[med-svn] [sra-sdk] 01/01: Revert "Merge tag 'upstream/2.3.2-4'"

Andreas Tille tille at debian.org
Tue Aug 13 12:52:09 UTC 2013


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository sra-sdk.

commit bad95efbdb01cbc3a0b32bd8d3dda97d98897b6d
Author: Andreas Tille <tille at debian.org>
Date:   Tue Aug 13 14:37:14 2013 +0200

    Revert "Merge tag 'upstream/2.3.2-4'"
    
    This reverts commit ccb209da85e5ae3a6a7b9431f0dbebb8b5669641, reversing
    changes made to dc070e1c2cacd817978188cbf7ea3c83e09d4d07.
---
 tools/sra-sort/Makefile.cc => CHANGES              |    6 +
 Makefile                                           |   45 +-
 README                                             |   22 +-
 README-WINDOWS.txt                                 |   15 -
 README-build.txt => README-build                   |  148 +-
 README-config.txt                                  |   58 -
 USAGE                                              |  162 +
 build/BUILD.linux                                  |    2 +-
 build/BUILD.mac                                    |    2 +-
 build/BUILD.win                                    |    2 +-
 build/COMP.mac                                     |    2 +-
 build/LNKG.linux                                   |    1 -
 build/LNKG.mac                                     |    1 -
 build/LNKG.win                                     |    1 -
 build/Makefile.clang                               |   80 -
 build/Makefile.env                                 |  140 +-
 build/Makefile.gcc                                 |   18 +-
 build/Makefile.linux                               |    7 -
 build/Makefile.mac                                 |    7 -
 build/Makefile.rules                               |    5 +
 build/Makefile.shell                               |  102 +-
 build/Makefile.vc++                                |   22 +-
 build/Makefile.win                                 |    7 -
 libs/krypto/rng-priv.h => build/STATIC             |    0
 build/ld.linux.cmn.sh                              |    6 +-
 build/ld.linux.dlib.sh                             |    4 -
 build/ld.linux.exe.sh                              |    7 +-
 build/ld.linux.ln.sh                               |   13 +-
 build/ld.linux.slib.sh                             |    4 +-
 build/ld.mac.cmn.sh                                |   12 +-
 build/ld.mac.dlib.sh                               |  116 +-
 build/ld.mac.exe.sh                                |  118 +-
 build/ld.mac.ln.sh                                 |    2 -
 build/ld.mac.slib.sh                               |    6 +-
 build/ld.sh                                        |  272 +-
 build/ld.win.cmn.sh                                |    7 +-
 build/ld.win.dlib.sh                               |   60 +-
 build/ld.win.exe.sh                                |    6 +-
 build/ld.win.slib.sh                               |   51 +-
 build/mac.arch.sh                                  |    9 +-
 build/sra-dflt-schema.sh                           |   50 +-
 build/win-cc.sh                                    |  110 +-
 configuration-assistant.perl                       | 1266 +-
 .../{bam-load-help.html => bam-loader-help.html}   |    6 +-
 doc/help/html/crc32sum-help.html                   |    2 +-
 interfaces/align/align-access.h                    |   11 +-
 interfaces/align/align.vschema                     |  675 +-
 interfaces/{kproc/timeout.h => align/alignarc.h}   |   29 +-
 interfaces/align/bam.h                             |   91 +-
 interfaces/align/dna-reverse-cmpl.h                |   43 -
 interfaces/align/iterator.h                        |  610 -
 interfaces/align/manager.h                         |   69 -
 interfaces/align/qstat.vschema                     |   87 -
 interfaces/align/quality-quantizer.h               |   49 -
 interfaces/align/reader-refseq.h                   |    6 +-
 interfaces/align/reference.h                       |  150 -
 interfaces/align/refseq-mgr.h                      |   16 +-
 interfaces/align/refseq.vschema                    |  100 -
 interfaces/align/seq.vschema                       |  300 -
 interfaces/align/writer-alignment.h                |   49 +-
 interfaces/align/writer-reference.h                |   45 +-
 interfaces/align/writer-refseq.h                   |    6 +-
 interfaces/align/writer-sequence.h                 |   16 +-
 interfaces/cc/gcc/i386/atomic.h                    |    1 -
 interfaces/{kns/extern.h => cc/gcc/i386/fmtdef.h}  |   25 +-
 interfaces/cc/gcc/noarch/bitstr.h                  |   29 +-
 interfaces/cc/gcc/v128.h                           | 1088 -
 .../syspass.c => interfaces/cc/gcc/x86_64/fmtdef.h |   40 +-
 interfaces/cc/vc++/compiler.h                      |    2 +-
 interfaces/cc/vc++/i386/arch-impl.h                |  194 +
 interfaces/cc/vc++/i386/{arch-impl.h => fmtdef.h}  |   26 +-
 interfaces/cc/vc++/noarch/arch-impl.h              |  194 -
 interfaces/cc/vc++/noarch/bitstr.h                 |    8 +-
 interfaces/cc/vc++/stdint.h                        |   43 +-
 interfaces/cc/vc++/x86_64/arch-impl.h              |  133 +
 .../{krypto/manager.h => cc/vc++/x86_64/fmtdef.h}  |   16 +-
 interfaces/ext/libxml/DOCBparser.h                 |   96 -
 interfaces/ext/libxml/HTMLparser.h                 |  303 -
 interfaces/ext/libxml/HTMLtree.h                   |  147 -
 interfaces/ext/libxml/SAX.h                        |  173 -
 interfaces/ext/libxml/SAX2.h                       |  176 -
 interfaces/ext/libxml/c14n.h                       |  115 -
 interfaces/ext/libxml/catalog.h                    |  182 -
 interfaces/ext/libxml/chvalid.h                    |  230 -
 interfaces/ext/libxml/debugXML.h                   |  217 -
 interfaces/ext/libxml/dict.h                       |   69 -
 interfaces/ext/libxml/encoding.h                   |  226 -
 interfaces/ext/libxml/entities.h                   |  150 -
 interfaces/ext/libxml/globals.h                    |  491 -
 interfaces/ext/libxml/hash.h                       |  233 -
 interfaces/ext/libxml/list.h                       |  137 -
 interfaces/ext/libxml/nanoftp.h                    |  143 -
 interfaces/ext/libxml/nanohttp.h                   |   81 -
 interfaces/ext/libxml/parser.h                     | 1226 -
 interfaces/ext/libxml/parserInternals.h            |  611 -
 interfaces/ext/libxml/pattern.h                    |  100 -
 interfaces/ext/libxml/relaxng.h                    |  213 -
 interfaces/ext/libxml/schemasInternals.h           |  958 -
 interfaces/ext/libxml/schematron.h                 |  142 -
 interfaces/ext/libxml/threads.h                    |   84 -
 interfaces/ext/libxml/tree.h                       | 1252 -
 interfaces/ext/libxml/uri.h                        |   94 -
 interfaces/ext/libxml/valid.h                      |  458 -
 interfaces/ext/libxml/xinclude.h                   |  125 -
 interfaces/ext/libxml/xlink.h                      |  189 -
 interfaces/ext/libxml/xmlIO.h                      |  360 -
 interfaces/ext/libxml/xmlautomata.h                |  146 -
 interfaces/ext/libxml/xmlerror.h                   |  944 -
 interfaces/ext/libxml/xmlexports.h                 |  157 -
 interfaces/ext/libxml/xmlmemory.h                  |  224 -
 interfaces/ext/libxml/xmlmodule.h                  |   57 -
 interfaces/ext/libxml/xmlreader.h                  |  424 -
 interfaces/ext/libxml/xmlregexp.h                  |  222 -
 interfaces/ext/libxml/xmlsave.h                    |   87 -
 interfaces/ext/libxml/xmlschemas.h                 |  218 -
 interfaces/ext/libxml/xmlschemastypes.h            |  151 -
 interfaces/ext/libxml/xmlstring.h                  |  140 -
 interfaces/ext/libxml/xmlunicode.h                 |  202 -
 interfaces/ext/libxml/xmlversion.h                 |  458 -
 interfaces/ext/libxml/xmlwriter.h                  |  485 -
 interfaces/ext/libxml/xpath.h                      |  546 -
 interfaces/ext/libxml/xpathInternals.h             |  630 -
 interfaces/ext/libxml/xpointer.h                   |  114 -
 interfaces/insdc/insdc.h                           |   35 -
 interfaces/insdc/sra.h                             |   27 +-
 interfaces/insdc/sra.vschema                       |    1 -
 interfaces/kapp/args.h                             |   54 +-
 interfaces/kapp/loader-file.h                      |   17 +-
 interfaces/kapp/loader-meta.h                      |    2 +-
 interfaces/kapp/log-xml.h                          |   10 +-
 interfaces/kapp/queue-file.h                       |  149 -
 interfaces/kdb/btree.h                             |   95 +-
 interfaces/kdb/consistency-check.h                 |   21 +-
 interfaces/kdb/database.h                          |   18 +-
 interfaces/kdb/kdb-priv.h                          |   12 -
 interfaces/kdb/manager.h                           |   40 +-
 interfaces/kdb/namelist.h                          |    3 +-
 interfaces/kdb/table.h                             |   14 -
 interfaces/kfg/config.h                            |  168 +-
 interfaces/kfg/kfg-priv.h                          |    4 -
 interfaces/kfg/repository.h                        |  271 -
 interfaces/kfs/arc.h                               |   14 -
 interfaces/kfs/buffile.h                           |   10 -
 interfaces/kfs/cacheteefile.h                      |  147 -
 interfaces/kfs/directory.h                         |   63 +-
 interfaces/kfs/file.h                              |   29 -
 interfaces/kfs/impl.h                              |   11 +-
 interfaces/kfs/kfs-priv.h                          |   31 +-
 interfaces/kfs/lockfile.h                          |  116 -
 interfaces/{vfs => kfs}/path-priv.h                |   98 +-
 interfaces/{vfs => kfs}/path.h                     |   94 +-
 interfaces/kfs/quickmount.h                        |   61 -
 interfaces/kfs/ramfile.h                           |   75 -
 interfaces/kfs/readheadfile.h                      |   86 -
 interfaces/kfs/sra.h                               |   19 +-
 interfaces/kfs/tar.h                               |    5 -
 interfaces/klib/checksum.h                         |    2 +-
 interfaces/klib/debug.h                            |   33 +-
 interfaces/klib/defs.h                             |    7 +-
 interfaces/klib/extern.h                           |    6 +-
 interfaces/klib/klib-priv.h                        |  106 -
 interfaces/klib/ksort-macro.h                      |  257 -
 interfaces/klib/log.h                              |    4 +-
 interfaces/klib/namelist.h                         |   10 -
 interfaces/klib/out.h                              |    6 +-
 interfaces/klib/printf.h                           |  260 +-
 interfaces/klib/rc.h                               |  129 +-
 interfaces/klib/refcount.h                         |    8 +-
 interfaces/klib/report.h                           |   98 -
 interfaces/klib/sort.h                             |   60 -
 interfaces/klib/status.h                           |    2 +-
 interfaces/klib/vector.h                           |  155 -
 interfaces/{kxml => klib}/xml.h                    |   41 +-
 interfaces/klib/xml.hpp                            |  198 +
 interfaces/kns/KCurlRequest.h                      |   65 -
 interfaces/kns/curl-file.h                         |   49 -
 interfaces/kns/entrez-fetcher.h                    |   88 -
 interfaces/kns/impl.h                              |  104 -
 interfaces/kns/manager.h                           |   85 -
 interfaces/kns/stream.h                            |  126 -
 interfaces/kns/url-fetcher.h                       |   66 -
 interfaces/kproc/impl.h                            |  104 -
 interfaces/kproc/procmgr.h                         |  115 -
 interfaces/kproc/q-extern.h                        |    4 +-
 interfaces/kproc/queue.h                           |    2 +-
 interfaces/kproc/sem.h                             |    8 -
 interfaces/kproc/task.h                            |   83 -
 interfaces/krypto/cipher-impl.h                    |    1 -
 interfaces/krypto/cipher-priv.h                    |    1 -
 interfaces/krypto/cipher-test.h                    |   49 -
 interfaces/krypto/cipher.h                         |  208 -
 interfaces/krypto/ciphermgr-priv.h                 |   38 -
 interfaces/krypto/ciphermgr.h                      |   98 -
 interfaces/krypto/encfile-priv.h                   |  250 -
 interfaces/krypto/encfile.h                        |  134 -
 interfaces/krypto/extern.h                         |   66 -
 interfaces/krypto/key.h                            |  103 -
 interfaces/krypto/manager-priv.h                   |   26 -
 interfaces/krypto/reencfile.h                      |   91 -
 interfaces/krypto/rng-impl.h                       |   86 -
 interfaces/krypto/rng.h                            |   68 -
 interfaces/krypto/testciphermgr.h                  |   58 -
 interfaces/krypto/wgaencrypt.h                     |  128 -
 interfaces/ktst/test_tools.hpp                     |   93 +-
 interfaces/ktst/unit_test.hpp                      |  283 +-
 interfaces/ktst/unit_test_suite.hpp                |  524 +-
 interfaces/loader/alignment-writer.h               |   97 -
 interfaces/loader/common-reader-priv.h             |  300 -
 interfaces/loader/common-reader.h                  |  486 -
 interfaces/loader/common-writer.h                  |  190 -
 interfaces/loader/mmarray.h                        |   50 -
 interfaces/loader/reference-writer.h               |   78 -
 interfaces/loader/sequence-writer.h                |   91 -
 interfaces/ncbi/seq.vschema                        |   27 +-
 interfaces/ncbi/wgs-contig.h                       |  176 -
 interfaces/ncbi/wgs-contig.vschema                 |  660 -
 interfaces/os/mac/os-native.h                      |    6 +-
 interfaces/os/unix/unix-native.h                   |   13 +
 interfaces/os/win/atomic64.h                       |   34 +-
 interfaces/os/win/os-native.h                      |   59 +-
 interfaces/sra/impl.h                              |   20 -
 interfaces/sra/pevents.vschema                     |    2 +-
 interfaces/sra/sradb-priv.h                        |  123 +-
 interfaces/sra/srapath.h                           |    9 +-
 interfaces/vdb/blob.h                              |  147 -
 interfaces/vdb/built-in.vschema                    |   26 +-
 interfaces/vdb/cursor.h                            |   37 -
 interfaces/vdb/database.h                          |   18 +-
 interfaces/vdb/dependencies.h                      |  211 -
 interfaces/vdb/manager.h                           |   23 -
 interfaces/vdb/manager.hpp                         |    8 +-
 interfaces/vdb/report.h                            |   92 -
 interfaces/vdb/vdb-priv.h                          |   70 +-
 interfaces/vdb/vdb.vschema                         |   59 +-
 interfaces/vfs/extern.h                            |   42 -
 interfaces/vfs/manager-priv.h                      |  115 -
 interfaces/vfs/manager.h                           |  306 -
 interfaces/vfs/resolver.h                          |  206 -
 libs/Makefile                                      |   19 +-
 libs/align/Makefile                                |   39 +-
 libs/align/al_iterator.c                           |  562 -
 libs/align/align-access.c                          |   22 +-
 libs/align/align_mgr.c                             |  108 -
 libs/align/bam.c                                   | 2933 +-
 libs/align/debug.h                                 |   36 +-
 libs/align/dna-reverse-cmpl.c                      |   80 -
 libs/align/libalign-access.vers                    |    2 +-
 libs/align/libalign-reader.vers                    |    2 +-
 .../libkns.vers => align/libalign-writer.vers}     |    0
 libs/align/pl_iterator.c                           |  671 -
 libs/align/quality-quantizer.c                     |  105 -
 libs/align/reader-cmn.c                            |  290 +-
 libs/align/reader-cmn.h                            |   31 +-
 libs/align/reader-refseq.c                         |  103 +-
 libs/align/ref_iterator.c                          |  866 -
 libs/align/reference-cmn.c                         |   43 -
 libs/align/reference-cmn.h                         |   38 -
 libs/align/reference.c                             | 1933 -
 libs/align/refseq-mgr.c                            |  626 +-
 libs/align/writer-alignment.c                      |  128 +-
 libs/align/writer-cmn.c                            |  112 +-
 libs/align/writer-priv.h                           |   10 +-
 libs/align/writer-ref.c                            |  175 +-
 libs/align/writer-ref.h                            |   22 +-
 libs/align/writer-reference.c                      | 2987 +-
 libs/align/writer-refseq.c                         |   19 +-
 libs/align/writer-sequence.c                       |  221 +-
 libs/axf/Makefile                                  |   25 +-
 libs/axf/align-local_ref_id.c                      |   70 +-
 libs/axf/align-local_ref_start.c                   |   61 +-
 libs/axf/align-ref-name.c                          |   52 +-
 libs/axf/align-ref-pos.c                           |  147 +-
 libs/axf/align-ref-seq-id.c                        |   60 +-
 libs/axf/align-restore-read.c                      |   28 +-
 libs/axf/cigar.c                                   | 1089 +-
 libs/axf/get-sam-flags.c                           |   80 +-
 libs/axf/get_mate_align_ids.c                      |  271 -
 libs/axf/libaxf.vers                               |    2 +-
 libs/axf/libaxf.vers.h                             |    1 +
 libs/axf/libwaxf.vers                              |    2 +-
 libs/axf/libwaxf.vers.h                            |    1 +
 libs/axf/make-cmp-read_desc.c                      |  156 -
 libs/axf/not-my-row.c                              |    2 +-
 libs/axf/project_read_from_sequence.c              |  119 +-
 libs/axf/ref-preserve_qual.c                       |    2 -
 libs/axf/ref-restore-read.c                        |    6 +-
 libs/axf/ref-tbl-sub-select.c                      |  471 +-
 libs/axf/ref-tbl.c                                 |   85 -
 libs/axf/ref-tbl.h                                 |   32 -
 libs/axf/refseq-stats.c                            |    2 +-
 libs/axf/seq-construct-read.c                      |  125 -
 libs/axf/seq-restore-read.c                        |   92 +-
 libs/axf/template-len.c                            |  112 +-
 libs/ext/Makefile                                  |    3 +-
 libs/ext/bzip2/Makefile                            |   93 +-
 libs/ext/bzip2/blocksort.c                         | 1094 -
 libs/ext/bzip2/bzip2-1.0.6.tar.gz                  |  Bin 782025 -> 0 bytes
 libs/ext/bzip2/bzip2.c                             | 2034 -
 libs/ext/bzip2/bzip2recover.c                      |  514 -
 libs/ext/bzip2/bzlib.c                             | 1572 -
 libs/ext/bzip2/bzlib.h                             |  282 -
 libs/ext/bzip2/bzlib_private.h                     |  509 -
 libs/ext/bzip2/compress.c                          |  672 -
 libs/ext/bzip2/crctable.c                          |  104 -
 libs/ext/bzip2/decompress.c                        |  646 -
 libs/ext/bzip2/dlltest.c                           |  175 -
 libs/ext/bzip2/huffman.c                           |  205 -
 libs/ext/bzip2/libbz2.def                          |   27 -
 libs/ext/bzip2/libbz2.vers                         |    1 -
 libs/ext/bzip2/mk251.c                             |   31 -
 libs/ext/bzip2/randtable.c                         |   84 -
 libs/ext/bzip2/spewG.c                             |   54 -
 libs/ext/bzip2/unzcrash.c                          |  141 -
 libs/ext/curl/Makefile                             |  103 -
 libs/ext/zlib/Makefile                             |   97 +-
 libs/ext/zlib/adler32.c                            |  179 -
 libs/ext/zlib/compress.c                           |   80 -
 libs/ext/zlib/crc32.c                              |  425 -
 libs/ext/zlib/crc32.h                              |  441 -
 libs/ext/zlib/deflate.c                            | 1965 -
 libs/ext/zlib/deflate.h                            |  346 -
 libs/ext/zlib/gzclose.c                            |   25 -
 libs/ext/zlib/gzguts.h                             |  193 -
 libs/ext/zlib/gzlib.c                              |  620 -
 libs/ext/zlib/gzread.c                             |  589 -
 libs/ext/zlib/gzwrite.c                            |  565 -
 libs/ext/zlib/infback.c                            |  640 -
 libs/ext/zlib/inffast.c                            |  340 -
 libs/ext/zlib/inffast.h                            |   11 -
 libs/ext/zlib/inffixed.h                           |   94 -
 libs/ext/zlib/inflate.c                            | 1496 -
 libs/ext/zlib/inflate.h                            |  122 -
 libs/ext/zlib/inftrees.c                           |  306 -
 libs/ext/zlib/inftrees.h                           |   62 -
 libs/ext/zlib/libz.def                             |   84 -
 libs/ext/zlib/libz.vers                            |    1 -
 libs/ext/zlib/trees.c                              | 1224 -
 libs/ext/zlib/trees.h                              |  128 -
 libs/ext/zlib/uncompr.c                            |   59 -
 libs/ext/zlib/zconf.h                              |  506 -
 libs/ext/zlib/zlib-1.2.7.tar.gz                    |  Bin 560351 -> 0 bytes
 libs/ext/zlib/zlib.h                               | 1744 -
 libs/ext/zlib/zutil.c                              |  324 -
 libs/ext/zlib/zutil.h                              |  252 -
 libs/kapp/Makefile                                 |   10 -
 libs/kapp/args.c                                   |  749 +-
 libs/kapp/args_debug.h                             |   47 -
 libs/kapp/libload.vers                             |    2 +-
 libs/kapp/loader-file.c                            |  117 +-
 libs/kapp/log-xml.c                                |   26 +-
 libs/kapp/main.c                                   |   36 +-
 libs/kapp/queue-file.c                             |  925 -
 libs/kapp/tokenizer.c                              |  525 -
 libs/kapp/unix/sysmain.c                           |   13 -
 libs/kapp/win/sysmain.c                            |   18 -
 libs/kdb/Makefile                                  |   20 +-
 libs/kdb/btree.c                                   |   69 +-
 libs/kdb/coldata.c                                 |    2 +-
 libs/kdb/colidx0.c                                 |    4 +-
 libs/kdb/colidx1.c                                 |    8 +-
 libs/kdb/colidx2-priv.h                            |   29 +-
 libs/kdb/colidx2.c                                 |  114 +-
 libs/kdb/column-cc.c                               |   67 +-
 libs/kdb/column.c                                  |   26 +-
 libs/kdb/database-cc.c                             |  232 +-
 libs/kdb/database-cmn.c                            |    2 +-
 libs/kdb/database.c                                |  198 +-
 libs/kdb/dbcc-cmn.c                                |    2 +-
 libs/kdb/dbmgr-cmn.c                               |   62 +-
 libs/kdb/dbmgr-priv.h                              |    5 +-
 libs/kdb/dbmgr.c                                   |  255 +-
 libs/kdb/idxblk.c                                  |    9 +-
 libs/kdb/index-cmn.h                               |    7 +-
 libs/kdb/index.c                                   |   16 +-
 libs/kdb/kdb-priv.h                                |   45 +-
 libs/kdb/kdb.c                                     |  652 +-
 libs/kdb/libkdb.vers                               |    2 +-
 libs/kdb/libkdb.vers.h                             |    1 +
 libs/kdb/libwkdb.vers                              |    2 +-
 libs/kdb/libwkdb.vers.h                            |    1 +
 libs/kdb/meta.c                                    |   69 +-
 libs/kdb/ptrieval-v2.c                             |  115 +-
 libs/kdb/table-cc.c                                |  229 +-
 libs/kdb/table.c                                   |  133 +-
 libs/kdb/trieidx-v2.c                              |   21 +-
 libs/kdb/trieval-v2.c                              |    4 +-
 libs/kdb/wcolidx0.c                                |    4 +-
 libs/kdb/wcolidx1.c                                |   10 +-
 libs/kdb/wcolidx2.c                                |    6 +-
 libs/kdb/wcolumn.c                                 |   74 +-
 libs/kdb/wdatabase.c                               |  233 +-
 libs/kdb/wdbmgr.c                                  |   15 +-
 libs/kdb/windex.c                                  |   16 +-
 libs/kdb/wkdb-priv.h                               |   62 +-
 libs/kdb/wkdb.c                                    |  653 +-
 libs/kdb/wmeta.c                                   |   90 +-
 libs/kdb/wtable.c                                  |  186 +-
 libs/kdb/wtrieidx-v1.c                             |    2 +-
 libs/kdb/wtrieidx-v2.c                             |   14 +-
 libs/kfg/Makefile                                  |   43 +-
 libs/kfg/config-grammar.c                          | 1725 -
 libs/kfg/config-lex.c                              | 2511 -
 libs/kfg/config-tokens.h                           |   75 -
 libs/kfg/config.c                                  | 2307 +-
 .../Makefile.gcc => libs/kfg/config.linux.kfg      |    6 +-
 .../Makefile.clang => libs/kfg/config.mac.kfg      |    6 +-
 .../Makefile.vc++ => libs/kfg/config.win.kfg       |    5 +
 libs/kfg/default.kfg                               |   45 -
 libs/kfg/kfg-parse.h                               |   81 -
 libs/kfg/libkfg.vers                               |    2 +-
 libs/kfg/report-kfg.c                              |  505 -
 libs/kfg/report.c                                  |  433 -
 libs/kfg/repository.c                              | 1087 -
 libs/kfs/Makefile                                  |   24 +-
 libs/kfs/arc.c                                     |  273 +-
 libs/kfs/buffile-read.c                            |  265 -
 libs/kfs/buffile-write.c                           |    4 +-
 libs/kfs/buffile.c                                 |    2 +-
 libs/kfs/bzip.c                                    |   34 +-
 libs/kfs/cacheteefile.c                            | 1689 -
 libs/kfs/countfile.c                               |   11 -
 libs/kfs/crc32.c                                   |   19 +-
 libs/kfs/directory.c                               |  183 +-
 libs/kfs/ffext.c                                   |   12 +-
 libs/kfs/ffmagic.c                                 |  122 +-
 libs/kfs/file.c                                    |  160 +-
 libs/kfs/fileformat-priv.h                         |    2 +-
 libs/kfs/gzip.c                                    |    5 +-
 libs/kfs/libkfs.vers                               |    2 +-
 libs/kfs/lockfile.c                                |  350 -
 libs/kfs/md5.c                                     |   42 +-
 libs/kfs/mmap.c                                    |   12 +-
 libs/kfs/nullfile.c                                |    1 -
 libs/kfs/pagefile.c                                |  121 +-
 libs/{vfs => kfs}/path-priv.h                      |   73 +-
 libs/{vfs => kfs}/path.c                           | 1386 +-
 libs/kfs/quickmount.c                              |  967 -
 libs/kfs/ramfile.c                                 |  415 -
 libs/kfs/readheadfile.c                            |  294 -
 libs/kfs/report.c                                  |  169 -
 libs/kfs/sra.c                                     |   79 +-
 libs/kfs/subfile.c                                 |   18 +-
 libs/kfs/tar.c                                     |   94 +-
 libs/kfs/teefile.c                                 |    1 -
 libs/kfs/tocentry.c                                |   39 +-
 libs/kfs/tocfile.c                                 |    2 +-
 libs/kfs/unix/sysdir-priv.h                        |    9 +
 libs/kfs/unix/sysdir.c                             |   94 +-
 libs/kfs/unix/sysdll.c                             |  120 +-
 libs/kfs/unix/sysfile-priv.h                       |    2 +-
 libs/kfs/unix/sysfile.c                            |   24 +-
 libs/kfs/unix/syslockfile.c                        |  215 -
 libs/{vfs => kfs}/unix/syspath.c                   |   15 +-
 libs/kfs/win/lnk_tools.c                           |    9 +-
 libs/kfs/win/sysdir-priv.h                         |    4 +-
 libs/kfs/win/sysdir.c                              |  254 +-
 libs/kfs/win/sysdll.c                              |  115 +-
 libs/kfs/win/sysfile-priv.h                        |    5 +-
 libs/kfs/win/sysfile.c                             |  347 +-
 libs/kfs/win/syslockfile.c                         |   67 -
 libs/kfs/win/sysmmap.c                             |    2 -
 libs/{vfs => kfs}/win/syspath.c                    |   13 +-
 libs/klib/Judy.h                                   |  629 -
 libs/klib/Makefile                                 |   36 +-
 libs/klib/SHA-32bit.c                              |    8 +-
 libs/klib/SHA-64bit.c                              |    8 +-
 libs/klib/data-buffer.c                            |  223 +-
 libs/klib/judy-vector.c                            |  892 -
 libs/klib/judy/Judy1.h                             |  549 -
 libs/klib/judy/JudyByCount.c                       |  952 -
 libs/klib/judy/JudyByCountWithDefs.c               |    4 -
 libs/klib/judy/JudyCascade.c                       | 1940 -
 libs/klib/judy/JudyCount.c                         | 1193 -
 libs/klib/judy/JudyCreateBranch.c                  |  312 -
 libs/klib/judy/JudyDecascade.c                     | 1204 -
 libs/klib/judy/JudyDel.c                           | 2144 -
 libs/klib/judy/JudyFirst.c                         |  211 -
 libs/klib/judy/JudyFreeArray.c                     |  361 -
 libs/klib/judy/JudyGet.c                           | 1092 -
 libs/klib/judy/JudyHS.c                            |  770 -
 libs/klib/judy/JudyHS.h                            |   35 -
 libs/klib/judy/JudyIns.c                           | 1871 -
 libs/klib/judy/JudyInsArray.c                      | 1176 -
 libs/klib/judy/JudyInsertBranch.c                  |  133 -
 libs/klib/judy/JudyL.h                             |  503 -
 libs/klib/judy/JudyMalloc.c                        |   86 -
 libs/klib/judy/JudyMallocIF.c                      |  780 -
 libs/klib/judy/JudyMemActive.c                     |  257 -
 libs/klib/judy/JudyMemUsed.c                       |   59 -
 libs/klib/judy/JudyNext.c                          |    2 -
 libs/klib/judy/JudyNextEmpty.c                     |    2 -
 libs/klib/judy/JudyPrev.c                          |    2 -
 libs/klib/judy/JudyPrevEmpty.c                     |    2 -
 libs/klib/judy/JudyPrevNext.c                      | 1888 -
 libs/klib/judy/JudyPrevNextEmpty.c                 | 1388 -
 libs/klib/judy/JudyPrintJP.c                       |  399 -
 libs/klib/judy/JudyPrivate.h                       | 1610 -
 libs/klib/judy/JudyPrivate1L.h                     |  483 -
 libs/klib/judy/JudyPrivateBranch.h                 |  777 -
 libs/klib/judy/JudySL.c                            | 1125 -
 libs/klib/judy/JudyTablesGen.c                     |  294 -
 libs/klib/judy/Makefile                            |  207 -
 libs/klib/judy/j__udyGet.c                         |    2 -
 libs/klib/ksort.c                                  |   97 -
 libs/klib/libklib.vers                             |    2 +-
 libs/klib/libklib.vers.h                           |    1 +
 libs/klib/log.c                                    |   40 +-
 libs/klib/pbstree-impl.c                           |  220 +-
 libs/klib/printf.c                                 | 2329 +-
 libs/klib/qsort.c                                  |   34 +-
 libs/klib/refcount.c                               |    1 +
 libs/klib/report.c                                 |  816 -
 libs/klib/status.c                                 |    4 +-
 libs/klib/symtab.c                                 |    2 +-
 libs/klib/token.c                                  |    9 +-
 libs/klib/unix/systime.c                           |    4 +-
 libs/klib/unpack.c                                 |  176 +-
 libs/klib/vector_namelist.c                        |   57 -
 libs/klib/vlen-encode.c                            |    3 +-
 libs/klib/win/syserrcode.c                         |    2 +-
 libs/klib/win/syswriter.c                          |   17 +-
 libs/klib/writer.c                                 |    8 +-
 libs/kns/KCurlFile.c                               |  716 -
 libs/kns/KCurlRequest.c                            |  438 -
 libs/kns/Makefile                                  |  125 -
 libs/kns/curlhdr/curl.h                            | 1600 -
 libs/kns/curlhdr/curlver.h                         |   56 -
 libs/kns/curlhdr/easy.h                            |   81 -
 libs/kns/curlhdr/multi.h                           |  344 -
 libs/kns/curlhdr/types.h                           |    1 -
 libs/kns/entrez-fetcher.c                          |  221 -
 libs/kns/kns_manager.c                             |  263 -
 libs/kns/kns_mgr_priv.h                            |   59 -
 libs/kns/libkurl.vers                              |    1 -
 libs/kns/stream-from-files.c                       |  168 -
 libs/kns/stream-from-streams.c                     |  150 -
 libs/kns/stream-priv.h                             |   32 -
 libs/kns/stream.c                                  |  336 -
 libs/kns/url-fetcher-curl.c                        |  255 -
 libs/kns/url-fetcher-impl.h                        |  109 -
 libs/kns/url-fetcher.c                             |  129 -
 libs/kproc/Makefile                                |   55 +-
 libs/kproc/bsd/syslock.c                           |    1 -
 libs/kproc/libkproc.vers                           |    2 +-
 libs/kproc/libkq.vers                              |    2 +-
 libs/kproc/libksproc.vers                          |    2 +-
 libs/kproc/linux/syslock.c                         |    1 -
 libs/kproc/procmgr.c                               |  412 -
 libs/kproc/queue.c                                 |   93 +-
 libs/kproc/sem.c                                   |   79 +-
 libs/kproc/sttimeout.c                             |    1 -
 libs/kproc/task.c                                  |  156 -
 libs/kproc/unix/syscond.c                          |   46 +-
 libs/kproc/unix/systimeout.c                       |    1 -
 libs/kproc/win/syscond-priv.h                      |   10 +-
 libs/kproc/win/syscond.c                           |  238 +-
 libs/kproc/win/syslock.c                           |    6 +-
 libs/krypto/Makefile                               |  336 -
 libs/krypto/aes-byte.c                             |  236 -
 libs/krypto/aes-ncbi-priv.h                        |  227 -
 libs/krypto/aes-ncbi.aes-ni.pic.o.list             |38295 ----------
 libs/krypto/aes-ncbi.c                             | 2644 -
 libs/krypto/aes-ncbi.vec.pic.o.list                |74023 -------------------
 libs/krypto/aes-ncbi.vecreg.pic.o.list             |75192 --------------------
 libs/krypto/aes-priv.h                             |   94 -
 libs/krypto/aes.c                                  |    1 -
 libs/krypto/aes_core.c                             | 1181 -
 libs/krypto/blockcipher-impl.h                     |  187 -
 libs/krypto/blockcipher-priv.h                     |   90 -
 libs/krypto/blockcipher.c                          |    3 -
 libs/krypto/cipher-byte.c                          |  522 -
 libs/krypto/cipher-impl.h                          |  174 -
 libs/krypto/cipher-no-vec.c                        |   41 -
 libs/krypto/cipher-priv.h                          |   79 -
 libs/krypto/cipher-vec.aes-ni.pic.o.list           |10909 ---
 libs/krypto/cipher-vec.c                           |  808 -
 libs/krypto/cipher-vec.vec.pic.o.list              |10959 ---
 libs/krypto/cipher-vec.vecreg.pic.o.list           |10919 ---
 libs/krypto/cipher.c                               |  536 -
 libs/krypto/ciphermgr.c                            |  295 -
 libs/krypto/compile-test.aes-ni.pic.o.list         |  592 -
 libs/krypto/compile-test.c                         |   50 -
 libs/krypto/compile-test.vec.pic.o.list            |  590 -
 libs/krypto/compile-test.vecreg.pic.o.list         |  592 -
 libs/krypto/csprng.c                               |  163 -
 libs/krypto/encfile-priv.h                         |  163 -
 libs/krypto/encfile.c                              | 2122 -
 libs/krypto/encfilev2.c                            | 2589 -
 libs/krypto/key.c                                  |  126 -
 libs/krypto/libkrypto.vers                         |    1 -
 libs/krypto/libkryptotest.vers                     |    1 -
 libs/krypto/manager.c                              |   11 -
 libs/krypto/ncbi-priv.h                            |  122 -
 libs/krypto/no-null-ncbi.aes-ni.pic.o.list         | 2539 -
 libs/krypto/no-null-ncbi.c                         |   59 -
 libs/krypto/no-null-ncbi.vec.pic.o.list            | 2540 -
 libs/krypto/no-null-ncbi.vecreg.pic.o.list         | 2540 -
 libs/krypto/null-ncbi-priv.h                       |   56 -
 libs/krypto/null-ncbi.c                            |  251 -
 libs/krypto/null-ncbi.vec.pic.o.list               | 4406 --
 libs/krypto/null-ncbi.vecreg.pic.o.list            | 4406 --
 libs/krypto/reencfile.c                            | 1255 -
 libs/krypto/rng-impl.h                             |   91 -
 libs/krypto/rng.c                                  |  120 -
 libs/krypto/testcipher.c                           |   76 -
 libs/krypto/wgaencrypt.c                           | 1254 -
 libs/ktst/Makefile                                 |   90 -
 libs/ktst/testcase.cpp                             |   95 -
 libs/ktst/testenv.cpp                              |  503 -
 libs/ktst/testrunner.cpp                           |   77 -
 libs/ktst/unix/runprocesstestcase.cpp              |  100 -
 libs/ktst/win/runprocesstestcase.cpp               |  141 -
 libs/kxml/Makefile                                 |    4 +-
 libs/kxml/libkxfs.vers                             |    2 +-
 libs/kxml/libkxml.vers                             |    2 +-
 libs/kxml/xml.c                                    |   44 +-
 libs/kxml/xtoc-parsexml.c                          |   36 +-
 libs/kxml/xtoc.c                                   |  389 +-
 libs/loader/Makefile                               |   99 -
 libs/loader/alignment-writer.c                     |  226 -
 libs/loader/common-reader.c                        |  614 -
 libs/loader/common-writer.c                        | 1987 -
 libs/loader/mmarray.c                              |  131 -
 libs/loader/reference-writer.c                     |  459 -
 libs/loader/sequence-writer.c                      |  361 -
 libs/search/Makefile                               |   10 +-
 libs/search/libksrch.vers                          |    2 +-
 libs/search/libksrch.vers.h                        |    1 +
 libs/sra/Makefile                                  |   99 +-
 libs/sra/libsradb.vers                             |    2 +-
 libs/sra/libsradb.vers.h                           |    1 +
 libs/sra/libsrareader.vers                         |    2 +-
 libs/sra/libsrareader.vers.h                       |    1 +
 libs/sra/libsraschema.vers.h                       |    1 +
 libs/sra/libwsradb.vers                            |    2 +-
 libs/sra/libwsradb.vers.h                          |    1 +
 libs/sra/libwsraschema.vers.h                      |    1 +
 libs/sra/reader-abi.c                              |   25 +-
 libs/sra/reader-fastq.c                            |   16 +-
 libs/sra/reader-illumina.c                         |   96 +-
 libs/sra/reader-sff.c                              |  115 +-
 libs/sra/sra-dflt-schema.c                         |    1 +
 libs/sra/sra-priv.h                                |   21 +-
 libs/sra/sracache.c                                |  466 -
 libs/sra/sramgr-cmn.c                              |  206 +-
 libs/{vfs => sra}/srapath-stub.c                   |  124 +-
 libs/sra/sraschema-stub.c                          |   67 +
 libs/sra/sratbl-cmn.c                              |  320 +-
 libs/sra/wsramgr.c                                 |    1 -
 libs/sra/wsraschema-stub.c                         |   67 +
 libs/sra/wsratbl.c                                 |   19 +-
 libs/sraxf/Makefile                                |   26 +-
 libs/sraxf/fix_read_seg_impl.h                     |  169 -
 libs/sraxf/format-spot-name.c                      |   11 +-
 libs/sraxf/index_lookup.c                          |   23 +-
 libs/sraxf/libsraxf.vers                           |    2 +-
 libs/sraxf/libsraxf.vers.h                         |    1 +
 libs/sraxf/libwsraxf.vers                          |    2 +-
 libs/sraxf/libwsraxf.vers.h                        |    1 +
 libs/sraxf/prefix-tree-to-name.c                   |    2 +
 libs/sraxf/read-desc.c                             |    9 +-
 libs/sraxf/read-seg-from-readn.c                   |   43 +-
 libs/sraxf/stats.c                                 |  193 +-
 libs/sraxf/stats_quality.c                         |    2 +-
 libs/sraxf/tokenize-spot_name-ion-torrent.c        |   67 +-
 libs/vdb/Makefile                                  |   25 +-
 libs/vdb/blob-priv.h                               |   67 +-
 libs/vdb/blob.c                                    |  895 +-
 libs/vdb/blob.h                                    |    7 +
 libs/vdb/column-cmn.c                              |   22 +-
 libs/vdb/column-priv.h                             |   56 +-
 libs/vdb/cursor-cmn.c                              |  656 +-
 libs/vdb/cursor-priv.h                             |   36 +-
 libs/vdb/cursor.c                                  |    3 +-
 libs/vdb/database-cmn.c                            |   25 -
 libs/vdb/database-depend.c                         | 1715 -
 libs/vdb/dbmgr-cmn.c                               |  324 +-
 libs/vdb/dbmgr-priv.h                              |   42 +
 libs/vdb/dbmgr.c                                   |    5 +
 libs/vdb/delta_average.c                           |  297 -
 libs/vdb/libvdb.vers                               |    2 +-
 libs/vdb/libvdb.vers.h                             |    1 +
 libs/vdb/libwvdb.vers                              |    2 +-
 libs/vdb/libwvdb.vers.h                            |    1 +
 libs/vdb/linker-cmn.c                              |   25 -
 libs/vdb/linker-int.c                              |   11 +-
 libs/vdb/linker-priv.h                             |    7 -
 libs/vdb/meta-attr-write.c                         |   21 +-
 libs/vdb/page-map.c                                | 1397 +-
 libs/vdb/page-map.h                                |  291 +-
 libs/vdb/phys-cmn.c                                |   39 +-
 libs/vdb/prod-cmn.c                                |  291 +-
 libs/vdb/prod-expr.c                               |   12 +-
 libs/vdb/prod-func.c                               |    6 +-
 libs/vdb/prod-priv.h                               |   50 +-
 libs/vdb/prod.c                                    |   13 -
 libs/vdb/redimension.c                             |    1 -
 libs/vdb/report-vdb.c                              |  856 -
 libs/vdb/schema-dump.c                             |   37 +-
 libs/vdb/schema-expr.c                             |   11 +-
 libs/vdb/schema-int.c                              |    1 -
 libs/vdb/schema-parse.c                            |    8 -
 libs/vdb/schema-parse.h                            |    5 -
 libs/vdb/schema-priv.h                             |    3 -
 libs/vdb/schema-tbl.c                              |   54 +-
 libs/vdb/schema-type.c                             |   18 +-
 libs/vdb/schema.c                                  |   26 +-
 libs/vdb/table-cmn.c                               |  123 +-
 libs/vdb/table-priv.h                              |    2 +-
 libs/vdb/wcolumn.c                                 | 1177 +-
 libs/vdb/wcursor.c                                 |  274 +-
 libs/vdb/wdbmgr.c                                  |    7 +
 libs/vdb/wphys.c                                   |   99 +-
 libs/vdb/wprod.c                                   |   28 +-
 libs/vdb/wtable.c                                  |  113 +-
 libs/vfs/Makefile                                  |  139 -
 libs/vfs/libsrapath.vers                           |    1 -
 libs/vfs/libvfs.vers                               |    1 -
 libs/vfs/manager.c                                 | 3709 -
 libs/vfs/resolver-priv.h                           |  144 -
 libs/vfs/resolver.c                                | 2694 -
 libs/vfs/srapath.c                                 | 1424 -
 libs/vxf/Makefile                                  |   68 +-
 libs/vxf/checksum.c                                |    2 -
 libs/vxf/irzip.c                                   |    6 +-
 libs/vxf/irzip.impl.h                              |  174 +-
 libs/vxf/iunzip.c                                  |    7 +-
 libs/vxf/izip-common.h                             |    4 +-
 libs/vxf/libvxf.vers                               |    2 +-
 libs/vxf/libvxf.vers.h                             |    1 +
 libs/vxf/libwvxf.vers                              |    2 +-
 libs/vxf/lower-case-tech-reads.c                   |  111 -
 libs/vxf/math-funcs-impl.h                         |    2 +-
 libs/vxf/simple-sub-select.c                       |   79 +-
 libs/vxf/sprintf.c                                 | 1308 +-
 libs/vxf/unzip.c                                   |   16 +-
 libs/vxf/vec-sum.c                                 |  214 +-
 libs/vxf/wgs-tokenize-accession.c                  |  212 -
 libs/wgsxf/Makefile                                |  138 -
 libs/wgsxf/build_read_type.c                       |  113 -
 libs/wgsxf/build_scaffold.c                        |  388 -
 libs/wgsxf/libwgsxf.vers                           |    1 -
 libs/wgsxf/libwwgsxf.vers                          |    1 -
 tools/Makefile                                     |   25 +-
 tools/align-info/Makefile                          |   37 +-
 tools/align-info/align-info.c                      |  547 +-
 tools/align-info/align-info.vers                   |    2 +-
 tools/align-info/align-info.vers.h                 |    1 +
 tools/bam-loader/Globals.h                         |   90 -
 tools/bam-loader/KFileHelper.c                     |  142 -
 tools/bam-loader/KFileHelper.h                     |   48 -
 tools/bam-loader/KVPFile.c                         |  355 -
 tools/bam-loader/KVPFile.h                         |  164 -
 tools/bam-loader/Makefile                          |  136 -
 tools/bam-loader/alignment-writer.c                |  176 -
 tools/bam-loader/alignment-writer.h                |   95 -
 tools/bam-loader/analysis.c                        |  157 -
 tools/bam-loader/analysis.h                        |   49 -
 tools/bam-loader/bam-load.vers                     |    1 -
 tools/bam-loader/bam-loader.c                      |  987 -
 tools/bam-loader/hashtable.c                       |  878 -
 tools/bam-loader/hashtable.h                       |   55 -
 tools/bam-loader/loader-imp.c                      | 2097 -
 tools/bam-loader/loader-imp.h                      |   29 -
 tools/bam-loader/reference-writer.c                |  447 -
 tools/bam-loader/reference-writer.h                |   69 -
 tools/bam-loader/sequence-writer.c                 |  345 -
 tools/bam-loader/sequence-writer.h                 |   84 -
 tools/cg-load/Makefile                             |  119 -
 tools/cg-load/cg-load.c                            | 1120 -
 tools/cg-load/cg-load.vers                         |    1 -
 tools/cg-load/debug.h                              |   34 -
 tools/cg-load/defs.h                               |  136 -
 tools/cg-load/f1_3.c                               |   76 -
 tools/cg-load/f1_5.c                               |   76 -
 tools/cg-load/f2_0.c                               |   79 -
 tools/cg-load/f2_2.c                               |   95 -
 tools/cg-load/factory-cmn.h                        |   61 -
 tools/cg-load/factory-evidence-dnbs.c              |  351 -
 tools/cg-load/factory-evidence-dnbs.h              |   43 -
 tools/cg-load/factory-evidence-intervals.c         |  306 -
 tools/cg-load/factory-evidence-intervals.h         |   43 -
 tools/cg-load/factory-file.h                       |   43 -
 tools/cg-load/factory-mappings.c                   |  338 -
 tools/cg-load/factory-mappings.h                   |   43 -
 tools/cg-load/factory-reads.c                      |  261 -
 tools/cg-load/factory-reads.h                      |   43 -
 tools/cg-load/file-version-factory.c               |  157 -
 tools/cg-load/file.c                               |  403 -
 tools/cg-load/file.h                               |  330 -
 tools/cg-load/writer-algn.c                        |  775 -
 tools/cg-load/writer-algn.h                        |   62 -
 tools/cg-load/writer-evidence-dnbs.c               |  227 -
 tools/cg-load/writer-evidence-dnbs.h               |   88 -
 tools/cg-load/writer-evidence-intervals.c          |  255 -
 tools/cg-load/writer-evidence-intervals.h          |   68 -
 tools/cg-load/writer-seq.c                         |  135 -
 tools/cg-load/writer-seq.h                         |   58 -
 tools/fastq-loader/Makefile                        |  222 -
 tools/fastq-loader/fastq-grammar.c                 | 2100 -
 tools/fastq-loader/fastq-grammar.y                 |  294 -
 tools/fastq-loader/fastq-lex.c                     | 2418 -
 tools/fastq-loader/fastq-lex.l                     |  294 -
 tools/fastq-loader/fastq-loader.c                  |  541 -
 tools/fastq-loader/fastq-parse.h                   |  140 -
 tools/fastq-loader/fastq-reader.c                  |  701 -
 tools/fastq-loader/fastq-reader.h                  |   50 -
 tools/fastq-loader/fastq-tokens.h                  |   64 -
 tools/fastq-loader/latf-load.vers                  |    1 -
 tools/fastq-loader/loader-imp.c                    |  242 -
 tools/kar/Makefile                                 |   34 +-
 tools/kar/kar.c                                    |  104 +-
 tools/kar/kar.vers                                 |    2 +-
 tools/kar/kar.vers.h                               |    1 +
 tools/kar/sra-kar.c                                |   37 +-
 tools/kar/sra-kar.vers                             |    2 +-
 tools/kar/sra-kar.vers.h                           |    1 +
 tools/nenctool/Makefile                            |  123 -
 tools/nenctool/nenctest.c                          |  502 -
 tools/nenctool/nenctest.vers                       |    1 -
 tools/nenctool/nenctool.c                          |  446 -
 tools/nenctool/nenctool.vers                       |    1 -
 tools/nencvalid/Makefile                           |  111 -
 tools/nencvalid/nencvalid.c                        |  683 -
 tools/nencvalid/nencvalid.vers                     |    1 -
 tools/prefetch/Makefile                            |  111 -
 tools/prefetch/prefetch.c                          | 1177 -
 tools/prefetch/prefetch.vers                       |    1 -
 tools/refseq-load/Makefile                         |   26 +-
 tools/refseq-load/context.c                        |  115 +-
 tools/refseq-load/context.h                        |    8 +-
 tools/refseq-load/definitions.h                    |    4 +
 tools/refseq-load/refseq-load.c                    |  468 +-
 tools/refseq-load/refseq-load.vers                 |    2 +-
 tools/refseq-load/refseq-load.vers.h               |    1 +
 tools/sam-dump/#Makefile#                          |  118 -
 tools/sam-dump/Makefile                            |   38 +-
 tools/sam-dump/sam-dump.c                          | 5607 +-
 tools/sam-dump/sam-dump.vers                       |    2 +-
 tools/sam-dump/sam-dump.vers.h                     |    1 +
 tools/sra-dbcc/#Makefile#                          |  126 -
 tools/sra-dbcc/Makefile                            |   40 +-
 tools/sra-dbcc/sra-dbcc.c                          | 1464 +-
 tools/sra-dbcc/sra-dbcc.vers                       |    2 +-
 tools/sra-dbcc/sra-dbcc.vers.h                     |    1 +
 tools/sra-dump/Makefile                            |   46 +-
 tools/sra-dump/abi-dump.vers                       |    2 +-
 tools/sra-dump/abi-dump.vers.h                     |    1 +
 tools/sra-dump/abi.c                               |  118 +-
 tools/sra-dump/core.c                              | 1454 +-
 tools/sra-dump/core.h                              |    2 +-
 tools/sra-dump/factory.c                           |   77 +-
 tools/sra-dump/factory.h                           |   23 +-
 tools/sra-dump/fasta_dump.c                        |  752 -
 tools/sra-dump/fasta_dump.h                        |   36 -
 tools/sra-dump/fastq-dump.vers                     |    2 +-
 tools/sra-dump/fastq-dump.vers.h                   |    1 +
 tools/sra-dump/fastq.c                             | 3503 +-
 tools/sra-dump/illumina-dump.vers                  |    2 +-
 tools/sra-dump/illumina-dump.vers.h                |    1 +
 tools/sra-dump/illumina.c                          |  110 +-
 tools/sra-dump/sff-dump.vers                       |    2 +-
 tools/sra-dump/sff-dump.vers.h                     |    1 +
 tools/sra-dump/sff.c                               |   23 +-
 tools/sra-dump/sra-dump.c                          |   60 +-
 tools/sra-dump/sra-dump.vers                       |    2 +-
 tools/sra-dump/sra-dump.vers.h                     |    1 +
 tools/sra-load/Makefile                            |   36 +-
 tools/sra-load/abi-load.vers                       |    2 +-
 tools/sra-load/abi-load.vers.h                     |    1 +
 tools/sra-load/absolid-fmt.c                       |    6 +
 tools/sra-load/common-xml.c                        |   79 +-
 tools/sra-load/common-xml.h                        |   30 +-
 tools/sra-load/experiment-xml.c                    |  170 +-
 tools/sra-load/experiment-xml.h                    |    1 +
 tools/sra-load/fastq-fmt.c                         |   33 +-
 tools/sra-load/fastq-load.vers                     |    2 +-
 tools/sra-load/fastq-load.vers.h                   |    1 +
 tools/sra-load/helicos-fmt.c                       |    5 +
 tools/sra-load/helicos-load.vers                   |    2 +-
 tools/sra-load/helicos-load.vers.h                 |    1 +
 tools/sra-load/illumina-fmt.c                      |    5 +
 tools/sra-load/illumina-load.vers                  |    2 +-
 tools/sra-load/illumina-load.vers.h                |    1 +
 tools/sra-load/loader-file.c                       |    9 +-
 tools/sra-load/loader-file.h                       |    4 +-
 tools/sra-load/loader-fmt.h                        |    1 -
 tools/sra-load/loader.c                            |   66 +-
 tools/sra-load/run-xml.c                           |    5 +-
 tools/sra-load/run-xml.h                           |    3 +-
 tools/sra-load/sff-fmt.c                           |    5 +
 tools/sra-load/sff-load.vers                       |    2 +-
 tools/sra-load/sff-load.vers.h                     |    1 +
 tools/sra-load/srf-fmt.c                           |    5 +
 tools/sra-load/srf-load.vers                       |    2 +-
 tools/sra-load/srf-load.vers.h                     |    1 +
 tools/sra-load/writer-absolid.c                    |   10 +-
 tools/sra-load/writer-absolid.h                    |    5 +-
 tools/sra-pileup/Makefile                          |  152 -
 tools/sra-pileup/cg_tools.c                        |  532 -
 tools/sra-pileup/cg_tools.h                        |   64 -
 tools/sra-pileup/cmdline_cmn.c                     | 1042 -
 tools/sra-pileup/cmdline_cmn.h                     |  133 -
 tools/sra-pileup/debug.h                           |   34 -
 tools/sra-pileup/inputfiles.c                      |  376 -
 tools/sra-pileup/inputfiles.h                      |   99 -
 tools/sra-pileup/matecache.c                       |  439 -
 tools/sra-pileup/matecache.h                       |  119 -
 tools/sra-pileup/out_redir.c                       |  120 -
 tools/sra-pileup/out_redir.h                       |   64 -
 tools/sra-pileup/read_fkt.c                        |  338 -
 tools/sra-pileup/read_fkt.h                        |   63 -
 tools/sra-pileup/reref.c                           |  498 -
 tools/sra-pileup/reref.h                           |   48 -
 tools/sra-pileup/sam-aligned.c                     | 1604 -
 tools/sra-pileup/sam-aligned.h                     |   45 -
 tools/sra-pileup/sam-dump-opts.c                   | 1493 -
 tools/sra-pileup/sam-dump-opts.h                   |  277 -
 tools/sra-pileup/sam-dump.c                        | 4917 --
 tools/sra-pileup/sam-dump.vers                     |    1 -
 tools/sra-pileup/sam-dump3.c                       |  532 -
 tools/sra-pileup/sam-hdr.c                         |  425 -
 tools/sra-pileup/sam-hdr.h                         |   41 -
 tools/sra-pileup/sam-unaligned.c                   | 1411 -
 tools/sra-pileup/sam-unaligned.h                   |   43 -
 tools/sra-pileup/sra-pileup.c                      | 1834 -
 tools/sra-pileup/sra-pileup.vers                   |    1 -
 tools/sra-sort/Makefile                            |  141 -
 tools/sra-sort/buff-writer.c                       |  785 -
 tools/sra-sort/buff-writer.h                       |   64 -
 tools/sra-sort/caps.c                              |  125 -
 tools/sra-sort/caps.h                              |   70 -
 tools/sra-sort/capture-first-half-aligned.c        |  192 -
 tools/sra-sort/col-pair.c                          |  816 -
 tools/sra-sort/col-pair.h                          |  323 -
 tools/sra-sort/csra-pair.c                         |  216 -
 tools/sra-sort/csra-pair.h                         |   84 -
 tools/sra-sort/csra-tbl.c                          |  783 -
 tools/sra-sort/csra-tbl.h                          |   83 -
 tools/sra-sort/ctx.h                               |  105 -
 tools/sra-sort/db-pair.c                           |  883 -
 tools/sra-sort/db-pair.h                           |  208 -
 tools/sra-sort/dir-pair.c                          |  504 -
 tools/sra-sort/dir-pair.h                          |  124 -
 tools/sra-sort/dump-blob-boundaries.c              |  203 -
 tools/sra-sort/except.c                            |  231 -
 tools/sra-sort/except.h                            |  160 -
 tools/sra-sort/gcc-ped.sh                          |   39 -
 tools/sra-sort/glob-poslen.c                       |  349 -
 tools/sra-sort/glob-poslen.h                       |   95 -
 tools/sra-sort/id-mapper-col.c                     |  260 -
 tools/sra-sort/id-mapper-col.h                     |   55 -
 tools/sra-sort/idx-mapping.c                       |   92 -
 tools/sra-sort/idx-mapping.h                       |   59 -
 tools/sra-sort/map-file.c                          | 1192 -
 tools/sra-sort/map-file.h                          |  172 -
 tools/sra-sort/mapping-row-set.c                   |  496 -
 tools/sra-sort/mem.c                               |   68 -
 tools/sra-sort/mem.h                               |  128 -
 tools/sra-sort/membank-priv.h                      |   44 -
 tools/sra-sort/membank.c                           |  296 -
 tools/sra-sort/meta-pair.c                         |  458 -
 tools/sra-sort/meta-pair.h                         |  109 -
 tools/sra-sort/paged-membank.c                     |  244 -
 tools/sra-sort/paged-mmapbank.c                    |  399 -
 tools/sra-sort/poslen-col-pair.c                   |  559 -
 tools/sra-sort/poslen-col-pair.h                   |   63 -
 tools/sra-sort/ref-alignid-col.c                   |  705 -
 tools/sra-sort/ref-alignid-col.h                   |   53 -
 tools/sra-sort/row-set-priv.h                      |   44 -
 tools/sra-sort/row-set.c                           |  208 -
 tools/sra-sort/row-set.h                           |  215 -
 tools/sra-sort/run.c                               |  388 -
 tools/sra-sort/simple-row-set.c                    |  212 -
 tools/sra-sort/sort-defs.h                         |   82 -
 tools/sra-sort/sorting-row-set.c                   |  405 -
 tools/sra-sort/sra-sort.c                          |  754 -
 tools/sra-sort/sra-sort.h                          |  171 -
 tools/sra-sort/sra-sort.vers                       |    1 -
 tools/sra-sort/status.h                            |   48 -
 tools/sra-sort/tbl-pair.c                          | 1055 -
 tools/sra-sort/tbl-pair.h                          |  209 -
 tools/sra-sort/xcheck-ref-align.c                  |  404 -
 tools/sra-sort/xcheck.h                            |   49 -
 tools/sra-stat/Makefile                            |   42 +-
 tools/sra-stat/sra-stat.c                          | 2353 +-
 tools/sra-stat/sra-stat.vers                       |    2 +-
 tools/sra-stat/sra-stat.vers.h                     |    1 +
 tools/srapath/Makefile                             |   96 -
 tools/srapath/srapath.c                            |  283 -
 tools/srapath/srapath.vers                         |    1 -
 tools/util/Makefile                                |  131 +-
 tools/util/kdbmeta.c                               |  545 +-
 tools/util/kdbmeta.vers                            |    2 +-
 tools/util/kdbmeta.vers.h                          |    1 +
 tools/util/rcexplain.vers                          |    2 +-
 tools/util/rcexplain.vers.h                        |    1 +
 tools/util/rowwritetest.c                          |   14 +-
 tools/util/rowwritetest.vers                       |    2 +-
 tools/util/syspass-priv.h                          |   44 -
 tools/util/test-sra.c                              | 1165 -
 tools/util/test-sra.vers                           |    1 -
 tools/util/testld.vers                             |    2 +-
 tools/util/txt2kdb.vers                            |    2 +-
 tools/util/unix/syspass.c                          |   62 -
 tools/util/vdb-lock.c                              |    4 +-
 tools/util/vdb-lock.vers                           |    2 +-
 tools/util/vdb-lock.vers.h                         |    1 +
 tools/util/vdb-passwd.c                            |  276 -
 tools/util/vdb-passwd.vers                         |    1 -
 tools/util/vdb-unlock.c                            |    4 +-
 tools/util/vdb-unlock.vers                         |    2 +-
 tools/util/vdb-unlock.vers.h                       |    1 +
 tools/util/win/syspass.c                           |   53 -
 tools/vdb-config/Makefile                          |   25 +-
 tools/vdb-config/vdb-config.c                      |  386 +-
 tools/vdb-config/vdb-config.vers                   |    2 +-
 tools/vdb-config/vdb-config.vers.h                 |    1 +
 tools/vdb-copy/#Makefile#                          |  137 -
 tools/vdb-copy/Makefile                            |   37 +-
 tools/vdb-copy/coldefs.c                           |   43 +-
 tools/vdb-copy/coldefs.h                           |    2 +-
 tools/vdb-copy/context.c                           |    4 -
 tools/vdb-copy/context.h                           |    8 -
 tools/vdb-copy/copy_meta.c                         |  165 +-
 tools/vdb-copy/definitions.h                       |    2 -
 tools/vdb-copy/helper.c                            |   14 +-
 tools/vdb-copy/helper.h                            |    3 +-
 tools/vdb-copy/namelist_tools.c                    |    2 +-
 tools/vdb-copy/num-gen.c                           |   10 +-
 tools/vdb-copy/progressbar.c                       |   18 +-
 tools/vdb-copy/redactval.c                         |    1 +
 tools/vdb-copy/type_matcher.c                      |   24 +-
 tools/vdb-copy/vdb-copy-includes.h                 |    2 -
 tools/vdb-copy/vdb-copy.c                          |  119 +-
 tools/vdb-copy/vdb-copy.vers                       |    2 +-
 tools/vdb-copy/vdb-copy.vers.h                     |    1 +
 tools/vdb-decrypt/Makefile                         |  130 -
 tools/vdb-decrypt/shared.c                         | 1270 -
 tools/vdb-decrypt/shared.h                         |   93 -
 tools/vdb-decrypt/vdb-decrypt.c                    |  280 -
 tools/vdb-decrypt/vdb-decrypt.vers                 |    1 -
 tools/vdb-decrypt/vdb-encrypt.c                    |  227 -
 tools/vdb-decrypt/vdb-encrypt.vers                 |    1 -
 tools/vdb-dump/#Makefile#                          |  130 -
 tools/vdb-dump/Makefile                            |   39 +-
 tools/vdb-dump/vdb-dump-coldefs.c                  |  258 +-
 tools/vdb-dump/vdb-dump-coldefs.h                  |    4 +-
 tools/vdb-dump/vdb-dump-context.c                  |   79 +-
 tools/vdb-dump/vdb-dump-context.h                  |   17 +-
 tools/vdb-dump/vdb-dump-filter.c                   |    4 +-
 tools/vdb-dump/vdb-dump-formats.c                  |   55 +-
 tools/vdb-dump/vdb-dump-helper.c                   |   78 +-
 tools/vdb-dump/vdb-dump-helper.h                   |    2 +-
 tools/vdb-dump/vdb-dump-num-gen.c                  |    4 +-
 tools/vdb-dump/vdb-dump-num-gen.h                  |    3 +-
 tools/vdb-dump/vdb-dump-row-context.h              |    1 -
 tools/vdb-dump/vdb-dump-str.c                      |   32 +-
 tools/vdb-dump/vdb-dump-tools.c                    |    1 +
 tools/vdb-dump/vdb-dump.c                          |  767 +-
 tools/vdb-dump/vdb-dump.vers                       |    2 +-
 tools/vdb-dump/vdb-dump.vers.h                     |    1 +
 tools/vdb-validate/Makefile                        |  114 -
 tools/vdb-validate/vdb-validate.c                  | 2325 -
 tools/vdb-validate/vdb-validate.vers               |    1 -
 1065 files changed, 16902 insertions(+), 475197 deletions(-)

diff --git a/tools/sra-sort/Makefile.cc b/CHANGES
similarity index 86%
rename from tools/sra-sort/Makefile.cc
rename to CHANGES
index ca33e13..63d53dc 100644
--- a/tools/sra-sort/Makefile.cc
+++ b/CHANGES
@@ -22,3 +22,9 @@
 #
 # ===========================================================================
 
+
+The NCBI SRA Software Development Kit
+Contact: sra-tools at ncbi.nlm.nih.gov
+
+Release documentation is now being delivered at
+http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software
diff --git a/Makefile b/Makefile
index b556f1a..85bb82c 100644
--- a/Makefile
+++ b/Makefile
@@ -47,6 +47,17 @@ $(SUBDIRS) test:
 .PHONY: default $(SUBDIRS) test
 
 #-------------------------------------------------------------------------------
+# static vs. dynamic
+#
+static:
+	@ touch "$(CURDIR)/build/STATIC"
+
+dynamic:
+	@ rm -f "$(CURDIR)/build/STATIC"
+
+.PHONY: static dynamic
+
+#-------------------------------------------------------------------------------
 # all
 #
 SUBDIRS_ALL = $(addsuffix _all,$(SUBDIRS))
@@ -78,45 +89,27 @@ SUBDIRS_CLEAN = $(addsuffix _clean,$(SUBDIRS_ALL))
 clean: $(SUBDIRS_CLEAN)
 
 $(SUBDIRS_CLEAN):
-	@ $(MAKE) -s -C $(subst _all_clean,,$@) clean
+	@ $(MAKE) -C $(subst _all_clean,,$@) clean
 
 .PHONY: clean $(SUBDIRS_CLEAN)
 
 
 #-------------------------------------------------------------------------------
-# runtests
-#
-SUBDIRS_RUNTESTS = $(addsuffix _runtests, libs tools test)
-
-runtests: std $(SUBDIRS_RUNTESTS)
-
-$(SUBDIRS_RUNTESTS):
-	@ $(MAKE) -C $(subst _runtests,,$@) runtests
-
-.PHONY: runtests $(SUBDIRS_RUNTESTS)
-
-#-------------------------------------------------------------------------------
 # pass-through targets
 #
-COMPILERS = GCC VC++ CLANG
-ARCHITECTURES = i386 x86_64 sparc32 sparc64
-CONFIG = debug profile release static dynamic
-PUBLISH = scm pubtools
-REPORTS = bindir targdir osdir config compilers architecture architectures
+COMPILERS = GCC ICC VC++
+ARCHITECTURES = i386 x86_64
+CONFIG = debug profile release
 PASSTHRUS = \
-	out \
+	out bindir \
 	CC $(COMPILERS) \
 	$(ARCHITECTURES) \
-	$(CONFIG) $(PUBLISH)
+	$(CONFIG)
 
 $(PASSTHRUS):
-	@ $(MAKE) -s TOP=$(CURDIR) -f build/Makefile.env $@
-	@ $(MAKE) -s TOP=$(CURDIR) -f build/Makefile.env rebuild-dirlinks config
-
-$(REPORTS):
-	@ $(MAKE) -s TOP=$(CURDIR) -f build/Makefile.env $@
+	@ $(MAKE) TOP=$(CURDIR) -f build/Makefile.env $@
 
-.PHONY: $(PASSTHRUS) $(REPORTS)
+.PHONY: $(PASSTHRUS)
 
 
 #-------------------------------------------------------------------------------
diff --git a/README b/README
index b9cb81e..6abcab1 100644
--- a/README
+++ b/README
@@ -32,8 +32,26 @@ http://trace.ncbi.nlm.nih.gov/Traces/sra/std
 The SRA Toolkit and SDK from NCBI is a collection of tools and
 libraries for using data in the INSDC Sequence Read Archives.
 
-With this release, NCBI has implemented Automatic Remote Access by accession,
-making it possible to access data using NCBI servers without prior download.
+With this release, NCBI has implemented Compression by Reference, a
+sequence alignment compression process for storing sequence data.
+Currently BAM, Complete Genomics and Illumina export.txt formats
+contain alignment information. Compression by Reference only stores
+the difference in base pairs between sequence data and the segments it
+aligns to.  The decompression process to restore original data such as
+fastq-dump would require fast access to the actual sequences of the
+references. NCBI recommends that SRA users dedicate local disk space
+to store local references downloaded from the NCBI SRA site. Linked
+references should be in a location accessible by the SRA Reader
+software.
+
+Older files in the NCBI system may not have been compressed using
+Compression by Reference.  For more information on how to use
+Reference-based compressed files, download local references, and use
+related tools please refer to Compression by Reference file on the
+NCBI SRA website:
+
+    "http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=softwareReadme"
+
 
 For additional information on using and building the toolkit,
 please visit our web site at:
diff --git a/README-WINDOWS.txt b/README-WINDOWS.txt
index fc27bf0..6a72a3b 100644
--- a/README-WINDOWS.txt
+++ b/README-WINDOWS.txt
@@ -29,21 +29,6 @@ The NCBI SRA ( Sequence Read Archive ) SDK ( Software Development Kit )
 Contact: sra-tools at ncbi.nlm.nih.gov
 
 
-NOTICE:
-
-  Effective as of release 2.1.8, NCBI is no longer supporting public sources for
-  Windows builds. The sources will still contain everything that we use to build
-  the binaries, but may not build in your environment.
-
-  The reason for this change has to do with dependencies upon third party
-  libraries, which are commonly installed on other platforms, but could be
-  described as "hit and miss" on Windows. When the libraries DO exist, it is
-  difficult to know if they have a correct or compatible calling convention.
-
-  We will continue to distribute pre-built binaries for Windows. You are welcome
-  to try your luck at compiling the sources yourself under Cygwin.
-
-
 ENVIRONMENT:
 
   The Windows build uses the same makefiles as Linux and Mac, and has
diff --git a/README-build.txt b/README-build
similarity index 59%
rename from README-build.txt
rename to README-build
index 300f138..fe1d722 100644
--- a/README-build.txt
+++ b/README-build
@@ -30,8 +30,9 @@ Contact: sra-tools at ncbi.nlm.nih.gov
 http://trace.ncbi.nlm.nih.gov/Traces/sra/std
 
 
-This version of the NCBI SRA SDK generates tools with their respective libraries
-for building new and accessing existing runs. It may be built with GCC.
+This version of the NCBI SRA SDK generates loading and dumping tools with
+their respective libraries for building new and accessing existing runs.
+It may be built with GCC, ICC or Microsoft VC++.
 
 
 REQUIREMENTS:
@@ -39,30 +40,45 @@ REQUIREMENTS:
 This software release was designed to run under Linux, MacOSX and Windows
 operating systems on Intel x86-compatible 32 and 64 bit architectures.
 
-  ar                # tested with version 2.22
+  ar                # tested with version 2.15.90
   bash              # certain scripts require bash
-  make              # GNU make version 3.81 or later
-  gcc, g++          # tested with 4.4.2, but should work with others
-  libxml2           # tested with version 2.7.6
-  libcurl           # tested with version 7.27
+  make              # GNU make version 3.80 or later
+  gcc, g++          # tested with 4.1.2, but should work with others
+  libz              # version 1
+  libbz2            # version 1
+  libxml2           # tested with version 2.6.7 [Linux and Mac only]
+
+If your system does NOT have libz or libbz2, or if the build fails due to
+missing one of the expected libraries, try running "make all" which will
+attempt to download the sources to libz and libbz2 and build them.
+
+OPTIONS:
+
+Specific versions of ICC are supported as an alternate compiler.
+
+  icc, icpc         # tested with 11.0 (64-bit) and 10.1 (32-bit)
+                    # 32-bit 11.0 does not work
 
 WINDOWS BUILD:
 
-The Windows build uses the same make files as Linux and Mac, and has been tested
+The Windows build uses the same makefiles as Linux and Mac, and has been tested
 under Cygwin. You need to execute Cygwin AFTER sourcing the Microsoft batch file
 from Visual Studio.
 
 
 CONTENTS:
 
+  CHANGES           # describes changes at pertinent levels
   Makefile          # drives configuration and sub-target builds
   README
   README-WINDOWS.txt
+  USAGE
   build             # holds special makefiles and configuration
   interfaces        # contains module interfaces, schema, plus
                       compiler and platform specific includes
   libs              # sdk library code
   tools             # toolkit code
+  test              # testing code
 
 
 CONFIGURATION:
@@ -78,28 +94,6 @@ instructions below, x86_64 is the assumed architecture. If your host
 is i386 (32-bit), then you would substitute 32 for paths that contain
 64.
 
-Running "make help" will list more details of how your build may
-be configured:
-
-  Before initial build, run 'make OUTDIR=<dir> out' from
-  the project root to set the output directory of your builds.
-
-  To select a compiler, run 'make <comp>' where
-  comp = { GCC VC++ CLANG }.
-
-  For hosts that support cross-compilation ( only Macintosh today ),
-  you can run 'make <arch>' where arch = { i386 x86_64 sparc32 sparc64 }.
-
-  To set a build configuration, run 'make <config>' where
-  config = { debug profile release static dynamic }.
-
-Running "make config" will show the current configuration, e.g.:
-
-  current build is linux static rel x86_64 build using gcc tools
-  output target directory is '$PATH_TO_OUTPUT/linux/gcc/stat/x86_64/rel'
-
-where "$PATH_TO_OUTPUT" is local to your system, of course.
-
 
 BUILD INSTRUCTIONS:
 
@@ -139,15 +133,17 @@ The standard make will cause default libraries and tools to be built. Binary
 executables and both shared and static libraries can be found in their
 respective output directories.
 
+If the build fails due to not finding libz or libbz2, try:
+
+  $ make all           # see note above on libraries
+
 
 STATIC BUILD RESULTS:
 
 <OUTDIR>/bin64/         # (bin32 for 32-bit builds)
   abi-dump              # dump to ABI-native format
   abi-load              # load from ABI-native format
-  align-info            # retrieve information from SRA alignment object (cSRA)
-  bam-load              # load from BAM format into SRA (cSRA)
-  cg-load               # load from Complete Genomics native format
+  align-info            # retrieve information from cSRA object
   fastq-dump            # dump to FASTQ format
   fastq-load            # load from FASTQ format
   helicos-load          # load from Helicos native format
@@ -155,54 +151,41 @@ STATIC BUILD RESULTS:
   illumina-load         # load from Illumina-native format
   kar                   # single file archive utility
   kdbmeta               # access db, table or column metadata
-  latf-load             # generic FASTQ loader
-  prefetch              # tool to download runs from NCBI by accession
   rcexplain             # return code display utility
   sam-dump              # dump to SAM format from cSRA
   sff-dump              # dumps 454 runs in SFF format
   sff-load              # load from SFF format
+  sra-dbcc              # consistency checker
   sra-kar               # sra-specific kar tool
-  sra-pileup            # produces SAM-style pileup information from SRA (cSRA)
-  sra-sort              # canonically orders SRA (cSRA) data for improved access
   sra-stat              # gather run statistics and print to stdout
-  srapath               # returns the full location of an object by accession
   srf-load              # load from SRF format
-  test-sra              # test user's environment for configuration and libraries
-  vdb-config            # display and/or modify user configuration
   vdb-copy              # tool to copy tables
-  vdb-decrypt           # tool to decrypt files from dbGap
   vdb-dump              # dump rows in a textual format
-  vdb-encrypt           # to to (re)encrypt files using dbGap encryption key
   vdb-lock              # locks an object against modification
   vdb-unlock            # unlocks an object
 
+<OUTDIR>/bin64/ncbi     # (bin32 for 32-bit builds)
+  config.kfg            # simple text file for configuring file system
+
 <OUTDIR>/lib64/         # (lib32 for 32-bit builds)
-  libalign-access       # BAM format reading API
-  libalign-reader       # SRA (cSRA) alignment reading API
-  libbz2                # bzip2 library
-  libkdb                # physical layer reading library
-  libkfg                # configuration library
-  libkfs                # physical file system library
-  libklib               # support library
-  libkproc              # process synchronization library
-  libkq                 # cross-thread queue library
-  libkrypto             # cryptographic library
-  libsproc              # single-threaded stub library
-  libksrch              # search algorithm library
-  libkurl               # interface to libcurl
-  libkxfs               # XML to filesystem library
-  libkxml               # XML container support library
-  libload               # loader tool utility library
-  libsradb              # API for accessing sra
-  libsrareader          # reader library
-  libsraschema          # version of SRA schema for reading
-  libvdb                # virtual layer reading library
-  libvfs                # virtual file system library
-  libwkdb               # physical layer update library
-  libwsradb             # update API for SRA
-  libwsraschema         # version of SRA schema for update
-  libwvdb               # virtual layer update library
-  libz                  # gzip library
+  libkdb                # static physical layer reading library
+  libkfg                # static configuration library
+  libkfs                # static file system library
+  libklib               # static support library
+  libkproc              # static process synchronization library
+  libkq                 # static cross-thread queue library
+  libksproc             # static single-threaded emulation library
+  libksrch              # static search algorithm library
+  libkxfs               # static XML to filesystem library
+  libkxml               # static XML container support library
+  libload               # static loader tool utility library
+  libsradb              # static API for accessing sra
+  libsrareader          # static reader library
+  libsraschema          # static version of SRA schema
+  libvdb                # static virtual layer reading library
+  libwkdb               # static physical layer update library
+  libwsradb             # static update API for SRA
+  libwvdb               # static virtual layer update library
 
 <OUTDIR>/mod64/         # (mod32 for 32-bit builds)
   -- empty --
@@ -217,43 +200,38 @@ DYNAMIC BUILD RESULTS:
 <OUTDIR>/bin64/         # (bin32 for 32-bit builds)
   -- same as static --
 
+<OUTDIR>/bin64/ncbi     # (bin32 for 32-bit builds)
+  -- empty --
+
 <OUTDIR>/lib64/         # (lib32 for 32-bit builds)
-  libalign-access       # BAM format reading API
-  libalign-reader       # SRA (cSRA) alignment reading API
-  libbz2                # static bzip2 library
   libkdb                # physical layer reading library
   libkfg                # configuration library
-  libkfs                # physical file system library
+  libkfs                # file system library
   libklib               # support library
   libkproc              # process synchronization library
   libkq                 # cross-thread queue library
-  libkrypto             # cryptographic library
-  libsproc              # single-threaded stub library
+  libksproc             # single-threaded emulation library
   libksrch              # search algorithm library
-  libkurl               # interface to libcurl
   libkxfs               # XML to filesystem library
   libkxml               # XML container support library
   libload               # loader tool utility library
+  libsra-schema         # weak-linked sra schema
   libsradb              # API for accessing sra
+  libsrapath            # weak-link stubs for srapath
   libsrareader          # reader library
-  libsraschema          # static version of SRA schema for reading
   libvdb                # virtual layer reading library
-  libvfs                # virtual file system library
   libwkdb               # physical layer update library
   libwsradb             # update API for SRA
-  libwsraschema         # static version of SRA schema for update
   libwvdb               # virtual layer update library
-  libz                  # static gzip library
+
+<OUTDIR>/lib64/ncbi     # (lib32 for 32-bit builds)
+  config.kfg            # simple text file for configuring file system
 
 <OUTDIR>/mod64/         # (mod32 for 32-bit builds)
   libaxf                # cSRA-specific VDB external functions
-  libsraxf              # SRA-specific VDB external functions
+  libsraxf              # sra-specific VDB external functions
   libvxf                # generic VDB external functions
-  libwgsxf              # WGS-specific VDB external functions
 
 <OUTDIR>/wmod64/        # (wmod32 for 32-bit builds)
-  libwaxf               # cSRA-specific VDB external functions for update
-  libwsraxf             # SRA-specific VDB external functions for update
+  libwsraxf             # sra-specific VDB external functions for update
   libwvxf               # update VDB external functions
-  libwwgsxf             # WGS-specific VDB external functions for update
-
diff --git a/README-config.txt b/README-config.txt
deleted file mode 100644
index f64ffdb..0000000
--- a/README-config.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-The NCBI SRA ( Sequence Read Archive )
-
-
-Contact: sra-tools at ncbi.nlm.nih.gov
-http://trace.ncbi.nlm.nih.gov/Traces/sra/std
-
-About configuration-assistant:
-
-  configuration-assistant.perl will help you to configure the SRA tools to be able
-  to access the local reference repository and to download the correct references
-  for a given cSRA file.
-
-To run configuration-assistant on Linux or Mac:
-  - open a shell
-  - change directory to the folder where you extracted the toolkit (cd .../sratoolkit...),
-  - type 'perl configuration-assistant.perl' (without the quotation marks).
-
-
-To run configuration-assistant on Windows:
-
-  - open Command Prompt (Start->Run->cmd.exe),
-  - change directory to the folder where you extracted the toolkit (cd ...\sratoolkit.x.x.x-win64),
-  - type 'perl configuration-assistant.perl' (without the quotation marks).
-
-
-If the following message shows up:
-
-  "'perl' is not recognized as an internal or external command,
-    operable program or batch file."
-
-that means perl is not installed or not installed properly.
-
-Download Perl at ActiveState.com (http://www.activestate.com/activeperl/downloads)
diff --git a/USAGE b/USAGE
new file mode 100644
index 0000000..148122e
--- /dev/null
+++ b/USAGE
@@ -0,0 +1,162 @@
+# ===========================================================================
+#
+#                            PUBLIC DOMAIN NOTICE
+#               National Center for Biotechnology Information
+#
+#  This software/database is a "United States Government Work" under the
+#  terms of the United States Copyright Act.  It was written as part of
+#  the author's official duties as a United States Government employee and
+#  thus cannot be copyrighted.  This software/database is freely available
+#  to the public for use. The National Library of Medicine and the U.S.
+#  Government have not placed any restriction on its use or reproduction.
+#
+#  Although all reasonable efforts have been taken to ensure the accuracy
+#  and reliability of the software and data, the NLM and the U.S.
+#  Government do not and cannot warrant the performance or results that
+#  may be obtained by using this software or data. The NLM and the U.S.
+#  Government disclaim all warranties, express or implied, including
+#  warranties of performance, merchantability or fitness for any particular
+#  purpose.
+#
+#  Please cite the author in any work or product based on this material.
+#
+# ===========================================================================
+
+
+The NCBI SRA ( Sequence Read Archive ) Toolkit
+
+
+Contact: sra-tools at ncbi.nlm.nih.gov
+http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software
+
+
+For preliminary documentation on tool usage, consult the files within
+the "help" directory.
+
+
+CHANGES:
+
+SRA Toolkit includes new features in sam-dump tool and vdb-dump tools.  
+
+Sam-dump now supports slicing across multiple sequences, and dumping cSRA files to fasta and fastq formats. In addition, sam-dump has three new parameters
+-=|--hide-identical              Output '=' if base is identical to reference
+--gzip                           Compress output using gzip
+--bzip2                          Compress output using bzip2
+
+vdb-dump has two new parameters
+-o|--column_enum_short           enumerates columns in short form
+-b|--boolean                     defines how boolean's are printed (1,T)
+
+We have combined the functionality of two scripts, config-assistant.perl and reference-assistant.perl into a single script, configuration-assistant.perl that helps users download the correct references for a given cSRA file and configure the user environment for the SRA Toolkit.
+
+DESCRIPTION:
+
+ This release includes tools for reading the SRA archive, generally
+ by converting individual runs into some commonly used format such as
+ fastq. Support for NCBI's Compression by Reference is also included.
+
+ "Linux" binaries have been created on CentOS and SuSE Linux
+ distributions. They are not guaranteed to work on other
+ distributions. In particular, the version of libc.so should be
+ compatible. They are specific to the x86-family architectures.
+
+ "Windows" binaries have been created using MSVC's (not Cygwin)
+ tools. This release includes Win32 binaries. The "*-load" tools
+ are not released for "Windows".
+
+ "Mac OS X" binaries are available for the x86-family
+ architectures. They will NOT run on PPC Macs. The 64-bit binaries
+ will run only on OS 10.6. The 32-bit binaries should run on either
+ 10.5 or later.
+
+
+CONTENTS:
+
+ "abi-dump"            - dump ABI color-space runs into their native format
+ "abi-load"            - load ABI color-space runs
+ "fastq-dump"          - dump any run of any platform in FASTQ format
+ "fastq-load"          - load FASTQ runs
+ "helicos-load"        - load HELICOS runs
+ "illumina-dump"       - dump Illumina runs into their native format
+ "illumina-load"       - load Illumina native runs
+ "kar"                 - an archive extraction tool for .sra files
+ "kdbmeta"             - display the contents of one or more metadata stores
+ "rcexplain"           - print out error string for return codes (RC)
+ "refseq-load"         - ( NEW for Linux and Mac ) download a reference
+                         sequence object
+ "sff-dump"            - dump 454 runs into SFF format
+ "sff-load"            - load 454 SFF runs
+ "sra-dbcc"            - check SRA runs
+ "sra-dump"            - dump any run in a textual format [see note below]
+ "sra-kar"             - creates a single file archive from an SRA run
+ "sra-stat"            - display run column statistics
+ "srf-load"            - load SRF runs
+ "sam-dump"            - dump a cSRA into the SAM-format
+ "vdb-copy"            - copy SRA objects
+ "vdb-dump"            - display SRA objects in a textual format [see note below]
+ "vdb-lock"            - lock an object against modification
+ "vdb-unlock"          - unlock an object
+ "align-info"          - displays which references a csra-archive uses
+ "vdb-config"          - displays the configuration
+
+
+NOTES:
+
+ The "sam-dump" tool only works on cSRA's. ( See README-csra )
+ The textual dumpers "sra-dump" and "vdb-dump" are provided in this
+ release as an aid in visual inspection. It is likely that their
+ actual output formatting will be changed in the near future to a
+ stricter, more formalized representation[s].
+
+ The "help" information will be improved in near future releases, and
+ the tool options will become standardized across the set. We will
+ also be providing documentation on our web site.
+
+ Tool options may change in the next release. Version 1 tool options
+ will remain supported wherever possible in order to preserve
+ operation of any existing scripts.
+
+
+CAVEATS:
+
+ SRA tools are designed to handle very large amounts of data, and are
+ not currently oriented toward desktop use. They work well within any
+ Unix-like environment, such as Linux or MacOS's BSD shell.
+
+ Windows operation presents a few challenges. We have tested our
+ binaries under the MS "cmd.exe" shell and Cygwin's bash. Our tools
+ know how to accept paths in Windows, Cygwin, POSIX and MinGW
+ formats. Internally, all paths are treated as MinGW-style POSIX
+ paths, so any information appearing in output will reflect this
+ conversion:
+
+   # simple file names
+   SRR012345.sra                   => [NO CHANGE]
+
+   # relative paths
+   win\SRR012345.sra               => win/SRR012345.sra
+
+   # full or drive-relative paths
+   C:\sra\win\SRR012345.sra        => /C/sra/win/SRR012345.sra
+
+   # network paths
+   \\server\sra\SRR012345.sra      => //server/sra/SRR012345.sra
+
+   # POSIX paths
+   /sra/posix/SRR012345.sra        => [NO CHANGE]
+
+   # Cygwin full paths
+   /cygdrive/C/sra/SRR012345.sra   => /C/sra/SRR012345.sra
+
+ There are some situations where the software may behave unexpectedly
+ due to path conversions. In particular, since Windows does not
+ conform to POSIX path conventions, there may be difficulties
+ combining network paths with non-network paths, explicitly or
+ implicitly. IF YOU HAVE PROBLEMS, we recommend mounting file servers
+ as network drives.
+
+ If you run the software under Cygwin, you should take care to use
+ either relative paths (those that do not begin with '/') or full
+ paths that start with "/cygdrive/". The reason is that Cygwin
+ provides its own path manipulation, but our tools are not aware of
+ which shell they are running under.
diff --git a/build/BUILD.linux b/build/BUILD.linux
index 7d0ab7a..79f9a60 100644
--- a/build/BUILD.linux
+++ b/build/BUILD.linux
@@ -1 +1 @@
-dbg
+pub
diff --git a/build/BUILD.mac b/build/BUILD.mac
index 17640be..79f9a60 100644
--- a/build/BUILD.mac
+++ b/build/BUILD.mac
@@ -1 +1 @@
-rel
+pub
diff --git a/build/BUILD.win b/build/BUILD.win
index 17640be..79f9a60 100644
--- a/build/BUILD.win
+++ b/build/BUILD.win
@@ -1 +1 @@
-rel
+pub
diff --git a/build/COMP.mac b/build/COMP.mac
index e671fa2..90584dd 100644
--- a/build/COMP.mac
+++ b/build/COMP.mac
@@ -1 +1 @@
-clang
+gcc
diff --git a/build/LNKG.linux b/build/LNKG.linux
deleted file mode 100644
index d37cc1c..0000000
--- a/build/LNKG.linux
+++ /dev/null
@@ -1 +0,0 @@
-dyn
diff --git a/build/LNKG.mac b/build/LNKG.mac
deleted file mode 100644
index fa47d9e..0000000
--- a/build/LNKG.mac
+++ /dev/null
@@ -1 +0,0 @@
-stat
diff --git a/build/LNKG.win b/build/LNKG.win
deleted file mode 100644
index fa47d9e..0000000
--- a/build/LNKG.win
+++ /dev/null
@@ -1 +0,0 @@
-stat
diff --git a/build/Makefile.clang b/build/Makefile.clang
deleted file mode 100644
index 51d6c8a..0000000
--- a/build/Makefile.clang
+++ /dev/null
@@ -1,80 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-# compilers
-CC = @ $(TOP)/build/cc.sh $(OS) 'clang -c' \
-	 $(CHECKSUM) --objx $(OBJX) --cflags "$(CFLAGS)" -MD
-CP = @ $(TOP)/build/cc.sh $(OS) 'clang -xc++ -c' \
-	 $(CHECKSUM) --objx $(OBJX) --cflags "$(CPFLAGS)" -MD
-
-# C preprocessor
-PP = gcc -E $(CFLAGS)
-
-# linkers
-LD = @ $(TOP)/build/ld.sh $(OS) $(ARCH) gcc \
-	--build $(BUILD) --ldflags "$(LDFLAGS)" $(STATIC) \
-	$(STATICSYSLIBS) $(CHECKSUM) --objx $(OBJX) --shlx $(SHLX) --libx $(LIBX) \
-	-MD --srcdir $(SRCDIR) --bindir $(BINDIR) -L$(LIBDIR):$(ILIBDIR)
-
-LP = @ $(TOP)/build/ld.sh $(OS) $(ARCH) g++ \
-	--build $(BUILD) --ldflags "$(LDFLAGS)" $(STATIC) \
-	$(STATICSYSLIBS) $(CHECKSUM) --objx $(OBJX) --shlx $(SHLX) --libx $(LIBX) \
-	-MD --srcdir $(SRCDIR) --bindir $(BINDIR) -L$(LIBDIR):$(ILIBDIR)
-
-# tool options
-WARN = -Wall -Wno-variadic-macros -Wno-long-long # -Wconversion
-ifeq (linux,$(OS))
-    NO_ARRAY_BOUNDS_WARNING = -Wno-array-bounds
-endif
-
-ifeq (64,$(BITS))
-	CARCH = -m64
-else
-	CARCH = -m32
-endif
-
-ifeq (prof, $(BUILD))
-	PROF = -pg
-endif
-
-ifeq (dbg, $(BUILD))
-	DBG = -g
-	OPT = $(WARN)
-	NOPT = $(WARN)
-	# GCC seems unable to use c99 without ansi, which
-	# basically clobbers features back to c89. the options
-	# must be specified in the order shown.
-	PED = -std=c99 -ansi -pedantic # -fdiagnostics-show-option
-else
-
-ifeq (x86_64, $(ARCH))
-	OPT = -O3 -Wall -Wno-variadic-macros -fno-strict-aliasing
-else
-	OPT = -O3 -Wno-variadic-macros -fno-strict-aliasing
-endif
-endif
-
-# clang is designed to be a GCC substitute
-COMP_DAD = gcc
diff --git a/build/Makefile.env b/build/Makefile.env
index 4c32b99..3bef237 100644
--- a/build/Makefile.env
+++ b/build/Makefile.env
@@ -37,9 +37,8 @@ LIBEXT = $(LIBX) $(SHLX)
 # normally build static intermediate libs
 ILIBEXT = $(LIBX)
 
-# would normally only build dynamic library modules,
-# but some tools are expecting to be able to static link
-MODEXT = $(LIBX) $(SHLX)
+# only build dynamic library modules
+MODEXT = $(SHLX)
 
 # determine BUILD
 ifeq (,$(BUILD))
@@ -60,24 +59,27 @@ ifeq (rel,$(BUILD))
 endif
 ifeq (prof,$(BUILD))
 	DEBUG := -DNDEBUG -D_PROFILING
+	STATIC = --static
+endif
+ifeq (pub,$(BUILD))
+	DEBUG := -DNDEBUG
+	BUILDTYPE = rel
+	STATIC = --static
+	STATICSYSLIBS := --static-system-libs
 endif
 
+
 # allow for an all-static build
-ifeq (stat,$(LNKG))
-	STATIC = --static
+ifndef STATIC
+	STATIC = $(shell test -f $(TOP)/build/STATIC && echo "--static")
+endif
+ifeq (--static,$(STATIC))
 	LINKAGE := -D_STATIC
 	LIBEXT = $(LIBX)
 	ILIBEXT = $(LIBX)
 	MODEXT = $(LIBX)
-	STAT_OR_DYN = static
-	STATICSYSLIBS := --static-system-libs
-
-else
-	STAT_OR_DYN = dynamic
 endif
 
-LOCAL_OR_REMOTE = local
-
 
 # drop all suffix rules
 .SUFFIXES:
@@ -87,22 +89,9 @@ include $(TOP)/build/Makefile.$(OS)
 include $(TOP)/build/Makefile.$(COMP)
 include $(TOP)/build/Makefile.rules
 
-# external schema modules
-EXT_SCHEMA_MODULES = axf sraxf wgsxf vxf
-READONLY_SCHEMA_LIBS = $(addprefix -d,$(EXT_SCHEMA_MODULES))
-UPDATE_SCHEMA_LIBS = $(addprefix -dw,$(EXT_SCHEMA_MODULES))
-ALWAYS_STATIC_SCHEMA_LIBS = $(addprefix -s,$(EXT_SCHEMA_MODULES))
-
 # full directory paths
-OLD_TARGDIR = $(OUTDIR)/$(OSFLAV)/$(BUILD)/$(TOOLSET)/$(ARCH)
-TARGDIR = $(OUTDIR)/$(OSFLAV)/$(TOOLSET)/$(LNKG)/$(ARCH)/$(BUILD)
+TARGDIR = $(OUTDIR)/$(OSFLAV)/$(BUILD)/$(COMP)/$(ARCH)
 BINDIR = $(TARGDIR)/bin
-ifeq (win,$(OS))
-    # on Windows, place test executables next to .dlls
-    TEST_BINDIR = $(BINDIR)
-else
-    TEST_BINDIR = $(TARGDIR)/test-bin
-endif
 ILIBDIR = $(TARGDIR)/ilib
 LIBDIR = $(TARGDIR)/lib
 MODDIR = $(TARGDIR)/mod
@@ -127,23 +116,22 @@ endif
 endif
 
 # make reissue command
-MAKE_CMD = $(MAKE) BUILD=$(BUILD) TOOLSET=$(TOOLSET) COMP=$(COMP) LNKG=$(LNKG) \
-    TOP=$(TOP) SRCDIR=$(SRCDIR) OUTDIR=$(OUTDIR) -C $(OBJDIR) -f $(SRCDIR)/Makefile
+MAKE_CMD = $(MAKE) BUILD=$(BUILD) COMP=$(COMP) TOP=$(TOP) \
+	SRCDIR=$(SRCDIR) OUTDIR=$(OUTDIR) -C $(OBJDIR) -f $(SRCDIR)/Makefile
 
 # directory and link creation
-SUBDIRS = bin test-bin ilib lib mod wmod
+SUBDIRS = bin ilib lib mod wmod
 OUTDIRS = schema
 
 # clean rules
 stdclean:
-	@ -rm -rf $(OBJDIR)
-	@ rm -rf $(addsuffix .vers.h,$(ALL_TOOLS) $(ALL_LIBS)) \
+	@ rm -rf $(OBJDIR)
+	@ rm -f $(addsuffix .vers.h,$(ALL_TOOLS) $(ALL_LIBS)) \
 			$(addsuffix .*,$(addprefix $(ILIBDIR)/,$(ALL_LIBS))) \
 			$(addsuffix .*,$(addprefix $(LIBDIR)/,$(ALL_LIBS))) \
 			$(addsuffix .*,$(addprefix $(MODDIR)/,$(ALL_LIBS))) \
 			$(addsuffix .*,$(addprefix $(WMODDIR)/,$(ALL_LIBS))) \
-			$(addsuffix *,$(addprefix $(BINDIR)/,$(ALL_TOOLS) $(ALL_LIBS))) \
-			$(addsuffix *,$(addprefix $(TEST_BINDIR)/,$(TEST_TOOLS)))
+			$(addsuffix *,$(addprefix $(BINDIR)/,$(ALL_TOOLS) $(ALL_LIBS)))
 
 # removing symbolic links that point to specific builds
 removelinks:
@@ -155,10 +143,6 @@ removelinks:
 makedirs:
 	@ mkdir -p $(addprefix $(TARGDIR)/,$(SUBDIRS) obj/$(MODULE)) $(NCBIDIR)
 
-# build version include files
-vers-includes: makedirs
-	@ $(MAKE_CMD) -s $(TARGDIR)/$@
-
 ifeq (win,$(OS))
 
 # Windows doesn't really support symbolic links
@@ -171,79 +155,66 @@ LNDIRS = $(addprefix ln_,$(SUBDIRS))
 $(LNDIRS):
 	@ ln -s $(TARGDIR)/$(subst ln_,,$@) $(OUTDIR)/$(subst ln_,,$@)$(BITS)
 
-ifdef NOREBUILD_LINKS
-rebuild-dirlinks:
-	@ true
-else
 rebuild-dirlinks: removelinks makedirs $(LNDIRS)
 	@ ln -s $(TOP)/interfaces $(OUTDIR)/schema
-endif
 
 endif
 
-.PHONY: stdclean removelinks makedirs vers-includes rebuild-dirlinks
+.PHONY: stdclean removelinks makedirs rebuild-dirlinks
 
 # configuration targets 
 out:
-	@ echo $(OUTDIR) > $(TOP)/build/OUTDIR.$(BUILD_OS)
+	 echo $(OUTDIR) > $(TOP)/build/OUTDIR.$(OS)
 	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
 CC:
 	@ echo cc > $(TOP)/build/COMP.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
 GCC:
 	@ echo gcc > $(TOP)/build/COMP.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
 ICC:
 	@ echo icc > $(TOP)/build/COMP.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
 VC++:
 	@ echo vc++ > $(TOP)/build/COMP.$(OS)
-
-CLANG:
-	@ echo clang > $(TOP)/build/COMP.$(OS)
-
-static:
-	@ echo stat > $(TOP)/build/LNKG.$(OS)
-
-dynamic:
-	@ echo dyn > $(TOP)/build/LNKG.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
 debug:
 	@ echo dbg > $(TOP)/build/BUILD.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
-profile: static
+profile:
 	@ echo prof > $(TOP)/build/BUILD.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
 release:
 	@ echo rel > $(TOP)/build/BUILD.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
-pubtools: release static
+scm:
+	@ echo scm > $(TOP)/build/BUILD.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
+
+pubtools:
+	@ echo pub > $(TOP)/build/BUILD.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
 bindir:
 	@ echo "$(BINDIR)"
 
-targdir:
-	@ echo "$(TARGDIR)"
-
-osdir:
-	@ echo "$(OUTDIR)/$(OSFLAV)"
-
-compilers:
-	@ echo "$(COMPILERS)"
-
-architectures:
-	@ echo "$(ARCHITECTURES)"
-
-architecture:
-	@ echo "$(ARCH)"
+purify:
+	@ echo pur > $(TOP)/build/BUILD.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
-config:
-	@ echo "  current build is $(BUILD_OS) $(STAT_OR_DYN) $(BUILD) $(ARCH) build using $(TOOLSET) tools"
-	@ echo "  output target directory is '$(TARGDIR)'"
-	@ echo
+purecov:
+	@ echo pcov > $(TOP)/build/BUILD.$(OS)
+	@ $(MAKE) TOP=$(TOP) -f $(TOP)/build/Makefile.env rebuild-dirlinks
 
-.PHONY: out CC GCC ICC debug profile release bindir report_config
+.PHONY: out CC GCC ICC debug profile release scm purify purecov
 
 # includes based upon build
 ITF = $(TOP)/interfaces
@@ -293,8 +264,7 @@ INCDIRS = \
 	$(addprefix -I,$(SRCDIRS_OS)) \
 	$(addprefix -I,$(SRCDIR) $(ITF)) \
 	$(addprefix -I,$(INCDIRS_COMP)) \
-	$(addprefix -I,$(INCDIRS_OS) $(XTINC)) \
-	-I.
+	$(addprefix -I,$(INCDIRS_OS) $(XTINC))
 
 
 # defines that describe os & architecture
@@ -304,20 +274,4 @@ ARCHDEFS = -D_ARCH_BITS=$(BITS) -DLIBPREFIX=$(LPFX) -DSHLIBEXT=$(DLLX)
 # default tool parameters
 CFLAGS	= $(DEBUG) $(DBG) $(CARCH) $(PROF) $(PED) $(LINKAGE) $(DEFINES) $(ARCHDEFS) $(INCDIRS)
 CPFLAGS = $(DEBUG) $(DBG) $(CARCH) $(PROF) $(LINKAGE) $(DEFINES) $(ARCHDEFS) $(INCDIRS)
-LDFLAGS = $(DBG) $(PROF) $(CARCH)
-
-#-------------------------------------------------------------------------------
-# runtests
-#
-ifeq ($(RUNTESTS_OVERRIDE),)
-runtests: std $(TEST_TOOLS)
-	@ echo "$0 $*"; export LD_LIBRARY_PATH=$(LIBDIR);\
-	for i in $(TEST_TOOLS);\
-	do\
-		echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++;\
-		echo Run $(TEST_BINDIR)/$$i;eval $(RUN_REMOTELY) $(TEST_BINDIR)/$$i;r=$$?; \
-		if [ "$$r" != "0" ] ; then exit $$r; fi; \
-	done
-
-.PHONY: runtests
-endif
+LDFLAGS = $(DBG) $(PROF)
diff --git a/build/Makefile.gcc b/build/Makefile.gcc
index 271dff3..59a169c 100644
--- a/build/Makefile.gcc
+++ b/build/Makefile.gcc
@@ -44,14 +44,7 @@ LP = @ $(TOP)/build/ld.sh $(OS) $(ARCH) g++ \
 	-MD --srcdir $(SRCDIR) --bindir $(BINDIR) -L$(LIBDIR):$(ILIBDIR)
 
 # tool options
-WARN = -Wall -Wno-long-long 
-ifneq (sun,$(OS))
-    WARN += -Wno-variadic-macros
-endif
-
-ifeq (linux,$(OS))
-    NO_ARRAY_BOUNDS_WARNING = -Wno-array-bounds
-endif
+WARN = -Wall # -Wconversion
 
 ifeq (64,$(BITS))
 	CARCH = -m64
@@ -67,15 +60,12 @@ ifeq (dbg, $(BUILD))
 	DBG = -g
 	OPT = $(WARN)
 	NOPT = $(WARN)
-	# GCC seems unable to use c99 without ansi, which
-	# basically clobbers features back to c89. the options
-	# must be specified in the order shown.
-	PED = -std=c99 -ansi -pedantic # -fdiagnostics-show-option
+	PED = -std=c99 -ansi -pedantic
 else
 
 ifeq (x86_64, $(ARCH))
-	OPT = -O3 -Wall -Wno-variadic-macros -fno-strict-aliasing
+	OPT = -O3 -fno-strict-aliasing
 else
-	OPT = -O3 -Wno-variadic-macros -fno-strict-aliasing
+	OPT = -O3 -fno-strict-aliasing
 endif
 endif
diff --git a/build/Makefile.linux b/build/Makefile.linux
index a5fcd45..e6468de 100644
--- a/build/Makefile.linux
+++ b/build/Makefile.linux
@@ -73,10 +73,3 @@ ifdef NCBI
   endif
 	DFLT_LIBXML_INCLUDES = $(NCBI)/libxml/include/libxml2
 endif
-
-# flex+bison
-LEX  = @ true
-YACC = @ true
-
-# build matrix
-COMPILERS = GCC # ICC
diff --git a/build/Makefile.mac b/build/Makefile.mac
index 74e5160..a17f50a 100644
--- a/build/Makefile.mac
+++ b/build/Makefile.mac
@@ -68,10 +68,3 @@ OS_DAD = bsd
 OS_GDAD = unix
 
 LIBXML_LPATH = /usr/lib
-
-# flex+bison: on Mac, use source-controlled generated .c/.h files
-YACC = @ true
-LEX = @ true
-
-# build matrix
-COMPILERS = GCC CLANG
diff --git a/build/Makefile.rules b/build/Makefile.rules
index bb18f20..699e0e5 100644
--- a/build/Makefile.rules
+++ b/build/Makefile.rules
@@ -99,6 +99,11 @@
 	$(CP) -S -o $@ -fPIC $(NOPT) $<
 
 
+######################################################################
+## TBD: *.vers.h will no longer be generated or used for executables #
+#       instead, we will update the linker to produce a *.vers.o     #
+#       with a stub for KAppVersion to return a constant             #
+######################################################################
 # version include generation
 %.vers.h: %.vers
 	$(TOP)/build/make-vers-inc.sh $^ > $@
diff --git a/build/Makefile.shell b/build/Makefile.shell
index 4aaeb86..70844af 100644
--- a/build/Makefile.shell
+++ b/build/Makefile.shell
@@ -27,77 +27,61 @@
 UNAME = $(shell uname -s)
 
 ifeq (Darwin, $(UNAME))
-	HOST_OS = mac
+	OS = mac
 endif
 ifeq (Linux, $(UNAME))
-	HOST_OS = linux
+	OS = linux
 endif
 ifeq (SunOS, $(UNAME))
-	HOST_OS = sun
-	ARCHITECTURES = x86_64 i386
+	OS = sun
 endif
 ifeq (xCYGWIN, $(findstring xCYGWIN,x$(UNAME)))
-	HOST_OS = win
+	OS = win
 endif
 ifeq (xMINGW, $(findstring xMINGW,x$(UNAME)))
-	HOST_OS = win
+	OS = win
 endif
 
-# assume build OS is the same as host OS
-OS = $(HOST_OS)
-BUILD_OS = $(OS)
+# OS flavor is normally OS
+OSFLAV = $(OS)
 
 # determine ARCH
-ARCHITECTURES = default
-ifeq (mac,$(HOST_OS))
-	HOST_ARCH = $(shell $(TOP)/build/mac.arch.sh)
+ifeq (mac,$(OS))
+	ARCH = $(shell $(TOP)/build/mac.arch.sh)
 else
 	MARCH = $(shell uname -m)
 
 	ifeq (i386, $(MARCH))
-		HOST_ARCH = i386
+		ARCH = i386
 	endif
 	ifeq (i486, $(MARCH))
-		HOST_ARCH = i386
+		ARCH = i386
 	endif
 	ifeq (i586, $(MARCH))
-		HOST_ARCH = i386
+		ARCH = i386
 	endif
 	ifeq (i686, $(MARCH))
-		ifeq (WOW64x, $(findstring WOW64x,$(UNAME)x))
-			# 64-bit capable Cygwin. Analyze the version of cl to set the corect architecture
-			CL = $(shell cl.exe 2>&1 >/dev/null)
-			ifeq (for x64, $(findstring for x64, $(CL)))
-				HOST_ARCH = x86_64
-			else
-				HOST_ARCH = i386
-			endif			
-		else
-			HOST_ARCH = i386
-		endif	
+		ARCH = i386
 	endif
 	ifeq (x86_64, $(MARCH))
-		HOST_ARCH = x86_64
+		ARCH = x86_64
 	endif
-	ifeq (i86pc, $(MARCH))
-		HOST_ARCH = x86_64
-		ARCHITECTURES = x86_64 i386
-	endif
-	ifeq (sun4v,$(MARCH))
-		HOST_ARCH = sparc64
-		ARCHITECTURES = sparc64 sparc32
+	ifeq (sun4u,$(MARCH))
+		ARCH = sparc32
 	endif
 endif
 
-ARCH = $(HOST_ARCH)
-REMOTE_ARCH = $(ARCH)
-
-# pick up dependencies from object directory
-ifdef SRCDIR
-	include $(wildcard *.d)
+# determine BITS
+ifeq (x86_64, $(ARCH))
+	BITS = 64
 else
+	BITS = 32
+endif
 
-# determine SRCDIR
+# first pass through defines SRCDIR
+ifndef SRCDIR
+
+# set SRCDIR from MODULE
 ifdef MODULE
 	SRCDIR=$(TOP)/$(MODULE)
 else
@@ -106,7 +90,7 @@ endif
 
 # set OUTDIR
 ifndef OUTDIR
-	OUTDIR = $(shell test -f $(TOP)/build/OUTDIR && mv $(TOP)/build/OUTDIR $(TOP)/build/OUTDIR.$(BUILD_OS); test -f $(TOP)/build/OUTDIR.$(BUILD_OS) && cat $(TOP)/build/OUTDIR.$(BUILD_OS) || echo $(TOP))
+	OUTDIR = $(shell test -f $(TOP)/build/OUTDIR.$(OS) && cat $(TOP)/build/OUTDIR.$(OS) || echo $(TOP))
 	ifeq (,$(OUTDIR))
 		OUTDIR = $(TOP)
 	endif
@@ -115,36 +99,8 @@ ifndef OUTDIR
 	endif
 endif
 
-# set COMP, LNKG and BUILD
-COMP = $(shell test -f $(TOP)/build/COMP && mv $(TOP)/build/COMP $(TOP)/build/COMP.$(OS); test -f $(TOP)/build/COMP.$(OS) && cat $(TOP)/build/COMP.$(OS) || echo gcc)
-LNKG = $(shell test -f $(TOP)/build/STATIC && mv $(TOP)/build/STATIC $(TOP)/build/LNKG.$(OS) && echo stat > $(TOP)/build/LNKG.$(OS); test -f $(TOP)/build/LNKG.$(OS) && cat $(TOP)/build/LNKG.$(OS) || echo stat)
-BUILD = $(shell test -f $(TOP)/build/BUILD && mv $(TOP)/build/BUILD $(TOP)/build/BUILD.$(OS); test -f $(TOP)/build/BUILD.$(OS) && cat $(TOP)/build/BUILD.$(OS) || echo dbg)
-TOOLSET := $(COMP)
-
-ifdef USE_GCC_IF_ICC
-ifeq (icc,$(COMP))
-COMP = gcc
-endif
-ifeq (clang,$(COMP))
-COMP = gcc
-endif
-endif
-
-endif
+# set COMP and BUILD
+COMP = $(shell test -f $(TOP)/build/COMP.$(OS) && cat $(TOP)/build/COMP.$(OS) || echo gcc)
+BUILD = $(shell test -f $(TOP)/build/BUILD.$(OS) && cat $(TOP)/build/BUILD.$(OS) || echo dbg)
 
-# OS flavor is normally OS
-OSFLAV = $(OS)
-
-# determine BITS
-ifeq (x86_64, $(ARCH))
-	BITS = 64
-endif
-ifeq (sparc64, $(ARCH))
-	BITS = 64
-endif
-ifeq (i386, $(ARCH))
-	BITS = 32
-endif
-ifeq (sparc32, $(ARCH))
-	BITS = 32
 endif
diff --git a/build/Makefile.vc++ b/build/Makefile.vc++
index e2c3815..3835d7d 100644
--- a/build/Makefile.vc++
+++ b/build/Makefile.vc++
@@ -22,33 +22,31 @@
 #
 # ===========================================================================
 
-# RFLAGS have to go before any other flags since they can affect their handling
+
 # compilers
-CC = @ $(TOP)/build/win-cc.sh $(BUILD_OS) "cl /c /D_WIN32_WINNT=0x0502" \
-	 $(CHECKSUM) --objx $(OBJX) $(RFLAGS) $(CFLAGS) -MD 
-	 
-CP = @ $(TOP)/build/win-cc.sh $(BUILD_OS) "cl /c" \
-	 $(CHECKSUM) --objx $(OBJX) $(RFLAGS) $(CPFLAGS) -MD -EHsc
-	 
+CC = @ $(TOP)/build/win-cc.sh win "cl /c -D_WIN32_WINNT=0x0502" \
+	 $(CHECKSUM) --objx $(OBJX) $(CFLAGS) -MD
+CP = @ $(TOP)/build/win-cc.sh win "cl /c" \
+	 $(CHECKSUM) --objx $(OBJX) $(CPFLAGS) -MD
 
 # C preprocessor
 PP = gcc -E $(CFLAGS)
 
 # linkers
-LD = @ $(TOP)/build/ld.sh $(BUILD_OS) $(ARCH) link \
-	--build $(BUILD) $(RFLAGS) $(LDFLAGS) $(STATIC) $(CHECKSUM) \
+LD = @ $(TOP)/build/ld.sh win $(ARCH) link \
+	--build $(BUILD) $(LDFLAGS) $(STATIC) $(CHECKSUM) \
 	--objx $(OBJX) --shlx $(SHLX) --libx $(LIBX) \
 	-MD --srcdir $(SRCDIR) --bindir $(BINDIR) -L$(LIBDIR):$(ILIBDIR)
 
-LP = @ $(TOP)/build/ld.sh $(BUILD_OS) $(ARCH) link \
-	--build $(BUILD) $(RFLAGS) $(LDFLAGS) $(STATIC) $(CHECKSUM) \
+LP = @ $(TOP)/build/ld.sh win $(ARCH) link \
+	--build $(BUILD) $(LDFLAGS) $(STATIC) $(CHECKSUM) \
 	--objx $(OBJX) --shlx $(SHLX) --libx $(LIBX) \
 	-MD --srcdir $(SRCDIR) --bindir $(BINDIR) -L$(LIBDIR):$(ILIBDIR)
 
 # tool options
 CDECL = -Gd
 STDCALL = -Gz
-CALLCONV = $(CDECL)
+CALLCONV = $(STDCALL)
 STRING_POOLING = -GF
 OPT := $(STRING_POOLING) $(CALLCONV) -nologo
 NOPT := -Od $(OPT)
diff --git a/build/Makefile.win b/build/Makefile.win
index 5644350..5238a36 100644
--- a/build/Makefile.win
+++ b/build/Makefile.win
@@ -57,10 +57,3 @@ DLLX = dll
 
 # compilation defines
 DEFINES	:= -DWINDOWS
-
-# flex+bison: on Windows, use source-controlled generated .c/.h files
-YACC = @ true
-LEX = @ true
-
-# build matrix
-COMPILERS = VC++
diff --git a/libs/krypto/rng-priv.h b/build/STATIC
similarity index 100%
rename from libs/krypto/rng-priv.h
rename to build/STATIC
diff --git a/build/ld.linux.cmn.sh b/build/ld.linux.cmn.sh
index f896821..8779412 100755
--- a/build/ld.linux.cmn.sh
+++ b/build/ld.linux.cmn.sh
@@ -63,11 +63,7 @@ MODE=$(expr $MODE / 2)
 DYLD=$(expr $MODE % 2)
 MODE=$(expr $MODE / 2)
 KPROC=$(expr $MODE % 2)
-MODE=$(expr $MODE / 2)
-THREADS=$(expr $MODE % 2)
-MODE=$(expr $MODE / 2)
-KRYPTO=$(expr $MODE % 2)
-CRYPTO=$(expr $MODE / 2)
+THREADS=$(expr $MODE / 2)
 
 # decode SCMFLAGS
 CHECKSUM=$(expr $SCMFLAGS % 2)
diff --git a/build/ld.linux.dlib.sh b/build/ld.linux.dlib.sh
index 308f4d3..d086ddd 100755
--- a/build/ld.linux.dlib.sh
+++ b/build/ld.linux.dlib.sh
@@ -82,10 +82,6 @@ then
         DIRS="${DIRS#:}"
     done
 
-    # update LD_LIBRARY_PATH
-    unset LD_LIBRARY_PATH
-    export LD_LIBRARY_PATH="$LDIRS:$XDIRS"
-
     # tack on libraries, finding as we go
     for LIB in $LIBS
     do
diff --git a/build/ld.linux.exe.sh b/build/ld.linux.exe.sh
index 17ddf5c..c1d6231 100755
--- a/build/ld.linux.exe.sh
+++ b/build/ld.linux.exe.sh
@@ -66,8 +66,7 @@ CMD="$EXE_CMD $LDFLAGS"
 # the main application will substitute for name lookup
 if [ $STATIC -eq 1 ] && [ $DYLD -eq 1 ]
 then
-#    CMD="$CMD $LD_EXPORT_GLOBAL $LD_MULTIPLE_DEFS"
-    CMD="$CMD $LD_EXPORT_GLOBAL"
+    CMD="$CMD $LD_EXPORT_GLOBAL $LD_MULTIPLE_DEFS"
 fi
 
 # tack on object files
@@ -90,10 +89,6 @@ then
         DIRS="${DIRS#:}"
     done
 
-    # update LD_LIBRARY_PATH
-    unset LD_LIBRARY_PATH
-    export LD_LIBRARY_PATH="$LDIRS:$XDIRS"
-
     # tack on libraries, finding as we go
     for LIB in $LIBS
     do
diff --git a/build/ld.linux.ln.sh b/build/ld.linux.ln.sh
index ee5bd9d..c248afa 100755
--- a/build/ld.linux.ln.sh
+++ b/build/ld.linux.ln.sh
@@ -40,12 +40,7 @@ TARG=$(basename "$TARG")
 
 # put extension back onto name
 NAME="$NAME$DBGAP"
-STATIC_NAME="$NAME-static"
-if [ "$EXT" != "" ]
-then
-    NAME="$NAME.$EXT"
-    STATIC_NAME="$STATIC_NAME.$EXT"
-fi
+[ "$EXT" != "" ] && NAME="$NAME.$EXT"
 
 # break out version
 set-vers ()
@@ -78,12 +73,6 @@ then
         create-link "$NAME.$MAJ.$MIN.$REL" "$NAME.$MAJ"
         create-link "$NAME.$MAJ" "$NAME"
 
-        # for static libraries, create special link
-        if [ "$TYPE" = "slib" ]
-        then
-            create-link "$NAME" "$STATIC_NAME"
-        fi
-
     # for name with major version in it
     elif [ "$TARG" = "$NAME.$MAJ" ]
     then
diff --git a/build/ld.linux.slib.sh b/build/ld.linux.slib.sh
index 4eb0a8e..1a420b8 100755
--- a/build/ld.linux.slib.sh
+++ b/build/ld.linux.slib.sh
@@ -99,10 +99,10 @@ then
 
         # look at linkage
         case "$LIB" in
-        -s*)
+        -l*|-s*)
 
             # force static load
-            find-lib $LIBNAME.a $LDIRS
+            LIBPATH="$(find-lib $LIBNAME.a $LDIRS)"
             if [ "$LIBPATH" != "" ]
             then
 
diff --git a/build/ld.mac.cmn.sh b/build/ld.mac.cmn.sh
index ab1d23c..066db13 100755
--- a/build/ld.mac.cmn.sh
+++ b/build/ld.mac.cmn.sh
@@ -46,7 +46,7 @@ DEPFILE="$3"
 shift 3
 
 MODE="$1"
-SCMFLAGS="$2"
+CHECKSUM="$2"
 LDFLAGS="$3"
 shift 3
 
@@ -63,15 +63,7 @@ MODE=$(expr $MODE / 2)
 DYLD=$(expr $MODE % 2)
 MODE=$(expr $MODE / 2)
 KPROC=$(expr $MODE % 2)
-MODE=$(expr $MODE / 2)
-THREADS=$(expr $MODE % 2)
-MODE=$(expr $MODE / 2)
-KRYPTO=$(expr $MODE % 2)
-CRYPTO=$(expr $MODE / 2)
-
-# decode SCMFLAGS
-CHECKSUM=$(expr $SCMFLAGS % 2)
-STATICSYSLIBS=$(expr $SCMFLAGS / 2)
+THREADS=$(expr $MODE / 2)
 
 # return parameter for find-lib
 LIBPATH=''
diff --git a/build/ld.mac.dlib.sh b/build/ld.mac.dlib.sh
index 6f28f6b..ff54ec5 100755
--- a/build/ld.mac.dlib.sh
+++ b/build/ld.mac.dlib.sh
@@ -86,21 +86,13 @@ then
 
         # look at linkage
         case "$LIB" in
-        -ldl|-ddl)
-
-            # always load libdl as shared library
-            load-ref-symbols
-            load-dynamic
-            CMD="$CMD -ldl"
-            ;;
-
         -l*)
 
             # normal or dynamic linkage
             FOUND=0
             if [ $STATIC -eq 0 ]
             then
-                find-lib $LIBNAME.dylib $LDIRS
+                find-lib $LIBNAME.so $LDIRS
                 if [ "$LIBPATH" != "" ]
                 then
 
@@ -118,26 +110,6 @@ then
             # try static only
             if [ $FOUND -eq 0 ]
             then
-                find-lib $LIBNAME-static.a $LDIRS
-                if [ "$LIBPATH" != "" ]
-                then
-
-                    # found it
-                    FOUND=1
-
-                    # add it to dependencies
-                    DEPS="$DEPS $LIBPATH"
-
-                    # load static
-                    load-static
-                    load-all-symbols
-                    CMD="$CMD -l$LIBNAME-static"
-
-                fi
-            fi
-
-            if [ $FOUND -eq 0 ]
-            then
                 find-lib $LIBNAME.a $LDIRS
                 if [ "$LIBPATH" != "" ]
                 then
@@ -159,29 +131,9 @@ then
             # not found within our directories
             if [ $FOUND -eq 0 ]
             then
-
-                if [ $STATICSYSLIBS -eq 1 ]
-                then
-                    case "$LIBNAME" in
-                    z|bz2)
-                        # set load to static
-                        load-static
-                        load-all-symbols
-                        ;;
-
-                    *)
-                        # set load to dynamic
-                        load-ref-symbols
-                        load-dynamic
-                        ;;
-
-                    esac
-                else
-                    # set load to normal
-                    load-ref-symbols
-                    load-dynamic
-                fi
-
+                # set load to normal
+                load-ref-symbols
+                load-dynamic
                 CMD="$CMD -l$LIBNAME"
             fi
             ;;
@@ -190,7 +142,7 @@ then
 
             # force static load
             FOUND=0
-            find-lib $LIBNAME-static.a $LDIRS
+            find-lib $LIBNAME.a $LDIRS
             if [ "$LIBPATH" != "" ]
             then
 
@@ -203,56 +155,16 @@ then
                 # load static
                 load-static
                 load-all-symbols
-                CMD="$CMD -l$LIBNAME-static"
-
-            fi
-
-            if [ $FOUND -eq 0 ]
-            then
-                find-lib $LIBNAME.a $LDIRS
-                if [ "$LIBPATH" != "" ]
-                then
-
-                    # found it
-                    FOUND=1
-
-                    # add it to dependencies
-                    DEPS="$DEPS $LIBPATH"
-
-                    # load static
-                    load-static
-                    load-all-symbols
-                    CMD="$CMD -l$LIBNAME"
+                CMD="$CMD -l$LIBNAME"
 
-                fi
             fi
 
             # not found within our directories
             if [ $FOUND -eq 0 ]
             then
-
-                if [ $STATIC -eq 1 ] || [ $STATICSYSLIBS -eq 1 ]
-                then
-                    # set load to static
-                    load-static
-                    load-all-symbols
-                else
-
-                    case "$LIBNAME" in
-                    z|bz2)
-                        # set load to dynamic
-                        load-ref-symbols
-                        load-dynamic
-                        ;;
-
-                    *)
-                        # set load to static
-                        load-static
-                        load-all-symbols
-                        ;;
-                    esac
-                fi
-
+                # set load to static
+                load-static
+                load-all-symbols
                 CMD="$CMD -l$LIBNAME"
             fi
             ;;
@@ -263,7 +175,7 @@ then
             FOUND=0
             if [ $STATIC -eq 0 ]
             then
-                find-lib $LIBNAME.dylib $LDIRS
+                find-lib $LIBNAME.so $LDIRS
                 if [ "$LIBPATH" != "" ]
                 then
 
@@ -297,14 +209,8 @@ fi
 load-ref-symbols
 load-dynamic
 
-# add in pthreads
-if [ $THREADS -ne 0 ]
-then
-    CMD="$CMD -lpthread"
-fi
-
 # produce shared library
-echo "$CMD"
+echo $CMD
 $CMD || exit $?
 
 # produce dependencies
diff --git a/build/ld.mac.exe.sh b/build/ld.mac.exe.sh
index 9ac44ef..1701cc2 100755
--- a/build/ld.mac.exe.sh
+++ b/build/ld.mac.exe.sh
@@ -94,14 +94,6 @@ then
 
         # look at linkage
         case "$LIB" in
-        -ldl|-ddl)
-
-            # always load libdl as shared library
-            load-ref-symbols
-            load-dynamic
-            CMD="$CMD -ldl"
-            ;;
-
         -l*)
 
             # normal or dynamic linkage
@@ -125,26 +117,6 @@ then
             # try static only
             if [ $FOUND -eq 0 ]
             then
-                find-lib $LIBNAME-static.a $LDIRS
-                if [ "$LIBPATH" != "" ]
-                then
-
-                    # found it
-                    FOUND=1
-
-                    # add it to dependencies
-                    DEPS="$DEPS $LIBPATH"
-
-                    # load static
-                    load-static
-                    [ $STATIC -eq 1 ] && load-all-symbols
-                    CMD="$CMD -l$LIBNAME-static"
-
-                fi
-            fi
-
-            if [ $FOUND -eq 0 ]
-            then
                 find-lib $LIBNAME.a $LDIRS
                 if [ "$LIBPATH" != "" ]
                 then
@@ -156,9 +128,7 @@ then
                     DEPS="$DEPS $LIBPATH"
 
                     # load static
-                    load-static
-                    [ $STATIC -eq 1 ] && load-all-symbols
-                    CMD="$CMD -l$LIBNAME"
+                    CMD="$CMD $LIBPATH"
 
                 fi
             fi
@@ -166,28 +136,8 @@ then
             # not found within our directories
             if [ $FOUND -eq 0 ]
             then
-
-                # do not need to load all symbols for external libs
                 [ $STATIC -eq 1 ] && load-ref-symbols
-
-                if [ $STATICSYSLIBS -eq 1 ]
-                then
-                    case "$LIBNAME" in
-                    z|bz2)
-                        # set load to static
-                        load-static
-                        ;;
-
-                    *)
-                        # set load to dynamic
-                        load-dynamic
-                        ;;
-
-                    esac
-                else
-                    # set load to normal
-                    load-dynamic
-                fi
+                load-dynamic
 
                 CMD="$CMD -l$LIBNAME"
             fi
@@ -197,7 +147,7 @@ then
 
             # force static load
             FOUND=0
-            find-lib $LIBNAME-static.a $LDIRS
+            find-lib $LIBNAME.a $LDIRS
             if [ "$LIBPATH" != "" ]
             then
 
@@ -207,61 +157,17 @@ then
                 # add it to dependencies
                 DEPS="$DEPS $LIBPATH"
 
-                # load static
-                load-static
-                [ $STATIC -eq 1 ] && load-all-symbols
-                CMD="$CMD -l$LIBNAME-static"
+                # load library directly
+                CMD="$CMD $LIBPATH"
 
             fi
 
-            if [ $FOUND -eq 0 ]
-            then
-                find-lib $LIBNAME.a $LDIRS
-                if [ "$LIBPATH" != "" ]
-                then
-
-                    # found it
-                    FOUND=1
-
-                    # add it to dependencies
-                    DEPS="$DEPS $LIBPATH"
-
-                    # load static
-                    load-static
-                    [ $STATIC -eq 1 ] && load-all-symbols
-                    CMD="$CMD -l$LIBNAME"
-
-                fi
-            fi
-
             # not found within our directories
             if [ $FOUND -eq 0 ]
             then
-
-                # do not need to load all symbols for external libs
-                [ $STATIC -eq 1 ] && load-ref-symbols
-
-                if [ $STATIC -eq 1 ] || [ $STATICSYSLIBS -eq 1 ]
-                then
-
-                    # set load to static
-                    load-static
-
-                else
-
-                    # special case for libs we have in "ext"
-                    # that are sometimes requested as static
-                    case "$LIBNAME" in
-                    z|bz2)
-                        # set load to dynamic
-                        load-dynamic
-                        ;;
-                    *)
-                        load-static
-                        ;;
-                    esac
-                fi
-
+                # set load to static
+                load-static
+                [ $STATIC -eq 1 ] && load-all-symbols
                 CMD="$CMD -l$LIBNAME"
             fi
             ;;
@@ -285,7 +191,7 @@ then
                     load-static
                     load-all-symbols
 
-                    CMD="$CMD -l$LIBNAME"
+                    CMD="$CMD $LIBPATH"
 
                 fi
 
@@ -310,12 +216,6 @@ fi
 load-ref-symbols
 load-dynamic
 
-# add in pthreads
-if [ $THREADS -ne 0 ]
-then
-    CMD="$CMD -lpthread"
-fi
-
 # produce shared library
 echo $CMD
 $CMD || exit $?
diff --git a/build/ld.mac.ln.sh b/build/ld.mac.ln.sh
index 55216fd..efc834a 100755
--- a/build/ld.mac.ln.sh
+++ b/build/ld.mac.ln.sh
@@ -40,7 +40,6 @@ TARG=$(basename "$TARG")
 
 # put extension back onto name, unless it's "dylib"
 NAME="$NAME$DBGAP"
-STATIC_LIB_NAME="$NAME-static.a"
 [ "$EXT" != "" ] && [ "$EXT" != "dylib" ] && NAME="$NAME.$EXT"
 
 # break out version
@@ -87,7 +86,6 @@ then
     then
         create-link "$NAME_MMR" "$NAME_M"
         create-link "$NAME_M" "$NAME"
-        [ "$EXT" = "a" ] && create-link "$NAME" "$STATIC_LIB_NAME"
 
     # for name with major version in it
     elif [ "$TARG" = "$NAME_M" ]
diff --git a/build/ld.mac.slib.sh b/build/ld.mac.slib.sh
index 41a3afe..07faab0 100755
--- a/build/ld.mac.slib.sh
+++ b/build/ld.mac.slib.sh
@@ -47,7 +47,7 @@ convert-static ()
 {
     # list members
     local path="$1"
-    local mbrs="$(ar -t $path | grep -v '__.SYMDEF SORTED')"
+    local mbrs="$(ar -t $path)"
 
     # unpack archive into temporary directory
     mkdir -p ld-tmp
@@ -95,10 +95,10 @@ then
 
         # look at linkage
         case "$LIB" in
-        -s*)
+        -l*|-s*)
 
             # force static load
-            find-lib $LIBNAME.a $LDIRS
+            LIBPATH="$(find-lib $LIBNAME.a $LDIRS)"
             if [ "$LIBPATH" != "" ]
             then
 
diff --git a/build/ld.sh b/build/ld.sh
index 1f2b86b..0976636 100755
--- a/build/ld.sh
+++ b/build/ld.sh
@@ -54,18 +54,8 @@ STATIC=0
 DYLD=0
 STATICSYSLIBS=0
 CHECKSUM=0
-KPROC=0
 THREADS=0
-HAVE_KSPROC=0
-NEED_KPROC=0
-HAVE_GZIP=0
-NEED_GZIP=0
-HAVE_BZIP=0
-NEED_BZIP=0
-HAVE_SRAPATH=0
-NEED_SRAPATH=0
-HAVE_DL=0
-NEED_DL=0
+KPROC=0
 unset BUILD
 unset LDIRS
 unset XDIRS
@@ -79,12 +69,6 @@ unset OBJS
 unset LIBS
 unset DEPFILE
 
-# paths for translating local to remote
-unset RHOME
-unset LHOME
-unset RHOST
-unset PROXY_TOOL
-
 while [ $# -ne 0 ]
 do
 
@@ -136,31 +120,6 @@ do
         BINDIR="$2"
         shift
         ;;
-        
-    --rhome)
-        RHOME="$2"
-        shift
-        ;;
-
-    --lhome)
-        LHOME="$2"
-        shift
-        ;;
-
-    --rhost)
-        RHOST="$2"
-        shift
-        ;;
-
-    --rport)
-        RPORT="$2"
-        shift
-        ;;
-
-    --proxy_tool)
-        PROXY_TOOL="$2"
-        shift
-        ;;
 
     -MD)
         DEPFILE=1
@@ -230,121 +189,30 @@ do
         TARG="$ARG"
         ;;
 
-    -lz|-sz|-dz)
-        LIBS="$LIBS $1"
-        HAVE_GZIP=1
-        ;;
-    -lbz2|-sbz2|-dbz2)
-        LIBS="$LIBS $1"
-        HAVE_BZIP=1
-        ;;
-    -ldl|-sdl|-ddl)
-        LIBS="$LIBS $1"
-        HAVE_DL=1
-        ;;
-
-    -lsrapath|-ssrapath|-dsrapath)
-        LIBS="$LIBS $1"
-        HAVE_SRAPATH=1
-        ;;
-    -lsradb|-ssradb|-dsradb|-lwsradb|-swsradb)
-        LIBS="$LIBS $1"
-        NEED_DL=1
-        DYLD=2
-        if [ $STATIC -ne 0 ]
-        then
-            NEED_SRAPATH=1
-        fi
-        ;;
-
-    -lkrypto|-dkrypto)
-        LIBS="$LIBS $1"
-        if [ $STATIC -ne 0 ]
-        then
-            NEED_KPROC=1
-        fi
-        ;;
-    -skrypto)
-        LIBS="$LIBS $1"
-        NEED_KPROC=1
-        ;;
-
-    -lkproc|-dkproc)
-        KPROC=4
-        LIBS="$LIBS $1"
-        ;;
-    -skproc)
-        KPROC=4
-        THREADS=8
-        LIBS="$LIBS $1"
-        ;;
-
-    -[lds]ksproc)
-        HAVE_KSPROC=1
-        LIBS="$LIBS $1"
-        THREADS=0
-        ;;
-
     -lpthread|-spthread|-dpthread)
         THREADS=8
         ;;
 
-    -lkfs)
-        LIBS="$LIBS $1"
-        if [ $STATIC -ne 0 ]
-        then
-            NEED_GZIP=1
-            NEED_BZIP=1
-            NEED_DL=1
-        fi
-        ;;
-
-    -skfs)
+    -lkproc)
         LIBS="$LIBS $1"
-        NEED_GZIP=1
-        NEED_BZIP=1
-        NEED_DL=1
-        ;;
-
-    -dkfs)
-        LIBS="$LIBS $1"
-        NEED_GZIP=1
-        NEED_BZIP=1
-        NEED_DL=1
-        DYLD=2
+        KPROC=4
         ;;
 
-    -svfs)
+    -skproc)
         LIBS="$LIBS $1"
-        NEED_SRAPATH=1
+        THREADS=8
+        KPROC=4
         ;;
 
-    -lvfs)
+    -l*|-s*)
         LIBS="$LIBS $1"
-        if [ $STATIC -ne 0 ]
-        then
-            NEED_SRAPATH=1
-        fi
         ;;
 
-    -dvfs)
+    -dkproc)
         LIBS="$LIBS $1"
-        if [ $STATIC -ne 0 ]
-        then
-            NEED_SRAPATH=1
-        fi
+        KPROC=4
         DYLD=2
         ;;
-
-    -lncbi-bam|-sncbi-bam|-dncbi-bam)
-        LIBS="$LIBS $1"
-        #NEED_GZIP=1
-        ;;
-
-    -l*|-s*)
-        LIBS="$LIBS $1"
-        ;;
-
     -d*)
         LIBS="$LIBS $1"
         DYLD=2
@@ -378,34 +246,27 @@ then
     EXT="$DYLX"
     NAME="${NAME%.$DYLX}"
 fi
-
 unset VERS
-
-V="${NAME#${NAME%\.[^.]*}\.}"
-if [[ $V == ${V//[^0-9]/} ]]
+if [ "$NAME" != "${NAME%.[0-9][0-9]*}" ]
 then
-    ARG="${NAME%\.$V}"
-    VERS="$V"
+    ARG="${NAME%.[0-9][0-9]*}"
+    VERS="${NAME#$ARG}"
     NAME="${ARG#.}"
 
-	V="${NAME#${NAME%\.[^.]*}\.}"
-	if [[ $V == ${V//[^0-9]/} ]]
+    if [ "$NAME" != "${NAME%.[0-9][0-9]*}" ]
     then
-	    ARG="${NAME%\.$V}"
-    	VERS="$V.$VERS"
-	    NAME="${ARG#.}"
+        ARG="${NAME%.[0-9][0-9]*}"
+        VERS="${NAME#$ARG}.$VERS"
+        NAME="${ARG#.}"
 
-		V="${NAME#${NAME%\.[^.]*}\.}"
-		if [[ $V == ${V//[^0-9]/} ]]
+        if [ "$NAME" != "${NAME%.[0-9][0-9]*}" ]
         then
-		    ARG="${NAME%\.$V}"
-	    	VERS="$V.$VERS"
-		    NAME="${ARG#.}"
+            ARG="${NAME%.[0-9][0-9]*}"
+            VERS="${NAME#$ARG}.$VERS"
+            NAME="${ARG#.}"
         fi
     fi
-	#echo "ARG=$ARG,VERS=$VERS,NAME=$NAME"
 fi
-
 case "$TYPE" in
 dlib)
     if [ "$SHLX" != "" ]
@@ -443,87 +304,60 @@ then
     fi
 
     ARG=$(cat $VERSFILE)
-    if [ "$VERS" != "" ] && [ "$VERS" != "$ARG" ] && [ "$ARG" = "${ARG#$VERS.}" ]
+    if [ "$VERS" != "" ] && [ "$VERS" != "$ARG" ]
     then
-        echo "$SELF_NAME: version from file '$VERSFILE' ($ARG) does not match '$VERS'"
+        echo "$SELF_NAME: version from file '$VERSFILE' does not match '$VERS'"
         exit 5
     fi
     VERS="$ARG"
 fi
 
-# detect need for kproc
-if [ $KPROC -eq 0 ] && [ $NEED_KPROC -ne 0 ] && [ $HAVE_KSPROC -eq 0 ]
-then
-    KPROC=4
-    LIBS="$LIBS -lkproc"
-fi
-
-# turn on threads for kproc
-[ $STATIC -eq 0 ] && [ "$NAME" = "libkproc" ] && THREADS=8
-[ $STATIC -ne 0 ] && [ $KPROC -ne 0 ] && THREADS=8
-
-# supply missing libraries
-[ $HAVE_GZIP -eq 0 ] && [ $NEED_GZIP -ne 0 ] && LIBS="$LIBS -lz"
-[ $HAVE_BZIP -eq 0 ] && [ $NEED_BZIP -ne 0 ] && LIBS="$LIBS -lbz2"
-[ $HAVE_DL -eq 0 ] && [ $NEED_DL -ne 0 ] && LIBS="$LIBS -ldl"
-[ $HAVE_SRAPATH -eq 0 ] && [ $NEED_SRAPATH -ne 0 ] && [ "$TYPE" = "exe" ] && LIBS="$LIBS -ssrapath"
+#echo "# $SELF_NAME"
+#echo "#   BUILD          : $BUILD"
+#echo "#   OS             : $OS"
+#echo "#   ARCH           : $ARCH"
+#echo "#   tool           : $LD"
+#echo "#   dep file       : $DEPFILE"
+#echo "#   LDFLAGS        : $LDFLAGS"
+#echo "#   static sys libs: $STATICSYSLIBS"
+#echo "#   checksum       : $CHECKSUM"
+#echo "#   static         : $STATIC"
+#echo "#   kproc          : $KPROC"
+#echo "#   thread libs    : $THREADS"
+#echo "#   type           : $TYPE"
+#echo "#   srcdir         : $SRCDIR"
+#echo "#   bindir         : $BINDIR"
+#echo "#   LDIRS          : $LDIRS"
+#echo "#   XDIRS          : $XDIRS"
+#echo "#   vers file      : $VERSFILE"
+#echo "#   vers dir       : $VERSDIR"
+#echo "#   target         : $TARG"
+#echo "#   outdir         : $OUTDIR"
+#echo "#   name           : $NAME"
+#echo "#   dbgap          : $DBGAP"
+#echo "#   extension      : $EXT"
+#echo "#   version        : $VERS"
+#echo "#   objects        : $OBJS"
+#echo "#   libraries      : $LIBS"
+#echo "#   script-base    : $SCRIPT_BASE"
 
 # overwrite dependencies
 [ -f "$DEPFILE" ] && rm -f "$DEPFILE"
 
 # generate mode
+[ $STATIC -ne 0 ] && [ $KPROC -ne 0 ] && THREADS=8
 MODE=$(expr $THREADS + $KPROC + $DYLD + $STATIC)
 
 # generate SCM flags
 SCMFLAGS=$(expr $STATICSYSLIBS + $STATICSYSLIBS + $CHECKSUM)
-if [ 0 -ne 0 ]
-then
-    echo "# $SELF_NAME"
-    echo "#   script-base    : $SCRIPT_BASE"
-    echo "#   OS             : $OS"
-    echo "#   type           : $TYPE"
-    echo "#   tool           : $LD"
-    echo "#   ARCH           : $ARCH"
-    echo "#   BUILD          : $BUILD"
-    echo "#   srcdir         : $SRCDIR"
-    echo "#   bindir         : $BINDIR"
-    echo "#   outdir         : $OUTDIR"
-    echo "#   target         : $TARG"
-    echo "#   name           : $NAME"
-    echo "#   dbgap          : $DBGAP"
-    echo "#   version        : $VERS"
-    echo "#   vers file      : $VERSFILE"
-    echo "#   dep file       : $DEPFILE"
-    echo "#   mode           : $MODE"
-    echo "#   DYLD           : $DYLD"
-    echo "#   SCMFLAGS       : $SCMFLAGS"
-    echo "#   LDFLAGS        : $LDFLAGS"
-    echo "#   LDIRS          : $LDIRS"
-    echo "#   XDIRS          : $XDIRS"
-    echo "#   objects        : $OBJS"
-    echo "#   libraries      : $LIBS"
-    echo "#   rhost          : $RHOST"
-    echo "#   rport          : $RPORT"
-    echo "#   rhome          : $RHOME"
-    echo "#   lhome          : $LHOME"
-    echo "#   proxy_tool     : $PROXY_TOOL"
-
-    echo "#   static sys libs: $STATICSYSLIBS"
-    echo "#   checksum       : $CHECKSUM"
-    echo "#   static         : $STATIC"
-    echo "#   kproc          : $KPROC"
-    echo "#   thread libs    : $THREADS"
-    echo "#   vers dir       : $VERSDIR"
-    echo "#   extension      : $EXT"
-fi
 
 # perform link
 "$SCRIPT_BASE.$OS.$TYPE.sh" "$LD" "$ARCH" "$BUILD" "$SRCDIR" "$BINDIR" "$OUTDIR" \
     "$TARG" "$NAME" "$DBGAP" "$VERS" "$VERSFILE" "$DEPFILE" "$MODE" "$SCMFLAGS" \
-    "$LDFLAGS" "$LDIRS" "$XDIRS" "$OBJS" "$LIBS" "$RHOST" "$RPORT" "$RHOME" "$LHOME" "$PROXY_TOOL" || exit $?
+    "$LDFLAGS" "$LDIRS" "$XDIRS" "$OBJS" "$LIBS" || exit $?
 
 # establish links
-if [ "$VERS" != "" ] && [ "$OS" != "win" ] && [ "$OS" != "rwin" ]
+if [ "$VERS" != "" ] && [ "$OS" != "win" ]
 then
     $SCRIPT_BASE.$OS.ln.sh "$TYPE" "$OUTDIR" "$TARG" "$NAME" "$DBGAP" "$EXT" "$VERS"
 fi
diff --git a/build/ld.win.cmn.sh b/build/ld.win.cmn.sh
index f40fd0c..ec41236 100755
--- a/build/ld.win.cmn.sh
+++ b/build/ld.win.cmn.sh
@@ -56,7 +56,6 @@ shift 2
 
 OBJS="$1"
 LIBS="$2"
-shift 2
 
 # decode MODE
 STATIC=$(expr $MODE % 2)
@@ -64,11 +63,7 @@ MODE=$(expr $MODE / 2)
 DYLD=$(expr $MODE % 2)
 MODE=$(expr $MODE / 2)
 KPROC=$(expr $MODE % 2)
-MODE=$(expr $MODE / 2)
-THREADS=$(expr $MODE % 2)
-MODE=$(expr $MODE / 2)
-KRYPTO=$(expr $MODE % 2)
-CRYPTO=$(expr $MODE / 2)
+THREADS=$(expr $MODE / 2)
 
 ##### TEMPORARY #####
 KPROC=0
diff --git a/build/ld.win.dlib.sh b/build/ld.win.dlib.sh
index f21eadf..9bfa4b8 100755
--- a/build/ld.win.dlib.sh
+++ b/build/ld.win.dlib.sh
@@ -61,28 +61,33 @@ CMD="$DLIB_CMD $LDFLAGS OLE32.lib"
 # function to convert static libraries to individual COFF files
 convert-static ()
 {
-    # list members
-    local path="$1"
-    local mbrs="$(ar -t $path)"
-
-    # create sub directory
-    rm -rf "$2" && mkdir "$2"
-    if ! cd "$2"
+    if [ $STATIC -eq 0 ]
     then
-        echo "$SELF_NAME: failed to cd to $2"
-        exit 5
+        CMD="$CMD $2.a"
+    else
+        # list members
+        local path="$1"
+        local mbrs="$(ar -t $path)"
+
+        # create sub directory
+        rm -rf "$2" && mkdir "$2"
+        if ! cd "$2"
+        then
+            echo "$SELF_NAME: failed to cd to $2"
+            exit 5
+        fi
+        ar -x "$path"
+
+        # add source files to link
+        local m=
+        for m in $mbrs
+        do
+            CMD="$CMD $2/$m"
+        done
+
+        # return to prior location
+        cd - > /dev/null
     fi
-    ar -x "$path"
-
-    # add source files to link
-    local m=
-    for m in $mbrs
-    do
-        CMD="$CMD $2/$m"
-    done
-
-    # return to prior location
-    cd - > /dev/null
 }
 
 # tack on object files
@@ -145,9 +150,9 @@ then
             ;;
 
 ##### TEMPORARY #####
-# use ksproc for kproc
+# skip kproc
     kproc)
-        xLIBNAME=ksproc
+        continue
         ;;
 #####################
 
@@ -304,21 +309,16 @@ load-dynamic
 
 # produce shared library, stub library and exp file
 echo $CMD
-$CMD
-STATUS=$?
-if [[ ${STATUS} != 0 ]]
+if ! $CMD
 then
+    STATUS=$?
     rm -f "$TARG" "${TARG%lib}dll"
     exit $STATUS
 fi
 
 # copy dll to binary directory, so they can be found by the executables
+# leave the dll in it's original place, so that they can be found in /mod and /wmod too
 cp "${TARG%lib}dll" "$BINDIR"
-STATUS=$?
-if [[ ${STATUS} != 0 ]]
-then
-    exit $STATUS
-fi
 
 # produce dependencies
 if [ "$DEPFILE" != "" ]
diff --git a/build/ld.win.exe.sh b/build/ld.win.exe.sh
index 975505c..2b698b2 100755
--- a/build/ld.win.exe.sh
+++ b/build/ld.win.exe.sh
@@ -73,7 +73,7 @@ convert-static ()
         CMD="$CMD $2.a"
     else
         # list members
-        local path=`cd $(dirname $1);pwd`/$(basename $1) # make sure path is absolute
+        local path="$1"
         local mbrs="$(ar -t $path)"
 
         # create sub directory
@@ -172,9 +172,9 @@ then
             ;;
 
 ##### TEMPORARY #####
-# use ksproc for kproc
+# skip kproc
     kproc)
-        xLIBNAME=ksproc
+        continue
         ;;
 #####################
 
diff --git a/build/ld.win.slib.sh b/build/ld.win.slib.sh
index 17bbc25..104bf6b 100755
--- a/build/ld.win.slib.sh
+++ b/build/ld.win.slib.sh
@@ -50,29 +50,34 @@ fi
 # function to convert an archive into individual object files
 convert-static ()
 {
-    # list members
-    local path="$1"
-    local mbrs="$(ar -t $path)"
-
-    # unpack archive into temporary directory
-    mkdir -p ld-tmp
-    if ! cd ld-tmp
+    if [ $STATIC -eq 0 ]
     then
-        echo "$SELF_NAME: failed to cd to ld-tmp"
-        exit 5
+        CMD="$CMD $(cygpath -w $1)"
+    else
+        # list members
+        local path="$1"
+        local mbrs="$(ar -t $path)"
+
+        # unpack archive into temporary directory
+        mkdir -p ld-tmp
+        if ! cd ld-tmp
+        then
+            echo "$SELF_NAME: failed to cd to ld-tmp"
+            exit 5
+        fi
+        ar -x "$path"
+
+        # rename and add to source files list
+        local m=
+        for m in $mbrs
+        do
+            mv $m $NAME-$m
+            CMD="$CMD ld-tmp/$NAME-$m"
+        done
+
+        # return to prior location
+        cd - > /dev/null
     fi
-    ar -x "$path"
-
-    # rename and add to source files list
-    local m=
-    for m in $mbrs
-    do
-        mv $m $NAME-$m
-        CMD="$CMD ld-tmp/$NAME-$m"
-    done
-
-    # return to prior location
-    cd - > /dev/null
 }
 
 if [ $STATIC -eq 0 ]
@@ -100,10 +105,10 @@ then
 
         # look at linkage
         case "$xLIB" in
-        -s*)
+        -l*|-s*)
 
             # force static load
-            find-lib $xLIBNAME.a $LDIRS
+            xLIBPATH="$(find-lib $xLIBNAME.lib $LDIRS)"
             if [ "$xLIBPATH" != "" ]
             then
 
diff --git a/build/mac.arch.sh b/build/mac.arch.sh
index 60ee5d4..19121e0 100755
--- a/build/mac.arch.sh
+++ b/build/mac.arch.sh
@@ -25,19 +25,12 @@
 
 # PPC or Intel?
 ARCH="$(uname -m)"
-if [ "$ARCH" = "x86_64" ]
-then
-    echo $ARCH
-    exit 0
-fi
 
 # the Mac likes to keep its architecture hidden because for all practical
 # purposes, it is both 32 and 64 bit, and makes use of emulation as needed.
 
 # does the hardware support 64-bit mode, even in emulation?
-SYSCTL=/usr/sbin/sysctl
-[ -x /sbin/sysctl ] && SYSCTL=/sbin/sysctl
-CAP64=$($SYSCTL -n hw.cpu64bit_capable)
+CAP64=$(/usr/sbin/sysctl -n hw.cpu64bit_capable)
 
 # real 64-bit hardware has > 32 bits of address space
 PADDR_BITS=$(/usr/sbin/sysctl -n machdep.cpu.address_bits.physical)
diff --git a/build/sra-dflt-schema.sh b/build/sra-dflt-schema.sh
index 79249f1..86eaa65 100755
--- a/build/sra-dflt-schema.sh
+++ b/build/sra-dflt-schema.sh
@@ -33,42 +33,22 @@ shift
 
 # binary compiler
 CC="$1"
-shift 
+shift
 
 # everything except windows is fine as-is
-if [[ "$OS" != "win" && "$OS" != "rwin" ]]
-then 
+if [ "$OS" != "win" ]
+then
     echo "$CC $*"
     $CC $*
     exit $?
 fi
 
-if [[ "$OS" == "rwin" ]]
-then # for rwin, $CC is a multi-word string; extract server location data from it:
-#                $(TOP)/build/run_remotely.sh $(PROXY_TOOL) $(RHOST) $(RPORT) $(RHOME) $(LHOME) $(TOP) $(SCHEMA_EXE)
-    PARMS=($CC)
-    RHOME=${PARMS[4]}
-    LHOME=${PARMS[5]}
-    TOP=${PARMS[6]}
-fi
-
 # state
 unset ARGS
 unset DEPENDENCIES
 unset DEPTARG
 unset TARG
 
-function convert_path
-{
-    if [[ "$OS" != "rwin" ]]
-    then
-        convert_path_result="$(cygpath -w $1)"
-    else
-        convert_path_result="$RHOME${1#$LHOME}"
-        convert_path_result="$(echo $convert_path_result | tr '/' '\\')"
-    fi
-}
-
 # process parameters for windows
 while [ $# -ne 0 ]
 do
@@ -82,8 +62,8 @@ do
             shift
         fi
         TARG="$ARG"
-        convert_path $ARG
-        ARGS="$ARGS -o${convert_path_result}"
+        ARG="$(cygpath -w $ARG)"
+        ARGS="$ARGS -o$ARG"
         ;;
 
     -I*)
@@ -93,9 +73,8 @@ do
             ARG="$2"
             shift
         fi
-        
-        convert_path $ARG
-        ARGS="$ARGS -I${convert_path_result}"
+        ARG="$(cygpath -w $ARG)"
+        ARGS="$ARGS -I$ARG"
         ;;
 
     -T*)
@@ -107,13 +86,13 @@ do
         fi
         DEPTARG="$ARG"
         DEPENDENCIES=1
-        convert_path $ARG
-        ARGS="$ARGS -T${convert_path_result}"
+        ARG="$(cygpath -w $ARG)"
+        ARGS="$ARGS -T$ARG"
         ;;
 
     *)
-        convert_path $1
-        ARGS="$ARGS ${convert_path_result}"
+        ARG="$(cygpath -w $1)"
+        ARGS="$ARGS $ARG"
         ;;
 
     esac
@@ -123,12 +102,11 @@ do
 done
 
 echo "$CC $ARGS"
-$CC $ARGS
-STATUS=$?
-if [[ ${STATUS} != 0 ]]
+if ! $CC $ARGS
 then
+    STATUS=$?
     rm -f $TARG $DEPTARG
-    exit ${STATUS}
+    exit $?
 fi
 
 if [ $DEPENDENCIES -eq 1 ]
diff --git a/build/win-cc.sh b/build/win-cc.sh
index d869894..f989761 100755
--- a/build/win-cc.sh
+++ b/build/win-cc.sh
@@ -42,24 +42,6 @@ unset OBJX
 unset SRCFILE
 unset SOURCES
 unset DEPENDENCIES
-# paths for translating local to remote
-unset RHOME
-unset LHOME
-unset RHOST
-unset RPORT
-unset PROXY_TOOL
-
-function convert_path
-{
-    if [ "$OS" != "rwin" ] ; then
-        convert_path_result="$(cygpath -w $1)"
-    elif [ "$1" != "." ] ; then
-        convert_path_result="$RHOME${1#$LHOME}"
-        convert_path_result="${convert_path_result//\//\\}"
-    else
-        convert_path_result="."
-    fi
-}
 
 while [ $# -ne 0 ]
 do
@@ -82,31 +64,6 @@ do
         shift
         ;;
 
-    --rhome)
-        RHOME="$2"
-        shift
-        ;;
-
-    --lhome)
-        LHOME="$2"
-        shift
-        ;;
-
-    --rhost)
-        RHOST="$2"
-        shift
-        ;;
-
-    --rport)
-        RPORT="$2"
-        shift
-        ;;
-
-    --proxy_tool)
-        PROXY_TOOL="$2"
-        shift
-        ;;
-
     -D*)
         ARG="${1#-D}"
         if [ "$ARG" = "" ]
@@ -124,8 +81,8 @@ do
             ARG="$2"
             shift
         fi
-        convert_path $ARG
-        ARGS="$ARGS /I$convert_path_result"
+        ARG="$(cygpath -w $ARG)"
+        ARGS="$ARGS /I$ARG"
         ;;
 
     -o*)
@@ -158,9 +115,8 @@ do
     *)
         SRCFILE="$(basename $1)"
         SOURCES="$SOURCES $1"
-        convert_path $1
-        ARGS="$ARGS $convert_path_result"
-        SRCDIR="$(dirname $1)" # assume the last source file is in the same dir as all the .vers files we need as dependencies
+        ARG="$(cygpath -w $1)"
+        ARGS="$ARGS $ARG"
         ;;
         
     esac
@@ -171,16 +127,15 @@ done
 unset STATUS
 
 CMD="$CC $ARGS"
+echo "$CMD"
 
 # run command with redirection
-if [ "$OS" = "win" ]
+if $CMD > $TARG.out 2> $TARG.err
 then
-    $CMD > $TARG.out 2> $TARG.err
-    STATUS=$?
+    # success
+    STATUS=0
 else
-    # determine current directory
-    CURDIR="$(pwd)"
-    ${TOP}/build/run_remotely.sh $PROXY_TOOL $RHOST $RPORT $RHOME $LHOME $CURDIR $CMD > $TARG.out 2> $TARG.err
+    # failure
     STATUS=$?
 fi
 
@@ -189,51 +144,12 @@ if [ "$DEPENDENCIES" = "1" ]
 then
     sed -e '/including file/!d' -e 's/.*including file: *\([^\r\n][^\r\n]*\)/\1/g' -e '/ /d' $TARG.out > $TARG.inc
     echo -n "$TARG.$OBJX: $SOURCES" | sed -e 's/\r//g' > $TARG.d
-    if [ "$OS" = "win" ]
-    then 
-        for inc in $(cat $TARG.inc)
-        do
-            # vers.h files are now generated in the objdir
-            if [ "$inc" != "${inc%.vers.h}" ]
-            then
-                inc="${inc%.h}"
-            fi
-            echo -n " $(cygpath -u $inc)"  | sed -e 's/\r//g' >> $TARG.d
-        done
-    else # rwin
-        # sometimes home path comes back in lowercase
-        # make sure to compare lowercased prefixes
-        rhome_low=$(echo ${RHOME} | tr '[A-Z]' '[a-z]' | tr '\\' '/')
-        rhome_len=${#RHOME}
-
-        for inc in $(cat $TARG.inc)
-        do
-            inc_low=$(echo ${inc} | tr '[A-Z]' '[a-z]' | tr '\\' '/')
-            # vers.h files are now generated in the objdir
-            if [ "$inc" != "${inc%.vers.h}" ]
-            then
-                # convert the "...vers.h" in the object directory into "...vers" in the source directory
-                inc="${inc%.h}"
-                if [ "${inc_low#$rhome_low}" != "$inc_low" ]
-                then
-                    inc="${inc:$rhome_len}"
-                    inc="${inc//\\//}"
-                    inc="$(basename $inc)"
-                    inc="$SRCDIR/$inc"
-                fi
-            else
-                if [ "${inc_low#$rhome_low}" != "$inc_low" ]
-                then
-                    inc="$LHOME${inc:$rhome_len}"
-                fi
-            fi
-            echo -n " $inc" | tr '\\' '/' >> $TARG.d
-        done
-    fi
-    echo >> $TARG.d
+    for inc in $(cat $TARG.inc)
+    do
+        echo -n " $(cygpath -u $inc)"  | sed -e 's/\r//g' >> $TARG.d
+    done
 fi
 
-echo "$CMD"
 # repeat output files but without CR
 sed -e 's/\r//g' $TARG.err > /dev/stderr
 sed -e 's/\r//g' -e "/^$SRCFILE$/d" -e '/including file/d' $TARG.out
diff --git a/configuration-assistant.perl b/configuration-assistant.perl
index cdc4c29..0d7901f 100755
--- a/configuration-assistant.perl
+++ b/configuration-assistant.perl
@@ -1,10 +1,10 @@
-#!/usr/bin/perl -w
+#!/usr/local/bin/perl -w
 
 ################################################################################
 # N.B. Run "perl configuration-assistant.perl" if you see a message like:
-# configuration-assistant.perl: /usr/bin/perl: bad interpreter: No such file or directory
+# configuration-assistant.pl: /bin/perl: bad interpreter: No such file or directory
 ################################################################################
-my $VERSION = '2.3.2.4';
+# v.1.0.2
 ################################################################################
 
 use strict;
@@ -15,12 +15,10 @@ use File::Basename qw(basename dirname);
 use File::Path "mkpath";
 use File::Spec;
 use Getopt::Long "GetOptions";
-use IO::Handle;
-use Getopt::Long "GetOptions";
 
 sub println { print @_; print "\n"; }
 
-STDOUT->autoflush(1);
+select((select(STDOUT), $| = 1)[0]);
 
 my $R = 1;
 my $W = 2;
@@ -30,148 +28,243 @@ my $FOUND = 16;
 my $RWX = $FOUND + $R + $W + $X;
 
 println "==========================================";
-println "Welcome to the SRA Toolkit Configuration Script.";
-println "SRA toolkit documentation:";
+println "The SRA toolkit documentation page is";
 println "http://www.ncbi.nlm.nih.gov/Traces/sra/std";
 println "==========================================\n";
 
 my %options;
-Help(1) unless (GetOptions(\%options, 'fix', 'help', 'version', 'wordy'));
-Help(0) if ($options{help});
-Version() if ($options{version});
+Help() unless (GetOptions(\%options, "help", "verbose"));
+Help() if ($options{help});
 
-$options{references} = 1 if ($#ARGV >= 0);
+#try_help() if ($#ARGV >= 0);
 
-println "cwd = '" . getcwd() . "'\n";
+my ($VDB_CONFIG, $BIN_DIR) = find_bin("vdb-config");
 
-my $DECRYPTION_PKG;
+my %refseq_cfg;
+my @KFG_FILES;
+my $fixed_config = 0;
 {
-    my ($fastq_dump, $fastq_dir) = FindBin("fastq-dump", "optional");
-    my ($sam_dump, $sam_dir) = FindBin("sam-dump", "optional");
-    if (! $fastq_dump && ! $sam_dump) {
-        println "presuming to be run in decryption package";
-        $DECRYPTION_PKG = 1;
+    print "checking configuration files... ";
+    my $f = `$VDB_CONFIG -f`;
+    if ($f =~ /\w/) {
+        while (chomp $f) {}
+        @KFG_FILES = split /\n/, $f;
+        println "'$f'";
+        %refseq_cfg = check_refseq_kfg();
+    } else {
+        println "not found";
     }
 }
 
-my ($VDB_CONFIG, $BIN_DIR) = FindBin("vdb-config");
+if ($refseq_cfg{NO_volumes} or $refseq_cfg{NO_servers}) {
+    fix_config(\%refseq_cfg,
+        "Existing configuration is invalid. Whould you like to fix it?",
+        "Your tools will not work properly.\n" .
+        "For more information visit SRA website.");
+}
+
+if ($refseq_cfg{refseq_dir}) {
+    if ($refseq_cfg{FIX_volumes} or $refseq_cfg{FIX_paths}) {
+        $refseq_cfg{refseq_dir} = ask_refseq_change($refseq_cfg{refseq_dir});
+        if ($refseq_cfg{refseq_dir} ne 'READ^ONLY') {
+            my $config_dir = del_all_cfg_path($refseq_cfg{refseq_dir});
+            create_cfg($config_dir, $refseq_cfg{refseq_dir}, $BIN_DIR);
+        }
+    } elsif (not $refseq_cfg{refseq_dir_prm}) {
+        unless (askYn("Configuration is found\n"
+            . "but the local reference repository $refseq_cfg{refseq_dir} "
+            . "does not exist.\n"
+            . "Do you want to create it?"))
+        {
+            println "Your tools will not work properly.";
+            println "Remote reference sequences will not be resolved.";
+            println "For more information visit SRA website.";
+            exit 1;
+        }
+        my $prm = check_dir($refseq_cfg{refseq_dir}, "create_missing");
+        my $created = $prm & $CREATED;
+        $prm &= ~ $CREATED;
+        if ($prm != $RWX) {
+            if ($^O ne 'cygwin' or $created != $CREATED) {
+                FATAL("Cannot create $refseq_cfg{refseq_dir}");
+                fix_config(\%refseq_cfg,
+                    "Local reference repository is read-only. ".
+                    "Whould you like to change it?",
+                    "You will not be able to upload reference sequences.\n" .
+                    "For more information visit SRA website.");
+            }
+        }
+        ++$fixed_config;
+    }
+} else {
+    unless (askYn("Do you want to create a new configuration?")) {
+        println "Your tools will not work properly without configuration.";
+        println "For more information visit SRA website.";
+        exit 1;
+    }
+
+    print "checking configuration directories... ";
+    my $paths = `$VDB_CONFIG -d`;
+    if ($?) {
+        die $!;
+    }
+    while (chomp $paths) {}
+    my @paths = split /:/, $paths;
+    println if ($#paths >= 0);
+
+    my $config_dir;
+    foreach (@paths) {
+        next if ($_ eq '/etc/ncbi');
+        if ($^O eq 'MSWin32') { # Windows: translate POSIX to Windows path
+            tr|/|\\|;
+            s/^\\([a-zA-Z])\\/$1:\\/;
+        } elsif ($^O eq 'cygwin') {
+            if (m|^/([a-zA-Z])/|) {
+                $_ = "/cygdrive$_";
+            }
+        }
+
+        my $prm = check_dir($_, "create_missing");
+        my $created = $prm & $CREATED;
+        $prm &= ~ $CREATED;
+        if ($prm == $RWX or ($^O eq 'cygwin' and $created == $CREATED)) {
+            $config_dir = $_;
+            last;
+        }
+    }
+    FATAL("cannot find a usable directory to create configuration file")
+        unless ($config_dir);
 
-my %kfg;
-Kfg(\%kfg, 'read', 'Reading configuration');
-umask 0002;
-my $fixed = FixKfg(\%kfg);
-if ($fixed) {
-    undef %kfg;
-    Kfg(\%kfg, 'read', 'Checking configuration');
+    ($refseq_cfg{refseq_dir}, $refseq_cfg{refseq_dir_prm}) = make_refseq_dir();
+
+    create_cfg($config_dir, $refseq_cfg{refseq_dir}, $BIN_DIR);
+    ++$fixed_config;
+}
+
+if ($#ARGV >= 0) {
+    $options{references} = 1;
+} elsif ($fixed_config == 0) {
+    $options{references} = 1;
+}
+$options{references} = ask
+       ("Would you like to test cSRA files for remote reference dependencies?",
+        $fixed_config)
+    unless ($options{references});
+exit 0 unless ($options{references});
+
+my $CHECK_ONLY = $refseq_cfg{refseq_dir} eq 'READ^ONLY';
+
+my ($ALIGN_INFO, $ALIGN_INFO_DIR) = find_bin("align-info");
+WARN("using align-info and vdb-config located in different directories:\n"
+        . "\t$ALIGN_INFO\n\t$VDB_CONFIG")
+    if ($BIN_DIR ne $ALIGN_INFO_DIR);
+
+my $WGET;
+unless ($CHECK_ONLY) {
+    print "checking for wget... ";
+    my $out = `wget -h 2>&1`;
+    if ($? == 0) {
+        println "yes";
+        $WGET = "wget -O";
+    } else {
+        println "no";
+    }
+
+    unless ($WGET) {
+        print "checking for curl... ";
+        my $out = `curl -h 2>&1`;
+        if ($? == 0) {
+            println "yes";
+            $WGET = "curl -o";
+        } else {
+            println "no";
+        }
+    }
+    unless ($WGET) {
+        print "checking for ./wget... ";
+        my $cmd = dirname($0) ."/wget";
+        my $out = `$cmd -h 2>&1`;
+        if ($? == 0) {
+            println "yes";
+            $WGET = "$cmd -O";
+        } else {
+            println "no";
+        }
+    }
+    FATAL("none of wget, curl could be found") unless ($WGET);
+}
+
+if ($#ARGV > -1) {
+    foreach (@ARGV) {
+        load($CHECK_ONLY, $refseq_cfg{refseq_dir}, $_);
+    }
+} else {
+    while (1) {
+        my $f = ask("Enter cSRA file name (Press Enter to exit)");
+        last unless ($f);
+        load($CHECK_ONLY, $refseq_cfg{refseq_dir}, $f);
+    }
 }
-#DoKryptoCfg(\%kfg);
 
 ################################################################################
 # FUNCTIONS #
 ################################################################################
 
-sub Ask {
+sub ask {
     my ($prompt) = @_;
-
     print "$prompt: ";
-
     my $in = <STDIN>;
     unless ($in) {
         println;
         return "";
     }
-
     chomp $in;
     return $in;
 }
-
-sub AskYn { return AskYN($_[0], 'yes');}
-sub AskyN { return AskYN($_[0], 'no' );}
-
-sub AskYN {
+sub askYn { return askYN($_[0], 'yes');}
+sub askyN { return askYN($_[0], 'no' );}
+sub askYN {
     my ($q, $yes) = @_;
-
     $yes = '' if ($yes eq 'no');
-
     print "$q ";
-
     if ($yes) {
         print "[Y/n] ";
     } else {
         print "[y/N] ";
     }
-
     my $in = <STDIN>;
     chomp $in;
     if ($in) {
-        return $in eq 'Y' || $in eq 'y'
-          || $in eq 'YES' || $in eq 'yes' || $in eq 'Yes';
+        return $in eq 'Y' or $in eq 'y'
+          or $in eq 'YES' or $in eq 'yes' or $in eq 'Yes';
     } else {
         return $yes;
     }
 }
-
-sub AskRefseqChange {
+sub ask_refseq_change {
     my ($refseq) = @_;
-
     die unless ($refseq);
-
     my $force;
-
     while (1) {
-        my $read = -r $refseq && -x $refseq;
         println "Your repository directory is $refseq.";
-        my $dflt;
-        if ($read) {
-            println "It is read-only. You cannot add new sequences to it.";
-            $dflt = "1";
-        } else {
-            println "You cannot read it.";
-            $dflt = "2";
-        }
+        println "It is read-only. You cannot add new sequences to it.";
         println "Make your choice:";
         println "1) Use existing repository";
         println "2) Use a different repository";
         println "3) exit the script";
-        print "Your selection? [$dflt] ";
-
+        print "Your selection? [1] ";
         my $in = <STDIN>;
         chomp $in;
-        $in = $dflt unless ($in);
-
-        if ($in eq "1") {
-            unless ($read) {
-                Fatal(
-"Ask the owner of $refseq to allow you access $refseq directory\n" .
-"Otherwise the dumpers will not be able to find reference files"
-                );
-            }
-            return ($refseq, 'READ^ONLY');
-        }
-
+        return 'READ^ONLY' if (! $in or $in eq "1");
         if ($in eq "2") {
             last;
         }
-
         exit 0 if ($in eq "3");
     }
-
-    my ($path, $perm) = MakeRefseqDir();
-
-    return ($path, '');
-}
-
-sub Home {
-    if ($ENV{HOME}) {
-        return $ENV{HOME};
-    } elsif ($ENV{USERPROFILE}) {
-        return $ENV{USERPROFILE};
-    } else {
-        return '';
-    }
+    my ($path, $perm) = make_refseq_dir();
+    return $path;
 }
-
-sub MakeRefseqDir {
+sub make_refseq_dir {
     my $deflt;
     if ($^O eq 'cygwin' and $ENV{USERPROFILE}) {
         $deflt = $ENV{USERPROFILE};
@@ -180,10 +273,11 @@ sub MakeRefseqDir {
         if ($1) {
             $deflt = "/cygdrive$deflt";
         }
+    } elsif ($ENV{HOME}) {
+        $deflt = $ENV{HOME};
+    } elsif ($ENV{USERPROFILE}) {
+        $deflt = $ENV{USERPROFILE};
     } else {
-        $deflt = Home();
-    }
-    unless ($deflt) {
         $deflt = getcwd();
     }
     $deflt = "." unless($deflt);
@@ -209,310 +303,199 @@ sub MakeRefseqDir {
             $path = $deflt;
         }
         exit 1 unless ($path);
-        my ($prm_org, $perm) = CheckDir($path, "create_missing");
-        my $prm = $prm_org;
+        my $perm = check_dir($path, "create_missing");
+        my $prm = $perm;
         my $created = $prm & $CREATED;
-        $prm &= $RWX;
-        if ($prm == $RWX || ($^O eq 'cygwin' and $created == $CREATED)) {
-            return ($path, $prm_org);
-        } elsif ($prm & $FOUND) {
-            println "'$path' does not seem to be writable.";
-            println "You will not be able to add new sequences to it.";
-            if (AskyN("Do you want to use it?")) {
-                return ($path, $prm_org);
-            }
+        $prm &= ~ $CREATED;
+        if ($prm == $RWX or ($^O eq 'cygwin' and $created == $CREATED)) {
+            return ($path, $perm);
         }
     }
 }
 
-sub Posixify {
-    ($_) = @_;
+sub create_cfg {
+    my ($config_dir, $refseq_dir, $bin_dir) = @_;
 
-    # convert to POSIX path
-    s|^/cygdrive/|/|;
-    tr|\\|/|;
-    s|^([a-zA-Z]):/|/$1/|;
+    my $kfg;
+    for (my $i = 0; ; ++$i) {
+        $kfg = "$config_dir/ncbi-config";
+        $kfg .= "$i" if ($i);
+        $kfg .= ".kfg";
+        last unless (-e $kfg);
+    }
 
-    return $_;
-}
+    print "creating configuration file $kfg... ";
+    {
+        # convert refseq_dir to POSIX path
+        $refseq_dir =~ s|^/cygdrive/|/|;
+        $refseq_dir =~ tr|\\|/|;
+        $refseq_dir =~ s|^([a-zA-Z]):/|/$1/|;
+    }
 
-sub Version {
-      my $bin = basename($0);
-      print << "END";
-$bin version $VERSION
-END
+    open(F, ">$kfg") or die "cannot open $kfg";
+    print F "refseq/paths = \"$refseq_dir\"\n";
+    close F or die "cannot close $kfg";
+    println "ok";
+
+    my %tmp_cfg = check_refseq_kfg();
+    die unless ($tmp_cfg{refseq_dir_prm} = $RWX);
 
-      exit 0;
+    println "N.B. Configuration file location is relative to the binaries";
+    {
+        if ($bin_dir and (File::Spec->catfile($bin_dir, "ncbi") eq $config_dir))
+        {
+            println "     ($bin_dir)";
+        }
+    }
+    println "     It can be lost of you move an application";
 }
 
 sub Help {
-    my ($exit) = @_;
-    $exit = 0 unless ($exit);
       my $bin = basename($0);
       print << "END";
-$bin version $VERSION
+$bin version 1.0.2
 
 Utility to help configure the SRA tools to be able
 to access the local reference repository,
-determine which reference sequences a SRA file relies
+determine which reference sequences a cSRA file relies
 upon and to fetch them from NCBI.
 Fetched references are placed in the local reference repository.
 
-Usage: $bin [--fix] [--wordy] [SRA_FILE ...]
+Usage: $bin [-v] [cSRA_FILE...]
 
 Options
--f, --fix         re-download existing reference files;
-                  fix refseq repository permissions
--v, --version     print version and exit
--w, --wordy       increase "fetcher" verbosity
+-v, --verbose       increase "fetcher" verbosity
 END
 
-      exit $exit;
+      exit 1;
 }
 
-sub FixRefseqCfg {
+sub fix_config {
     my ($refseq_cfg, $question, $bye) = @_;
-
-    unless (AskYn($question)) {
+    unless (askYn($question)) {
         print $bye;
         exit 1;
     }
-
-    ($refseq_cfg->{refseq_dir}, $refseq_cfg->{refseq_dir_prm})
-        = MakeRefseqDir();
-    UpdateRefseqCfgNode($refseq_cfg->{refseq_dir});
-}
-
-sub UpdateRefseqCfgNode {
-    ($_) = @_;
-    $_ = Posixify($_);
-    UpdateConfigNode('refseq/paths' , $_);
-}
-
-sub UpdateKryptoCfgNode {
-    ($_) = @_;
-    $_ = Posixify($_);
-    UpdateConfigNode('krypto/pwfile', $_);
-}
-    
-sub UpdateConfigNode {
-    my ($name, $val) = @_;
-
-    print "'$name' => '$val': ";
-    my $cmd = "$VDB_CONFIG -s \"$name=$val\"";
-#   println "\n$cmd";
-    `$cmd`;
-    if ($?) {
-        println "error: $!";
-    } else {
-        println "updated";
-    }
-}
-
-sub DoSchemaCfg {
-    my $error;
-
-    print "checking schema configuration... ";
-
-    my $tmp = `$VDB_CONFIG vdb/schema/paths 2>&1`;
-    if ($? == 0) {
-        chomp $tmp;
-
-        if ($tmp =~ m|<paths>(.+)</paths>|) {
-            my $paths = $1;
-            println $paths;
-            my @paths = split(/:/, $paths);
-
-            $error += !CheckSchemaFile('align/align.vschema', @paths);
-            $error += !CheckSchemaFile('ncbi/seq.vschema'   , @paths);
-            $error += !CheckSchemaFile('vdb/vdb.vschema'    , @paths);
-        } else {
-            $error = "unexpected: $tmp";
-            println $error;
+    my $config_dir = del_all_cfg_path($refseq_cfg);
+    ($refseq_cfg->{refseq_dir}, $refseq_cfg{refseq_dir_prm})
+        = make_refseq_dir();
+    create_cfg($config_dir, $refseq_cfg->{refseq_dir}, $BIN_DIR);
+}
+
+sub del_all_cfg_path {
+    my ($refseq_cfg) = @_;
+    my $config_dir;
+    my %bak;
+    foreach (@KFG_FILES) {
+        my $f = $_;
+        my $file_bak;
+        my $fixed = "";
+        open IN, $f or die "cannot open $_";
+        while (<IN>) {
+            if (m|refseq/servers| or m|refseq/volumes| or m|refseq/paths|) {
+                $config_dir = dirname($f) unless ($config_dir);
+                $fixed .= "# $_";
+                for (my $i = 0; not $file_bak; ++$i) {
+                    $file_bak = "$f.bak";
+                    $file_bak .= "$i" if ($i);
+                    last unless (-e $file_bak);
+                }
+            } else {
+                $fixed .= $_;
+            }
         }
-    } elsif ($tmp =~ /path not found/) {
-        $error = "not found";
-        println $error;
-    } else {
-        $error = "unknown vdb-config schema error";
-        println $error;
-    }
-
-    if ($error) {
-        println "--------------------------------------";
-        println "WARNING: SCHEMA FILES CANNOT BE FOUND.";
-        println "IT COULD CAUSE LOADERS TO FAIL.";
-        println "--------------------------------------";
-    }
-
-    return ! $error;
-}
-
-sub CheckSchemaFile {
-    my ($file, @dir) = @_;
-
-    my $cygdrive = '/cygdrive';
-    my $hasCygdrive = -e '/cygdrive';
-
-    print "checking $file... ";
-
-    foreach my $dir(@dir) {
-        my $path = "$dir/$file";
-        if (-e $path) {
-            println $path;
-            return 1;
+        close $f;
+        if ($file_bak) {
+            unless (rename($f, $file_bak)) {
+                rollback(%bak);
+                FATAL("Cannot update(save) $f: is file/directory writable?");
+            } else {
+                $bak{$file_bak} = $f;
+                unless (open(OUT, ">$f")) {
+                    rollback(%bak);
+                    FATAL("Cannot update $f: $!");
+                }
+                print OUT $fixed;
+                unless (close(OUT)) {
+                    rollback(%bak);
+                    FATAL("Cannot update(close) $f: $!");
+                }
+            }
         }
     }
-
-    println "not found";
-
-    return 0;
+    return $config_dir;
 }
 
-sub CleanEmptyFiles {
-    my ($refseq_dir) = @_;
-
-    print "checking $refseq_dir for invalid empty reference files... ";
-
-    my $i = 0;
-    opendir DIR, $refseq_dir or die "cannot opendir $refseq_dir";
-    while ($_ = readdir DIR) {
-        next if (/^\.{1,2}$/);
-
-        my $f = "$refseq_dir/$_";
-
-        my $empty;
-        if (-z $f) {
-            ++$empty;
-        } elsif (-d $f) {
-            # skip a directory
-        } elsif (-s $f < 999) {
-            open F, $f or die "cannot open $f";
-            my $data = '';
-            while (<F>) {
-                while(chomp) {};
-                $data .= $_;
-            }
-            ++$empty if ($data =~ m|<title>404 - Not Found</title>|);
-        }
-        if ($empty) {
-            unlink $f or die "cannot remove $f";
-            ++$i;
-        }
+sub rollback {
+    my (%bak) = @_;
+    while (my ($bak, $orig) = each %bak) {
+        rename($bak, $orig);
     }
-    closedir DIR;
-
-    if ($i)
-    {   println "$i found"; }
-    else
-    {   println "none found"; }
 }
 
-sub FixRefseqDirPermissions {
-    my ($dir, $read_only) = @_;
-    print "checking refseq repository...";
-    my $mode = (stat($dir))[2] & 07777;
-
-    if ($read_only) {
-        println " read-only";
-        print "\tchecking directory permissions...";
-        unless (-r $dir && -x $dir) {
-            Fatal("\n$dir cannot be accessed. "
-                . "Either update its permissions\n"
-                . "or choose another directory for refseq repository.");
-        }
-        println " OK";
-        print "\tchecking file permissions...";
-        opendir REP, $dir or die "cannot opendir $dir";
-        my $ok = 1;
-        while (my $f = readdir REP) {
-            next if ($f =~ /^\.{1,2}$/);
-            unless (-r "$dir/$f") {
-                Warn("\n$dir/$f is not readable. "
-                    . "Either update its permissions\n"
-                    . "or choose another directory for refseq repository.");
-                $ok = 0;
-            }
-        }
-        closedir REP;
-        println " OK" if $ok;
-        println "\tchecking parent directories...";
-        my @dirs = File::Spec->splitdir($dir);
-        my $p = File::Spec->rootdir;
-        while (@dirs) {
-            $_ = shift @dirs;
-            $p = File::Spec->catdir($p, $_);
-            print "\t\t$p";
-            $ok = 1;
-            unless (-r $p && -x $p) {
-                Warn("\n$p cannot be accessed. "
-                    . "Either update its permissions\n"
-                    . "or choose another directory for refseq repository.");
-                $ok = 0;
-            }
-            println " OK" if $ok;
-        }
+sub load {
+    my ($check_only, $refseq_dir, $f) = @_;
+    println "Determining $f external dependencies...";
+    my $cmd = "$ALIGN_INFO $f";
+    my @info = `$cmd`;
+    if ($?) {
+        println "$f: error";
     } else {
-        println " writable";
-        print "\tchecking directory permissions...";
-        my $ok = 1;
-        if (($mode & 0755) != 0755) {
-            $mode |= 0755;
-            if (chmod($mode, $dir) != 1) {
-                Warn("\n$dir is not acessible by some of the users\n"
-                    . "Dumping of some files could fail if run by anoother user"
-                  );
-                $ok = 0;
-            } else { println " fixed" }
-        } else { println " OK" }
-        $ok = "OK";
-        print "\tchecking file permissions...";
-        opendir REP, $dir or die "cannot opendir $dir";
-        while (my $next = readdir REP) {
-            next if ($next =~ /^\.{1,2}$/);
-            my $f = "$dir/$next";
-            my $mode = (stat($f))[2] & 07777;
-            if (($mode & 0644) != 0644) {
-                if ($ok) {
-                    $mode |= 0644;
-                    if (chmod($mode, $f) != 1) {
-                        Warn("\n$f cannot be acessed by some of the users\n"
-                                . "Dumping of some files could fail "
-                                . "if run by anoother user");
-                        $ok = "";
-                    } else { $ok = "fixed" }
+        my $refs = 0;
+        my $ok = 0;
+        my $ko = 0;
+        foreach (@info) {
+            chomp;
+            my @r = split /,/;
+            if ($#r >= 3) {
+                my ($seqId, $remote) = ($r[0], $r[3]);
+                ++$refs;
+                if ($remote eq 'remote') {
+                    if ($check_only) {
+                        println "$seqId: unresolved";
+                        ++$ok;
+                    } else {
+                        print "Downloading $seqId... ";
+                        println if ($options{verbose});
+                        my $cmd = "$WGET \"$refseq_dir/$seqId\"" .
+                          " http://ftp-trace.ncbi.nlm.nih.gov/sra/refseq/$seqId"
+                          . " 2>&1";
+                        my $res;
+                        if ($options{verbose}) {
+                            $res = system($cmd);
+                        } else {
+                            `$cmd`;
+                            $res = $?;
+                        }
+                        print "$seqId: " if ($options{verbose});
+                        if ($res) {
+                            println "failed";
+                            ++$ko;
+                        } else {
+                            println "ok";
+                            ++$ok;
+                        }
+                    }
                 }
             }
         }
-        closedir REP;
-        println " $ok" if ($ok);
-        $ok = 1;
-        println "\tchecking parent directories...";
-        my @dirs = File::Spec->splitdir($dir);
-        my $p = File::Spec->rootdir;
-        while (@dirs) {
-            $_ = shift @dirs;
-            $p = File::Spec->catdir($p, $_);
-            print "\t\t$p";
-            my $mode = (stat($p))[2] & 07777;
-            if (($mode & 0550) != 0550) {
-                if ($ok) {
-                    $mode |= 0550;
-                    if (chmod($mode, $p) != 1) {
-                        Warn("\n$p cannot be acessed by some of the users\n"
-                                . "Dumping of some files could fail "
-                                . "if run by anoother user");
-                        $ok = 0;
-                    } else { println " fixed" }
-                }
-            } else { println " OK" }
+        if ($check_only) {
+            if ($ok == 0) {
+                println "All $refs references were found";
+            } else {
+                println "$refs references were checked, $ok missed";
+            }
+        } else {
+            print "All $refs references were checked (";
+            print "$ko failed, " if ($ko);
+            println "$ok downloaded)";
         }
     }
 }
 
 ################################################################################
 
-sub CheckDir {
+sub check_dir {
     my ($dir, $create_missing) = @_;
 
     $dir = File::Spec->canonpath($dir);
@@ -521,7 +504,7 @@ sub CheckDir {
     my $prm = 0;
     unless (-e $dir) {
         println "not found";
-        return (0, 0) unless ($create_missing);
+        return 0 unless ($create_missing);
 
         print "checking ${dir}'s parents... ";
         $dir = File::Spec->canonpath($dir);
@@ -530,7 +513,7 @@ sub CheckDir {
         if ($^O eq 'MSWin32') {
             $test = "";
         } else {
-            Fatal("bad root directory '$test'") unless (-e $test);
+            FATAL("bad root directory '$test'") unless (-e $test);
         }
         foreach (@dirs) {
             my $prev = $test;
@@ -548,12 +531,12 @@ sub CheckDir {
         print "($test)... ";
         my $cygwin_beauty;
 # cygwin does not detect -r for $ENV{USERPROFILE}
-        if (! -r $test || ! -x $test) {
+        if (! -r $test or ! -x $test) {
             if ($^O eq 'cygwin') {
                 ++$cygwin_beauty;
             } else {
                 println "not readable";
-                return (0, 0);
+                return 0;
             }
         }
         if (! -x $test) {
@@ -561,7 +544,7 @@ sub CheckDir {
                 ++$cygwin_beauty;
             } else {
                 println "not writable";
-                return (0, 0);
+                return 0;
             }
         }
         if ($cygwin_beauty) {
@@ -574,14 +557,13 @@ sub CheckDir {
         unless (mkpath($dir)) {
             die "cannot mkdir $dir" unless ($cygwin_beauty);
             println "failed. Is it writable?";
-            return (0, 0);
+            return 0;
         }
         println("ok");
         $prm += $CREATED;
         print "checking $dir... ";
     }
 
-    my $perm = (stat($dir))[2];
     $prm += $FOUND;
 
     {
@@ -597,7 +579,7 @@ sub CheckDir {
             $prm += $X;
         }
 
-        if (! -r $dir || ! -x $dir) {
+        if (! -r $dir or ! -x $dir) {
             if ($^O eq 'cygwin') {
                 ++$cygwin_beauty;
             } else {
@@ -620,43 +602,53 @@ sub CheckDir {
         }
     }
 
-    return ($prm, $perm);
+    return $prm;
 }
 
-sub CheckCfg {
+sub check_refseq_kfg {
     print "checking refseq configuration... ";
-
-    my %konfig;
-    RefseqFromConfig(\%konfig);
-
-    if ($konfig{refseqrepository} || $konfig{servers} || $konfig{volumes})
-    {
-        if ($konfig{refseqrepository}) {
-            println "refseq/repository found:";
-        } elsif ($konfig{servers}) {
-            println "refseq/servers found:";
-        } elsif ($konfig{volumes}) {
-            println "refseq/volumes found:";
-        }
-        println "Seems to be running in NCBI environment:";
-        println "      refseq configuration fix/update is disabled;";
-        println "      reference files download is disabled.";
-        ++$options{NCBI};
-        return;
-    }
-
-    if ($konfig{paths}) {
-        println "paths=$konfig{paths}";
+    my %refseq_cfg;
+    refseq_from_kfg(\%refseq_cfg);
+
+    if ($refseq_cfg{servers} and !$refseq_cfg{volumes}) {
+        ++$refseq_cfg{NO_volumes};
+        println "found invalid";
+        return %refseq_cfg;
+        FATAL("need to update existing invalid configuration");
+        # TODO
+    } elsif ($refseq_cfg{volumes} and !$refseq_cfg{servers}) {
+        ++$refseq_cfg{NO_servers};
+        println "found invalid";
+        FATAL("need to update existing invalid configuration");
+        # TODO
+    } elsif ($refseq_cfg{servers} and $refseq_cfg{volumes}) {
+        println "servers=$refseq_cfg{servers}volumes=$refseq_cfg{volumes}";
+        if ($refseq_cfg{paths}) {
+           WARN("/refseq/servers&volumes found: /refseq/paths will be ignored");
+        }
+    } elsif ($refseq_cfg{paths}) {
+        println "paths=refseq_cfg{paths}";
     } else {
         println "not found";
-        return %konfig;
+        return %refseq_cfg;
     }
 
-    if ($konfig{paths} and index($konfig{paths}, ":") != -1) {
-        die "Unexpected configuration: paths=$konfig{paths}";
+    if ($refseq_cfg{servers} and index($refseq_cfg{servers}, ":") != -1) {
+        die "Unexpected configuration: servers=$refseq_cfg{servers}";
+    }
+    if ($refseq_cfg{volumes} and index($refseq_cfg{volumes}, ":") != -1) {
+        die "Unexpected configuration: volumes=$refseq_cfg{volumes}";
+    }
+    if ($refseq_cfg{paths} and index($refseq_cfg{paths}, ":") != -1) {
+        die "Unexpected configuration: paths=$refseq_cfg{paths}";
     }
 
-    my $dir = "$konfig{paths}";
+    my $dir;
+    if ($refseq_cfg{servers} and $refseq_cfg{volumes}) {
+        $dir = File::Spec->catdir($refseq_cfg{servers}, $refseq_cfg{volumes});
+    } else {
+        $dir ="$refseq_cfg{paths}";
+    }
 
     if ($^O eq 'MSWin32') { # Windows: translate POSIX to Windows path
         $dir =~ tr|/|\\|;
@@ -665,90 +657,26 @@ sub CheckCfg {
         $dir = "/cygdrive$dir";
     }
 
-    $konfig{refseq_dir} = $dir;
-    my ($prm, $perm) = CheckDir($dir);
-    $konfig{refseq_dir_prm} = $prm;
+    $refseq_cfg{refseq_dir} = $dir;
+    my $prm = check_dir($dir);
+    $refseq_cfg{refseq_dir_prm} = $prm;
     if ($prm == 0) { # not found
-        return %konfig;
+        return %refseq_cfg;
     } elsif ($prm != $RWX) {
         if ($^O ne 'cygwin') {
-            ++$konfig{FIX_paths};
-#           Fatal("refseq repository is invalid or read-only");
-        } # else cygwin does not always can tell permissions correctly
-    }
-    return %konfig;
-}
-
-sub FindWget {
-    my $WGET;
-
-    print "checking for wget... ";
-    my $out = `wget -h 2>&1`;
-    if ($? == 0) {
-        println "yes";
-        if ($options{fix}) {
-            $WGET = "wget -O";
-        } else {
-            $WGET = "wget -c -O";
-        }
-        ++$options{all_references};
-    } else {
-        println "no";
-    }
-
-    unless ($WGET) {
-        print "checking for curl... ";
-        my $out = `curl -h 2>&1`;
-        if ($? == 0) {
-            println "yes";
-            $WGET = "curl -o";
-            ++$options{all_references} if ($options{fix});
-        } else {
-            println "no";
-        }
-    }
-
-    unless ($WGET) {
-        print "checking for ./wget... ";
-        my $cmd = dirname($0) ."/wget";
-        my $out = `$cmd -h 2>&1`;
-        if ($? == 0) {
-            println "yes";
-            if ($options{fix}) {
-                $WGET = "$cmd -O";
-            } else {
-                $WGET = "$cmd -c -O";
-            }
-            ++$options{all_references};
-        } else {
-            println "no";
-        }
-    }
-
-    unless ($WGET) {
-        print "checking for ./wget.exe... ";
-        my $cmd = dirname($0) ."/wget.exe";
-        my $out = `$cmd -h 2>&1`;
-        if ($? == 0) {
-            println "yes";
-            if ($options{fix}) {
-                $WGET = "$cmd -O";
+            if ($refseq_cfg{servers}) {
+                ++$refseq_cfg{FIX_volumes};
             } else {
-                $WGET = "$cmd -c -O";
+                ++$refseq_cfg{FIX_paths};
             }
-            ++$options{all_references};
-        } else {
-            println "no";
-        }
+#           FATAL("refseq repository is invalid or read-only");
+        } # else cygwin does not always can tell permissions correctly
     }
-
-    Fatal("none of wget, curl could be found") unless ($WGET);
-
-    return $WGET;
+    return %refseq_cfg;
 }
 
-sub FindBin {
-    my ($name, $optional) = @_;
+sub find_bin {
+    my ($name) = @_;
 
     my $prompt = "checking for $name";
     my $basedir = dirname($0);
@@ -762,19 +690,13 @@ sub FindBin {
             if ($? == 0) {
                 chomp $dir;
                 my $try = File::Spec->catfile($dir, $name);
-                print "($try";
-                if (-e $try) {
-                    print ": found)... ";
-                    my $tmp = `$try -h 2>&1`;
-                    if ($? == 0) {
-                        println "yes";
-                        return ($try, $dir);
-                    } else {
-                        println "\nfailed to run '$try -h'";
-                    }
-                } else {
-                    println ": not found)";
+                print "($try)... ";
+                my $tmp = `$try -h 2>&1`;
+                if ($? == 0) {
+                    println "yes";
+                    return ($try, $dir);
                 }
+                println "no";
             }
         }
     } else {
@@ -784,36 +706,13 @@ sub FindBin {
     # try the script directory
     {
         my $try = File::Spec->catfile($basedir, $name);
-        print "$prompt ($try";
-        if (-e $try) {
-            print ": found)... ";
-            my $tmp = `$try -h 2>&1`;
-            if ($? == 0) {
-                println "yes";
-                return ($try, $basedir);
-            } else {
-                println "\nfailed to run '$try -h'";
-            }
-        } else {
-            println ": not found)";
-        }
-    }
-
-    # the script directory: windows
-    {
-        my $try = File::Spec->catfile($basedir, "$name.exe");
-        print "$prompt ($try";
-        if (-e $try) {
-            print ": found)... ";
-            my $tmp = `$try -h 2>&1`;
-            if ($? == 0) {
-                println "yes";
-                return ($try, $basedir);
-            } else {
-                println "\nfailed to run '$try -h'";
-            }
+        print "$prompt ($try)... ";
+        my $tmp = `$try -h 2>&1`;
+        if ($? == 0) {
+            println "yes";
+            return ($try, $basedir);
         } else {
-            println ": not found)";
+            println "no";
         }
     }
 
@@ -830,382 +729,47 @@ sub FindBin {
         }
     }
 
-    Fatal("$name could not be found") unless ($optional);
-    return (undef, undef);
-}
-
-sub DoKryptoCfg {
-    my ($kfg) = @_;
-
-    my $v = $kfg->{'krypto/pwfile'};
-    unless ($v) {
-        println "failed to read krypto configuration";
-        return;
-    }
-
-    my $dflt = $DECRYPTION_PKG ? 'y' : 'n';
-    print "Do you want to " . ((-e $v) ? "update" : "set") . " your dbGap encryption key? [" .
-        ($DECRYPTION_PKG ? "Y/n" : "y/N") . "] ";
-    my $answer = GetYNAnswer($dflt, 'y');
-    UpdateKryptoCfg() if ($answer eq 'y');
-}
-
-sub UpdateKryptoCfg {
-    my $VDB_PASSWD = (FindBin('vdb-passwd'))[0];
-
-    my $res = system("$VDB_PASSWD -q");
-    if ($res) {
-        println "password update failed";
-    } else {
-        println "password updated ok";
-    }
+    FATAL("$name could not be found");
 }
 
-sub RefseqConfig {
+sub refseq_config {
     my ($nm) = @_;
-
-    $_ = `$VDB_CONFIG refseq/$nm 2>&1`;
-
+    my $v = `$VDB_CONFIG refseq/$nm 2>&1`;
     if ($?) {
-        if (/path not found while opening node/) {
-            $_ = '';
+        if ($v =~ /path not found while opening node/) {
+            $v = '';
         } else {
             die $!;
         }
     } else {
-        m|<$nm>(.*)</$nm>|s;
+        $v =~ /<$nm>(.*)<\/$nm>/;
         die "Invalid 'refseq/$nm' configuration" unless ($1);
         # TODO die if (refseq/paths = "") : fix it
-        $_ = $1;
+        $v = $1;
     }
-
-    return $_;
+    return $v;
 }
 
-sub RefseqFromConfig {
+sub refseq_from_kfg {
     my ($refseq) = @_;
-
-    $refseq->{paths} = RefseqConfig('paths');
-    $refseq->{refseqrepository} = RefseqConfig('repository');
-    $refseq->{servers} = RefseqConfig('servers');
-    $refseq->{volumes} = RefseqConfig('volumes');
-}
-
-sub GetKfgNode {
-    my ($nm, $specPrnt) = @_;
-
-    print "$nm: ";
-
-    @_ = split(/\//, $nm);
-    die "GetKfgNode($nm)" if ($#_ < 0);
-    my $leaf = $_[$#_];
-
-    $_ = `$VDB_CONFIG $nm 2>&1`;
-
-    if ($?) {
-        if (/path not found while opening node/) {
-            $_ = '';
-        } else {
-            println;
-            die $!;
-        }
-    } else {
-        m|<$leaf>(.*)</$leaf>|s;
-        unless ($1) {
-            println;
-            die "Invalid '$nm' configuration: '$_'" 
-        }
-        $_ = $1;
-    }
-
-    if ($_) {
-        if ($specPrnt) {
-            if ($specPrnt  eq 'file') {
-                print "'$_': ";
-                if (-e $_) {
-                    println "exists";
-                } else {
-                    println "does not exist";
-                }
-            } else {
-                println "found";
-            }
-        } else {
-            println "'$_'";
-        }
-    } else {
-        println "not found";
-    }
-
-    return $_;
+    $refseq->{servers} = refseq_config('servers');
+    $refseq->{volumes} = refseq_config('volumes');
+    $refseq->{paths} = refseq_config('paths');
 }
 
-sub Kfg {
-    my ($kfg, $kfgMode, $msg) = @_;
-    my $updated;
-    my $read;
-    if ($kfgMode eq 'fix') {
-        println "\n$msg";
-    } else {
-        println "\n$msg";
-        $read = 1;
-    }
-
-    if ($read) {
-        $kfg->{dflt_user_root} = File::Spec->catdir(Home(), 'ncbi', 'public');
-    }
-
-#   my $nm = 'krypto/pwfile';
-#   if ($read) {
-#       $kfg->{$nm} = GetKfgNode($nm, 'file');
-#       if ($kfg->{$nm} eq '1' || $kfg->{$nm} eq '/.ncbi/vdb-passwd') {
-#            # fix bugs introduced by previous script version
-#            $kfg->{$nm} = '';
-#       }
-#       println;
-#   } else {
-#       if (!$kfg->{$nm}) {
-#           my $path = Posixify(
-#               File::Spec->catdir(Home(), '.ncbi', 'vdb-passwd'));
-#           UpdateConfigNode($nm, $path);
-#           $updated = 1;
-#       }
-#   }
-
-    if ($read) {
-        my $nm = 'refseq/servers';
-        $kfg->{$nm} = GetKfgNode($nm, 'file');
-
-        $nm = 'refseq/volumes';
-        $kfg->{$nm} = GetKfgNode($nm);
-        if ($kfg->{'refseq/servers'} && !($kfg->{'refseq/servers'} =~ m|^/net|)
-            && !($kfg->{'refseq/servers'} =~ m|^/panfs/|))
-        {
-            $kfg->{dflt_user_root}
-                = File::Spec->catdir($kfg->{'refseq/servers'});
-        }
-
-        $nm = 'refseq/paths';
-        $kfg->{$nm} = GetKfgNode($nm, 'file');
-        if ($kfg->{$nm} && ($kfg->{$nm} =~ m|^(.+)/refseq$|)) {
-            $kfg->{dflt_user_root} = $1;
-        }
-
-        println;
-    }
-
-
-    if ($read) {
-        my $nm = 'repository';
-        $kfg->{$nm} = GetKfgNode($nm, 'dont print');
-    }
-
-    my $disableRemoteName = 'repository/remote/main/NCBI/disabled';
-    my %remote = (
-        'repository/remote/main/NCBI/root'
-                         => 'http://ftp-trace.ncbi.nlm.nih.gov/sra',
-        'repository/remote/main/NCBI/apps/sra/volumes/fuse1000'
-                         => 'sra-instant/reads/ByRun/sra',
-        'repository/remote/main/NCBI/apps/refseq/volumes/refseq' => 'refseq',
-        'repository/remote/main/NCBI/apps/wgs/volumes/fuseWGS'   => 'wgs',
-        $disableRemoteName                                       => '',
-        'repository/remote/protected/CGI/resolver-cgi'
-                         => 'http://www.ncbi.nlm.nih.gov/Traces/names/names.cgi'
-    );
-
-    my $userRootName = 'repository/user/main/public/root';
-    my $enableCacheName = 'repository/user/main/public/cache-enabled';
-    my %user = (
-        $userRootName => '',
-        'repository/user/main/public/apps/sra/volumes/sraFlat'   => 'sra',
-        'repository/user/main/public/apps/refseq/volumes/refseq' => 'refseq',
-        'repository/user/main/public/apps/wgs/volumes/wgsFlat'   => 'wgs',
-        $enableCacheName                                         => ''
-   );
-
-    if ($read && $kfg->{repository}) {
-        my $nm = 'repository/site';
-        $kfg->{$nm} = GetKfgNode($nm, 'dont print');
-
-        println;
-    }
-
-    if ($read && $kfg->{repository}) {
-        my $nm = 'repository/remote';
-        $kfg->{$nm} = GetKfgNode($nm, 'dont print');
-    }
-
-    foreach my $nm(keys %remote) {
-        if ($read) {
-            if ($kfg->{'repository/remote'}) {
-                $kfg->{$nm} = GetKfgNode($nm);
-                unless ($kfg->{$nm}) {
-                    if ($nm ne $disableRemoteName || ! $DECRYPTION_PKG) {
-                        $kfg->{fix_remote} = 1;
-                    }
-                }
-            }
-        } else {
-            my $v = $remote{$nm};
-            if (!$kfg->{$nm}) {
-                if (!$v) {
-                    unless ($nm eq $disableRemoteName) {
-                        println "$nm: unknown";
-                        next;
-                    }
-                    next if ($DECRYPTION_PKG);
-                    print "\nWould you like to enable Remote Internet"
-                        . " access to NCBI(recommented)? [Y/n] ";
-                    my $answer = GetYNAnswer('y', 'n');
-                    if ($answer eq 'y') {
-                        $v = 'no';
-                    } else {
-                        println "You will be able to work "
-                            . "just with SRR files found locally";
-                        $v = 'yes';
-                    }
-                }
-                UpdateConfigNode($nm, $v);
-                $updated = 1;
-            } elsif ($v && ($kfg->{$nm} ne $v)) {
-                UpdateConfigNode($nm, $v);
-                $updated = 1;
-            }
-        }
-    }
-
-    if ($read && $kfg->{repository}) {
-        my $nm = 'repository/user';
-        $kfg->{$nm} = GetKfgNode($nm, 'dont print');
-    }
-
-    foreach my $nm(keys %user) {
-        if ($read) {
-            if ($kfg->{'repository/user'}) {
-                my $mode;
-                $mode = 'file' if ($nm eq $userRootName);
-                $kfg->{$nm} = GetKfgNode($nm, $mode);
-                $kfg->{fix_user} = 1 unless ($kfg->{$nm});
-            }
-        } elsif (!$kfg->{$nm}) {
-            my $v = $user{$nm};
-            unless ($v) {
-                next if ($DECRYPTION_PKG);
-                if ($nm eq $userRootName) {
-                    my $dflt = '';
-                    if ($kfg->{dflt_user_root}) {
-                        $dflt = $kfg->{dflt_user_root};
-                    }
-                    println;
-                    print
-               "The SRA Toolkit has the ability to download and cache data.\n" .
-               "Please indicate where data should be stored.\n" .
-               "You should choose a volume with enough free space.\n" .
-               "Path to your Repository ";
-                    print "[ $dflt ]: " if ($dflt);
-                    my $in = <STDIN>;
-                    chomp $in;
-                    $in = $dflt unless ($in);
-                    if (-e $in) {
-                        unless (-d $in) {
-                            println "$in: bad path";
-                        }
-                    } else {
-                        println "Directory '$in' does not exist.";
-                        print "Would you like to create it? [Y/n] ";
-                        my $answer = GetYNAnswer('y', 'y');
-                        if ($answer eq 'y') {
-                            print "'$in': creating... ";
-                            if (mkpath($in)) {
-                                println "ok";
-                            } else {
-                                println "error";
-                            }
-                        }
-                    }
-                    $v = Posixify($in);
-                } elsif ($nm eq $enableCacheName) {
-                    print
-            "\nWould you like to enable caching of downloaded data? [Y/n] ";
-                    my $answer = GetYNAnswer('y', 'y');
-                    $v = $answer eq 'n' ? 'false' : 'true';
-                } else {
-                    println "$nm: unknown";
-                    next;
-                }
-            }
-            UpdateConfigNode($nm, $v);
-            $updated = 1;
-        }
-    }
-
-    println;
-
-    if ($read) {
-        if (!$kfg->{repository} || $kfg->{fix_remote} || $kfg->{fix_user}) {
-            println "Configuration is incorrect";
-        } else {
-            println "Configuration is correct";
-        }
-    }
-
-    return $updated;
-}
-
-sub FixKfg {
-    my ($kfg) = @_;
-
-    if (!$kfg->{repository} || $kfg->{fix_remote} || $kfg->{fix_user}) {
-        print "Your configuration is incomplete. " .
-            "Would you like to fix it? [Y/n] ";
-        my $answer = GetYNAnswer('y', 'n');
-        if ($answer eq 'y') {
-            return Kfg($kfg, 'fix', 'Fixing configuration');
-        } else {
-            println
-                "Warning: Some tools could fail without proper configuration.";
-        }
-    }
-
-    return 0;
-}
-
-sub GetYNAnswer {
-    my ($dflt, $no) = @_;
-    my $in = <STDIN>;
-    chomp $in;
-    if ($in) {
-        if ($in eq 'Y' || $in eq 'y' ||
-            $in eq 'YES' || $in eq 'yes' || $in eq 'Yes')
-        {
-            return 'y';
-        } elsif ($in eq 'N' || $in eq 'n'
-            || $in eq 'NO' || $in eq 'no' || $in eq 'No')
-        {
-            return 'n';
-        } else {
-            return $no;
-        }
-    } else {
-        return $dflt;
-    }
-}
-
-sub Fatal {
+sub FATAL {
     my ($msg) = @_;
-
     print basename($0);
-    println ": Fatal: $msg";
-
+    println ": FATAL: $msg";
     exit 1;
 }
 
-sub Warn {
+sub WARN {
     my ($msg) = @_;
-
     print basename($0);
     println ": WARNING: $msg";
 }
 
+################################################################################
 # EOF #
 ################################################################################
diff --git a/doc/help/html/bam-load-help.html b/doc/help/html/bam-loader-help.html
similarity index 92%
rename from doc/help/html/bam-load-help.html
rename to doc/help/html/bam-loader-help.html
index 69bc6fa..c55de32 100644
--- a/doc/help/html/bam-load-help.html
+++ b/doc/help/html/bam-loader-help.html
@@ -2,13 +2,15 @@
        "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
-<title>bam-load help</title>
+<title>bam-loader help</title>
 </head>
 <body>
 
 <pre>
 Usage:
-bam-load [Options] BAMFILE
+ bam-loader 0.0.1
+
+bam-loader [Options] BAMFILE
     Load a bam file.
 
 Options:
diff --git a/doc/help/html/crc32sum-help.html b/doc/help/html/crc32sum-help.html
index d12b31f..8092dbb 100644
--- a/doc/help/html/crc32sum-help.html
+++ b/doc/help/html/crc32sum-help.html
@@ -7,7 +7,7 @@
 <body>
 
 <pre>
-: usage: crc32sum [<option>] file [file...]
+: usage: crc32sum [<option>] file [file...]
 
     options:
       -c          check CRC32 against given list
diff --git a/doc/help/txt/fastq-dump-help.txt b/doc/help/txt/fastq-dump-help.txt
old mode 100644
new mode 100755
diff --git a/interfaces/align/align-access.h b/interfaces/align/align-access.h
index 75f92ea..106e56c 100644
--- a/interfaces/align/align-access.h
+++ b/interfaces/align/align-access.h
@@ -39,12 +39,7 @@
 extern "C" {
 #endif
 
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VPath;
-
+struct KPath;
 
 /*--------------------------------------------------------------------------
  * constants
@@ -96,9 +91,9 @@ typedef struct AlignAccessDB AlignAccessDB;
  * NB - on Windows, these paths should be converted POSIX-style
  */
 ALIGN_EXTERN rc_t CC AlignAccessMgrMakeBAMDB ( const AlignAccessMgr *self,
-    const AlignAccessDB **db, struct VPath const *bam );
+    const AlignAccessDB **db, struct KPath const *bam );
 ALIGN_EXTERN rc_t CC AlignAccessMgrMakeIndexBAMDB ( const AlignAccessMgr *self,
-    const AlignAccessDB **db, struct VPath const *bam, struct VPath const *bam_index );
+    const AlignAccessDB **db, struct KPath const *bam, struct KPath const *bam_index );
 
 /* AddRef
  * Release
diff --git a/interfaces/align/align.vschema b/interfaces/align/align.vschema
index d7c35c9..06edb91 100644
--- a/interfaces/align/align.vschema
+++ b/interfaces/align/align.vschema
@@ -54,7 +54,7 @@ typedef U32 NCBI:align:ploidy;
 
 
 /* cigar
- *  construct "cigar" alignment string or length arrays
+ *  construct "cigar" alignment string
  *
  * "ctype" [ CONST ] - select variant of format
  *   0 => both matches and mismatches represented as M
@@ -68,23 +68,12 @@ typedef U32 NCBI:align:ploidy;
  *
  *  "ref_offset" [ DATA ] - a packed sequence of signed offsets to aligned position
  *   one entry for every true in "has_ref_offset"
- *
- *  "read_len" [ DATA ] - v2: elem_count defines PLOIDY and values are an actual length of reads in spot
  */
 extern function 
-ascii NCBI:align:cigar #1 < U8 ctype > ( bool has_mismatch, bool has_ref_offset,
-    I32 ref_offset, * INSDC:coord:len ref_len ) = ALIGN:cigar;
-
-extern function < type T >
-T NCBI:align:cigar #2 < U8 ctype > ( bool has_mismatch, bool has_ref_offset,
-      I32 ref_offset, INSDC:coord:len read_len, * INSDC:coord:len ref_len ) = ALIGN:cigar_2;
+ascii NCBI:align:cigar #1 < U8 ctype > ( bool has_mismatch, bool has_ref_offset, I32 ref_offset )
+    = ALIGN:cigar;
+extern function U32 NCBI:align:edit_distance #1 ( bool has_mismatch, bool has_ref_offset, I32 ref_offset );
 
-extern function U32 NCBI:align:edit_distance #1
-    ( bool has_mismatch, bool has_ref_offset, I32 ref_offset );
-    
-extern function U32 NCBI:align:edit_distance #2
-    ( bool has_mismatch, bool has_ref_offset, I32 ref_offset, INSDC:coord:len ref_len, *INSDC:coord:len read_len)
-  = NCBI:align:edit_distance_2;
 
 /* project_from_sequence
  *  projects column from SEQUENCE
@@ -114,7 +103,7 @@ T NCBI:align:project_from_sequence #1 < ascii col> ( I64 seq_spot_id, INSDC:coor
  */
 extern function
 INSDC:4na:bin NCBI:align:align_restore_read #1 ( INSDC:4na:bin ref_read, bool has_mismatch,
-        INSDC:4na:bin mismatch, bool has_ref_offset, I32 ref_offset * INSDC:coord:len read_len)
+        INSDC:4na:bin mismatch, bool has_ref_offset, I32 ref_offset)
     = ALIGN:align_restore_read;
 
 
@@ -156,6 +145,20 @@ INSDC:4na:bin NCBI:align:ref_sub_select #1 ( I64 id, INSDC:coord:zero start,
     = ALIGN:ref_sub_select;
 
 
+/* ref_sub_select_preserve_qual
+ *  projects from reference
+ *
+ *  "id" [ DATA ]
+ *
+ *  "start" [ DATA ] and "len" [ DATA ]
+ *
+ *  "ref_ploidy" [ DATA, OPTIONAL ]
+ */
+extern function
+bool NCBI:align:ref_sub_select_preserve_qual #1 ( I64 id, INSDC:coord:zero start,
+        INSDC:coord:len len * U32 ref_ploidy);
+
+
 /* ref_restore_read
  *  restores read from central storage
  *
@@ -300,36 +303,20 @@ extern function U32 NCBI:align:get_sam_flags #2 (
 extern function INSDC:coord:len NCBI:align:get_left_soft_clip #1
     ( bool has_ref_offset, I32 ref_offset );
 
-extern function INSDC:coord:len NCBI:align:get_left_soft_clip #2
-    ( bool has_ref_offset, I32 ref_offset, INSDC:coord:len read_len )
-   = NCBI:align:get_left_soft_clip_2;
-
 /* get_right_soft_clip
  *  compute the length of the soft clip on the right edge of the alignment
  */
 extern function INSDC:coord:len NCBI:align:get_right_soft_clip #1
     ( bool has_mismatch, INSDC:coord:len left_clip * bool has_ref_offset );
-    
 extern function INSDC:coord:len NCBI:align:get_right_soft_clip #2
     ( bool has_mismatch, INSDC:coord:len left_clip, bool has_ref_offset, I32 ref_offset )
    = NCBI:align:get_right_soft_clip_2;
 
-extern function INSDC:coord:len NCBI:align:get_right_soft_clip #3
-    ( bool has_ref_offset, I32 ref_offset, INSDC:coord:len ref_len )
-   = NCBI:align:get_right_soft_clip_3;
-
-extern function INSDC:coord:len NCBI:align:get_right_soft_clip #4
-    ( bool has_ref_offset, I32 ref_offset, INSDC:coord:len read_len, INSDC:coord:len ref_len )
-   = NCBI:align:get_right_soft_clip_4;
-
 /* get_clipped_cigar
  *  compute the CIGAR string with the soft clipping removed
  */
 extern function ascii NCBI:align:get_clipped_cigar #1 ( ascii cigar );
 
-extern function < type T > 
-T NCBI:align:get_clipped_cigar #2 ( ascii cigar, INSDC:coord:len cigar_len ) = NCBI:align:get_clipped_cigar_2;
-
 /* get_clipped_ref_offset
  *  compute the reference offsets with the soft clipping removed
  */
@@ -343,15 +330,11 @@ extern function I32 NCBI:align:get_clipped_ref_offset #1
 extern function < type T > T NCBI:align:clip #1
     ( T object, INSDC:coord:len left_clip, INSDC:coord:len right_clip);
 
-extern function < type T > T NCBI:align:clip #2
-    ( T object, INSDC:coord:len read_len, INSDC:coord:len left_clip, INSDC:coord:len right_clip)
-   = NCBI:align:clip_2;
-
 /* get_ref_len
  *  compute reference length from alignment information
  */
 extern function INSDC:coord:len NCBI:align:get_ref_len #1
-    ( bool has_ref_offset, I32 ref_offset, * INSDC:coord:len right_clip );
+    ( bool has_ref_offset, I32 ref_offset, INSDC:coord:len right_clip );
 
 /* get_mismatch_read
  *  generate the READ with matching bases replaced with '='
@@ -381,47 +364,39 @@ function bool NCBI:align:get_ref_delete #1
     ( bool has_mismatch, bool has_ref_offset, I32 ref_offset,
       INSDC:coord:len ref_len );
 
-extern function INSDC:quality:phred NCBI:align:compress_quality #1
-    ( INSDC:quality:phred quality, bool preserved );
-
-extern function INSDC:quality:phred NCBI:align:decompress_quality #1
-    < INSDC:quality:phred restored_qual_value >
-    ( INSDC:quality:phred cmp_quality, bool preserved );
-
-/* make_cmp_read_start
- *
+/* get_ref_preserve_qual
+ *  compute the positions where corresponding qualities should be preserved
+ *  when converting to an analysis database.  In reference coordinate space.
+ *  This is imported by generate_preserve_qual.
+ * Preserve where:
+ *  one position to each side of a mismatch
+ *  two positions to each side of an indel
  */
-extern function INSDC:coord:zero NCBI:align:make_read_start #1
-    (INSDC:coord:len read_len);
+function bool NCBI:align:get_ref_preserve_qual #1
+    ( bool has_mismatch, bool has_ref_offset, I32 ref_offset,
+      INSDC:coord:len ref_len );
 
-/* make_cmp_read_desc
- *  determines whether an element of "operand" is aligned
- *  by looking at the corresponding element of "align_id"
- *
- *  zeros out unaligned elements of operand, unless "invert" is true,
- *  in which case it zeros out aligned elements.
- *
- *  "T" [ TYPE ] - type of operand
- *
- *  "invert" [ CONST ] - if true, invert the logic of which elements
- *  to zero out.
- *
- *  "operand" [ DATA ] - uncompressed data
- *
- *  "align_id" [ DATA ] - indication of alignment
+/* get_seq_preserve_qual
+ *  the positions where corresponding qualities should be preserved
+ *  when converting to an analysis database.  In sequence coordinate space.
  */
-extern function < type T >
-T NCBI:align:make_cmp_read_desc #1 <bool invert>(T operand, I64 align_id);
+function bool NCBI:align:get_seq_preserve_qual #1
+    ( bool ref_preserve_qual, bool has_ref_offset, I32 ref_offset );
 
-/* seq_construct_read
- *  assembles read from aligned and unaligned parts
+/* generate_preserve_qual
+ *  the positions where corresponding qualities should be preserved
+ *  when converting to an analysis database.
+ *  This is pulled from get_ref_preserve_qual, piled up, and or'ed together.
  */
-extern function < type T >
-T NCBI:align:seq_construct_read #1 (
-    T aligned, INSDC:coord:len aligned_read_len,
-    T unaligned, INSDC:coord:len unaligned_read_len );
+extern function bool NCBI:align:generate_preserve_qual #1
+    ( utf8 ref_name, INSDC:coord:len seq_len, U32 max_seq_len );
     
-extern function I64 NCBI:align:get_mate_align_id #1 ( I64 spot_id );
+extern function INSDC:quality:phred NCBI:align:compress_quality #1
+    ( INSDC:quality:phred quality, bool preserved );
+
+extern function INSDC:quality:phred NCBI:align:decompress_quality #1
+    < INSDC:quality:phred restored_qual_value >
+    ( INSDC:quality:phred cmp_quality, bool preserved );
 
 /*--------------------------------------------------------------------------
  * tables
@@ -433,9 +408,11 @@ extern function I64 NCBI:align:get_mate_align_id #1 ( I64 spot_id );
  */
 table NCBI:align:tbl:ref_block_cmn #1.0.0
 {
+    // TBD:
+    // Name of Reference table; should be a constant
+    // extern column zip_encoding < ascii > REF_TABLE;
     readonly column ascii REF_TABLE
-        = < ascii > meta:read < "CONFIG/REF_TABLE" > ()
-        | < ascii > echo < 'REFERENCE' > ();
+        = < ascii > echo < 'REFERENCE' > ();
 
     // REF_ID is rowid in Reference Table REF_TABLE
     extern column I64 REF_ID
@@ -444,20 +421,17 @@ table NCBI:align:tbl:ref_block_cmn #1.0.0
     // this is a redefinition of REF_START
     // REF_START is the offset within REFERENCE.READ
     extern column INSDC:coord:zero REF_START
-        = out_ref_start;
+        = out_local_ref_start;
 
     // global REF_START
     extern column U64 GLOBAL_REF_START
         = out_global_ref_start;
 
     // REF_LEN the length of a read projection on reference
-    INSDC:coord:len out_ref_len_internal
-        = NCBI:align:get_ref_len ( out_has_ref_offset, out_ref_offset );
-
+    // extern column < INSDC:coord:len > izip_encoding REF_LEN;
     INSDC:coord:len out_ref_len
         = .REF_LEN
-        | NCBI:align:get_ref_len ( out_has_ref_offset, out_ref_offset, out_right_clip )
-        | out_ref_len_internal;
+        | NCBI:align:get_ref_len ( out_has_ref_offset, out_ref_offset, out_right_clip );
         
     physical column < INSDC:coord:len > izip_encoding .REF_LEN = REF_LEN;
     extern column INSDC:coord:len REF_LEN = out_ref_len;
@@ -474,7 +448,7 @@ table NCBI:align:tbl:ref_block_cmn #1.0.0
      *  per PLOIDY
      */
     readonly column INSDC:coord:zero REF_POS
-        = NCBI:align:ref_pos ( out_ref_id, out_ref_start );
+        = NCBI:align:ref_pos ( out_ref_id, out_local_ref_start );
 
     /* REF_NAME
      *  the name of the reference
@@ -485,8 +459,7 @@ table NCBI:align:tbl:ref_block_cmn #1.0.0
     /* REF_SEQ_ID
      */
     readonly column ascii REF_SEQ_ID
-        = NCBI:align:ref_seq_id ( out_ref_id )
-        | < ascii > echo < '' > ();
+        = NCBI:align:ref_seq_id ( out_ref_id );
 };
 
 
@@ -500,7 +473,7 @@ table NCBI:align:tbl:global_ref_block #1.0.0
     physical < U64 > izip_encoding .GLOBAL_REF_START = GLOBAL_REF_START;
 
     I64 out_ref_id = NCBI:align:local_ref_id ( .GLOBAL_REF_START );
-    INSDC:coord:zero out_ref_start = NCBI:align:local_ref_start ( .GLOBAL_REF_START );
+    INSDC:coord:zero out_local_ref_start = NCBI:align:local_ref_start ( .GLOBAL_REF_START );
 };
 
 
@@ -513,7 +486,7 @@ table NCBI:align:tbl:local_ref_block #1.0.0
     I64 out_ref_id = .REF_ID;
     physical < I64 > izip_encoding .REF_ID = REF_ID;
 
-    INSDC:coord:zero out_ref_start = .REF_START;
+    INSDC:coord:zero out_local_ref_start = .REF_START;
     physical < INSDC:coord:zero > izip_encoding .REF_START = REF_START;
 };
 
@@ -521,7 +494,7 @@ table NCBI:align:tbl:local_ref_block #1.0.0
 /* align_cmn
  *  common interface and implementation for alignment object
  */
-table NCBI:align:tbl:align_cmn #2
+table NCBI:align:tbl:align_cmn #1.1.0
     = NCBI:tbl:base_space_common #1.0.3
     , NCBI:SRA:tbl:stats #1.2.0
     , NCBI:align:tbl:ref_block_cmn #1.0.0
@@ -543,28 +516,19 @@ table NCBI:align:tbl:align_cmn #2
 /* Soft-Clipped data block */
 
     readonly column INSDC:coord:len LEFT_SOFT_CLIP
-        = NCBI:align:get_left_soft_clip ( HAS_REF_OFFSET, REF_OFFSET, out_read_len );
+        = NCBI:align:get_left_soft_clip ( HAS_REF_OFFSET, REF_OFFSET );
         
-    INSDC:coord:len out_right_clip
-        = NCBI:align:get_right_soft_clip #4 ( out_has_ref_offset, out_ref_offset, out_read_len, out_ref_len )
-        | NCBI:align:get_right_soft_clip #3 ( out_has_ref_offset, out_ref_offset, out_ref_len )
-        | NCBI:align:get_right_soft_clip #2 ( out_has_mismatch, LEFT_SOFT_CLIP, out_has_ref_offset, out_ref_offset );
+    INSDC:coord:len out_right_clip = NCBI:align:get_right_soft_clip #2( out_has_mismatch, LEFT_SOFT_CLIP, out_has_ref_offset,out_ref_offset );
     readonly column INSDC:coord:len RIGHT_SOFT_CLIP = out_right_clip;
         
     readonly column ascii CLIPPED_CIGAR_LONG
-        = < ascii > NCBI:align:get_clipped_cigar ( CIGAR_LONG, CIGAR_LONG_LEN );
-
-    readonly column INSDC:coord:len CLIPPED_CIGAR_LONG_LEN
-        = < INSDC:coord:len > NCBI:align:get_clipped_cigar ( CIGAR_LONG, CIGAR_LONG_LEN );
+        = NCBI:align:get_clipped_cigar ( CIGAR_LONG );
 
     readonly column ascii CLIPPED_CIGAR_SHORT
-        = < ascii > NCBI:align:get_clipped_cigar ( CIGAR_SHORT, CIGAR_SHORT_LEN );
+        = NCBI:align:get_clipped_cigar ( CIGAR_SHORT );
         
-    readonly column INSDC:coord:len CLIPPED_CIGAR_SHORT_LEN
-        = < INSDC:coord:len > NCBI:align:get_clipped_cigar ( CIGAR_SHORT, CIGAR_SHORT_LEN );
-
     bool out_clipped_has_mismatch
-        = < bool > NCBI:align:clip (out_has_mismatch, out_read_len, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
+        = < bool > NCBI:align:clip (out_has_mismatch, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
         
     readonly column ascii CLIPPED_HAS_MISMATCH
         = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_clipped_has_mismatch );
@@ -572,26 +536,33 @@ table NCBI:align:tbl:align_cmn #2
     readonly column bool CLIPPED_HAS_MISMATCH = out_clipped_has_mismatch;
 
     bool out_clipped_has_ref_offset
-        = < bool > NCBI:align:clip (HAS_REF_OFFSET, out_read_len, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
+        = < bool > NCBI:align:clip (HAS_REF_OFFSET, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
 
     readonly column ascii CLIPPED_HAS_REF_OFFSET
         = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_clipped_has_ref_offset );
 
     readonly column bool CLIPPED_HAS_REF_OFFSET = out_clipped_has_ref_offset;
 
-    // TBD cannot be computed right unless HAS_MISMATCH and! READ_LEN is used
     readonly column INSDC:dna:text CLIPPED_MISMATCH
-        = < INSDC:dna:text > NCBI:align:clip #1 ( out_mismatch_dna_text, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
+        = < INSDC:dna:text > NCBI:align:clip ( out_mismatch_dna_text, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
 
     readonly column I32 CLIPPED_REF_OFFSET
         = NCBI:align:get_clipped_ref_offset ( HAS_REF_OFFSET, REF_OFFSET );
         
     readonly column INSDC:quality:phred CLIPPED_QUALITY
-        = < INSDC:quality:phred > NCBI:align:clip (out_qual_phred, out_read_len, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
+        = < INSDC:quality:phred > NCBI:align:clip (out_qual_phred, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
         
     readonly column INSDC:dna:text CLIPPED_READ
-        = < INSDC:dna:text > NCBI:align:clip (READ, out_read_len, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
+        = < INSDC:dna:text > NCBI:align:clip (READ, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
 
+    bool out_clipped_preserve_qual
+        = < bool > NCBI:align:clip (out_seq_preserve_qual, LEFT_SOFT_CLIP, RIGHT_SOFT_CLIP);
+        
+    readonly column ascii CLIPPED_PRESERVE_QUAL
+        = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_clipped_preserve_qual );
+
+    readonly column bool CLIPPED_PRESERVE_QUAL = out_clipped_preserve_qual;
+    
 /* Sequence Block */
 
     extern column < NCBI:align:ploidy > izip_encoding PLOIDY;
@@ -624,22 +595,18 @@ table NCBI:align:tbl:align_cmn #2
     INSDC:quality:phred out_raw_qual = < INSDC:quality:phred >
         NCBI:align:project_from_sequence < '( INSDC:quality:phred ) QUALITY'> ( .SEQ_SPOT_ID, .SEQ_READ_ID );
     INSDC:quality:phred out_qual_phred
-        = NCBI:align:raw_restore_qual ( out_raw_qual, .REF_ORIENTATION )
-        | < INSDC:quality:phred > echo < 30 > ( out_4na_bin );
-    readonly column INSDC:quality:text:phred_33 SAM_QUALITY = QUALITY ;
+        = NCBI:align:decompress_quality < 40 > ( .CMP_QUALITY, PRESERVE_QUAL )
+        | NCBI:align:raw_restore_qual ( out_raw_qual, .REF_ORIENTATION );
+    readonly column INSDC:quality:text:phred_33 SAM_QUALITY = QUALITY; // simple alias
 
     // project read group and name
     ascii out_spot_group = < ascii > simple_sub_select < 'SEQUENCE','SPOT_GROUP'> (.SEQ_SPOT_ID);
 
-
-    INSDC:SRA:spotid_t tmp_seq_spot_id
-        = cast ( .SEQ_SPOT_ID )
-        ;
     physical <ascii> zip_encoding .SEQ_NAME = SEQ_NAME;
     extern column ascii SEQ_NAME
         = .SEQ_NAME
         | < ascii > simple_sub_select < 'SEQUENCE','NAME'> (.SEQ_SPOT_ID)
-        | sprintf < "%u" > ( tmp_seq_spot_id );
+        | sprintf < "%u" > ( .SEQ_SPOT_ID );
 
     // compute sam flags
     /* blows up parser: starts at schema-tbl.c:2138
@@ -679,14 +646,12 @@ table NCBI:align:tbl:align_cmn #2
     INSDC:SRA:read_filter out_rd_filter
         = .RD_FILTER
         | < INSDC:SRA:read_filter > NCBI:align:project_from_sequence < 'READ_FILTER' > ( .SEQ_SPOT_ID, .SEQ_READ_ID ) 
-        | < INSDC:SRA:read_filter > echo < SRA_READ_FILTER_PASS > ( out_read_len );
+        | < INSDC:SRA:read_filter > echo < SRA_READ_FILTER_PASS > ( out_ref_len );
 
     INSDC:SRA:platform_id out_platform
         = .PLATFORM
-        | < INSDC:SRA:platform_id > simple_sub_select < 'SEQUENCE','PLATFORM'> (.SEQ_SPOT_ID)
         | < INSDC:SRA:platform_id > echo < SRA_PLATFORM_UNDEFINED > ();
 
-    U8 out_alignment_count = <U8> NCBI:align:project_from_sequence < 'ALIGNMENT_COUNT' > ( .SEQ_SPOT_ID, .SEQ_READ_ID );
 
     /* out_read_type
      *  set to SRA_READ_TYPE_FORWARD + SRA_READ_TYPE_BIOLOGICAL
@@ -713,15 +678,13 @@ table NCBI:align:tbl:align_cmn #2
 
     // MAPQ - single value quality of the mapping; the scale is submitter specific
     extern column < I32 > izip_encoding MAPQ;
-
+    
     extern column INSDC:coord:zero MATE_REF_POS = out_mate_ref_pos;
     extern column INSDC:coord:len MATE_REF_LEN = out_mate_ref_len;
     extern column I64 MATE_REF_ID = out_mate_ref_id;
     extern column I32 TEMPLATE_LEN = out_template_len;
     extern column bool MATE_REF_ORIENTATION = out_mate_ref_orientation;
     readonly column ascii MATE_REF_NAME = NCBI:align:ref_name ( out_mate_ref_id );
-    readonly column ascii MATE_REF_SEQ_ID = NCBI:align:ref_seq_id( out_mate_ref_id );
-    readonly column U8 ALIGNMENT_COUNT  = out_alignment_count;
 
 
 /********************************
@@ -752,14 +715,21 @@ table NCBI:align:tbl:align_cmn #2
     readonly column INSDC:dna:text REF_READ
         = < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( REF_READ );
 
+    // TDB: fix this function
     readonly column INSDC:4na:bin REF_READ
-        = NCBI:align:ref_sub_select (out_ref_id, out_ref_start, out_ref_len, .REF_PLOIDY)
-        | NCBI:align:ref_sub_select (out_ref_id, out_ref_start, out_ref_len );
-        
-    INSDC:4na:bin ref_read_internal
-        = NCBI:align:ref_sub_select (out_ref_id, out_ref_start, out_ref_len_internal, .REF_PLOIDY)
-        | NCBI:align:ref_sub_select (out_ref_id, out_ref_start, out_ref_len_internal);
+        = NCBI:align:ref_sub_select (out_ref_id, out_local_ref_start, out_ref_len, .REF_PLOIDY)
+        | NCBI:align:ref_sub_select (out_ref_id, out_local_ref_start, out_ref_len );
 
+    bool in_preserve_qual_ref
+        = NCBI:align:ref_sub_select_preserve_qual (out_ref_id, out_local_ref_start, out_ref_len, .REF_PLOIDY)
+        | NCBI:align:ref_sub_select_preserve_qual (out_ref_id, out_local_ref_start, out_ref_len );
+
+    readonly column ascii PRESERVE_QUAL_REF = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( in_preserve_qual_ref );
+    readonly column bool  PRESERVE_QUAL_REF = in_preserve_qual_ref;
+
+    INSDC:quality:phred out_cmp_quality
+        = NCBI:align:compress_quality ( CLIPPED_QUALITY, CLIPPED_PRESERVE_QUAL );
+        
     // text forms of reads
     INSDC:dna:text out_dna_text
         = < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_4na_bin );
@@ -769,23 +739,10 @@ table NCBI:align:tbl:align_cmn #2
         = out_raw_read;
 
     // CIGARs
-    readonly column ascii CIGAR_LONG
-        = < ascii > NCBI:align:cigar #2 < 1 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len, out_ref_len)
-        | < ascii > NCBI:align:cigar #2 < 1 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len);
-    readonly column INSDC:coord:len CIGAR_LONG_LEN
-        = < INSDC:coord:len > NCBI:align:cigar #2 < 1 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len, out_ref_len)
-        | < INSDC:coord:len > NCBI:align:cigar #2 < 1 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len);
-    readonly column ascii CIGAR_SHORT
-        = < ascii > NCBI:align:cigar #2 < 0 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len, out_ref_len)
-        | < ascii > NCBI:align:cigar #2 < 0 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len);
-    readonly column INSDC:coord:len CIGAR_SHORT_LEN
-        = < INSDC:coord:len > NCBI:align:cigar #2 < 0 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len, out_ref_len)
-        | < INSDC:coord:len > NCBI:align:cigar #2 < 0 > (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_read_len);
-
-    readonly column U32 EDIT_DISTANCE
-        = NCBI:align:edit_distance #2 (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_ref_len, out_read_len)
-        | NCBI:align:edit_distance #2 (out_has_mismatch, out_has_ref_offset, out_ref_offset, out_ref_len)
-        | NCBI:align:edit_distance #1 (out_has_mismatch, out_has_ref_offset, out_ref_offset);
+    // TBD: when PLOIDY more than 1
+    readonly column ascii CIGAR_LONG  = NCBI:align:cigar < 1 > (out_has_mismatch, out_has_ref_offset, out_ref_offset);
+    readonly column ascii CIGAR_SHORT = NCBI:align:cigar < 0 > (out_has_mismatch, out_has_ref_offset, out_ref_offset);
+    readonly column U32   EDIT_DISTANCE = NCBI:align:edit_distance (out_has_mismatch, out_has_ref_offset, out_ref_offset); 
 
     readonly column ascii HAS_MISMATCH = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_has_mismatch );
     
@@ -793,6 +750,17 @@ table NCBI:align:tbl:align_cmn #2
     readonly column ascii SEQ_SPOT_GROUP = out_spot_group;
 
 
+/* These columns for calculating the positions where quality is preserved when
+ * converting to an analysis database.
+ */ 
+    bool out_ref_preserve_qual = NCBI:align:get_ref_preserve_qual ( out_has_mismatch, out_has_ref_offset, out_ref_offset, out_ref_len );
+    readonly column ascii REF_PRESERVE_QUAL = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_ref_preserve_qual );
+    readonly column bool REF_PRESERVE_QUAL = out_ref_preserve_qual;
+    
+    bool out_seq_preserve_qual = NCBI:align:get_seq_preserve_qual ( in_preserve_qual_ref, out_has_ref_offset, out_ref_offset );
+    readonly column ascii PRESERVE_QUAL = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_seq_preserve_qual );
+    readonly column bool PRESERVE_QUAL = out_seq_preserve_qual;
+
 /* These columns are purely informational. */    
     bool out_ref_mismatch = NCBI:align:get_ref_mismatch ( out_has_mismatch, out_has_ref_offset, out_ref_offset, out_ref_len );
     readonly column ascii REF_MISMATCH = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_ref_mismatch );
@@ -814,61 +782,42 @@ table NCBI:align:tbl:align_cmn #2
  *  alignment transcript is calculated
  */
 table NCBI:align:tbl:align_full #1.0.0
-    = NCBI:align:tbl:align_cmn #2
+    = NCBI:align:tbl:align_cmn #1.1.0
 {
     bool out_is_secondary = <bool> echo < true > ();
     // restore reads to its raw form (orientation is restored)
-
     INSDC:4na:bin out_raw_read
-        = < INSDC:4na:bin > simple_sub_select  < 'PRIMARY_ALIGNMENT', '( INSDC:4na:bin ) RAW_READ' > (.PRIMARY_ALIGNMENT_ID)
+        = < INSDC:4na:bin > simple_sub_select  < 'PRIMARY_ALIGNMENT', '( INSDC:4na:bin ) RAW_READ' > (PRIMARY_ALIGNMENT_ID)
         | < INSDC:4na:bin > NCBI:align:project_from_sequence < '( INSDC:4na:bin ) READ'> ( .SEQ_SPOT_ID, .SEQ_READ_ID );
         
-    INSDC:4na:bin out_4na_bin 
-	    = NCBI:align:align_restore_read ( ref_read_internal, out_has_mismatch, tmp_out_mismatch_4na_bin, out_has_ref_offset, out_ref_offset, .READ_LEN )
-	    | NCBI:align:align_restore_read ( ref_read_internal, out_has_mismatch, tmp_out_mismatch_4na_bin, out_has_ref_offset, out_ref_offset )
-    	    | NCBI:align:raw_restore_read ( out_raw_read, .REF_ORIENTATION );
+    INSDC:4na:bin out_4na_bin = NCBI:align:raw_restore_read ( out_raw_read, .REF_ORIENTATION );
 	
 
     // flags mismatches with the reference
     // produced by actual comparison of REF_READ and READ
-    // TMP_HAS_MISMATCH is a hack to speed up retrieval during coverage recalculation
-    column bool_encoding TMP_HAS_MISMATCH;
     bool out_has_mismatch
-        = .TMP_HAS_MISMATCH 
-	| NCBI:align:generate_has_mismatch ( REF_READ, READ, out_has_ref_offset, out_ref_offset );
-    readonly column bool HAS_MISMATCH = out_has_mismatch;
+        = NCBI:align:generate_has_mismatch ( REF_READ, READ, out_has_ref_offset, out_ref_offset );
 
     INSDC:4na:bin out_mismatch_4na_bin
         = NCBI:align:generate_mismatch ( REF_READ, READ, out_has_ref_offset, out_ref_offset );
-
-    INSDC:4na:bin tmp_out_mismatch_4na_bin =  < INSDC:dna:text, INSDC:4na:bin > map < INSDC:4na:map:CHARSET, INSDC:4na:map:BINSET > ( .TMP_MISMATCH );
-
-    // temporary column for reference coverage calculation        
-    column < INSDC:dna:text> zip_encoding TMP_MISMATCH;
-
+        
     INSDC:dna:text out_mismatch_dna_text
-        = .TMP_MISMATCH
-        | < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_mismatch_4na_bin );
+        = < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_mismatch_4na_bin );
     
     readonly column INSDC:dna:text MISMATCH = out_mismatch_dna_text;
     readonly column INSDC:4na:bin MISMATCH = out_mismatch_4na_bin;
 
     physical column < INSDC:coord:zero > izip_encoding .MATE_REF_POS = MATE_REF_POS;
-    INSDC:coord:zero out_mate_ref_pos = .MATE_REF_POS
-                                      | < INSDC:coord:zero > simple_sub_select < '','REF_POS'> (MATE_ALIGN_ID);
+    INSDC:coord:zero out_mate_ref_pos = .MATE_REF_POS;
     
     physical column < I64 > izip_encoding .MATE_REF_ID = MATE_REF_ID;
-    I64 out_mate_ref_id = .MATE_REF_ID
-                        | < I64 > simple_sub_select < '','REF_ID'> (MATE_ALIGN_ID);
+    I64 out_mate_ref_id = .MATE_REF_ID;
     
-    INSDC:coord:len out_mate_ref_len = < INSDC:coord:len > simple_sub_select < '','REF_LEN'> (MATE_ALIGN_ID);
     physical column < I32 > izip_encoding .TEMPLATE_LEN = TEMPLATE_LEN;
-    I32 out_template_len = .TEMPLATE_LEN
-            | NCBI:align:template_len(REF_POS,out_mate_ref_pos,out_ref_len,out_mate_ref_len,REF_NAME,MATE_REF_NAME,SEQ_READ_ID);
+    I32 out_template_len = .TEMPLATE_LEN;
 
     physical column < bool > izip_encoding .MATE_REF_ORIENTATION = MATE_REF_ORIENTATION;
-    bool out_mate_ref_orientation = .MATE_REF_ORIENTATION
-                                  | < bool >  simple_sub_select < '','REF_ORIENTATION'> (MATE_ALIGN_ID);
+    bool out_mate_ref_orientation = .MATE_REF_ORIENTATION;
 
     I64 out_mate_align_id = .MATE_ALIGN_ID;
     physical column <I64> izip_encoding .MATE_ALIGN_ID = MATE_ALIGN_ID;
@@ -889,8 +838,8 @@ table NCBI:align:tbl:align_full #1.0.0
  *  alignment transcript is stored
  *  original sequence is reconstructed
  */
-table NCBI:align:tbl:compressed_by_reference #1.1.0
-    = NCBI:align:tbl:align_cmn #2
+table NCBI:align:tbl:compressed_by_reference #1.0.0
+    = NCBI:align:tbl:align_cmn #1.1.0
 {
     bool out_is_secondary = <bool> echo < false > ();
 
@@ -901,11 +850,7 @@ table NCBI:align:tbl:compressed_by_reference #1.1.0
     bool out_has_mismatch = .HAS_MISMATCH;
 
     // has number of elements equal to number of true elements in HAS_MISMATCH
-    extern column INSDC:dna:text MISMATCH
-    {
-        read = out_mismatch_dna_text;
-        validate = < INSDC:dna:text > compare ( in_mismatch_dna_text, out_mismatch_dna_text );
-    }
+    extern column INSDC:dna:text MISMATCH = out_mismatch_dna_text;
 
     INSDC:dna:text in_mismatch_dna_text
         = < INSDC:dna:text, INSDC:dna:text > map < '.acmgrsvtwyhkdbn','NACMGRSVTWYHKDBN' > ( MISMATCH );
@@ -913,26 +858,24 @@ table NCBI:align:tbl:compressed_by_reference #1.1.0
     INSDC:4na:bin in_mismatch_4na_bin
         = < INSDC:dna:text, INSDC:4na:bin > map < INSDC:4na:map:CHARSET, INSDC:4na:map:BINSET > ( in_mismatch_dna_text );
 
-    extern column < ascii > zip_encoding ALIGN_GROUP;
+    physical column < INSDC:4na:bin > zip_encoding  .MISMATCH = in_mismatch_4na_bin;
 
-    physical column < INSDC:4na:bin > zip_encoding .MISMATCH = in_mismatch_4na_bin;
-    
     INSDC:4na:bin out_mismatch_4na_bin = .MISMATCH;
     INSDC:dna:text out_mismatch_dna_text
         = < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_mismatch_4na_bin );
     
+
     I64 out_mate_align_id
         = .MATE_ALIGN_ID
-        | NCBI:align:get_mate_align_id (.SEQ_SPOT_ID);
+        | NCBI:align:not_my_row (primary_align_pair);
         
     physical column <I64> izip_encoding .MATE_ALIGN_ID = MATE_ALIGN_ID;
     extern column I64 MATE_ALIGN_ID = out_mate_align_id;
 
     // restore reads from alignment columns and the reference
-    // optional .READ_LEN size defines PLOIDY
-    INSDC:4na:bin out_4na_bin
-	    = NCBI:align:align_restore_read ( ref_read_internal, out_has_mismatch, .MISMATCH, out_has_ref_offset, out_ref_offset, .READ_LEN )
-	    | NCBI:align:align_restore_read ( ref_read_internal, out_has_mismatch, .MISMATCH, out_has_ref_offset, out_ref_offset );
+    // TBD: update for PLOIDY by looping in REF_READ
+    INSDC:4na:bin out_4na_bin = NCBI:align:align_restore_read ( REF_READ,
+        out_has_mismatch, .MISMATCH, out_has_ref_offset, out_ref_offset );
 
     // restore reads to its raw form (orientation is restored)
     INSDC:4na:bin out_raw_read = NCBI:align:raw_restore_read (out_4na_bin,.REF_ORIENTATION);
@@ -945,8 +888,6 @@ table NCBI:align:tbl:compressed_by_reference #1.1.0
     readonly column U32   MATE_EDIT_DISTANCE   = < U32 >   simple_sub_select < '','EDIT_DISTANCE'> (MATE_ALIGN_ID);
     readonly column ascii MATE_CIGAR_LONG      = < ascii > simple_sub_select < '','CIGAR_LONG'> (MATE_ALIGN_ID);
     readonly column ascii MATE_CIGAR_SHORT     = < ascii > simple_sub_select < '','CIGAR_SHORT'> (MATE_ALIGN_ID);
-    readonly column INSDC:coord:len MATE_CIGAR_LONG_LEN  = < INSDC:coord:len > simple_sub_select < '','CIGAR_LONG_LEN'> (MATE_ALIGN_ID);
-    readonly column INSDC:coord:len MATE_CIGAR_SHORT_LEN = < INSDC:coord:len > simple_sub_select < '','CIGAR_SHORT_LEN'> (MATE_ALIGN_ID);
     
     I32 out_template_len = NCBI:align:template_len (REF_POS,out_mate_ref_pos,out_ref_len,out_mate_ref_len,REF_NAME,MATE_REF_NAME,SEQ_READ_ID);    
 };
@@ -955,61 +896,40 @@ table NCBI:align:tbl:compressed_by_reference #1.1.0
 /* align_sorted
  *  deflated alignment data sorted against reference
  */
-table NCBI:align:tbl:align_sorted #1.1.0
-    = NCBI:align:tbl:compressed_by_reference #1.1.0
+table NCBI:align:tbl:align_sorted #1.0.0
+    = NCBI:align:tbl:compressed_by_reference #1.0.0
     , NCBI:align:tbl:global_ref_block #1.0.0
 {
-    // 128K
-    column default limit = 131072;
 };
 
 
 /* align_unsorted
  *  deflated alignment unsorted data
  */
-table NCBI:align:tbl:align_unsorted #1.1.0
-    = NCBI:align:tbl:compressed_by_reference #1.1.0
+table NCBI:align:tbl:align_unsorted #1.0.0
+    = NCBI:align:tbl:compressed_by_reference #1.0.0
     , NCBI:align:tbl:local_ref_block #1.0.0
 {
-    // 128K
-    column default limit = 131072;
 };
 
 
 /* align_mate_sorted
  */
-table NCBI:align:tbl:align_mate_sorted #1.0.1
+table NCBI:align:tbl:align_mate_sorted #1.0.0
     = NCBI:align:tbl:align_full #1.0.0
     , NCBI:align:tbl:global_ref_block #1.0.0
 {
-    // 128K
-    column default limit = 131072;
 };
 
 
 /* align_mate_unsorted
  */
-table NCBI:align:tbl:align_mate_unsorted #1.0.1
+table NCBI:align:tbl:align_mate_unsorted #1.0.0
     = NCBI:align:tbl:align_full #1.0.0
     , NCBI:align:tbl:local_ref_block #1.0.0
 {
-    // 128K
-    column default limit = 131072;
 };
 
-/* align_allele
- *  alleles coverage extension
- */
-table NCBI:align:tbl:align_allele #1.1.0
-    = NCBI:align:tbl:align_unsorted #1.1.0
-{
-    extern column < I64 > izip_encoding EVIDENCE_ALIGNMENT_IDS;
-
-    /*
-    INSDC:quality:phred out_qual_phred
-        = < INSDC:quality:phred > echo < 30 > ( out_4na_bin );
-    */
-};
 
 /*--------------------------------------------------------------------------
  * seq
@@ -1034,14 +954,11 @@ I64 NCBI:align:sorted:alignment_id_encoding #1.0
 
 table NCBI:align:tbl:seq #1.0.0 =
     NCBI:tbl:base_space #2.0.3,
-    NCBI:tbl:phred_quality #2.0.4,
+    NCBI:tbl:phred_quality #2.0.3,
     NCBI:align:tbl:cmp_base_space #1,
     NCBI:SRA:tbl:spotdesc #1.0.2,
     NCBI:SRA:tbl:stats #1.2.0
 {
-    // 128K
-    column default limit = 131072;
-
     // gets primary record in alignment table (size of column is NREADS)
     // if sorted - should used special encoding
     extern column <I64> izip_encoding PRIMARY_ALIGNMENT_ID;
@@ -1056,273 +973,11 @@ table NCBI:align:tbl:seq #1.0.0 =
     ascii out_name_fmt = < ascii > echo < '$R' > ();
 
     // temparary column
-    extern column < U64 > izip_encoding TMP_KEY_ID;
+    extern column < U32 > izip_encoding TMP_KEY_ID;
 
-    // restored  READ
+//Restored  READ
     INSDC:4na:bin out_dcmp_4na_bin
         = NCBI:align:seq_restore_read (out_cmp_4na_bin, .PRIMARY_ALIGNMENT_ID, .READ_LEN, .READ_TYPE);
-    
-    extern column < U64 > izip_encoding TI;
-};
-
-
-table NCBI:align:tbl:cs_seq #1.1
-{
-    /* writable columns */
-    extern column INSDC:color:text CMP_CSREAD
-        = out_cmp_color_text
-        ;
-
-    extern column < INSDC:dna:text > zip_encoding CS_KEY;
-
-    extern default column < INSDC:quality:phred > zip_encoding QUALITY;
-
-    extern column < I64 > izip_encoding PRIMARY_ALIGNMENT_ID;
-
-    extern column < U8 > zip_encoding ALIGNMENT_COUNT;
-
-    extern column < INSDC:SRA:platform_id > zip_encoding PLATFORM;
-
-    extern column < ascii > zip_encoding LABEL;
-    extern column < INSDC:coord:zero > izip_encoding LABEL_START;
-    extern column < INSDC:coord:len > izip_encoding LABEL_LEN;
-
-    extern column < INSDC:SRA:xread_type > zip_encoding READ_TYPE;
-    extern column < INSDC:coord:zero > izip_encoding READ_START;
-    extern column < INSDC:coord:len > izip_encoding READ_LEN;
-    extern column < INSDC:SRA:read_filter > zip_encoding READ_FILTER;
-
-    extern column < U64 > izip_encoding TMP_KEY_ID;
-
-    extern column < ascii > zip_encoding SPOT_GROUP;
-
-    extern column < U64 > izip_encoding TI;
-
-    /* writing rules */
-    INSDC:x2cs:bin in_cmp_x2cs_bin
-        = < INSDC:color:text, INSDC:x2cs:bin > map < INSDC:x2cs:map:CHARSET, INSDC:x2cs:map:BINSET > ( CMP_CSREAD )
-        ;
-    INSDC:2cs:bin in_cmp_2cs_bin
-        = < INSDC:x2cs:bin, INSDC:2cs:bin > map < INSDC:x2cs:map:BINSET, [ 0, 1, 2, 3, 0 ] > ( in_cmp_x2cs_bin )
-        ;
-    INSDC:x2cs:bin in_cmp_alt_x2cs_bin
-        = < INSDC:x2cs:bin, INSDC:x2cs:bin > map < INSDC:x2cs:map:BINSET, [ 0, 0, 0, 0, 4 ] > ( in_cmp_x2cs_bin )
-        ;
-    physical column INSDC:2cs:packed .CMP_CSREAD
-        = ( INSDC:2cs:packed ) pack ( in_cmp_2cs_bin )
-        ;
-    physical column < INSDC:x2cs:bin > zip_encoding .CMP_ALTCSREAD
-        = < INSDC:x2cs:bin > trim < ALIGN_LEFT, 0 > ( in_cmp_alt_x2cs_bin )
-        ;
-
-    /* reading rules */
-    INSDC:2cs:packed phys_cmp_2cs_packed
-        = .CMP_CSREAD
-        ;
-    INSDC:x2cs:bin phys_cmp_alt_x2cs_bin
-        = .CMP_ALTCSREAD
-        ;
-    INSDC:2cs:packed phys_2cs_packed
-        = .CSREAD
-        ;
-    INSDC:x2cs:bin phys_alt_x2cs_bin
-        = .ALTCSREAD
-        ;
-    INSDC:2cs:bin out_cmp_2cs_bin
-        = ( INSDC:2cs:bin ) unpack ( phys_cmp_2cs_packed )
-        ;
-    INSDC:2cs:bin out_2cs_bin
-        = ( INSDC:2cs:bin ) unpack ( phys_2cs_packed )
-        ;
-    INSDC:x2cs:bin out_cmp_x2cs_bin
-        = ( INSDC:x2cs:bin ) < U8 > bit_or < ALIGN_RIGHT > ( out_cmp_2cs_bin, phys_cmp_alt_x2cs_bin )
-        | ( INSDC:x2cs:bin ) out_cmp_2cs_bin
-        ;
-    INSDC:x2cs:bin out_x2cs_bin
-        = ( INSDC:x2cs:bin ) < U8 > bit_or < ALIGN_RIGHT > ( out_2cs_bin, phys_alt_x2cs_bin )
-        | ( INSDC:x2cs:bin ) out_2cs_bin
-        ;
-     INSDC:color:text out_cmp_color_text
-        = < INSDC:x2cs:bin, INSDC:color:text > map <  INSDC:x2cs:map:BINSET, INSDC:x2cs:map:CHARSET > ( out_cmp_x2cs_bin )
-        ;
-     INSDC:color:text out_color_text
-        = < INSDC:x2cs:bin, INSDC:color:text > map <  INSDC:x2cs:map:BINSET, INSDC:x2cs:map:CHARSET > ( out_x2cs_bin )
-        ;
-
-    /* triggers from stats */
-    INSDC:quality:phred in_qual_phred
-        = QUALITY
-        ;
-    INSDC:coord:len in_read_len
-        = READ_LEN
-        ;
-    INSDC:SRA:xread_type in_read_type
-        = READ_TYPE
-        ;
-    ascii in_spot_group
-        = SPOT_GROUP
-        ;
-    trigger meta_stats
-        = NCBI:SRA:cmp_stats_trigger ( in_cmp_x2cs_bin, in_qual_phred, in_read_len, in_read_type, in_spot_group )
-        | NCBI:SRA:cmp_stats_trigger ( in_cmp_x2cs_bin, in_qual_phred, in_read_len, in_read_type )
-        ;
-    trigger qual_stats
-        = NCBI:SRA:phred_stats_trigger #1 ( in_qual_phred )
-        ;
-};
-
-table NCBI:align:view:cs_seq #1.1 = NCBI:align:tbl:cs_seq #1.1
-{
-    // various READ columns
-    default readonly column INSDC:dna:text READ
-        = < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_dcmp_4na_bin )
-        | < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_4na_bin )
-        ;
-    readonly column INSDC:4na:bin READ = out_dcmp_4na_bin | out_4na_bin;
-    readonly column INSDC:4na:packed READ = pack ( out_dcmp_4na_bin ) | pack ( out_4na_bin );
-    readonly column INSDC:x2na:bin READ = out_dcmp_x2na_bin | out_x2na_bin;
-    readonly column INSDC:2na:bin READ = out_dcmp_2na_bin | out_2na_bin;
-    INSDC:2na:bin out_dcmp_2na_bin
-        = < INSDC:x2na:bin, INSDC:2na:bin > map < INSDC:x2na:map:BINSET, [ 0, 1, 2, 3, 0 ] > ( out_dcmp_x2na_bin )
-        ;
-    INSDC:2na:bin out_2na_bin
-        = < INSDC:x2na:bin, INSDC:2na:bin > map < INSDC:x2na:map:BINSET, [ 0, 1, 2, 3, 0 ] > ( out_x2na_bin )
-        ;
-    readonly column INSDC:2na:packed READ = pack ( out_dcmp_2na_bin ) | pack ( out_2na_bin );
-
-    // decompression in base space
-    INSDC:coord:len cmp_read_len
-        = < INSDC:coord:len > NCBI:align:make_cmp_read_desc #1 < true > ( .READ_LEN, .PRIMARY_ALIGNMENT_ID )
-        ;
-    INSDC:coord:zero cmp_read_start
-        = NCBI:align:make_read_start #1 ( cmp_read_len )
-        ; 
-    INSDC:x2na:bin out_cmp_x2na_bin
-        = NCBI:dna_from_color #1 ( out_cmp_x2cs_bin, cmp_read_start, cmp_read_len, .CS_KEY, color_matrix )
-        ;
-    INSDC:x2na:bin out_x2na_bin
-        = NCBI:dna_from_color #1 ( out_x2cs_bin, .READ_START, .READ_LEN, .CS_KEY, color_matrix )
-        ;
-    INSDC:4na:bin out_cmp_4na_bin
-        = < INSDC:x2na:bin, INSDC:4na:bin > map < INSDC:x2na:map:BINSET, [ 1, 2, 4, 8, 15 ] > ( out_cmp_x2na_bin )
-        ;
-    INSDC:4na:bin out_4na_bin
-        = < INSDC:x2na:bin, INSDC:4na:bin > map < INSDC:x2na:map:BINSET, [ 1, 2, 4, 8, 15 ] > ( out_x2na_bin )
-        ;
-    INSDC:4na:bin out_dcmp_4na_bin
-        = NCBI:align:seq_restore_read ( out_cmp_4na_bin, .PRIMARY_ALIGNMENT_ID, .READ_LEN, .READ_TYPE )
-        ;
-
-
-    // various CSREAD columns
-    default readonly column INSDC:color:text CSREAD
-        = < INSDC:x2cs:bin, INSDC:color:text > map <  INSDC:x2cs:map:BINSET, INSDC:x2cs:map:CHARSET > ( out_dcmp_x2cs_bin )
-        | out_color_text;
-    readonly column INSDC:x2cs:bin CSREAD = out_dcmp_x2cs_bin | out_x2cs_bin;
-    readonly column INSDC:2cs:bin CSREAD = out_dcmp_2cs_bin | out_2cs_bin;
-    INSDC:2cs:bin out_dcmp_2cs_bin
-        = < INSDC:x2cs:bin, INSDC:2cs:bin > map < INSDC:x2cs:map:BINSET, [ 0, 1, 2, 3, 0 ] > ( out_dcmp_x2cs_bin )
-        ;
-    readonly column INSDC:2cs:packed CSREAD = pack ( out_dcmp_2cs_bin ) | out_2cs_bin;
-
-
-    // decompression in color space
-    INSDC:x2na:bin out_dcmp_x2na_bin
-        = < INSDC:4na:bin, INSDC:x2na:bin > map < INSDC:4na:map:BINSET, [ 4,0,1,4,2,4,4,4,3,4,4,4,4,4,4,4 ] > ( out_dcmp_4na_bin )
-        ;
-    INSDC:x2cs:bin out_dcmp_x2na_x2cs_bin
-        = NCBI:color_from_dna #1 ( out_dcmp_x2na_bin, .READ_START, .READ_LEN, .CS_KEY, color_matrix )
-        ;
-    INSDC:coord:len aligned_read_len
-        = < INSDC:coord:len > NCBI:align:make_cmp_read_desc #1 < false > ( .READ_LEN, .PRIMARY_ALIGNMENT_ID )
-        ; 
-    INSDC:x2cs:bin out_dcmp_x2cs_bin
-        = < INSDC:x2cs:bin > NCBI:align:seq_construct_read #1 ( out_dcmp_x2na_x2cs_bin, .READ_LEN, out_cmp_x2cs_bin, cmp_read_len )
-        ;
-
-    // CS_NATIVE - dynamic
-    U32 cmp_csread_row_len
-        = row_len #1 ( phys_cmp_2cs_packed )
-        ;
-    U32 cmp_csread_not_zero
-        = < U32 > clip < 0, 1 > ( cmp_csread_row_len )
-        ;
-    readonly column bool CS_NATIVE
-        = < U32, bool > map < [ 0, 1 ], [ false, true ] > ( cmp_cs_read_not_zero )
-        ;
-
-    // COLOR_MATRIX
-    readonly column U8 COLOR_MATRIX
-        = color_matrix
-        ;
-    U8 color_matrix
-        = < U8 > echo < INSDC:color:default_matrix > ()
-        ;
-
-    // various QUALITY types
-    readonly column INSDC:quality:text:phred_33 QUALITY
-        = out_qual_text_phred_33
-        | ( INSDC:quality:text:phred_33 ) < B8 > sum < 33 > ( .QUALITY );
-    readonly column INSDC:quality:text:phred_64 QUALITY
-        = out_qual_text_phred_64
-        | ( INSDC:quality:text:phred_64 ) < B8 > sum < 64 > ( .QUALITY );
-
-    // SPOT_LEN
-    INSDC:coord:len spot_len
-        = ( INSDC:coord:len ) row_len ( out_dcmp_4na_bin )
-        ;
-    readonly column INSDC:coord:len SPOT_LEN = spot_len;
-
-    // TRIM_START
-    readonly column INSDC:coord:zero TRIM_START
-        = < INSDC:coord:zero > echo < 0 > ()
-        ;
-    readonly column INSDC:coord:one TRIM_START
-        = < INSDC:coord:one > echo < 1 > ()
-        ;
-    // TRIM_LEN
-    readonly column INSDC:coord:len TRIM_LEN = spot_len;
-
-    // MIN_SPOT_ID
-    readonly column INSDC:SRA:spotid_t MIN_SPOT_ID
-        = < INSDC:SRA:spotid_t > meta:value < "STATS/TABLE/SPOT_MIN" > ()
-        ;
-    // MAX_SPOT_ID
-    readonly column INSDC:SRA:spotid_t MAX_SPOT_ID
-        = < INSDC:SRA:spotid_t > meta:value < "STATS/TABLE/SPOT_MAX" > ()
-        ;
-    // SPOT_COUNT
-    readonly column U64 SPOT_COUNT
-        = < U64 > meta:value < "STATS/TABLE/SPOT_COUNT" > ()
-        ;
-    // BASE_COUNT
-    U64 base_count
-        = < U64 > meta:value < "STATS/TABLE/BASE_COUNT" > ()
-        ;
-    readonly column U64 BASE_COUNT = base_count;
-    // BIO_BASE_COUNT
-    readonly column U64 BIO_BASE_COUNT
-        = < U64 > meta:value < "STATS/TABLE/BIO_BASE_COUNT" > ()
-        ;
-    // CMP_BASE_COUNT
-    readonly column U64 CMP_BASE_COUNT
-        = < U64 > meta:value < "STATS/TABLE/CMP_BASE_COUNT" > ()
-        | base_count
-        ;
-
-    // various PLATFORM
-    // TBD
-
-    // SPOT_ID
-    I64 rowid_64 = row_id ();
-    readonly column INSDC:SRA:spotid_t SPOT_ID
-        = cast ( rowid_64 )
-        ;
-        
-    readonly column ascii NAME
-        = sprintf < "%u" > ( SPOT_ID )
-        ;
-
 };
 
 
@@ -1343,7 +998,7 @@ table NCBI:align:view:cs_seq #1.1 = NCBI:align:tbl:cs_seq #1.1
 * - 0 < rowlen(.READ)< SEQ_LEN -- the sequence have to be filled with 'N's
 * 
 v***********************************/
-table NCBI:align:tbl:reference #2 =
+table NCBI:align:tbl:reference #1.1.0 =
     NCBI:align:tbl:cmp_base_space #1,
     NCBI:tbl:base_space #2.0.3,
     NCBI:tbl:seqloc #1,
@@ -1405,6 +1060,15 @@ table NCBI:align:tbl:reference #2 =
 
 // Columns of computed coverages by alignment
 
+    // Preserve Quality bit map
+    extern column bool PRESERVE_QUAL = out_preserve_qual;
+    physical bool_encoding .PRESERVE_QUAL = PRESERVE_QUAL;
+    bool out_preserve_qual
+        = .PRESERVE_QUAL
+        | NCBI:align:generate_preserve_qual(NAME, SEQ_LEN, .MAX_SEQ_LEN);
+
+    readonly default column ascii PRESERVE_QUAL = < U8 , ascii > map < [ 0 , 1 ] , '01'  > ( out_preserve_qual );
+    
     // TBD: use percentiles instead of min/max?
     // maximum value clipped at 255 of the coverage density
     // for a chunk
@@ -1423,14 +1087,6 @@ table NCBI:align:tbl:reference #2 =
     // List of row ids from alignment tables
     extern column < I64 > izip_encoding PRIMARY_ALIGNMENT_IDS;
     extern column < I64 > izip_encoding SECONDARY_ALIGNMENT_IDS;
-    extern column < I64 > izip_encoding EVIDENCE_INTERVAL_IDS;
-
-    // both OVERLAP_REF_* columns are array of three elements, matching number of *_IDS columns above.
-    // points back to an offset where the alignments to this chunk start
-    extern column < INSDC:coord:zero > izip_encoding OVERLAP_REF_POS;
-    // indicates the length of the longest tail of the alignmnent to this chunk which start in previous chunks
-    // if value of an element in this col is zero corresponding value of OVERLAP_REF_POS is meaningless
-    extern column < INSDC:coord:len > izip_encoding OVERLAP_REF_LEN;
 
     // Mechanism to seach for NAME 
     readonly column vdb:row_id_range NAME_RANGE
@@ -1442,46 +1098,31 @@ table NCBI:align:tbl:reference #2 =
 }
 
 // THE DATABASES
-database NCBI:align:db:alignment_sorted #1.2.1
+database NCBI:align:db:alignment_sorted #1.1
 {
-    table NCBI:align:tbl:reference #2 REFERENCE;
-    table NCBI:align:tbl:align_sorted #1.1 PRIMARY_ALIGNMENT;
+    table NCBI:align:tbl:reference #1.1 REFERENCE;
+    table NCBI:align:tbl:align_sorted #1.0 PRIMARY_ALIGNMENT;
     table NCBI:align:tbl:align_mate_sorted #1.0 SECONDARY_ALIGNMENT;
     table NCBI:align:tbl:seq #1.0 SEQUENCE;
-    table NCBI:align:view:cs_seq #1.1 CS_SEQUENCE;
     table NCBI:align:tbl:qstat #1.0 QUAL_STAT;
 };
 
-database NCBI:align:db:alignment_unsorted #1.2.1
+database NCBI:align:db:alignment_unsorted #1.1
 {
-    table NCBI:align:tbl:reference #2 REFERENCE;
-    table NCBI:align:tbl:align_unsorted #1.1 PRIMARY_ALIGNMENT;
+    table NCBI:align:tbl:reference #1.1 REFERENCE;
+    table NCBI:align:tbl:align_unsorted #1.0 PRIMARY_ALIGNMENT;
     table NCBI:align:tbl:align_mate_unsorted #1.0 SECONDARY_ALIGNMENT;
     table NCBI:align:tbl:seq #1.0 SEQUENCE;
-    table NCBI:align:view:cs_seq #1.1 CS_SEQUENCE;
     table NCBI:align:tbl:qstat #1.0 QUAL_STAT;
 };
 
-database NCBI:align:db:alignment_evidence #1.2.1
+database NCBI:align:db:alignment_evidence #1.1
 {
-    table NCBI:align:tbl:reference #2 REFERENCE;
-    table NCBI:align:tbl:align_unsorted #1.1 PRIMARY_ALIGNMENT;
+    table NCBI:align:tbl:reference #1.1 REFERENCE;
+    table NCBI:align:tbl:align_unsorted #1.0 PRIMARY_ALIGNMENT;
     table NCBI:align:tbl:align_mate_unsorted #1.0 SECONDARY_ALIGNMENT;
-    table NCBI:align:tbl:align_allele #1.1 EVIDENCE_INTERVAL;
-    table NCBI:align:tbl:align_mate_unsorted #1.0 EVIDENCE_ALIGNMENT;
-    table NCBI:align:tbl:seq #1.0 SEQUENCE;
-    table NCBI:align:view:cs_seq #1.1 CS_SEQUENCE;
-    table NCBI:align:tbl:qstat #1.0 QUAL_STAT;
-};
-
-database NCBI:align:db:alignment_evidence_sorted #1.0.1
-{
-    table NCBI:align:tbl:reference #2 REFERENCE;
-    table NCBI:align:tbl:align_sorted #1.1 PRIMARY_ALIGNMENT;
-    table NCBI:align:tbl:align_mate_sorted #1.0 SECONDARY_ALIGNMENT;
-    table NCBI:align:tbl:align_allele #1.1 EVIDENCE_INTERVAL;
+    table NCBI:align:tbl:align_unsorted #1.0 EVIDENCE_INTERVAL;
     table NCBI:align:tbl:align_mate_unsorted #1.0 EVIDENCE_ALIGNMENT;
     table NCBI:align:tbl:seq #1.0 SEQUENCE;
-    table NCBI:align:view:cs_seq #1.1 CS_SEQUENCE;
     table NCBI:align:tbl:qstat #1.0 QUAL_STAT;
 };
diff --git a/interfaces/kproc/timeout.h b/interfaces/align/alignarc.h
similarity index 76%
rename from interfaces/kproc/timeout.h
rename to interfaces/align/alignarc.h
index 017f1a3..ab87c4e 100644
--- a/interfaces/kproc/timeout.h
+++ b/interfaces/align/alignarc.h
@@ -24,41 +24,40 @@
 *
 */
 
-#ifndef _h_kproc_timeout_
-#define _h_kproc_timeout_
+#ifndef _h_align_alignarc_
+#define _h_align_alignarc_
 
 #ifndef _h_klib_defs_
 #include <klib/defs.h>
 #endif
 
-#ifndef _h_kproc_extern_
-#include <kproc/extern.h>
+#ifndef _h_align_extern_
+ #include <align/extern.h>
 #endif
 
+#include <stdarg.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /*--------------------------------------------------------------------------
- * system specific timeout object
+ * AlignMgr
+ *  opaque handle to Alignment Archive
  */
-typedef struct timeout_t timeout_t;
+typedef struct AlignMgr AlignMgr;
 
 
-/* Init
- *  initialize a timeout in milliseconds
+/*--------------------------------------------------------------------------
+ * AlignTable
+ *  an alignment guy
  */
-KPROC_EXTERN rc_t CC TimeoutInit ( timeout_t *tm, uint32_t msec );
+typedef struct AlignTable AlignTable;
 
 
-/* Prepare
- *  ensures that a timeout is prepared with an absolute value
-*/
-KPROC_EXTERN rc_t CC TimeoutPrepare ( timeout_t *tm );
-
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _h_kproc_timeout_ */
+#endif /* _h_align_alignarc_ */
diff --git a/interfaces/align/bam.h b/interfaces/align/bam.h
index 09f78a3..99e9b1f 100644
--- a/interfaces/align/bam.h
+++ b/interfaces/align/bam.h
@@ -47,7 +47,7 @@ extern "C" {
  */
 struct KDirectory;
 struct KFile;
-struct VPath;
+struct KPath;
 struct AlignAccessDB;
 struct AlignAccessAlignmentEnumerator;
 
@@ -215,18 +215,14 @@ ALIGN_EXTERN bool CC BAMAlignmentHasColorSpace ( const BAMAlignment *self );
  */
 ALIGN_EXTERN rc_t CC BAMAlignmentGetCSKey ( const BAMAlignment *self, char cskey[1] );
 
-ALIGN_EXTERN rc_t CC BAMAlignmentGetCSSeqLen ( const BAMAlignment *self, uint32_t *seqLen );
 /* GetCSSequence
- *  get the colorspace sequence data [0..seqLen)
- *  caller provides buffer of seqLen bytes
+ *  get the colorspace sequence data [0..ReadLength)
+ *  caller provides buffer of ReadLength bytes
  *
- *  "csseq" [ OUT ] - pointer to a buffer of at least seqLen bytes
- *  "seqLen" [ IN ] - length of sequence from BAMAlignmentGetCSSeqLen
+ *  "csseq" [ OUT ] - pointer to a buffer of at least ReadLength bytes
  */
-ALIGN_EXTERN rc_t CC BAMAlignmentGetCSSequence ( const BAMAlignment *self, char *csseq, uint32_t seqLen );
-
-ALIGN_EXTERN rc_t CC BAMAlignmentGetCSQuality(BAMAlignment const *cself, uint8_t const **quality, uint8_t *offset);
-
+ALIGN_EXTERN rc_t CC BAMAlignmentGetCSSequence ( const BAMAlignment *self, char csseq[] );
+    
 
 /* GetFlags
  *  return the raw "flags" bitmap word
@@ -288,15 +284,15 @@ ALIGN_EXTERN rc_t CC BAMAlignmentGetMapQuality ( const BAMAlignment *self, uint8
 typedef uint32_t BAMCigarType;
 enum BAMCigarTypes
 {
-    ct_Match    = 'M', /* 0 */
-    ct_Insert   = 'I', /* 1 */
-    ct_Delete   = 'D', /* 2 */
-    ct_Skip     = 'N', /* 3 */
-    ct_SoftClip = 'S', /* 4 */
-    ct_HardClip = 'H', /* 5 */
-    ct_Padded   = 'P', /* 6 */
-    ct_Equal    = '=', /* 7 */
-    ct_NotEqual = 'X', /* 8 */
+    ct_Match    = 'M',
+    ct_Insert   = 'I',
+    ct_Delete   = 'D',
+    ct_Skip     = 'N',
+    ct_SoftClip = 'S',
+    ct_HardClip = 'H',
+    ct_Padded   = 'P',
+    ct_Equal    = '=',
+    ct_NotEqual = 'X',
     ct_Overlap  = 'B' /* Complete Genomics extension */
 };
 
@@ -423,35 +419,34 @@ struct BAMOptData
 
 typedef struct BAMOptData BAMOptData;
 
+#ifndef USE_OLD_BAM_OPT_FOR_EACH
+#define USE_OLD_BAM_OPT_FOR_EACH 0
+#endif
+#if USE_OLD_BAM_OPT_FOR_EACH
+/* Optional data callback function */
 typedef rc_t ( CC * BAMOptionalDataFunction )
-    ( void *ctx, const char tag[2], const BAMOptData *value );
+    ( void *ctx, const char tag[2], BAMOptDataValueType type,
+      const void *value, uint32_t size );
 
 ALIGN_EXTERN rc_t CC BAMAlignmentOptDataForEach
     ( const BAMAlignment *self, void *ctx, BAMOptionalDataFunction callback );
 
-    
-ALIGN_EXTERN bool CC BAMAlignmentHasCGData(BAMAlignment const *self);
+typedef rc_t ( CC * BAMOptionalDataFunction2 )
+    ( void *ctx, const char tag[2], const BAMOptData *value );
 
-    
-ALIGN_EXTERN
-rc_t CC BAMAlignmentGetCGSeqQual(BAMAlignment const *self,
-                                 char sequence[/* 35 */],
-                                 uint8_t quality[/* 35 */]);
-
-ALIGN_EXTERN
-rc_t CC BAMAlignmentGetCGCigar(BAMAlignment const *self,
-                               uint32_t *cigar,
-                               uint32_t cig_max,
-                               uint32_t *cig_act);
-    
-ALIGN_EXTERN rc_t BAMAlignmentGetTI(BAMAlignment const *self, uint64_t *ti);
+ALIGN_EXTERN rc_t CC BAMAlignmentOptDataForEach2
+    ( const BAMAlignment *self, void *ctx, BAMOptionalDataFunction2 callback );
+
+#else    
+
+typedef rc_t ( CC * BAMOptionalDataFunction )
+    ( void *ctx, const char tag[2], const BAMOptData *value );
+
+ALIGN_EXTERN rc_t CC BAMAlignmentOptDataForEach
+    ( const BAMAlignment *self, void *ctx, BAMOptionalDataFunction callback );
+
+#endif
 
-ALIGN_EXTERN rc_t BAMAlignmentGetCGAlignGroup(BAMAlignment const *self,
-                                              char buffer[],
-                                              size_t max_size,
-                                              size_t *act_size);
-    
-    
 /*--------------------------------------------------------------------------
  * BAMFile
  */
@@ -502,10 +497,6 @@ typedef uint64_t BAMFilePosition;
  */
 ALIGN_EXTERN rc_t CC BAMFileMake ( const BAMFile **result, const char *path, ... );
 
-ALIGN_EXTERN rc_t CC BAMFileMakeWithHeader ( const BAMFile **result,
-                                            char const headerText[],
-                                            char const path[], ... );
-
 /* MakeWithDir
  *  open the BAM file specified by path and supplied directory
  *
@@ -531,8 +522,8 @@ ALIGN_EXTERN rc_t CC BAMFileMakeWithKFile(const BAMFile **result,
  *
  *  "file" [ IN ] - an open KFile
  */
-ALIGN_EXTERN rc_t CC BAMFileMakeWithVPath(const BAMFile **result,
-    struct VPath const *path);
+ALIGN_EXTERN rc_t CC BAMFileMakeWithKPath(const BAMFile **result,
+    struct KPath const *path);
 
 /* ExportBAMFile
  *  export the BAMFile object in use by the AlignAccessDB, if any
@@ -652,7 +643,7 @@ ALIGN_EXTERN rc_t CC BAMFileGetReadGroupByName ( const BAMFile *self,
  */
 ALIGN_EXTERN rc_t CC BAMFileOpenIndex ( const BAMFile *self, const char *path );
 
-ALIGN_EXTERN rc_t CC BAMFileOpenIndexWithVPath ( const BAMFile *self, struct VPath const *path );
+ALIGN_EXTERN rc_t CC BAMFileOpenIndexWithKPath ( const BAMFile *self, struct KPath const *path );
 
 /* IsIndexed
  *  returns true if true
@@ -780,8 +771,8 @@ typedef rc_t (CC *BAMValidateCallback)(void *ctx, rc_t result, const BAMValidate
 
 /* Validate
  */
-ALIGN_EXTERN rc_t CC BAMValidate ( struct VPath const *bam,
-                                   struct VPath const *bai,
+ALIGN_EXTERN rc_t CC BAMValidate ( struct KPath const *bam,
+                                   struct KPath const *bai,
                                    BAMValidateOption options,
                                    BAMValidateCallback callback,
                                    void *callbackContext
diff --git a/interfaces/align/dna-reverse-cmpl.h b/interfaces/align/dna-reverse-cmpl.h
deleted file mode 100644
index 82c4783..0000000
--- a/interfaces/align/dna-reverse-cmpl.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_align_dna_reverse_cmpl_
-#define _h_align_dna_reverse_cmpl_
-
-#ifndef _h_align_extern_
-#include <align/extern.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ALIGN_EXTERN rc_t CC DNAReverseCompliment(const INSDC_dna_text* seq, INSDC_dna_text* cmpl, uint32_t len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_align_dna_reverse_cmpl_ */
diff --git a/interfaces/align/iterator.h b/interfaces/align/iterator.h
deleted file mode 100644
index 94b92ed..0000000
--- a/interfaces/align/iterator.h
+++ /dev/null
@@ -1,610 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_align_iterator_
-#define _h_align_iterator_
-
-#ifndef _h_align_extern_
-#include <align/extern.h>
-#endif
-
-#ifndef _h_klib_container_
-#include <klib/container.h>
-#endif
-
-#ifndef _h_insdc_insdc_
-#include <insdc/insdc.h>
-#endif
-
-#ifndef _h_vdb_database_
-#include <vdb/database.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VCursor;
-struct AlignMgr;
-struct ReferenceObj;
-
-
-/*--------------------------------------------------------------------------
- * AlignmentIterator
- *  walk across a single alignment in reference space
- */
-typedef struct AlignmentIterator AlignmentIterator;
-
-
-/* Make
- *  create an encapsulation of alignment
- *
- *  iter [ OUT ] - return parameter for new iterator
- *
- *  copy [ IN ] - when "true" the data will be copied.
- *  otherwise, pointers will be expected to refer to data
- *  with a lifetime >= that of the iterator being created.
- *
- *  "ref_pos" [ IN ] and "ref_len" [ IN ] - projection onto reference
- *
- *  "read" [ IN ] and "read_len" [ IN ] - full sequence of alignment
- *
- *  "has_mismatch" [ IN ] - describes comparison result of each base
- *  in "read" against the alignment.
- *
- *  "has_ref_offset" [ IN ] - describes positions of reference offsets
- *
- *  "ref_offset" [ IN ] and "ref_offset_len" [ IN ] - packed array of
- *  offsets of position against reference.
- */
-ALIGN_EXTERN rc_t CC AlignMgrMakeAlignmentIterator ( struct AlignMgr const *self,
-    AlignmentIterator **iter,
-    bool copy,
-    INSDC_coord_zero ref_pos,
-    INSDC_coord_len ref_len,
-    const INSDC_4na_bin *read,
-    INSDC_coord_len read_len,
-    const bool *has_mismatch,
-    const bool *has_ref_offset,
-    const int32_t *ref_offset,
-    uint32_t ref_offset_len,
-    INSDC_coord_zero ref_window_start,
-    INSDC_coord_len ref_window_len );
-
-
-/* AddRef
- * Release
- */
-ALIGN_EXTERN rc_t CC AlignmentIteratorAddRef ( const AlignmentIterator *self );
-ALIGN_EXTERN rc_t CC AlignmentIteratorRelease ( const AlignmentIterator *self );
-
-
-/* Next
- *  advance position by 1 in reference space
- *  must be called initially to advance to first element
- *
- *  returns RCState = rcDone when done
- */
-ALIGN_EXTERN rc_t CC AlignmentIteratorNext ( AlignmentIterator *self );
-
-
-/* State
- *  returns bitmap of state bits and event code at the current position
- *  will return invalid before initial Next message or after final
- *
- *  bits [ 0..7 ] :
- *    { 0..15 }             = 4na mismatch (NACMGRSVTWYHKDBN)
- *    64                    = match
- *    128                   = skip
- *  bit [ 8 ]               = have insert if ! 0
- *  bit [ 9 ]               = have delete if ! 0
- *  bit [ 10 ]              = first base if ! 0
- *  bit [ 11 ]              = last base if ! 0
- *  bit [ 31 ]              = iterator position is invalid if ! 0
- *                            NB - converts state word to negative
- */
-enum
-{
-    align_iter_match      = ( 1 <<  8 ),
-    align_iter_skip       = ( 1 <<  9 ),
-
-    align_iter_insert     = ( 1 << 10 ),
-    align_iter_delete     = ( 1 << 11 ),
-    align_iter_first      = ( 1 << 12 ),
-    align_iter_last       = ( 1 << 13 ),
-
-    align_iter_invalid    = ( 1 << 31 )
-};
-
-ALIGN_EXTERN int32_t CC AlignmentIteratorState ( const AlignmentIterator *self,
-                                                 INSDC_coord_zero *seq_pos );
-
-
-/* Position
- *  return current position of iterator relative to reference
- */
-ALIGN_EXTERN rc_t CC AlignmentIteratorPosition ( const AlignmentIterator *self,
-                                                 INSDC_coord_zero *pos );
-
-
-/* BasesInserted
- *  return the number of inserted bases and a pointer to their values
- *
- *  "bases" [ OUT, NULL OKAY ] - optional output parameter to inserted bases
- *
- *  returns count of bases inserted at current position
- */
-ALIGN_EXTERN uint32_t CC AlignmentIteratorBasesInserted
-    ( const AlignmentIterator *self, const INSDC_4na_bin **bases );
-
-
-/* BasesDeleted
- *  return the number of bases deleted at the current position
- *  also returns the location on the reference where the delete starts
- *
- *  "pos" [ OUT ] - return parameter for location on the reference
- *  where delete starts, and continues for the number of bases given by function return
- *
- *  returns count of bases deleted at current position
- */
-ALIGN_EXTERN uint32_t CC AlignmentIteratorBasesDeleted
-    ( const AlignmentIterator *self, INSDC_coord_zero *pos );
-
-
-/*--------------------------------------------------------------------------
- * PlacementRecord
- *  record describing a placement
- */
-typedef struct PlacementRecord PlacementRecord;
-struct PlacementRecord
-{
-    DLNode n;
-
-    /* row id of alignment record */
-    int64_t id;
-
-    /* object representing reference sequence */
-    struct ReferenceObj const *ref;
-
-    /* placement position and length on reference */
-    INSDC_coord_zero pos;
-    INSDC_coord_len len;
-
-    /* mapping quality of alignment */
-    int32_t mapq;
-
-    /* spotgroup is now in here too */
-    uint32_t spot_group_len;
-    char * spot_group;
-};
-
-
-/* Cast
- *  cast to an extended object
- *
- *  "ext" [ IN ] - selects the extended object level
- *  can be placementRecordExtension0 or placementRecordExtension1
- */
-
-enum { placementRecordExtension0, placementRecordExtension1 };
-
-ALIGN_EXTERN void* CC PlacementRecordCast ( const PlacementRecord *self, uint32_t ext );
-
-
-ALIGN_EXTERN void* CC PlacementRecord_get_ext_data_ptr ( const PlacementRecord *self, uint32_t ext );
-
-
-/* Whack
- *  destroys PlacementRecord and any associated extensions
- */
-ALIGN_EXTERN void CC PlacementRecordWhack ( const PlacementRecord *self );
-
-
-/* structure of function pointers for creating extensions
-   all function pointers are optional ( NULL OKAY ) */
-typedef struct PlacementRecordExtendFuncs PlacementRecordExtendFuncs;
-struct PlacementRecordExtendFuncs
-{
-    /* opaque pointer to data passed to each function */
-    void *data;
-
-    /* destructor */
-    void ( CC * destroy ) ( void *obj, void *data );
-
-    /* constructor */
-    rc_t ( CC * populate ) ( void *obj, const PlacementRecord *placement,
-        struct VCursor const *curs, INSDC_coord_zero ref_window_start,
-        INSDC_coord_len ref_window_len, void *data );
-
-    /* variable allocation size calculation
-       when non-NULL, takes precedence over "fixed_size" */
-    bool ( CC * filter ) ( struct VCursor const *curs, int64_t row_id,
-        const PlacementRecord *placement, INSDC_coord_zero ref_window_start,
-        INSDC_coord_len ref_window_len, void *data );
-
-    /* variable allocation size calculation
-       when non-NULL, takes precedence over "fixed_size" */
-    rc_t ( CC * alloc_size ) ( struct VCursor const *curs, int64_t row_id, size_t * size, void *data );
-    
-    /* fixed allocation size
-       ignored if "alloc_size" is non-NULL,
-       must be non-zero otherwise */
-    size_t fixed_size;
-};
-
-
-/* external functions for extension of a placement record
-   to include ( construct ) an AlignmentIterator */
-ALIGN_EXTERN void CC AlignIteratorRecordDestroy ( void *obj, void *data );
-ALIGN_EXTERN rc_t CC AlignIteratorRecordPopulate ( void *obj,
-    const PlacementRecord *placement, struct VCursor const *curs,
-    INSDC_coord_zero ref_window_start, INSDC_coord_len ref_window_len, void *data );
-ALIGN_EXTERN rc_t CC AlignIteratorRecordSize ( struct VCursor const *curs, int64_t row_id, size_t * size, void *data );
-
-
-/*--------------------------------------------------------------------------
- * PlacementIterator
- *  walk across placements from an alignment db within a reference window
- */
-typedef struct PlacementIterator PlacementIterator;
-
-
-/* Make
- *  create a placement iterator
- *
- *  "iter" [ OUT ] - return parameter for iterator
- *
- *  "ref_obj" [ IN, NULL OKAY ] - optional parameter giving an object
- *  representing the reference sequence for this iterator. it will be
- *  inserted into each PlacementRecord (see above) and made available to
- *  outer code.
- *
- *  "ref_pos" [ IN ] and "ref_len" [ IN ] - window onto reference
- *
- *  "min_mapq" [ IN ] - minimum map quality value
- *
- *  "ref_cur" [ IN ] - read-only cursor on REFERENCE table
- *  will be modified as necessary to contain requisite columns
- *  will be opened by iterator.
- *
- *  "align_cur" [ IN ] - read-only cursor on PRIMARY_ALIGNMENT or SECONDARY_ALIGNMENT
- *  table ( see "secondary" ). will be modified as necessary to contain
- *  requisite columns. will be opened by iterator.
- *
- *  "ids" [ IN ] - an enum describing which column of alignment ids should
- *  be used when reading "ref"
- *
- *  "ext_0" [ IN, NULL OKAY ] and "ext_1" [ IN, NULL OKAY ] - optional pointers
- *  to blocks describing how to extend the basic placement record
- *
- *  rd_group [ IN, NULL OKAY ]
- *      != NULL, non empty string ... produce all alignments with this string as
- *                  spot-group ( no matter what the "real" spot-group of the
- *                  alignment is )
- *
- *      != NULL, empty string ... produce all alignments with the "real" spot-group
- *                  read from the column "SPOT_GROUP"
- *
- *      == NULL, ... produce all alignments with no spot-group assigned ( the user
- *                  does not wish the data to be read, the alignment to be bined )
- */
-
-typedef uint8_t align_id_src;
-enum { primary_align_ids, secondary_align_ids, evidence_align_ids };
-
-ALIGN_EXTERN rc_t CC AlignMgrMakePlacementIterator ( struct AlignMgr const *self,
-    PlacementIterator **iter, struct ReferenceObj const *ref_obj,
-    INSDC_coord_zero ref_pos, INSDC_coord_len ref_len, int32_t min_mapq,
-    struct VCursor const *ref_cur, struct VCursor const *align_cur, align_id_src ids,
-    const PlacementRecordExtendFuncs *ext_0, const PlacementRecordExtendFuncs *ext_1,
-    const char * spot_group );
-
-
-/* AddRef
- * Release
- */
-ALIGN_EXTERN rc_t CC PlacementIteratorAddRef ( const PlacementIterator *self );
-ALIGN_EXTERN rc_t CC PlacementIteratorRelease ( const PlacementIterator *self );
-
-
-/* RefWindow
- *  returns the reference identification string and iteration window
- */
-ALIGN_EXTERN rc_t CC PlacementIteratorRefWindow ( const PlacementIterator *self,
-    const char **idstr, INSDC_coord_zero *pos, INSDC_coord_len *len );
-
-
-/* RefObj
- *  returns the Ref-obj, that was used to create this placement-iterator
- */
-ALIGN_EXTERN rc_t CC PlacementIteratorRefObj( const PlacementIterator * self,
-    struct ReferenceObj const ** refobj );
-
-
-/* NextAvailPos
- *  check the next available position having one or more placements
- *
- *  "pos" [ OUT ] - next position on reference having one or more placements
- *  may return negative position, indicating an alignment that wraps around
- *  a circular reference, and starts in negative space after linearization.
- *
- *  "len" [ OUT, NULL OKAY ] - optional return parameter for length of
- *  placement at that position
- *
- *  returns non-zero rc when no window is done
- *  (rcRange, rcDone)
- */
-ALIGN_EXTERN rc_t CC PlacementIteratorNextAvailPos ( const PlacementIterator *self,
-    INSDC_coord_zero *pos, INSDC_coord_len *len );
-
-
-/* NextRecordAt
- *  retrieve a placement at the requested position
- *
- *  "pos" [ IN ] - required position of the placement
- *  obtained from "NextAvailPos"
- *
- *  "rec" [ OUT ] - returned record
- *  must be freed via PlacementRecordWhack
- *
- *  returns non-zero rc when no more placements are available
- *  (rcOffset, rcDone)
- */
-ALIGN_EXTERN rc_t CC PlacementIteratorNextRecordAt ( PlacementIterator *self,
-    INSDC_coord_zero pos, const PlacementRecord **rec );
-
-
-/* NextIdAt
- *  retrieve a row id at the requested position
- *
- *  "pos" [ IN ] - required position of the placement
- *  obtained from "NextAvailPos"
- *
- *  "id" [ OUT ] - returned row-id, within domain of align cursor
- *
- *  "len" [ OUT, NULL OKAY ] - optional return parameter for length of
- *  placement on reference
- *
- *  returns non-zero rc when no more placements are available
- *  (rcOffset, rcDone)
- */
-ALIGN_EXTERN rc_t CC PlacementIteratorNextIdAt ( PlacementIterator *self,
-    INSDC_coord_zero pos, int64_t *row_id, INSDC_coord_len *len );
-
-
-/*--------------------------------------------------------------------------
- * PlacementSetIterator
- *  walk across placements from an alignment db within a reference window
- */
-typedef struct PlacementSetIterator PlacementSetIterator;
-
-
-/* Make
- *  create a placement set iterator
- *
- *  "iter" [ OUT ] - return parameter for iterator
- *
- *  "ref_pos" [ IN ] and "ref_len" [ IN ] - window onto reference
- */
-ALIGN_EXTERN rc_t CC AlignMgrMakePlacementSetIterator ( struct AlignMgr const *self,
-    PlacementSetIterator **iter );
-
-
-/* AddPlacementIterator
- *  adds a placement iterator
- *  used to provide ordered placements within window
- */
-ALIGN_EXTERN rc_t CC PlacementSetIteratorAddPlacementIterator
-    ( PlacementSetIterator *self, PlacementIterator *pi );
-
-
-/* AddRef
- * Release
- */
-ALIGN_EXTERN rc_t CC PlacementSetIteratorAddRef ( const PlacementSetIterator *self );
-ALIGN_EXTERN rc_t CC PlacementSetIteratorRelease ( const PlacementSetIterator *self );
-
-
-ALIGN_EXTERN rc_t CC PlacementSetIteratorNextReference ( PlacementSetIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len, struct ReferenceObj const ** refobj );
-
-ALIGN_EXTERN rc_t CC PlacementSetIteratorNextWindow ( PlacementSetIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len );
-
-/* NextAvailPos
- *  check the next available position having one or more placements
- *
- *  "pos" [ OUT ] - next position on reference having one or more placements
- *  may return negative position, indicating an alignment that wraps around
- *  a circular reference, and starts in negative space after linearization.
- *
- *  "len" [ OUT, NULL OKAY ] - optional return parameter for length of
- *  placement at that position
- *
- *  returns non-zero rc when no more placements are available
- *  TBD - define a proper value
- */
-ALIGN_EXTERN rc_t CC PlacementSetIteratorNextAvailPos ( const PlacementSetIterator *self,
-    INSDC_coord_zero *pos, INSDC_coord_len *len );
-
-
-/* NextRecordAt
- *  retrieve a placement at the requested position
- *
- *  "pos" [ IN ] - required position of the placement
- *  obtained from "NextAvailPos"
- *
- *  "rec" [ OUT ] - returned record
- *  must be freed via PlacementRecordWhack
- */
-ALIGN_EXTERN rc_t CC PlacementSetIteratorNextRecordAt ( PlacementSetIterator *self,
-    INSDC_coord_zero pos, const PlacementRecord **rec );
-
-
-/* NextIdAt
- *  retrieve a row id at the requested position
- *
- *  "pos" [ IN ] - required position of the placement
- *  obtained from "NextAvailPos"
- *
- *  "id" [ OUT ] - returned row-id, within domain of align cursor
- *
- *  "len" [ OUT, NULL OKAY ] - optional return parameter for length of
- *  placement on reference
- */
-ALIGN_EXTERN rc_t CC PlacementSetIteratorNextIdAt ( PlacementSetIterator *self,
-    INSDC_coord_zero pos, int64_t *row_id, INSDC_coord_len *len );
-
-
-/*--------------------------------------------------------------------------
- * ReferenceIterator
- *  walk across placements from an alignment db within a reference window
- */
-typedef struct ReferenceIterator ReferenceIterator;
-
-
-/* Make
- *  create a reference iterator
- *
- *  "iter" [ OUT ] - return parameter for iterator
- *
- *  "ext_1" [ IN, NULL OKAY ] - optional pointer to a block describing how
- *  to extend the align-iterator record
- *
- *  "min_mapq" [ IN ] - minimum map quality value
- */
-ALIGN_EXTERN rc_t CC AlignMgrMakeReferenceIterator ( struct AlignMgr const *self,
-    ReferenceIterator **iter, const PlacementRecordExtendFuncs *ext_1, int32_t min_mapq );
-
-
-/* AddRef
- * Release
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorAddRef ( const ReferenceIterator *self );
-ALIGN_EXTERN rc_t CC ReferenceIteratorRelease ( const ReferenceIterator *self );
-
-
-/* AddPlacementIterator
- *  adds a placement iterator
- *  used to provide ordered placements within window
- */
-#if 0
-ALIGN_EXTERN rc_t CC ReferenceIteratorAddPlacementIterator
-    ( ReferenceIterator *self, PlacementIterator *pi );
-#endif
-
-/* AddPlacements
- *  adds a source for placements (file/table)
- *  used to provide ordered placements within window
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorAddPlacements ( ReferenceIterator *self,
-    struct ReferenceObj const *ref_obj, INSDC_coord_zero ref_pos, INSDC_coord_len ref_len,
-    struct VCursor const *ref, struct VCursor const *align, align_id_src ids,
-    const char * spot_group );
-
-
-/* NextReference
- *  advance to the next reference
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorNextReference ( ReferenceIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len, struct ReferenceObj const ** refobj );
-
-/* NextWindow
- *  advance to the next window on the reference
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorNextWindow ( ReferenceIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len );
-
-/* NextSpotGroup
- *  advance to the next spot_group on the reference
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorNextSpotGroup ( ReferenceIterator *self,
-    const char ** name, size_t * len );
-
-
-/* NextPos
- *  advance to the next position on current reference
- *  resets internal iterator on placements at that position
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorNextPos ( ReferenceIterator *self, bool skip_empty );
-
-
-/* Position
- *  return current position on the reference
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorPosition ( const ReferenceIterator *self,
-    INSDC_coord_zero *pos, uint32_t * depth, INSDC_4na_bin * base );
-
-
-/* NextPlacement
- *  advance internal iterator to next placement in list
- *  returns a pointer to the next placement object at current position
- */
-ALIGN_EXTERN rc_t CC ReferenceIteratorNextPlacement ( ReferenceIterator *self,
-    const PlacementRecord **rec );
-
-
-/* State
- *  return state of current placement at current position
- */
-ALIGN_EXTERN int32_t CC ReferenceIteratorState ( const ReferenceIterator *self, INSDC_coord_zero *seq_pos );
-
-
-/* BasesInserted
- *  return the number of inserted bases and a pointer to their values
- *
- *  "bases" [ OUT, NULL OKAY ] - optional output parameter to inserted bases
- *
- *  returns count of bases inserted at current position
- */
-ALIGN_EXTERN uint32_t CC ReferenceIteratorBasesInserted ( const ReferenceIterator *self,
-    const INSDC_4na_bin **bases );
-
-
-/* BasesDeleted
- *  return the number of bases deleted at the current position
- *  also returns the location on the reference where the delete starts
- *
- *  "pos" [ OUT ] - return parameter for location on the reference
- *  where delete starts, and continues for the number of bases given by function return
- *
- *  "bases" [ OUT, NULL OKAY ] - optional output parameter to deleted bases
- *
- *  returns count of bases deleted at current position
- */
-ALIGN_EXTERN uint32_t CC ReferenceIteratorBasesDeleted ( const ReferenceIterator *self,
-    INSDC_coord_zero *pos, const INSDC_4na_bin **bases );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_align_iterator_ */
diff --git a/interfaces/align/manager.h b/interfaces/align/manager.h
deleted file mode 100644
index 4527f8a..0000000
--- a/interfaces/align/manager.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_align_manager_
-#define _h_align_manager_
-
-#ifndef _h_align_extern_
-#include <align/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * AlignMgr
- *  manages the alignment module
- */
-typedef struct AlignMgr AlignMgr;
-
-/* MakeRead
- *  make for read-only operations
- * MakeUpdate
- *  make for read/write operations
- */
-ALIGN_EXTERN rc_t CC AlignMgrMakeRead ( const AlignMgr **mgr );
-ALIGN_EXTERN rc_t CC AlignMgrMakeUpdate ( AlignMgr **mgr );
-
-
-/* AddRef
- * Release
- */
-ALIGN_EXTERN rc_t CC AlignMgrAddRef ( const AlignMgr *self );
-ALIGN_EXTERN rc_t CC AlignMgrRelease ( const AlignMgr *self );
-
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_align_manager_ */
diff --git a/interfaces/align/qstat.vschema b/interfaces/align/qstat.vschema
deleted file mode 100644
index d97c20b..0000000
--- a/interfaces/align/qstat.vschema
+++ /dev/null
@@ -1,87 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/*==========================================================================
- * VDB Quality Statistics Table
- */
-version 1;
-
-include 'vdb/vdb.vschema';
-include 'ncbi/ncbi.vschema';
-
-table NCBI:align:tbl:qstat #1.0
-{
-    /* SPOT_GROUP
-     */
-    extern column < ascii > zip_encoding SPOT_GROUP;
-
-    /* CYCLE
-     *  machine cycle
-     */
-    extern column < U32 > izip_encoding CYCLE;
-
-    /* KMER
-     *  use dimer
-     */
-    extern column INSDC:dna:text KMER;
-
-    /* HPRUN
-     *  homopolymer run
-     *  number of bases of the same type preceding the current base
-     */
-    extern column < INSDC:coord:len > izip_encoding HPRUN;
-
-    /* GC_CONTENT
-     *  number of G's or C's in the 7 bases preceding the current base
-     */
-    extern column < U32 > izip_encoding GC_CONTENT;
-
-    /* ORIG_QUAL
-     *  original quality scores
-     */
-    extern column < INSDC:quality:phred > zip_encoding ORIG_QUAL;
-
-    /* MAX_QUAL
-     *  max. quality score in read
-     */
-    extern column < INSDC:quality:phred > zip_encoding MAX_QUAL;
-
-    /* NREAD
-     *  number of the read
-     */
-    extern column < U8 > zip_encoding NREAD;
-
-    /* TOTAL_COUNT
-     *  total count of observed events
-     */
-    extern column < U32 > izip_encoding TOTAL_COUNT;
-
-    /* MISMATCH_COUNT
-     *  count of observed mismatches
-     */
-    extern column < U32 > izip_encoding MISMATCH_COUNT;
-
-};
diff --git a/interfaces/align/quality-quantizer.h b/interfaces/align/quality-quantizer.h
deleted file mode 100644
index 223ffda..0000000
--- a/interfaces/align/quality-quantizer.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-
-#ifndef _h_align_quality_quantizer_
-#define _h_align_quality_quantizer_
-
-#ifndef _h_align_extern_
-#include <align/extern.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* InitMatrix
- *  
- *
- */
-ALIGN_EXTERN bool CC QualityQuantizerInitMatrix(uint8_t result[256], char const initializer[]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_align_quality_quantizer_ */
diff --git a/interfaces/align/reader-refseq.h b/interfaces/align/reader-refseq.h
index e7c4ac1..443e0ee 100644
--- a/interfaces/align/reader-refseq.h
+++ b/interfaces/align/reader-refseq.h
@@ -50,7 +50,7 @@ ALIGN_EXTERN void CC TableReaderRefSeq_Whack(const TableReaderRefSeq* cself);
 
 ALIGN_EXTERN rc_t CC TableReaderRefSeq_SeqId(const TableReaderRefSeq* cself, const char** id, uint32_t* id_sz);
 
-ALIGN_EXTERN rc_t CC TableReaderRefSeq_SeqLength(const TableReaderRefSeq* cself, INSDC_coord_len* len);
+ALIGN_EXTERN rc_t CC TableReaderRefSeq_SeqLength(const TableReaderRefSeq* cself, uint64_t* len);
 
 ALIGN_EXTERN rc_t CC TableReaderRefSeq_Circular(const TableReaderRefSeq* cself, bool* circular);
 
@@ -60,8 +60,8 @@ ALIGN_EXTERN rc_t CC TableReaderRefSeq_MD5(const TableReaderRefSeq* cself, const
 /* read a chunk of refseq into buffer from offset up to offset + len
    if offset is beyond non-circular refseq size error is returned
  */
-ALIGN_EXTERN rc_t CC TableReaderRefSeq_Read(const TableReaderRefSeq* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                                            uint8_t* buffer, INSDC_coord_len* written);
+ALIGN_EXTERN rc_t CC TableReaderRefSeq_Read(const TableReaderRefSeq* cself, int64_t offset, INSDC_coord_len len,
+                                            INSDC_dna_text* buffer, INSDC_coord_len* written);
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/align/reference.h b/interfaces/align/reference.h
deleted file mode 100644
index d105d44..0000000
--- a/interfaces/align/reference.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was readten as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_align_reader_reference_
-#define _h_align_reader_reference_
-
-#ifndef _h_align_extern_
-#include <align/extern.h>
-#endif
-
-#ifndef _h_vdb_cursor_
-#include <vdb/cursor.h>
-#endif
-
-#ifndef _h_vdb_table_
-#include <vdb/table.h>
-#endif
-
-#ifndef _h_vdb_database_
-#include <vdb/database.h>
-#endif
-
-#ifndef _h_vdb_manager_
-#include <vdb/manager.h>
-#endif
-
-#ifndef _h_align_iterator_
-#include <align/iterator.h>
-#endif
-
-#ifndef _h_insdc_insdc_
-#include <insdc/insdc.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct VCursor;
-struct PlacementIterator;
-
-enum ReferenceList_Options {
-    ereferencelist_4na = 0x01, /* READ in 4na, otherwise it is DNA */
-    /* next 3 options are used only if iterator is NOT created using existing cursor */
-    ereferencelist_usePrimaryIds = 0x02, /* read PRIMARY_ALIGNMENT_IDS too */
-    ereferencelist_useSecondaryIds = 0x04, /* read SECONDARY_ALIGNMENT_IDS too */
-    ereferencelist_useEvidenceIds = 0x08 /* use EVIDENCE_ALIGNMENT */
-};
-
-typedef struct ReferenceList ReferenceList;
-
-/** name is used to limit only to a single sequence - for quick lookups **/
-/** numbins is used to divide whole reference table in equi-row-bins and show only the bin where the name is falling to **/
-ALIGN_EXTERN rc_t CC ReferenceList_MakeCursor(const ReferenceList** cself, const VCursor* cursor, uint32_t options,
-                                              const char* name, const uint32_t numbins);
-
-ALIGN_EXTERN rc_t CC ReferenceList_MakeTable(const ReferenceList** cself, const VTable* table, uint32_t options,
-                                             size_t cache, const char* name, const uint32_t numbins);
-
-ALIGN_EXTERN rc_t CC ReferenceList_MakeDatabase(const ReferenceList** cself, const VDatabase* db, uint32_t options,
-                                                size_t cache, const char* name, const uint32_t numbins);
-
-ALIGN_EXTERN rc_t CC ReferenceList_MakePath(const ReferenceList** cself, const VDBManager* vmgr, const char* dbpath,
-                                            uint32_t options, size_t cache,const char *name, const uint32_t numbins);
-
-ALIGN_EXTERN rc_t CC ReferenceList_AddRef(const ReferenceList *cself);
-ALIGN_EXTERN void CC ReferenceList_Release(const ReferenceList* cself);
-
-/* number of items in the list */
-ALIGN_EXTERN rc_t CC ReferenceList_Count(const ReferenceList* cself, uint32_t* count);
-
-typedef struct ReferenceObj ReferenceObj;
-
-/* find object by SEQ_ID and if not found by NAME */
-ALIGN_EXTERN rc_t CC ReferenceList_Find(const ReferenceList* cself, const ReferenceObj** obj, const char* key, size_t key_sz);
-
-/* idx is 0-based */
-ALIGN_EXTERN rc_t CC ReferenceList_Get(const ReferenceList* cself, const ReferenceObj** obj, uint32_t idx);
-
-ALIGN_EXTERN rc_t ReferenceObj_AddRef(const ReferenceObj *cself);
-ALIGN_EXTERN void CC ReferenceObj_Release(const ReferenceObj* cself);
-
-/* internal idx for use in ReferenceList_Get above */
-ALIGN_EXTERN rc_t CC ReferenceObj_Idx(const ReferenceObj* cself, uint32_t* idx);
-/* Gets RowId range for the object */
-ALIGN_EXTERN rc_t CC ReferenceObj_IdRange(const ReferenceObj* cself, int64_t* start, int64_t* stop);
-/* Gets Current bin number if ReferenceList was binned*/
-ALIGN_EXTERN rc_t CC ReferenceObj_Bin(const ReferenceObj* cself, uint32_t* bin);
-
-ALIGN_EXTERN rc_t CC ReferenceObj_SeqId(const ReferenceObj* cself, const char** seqid);
-
-ALIGN_EXTERN rc_t CC ReferenceObj_Name(const ReferenceObj* cself, const char** name);
-
-ALIGN_EXTERN rc_t CC ReferenceObj_SeqLength(const ReferenceObj* cself, INSDC_coord_len* len);
-
-ALIGN_EXTERN rc_t CC ReferenceObj_Circular(const ReferenceObj* cself, bool* circular);
-
-/* check if actual refseq data is located in external table (external == true on return)
-   optionally obtain its path, returned path == NULL means actual refseq is missing
-   if path was requested and obtained caller must free(path)! */
-ALIGN_EXTERN rc_t CC ReferenceObj_External(const ReferenceObj* cself, bool* external, char** path);
-
-/* read a chunk of refseq into buffer from offset up to offset + len
-   if offset is beyond non-circular refseq size error is returned
- */
-ALIGN_EXTERN rc_t CC ReferenceObj_Read(const ReferenceObj* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                                       uint8_t* buffer, INSDC_coord_len* written);
-
-ALIGN_EXTERN rc_t CC ReferenceObj_GetIdCount( const ReferenceObj* cself, int64_t row_id, uint32_t *count );
-
-/* return pointer to iterator for (PRIMARY|SECONDARY)_ALIGNMENT_IDS to a given range on reference,
-   both cursors could be NULL
-   ref_len will be truncated to seq length for non-circular references
-   for other parameters see AlignMgrMakePlacementIterator
- */
-ALIGN_EXTERN rc_t CC ReferenceObj_MakePlacementIterator ( const ReferenceObj* cself,
-    PlacementIterator **iter,
-    INSDC_coord_zero ref_window_start,
-    INSDC_coord_len ref_window_len, int32_t min_mapq,
-    struct VCursor const *ref_cur, struct VCursor const *align_cur, align_id_src ids,
-    const PlacementRecordExtendFuncs *ext_0, const PlacementRecordExtendFuncs *ext_1,
-    const char * rd_group );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_align_reader_reference_ */
diff --git a/interfaces/align/refseq-mgr.h b/interfaces/align/refseq-mgr.h
index bfa73ca..936b0a7 100644
--- a/interfaces/align/refseq-mgr.h
+++ b/interfaces/align/refseq-mgr.h
@@ -50,17 +50,15 @@ ALIGN_EXTERN rc_t CC RefSeqMgr_Make(const RefSeqMgr** cself, const VDBManager* v
 
 ALIGN_EXTERN rc_t CC RefSeqMgr_Release(const RefSeqMgr* cself);
 
-ALIGN_EXTERN rc_t CC RefSeqMgr_SetCache(RefSeqMgr const *cself, size_t cache, uint32_t keep_open_num);
-
-/* return value if 0 means object was found, path is optional */
-ALIGN_EXTERN rc_t RefSeqMgr_Exists(const RefSeqMgr* cself, const char* accession, uint32_t accession_sz, char** path);
+/* return value if 0 means object was found */
+ALIGN_EXTERN rc_t RefSeqMgr_Exists(const RefSeqMgr* cself, const char* accession, uint32_t accession_sz);
 
 /* Read from refseq ided by seq_id chunk of 'len' bases into provided 'buffer' (must be enough big for len);
    on return written has number of bases written
  */
 ALIGN_EXTERN rc_t CC RefSeqMgr_Read(const RefSeqMgr* cself, const char* seq_id, uint32_t seq_id_sz,
-                                    INSDC_coord_zero offset, INSDC_coord_len len,
-                                    uint8_t* buffer, INSDC_coord_len* written);
+                                    int64_t offset, INSDC_coord_len len,
+                                    INSDC_dna_text* buffer, INSDC_coord_len* written);
 
 typedef struct RefSeq RefSeq;
 
@@ -68,12 +66,12 @@ ALIGN_EXTERN rc_t CC RefSeqMgr_GetSeq(const RefSeqMgr* cmgr, const RefSeq** csel
 
 /* Same as RefSeqMgr_Read
  */
-ALIGN_EXTERN rc_t CC RefSeq_Read(const RefSeq* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                                 uint8_t* buffer, INSDC_coord_len* written);
+ALIGN_EXTERN rc_t CC RefSeq_Read(const RefSeq* cself, int64_t offset, INSDC_coord_len len,
+                                 INSDC_dna_text* buffer, INSDC_coord_len* written);
 
 ALIGN_EXTERN rc_t CC RefSeq_Circular(const RefSeq* cself, bool* circular);
 
-ALIGN_EXTERN rc_t CC RefSeq_SeqLength(const RefSeq* cself, INSDC_coord_len* len);
+ALIGN_EXTERN rc_t CC RefSeq_SeqLength(const RefSeq* cself, uint64_t* len);
 
 ALIGN_EXTERN rc_t CC RefSeq_MD5(const RefSeq* cself, const uint8_t** md5);
 
diff --git a/interfaces/align/refseq.vschema b/interfaces/align/refseq.vschema
deleted file mode 100644
index 7ea0dc8..0000000
--- a/interfaces/align/refseq.vschema
+++ /dev/null
@@ -1,100 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/*==========================================================================
- * VDB Reference Sequence types, functions and tables
- */
-version 1;
-
-include 'vdb/vdb.vschema';
-include 'ncbi/seq.vschema';
-include 'ncbi/sra.vschema';
-include 'ncbi/stats.vschema';
-
-
-extern function U8 NCBI:refseq:stats #1 ( INSDC:4na:bin seq )
-    = NCBI:refSeq:stats;
-
-table NCBI:refseq:tbl:reference #1.0.2 =
-    NCBI:tbl:base_space #2.0.2,
-    NCBI:tbl:phred_quality #2.0.3,
-    NCBI:tbl:seqloc #1.0,
-    NCBI:SRA:tbl:stats #1.1.2
-{
-    // 128K
-    column default limit = 131072;
-
-    extern column U32 MAX_SEQ_LEN;                  /* must be static */
-    extern column < ascii > izip_encoding DEF_LINE; /* remainder of defline after SEQ_ID */
-
-    // trigger upconverts to INSDC:dna:text to get MD5
-    trigger table_stats
-        = NCBI:refseq:stats(in_4na_bin);
-
-    readonly column U64 TOTAL_SEQ_LEN
-        = < U64 > meta:value < 'STATS/TOTAL_SEQ_LEN', true >();
-        
-    readonly column U8[16] MD5
-        = < U8[16] > meta:read < 'STATS/MD5', true >();
-        
-    // indicates if sequence has circular structure
-    // should be static
-    extern column bool_encoding CIRCULAR;
-    
-    /* columns:
-     *  READ
-     *  QUALITY (optional)
-     *  SEQ_ID
-     *  SEQ_START
-     *  SEQ_LEN
-     *  MAX_SEQ_LEN
-     *  TOTAL_SEQ_LEN
-     *  DEF_LINE
-     */
-
-    // make CS_KEY writable
-    INSDC:dna:text in_cs_key
-        = < INSDC:dna:text, INSDC:dna:text > map < 'acgtn', 'ACGTN' > ( CS_KEY );
-    physical column < INSDC:dna:text > zip_encoding .CS_KEY = in_cs_key;
-    // extra columns needed for CS conversion
-    INSDC:coord:zero out_read_start = < INSDC:coord:zero> echo < 0 > ();
-    INSDC:coord:len  out_read_len =  .SEQ_LEN;
-    
-    INSDC:coord:len _alt_in_read_len
-        = READ_LEN
-        | SEQ_LEN;
-
-    INSDC:SRA:xread_type _alt_in_read_type
-        = READ_TYPE
-        | < INSDC:SRA:xread_type > echo < SRA_READ_TYPE_BIOLOGICAL > ();
-
-    INSDC:SRA:xread_type out_read_type
-        = .READ_TYPE
-        | < INSDC:SRA:xread_type > echo < SRA_READ_TYPE_BIOLOGICAL > ();
-};
-
-// older spelling
-alias NCBI:refseq:tbl:reference NCBI:refSeq:tbl:reference;
diff --git a/interfaces/align/seq.vschema b/interfaces/align/seq.vschema
deleted file mode 100644
index 9b2f452..0000000
--- a/interfaces/align/seq.vschema
+++ /dev/null
@@ -1,300 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/*==========================================================================
- * Sequence schema
- */
-version 1;
-
-include 'vdb/vdb.vschema';
-include 'ncbi/seq.vschema';
-
-
-/* cmp_base_space
- *  table representing compressed reads in base space,
- *  where the bases are only stored for unaligned reads
- */
-table NCBI:align:tbl:cmp_base_space #1
-    = INSDC:tbl:sequence #1.0.1
-    , NCBI:tbl:dcmp_base_space #1
-{
-    /* CMP_READ
-     *  read compressed against a reference sequence
-     */
-
-    // default is IUPAC character representation
-    extern default column INSDC:dna:text CMP_READ
-    {
-        read = out_cmp_dna_text;
-        validate = < INSDC:dna:text > compare ( in_cmp_dna_text, out_cmp_dna_text );
-    }
-
-    // 4na representation
-    extern column INSDC:4na:bin CMP_READ = out_cmp_4na_bin;
-    extern column INSDC:4na:packed CMP_READ = out_cmp_4na_packed;
-
-    // x2na representation - 2na with ambiguity
-    extern column INSDC:x2na:bin CMP_READ = out_cmp_x2na_bin;
-
-    // 2na representation - 2na with no ambiguity
-    extern column INSDC:2na:bin CMP_READ = out_cmp_2na_bin;
-    extern column INSDC:2na:packed CMP_READ = out_cmp_2na_packed;
-
-
-    /* input processing rules
-     */
-
-    // compressed input text
-    INSDC:dna:text in_cmp_dna_text
-        = < INSDC:dna:text, INSDC:dna:text > map < '.acmgrsvtwyhkdbn','NACMGRSVTWYHKDBN' > ( CMP_READ );
-
-    // compressed input 4na bin
-    INSDC:4na:bin in_cmp_4na_bin
-        = < INSDC:4na:bin > range_validate < 0, 15 > ( CMP_READ )
-        | ( INSDC:4na:bin ) unpack ( in_cmp_4na_packed )
-        | < INSDC:dna:text, INSDC:4na:bin > map < INSDC:4na:map:CHARSET, INSDC:4na:map:BINSET > ( in_cmp_dna_text )
-        | < INSDC:x2na:bin, INSDC:4na:bin > map < INSDC:x2na:map:BINSET, [ 1, 2, 4, 8, 15 ] > ( in_cmp_x2na_bin );
-
-    // compressed input 4na packed
-    INSDC:4na:packed in_cmp_4na_packed = CMP_READ;
-
-    // compressed input x2na bin
-    INSDC:x2na:bin in_cmp_x2na_bin
-        = < INSDC:x2na:bin > range_validate < 0, 4 > ( CMP_READ )
-        | < INSDC:4na:bin, INSDC:x2na:bin > map < INSDC:4na:map:BINSET, [ 4,0,1,4,2,4,4,4,3,4,4,4,4,4,4,4 ] > ( in_cmp_4na_bin );
-
-    // compressed input 2na bin
-    INSDC:2na:bin in_cmp_2na_bin
-        = < INSDC:2na:bin > range_validate < 0, 3 > ( CMP_READ )
-        | ( INSDC:2na:bin ) unpack ( in_cmp_2na_packed )
-        | INSDC:SEQ:rand_4na_2na ( in_cmp_4na_bin );
-
-    // compressed input 2na packed
-    INSDC:2na:packed in_cmp_2na_packed = CMP_READ;
-
-    // input 4na alt-read ( ambiguities )
-    INSDC:4na:bin in_cmp_alt_4na_bin
-        = < INSDC:4na:bin, INSDC:4na:bin > map < INSDC:4na:map:BINSET, [ 15,0,0,3,0,5,6,7,0,9,10,11,12,13,14,15 ] > ( in_cmp_4na_bin );
-
-    // preparing a feed into stats column
-    U8 in_cmp_stats_bin = in_cmp_2na_bin;
-
-
-    /* physical columns
-     */
-
-    physical column INSDC:2na:packed .CMP_READ
-        = in_cmp_2na_packed
-        | ( INSDC:2na:packed ) pack ( in_cmp_2na_bin );
-
-    physical column < INSDC:4na:bin > zip_encoding .CMP_ALTREAD
-        = < INSDC:4na:bin > trim < 0, 0 > ( in_cmp_alt_4na_bin );
-
-
-    /* output processing rules
-     */
-
-    // output 2na packed
-    INSDC:2na:packed out_cmp_2na_packed = .CMP_READ;
-
-    // unambiguous unpacked 2na
-    INSDC:2na:bin out_cmp_2na_bin
-        = ( INSDC:2na:bin ) unpack ( out_cmp_2na_packed );
-
-    // output x2na bin
-    INSDC:x2na:bin out_cmp_x2na_bin
-        = < INSDC:4na:bin, INSDC:x2na:bin > map < INSDC:4na:map:BINSET, [ 4,0,1,4,2,4,4,4,3,4,4,4,4,4,4,4 ] > ( out_cmp_4na_bin );
-
-    // output 2na->4na bin
-    INSDC:4na:bin out_cmp_2na_4na_bin
-        = < INSDC:2na:bin, INSDC:4na:bin > map < INSDC:2na:map:BINSET, [ 1, 2, 4, 8 ] > ( out_cmp_2na_bin );
-
-    // output 4na bin
-    INSDC:4na:bin out_cmp_4na_bin
-        = < INSDC:4na:bin > bit_or < ALIGN_RIGHT > ( out_cmp_2na_4na_bin, .CMP_ALTREAD )
-        | out_cmp_2na_4na_bin;
-
-    // synthesized packed 4na
-    INSDC:4na:packed out_cmp_4na_packed
-        = ( INSDC:4na:packed ) pack ( out_cmp_4na_bin );
-
-    // output text
-    INSDC:dna:text out_cmp_dna_text
-        = < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_cmp_4na_bin );
-
-
-    /* decompressed sequences
-     *   source is out_dcmp_4na_bin - a virtual production
-     */
-
-    // synthesize x2na_bin, 2na_bin and 2na_packed
-    INSDC:x2na:bin out_dcmp_x2na_bin
-        = < INSDC:4na:bin, INSDC:x2na:bin > map < INSDC:4na:map:BINSET, [ 4,0,1,4,2,4,4,4,3,4,4,4,4,4,4,4 ] > ( out_dcmp_4na_bin );
-    INSDC:2na:bin out_dcmp_2na_bin
-        = < INSDC:x2na:bin, INSDC:2na:bin > map < [ 0,1,2,3,4 ], [ 0,1,2,3,0 ] > ( out_dcmp_x2na_bin );
-    INSDC:2na:packed out_dcmp_2na_packed
-        = ( INSDC:2na:packed ) pack ( out_dcmp_2na_bin );
-
-
-	/* INSDC:tbl:sequence inherited productions
-	 *  cs_native
-	 *  out_cs_key
-	 *  out_signal
-	 *  out_2cs_bin
-	 *  out_2na_bin
-	 *  out_4na_bin
-	 *  out_dna_text
-	 *  out_x2cs_bin
-	 *  out_x2na_bin
-	 *  out_2cs_packed
-	 *  out_2na_packed
-	 *  out_4na_packed
-	 *  out_color_text
-	 *  out_color_matrix
-	 */
-
-	/* NCBI:tbl:dcmp_base_space inherited productions
-	 *  out_dcmp_4na_bin
-	 */
-}
-
-
-/* cmp_color_space
- *  table representing compressed reads in color space,
- *  where the colors are only stored for unaligned reads
- */
-table NCBI:align:tbl:cmp_color_space #1 =
-    INSDC:tbl:sequence #1.0.1, NCBI:tbl:dcmp_color_space #1
-{
-    /* CMP_CSREAD
-     *  read compressed against a reference sequence
-     */
-
-    // default is IUPAC character representation
-    extern default column INSDC:color:text CMP_CSREAD = out_cmp_color_text;
-
-    // x2cs representation - 2cs with ambiguity
-    extern column INSDC:x2cs:bin CMP_CSREAD = out_cmp_x2cs_bin;
-
-    // 2cs representation - 2cs with no ambiguity
-    extern column INSDC:2cs:bin CMP_CSREAD = out_cmp_2cs_bin;
-    extern column INSDC:2cs:packed CMP_CSREAD = out_cmp_2cs_packed;
-
-
-    /* input processing rules
-     */
-
-    // compressed input text
-    INSDC:color:text in_cmp_color_text = CMP_CSREAD;
-
-    // compressed input x2cs bin
-    INSDC:x2cs:bin in_cmp_x2cs_bin
-        = < INSDC:x2cs:bin > range_validate < 0, 4 > ( CMP_CSREAD )
-        | < INSDC:color:text, INSDC:x2cs:bin > map < INSDC:x2cs:map:CHARSET, INSDC:x2cs:map:BINSET > ( in_cmp_color_text );
-
-    // compressed input 2cs bin
-    INSDC:2cs:bin in_cmp_2cs_bin
-        = < INSDC:2cs:bin > range_validate < 0, 3 > ( CMP_CSREAD )
-        | ( INSDC:2cs:bin ) unpack ( in_cmp_2cs_packed )
-        | < INSDC:x2cs:bin, INSDC:2cs:bin > map < INSDC:x2cs:map:BINSET, [ 0, 1, 2, 3, 0 ] > ( in_cmp_x2cs_bin );
-
-    // compressed input 2cs packed
-    INSDC:2cs:packed in_cmp_2cs_packed = CMP_CSREAD;
-
-    // compressed input x2cs alt-read ( ambiguities )
-    INSDC:x2cs:bin in_cmp_alt_x2cs_bin
-        = < INSDC:x2cs:bin, INSDC:x2cs:bin > map < INSDC:x2cs:map:BINSET, [ 0, 0, 0, 0, 4 ] > ( in_cmp_x2cs_bin );
-
-    // preparing a feed into stats column
-    U8 in_cmp_stats_bin = in_cmp_2cs_bin;
-
-
-    /* physical columns
-     */
-
-    physical column INSDC:2cs:packed .CMP_CSREAD
-        = in_cmp_2cs_packed
-        | ( INSDC:2cs:packed ) pack ( in_cmp_2cs_bin );
-
-    physical column < INSDC:x2cs:bin > zip_encoding .CMP_ALTCSREAD
-        = < INSDC:x2cs:bin > trim < 0, 0 > ( in_cmp_alt_x2cs_bin );
-
-
-    /* output processing rules
-     */
-
-    // compressed output 2cs packed
-    INSDC:2cs:packed out_cmp_2cs_packed = .CMP_CSREAD;
-
-    // unambiguous unpacked 2cs
-    INSDC:2cs:bin out_cmp_2cs_bin
-        = ( INSDC:2cs:bin ) unpack ( out_cmp_2cs_packed );
-
-    // unpacked 2cs with ambiguity
-    INSDC:x2cs:bin out_cmp_x2cs_bin
-        = ( INSDC:x2cs:bin ) < U8 > bit_or < ALIGN_RIGHT > ( out_cmp_2cs_bin, .CMP_ALTCSREAD )
-        | ( INSDC:x2cs:bin ) out_cmp_2cs_bin;
-
-    // output text
-    INSDC:color:text out_cmp_color_text
-        = < INSDC:x2cs:bin, INSDC:color:text > map <  INSDC:x2cs:map:BINSET, INSDC:x2cs:map:CHARSET > ( out_cmp_x2cs_bin );
-
-
-    /* decompressed sequences
-     *   sources are out_dcmp_x2cs_bin - virtual production
-     */
-
-    // synthesize 2cs_bin and 2cs_packed
-    INSDC:2cs:bin out_dcmp_2cs_bin
-        = < INSDC:x2cs:bin, INSDC:2cs:bin > map < [ 0,1,2,3,4 ], [ 0,1,2,3,0 ] > ( out_dcmp_x2cs_bin );
-    INSDC:2cs:packed out_dcmp_2cs_packed
-        = ( INSDC:2cs:packed ) pack ( out_dcmp_2cs_bin );
-
-
-	/* INSDC:tbl:sequence inherited productions
-	 *  cs_native
-	 *  out_cs_key
-	 *  out_signal
-	 *  out_2cs_bin
-	 *  out_2na_bin
-	 *  out_4na_bin
-	 *  out_dna_text
-	 *  out_x2cs_bin
-	 *  out_x2na_bin
-	 *  out_2cs_packed
-	 *  out_2na_packed
-	 *  out_4na_packed
-	 *  out_color_text
-	 *  out_qual_phred
-	 *  out_color_matrix
-	 *  out_qual_text_phred_33
-	 *  out_qual_text_phred_64
-	 */
-
-	/* NCBI:tbl:dcmp_color_space inherited productions
-	 *  out_dcmp_x2cs_bin
-	 */
-}
diff --git a/interfaces/align/writer-alignment.h b/interfaces/align/writer-alignment.h
index a52db48..5f616a4 100644
--- a/interfaces/align/writer-alignment.h
+++ b/interfaces/align/writer-alignment.h
@@ -59,9 +59,7 @@ enum ETableWriterAlgn_ColNames {
     ewalgn_cn_HAS_REF_OFFSET,
     ewalgn_cn_MISMATCH,
     ewalgn_cn_REF_OFFSET,
-    ewalgn_cn_EVIDENCE_ALIGNMENT_IDS,
-    ewalgn_cn_ALIGN_GROUP,
-    ewalgn_cn_Last = ewalgn_cn_ALIGN_GROUP
+    ewalgn_cn_Last = ewalgn_cn_REF_OFFSET
 };
 
 typedef uint8_t ETableWriterAlgn_TableType;
@@ -76,8 +74,7 @@ enum ETableWriterAlgn_ColOptions {
     ewalgn_co_SEQ_SPOT_ID = 0x01,   /* SEQ_SPOT_ID will be written with the whole record */
     ewalgn_co_TMP_KEY_ID = 0x02,    /* use TMP_KEY_ID column, by default not opened */
     ewalgn_co_PLOIDY = 0x04,        /* ploidy is more than 1, columns PLOIDY, READ_START, READ_LEN needs data */
-    ewalgn_co_unsorted = 0x08,       /* use the unsorted table scheme */
-    ewalgn_co_MATE_ALIGN_ID_only = 0x10 /* disable all other MATE_* columns */
+    ewalgn_co_unsorted = 0x08       /* use the unsorted table scheme */
 };
 
 typedef struct TableWriterAlgnData_struct {
@@ -86,29 +83,27 @@ typedef struct TableWriterAlgnData_struct {
     TableWriterData seq_read_id;
     TableWriterData tmp_key_id;
 
-    /* BEGIN filled out by ReferenceMgr_Compress */
-    uint32_t ploidy; /* incremented sequentially for each call, must be set to 0 for each new spot */
-    TableWriterData read_start; /* mandatory */
-    TableWriterData read_len; /* mandatory */
-    TableWriterData has_ref_offset; /* mandatory */
-    TableWriterData ref_offset; /* mandatory */
-    TableWriterData ref_id; /* used for unsorted*/
-    TableWriterData ref_start; /* used only for unsorted */
-    TableWriterData global_ref_start; /* used only for sorted */
-    TableWriterData has_mismatch;  /* mandatory only for primary */
-    TableWriterData mismatch; /* mandatory only for primary */
-
-    INSDC_coord_len ref_len; /* projection on refseq is same for all alleles! */
+    /* filled out by ReferenceMgr_Compress */
+    uint32_t ploidy; /* incremented sequentially for each call, set it to 0 for each new spot */
+    TableWriterData read_start;
+    TableWriterData read_len;
+    TableWriterData has_ref_offset;
+    TableWriterData ref_offset;
+    TableWriterData ref_id; /* unsorted */
+    TableWriterData ref_start; /* unsorted */
+    TableWriterData global_ref_start; /* sorted */
+    /* not used for secondary and evidence alignment table type */
+    TableWriterData has_mismatch; 
+    TableWriterData mismatch;
     /* tmp data, never saved to db */
-    /* recalculated offset in reference based on CIGAR and circularity in Compression */
-    INSDC_coord_zero effective_offset; 
-    int64_t ref_1st_row_id;
-    /* END filled out by ReferenceMgr_Compress */
+    TableWriterData effective_offset; /* recalculated based on CIGAR and circularity in Compression */
+    TableWriterData ref_len;
+    TableWriterData ref_1st_row_id;
+    /* filled out by ReferenceMgr_Compress end */
 
     TableWriterData ref_orientation;
     TableWriterData ref_ploidy;
     TableWriterData mapq;
-    TableWriterData align_group; /* set length to 0 if not used */
 
     /* used only only in secondary */
     TableWriterData mate_ref_orientation;
@@ -116,9 +111,6 @@ typedef struct TableWriterAlgnData_struct {
     TableWriterData mate_ref_pos;
     TableWriterData mate_align_id;
     TableWriterData template_len;
-
-    /* used only in for ewalgn_tabletype_EvidenceInterval table type */
-    TableWriterData alingment_ids;
 } TableWriterAlgnData;
 
 typedef struct TableWriterAlgn TableWriterAlgn;
@@ -141,11 +133,14 @@ ALIGN_EXTERN rc_t CC TableWriterAlgn_Write(const TableWriterAlgn* cself, const T
 ALIGN_EXTERN rc_t CC TableWriterAlgn_TmpKeyStart(const TableWriterAlgn* cself);
 
 /* retrieve TMP_KEY value by rowid */
-ALIGN_EXTERN rc_t CC TableWriterAlgn_TmpKey(const TableWriterAlgn* cself, int64_t rowid, uint64_t* key_id);
+ALIGN_EXTERN rc_t CC TableWriterAlgn_TmpKey(const TableWriterAlgn* cself, int64_t rowid, uint32_t* key_id);
 
 /* assign a SPOT_ID value to row */
 ALIGN_EXTERN rc_t CC TableWriterAlgn_Write_SpotId(const TableWriterAlgn* cself, int64_t rowid, int64_t spot_id);
 
+/* utillity function */
+ALIGN_EXTERN rc_t CC TableWriterAlgn_ReverseCompliment(const INSDC_dna_text* seq, INSDC_dna_text* cmpl, uint32_t len);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/align/writer-reference.h b/interfaces/align/writer-reference.h
index cfdca83..74dd22a 100644
--- a/interfaces/align/writer-reference.h
+++ b/interfaces/align/writer-reference.h
@@ -39,12 +39,9 @@
 extern "C" {
 #endif
 
-struct KFile;
-
 enum EReference_Options {
     ewrefmgr_co_allREADs = 0x01, /* always write READ */
-    ewrefmgr_co_Coverage = 0x02,  /* use coverage data, by default not used */
-    ewrefmgr_co_AcceptHardClip = 0x04 /* accept hard clipping in CIGAR */
+    ewrefmgr_co_Coverage = 0x02  /* use coverage data, by default not used */
 };
 
 typedef struct ReferenceMgr ReferenceMgr;
@@ -65,69 +62,51 @@ ALIGN_EXTERN rc_t CC ReferenceMgr_Make(const ReferenceMgr** cself, VDatabase* db
                                        const uint32_t options, const char* conf, const char* path, uint32_t max_seq_len,
                                        size_t cache, uint32_t num_open);
 
-ALIGN_EXTERN rc_t CC ReferenceMgr_Release(const ReferenceMgr* cself, bool commit, uint64_t* const rows, bool build_coverage);
-
-ALIGN_EXTERN rc_t CC ReferenceMgr_SetCache(ReferenceMgr const *const self, size_t cache, uint32_t num_open);
+ALIGN_EXTERN rc_t CC ReferenceMgr_Release(const ReferenceMgr* cself, bool commit, uint64_t* rows, bool build_coverage);
 
 typedef struct ReferenceSeq ReferenceSeq;
 
 /* id: chr12 or NC_000001.3 */
-ALIGN_EXTERN rc_t CC ReferenceMgr_GetSeq(const ReferenceMgr* const cself, const ReferenceSeq** const seq, const char* id);
-
-ALIGN_EXTERN rc_t CC ReferenceMgr_Verify(const ReferenceMgr* cself, const char* id, INSDC_coord_len length, const uint8_t md5[16]);
+ALIGN_EXTERN rc_t CC ReferenceMgr_GetSeq(const ReferenceMgr* cself, const ReferenceSeq** seq, const char* id);
 
-ALIGN_EXTERN rc_t CC ReferenceMgr_FastaPath(const ReferenceMgr* cself, const char* fasta_path);
-
-ALIGN_EXTERN rc_t CC ReferenceMgr_FastaFile(const ReferenceMgr* cself, struct KFile const* file);
+ALIGN_EXTERN rc_t CC ReferenceMgr_Verify(const ReferenceMgr* cself, const char* id, uint64_t length, const uint8_t md5[16]);
 
 enum EReference_CompressionOptions {
     ewrefmgr_cmp_Binary = 0x01, /* binary cigar on input (BAM format: 28+4 bits) */
-    ewrefmgr_cmp_Exact = 0x02 /* exact matching no cliping */
+    ewrefmgr_cmp_NoMismatch = 0x02  /* do not fill out MISMATCH data */
 };
 
 ALIGN_EXTERN rc_t CC ReferenceMgr_Compress(const ReferenceMgr* cself, uint32_t options,
-                                           const char* id, INSDC_coord_zero offset,
+                                           const char* id, int64_t offset,
                                            const char* seq, INSDC_coord_len seq_len,
                                            const void* cigar, uint32_t cigar_len,
-                                           INSDC_coord_zero allele_offset, const char* allele, INSDC_coord_len allele_len,INSDC_coord_zero offset_in_allele,
-                                           const void* allele_cigar, uint32_t allele_cigar_len,
                                            TableWriterAlgnData* data);
 
 /* Read refseq chunk of 'len' bases into provided 'buffer' (must be enough big for len);
    ref_len - on return has number of bases written to the buffer
  */
-ALIGN_EXTERN rc_t CC ReferenceSeq_Read(const ReferenceSeq* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                                       uint8_t* buffer, INSDC_coord_len* ref_len);
+ALIGN_EXTERN rc_t CC ReferenceSeq_Read(const ReferenceSeq* cself, int64_t offset, INSDC_coord_len len,
+                                       INSDC_dna_text* buffer, INSDC_coord_len* ref_len);
 
 ALIGN_EXTERN rc_t CC ReferenceSeq_Get1stRow(const ReferenceSeq* cself, int64_t* row_id);
 
 ALIGN_EXTERN rc_t CC ReferenceSeq_Compress(const ReferenceSeq* cself, uint32_t options,
-                                           INSDC_coord_zero offset,
+                                           int64_t offset,
                                            const char* seq, INSDC_coord_len seq_len,
                                            const void* cigar, uint32_t cigar_len,
-                                           INSDC_coord_zero allele_offset, const char* allele, INSDC_coord_len allele_len,INSDC_coord_zero offset_in_allele,
-                                           const void* allele_cigar, uint32_t allele_cigar_len,
                                            TableWriterAlgnData* data);
 
-enum ReferenceSeqCoverageTableType {
-    ewrefcov_primary_table = 0,
-    ewrefcov_secondary_table,
-    ewrefcov_evidence_table
-};
 
 typedef struct ReferenceSeqCoverage_struct {
-    /* based only on primary and secondary */
     uint8_t high;
     uint8_t low;
     uint32_t mismatches;
     uint32_t indels;
-    /* in that order (use enum above): prim, 2nd, evidence */
-    INSDC_coord_zero overlap_ref_pos[3];
-    INSDC_coord_len overlap_ref_len[3];
-    TableWriterData ids[3];
+    TableWriterData primary_ids;
+    TableWriterData secondary_ids;
 } ReferenceSeqCoverage;
 
-ALIGN_EXTERN rc_t CC ReferenceSeq_AddCoverage(const ReferenceSeq* cself, INSDC_coord_zero offset, const ReferenceSeqCoverage* data);
+ALIGN_EXTERN rc_t CC ReferenceSeq_AddCoverage(const ReferenceSeq* cself, int64_t offset, const ReferenceSeqCoverage* data);
 
 ALIGN_EXTERN rc_t CC ReferenceSeq_Release(const ReferenceSeq* cself);
 
diff --git a/interfaces/align/writer-refseq.h b/interfaces/align/writer-refseq.h
index 6a12d09..0dedcbd 100644
--- a/interfaces/align/writer-refseq.h
+++ b/interfaces/align/writer-refseq.h
@@ -68,10 +68,8 @@ typedef struct TableWriterRefSeq TableWriterRefSeq;
 ALIGN_EXTERN rc_t CC TableWriterRefSeq_Make(const TableWriterRefSeq** cself, VDBManager* mgr, const char* schema_path,
                                             const char* table_path, const uint32_t options);
 
-/* rows optional here, app signature is mandatory */
-ALIGN_EXTERN rc_t CC TableWriterRefSeq_Whack(const TableWriterRefSeq* cself, bool commit, uint64_t* rows,
-                                             const char* argv0, const char* argv0_date,
-                                             const char* app_name, ver_t app_version);
+/* rows optional here */
+ALIGN_EXTERN rc_t CC TableWriterRefSeq_Whack(const TableWriterRefSeq* cself, bool commit, uint64_t* rows);
 
 ALIGN_EXTERN rc_t CC TableWriterRefSeq_WriteDefault(const TableWriterRefSeq* cself,
                                                     enum ETableWriterRefSeq_ColNames col, const TableWriterData* data);
diff --git a/interfaces/align/writer-sequence.h b/interfaces/align/writer-sequence.h
index 3282b07..a0cfbc5 100644
--- a/interfaces/align/writer-sequence.h
+++ b/interfaces/align/writer-sequence.h
@@ -53,8 +53,7 @@ enum ETableWriterSeq_ColNames {
     ewseq_cn_TMP_KEY_ID,
     ewseq_cn_SPOT_GROUP,
     ewseq_cn_READ_FILTER,
-    ewseq_cn_TI,
-    ewseq_cn_Last = ewseq_cn_TI
+    ewseq_cn_Last = ewseq_cn_READ_FILTER
 };
 
 enum ETableWriterSeq_ColOptions {
@@ -62,9 +61,8 @@ enum ETableWriterSeq_ColOptions {
     ewseq_co_FullQuality = 0x02, /* write full quality values, by default [1,10,20,30] */
     ewseq_co_AlignData = 0x04,   /* PRIMARY_ALIGNMENT_ID, ALIGNMENT_COUNT will be written with the whole record */
     ewseq_co_NoLabelData = 0x08, /* LABEL and related columns will not be written */
-    ewseq_co_ColorSpace = 0x10,  /* CMP_CSREAD will be written instead of CMP_READ */
-    ewseq_co_SpotGroup = 0x20,   /* SPOT_GROUP will be written */
-    ewseq_co_TI = 0x40           /* TI will be written */
+    ewseq_co_ColorSpace = 0x10,   /* CMP_CSREAD will be written instead of CMP_READ */
+    ewseq_co_SpotGroup = 0x20   /* SPOT_GROUP will be written */
 };
 
 typedef struct TableWriterSeqData_struct {
@@ -79,13 +77,10 @@ typedef struct TableWriterSeqData_struct {
     TableWriterData read_type;
     TableWriterData read_start;
     TableWriterData read_len;
-    uint64_t tmp_key_id;
+    uint32_t tmp_key_id;
     TableWriterData spot_group;
     TableWriterData cskey;
     TableWriterData read_filter;
-    TableWriterData no_quantize_mask;
-    TableWriterData platform;
-    TableWriterData ti;
 } TableWriterSeqData;
 
 typedef struct TableWriterSeq TableWriterSeq;
@@ -134,9 +129,8 @@ ALIGN_EXTERN rc_t CC TableWriterSeq_Write(const TableWriterSeq* cself, const Tab
 ALIGN_EXTERN rc_t CC TableWriterSeq_TmpKeyStart(const TableWriterSeq* cself);
 
 /* retrieve TMP_KEY value by rowid */
-ALIGN_EXTERN rc_t CC TableWriterSeq_TmpKey(const TableWriterSeq* cself, int64_t rowid, uint64_t *key_id);
+ALIGN_EXTERN rc_t CC TableWriterSeq_TmpKey(const TableWriterSeq* cself, int64_t rowid, uint32_t *key_id);
 
-/* passing rowid == 0 will cause the cursor to be flushed */
 ALIGN_EXTERN rc_t CC TableWriterSeq_WriteAlignmentData(const TableWriterSeq* cself, int64_t rowid,
                                                        const TableWriterData* primary_alignment_id,
                                                        const TableWriterData* alignment_count);
diff --git a/interfaces/cc/gcc/i386/atomic.h b/interfaces/cc/gcc/i386/atomic.h
index f0abfc2..111462a 100644
--- a/interfaces/cc/gcc/i386/atomic.h
+++ b/interfaces/cc/gcc/i386/atomic.h
@@ -35,7 +35,6 @@
 extern "C" {
 #endif
 
-typedef int atomic_int;
 typedef struct atomic32_t atomic_t;
 
 /* ( * v ) */
diff --git a/interfaces/kns/extern.h b/interfaces/cc/gcc/i386/fmtdef.h
similarity index 79%
rename from interfaces/kns/extern.h
rename to interfaces/cc/gcc/i386/fmtdef.h
index afd5c00..d51c88f 100644
--- a/interfaces/kns/extern.h
+++ b/interfaces/cc/gcc/i386/fmtdef.h
@@ -24,18 +24,19 @@
 *
 */
 
-#ifndef _h_kns_extern_
-#define _h_kns_extern_
+#ifndef _h_fmtdef_
+#define _h_fmtdef_
 
-#if ! defined EXPORT_LATCH && defined _LIBRARY
-#define KNS_EXTERN LIB_EXPORT
-#define EXPORT_LATCH 1
-#else
-#define KNS_EXTERN LIB_IMPORT
-#endif
+/* int64_t is "long long int" in 32 bit */
+#define LD64 "lld"
+#define LU64 "llu"
+#define LX64 "llX"
+#define Lx64 "llx"
 
-#ifndef _h_klib_extern_
-#include <klib/extern.h>
-#endif
+/* size_t is traditionally "unsigned int"
+   although it should have been "long unsigned int" */
+#define LUSZ "u"
+#define LXSZ "X"
+#define LxSZ "x"
 
-#endif /* _h_kns_extern_ */
+#endif /* _h_fmtdef_ */
diff --git a/interfaces/cc/gcc/noarch/bitstr.h b/interfaces/cc/gcc/noarch/bitstr.h
index 2bb5bd0..b28ec12 100644
--- a/interfaces/cc/gcc/noarch/bitstr.h
+++ b/interfaces/cc/gcc/noarch/bitstr.h
@@ -41,19 +41,19 @@
 extern "C" {
 #endif
 
-/* bitcpy
- *  copy a string of bits from source to dest
- *
- *  both source and dest may have non-byte aligned pointers
- *  the number of bits to copy need not be byte aligned
- *
- *  depending upon architecture and OS conventions, the word
- *  size may be adjusted to 1, 2, or 4 bytes, where the base
- *  pointers are always word aligned.
- *
- *  bits in memory are always treated as big-endian, meaning
- *  that on multi-byte fetches and stores, we perform byte-swapping
- *  if there are shifts or masks
+/* bitcpy                                                                                                                                                                                                    
+ *  copy a string of bits from source to dest                                                                                                                                                                
+ *                                                                                                                                                                                                           
+ *  both source and dest may have non-byte aligned pointers                                                                                                                                                  
+ *  the number of bits to copy need not be byte aligned                                                                                                                                                      
+ *                                                                                                                                                                                                           
+ *  depending upon architecture and OS conventions, the word                                                                                                                                                 
+ *  size may be adjusted to 1, 2, or 4 bytes, where the base                                                                                                                                                 
+ *  pointers are always word aligned.                                                                                                                                                                        
+ *                                                                                                                                                                                                           
+ *  bits in memory are always treated as big-endian, meaning                                                                                                                                                 
+ *  that on multi-byte fetches and stores, we perform byte-swapping                                                                                                                                          
+ *  if there are shifts or masks                                                                                                                                                                             
  */
 static __inline__
 void bitcpy ( void *dbase, bitsz_t doff, const void *sbase, bitsz_t soff, bitsz_t sz )
@@ -155,8 +155,7 @@ void bitcpy ( void *dbase, bitsz_t doff, const void *sbase, bitsz_t soff, bitsz_
                 for ( acc <<= WRDSIZE, i = 0; i < scountz; acc <<= WRDSIZE )
                 {
                     dst [ i ] = BSWAP ( reg );
-                    ++ i;
-                    acc |= BSWAP ( src [ i ] );
+                    acc |= BSWAP ( src [ ++ i ] );
                     reg = ( WRD ) ( acc >> shift );
                 }
 
diff --git a/interfaces/cc/gcc/v128.h b/interfaces/cc/gcc/v128.h
deleted file mode 100644
index e16e31b..0000000
--- a/interfaces/cc/gcc/v128.h
+++ /dev/null
@@ -1,1088 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_v128_
-#define _h_v128_
-
-#include <stdint.h>
-#include <x86intrin.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef int8_t   v128_i8_t  __attribute__ ((vector_size (16),__may_alias__));
-typedef uint8_t  v128_u8_t  __attribute__ ((vector_size (16),__may_alias__));
-typedef int16_t  v128_i16_t __attribute__ ((vector_size (16),__may_alias__));
-typedef int32_t  v128_i32_t __attribute__ ((vector_size (16),__may_alias__));
-typedef int64_t  v128_i64_t __attribute__ ((vector_size (16),__may_alias__));
-typedef uint16_t v128_u16_t __attribute__ ((vector_size (16),__may_alias__));
-typedef uint32_t v128_u32_t __attribute__ ((vector_size (16),__may_alias__));
-typedef uint64_t v128_u64_t __attribute__ ((vector_size (16),__may_alias__));
-typedef float    v128_f_t   __attribute__ ((vector_size (16),__may_alias__));
-typedef double   v128_d_t   __attribute__ ((vector_size (16),__may_alias__));
-
-/* NOTE:
- * these types are to hide perceived flaws in the Intel/GCC code
- * don't use them outside of this file.  uint8_t, int8_t and int64_t all
- * fail to compile so the above types can't be used within this file in some 
- * places.
- */
-typedef char          v128_c_t   __attribute__ ((vector_size (16),__may_alias__));
-typedef long long int v128_lli_t __attribute__ ((vector_size (16),__may_alias__));
-
-
-#if USE_VEC_REG
-
-/* SSE
-  movss
-  movaps
-  movups
-  movlps
-  movhps
-  movlhps
-  movhlps
-*/
-
-#ifdef __MMX__
-/* MMX
-   v8qi __builtin_ia32_paddb (v8qi, v8qi)
-   v4hi __builtin_ia32_paddw (v4hi, v4hi)
-   v2si __builtin_ia32_paddd (v2si, v2si)
-   v8qi __builtin_ia32_psubb (v8qi, v8qi)
-   v4hi __builtin_ia32_psubw (v4hi, v4hi)
-   v2si __builtin_ia32_psubd (v2si, v2si)
-   v8qi __builtin_ia32_paddsb (v8qi, v8qi)
-   v4hi __builtin_ia32_paddsw (v4hi, v4hi)
-   v8qi __builtin_ia32_psubsb (v8qi, v8qi)
-   v4hi __builtin_ia32_psubsw (v4hi, v4hi)
-   v8qi __builtin_ia32_paddusb (v8qi, v8qi)
-   v4hi __builtin_ia32_paddusw (v4hi, v4hi)
-   v8qi __builtin_ia32_psubusb (v8qi, v8qi)
-   v4hi __builtin_ia32_psubusw (v4hi, v4hi)
-   v4hi __builtin_ia32_pmullw (v4hi, v4hi)
-   v4hi __builtin_ia32_pmulhw (v4hi, v4hi)
-   di __builtin_ia32_pand (di, di)
-   di __builtin_ia32_pandn (di,di)
-   di __builtin_ia32_por (di, di)
-   di __builtin_ia32_pxor (di, di)
-   v8qi __builtin_ia32_pcmpeqb (v8qi, v8qi)
-   v4hi __builtin_ia32_pcmpeqw (v4hi, v4hi)
-   v2si __builtin_ia32_pcmpeqd (v2si, v2si)
-   v8qi __builtin_ia32_pcmpgtb (v8qi, v8qi)
-   v4hi __builtin_ia32_pcmpgtw (v4hi, v4hi)
-   v2si __builtin_ia32_pcmpgtd (v2si, v2si)
-   v8qi __builtin_ia32_punpckhbw (v8qi, v8qi)
-   v4hi __builtin_ia32_punpckhwd (v4hi, v4hi)
-   v2si __builtin_ia32_punpckhdq (v2si, v2si)
-   v8qi __builtin_ia32_punpcklbw (v8qi, v8qi)
-   v4hi __builtin_ia32_punpcklwd (v4hi, v4hi)
-   v2si __builtin_ia32_punpckldq (v2si, v2si)
-   v8qi __builtin_ia32_packsswb (v4hi, v4hi)
-   v4hi __builtin_ia32_packssdw (v2si, v2si)
-   v8qi __builtin_ia32_packuswb (v4hi, v4hi)
-     
-   v4hi __builtin_ia32_psllw (v4hi, v4hi)
-   v2si __builtin_ia32_pslld (v2si, v2si)
-   v1di __builtin_ia32_psllq (v1di, v1di)
-   v4hi __builtin_ia32_psrlw (v4hi, v4hi)
-   v2si __builtin_ia32_psrld (v2si, v2si)
-   v1di __builtin_ia32_psrlq (v1di, v1di)
-   v4hi __builtin_ia32_psraw (v4hi, v4hi)
-   v2si __builtin_ia32_psrad (v2si, v2si)
-   v4hi __builtin_ia32_psllwi (v4hi, int)
-   v2si __builtin_ia32_pslldi (v2si, int)
-   v1di __builtin_ia32_psllqi (v1di, int)
-   v4hi __builtin_ia32_psrlwi (v4hi, int)
-   v2si __builtin_ia32_psrldi (v2si, int)
-   v1di __builtin_ia32_psrlqi (v1di, int)
-   v4hi __builtin_ia32_psrawi (v4hi, int)
-   v2si __builtin_ia32_psradi (v2si, int)
-*/
-#endif
-
-#ifdef __SSE__
-/* SSE
-   v4hi __builtin_ia32_pmulhuw (v4hi, v4hi)
-   v8qi __builtin_ia32_pavgb (v8qi, v8qi)
-   v4hi __builtin_ia32_pavgw (v4hi, v4hi)
-   v1di __builtin_ia32_psadbw (v8qi, v8qi)
-   v8qi __builtin_ia32_pmaxub (v8qi, v8qi)
-   v4hi __builtin_ia32_pmaxsw (v4hi, v4hi)
-   v8qi __builtin_ia32_pminub (v8qi, v8qi)
-   v4hi __builtin_ia32_pminsw (v4hi, v4hi)
-   int __builtin_ia32_pextrw (v4hi, int)
-   v4hi __builtin_ia32_pinsrw (v4hi, int, int)
-   int __builtin_ia32_pmovmskb (v8qi)
-   void __builtin_ia32_maskmovq (v8qi, v8qi, char *)
-   void __builtin_ia32_movntq (di *, di)
-   void __builtin_ia32_sfence (void)
-
-   int __builtin_ia32_comieq (v4sf, v4sf)
-   int __builtin_ia32_comineq (v4sf, v4sf)
-   int __builtin_ia32_comilt (v4sf, v4sf)
-   int __builtin_ia32_comile (v4sf, v4sf)
-   int __builtin_ia32_comigt (v4sf, v4sf)
-   int __builtin_ia32_comige (v4sf, v4sf)
-   int __builtin_ia32_ucomieq (v4sf, v4sf)
-   int __builtin_ia32_ucomineq (v4sf, v4sf)
-   int __builtin_ia32_ucomilt (v4sf, v4sf)
-   int __builtin_ia32_ucomile (v4sf, v4sf)
-   int __builtin_ia32_ucomigt (v4sf, v4sf)
-   int __builtin_ia32_ucomige (v4sf, v4sf)
-   v4sf __builtin_ia32_addps (v4sf, v4sf)
-   v4sf __builtin_ia32_subps (v4sf, v4sf)
-   v4sf __builtin_ia32_mulps (v4sf, v4sf)
-   v4sf __builtin_ia32_divps (v4sf, v4sf)
-   v4sf __builtin_ia32_addss (v4sf, v4sf)
-   v4sf __builtin_ia32_subss (v4sf, v4sf)
-   v4sf __builtin_ia32_mulss (v4sf, v4sf)
-   v4sf __builtin_ia32_divss (v4sf, v4sf)
-   v4si __builtin_ia32_cmpeqps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpltps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpleps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpgtps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpgeps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpunordps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpneqps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpnltps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpnleps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpngtps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpngeps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpordps (v4sf, v4sf)
-   v4si __builtin_ia32_cmpeqss (v4sf, v4sf)
-   v4si __builtin_ia32_cmpltss (v4sf, v4sf)
-   v4si __builtin_ia32_cmpless (v4sf, v4sf)
-   v4si __builtin_ia32_cmpunordss (v4sf, v4sf)
-   v4si __builtin_ia32_cmpneqss (v4sf, v4sf)
-   v4si __builtin_ia32_cmpnlts (v4sf, v4sf)
-   v4si __builtin_ia32_cmpnless (v4sf, v4sf)
-   v4si __builtin_ia32_cmpordss (v4sf, v4sf)
-   v4sf __builtin_ia32_maxps (v4sf, v4sf)
-   v4sf __builtin_ia32_maxss (v4sf, v4sf)
-   v4sf __builtin_ia32_minps (v4sf, v4sf)
-   v4sf __builtin_ia32_minss (v4sf, v4sf)
-   v4sf __builtin_ia32_andps (v4sf, v4sf)
-   v4sf __builtin_ia32_andnps (v4sf, v4sf)
-   v4sf __builtin_ia32_orps (v4sf, v4sf)
-   v4sf __builtin_ia32_xorps (v4sf, v4sf)
-   v4sf __builtin_ia32_movss (v4sf, v4sf)
-   v4sf __builtin_ia32_movhlps (v4sf, v4sf)
-   v4sf __builtin_ia32_movlhps (v4sf, v4sf)
-   v4sf __builtin_ia32_unpckhps (v4sf, v4sf)
-   v4sf __builtin_ia32_unpcklps (v4sf, v4sf)
-   v4sf __builtin_ia32_cvtpi2ps (v4sf, v2si)
-   v4sf __builtin_ia32_cvtsi2ss (v4sf, int)
-   v2si __builtin_ia32_cvtps2pi (v4sf)
-   int __builtin_ia32_cvtss2si (v4sf)
-   v2si __builtin_ia32_cvttps2pi (v4sf)
-   int __builtin_ia32_cvttss2si (v4sf)
-   v4sf __builtin_ia32_rcpps (v4sf)
-   v4sf __builtin_ia32_rsqrtps (v4sf)
-   v4sf __builtin_ia32_sqrtps (v4sf)
-   v4sf __builtin_ia32_rcpss (v4sf)
-   v4sf __builtin_ia32_rsqrtss (v4sf)
-   v4sf __builtin_ia32_sqrtss (v4sf)
-   v4sf __builtin_ia32_shufps (v4sf, v4sf, int)
-*/
-static __inline
-v128_u8_t op_SHUFPS ( v128_u8_t vin1, v128_u8_t vin2, const int mask )
-    __attribute__ ((always_inline));
-
-static __inline
-v128_u8_t op_SHUFPS (v128_u8_t vin1, v128_u8_t vin2, const int mask)
-{
-    return ( v128_u8_t ) __builtin_ia32_shufps ((v128_f_t)vin1, (v128_f_t)vin2, mask);
-}
-
- /*
-   void __builtin_ia32_movntps (float *, v4sf)
-   int __builtin_ia32_movmskps (v4sf)
-
-v4sf __builtin_ia32_loadaps (float *)
-Generates the movaps machine instruction as a load from memory. 
-void __builtin_ia32_storeaps (float *, v4sf)
-Generates the movaps machine instruction as a store to memory. 
-v4sf __builtin_ia32_loadups (float *)
-Generates the movups machine instruction as a load from memory. 
-void __builtin_ia32_storeups (float *, v4sf)
-Generates the movups machine instruction as a store to memory. 
-v4sf __builtin_ia32_loadsss (float *)
-Generates the movss machine instruction as a load from memory. 
-void __builtin_ia32_storess (float *, v4sf)
-Generates the movss machine instruction as a store to memory. 
-v4sf __builtin_ia32_loadhps (v4sf, const v2sf *)
-Generates the movhps machine instruction as a load from memory. 
-v4sf __builtin_ia32_loadlps (v4sf, const v2sf *)
-Generates the movlps machine instruction as a load from memory 
-void __builtin_ia32_storehps (v2sf *, v4sf)
-Generates the movhps machine instruction as a store to memory. 
-void __builtin_ia32_storelps (v2sf *, v4sf)
-Generates the movlps machine instruction as a store to memory.
-*/
-#endif
-
-#ifdef __SSE2__
-/* sse2
-     int __builtin_ia32_comisdeq (v2df, v2df)
-     int __builtin_ia32_comisdlt (v2df, v2df)
-     int __builtin_ia32_comisdle (v2df, v2df)
-     int __builtin_ia32_comisdgt (v2df, v2df)
-     int __builtin_ia32_comisdge (v2df, v2df)
-     int __builtin_ia32_comisdneq (v2df, v2df)
-     int __builtin_ia32_ucomisdeq (v2df, v2df)
-     int __builtin_ia32_ucomisdlt (v2df, v2df)
-     int __builtin_ia32_ucomisdle (v2df, v2df)
-     int __builtin_ia32_ucomisdgt (v2df, v2df)
-     int __builtin_ia32_ucomisdge (v2df, v2df)
-     int __builtin_ia32_ucomisdneq (v2df, v2df)
-     v2df __builtin_ia32_cmpeqpd (v2df, v2df)
-     v2df __builtin_ia32_cmpltpd (v2df, v2df)
-     v2df __builtin_ia32_cmplepd (v2df, v2df)
-     v2df __builtin_ia32_cmpgtpd (v2df, v2df)
-     v2df __builtin_ia32_cmpgepd (v2df, v2df)
-     v2df __builtin_ia32_cmpunordpd (v2df, v2df)
-     v2df __builtin_ia32_cmpneqpd (v2df, v2df)
-     v2df __builtin_ia32_cmpnltpd (v2df, v2df)
-     v2df __builtin_ia32_cmpnlepd (v2df, v2df)
-     v2df __builtin_ia32_cmpngtpd (v2df, v2df)
-     v2df __builtin_ia32_cmpngepd (v2df, v2df)
-     v2df __builtin_ia32_cmpordpd (v2df, v2df)
-     v2df __builtin_ia32_cmpeqsd (v2df, v2df)
-     v2df __builtin_ia32_cmpltsd (v2df, v2df)
-     v2df __builtin_ia32_cmplesd (v2df, v2df)
-     v2df __builtin_ia32_cmpunordsd (v2df, v2df)
-     v2df __builtin_ia32_cmpneqsd (v2df, v2df)
-     v2df __builtin_ia32_cmpnltsd (v2df, v2df)
-     v2df __builtin_ia32_cmpnlesd (v2df, v2df)
-     v2df __builtin_ia32_cmpordsd (v2df, v2df)
-     v2di __builtin_ia32_paddq (v2di, v2di)
-     v2di __builtin_ia32_psubq (v2di, v2di)
-     v2df __builtin_ia32_addpd (v2df, v2df)
-     v2df __builtin_ia32_subpd (v2df, v2df)
-     v2df __builtin_ia32_mulpd (v2df, v2df)
-     v2df __builtin_ia32_divpd (v2df, v2df)
-     v2df __builtin_ia32_addsd (v2df, v2df)
-     v2df __builtin_ia32_subsd (v2df, v2df)
-     v2df __builtin_ia32_mulsd (v2df, v2df)
-     v2df __builtin_ia32_divsd (v2df, v2df)
-     v2df __builtin_ia32_minpd (v2df, v2df)
-     v2df __builtin_ia32_maxpd (v2df, v2df)
-     v2df __builtin_ia32_minsd (v2df, v2df)
-     v2df __builtin_ia32_maxsd (v2df, v2df)
-     v2df __builtin_ia32_andpd (v2df, v2df)
-     v2df __builtin_ia32_andnpd (v2df, v2df)
-     v2df __builtin_ia32_orpd (v2df, v2df)
-     v2df __builtin_ia32_xorpd (v2df, v2df)
-     v2df __builtin_ia32_movsd (v2df, v2df)
-     v2df __builtin_ia32_unpckhpd (v2df, v2df)
-     v2df __builtin_ia32_unpcklpd (v2df, v2df)
-     v16qi __builtin_ia32_paddb128 (v16qi, v16qi)
-     v8hi __builtin_ia32_paddw128 (v8hi, v8hi)
-     v4si __builtin_ia32_paddd128 (v4si, v4si)
-     v2di __builtin_ia32_paddq128 (v2di, v2di)
-     v16qi __builtin_ia32_psubb128 (v16qi, v16qi)
-     v8hi __builtin_ia32_psubw128 (v8hi, v8hi)
-     v4si __builtin_ia32_psubd128 (v4si, v4si)
-     v2di __builtin_ia32_psubq128 (v2di, v2di)
-     v8hi __builtin_ia32_pmullw128 (v8hi, v8hi)
-     v8hi __builtin_ia32_pmulhw128 (v8hi, v8hi)
-     v2di __builtin_ia32_pand128 (v2di, v2di)
-     v2di __builtin_ia32_pandn128 (v2di, v2di)
-     v2di __builtin_ia32_por128 (v2di, v2di)
-     v2di __builtin_ia32_pxor128 (v2di, v2di)
-     v16qi __builtin_ia32_pavgb128 (v16qi, v16qi)
-     v8hi __builtin_ia32_pavgw128 (v8hi, v8hi)
-     v16qi __builtin_ia32_pcmpeqb128 (v16qi, v16qi)
-     v8hi __builtin_ia32_pcmpeqw128 (v8hi, v8hi)
-     v4si __builtin_ia32_pcmpeqd128 (v4si, v4si)
-     v16qi __builtin_ia32_pcmpgtb128 (v16qi, v16qi)
-     v8hi __builtin_ia32_pcmpgtw128 (v8hi, v8hi)
-     v4si __builtin_ia32_pcmpgtd128 (v4si, v4si)
-     v16qi __builtin_ia32_pmaxub128 (v16qi, v16qi)
-     v8hi __builtin_ia32_pmaxsw128 (v8hi, v8hi)
-     v16qi __builtin_ia32_pminub128 (v16qi, v16qi)
-     v8hi __builtin_ia32_pminsw128 (v8hi, v8hi)
-     v16qi __builtin_ia32_punpckhbw128 (v16qi, v16qi)
-     v8hi __builtin_ia32_punpckhwd128 (v8hi, v8hi)
-     v4si __builtin_ia32_punpckhdq128 (v4si, v4si)
-     v2di __builtin_ia32_punpckhqdq128 (v2di, v2di)
-     v16qi __builtin_ia32_punpcklbw128 (v16qi, v16qi)
-     v8hi __builtin_ia32_punpcklwd128 (v8hi, v8hi)
-     v4si __builtin_ia32_punpckldq128 (v4si, v4si)
-     v2di __builtin_ia32_punpcklqdq128 (v2di, v2di)
-     v16qi __builtin_ia32_packsswb128 (v8hi, v8hi)
-     v8hi __builtin_ia32_packssdw128 (v4si, v4si)
-     v16qi __builtin_ia32_packuswb128 (v8hi, v8hi)
-     v8hi __builtin_ia32_pmulhuw128 (v8hi, v8hi)
-     void __builtin_ia32_maskmovdqu (v16qi, v16qi)
-     v2df __builtin_ia32_loadupd (double *)
-     void __builtin_ia32_storeupd (double *, v2df)
-     v2df __builtin_ia32_loadhpd (v2df, double const *)
-     v2df __builtin_ia32_loadlpd (v2df, double const *)
-     int __builtin_ia32_movmskpd (v2df)
-     int __builtin_ia32_pmovmskb128 (v16qi)
-     void __builtin_ia32_movnti (int *, int)
-     void __builtin_ia32_movntpd (double *, v2df)
-     void __builtin_ia32_movntdq (v2df *, v2df)
-     v4si __builtin_ia32_pshufd (v4si, int)
-     v8hi __builtin_ia32_pshuflw (v8hi, int)
-     v8hi __builtin_ia32_pshufhw (v8hi, int)
-     v2di __builtin_ia32_psadbw128 (v16qi, v16qi)
-     v2df __builtin_ia32_sqrtpd (v2df)
-     v2df __builtin_ia32_sqrtsd (v2df)
-     v2df __builtin_ia32_shufpd (v2df, v2df, int)
-*/
-static __inline
-v128_u8_t op_SHUFPD (v128_u8_t vin1, v128_u8_t vin2, const int mask)
-    __attribute__ ((always_inline));
-
-static __inline
-v128_u8_t op_SHUFPD (v128_u8_t vin1, v128_u8_t vin2, const int mask)
-{
-    return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
-}
-
-/*
-     v2df __builtin_ia32_cvtdq2pd (v4si)
-     v4sf __builtin_ia32_cvtdq2ps (v4si)
-     v4si __builtin_ia32_cvtpd2dq (v2df)
-     v2si __builtin_ia32_cvtpd2pi (v2df)
-     v4sf __builtin_ia32_cvtpd2ps (v2df)
-     v4si __builtin_ia32_cvttpd2dq (v2df)
-     v2si __builtin_ia32_cvttpd2pi (v2df)
-     v2df __builtin_ia32_cvtpi2pd (v2si)
-     int __builtin_ia32_cvtsd2si (v2df)
-     int __builtin_ia32_cvttsd2si (v2df)
-     long long __builtin_ia32_cvtsd2si64 (v2df)
-     long long __builtin_ia32_cvttsd2si64 (v2df)
-     v4si __builtin_ia32_cvtps2dq (v4sf)
-     v2df __builtin_ia32_cvtps2pd (v4sf)
-     v4si __builtin_ia32_cvttps2dq (v4sf)
-     v2df __builtin_ia32_cvtsi2sd (v2df, int)
-     v2df __builtin_ia32_cvtsi642sd (v2df, long long)
-     v4sf __builtin_ia32_cvtsd2ss (v4sf, v2df)
-     v2df __builtin_ia32_cvtss2sd (v2df, v4sf)
-     void __builtin_ia32_clflush (const void *)
-     void __builtin_ia32_lfence (void)
-     void __builtin_ia32_mfence (void)
-     v16qi __builtin_ia32_loaddqu (const char *)
-     void __builtin_ia32_storedqu (char *, v16qi)
-     v1di __builtin_ia32_pmuludq (v2si, v2si)
-     v2di __builtin_ia32_pmuludq128 (v4si, v4si)
-     v8hi __builtin_ia32_psllw128 (v8hi, v8hi)
-     v4si __builtin_ia32_pslld128 (v4si, v4si)
-     v2di __builtin_ia32_psllq128 (v2di, v2di)
-     v8hi __builtin_ia32_psrlw128 (v8hi, v8hi)
-     v4si __builtin_ia32_psrld128 (v4si, v4si)
-     v2di __builtin_ia32_psrlq128 (v2di, v2di)
-     v8hi __builtin_ia32_psraw128 (v8hi, v8hi)
-     v4si __builtin_ia32_psrad128 (v4si, v4si)
-     v2di __builtin_ia32_pslldqi128 (v2di, int)
-     v8hi __builtin_ia32_psllwi128 (v8hi, int)
-     v4si __builtin_ia32_pslldi128 (v4si, int)
-*/
-
-static __inline
-v128_u8_t op_PSLLDI128 ( v128_u8_t vin, const int bit_count )
-    __attribute__ ((always_inline));
-
-static __inline
-v128_u8_t op_PSLLDI128 (v128_u8_t vin, const int bit_count)
-{
-    return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
-}
-
-/*
-     v2di __builtin_ia32_psllqi128 (v2di, int)
-     v2di __builtin_ia32_psrldqi128 (v2di, int)
-     v8hi __builtin_ia32_psrlwi128 (v8hi, int)
-     v4si __builtin_ia32_psrldi128 (v4si, int)
-*/
-
-static __inline
-v128_u8_t op_PSRLDI128 ( v128_u8_t vin, const int bit_count )
-    __attribute__ ((always_inline));
-
-static __inline
-v128_u8_t op_PSRLDI128 (v128_u8_t vin, const int bit_count)
-{
-    return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
-}
-
-/*
-     v2di __builtin_ia32_psrlqi128 (v2di, int)
-     v8hi __builtin_ia32_psrawi128 (v8hi, int)
-     v4si __builtin_ia32_psradi128 (v4si, int)
-     v4si __builtin_ia32_pmaddwd128 (v8hi, v8hi)
-     v2di __builtin_ia32_movq128 (v2di)
-*/
-static __inline__
-v128_u8_t op_PSHUFD128 ( v128_u8_t vin, const int mask )
-    __attribute__ ((always_inline));
-     
-static __inline__
-v128_u8_t op_PSHUFD128 (v128_u8_t vin, const int mask)
-{
-    return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
-}
-#endif
-
-#ifdef __SSE3__
-/* sse3
-     v2df __builtin_ia32_addsubpd (v2df, v2df)
-     v4sf __builtin_ia32_addsubps (v4sf, v4sf)
-     v2df __builtin_ia32_haddpd (v2df, v2df)
-     v4sf __builtin_ia32_haddps (v4sf, v4sf)
-     v2df __builtin_ia32_hsubpd (v2df, v2df)
-     v4sf __builtin_ia32_hsubps (v4sf, v4sf)
-     v16qi __builtin_ia32_lddqu (char const *)
-     void __builtin_ia32_monitor (void *, unsigned int, unsigned int)
-     v2df __builtin_ia32_movddup (v2df)
-     v4sf __builtin_ia32_movshdup (v4sf)
-     v4sf __builtin_ia32_movsldup (v4sf)
-     void __builtin_ia32_mwait (unsigned int, unsigned int)
-
-v2df __builtin_ia32_loadddup (double const *)
-
-*/
-
-#endif
-
-#ifdef __SSSE3__
-
-/* ssse3
- *
- * The following built-in functions are available when -mssse3 is used. All of
- * them generate the machine instruction that is part of the name with MMX
- * registers.
- *
- * 
-     v2si __builtin_ia32_phaddd (v2si, v2si)
-     v4hi __builtin_ia32_phaddw (v4hi, v4hi)
-     v4hi __builtin_ia32_phaddsw (v4hi, v4hi)
-     v2si __builtin_ia32_phsubd (v2si, v2si)
-     v4hi __builtin_ia32_phsubw (v4hi, v4hi)
-     v4hi __builtin_ia32_phsubsw (v4hi, v4hi)
-     v4hi __builtin_ia32_pmaddubsw (v8qi, v8qi)
-     v4hi __builtin_ia32_pmulhrsw (v4hi, v4hi)
-     v8qi __builtin_ia32_pshufb (v8qi, v8qi)
-     v8qi __builtin_ia32_psignb (v8qi, v8qi)
-     v2si __builtin_ia32_psignd (v2si, v2si)
-     v4hi __builtin_ia32_psignw (v4hi, v4hi)
-     v1di __builtin_ia32_palignr (v1di, v1di, int)
-     v8qi __builtin_ia32_pabsb (v8qi)
-     v2si __builtin_ia32_pabsd (v2si)
-     v4hi __builtin_ia32_pabsw (v4hi)
-The following built-in functions are available when -mssse3 is used.
-All of them generate the machine instruction that is part of the name
-with SSE registers.
-
-     v4si __builtin_ia32_phaddd128 (v4si, v4si)
-     v8hi __builtin_ia32_phaddw128 (v8hi, v8hi)
-     v8hi __builtin_ia32_phaddsw128 (v8hi, v8hi)
-     v4si __builtin_ia32_phsubd128 (v4si, v4si)
-     v8hi __builtin_ia32_phsubw128 (v8hi, v8hi)
-     v8hi __builtin_ia32_phsubsw128 (v8hi, v8hi)
-     v8hi __builtin_ia32_pmaddubsw128 (v16qi, v16qi)
-     v8hi __builtin_ia32_pmulhrsw128 (v8hi, v8hi)
-+    v16qi __builtin_ia32_pshufb128 (v16qi, v16qi)
-     v16qi __builtin_ia32_psignb128 (v16qi, v16qi)
-     v4si __builtin_ia32_psignd128 (v4si, v4si)
-     v8hi __builtin_ia32_psignw128 (v8hi, v8hi)
-     v2di __builtin_ia32_palignr128 (v2di, v2di, int)
-     v16qi __builtin_ia32_pabsb128 (v16qi)
-     v4si __builtin_ia32_pabsd128 (v4si)
-     v8hi __builtin_ia32_pabsw128 (v8hi)
- */
-
-static __inline__
-v128_u8_t op_PSHUFB128 (register v128_u8_t vin, register const v128_u8_t vtab)
-    __attribute__ ((always_inline));
-
-static __inline__
-v128_u8_t op_PSHUFB128 (register v128_u8_t vin, register const v128_u8_t vtab)
-{
-    return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
-}
-#endif
-
-#ifdef __SSE4_1__
-/* sse4.1
-The following built-in functions are available when -msse4.1 is used.
-All of them generate the machine instruction that is part of the name.
-
-     v2df __builtin_ia32_blendpd (v2df, v2df, const int)
-     v4sf __builtin_ia32_blendps (v4sf, v4sf, const int)
-     v2df __builtin_ia32_blendvpd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_blendvps (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_dppd (v2df, v2df, const int)
-     v4sf __builtin_ia32_dpps (v4sf, v4sf, const int)
-     v4sf __builtin_ia32_insertps128 (v4sf, v4sf, const int)
-     v2di __builtin_ia32_movntdqa (v2di *);
-     v16qi __builtin_ia32_mpsadbw128 (v16qi, v16qi, const int)
-     v8hi __builtin_ia32_packusdw128 (v4si, v4si)
-     v16qi __builtin_ia32_pblendvb128 (v16qi, v16qi, v16qi)
-     v8hi __builtin_ia32_pblendw128 (v8hi, v8hi, const int)
-     v2di __builtin_ia32_pcmpeqq (v2di, v2di)
-     v8hi __builtin_ia32_phminposuw128 (v8hi)
-     v16qi __builtin_ia32_pmaxsb128 (v16qi, v16qi)
-     v4si __builtin_ia32_pmaxsd128 (v4si, v4si)
-     v4si __builtin_ia32_pmaxud128 (v4si, v4si)
-     v8hi __builtin_ia32_pmaxuw128 (v8hi, v8hi)
-     v16qi __builtin_ia32_pminsb128 (v16qi, v16qi)
-     v4si __builtin_ia32_pminsd128 (v4si, v4si)
-     v4si __builtin_ia32_pminud128 (v4si, v4si)
-     v8hi __builtin_ia32_pminuw128 (v8hi, v8hi)
-     v4si __builtin_ia32_pmovsxbd128 (v16qi)
-     v2di __builtin_ia32_pmovsxbq128 (v16qi)
-     v8hi __builtin_ia32_pmovsxbw128 (v16qi)
-     v2di __builtin_ia32_pmovsxdq128 (v4si)
-     v4si __builtin_ia32_pmovsxwd128 (v8hi)
-     v2di __builtin_ia32_pmovsxwq128 (v8hi)
-     v4si __builtin_ia32_pmovzxbd128 (v16qi)
-     v2di __builtin_ia32_pmovzxbq128 (v16qi)
-     v8hi __builtin_ia32_pmovzxbw128 (v16qi)
-     v2di __builtin_ia32_pmovzxdq128 (v4si)
-     v4si __builtin_ia32_pmovzxwd128 (v8hi)
-     v2di __builtin_ia32_pmovzxwq128 (v8hi)
-     v2di __builtin_ia32_pmuldq128 (v4si, v4si)
-     v4si __builtin_ia32_pmulld128 (v4si, v4si)
-     int __builtin_ia32_ptestc128 (v2di, v2di)
-     int __builtin_ia32_ptestnzc128 (v2di, v2di)
-     int __builtin_ia32_ptestz128 (v2di, v2di)
-     v2df __builtin_ia32_roundpd (v2df, const int)
-     v4sf __builtin_ia32_roundps (v4sf, const int)
-     v2df __builtin_ia32_roundsd (v2df, v2df, const int)
-     v4sf __builtin_ia32_roundss (v4sf, v4sf, const int)
-The following built-in functions are available when -msse4.1 is used.
-
-v4sf __builtin_ia32_vec_set_v4sf (v4sf, float, const int)
-Generates the insertps machine instruction. 
-int __builtin_ia32_vec_ext_v16qi (v16qi, const int)
-Generates the pextrb machine instruction. 
-v16qi __builtin_ia32_vec_set_v16qi (v16qi, int, const int)
-Generates the pinsrb machine instruction. 
-v4si __builtin_ia32_vec_set_v4si (v4si, int, const int)
-Generates the pinsrd machine instruction. 
-*/
-static __inline__
-v128_u8_t op_PINSRUD (register v128_u8_t vin, uint32_t ii, const int off)
-    __attribute__ ((always_inline));
-static __inline__
-v128_u8_t op_PINSRUD (register v128_u8_t vin, uint32_t ii, const int off)
-{
-    return (v128_u8_t)__builtin_ia32_vec_set_v4si ((v128_i32_t)vin, ii, off);
-}
-/*
-v2di __builtin_ia32_vec_set_v2di (v2di, long long, const int)
-Generates the pinsrq machine instruction in 64bit mode.
-The following built-in functions are changed to generate new SSE4.1 instructions when -msse4.1 is used.
-
-float __builtin_ia32_vec_ext_v4sf (v4sf, const int)
-Generates the extractps machine instruction. 
-int __builtin_ia32_vec_ext_v4si (v4si, const int)
-Generates the pextrd machine instruction. 
-long long __builtin_ia32_vec_ext_v2di (v2di, const int)
-Generates the pextrq machine instruction in 64bit mode.
- */
-
-#endif
-
-#ifdef __SSE4_2__
-
-/* sse4.2
-The following built-in functions are available when -msse4.2 is used.
-All of them generate the machine instruction that is part of the name.
-
-     v16qi __builtin_ia32_pcmpestrm128 (v16qi, int, v16qi, int, const int)
-     int __builtin_ia32_pcmpestri128 (v16qi, int, v16qi, int, const int)
-     int __builtin_ia32_pcmpestria128 (v16qi, int, v16qi, int, const int)
-     int __builtin_ia32_pcmpestric128 (v16qi, int, v16qi, int, const int)
-     int __builtin_ia32_pcmpestrio128 (v16qi, int, v16qi, int, const int)
-     int __builtin_ia32_pcmpestris128 (v16qi, int, v16qi, int, const int)
-     int __builtin_ia32_pcmpestriz128 (v16qi, int, v16qi, int, const int)
-     v16qi __builtin_ia32_pcmpistrm128 (v16qi, v16qi, const int)
-     int __builtin_ia32_pcmpistri128 (v16qi, v16qi, const int)
-     int __builtin_ia32_pcmpistria128 (v16qi, v16qi, const int)
-     int __builtin_ia32_pcmpistric128 (v16qi, v16qi, const int)
-     int __builtin_ia32_pcmpistrio128 (v16qi, v16qi, const int)
-     int __builtin_ia32_pcmpistris128 (v16qi, v16qi, const int)
-     int __builtin_ia32_pcmpistriz128 (v16qi, v16qi, const int)
-     v2di __builtin_ia32_pcmpgtq (v2di, v2di)
-The following built-in functions are available when -msse4.2 is used.
-
-unsigned int __builtin_ia32_crc32qi (unsigned int, unsigned char)
-Generates the crc32b machine instruction. 
-unsigned int __builtin_ia32_crc32hi (unsigned int, unsigned short)
-Generates the crc32w machine instruction. 
-unsigned int __builtin_ia32_crc32si (unsigned int, unsigned int)
-Generates the crc32l machine instruction. 
-unsigned long long __builtin_ia32_crc32di (unsigned long long, unsigned long long)
-Generates the crc32q machine instruction.
-The following built-in functions are changed to generate new SSE4.2 instructions when -msse4.2 is used.
-
-int __builtin_popcount (unsigned int)
-Generates the popcntl machine instruction. 
-int __builtin_popcountl (unsigned long)
-Generates the popcntl or popcntq machine instruction, depending on the size of unsigned long. 
-int __builtin_popcountll (unsigned long long)
-Generates the popcntq machine instruction.
-
-*/
-
-#endif
-
-/* avx
-The following built-in functions are available when -mavx is used.
-All of them generate the machine instruction that is part of the name.
-
-     v4df __builtin_ia32_addpd256 (v4df,v4df)
-     v8sf __builtin_ia32_addps256 (v8sf,v8sf)
-     v4df __builtin_ia32_addsubpd256 (v4df,v4df)
-     v8sf __builtin_ia32_addsubps256 (v8sf,v8sf)
-     v4df __builtin_ia32_andnpd256 (v4df,v4df)
-     v8sf __builtin_ia32_andnps256 (v8sf,v8sf)
-     v4df __builtin_ia32_andpd256 (v4df,v4df)
-     v8sf __builtin_ia32_andps256 (v8sf,v8sf)
-     v4df __builtin_ia32_blendpd256 (v4df,v4df,int)
-     v8sf __builtin_ia32_blendps256 (v8sf,v8sf,int)
-     v4df __builtin_ia32_blendvpd256 (v4df,v4df,v4df)
-     v8sf __builtin_ia32_blendvps256 (v8sf,v8sf,v8sf)
-     v2df __builtin_ia32_cmppd (v2df,v2df,int)
-     v4df __builtin_ia32_cmppd256 (v4df,v4df,int)
-     v4sf __builtin_ia32_cmpps (v4sf,v4sf,int)
-     v8sf __builtin_ia32_cmpps256 (v8sf,v8sf,int)
-     v2df __builtin_ia32_cmpsd (v2df,v2df,int)
-     v4sf __builtin_ia32_cmpss (v4sf,v4sf,int)
-     v4df __builtin_ia32_cvtdq2pd256 (v4si)
-     v8sf __builtin_ia32_cvtdq2ps256 (v8si)
-     v4si __builtin_ia32_cvtpd2dq256 (v4df)
-     v4sf __builtin_ia32_cvtpd2ps256 (v4df)
-     v8si __builtin_ia32_cvtps2dq256 (v8sf)
-     v4df __builtin_ia32_cvtps2pd256 (v4sf)
-     v4si __builtin_ia32_cvttpd2dq256 (v4df)
-     v8si __builtin_ia32_cvttps2dq256 (v8sf)
-     v4df __builtin_ia32_divpd256 (v4df,v4df)
-     v8sf __builtin_ia32_divps256 (v8sf,v8sf)
-     v8sf __builtin_ia32_dpps256 (v8sf,v8sf,int)
-     v4df __builtin_ia32_haddpd256 (v4df,v4df)
-     v8sf __builtin_ia32_haddps256 (v8sf,v8sf)
-     v4df __builtin_ia32_hsubpd256 (v4df,v4df)
-     v8sf __builtin_ia32_hsubps256 (v8sf,v8sf)
-     v32qi __builtin_ia32_lddqu256 (pcchar)
-     v32qi __builtin_ia32_loaddqu256 (pcchar)
-     v4df __builtin_ia32_loadupd256 (pcdouble)
-     v8sf __builtin_ia32_loadups256 (pcfloat)
-     v2df __builtin_ia32_maskloadpd (pcv2df,v2df)
-     v4df __builtin_ia32_maskloadpd256 (pcv4df,v4df)
-     v4sf __builtin_ia32_maskloadps (pcv4sf,v4sf)
-     v8sf __builtin_ia32_maskloadps256 (pcv8sf,v8sf)
-     void __builtin_ia32_maskstorepd (pv2df,v2df,v2df)
-     void __builtin_ia32_maskstorepd256 (pv4df,v4df,v4df)
-     void __builtin_ia32_maskstoreps (pv4sf,v4sf,v4sf)
-     void __builtin_ia32_maskstoreps256 (pv8sf,v8sf,v8sf)
-     v4df __builtin_ia32_maxpd256 (v4df,v4df)
-     v8sf __builtin_ia32_maxps256 (v8sf,v8sf)
-     v4df __builtin_ia32_minpd256 (v4df,v4df)
-     v8sf __builtin_ia32_minps256 (v8sf,v8sf)
-     v4df __builtin_ia32_movddup256 (v4df)
-     int __builtin_ia32_movmskpd256 (v4df)
-     int __builtin_ia32_movmskps256 (v8sf)
-     v8sf __builtin_ia32_movshdup256 (v8sf)
-     v8sf __builtin_ia32_movsldup256 (v8sf)
-     v4df __builtin_ia32_mulpd256 (v4df,v4df)
-     v8sf __builtin_ia32_mulps256 (v8sf,v8sf)
-     v4df __builtin_ia32_orpd256 (v4df,v4df)
-     v8sf __builtin_ia32_orps256 (v8sf,v8sf)
-     v2df __builtin_ia32_pd_pd256 (v4df)
-     v4df __builtin_ia32_pd256_pd (v2df)
-     v4sf __builtin_ia32_ps_ps256 (v8sf)
-     v8sf __builtin_ia32_ps256_ps (v4sf)
-     int __builtin_ia32_ptestc256 (v4di,v4di,ptest)
-     int __builtin_ia32_ptestnzc256 (v4di,v4di,ptest)
-     int __builtin_ia32_ptestz256 (v4di,v4di,ptest)
-     v8sf __builtin_ia32_rcpps256 (v8sf)
-     v4df __builtin_ia32_roundpd256 (v4df,int)
-     v8sf __builtin_ia32_roundps256 (v8sf,int)
-     v8sf __builtin_ia32_rsqrtps_nr256 (v8sf)
-     v8sf __builtin_ia32_rsqrtps256 (v8sf)
-     v4df __builtin_ia32_shufpd256 (v4df,v4df,int)
-     v8sf __builtin_ia32_shufps256 (v8sf,v8sf,int)
-     v4si __builtin_ia32_si_si256 (v8si)
-     v8si __builtin_ia32_si256_si (v4si)
-     v4df __builtin_ia32_sqrtpd256 (v4df)
-     v8sf __builtin_ia32_sqrtps_nr256 (v8sf)
-     v8sf __builtin_ia32_sqrtps256 (v8sf)
-     void __builtin_ia32_storedqu256 (pchar,v32qi)
-     void __builtin_ia32_storeupd256 (pdouble,v4df)
-     void __builtin_ia32_storeups256 (pfloat,v8sf)
-     v4df __builtin_ia32_subpd256 (v4df,v4df)
-     v8sf __builtin_ia32_subps256 (v8sf,v8sf)
-     v4df __builtin_ia32_unpckhpd256 (v4df,v4df)
-     v8sf __builtin_ia32_unpckhps256 (v8sf,v8sf)
-     v4df __builtin_ia32_unpcklpd256 (v4df,v4df)
-     v8sf __builtin_ia32_unpcklps256 (v8sf,v8sf)
-     v4df __builtin_ia32_vbroadcastf128_pd256 (pcv2df)
-     v8sf __builtin_ia32_vbroadcastf128_ps256 (pcv4sf)
-     v4df __builtin_ia32_vbroadcastsd256 (pcdouble)
-     v4sf __builtin_ia32_vbroadcastss (pcfloat)
-     v8sf __builtin_ia32_vbroadcastss256 (pcfloat)
-     v2df __builtin_ia32_vextractf128_pd256 (v4df,int)
-     v4sf __builtin_ia32_vextractf128_ps256 (v8sf,int)
-     v4si __builtin_ia32_vextractf128_si256 (v8si,int)
-     v4df __builtin_ia32_vinsertf128_pd256 (v4df,v2df,int)
-     v8sf __builtin_ia32_vinsertf128_ps256 (v8sf,v4sf,int)
-     v8si __builtin_ia32_vinsertf128_si256 (v8si,v4si,int)
-     v4df __builtin_ia32_vperm2f128_pd256 (v4df,v4df,int)
-     v8sf __builtin_ia32_vperm2f128_ps256 (v8sf,v8sf,int)
-     v8si __builtin_ia32_vperm2f128_si256 (v8si,v8si,int)
-     v2df __builtin_ia32_vpermil2pd (v2df,v2df,v2di,int)
-     v4df __builtin_ia32_vpermil2pd256 (v4df,v4df,v4di,int)
-     v4sf __builtin_ia32_vpermil2ps (v4sf,v4sf,v4si,int)
-     v8sf __builtin_ia32_vpermil2ps256 (v8sf,v8sf,v8si,int)
-     v2df __builtin_ia32_vpermilpd (v2df,int)
-     v4df __builtin_ia32_vpermilpd256 (v4df,int)
-     v4sf __builtin_ia32_vpermilps (v4sf,int)
-     v8sf __builtin_ia32_vpermilps256 (v8sf,int)
-     v2df __builtin_ia32_vpermilvarpd (v2df,v2di)
-     v4df __builtin_ia32_vpermilvarpd256 (v4df,v4di)
-     v4sf __builtin_ia32_vpermilvarps (v4sf,v4si)
-     v8sf __builtin_ia32_vpermilvarps256 (v8sf,v8si)
-     int __builtin_ia32_vtestcpd (v2df,v2df,ptest)
-     int __builtin_ia32_vtestcpd256 (v4df,v4df,ptest)
-     int __builtin_ia32_vtestcps (v4sf,v4sf,ptest)
-     int __builtin_ia32_vtestcps256 (v8sf,v8sf,ptest)
-     int __builtin_ia32_vtestnzcpd (v2df,v2df,ptest)
-     int __builtin_ia32_vtestnzcpd256 (v4df,v4df,ptest)
-     int __builtin_ia32_vtestnzcps (v4sf,v4sf,ptest)
-     int __builtin_ia32_vtestnzcps256 (v8sf,v8sf,ptest)
-     int __builtin_ia32_vtestzpd (v2df,v2df,ptest)
-     int __builtin_ia32_vtestzpd256 (v4df,v4df,ptest)
-     int __builtin_ia32_vtestzps (v4sf,v4sf,ptest)
-     int __builtin_ia32_vtestzps256 (v8sf,v8sf,ptest)
-     void __builtin_ia32_vzeroall (void)
-     void __builtin_ia32_vzeroupper (void)
-     v4df __builtin_ia32_xorpd256 (v4df,v4df)
-     v8sf __builtin_ia32_xorps256 (v8sf,v8sf)
-
-
-
-*/
-
-#ifdef __AES__
-/*
- * AES-NI instruction set
- * includes PCMUL
- */
-
-/* AES-NI aes
- */
-
-   
-/* v2di __builtin_ia32_aesenc128 (v2di, v2di) */
-static __inline__
-v128_u8_t op_AESENC (register v128_u8_t state, register const v128_u8_t round_key)
-{
-    return (v128_u8_t)__builtin_ia32_aesenc128 ((v128_lli_t)state,
-                                               (v128_lli_t)round_key);
-}
-
-
-/* v2di __builtin_ia32_aesenclast128 (v2di, v2di) */
-static __inline__
-v128_u8_t op_AESENCLAST (register v128_u8_t state,
-                        register const v128_u8_t round_key)
-{
-    return (v128_u8_t)__builtin_ia32_aesenclast128 ((v128_lli_t)state,
-                                                   (v128_lli_t)round_key);
-}
-
-
-/* v2di __builtin_ia32_aesdec128 (v2di, v2di) */
-static __inline__
-v128_u8_t op_AESDEC (register v128_u8_t state, register const v128_u8_t round_key)
-{
-    return (v128_u8_t)__builtin_ia32_aesdec128 ((v128_lli_t)state,
-                                               (v128_lli_t)round_key);
-}
-
-
-/* v2di __builtin_ia32_aesdeclast128 (v2di, v2di) */
-static __inline__
-v128_u8_t op_AESDECLAST (register v128_u8_t state,
-                        register const v128_u8_t round_key)
-{
-    return (v128_u8_t)__builtin_ia32_aesdeclast128 ((v128_lli_t)state,
-                                                   (v128_lli_t)round_key);
-}
-
-
-/* v2di __builtin_ia32_aeskeygenassist128 (v2di, const int) */
-static __inline__
-v128_u8_t op_AESKEYGENASSIST (register const v128_u8_t round_key,
-                             const int rcon ) __attribute__ ((always_inline));
-static __inline__
-v128_u8_t op_AESKEYGENASSIST (register const v128_u8_t round_key,
-                             const int rcon )
-{
-    return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
-                                                         rcon);
-}
-
-
-/* v2di __builtin_ia32_aesimc128 (v2di) */
-static __inline__
-v128_u8_t op_AESIMC (register const v128_u8_t round_key)
-{
-    return (v128_u8_t)__builtin_ia32_aesimc128 ((v128_lli_t)round_key);
-}
-
-/* pclmul
-v2di __builtin_ia32_pclmulqdq128 (v2di, v2di, const int)
-*/
-#endif
-
-#ifdef __SSE5__
-/* sse5
-     v2df __builtin_ia32_comeqpd (v2df, v2df)
-     v2df __builtin_ia32_comeqps (v2df, v2df)
-     v4sf __builtin_ia32_comeqsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comeqss (v4sf, v4sf)
-     v2df __builtin_ia32_comfalsepd (v2df, v2df)
-     v2df __builtin_ia32_comfalseps (v2df, v2df)
-     v4sf __builtin_ia32_comfalsesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comfalsess (v4sf, v4sf)
-     v2df __builtin_ia32_comgepd (v2df, v2df)
-     v2df __builtin_ia32_comgeps (v2df, v2df)
-     v4sf __builtin_ia32_comgesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comgess (v4sf, v4sf)
-     v2df __builtin_ia32_comgtpd (v2df, v2df)
-     v2df __builtin_ia32_comgtps (v2df, v2df)
-     v4sf __builtin_ia32_comgtsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comgtss (v4sf, v4sf)
-     v2df __builtin_ia32_comlepd (v2df, v2df)
-     v2df __builtin_ia32_comleps (v2df, v2df)
-     v4sf __builtin_ia32_comlesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comless (v4sf, v4sf)
-     v2df __builtin_ia32_comltpd (v2df, v2df)
-     v2df __builtin_ia32_comltps (v2df, v2df)
-     v4sf __builtin_ia32_comltsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comltss (v4sf, v4sf)
-     v2df __builtin_ia32_comnepd (v2df, v2df)
-     v2df __builtin_ia32_comneps (v2df, v2df)
-     v4sf __builtin_ia32_comnesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comness (v4sf, v4sf)
-     v2df __builtin_ia32_comordpd (v2df, v2df)
-     v2df __builtin_ia32_comordps (v2df, v2df)
-     v4sf __builtin_ia32_comordsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comordss (v4sf, v4sf)
-     v2df __builtin_ia32_comtruepd (v2df, v2df)
-     v2df __builtin_ia32_comtrueps (v2df, v2df)
-     v4sf __builtin_ia32_comtruesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comtruess (v4sf, v4sf)
-     v2df __builtin_ia32_comueqpd (v2df, v2df)
-     v2df __builtin_ia32_comueqps (v2df, v2df)
-     v4sf __builtin_ia32_comueqsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comueqss (v4sf, v4sf)
-     v2df __builtin_ia32_comugepd (v2df, v2df)
-     v2df __builtin_ia32_comugeps (v2df, v2df)
-     v4sf __builtin_ia32_comugesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comugess (v4sf, v4sf)
-     v2df __builtin_ia32_comugtpd (v2df, v2df)
-     v2df __builtin_ia32_comugtps (v2df, v2df)
-     v4sf __builtin_ia32_comugtsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comugtss (v4sf, v4sf)
-     v2df __builtin_ia32_comulepd (v2df, v2df)
-     v2df __builtin_ia32_comuleps (v2df, v2df)
-     v4sf __builtin_ia32_comulesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comuless (v4sf, v4sf)
-     v2df __builtin_ia32_comultpd (v2df, v2df)
-     v2df __builtin_ia32_comultps (v2df, v2df)
-     v4sf __builtin_ia32_comultsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comultss (v4sf, v4sf)
-     v2df __builtin_ia32_comunepd (v2df, v2df)
-     v2df __builtin_ia32_comuneps (v2df, v2df)
-     v4sf __builtin_ia32_comunesd (v4sf, v4sf)
-     v4sf __builtin_ia32_comuness (v4sf, v4sf)
-     v2df __builtin_ia32_comunordpd (v2df, v2df)
-     v2df __builtin_ia32_comunordps (v2df, v2df)
-     v4sf __builtin_ia32_comunordsd (v4sf, v4sf)
-     v4sf __builtin_ia32_comunordss (v4sf, v4sf)
-     v2df __builtin_ia32_fmaddpd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fmaddps (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_fmaddsd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fmaddss (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_fmsubpd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fmsubps (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_fmsubsd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fmsubss (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_fnmaddpd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fnmaddps (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_fnmaddsd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fnmaddss (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_fnmsubpd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fnmsubps (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_fnmsubsd (v2df, v2df, v2df)
-     v4sf __builtin_ia32_fnmsubss (v4sf, v4sf, v4sf)
-     v2df __builtin_ia32_frczpd (v2df)
-     v4sf __builtin_ia32_frczps (v4sf)
-     v2df __builtin_ia32_frczsd (v2df, v2df)
-     v4sf __builtin_ia32_frczss (v4sf, v4sf)
-     v2di __builtin_ia32_pcmov (v2di, v2di, v2di)
-     v2di __builtin_ia32_pcmov_v2di (v2di, v2di, v2di)
-     v4si __builtin_ia32_pcmov_v4si (v4si, v4si, v4si)
-     v8hi __builtin_ia32_pcmov_v8hi (v8hi, v8hi, v8hi)
-     v16qi __builtin_ia32_pcmov_v16qi (v16qi, v16qi, v16qi)
-     v2df __builtin_ia32_pcmov_v2df (v2df, v2df, v2df)
-     v4sf __builtin_ia32_pcmov_v4sf (v4sf, v4sf, v4sf)
-     v16qi __builtin_ia32_pcomeqb (v16qi, v16qi)
-     v8hi __builtin_ia32_pcomeqw (v8hi, v8hi)
-     v4si __builtin_ia32_pcomeqd (v4si, v4si)
-     v2di __builtin_ia32_pcomeqq (v2di, v2di)
-     v16qi __builtin_ia32_pcomequb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomequd (v4si, v4si)
-     v2di __builtin_ia32_pcomequq (v2di, v2di)
-     v8hi __builtin_ia32_pcomequw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomeqw (v8hi, v8hi)
-     v16qi __builtin_ia32_pcomfalseb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomfalsed (v4si, v4si)
-     v2di __builtin_ia32_pcomfalseq (v2di, v2di)
-     v16qi __builtin_ia32_pcomfalseub (v16qi, v16qi)
-     v4si __builtin_ia32_pcomfalseud (v4si, v4si)
-     v2di __builtin_ia32_pcomfalseuq (v2di, v2di)
-     v8hi __builtin_ia32_pcomfalseuw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomfalsew (v8hi, v8hi)
-     v16qi __builtin_ia32_pcomgeb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomged (v4si, v4si)
-     v2di __builtin_ia32_pcomgeq (v2di, v2di)
-     v16qi __builtin_ia32_pcomgeub (v16qi, v16qi)
-     v4si __builtin_ia32_pcomgeud (v4si, v4si)
-     v2di __builtin_ia32_pcomgeuq (v2di, v2di)
-     v8hi __builtin_ia32_pcomgeuw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomgew (v8hi, v8hi)
-     v16qi __builtin_ia32_pcomgtb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomgtd (v4si, v4si)
-     v2di __builtin_ia32_pcomgtq (v2di, v2di)
-     v16qi __builtin_ia32_pcomgtub (v16qi, v16qi)
-     v4si __builtin_ia32_pcomgtud (v4si, v4si)
-     v2di __builtin_ia32_pcomgtuq (v2di, v2di)
-     v8hi __builtin_ia32_pcomgtuw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomgtw (v8hi, v8hi)
-     v16qi __builtin_ia32_pcomleb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomled (v4si, v4si)
-     v2di __builtin_ia32_pcomleq (v2di, v2di)
-     v16qi __builtin_ia32_pcomleub (v16qi, v16qi)
-     v4si __builtin_ia32_pcomleud (v4si, v4si)
-     v2di __builtin_ia32_pcomleuq (v2di, v2di)
-     v8hi __builtin_ia32_pcomleuw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomlew (v8hi, v8hi)
-     v16qi __builtin_ia32_pcomltb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomltd (v4si, v4si)
-     v2di __builtin_ia32_pcomltq (v2di, v2di)
-     v16qi __builtin_ia32_pcomltub (v16qi, v16qi)
-     v4si __builtin_ia32_pcomltud (v4si, v4si)
-     v2di __builtin_ia32_pcomltuq (v2di, v2di)
-     v8hi __builtin_ia32_pcomltuw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomltw (v8hi, v8hi)
-     v16qi __builtin_ia32_pcomneb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomned (v4si, v4si)
-     v2di __builtin_ia32_pcomneq (v2di, v2di)
-     v16qi __builtin_ia32_pcomneub (v16qi, v16qi)
-     v4si __builtin_ia32_pcomneud (v4si, v4si)
-     v2di __builtin_ia32_pcomneuq (v2di, v2di)
-     v8hi __builtin_ia32_pcomneuw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomnew (v8hi, v8hi)
-     v16qi __builtin_ia32_pcomtrueb (v16qi, v16qi)
-     v4si __builtin_ia32_pcomtrued (v4si, v4si)
-     v2di __builtin_ia32_pcomtrueq (v2di, v2di)
-     v16qi __builtin_ia32_pcomtrueub (v16qi, v16qi)
-     v4si __builtin_ia32_pcomtrueud (v4si, v4si)
-     v2di __builtin_ia32_pcomtrueuq (v2di, v2di)
-     v8hi __builtin_ia32_pcomtrueuw (v8hi, v8hi)
-     v8hi __builtin_ia32_pcomtruew (v8hi, v8hi)
-     v4df __builtin_ia32_permpd (v2df, v2df, v16qi)
-     v4sf __builtin_ia32_permps (v4sf, v4sf, v16qi)
-     v4si __builtin_ia32_phaddbd (v16qi)
-     v2di __builtin_ia32_phaddbq (v16qi)
-     v8hi __builtin_ia32_phaddbw (v16qi)
-     v2di __builtin_ia32_phadddq (v4si)
-     v4si __builtin_ia32_phaddubd (v16qi)
-     v2di __builtin_ia32_phaddubq (v16qi)
-     v8hi __builtin_ia32_phaddubw (v16qi)
-     v2di __builtin_ia32_phaddudq (v4si)
-     v4si __builtin_ia32_phadduwd (v8hi)
-     v2di __builtin_ia32_phadduwq (v8hi)
-     v4si __builtin_ia32_phaddwd (v8hi)
-     v2di __builtin_ia32_phaddwq (v8hi)
-     v8hi __builtin_ia32_phsubbw (v16qi)
-     v2di __builtin_ia32_phsubdq (v4si)
-     v4si __builtin_ia32_phsubwd (v8hi)
-     v4si __builtin_ia32_pmacsdd (v4si, v4si, v4si)
-     v2di __builtin_ia32_pmacsdqh (v4si, v4si, v2di)
-     v2di __builtin_ia32_pmacsdql (v4si, v4si, v2di)
-     v4si __builtin_ia32_pmacssdd (v4si, v4si, v4si)
-     v2di __builtin_ia32_pmacssdqh (v4si, v4si, v2di)
-     v2di __builtin_ia32_pmacssdql (v4si, v4si, v2di)
-     v4si __builtin_ia32_pmacsswd (v8hi, v8hi, v4si)
-     v8hi __builtin_ia32_pmacssww (v8hi, v8hi, v8hi)
-     v4si __builtin_ia32_pmacswd (v8hi, v8hi, v4si)
-     v8hi __builtin_ia32_pmacsww (v8hi, v8hi, v8hi)
-     v4si __builtin_ia32_pmadcsswd (v8hi, v8hi, v4si)
-     v4si __builtin_ia32_pmadcswd (v8hi, v8hi, v4si)
-     v16qi __builtin_ia32_pperm (v16qi, v16qi, v16qi)
-     v16qi __builtin_ia32_protb (v16qi, v16qi)
-     v4si __builtin_ia32_protd (v4si, v4si)
-     v2di __builtin_ia32_protq (v2di, v2di)
-     v8hi __builtin_ia32_protw (v8hi, v8hi)
-     v16qi __builtin_ia32_pshab (v16qi, v16qi)
-     v4si __builtin_ia32_pshad (v4si, v4si)
-     v2di __builtin_ia32_pshaq (v2di, v2di)
-     v8hi __builtin_ia32_pshaw (v8hi, v8hi)
-     v16qi __builtin_ia32_pshlb (v16qi, v16qi)
-     v4si __builtin_ia32_pshld (v4si, v4si)
-     v2di __builtin_ia32_pshlq (v2di, v2di)
-     v8hi __builtin_ia32_pshlw (v8hi, v8hi)
-The following builtin-in functions are available when -msse5 is used.
-The second argument must be an integer constant and generate the machine
-instruction that is part of the name with the `_imm' suffix removed.
-
-     v16qi __builtin_ia32_protb_imm (v16qi, int)
-     v4si __builtin_ia32_protd_imm (v4si, int)
-     v2di __builtin_ia32_protq_imm (v2di, int)
-     v8hi __builtin_ia32_protw_imm (v8hi, int)
-
-
-*/
-#endif
-
-#endif /* if USE_VECREG */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_v128_ */
diff --git a/tools/util/mac/syspass.c b/interfaces/cc/gcc/x86_64/fmtdef.h
similarity index 70%
rename from tools/util/mac/syspass.c
rename to interfaces/cc/gcc/x86_64/fmtdef.h
index 2a2d9f1..150b807 100644
--- a/tools/util/mac/syspass.c
+++ b/interfaces/cc/gcc/x86_64/fmtdef.h
@@ -24,25 +24,35 @@
 *
 */
 
-#include "syspass-priv.h" /* get_pass */
+#ifndef _h_fmtdef_
+#define _h_fmtdef_
 
-#include <klib/rc.h>
+#if MAC
 
-#include <readpassphrase.h>
+/* int64_t is still a "long long int" */
+#define LD64 "lld"
+#define LU64 "llu"
+#define LX64 "llX"
+#define Lx64 "llx"
 
-rc_t get_pass(const char *prompt, char *buf, size_t bufsiz) {
-    if (prompt == NULL || buf == NULL) {
-        return RC(rcExe, rcFunction, rcEvaluating, rcParam, rcNull);
-    }
+/* size_t is now a "long unsigned int" */
+#define LUSZ "lu"
+#define LXSZ "lX"
+#define LxSZ "lx"
 
-    if (bufsiz == 0)
-    {   return 0; }
+#else /* MAC */
 
-    buf[0] = '\0';
+/* int64_t is now a "long int" */
+#define LD64 "ld"
+#define LU64 "lu"
+#define LX64 "lX"
+#define Lx64 "lx"
 
-    if (readpassphrase(prompt, buf, bufsiz, 0) == NULL) {
-        return RC(rcExe, rcFunction, rcEvaluating, rcParam, rcNull);
-    }
+/* size_t is now a "long unsigned int" */
+#define LUSZ "lu"
+#define LXSZ "lX"
+#define LxSZ "lx"
 
-    return 0;
-}
\ No newline at end of file
+#endif /* MAC */
+
+#endif /* _h_fmtdef_ */
diff --git a/interfaces/cc/vc++/compiler.h b/interfaces/cc/vc++/compiler.h
index 46a1ac0..2c2837d 100644
--- a/interfaces/cc/vc++/compiler.h
+++ b/interfaces/cc/vc++/compiler.h
@@ -37,7 +37,7 @@ extern "C" {
 static __inline
 float roundf( float value_in )
 {
-    return ( value_in < 0 ) ? ceilf ( value_in - 0.5F ) : floorf ( value_in + 0.5 );
+    return ( value_in < 0 ) ? ceilf ( value_in - 0.5 ) : floorf ( value_in + 0.5 );
 }
 
 #define lroundf( x ) (long int)roundf( x )
diff --git a/interfaces/cc/vc++/i386/arch-impl.h b/interfaces/cc/vc++/i386/arch-impl.h
index 2494460..9745a2b 100644
--- a/interfaces/cc/vc++/i386/arch-impl.h
+++ b/interfaces/cc/vc++/i386/arch-impl.h
@@ -31,10 +31,204 @@
 #include "../noarch/arch-impl.h"
 #endif
 
+#ifndef _INC_STDLIB
+#include <stdlib.h>
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+typedef struct int128_t int128_t;
+struct int128_t
+{
+    uint64_t lo;
+    int64_t hi;
+};
+
+static __inline
+int64_t int128_hi ( const int128_t *self )
+{
+    return self -> hi;
+}
+
+static __inline
+uint64_t int128_lo ( const int128_t *self )
+{
+    return self -> lo;
+}
+
+static __inline
+void int128_sethi ( int128_t *self, int64_t i )
+{
+    self -> hi = i;
+}
+
+static __inline
+void int128_setlo ( int128_t *self, uint64_t i )
+{
+    self -> lo = i;
+}
+
+typedef struct uint128_t uint128_t;
+struct uint128_t
+{
+    uint64_t lo;
+    uint64_t hi;
+};
+
+static __inline
+uint64_t uint128_hi ( const uint128_t *self )
+{
+    return self -> hi;
+}
+
+static __inline
+uint64_t uint128_lo ( const uint128_t *self )
+{
+    return self -> lo;
+}
+
+static __inline
+void uint128_sethi ( uint128_t *self, uint64_t i )
+{
+    self -> hi = i;
+}
+
+static __inline
+void uint128_setlo ( uint128_t *self, uint64_t i )
+{
+    self -> lo = i;
+}
+
+static __inline
+void int128_add ( int128_t *self, const int128_t *i )
+{
+    uint64_t carry = ( ( const uint32_t* ) self ) [ 0 ] + ( ( const uint32_t* ) i ) [ 0 ];
+    self -> hi += i -> hi;
+    carry = ( ( const uint32_t* ) self ) [ 1 ] + ( ( const uint32_t* ) i ) [ 1 ] + ( carry >> 32 );
+    self -> lo += i -> lo;
+    self -> hi += carry >> 32;
+}
+
+static __inline
+void int128_sub ( int128_t *self, const int128_t *i )
+{
+    int carry = i -> lo > self -> lo;
+    self -> hi -= i -> hi;
+    self -> lo -= i -> lo;
+    self -> hi -= carry;
+}
+
+static __inline
+void int128_sar ( int128_t *self, uint32_t i )
+{
+    if ( i < 64 )
+    {
+        self -> lo = ( self -> hi << ( 64 - i ) ) |  ( self -> lo >> i );
+        self -> hi >>= i;
+    }
+    else
+    {
+        self -> lo = self -> hi >> ( i - 64 );
+        self -> hi >>= 63;
+    }
+}
+
+static __inline
+void int128_shl ( int128_t *self, uint32_t i )
+{
+    if ( i < 64 )
+    {
+        self -> hi = ( self -> hi << i ) | ( int64_t ) ( self -> lo >> ( 64 - i ) );
+        self -> lo <<= i;
+    }
+    else
+    {
+        self -> hi = ( int64_t ) ( self -> lo << ( i - 64 ) );
+        self -> lo = 0;
+    }
+}
+
+static __inline
+void uint128_and ( uint128_t *self, const uint128_t *i )
+{
+    self -> lo &= i -> lo;
+    self -> hi &= i -> hi;
+}
+
+static __inline
+void uint128_or ( uint128_t *self, const uint128_t *i )
+{
+    self -> lo |= i -> lo;
+    self -> hi |= i -> hi;
+}
+
+static __inline
+void uint128_orlo ( uint128_t *self, uint64_t i )
+{
+    self -> lo |= i;
+}
+
+static __inline
+void uint128_xor ( uint128_t *self, const uint128_t *i )
+{
+    self -> lo ^= i -> lo;
+    self -> hi ^= i -> hi;
+}
+
+static __inline
+void uint128_not ( uint128_t *self )
+{
+    self -> lo = ~ self -> lo;
+    self -> hi = ~ self -> hi;
+}
+
+static __inline
+void uint128_shr ( uint128_t *self, uint32_t i )
+{
+    if ( i < 64 )
+    {
+        self -> lo = ( self -> hi << ( 64 - i ) ) |  ( self -> lo >> i );
+        self -> hi >>= i;
+    }
+    else
+    {
+        self -> lo = self -> hi >> ( i - 64 );
+        self -> hi >>= 63;
+    }
+}
+
+static __inline
+void uint128_shl ( uint128_t *self, uint32_t i )
+{
+    if ( i < 64 )
+    {
+        self -> hi = ( self -> hi << i ) | ( self -> lo >> ( 64 - i ) );
+        self -> lo <<= i;
+    }
+    else
+    {
+        self -> hi = self -> lo << ( i - 64 );
+        self -> lo = 0;
+    }
+}
+
+static __inline
+void uint128_bswap ( uint128_t *self )
+{
+    uint64_t tmp = _byteswap_uint64 ( self -> lo );
+    self -> lo = _byteswap_uint64 ( self -> hi );
+    ( ( uint64_t* ) self ) [ 1 ] = tmp;
+}
+
+static __inline
+void uint128_bswap_copy ( uint128_t *to, const uint128_t *from )
+{
+    to -> lo = _byteswap_uint64 ( from -> hi );
+    to -> hi = _byteswap_uint64 ( from -> lo );
+}
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/cc/vc++/i386/arch-impl.h b/interfaces/cc/vc++/i386/fmtdef.h
similarity index 79%
copy from interfaces/cc/vc++/i386/arch-impl.h
copy to interfaces/cc/vc++/i386/fmtdef.h
index 2494460..d51c88f 100644
--- a/interfaces/cc/vc++/i386/arch-impl.h
+++ b/interfaces/cc/vc++/i386/fmtdef.h
@@ -24,19 +24,19 @@
 *
 */
 
-#ifndef _h_arch_impl_
-#define _h_arch_impl_
+#ifndef _h_fmtdef_
+#define _h_fmtdef_
 
-#ifndef _h_noarch_arch_impl_
-#include "../noarch/arch-impl.h"
-#endif
+/* int64_t is "long long int" in 32 bit */
+#define LD64 "lld"
+#define LU64 "llu"
+#define LX64 "llX"
+#define Lx64 "llx"
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+/* size_t is traditionally "unsigned int"
+   although it should have been "long unsigned int" */
+#define LUSZ "u"
+#define LXSZ "X"
+#define LxSZ "x"
 
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_arch_impl_ */
+#endif /* _h_fmtdef_ */
diff --git a/interfaces/cc/vc++/noarch/arch-impl.h b/interfaces/cc/vc++/noarch/arch-impl.h
index 94feb4f..9cf5132 100644
--- a/interfaces/cc/vc++/noarch/arch-impl.h
+++ b/interfaces/cc/vc++/noarch/arch-impl.h
@@ -29,10 +29,6 @@
 
 #include <stdint.h>
 
-#ifndef _INC_STDLIB
-#include <stdlib.h>
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -89,196 +85,6 @@ int32_t uint32_lsbit ( uint32_t self )
     return uint16_lsbit ( self >> 16 ) + 16;
 }
 
-typedef struct int128_t int128_t;
-struct int128_t
-{
-    uint64_t lo;
-    int64_t hi;
-};
-
-static __inline
-int64_t int128_hi ( const int128_t *self )
-{
-    return self -> hi;
-}
-
-static __inline
-uint64_t int128_lo ( const int128_t *self )
-{
-    return self -> lo;
-}
-
-static __inline
-void int128_sethi ( int128_t *self, int64_t i )
-{
-    self -> hi = i;
-}
-
-static __inline
-void int128_setlo ( int128_t *self, uint64_t i )
-{
-    self -> lo = i;
-}
-
-typedef struct uint128_t uint128_t;
-struct uint128_t
-{
-    uint64_t lo;
-    uint64_t hi;
-};
-
-static __inline
-uint64_t uint128_hi ( const uint128_t *self )
-{
-    return self -> hi;
-}
-
-static __inline
-uint64_t uint128_lo ( const uint128_t *self )
-{
-    return self -> lo;
-}
-
-static __inline
-void uint128_sethi ( uint128_t *self, uint64_t i )
-{
-    self -> hi = i;
-}
-
-static __inline
-void uint128_setlo ( uint128_t *self, uint64_t i )
-{
-    self -> lo = i;
-}
-
-static __inline
-void int128_add ( int128_t *self, const int128_t *i )
-{
-    uint64_t carry = ( ( const uint32_t* ) self ) [ 0 ] + ( ( const uint32_t* ) i ) [ 0 ];
-    self -> hi += i -> hi;
-    carry = ( ( const uint32_t* ) self ) [ 1 ] + ( ( const uint32_t* ) i ) [ 1 ] + ( carry >> 32 );
-    self -> lo += i -> lo;
-    self -> hi += carry >> 32;
-}
-
-static __inline
-void int128_sub ( int128_t *self, const int128_t *i )
-{
-    int carry = i -> lo > self -> lo;
-    self -> hi -= i -> hi;
-    self -> lo -= i -> lo;
-    self -> hi -= carry;
-}
-
-static __inline
-void int128_sar ( int128_t *self, uint32_t i )
-{
-    if ( i < 64 )
-    {
-        self -> lo = ( self -> hi << ( 64 - i ) ) |  ( self -> lo >> i );
-        self -> hi >>= i;
-    }
-    else
-    {
-        self -> lo = self -> hi >> ( i - 64 );
-        self -> hi >>= 63;
-    }
-}
-
-static __inline
-void int128_shl ( int128_t *self, uint32_t i )
-{
-    if ( i < 64 )
-    {
-        self -> hi = ( self -> hi << i ) | ( int64_t ) ( self -> lo >> ( 64 - i ) );
-        self -> lo <<= i;
-    }
-    else
-    {
-        self -> hi = ( int64_t ) ( self -> lo << ( i - 64 ) );
-        self -> lo = 0;
-    }
-}
-
-static __inline
-void uint128_and ( uint128_t *self, const uint128_t *i )
-{
-    self -> lo &= i -> lo;
-    self -> hi &= i -> hi;
-}
-
-static __inline
-void uint128_or ( uint128_t *self, const uint128_t *i )
-{
-    self -> lo |= i -> lo;
-    self -> hi |= i -> hi;
-}
-
-static __inline
-void uint128_orlo ( uint128_t *self, uint64_t i )
-{
-    self -> lo |= i;
-}
-
-static __inline
-void uint128_xor ( uint128_t *self, const uint128_t *i )
-{
-    self -> lo ^= i -> lo;
-    self -> hi ^= i -> hi;
-}
-
-static __inline
-void uint128_not ( uint128_t *self )
-{
-    self -> lo = ~ self -> lo;
-    self -> hi = ~ self -> hi;
-}
-
-static __inline
-void uint128_shr ( uint128_t *self, uint32_t i )
-{
-    if ( i < 64 )
-    {
-        self -> lo = ( self -> hi << ( 64 - i ) ) |  ( self -> lo >> i );
-        self -> hi >>= i;
-    }
-    else
-    {
-        self -> lo = self -> hi >> ( i - 64 );
-        self -> hi >>= 63;
-    }
-}
-
-static __inline
-void uint128_shl ( uint128_t *self, uint32_t i )
-{
-    if ( i < 64 )
-    {
-        self -> hi = ( self -> hi << i ) | ( self -> lo >> ( 64 - i ) );
-        self -> lo <<= i;
-    }
-    else
-    {
-        self -> hi = self -> lo << ( i - 64 );
-        self -> lo = 0;
-    }
-}
-
-static __inline
-void uint128_bswap ( uint128_t *self )
-{
-    uint64_t tmp = _byteswap_uint64 ( self -> lo );
-    self -> lo = _byteswap_uint64 ( self -> hi );
-    ( ( uint64_t* ) self ) [ 1 ] = tmp;
-}
-
-static __inline
-void uint128_bswap_copy ( uint128_t *to, const uint128_t *from )
-{
-    to -> lo = _byteswap_uint64 ( from -> hi );
-    to -> hi = _byteswap_uint64 ( from -> lo );
-}
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/cc/vc++/noarch/bitstr.h b/interfaces/cc/vc++/noarch/bitstr.h
index 88a4c34..de0880f 100644
--- a/interfaces/cc/vc++/noarch/bitstr.h
+++ b/interfaces/cc/vc++/noarch/bitstr.h
@@ -94,7 +94,7 @@ void bitcpy ( void *dbase, bitsz_t doff, const void *sbase, bitsz_t soff, bitsz_
         soff &= ( WRDSIZE - 1 );
 
         /* calculate number of words - 1 in dst */
-        dcountz = ( size_t ) ( ( doff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT );
+        dcountz = ( doff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT;
 
         /* calculate masks */
         lmask = rmask = ~ 0;
@@ -139,7 +139,7 @@ void bitcpy ( void *dbase, bitsz_t doff, const void *sbase, bitsz_t soff, bitsz_
         else
         {
             /* source count may differ from dest count */
-            size_t scountz = ( size_t ) ( ( soff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT );
+            size_t scountz = ( soff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT;
 
             /* use double-word accumulator */
             ACC acc = BSWAP ( src [ 0 ] );
@@ -259,7 +259,7 @@ int bitcmp ( const void *abase, bitsz_t aoff, const void *bbase, bitsz_t boff, b
            at least 1. our loops treat the last word
            specially, so calculate a loop counter that
            excludes the last word */
-        lcountz = ( size_t ) ( ( aoff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT );
+        lcountz = ( aoff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT;
 
         /* calculate masks */
         lmask = rmask = ~ 0;
@@ -301,7 +301,7 @@ int bitcmp ( const void *abase, bitsz_t aoff, const void *bbase, bitsz_t boff, b
                since alignments differ, the span of "sz"
                bits may hit a different number of words in
                the left array than in the right. */
-            size_t rcountz = ( size_t ) ( ( boff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT );
+            size_t rcountz = ( boff + sz + ( WRDSIZE - 1 ) - WRDSIZE ) >> WRDSHIFT;
 
             /* use double-word accumulator
                note that the extra bits get ignored */
diff --git a/interfaces/cc/vc++/stdint.h b/interfaces/cc/vc++/stdint.h
index 057374c..7c6cdf1 100644
--- a/interfaces/cc/vc++/stdint.h
+++ b/interfaces/cc/vc++/stdint.h
@@ -47,70 +47,29 @@ typedef unsigned __int16 uint16_t;
 typedef unsigned __int32 uint32_t;
 typedef unsigned __int64 uint64_t;
 
-#ifndef INT8_MAX
 #define INT8_MAX _I8_MAX
-#endif
-
-#ifndef INT8_MIN
 #define INT8_MIN _I8_MIN
-#endif
-
-#ifndef UINT8_MAX
 #define UINT8_MAX _UI8_MAX
-#endif
 
-#ifndef INT16_MAX
 #define INT16_MAX _I16_MAX
-#endif
-
-#ifndef INT16_MIN
 #define INT16_MIN _I16_MIN
-#endif
-
-#ifndef UINT16_MAX
 #define UINT16_MAX _UI16_MAX
-#endif
 
-#ifndef INT32_MAX
 #define INT32_MAX _I32_MAX
-#endif
-
-#ifndef INT32_MIN
 #define INT32_MIN _I32_MIN
-#endif
-
-#ifndef UINT32_MAX
 #define UINT32_MAX _UI32_MAX
-#endif
 
-#ifndef INT64_MAX
 #define INT64_MAX _I64_MAX
-#endif
-
-#ifndef INT64_MIN
 #define INT64_MIN _I64_MIN
-#endif
-
-#ifndef UINT64_MAX
 #define UINT64_MAX _UI64_MAX
-#endif
 
 #ifndef SIZE_T_MAX
 #define SIZE_T_MAX ((size_t)(-(1ULL)))
 #endif
 
-#if !defined(__cplusplus)  ||  defined(__STDC_CONSTANT_MACROS)
-#ifndef UINT64_C
-#define UINT64_C(x) (x ## ULL)
-#endif
-#ifndef INT64_C
-#define INT64_C(x) (x ## LL)
-#endif
-#endif
 
-#ifndef __func__
+
 #define __func__ __FUNCTION__
-#endif
 
 #ifdef __cplusplus
 }
diff --git a/interfaces/cc/vc++/x86_64/arch-impl.h b/interfaces/cc/vc++/x86_64/arch-impl.h
index 2494460..104d643 100644
--- a/interfaces/cc/vc++/x86_64/arch-impl.h
+++ b/interfaces/cc/vc++/x86_64/arch-impl.h
@@ -35,6 +35,139 @@
 extern "C" {
 #endif
 
+typedef __int128 int128_t;
+
+static __inline
+int64_t int128_hi ( const int128_t *self )
+{
+    return ( ( const int64_t* ) self ) [ 1 ];
+}
+
+static __inline
+uint64_t int128_lo ( const int128_t *self )
+{
+    return ( ( const uint64_t* ) self ) [ 0 ];
+}
+
+static __inline
+void int128_sethi ( int128_t *self, int64_t i )
+{
+    ( ( int64_t* ) self ) [ 1 ] = i;
+}
+
+static __inline
+void int128_setlo ( int128_t *self, uint64_t i )
+{
+    ( ( uint64_t* ) self ) [ 0 ] = i;
+}
+
+typedef __uint128 uint128_t;
+
+static __inline
+uint64_t uint128_hi ( const uint128_t *self )
+{
+    return ( ( const uint64_t* ) self ) [ 1 ];
+}
+
+static __inline
+uint64_t uint128_lo ( const uint128_t *self )
+{
+    return ( ( const uint64_t* ) self ) [ 0 ];
+}
+
+static __inline
+void uint128_sethi ( uint128_t *self, uint64_t i )
+{
+    ( ( uint64_t* ) self ) [ 1 ] = i;
+}
+
+static __inline
+void uint128_setlo ( uint128_t *self, uint64_t i )
+{
+    ( ( uint64_t* ) self ) [ 0 ] = i;
+}
+
+static __inline
+void int128_add ( int128_t *self, const int128_t *i )
+{
+    * self += * i;
+}
+
+static __inline
+void int128_sub ( int128_t *self, const int128_t *i )
+{
+    * self -= * i;
+}
+
+static __inline
+void int128_sar ( int128_t *self, uint32_t i )
+{
+    * self >>= i;
+}
+
+static __inline
+void int128_shl ( int128_t *self, uint32_t i )
+{
+    * self << i;
+}
+
+static __inline
+void uint128_and ( uint128_t *self, const uint128_t *i )
+{
+    * self &= * i;
+}
+
+static __inline
+void uint128_or ( uint128_t *self, const uint128_t *i )
+{
+    * self |= * i;
+}
+
+static __inline
+void uint128_orlo ( uint128_t *self, uint64_t i )
+{
+    ( ( uint64_t* ) self ) [ 0 ] |= i;
+}
+
+static __inline
+void uint128_xor ( uint128_t *self, const uint128_t *i )
+{
+    * self ^= * i;
+}
+
+static __inline
+void uint128_not ( uint128_t *self )
+{
+    * self = ~ * self;
+}
+
+static __inline
+void uint128_shr ( uint128_t *self, uint32_t i )
+{
+    * self >>= i;
+}
+
+static __inline
+void uint128_shl ( uint128_t *self, uint32_t i )
+{
+    * self <<= i;
+}
+
+static __inline
+void uint128_bswap ( uint128_t *self )
+{
+    uint64_t tmp = _byteswap_uint64 ( ( ( const uint64_t* ) self ) [ 0 ] );
+    ( ( uint64_t* ) self ) [ 0 ] = _byteswap_uint64 ( ( ( const uint64_t* ) self ) [ 1 ] );
+    ( ( uint64_t* ) self ) [ 1 ] = tmp;
+}
+
+static __inline
+void uint128_bswap_copy ( uint128_t *to, const uint128_t *from )
+{
+    ( ( uint64_t* ) to ) [ 0 ] = _byteswap_uint64 ( ( ( const uint64_t* ) from ) [ 1 ] );
+    ( ( uint64_t* ) to ) [ 1 ] = _byteswap_uint64 ( ( ( const uint64_t* ) from ) [ 0 ] );
+}
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/krypto/manager.h b/interfaces/cc/vc++/x86_64/fmtdef.h
similarity index 82%
rename from interfaces/krypto/manager.h
rename to interfaces/cc/vc++/x86_64/fmtdef.h
index 0581659..2a39d7c 100644
--- a/interfaces/krypto/manager.h
+++ b/interfaces/cc/vc++/x86_64/fmtdef.h
@@ -24,10 +24,18 @@
 *
 */
 
-#ifndef _h_krypto_manager_
-#define _h_krypto_manager_
+#ifndef _h_fmtdef_
+#define _h_fmtdef_
 
+/* int64_t is now a "long int" */
+#define LD64 "ld"
+#define LU64 "lu"
+#define LX64 "lX"
+#define Lx64 "lx"
 
-DO NOT USE
+/* size_t is now a "long unsigned int" */
+#define LUSZ "lu"
+#define LXSZ "lX"
+#define LxSZ "lx"
 
-#endif /* _h_krypto_manager_ */
+#endif /* _h_fmtdef_ */
diff --git a/interfaces/ext/libxml/DOCBparser.h b/interfaces/ext/libxml/DOCBparser.h
deleted file mode 100644
index 461d4ee..0000000
--- a/interfaces/ext/libxml/DOCBparser.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Summary: old DocBook SGML parser
- * Description: interface for a DocBook SGML non-verifying parser
- * This code is DEPRECATED, and should not be used anymore.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __DOCB_PARSER_H__
-#define __DOCB_PARSER_H__
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_DOCB_ENABLED
-
-#include <libxml/parser.h>
-#include <libxml/parserInternals.h>
-
-#ifndef IN_LIBXML
-#ifdef __GNUC__
-#warning "The DOCBparser module has been deprecated in libxml2-2.6.0"
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Most of the back-end structures from XML and SGML are shared.
- */
-typedef xmlParserCtxt docbParserCtxt;
-typedef xmlParserCtxtPtr docbParserCtxtPtr;
-typedef xmlSAXHandler docbSAXHandler;
-typedef xmlSAXHandlerPtr docbSAXHandlerPtr;
-typedef xmlParserInput docbParserInput;
-typedef xmlParserInputPtr docbParserInputPtr;
-typedef xmlDocPtr docbDocPtr;
-
-/*
- * There is only few public functions.
- */
-XMLPUBFUN int XMLCALL
-		     docbEncodeEntities(unsigned char *out,
-                                        int *outlen,
-                                        const unsigned char *in,
-                                        int *inlen, int quoteChar);
-
-XMLPUBFUN docbDocPtr XMLCALL             
-		     docbSAXParseDoc   (xmlChar *cur,
-                                        const char *encoding,
-                                        docbSAXHandlerPtr sax,
-                                        void *userData);
-XMLPUBFUN docbDocPtr XMLCALL             
-		     docbParseDoc      (xmlChar *cur,
-                                        const char *encoding);
-XMLPUBFUN docbDocPtr XMLCALL             
-		     docbSAXParseFile  (const char *filename,
-                                        const char *encoding,
-                                        docbSAXHandlerPtr sax,
-                                        void *userData);
-XMLPUBFUN docbDocPtr XMLCALL             
-		     docbParseFile     (const char *filename,
-                                        const char *encoding);
-
-/**
- * Interfaces for the Push mode.
- */
-XMLPUBFUN void XMLCALL                  
-		     docbFreeParserCtxt      (docbParserCtxtPtr ctxt);
-XMLPUBFUN docbParserCtxtPtr XMLCALL     
-		     docbCreatePushParserCtxt(docbSAXHandlerPtr sax,
-                                              void *user_data,
-                                              const char *chunk,
-                                              int size,
-                                              const char *filename,
-                                              xmlCharEncoding enc);
-XMLPUBFUN int XMLCALL                   
-		     docbParseChunk          (docbParserCtxtPtr ctxt,
-                                              const char *chunk,
-                                              int size,
-                                              int terminate);
-XMLPUBFUN docbParserCtxtPtr XMLCALL       
-		     docbCreateFileParserCtxt(const char *filename,
-                                              const char *encoding);
-XMLPUBFUN int XMLCALL                   
-		     docbParseDocument       (docbParserCtxtPtr ctxt);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_DOCB_ENABLED */
-
-#endif /* __DOCB_PARSER_H__ */
diff --git a/interfaces/ext/libxml/HTMLparser.h b/interfaces/ext/libxml/HTMLparser.h
deleted file mode 100644
index 05905e4..0000000
--- a/interfaces/ext/libxml/HTMLparser.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Summary: interface for an HTML 4.0 non-verifying parser
- * Description: this module implements an HTML 4.0 non-verifying parser
- *              with API compatible with the XML parser ones. It should
- *              be able to parse "real world" HTML, even if severely
- *              broken from a specification point of view.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __HTML_PARSER_H__
-#define __HTML_PARSER_H__
-#include <libxml/xmlversion.h>
-#include <libxml/parser.h>
-
-#ifdef LIBXML_HTML_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Most of the back-end structures from XML and HTML are shared.
- */
-typedef xmlParserCtxt htmlParserCtxt;
-typedef xmlParserCtxtPtr htmlParserCtxtPtr;
-typedef xmlParserNodeInfo htmlParserNodeInfo;
-typedef xmlSAXHandler htmlSAXHandler;
-typedef xmlSAXHandlerPtr htmlSAXHandlerPtr;
-typedef xmlParserInput htmlParserInput;
-typedef xmlParserInputPtr htmlParserInputPtr;
-typedef xmlDocPtr htmlDocPtr;
-typedef xmlNodePtr htmlNodePtr;
-
-/*
- * Internal description of an HTML element, representing HTML 4.01
- * and XHTML 1.0 (which share the same structure).
- */
-typedef struct _htmlElemDesc htmlElemDesc;
-typedef htmlElemDesc *htmlElemDescPtr;
-struct _htmlElemDesc {
-    const char *name;	/* The tag name */
-    char startTag;      /* Whether the start tag can be implied */
-    char endTag;        /* Whether the end tag can be implied */
-    char saveEndTag;    /* Whether the end tag should be saved */
-    char empty;         /* Is this an empty element ? */
-    char depr;          /* Is this a deprecated element ? */
-    char dtd;           /* 1: only in Loose DTD, 2: only Frameset one */
-    char isinline;      /* is this a block 0 or inline 1 element */
-    const char *desc;   /* the description */
-
-/* NRK Jan.2003
- * New fields encapsulating HTML structure
- *
- * Bugs:
- *	This is a very limited representation.  It fails to tell us when
- *	an element *requires* subelements (we only have whether they're
- *	allowed or not), and it doesn't tell us where CDATA and PCDATA
- *	are allowed.  Some element relationships are not fully represented:
- *	these are flagged with the word MODIFIER
- */
-    const char** subelts;		/* allowed sub-elements of this element */
-    const char* defaultsubelt;	/* subelement for suggested auto-repair
-					   if necessary or NULL */
-    const char** attrs_opt;		/* Optional Attributes */
-    const char** attrs_depr;		/* Additional deprecated attributes */
-    const char** attrs_req;		/* Required attributes */
-};
-
-/*
- * Internal description of an HTML entity.
- */
-typedef struct _htmlEntityDesc htmlEntityDesc;
-typedef htmlEntityDesc *htmlEntityDescPtr;
-struct _htmlEntityDesc {
-    unsigned int value;	/* the UNICODE value for the character */
-    const char *name;	/* The entity name */
-    const char *desc;   /* the description */
-};
-
-/*
- * There is only few public functions.
- */
-XMLPUBFUN const htmlElemDesc * XMLCALL 	
-			htmlTagLookup	(const xmlChar *tag);
-XMLPUBFUN const htmlEntityDesc * XMLCALL 	
-			htmlEntityLookup(const xmlChar *name);
-XMLPUBFUN const htmlEntityDesc * XMLCALL 	
-			htmlEntityValueLookup(unsigned int value);
-
-XMLPUBFUN int XMLCALL			
-			htmlIsAutoClosed(htmlDocPtr doc,
-					 htmlNodePtr elem);
-XMLPUBFUN int XMLCALL			
-			htmlAutoCloseTag(htmlDocPtr doc,
-					 const xmlChar *name,
-					 htmlNodePtr elem);
-XMLPUBFUN const htmlEntityDesc * XMLCALL	
-			htmlParseEntityRef(htmlParserCtxtPtr ctxt,
-					 const xmlChar **str);
-XMLPUBFUN int XMLCALL			
-			htmlParseCharRef(htmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			htmlParseElement(htmlParserCtxtPtr ctxt);
-
-XMLPUBFUN htmlParserCtxtPtr XMLCALL	
-			htmlNewParserCtxt(void);
-
-XMLPUBFUN htmlParserCtxtPtr XMLCALL	
-			htmlCreateMemoryParserCtxt(const char *buffer,
-						   int size);
-
-XMLPUBFUN int XMLCALL			
-			htmlParseDocument(htmlParserCtxtPtr ctxt);
-XMLPUBFUN htmlDocPtr XMLCALL		
-			htmlSAXParseDoc	(xmlChar *cur,
-					 const char *encoding,
-					 htmlSAXHandlerPtr sax,
-					 void *userData);
-XMLPUBFUN htmlDocPtr XMLCALL		
-			htmlParseDoc	(xmlChar *cur,
-					 const char *encoding);
-XMLPUBFUN htmlDocPtr XMLCALL		
-			htmlSAXParseFile(const char *filename,
-					 const char *encoding,
-					 htmlSAXHandlerPtr sax,
-					 void *userData);
-XMLPUBFUN htmlDocPtr XMLCALL		
-			htmlParseFile	(const char *filename,
-					 const char *encoding);
-XMLPUBFUN int XMLCALL			
-			UTF8ToHtml	(unsigned char *out,
-					 int *outlen,
-					 const unsigned char *in,
-					 int *inlen);
-XMLPUBFUN int XMLCALL			
-			htmlEncodeEntities(unsigned char *out,
-					 int *outlen,
-					 const unsigned char *in,
-					 int *inlen, int quoteChar);
-XMLPUBFUN int XMLCALL			
-			htmlIsScriptAttribute(const xmlChar *name);
-XMLPUBFUN int XMLCALL			
-			htmlHandleOmittedElem(int val);
-
-#ifdef LIBXML_PUSH_ENABLED
-/**
- * Interfaces for the Push mode.
- */
-XMLPUBFUN htmlParserCtxtPtr XMLCALL	
-			htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax,
-						 void *user_data,
-						 const char *chunk,
-						 int size,
-						 const char *filename,
-						 xmlCharEncoding enc);
-XMLPUBFUN int XMLCALL			
-			htmlParseChunk		(htmlParserCtxtPtr ctxt,
-						 const char *chunk,
-						 int size,
-						 int terminate);
-#endif /* LIBXML_PUSH_ENABLED */
-
-XMLPUBFUN void XMLCALL			
-			htmlFreeParserCtxt	(htmlParserCtxtPtr ctxt);
-
-/*
- * New set of simpler/more flexible APIs
- */
-/**
- * xmlParserOption:
- *
- * This is the set of XML parser options that can be passed down
- * to the xmlReadDoc() and similar calls.
- */
-typedef enum {
-    HTML_PARSE_RECOVER  = 1<<0, /* Relaxed parsing */
-    HTML_PARSE_NOERROR	= 1<<5,	/* suppress error reports */
-    HTML_PARSE_NOWARNING= 1<<6,	/* suppress warning reports */
-    HTML_PARSE_PEDANTIC	= 1<<7,	/* pedantic error reporting */
-    HTML_PARSE_NOBLANKS	= 1<<8,	/* remove blank nodes */
-    HTML_PARSE_NONET	= 1<<11,/* Forbid network access */
-    HTML_PARSE_COMPACT  = 1<<16 /* compact small text nodes */
-} htmlParserOption;
-
-XMLPUBFUN void XMLCALL
-		htmlCtxtReset		(htmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-		htmlCtxtUseOptions	(htmlParserCtxtPtr ctxt,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlReadDoc		(const xmlChar *cur,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlReadFile		(const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlReadMemory		(const char *buffer,
-					 int size,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlReadFd		(int fd,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlReadIO		(xmlInputReadCallback ioread,
-					 xmlInputCloseCallback ioclose,
-					 void *ioctx,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlCtxtReadDoc		(xmlParserCtxtPtr ctxt,
-					 const xmlChar *cur,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlCtxtReadFile		(xmlParserCtxtPtr ctxt,
-					 const char *filename,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlCtxtReadMemory		(xmlParserCtxtPtr ctxt,
-					 const char *buffer,
-					 int size,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlCtxtReadFd		(xmlParserCtxtPtr ctxt,
-					 int fd,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlCtxtReadIO		(xmlParserCtxtPtr ctxt,
-					 xmlInputReadCallback ioread,
-					 xmlInputCloseCallback ioclose,
-					 void *ioctx,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-
-/* NRK/Jan2003: further knowledge of HTML structure
- */
-typedef enum {
-  HTML_NA = 0 ,		/* something we don't check at all */
-  HTML_INVALID = 0x1 ,
-  HTML_DEPRECATED = 0x2 ,
-  HTML_VALID = 0x4 ,
-  HTML_REQUIRED = 0xc /* VALID bit set so ( & HTML_VALID ) is TRUE */
-} htmlStatus ;
-
-/* Using htmlElemDesc rather than name here, to emphasise the fact
-   that otherwise there's a lookup overhead
-*/
-XMLPUBFUN htmlStatus XMLCALL htmlAttrAllowed(const htmlElemDesc*, const xmlChar*, int) ;
-XMLPUBFUN int XMLCALL htmlElementAllowedHere(const htmlElemDesc*, const xmlChar*) ;
-XMLPUBFUN htmlStatus XMLCALL htmlElementStatusHere(const htmlElemDesc*, const htmlElemDesc*) ;
-XMLPUBFUN htmlStatus XMLCALL htmlNodeStatus(const htmlNodePtr, int) ;
-/**
- * htmlDefaultSubelement:
- * @elt: HTML element
- *
- * Returns the default subelement for this element
- */
-#define htmlDefaultSubelement(elt) elt->defaultsubelt
-/**
- * htmlElementAllowedHereDesc:
- * @parent: HTML parent element
- * @elt: HTML element
- *
- * Checks whether an HTML element description may be a
- * direct child of the specified element.
- *
- * Returns 1 if allowed; 0 otherwise.
- */
-#define htmlElementAllowedHereDesc(parent,elt) \
-	htmlElementAllowedHere((parent), (elt)->name)
-/**
- * htmlRequiredAttrs:
- * @elt: HTML element
- *
- * Returns the attributes required for the specified element.
- */
-#define htmlRequiredAttrs(elt) (elt)->attrs_req
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_HTML_ENABLED */
-#endif /* __HTML_PARSER_H__ */
diff --git a/interfaces/ext/libxml/HTMLtree.h b/interfaces/ext/libxml/HTMLtree.h
deleted file mode 100644
index 6ea8207..0000000
--- a/interfaces/ext/libxml/HTMLtree.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Summary: specific APIs to process HTML tree, especially serialization
- * Description: this module implements a few function needed to process
- *              tree in an HTML specific way.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __HTML_TREE_H__
-#define __HTML_TREE_H__
-
-#include <stdio.h>
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-#include <libxml/HTMLparser.h>
-
-#ifdef LIBXML_HTML_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/**
- * HTML_TEXT_NODE:
- *
- * Macro. A text node in a HTML document is really implemented
- * the same way as a text node in an XML document.
- */
-#define HTML_TEXT_NODE		XML_TEXT_NODE
-/**
- * HTML_ENTITY_REF_NODE:
- *
- * Macro. An entity reference in a HTML document is really implemented
- * the same way as an entity reference in an XML document.
- */
-#define HTML_ENTITY_REF_NODE	XML_ENTITY_REF_NODE
-/**
- * HTML_COMMENT_NODE:
- *
- * Macro. A comment in a HTML document is really implemented
- * the same way as a comment in an XML document.
- */
-#define HTML_COMMENT_NODE	XML_COMMENT_NODE
-/**
- * HTML_PRESERVE_NODE:
- *
- * Macro. A preserved node in a HTML document is really implemented
- * the same way as a CDATA section in an XML document.
- */
-#define HTML_PRESERVE_NODE	XML_CDATA_SECTION_NODE
-/**
- * HTML_PI_NODE:
- *
- * Macro. A processing instruction in a HTML document is really implemented
- * the same way as a processing instruction in an XML document.
- */
-#define HTML_PI_NODE		XML_PI_NODE
-
-XMLPUBFUN htmlDocPtr XMLCALL
-		htmlNewDoc		(const xmlChar *URI,
-					 const xmlChar *ExternalID);
-XMLPUBFUN htmlDocPtr XMLCALL	
-		htmlNewDocNoDtD		(const xmlChar *URI,
-					 const xmlChar *ExternalID);
-XMLPUBFUN const xmlChar * XMLCALL	
-		htmlGetMetaEncoding	(htmlDocPtr doc);
-XMLPUBFUN int XMLCALL		
-		htmlSetMetaEncoding	(htmlDocPtr doc,
-					 const xmlChar *encoding);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL	    
-		htmlDocDumpMemory	(xmlDocPtr cur,
-					 xmlChar **mem,
-					 int *size);
-XMLPUBFUN void XMLCALL	    
-		htmlDocDumpMemoryFormat	(xmlDocPtr cur,
-					 xmlChar **mem,
-					 int *size,
-					 int format);
-XMLPUBFUN int XMLCALL		
-		htmlDocDump		(FILE *f,
-					 xmlDocPtr cur);
-XMLPUBFUN int XMLCALL		
-		htmlSaveFile		(const char *filename,
-					 xmlDocPtr cur);
-XMLPUBFUN int XMLCALL		
-		htmlNodeDump		(xmlBufferPtr buf,
-					 xmlDocPtr doc,
-					 xmlNodePtr cur);
-XMLPUBFUN void XMLCALL		
-		htmlNodeDumpFile	(FILE *out,
-					 xmlDocPtr doc,
-					 xmlNodePtr cur);
-XMLPUBFUN int XMLCALL		
-		htmlNodeDumpFileFormat	(FILE *out,
-					 xmlDocPtr doc,
-					 xmlNodePtr cur,
-					 const char *encoding,
-					 int format);
-XMLPUBFUN int XMLCALL		
-		htmlSaveFileEnc		(const char *filename,
-					 xmlDocPtr cur,
-					 const char *encoding);
-XMLPUBFUN int XMLCALL		
-		htmlSaveFileFormat	(const char *filename,
-					 xmlDocPtr cur,
-					 const char *encoding,
-					 int format);
-
-XMLPUBFUN void XMLCALL		
-		htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
-					 xmlDocPtr doc,
-					 xmlNodePtr cur,
-					 const char *encoding,
-					 int format);
-XMLPUBFUN void XMLCALL		
-		htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
-					 xmlDocPtr cur,
-					 const char *encoding);
-XMLPUBFUN void XMLCALL		
-		htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
-					 xmlDocPtr cur,
-					 const char *encoding,
-					 int format);
-XMLPUBFUN void XMLCALL 
-		htmlNodeDumpOutput	(xmlOutputBufferPtr buf, 
-					 xmlDocPtr doc,
-					 xmlNodePtr cur, 
-					 const char *encoding);
-
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-XMLPUBFUN int XMLCALL		
-		htmlIsBooleanAttr	(const xmlChar *name);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_HTML_ENABLED */
-
-#endif /* __HTML_TREE_H__ */
-
diff --git a/interfaces/ext/libxml/SAX.h b/interfaces/ext/libxml/SAX.h
deleted file mode 100644
index 0ca161b..0000000
--- a/interfaces/ext/libxml/SAX.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Summary: Old SAX version 1 handler, deprecated
- * Description: DEPRECATED set of SAX version 1 interfaces used to
- *              build the DOM tree.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __XML_SAX_H__
-#define __XML_SAX_H__
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libxml/xmlversion.h>
-#include <libxml/parser.h>
-#include <libxml/xlink.h>
-
-#ifdef LIBXML_LEGACY_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-XMLPUBFUN const xmlChar * XMLCALL
-		getPublicId			(void *ctx);
-XMLPUBFUN const xmlChar * XMLCALL	
-		getSystemId			(void *ctx);
-XMLPUBFUN void XMLCALL		
-		setDocumentLocator		(void *ctx,
-						 xmlSAXLocatorPtr loc);
-    
-XMLPUBFUN int XMLCALL		
-		getLineNumber			(void *ctx);
-XMLPUBFUN int XMLCALL		
-		getColumnNumber			(void *ctx);
-
-XMLPUBFUN int XMLCALL		
-		isStandalone			(void *ctx);
-XMLPUBFUN int XMLCALL		
-		hasInternalSubset		(void *ctx);
-XMLPUBFUN int XMLCALL		
-		hasExternalSubset		(void *ctx);
-
-XMLPUBFUN void XMLCALL		
-		internalSubset			(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID);
-XMLPUBFUN void XMLCALL		
-		externalSubset			(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID);
-XMLPUBFUN xmlEntityPtr XMLCALL	
-		getEntity			(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN xmlEntityPtr XMLCALL	
-		getParameterEntity		(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN xmlParserInputPtr XMLCALL 
-		resolveEntity			(void *ctx,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId);
-
-XMLPUBFUN void XMLCALL		
-		entityDecl			(void *ctx,
-						 const xmlChar *name,
-						 int type,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId,
-						 xmlChar *content);
-XMLPUBFUN void XMLCALL		
-		attributeDecl			(void *ctx,
-						 const xmlChar *elem,
-						 const xmlChar *fullname,
-						 int type,
-						 int def,
-						 const xmlChar *defaultValue,
-						 xmlEnumerationPtr tree);
-XMLPUBFUN void XMLCALL		
-		elementDecl			(void *ctx,
-						 const xmlChar *name,
-						 int type,
-						 xmlElementContentPtr content);
-XMLPUBFUN void XMLCALL		
-		notationDecl			(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId);
-XMLPUBFUN void XMLCALL		
-		unparsedEntityDecl		(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId,
-						 const xmlChar *notationName);
-
-XMLPUBFUN void XMLCALL		
-		startDocument			(void *ctx);
-XMLPUBFUN void XMLCALL		
-		endDocument			(void *ctx);
-XMLPUBFUN void XMLCALL		
-		attribute			(void *ctx,
-						 const xmlChar *fullname,
-						 const xmlChar *value);
-XMLPUBFUN void XMLCALL		
-		startElement			(void *ctx,
-						 const xmlChar *fullname,
-						 const xmlChar **atts);
-XMLPUBFUN void XMLCALL		
-		endElement			(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN void XMLCALL		
-		reference			(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN void XMLCALL		
-		characters			(void *ctx,
-						 const xmlChar *ch,
-						 int len);
-XMLPUBFUN void XMLCALL		
-		ignorableWhitespace		(void *ctx,
-						 const xmlChar *ch,
-						 int len);
-XMLPUBFUN void XMLCALL		
-		processingInstruction		(void *ctx,
-						 const xmlChar *target,
-						 const xmlChar *data);
-XMLPUBFUN void XMLCALL		
-		globalNamespace			(void *ctx,
-						 const xmlChar *href,
-						 const xmlChar *prefix);
-XMLPUBFUN void XMLCALL		
-		setNamespace			(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN xmlNsPtr XMLCALL	
-		getNamespace			(void *ctx);
-XMLPUBFUN int XMLCALL		
-		checkNamespace			(void *ctx,
-						 xmlChar *nameSpace);
-XMLPUBFUN void XMLCALL		
-		namespaceDecl			(void *ctx,
-						 const xmlChar *href,
-						 const xmlChar *prefix);
-XMLPUBFUN void XMLCALL		
-		comment				(void *ctx,
-						 const xmlChar *value);
-XMLPUBFUN void XMLCALL		
-		cdataBlock			(void *ctx,
-						 const xmlChar *value,
-						 int len);
-
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN void XMLCALL		
-		initxmlDefaultSAXHandler	(xmlSAXHandlerV1 *hdlr,
-						 int warning);
-#ifdef LIBXML_HTML_ENABLED
-XMLPUBFUN void XMLCALL		
-		inithtmlDefaultSAXHandler	(xmlSAXHandlerV1 *hdlr);
-#endif
-#ifdef LIBXML_DOCB_ENABLED
-XMLPUBFUN void XMLCALL		
-		initdocbDefaultSAXHandler	(xmlSAXHandlerV1 *hdlr);
-#endif
-#endif /* LIBXML_SAX1_ENABLED */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_LEGACY_ENABLED */
-
-#endif /* __XML_SAX_H__ */
diff --git a/interfaces/ext/libxml/SAX2.h b/interfaces/ext/libxml/SAX2.h
deleted file mode 100644
index 8d2db02..0000000
--- a/interfaces/ext/libxml/SAX2.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Summary: SAX2 parser interface used to build the DOM tree
- * Description: those are the default SAX2 interfaces used by
- *              the library when building DOM tree.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __XML_SAX2_H__
-#define __XML_SAX2_H__
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libxml/xmlversion.h>
-#include <libxml/parser.h>
-#include <libxml/xlink.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-XMLPUBFUN const xmlChar * XMLCALL
-		xmlSAX2GetPublicId		(void *ctx);
-XMLPUBFUN const xmlChar * XMLCALL	
-		xmlSAX2GetSystemId		(void *ctx);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2SetDocumentLocator	(void *ctx,
-						 xmlSAXLocatorPtr loc);
-    
-XMLPUBFUN int XMLCALL		
-		xmlSAX2GetLineNumber		(void *ctx);
-XMLPUBFUN int XMLCALL		
-		xmlSAX2GetColumnNumber		(void *ctx);
-
-XMLPUBFUN int XMLCALL		
-		xmlSAX2IsStandalone		(void *ctx);
-XMLPUBFUN int XMLCALL		
-		xmlSAX2HasInternalSubset	(void *ctx);
-XMLPUBFUN int XMLCALL		
-		xmlSAX2HasExternalSubset	(void *ctx);
-
-XMLPUBFUN void XMLCALL		
-		xmlSAX2InternalSubset		(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2ExternalSubset		(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID);
-XMLPUBFUN xmlEntityPtr XMLCALL	
-		xmlSAX2GetEntity		(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN xmlEntityPtr XMLCALL	
-		xmlSAX2GetParameterEntity	(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN xmlParserInputPtr XMLCALL 
-		xmlSAX2ResolveEntity		(void *ctx,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId);
-
-XMLPUBFUN void XMLCALL		
-		xmlSAX2EntityDecl		(void *ctx,
-						 const xmlChar *name,
-						 int type,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId,
-						 xmlChar *content);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2AttributeDecl		(void *ctx,
-						 const xmlChar *elem,
-						 const xmlChar *fullname,
-						 int type,
-						 int def,
-						 const xmlChar *defaultValue,
-						 xmlEnumerationPtr tree);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2ElementDecl		(void *ctx,
-						 const xmlChar *name,
-						 int type,
-						 xmlElementContentPtr content);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2NotationDecl		(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2UnparsedEntityDecl	(void *ctx,
-						 const xmlChar *name,
-						 const xmlChar *publicId,
-						 const xmlChar *systemId,
-						 const xmlChar *notationName);
-
-XMLPUBFUN void XMLCALL		
-		xmlSAX2StartDocument		(void *ctx);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2EndDocument		(void *ctx);
-#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
-XMLPUBFUN void XMLCALL		
-		xmlSAX2StartElement		(void *ctx,
-						 const xmlChar *fullname,
-						 const xmlChar **atts);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2EndElement		(void *ctx,
-						 const xmlChar *name);
-#endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED */
-XMLPUBFUN void XMLCALL
-		xmlSAX2StartElementNs		(void *ctx,
-						 const xmlChar *localname,
-						 const xmlChar *prefix,
-						 const xmlChar *URI,
-						 int nb_namespaces,
-						 const xmlChar **namespaces,
-						 int nb_attributes,
-						 int nb_defaulted,
-						 const xmlChar **attributes);
-XMLPUBFUN void XMLCALL
-		xmlSAX2EndElementNs		(void *ctx,
-						 const xmlChar *localname,
-						 const xmlChar *prefix,
-						 const xmlChar *URI);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2Reference		(void *ctx,
-						 const xmlChar *name);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2Characters		(void *ctx,
-						 const xmlChar *ch,
-						 int len);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2IgnorableWhitespace	(void *ctx,
-						 const xmlChar *ch,
-						 int len);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2ProcessingInstruction	(void *ctx,
-						 const xmlChar *target,
-						 const xmlChar *data);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2Comment			(void *ctx,
-						 const xmlChar *value);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2CDataBlock		(void *ctx,
-						 const xmlChar *value,
-						 int len);
-
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN int XMLCALL
-		xmlSAXDefaultVersion		(int version);
-#endif /* LIBXML_SAX1_ENABLED */
-
-XMLPUBFUN int XMLCALL
-		xmlSAXVersion			(xmlSAXHandler *hdlr,
-						 int version);
-XMLPUBFUN void XMLCALL		
-		xmlSAX2InitDefaultSAXHandler    (xmlSAXHandler *hdlr,
-						 int warning);
-#ifdef LIBXML_HTML_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr);
-XMLPUBFUN void XMLCALL		
-		htmlDefaultSAXHandlerInit	(void);
-#endif
-#ifdef LIBXML_DOCB_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlSAX2InitDocbDefaultSAXHandler(xmlSAXHandler *hdlr);
-XMLPUBFUN void XMLCALL		
-		docbDefaultSAXHandlerInit	(void);
-#endif
-XMLPUBFUN void XMLCALL		
-		xmlDefaultSAXHandlerInit	(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_SAX2_H__ */
diff --git a/interfaces/ext/libxml/c14n.h b/interfaces/ext/libxml/c14n.h
deleted file mode 100644
index a8aa737..0000000
--- a/interfaces/ext/libxml/c14n.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Summary: Provide Canonical XML and Exclusive XML Canonicalization
- * Description: the c14n modules provides a
- *
- * "Canonical XML" implementation
- * http://www.w3.org/TR/xml-c14n
- *
- * and an
- *
- * "Exclusive XML Canonicalization" implementation
- * http://www.w3.org/TR/xml-exc-c14n
-
- * Copy: See Copyright for the status of this software.
- *
- * Author: Aleksey Sanin <aleksey at aleksey.com>
- */
-#ifndef __XML_C14N_H__
-#define __XML_C14N_H__
-#ifdef LIBXML_C14N_ENABLED
-#ifdef LIBXML_OUTPUT_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-#include <libxml/xpath.h>
-
-/*
- * XML Canonicazation
- * http://www.w3.org/TR/xml-c14n
- *
- * Exclusive XML Canonicazation
- * http://www.w3.org/TR/xml-exc-c14n
- *
- * Canonical form of an XML document could be created if and only if
- *  a) default attributes (if any) are added to all nodes
- *  b) all character and parsed entity references are resolved
- * In order to achive this in libxml2 the document MUST be loaded with
- * following global setings:
- *
- *    xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
- *    xmlSubstituteEntitiesDefault(1);
- *
- * or corresponding parser context setting:
- *    xmlParserCtxtPtr ctxt;
- *
- *    ...
- *    ctxt->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
- *    ctxt->replaceEntities = 1;
- *    ...
- */
-
-
-XMLPUBFUN int XMLCALL
-		xmlC14NDocSaveTo	(xmlDocPtr doc,
-					 xmlNodeSetPtr nodes,
-					 int exclusive,
-					 xmlChar **inclusive_ns_prefixes,
-					 int with_comments,
-					 xmlOutputBufferPtr buf);
-
-XMLPUBFUN int XMLCALL
-		xmlC14NDocDumpMemory	(xmlDocPtr doc,
-					 xmlNodeSetPtr nodes,
-					 int exclusive,
-					 xmlChar **inclusive_ns_prefixes,
-					 int with_comments,
-					 xmlChar **doc_txt_ptr);
-
-XMLPUBFUN int XMLCALL
-		xmlC14NDocSave		(xmlDocPtr doc,
-					 xmlNodeSetPtr nodes,
-					 int exclusive,
-					 xmlChar **inclusive_ns_prefixes,
-					 int with_comments,
-					 const char* filename,
-					 int compression);
-
-
-/**
- * This is the core C14N function
- */
-/**
- * xmlC14NIsVisibleCallback:
- * @user_data: user data
- * @node: the curent node
- * @parent: the parent node
- *
- * Signature for a C14N callback on visible nodes
- *
- * Returns 1 if the node should be included
- */
-typedef int (*xmlC14NIsVisibleCallback)	(void* user_data,
-					 xmlNodePtr node,
-					 xmlNodePtr parent);
-
-XMLPUBFUN int XMLCALL
-		xmlC14NExecute		(xmlDocPtr doc,
-					 xmlC14NIsVisibleCallback is_visible_callback,
-					 void* user_data,
-					 int exclusive,
-					 xmlChar **inclusive_ns_prefixes,
-					 int with_comments,
-					 xmlOutputBufferPtr buf);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* LIBXML_OUTPUT_ENABLED */
-#endif /* LIBXML_C14N_ENABLED */
-#endif /* __XML_C14N_H__ */
-
diff --git a/interfaces/ext/libxml/catalog.h b/interfaces/ext/libxml/catalog.h
deleted file mode 100644
index b444137..0000000
--- a/interfaces/ext/libxml/catalog.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * Summary: interfaces to the Catalog handling system
- * Description: the catalog module implements the support for
- * XML Catalogs and SGML catalogs
- *
- * SGML Open Technical Resolution TR9401:1997.
- * http://www.jclark.com/sp/catalog.htm
- *
- * XML Catalogs Working Draft 06 August 2001
- * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_CATALOG_H__
-#define __XML_CATALOG_H__
-
-#include <stdio.h>
-
-#include <libxml/xmlversion.h>
-#include <libxml/xmlstring.h>
-#include <libxml/tree.h>
-
-#ifdef LIBXML_CATALOG_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * XML_CATALOGS_NAMESPACE:
- *
- * The namespace for the XML Catalogs elements.
- */
-#define XML_CATALOGS_NAMESPACE					\
-    (const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog"
-/**
- * XML_CATALOG_PI:
- *
- * The specific XML Catalog Processing Instuction name.
- */
-#define XML_CATALOG_PI						\
-    (const xmlChar *) "oasis-xml-catalog"
-
-/*
- * The API is voluntarily limited to general cataloging.
- */
-typedef enum {
-    XML_CATA_PREFER_NONE = 0,
-    XML_CATA_PREFER_PUBLIC = 1,
-    XML_CATA_PREFER_SYSTEM
-} xmlCatalogPrefer;
-
-typedef enum {
-    XML_CATA_ALLOW_NONE = 0,
-    XML_CATA_ALLOW_GLOBAL = 1,
-    XML_CATA_ALLOW_DOCUMENT = 2,
-    XML_CATA_ALLOW_ALL = 3
-} xmlCatalogAllow;
-
-typedef struct _xmlCatalog xmlCatalog;
-typedef xmlCatalog *xmlCatalogPtr;
-
-/*
- * Operations on a given catalog.
- */
-XMLPUBFUN xmlCatalogPtr XMLCALL
-		xmlNewCatalog		(int sgml);
-XMLPUBFUN xmlCatalogPtr XMLCALL	
-		xmlLoadACatalog		(const char *filename);
-XMLPUBFUN xmlCatalogPtr XMLCALL	
-		xmlLoadSGMLSuperCatalog	(const char *filename);
-XMLPUBFUN int XMLCALL		
-		xmlConvertSGMLCatalog	(xmlCatalogPtr catal);
-XMLPUBFUN int XMLCALL		
-		xmlACatalogAdd		(xmlCatalogPtr catal,
-					 const xmlChar *type,
-					 const xmlChar *orig,
-					 const xmlChar *replace);
-XMLPUBFUN int XMLCALL		
-		xmlACatalogRemove	(xmlCatalogPtr catal,
-					 const xmlChar *value);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlACatalogResolve	(xmlCatalogPtr catal,
-					 const xmlChar *pubID,
-	                                 const xmlChar *sysID);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlACatalogResolveSystem(xmlCatalogPtr catal,
-					 const xmlChar *sysID);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlACatalogResolvePublic(xmlCatalogPtr catal,
-					 const xmlChar *pubID);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlACatalogResolveURI	(xmlCatalogPtr catal,
-					 const xmlChar *URI);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlACatalogDump		(xmlCatalogPtr catal,
-					 FILE *out);
-#endif /* LIBXML_OUTPUT_ENABLED */
-XMLPUBFUN void XMLCALL		
-		xmlFreeCatalog		(xmlCatalogPtr catal);
-XMLPUBFUN int XMLCALL		
-		xmlCatalogIsEmpty	(xmlCatalogPtr catal);
-
-/*
- * Global operations.
- */
-XMLPUBFUN void XMLCALL		
-		xmlInitializeCatalog	(void);
-XMLPUBFUN int XMLCALL		
-		xmlLoadCatalog		(const char *filename);
-XMLPUBFUN void XMLCALL		
-		xmlLoadCatalogs		(const char *paths);
-XMLPUBFUN void XMLCALL		
-		xmlCatalogCleanup	(void);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlCatalogDump		(FILE *out);
-#endif /* LIBXML_OUTPUT_ENABLED */
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlCatalogResolve	(const xmlChar *pubID,
-	                                 const xmlChar *sysID);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlCatalogResolveSystem	(const xmlChar *sysID);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlCatalogResolvePublic	(const xmlChar *pubID);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlCatalogResolveURI	(const xmlChar *URI);
-XMLPUBFUN int XMLCALL		
-		xmlCatalogAdd		(const xmlChar *type,
-					 const xmlChar *orig,
-					 const xmlChar *replace);
-XMLPUBFUN int XMLCALL		
-		xmlCatalogRemove	(const xmlChar *value);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlParseCatalogFile	(const char *filename);
-XMLPUBFUN int XMLCALL		
-		xmlCatalogConvert	(void);
-
-/*
- * Strictly minimal interfaces for per-document catalogs used
- * by the parser.
- */
-XMLPUBFUN void XMLCALL		
-		xmlCatalogFreeLocal	(void *catalogs);
-XMLPUBFUN void * XMLCALL		
-		xmlCatalogAddLocal	(void *catalogs,
-					 const xmlChar *URL);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlCatalogLocalResolve	(void *catalogs,
-					 const xmlChar *pubID,
-	                                 const xmlChar *sysID);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlCatalogLocalResolveURI(void *catalogs,
-					 const xmlChar *URI);
-/*
- * Preference settings.
- */
-XMLPUBFUN int XMLCALL		
-		xmlCatalogSetDebug	(int level);
-XMLPUBFUN xmlCatalogPrefer XMLCALL 
-		xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer);
-XMLPUBFUN void XMLCALL		
-		xmlCatalogSetDefaults	(xmlCatalogAllow allow);
-XMLPUBFUN xmlCatalogAllow XMLCALL	
-		xmlCatalogGetDefaults	(void);
-
-
-/* DEPRECATED interfaces */
-XMLPUBFUN const xmlChar * XMLCALL	
-		xmlCatalogGetSystem	(const xmlChar *sysID);
-XMLPUBFUN const xmlChar * XMLCALL	
-		xmlCatalogGetPublic	(const xmlChar *pubID);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* LIBXML_CATALOG_ENABLED */
-#endif /* __XML_CATALOG_H__ */
diff --git a/interfaces/ext/libxml/chvalid.h b/interfaces/ext/libxml/chvalid.h
deleted file mode 100644
index fb43016..0000000
--- a/interfaces/ext/libxml/chvalid.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Summary: Unicode character range checking
- * Description: this module exports interfaces for the character
- *               range validation APIs
- *
- * This file is automatically generated from the cvs source
- * definition files using the genChRanges.py Python script
- *
- * Generation date: Mon Mar 27 11:09:48 2006
- * Sources: chvalid.def
- * Author: William Brack <wbrack at mmm.com.hk>
- */
-
-#ifndef __XML_CHVALID_H__
-#define __XML_CHVALID_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/xmlstring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Define our typedefs and structures
- *
- */
-typedef struct _xmlChSRange xmlChSRange;
-typedef xmlChSRange *xmlChSRangePtr;
-struct _xmlChSRange {
-    unsigned short	low;
-    unsigned short	high;
-};
-
-typedef struct _xmlChLRange xmlChLRange;
-typedef xmlChLRange *xmlChLRangePtr;
-struct _xmlChLRange {
-    unsigned int	low;
-    unsigned int	high;
-};
-
-typedef struct _xmlChRangeGroup xmlChRangeGroup;
-typedef xmlChRangeGroup *xmlChRangeGroupPtr;
-struct _xmlChRangeGroup {
-    int			nbShortRange;
-    int			nbLongRange;
-    const xmlChSRange	*shortRange;	/* points to an array of ranges */
-    const xmlChLRange	*longRange;
-};
-
-/**
- * Range checking routine
- */
-XMLPUBFUN int XMLCALL
-		xmlCharInRange(unsigned int val, const xmlChRangeGroup *group);
-
-
-/**
- * xmlIsBaseChar_ch:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsBaseChar_ch(c)	(((0x41 <= (c)) && ((c) <= 0x5a)) || \
-				 ((0x61 <= (c)) && ((c) <= 0x7a)) || \
-				 ((0xc0 <= (c)) && ((c) <= 0xd6)) || \
-				 ((0xd8 <= (c)) && ((c) <= 0xf6)) || \
-				  (0xf8 <= (c)))
-
-/**
- * xmlIsBaseCharQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsBaseCharQ(c)	(((c) < 0x100) ? \
-				 xmlIsBaseChar_ch((c)) : \
-				 xmlCharInRange((c), &xmlIsBaseCharGroup))
-
-XMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup;
-
-/**
- * xmlIsBlank_ch:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsBlank_ch(c)	(((c) == 0x20) || \
-				 ((0x9 <= (c)) && ((c) <= 0xa)) || \
-				 ((c) == 0xd))
-
-/**
- * xmlIsBlankQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsBlankQ(c)		(((c) < 0x100) ? \
-				 xmlIsBlank_ch((c)) : 0)
-
-
-/**
- * xmlIsChar_ch:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsChar_ch(c)		(((0x9 <= (c)) && ((c) <= 0xa)) || \
-				 ((c) == 0xd) || \
-				  (0x20 <= (c)))
-
-/**
- * xmlIsCharQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsCharQ(c)		(((c) < 0x100) ? \
-				 xmlIsChar_ch((c)) :\
-				(((0x100 <= (c)) && ((c) <= 0xd7ff)) || \
-				 ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \
-				 ((0x10000 <= (c)) && ((c) <= 0x10ffff))))
-
-XMLPUBVAR const xmlChRangeGroup xmlIsCharGroup;
-
-/**
- * xmlIsCombiningQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsCombiningQ(c)	(((c) < 0x100) ? \
-				 0 : \
-				 xmlCharInRange((c), &xmlIsCombiningGroup))
-
-XMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup;
-
-/**
- * xmlIsDigit_ch:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsDigit_ch(c)	(((0x30 <= (c)) && ((c) <= 0x39)))
-
-/**
- * xmlIsDigitQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsDigitQ(c)		(((c) < 0x100) ? \
-				 xmlIsDigit_ch((c)) : \
-				 xmlCharInRange((c), &xmlIsDigitGroup))
-
-XMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup;
-
-/**
- * xmlIsExtender_ch:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsExtender_ch(c)	(((c) == 0xb7))
-
-/**
- * xmlIsExtenderQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsExtenderQ(c)	(((c) < 0x100) ? \
-				 xmlIsExtender_ch((c)) : \
-				 xmlCharInRange((c), &xmlIsExtenderGroup))
-
-XMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup;
-
-/**
- * xmlIsIdeographicQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsIdeographicQ(c)	(((c) < 0x100) ? \
-				 0 :\
-				(((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \
-				 ((c) == 0x3007) || \
-				 ((0x3021 <= (c)) && ((c) <= 0x3029))))
-
-XMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup;
-XMLPUBVAR const unsigned char xmlIsPubidChar_tab[256];
-
-/**
- * xmlIsPubidChar_ch:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsPubidChar_ch(c)	(xmlIsPubidChar_tab[(c)])
-
-/**
- * xmlIsPubidCharQ:
- * @c: char to validate
- *
- * Automatically generated by genChRanges.py
- */
-#define xmlIsPubidCharQ(c)	(((c) < 0x100) ? \
-				 xmlIsPubidChar_ch((c)) : 0)
-
-XMLPUBFUN int XMLCALL
-		xmlIsBaseChar(unsigned int ch);
-XMLPUBFUN int XMLCALL
-		xmlIsBlank(unsigned int ch);
-XMLPUBFUN int XMLCALL
-		xmlIsChar(unsigned int ch);
-XMLPUBFUN int XMLCALL
-		xmlIsCombining(unsigned int ch);
-XMLPUBFUN int XMLCALL
-		xmlIsDigit(unsigned int ch);
-XMLPUBFUN int XMLCALL
-		xmlIsExtender(unsigned int ch);
-XMLPUBFUN int XMLCALL
-		xmlIsIdeographic(unsigned int ch);
-XMLPUBFUN int XMLCALL
-		xmlIsPubidChar(unsigned int ch);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_CHVALID_H__ */
diff --git a/interfaces/ext/libxml/debugXML.h b/interfaces/ext/libxml/debugXML.h
deleted file mode 100644
index 5a9d20b..0000000
--- a/interfaces/ext/libxml/debugXML.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Summary: Tree debugging APIs
- * Description: Interfaces to a set of routines used for debugging the tree
- *              produced by the XML parser.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __DEBUG_XML__
-#define __DEBUG_XML__
-#include <stdio.h>
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-
-#ifdef LIBXML_DEBUG_ENABLED
-
-#include <libxml/xpath.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The standard Dump routines.
- */
-XMLPUBFUN void XMLCALL	
-	xmlDebugDumpString	(FILE *output,
-				 const xmlChar *str);
-XMLPUBFUN void XMLCALL	
-	xmlDebugDumpAttr	(FILE *output,
-				 xmlAttrPtr attr,
-				 int depth);
-XMLPUBFUN void XMLCALL	
-	xmlDebugDumpAttrList	(FILE *output,
-				 xmlAttrPtr attr,
-				 int depth);
-XMLPUBFUN void XMLCALL	
-	xmlDebugDumpOneNode	(FILE *output,
-				 xmlNodePtr node,
-				 int depth);
-XMLPUBFUN void XMLCALL
-	xmlDebugDumpNode	(FILE *output,
-				 xmlNodePtr node,
-				 int depth);
-XMLPUBFUN void XMLCALL
-	xmlDebugDumpNodeList	(FILE *output,
-				 xmlNodePtr node,
-				 int depth);
-XMLPUBFUN void XMLCALL
-	xmlDebugDumpDocumentHead(FILE *output,
-				 xmlDocPtr doc);
-XMLPUBFUN void XMLCALL
-	xmlDebugDumpDocument	(FILE *output,
-				 xmlDocPtr doc);
-XMLPUBFUN void XMLCALL	
-	xmlDebugDumpDTD		(FILE *output,
-				 xmlDtdPtr dtd);
-XMLPUBFUN void XMLCALL	
-	xmlDebugDumpEntities	(FILE *output,
-				 xmlDocPtr doc);
-
-/****************************************************************
- *								*
- *	 		Checking routines			*
- *								*
- ****************************************************************/
-
-XMLPUBFUN int XMLCALL
-	xmlDebugCheckDocument	(FILE * output,
-				 xmlDocPtr doc);
-
-/****************************************************************
- *								*
- *	 		XML shell helpers			*
- *								*
- ****************************************************************/
-
-XMLPUBFUN void XMLCALL	
-	xmlLsOneNode		(FILE *output, xmlNodePtr node);
-XMLPUBFUN int XMLCALL	
-	xmlLsCountNode		(xmlNodePtr node);
-
-XMLPUBFUN const char * XMLCALL 
-	xmlBoolToText		(int boolval);
-
-/****************************************************************
- *								*
- *	 The XML shell related structures and functions		*
- *								*
- ****************************************************************/
-
-#ifdef LIBXML_XPATH_ENABLED
-/**
- * xmlShellReadlineFunc:
- * @prompt:  a string prompt
- *
- * This is a generic signature for the XML shell input function.
- *
- * Returns a string which will be freed by the Shell.
- */
-typedef char * (* xmlShellReadlineFunc)(char *prompt);
-
-/**
- * xmlShellCtxt:
- *
- * A debugging shell context.
- * TODO: add the defined function tables.
- */
-typedef struct _xmlShellCtxt xmlShellCtxt;
-typedef xmlShellCtxt *xmlShellCtxtPtr;
-struct _xmlShellCtxt {
-    char *filename;
-    xmlDocPtr doc;
-    xmlNodePtr node;
-    xmlXPathContextPtr pctxt;
-    int loaded;
-    FILE *output;
-    xmlShellReadlineFunc input;
-};
-
-/**
- * xmlShellCmd:
- * @ctxt:  a shell context
- * @arg:  a string argument
- * @node:  a first node
- * @node2:  a second node
- *
- * This is a generic signature for the XML shell functions.
- *
- * Returns an int, negative returns indicating errors.
- */
-typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
-                             char *arg,
-			     xmlNodePtr node,
-			     xmlNodePtr node2);
-
-XMLPUBFUN void XMLCALL	
-	xmlShellPrintXPathError	(int errorType,
-				 const char *arg);
-XMLPUBFUN void XMLCALL	
-	xmlShellPrintXPathResult(xmlXPathObjectPtr list);
-XMLPUBFUN int XMLCALL	
-	xmlShellList		(xmlShellCtxtPtr ctxt,
-				 char *arg,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-XMLPUBFUN int XMLCALL	
-	xmlShellBase		(xmlShellCtxtPtr ctxt,
-				 char *arg,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-XMLPUBFUN int XMLCALL	
-	xmlShellDir		(xmlShellCtxtPtr ctxt,
-				 char *arg,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-XMLPUBFUN int XMLCALL	
-	xmlShellLoad		(xmlShellCtxtPtr ctxt,
-				 char *filename,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL	
-	xmlShellPrintNode	(xmlNodePtr node);
-XMLPUBFUN int XMLCALL	
-	xmlShellCat		(xmlShellCtxtPtr ctxt,
-				 char *arg,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-XMLPUBFUN int XMLCALL	
-	xmlShellWrite		(xmlShellCtxtPtr ctxt,
-				 char *filename,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-XMLPUBFUN int XMLCALL	
-	xmlShellSave		(xmlShellCtxtPtr ctxt,
-				 char *filename,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-#endif /* LIBXML_OUTPUT_ENABLED */
-#ifdef LIBXML_VALID_ENABLED
-XMLPUBFUN int XMLCALL	
-	xmlShellValidate	(xmlShellCtxtPtr ctxt,
-				 char *dtd,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-#endif /* LIBXML_VALID_ENABLED */
-XMLPUBFUN int XMLCALL	
-	xmlShellDu		(xmlShellCtxtPtr ctxt,
-				 char *arg,
-				 xmlNodePtr tree,
-				 xmlNodePtr node2);
-XMLPUBFUN int XMLCALL	
-	xmlShellPwd		(xmlShellCtxtPtr ctxt,
-				 char *buffer,
-				 xmlNodePtr node,
-				 xmlNodePtr node2);
-
-/*
- * The Shell interface.
- */
-XMLPUBFUN void XMLCALL	
-	xmlShell		(xmlDocPtr doc,
-				 char *filename,
-				 xmlShellReadlineFunc input,
-				 FILE *output);
-			 
-#endif /* LIBXML_XPATH_ENABLED */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_DEBUG_ENABLED */
-#endif /* __DEBUG_XML__ */
diff --git a/interfaces/ext/libxml/dict.h b/interfaces/ext/libxml/dict.h
deleted file mode 100644
index abb8339..0000000
--- a/interfaces/ext/libxml/dict.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Summary: string dictionnary
- * Description: dictionary of reusable strings, just used to avoid allocation
- *         and freeing operations.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_DICT_H__
-#define __XML_DICT_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The dictionnary.
- */
-typedef struct _xmlDict xmlDict;
-typedef xmlDict *xmlDictPtr;
-
-/*
- * Constructor and destructor.
- */
-XMLPUBFUN xmlDictPtr XMLCALL
-			xmlDictCreate	(void);
-XMLPUBFUN xmlDictPtr XMLCALL
-			xmlDictCreateSub(xmlDictPtr sub);
-XMLPUBFUN int XMLCALL
-			xmlDictReference(xmlDictPtr dict);
-XMLPUBFUN void XMLCALL			
-			xmlDictFree	(xmlDictPtr dict);
-
-/*
- * Lookup of entry in the dictionnary.
- */
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlDictLookup	(xmlDictPtr dict,
-		                         const xmlChar *name,
-		                         int len);
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlDictExists	(xmlDictPtr dict,
-		                         const xmlChar *name,
-		                         int len);
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlDictQLookup	(xmlDictPtr dict,
-		                         const xmlChar *prefix,
-		                         const xmlChar *name);
-XMLPUBFUN int XMLCALL
-			xmlDictOwns	(xmlDictPtr dict,
-					 const xmlChar *str);
-XMLPUBFUN int XMLCALL			
-			xmlDictSize	(xmlDictPtr dict);
-
-/*
- * Cleanup function
- */
-XMLPUBFUN void XMLCALL
-                        xmlDictCleanup  (void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* ! __XML_DICT_H__ */
diff --git a/interfaces/ext/libxml/encoding.h b/interfaces/ext/libxml/encoding.h
deleted file mode 100644
index c74b25f..0000000
--- a/interfaces/ext/libxml/encoding.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Summary: interface for the encoding conversion functions
- * Description: interface for the encoding conversion functions needed for
- *              XML basic encoding and iconv() support.
- *
- * Related specs are
- * rfc2044        (UTF-8 and UTF-16) F. Yergeau Alis Technologies
- * [ISO-10646]    UTF-8 and UTF-16 in Annexes
- * [ISO-8859-1]   ISO Latin-1 characters codes.
- * [UNICODE]      The Unicode Consortium, "The Unicode Standard --
- *                Worldwide Character Encoding -- Version 1.0", Addison-
- *                Wesley, Volume 1, 1991, Volume 2, 1992.  UTF-8 is
- *                described in Unicode Technical Report #4.
- * [US-ASCII]     Coded Character Set--7-bit American Standard Code for
- *                Information Interchange, ANSI X3.4-1986.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_CHAR_ENCODING_H__
-#define __XML_CHAR_ENCODING_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_ICONV_ENABLED
-#include <iconv.h>
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * xmlCharEncoding:
- *
- * Predefined values for some standard encodings.
- * Libxml does not do beforehand translation on UTF8 and ISOLatinX.
- * It also supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default.
- *
- * Anything else would have to be translated to UTF8 before being
- * given to the parser itself. The BOM for UTF16 and the encoding
- * declaration are looked at and a converter is looked for at that
- * point. If not found the parser stops here as asked by the XML REC. A
- * converter can be registered by the user using xmlRegisterCharEncodingHandler
- * but the current form doesn't allow stateful transcoding (a serious
- * problem agreed !). If iconv has been found it will be used
- * automatically and allow stateful transcoding, the simplest is then
- * to be sure to enable iconv and to provide iconv libs for the encoding
- * support needed.
- *
- * Note that the generic "UTF-16" is not a predefined value.  Instead, only
- * the specific UTF-16LE and UTF-16BE are present.
- */
-typedef enum {
-    XML_CHAR_ENCODING_ERROR=   -1, /* No char encoding detected */
-    XML_CHAR_ENCODING_NONE=	0, /* No char encoding detected */
-    XML_CHAR_ENCODING_UTF8=	1, /* UTF-8 */
-    XML_CHAR_ENCODING_UTF16LE=	2, /* UTF-16 little endian */
-    XML_CHAR_ENCODING_UTF16BE=	3, /* UTF-16 big endian */
-    XML_CHAR_ENCODING_UCS4LE=	4, /* UCS-4 little endian */
-    XML_CHAR_ENCODING_UCS4BE=	5, /* UCS-4 big endian */
-    XML_CHAR_ENCODING_EBCDIC=	6, /* EBCDIC uh! */
-    XML_CHAR_ENCODING_UCS4_2143=7, /* UCS-4 unusual ordering */
-    XML_CHAR_ENCODING_UCS4_3412=8, /* UCS-4 unusual ordering */
-    XML_CHAR_ENCODING_UCS2=	9, /* UCS-2 */
-    XML_CHAR_ENCODING_8859_1=	10,/* ISO-8859-1 ISO Latin 1 */
-    XML_CHAR_ENCODING_8859_2=	11,/* ISO-8859-2 ISO Latin 2 */
-    XML_CHAR_ENCODING_8859_3=	12,/* ISO-8859-3 */
-    XML_CHAR_ENCODING_8859_4=	13,/* ISO-8859-4 */
-    XML_CHAR_ENCODING_8859_5=	14,/* ISO-8859-5 */
-    XML_CHAR_ENCODING_8859_6=	15,/* ISO-8859-6 */
-    XML_CHAR_ENCODING_8859_7=	16,/* ISO-8859-7 */
-    XML_CHAR_ENCODING_8859_8=	17,/* ISO-8859-8 */
-    XML_CHAR_ENCODING_8859_9=	18,/* ISO-8859-9 */
-    XML_CHAR_ENCODING_2022_JP=  19,/* ISO-2022-JP */
-    XML_CHAR_ENCODING_SHIFT_JIS=20,/* Shift_JIS */
-    XML_CHAR_ENCODING_EUC_JP=   21,/* EUC-JP */
-    XML_CHAR_ENCODING_ASCII=    22 /* pure ASCII */
-} xmlCharEncoding;
-
-/**
- * xmlCharEncodingInputFunc:
- * @out:  a pointer to an array of bytes to store the UTF-8 result
- * @outlen:  the length of @out
- * @in:  a pointer to an array of chars in the original encoding
- * @inlen:  the length of @in
- *
- * Take a block of chars in the original encoding and try to convert
- * it to an UTF-8 block of chars out.
- *
- * Returns the number of bytes written, -1 if lack of space, or -2
- *     if the transcoding failed.
- * The value of @inlen after return is the number of octets consumed
- *     if the return value is positive, else unpredictiable.
- * The value of @outlen after return is the number of octets consumed.
- */
-typedef int (* xmlCharEncodingInputFunc)(unsigned char *out, int *outlen,
-                                         const unsigned char *in, int *inlen);
-
-
-/**
- * xmlCharEncodingOutputFunc:
- * @out:  a pointer to an array of bytes to store the result
- * @outlen:  the length of @out
- * @in:  a pointer to an array of UTF-8 chars
- * @inlen:  the length of @in
- *
- * Take a block of UTF-8 chars in and try to convert it to another
- * encoding.
- * Note: a first call designed to produce heading info is called with
- * in = NULL. If stateful this should also initialize the encoder state.
- *
- * Returns the number of bytes written, -1 if lack of space, or -2
- *     if the transcoding failed.
- * The value of @inlen after return is the number of octets consumed
- *     if the return value is positive, else unpredictiable.
- * The value of @outlen after return is the number of octets produced.
- */
-typedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen,
-                                          const unsigned char *in, int *inlen);
-
-
-/*
- * Block defining the handlers for non UTF-8 encodings.
- * If iconv is supported, there are two extra fields.
- */
-
-typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
-typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
-struct _xmlCharEncodingHandler {
-    char                       *name;
-    xmlCharEncodingInputFunc   input;
-    xmlCharEncodingOutputFunc  output;
-#ifdef LIBXML_ICONV_ENABLED
-    iconv_t                    iconv_in;
-    iconv_t                    iconv_out;
-#endif /* LIBXML_ICONV_ENABLED */
-};
-
-#ifdef __cplusplus
-}
-#endif
-#include <libxml/tree.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Interfaces for encoding handlers.
- */
-XMLPUBFUN void XMLCALL	
-	xmlInitCharEncodingHandlers	(void);
-XMLPUBFUN void XMLCALL	
-	xmlCleanupCharEncodingHandlers	(void);
-XMLPUBFUN void XMLCALL	
-	xmlRegisterCharEncodingHandler	(xmlCharEncodingHandlerPtr handler);
-XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
-	xmlGetCharEncodingHandler	(xmlCharEncoding enc);
-XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
-	xmlFindCharEncodingHandler	(const char *name);
-XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
-	xmlNewCharEncodingHandler	(const char *name, 
-                          		 xmlCharEncodingInputFunc input,
-                          		 xmlCharEncodingOutputFunc output);
-
-/*
- * Interfaces for encoding names and aliases.
- */
-XMLPUBFUN int XMLCALL	
-	xmlAddEncodingAlias		(const char *name,
-					 const char *alias);
-XMLPUBFUN int XMLCALL	
-	xmlDelEncodingAlias		(const char *alias);
-XMLPUBFUN const char * XMLCALL
-	xmlGetEncodingAlias		(const char *alias);
-XMLPUBFUN void XMLCALL	
-	xmlCleanupEncodingAliases	(void);
-XMLPUBFUN xmlCharEncoding XMLCALL
-	xmlParseCharEncoding		(const char *name);
-XMLPUBFUN const char * XMLCALL
-	xmlGetCharEncodingName		(xmlCharEncoding enc);
-
-/*
- * Interfaces directly used by the parsers.
- */
-XMLPUBFUN xmlCharEncoding XMLCALL
-	xmlDetectCharEncoding		(const unsigned char *in,
-					 int len);
-
-XMLPUBFUN int XMLCALL	
-	xmlCharEncOutFunc		(xmlCharEncodingHandler *handler,
-					 xmlBufferPtr out,
-					 xmlBufferPtr in);
-
-XMLPUBFUN int XMLCALL	
-	xmlCharEncInFunc		(xmlCharEncodingHandler *handler,
-					 xmlBufferPtr out,
-					 xmlBufferPtr in);
-XMLPUBFUN int XMLCALL
-	xmlCharEncFirstLine		(xmlCharEncodingHandler *handler,
-					 xmlBufferPtr out,
-					 xmlBufferPtr in);
-XMLPUBFUN int XMLCALL	
-	xmlCharEncCloseFunc		(xmlCharEncodingHandler *handler);
-
-/*
- * Export a few useful functions
- */
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN int XMLCALL	
-	UTF8Toisolat1			(unsigned char *out,
-					 int *outlen,
-					 const unsigned char *in,
-					 int *inlen);
-#endif /* LIBXML_OUTPUT_ENABLED */
-XMLPUBFUN int XMLCALL	
-	isolat1ToUTF8			(unsigned char *out,
-					 int *outlen,
-					 const unsigned char *in,
-					 int *inlen);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __XML_CHAR_ENCODING_H__ */
diff --git a/interfaces/ext/libxml/entities.h b/interfaces/ext/libxml/entities.h
deleted file mode 100644
index cefb97f..0000000
--- a/interfaces/ext/libxml/entities.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Summary: interface for the XML entities handling
- * Description: this module provides some of the entity API needed
- *              for the parser and applications.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_ENTITIES_H__
-#define __XML_ENTITIES_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The different valid entity types.
- */
-typedef enum {
-    XML_INTERNAL_GENERAL_ENTITY = 1,
-    XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
-    XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
-    XML_INTERNAL_PARAMETER_ENTITY = 4,
-    XML_EXTERNAL_PARAMETER_ENTITY = 5,
-    XML_INTERNAL_PREDEFINED_ENTITY = 6
-} xmlEntityType;
-
-/*
- * An unit of storage for an entity, contains the string, the value
- * and the linkind data needed for the linking in the hash table.
- */
-
-struct _xmlEntity {
-    void           *_private;	        /* application data */
-    xmlElementType          type;       /* XML_ENTITY_DECL, must be second ! */
-    const xmlChar          *name;	/* Entity name */
-    struct _xmlNode    *children;	/* First child link */
-    struct _xmlNode        *last;	/* Last child link */
-    struct _xmlDtd       *parent;	/* -> DTD */
-    struct _xmlNode        *next;	/* next sibling link  */
-    struct _xmlNode        *prev;	/* previous sibling link  */
-    struct _xmlDoc          *doc;       /* the containing document */
-
-    xmlChar                *orig;	/* content without ref substitution */
-    xmlChar             *content;	/* content or ndata if unparsed */
-    int                   length;	/* the content length */
-    xmlEntityType          etype;	/* The entity type */
-    const xmlChar    *ExternalID;	/* External identifier for PUBLIC */
-    const xmlChar      *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
-
-    struct _xmlEntity     *nexte;	/* unused */
-    const xmlChar           *URI;	/* the full URI as computed */
-    int                    owner;	/* does the entity own the childrens */
-    int			 checked;	/* was the entity content checked */
-					/* this is also used to count entites
-					 * references done from that entity */
-};
-
-/*
- * All entities are stored in an hash table.
- * There is 2 separate hash tables for global and parameter entities.
- */
-
-typedef struct _xmlHashTable xmlEntitiesTable;
-typedef xmlEntitiesTable *xmlEntitiesTablePtr;
-
-/*
- * External functions:
- */
-
-#ifdef LIBXML_LEGACY_ENABLED
-XMLPUBFUN void XMLCALL
-		xmlInitializePredefinedEntities	(void);
-#endif /* LIBXML_LEGACY_ENABLED */
-
-XMLPUBFUN xmlEntityPtr XMLCALL
-			xmlNewEntity		(xmlDocPtr doc,
-						 const xmlChar *name,
-						 int type,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID,
-						 const xmlChar *content);
-XMLPUBFUN xmlEntityPtr XMLCALL
-			xmlAddDocEntity		(xmlDocPtr doc,
-						 const xmlChar *name,
-						 int type,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID,
-						 const xmlChar *content);
-XMLPUBFUN xmlEntityPtr XMLCALL
-			xmlAddDtdEntity		(xmlDocPtr doc,
-						 const xmlChar *name,
-						 int type,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID,
-						 const xmlChar *content);
-XMLPUBFUN xmlEntityPtr XMLCALL
-			xmlGetPredefinedEntity	(const xmlChar *name);
-XMLPUBFUN xmlEntityPtr XMLCALL
-			xmlGetDocEntity		(xmlDocPtr doc,
-						 const xmlChar *name);
-XMLPUBFUN xmlEntityPtr XMLCALL
-			xmlGetDtdEntity		(xmlDocPtr doc,
-						 const xmlChar *name);
-XMLPUBFUN xmlEntityPtr XMLCALL
-			xmlGetParameterEntity	(xmlDocPtr doc,
-						 const xmlChar *name);
-#ifdef LIBXML_LEGACY_ENABLED
-XMLPUBFUN const xmlChar * XMLCALL
-			xmlEncodeEntities	(xmlDocPtr doc,
-						 const xmlChar *input);
-#endif /* LIBXML_LEGACY_ENABLED */
-XMLPUBFUN xmlChar * XMLCALL
-			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
-						 const xmlChar *input);
-XMLPUBFUN xmlChar * XMLCALL
-			xmlEncodeSpecialChars	(xmlDocPtr doc,
-						 const xmlChar *input);
-XMLPUBFUN xmlEntitiesTablePtr XMLCALL
-			xmlCreateEntitiesTable	(void);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlEntitiesTablePtr XMLCALL
-			xmlCopyEntitiesTable	(xmlEntitiesTablePtr table);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN void XMLCALL
-			xmlFreeEntitiesTable	(xmlEntitiesTablePtr table);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL
-			xmlDumpEntitiesTable	(xmlBufferPtr buf,
-						 xmlEntitiesTablePtr table);
-XMLPUBFUN void XMLCALL
-			xmlDumpEntityDecl	(xmlBufferPtr buf,
-						 xmlEntityPtr ent);
-#endif /* LIBXML_OUTPUT_ENABLED */
-#ifdef LIBXML_LEGACY_ENABLED
-XMLPUBFUN void XMLCALL
-			xmlCleanupPredefinedEntities(void);
-#endif /* LIBXML_LEGACY_ENABLED */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-# endif /* __XML_ENTITIES_H__ */
diff --git a/interfaces/ext/libxml/globals.h b/interfaces/ext/libxml/globals.h
deleted file mode 100644
index 57e25fa..0000000
--- a/interfaces/ext/libxml/globals.h
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- * Summary: interface for all global variables of the library
- * Description: all the global variables and thread handling for
- *              those variables is handled by this module.
- *
- * The bottom of this file is automatically generated by build_glob.py
- * based on the description file global.data
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Gary Pennington <Gary.Pennington at uk.sun.com>, Daniel Veillard
- */
-
-#ifndef __XML_GLOBALS_H
-#define __XML_GLOBALS_H
-
-#include <libxml/xmlversion.h>
-#include <libxml/parser.h>
-#include <libxml/xmlerror.h>
-#include <libxml/SAX.h>
-#include <libxml/SAX2.h>
-#include <libxml/xmlmemory.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-XMLPUBFUN void XMLCALL xmlInitGlobals(void);
-XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
-
-/**
- * xmlParserInputBufferCreateFilenameFunc:
- * @URI: the URI to read from
- * @enc: the requested source encoding
- *
- * Signature for the function doing the lookup for a suitable input method
- * corresponding to an URI.
- *
- * Returns the new xmlParserInputBufferPtr in case of success or NULL if no
- *         method was found.
- */
-typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
-
-/**
- * xmlOutputBufferCreateFilenameFunc:
- * @URI: the URI to write to
- * @enc: the requested target encoding
- *
- * Signature for the function doing the lookup for a suitable output method
- * corresponding to an URI.
- *
- * Returns the new xmlOutputBufferPtr in case of success or NULL if no
- *         method was found.
- */
-typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
-
-XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
-XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
-XMLPUBFUN xmlOutputBufferCreateFilenameFunc
-XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
-
-/*
- * Externally global symbols which need to be protected for backwards
- * compatibility support.
- */
-
-#undef	docbDefaultSAXHandler
-#undef	htmlDefaultSAXHandler
-#undef	oldXMLWDcompatibility
-#undef	xmlBufferAllocScheme
-#undef	xmlDefaultBufferSize
-#undef	xmlDefaultSAXHandler
-#undef	xmlDefaultSAXLocator
-#undef	xmlDoValidityCheckingDefaultValue
-#undef	xmlFree
-#undef	xmlGenericError
-#undef	xmlStructuredError
-#undef	xmlGenericErrorContext
-#undef	xmlGetWarningsDefaultValue
-#undef	xmlIndentTreeOutput
-#undef  xmlTreeIndentString
-#undef	xmlKeepBlanksDefaultValue
-#undef	xmlLineNumbersDefaultValue
-#undef	xmlLoadExtDtdDefaultValue
-#undef	xmlMalloc
-#undef	xmlMallocAtomic
-#undef	xmlMemStrdup
-#undef	xmlParserDebugEntities
-#undef	xmlParserVersion
-#undef	xmlPedanticParserDefaultValue
-#undef	xmlRealloc
-#undef	xmlSaveNoEmptyTags
-#undef	xmlSubstituteEntitiesDefaultValue
-#undef  xmlRegisterNodeDefaultValue
-#undef  xmlDeregisterNodeDefaultValue
-#undef  xmlLastError
-#undef  xmlParserInputBufferCreateFilenameValue
-#undef  xmlOutputBufferCreateFilenameValue
-
-/**
- * xmlRegisterNodeFunc:
- * @node: the current node
- *
- * Signature for the registration callback of a created node
- */
-typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
-/**
- * xmlDeregisterNodeFunc:
- * @node: the current node
- *
- * Signature for the deregistration callback of a discarded node
- */
-typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
-
-typedef struct _xmlGlobalState xmlGlobalState;
-typedef xmlGlobalState *xmlGlobalStatePtr;
-struct _xmlGlobalState
-{
-	const char *xmlParserVersion;
-
-	xmlSAXLocator xmlDefaultSAXLocator;
-	xmlSAXHandlerV1 xmlDefaultSAXHandler;
-	xmlSAXHandlerV1 docbDefaultSAXHandler;
-	xmlSAXHandlerV1 htmlDefaultSAXHandler;
-
-	xmlFreeFunc xmlFree;
-	xmlMallocFunc xmlMalloc;
-	xmlStrdupFunc xmlMemStrdup;
-	xmlReallocFunc xmlRealloc;
-
-	xmlGenericErrorFunc xmlGenericError;
-	xmlStructuredErrorFunc xmlStructuredError;
-	void *xmlGenericErrorContext;
-
-	int oldXMLWDcompatibility;
-
-	xmlBufferAllocationScheme xmlBufferAllocScheme;
-	int xmlDefaultBufferSize;
-
-	int xmlSubstituteEntitiesDefaultValue;
-	int xmlDoValidityCheckingDefaultValue;
-	int xmlGetWarningsDefaultValue;
-	int xmlKeepBlanksDefaultValue;
-	int xmlLineNumbersDefaultValue;
-	int xmlLoadExtDtdDefaultValue;
-	int xmlParserDebugEntities;
-	int xmlPedanticParserDefaultValue;
-
-	int xmlSaveNoEmptyTags;
-	int xmlIndentTreeOutput;
-	const char *xmlTreeIndentString;
-
-	xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
-	xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
-
-	xmlMallocFunc xmlMallocAtomic;
-	xmlError xmlLastError;
-
-	xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
-	xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
-};
-
-#ifdef __cplusplus
-}
-#endif
-#include <libxml/threads.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-XMLPUBFUN void XMLCALL	xmlInitializeGlobalState(xmlGlobalStatePtr gs);
-
-XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
-
-XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler);
-
-XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func);
-XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
-XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
-XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
-
-XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL
-	xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
-XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL
-	xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
-
-/** DOC_DISABLE */
-/*
- * In general the memory allocation entry points are not kept
- * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED
- *    - xmlMalloc
- *    - xmlMallocAtomic
- *    - xmlRealloc
- *    - xmlMemStrdup
- *    - xmlFree
- */
-
-#ifdef LIBXML_THREAD_ALLOC_ENABLED
-#ifdef LIBXML_THREAD_ENABLED
-XMLPUBFUN  xmlMallocFunc * XMLCALL __xmlMalloc(void);
-#define xmlMalloc \
-(*(__xmlMalloc()))
-#else
-XMLPUBVAR xmlMallocFunc xmlMalloc;
-#endif
-
-#ifdef LIBXML_THREAD_ENABLED
-XMLPUBFUN  xmlMallocFunc * XMLCALL __xmlMallocAtomic(void);
-#define xmlMallocAtomic \
-(*(__xmlMallocAtomic()))
-#else
-XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
-#endif
-
-#ifdef LIBXML_THREAD_ENABLED
-XMLPUBFUN  xmlReallocFunc * XMLCALL __xmlRealloc(void);
-#define xmlRealloc \
-(*(__xmlRealloc()))
-#else
-XMLPUBVAR xmlReallocFunc xmlRealloc;
-#endif
-
-#ifdef LIBXML_THREAD_ENABLED
-XMLPUBFUN  xmlFreeFunc * XMLCALL __xmlFree(void);
-#define xmlFree \
-(*(__xmlFree()))
-#else
-XMLPUBVAR xmlFreeFunc xmlFree;
-#endif
-
-#ifdef LIBXML_THREAD_ENABLED
-XMLPUBFUN  xmlStrdupFunc * XMLCALL __xmlMemStrdup(void);
-#define xmlMemStrdup \
-(*(__xmlMemStrdup()))
-#else
-XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
-#endif
-
-#else /* !LIBXML_THREAD_ALLOC_ENABLED */
-XMLPUBVAR xmlMallocFunc xmlMalloc;
-XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
-XMLPUBVAR xmlReallocFunc xmlRealloc;
-XMLPUBVAR xmlFreeFunc xmlFree;
-XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
-#endif /* LIBXML_THREAD_ALLOC_ENABLED */
-
-#ifdef LIBXML_DOCB_ENABLED
-XMLPUBFUN  xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define docbDefaultSAXHandler \
-(*(__docbDefaultSAXHandler()))
-#else
-XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler;
-#endif
-#endif
-
-#ifdef LIBXML_HTML_ENABLED
-XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define htmlDefaultSAXHandler \
-(*(__htmlDefaultSAXHandler()))
-#else
-XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler;
-#endif
-#endif
-
-XMLPUBFUN xmlError * XMLCALL __xmlLastError(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlLastError \
-(*(__xmlLastError()))
-#else
-XMLPUBVAR xmlError xmlLastError;
-#endif
-
-/*
- * Everything starting from the line below is
- * Automatically generated by build_glob.py.
- * Do not modify the previous line.
- */
-
-
-XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define oldXMLWDcompatibility \
-(*(__oldXMLWDcompatibility()))
-#else
-XMLPUBVAR int oldXMLWDcompatibility;
-#endif
-
-XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlBufferAllocScheme \
-(*(__xmlBufferAllocScheme()))
-#else
-XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme;
-#endif
-XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
-
-XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlDefaultBufferSize \
-(*(__xmlDefaultBufferSize()))
-#else
-XMLPUBVAR int xmlDefaultBufferSize;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v);
-
-XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlDefaultSAXHandler \
-(*(__xmlDefaultSAXHandler()))
-#else
-XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler;
-#endif
-
-XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlDefaultSAXLocator \
-(*(__xmlDefaultSAXLocator()))
-#else
-XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator;
-#endif
-
-XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlDoValidityCheckingDefaultValue \
-(*(__xmlDoValidityCheckingDefaultValue()))
-#else
-XMLPUBVAR int xmlDoValidityCheckingDefaultValue;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v);
-
-XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlGenericError \
-(*(__xmlGenericError()))
-#else
-XMLPUBVAR xmlGenericErrorFunc xmlGenericError;
-#endif
-
-XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlStructuredError \
-(*(__xmlStructuredError()))
-#else
-XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError;
-#endif
-
-XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlGenericErrorContext \
-(*(__xmlGenericErrorContext()))
-#else
-XMLPUBVAR void * xmlGenericErrorContext;
-#endif
-
-XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlGetWarningsDefaultValue \
-(*(__xmlGetWarningsDefaultValue()))
-#else
-XMLPUBVAR int xmlGetWarningsDefaultValue;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v);
-
-XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlIndentTreeOutput \
-(*(__xmlIndentTreeOutput()))
-#else
-XMLPUBVAR int xmlIndentTreeOutput;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v);
-
-XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlTreeIndentString \
-(*(__xmlTreeIndentString()))
-#else
-XMLPUBVAR const char * xmlTreeIndentString;
-#endif
-XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v);
-
-XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlKeepBlanksDefaultValue \
-(*(__xmlKeepBlanksDefaultValue()))
-#else
-XMLPUBVAR int xmlKeepBlanksDefaultValue;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v);
-
-XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlLineNumbersDefaultValue \
-(*(__xmlLineNumbersDefaultValue()))
-#else
-XMLPUBVAR int xmlLineNumbersDefaultValue;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v);
-
-XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlLoadExtDtdDefaultValue \
-(*(__xmlLoadExtDtdDefaultValue()))
-#else
-XMLPUBVAR int xmlLoadExtDtdDefaultValue;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v);
-
-XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlParserDebugEntities \
-(*(__xmlParserDebugEntities()))
-#else
-XMLPUBVAR int xmlParserDebugEntities;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v);
-
-XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlParserVersion \
-(*(__xmlParserVersion()))
-#else
-XMLPUBVAR const char * xmlParserVersion;
-#endif
-
-XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlPedanticParserDefaultValue \
-(*(__xmlPedanticParserDefaultValue()))
-#else
-XMLPUBVAR int xmlPedanticParserDefaultValue;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v);
-
-XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlSaveNoEmptyTags \
-(*(__xmlSaveNoEmptyTags()))
-#else
-XMLPUBVAR int xmlSaveNoEmptyTags;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v);
-
-XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlSubstituteEntitiesDefaultValue \
-(*(__xmlSubstituteEntitiesDefaultValue()))
-#else
-XMLPUBVAR int xmlSubstituteEntitiesDefaultValue;
-#endif
-XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v);
-
-XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlRegisterNodeDefaultValue \
-(*(__xmlRegisterNodeDefaultValue()))
-#else
-XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
-#endif
-
-XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlDeregisterNodeDefaultValue \
-(*(__xmlDeregisterNodeDefaultValue()))
-#else
-XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
-#endif
-
-XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlParserInputBufferCreateFilenameValue \
-(*(__xmlParserInputBufferCreateFilenameValue()))
-#else
-XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
-#endif
-
-XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void);
-#ifdef LIBXML_THREAD_ENABLED
-#define xmlOutputBufferCreateFilenameValue \
-(*(__xmlOutputBufferCreateFilenameValue()))
-#else
-XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __XML_GLOBALS_H */
diff --git a/interfaces/ext/libxml/hash.h b/interfaces/ext/libxml/hash.h
deleted file mode 100644
index 7fe4be7..0000000
--- a/interfaces/ext/libxml/hash.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Summary: Chained hash tables
- * Description: This module implements the hash table support used in 
- * 		various places in the library.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Bjorn Reese <bjorn.reese at systematic.dk>
- */
-
-#ifndef __XML_HASH_H__
-#define __XML_HASH_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The hash table.
- */
-typedef struct _xmlHashTable xmlHashTable;
-typedef xmlHashTable *xmlHashTablePtr;
-
-#ifdef __cplusplus
-}
-#endif
-
-#include <libxml/xmlversion.h>
-#include <libxml/parser.h>
-#include <libxml/dict.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Recent version of gcc produce a warning when a function pointer is assigned
- * to an object pointer, or vice versa.  The following macro is a dirty hack
- * to allow suppression of the warning.  If your architecture has function
- * pointers which are a different size than a void pointer, there may be some
- * serious trouble within the library.
- */
-/**
- * XML_CAST_FPTR:
- * @fptr:  pointer to a function
- *
- * Macro to do a casting from an object pointer to a
- * function pointer without encountering a warning from
- * gcc
- *
- * #define XML_CAST_FPTR(fptr) (*(void **)(&fptr))
- * This macro violated ISO C aliasing rules (gcc4 on s390 broke)
- * so it is disabled now
- */
-
-#define XML_CAST_FPTR(fptr) fptr
-
-
-/*
- * function types:
- */
-/**
- * xmlHashDeallocator:
- * @payload:  the data in the hash
- * @name:  the name associated
- *
- * Callback to free data from a hash.
- */
-typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
-/**
- * xmlHashCopier:
- * @payload:  the data in the hash
- * @name:  the name associated
- *
- * Callback to copy data from a hash.
- *
- * Returns a copy of the data or NULL in case of error.
- */
-typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
-/**
- * xmlHashScanner:
- * @payload:  the data in the hash
- * @data:  extra scannner data
- * @name:  the name associated
- *
- * Callback when scanning data in a hash with the simple scanner.
- */
-typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
-/**
- * xmlHashScannerFull:
- * @payload:  the data in the hash
- * @data:  extra scannner data
- * @name:  the name associated
- * @name2:  the second name associated
- * @name3:  the third name associated
- *
- * Callback when scanning data in a hash with the full scanner.
- */
-typedef void (*xmlHashScannerFull)(void *payload, void *data,
-				   const xmlChar *name, const xmlChar *name2,
-				   const xmlChar *name3);
-
-/*
- * Constructor and destructor.
- */
-XMLPUBFUN xmlHashTablePtr XMLCALL
-			xmlHashCreate	(int size);
-XMLPUBFUN xmlHashTablePtr XMLCALL
-			xmlHashCreateDict(int size,
-					 xmlDictPtr dict);
-XMLPUBFUN void XMLCALL			
-			xmlHashFree	(xmlHashTablePtr table,
-					 xmlHashDeallocator f);
-
-/*
- * Add a new entry to the hash table.
- */
-XMLPUBFUN int XMLCALL			
-			xmlHashAddEntry	(xmlHashTablePtr table,
-		                         const xmlChar *name,
-		                         void *userdata);
-XMLPUBFUN int XMLCALL			
-			xmlHashUpdateEntry(xmlHashTablePtr table,
-		                         const xmlChar *name,
-		                         void *userdata,
-					 xmlHashDeallocator f);
-XMLPUBFUN int XMLCALL		    
-			xmlHashAddEntry2(xmlHashTablePtr table,
-		                         const xmlChar *name,
-		                         const xmlChar *name2,
-		                         void *userdata);
-XMLPUBFUN int XMLCALL			
-			xmlHashUpdateEntry2(xmlHashTablePtr table,
-		                         const xmlChar *name,
-		                         const xmlChar *name2,
-		                         void *userdata,
-					 xmlHashDeallocator f);
-XMLPUBFUN int XMLCALL			
-			xmlHashAddEntry3(xmlHashTablePtr table,
-		                         const xmlChar *name,
-		                         const xmlChar *name2,
-		                         const xmlChar *name3,
-		                         void *userdata);
-XMLPUBFUN int XMLCALL			
-			xmlHashUpdateEntry3(xmlHashTablePtr table,
-		                         const xmlChar *name,
-		                         const xmlChar *name2,
-		                         const xmlChar *name3,
-		                         void *userdata,
-					 xmlHashDeallocator f);
-
-/*
- * Remove an entry from the hash table.
- */
-XMLPUBFUN int XMLCALL     
-			xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,
-                           xmlHashDeallocator f);
-XMLPUBFUN int XMLCALL     
-			xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,
-                            const xmlChar *name2, xmlHashDeallocator f);
-XMLPUBFUN int  XMLCALL    
-			xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
-                            const xmlChar *name2, const xmlChar *name3,
-                            xmlHashDeallocator f);
-
-/*
- * Retrieve the userdata.
- */
-XMLPUBFUN void * XMLCALL			
-			xmlHashLookup	(xmlHashTablePtr table,
-					 const xmlChar *name);
-XMLPUBFUN void * XMLCALL			
-			xmlHashLookup2	(xmlHashTablePtr table,
-					 const xmlChar *name,
-					 const xmlChar *name2);
-XMLPUBFUN void * XMLCALL			
-			xmlHashLookup3	(xmlHashTablePtr table,
-					 const xmlChar *name,
-					 const xmlChar *name2,
-					 const xmlChar *name3);
-XMLPUBFUN void * XMLCALL			
-			xmlHashQLookup	(xmlHashTablePtr table,
-					 const xmlChar *name,
-					 const xmlChar *prefix);
-XMLPUBFUN void * XMLCALL			
-			xmlHashQLookup2	(xmlHashTablePtr table,
-					 const xmlChar *name,
-					 const xmlChar *prefix,
-					 const xmlChar *name2,
-					 const xmlChar *prefix2);
-XMLPUBFUN void * XMLCALL			
-			xmlHashQLookup3	(xmlHashTablePtr table,
-					 const xmlChar *name,
-					 const xmlChar *prefix,
-					 const xmlChar *name2,
-					 const xmlChar *prefix2,
-					 const xmlChar *name3,
-					 const xmlChar *prefix3);
-
-/*
- * Helpers.
- */
-XMLPUBFUN xmlHashTablePtr XMLCALL		
-			xmlHashCopy	(xmlHashTablePtr table,
-					 xmlHashCopier f);
-XMLPUBFUN int XMLCALL			
-			xmlHashSize	(xmlHashTablePtr table);
-XMLPUBFUN void XMLCALL			
-			xmlHashScan	(xmlHashTablePtr table,
-					 xmlHashScanner f,
-					 void *data);
-XMLPUBFUN void XMLCALL			
-			xmlHashScan3	(xmlHashTablePtr table,
-					 const xmlChar *name,
-					 const xmlChar *name2,
-					 const xmlChar *name3,
-					 xmlHashScanner f,
-					 void *data);
-XMLPUBFUN void XMLCALL			
-			xmlHashScanFull	(xmlHashTablePtr table,
-					 xmlHashScannerFull f,
-					 void *data);
-XMLPUBFUN void XMLCALL			
-			xmlHashScanFull3(xmlHashTablePtr table,
-					 const xmlChar *name,
-					 const xmlChar *name2,
-					 const xmlChar *name3,
-					 xmlHashScannerFull f,
-					 void *data);
-#ifdef __cplusplus
-}
-#endif
-#endif /* ! __XML_HASH_H__ */
diff --git a/interfaces/ext/libxml/list.h b/interfaces/ext/libxml/list.h
deleted file mode 100644
index 1d83482..0000000
--- a/interfaces/ext/libxml/list.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Summary: lists interfaces
- * Description: this module implement the list support used in 
- * various place in the library.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Gary Pennington <Gary.Pennington at uk.sun.com>
- */
-
-#ifndef __XML_LINK_INCLUDE__
-#define __XML_LINK_INCLUDE__
-
-#include <libxml/xmlversion.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _xmlLink xmlLink;
-typedef xmlLink *xmlLinkPtr;
-
-typedef struct _xmlList xmlList;
-typedef xmlList *xmlListPtr;
-
-/**
- * xmlListDeallocator:
- * @lk:  the data to deallocate
- *
- * Callback function used to free data from a list.
- */
-typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
-/**
- * xmlListDataCompare:
- * @data0: the first data
- * @data1: the second data
- *
- * Callback function used to compare 2 data.
- *
- * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
- */
-typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
-/**
- * xmlListWalker:
- * @data: the data found in the list
- * @user: extra user provided data to the walker
- *
- * Callback function used when walking a list with xmlListWalk().
- *
- * Returns 0 to stop walking the list, 1 otherwise.
- */
-typedef int (*xmlListWalker) (const void *data, const void *user);
-
-/* Creation/Deletion */
-XMLPUBFUN xmlListPtr XMLCALL
-		xmlListCreate		(xmlListDeallocator deallocator,
-	                                 xmlListDataCompare compare);
-XMLPUBFUN void XMLCALL		
-		xmlListDelete		(xmlListPtr l);
-
-/* Basic Operators */
-XMLPUBFUN void * XMLCALL		
-		xmlListSearch		(xmlListPtr l,
-					 void *data);
-XMLPUBFUN void * XMLCALL		
-		xmlListReverseSearch	(xmlListPtr l,
-					 void *data);
-XMLPUBFUN int XMLCALL		
-		xmlListInsert		(xmlListPtr l,
-					 void *data) ;
-XMLPUBFUN int XMLCALL		
-		xmlListAppend		(xmlListPtr l,
-					 void *data) ;
-XMLPUBFUN int XMLCALL		
-		xmlListRemoveFirst	(xmlListPtr l,
-					 void *data);
-XMLPUBFUN int XMLCALL		
-		xmlListRemoveLast	(xmlListPtr l,
-					 void *data);
-XMLPUBFUN int XMLCALL		
-		xmlListRemoveAll	(xmlListPtr l,
-					 void *data);
-XMLPUBFUN void XMLCALL		
-		xmlListClear		(xmlListPtr l);
-XMLPUBFUN int XMLCALL		
-		xmlListEmpty		(xmlListPtr l);
-XMLPUBFUN xmlLinkPtr XMLCALL	
-		xmlListFront		(xmlListPtr l);
-XMLPUBFUN xmlLinkPtr XMLCALL	
-		xmlListEnd		(xmlListPtr l);
-XMLPUBFUN int XMLCALL		
-		xmlListSize		(xmlListPtr l);
-
-XMLPUBFUN void XMLCALL		
-		xmlListPopFront		(xmlListPtr l);
-XMLPUBFUN void XMLCALL		
-		xmlListPopBack		(xmlListPtr l);
-XMLPUBFUN int XMLCALL		
-		xmlListPushFront	(xmlListPtr l,
-					 void *data);
-XMLPUBFUN int XMLCALL		
-		xmlListPushBack		(xmlListPtr l,
-					 void *data);
-
-/* Advanced Operators */
-XMLPUBFUN void XMLCALL		
-		xmlListReverse		(xmlListPtr l);
-XMLPUBFUN void XMLCALL		
-		xmlListSort		(xmlListPtr l);
-XMLPUBFUN void XMLCALL		
-		xmlListWalk		(xmlListPtr l,
-					 xmlListWalker walker,
-					 const void *user);
-XMLPUBFUN void XMLCALL		
-		xmlListReverseWalk	(xmlListPtr l,
-					 xmlListWalker walker,
-					 const void *user);
-XMLPUBFUN void XMLCALL		
-		xmlListMerge		(xmlListPtr l1,
-					 xmlListPtr l2);
-XMLPUBFUN xmlListPtr XMLCALL	
-		xmlListDup		(const xmlListPtr old);
-XMLPUBFUN int XMLCALL		
-		xmlListCopy		(xmlListPtr cur,
-					 const xmlListPtr old);
-/* Link operators */
-XMLPUBFUN void * XMLCALL          
-		xmlLinkGetData          (xmlLinkPtr lk);
-
-/* xmlListUnique() */
-/* xmlListSwap */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __XML_LINK_INCLUDE__ */
diff --git a/interfaces/ext/libxml/nanoftp.h b/interfaces/ext/libxml/nanoftp.h
deleted file mode 100644
index e3c28a0..0000000
--- a/interfaces/ext/libxml/nanoftp.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Summary: minimal FTP implementation
- * Description: minimal FTP implementation allowing to fetch resources
- *              like external subset.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
- 
-#ifndef __NANO_FTP_H__
-#define __NANO_FTP_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_FTP_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * ftpListCallback: 
- * @userData:  user provided data for the callback
- * @filename:  the file name (including "->" when links are shown)
- * @attrib:  the attribute string
- * @owner:  the owner string
- * @group:  the group string
- * @size:  the file size
- * @links:  the link count
- * @year:  the year
- * @month:  the month
- * @day:  the day
- * @hour:  the hour
- * @minute:  the minute
- *
- * A callback for the xmlNanoFTPList command.
- * Note that only one of year and day:minute are specified.
- */
-typedef void (*ftpListCallback) (void *userData,
-	                         const char *filename, const char *attrib,
-	                         const char *owner, const char *group,
-				 unsigned long size, int links, int year,
-				 const char *month, int day, int hour,
-				 int minute);
-/**
- * ftpDataCallback: 
- * @userData: the user provided context
- * @data: the data received
- * @len: its size in bytes
- *
- * A callback for the xmlNanoFTPGet command.
- */
-typedef void (*ftpDataCallback) (void *userData,
-				 const char *data,
-				 int len);
-
-/*
- * Init
- */
-XMLPUBFUN void XMLCALL
-	xmlNanoFTPInit		(void);
-XMLPUBFUN void XMLCALL	
-	xmlNanoFTPCleanup	(void);
-
-/*
- * Creating/freeing contexts.
- */
-XMLPUBFUN void * XMLCALL	
-	xmlNanoFTPNewCtxt	(const char *URL);
-XMLPUBFUN void XMLCALL	
-	xmlNanoFTPFreeCtxt	(void * ctx);
-XMLPUBFUN void * XMLCALL 	
-	xmlNanoFTPConnectTo	(const char *server,
-				 int port);
-/*
- * Opening/closing session connections.
- */
-XMLPUBFUN void * XMLCALL 	
-	xmlNanoFTPOpen		(const char *URL);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPConnect	(void *ctx);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPClose		(void *ctx);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPQuit		(void *ctx);
-XMLPUBFUN void XMLCALL	
-	xmlNanoFTPScanProxy	(const char *URL);
-XMLPUBFUN void XMLCALL	
-	xmlNanoFTPProxy		(const char *host,
-				 int port,
-				 const char *user,
-				 const char *passwd,
-				 int type);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPUpdateURL	(void *ctx,
-				 const char *URL);
-
-/*
- * Rather internal commands.
- */
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPGetResponse	(void *ctx);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPCheckResponse	(void *ctx);
-
-/*
- * CD/DIR/GET handlers.
- */
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPCwd		(void *ctx,
-				 const char *directory);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPDele		(void *ctx,
-				 const char *file);
-
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPGetConnection	(void *ctx);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPCloseConnection(void *ctx);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPList		(void *ctx,
-				 ftpListCallback callback,
-				 void *userData,
-				 const char *filename);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPGetSocket	(void *ctx,
-				 const char *filename);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPGet		(void *ctx,
-				 ftpDataCallback callback,
-				 void *userData,
-				 const char *filename);
-XMLPUBFUN int XMLCALL	
-	xmlNanoFTPRead		(void *ctx,
-				 void *dest,
-				 int len);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* LIBXML_FTP_ENABLED */
-#endif /* __NANO_FTP_H__ */
diff --git a/interfaces/ext/libxml/nanohttp.h b/interfaces/ext/libxml/nanohttp.h
deleted file mode 100644
index 1d8ac24..0000000
--- a/interfaces/ext/libxml/nanohttp.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Summary: minimal HTTP implementation
- * Description: minimal HTTP implementation allowing to fetch resources
- *              like external subset.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
- 
-#ifndef __NANO_HTTP_H__
-#define __NANO_HTTP_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_HTTP_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-XMLPUBFUN void XMLCALL
-	xmlNanoHTTPInit		(void);
-XMLPUBFUN void XMLCALL	
-	xmlNanoHTTPCleanup	(void);
-XMLPUBFUN void XMLCALL	
-	xmlNanoHTTPScanProxy	(const char *URL);
-XMLPUBFUN int XMLCALL	
-	xmlNanoHTTPFetch	(const char *URL,
-				 const char *filename,
-				 char **contentType);
-XMLPUBFUN void * XMLCALL	
-	xmlNanoHTTPMethod	(const char *URL,
-				 const char *method,
-				 const char *input,
-				 char **contentType,
-				 const char *headers,
-				 int   ilen);
-XMLPUBFUN void * XMLCALL	
-	xmlNanoHTTPMethodRedir	(const char *URL,
-				 const char *method,
-				 const char *input,
-				 char **contentType,
-				 char **redir,
-				 const char *headers,
-				 int   ilen);
-XMLPUBFUN void * XMLCALL	
-	xmlNanoHTTPOpen		(const char *URL,
-				 char **contentType);
-XMLPUBFUN void * XMLCALL	
-	xmlNanoHTTPOpenRedir	(const char *URL,
-				 char **contentType,
-				 char **redir);
-XMLPUBFUN int XMLCALL	
-	xmlNanoHTTPReturnCode	(void *ctx);
-XMLPUBFUN const char * XMLCALL 
-	xmlNanoHTTPAuthHeader	(void *ctx);
-XMLPUBFUN const char * XMLCALL
-	xmlNanoHTTPRedir	(void *ctx);
-XMLPUBFUN int XMLCALL
-	xmlNanoHTTPContentLength( void * ctx );
-XMLPUBFUN const char * XMLCALL
-	xmlNanoHTTPEncoding	(void *ctx);
-XMLPUBFUN const char * XMLCALL
-	xmlNanoHTTPMimeType	(void *ctx);
-XMLPUBFUN int XMLCALL	
-	xmlNanoHTTPRead		(void *ctx,
-				 void *dest,
-				 int len);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN int XMLCALL	
-	xmlNanoHTTPSave		(void *ctxt,
-				 const char *filename);
-#endif /* LIBXML_OUTPUT_ENABLED */
-XMLPUBFUN void XMLCALL	
-	xmlNanoHTTPClose	(void *ctx);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_HTTP_ENABLED */
-#endif /* __NANO_HTTP_H__ */
diff --git a/interfaces/ext/libxml/parser.h b/interfaces/ext/libxml/parser.h
deleted file mode 100644
index 567addb..0000000
--- a/interfaces/ext/libxml/parser.h
+++ /dev/null
@@ -1,1226 +0,0 @@
-/*
- * Summary: the core parser module
- * Description: Interfaces, constants and types related to the XML parser
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_PARSER_H__
-#define __XML_PARSER_H__
-
-#include <stdarg.h>
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-#include <libxml/dict.h>
-#include <libxml/hash.h>
-#include <libxml/valid.h>
-#include <libxml/entities.h>
-#include <libxml/xmlerror.h>
-#include <libxml/xmlstring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * XML_DEFAULT_VERSION:
- *
- * The default version of XML used: 1.0
- */
-#define XML_DEFAULT_VERSION	"1.0"
-
-/**
- * xmlParserInput:
- *
- * An xmlParserInput is an input flow for the XML processor.
- * Each entity parsed is associated an xmlParserInput (except the
- * few predefined ones). This is the case both for internal entities
- * - in which case the flow is already completely in memory - or
- * external entities - in which case we use the buf structure for
- * progressive reading and I18N conversions to the internal UTF-8 format.
- */
-
-/**
- * xmlParserInputDeallocate:
- * @str:  the string to deallocate
- *
- * Callback for freeing some parser input allocations.
- */
-typedef void (* xmlParserInputDeallocate)(xmlChar *str);
-
-struct _xmlParserInput {
-    /* Input buffer */
-    xmlParserInputBufferPtr buf;      /* UTF-8 encoded buffer */
-
-    const char *filename;             /* The file analyzed, if any */
-    const char *directory;            /* the directory/base of the file */
-    const xmlChar *base;              /* Base of the array to parse */
-    const xmlChar *cur;               /* Current char being parsed */
-    const xmlChar *end;               /* end of the array to parse */
-    int length;                       /* length if known */
-    int line;                         /* Current line */
-    int col;                          /* Current column */
-    /*
-     * NOTE: consumed is only tested for equality in the parser code,
-     *       so even if there is an overflow this should not give troubles
-     *       for parsing very large instances.
-     */
-    unsigned long consumed;           /* How many xmlChars already consumed */
-    xmlParserInputDeallocate free;    /* function to deallocate the base */
-    const xmlChar *encoding;          /* the encoding string for entity */
-    const xmlChar *version;           /* the version string for entity */
-    int standalone;                   /* Was that entity marked standalone */
-    int id;                           /* an unique identifier for the entity */
-};
-
-/**
- * xmlParserNodeInfo:
- *
- * The parser can be asked to collect Node informations, i.e. at what
- * place in the file they were detected. 
- * NOTE: This is off by default and not very well tested.
- */
-typedef struct _xmlParserNodeInfo xmlParserNodeInfo;
-typedef xmlParserNodeInfo *xmlParserNodeInfoPtr;
-
-struct _xmlParserNodeInfo {
-  const struct _xmlNode* node;
-  /* Position & line # that text that created the node begins & ends on */
-  unsigned long begin_pos;
-  unsigned long begin_line;
-  unsigned long end_pos;
-  unsigned long end_line;
-};
-
-typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq;
-typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;
-struct _xmlParserNodeInfoSeq {
-  unsigned long maximum;
-  unsigned long length;
-  xmlParserNodeInfo* buffer;
-};
-
-/**
- * xmlParserInputState:
- *
- * The parser is now working also as a state based parser.
- * The recursive one use the state info for entities processing.
- */
-typedef enum {
-    XML_PARSER_EOF = -1,	/* nothing is to be parsed */
-    XML_PARSER_START = 0,	/* nothing has been parsed */
-    XML_PARSER_MISC,		/* Misc* before int subset */
-    XML_PARSER_PI,		/* Within a processing instruction */
-    XML_PARSER_DTD,		/* within some DTD content */
-    XML_PARSER_PROLOG,		/* Misc* after internal subset */
-    XML_PARSER_COMMENT,		/* within a comment */
-    XML_PARSER_START_TAG,	/* within a start tag */
-    XML_PARSER_CONTENT,		/* within the content */
-    XML_PARSER_CDATA_SECTION,	/* within a CDATA section */
-    XML_PARSER_END_TAG,		/* within a closing tag */
-    XML_PARSER_ENTITY_DECL,	/* within an entity declaration */
-    XML_PARSER_ENTITY_VALUE,	/* within an entity value in a decl */
-    XML_PARSER_ATTRIBUTE_VALUE,	/* within an attribute value */
-    XML_PARSER_SYSTEM_LITERAL,	/* within a SYSTEM value */
-    XML_PARSER_EPILOG, 		/* the Misc* after the last end tag */
-    XML_PARSER_IGNORE,		/* within an IGNORED section */
-    XML_PARSER_PUBLIC_LITERAL 	/* within a PUBLIC value */
-} xmlParserInputState;
-
-/**
- * XML_DETECT_IDS:
- *
- * Bit in the loadsubset context field to tell to do ID/REFs lookups.
- * Use it to initialize xmlLoadExtDtdDefaultValue.
- */
-#define XML_DETECT_IDS		2
-
-/**
- * XML_COMPLETE_ATTRS:
- *
- * Bit in the loadsubset context field to tell to do complete the
- * elements attributes lists with the ones defaulted from the DTDs.
- * Use it to initialize xmlLoadExtDtdDefaultValue.
- */
-#define XML_COMPLETE_ATTRS	4
-
-/**
- * XML_SKIP_IDS:
- *
- * Bit in the loadsubset context field to tell to not do ID/REFs registration.
- * Used to initialize xmlLoadExtDtdDefaultValue in some special cases.
- */
-#define XML_SKIP_IDS		8
-
-/**
- * xmlParserMode:
- *
- * A parser can operate in various modes
- */
-typedef enum {
-    XML_PARSE_UNKNOWN = 0,
-    XML_PARSE_DOM = 1,
-    XML_PARSE_SAX = 2,
-    XML_PARSE_PUSH_DOM = 3,
-    XML_PARSE_PUSH_SAX = 4,
-    XML_PARSE_READER = 5
-} xmlParserMode;
-
-/**
- * xmlParserCtxt:
- *
- * The parser context.
- * NOTE This doesn't completely define the parser state, the (current ?)
- *      design of the parser uses recursive function calls since this allow
- *      and easy mapping from the production rules of the specification
- *      to the actual code. The drawback is that the actual function call
- *      also reflect the parser state. However most of the parsing routines
- *      takes as the only argument the parser context pointer, so migrating
- *      to a state based parser for progressive parsing shouldn't be too hard.
- */
-struct _xmlParserCtxt {
-    struct _xmlSAXHandler *sax;       /* The SAX handler */
-    void            *userData;        /* For SAX interface only, used by DOM build */
-    xmlDocPtr           myDoc;        /* the document being built */
-    int            wellFormed;        /* is the document well formed */
-    int       replaceEntities;        /* shall we replace entities ? */
-    const xmlChar    *version;        /* the XML version string */
-    const xmlChar   *encoding;        /* the declared encoding, if any */
-    int            standalone;        /* standalone document */
-    int                  html;        /* an HTML(1)/Docbook(2) document */
-
-    /* Input stream stack */
-    xmlParserInputPtr  input;         /* Current input stream */
-    int                inputNr;       /* Number of current input streams */
-    int                inputMax;      /* Max number of input streams */
-    xmlParserInputPtr *inputTab;      /* stack of inputs */
-
-    /* Node analysis stack only used for DOM building */
-    xmlNodePtr         node;          /* Current parsed Node */
-    int                nodeNr;        /* Depth of the parsing stack */
-    int                nodeMax;       /* Max depth of the parsing stack */
-    xmlNodePtr        *nodeTab;       /* array of nodes */
-
-    int record_info;                  /* Whether node info should be kept */
-    xmlParserNodeInfoSeq node_seq;    /* info about each node parsed */
-
-    int errNo;                        /* error code */
-
-    int     hasExternalSubset;        /* reference and external subset */
-    int             hasPErefs;        /* the internal subset has PE refs */
-    int              external;        /* are we parsing an external entity */
-
-    int                 valid;        /* is the document valid */
-    int              validate;        /* shall we try to validate ? */
-    xmlValidCtxt        vctxt;        /* The validity context */
-
-    xmlParserInputState instate;      /* current type of input */
-    int                 token;        /* next char look-ahead */    
-
-    char           *directory;        /* the data directory */
-
-    /* Node name stack */
-    const xmlChar     *name;          /* Current parsed Node */
-    int                nameNr;        /* Depth of the parsing stack */
-    int                nameMax;       /* Max depth of the parsing stack */
-    const xmlChar *   *nameTab;       /* array of nodes */
-
-    long               nbChars;       /* number of xmlChar processed */
-    long            checkIndex;       /* used by progressive parsing lookup */
-    int             keepBlanks;       /* ugly but ... */
-    int             disableSAX;       /* SAX callbacks are disabled */
-    int               inSubset;       /* Parsing is in int 1/ext 2 subset */
-    const xmlChar *    intSubName;    /* name of subset */
-    xmlChar *          extSubURI;     /* URI of external subset */
-    xmlChar *          extSubSystem;  /* SYSTEM ID of external subset */
-
-    /* xml:space values */
-    int *              space;         /* Should the parser preserve spaces */
-    int                spaceNr;       /* Depth of the parsing stack */
-    int                spaceMax;      /* Max depth of the parsing stack */
-    int *              spaceTab;      /* array of space infos */
-
-    int                depth;         /* to prevent entity substitution loops */
-    xmlParserInputPtr  entity;        /* used to check entities boundaries */
-    int                charset;       /* encoding of the in-memory content
-				         actually an xmlCharEncoding */
-    int                nodelen;       /* Those two fields are there to */
-    int                nodemem;       /* Speed up large node parsing */
-    int                pedantic;      /* signal pedantic warnings */
-    void              *_private;      /* For user data, libxml won't touch it */
-
-    int                loadsubset;    /* should the external subset be loaded */
-    int                linenumbers;   /* set line number in element content */
-    void              *catalogs;      /* document's own catalog */
-    int                recovery;      /* run in recovery mode */
-    int                progressive;   /* is this a progressive parsing */
-    xmlDictPtr         dict;          /* dictionnary for the parser */
-    const xmlChar *   *atts;          /* array for the attributes callbacks */
-    int                maxatts;       /* the size of the array */
-    int                docdict;       /* use strings from dict to build tree */
-
-    /*
-     * pre-interned strings
-     */
-    const xmlChar *str_xml;
-    const xmlChar *str_xmlns;
-    const xmlChar *str_xml_ns;
-
-    /*
-     * Everything below is used only by the new SAX mode
-     */
-    int                sax2;          /* operating in the new SAX mode */
-    int                nsNr;          /* the number of inherited namespaces */
-    int                nsMax;         /* the size of the arrays */
-    const xmlChar *   *nsTab;         /* the array of prefix/namespace name */
-    int               *attallocs;     /* which attribute were allocated */
-    void *            *pushTab;       /* array of data for push */
-    xmlHashTablePtr    attsDefault;   /* defaulted attributes if any */
-    xmlHashTablePtr    attsSpecial;   /* non-CDATA attributes if any */
-    int                nsWellFormed;  /* is the document XML Nanespace okay */
-    int                options;       /* Extra options */
-
-    /*
-     * Those fields are needed only for treaming parsing so far
-     */
-    int               dictNames;    /* Use dictionary names for the tree */
-    int               freeElemsNr;  /* number of freed element nodes */
-    xmlNodePtr        freeElems;    /* List of freed element nodes */
-    int               freeAttrsNr;  /* number of freed attributes nodes */
-    xmlAttrPtr        freeAttrs;    /* List of freed attributes nodes */
-
-    /*
-     * the complete error informations for the last error.
-     */
-    xmlError          lastError;
-    xmlParserMode     parseMode;    /* the parser mode */
-    unsigned long    nbentities;    /* number of entities references */
-    unsigned long  sizeentities;    /* size of parsed entities */
-};
-
-/**
- * xmlSAXLocator:
- *
- * A SAX Locator.
- */
-struct _xmlSAXLocator {
-    const xmlChar *(*getPublicId)(void *ctx);
-    const xmlChar *(*getSystemId)(void *ctx);
-    int (*getLineNumber)(void *ctx);
-    int (*getColumnNumber)(void *ctx);
-};
-
-/**
- * xmlSAXHandler:
- *
- * A SAX handler is bunch of callbacks called by the parser when processing
- * of the input generate data or structure informations.
- */
-
-/**
- * resolveEntitySAXFunc:
- * @ctx:  the user data (XML parser context)
- * @publicId: The public ID of the entity
- * @systemId: The system ID of the entity
- *
- * Callback:
- * The entity loader, to control the loading of external entities,
- * the application can either:
- *    - override this resolveEntity() callback in the SAX block
- *    - or better use the xmlSetExternalEntityLoader() function to
- *      set up it's own entity resolution routine
- *
- * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
- */
-typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx,
-				const xmlChar *publicId,
-				const xmlChar *systemId);
-/**
- * internalSubsetSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  the root element name
- * @ExternalID:  the external ID
- * @SystemID:  the SYSTEM ID (e.g. filename or URL)
- *
- * Callback on internal subset declaration.
- */
-typedef void (*internalSubsetSAXFunc) (void *ctx,
-				const xmlChar *name,
-				const xmlChar *ExternalID,
-				const xmlChar *SystemID);
-/**
- * externalSubsetSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  the root element name
- * @ExternalID:  the external ID
- * @SystemID:  the SYSTEM ID (e.g. filename or URL)
- *
- * Callback on external subset declaration.
- */
-typedef void (*externalSubsetSAXFunc) (void *ctx,
-				const xmlChar *name,
-				const xmlChar *ExternalID,
-				const xmlChar *SystemID);
-/**
- * getEntitySAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name: The entity name
- *
- * Get an entity by name.
- *
- * Returns the xmlEntityPtr if found.
- */
-typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
-				const xmlChar *name);
-/**
- * getParameterEntitySAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name: The entity name
- *
- * Get a parameter entity by name.
- *
- * Returns the xmlEntityPtr if found.
- */
-typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx,
-				const xmlChar *name);
-/**
- * entityDeclSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  the entity name 
- * @type:  the entity type 
- * @publicId: The public ID of the entity
- * @systemId: The system ID of the entity
- * @content: the entity value (without processing).
- *
- * An entity definition has been parsed.
- */
-typedef void (*entityDeclSAXFunc) (void *ctx,
-				const xmlChar *name,
-				int type,
-				const xmlChar *publicId,
-				const xmlChar *systemId,
-				xmlChar *content);
-/**
- * notationDeclSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name: The name of the notation
- * @publicId: The public ID of the entity
- * @systemId: The system ID of the entity
- *
- * What to do when a notation declaration has been parsed.
- */
-typedef void (*notationDeclSAXFunc)(void *ctx,
-				const xmlChar *name,
-				const xmlChar *publicId,
-				const xmlChar *systemId);
-/**
- * attributeDeclSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @elem:  the name of the element
- * @fullname:  the attribute name 
- * @type:  the attribute type 
- * @def:  the type of default value
- * @defaultValue: the attribute default value
- * @tree:  the tree of enumerated value set
- *
- * An attribute definition has been parsed.
- */
-typedef void (*attributeDeclSAXFunc)(void *ctx,
-				const xmlChar *elem,
-				const xmlChar *fullname,
-				int type,
-				int def,
-				const xmlChar *defaultValue,
-				xmlEnumerationPtr tree);
-/**
- * elementDeclSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  the element name 
- * @type:  the element type 
- * @content: the element value tree
- *
- * An element definition has been parsed.
- */
-typedef void (*elementDeclSAXFunc)(void *ctx,
-				const xmlChar *name,
-				int type,
-				xmlElementContentPtr content);
-/**
- * unparsedEntityDeclSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name: The name of the entity
- * @publicId: The public ID of the entity
- * @systemId: The system ID of the entity
- * @notationName: the name of the notation
- *
- * What to do when an unparsed entity declaration is parsed.
- */
-typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
-				const xmlChar *name,
-				const xmlChar *publicId,
-				const xmlChar *systemId,
-				const xmlChar *notationName);
-/**
- * setDocumentLocatorSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @loc: A SAX Locator
- *
- * Receive the document locator at startup, actually xmlDefaultSAXLocator.
- * Everything is available on the context, so this is useless in our case.
- */
-typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
-				xmlSAXLocatorPtr loc);
-/**
- * startDocumentSAXFunc:
- * @ctx:  the user data (XML parser context)
- *
- * Called when the document start being processed.
- */
-typedef void (*startDocumentSAXFunc) (void *ctx);
-/**
- * endDocumentSAXFunc:
- * @ctx:  the user data (XML parser context)
- *
- * Called when the document end has been detected.
- */
-typedef void (*endDocumentSAXFunc) (void *ctx);
-/**
- * startElementSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  The element name, including namespace prefix
- * @atts:  An array of name/value attributes pairs, NULL terminated
- *
- * Called when an opening tag has been processed.
- */
-typedef void (*startElementSAXFunc) (void *ctx,
-				const xmlChar *name,
-				const xmlChar **atts);
-/**
- * endElementSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  The element name
- *
- * Called when the end of an element has been detected.
- */
-typedef void (*endElementSAXFunc) (void *ctx,
-				const xmlChar *name);
-/**
- * attributeSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  The attribute name, including namespace prefix
- * @value:  The attribute value
- *
- * Handle an attribute that has been read by the parser.
- * The default handling is to convert the attribute into an
- * DOM subtree and past it in a new xmlAttr element added to
- * the element.
- */
-typedef void (*attributeSAXFunc) (void *ctx,
-				const xmlChar *name,
-				const xmlChar *value);
-/**
- * referenceSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @name:  The entity name
- *
- * Called when an entity reference is detected. 
- */
-typedef void (*referenceSAXFunc) (void *ctx,
-				const xmlChar *name);
-/**
- * charactersSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @ch:  a xmlChar string
- * @len: the number of xmlChar
- *
- * Receiving some chars from the parser.
- */
-typedef void (*charactersSAXFunc) (void *ctx,
-				const xmlChar *ch,
-				int len);
-/**
- * ignorableWhitespaceSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @ch:  a xmlChar string
- * @len: the number of xmlChar
- *
- * Receiving some ignorable whitespaces from the parser.
- * UNUSED: by default the DOM building will use characters.
- */
-typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
-				const xmlChar *ch,
-				int len);
-/**
- * processingInstructionSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @target:  the target name
- * @data: the PI data's
- *
- * A processing instruction has been parsed.
- */
-typedef void (*processingInstructionSAXFunc) (void *ctx,
-				const xmlChar *target,
-				const xmlChar *data);
-/**
- * commentSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @value:  the comment content
- *
- * A comment has been parsed.
- */
-typedef void (*commentSAXFunc) (void *ctx,
-				const xmlChar *value);
-/**
- * cdataBlockSAXFunc:
- * @ctx:  the user data (XML parser context)
- * @value:  The pcdata content
- * @len:  the block length
- *
- * Called when a pcdata block has been parsed.
- */
-typedef void (*cdataBlockSAXFunc) (
-	                        void *ctx,
-				const xmlChar *value,
-				int len);
-/**
- * warningSAXFunc:
- * @ctx:  an XML parser context
- * @msg:  the message to display/transmit
- * @...:  extra parameters for the message display
- * 
- * Display and format a warning messages, callback.
- */
-typedef void (XMLCDECL *warningSAXFunc) (void *ctx,
-				const char *msg, ...) ATTRIBUTE_PRINTF(2,3);
-/**
- * errorSAXFunc:
- * @ctx:  an XML parser context
- * @msg:  the message to display/transmit
- * @...:  extra parameters for the message display
- * 
- * Display and format an error messages, callback.
- */
-typedef void (XMLCDECL *errorSAXFunc) (void *ctx,
-				const char *msg, ...) ATTRIBUTE_PRINTF(2,3);
-/**
- * fatalErrorSAXFunc:
- * @ctx:  an XML parser context
- * @msg:  the message to display/transmit
- * @...:  extra parameters for the message display
- * 
- * Display and format fatal error messages, callback.
- * Note: so far fatalError() SAX callbacks are not used, error()
- *       get all the callbacks for errors.
- */
-typedef void (XMLCDECL *fatalErrorSAXFunc) (void *ctx,
-				const char *msg, ...) ATTRIBUTE_PRINTF(2,3);
-/**
- * isStandaloneSAXFunc:
- * @ctx:  the user data (XML parser context)
- *
- * Is this document tagged standalone?
- *
- * Returns 1 if true
- */
-typedef int (*isStandaloneSAXFunc) (void *ctx);
-/**
- * hasInternalSubsetSAXFunc:
- * @ctx:  the user data (XML parser context)
- *
- * Does this document has an internal subset.
- *
- * Returns 1 if true
- */
-typedef int (*hasInternalSubsetSAXFunc) (void *ctx);
-
-/**
- * hasExternalSubsetSAXFunc:
- * @ctx:  the user data (XML parser context)
- *
- * Does this document has an external subset?
- *
- * Returns 1 if true
- */
-typedef int (*hasExternalSubsetSAXFunc) (void *ctx);
-
-/************************************************************************
- *									*
- *			The SAX version 2 API extensions		*
- *									*
- ************************************************************************/
-/**
- * XML_SAX2_MAGIC:
- *
- * Special constant found in SAX2 blocks initialized fields
- */
-#define XML_SAX2_MAGIC 0xDEEDBEAF
-
-/**
- * startElementNsSAX2Func:
- * @ctx:  the user data (XML parser context)
- * @localname:  the local name of the element
- * @prefix:  the element namespace prefix if available
- * @URI:  the element namespace name if available
- * @nb_namespaces:  number of namespace definitions on that node
- * @namespaces:  pointer to the array of prefix/URI pairs namespace definitions
- * @nb_attributes:  the number of attributes on that node
- * @nb_defaulted:  the number of defaulted attributes. The defaulted
- *                  ones are at the end of the array
- * @attributes:  pointer to the array of (localname/prefix/URI/value/end)
- *               attribute values.
- *
- * SAX2 callback when an element start has been detected by the parser.
- * It provides the namespace informations for the element, as well as
- * the new namespace declarations on the element.
- */
-
-typedef void (*startElementNsSAX2Func) (void *ctx,
-					const xmlChar *localname,
-					const xmlChar *prefix,
-					const xmlChar *URI,
-					int nb_namespaces,
-					const xmlChar **namespaces,
-					int nb_attributes,
-					int nb_defaulted,
-					const xmlChar **attributes);
- 
-/**
- * endElementNsSAX2Func:
- * @ctx:  the user data (XML parser context)
- * @localname:  the local name of the element
- * @prefix:  the element namespace prefix if available
- * @URI:  the element namespace name if available
- *
- * SAX2 callback when an element end has been detected by the parser.
- * It provides the namespace informations for the element.
- */
-
-typedef void (*endElementNsSAX2Func)   (void *ctx,
-					const xmlChar *localname,
-					const xmlChar *prefix,
-					const xmlChar *URI);
-
-
-struct _xmlSAXHandler {
-    internalSubsetSAXFunc internalSubset;
-    isStandaloneSAXFunc isStandalone;
-    hasInternalSubsetSAXFunc hasInternalSubset;
-    hasExternalSubsetSAXFunc hasExternalSubset;
-    resolveEntitySAXFunc resolveEntity;
-    getEntitySAXFunc getEntity;
-    entityDeclSAXFunc entityDecl;
-    notationDeclSAXFunc notationDecl;
-    attributeDeclSAXFunc attributeDecl;
-    elementDeclSAXFunc elementDecl;
-    unparsedEntityDeclSAXFunc unparsedEntityDecl;
-    setDocumentLocatorSAXFunc setDocumentLocator;
-    startDocumentSAXFunc startDocument;
-    endDocumentSAXFunc endDocument;
-    startElementSAXFunc startElement;
-    endElementSAXFunc endElement;
-    referenceSAXFunc reference;
-    charactersSAXFunc characters;
-    ignorableWhitespaceSAXFunc ignorableWhitespace;
-    processingInstructionSAXFunc processingInstruction;
-    commentSAXFunc comment;
-    warningSAXFunc warning;
-    errorSAXFunc error;
-    fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
-    getParameterEntitySAXFunc getParameterEntity;
-    cdataBlockSAXFunc cdataBlock;
-    externalSubsetSAXFunc externalSubset;
-    unsigned int initialized;
-    /* The following fields are extensions available only on version 2 */
-    void *_private;
-    startElementNsSAX2Func startElementNs;
-    endElementNsSAX2Func endElementNs;
-    xmlStructuredErrorFunc serror;
-};
-
-/*
- * SAX Version 1
- */
-typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1;
-typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr;
-struct _xmlSAXHandlerV1 {
-    internalSubsetSAXFunc internalSubset;
-    isStandaloneSAXFunc isStandalone;
-    hasInternalSubsetSAXFunc hasInternalSubset;
-    hasExternalSubsetSAXFunc hasExternalSubset;
-    resolveEntitySAXFunc resolveEntity;
-    getEntitySAXFunc getEntity;
-    entityDeclSAXFunc entityDecl;
-    notationDeclSAXFunc notationDecl;
-    attributeDeclSAXFunc attributeDecl;
-    elementDeclSAXFunc elementDecl;
-    unparsedEntityDeclSAXFunc unparsedEntityDecl;
-    setDocumentLocatorSAXFunc setDocumentLocator;
-    startDocumentSAXFunc startDocument;
-    endDocumentSAXFunc endDocument;
-    startElementSAXFunc startElement;
-    endElementSAXFunc endElement;
-    referenceSAXFunc reference;
-    charactersSAXFunc characters;
-    ignorableWhitespaceSAXFunc ignorableWhitespace;
-    processingInstructionSAXFunc processingInstruction;
-    commentSAXFunc comment;
-    warningSAXFunc warning;
-    errorSAXFunc error;
-    fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
-    getParameterEntitySAXFunc getParameterEntity;
-    cdataBlockSAXFunc cdataBlock;
-    externalSubsetSAXFunc externalSubset;
-    unsigned int initialized;
-};
-
-
-/**
- * xmlExternalEntityLoader:
- * @URL: The System ID of the resource requested
- * @ID: The Public ID of the resource requested
- * @context: the XML parser context 
- *
- * External entity loaders types.
- *
- * Returns the entity input parser.
- */
-typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL,
-					 const char *ID,
-					 xmlParserCtxtPtr context);
-
-#ifdef __cplusplus
-}
-#endif
-
-#include <libxml/encoding.h>
-#include <libxml/xmlIO.h>
-#include <libxml/globals.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*
- * Init/Cleanup
- */
-XMLPUBFUN void XMLCALL		
-		xmlInitParser		(void);
-XMLPUBFUN void XMLCALL		
-		xmlCleanupParser	(void);
-
-/*
- * Input functions
- */
-XMLPUBFUN int XMLCALL		
-		xmlParserInputRead	(xmlParserInputPtr in,
-					 int len);
-XMLPUBFUN int XMLCALL		
-		xmlParserInputGrow	(xmlParserInputPtr in,
-					 int len);
-
-/*
- * Basic parsing Interfaces
- */
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlParseDoc		(const xmlChar *cur);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlParseFile		(const char *filename);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlParseMemory		(const char *buffer,
-					 int size);
-#endif /* LIBXML_SAX1_ENABLED */
-XMLPUBFUN int XMLCALL		
-		xmlSubstituteEntitiesDefault(int val);
-XMLPUBFUN int XMLCALL		
-		xmlKeepBlanksDefault	(int val);
-XMLPUBFUN void XMLCALL		
-		xmlStopParser		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL		
-		xmlPedanticParserDefault(int val);
-XMLPUBFUN int XMLCALL		
-		xmlLineNumbersDefault	(int val);
-
-#ifdef LIBXML_SAX1_ENABLED
-/*
- * Recovery mode 
- */
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlRecoverDoc		(xmlChar *cur);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlRecoverMemory	(const char *buffer,
-					 int size);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlRecoverFile		(const char *filename);
-#endif /* LIBXML_SAX1_ENABLED */
-
-/*
- * Less common routines and SAX interfaces
- */
-XMLPUBFUN int XMLCALL		
-		xmlParseDocument	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL		
-		xmlParseExtParsedEnt	(xmlParserCtxtPtr ctxt);
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN int XMLCALL		
-		xmlSAXUserParseFile	(xmlSAXHandlerPtr sax,
-					 void *user_data,
-					 const char *filename);
-XMLPUBFUN int XMLCALL		
-		xmlSAXUserParseMemory	(xmlSAXHandlerPtr sax,
-					 void *user_data,
-					 const char *buffer,
-					 int size);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlSAXParseDoc		(xmlSAXHandlerPtr sax,
-					 const xmlChar *cur,
-					 int recovery);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlSAXParseMemory	(xmlSAXHandlerPtr sax,
-					 const char *buffer,
-                                   	 int size,
-					 int recovery);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax,
-					 const char *buffer,
-                                   	 int size,
-					 int recovery,
-					 void *data);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlSAXParseFile		(xmlSAXHandlerPtr sax,
-					 const char *filename,
-					 int recovery);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlSAXParseFileWithData	(xmlSAXHandlerPtr sax,
-					 const char *filename,
-					 int recovery,
-					 void *data);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlSAXParseEntity	(xmlSAXHandlerPtr sax,
-					 const char *filename);
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlParseEntity		(const char *filename);
-#endif /* LIBXML_SAX1_ENABLED */
-
-#ifdef LIBXML_VALID_ENABLED
-XMLPUBFUN xmlDtdPtr XMLCALL	
-		xmlSAXParseDTD		(xmlSAXHandlerPtr sax,
-					 const xmlChar *ExternalID,
-					 const xmlChar *SystemID);
-XMLPUBFUN xmlDtdPtr XMLCALL	
-		xmlParseDTD		(const xmlChar *ExternalID,
-					 const xmlChar *SystemID);
-XMLPUBFUN xmlDtdPtr XMLCALL	
-		xmlIOParseDTD		(xmlSAXHandlerPtr sax,
-					 xmlParserInputBufferPtr input,
-					 xmlCharEncoding enc);
-#endif /* LIBXML_VALID_ENABLE */
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN int XMLCALL	
-		xmlParseBalancedChunkMemory(xmlDocPtr doc,
-					 xmlSAXHandlerPtr sax,
-					 void *user_data,
-					 int depth,
-					 const xmlChar *string,
-					 xmlNodePtr *lst);
-#endif /* LIBXML_SAX1_ENABLED */
-XMLPUBFUN xmlParserErrors XMLCALL
-		xmlParseInNodeContext	(xmlNodePtr node,
-					 const char *data,
-					 int datalen,
-					 int options,
-					 xmlNodePtr *lst);
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN int XMLCALL          
-		xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc,
-                     xmlSAXHandlerPtr sax,
-                     void *user_data,
-                     int depth,
-                     const xmlChar *string,
-                     xmlNodePtr *lst,
-                     int recover);
-XMLPUBFUN int XMLCALL		
-		xmlParseExternalEntity	(xmlDocPtr doc,
-					 xmlSAXHandlerPtr sax,
-					 void *user_data,
-					 int depth,
-					 const xmlChar *URL,
-					 const xmlChar *ID,
-					 xmlNodePtr *lst);
-#endif /* LIBXML_SAX1_ENABLED */
-XMLPUBFUN int XMLCALL		
-		xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx,
-					 const xmlChar *URL,
-					 const xmlChar *ID,
-					 xmlNodePtr *lst);
-
-/*
- * Parser contexts handling.
- */
-XMLPUBFUN xmlParserCtxtPtr XMLCALL	
-		xmlNewParserCtxt	(void);
-XMLPUBFUN int XMLCALL		
-		xmlInitParserCtxt	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL		
-		xmlClearParserCtxt	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL		
-		xmlFreeParserCtxt	(xmlParserCtxtPtr ctxt);
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlSetupParserForBuffer	(xmlParserCtxtPtr ctxt,
-					 const xmlChar* buffer,
-					 const char *filename);
-#endif /* LIBXML_SAX1_ENABLED */
-XMLPUBFUN xmlParserCtxtPtr XMLCALL 
-		xmlCreateDocParserCtxt	(const xmlChar *cur);
-
-#ifdef LIBXML_LEGACY_ENABLED
-/*
- * Reading/setting optional parsing features.
- */
-XMLPUBFUN int XMLCALL		
-		xmlGetFeaturesList	(int *len,
-					 const char **result);
-XMLPUBFUN int XMLCALL		
-		xmlGetFeature		(xmlParserCtxtPtr ctxt,
-					 const char *name,
-					 void *result);
-XMLPUBFUN int XMLCALL		
-		xmlSetFeature		(xmlParserCtxtPtr ctxt,
-					 const char *name,
-					 void *value);
-#endif /* LIBXML_LEGACY_ENABLED */
-
-#ifdef LIBXML_PUSH_ENABLED
-/*
- * Interfaces for the Push mode.
- */
-XMLPUBFUN xmlParserCtxtPtr XMLCALL 
-		xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
-					 void *user_data,
-					 const char *chunk,
-					 int size,
-					 const char *filename);
-XMLPUBFUN int XMLCALL		 
-		xmlParseChunk		(xmlParserCtxtPtr ctxt,
-					 const char *chunk,
-					 int size,
-					 int terminate);
-#endif /* LIBXML_PUSH_ENABLED */
-
-/*
- * Special I/O mode.
- */
-
-XMLPUBFUN xmlParserCtxtPtr XMLCALL 
-		xmlCreateIOParserCtxt	(xmlSAXHandlerPtr sax,
-					 void *user_data,
-					 xmlInputReadCallback   ioread,
-					 xmlInputCloseCallback  ioclose,
-					 void *ioctx,
-					 xmlCharEncoding enc);
-
-XMLPUBFUN xmlParserInputPtr XMLCALL 
-		xmlNewIOInputStream	(xmlParserCtxtPtr ctxt,
-					 xmlParserInputBufferPtr input,
-					 xmlCharEncoding enc);
-
-/*
- * Node infos.
- */
-XMLPUBFUN const xmlParserNodeInfo* XMLCALL
-		xmlParserFindNodeInfo	(const xmlParserCtxtPtr ctxt,
-				         const xmlNodePtr node);
-XMLPUBFUN void XMLCALL		
-		xmlInitNodeInfoSeq	(xmlParserNodeInfoSeqPtr seq);
-XMLPUBFUN void XMLCALL		
-		xmlClearNodeInfoSeq	(xmlParserNodeInfoSeqPtr seq);
-XMLPUBFUN unsigned long XMLCALL 
-		xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq,
-                                         const xmlNodePtr node);
-XMLPUBFUN void XMLCALL		
-		xmlParserAddNodeInfo	(xmlParserCtxtPtr ctxt,
-					 const xmlParserNodeInfoPtr info);
-
-/*
- * External entities handling actually implemented in xmlIO.
- */
-
-XMLPUBFUN void XMLCALL		
-		xmlSetExternalEntityLoader(xmlExternalEntityLoader f);
-XMLPUBFUN xmlExternalEntityLoader XMLCALL
-		xmlGetExternalEntityLoader(void);
-XMLPUBFUN xmlParserInputPtr XMLCALL
-		xmlLoadExternalEntity	(const char *URL,
-					 const char *ID,
-					 xmlParserCtxtPtr ctxt);
-
-/*
- * Index lookup, actually implemented in the encoding module
- */
-XMLPUBFUN long XMLCALL
-		xmlByteConsumed		(xmlParserCtxtPtr ctxt);
-
-/*
- * New set of simpler/more flexible APIs
- */
-/**
- * xmlParserOption:
- *
- * This is the set of XML parser options that can be passed down
- * to the xmlReadDoc() and similar calls.
- */
-typedef enum {
-    XML_PARSE_RECOVER	= 1<<0,	/* recover on errors */
-    XML_PARSE_NOENT	= 1<<1,	/* substitute entities */
-    XML_PARSE_DTDLOAD	= 1<<2,	/* load the external subset */
-    XML_PARSE_DTDATTR	= 1<<3,	/* default DTD attributes */
-    XML_PARSE_DTDVALID	= 1<<4,	/* validate with the DTD */
-    XML_PARSE_NOERROR	= 1<<5,	/* suppress error reports */
-    XML_PARSE_NOWARNING	= 1<<6,	/* suppress warning reports */
-    XML_PARSE_PEDANTIC	= 1<<7,	/* pedantic error reporting */
-    XML_PARSE_NOBLANKS	= 1<<8,	/* remove blank nodes */
-    XML_PARSE_SAX1	= 1<<9,	/* use the SAX1 interface internally */
-    XML_PARSE_XINCLUDE	= 1<<10,/* Implement XInclude substitition  */
-    XML_PARSE_NONET	= 1<<11,/* Forbid network access */
-    XML_PARSE_NODICT	= 1<<12,/* Do not reuse the context dictionnary */
-    XML_PARSE_NSCLEAN	= 1<<13,/* remove redundant namespaces declarations */
-    XML_PARSE_NOCDATA	= 1<<14,/* merge CDATA as text nodes */
-    XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */
-    XML_PARSE_COMPACT   = 1<<16,/* compact small text nodes; no modification of
-                                   the tree allowed afterwards (will possibly
-				   crash if you try to modify the tree) */
-    XML_PARSE_OLD10	= 1<<17,/* parse using XML-1.0 before update 5 */
-    XML_PARSE_NOBASEFIX = 1<<18,/* do not fixup XINCLUDE xml:base uris */
-    XML_PARSE_HUGE      = 1<<19, /* relax any hardcoded limit from the parser */
-    XML_PARSE_OLDSAX    = 1<<20 /* parse using SAX2 interface from before 2.7.0 */
-} xmlParserOption;
-
-XMLPUBFUN void XMLCALL
-		xmlCtxtReset		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-		xmlCtxtResetPush	(xmlParserCtxtPtr ctxt,
-					 const char *chunk,
-					 int size,
-					 const char *filename,
-					 const char *encoding);
-XMLPUBFUN int XMLCALL
-		xmlCtxtUseOptions	(xmlParserCtxtPtr ctxt,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlReadDoc		(const xmlChar *cur,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlReadFile		(const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlReadMemory		(const char *buffer,
-					 int size,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlReadFd		(int fd,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlReadIO		(xmlInputReadCallback ioread,
-					 xmlInputCloseCallback ioclose,
-					 void *ioctx,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlCtxtReadDoc		(xmlParserCtxtPtr ctxt,
-					 const xmlChar *cur,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlCtxtReadFile		(xmlParserCtxtPtr ctxt,
-					 const char *filename,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlCtxtReadMemory		(xmlParserCtxtPtr ctxt,
-					 const char *buffer,
-					 int size,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlCtxtReadFd		(xmlParserCtxtPtr ctxt,
-					 int fd,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlDocPtr XMLCALL
-		xmlCtxtReadIO		(xmlParserCtxtPtr ctxt,
-					 xmlInputReadCallback ioread,
-					 xmlInputCloseCallback ioclose,
-					 void *ioctx,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-
-/*
- * Library wide options
- */
-/**
- * xmlFeature:
- *
- * Used to examine the existance of features that can be enabled
- * or disabled at compile-time.
- * They used to be called XML_FEATURE_xxx but this clashed with Expat
- */
-typedef enum {
-    XML_WITH_THREAD = 1,
-    XML_WITH_TREE = 2,
-    XML_WITH_OUTPUT = 3,
-    XML_WITH_PUSH = 4,
-    XML_WITH_READER = 5,
-    XML_WITH_PATTERN = 6,
-    XML_WITH_WRITER = 7,
-    XML_WITH_SAX1 = 8,
-    XML_WITH_FTP = 9,
-    XML_WITH_HTTP = 10,
-    XML_WITH_VALID = 11,
-    XML_WITH_HTML = 12,
-    XML_WITH_LEGACY = 13,
-    XML_WITH_C14N = 14,
-    XML_WITH_CATALOG = 15,
-    XML_WITH_XPATH = 16,
-    XML_WITH_XPTR = 17,
-    XML_WITH_XINCLUDE = 18,
-    XML_WITH_ICONV = 19,
-    XML_WITH_ISO8859X = 20,
-    XML_WITH_UNICODE = 21,
-    XML_WITH_REGEXP = 22,
-    XML_WITH_AUTOMATA = 23,
-    XML_WITH_EXPR = 24,
-    XML_WITH_SCHEMAS = 25,
-    XML_WITH_SCHEMATRON = 26,
-    XML_WITH_MODULES = 27,
-    XML_WITH_DEBUG = 28,
-    XML_WITH_DEBUG_MEM = 29,
-    XML_WITH_DEBUG_RUN = 30,
-    XML_WITH_ZLIB = 31,
-    XML_WITH_NONE = 99999 /* just to be sure of allocation size */
-} xmlFeature;
-
-XMLPUBFUN int XMLCALL
-		xmlHasFeature		(xmlFeature feature);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_PARSER_H__ */
-
diff --git a/interfaces/ext/libxml/parserInternals.h b/interfaces/ext/libxml/parserInternals.h
deleted file mode 100644
index a5e75b5..0000000
--- a/interfaces/ext/libxml/parserInternals.h
+++ /dev/null
@@ -1,611 +0,0 @@
-/*
- * Summary: internals routines exported by the parser.
- * Description: this module exports a number of internal parsing routines
- *              they are not really all intended for applications but
- *              can prove useful doing low level processing.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_PARSER_INTERNALS_H__
-#define __XML_PARSER_INTERNALS_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/parser.h>
-#include <libxml/HTMLparser.h>
-#include <libxml/chvalid.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlParserMaxDepth:
- *
- * arbitrary depth limit for the XML documents that we allow to
- * process. This is not a limitation of the parser but a safety
- * boundary feature, use XML_PARSE_HUGE option to override it.
- */
-XMLPUBVAR unsigned int xmlParserMaxDepth;
-
-/**
- * XML_MAX_TEXT_LENGTH:
- *
- * Maximum size allowed for a single text node when building a tree.
- * This is not a limitation of the parser but a safety boundary feature,
- * use XML_PARSE_HUGE option to override it.
- */
-#define XML_MAX_TEXT_LENGTH 10000000
-
-/**
- * XML_MAX_NAMELEN:
- *
- * Identifiers can be longer, but this will be more costly
- * at runtime.
- */
-#define XML_MAX_NAMELEN 100
-
-/**
- * INPUT_CHUNK:
- *
- * The parser tries to always have that amount of input ready.
- * One of the point is providing context when reporting errors.
- */
-#define INPUT_CHUNK	250
-
-/************************************************************************
- *									*
- * UNICODE version of the macros.      					*
- *									*
- ************************************************************************/
-/**
- * IS_BYTE_CHAR:
- * @c:  an byte value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- * [2] Char ::= #x9 | #xA | #xD | [#x20...]
- * any byte character in the accepted range
- */
-#define IS_BYTE_CHAR(c)	 xmlIsChar_ch(c)
-
-/**
- * IS_CHAR:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD]
- *                  | [#x10000-#x10FFFF]
- * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.
- */
-#define IS_CHAR(c)   xmlIsCharQ(c)
-
-/**
- * IS_CHAR_CH:
- * @c: an xmlChar (usually an unsigned char)
- *
- * Behaves like IS_CHAR on single-byte value
- */
-#define IS_CHAR_CH(c)  xmlIsChar_ch(c)
-
-/**
- * IS_BLANK:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- * [3] S ::= (#x20 | #x9 | #xD | #xA)+
- */
-#define IS_BLANK(c)  xmlIsBlankQ(c)
-
-/**
- * IS_BLANK_CH:
- * @c:  an xmlChar value (normally unsigned char)
- *
- * Behaviour same as IS_BLANK
- */
-#define IS_BLANK_CH(c)  xmlIsBlank_ch(c)
-
-/**
- * IS_BASECHAR:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- * [85] BaseChar ::= ... long list see REC ...
- */
-#define IS_BASECHAR(c) xmlIsBaseCharQ(c)
-
-/**
- * IS_DIGIT:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- * [88] Digit ::= ... long list see REC ...
- */
-#define IS_DIGIT(c) xmlIsDigitQ(c)
-
-/**
- * IS_DIGIT_CH:
- * @c:  an xmlChar value (usually an unsigned char)
- *
- * Behaves like IS_DIGIT but with a single byte argument
- */
-#define IS_DIGIT_CH(c)  xmlIsDigit_ch(c)
-
-/**
- * IS_COMBINING:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- * [87] CombiningChar ::= ... long list see REC ...
- */
-#define IS_COMBINING(c) xmlIsCombiningQ(c)
-
-/**
- * IS_COMBINING_CH:
- * @c:  an xmlChar (usually an unsigned char)
- *
- * Always false (all combining chars > 0xff)
- */
-#define IS_COMBINING_CH(c) 0 
-
-/**
- * IS_EXTENDER:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- *
- * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 |
- *                   #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] |
- *                   [#x309D-#x309E] | [#x30FC-#x30FE]
- */
-#define IS_EXTENDER(c) xmlIsExtenderQ(c)
-
-/**
- * IS_EXTENDER_CH:
- * @c:  an xmlChar value (usually an unsigned char)
- *
- * Behaves like IS_EXTENDER but with a single-byte argument
- */
-#define IS_EXTENDER_CH(c)  xmlIsExtender_ch(c)
-
-/**
- * IS_IDEOGRAPHIC:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- *
- * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
- */
-#define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c)
-
-/**
- * IS_LETTER:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- *
- * [84] Letter ::= BaseChar | Ideographic 
- */
-#define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c))
-
-/**
- * IS_LETTER_CH:
- * @c:  an xmlChar value (normally unsigned char)
- *
- * Macro behaves like IS_LETTER, but only check base chars
- *
- */
-#define IS_LETTER_CH(c) xmlIsBaseChar_ch(c)
-
-/**
- * IS_ASCII_LETTER:
- * @c: an xmlChar value
- *
- * Macro to check [a-zA-Z]
- *
- */
-#define IS_ASCII_LETTER(c)	(((0x41 <= (c)) && ((c) <= 0x5a)) || \
-				 ((0x61 <= (c)) && ((c) <= 0x7a)))
-
-/**
- * IS_ASCII_DIGIT:
- * @c: an xmlChar value
- *
- * Macro to check [0-9]
- *
- */
-#define IS_ASCII_DIGIT(c)	((0x30 <= (c)) && ((c) <= 0x39))
-
-/**
- * IS_PUBIDCHAR:
- * @c:  an UNICODE value (int)
- *
- * Macro to check the following production in the XML spec:
- *
- *
- * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
- */
-#define IS_PUBIDCHAR(c)	xmlIsPubidCharQ(c)
-
-/**
- * IS_PUBIDCHAR_CH:
- * @c:  an xmlChar value (normally unsigned char)
- *
- * Same as IS_PUBIDCHAR but for single-byte value
- */
-#define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c)
-
-/**
- * SKIP_EOL:
- * @p:  and UTF8 string pointer
- *
- * Skips the end of line chars.
- */
-#define SKIP_EOL(p) 							\
-    if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; }			\
-    if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }
-
-/**
- * MOVETO_ENDTAG:
- * @p:  and UTF8 string pointer
- *
- * Skips to the next '>' char.
- */
-#define MOVETO_ENDTAG(p)						\
-    while ((*p) && (*(p) != '>')) (p)++
-
-/**
- * MOVETO_STARTTAG:
- * @p:  and UTF8 string pointer
- *
- * Skips to the next '<' char.
- */
-#define MOVETO_STARTTAG(p)						\
-    while ((*p) && (*(p) != '<')) (p)++
-
-/**
- * Global variables used for predefined strings.
- */
-XMLPUBVAR const xmlChar xmlStringText[];
-XMLPUBVAR const xmlChar xmlStringTextNoenc[];
-XMLPUBVAR const xmlChar xmlStringComment[];
-
-/*
- * Function to finish the work of the macros where needed.
- */
-XMLPUBFUN int XMLCALL                   xmlIsLetter     (int c);
-
-/**
- * Parser context.
- */
-XMLPUBFUN xmlParserCtxtPtr XMLCALL	
-			xmlCreateFileParserCtxt	(const char *filename);
-XMLPUBFUN xmlParserCtxtPtr XMLCALL	
-			xmlCreateURLParserCtxt	(const char *filename,
-						 int options);
-XMLPUBFUN xmlParserCtxtPtr XMLCALL	
-			xmlCreateMemoryParserCtxt(const char *buffer,
-						 int size);
-XMLPUBFUN xmlParserCtxtPtr XMLCALL	
-			xmlCreateEntityParserCtxt(const xmlChar *URL,
-						 const xmlChar *ID,
-						 const xmlChar *base);
-XMLPUBFUN int XMLCALL			
-			xmlSwitchEncoding	(xmlParserCtxtPtr ctxt,
-						 xmlCharEncoding enc);
-XMLPUBFUN int XMLCALL			
-			xmlSwitchToEncoding	(xmlParserCtxtPtr ctxt,
-					 xmlCharEncodingHandlerPtr handler);
-XMLPUBFUN int XMLCALL			
-			xmlSwitchInputEncoding	(xmlParserCtxtPtr ctxt,
-						 xmlParserInputPtr input,
-					 xmlCharEncodingHandlerPtr handler);
-
-#ifdef IN_LIBXML
-/* internal error reporting */
-XMLPUBFUN void XMLCALL
-			__xmlErrEncoding	(xmlParserCtxtPtr ctxt,
-						 xmlParserErrors xmlerr,
-						 const char *msg,
-						 const xmlChar * str1,
-						 const xmlChar * str2);
-#endif
-
-/**
- * Input Streams.
- */
-XMLPUBFUN xmlParserInputPtr XMLCALL	
-			xmlNewStringInputStream	(xmlParserCtxtPtr ctxt,
-						 const xmlChar *buffer);
-XMLPUBFUN xmlParserInputPtr XMLCALL	
-			xmlNewEntityInputStream	(xmlParserCtxtPtr ctxt,
-						 xmlEntityPtr entity);
-XMLPUBFUN int XMLCALL			
-			xmlPushInput		(xmlParserCtxtPtr ctxt,
-						 xmlParserInputPtr input);
-XMLPUBFUN xmlChar XMLCALL			
-			xmlPopInput		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlFreeInputStream	(xmlParserInputPtr input);
-XMLPUBFUN xmlParserInputPtr XMLCALL	
-			xmlNewInputFromFile	(xmlParserCtxtPtr ctxt,
-						 const char *filename);
-XMLPUBFUN xmlParserInputPtr XMLCALL	
-			xmlNewInputStream	(xmlParserCtxtPtr ctxt);
-
-/**
- * Namespaces.
- */
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlSplitQName		(xmlParserCtxtPtr ctxt,
-						 const xmlChar *name,
-						 xmlChar **prefix);
-
-/**
- * Generic production rules.
- */
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlParseName		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseNmtoken		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseEntityValue	(xmlParserCtxtPtr ctxt,
-						 xmlChar **orig);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseAttValue	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseSystemLiteral	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParsePubidLiteral	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseCharData	(xmlParserCtxtPtr ctxt,
-						 int cdata);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseExternalID	(xmlParserCtxtPtr ctxt,
-						 xmlChar **publicID,
-						 int strict);
-XMLPUBFUN void XMLCALL			
-			xmlParseComment		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlParsePITarget	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParsePI		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseNotationDecl	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseEntityDecl	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			
-			xmlParseDefaultDecl	(xmlParserCtxtPtr ctxt,
-						 xmlChar **value);
-XMLPUBFUN xmlEnumerationPtr XMLCALL	
-			xmlParseNotationType	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlEnumerationPtr XMLCALL	
-			xmlParseEnumerationType	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			
-			xmlParseEnumeratedType	(xmlParserCtxtPtr ctxt,
-						 xmlEnumerationPtr *tree);
-XMLPUBFUN int XMLCALL			
-			xmlParseAttributeType	(xmlParserCtxtPtr ctxt,
-						 xmlEnumerationPtr *tree);
-XMLPUBFUN void XMLCALL			
-			xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlElementContentPtr XMLCALL	
-			xmlParseElementMixedContentDecl
-						(xmlParserCtxtPtr ctxt,
-						 int inputchk);
-XMLPUBFUN xmlElementContentPtr XMLCALL	
-			xmlParseElementChildrenContentDecl
-						(xmlParserCtxtPtr ctxt,
-						 int inputchk);
-XMLPUBFUN int XMLCALL			
-			xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
-						 const xmlChar *name,
-						 xmlElementContentPtr *result);
-XMLPUBFUN int XMLCALL			
-			xmlParseElementDecl	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseMarkupDecl	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			
-			xmlParseCharRef		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlEntityPtr XMLCALL		
-			xmlParseEntityRef	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseReference	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParsePEReference	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseDocTypeDecl	(xmlParserCtxtPtr ctxt);
-#ifdef LIBXML_SAX1_ENABLED
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlParseAttribute	(xmlParserCtxtPtr ctxt,
-						 xmlChar **value);
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlParseStartTag	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseEndTag		(xmlParserCtxtPtr ctxt);
-#endif /* LIBXML_SAX1_ENABLED */
-XMLPUBFUN void XMLCALL			
-			xmlParseCDSect		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseContent		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseElement		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseVersionNum	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseVersionInfo	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseEncName		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN const xmlChar * XMLCALL		
-			xmlParseEncodingDecl	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			
-			xmlParseSDDecl		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseXMLDecl		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseTextDecl	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseMisc		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			
-			xmlParseExternalSubset	(xmlParserCtxtPtr ctxt,
-						 const xmlChar *ExternalID,
-						 const xmlChar *SystemID); 
-/**
- * XML_SUBSTITUTE_NONE:
- *
- * If no entities need to be substituted.
- */
-#define XML_SUBSTITUTE_NONE	0
-/**
- * XML_SUBSTITUTE_REF:
- *
- * Whether general entities need to be substituted.
- */
-#define XML_SUBSTITUTE_REF	1
-/**
- * XML_SUBSTITUTE_PEREF:
- *
- * Whether parameter entities need to be substituted.
- */
-#define XML_SUBSTITUTE_PEREF	2
-/**
- * XML_SUBSTITUTE_BOTH:
- *
- * Both general and parameter entities need to be substituted.
- */
-#define XML_SUBSTITUTE_BOTH 	3
-
-XMLPUBFUN xmlChar * XMLCALL
-		xmlStringDecodeEntities		(xmlParserCtxtPtr ctxt,
-						 const xmlChar *str,
-						 int what,
-						 xmlChar end,
-						 xmlChar  end2,
-						 xmlChar end3);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlStringLenDecodeEntities	(xmlParserCtxtPtr ctxt,
-						 const xmlChar *str,
-						 int len,
-						 int what,
-						 xmlChar end,
-						 xmlChar  end2,
-						 xmlChar end3);
-
-/*
- * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP.
- */
-XMLPUBFUN int XMLCALL			nodePush		(xmlParserCtxtPtr ctxt,
-						 xmlNodePtr value);
-XMLPUBFUN xmlNodePtr XMLCALL		nodePop			(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			inputPush		(xmlParserCtxtPtr ctxt,
-						 xmlParserInputPtr value);
-XMLPUBFUN xmlParserInputPtr XMLCALL	inputPop		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN const xmlChar * XMLCALL	namePop			(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			namePush		(xmlParserCtxtPtr ctxt,
-						 const xmlChar *value);
-
-/*
- * other commodities shared between parser.c and parserInternals.
- */
-XMLPUBFUN int XMLCALL			xmlSkipBlankChars	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			xmlStringCurrentChar	(xmlParserCtxtPtr ctxt,
-						 const xmlChar *cur,
-						 int *len);
-XMLPUBFUN void XMLCALL			xmlParserHandlePEReference(xmlParserCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			xmlCheckLanguageID	(const xmlChar *lang);
-
-/*
- * Really core function shared with HTML parser.
- */
-XMLPUBFUN int XMLCALL			xmlCurrentChar		(xmlParserCtxtPtr ctxt,
-						 int *len);
-XMLPUBFUN int XMLCALL		xmlCopyCharMultiByte	(xmlChar *out,
-						 int val);
-XMLPUBFUN int XMLCALL			xmlCopyChar		(int len,
-						 xmlChar *out,
-						 int val);
-XMLPUBFUN void XMLCALL			xmlNextChar		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL			xmlParserInputShrink	(xmlParserInputPtr in);
-
-#ifdef LIBXML_HTML_ENABLED
-/*
- * Actually comes from the HTML parser but launched from the init stuff.
- */
-XMLPUBFUN void XMLCALL			htmlInitAutoClose	(void);
-XMLPUBFUN htmlParserCtxtPtr XMLCALL	htmlCreateFileParserCtxt(const char *filename,
-	                                         const char *encoding);
-#endif
-
-/*
- * Specific function to keep track of entities references
- * and used by the XSLT debugger.
- */
-#ifdef LIBXML_LEGACY_ENABLED
-/**
- * xmlEntityReferenceFunc:
- * @ent: the entity
- * @firstNode:  the fist node in the chunk
- * @lastNode:  the last nod in the chunk
- *
- * Callback function used when one needs to be able to track back the
- * provenance of a chunk of nodes inherited from an entity replacement.
- */
-typedef	void	(*xmlEntityReferenceFunc)	(xmlEntityPtr ent,
-						 xmlNodePtr firstNode,
-						 xmlNodePtr lastNode);
-  
-XMLPUBFUN void XMLCALL		xmlSetEntityReferenceFunc	(xmlEntityReferenceFunc func);
-
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlParseQuotedString	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL
-                        xmlParseNamespace       (xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlNamespaceParseNSDef	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlScanName		(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlNamespaceParseNCName	(xmlParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL	xmlParserHandleReference(xmlParserCtxtPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL		
-			xmlNamespaceParseQName	(xmlParserCtxtPtr ctxt,
-						 xmlChar **prefix);
-/**
- * Entities
- */
-XMLPUBFUN xmlChar * XMLCALL
-		xmlDecodeEntities		(xmlParserCtxtPtr ctxt,
-						 int len,
-						 int what,
-						 xmlChar end,
-						 xmlChar  end2,
-						 xmlChar end3);
-XMLPUBFUN void XMLCALL			
-			xmlHandleEntity		(xmlParserCtxtPtr ctxt,
-						 xmlEntityPtr entity);
-
-#endif /* LIBXML_LEGACY_ENABLED */
-
-#ifdef IN_LIBXML
-/*
- * internal only
- */
-XMLPUBFUN void XMLCALL
-	xmlErrMemory		(xmlParserCtxtPtr ctxt,
-				 const char *extra);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_PARSER_INTERNALS_H__ */
diff --git a/interfaces/ext/libxml/pattern.h b/interfaces/ext/libxml/pattern.h
deleted file mode 100644
index 97d2cd2..0000000
--- a/interfaces/ext/libxml/pattern.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Summary: pattern expression handling
- * Description: allows to compile and test pattern expressions for nodes
- *              either in a tree or based on a parser state.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_PATTERN_H__
-#define __XML_PATTERN_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-#include <libxml/dict.h>
-
-#ifdef LIBXML_PATTERN_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlPattern:
- *
- * A compiled (XPath based) pattern to select nodes
- */
-typedef struct _xmlPattern xmlPattern;
-typedef xmlPattern *xmlPatternPtr;
-
-/**
- * xmlPatternFlags:
- *
- * This is the set of options affecting the behaviour of pattern
- * matching with this module
- *
- */
-typedef enum {
-    XML_PATTERN_DEFAULT		= 0,	/* simple pattern match */
-    XML_PATTERN_XPATH		= 1<<0,	/* standard XPath pattern */
-    XML_PATTERN_XSSEL		= 1<<1,	/* XPath subset for schema selector */
-    XML_PATTERN_XSFIELD		= 1<<2	/* XPath subset for schema field */
-} xmlPatternFlags;
-
-XMLPUBFUN void XMLCALL
-			xmlFreePattern		(xmlPatternPtr comp);
-
-XMLPUBFUN void XMLCALL
-			xmlFreePatternList	(xmlPatternPtr comp);
-
-XMLPUBFUN xmlPatternPtr XMLCALL
-			xmlPatterncompile	(const xmlChar *pattern,
-						 xmlDict *dict,
-						 int flags,
-						 const xmlChar **namespaces);
-XMLPUBFUN int XMLCALL
-			xmlPatternMatch		(xmlPatternPtr comp,
-						 xmlNodePtr node);
-
-/* streaming interfaces */
-typedef struct _xmlStreamCtxt xmlStreamCtxt;
-typedef xmlStreamCtxt *xmlStreamCtxtPtr;
-
-XMLPUBFUN int XMLCALL
-			xmlPatternStreamable	(xmlPatternPtr comp);
-XMLPUBFUN int XMLCALL
-			xmlPatternMaxDepth	(xmlPatternPtr comp);
-XMLPUBFUN int XMLCALL
-			xmlPatternMinDepth	(xmlPatternPtr comp);
-XMLPUBFUN int XMLCALL
-			xmlPatternFromRoot	(xmlPatternPtr comp);
-XMLPUBFUN xmlStreamCtxtPtr XMLCALL
-			xmlPatternGetStreamCtxt	(xmlPatternPtr comp);
-XMLPUBFUN void XMLCALL
-			xmlFreeStreamCtxt	(xmlStreamCtxtPtr stream);
-XMLPUBFUN int XMLCALL
-			xmlStreamPushNode	(xmlStreamCtxtPtr stream,
-						 const xmlChar *name,
-						 const xmlChar *ns,
-						 int nodeType);
-XMLPUBFUN int XMLCALL
-			xmlStreamPush		(xmlStreamCtxtPtr stream,
-						 const xmlChar *name,
-						 const xmlChar *ns);
-XMLPUBFUN int XMLCALL
-			xmlStreamPushAttr	(xmlStreamCtxtPtr stream,
-						 const xmlChar *name,
-						 const xmlChar *ns);
-XMLPUBFUN int XMLCALL
-			xmlStreamPop		(xmlStreamCtxtPtr stream);
-XMLPUBFUN int XMLCALL
-			xmlStreamWantsAnyNode	(xmlStreamCtxtPtr stream);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_PATTERN_ENABLED */
-
-#endif /* __XML_PATTERN_H__ */
diff --git a/interfaces/ext/libxml/relaxng.h b/interfaces/ext/libxml/relaxng.h
deleted file mode 100644
index d3e39e0..0000000
--- a/interfaces/ext/libxml/relaxng.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Summary: implementation of the Relax-NG validation
- * Description: implementation of the Relax-NG validation
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_RELAX_NG__
-#define __XML_RELAX_NG__
-
-#include <libxml/xmlversion.h>
-#include <libxml/hash.h>
-#include <libxml/xmlstring.h>
-
-#ifdef LIBXML_SCHEMAS_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _xmlRelaxNG xmlRelaxNG;
-typedef xmlRelaxNG *xmlRelaxNGPtr;
-
-
-/**
- * xmlRelaxNGValidityErrorFunc:
- * @ctx: the validation context
- * @msg: the message
- * @...: extra arguments
- *
- * Signature of an error callback from a Relax-NG validation
- */
-typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...) ATTRIBUTE_PRINTF(2,3);
-
-/**
- * xmlRelaxNGValidityWarningFunc:
- * @ctx: the validation context
- * @msg: the message
- * @...: extra arguments
- *
- * Signature of a warning callback from a Relax-NG validation
- */
-typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...) ATTRIBUTE_PRINTF(2,3);
-
-/**
- * A schemas validation context
- */
-typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
-typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
-
-typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
-typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
-
-/*
- * xmlRelaxNGValidErr:
- *
- * List of possible Relax NG validation errors
- */
-typedef enum {
-    XML_RELAXNG_OK = 0,
-    XML_RELAXNG_ERR_MEMORY,
-    XML_RELAXNG_ERR_TYPE,
-    XML_RELAXNG_ERR_TYPEVAL,
-    XML_RELAXNG_ERR_DUPID,
-    XML_RELAXNG_ERR_TYPECMP,
-    XML_RELAXNG_ERR_NOSTATE,
-    XML_RELAXNG_ERR_NODEFINE,
-    XML_RELAXNG_ERR_LISTEXTRA,
-    XML_RELAXNG_ERR_LISTEMPTY,
-    XML_RELAXNG_ERR_INTERNODATA,
-    XML_RELAXNG_ERR_INTERSEQ,
-    XML_RELAXNG_ERR_INTEREXTRA,
-    XML_RELAXNG_ERR_ELEMNAME,
-    XML_RELAXNG_ERR_ATTRNAME,
-    XML_RELAXNG_ERR_ELEMNONS,
-    XML_RELAXNG_ERR_ATTRNONS,
-    XML_RELAXNG_ERR_ELEMWRONGNS,
-    XML_RELAXNG_ERR_ATTRWRONGNS,
-    XML_RELAXNG_ERR_ELEMEXTRANS,
-    XML_RELAXNG_ERR_ATTREXTRANS,
-    XML_RELAXNG_ERR_ELEMNOTEMPTY,
-    XML_RELAXNG_ERR_NOELEM,
-    XML_RELAXNG_ERR_NOTELEM,
-    XML_RELAXNG_ERR_ATTRVALID,
-    XML_RELAXNG_ERR_CONTENTVALID,
-    XML_RELAXNG_ERR_EXTRACONTENT,
-    XML_RELAXNG_ERR_INVALIDATTR,
-    XML_RELAXNG_ERR_DATAELEM,
-    XML_RELAXNG_ERR_VALELEM,
-    XML_RELAXNG_ERR_LISTELEM,
-    XML_RELAXNG_ERR_DATATYPE,
-    XML_RELAXNG_ERR_VALUE,
-    XML_RELAXNG_ERR_LIST,
-    XML_RELAXNG_ERR_NOGRAMMAR,
-    XML_RELAXNG_ERR_EXTRADATA,
-    XML_RELAXNG_ERR_LACKDATA,
-    XML_RELAXNG_ERR_INTERNAL,
-    XML_RELAXNG_ERR_ELEMWRONG,
-    XML_RELAXNG_ERR_TEXTWRONG
-} xmlRelaxNGValidErr;
-
-/*
- * xmlRelaxNGParserFlags:
- *
- * List of possible Relax NG Parser flags
- */
-typedef enum {
-    XML_RELAXNGP_NONE = 0,
-    XML_RELAXNGP_FREE_DOC = 1,
-    XML_RELAXNGP_CRNG = 2
-} xmlRelaxNGParserFlag;
-
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGInitTypes		(void);
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGCleanupTypes	(void);
-
-/*
- * Interfaces for parsing.
- */
-XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
-		    xmlRelaxNGNewParserCtxt	(const char *URL);
-XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
-		    xmlRelaxNGNewMemParserCtxt	(const char *buffer,
-						 int size);
-XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
-		    xmlRelaxNGNewDocParserCtxt	(xmlDocPtr doc);
-
-XMLPUBFUN int XMLCALL
-		    xmlRelaxParserSetFlag	(xmlRelaxNGParserCtxtPtr ctxt,
-						 int flag);
-
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGFreeParserCtxt	(xmlRelaxNGParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
-					 xmlRelaxNGValidityErrorFunc err,
-					 xmlRelaxNGValidityWarningFunc warn,
-					 void *ctx);
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
-					 xmlRelaxNGValidityErrorFunc *err,
-					 xmlRelaxNGValidityWarningFunc *warn,
-					 void **ctx);
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGSetParserStructuredErrors(
-					 xmlRelaxNGParserCtxtPtr ctxt,
-					 xmlStructuredErrorFunc serror,
-					 void *ctx);
-XMLPUBFUN xmlRelaxNGPtr XMLCALL
-		    xmlRelaxNGParse		(xmlRelaxNGParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGFree		(xmlRelaxNGPtr schema);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGDump		(FILE *output,
-					 xmlRelaxNGPtr schema);
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGDumpTree	(FILE * output,
-					 xmlRelaxNGPtr schema);
-#endif /* LIBXML_OUTPUT_ENABLED */
-/*
- * Interfaces for validating
- */
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
-					 xmlRelaxNGValidityErrorFunc err,
-					 xmlRelaxNGValidityWarningFunc warn,
-					 void *ctx);
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
-					 xmlRelaxNGValidityErrorFunc *err,
-					 xmlRelaxNGValidityWarningFunc *warn,
-					 void **ctx);
-XMLPUBFUN void XMLCALL
-			xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
-					  xmlStructuredErrorFunc serror, void *ctx);
-XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
-		    xmlRelaxNGNewValidCtxt	(xmlRelaxNGPtr schema);
-XMLPUBFUN void XMLCALL
-		    xmlRelaxNGFreeValidCtxt	(xmlRelaxNGValidCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGValidateDoc	(xmlRelaxNGValidCtxtPtr ctxt,
-						 xmlDocPtr doc);
-/*
- * Interfaces for progressive validation when possible
- */
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGValidatePushElement	(xmlRelaxNGValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem);
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGValidatePushCData	(xmlRelaxNGValidCtxtPtr ctxt,
-					 const xmlChar *data,
-					 int len);
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGValidatePopElement	(xmlRelaxNGValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem);
-XMLPUBFUN int XMLCALL
-		    xmlRelaxNGValidateFullElement	(xmlRelaxNGValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_SCHEMAS_ENABLED */
-
-#endif /* __XML_RELAX_NG__ */
diff --git a/interfaces/ext/libxml/schemasInternals.h b/interfaces/ext/libxml/schemasInternals.h
deleted file mode 100644
index b68a6e1..0000000
--- a/interfaces/ext/libxml/schemasInternals.h
+++ /dev/null
@@ -1,958 +0,0 @@
-/*
- * Summary: internal interfaces for XML Schemas
- * Description: internal interfaces for the XML Schemas handling
- *              and schema validity checking
- *		The Schemas development is a Work In Progress.
- *              Some of those interfaces are not garanteed to be API or ABI stable !
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __XML_SCHEMA_INTERNALS_H__
-#define __XML_SCHEMA_INTERNALS_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_SCHEMAS_ENABLED
-
-#include <libxml/xmlregexp.h>
-#include <libxml/hash.h>
-#include <libxml/dict.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-    XML_SCHEMAS_UNKNOWN = 0,
-    XML_SCHEMAS_STRING,
-    XML_SCHEMAS_NORMSTRING,
-    XML_SCHEMAS_DECIMAL,
-    XML_SCHEMAS_TIME,
-    XML_SCHEMAS_GDAY,
-    XML_SCHEMAS_GMONTH,
-    XML_SCHEMAS_GMONTHDAY,
-    XML_SCHEMAS_GYEAR,
-    XML_SCHEMAS_GYEARMONTH,
-    XML_SCHEMAS_DATE,
-    XML_SCHEMAS_DATETIME,
-    XML_SCHEMAS_DURATION,
-    XML_SCHEMAS_FLOAT,
-    XML_SCHEMAS_DOUBLE,
-    XML_SCHEMAS_BOOLEAN,
-    XML_SCHEMAS_TOKEN,
-    XML_SCHEMAS_LANGUAGE,
-    XML_SCHEMAS_NMTOKEN,
-    XML_SCHEMAS_NMTOKENS,
-    XML_SCHEMAS_NAME,
-    XML_SCHEMAS_QNAME,
-    XML_SCHEMAS_NCNAME,
-    XML_SCHEMAS_ID,
-    XML_SCHEMAS_IDREF,
-    XML_SCHEMAS_IDREFS,
-    XML_SCHEMAS_ENTITY,
-    XML_SCHEMAS_ENTITIES,
-    XML_SCHEMAS_NOTATION,
-    XML_SCHEMAS_ANYURI,
-    XML_SCHEMAS_INTEGER,
-    XML_SCHEMAS_NPINTEGER,
-    XML_SCHEMAS_NINTEGER,
-    XML_SCHEMAS_NNINTEGER,
-    XML_SCHEMAS_PINTEGER,
-    XML_SCHEMAS_INT,
-    XML_SCHEMAS_UINT,
-    XML_SCHEMAS_LONG,
-    XML_SCHEMAS_ULONG,
-    XML_SCHEMAS_SHORT,
-    XML_SCHEMAS_USHORT,
-    XML_SCHEMAS_BYTE,
-    XML_SCHEMAS_UBYTE,
-    XML_SCHEMAS_HEXBINARY,
-    XML_SCHEMAS_BASE64BINARY,
-    XML_SCHEMAS_ANYTYPE,
-    XML_SCHEMAS_ANYSIMPLETYPE
-} xmlSchemaValType;
-
-/*
- * XML Schemas defines multiple type of types.
- */
-typedef enum {
-    XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */
-    XML_SCHEMA_TYPE_ANY,
-    XML_SCHEMA_TYPE_FACET,
-    XML_SCHEMA_TYPE_SIMPLE,
-    XML_SCHEMA_TYPE_COMPLEX,
-    XML_SCHEMA_TYPE_SEQUENCE = 6,
-    XML_SCHEMA_TYPE_CHOICE,
-    XML_SCHEMA_TYPE_ALL,
-    XML_SCHEMA_TYPE_SIMPLE_CONTENT,
-    XML_SCHEMA_TYPE_COMPLEX_CONTENT,
-    XML_SCHEMA_TYPE_UR,
-    XML_SCHEMA_TYPE_RESTRICTION,
-    XML_SCHEMA_TYPE_EXTENSION,
-    XML_SCHEMA_TYPE_ELEMENT,
-    XML_SCHEMA_TYPE_ATTRIBUTE,
-    XML_SCHEMA_TYPE_ATTRIBUTEGROUP,
-    XML_SCHEMA_TYPE_GROUP,
-    XML_SCHEMA_TYPE_NOTATION,
-    XML_SCHEMA_TYPE_LIST,
-    XML_SCHEMA_TYPE_UNION,
-    XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
-    XML_SCHEMA_TYPE_IDC_UNIQUE,
-    XML_SCHEMA_TYPE_IDC_KEY,
-    XML_SCHEMA_TYPE_IDC_KEYREF,
-    XML_SCHEMA_TYPE_PARTICLE = 25, 
-    XML_SCHEMA_TYPE_ATTRIBUTE_USE, 
-    XML_SCHEMA_FACET_MININCLUSIVE = 1000,
-    XML_SCHEMA_FACET_MINEXCLUSIVE,
-    XML_SCHEMA_FACET_MAXINCLUSIVE,
-    XML_SCHEMA_FACET_MAXEXCLUSIVE,
-    XML_SCHEMA_FACET_TOTALDIGITS,
-    XML_SCHEMA_FACET_FRACTIONDIGITS,
-    XML_SCHEMA_FACET_PATTERN,
-    XML_SCHEMA_FACET_ENUMERATION,
-    XML_SCHEMA_FACET_WHITESPACE,
-    XML_SCHEMA_FACET_LENGTH,
-    XML_SCHEMA_FACET_MAXLENGTH,
-    XML_SCHEMA_FACET_MINLENGTH,
-    XML_SCHEMA_EXTRA_QNAMEREF = 2000,
-    XML_SCHEMA_EXTRA_ATTR_USE_PROHIB
-} xmlSchemaTypeType;
-
-typedef enum {
-    XML_SCHEMA_CONTENT_UNKNOWN = 0,
-    XML_SCHEMA_CONTENT_EMPTY = 1,
-    XML_SCHEMA_CONTENT_ELEMENTS,
-    XML_SCHEMA_CONTENT_MIXED,
-    XML_SCHEMA_CONTENT_SIMPLE,
-    XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* Obsolete */
-    XML_SCHEMA_CONTENT_BASIC,
-    XML_SCHEMA_CONTENT_ANY
-} xmlSchemaContentType;
-
-typedef struct _xmlSchemaVal xmlSchemaVal;
-typedef xmlSchemaVal *xmlSchemaValPtr;
-
-typedef struct _xmlSchemaType xmlSchemaType;
-typedef xmlSchemaType *xmlSchemaTypePtr;
-
-typedef struct _xmlSchemaFacet xmlSchemaFacet;
-typedef xmlSchemaFacet *xmlSchemaFacetPtr;
-
-/**
- * Annotation
- */
-typedef struct _xmlSchemaAnnot xmlSchemaAnnot;
-typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;
-struct _xmlSchemaAnnot {
-    struct _xmlSchemaAnnot *next;
-    xmlNodePtr content;         /* the annotation */
-};
-
-/**
- * XML_SCHEMAS_ANYATTR_SKIP:
- *
- * Skip unknown attribute from validation
- * Obsolete, not used anymore.
- */
-#define XML_SCHEMAS_ANYATTR_SKIP        1
-/**
- * XML_SCHEMAS_ANYATTR_LAX:
- *
- * Ignore validation non definition on attributes
- * Obsolete, not used anymore.
- */
-#define XML_SCHEMAS_ANYATTR_LAX                2
-/**
- * XML_SCHEMAS_ANYATTR_STRICT:
- *
- * Apply strict validation rules on attributes
- * Obsolete, not used anymore.
- */
-#define XML_SCHEMAS_ANYATTR_STRICT        3
-/**
- * XML_SCHEMAS_ANY_SKIP:
- *
- * Skip unknown attribute from validation
- */
-#define XML_SCHEMAS_ANY_SKIP        1
-/**
- * XML_SCHEMAS_ANY_LAX:
- *
- * Used by wildcards.
- * Validate if type found, don't worry if not found
- */
-#define XML_SCHEMAS_ANY_LAX                2
-/**
- * XML_SCHEMAS_ANY_STRICT:
- *
- * Used by wildcards.
- * Apply strict validation rules
- */
-#define XML_SCHEMAS_ANY_STRICT        3
-/**
- * XML_SCHEMAS_ATTR_USE_PROHIBITED:
- *
- * Used by wildcards.
- * The attribute is prohibited.
- */
-#define XML_SCHEMAS_ATTR_USE_PROHIBITED 0
-/**
- * XML_SCHEMAS_ATTR_USE_REQUIRED:
- *
- * The attribute is required.
- */
-#define XML_SCHEMAS_ATTR_USE_REQUIRED 1
-/**
- * XML_SCHEMAS_ATTR_USE_OPTIONAL:
- *
- * The attribute is optional.
- */
-#define XML_SCHEMAS_ATTR_USE_OPTIONAL 2
-/**
- * XML_SCHEMAS_ATTR_GLOBAL:
- *
- * allow elements in no namespace
- */
-#define XML_SCHEMAS_ATTR_GLOBAL        1 << 0
-/**
- * XML_SCHEMAS_ATTR_NSDEFAULT:
- *
- * allow elements in no namespace
- */
-#define XML_SCHEMAS_ATTR_NSDEFAULT        1 << 7
-/**
- * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:
- *
- * this is set when the "type" and "ref" references
- * have been resolved.
- */
-#define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED        1 << 8
-/**
- * XML_SCHEMAS_ATTR_FIXED:
- *
- * the attribute has a fixed value
- */
-#define XML_SCHEMAS_ATTR_FIXED        1 << 9
-
-/**
- * xmlSchemaAttribute:
- * An attribute definition.
- */
-
-typedef struct _xmlSchemaAttribute xmlSchemaAttribute;
-typedef xmlSchemaAttribute *xmlSchemaAttributePtr;
-struct _xmlSchemaAttribute {
-    xmlSchemaTypeType type;
-    struct _xmlSchemaAttribute *next; /* the next attribute (not used?) */
-    const xmlChar *name; /* the name of the declaration */
-    const xmlChar *id; /* Deprecated; not used */
-    const xmlChar *ref; /* Deprecated; not used */
-    const xmlChar *refNs; /* Deprecated; not used */
-    const xmlChar *typeName; /* the local name of the type definition */
-    const xmlChar *typeNs; /* the ns URI of the type definition */
-    xmlSchemaAnnotPtr annot;
-
-    xmlSchemaTypePtr base; /* Deprecated; not used */
-    int occurs; /* Deprecated; not used */
-    const xmlChar *defValue; /* The initial value of the value constraint */
-    xmlSchemaTypePtr subtypes; /* the type definition */
-    xmlNodePtr node;
-    const xmlChar *targetNamespace;
-    int flags;
-    const xmlChar *refPrefix; /* Deprecated; not used */
-    xmlSchemaValPtr defVal; /* The compiled value constraint */
-    xmlSchemaAttributePtr refDecl; /* Deprecated; not used */
-};
-
-/**
- * xmlSchemaAttributeLink:
- * Used to build a list of attribute uses on complexType definitions.
- * WARNING: Deprecated; not used.
- */
-typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
-typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr;
-struct _xmlSchemaAttributeLink {
-    struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */
-    struct _xmlSchemaAttribute *attr;/* the linked attribute */
-};
-
-/**
- * XML_SCHEMAS_WILDCARD_COMPLETE:
- *
- * If the wildcard is complete.
- */
-#define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0
-
-/**
- * xmlSchemaCharValueLink:
- * Used to build a list of namespaces on wildcards.
- */
-typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
-typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr;
-struct _xmlSchemaWildcardNs {
-    struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */
-    const xmlChar *value;/* the value */
-};
-
-/**
- * xmlSchemaWildcard.
- * A wildcard.
- */
-typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
-typedef xmlSchemaWildcard *xmlSchemaWildcardPtr;
-struct _xmlSchemaWildcard {
-    xmlSchemaTypeType type;        /* The kind of type */
-    const xmlChar *id; /* Deprecated; not used */
-    xmlSchemaAnnotPtr annot;
-    xmlNodePtr node;
-    int minOccurs; /* Deprecated; not used */
-    int maxOccurs; /* Deprecated; not used */
-    int processContents;
-    int any; /* Indicates if the ns constraint is of ##any */
-    xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */
-    xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */
-    int flags;
-};
-
-/**
- * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
- *
- * The attribute wildcard has been already builded.
- */
-#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0
-/**
- * XML_SCHEMAS_ATTRGROUP_GLOBAL:
- *
- * The attribute wildcard has been already builded.
- */
-#define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1
-/**
- * XML_SCHEMAS_ATTRGROUP_MARKED:
- *
- * Marks the attr group as marked; used for circular checks.
- */
-#define XML_SCHEMAS_ATTRGROUP_MARKED 1 << 2
-
-/**
- * XML_SCHEMAS_ATTRGROUP_REDEFINED:
- *
- * The attr group was redefined.
- */
-#define XML_SCHEMAS_ATTRGROUP_REDEFINED 1 << 3
-/**
- * XML_SCHEMAS_ATTRGROUP_HAS_REFS:
- *
- * Whether this attr. group contains attr. group references.
- */
-#define XML_SCHEMAS_ATTRGROUP_HAS_REFS 1 << 4
-
-/**
- * An attribute group definition.
- *
- * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
- * must be kept similar
- */
-typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup;
-typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr;
-struct _xmlSchemaAttributeGroup {
-    xmlSchemaTypeType type;        /* The kind of type */
-    struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */
-    const xmlChar *name;
-    const xmlChar *id;
-    const xmlChar *ref; /* Deprecated; not used */
-    const xmlChar *refNs; /* Deprecated; not used */
-    xmlSchemaAnnotPtr annot;
-
-    xmlSchemaAttributePtr attributes; /* Deprecated; not used */
-    xmlNodePtr node;
-    int flags;
-    xmlSchemaWildcardPtr attributeWildcard;
-    const xmlChar *refPrefix; /* Deprecated; not used */
-    xmlSchemaAttributeGroupPtr refItem; /* Deprecated; not used */
-    const xmlChar *targetNamespace;
-    void *attrUses;
-};
-
-/**
- * xmlSchemaTypeLink:
- * Used to build a list of types (e.g. member types of
- * simpleType with variety "union").
- */
-typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
-typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr;
-struct _xmlSchemaTypeLink {
-    struct _xmlSchemaTypeLink *next;/* the next type link ... */
-    xmlSchemaTypePtr type;/* the linked type */
-};
-
-/**
- * xmlSchemaFacetLink:
- * Used to build a list of facets.
- */
-typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
-typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr;
-struct _xmlSchemaFacetLink {
-    struct _xmlSchemaFacetLink *next;/* the next facet link ... */
-    xmlSchemaFacetPtr facet;/* the linked facet */
-};
-
-/**
- * XML_SCHEMAS_TYPE_MIXED:
- *
- * the element content type is mixed
- */
-#define XML_SCHEMAS_TYPE_MIXED                1 << 0
-/**
- * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
- *
- * the simple or complex type has a derivation method of "extension".
- */
-#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION                1 << 1
-/**
- * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
- *
- * the simple or complex type has a derivation method of "restriction".
- */
-#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION                1 << 2
-/**
- * XML_SCHEMAS_TYPE_GLOBAL:
- *
- * the type is global
- */
-#define XML_SCHEMAS_TYPE_GLOBAL                1 << 3
-/**
- * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
- *
- * the complexType owns an attribute wildcard, i.e.
- * it can be freed by the complexType
- */
-#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD    1 << 4 /* Obsolete. */
-/**
- * XML_SCHEMAS_TYPE_VARIETY_ABSENT:
- *
- * the simpleType has a variety of "absent".
- * TODO: Actually not necessary :-/, since if
- * none of the variety flags occur then it's
- * automatically absent.
- */
-#define XML_SCHEMAS_TYPE_VARIETY_ABSENT    1 << 5
-/**
- * XML_SCHEMAS_TYPE_VARIETY_LIST:
- *
- * the simpleType has a variety of "list".
- */
-#define XML_SCHEMAS_TYPE_VARIETY_LIST    1 << 6
-/**
- * XML_SCHEMAS_TYPE_VARIETY_UNION:
- *
- * the simpleType has a variety of "union".
- */
-#define XML_SCHEMAS_TYPE_VARIETY_UNION    1 << 7
-/**
- * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
- *
- * the simpleType has a variety of "union".
- */
-#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC    1 << 8
-/**
- * XML_SCHEMAS_TYPE_FINAL_EXTENSION:
- *
- * the complexType has a final of "extension".
- */
-#define XML_SCHEMAS_TYPE_FINAL_EXTENSION    1 << 9
-/**
- * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
- *
- * the simpleType/complexType has a final of "restriction".
- */
-#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION    1 << 10
-/**
- * XML_SCHEMAS_TYPE_FINAL_LIST:
- *
- * the simpleType has a final of "list".
- */
-#define XML_SCHEMAS_TYPE_FINAL_LIST    1 << 11
-/**
- * XML_SCHEMAS_TYPE_FINAL_UNION:
- *
- * the simpleType has a final of "union".
- */
-#define XML_SCHEMAS_TYPE_FINAL_UNION    1 << 12
-/**
- * XML_SCHEMAS_TYPE_FINAL_DEFAULT:
- *
- * the simpleType has a final of "default".
- */
-#define XML_SCHEMAS_TYPE_FINAL_DEFAULT    1 << 13
-/**
- * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:
- *
- * Marks the item as a builtin primitive.
- */
-#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE    1 << 14
-/**
- * XML_SCHEMAS_TYPE_MARKED:
- *
- * Marks the item as marked; used for circular checks.
- */
-#define XML_SCHEMAS_TYPE_MARKED        1 << 16
-/**
- * XML_SCHEMAS_TYPE_BLOCK_DEFAULT:
- *
- * the complexType did not specify 'block' so use the default of the
- * <schema> item.
- */
-#define XML_SCHEMAS_TYPE_BLOCK_DEFAULT    1 << 17
-/**
- * XML_SCHEMAS_TYPE_BLOCK_EXTENSION:
- *
- * the complexType has a 'block' of "extension".
- */
-#define XML_SCHEMAS_TYPE_BLOCK_EXTENSION    1 << 18
-/**
- * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:
- *
- * the complexType has a 'block' of "restriction".
- */
-#define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION    1 << 19
-/**
- * XML_SCHEMAS_TYPE_ABSTRACT:
- *
- * the simple/complexType is abstract.
- */
-#define XML_SCHEMAS_TYPE_ABSTRACT    1 << 20
-/**
- * XML_SCHEMAS_TYPE_FACETSNEEDVALUE:
- *
- * indicates if the facets need a computed value
- */
-#define XML_SCHEMAS_TYPE_FACETSNEEDVALUE    1 << 21
-/**
- * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
- *
- * indicates that the type was typefixed
- */
-#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED    1 << 22
-/**
- * XML_SCHEMAS_TYPE_INTERNAL_INVALID:
- *
- * indicates that the type is invalid
- */
-#define XML_SCHEMAS_TYPE_INTERNAL_INVALID    1 << 23
-/**
- * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:
- *
- * a whitespace-facet value of "preserve"
- */
-#define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE    1 << 24
-/**
- * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:
- *
- * a whitespace-facet value of "replace"
- */
-#define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE    1 << 25
-/**
- * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:
- *
- * a whitespace-facet value of "collapse"
- */
-#define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE    1 << 26
-/**
- * XML_SCHEMAS_TYPE_HAS_FACETS:
- *
- * has facets
- */
-#define XML_SCHEMAS_TYPE_HAS_FACETS    1 << 27
-/**
- * XML_SCHEMAS_TYPE_NORMVALUENEEDED:
- *
- * indicates if the facets (pattern) need a normalized value
- */
-#define XML_SCHEMAS_TYPE_NORMVALUENEEDED    1 << 28
-
-/**
- * XML_SCHEMAS_TYPE_FIXUP_1:
- *
- * First stage of fixup was done.
- */
-#define XML_SCHEMAS_TYPE_FIXUP_1    1 << 29
-
-/**
- * XML_SCHEMAS_TYPE_REDEFINED:
- *
- * The type was redefined.
- */
-#define XML_SCHEMAS_TYPE_REDEFINED    1 << 30
-/**
- * XML_SCHEMAS_TYPE_REDEFINING:
- *
- * The type redefines an other type.
- */
-/* #define XML_SCHEMAS_TYPE_REDEFINING    1 << 31 */
-
-/**
- * _xmlSchemaType:
- *
- * Schemas type definition.
- */
-struct _xmlSchemaType {
-    xmlSchemaTypeType type; /* The kind of type */
-    struct _xmlSchemaType *next; /* the next type if in a sequence ... */
-    const xmlChar *name;
-    const xmlChar *id ; /* Deprecated; not used */
-    const xmlChar *ref; /* Deprecated; not used */
-    const xmlChar *refNs; /* Deprecated; not used */
-    xmlSchemaAnnotPtr annot;
-    xmlSchemaTypePtr subtypes;
-    xmlSchemaAttributePtr attributes; /* Deprecated; not used */
-    xmlNodePtr node;
-    int minOccurs; /* Deprecated; not used */
-    int maxOccurs; /* Deprecated; not used */
-
-    int flags;
-    xmlSchemaContentType contentType;
-    const xmlChar *base; /* Base type's local name */
-    const xmlChar *baseNs; /* Base type's target namespace */
-    xmlSchemaTypePtr baseType; /* The base type component */
-    xmlSchemaFacetPtr facets; /* Local facets */
-    struct _xmlSchemaType *redef; /* Deprecated; not used */
-    int recurse; /* Obsolete */
-    xmlSchemaAttributeLinkPtr *attributeUses; /* Deprecated; not used */
-    xmlSchemaWildcardPtr attributeWildcard;
-    int builtInType; /* Type of built-in types. */
-    xmlSchemaTypeLinkPtr memberTypes; /* member-types if a union type. */
-    xmlSchemaFacetLinkPtr facetSet; /* All facets (incl. inherited) */
-    const xmlChar *refPrefix; /* Deprecated; not used */
-    xmlSchemaTypePtr contentTypeDef; /* Used for the simple content of complex types.
-                                        Could we use @subtypes for this? */
-    xmlRegexpPtr contModel; /* Holds the automaton of the content model */
-    const xmlChar *targetNamespace;
-    void *attrUses;
-};
-
-/*
- * xmlSchemaElement:
- * An element definition.
- *
- * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
- * structures must be kept similar
- */
-/**
- * XML_SCHEMAS_ELEM_NILLABLE:
- *
- * the element is nillable
- */
-#define XML_SCHEMAS_ELEM_NILLABLE        1 << 0
-/**
- * XML_SCHEMAS_ELEM_GLOBAL:
- *
- * the element is global
- */
-#define XML_SCHEMAS_ELEM_GLOBAL                1 << 1
-/**
- * XML_SCHEMAS_ELEM_DEFAULT:
- *
- * the element has a default value
- */
-#define XML_SCHEMAS_ELEM_DEFAULT        1 << 2
-/**
- * XML_SCHEMAS_ELEM_FIXED:
- *
- * the element has a fixed value
- */
-#define XML_SCHEMAS_ELEM_FIXED                1 << 3
-/**
- * XML_SCHEMAS_ELEM_ABSTRACT:
- *
- * the element is abstract
- */
-#define XML_SCHEMAS_ELEM_ABSTRACT        1 << 4
-/**
- * XML_SCHEMAS_ELEM_TOPLEVEL:
- *
- * the element is top level
- * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead
- */
-#define XML_SCHEMAS_ELEM_TOPLEVEL        1 << 5
-/**
- * XML_SCHEMAS_ELEM_REF:
- *
- * the element is a reference to a type
- */
-#define XML_SCHEMAS_ELEM_REF                1 << 6
-/**
- * XML_SCHEMAS_ELEM_NSDEFAULT:
- *
- * allow elements in no namespace
- * Obsolete, not used anymore.
- */
-#define XML_SCHEMAS_ELEM_NSDEFAULT        1 << 7
-/**
- * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:
- *
- * this is set when "type", "ref", "substitutionGroup"
- * references have been resolved.
- */
-#define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED        1 << 8
- /**
- * XML_SCHEMAS_ELEM_CIRCULAR:
- *
- * a helper flag for the search of circular references.
- */
-#define XML_SCHEMAS_ELEM_CIRCULAR        1 << 9
-/**
- * XML_SCHEMAS_ELEM_BLOCK_ABSENT:
- *
- * the "block" attribute is absent
- */
-#define XML_SCHEMAS_ELEM_BLOCK_ABSENT        1 << 10
-/**
- * XML_SCHEMAS_ELEM_BLOCK_EXTENSION:
- *
- * disallowed substitutions are absent
- */
-#define XML_SCHEMAS_ELEM_BLOCK_EXTENSION        1 << 11
-/**
- * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:
- *
- * disallowed substitutions: "restriction"
- */
-#define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION        1 << 12
-/**
- * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:
- *
- * disallowed substitutions: "substituion"
- */
-#define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION        1 << 13
-/**
- * XML_SCHEMAS_ELEM_FINAL_ABSENT:
- *
- * substitution group exclusions are absent
- */
-#define XML_SCHEMAS_ELEM_FINAL_ABSENT        1 << 14
-/**
- * XML_SCHEMAS_ELEM_FINAL_EXTENSION:
- *
- * substitution group exclusions: "extension"
- */
-#define XML_SCHEMAS_ELEM_FINAL_EXTENSION        1 << 15
-/**
- * XML_SCHEMAS_ELEM_FINAL_RESTRICTION:
- *
- * substitution group exclusions: "restriction"
- */
-#define XML_SCHEMAS_ELEM_FINAL_RESTRICTION        1 << 16
-/**
- * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
- *
- * the declaration is a substitution group head
- */
-#define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD        1 << 17
-/**
- * XML_SCHEMAS_ELEM_INTERNAL_CHECKED:
- *
- * this is set when the elem decl has been checked against
- * all constraints
- */
-#define XML_SCHEMAS_ELEM_INTERNAL_CHECKED        1 << 18
-
-typedef struct _xmlSchemaElement xmlSchemaElement;
-typedef xmlSchemaElement *xmlSchemaElementPtr;
-struct _xmlSchemaElement {
-    xmlSchemaTypeType type; /* The kind of type */
-    struct _xmlSchemaType *next; /* Not used? */
-    const xmlChar *name;
-    const xmlChar *id; /* Deprecated; not used */
-    const xmlChar *ref; /* Deprecated; not used */
-    const xmlChar *refNs; /* Deprecated; not used */
-    xmlSchemaAnnotPtr annot;
-    xmlSchemaTypePtr subtypes; /* the type definition */
-    xmlSchemaAttributePtr attributes;
-    xmlNodePtr node;
-    int minOccurs; /* Deprecated; not used */
-    int maxOccurs; /* Deprecated; not used */
-
-    int flags;
-    const xmlChar *targetNamespace;
-    const xmlChar *namedType;
-    const xmlChar *namedTypeNs;
-    const xmlChar *substGroup;
-    const xmlChar *substGroupNs;
-    const xmlChar *scope;
-    const xmlChar *value; /* The original value of the value constraint. */
-    struct _xmlSchemaElement *refDecl; /* This will now be used for the
-                                          substitution group affiliation */
-    xmlRegexpPtr contModel; /* Obsolete for WXS, maybe used for RelaxNG */
-    xmlSchemaContentType contentType;
-    const xmlChar *refPrefix; /* Deprecated; not used */
-    xmlSchemaValPtr defVal; /* The compiled value contraint. */
-    void *idcs; /* The identity-constraint defs */
-};
-
-/*
- * XML_SCHEMAS_FACET_UNKNOWN:
- *
- * unknown facet handling
- */
-#define XML_SCHEMAS_FACET_UNKNOWN        0
-/*
- * XML_SCHEMAS_FACET_PRESERVE:
- *
- * preserve the type of the facet
- */
-#define XML_SCHEMAS_FACET_PRESERVE        1
-/*
- * XML_SCHEMAS_FACET_REPLACE:
- *
- * replace the type of the facet
- */
-#define XML_SCHEMAS_FACET_REPLACE        2
-/*
- * XML_SCHEMAS_FACET_COLLAPSE:
- *
- * collapse the types of the facet
- */
-#define XML_SCHEMAS_FACET_COLLAPSE        3
-/**
- * A facet definition.
- */
-struct _xmlSchemaFacet {
-    xmlSchemaTypeType type;        /* The kind of type */
-    struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */
-    const xmlChar *value; /* The original value */
-    const xmlChar *id; /* Obsolete */
-    xmlSchemaAnnotPtr annot;
-    xmlNodePtr node;
-    int fixed; /* XML_SCHEMAS_FACET_PRESERVE, etc. */
-    int whitespace;
-    xmlSchemaValPtr val; /* The compiled value */
-    xmlRegexpPtr    regexp; /* The regex for patterns */
-};
-
-/**
- * A notation definition.
- */
-typedef struct _xmlSchemaNotation xmlSchemaNotation;
-typedef xmlSchemaNotation *xmlSchemaNotationPtr;
-struct _xmlSchemaNotation {
-    xmlSchemaTypeType type; /* The kind of type */
-    const xmlChar *name;
-    xmlSchemaAnnotPtr annot;
-    const xmlChar *identifier;
-    const xmlChar *targetNamespace;
-};
-
-/*
-* TODO: Actually all those flags used for the schema should sit
-* on the schema parser context, since they are used only
-* during parsing an XML schema document, and not available
-* on the component level as per spec.
-*/
-/**
- * XML_SCHEMAS_QUALIF_ELEM:
- *
- * Reflects elementFormDefault == qualified in
- * an XML schema document.
- */
-#define XML_SCHEMAS_QUALIF_ELEM                1 << 0
-/**
- * XML_SCHEMAS_QUALIF_ATTR:
- *
- * Reflects attributeFormDefault == qualified in
- * an XML schema document.
- */
-#define XML_SCHEMAS_QUALIF_ATTR            1 << 1
-/**
- * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
- *
- * the schema has "extension" in the set of finalDefault.
- */
-#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION        1 << 2
-/**
- * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
- *
- * the schema has "restriction" in the set of finalDefault.
- */
-#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION            1 << 3
-/**
- * XML_SCHEMAS_FINAL_DEFAULT_LIST:
- *
- * the cshema has "list" in the set of finalDefault.
- */
-#define XML_SCHEMAS_FINAL_DEFAULT_LIST            1 << 4
-/**
- * XML_SCHEMAS_FINAL_DEFAULT_UNION:
- *
- * the schema has "union" in the set of finalDefault.
- */
-#define XML_SCHEMAS_FINAL_DEFAULT_UNION            1 << 5
-/**
- * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:
- *
- * the schema has "extension" in the set of blockDefault.
- */
-#define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION            1 << 6
-/**
- * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:
- *
- * the schema has "restriction" in the set of blockDefault.
- */
-#define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION            1 << 7
-/**
- * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:
- *
- * the schema has "substitution" in the set of blockDefault.
- */
-#define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION            1 << 8
-/**
- * XML_SCHEMAS_INCLUDING_CONVERT_NS:
- *
- * the schema is currently including an other schema with
- * no target namespace.
- */
-#define XML_SCHEMAS_INCLUDING_CONVERT_NS            1 << 9
-/**
- * _xmlSchema:
- *
- * A Schemas definition
- */
-struct _xmlSchema {
-    const xmlChar *name; /* schema name */
-    const xmlChar *targetNamespace; /* the target namespace */
-    const xmlChar *version;
-    const xmlChar *id; /* Obsolete */
-    xmlDocPtr doc;
-    xmlSchemaAnnotPtr annot;
-    int flags;
-
-    xmlHashTablePtr typeDecl;
-    xmlHashTablePtr attrDecl;
-    xmlHashTablePtr attrgrpDecl;
-    xmlHashTablePtr elemDecl;
-    xmlHashTablePtr notaDecl;
-
-    xmlHashTablePtr schemasImports;
-
-    void *_private;        /* unused by the library for users or bindings */
-    xmlHashTablePtr groupDecl;
-    xmlDictPtr      dict;
-    void *includes;     /* the includes, this is opaque for now */
-    int preserve;        /* whether to free the document */
-    int counter; /* used to give ononymous components unique names */
-    xmlHashTablePtr idcDef; /* All identity-constraint defs. */
-    void *volatiles; /* Obsolete */
-};
-
-XMLPUBFUN void XMLCALL         xmlSchemaFreeType        (xmlSchemaTypePtr type);
-XMLPUBFUN void XMLCALL         xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_SCHEMAS_ENABLED */
-#endif /* __XML_SCHEMA_INTERNALS_H__ */
diff --git a/interfaces/ext/libxml/schematron.h b/interfaces/ext/libxml/schematron.h
deleted file mode 100644
index f442826..0000000
--- a/interfaces/ext/libxml/schematron.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Summary: XML Schemastron implementation
- * Description: interface to the XML Schematron validity checking.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __XML_SCHEMATRON_H__
-#define __XML_SCHEMATRON_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_SCHEMATRON_ENABLED
-
-#include <libxml/tree.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-    XML_SCHEMATRON_OUT_QUIET = 1 << 0,	/* quiet no report */
-    XML_SCHEMATRON_OUT_TEXT = 1 << 1,	/* build a textual report */
-    XML_SCHEMATRON_OUT_XML = 1 << 2,	/* output SVRL */
-    XML_SCHEMATRON_OUT_ERROR = 1 << 3,  /* output via xmlStructuredErrorFunc */
-    XML_SCHEMATRON_OUT_FILE = 1 << 8,	/* output to a file descriptor */
-    XML_SCHEMATRON_OUT_BUFFER = 1 << 9,	/* output to a buffer */
-    XML_SCHEMATRON_OUT_IO = 1 << 10	/* output to I/O mechanism */
-} xmlSchematronValidOptions;
-
-/**
- * The schemas related types are kept internal
- */
-typedef struct _xmlSchematron xmlSchematron;
-typedef xmlSchematron *xmlSchematronPtr;
-
-/**
- * xmlSchematronValidityErrorFunc:
- * @ctx: the validation context
- * @msg: the message
- * @...: extra arguments
- *
- * Signature of an error callback from a Schematron validation
- */
-typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...);
-
-/**
- * xmlSchematronValidityWarningFunc:
- * @ctx: the validation context
- * @msg: the message
- * @...: extra arguments
- *
- * Signature of a warning callback from a Schematron validation
- */
-typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...);
-
-/**
- * A schemas validation context
- */
-typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt;
-typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr;
-
-typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt;
-typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr;
-
-/*
- * Interfaces for parsing.
- */
-XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL 
-	    xmlSchematronNewParserCtxt	(const char *URL);
-XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL 
-	    xmlSchematronNewMemParserCtxt(const char *buffer,
-					 int size);
-XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
-	    xmlSchematronNewDocParserCtxt(xmlDocPtr doc);
-XMLPUBFUN void XMLCALL		
-	    xmlSchematronFreeParserCtxt	(xmlSchematronParserCtxtPtr ctxt);
-/*****
-XMLPUBFUN void XMLCALL		
-	    xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt,
-					 xmlSchematronValidityErrorFunc err,
-					 xmlSchematronValidityWarningFunc warn,
-					 void *ctx);
-XMLPUBFUN int XMLCALL
-		xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt,
-					xmlSchematronValidityErrorFunc * err,
-					xmlSchematronValidityWarningFunc * warn,
-					void **ctx);
-XMLPUBFUN int XMLCALL
-		xmlSchematronIsValid	(xmlSchematronValidCtxtPtr ctxt);
- *****/
-XMLPUBFUN xmlSchematronPtr XMLCALL	
-	    xmlSchematronParse		(xmlSchematronParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL		
-	    xmlSchematronFree		(xmlSchematronPtr schema);
-/*
- * Interfaces for validating
- */
-XMLPUBFUN void XMLCALL
-	    xmlSchematronSetValidStructuredErrors(
-	                                  xmlSchematronValidCtxtPtr ctxt,
-					  xmlStructuredErrorFunc serror,
-					  void *ctx);
-/******
-XMLPUBFUN void XMLCALL		
-	    xmlSchematronSetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
-					 xmlSchematronValidityErrorFunc err,
-					 xmlSchematronValidityWarningFunc warn,
-					 void *ctx);
-XMLPUBFUN int XMLCALL
-	    xmlSchematronGetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
-					 xmlSchematronValidityErrorFunc *err,
-					 xmlSchematronValidityWarningFunc *warn,
-					 void **ctx);
-XMLPUBFUN int XMLCALL
-	    xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt,
-					 int options);
-XMLPUBFUN int XMLCALL
-	    xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-            xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt,
-			                 xmlNodePtr elem);
- *******/
-
-XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL	
-	    xmlSchematronNewValidCtxt	(xmlSchematronPtr schema,
-	    				 int options);
-XMLPUBFUN void XMLCALL			
-	    xmlSchematronFreeValidCtxt	(xmlSchematronValidCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL			
-	    xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt,
-					 xmlDocPtr instance);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_SCHEMATRON_ENABLED */
-#endif /* __XML_SCHEMATRON_H__ */
diff --git a/interfaces/ext/libxml/threads.h b/interfaces/ext/libxml/threads.h
deleted file mode 100644
index d31f16a..0000000
--- a/interfaces/ext/libxml/threads.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Summary: interfaces for thread handling
- * Description: set of generic threading related routines
- *              should work with pthreads, Windows native or TLS threads
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_THREADS_H__
-#define __XML_THREADS_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * xmlMutex are a simple mutual exception locks.
- */
-typedef struct _xmlMutex xmlMutex;
-typedef xmlMutex *xmlMutexPtr;
-
-/*
- * xmlRMutex are reentrant mutual exception locks.
- */
-typedef struct _xmlRMutex xmlRMutex;
-typedef xmlRMutex *xmlRMutexPtr;
-
-#ifdef __cplusplus
-}
-#endif
-#include <libxml/globals.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-XMLPUBFUN xmlMutexPtr XMLCALL
-			xmlNewMutex	(void);
-XMLPUBFUN void XMLCALL
-			xmlMutexLock	(xmlMutexPtr tok);
-XMLPUBFUN void XMLCALL
-			xmlMutexUnlock	(xmlMutexPtr tok);
-XMLPUBFUN void XMLCALL
-			xmlFreeMutex	(xmlMutexPtr tok);
-
-XMLPUBFUN xmlRMutexPtr XMLCALL
-			xmlNewRMutex	(void);
-XMLPUBFUN void XMLCALL
-			xmlRMutexLock	(xmlRMutexPtr tok);
-XMLPUBFUN void XMLCALL
-			xmlRMutexUnlock	(xmlRMutexPtr tok);
-XMLPUBFUN void XMLCALL
-			xmlFreeRMutex	(xmlRMutexPtr tok);
-
-/*
- * Library wide APIs.
- */
-XMLPUBFUN void XMLCALL
-			xmlInitThreads	(void);
-XMLPUBFUN void XMLCALL
-			xmlLockLibrary	(void);
-XMLPUBFUN void XMLCALL
-			xmlUnlockLibrary(void);
-XMLPUBFUN int XMLCALL
-			xmlGetThreadId	(void);
-XMLPUBFUN int XMLCALL
-			xmlIsMainThread	(void);
-XMLPUBFUN void XMLCALL
-			xmlCleanupThreads(void);
-XMLPUBFUN xmlGlobalStatePtr XMLCALL
-			xmlGetGlobalState(void);
-
-#if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)
-int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* __XML_THREADS_H__ */
diff --git a/interfaces/ext/libxml/tree.h b/interfaces/ext/libxml/tree.h
deleted file mode 100644
index b733589..0000000
--- a/interfaces/ext/libxml/tree.h
+++ /dev/null
@@ -1,1252 +0,0 @@
-/*
- * Summary: interfaces for tree manipulation
- * Description: this module describes the structures found in an tree resulting
- *              from an XML or HTML parsing, as well as the API provided for
- *              various processing on that tree
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_TREE_H__
-#define __XML_TREE_H__
-
-#include <stdio.h>
-#include <libxml/xmlversion.h>
-#include <libxml/xmlstring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Some of the basic types pointer to structures:
- */
-/* xmlIO.h */
-typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
-typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
-
-typedef struct _xmlOutputBuffer xmlOutputBuffer;
-typedef xmlOutputBuffer *xmlOutputBufferPtr;
-
-/* parser.h */
-typedef struct _xmlParserInput xmlParserInput;
-typedef xmlParserInput *xmlParserInputPtr;
-
-typedef struct _xmlParserCtxt xmlParserCtxt;
-typedef xmlParserCtxt *xmlParserCtxtPtr;
-
-typedef struct _xmlSAXLocator xmlSAXLocator;
-typedef xmlSAXLocator *xmlSAXLocatorPtr;
-
-typedef struct _xmlSAXHandler xmlSAXHandler;
-typedef xmlSAXHandler *xmlSAXHandlerPtr;
-
-/* entities.h */
-typedef struct _xmlEntity xmlEntity;
-typedef xmlEntity *xmlEntityPtr;
-
-/**
- * BASE_BUFFER_SIZE:
- *
- * default buffer size 4000.
- */
-#define BASE_BUFFER_SIZE 4096
-
-/**
- * LIBXML_NAMESPACE_DICT:
- *
- * Defines experimental behaviour:
- * 1) xmlNs gets an additional field @context (a xmlDoc)
- * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
- */
-/* #define LIBXML_NAMESPACE_DICT */
-
-/**
- * xmlBufferAllocationScheme:
- *
- * A buffer allocation scheme can be defined to either match exactly the
- * need or double it's allocated size each time it is found too small.
- */
-
-typedef enum {
-    XML_BUFFER_ALLOC_DOUBLEIT,	/* double each time one need to grow */
-    XML_BUFFER_ALLOC_EXACT,	/* grow only to the minimal size */
-    XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */
-    XML_BUFFER_ALLOC_IO		/* special allocation scheme used for I/O */
-} xmlBufferAllocationScheme;
-
-/**
- * xmlBuffer:
- *
- * A buffer structure.
- */
-typedef struct _xmlBuffer xmlBuffer;
-typedef xmlBuffer *xmlBufferPtr;
-struct _xmlBuffer {
-    xmlChar *content;		/* The buffer content UTF8 */
-    unsigned int use;		/* The buffer size used */
-    unsigned int size;		/* The buffer size */
-    xmlBufferAllocationScheme alloc; /* The realloc method */
-    xmlChar *contentIO;		/* in IO mode we may have a different base */
-};
-
-/**
- * XML_XML_NAMESPACE:
- *
- * This is the namespace for the special xml: prefix predefined in the
- * XML Namespace specification.
- */
-#define XML_XML_NAMESPACE \
-    (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
-
-/**
- * XML_XML_ID:
- *
- * This is the name for the special xml:id attribute
- */
-#define XML_XML_ID (const xmlChar *) "xml:id"
-
-/*
- * The different element types carried by an XML tree.
- *
- * NOTE: This is synchronized with DOM Level1 values
- *       See http://www.w3.org/TR/REC-DOM-Level-1/
- *
- * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
- * be deprecated to use an XML_DTD_NODE.
- */
-typedef enum {
-    XML_ELEMENT_NODE=		1,
-    XML_ATTRIBUTE_NODE=		2,
-    XML_TEXT_NODE=		3,
-    XML_CDATA_SECTION_NODE=	4,
-    XML_ENTITY_REF_NODE=	5,
-    XML_ENTITY_NODE=		6,
-    XML_PI_NODE=		7,
-    XML_COMMENT_NODE=		8,
-    XML_DOCUMENT_NODE=		9,
-    XML_DOCUMENT_TYPE_NODE=	10,
-    XML_DOCUMENT_FRAG_NODE=	11,
-    XML_NOTATION_NODE=		12,
-    XML_HTML_DOCUMENT_NODE=	13,
-    XML_DTD_NODE=		14,
-    XML_ELEMENT_DECL=		15,
-    XML_ATTRIBUTE_DECL=		16,
-    XML_ENTITY_DECL=		17,
-    XML_NAMESPACE_DECL=		18,
-    XML_XINCLUDE_START=		19,
-    XML_XINCLUDE_END=		20
-#ifdef LIBXML_DOCB_ENABLED
-   ,XML_DOCB_DOCUMENT_NODE=	21
-#endif
-} xmlElementType;
-
-
-/**
- * xmlNotation:
- *
- * A DTD Notation definition.
- */
-
-typedef struct _xmlNotation xmlNotation;
-typedef xmlNotation *xmlNotationPtr;
-struct _xmlNotation {
-    const xmlChar               *name;	        /* Notation name */
-    const xmlChar               *PublicID;	/* Public identifier, if any */
-    const xmlChar               *SystemID;	/* System identifier, if any */
-};
-
-/**
- * xmlAttributeType:
- *
- * A DTD Attribute type definition.
- */
-
-typedef enum {
-    XML_ATTRIBUTE_CDATA = 1,
-    XML_ATTRIBUTE_ID,
-    XML_ATTRIBUTE_IDREF	,
-    XML_ATTRIBUTE_IDREFS,
-    XML_ATTRIBUTE_ENTITY,
-    XML_ATTRIBUTE_ENTITIES,
-    XML_ATTRIBUTE_NMTOKEN,
-    XML_ATTRIBUTE_NMTOKENS,
-    XML_ATTRIBUTE_ENUMERATION,
-    XML_ATTRIBUTE_NOTATION
-} xmlAttributeType;
-
-/**
- * xmlAttributeDefault:
- *
- * A DTD Attribute default definition.
- */
-
-typedef enum {
-    XML_ATTRIBUTE_NONE = 1,
-    XML_ATTRIBUTE_REQUIRED,
-    XML_ATTRIBUTE_IMPLIED,
-    XML_ATTRIBUTE_FIXED
-} xmlAttributeDefault;
-
-/**
- * xmlEnumeration:
- *
- * List structure used when there is an enumeration in DTDs.
- */
-
-typedef struct _xmlEnumeration xmlEnumeration;
-typedef xmlEnumeration *xmlEnumerationPtr;
-struct _xmlEnumeration {
-    struct _xmlEnumeration    *next;	/* next one */
-    const xmlChar            *name;	/* Enumeration name */
-};
-
-/**
- * xmlAttribute:
- *
- * An Attribute declaration in a DTD.
- */
-
-typedef struct _xmlAttribute xmlAttribute;
-typedef xmlAttribute *xmlAttributePtr;
-struct _xmlAttribute {
-    void           *_private;	        /* application data */
-    xmlElementType          type;       /* XML_ATTRIBUTE_DECL, must be second ! */
-    const xmlChar          *name;	/* Attribute name */
-    struct _xmlNode    *children;	/* NULL */
-    struct _xmlNode        *last;	/* NULL */
-    struct _xmlDtd       *parent;	/* -> DTD */
-    struct _xmlNode        *next;	/* next sibling link  */
-    struct _xmlNode        *prev;	/* previous sibling link  */
-    struct _xmlDoc          *doc;       /* the containing document */
-
-    struct _xmlAttribute  *nexth;	/* next in hash table */
-    xmlAttributeType       atype;	/* The attribute type */
-    xmlAttributeDefault      def;	/* the default */
-    const xmlChar  *defaultValue;	/* or the default value */
-    xmlEnumerationPtr       tree;       /* or the enumeration tree if any */
-    const xmlChar        *prefix;	/* the namespace prefix if any */
-    const xmlChar          *elem;	/* Element holding the attribute */
-};
-
-/**
- * xmlElementContentType:
- *
- * Possible definitions of element content types.
- */
-typedef enum {
-    XML_ELEMENT_CONTENT_PCDATA = 1,
-    XML_ELEMENT_CONTENT_ELEMENT,
-    XML_ELEMENT_CONTENT_SEQ,
-    XML_ELEMENT_CONTENT_OR
-} xmlElementContentType;
-
-/**
- * xmlElementContentOccur:
- *
- * Possible definitions of element content occurrences.
- */
-typedef enum {
-    XML_ELEMENT_CONTENT_ONCE = 1,
-    XML_ELEMENT_CONTENT_OPT,
-    XML_ELEMENT_CONTENT_MULT,
-    XML_ELEMENT_CONTENT_PLUS
-} xmlElementContentOccur;
-
-/**
- * xmlElementContent:
- *
- * An XML Element content as stored after parsing an element definition
- * in a DTD.
- */
-
-typedef struct _xmlElementContent xmlElementContent;
-typedef xmlElementContent *xmlElementContentPtr;
-struct _xmlElementContent {
-    xmlElementContentType     type;	/* PCDATA, ELEMENT, SEQ or OR */
-    xmlElementContentOccur    ocur;	/* ONCE, OPT, MULT or PLUS */
-    const xmlChar             *name;	/* Element name */
-    struct _xmlElementContent *c1;	/* first child */
-    struct _xmlElementContent *c2;	/* second child */
-    struct _xmlElementContent *parent;	/* parent */
-    const xmlChar             *prefix;	/* Namespace prefix */
-};
-
-/**
- * xmlElementTypeVal:
- *
- * The different possibilities for an element content type.
- */
-
-typedef enum {
-    XML_ELEMENT_TYPE_UNDEFINED = 0,
-    XML_ELEMENT_TYPE_EMPTY = 1,
-    XML_ELEMENT_TYPE_ANY,
-    XML_ELEMENT_TYPE_MIXED,
-    XML_ELEMENT_TYPE_ELEMENT
-} xmlElementTypeVal;
-
-#ifdef __cplusplus
-}
-#endif
-#include <libxml/xmlregexp.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlElement:
- *
- * An XML Element declaration from a DTD.
- */
-
-typedef struct _xmlElement xmlElement;
-typedef xmlElement *xmlElementPtr;
-struct _xmlElement {
-    void           *_private;	        /* application data */
-    xmlElementType          type;       /* XML_ELEMENT_DECL, must be second ! */
-    const xmlChar          *name;	/* Element name */
-    struct _xmlNode    *children;	/* NULL */
-    struct _xmlNode        *last;	/* NULL */
-    struct _xmlDtd       *parent;	/* -> DTD */
-    struct _xmlNode        *next;	/* next sibling link  */
-    struct _xmlNode        *prev;	/* previous sibling link  */
-    struct _xmlDoc          *doc;       /* the containing document */
-
-    xmlElementTypeVal      etype;	/* The type */
-    xmlElementContentPtr content;	/* the allowed element content */
-    xmlAttributePtr   attributes;	/* List of the declared attributes */
-    const xmlChar        *prefix;	/* the namespace prefix if any */
-#ifdef LIBXML_REGEXP_ENABLED
-    xmlRegexpPtr       contModel;	/* the validating regexp */
-#else
-    void	      *contModel;
-#endif
-};
-
-
-/**
- * XML_LOCAL_NAMESPACE:
- *
- * A namespace declaration node.
- */
-#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
-typedef xmlElementType xmlNsType;
-
-/**
- * xmlNs:
- *
- * An XML namespace.
- * Note that prefix == NULL is valid, it defines the default namespace
- * within the subtree (until overridden).
- *
- * xmlNsType is unified with xmlElementType.
- */
-
-typedef struct _xmlNs xmlNs;
-typedef xmlNs *xmlNsPtr;
-struct _xmlNs {
-    struct _xmlNs  *next;	/* next Ns link for this node  */
-    xmlNsType      type;	/* global or local */
-    const xmlChar *href;	/* URL for the namespace */
-    const xmlChar *prefix;	/* prefix for the namespace */
-    void           *_private;   /* application data */
-    struct _xmlDoc *context;		/* normally an xmlDoc */
-};
-
-/**
- * xmlDtd:
- *
- * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
- * the internal subset and for the external subset.
- */
-typedef struct _xmlDtd xmlDtd;
-typedef xmlDtd *xmlDtdPtr;
-struct _xmlDtd {
-    void           *_private;	/* application data */
-    xmlElementType  type;       /* XML_DTD_NODE, must be second ! */
-    const xmlChar *name;	/* Name of the DTD */
-    struct _xmlNode *children;	/* the value of the property link */
-    struct _xmlNode *last;	/* last child link */
-    struct _xmlDoc  *parent;	/* child->parent link */
-    struct _xmlNode *next;	/* next sibling link  */
-    struct _xmlNode *prev;	/* previous sibling link  */
-    struct _xmlDoc  *doc;	/* the containing document */
-
-    /* End of common part */
-    void          *notations;   /* Hash table for notations if any */
-    void          *elements;    /* Hash table for elements if any */
-    void          *attributes;  /* Hash table for attributes if any */
-    void          *entities;    /* Hash table for entities if any */
-    const xmlChar *ExternalID;	/* External identifier for PUBLIC DTD */
-    const xmlChar *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
-    void          *pentities;   /* Hash table for param entities if any */
-};
-
-/**
- * xmlAttr:
- *
- * An attribute on an XML node.
- */
-typedef struct _xmlAttr xmlAttr;
-typedef xmlAttr *xmlAttrPtr;
-struct _xmlAttr {
-    void           *_private;	/* application data */
-    xmlElementType   type;      /* XML_ATTRIBUTE_NODE, must be second ! */
-    const xmlChar   *name;      /* the name of the property */
-    struct _xmlNode *children;	/* the value of the property */
-    struct _xmlNode *last;	/* NULL */
-    struct _xmlNode *parent;	/* child->parent link */
-    struct _xmlAttr *next;	/* next sibling link  */
-    struct _xmlAttr *prev;	/* previous sibling link  */
-    struct _xmlDoc  *doc;	/* the containing document */
-    xmlNs           *ns;        /* pointer to the associated namespace */
-    xmlAttributeType atype;     /* the attribute type if validating */
-    void            *psvi;	/* for type/PSVI informations */
-};
-
-/**
- * xmlID:
- *
- * An XML ID instance.
- */
-
-typedef struct _xmlID xmlID;
-typedef xmlID *xmlIDPtr;
-struct _xmlID {
-    struct _xmlID    *next;	/* next ID */
-    const xmlChar    *value;	/* The ID name */
-    xmlAttrPtr        attr;	/* The attribute holding it */
-    const xmlChar    *name;	/* The attribute if attr is not available */
-    int               lineno;	/* The line number if attr is not available */
-    struct _xmlDoc   *doc;	/* The document holding the ID */
-};
-
-/**
- * xmlRef:
- *
- * An XML IDREF instance.
- */
-
-typedef struct _xmlRef xmlRef;
-typedef xmlRef *xmlRefPtr;
-struct _xmlRef {
-    struct _xmlRef    *next;	/* next Ref */
-    const xmlChar     *value;	/* The Ref name */
-    xmlAttrPtr        attr;	/* The attribute holding it */
-    const xmlChar    *name;	/* The attribute if attr is not available */
-    int               lineno;	/* The line number if attr is not available */
-};
-
-/**
- * xmlNode:
- *
- * A node in an XML tree.
- */
-typedef struct _xmlNode xmlNode;
-typedef xmlNode *xmlNodePtr;
-struct _xmlNode {
-    void           *_private;	/* application data */
-    xmlElementType   type;	/* type number, must be second ! */
-    const xmlChar   *name;      /* the name of the node, or the entity */
-    struct _xmlNode *children;	/* parent->childs link */
-    struct _xmlNode *last;	/* last child link */
-    struct _xmlNode *parent;	/* child->parent link */
-    struct _xmlNode *next;	/* next sibling link  */
-    struct _xmlNode *prev;	/* previous sibling link  */
-    struct _xmlDoc  *doc;	/* the containing document */
-
-    /* End of common part */
-    xmlNs           *ns;        /* pointer to the associated namespace */
-    xmlChar         *content;   /* the content */
-    struct _xmlAttr *properties;/* properties list */
-    xmlNs           *nsDef;     /* namespace definitions on this node */
-    void            *psvi;	/* for type/PSVI informations */
-    unsigned short   line;	/* line number */
-    unsigned short   extra;	/* extra data for XPath/XSLT */
-};
-
-/**
- * XML_GET_CONTENT:
- *
- * Macro to extract the content pointer of a node.
- */
-#define XML_GET_CONTENT(n)					\
-    ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
-
-/**
- * XML_GET_LINE:
- *
- * Macro to extract the line number of an element node. 
- */
-#define XML_GET_LINE(n)						\
-    (xmlGetLineNo(n))
-
-/**
- * xmlDocProperty
- *
- * Set of properties of the document as found by the parser
- * Some of them are linked to similary named xmlParserOption
- */
-typedef enum {
-    XML_DOC_WELLFORMED		= 1<<0, /* document is XML well formed */
-    XML_DOC_NSVALID		= 1<<1, /* document is Namespace valid */
-    XML_DOC_OLD10		= 1<<2, /* parsed with old XML-1.0 parser */
-    XML_DOC_DTDVALID		= 1<<3, /* DTD validation was successful */
-    XML_DOC_XINCLUDE		= 1<<4, /* XInclude substitution was done */
-    XML_DOC_USERBUILT		= 1<<5, /* Document was built using the API
-                                           and not by parsing an instance */
-    XML_DOC_INTERNAL		= 1<<6, /* built for internal processing */
-    XML_DOC_HTML		= 1<<7  /* parsed or built HTML document */
-} xmlDocProperties;
-
-/**
- * xmlDoc:
- *
- * An XML document.
- */
-typedef struct _xmlDoc xmlDoc;
-typedef xmlDoc *xmlDocPtr;
-struct _xmlDoc {
-    void           *_private;	/* application data */
-    xmlElementType  type;       /* XML_DOCUMENT_NODE, must be second ! */
-    char           *name;	/* name/filename/URI of the document */
-    struct _xmlNode *children;	/* the document tree */
-    struct _xmlNode *last;	/* last child link */
-    struct _xmlNode *parent;	/* child->parent link */
-    struct _xmlNode *next;	/* next sibling link  */
-    struct _xmlNode *prev;	/* previous sibling link  */
-    struct _xmlDoc  *doc;	/* autoreference to itself */
-
-    /* End of common part */
-    int             compression;/* level of zlib compression */
-    int             standalone; /* standalone document (no external refs) 
-				     1 if standalone="yes"
-				     0 if standalone="no"
-				    -1 if there is no XML declaration
-				    -2 if there is an XML declaration, but no
-					standalone attribute was specified */
-    struct _xmlDtd  *intSubset;	/* the document internal subset */
-    struct _xmlDtd  *extSubset;	/* the document external subset */
-    struct _xmlNs   *oldNs;	/* Global namespace, the old way */
-    const xmlChar  *version;	/* the XML version string */
-    const xmlChar  *encoding;   /* external initial encoding, if any */
-    void           *ids;        /* Hash table for ID attributes if any */
-    void           *refs;       /* Hash table for IDREFs attributes if any */
-    const xmlChar  *URL;	/* The URI for that document */
-    int             charset;    /* encoding of the in-memory content
-				   actually an xmlCharEncoding */
-    struct _xmlDict *dict;      /* dict used to allocate names or NULL */
-    void           *psvi;	/* for type/PSVI informations */
-    int             parseFlags;	/* set of xmlParserOption used to parse the
-				   document */
-    int             properties;	/* set of xmlDocProperties for this document
-				   set at the end of parsing */
-};
-
-
-typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
-typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
-
-/**
- * xmlDOMWrapAcquireNsFunction:
- * @ctxt:  a DOM wrapper context
- * @node:  the context node (element or attribute) 
- * @nsName:  the requested namespace name
- * @nsPrefix:  the requested namespace prefix 
- *
- * A function called to acquire namespaces (xmlNs) from the wrapper.
- *
- * Returns an xmlNsPtr or NULL in case of an error.
- */
-typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
-						 xmlNodePtr node,
-						 const xmlChar *nsName,
-						 const xmlChar *nsPrefix);
-
-/**
- * xmlDOMWrapCtxt:
- *
- * Context for DOM wrapper-operations.
- */
-struct _xmlDOMWrapCtxt {
-    void * _private;
-    /*
-    * The type of this context, just in case we need specialized
-    * contexts in the future.
-    */
-    int type;
-    /*
-    * Internal namespace map used for various operations.
-    */
-    void * namespaceMap;
-    /*
-    * Use this one to acquire an xmlNsPtr intended for node->ns.
-    * (Note that this is not intended for elem->nsDef).
-    */
-    xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
-};
-
-/**
- * xmlChildrenNode:
- *
- * Macro for compatibility naming layer with libxml1. Maps
- * to "children."
- */
-#ifndef xmlChildrenNode
-#define xmlChildrenNode children
-#endif
-
-/**
- * xmlRootNode:
- *
- * Macro for compatibility naming layer with libxml1. Maps 
- * to "children".
- */
-#ifndef xmlRootNode
-#define xmlRootNode children
-#endif
-
-/*
- * Variables.
- */
-
-/*
- * Some helper functions
- */
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
-XMLPUBFUN int XMLCALL
-		xmlValidateNCName	(const xmlChar *value,
-					 int space);
-#endif
-
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN int XMLCALL		
-		xmlValidateQName	(const xmlChar *value,
-					 int space);
-XMLPUBFUN int XMLCALL		
-		xmlValidateName		(const xmlChar *value,
-					 int space);
-XMLPUBFUN int XMLCALL		
-		xmlValidateNMToken	(const xmlChar *value,
-					 int space);
-#endif
-
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlBuildQName		(const xmlChar *ncname,
-					 const xmlChar *prefix,
-					 xmlChar *memory,
-					 int len);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlSplitQName2		(const xmlChar *name,
-					 xmlChar **prefix);
-XMLPUBFUN const xmlChar * XMLCALL	
-		xmlSplitQName3		(const xmlChar *name,
-					 int *len);
-
-/*
- * Handling Buffers.
- */
-
-XMLPUBFUN void XMLCALL		
-		xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
-XMLPUBFUN xmlBufferAllocationScheme XMLCALL	 
-		xmlGetBufferAllocationScheme(void);
-
-XMLPUBFUN xmlBufferPtr XMLCALL	
-		xmlBufferCreate		(void);
-XMLPUBFUN xmlBufferPtr XMLCALL	
-		xmlBufferCreateSize	(size_t size);
-XMLPUBFUN xmlBufferPtr XMLCALL	
-		xmlBufferCreateStatic	(void *mem,
-					 size_t size);
-XMLPUBFUN int XMLCALL		
-		xmlBufferResize		(xmlBufferPtr buf,
-					 unsigned int size);
-XMLPUBFUN void XMLCALL		
-		xmlBufferFree		(xmlBufferPtr buf);
-XMLPUBFUN int XMLCALL		
-		xmlBufferDump		(FILE *file,
-					 xmlBufferPtr buf);
-XMLPUBFUN int XMLCALL		
-		xmlBufferAdd		(xmlBufferPtr buf,
-					 const xmlChar *str,
-					 int len);
-XMLPUBFUN int XMLCALL		
-		xmlBufferAddHead	(xmlBufferPtr buf,
-					 const xmlChar *str,
-					 int len);
-XMLPUBFUN int XMLCALL		
-		xmlBufferCat		(xmlBufferPtr buf,
-					 const xmlChar *str);
-XMLPUBFUN int XMLCALL	
-		xmlBufferCCat		(xmlBufferPtr buf,
-					 const char *str);
-XMLPUBFUN int XMLCALL		
-		xmlBufferShrink		(xmlBufferPtr buf,
-					 unsigned int len);
-XMLPUBFUN int XMLCALL		
-		xmlBufferGrow		(xmlBufferPtr buf,
-					 unsigned int len);
-XMLPUBFUN void XMLCALL		
-		xmlBufferEmpty		(xmlBufferPtr buf);
-XMLPUBFUN const xmlChar* XMLCALL	
-		xmlBufferContent	(const xmlBufferPtr buf);
-XMLPUBFUN void XMLCALL		
-		xmlBufferSetAllocationScheme(xmlBufferPtr buf,
-					 xmlBufferAllocationScheme scheme);
-XMLPUBFUN int XMLCALL		
-		xmlBufferLength		(const xmlBufferPtr buf);
-
-/*
- * Creating/freeing new structures.
- */
-XMLPUBFUN xmlDtdPtr XMLCALL	
-		xmlCreateIntSubset	(xmlDocPtr doc,
-					 const xmlChar *name,
-					 const xmlChar *ExternalID,
-					 const xmlChar *SystemID);
-XMLPUBFUN xmlDtdPtr XMLCALL	
-		xmlNewDtd		(xmlDocPtr doc,
-					 const xmlChar *name,
-					 const xmlChar *ExternalID,
-					 const xmlChar *SystemID);
-XMLPUBFUN xmlDtdPtr XMLCALL	
-		xmlGetIntSubset		(xmlDocPtr doc);
-XMLPUBFUN void XMLCALL		
-		xmlFreeDtd		(xmlDtdPtr cur);
-#ifdef LIBXML_LEGACY_ENABLED
-XMLPUBFUN xmlNsPtr XMLCALL	
-		xmlNewGlobalNs		(xmlDocPtr doc,
-					 const xmlChar *href,
-					 const xmlChar *prefix);
-#endif /* LIBXML_LEGACY_ENABLED */
-XMLPUBFUN xmlNsPtr XMLCALL	
-		xmlNewNs		(xmlNodePtr node,
-					 const xmlChar *href,
-					 const xmlChar *prefix);
-XMLPUBFUN void XMLCALL		
-		xmlFreeNs		(xmlNsPtr cur);
-XMLPUBFUN void XMLCALL		
-		xmlFreeNsList		(xmlNsPtr cur);
-XMLPUBFUN xmlDocPtr XMLCALL 	
-		xmlNewDoc		(const xmlChar *version);
-XMLPUBFUN void XMLCALL		
-		xmlFreeDoc		(xmlDocPtr cur);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlNewDocProp		(xmlDocPtr doc,
-					 const xmlChar *name,
-					 const xmlChar *value);
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
-    defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlNewProp		(xmlNodePtr node,
-					 const xmlChar *name,
-					 const xmlChar *value);
-#endif
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlNewNsProp		(xmlNodePtr node,
-					 xmlNsPtr ns,
-					 const xmlChar *name,
-					 const xmlChar *value);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlNewNsPropEatName	(xmlNodePtr node,
-					 xmlNsPtr ns,
-					 xmlChar *name,
-					 const xmlChar *value);
-XMLPUBFUN void XMLCALL		
-		xmlFreePropList		(xmlAttrPtr cur);
-XMLPUBFUN void XMLCALL		
-		xmlFreeProp		(xmlAttrPtr cur);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlCopyProp		(xmlNodePtr target,
-					 xmlAttrPtr cur);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlCopyPropList		(xmlNodePtr target,
-					 xmlAttrPtr cur);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlDtdPtr XMLCALL	
-		xmlCopyDtd		(xmlDtdPtr dtd);
-#endif /* LIBXML_TREE_ENABLED */
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN xmlDocPtr XMLCALL	
-		xmlCopyDoc		(xmlDocPtr doc,
-					 int recursive);
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
-/*
- * Creating new nodes.
- */
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocNode		(xmlDocPtr doc,
-					 xmlNsPtr ns,
-					 const xmlChar *name,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocNodeEatName	(xmlDocPtr doc,
-					 xmlNsPtr ns,
-					 xmlChar *name,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewNode		(xmlNsPtr ns,
-					 const xmlChar *name);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewNodeEatName	(xmlNsPtr ns,
-					 xmlChar *name);
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewChild		(xmlNodePtr parent,
-					 xmlNsPtr ns,
-					 const xmlChar *name,
-					 const xmlChar *content);
-#endif
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocText		(xmlDocPtr doc,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewText		(const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocPI		(xmlDocPtr doc,
-					 const xmlChar *name,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewPI		(const xmlChar *name,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocTextLen	(xmlDocPtr doc,
-					 const xmlChar *content,
-					 int len);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewTextLen		(const xmlChar *content,
-					 int len);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocComment	(xmlDocPtr doc,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewComment		(const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewCDataBlock	(xmlDocPtr doc,
-					 const xmlChar *content,
-					 int len);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewCharRef		(xmlDocPtr doc,
-					 const xmlChar *name);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewReference		(xmlDocPtr doc,
-					 const xmlChar *name);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlCopyNode		(const xmlNodePtr node,
-					 int recursive);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlDocCopyNode		(const xmlNodePtr node,
-					 xmlDocPtr doc,
-					 int recursive);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlDocCopyNodeList	(xmlDocPtr doc,
-					 const xmlNodePtr node);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlCopyNodeList		(const xmlNodePtr node);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewTextChild		(xmlNodePtr parent,
-					 xmlNsPtr ns,
-					 const xmlChar *name,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocRawNode	(xmlDocPtr doc,
-					 xmlNsPtr ns,
-					 const xmlChar *name,
-					 const xmlChar *content);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlNewDocFragment	(xmlDocPtr doc);
-#endif /* LIBXML_TREE_ENABLED */
-
-/*
- * Navigating.
- */
-XMLPUBFUN long XMLCALL		
-		xmlGetLineNo		(xmlNodePtr node);
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlGetNodePath		(xmlNodePtr node);
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlDocGetRootElement	(xmlDocPtr doc);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlGetLastChild		(xmlNodePtr parent);
-XMLPUBFUN int XMLCALL		
-		xmlNodeIsText		(xmlNodePtr node);
-XMLPUBFUN int XMLCALL		
-		xmlIsBlankNode		(xmlNodePtr node);
-
-/*
- * Changing the structure.
- */
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlDocSetRootElement	(xmlDocPtr doc,
-					 xmlNodePtr root);
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlNodeSetName		(xmlNodePtr cur,
-					 const xmlChar *name);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlAddChild		(xmlNodePtr parent,
-					 xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlAddChildList		(xmlNodePtr parent,
-					 xmlNodePtr cur);
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlReplaceNode		(xmlNodePtr old,
-					 xmlNodePtr cur);
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
-    defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlAddPrevSibling	(xmlNodePtr cur,
-					 xmlNodePtr elem);
-#endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlAddSibling		(xmlNodePtr cur,
-					 xmlNodePtr elem);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlAddNextSibling	(xmlNodePtr cur,
-					 xmlNodePtr elem);
-XMLPUBFUN void XMLCALL		
-		xmlUnlinkNode		(xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlTextMerge		(xmlNodePtr first,
-					 xmlNodePtr second);
-XMLPUBFUN int XMLCALL		
-		xmlTextConcat		(xmlNodePtr node,
-					 const xmlChar *content,
-					 int len);
-XMLPUBFUN void XMLCALL		
-		xmlFreeNodeList		(xmlNodePtr cur);
-XMLPUBFUN void XMLCALL		
-		xmlFreeNode		(xmlNodePtr cur);
-XMLPUBFUN void XMLCALL		
-		xmlSetTreeDoc		(xmlNodePtr tree,
-					 xmlDocPtr doc);
-XMLPUBFUN void XMLCALL		
-		xmlSetListDoc		(xmlNodePtr list,
-					 xmlDocPtr doc);
-/*
- * Namespaces.
- */
-XMLPUBFUN xmlNsPtr XMLCALL	
-		xmlSearchNs		(xmlDocPtr doc,
-					 xmlNodePtr node,
-					 const xmlChar *nameSpace);
-XMLPUBFUN xmlNsPtr XMLCALL	
-		xmlSearchNsByHref	(xmlDocPtr doc,
-					 xmlNodePtr node,
-					 const xmlChar *href);
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN xmlNsPtr * XMLCALL	
-		xmlGetNsList		(xmlDocPtr doc,
-					 xmlNodePtr node);
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
-
-XMLPUBFUN void XMLCALL		
-		xmlSetNs		(xmlNodePtr node,
-					 xmlNsPtr ns);
-XMLPUBFUN xmlNsPtr XMLCALL	
-		xmlCopyNamespace	(xmlNsPtr cur);
-XMLPUBFUN xmlNsPtr XMLCALL	
-		xmlCopyNamespaceList	(xmlNsPtr cur);
-
-/*
- * Changing the content.
- */
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlSetProp		(xmlNodePtr node,
-					 const xmlChar *name,
-					 const xmlChar *value);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlSetNsProp		(xmlNodePtr node,
-					 xmlNsPtr ns,
-					 const xmlChar *name,
-					 const xmlChar *value);
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlGetNoNsProp		(xmlNodePtr node,
-					 const xmlChar *name);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlGetProp		(xmlNodePtr node,
-					 const xmlChar *name);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlHasProp		(xmlNodePtr node,
-					 const xmlChar *name);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlHasNsProp		(xmlNodePtr node,
-					 const xmlChar *name,
-					 const xmlChar *nameSpace);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlGetNsProp		(xmlNodePtr node,
-					 const xmlChar *name,
-					 const xmlChar *nameSpace);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlStringGetNodeList	(xmlDocPtr doc,
-					 const xmlChar *value);
-XMLPUBFUN xmlNodePtr XMLCALL	
-		xmlStringLenGetNodeList	(xmlDocPtr doc,
-					 const xmlChar *value,
-					 int len);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlNodeListGetString	(xmlDocPtr doc,
-					 xmlNodePtr list,
-					 int inLine);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlNodeListGetRawString	(xmlDocPtr doc,
-					 xmlNodePtr list,
-					 int inLine);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN void XMLCALL		
-		xmlNodeSetContent	(xmlNodePtr cur,
-					 const xmlChar *content);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlNodeSetContentLen	(xmlNodePtr cur,
-					 const xmlChar *content,
-					 int len);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN void XMLCALL		
-		xmlNodeAddContent	(xmlNodePtr cur,
-					 const xmlChar *content);
-XMLPUBFUN void XMLCALL		
-		xmlNodeAddContentLen	(xmlNodePtr cur,
-					 const xmlChar *content,
-					 int len);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlNodeGetContent	(xmlNodePtr cur);
-XMLPUBFUN int XMLCALL
-		xmlNodeBufGetContent	(xmlBufferPtr buffer,
-					 xmlNodePtr cur);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlNodeGetLang		(xmlNodePtr cur);
-XMLPUBFUN int XMLCALL		
-		xmlNodeGetSpacePreserve	(xmlNodePtr cur);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlNodeSetLang		(xmlNodePtr cur,
-					 const xmlChar *lang);
-XMLPUBFUN void XMLCALL		
-		xmlNodeSetSpacePreserve (xmlNodePtr cur,
-					 int val);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlNodeGetBase		(xmlDocPtr doc,
-					 xmlNodePtr cur);
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
-XMLPUBFUN void XMLCALL		
-		xmlNodeSetBase		(xmlNodePtr cur,
-					 const xmlChar *uri);
-#endif
-
-/*
- * Removing content.
- */
-XMLPUBFUN int XMLCALL		
-		xmlRemoveProp		(xmlAttrPtr cur);
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN int XMLCALL		
-		xmlUnsetNsProp		(xmlNodePtr node,
-					 xmlNsPtr ns,
-					 const xmlChar *name);
-XMLPUBFUN int XMLCALL		
-		xmlUnsetProp		(xmlNodePtr node,
-					 const xmlChar *name);
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
-
-/*
- * Internal, don't use.
- */
-XMLPUBFUN void XMLCALL		
-		xmlBufferWriteCHAR	(xmlBufferPtr buf,
-					 const xmlChar *string);
-XMLPUBFUN void XMLCALL		
-		xmlBufferWriteChar	(xmlBufferPtr buf,
-					 const char *string);
-XMLPUBFUN void XMLCALL		
-		xmlBufferWriteQuotedString(xmlBufferPtr buf,
-					 const xmlChar *string);
-
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
-					 xmlDocPtr doc,
-					 xmlAttrPtr attr,
-					 const xmlChar *string);
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-#ifdef LIBXML_TREE_ENABLED
-/*
- * Namespace handling.
- */
-XMLPUBFUN int XMLCALL		
-		xmlReconciliateNs	(xmlDocPtr doc,
-					 xmlNodePtr tree);
-#endif
-
-#ifdef LIBXML_OUTPUT_ENABLED
-/*
- * Saving.
- */
-XMLPUBFUN void XMLCALL		
-		xmlDocDumpFormatMemory	(xmlDocPtr cur,
-					 xmlChar **mem,
-					 int *size,
-					 int format);
-XMLPUBFUN void XMLCALL		
-		xmlDocDumpMemory	(xmlDocPtr cur,
-					 xmlChar **mem,
-					 int *size);
-XMLPUBFUN void XMLCALL		
-		xmlDocDumpMemoryEnc	(xmlDocPtr out_doc,
-					 xmlChar **doc_txt_ptr,
-					 int * doc_txt_len,
-					 const char *txt_encoding);
-XMLPUBFUN void XMLCALL		
-		xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
-					 xmlChar **doc_txt_ptr,
-					 int * doc_txt_len,
-					 const char *txt_encoding,
-					 int format);
-XMLPUBFUN int XMLCALL		
-		xmlDocFormatDump	(FILE *f,
-					 xmlDocPtr cur,
-					 int format);
-XMLPUBFUN int XMLCALL	
-		xmlDocDump		(FILE *f,
-					 xmlDocPtr cur);
-XMLPUBFUN void XMLCALL		
-		xmlElemDump		(FILE *f,
-					 xmlDocPtr doc,
-					 xmlNodePtr cur);
-XMLPUBFUN int XMLCALL		
-		xmlSaveFile		(const char *filename,
-					 xmlDocPtr cur);
-XMLPUBFUN int XMLCALL		
-		xmlSaveFormatFile	(const char *filename,
-					 xmlDocPtr cur,
-					 int format);
-XMLPUBFUN int XMLCALL		
-		xmlNodeDump		(xmlBufferPtr buf,
-					 xmlDocPtr doc,
-					 xmlNodePtr cur,
-					 int level,
-					 int format);
-
-XMLPUBFUN int XMLCALL		
-		xmlSaveFileTo		(xmlOutputBufferPtr buf,
-					 xmlDocPtr cur,
-					 const char *encoding);
-XMLPUBFUN int XMLCALL             
-		xmlSaveFormatFileTo     (xmlOutputBufferPtr buf,
-					 xmlDocPtr cur,
-				         const char *encoding,
-				         int format);
-XMLPUBFUN void XMLCALL		
-		xmlNodeDumpOutput	(xmlOutputBufferPtr buf,
-					 xmlDocPtr doc,
-					 xmlNodePtr cur,
-					 int level,
-					 int format,
-					 const char *encoding);
-
-XMLPUBFUN int XMLCALL		
-		xmlSaveFormatFileEnc    (const char *filename,
-					 xmlDocPtr cur,
-					 const char *encoding,
-					 int format);
-
-XMLPUBFUN int XMLCALL		
-		xmlSaveFileEnc		(const char *filename,
-					 xmlDocPtr cur,
-					 const char *encoding);
-
-#endif /* LIBXML_OUTPUT_ENABLED */
-/*
- * XHTML
- */
-XMLPUBFUN int XMLCALL		
-		xmlIsXHTML		(const xmlChar *systemID,
-					 const xmlChar *publicID);
-
-/*
- * Compression.
- */
-XMLPUBFUN int XMLCALL		
-		xmlGetDocCompressMode	(xmlDocPtr doc);
-XMLPUBFUN void XMLCALL		
-		xmlSetDocCompressMode	(xmlDocPtr doc,
-					 int mode);
-XMLPUBFUN int XMLCALL		
-		xmlGetCompressMode	(void);
-XMLPUBFUN void XMLCALL		
-		xmlSetCompressMode	(int mode);
-
-/*
-* DOM-wrapper helper functions.
-*/
-XMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL
-		xmlDOMWrapNewCtxt	(void);
-XMLPUBFUN void XMLCALL
-		xmlDOMWrapFreeCtxt	(xmlDOMWrapCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-	    xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
-					 xmlNodePtr elem,
-					 int options);
-XMLPUBFUN int XMLCALL
-	    xmlDOMWrapAdoptNode		(xmlDOMWrapCtxtPtr ctxt,
-					 xmlDocPtr sourceDoc,
-					 xmlNodePtr node,
-					 xmlDocPtr destDoc,		    
-					 xmlNodePtr destParent,
-					 int options);
-XMLPUBFUN int XMLCALL
-	    xmlDOMWrapRemoveNode	(xmlDOMWrapCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr node,
-					 int options);
-XMLPUBFUN int XMLCALL
-	    xmlDOMWrapCloneNode		(xmlDOMWrapCtxtPtr ctxt,
-					 xmlDocPtr sourceDoc,
-					 xmlNodePtr node,
-					 xmlNodePtr *clonedNode,
-					 xmlDocPtr destDoc,
-					 xmlNodePtr destParent,
-					 int deep,
-					 int options);
-
-#ifdef LIBXML_TREE_ENABLED
-/*
- * 5 interfaces from DOM ElementTraversal, but different in entities
- * traversal.
- */
-XMLPUBFUN unsigned long XMLCALL
-            xmlChildElementCount        (xmlNodePtr parent);
-XMLPUBFUN xmlNodePtr XMLCALL
-            xmlNextElementSibling       (xmlNodePtr node);
-XMLPUBFUN xmlNodePtr XMLCALL
-            xmlFirstElementChild        (xmlNodePtr parent);
-XMLPUBFUN xmlNodePtr XMLCALL
-            xmlLastElementChild         (xmlNodePtr parent);
-XMLPUBFUN xmlNodePtr XMLCALL
-            xmlPreviousElementSibling   (xmlNodePtr node);
-#endif
-#ifdef __cplusplus
-}
-#endif
-#ifndef __XML_PARSER_H__
-#include <libxml/xmlmemory.h>
-#endif
-
-#endif /* __XML_TREE_H__ */
-
diff --git a/interfaces/ext/libxml/uri.h b/interfaces/ext/libxml/uri.h
deleted file mode 100644
index db48262..0000000
--- a/interfaces/ext/libxml/uri.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Summary: library of generic URI related routines
- * Description: library of generic URI related routines
- *              Implements RFC 2396
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_URI_H__
-#define __XML_URI_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlURI:
- *
- * A parsed URI reference. This is a struct containing the various fields
- * as described in RFC 2396 but separated for further processing.
- *
- * Note: query is a deprecated field which is incorrectly unescaped.
- * query_raw takes precedence over query if the former is set.
- * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127
- */
-typedef struct _xmlURI xmlURI;
-typedef xmlURI *xmlURIPtr;
-struct _xmlURI {
-    char *scheme;	/* the URI scheme */
-    char *opaque;	/* opaque part */
-    char *authority;	/* the authority part */
-    char *server;	/* the server part */
-    char *user;		/* the user part */
-    int port;		/* the port number */
-    char *path;		/* the path string */
-    char *query;	/* the query string (deprecated - use with caution) */
-    char *fragment;	/* the fragment identifier */
-    int  cleanup;	/* parsing potentially unclean URI */
-    char *query_raw;	/* the query string (as it appears in the URI) */
-};
-
-/*
- * This function is in tree.h:
- * xmlChar *	xmlNodeGetBase	(xmlDocPtr doc,
- *                               xmlNodePtr cur);
- */
-XMLPUBFUN xmlURIPtr XMLCALL
-		xmlCreateURI		(void);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlBuildURI		(const xmlChar *URI,
-					 const xmlChar *base);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlBuildRelativeURI	(const xmlChar *URI,
-					 const xmlChar *base);
-XMLPUBFUN xmlURIPtr XMLCALL
-		xmlParseURI		(const char *str);
-XMLPUBFUN xmlURIPtr XMLCALL
-		xmlParseURIRaw		(const char *str,
-					 int raw);
-XMLPUBFUN int XMLCALL
-		xmlParseURIReference	(xmlURIPtr uri,
-					 const char *str);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlSaveUri		(xmlURIPtr uri);
-XMLPUBFUN void XMLCALL
-		xmlPrintURI		(FILE *stream,
-					 xmlURIPtr uri);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlURIEscapeStr         (const xmlChar *str,
-					 const xmlChar *list);
-XMLPUBFUN char * XMLCALL
-		xmlURIUnescapeString	(const char *str,
-					 int len,
-					 char *target);
-XMLPUBFUN int XMLCALL
-		xmlNormalizeURIPath	(char *path);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlURIEscape		(const xmlChar *str);
-XMLPUBFUN void XMLCALL
-		xmlFreeURI		(xmlURIPtr uri);
-XMLPUBFUN xmlChar* XMLCALL
-		xmlCanonicPath		(const xmlChar *path);
-XMLPUBFUN xmlChar* XMLCALL
-		xmlPathToURI		(const xmlChar *path);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_URI_H__ */
diff --git a/interfaces/ext/libxml/valid.h b/interfaces/ext/libxml/valid.h
deleted file mode 100644
index f1892b0..0000000
--- a/interfaces/ext/libxml/valid.h
+++ /dev/null
@@ -1,458 +0,0 @@
-/*
- * Summary: The DTD validation
- * Description: API for the DTD handling and the validity checking
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __XML_VALID_H__
-#define __XML_VALID_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/xmlerror.h>
-#include <libxml/tree.h>
-#include <libxml/list.h>
-#include <libxml/xmlautomata.h>
-#include <libxml/xmlregexp.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Validation state added for non-determinist content model.
- */
-typedef struct _xmlValidState xmlValidState;
-typedef xmlValidState *xmlValidStatePtr;
-
-/**
- * xmlValidityErrorFunc:
- * @ctx:  usually an xmlValidCtxtPtr to a validity error context,
- *        but comes from ctxt->userData (which normally contains such
- *        a pointer); ctxt->userData can be changed by the user.
- * @msg:  the string to format *printf like vararg
- * @...:  remaining arguments to the format
- *
- * Callback called when a validity error is found. This is a message
- * oriented function similar to an *printf function.
- */
-typedef void (XMLCDECL *xmlValidityErrorFunc) (void *ctx,
-			     const char *msg,
-			     ...) ATTRIBUTE_PRINTF(2,3);
-
-/**
- * xmlValidityWarningFunc:
- * @ctx:  usually an xmlValidCtxtPtr to a validity error context,
- *        but comes from ctxt->userData (which normally contains such
- *        a pointer); ctxt->userData can be changed by the user.
- * @msg:  the string to format *printf like vararg
- * @...:  remaining arguments to the format
- *
- * Callback called when a validity warning is found. This is a message
- * oriented function similar to an *printf function.
- */
-typedef void (XMLCDECL *xmlValidityWarningFunc) (void *ctx,
-			       const char *msg,
-			       ...) ATTRIBUTE_PRINTF(2,3);
-
-#ifdef IN_LIBXML
-/**
- * XML_CTXT_FINISH_DTD_0:
- *
- * Special value for finishDtd field when embedded in an xmlParserCtxt
- */
-#define XML_CTXT_FINISH_DTD_0 0xabcd1234
-/**
- * XML_CTXT_FINISH_DTD_1:
- *
- * Special value for finishDtd field when embedded in an xmlParserCtxt
- */
-#define XML_CTXT_FINISH_DTD_1 0xabcd1235
-#endif
-
-/*
- * xmlValidCtxt:
- * An xmlValidCtxt is used for error reporting when validating.
- */
-typedef struct _xmlValidCtxt xmlValidCtxt;
-typedef xmlValidCtxt *xmlValidCtxtPtr;
-struct _xmlValidCtxt {
-    void *userData;			/* user specific data block */
-    xmlValidityErrorFunc error;		/* the callback in case of errors */
-    xmlValidityWarningFunc warning;	/* the callback in case of warning */
-
-    /* Node analysis stack used when validating within entities */
-    xmlNodePtr         node;          /* Current parsed Node */
-    int                nodeNr;        /* Depth of the parsing stack */
-    int                nodeMax;       /* Max depth of the parsing stack */
-    xmlNodePtr        *nodeTab;       /* array of nodes */
-
-    unsigned int     finishDtd;       /* finished validating the Dtd ? */
-    xmlDocPtr              doc;       /* the document */
-    int                  valid;       /* temporary validity check result */
-
-    /* state state used for non-determinist content validation */
-    xmlValidState     *vstate;        /* current state */
-    int                vstateNr;      /* Depth of the validation stack */
-    int                vstateMax;     /* Max depth of the validation stack */
-    xmlValidState     *vstateTab;     /* array of validation states */
-
-#ifdef LIBXML_REGEXP_ENABLED
-    xmlAutomataPtr            am;     /* the automata */
-    xmlAutomataStatePtr    state;     /* used to build the automata */
-#else
-    void                     *am;
-    void                  *state;
-#endif
-};
-
-/*
- * ALL notation declarations are stored in a table.
- * There is one table per DTD.
- */
-
-typedef struct _xmlHashTable xmlNotationTable;
-typedef xmlNotationTable *xmlNotationTablePtr;
-
-/*
- * ALL element declarations are stored in a table.
- * There is one table per DTD.
- */
-
-typedef struct _xmlHashTable xmlElementTable;
-typedef xmlElementTable *xmlElementTablePtr;
-
-/*
- * ALL attribute declarations are stored in a table.
- * There is one table per DTD.
- */
-
-typedef struct _xmlHashTable xmlAttributeTable;
-typedef xmlAttributeTable *xmlAttributeTablePtr;
-
-/*
- * ALL IDs attributes are stored in a table.
- * There is one table per document.
- */
-
-typedef struct _xmlHashTable xmlIDTable;
-typedef xmlIDTable *xmlIDTablePtr;
-
-/*
- * ALL Refs attributes are stored in a table.
- * There is one table per document.
- */
-
-typedef struct _xmlHashTable xmlRefTable;
-typedef xmlRefTable *xmlRefTablePtr;
-
-/* Notation */
-XMLPUBFUN xmlNotationPtr XMLCALL	    
-		xmlAddNotationDecl	(xmlValidCtxtPtr ctxt,
-					 xmlDtdPtr dtd,
-					 const xmlChar *name,
-					 const xmlChar *PublicID,
-					 const xmlChar *SystemID);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlNotationTablePtr XMLCALL 
-		xmlCopyNotationTable	(xmlNotationTablePtr table);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN void XMLCALL		    
-		xmlFreeNotationTable	(xmlNotationTablePtr table);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL		    
-		xmlDumpNotationDecl	(xmlBufferPtr buf,
-					 xmlNotationPtr nota);
-XMLPUBFUN void XMLCALL		    
-		xmlDumpNotationTable	(xmlBufferPtr buf,
-					 xmlNotationTablePtr table);
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-/* Element Content */
-/* the non Doc version are being deprecated */
-XMLPUBFUN xmlElementContentPtr XMLCALL 
-		xmlNewElementContent	(const xmlChar *name,
-					 xmlElementContentType type);
-XMLPUBFUN xmlElementContentPtr XMLCALL 
-		xmlCopyElementContent	(xmlElementContentPtr content);
-XMLPUBFUN void XMLCALL		     
-		xmlFreeElementContent	(xmlElementContentPtr cur);
-/* the new versions with doc argument */
-XMLPUBFUN xmlElementContentPtr XMLCALL 
-		xmlNewDocElementContent	(xmlDocPtr doc,
-					 const xmlChar *name,
-					 xmlElementContentType type);
-XMLPUBFUN xmlElementContentPtr XMLCALL 
-		xmlCopyDocElementContent(xmlDocPtr doc,
-					 xmlElementContentPtr content);
-XMLPUBFUN void XMLCALL		     
-		xmlFreeDocElementContent(xmlDocPtr doc,
-					 xmlElementContentPtr cur);
-XMLPUBFUN void XMLCALL		     
-		xmlSnprintfElementContent(char *buf,
-					 int size,
-	                                 xmlElementContentPtr content,
-					 int englob);
-#ifdef LIBXML_OUTPUT_ENABLED
-/* DEPRECATED */
-XMLPUBFUN void XMLCALL		     
-		xmlSprintfElementContent(char *buf,
-	                                 xmlElementContentPtr content,
-					 int englob);
-#endif /* LIBXML_OUTPUT_ENABLED */
-/* DEPRECATED */
-
-/* Element */
-XMLPUBFUN xmlElementPtr XMLCALL	   
-		xmlAddElementDecl	(xmlValidCtxtPtr ctxt,
-					 xmlDtdPtr dtd,
-					 const xmlChar *name,
-					 xmlElementTypeVal type,
-					 xmlElementContentPtr content);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlElementTablePtr XMLCALL 
-		xmlCopyElementTable	(xmlElementTablePtr table);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN void XMLCALL		   
-		xmlFreeElementTable	(xmlElementTablePtr table);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL		   
-		xmlDumpElementTable	(xmlBufferPtr buf,
-					 xmlElementTablePtr table);
-XMLPUBFUN void XMLCALL		   
-		xmlDumpElementDecl	(xmlBufferPtr buf,
-					 xmlElementPtr elem);
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-/* Enumeration */
-XMLPUBFUN xmlEnumerationPtr XMLCALL 
-		xmlCreateEnumeration	(const xmlChar *name);
-XMLPUBFUN void XMLCALL		   
-		xmlFreeEnumeration	(xmlEnumerationPtr cur);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlEnumerationPtr XMLCALL  
-		xmlCopyEnumeration	(xmlEnumerationPtr cur);
-#endif /* LIBXML_TREE_ENABLED */
-
-/* Attribute */
-XMLPUBFUN xmlAttributePtr XMLCALL	    
-		xmlAddAttributeDecl	(xmlValidCtxtPtr ctxt,
-					 xmlDtdPtr dtd,
-					 const xmlChar *elem,
-					 const xmlChar *name,
-					 const xmlChar *ns,
-					 xmlAttributeType type,
-					 xmlAttributeDefault def,
-					 const xmlChar *defaultValue,
-					 xmlEnumerationPtr tree);
-#ifdef LIBXML_TREE_ENABLED
-XMLPUBFUN xmlAttributeTablePtr XMLCALL 
-		xmlCopyAttributeTable  (xmlAttributeTablePtr table);
-#endif /* LIBXML_TREE_ENABLED */
-XMLPUBFUN void XMLCALL		     
-		xmlFreeAttributeTable  (xmlAttributeTablePtr table);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL		     
-		xmlDumpAttributeTable  (xmlBufferPtr buf,
-					xmlAttributeTablePtr table);
-XMLPUBFUN void XMLCALL		     
-		xmlDumpAttributeDecl   (xmlBufferPtr buf,
-					xmlAttributePtr attr);
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-/* IDs */
-XMLPUBFUN xmlIDPtr XMLCALL	
-		xmlAddID	       (xmlValidCtxtPtr ctxt,
-					xmlDocPtr doc,
-					const xmlChar *value,
-					xmlAttrPtr attr);
-XMLPUBFUN void XMLCALL		
-		xmlFreeIDTable	       (xmlIDTablePtr table);
-XMLPUBFUN xmlAttrPtr XMLCALL	
-		xmlGetID	       (xmlDocPtr doc,
-					const xmlChar *ID);
-XMLPUBFUN int XMLCALL		
-		xmlIsID		       (xmlDocPtr doc,
-					xmlNodePtr elem,
-					xmlAttrPtr attr);
-XMLPUBFUN int XMLCALL		
-		xmlRemoveID	       (xmlDocPtr doc, 
-					xmlAttrPtr attr);
-
-/* IDREFs */
-XMLPUBFUN xmlRefPtr XMLCALL	
-		xmlAddRef	       (xmlValidCtxtPtr ctxt,
-					xmlDocPtr doc,
-					const xmlChar *value,
-					xmlAttrPtr attr);
-XMLPUBFUN void XMLCALL		
-		xmlFreeRefTable	       (xmlRefTablePtr table);
-XMLPUBFUN int XMLCALL		
-		xmlIsRef	       (xmlDocPtr doc,
-					xmlNodePtr elem,
-					xmlAttrPtr attr);
-XMLPUBFUN int XMLCALL		
-		xmlRemoveRef	       (xmlDocPtr doc, 
-					xmlAttrPtr attr);
-XMLPUBFUN xmlListPtr XMLCALL	
-		xmlGetRefs	       (xmlDocPtr doc,
-					const xmlChar *ID);
-
-/**
- * The public function calls related to validity checking.
- */
-#ifdef LIBXML_VALID_ENABLED
-/* Allocate/Release Validation Contexts */
-XMLPUBFUN xmlValidCtxtPtr XMLCALL	    
-		xmlNewValidCtxt(void);
-XMLPUBFUN void XMLCALL		    
-		xmlFreeValidCtxt(xmlValidCtxtPtr);
-
-XMLPUBFUN int XMLCALL		
-		xmlValidateRoot		(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc);
-XMLPUBFUN int XMLCALL		
-		xmlValidateElementDecl	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-		                         xmlElementPtr elem);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlValidNormalizeAttributeValue(xmlDocPtr doc,
-					 xmlNodePtr elem,
-					 const xmlChar *name,
-					 const xmlChar *value);
-XMLPUBFUN xmlChar * XMLCALL	
-		xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem,
-					 const xmlChar *name,
-					 const xmlChar *value);
-XMLPUBFUN int XMLCALL		
-		xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-		                         xmlAttributePtr attr);
-XMLPUBFUN int XMLCALL		
-		xmlValidateAttributeValue(xmlAttributeType type,
-					 const xmlChar *value);
-XMLPUBFUN int XMLCALL		
-		xmlValidateNotationDecl	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-		                         xmlNotationPtr nota);
-XMLPUBFUN int XMLCALL		
-		xmlValidateDtd		(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlDtdPtr dtd);
-XMLPUBFUN int XMLCALL		
-		xmlValidateDtdFinal	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc);
-XMLPUBFUN int XMLCALL		
-		xmlValidateDocument	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc);
-XMLPUBFUN int XMLCALL		
-		xmlValidateElement	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem);
-XMLPUBFUN int XMLCALL		
-		xmlValidateOneElement	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-		                         xmlNodePtr elem);
-XMLPUBFUN int XMLCALL	
-		xmlValidateOneAttribute	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr	elem,
-					 xmlAttrPtr attr,
-					 const xmlChar *value);
-XMLPUBFUN int XMLCALL		
-		xmlValidateOneNamespace	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem,
-					 const xmlChar *prefix,
-					 xmlNsPtr ns,
-					 const xmlChar *value);
-XMLPUBFUN int XMLCALL		
-		xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc);
-#endif /* LIBXML_VALID_ENABLED */
-
-#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN int XMLCALL		
-		xmlValidateNotationUse	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 const xmlChar *notationName);
-#endif /* LIBXML_VALID_ENABLED or LIBXML_SCHEMAS_ENABLED */
-
-XMLPUBFUN int XMLCALL		
-		xmlIsMixedElement	(xmlDocPtr doc,
-					 const xmlChar *name);
-XMLPUBFUN xmlAttributePtr XMLCALL	
-		xmlGetDtdAttrDesc	(xmlDtdPtr dtd,
-					 const xmlChar *elem,
-					 const xmlChar *name);
-XMLPUBFUN xmlAttributePtr XMLCALL	
-		xmlGetDtdQAttrDesc	(xmlDtdPtr dtd,
-					 const xmlChar *elem,
-					 const xmlChar *name,
-					 const xmlChar *prefix);
-XMLPUBFUN xmlNotationPtr XMLCALL	
-		xmlGetDtdNotationDesc	(xmlDtdPtr dtd,
-					 const xmlChar *name);
-XMLPUBFUN xmlElementPtr XMLCALL	
-		xmlGetDtdQElementDesc	(xmlDtdPtr dtd,
-					 const xmlChar *name,
-					 const xmlChar *prefix);
-XMLPUBFUN xmlElementPtr XMLCALL	
-		xmlGetDtdElementDesc	(xmlDtdPtr dtd,
-					 const xmlChar *name);
-
-#ifdef LIBXML_VALID_ENABLED
-
-XMLPUBFUN int XMLCALL		
-		xmlValidGetPotentialChildren(xmlElementContent *ctree,
-					 const xmlChar **names,
-					 int *len,
-					 int max);
-
-XMLPUBFUN int XMLCALL		
-		xmlValidGetValidElements(xmlNode *prev,
-					 xmlNode *next,
-					 const xmlChar **names,
-					 int max);
-XMLPUBFUN int XMLCALL		
-		xmlValidateNameValue	(const xmlChar *value);
-XMLPUBFUN int XMLCALL		
-		xmlValidateNamesValue	(const xmlChar *value);
-XMLPUBFUN int XMLCALL		
-		xmlValidateNmtokenValue	(const xmlChar *value);
-XMLPUBFUN int XMLCALL		
-		xmlValidateNmtokensValue(const xmlChar *value);
-
-#ifdef LIBXML_REGEXP_ENABLED
-/*
- * Validation based on the regexp support
- */
-XMLPUBFUN int XMLCALL		
-		xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
-					 xmlElementPtr elem);
-
-XMLPUBFUN int XMLCALL		
-		xmlValidatePushElement	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem,
-					 const xmlChar *qname);
-XMLPUBFUN int XMLCALL		
-		xmlValidatePushCData	(xmlValidCtxtPtr ctxt,
-					 const xmlChar *data,
-					 int len);
-XMLPUBFUN int XMLCALL		
-		xmlValidatePopElement	(xmlValidCtxtPtr ctxt,
-					 xmlDocPtr doc,
-					 xmlNodePtr elem,
-					 const xmlChar *qname);
-#endif /* LIBXML_REGEXP_ENABLED */
-#endif /* LIBXML_VALID_ENABLED */
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_VALID_H__ */
diff --git a/interfaces/ext/libxml/xinclude.h b/interfaces/ext/libxml/xinclude.h
deleted file mode 100644
index ba9c9b5..0000000
--- a/interfaces/ext/libxml/xinclude.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Summary: implementation of XInclude
- * Description: API to handle XInclude processing,
- * implements the
- * World Wide Web Consortium Last Call Working Draft 10 November 2003
- * http://www.w3.org/TR/2003/WD-xinclude-20031110
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_XINCLUDE_H__
-#define __XML_XINCLUDE_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-
-#ifdef LIBXML_XINCLUDE_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * XINCLUDE_NS:
- *
- * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude
- */
-#define XINCLUDE_NS (const xmlChar *) "http://www.w3.org/2003/XInclude"
-/**
- * XINCLUDE_OLD_NS:
- *
- * Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude
- */
-#define XINCLUDE_OLD_NS (const xmlChar *) "http://www.w3.org/2001/XInclude"
-/**
- * XINCLUDE_NODE:
- *
- * Macro defining "include"
- */
-#define XINCLUDE_NODE (const xmlChar *) "include"
-/**
- * XINCLUDE_FALLBACK:
- *
- * Macro defining "fallback"
- */
-#define XINCLUDE_FALLBACK (const xmlChar *) "fallback"
-/**
- * XINCLUDE_HREF:
- *
- * Macro defining "href"
- */
-#define XINCLUDE_HREF (const xmlChar *) "href"
-/**
- * XINCLUDE_PARSE:
- *
- * Macro defining "parse"
- */
-#define XINCLUDE_PARSE (const xmlChar *) "parse"
-/**
- * XINCLUDE_PARSE_XML:
- *
- * Macro defining "xml"
- */
-#define XINCLUDE_PARSE_XML (const xmlChar *) "xml"
-/**
- * XINCLUDE_PARSE_TEXT:
- *
- * Macro defining "text"
- */
-#define XINCLUDE_PARSE_TEXT (const xmlChar *) "text"
-/**
- * XINCLUDE_PARSE_ENCODING:
- *
- * Macro defining "encoding"
- */
-#define XINCLUDE_PARSE_ENCODING (const xmlChar *) "encoding"
-/**
- * XINCLUDE_PARSE_XPOINTER:
- *
- * Macro defining "xpointer"
- */
-#define XINCLUDE_PARSE_XPOINTER (const xmlChar *) "xpointer"
-
-typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt;
-typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr;
-
-/*
- * standalone processing
- */
-XMLPUBFUN int XMLCALL	
-		xmlXIncludeProcess	(xmlDocPtr doc);
-XMLPUBFUN int XMLCALL	
-		xmlXIncludeProcessFlags	(xmlDocPtr doc,
-					 int flags);
-XMLPUBFUN int XMLCALL	
-		xmlXIncludeProcessFlagsData(xmlDocPtr doc,
-					 int flags,
-					 void *data);
-XMLPUBFUN int XMLCALL	
-		xmlXIncludeProcessTree	(xmlNodePtr tree);
-XMLPUBFUN int XMLCALL	
-		xmlXIncludeProcessTreeFlags(xmlNodePtr tree,
-					 int flags);
-/*
- * contextual processing
- */
-XMLPUBFUN xmlXIncludeCtxtPtr XMLCALL
-		xmlXIncludeNewContext	(xmlDocPtr doc);
-XMLPUBFUN int XMLCALL
-		xmlXIncludeSetFlags	(xmlXIncludeCtxtPtr ctxt,
-					 int flags);
-XMLPUBFUN void XMLCALL
-		xmlXIncludeFreeContext	(xmlXIncludeCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-		xmlXIncludeProcessNode	(xmlXIncludeCtxtPtr ctxt,
-					 xmlNodePtr tree);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_XINCLUDE_ENABLED */
-
-#endif /* __XML_XINCLUDE_H__ */
diff --git a/interfaces/ext/libxml/xlink.h b/interfaces/ext/libxml/xlink.h
deleted file mode 100644
index 083c7ed..0000000
--- a/interfaces/ext/libxml/xlink.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Summary: unfinished XLink detection module
- * Description: unfinished XLink detection module
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_XLINK_H__
-#define __XML_XLINK_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-
-#ifdef LIBXML_XPTR_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Various defines for the various Link properties.
- *
- * NOTE: the link detection layer will try to resolve QName expansion
- *       of namespaces. If "foo" is the prefix for "http://foo.com/"
- *       then the link detection layer will expand role="foo:myrole"
- *       to "http://foo.com/:myrole".
- * NOTE: the link detection layer will expand URI-Refences found on
- *       href attributes by using the base mechanism if found.
- */
-typedef xmlChar *xlinkHRef;
-typedef xmlChar *xlinkRole;
-typedef xmlChar *xlinkTitle;
-
-typedef enum {
-    XLINK_TYPE_NONE = 0,
-    XLINK_TYPE_SIMPLE,
-    XLINK_TYPE_EXTENDED,
-    XLINK_TYPE_EXTENDED_SET
-} xlinkType;
-
-typedef enum {
-    XLINK_SHOW_NONE = 0,
-    XLINK_SHOW_NEW,
-    XLINK_SHOW_EMBED,
-    XLINK_SHOW_REPLACE
-} xlinkShow;
-
-typedef enum {
-    XLINK_ACTUATE_NONE = 0,
-    XLINK_ACTUATE_AUTO,
-    XLINK_ACTUATE_ONREQUEST
-} xlinkActuate;
-
-/**
- * xlinkNodeDetectFunc:
- * @ctx:  user data pointer
- * @node:  the node to check
- * 
- * This is the prototype for the link detection routine.
- * It calls the default link detection callbacks upon link detection.
- */
-typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
-
-/*
- * The link detection module interact with the upper layers using
- * a set of callback registered at parsing time.
- */
-
-/**
- * xlinkSimpleLinkFunk:
- * @ctx:  user data pointer
- * @node:  the node carrying the link
- * @href:  the target of the link
- * @role:  the role string
- * @title:  the link title
- *
- * This is the prototype for a simple link detection callback.
- */
-typedef void
-(*xlinkSimpleLinkFunk)	(void *ctx,
-			 xmlNodePtr node,
-			 const xlinkHRef href,
-			 const xlinkRole role,
-			 const xlinkTitle title);
-
-/**
- * xlinkExtendedLinkFunk:
- * @ctx:  user data pointer
- * @node:  the node carrying the link
- * @nbLocators: the number of locators detected on the link
- * @hrefs:  pointer to the array of locator hrefs
- * @roles:  pointer to the array of locator roles
- * @nbArcs: the number of arcs detected on the link
- * @from:  pointer to the array of source roles found on the arcs
- * @to:  pointer to the array of target roles found on the arcs
- * @show:  array of values for the show attributes found on the arcs
- * @actuate:  array of values for the actuate attributes found on the arcs
- * @nbTitles: the number of titles detected on the link
- * @title:  array of titles detected on the link
- * @langs:  array of xml:lang values for the titles
- *
- * This is the prototype for a extended link detection callback.
- */
-typedef void
-(*xlinkExtendedLinkFunk)(void *ctx,
-			 xmlNodePtr node,
-			 int nbLocators,
-			 const xlinkHRef *hrefs,
-			 const xlinkRole *roles,
-			 int nbArcs,
-			 const xlinkRole *from,
-			 const xlinkRole *to,
-			 xlinkShow *show,
-			 xlinkActuate *actuate,
-			 int nbTitles,
-			 const xlinkTitle *titles,
-			 const xmlChar **langs);
-
-/**
- * xlinkExtendedLinkSetFunk:
- * @ctx:  user data pointer
- * @node:  the node carrying the link
- * @nbLocators: the number of locators detected on the link
- * @hrefs:  pointer to the array of locator hrefs
- * @roles:  pointer to the array of locator roles
- * @nbTitles: the number of titles detected on the link
- * @title:  array of titles detected on the link
- * @langs:  array of xml:lang values for the titles
- *
- * This is the prototype for a extended link set detection callback.
- */
-typedef void
-(*xlinkExtendedLinkSetFunk)	(void *ctx,
-				 xmlNodePtr node,
-				 int nbLocators,
-				 const xlinkHRef *hrefs,
-				 const xlinkRole *roles,
-				 int nbTitles,
-				 const xlinkTitle *titles,
-				 const xmlChar **langs);
-
-/**
- * This is the structure containing a set of Links detection callbacks.
- *
- * There is no default xlink callbacks, if one want to get link
- * recognition activated, those call backs must be provided before parsing.
- */
-typedef struct _xlinkHandler xlinkHandler;
-typedef xlinkHandler *xlinkHandlerPtr;
-struct _xlinkHandler {
-    xlinkSimpleLinkFunk simple;
-    xlinkExtendedLinkFunk extended;
-    xlinkExtendedLinkSetFunk set;
-};
-
-/*
- * The default detection routine, can be overridden, they call the default
- * detection callbacks. 
- */
-
-XMLPUBFUN xlinkNodeDetectFunc XMLCALL	
-		xlinkGetDefaultDetect	(void);
-XMLPUBFUN void XMLCALL			
-		xlinkSetDefaultDetect	(xlinkNodeDetectFunc func);
-
-/*
- * Routines to set/get the default handlers.
- */
-XMLPUBFUN xlinkHandlerPtr XMLCALL	
-		xlinkGetDefaultHandler	(void);
-XMLPUBFUN void XMLCALL		
-		xlinkSetDefaultHandler	(xlinkHandlerPtr handler);
-
-/*
- * Link detection module itself.
- */
-XMLPUBFUN xlinkType XMLCALL	 
-		xlinkIsLink		(xmlDocPtr doc,
-					 xmlNodePtr node);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_XPTR_ENABLED */
-
-#endif /* __XML_XLINK_H__ */
diff --git a/interfaces/ext/libxml/xmlIO.h b/interfaces/ext/libxml/xmlIO.h
deleted file mode 100644
index eea9ed6..0000000
--- a/interfaces/ext/libxml/xmlIO.h
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * Summary: interface for the I/O interfaces used by the parser
- * Description: interface for the I/O interfaces used by the parser
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_IO_H__
-#define __XML_IO_H__
-
-#include <stdio.h>
-#include <libxml/xmlversion.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Those are the functions and datatypes for the parser input
- * I/O structures.
- */
-
-/**
- * xmlInputMatchCallback:
- * @filename: the filename or URI
- *
- * Callback used in the I/O Input API to detect if the current handler 
- * can provide input fonctionnalities for this resource.
- *
- * Returns 1 if yes and 0 if another Input module should be used
- */
-typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
-/**
- * xmlInputOpenCallback:
- * @filename: the filename or URI
- *
- * Callback used in the I/O Input API to open the resource
- *
- * Returns an Input context or NULL in case or error
- */
-typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
-/**
- * xmlInputReadCallback:
- * @context:  an Input context
- * @buffer:  the buffer to store data read
- * @len:  the length of the buffer in bytes
- *
- * Callback used in the I/O Input API to read the resource
- *
- * Returns the number of bytes read or -1 in case of error
- */
-typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
-/**
- * xmlInputCloseCallback:
- * @context:  an Input context
- *
- * Callback used in the I/O Input API to close the resource
- *
- * Returns 0 or -1 in case of error
- */
-typedef int (XMLCALL *xmlInputCloseCallback) (void * context);
-
-#ifdef LIBXML_OUTPUT_ENABLED
-/*
- * Those are the functions and datatypes for the library output
- * I/O structures.
- */
-
-/**
- * xmlOutputMatchCallback:
- * @filename: the filename or URI
- *
- * Callback used in the I/O Output API to detect if the current handler 
- * can provide output fonctionnalities for this resource.
- *
- * Returns 1 if yes and 0 if another Output module should be used
- */
-typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
-/**
- * xmlOutputOpenCallback:
- * @filename: the filename or URI
- *
- * Callback used in the I/O Output API to open the resource
- *
- * Returns an Output context or NULL in case or error
- */
-typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
-/**
- * xmlOutputWriteCallback:
- * @context:  an Output context
- * @buffer:  the buffer of data to write
- * @len:  the length of the buffer in bytes
- *
- * Callback used in the I/O Output API to write to the resource
- *
- * Returns the number of bytes written or -1 in case of error
- */
-typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
-                                       int len);
-/**
- * xmlOutputCloseCallback:
- * @context:  an Output context
- *
- * Callback used in the I/O Output API to close the resource
- *
- * Returns 0 or -1 in case of error
- */
-typedef int (XMLCALL *xmlOutputCloseCallback) (void * context);
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-#ifdef __cplusplus
-}
-#endif
-
-#include <libxml/globals.h>
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-#include <libxml/encoding.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-struct _xmlParserInputBuffer {
-    void*                  context;
-    xmlInputReadCallback   readcallback;
-    xmlInputCloseCallback  closecallback;
-    
-    xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
-    
-    xmlBufferPtr buffer;    /* Local buffer encoded in UTF-8 */
-    xmlBufferPtr raw;       /* if encoder != NULL buffer for raw input */
-    int	compressed;	    /* -1=unknown, 0=not compressed, 1=compressed */
-    int error;
-    unsigned long rawconsumed;/* amount consumed from raw */
-};
-
-
-#ifdef LIBXML_OUTPUT_ENABLED
-struct _xmlOutputBuffer {
-    void*                   context;
-    xmlOutputWriteCallback  writecallback;
-    xmlOutputCloseCallback  closecallback;
-    
-    xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
-    
-    xmlBufferPtr buffer;    /* Local buffer encoded in UTF-8 or ISOLatin */
-    xmlBufferPtr conv;      /* if encoder != NULL buffer for output */
-    int written;            /* total number of byte written */
-    int error;
-};
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-/*
- * Interfaces for input
- */
-XMLPUBFUN void XMLCALL	
-	xmlCleanupInputCallbacks		(void);
-
-XMLPUBFUN int XMLCALL
-	xmlPopInputCallbacks			(void);
-
-XMLPUBFUN void XMLCALL	
-	xmlRegisterDefaultInputCallbacks	(void);
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-	xmlAllocParserInputBuffer		(xmlCharEncoding enc);
-
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-	xmlParserInputBufferCreateFilename	(const char *URI,
-                                                 xmlCharEncoding enc);
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-	xmlParserInputBufferCreateFile		(FILE *file,
-                                                 xmlCharEncoding enc);
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-	xmlParserInputBufferCreateFd		(int fd,
-	                                         xmlCharEncoding enc);
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-	xmlParserInputBufferCreateMem		(const char *mem, int size,
-	                                         xmlCharEncoding enc);
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-	xmlParserInputBufferCreateStatic	(const char *mem, int size,
-	                                         xmlCharEncoding enc);
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-	xmlParserInputBufferCreateIO		(xmlInputReadCallback   ioread,
-						 xmlInputCloseCallback  ioclose,
-						 void *ioctx,
-	                                         xmlCharEncoding enc);
-XMLPUBFUN int XMLCALL	
-	xmlParserInputBufferRead		(xmlParserInputBufferPtr in,
-						 int len);
-XMLPUBFUN int XMLCALL	
-	xmlParserInputBufferGrow		(xmlParserInputBufferPtr in,
-						 int len);
-XMLPUBFUN int XMLCALL	
-	xmlParserInputBufferPush		(xmlParserInputBufferPtr in,
-						 int len,
-						 const char *buf);
-XMLPUBFUN void XMLCALL	
-	xmlFreeParserInputBuffer		(xmlParserInputBufferPtr in);
-XMLPUBFUN char * XMLCALL	
-	xmlParserGetDirectory			(const char *filename);
-
-XMLPUBFUN int XMLCALL     
-	xmlRegisterInputCallbacks		(xmlInputMatchCallback matchFunc,
-						 xmlInputOpenCallback openFunc,
-						 xmlInputReadCallback readFunc,
-						 xmlInputCloseCallback closeFunc);
-
-xmlParserInputBufferPtr
-	__xmlParserInputBufferCreateFilename(const char *URI,
-										xmlCharEncoding enc);
-
-#ifdef LIBXML_OUTPUT_ENABLED
-/*
- * Interfaces for output
- */
-XMLPUBFUN void XMLCALL	
-	xmlCleanupOutputCallbacks		(void);
-XMLPUBFUN void XMLCALL	
-	xmlRegisterDefaultOutputCallbacks(void);
-XMLPUBFUN xmlOutputBufferPtr XMLCALL
-	xmlAllocOutputBuffer		(xmlCharEncodingHandlerPtr encoder);
-
-XMLPUBFUN xmlOutputBufferPtr XMLCALL
-	xmlOutputBufferCreateFilename	(const char *URI,
-					 xmlCharEncodingHandlerPtr encoder,
-					 int compression);
-
-XMLPUBFUN xmlOutputBufferPtr XMLCALL
-	xmlOutputBufferCreateFile	(FILE *file,
-					 xmlCharEncodingHandlerPtr encoder);
-
-XMLPUBFUN xmlOutputBufferPtr XMLCALL
-	xmlOutputBufferCreateBuffer	(xmlBufferPtr buffer,
-					 xmlCharEncodingHandlerPtr encoder);
-
-XMLPUBFUN xmlOutputBufferPtr XMLCALL
-	xmlOutputBufferCreateFd		(int fd,
-					 xmlCharEncodingHandlerPtr encoder);
-
-XMLPUBFUN xmlOutputBufferPtr XMLCALL
-	xmlOutputBufferCreateIO		(xmlOutputWriteCallback   iowrite,
-					 xmlOutputCloseCallback  ioclose,
-					 void *ioctx,
-					 xmlCharEncodingHandlerPtr encoder);
-
-XMLPUBFUN int XMLCALL	
-	xmlOutputBufferWrite		(xmlOutputBufferPtr out,
-					 int len,
-					 const char *buf);
-XMLPUBFUN int XMLCALL	
-	xmlOutputBufferWriteString	(xmlOutputBufferPtr out,
-					 const char *str);
-XMLPUBFUN int XMLCALL	
-	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out,
-					 const xmlChar *str,
-					 xmlCharEncodingOutputFunc escaping);
-
-XMLPUBFUN int XMLCALL	
-	xmlOutputBufferFlush		(xmlOutputBufferPtr out);
-XMLPUBFUN int XMLCALL	
-	xmlOutputBufferClose		(xmlOutputBufferPtr out);
-
-XMLPUBFUN int XMLCALL     
-	xmlRegisterOutputCallbacks	(xmlOutputMatchCallback matchFunc,
-					 xmlOutputOpenCallback openFunc,
-					 xmlOutputWriteCallback writeFunc,
-					 xmlOutputCloseCallback closeFunc);
-
-xmlOutputBufferPtr
-	__xmlOutputBufferCreateFilename(const char *URI,
-                              xmlCharEncodingHandlerPtr encoder,
-                              int compression);
-
-#ifdef LIBXML_HTTP_ENABLED
-/*  This function only exists if HTTP support built into the library  */
-XMLPUBFUN void XMLCALL	
-	xmlRegisterHTTPPostCallbacks	(void );
-#endif /* LIBXML_HTTP_ENABLED */
-	
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-XMLPUBFUN xmlParserInputPtr XMLCALL
-	xmlCheckHTTPInput		(xmlParserCtxtPtr ctxt,
-					 xmlParserInputPtr ret);
-
-/*
- * A predefined entity loader disabling network accesses
- */
-XMLPUBFUN xmlParserInputPtr XMLCALL 
-	xmlNoNetExternalEntityLoader	(const char *URL,
-					 const char *ID,
-					 xmlParserCtxtPtr ctxt);
-
-/* 
- * xmlNormalizeWindowsPath is obsolete, don't use it. 
- * Check xmlCanonicPath in uri.h for a better alternative.
- */
-XMLPUBFUN xmlChar * XMLCALL 
-	xmlNormalizeWindowsPath		(const xmlChar *path);
-
-XMLPUBFUN int XMLCALL	
-	xmlCheckFilename		(const char *path);
-/**
- * Default 'file://' protocol callbacks 
- */
-XMLPUBFUN int XMLCALL	
-	xmlFileMatch 			(const char *filename);
-XMLPUBFUN void * XMLCALL	
-	xmlFileOpen 			(const char *filename);
-XMLPUBFUN int XMLCALL	
-	xmlFileRead 			(void * context, 
-					 char * buffer, 
-					 int len);
-XMLPUBFUN int XMLCALL	
-	xmlFileClose 			(void * context);
-
-/**
- * Default 'http://' protocol callbacks 
- */
-#ifdef LIBXML_HTTP_ENABLED
-XMLPUBFUN int XMLCALL	
-	xmlIOHTTPMatch 			(const char *filename);
-XMLPUBFUN void * XMLCALL	
-	xmlIOHTTPOpen 			(const char *filename);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void * XMLCALL	
-	xmlIOHTTPOpenW			(const char * post_uri,
-					 int   compression );
-#endif /* LIBXML_OUTPUT_ENABLED */
-XMLPUBFUN int XMLCALL 	
-	xmlIOHTTPRead			(void * context, 
-					 char * buffer, 
-					 int len);
-XMLPUBFUN int XMLCALL	
-	xmlIOHTTPClose 			(void * context);
-#endif /* LIBXML_HTTP_ENABLED */
-
-/**
- * Default 'ftp://' protocol callbacks 
- */
-#ifdef LIBXML_FTP_ENABLED 
-XMLPUBFUN int XMLCALL	
-	xmlIOFTPMatch 			(const char *filename);
-XMLPUBFUN void * XMLCALL	
-	xmlIOFTPOpen 			(const char *filename);
-XMLPUBFUN int XMLCALL 	
-	xmlIOFTPRead			(void * context, 
-					 char * buffer, 
-					 int len);
-XMLPUBFUN int XMLCALL 	
-	xmlIOFTPClose 			(void * context);
-#endif /* LIBXML_FTP_ENABLED */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __XML_IO_H__ */
diff --git a/interfaces/ext/libxml/xmlautomata.h b/interfaces/ext/libxml/xmlautomata.h
deleted file mode 100644
index f98b55e..0000000
--- a/interfaces/ext/libxml/xmlautomata.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Summary: API to build regexp automata
- * Description: the API to build regexp automata
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_AUTOMATA_H__
-#define __XML_AUTOMATA_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-
-#ifdef LIBXML_REGEXP_ENABLED
-#ifdef LIBXML_AUTOMATA_ENABLED
-#include <libxml/xmlregexp.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlAutomataPtr:
- *
- * A libxml automata description, It can be compiled into a regexp
- */
-typedef struct _xmlAutomata xmlAutomata;
-typedef xmlAutomata *xmlAutomataPtr;
-
-/**
- * xmlAutomataStatePtr:
- *
- * A state int the automata description,
- */
-typedef struct _xmlAutomataState xmlAutomataState;
-typedef xmlAutomataState *xmlAutomataStatePtr;
-
-/*
- * Building API
- */
-XMLPUBFUN xmlAutomataPtr XMLCALL		
-		    xmlNewAutomata		(void);
-XMLPUBFUN void XMLCALL			
-		    xmlFreeAutomata		(xmlAutomataPtr am);
-
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataGetInitState	(xmlAutomataPtr am);
-XMLPUBFUN int XMLCALL			
-		    xmlAutomataSetFinalState	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr state);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewState		(xmlAutomataPtr am);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewTransition	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 const xmlChar *token,
-						 void *data);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewTransition2	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 const xmlChar *token,
-						 const xmlChar *token2,
-						 void *data);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL
-                    xmlAutomataNewNegTrans	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 const xmlChar *token,
-						 const xmlChar *token2,
-						 void *data);
-
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewCountTrans	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 const xmlChar *token,
-						 int min,
-						 int max,
-						 void *data);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewCountTrans2	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 const xmlChar *token,
-						 const xmlChar *token2,
-						 int min,
-						 int max,
-						 void *data);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewOnceTrans	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 const xmlChar *token,
-						 int min,
-						 int max,
-						 void *data);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL
-		    xmlAutomataNewOnceTrans2	(xmlAutomataPtr am, 
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to, 
-						 const xmlChar *token,
-						 const xmlChar *token2,
-						 int min, 
-						 int max, 
-						 void *data);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewAllTrans	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 int lax);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewEpsilon	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewCountedTrans	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 int counter);
-XMLPUBFUN xmlAutomataStatePtr XMLCALL	
-		    xmlAutomataNewCounterTrans	(xmlAutomataPtr am,
-						 xmlAutomataStatePtr from,
-						 xmlAutomataStatePtr to,
-						 int counter);
-XMLPUBFUN int XMLCALL			
-		    xmlAutomataNewCounter	(xmlAutomataPtr am,
-						 int min,
-						 int max);
-
-XMLPUBFUN xmlRegexpPtr XMLCALL		
-		    xmlAutomataCompile		(xmlAutomataPtr am);
-XMLPUBFUN int XMLCALL	    		
-		    xmlAutomataIsDeterminist	(xmlAutomataPtr am);
-
-#ifdef __cplusplus
-}
-#endif 
-
-#endif /* LIBXML_AUTOMATA_ENABLED */
-#endif /* LIBXML_REGEXP_ENABLED */
-
-#endif /* __XML_AUTOMATA_H__ */
diff --git a/interfaces/ext/libxml/xmlerror.h b/interfaces/ext/libxml/xmlerror.h
deleted file mode 100644
index 7cce9c3..0000000
--- a/interfaces/ext/libxml/xmlerror.h
+++ /dev/null
@@ -1,944 +0,0 @@
-/*
- * Summary: error handling
- * Description: the API used to report errors
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#include <libxml/parser.h>
-
-#ifndef __XML_ERROR_H__
-#define __XML_ERROR_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlErrorLevel:
- *
- * Indicates the level of an error
- */
-typedef enum {
-    XML_ERR_NONE = 0,
-    XML_ERR_WARNING = 1,	/* A simple warning */
-    XML_ERR_ERROR = 2,		/* A recoverable error */
-    XML_ERR_FATAL = 3		/* A fatal error */
-} xmlErrorLevel;
-
-/**
- * xmlErrorDomain:
- *
- * Indicates where an error may have come from
- */
-typedef enum {
-    XML_FROM_NONE = 0,
-    XML_FROM_PARSER,	/* The XML parser */
-    XML_FROM_TREE,	/* The tree module */
-    XML_FROM_NAMESPACE,	/* The XML Namespace module */
-    XML_FROM_DTD,	/* The XML DTD validation with parser context*/
-    XML_FROM_HTML,	/* The HTML parser */
-    XML_FROM_MEMORY,	/* The memory allocator */
-    XML_FROM_OUTPUT,	/* The serialization code */
-    XML_FROM_IO,	/* The Input/Output stack */
-    XML_FROM_FTP,	/* The FTP module */
-    XML_FROM_HTTP,	/* The HTTP module */
-    XML_FROM_XINCLUDE,	/* The XInclude processing */
-    XML_FROM_XPATH,	/* The XPath module */
-    XML_FROM_XPOINTER,	/* The XPointer module */
-    XML_FROM_REGEXP,	/* The regular expressions module */
-    XML_FROM_DATATYPE,	/* The W3C XML Schemas Datatype module */
-    XML_FROM_SCHEMASP,	/* The W3C XML Schemas parser module */
-    XML_FROM_SCHEMASV,	/* The W3C XML Schemas validation module */
-    XML_FROM_RELAXNGP,	/* The Relax-NG parser module */
-    XML_FROM_RELAXNGV,	/* The Relax-NG validator module */
-    XML_FROM_CATALOG,	/* The Catalog module */
-    XML_FROM_C14N,	/* The Canonicalization module */
-    XML_FROM_XSLT,	/* The XSLT engine from libxslt */
-    XML_FROM_VALID,	/* The XML DTD validation with valid context */
-    XML_FROM_CHECK,	/* The error checking module */
-    XML_FROM_WRITER,	/* The xmlwriter module */
-    XML_FROM_MODULE,	/* The dynamically loaded module module*/
-    XML_FROM_I18N,	/* The module handling character conversion */
-    XML_FROM_SCHEMATRONV	/* The Schematron validator module */
-} xmlErrorDomain;
-
-/**
- * xmlError:
- *
- * An XML Error instance.
- */
-
-typedef struct _xmlError xmlError;
-typedef xmlError *xmlErrorPtr;
-struct _xmlError {
-    int		domain;	/* What part of the library raised this error */
-    int		code;	/* The error code, e.g. an xmlParserError */
-    char       *message;/* human-readable informative error message */
-    xmlErrorLevel level;/* how consequent is the error */
-    char       *file;	/* the filename */
-    int		line;	/* the line number if available */
-    char       *str1;	/* extra string information */
-    char       *str2;	/* extra string information */
-    char       *str3;	/* extra string information */
-    int		int1;	/* extra number information */
-    int		int2;	/* column number of the error or 0 if N/A (todo: rename this field when we would break ABI) */
-    void       *ctxt;   /* the parser context if available */
-    void       *node;   /* the node in the tree */
-};
-
-/**
- * xmlParserError:
- *
- * This is an error that the XML (or HTML) parser can generate
- */
-typedef enum {
-    XML_ERR_OK = 0,
-    XML_ERR_INTERNAL_ERROR, /* 1 */
-    XML_ERR_NO_MEMORY, /* 2 */
-    XML_ERR_DOCUMENT_START, /* 3 */
-    XML_ERR_DOCUMENT_EMPTY, /* 4 */
-    XML_ERR_DOCUMENT_END, /* 5 */
-    XML_ERR_INVALID_HEX_CHARREF, /* 6 */
-    XML_ERR_INVALID_DEC_CHARREF, /* 7 */
-    XML_ERR_INVALID_CHARREF, /* 8 */
-    XML_ERR_INVALID_CHAR, /* 9 */
-    XML_ERR_CHARREF_AT_EOF, /* 10 */
-    XML_ERR_CHARREF_IN_PROLOG, /* 11 */
-    XML_ERR_CHARREF_IN_EPILOG, /* 12 */
-    XML_ERR_CHARREF_IN_DTD, /* 13 */
-    XML_ERR_ENTITYREF_AT_EOF, /* 14 */
-    XML_ERR_ENTITYREF_IN_PROLOG, /* 15 */
-    XML_ERR_ENTITYREF_IN_EPILOG, /* 16 */
-    XML_ERR_ENTITYREF_IN_DTD, /* 17 */
-    XML_ERR_PEREF_AT_EOF, /* 18 */
-    XML_ERR_PEREF_IN_PROLOG, /* 19 */
-    XML_ERR_PEREF_IN_EPILOG, /* 20 */
-    XML_ERR_PEREF_IN_INT_SUBSET, /* 21 */
-    XML_ERR_ENTITYREF_NO_NAME, /* 22 */
-    XML_ERR_ENTITYREF_SEMICOL_MISSING, /* 23 */
-    XML_ERR_PEREF_NO_NAME, /* 24 */
-    XML_ERR_PEREF_SEMICOL_MISSING, /* 25 */
-    XML_ERR_UNDECLARED_ENTITY, /* 26 */
-    XML_WAR_UNDECLARED_ENTITY, /* 27 */
-    XML_ERR_UNPARSED_ENTITY, /* 28 */
-    XML_ERR_ENTITY_IS_EXTERNAL, /* 29 */
-    XML_ERR_ENTITY_IS_PARAMETER, /* 30 */
-    XML_ERR_UNKNOWN_ENCODING, /* 31 */
-    XML_ERR_UNSUPPORTED_ENCODING, /* 32 */
-    XML_ERR_STRING_NOT_STARTED, /* 33 */
-    XML_ERR_STRING_NOT_CLOSED, /* 34 */
-    XML_ERR_NS_DECL_ERROR, /* 35 */
-    XML_ERR_ENTITY_NOT_STARTED, /* 36 */
-    XML_ERR_ENTITY_NOT_FINISHED, /* 37 */
-    XML_ERR_LT_IN_ATTRIBUTE, /* 38 */
-    XML_ERR_ATTRIBUTE_NOT_STARTED, /* 39 */
-    XML_ERR_ATTRIBUTE_NOT_FINISHED, /* 40 */
-    XML_ERR_ATTRIBUTE_WITHOUT_VALUE, /* 41 */
-    XML_ERR_ATTRIBUTE_REDEFINED, /* 42 */
-    XML_ERR_LITERAL_NOT_STARTED, /* 43 */
-    XML_ERR_LITERAL_NOT_FINISHED, /* 44 */
-    XML_ERR_COMMENT_NOT_FINISHED, /* 45 */
-    XML_ERR_PI_NOT_STARTED, /* 46 */
-    XML_ERR_PI_NOT_FINISHED, /* 47 */
-    XML_ERR_NOTATION_NOT_STARTED, /* 48 */
-    XML_ERR_NOTATION_NOT_FINISHED, /* 49 */
-    XML_ERR_ATTLIST_NOT_STARTED, /* 50 */
-    XML_ERR_ATTLIST_NOT_FINISHED, /* 51 */
-    XML_ERR_MIXED_NOT_STARTED, /* 52 */
-    XML_ERR_MIXED_NOT_FINISHED, /* 53 */
-    XML_ERR_ELEMCONTENT_NOT_STARTED, /* 54 */
-    XML_ERR_ELEMCONTENT_NOT_FINISHED, /* 55 */
-    XML_ERR_XMLDECL_NOT_STARTED, /* 56 */
-    XML_ERR_XMLDECL_NOT_FINISHED, /* 57 */
-    XML_ERR_CONDSEC_NOT_STARTED, /* 58 */
-    XML_ERR_CONDSEC_NOT_FINISHED, /* 59 */
-    XML_ERR_EXT_SUBSET_NOT_FINISHED, /* 60 */
-    XML_ERR_DOCTYPE_NOT_FINISHED, /* 61 */
-    XML_ERR_MISPLACED_CDATA_END, /* 62 */
-    XML_ERR_CDATA_NOT_FINISHED, /* 63 */
-    XML_ERR_RESERVED_XML_NAME, /* 64 */
-    XML_ERR_SPACE_REQUIRED, /* 65 */
-    XML_ERR_SEPARATOR_REQUIRED, /* 66 */
-    XML_ERR_NMTOKEN_REQUIRED, /* 67 */
-    XML_ERR_NAME_REQUIRED, /* 68 */
-    XML_ERR_PCDATA_REQUIRED, /* 69 */
-    XML_ERR_URI_REQUIRED, /* 70 */
-    XML_ERR_PUBID_REQUIRED, /* 71 */
-    XML_ERR_LT_REQUIRED, /* 72 */
-    XML_ERR_GT_REQUIRED, /* 73 */
-    XML_ERR_LTSLASH_REQUIRED, /* 74 */
-    XML_ERR_EQUAL_REQUIRED, /* 75 */
-    XML_ERR_TAG_NAME_MISMATCH, /* 76 */
-    XML_ERR_TAG_NOT_FINISHED, /* 77 */
-    XML_ERR_STANDALONE_VALUE, /* 78 */
-    XML_ERR_ENCODING_NAME, /* 79 */
-    XML_ERR_HYPHEN_IN_COMMENT, /* 80 */
-    XML_ERR_INVALID_ENCODING, /* 81 */
-    XML_ERR_EXT_ENTITY_STANDALONE, /* 82 */
-    XML_ERR_CONDSEC_INVALID, /* 83 */
-    XML_ERR_VALUE_REQUIRED, /* 84 */
-    XML_ERR_NOT_WELL_BALANCED, /* 85 */
-    XML_ERR_EXTRA_CONTENT, /* 86 */
-    XML_ERR_ENTITY_CHAR_ERROR, /* 87 */
-    XML_ERR_ENTITY_PE_INTERNAL, /* 88 */
-    XML_ERR_ENTITY_LOOP, /* 89 */
-    XML_ERR_ENTITY_BOUNDARY, /* 90 */
-    XML_ERR_INVALID_URI, /* 91 */
-    XML_ERR_URI_FRAGMENT, /* 92 */
-    XML_WAR_CATALOG_PI, /* 93 */
-    XML_ERR_NO_DTD, /* 94 */
-    XML_ERR_CONDSEC_INVALID_KEYWORD, /* 95 */
-    XML_ERR_VERSION_MISSING, /* 96 */
-    XML_WAR_UNKNOWN_VERSION, /* 97 */
-    XML_WAR_LANG_VALUE, /* 98 */
-    XML_WAR_NS_URI, /* 99 */
-    XML_WAR_NS_URI_RELATIVE, /* 100 */
-    XML_ERR_MISSING_ENCODING, /* 101 */
-    XML_WAR_SPACE_VALUE, /* 102 */
-    XML_ERR_NOT_STANDALONE, /* 103 */
-    XML_ERR_ENTITY_PROCESSING, /* 104 */
-    XML_ERR_NOTATION_PROCESSING, /* 105 */
-    XML_WAR_NS_COLUMN, /* 106 */
-    XML_WAR_ENTITY_REDEFINED, /* 107 */
-    XML_ERR_UNKNOWN_VERSION, /* 108 */
-    XML_ERR_VERSION_MISMATCH, /* 109 */
-    XML_NS_ERR_XML_NAMESPACE = 200,
-    XML_NS_ERR_UNDEFINED_NAMESPACE, /* 201 */
-    XML_NS_ERR_QNAME, /* 202 */
-    XML_NS_ERR_ATTRIBUTE_REDEFINED, /* 203 */
-    XML_NS_ERR_EMPTY, /* 204 */
-    XML_NS_ERR_COLON, /* 205 */
-    XML_DTD_ATTRIBUTE_DEFAULT = 500,
-    XML_DTD_ATTRIBUTE_REDEFINED, /* 501 */
-    XML_DTD_ATTRIBUTE_VALUE, /* 502 */
-    XML_DTD_CONTENT_ERROR, /* 503 */
-    XML_DTD_CONTENT_MODEL, /* 504 */
-    XML_DTD_CONTENT_NOT_DETERMINIST, /* 505 */
-    XML_DTD_DIFFERENT_PREFIX, /* 506 */
-    XML_DTD_ELEM_DEFAULT_NAMESPACE, /* 507 */
-    XML_DTD_ELEM_NAMESPACE, /* 508 */
-    XML_DTD_ELEM_REDEFINED, /* 509 */
-    XML_DTD_EMPTY_NOTATION, /* 510 */
-    XML_DTD_ENTITY_TYPE, /* 511 */
-    XML_DTD_ID_FIXED, /* 512 */
-    XML_DTD_ID_REDEFINED, /* 513 */
-    XML_DTD_ID_SUBSET, /* 514 */
-    XML_DTD_INVALID_CHILD, /* 515 */
-    XML_DTD_INVALID_DEFAULT, /* 516 */
-    XML_DTD_LOAD_ERROR, /* 517 */
-    XML_DTD_MISSING_ATTRIBUTE, /* 518 */
-    XML_DTD_MIXED_CORRUPT, /* 519 */
-    XML_DTD_MULTIPLE_ID, /* 520 */
-    XML_DTD_NO_DOC, /* 521 */
-    XML_DTD_NO_DTD, /* 522 */
-    XML_DTD_NO_ELEM_NAME, /* 523 */
-    XML_DTD_NO_PREFIX, /* 524 */
-    XML_DTD_NO_ROOT, /* 525 */
-    XML_DTD_NOTATION_REDEFINED, /* 526 */
-    XML_DTD_NOTATION_VALUE, /* 527 */
-    XML_DTD_NOT_EMPTY, /* 528 */
-    XML_DTD_NOT_PCDATA, /* 529 */
-    XML_DTD_NOT_STANDALONE, /* 530 */
-    XML_DTD_ROOT_NAME, /* 531 */
-    XML_DTD_STANDALONE_WHITE_SPACE, /* 532 */
-    XML_DTD_UNKNOWN_ATTRIBUTE, /* 533 */
-    XML_DTD_UNKNOWN_ELEM, /* 534 */
-    XML_DTD_UNKNOWN_ENTITY, /* 535 */
-    XML_DTD_UNKNOWN_ID, /* 536 */
-    XML_DTD_UNKNOWN_NOTATION, /* 537 */
-    XML_DTD_STANDALONE_DEFAULTED, /* 538 */
-    XML_DTD_XMLID_VALUE, /* 539 */
-    XML_DTD_XMLID_TYPE, /* 540 */
-    XML_DTD_DUP_TOKEN, /* 541 */
-    XML_HTML_STRUCURE_ERROR = 800,
-    XML_HTML_UNKNOWN_TAG, /* 801 */
-    XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000,
-    XML_RNGP_ATTR_CONFLICT, /* 1001 */
-    XML_RNGP_ATTRIBUTE_CHILDREN, /* 1002 */
-    XML_RNGP_ATTRIBUTE_CONTENT, /* 1003 */
-    XML_RNGP_ATTRIBUTE_EMPTY, /* 1004 */
-    XML_RNGP_ATTRIBUTE_NOOP, /* 1005 */
-    XML_RNGP_CHOICE_CONTENT, /* 1006 */
-    XML_RNGP_CHOICE_EMPTY, /* 1007 */
-    XML_RNGP_CREATE_FAILURE, /* 1008 */
-    XML_RNGP_DATA_CONTENT, /* 1009 */
-    XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, /* 1010 */
-    XML_RNGP_DEFINE_CREATE_FAILED, /* 1011 */
-    XML_RNGP_DEFINE_EMPTY, /* 1012 */
-    XML_RNGP_DEFINE_MISSING, /* 1013 */
-    XML_RNGP_DEFINE_NAME_MISSING, /* 1014 */
-    XML_RNGP_ELEM_CONTENT_EMPTY, /* 1015 */
-    XML_RNGP_ELEM_CONTENT_ERROR, /* 1016 */
-    XML_RNGP_ELEMENT_EMPTY, /* 1017 */
-    XML_RNGP_ELEMENT_CONTENT, /* 1018 */
-    XML_RNGP_ELEMENT_NAME, /* 1019 */
-    XML_RNGP_ELEMENT_NO_CONTENT, /* 1020 */
-    XML_RNGP_ELEM_TEXT_CONFLICT, /* 1021 */
-    XML_RNGP_EMPTY, /* 1022 */
-    XML_RNGP_EMPTY_CONSTRUCT, /* 1023 */
-    XML_RNGP_EMPTY_CONTENT, /* 1024 */
-    XML_RNGP_EMPTY_NOT_EMPTY, /* 1025 */
-    XML_RNGP_ERROR_TYPE_LIB, /* 1026 */
-    XML_RNGP_EXCEPT_EMPTY, /* 1027 */
-    XML_RNGP_EXCEPT_MISSING, /* 1028 */
-    XML_RNGP_EXCEPT_MULTIPLE, /* 1029 */
-    XML_RNGP_EXCEPT_NO_CONTENT, /* 1030 */
-    XML_RNGP_EXTERNALREF_EMTPY, /* 1031 */
-    XML_RNGP_EXTERNAL_REF_FAILURE, /* 1032 */
-    XML_RNGP_EXTERNALREF_RECURSE, /* 1033 */
-    XML_RNGP_FORBIDDEN_ATTRIBUTE, /* 1034 */
-    XML_RNGP_FOREIGN_ELEMENT, /* 1035 */
-    XML_RNGP_GRAMMAR_CONTENT, /* 1036 */
-    XML_RNGP_GRAMMAR_EMPTY, /* 1037 */
-    XML_RNGP_GRAMMAR_MISSING, /* 1038 */
-    XML_RNGP_GRAMMAR_NO_START, /* 1039 */
-    XML_RNGP_GROUP_ATTR_CONFLICT, /* 1040 */
-    XML_RNGP_HREF_ERROR, /* 1041 */
-    XML_RNGP_INCLUDE_EMPTY, /* 1042 */
-    XML_RNGP_INCLUDE_FAILURE, /* 1043 */
-    XML_RNGP_INCLUDE_RECURSE, /* 1044 */
-    XML_RNGP_INTERLEAVE_ADD, /* 1045 */
-    XML_RNGP_INTERLEAVE_CREATE_FAILED, /* 1046 */
-    XML_RNGP_INTERLEAVE_EMPTY, /* 1047 */
-    XML_RNGP_INTERLEAVE_NO_CONTENT, /* 1048 */
-    XML_RNGP_INVALID_DEFINE_NAME, /* 1049 */
-    XML_RNGP_INVALID_URI, /* 1050 */
-    XML_RNGP_INVALID_VALUE, /* 1051 */
-    XML_RNGP_MISSING_HREF, /* 1052 */
-    XML_RNGP_NAME_MISSING, /* 1053 */
-    XML_RNGP_NEED_COMBINE, /* 1054 */
-    XML_RNGP_NOTALLOWED_NOT_EMPTY, /* 1055 */
-    XML_RNGP_NSNAME_ATTR_ANCESTOR, /* 1056 */
-    XML_RNGP_NSNAME_NO_NS, /* 1057 */
-    XML_RNGP_PARAM_FORBIDDEN, /* 1058 */
-    XML_RNGP_PARAM_NAME_MISSING, /* 1059 */
-    XML_RNGP_PARENTREF_CREATE_FAILED, /* 1060 */
-    XML_RNGP_PARENTREF_NAME_INVALID, /* 1061 */
-    XML_RNGP_PARENTREF_NO_NAME, /* 1062 */
-    XML_RNGP_PARENTREF_NO_PARENT, /* 1063 */
-    XML_RNGP_PARENTREF_NOT_EMPTY, /* 1064 */
-    XML_RNGP_PARSE_ERROR, /* 1065 */
-    XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME, /* 1066 */
-    XML_RNGP_PAT_ATTR_ATTR, /* 1067 */
-    XML_RNGP_PAT_ATTR_ELEM, /* 1068 */
-    XML_RNGP_PAT_DATA_EXCEPT_ATTR, /* 1069 */
-    XML_RNGP_PAT_DATA_EXCEPT_ELEM, /* 1070 */
-    XML_RNGP_PAT_DATA_EXCEPT_EMPTY, /* 1071 */
-    XML_RNGP_PAT_DATA_EXCEPT_GROUP, /* 1072 */
-    XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, /* 1073 */
-    XML_RNGP_PAT_DATA_EXCEPT_LIST, /* 1074 */
-    XML_RNGP_PAT_DATA_EXCEPT_ONEMORE, /* 1075 */
-    XML_RNGP_PAT_DATA_EXCEPT_REF, /* 1076 */
-    XML_RNGP_PAT_DATA_EXCEPT_TEXT, /* 1077 */
-    XML_RNGP_PAT_LIST_ATTR, /* 1078 */
-    XML_RNGP_PAT_LIST_ELEM, /* 1079 */
-    XML_RNGP_PAT_LIST_INTERLEAVE, /* 1080 */
-    XML_RNGP_PAT_LIST_LIST, /* 1081 */
-    XML_RNGP_PAT_LIST_REF, /* 1082 */
-    XML_RNGP_PAT_LIST_TEXT, /* 1083 */
-    XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME, /* 1084 */
-    XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME, /* 1085 */
-    XML_RNGP_PAT_ONEMORE_GROUP_ATTR, /* 1086 */
-    XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR, /* 1087 */
-    XML_RNGP_PAT_START_ATTR, /* 1088 */
-    XML_RNGP_PAT_START_DATA, /* 1089 */
-    XML_RNGP_PAT_START_EMPTY, /* 1090 */
-    XML_RNGP_PAT_START_GROUP, /* 1091 */
-    XML_RNGP_PAT_START_INTERLEAVE, /* 1092 */
-    XML_RNGP_PAT_START_LIST, /* 1093 */
-    XML_RNGP_PAT_START_ONEMORE, /* 1094 */
-    XML_RNGP_PAT_START_TEXT, /* 1095 */
-    XML_RNGP_PAT_START_VALUE, /* 1096 */
-    XML_RNGP_PREFIX_UNDEFINED, /* 1097 */
-    XML_RNGP_REF_CREATE_FAILED, /* 1098 */
-    XML_RNGP_REF_CYCLE, /* 1099 */
-    XML_RNGP_REF_NAME_INVALID, /* 1100 */
-    XML_RNGP_REF_NO_DEF, /* 1101 */
-    XML_RNGP_REF_NO_NAME, /* 1102 */
-    XML_RNGP_REF_NOT_EMPTY, /* 1103 */
-    XML_RNGP_START_CHOICE_AND_INTERLEAVE, /* 1104 */
-    XML_RNGP_START_CONTENT, /* 1105 */
-    XML_RNGP_START_EMPTY, /* 1106 */
-    XML_RNGP_START_MISSING, /* 1107 */
-    XML_RNGP_TEXT_EXPECTED, /* 1108 */
-    XML_RNGP_TEXT_HAS_CHILD, /* 1109 */
-    XML_RNGP_TYPE_MISSING, /* 1110 */
-    XML_RNGP_TYPE_NOT_FOUND, /* 1111 */
-    XML_RNGP_TYPE_VALUE, /* 1112 */
-    XML_RNGP_UNKNOWN_ATTRIBUTE, /* 1113 */
-    XML_RNGP_UNKNOWN_COMBINE, /* 1114 */
-    XML_RNGP_UNKNOWN_CONSTRUCT, /* 1115 */
-    XML_RNGP_UNKNOWN_TYPE_LIB, /* 1116 */
-    XML_RNGP_URI_FRAGMENT, /* 1117 */
-    XML_RNGP_URI_NOT_ABSOLUTE, /* 1118 */
-    XML_RNGP_VALUE_EMPTY, /* 1119 */
-    XML_RNGP_VALUE_NO_CONTENT, /* 1120 */
-    XML_RNGP_XMLNS_NAME, /* 1121 */
-    XML_RNGP_XML_NS, /* 1122 */
-    XML_XPATH_EXPRESSION_OK = 1200,
-    XML_XPATH_NUMBER_ERROR, /* 1201 */
-    XML_XPATH_UNFINISHED_LITERAL_ERROR, /* 1202 */
-    XML_XPATH_START_LITERAL_ERROR, /* 1203 */
-    XML_XPATH_VARIABLE_REF_ERROR, /* 1204 */
-    XML_XPATH_UNDEF_VARIABLE_ERROR, /* 1205 */
-    XML_XPATH_INVALID_PREDICATE_ERROR, /* 1206 */
-    XML_XPATH_EXPR_ERROR, /* 1207 */
-    XML_XPATH_UNCLOSED_ERROR, /* 1208 */
-    XML_XPATH_UNKNOWN_FUNC_ERROR, /* 1209 */
-    XML_XPATH_INVALID_OPERAND, /* 1210 */
-    XML_XPATH_INVALID_TYPE, /* 1211 */
-    XML_XPATH_INVALID_ARITY, /* 1212 */
-    XML_XPATH_INVALID_CTXT_SIZE, /* 1213 */
-    XML_XPATH_INVALID_CTXT_POSITION, /* 1214 */
-    XML_XPATH_MEMORY_ERROR, /* 1215 */
-    XML_XPTR_SYNTAX_ERROR, /* 1216 */
-    XML_XPTR_RESOURCE_ERROR, /* 1217 */
-    XML_XPTR_SUB_RESOURCE_ERROR, /* 1218 */
-    XML_XPATH_UNDEF_PREFIX_ERROR, /* 1219 */
-    XML_XPATH_ENCODING_ERROR, /* 1220 */
-    XML_XPATH_INVALID_CHAR_ERROR, /* 1221 */
-    XML_TREE_INVALID_HEX = 1300,
-    XML_TREE_INVALID_DEC, /* 1301 */
-    XML_TREE_UNTERMINATED_ENTITY, /* 1302 */
-    XML_TREE_NOT_UTF8, /* 1303 */
-    XML_SAVE_NOT_UTF8 = 1400,
-    XML_SAVE_CHAR_INVALID, /* 1401 */
-    XML_SAVE_NO_DOCTYPE, /* 1402 */
-    XML_SAVE_UNKNOWN_ENCODING, /* 1403 */
-    XML_REGEXP_COMPILE_ERROR = 1450,
-    XML_IO_UNKNOWN = 1500,
-    XML_IO_EACCES, /* 1501 */
-    XML_IO_EAGAIN, /* 1502 */
-    XML_IO_EBADF, /* 1503 */
-    XML_IO_EBADMSG, /* 1504 */
-    XML_IO_EBUSY, /* 1505 */
-    XML_IO_ECANCELED, /* 1506 */
-    XML_IO_ECHILD, /* 1507 */
-    XML_IO_EDEADLK, /* 1508 */
-    XML_IO_EDOM, /* 1509 */
-    XML_IO_EEXIST, /* 1510 */
-    XML_IO_EFAULT, /* 1511 */
-    XML_IO_EFBIG, /* 1512 */
-    XML_IO_EINPROGRESS, /* 1513 */
-    XML_IO_EINTR, /* 1514 */
-    XML_IO_EINVAL, /* 1515 */
-    XML_IO_EIO, /* 1516 */
-    XML_IO_EISDIR, /* 1517 */
-    XML_IO_EMFILE, /* 1518 */
-    XML_IO_EMLINK, /* 1519 */
-    XML_IO_EMSGSIZE, /* 1520 */
-    XML_IO_ENAMETOOLONG, /* 1521 */
-    XML_IO_ENFILE, /* 1522 */
-    XML_IO_ENODEV, /* 1523 */
-    XML_IO_ENOENT, /* 1524 */
-    XML_IO_ENOEXEC, /* 1525 */
-    XML_IO_ENOLCK, /* 1526 */
-    XML_IO_ENOMEM, /* 1527 */
-    XML_IO_ENOSPC, /* 1528 */
-    XML_IO_ENOSYS, /* 1529 */
-    XML_IO_ENOTDIR, /* 1530 */
-    XML_IO_ENOTEMPTY, /* 1531 */
-    XML_IO_ENOTSUP, /* 1532 */
-    XML_IO_ENOTTY, /* 1533 */
-    XML_IO_ENXIO, /* 1534 */
-    XML_IO_EPERM, /* 1535 */
-    XML_IO_EPIPE, /* 1536 */
-    XML_IO_ERANGE, /* 1537 */
-    XML_IO_EROFS, /* 1538 */
-    XML_IO_ESPIPE, /* 1539 */
-    XML_IO_ESRCH, /* 1540 */
-    XML_IO_ETIMEDOUT, /* 1541 */
-    XML_IO_EXDEV, /* 1542 */
-    XML_IO_NETWORK_ATTEMPT, /* 1543 */
-    XML_IO_ENCODER, /* 1544 */
-    XML_IO_FLUSH, /* 1545 */
-    XML_IO_WRITE, /* 1546 */
-    XML_IO_NO_INPUT, /* 1547 */
-    XML_IO_BUFFER_FULL, /* 1548 */
-    XML_IO_LOAD_ERROR, /* 1549 */
-    XML_IO_ENOTSOCK, /* 1550 */
-    XML_IO_EISCONN, /* 1551 */
-    XML_IO_ECONNREFUSED, /* 1552 */
-    XML_IO_ENETUNREACH, /* 1553 */
-    XML_IO_EADDRINUSE, /* 1554 */
-    XML_IO_EALREADY, /* 1555 */
-    XML_IO_EAFNOSUPPORT, /* 1556 */
-    XML_XINCLUDE_RECURSION=1600,
-    XML_XINCLUDE_PARSE_VALUE, /* 1601 */
-    XML_XINCLUDE_ENTITY_DEF_MISMATCH, /* 1602 */
-    XML_XINCLUDE_NO_HREF, /* 1603 */
-    XML_XINCLUDE_NO_FALLBACK, /* 1604 */
-    XML_XINCLUDE_HREF_URI, /* 1605 */
-    XML_XINCLUDE_TEXT_FRAGMENT, /* 1606 */
-    XML_XINCLUDE_TEXT_DOCUMENT, /* 1607 */
-    XML_XINCLUDE_INVALID_CHAR, /* 1608 */
-    XML_XINCLUDE_BUILD_FAILED, /* 1609 */
-    XML_XINCLUDE_UNKNOWN_ENCODING, /* 1610 */
-    XML_XINCLUDE_MULTIPLE_ROOT, /* 1611 */
-    XML_XINCLUDE_XPTR_FAILED, /* 1612 */
-    XML_XINCLUDE_XPTR_RESULT, /* 1613 */
-    XML_XINCLUDE_INCLUDE_IN_INCLUDE, /* 1614 */
-    XML_XINCLUDE_FALLBACKS_IN_INCLUDE, /* 1615 */
-    XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE, /* 1616 */
-    XML_XINCLUDE_DEPRECATED_NS, /* 1617 */
-    XML_XINCLUDE_FRAGMENT_ID, /* 1618 */
-    XML_CATALOG_MISSING_ATTR = 1650,
-    XML_CATALOG_ENTRY_BROKEN, /* 1651 */
-    XML_CATALOG_PREFER_VALUE, /* 1652 */
-    XML_CATALOG_NOT_CATALOG, /* 1653 */
-    XML_CATALOG_RECURSION, /* 1654 */
-    XML_SCHEMAP_PREFIX_UNDEFINED = 1700,
-    XML_SCHEMAP_ATTRFORMDEFAULT_VALUE, /* 1701 */
-    XML_SCHEMAP_ATTRGRP_NONAME_NOREF, /* 1702 */
-    XML_SCHEMAP_ATTR_NONAME_NOREF, /* 1703 */
-    XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF, /* 1704 */
-    XML_SCHEMAP_ELEMFORMDEFAULT_VALUE, /* 1705 */
-    XML_SCHEMAP_ELEM_NONAME_NOREF, /* 1706 */
-    XML_SCHEMAP_EXTENSION_NO_BASE, /* 1707 */
-    XML_SCHEMAP_FACET_NO_VALUE, /* 1708 */
-    XML_SCHEMAP_FAILED_BUILD_IMPORT, /* 1709 */
-    XML_SCHEMAP_GROUP_NONAME_NOREF, /* 1710 */
-    XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI, /* 1711 */
-    XML_SCHEMAP_IMPORT_REDEFINE_NSNAME, /* 1712 */
-    XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI, /* 1713 */
-    XML_SCHEMAP_INVALID_BOOLEAN, /* 1714 */
-    XML_SCHEMAP_INVALID_ENUM, /* 1715 */
-    XML_SCHEMAP_INVALID_FACET, /* 1716 */
-    XML_SCHEMAP_INVALID_FACET_VALUE, /* 1717 */
-    XML_SCHEMAP_INVALID_MAXOCCURS, /* 1718 */
-    XML_SCHEMAP_INVALID_MINOCCURS, /* 1719 */
-    XML_SCHEMAP_INVALID_REF_AND_SUBTYPE, /* 1720 */
-    XML_SCHEMAP_INVALID_WHITE_SPACE, /* 1721 */
-    XML_SCHEMAP_NOATTR_NOREF, /* 1722 */
-    XML_SCHEMAP_NOTATION_NO_NAME, /* 1723 */
-    XML_SCHEMAP_NOTYPE_NOREF, /* 1724 */
-    XML_SCHEMAP_REF_AND_SUBTYPE, /* 1725 */
-    XML_SCHEMAP_RESTRICTION_NONAME_NOREF, /* 1726 */
-    XML_SCHEMAP_SIMPLETYPE_NONAME, /* 1727 */
-    XML_SCHEMAP_TYPE_AND_SUBTYPE, /* 1728 */
-    XML_SCHEMAP_UNKNOWN_ALL_CHILD, /* 1729 */
-    XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD, /* 1730 */
-    XML_SCHEMAP_UNKNOWN_ATTR_CHILD, /* 1731 */
-    XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD, /* 1732 */
-    XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP, /* 1733 */
-    XML_SCHEMAP_UNKNOWN_BASE_TYPE, /* 1734 */
-    XML_SCHEMAP_UNKNOWN_CHOICE_CHILD, /* 1735 */
-    XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD, /* 1736 */
-    XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD, /* 1737 */
-    XML_SCHEMAP_UNKNOWN_ELEM_CHILD, /* 1738 */
-    XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD, /* 1739 */
-    XML_SCHEMAP_UNKNOWN_FACET_CHILD, /* 1740 */
-    XML_SCHEMAP_UNKNOWN_FACET_TYPE, /* 1741 */
-    XML_SCHEMAP_UNKNOWN_GROUP_CHILD, /* 1742 */
-    XML_SCHEMAP_UNKNOWN_IMPORT_CHILD, /* 1743 */
-    XML_SCHEMAP_UNKNOWN_LIST_CHILD, /* 1744 */
-    XML_SCHEMAP_UNKNOWN_NOTATION_CHILD, /* 1745 */
-    XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD, /* 1746 */
-    XML_SCHEMAP_UNKNOWN_REF, /* 1747 */
-    XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD, /* 1748 */
-    XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD, /* 1749 */
-    XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD, /* 1750 */
-    XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD, /* 1751 */
-    XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD, /* 1752 */
-    XML_SCHEMAP_UNKNOWN_TYPE, /* 1753 */
-    XML_SCHEMAP_UNKNOWN_UNION_CHILD, /* 1754 */
-    XML_SCHEMAP_ELEM_DEFAULT_FIXED, /* 1755 */
-    XML_SCHEMAP_REGEXP_INVALID, /* 1756 */
-    XML_SCHEMAP_FAILED_LOAD, /* 1757 */
-    XML_SCHEMAP_NOTHING_TO_PARSE, /* 1758 */
-    XML_SCHEMAP_NOROOT, /* 1759 */
-    XML_SCHEMAP_REDEFINED_GROUP, /* 1760 */
-    XML_SCHEMAP_REDEFINED_TYPE, /* 1761 */
-    XML_SCHEMAP_REDEFINED_ELEMENT, /* 1762 */
-    XML_SCHEMAP_REDEFINED_ATTRGROUP, /* 1763 */
-    XML_SCHEMAP_REDEFINED_ATTR, /* 1764 */
-    XML_SCHEMAP_REDEFINED_NOTATION, /* 1765 */
-    XML_SCHEMAP_FAILED_PARSE, /* 1766 */
-    XML_SCHEMAP_UNKNOWN_PREFIX, /* 1767 */
-    XML_SCHEMAP_DEF_AND_PREFIX, /* 1768 */
-    XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD, /* 1769 */
-    XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI, /* 1770 */
-    XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI, /* 1771 */
-    XML_SCHEMAP_NOT_SCHEMA, /* 1772 */
-    XML_SCHEMAP_UNKNOWN_MEMBER_TYPE, /* 1773 */
-    XML_SCHEMAP_INVALID_ATTR_USE, /* 1774 */
-    XML_SCHEMAP_RECURSIVE, /* 1775 */
-    XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE, /* 1776 */
-    XML_SCHEMAP_INVALID_ATTR_COMBINATION, /* 1777 */
-    XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION, /* 1778 */
-    XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD, /* 1779 */
-    XML_SCHEMAP_INVALID_ATTR_NAME, /* 1780 */
-    XML_SCHEMAP_REF_AND_CONTENT, /* 1781 */
-    XML_SCHEMAP_CT_PROPS_CORRECT_1, /* 1782 */
-    XML_SCHEMAP_CT_PROPS_CORRECT_2, /* 1783 */
-    XML_SCHEMAP_CT_PROPS_CORRECT_3, /* 1784 */
-    XML_SCHEMAP_CT_PROPS_CORRECT_4, /* 1785 */
-    XML_SCHEMAP_CT_PROPS_CORRECT_5, /* 1786 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1, /* 1787 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1, /* 1788 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2, /* 1789 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2, /* 1790 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3, /* 1791 */
-    XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER, /* 1792 */
-    XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE, /* 1793 */
-    XML_SCHEMAP_UNION_NOT_EXPRESSIBLE, /* 1794 */
-    XML_SCHEMAP_SRC_IMPORT_3_1, /* 1795 */
-    XML_SCHEMAP_SRC_IMPORT_3_2, /* 1796 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1, /* 1797 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2, /* 1798 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3, /* 1799 */
-    XML_SCHEMAP_COS_CT_EXTENDS_1_3, /* 1800 */
-    XML_SCHEMAV_NOROOT = 1801,
-    XML_SCHEMAV_UNDECLAREDELEM, /* 1802 */
-    XML_SCHEMAV_NOTTOPLEVEL, /* 1803 */
-    XML_SCHEMAV_MISSING, /* 1804 */
-    XML_SCHEMAV_WRONGELEM, /* 1805 */
-    XML_SCHEMAV_NOTYPE, /* 1806 */
-    XML_SCHEMAV_NOROLLBACK, /* 1807 */
-    XML_SCHEMAV_ISABSTRACT, /* 1808 */
-    XML_SCHEMAV_NOTEMPTY, /* 1809 */
-    XML_SCHEMAV_ELEMCONT, /* 1810 */
-    XML_SCHEMAV_HAVEDEFAULT, /* 1811 */
-    XML_SCHEMAV_NOTNILLABLE, /* 1812 */
-    XML_SCHEMAV_EXTRACONTENT, /* 1813 */
-    XML_SCHEMAV_INVALIDATTR, /* 1814 */
-    XML_SCHEMAV_INVALIDELEM, /* 1815 */
-    XML_SCHEMAV_NOTDETERMINIST, /* 1816 */
-    XML_SCHEMAV_CONSTRUCT, /* 1817 */
-    XML_SCHEMAV_INTERNAL, /* 1818 */
-    XML_SCHEMAV_NOTSIMPLE, /* 1819 */
-    XML_SCHEMAV_ATTRUNKNOWN, /* 1820 */
-    XML_SCHEMAV_ATTRINVALID, /* 1821 */
-    XML_SCHEMAV_VALUE, /* 1822 */
-    XML_SCHEMAV_FACET, /* 1823 */
-    XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1, /* 1824 */
-    XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2, /* 1825 */
-    XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3, /* 1826 */
-    XML_SCHEMAV_CVC_TYPE_3_1_1, /* 1827 */
-    XML_SCHEMAV_CVC_TYPE_3_1_2, /* 1828 */
-    XML_SCHEMAV_CVC_FACET_VALID, /* 1829 */
-    XML_SCHEMAV_CVC_LENGTH_VALID, /* 1830 */
-    XML_SCHEMAV_CVC_MINLENGTH_VALID, /* 1831 */
-    XML_SCHEMAV_CVC_MAXLENGTH_VALID, /* 1832 */
-    XML_SCHEMAV_CVC_MININCLUSIVE_VALID, /* 1833 */
-    XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID, /* 1834 */
-    XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID, /* 1835 */
-    XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID, /* 1836 */
-    XML_SCHEMAV_CVC_TOTALDIGITS_VALID, /* 1837 */
-    XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID, /* 1838 */
-    XML_SCHEMAV_CVC_PATTERN_VALID, /* 1839 */
-    XML_SCHEMAV_CVC_ENUMERATION_VALID, /* 1840 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1, /* 1841 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2, /* 1842 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3, /* 1843 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4, /* 1844 */
-    XML_SCHEMAV_CVC_ELT_1, /* 1845 */
-    XML_SCHEMAV_CVC_ELT_2, /* 1846 */
-    XML_SCHEMAV_CVC_ELT_3_1, /* 1847 */
-    XML_SCHEMAV_CVC_ELT_3_2_1, /* 1848 */
-    XML_SCHEMAV_CVC_ELT_3_2_2, /* 1849 */
-    XML_SCHEMAV_CVC_ELT_4_1, /* 1850 */
-    XML_SCHEMAV_CVC_ELT_4_2, /* 1851 */
-    XML_SCHEMAV_CVC_ELT_4_3, /* 1852 */
-    XML_SCHEMAV_CVC_ELT_5_1_1, /* 1853 */
-    XML_SCHEMAV_CVC_ELT_5_1_2, /* 1854 */
-    XML_SCHEMAV_CVC_ELT_5_2_1, /* 1855 */
-    XML_SCHEMAV_CVC_ELT_5_2_2_1, /* 1856 */
-    XML_SCHEMAV_CVC_ELT_5_2_2_2_1, /* 1857 */
-    XML_SCHEMAV_CVC_ELT_5_2_2_2_2, /* 1858 */
-    XML_SCHEMAV_CVC_ELT_6, /* 1859 */
-    XML_SCHEMAV_CVC_ELT_7, /* 1860 */
-    XML_SCHEMAV_CVC_ATTRIBUTE_1, /* 1861 */
-    XML_SCHEMAV_CVC_ATTRIBUTE_2, /* 1862 */
-    XML_SCHEMAV_CVC_ATTRIBUTE_3, /* 1863 */
-    XML_SCHEMAV_CVC_ATTRIBUTE_4, /* 1864 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1, /* 1865 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1, /* 1866 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2, /* 1867 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_4, /* 1868 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1, /* 1869 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2, /* 1870 */
-    XML_SCHEMAV_ELEMENT_CONTENT, /* 1871 */
-    XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING, /* 1872 */
-    XML_SCHEMAV_CVC_COMPLEX_TYPE_1, /* 1873 */
-    XML_SCHEMAV_CVC_AU, /* 1874 */
-    XML_SCHEMAV_CVC_TYPE_1, /* 1875 */
-    XML_SCHEMAV_CVC_TYPE_2, /* 1876 */
-    XML_SCHEMAV_CVC_IDC, /* 1877 */
-    XML_SCHEMAV_CVC_WILDCARD, /* 1878 */
-    XML_SCHEMAV_MISC, /* 1879 */
-    XML_XPTR_UNKNOWN_SCHEME = 1900,
-    XML_XPTR_CHILDSEQ_START, /* 1901 */
-    XML_XPTR_EVAL_FAILED, /* 1902 */
-    XML_XPTR_EXTRA_OBJECTS, /* 1903 */
-    XML_C14N_CREATE_CTXT = 1950,
-    XML_C14N_REQUIRES_UTF8, /* 1951 */
-    XML_C14N_CREATE_STACK, /* 1952 */
-    XML_C14N_INVALID_NODE, /* 1953 */
-    XML_C14N_UNKNOW_NODE, /* 1954 */
-    XML_C14N_RELATIVE_NAMESPACE, /* 1955 */
-    XML_FTP_PASV_ANSWER = 2000,
-    XML_FTP_EPSV_ANSWER, /* 2001 */
-    XML_FTP_ACCNT, /* 2002 */
-    XML_FTP_URL_SYNTAX, /* 2003 */
-    XML_HTTP_URL_SYNTAX = 2020,
-    XML_HTTP_USE_IP, /* 2021 */
-    XML_HTTP_UNKNOWN_HOST, /* 2022 */
-    XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000,
-    XML_SCHEMAP_SRC_SIMPLE_TYPE_2, /* 3001 */
-    XML_SCHEMAP_SRC_SIMPLE_TYPE_3, /* 3002 */
-    XML_SCHEMAP_SRC_SIMPLE_TYPE_4, /* 3003 */
-    XML_SCHEMAP_SRC_RESOLVE, /* 3004 */
-    XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE, /* 3005 */
-    XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE, /* 3006 */
-    XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES, /* 3007 */
-    XML_SCHEMAP_ST_PROPS_CORRECT_1, /* 3008 */
-    XML_SCHEMAP_ST_PROPS_CORRECT_2, /* 3009 */
-    XML_SCHEMAP_ST_PROPS_CORRECT_3, /* 3010 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_1_1, /* 3011 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_1_2, /* 3012 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1, /* 3013 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2, /* 3014 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_1, /* 3015 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1, /* 3016 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2, /* 3017 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1, /* 3018 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2, /* 3019 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3, /* 3020 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4, /* 3021 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5, /* 3022 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_1, /* 3023 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1, /* 3024 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2, /* 3025 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2, /* 3026 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1, /* 3027 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3, /* 3028 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4, /* 3029 */
-    XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5, /* 3030 */
-    XML_SCHEMAP_COS_ST_DERIVED_OK_2_1, /* 3031 */
-    XML_SCHEMAP_COS_ST_DERIVED_OK_2_2, /* 3032 */
-    XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED, /* 3033 */
-    XML_SCHEMAP_S4S_ELEM_MISSING, /* 3034 */
-    XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED, /* 3035 */
-    XML_SCHEMAP_S4S_ATTR_MISSING, /* 3036 */
-    XML_SCHEMAP_S4S_ATTR_INVALID_VALUE, /* 3037 */
-    XML_SCHEMAP_SRC_ELEMENT_1, /* 3038 */
-    XML_SCHEMAP_SRC_ELEMENT_2_1, /* 3039 */
-    XML_SCHEMAP_SRC_ELEMENT_2_2, /* 3040 */
-    XML_SCHEMAP_SRC_ELEMENT_3, /* 3041 */
-    XML_SCHEMAP_P_PROPS_CORRECT_1, /* 3042 */
-    XML_SCHEMAP_P_PROPS_CORRECT_2_1, /* 3043 */
-    XML_SCHEMAP_P_PROPS_CORRECT_2_2, /* 3044 */
-    XML_SCHEMAP_E_PROPS_CORRECT_2, /* 3045 */
-    XML_SCHEMAP_E_PROPS_CORRECT_3, /* 3046 */
-    XML_SCHEMAP_E_PROPS_CORRECT_4, /* 3047 */
-    XML_SCHEMAP_E_PROPS_CORRECT_5, /* 3048 */
-    XML_SCHEMAP_E_PROPS_CORRECT_6, /* 3049 */
-    XML_SCHEMAP_SRC_INCLUDE, /* 3050 */
-    XML_SCHEMAP_SRC_ATTRIBUTE_1, /* 3051 */
-    XML_SCHEMAP_SRC_ATTRIBUTE_2, /* 3052 */
-    XML_SCHEMAP_SRC_ATTRIBUTE_3_1, /* 3053 */
-    XML_SCHEMAP_SRC_ATTRIBUTE_3_2, /* 3054 */
-    XML_SCHEMAP_SRC_ATTRIBUTE_4, /* 3055 */
-    XML_SCHEMAP_NO_XMLNS, /* 3056 */
-    XML_SCHEMAP_NO_XSI, /* 3057 */
-    XML_SCHEMAP_COS_VALID_DEFAULT_1, /* 3058 */
-    XML_SCHEMAP_COS_VALID_DEFAULT_2_1, /* 3059 */
-    XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1, /* 3060 */
-    XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2, /* 3061 */
-    XML_SCHEMAP_CVC_SIMPLE_TYPE, /* 3062 */
-    XML_SCHEMAP_COS_CT_EXTENDS_1_1, /* 3063 */
-    XML_SCHEMAP_SRC_IMPORT_1_1, /* 3064 */
-    XML_SCHEMAP_SRC_IMPORT_1_2, /* 3065 */
-    XML_SCHEMAP_SRC_IMPORT_2, /* 3066 */
-    XML_SCHEMAP_SRC_IMPORT_2_1, /* 3067 */
-    XML_SCHEMAP_SRC_IMPORT_2_2, /* 3068 */
-    XML_SCHEMAP_INTERNAL, /* 3069 non-W3C */
-    XML_SCHEMAP_NOT_DETERMINISTIC, /* 3070 non-W3C */
-    XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1, /* 3071 */
-    XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2, /* 3072 */
-    XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3, /* 3073 */
-    XML_SCHEMAP_MG_PROPS_CORRECT_1, /* 3074 */
-    XML_SCHEMAP_MG_PROPS_CORRECT_2, /* 3075 */
-    XML_SCHEMAP_SRC_CT_1, /* 3076 */
-    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3, /* 3077 */
-    XML_SCHEMAP_AU_PROPS_CORRECT_2, /* 3078 */
-    XML_SCHEMAP_A_PROPS_CORRECT_2, /* 3079 */
-    XML_SCHEMAP_C_PROPS_CORRECT, /* 3080 */
-    XML_SCHEMAP_SRC_REDEFINE, /* 3081 */
-    XML_SCHEMAP_SRC_IMPORT, /* 3082 */
-    XML_SCHEMAP_WARN_SKIP_SCHEMA, /* 3083 */
-    XML_SCHEMAP_WARN_UNLOCATED_SCHEMA, /* 3084 */
-    XML_SCHEMAP_WARN_ATTR_REDECL_PROH, /* 3085 */
-    XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH, /* 3085 */
-    XML_SCHEMAP_AG_PROPS_CORRECT, /* 3086 */
-    XML_SCHEMAP_COS_CT_EXTENDS_1_2, /* 3087 */
-    XML_SCHEMAP_AU_PROPS_CORRECT, /* 3088 */
-    XML_SCHEMAP_A_PROPS_CORRECT_3, /* 3089 */
-    XML_SCHEMAP_COS_ALL_LIMITED, /* 3090 */
-    XML_SCHEMATRONV_ASSERT = 4000, /* 4000 */
-    XML_SCHEMATRONV_REPORT,
-    XML_MODULE_OPEN = 4900, /* 4900 */
-    XML_MODULE_CLOSE, /* 4901 */
-    XML_CHECK_FOUND_ELEMENT = 5000,
-    XML_CHECK_FOUND_ATTRIBUTE, /* 5001 */
-    XML_CHECK_FOUND_TEXT, /* 5002 */
-    XML_CHECK_FOUND_CDATA, /* 5003 */
-    XML_CHECK_FOUND_ENTITYREF, /* 5004 */
-    XML_CHECK_FOUND_ENTITY, /* 5005 */
-    XML_CHECK_FOUND_PI, /* 5006 */
-    XML_CHECK_FOUND_COMMENT, /* 5007 */
-    XML_CHECK_FOUND_DOCTYPE, /* 5008 */
-    XML_CHECK_FOUND_FRAGMENT, /* 5009 */
-    XML_CHECK_FOUND_NOTATION, /* 5010 */
-    XML_CHECK_UNKNOWN_NODE, /* 5011 */
-    XML_CHECK_ENTITY_TYPE, /* 5012 */
-    XML_CHECK_NO_PARENT, /* 5013 */
-    XML_CHECK_NO_DOC, /* 5014 */
-    XML_CHECK_NO_NAME, /* 5015 */
-    XML_CHECK_NO_ELEM, /* 5016 */
-    XML_CHECK_WRONG_DOC, /* 5017 */
-    XML_CHECK_NO_PREV, /* 5018 */
-    XML_CHECK_WRONG_PREV, /* 5019 */
-    XML_CHECK_NO_NEXT, /* 5020 */
-    XML_CHECK_WRONG_NEXT, /* 5021 */
-    XML_CHECK_NOT_DTD, /* 5022 */
-    XML_CHECK_NOT_ATTR, /* 5023 */
-    XML_CHECK_NOT_ATTR_DECL, /* 5024 */
-    XML_CHECK_NOT_ELEM_DECL, /* 5025 */
-    XML_CHECK_NOT_ENTITY_DECL, /* 5026 */
-    XML_CHECK_NOT_NS_DECL, /* 5027 */
-    XML_CHECK_NO_HREF, /* 5028 */
-    XML_CHECK_WRONG_PARENT,/* 5029 */
-    XML_CHECK_NS_SCOPE, /* 5030 */
-    XML_CHECK_NS_ANCESTOR, /* 5031 */
-    XML_CHECK_NOT_UTF8, /* 5032 */
-    XML_CHECK_NO_DICT, /* 5033 */
-    XML_CHECK_NOT_NCNAME, /* 5034 */
-    XML_CHECK_OUTSIDE_DICT, /* 5035 */
-    XML_CHECK_WRONG_NAME, /* 5036 */
-    XML_CHECK_NAME_NOT_NULL, /* 5037 */
-    XML_I18N_NO_NAME = 6000,
-    XML_I18N_NO_HANDLER, /* 6001 */
-    XML_I18N_EXCESS_HANDLER, /* 6002 */
-    XML_I18N_CONV_FAILED, /* 6003 */
-    XML_I18N_NO_OUTPUT /* 6004 */
-#if 0
-    XML_CHECK_, /* 5033 */
-    XML_CHECK_X /* 503 */
-#endif
-} xmlParserErrors;
-
-/**
- * xmlGenericErrorFunc:
- * @ctx:  a parsing context
- * @msg:  the message
- * @...:  the extra arguments of the varags to format the message
- *
- * Signature of the function to use when there is an error and
- * no parsing or validity context available .
- */
-typedef void (XMLCDECL *xmlGenericErrorFunc) (void *ctx,
-				 const char *msg,
-				 ...) ATTRIBUTE_PRINTF(2,3);
-/**
- * xmlStructuredErrorFunc:
- * @userData:  user provided data for the error callback
- * @error:  the error being raised.
- *
- * Signature of the function to use when there is an error and
- * the module handles the new error reporting mechanism.
- */
-typedef void (XMLCALL *xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
-
-/*
- * Use the following function to reset the two global variables
- * xmlGenericError and xmlGenericErrorContext.
- */
-XMLPUBFUN void XMLCALL
-    xmlSetGenericErrorFunc	(void *ctx,
-				 xmlGenericErrorFunc handler);
-XMLPUBFUN void XMLCALL
-    initGenericErrorDefaultFunc	(xmlGenericErrorFunc *handler);
-
-XMLPUBFUN void XMLCALL
-    xmlSetStructuredErrorFunc	(void *ctx,
-				 xmlStructuredErrorFunc handler);
-/*
- * Default message routines used by SAX and Valid context for error
- * and warning reporting.
- */
-XMLPUBFUN void XMLCDECL
-    xmlParserError		(void *ctx,
-				 const char *msg,
-				 ...) ATTRIBUTE_PRINTF(2,3);
-XMLPUBFUN void XMLCDECL
-    xmlParserWarning		(void *ctx,
-				 const char *msg,
-				 ...) ATTRIBUTE_PRINTF(2,3);
-XMLPUBFUN void XMLCDECL
-    xmlParserValidityError	(void *ctx,
-				 const char *msg,
-				 ...) ATTRIBUTE_PRINTF(2,3);
-XMLPUBFUN void XMLCDECL
-    xmlParserValidityWarning	(void *ctx,
-				 const char *msg,
-				 ...) ATTRIBUTE_PRINTF(2,3);
-XMLPUBFUN void XMLCALL
-    xmlParserPrintFileInfo	(xmlParserInputPtr input);
-XMLPUBFUN void XMLCALL
-    xmlParserPrintFileContext	(xmlParserInputPtr input);
-
-/*
- * Extended error information routines
- */
-XMLPUBFUN xmlErrorPtr XMLCALL
-    xmlGetLastError		(void);
-XMLPUBFUN void XMLCALL
-    xmlResetLastError		(void);
-XMLPUBFUN xmlErrorPtr XMLCALL
-    xmlCtxtGetLastError		(void *ctx);
-XMLPUBFUN void XMLCALL
-    xmlCtxtResetLastError	(void *ctx);
-XMLPUBFUN void XMLCALL
-    xmlResetError		(xmlErrorPtr err);
-XMLPUBFUN int XMLCALL
-    xmlCopyError		(xmlErrorPtr from,
-				 xmlErrorPtr to);
-
-#ifdef IN_LIBXML
-/*
- * Internal callback reporting routine
- */
-XMLPUBFUN void XMLCALL
-    __xmlRaiseError		(xmlStructuredErrorFunc schannel,
-				 xmlGenericErrorFunc channel,
-				 void *data,
-                                 void *ctx,
-				 void *node,
-				 int domain,
-				 int code,
-				 xmlErrorLevel level,
-				 const char *file,
-				 int line,
-				 const char *str1,
-				 const char *str2,
-				 const char *str3,
-				 int int1,
-				 int col,
-				 const char *msg,
-				 ...) ATTRIBUTE_PRINTF(16,17);
-XMLPUBFUN void XMLCALL
-    __xmlSimpleError		(int domain,
-				 int code,
-				 xmlNodePtr node,
-				 const char *msg,
-				 const char *extra);
-#endif
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_ERROR_H__ */
diff --git a/interfaces/ext/libxml/xmlexports.h b/interfaces/ext/libxml/xmlexports.h
deleted file mode 100644
index 29a6f54..0000000
--- a/interfaces/ext/libxml/xmlexports.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Summary: macros for marking symbols as exportable/importable.
- * Description: macros for marking symbols as exportable/importable.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Igor Zlatovic <igor at zlatkovic.com>
- */
-
-#ifndef __XML_EXPORTS_H__
-#define __XML_EXPORTS_H__
-
-/**
- * XMLPUBFUN, XMLPUBVAR, XMLCALL
- *
- * Macros which declare an exportable function, an exportable variable and
- * the calling convention used for functions.
- *
- * Please use an extra block for every platform/compiler combination when
- * modifying this, rather than overlong #ifdef lines. This helps
- * readability as well as the fact that different compilers on the same
- * platform might need different definitions.
- */
-
-/**
- * XMLPUBFUN:
- *
- * Macros which declare an exportable function
- */
-#define XMLPUBFUN
-/**
- * XMLPUBVAR:
- *
- * Macros which declare an exportable variable
- */
-#define XMLPUBVAR extern
-/**
- * XMLCALL:
- *
- * Macros which declare the called convention for exported functions
- */
-#define XMLCALL
-/**
- * XMLCDECL:
- *
- * Macro which declares the calling convention for exported functions that 
- * use '...'.
- */
-#define XMLCDECL
-
-/** DOC_DISABLE */
-
-/* Windows platform with MS compiler */
-#if defined(_WIN32) && defined(_MSC_VER)
-  #undef XMLPUBFUN
-  #undef XMLPUBVAR
-  #undef XMLCALL
-  #undef XMLCDECL
-  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
-    #define XMLPUBFUN __declspec(dllexport)
-    #define XMLPUBVAR __declspec(dllexport)
-  #else
-    #define XMLPUBFUN
-    #if !defined(LIBXML_STATIC)
-      #define XMLPUBVAR __declspec(dllimport) extern
-    #else
-      #define XMLPUBVAR extern
-    #endif
-  #endif
-  #if defined(LIBXML_FASTCALL)
-    #define XMLCALL __fastcall
-  #else
-    #define XMLCALL __cdecl
-  #endif
-  #define XMLCDECL __cdecl
-  #if !defined _REENTRANT
-    #define _REENTRANT
-  #endif
-#endif
-
-/* Windows platform with Borland compiler */
-#if defined(_WIN32) && defined(__BORLANDC__)
-  #undef XMLPUBFUN
-  #undef XMLPUBVAR
-  #undef XMLCALL
-  #undef XMLCDECL
-  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
-    #define XMLPUBFUN __declspec(dllexport)
-    #define XMLPUBVAR __declspec(dllexport) extern
-  #else
-    #define XMLPUBFUN
-    #if !defined(LIBXML_STATIC)
-      #define XMLPUBVAR __declspec(dllimport) extern
-    #else
-      #define XMLPUBVAR extern
-    #endif
-  #endif
-  #define XMLCALL __cdecl
-  #define XMLCDECL __cdecl
-  #if !defined _REENTRANT
-    #define _REENTRANT
-  #endif
-#endif
-
-/* Windows platform with GNU compiler (Mingw) */
-#if defined(_WIN32) && defined(__MINGW32__)
-  #undef XMLPUBFUN
-  #undef XMLPUBVAR
-  #undef XMLCALL
-  #undef XMLCDECL
-  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
-    #define XMLPUBFUN __declspec(dllexport)
-    #define XMLPUBVAR __declspec(dllexport)
-  #else
-    #define XMLPUBFUN
-    #if !defined(LIBXML_STATIC)
-      #define XMLPUBVAR __declspec(dllimport) extern
-    #else
-      #define XMLPUBVAR extern
-    #endif
-  #endif
-  #define XMLCALL __cdecl
-  #define XMLCDECL __cdecl
-  #if !defined _REENTRANT
-    #define _REENTRANT
-  #endif
-#endif
-
-/* Cygwin platform, GNU compiler */
-#if defined(_WIN32) && defined(__CYGWIN__)
-  #undef XMLPUBFUN
-  #undef XMLPUBVAR
-  #undef XMLCALL
-  #undef XMLCDECL
-  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
-    #define XMLPUBFUN __declspec(dllexport)
-    #define XMLPUBVAR __declspec(dllexport)
-  #else
-    #define XMLPUBFUN
-    #if !defined(LIBXML_STATIC)
-      #define XMLPUBVAR __declspec(dllimport) extern
-    #else
-      #define XMLPUBVAR
-    #endif
-  #endif
-  #define XMLCALL __cdecl
-  #define XMLCDECL __cdecl
-#endif
-
-/* Compatibility */
-#if !defined(LIBXML_DLL_IMPORT)
-#define LIBXML_DLL_IMPORT XMLPUBVAR
-#endif
-
-#endif /* __XML_EXPORTS_H__ */
-
-
diff --git a/interfaces/ext/libxml/xmlmemory.h b/interfaces/ext/libxml/xmlmemory.h
deleted file mode 100644
index 8f3b109..0000000
--- a/interfaces/ext/libxml/xmlmemory.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Summary: interface for the memory allocator
- * Description: provides interfaces for the memory allocator,
- *              including debugging capabilities.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __DEBUG_MEMORY_ALLOC__
-#define __DEBUG_MEMORY_ALLOC__
-
-#include <stdio.h>
-#include <libxml/xmlversion.h>
-
-/**
- * DEBUG_MEMORY:
- *
- * DEBUG_MEMORY replaces the allocator with a collect and debug
- * shell to the libc allocator.
- * DEBUG_MEMORY should only be activated when debugging
- * libxml i.e. if libxml has been configured with --with-debug-mem too.
- */
-/* #define DEBUG_MEMORY_FREED */
-/* #define DEBUG_MEMORY_LOCATION */
-
-#ifdef DEBUG
-#ifndef DEBUG_MEMORY
-#define DEBUG_MEMORY
-#endif
-#endif
-
-/**
- * DEBUG_MEMORY_LOCATION:
- *
- * DEBUG_MEMORY_LOCATION should be activated only when debugging
- * libxml i.e. if libxml has been configured with --with-debug-mem too.
- */
-#ifdef DEBUG_MEMORY_LOCATION
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The XML memory wrapper support 4 basic overloadable functions.
- */
-/**
- * xmlFreeFunc:
- * @mem: an already allocated block of memory
- *
- * Signature for a free() implementation.
- */
-typedef void (XMLCALL *xmlFreeFunc)(void *mem);
-/**
- * xmlMallocFunc:
- * @size:  the size requested in bytes
- *
- * Signature for a malloc() implementation.
- *
- * Returns a pointer to the newly allocated block or NULL in case of error.
- */
-typedef void *(ATTRIBUTE_ALLOC_SIZE(1) XMLCALL *xmlMallocFunc)(size_t size);
-
-/**
- * xmlReallocFunc:
- * @mem: an already allocated block of memory
- * @size:  the new size requested in bytes
- *
- * Signature for a realloc() implementation.
- *
- * Returns a pointer to the newly reallocated block or NULL in case of error.
- */
-typedef void *(XMLCALL *xmlReallocFunc)(void *mem, size_t size);
-
-/**
- * xmlStrdupFunc:
- * @str: a zero terminated string
- *
- * Signature for an strdup() implementation.
- *
- * Returns the copy of the string or NULL in case of error.
- */
-typedef char *(XMLCALL *xmlStrdupFunc)(const char *str);
-
-/*
- * The 4 interfaces used for all memory handling within libxml.
-LIBXML_DLL_IMPORT extern xmlFreeFunc xmlFree;
-LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMalloc;
-LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMallocAtomic;
-LIBXML_DLL_IMPORT extern xmlReallocFunc xmlRealloc;
-LIBXML_DLL_IMPORT extern xmlStrdupFunc xmlMemStrdup;
- */
-
-/*
- * The way to overload the existing functions.
- * The xmlGc function have an extra entry for atomic block
- * allocations useful for garbage collected memory allocators
- */
-XMLPUBFUN int XMLCALL
-	xmlMemSetup	(xmlFreeFunc freeFunc,
-			 xmlMallocFunc mallocFunc,
-			 xmlReallocFunc reallocFunc,
-			 xmlStrdupFunc strdupFunc);
-XMLPUBFUN int XMLCALL
-	xmlMemGet	(xmlFreeFunc *freeFunc,
-			 xmlMallocFunc *mallocFunc,
-			 xmlReallocFunc *reallocFunc,
-			 xmlStrdupFunc *strdupFunc);
-XMLPUBFUN int XMLCALL
-	xmlGcMemSetup	(xmlFreeFunc freeFunc,
-			 xmlMallocFunc mallocFunc,
-			 xmlMallocFunc mallocAtomicFunc,
-			 xmlReallocFunc reallocFunc,
-			 xmlStrdupFunc strdupFunc);
-XMLPUBFUN int XMLCALL
-	xmlGcMemGet	(xmlFreeFunc *freeFunc,
-			 xmlMallocFunc *mallocFunc,
-			 xmlMallocFunc *mallocAtomicFunc,
-			 xmlReallocFunc *reallocFunc,
-			 xmlStrdupFunc *strdupFunc);
-
-/*
- * Initialization of the memory layer.
- */
-XMLPUBFUN int XMLCALL
-	xmlInitMemory	(void);
-
-/*
- * Cleanup of the memory layer.
- */
-XMLPUBFUN void XMLCALL
-                xmlCleanupMemory        (void);
-/*
- * These are specific to the XML debug memory wrapper.
- */
-XMLPUBFUN int XMLCALL
-	xmlMemUsed	(void);
-XMLPUBFUN int XMLCALL
-	xmlMemBlocks	(void);
-XMLPUBFUN void XMLCALL
-	xmlMemDisplay	(FILE *fp);
-XMLPUBFUN void XMLCALL
-	xmlMemDisplayLast(FILE *fp, long nbBytes);
-XMLPUBFUN void XMLCALL
-	xmlMemShow	(FILE *fp, int nr);
-XMLPUBFUN void XMLCALL
-	xmlMemoryDump	(void);
-XMLPUBFUN void * XMLCALL
-	xmlMemMalloc	(size_t size) ATTRIBUTE_ALLOC_SIZE(1);
-XMLPUBFUN void * XMLCALL
-	xmlMemRealloc	(void *ptr,size_t size);
-XMLPUBFUN void XMLCALL
-	xmlMemFree	(void *ptr);
-XMLPUBFUN char * XMLCALL
-	xmlMemoryStrdup	(const char *str);
-XMLPUBFUN void * XMLCALL
-	xmlMallocLoc	(size_t size, const char *file, int line) ATTRIBUTE_ALLOC_SIZE(1);
-XMLPUBFUN void * XMLCALL
-	xmlReallocLoc	(void *ptr, size_t size, const char *file, int line);
-XMLPUBFUN void * XMLCALL
-	xmlMallocAtomicLoc (size_t size, const char *file, int line) ATTRIBUTE_ALLOC_SIZE(1);
-XMLPUBFUN char * XMLCALL
-	xmlMemStrdupLoc	(const char *str, const char *file, int line);
-
-
-#ifdef DEBUG_MEMORY_LOCATION
-/**
- * xmlMalloc:
- * @size:  number of bytes to allocate
- *
- * Wrapper for the malloc() function used in the XML library.
- *
- * Returns the pointer to the allocated area or NULL in case of error.
- */
-#define xmlMalloc(size) xmlMallocLoc((size), __FILE__, __LINE__)
-/**
- * xmlMallocAtomic:
- * @size:  number of bytes to allocate
- *
- * Wrapper for the malloc() function used in the XML library for allocation
- * of block not containing pointers to other areas.
- *
- * Returns the pointer to the allocated area or NULL in case of error.
- */
-#define xmlMallocAtomic(size) xmlMallocAtomicLoc((size), __FILE__, __LINE__)
-/**
- * xmlRealloc:
- * @ptr:  pointer to the existing allocated area
- * @size:  number of bytes to allocate
- *
- * Wrapper for the realloc() function used in the XML library.
- *
- * Returns the pointer to the allocated area or NULL in case of error.
- */
-#define xmlRealloc(ptr, size) xmlReallocLoc((ptr), (size), __FILE__, __LINE__)
-/**
- * xmlMemStrdup:
- * @str:  pointer to the existing string
- *
- * Wrapper for the strdup() function, xmlStrdup() is usually preferred.
- *
- * Returns the pointer to the allocated area or NULL in case of error.
- */
-#define xmlMemStrdup(str) xmlMemStrdupLoc((str), __FILE__, __LINE__)
-
-#endif /* DEBUG_MEMORY_LOCATION */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#ifndef __XML_GLOBALS_H
-#ifndef __XML_THREADS_H__
-#include <libxml/threads.h>
-#include <libxml/globals.h>
-#endif
-#endif
-
-#endif  /* __DEBUG_MEMORY_ALLOC__ */
-
diff --git a/interfaces/ext/libxml/xmlmodule.h b/interfaces/ext/libxml/xmlmodule.h
deleted file mode 100644
index 8f4a560..0000000
--- a/interfaces/ext/libxml/xmlmodule.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Summary: dynamic module loading
- * Description: basic API for dynamic module loading, used by
- *              libexslt added in 2.6.17
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Joel W. Reed
- */
-
-#ifndef __XML_MODULE_H__
-#define __XML_MODULE_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_MODULES_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlModulePtr:
- *
- * A handle to a dynamically loaded module
- */
-typedef struct _xmlModule xmlModule;
-typedef xmlModule *xmlModulePtr;
-
-/**
- * xmlModuleOption:
- *
- * enumeration of options that can be passed down to xmlModuleOpen()
- */
-typedef enum {
-    XML_MODULE_LAZY = 1,	/* lazy binding */
-    XML_MODULE_LOCAL= 2		/* local binding */
-} xmlModuleOption;
-
-XMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen	(const char *filename,
-						 int options);
-
-XMLPUBFUN int XMLCALL xmlModuleSymbol		(xmlModulePtr module,
-						 const char* name,
-						 void **result);
-
-XMLPUBFUN int XMLCALL xmlModuleClose		(xmlModulePtr module);
-
-XMLPUBFUN int XMLCALL xmlModuleFree		(xmlModulePtr module);
-
-#ifdef __cplusplus
-}
-#endif 
-
-#endif /* LIBXML_MODULES_ENABLED */
-
-#endif /*__XML_MODULE_H__ */
diff --git a/interfaces/ext/libxml/xmlreader.h b/interfaces/ext/libxml/xmlreader.h
deleted file mode 100644
index 6964482..0000000
--- a/interfaces/ext/libxml/xmlreader.h
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Summary: the XMLReader implementation
- * Description: API of the XML streaming API based on C# interfaces.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_XMLREADER_H__
-#define __XML_XMLREADER_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-#include <libxml/xmlIO.h>
-#ifdef LIBXML_SCHEMAS_ENABLED
-#include <libxml/relaxng.h>
-#include <libxml/xmlschemas.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlParserSeverities:
- *
- * How severe an error callback is when the per-reader error callback API
- * is used.
- */
-typedef enum {
-    XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
-    XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
-    XML_PARSER_SEVERITY_WARNING = 3,
-    XML_PARSER_SEVERITY_ERROR = 4
-} xmlParserSeverities;
-
-#ifdef LIBXML_READER_ENABLED
-
-/**
- * xmlTextReaderMode:
- *
- * Internal state values for the reader.
- */
-typedef enum {
-    XML_TEXTREADER_MODE_INITIAL = 0,
-    XML_TEXTREADER_MODE_INTERACTIVE = 1,
-    XML_TEXTREADER_MODE_ERROR = 2,
-    XML_TEXTREADER_MODE_EOF =3,
-    XML_TEXTREADER_MODE_CLOSED = 4,
-    XML_TEXTREADER_MODE_READING = 5
-} xmlTextReaderMode;
-
-/**
- * xmlParserProperties:
- *
- * Some common options to use with xmlTextReaderSetParserProp, but it
- * is better to use xmlParserOption and the xmlReaderNewxxx and
- * xmlReaderForxxx APIs now.
- */
-typedef enum {
-    XML_PARSER_LOADDTD = 1,
-    XML_PARSER_DEFAULTATTRS = 2,
-    XML_PARSER_VALIDATE = 3,
-    XML_PARSER_SUBST_ENTITIES = 4
-} xmlParserProperties;
-
-/**
- * xmlReaderTypes:
- *
- * Predefined constants for the different types of nodes.
- */
-typedef enum {
-    XML_READER_TYPE_NONE = 0,
-    XML_READER_TYPE_ELEMENT = 1,
-    XML_READER_TYPE_ATTRIBUTE = 2,
-    XML_READER_TYPE_TEXT = 3,
-    XML_READER_TYPE_CDATA = 4,
-    XML_READER_TYPE_ENTITY_REFERENCE = 5,
-    XML_READER_TYPE_ENTITY = 6,
-    XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
-    XML_READER_TYPE_COMMENT = 8,
-    XML_READER_TYPE_DOCUMENT = 9,
-    XML_READER_TYPE_DOCUMENT_TYPE = 10,
-    XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
-    XML_READER_TYPE_NOTATION = 12,
-    XML_READER_TYPE_WHITESPACE = 13,
-    XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
-    XML_READER_TYPE_END_ELEMENT = 15,
-    XML_READER_TYPE_END_ENTITY = 16,
-    XML_READER_TYPE_XML_DECLARATION = 17
-} xmlReaderTypes;
-
-/**
- * xmlTextReader:
- *
- * Structure for an xmlReader context.
- */
-typedef struct _xmlTextReader xmlTextReader;
-
-/**
- * xmlTextReaderPtr:
- *
- * Pointer to an xmlReader context.
- */
-typedef xmlTextReader *xmlTextReaderPtr;
-
-/*
- * Constructors & Destructor
- */
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-			xmlNewTextReader	(xmlParserInputBufferPtr input,
-	                                         const char *URI);
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-			xmlNewTextReaderFilename(const char *URI);
-
-XMLPUBFUN void XMLCALL
-			xmlFreeTextReader	(xmlTextReaderPtr reader);
-
-XMLPUBFUN int XMLCALL
-            xmlTextReaderSetup(xmlTextReaderPtr reader,
-                   xmlParserInputBufferPtr input, const char *URL,
-                   const char *encoding, int options);
-
-/*
- * Iterators
- */
-XMLPUBFUN int XMLCALL
-			xmlTextReaderRead	(xmlTextReaderPtr reader);
-
-#ifdef LIBXML_WRITER_ENABLED
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderReadInnerXml	(xmlTextReaderPtr reader);
-
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderReadOuterXml	(xmlTextReaderPtr reader);
-#endif
-
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderReadString		(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderReadAttributeValue	(xmlTextReaderPtr reader);
-
-/*
- * Attributes of the node
- */
-XMLPUBFUN int XMLCALL
-			xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderDepth	(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderHasValue(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderNodeType	(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-			xmlTextReaderReadState	(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-                        xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
-
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstLocalName	(xmlTextReaderPtr reader);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstName	(xmlTextReaderPtr reader);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
-						 const xmlChar *str);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstValue	(xmlTextReaderPtr reader);
-
-/*
- * use the Const version of the routine for
- * better performance and simpler code
- */
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderLocalName	(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderName	(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderPrefix	(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-			xmlTextReaderValue	(xmlTextReaderPtr reader);
-
-/*
- * Methods of the XmlTextReader
- */
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderClose		(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-		    xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
-						 int no);
-XMLPUBFUN xmlChar * XMLCALL
-		    xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
-						 const xmlChar *name);
-XMLPUBFUN xmlChar * XMLCALL
-		    xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
-						 const xmlChar *localName,
-						 const xmlChar *namespaceURI);
-XMLPUBFUN xmlParserInputBufferPtr XMLCALL
-		    xmlTextReaderGetRemainder	(xmlTextReaderPtr reader);
-XMLPUBFUN xmlChar * XMLCALL
-		    xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
-						 const xmlChar *prefix);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
-						 int no);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
-						 const xmlChar *name);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
-						 const xmlChar *localName,
-						 const xmlChar *namespaceURI);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderNormalization	(xmlTextReaderPtr reader);
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
-
-/*
- * Extensions
- */
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
-						 int prop,
-						 int value);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
-						 int prop);
-XMLPUBFUN xmlNodePtr XMLCALL
-		    xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
-
-XMLPUBFUN int XMLCALL
-            xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
-
-XMLPUBFUN int XMLCALL
-            xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
-
-XMLPUBFUN xmlNodePtr XMLCALL
-		    xmlTextReaderPreserve	(xmlTextReaderPtr reader);
-#ifdef LIBXML_PATTERN_ENABLED
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
-						 const xmlChar *pattern,
-						 const xmlChar **namespaces);
-#endif /* LIBXML_PATTERN_ENABLED */
-XMLPUBFUN xmlDocPtr XMLCALL
-		    xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader);
-XMLPUBFUN xmlNodePtr XMLCALL
-		    xmlTextReaderExpand		(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderNext		(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderNextSibling	(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderIsValid	(xmlTextReaderPtr reader);
-#ifdef LIBXML_SCHEMAS_ENABLED
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
-						 const char *rng);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
-						 xmlRelaxNGPtr schema);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
-						 const char *xsd);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
-						 xmlSchemaValidCtxtPtr ctxt,
-						 int options);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderSetSchema	(xmlTextReaderPtr reader,
-						 xmlSchemaPtr schema);
-#endif
-XMLPUBFUN const xmlChar * XMLCALL
-		    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
-
-
-/*
- * Index lookup
- */
-XMLPUBFUN long XMLCALL
-		xmlTextReaderByteConsumed	(xmlTextReaderPtr reader);
-
-/*
- * New more complete APIs for simpler creation and reuse of readers
- */
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-		xmlReaderWalker		(xmlDocPtr doc);
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-		xmlReaderForDoc		(const xmlChar * cur,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-		xmlReaderForFile	(const char *filename,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-		xmlReaderForMemory	(const char *buffer,
-					 int size,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-		xmlReaderForFd		(int fd,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlTextReaderPtr XMLCALL
-		xmlReaderForIO		(xmlInputReadCallback ioread,
-					 xmlInputCloseCallback ioclose,
-					 void *ioctx,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-
-XMLPUBFUN int XMLCALL
-		xmlReaderNewWalker	(xmlTextReaderPtr reader,
-					 xmlDocPtr doc);
-XMLPUBFUN int XMLCALL
-		xmlReaderNewDoc		(xmlTextReaderPtr reader,
-					 const xmlChar * cur,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN int XMLCALL
-		xmlReaderNewFile	(xmlTextReaderPtr reader,
-					 const char *filename,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN int XMLCALL
-		xmlReaderNewMemory	(xmlTextReaderPtr reader,
-					 const char *buffer,
-					 int size,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN int XMLCALL
-		xmlReaderNewFd		(xmlTextReaderPtr reader,
-					 int fd,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN int XMLCALL
-		xmlReaderNewIO		(xmlTextReaderPtr reader,
-					 xmlInputReadCallback ioread,
-					 xmlInputCloseCallback ioclose,
-					 void *ioctx,
-					 const char *URL,
-					 const char *encoding,
-					 int options);
-/*
- * Error handling extensions
- */
-typedef void *  xmlTextReaderLocatorPtr;
-
-/**
- * xmlTextReaderErrorFunc:
- * @arg: the user argument
- * @msg: the message
- * @severity: the severity of the error
- * @locator: a locator indicating where the error occured
- *
- * Signature of an error callback from a reader parser
- */
-typedef void   (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
-						 const char *msg,
-						 xmlParserSeverities severity,
-						 xmlTextReaderLocatorPtr locator);
-XMLPUBFUN int XMLCALL
-		    xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
-/*int             xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
-XMLPUBFUN xmlChar * XMLCALL
-		    xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
-XMLPUBFUN void XMLCALL
-		    xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
-						 xmlTextReaderErrorFunc f,
-						 void *arg);
-XMLPUBFUN void XMLCALL
-		    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
-							   xmlStructuredErrorFunc f,
-							   void *arg);
-XMLPUBFUN void XMLCALL
-		    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
-						 xmlTextReaderErrorFunc *f,
-						 void **arg);
-
-#endif /* LIBXML_READER_ENABLED */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __XML_XMLREADER_H__ */
-
diff --git a/interfaces/ext/libxml/xmlregexp.h b/interfaces/ext/libxml/xmlregexp.h
deleted file mode 100644
index 7009645..0000000
--- a/interfaces/ext/libxml/xmlregexp.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Summary: regular expressions handling
- * Description: basic API for libxml regular expressions handling used
- *              for XML Schemas and validation.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_REGEXP_H__
-#define __XML_REGEXP_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_REGEXP_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlRegexpPtr:
- *
- * A libxml regular expression, they can actually be far more complex
- * thank the POSIX regex expressions.
- */
-typedef struct _xmlRegexp xmlRegexp;
-typedef xmlRegexp *xmlRegexpPtr;
-
-/**
- * xmlRegExecCtxtPtr:
- *
- * A libxml progressive regular expression evaluation context
- */
-typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
-typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
-
-#ifdef __cplusplus
-}
-#endif
-#include <libxml/tree.h>
-#include <libxml/dict.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The POSIX like API
- */
-XMLPUBFUN xmlRegexpPtr XMLCALL
-		    xmlRegexpCompile	(const xmlChar *regexp);
-XMLPUBFUN void XMLCALL			 xmlRegFreeRegexp(xmlRegexpPtr regexp);
-XMLPUBFUN int XMLCALL
-		    xmlRegexpExec	(xmlRegexpPtr comp,
-					 const xmlChar *value);
-XMLPUBFUN void XMLCALL
-		    xmlRegexpPrint	(FILE *output,
-					 xmlRegexpPtr regexp);
-XMLPUBFUN int XMLCALL
-		    xmlRegexpIsDeterminist(xmlRegexpPtr comp);
-
-/**
- * xmlRegExecCallbacks:
- * @exec: the regular expression context
- * @token: the current token string
- * @transdata: transition data
- * @inputdata: input data
- *
- * Callback function when doing a transition in the automata
- */
-typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
-	                             const xmlChar *token,
-				     void *transdata,
-				     void *inputdata);
-
-/*
- * The progressive API
- */
-XMLPUBFUN xmlRegExecCtxtPtr XMLCALL
-		    xmlRegNewExecCtxt	(xmlRegexpPtr comp,
-					 xmlRegExecCallbacks callback,
-					 void *data);
-XMLPUBFUN void XMLCALL
-		    xmlRegFreeExecCtxt	(xmlRegExecCtxtPtr exec);
-XMLPUBFUN int XMLCALL
-		    xmlRegExecPushString(xmlRegExecCtxtPtr exec,
-					 const xmlChar *value,
-					 void *data);
-XMLPUBFUN int XMLCALL
-		    xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
-					 const xmlChar *value,
-					 const xmlChar *value2,
-					 void *data);
-
-XMLPUBFUN int XMLCALL
-		    xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
-					 int *nbval,
-					 int *nbneg,
-					 xmlChar **values,
-					 int *terminal);
-XMLPUBFUN int XMLCALL
-		    xmlRegExecErrInfo	(xmlRegExecCtxtPtr exec,
-					 const xmlChar **string,
-					 int *nbval,
-					 int *nbneg,
-					 xmlChar **values,
-					 int *terminal);
-#ifdef LIBXML_EXPR_ENABLED
-/*
- * Formal regular expression handling
- * Its goal is to do some formal work on content models
- */
-
-/* expressions are used within a context */
-typedef struct _xmlExpCtxt xmlExpCtxt;
-typedef xmlExpCtxt *xmlExpCtxtPtr;
-
-XMLPUBFUN void XMLCALL
-			xmlExpFreeCtxt	(xmlExpCtxtPtr ctxt);
-XMLPUBFUN xmlExpCtxtPtr XMLCALL
-			xmlExpNewCtxt	(int maxNodes,
-					 xmlDictPtr dict);
-
-XMLPUBFUN int XMLCALL
-			xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-			xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
-
-/* Expressions are trees but the tree is opaque */
-typedef struct _xmlExpNode xmlExpNode;
-typedef xmlExpNode *xmlExpNodePtr;
-
-typedef enum {
-    XML_EXP_EMPTY = 0,
-    XML_EXP_FORBID = 1,
-    XML_EXP_ATOM = 2,
-    XML_EXP_SEQ = 3,
-    XML_EXP_OR = 4,
-    XML_EXP_COUNT = 5
-} xmlExpNodeType;
-
-/*
- * 2 core expressions shared by all for the empty language set
- * and for the set with just the empty token
- */
-XMLPUBVAR xmlExpNodePtr forbiddenExp;
-XMLPUBVAR xmlExpNodePtr emptyExp;
-
-/*
- * Expressions are reference counted internally
- */
-XMLPUBFUN void XMLCALL
-			xmlExpFree	(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr expr);
-XMLPUBFUN void XMLCALL
-			xmlExpRef	(xmlExpNodePtr expr);
-
-/*
- * constructors can be either manual or from a string
- */
-XMLPUBFUN xmlExpNodePtr XMLCALL
-			xmlExpParse	(xmlExpCtxtPtr ctxt,
-					 const char *expr);
-XMLPUBFUN xmlExpNodePtr XMLCALL
-			xmlExpNewAtom	(xmlExpCtxtPtr ctxt,
-					 const xmlChar *name,
-					 int len);
-XMLPUBFUN xmlExpNodePtr XMLCALL
-			xmlExpNewOr	(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr left,
-					 xmlExpNodePtr right);
-XMLPUBFUN xmlExpNodePtr XMLCALL
-			xmlExpNewSeq	(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr left,
-					 xmlExpNodePtr right);
-XMLPUBFUN xmlExpNodePtr XMLCALL
-			xmlExpNewRange	(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr subset,
-					 int min,
-					 int max);
-/*
- * The really interesting APIs
- */
-XMLPUBFUN int XMLCALL
-			xmlExpIsNillable(xmlExpNodePtr expr);
-XMLPUBFUN int XMLCALL
-			xmlExpMaxToken	(xmlExpNodePtr expr);
-XMLPUBFUN int XMLCALL
-			xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr expr,
-					 const xmlChar**langList,
-					 int len);
-XMLPUBFUN int XMLCALL
-			xmlExpGetStart	(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr expr,
-					 const xmlChar**tokList,
-					 int len);
-XMLPUBFUN xmlExpNodePtr XMLCALL
-			xmlExpStringDerive(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr expr,
-					 const xmlChar *str,
-					 int len);
-XMLPUBFUN xmlExpNodePtr XMLCALL
-			xmlExpExpDerive	(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr expr,
-					 xmlExpNodePtr sub);
-XMLPUBFUN int XMLCALL
-			xmlExpSubsume	(xmlExpCtxtPtr ctxt,
-					 xmlExpNodePtr expr,
-					 xmlExpNodePtr sub);
-XMLPUBFUN void XMLCALL
-			xmlExpDump	(xmlBufferPtr buf,
-					 xmlExpNodePtr expr);
-#endif /* LIBXML_EXPR_ENABLED */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_REGEXP_ENABLED */
-
-#endif /*__XML_REGEXP_H__ */
diff --git a/interfaces/ext/libxml/xmlsave.h b/interfaces/ext/libxml/xmlsave.h
deleted file mode 100644
index 4201b4d..0000000
--- a/interfaces/ext/libxml/xmlsave.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Summary: the XML document serializer
- * Description: API to save document or subtree of document
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_XMLSAVE_H__
-#define __XML_XMLSAVE_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/tree.h>
-#include <libxml/encoding.h>
-#include <libxml/xmlIO.h>
-
-#ifdef LIBXML_OUTPUT_ENABLED
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlSaveOption:
- *
- * This is the set of XML save options that can be passed down
- * to the xmlSaveToFd() and similar calls.
- */
-typedef enum {
-    XML_SAVE_FORMAT     = 1<<0,	/* format save output */
-    XML_SAVE_NO_DECL    = 1<<1,	/* drop the xml declaration */
-    XML_SAVE_NO_EMPTY	= 1<<2, /* no empty tags */
-    XML_SAVE_NO_XHTML	= 1<<3, /* disable XHTML1 specific rules */
-    XML_SAVE_XHTML	= 1<<4, /* force XHTML1 specific rules */
-    XML_SAVE_AS_XML     = 1<<5, /* force XML serialization on HTML doc */
-    XML_SAVE_AS_HTML    = 1<<6  /* force HTML serialization on XML doc */
-} xmlSaveOption;
-
-
-typedef struct _xmlSaveCtxt xmlSaveCtxt;
-typedef xmlSaveCtxt *xmlSaveCtxtPtr;
-
-XMLPUBFUN xmlSaveCtxtPtr XMLCALL
-		xmlSaveToFd		(int fd,
-					 const char *encoding,
-					 int options);
-XMLPUBFUN xmlSaveCtxtPtr XMLCALL
-		xmlSaveToFilename	(const char *filename,
-					 const char *encoding,
-					 int options);
-
-XMLPUBFUN xmlSaveCtxtPtr XMLCALL
-		xmlSaveToBuffer		(xmlBufferPtr buffer,
-					 const char *encoding,
-					 int options);
-
-XMLPUBFUN xmlSaveCtxtPtr XMLCALL
-		xmlSaveToIO		(xmlOutputWriteCallback iowrite,
-					 xmlOutputCloseCallback ioclose,
-					 void *ioctx,
-					 const char *encoding,
-					 int options);
-
-XMLPUBFUN long XMLCALL
-		xmlSaveDoc		(xmlSaveCtxtPtr ctxt,
-					 xmlDocPtr doc);
-XMLPUBFUN long XMLCALL
-		xmlSaveTree		(xmlSaveCtxtPtr ctxt,
-					 xmlNodePtr node);
-
-XMLPUBFUN int XMLCALL
-		xmlSaveFlush		(xmlSaveCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-		xmlSaveClose		(xmlSaveCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-		xmlSaveSetEscape	(xmlSaveCtxtPtr ctxt,
-					 xmlCharEncodingOutputFunc escape);
-XMLPUBFUN int XMLCALL
-		xmlSaveSetAttrEscape	(xmlSaveCtxtPtr ctxt,
-					 xmlCharEncodingOutputFunc escape);
-#ifdef __cplusplus
-}
-#endif
-#endif /* LIBXML_OUTPUT_ENABLED */
-#endif /* __XML_XMLSAVE_H__ */
-
-
diff --git a/interfaces/ext/libxml/xmlschemas.h b/interfaces/ext/libxml/xmlschemas.h
deleted file mode 100644
index ebef3a7..0000000
--- a/interfaces/ext/libxml/xmlschemas.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Summary: incomplete XML Schemas structure implementation
- * Description: interface to the XML Schemas handling and schema validity
- *              checking, it is incomplete right now.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __XML_SCHEMA_H__
-#define __XML_SCHEMA_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_SCHEMAS_ENABLED
-
-#include <libxml/tree.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * This error codes are obsolete; not used any more.
- */
-typedef enum {
-    XML_SCHEMAS_ERR_OK		= 0,
-    XML_SCHEMAS_ERR_NOROOT	= 1,
-    XML_SCHEMAS_ERR_UNDECLAREDELEM,
-    XML_SCHEMAS_ERR_NOTTOPLEVEL,
-    XML_SCHEMAS_ERR_MISSING,
-    XML_SCHEMAS_ERR_WRONGELEM,
-    XML_SCHEMAS_ERR_NOTYPE,
-    XML_SCHEMAS_ERR_NOROLLBACK,
-    XML_SCHEMAS_ERR_ISABSTRACT,
-    XML_SCHEMAS_ERR_NOTEMPTY,
-    XML_SCHEMAS_ERR_ELEMCONT,
-    XML_SCHEMAS_ERR_HAVEDEFAULT,
-    XML_SCHEMAS_ERR_NOTNILLABLE,
-    XML_SCHEMAS_ERR_EXTRACONTENT,
-    XML_SCHEMAS_ERR_INVALIDATTR,
-    XML_SCHEMAS_ERR_INVALIDELEM,
-    XML_SCHEMAS_ERR_NOTDETERMINIST,
-    XML_SCHEMAS_ERR_CONSTRUCT,
-    XML_SCHEMAS_ERR_INTERNAL,
-    XML_SCHEMAS_ERR_NOTSIMPLE,
-    XML_SCHEMAS_ERR_ATTRUNKNOWN,
-    XML_SCHEMAS_ERR_ATTRINVALID,
-    XML_SCHEMAS_ERR_VALUE,
-    XML_SCHEMAS_ERR_FACET,
-    XML_SCHEMAS_ERR_,
-    XML_SCHEMAS_ERR_XXX
-} xmlSchemaValidError;
-
-/*
-* ATTENTION: Change xmlSchemaSetValidOptions's check
-* for invalid values, if adding to the validation
-* options below.
-*/
-/**
- * xmlSchemaValidOption:
- *
- * This is the set of XML Schema validation options.
- */
-typedef enum {
-    XML_SCHEMA_VAL_VC_I_CREATE			= 1<<0
-	/* Default/fixed: create an attribute node
-	* or an element's text node on the instance.
-	*/
-} xmlSchemaValidOption;
-
-/*
-    XML_SCHEMA_VAL_XSI_ASSEMBLE			= 1<<1,
-	* assemble schemata using
-	* xsi:schemaLocation and
-	* xsi:noNamespaceSchemaLocation
-*/
-
-/**
- * The schemas related types are kept internal
- */
-typedef struct _xmlSchema xmlSchema;
-typedef xmlSchema *xmlSchemaPtr;
-
-/**
- * xmlSchemaValidityErrorFunc:
- * @ctx: the validation context
- * @msg: the message
- * @...: extra arguments
- *
- * Signature of an error callback from an XSD validation
- */
-typedef void (XMLCDECL *xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...) ATTRIBUTE_PRINTF(2,3);
-
-/**
- * xmlSchemaValidityWarningFunc:
- * @ctx: the validation context
- * @msg: the message
- * @...: extra arguments
- *
- * Signature of a warning callback from an XSD validation
- */
-typedef void (XMLCDECL *xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...) ATTRIBUTE_PRINTF(2,3);
-
-/**
- * A schemas validation context
- */
-typedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt;
-typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr;
-
-typedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt;
-typedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr;
-
-/*
- * Interfaces for parsing.
- */
-XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
-	    xmlSchemaNewParserCtxt	(const char *URL);
-XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
-	    xmlSchemaNewMemParserCtxt	(const char *buffer,
-					 int size);
-XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
-	    xmlSchemaNewDocParserCtxt	(xmlDocPtr doc);
-XMLPUBFUN void XMLCALL
-	    xmlSchemaFreeParserCtxt	(xmlSchemaParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL
-	    xmlSchemaSetParserErrors	(xmlSchemaParserCtxtPtr ctxt,
-					 xmlSchemaValidityErrorFunc err,
-					 xmlSchemaValidityWarningFunc warn,
-					 void *ctx);
-XMLPUBFUN void XMLCALL
-	    xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxtPtr ctxt,
-					 xmlStructuredErrorFunc serror,
-					 void *ctx);
-XMLPUBFUN int XMLCALL
-		xmlSchemaGetParserErrors(xmlSchemaParserCtxtPtr ctxt,
-					xmlSchemaValidityErrorFunc * err,
-					xmlSchemaValidityWarningFunc * warn,
-					void **ctx);
-XMLPUBFUN int XMLCALL
-		xmlSchemaIsValid	(xmlSchemaValidCtxtPtr ctxt);
-
-XMLPUBFUN xmlSchemaPtr XMLCALL
-	    xmlSchemaParse		(xmlSchemaParserCtxtPtr ctxt);
-XMLPUBFUN void XMLCALL
-	    xmlSchemaFree		(xmlSchemaPtr schema);
-#ifdef LIBXML_OUTPUT_ENABLED
-XMLPUBFUN void XMLCALL
-	    xmlSchemaDump		(FILE *output,
-					 xmlSchemaPtr schema);
-#endif /* LIBXML_OUTPUT_ENABLED */
-/*
- * Interfaces for validating
- */
-XMLPUBFUN void XMLCALL
-	    xmlSchemaSetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
-					 xmlSchemaValidityErrorFunc err,
-					 xmlSchemaValidityWarningFunc warn,
-					 void *ctx);
-XMLPUBFUN void XMLCALL
-	    xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt,
-					 xmlStructuredErrorFunc serror,
-					 void *ctx);
-XMLPUBFUN int XMLCALL
-	    xmlSchemaGetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
-					 xmlSchemaValidityErrorFunc *err,
-					 xmlSchemaValidityWarningFunc *warn,
-					 void **ctx);
-XMLPUBFUN int XMLCALL
-	    xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt,
-					 int options);
-XMLPUBFUN int XMLCALL
-	    xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt);
-
-XMLPUBFUN xmlSchemaValidCtxtPtr XMLCALL
-	    xmlSchemaNewValidCtxt	(xmlSchemaPtr schema);
-XMLPUBFUN void XMLCALL
-	    xmlSchemaFreeValidCtxt	(xmlSchemaValidCtxtPtr ctxt);
-XMLPUBFUN int XMLCALL
-	    xmlSchemaValidateDoc	(xmlSchemaValidCtxtPtr ctxt,
-					 xmlDocPtr instance);
-XMLPUBFUN int XMLCALL
-            xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt,
-			                 xmlNodePtr elem);
-XMLPUBFUN int XMLCALL
-	    xmlSchemaValidateStream	(xmlSchemaValidCtxtPtr ctxt,
-					 xmlParserInputBufferPtr input,
-					 xmlCharEncoding enc,
-					 xmlSAXHandlerPtr sax,
-					 void *user_data);
-XMLPUBFUN int XMLCALL
-	    xmlSchemaValidateFile	(xmlSchemaValidCtxtPtr ctxt,
-					 const char * filename,
-					 int options);
-
-XMLPUBFUN xmlParserCtxtPtr XMLCALL
-	    xmlSchemaValidCtxtGetParserCtxt(xmlSchemaValidCtxtPtr ctxt);
-
-/*
- * Interface to insert Schemas SAX validation in a SAX stream
- */
-typedef struct _xmlSchemaSAXPlug xmlSchemaSAXPlugStruct;
-typedef xmlSchemaSAXPlugStruct *xmlSchemaSAXPlugPtr;
-
-XMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL
-            xmlSchemaSAXPlug		(xmlSchemaValidCtxtPtr ctxt,
-					 xmlSAXHandlerPtr *sax,
-					 void **user_data);
-XMLPUBFUN int XMLCALL
-            xmlSchemaSAXUnplug		(xmlSchemaSAXPlugPtr plug);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_SCHEMAS_ENABLED */
-#endif /* __XML_SCHEMA_H__ */
diff --git a/interfaces/ext/libxml/xmlschemastypes.h b/interfaces/ext/libxml/xmlschemastypes.h
deleted file mode 100644
index 9a3a7a1..0000000
--- a/interfaces/ext/libxml/xmlschemastypes.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Summary: implementation of XML Schema Datatypes
- * Description: module providing the XML Schema Datatypes implementation
- *              both definition and validity checking
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-
-#ifndef __XML_SCHEMA_TYPES_H__
-#define __XML_SCHEMA_TYPES_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_SCHEMAS_ENABLED
-
-#include <libxml/schemasInternals.h>
-#include <libxml/xmlschemas.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-    XML_SCHEMA_WHITESPACE_UNKNOWN = 0,
-    XML_SCHEMA_WHITESPACE_PRESERVE = 1,
-    XML_SCHEMA_WHITESPACE_REPLACE = 2,
-    XML_SCHEMA_WHITESPACE_COLLAPSE = 3
-} xmlSchemaWhitespaceValueType;
-
-XMLPUBFUN void XMLCALL		
-    		xmlSchemaInitTypes		(void);
-XMLPUBFUN void XMLCALL		
-		xmlSchemaCleanupTypes		(void);
-XMLPUBFUN xmlSchemaTypePtr XMLCALL 
-		xmlSchemaGetPredefinedType	(const xmlChar *name,
-						 const xmlChar *ns);
-XMLPUBFUN int XMLCALL		
-		xmlSchemaValidatePredefinedType	(xmlSchemaTypePtr type,
-						 const xmlChar *value,
-						 xmlSchemaValPtr *val);
-XMLPUBFUN int XMLCALL		
-		xmlSchemaValPredefTypeNode	(xmlSchemaTypePtr type,
-						 const xmlChar *value,
-						 xmlSchemaValPtr *val,
-						 xmlNodePtr node);
-XMLPUBFUN int XMLCALL		
-		xmlSchemaValidateFacet		(xmlSchemaTypePtr base,
-						 xmlSchemaFacetPtr facet,
-						 const xmlChar *value,
-						 xmlSchemaValPtr val);
-XMLPUBFUN int XMLCALL
-		xmlSchemaValidateFacetWhtsp	(xmlSchemaFacetPtr facet,
-						 xmlSchemaWhitespaceValueType fws,
-						 xmlSchemaValType valType,						 
-						 const xmlChar *value,
-						 xmlSchemaValPtr val,
-						 xmlSchemaWhitespaceValueType ws);
-XMLPUBFUN void XMLCALL		
-		xmlSchemaFreeValue		(xmlSchemaValPtr val);
-XMLPUBFUN xmlSchemaFacetPtr XMLCALL 
-		xmlSchemaNewFacet		(void);
-XMLPUBFUN int XMLCALL		
-		xmlSchemaCheckFacet		(xmlSchemaFacetPtr facet,
-						 xmlSchemaTypePtr typeDecl,
-						 xmlSchemaParserCtxtPtr ctxt,
-						 const xmlChar *name);
-XMLPUBFUN void XMLCALL		
-		xmlSchemaFreeFacet		(xmlSchemaFacetPtr facet);
-XMLPUBFUN int XMLCALL		
-		xmlSchemaCompareValues		(xmlSchemaValPtr x,
-						 xmlSchemaValPtr y);
-XMLPUBFUN xmlSchemaTypePtr XMLCALL		
-    xmlSchemaGetBuiltInListSimpleTypeItemType	(xmlSchemaTypePtr type);
-XMLPUBFUN int XMLCALL
-    xmlSchemaValidateListSimpleTypeFacet	(xmlSchemaFacetPtr facet,
-						 const xmlChar *value,
-						 unsigned long actualLen,
-						 unsigned long *expectedLen);
-XMLPUBFUN xmlSchemaTypePtr XMLCALL
-		xmlSchemaGetBuiltInType		(xmlSchemaValType type);
-XMLPUBFUN int XMLCALL
-		xmlSchemaIsBuiltInTypeFacet	(xmlSchemaTypePtr type, 
-						 int facetType);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlSchemaCollapseString		(const xmlChar *value);
-XMLPUBFUN xmlChar * XMLCALL
-		xmlSchemaWhiteSpaceReplace	(const xmlChar *value);
-XMLPUBFUN unsigned long  XMLCALL
-		xmlSchemaGetFacetValueAsULong	(xmlSchemaFacetPtr facet);
-XMLPUBFUN int XMLCALL
-		xmlSchemaValidateLengthFacet	(xmlSchemaTypePtr type, 
-						 xmlSchemaFacetPtr facet,
-						 const xmlChar *value,
-						 xmlSchemaValPtr val,
-						 unsigned long *length);
-XMLPUBFUN int XMLCALL
-		xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
-						  xmlSchemaValType valType,
-						  const xmlChar *value,
-						  xmlSchemaValPtr val,						  
-						  unsigned long *length,
-						  xmlSchemaWhitespaceValueType ws);
-XMLPUBFUN int XMLCALL
-		xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type, 
-						 const xmlChar *value,
-						 xmlSchemaValPtr *val, 
-						 xmlNodePtr node);
-XMLPUBFUN int XMLCALL
-		xmlSchemaGetCanonValue		(xmlSchemaValPtr val,
-						 const xmlChar **retValue);
-XMLPUBFUN int XMLCALL
-		xmlSchemaGetCanonValueWhtsp	(xmlSchemaValPtr val,						 
-						 const xmlChar **retValue,
-						 xmlSchemaWhitespaceValueType ws);
-XMLPUBFUN int XMLCALL
-		xmlSchemaValueAppend		(xmlSchemaValPtr prev,
-						 xmlSchemaValPtr cur);
-XMLPUBFUN xmlSchemaValPtr XMLCALL
-		xmlSchemaValueGetNext		(xmlSchemaValPtr cur);
-XMLPUBFUN const xmlChar * XMLCALL
-		xmlSchemaValueGetAsString	(xmlSchemaValPtr val);
-XMLPUBFUN int XMLCALL
-		xmlSchemaValueGetAsBoolean	(xmlSchemaValPtr val);
-XMLPUBFUN xmlSchemaValPtr XMLCALL
-		xmlSchemaNewStringValue		(xmlSchemaValType type,
-						 const xmlChar *value);
-XMLPUBFUN xmlSchemaValPtr XMLCALL
-		xmlSchemaNewNOTATIONValue	(const xmlChar *name,
-						 const xmlChar *ns);
-XMLPUBFUN xmlSchemaValPtr XMLCALL
-		xmlSchemaNewQNameValue		(const xmlChar *namespaceName,
-						 const xmlChar *localName);
-XMLPUBFUN int XMLCALL
-		xmlSchemaCompareValuesWhtsp	(xmlSchemaValPtr x,
-						 xmlSchemaWhitespaceValueType xws,
-						 xmlSchemaValPtr y,
-						 xmlSchemaWhitespaceValueType yws);
-XMLPUBFUN xmlSchemaValPtr XMLCALL
-		xmlSchemaCopyValue		(xmlSchemaValPtr val);
-XMLPUBFUN xmlSchemaValType XMLCALL
-		xmlSchemaGetValType		(xmlSchemaValPtr val);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_SCHEMAS_ENABLED */
-#endif /* __XML_SCHEMA_TYPES_H__ */
diff --git a/interfaces/ext/libxml/xmlstring.h b/interfaces/ext/libxml/xmlstring.h
deleted file mode 100644
index 1dfc5ea..0000000
--- a/interfaces/ext/libxml/xmlstring.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Summary: set of routines to process strings
- * Description: type and interfaces needed for the internal string handling
- *              of the library, especially UTF8 processing.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_STRING_H__
-#define __XML_STRING_H__
-
-#include <stdarg.h>
-#include <libxml/xmlversion.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * xmlChar:
- *
- * This is a basic byte in an UTF-8 encoded string.
- * It's unsigned allowing to pinpoint case where char * are assigned
- * to xmlChar * (possibly making serialization back impossible).
- */
-typedef unsigned char xmlChar;
-
-/**
- * BAD_CAST:
- *
- * Macro to cast a string to an xmlChar * when one know its safe.
- */
-#define BAD_CAST (xmlChar *)
-
-/*
- * xmlChar handling
- */
-XMLPUBFUN xmlChar * XMLCALL
-                xmlStrdup                (const xmlChar *cur);
-XMLPUBFUN xmlChar * XMLCALL
-                xmlStrndup               (const xmlChar *cur,
-                                         int len);
-XMLPUBFUN xmlChar * XMLCALL
-                xmlCharStrndup           (const char *cur,
-                                         int len);
-XMLPUBFUN xmlChar * XMLCALL
-                xmlCharStrdup            (const char *cur);
-XMLPUBFUN xmlChar * XMLCALL
-                xmlStrsub                (const xmlChar *str,
-                                         int start,
-                                         int len);
-XMLPUBFUN const xmlChar * XMLCALL
-                xmlStrchr                (const xmlChar *str,
-                                         xmlChar val);
-XMLPUBFUN const xmlChar * XMLCALL
-                xmlStrstr                (const xmlChar *str,
-                                         const xmlChar *val);
-XMLPUBFUN const xmlChar * XMLCALL
-                xmlStrcasestr            (const xmlChar *str,
-                                         xmlChar *val);
-XMLPUBFUN int XMLCALL
-                xmlStrcmp                (const xmlChar *str1,
-                                         const xmlChar *str2);
-XMLPUBFUN int XMLCALL
-                xmlStrncmp               (const xmlChar *str1,
-                                         const xmlChar *str2,
-                                         int len);
-XMLPUBFUN int XMLCALL
-                xmlStrcasecmp            (const xmlChar *str1,
-                                         const xmlChar *str2);
-XMLPUBFUN int XMLCALL
-                xmlStrncasecmp           (const xmlChar *str1,
-                                         const xmlChar *str2,
-                                         int len);
-XMLPUBFUN int XMLCALL
-                xmlStrEqual              (const xmlChar *str1,
-                                         const xmlChar *str2);
-XMLPUBFUN int XMLCALL
-                xmlStrQEqual             (const xmlChar *pref,
-                                         const xmlChar *name,
-                                         const xmlChar *str);
-XMLPUBFUN int XMLCALL
-                xmlStrlen                (const xmlChar *str);
-XMLPUBFUN xmlChar * XMLCALL
-                xmlStrcat                (xmlChar *cur,
-                                         const xmlChar *add);
-XMLPUBFUN xmlChar * XMLCALL
-                xmlStrncat               (xmlChar *cur,
-                                         const xmlChar *add,
-                                         int len);
-XMLPUBFUN xmlChar * XMLCALL
-                xmlStrncatNew            (const xmlChar *str1,
-                                         const xmlChar *str2,
-                                         int len);
-XMLPUBFUN int XMLCALL
-                xmlStrPrintf             (xmlChar *buf,
-                                         int len,
-                                         const xmlChar *msg,
-                                         ...);
-XMLPUBFUN int XMLCALL
-                xmlStrVPrintf                (xmlChar *buf,
-                                         int len,
-                                         const xmlChar *msg,
-                                         va_list ap);
-
-XMLPUBFUN int XMLCALL
-        xmlGetUTF8Char                   (const unsigned char *utf,
-                                         int *len);
-XMLPUBFUN int XMLCALL
-        xmlCheckUTF8                     (const unsigned char *utf);
-XMLPUBFUN int XMLCALL
-        xmlUTF8Strsize                   (const xmlChar *utf,
-                                         int len);
-XMLPUBFUN xmlChar * XMLCALL 
-        xmlUTF8Strndup                   (const xmlChar *utf,
-                                         int len);
-XMLPUBFUN const xmlChar * XMLCALL 
-        xmlUTF8Strpos                    (const xmlChar *utf,
-                                         int pos);
-XMLPUBFUN int XMLCALL
-        xmlUTF8Strloc                    (const xmlChar *utf,
-                                         const xmlChar *utfchar);
-XMLPUBFUN xmlChar * XMLCALL 
-        xmlUTF8Strsub                    (const xmlChar *utf,
-                                         int start,
-                                         int len);
-XMLPUBFUN int XMLCALL
-        xmlUTF8Strlen                    (const xmlChar *utf);
-XMLPUBFUN int XMLCALL
-        xmlUTF8Size                      (const xmlChar *utf);
-XMLPUBFUN int XMLCALL
-        xmlUTF8Charcmp                   (const xmlChar *utf1,
-                                         const xmlChar *utf2);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* __XML_STRING_H__ */
diff --git a/interfaces/ext/libxml/xmlunicode.h b/interfaces/ext/libxml/xmlunicode.h
deleted file mode 100644
index 01ac8b6..0000000
--- a/interfaces/ext/libxml/xmlunicode.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Summary: Unicode character APIs
- * Description: API for the Unicode character APIs
- *
- * This file is automatically generated from the
- * UCS description files of the Unicode Character Database
- * http://www.unicode.org/Public/4.0-Update1/UCD-4.0.1.html
- * using the genUnicode.py Python script.
- *
- * Generation date: Mon Mar 27 11:09:52 2006
- * Sources: Blocks-4.0.1.txt UnicodeData-4.0.1.txt
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_UNICODE_H__
-#define __XML_UNICODE_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_UNICODE_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-XMLPUBFUN int XMLCALL xmlUCSIsAegeanNumbers	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsAlphabeticPresentationForms	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsArabic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsArabicPresentationFormsA	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsArabicPresentationFormsB	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsArmenian	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsArrows	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBasicLatin	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBengali	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBlockElements	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBopomofo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBopomofoExtended	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBoxDrawing	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBraillePatterns	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsBuhid	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsByzantineMusicalSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibility	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityForms	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityIdeographs	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityIdeographsSupplement	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKRadicalsSupplement	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKSymbolsandPunctuation	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographs	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographsExtensionA	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographsExtensionB	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCherokee	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCombiningDiacriticalMarks	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCombiningDiacriticalMarksforSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCombiningHalfMarks	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCombiningMarksforSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsControlPictures	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCurrencySymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCypriotSyllabary	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCyrillic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCyrillicSupplement	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsDeseret	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsDevanagari	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsDingbats	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsEnclosedAlphanumerics	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsEnclosedCJKLettersandMonths	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsEthiopic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGeneralPunctuation	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGeometricShapes	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGeorgian	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGothic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGreek	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGreekExtended	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGreekandCoptic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGujarati	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsGurmukhi	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHalfwidthandFullwidthForms	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHangulCompatibilityJamo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHangulJamo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHangulSyllables	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHanunoo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHebrew	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHighPrivateUseSurrogates	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHighSurrogates	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsHiragana	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsIPAExtensions	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsIdeographicDescriptionCharacters	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsKanbun	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsKangxiRadicals	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsKannada	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsKatakana	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsKatakanaPhoneticExtensions	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsKhmer	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsKhmerSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLao	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLatin1Supplement	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedA	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedB	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedAdditional	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLetterlikeSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLimbu	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLinearBIdeograms	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLinearBSyllabary	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsLowSurrogates	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMalayalam	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMathematicalAlphanumericSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMathematicalOperators	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousMathematicalSymbolsA	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousMathematicalSymbolsB	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousSymbolsandArrows	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousTechnical	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMongolian	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMusicalSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsMyanmar	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsNumberForms	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsOgham	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsOldItalic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsOpticalCharacterRecognition	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsOriya	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsOsmanya	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsPhoneticExtensions	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsPrivateUse	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsPrivateUseArea	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsRunic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsShavian	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSinhala	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSmallFormVariants	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSpacingModifierLetters	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSpecials	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSuperscriptsandSubscripts	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSupplementalArrowsA	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSupplementalArrowsB	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSupplementalMathematicalOperators	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSupplementaryPrivateUseAreaA	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSupplementaryPrivateUseAreaB	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsSyriac	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTagalog	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTagbanwa	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTags	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTaiLe	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTaiXuanJingSymbols	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTamil	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTelugu	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsThaana	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsThai	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsTibetan	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsUgaritic	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsUnifiedCanadianAboriginalSyllabics	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsVariationSelectors	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsVariationSelectorsSupplement	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsYiRadicals	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsYiSyllables	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsYijingHexagramSymbols	(int code);
-
-XMLPUBFUN int XMLCALL xmlUCSIsBlock	(int code, const char *block);
-
-XMLPUBFUN int XMLCALL xmlUCSIsCatC	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatCc	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatCf	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatCo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatCs	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatL	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatLl	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatLm	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatLo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatLt	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatLu	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatM	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatMc	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatMe	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatMn	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatN	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatNd	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatNl	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatNo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatP	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatPc	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatPd	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatPe	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatPf	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatPi	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatPo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatPs	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatS	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatSc	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatSk	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatSm	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatSo	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatZ	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatZl	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatZp	(int code);
-XMLPUBFUN int XMLCALL xmlUCSIsCatZs	(int code);
-
-XMLPUBFUN int XMLCALL xmlUCSIsCat	(int code, const char *cat);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_UNICODE_ENABLED */
-
-#endif /* __XML_UNICODE_H__ */
diff --git a/interfaces/ext/libxml/xmlversion.h b/interfaces/ext/libxml/xmlversion.h
deleted file mode 100644
index 0660956..0000000
--- a/interfaces/ext/libxml/xmlversion.h
+++ /dev/null
@@ -1,458 +0,0 @@
-/*
- * Summary: compile-time version informations
- * Description: compile-time version informations for the XML library
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_VERSION_H__
-#define __XML_VERSION_H__
-
-#include <libxml/xmlexports.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * use those to be sure nothing nasty will happen if
- * your library and includes mismatch
- */
-#ifndef LIBXML2_COMPILING_MSCCDEF
-XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
-#endif /* LIBXML2_COMPILING_MSCCDEF */
-
-/**
- * LIBXML_DOTTED_VERSION:
- *
- * the version string like "1.2.3"
- */
-#define LIBXML_DOTTED_VERSION "2.7.3"
-
-/**
- * LIBXML_VERSION:
- *
- * the version number: 1.2.3 value is 10203
- */
-#define LIBXML_VERSION 20703
-
-/**
- * LIBXML_VERSION_STRING:
- *
- * the version number string, 1.2.3 value is "10203"
- */
-#define LIBXML_VERSION_STRING "20703"
-
-/**
- * LIBXML_VERSION_EXTRA:
- *
- * extra version information, used to show a CVS compilation
- */
-#define LIBXML_VERSION_EXTRA ""
-
-/**
- * LIBXML_TEST_VERSION:
- *
- * Macro to check that the libxml version in use is compatible with
- * the version the software has been compiled against
- */
-#define LIBXML_TEST_VERSION xmlCheckVersion(20703);
-
-#ifndef VMS
-#if 0
-/**
- * WITH_TRIO:
- *
- * defined if the trio support need to be configured in
- */
-#define WITH_TRIO
-#else
-/**
- * WITHOUT_TRIO:
- *
- * defined if the trio support should not be configured in
- */
-#define WITHOUT_TRIO
-#endif
-#else /* VMS */
-/**
- * WITH_TRIO:
- *
- * defined if the trio support need to be configured in
- */
-#define WITH_TRIO 1
-#endif /* VMS */
-
-/**
- * LIBXML_THREAD_ENABLED:
- *
- * Whether the thread support is configured in
- */
-#if 1
-#if defined(_REENTRANT) || defined(__MT__) || \
-    (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L))
-#define LIBXML_THREAD_ENABLED
-#endif
-#endif
-
-/**
- * LIBXML_TREE_ENABLED:
- *
- * Whether the DOM like tree manipulation API support is configured in
- */
-#if 1
-#define LIBXML_TREE_ENABLED
-#endif
-
-/**
- * LIBXML_OUTPUT_ENABLED:
- *
- * Whether the serialization/saving support is configured in
- */
-#if 1
-#define LIBXML_OUTPUT_ENABLED
-#endif
-
-/**
- * LIBXML_PUSH_ENABLED:
- *
- * Whether the push parsing interfaces are configured in
- */
-#if 1
-#define LIBXML_PUSH_ENABLED
-#endif
-
-/**
- * LIBXML_READER_ENABLED:
- *
- * Whether the xmlReader parsing interface is configured in
- */
-#if 1
-#define LIBXML_READER_ENABLED
-#endif
-
-/**
- * LIBXML_PATTERN_ENABLED:
- *
- * Whether the xmlPattern node selection interface is configured in
- */
-#if 1
-#define LIBXML_PATTERN_ENABLED
-#endif
-
-/**
- * LIBXML_WRITER_ENABLED:
- *
- * Whether the xmlWriter saving interface is configured in
- */
-#if 1
-#define LIBXML_WRITER_ENABLED
-#endif
-
-/**
- * LIBXML_SAX1_ENABLED:
- *
- * Whether the older SAX1 interface is configured in
- */
-#if 1
-#define LIBXML_SAX1_ENABLED
-#endif
-
-/**
- * LIBXML_FTP_ENABLED:
- *
- * Whether the FTP support is configured in
- */
-#if 1
-#define LIBXML_FTP_ENABLED
-#endif
-
-/**
- * LIBXML_HTTP_ENABLED:
- *
- * Whether the HTTP support is configured in
- */
-#if 1
-#define LIBXML_HTTP_ENABLED
-#endif
-
-/**
- * LIBXML_VALID_ENABLED:
- *
- * Whether the DTD validation support is configured in
- */
-#if 1
-#define LIBXML_VALID_ENABLED
-#endif
-
-/**
- * LIBXML_HTML_ENABLED:
- *
- * Whether the HTML support is configured in
- */
-#if 1
-#define LIBXML_HTML_ENABLED
-#endif
-
-/**
- * LIBXML_LEGACY_ENABLED:
- *
- * Whether the deprecated APIs are compiled in for compatibility
- */
-#if 1
-#define LIBXML_LEGACY_ENABLED
-#endif
-
-/**
- * LIBXML_C14N_ENABLED:
- *
- * Whether the Canonicalization support is configured in
- */
-#if 1
-#define LIBXML_C14N_ENABLED
-#endif
-
-/**
- * LIBXML_CATALOG_ENABLED:
- *
- * Whether the Catalog support is configured in
- */
-#if 1
-#define LIBXML_CATALOG_ENABLED
-#endif
-
-/**
- * LIBXML_DOCB_ENABLED:
- *
- * Whether the SGML Docbook support is configured in
- */
-#if 1
-#define LIBXML_DOCB_ENABLED
-#endif
-
-/**
- * LIBXML_XPATH_ENABLED:
- *
- * Whether XPath is configured in
- */
-#if 1
-#define LIBXML_XPATH_ENABLED
-#endif
-
-/**
- * LIBXML_XPTR_ENABLED:
- *
- * Whether XPointer is configured in
- */
-#if 1
-#define LIBXML_XPTR_ENABLED
-#endif
-
-/**
- * LIBXML_XINCLUDE_ENABLED:
- *
- * Whether XInclude is configured in
- */
-#if 1
-#define LIBXML_XINCLUDE_ENABLED
-#endif
-
-/**
- * LIBXML_ICONV_ENABLED:
- *
- * Whether iconv support is available
- */
-#if 1
-#define LIBXML_ICONV_ENABLED
-#endif
-
-/**
- * LIBXML_ISO8859X_ENABLED:
- *
- * Whether ISO-8859-* support is made available in case iconv is not
- */
-#if 1
-#define LIBXML_ISO8859X_ENABLED
-#endif
-
-/**
- * LIBXML_DEBUG_ENABLED:
- *
- * Whether Debugging module is configured in
- */
-#if 0
-#define LIBXML_DEBUG_ENABLED
-#endif
-
-/**
- * DEBUG_MEMORY_LOCATION:
- *
- * Whether the memory debugging is configured in
- */
-#if 0
-#define DEBUG_MEMORY_LOCATION
-#endif
-
-/**
- * LIBXML_DEBUG_RUNTIME:
- *
- * Whether the runtime debugging is configured in
- */
-#if 0
-#define LIBXML_DEBUG_RUNTIME
-#endif
-
-/**
- * LIBXML_UNICODE_ENABLED:
- *
- * Whether the Unicode related interfaces are compiled in
- */
-#if 1
-#define LIBXML_UNICODE_ENABLED
-#endif
-
-/**
- * LIBXML_REGEXP_ENABLED:
- *
- * Whether the regular expressions interfaces are compiled in
- */
-#if 1
-#define LIBXML_REGEXP_ENABLED
-#endif
-
-/**
- * LIBXML_AUTOMATA_ENABLED:
- *
- * Whether the automata interfaces are compiled in
- */
-#if 1
-#define LIBXML_AUTOMATA_ENABLED
-#endif
-
-/**
- * LIBXML_EXPR_ENABLED:
- *
- * Whether the formal expressions interfaces are compiled in
- */
-#if 1
-#define LIBXML_EXPR_ENABLED
-#endif
-
-/**
- * LIBXML_SCHEMAS_ENABLED:
- *
- * Whether the Schemas validation interfaces are compiled in
- */
-#if 1
-#define LIBXML_SCHEMAS_ENABLED
-#endif
-
-/**
- * LIBXML_SCHEMATRON_ENABLED:
- *
- * Whether the Schematron validation interfaces are compiled in
- */
-#if 1
-#define LIBXML_SCHEMATRON_ENABLED
-#endif
-
-/**
- * LIBXML_MODULES_ENABLED:
- *
- * Whether the module interfaces are compiled in
- */
-#if 1
-#define LIBXML_MODULES_ENABLED
-/**
- * LIBXML_MODULE_EXTENSION:
- *
- * the string suffix used by dynamic modules (usually shared libraries)
- */
-#define LIBXML_MODULE_EXTENSION ".so" 
-#endif
-
-/**
- * LIBXML_ZLIB_ENABLED:
- *
- * Whether the Zlib support is compiled in
- */
-#if 0
-#define LIBXML_ZLIB_ENABLED
-#endif
-
-#ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
-
-/**
- * ATTRIBUTE_UNUSED:
- *
- * Macro used to signal to GCC unused function parameters
- */
-
-#ifndef ATTRIBUTE_UNUSED
-#define ATTRIBUTE_UNUSED __attribute__((unused))
-#endif
-
-/**
- * ATTRIBUTE_ALLOC_SIZE:
- *
- * Macro used to indicate to GCC this is an allocator function
- */
-
-#ifndef ATTRIBUTE_ALLOC_SIZE
-# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
-#  define ATTRIBUTE_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
-# else
-#  define ATTRIBUTE_ALLOC_SIZE(x)
-# endif
-#else
-# define ATTRIBUTE_ALLOC_SIZE(x)
-#endif
-
-/**
- * ATTRIBUTE_PRINTF:
- *
- * Macro used to indicate to GCC the parameter are printf like
- */
-
-#ifndef ATTRIBUTE_PRINTF
-# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
-#  define ATTRIBUTE_PRINTF(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
-# else
-#  define ATTRIBUTE_PRINTF(fmt,args)
-# endif
-#else
-# define ATTRIBUTE_PRINTF(fmt,args)
-#endif
-
-#else /* ! __GNUC__ */
-/**
- * ATTRIBUTE_UNUSED:
- *
- * Macro used to signal to GCC unused function parameters
- */
-#define ATTRIBUTE_UNUSED
-/**
- * ATTRIBUTE_ALLOC_SIZE:
- *
- * Macro used to indicate to GCC this is an allocator function
- */
-#define ATTRIBUTE_ALLOC_SIZE(x)
-/**
- * ATTRIBUTE_PRINTF:
- *
- * Macro used to indicate to GCC the parameter are printf like
- */
-#define ATTRIBUTE_PRINTF(fmt,args)
-#endif /* __GNUC__ */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif
-
-
diff --git a/interfaces/ext/libxml/xmlwriter.h b/interfaces/ext/libxml/xmlwriter.h
deleted file mode 100644
index df4509d..0000000
--- a/interfaces/ext/libxml/xmlwriter.h
+++ /dev/null
@@ -1,485 +0,0 @@
-
-/*
- * Summary: text writing API for XML
- * Description: text writing API for XML
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Alfred Mickautsch <alfred at mickautsch.de>
- */
-
-#ifndef __XML_XMLWRITER_H__
-#define __XML_XMLWRITER_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_WRITER_ENABLED
-
-#include <stdarg.h>
-#include <libxml/xmlIO.h>
-#include <libxml/list.h>
-#include <libxml/xmlstring.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    typedef struct _xmlTextWriter xmlTextWriter;
-    typedef xmlTextWriter *xmlTextWriterPtr;
-
-/*
- * Constructors & Destructor
- */
-    XMLPUBFUN xmlTextWriterPtr XMLCALL
-        xmlNewTextWriter(xmlOutputBufferPtr out);
-    XMLPUBFUN xmlTextWriterPtr XMLCALL
-        xmlNewTextWriterFilename(const char *uri, int compression);
-    XMLPUBFUN xmlTextWriterPtr XMLCALL
-        xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
-    XMLPUBFUN xmlTextWriterPtr XMLCALL
-        xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
-    XMLPUBFUN xmlTextWriterPtr XMLCALL
-        xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
-    XMLPUBFUN xmlTextWriterPtr XMLCALL
-        xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
-                             int compression);
-    XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
-
-/*
- * Functions
- */
-
-
-/*
- * Document
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartDocument(xmlTextWriterPtr writer,
-                                   const char *version,
-                                   const char *encoding,
-                                   const char *standalone);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
-                                                   writer);
-
-/*
- * Comments
- */
-    XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
-                                                    writer);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
-                                        const char *format, ...)
-					ATTRIBUTE_PRINTF(2,3);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
-                                         const char *format,
-                                         va_list argptr)
-					 ATTRIBUTE_PRINTF(2,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
-                                                    writer,
-                                                    const xmlChar *
-                                                    content);
-
-/*
- * Elements
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartElement(xmlTextWriterPtr writer,
-                                  const xmlChar * name);
-    XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
-                                                      writer,
-                                                      const xmlChar *
-                                                      prefix,
-                                                      const xmlChar * name,
-                                                      const xmlChar *
-                                                      namespaceURI);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
-    XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
-                                                      writer);
-
-/*
- * Elements conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
-                                        const xmlChar * name,
-                                        const char *format, ...)
-					ATTRIBUTE_PRINTF(3,4);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
-                                         const xmlChar * name,
-                                         const char *format,
-                                         va_list argptr)
-					 ATTRIBUTE_PRINTF(3,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
-                                                    writer,
-                                                    const xmlChar * name,
-                                                    const xmlChar *
-                                                    content);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
-                                          const xmlChar * prefix,
-                                          const xmlChar * name,
-                                          const xmlChar * namespaceURI,
-                                          const char *format, ...)
-					  ATTRIBUTE_PRINTF(5,6);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
-                                           const xmlChar * prefix,
-                                           const xmlChar * name,
-                                           const xmlChar * namespaceURI,
-                                           const char *format,
-                                           va_list argptr)
-					   ATTRIBUTE_PRINTF(5,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr
-                                                      writer,
-                                                      const xmlChar *
-                                                      prefix,
-                                                      const xmlChar * name,
-                                                      const xmlChar *
-                                                      namespaceURI,
-                                                      const xmlChar *
-                                                      content);
-
-/*
- * Text
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
-                                    const char *format, ...)
-				    ATTRIBUTE_PRINTF(2,3);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
-                                     const char *format, va_list argptr)
-				     ATTRIBUTE_PRINTF(2,0);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
-                                 const xmlChar * content, int len);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
-                              const xmlChar * content);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr
-                                                         writer,
-                                                         const char
-                                                         *format, ...)
-							 ATTRIBUTE_PRINTF(2,3);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
-                                                          writer,
-                                                          const char
-                                                          *format,
-                                                          va_list argptr)
-							  ATTRIBUTE_PRINTF(2,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer,
-                                                   const xmlChar *
-                                                   content);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
-                                                   const char *data,
-                                                   int start, int len);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
-                                                   const char *data,
-                                                   int start, int len);
-
-/*
- * Attributes
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
-                                    const xmlChar * name);
-    XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr
-                                                        writer,
-                                                        const xmlChar *
-                                                        prefix,
-                                                        const xmlChar *
-                                                        name,
-                                                        const xmlChar *
-                                                        namespaceURI);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr
-                                                    writer);
-
-/*
- * Attributes conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
-                                          const xmlChar * name,
-                                          const char *format, ...)
-					  ATTRIBUTE_PRINTF(3,4);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
-                                           const xmlChar * name,
-                                           const char *format,
-                                           va_list argptr)
-					   ATTRIBUTE_PRINTF(3,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
-                                                      writer,
-                                                      const xmlChar * name,
-                                                      const xmlChar *
-                                                      content);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
-                                            const xmlChar * prefix,
-                                            const xmlChar * name,
-                                            const xmlChar * namespaceURI,
-                                            const char *format, ...)
-					    ATTRIBUTE_PRINTF(5,6);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
-                                             const xmlChar * prefix,
-                                             const xmlChar * name,
-                                             const xmlChar * namespaceURI,
-                                             const char *format,
-                                             va_list argptr)
-					     ATTRIBUTE_PRINTF(5,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
-                                                        writer,
-                                                        const xmlChar *
-                                                        prefix,
-                                                        const xmlChar *
-                                                        name,
-                                                        const xmlChar *
-                                                        namespaceURI,
-                                                        const xmlChar *
-                                                        content);
-
-/*
- * PI's
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartPI(xmlTextWriterPtr writer,
-                             const xmlChar * target);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
-
-/*
- * PI conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
-                                   const xmlChar * target,
-                                   const char *format, ...)
-				   ATTRIBUTE_PRINTF(3,4);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
-                                    const xmlChar * target,
-                                    const char *format, va_list argptr)
-				    ATTRIBUTE_PRINTF(3,0);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWritePI(xmlTextWriterPtr writer,
-                             const xmlChar * target,
-                             const xmlChar * content);
-
-/**
- * xmlTextWriterWriteProcessingInstruction:
- *
- * This macro maps to xmlTextWriterWritePI
- */
-#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
-
-/*
- * CDATA
- */
-    XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
-
-/*
- * CDATA conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
-                                      const char *format, ...)
-				      ATTRIBUTE_PRINTF(2,3);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
-                                       const char *format, va_list argptr)
-				       ATTRIBUTE_PRINTF(2,0);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
-                                const xmlChar * content);
-
-/*
- * DTD
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartDTD(xmlTextWriterPtr writer,
-                              const xmlChar * name,
-                              const xmlChar * pubid,
-                              const xmlChar * sysid);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer);
-
-/*
- * DTD conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
-                                    const xmlChar * name,
-                                    const xmlChar * pubid,
-                                    const xmlChar * sysid,
-                                    const char *format, ...)
-				    ATTRIBUTE_PRINTF(5,6);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
-                                     const xmlChar * name,
-                                     const xmlChar * pubid,
-                                     const xmlChar * sysid,
-                                     const char *format, va_list argptr)
-				     ATTRIBUTE_PRINTF(5,0);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
-                              const xmlChar * name,
-                              const xmlChar * pubid,
-                              const xmlChar * sysid,
-                              const xmlChar * subset);
-
-/**
- * xmlTextWriterWriteDocType:
- *
- * this macro maps to xmlTextWriterWriteDTD
- */
-#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
-
-/*
- * DTD element definition
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
-                                     const xmlChar * name);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
-                                                     writer);
-
-/*
- * DTD element definition conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
-                                           const xmlChar * name,
-                                           const char *format, ...)
-					   ATTRIBUTE_PRINTF(3,4);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
-                                            const xmlChar * name,
-                                            const char *format,
-                                            va_list argptr)
-					    ATTRIBUTE_PRINTF(3,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
-                                                       writer,
-                                                       const xmlChar *
-                                                       name,
-                                                       const xmlChar *
-                                                       content);
-
-/*
- * DTD attribute list definition
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
-                                     const xmlChar * name);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
-                                                     writer);
-
-/*
- * DTD attribute list definition conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
-                                           const xmlChar * name,
-                                           const char *format, ...)
-					   ATTRIBUTE_PRINTF(3,4);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
-                                            const xmlChar * name,
-                                            const char *format,
-                                            va_list argptr)
-					    ATTRIBUTE_PRINTF(3,0);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
-                                                       writer,
-                                                       const xmlChar *
-                                                       name,
-                                                       const xmlChar *
-                                                       content);
-
-/*
- * DTD entity definition
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
-                                    int pe, const xmlChar * name);
-    XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
-                                                    writer);
-
-/*
- * DTD entity definition conveniency functions
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
-                                                  int pe,
-                                                  const xmlChar * name,
-                                                  const char *format, ...)
-						  ATTRIBUTE_PRINTF(4,5);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
-                                                   int pe,
-                                                   const xmlChar * name,
-                                                   const char *format,
-                                                   va_list argptr)
-						   ATTRIBUTE_PRINTF(4,0);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
-                                            int pe,
-                                            const xmlChar * name,
-                                            const xmlChar * content);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
-                                            int pe,
-                                            const xmlChar * name,
-                                            const xmlChar * pubid,
-                                            const xmlChar * sysid,
-                                            const xmlChar * ndataid);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
-                                                    writer,
-                                                    const xmlChar * pubid,
-                                                    const xmlChar * sysid,
-                                                    const xmlChar *
-                                                    ndataid);
-    XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
-                                                      writer, int pe,
-                                                      const xmlChar * name,
-                                                      const xmlChar *
-                                                      pubid,
-                                                      const xmlChar *
-                                                      sysid,
-                                                      const xmlChar *
-                                                      ndataid,
-                                                      const xmlChar *
-                                                      content);
-
-/*
- * DTD notation definition
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
-                                      const xmlChar * name,
-                                      const xmlChar * pubid,
-                                      const xmlChar * sysid);
-
-/*
- * Indentation
- */
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
-    XMLPUBFUN int XMLCALL
-        xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
-                                     const xmlChar * str);
-
-/*
- * misc
- */
-    XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_WRITER_ENABLED */
-
-#endif                          /* __XML_XMLWRITER_H__ */
diff --git a/interfaces/ext/libxml/xpath.h b/interfaces/ext/libxml/xpath.h
deleted file mode 100644
index 1a9e30e..0000000
--- a/interfaces/ext/libxml/xpath.h
+++ /dev/null
@@ -1,546 +0,0 @@
-/*
- * Summary: XML Path Language implementation
- * Description: API for the XML Path Language implementation
- *
- * XML Path Language implementation
- * XPath is a language for addressing parts of an XML document,
- * designed to be used by both XSLT and XPointer
- *     http://www.w3.org/TR/xpath
- *
- * Implements
- * W3C Recommendation 16 November 1999
- *     http://www.w3.org/TR/1999/REC-xpath-19991116
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_XPATH_H__
-#define __XML_XPATH_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_XPATH_ENABLED
-
-#include <libxml/xmlerror.h>
-#include <libxml/tree.h>
-#include <libxml/hash.h>
-#endif /* LIBXML_XPATH_ENABLED */
-
-#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif /* LIBXML_XPATH_ENABLED or LIBXML_SCHEMAS_ENABLED */
-	
-#ifdef LIBXML_XPATH_ENABLED
-
-typedef struct _xmlXPathContext xmlXPathContext;
-typedef xmlXPathContext *xmlXPathContextPtr;
-typedef struct _xmlXPathParserContext xmlXPathParserContext;
-typedef xmlXPathParserContext *xmlXPathParserContextPtr;
-
-/**
- * The set of XPath error codes.
- */
-
-typedef enum {
-    XPATH_EXPRESSION_OK = 0,
-    XPATH_NUMBER_ERROR,
-    XPATH_UNFINISHED_LITERAL_ERROR,
-    XPATH_START_LITERAL_ERROR,
-    XPATH_VARIABLE_REF_ERROR,
-    XPATH_UNDEF_VARIABLE_ERROR,
-    XPATH_INVALID_PREDICATE_ERROR,
-    XPATH_EXPR_ERROR,
-    XPATH_UNCLOSED_ERROR,
-    XPATH_UNKNOWN_FUNC_ERROR,
-    XPATH_INVALID_OPERAND,
-    XPATH_INVALID_TYPE,
-    XPATH_INVALID_ARITY,
-    XPATH_INVALID_CTXT_SIZE,
-    XPATH_INVALID_CTXT_POSITION,
-    XPATH_MEMORY_ERROR,
-    XPTR_SYNTAX_ERROR,
-    XPTR_RESOURCE_ERROR,
-    XPTR_SUB_RESOURCE_ERROR,
-    XPATH_UNDEF_PREFIX_ERROR,
-    XPATH_ENCODING_ERROR,
-    XPATH_INVALID_CHAR_ERROR,
-    XPATH_INVALID_CTXT
-} xmlXPathError;
-
-/*
- * A node-set (an unordered collection of nodes without duplicates).
- */
-typedef struct _xmlNodeSet xmlNodeSet;
-typedef xmlNodeSet *xmlNodeSetPtr;
-struct _xmlNodeSet {
-    int nodeNr;			/* number of nodes in the set */
-    int nodeMax;		/* size of the array as allocated */
-    xmlNodePtr *nodeTab;	/* array of nodes in no particular order */
-    /* @@ with_ns to check wether namespace nodes should be looked at @@ */
-};
-
-/*
- * An expression is evaluated to yield an object, which
- * has one of the following four basic types:
- *   - node-set
- *   - boolean
- *   - number
- *   - string
- *
- * @@ XPointer will add more types !
- */
-
-typedef enum {
-    XPATH_UNDEFINED = 0,
-    XPATH_NODESET = 1,
-    XPATH_BOOLEAN = 2,
-    XPATH_NUMBER = 3,
-    XPATH_STRING = 4,
-    XPATH_POINT = 5,
-    XPATH_RANGE = 6,
-    XPATH_LOCATIONSET = 7,
-    XPATH_USERS = 8,
-    XPATH_XSLT_TREE = 9  /* An XSLT value tree, non modifiable */
-} xmlXPathObjectType;
-
-typedef struct _xmlXPathObject xmlXPathObject;
-typedef xmlXPathObject *xmlXPathObjectPtr;
-struct _xmlXPathObject {
-    xmlXPathObjectType type;
-    xmlNodeSetPtr nodesetval;
-    int boolval;
-    double floatval;
-    xmlChar *stringval;
-    void *user;
-    int index;
-    void *user2;
-    int index2;
-};
-
-/**
- * xmlXPathConvertFunc:
- * @obj:  an XPath object
- * @type:  the number of the target type
- *
- * A conversion function is associated to a type and used to cast
- * the new type to primitive values.
- *
- * Returns -1 in case of error, 0 otherwise
- */
-typedef int (*xmlXPathConvertFunc) (xmlXPathObjectPtr obj, int type);
-
-/*
- * Extra type: a name and a conversion function.
- */
-
-typedef struct _xmlXPathType xmlXPathType;
-typedef xmlXPathType *xmlXPathTypePtr;
-struct _xmlXPathType {
-    const xmlChar         *name;		/* the type name */
-    xmlXPathConvertFunc func;		/* the conversion function */
-};
-
-/*
- * Extra variable: a name and a value.
- */
-
-typedef struct _xmlXPathVariable xmlXPathVariable;
-typedef xmlXPathVariable *xmlXPathVariablePtr;
-struct _xmlXPathVariable {
-    const xmlChar       *name;		/* the variable name */
-    xmlXPathObjectPtr value;		/* the value */
-};
-
-/**
- * xmlXPathEvalFunc:
- * @ctxt: an XPath parser context
- * @nargs: the number of arguments passed to the function
- *
- * An XPath evaluation function, the parameters are on the XPath context stack.
- */
-
-typedef void (*xmlXPathEvalFunc)(xmlXPathParserContextPtr ctxt,
-	                         int nargs);
-
-/*
- * Extra function: a name and a evaluation function.
- */
-
-typedef struct _xmlXPathFunct xmlXPathFunct;
-typedef xmlXPathFunct *xmlXPathFuncPtr;
-struct _xmlXPathFunct {
-    const xmlChar      *name;		/* the function name */
-    xmlXPathEvalFunc func;		/* the evaluation function */
-};
-
-/**
- * xmlXPathAxisFunc:
- * @ctxt:  the XPath interpreter context
- * @cur:  the previous node being explored on that axis
- *
- * An axis traversal function. To traverse an axis, the engine calls
- * the first time with cur == NULL and repeat until the function returns
- * NULL indicating the end of the axis traversal.
- *
- * Returns the next node in that axis or NULL if at the end of the axis.
- */
-
-typedef xmlXPathObjectPtr (*xmlXPathAxisFunc) (xmlXPathParserContextPtr ctxt,
-				 xmlXPathObjectPtr cur);
-
-/*
- * Extra axis: a name and an axis function.
- */
-
-typedef struct _xmlXPathAxis xmlXPathAxis;
-typedef xmlXPathAxis *xmlXPathAxisPtr;
-struct _xmlXPathAxis {
-    const xmlChar      *name;		/* the axis name */
-    xmlXPathAxisFunc func;		/* the search function */
-};
-
-/**
- * xmlXPathFunction:
- * @ctxt:  the XPath interprestation context
- * @nargs:  the number of arguments
- *
- * An XPath function.
- * The arguments (if any) are popped out from the context stack
- * and the result is pushed on the stack.
- */
-
-typedef void (*xmlXPathFunction) (xmlXPathParserContextPtr ctxt, int nargs);
-
-/*
- * Function and Variable Lookup.
- */
-
-/**
- * xmlXPathVariableLookupFunc:
- * @ctxt:  an XPath context
- * @name:  name of the variable
- * @ns_uri:  the namespace name hosting this variable
- *
- * Prototype for callbacks used to plug variable lookup in the XPath
- * engine.
- *
- * Returns the XPath object value or NULL if not found.
- */
-typedef xmlXPathObjectPtr (*xmlXPathVariableLookupFunc) (void *ctxt,
-                                         const xmlChar *name,
-                                         const xmlChar *ns_uri);
-
-/**
- * xmlXPathFuncLookupFunc:
- * @ctxt:  an XPath context
- * @name:  name of the function
- * @ns_uri:  the namespace name hosting this function
- *
- * Prototype for callbacks used to plug function lookup in the XPath
- * engine.
- *
- * Returns the XPath function or NULL if not found.
- */
-typedef xmlXPathFunction (*xmlXPathFuncLookupFunc) (void *ctxt,
-					 const xmlChar *name,
-					 const xmlChar *ns_uri);
-
-/**
- * xmlXPathFlags:
- * Flags for XPath engine compilation and runtime
- */
-/**
- * XML_XPATH_CHECKNS:
- *
- * check namespaces at compilation
- */
-#define XML_XPATH_CHECKNS (1<<0)
-/**
- * XML_XPATH_NOVAR:
- *
- * forbid variables in expression
- */
-#define XML_XPATH_NOVAR	  (1<<1)
-
-/**
- * xmlXPathContext:
- *
- * Expression evaluation occurs with respect to a context.
- * he context consists of:
- *    - a node (the context node) 
- *    - a node list (the context node list) 
- *    - a set of variable bindings 
- *    - a function library 
- *    - the set of namespace declarations in scope for the expression 
- * Following the switch to hash tables, this need to be trimmed up at
- * the next binary incompatible release.
- * The node may be modified when the context is passed to libxml2
- * for an XPath evaluation so you may need to initialize it again
- * before the next call.
- */
-
-struct _xmlXPathContext {
-    xmlDocPtr doc;			/* The current document */
-    xmlNodePtr node;			/* The current node */
-
-    int nb_variables_unused;		/* unused (hash table) */
-    int max_variables_unused;		/* unused (hash table) */
-    xmlHashTablePtr varHash;		/* Hash table of defined variables */
-
-    int nb_types;			/* number of defined types */
-    int max_types;			/* max number of types */
-    xmlXPathTypePtr types;		/* Array of defined types */
-
-    int nb_funcs_unused;		/* unused (hash table) */
-    int max_funcs_unused;		/* unused (hash table) */
-    xmlHashTablePtr funcHash;		/* Hash table of defined funcs */
-
-    int nb_axis;			/* number of defined axis */
-    int max_axis;			/* max number of axis */
-    xmlXPathAxisPtr axis;		/* Array of defined axis */
-
-    /* the namespace nodes of the context node */
-    xmlNsPtr *namespaces;		/* Array of namespaces */
-    int nsNr;				/* number of namespace in scope */
-    void *user;				/* function to free */
-
-    /* extra variables */
-    int contextSize;			/* the context size */
-    int proximityPosition;		/* the proximity position */
-
-    /* extra stuff for XPointer */
-    int xptr;				/* is this an XPointer context? */
-    xmlNodePtr here;			/* for here() */
-    xmlNodePtr origin;			/* for origin() */
-
-    /* the set of namespace declarations in scope for the expression */
-    xmlHashTablePtr nsHash;		/* The namespaces hash table */
-    xmlXPathVariableLookupFunc varLookupFunc;/* variable lookup func */
-    void *varLookupData;		/* variable lookup data */
-
-    /* Possibility to link in an extra item */
-    void *extra;                        /* needed for XSLT */
-
-    /* The function name and URI when calling a function */
-    const xmlChar *function;
-    const xmlChar *functionURI;
-
-    /* function lookup function and data */
-    xmlXPathFuncLookupFunc funcLookupFunc;/* function lookup func */
-    void *funcLookupData;		/* function lookup data */
-
-    /* temporary namespace lists kept for walking the namespace axis */
-    xmlNsPtr *tmpNsList;		/* Array of namespaces */
-    int tmpNsNr;			/* number of namespaces in scope */
-
-    /* error reporting mechanism */
-    void *userData;                     /* user specific data block */
-    xmlStructuredErrorFunc error;       /* the callback in case of errors */
-    xmlError lastError;			/* the last error */
-    xmlNodePtr debugNode;		/* the source node XSLT */
-
-    /* dictionary */
-    xmlDictPtr dict;			/* dictionary if any */
-
-    int flags;				/* flags to control compilation */
-
-    /* Cache for reusal of XPath objects */
-    void *cache;
-};
-
-/*
- * The structure of a compiled expression form is not public.
- */
-
-typedef struct _xmlXPathCompExpr xmlXPathCompExpr;
-typedef xmlXPathCompExpr *xmlXPathCompExprPtr;
-
-/**
- * xmlXPathParserContext:
- *
- * An XPath parser context. It contains pure parsing informations,
- * an xmlXPathContext, and the stack of objects.
- */
-struct _xmlXPathParserContext {
-    const xmlChar *cur;			/* the current char being parsed */
-    const xmlChar *base;			/* the full expression */
-
-    int error;				/* error code */
-
-    xmlXPathContextPtr  context;	/* the evaluation context */
-    xmlXPathObjectPtr     value;	/* the current value */
-    int                 valueNr;	/* number of values stacked */
-    int                valueMax;	/* max number of values stacked */
-    xmlXPathObjectPtr *valueTab;	/* stack of values */
-
-    xmlXPathCompExprPtr comp;		/* the precompiled expression */
-    int xptr;				/* it this an XPointer expression */
-    xmlNodePtr         ancestor;	/* used for walking preceding axis */
-};
-
-/************************************************************************
- *									*
- *			Public API					*
- *									*
- ************************************************************************/
-
-/**
- * Objects and Nodesets handling
- */
-
-XMLPUBVAR double xmlXPathNAN;
-XMLPUBVAR double xmlXPathPINF;
-XMLPUBVAR double xmlXPathNINF;
-
-/* These macros may later turn into functions */
-/**
- * xmlXPathNodeSetGetLength:
- * @ns:  a node-set
- *
- * Implement a functionality similar to the DOM NodeList.length.
- *
- * Returns the number of nodes in the node-set.
- */
-#define xmlXPathNodeSetGetLength(ns) ((ns) ? (ns)->nodeNr : 0)
-/**
- * xmlXPathNodeSetItem:
- * @ns:  a node-set
- * @index:  index of a node in the set
- *
- * Implements a functionality similar to the DOM NodeList.item().
- *
- * Returns the xmlNodePtr at the given @index in @ns or NULL if
- *         @index is out of range (0 to length-1)
- */
-#define xmlXPathNodeSetItem(ns, index)				\
-		((((ns) != NULL) && 				\
-		  ((index) >= 0) && ((index) < (ns)->nodeNr)) ?	\
-		 (ns)->nodeTab[(index)]				\
-		 : NULL)
-/**
- * xmlXPathNodeSetIsEmpty:
- * @ns: a node-set
- *
- * Checks whether @ns is empty or not.
- *
- * Returns %TRUE if @ns is an empty node-set.
- */
-#define xmlXPathNodeSetIsEmpty(ns)                                      \
-    (((ns) == NULL) || ((ns)->nodeNr == 0) || ((ns)->nodeTab == NULL))
-
-
-XMLPUBFUN void XMLCALL		   
-		    xmlXPathFreeObject		(xmlXPathObjectPtr obj);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	   
-		    xmlXPathNodeSetCreate	(xmlNodePtr val);
-XMLPUBFUN void XMLCALL		   
-		    xmlXPathFreeNodeSetList	(xmlXPathObjectPtr obj);
-XMLPUBFUN void XMLCALL		   
-		    xmlXPathFreeNodeSet		(xmlNodeSetPtr obj);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		    xmlXPathObjectCopy		(xmlXPathObjectPtr val);
-XMLPUBFUN int XMLCALL		   
-		    xmlXPathCmpNodes		(xmlNodePtr node1,
-						 xmlNodePtr node2);
-/**
- * Conversion functions to basic types.
- */
-XMLPUBFUN int XMLCALL		   
-		    xmlXPathCastNumberToBoolean	(double val);
-XMLPUBFUN int XMLCALL		   
-		    xmlXPathCastStringToBoolean	(const xmlChar * val);
-XMLPUBFUN int XMLCALL		   
-		    xmlXPathCastNodeSetToBoolean(xmlNodeSetPtr ns);
-XMLPUBFUN int XMLCALL		   
-		    xmlXPathCastToBoolean	(xmlXPathObjectPtr val);
-
-XMLPUBFUN double XMLCALL		   
-		    xmlXPathCastBooleanToNumber	(int val);
-XMLPUBFUN double XMLCALL		   
-		    xmlXPathCastStringToNumber	(const xmlChar * val);
-XMLPUBFUN double XMLCALL		   
-		    xmlXPathCastNodeToNumber	(xmlNodePtr node);
-XMLPUBFUN double XMLCALL		   
-		    xmlXPathCastNodeSetToNumber	(xmlNodeSetPtr ns);
-XMLPUBFUN double XMLCALL		   
-		    xmlXPathCastToNumber	(xmlXPathObjectPtr val);
-
-XMLPUBFUN xmlChar * XMLCALL	   
-		    xmlXPathCastBooleanToString	(int val);
-XMLPUBFUN xmlChar * XMLCALL	   
-		    xmlXPathCastNumberToString	(double val);
-XMLPUBFUN xmlChar * XMLCALL	   
-		    xmlXPathCastNodeToString	(xmlNodePtr node);
-XMLPUBFUN xmlChar * XMLCALL	   
-		    xmlXPathCastNodeSetToString	(xmlNodeSetPtr ns);
-XMLPUBFUN xmlChar * XMLCALL	   
-		    xmlXPathCastToString	(xmlXPathObjectPtr val);
-
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		    xmlXPathConvertBoolean	(xmlXPathObjectPtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		    xmlXPathConvertNumber	(xmlXPathObjectPtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		    xmlXPathConvertString	(xmlXPathObjectPtr val);
-
-/**
- * Context handling.
- */
-XMLPUBFUN xmlXPathContextPtr XMLCALL 
-		    xmlXPathNewContext		(xmlDocPtr doc);
-XMLPUBFUN void XMLCALL
-		    xmlXPathFreeContext		(xmlXPathContextPtr ctxt);
-XMLPUBFUN int XMLCALL
-		    xmlXPathContextSetCache(xmlXPathContextPtr ctxt,
-				            int active,
-					    int value,
-					    int options);
-/**
- * Evaluation functions.
- */
-XMLPUBFUN long XMLCALL               
-		    xmlXPathOrderDocElems	(xmlDocPtr doc);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		    xmlXPathEval		(const xmlChar *str,
-						 xmlXPathContextPtr ctx);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		    xmlXPathEvalExpression	(const xmlChar *str,
-						 xmlXPathContextPtr ctxt);
-XMLPUBFUN int XMLCALL                
-		    xmlXPathEvalPredicate	(xmlXPathContextPtr ctxt,
-						 xmlXPathObjectPtr res);
-/**
- * Separate compilation/evaluation entry points.
- */
-XMLPUBFUN xmlXPathCompExprPtr XMLCALL 
-		    xmlXPathCompile		(const xmlChar *str);
-XMLPUBFUN xmlXPathCompExprPtr XMLCALL 
-		    xmlXPathCtxtCompile		(xmlXPathContextPtr ctxt,
-		    				 const xmlChar *str);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL   
-		    xmlXPathCompiledEval	(xmlXPathCompExprPtr comp,
-						 xmlXPathContextPtr ctx);
-XMLPUBFUN int XMLCALL   
-		    xmlXPathCompiledEvalToBoolean(xmlXPathCompExprPtr comp,
-						 xmlXPathContextPtr ctxt);
-XMLPUBFUN void XMLCALL                
-		    xmlXPathFreeCompExpr	(xmlXPathCompExprPtr comp);
-#endif /* LIBXML_XPATH_ENABLED */
-#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
-XMLPUBFUN void XMLCALL		   
-		    xmlXPathInit		(void);
-XMLPUBFUN int XMLCALL
-		xmlXPathIsNaN	(double val);
-XMLPUBFUN int XMLCALL
-		xmlXPathIsInf	(double val);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_XPATH_ENABLED or LIBXML_SCHEMAS_ENABLED*/
-#endif /* ! __XML_XPATH_H__ */
diff --git a/interfaces/ext/libxml/xpathInternals.h b/interfaces/ext/libxml/xpathInternals.h
deleted file mode 100644
index dcd5243..0000000
--- a/interfaces/ext/libxml/xpathInternals.h
+++ /dev/null
@@ -1,630 +0,0 @@
-/*
- * Summary: internal interfaces for XML Path Language implementation
- * Description: internal interfaces for XML Path Language implementation
- *              used to build new modules on top of XPath like XPointer and
- *              XSLT
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_XPATH_INTERNALS_H__
-#define __XML_XPATH_INTERNALS_H__
-
-#include <libxml/xmlversion.h>
-#include <libxml/xpath.h>
-
-#ifdef LIBXML_XPATH_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/************************************************************************
- *									*
- *			Helpers						*
- *									*
- ************************************************************************/
-
-/*
- * Many of these macros may later turn into functions. They
- * shouldn't be used in #ifdef's preprocessor instructions.
- */
-/**
- * xmlXPathSetError:
- * @ctxt:  an XPath parser context
- * @err:  an xmlXPathError code
- *
- * Raises an error.
- */
-#define xmlXPathSetError(ctxt, err)					\
-    { xmlXPatherror((ctxt), __FILE__, __LINE__, (err));			\
-      if ((ctxt) != NULL) (ctxt)->error = (err); }
-
-/**
- * xmlXPathSetArityError:
- * @ctxt:  an XPath parser context
- *
- * Raises an XPATH_INVALID_ARITY error.
- */
-#define xmlXPathSetArityError(ctxt)					\
-    xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
-
-/**
- * xmlXPathSetTypeError:
- * @ctxt:  an XPath parser context
- *
- * Raises an XPATH_INVALID_TYPE error.
- */
-#define xmlXPathSetTypeError(ctxt)					\
-    xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
-
-/**
- * xmlXPathGetError:
- * @ctxt:  an XPath parser context
- *
- * Get the error code of an XPath context.
- *
- * Returns the context error.
- */
-#define xmlXPathGetError(ctxt)	  ((ctxt)->error)
-
-/**
- * xmlXPathCheckError:
- * @ctxt:  an XPath parser context
- *
- * Check if an XPath error was raised.
- *
- * Returns true if an error has been raised, false otherwise.
- */
-#define xmlXPathCheckError(ctxt)  ((ctxt)->error != XPATH_EXPRESSION_OK)
-
-/**
- * xmlXPathGetDocument:
- * @ctxt:  an XPath parser context
- *
- * Get the document of an XPath context.
- *
- * Returns the context document.
- */
-#define xmlXPathGetDocument(ctxt)	((ctxt)->context->doc)
-
-/**
- * xmlXPathGetContextNode:
- * @ctxt: an XPath parser context
- *
- * Get the context node of an XPath context.
- *
- * Returns the context node.
- */
-#define xmlXPathGetContextNode(ctxt)	((ctxt)->context->node)
-
-XMLPUBFUN int XMLCALL		
-		xmlXPathPopBoolean	(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN double XMLCALL		
-    		xmlXPathPopNumber	(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL	
-    		xmlXPathPopString	(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-    		xmlXPathPopNodeSet	(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void * XMLCALL		
-    		xmlXPathPopExternal	(xmlXPathParserContextPtr ctxt);
-
-/**
- * xmlXPathReturnBoolean:
- * @ctxt:  an XPath parser context
- * @val:  a boolean
- *
- * Pushes the boolean @val on the context stack.
- */
-#define xmlXPathReturnBoolean(ctxt, val)				\
-    valuePush((ctxt), xmlXPathNewBoolean(val))
-
-/**
- * xmlXPathReturnTrue:
- * @ctxt:  an XPath parser context
- *
- * Pushes true on the context stack.
- */
-#define xmlXPathReturnTrue(ctxt)   xmlXPathReturnBoolean((ctxt), 1)
-
-/**
- * xmlXPathReturnFalse:
- * @ctxt:  an XPath parser context
- *
- * Pushes false on the context stack.
- */
-#define xmlXPathReturnFalse(ctxt)  xmlXPathReturnBoolean((ctxt), 0)
-
-/**
- * xmlXPathReturnNumber:
- * @ctxt:  an XPath parser context
- * @val:  a double
- *
- * Pushes the double @val on the context stack.
- */
-#define xmlXPathReturnNumber(ctxt, val)					\
-    valuePush((ctxt), xmlXPathNewFloat(val))
-
-/**
- * xmlXPathReturnString:
- * @ctxt:  an XPath parser context
- * @str:  a string
- *
- * Pushes the string @str on the context stack.
- */
-#define xmlXPathReturnString(ctxt, str)					\
-    valuePush((ctxt), xmlXPathWrapString(str))
-
-/**
- * xmlXPathReturnEmptyString:
- * @ctxt:  an XPath parser context
- *
- * Pushes an empty string on the stack.
- */
-#define xmlXPathReturnEmptyString(ctxt)					\
-    valuePush((ctxt), xmlXPathNewCString(""))
-
-/**
- * xmlXPathReturnNodeSet:
- * @ctxt:  an XPath parser context
- * @ns:  a node-set
- *
- * Pushes the node-set @ns on the context stack.
- */
-#define xmlXPathReturnNodeSet(ctxt, ns)					\
-    valuePush((ctxt), xmlXPathWrapNodeSet(ns))
-
-/**
- * xmlXPathReturnEmptyNodeSet:
- * @ctxt:  an XPath parser context
- *
- * Pushes an empty node-set on the context stack.
- */
-#define xmlXPathReturnEmptyNodeSet(ctxt)				\
-    valuePush((ctxt), xmlXPathNewNodeSet(NULL))
-
-/**
- * xmlXPathReturnExternal:
- * @ctxt:  an XPath parser context
- * @val:  user data
- *
- * Pushes user data on the context stack.
- */
-#define xmlXPathReturnExternal(ctxt, val)				\
-    valuePush((ctxt), xmlXPathWrapExternal(val))
-
-/**
- * xmlXPathStackIsNodeSet:
- * @ctxt: an XPath parser context
- *
- * Check if the current value on the XPath stack is a node set or
- * an XSLT value tree.
- *
- * Returns true if the current object on the stack is a node-set.
- */
-#define xmlXPathStackIsNodeSet(ctxt)					\
-    (((ctxt)->value != NULL)						\
-     && (((ctxt)->value->type == XPATH_NODESET)				\
-         || ((ctxt)->value->type == XPATH_XSLT_TREE)))
-
-/**
- * xmlXPathStackIsExternal:
- * @ctxt: an XPath parser context
- *
- * Checks if the current value on the XPath stack is an external
- * object.
- *
- * Returns true if the current object on the stack is an external
- * object.
- */
-#define xmlXPathStackIsExternal(ctxt)					\
-	((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
-
-/**
- * xmlXPathEmptyNodeSet:
- * @ns:  a node-set
- *
- * Empties a node-set.
- */
-#define xmlXPathEmptyNodeSet(ns)					\
-    { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
-
-/**
- * CHECK_ERROR:
- *
- * Macro to return from the function if an XPath error was detected.
- */
-#define CHECK_ERROR							\
-    if (ctxt->error != XPATH_EXPRESSION_OK) return
-
-/**
- * CHECK_ERROR0:
- *
- * Macro to return 0 from the function if an XPath error was detected.
- */
-#define CHECK_ERROR0							\
-    if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
-
-/**
- * XP_ERROR:
- * @X:  the error code
- *
- * Macro to raise an XPath error and return.
- */
-#define XP_ERROR(X)							\
-    { xmlXPathErr(ctxt, X); return; }
-
-/**
- * XP_ERROR0:
- * @X:  the error code
- *
- * Macro to raise an XPath error and return 0.
- */
-#define XP_ERROR0(X)							\
-    { xmlXPathErr(ctxt, X); return(0); }
-
-/**
- * CHECK_TYPE:
- * @typeval:  the XPath type
- *
- * Macro to check that the value on top of the XPath stack is of a given
- * type.
- */
-#define CHECK_TYPE(typeval)						\
-    if ((ctxt->value == NULL) || (ctxt->value->type != typeval))	\
-        XP_ERROR(XPATH_INVALID_TYPE)
-
-/**
- * CHECK_TYPE0:
- * @typeval:  the XPath type
- *
- * Macro to check that the value on top of the XPath stack is of a given
- * type. Return(0) in case of failure
- */
-#define CHECK_TYPE0(typeval)						\
-    if ((ctxt->value == NULL) || (ctxt->value->type != typeval))	\
-        XP_ERROR0(XPATH_INVALID_TYPE)
-
-/**
- * CHECK_ARITY:
- * @x:  the number of expected args
- *
- * Macro to check that the number of args passed to an XPath function matches.
- */
-#define CHECK_ARITY(x)							\
-    if (ctxt == NULL) return;						\
-    if (nargs != (x))							\
-        XP_ERROR(XPATH_INVALID_ARITY);
-
-/**
- * CAST_TO_STRING:
- *
- * Macro to try to cast the value on the top of the XPath stack to a string.
- */
-#define CAST_TO_STRING							\
-    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING))	\
-        xmlXPathStringFunction(ctxt, 1);
-
-/**
- * CAST_TO_NUMBER:
- *
- * Macro to try to cast the value on the top of the XPath stack to a number.
- */
-#define CAST_TO_NUMBER							\
-    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER))	\
-        xmlXPathNumberFunction(ctxt, 1);
-
-/**
- * CAST_TO_BOOLEAN:
- *
- * Macro to try to cast the value on the top of the XPath stack to a boolean.
- */
-#define CAST_TO_BOOLEAN							\
-    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN))	\
-        xmlXPathBooleanFunction(ctxt, 1);
-
-/*
- * Variable Lookup forwarding.
- */
-
-XMLPUBFUN void XMLCALL	
-	xmlXPathRegisterVariableLookup	(xmlXPathContextPtr ctxt,
-					 xmlXPathVariableLookupFunc f,
-					 void *data);
-
-/*
- * Function Lookup forwarding.
- */
-
-XMLPUBFUN void XMLCALL	
-	    xmlXPathRegisterFuncLookup	(xmlXPathContextPtr ctxt,
-					 xmlXPathFuncLookupFunc f,
-					 void *funcCtxt);
-
-/*
- * Error reporting.
- */
-XMLPUBFUN void XMLCALL		
-		xmlXPatherror	(xmlXPathParserContextPtr ctxt,
-				 const char *file,
-				 int line,
-				 int no);
-
-XMLPUBFUN void XMLCALL
-		xmlXPathErr	(xmlXPathParserContextPtr ctxt,
-				 int error);
-
-#ifdef LIBXML_DEBUG_ENABLED
-XMLPUBFUN void XMLCALL		
-		xmlXPathDebugDumpObject	(FILE *output,
-					 xmlXPathObjectPtr cur,
-					 int depth);
-XMLPUBFUN void XMLCALL		
-	    xmlXPathDebugDumpCompExpr(FILE *output,
-					 xmlXPathCompExprPtr comp,
-					 int depth);
-#endif
-/**
- * NodeSet handling.
- */
-XMLPUBFUN int XMLCALL		
-		xmlXPathNodeSetContains		(xmlNodeSetPtr cur,
-						 xmlNodePtr val);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathDifference		(xmlNodeSetPtr nodes1,
-						 xmlNodeSetPtr nodes2);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathIntersection		(xmlNodeSetPtr nodes1,
-						 xmlNodeSetPtr nodes2);
-
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathDistinctSorted		(xmlNodeSetPtr nodes);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathDistinct		(xmlNodeSetPtr nodes);
-
-XMLPUBFUN int XMLCALL		
-		xmlXPathHasSameNodes		(xmlNodeSetPtr nodes1,
-						 xmlNodeSetPtr nodes2);
-
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathNodeLeadingSorted	(xmlNodeSetPtr nodes,
-						 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathLeadingSorted		(xmlNodeSetPtr nodes1,
-						 xmlNodeSetPtr nodes2);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathNodeLeading		(xmlNodeSetPtr nodes,
-						 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathLeading			(xmlNodeSetPtr nodes1,
-						 xmlNodeSetPtr nodes2);
-
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathNodeTrailingSorted	(xmlNodeSetPtr nodes,
-						 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathTrailingSorted		(xmlNodeSetPtr nodes1,
-						 xmlNodeSetPtr nodes2);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathNodeTrailing		(xmlNodeSetPtr nodes,
-						 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL	
-		xmlXPathTrailing		(xmlNodeSetPtr nodes1,
-						 xmlNodeSetPtr nodes2);
-
-
-/**
- * Extending a context.
- */
-
-XMLPUBFUN int XMLCALL		   
-		xmlXPathRegisterNs		(xmlXPathContextPtr ctxt,
-						 const xmlChar *prefix,
-						 const xmlChar *ns_uri);
-XMLPUBFUN const xmlChar * XMLCALL	   
-		xmlXPathNsLookup		(xmlXPathContextPtr ctxt,
-						 const xmlChar *prefix);
-XMLPUBFUN void XMLCALL		   
-		xmlXPathRegisteredNsCleanup	(xmlXPathContextPtr ctxt);
-
-XMLPUBFUN int XMLCALL		   
-		xmlXPathRegisterFunc		(xmlXPathContextPtr ctxt,
-						 const xmlChar *name,
-						 xmlXPathFunction f);
-XMLPUBFUN int XMLCALL		   
-		xmlXPathRegisterFuncNS		(xmlXPathContextPtr ctxt,
-						 const xmlChar *name,
-						 const xmlChar *ns_uri,
-						 xmlXPathFunction f);
-XMLPUBFUN int XMLCALL		   
-		xmlXPathRegisterVariable	(xmlXPathContextPtr ctxt,
-						 const xmlChar *name,
-						 xmlXPathObjectPtr value);
-XMLPUBFUN int XMLCALL		   
-		xmlXPathRegisterVariableNS	(xmlXPathContextPtr ctxt,
-						 const xmlChar *name,
-						 const xmlChar *ns_uri,
-						 xmlXPathObjectPtr value);
-XMLPUBFUN xmlXPathFunction XMLCALL   
-		xmlXPathFunctionLookup		(xmlXPathContextPtr ctxt,
-						 const xmlChar *name);
-XMLPUBFUN xmlXPathFunction XMLCALL   
-		xmlXPathFunctionLookupNS	(xmlXPathContextPtr ctxt,
-						 const xmlChar *name,
-						 const xmlChar *ns_uri);
-XMLPUBFUN void XMLCALL		   
-		xmlXPathRegisteredFuncsCleanup	(xmlXPathContextPtr ctxt);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		xmlXPathVariableLookup		(xmlXPathContextPtr ctxt,
-						 const xmlChar *name);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
-		xmlXPathVariableLookupNS	(xmlXPathContextPtr ctxt,
-						 const xmlChar *name,
-						 const xmlChar *ns_uri);
-XMLPUBFUN void XMLCALL		   
-		xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
-
-/**
- * Utilities to extend XPath.
- */
-XMLPUBFUN xmlXPathParserContextPtr XMLCALL
-		  xmlXPathNewParserContext	(const xmlChar *str,
-			  			 xmlXPathContextPtr ctxt);
-XMLPUBFUN void XMLCALL		  
-		xmlXPathFreeParserContext	(xmlXPathParserContextPtr ctxt);
-
-/* TODO: remap to xmlXPathValuePop and Push. */
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		valuePop			(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN int XMLCALL		  
-		valuePush			(xmlXPathParserContextPtr ctxt,
-					 	 xmlXPathObjectPtr value);
-
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathNewString		(const xmlChar *val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathNewCString		(const char *val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathWrapString		(xmlChar *val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathWrapCString		(char * val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathNewFloat		(double val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathNewBoolean		(int val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathNewNodeSet		(xmlNodePtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathNewValueTree		(xmlNodePtr val);
-XMLPUBFUN void XMLCALL		  
-		xmlXPathNodeSetAdd		(xmlNodeSetPtr cur,
-						 xmlNodePtr val);
-XMLPUBFUN void XMLCALL              
-		xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur,
-						 xmlNodePtr val);
-XMLPUBFUN void XMLCALL		  
-		xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur, 
-						 xmlNodePtr node, 
-						 xmlNsPtr ns);
-XMLPUBFUN void XMLCALL              
-		xmlXPathNodeSetSort		(xmlNodeSetPtr set);
-
-XMLPUBFUN void XMLCALL		  
-		xmlXPathRoot			(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void XMLCALL		  
-		xmlXPathEvalExpr		(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL	  
-		xmlXPathParseName		(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL	  
-		xmlXPathParseNCName		(xmlXPathParserContextPtr ctxt);
-
-/*
- * Existing functions.
- */
-XMLPUBFUN double XMLCALL 
-		xmlXPathStringEvalNumber	(const xmlChar *str);
-XMLPUBFUN int XMLCALL 
-		xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, 
-						 xmlXPathObjectPtr res);
-XMLPUBFUN void XMLCALL 
-		xmlXPathRegisterAllFunctions	(xmlXPathContextPtr ctxt);
-XMLPUBFUN xmlNodeSetPtr XMLCALL 
-		xmlXPathNodeSetMerge		(xmlNodeSetPtr val1, 
-						 xmlNodeSetPtr val2);
-XMLPUBFUN void XMLCALL 
-		xmlXPathNodeSetDel		(xmlNodeSetPtr cur, 
-						 xmlNodePtr val);
-XMLPUBFUN void XMLCALL 
-		xmlXPathNodeSetRemove		(xmlNodeSetPtr cur, 
-						 int val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathNewNodeSetList		(xmlNodeSetPtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathWrapNodeSet		(xmlNodeSetPtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
-		xmlXPathWrapExternal		(void *val);
-
-XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
-XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
-
-XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
-
-/*
- * Some of the axis navigation routines.
- */
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
-			xmlNodePtr cur);
-/*
- * The official core of XPath functions.
- */
-XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
-XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
-
-/**
- * Really internal functions
- */
-XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
- 
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_XPATH_ENABLED */
-#endif /* ! __XML_XPATH_INTERNALS_H__ */
diff --git a/interfaces/ext/libxml/xpointer.h b/interfaces/ext/libxml/xpointer.h
deleted file mode 100644
index dde1dfb..0000000
--- a/interfaces/ext/libxml/xpointer.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Summary: API to handle XML Pointers
- * Description: API to handle XML Pointers
- * Base implementation was made accordingly to
- * W3C Candidate Recommendation 7 June 2000
- * http://www.w3.org/TR/2000/CR-xptr-20000607
- *
- * Added support for the element() scheme described in:
- * W3C Proposed Recommendation 13 November 2002
- * http://www.w3.org/TR/2002/PR-xptr-element-20021113/  
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_XPTR_H__
-#define __XML_XPTR_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_XPTR_ENABLED
-
-#include <libxml/tree.h>
-#include <libxml/xpath.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * A Location Set
- */
-typedef struct _xmlLocationSet xmlLocationSet;
-typedef xmlLocationSet *xmlLocationSetPtr;
-struct _xmlLocationSet {
-    int locNr;		      /* number of locations in the set */
-    int locMax;		      /* size of the array as allocated */
-    xmlXPathObjectPtr *locTab;/* array of locations */
-};
-
-/*
- * Handling of location sets.
- */
-
-XMLPUBFUN xmlLocationSetPtr XMLCALL			
-		    xmlXPtrLocationSetCreate	(xmlXPathObjectPtr val);
-XMLPUBFUN void XMLCALL			
-		    xmlXPtrFreeLocationSet	(xmlLocationSetPtr obj);
-XMLPUBFUN xmlLocationSetPtr XMLCALL	
-		    xmlXPtrLocationSetMerge	(xmlLocationSetPtr val1,
-						 xmlLocationSetPtr val2);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewRange		(xmlNodePtr start,
-						 int startindex,
-						 xmlNodePtr end,
-						 int endindex);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewRangePoints	(xmlXPathObjectPtr start,
-						 xmlXPathObjectPtr end);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewRangeNodePoint	(xmlNodePtr start,
-						 xmlXPathObjectPtr end);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewRangePointNode	(xmlXPathObjectPtr start,
-						 xmlNodePtr end);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL			
-		    xmlXPtrNewRangeNodes	(xmlNodePtr start,
-						 xmlNodePtr end);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewLocationSetNodes	(xmlNodePtr start,
-						 xmlNodePtr end);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewRangeNodeObject	(xmlNodePtr start,
-						 xmlXPathObjectPtr end);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrNewCollapsedRange	(xmlNodePtr start);
-XMLPUBFUN void XMLCALL			
-		    xmlXPtrLocationSetAdd	(xmlLocationSetPtr cur,
-						 xmlXPathObjectPtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrWrapLocationSet	(xmlLocationSetPtr val);
-XMLPUBFUN void XMLCALL			
-		    xmlXPtrLocationSetDel	(xmlLocationSetPtr cur,
-						 xmlXPathObjectPtr val);
-XMLPUBFUN void XMLCALL			
-		    xmlXPtrLocationSetRemove	(xmlLocationSetPtr cur,
-						 int val);
-
-/*
- * Functions.
- */
-XMLPUBFUN xmlXPathContextPtr XMLCALL	
-		    xmlXPtrNewContext		(xmlDocPtr doc,
-						 xmlNodePtr here,
-						 xmlNodePtr origin);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL	
-		    xmlXPtrEval			(const xmlChar *str,
-						 xmlXPathContextPtr ctx);
-XMLPUBFUN void XMLCALL					    
-		    xmlXPtrRangeToFunction	(xmlXPathParserContextPtr ctxt,
-       						 int nargs);
-XMLPUBFUN xmlNodePtr XMLCALL		
-		    xmlXPtrBuildNodeList	(xmlXPathObjectPtr obj);
-XMLPUBFUN void XMLCALL		
-		    xmlXPtrEvalRangePredicate	(xmlXPathParserContextPtr ctxt);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_XPTR_ENABLED */
-#endif /* __XML_XPTR_H__ */
diff --git a/interfaces/insdc/insdc.h b/interfaces/insdc/insdc.h
index 33e6e94..9c1107c 100644
--- a/interfaces/insdc/insdc.h
+++ b/interfaces/insdc/insdc.h
@@ -235,41 +235,6 @@ typedef INSDC_coord_val INSDC_coord_one;
 typedef INSDC_coord_zero INSDC_position_zero;
 typedef INSDC_coord_one INSDC_position_one;
 
-
-/*--------------------------------------------------------------------------
- * read description
- *  type and filter constants
- */
-
-
-/* read type
- *  describes the type of read within a spot
- *  the extended version also describes its orientation
- */
-typedef uint8_t INSDC_read_type;
-enum
-{
-    /* read_type */
-    READ_TYPE_TECHNICAL  = 0,
-    READ_TYPE_BIOLOGICAL = 1,
-
-    /* orientation - applied as bits, e.g.:
-       type = READ_TYPE_BIOLOGICAL | READ_TYPE_REVERSE */
-    READ_TYPE_FORWARD = 2,
-    READ_TYPE_REVERSE = 4
-};
-
-/* read filter
- */
-typedef uint8_t INSDC_read_filter;
-enum
-{
-    READ_FILTER_PASS = 0,
-    READ_FILTER_REJECT = 1,
-    READ_FILTER_CRITERIA = 2,
-    READ_FILTER_REDACTED = 3
-};
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/insdc/sra.h b/interfaces/insdc/sra.h
index 85a94f7..df4e00f 100644
--- a/interfaces/insdc/sra.h
+++ b/interfaces/insdc/sra.h
@@ -27,8 +27,8 @@
 #ifndef _h_insdc_sra_
 #define _h_insdc_sra_
 
-#ifndef _h_insdc_insdc_
-#include <insdc/insdc.h>
+#ifndef _h_klib_defs_
+#include <klib/defs.h>
 #endif
 
 #ifdef __cplusplus
@@ -56,13 +56,13 @@ typedef uint64_t INSDC_SRA_spot_ids_found [ 4 ];
 /* read filter
  */
 #define sra_read_filter_t "INSDC:SRA:read_filter"
-typedef INSDC_read_filter INSDC_SRA_read_filter;
+typedef uint8_t INSDC_SRA_read_filter;
 enum
 {
-    SRA_READ_FILTER_PASS = READ_FILTER_PASS,
-    SRA_READ_FILTER_REJECT = READ_FILTER_REJECT,
-    SRA_READ_FILTER_CRITERIA = READ_FILTER_CRITERIA,
-    SRA_READ_FILTER_REDACTED = READ_FILTER_REDACTED
+    SRA_READ_FILTER_PASS = 0,
+    SRA_READ_FILTER_REJECT = 1,
+    SRA_READ_FILTER_CRITERIA = 2,
+    SRA_READ_FILTER_REDACTED = 3
 };
 
 
@@ -71,18 +71,18 @@ enum
  *  the extended version also describes its orientation
  */
 #define sra_read_type_t "INSDC:SRA:xread_type"
-typedef INSDC_read_type INSDC_SRA_xread_type;
+typedef uint8_t INSDC_SRA_xread_type;
 typedef INSDC_SRA_xread_type INSDC_SRA_read_type;
 enum
 {
     /* read_type and xread_type */
-    SRA_READ_TYPE_TECHNICAL  = READ_TYPE_TECHNICAL,
-    SRA_READ_TYPE_BIOLOGICAL = READ_TYPE_BIOLOGICAL,
+    SRA_READ_TYPE_TECHNICAL  = 0,
+    SRA_READ_TYPE_BIOLOGICAL = 1,
 
     /* xread_type only - applied as bits, e.g.:
        type = SRA_READ_TYPE_BIOLOGICAL | SRA_READ_TYPE_REVERSE */
-    SRA_READ_TYPE_FORWARD = READ_TYPE_FORWARD,
-    SRA_READ_TYPE_REVERSE = READ_TYPE_REVERSE
+    SRA_READ_TYPE_FORWARD = 2,
+    SRA_READ_TYPE_REVERSE = 4
 };
 
 
@@ -99,8 +99,7 @@ enum
     SRA_PLATFORM_COMPLETE_GENOMICS = 4,
     SRA_PLATFORM_HELICOS           = 5,
     SRA_PLATFORM_PACBIO_SMRT       = 6,
-    SRA_PLATFORM_ION_TORRENT       = 7,
-    SRA_PLATFORM_SANGER            = 8
+    SRA_PLATFORM_ION_TORRENT       = 7
 };
 
 #ifdef __cplusplus
diff --git a/interfaces/insdc/sra.vschema b/interfaces/insdc/sra.vschema
index e5dc2f6..ed196e5 100644
--- a/interfaces/insdc/sra.vschema
+++ b/interfaces/insdc/sra.vschema
@@ -374,7 +374,6 @@ const INSDC:SRA:platform_id SRA_PLATFORM_COMPLETE_GENOMICS = 4;
 const INSDC:SRA:platform_id SRA_PLATFORM_HELICOS           = 5;
 const INSDC:SRA:platform_id SRA_PLATFORM_PACBIO_SMRT       = 6;
 const INSDC:SRA:platform_id SRA_PLATFORM_ION_TORRENT       = 7;
-const INSDC:SRA:platform_id SRA_PLATFORM_SANGER            = 8;
 
 table INSDC:SRA:tbl:sra #1.0.3 =
     INSDC:tbl:sequence #1.0.1, INSDC:SRA:tbl:spotname #1.0.1,
diff --git a/interfaces/kapp/args.h b/interfaces/kapp/args.h
index e19a394..949ba72 100644
--- a/interfaces/kapp/args.h
+++ b/interfaces/kapp/args.h
@@ -35,10 +35,6 @@
 extern "C" {
 #endif
 
-/* this define is while adding the --option-file to standard options
- * and it might not be right yet */
-#define USE_OPTFILE    1
-
 /*
  * Terminology for this module:
  *
@@ -80,24 +76,13 @@ extern OptDef StandardOptions [];
 #define OPTION_HELP      "help"
 #define OPTION_VERSION   "version"
 #define OPTION_VERBOSE   "verbose"
-#define OPTION_QUIET     "quiet"
-#if USE_OPTFILE
-#define OPTION_OPTFILE   "option-file"
-#endif
-#define OPTION_NO_USER_SETTINGS "no-user-settings"
+
 #define ALIAS_DEBUG     "+"
 #define ALIAS_LOG_LEVEL "L"
 #define ALIAS_HELP      "h?"
 #define ALIAS_HELP1     "h"
 #define ALIAS_VERSION   "V"
 #define ALIAS_VERBOSE   "v"
-#define ALIAS_QUIET     "q"
-#if USE_OPTFILE
-#define ALIAS_OPTFILE   ""
-#endif
-
-#define OPTION_REPORT   "ncbi_error_report"
-#define ALIAS_REPORT    ""
 
 /*--------------------------------------------------------------------------
  * Args
@@ -118,9 +103,6 @@ rc_t CC ArgsMake ( Args ** pself );
  */
 rc_t CC ArgsWhack ( Args * self );
 
-#ifndef ArgsRelease
-#define ArgsRelease(self) ArgsWhack(self)
-#endif
 
 /* AddOptionArray
  *  helper function to call the ArgsAddOption() multiple times
@@ -145,35 +127,6 @@ rc_t CC ArgsAddStandardOptions ( Args * self );
 rc_t CC ArgsParse ( Args * self, int argc, char *argv[] );
 
 
-/* tokenizes a file into an user supplied argv array ( not the one from main() ! )
- * the result can be passed into ArgsParse(), enables commandline-options from a file
- *  caller has to free the created array via Args_free_token_argv()
- */
-rc_t CC Args_tokenize_file_into_argv( const char * filename, int * argc, char *** argv );
-
-rc_t CC Args_tokenize_file_and_progname_into_argv( const char * filename, const char * progname,
-                                                   int * argc, char *** argv );
-
-/* free's the array that was created by calling Args_tokenize_file_into_argv()
- */
-void CC Args_free_token_argv( int argc, char * argv[] );
-
-
-/* looks in args for file_option(s), if found loades the files, parses them
-   if this results in more files to be parsed ( kind of includes ),
-   the parsing continues recursivly
- */
-rc_t CC Args_parse_inf_file( Args * args, const char * file_option );
-
-
-/* looks in the unparsed original argv for the value of an option
-   >>> this is a hack to enable special treatment for tools that do not use
-       the standard args-parsing <<<
- */
-rc_t CC Args_find_option_in_argv( int argc, char * argv[],
-                                  const char * option_name,
-                                  char * option, size_t option_len );
-
 /* OptionCount
  *  how many times did this Option occur?
  */
@@ -235,7 +188,6 @@ rc_t CC ArgsMakeStandardOptions (Args** pself);
 
 rc_t CC ArgsHandleHelp (Args * self);
 rc_t CC ArgsHandleVersion (Args * self);
-rc_t CC ArgsHandleOptfile (Args * self);
 
 /*
  * ArgsHandleLogLevel
@@ -260,10 +212,6 @@ rc_t CC ArgsOptionSingleString (const Args * self, const char * option, const ch
 rc_t CC ArgsProgram (const Args * args, const char ** fullpath, const char ** progname);
 
 
-/* after arguments are parsed; check to see if any required arguments are missing */
-rc_t CC ArgsCheckRequired (Args * args);
-
-
 /*
  * Help Interface:
  * This interface is an extention os the Args Interface that is used for
diff --git a/interfaces/kapp/loader-file.h b/interfaces/kapp/loader-file.h
index e4c0de8..d067a77 100644
--- a/interfaces/kapp/loader-file.h
+++ b/interfaces/kapp/loader-file.h
@@ -36,8 +36,6 @@
 
 #include <stdarg.h>
 
-#include <klib/log.h>
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -49,13 +47,7 @@ struct KDirectory;
 */
 typedef struct KLoaderFile KLoaderFile;
 
-/*
-    md5_digest - not null forces MD5 verification for the file content
-    read_ahead - force reading of the file in a diff thread, ahead of time,
-                 usefull on compressed file, speeds up MD5 verify too
-*/
-KAPP_EXTERN rc_t CC KLoaderFile_Make(const KLoaderFile **file, struct KDirectory const* dir, const char* filename,
-                                     const uint8_t* md5_digest, bool read_ahead);
+KAPP_EXTERN rc_t CC KLoaderFile_Make(const KLoaderFile **file, struct KDirectory const* dir, const char* filename, const uint8_t* md5_digest);
 
 KAPP_EXTERN rc_t CC KLoaderFile_Release(const KLoaderFile* cself, bool exclude_from_progress);
 
@@ -65,8 +57,6 @@ KAPP_EXTERN rc_t CC KLoaderFile_Close(const KLoaderFile* cself);
 /* restart reading from beginning of the file */
 KAPP_EXTERN rc_t CC KLoaderFile_Reset(const KLoaderFile* cself);
 
-KAPP_EXTERN rc_t CC KLoaderFile_SetReadAhead(const KLoaderFile* cself, bool read_ahead);
-
 /* print error msg file file info and return original!! rc
    if msg is NULL fmt is not used so call with NULL, NULL if no msg needs to be printed */
 KAPP_EXTERN rc_t CC KLoaderFile_LOG(const KLoaderFile* cself, KLogLevel lvl, rc_t rc, const char *msg, const char *fmt, ...);
@@ -84,11 +74,8 @@ KAPP_EXTERN rc_t CC KLoaderFile_Line(const KLoaderFile* cself, uint64_t* line);
 /* file name */
 KAPP_EXTERN rc_t CC KLoaderFile_Name(const KLoaderFile *self, const char **name);
 
-/* real file name */
-KAPP_EXTERN rc_t CC KLoaderFile_FullName(const KLoaderFile *self, const char **name);
-
 /* file name completly resolved */
-KAPP_EXTERN rc_t CC KLoaderFile_ResolveName(const KLoaderFile *self, char *resolved, size_t rsize);
+KAPP_EXTERN rc_t CC KLoaderFile_FullName(const KLoaderFile *self, const char **name);
 
 /* Readline
  *  makes next line from a file available in buffer.
diff --git a/interfaces/kapp/loader-meta.h b/interfaces/kapp/loader-meta.h
index 28a711a..6976d2d 100644
--- a/interfaces/kapp/loader-meta.h
+++ b/interfaces/kapp/loader-meta.h
@@ -40,7 +40,7 @@ extern "C" {
 
 struct KMDataNode;
 
-KAPP_EXTERN rc_t CC KLoaderMeta_Write(struct KMDataNode* root,
+KAPP_EXTERN rc_t CC KLoaderMeta_Write(KMDataNode* root,
                                       const char* argv0, const char* argv0_date,
                                       const char* app_name, ver_t app_version);
 
diff --git a/interfaces/kapp/log-xml.h b/interfaces/kapp/log-xml.h
index 9517fb8..4f7b77b 100644
--- a/interfaces/kapp/log-xml.h
+++ b/interfaces/kapp/log-xml.h
@@ -38,8 +38,6 @@
 extern "C" {
 #endif
 
-struct KDirectory;
-
 KAPP_EXTERN_DATA const OptDef XMLLogger_Args [];
 KAPP_EXTERN_DATA const size_t XMLLogger_ArgsQty;
 
@@ -48,8 +46,7 @@ typedef struct XMLLogger XMLLogger;
 /*
   Creates XML logging based on dir and command line
  */
-KAPP_EXTERN rc_t CC XMLLogger_Make(const XMLLogger** cself,
-    struct KDirectory* dir, const Args *args);
+KAPP_EXTERN rc_t CC XMLLogger_Make(const XMLLogger** cself, KDirectory* dir, const Args *args);
 
 /*
   Creates XML logging based on dir, logpath pair or fd directly
@@ -60,15 +57,12 @@ KAPP_EXTERN rc_t CC XMLLogger_Make(const XMLLogger** cself,
 
   if both logpath == NULL and fd < 0 than no XML log is produced normal log gets full inforamtion
  */
-KAPP_EXTERN rc_t CC XMLLogger_Make2(const XMLLogger** cself,
-    struct KDirectory* dir, const char* logpath, const int fd);
+KAPP_EXTERN rc_t CC XMLLogger_Make2(const XMLLogger** cself, KDirectory* dir, const char* logpath, const int fd);
 
 KAPP_EXTERN void CC XMLLogger_Usage(void);
 
 KAPP_EXTERN void CC XMLLogger_Release(const XMLLogger* cself);
 
-KAPP_EXTERN rc_t CC XMLLogger_Encode(const char* src, char *dst, size_t dst_sz, size_t *num_writ);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/kapp/queue-file.h b/interfaces/kapp/queue-file.h
deleted file mode 100644
index 79fa890..0000000
--- a/interfaces/kapp/queue-file.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_kapp_queue_file_
-#define _h_kapp_queue_file_
-
-#ifndef _h_kapp_extern_
-#include <kapp/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * KQueueFile
- *  an extension to KFile that runs on a background thread
- */
-struct KFile;
-
-
-/* MakeRead
- *  make a queue file for reading-ahead on background thread
- *
- *  when the file is created, a background thread is started
- *  that begins reading from "src" at position "pos", into
- *  buffers of size "buffer_size". each buffer is pushed into
- *  a cross-thread queue where it is consumed by the reading
- *  thread.
- *
- *  the background thread is throttled by queue capacity - determined
- *  by "queue_bytes" and "block_size", such that if the queue is full,
- *  the thread will sleep. the consumer thread is also throttled by the
- *  queue in that it will sleep if the queue is empty with pending data.
- *
- *  the background thread will exit upon reaching end of file,
- *  upon a permanent error, or if the queue is sealed by the consumer
- *  thread.
- *
- *  when the file is collected in response to a release message,
- *  the queue will be sealed against further inserts, pending buffers
- *  will be discarded, the background thread will be joined, and
- *  the source file will be released.
- *
- *  the intended usage is serial reading of the file. reads
- *  may only progress forward, i.e. backing up is not permitted.
- *
- *  "qf" [ OUT ] - return parameter for queue file
- *
- *  "pos" [ IN ] - starting position for reads from "src".
- *  NB - "src" must support being addressed at this position.
- *
- *  "src" [ IN ] - source file for read-ahead on background thread.
- *  must have read permissions.
- *
- *  "queue_bytes" [ IN ] - the read-ahead limit of the background
- *  thread, in bytes. this is the amount of data that will be queued
- *  for the consumer thread before the bg thread sleeps.
- *
- *  "block_size" [ IN, DEFAULT ZERO ] - optional parameter giving
- *  desired block size when reading from "src". this may be used
- *  to tune reading for source data, e.g. 64K blocks for gzip.
- *
- *  "timeout_ms" [ IN, DEFAULT ZERO ] - optional parameter specifying the period of time (in ms)
- *  at which the background thread will check whether it is to quit (e.g. the foregrount thread has sealed the buffer),
- *  when the queue cannot be written into.  If 0 specified, the timeout is set to 150 ms.
- */
-KAPP_EXTERN rc_t CC KQueueFileMakeRead ( struct KFile const **qf, uint64_t pos,
-    struct KFile const *src, size_t queue_bytes, size_t block_size, uint32_t timeout_ms );
-
-
-/* MakeWrite
- *  make a queue file for writing-behind on background thread
- *
- *  when the file is created, a background thread is started that
- *  waits for buffers to appear in the cross-thread queue. as the producer
- *  thread writes, data are accumulated into buffers which are pushed
- *  into the queue as they fill, and written in turn on the bg thread.
- *
- *  the producer thread is throttled by queue capacity - determined by
- *  "queue_bytes" and "block_size", such that if the queue is full,
- *  the thread will sleep. the background thread is also throttled by
- *  the queue in that it will sleep if the queue is empty with pending
- *  data.
- *
- *  the background thread will exit upon a permanent error, or if the
- *  queue is sealed by the producer thread.
- *
- *  when the file is collected in response to a release message,
- *  the queue will be sealed against further inserts, pending buffers
- *  will be written, the background thread will be joined, and
- *  the source file will be released.
- *
- *  the intended usage is serial writing of the file. random writes
- *  will be accepted, but may reduce the queue efficiency.
- *
- *  "qf" [ OUT ] - return parameter for queue file
- *
- *  "dst" [ IN ] - destination file for write-behind on background thread.
- *  must have write permissions.
- *
- *  "queue_bytes" [ IN ] - the write-behind limit of the producer
- *  thread, in bytes. this is the amount of data that will be queued
- *  for the background thread before the producer thread sleeps.
- *
- *  "block_size" [ IN, DEFAULT ZERO ] - optional parameter giving
- *  desired block size when writing to "dst". this may be used
- *  to tune writing for source data, e.g. 64K blocks for gzip.
- *
- *  "timeout_ms" [ IN, DEFAULT ZERO ] - optional parameter specifying the period of time (in ms)
- *  at which the background thread will check whether it is to quit (e.g. the foregrount thread has sealed the buffer),
- *  when the queue cannot be read from.  If 0 specified, the timeout is set to 150 ms.
- */
-KAPP_EXTERN rc_t CC KQueueFileMakeWrite ( struct KFile **qf,
-    struct KFile *dst, size_t queue_bytes, size_t block_size, uint32_t timeout_ms );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kapp_queue_file_ */
diff --git a/interfaces/kdb/btree.h b/interfaces/kdb/btree.h
index 0f6e85d..83d46f2 100644
--- a/interfaces/kdb/btree.h
+++ b/interfaces/kdb/btree.h
@@ -58,7 +58,6 @@ extern "C" {
  * forwards
  */
 struct KFile;
-struct KDataBuffer;
 
 
 /*--------------------------------------------------------------------------
@@ -131,7 +130,6 @@ enum
     kbtFloatKey,                /* key is a float                   */
     kbtDoubleKey,               /* key is a double                  */
 #endif
-    kbtPacked2naKey,            /* key is in packed 2na             */
     kbtLastDefined
 };
 
@@ -163,8 +161,6 @@ enum
  *   opaque key sizes. min == max implies fixed size. ignored for well
  *   known fixed size key types.
  *
- *  "id_size" [ IN ] - size of id in bytes, from 1 to 8.
- *
  *  "min_value_size" [ IN ] and "max_value_size" [ IN ] - specifies the allowed
  *   value sizes. min == max implies fixed size.
  *
@@ -177,7 +173,7 @@ KDB_EXTERN rc_t CC KBTreeMakeRead ( const KBTree **bt,
 #if BTREE_KEY2ID
 KDB_EXTERN rc_t CC KBTreeMakeUpdate ( KBTree **bt, struct KFile *backing,
     size_t climit, bool write_through, KBTreeKeyType type,
-    size_t min_key_size, size_t max_key_size, size_t id_size,
+    size_t min_key_size, size_t max_key_size,
     KBTreeCompareFunc cmp );
 #else
 KDB_EXTERN rc_t CC KBTreeMakeUpdate ( KBTree **bt, struct KFile *backing,
@@ -229,7 +225,7 @@ KDB_EXTERN rc_t CC KBTreeSize ( const KBTree *self,
  *   opaque key
  */
 #if BTREE_KEY2ID
-KDB_EXTERN rc_t CC KBTreeFind ( const KBTree *self, uint64_t *id,
+KDB_EXTERN rc_t CC KBTreeFind ( const KBTree *self, uint32_t *id,
     const void *key, size_t key_size );
 #else
 KDB_EXTERN rc_t CC KBTreeFind ( const KBTree *self, KBTreeValue *val,
@@ -237,89 +233,6 @@ KDB_EXTERN rc_t CC KBTreeFind ( const KBTree *self, KBTreeValue *val,
 #endif
 
 
-/* FindOne
- *  searches for a match
- *  where "match" is defined as an exact match
- *  of the shorter ( key, entry ) against the
- *  corresponding prefix of the longer.
- *
- *  "id" [ OUT ] - return id of matching entry if found
- *
- *  "key" [ IN ] and "key_size" [ IN ] - describes an
- *   opaque key
- *
- *  "match_type" [ IN ] - choose search algorithm
- *
- *  "remainder" [ OUT ] - returns the number of bytes
- *  left unmatched by comparison between the key and entry.
- *  values:
- *    = 0    - exact match
- *    < 0    - key is shorter than entry
- *    > 0    - key is longer than entry
- */
-#if BTREE_KEY2ID && 1
-typedef uint32_t KBTreeMatchType;
-enum
-{
-    kbtMatchFirst = 1,       /* choose first matching entry       */
-    kbtMatchRandom           /* choose a matching entry at random */
-};
-
-typedef struct KBTreeMatchResult KBTreeMatchResult;
-struct KBTreeMatchResult
-{
-    uint64_t id;
-    int64_t remainder;
-};
-
-KDB_EXTERN rc_t CC KBTreeFindOne ( const KBTree *self,
-    KBTreeMatchResult *found, KBTreeMatchType match_type,
-    const void *key, size_t key_size );
-#endif
-
-
-/* FindAll
- *  searches for all matches
- *  where "match" is defined as an exact match
- *  of the shorter ( key, entry ) against the
- *  corresponding prefix of the longer.
- *
- *  "ids" [ IN/OUT ] - array of uint64_t gets dynamically
- *  resized based upon the number of matches
- *
- *  "key" [ IN ] and "key_size" [ IN ] - describes an
- *   opaque key
- *
- *  "remainder" [ OUT ] - returns the number of bytes
- *  left unmatched by comparison between the key and entry.
- *  values:
- *    = 0    - exact match
- *    < 0    - key is shorter than entry
- *    > 0    - key is longer than entry
- */
-#if BTREE_KEY2ID && 1
-KDB_EXTERN rc_t CC KBTreeFindAll ( const KBTree *self,
-    struct KDataBuffer *found_set,
-    const void *key, size_t key_size );
-#endif
-
-
-/* FindCustom
- *  searches for a match using a custom function
- *
- *  "val" [ OUT ] - return parameter for value found
- *   accessed via KBTreeValueAccess* described above
- *   must be balanced with a call to KBTreeValueWhack.
- *
- *  "key" [ IN ] and "key_size" [ IN ] - describes an
- *   opaque key
- */
-#if BTREE_KEY2ID && 0
-KDB_EXTERN rc_t CC KBTreeFindCustom ( const KBTree *self, uint64_t *id,
-    const void *key, size_t key_size, KBTreeCompareFunc custom_cmp );
-#endif
-
-
 /* Entry
  *  searches for a match or creates a new entry
  *
@@ -339,7 +252,7 @@ KDB_EXTERN rc_t CC KBTreeFindCustom ( const KBTree *self, uint64_t *id,
  *   opaque key
  */
 #if BTREE_KEY2ID
-KDB_EXTERN rc_t CC KBTreeEntry ( KBTree *self, uint64_t *id,
+KDB_EXTERN rc_t CC KBTreeEntry ( KBTree *self, uint32_t *id,
     bool *was_inserted, const void *key, size_t key_size );
 #else
 KDB_EXTERN rc_t CC KBTreeEntry ( KBTree *self, KBTreeValue *val,
@@ -357,7 +270,7 @@ KDB_EXTERN rc_t CC KBTreeEntry ( KBTree *self, KBTreeValue *val,
  */
 #if BTREE_KEY2ID
 KDB_EXTERN rc_t CC KBTreeForEach ( const KBTree *self, bool reverse,
-    void ( CC * f ) ( const void *key, size_t key_size, uint64_t id, void *data ), void *data );
+    void ( CC * f ) ( const void *key, size_t key_size, uint32_t id, void *data ), void *data );
 #else
 KDB_EXTERN rc_t CC KBTreeForEach ( const KBTree *self, bool reverse,
     void ( CC * f ) ( const void *key, size_t key_size, KBTreeValue *val, void *data ), void *data );
diff --git a/interfaces/kdb/consistency-check.h b/interfaces/kdb/consistency-check.h
index 18444e4..d4a607d 100644
--- a/interfaces/kdb/consistency-check.h
+++ b/interfaces/kdb/consistency-check.h
@@ -31,10 +31,6 @@
 #include <kdb/extern.h>
 #endif
 
-#ifndef _h_insdc_sra_
-#include <insdc/sra.h>
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -55,8 +51,7 @@ enum
     ccrpt_Done,
     ccrpt_MD5,
     ccrpt_Blob,
-    ccrpt_Index,
-    ccrpt_Visit
+    ccrpt_Index
 };
 
 
@@ -77,12 +72,14 @@ struct CCReportInfoBlock
         {
             const char *mesg;
             rc_t rc;
+
         } done;
 
         struct ccrb_md5_s
         {
             const char *file;
             rc_t rc;
+
         } MD5;
 
         struct ccrb_blob_s
@@ -101,31 +98,25 @@ struct CCReportInfoBlock
             uint64_t num_holes;
 
         } index;
-        
-        struct ccrb_visit_s {
-            unsigned depth;
-        } visit;
+
     } info;
 };
 
 typedef rc_t ( CC *CCReportFunc ) ( const CCReportInfoBlock *info, void *data );
 
-/* a flag for level parameter */
-#define CC_INDEX_ONLY 0x80000000
 
 /*--------------------------------------------------------------------------
  * KDatabase
  */
 KDB_EXTERN rc_t CC KDatabaseConsistencyCheck ( struct KDatabase const *self,
-    uint32_t depth, uint32_t level, CCReportFunc report, void *data );
+    uint32_t level, CCReportFunc report, void *data );
 
 
 /*--------------------------------------------------------------------------
  * KTable
  */
 KDB_EXTERN rc_t CC KTableConsistencyCheck ( struct KTable const *self,
-    uint32_t depth, uint32_t level, CCReportFunc report, void *data,
-    INSDC_SRA_platform_id platform);
+    uint32_t level, CCReportFunc report, void *data );
 
 
 /*--------------------------------------------------------------------------
diff --git a/interfaces/kdb/database.h b/interfaces/kdb/database.h
index af65ebb..20cbee8 100644
--- a/interfaces/kdb/database.h
+++ b/interfaces/kdb/database.h
@@ -134,29 +134,15 @@ KDB_EXTERN bool CC KDatabaseLocked ( const KDatabase *self );
  *  returns true if requested object exists
  *
  *  "type" [ IN ] - a KDBPathType
- *  valid values are kptDatabase, kptTable and kptIndex
+ *  valid values are kptIndex and kptColumn
  *
- *  "name" [ IN ] - NUL terminated object name
+ *  "path" [ IN ] - NUL terminated path
  */
 KDB_EXTERN bool CC KDatabaseExists ( const KDatabase *self, uint32_t type,
     const char *name, ... );
 KDB_EXTERN bool CC KDatabaseVExists ( const KDatabase *self, uint32_t type,
     const char *name, va_list args );
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptDatabase, kptTable and kptIndex
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-KDB_EXTERN bool CC KDatabaseIsAlias ( const KDatabase *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name );
 
 /* Writable
  *  returns 0 if object is writable
diff --git a/interfaces/kdb/kdb-priv.h b/interfaces/kdb/kdb-priv.h
index 280f0de..5fb4724 100644
--- a/interfaces/kdb/kdb-priv.h
+++ b/interfaces/kdb/kdb-priv.h
@@ -76,12 +76,6 @@ KDB_EXTERN rc_t CC KDBManagerVGetTableModDate ( struct KDBManager const *self,
 KDB_EXTERN rc_t CC KDatabaseOpenDirectoryRead ( struct KDatabase const *self, struct KDirectory const **dir );
 KDB_EXTERN rc_t CC KDatabaseOpenDirectoryUpdate ( struct KDatabase *self, struct KDirectory **dir );
 
-/* GetPath
- *  return the absolute path to DB
- */
-KDB_EXTERN rc_t CC KDatabaseGetPath ( struct KDatabase const *self,
-    const char **path );
-
 
 /*--------------------------------------------------------------------------
  * KTable
@@ -96,12 +90,6 @@ KDB_EXTERN rc_t CC KTableOpenDirectoryUpdate ( struct KTable *self, struct KDire
 #define KTableGetDirectoryRead KTableOpenDirectoryRead
 #define KTableGetDirectoryUpdate KTableOpenDirectoryUpdate
 
-/* GetPath
- *  return the absolute path to table
- */
-KDB_EXTERN rc_t CC KTableGetPath ( struct KTable const *self,
-    const char **path );
-
 
 /*--------------------------------------------------------------------------
  * KColumn
diff --git a/interfaces/kdb/manager.h b/interfaces/kdb/manager.h
index 48576a3..31c5577 100644
--- a/interfaces/kdb/manager.h
+++ b/interfaces/kdb/manager.h
@@ -31,37 +31,29 @@
 #include <kdb/extern.h>
 #endif
 
-/* #ifndef _h_kfs_directory_ */
-/* #include <kfs/directory.h> */
-/* #endif */
-#include <kfs/defs.h> /* kpt types */
+#ifndef _h_kfs_directory_
+#include <kfs/directory.h>
+#endif
 
-#include <stdarg.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-struct VPath;
-struct KDirectory;
 
 /*--------------------------------------------------------------------------
  * KDBPathType
- *  extends KPathType from <kfs/defs.h>
+ *  extends KPathType from <kfs/directory.h>
  */
 enum
 {
     /* must be handled carefully and can not go back to KDirectory 
-     * as this value has a different meaning in KDirectory */
+    * as this value has a different meaning in KDirectory */
     kptAny = 0,
     kptDatabase = kptLastDefined,
     kptTable,
     kptIndex,
-    kptColumn,
-
-    /* these values may not be used in KDBManagerExists below */
-    kptMetadata,
-    kptPrereleaseTbl
+    kptColumn
 };
 
 
@@ -89,8 +81,8 @@ KDB_EXTERN rc_t CC KDBManagerRelease ( const KDBManager *self );
  *  "wd" [ IN, NULL OKAY ] - optional working directory for
  *  accessing the file system. mgr will attach its own reference.
  */
-KDB_EXTERN rc_t CC KDBManagerMakeRead ( const KDBManager **mgr, const struct KDirectory *wd );
-KDB_EXTERN rc_t CC KDBManagerMakeUpdate ( KDBManager **mgr, struct KDirectory *wd );
+KDB_EXTERN rc_t CC KDBManagerMakeRead ( const KDBManager **mgr, const KDirectory *wd );
+KDB_EXTERN rc_t CC KDBManagerMakeUpdate ( KDBManager **mgr, KDirectory *wd );
 
 
 /* Version
@@ -105,9 +97,6 @@ KDB_EXTERN rc_t CC KDBManagerVersion ( const KDBManager *self, uint32_t *version
  *  "type" [ IN ] - a KDBPathType
  *
  *  "path" [ IN ] - NUL terminated path
- *
- * DEPRECATED:
- * Should use KDBManagerPathType for reduced network thrashing.
  */
 KDB_EXTERN bool CC KDBManagerExists ( const KDBManager *self, uint32_t type,
     const char *name, ... );
@@ -165,14 +154,13 @@ KDB_EXTERN rc_t CC KDBManagerRunPeriodicTasks ( const KDBManager *self );
 
 
 /* PathType
- *  check the path type of an object/directory path.
- *  this is an extension of the KDirectoryPathType and will return
- *  the KDirectory values if a path type is not specifically a
- *  kdb object
+ * check the path type of an object/directory path.
+ * this is an extension of the KDirectoryPathType and will return
+ * the KDirectory values if a path type is not specifically a
+ * kdb object
  */
-KDB_EXTERN int CC KDBManagerPathTypeVP ( const KDBManager * self, const struct VPath * path );
-KDB_EXTERN int CC KDBManagerPathType   ( const KDBManager * self, const char *path, ... );
-KDB_EXTERN int CC KDBManagerVPathType  ( const KDBManager * self, const char *path, va_list args );
+KDB_EXTERN int CC KDBManagerPathType ( const KDBManager * self, const char *path, ... );
+KDB_EXTERN int CC KDBManagerVPathType ( const KDBManager * self, const char *path, va_list args );
 
 
 #ifdef __cplusplus
diff --git a/interfaces/kdb/namelist.h b/interfaces/kdb/namelist.h
index 68233f4..773d7df 100644
--- a/interfaces/kdb/namelist.h
+++ b/interfaces/kdb/namelist.h
@@ -70,8 +70,7 @@ KDB_EXTERN rc_t CC KTableListIdx ( struct KTable const *self, struct KNamelist *
  *  create metadata node listings
  */
 KDB_EXTERN rc_t CC KMDataNodeListAttr ( struct KMDataNode const *self, struct KNamelist **names );
-KDB_EXTERN rc_t CC KMDataNodeListChildren ( struct KMDataNode const *self, struct KNamelist **names );
-#define KMDataNodeListChild KMDataNodeListChildren
+KDB_EXTERN rc_t CC KMDataNodeListChild ( struct KMDataNode const *self, struct KNamelist **names );
 
 
 #ifdef __cplusplus
diff --git a/interfaces/kdb/table.h b/interfaces/kdb/table.h
index 2d1a819..a506938 100644
--- a/interfaces/kdb/table.h
+++ b/interfaces/kdb/table.h
@@ -143,20 +143,6 @@ KDB_EXTERN bool CC KTableExists ( const KTable *self, uint32_t type,
 KDB_EXTERN bool CC KTableVExists ( const KTable *self, uint32_t type,
     const char *name, va_list args );
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptIndex and kptColumn
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-KDB_EXTERN bool CC KTableIsAlias ( const KTable *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name );
 
 /* Writable
  *  returns 0 if object is writable
diff --git a/interfaces/kfg/config.h b/interfaces/kfg/config.h
index f58eb61..c61ab4c 100644
--- a/interfaces/kfg/config.h
+++ b/interfaces/kfg/config.h
@@ -54,20 +54,12 @@ extern "C" {
 
 
 /*--------------------------------------------------------------------------
- * forwards
- */
-struct KFile;
-struct KDirectory;
-struct KNamelist;
-struct VPath;
-struct String;
-
-/*--------------------------------------------------------------------------
  * KConfig
  *  configuration paramter manager
  */
 typedef struct KConfig KConfig;
 
+struct KDirectory;
 
 /* Make
  *  create a process-global configuration manager
@@ -79,6 +71,7 @@ typedef struct KConfig KConfig;
 KFG_EXTERN rc_t CC KConfigMake ( KConfig **cfg,
     struct KDirectory const * optional_search_base );
 
+
 /* AddRef
  * Release
  */
@@ -89,103 +82,11 @@ KFG_EXTERN rc_t CC KConfigRelease ( const KConfig *self );
 /* LoadFile
  * loads a configuration file
  */
+struct KFile;
 KFG_EXTERN rc_t CC KConfigLoadFile ( KConfig * self,
     const char * path, struct KFile const * file );
 
 
-/* Commit
- *  commits changes to user's private configuration file
- */
-KFG_EXTERN rc_t CC KConfigCommit ( KConfig *self );
-
-/* ReadBool
- *  read a boolean node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value (true if "TRUE", false if "FALSE"; rc != 0 if neither)
- *
- */
-KFG_EXTERN rc_t CC KConfigReadBool ( const KConfig* self, const char* path, bool* result );
-    
-/* ReadI64
- *  read an integer node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigReadI64 ( const KConfig* self, const char* path, int64_t* result );
-
-/* ReadU64
- *  read an unsigned node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigReadU64 ( const KConfig* self, const char* path, uint64_t* result );
-
-/* ReadF64
- *  read an F64 node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigReadF64( const KConfig* self, const char* path, double* result );
-
-#if 0
-/*** NB - temporarily lives in vfs due to library interdependencies ***/
-
-/* ReadVPath
- *  read a VPath node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigReadVPath ( const KConfig* self, const char* path, struct VPath** result );
-#endif
-
-/* ReadString
- *  read a String node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value; caller responsible for deallocation
- *
- */
-KFG_EXTERN rc_t CC KConfigReadString ( const KConfig* self, const char* path, struct String** result );
-
-
-/* Print
- *  print configuration to output handler (using OUTMSG)
- */
-KFG_EXTERN rc_t CC KConfigPrint ( const KConfig * self, int indent );
-
-
-/* ImportNgc
- *  import ngc file into current configuration
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the ngc file
- * pathToProtectedRepository [ IN, NULL OKAY ] - optional - the
- *  special value NULL is interpreted as ${HOME}/ncbi/dbGap-$(Project #)
- */
-KFG_EXTERN rc_t CC KConfigImportNgc(KConfig *self,
-    const char *ngcPath, const char *pathToProtectedRepository);
-
-/* DisableUserSettings
- *  for testing purposes
- */
-KFG_EXTERN void CC KConfigDisableUserSettings ( void );
-
-
 /*--------------------------------------------------------------------------
  * KConfigNode
  *  node within configuration tree
@@ -263,69 +164,12 @@ KFG_EXTERN rc_t CC KConfigNodeRead ( const KConfigNode *self,
     size_t offset, char *buffer, size_t bsize,
     size_t *num_read, size_t *remaining );
 
-/* ReadBool
- *  read a boolean node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (true if "TRUE", false if "FALSE"; rc != 0 if neither)
- *
- */
-KFG_EXTERN rc_t CC KConfigNodeReadBool ( const KConfigNode *self, bool* result );
-    
-/* ReadI64
- *  read an integer node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigNodeReadI64 ( const KConfigNode *self, int64_t* result );
 
-/* ReadU64
- *  read an unsigned node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigNodeReadU64 ( const KConfigNode *self, uint64_t* result );
-
-/* ReadF64
- *  read an F64 node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigNodeReadF64 ( const KConfigNode *self, double* result );
-
-#if 0
-/*** NB - temporarily lives in vfs due to library interdependencies ***/
-
-/* ReadVPath
- *  read a VPath node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-KFG_EXTERN rc_t CC KConfigNodeReadVPath ( const KConfigNode *self, struct VPath** result );
-#endif
-
-/* ReadString
- *  read a String node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value; caller responsible for deallocation
- *
- */
-KFG_EXTERN rc_t CC KConfigNodeReadString ( const KConfigNode *self, struct String** result );
-
-/* ListChildren - nee ListChild
+/* ListChild
  *  list all named children
  */
-#define KConfigNodeListChild KConfigNodeListChildren
-KFG_EXTERN rc_t CC KConfigNodeListChildren ( const KConfigNode *self,
+struct KNamelist;
+KFG_EXTERN rc_t CC KConfigNodeListChild ( const KConfigNode *self,
     struct KNamelist **names );
 
 
diff --git a/interfaces/kfg/kfg-priv.h b/interfaces/kfg/kfg-priv.h
index 59a4dcd..dc8f00c 100644
--- a/interfaces/kfg/kfg-priv.h
+++ b/interfaces/kfg/kfg-priv.h
@@ -48,10 +48,6 @@ KFG_EXTERN rc_t CC KConfigListIncluded ( const KConfig *self,
 KFG_EXTERN rc_t CC KConfigGetLoadPath ( const KConfig *self,
     const char **path );
 
-/* call KConfigMake not initializing the static global KConfig pointer */
-KFG_EXTERN rc_t CC KConfigMakeLocal ( KConfig **cfg,
-                                     const struct KDirectory * cfgdir );
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/kfg/repository.h b/interfaces/kfg/repository.h
deleted file mode 100644
index 6d90247..0000000
--- a/interfaces/kfg/repository.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kfg_repository_
-#define _h_kfg_repository_
-
-#ifndef _h_kfg_extern_
-#include <kfg/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KConfig;
-
-
-/*--------------------------------------------------------------------------
- * KRepository
- *  presents structured access to a storage repository
- *  as modeled in KConfig.
- *
- *  all objects are obtained via KRepositoryMgr ( see below )
- */
-typedef struct KRepository KRepository;
-
-
-/* AddRef
- * Release
- */
-KFG_EXTERN rc_t CC KRepositoryAddRef ( const KRepository *self );
-KFG_EXTERN rc_t CC KRepositoryRelease ( const KRepository *self );
-
-
-/* Category
- * SubCategory
- *  tells what the repository category or sub-category are
- *  or returns "bad" if the repository object is not usable.
- */
-typedef uint32_t KRepCategory;
-enum
-{
-    krepBadCategory,
-    krepUserCategory,
-    krepSiteCategory,
-    krepRemoteCategory
-};
-
-typedef uint32_t KRepSubCategory;
-enum
-{
-    krepBadSubCategory,
-    krepMainSubCategory,
-    krepAuxSubCategory,
-    krepProtectedSubCategory
-};
-
-KFG_EXTERN KRepCategory CC KRepositoryCategory ( const KRepository *self );
-KFG_EXTERN KRepSubCategory CC KRepositorySubCategory ( const KRepository *self );
-
-
-/* Name
- *  get the repository name
- *  attempts to copy NUL-terminated name into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - name output parameter
- *
- *  "name_size" [ OUT, NULL OKAY ] - returns the name size in
- *  bytes, excluding any NUL termination.
- */
-KFG_EXTERN rc_t CC KRepositoryName ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *name_size );
-
-
-/* DisplayName
- *  get the repository display name,
- *  if different from its actual name
- *
- *  attempts to copy NUL-terminated name into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - name output parameter
- *
- *  "name_size" [ OUT, NULL OKAY ] - returns the name size in
- *  bytes, excluding any NUL termination.
- */
-KFG_EXTERN rc_t CC KRepositoryDisplayName ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *name_size );
-
-
-/* Root
- *  read the root path as a POSIX path or URL
- *
- *  attempts to copy NUL-terminated path into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - path output parameter
- *
- *  "root_size" [ OUT, NULL OKAY ] - returns the path size in
- *  bytes, excluding any NUL termination.
- */
-KFG_EXTERN rc_t CC KRepositoryRoot ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *root_size );
-
-
-/* Disabled
- *  discover whether the repository is enabled
- */
-KFG_EXTERN bool CC KRepositoryDisabled ( const KRepository *self );
-
-/* CacheEnabled
- *  discover whether the repository supports caching
- */
-KFG_EXTERN bool CC KRepositoryCacheEnabled ( const KRepository *self );
-
-
-/* DownloadTicket
- *  return any associated download ticket
- *
- *  attempts to copy NUL-terminated ticket into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - ticket output parameter
- *
- *  "ticket_size" [ OUT, NULL OKAY ] - returns the ticket size in
- *  bytes, excluding any NUL termination.
- */
-KFG_EXTERN rc_t CC KRepositoryDownloadTicket ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *ticket_size );
-
-
-/* EncryptionKey
- *  return any associated encryption key
- *
- *  attempts to copy NUL-terminated key into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - encryption key output parameter
- *
- *  "key_size" [ OUT, NULL OKAY ] - returns the key size in
- *  bytes, excluding any NUL termination.
- */
-KFG_EXTERN rc_t CC KRepositoryEncryptionKey ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *key_size );
-
-
-/* EncryptionKeyFile
- *  return path to any associated encryption key file
- *
- *  attempts to copy NUL-terminated path into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - key file path output parameter
- *
- *  "path_size" [ OUT, NULL OKAY ] - returns the path size in
- *  bytes, excluding any NUL termination.
- */
-KFG_EXTERN rc_t CC KRepositoryEncryptionKeyFile ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *path_size );
-
-
-/* Description
- *  return any associated descriptive text
- *
- *  attempts to copy NUL-terminated description into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - description text output parameter
- *
- *  "desc_size" [ OUT, NULL OKAY ] - returns the text size in
- *  bytes, excluding any NUL termination.
- */
-KFG_EXTERN rc_t CC KRepositoryDescription ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *desc_size );
-
-
-/*--------------------------------------------------------------------------
- * KRepositoryVector
- *  uses Vector API
- *  holds zero or more KRepository objects
- */
-typedef struct Vector KRepositoryVector;
-
-
-/* Whack
- *  destroy your vector
- */
-KFG_EXTERN rc_t CC KRepositoryVectorWhack ( KRepositoryVector *self );
-
-
-/*--------------------------------------------------------------------------
- * KRepositoryMgr
- *  manages structured access to repositories
- */
-typedef struct KRepositoryMgr KRepositoryMgr;
-
-
-/* Make
- *  create a repository manager
- *  uses values from "self"
- */
-KFG_EXTERN rc_t CC KConfigMakeRepositoryMgrRead ( struct KConfig const *self,
-    const KRepositoryMgr **mgr );
-KFG_EXTERN rc_t CC KConfigMakeRepositoryMgrUpdate ( struct KConfig *self,
-    KRepositoryMgr **mgr );
-
-
-/* AddRef
- * Release
- */
-KFG_EXTERN rc_t CC KRepositoryMgrAddRef ( const KRepositoryMgr *self );
-KFG_EXTERN rc_t CC KRepositoryMgrRelease ( const KRepositoryMgr *self );
-
-
-/* UserRepositories
- *  retrieve all user repositories in a Vector
- */
-KFG_EXTERN rc_t CC KRepositoryMgrUserRepositories ( const KRepositoryMgr *self,
-    KRepositoryVector *user_repositories );
-
-
-/* SiteRepositories
- *  retrieve all site repositories in a Vector
- */
-KFG_EXTERN rc_t CC KRepositoryMgrSiteRepositories ( const KRepositoryMgr *self,
-    KRepositoryVector *site_repositories );
-
-
-/* RemoteRepositories
- *  retrieve all remote repositories in a Vector
- */
-KFG_EXTERN rc_t CC KRepositoryMgrRemoteRepositories ( const KRepositoryMgr *self,
-    KRepositoryVector *remote_repositories );
-
-/* CurrentProtectedRepository
- *  returns the currently active user protected repository
- */
-KFG_EXTERN rc_t CC KRepositoryMgrCurrentProtectedRepository ( const KRepositoryMgr *self,
-    const KRepository **protected );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfg_repository_ */
diff --git a/interfaces/kfs/arc.h b/interfaces/kfs/arc.h
index 8eca2fe..374a872 100644
--- a/interfaces/kfs/arc.h
+++ b/interfaces/kfs/arc.h
@@ -42,7 +42,6 @@ extern "C" {
 #endif
 
 struct KDirectory;
-struct KFile;
 struct KToc;
 struct vector;
 
@@ -95,19 +94,6 @@ KFS_EXTERN rc_t CC KDirectoryOpenArcDirRead(const struct KDirectory * self,
         bool( CC * )(const struct KDirectory*, const char *, void*), void*),
         bool (CC* filter )(const KDirectory*, const char *, void *), void * filterparam);
 
-KFS_EXTERN rc_t CC KDirectoryOpenArcDirRead_silent(const struct KDirectory * self, 
-    const struct KDirectory ** pdir, bool chroot, const char * path, KArcFSType baseType,
-    rc_t ( CC * parse )(struct KToc *,const void *,
-        bool( CC * )(const struct KDirectory*, const char *, void*), void*),
-        bool (CC* filter )(const KDirectory*, const char *, void *), void * filterparam);
-
-KFS_EXTERN rc_t CC KDirectoryOpenArcDirRead_silent_preopened(const struct KDirectory * self, 
-    const struct KDirectory ** pdir, bool chroot, const char * path, KArcFSType baseType,
-    void * f,
-    rc_t ( CC * parse )(struct KToc *,const void *,
-        bool( CC * )(const struct KDirectory*, const char *, void*), void*),
-        bool (CC* filter )(const KDirectory*, const char *, void *), void * filterparam);
-
 
 
 
diff --git a/interfaces/kfs/buffile.h b/interfaces/kfs/buffile.h
index f32837b..73e24e3 100644
--- a/interfaces/kfs/buffile.h
+++ b/interfaces/kfs/buffile.h
@@ -77,16 +77,6 @@ KFS_EXTERN rc_t CC KBufFileMakeRead ( struct KFile const ** buf,
 KFS_EXTERN rc_t CC KBufFileMakeWrite ( struct KFile ** buf,
     struct KFile * original, bool update, size_t bsize );
 
-
-
-
-KFS_EXTERN rc_t CC KBufReadFileMakeRead ( const struct KFile ** bp,
-     const struct KFile * original, size_t bsize );
-
-KFS_EXTERN rc_t CC KBufWriteFileMakeWrite ( struct KFile ** bp,
-     struct KFile * original, size_t bsize );
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/kfs/cacheteefile.h b/interfaces/kfs/cacheteefile.h
deleted file mode 100644
index aad2b9c..0000000
--- a/interfaces/kfs/cacheteefile.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kfs_cacheteefile_
-#define _h_kfs_cacheteefile_
-
-#ifndef _h_kfs_extern_
-#include <kfs/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KFile;
-struct KDirectory;
-
-
-/*--------------------------------------------------------------------------
- * KDirectory
- */
-
-/* MakeCacheTee
- *  takes a KFile as source
- *
- *  "tee" [ OUT ] - return parameter for tee file
- *
- *  "remote" [ IN ] - the source file, generally costly to read which is
- *  the motivation behind caching its output
- *
- *  "logger" [ IN, NULL OKAY ] - optional debugging output for observing
- *  access patterns of "remote"
- *
- *  "blocksize" [ IN ] - the cache-file page size
- *                       ( if 0 ... default-value will be 32k )
- *
- *  "cluster" [ IN ] - a blocking factor for accessing "remote"
- *  reads are in blocks of size "blocksize" * "cluster"
- *  ( 1...4 makes most sense )
- *
- *  "report" [ IN ] - when true, provides more verbose debugging output
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting full cache file, i.e. the name of the file
- *  as it would appear after promoting from partial to full status.
- *
- * the function creates a new ( cached ) KFile in **tee
- *
- * the caller can access this file to read and query the filesize, these are the only
- * supported messages to this object
- *
- * when the caller requests data that is not already cached in the local file,
- * the cached file will read from the remote-file, write into the local-file and then
- * return the requested data in the read-buffer
- *
- * when the caller requests data that is already cached, the data will be read from
- * the local file only, no remote request will be made
- *
- * when the caller requests data this is partially cached, the file will return the
- * part that comes first either from the remote or from the local file
- * in this case the file will return less data than requested
- *
- * when the caller opens an existing local file that contains a full copy of the
- * remote file, the local KFile will be returned in self
- *
- * this function will check if the remote-file and the local file ( if it already exists )
- * do have the same size and blocksize
- *
- */
-KFS_EXTERN rc_t CC KDirectoryMakeCacheTee ( struct KDirectory *self,
-    struct KFile const **tee, struct KFile const *remote, struct KFile *logger,
-    uint32_t blocksize, uint32_t cluster, bool report, const char *path, ... );
-KFS_EXTERN rc_t CC KDirectoryVMakeCacheTee ( struct KDirectory *self,
-    struct KFile const **tee, struct KFile const *remote, struct KFile *logger,
-    uint32_t blocksize, uint32_t cluster, bool report, const char *path, va_list args );
-
-/* -----
- * checks if a given file ( has to be a local file )
- *
- * a ... is a backing cache-file for the CacheTee-file
- * b ... all blocks have been filled with the remote content
- *
- * it returns the result of the check in *is_complete
- */
-KFS_EXTERN rc_t CC IsCacheFileComplete( const struct KFile * self, bool * is_complete, bool silent);
-
-
-/* -----
- * truncates a cache-file for a CacheTee-filec by removing the bitmap/content-lenght/block-size
- *
- * it returns the result of the check in *is_complete
- */
-KFS_EXTERN rc_t CC TruncateCacheFile( struct KFile * self );
-
-
-/* -----
- * examens the file, and reports what percentage of blocks are in the cache...
- *
- */
-KFS_EXTERN rc_t CC GetCacheCompleteness( const struct KFile * self, float * percent );
-
-
-/* -----
- * examens the file, and reports the size of the original file ( without the cachefile-footer )
- *
- */
-KFS_EXTERN rc_t CC GetCacheTruncatedSize( const struct KFile * self, uint64_t * truncated_size, bool silent );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_teefile_ */
diff --git a/interfaces/kfs/directory.h b/interfaces/kfs/directory.h
index a6b3fab..209b263 100644
--- a/interfaces/kfs/directory.h
+++ b/interfaces/kfs/directory.h
@@ -78,9 +78,6 @@ KFS_EXTERN rc_t CC KDirectoryRelease ( const KDirectory *self );
  *
  *  "path" [ IN, NULL OKAY ] - optional parameter for target
  *  directory. if NULL or empty, interpreted to mean "."
- *
- *  function makes a flat list, does not step into sub-dirs!
- *
  */
 KFS_EXTERN rc_t CC KDirectoryList ( const KDirectory *self, struct KNamelist **list,
     bool ( CC * f ) ( const KDirectory *dir, const char *name, void *data ),
@@ -277,22 +274,18 @@ KFS_EXTERN rc_t CC KDirectoryVSetDate ( KDirectory *self, bool recurse,
 
 /* CreateAlias
  *  creates a path alias according to create mode
- *  such that "alias" => "targ"
  *
  *  "access" [ IN ] - standard Unix directory access mode
  *  used when "mode" has kcmParents set and alias path does
  *  not exist.
  *
- *  "mode" [ IN ] - a creation mode ( see explanation in kfs/defs.h ).
+ *  "mode" [ IN ] - a creation mode ( see explanation above ).
  *
  *  "targ" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object, i.e. the object which
- *  is designated by symlink "alias". THE PATH IS GIVEN RELATIVE
- *  TO DIRECTORY ( "self" ), NOT SYMLINK ( "alias" )!
+ *  character set denoting target object
  *
  *  "alias" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target alias, i.e. the symlink that
- *  designates a target "targ".
+ *  character set denoting target alias
  */
 KFS_EXTERN rc_t CC KDirectoryCreateAlias ( KDirectory *self,
     uint32_t access, KCreateMode mode,
@@ -337,7 +330,7 @@ KFS_EXTERN rc_t CC KDirectoryVOpenFileWrite ( KDirectory *self,
  *
  *  "access" [ IN ] - standard Unix access mode, e.g. 0664
  *
- *  "mode" [ IN ] - a creation mode ( see explanation in kfs/defs.h ).
+ *  "mode" [ IN ] - a creation mode ( see explanation above ).
  *
  *  "path" [ IN ] - NUL terminated string in directory-native
  *  character set denoting target file
@@ -443,7 +436,7 @@ KFS_EXTERN rc_t CC KDirectoryVOpenDirUpdate ( KDirectory *self,
  *
  *  "access" [ IN ] - standard Unix directory mode, e.g.0775
  *
- *  "mode" [ IN ] - a creation mode ( see explanation in defs.h ).
+ *  "mode" [ IN ] - a creation mode ( see explanation above ).
  *
  *  "path" [ IN ] - NUL terminated string in directory-native
  *  character set denoting target directory
@@ -453,52 +446,6 @@ KFS_EXTERN rc_t CC KDirectoryCreateDir ( KDirectory *self,
 KFS_EXTERN rc_t CC KDirectoryVCreateDir ( KDirectory *self,
     uint32_t access, KCreateMode mode, const char *path, va_list args );
 
-
-/* CopyPath
- *  copies a file
- *
- *  "src_path" [ IN ] - path to source-file
- *
- *  "dst_path" [ IN ] - file to create
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target directory
- */
-KFS_EXTERN rc_t CC KDirectoryCopyPath ( const KDirectory *src_dir,
-    KDirectory *dst_dir, const char *src_path, const char * dst_path );
-
-
-/* CopyPaths
- *  copies files, optional recursive in sub-dirs...
- *
- *  "recursive" [ IN ] - handle subdir's recursivly
- *
- *  "src" [ IN ] - what directory to copy
- *
- *  "dst" [ IN ] - into what directory to copy
- *      ( will be created if it does not already exist )
- *
- */
-LIB_EXPORT rc_t CC KDirectoryCopyPaths( const KDirectory * src_dir,
-    KDirectory *dst_dir, bool recursive, const char *src, const char *dst );
-
-
-/* Copy
- *  detects if src is a file or a directory
- *
- *  "recursive" [ IN ] - handle subdir's recursivly 
- *            ( if srs is a directory )
- *
- *  "src" [ IN ] - what file/directory to copy
- *
- *  "dst" [ IN ] - into what file/directory to copy
- *      ( will be created if it does not already exist )
- *
- */
-LIB_EXPORT rc_t CC KDirectoryCopy( const KDirectory * src_dir,
-    KDirectory *dst_dir, bool recursive, const char *src, const char *dst );
-
-
 /* NativeDir
  *  returns a native file-system directory node reference
  *  the directory root will be "/" and set to the native
diff --git a/interfaces/kfs/file.h b/interfaces/kfs/file.h
index 47fe143..c1d240a 100644
--- a/interfaces/kfs/file.h
+++ b/interfaces/kfs/file.h
@@ -119,21 +119,6 @@ KFS_EXTERN rc_t CC KFileSetSize ( KFile *self, uint64_t size );
 KFS_EXTERN rc_t CC KFileRead ( const KFile *self, uint64_t pos,
     void *buffer, size_t bsize, size_t *num_read );
 
-/* ReadAll
- *  read from file until "bsize" bytes have been retrieved
- *  or until end-of-input
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT ] - return parameter giving number of bytes
- *  actually read. when returned value is zero and return code is
- *  also zero, interpreted as end of file.
- */
-KFS_EXTERN rc_t CC KFileReadAll ( const KFile *self, uint64_t pos,
-    void *buffer, size_t bsize, size_t *num_read );
-
 /* Write
  *  write file at known position
  *
@@ -147,20 +132,6 @@ KFS_EXTERN rc_t CC KFileReadAll ( const KFile *self, uint64_t pos,
 KFS_EXTERN rc_t CC KFileWrite ( KFile *self, uint64_t pos,
     const void *buffer, size_t size, size_t *num_writ );
 
-/* WriteAll
- *  write to file until "size" bytes have been transferred
- *  or until no further progress can be made
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-KFS_EXTERN rc_t CC KFileWriteAll ( KFile *self, uint64_t pos,
-    const void *buffer, size_t size, size_t *num_writ );
-
 /* MakeStdIn
  *  creates a read-only file on stdin
  */
diff --git a/interfaces/kfs/impl.h b/interfaces/kfs/impl.h
index 22bf168..70b3b79 100644
--- a/interfaces/kfs/impl.h
+++ b/interfaces/kfs/impl.h
@@ -74,7 +74,7 @@ struct KFile
 {
     const KFile_vt *vt;
     const KDirectory *dir;
-    KRefcount refcount;
+    atomic32_t refcount;
     uint8_t read_enabled;
     uint8_t write_enabled;
     uint8_t align [ 2 ];
@@ -122,7 +122,6 @@ union KFile_vt
  *  initialize a newly allocated file object
  */
 KFS_EXTERN rc_t CC KFileInit ( KFile *self, const KFile_vt *vt,
-    const char *classname, const char *fname,
     bool read_enabled, bool write_enabled );
 
 /* Destroy
@@ -255,14 +254,6 @@ KFS_EXTERN rc_t CC KDirectoryDestroyFile ( const KDirectory *self, KFile *f );
 KFS_EXTERN struct KSysDir* CC KDirectoryGetSysDir ( const KDirectory *self );
 
 
-/* RealPath
- *  exposes functionality of system directory
- */
-KFS_EXTERN rc_t CC KSysDirRealPath ( struct KSysDir const *self,
-    char *real, size_t bsize, const char *path, ... );
-KFS_EXTERN rc_t CC KSysDirVRealPath ( struct KSysDir const *self,
-    char *real, size_t bsize, const char *path, va_list args );
-
 
 /*--------------------------------------------------------------------------
  * KArrayFile
diff --git a/interfaces/kfs/kfs-priv.h b/interfaces/kfs/kfs-priv.h
index 3f4a82b..73a1568 100644
--- a/interfaces/kfs/kfs-priv.h
+++ b/interfaces/kfs/kfs-priv.h
@@ -46,7 +46,6 @@ extern "C" {
 struct KDirectory;
 struct KFile;
 struct KPath;
-struct KDlset;
 struct KArrayFile;
 struct KNamelist;
 
@@ -57,6 +56,31 @@ struct KNamelist;
 KFS_EXTERN rc_t CC KFileMakeFDFileRead ( struct KFile const **f, int fd );
 KFS_EXTERN rc_t CC KFileMakeFDFileWrite ( struct KFile **f, bool update, int fd );
 
+KFS_EXTERN int CC KDirectoryVOpenSraArchiveRead_silent ( struct KDirectory const *self,
+    struct KDirectory const **sra_dir, int chroot, const char *path, va_list args );
+
+KFS_EXTERN int CC KDirectoryOpenSraArchiveRead_silent ( struct KDirectory const *self,
+    struct KDirectory const **sra_dir, int chroot, const char *path, ... );
+    
+KFS_EXTERN int CC KDirectoryVOpenTarArchiveRead_silent ( struct KDirectory const *self,
+    struct KDirectory const **sra_dir, int chroot, const char *path, va_list args );
+
+KFS_EXTERN int CC KDirectoryOpenTarArchiveRead_silent ( struct KDirectory const *self,
+    struct KDirectory const **sra_dir, int chroot, const char *path, ... );
+
+
+/*
+ * copy the path string out of a KPath object.
+ * if buffer is too short an RC (rcBuffer, rcInsufficient) is returned
+ * and nothing is copied.
+ * if there is a room the NUL is copied as well
+ */
+KFS_EXTERN rc_t CC KPathReadPath (const struct KPath * self, char * buffer,
+                                  size_t buffer_size, size_t * num_read);
+
+/* get current working directory */
+KFS_EXTERN rc_t CC KPathGetCWD (char * buffer, size_t buffer_size);
+
 /* GetMeta
  *  extracts metadata into a string-vector
  *
@@ -68,11 +92,6 @@ KFS_EXTERN rc_t CC KFileMakeFDFileWrite ( struct KFile **f, bool update, int fd
 KFS_EXTERN rc_t CC KArrayFileGetMeta ( struct KArrayFile const *self, const char *key,
     const struct KNamelist **list );
 
-/* List
- *  list the paths to the libraries in the set
- */
-KFS_EXTERN rc_t CC KDlsetList ( struct KDlset const *self, struct KNamelist **list );
-
     
 #ifdef __cplusplus
 }
diff --git a/interfaces/kfs/lockfile.h b/interfaces/kfs/lockfile.h
deleted file mode 100644
index ef83254..0000000
--- a/interfaces/kfs/lockfile.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kfs_lockfile_
-#define _h_kfs_lockfile_
-
-#ifndef _h_kfs_extern_
-#include <kfs/extern.h>
-#endif
-
-#ifndef _h_kfs_defs_
-#include <kfs/defs.h>
-#endif
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KFile;
-struct KDirectory;
-
-
-/*--------------------------------------------------------------------------
- * KLockFile
- *  a mutual exclusion lock on a file
- *  the lock is acquired upon creation
- *  and released upon destruction
- *
- * NB - only guaranteed to work when used from a single host
- */
-typedef struct KLockFile KLockFile;
-
-
-/* AddRef
- * Release
- */
-KFS_EXTERN rc_t CC KLockFileAddRef ( const KLockFile *self );
-KFS_EXTERN rc_t CC KLockFileRelease ( const KLockFile *self );
-
-
-
-/*--------------------------------------------------------------------------
- * KDirectory
- *  interface extensions
- */
-
-
-/* CreateLockFile
- *  attempts to create a KLockFile
- *
- *  "lock" [ OUT ] - return parameter for newly created lock file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting lock file
- */
-KFS_EXTERN rc_t CC KDirectoryCreateLockFile ( struct KDirectory *self,
-    KLockFile **lock, const char *path, ... );
-KFS_EXTERN rc_t CC KDirectoryVCreateLockFile ( struct KDirectory *self,
-    KLockFile **lock, const char *path, va_list args );
-
-
-/* CreateExclusiveAccessFile
- *  opens a file with exclusive write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "access" [ IN ] - standard Unix access mode, e.g. 0664
- *
- *  "mode" [ IN ] - a creation mode ( see explanation above ).
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- */
-KFS_EXTERN rc_t CC KDirectoryCreateExclusiveAccessFile ( struct KDirectory *self, struct KFile **f,
-    bool update, uint32_t access, KCreateMode mode, const char *path, ... );
-KFS_EXTERN rc_t CC KDirectoryVCreateExclusiveAccessFile ( struct KDirectory *self, struct KFile **f,
-    bool update, uint32_t access, KCreateMode mode, const char *path, va_list args );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_lockfile_ */
diff --git a/interfaces/vfs/path-priv.h b/interfaces/kfs/path-priv.h
similarity index 51%
rename from interfaces/vfs/path-priv.h
rename to interfaces/kfs/path-priv.h
index 98fe948..c2cb5a7 100644
--- a/interfaces/vfs/path-priv.h
+++ b/interfaces/kfs/path-priv.h
@@ -24,71 +24,36 @@
 *
 */
 
-#ifndef _h_vfs_path_priv_
-#define _h_vfs_path_priv_
+#ifndef _h_kfs_path_priv_
+#define _h_kfs_path_priv_
 
-#ifndef _h_vfs_extern_
-#include <vfs/extern.h>
+#ifndef _h_kfs_extern_
+#include <kfs/extern.h>
 #endif
 
-#ifndef _h_vfs_path_
-#include <vfs/path.h>
+#ifndef _h_klib_defs_
+#include <klib/defs.h>
 #endif
 
-#include <stdarg.h>
+#include <kfs/path.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/*
-typedef int32_t VPUri_t;
-enum eVPUri_t
+/* options for a KPath possibly obtained from a query string on an URI */
+typedef uint32_t KPOption_t;
+enum eKPOption_t
 {
-    vpuri_invalid = -1,
-    vpuri_none, 
-    vpuri_not_supported,
-    vpuri_ncbi_file,
-    vpuri_ncbi_vfs = vpuri_ncbi_file,
-#if SUPPORT_FILE_URL
-    vpuri_file,
-#endif
-    vpuri_ncbi_acc,
-    vpuri_http,
-    vpuri_ftp,
-    vpuri_ncbi_legrefseq,
-    vpuri_count
-};
-*/
-
-#define NCBI_FILE_SCHEME       "ncbi-file"
-#define NCBI_ACCESSION_SCHEME  "ncbi-acc"
-#define HTTP_SCHEME            "http"
-#define FTP_SCHEME             "ftp"
-#define NCBI_LEGREFSEQ_SCHEME  "x-ncbi-legrefseq"
-
-VFS_EXTERN VPUri_t VPathGetUri_t (const VPath * self);
-
-
-
-
-/* options for a VPath possibly obtained from a query string on an URI */
-typedef uint32_t VPOption_t;
-enum eVPOption_t
-{
-    vpopt_encrypted,
-    vpopt_pwpath,
-    vpopt_pwfd,
-    vpopt_readgroup,
-    vpopt_temporary_pw_hack,
-    vpopt_vdb_ctx,
-    vpopt_gap_ticket, 
-    vpopt_count
+    kpopt_encrypted,
+    kpopt_pwpath,
+    kpopt_pwfd,
+    kpopt_count
 };
 
 
 /* =====
- * Much of what follows is expected to move into the interface vfs/path.h
+ * Much of what follows is expected to move into the interface kfs/path.h
  * once it becomes supported.
  */
 
@@ -104,46 +69,33 @@ enum eVPOption_t
  * NB - SECURITY RISK IF USED DIRECTLY FROM EXTERNAL STRINGS.
  *      ALSO, FMT IS **NOT** PRINTF COMPATIBLE - see string_printf.
  */
-VFS_EXTERN rc_t CC VPathMakeFmt ( VPath ** new_path, const char * fmt, ... );
-VFS_EXTERN rc_t CC VPathMakeVFmt ( VPath ** new_path, const char * fmt, va_list args );
+KFS_EXTERN rc_t CC KPathMakeFmt ( KPath ** new_path, const char * fmt, ... );
+KFS_EXTERN rc_t CC KPathMakeVFmt ( KPath ** new_path, const char * fmt, va_list args );
 
 
 /* Bill - I don't know that we're ready to export these yet */
-VFS_EXTERN rc_t CC VPathMakeRelative ( VPath ** new_path, const VPath * base_path,
+KFS_EXTERN rc_t CC KPathMakeRelative ( KPath ** new_path, const KPath * base_path,
                                        const char * relative_path );
-VFS_EXTERN rc_t CC VPathMakeRelativeFmt ( VPath ** new_path, const VPath * base_path,
+KFS_EXTERN rc_t CC KPathMakeRelativeFmt ( KPath ** new_path, const KPath * base_path,
                                           const char * fmt, ... );
-VFS_EXTERN rc_t CC VPathVMakeRelativeFmt ( VPath ** new_path, const VPath * base_path,
+KFS_EXTERN rc_t CC KPathVMakeRelativeFmt ( KPath ** new_path, const KPath * base_path,
                                            const char * fmt, va_list args );
-VFS_EXTERN rc_t CC VPathMakeCurrentPath ( VPath ** new_path );
+KFS_EXTERN rc_t CC KPathMakeCurrentPath ( KPath ** new_path );
 
-VFS_EXTERN rc_t CC VPathMakeURI ( VPath ** new_path, const char * uri );
+KFS_EXTERN rc_t CC KPathMakeURI ( KPath ** new_path, const char * uri );
 
 
-VFS_EXTERN rc_t CC VPathReadPath ( const VPath * self, char * buffer,
+KFS_EXTERN rc_t CC KPathReadPath (const struct  KPath * self, char * buffer,
                                   size_t buffer_size, size_t * num_read);
 
-VFS_EXTERN rc_t CC VPathOption ( const VPath * self, VPOption_t option,
+KFS_EXTERN rc_t CC KPathOption (const KPath * self, KPOption_t option,
                                 char * buffer, size_t buffer_size,
                                 size_t * num_read);
 
-/*
- * copy the path string out of a KPath object.
- * if buffer is too short an RC (rcBuffer, rcInsufficient) is returned
- * and nothing is copied.
- * if there is a room the NUL is copied as well
- */
-VFS_EXTERN rc_t CC VPathReadPath ( const VPath * self, char * buffer,
-                                  size_t buffer_size, size_t * num_read);
-
-
-/* get current working directory */
-VFS_EXTERN rc_t CC VPathGetCWD (char * buffer, size_t buffer_size);
-
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _h_vfs_path_priv_ */
+#endif /* _h_kfs_path_priv_ */
diff --git a/interfaces/vfs/path.h b/interfaces/kfs/path.h
similarity index 78%
rename from interfaces/vfs/path.h
rename to interfaces/kfs/path.h
index 9a1df57..b3c2aa2 100644
--- a/interfaces/vfs/path.h
+++ b/interfaces/kfs/path.h
@@ -24,33 +24,25 @@
 *
 */
 
-#ifndef _h_vfs_path_
-#define _h_vfs_path_
+#ifndef _h_kfs_path_
+#define _h_kfs_path_
 
-#ifndef SUPPORT_FILE_URL
-#define SUPPORT_FILE_URL 1
-#endif
-
-#ifndef _h_vfs_extern_
-#include <vfs/extern.h>
+#ifndef _h_kfs_extern_
+#include <kfs/extern.h>
 #endif
 
 #ifndef _h_klib_defs_
 #include <klib/defs.h>
 #endif
 
+#include <stdarg.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 
 /*--------------------------------------------------------------------------
- * forwards
- */
-struct String;
-
-
-/*--------------------------------------------------------------------------
  *
  * The ABNF form described in RFC5234 will be used to define URLS and paths
  * with some handwaving instead of complete character definitions for case 
@@ -59,7 +51,7 @@ struct String;
  *
  * --------------------
  *
- * URL for a VPath
+ * URL for a KPath
  *
  *  as per RFC 3986, an URI consists of:
  *
@@ -73,7 +65,7 @@ struct String;
  *                    systems must either be empty or "localhost".  For Windows
  *                    it must  be a host that can be used if the "file" url is
  *                    translated into a UNC style Windows path.  Also in a
- *                    Windows vfs: URL a single colon ':' will be allowed only at
+ *                    Windows kfs: URL a single colon ':' will be allowed only at
  *                    the end of a single character rive letter for the first
  *                    sub-part of the path.
  *
@@ -148,7 +140,7 @@ struct String;
  *         "ncbi-file://win-server/archive/secure/read12345?encrypted"
  *         "ncbi-file:///c:/scanned-data/0001/file.sra?enc?pwd-file=c:/Users/JamesMcCoy/ncbi.pwd"
  *
- *  We allow an implied scheme of "vfs" if none present.
+ *  We allow an implied scheme of "kfs" if none present.
  *  'host-name' is partially implemented for Windows.  Not currently for any the
  *  of the supported Unix systems.  We do not support IP addresses instead of 
  *  host names.
@@ -162,9 +154,9 @@ struct String;
  *
  * --------------------
  *
- * VFS posix_path representation:
+ * KFS posix_path representation:
  *
- * The internal representation of a path for VFS resembles very closely the
+ * The internal representation of a path for KFS resembles very closely the
  * POSIX pathname crossed with the Windows UNC path.  Only the Unix "/" 
  * separator is allowed not the "\" for paths.
  *
@@ -199,32 +191,33 @@ struct String;
  * to describe the path portion of an URL.
  */
 
-typedef struct VPath VPath;
+typedef struct KPath KPath;
+
 
 /* AddRef
  * Release
  *  ignores NULL references
  */
-VFS_EXTERN rc_t CC VPathAddRef ( const VPath *self );
-VFS_EXTERN rc_t CC VPathRelease ( const VPath *self );
+KFS_EXTERN rc_t CC KPathAddRef ( const KPath *self );
+KFS_EXTERN rc_t CC KPathRelease ( const KPath *self );
 
 
 /* Make
  *  make a path object from a POSIX path string
- *  or an URL using the vfs scheme.  THe file scheme might be supported in the
+ *  or an URL using the kfs scheme.  THe file scheme might be supported in the
  *  future perhaps with other suitable schemes as well.
  *
  *  "new_path" [ OUT ] - a reference to the new object.
  *
  *  "posix_path" [ IN ] - a UTF-8, NUL-terminated POSIX-compliant path
- *  or a fully formed "vfs" or "file" url.
+ *  or a fully formed "kfs" or "file" url.
  */
-VFS_EXTERN rc_t CC VPathMake ( VPath ** new_path, const char * posix_path);
+KFS_EXTERN rc_t CC KPathMake ( KPath ** new_path, const char * posix_path);
 
 
 /* MakeSysPath
  *  make a path object from an external, OS-specific path string
- *  or a listed vfs URL.
+ *  or a listed kfs URL.
  *
  *  "new_path" [ OUT ] - a reference to the new object.
  *
@@ -234,56 +227,11 @@ VFS_EXTERN rc_t CC VPathMake ( VPath ** new_path, const char * posix_path);
  *
  * NB - see <klib/text.h> for functions to convert between character sets.
  */
-VFS_EXTERN rc_t CC VPathMakeSysPath ( VPath ** new_path, const char * sys_path );
-
-
-/* ReadPath
- *  returns the hierarchical part of the VPath
- */
-VFS_EXTERN rc_t CC VPathReadPath ( const VPath * self,
-    char * buffer, size_t buffer_size, size_t * num_read );
-
-/* GetPath
- *  returns an allocation of hierarchical part of the VPath ( ? )
- */
-VFS_EXTERN rc_t CC VPathGetPath ( const VPath * self, struct String const ** path );
-
-
-/* MakeString
- *  convert a VPath into a String
- *  create a String that is the "URI" representation of VPath.
- *  If the incoming string had no scheme, this will not as well
- */
-VFS_EXTERN rc_t CC VPathMakeString ( const VPath * self, struct String const ** uri );
-
-
-/* GetScheme
- *  returns the scheme as an allocation or as an enum
- */
-typedef int32_t VPUri_t;
-enum eVPUri_t
-{
-    vpuri_invalid = -1,
-    vpuri_none, 
-    vpuri_not_supported,
-    vpuri_ncbi_file,
-    vpuri_ncbi_vfs = vpuri_ncbi_file,
-#if SUPPORT_FILE_URL
-    vpuri_file,
-#endif
-    vpuri_ncbi_acc,
-    vpuri_http,
-    vpuri_ftp,
-    vpuri_ncbi_legrefseq,
-    vpuri_count
-};
-
-VFS_EXTERN rc_t CC VPathGetScheme ( const VPath * self, struct String const ** scheme );
-VFS_EXTERN rc_t CC VPathGetScheme_t ( const VPath * self, VPUri_t * uri_type );
+KFS_EXTERN rc_t CC KPathMakeSysPath ( KPath ** new_path, const char * sys_path );
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _h_vfs_path_ */
+#endif /* _h_kfs_path_ */
diff --git a/interfaces/kfs/quickmount.h b/interfaces/kfs/quickmount.h
deleted file mode 100644
index 6ecbaef..0000000
--- a/interfaces/kfs/quickmount.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kfs_quick_mount_
-#define _h_kfs_quick_mount_
-
-#ifndef _h_kfs_extern_
-#include <kfs/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct KDirectory;
-struct KFile;
-
-typedef struct KQuickMountDir KQuickMountDir;
-
-/* OpenQuickMountDirRead
- *
- */
-KFS_EXTERN rc_t KQuickMountDirMake (const struct KDirectory * self, 
-                                    const struct KDirectory ** pnewdir,
-                                    const struct KFile * file,
-                                    const char * path, size_t path_size,
-                                    const char * mount, size_t mount_size);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_quick_mount_ */
diff --git a/interfaces/kfs/ramfile.h b/interfaces/kfs/ramfile.h
deleted file mode 100644
index 65957b1..0000000
--- a/interfaces/kfs/ramfile.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kfs_ramfile_
-#define _h_kfs_ramfile_
-
-#ifndef _h_kfs_extern_
-#include <kfs/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct KFile;
-
-typedef struct KRamFile KRamFile;
-
-/* -----
- * fakes file reads and writes into a buffer
- *
- * writes never fail. Acts like a sliding window from previous writes of possible
- * reads only succeed of they are from what was contained in the last write
- *
- * zero fills are put in where possible. If you write a buffer, slide the window with 
- * a write that doesn't fill the buffer, the rest will be zero not what was previously written
- *
- * The Read only form doesn;t allow writes but will reflect what was put in
- * the buffer outside of the KFile
- *
- * The write only will accept writes but can only be accessed outside of the KFile.
- *
- * The update form tries its best to give what was asked for [see above]
- */
-KFS_EXTERN rc_t CC KRamFileMakeRead (const struct KFile ** self,
-                                     char * buffer, size_t buffer_size);
-
-KFS_EXTERN rc_t CC KRamFileMakeWrite (struct KFile ** self,
-                                      char * buffer, size_t buffer_size);
-
-KFS_EXTERN rc_t CC KRamFileMakeUpdate (struct KFile ** self,
-                                       char * buffer, size_t buffer_size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_ramfile_ */
diff --git a/interfaces/kfs/readheadfile.h b/interfaces/kfs/readheadfile.h
deleted file mode 100644
index 1cd47a1..0000000
--- a/interfaces/kfs/readheadfile.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kfs_readheadfile_
-#define _h_kfs_readheadfile_
-
-#ifndef _h_kfs_extern_
-#include <kfs/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards allowing opaque class typing
- */
-struct KFile;
-
-
-/* MakeReadHead
- *  make a read-only file where we buffer only the first part of the file
- *  this is pretty much only needed to type a file when we don't know
- *  or want to see if we can acess randomly.  This is a fairly smart type
- *  that will take ownership of the pointer to the 'original' KFile
- *  reference.  If it finds that the 'original' KFile is seekable (has
- *  random access) it will merely return a reference to that const KFile *
- *  rather than creating a new KFile that will in most cases pass through 
- *  all method calls to the original.
- *
- *  This type was created primarily to allow the reading of the first part
- *  of a file for type recognition with out forcing numerous cases of
- *  duplicated code to check for random access on an existing KFile reference
- *  and handling of the pre-read in the application.
- *
- *  This class is intended for files that once typed will be read straight
- *  through.  If more random access to the file is needed the KBufFile is 
- *  indicated rather than this one.  If a straight through access is needed
- *  this is a far lighter weight solution than KBufFile.
- *
- *  A references is added to the original even if it becomes used as the new
- *  file because it allows random access.
- *
- *  "buf" [ OUT ] - return parameter for new buffered file
- *
- *  "original" [ IN ] - source file to be buffered. must have read access
- *
- *  "bsize" [ IN ] - buffer size
- */
-KFS_EXTERN 
-rc_t CC KFileMakeReadHead (const struct KFile ** pself,
-                           const struct KFile * original,
-                           size_t buffer_size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_readheadfile_ */
diff --git a/interfaces/kfs/sra.h b/interfaces/kfs/sra.h
index ef52bc4..60b72cd 100644
--- a/interfaces/kfs/sra.h
+++ b/interfaces/kfs/sra.h
@@ -55,7 +55,7 @@ extern "C" {
  * just these enumerated values.  
  */
 typedef uint32_t KSRAFileAlignment;
-enum eKSRAFileAlignment
+enum KSRAFileAlignment
 {
     /* align on byte count unit boundaries
      * set this to the number of bytes in the alignment unit
@@ -109,6 +109,9 @@ struct KSraHeader
 
 
 
+KFS_EXTERN rc_t CC SraHeaderMake (KSraHeader ** self, size_t treesize, KSRAFileAlignment alignment);
+KFS_EXTERN rc_t CC SraHeaderValidate (const KSraHeader * self, bool * reverse, uint32_t * version);
+KFS_EXTERN size_t CC SraHeaderSize (const KSraHeader * self);
 #define FS_SRA_CUR_VERSION 1
 
 KFS_EXTERN uint64_t CC SraHeaderGetFileOffset (const KSraHeader * self);
@@ -162,18 +165,6 @@ KFS_EXTERN rc_t CC KDirectoryOpenSraArchiveRead ( struct KDirectory const *self,
     struct KDirectory const **sra_dir, int chroot, const char *path, ... );
 KFS_EXTERN rc_t CC KDirectoryVOpenSraArchiveRead ( struct KDirectory const *self,
     struct KDirectory const **sra_dir, int chroot, const char *path, va_list args );
-KFS_EXTERN rc_t CC KDirectoryOpenSraArchiveRead_silent ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const char *path, ... );
-KFS_EXTERN rc_t CC KDirectoryVOpenSraArchiveRead_silent ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const char *path, va_list args );
-KFS_EXTERN rc_t CC KDirectoryOpenSraArchiveRead_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const struct KFile * f, const char *path, ... );
-KFS_EXTERN rc_t CC KDirectoryVOpenSraArchiveRead_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const struct KFile * f, const char *path, va_list args );
-KFS_EXTERN rc_t CC KDirectoryOpenSraArchiveReadUnbounded_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const struct KFile * f, const char *path, ... );
-KFS_EXTERN rc_t CC KDirectoryVOpenSraArchiveReadUnbounded_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const struct KFile * f, const char *path, va_list args );
 /* copycat needs an unbounded version - that is filesize is not necessarily known
  * this is unsafe for most other uses */
 KFS_EXTERN rc_t CC KDirectoryOpenSraArchiveReadUnbounded ( struct KDirectory const *self,
@@ -181,8 +172,6 @@ KFS_EXTERN rc_t CC KDirectoryOpenSraArchiveReadUnbounded ( struct KDirectory con
 KFS_EXTERN rc_t CC KDirectoryVOpenSraArchiveReadUnbounded ( struct KDirectory const *self,
     struct KDirectory const **sra_dir, int chroot, const char *path, va_list args );
 
-KFS_EXTERN rc_t CC KFileIsSRA (const char * b, size_t z);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/kfs/tar.h b/interfaces/kfs/tar.h
index 96d8c63..4491538 100644
--- a/interfaces/kfs/tar.h
+++ b/interfaces/kfs/tar.h
@@ -82,11 +82,6 @@ KFS_EXTERN int CC KDirectoryOpenTarArchiveRead_silent ( struct KDirectory const
 KFS_EXTERN int CC KDirectoryVOpenTarArchiveRead_silent ( struct KDirectory const *self,
     struct KDirectory const **tar_dir, int chroot, const char *path, va_list args );
 
-KFS_EXTERN int CC KDirectoryOpenTarArchiveRead_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **tar_dir, int chroot, const struct KFile * f, const char *path, ... );
-KFS_EXTERN int CC KDirectoryVOpenTarArchiveRead_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **tar_dir, int chroot, const struct KFile * f, const char *path, va_list args );
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/klib/checksum.h b/interfaces/klib/checksum.h
index 5c38ee8..78e5afc 100644
--- a/interfaces/klib/checksum.h
+++ b/interfaces/klib/checksum.h
@@ -106,7 +106,7 @@ struct SHA64bitState
 {
     uint64_t len;
     uint64_t H [ 8 ];
-    unsigned long cur;
+    uint32_t cur;
     uint8_t W [ 128 ];
 };
 
diff --git a/interfaces/klib/debug.h b/interfaces/klib/debug.h
index 3b321ef..80b40f8 100644
--- a/interfaces/klib/debug.h
+++ b/interfaces/klib/debug.h
@@ -61,7 +61,7 @@ extern "C" {
 
 /*
  * To add a new module, just add it to the list in MODULE_NAMES but as a 
- * parameter to the macro "_module"
+ * parameters to the macro "_module"
  *
  * Then add the conditions for that module.  There must be at least one.
  * Put them in the macro "_condition"
@@ -102,10 +102,10 @@ extern "C" {
  */
 
 #define MODULE_NAMES() \
-    _module(APP)  _module(BLAST) _module(KDB) _module(REF)   _module(LEGREF) \
+    _module(APP)  _module(KDB) _module(REF)   _module(LEGREF) \
     _module(KFS)  _module(XML)   _module(VDB) _module(SRA)    \
     _module(XARC) _module(ALIGN) _module(KFG) _module(KRYPTO) \
-    _module(SEARCH) _module(LOADLIB) _module(VFS) _module(AES) _module(ARGS)
+    _module(SEARCH) _module(LOADLIB)
 
 #define APP_CONDITIONS() \
     _condition(APP,0)  _condition(APP,1)  _condition(APP,2)  _condition(APP,3)  \
@@ -125,9 +125,6 @@ extern "C" {
     _condition(APP,56) _condition(APP,57) _condition(APP,58) _condition(APP,59) \
     _condition(APP,60) _condition(APP,61) _condition(APP,62) _condition(APP,63) 
 
-#define BLAST_CONDITIONS() \
-    _condition(BLAST,BLAST)
-
 #define KDB_CONDITIONS() \
     _condition(KDB,KDB)
 
@@ -142,10 +139,8 @@ extern "C" {
     _condition(KFS,MD5)      _condition(KFS,DLL) _condition(KFS,KFFENTRY) _condition(KFS,KFF)  \
     _condition(KFS,ARCENTRY) _condition(KFS,ARC) _condition(KFS,TOCENTRY) _condition(KFS,TOC)  \
     _condition(KFS,TARENTRY) _condition(KFS,TAR) _condition(KFS,SRASORT)  _condition(KFS,GZIP) \
-    _condition(KFS,DIR)  _condition(KFS,COUNTER) _condition(KFS,BZIP)     _condition(KFS,SYS)
-
-#define VFS_CONDITIONS() \
-    _condition(VFS,MGR)     _condition(VFS,PATH)
+    _condition(KFS,DIR)  _condition(KFS,COUNTER) _condition(KFS,BZIP)     _condition(KFS,SYS) \
+    _condition(KFS,MGR)     _condition(KFS,PATH)
 
 #define XML_CONDITIONS() \
     _condition(XML,XML)
@@ -166,22 +161,13 @@ extern "C" {
     _condition(XARC,ARC)
 
 #define ALIGN_CONDITIONS() \
-    _condition(ALIGN,WRITER) _condition(ALIGN,COMPRESS) _condition(ALIGN,COVERAGE) \
-    _condition(ALIGN,BAM) _condition(ALIGN,BGZF) _condition(ALIGN,CFG)
+    _condition(ALIGN,WRITER)
 
 #define KFG_CONDITIONS() \
-    _condition(KFG,LOAD) _condition(KFG,NODE)
+    _condition(KFG,LOAD) 
 
 #define KRYPTO_CONDITIONS() \
-    _condition(KRYPTO,STS) \
-    _condition(KRYPTO,CFG) \
-    _condition(KRYPTO,ENCRYPT) \
-    _condition(KRYPTO,DECRYPT)
-
-#define AES_CONDITIONS() \
-    _condition(AES,KEYEXP) _condition(AES,CIPHER) \
-    _condition(AES,INVKEYEXP) _condition(AES,INVCIPHER) \
-    _condition(AES,OBJECT)
+    _condition(KRYPTO,STS) _condition(KRYPTO,CFG) _condition(KRYPTO,ENCRYPT) _condition(KRYPTO,DECRYPT) 
 
 #define SEARCH_CONDITIONS() \
     _condition(SEARCH,MYERS)
@@ -189,9 +175,6 @@ extern "C" {
 #define LOADLIB_CONDITIONS() \
     _condition(LOADLIB,PBAR) _condition(LOADLIB,FILE) _condition(LOADLIB,XLOG)
 
-#define ARGS_CONDITIONS() \
-    _condition(ARGS,WRITER)
-
 /*
  * Nothing below here needs to be changed when just adding new modules
  * and/or conditions
diff --git a/interfaces/klib/defs.h b/interfaces/klib/defs.h
index b5f37ce..afc3400 100644
--- a/interfaces/klib/defs.h
+++ b/interfaces/klib/defs.h
@@ -33,11 +33,10 @@
 
 #include <stdint.h>
 #include <stddef.h>
+#include <stdbool.h>
 
 #ifdef __cplusplus
 extern "C" {
-#else
-#include <stdbool.h>
 #endif
 
 /*--------------------------------------------------------------------------
@@ -88,7 +87,7 @@ typedef int64_t KTime_t;
 
 /*--------------------------------------------------------------------------
  * ver_t
- *  32 bit 4 part type
+ *  32 bit 2 part type
  */
 typedef uint32_t ver_t;
 
@@ -113,7 +112,7 @@ typedef uint32_t ver_t;
 
 /*--------------------------------------------------------------------------
  * KCreateMode
- *  values are defined in <kfs/defs.h>
+ *  values are defined in <kfs/directory.h>
  */
 typedef uint32_t KCreateMode;
 
diff --git a/interfaces/klib/extern.h b/interfaces/klib/extern.h
index 92727f0..38abab1 100644
--- a/interfaces/klib/extern.h
+++ b/interfaces/klib/extern.h
@@ -40,11 +40,7 @@
 #else
 
 #define KLIB_EXTERN LIB_IMPORT
-#ifdef __cplusplus
-#define KLIB_EXTERN_DATA extern /* LIB_IMPORT_DATA */
-#else
 #define KLIB_EXTERN_DATA LIB_IMPORT_DATA
-#endif
 
 #endif
 
@@ -58,7 +54,7 @@
    function addresses resolve to the thunk and not
    the actual function. */
 #define LIB_IMPORT extern
-#define LIB_IMPORT_DATA extern __declspec ( dllimport )
+#define LIB_IMPORT_DATA __declspec ( dllimport )
 #define LIB_EXPORT __declspec ( dllexport )
 #define LIB_EXPORT_DATA __declspec ( dllexport )
 
diff --git a/interfaces/klib/klib-priv.h b/interfaces/klib/klib-priv.h
deleted file mode 100644
index f3a0f6f..0000000
--- a/interfaces/klib/klib-priv.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_klib_priv_
-#define _h_klib_priv_
-
-#ifndef _h_klib_extern_
-#include <klib/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifndef _h_klib_writer_
-#include <klib/writer.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- */
-
-
-/* reporting structure
- */
-typedef struct ReportFuncs ReportFuncs;
-struct ReportFuncs
-{
-    void ( CC * report ) ( uint32_t indent, const char* name, uint32_t count, ... );
-    void ( CC * reportData ) ( uint32_t indent, const char* name, const char* data, uint32_t count, ... );
-    rc_t ( CC * reportData1 ) ( const char* data );
-    void ( CC * reportOpen ) ( uint32_t indent, const char* name, uint32_t count, ... );
-    void ( CC * reportOpen1 ) ( uint32_t indent, const char* name );
-    void ( CC * reportClose ) ( uint32_t indent, const char* name );
-    void ( CC * reportClose1 ) ( const char* name );
-    void ( CC * reportError ) ( uint32_t indent, rc_t rc, const char* function );
-    void ( CC * reportErrorStr ) ( uint32_t indent, rc_t rc, const char* function,
-        const char* name, const char* val );
-    void ( CC * reportErrorStrImpl ) ( uint32_t indent, rc_t rc, const char* function,
-        const char* name, const char* val, bool eol );
-    void ( CC * reportErrorStrInt ) ( uint32_t indent, rc_t rc, const char* function,
-        const char* names, const char* vals, const char* namei, uint32_t vali );
-    void ( CC * reportError3Str ) ( uint32_t indent, rc_t rc, const char* function,
-        const char* name, const char* v1, const char* v2, const char* v3, bool eol );
-};
-
-
-/* InitKFS
- */
-KLIB_EXTERN void CC ReportInitKFS (
-    rc_t ( CC * report_cwd ) ( const ReportFuncs *f, uint32_t indent ),
-    rc_t ( CC * report_redirect ) ( KWrtHandler* handler,
-        const char* filename, bool* to_file, bool finalize ) );
-
-/* InitConfig
- *  returns appname if available
- */
-KLIB_EXTERN const char* CC ReportInitConfig ( rc_t ( CC * report ) ( const ReportFuncs *f, uint32_t indent ) );
-
-
-/* InitVDB
- */
-KLIB_EXTERN rc_t CC ReportInitVDB(
-    rc_t (CC *report_obj)(const ReportFuncs *f,
-        uint32_t indent, const char *path, bool *wasDbOrTableSet),
-    rc_t (CC *report_software)(const ReportFuncs *f,
-        uint32_t indent, const char *argv_0, const char *date, ver_t tool_ver),
-    rc_t (CC *whack)(void));
-
-
-/* RecordZombieFile
- */
-KLIB_EXTERN void CC ReportRecordZombieFile ( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_klib_priv_ */
diff --git a/interfaces/klib/ksort-macro.h b/interfaces/klib/ksort-macro.h
deleted file mode 100644
index e86d57b..0000000
--- a/interfaces/klib/ksort-macro.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_klib_ksort_macro_
-#define _h_klib_ksort_macro_
-
-#include <limits.h>
-#include <stdlib.h>
-
-
-/* Copyright (C) 1991,1992,1996,1997,1999,2004 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Written by Douglas C. Schmidt (schmidt at ics.uci.edu).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* If you consider tuning this algorithm, you should consult first:
-   Engineering a sort function; Jon Bentley and M. Douglas McIlroy;
-   Software - Practice and Experience; Vol. 23 (11), 1249-1265, 1993.  */
-
-/* Discontinue quicksort algorithm when partition gets below this size.
-   This particular magic number was chosen to work best on a Sun 4/260. */
-#ifndef KSORT_MAX_THRESH
-#define KSORT_MAX_THRESH 4
-#endif
-
-/* Stack node declarations used to store unfulfilled partition obligations. */
-#ifndef ksort_stack_node_declared
-#define ksort_stack_node_declared 1
-typedef struct ksort_stack_node ksort_stack_node;
-struct ksort_stack_node
-{
-    char *lo;
-    char *hi;
-};
-#endif
-
-/* The next 4 #defines implement a very fast in-line stack abstraction. */
-/* The stack needs log (total_elements) entries (we could even subtract
-   log(MAX_THRESH)).  Since total_elements has type size_t, we get as
-   upper bound for log (total_elements):
-   bits per byte (CHAR_BIT) * sizeof(size_t).  */
-
-#ifndef KSORT_STACK_SIZE
-#define KSORT_STACK_SIZE	(CHAR_BIT * sizeof(size_t))
-#endif
-
-#ifndef KSORT_PUSH
-#define KSORT_PUSH(low, high)	((void) ((top->lo = (low)), (top->hi = (high)), ++top))
-#endif
-
-#ifndef KSORT_POP
-#define	KSORT_POP(low, high)	((void) (--top, (low = top->lo), (high = top->hi)))
-#endif
-
-#ifndef KSORT_STACK_EMPTY
-#define	KSORT_STACK_EMPTY	( stack >= top )
-#endif
-
-#ifndef KSORT_SWAP
-#define KSORT_SWAP( a, b, off, size )           \
-    do                                          \
-    {                                           \
-        register size_t i, end = off + size;    \
-        register char *__a = (a), *__b = (b);   \
-        for ( i = off; i < end; ++ i )          \
-        {                                       \
-            char __tmp = __a [ i ];             \
-            __a [ i ] = __b [ i ];              \
-            __b [ i ] = __tmp;                  \
-        }                                       \
-    } while (0)
-#endif
-
-#define KSORT_TSWAP( T, a, b )                  \
-    do                                          \
-    {                                           \
-        T tmp = * ( const T* ) ( a );           \
-        * ( T* ) ( a ) = * ( const T* ) ( b );  \
-        * ( T* ) ( b ) = tmp;                   \
-    }                                           \
-    while ( 0 )
-
-
-/* Order size using quicksort.  This implementation incorporates
-   four optimizations discussed in Sedgewick:
-
-   1. Non-recursive, using an explicit stack of pointer that store the
-   next array partition to sort.  To save time, this maximum amount
-   of space required to store an array of SIZE_MAX is allocated on the
-   stack.  Assuming a 32-bit (64 bit) integer for size_t, this needs
-   only 32 * sizeof(stack_node) == 256 bytes (for 64 bit: 1024 bytes).
-   Pretty cheap, actually.
-
-   2. Chose the pivot element using a median-of-three decision tree.
-   This reduces the probability of selecting a bad pivot value and
-   eliminates certain extraneous comparisons.
-
-   3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving
-   insertion sort to order the MAX_THRESH items within each partition.
-   This is a big win, since insertion sort is faster for small, mostly
-   sorted array segments.
-
-   4. The larger of the two sub-partitions is always pushed onto the
-   stack first, with the algorithm then concentrating on the
-   smaller partition.  This *guarantees* no more than log (total_elems)
-   stack size is needed (actually O(1) in this case)!  */
-
-#define KSORT( PBASE, TOTAL_ELEMS, ELEM_SIZE, SWAP_OFFSET, SWAP_SIZE )            \
-    register char *base_ptr = ( char* ) ( PBASE );                                \
-    const size_t max_thresh = KSORT_MAX_THRESH * ( ELEM_SIZE );                   \
-    if ( ( TOTAL_ELEMS ) < 2)                                                     \
-        return;                                                                   \
-    if ( ( TOTAL_ELEMS ) > KSORT_MAX_THRESH)                                      \
-    {                                                                             \
-        char *lo = base_ptr;                                                      \
-        char *hi = & lo [ ( ELEM_SIZE ) * ( ( TOTAL_ELEMS ) - 1 ) ];              \
-        ksort_stack_node stack [ KSORT_STACK_SIZE ];                              \
-        ksort_stack_node *top = stack;                                            \
-        KSORT_PUSH (NULL, NULL);                                                  \
-        while ( ! KSORT_STACK_EMPTY )                                             \
-        {                                                                         \
-            char *left_ptr;                                                       \
-            char *right_ptr;                                                      \
-            char *mid = lo + ( ELEM_SIZE ) * ( ( hi - lo ) / ( ELEM_SIZE ) >> 1 );\
-            if ( CMP ( ( void* ) mid, ( void* ) lo ) < 0 )                        \
-                SWAP ( mid, lo, ( SWAP_OFFSET ), ( SWAP_SIZE ) );                 \
-            if ( CMP ( ( void* ) hi, ( void* ) mid) < 0 )                         \
-                SWAP ( mid, hi, ( SWAP_OFFSET ), ( SWAP_SIZE ) );                 \
-            else                                                                  \
-                goto jump_over;                                                   \
-            if ( CMP ( ( void* ) mid, ( void* ) lo ) < 0 )                        \
-                SWAP ( mid, lo, ( SWAP_OFFSET ), ( SWAP_SIZE ) );                 \
-        jump_over:                                                                \
-            left_ptr  = lo + ( ELEM_SIZE );                                       \
-            right_ptr = hi - ( ELEM_SIZE );                                       \
-            do                                                                    \
-            {                                                                     \
-                while ( CMP ( ( void* ) left_ptr, ( void* ) mid ) < 0 )           \
-                    left_ptr += ( ELEM_SIZE );                                    \
-                while ( CMP ( ( void* ) mid, ( void* ) right_ptr ) < 0 )          \
-                    right_ptr -= ( ELEM_SIZE );                                   \
-                if ( left_ptr < right_ptr )                                       \
-                {                                                                 \
-                    SWAP ( left_ptr, right_ptr, ( SWAP_OFFSET ), ( SWAP_SIZE ) ); \
-                    if ( mid == left_ptr )                                        \
-                        mid = right_ptr;                                          \
-                    else if ( mid == right_ptr )                                  \
-                        mid = left_ptr;                                           \
-                    left_ptr += ( ELEM_SIZE );                                    \
-                    right_ptr -= ( ELEM_SIZE );                                   \
-                }                                                                 \
-                else if ( left_ptr == right_ptr )                                 \
-                {                                                                 \
-                    left_ptr += ( ELEM_SIZE );                                    \
-                    right_ptr -= ( ELEM_SIZE );                                   \
-                    break;                                                        \
-                }                                                                 \
-            }                                                                     \
-            while ( left_ptr <= right_ptr );                                      \
-            if ((size_t) (right_ptr - lo) <= max_thresh)                          \
-            {                                                                     \
-                if ((size_t) (hi - left_ptr) <= max_thresh)                       \
-                    KSORT_POP (lo, hi);                                           \
-                else                                                              \
-                    lo = left_ptr;                                                \
-            }                                                                     \
-            else if ((size_t) (hi - left_ptr) <= max_thresh)                      \
-                hi = right_ptr;                                                   \
-            else if ((right_ptr - lo) > (hi - left_ptr))                          \
-            {                                                                     \
-                KSORT_PUSH (lo, right_ptr);                                       \
-                lo = left_ptr;                                                    \
-            }                                                                     \
-            else                                                                  \
-            {                                                                     \
-                KSORT_PUSH (left_ptr, hi);                                        \
-                hi = right_ptr;                                                   \
-            }                                                                     \
-        }                                                                         \
-    }                                                                             \
-    {                                                                             \
-        register char *run_ptr;                                                   \
-        char *const end_ptr = & base_ptr [(ELEM_SIZE)*((TOTAL_ELEMS)-1)];         \
-        char *tmp_ptr = base_ptr;                                                 \
-        char *thresh = base_ptr + max_thresh;                                     \
-        if ( thresh > end_ptr )                                                   \
-            thresh = end_ptr;                                                     \
-        for (run_ptr = tmp_ptr+(ELEM_SIZE);run_ptr<=thresh;run_ptr+=(ELEM_SIZE))  \
-            if ( CMP ( ( void* ) run_ptr, ( void* ) tmp_ptr ) < 0 )               \
-                tmp_ptr = run_ptr;                                                \
-        if (tmp_ptr != base_ptr)                                                  \
-            SWAP ( tmp_ptr, base_ptr, ( SWAP_OFFSET ), ( SWAP_SIZE ) );           \
-        tmp_ptr = base_ptr + ( ELEM_SIZE );                                       \
-        for ( run_ptr = base_ptr + ( 2 * ( ELEM_SIZE ) );                         \
-              run_ptr <= end_ptr; tmp_ptr = run_ptr, run_ptr += ( ELEM_SIZE ) )   \
-        {                                                                         \
-            for ( ; tmp_ptr >= base_ptr; tmp_ptr -= ( ELEM_SIZE ) )               \
-            {                                                                     \
-                if ( CMP ( run_ptr, tmp_ptr ) >= 0 )                              \
-                    break;                                                        \
-            }                                                                     \
-            tmp_ptr += ( ELEM_SIZE );                                             \
-            if ( tmp_ptr != run_ptr )                                             \
-            {                                                                     \
-                char *trav;                                                       \
-                trav = run_ptr + ( ELEM_SIZE );                                   \
-                while ( --trav >= run_ptr )                                       \
-                {                                                                 \
-                    char c = *trav;                                               \
-                    char *hi, *lo;                                                \
-                    for (hi=lo=trav; (lo-=(ELEM_SIZE)) >= tmp_ptr; hi=lo)         \
-                        *hi = *lo;                                                \
-                    *hi = c;                                                      \
-                }                                                                 \
-            }                                                                     \
-        }                                                                         \
-    }                                                                             \
-    ( void ) 0
-
-#endif /* _h_klib_ksort_macro_ */
diff --git a/interfaces/klib/log.h b/interfaces/klib/log.h
index dd4f6eb..04701f2 100644
--- a/interfaces/klib/log.h
+++ b/interfaces/klib/log.h
@@ -64,7 +64,7 @@ extern "C" {
  *  "debug" - verbose output for use in debugging
  */
 typedef uint32_t KLogLevel;
-enum
+enum KLogLevel
 {
     klogLevelMin = 0,
     klogFatal = klogLevelMin,
@@ -143,7 +143,7 @@ KLIB_EXTERN rc_t CC KLogLibHandlerSetStdErr (void);
 /* formatting */
 
 typedef uint32_t KLogFmtFlags;
-enum
+enum KLogFmtFlags
 {
     klogFmtTimestamp = 0x00000001,
     klogFmtSeverity = 0x00000002,
diff --git a/interfaces/klib/namelist.h b/interfaces/klib/namelist.h
index 9826d1e..a744d02 100644
--- a/interfaces/klib/namelist.h
+++ b/interfaces/klib/namelist.h
@@ -142,16 +142,6 @@ KLIB_EXTERN rc_t CC VNameListCount ( const VNamelist *self, uint32_t *count );
  */
 KLIB_EXTERN rc_t CC VNameListGet ( const VNamelist *self, uint32_t idx, const char **name );
 
-
-/* Reorder
- *  sort the names according to case sensitivity
- *  and UNICODE character code ordering
- *
- *  "case_insensitive" [ IN ] - when true, perform "tolower" on
- *   each character before compare
- */
-KLIB_EXTERN void CC VNamelistReorder ( VNamelist *self, bool case_insensitive );
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/klib/out.h b/interfaces/klib/out.h
index 02aa06f..2253e00 100644
--- a/interfaces/klib/out.h
+++ b/interfaces/klib/out.h
@@ -65,8 +65,6 @@ KLIB_EXTERN rc_t CC KOutInit (void);
 
 KLIB_EXTERN rc_t CC KOutMsg (const char * fmt, ...);
 
-#define KOutStr(str) KOutMsg("%s",str)
-
 /*
  * A usage could look like
  *
@@ -74,10 +72,8 @@ KLIB_EXTERN rc_t CC KOutMsg (const char * fmt, ...);
  *
  */
 #define OUTMSG(msg) \
-    ((KOutWriterGet() != NULL) ? KOutMsg msg : 0)
+    (void)((KOutWriterGet() != NULL) ? KOutMsg msg : 0)
 
-#define OUTSTR(msg) \
-    ((KOutWriterGet() != NULL) ? KOutStr (msg) : 0)
 
 #ifdef __cplusplus
 }
diff --git a/interfaces/klib/printf.h b/interfaces/klib/printf.h
index baf05bc..794ae5d 100644
--- a/interfaces/klib/printf.h
+++ b/interfaces/klib/printf.h
@@ -41,24 +41,11 @@
 extern "C" {
 #endif
 
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct String;
-struct KSymbol;
-struct KWrtHandler;
-
-
 /*--------------------------------------------------------------------------
  * FORMAT
  *  a description of the string_printf formatting
  */
 
-#define SUPPORT_PERCENT_N 1
-
-
 /*
   The standard C library formatting approach was taken as a basis.
 
@@ -74,48 +61,37 @@ struct KWrtHandler;
 
     flags
         = ' '           : prepend space to a numeral if it does not have a sign
-        | '+'           : always produce a sign on numeric conversion
         | '-'           : left-align parameter within field
-        | '0'           : left-pad with zeros rather than spaces
+        | '+'           : always produce a sign on numeric conversion
+        | '0'           : left-pad with zeroes rather than spaces
         | '#'           : use "alternate" representation
         | ','           : produce comma-separated triples
         | '\''          :  "      "
         ;
 
-    field-width *(1)
-        = DECIMAL       : an unsigned base-10 numeral
+    field-width
+        = DECIMAL       : a base-10 numeral
         | '*'           : take field width from args as type 'uint32_t'
         ;
 
-    precision *(1)(2)(3)
-        = DECIMAL       : an unsigned base-10 numeral
+    precision
+        = DECIMAL       : a base-10 numeral
         | '*'           : take precision from args as type 'uint32_t'
-        |               : an empty precision means 0
         ;
 
     index
         = idx           : a single, zero-based vector element
         | idx '-' idx   : a fully-closed, zero-based interval
-        | idx '/' len   : a start index plus length
         ;
 
     idx
-        = DECIMAL       : an unsigned base-10 numeral
-        | '*'           : take index from args as type 'uint32_t'
-        | '$'           : last vector element
-        |               : an empty index means 0 or $
-        ;
-
-    len
         = DECIMAL       : a base-10 numeral
-        | '*'           : take length from args as type 'uint32_t'
-        | '$'           : length-of ( vector )
-        |               : an empty length means $
+        | '$'           : the last element in vector
+        | '*'           : take index from args as type 'uint32_t'
         ;
 
     storage-class-width
-        = 't'           : tiny integer ( i.e. byte )
-        | 'h'           : half the normal size
+        = 'h'           : half the normal size
         | 'l'           : twice the normal size
         | 'z'           : sizeof size_t
         | time-modifier
@@ -127,41 +103,25 @@ struct KWrtHandler;
         | 'z'           : date, time and zone
         ;
 
-    scalar storage-class
-        = 'd' | 'i'     : decimal signed integer
-        | 'u'           : decimal unsigned integer
-        | 'x'           : lower-case hex integer
-        | 'X'           : upper-case hex integer
-        | 'o'           : octal integer
-        | 'b'           : binary integer
+    storage-class
+        = 'd' | 'i'     : decimal int32_t
+        | 'u'           : decimal uint32_t
+        | 'x'           : lower-case hex uint32_t
+        | 'X'           : upper-case hex uint32_t
+        | 'o'           : octal uint32_t
+        | 'b'           : binary uint32_t
         | 'p'           : hex void*
         | 'f'           : double
         | 'e'           : scientific notation double
         | 'g'           : general double
         | 'c'           : UTF-32 character
+        | 's'           : UTF-8 string
+        | 'S'           : const String* [ see above ]
         | 'N'           : const KSymbol* [ <klib/symbol.h> ]
-        | 'V' *(4)      : tri-part version [ ver_t ]
+        | 'V'           : tri-part version [ ver_t ]
         | 'R'           : return code [ rc_t ]
         | 'T'           : const KTime*  [ <klib/time.h> ]
         | '!'           ; operating specific error code ( i.e. errno or GetLastError() )
-        | 'n' *(5)      ; output of number of characters printed so far to uint32_t*
-        ;
-
-    single-index vector storage-class *(6)(7)
-        = 'd' | 'i'     : as above
-        | 'u' | 'x'     : index range is ignored
-        | 'X' | 'o'     : start index is used
-        | 'b' | 'p'     : to select element
-        | 'f' | 'e' | 'g'
-        | 'N'           : const KSymbol* [ <klib/symbol.h> ]
-        | 'V' *(4)      : tri-part version [ ver_t ]
-        | 'R'           : return code [ rc_t ]
-        | 'T'           : const KTime*  [ <klib/time.h> ]
-        ;
-
-    index-range vector storage-class *(8)
-        = 'c' *(9)      : unbounded character vector
-        | 's' | 'S'     : bounded character vector
         ;
 
   Notes:
@@ -172,21 +132,9 @@ struct KWrtHandler;
         minimum number of fields required.
      4. the storage-class-width is interpreted differently for storage-class
         'T' ( const KTime* )
-     5. %n may not be supported for security purposes
-     6. when an index is specified, the argument is taken as an
-        unbounded vector. if an index range is given, only the
-        starting index is used, and only a single element is selected.
-     7. the vector reference class is determined by both the format
-        and the size modifier.
-     8. an index for character classes may specify a string as the
-        selection. when missing, the default start index is 0 while
-        the default end index is $.
-     9. a character vector is NOT assumed to be NUL-terminated,
-        and in this case the default end index is the start index.
 
  */
 
-
 /* string_printf
  *  provides a facility similar to snprintf
  *  formatting is similar but differs somewhat [ see FORMAT at bottom ]
@@ -214,176 +162,6 @@ KLIB_EXTERN rc_t CC string_vprintf ( char *dst, size_t bsize,
     size_t *num_writ, const char *fmt, va_list args );
 
 
-/*--------------------------------------------------------------------------
- * structured_printf
- *  the engine behind string_printf
- */
-
-/* formatting
- */
-enum
-{
-    spfNone,                                    /* 'n', sptTerm                       */
-    spfText,                                    /* 'csS', literal                     */
-    spfSignedInt,                               /* 'di'                               */
-    spfUnsigned,                                /* 'bouxX'                            */
-    spfStdFloat,                                /* 'f'                                */
-    spfGenFloat,                                /* 'g'                                */
-    spfSciFloat,                                /* 'e'                                */
-    spfVersion,                                 /* 'V'                                */
-    spfSymbol,                                  /* 'N'                                */
-    spfTime,                                    /* [ 'hlz' + ] 'T'                    */
-    spfRC,                                      /* 'R'                                */
-    spfOSErr                                    /* '!'                                */
-};
-
-/* types
- */
-enum
-{
-    sptTerm,                                    /* terminates format                  */
-    sptLiteral,                                 /* char literal        - arg in fmt   */
-    sptSignedInt,                               /* signed scalar int   - arg is d     */
-    sptSignedInt8Vect,                          /* signed vector int   - arg is d8    */
-    sptSignedInt16Vect,                         /* signed vector int   - arg is d16   */
-    sptSignedInt32Vect,                         /* signed vector int   - arg is d32   */
-    sptSignedInt64Vect,                         /* signed vector int   - arg is d64   */
-    sptUnsignedInt,                             /* unsigned scalar int - arg is u     */
-    sptUnsignedInt8Vect,                        /* unsigned vector int - arg is u8    */
-    sptUnsignedInt16Vect,                       /* unsigned vector int - arg is u16   */
-    sptUnsignedInt32Vect,                       /* unsigned vector int - arg is u32   */
-    sptUnsignedInt64Vect,                       /* unsigned vector int - arg is u64   */
-    sptFloat,                                   /* scalar float        - arg is f     */
-    sptFloat32Vect,                             /* vector float        - arg is f32   */
-    sptFloat64Vect,                             /* vector float        - arg is f64   */
-    sptFloatLongVect,                           /* vector float        - arg is flong */
-    sptChar,                                    /* scalar character    - arg is c     */
-    sptNulTermString,                           /* vector character    - arg is s     */
-    sptString,                                  /* vector character    - arg is S     */
-    sptUCS2String,                              /* vector character    - arg is S     */
-    sptUTF32String,                             /* vector character    - arg is S     */
-    sptPointer,                                 /* object reference    - arg is p     */
-    sptRowId,                                   /* current row id      - arg is d     */
-    sptRowLen                                   /* current row length  - arg is u     */
-#if SUPPORT_PERCENT_N
-    , sptBytesPrinted                           /* output parameter    - arg is n     */
-#endif
-};
-
-
-/* format
- *  structured and constant format information
- *  takes the place of format string
- *  flags indicate whether fields are active
- *  and in some cases whether the value is external, in the next arg
- */
-typedef struct PrintFmt PrintFmt;
-struct PrintFmt
-{
-    union
-    {
-        struct
-        {
-            uint64_t min_field_width;           /* minimum field width in characters  */
-            uint64_t precision;                 /* precision in characters            */
-            uint64_t start_idx;                 /* zero-based starting vector index   */
-            uint64_t select_len;                /* length of selection or 0 for inf   */
-        } f;
-        struct
-        {
-            const char *text;                   /* string literal text pointer        */
-            size_t size;                        /* string literal text size           */
-        } l;
-    } u;
-    unsigned int upper_case_num       : 1;      /* upper-case numerals                */
-    unsigned int reverse_alnum        : 1;      /* reverse ordering of alpha-numeric  */
-    unsigned int thousands_separate   : 1;      /* separate numerals by thousands     */
-    unsigned int ext_field_width      : 1;      /* field width is external argument   */
-    unsigned int ext_precision        : 1;      /* precision is external argument     */
-    unsigned int inf_start_index      : 1;      /* start index is last in vector      */
-    unsigned int ext_start_index      : 1;      /* start index is external argument   */
-    unsigned int inf_stop_index       : 1;      /* stop index is last in vector       */
-    unsigned int ext_stop_index       : 1;      /* stop index is an external argument */
-    unsigned int ext_select_len       : 1;      /* selection length is external       */
-    unsigned int add_prefix           : 1;      /* '#' flag on 'boxX'                 */
-    unsigned int force_decimal_point  : 1;      /* '#' flag on 'efg'                  */
-    unsigned int leave_trailing_zeros : 1;      /* '#' flag on 'g'                    */
-    unsigned int print_time           : 1;
-    unsigned int print_date           : 1;
-    unsigned int print_weekday        : 1;
-    unsigned int print_timezone       : 1;
-    unsigned int hour_24              : 1;
-    unsigned int min_vers_components  : 1;
-    unsigned int explain_rc           : 1;
-    unsigned int type_cast            : 1;      /* if true, convert type for fmt      */
-    unsigned int pointer_arg          : 1;      /* argument is a pointer              */
-    uint32_t radix;                             /* 0 default, 2, 8, 10, 16, .. 36     */
-    uint8_t fmt;                                /* spf... from above                  */
-    uint8_t type;                               /* spt... from above                  */
-    char sign;                                  /* 0, ' ' or '+'                      */
-    char left_fill;                             /* 0 for left-align, ' ' or '0'       */
-};
-
-
-/* argument
- *  union of argument values
- *  passed as an array, much like va_arg
- */
-typedef union PrintArg PrintArg;
-union PrintArg
-{
-    int64_t d;                                  /* signed integer scalar              */
-    const int8_t *d8;                           /* signed integer vectors             */
-    const int16_t *d16;
-    const int32_t *d32;
-    const int64_t *d64;
-
-    uint64_t u;                                 /* unsigned integer scalar            */
-    const uint8_t *u8;                          /* unsigned integer vectors           */
-    const uint16_t *u16;
-    const uint32_t *u32;
-    const uint64_t *u64;
-
-    double f;                                   /* floating point scalar              */
-    const float *f32;                           /* floating point vectors             */
-    const double *f64;
-    const long double *flong;
-
-    uint32_t c;                                 /* character scalar                   */
-    const char *s;                              /* NUL-terminated char vector         */
-    struct String const *S;                     /* character vector                   */
-
-    const void *p;                              /* object reference                   */
-
-#if SUPPORT_PERCENT_N
-    uint32_t *n;                                /* output parameter                   */
-#endif
-};
-
-
-/* structured_printf
- *  uses constant format descriptors and argument block
- *  prints to "out" handler
- */
-KLIB_EXTERN rc_t CC structured_printf ( struct KWrtHandler const *out,
-    size_t *num_writ, const PrintFmt *fmt, const PrintArg *args );
-
-
-/* structured_sprintf
- *  uses constant format descriptors and argument block
- *  prints to UTF-8 character buffer "dst"
- */
-KLIB_EXTERN rc_t CC structured_sprintf ( char *dst, size_t bsize,
-    size_t *num_writ, const PrintFmt *fmt, const PrintArg *args );
-
-
-/* TEMPORARY */
-KLIB_EXTERN rc_t CC new_string_printf ( char *dst, size_t bsize,
-    size_t *num_writ, const char *fmt, ... );
-KLIB_EXTERN rc_t CC new_string_vprintf ( char *dst, size_t bsize,
-    size_t *num_writ, const char *fmt, va_list args );
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/klib/rc.h b/interfaces/klib/rc.h
index e7ad1a4..b9de799 100644
--- a/interfaces/klib/rc.h
+++ b/interfaces/klib/rc.h
@@ -35,15 +35,10 @@
 #include <klib/defs.h>
 #endif
 
-#if _DEBUGGING
-
-#ifndef _h_compiler_
+#if ! defined _h_compiler_ && _DEBUGGING
 #include <compiler.h>
 #endif
 
-#include <assert.h>
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -79,7 +74,7 @@ extern "C" {
 #if _DEBUGGING && ! defined RECORD_RC_FILE_LINE
 #define RECORD_RC_FILE_LINE 1
 #elif ! defined RECORD_RC_FILE_LINE
-#define RECORD_RC_FILE_LINE 0
+#define RECORD_RC_FILE_LINE 1
 #endif
 
 
@@ -104,11 +99,10 @@ RC_ENUM ( RCModule )
     RC_ENTRY ( rcSRA, "short read archive" )
     RC_VLAST ( rcLastModule_v1_0 )
     RC_ENTRY ( rcKFG = rcLastModule_v1_0, "configuration" )
-    RC_ENTRY ( rcAlign, "alignment" )
+    RC_ENTRY ( rcAlign, "alignment module" )
     RC_ENTRY ( rcKrypto, "cryptographic" )
     RC_ENTRY ( rcRDBMS, "RDBMS" )
     RC_ENTRY ( rcNS, "network system" )
-    RC_ENTRY ( rcVFS, "virtual file system" )
     RC_LAST ( rcLastModule_v1_1 )
 };
 
@@ -174,11 +168,15 @@ RC_ENUM ( RCTarget )
     RC_VLAST ( rcLastTarget_v1_0 )
     RC_ENTRY ( rcProduction = rcLastTarget_v1_0, "schema production" )
     RC_ENTRY ( rcEncryptionKey, "encryption key" )
+    RC_ENTRY ( rcInput, "input" )
     RC_ENTRY ( rcRng, "random number generator" )
+    RC_ENTRY ( rcTest, "test" )
     RC_ENTRY ( rcCmd, "command" )
+    RC_ENTRY ( rcConfig, "configuration" )
     RC_ENTRY ( rcData, "data" )
     RC_ENTRY ( rcQuery, "query" )
     RC_ENTRY ( rcUri, "uri" )
+    RC_ENTRY ( rcWriter, "stream writer" )
     RC_LAST ( rcLastTarget_v1_1 )
 };
 
@@ -255,7 +253,6 @@ RC_ENUM ( RCContext )
     RC_ENTRY ( rcRetrieving, "retrieving" )
     RC_ENTRY ( rcSending, "sending" )
     RC_ENTRY ( rcProcessing, "processing" )
-    RC_ENTRY ( rcIdentifying, "type identifying" )
     RC_LAST ( rcLastContext_v1_1 )
 };
 
@@ -355,7 +352,6 @@ RC_ENUM ( RCState )
     RC_ENTRY ( rcUnequal, "unequal" )
     RC_ENTRY ( rcFailed, "failed" )
     RC_ENTRY ( rcNotAvailable, "not available" )
-    RC_ENTRY ( rcWrongType, "wrong type" )
     RC_LAST ( rcLastState_v1_1 )
 };
 
@@ -369,65 +365,95 @@ KLIB_EXTERN bool CC GetUnreadRCInfo ( rc_t *rc, const char **filename, const cha
 
 #if RECORD_RC_FILE_LINE
 
-    #if defined(__SUNPRO_CC)  &&  __SUNPRO_CC <= 0x590  &&  defined(__cplusplus)
-    
-        #define SET_RC_FILE_FUNC_LINE( rc ) \
-            SetRCFileFuncLine ( ( rc ), __FILE__, "(unknown)", __LINE__ )
-    
-    #else
-    
-        #define SET_RC_FILE_FUNC_LINE( rc ) \
-            SetRCFileFuncLine ( ( rc ), __FILE__, __func__, __LINE__ )
-    
-    #endif
-
+#define SET_RC_FILE_FUNC_LINE( rc ) \
+    SetRCFileFuncLine ( ( rc ), __FILE__, __func__, __LINE__ )
 #else
 
-    #define SET_RC_FILE_FUNC_LINE( rc ) \
-        ( rc_t ) ( rc )
+#define SET_RC_FILE_FUNC_LINE( rc ) \
+    ( rc_t ) ( rc )
 
 #endif
 
-#ifdef assert
-#define ASSERT_MOD_TARG_CTX() \
-    assert ( ( int ) rcLastModule_v1_1  < ( 1 << 5 ) ), \
-    assert ( ( int ) rcLastTarget_v1_1  < ( 1 << 6 ) ), \
-    assert ( ( int ) rcLastContext_v1_1  < ( 1 << 7 ) )
-
-#define ASSERT_OBJ_STATE() \
-    assert ( ( int ) rcLastObject_v1_1  < ( 1 << 8 ) ), \
-    assert ( ( int ) rcLastState_v1_1  < ( 1 << 6 ) )
-#else
-#define ASSERT_MOD_TARG_CTX() ( void ) 0
-
-#define ASSERT_OBJ_STATE() ( void ) 0
-#endif
+/* for C++ they are all inline functions to allow type checks for parameters */
+#ifdef __cplusplus
 
 /* CTX
  *  form a context from parts
  */
-#define CTX( mod, targ, ctx )                       \
-    ( rc_t ) ( ASSERT_MOD_TARG_CTX (), (            \
+static __inline__
+rc_t CTX ( enum RCModule mod, enum RCTarget targ, enum RCContext ctx )
+{
+#ifdef assert
+    assert ( rcLastModule_v1_1 <= ( 1 << 5 ) );
+    assert ( rcLastTarget_v1_1 <= ( 1 << 6 ) );
+    assert ( rcLastContext_v1_1 <= ( 1 << 7 ) );
+    assert ( mod < rcLastModule_v1_1 );
+    assert ( targ < rcLastTarget_v1_1 );
+    assert ( ctx < rcLastContext_v1_1 );
+#endif
+    return ( rc_t ) (
+        ( ( rc_t ) mod  << 27 ) |  /* 5 bits */
+        ( ( rc_t ) targ << 21 ) |  /* 6 bits */
+        ( ( rc_t ) ctx  << 14 ) ); /* 7 bits */
+}
+
+/* RC
+*  form a complete return code from parts
+*/
+static __inline__
+rc_t RC ( enum RCModule mod, enum RCTarget targ, enum RCContext ctx, int obj, enum RCState state )
+{
+#ifdef assert
+    assert ( rcLastObject_v1_1 <= ( 1 << 8 ) );
+    assert ( rcLastState_v1_1 <= ( 1 << 6 ) );
+    assert ( obj < rcLastObject_v1_1 );
+    assert ( state < rcLastState_v1_1 );
+#endif
+    return SET_RC_FILE_FUNC_LINE (
+        CTX ( mod, targ, ctx ) | /* 18 bits */
+        ( ( rc_t ) obj << 6 )  | /*  8 bits */
+        ( ( rc_t ) state ) );    /*  6 bits */
+
+}
+
+/* ResetRCContext
+*  rewrite rc to reflect different context
+*  typically used to pass out return codes
+*/
+static __inline__
+rc_t ResetRCContext ( rc_t rc, enum RCModule mod, enum RCTarget targ, enum RCContext ctx )
+{
+    return ( rc & 0x3FFF ) | CTX ( mod, targ, ctx );
+}
+
+/* ResetRCState
+*  rewrite rc to reflect different state
+*  typically used to pass out return codes
+*/
+static __inline__
+rc_t ResetRCState( rc_t rc, int obj, enum RCState state )
+{
+    return ( rc & 0xFFFFC000 )    | /* 18 bits */
+        ( ( rc_t ) obj << 6 )     | /*  8 bits */
+        ( ( rc_t ) state );         /*  6 bits */
+}
+
+#else /* __cplusplus */
+
+#define CTX( mod, targ, ctx ) \
+    ( rc_t ) (                                      \
         ( ( rc_t ) ( mod )  << 27 ) | /* 5 bits */  \
         ( ( rc_t ) ( targ ) << 21 ) | /* 6 bits */  \
-        ( ( rc_t ) ( ctx )  << 14 ) ) /* 7 bits */  \
-    )
+        ( ( rc_t ) ( ctx )  << 14 ) ) /* 7 bits */
 
 /* RC
  *  form a complete return code from parts
  */
-#define SILENT_RC( mod, targ, ctx, obj, state )              \
-    ( rc_t ) ( ASSERT_OBJ_STATE (),                          \
-        CTX ( mod, targ, ctx )    | /* 18 bits */            \
-        ( ( rc_t ) ( obj ) << 6 ) | /*  8 bits */            \
-        ( ( rc_t ) ( state ) ) )    /*  6 bits */
-
 #define RC( mod, targ, ctx, obj, state )                     \
-    ( rc_t ) ( ASSERT_OBJ_STATE (),                          \
     SET_RC_FILE_FUNC_LINE (                                  \
         CTX ( mod, targ, ctx )    | /* 18 bits */            \
         ( ( rc_t ) ( obj ) << 6 ) | /*  8 bits */            \
-        ( ( rc_t ) ( state ) ) ) )  /*  6 bits */
+        ( ( rc_t ) ( state ) ) )    /*  6 bits */
 
 /* ResetRCContext
  *  rewrite rc to reflect different context
@@ -475,6 +501,7 @@ KLIB_EXTERN bool CC GetUnreadRCInfo ( rc_t *rc, const char **filename, const cha
 #define GetRCState( rc ) \
     ( enum RCState ) ( ( rc ) & 0x3F )
 
+#endif /* RC_EMIT */
 
 #ifdef __cplusplus
 }
diff --git a/interfaces/klib/refcount.h b/interfaces/klib/refcount.h
index bc7cfd5..8984577 100644
--- a/interfaces/klib/refcount.h
+++ b/interfaces/klib/refcount.h
@@ -50,6 +50,10 @@
 
 #include <klib/debug.h>
 
+#ifndef _h_fmtdef_
+#include <fmtdef.h>
+#endif
+
 #endif
 
 #ifdef __cplusplus
@@ -229,8 +233,8 @@ KLIB_EXTERN int CC KDualRefDropDep ( const KDualRef *self, const char *clsname )
                                 "instance 0x%zX: initial refcount %d\n",  \
                                 clsname, op, name, instance, refcount ))
 #define CNTMSG( clsname, op, instance, refcount )                       \
-    DBGMSG ( REFMOD, REFCOND, ( "about to %s instance 0x%zX: prior refcount = %d for %s\n", \
-                                op, instance, refcount, clsname ))
+    DBGMSG ( REFMOD, REFCOND, ( "about to %s instance 0x%zX: prior refcount = %d\n", \
+                                op, instance, refcount ))
 #define REFMSG( clsname, op, instance ) \
     CNTMSG ( clsname, op, instance, atomic32_read ( instance ) )
 #define REFNEW_COMMA( clsname, op, name, instance, refcount ) \
diff --git a/interfaces/klib/report.h b/interfaces/klib/report.h
deleted file mode 100644
index 2c60e2f..0000000
--- a/interfaces/klib/report.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_klib_report_
-#define _h_klib_report_
-
-#ifndef _h_klib_extern_
-#include <klib/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * An unrecoverable error happened.
- * We can help to solve it
- * by reporting information about known application execution environment.
- */
-
-
-/* Init
- *  initialize with common information
- *
- *  "argc" [ IN ] and "argv" [ IN ] - intact command line
- *
- *  "tool_version" [ IN ] - version of tool
- */
-KLIB_EXTERN void CC ReportInit ( int argc, char *argv [],
-    ver_t tool_version );
-
-
-/* BuildDate
- *  set the build date of the tool
- *
- *  "date" [ IN ] - pre-processor __DATE__
- */
-KLIB_EXTERN void CC ReportBuildDate ( const char *date );
-
-
-/* Silence
- *  tell report to be silent at exit
- *  useful especially in response to ^C
- */
-KLIB_EXTERN void CC ReportSilence ( void );
-
-
-/* Finalize
- *  perform cleanup
- *  optionally report error condition
- *
- *  "rc" [ IN ] - report environment information if not zero
- */
-KLIB_EXTERN rc_t CC ReportFinalize ( rc_t rc );
-
-
-/* ResetObject
- *  Resets the name of the current object beeing processes(path or accession),
- *  usually from command line.
- *  Should be called each time
- *  when starting next command line argument processing.
- */
-KLIB_EXTERN rc_t CC ReportResetObject ( const char *path );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_klib_report_ */
diff --git a/interfaces/klib/sort.h b/interfaces/klib/sort.h
index 4adf75a..dd986c2 100644
--- a/interfaces/klib/sort.h
+++ b/interfaces/klib/sort.h
@@ -35,10 +35,6 @@
 #include <klib/defs.h>
 #endif
 
-#ifndef _h_klib_ksort_macro_
-#include <klib/ksort-macro.h>
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -52,62 +48,6 @@ KLIB_EXTERN void CC ksort ( void *pbase, size_t total_elems, size_t size,
     int ( CC * cmp ) ( const void*, const void*, void *data ), void *data );
 
 
-/* various custom ksort operations
- *  structures will generally want their own functions
- *  these fundamental types can be standardized
- */
-KLIB_EXTERN void CC ksort_int32_t ( int32_t *pbase, size_t total_elems );
-KLIB_EXTERN void CC ksort_uint32_t ( uint32_t *pbase, size_t total_elems );
-KLIB_EXTERN void CC ksort_int64_t ( int64_t *pbase, size_t total_elems );
-KLIB_EXTERN void CC ksort_uint64_t ( uint64_t *pbase, size_t total_elems );
-
-
-/* KSORT
- *  macro ( see <klib/ksort-macro.h> )
- *  allows creation of a custom qsort with inlined compare and swap
- *  MUCH faster than normal qsort or ksort.
- *
- *  basically you need to define a macro CMP() and another SWAP(),
- *  and the KSORT macro will fill in the rest.
- *
- *  CMP() needs to evaluate to a signed 32-bit integer.
- *  THIS WILL CHANGE TO BECOME LESS_THAN( a, b ).
- *
- *  SWAP() will generally be a custom operation, but can be
- *  defined in terms of a default operation similar to qsort.
- *
- *  an example usage follows:
- */
-#if 0
-static
-void ksort_int64_t ( int64_t *base, size_t count )
-{
-    /* swap is performed on full element, not byte-for-byte */
-#define SWAP( a, b, off, size )                             \
-    do                                                      \
-    {                                                       \
-        int64_t tmp = * ( const int64_t* ) ( a );           \
-        * ( int64_t* ) ( a ) = * ( const int64_t* ) ( b );  \
-        * ( int64_t* ) ( b ) = tmp;                         \
-    }                                                       \
-    while ( 0 )
-
-    /* 64-bit comparison producing a signed 32-bit result */
-#define CMP( a, b )                                                     \
-    ( ( * ( const int64_t* ) ( a ) < * ( const int64_t* ) ( b ) ) ? -1 : \
-      ( * ( const int64_t* ) ( a ) > * ( const int64_t* ) ( b ) ) )
-}
-
-    /* let the macro fill out the remainder */
-    KSORT ( base, count, sizeof * base, 0, sizeof * base );
-
-    /* free up macros for future use */
-#undef SWAP
-#undef CMP
-
-#endif
-
-
 /*--------------------------------------------------------------------------
  * kbsearch
  *  bsearch with a function data pointer
diff --git a/interfaces/klib/status.h b/interfaces/klib/status.h
index 718c38f..73249c8 100644
--- a/interfaces/klib/status.h
+++ b/interfaces/klib/status.h
@@ -78,7 +78,7 @@ KLIB_EXTERN rc_t CC KStsLibHandlerSetStdErr ( void );
 
 /* formatting */
 typedef uint32_t KStsFmtFlags;
-enum KStsFmtFlagsEnum
+enum KStsFmtFlags
 {
     kstsFmtTimestamp = 0x00000001,
     kstsFmtPid = 0x00000002,
diff --git a/interfaces/klib/vector.h b/interfaces/klib/vector.h
index be72b90..4bc553b 100644
--- a/interfaces/klib/vector.h
+++ b/interfaces/klib/vector.h
@@ -41,161 +41,6 @@ extern "C" {
 
 
 /*--------------------------------------------------------------------------
- * KVector
- *  encapsulated vector interface
- *
- *  a vector obeys a particular set of messages
- *  it may be implemented as an array, but not necessarily.
- *
- *  the principal property of a vector is that it acts as a map
- *  between an integer key and a value of some type. in this case,
- *  we only accept unsigned integers as keys.
- */
-typedef struct KVector KVector;
-
-
-/* Make
- *  create an empty vector
- */
-KLIB_EXTERN rc_t CC KVectorMake ( KVector **v );
-
-
-/* AddRef
- * Release
- */
-KLIB_EXTERN rc_t CC KVectorAddRef ( const KVector *self );
-KLIB_EXTERN rc_t CC KVectorRelease ( const KVector *self );
-
-
-/* Get
- *  get an untyped value
- *  returns rc_t state of rcNull if index is not set
- *
- *  "key" [ IN ] - vector index
- *
- *  "value_buffer" [ OUT ] and "bsize" [ IN ] - return buffer for value
- *
- *  "bytes" [ OUT ] - return parameter for bytes in value
- *
- * NB - if rc_t state is rcInsufficient, "bytes" will contain
- *  the number of bytes required to access the indexed value
- */
-KLIB_EXTERN rc_t CC KVectorGet ( const KVector *self, uint64_t key,
-    void *value_buffer, size_t bsize, size_t *bytes );
-
-/* Get
- *  get typed values
- *  returns rc_t state of rcNull if index is not set
- *
- *  "key" [ IN ] - vector index
- *
- *  "value" [ OUT ] - return parameter for value
- */
-KLIB_EXTERN rc_t CC KVectorGetBool ( const KVector *self, uint64_t key, bool *value );
-
-KLIB_EXTERN rc_t CC KVectorGetI8 ( const KVector *self, uint64_t key, int8_t *value );
-KLIB_EXTERN rc_t CC KVectorGetI16 ( const KVector *self, uint64_t key, int16_t *value );
-KLIB_EXTERN rc_t CC KVectorGetI32 ( const KVector *self, uint64_t key, int32_t *value );
-KLIB_EXTERN rc_t CC KVectorGetI64 ( const KVector *self, uint64_t key, int64_t *value );
-
-KLIB_EXTERN rc_t CC KVectorGetU8 ( const KVector *self, uint64_t key, uint8_t *value );
-KLIB_EXTERN rc_t CC KVectorGetU16 ( const KVector *self, uint64_t key, uint16_t *value );
-KLIB_EXTERN rc_t CC KVectorGetU32 ( const KVector *self, uint64_t key, uint32_t *value );
-KLIB_EXTERN rc_t CC KVectorGetU64 ( const KVector *self, uint64_t key, uint64_t *value );
-
-KLIB_EXTERN rc_t CC KVectorGetF32 ( const KVector *self, uint64_t key, float *value );
-KLIB_EXTERN rc_t CC KVectorGetF64 ( const KVector *self, uint64_t key, double *value );
-
-KLIB_EXTERN rc_t CC KVectorGetPtr ( const KVector *self, uint64_t key, void **value );
-
-
-/* Set
- *  set an untyped value
- *
- *  "key" [ IN ] - vector index
- *
- *  "value" [ IN ] and "bytes" [ IN ] - value buffer
- */
-KLIB_EXTERN rc_t CC KVectorSet ( KVector *self, uint64_t key,
-    const void *value, size_t bytes );
-
-/* Set
- *  set typed values
- *
- *  "key" [ IN ] - vector index
- *
- *  "data" [ IN ] - value
- */
-KLIB_EXTERN rc_t CC KVectorSetBool ( KVector *self, uint64_t key, bool value );
-
-KLIB_EXTERN rc_t CC KVectorSetI8 ( KVector *self, uint64_t key, int8_t value );
-KLIB_EXTERN rc_t CC KVectorSetI16 ( KVector *self, uint64_t key, int16_t value );
-KLIB_EXTERN rc_t CC KVectorSetI32 ( KVector *self, uint64_t key, int32_t value );
-KLIB_EXTERN rc_t CC KVectorSetI64 ( KVector *self, uint64_t key, int64_t value );
-
-KLIB_EXTERN rc_t CC KVectorSetU8 ( KVector *self, uint64_t key, uint8_t value );
-KLIB_EXTERN rc_t CC KVectorSetU16 ( KVector *self, uint64_t key, uint16_t value );
-KLIB_EXTERN rc_t CC KVectorSetU32 ( KVector *self, uint64_t key, uint32_t value );
-KLIB_EXTERN rc_t CC KVectorSetU64 ( KVector *self, uint64_t key, uint64_t value );
-
-KLIB_EXTERN rc_t CC KVectorSetF32 ( KVector *self, uint64_t key, float value );
-KLIB_EXTERN rc_t CC KVectorSetF64 ( KVector *self, uint64_t key, double value );
-
-KLIB_EXTERN rc_t CC KVectorSetPtr ( KVector *self, uint64_t key, const void *value );
-
-
-/* Unset
- *  unset an entry
- *  returns rc_t state rcNull if index is not set
- *
- *  "key" [ IN ] - vector index
- */
-KLIB_EXTERN rc_t CC KVectorUnset ( KVector *self, uint64_t key );
-
-
-/* Visit
- *  executes a function on each key/value pair
- *  returns early if "f" returns non-zero rc_t
- *
- *  "reverse" [ IN ] - if true, execute in reverse order
- *
- *  "f" [ IN ] and "user_data" [ IN, OPAQUE ] - function to be
- *  executed on each vector element or until the function
- *  returns true.
- */
-KLIB_EXTERN rc_t CC KVectorVisit ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, const void *value, size_t bytes, void *user_data ),
-    void *user_data );
-
-/* Visit
- *  visit typed values
- *  returns early if "f" returns non-zero rc_t
- *
- *  "reverse" [ IN ] - if true, execute in reverse order
- *
- *  "f" [ IN ] and "user_data" [ IN, OPAQUE ] - function to be
- *  executed on each vector element or until the function
- *  returns true.
- */
-KLIB_EXTERN rc_t CC KVectorVisitBool ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, bool value, void *user_data ),
-    void *user_data );
-KLIB_EXTERN rc_t CC KVectorVisitI64 ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, int64_t value, void *user_data ),
-    void *user_data );
-KLIB_EXTERN rc_t CC KVectorVisitU64 ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, uint64_t value, void *user_data ),
-    void *user_data );
-KLIB_EXTERN rc_t CC KVectorVisitF64 ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, double value, void *user_data ),
-    void *user_data );
-KLIB_EXTERN rc_t CC KVectorVisitPtr ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, const void *value, void *user_data ),
-    void *user_data );
-
-
-
-/*--------------------------------------------------------------------------
  * Vector
  *  simple vector of void*
  */
diff --git a/interfaces/kxml/xml.h b/interfaces/klib/xml.h
similarity index 87%
rename from interfaces/kxml/xml.h
rename to interfaces/klib/xml.h
index 2f42564..165a6e6 100644
--- a/interfaces/kxml/xml.h
+++ b/interfaces/klib/xml.h
@@ -24,14 +24,16 @@
 *
 */
 
-#ifndef _h_kxml_xml_
-#define _h_kxml_xml_
+#ifndef _h_klib_xml_
+#define _h_klib_xml_
 
 #ifndef _h_klib_extern_
 #include <klib/extern.h>
 #endif
 
+#ifndef _h_klib_defs_
 #include <klib/defs.h>
+#endif
 
 #include <stdarg.h>
 
@@ -329,10 +331,6 @@ KLIB_EXTERN rc_t KXMLMgrMakeDocReadFromMemory ( const KXMLMgr *self,
  *  this will probably be relocated later on
  */
 struct KDirectory;
-struct KFile;
-struct String;
-struct VFSManager;
-struct VPath;
 
 /* OpenXTocDirRead
  *  open copycat XML as a chroot'd directory
@@ -346,37 +344,12 @@ struct VPath;
  *
  *  "xml" [ IN ] - file containing XML data produced by copycat tool
  */
-rc_t CC KDirectoryOpenXTocDirRead (const struct KDirectory * self,
-                                   const struct KDirectory ** pnew_dir,
-                                   bool chroot,
-                                   const struct KFile * xml,
-                                   const char * path, ... );
-rc_t CC KDirectoryVOpenXTocDirRead (const struct KDirectory * self,
-                                    const struct KDirectory ** pnew_dir,
-                                    bool chroot,
-                                    const struct KFile * xml,
-                                    const char * _path,
-                                    va_list args );
-rc_t CC KDirectoryOpenXTocDirRead (const struct KDirectory * self,
-                                   const struct KDirectory ** pnew_dir,
-                                   bool chroot,
-                                   const struct KFile * xml,
-                                   const char * path, ... );
-rc_t CC KDirectoryOpenXTocDirReadDir (const struct KDirectory * self,
-                                      const struct KDirectory ** pnew_dir,
-                                      const struct KFile * xml,
-                                      const struct String * spath);
-
-rc_t CC VFSManagerOpenXTocDirRead (const struct VFSManager * self,
-                                   const struct KDirectory ** pnew_dir,
-                                   const struct KFile * xml,
-                                   const struct VPath * path);
-
-
+KLIB_EXTERN rc_t CC KDirectoryOpenXTocDirRead ( struct KDirectory const * self,
+    struct KDirectory const ** dir, const char * base_path, struct KFile const * xml);
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _h_kxml_xml_ */
+#endif /* _h_klib_xml_ */
diff --git a/interfaces/klib/xml.hpp b/interfaces/klib/xml.hpp
new file mode 100644
index 0000000..24dbfcd
--- /dev/null
+++ b/interfaces/klib/xml.hpp
@@ -0,0 +1,198 @@
+/*===========================================================================
+*
+*                            PUBLIC DOMAIN NOTICE
+*               National Center for Biotechnology Information
+*
+*  This software/database is a "United States Government Work" under the
+*  terms of the United States Copyright Act.  It was written as part of
+*  the author's official duties as a United States Government employee and
+*  thus cannot be copyrighted.  This software/database is freely available
+*  to the public for use. The National Library of Medicine and the U.S.
+*  Government have not placed any restriction on its use or reproduction.
+*
+*  Although all reasonable efforts have been taken to ensure the accuracy
+*  and reliability of the software and data, the NLM and the U.S.
+*  Government do not and cannot warrant the performance or results that
+*  may be obtained by using this software or data. The NLM and the U.S.
+*  Government disclaim all warranties, express or implied, including
+*  warranties of performance, merchantability or fitness for any particular
+*  purpose.
+*
+*  Please cite the author in any work or product based on this material.
+*
+* ===========================================================================
+*
+*/
+
+#ifndef _hpp_klib_xml_
+#define _hpp_klib_xml_
+
+#ifndef _h_klib_xml_
+#include <klib/xml.h>
+#endif
+
+/*--------------------------------------------------------------------------
+ * XML node
+ */
+struct KXMLNode
+{
+    /* AddRef
+     * Release
+     */
+    inline rc_t AddRef ( void ) const
+    { return KXMLNodeAddRef ( this ); }
+    inline rc_t Release ( void ) const
+    { return KXMLNodeRelease ( this ); }
+
+    /* GetName
+     */
+    inline rc_t GetName ( const char **name ) const
+    { return KXMLNodeGetName ( this, name ); }
+
+    /* OpenNodesetRead
+     */
+    inline rc_t OpenNodesetRead ( struct KXMLNodeset const **ns,
+        const char *path, ... ) const
+    {
+        va_list args;
+        va_start ( args, path );
+        rc_t status = KXMLNodeVOpenNodesetRead ( this, ns, path, args );
+        va_end ( args );
+        return status;
+    }
+
+    /* ReadAttr
+     */
+    inline rc_t ReadAttr ( const char *attr, void *buffer, size_t bsize,
+         size_t *num_read, size_t *remaining ) const
+    {
+        return KXMLNodeReadAttr
+            ( this, attr, buffer, bsize, num_read, remaining );
+    }
+
+    /* CountNodes
+     *  count child nodes
+     */
+    inline rc_t CountChildNodes ( uint32_t *count ) const
+    { return KXMLNodeCountChildNodes ( this, count ); }
+
+    /* GetNodeRead
+     *  access indexed node
+     *  "idx" [ IN ] - a zero-based index
+     */
+    inline rc_t GetNodeRead ( const KXMLNode **node,
+        uint32_t idx ) const 
+    { return KXMLNodeGetNodeRead ( this, node, idx ); }
+
+    /* ListChild
+     *  list all named children
+     */
+    inline rc_t ListChild ( struct KNamelist const **names ) const
+    { return KXMLNodeListChild ( this, names ); }
+
+    inline rc_t GetFirstChildNodeRead ( const KXMLNode **node,
+        const char *path, ... ) const
+    {
+        va_list args;
+        va_start ( args, path );
+        rc_t rc = KXMLNodeVGetFirstChildNodeRead ( this, node, path, args );
+        va_end ( args );
+        return rc;
+    }
+
+    inline rc_t Read ( int32_t *i ) const
+    { return KXMLNodeReadAsI32 ( this, i ); }
+
+    inline rc_t Read ( char *buffer, size_t bsize, size_t *size ) const
+    { return KXMLNodeReadCString ( this, buffer, bsize, size ); }
+
+    inline rc_t ReadAttr ( const char *attr, int32_t *i ) const 
+    { return KXMLNodeReadAttrAsI32 ( this, attr, i ); }
+
+    inline rc_t ReadAttr ( const char *attr,
+        char *buffer, size_t bsize, size_t *size ) const
+    { return KXMLNodeReadAttrCString ( this, attr, buffer, bsize, size ); }
+};
+
+/*--------------------------------------------------------------------------
+ * XML node set
+ */
+struct KXMLNodeset
+{
+    /* AddRef
+     * Release
+     */
+    inline rc_t AddRef ( void ) const
+    { return KXMLNodesetAddRef ( this ); }
+    inline rc_t Release ( void ) const
+    { return KXMLNodesetRelease ( this ); }
+
+    /* Count
+     *  retrieve the number of nodes in set
+     */
+    inline rc_t Count ( uint32_t *count ) const
+    { return KXMLNodesetCount ( this, count ); }
+
+    /* GetNode
+     *  access indexed node
+     */
+    inline rc_t GetNodeRead ( const KXMLNode **node, uint32_t idx ) const
+    { return KXMLNodesetGetNodeRead ( this, node, idx ); }
+};
+
+/*--------------------------------------------------------------------------
+ * XML document
+ */
+struct KXMLDoc
+{
+    /* AddRef
+     * Release
+     *  ignores NULL references
+     */
+    inline rc_t AddRef ( void ) const
+    { return KXMLDocAddRef ( this ); }
+    inline rc_t Release ( void ) const
+    { return KXMLDocRelease ( this ); }
+
+    /* OpenNodesetRead
+     *  opens a node set with given path
+     */
+    inline rc_t OpenNodesetRead ( const KXMLNodeset **ns, const char *path, ... ) const
+    {
+        va_list args;
+        va_start ( args, path );
+        int status = KXMLDocVOpenNodesetRead ( this, ns, path, args );
+        va_end ( args );
+        return status;
+    }
+};
+
+/*--------------------------------------------------------------------------
+ * XML manager
+ */
+struct KXMLMgr
+{
+    /* Make
+     *  make an XML manager object
+     */
+    static inline rc_t MakeRead ( const KXMLMgr **mgr )
+    { return KXMLMgrMakeRead ( mgr ); }
+
+    /* AddRef
+     * Release
+     *  ignores NULL references
+     */
+    inline rc_t AddRef ( void ) const
+    { return KXMLMgrAddRef ( this ); }
+    inline rc_t Release ( void ) const
+    { return KXMLMgrRelease ( this ); }
+
+    /* MakeDoc
+     *  create a document object from source file
+     */
+    inline rc_t MakeDocRead ( const KXMLDoc **doc, struct KFile const *src ) const
+    { return KXMLMgrMakeDocRead ( this, doc, src ); }
+
+};
+
+#endif /* _hpp_klib_xml_ */
diff --git a/interfaces/kns/KCurlRequest.h b/interfaces/kns/KCurlRequest.h
deleted file mode 100644
index 215ca40..0000000
--- a/interfaces/kns/KCurlRequest.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_kns_request_
-#define _h_kns_request_
-
-#ifndef _h_kns_extern_
-#include <kns/extern.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-struct String;
-struct KNSManager;
-struct KDataBuffer;
-
-struct KCurlRequest;
-
-KNS_EXTERN rc_t CC KNSManagerMakeRequest( struct KNSManager const *kns_mgr, struct KCurlRequest **self, const char * url, bool verbose );
-
-KNS_EXTERN rc_t CC KCurlRequestAddRef ( const struct KCurlRequest *self );
-
-KNS_EXTERN rc_t CC KCurlRequestRelease( const struct KCurlRequest *self );
-
-KNS_EXTERN rc_t CC KCurlRequestAddFields( struct KCurlRequest *self, const char * fields );
-
-KNS_EXTERN rc_t CC KCurlRequestAddSFields( struct KCurlRequest *self, struct String const * fields );
-
-KNS_EXTERN rc_t CC KCurlRequestAddField( struct KCurlRequest *self, const char * name, const char * value );
-
-KNS_EXTERN rc_t CC KCurlRequestAddSField( struct KCurlRequest *self, struct String const * name, struct String const * value );
-
-KNS_EXTERN rc_t CC KCurlRequestPerform( struct KCurlRequest *self, struct KDataBuffer * buffer );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/interfaces/kns/curl-file.h b/interfaces/kns/curl-file.h
deleted file mode 100644
index 77aabe4..0000000
--- a/interfaces/kns/curl-file.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_curl_file_
-#define _h_curl_file_
-
-#ifndef _h_kns_extern_
-#include <kns/extern.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * KCurlFile
- *  a remote file, fetched (in parts) via http using libcurl
- */
-KNS_EXTERN rc_t CC KCurlFileMake ( struct KFile const **self, const char * url, bool verbose );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/interfaces/kns/entrez-fetcher.h b/interfaces/kns/entrez-fetcher.h
deleted file mode 100644
index 7d79cd7..0000000
--- a/interfaces/kns/entrez-fetcher.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_entrez_fetcher_
-#define _h_entrez_fetcher_
-
-#ifndef _h_url_fetcher_
-#include <kns/url-fetcher.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * KEntrezFetcher
- *  everything to fetch DNA-text from entrez - server
- */
-typedef struct KEntrezFetcher KEntrezFetcher;
-
-
-/* Make
- *  create a fetcher object
- */
-rc_t KEntrezFetcherMake ( KEntrezFetcher **fetcher, KUrlFetcher * url_fetcher );
-
-/* Setup
- *  prepares a fetch and indicates to caller the buffer size
- *
- *  "server" [ IN ] - NUL terminated URI, e.g.
- *     "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi"
- *
- *  "seq_id" [ IN ] - NUL terminated sequence identifier, e.g. "NC_000001"
- *  max_seq_len : 1024
- *  row_id      : 11
- *  row_count   : 1
- */
-rc_t KEntrezFetcherSetup ( KEntrezFetcher *self,
-    const char * server, const char * seq_id, 
-    const size_t max_seq_len, const uint64_t row_id, const size_t row_count,
-    size_t * buffsize );
-
-
-/* Setup
- *  prepares a fetch by giving it a usable url
- */
-rc_t KEntrezFetcherSetupUri ( KEntrezFetcher *self, const char * uri );
-
-
-/* AddRef
- * Release
- */
-rc_t KEntrezFetcherAddRef ( const KEntrezFetcher *self );
-rc_t KEntrezFetcherRelease ( const KEntrezFetcher *self );
-
-/* Read
- *  reads data from prepared URI
- */
-rc_t KEntrezFetcherRead ( KEntrezFetcher *self,
-                       void *dst, size_t dst_size, size_t *num_read );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_entrez_fetcher_ */
diff --git a/interfaces/kns/impl.h b/interfaces/kns/impl.h
deleted file mode 100644
index eec1bd8..0000000
--- a/interfaces/kns/impl.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kns_impl_
-#define _h_kns_impl_
-
-#ifndef _h_kns_extern_
-#include <kns/extern.h>
-#endif
-
-#ifndef _h_kns_stream_
-#include <kns/stream.h>
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-typedef union KStream_vt KStream_vt;
-
-
-/*--------------------------------------------------------------------------
- * KStream
- *  a virtual stream
- */
-struct KStream
-{
-    const KStream_vt *vt;
-    KRefcount refcount;
-    uint8_t read_enabled;
-    uint8_t write_enabled;
-    uint8_t align [ 2 ];
-};
-
-#ifndef KSTREAM_IMPL
-#define KSTREAM_IMPL struct KStream
-#endif
-
-typedef struct KStream_vt_v1 KStream_vt_v1;
-struct KStream_vt_v1
-{
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t ( CC * destroy ) ( KSTREAM_IMPL *self );
-    rc_t ( CC * read ) ( const KSTREAM_IMPL *self,
-        void *buffer, size_t bsize, size_t *num_read );
-    rc_t ( CC * write ) ( KSTREAM_IMPL *self,
-        const void *buffer, size_t size, size_t *num_writ );
-    /* end minor version == 0 */
-};
-
-union KStream_vt
-{
-    KStream_vt_v1 v1;
-};
-
-
-/* Init
- *  initialize a newly allocated stream object
- */
-KNS_EXTERN rc_t CC KStreamInit ( KStream *self, const KStream_vt *vt,
-    const char *classname, const char *strname,
-    bool read_enabled, bool write_enabled );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kns_impl_ */
diff --git a/interfaces/kns/manager.h b/interfaces/kns/manager.h
deleted file mode 100644
index 1c78d49..0000000
--- a/interfaces/kns/manager.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_kns_manager_
-#define _h_kns_manager_
-
-#ifndef _h_kns_extern_
-#include <kns/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-
-
-/*--------------------------------------------------------------------------
- * KNSManager
- *  manages the network system
- */
-typedef struct KNSManager KNSManager;
-
-
-/* Make
- *  create a manager instance
- */
-KNS_EXTERN rc_t CC KNSManagerMake ( KNSManager **mgr );
-
-
-/* AddRef
- * Release
- *  ignores NULL references
- */
-KNS_EXTERN rc_t CC KNSManagerAddRef ( const KNSManager *self );
-KNS_EXTERN rc_t CC KNSManagerRelease ( const KNSManager *self );
-
-
-/* Avail - DEPRECATED
- *  indicate to caller whether networking services are available
- *  mainly here to support libcurl
- */
-KNS_EXTERN rc_t CC KNSManagerAvail ( const KNSManager *self );
-
-/* CurlVersion - DEPRECATED
- *  indicate which version of curl is available
- *  return this as a string, because this is how libcurl does it
- */
-KNS_EXTERN rc_t CC KNSManagerCurlVersion ( const KNSManager *self, const char ** version_string );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kns_manager_ */
diff --git a/interfaces/kns/stream.h b/interfaces/kns/stream.h
deleted file mode 100644
index a7c1bf7..0000000
--- a/interfaces/kns/stream.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kns_stream_
-#define _h_kns_stream_
-
-#ifndef _h_kns_extern_
-#include <kns/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * KStream
- *  the stream is defined to have no concept of size,
- *  and to not support any form of random access
- */
-typedef struct KStream KStream;
-
-
-/* AddRef
- * Release
- *  ignores NULL references
- */
-KNS_EXTERN rc_t CC KStreamAddRef ( const KStream *self );
-KNS_EXTERN rc_t CC KStreamRelease ( const KStream *self );
-
-
-/* Read
- *  read data from stream
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT ] - return parameter giving number of bytes
- *  actually read. when returned value is zero and return code is
- *  also zero, interpreted as end of stream.
- */
-KNS_EXTERN rc_t CC KStreamRead ( const KStream *self,
-    void *buffer, size_t bsize, size_t *num_read );
-
-/* ReadAll
- *  read from stream until "bsize" bytes have been retrieved
- *  or until end-of-input
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT ] - return parameter giving number of bytes
- *  actually read. when returned value is zero and return code is
- *  also zero, interpreted as end of stream.
- */
-KNS_EXTERN rc_t CC KStreamReadAll ( const KStream *self,
-    void *buffer, size_t bsize, size_t *num_read );
-
-
-/* Write
- *  send data to stream
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-KNS_EXTERN rc_t CC KStreamWrite ( KStream *self,
-    const void *buffer, size_t size, size_t *num_writ );
-
-/* WriteAll
- *  write to stream until "size" bytes have been transferred
- *  or until no further progress can be made
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-KNS_EXTERN rc_t CC KStreamWriteAll ( KStream *self,
-    const void *buffer, size_t size, size_t *num_writ );
-
-
-/* MakeStdIn
- *  creates a read-only stream on stdin
- */
-KNS_EXTERN rc_t CC KStreamMakeStdIn ( const KStream **std_in );
-
-/* MakeStdOut
- * MakeStdErr
- *  creates a write-only stream on stdout or stderr
- */
-KNS_EXTERN rc_t CC KStreamMakeStdOut ( KStream **std_out );
-KNS_EXTERN rc_t CC KStreamMakeStdErr ( KStream **std_err );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kns_stream_ */
diff --git a/interfaces/kns/url-fetcher.h b/interfaces/kns/url-fetcher.h
deleted file mode 100644
index 36ac6a7..0000000
--- a/interfaces/kns/url-fetcher.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_url_fetcher_
-#define _h_url_fetcher_
-
-#ifndef _h_kns_extern_
-#include <kns/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * KUrlFetcher
- *  a generic way of fetching data from a url
- */
-typedef struct KUrlFetcher KUrlFetcher;
-
-/* AddRef
- * Release
- *  ignores NULL references
- */
-KNS_EXTERN rc_t CC KUrlFetcherAddRef ( const KUrlFetcher *self );
-KNS_EXTERN rc_t CC KUrlFetcherRelease ( const KUrlFetcher *self );
-
-KNS_EXTERN rc_t CC KUrlFetcherRead( KUrlFetcher *self, const char *uri,
-                      void *dst, size_t to_read, size_t *num_read );
-
-/* this typedef has to stay here for the virtual interface to work...*/
-typedef struct KUrlFetcherCurl KUrlFetcherCurl;
-
-KNS_EXTERN rc_t CC KUrlFetcherCurlMake( KUrlFetcher **fetcher, const bool verbose );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/interfaces/kproc/impl.h b/interfaces/kproc/impl.h
deleted file mode 100644
index 4d99b04..0000000
--- a/interfaces/kproc/impl.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kproc_impl_
-#define _h_kproc_impl_
-
-#ifndef _h_kproc_extern_
-#include <kproc/extern.h>
-#endif
-
-#ifndef _h_kproc_task_
-#include <kproc/task.h>
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-typedef union KTask_vt KTask_vt;
-
-
-/*--------------------------------------------------------------------------
- * KTask
- *  a deferred task abstraction
- *  specific task objects are constructed with required parameters
- *  and implement the Execute method to perform their operation
- */
-struct KTask
-{
-    const KTask_vt *vt;
-    KRefcount refcount;
-    uint8_t align [ 4 ];
-};
-
-#ifndef KTASK_IMPL
-#define KTASK_IMPL struct KTask
-#endif
-
-typedef struct KTask_vt_v1 KTask_vt_v1;
-struct KTask_vt_v1
-{
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t ( CC * destroy ) ( KTASK_IMPL *self );
-    rc_t ( CC * execute ) ( KTASK_IMPL * self );
-    /* end minor version == 0 */
-};
-
-union KTask_vt
-{
-    KTask_vt_v1 v1;
-};
-
-/* Init
- *  initialize a newly allocated task object
- */
-KPROC_EXTERN rc_t CC KTaskInit ( KTask *self, const KTask_vt *vt, const char *clsname, const char *name );
-
-
-/* Destroy
- *  destroy task
- */
-KPROC_EXTERN rc_t CC KTaskDestroy ( KTask *self, const char *clsname );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kproc_impl_ */
diff --git a/interfaces/kproc/procmgr.h b/interfaces/kproc/procmgr.h
deleted file mode 100644
index d0b0a44..0000000
--- a/interfaces/kproc/procmgr.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kproc_procmgr_
-#define _h_kproc_procmgr_
-
-#ifndef _h_kproc_extern_
-#include <kproc/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KTask;
-struct KTaskTicket;
-
-
-/*--------------------------------------------------------------------------
- * KProcMgr
- */
-typedef struct KProcMgr KProcMgr;
-
-
-/* Init
- *  initialize the proc mgr
- *  creates the singleton object
- */
-KPROC_EXTERN rc_t CC KProcMgrInit ( void );
-
-/* Whack
- *  tear down proc mgr
- *  runs any outstanding cleanup tasks
- *  deletes the singleton object
- *  intended to be called from an "atexit()" or similar task
- */
-KPROC_EXTERN rc_t CC KProcMgrWhack ( void );
-
-
-/* MakeSingleton
- *  access singleton process manager
- *  returns a new reference
- *  or an error code if not initialized
- *  VDB-2 ONLY
- */
-KPROC_EXTERN rc_t CC KProcMgrMakeSingleton ( KProcMgr ** mgr );
-
-
-/* AddRef
- * Release
- *  here to support refcounting API
- *  not generally useful in that the proc mgr
- *  will stay around until process exit
- */
-KPROC_EXTERN rc_t CC KProcMgrAddRef ( const KProcMgr *self );
-KPROC_EXTERN rc_t CC KProcMgrRelease ( const KProcMgr *self );
-
-
-/* AddCleanupTask
- *  add a task to be performed at process exit time
- *
- *  "ticket" [ OUT ] - an id that can be used later to remove task
- *
- *  "task" [ IN ] - task object that will be executed at process
- *   exit, unless previously removed ( see RemoveCleanupTask ).
- *   NB - a new reference to "task" will be created
- */
-KPROC_EXTERN rc_t CC KProcMgrAddCleanupTask ( KProcMgr *self,
-    struct KTaskTicket *ticket, struct KTask *task );
-
-
-/* RemoveCleanupTask
- *  remove a task from exit queue
- *  releases reference to task object
- *  returns an rcNotFound code if task no longer exists
- */
-KPROC_EXTERN rc_t CC KProcMgrRemoveCleanupTask ( KProcMgr *self,
-    struct KTaskTicket const *ticket );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kproc_procmgr_ */
diff --git a/interfaces/kproc/q-extern.h b/interfaces/kproc/q-extern.h
index 96f01d4..cb2c74c 100644
--- a/interfaces/kproc/q-extern.h
+++ b/interfaces/kproc/q-extern.h
@@ -25,9 +25,9 @@
 */
 
 #ifndef _h_kproc_q_extern_
-#define _h_kproc_q_extern_
+#define _h_kprocc_q_extern_
 
-#if ! defined EXPORT_LATCH && _LIBRARY
+#if ! defined EXPORT_LATCH && defined _LIBRARY
 #define KQ_EXTERN LIB_EXPORT
 #define EXPORT_LATCH 1
 #else
diff --git a/interfaces/kproc/queue.h b/interfaces/kproc/queue.h
index e1d5bca..3a7f927 100644
--- a/interfaces/kproc/queue.h
+++ b/interfaces/kproc/queue.h
@@ -31,7 +31,7 @@
 #include <klib/defs.h>
 #endif
 
-#include <kproc/q-extern.h>
+#include <kproc/extern.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/interfaces/kproc/sem.h b/interfaces/kproc/sem.h
index 32ee405..ce10440 100644
--- a/interfaces/kproc/sem.h
+++ b/interfaces/kproc/sem.h
@@ -80,14 +80,6 @@ KPROC_EXTERN rc_t CC KSemaphoreTimedWait ( KSemaphore *self,
     struct KLock *lock, struct timeout_t *tm );
 
 
-/* Cancel
- *  signal that the count will never increase
- *
- * NB - external lock used for synchronization must be locked by current thread
- */
-KPROC_EXTERN rc_t CC KSemaphoreCancel ( KSemaphore *self );
-
-
 /* Signal
  *  signal that a count has become available
  *
diff --git a/interfaces/kproc/task.h b/interfaces/kproc/task.h
deleted file mode 100644
index 5e49547..0000000
--- a/interfaces/kproc/task.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kproc_task_
-#define _h_kproc_task_
-
-#ifndef _h_kproc_extern_
-#include <kproc/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-
-
-/*--------------------------------------------------------------------------
- * KTask
- *  a deferred task abstraction
- *  specific task objects are constructed with required parameters
- *  and implement the Execute method to perform their operation
- */
-typedef struct KTask KTask;
-
-
-/* AddRef
- * Release
- */
-KPROC_EXTERN rc_t CC KTaskAddRef ( const KTask *self );
-KPROC_EXTERN rc_t CC KTaskRelease ( const KTask *self );
-KPROC_EXTERN rc_t CC KTaskDestroy ( KTask *self, const char *clsname );
-
-/* Execute
- *  perform deferred operation
- */
-KPROC_EXTERN rc_t CC KTaskExecute ( KTask *self );
-
-/*--------------------------------------------------------------------------
- * KTaskTicket
- *  an opaque object holding task identification
- */
-typedef struct KTaskTicket KTaskTicket;
-struct KTaskTicket
-{
-    uint64_t info [ 2 ];
-};
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kproc_task_ */
diff --git a/interfaces/krypto/cipher-impl.h b/interfaces/krypto/cipher-impl.h
deleted file mode 100644
index 02214d4..0000000
--- a/interfaces/krypto/cipher-impl.h
+++ /dev/null
@@ -1 +0,0 @@
-#error "OBSOLETE do not use"
diff --git a/interfaces/krypto/cipher-priv.h b/interfaces/krypto/cipher-priv.h
deleted file mode 100644
index 328ba6d..0000000
--- a/interfaces/krypto/cipher-priv.h
+++ /dev/null
@@ -1 +0,0 @@
-#error "Obsolete do not use"
diff --git a/interfaces/krypto/cipher-test.h b/interfaces/krypto/cipher-test.h
deleted file mode 100644
index f123525..0000000
--- a/interfaces/krypto/cipher-test.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#ifndef _h_krypto_cipher_test_
-#define _h_krypto_cipher_test_
-
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-#include <krypto/ciphermgr.h>
-
-KRYPTO_EXTERN rc_t KCipherTestVecAesNiMake (struct KCipher ** new_cipher,
-                                            kcipher_type type);
-KRYPTO_EXTERN rc_t KCipherTestVecRegMake   (struct KCipher ** new_cipher,
-                                            kcipher_type type);
-KRYPTO_EXTERN rc_t KCipherTestVecMake      (struct KCipher ** new_cipher,
-                                            kcipher_type type);
-KRYPTO_EXTERN rc_t KCipherTestByteMake     (struct KCipher ** new_cipher,
-                                            kcipher_type type);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_cipher_test_ */
diff --git a/interfaces/krypto/cipher.h b/interfaces/krypto/cipher.h
deleted file mode 100644
index 2f22733..0000000
--- a/interfaces/krypto/cipher.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#ifndef _h_krypto_cipher_
-#define _h_krypto_cipher_
-
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-typedef struct KCipher KCipher;
-
-KRYPTO_EXTERN 
-rc_t CC KCipherAddref (const KCipher * self);
-
-KRYPTO_EXTERN rc_t CC KCipherRelease (const KCipher * self);
-
-KRYPTO_EXTERN rc_t CC KCipherBlockSize (const KCipher * self, size_t * bytes);
-
-KRYPTO_EXTERN rc_t CC KCipherSetEncryptKey (KCipher * self,
-                                            const void * user_key,
-                                            size_t user_key_size);
-
-KRYPTO_EXTERN rc_t CC KCipherSetDecryptKey (KCipher * self,
-                                            const void * user_key,
-                                            size_t user_key_size);
-
-/*
- * Set the ivec (Initialization vector or feedback) for the cipher
- * this is done automatically for the longer runs defined below.
- *
- * the size of ivec  must match KCipherBlockSize
- *
- * the ivec is copied into the cipher not used in place
- */
-KRYPTO_EXTERN
- rc_t CC KCipherSetEncryptIVec (KCipher * self, const void * ivec);
-
-KRYPTO_EXTERN
- rc_t CC KCipherSetDecryptIVec (KCipher * self, const void * ivec);
-
-
-typedef void (*cipher_ctr_func)(void * ivec);
-
-KRYPTO_EXTERN rc_t CC KCipherSetEncryptCtrFunc (KCipher * self, cipher_ctr_func func);
-
-KRYPTO_EXTERN rc_t CC KCipherSetDecryptCtrFunc (KCipher * self, cipher_ctr_func func);
-
-/*
- * 'in' can equal 'out'
- */
-KRYPTO_EXTERN rc_t CC KCipherEncrypt (KCipher * self, const void * in, void * out);
-
-KRYPTO_EXTERN rc_t CC KCipherDecrypt (KCipher * self, const void * in, void * out);
-
-
-/* ====================
- * longer runs of multiple blocks.
- *
- * The algorithms are well defined and standard in most cases.
- *
- * PT: plain text block
- * CT: cipher text block
- * EK: encryption key
- * DK: decryption key (might be sthe same as EK)
- * ENC: encrypt cipher function on a block using a key
- * DEC: decrypt cipher function on a block using a key
- * IV: initialization vector - used as feedback for chaining
- * N:  number used once (nonce)
- * FB: feedback is the next IV in a chained/feedback mode
- */
-
-/* -----
- * NOTE:
- * 'in' can be the same as 'out' but other overlaps are dangers as a block at a
- * time is written. The code does not look for overlaps at this point.
- */
-
-/* ----------
- * Electronic Code Book - simple cipher with no chaining feedback  just iterate
- * simple encrypt/decrypt with the plain, text, cipher text and key/
- *
- * CT = ENC (PT,EK)
- * PT = DEC (CT,DK)
- */
-
-/* -----
- * NOTE: currently an implmentation detail limits us to 8192 bit cipher block
- * size.  Changing MAX_BLOCK_SIZE in cipher.c can up that limit without 
- * causing any other compatibility issues. 
- *
- * Two local byte arrays are defined on the stack of 1024 bytes or 8192 bits.
- */
-KRYPTO_EXTERN rc_t CC KCipherEncryptECB (KCipher * self, const void * in, void * out,
-                                         uint32_t block_count);
-
-KRYPTO_EXTERN rc_t CC KCipherDecryptECB (KCipher * self, const void * in, void * out,
-                                         uint32_t block_count);
-
-/* ----------
- * Cipher-Block Chaining
- * CT = (FB = ENC (PT^IV, EK))
- * PT = DEC ((FB = CT), DK)
- *
- */
-KRYPTO_EXTERN rc_t CC KCipherEncryptCBC (KCipher * self, const void * in, void * out,
-                                         uint32_t block_count);
-
-KRYPTO_EXTERN rc_t CC KCipherDecryptCBC (KCipher * self, const void * in, void * out,
-                                         uint32_t block_count);
-
-/* ----------
- * Propagating cipher-block chaining
- * FB = PT ^ (CT = ENC ((PT^IV), EK))
- * FB = CT ^ (PT = DEC (CT,DK) ^ IV)
- */
-
-/* not yet implemented */
-
-/* ----------
- * Cipher Feedback
- * CT = (FB = PT) ^ ENC (IV, EK))
- * PT = (FB = CT) ^ ENC (IV, DK)
- *
- * NOTE the use of the encrypt function for decryption
- *
- * Not implemented as the openssl does something different
- */
-KRYPTO_EXTERN
-rc_t CC KCipherEncryptCFB (KCipher * self, const void * in, void * out,
-                           uint32_t block_count);
-
-KRYPTO_EXTERN
-rc_t CC KCipherDecryptCFB (KCipher * self, const void * in, void * out,
-                           uint32_t block_count);
-
-KRYPTO_EXTERN
-rc_t CC KCipherEncryptPCFB (KCipher * self, const void * in, void * out,
-                            uint32_t block_count);
-
-KRYPTO_EXTERN
-rc_t CC KCipherDecryptPCFB (KCipher * self, const void * in, void * out,
-                            uint32_t block_count);
-
-/* ----------
- * Output Feedback
- * CT = PT ^ (FB = ENC (IV, EK))
- * PT = CT ^ (FB = ENC (IV, DK))
- *
- * NOTE the use of the encrypt function for decryption
- *
- * Not implemented as the openssl does something different
- */
-KRYPTO_EXTERN
-rc_t CC KCipherEncryptOFB (KCipher * self, const void * in, void * out,
-                           uint32_t block_count);
-
-KRYPTO_EXTERN
-rc_t CC KCipherDecryptOFB (KCipher * self, const void * in, void * out,
-                           uint32_t block_count);
-
-/* ----------
- * Counter
- * IV is a nonce and not re-used as FB
- * CT = PT ^ ENC (N, EK)
- * PT = CT ^ ENC (N, DK)
- *
- * NOTE the use of the encrypt function for decryption
- *
- * nonce is a function that given an iv generates the next iv
- *
- */
-KRYPTO_EXTERN
-rc_t CC KCipherEncryptCTR (KCipher * self, const void * in,
-                           void * out, uint32_t block_count);
-KRYPTO_EXTERN
-rc_t CC KCipherDecryptCTR (KCipher * self, const void * in,
-                           void * out, uint32_t block_count);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_cipher_ */
diff --git a/interfaces/krypto/ciphermgr-priv.h b/interfaces/krypto/ciphermgr-priv.h
deleted file mode 100644
index 943e067..0000000
--- a/interfaces/krypto/ciphermgr-priv.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-
-
-#ifdef  __cplusplus
-}
-#endif
-
-
-
-#endif /* #ifndef _h_krypto_manager_priv_ */
diff --git a/interfaces/krypto/ciphermgr.h b/interfaces/krypto/ciphermgr.h
deleted file mode 100644
index 2534400..0000000
--- a/interfaces/krypto/ciphermgr.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_krypto_manager_
-#define _h_krypto_manager_
-
-#ifndef _h_krypto_extern_
-#include <krypto/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-
-#ifndef _h_kfs_defs_
-#include <kfs/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* enabled/disable a set of in-house clean;y written aes ciphers. some optimize
- * for certain c processors */
-
-#define USE_NCBI_AES 1
-
-
-/*--------------------------------------------------------------------------
- * KCipherManager
- */
-struct KCipher;
-
-typedef struct KCipherManager KCipherManager;
-
-/* AddRef
- * Release
- *  ignores NULL references
- */
-KRYPTO_EXTERN
-rc_t CC KCipherManagerAddRef (const KCipherManager *self);
-
-KRYPTO_EXTERN
-rc_t CC KCipherManagerRelease (const KCipherManager *self);
-
-
-/* MakeCipher
- */
-typedef uint32_t kcipher_type;
-enum
-{
-    kcipher_null, /* no encryption = just a copy */
-    kcipher_AES,
-    kcipher_count
-};
-
-
-KRYPTO_EXTERN
-rc_t CC KCipherManagerMakeCipher (const KCipherManager * self,
-                                  struct KCipher ** cipher,
-                                  kcipher_type type);
-
-/* Make
- */
-KRYPTO_EXTERN
-rc_t CC KCipherManagerMake (KCipherManager ** pmanager);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_manager_ */
diff --git a/interfaces/krypto/encfile-priv.h b/interfaces/krypto/encfile-priv.h
deleted file mode 100644
index 79d2fd1..0000000
--- a/interfaces/krypto/encfile-priv.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_krypto_encfile_priv_
-#define _h_krypto_encfile_priv_
-
-#ifndef _h_krypto_extern_
-#include <krypto/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#include <krypto/encfile.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define DEBUG_STS(msg)     DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_STS),msg)
-#define DEBUG_CFG(msg)     DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_CFG_,msg)
-#define DEBUG_ENCRYPT(msg) DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_ENCRYPT),msg)
-#define DEBUG_DECRYPT(msg) DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_DECRYPT),msg)
-
-/* -----
- * Encrypted file structure:
- *   - File Header
- *   - zero or more data blocks
- *   - file footer
- *
- * File Header:
- *   - file signature "NCBInenc"
- *   - byte order flag 
- *   - version
- *
- * Data Block:
- *   - rkey - randomly generated 32 byte key for this block (encrypted using user key)
- *   - encrypted block of 32768 bytes size above says how many are really used (encrypted using rkey and salt above)
- *   - block-offset + (valid bytes in block % 32768)
- *   - crc-32 (includes phantom block start offset as initial seed)
- *
- * File Footer:
- *   - footer signature "foot"
- *   - checksum of crcs
- */
-
-
-/* ----------------------------------------------------------------------
- * Header - the file header
- * all constant values for the first version
- */
-typedef char KEncFileSig [8];
-typedef uint32_t Endian_t;
-typedef uint32_t KEncFileVersion;
-
-
-typedef struct KEncFileHeader KEncFileHeader;
-struct KEncFileHeader
-{
-    KEncFileSig     file_sig;   /* "NCBInenc" or "NCBIkenc" */
-    Endian_t        byte_order; /* do we byte swap on read? */
-    KEncFileVersion version;    /* simple incrementation starting at 1 */
-};
-
-
-/* ----------------------------------------------------------------------
- * KEncFileBlock
- *    The body of the file is blocks containing a portion of the decrypted
- *    file.  These are an ordered sequence with the last block being the
- *    same size as the rest but with only some of the data portion being
- *    a part of the file.
- *
- *    An crypted file is longer than an unencrypted file by 
- *       a constant: the lengths of the header and the footer
- *       proportinally by the length of the block key and crc
- */
-
-/* -----
- * Key  the header for an encrypted block
- *
- * when initialized the first 38 bytes should be set to random data.
- * valid is a count of how many bytes in the block are valid data
- * offset is the offset of this block with in the decrypted file
- */
-typedef uint8_t KEncFileKey [32];
-
-
-/* -----
- * We sized the data portion of a block to match the KPageFile
- * structure allowing a KBufFile in front of a KEncFile to
- * operate in a fairly efficient manner
- */
-#define ENC_DATA_BLOCK_SIZE     (32*1024)
-typedef uint8_t KEncFileData [ENC_DATA_BLOCK_SIZE];
-
-typedef uint16_t KEncFileOffValid;
-
-typedef uint64_t KEncFileBlockId;
-typedef uint16_t KEncFileBlockValid;
-
-/* -----
- * we use the same 32 bit CRC as the rest of the project
- */
-typedef uint32_t KEncFileCRC;
-
-
-/*
- * NOTE:
- * The size of data + u + id + crc + crc_copy must remain divisible
- * by the size of key
- */
-typedef struct KEncFileBlock KEncFileBlock;
-struct KEncFileBlock
-{
-    KEncFileKey         key;  /* encrypted with the user key */
-    KEncFileData        data; /* encrypted with block key */
-    union
-    {
-        KEncFileBlockValid  valid; /* obscured and encrypted */
-        uint8_t bytes [16];        /* mostly fill */
-    } u;
-    KEncFileBlockId     id;        /* plain text */
-    KEncFileCRC         crc;       /* plain text */
-    KEncFileCRC         crc_copy;  /* plain text */
-};
-
-
-/* ----------------------------------------------------------------------
- * Foot - the ending of an encrypted file: 
- *   these are in plan text for non-decryption validation of the whole file
- *
- * In Version 1 the crc_checksum is required.
- * In Version 2 the crc_checksum is optional - if 0 it is not computed.
- */
-typedef uint64_t KEncFileFooter_t;
-typedef struct KEncFileFooter KEncFileFooter;
-struct KEncFileFooter
-{
-    KEncFileFooter_t block_count;  /* how many blocks do we have? */
-    KEncFileFooter_t crc_checksum; /* sum of crcs of all blocks */
-};
-
-
-/* ----------
- * Read mode is fully seekable if the underlying KFile is seekable some
- * integrity checking will not be performed in allowing this seeking.
- */
-KRYPTO_EXTERN rc_t CC KEncFileMakeRead_v1 (const struct KFile ** pself,
-                                           const struct KFile * encrypted_input,
-                                           const struct KKey * key);
-
-KRYPTO_EXTERN rc_t CC KEncFileMakeRead_v2 (const struct KFile ** pself,
-                                           const struct KFile * encrypted_input,
-                                           const struct KKey * key);
-
-
-/* ----------
- * Write mode encrypted file can only be written straight through from the
- * first byte to the last.
- */
-KRYPTO_EXTERN rc_t CC KEncFileMakeWrite_v1 (struct KFile ** pself,
-                                            struct KFile * encrypted_output,
-                                            const struct KKey * key);
-
-KRYPTO_EXTERN rc_t CC KEncFileMakeWrite_v2 (struct KFile ** pself,
-                                            struct KFile * encrypted_output,
-                                            const struct KKey * key);
-
-
-/* ----------
- * Update mode is read/write mode where seeking within the file is allowed.
- *
- * NOTE this is in the private interface because it is not actually working
- * yet.
- */
-KRYPTO_EXTERN rc_t CC KEncFileMakeUpdate_v1 (struct KFile ** pself, 
-                                             struct KFile * encrypted,
-                                             const struct KKey * key);
-
-KRYPTO_EXTERN rc_t CC KEncFileMakeUpdate_v2 (struct KFile ** pself, 
-                                             struct KFile * encrypted,
-                                             const struct KKey * key);
-
-
-/* ----------
- * Validate mode can not be read or written.
- * Upon open the whole file is read from begining to end and all CRC
- * and other integrity checks are performed immedaitely
- */
-KRYPTO_EXTERN rc_t CC KEncFileValidate_v1 (const struct KFile * encrypted);
-
-KRYPTO_EXTERN rc_t CC KEncFileValidate_v2 (const struct KFile * encrypted);
-
-
-/* ----------
- * Identify whether a file is a KEncFile type encrypted file by the header.
- * read the header into a buffer and pass it into this function.  
- * The buffer_size needs to be at least 8 but more bytes lead to a better
- * check up to the size of the header of a KEncFile type encrypted file.
- * As the header may change in the future (in a backwards compatible way)
- * that size might change from the current 16.
- *
- * Possible returns:
- * 0:
- *      the file is an identified KEncFile type file.  False positives are
- *      possible if a file happens to match at 8 or more bytes
- *
- * RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType)
- *      the file is definitely not a KEncFIle type encrypted file.
- *     
- * RC (rcFS, rcFile, rcIdentifying, rcParam, rcNull)
- *      bad parameters in the call
- *
- * RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient)
- *      not a large enough buffer to make an identification
- */
-KRYPTO_EXTERN rc_t CC KFileIsEnc_v1 (const char * buffer, size_t buffer_size);
-
-KRYPTO_EXTERN rc_t CC KFileIsEnc_v2 (const char * buffer, size_t buffer_size);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_krypto_encfile_priv_ */
diff --git a/interfaces/krypto/encfile.h b/interfaces/krypto/encfile.h
deleted file mode 100644
index df8efe1..0000000
--- a/interfaces/krypto/encfile.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/*
- * This needs to be changed to true in about the middle of summer 2013
- *
- * When re-enabling this feature also fix test/kreypto/Makefile
- */
-#define SENC_IS_NENC_FOR_WRITER 0
-
-
-#ifndef _h_krypto_encfile_
-#define _h_krypto_encfile_
-
-#ifndef _h_krypto_extern_
-#include <krypto/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct KFile;
-struct KKey;
-
-typedef struct KEncFile KEncFile;
-
-/* ----------
- * Read mode is fully seekable if the underlying KFile is seekable some
- * integrity checking will not be performed in allowing this seeking.
- *
- * One difference between update and read mode is the handling of
- * "missing blocks". Open for update will read a missing block as all
- * zero while 
- */
-KRYPTO_EXTERN rc_t CC KEncFileMakeRead (const struct KFile ** pself,
-                                        const struct KFile * encrypted_input,
-                                        const struct KKey * key);
-
-
-/* ----------
- * Write mode encrypted file can only be written straight through from the
- * first byte to the last.
- */
-KRYPTO_EXTERN rc_t CC KEncFileMakeWrite (struct KFile ** pself,
-                                         struct KFile * encrypted_output,
-                                         const struct KKey * key);
-
-
-/* ----------
- * Update mode is read/write mode where seeking within the file is allowed.
- * 
- * One difference between update and read mode is the handling of
- * "missing blocks". Open for update will read a missing block as all
- * zero while 
- */
-KRYPTO_EXTERN rc_t CC KEncFileMakeUpdate (struct KFile ** pself, 
-                                          struct KFile * encrypted,
-                                          const struct KKey * key);
-
-
-/* ----------
- * Validate mode can not be read or written.
- * Upon open the whole file is read from begining to end and all CRC
- * and other integrity checks are performed immedaitely
- */
-KRYPTO_EXTERN rc_t CC KEncFileValidate (const struct KFile * encrypted);
-
-
-/* ----------
- * Identify whether a file is a KEncFile type encrypted file by the header.
- * read the header into a buffer and pass it into this function.  
- * The buffer_size needs to be at least 8 but more bytes lead to a better
- * check up to the size of the header of a KEncFile type encrypted file.
- * As the header may change in the future (in a backwards compatible way)
- * that size might change from the current 16.
- *
- * Possible returns:
- * 0:
- *      the file is an identified KEncFile type file.  False positives are
- *      possible if a file happens to match at 8 or more bytes
- *
- * RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType)
- *      the file is definitely not a KEncFIle type encrypted file.
- *     
- * RC (rcFS, rcFile, rcIdentifying, rcParam, rcNull)
- *      bad parameters in the call
- *
- * RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient)
- *      not a large enough buffer to make an identification
- */
-
-/* requires NCBInenc or NCBIsenc or signature but if available
- * checks the byte order and version fields
- */
-KRYPTO_EXTERN rc_t CC KFileIsEnc (const char * buffer, size_t buffer_size);
-
-/* same as above but requires NCBIsenc signature only */
-KRYPTO_EXTERN rc_t CC KFileIsSraEnc (const char * buffer, size_t buffer_size);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_krypto_encfile_ */
diff --git a/interfaces/krypto/extern.h b/interfaces/krypto/extern.h
deleted file mode 100644
index 4663585..0000000
--- a/interfaces/krypto/extern.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_krypto_extern_
-#define _h_krypto_extern_
-
-#ifndef _h_klib_callconv_
-#include <klib/callconv.h>
-#endif
-
-#if ! defined EXPORT_LATCH && _LIBRARY
-
-#define KRYPTO_EXTERN LIB_EXPORT
-#define KRYPTO_EXTERN_DATA extern LIB_EXPORT
-#define EXPORT_LATCH 1
-
-#else
-
-#define KRYPTO_EXTERN LIB_IMPORT
-#define KRYPTO_EXTERN_DATA LIB_IMPORT
-
-#endif
-
-#if defined _MSC_VER && ! _STATIC
-
-/* __declspec ( dllimport ) will cause creation of
-   function pointers rather than thunks, which makes
-   the code that imports unable to link statically
-   against a library. we leave this symbol defined as
-   "extern" to use thunks instead. as a result, all
-   function addresses resolve to the thunk and not
-   the actual function. */
-#define LIB_IMPORT extern
-#define LIB_EXPORT __declspec ( dllexport )
-
-#else
-
-#define LIB_IMPORT extern
-#define LIB_EXPORT
-
-#endif
-
-#endif /* _h_krypto_extern_ */
diff --git a/interfaces/krypto/key.h b/interfaces/krypto/key.h
deleted file mode 100644
index f170d7d..0000000
--- a/interfaces/krypto/key.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kfs_key_
-#define _h_kfs_key_
-
-#ifndef _h_krypto_extern_
-#include <krypto/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct KKey KKey;
-
-
-typedef uint32_t KKeyType;
-enum eKKeyType
-{
-    kkeyNone,
-    kkeyAES128,
-    kkeyAES192,
-    kkeyAES256,
-    kkeyTypeCount
-};
-
-#define KKeyTypeDefault (kkeyAES128)
-
-struct KKey
-{
-    KKeyType type;
-    uint8_t  text [32]; /* might be more, might be less */
-};
-
-enum eKKeySize
-{
-    kkeyMinimumSize = 6
-};
-
-KRYPTO_EXTERN_DATA KKey KKeyEncrypt;
-KRYPTO_EXTERN_DATA KKey KKeyDecrypt;
-
-/* WGA ncryption passwords are only significant to 32 characters */
-#define WGA_MAX_PASSWORD (32)
-KRYPTO_EXTERN_DATA char WGAEncryptPassword[WGA_MAX_PASSWORD];
-KRYPTO_EXTERN_DATA char WGADecryptPassword[WGA_MAX_PASSWORD];
-
-typedef char KryptoKeyMapNCBI [32*2];
-typedef char KryptoKeyMapWGA  [2 + 32*2];
-typedef char KryptoKeyMap [(2*sizeof(KryptoKeyMapNCBI))+(2*sizeof(KryptoKeyMapWGA))+1];
-enum
-{
-    KryptoKeyMapEncrypt = 0,
-    KryptoKeyMapDecrypt = sizeof(KryptoKeyMapNCBI),
-    KryptoKeyMapWGAEncrypt = KryptoKeyMapDecrypt + sizeof(KryptoKeyMapNCBI),
-    KryptoKeyMapWGADecrypt = KryptoKeyMapWGAEncrypt + sizeof(KryptoKeyMapWGA),
-    KryptoKeyMapNul = KryptoKeyMapWGADecrypt + sizeof(KryptoKeyMapWGA)
-};
-
-KRYPTO_EXTERN  rc_t CC KKeyInitRead (KKey * self, KKeyType key_type, 
-                                     const void * password, size_t password_size);
-
-KRYPTO_EXTERN rc_t CC KKeyInitUpdate (KKey * key, KKeyType key_type, 
-                                      const void * password, size_t password_size);
-
-
-#define FAIL_SHORT_PASSWORD (false)
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_key_ */
diff --git a/interfaces/krypto/manager-priv.h b/interfaces/krypto/manager-priv.h
deleted file mode 100644
index f2f3346..0000000
--- a/interfaces/krypto/manager-priv.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#error "OBSOLETE do not use"
diff --git a/interfaces/krypto/reencfile.h b/interfaces/krypto/reencfile.h
deleted file mode 100644
index 02d4894..0000000
--- a/interfaces/krypto/reencfile.h
+++ /dev/null
@@ -1,91 +0,0 @@
-
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_krypto_reencfile_
-#define _h_krypto_reencfile_
-
-#ifndef _h_krypto_extern_
-#include <krypto/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Currently only the read version is implmented
- */
-#define REENCFILE_WRITE_SUPPORTED 0
-/*
- * Currently the input encrypted KFile must respond to KFileSize
- * with the size of the encrypted file. 
- */
-#define REENCFILE_STREAM_SUPPORTED 0
-
-
-struct KFile;
-struct KKey;
-
-typedef struct KReencFile KReencFile;
-
-/* ----------
- * Read mode is fully seekable if the underlying KFile is seekable some
- * integrity checking will not be performed in allowing this seeking.
- */
-KRYPTO_EXTERN rc_t CC KReencFileMakeRead (const struct KFile ** pself, 
-                                          const struct KFile * encrypted,
-                                          const struct KKey * deckey,
-                                          const struct KKey * enckey);
-
-KRYPTO_EXTERN rc_t CC KEncryptFileMakeRead (const struct KFile ** pself, 
-                                            const struct KFile * encrypted,
-                                            const struct KKey * enckey);
-
-
-/* ----------
- * Write mode encrypted file can only be written straight through form the
- * first byte to the last.
- */
-#if REENCFILE_WRITE_SUPPORTED
-KRYPTO_EXTERN rc_t CC KReencFileMakeWrite (struct KFile ** pself, 
-                                           struct KFile * encrypted,
-                                           const struct KKey * deckey,
-                                           const struct KKey * enckey);
-#endif
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_krypto_reencfile_ */
diff --git a/interfaces/krypto/rng-impl.h b/interfaces/krypto/rng-impl.h
deleted file mode 100644
index 96d03fe..0000000
--- a/interfaces/krypto/rng-impl.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kryptoimpl_
-#define _h_kryptoimpl_
-
-#include <krypto/extern.h>
-#include <krypto/rng.h>
-#include <klib/refcount.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-
-typedef union KRng_vt KRng_vt;
-
-struct KRng
-{
-    const union KRng_vt *vt;
-    KRefcount refcount;
-};
-
-#ifndef KRNG_IMPL
-#define KRNG_IMPL KRng
-#endif
-
-typedef struct KRng_vt_v1 KRng_vt_v1;
-struct KRng_vt_v1
-{
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t (CC * destroy) (KRNG_IMPL * self);
-    rc_t (CC * seed)    (KRNG_IMPL * self);
-    rc_t (CC * reseed)  (KRNG_IMPL * self, const void * buff, size_t buff_size);
-    rc_t (CC * read)    (const KRNG_IMPL *self, void * buff, uint32_t buff_len,
-                         uint32_t * num_read);
-    /* end minor version == 0 */
-    /* start minor version == 1 */
-    /* end minor version == 1 */
-    /* end version == 1.x */
-};
-
-union KRng_vt
-{
-    KRng_vt_v1 v1;
-};
-
-KRYPTO_EXTERN rc_t CC KRngInit (KRng * self, union KRng_vt * vt, const char * type);
-KRYPTO_EXTERN rc_t CC KRngSysEntropy (KRng * self, uint8_t * buffer, size_t size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kryptoimpl_ */
diff --git a/interfaces/krypto/rng.h b/interfaces/krypto/rng.h
deleted file mode 100644
index 32b0d47..0000000
--- a/interfaces/krypto/rng.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_krypto_rng_
-#define _h_krypto_rng_
-
-#ifndef _h_krypto_extern_
-#include <krypto/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct KRng KRng;
-
-/* attach a new 'ownership' reference */
-KRYPTO_EXTERN rc_t CC KRngAddRef (const KRng * self);
-
-/* release an 'ownership' reference */
-KRYPTO_EXTERN rc_t CC KRngRelease (const KRng * self);
-
-/* call to the system entropy function and [re-]seed the rng */
-KRYPTO_EXTERN rc_t CC KRngSeed (KRng * self);
-
-/* fill a buffer of a given size with random values: type sepcific as to the meaning or size of elements
- * return the number of elements actually written to the buffer */
-KRYPTO_EXTERN rc_t CC KRngRead (const KRng * self, void * buffer, uint32_t bsize, uint32_t * num_read);
-
-
-/*
- * Cryptographically secure pseudo-random number generator
- * elements are 8 bits long
- */
-KRYPTO_EXTERN rc_t CC KCSPRngMake (KRng ** pself);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_krypto_rng_ */
diff --git a/interfaces/krypto/testciphermgr.h b/interfaces/krypto/testciphermgr.h
deleted file mode 100644
index ffaa35a..0000000
--- a/interfaces/krypto/testciphermgr.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_krypto_manager_test_
-#define _h_krypto_manager_test_
-
-#include <krypto/ciphermgr.h>
-
-/* MakeCipher
- */
-typedef int32_t kcipher_subtype;
-enum
-{
-    ksubcipher_none = -1,
-    ksubcipher_byte,
-    ksubcipher_vec,
-    ksubcipher_vecreg,
-    ksubcipher_accelerated, /* for example AES-NI */ 
-    ksubcipher_count
-};
-
-extern kcipher_subtype KCipherSubType;
-
-
-KRYPTO_EXTERN
-rc_t CC KCipherManagerTestMakeCipher (const KCipherManager * self,
-                                      struct KCipher ** cipher,
-                                      kcipher_type type,
-                                      kcipher_subtype subtype);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_manager_ */
diff --git a/interfaces/krypto/wgaencrypt.h b/interfaces/krypto/wgaencrypt.h
deleted file mode 100644
index b8cfeeb..0000000
--- a/interfaces/krypto/wgaencrypt.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_krypto_wgaencryptfile_
-#define _h_krypto_wgaencryptfile_
-
-#ifndef _h_krypto_extern_
-#include <krypto/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KFile;
-
-
-/*--------------------------------------------------------------------------
- * KFile
- *  wga extensions
- */
-
-/* MakeWGAEncRead
- *
- * Parameters:
- *   pself is a KFile that will represent the unencrypted side of operations.
- *
- *   encrypted is a KFile that will represent the encrypted side of operations.
- *
- *   key is an arbitrary array of characters
- *
- *   key_size is how many bytes to use from key.  Maximum used is 256.
- *
- *   encoding is one of the three values defined by FER_ENCODING above.  Any
- *   other values will cause a failure.
- *
- * KFileMakeWGAEncRead
- *   A file opened for read can only read and decrypt an encrypted file.  Seeks
- *   within the file are allowed if the KFile for the encrypted file allows
- *    seeks.
- * 
- * KFileMakeWGAEncUpdate
- *   A file opened for update must be able to read and write from the encrypted
- *   file.  Seeks within the file are allowed if the KFile for the encrypted 
- *   file allows seeks.
- *
- * KFileMakeWGAEncRead
- *   A Write opened file can only be written.  Seeks backwards are not allowed.
- *   Seeks forward will cause NUL data bytes to be inserted before encryption.
- *   An attempt will be made to truncate the encrypted file but failure of that
- *   operation will not fail this call.  Writes will begin at position 0.  If
- *   the file already existed and could not be truncated a corrupt file will
- *   result if the whole of the old contents are not over-written.
- *
- *
- * NOTE: cipher must be of type kcipherAES
- *
- */
-KRYPTO_EXTERN rc_t CC KFileMakeWGAEncRead (const struct KFile ** pself, 
-                                           const struct KFile * encrypted,
-                                           const char * key,
-                                           size_t key_size);
-
-
-/* IsWGAEnc
- *  identify whether a file is a KFileWGAEnc type encrypted file by the header.
- *  read the header into a buffer and pass it into this function.  
- *  The buffer_size needs to be at least 8 but more bytes lead to a better
- *  check up to the size of the header of a KFileWGAEnc type encrypted file.
- *  This file type is deprecated and is not versioned.  Hopefully we won't
- *  have to deal with changes to the format.
- *
- * Possible returns:
- *  0:
- *      the file is an identified KFileWGAEnc type file.  False positives are
- *      possible if a file happens to match at 8 or more bytes
- *
- *  RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType)
- *      the file is definitely not a KFileWGAEnc type encrypted file.
- *     
- *  RC (rcFS, rcFile, rcIdentifying, rcParam, rcNull)
- *      bad parameters in the call
- *
- *  RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient)
- *      not a large enough buffer to make an identification
- */
-KRYPTO_EXTERN rc_t CC KFileIsWGAEnc (const void * buffer, size_t buffer_size);
-
-KRYPTO_EXTERN rc_t CC WGAEncValidate (const struct KFile * file, 
-                                      const char * password,
-                                      size_t password_size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_wgaencryptfile_ */
diff --git a/interfaces/ktst/test_tools.hpp b/interfaces/ktst/test_tools.hpp
index b6644da..6e7b085 100644
--- a/interfaces/ktst/test_tools.hpp
+++ b/interfaces/ktst/test_tools.hpp
@@ -2,7 +2,6 @@
 #define _h_ktst_test_tools_
 
 ////////////////////////////////////////////////////////////////////////////////
-// these macros are available outside of test cases' code
 
 #define LOG(log_level, msg) \
 if (log_level >= ncbi::NK::TestEnv::verbosity) std::cerr << msg
@@ -13,7 +12,97 @@ if (log_level >= ncbi::NK::TestEnv::verbosity) std::cerr << msg
 
 #define TEST_CHECKPOINT(M) TEST_MESSAGE(M)
 
-// report failure from a fixture
+#define CHECK(exp)       \
+  ( (exp)                      \
+      ? report_passed((#exp), __FILE__, __LINE__) \
+      : report_error ((#exp), __FILE__, __LINE__) )
+
+/* TODO #define CHECK_MESSAGE(exp, M)       \
+  std::ostringstream s, s << M, \
+  ( (exp)                      \
+      ? report_passed(s.str(),__FILE__,__LINE__) \
+      : report_error (s.str(),__FILE__,__LINE__) )*/
+
+#define REQUIRE(exp)     \
+  ( (exp)                      \
+      ? report_passed        ((#exp), __FILE__, __LINE__) \
+      : _REPORT_CRITICAL_ERROR_((#exp), __FILE__, __LINE__) )
+
+#define CHECK_CLOSE(left, right, tolerance) \
+( (ncbi::NK::abs((left) - (right)) < (tolerance)) \
+?report_passed_close(#left,#right,(left),(right),(tolerance),__FILE__,__LINE__)\
+: report_error_close(#left,#right,(left),(right),(tolerance), \
+    ncbi::NK::abs((left) - (right)), __FILE__, __LINE__) )
+
+#define REQUIRE_CLOSE(left, right, tolerance) \
+( (ncbi::NK::abs((left) - (right)) < (tolerance)) \
+?report_passed_close(#left,#right,(left),(right),(tolerance),__FILE__,__LINE__)\
+: report_error_close(#left,#right,(left),(right),(tolerance), \
+    ncbi::NK::abs((left) - (right)), __FILE__, __LINE__, true) )
+
+#define CHECK_EQUAL(e1, e2)  \
+  ( ((e1) == (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "==", "!=") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "==", "!=") )
+
+#define REQUIRE_EQUAL(e1, e2)  \
+  ( ((e1) == (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "==", "!=") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "==", "!=", true) )
+
+#define CHECK_GE(e1, e2) \
+  ( ((e1) >= (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">=", "<") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">=", "<") )
+
+#define REQUIRE_GE(e1, e2) \
+  ( ((e1) >= (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">=", "<") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">=", "<", true) )
+
+#define CHECK_GT(e1, e2) \
+  ( ((e1) > (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">", "<=") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">", "<=") )
+
+#define REQUIRE_GT(e1, e2) \
+  ( ((e1) > (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">", "<=") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, ">", "<=", true) )
+
+#define CHECK_LE(e1, e2) \
+  ( ((e1) <= (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<=", ">") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<=", ">") )
+
+#define REQUIRE_LE(e1, e2) \
+  ( ((e1) <= (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<=", ">") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<=", ">", true) )
+
+#define CHECK_LT(e1, e2) \
+  ( ((e1) < (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<", ">=") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<", ">=") )
+
+#define REQUIRE_LT(e1, e2) \
+  ( ((e1) < (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<", ">=") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "<", ">=", true) )
+
+#define CHECK_NE(e1, e2)  \
+  ( ((e1) != (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "!=", "==") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "!=", "==") )
+
+#define REQUIRE_NE(e1, e2)  \
+  ( ((e1) != (e2))                      \
+      ? report_passed2(#e1,#e2,(e1),(e2),__FILE__,__LINE__, "!=", "==") \
+      : report_error2 (#e1,#e2,(e1),(e2),__FILE__,__LINE__, "!=", "==", true) )
+
+#define ERROR( msg_ )    \
+      report_error( (msg_), __FILE__, __LINE__, true )
+
 #define FAIL( msg_ )     \
       _REPORT_CRITICAL_ERROR_( (msg_), __FILE__, __LINE__, true )
 
diff --git a/interfaces/ktst/unit_test.hpp b/interfaces/ktst/unit_test.hpp
index 1cdbd50..c4385e6 100644
--- a/interfaces/ktst/unit_test.hpp
+++ b/interfaces/ktst/unit_test.hpp
@@ -1,249 +1,70 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
 #ifndef _h_ktst_unit_test_
 #define _h_ktst_unit_test_
 
+#include <ktst/test_tools.hpp>
 #include <ktst/unit_test_suite.hpp>
 
-////////////////////////////////////////////////////////////////////////////////
-namespace ncbi { namespace NK {
-
-// a utility template used to pass test character string case names to FixtureTestCase
-template<class T>
-struct TestCaseTraits
-{
-    static const char* name;
-};
-
-// create an executable test case class with the given fixture.
-template <class TCaseTraits, class TFixture>
-class FixtureTestCase : public ncbi::NK::TestCase, public TFixture { 
-public:
-    typedef TCaseTraits Traits;
-
-    // Represents the global test fixture. Cast to the correct data type in the test code
-    typedef void AUTO_TEST_CASE_FIXTURE;
-
-public: 
-    FixtureTestCase(void* globalFixture) 
-    : TestCase(TCaseTraits::name), _globalFixture (static_cast<AUTO_TEST_CASE_FIXTURE*>(globalFixture)) 
-    {
-    }
-
-protected: 
-    AUTO_TEST_CASE_FIXTURE* GET_GLOBAL_FIXTURE(void) const { return _globalFixture; } 
-    AUTO_TEST_CASE_FIXTURE* _globalFixture; 
-
-    const TFixture* GET_FIXTURE(void) const { return this; } 
-    TFixture* GET_FIXTURE(void) { return this; } 
-}; 
+#include <iostream> // cout
+#include <sstream> // ostringstream
+#include <vector>
+#include <cassert>
+#include <csignal> /* sigaction */
 
-// Create an invoker object for a test case with a given fixture.
-// The invoker object is static and registers itself with the global test suite during initialization.
-// When executed, the invoker will instantiate a fixture and a test case object and execute object's test method 
-// on the current thread.
-template <class TCase, class TFixture>
-class TestCaseInvoker : ncbi::NK::TestInvoker { 
-public: 
-    TestCaseInvoker() : TestInvoker(TCase::Traits::name) 
-    { 
-        ncbi::NK::GetTestSuite()->Add(this); 
-    } 
-private: 
-    virtual void Run(void* globalFixture) 
-    { 
-        try
-        { // in case constructor throws
-            TCase t(globalFixture); 
-            try { 
-                t.test_method(); 
-                SetErrorCounter(t.GetErrorCounter()); 
-            } catch (...) { 
-                SetErrorCounter(t.GetErrorCounter()); 
-                if (GetErrorCounter() == 0)
-                {
-                    SetErrorCounter(1);
-                }
-                throw; 
-            } 
-        }
-        catch (const execution_aborted&)
-        {
-            SetErrorCounter(1);
-            throw; 
-        } 
-        catch (const std::exception& ex)
-        {
-            if (!ncbi::NK::TestEnv::lastLocation.empty())
-            {
-                LOG(ncbi::NK::LogLevel::e_fatal_error, ncbi::NK::TestEnv::lastLocation << ": last checkpoint before exception \"" << ex.what() << "\"\n");
-            }        
-            SetErrorCounter(1);
-            throw; 
-        } 
-        catch (...) // a non-framework exception escaped
-        { 
-            if (!ncbi::NK::TestEnv::lastLocation.empty())
-            {
-                LOG(ncbi::NK::LogLevel::e_fatal_error, ncbi::NK::TestEnv::lastLocation << ": last checkpoint before an unknown exception\n");
-            }        
-            SetErrorCounter(1);
-            throw; 
-        } 
-    } 
-    static TestCaseInvoker instance;
-}; 
-
-// Create an out-of-thread invoker object for a test case with a given fixture.
-// The invoker object is static and registers itself with the global test suite during initialization.
-// When executed, the invoker will instantiate a fixture and a test case object and execute object's test method 
-// as a child process (Unix) or on a separate thread(Windows).
-template <class TCase, class TFixture, int rc, int timeout>
-class ProcessTestCaseInvoker : ncbi::NK::TestInvoker { 
-public: 
-    ProcessTestCaseInvoker() : TestInvoker(TCase::Traits::name) 
-    { 
-        ncbi::NK::GetTestSuite()->Add(this); 
-    } 
-private: 
-    virtual void Run(void* globalFixture) 
-    { 
-        try
-        {
-            TCase t(globalFixture); 
-            if (ncbi::NK::TestEnv::RunProcessTestCase(t, (void(ncbi::NK::TestCase::*)())&TCase::test_method, timeout) != rc)
-            {
-                throw ncbi::NK::execution_aborted(); 
-            }
-            SetErrorCounter(t.GetErrorCounter());
-        }
-        catch (...)
-        { 
-            if (GetErrorCounter() == 0)
-            {
-                SetErrorCounter(1);
-            }
-            throw; 
-        } 
-    }
-}; 
-
-}} // namespace
-
-// macros to be used to instantiate test cases
-
-// user code should not not use this directly. 
-#define DEFINE_TEST_CASE(testcase, F, rc, timeout) \
-    struct testcase { \
-        class dummy{}; \
-        typedef ncbi::NK::FixtureTestCase< ::ncbi::NK::TestCaseTraits<dummy>, F> Case;\
-        struct Instance : public Case { \
-            Instance(void* g) : Case(g){}\
-            void test_method(); } ; \
-        class Invoker : public ::ncbi::NK::TestCaseInvoker<Instance, F> {}; \
-        class ProcessInvoker : public ::ncbi::NK::ProcessTestCaseInvoker<Instance, F, rc, timeout> {}; \
-    };\
-    template<> const char* ::ncbi::NK::TestCaseTraits<testcase::dummy>::name=#testcase; 
+////////////////////////////////////////////////////////////////////////////////
 
-// define an in-thread test case with a fixture
-#define FIXTURE_TEST_CASE(testcase, F) \
-    DEFINE_TEST_CASE(testcase, F, 0, 0) \
-    static testcase::Invoker testcase##Invoker;\
-    void testcase::Instance::test_method()
+#define FIXTURE_TEST_CASE(test_name, F) \
+namespace ncbi { namespace NK { \
+class C##test_name : public TestCase { \
+public: \
+    C##test_name(void* globalFixtute, F* fixture) : TestCase(#test_name) \
+        , _globalFixture \
+            (static_cast<AUTO_TEST_CASE_FIXTURE*>(globalFixtute)) \
+        , _fixture(fixture) {} \
+    void test_method(); \
+private: \
+    AUTO_TEST_CASE_FIXTURE* GET_GLOBAL_FIXTURE(void) const \
+    { return _globalFixture; } \
+    F* GET_FIXTURE(void) const { return _fixture; } \
+    AUTO_TEST_CASE_FIXTURE* _globalFixture; \
+    F* _fixture; \
+}; \
+class C##test_name##Invoker : TestInvoker { \
+public: C##test_name##Invoker(void) : TestInvoker(#test_name) \
+{ GetTestSuite()->Add(this); } \
+private: virtual void Run(void* globalFixtute) { \
+        F fixture; \
+        C##test_name t(globalFixtute, &fixture); \
+        try { \
+            t.test_method(); \
+            SetErrorCounter(t.GetErrorCounter()); \
+        } catch (...) { \
+            SetErrorCounter(t.GetErrorCounter()); \
+            throw; \
+        } \
+    } \
+}; \
+static C##test_name##Invoker* _##test_name##instance \
+    = new C##test_name##Invoker; \
+} } /* ncbi::NK */ \
+void ncbi::NK::C##test_name::test_method()
 
-// define an in-thread test case without a fixture
 #define TEST_CASE(test_name) FIXTURE_TEST_CASE(test_name, ncbi::NK::Empty)
 
-// define an out-of-thread test case with a fixture, expected exit code, and a timeout (in seconds)
-#define PROCESS_FIXTURE_TEST_CASE(testcase, F, rc, timeout) \
-    DEFINE_TEST_CASE(testcase, F, rc, timeout) \
-    static testcase::ProcessInvoker testcase##Invoker;\
-    void testcase::Instance::test_method()
-
-// define an out-of-thread test case with an expected exit code and a timeout (in seconds), no fixture
-#define PROCESS_TEST_CASE(test_name, rc, timeout) PROCESS_FIXTURE_TEST_CASE(test_name, ncbi::NK::Empty, rc, timeout)
-
-// fix param type
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-#define DECLARE_EXTERN_C_ENTRYPOINTS                             \
-    extern "C"                                                   \
-    {                                                            \
-        rc_t CC UsageSummary ( const char *progname )            \
-        { return ncbi::NK::TestEnv::UsageSummary ( progname ); } \
-                                                                 \
-        rc_t CC Usage ( const Args *args )                       \
-        { return ncbi::NK::TestEnv::Usage ( args ); }            \
-    }
-#else
-#define DECLARE_EXTERN_C_ENTRYPOINTS
-#endif
-
-// define a suite of test cases with a global fixture 
-// Note: Typed access to global fixture from the test cases' code is not currently implemented
 #define FIXTURE_TEST_SUITE( suite_name, F ) \
-DECLARE_EXTERN_C_ENTRYPOINTS \
-typedef F AUTO_TEST_CASE_FIXTURE; \
-int suite_name(int argc, char* argv[]) { \
-    ncbi::NK::TestEnv args(argc, argv); \
-    if (args.catch_system_errors) { \
-        args.set_handlers(); \
-    } \
-    ncbi::NK::counter_t ec = ncbi::NK::Main<AUTO_TEST_CASE_FIXTURE>(argc, argv, #suite_name); \
-    return ec == 0 ? 0 : -ec; /* positive rc represents the signal that killed the process */ \
-} 
-
-// define a suite of test cases with a global fixture
-// with callback to handle application command line arguments
-#define FIXTURE_TEST_SUITE_WITH_ARGS_HANDLER( suite_name, F, Handler ) \
-DECLARE_EXTERN_C_ENTRYPOINTS \
 typedef F AUTO_TEST_CASE_FIXTURE; \
-int suite_name(int argc, char* argv[]) { \
-    ncbi::NK::TestEnv args(argc, argv, Handler); \
-    if (args.catch_system_errors) { \
-        args.set_handlers(); \
-    } \
-    ncbi::NK::counter_t ec = ncbi::NK::Main<AUTO_TEST_CASE_FIXTURE>(argc, argv, #suite_name); \
-    return ec == 0 ? 0 : -ec; /* positive rc represents the signal that killed the process */ \
-}
-
-// define a suite of test cases with a global fixture; command line parsing, Usage and UsageSummary functions are supplied by the user's code
-#define FIXTURE_TEST_SUITE_WITH_USAGE( suite_name, F ) \
-typedef F AUTO_TEST_CASE_FIXTURE; \
-int suite_name(int argc, char* argv[]) { \
+int main(int argc, char* argv[]) { \
     ncbi::NK::TestEnv args(argc, argv); \
     if (args.catch_system_errors) { \
         args.set_handlers(); \
     } \
-    ncbi::NK::counter_t ec = ncbi::NK::Main<AUTO_TEST_CASE_FIXTURE>(argc, argv, #suite_name); \
-    return ec == 0 ? 0 : -ec; /* positive rc represents the signal that killed the process */ \
-} 
-
-#define TEST_SUITE( suite_name ) FIXTURE_TEST_SUITE(suite_name, ncbi::NK::Empty)
-#define TEST_SUITE_WITH_USAGE( suite_name ) FIXTURE_TEST_SUITE_WITH_USAGE(suite_name, ncbi::NK::Empty)
-#define TEST_SUITE_WITH_ARGS_HANDLER( suite_name, Handler ) FIXTURE_TEST_SUITE_WITH_ARGS_HANDLER(suite_name, ncbi::NK::Empty, Handler)
+    ncbi::NK::counter_t ec = \
+        ncbi::NK::Main<AUTO_TEST_CASE_FIXTURE>(argc, argv, #suite_name); \
+    return ec == 0 ? EXIT_SUCCESS : EXIT_FAILURE; \
+} \
+std::string ncbi::NK::TestEnv::lastLocation; \
+ncbi::NK::LogLevel::E ncbi::NK::TestEnv::verbosity = LogLevel::e_error;
+
+#define TEST_SUITE( suite_name ) \
+FIXTURE_TEST_SUITE(suite_name, ncbi::NK::Empty)
 
 #endif// _h_ktst_unit_test_
diff --git a/interfaces/ktst/unit_test_suite.hpp b/interfaces/ktst/unit_test_suite.hpp
index 0d87c48..e01baaf 100644
--- a/interfaces/ktst/unit_test_suite.hpp
+++ b/interfaces/ktst/unit_test_suite.hpp
@@ -1,67 +1,13 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
 #ifndef NCBI_NK_UNIT_TEST__SUITE_HPP
 #define NCBI_NK_UNIT_TEST__SUITE_HPP
 
-// turn on INT64_C, UINT64_C etc.
-#define __STDC_CONSTANT_MACROS
-#include <klib/defs.h>
-
-#include <string>
+#include <iostream> // cerr
+#include <sstream>  // ostringstream
 #include <vector>
+#include <csignal>  // sigaction 
 #include <cassert>
-#include <iostream>
-
-// it's generally a bad idea to make the test suite rely upon code under test
-#define ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED 0
 
 ////////////////////////////////////////////////////////////////////////////////
-// these macros are available outside of test cases' code
-
-#define LOG(log_level, msg) \
-    if (log_level >= ncbi::NK::TestEnv::verbosity) std::cerr << msg
-
-#define TEST_MESSAGE(M) \
-{ ncbi::NK::saveLocation(__FILE__,__LINE__); \
-    LOG(ncbi::NK::LogLevel::e_message, M << std::endl); }
-
-#define TEST_CHECKPOINT(M) TEST_MESSAGE(M)
-
-// report failure from a fixture
-#define FAIL( msg_ )     \
-      ncbi::NK::_REPORT_CRITICAL_ERROR_( (msg_), __FILE__, __LINE__, true )
-
-#define GET_TEST_SUITE ncbi::NK::GetTestSuite
-
-////////////////////////////////////////////////////////////////////////////////
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-struct Args;
-#endif
 
 namespace ncbi { namespace NK { 
 
@@ -85,79 +31,196 @@ public:
     };
 };
 
-extern void saveLocation(const char* file, int line);
-extern void _REPORT_CRITICAL_ERROR_(const std::string& msg, const char* file, int line, bool is_msg);
-
 template<class T> const T abs(const T& a) { return a >= 0 ? a : -a; }
 
-class TestCase;
-
 class TestEnv {
 public:
-	typedef rc_t ArgsHandler(int argc, char* argv[]);
-
-    TestEnv(int argc, char* argv[], ArgsHandler *argsHandler = NULL);
-    ~TestEnv(void);
+    TestEnv(int argc, char* argv[]) : catch_system_errors(true) {
+        process_args(argc, argv);
+    }
 
-    static void set_handlers(void);
+    void set_handlers(void) {
+        struct sigaction act;
+        memset(&act, 0, sizeof act);
+        act.sa_handler = SigHandler;
+        act.sa_flags = SA_RESETHAND;
+        int status = sigaction(SIGFPE , &act, NULL);
+        status     = sigaction(SIGILL , &act, NULL);
+        status     = sigaction(SIGSEGV, &act, NULL);
+    }
 
     static std::string lastLocation;
     static LogLevel::E verbosity;
     bool catch_system_errors;
 
-    static int RunProcessTestCase(TestCase&, void(TestCase::*)(), int);
-    static unsigned int Sleep(unsigned int seconds);
-    
-    static const int TEST_CASE_TIMED_OUT=14;
-    static const int TEST_CASE_FAILED=255;
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-    static struct Args* GetArgs() { return args; }
-#endif
-
-    static rc_t UsageSummary(const char* progname);
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-    static rc_t Usage(const Args* args);
-#else
-    static rc_t Usage(const char *progname);
-#endif
-
 private:
-    static void TermHandler();
-
-    static void SigHandler(int sig);
-
-    rc_t process_args(int argc, char* argv[], ArgsHandler* argsHandler);
+    static void SigHandler(int sig) {
+        switch (sig) {
+            case SIGFPE:
+                LOG(ncbi::NK::LogLevel::e_fatal_error,
+                    "fatal error: signal: SIGFPE(Floating point exception)\n");
+                break;
+            case SIGILL:
+                LOG(ncbi::NK::LogLevel::e_fatal_error,
+                    "fatal error: signal: SIGILL(Illegal instruction)\n");
+                break;
+            case SIGSEGV:
+                LOG(ncbi::NK::LogLevel::e_fatal_error,
+                    "fatal error: signal: SIGSEGV(Segmentation fault)\n");
+                break;
+            default:
+                LOG(ncbi::NK::LogLevel::e_fatal_error,
+                    "fatal error: signal: " << sig << "\n");
+                break;
+        }
+        if (!ncbi::NK::TestEnv::lastLocation.empty()) {
+            LOG(ncbi::NK::LogLevel::e_fatal_error,
+                ncbi::NK::TestEnv::lastLocation << ": last checkpoint\n");
+        }
+        LOG(ncbi::NK::LogLevel::e_fatal_error, "Test is aborted\n");
+        exit(1);
+    }
 
-    int argc2;
-    char** argv2;
+    void process_args(int argc, char* argv[]) {
+        bool debug = false;
+        LogLevel::E detected = LogLevel::e_undefined;
+        char arg_catch_system_errors[] = "-catch_system_errors=";
+        char arg_log_level          [] = "-l=";
+        for (int i = 1; i < argc; ++i) {
+            if (strncmp(argv[i], arg_log_level, strlen(arg_log_level))
+                == 0)
+            {
+                char* a = argv[i] + strlen(arg_log_level);
+                if (strcmp(a, "test_suite") == 0)
+                { detected = LogLevel::e_test_suite; }
+                else if (strcmp(a, "all"    ) == 0)
+                { detected = LogLevel::e_all; }
+                else if (strcmp(a, "message") == 0)
+                { detected = LogLevel::e_message; }
+                else if (strcmp(a, "warning") == 0)
+                { detected = LogLevel::e_warning; }
+                else if (strcmp(a, "error"  ) == 0)
+                { detected = LogLevel::e_error; }
+                else if (strcmp(a, "nothing") == 0)
+                { detected = LogLevel::e_nothing; }
+                else if (strcmp(a, "fatal_error") == 0)
+                { detected = LogLevel::e_fatal_error; }
+                if (detected != LogLevel::e_undefined) {
+                    verbosity = detected;
+                    if (debug) {
+                        LOG(LogLevel::e_nothing,
+                            "debug: log_level was set to " << a << std::endl);
+                    }
+                }
+                else {
+                    verbosity = LogLevel::e_error;
+                    if (debug) {
+                        LOG(LogLevel::e_nothing,
+                            "debug: log_level was set to error\n");
+                    }
+                }
+            }
+            else if (strncmp(argv[i], arg_catch_system_errors,
+                strlen(arg_catch_system_errors)) == 0)
+            {
+                char* a = argv[i] + strlen(arg_catch_system_errors);
+                if (strcmp(a, "n") == 0 || strcmp(a, "no") == 0) {
+                    catch_system_errors = false;
+                    if (debug) {
+                        LOG(LogLevel::e_nothing,
+                           "debug: arg_catch_system_errors was set to false\n");
+                    }
+                }
+                else {
+                    if (debug) {
+                        LOG(LogLevel::e_nothing,
+                           "debug: arg_catch_system_errors was set to true\n");
+                    }
+                }
+            }
+            else if (strcmp(argv[i], "-debug") == 0) {
+                debug = true;
+                LOG(LogLevel::e_nothing, "debug: debug was set to true\n");
+            }
+            else if (strcmp(argv[i], "-h") == 0) {
+                if (debug) {
+                    LOG(LogLevel::e_nothing, "debug: help was set to true\n");
+                }
+                std::cerr << "Usage:\n"
+<< argv[0] << " [-debug] [-catch_system_errors=[yes|y|no|n]] "
+"[-l=<value>] [-h]\nwhere:\n"
+"debug - Print recognized command line arguments (should be specified first)\n"
+"catch_system_errors - "
+  "Allows to switch between catching and ignoring system errors (signals)\n"
+"l (log_level) - Specifies log level\n"
+"\tall        - report all log messages\n"
+"\t             including the passed test notification\n"
+"\ttest_suite - show test suite messages\n"
+"\tmessage    - show user messages\n"
+"\twarning    - report warnings issued by user\n"
+"\terror      - report all error conditions (default)\n"
+"\tfatal_error- report user or system originated fatal errors\n"
+"\t             (for example, memory access violation)\n"
+"\tnothing    - do not report any information\n"
+"h (help) - this help message\n"; exit(0);
+            }
+        }
 
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-    static struct Args* args;
-#endif
+        if (verbosity == LogLevel::e_undefined) {
+            verbosity = LogLevel::e_error;
+            if (debug) {
+                LOG(LogLevel::e_nothing,
+                    "debug: log_level was set to error\n");
+            }
+        }
+    }
 };
 
 class TestCase {
 protected:
-    TestCase(const std::string& name);
+    TestCase(const std::string& name) : _name(name), _ec(0) {}
 
 public:
     ncbi::NK::counter_t GetErrorCounter(void) { return _ec; }
     const std::string& GetName(void) const { return _name; }
 
 protected:
-    void ErrorCounterAdd(ncbi::NK::counter_t ec) { _ec += ec; }
-
-    void report_error(const char* msg, const char* file, int line, bool is_msg = false, bool isCritical = false);
+    void report_error(const char* msg, const char* file, int line,
+        bool is_msg = false, bool isCritical = false)
+    {
+        ncbi_NK_saveLocation(file, line);
+        ++_ec;
+        LOG(LogLevel::e_error, file << "(" << line << "): ");
+        if (isCritical) {
+            LOG(LogLevel::e_error, "fatal ");
+        }
+        LOG(LogLevel::e_error, "error in \"" << _name << "\": ");
+        if (is_msg) {
+            LOG(LogLevel::e_error, msg);
+        }
+        else {
+            if (isCritical) {
+                LOG(LogLevel::e_error, "critical ");
+            }
+            LOG(LogLevel::e_error, "check " << msg << " failed");
+        }
+        LOG(LogLevel::e_error, std::endl);
+        if (isCritical)
+        { throw ncbi::NK::execution_aborted(); }
+    }
 
-    void report_passed(const char* msg, const char* file, int line);
+    void report_passed(const char* msg, const char* file, int line) {
+        ncbi_NK_saveLocation(file, line);
+        LOG(LogLevel::e_all, file << "(" << line << "): info: "
+            "check " << msg << " passed" << std::endl);
+    }
 
-    template<class T1>
-    void report_error2(const char* e1, const char* e2, T1 t1, T1 t2,
+    template<class T1, class T2>
+    void report_error2(const char* e1, const char* e2, T1 t1, T2 t2,
         const char* file, int line, const char* eq, const char* ne,
         bool isCritical = false)
     {
-        ncbi::NK::saveLocation(file, line);
+        ncbi_NK_saveLocation(file, line);
         ++_ec;
         LOG(LogLevel::e_error, file << "(" << line << "): ");
         if (isCritical) {
@@ -173,29 +236,13 @@ protected:
         if (isCritical)
         { throw ncbi::NK::execution_aborted(); }
     }
-    // pointers reported as ints (otherwise << may crash if given an invalid pointer)
-    template<class T1>
-    void report_error2(const char* e1, const char* e2, const T1* t1, const T1* t2,
-        const char* file, int line, const char* eq, const char* ne,
-        bool isCritical = false)
-    {
-        report_error2(e1, e2, (uint64_t)t1, (uint64_t)t2,file, line, eq, ne,isCritical);
-    }
-    template<class T1>
-    void report_error2(const char* e1, const char* e2, T1* t1, T1* t2,
-        const char* file, int line, const char* eq, const char* ne,
-        bool isCritical = false)
-    {
-        report_error2(e1, e2, (uint64_t)t1, (uint64_t)t2,file, line, eq, ne,isCritical);
-    }
-
 
     template<class T1, class T2>
     void report_passed2(const char* e1, const char* e2,
         const T1& t1, const T2& t2,
         const char* file, int line, const char* eq, const char* ne)
     {
-        ncbi::NK::saveLocation(file, line);
+        ncbi_NK_saveLocation(file, line);
         LOG(LogLevel::e_all, file << "(" << line << "): info: "
             "check " << e1 << " " << eq << " " << e2 << " passed" << std::endl);
     }
@@ -205,7 +252,7 @@ protected:
         const T1& t1, const T2& t2, const T3& tolerance,
         const char* file, int line)
     {
-        ncbi::NK::saveLocation(file, line);
+        ncbi_NK_saveLocation(file, line);
         LOG(LogLevel::e_all, file << "(" << line << "): "
             "info: difference between "
             << e1 << "{" << t1 << "} and " << e2 << "{" << t2 << "} "
@@ -217,7 +264,7 @@ protected:
         const T1& t1, const T2& t2, const T3& tolerance, const T4& diff,
         const char* file, int line, bool isCritical = false)
     {
-        ncbi::NK::saveLocation(file, line);
+        ncbi_NK_saveLocation(file, line);
         ++_ec;
         LOG(LogLevel::e_error, file << "(" << line << "): ");
         if (isCritical) {
@@ -231,164 +278,15 @@ protected:
         { throw ncbi::NK::execution_aborted(); }
     }
 
-    void _REPORT_CRITICAL_ERROR_(const std::string& msg, const char* file, int line, bool is_msg = false);
-
-#define CHECK(exp)       \
-  ( (exp)                      \
-      ? report_passed((#exp), __FILE__, __LINE__) \
-      : report_error ((#exp), __FILE__, __LINE__) )
-
-/* TODO #define CHECK_MESSAGE(exp, M)       \
-  std::ostringstream s, s << M, \
-  ( (exp)                      \
-      ? report_passed(s.str(),__FILE__,__LINE__) \
-      : report_error (s.str(),__FILE__,__LINE__) )*/
-
-#define REQUIRE(exp)     \
-  ( (exp)                      \
-      ? report_passed        ((#exp), __FILE__, __LINE__) \
-      : _REPORT_CRITICAL_ERROR_((#exp), __FILE__, __LINE__) )
-
-#define CHECK_CLOSE(left, right, tolerance) \
-( (ncbi::NK::abs((left) - (right)) < (tolerance)) \
-?report_passed_close(#left,#right,(left),(right),(tolerance),__FILE__,__LINE__)\
-: report_error_close(#left,#right,(left),(right),(tolerance), \
-    ncbi::NK::abs((left) - (right)), __FILE__, __LINE__) )
-
-#define REQUIRE_CLOSE(left, right, tolerance) \
-( (ncbi::NK::abs((left) - (right)) < (tolerance)) \
-?report_passed_close(#left,#right,(left),(right),(tolerance),__FILE__,__LINE__)\
-: report_error_close(#left,#right,(left),(right),(tolerance), \
-    ncbi::NK::abs((left) - (right)), __FILE__, __LINE__, true) )
-
-    template<class T>
-    void AssertEqual(const T& e1, const T& e2, const char* e1str, const char* e2str, const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 == e2)
-        {
-            report_passed2(e1str, e2str, e1, e2, file, line, "==", "!=");
-        }
-        else
-        {
-            report_error2 (e1str, e2str, e1, e2, file, line, "==", "!=", critical);
-        }
-    }
-#define CHECK_EQUAL(e1, e2)     AssertEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, false)
-#define CHECK_EQ(e1, e2)        CHECK_EQUAL(e1,e2)
-#define REQUIRE_EQUAL(e1, e2)   AssertEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, true)
-#define REQUIRE_EQ(e1, e2)      REQUIRE_EQUAL(e1,e2)
-
-    template<class T>
-    void AssertNotEqual(const T& e1, const T& e2, const char* e1str, const char* e2str, const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 != e2)
-        {
-            report_passed2(e1str, e2str, e1, e2, file, line, "!=", "==");
-        }
-        else
-        {
-            report_error2 (e1str, e2str, e1, e2, file, line, "!=", "==", critical);
-        }
-    }
-#define CHECK_NE(e1, e2)     AssertNotEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, false)
-#define REQUIRE_NE(e1, e2)   AssertNotEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, true)
-
-    template<class T>
-    void AssertGreaterOrEqual(const T& e1, const T& e2, const char* e1str, const char* e2str, const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 >= e2)
-        {
-            report_passed2(e1str, e2str, e1, e2, file, line, ">=", "<");
-        }
-        else
-        {
-            report_error2 (e1str, e2str, e1, e2, file, line, ">=", "<", critical);
-        }
-    }
-#define CHECK_GE(e1, e2)    AssertGreaterOrEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, false)
-#define REQUIRE_GE(e1, e2)  AssertGreaterOrEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, true)
-
-    template<class T>
-    void AssertGreater(const T& e1, const T& e2, const char* e1str, const char* e2str, const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 > e2)
-        {
-            report_passed2(e1str, e2str, e1, e2, file, line, ">", "<=");
-        }
-        else
-        {
-            report_error2 (e1str, e2str, e1, e2, file, line, ">", "<=", critical);
-        }
-    }
-#define CHECK_GT(e1, e2)    AssertGreater((e1),(e2),#e1,#e2,__FILE__,__LINE__, false)
-#define REQUIRE_GT(e1, e2)  AssertGreater((e1),(e2),#e1,#e2,__FILE__,__LINE__, true)
-
-    template<class T>
-    void AssertLessOrEqual(const T& e1, const T& e2, const char* e1str, const char* e2str, const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 <= e2)
-        {
-            report_passed2(e1str, e2str, e1, e2, file, line, "<=", ">");
-        }
-        else
-        {
-            report_error2 (e1str, e2str, e1, e2, file, line, "<=", ">", critical);
-        }
-    }
-#define CHECK_LE(e1, e2)    AssertLessOrEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, false)
-#define REQUIRE_LE(e1, e2)  AssertLessOrEqual((e1),(e2),#e1,#e2,__FILE__,__LINE__, true)
-
-    template<class T>
-    void AssertLess(const T& e1, const T& e2, const char* e1str, const char* e2str, const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 < e2)
-        {
-            report_passed2(e1str, e2str, e1, e2, file, line, "<", ">=");
-        }
-        else
-        {
-            report_error2 (e1str, e2str, e1, e2, file, line, "<", ">=", critical);
-        }
+    void ncbi_NK_saveLocation(const char* file, int line) {
+        std::ostringstream s;
+        s << file << "(" << line << ")";
+        ncbi::NK::TestEnv::lastLocation = s.str();
     }
-#define CHECK_LT(e1, e2)    AssertLess((e1),(e2),#e1,#e2,__FILE__,__LINE__, false)
-#define REQUIRE_LT(e1, e2)  AssertLess((e1),(e2),#e1,#e2,__FILE__,__LINE__, true)
-
-    void report_rc(rc_t rc, const char* callStr, const char* file, int line, int successExpected, bool isCritical = false);
 
-#define CHECK_RC(exp)   report_rc((exp), #exp, __FILE__, __LINE__, true, false)
-#define REQUIRE_RC(exp) report_rc((exp), #exp, __FILE__, __LINE__, true, true)
-#define CHECK_RC_FAIL(exp)   report_rc((exp), #exp, __FILE__, __LINE__, false, false)
-#define REQUIRE_RC_FAIL(exp) report_rc((exp), #exp, __FILE__, __LINE__, false, true)
-
-    template<class T>
-    void AssertNull(const T* e1, const char* e1str,const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 == 0)
-        {
-            report_passed2(e1str, "NULL", e1, (const T*)0, file, line, "==", "!=");
-        }
-        else
-        {
-            report_error2 (e1str, "NULL", e1, (const T*)0, file, line, "==", "!=", critical);
-        }
-    }
-#define CHECK_NULL(e1)   AssertNull((e1), #e1, __FILE__,__LINE__, false)
-#define REQUIRE_NULL(e1) AssertNull((e1), #e1, __FILE__,__LINE__, true)
-
-    template<class T>
-    void AssertNotNull(const T* e1, const char* e1str,const char* file, unsigned int line, bool critical=false)
-    {
-        if (e1 != 0)
-        {
-            report_passed2(e1str, "NULL", e1, (const T*)0, file, line, "!=", "==");
-        }
-        else
-        {
-            report_error2 (e1str, "NULL", e1, (const T*)0, file, line, "!=", "==", critical);
-        }
-    }
-#define CHECK_NOT_NULL(e1)   AssertNotNull((e1), #e1, __FILE__,__LINE__, false)
-#define REQUIRE_NOT_NULL(e1) AssertNotNull((e1), #e1, __FILE__,__LINE__, true)
+    void _REPORT_CRITICAL_ERROR_(const std::string& msg,
+        const char* file, int line, bool is_msg = false)
+    { report_error( msg.c_str(), file, line, is_msg, true ); }
 
 private:
     const std::string _name;
@@ -415,21 +313,53 @@ class TestRunner {
     typedef T::const_iterator TCI;
 
 public:
-    TestRunner();
+    TestRunner() : argc(0), argv(NULL) {}
 
     int    argc;
     char** argv;
 
-    void ReportTestNumber(void);
-    void SetArgs(int argc, char* argv[]);
-    void Add(ncbi::NK::TestInvoker* t);
-    counter_t Run(void* globalFixtute) const;
+    void ReportTestNumber(void) {
+        T::size_type sz = _cases.size();
+        if (sz == 1) {
+           LOG(LogLevel::e_fatal_error, "Running " << sz << " test case...\n");
+        } else if (sz > 1) {
+           LOG(LogLevel::e_fatal_error, "Running " << sz << " test cases...\n");
+        }
+    }
+    void SetArgs(int argc, char* argv[]) {
+        this->argc = argc;
+        this->argv = argv;
+    }
+    void Add(ncbi::NK::TestInvoker* t) {
+        if (t) {
+            _cases.push_back(t);
+        }
+    }
+    ncbi::NK::counter_t Run(void* globalFixtute) const {
+        ncbi::NK::counter_t ec = 0;
+        for (TCI it = _cases.begin(); it != _cases.end(); ++it) {
+           ncbi::NK::TestInvoker* c = *it;
+           try {
+               LOG(LogLevel::e_test_suite,
+                   "Entering test case \"" << c->GetName() << "\"\n");
+               c->Run(globalFixtute);
+               LOG(LogLevel::e_test_suite,
+                   "Leaving test case \"" << c->GetName() << "\"\n");
+           } catch (const ncbi::NK::execution_aborted&) {
+               LOG(LogLevel::e_test_suite,
+                   "Leaving test case \"" << c->GetName() << "\"\n");
+           }
+           ec += c->GetErrorCounter();
+        }
+        return ec;
+    }
 
 private:
     T _cases;
 };
 
-extern ncbi::NK::TestRunner* GetTestSuite();
+static ncbi::NK::TestRunner* GetTestSuite(void)
+{ static ncbi::NK::TestRunner* t = new ncbi::NK::TestRunner; return t; }
 
 template<class TFixture>
 ncbi::NK::counter_t Main(int argc, char* argv[],
@@ -447,16 +377,7 @@ ncbi::NK::counter_t Main(int argc, char* argv[],
         ec = t->Run(&globalFixtute);
         LOG(ncbi::NK::LogLevel::e_test_suite,
             "Leaving test suite \"" << suite_name << "\"\n";)
-    } 
-    catch (std::exception& ex) 
-    { 
-        LOG(ncbi::NK::LogLevel::e_nothing, std::string("*** Exception caught: ") + ex.what());
-        ++ec; 
-    }
-    catch (...) 
-    { 
-        ++ec; 
-    }
+    } catch (const ncbi::NK::execution_aborted& e) { ++ec; }
     switch (ec) {
         case 0:
           LOG(ncbi::NK::LogLevel::e_nothing, "\n*** No errors detected\n");
@@ -475,5 +396,22 @@ ncbi::NK::counter_t Main(int argc, char* argv[],
 
 } } // namespace ncbi::NK
 
+inline void ncbi_NK_saveLocation(const char* file, int line) {}
+inline void _REPORT_CRITICAL_ERROR_(const std::string& msg,
+                                    const char* file, int line, bool is_msg)
+{
+    LOG(ncbi::NK::LogLevel::e_error, file << "(" << line << "): ");
+    LOG(ncbi::NK::LogLevel::e_error, "fatal ");
+    LOG(ncbi::NK::LogLevel::e_error, "error in fixture: ");
+    if (is_msg) {
+        LOG(ncbi::NK::LogLevel::e_error, msg);
+    }
+    else {
+        LOG(ncbi::NK::LogLevel::e_error, "critical ");
+        LOG(ncbi::NK::LogLevel::e_error, "check " << msg << " failed");
+    }
+    LOG(ncbi::NK::LogLevel::e_error, std::endl);
+    throw ncbi::NK::execution_aborted();
+ }
 
 #endif// NCBI_NK_UNIT_TEST__SUITE_HPP
diff --git a/interfaces/loader/alignment-writer.h b/interfaces/loader/alignment-writer.h
deleted file mode 100644
index 7ad3613..0000000
--- a/interfaces/loader/alignment-writer.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_ALIGNMENT_WRITER_H_
-#define BAM_LOAD_ALIGNMENT_WRITER_H_ 1
-
-#include <klib/text.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-
-#include <insdc/insdc.h>
-
-#include <align/writer-alignment.h>
-
-typedef struct AlignmentWriter AlignmentWriter;
-typedef struct AlignmentRecord AlignmentRecord;
-
-struct AlignmentRecord {
-    TableWriterAlgnData data;
-    int64_t alignId;
-    bool isPrimary;
-
-    INSDC_coord_one read_id;
-    int64_t ref_id;
-    INSDC_coord_zero ref_start;
-    uint64_t global_ref_start;
-    bool ref_orientation;
-    uint32_t mapq;
-    uint64_t tmp_key_id;
-
-    INSDC_coord_zero read_start;
-    INSDC_coord_len read_len;
-
-    bool mate_ref_orientation;
-    int64_t mate_ref_id;
-    INSDC_coord_zero mate_ref_pos;
-    int64_t mate_align_id;
-    int32_t template_len;
-};
-
-#define AR_REF_ID(X) ((X).ref_id)
-#define AR_REF_START(X) ((X).global_ref_start)
-#define AR_REF_LEN(X) ((X).ref_len)
-#define AR_REF_ORIENT(X) ((X).ref_orientation)
-#define AR_READNO(X) ((X).read_id)
-#define AR_MAPQ(X) ((X).mapq)
-#define AR_KEY(X) ((X).tmp_key_id)
-
-#define AR_BASECOUNT(X) ((X).data.has_mismatch.elements)
-#define AR_HAS_MISMATCH(X) ((bool *)((X).data.has_mismatch.buffer))
-#define AR_HAS_OFFSET(X) ((bool *)((X).data.has_ref_offset.buffer))
-
-#define AR_NUM_MISMATCH(X) ((X).data.mismatch.elements)
-#define AR_MISMATCH(X) ((char *)((X).data.mismatch.buffer))
-
-#define AR_NUM_OFFSET(X) ((X).data.ref_offset.elements)
-#define AR_OFFSET(X) ((INSDC_coord_zero *)((X).data.ref_offset.buffer))
-
-AlignmentWriter *AlignmentMake(VDatabase *db);
-
-rc_t AlignmentWriteRecord(AlignmentWriter * const self, AlignmentRecord * const data, bool expectUnsorted);
-
-rc_t AlignmentStartUpdatingSpotIds(AlignmentWriter * const self);
-
-rc_t AlignmentGetSpotKey(AlignmentWriter * const self, uint64_t *keyId);
-
-rc_t AlignmentWriteSpotId(AlignmentWriter * const self, int64_t const spotId);
-
-rc_t AlignmentWhack(AlignmentWriter * const self, bool const commit);
-
-void AlignmentRecordInit(AlignmentRecord *self, void *buffer, unsigned readlen, char **endp, bool expectUnsorted);
-
-#endif
diff --git a/interfaces/loader/common-reader-priv.h b/interfaces/loader/common-reader-priv.h
deleted file mode 100644
index 26a8e19..0000000
--- a/interfaces/loader/common-reader-priv.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_common_reader_priv_
-#define _h_common_reader_priv_
-
-#include <loader/common-reader.h>
-
-#include <klib/refcount.h>
-#include <klib/text.h>
-#include <klib/data-buffer.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*TODO: add module rcLoader to rc.h? */
-#define RC_MODULE rcAlign
-
-/*--------------------------------------------------------------------------
- ReaderFile
- */
-#ifndef READERFILE_IMPL
-    #define READERFILE_IMPL struct ReaderFile
-#endif
-
-typedef struct ReaderFile_vt_v1_struct {
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t ( *destroy   )                 ( READERFILE_IMPL* self );
-    rc_t ( *getRecord )                 ( const READERFILE_IMPL *self, const Record** result );
-    float ( *getProportionalPosition )  ( const READERFILE_IMPL *self );
-    rc_t ( *getReferenceInfo )          ( const READERFILE_IMPL *self, const ReferenceInfo** result );
-    /* end minor version == 0 */
-
-} ReaderFile_vt_v1;
-
-typedef union ReaderFile_vt {
-    ReaderFile_vt_v1* v1;
-} ReaderFile_vt;
-
-struct ReaderFile
-{
-    ReaderFile_vt vt;
-    KRefcount refcount;
-    char* pathname;
-};
-
-/* Init
- *  polymorphic parent constructor
- */
-rc_t CC ReaderFileInit ( READERFILE_IMPL *self );
-
-/* Whack
- *  destructor
- */
-rc_t CC ReaderFileWhack ( ReaderFile *self );
-
-/*--------------------------------------------------------------------------
- Record
- */
-#ifndef RECORD_IMPL
-    #define RECORD_IMPL struct Record
-#endif
-
-typedef struct Record_vt_v1_struct {
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t ( *addRef  ) ( const RECORD_IMPL* self );
-    rc_t ( *release ) ( const RECORD_IMPL* self );
-    rc_t ( *getSequence  ) ( const RECORD_IMPL *self, const Sequence** result );
-    rc_t ( *getAlignment ) ( const RECORD_IMPL *self, const Alignment** result );
-    rc_t ( *getRejected  ) ( const RECORD_IMPL *self, const Rejected** result );
-    /* end minor version == 0 */
-
-} Record_vt_v1;
-
-typedef union Record_vt {
-    Record_vt_v1* v1;
-} Record_vt;
-
-struct Record
-{
-    Record_vt vt;
-};
-
-/*--------------------------------------------------------------------------
- Sequence
- */
-#ifndef SEQUENCE_IMPL
-    #define SEQUENCE_IMPL struct Sequence
-#endif
-
-typedef struct Sequence_vt_v1_struct {
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t ( *addRef  ) ( const SEQUENCE_IMPL* self );
-    rc_t ( *release ) ( const SEQUENCE_IMPL* self );
-
-    rc_t ( *getReadLength   )   ( const SEQUENCE_IMPL *self, uint32_t *length );
-    rc_t ( *getRead         )   ( const SEQUENCE_IMPL *self, char *sequence );
-    rc_t ( *getRead2        )   ( const SEQUENCE_IMPL *self, char *sequence, uint32_t start, uint32_t stop );
-    rc_t ( *getQuality      )   ( const SEQUENCE_IMPL *self, const int8_t **quality, uint8_t *offset, int *qualType );
-    rc_t ( *getSpotGroup    )   ( const SEQUENCE_IMPL *self, const char **name, size_t *length );
-    rc_t ( *getSpotName     )   ( const SEQUENCE_IMPL *self, const char **name, size_t *length );
-    bool ( *isColorSpace    )   ( const SEQUENCE_IMPL *self );
-    rc_t ( *getCSKey        )   ( const SEQUENCE_IMPL *self, char cskey[1] );
-    rc_t ( *getCSReadLength )   ( const SEQUENCE_IMPL *self, uint32_t *length );
-    rc_t ( *getCSRead       )   ( const SEQUENCE_IMPL *self, char *sequence );
-    rc_t ( *getCSQuality    )   ( const SEQUENCE_IMPL *self, const int8_t **quality, uint8_t *offset, int *qualType );
-                          
-    bool ( *wasPaired     )     ( const SEQUENCE_IMPL *self );
-    int  ( *orientationSelf )   ( const SEQUENCE_IMPL *self );
-    int  ( *orientationMate )   ( const SEQUENCE_IMPL *self );
-    bool ( *isFirst       )     ( const SEQUENCE_IMPL *self );
-    bool ( *isSecond      )     ( const SEQUENCE_IMPL *self );
-    bool ( *isDuplicate   )     ( const SEQUENCE_IMPL *self ); 
-    bool ( *isLowQuality   )    ( const SEQUENCE_IMPL *self ); 
-
-    rc_t ( *getTI ) ( const SEQUENCE_IMPL *self, uint64_t *ti );
-    
-    /* end minor version == 0 */
-
-} Sequence_vt_v1;
-
-typedef union Sequence_vt {
-    Sequence_vt_v1* v1;
-} Sequence_vt;
-
-struct Sequence
-{
-    Sequence_vt vt;
-};
-
-/*--------------------------------------------------------------------------
- Alignment
- */
-#ifndef ALIGNMENT_IMPL
-    #define ALIGNMENT_IMPL struct Alignment
-#endif
-
-typedef struct Alignment_vt_v1_struct {
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    
-    rc_t ( *addRef  ) ( const ALIGNMENT_IMPL* self );
-    rc_t ( *release ) ( const ALIGNMENT_IMPL* self );
-    
-    rc_t ( *getRefSeqId         )   ( const ALIGNMENT_IMPL *self, int32_t *refSeqId );
-    rc_t ( *getMateRefSeqId     )   ( const ALIGNMENT_IMPL *self, int32_t *refSeqId );
-    rc_t ( *getPosition         )   ( const ALIGNMENT_IMPL *self, int64_t *pos );
-    rc_t ( *getMatePosition     )   ( const ALIGNMENT_IMPL *self, int64_t *pos );
-    rc_t ( *getMapQuality       )   ( const ALIGNMENT_IMPL *self, uint8_t *qual );
-    rc_t ( *getAlignmentDetail  )   ( const ALIGNMENT_IMPL *self, AlignmentDetail *rslt, uint32_t count, uint32_t *actual, int32_t *firstMatch, int32_t *lastMatch );
-    rc_t ( *getAlignOpCount     )   ( const ALIGNMENT_IMPL *self, uint32_t *n );
-    rc_t ( *getInsertSize       )   ( const ALIGNMENT_IMPL *self, int64_t *size );
-    rc_t ( *getCG               )   ( const ALIGNMENT_IMPL *self, const CGData** result );
-    rc_t ( *getBAMCigar         )   ( const ALIGNMENT_IMPL *self, uint32_t const **rslt, uint32_t *length );
-    
-    bool ( *isSecondary ) ( const ALIGNMENT_IMPL *self ); 
-    
-    /* end minor version == 0 */
-
-} Alignment_vt_v1;
-
-typedef union Alignment_vt {
-    Alignment_vt_v1* v1;
-} Alignment_vt;
-
-struct Alignment
-{
-    Alignment_vt vt;
-};
-
-/*--------------------------------------------------------------------------
- CGData
- */
-#ifndef CGDATA_IMPL
-    #define CGDATA_IMPL struct CGData
-#endif
-
-typedef struct CGData_vt_v1_struct {
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    
-    rc_t ( *addRef  ) ( const CGDATA_IMPL* self );
-    rc_t ( *release ) ( const CGDATA_IMPL* self );
-
-    rc_t ( * getSeqQual )       ( const CGDATA_IMPL* self, char sequence[/* 35 */], uint8_t quality[/* 35 */] );
-    rc_t ( * getCigar )         ( const CGDATA_IMPL* self, uint32_t *cigar, uint32_t cig_max, uint32_t *cig_act );
-    rc_t ( * getAlignGroup )    ( const CGDATA_IMPL* self, char buffer[], size_t max_size, size_t *act_size);
-    /* end minor version == 0 */
-
-} CGData_vt_v1;
-
-typedef union CGData_vt {
-    CGData_vt_v1* v1;
-} CGData_vt;
-
-struct CGData
-{
-    CGData_vt vt;
-};
-
-/*--------------------------------------------------------------------------
- Rejected
- */
-
-struct Rejected {
-    KRefcount   refcount;
-
-    String      source;
-    const char* message;
-    uint64_t    line;
-    uint64_t    column;
-    bool        fatal;
-};
-
-rc_t CC RejectedInit ( Rejected *self );
-
-/*--------------------------------------------------------------------------
- ReferenceInfo
- */
-
-#ifndef REFERENCEINFO_IMPL
-    #define REFERENCEINFO_IMPL struct ReferenceInfo
-#endif
-
-typedef struct ReferenceInfo_vt_v1_struct {
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    
-    rc_t ( *addRef  ) ( const REFERENCEINFO_IMPL* self );
-    rc_t ( *release ) ( const REFERENCEINFO_IMPL* self );
-
-    rc_t ( *getRefSeqCount )        ( const REFERENCEINFO_IMPL* self, uint32_t* count );
-    rc_t ( *getRefSeq )             ( const REFERENCEINFO_IMPL* self, uint32_t n, ReferenceSequence* result );
-    rc_t ( *getReadGroupCount )     ( const REFERENCEINFO_IMPL* self, uint32_t* count );
-    rc_t ( *getReadGroup )          ( const REFERENCEINFO_IMPL* self, unsigned n, ReadGroup* result );
-    rc_t ( *getReadGroupByName )    ( const REFERENCEINFO_IMPL* self, const char* name, ReadGroup* result );
-
-    /* end minor version == 0 */
-
-} ReferenceInfo_vt_v1;
-
-typedef union ReferenceInfo_vt {
-    ReferenceInfo_vt_v1* v1;
-} ReferenceInfo_vt;
-
-struct ReferenceInfo
-{
-    ReferenceInfo_vt vt;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_common_reader_priv_ */
diff --git a/interfaces/loader/common-reader.h b/interfaces/loader/common-reader.h
deleted file mode 100644
index b6cd796..0000000
--- a/interfaces/loader/common-reader.h
+++ /dev/null
@@ -1,486 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_common_reader_
-#define _h_common_reader_
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-typedef struct ReaderFile           ReaderFile;
-typedef struct Record               Record;
-typedef struct Sequence             Sequence;
-typedef struct Alignment            Alignment;
-typedef struct CGData               CGData;  
-typedef struct Rejected             Rejected;
-typedef struct ReferenceInfo        ReferenceInfo;
-
-/*--------------------------------------------------------------------------
- ReaderFile
- */
-rc_t CC ReaderFileAddRef ( const ReaderFile *self );
-rc_t CC ReaderFileRelease ( const ReaderFile *self );
-
-/* GetRecord
- * Parses the next record from the source. At the end of the file, rc == 0, *result == 0.
- */
-rc_t CC ReaderFileGetRecord( const ReaderFile *self, const Record** result);
-
-/* GetPathname
- * Returns input's pathname, if applicable.
- */
-const char* CC ReaderFileGetPathname ( const ReaderFile *self );
-
-/* GetProportionalPosition
- *  get the aproximate proportional position in the input file
- *  this is intended to be useful for computing progress
- *
- * NB - does not return rc_t
- */
-float CC ReaderFileGetProportionalPosition ( const ReaderFile *self );
-
-/* GetReferenceInfo
- *
- */
-rc_t CC ReaderFileGetReferenceInfo ( const ReaderFile *self, const ReferenceInfo** result );
-
-/*--------------------------------------------------------------------------
- Record
- */
-
-/* AddRef
- * Release
- */
-rc_t CC RecordAddRef ( const Record *self );
-rc_t CC RecordRelease ( const Record *self );
-
-rc_t CC RecordGetRejected ( const Record *self, const Rejected** result);
-rc_t CC RecordGetSequence ( const Record *self, const Sequence** result);
-rc_t CC RecordGetAlignment( const Record *self, const Alignment** result);
-
-/*--------------------------------------------------------------------------
- Sequence
- */
-
-/* AddRef
- * Release
- */
-rc_t CC SequenceAddRef ( const Sequence *self );
-rc_t CC SequenceRelease ( const Sequence *self );
-
-/* GetReadLength
- *  get the sequence length
- *  i.e. the number of elements of both sequence and quality
- *
- *  "length" [ OUT ] - length in bases of query sequence and quality
- */
-rc_t CC SequenceGetReadLength ( const Sequence *self, uint32_t *length );
-
-/* GetRead
- *  get the sequence data [0..ReadLength)
- *  caller provides buffer of ReadLength bytes
- *
- *  "sequence" [ OUT ] - pointer to a buffer of at least ReadLength bytes
- */
-rc_t CC SequenceGetRead( const Sequence *self, char *sequence );
-
-/* GetRead2
- *  get the sequence data [0..ReadLength)
- *  caller provides buffer of ReadLength bytes
- *
- *  "sequence" [ OUT ] - pointer to a buffer of at least ReadLength bytes
- *
- *  "start" [ IN ] and "stop" [ IN ] - zero-based coordinates, half-closed interval; both have to be within ReadLength
- */
-rc_t CC SequenceGetRead2 ( const Sequence *self, char *sequence, uint32_t start, uint32_t stop);
-
-enum QualityType {
-    QT_Unknown = 0,
-    QT_Phred,
-    QT_LogOdds
-};
-/* GetQuality
- *  get the raw quality data [0..ReadLength) from OQ if possible else from QUAL
- *  values are unsigned with 0xFF == missing
- *
- *  "quality" [ OUT ] - return param for quality sequence
- *   held internally, validity is guaranteed for the life of the sequence
- *  
- *  "offset" [ OUT ] - the zero point of quality (33, 64; 0 for binary)
- *  
- *  "qualType" [ OUT ] - quality type (phred, log-odds, unknown)
- */
-rc_t CC SequenceGetQuality(const Sequence *self, const int8_t **quality, uint8_t *offset, int *qualType);
-
-/* SequenceGetSpotGroup
- *  get the name of the spot group (e.g. accession)
- *
- *  "name" [ OUT ] - return param for group name
- *   held internally, validity is guaranteed for the life of the sequence
- *
- *  "length" [ OUT ] - return the number of bytes in "name"
- */
-rc_t CC SequenceGetSpotGroup ( const Sequence *self, const char **name, size_t *length );
-
-
-/* SequenceGetSpotName
- *  get the read name and length in bytes
- *
- *  "name" [ OUT ] - return param for read group name
- *   held internally, validity is guaranteed for the life of the sequence
- *
- *  "length" [ OUT ] - return the number of bytes in "name"
- */
-rc_t CC SequenceGetSpotName ( const Sequence *self, const char **name, size_t *length );
-
-/* IsColorSpace
- *  Does the sequence have colorspace info
- */
-bool CC SequenceIsColorSpace ( const Sequence *self );
-
-/* GetCSKey
- *  get the colorspace key
- *
- *  "cskey" [ OUT ] - return param 
- *
- *  return: if no colorspace info, RC is 0 but the value of cskey is undefined
- */
-rc_t CC SequenceGetCSKey ( const Sequence *self, char cskey[1] );
-
-/* GetCSReadLength
- *  get the color space sequence length
- *  i.e. the number of elements of both sequence and quality
- *
- *  "length" [ OUT ] - length in bases of query sequence and quality
- */
-rc_t CC SequenceGetCSReadLength ( const Sequence *self, uint32_t *length );
-
-/* GetCSRead
- *  get the color space sequence data [0..ReadLength)
- *  caller provides buffer of ReadLength bytes
- *
- *  "sequence" [ OUT ] - pointer to a buffer of at least ReadLength bytes
- */
-rc_t CC SequenceGetCSRead( const Sequence *self, char *sequence );
-
-/* GetCSQuality
- *  get the color spaqce sequence's raw quality data [0..ReadLength) from OQ if possible else from QUAL
- *  values are unsigned with 0xFF == missing
- *
- *  "quality" [ OUT ] - return param for quality sequence
- *   held internally, validity is guaranteed for the life of the sequence
- *  
- *  "offset" [ OUT ] - the zero point of quality (33, 64; 0 for binary)
- *  
- *  "qualType" [ OUT ] - quality type (phred, log-odds, unknown)
- */
-rc_t CC SequenceGetCSQuality(const Sequence *self, const int8_t **quality, uint8_t *offset, int *qualType);
-
-
-/* WasPaired
- * true if read number is present and not 0 
- */ 
-bool CC SequenceWasPaired     ( const Sequence *self ); 
-
-enum ReadOrientation {
-    ReadOrientationUnknown,
-    ReadOrientationForward,
-    ReadOrientationReverse
-};
-/* SequenceGetOrientationSelf
- */ 
-int CC SequenceGetOrientationSelf( const Sequence *self ); 
-/* SequenceGetOrientationMate
- */ 
-int CC SequenceGetOrientationMate( const Sequence *self ); 
-
-/* IsFirst
- * fastq: read number is present and equal to 1
- */ 
-bool CC SequenceIsFirst       ( const Sequence *self ); 
-/* IsSecond
- * fastq: read number is present and equal to 2
- */
-bool CC SequenceIsSecond      ( const Sequence *self ); 
-/* IsDuplicate
- * 
- */
-bool CC SequenceIsDuplicate( const Sequence *self ); 
-/* IsLowQuality
- * 
- */
-bool CC SequenceIsLowQuality( const Sequence *self ); 
-
-/*  RecordGetTI
- *
- */
-rc_t SequenceGetTI(Sequence const *self, uint64_t *ti);
-
-/*--------------------------------------------------------------------------
- Alignment
- */
-
-/* AddRef
- * Release
- */
-rc_t CC AlignmentAddRef ( const Alignment *self );
-rc_t CC AlignmentRelease ( const Alignment *self );
-
-/* GetRefSeqId
- *  get id of reference sequence
- *  pass result into BAMFileGetRefSeqById to get the Reference Sequence record
- *
- *  "refSeqId" [ OUT ] - zero-based id of reference sequence
- *   returns -1 if set is invalid within BAM ( rc may be zero )
- */
-rc_t CC AlignmentGetRefSeqId ( const Alignment *self, int32_t *refSeqId );
-
-/* GetMateRefSeqId
- *  get id of mate's reference sequence
- *  pass result into BAMFileGetRefSeqById to get the Reference Sequence record
- *
- *  "refSeqId" [ OUT ] - zero-based id of reference sequence
- *   returns -1 if invalid
- */
-rc_t CC AlignmentGetMateRefSeqId ( const Alignment *self, int32_t *refSeqId );
-
-/* GetPosition
- *  get the aligned position on the ref. seq.
- *
- *  "n" [ IN ] - zero-based position index for cases of multiple alignments
- *
- *  "pos" [ OUT ] - zero-based position on reference sequence
- *  returns -1 if invalid
- */
-rc_t CC AlignmentGetPosition ( const Alignment *self, int64_t *pos );
-
-/* GetMatePosition
- *  starting coordinate of mate's alignment on ref. seq.
- *
- *  "pos" [ OUT ] - zero-based position on reference sequence
- *  returns -1 if invalid
- */
-rc_t CC AlignmentGetMatePosition ( const Alignment *self, int64_t *pos );
-
-/* GetMapQuality
- *  return the quality score of mapping
- *
- *  "qual" [ OUT ] - return param for quality score
- */
-rc_t CC AlignmentGetMapQuality ( const Alignment *self, uint8_t *qual );
-
-/* GetAlignmentDetail
- *  get the alignment details
- *
- *  "rslt" [ OUT, NULL OKAY ] and "count" [ IN ] - array to hold detail records
- *
- *  "actual" [ OUT, NULL OKAY ] - number of elements written to "rslt"
- *   required if "rslt" is NULL
- *
- *  "firstMatch" [ OUT, NULL OKAY ] - zero-based index into "rslt" of the first match to the refSeq
- *   or < 0 if invalid
- *
- *  "lastMatch" [ OUT, NULL OKAY ] - zero-based index into "rslt" of the last match to the refSeq
- *   or < 0 if invalid
- */
-typedef uint32_t AlignOpType;
-enum AlignOpTypes
-{
-    align_Match    = 'M', /* 0 */
-    align_Insert   = 'I', /* 1 */
-    align_Delete   = 'D', /* 2 */
-    align_Skip     = 'N', /* 3 */
-    align_SoftClip = 'S', /* 4 */
-    align_HardClip = 'H', /* 5 */
-    align_Padded   = 'P', /* 6 */
-    align_Equal    = '=', /* 7 */
-    align_NotEqual = 'X', /* 8 */
-    align_Overlap  = 'B' /* Complete Genomics extension */
-};
-
-typedef struct AlignmentDetail AlignmentDetail;
-struct AlignmentDetail
-{
-    int64_t refSeq_pos; /* position on refSeq where this alignment region starts or -1 if NA */
-    int32_t read_pos;   /* position on read where this alignment region starts or -1 if NA */
-    uint32_t length;    /* length of alignment region */
-    AlignOpType type;  /* type of alignment */
-};
-
-rc_t CC AlignmentGetAlignmentDetail ( const Alignment *self,
-                                      AlignmentDetail *rslt, 
-                                      uint32_t count, 
-                                      uint32_t *actual,
-                                      int32_t *firstMatch, 
-                                      int32_t *lastMatch );
-
-
-/* GetCigarCount
- *  the number of CIGAR elements
- *  a CIGAR element consists of the pair of matching op code and op length
- *
- *  "n" [ OUT ] - return param for cigar count
- */
-rc_t CC AlignmentGetAlignOpCount ( const Alignment *self, uint32_t *n );
-
-
-/* GetInsertSize
- *  distance in bases to start of mate's alignment on ref. seq.
- *
- *  "size" [ OUT ] - >0 for first in pair, <0 for second
- */
-rc_t CC AlignmentGetInsertSize ( const Alignment *self, int64_t *size );
-
-/* GetBAMCigar
- *
- */
-rc_t CC AlignmentGetBAMCigar(const Alignment *cself, uint32_t const **rslt, uint32_t *length);
-
-/* IsSecondary
- * 
- */
-bool CC AlignmentIsSecondary( const Alignment *self ); 
-
-
-/* AlignmentGetCG
- * rc_t == 0, result == 0 if no CG data 
- */
-rc_t CC AlignmentGetCGData ( const Alignment *self, const CGData** result);
-
-/*--------------------------------------------------------------------------
- * CGData
- */
-rc_t CC CGDataAddRef ( const CGData *self );
-rc_t CC CGDataRelease ( const CGData *self );
-
-/* CGGetSeqQual
- */
-rc_t CC CGDataGetSeqQual ( const CGData* self,
-                           char sequence[/* 35 */],
-                           uint8_t quality[/* 35 */] );
-
-/* CGGetCigar
- */
-rc_t CC CGDataGetCigar ( const CGData* self,
-                         uint32_t *cigar,
-                         uint32_t cig_max,
-                         uint32_t *cig_act );
-
-/* CGGetAlignGroup
- */
-rc_t CC CGDataGetAlignGroup ( const CGData* self,
-                              char buffer[],
-                              size_t max_size,
-                              size_t *act_size );
-
-/*--------------------------------------------------------------------------
- * Rejected
- */
-
-/* AddRef
- * Release
- */
-rc_t CC RejectedAddRef ( const Rejected *self );
-rc_t CC RejectedRelease ( const Rejected *self );
-
-/* GetError
- *  "text" [ OUT ] - NUL-terminated error message, held internally
- *  "line" [ OUT ] - 1-based line # in the source (0 for binary formats)
- *  "column" [ OUT ] - 1-based column # in the source (offset from the start of the file for binary formats)
- *  "fatal" [ OUT ] - no further parsing should be done (likely an unsupported format)
- */
-rc_t CC RejectedGetError( const Rejected* self, const char** text, uint64_t* line, uint64_t* column, bool* fatal );
-
-/* GetData
- *  "data" [ OUT ] - raw input representing the rejected record. held internally
- *  "length" [ OUT ] - size of the data buffer
- */
-rc_t CC RejectedGetData( const Rejected* self, const void** text, size_t* length );
-
-/*--------------------------------------------------------------------------
- * ReferenceInfo
- */
-typedef struct ReferenceSequence 
-{
-    uint64_t length;
-    const char *name; /* not null unique */
-    const uint8_t *checksum;
-} ReferenceSequence;
-
-typedef struct ReadGroup
-{
-    const char *name; /* not null unique, accession e.g. SRR001138 */
-    const char *platform; /* e.g. ILLUMINA */
-} ReadGroup;
-
-rc_t CC ReferenceInfoAddRef ( const ReferenceInfo *self );
-rc_t CC ReferenceInfoRelease ( const ReferenceInfo *self );
-
-/* GetRefSeqCount
- *  get the number of Reference Sequences refered to in the header
- *  this is not necessarily the number of Reference Sequences referenced
- *  by the alignments
- */
-rc_t CC ReferenceInfoGetRefSeqCount ( const ReferenceInfo *self, uint32_t* count );
-
-/* GetRefSeq
- *  get the n'th Ref. Seq. where n is [0..RefSeqCount)
- *  the result is populated with pointers that are good for precisely at long as the ReferenceInfo exists.
- */
-rc_t CC ReferenceInfoGetRefSeq ( const ReferenceInfo *self, uint32_t n, ReferenceSequence *result );
-
-/* GetReadGroupCount
- *  get the number of Read Groups (accessions, etc.) refered to in the header
- *  this is not necessarily the number of Read Groups referenced
- *  by the alignments
- */
-rc_t CC ReferenceInfoGetReadGroupCount ( const ReferenceInfo *self, uint32_t *count );
-
-/* GetReadGroup
- *  get the n'th Read Group where n is [0..ReadGroupCount)
- *  the result is populated with pointers that are good for precisely at long as the ReferenceInfo exists.
- */
-rc_t CC ReferenceInfoGetReadGroup ( const ReferenceInfo *self, unsigned n, ReadGroup *result );
-
-/* GetReadGroupByName
- *  get a Read Group by its name
- *  the result is populated with pointers that are good for precisely at long as the ReferenceInfo exists.
- */
-rc_t CC ReferenceInfoGetReadGroupByName ( const ReferenceInfo *self, const char *name, ReadGroup *result );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_common_reader_ */
diff --git a/interfaces/loader/common-writer.h b/interfaces/loader/common-writer.h
deleted file mode 100644
index c81c0ce..0000000
--- a/interfaces/loader/common-writer.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_common_writer_
-#define _h_common_writer_
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifndef _h_insdc_sra_
-#include <insdc/sra.h>
-#endif
-
-#ifndef _h_mmarray_
-#include <loader/mmarray.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-
-struct VDBManager;
-struct VDatabase;
-struct KMemBank;
-struct KBTree;
-struct KLoadProgressbar;
-struct ReaderFile;
-struct CommonWriter;
-struct SequenceWriter;
-struct AlignmentWriter;
-struct Reference;
-
-/*--------------------------------------------------------------------------
- * CommonWriterSettings
- */
-enum LoaderModes {
-    mode_Archive,
-    mode_Analysis
-};
-
-typedef struct CommonWriterSettings
-{
-    uint64_t numfiles;
-    char const *inpath;
-    char const *outpath;
-    char const *tmpfs;
-    
-    struct KFile *noMatchLog;
-    
-    char const *schemaPath;
-    char const *schemaIncludePath;
-    
-    char const *refXRefPath;
-    
-    char const *QualQuantizer;
-    
-    char const *refFilter;
-
-    char const** refFiles; /* NULL-terminated array pointing to argv */
-    
-    char const *headerText;
-    
-    uint64_t maxAlignCount;
-    size_t cache_size;
-
-    uint64_t errCount;
-    uint64_t maxErrCount;
-    uint64_t maxErrPct;
-    uint64_t maxWarnCount_NoMatch;
-    uint64_t maxWarnCount_DupConflict;
-    uint64_t pid;
-    uint64_t minMatchCount; /* minimum number of matches to count as an alignment */
-    int minMapQual;
-    enum LoaderModes mode;
-    uint32_t maxSeqLen;
-    bool omit_aligned_reads;
-    bool omit_reference_reads;
-    bool no_real_output;
-    bool expectUnsorted;
-    bool noVerifyReferences;
-    bool onlyVerifyReferences;
-    bool useQUAL;
-    bool limit2config;
-    bool editAlignedQual;
-    bool keepMismatchQual;
-    bool acceptBadDups; /* accept spots with inconsistent PCR duplicate flags */
-    bool acceptNoMatch; /* accept without any matching bases */
-    uint8_t alignedQualValue;
-    bool allUnaligned; /* treat all records as unaligned */
-    bool noColorSpace;
-    bool noSecondary;
-    bool hasTI;
-    bool acceptHardClip;
-    INSDC_SRA_platform_id platform;
-    bool parseSpotName;
-} CommonWriterSettings;
-
-/*--------------------------------------------------------------------------
- * SpotAssembler
- */
-
-#define FRAG_CHUNK_SIZE (128)
-
-typedef struct SpotAssembler {
-    const struct KLoadProgressbar *progress[4];
-    struct KBTree *key2id[NUM_ID_SPACES];
-    char *key2id_names;
-    struct MMArray *id2value;
-    struct KMemBank *fragsBoth; /*** mate will be there soon ***/
-    struct KMemBank *fragsOne;  /*** mate may not be found soon or even show up ***/
-    int64_t spotId;
-    int64_t primaryId;
-    int64_t secondId;
-    uint64_t alignCount;
-    
-    uint32_t idCount[NUM_ID_SPACES];
-    uint32_t key2id_hash[NUM_ID_SPACES];
-    
-    unsigned key2id_max;
-    unsigned key2id_name_max;
-    unsigned key2id_name_alloc;
-    unsigned key2id_count;
-    
-    unsigned key2id_name[NUM_ID_SPACES];
-    /* this array is kept in name order */
-    /* this maps the names to key2id and idCount */
-    unsigned key2id_oid[NUM_ID_SPACES];
-    
-    unsigned pass;
-    bool isColorSpace;
-    
-} SpotAssembler;
-
-INSDC_SRA_platform_id PlatformToId(const char* name);
-
-/*--------------------------------------------------------------------------
- * CommonWriter
- */
-typedef struct CommonWriter {
-    CommonWriterSettings settings;
-    SpotAssembler ctx;
-    struct Reference* ref;
-    struct SequenceWriter* seq;
-    struct AlignmentWriter* align;
-    bool had_alignments;
-    bool had_sequences;
-    unsigned err_count;
-    bool commit;
-} CommonWriter;
-
-rc_t CommonWriterInit(CommonWriter* self, struct VDBManager *mgr, struct VDatabase *db, const CommonWriterSettings* settings);
-
-rc_t CommonWriterArchive(CommonWriter* self, const struct ReaderFile *);
-rc_t CommonWriterComplete(CommonWriter* self, bool quitting);
-
-rc_t CommonWriterWhack(CommonWriter* self);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_common_writer_ */
diff --git a/interfaces/loader/mmarray.h b/interfaces/loader/mmarray.h
deleted file mode 100644
index 7786b81..0000000
--- a/interfaces/loader/mmarray.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_mmarray_
-#define _h_mmarray_
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-
-struct KFile;
-
-#define NUM_ID_SPACES (256u)
-
-struct MMArray;
-
-rc_t MMArrayMake(struct MMArray **rslt, struct KFile *fp, uint32_t elemSize);
-
-rc_t MMArrayGet(struct MMArray *const self, void **const value, uint64_t const element);
-
-void MMArrayWhack(struct MMArray *self);
-
-#endif
diff --git a/interfaces/loader/reference-writer.h b/interfaces/loader/reference-writer.h
deleted file mode 100644
index 7e354e4..0000000
--- a/interfaces/loader/reference-writer.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef LOADER_REFERENCE_WRITER_H_
-#define LOADER_REFERENCE_WRITER_H_ 1
-
-#include <vdb/manager.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <klib/data-buffer.h>
-
-#include <align/writer-reference.h>
-#include "alignment-writer.h"
-
-typedef struct Reference {
-    const ReferenceMgr *mgr;
-    const ReferenceSeq *rseq;
-    int64_t lastRefId;
-    int32_t lastOffset;
-    unsigned curPos;
-    unsigned endPos;
-    unsigned length;
-    KDataBuffer coverage;
-    KDataBuffer mismatches;
-    KDataBuffer indels;
-    KDataBuffer pri_align;
-    KDataBuffer sec_align;
-    KDataBuffer pri_overlap;
-    KDataBuffer sec_overlap;
-    bool out_of_order;
-    bool acceptHardClip;
-    char last_id[256];
-} Reference;
-
-rc_t ReferenceInit(Reference *self, const VDBManager *mgr, VDatabase *db, 
-                   bool expectUnsorted,
-                   bool acceptHardClip,
-                   char const *refXRefPath,
-                   char const *inpath,
-                   uint32_t maxSeqLen,  /*TODO: save in Reference object, reuse in other functions*/
-                   char const** refFiles
-                   );
-rc_t ReferenceSetFile(Reference *self, const char *id, uint64_t length, uint8_t const md5[16], uint32_t maxSeqLen);
-rc_t ReferenceVerify(Reference const *self, char const id[], uint64_t length, uint8_t const md5[16]);
-rc_t ReferenceGet1stRow(Reference const *self, int64_t *refID, char const refName[]);
-rc_t ReferenceAddAlignId(Reference *self,
-                         int64_t align_id,
-                         bool is_primary
-                         );
-rc_t ReferenceRead(Reference *self, AlignmentRecord *data, uint64_t const pos,
-                   uint32_t const rawCigar[], uint32_t const cigCount,
-                   char const seqDNA[], uint32_t const seqLen, uint32_t *matches, bool acceptNoMatch, unsigned minMatchCount, uint32_t maxSeqLen);
-rc_t ReferenceWhack(Reference *self, bool commit, uint32_t maxSeqLen);
-
-#endif
diff --git a/interfaces/loader/sequence-writer.h b/interfaces/loader/sequence-writer.h
deleted file mode 100644
index c7565cb..0000000
--- a/interfaces/loader/sequence-writer.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_SEQUENCE_WRITER_H_
-#define BAM_LOAD_SEQUENCE_WRITER_H_ 1
-
-#include <insdc/sra.h>
-
-#include <vdb/manager.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-
-#include <klib/text.h>
-#include <klib/data-buffer.h>
-
-struct TableWriterSeq;
-
-typedef struct s_sequence_record {
-    char *seq;
-    uint8_t *qual;
-    uint32_t *readStart;
-    uint32_t *readLen;
-    uint8_t *orientation;
-    uint8_t *is_bad;
-    uint8_t *alignmentCount;
-    char *spotGroup;
-    bool *aligned;
-    char *cskey;
-    uint64_t *ti;
-    uint64_t keyId;
-    unsigned spotGroupLen;
-    KDataBuffer storage;
-    uint8_t numreads;
-} SequenceRecord;
-
-
-rc_t SequenceRecordInit(SequenceRecord *self,
-                        unsigned numreads, unsigned readLen[]);
-
-rc_t SequenceRecordAppend(SequenceRecord *self,
-                          const SequenceRecord *other);
-
-typedef struct SequenceWriter {
-    VDatabase *db;
-    struct TableWriterSeq const *tbl;
-} SequenceWriter;
-
-SequenceWriter *SequenceWriterInit(SequenceWriter *self, VDatabase *db);
-
-rc_t SequenceWriteRecord(SequenceWriter *self, SequenceRecord const *rec,
-                         bool color, bool isDup, INSDC_SRA_platform_id platform,
-                         bool keepMismatchQual,
-                         bool no_real_output,
-                         bool hasTI,
-                         char const *QualQuantizer
-                         );
-
-rc_t SequenceDoneWriting(SequenceWriter *self);
-rc_t SequenceReadKey(const SequenceWriter *self, int64_t row, uint64_t *key);
-rc_t SequenceUpdateAlignData(SequenceWriter *self, int64_t row, unsigned nreads,
-                             const int64_t primeId[/* nreads */],
-                             const uint8_t alignCount[/* nreads */]);
-
-void SequenceWhack(SequenceWriter *self, bool commit);
-
-
-#endif /* ndef BAM_LOAD_SEQUENCE_WRITER_H_ */
diff --git a/interfaces/ncbi/seq.vschema b/interfaces/ncbi/seq.vschema
index bfb8f1a..707def9 100644
--- a/interfaces/ncbi/seq.vschema
+++ b/interfaces/ncbi/seq.vschema
@@ -358,6 +358,9 @@ table NCBI:tbl:base_space #2.0.3
  *  nucleotide sequences in color space
  */
 
+/* TBD - does this function need to know something about
+ *  whether a read is forward or reverse?
+ */
 extern function
 INSDC:x2na:bin NCBI:dna_from_color #1 ( INSDC:x2cs:bin color_bin,
      INSDC:coord:zero read_start, INSDC:coord:len read_len,
@@ -374,7 +377,8 @@ table NCBI:tbl:dcmp_color_space #1
     INSDC:dna:text dcmp_virtual_productions
         = out_dcmp_x2cs_bin
         | out_dcmp_2cs_bin
-        | out_dcmp_2cs_packed;
+        | out_dcmp_2cs_packed
+        | out_dcmp_cs_key;
 }
 
 /* history:
@@ -445,6 +449,7 @@ table NCBI:tbl:color_space_common #1.0.3
 	 */
 
 	/* NCBI:tbl:dcmp_color_space inherited productions
+	 *  out_dcmp_cs_key
 	 *  out_dcmp_2cs_bin
 	 *  out_dcmp_x2cs_bin
 	 *  out_dcmp_2cs_packed
@@ -594,7 +599,9 @@ table NCBI:tbl:color_space #2.1
         | ( INSDC:x2cs:bin ) out_2cs_bin;
 
     // read directly from physical column
-    INSDC:dna:text out_cs_key = .CS_KEY;
+    INSDC:dna:text out_cs_key
+        = .CS_KEY
+        | out_dcmp_cs_key;
 
     // color matrix may be synthesized
     U8 out_color_matrix
@@ -607,6 +614,7 @@ table NCBI:tbl:color_space #2.1
 	 */
 
 	/* NCBI:tbl:dcmp_color_space inherited productions
+	 *  out_dcmp_cs_key
 	 *  out_dcmp_2cs_bin
 	 *  out_dcmp_x2cs_bin
 	 *  out_dcmp_2cs_packed
@@ -645,7 +653,6 @@ table NCBI:tbl:protein #1 = INSDC:tbl:protein
  *  reserves value 0 as ambiguity symbol for reads
  */
 
-
 /* history:
  *  1.0.1 - base explicitly upon sequence #1.0.1
  */
@@ -689,10 +696,8 @@ table NCBI:tbl:phred_quality #1.0.1 = NCBI:tbl:phred_quality_nocol #1.0.1
  *  2.0.1 - added feed of in_stats_qual
  *  2.0.2 - added input of text encodings
  *  2.0.3 - base explicitly upon sequence #1.0.1
- *  2.0.4 - change compression from izip to zip
- *  2.0.5 - change from zip to delta_average_zip
  */
-table NCBI:tbl:phred_quality #2.0.4 = INSDC:tbl:sequence #1.0.1
+table NCBI:tbl:phred_quality #2.0.3 = INSDC:tbl:sequence #1.0.1
 {
     // read directly quality as  phred
     INSDC:quality:phred out_qual_phred = .QUALITY;
@@ -707,10 +712,7 @@ table NCBI:tbl:phred_quality #2.0.4 = INSDC:tbl:sequence #1.0.1
         | ( INSDC:quality:phred ) < B8 > diff < 64 > ( in_qual_text_phred_64 );
 
     // physical storage
-/*** next line is  for future change in production, but we have to wait until supporting code is released to the public ***/
-// physical column < INSDC:quality:phred > delta_average_zip_encoding .QUALITY = in_qual_phred;
-/*** NB *** MUST change table version to 2.0.5 and propagate to all derived tables ***/
-    physical column < INSDC:quality:phred > zip_encoding .QUALITY = in_qual_phred;
+    physical column < INSDC:quality:phred > izip_encoding .QUALITY = in_qual_phred;
 
     // feed to compressed statistics
     INSDC:quality:phred in_stats_qual = in_qual_phred;
@@ -854,9 +856,8 @@ table NCBI:tbl:log_odds_quality_nocol #2.0.1 = INSDC:tbl:sequence #1.0.1
  *  2.0.1 - added feed of in_stats_qual
  *  2.0.2 - added input of text encodings
  *  2.0.3 - base explicitly upon log_odds_quality_nocol #2.0.1
- *  2.0.4 - changed compression from izip to zip
  */
-table NCBI:tbl:log_odds_quality #2.0.4 = NCBI:tbl:log_odds_quality_nocol #2.0.1
+table NCBI:tbl:log_odds_quality #2.0.3 = NCBI:tbl:log_odds_quality_nocol #2.0.1
 {
     INSDC:quality:log_odds out_qual_log_odds= .QUALITY;
 
@@ -871,7 +872,7 @@ table NCBI:tbl:log_odds_quality #2.0.4 = NCBI:tbl:log_odds_quality_nocol #2.0.1
         = QUALITY
         | ( INSDC:quality:log_odds ) < B8 > diff < 64 > ( in_qual_text_log_odds_64 );
 
-    physical column < INSDC:quality:log_odds > zip_encoding .QUALITY
+    physical column < INSDC:quality:log_odds > izip_encoding .QUALITY
         = in_qual_log_odds;
 
     // feed to compressed statistics
diff --git a/interfaces/ncbi/wgs-contig.h b/interfaces/ncbi/wgs-contig.h
deleted file mode 100644
index 7b8ab2d..0000000
--- a/interfaces/ncbi/wgs-contig.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_ncbi_wgs_contig_
-#define _h_ncbi_wgs_contig_
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*==========================================================================
- * WGS Contig
- */
-
-
-/*--------------------------------------------------------------------------
- * types
- * constants
- */
-
-/* component_props
- *  a signed value describing either contigs or gaps
- *  where values >= 0 refer to contigs
- *  and negatives describe gaps
- */
-typedef int16_t NCBI_WGS_component_props;
-
-/* component description
- *  the sequencing status of the component
- *
- *  These typically correspond to keywords in the INSDC submission.
- *  Current acceptable values are_
- *    A           Active Finishing
- *    D           Draft HTG (often phase1 and phase2 are called Draft,
- *                whether or not they have the draft keyword).
- *    F           Finished HTG (phase3)
- *    G           Whole Genome Finishing
- *    O           Other sequence (typically means no HTG keyword)
- *    P           Pre Draft
- *    W           WGS contig
- */
-enum
-{
-    NCBI_WGS_component_WGS                  = 0,
-    NCBI_WGS_component_ActiveFinishing      = 1,
-    NCBI_WGS_component_DraftHTG             = 2,
-    NCBI_WGS_component_FinishedHTG          = 3,
-    NCBI_WGS_component_WholeGenomeFinishing = 4,
-    NCBI_WGS_component_OtherSequence        = 5,
-    NCBI_WGS_component_PreDraft             = 6
-};
-
-/* strand
- *  specifies the orientation of the component relative to scaffold
- *  values given allow strand to be determined as "prop / 16"
- *  yielding_
- *    0           unknown orientation
- *    1           plus strand
- *    2           negative strand
- */
-enum
-{
-    NCBI_WGS_strand_plus                    = 1 * 16,
-    NCBI_WGS_strand_minus                   = 2 * 16
-};
-
-
-/* gap description
- *  These typically correspond to keywords in the INSDC submission.
- *  Current acceptable values are_
- *    N           gap with specified size
- *    U           gap of unknown size, defaulting to 100 bases.
- */
-enum
-{
-    NCBI_WGS_gap_known                      = 1 * -1,
-    NCBI_WGS_gap_unknown                    = 2 * -1
-};
-
-/* gap type
- *  scaffold          a gap between two sequence contigs in a scaffold
- *  contig            an unspanned gap between two sequence contigs
- *  centromere        a gap inserted for the centromere
- *  short_arm         a gap inserted at the start of an acrocentric chromosome
- *  heterochromatin   a gap inserted for an especially large region of heterochromatic sequence
- *  telomere          a gap inserted for the telomere
- *  repeat            an unresolvable repeat
- */
-enum
-{
-    NCBI_WGS_gap_scaffold                   = 1 * -4,
-    NCBI_WGS_gap_contig                     = 2 * -4,
-    NCBI_WGS_gap_centromere                 = 3 * -4,
-    NCBI_WGS_gap_short_arm                  = 4 * -4,
-    NCBI_WGS_gap_heterochromatin            = 5 * -4,
-    NCBI_WGS_gap_telomere                   = 6 * -4,
-    NCBI_WGS_gap_repeat                     = 7 * -4
-};
-
-/* gap linkage evidence
- *  paired-ends       paired sequences from the two ends of a DNA fragment
- *  align_genus       alignment to a reference genome within the same genus
- *  align_xgenus      alignment to a reference genome within another genus
- *  align_trnscpt     alignment to a transcript from the same species
- *  within_clone      sequence on both sides of the gap is derived from
- *                    the same clone, but the gap is not spanned by paired-ends
- *  clone_contig      linkage is provided by a clone contig in the tiling path
- *  map               linkage asserted using a non-sequence based map
- *                    such as RH, linkage, fingerprint or optical
- *  strobe            strobe sequencing (PacBio)
- *  unspecified
- */
-enum
-{
-    NCBI_WGS_gap_linkage_paired_ends        = 1 * -64,
-    NCBI_WGS_gap_linkage_align_genus        = 2 * -64,
-    NCBI_WGS_gap_linkage_align_xgenus       = 3 * -64,
-    NCBI_WGS_gap_linkage_align_trnscpt      = 4 * -64,
-    NCBI_WGS_gap_linkage_within_clone       = 5 * -64,
-    NCBI_WGS_gap_linkage_clone_contig       = 6 * -64,
-    NCBI_WGS_gap_linkage_map                = 7 * -64,
-    NCBI_WGS_gap_linkage_strobe             = 8 * -64,
-    NCBI_WGS_gap_linkage_unspecified        = 9 * -64
-};
-
-
-/*--------------------------------------------------------------------------
- * accession tokenization constants
- */
-
-/* tokenize_nuc_accession
- * tokenize_prot_accession
- *  scans name on input
- *  tokenizes into parts
- */
-enum
-{
-    NCBI_WGS_acc_token_unrecognized =  1,
-    NCBI_WGS_acc_token_prefix       =  2,
-    NCBI_WGS_acc_token_contig       =  3
-};
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_ncbi_wgs_contig_ */
diff --git a/interfaces/ncbi/wgs-contig.vschema b/interfaces/ncbi/wgs-contig.vschema
deleted file mode 100644
index c31914f..0000000
--- a/interfaces/ncbi/wgs-contig.vschema
+++ /dev/null
@@ -1,660 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/*==========================================================================
- * WGS Contig
- */
-version 1;
-
-include 'vdb/vdb.vschema';
-include 'ncbi/ncbi.vschema';
-include 'ncbi/seq.vschema';
-include 'ncbi/spotname.vschema';
-include 'ncbi/stats.vschema';
-
-
-/*--------------------------------------------------------------------------
- * types
- * constants
- */
-
-/* component_props
- *  a signed value describing either contigs or gaps
- *  where values >= 0 refer to contigs
- *  and negatives describe gaps
- */
-typedef I16 NCBI:WGS:component_props;
-
-/* component description
- *  the sequencing status of the component
- *
- *  These typically correspond to keywords in the INSDC submission.
- *  Current acceptable values are:
- *    A           Active Finishing
- *    D           Draft HTG (often phase1 and phase2 are called Draft,
- *                whether or not they have the draft keyword).
- *    F           Finished HTG (phase3)
- *    G           Whole Genome Finishing
- *    O           Other sequence (typically means no HTG keyword)
- *    P           Pre Draft
- *    W           WGS contig
- */
-const NCBI:WGS:component_props NCBI:WGS:component:WGS                  = 0;
-const NCBI:WGS:component_props NCBI:WGS:component:ActiveFinishing      = 1;
-const NCBI:WGS:component_props NCBI:WGS:component:DraftHTG             = 2;
-const NCBI:WGS:component_props NCBI:WGS:component:FinishedHTG          = 3;
-const NCBI:WGS:component_props NCBI:WGS:component:WholeGenomeFinishing = 4;
-const NCBI:WGS:component_props NCBI:WGS:component:OtherSequence        = 5;
-const NCBI:WGS:component_props NCBI:WGS:component:PreDraft             = 6;
-
-/* strand
- *  specifies the orientation of the component relative to scaffold
- *  values given allow strand to be determined as "prop / 16"
- *  yielding:
- *    0           unknown orientation
- *    1           plus strand
- *    2           negative strand
- */
-const NCBI:WGS:component_props NCBI:WGS:strand:plus                    = 16;
-const NCBI:WGS:component_props NCBI:WGS:strand:minus                   = 32;
-
-
-/* gap description
- *  These typically correspond to keywords in the INSDC submission.
- *  Current acceptable values are:
- *    N           gap with specified size
- *    U           gap of unknown size, defaulting to 100 bases.
- */
-const NCBI:WGS:component_props NCBI:WGS:gap:known                      = -1;
-const NCBI:WGS:component_props NCBI:WGS:gap:unknown                    = -2;
-
-/* gap type
- *  scaffold          a gap between two sequence contigs in a scaffold
- *  contig            an unspanned gap between two sequence contigs
- *  centromere        a gap inserted for the centromere
- *  short_arm         a gap inserted at the start of an acrocentric chromosome
- *  heterochromatin   a gap inserted for an especially large region of heterochromatic sequence
- *  telomere          a gap inserted for the telomere
- *  repeat            an unresolvable repeat
- */
-const NCBI:WGS:component_props NCBI:WGS:gap:scaffold                   = -4;
-const NCBI:WGS:component_props NCBI:WGS:gap:contig                     = -8;
-const NCBI:WGS:component_props NCBI:WGS:gap:centromere                 = -12;
-const NCBI:WGS:component_props NCBI:WGS:gap:short_arm                  = -16;
-const NCBI:WGS:component_props NCBI:WGS:gap:heterochromatin            = -20;
-const NCBI:WGS:component_props NCBI:WGS:gap:telomere                   = -24;
-const NCBI:WGS:component_props NCBI:WGS:gap:repeat                     = -28;
-
-/* gap linkage evidence
- *  paired-ends       paired sequences from the two ends of a DNA fragment
- *  align_genus       alignment to a reference genome within the same genus
- *  align_xgenus      alignment to a reference genome within another genus
- *  align_trnscpt     alignment to a transcript from the same species
- *  within_clone      sequence on both sides of the gap is derived from
- *                    the same clone, but the gap is not spanned by paired-ends
- *  clone_contig      linkage is provided by a clone contig in the tiling path
- *  map               linkage asserted using a non-sequence based map
- *                    such as RH, linkage, fingerprint or optical
- *  strobe            strobe sequencing (PacBio)
- *  unspecified
- */
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:paired_ends        = -64;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:align_genus        = -128;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:align_xgenus       = -192;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:align_trnscpt      = -256;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:within_clone       = -320;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:clone_contig       = -384;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:map                = -448;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:strobe             = -512;
-const NCBI:WGS:component_props NCBI:WGS:gap:linkage:unspecified        = -576;
-
-
-/*--------------------------------------------------------------------------
- * functions
- */
-
-/* tokenize_nuc_accession
- * tokenize_prot_accession
- *  scans name on input
- *  tokenizes into parts
- */
-extern function text:token
-    NCBI:WGS:tokenize_nuc_accession #1 ( ascii acc );
-extern function text:token
-    NCBI:WGS:tokenize_prot_accession #1 ( ascii acc );
-
-const U16 NCBI:WGS:acc_token:unrecognized =  1;
-const U16 NCBI:WGS:acc_token:prefix       =  2;
-const U16 NCBI:WGS:acc_token:contig       =  3;
-
-
-/* build_scaffold_read
- *  assembles contigs and gaps into a single row
- *  transcribes + strand contigs as they are,
- *  performs reverse complement of - strand contigs,
- *  fills gaps with stated number of N
- *
- * build_scaffold_quality
- *  assembles contig and gap qualities into a single row
- *  contig qualities are taken as they are,
- *  gap qualities are assigned a constant
- *
- *  "component_start" [ DATA ] - starting locations on each
- *   component or 0 for gaps. normal starting point is 0,
- *   but offsets are supported.
- *  NB - ONE-BASED COORDINATES
- *
- *  "component_len" [ DATA ] - length of contig sequence
- *   from component_start, or length of gap, projected onto
- *   scaffold at scaffold_start.
- *
- *  "component_props" [ DATA ] - see discussion of type
- *   distinguish between contigs and gaps, indicate strand
- *
- *  "component_id" [ DATA ] - foreign keys into SEQUENCE table
- *   row_len ( component_id ) == count-of-contigs ( component_props )
- */
-extern function INSDC:4na:bin NCBI:WGS:build_scaffold_read #1
-    ( INSDC:coord:one component_start, INSDC:coord:len component_len,
-      NCBI:WGS:component_props component_props, I64 component_id );
-
-extern function INSDC:quality:phred NCBI:WGS:build_scaffold_qual #1
-    ( INSDC:coord:one component_start, INSDC:coord:len component_len,
-      NCBI:WGS:component_props component_props, I64 component_id );
-
-
-/* build_read_type
- *  generate standard SRA read type from component properties
- *  contigs are biological, gaps are technical
- *
- *  "component_props" [ DATA ] - see discussion of type
- *   distinguish between contigs and gaps, indicate strand
- */
-extern function INSDC:SRA:xread_type
-    NCBI:WGS:build_read_type #1 ( NCBI:WGS:component_props component_props );
-
-
-/*--------------------------------------------------------------------------
- * nucleotide
- */
-table NCBI:WGS:tbl:nucleotide #1.1
-    = NCBI:tbl:base_space #2.0.3
-    , NCBI:tbl:phred_quality #2.0.4
-    , NCBI:SRA:tbl:stats #1.2.0
-{
-    /* ACCESSION
-     *  [<opt-prefix>]<4-letter-prefix><2-digit-version><6-or-7-digit-contig>
-     */
-    extern column ascii ACCESSION = out_accession;
-    extern column U32   ACC_VERSION = .ACC_VERSION | <U32> echo <1> ();
-
-    // input
-    ascii in_accession = ACCESSION;
-
-    // parsed input
-    text:token in_acc_token
-        = NCBI:WGS:tokenize_nuc_accession ( in_accession );
-    //  [<opt-prefix>]<4-letter-prefix><2-digit-version>
-    ascii in_acc_prefix
-        = extract_token < 0 > ( in_accession, in_acc_token );
-    // <6-or-7-digit-contig>
-    ascii in_contig_text
-        = extract_token < 1 > ( in_accession, in_acc_token );
-    U32 in_contig_len
-        = row_len ( in_contig_text );
-    U64 in_contig_bin
-        = strtonum ( in_contig_text );
-
-    // physical storage
-    physical column < ascii > zip_encoding .ACC_PREFIX = in_acc_prefix;
-    physical column < U32 > izip_encoding .ACC_CONTIG_LEN = in_contig_len;
-    physical column < U64 > izip_encoding .ACC_CONTIG = in_contig_bin;
-    physical column < U32 > izip_encoding .ACC_VERSION = ACC_VERSION; //needed to back-fill WGS data from ID where version may be > 1
-
-    // output
-    ascii out_acc_prefix
-        = .ACC_PREFIX
-        | < ascii > meta:read < 'ACC_PREFIX', true > ()
-        ;
-    U32 out_acc_contig_len
-        = .ACC_CONTIG_LEN
-        | < U32 > meta:value < 'ACC_CONTIG_LEN', true > ()
-        ;
-    U64 out_acc_contig
-        = .ACC_CONTIG
-        | ( U64 ) row_id ()
-        ;
-    ascii out_accession
-        = sprintf < "%s%0*u" > ( out_acc_prefix, out_acc_contig_len, out_acc_contig );
-
-    readonly column ascii ACC_PREFIX
-        = .ACC_PREFIX
-        | < ascii > meta:read < 'ACC_PREFIX', true > ()
-        ;
-    readonly column U32 ACC_CONTIG_LEN
-        = .ACC_CONTIG_LEN
-        | < U32 > meta:value < 'ACC_CONTIG_LEN', true > ()
-        ;
-
-    /* CONTIG_NAME
-     *  principal name
-     */
-    extern column utf8 CONTIG_NAME
-        = idx:text:project < 'contig_name' > ( .CONTIG_NAME );
-
-    physical column < utf8 > zip_encoding .CONTIG_NAME
-        = idx:text:insert < 'contig_name' > ( CONTIG_NAME );
-
-    ascii out_contig_name = cast ( CONTIG_NAME );
-
-    // NB - this is only useful if CONTIG_NAME is unique
-    // or if clustered by CONTIG_NAME
-    readonly column vdb:row_id_range CONTIG_NAME_ROW_RANGE
-        = idx:text:lookup < 'contig_name', 'NAME_QUERY' > ();
-
-    /* EXTRA_SEQIDS
-     *  pipe-separated list of additional names
-     */
-    extern column < ascii > zip_encoding EXTRA_SEQIDS;
-
-    /* TITLE
-     */
-    extern column < ascii > zip_encoding TITLE;
-
-    /* GI
-     *  gi is indexed in a parallel table
-     */
-    extern column < NCBI:gi > izip_encoding GI;
-
-    /* TAXID
-     *  taxonomy id
-     */
-    extern column < NCBI:taxid > izip_encoding TAXID;
-
-    /* GB_STATE
-     *  genbank state
-     */
-    extern column < NCBI:gb_state > izip_encoding GB_STATE;
-
-    /* DESCR
-     *  ASN.1 description
-     */
-    extern column < NCBI:asn:binary > zip_encoding DESCR;
-
-    /* ANNOT
-     *  ASN.1 annotation
-     */
-    extern column < NCBI:asn:binary > zip_encoding ANNOT;
-
-    ascii out_seqid_gi = sprintf < "gi|%u" > ( .GI );
-    ascii out_seqid_gb = sprintf < "gb|%s.%u|" > ( out_accession, ACC_VERSION )
-                       | sprintf < "gb|%s.1|" > ( out_accession );
-    ascii out_seqid_gnl = sprintf < "gnl|WGS:%s|%s" > (.ACC_PREFIX, out_contig_name ) | <ascii> echo < '' > ();
-
-
-    /* outputs to spotname */
-    ascii out_seqid_name
-        = sprintf < "%s|%s" > ( out_seqid_gi , out_seqid_gb )
-		| sprintf < "%s" > ( out_seqid_gb );
-
-    ascii out_spot_name = sprintf < "%s %s" > ( out_seqid_name, .TITLE );
-
-    readonly column ascii SEQ_ID = out_seqid_name;
-    readonly column ascii SEQ_ID_GNL = out_seqid_gnl;
-
-    /* outputs to spotdesc */
-    // INSDC:coord:len in_read_len  = (INSDC:coord:len) row_len ( in_2na_bin );
-    INSDC:coord:len  out_read_len = (INSDC:coord:len) row_len ( out_2na_bin );
-    INSDC:coord:len  trim_len = (INSDC:coord:len) row_len ( out_2na_bin );
-    INSDC:coord:zero out_read_start = <INSDC:coord:zero> echo < 0 > ();
-    INSDC:coord:zero trim_start = <INSDC:coord:zero> echo < 0 > ();
-    INSDC:SRA:read_filter out_rd_filter = < INSDC:SRA:read_filter > echo < SRA_READ_FILTER_PASS > ();
-    INSDC:SRA:xread_type  out_read_type = < INSDC:SRA:xread_type > echo < SRA_READ_TYPE_BIOLOGICAL > ();
-    // help trigger statistics
-    INSDC:SRA:xread_type  _alt_in_read_type = < INSDC:SRA:xread_type > echo < SRA_READ_TYPE_BIOLOGICAL > ();
-    INSDC:coord:len       _alt_in_read_len  = (INSDC:coord:len) row_len ( in_2na_bin );
-
-    ascii out_label = < ascii > echo < "contig" > ();
-    INSDC:coord:len out_label_len = < INSDC:coord:len > echo < 6 > ();
-    INSDC:coord:zero out_label_start = < INSDC:coord:zero > echo < 0 > ();
-
-    INSDC:SRA:platform_id out_platform = < INSDC:SRA:platform_id > echo < SRA_PLATFORM_UNDEFINED > ();
-};
-
-
-/*--------------------------------------------------------------------------
- * protein
- *  contig
- */
-table NCBI:WGS:tbl:protein #1
-    = NCBI:tbl:protein #1.0.0
-{
-    /* ACCESSION
-     *  [<opt-prefix>]<4-letter-prefix><2-digit-version><6-or-7-digit-contig>
-     */
-    extern column ascii ACCESSION = out_accession;
-
-    // input
-    ascii in_accession = ACCESSION;
-
-    // parsed input
-    text:token in_acc_token
-        = NCBI:WGS:tokenize_prot_accession ( in_accession );
-    //  [<opt-prefix>]<4-letter-prefix><2-digit-version>
-    ascii in_acc_prefix
-        = extract_token < 0 > ( in_accession, in_acc_token );
-    // <6-or-7-digit-contig>
-    ascii in_contig_text
-        = extract_token < 1 > ( in_accession, in_acc_token );
-    U32 in_contig_len
-        = row_len ( in_contig_text );
-    I64 in_contig_bin
-        = strtonum ( in_contig_text );
-
-    // physical storage
-    physical column < ascii > zip_encoding .ACC_PREFIX = in_acc_prefix;
-    physical column < U32 > izip_encoding .ACC_CONTIG_LEN = in_contig_len;
-    physical column < U64 > izip_encoding .ACC_CONTIG = in_contig_bin;
-
-    // output
-    ascii out_acc_prefix
-        = .ACC_PREFIX
-        | < ascii > meta:read < 'ACC_PREFIX', true > ()
-        ;
-    U32 out_acc_contig_len
-        = .ACC_CONTIG_LEN
-        | < U32 > meta:value < 'ACC_CONTIG_LEN', true > ()
-        ;
-    U64 out_acc_contig
-        = .ACC_CONTIG
-        | ( U64 ) row_id ()
-        ;
-    ascii out_accession
-        = sprintf < "%s%0*u" > ( out_acc_prefix, out_acc_contig_len, out_acc_contig );
-
-    /* TITLE
-     */
-    extern column < ascii > zip_encoding TITLE;
-
-    /* GI
-     *  gi is indexed in a parallel table
-     */
-    extern column < NCBI:gi > izip_encoding GI;
-
-    /* GB_STATE
-     *  genbank state
-     */
-    extern column < NCBI:gb_state > izip_encoding GB_STATE;
-
-    /* DESCR
-     *  ASN.1 description
-     */
-    extern column < NCBI:asn:binary > zip_encoding DESCR;
-
-    /* ANNOT
-     *  ASN.1 annotation
-     */
-    extern column < NCBI:asn:binary > zip_encoding ANNOT;
-
-    /* outputs to spotname */
-    ascii out_seqid_name = sprintf < "TBD" > ( .ACC_PREFIX, out_accession );
-    ascii out_spot_name = sprintf < "%s %s" > ( out_seqid_name, .TITLE );
-
-    /* TBD
-     *  need to create an extension to NCBI:tbl:protein
-     *  that satisfies fastq-dump requirements for READ and QUALITY
-     */
-};
-
-
-/*--------------------------------------------------------------------------
- * gi_idx
- *  gi is row-id
- */
-table NCBI:WGS:tbl:gi_idx #1
-{
-    /* NUC_ROW_ID
-     *  row-id in nucleotide table
-     */
-    extern column < I64 > izip_encoding NUC_ROW_ID;
-
-    /* PROT_ROW_ID
-     *  row-id in protein table
-     */
-    extern column < I64 > izip_encoding PROT_ROW_ID;
-};
-
-
-/*--------------------------------------------------------------------------
- * scaffold
- *  records AGP data
- */
-table NCBI:WGS:tbl:scaffold #1
-{
-    /* SCAFFOLD_NAME
-     *  This is the identifier for the object being assembled.
-     *  This can be a chromosome, scaffold or contig.
-     *  If an accession.version identifier is not used to describe
-     *  the object the naming convention is to precede chromosome numbers
-     *  (e.g. chr1) and linkage group numbers  (e.g. LG3).
-     *  Contigs or scaffolds may have any identifier that is unique
-     *  within the assembly
-     */
-    extern column utf8 SCAFFOLD_NAME
-        = out_scaffold_name;
-    extern column ascii SCAFFOLD_NAME = cast (out_scaffold_name);
-    utf8 out_scaffold_name
-        = idx:text:project < 'scaffold_name' > ( .SCAFFOLD_NAME );
-    physical column < utf8 > zip_encoding .SCAFFOLD_NAME
-        = idx:text:insert < 'scaffold_name' > ( SCAFFOLD_NAME );
-
-    /* COMPONENT_START
-     *  starting position within the component sequence
-     */
-    extern column < INSDC:coord:one > izip_encoding COMPONENT_START;
-
-    /* COMPONENT_LEN
-     *  length of the component/gap projected onto the scaffold
-     */
-    extern column < INSDC:coord:len > izip_encoding COMPONENT_LEN;
-
-    /* COMPONENT_PROPS
-     *  see description of type
-     */
-    extern column < NCBI:WGS:component_props > zip_encoding COMPONENT_PROPS;
-
-    /* COMPONENT_ID
-     *  one row-id for each non-gap component in COMPONENT_TYPE
-     */
-    extern column < I64 > izip_encoding COMPONENT_ID;
-}
-
-table NCBI:WGS:view:scaffold #1 = NCBI:WGS:tbl:scaffold #1
-{
-    /* ACCESSION
-     *  scaffold accession
-     */
-    readonly column ascii ACCESSION
-        = out_accession;
-    I64 scaffold_row_id
-        = row_id ();
-    I64 acc_row_id
-        = < I64 > echo < 1 > ();
-    ascii acc_prefix
-        = < ascii > simple_sub_select < 'SEQUENCE', 'ACC_PREFIX' > ( acc_row_id );
-    U32 acc_contig_len
-        = < ascii > simple_sub_select < 'SEQUENCE', 'ACC_CONTIG_LEN' > ( acc_row_id );
-    ascii out_accession
-        = sprintf < "%sS%0*d" > ( acc_prefix, acc_contig_len, scaffold_row_id );
-
-    /* READ
-     *  base space construction of entire scaffold
-     */
-
-    // construct the read from contigs and gaps
-    INSDC:4na:bin out_4na_bin = NCBI:WGS:build_scaffold_read
-        ( .COMPONENT_START, .COMPONENT_LEN, .COMPONENT_PROPS, .COMPONENT_ID );
-
-    // various READ columns
-    default readonly column INSDC:dna:text READ
-        = < INSDC:4na:bin, INSDC:dna:text > map < INSDC:4na:map:BINSET, INSDC:4na:map:CHARSET > ( out_4na_bin );
-    readonly column INSDC:4na:bin READ
-        = out_4na_bin;
-    readonly column INSDC:4na:packed READ
-        = pack ( out_4na_bin );
-    readonly column INSDC:x2na:bin READ
-        = out_x2na_bin;
-    INSDC:x2na:bin out_x2na_bin
-        = < INSDC:4na:bin, INSDC:x2na:bin > map < INSDC:4na:map:BINSET, [ 4,0,1,4,2,4,4,4,3,4,4,4,4,4,4,4 ] > ( out_4na_bin );
-    readonly column INSDC:2na:bin READ
-        = out_2na_bin;
-    INSDC:2na:bin out_2na_bin
-        = < INSDC:x2na:bin, INSDC:2na:bin > map < INSDC:x2na:map:BINSET, [ 0, 1, 2, 3, 0 ] > ( out_x2na_bin );
-    readonly column INSDC:2na:packed READ
-        = pack ( out_2na_bin );
-
-
-    /* CSREAD
-     *  base space converted to color space
-     */
-    default readonly column INSDC:color:text CSREAD
-        = < INSDC:x2cs:bin, INSDC:color:text > map <  INSDC:x2cs:map:BINSET, INSDC:x2cs:map:CHARSET > ( out_x2cs_bin );
-    readonly column INSDC:x2cs:bin CSREAD
-        = out_x2cs_bin;
-    INSDC:x2cs:bin out_x2cs_bin
-        = NCBI:color_from_dna ( out_x2na_bin, out_read_start, .COMPONENT_LEN, out_cs_key, out_color_matrix );
-    readonly column INSDC:2cs:bin CSREAD
-        = out_2cs_bin;
-    INSDC:2cs:bin out_2cs_bin
-        = < INSDC:x2cs:bin, INSDC:2cs:bin > map < INSDC:x2cs:map:BINSET, [ 0, 1, 2, 3, 0 ] > ( out_x2cs_bin );
-    readonly column INSDC:2cs:packed CSREAD
-        = pack ( out_2cs_bin );
-
-    /* CS_NATIVE
-     *  is color-space the native sequence space
-     */
-    readonly column bool CS_NATIVE
-        = < bool > echo < false > ();
-
-    /* CS_KEY
-     *  leading call given in base-space
-     */
-    readonly column INSDC:dna:text CS_KEY
-        = out_cs_key;
-    INSDC:dna:text out_cs_key
-        = < INSDC:dna:text > echo < 'T' > ( .COMPONENT_LEN );
-
-    /* COLOR_MATRIX
-     *  matrix used for color-space conversions
-     */
-    readonly column U8 COLOR_MATRIX
-        = out_color_matrix;
-    U8 out_color_matrix
-        = < U8 > echo < INSDC:color:default_matrix > ();
-
-
-    /* QUALITY
-     *  base or color call qualities
-     */
-    INSDC:quality:phred out_qual_phred = NCBI:WGS:build_scaffold_qual
-        ( .COMPONENT_START, .COMPONENT_LEN, .COMPONENT_PROPS, .COMPONENT_ID );
-
-    // PHRED is default
-    default readonly column INSDC:quality:phred QUALITY
-        = out_qual_phred;
-
-    // textual encodings
-    readonly column INSDC:quality:text:phred_33 QUALITY
-        = ( INSDC:quality:text:phred_33 ) < B8 > sum < 33 > ( out_qual_phred );
-    readonly column INSDC:quality:text:phred_64 QUALITY
-        = ( INSDC:quality:text:phred_64 ) < B8 > sum < 64 > ( out_qual_phred );
-
-
-    /* PLATFORM
-     *  sequencing platform, if known
-     */
-    INSDC:SRA:platform_id out_platform
-        = < INSDC:SRA:platform_id > echo < SRA_PLATFORM_UNDEFINED > ();
-    readonly column INSDC:SRA:platform_id PLATFORM
-        = out_platform;
-
-    /* SPOT_ID
-     *  support for libsra
-     */
-    INSDC:SRA:spotid_t out_spot_id
-        = cast ( scaffold_row_id );
-    readonly column INSDC:SRA:spotid_t SPOT_ID
-        = out_spot_id;
-
-    /* NAME
-     *  spot name
-     */
-    readonly column ascii NAME
-        = out_scaffold_name;
-
-    /* SPOT_LEN
-     * TRIM_START
-     * TRIM_LEN
-     *  spot descriptor
-     */
-    readonly column INSDC:coord:len SPOT_LEN
-        = out_spot_len;
-    INSDC:coord:len out_spot_len
-        = < INSDC:coord:len > vec_sum ( .COMPONENT_LEN );
-    readonly column INSDC:coord:zero TRIM_START
-        = < INSDC:coord:zero > echo < 0 > ();
-    readonly column INSDC:coord:len TRIM_LEN
-        = out_spot_len;
-
-
-    /* READ_START
-     * READ_LEN
-     * READ_TYPE
-     *  read descriptor portion
-     */
-    readonly column INSDC:coord:zero READ_START
-        = out_read_start;
-    INSDC:coord:zero out_read_start
-        = ( INSDC:coord:zero ) < U32 > integral ( .COMPONENT_LEN );
-    readonly column INSDC:coord:len READ_LEN
-        = .COMPONENT_LEN;
-    readonly column INSDC:SRA:xread_type READ_TYPE
-        = out_read_type;
-    INSDC:SRA:xread_type out_read_type
-        = NCBI:WGS:build_read_type ( .COMPONENT_PROPS );
-}
-
-
-/*--------------------------------------------------------------------------
- * contig
- */
-database NCBI:WGS:db:contig #1.1
-{
-    table NCBI:WGS:tbl:nucleotide SEQUENCE;
-    table NCBI:WGS:tbl:protein PROTEIN;
-    table NCBI:WGS:tbl:gi_idx GI_IDX;
-    table NCBI:WGS:tbl:scaffold SCAFFOLD;
-};
diff --git a/interfaces/os/mac/os-native.h b/interfaces/os/mac/os-native.h
index 079c12b..eeacd46 100644
--- a/interfaces/os/mac/os-native.h
+++ b/interfaces/os/mac/os-native.h
@@ -45,7 +45,6 @@ extern "C" {
  */
 char *strdup ( const char *str );
 
-#if !defined(__MAC_10_7) || (__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_7)
 static __inline__
 char *strndup ( const char *str, size_t n )
 {
@@ -55,7 +54,7 @@ char *strndup ( const char *str, size_t n )
     if ( end != NULL )
         n = end - str;
 
-    dupstr = (char*)malloc ( n + 1 );
+    dupstr = malloc ( n + 1 );
     if ( dupstr != NULL )
     {
         memcpy ( dupstr, str, n );
@@ -64,7 +63,6 @@ char *strndup ( const char *str, size_t n )
 
     return dupstr;
 }
-#endif
 
 /*--------------------------------------------------------------------------
  * strchrnul - implemented inline here
@@ -85,7 +83,7 @@ static __inline__
 void *memrchr ( const void *s, int c, size_t n )
 {
     size_t i;
-    const char *cp = (const char*)s;
+    const char *cp = s;
     for ( i = n; i > 0; )
     {
         if ( ( int ) cp [ -- i ] == c )
diff --git a/interfaces/os/unix/unix-native.h b/interfaces/os/unix/unix-native.h
index 236806a..21459f8 100644
--- a/interfaces/os/unix/unix-native.h
+++ b/interfaces/os/unix/unix-native.h
@@ -44,6 +44,7 @@ extern "C" {
  *  a structure for communicating a timeout
  *  which under Unix converts to an absolute time once prepared
  */
+typedef struct timeout_t timeout_t;
 struct timeout_t
 {
     struct timespec ts;
@@ -51,6 +52,18 @@ struct timeout_t
     uint32_t prepared;
 };
 
+/* Init
+ *  initialize a timeout in milliseconds
+ */
+rc_t TimeoutInit ( timeout_t *tm, uint32_t msec );
+
+
+/* Prepare
+ *  ensures that a timeout is prepared with an absolute value
+*/
+rc_t TimeoutPrepare ( timeout_t *tm );
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/os/win/atomic64.h b/interfaces/os/win/atomic64.h
index cb9870e..566204a 100644
--- a/interfaces/os/win/atomic64.h
+++ b/interfaces/os/win/atomic64.h
@@ -57,7 +57,7 @@ struct atomic64_t
     atomic64_read_and_add ( v, i )
 
 /* add to v -> counter and return the result */
-static __inline LONG64 atomic64_add_and_read ( atomic64_t *v, int i )
+static __inline int atomic64_add_and_read ( atomic64_t *v, int i )
 {
 	return atomic64_read_and_add ( v, i ) + i;
 }
@@ -90,9 +90,9 @@ static __inline LONG64 atomic64_add_and_read ( atomic64_t *v, int i )
     InterlockedCompareExchange64 ( & ( v ) -> counter, ( s ), ( t ) )
 
 /* conditional modifications */
-static __inline LONG64 atomic64_read_and_add_lt ( atomic64_t *v, int i, int t )
+static __inline int atomic64_read_and_add_lt ( atomic64_t *v, int i, int t )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read ( v ); val < t; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
@@ -102,9 +102,9 @@ static __inline LONG64 atomic64_read_and_add_lt ( atomic64_t *v, int i, int t )
 	return val;
 }
 
-static __inline LONG64 atomic64_read_and_add_le ( atomic64_t *v, int i, int t )
+static __inline int atomic64_read_and_add_le ( atomic64_t *v, int i, int t )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read ( v ); val <= t; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
@@ -114,9 +114,9 @@ static __inline LONG64 atomic64_read_and_add_le ( atomic64_t *v, int i, int t )
 	return val;
 }
 
-static __inline LONG64 atomic64_read_and_add_eq ( atomic64_t *v, int i, int t )
+static __inline int atomic64_read_and_add_eq ( atomic64_t *v, int i, int t )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read( v ); val == t; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
@@ -126,9 +126,9 @@ static __inline LONG64 atomic64_read_and_add_eq ( atomic64_t *v, int i, int t )
 	return val;
 }
 
-static __inline LONG64 atomic64_read_and_add_ne ( atomic64_t *v, int i, int t )
+static __inline int atomic64_read_and_add_ne ( atomic64_t *v, int i, int t )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read ( v ); val != t; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
@@ -138,9 +138,9 @@ static __inline LONG64 atomic64_read_and_add_ne ( atomic64_t *v, int i, int t )
 	return val;
 }
 
-static __inline LONG64 atomic64_read_and_add_ge ( atomic64_t *v, int i, int t )
+static __inline int atomic64_read_and_add_ge ( atomic64_t *v, int i, int t )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read ( v ); val >= t; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
@@ -150,9 +150,9 @@ static __inline LONG64 atomic64_read_and_add_ge ( atomic64_t *v, int i, int t )
 	return val;
 }
 
-static __inline LONG64 atomic64_read_and_add_gt ( atomic64_t *v, int i, int t )
+static __inline int atomic64_read_and_add_gt ( atomic64_t *v, int i, int t )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read ( v ); val > t; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
@@ -162,9 +162,9 @@ static __inline LONG64 atomic64_read_and_add_gt ( atomic64_t *v, int i, int t )
 	return val;
 }
 
-static __inline LONG64 atomic64_read_and_add_odd ( atomic64_t *v, int i )
+static __inline int atomic64_read_and_add_odd ( atomic64_t *v, int i )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read ( v ); ( val & 1 ) != 0; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
@@ -174,9 +174,9 @@ static __inline LONG64 atomic64_read_and_add_odd ( atomic64_t *v, int i )
 	return val;
 }
 
-static __inline LONG64 atomic64_read_and_add_even ( atomic64_t *v, int i )
+static __inline int atomic64_read_and_add_even ( atomic64_t *v, int i )
 {
-	LONG64 val, val_intern;
+	LONG val, val_intern;
 	for ( val = atomic64_read ( v ); ( val & 1 ) == 0; val = val_intern )
 	{
 		val_intern = atomic64_test_and_set ( v, val + i, val );
diff --git a/interfaces/os/win/os-native.h b/interfaces/os/win/os-native.h
index 224129a..cb24027 100644
--- a/interfaces/os/win/os-native.h
+++ b/interfaces/os/win/os-native.h
@@ -49,9 +49,7 @@
 #include <klib/text.h>
 #endif
 
-#include <ctype.h>
 #include <direct.h>
-#include <math.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -70,24 +68,31 @@ extern "C" {
  *  a structure for communicating a timeout
  *  which under Windows is a relative time
  */
+typedef struct timeout_t timeout_t;
 struct timeout_t
 {
     uint32_t mS;
-    uint32_t prepared;
 };
 
+/* Init
+ *  initialize a timeout in milliseconds
+ */
+rc_t CC TimeoutInit ( timeout_t *tm, uint32_t msec );
+
+
+/* Prepare
+ *  ensures that a timeout is prepared with an absolute value
+*/
+#define TimeoutPrepare( tm ) \
+    ( ( void ) ( tm ), 0 )
+
+
 /* not consistent across all windows? */
 /* #define snprintf _snprintf */
 
 
-#ifndef putenv
-#define putenv( s ) _putenv ( s )
-#endif
-
 #define mkdir( d, m ) _mkdir( d )
 #define strcasecmp _stricmp
-#define strtoll _strtoi64
-#define strtok_r strtok_s
 
 #undef strdup
 #define strdup( str ) \
@@ -109,7 +114,7 @@ static __inline__
 void *memrchr ( const void *s, int c, size_t n )
 {
     size_t i;
-    const char *cp = (const char*)s;
+    const char *cp = s;
     for ( i = n; i > 0; )
     {
         if ( ( int ) cp [ -- i ] == c )
@@ -158,8 +163,6 @@ char *strsep ( char **stringp, const char *delim )
 	return NULL;
 }
 
-#define gmtime_r(t, tm) gmtime_s(tm, t)
-#define timegm _mkgmtime
 
 static __inline
 int strncasecmp( const char *s1, const char *s2, size_t n )
@@ -167,38 +170,6 @@ int strncasecmp( const char *s1, const char *s2, size_t n )
     return _strnicmp( s1, s2, n );
 }
 
-static __inline 
-const char *strcasestr (const char *s1, const char *s2)
-{
-    unsigned char c2 = tolower((unsigned char) *s2);
-    size_t l1 = strlen(s1), l2 = strlen(s2);
-    
-    if (l2 == 0) {
-        return s1;
-    }
-
-    while (l1 >= l2) {
-        if (tolower((unsigned char) *s1) == c2
-            &&  (l2 == 1  ||  _strnicmp(s1 + 1, s2 + 1, l2 - 1) == 0)) {
-            return s1;
-        }
-        ++s1;
-        --l1;
-    }
-
-    return NULL;
-}
-
-static __inline
-long int lround ( double x )
-{
-    double val = ( x < 0.0 ) ? ceil ( x - 0.5 ) : floor ( x + 0.5 );
-    if ( val > ( double ) LONG_MAX )
-        return LONG_MAX;
-    if ( val < ( double ) LONG_MIN )
-        return LONG_MIN;
-    return ( long int ) val;
-}
 
 #ifdef __cplusplus
 }
diff --git a/interfaces/sra/impl.h b/interfaces/sra/impl.h
index 815d5a6..86674ee 100644
--- a/interfaces/sra/impl.h
+++ b/interfaces/sra/impl.h
@@ -50,7 +50,6 @@ struct KNamelist;
 struct KDirectory;
 typedef union SRAPath_vt SRAPath_vt;
 typedef struct SRAPath_vt_v1 SRAPath_vt_v1;
-typedef struct SRAPath_vt_v2 SRAPath_vt_v2;
 
 
 /*--------------------------------------------------------------------------
@@ -84,28 +83,9 @@ struct SRAPath_vt_v1
     rc_t ( CC *listPath ) ( const SRAPATH_IMPL *self, struct KNamelist **runs, bool deep );
 };
 
-struct SRAPath_vt_v2
-{
-    /* version == 2.x */
-    uint32_t maj;
-    uint32_t min;
-
-    rc_t ( CC *addref ) ( const SRAPATH_IMPL *self );
-    rc_t ( CC *release ) ( const SRAPATH_IMPL *self );
-    rc_t ( CC *version ) ( const SRAPATH_IMPL *self, uint32_t *version );
-    rc_t ( CC *clear ) ( SRAPATH_IMPL *self );
-    rc_t ( CC *addRepPath ) ( SRAPATH_IMPL *self, const char *path );
-    rc_t ( CC *addVolPath ) ( SRAPATH_IMPL *self, const char *path );
-    rc_t ( CC *fullPath ) ( const SRAPATH_IMPL *self, const char *rep, const char *vol,
-			 const char *acc, char *path, size_t path_max );
-    bool ( CC *testPath ) ( const SRAPATH_IMPL *self, const char *path );
-    rc_t ( CC *findPath ) ( const SRAPATH_IMPL *self, const char *acc, char *path, size_t path_max, size_t *rep_len );
-};
-
 union SRAPath_vt
 {
     SRAPath_vt_v1 v1;
-    SRAPath_vt_v2 v2;
 };
 
 
diff --git a/interfaces/sra/pevents.vschema b/interfaces/sra/pevents.vschema
index 8072810..5fd53be 100644
--- a/interfaces/sra/pevents.vschema
+++ b/interfaces/sra/pevents.vschema
@@ -71,7 +71,7 @@ table NCBI:SRA:tbl:pevents #1.0
         zip_encoding #1.0 < Z_RLE > .SORT_ORDER = sort_encode;
 
     F32 reorder = NCBI:SRA:reorder < 4 > ( sort_encode, LIKELIHOODS );
-    F32 like_scale = vdb:fixed_vec_sum < F32, 4 > ( reorder );
+    F32 like_scale = vdb:vec_sum < F32, 4 > ( reorder );
 
     physical column < F32 >
         fzip_encoding #1.0 < 4 > .SCALE = like_scale;
diff --git a/interfaces/sra/sradb-priv.h b/interfaces/sra/sradb-priv.h
index d22d8d0..204008b 100644
--- a/interfaces/sra/sradb-priv.h
+++ b/interfaces/sra/sradb-priv.h
@@ -27,18 +27,6 @@
 #ifndef _h_sra_sradb_priv_
 #define _h_sra_sradb_priv_
 
-#ifndef _h_klib_container_
-#include <klib/container.h>
-#endif
-
-#ifndef _h_klib_text
-#include <klib/text.h>
-#endif
-
-#ifndef _h_klib_vector
-#include <klib/vector.h>
-#endif
-
 #ifndef _h_sra_sradb_
 #include <sra/sradb.h>
 #endif
@@ -64,15 +52,14 @@ extern "C" {
  * forwards
  */
 struct KFile;
-struct KDirectory;
 struct KDBManager;
 struct KTable;
-struct KLock;
 struct VDBManager;
 struct VTable;
 struct VSchema;
 struct SRAPath;
 
+
 /*--------------------------------------------------------------------------
  * SRAMgr
  *  opaque handle to SRA library
@@ -129,11 +116,6 @@ SRA_EXTERN rc_t CC SRAMgrVGetTableModDate ( const SRAMgr *self,
 SRA_EXTERN rc_t CC SRAMgrGetTableModDate ( const SRAMgr *self,
     KTime_t *mtime, const char *spec, ... );
 
-/* ConfigReload
- *  update SRAPath object
- */
-SRA_EXTERN rc_t CC SRAMgrConfigReload( const SRAMgr *self, struct KDirectory const *wd );
-
 
 /*--------------------------------------------------------------------------
  * SRATable
@@ -171,11 +153,7 @@ SRA_EXTERN rc_t CC SRATableGetKTableUpdate ( SRATable *self, struct KTable **ktb
 SRA_EXTERN rc_t CC SRATableMakeSingleFileArchive ( const SRATable *self,
     struct KFile const **sfa, bool lightweight, const char** ext );
 
-/* SingleFileArchiveExt
- *  retrieve archive extension based on object in the spec
- */
-SRA_EXTERN rc_t CC SRAMgrSingleFileArchiveExt(const SRAMgr *self,
-    const char* spec, const bool lightweight, const char** ext);
+
 /*--------------------------------------------------------------------------
  * SRAPath
  */
@@ -184,7 +162,7 @@ SRA_EXTERN rc_t CC SRAMgrSingleFileArchiveExt(const SRAMgr *self,
  *  finds location of run within rep-server/volume matrix
  *  returns length of rep-server portion
  */
-SRA_EXTERN rc_t CC SRAPathFindWithRepLen ( struct SRAPath const *self,
+SRA_PATH_EXTERN rc_t CC SRAPathFindWithRepLen ( struct SRAPath const *self,
     const char *accession, char *path, size_t path_max, size_t *rep_len );
 
 
@@ -285,102 +263,7 @@ SRA_EXTERN const SRATableData *CC SRATableGetTableData ( const SRATable *self );
 
 #endif
 
-/*--------------------------------------------------------------------------
- * SRA Accession Cache
- */
-struct SRACacheIndex;
-
-typedef struct SRACacheMetrics
-{   /* 0 = metric not used */
-
-    /* sizeof table data */
-    /* expanded cache bytes, i.e. cursor */
-    uint64_t bytes;
-    uint32_t elements; /* open tables */
-    uint32_t threads;
-    uint32_t fds;
-} SRACacheMetrics;
-
-#define SRACacheThresholdSoftBytesDefault       ((uint64_t)0)
-#define SRACacheThresholdSoftElementsDefault    ((uint32_t)1000)
-#define SRACacheThresholdSoftThreadsDefault     ((uint32_t)0)
-#define SRACacheThresholdSoftFdsDefault         ((uint32_t)0)
-
-#define SRACacheThresholdHardBytesDefault       ((uint64_t)0)
-#define SRACacheThresholdHardElementsDefault    ((uint32_t)10000)
-#define SRACacheThresholdHardThreadsDefault     ((uint32_t)0)
-#define SRACacheThresholdHardFdsDefault         ((uint32_t)0)
-
-SRA_EXTERN bool CC SRACacheMetricsLessThan(const SRACacheMetrics* a, const SRACacheMetrics* b);
-
-typedef struct SRACacheElement 
-{
-    DLNode dad;
-    
-    SRATable*   object;
-    
-    KTime_t lastAccessed;
-    
-    struct SRACacheIndex* index;
-    uint32_t key;
-
-    SRACacheMetrics metrics;
-} SRACacheElement;
-
-SRA_EXTERN rc_t CC SRACacheElementMake(SRACacheElement**        self, 
-                                       SRATable*                object, 
-                                       struct SRACacheIndex*    index, 
-                                       uint32_t                 key, 
-                                       const SRACacheMetrics*   metrics);
-SRA_EXTERN rc_t CC SRACacheElementDestroy(SRACacheElement* self);
-
-typedef struct SRACacheIndex
-{
-    BSTNode dad;
-    
-    String* prefix;
-    KVector* body; /* KVector<SRACacheElement*> */
-} SRACacheIndex;
-
-SRA_EXTERN rc_t CC SRACacheIndexMake(SRACacheIndex** self, String* prefix);
-SRA_EXTERN rc_t CC SRACacheIndexDestroy(SRACacheIndex* self);
-
-typedef struct SRACache
-{
-    BSTree indexes; /* grows as needed */
-
-    DLList lru; /* DLList<SRACacheElement*>;  head is the oldest */
-    
-    SRACacheMetrics softThreshold;
-    SRACacheMetrics hardThreshold;
-    SRACacheMetrics usage;
-    
-    struct KLock* mutex; 
-    
-} SRACache;
-
-SRA_EXTERN rc_t CC SRACacheInit(SRACache**);
-
-SRA_EXTERN rc_t CC SRACacheGetSoftThreshold(SRACache* self, SRACacheMetrics* metrics);
-SRA_EXTERN rc_t CC SRACacheSetSoftThreshold(SRACache* self, const SRACacheMetrics* metrics);
-
-SRA_EXTERN rc_t CC SRACacheGetHardThreshold(SRACache* self, SRACacheMetrics* metrics);
-SRA_EXTERN rc_t CC SRACacheSetHardThreshold(SRACache* self, const SRACacheMetrics* metrics);
-
-SRA_EXTERN rc_t CC SRACacheGetUsage(SRACache* self, SRACacheMetrics* metrics);
-
-/* flush tables until usage is lower than specified in self->softThreshold */
-SRA_EXTERN rc_t CC SRACacheFlush(SRACache* self); 
-
-/* if found, moves element to the back of the list; return NULL object if not in the cache */
-SRA_EXTERN rc_t CC SRACacheGetTable(SRACache* self, const char* acc, const SRATable** object); 
-
-/* 
- * fails if table is already in the cache
- */
-SRA_EXTERN rc_t CC SRACacheAddTable(SRACache* self, const char* acc, SRATable*); 
 
-SRA_EXTERN rc_t CC SRACacheWhack(SRACache* self);
 
 #ifdef __cplusplus
 }
diff --git a/interfaces/sra/srapath.h b/interfaces/sra/srapath.h
index 9965e8d..19cc6ab 100644
--- a/interfaces/sra/srapath.h
+++ b/interfaces/sra/srapath.h
@@ -43,8 +43,6 @@
 extern "C" {
 #endif
 
-#define TOOLS_USE_SRAPATH 0
-
 /*--------------------------------------------------------------------------
  * forwards
  */
@@ -78,6 +76,7 @@ SRA_EXTERN rc_t CC SRAPathMake ( SRAPath **pm, struct KDirectory const *dir );
 SRA_EXTERN rc_t CC SRAPathAddRef ( const SRAPath *self );
 SRA_EXTERN rc_t CC SRAPathRelease ( const SRAPath *self );
 
+
 /* Version
  *  returns the library version
  */
@@ -85,13 +84,13 @@ SRA_EXTERN rc_t CC SRAPathVersion ( const SRAPath *self, uint32_t *version );
 
 
 /* Clear
- *  forget existing server and volume paths for the default repository
+ *  forget all existing server and volume paths
  */
 SRA_EXTERN rc_t CC SRAPathClear ( SRAPath *self );
 
 
 /* AddRepPath
- *  add a replication path to the default repository
+ *  add a replication path
  *
  *  "rep" [ IN ] - NUL-terminated server search path
  *  may be a compound path with ':' separator characters, e.g.
@@ -106,7 +105,7 @@ SRA_EXTERN rc_t CC SRAPathAddRepPath ( SRAPath *self, const char *rep );
 
 
 /* AddVolPath
- *  add a volume path to the default repository
+ *  add a volume path
  *
  *  "vol" [ IN ] - NUL-terminated volume search path
  *  may be a compound path with ':' separator characters, e.g.
diff --git a/interfaces/vdb/blob.h b/interfaces/vdb/blob.h
deleted file mode 100644
index 89feaa5..0000000
--- a/interfaces/vdb/blob.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_vdb_blob_
-#define _h_vdb_blob_
-
-#ifndef _h_vdb_extern_
-#include <vdb/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-
-
-/*--------------------------------------------------------------------------
- * VBlob
- *  a collection of data cells
- */
-typedef struct VBlob VBlob;
-
-
-/* AddRef
- * Release
- *  all objects are reference counted
- *  NULL references are ignored
- */
-VDB_EXTERN rc_t CC VBlobAddRef ( const VBlob *self );
-VDB_EXTERN rc_t CC VBlobRelease ( const VBlob *self );
-
-
-/* IdRange
- *  returns id range for blob
- *
- *  "first" [ OUT, NULL OKAY ] and "count" [ OUT, NULL OKAY ] -
- *  id range is returned in these output parameters, where
- *  at least ONE must be NOT-NULL
- */
-VDB_EXTERN rc_t CC VBlobIdRange ( const VBlob *self,
-    int64_t *first, uint64_t *count );
-
-
-/* Read
- *  read entire single cell of byte-aligned data into a buffer
- *
- *  "row_id" [ IN ] - allows ReadDirect random access to any cell
- *  in column
- *
- *  "elem_bits" [ IN ] - expected element size in bits, required
- *  to be compatible with the actual element size, and be a multiple
- *  of 8 ( byte-aligned ). for non-byte-aligned data, see ReadBits
- *
- *  "buffer" [ OUT ] and "blen" [ IN ] - return buffer for row data
- *  where "blen" gives buffer capacity in elements. the total buffer
- *  size in bytes == ( "elem_bits" * "blen" + 7 ) / 8.
- *
- *  "row_len" [ OUT ] - return parameter for the number of elements
- *  in the requested row.
- *
- *  when the return code is 0, "row_len" will contain the number of
- *  elements read into buffer. if the return code indicates that the
- *  buffer is too small, "row_len" will give the required buffer length.
- */
-VDB_EXTERN rc_t CC VBlobRead ( const VBlob *self, int64_t row_id,
-    uint32_t elem_bits, void *buffer, uint32_t blen, uint32_t *row_len );
-
-
-/* ReadBits
- *  read single row of potentially bit-aligned cell data into a buffer
- *
- *  "elem_bits" [ IN ] - expected element size in bits, required to be
- *  compatible with the actual element size, and may ( or may not ) be
- *  a multiple of 8 ( byte aligned ).
- *
- *  "start" [ IN ] - zero-based starting index to first element,
- *  valid from 0 .. row_len - 1
- *
- *  "buffer" [ IN ], "boff" [ IN ] and "blen" [ IN ] -
- *  return buffer for row data, where "boff" is in BITS
- *  and "blen" is in ELEMENTS.
- *
- *  "num_read" [ OUT ] - return parameter for the number of elements
- *  read, which is <= "blen"
- *
- *  "remaining" [ OUT, NULL OKAY ] - optional return parameter for
- *  the number of elements remaining to be read. specifically,
- *  "start" + "num_read" + "remaining" == row length, assuming that
- *  "start" <= row length.
- */
-VDB_EXTERN rc_t CC VBlobReadBits ( const VBlob *self, int64_t row_id,
-    uint32_t elem_bits, uint32_t start, void *buffer, uint32_t boff,
-    uint32_t blen, uint32_t *num_read, uint32_t *remaining );
-
-
-/* CellData
- *  access pointer to single cell of potentially bit-aligned cell data
- *
- *  "elem_bits" [ OUT, NULL OKAY ] - optional return parameter for
- *  element size in bits
- *
- *  "base" [ OUT ] and "boff" [ OUT, NULL OKAY ] -
- *  compound return parameter for pointer to row starting bit
- *  where "boff" is in BITS
- *
- *  "row_len" [ OUT, NULL OKAY ] - the number of elements in cell
- */
-VDB_EXTERN rc_t CC VBlobCellData ( const VBlob *self, int64_t row_id,
-    uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*  _h_vdb_blob_ */
diff --git a/interfaces/vdb/built-in.vschema b/interfaces/vdb/built-in.vschema
index 07b28c0..ba43a3a 100644
--- a/interfaces/vdb/built-in.vschema
+++ b/interfaces/vdb/built-in.vschema
@@ -45,7 +45,6 @@ typeset integer_set { I8, U8, I16, U16, I32, U32, I64, U64 };
 typeset float_set { F32, F64 };
 typeset numeric_set { integer_set, float_set };
 typeset text_set { utf8, utf16, utf32, ascii };
-typeset text8_set { utf8, ascii };
 typeset transpose_set { B8, B16, B32, B64 };
 
 
@@ -54,7 +53,6 @@ typeset transpose_set { B8, B16, B32, B64 };
  */
 fmtdef merged_fmt;
 fmtdef transposed_fmt;
-fmtdef delta_averaged_fmt;
 
 
 /*--------------------------------------------------------------------------
@@ -83,10 +81,11 @@ any cast #1.0 ( any in )
  *  performs a bitwise operation 'OR' for every byte in A and B
  *  A and B are not neccesarily have the same size
  *  the resulting row will have the size of B while OR operation is done for portion of A overlapping B
- *  For different sizes of A and B 'align' parameter provides what edge of A and B are aligned
+ *  For different sizes of A and B 'align' parameter provides what edge of A and B are alligned
  *  possible values ALIGN_LEFT, ALIGN_RIGHT
  * 
  */
+
 function < type T >
 T  bit_or #1 < U8 align > ( T  A, T B  )
     = vdb:bit_or;
@@ -208,7 +207,7 @@ T range_validate #1.0 < T lower, T upper > ( T in )
 
 
 /* select
- *  return first non-empty input for id
+ *  return first non-null input for id
  *  inputs are taken from first to last
  *
  *  "T" [ TYPE ] - data type of selection
@@ -272,17 +271,6 @@ function
 transpose_set detranspose #1 ( transposed_fmt in )
     = vdb:detranspose;
 
-/*
- * delta_average computes average representation of the maximium 
- * lengh row and deltas every row against it
- */
-function
-delta_averaged_fmt delta_average #1 ( any in ) 
-     = vdb:delta_average;
-
-function
-any undelta_average #1 ( delta_averaged_fmt in )
-    = vdb:undelta_average;
 
 /* merge
  *  merges all input blobs of any format/type into a single blob
@@ -362,7 +350,7 @@ ascii meta:attr:write #1.0 < ascii node, ascii attr > ( ascii in );
  *  "name" [ CONST ] - parameter name
  */
 function
-text8_set parameter:read #1.0 < ascii name, * bool deterministic > ();
+utf8 parameter:read #1.0 < ascii name, * bool deterministic > ();
 
 
 /* environment:read
@@ -371,7 +359,7 @@ text8_set parameter:read #1.0 < ascii name, * bool deterministic > ();
  *  "name" [ CONST ] - environment variable name
  */
 function
-text8_set environment:read #1.0 < ascii name > ();
+utf8 environment:read #1.0 < ascii name > ();
 
 
 /* idx:text:project
@@ -384,12 +372,12 @@ text8_set environment:read #1.0 < ascii name > ();
  *  of values to substitute for values not
  *  found in the index.
  */
-function text8_set idx:text:project #1.0 < ascii index_name > ( * text8_set substitute );
+function utf8 idx:text:project #1.0 < ascii index_name > ( * utf8 substitute );
 
 
 /* idx:text:insert
  */
-function text8_set idx:text:insert #1.0 < ascii index_name > ( text8_set key );
+function utf8 idx:text:insert #1.0 < ascii index_name > ( utf8 key );
 
 
 /* vdb:row_id_range
diff --git a/interfaces/vdb/cursor.h b/interfaces/vdb/cursor.h
index 55dce40..e90ef5f 100644
--- a/interfaces/vdb/cursor.h
+++ b/interfaces/vdb/cursor.h
@@ -49,7 +49,6 @@ extern "C" {
 /*--------------------------------------------------------------------------
  * forwards
  */
-struct VBlob;
 struct VTable;
 struct VTypedesc;
 struct VTypedecl;
@@ -223,17 +222,6 @@ VDB_EXTERN rc_t CC VCursorOpenRow ( const VCursor *self );
  */
 VDB_EXTERN rc_t CC VCursorCommitRow ( VCursor *self );
 
-/* RepeatRow
- *  repeats the current row by the count provided
- *  row must have been committed
- *
- *  AVAILABILITY: version 2.6
- *
- *  "count" [ IN ] - the number of times to repeat
- *  the current row.
- */
-VDB_EXTERN rc_t CC VCursorRepeatRow ( VCursor *self, uint64_t count );
-
 /* CloseRow
  *  balances OpenRow message
  *  if there are uncommitted modifications,
@@ -253,26 +241,6 @@ VDB_EXTERN rc_t CC VCursorCloseRow ( const VCursor *self );
 VDB_EXTERN rc_t CC VCursorFlushPage ( VCursor *self );
 
 
-/* GetBlob
- *  retrieve a blob of data containing the current row id
- * GetBlobDirect
- *  retrieve a blob of data containing the requested row id
- *
- *  "blob" [ OUT ] - return parameter for a new reference
- *  to VBlob containing requested cell. NB - must be released
- *  via VBlobRelease when no longer needed.
- *
- *  "row_id" [ IN ] - allows ReadDirect random access to any cell
- *  in column
- *
- *  "col_idx" [ IN ] - index of column to be read, returned by "AddColumn"
- */
-VDB_EXTERN rc_t CC VCursorGetBlob ( const VCursor *self,
-    struct VBlob const **blob, uint32_t col_idx );
-VDB_EXTERN rc_t CC VCursorGetBlobDirect ( const VCursor *self,
-    struct VBlob const **blob, int64_t row_id, uint32_t col_idx );
-
-
 /* Read
  *  read entire single row of byte-aligned data into a buffer
  * ReadDirect
@@ -429,11 +397,6 @@ VDB_EXTERN rc_t CC VCursorSetUserData ( const VCursor *self,
     void *data, void ( CC * destroy ) ( void *data ) );
 
 
-VDB_EXTERN rc_t CC VCursorLinkedCursorGet(const VCursor *cself,const char *tbl,VCursor const **curs);
-VDB_EXTERN rc_t CC VCursorLinkedCursorSet(const VCursor *cself,const char *tbl,VCursor const *curs);
-
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/interfaces/vdb/database.h b/interfaces/vdb/database.h
index 2753eee..82be035 100644
--- a/interfaces/vdb/database.h
+++ b/interfaces/vdb/database.h
@@ -188,22 +188,6 @@ VDB_EXTERN rc_t CC VDatabaseTypespec ( const VDatabase *self,
 VDB_EXTERN bool CC VDatabaseLocked ( const VDatabase *self );
 
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptDatabase, kptTable and kptIndex
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-VDB_EXTERN bool CC VDatabaseIsAlias ( const VDatabase *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name );
-
-
 /* Writable
  *  returns 0 if object is writable
  *  or a reason why if not
@@ -304,7 +288,7 @@ VDB_EXTERN rc_t CC VDatabaseOpenSchema ( const VDatabase *self, struct VSchema c
  *
  * "names" [ OUT ] - return parameter for table 
  */
-VDB_EXTERN rc_t CC VDatabaseListTbl ( const VDatabase *self, KNamelist **names );
+VDB_EXTERN rc_t CC VDatabaseListTbl( const VDatabase *self, KNamelist **names );
 
 /* lists the sub-databases of the database
  *
diff --git a/interfaces/vdb/dependencies.h b/interfaces/vdb/dependencies.h
deleted file mode 100644
index 4e96670..0000000
--- a/interfaces/vdb/dependencies.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-
-#ifndef _h_vdb_dependencies_
-#define _h_vdb_dependencies_
-
-
-#ifndef _h_vdb_extern_
-#include <vdb/extern.h>
-#endif
-
-#ifndef _h_klib_rc_
-#include <klib/rc.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VDatabase;
-struct VTable;
-
-
-/*--------------------------------------------------------------------------
- * VDBDependencies
- *  information about VDatabase dependencies
- *
- *  object contains zero or more dependencies
- *
- *  each dependency has a number of properties, accessible via index
- */
-typedef struct VDBDependencies VDBDependencies;
-
-
-/* AddRef
- * Release
- *  all objects are reference counted
- *  NULL references are ignored */
-VDB_EXTERN rc_t CC VDBDependenciesAddRef ( const VDBDependencies *self );
-VDB_EXTERN rc_t CC VDBDependenciesRelease ( const VDBDependencies *self );
-
-/* ListDependencies
- *  create a dependencies object: list all dependencies
- *
- *  "dep" [ OUT ] - return for VDBDependencies object
- *
- *  "missing" [ IN ] - if true, list only missing dependencies
- *  otherwise, list all dependencies
- */
-VDB_EXTERN rc_t CC VDatabaseListDependencies ( struct VDatabase const *self,
-    const VDBDependencies **dep, bool missing );
-
-/* Count
- *  retrieve the number of dependencies
- *
- *  "count" [ OUT ] - return parameter for dependencies count
- */
-VDB_EXTERN rc_t CC VDBDependenciesCount ( const VDBDependencies *self,
-    uint32_t *count );
-
-
-/* Type
- *  describe the dependency object type ( see kbd/manager.h )
- *
- *  "type" [ OUT ] - a KDBPathType
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesType ( const VDBDependencies *self,
-    uint32_t *type, uint32_t idx );
-
-
-/* Local
- *  retrieve local property
- *
- *  "local" [ OUT ] - true if object is stored internally
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesLocal ( const VDBDependencies *self,
-    bool *local, uint32_t idx );
-
-
-/* SeqId
- *  retrieve sequence id of object
- *
- *  "seq_id" [ OUT ] - returned pointer should not be freed.
- *   becomes invalid after VDBDependenciesRelease
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesSeqId ( const VDBDependencies *self,
-    const char **seq_id, uint32_t idx );
-
-
-/* Name
- *  retrieve object name
- *
- * "name" [ OUT ] - returner pointed should not be freed.
- *  it becomes invalid after VDBDependenciesRelease
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesName ( const VDBDependencies *self,
-    const char **name, uint32_t idx );
-
-
-/* Circular
- *  retrieve circular property
- *  reference sequences may be circular
- *
- *  "circular" [ OUT ] - true if dependency is a circular reference table
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesCircular ( const VDBDependencies *self,
-    bool *circular, uint32_t idx );
-
-
-/* Path
- *  returns [Local] path for resolved dependency,
- *  returns NULL for local and missing dependency.
- *
- *  "path" [ OUT ] - returned pointer should not be freed.
- *   it becomes invalid after VDBDependenciesRelease
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesPath ( const VDBDependencies *self,
-    const char **path, uint32_t idx );
-
-/* PathRemote
- *  returns Remote path for dependency,
- *  returns NULL for not found dependency.
- *
- *  "path" [ OUT ] - returned pointer should not be freed.
- *   it becomes invalid after VDBDependenciesRelease
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesPathRemote ( const VDBDependencies *self,
-    const char **path, uint32_t idx );
-
-/* PathCache
- *  returns Cache path for dependency,
- *  returns NULL for not found dependency.
- *
- *  "path" [ OUT ] - returned pointer should not be freed.
- *   it becomes invalid after VDBDependenciesRelease
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-VDB_EXTERN rc_t CC VDBDependenciesPathCache ( const VDBDependencies *self,
-    const char **path, uint32_t idx );
-
-/* Error
- *  trying to analyze rc code and object
- *  in order to recognize dependencies error
- *
- *  db OR table - only one is required
- */
-VDB_EXTERN bool CC UIError( rc_t rc,
-    struct VDatabase const *db, struct VTable const *table);
-
-/* report error(s) via PLOGERR based on an object
- * log_list - if true logs the missing items list also
- */
-VDB_EXTERN void CC UIDatabaseLOGError( rc_t rc,
-    struct VDatabase const *db, bool log_list );
-VDB_EXTERN void CC UITableLOGError( rc_t rc,
-    struct VTable const *table, bool log_list );
-
-/* return human-readable string explaining rc code.
- * the string should not be freed
- */
-VDB_EXTERN const char* CC UIDatabaseGetErrorString(rc_t rc);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _h_vdb_dependencies_ */
diff --git a/interfaces/vdb/manager.h b/interfaces/vdb/manager.h
index 90ccb2f..d06bc63 100644
--- a/interfaces/vdb/manager.h
+++ b/interfaces/vdb/manager.h
@@ -157,29 +157,6 @@ VDB_EXTERN rc_t CC VDBManagerGetUserData ( const VDBManager *self, void **data )
 VDB_EXTERN rc_t CC VDBManagerSetUserData ( const VDBManager *self,
     void *data, void ( CC * destroy ) ( void *data ) );
 
-
-/* GetObjVersion
- *  returns the vdb-version of the given object
- *
- *  "version" [ OUT ] - discovered vdb-version
- *
- *  "path"    [ IN ] - path to the object to be examined ( database or table )
- */
-VDB_EXTERN rc_t CC VDBManagerGetObjVersion ( const VDBManager *self,
-    ver_t * version, const char *path );
-
-
-/* PathType
- *  check the path type of an object/directory path.
- *
- *  this is an extension of the KDirectoryPathType ( see <kdb/manager.h> )
- *  and will return the KDirectory values if a path type is not specifically
- *  a VDB or KDB object.
- */
-VDB_EXTERN int CC VDBManagerPathType ( const VDBManager * self,
-    const char *path, ... );
-VDB_EXTERN int CC VDBManagerVPathType ( const VDBManager * self,
-    const char *path, va_list args );
         
 #ifdef __cplusplus
 }
diff --git a/interfaces/vdb/manager.hpp b/interfaces/vdb/manager.hpp
index b7becc3..e02e0d8 100644
--- a/interfaces/vdb/manager.hpp
+++ b/interfaces/vdb/manager.hpp
@@ -181,7 +181,7 @@ struct VDBManager
      *  wd-native character set giving path to table
      */
     inline rc_t OpenTable ( const VTable **tbl, struct VSchema const *schema,
-        const char *path, ... ) const throw ()
+        const char *path, ... ) throw()
     {
         va_list args;
         va_start ( args, path );
@@ -190,11 +190,11 @@ struct VDBManager
         return rc;
     }
     inline rc_t OpenTable ( const VTable **tbl, struct VSchema const *schema,
-        const char *path, va_list args ) const throw ()
+        const char *path, va_list args ) throw()
     { return VDBManagerVOpenTableRead ( this, tbl, schema, path, args ); }
 
     inline rc_t OpenTable ( VTable **tbl, struct VSchema const *schema,
-        const char *path, ... ) throw ()
+        const char *path, ... ) throw()
     {
         va_list args;
         va_start ( args, path );
@@ -203,7 +203,7 @@ struct VDBManager
         return rc;
     }
     inline rc_t OpenTable ( VTable **tbl, struct VSchema const *schema,
-        const char *path, va_list args ) throw ()
+        const char *path, va_list args ) throw()
     { return VDBManagerVOpenTableUpdate ( this, tbl, schema, path, args ); }
 
 
diff --git a/interfaces/vdb/report.h b/interfaces/vdb/report.h
deleted file mode 100644
index 90d3695..0000000
--- a/interfaces/vdb/report.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_vdb_report_
-#define _h_vdb_report_
-
-#ifndef _h_vdb_extern_
-#include <vdb/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VDBManager;
-struct VDatabase;
-struct VTable;
-
-
-/*--------------------------------------------------------------------------
- * An unrecoverable error happened.
- * We can help to solve it
- * by reporting information about known application execution environment.
- */
-
-
-/* SetVDBManager
- *  remember the manager in use
- */
-VDB_EXTERN rc_t CC ReportSetVDBManager ( struct VDBManager const *mgr );
-
-
-/* SetDatabase
- *  To be called after application successfully opened Database
- *  specified in command line.
- *  If the application supports multiple objects passed in command line
- *  to be processed in a loop: should be called for each argument database.
- *
- *  "path" [ IN ] - path to the database that is used to access it
- */
-VDB_EXTERN rc_t CC ReportResetDatabase ( const char *path,
-    struct VDatabase const *db );
-
-
-/* SetTable
- *  To be called after application successfully opened Table
- *  specified in command line.
- *  If the application supports multiple objects passed in command line
- *  to be processed in a loop: should be called for each argument table.
- *
- *  "path" [ IN ] - path to the table that is used to access it
- */
-VDB_EXTERN rc_t CC ReportResetTable ( const char *path,
-    struct VTable const *tbl );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_vdb_report_ */
diff --git a/interfaces/vdb/vdb-priv.h b/interfaces/vdb/vdb-priv.h
index 2d3640d..2e8b6e6 100644
--- a/interfaces/vdb/vdb-priv.h
+++ b/interfaces/vdb/vdb-priv.h
@@ -77,17 +77,6 @@ VDB_EXTERN rc_t CC VDBManagerOpenKDBManagerUpdate ( struct VDBManager *self,
 #define VDBManagerGetKDBManagerUpdate VDBManagerOpenKDBManagerUpdate
 
 
-/* ListExternalSchemaModules
- */
-VDB_EXTERN rc_t CC VDBManagerListExternalSchemaModules ( struct VDBManager const *self,
-    struct KNamelist **list );
-
-/* DisablePagemapThread
- *  this can cause difficulties for some clients
- */
-VDB_EXTERN rc_t CC VDBManagerDisablePagemapThread ( struct VDBManager const *self );
-
-
 /*--------------------------------------------------------------------------
  * VSchema
  */
@@ -134,34 +123,10 @@ VDB_EXTERN rc_t CC VTableOpenKTableUpdate ( struct VTable *self, struct KTable *
 
 #define VTableGetKTableRead VTableOpenKTableRead
 #define VTableGetKTableUpdate VTableOpenKTableUpdate
-
-
-/* DropColumn
- */
-VDB_EXTERN rc_t CC VTableDropColumn ( struct VTable *self, const char *name, ... );
-VDB_EXTERN rc_t CC VTableVDropColumn ( struct VTable *self, const char *name, va_list args );
-
-/* RenameColumn
- */
-VDB_EXTERN rc_t CC VTableRenameColumn ( struct VTable *self, bool force,
-    const char *from, const char *to );
-
-/* ListPhysColumns
- * ListSeededWritableColumns
- *  avail: 2.4
- */
-VDB_EXTERN rc_t CC VTableListPhysColumns ( struct VTable const *self, struct KNamelist **names );
-VDB_EXTERN rc_t CC VTableListSeededWritableColumns ( struct VTable *self,
-    struct KNamelist **names, struct KNamelist const *seed );
-
-
-/* HasStaticColumn
- *  given a physical column name, report whether it exists
- *  and is ( currently ) static
- *  avail: 2.5
- */
-VDB_EXTERN bool CC VTableHasStaticColumn ( struct VTable const *self, const char *name );
-
+    
+VDB_EXTERN rc_t CC VTableDropColumn(struct VTable *self, const char *name, ...);
+VDB_EXTERN rc_t CC VTableVDropColumn(struct VTable *self, const char *name, va_list args);
+    
 
 /* VUntypedTableTest
  *  support for tables created before embedded schema
@@ -182,41 +147,18 @@ typedef bool ( CC * VUntypedTableTest )
  *  useful if table was opened using a later version of schema than
  *  was used for its creation.
  */
-VDB_EXTERN rc_t VTableStoreSchema ( struct VTable *self );
+rc_t VTableStoreSchema ( struct VTable *self );
 
 
 /*--------------------------------------------------------------------------
  * VCursor
  */
 
-
-/* CreateCursorView
- *  creates a read-only cursor onto table
- *  uses table schema as base
- *  uses view described in viewspec as view
- *
- *  AVAILABILITY: version 2.3
- *
- *  for pre-vdb-2.3 tables, defaults to CreateCursorRead, ignoring
- *  schema specification
- *
- *  "curs" [ OUT ] - return parameter for newly created cursor
- *
- *  "viewspec" [ IN ] - NUL terminated string describing the view schema
- */
-VDB_EXTERN rc_t CC VTableCreateCursorView ( struct VTable const *self,
-    struct VCursor const **curs, const char *viewspec );
-
 /* PermitPostOpenAdd
  *  allows columns to be added to open cursor
  *  for write cursor, the effect lasts until the first row commit
  */
 VDB_EXTERN rc_t CC VCursorPermitPostOpenAdd ( struct VCursor const *self );
-/*  SuspendTriggers
- *  blocks resolution of schema-based triggers
- *
- */
-VDB_EXTERN rc_t CC VCursorSuspendTriggers ( struct VCursor const *self );
 
 /*  VCursorGetSchema
  *  returns current schema of the open cursor
@@ -236,8 +178,6 @@ VDB_EXTERN rc_t CC VCursorPageIdRange ( struct VCursor const *self,
     uint32_t idx, int64_t id, int64_t *first, int64_t *last );
 
 
-VDB_EXTERN rc_t CC VCursorLinkedCursorGet(const struct VCursor *cself,const char *tbl, struct VCursor const **curs);
-VDB_EXTERN rc_t CC VCursorLinkedCursorSet(const struct VCursor *cself,const char *tbl, struct VCursor const *curs);
 
 
 /*--------------------------------------------------------------------------
diff --git a/interfaces/vdb/vdb.vschema b/interfaces/vdb/vdb.vschema
index fa501c9..4d8f428 100644
--- a/interfaces/vdb/vdb.vschema
+++ b/interfaces/vdb/vdb.vschema
@@ -421,7 +421,7 @@ T [ * ] paste #1.0 ( T [ * ] in, ... )
 
 
 /* vec_sum
- *  compute the sum of all the elements of the row
+ *  compute the sum of all the elements of the input vector
  *
  *  "T" [ TYPE ] - base element type to be processed
  *
@@ -431,17 +431,6 @@ function < type T >
 T vec_sum #1.0 ( T [ * ] in )
     = vdb:vec_sum;
 
-/* vec_sum
- *  compute the sum of all the elements of the input vector
- *
- *  "T" [ TYPE ] - base element type to be processed
- *
- *  "in" [ DATA ] - the input
- */
-function < type T >
-T fixed_vec_sum #1.0 ( T [ * ] in )
-    = vdb:fixed_vec_sum;
-
 
 /* checksum
  *  compute a checksum ( hash ) of all of the input bytes
@@ -645,21 +634,6 @@ T delta_zip_encoding #1.0
         return zip < Z_RLE, Z_BEST_SPEED > ( dlt );
     }
 }
-physical < type T >
-T delta_average_zip_encoding #1.0
-{
-    decode
-    {
-        delta_averaged_fmt t = unzip ( @ );
-        return undelta_average ( t );
-    }
-
-    encode
-    {
-        delta_averaged_fmt t = delta_average ( @ );
-        return zip < Z_RLE, Z_BEST_SPEED > ( t );
-    }
-}
 
 /* bzip
  * bunzip
@@ -747,7 +721,7 @@ numeric_set strtonum #1.0 < * U32 radix > ( text_set str )
  *
  *  formatting rules differ somewhat from C sprintf:
  *
- *        '%' [ <flags> ] [ <field-width> ] [ '.' <precision> ] [ ':' <index> ] <storage-class>
+ *    '%' [ <flags> ] [ <field-width> ] [ ':' <index-range> ] [ '.' <precision> ] <storage-class>
  *
  *  where:
  *
@@ -765,33 +739,22 @@ numeric_set strtonum #1.0 < * U32 radix > ( text_set str )
  *        | '*'           : take field width from args
  *        ;
  *
- *    precision
- *        = DECIMAL       : a base-10 numeral
- *        | '*'           : take precision from args
- *        |               : an empty precision means 0
+ *    index-range
+ *        = index
+ *        | index '-' index
  *        ;
  *
  *    index
- *        = idx           : a single, zero-based vector element
- *        | idx '-' idx   : a fully-closed, zero-based interval
- *        | idx '/' len   : a start index plus length
- *        ;
- *
- *    idx
- *        = DECIMAL       : an unsigned base-10 numeral
+ *        = DECIMAL       : a base-10 numeral
+ *        | '$'           : last vector element
  *        | '*'           : take index from args
- *        | '$'           : last element in cell
- *        |               : an empty index means 0 or $
  *        ;
  *
- *    len
+ *    precision
  *        = DECIMAL       : a base-10 numeral
- *        | '*'           : take length from args
- *        | '$'           : row-length of ( cell )
- *        |               : an empty length means $
+ *        | '*'           : take precision from args
  *        ;
  *
- *
  *    storage-class
  *        = 'd' | 'i'     : general decimal integer
  *        | 'u'           : decimal unsigned integer
@@ -806,12 +769,10 @@ numeric_set strtonum #1.0 < * U32 radix > ( text_set str )
  *        ;
  *
  *
- *  "fmt" [ CONST ] - constant format string, adhering to
- *  the description above
+ *  "fmt" [ CONST ] - constant format string
  *
  *  "p1" [ DATA ] - first param
  *  this and any subsequent params must correspond to format
- *  in type/position/number.
  */
 function
 text_set sprintf #1.0 < ascii fmt > ( any p1, ... )
diff --git a/interfaces/vfs/extern.h b/interfaces/vfs/extern.h
deleted file mode 100644
index 5b85276..0000000
--- a/interfaces/vfs/extern.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_vfs_extern_
-#define _h_vfs_extern_
-
-#if ! defined EXPORT_LATCH && defined _LIBRARY
-#define VFS_EXTERN LIB_EXPORT
-#define VFS_EXTERN_DATA extern LIB_EXPORT
-#define EXPORT_LATCH 1
-#else
-#define VFS_EXTERN LIB_IMPORT
-#endif
-
-#ifndef _h_klib_extern_
-#include <klib/extern.h>
-#endif
-
-#endif /* _h_vfs_extern_ */
diff --git a/interfaces/vfs/manager-priv.h b/interfaces/vfs/manager-priv.h
deleted file mode 100644
index 6039528..0000000
--- a/interfaces/vfs/manager-priv.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_vfs_manager_priv_
-#define _h_vfs_manager_priv_
-
-#ifndef _h_vfs_extern_
-#include <vfs/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-
-#ifndef _h_kfs_defs_
-#include <kfs/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ENV_KRYPTO_PWFILE       "VDB_PWFILE"
-#define KFG_KRYPTO_PWFILE         "krypto/pwfile"
-#define KFG_KRYPTO_PWFD         "krypto/pwfd"
-
-
-struct VFSManager;
-struct KDirectory;
-struct KFile;
-struct VPath;
-struct SRAPath;
-
-
-/* this resembles the interface functions in manager.h
- * but allows the use of a KDirectory for the base instead of a VPath
- * of a directory
- *
- * this is expected to be more temporary if this code base continues.
- * much longer
- */
-VFS_EXTERN rc_t CC VFSManagerResolvePathRelativeDir (const struct VFSManager * self,
-                                                     uint32_t flags,
-                                                     const struct  KDirectory * base_dir,
-                                                     const struct  VPath * in_path,
-                                                     struct VPath ** out_path);
-
-
-
-/* bad interface.  Bad! Bad!
- * but needed to hack VFS into KDB
- */
-VFS_EXTERN rc_t CC VFSManagerOpenFileReadDirectoryRelative (const struct VFSManager *self, 
-    const struct KDirectory * dir, struct KFile const **f, const struct VPath * path);
-
-VFS_EXTERN rc_t CC VFSManagerOpenFileReadDirectoryRelativeDecrypt (const struct VFSManager *self, 
-    const struct KDirectory * dir, struct KFile const **f, const struct VPath * path);
-
-VFS_EXTERN rc_t CC VFSManagerOpenDirectoryReadDirectoryRelative ( const struct VFSManager *self,
-    struct KDirectory const * dir, struct KDirectory const **d, const struct VPath * path );
-
-VFS_EXTERN rc_t CC VFSManagerOpenDirectoryReadDirectoryRelativeDecrypt ( const struct VFSManager *self,
-    struct KDirectory const * dir, struct KDirectory const **d, const struct VPath * path );
-
-VFS_EXTERN rc_t CC VFSManagerOpenDirectoryUpdateDirectoryRelative ( const struct VFSManager *self,
-    struct KDirectory const * dir, struct KDirectory **d, const struct VPath * path );
-
-VFS_EXTERN rc_t CC VPathMakeDirectoryRelative ( struct VPath ** new_path,
-    struct KDirectory const * dir, const char * posix_path, struct SRAPath * srapathmgr);
-
-
-VFS_EXTERN rc_t CC VFSManagerOpenFileReadDecrypt (const struct VFSManager *self,
-                                                  struct KFile const **f,
-                                                  const struct VPath * path);
-
-
-/*
- * quick hack for vdb-validate for immediate testing release
- */
-VFS_EXTERN rc_t CC VFSManagerWGAValidateHack (const struct VFSManager * self, 
-                                              const struct KFile * file,
-                                              const char * path); /* we'll move this to a vpath */
-
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_vfs_manager_priv_ */
diff --git a/interfaces/vfs/manager.h b/interfaces/vfs/manager.h
deleted file mode 100644
index 5c89823..0000000
--- a/interfaces/vfs/manager.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_vfs_manager_
-#define _h_vfs_manager_
-
-#ifndef _h_vfs_extern_
-#include <vfs/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-
-#ifndef _h_kfs_defs_
-#include <kfs/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KFile;
-struct VPath;
-struct SRAPath;
-struct VResolver;
-struct KDirectory;
-struct VPath;
-
-/* temporary */
-
-
-/*--------------------------------------------------------------------------
- * VFSManager
- */
-typedef struct VFSManager VFSManager;
-
-#define VFS_KRYPTO_PASSWORD_MAX_SIZE 4096
-
-
-/* AddRef
- * Release
- *  ignores NULL references
- */
-VFS_EXTERN rc_t CC VFSManagerAddRef ( const VFSManager *self );
-VFS_EXTERN rc_t CC VFSManagerRelease ( const VFSManager *self );
-
-/* OpenFileRead
- *  opens an existing file with read-only access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "path" [ IN ] VPath representing the path, URL or URN of the desired file
- */
-VFS_EXTERN rc_t CC VFSManagerOpenFileRead (const VFSManager *self, 
-                                           struct KFile const **f,
-                                           const struct VPath * path);
-
-VFS_EXTERN rc_t CC VFSManagerOpenDirectoryRead ( const VFSManager *self,
-    struct KDirectory const **d, const struct VPath * path );
-
-/* it forces decryption to be used for kdb */
-VFS_EXTERN rc_t CC VFSManagerOpenDirectoryReadDecrypt ( const VFSManager *self,
-    struct KDirectory const **d, const struct VPath * path );
-
-VFS_EXTERN rc_t CC VFSManagerOpenDirectoryUpdate ( const VFSManager *self,
-    struct KDirectory **d, const struct VPath * path );
-
-
-/* OpenFileWrite
- *  opens an existing file with write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "path" [ IN ] VPath representing the path, URL or URN of the desired file
- */
-VFS_EXTERN rc_t CC VFSManagerOpenFileWrite (const VFSManager *self,
-                                            struct KFile **f,
-                                            bool update,
-                                            const struct VPath * path);
-
-/* CreateFile
- *  opens a file with write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "access" [ IN ] - standard Unix access mode, e.g. 0664
- *
- *  "mode" [ IN ] - a creation mode ( see explanation above ).
- *
- *  "path" [ IN ] VPath representing the path, URL or URN of the desired file
- */
-VFS_EXTERN rc_t CC VFSManagerCreateFile (const VFSManager *self, 
-                                         struct KFile **f,
-                                         bool update, uint32_t access,
-                                         KCreateMode mode,
-                                         const struct VPath * path );
-
-
-/* Remove
- *  remove an accessible object from its directory
- *
- *  "force" [ IN ] - if true and target is a directory,
- *  remove recursively
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object
- */
-VFS_EXTERN rc_t CC VFSManagerRemove (const VFSManager *self, bool force,
-                                     const struct VPath * path );
-
-
-/* Make
- */
-VFS_EXTERN rc_t CC VFSManagerMake ( VFSManager ** pmanager );
-
-
-/* GetConfigPWFile
- */
-VFS_EXTERN rc_t CC VFSManagerGetConfigPWFile (const VFSManager * self, 
-                                              char * b, size_t bz, size_t * pz);
-
-
-/* GetCWD
- */
-VFS_EXTERN rc_t CC VFSManagerGetCWD (const VFSManager * self, struct KDirectory ** cwd);
-
-/* GetSRAPath
- *  why aren't any of these functions properly commented?
- */
-VFS_EXTERN rc_t CC VFSManagerGetSRAPath ( const VFSManager * self, struct SRAPath ** pmgr );
-
-VFS_EXTERN rc_t CC VFSManagerGetResolver ( const VFSManager * self, struct VResolver ** resolver );
-
-
-VFS_EXTERN rc_t CC VFSManagerGetKryptoPassword (const VFSManager * self, char * new_password, size_t max_size, size_t * size);
-
-#if 0 /* obsoleted? */
-VFS_EXTERN rc_t CC VFSManagerSetKryptoPassword (const VFSManager * self, char * new_password, size_t size);
-VFS_EXTERN rc_t CC VFSManagerResetKryptoPassword (const VFSManager * self, 
-                                                  char * new_password, size_t size,
-                                                  char * new_password, size_t size);
-#else
-
-/*
-  NULL value for self
-  RC (rcVFS, rcEncryptionKey, rcUpdating, rcSelf, rcNull);
-
-  NULL value for password or 0 value for size
-  RC (rcVFS, rcEncryptionKey, rcUpdating, rcParam, rcNull);
-
-  size greater than VFS_KRYPTO_PASSWORD_MAX_SIZE
-  RC (rcVFS, rcEncryptionKey, rcUpdating, rcSize, rcExcessive);
-
-  illegal CR or LF (NL) in the password
-  RC (rcVFS, rcEncryptionKey, rcUpdating, rcEncryptionKey, rcInvalid);
-
-  path/file name for password too long for function as written
-  RC (rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcExcessive);
-
-  existing password path/file name is not a file
-  RC (rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcIncorrect);
-
-  unknown file type for configured path/file name
-  RC (rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcCorrupt);
-
-  incomplete writes to temporary password file
-  RC (rcVFS, rcEncryptionKey, rcWriting, rcFile, rcInsufficient);
-
-  other errors from KFS and KLIB
-*/
-
-/* pwd_dir[pwd_dir_size] -
-    Output parameters for path to directory containing the password file.
-    pwd_dir is not updated if pwd_dir == NULL or pwd_dir_size == 0
-                  or pwd_dir_size is insufficient to copy the path
- */
-VFS_EXTERN rc_t CC VFSManagerUpdateKryptoPassword (const VFSManager * self, 
-                                                   const char * password,
-                                                   size_t size,
-                                                   char * pwd_dir,
-                                                   size_t pwd_dir_size);
-
-#endif
-
-
-VFS_EXTERN rc_t CC VFSManagerResolveSpec ( const VFSManager * self,
-                                           const char * spec,
-                                           struct VPath ** path_to_build,
-                                           const struct KFile ** remote_file,
-                                           const struct VPath ** local_cache,
-                                           bool resolve_acc );
-
-struct KDirectory;
-
-VFS_EXTERN rc_t CC VFSManagerResolveSpecIntoDir ( const VFSManager * self,
-                                                  const char * spec,
-                                                  const struct KDirectory ** dir,
-                                                  bool resolve_acc );
-
-/*--------------------------------------------------------------------------
- * KConfig
- *  placing some KConfig code that relies upon VFS here
- */
-struct KConfig;
-struct KConfigNode;
-
-
-/* ReadVPath
- *  read a VPath node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-VFS_EXTERN rc_t CC KConfigReadVPath ( struct KConfig const* self, const char* path, struct VPath** result );
-
-/* ReadVPath
- *  read a VPath node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-VFS_EXTERN rc_t CC KConfigNodeReadVPath ( struct KConfigNode const *self, struct VPath** result );
-
-
-
-/* ResolvePath
- *
- * take a VPath and resolve to a final form apropriate for KDB
- *
- * that is take a relative path and resolve it against the CWD
- * or take an accession and resolve into the local or remote 
- * VResolver file based on config. It is just a single resolution percall
- *
- * flags
- *      can disable all Accession resolution
- *      can let VPath With no scheme be treated as a possible accession
- *
- */
-
-/* bit values for flags */
-    /* allow no local accession resolution */
-#define vfsmgr_rflag_no_acc_local (1<<0)
-    /* allow no remote accession resolution */
-#define vfsmgr_rflag_no_acc_remote (1<<1)
-    /* never do VResolver Accession resolution */
-#define vfsmgr_rflag_no_acc  (vfsmgr_rflag_no_acc_local|vfsmgr_rflag_no_acc_remote)
-    /* use VResolver Accession resolution for simple names with no scheme */
-
-#define vfsmgr_rflag_kdb_acc (1<<2)
-    /* over ridden by vfsmgr_rflag_no_acc */
-
-
-VFS_EXTERN rc_t CC VFSManagerResolvePath (const VFSManager * self,
-                                          uint32_t flags,
-                                          const struct  VPath * in_path,
-                                          struct VPath ** out_path);
-
-VFS_EXTERN rc_t CC VFSManagerResolvePathRelative (const VFSManager * self,
-                                                  uint32_t flags,
-                                                  const struct  VPath * base_path,
-                                                  const struct  VPath * in_path,
-                                                  struct VPath ** out_path);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfs_manager_ */
diff --git a/interfaces/vfs/resolver.h b/interfaces/vfs/resolver.h
deleted file mode 100644
index 76c5ffb..0000000
--- a/interfaces/vfs/resolver.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*===========================================================================
-*
-*                            Public Domain Notice
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_vfs_resolver_
-#define _h_vfs_resolver_
-
-#ifndef _h_vfs_extern_
-#include <vfs/extern.h>
-#endif
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KFile;
-struct VPath;
-struct KConfig;
-struct VFSManager;
-
-
-/*--------------------------------------------------------------------------
- * VResolver
- */
-typedef struct VResolver VResolver;
-
-
-/* Make
- *  ask the VFS manager to make a resolver
- */
-VFS_EXTERN rc_t CC VFSManagerMakeResolver ( struct VFSManager const * self,
-    VResolver ** new_resolver, struct KConfig const * cfg );
-
-
-/* AddRef
- * Release
- */
-VFS_EXTERN rc_t CC VResolverAddRef ( const VResolver * self );
-VFS_EXTERN rc_t CC VResolverRelease ( const VResolver * self );
-
-
-/* Local
- *  Find an existing local file/directory that is named by the accession.
- *  rcState of rcNotFound means it does not exist.
- *
- *  other rc code for failure are possible.
- *
- *  Accession must be an ncbi-acc scheme or a simple name with no 
- *  directory paths.
- */
-VFS_EXTERN rc_t CC VResolverLocal ( const VResolver * self,
-    struct VPath const * accession, struct VPath const ** path );
-
-
-/* Remote
- *  Find an existing remote file that is named by the accession.
- *
- *  rcState of rcNotFound means it did not exist and can not be 
- *  downloaded. Probably a bad accession name.
- *
- *  Need a specific rc for no network configured.
- *  Need a specific rc for network access permitted.
- *
- *  Other rc code for failure are possible.
- *
- *  Accession must be an ncbi-acc scheme or a simple name with no 
- *  directory paths.
- *
- *  "opt_file_rtn" [ OUT, NULL OKAY ] - optional return parameter for
- *   any KFile that may be opened as a result of resolution. This can
- *   happen if resolving an accession involves opening a URL to a
- *   remote server, for example, in which case the KFile can be returned.
- */
-VFS_EXTERN rc_t CC VResolverRemote ( const VResolver * self,
-    struct VPath const * accession, struct VPath const ** path,
-    struct KFile const ** opt_file_rtn );
-
-
-/* Cache
- *  Find a cache directory that might or might not contain a partially
- *  downloaded file.
- *
- *  Accession must be an ncbi-acc scheme, an http url or a simple name with no 
- *  directory paths. All three should return the same directory URL as a VPath. (?)
- *  Or should it be a directory or a file url depending upon finding a partial
- *  download? This would require co-ordination with all download mechanisms that
- *  we permit.
- *
- *  With refseq holding wgs objects we have a case were the downloaded file is not
- *  named the same as the original accession as the file archive you want is a
- *  container for other files.
- *
- *  Find local will give a path that has a special scheme in these cases. 
- *  Find remote will give the url for the container that contains the accession
- *  so using the returned VPath from resolve remote is better than the original
- *  accession in this one case.  I think...
- */
-VFS_EXTERN rc_t CC VResolverCache ( const VResolver * self,
-    struct VPath const * url, struct VPath const ** path, uint64_t file_size );
-
-
-/* EnableState
- *  modifies how the various properties are interpreted
- */
-typedef uint32_t VResolverEnableState;
-enum
-{
-    vrUseConfig = 0,            /* take enable/disable state from KConfig */
-    vrAlwaysEnable = 1,         /* always enable, regardless of KConfig   */
-    vrAlwaysDisable = 2         /* always disable, regardless of KConfig  */
-};
-
-
-/* LocalEnable
- *  modify settings for using local repositories,
- *  meaning site, user-public and user-protected.
- *
- *  "enable" [ IN ] - enable or disable local access,
- *  or follow settings in KConfig
- *
- *  returns the previous state of "remote-enabled" property
- *
- * NB - in VDB-2, the state is associated with library code
- *  shared libraries in separate closures will have separate
- *  state. this can only occur if dynamic ( manual ) loading of
- *  shared libraries is used, and will not occur with normal
- *  usage. in VDB-3 the state will be stored with the process,
- *  not the library.
- */
-VFS_EXTERN VResolverEnableState CC VResolveLocalEnable ( const VResolver * self,
-    VResolverEnableState enable );
-
-
-/* RemoteEnable
- *  modify settings for using remote repositories
- *
- *  "enable" [ IN ] - enable or disable remote access,
- *  or follow settings in KConfig
- *
- *  returns the previous state of "remote-enabled" property
- *
- * NB - in VDB-2, the state is associated with library code
- *  shared libraries in separate closures will have separate
- *  state. this can only occur if dynamic ( manual ) loading of
- *  shared libraries is used, and will not occur with normal
- *  usage. in VDB-3 the state will be stored with the process,
- *  not the library.
- */
-VFS_EXTERN VResolverEnableState CC VResolverRemoteEnable ( const VResolver * self,
-    VResolverEnableState enable );
-
-
-/* CacheEnable
- *  modify settings for caching files in user repositories
- *
- *  "enable" [ IN ] - enable or disable user repository cache,
- *  or follow settings in KConfig
- *
- *  returns the previous state of "cache-enabled" property
- *
- * NB - in VDB-2, the state is associated with library code
- *  shared libraries in separate closures will have separate
- *  state. this can only occur if dynamic ( manual ) loading of
- *  shared libraries is used, and will not occur with normal
- *  usage. in VDB-3 the state will be stored with the process,
- *  not the library.
- */
-VFS_EXTERN VResolverEnableState CC VResolverCacheEnable ( const VResolver * self,
-    VResolverEnableState enable );
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_vfs_resolver_ */
diff --git a/libs/Makefile b/libs/Makefile
index 2840672..18d43d4 100644
--- a/libs/Makefile
+++ b/libs/Makefile
@@ -36,11 +36,8 @@ SUBDIRS = \
 	klib \
 	kproc \
 	kfs \
-	kns \
 	kxml \
 	kfg \
-	krypto \
-	vfs \
 	kapp \
 	kdb \
 	vdb \
@@ -49,10 +46,7 @@ SUBDIRS = \
 	sra \
 	sraxf \
 	align \
-	axf \
-	wgsxf \
-	ktst \
-	loader
+	axf
 
 default: $(SUBDIRS)
 
@@ -110,17 +104,6 @@ $(SUBDIRS_TAG):
 
 .PHONY: tag $(SUBDIRS_TAG)
 
-#-------------------------------------------------------------------------------
-# runtests
-#
-SUBDIRS_RUNTESTS = $(addsuffix _runtests, kfg vxf)
-
-runtests: std $(SUBDIRS_RUNTESTS)
-
-$(SUBDIRS_RUNTESTS):
-	@ $(MAKE) -C $(subst _runtests,,$@) runtests
-
-.PHONY: runtests $(SUBDIRS_RUNTESTS)
 
 #-------------------------------------------------------------------------------
 # pass-through
diff --git a/libs/align/Makefile b/libs/align/Makefile
index 22ee629..26aca1b 100644
--- a/libs/align/Makefile
+++ b/libs/align/Makefile
@@ -72,14 +72,6 @@ clean: stdclean
 
 .PHONY: clean
 
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_LIBS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
-
 
 #-------------------------------------------------------------------------------
 # libncbi-bam
@@ -93,19 +85,15 @@ BAM_OBJ = \
 	$(addsuffix .$(LOBX),$(BAM_SRC))
 
 BAM_LIB = \
-	-lvfs \
 	-lkfs \
 	-lklib \
 	-lz
 
 $(ILIBDIR)/libncbi-bam.$(SHLX): $(BAM_OBJ)
-	$(LD) --dlib -o $@ $^ $(BAM_LIB)
+	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(BAM_LIB)
 
 $(ILIBDIR)/libncbi-bam.$(LIBX): $(BAM_OBJ)
-	$(LD) --slib -o $@ $^ $(BAM_LIB)
-
-libncbi-bam_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libncbi-bam $(BAM_OBJ)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(BAM_LIB)
 
 
 #-------------------------------------------------------------------------------
@@ -121,9 +109,7 @@ ALIGN_ACCESS_OBJ = \
 
 ALIGN_ACCESS_LIB = \
 	-sncbi-bam \
-	-lvfs \
 	-lkfs \
-	-dkproc \
 	-lklib \
 	-lz
 
@@ -133,8 +119,6 @@ $(LIBDIR)/libalign-access.$(SHLX): $(ALIGN_ACCESS_OBJ)
 $(LIBDIR)/libalign-access.$(LIBX): $(ALIGN_ACCESS_OBJ)
 	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(ALIGN_ACCESS_LIB)
 
-libalign-access_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libalign-access $(ALIGN_ACCESS_OBJ)
 
 #-------------------------------------------------------------------------------
 # align-reader
@@ -142,17 +126,9 @@ libalign-access_tag:
 $(LIBDIR)/libalign-reader: $(addprefix $(LIBDIR)/libalign-reader.,$(LIBEXT))
 
 ALIGN_READER_SRC = \
-	align_mgr \
-	al_iterator \
-	ref_iterator \
-	pl_iterator \
-	dna-reverse-cmpl \
-	reference-cmn \
 	reader-cmn \
 	reader-refseq \
-	reference \
-	refseq-mgr \
-	quality-quantizer
+	refseq-mgr
 
 ALIGN_READER_OBJ = \
 	$(addsuffix .$(LOBX),$(ALIGN_READER_SRC))
@@ -171,18 +147,14 @@ $(LIBDIR)/libalign-reader.$(SHLX): $(ALIGN_READER_OBJ)
 $(LIBDIR)/libalign-reader.$(LIBX): $(ALIGN_READER_OBJ)
 	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(ALIGN_READER_LIB)
 
-libalign-reader_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libalign-reader $(ALIGN_READER_OBJ)
 
 #-------------------------------------------------------------------------------
 # align-writer
 #
-$(ILIBDIR)/libalign-writer: $(addprefix $(ILIBDIR)/libalign-writer.,$(LIBX))
+$(ILIBDIR)/libalign-writer: $(addprefix $(ILIBDIR)/libalign-writer.,$(ILIBEXT))
 
 ALIGN_WRITER_SRC = \
-    dna-reverse-cmpl \
 	reader-cmn \
-	reference-cmn \
 	reader-refseq \
 	refseq-mgr \
 	writer-cmn \
@@ -208,6 +180,3 @@ $(ILIBDIR)/libalign-writer.$(SHLX): $(ALIGN_WRITER_OBJ)
 
 $(ILIBDIR)/libalign-writer.$(LIBX): $(ALIGN_WRITER_OBJ)
 	$(LD) --slib -o $@ $^ $(ALIGN_WRITER_LIB)
-
-libalign-writer_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libalign-writer $(ALIGN_WRITER_OBJ)
diff --git a/libs/align/al_iterator.c b/libs/align/al_iterator.c
deleted file mode 100644
index e53fc27..0000000
--- a/libs/align/al_iterator.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <align/extern.h>
-
-#include <klib/rc.h>
-#include <klib/container.h>
-#include <klib/refcount.h>
-#include <klib/sort.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <insdc/insdc.h>
-#include <align/iterator.h>
-#include <align/manager.h>
-#include <vdb/cursor.h>
-#include <sysalloc.h>
-
-#include "debug.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-#define COL_READ "READ"
-#define COL_HAS_MISMATCH "HAS_MISMATCH"
-#define COL_HAS_REF_OFFSET "HAS_REF_OFFSET"
-#define COL_REF_OFFSET "REF_OFFSET"
-
-typedef struct pos_offset
-{
-    uint32_t pos;
-    int32_t offset;
-} pos_offset;
-
-
-struct AlignmentIterator
-{
-    struct AlignMgr const *amgr;   /* the alignment-manager... */
-
-    /* data to walk */
-    bool * has_mismatch;    /* copy of HAS_MISMATCH */
-    INSDC_4na_bin * read;   /* copy of READ */
-    uint32_t read_len;      /* length of READ */
-    uint32_t ref_len;       /* length of projection on reference */
-
-    INSDC_coord_zero ref_window_start;  /* where the requested window on the reference starts */
-    INSDC_coord_len  ref_window_len;    /* how long the requested window on the reference is */
-
-    pos_offset * pos_ofs;   /* computed by walking HAS_REF_OFFSET, REF_OFFSET ( method 1 ) */
-    uint32_t pos_ofs_idx;   /* current index into pos_ofs[] */
-    uint32_t pos_ofs_cnt;   /* how many pos_ofs-values are there */
-
-    int32_t abs_ref_start;  /* absolute reference-related start-position   */
-    int32_t rel_ref_pos;    /* relative reference-related position ( relative to start of sequence )  */
-    uint32_t seq_pos;       /* position on the sequence, as the reference sees it */
-    uint32_t skip;          /* how many bases to skip if we are in DELETE */
-    uint32_t flags;         /* flags it, when we are in INSERT/DELETE */
-    uint32_t inserts;       /* how many inserts */
-
-    KRefcount refcount;
-    bool free_on_whack;     /* true if allocated and allowing references */
-    uint8_t align [ 3 ];
-};
-
-
-/* forward decl. for private helper functions */
-static rc_t compute_posofs(  AlignmentIterator * self,
-    const bool * has_ref_offset,
-    const int32_t * ref_offset,
-    uint32_t ref_offset_len );
-
-static void al_iter_adjust_next( AlignmentIterator * self );
-
-LIB_EXPORT void CC AlignIteratorRecordDestroy ( void *obj, void *data )
-{
-    /* nothing to do, because there are no sub-allocations etc. ... */
-}
-
-
-static rc_t get_idx_and_read( struct VCursor const *curs,
-                              const char * name,
-                              int64_t row_id,
-                              const void ** base,
-                              uint32_t * len )
-{
-    uint32_t column_idx;
-    rc_t rc = VCursorGetColumnIdx ( curs, &column_idx, name );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "VCursorGetColumnIdx() failed" );
-    else
-    {
-        uint32_t elem_bits, boff, len_intern;
-        const void * ptr;
-        rc = VCursorCellDataDirect ( curs, row_id, column_idx, 
-                                     &elem_bits, &ptr, &boff, &len_intern );
-        if ( rc != 0 )
-            LOGERR( klogInt, rc, "VCursorCellDataDirect() failed" );
-        else
-        {
-            assert( boff == 0 );
-            if ( len != NULL ) *len = len_intern;
-            if ( base != NULL ) *base = ptr;
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC AlignIteratorRecordPopulate ( void *obj,
-    const PlacementRecord *placement, struct VCursor const *curs, 
-    INSDC_coord_zero ref_window_start, INSDC_coord_len ref_window_len, void *data )
-{
-    /* read the data required to build a Alignment-Iterator,
-       then create the Alignment-Iterator into the already allocated memory */
-    const void * base;
-    const void * base_has_ref_offset;
-    const void * base_ref_offset;
-
-    INSDC_coord_len data_len;
-    uint32_t ref_offset_len;
-    rc_t rc;
-
-    AlignmentIterator *iter = ( AlignmentIterator * ) obj;
-    AlignMgr *almgr = ( AlignMgr * ) data;
-
-    uint8_t * ptr = ( void* ) iter;
-    ptr += ( sizeof *iter );
-
-    rc = get_idx_and_read( curs, COL_HAS_MISMATCH, placement->id, &base, &data_len );
-    if ( rc == 0 )
-    {
-        /* copy HAS_MISMATCH into place, point the header-value to it, advance */
-        memcpy( ptr, base, data_len );
-        iter->has_mismatch = (bool *)ptr;
-        ptr += data_len;
-    }
-
-    if ( rc == 0 )
-    {
-        rc = get_idx_and_read( curs, COL_READ, placement->id, &base, &data_len );
-        /* copy READ into place, point the header-value to it, advance */
-        if ( rc == 0 )
-        {
-            memcpy( ptr, base, data_len );
-            iter->read = ( INSDC_4na_bin * )ptr;
-            iter->read_len = data_len;
-            iter->abs_ref_start = placement->pos;
-            iter->ref_len = placement->len;
-            iter->rel_ref_pos = 0;
-            iter->seq_pos = 0;
-            ptr += data_len;
-            iter->pos_ofs = (pos_offset *)ptr;
-            iter->ref_window_start = ref_window_start;
-            iter->ref_window_len = ref_window_len;
-            iter->free_on_whack = false;
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        rc = get_idx_and_read( curs, COL_HAS_REF_OFFSET, placement->id, &base_has_ref_offset, &data_len );
-    }
-    if ( rc == 0 )
-    {
-        rc = get_idx_and_read( curs, COL_REF_OFFSET, placement->id, &base_ref_offset, &ref_offset_len );
-    }
-    if ( rc == 0 )
-    {
-        rc = compute_posofs( iter,
-                             ( const bool * )base_has_ref_offset, 
-                             ( const int32_t * )base_ref_offset, 
-                             ref_offset_len );
-    }
-    if ( rc == 0 )
-    {
-        if ( iter->pos_ofs_idx == 0 )
-            al_iter_adjust_next( iter );
-        KRefcountInit( &iter->refcount, 1, "AlignmentIterator", "Make", "align" );
-        data_len = 0;
-        while( ( iter->abs_ref_start + iter->rel_ref_pos ) < ref_window_start && rc == 0 )
-        {
-            rc = AlignmentIteratorNext ( iter );
-            data_len++;
-        }
-    }
-    if ( rc == 0 )  {   rc = AlignMgrAddRef ( almgr );  }
-    if ( rc == 0 )  {   iter->amgr = almgr;  }
-
-/*
-    if ( rc == 0 )
-    {
-        OUTMSG(( "placement[%lu] at %u (w=%u) next(%u) \n", 
-                 placement->id, iter->abs_ref_start, ref_window_start, data_len ));
-    }
-*/
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC AlignIteratorRecordSize ( struct VCursor const *curs, int64_t row_id, size_t *size, void *data )
-{
-    uint32_t ref_offset_len, read_len;
-
-    rc_t rc = get_idx_and_read( curs, COL_REF_OFFSET, row_id, NULL, &ref_offset_len );
-    if ( rc == 0 )
-        rc = get_idx_and_read( curs, COL_READ, row_id, NULL, &read_len );
-
-    if ( rc == 0 )
-    {
-        AlignmentIterator * ali = NULL;
-        size_t po_size = ( ( sizeof *(ali->pos_ofs) ) * ( ref_offset_len ) );
-        *size = ( ( sizeof *ali ) + ( read_len * 2 ) + po_size );
-    }
-
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC AlignMgrMakeAlignmentIterator ( struct AlignMgr const *self,
-    AlignmentIterator **iter,
-    bool copy,
-    INSDC_coord_zero ref_pos,
-    INSDC_coord_len ref_len,
-    const INSDC_4na_bin *read,
-    INSDC_coord_len read_len,
-    const bool *has_mismatch,
-    const bool *has_ref_offset,
-    const int32_t *ref_offset,
-    uint32_t ref_offset_len,
-    INSDC_coord_zero ref_window_start,
-    INSDC_coord_len ref_window_len )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcSelf, rcNull );
-    else
-    {
-        if ( iter == NULL || has_mismatch == NULL || has_ref_offset == NULL ||
-             read == NULL || read_len == 0 )
-            rc = RC( rcAlign, rcIterator, rcConstructing, rcParam, rcNull );
-        else
-        {
-            AlignmentIterator * ali = NULL;
-            size_t po_size = ( ( sizeof *(ali->pos_ofs) ) * ( ref_offset_len ) );
-            size_t full_size = ( sizeof *ali ) + ( read_len * 2 ) + po_size;
-      
-            uint8_t * ptr = calloc( full_size, 1 );
-            *iter = NULL;
-            if ( ptr == NULL )
-                rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                ali = ( AlignmentIterator * )ptr;
-                ptr += ( sizeof *ali );
-
-                KRefcountInit( &ali->refcount, 1, "AlignmentIterator", "Make", "align" );
-
-                /* copy HAS_MISMATCH into place, point the header-value to it, advance */
-                memcpy( ptr, has_mismatch, read_len );
-                ali->has_mismatch = (bool *)ptr;
-                ptr += read_len;
-
-                /* copy READ into place, point the header-value to it, advance */
-                memcpy( ptr, read, read_len );
-                ali->read = ( INSDC_4na_bin * )ptr;
-                ptr += read_len;
-
-                ali->read_len = read_len;
-                ali->ref_len = ref_len;
-                ali->abs_ref_start = ref_pos;
-                ali->pos_ofs = (pos_offset *)ptr;
-                ali->ref_window_start = ref_window_start;
-                ali->ref_window_len = ref_window_len;
-                ali->free_on_whack = true;
-
-                rc = compute_posofs( ali, has_ref_offset, ref_offset, ref_offset_len );
-                if ( ali->pos_ofs_idx == 0 )
-                    al_iter_adjust_next( ali );
-
-                if ( rc == 0 )
-                {
-                    rc = AlignMgrAddRef ( self );
-                    if ( rc == 0 )
-                        ali->amgr = self;
-                }
-            }
-
-            if ( rc == 0 )
-                *iter = ali;
-            else
-                free( ali );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC AlignmentIteratorAddRef( const AlignmentIterator * cself )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-        rc = RC( rcAlign, rcIterator, rcAttaching, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountAdd( &cself->refcount, "AlignmentIterator" ) != krefOkay )
-        {
-            rc = RC( rcAlign, rcIterator, rcAttaching, rcError, rcUnexpected );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC AlignmentIteratorRelease( const AlignmentIterator * cself )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-        rc = RC( rcAlign, rcIterator, rcReleasing, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountDrop( &cself->refcount, "AlignmentIterator" ) == krefWhack )
-        {
-            AlignmentIterator * self = ( AlignmentIterator * ) cself;
-            AlignMgrRelease ( self->amgr );
-            if ( self->free_on_whack )
-                free( self );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC AlignmentIteratorNext ( AlignmentIterator *self )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcPositioning, rcSelf, rcNull );
-    else
-    {
-        self->flags = 0;
-        self->rel_ref_pos++;
-
-        if ( self->rel_ref_pos >= self->ref_len )
-            rc = SILENT_RC( rcAlign, rcIterator, rcPositioning, rcItem, rcDone );
-        else
-        {
-            if ( self->skip > 0 )
-            {
-                self->flags |=  align_iter_skip;
-                self->skip--;
-            }
-            else if ( self->inserts > 0 )
-            {
-                self->seq_pos += ( self->inserts + 1 );
-                self->inserts = 0;
-            }
-            else
-            {
-                self->seq_pos++;
-            }
-            al_iter_adjust_next( self );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT int32_t CC AlignmentIteratorState ( const AlignmentIterator *self,
-                                               INSDC_coord_zero *seq_pos )
-{
-    uint32_t res = align_iter_invalid;
-    if ( self != NULL )
-    {
-        INSDC_coord_zero pos = self->seq_pos;
-        if ( pos < self->read_len )
-        {
-            res = ( self->read[ pos ] & 0x0F );
-
-            if ( self->rel_ref_pos < 1 )
-                res |= align_iter_first;
-
-            if ( self->rel_ref_pos == ( self->ref_len - 1 ) )
-                res |= align_iter_last;
-
-            if ( !self->has_mismatch[ pos ] )
-                res |= align_iter_match;
-
-            res |= self->flags;
-
-            if ( seq_pos != NULL )
-                *seq_pos = pos;
-        }
-    }
-    return res;
-}
-
-
-LIB_EXPORT rc_t CC AlignmentIteratorPosition ( const AlignmentIterator *self,
-                                               INSDC_coord_zero *pos )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcPositioning, rcSelf, rcNull );
-    else
-    {
-        if ( pos == NULL )
-            rc = RC( rcAlign, rcIterator, rcPositioning, rcParam, rcNull );
-        else
-        {
-            *pos = ( self->abs_ref_start + self->rel_ref_pos );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT uint32_t CC AlignmentIteratorBasesInserted
-    ( const AlignmentIterator *self, const INSDC_4na_bin **bases )
-{
-    uint32_t res = 0;
-    if ( ( self != NULL )&&( bases != NULL ) )
-    {
-        res = self->inserts;
-        *bases = &( self->read[ self->seq_pos + 1 ] );
-    }
-    return res;
-}
-
-
-LIB_EXPORT uint32_t CC AlignmentIteratorBasesDeleted
-    ( const AlignmentIterator *self, INSDC_coord_zero *pos )
-{
-    uint32_t res = 0;
-    if ( ( self != NULL )&&( pos != NULL ) )
-    {
-        res = ( self->skip );
-        *pos = ( self->abs_ref_start + self->rel_ref_pos + 1 ); 
-    }
-    return res;
-}
-
-
-/* ============ private static functions ============ */
-static rc_t compute_posofs(  AlignmentIterator * self,
-    const bool * has_ref_offset, const int32_t * ref_offset, uint32_t ref_offset_len )
-{
-    rc_t rc = 0;
-
-    self->pos_ofs_idx = 0;
-    self->pos_ofs_cnt = ref_offset_len;
-    if ( ref_offset_len > 0 )
-    {
-        int32_t shift = 0;
-        uint32_t seq_position;
-        uint32_t src = 0;
-        uint32_t dst = 0;
-
-        if ( has_ref_offset[ 0 ] && ( ref_offset[ 0 ] < 0 ) )
-        {
-            shift = ref_offset[ src++ ];
-            self->seq_pos = -( shift );
-            self->pos_ofs_cnt--;
-        }
-
-        seq_position = self->seq_pos;
-        while( seq_position < self->read_len && rc == 0 )
-        {
-            if ( has_ref_offset[ seq_position ] )
-            {
-                /* we do have to process a reference-offset ! */
-                if ( src < ref_offset_len )
-                {
-                    /* we do have a ref-offset value available... */
-                    int32_t ro = ref_offset[ src++ ];
-                    if ( ro == 0 )
-                    {
-                        /* zero-values in REF_OFFSET are an error ! */
-                        rc = RC( rcAlign, rcIterator, rcConstructing, rcItem, rcNull );
-                    }
-                    else
-                    {
-                        /* ref-offset is positive: DELETE against the reference */
-                        self->pos_ofs[ dst ].pos = ( seq_position + shift - 1 );
-                        self->pos_ofs[ dst++ ].offset = ro;
-                        shift += ro;
-
-                        /* !!! CHANGE on May 04 2012 !!!
-                           the unused bits in has_ref_offset after an insert ( negative ro )
-                           are used now to hint the position of a "B"-cigar-string-case
-                           for cSRA-files created Complete-Genomic-Submissions
-                           that means we have to jump forward with seq_position in this case!
-                        */
-                        if ( ro < 0 )
-                        {
-                            seq_position -= ( ro + 1 );
-                        }
-                    }
-                }
-                else
-                {
-                    /* if has_ref_offset has more flags than ref_offset has values... */
-                    rc = RC( rcAlign, rcIterator, rcConstructing, rcItem, rcTooBig );
-                }
-            }
-            ++seq_position;
-        }
-
-/*      OUTMSG(( "pos_ofs:" ));
-        for ( src = 0; src < self->pos_ofs_cnt; ++src )
-        {
-            OUTMSG(( "[%u/%u]", self->pos_ofs[ src ].pos, self->pos_ofs[ src ].offset ));
-        }
-        OUTMSG(( "\n" )); */
-    }
-    return rc;
-}
-
-
-static void al_iter_adjust_next( AlignmentIterator * self )
-{
-    if ( self->pos_ofs_idx < self->pos_ofs_cnt )
-    {
-        if ( self->rel_ref_pos == self->pos_ofs[ self->pos_ofs_idx ].pos )
-        {
-            /* we have to adjust... */
-            int32_t ro = self->pos_ofs[ self->pos_ofs_idx++ ].offset;
-            if ( ro < 0 )
-            {
-                self->flags |= align_iter_insert;
-                self->inserts = (-ro);
-            }
-            else
-            {
-                self->flags |= align_iter_delete;
-                self->skip = ro;
-            }
-        }
-    }
-}
diff --git a/libs/align/align-access.c b/libs/align/align-access.c
index 7518d53..fbd0047 100644
--- a/libs/align/align-access.c
+++ b/libs/align/align-access.c
@@ -26,13 +26,13 @@
 
 #include <align/extern.h>
 #include <klib/rc.h>
-#include <klib/text.h>
 #include <align/align-access.h>
+#include <sysalloc.h>
 #include <atomic32.h>
 
-#include <vfs/path.h>
-#include <sysalloc.h>
+#include <kfs/path.h>
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -88,14 +88,14 @@ struct AlignAccessDB {
     const BAMFile *innerSelf;
 };
 
-LIB_EXPORT rc_t CC AlignAccessMgrMakeBAMDB(const AlignAccessMgr *self, const AlignAccessDB **db, const VPath *bam) {
+LIB_EXPORT rc_t CC AlignAccessMgrMakeBAMDB(const AlignAccessMgr *self, const AlignAccessDB **db, const KPath *bam) {
     AlignAccessDB *lhs = malloc(sizeof(*lhs));
     rc_t rc;
 
     if (lhs == NULL)
         return RC(rcAlign, rcMgr, rcConstructing, rcMemory, rcExhausted);
     
-    rc = BAMFileMakeWithVPath(&lhs->innerSelf, bam);
+    rc = BAMFileMakeWithKPath(&lhs->innerSelf, bam);
     if (rc) {
         free(lhs);
         return rc;
@@ -108,10 +108,10 @@ LIB_EXPORT rc_t CC AlignAccessMgrMakeBAMDB(const AlignAccessMgr *self, const Ali
     return 0;
 }
 
-LIB_EXPORT rc_t CC AlignAccessMgrMakeIndexBAMDB(const AlignAccessMgr *self, const AlignAccessDB **db, const VPath *bam, const VPath *bam_index) {
+LIB_EXPORT rc_t CC AlignAccessMgrMakeIndexBAMDB(const AlignAccessMgr *self, const AlignAccessDB **db, const KPath *bam, const KPath *bam_index) {
     rc_t rc = AlignAccessMgrMakeBAMDB(self, db, bam);
     if (rc == 0) {
-        rc = BAMFileOpenIndexWithVPath((**db).innerSelf, bam_index);
+        rc = BAMFileOpenIndexWithKPath((**db).innerSelf, bam_index);
         if (rc == 0)
             return 0;
         AlignAccessDBRelease(*db);
@@ -252,7 +252,7 @@ LIB_EXPORT rc_t CC AlignAccessRefSeqEnumeratorGetID(const AlignAccessRefSeqEnume
     rc = BAMFileGetRefSeq(cself->parent->innerSelf, cself->cur, &cur);
     if (rc)
         return rc;
-    id_act_size = string_size( cur->name ) + 1;
+    id_act_size = strlen(cur->name) + 1;
     if (id_size != NULL)
         *id_size = id_act_size;
     if (id_buffer != NULL) {
@@ -481,7 +481,7 @@ LIB_EXPORT rc_t CC AlignAccessAlignmentEnumeratorGetRefSeqID(
     rc = BAMFileGetRefSeq(self->parent->innerSelf, id, &cur);
     if (rc)
         return rc;
-    id_act_size = string_size( cur->name ) + 1;
+    id_act_size = strlen(cur->name) + 1;
     if (id_size != NULL)
         *id_size = id_act_size;
     if (id_buffer != NULL) {
@@ -548,7 +548,7 @@ LIB_EXPORT rc_t CC AlignAccessAlignmentEnumeratorGetShortSeqAccessionID(
     if (readGroupName == 0)
         *id_size = 0;
     else {
-        id_act_size = string_size( readGroupName ) + 1;
+        id_act_size = strlen(readGroupName) + 1;
         if (id_size != NULL)
             *id_size = id_act_size;
         if (id_buffer != NULL) {
@@ -578,7 +578,7 @@ LIB_EXPORT rc_t CC AlignAccessAlignmentEnumeratorGetShortSeqID(
     if (rc)
         return rc;
 
-    id_act_size = string_size( readName ) + 1;
+    id_act_size = strlen(readName) + 1;
     if (id_size != NULL)
         *id_size = id_act_size;
     if (id_buffer != NULL) {
diff --git a/libs/align/align_mgr.c b/libs/align/align_mgr.c
deleted file mode 100644
index c700463..0000000
--- a/libs/align/align_mgr.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <align/extern.h>
-
-#include <klib/rc.h>
-#include <klib/container.h>
-#include <klib/refcount.h>
-#include <klib/sort.h>
-#include <insdc/insdc.h>
-#include <align/iterator.h>
-#include <align/manager.h>
-#include <sysalloc.h>
-
-#include "debug.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-
-struct AlignMgr
-{
-    KRefcount refcount;
-    /* what else will be here ? */
-};
-
-
-LIB_EXPORT rc_t CC AlignMgrMakeRead ( const struct AlignMgr **self )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcSelf, rcNull );
-    else
-    {
-        AlignMgr * alm = calloc( sizeof * alm, 1 );
-        if ( alm == NULL )
-            rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-        else
-        {
-            KRefcountInit( &alm->refcount, 1, "AlignMgr", "Make", "align" );
-        }
-
-        if ( rc == 0 )
-            *self = alm;
-        else
-            free( alm );
-    }
-    return rc;
-
-}
-
-
-LIB_EXPORT rc_t CC AlignMgrAddRef ( const AlignMgr *self )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcAttaching, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountAdd( &self->refcount, "AlignMgr" ) != krefOkay )
-        {
-            rc = RC( rcAlign, rcIterator, rcAttaching, rcError, rcUnexpected );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC AlignMgrRelease ( const AlignMgr *cself )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-        rc = RC( rcAlign, rcIterator, rcReleasing, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountDrop( &cself->refcount, "AlignMgr" ) == krefWhack )
-        {
-            AlignMgr * self = ( AlignMgr * ) cself;
-            free( self );
-        }
-    }
-    return rc;
-
-}
diff --git a/libs/align/bam.c b/libs/align/bam.c
index 843c498..2f4a22c 100644
--- a/libs/align/bam.c
+++ b/libs/align/bam.c
@@ -26,15 +26,11 @@
 
 #include <align/extern.h>
 #include <klib/defs.h>
-#include <klib/debug.h>
 #include <klib/sort.h>
 #include <klib/rc.h>
 #include <kfs/file.h>
 #include <kfs/directory.h>
 #include <kfs/mmap.h>
-#include <klib/printf.h>
-#include <klib/log.h>
-#include <klib/text.h>
 #include <sysalloc.h>
 
 #include <atomic32.h>
@@ -43,8 +39,7 @@
 #include <align/bam.h>
 #include "bam-priv.h"
 
-#include <vfs/path.h>
-#include <vfs/path-priv.h>
+#include <kfs/path.h>
 #include <kfs/kfs-priv.h>
 
 #include <limits.h>
@@ -63,26 +58,26 @@
 #include <zlib.h>
 
 #if __BYTE_ORDER == __LITTLE_ENDIAN
-static uint16_t LE2HUI16(void const *X) { uint16_t y; memcpy(&y, X, sizeof(y)); return y; }
-static uint32_t LE2HUI32(void const *X) { uint32_t y; memcpy(&y, X, sizeof(y)); return y; }
-static uint64_t LE2HUI64(void const *X) { uint64_t y; memcpy(&y, X, sizeof(y)); return y; }
-static  int16_t  LE2HI16(void const *X) {  int16_t y; memcpy(&y, X, sizeof(y)); return y; }
-static  int32_t  LE2HI32(void const *X) {  int32_t y; memcpy(&y, X, sizeof(y)); return y; }
-static  int64_t  LE2HI64(void const *X) {  int64_t y; memcpy(&y, X, sizeof(y)); return y; }
+#define LE2HUI16(X) (*((const uint16_t *)(X)))
+#define LE2HUI32(X) (*((const uint32_t *)(X)))
+#define LE2HUI64(X) (*((const uint64_t *)(X)))
+#define LE2HI16(X)  (*((const  int16_t *)(X)))
+#define LE2HI32(X)  (*((const  int32_t *)(X)))
+#define LE2HI64(X)  (*((const  int64_t *)(X)))
 #endif
 #if __BYTE_ORDER == __BIG_ENDIAN
-static uint16_t LE2HUI16(void const *X) { uint16_t y; memcpy(&y, X, sizeof(y)); return (uint16_t)bswap_16(y); }
-static uint32_t LE2HUI32(void const *X) { uint32_t y; memcpy(&y, X, sizeof(y)); return (uint32_t)bswap_32(y); }
-static uint64_t LE2HUI64(void const *X) { uint64_t y; memcpy(&y, X, sizeof(y)); return (uint64_t)bswap_64(y); }
-static  int16_t  LE2HI16(void const *X) {  int16_t y; memcpy(&y, X, sizeof(y)); return ( int16_t)bswap_16(y); }
-static  int32_t  LE2HI32(void const *X) {  int32_t y; memcpy(&y, X, sizeof(y)); return ( int32_t)bswap_32(y); }
-static  int64_t  LE2HI64(void const *X) {  int64_t y; memcpy(&y, X, sizeof(y)); return ( int64_t)bswap_64(y); }
+#define LE2HUI16(X) ((uint16_t)(bswap_16(*((const uint16_t *)(X)))))
+#define LE2HUI32(X) ((uint32_t)(bswap_32(*((const uint32_t *)(X)))))
+#define LE2HUI64(X) ((uint64_t)(bswap_64(*((const uint64_t *)(X)))))
+#define LE2HI16(X)  (( int16_t)(bswap_16(*((const  int16_t *)(X)))))
+#define LE2HI32(X)  (( int32_t)(bswap_32(*((const  int32_t *)(X)))))
+#define LE2HI64(X)  (( int64_t)(bswap_64(*((const  int64_t *)(X)))))
 #endif
 
 typedef struct BAMIndex BAMIndex;
 typedef struct BGZFile BGZFile;
 
-/* #pragma mark BGZFile *** Start *** */
+#define USEMMAP 0
 
 #define VALIDATE_BGZF_HEADER 1
 #if (ZLIB_VERNUM < 0x1230)
@@ -97,58 +92,98 @@ typedef uint8_t zlib_block_t[ZLIB_BLOCK_SIZE];
 #define MEM_ALIGN_SIZE ( 64 * 1024 )
 /* MEM_CHUNK_SIZE must be an integer multiple of ZLIB_BLOCK_SIZE.
  * The multiple must be >= 2 shouldn't be < 3.
+ * If using mmap, it can be much bigger and let the OS deal with the IO.
  */
+#if USEMMAP
+#define MEM_CHUNK_SIZE ( 256 * ZLIB_BLOCK_SIZE ) /* 16 MB */
+#else
 #define MEM_CHUNK_SIZE ( 256 * ZLIB_BLOCK_SIZE )
-#define CG_NUM_SEGS 4
-
-typedef struct BGZFile_vt_s {
-    rc_t (*FileRead)(void *, zlib_block_t, unsigned *);
-    uint64_t (*FileGetPos)(void const *);
-    float (*FileProPos)(void const *);
-    uint64_t (*FileGetSize)(void const *);
-    rc_t (*FileSetPos)(void *, uint64_t);
-    void (*FileWhack)(void *);
-} BGZFile_vt;
+#endif
 
 struct BGZFile {
     uint64_t fsize;
     uint64_t fpos;  /* position in file of first byte in buffer */
     const uint8_t *buf;   /* page aligned or memmapped */
+#if USEMMAP
+    const KMMap *mm;
+#else
     const KFile *kfp;
     uint8_t *_buf;  /* allocated */
     unsigned malign;
+#endif
     size_t bcount;  /* number of valid bytes in buffer */
     uint32_t bpos;  /* position in buffer of read head */
     z_stream zs;
+#if USEMMAP
+    bool sequentialForward;
+#endif
 };
 
-static
-rc_t BGZFileGetMoreBytes(BGZFile *self)
+static rc_t BGZFileInit(BGZFile *self, const KFile *kfp)
+{
+    int i;
+    rc_t rc;
+    
+    memset(self, 0, sizeof(*self));
+
+    i = inflateInit2(&self->zs, MAX_WBITS + 16); /* max + enable gzip headers */
+    switch (i) {
+    case Z_OK:
+        break;
+    case Z_MEM_ERROR:
+        return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+    default:
+        return RC(rcAlign, rcFile, rcConstructing, rcNoObj, rcUnexpected);
+    }
+    
+    rc = KFileSize(kfp, &self->fsize);
+    if (rc)
+        return rc;
+
+#if USEMMAP
+    rc = KMMapMakeRgnRead(&self->mm, kfp, 0, MEM_CHUNK_SIZE);
+#else
+    self->_buf = malloc(MEM_CHUNK_SIZE + MEM_ALIGN_SIZE);
+    if (self->_buf == NULL)
+        return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+    self->malign = (MEM_ALIGN_SIZE - ((intptr_t)self->_buf & (MEM_ALIGN_SIZE - 1))) & (MEM_ALIGN_SIZE - 1);
+    self->buf = self->_buf + self->malign;
+
+    self->kfp = kfp;
+    KFileAddRef(kfp);
+#endif
+    
+    return 0;
+}
+
+static rc_t BGZFileGetMoreBytes(BGZFile *self)
 {
     rc_t rc;
     
     self->fpos += self->bpos;
     self->bpos &= (MEM_ALIGN_SIZE - 1);
     self->fpos -= self->bpos;
-
+#if USEMMAP
+    rc = KMMapReposition(self->mm, self->fpos, &self->bcount);
+    if (rc)
+        return rc;
+    rc = KMMapAddrRead(self->mm, (const void **)&self->buf);
+#else
     rc = KFileRead(self->kfp, self->fpos, self->_buf + self->malign,
                    MEM_CHUNK_SIZE, &self->bcount);
-    if (rc) {
-        DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("Error reading BAM file: %R\n", rc));
+#endif
+    if (rc)
         return rc;
-    }
     if (self->bcount == 0 || self->bcount == self->bpos)
         return RC(rcAlign, rcFile, rcReading, rcData, rcInsufficient);
-
+    
     self->zs.avail_in = (uInt)(self->bcount - self->bpos);
     self->zs.next_in = (Bytef *)&self->buf[self->bpos];
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("Read %u bytes from BAM file at position %lu\n", self->zs.avail_in, self->fpos));
     
     return 0;
 }
 
-static
-rc_t BGZFileRead(BGZFile *self, zlib_block_t dst, unsigned *pNumRead)
+static rc_t BGZFileRead(BGZFile *self, zlib_block_t dst, uint32_t *pNumRead)
 {
 #if VALIDATE_BGZF_HEADER
     uint8_t extra[256];
@@ -159,7 +194,7 @@ rc_t BGZFileRead(BGZFile *self, zlib_block_t dst, unsigned *pNumRead)
     int zr;
     
     *pNumRead = 0;
-    if (self->bcount == 0 || self->zs.avail_in == 0) {
+    if (self->bcount == 0) {
         rc = BGZFileGetMoreBytes(self);
         if (rc)
             return rc;
@@ -178,66 +213,48 @@ rc_t BGZFileRead(BGZFile *self, zlib_block_t dst, unsigned *pNumRead)
     self->zs.avail_out = sizeof(zlib_block_t);
 
     for (loops = 0; loops != 2; ++loops) {
-        uInt const in = self->zs.total_in;
+        uInt temp = self->zs.total_in;
         
         zr = inflate(&self->zs, Z_FINISH);
-        self->bpos += self->zs.total_in - in;
+        self->bpos += self->zs.total_in - temp;
         assert(self->zs.avail_in == self->bcount - self->bpos);
-        
         switch (zr) {
         case Z_OK:
         case Z_BUF_ERROR:
             rc = BGZFileGetMoreBytes(self);
-            if (rc) {
-                if (GetRCObject(rc) == rcData && GetRCState(rc) == rcInsufficient) {
-                    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("EOF in Zlib block after %lu bytes\n", self->fpos + self->bpos));
-                    rc = RC(rcAlign, rcFile, rcReading, rcFile, rcTooShort);
-                }
+            if (rc)
                 return rc;
-            }
             break;
         case Z_STREAM_END:
-            DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("Zlib block size (before/after): %u/%u\n", self->zs.total_in, self->zs.total_out));
 #if VALIDATE_BGZF_HEADER
             if (head.done) {
-                unsigned const extra_len = head.extra_len;
                 unsigned i;
                 unsigned bsize = 0;
+                uint16_t t16;
                 
-                DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("GZIP Header extra length: %u\n", extra_len));
-                for (i = 0; i < extra_len; ) {
-                    uint8_t const si1 = extra[i + 0];
-                    uint8_t const si2 = extra[i + 1];
-                    unsigned const slen = LE2HUI16(&extra[i + 2]);
-                    
-                    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("GZIP Header extra: %c%c(%u)\n", si1, si2, slen));
-                    if (si1 == 'B' && si2 == 'C') {
-                        bsize = 1 + LE2HUI16(&extra[i + 4]);
-                        DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("BGZF Header extra field BC: bsize %u\n", bsize));
+                for (i = 0; i < head.extra_len; ) {
+                    if (extra[i] == 'B' && extra[i + 1] == 'C') {
+                        memcpy(&t16, &extra[i + 4], 2);
+                        bsize = 1 + LE2HUI16(&t16);
                         break;
                     }
-                    i += slen + 4;
+                    memcpy(&t16, &extra[i + 2], 2);
+                    i += LE2HUI16(&t16);
                 }
-                if (bsize == 0 || bsize != self->zs.total_in) {
-                    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("BGZF Header extra field BC not found\n"));
+                if (bsize == 0 || bsize != self->zs.total_in)
                     rc = RC(rcAlign, rcFile, rcReading, rcFormat, rcInvalid); /* not BGZF */
-                }
             }
-            else {
-                DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("GZIP Header not found\n"));
+            else
                 rc = RC(rcAlign, rcFile, rcReading, rcFile, rcCorrupt);
-            }
 #endif
             *pNumRead = self->zs.total_out;
             zr = inflateReset(&self->zs);
             assert(zr == Z_OK);
             return rc;
         default:
-            DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("Unexpected Zlib result %i\n", zr));
             return RC(rcAlign, rcFile, rcReading, rcFile, rcCorrupt);
         }
     }
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BGZF), ("Failed reading BAM file after %lu bytes\n", self->fpos + self->bpos));
     return RC(rcAlign, rcFile, rcReading, rcFile, rcTooShort);
 }
 
@@ -309,13 +326,16 @@ static rc_t BGZFileWalkBlocksND(BGZFile *self, BGZFileWalkBlocks_cb cb, void *ct
             hsize += temp;
             if (head.done) {
                 unsigned i;
+                uint16_t t16;
                 
                 for (i = 0; i < head.extra_len; ) {
                     if (extra[i] == 'B' && extra[i + 1] == 'C') {
-                        bsize = 1 + LE2HUI16(&extra[i + 4]);
+                        memcpy(&t16, &extra[i + 4], 2);
+                        bsize = 1 + LE2HUI16(&t16);
                         break;
                     }
-                    i += LE2HUI16(&extra[i + 2]);
+                    memcpy(&t16, &extra[i + 2], 2);
+                    i += LE2HUI16(&t16);
                 }
                 break;
             }
@@ -374,7 +394,7 @@ static rc_t BGZFileWalkBlocksUnzip(BGZFile *self, zlib_block_t *bufp, BGZFileWal
 {
     rc_t rc;
     rc_t rc2;
-    unsigned dsize;
+    uint32_t dsize;
     
     do {
         uint64_t const fpos = self->fpos + self->bpos;
@@ -410,229 +430,17 @@ static rc_t BGZFileWalkBlocks(BGZFile *self, bool decompress, zlib_block_t *bufp
         return BGZFileWalkBlocksND(self, cb, ctx);
 }
 
-static uint64_t BGZFileGetSize(BGZFile const *const self)
-{
-    return self->fsize;
-}
-
 static void BGZFileWhack(BGZFile *self)
 {
     inflateEnd(&self->zs);
+#if USEMMAP
+    KMMapRelease(self->mm);
+#else
     KFileRelease(self->kfp);
     if (self->_buf)
         free(self->_buf);
-}
-
-static rc_t BGZFileInit(BGZFile *self, const KFile *kfp, BGZFile_vt *vt)
-{
-    int i;
-    rc_t rc;
-    static BGZFile_vt const my_vt = {
-        (rc_t (*)(void *, zlib_block_t, unsigned *))BGZFileRead,
-        (uint64_t (*)(void const *))BGZFileGetPos,
-        (float (*)(void const *))BGZFileProPos,
-        (uint64_t (*)(void const *))BGZFileGetSize,
-        (rc_t (*)(void *, uint64_t))BGZFileSetPos,
-        (void (*)(void *))BGZFileWhack
-    };
-    
-    memset(self, 0, sizeof(*self));
-    memset(vt, 0, sizeof(*vt));
-    
-    i = inflateInit2(&self->zs, MAX_WBITS + 16); /* max + enable gzip headers */
-    switch (i) {
-    case Z_OK:
-        break;
-    case Z_MEM_ERROR:
-        return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
-    default:
-        return RC(rcAlign, rcFile, rcConstructing, rcNoObj, rcUnexpected);
-    }
-    
-    rc = KFileSize(kfp, &self->fsize);
-    if (rc)
-        return rc;
-    
-    self->_buf = malloc(MEM_CHUNK_SIZE + MEM_ALIGN_SIZE);
-    if (self->_buf == NULL)
-        return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
-    self->malign = (MEM_ALIGN_SIZE - ((intptr_t)self->_buf & (MEM_ALIGN_SIZE - 1))) & (MEM_ALIGN_SIZE - 1);
-    self->buf = self->_buf + self->malign;
-    
-    self->kfp = kfp;
-    KFileAddRef(kfp);
-
-    *vt = my_vt;
-    
-    return 0;
-}
-
-/* #pragma mark BGZFile *** End *** */
-
-#ifndef WINDOWS
-
-#include <kproc/thread.h>
-#include <kproc/lock.h>
-#include <kproc/cond.h>
-
-/* #pragma mark BGZThreadFile *** Start *** */
-typedef struct BGZThreadFile_s BGZThreadFile;
-
-#define BUFFER_COUNT (3)
-
-typedef struct BGZThreadFileWorkQElem_s BGZThreadFileWorkQElem;
-
-struct BGZThreadFileWorkQElem_s {
-    uint8_t *buf;
-    uint64_t pos;
-    unsigned bsz;
-};
-
-struct BGZThreadFile_s {
-    BGZFile file;
-    KLock *lock;
-    KCondition *have_data;
-    KCondition *need_data;
-    KThread *th;
-    uint64_t pos;
-    BGZThreadFileWorkQElem que[BUFFER_COUNT];
-    rc_t volatile rc;
-    unsigned volatile nque;
-    bool eof;
-    uint8_t buffer[sizeof(zlib_block_t) * BUFFER_COUNT];
-};
-
-static rc_t BGZThreadFileRead(BGZThreadFile *self, zlib_block_t dst, unsigned *pNumRead)
-{
-    rc_t rc;
-    
-    *pNumRead = 0;
-    
-    KLockAcquire(self->lock);
-    if ((rc = self->rc) == 0) {
-        while (self->nque == 0 && (rc = self->rc) == 0)
-            KConditionWait(self->have_data, self->lock);
-        if (rc == 0) {
-            BGZThreadFileWorkQElem const work = self->que[0];
-            
-            self->pos = work.pos;
-            if (work.buf) {
-                memcpy(dst, work.buf, *pNumRead = work.bsz);
-                memmove(&self->que[0], &self->que[1], --self->nque * sizeof(self->que[0]));
-                KConditionSignal(self->need_data);
-            }
-            else {
-                self->eof = true;
-                self->rc = rc = RC(rcAlign, rcFile, rcReading, rcData, rcInsufficient);
-            }
-        }
-    }
-    KLockUnlock(self->lock);
-    return rc;
-}
-
-static rc_t CC BGZThreadFileMain(KThread const *const th, void *const vp)
-{
-    BGZThreadFile *const self = (BGZThreadFile *)vp;
-    rc_t rc = 0;
-    unsigned bufno;
-    
-    KLockAcquire(self->lock);
-    for (bufno = 0; ; bufno = (bufno + 1) % BUFFER_COUNT) {
-        while (self->nque == BUFFER_COUNT)
-            KConditionWait(self->need_data, self->lock);
-        {
-            BGZThreadFileWorkQElem work;
-            
-            work.pos = BGZFileGetPos(&self->file);
-            work.buf = &self->buffer[bufno * sizeof(zlib_block_t)];
-            rc = BGZFileRead(&self->file, work.buf, &work.bsz);
-            if (GetRCObject(rc) == rcData && GetRCState(rc) == rcInsufficient)
-                work.buf = NULL;
-            else if (rc)
-                break;
-            self->que[self->nque++] = work;
-            KConditionSignal(self->have_data);
-        }
-    }
-    self->rc = rc;
-    KLockUnlock(self->lock);
-    return 0;
-}
-
-static uint64_t BGZThreadFileGetPos(BGZThreadFile const *const self)
-{
-    return self->pos;
-}
-
-/* returns the position as proportion of the whole file */ 
-static float BGZThreadFileProPos(BGZThreadFile const *const self)
-{
-    return BGZThreadFileGetPos(self) / (double)self->file.fsize;
-}
-
-static uint64_t BGZThreadFileGetSize(BGZThreadFile const *const self)
-{
-    return BGZFileGetSize(&self->file);
-}
-
-static rc_t BGZThreadFileSetPos(BGZThreadFile *const self)
-{
-    return RC(rcAlign, rcFile, rcPositioning, rcFunction, rcUnsupported);
-}
-
-static void BGZThreadFileWhack(BGZThreadFile *const self)
-{
-    KThreadCancel(self->th);
-    KThreadWait(self->th, NULL);
-    BGZFileWhack(&self->file);
-    KConditionRelease(self->need_data);
-    KConditionRelease(self->have_data);
-    KLockRelease(self->lock);
-    KThreadRelease(self->th);
-}
-
-static rc_t BGZThreadFileInit(BGZThreadFile *self, const KFile *kfp, BGZFile_vt *vt)
-{
-    rc_t rc;
-    static BGZFile_vt const my_vt = {
-        (rc_t (*)(void *, zlib_block_t, unsigned *))BGZThreadFileRead,
-        (uint64_t (*)(void const *))BGZThreadFileGetPos,
-        (float (*)(void const *))BGZThreadFileProPos,
-        (uint64_t (*)(void const *))BGZThreadFileGetSize,
-        (rc_t (*)(void *, uint64_t))BGZThreadFileSetPos,
-        (void (*)(void *))BGZThreadFileWhack
-    };
-    
-    memset(self, 0, sizeof(self));
-    
-    rc = BGZFileInit(&self->file, kfp, vt);
-    if (rc == 0) {
-        rc = KLockMake(&self->lock);
-        if (rc == 0) {
-            rc = KConditionMake(&self->have_data);
-            if (rc == 0) {
-                rc = KConditionMake(&self->need_data);
-                if (rc == 0) {
-                    rc = KThreadMake(&self->th, BGZThreadFileMain, self);
-                    if (rc == 0) {
-                        *vt = my_vt;
-                        return 0;
-                    }
-                    KConditionRelease(self->need_data);
-                }
-                KConditionRelease(self->have_data);
-            }
-            KLockRelease(self->lock);
-        }
-        BGZFileWhack(&self->file);
-    }
-    memset(self, 0, sizeof(self));
-    memset(vt, 0, sizeof(*vt));
-    return rc;
-}
-
 #endif
+}
 
 struct BAMIndex {
     BAMFilePosition *refSeq[1];
@@ -642,33 +450,25 @@ struct BAMFile {
     uint64_t fpos_first;
     uint64_t fpos_cur;
     
-    union {
-        BGZFile plain;
-#ifndef WINDOWS
-        BGZThreadFile thread;
-#endif
-    } file;
-    BGZFile_vt vt;
-    
-    BAMRefSeq *refSeq;          /* pointers into headerData1 except name points into headerData2 */ 
-    BAMReadGroup *readGroup;    /* pointers into headerData1 */
-    char const *version;
-    char const *header;
-    char    *headerData1;       /* gets used for refSeq and readGroup */
-    uint8_t *headerData2;       /* gets used for refSeq */
+    BGZFile file;
+    BAMRefSeq *refSeq;
+    BAMReadGroup *readGroup;
     BAMAlignment *bufLocker;
-    BAMIndex const *ndx;
+    const char *version;
+    char const *header;
+    char const *headerData1;
+    char const *headerData2;
+    const BAMIndex *ndx;
     
     unsigned refSeqs;
     unsigned readGroups;
     
     atomic32_t refcount;
-    unsigned ucfirst;           /* offset of first record in uncompressed buffer */
-    unsigned bufSize;           /* current size of uncompressed buffer */
-    unsigned bufCurrent;        /* location in uncompressed buffer of read head */
+    unsigned ucfirst;    /* offset of first record in uncompressed buffer */
+    unsigned bufSize;    /* current size of uncompressed buffer */
+    unsigned bufCurrent; /* location in uncompressed buffer of read head */
     bool eof;
-    bool threaded;
-    zlib_block_t buffer;        /* uncompressed buffer */
+    zlib_block_t buffer; /* uncompressed buffer */
 };
 
 struct bam_alignment_s {
@@ -685,9 +485,9 @@ struct bam_alignment_s {
     uint8_t ins_size[4];
     char read_name[1 /* read_name_len */];
 /* if you change length of read_name,
- * adjust calculation of offsets in BAMFileRead */
+ * adjust calculation of offsets in BAMAlignmentParse */
 /*  uint32_t cigar[n_cigars];
- *  uint8_t seq[(read_len + 1) / 2];
+ *  uint8_t seq[(read_len + 1) >> 1];
  *  uint8_t qual[read_len];
  *  uint8_t extra[...];
  */
@@ -698,24 +498,21 @@ typedef union bam_alignment_u {
     uint8_t raw[sizeof(struct bam_alignment_s)];
 } bam_alignment;
 
-struct offset_size_s {
-    unsigned offset;
-    unsigned size; /* this is the total length of the tag; length of data is size - 3 */
-};
-
 struct BAMAlignment {
     atomic32_t refcount;
     
     BAMFile *parent;
     bam_alignment *data;
-    uint8_t *storage;
     unsigned datasize;
         
     unsigned cigar;
     unsigned seq;
     unsigned qual;
-    unsigned numExtra;
-    struct offset_size_s extra[1];
+    unsigned extra;
+    unsigned readGroupName;
+    unsigned csread;
+    
+    uint8_t storage[1];
 };
 
 static const char cigarChars[] = {
@@ -732,11 +529,17 @@ static const char cigarChars[] = {
 };
 
 static int32_t getRefSeqId(const BAMAlignment *cself) {
-    return LE2HI32(cself->data->cooked.rID);
+    int32_t y;
+    
+    memcpy(&y, cself->data->cooked.rID, 4);
+    return LE2HI32(&y);
 }
 
 static int32_t getPosition(const BAMAlignment *cself) {
-    return LE2HI32(cself->data->cooked.pos);
+    int32_t y;
+    
+    memcpy(&y, cself->data->cooked.pos, 4);
+    return LE2HI32(&y);
 }
 
 static uint8_t getReadNameLength(const BAMAlignment *cself) {
@@ -744,7 +547,10 @@ static uint8_t getReadNameLength(const BAMAlignment *cself) {
 }
 
 static uint16_t getBin(const BAMAlignment *cself) {
-    return LE2HUI16(cself->data->cooked.bin);
+    uint16_t y;
+    
+    memcpy(&y, cself->data->cooked.bin, 2);
+    return LE2HUI16(&y);
 }
 
 static uint8_t getMapQual(const BAMAlignment *cself) {
@@ -752,129 +558,49 @@ static uint8_t getMapQual(const BAMAlignment *cself) {
 }
 
 static uint16_t getCigarCount(const BAMAlignment *cself) {
-    return LE2HUI16(cself->data->cooked.n_cigars);
+    uint16_t y;
+    
+    memcpy(&y, cself->data->cooked.n_cigars, 2);
+    return LE2HUI16(&y);
 }
 
 static uint16_t getFlags(const BAMAlignment *cself) {
-    return LE2HUI16(cself->data->cooked.flags);
+    uint16_t y;
+    
+    memcpy(&y, cself->data->cooked.flags, 2);
+    return LE2HUI16(&y);
 }
 
 static uint32_t getReadLen(const BAMAlignment *cself) {
-    return LE2HUI32(cself->data->cooked.read_len);
+    uint32_t y;
+    
+    memcpy(&y, cself->data->cooked.read_len, 4);
+    return LE2HUI32(&y);
 }
 
 static int32_t getMateRefSeqId(const BAMAlignment *cself) {
-    return LE2HI32(cself->data->cooked.mate_rID);
+    int32_t y;
+    
+    memcpy(&y, cself->data->cooked.mate_rID, 4);
+    return LE2HI32(&y);
 }
 
 static int32_t getMatePos(const BAMAlignment *cself) {
-    return LE2HI32(cself->data->cooked.mate_pos);
-}
-
-static int32_t getInsertSize(const BAMAlignment *cself) {
-    return LE2HI32(cself->data->cooked.ins_size);
-}
-
-static char const *getReadName(const BAMAlignment *cself) {
-    return &cself->data->cooked.read_name[0];
-}
-
-static void const *getCigarBase(BAMAlignment const *cself)
-{
-    return &cself->data->raw[cself->cigar];
-}
-
-static int opt_tag_cmp(uint8_t const a[2], uint8_t const b[2])
-{
-    int const d0 = (int)a[0] - (int)b[0];
-    return d0 ? d0 : ((int)a[1] - (int)b[1]);
-}
-
-static int CC OptTag_sort(void const *a, void const *b, void *ctx)
-{
-    BAMAlignment const *const self = ctx;
-    unsigned const a_off = ((struct offset_size_s const *)a)->offset;
-    unsigned const b_off = ((struct offset_size_s const *)b)->offset;
+    int32_t y;
     
-    return opt_tag_cmp(&self->data->raw[a_off], &self->data->raw[b_off]);
+    memcpy(&y, cself->data->cooked.mate_pos, 4);
+    return LE2HI32(&y);
 }
 
-static int CC OptTag_cmp(void const *key, void const *item, void *ctx)
-{
-    BAMAlignment const *const self = ctx;
-    unsigned const offset = ((struct offset_size_s const *)item)->offset;
+static int32_t getInsertSize(const BAMAlignment *cself) {
+    int32_t y;
     
-    return opt_tag_cmp(key, &self->data->raw[offset]);
-}
-
-static char const *get_RG(BAMAlignment const *cself)
-{
-    struct offset_size_s const *const x = kbsearch("RG", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-    return (char const *)(x && cself->data->raw[x->offset + 2] == 'Z' ? &cself->data->raw[x->offset + 3] : NULL);
-}
-
-static struct offset_size_s const *get_CS_info(BAMAlignment const *cself)
-{
-    return kbsearch("CS", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-}
-
-static struct offset_size_s const *get_CQ_info(BAMAlignment const *cself)
-{
-    return kbsearch("CQ", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-}
-
-static char const *get_CS(BAMAlignment const *cself)
-{
-    struct offset_size_s const *const x = get_CS_info(cself);
-    return (char const *)(x && cself->data->raw[x->offset + 2] == 'Z' ? &cself->data->raw[x->offset + 3] : NULL);
-}
-
-static uint8_t const *get_CQ(BAMAlignment const *cself)
-{
-    struct offset_size_s const *const x = get_CQ_info(cself);
-    return (uint8_t const *)(x && cself->data->raw[x->offset + 2] == 'Z' ? &cself->data->raw[x->offset + 3] : NULL);
-}
-
-static struct offset_size_s const *get_OQ_info(BAMAlignment const *cself)
-{
-    return kbsearch("OQ", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-}
-
-static uint8_t const *get_OQ(BAMAlignment const *cself)
-{
-    struct offset_size_s const *const x = get_OQ_info(cself);
-    return (uint8_t const *)(x && cself->data->raw[x->offset + 2] == 'Z' ? &cself->data->raw[x->offset + 3] : NULL);
-}
-
-static char const *get_XT(BAMAlignment const *cself)
-{
-    struct offset_size_s const *const x = kbsearch("XT", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-    return (char const *)(x && cself->data->raw[x->offset + 2] == 'Z' ? &cself->data->raw[x->offset + 3] : NULL);
-}
-
-static struct offset_size_s const *get_CG_ZA_info(BAMAlignment const *cself)
-{
-    return kbsearch("ZA", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-}
-
-static struct offset_size_s const *get_CG_ZI_info(BAMAlignment const *cself)
-{
-    return kbsearch("ZI", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
+    memcpy(&y, cself->data->cooked.ins_size, 4);
+    return LE2HI32(&y);
 }
 
-static struct offset_size_s const *get_CG_GC_info(BAMAlignment const *cself)
-{
-    return kbsearch("GC", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-}
-
-static struct offset_size_s const *get_CG_GS_info(BAMAlignment const *cself)
-{
-    return kbsearch("GS", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
-}
-
-static struct offset_size_s const *get_CG_GQ_info(BAMAlignment const *cself)
-{
-    return kbsearch("GQ", cself->extra, cself->numExtra, sizeof(cself->extra[0]), OptTag_cmp, (void *)cself);
+static const char *getReadName(const BAMAlignment *cself) {
+    return &cself->data->cooked.read_name[0];
 }
 
 static rc_t BAMFileReadn(BAMFile *self, const unsigned len, uint8_t dst[/* len */]) {
@@ -904,14 +630,14 @@ static rc_t BAMFileReadn(BAMFile *self, const unsigned len, uint8_t dst[/* len *
              *    self->fpos_cur == BGZFileGetPos(&self->file)
              * is already true.
              */
-            self->fpos_cur = self->vt.FileGetPos(&self->file);
+            self->fpos_cur = BGZFileGetPos(&self->file);
             self->bufCurrent = 0;
             self->bufSize = 0;
             if (cur + n == len)
                 return 0;
         }
 
-        rc = self->vt.FileRead(&self->file, self->buffer, &self->bufSize);
+        rc = BGZFileRead(&self->file, self->buffer, &self->bufSize);
         if (rc)
             return rc;
         if (self->bufSize == 0 || self->bufSize <= self->bufCurrent)
@@ -919,410 +645,312 @@ static rc_t BAMFileReadn(BAMFile *self, const unsigned len, uint8_t dst[/* len *
     }
 }
 
-static rc_t BAMFileReadI32(BAMFile *self, int32_t *rhs)
-{
-    uint8_t buf[sizeof(int32_t)];
-    rc_t rc = BAMFileReadn(self, sizeof(int32_t), buf);
-    
+static rc_t BAMFileReadUI32(BAMFile *self, uint32_t *rhs) {
+    uint8_t buf[sizeof(*rhs)];
+    rc_t rc = BAMFileReadn(self, sizeof(buf), buf);
     if (rc == 0)
-        *rhs = LE2HI32(buf);
+        *rhs = LE2HUI32(buf);
     return rc;
 }
 
-static int CC comp_ReadGroup(const void *a, const void *b, void *ignored) {
-    return strcmp(((BAMReadGroup const *)a)->name, ((BAMReadGroup const *)b)->name);
-}
-
-static rc_t ParseHD(BAMFile *self, char hdata[], unsigned hlen, unsigned *used)
-{
-    unsigned i;
-    unsigned tag;
-    unsigned value;
-    int st = 0;
-    int ws = 1;
-
-    for (i = 0; i < hlen; ++i) {
-        char const cc = hdata[i];
-        
-        if (ws && isspace(cc))
-            continue;
-        ws = 0;
-        
-        switch (st) {
-        case 0:
-            tag = i;
-            ++st;
-            break;
-        case 1:
-            if (isspace(cc))
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-            ++st;
-            break;
-        case 2:
-            if (cc != ':')
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-            hdata[i] = '\0';
-            value = i + 1;
-            ++st;
-            break;
-        case 3:
-            if (cc == '\t' || cc == '\r' || cc == '\n') {
-                hdata[i] = '\0';
-                
-                if (strcmp(&hdata[tag], "VN") == 0)
-                    self->version = &hdata[value];
-                
-                ++st;
-                ws = 1;
-            }
-            break;
-        case 4:
-            if (cc == '@')
-                goto DONE;
-            tag = i;
-            st = 1;
-            break;
-        }
+static int CC comp_ReadGroup(const void *A, const void *B, void * ignored) {
+    const BAMReadGroup *a = (const BAMReadGroup *)A;
+    const BAMReadGroup *b = (const BAMReadGroup *)B;
+    
+    if (a->name == NULL) {
+        if (b->name)
+            return -1;
+        else
+            return 0;
     }
-    if (st == 4) {
-DONE:
-        *used = i;
-        return 0;
+    if (b->name == NULL) {
+        if (a->name)
+            return 1;
+        else
+            return 0;
     }
-    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+    return strcmp(a->name, b->name);
 }
 
-static rc_t ParseSQ(BAMFile *self, char hdata[], unsigned hlen, unsigned *used, unsigned const rs_by_name[])
-{
-    unsigned i;
-    unsigned tag;
-    unsigned value;
-    int st = 0;
-    int ws = 1;
-    BAMRefSeq rs;
+static int CC comp_RefSeqName ( const void *A, const void *B, void * ignored ) {
+    const BAMRefSeq *a = *(const BAMRefSeq **)A;
+    const BAMRefSeq *b = *(const BAMRefSeq **)B;
     
-    memset(&rs, 0, sizeof(rs));
+    if (a->name == NULL) {
+        if (b->name)
+            return -1;
+        else
+            return 0;
+    }
+    if (b->name == NULL) {
+        if (a->name)
+            return 1;
+        else
+            return 0;
+    }
+    return strcmp(a->name, b->name);
+}
+
+static rc_t ParseHeader(BAMFile *self, char hdata[], size_t hlen, const BAMRefSeq ** rs_by_name) {
+    unsigned readGroups = 0;
+    const char *const endp = hdata + hlen;
+    const char *token = NULL, *value = NULL;
+    int st = 0, eat_ws = 1;
+    BAMRefSeq rs;
     
-    for (i = 0; i < hlen; ++i) {
-        char const cc = hdata[i];
-        
-        if (ws && isspace(cc))
+#define ST_HD_START 10
+#define ST_SQ_START 20
+#define ST_RG_START 30
+
+    while (hdata != endp) {
+        if (eat_ws && isspace(*hdata)) {
+            ++hdata;
             continue;
-        ws = 0;
+        }
+        else
+            eat_ws = 0;
         
         switch (st) {
-        case 0:
-            tag = i;
-            ++st;
-            break;
-        case 1:
-            if (isspace(cc))
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-            ++st;
-            break;
-        case 2:
-#define HACKAMATIC 1
-#if HACKAMATIC
-            if (cc != ':') {
-                if (i + 1 >= hlen || hdata[i+1] != ':')
-                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+            case 0:
+                if (*hdata == '@')
+                    ++st;
                 else
-                    ++i;
-            }
-#else
-            if (cc != ':')
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-#endif
-            hdata[i] = '\0';
-            value = i + 1;
-            ++st;
-            break;
-        case 3:
-            if (cc == '\t' || cc == '\r' || cc == '\n') {
-                unsigned j;
-                
-                hdata[i] = '\0';
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+                break;
+            case 1:
+                if (isspace(*hdata))
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+                token = hdata;
+                ++st;
+                break;
+            case 2:
+                if (isspace(*hdata)) {
+                    *hdata = '\0';
+                    if (hdata - token == 2) {
+                        eat_ws = 1;
+                        if (strcmp(token, "HD") == 0)
+                            st = ST_HD_START;
+                        else if (strcmp(token, "SQ") == 0)
+                            st = ST_SQ_START;
+                        else if (strcmp(token, "RG") == 0)
+                            st = ST_RG_START;
+                    }
+                    if (st == 2) {
+                        ++st;
+                        eat_ws = 0;
+                    }
+                }
+                else if (hdata - token > 2)
+                    ++st;
+                break;
+            case 3:
+                if (*hdata == '\r' || *hdata == '\n') {
+                    st = 0;
+                    eat_ws = 1;
+                }
+                break;
+            case ST_HD_START:
+                token = hdata;
+                ++st;
+                break;
+            case ST_HD_START + 1:
+                if (isspace(*hdata))
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+                ++st;
+                break;
+            case ST_HD_START + 2:
+                if (*hdata != ':')
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+                *hdata = '\0';
+                eat_ws = 1;
+                ++st;
+                break;
+            case ST_HD_START + 3:
+                value = hdata;
+                ++st;
+                break;
+            case ST_HD_START + 4:
+                if (*hdata == '\t' || *hdata == '\r' || *hdata == '\n') {
+                    *hdata = '\0';
+                    
+                    if (strcmp(token, "VN") == 0)
+                        self->version = value;
+                    
+                    ++st;
+                    eat_ws = 1;
+                }
+                break;
+            case ST_HD_START + 5:
+                if (*hdata == '@')
+                    st = 1;
+                else {
+                    token = hdata;
+                    st = ST_HD_START + 1;
+                }
+                break;
                 
-                while (value < i && isspace(hdata[value]))
-                    ++value;
-                for (j = i; value < j && isspace(hdata[j - 1]); )
-                    hdata[--j] = '\0';
                 
-                if (strcmp(&hdata[tag], "SN") == 0)
-                    rs.name = &hdata[value];
-                else if (strcmp(&hdata[tag], "LN") == 0)
-                    rs.length = strtou64(&hdata[value], NULL, 10);
-                else if (strcmp(&hdata[tag], "AS") == 0)
-                    rs.assemblyId = &hdata[value];
-#if HACKAMATIC
-                else if (strcmp(&hdata[tag], "M5") == 0 || strcmp(&hdata[tag], "MD5") == 0)
-#else
-                else if (strcmp(&hdata[tag], "M5") == 0)
-#endif
-#undef HACKAMATIC
-                {
-                    unsigned len = j - value;
+            case ST_SQ_START:
+                memset(&rs, 0, sizeof(rs));
+                token = hdata;
+                ++st;
+                break;
+            case ST_SQ_START + 1:
+                if (isspace(*hdata))
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+                ++st;
+                break;
+            case ST_SQ_START + 2:
+                if (*hdata != ':')
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+                *hdata = '\0';
+                eat_ws = 1;
+                ++st;
+                break;
+            case ST_SQ_START + 3:
+                value = hdata;
+                ++st;
+                break;
+            case ST_SQ_START + 4:
+                if (*hdata == '\t' || *hdata == '\r' || *hdata == '\n') {
+                    *hdata = '\0';
                     
-                    if ((hdata[value] == '\'' || hdata[value] == '"') && hdata[value + len - 1] == hdata[value]) {
-                        ++value;
-                        len -= 2;
-                    }
-                    if (len == 32) {
-                        rs.checksum = &rs.checksum_array[0];
-                        for (j = 0; j != 16; ++j) {
-                            int const ch1 = toupper(hdata[value + j * 2 + 0]);
-                            int const ch2 = toupper(hdata[value + j * 2 + 1]);
+                    if (strcmp(token, "SN") == 0)
+                        rs.name = value;
+                    else if (strcmp(token, "LN") == 0)
+                        rs.length = strtou64(value, NULL, 10);
+                    else if (strcmp(token, "AS") == 0)
+                        rs.assemblyId = value;
+                    else if (strcmp(token, "M5") == 0) {
+                        unsigned len = hdata - value;
+                        
+                        while (isspace(value[len - 1]))
+                            --len;
+                        
+                        if ((value[0] == '\'' || value[0] == '"') && value[len - 1] == value[0]) {
+                            ++value;
+                            len -= 2;
+                        }
+                        if (len == 32) {
+                            unsigned i;
                             
-                            if (isxdigit(ch1) && isxdigit(ch2)) {
-                                rs.checksum_array[j] =
-                                    ((ch1 > '9' ? (ch1 - ('A' - 10)) : (ch1 - '0')) << 4) +
-                                     (ch2 > '9' ? (ch2 - ('A' - 10)) : (ch2 - '0'));
+                            rs.checksum = &rs.checksum_array[0];
+                            for (i = 0; i != 16; ++i) {
+                                int const ch1 = toupper(value[i * 2 + 0]);
+                                int const ch2 = toupper(value[i * 2 + 1]);
+                                
+                                if (isxdigit(ch1) && isxdigit(ch2)) {
+                                    rs.checksum_array[i] =
+                                        ((ch1 > '9' ? (ch1 - ('A' - 10)) : (ch1 - '0')) << 4) +
+                                         (ch2 > '9' ? (ch2 - ('A' - 10)) : (ch2 - '0'));
+                                }
+                                else {
+                                    rs.checksum = NULL;
+                                    break;
+                                }
                             }
-                            else {
-                                rs.checksum = NULL;
-                                break;
+                        }
+                    }
+                    else if (strcmp(token, "UR") == 0)
+                        rs.uri = value;
+                    else if (strcmp(token, "SP") == 0)
+                        rs.species = value;
+                    
+                    ++st;
+                    eat_ws = 1;
+                }
+                break;
+            case ST_SQ_START + 5:
+                if (*hdata == '@') {
+                    if (rs.name != NULL) {
+                        BAMRefSeq *y = &rs, **xx = kbsearch( &y, rs_by_name, self->refSeqs, sizeof(y), comp_RefSeqName, NULL );
+
+                        if (xx != NULL) {
+                            BAMRefSeq *x = *xx;
+                            
+                            x->assemblyId = rs.assemblyId;
+                            if (rs.checksum) {
+                                x->checksum = &x->checksum_array[0];
+                                memcpy(x->checksum_array, rs.checksum_array, 16);
                             }
+                            else
+                                x->checksum = NULL;
+                            x->uri = rs.uri;
+                            x->species = rs.species;
                         }
                     }
+                    st = 1;
                 }
-                else if (strcmp(&hdata[tag], "UR") == 0)
-                    rs.uri = &hdata[value];
-                else if (strcmp(&hdata[tag], "SP") == 0)
-                    rs.species = &hdata[value];
-                
-                ++st;
-                ws = 1;
-            }
-            break;
-        case 4:
-            if (cc == '@')
-                goto DONE;
-            tag = i;
-            st = 1;
-            break;
-        }
-    }
-DONE:
-    if (st == 4) {
-        unsigned f = 0;
-        unsigned e = self->refSeqs;
-        
-        if (rs.name == NULL) /* required tags */
-            return RC(rcAlign, rcFile, rcParsing, rcConstraint, rcViolated);
-        
-        while (f < e) {
-            unsigned const m = (f + e) >> 1;
-            BAMRefSeq *const x = &self->refSeq[rs_by_name[m]];
-            int const cmp = strcmp(rs.name, x->name);
-            
-            if (cmp < 0)
-                e = m;
-            else if (cmp > 0)
-                f = m + 1;
-            else {
-                x->assemblyId = rs.assemblyId;
-                x->uri = rs.uri;
-                x->species = rs.species;
-                if (rs.checksum) {
-                    x->checksum = &x->checksum_array[0];
-                    memcpy(x->checksum_array, rs.checksum_array, 16);
+                else {
+                    token = hdata;
+                    st = ST_SQ_START + 1;
                 }
-                else
-                    x->checksum = NULL;
                 break;
-            }
-        }
-        *used = i;
-        return 0;
-    }
-    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-}
-
-static rc_t ParseRG(BAMFile *self, char hdata[], unsigned hlen, unsigned *used, BAMReadGroup *dst)
-{
-    unsigned i;
-    unsigned tag;
-    unsigned value;
-    int st = 0;
-    int ws = 1;
-#if _DEBUGGING
-    char const *cur = hdata;
-#endif
-    
-    memset(dst, 0, sizeof(*dst));
-    
-    for (i = 0; i < hlen; ++i) {
-        char const cc = hdata[i];
-        
-        if (ws && isspace(cc))
-            continue;
-        ws = 0;
-        
-        switch (st) {
-        case 0:
-            tag = i;
-            ++st;
-            break;
-        case 1:
-            if (isspace(cc))
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-            ++st;
-            break;
-        case 2:
-            if (cc != ':')
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-#if _DEBUGGING
-            cur = hdata + i + 1;
-#endif
-            hdata[i] = '\0';
-            value = i + 1;
-            ++st;
-            break;
-        case 3:
-            if (cc == '\t' || cc == '\r' || cc == '\n') {
-                unsigned j = i;
-#if _DEBUGGING
-                cur = hdata + i + 1;
-#endif
-                hdata[i] = '\0';
-
-                while (value < i && isspace(hdata[value]))
-                    ++value;
-                while (value < j && isspace(hdata[j - 1]))
-                    hdata[--j] = '\0';
                 
-                if ((hdata[value] == '\"' || hdata[value] == '\'') && hdata[value] == hdata[j - 1]) {
-                    ++value;
-                    hdata[j - 1] = '\0';
-                }
-                if (strcmp(&hdata[tag], "ID") == 0)
-                    dst->name = &hdata[value];
-                else if (strcmp(&hdata[tag], "SM") == 0)
-                    dst->sample = &hdata[value];
-                else if (strcmp(&hdata[tag], "LB") == 0)
-                    dst->library = &hdata[value];
-                else if (strcmp(&hdata[tag], "DS") == 0)
-                    dst->description = &hdata[value];
-                else if (strcmp(&hdata[tag], "PU") == 0)
-                    dst->unit = &hdata[value];
-                else if (strcmp(&hdata[tag], "PI") == 0)
-                    dst->insertSize = &hdata[value];
-                else if (strcmp(&hdata[tag], "CN") == 0)
-                    dst->center = &hdata[value];
-                else if (strcmp(&hdata[tag], "DT") == 0)
-                    dst->runDate = &hdata[value];
-                else if (strcmp(&hdata[tag], "PL") == 0)
-                    dst->platform = &hdata[value];
                 
+            case ST_RG_START:
+                token = hdata;
                 ++st;
-                ws = 1;
-            }
-            break;
-        case 4:
-            if (cc == '@')
-                goto DONE;
-            tag = i;
-            st = 1;
-            break;
-        }
-    }
-    if (st == 4) {
-DONE:
-        *used = i;
-        if (dst->name == NULL) /* required */
-            return RC(rcAlign, rcFile, rcParsing, rcConstraint, rcViolated);
-        return 0;
-    }
-    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-}
-
-static rc_t ParseHeader(BAMFile *self, char hdata[], unsigned hlen, unsigned const rs_by_name[]) {
-    unsigned rg = 0;
-    unsigned i;
-    unsigned tag;
-    int st = 0;
-    int ws = 1;
-    unsigned used;
-    rc_t rc;
-    
-    for (i = 0; i < hlen; ++i) {
-        char const cc = hdata[i];
-        
-        if (ws && isspace(cc))
-            continue;
-        ws = 0;
-        
-        switch (st) {
-        case 0:
-            if (cc == '@')
+                break;
+            case ST_RG_START + 1:
+                if (isspace(*hdata))
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
                 ++st;
-            else
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-            break;
-        case 1:
-            if (isspace(cc))
-                return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
-            tag = i;
-            ++st;
-            break;
-        case 2:
-            if (isspace(cc)) {
-                hdata[i] = '\0';
-                if (i - tag == 2) {
-                    if (strcmp(&hdata[tag], "HD") == 0) {
-                        rc = ParseHD(self, &hdata[i + 1], hlen - i - 1, &used);
-                        if (rc) return rc;
-                        i += used;
-                        st = 0;
-                    }
-                    else if (strcmp(&hdata[tag], "SQ") == 0) {
-                        rc = ParseSQ(self, &hdata[i + 1], hlen - i - 1, &used, rs_by_name);
-                        if (rc) return rc;
-                        i += used;
-                        st = 0;
-                    }
-                    else if (strcmp(&hdata[tag], "RG") == 0) {
-                        rc = ParseRG(self, &hdata[i + 1], hlen - i - 1, &used, &self->readGroup[rg]);
-                        if (GetRCObject(rc) == rcConstraint && GetRCState(rc) == rcViolated) {
-                            (void)LOGERR(klogWarn, rc, "Read Group is missing ID in BAM header");
-                            rc = 0;
-                            if (self->readGroups) --self->readGroups;
-                        }
-                        else if (rc)
-                            return rc;
-                        else
-                            ++rg;
-                        i += used;
-                        st = 0;
-                    }
-                }
-                if (st == 2) {
+                break;
+            case ST_RG_START + 2:
+                if (*hdata != ':')
+                    return RC(rcAlign, rcFile, rcParsing, rcData, rcInvalid);
+                *hdata = '\0';
+                eat_ws = 1;
+                ++st;
+                break;
+            case ST_RG_START + 3:
+                value = hdata;
+                ++st;
+                break;
+            case ST_RG_START + 4:
+                if (*hdata == '\t' || *hdata == '\r' || *hdata == '\n') {
+                    *hdata = '\0';
+                    
+                    if (strcmp(token, "ID") == 0)
+                        self->readGroup[readGroups].name = value;
+                    else if (strcmp(token, "SM") == 0)
+                        self->readGroup[readGroups].sample = value;
+                    else if (strcmp(token, "LB") == 0)
+                        self->readGroup[readGroups].library = value;
+                    else if (strcmp(token, "DS") == 0)
+                        self->readGroup[readGroups].description = value;
+                    else if (strcmp(token, "PU") == 0)
+                        self->readGroup[readGroups].unit = value;
+                    else if (strcmp(token, "PI") == 0)
+                        self->readGroup[readGroups].insertSize = value;
+                    else if (strcmp(token, "CN") == 0)
+                        self->readGroup[readGroups].center = value;
+                    else if (strcmp(token, "DT") == 0)
+                        self->readGroup[readGroups].runDate = value;
+                    else if (strcmp(token, "PL") == 0)
+                        self->readGroup[readGroups].platform = value;
+                    
                     ++st;
-                    ws = 0;
+                    eat_ws = 1;
                 }
-            }
-            else if (i - tag > 2)
-                ++st;
-            break;
-        case 3:
-            if (cc == '\r' || cc == '\n') {
-                st = 0;
-                ws = 1;
-            }
-            break;
+                break;
+            case ST_RG_START + 5:
+                if (*hdata == '@') {
+                    ++readGroups;
+                    st = 1;
+                }
+                else {
+                    token = hdata;
+                    st = ST_RG_START + 1;
+                }
+                break;
         }
+        ++hdata;
     }
     ksort( self->readGroup, self->readGroups, sizeof(self->readGroup[0]), comp_ReadGroup, NULL );
-    for (rg = 0; rg != self->readGroups; ++rg) {
-        if (rg > 0 && strcmp(self->readGroup[rg - 1].name, self->readGroup[rg].name) == 0)
-            return RC(rcAlign, rcFile, rcParsing, rcConstraint, rcViolated);  /* name must be unique */
-        self->readGroup[rg].id = rg;
-    }
-    for (i = 0; i < self->refSeqs; ++i) {
-        if (self->refSeq[i].length == 0) {
-            (void)PLOGMSG(klogWarn, (klogWarn, "Reference '$(ref)' has zero length", "ref=%s", self->refSeq[i].name));
-        }
-    }
+    for (readGroups = 0; readGroups != self->readGroups; ++readGroups)
+        self->readGroup[readGroups].id = readGroups;
     
     return 0;
 }
@@ -1346,200 +974,124 @@ static rc_t CountReadGroups(char const txt[], size_t len, unsigned *reads) {
     return 0;
 }
 
-static rc_t ReadMagic(BAMFile *self)
-{
-    uint8_t sig[4];
-    rc_t rc = BAMFileReadn(self, 4, sig);
-    
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM signature: '%c%c%c' %u\n", sig[0], sig[1], sig[2], sig[3]));
-    if (rc == 0 && (sig[0] != 'B' || sig[1] != 'A' || sig[2] != 'M' || sig[3] != 1))
-        rc = RC(rcAlign, rcFile, rcReading, rcHeader, rcBadVersion);
-    return rc;
-}
-
-static rc_t ReadHeaders(BAMFile *self,
-                        char **headerText, unsigned *headerTextLen,
-                        uint8_t **refData, unsigned *numrefs)
-{
-    unsigned hlen;
-    char *htxt = NULL;
+static rc_t ProcessHeader(BAMFile *self) {
+    rc_t rc;
+    uint8_t magic[4];
+    uint32_t hlen;
     unsigned nrefs;
-    uint8_t *rdat = NULL;
-    unsigned rdsz;
-    unsigned rdms;
-    unsigned i;
-    int32_t i32;
-    rc_t rc = BAMFileReadI32(self, &i32);
-    
-    if (rc) return rc;
-
-    if (i32 < 0) {
-        rc = RC(rcAlign, rcFile, rcReading, rcHeader, rcInvalid);
-        goto BAILOUT;
-    }
-    hlen = i32;
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM Header text size: %u\n", hlen));
-    if (hlen) {
-        htxt = malloc(hlen + 1);
-        if (htxt == NULL) {
-            rc = RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
-            goto BAILOUT;
-        }
-        
-        rc = BAMFileReadn(self, hlen, (uint8_t *)htxt); if (rc) goto BAILOUT;
-        htxt[hlen] = '\0';
-    }
-    rc = BAMFileReadI32(self, &i32); if (rc) goto BAILOUT;
-    if (i32 < 0) {
-        rc = RC(rcAlign, rcFile, rcReading, rcHeader, rcInvalid);
-        goto BAILOUT;
-    }
-    nrefs = i32;
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM Header reference count: %u\n", nrefs));
-    if (nrefs) {
-        rdms = nrefs * 16;
-        if (rdms < 4096)
-            rdms = 4096;
-        rdat = malloc(rdms);
-        if (rdat == NULL) {
-            rc = RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
-            goto BAILOUT;
-        }
-        for (i = rdsz = 0; i < nrefs; ++i) {
-            rc = BAMFileReadI32(self, &i32); if (rc) goto BAILOUT;
-            if (i32 <= 0) {
-                rc = RC(rcAlign, rcFile, rcReading, rcHeader, rcInvalid);
-                goto BAILOUT;
-            }
-            if (rdsz + i32 + 8 > rdms) {
-                void *tmp;
-                
-                do { rdms <<= 1; } while (rdsz + i32 + 8 > rdms);
-                tmp = realloc(rdat, rdms);
-                if (tmp == NULL) {
-                    rc = RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
-                    goto BAILOUT;
-                }
-                rdat = tmp;
-            }
-            memcpy(rdat + rdsz, &i32, 4);
-            rdsz += 4;
-            rc = BAMFileReadn(self, i32, &rdat[rdsz]); if (rc) goto BAILOUT;
-            rdsz += i32;
-            rc = BAMFileReadI32(self, &i32); if (rc) goto BAILOUT;
-            memcpy(rdat + rdsz, &i32, 4);
-            rdsz += 4;
-        }
-    }
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM Header reference size: %u\n", rdsz));
-    
-    *headerText = htxt;
-    *headerTextLen = hlen;
-    *refData = rdat;
-    *numrefs = nrefs;
-    return 0;
-    
-BAILOUT:
-    if (htxt)
-        free(htxt);
-    if (rdat)
-        free(rdat);
-    
-    return rc;
-}
-
-static int CC comp_RefSeqName(const void *A, const void *B, void *ignored) {
-    BAMFile const *self = (BAMFile const *)ignored;
-    unsigned const a = *(unsigned const *)A;
-    unsigned const b = *(unsigned const *)B;
-    
-    return strcmp(self->refSeq[a].name, self->refSeq[b].name);
-}
-
-static rc_t ProcessHeader(BAMFile *self, char const headerText[])
-{
-    unsigned *rs_by_name = NULL;
-    unsigned i;
-    unsigned cp;
     char *htxt;
-    uint8_t *rdat;
-    unsigned hlen;
-    unsigned nrefs;
-    rc_t rc = ReadMagic(self);
-
-    if (rc) return rc;
+    char *names = NULL;
+    size_t in_names = 0, names_size;
+    struct {
+        size_t name;
+        uint32_t length;
+    } *refs;
+    const BAMRefSeq **rs_by_name = NULL;
+    
+    rc = BAMFileReadn(self, sizeof(magic), magic);
+    if (rc)
+        return rc;
+    if (memcmp(magic, "BAM\1", 4) != 0)
+        return RC(rcAlign, rcFile, rcConstructing, rcData, rcBadVersion);
 
-    rc = ReadHeaders(self, &htxt, &hlen, &rdat, &nrefs);
-    if (rc) return rc;
+    rc = BAMFileReadUI32(self, &hlen);
+    if (rc)
+        return rc;
     
-    self->fpos_first = self->fpos_cur;
-    self->ucfirst = self->bufCurrent;
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM Data records start at: %lu+%u\n", self->ucfirst, self->fpos_first));
-
-    if (headerText) {
-        free(htxt);
-        hlen = string_size( headerText );
-        htxt = malloc(hlen + 1);
-        if (htxt == NULL) {
-            free(rdat);
-            return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
-        }
-        memcpy(htxt, headerText, hlen + 1);
-    }
+    self->header = htxt = malloc(hlen + 1);
+    if (htxt == NULL)
+        return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
     
-    self->headerData2 = rdat;
-    if (hlen) {
-        self->header = htxt;
-        self->headerData1 = malloc(hlen + 1);
-        if (self->headerData1 == NULL)
-            return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
-        memcpy(self->headerData1, self->header, hlen + 1);
-    }
-    else {
-        htxt = malloc(1);
-        htxt[0] = '\0';
-        self->header = htxt;
-        self->headerData1 = NULL;
-    }
-    self->refSeqs = nrefs;
-    if (nrefs) {
-        self->refSeq = calloc(nrefs, sizeof(self->refSeq[0]));
-        if (self->refSeq == NULL)
-            return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+    self->headerData1 = htxt = malloc(hlen + 1);
+    if (htxt == NULL)
+        return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+    
+    rc = BAMFileReadn(self, hlen, (uint8_t *)htxt);
+    if (rc == 0) {
+        htxt[hlen] = 0;
         
-        rs_by_name = calloc(nrefs, sizeof(rs_by_name[0]));
-        if (rs_by_name == NULL)
-            return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+        memcpy((char *)self->header, htxt, hlen + 1);
         
-        for (i = cp = 0; i < nrefs; ++i) {
-            uint32_t nlen;
-            uint32_t rlen;
-            
-            rs_by_name[i] = i;
-            self->refSeq[i].id = i;
-            memcpy(&nlen, &self->headerData2[cp], 4);
-            cp += 4;
-            self->refSeq[i].name = (char const *)&self->headerData2[cp];
-            cp += nlen;
-            memcpy(&rlen, &self->headerData2[cp], 4);
-            self->headerData2[cp] = 0;
-            cp += 4;
-            self->refSeq[i].length = rlen;
-        }
-        ksort((void *)rs_by_name, self->refSeqs, sizeof(rs_by_name[0]), comp_RefSeqName, self);
-    }
-    if (self->headerData1) {
-        rc = CountReadGroups(self->headerData1, hlen, &self->readGroups);
+        rc = BAMFileReadUI32(self, &nrefs);
         if (rc == 0) {
-            self->readGroup = calloc(self->readGroups, sizeof(self->readGroup[0]));
-            if (self->readGroup != NULL)
-                rc = ParseHeader(self, self->headerData1, hlen, rs_by_name);
-            else
+            names = malloc(names_size = 1024);
+            if (names == NULL)
                 rc = RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+
+            if (rc == 0) {
+                refs = malloc(nrefs * sizeof(refs[0]));
+                if (refs == NULL)
+                    rc = RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+                else {
+                    int i;
+                    
+                    for (i = 0; i != nrefs; ++i) {
+                        uint32_t namelen;
+                        
+                        rc = BAMFileReadUI32(self, &namelen);
+                        if (rc)
+                            break;
+                        if (namelen + in_names >= names_size) {
+                            void *temp = realloc(names, names_size <<= 1);
+                            
+                            if (temp == NULL) {
+                                rc = RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+                                break;
+                            }
+                            names = temp;
+                        }
+                        refs[i].name = in_names;
+                        rc = BAMFileReadn(self, namelen, (uint8_t *)&names[in_names]);
+                        if (rc)
+                            break;
+                        rc = BAMFileReadUI32(self, &refs[i].length);
+                        if (rc)
+                            break;
+                        in_names += namelen;
+                    }
+                    if (rc == 0) {
+                        self->refSeqs = nrefs;
+                        self->refSeq = calloc(self->refSeqs, sizeof(self->refSeq[0]));
+                        if (self->refSeq == NULL)
+                            rc = RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+                    }
+                    if (rc == 0) {
+                        rs_by_name = malloc(self->refSeqs * sizeof(*rs_by_name));
+                        if (rs_by_name == NULL)
+                            rc = RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
+                    }
+                    if (rc == 0) {
+                        self->headerData2 = names;
+                        
+                        for (i = 0; i != nrefs; ++i) {
+                            rs_by_name[i] = self->refSeq + i;
+                            self->refSeq[i].id = i;
+                            self->refSeq[i].name = names + refs[i].name;
+                            self->refSeq[i].length = refs[i].length;
+                        }
+                        /* cast to to quiet a warning from VS C */
+                        ksort( (void*const)rs_by_name, self->refSeqs, sizeof(rs_by_name[0]), comp_RefSeqName, NULL );
+                    }
+                    free(refs);
+                }
+            }
+        }
+        if (rc == 0) {
+            self->fpos_first = self->fpos_cur;
+            self->ucfirst = self->bufCurrent;
+
+            rc = CountReadGroups(htxt, hlen, &self->readGroups);
+            if (rc == 0) {
+                self->readGroup = calloc(self->readGroups, sizeof(self->readGroup[0]));
+                if (self->readGroup != NULL)
+                    rc = ParseHeader(self, htxt, hlen, rs_by_name);
+                else
+                    rc = RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+            }
         }
     }
-    if (rs_by_name != NULL)
-        free((void *)rs_by_name);
+    if ( rs_by_name != NULL )
+        free( (void*) rs_by_name );
     
     return rc;
 }
@@ -1559,17 +1111,13 @@ static rc_t BAMFileWhack(BAMFile *self) {
         free((void *)self->headerData2);
     if (self->ndx)
         BAMIndexWhack(self->ndx);
-    if (self->vt.FileWhack)
-        self->vt.FileWhack(&self->file);
+    BGZFileWhack(&self->file);
 
     return 0;
 }
 
 /* file is retained */
-static rc_t BAMFileMakeWithKFileAndHeader(BAMFile const **cself,
-                                          KFile const *file,
-                                          char const *headerText,
-                                          bool threaded)
+LIB_EXPORT rc_t CC BAMFileMakeWithKFile(const BAMFile **cself, const KFile *file)
 {
     BAMFile *self = calloc(1, sizeof(*self));
     rc_t rc;
@@ -1577,16 +1125,11 @@ static rc_t BAMFileMakeWithKFileAndHeader(BAMFile const **cself,
     if (self == NULL)
         return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
     
+    memset(self, 0, sizeof(*self));
     atomic32_set(&self->refcount, 1);
-#ifndef WINDOWS
-    if (threaded)
-        rc = BGZThreadFileInit(&self->file.thread, file, &self->vt);
-    else
-#endif
-        rc = BGZFileInit(&self->file.plain, file, &self->vt);
-
+    rc = BGZFileInit(&self->file, file);
     if (rc == 0) {
-        rc = ProcessHeader(self, headerText);
+        rc = ProcessHeader(self);
         if (rc == 0) {
             *cself = self;
             return 0;
@@ -1596,12 +1139,6 @@ static rc_t BAMFileMakeWithKFileAndHeader(BAMFile const **cself,
     return rc;
 }
 
-/* file is retained */
-LIB_EXPORT rc_t CC BAMFileMakeWithKFile(const BAMFile **cself, const KFile *file)
-{
-    return BAMFileMakeWithKFileAndHeader(cself, file, NULL, false);
-}
-
 LIB_EXPORT rc_t CC BAMFileVMakeWithDir(const BAMFile **result,
                                          const KDirectory *dir,
                                          const char *path,
@@ -1651,253 +1188,131 @@ LIB_EXPORT rc_t CC BAMFileMake(const BAMFile **cself, const char *path, ...)
     va_start(args, path);
     rc = BAMFileVMakeWithDir(cself, dir, path, args);
     va_end(args);
-    KDirectoryRelease(dir);
-    return rc;
-}
-
-LIB_EXPORT rc_t CC BAMFileMakeWithHeader ( const BAMFile **cself,
-                                          char const headerText[],
-                                          char const path[], ... )
-{
-    KDirectory *dir;
-    va_list args;
-    rc_t rc;
-    const KFile *kf;
-    
-    if (cself == NULL)
-        return RC(rcAlign, rcFile, rcOpening, rcParam, rcNull);
-    *cself = NULL;
-    
-    rc = KDirectoryNativeDir(&dir);
-    if (rc) return rc;
-    va_start(args, path);
-    rc = KDirectoryVOpenFileRead(dir, &kf, path, args);
-    if (rc == 0) {
-        rc = BAMFileMakeWithKFileAndHeader(cself, kf, headerText, false);
-        KFileRelease(kf);
-    }
-    va_end(args);
-    KDirectoryRelease(dir);
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC BAMFileMakeWithVPath(const BAMFile **cself, const VPath *kpath)
-{
-    char path[4096];
-    size_t nread;
-    rc_t rc;
-
-    rc = VPathReadPath(kpath, path, sizeof(path), &nread);
-    if (rc == 0)
-        rc = BAMFileMake(cself, "%.*s", (int)nread, path);
-    return rc;
-}
-
-LIB_EXPORT rc_t CC BAMFileAddRef(const BAMFile *cself) {
-    if (cself != NULL)
-        atomic32_inc(&((BAMFile *)cself)->refcount);
-    return 0;
-}
-
-LIB_EXPORT rc_t CC BAMFileRelease(const BAMFile *cself) {
-    rc_t rc = 0;
-    BAMFile *self = (BAMFile *)cself;
-    
-    if (cself != NULL) {
-        if (atomic32_dec_and_test(&self->refcount)) {
-            rc = BAMFileWhack(self);
-            if (rc)
-                atomic32_set(&self->refcount, 1);
-            else
-                free(self);
-        }
-    }
-    return rc;
-}
-
-LIB_EXPORT float CC BAMFileGetProportionalPosition(const BAMFile *self)
-{
-    return self->vt.FileProPos(&self->file);
-}
-
-LIB_EXPORT rc_t CC BAMFileGetPosition(const BAMFile *self, BAMFilePosition *pos) {
-    *pos = (self->fpos_cur << 16) | self->bufCurrent;
-    return 0;
-}
-
-static rc_t BAMFileSetPositionInt(const BAMFile *cself, uint64_t fpos, uint16_t bpos)
-{
-    rc_t rc;
-    BAMFile *self = (BAMFile *)cself;
-    
-    if (cself->fpos_first > fpos || fpos > cself->vt.FileGetSize(&cself->file) ||
-        (fpos == cself->fpos_first && bpos < cself->ucfirst))
-    {
-        return RC(rcAlign, rcFile, rcPositioning, rcParam, rcInvalid);
-    }
-    if (cself->fpos_cur == fpos) {
-        if (bpos <= cself->bufSize) {
-            self->eof = false;
-            self->bufCurrent = bpos;
-            return 0;
-        }
-        return RC(rcAlign, rcFile, rcPositioning, rcParam, rcInvalid);
-    }
-    rc = self->vt.FileSetPos(&self->file, fpos);
-    if (rc == 0) {
-        self->eof = false;
-        self->bufSize = 0; /* force re-read */
-        self->bufCurrent = bpos;
-        self->fpos_cur = fpos;
-    }
-    return rc;
-}
-
-LIB_EXPORT rc_t CC BAMFileSetPosition(const BAMFile *cself, const BAMFilePosition *pos)
-{
-    return BAMFileSetPositionInt(cself, *pos >> 16, (uint16_t)(*pos));
-}
-
-LIB_EXPORT rc_t CC BAMFileRewind(const BAMFile *cself)
-{
-    return BAMFileSetPositionInt(cself, cself->fpos_first, cself->ucfirst);
-}
-
-typedef bool (* i_OptData_f)(void *ctx, char const tag[2], BAMOptDataValueType type, unsigned length,
-                             unsigned count, unsigned size, void const *value);
-
-static rc_t ParseOptData(uint8_t const data[], unsigned const n, void *ctx, i_OptData_f f)
-{
-    unsigned i = 0;
-    rc_t rc = 0;
-    
-    while (rc == 0 && i + 3 < n) {
-        char const *const tag = (char const *)&data[i];
-        int type = data[i + 2];
-        uint8_t const *const vp = &data[i + 3];
-        unsigned len = 0;
-        unsigned size = 0;
-        unsigned count = 1;
-        unsigned offset = 0;
-        
-        switch (type) {
-        case dt_CSTRING:
-        case dt_HEXSTRING:
-            len = 0;
-            while (i + len + 3 != n && vp[len] != '\0')
-                ++len;
-            if (i + len + 3 == n) {
-                rc = RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
-                break;
-            }
-            size = len;
-            ++len;
-            break;
-        case dt_INT8:
-        case dt_UINT8:
-        case dt_ASCII:
-            size = len = 1;
-            break;
-        case dt_INT16:
-        case dt_UINT16:
-            size = len = 2;
-            break;
-        case dt_INT:
-        case dt_FLOAT32:
-        case dt_UINT:
-            size = len = 4;
-            break;
-        case dt_FLOAT64:
-            size = len = 8;
-            break;
-        case dt_NUM_ARRAY:
-            offset = len = 5;
-            {
-                unsigned elem_size = 0;
-                uint32_t elem_count = 0;
-                
-                switch (vp[0]) {
-                case dt_INT8:
-                case dt_UINT8:
-                    elem_size = 1;
-                    break;
-                case dt_INT16:
-                case dt_UINT16:
-                    elem_size = 2;
-                    break;
-                case dt_FLOAT32:
-                case dt_INT:
-                case dt_UINT:
-                    elem_size = 4;
-                    break;
-                case dt_FLOAT64:
-                    elem_size = 8;
-                    break;
-                default:
-                    rc = RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
-                    break;
-                }
-                if (rc)
-                    break;
-                elem_count = LE2HUI32(&vp[1]);
-                len += elem_size * elem_count;
-                if (i + len + 3 > n) {
-                    rc = RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
-                    break;
-                }
-                type = vp[0];
-                count = elem_count;
-                size = elem_size;
-            }
-            break;
-        default:
-            rc = RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
-            break;
+    KDirectoryRelease(dir);
+    return rc;
+}
+
+LIB_EXPORT rc_t CC BAMFileMakeWithKPath(const BAMFile **cself, const KPath *kpath)
+{
+    char path[4096];
+    size_t nread;
+    rc_t rc;
+
+    rc = KPathReadPath(kpath, path, sizeof(path), &nread);
+    if (rc == 0)
+        rc = BAMFileMake(cself, "%.*s", (int)nread, path);
+    return rc;
+}
+
+LIB_EXPORT rc_t CC BAMFileAddRef(const BAMFile *cself) {
+    if (cself != NULL)
+        atomic32_inc(&((BAMFile *)cself)->refcount);
+    return 0;
+}
+
+LIB_EXPORT rc_t CC BAMFileRelease(const BAMFile *cself) {
+    rc_t rc = 0;
+    BAMFile *self = (BAMFile *)cself;
+    
+    if (cself != NULL) {
+        if (atomic32_dec_and_test(&self->refcount)) {
+            rc = BAMFileWhack(self);
+            if (rc)
+                atomic32_set(&self->refcount, 1);
+            else
+                free(self);
         }
-        if (rc)
-            break;
-        i += len + 3;
-        if (f(ctx, tag, type, len + 3, count, size, &vp[offset]))
-            break;
     }
     return rc;
 }
 
-static bool CountOptTags(void *ctx, char const tag[2], BAMOptDataValueType type, unsigned length,
-                         unsigned count, unsigned size, void const *value)
+LIB_EXPORT float CC BAMFileGetProportionalPosition(const BAMFile *self)
 {
-    ++*(unsigned *)ctx;
-    return false;
+    return BGZFileProPos(&self->file);
 }
 
-struct ctx_LoadOptTags_s {
-    unsigned i;
-    BAMAlignment *self;
-};
+LIB_EXPORT rc_t CC BAMFileGetPosition(const BAMFile *self, BAMFilePosition *pos) {
+    *pos = (self->fpos_cur << 16) | self->bufCurrent;
+    return 0;
+}
 
-static bool LoadOptTags(void *Ctx, char const tag[2], BAMOptDataValueType type, unsigned length,
-                         unsigned count, unsigned size, void const *value)
+static rc_t BAMFileSetPositionInt(const BAMFile *cself, uint64_t fpos, uint16_t bpos)
 {
-    struct ctx_LoadOptTags_s *ctx = Ctx;
-    BAMAlignment *self = ctx->self;
+    BAMFile *self = (BAMFile *)cself;
     
-    self->extra[ctx->i].offset = (uint8_t const *)&tag[0] - (uint8_t const *)&self->data->raw[0];
-    self->extra[ctx->i].size = length;
-    ++ctx->i;
-    return false;
+    if (cself->fpos_first > fpos || fpos > cself->file.fsize ||
+        (fpos == cself->fpos_first && bpos < cself->ucfirst))
+    {
+        return RC(rcAlign, rcFile, rcPositioning, rcParam, rcInvalid);
+    }
+    if (cself->fpos_cur == fpos) {
+        if (bpos <= cself->bufSize) {
+            self->eof = false;
+            self->bufCurrent = bpos;
+            return 0;
+        }
+        return RC(rcAlign, rcFile, rcPositioning, rcParam, rcInvalid);
+    }
+    BGZFileSetPos(&self->file, fpos);
+    self->eof = false;
+    self->bufSize = 0; /* force re-read */
+    self->bufCurrent = bpos;
+    self->fpos_cur = fpos;
+    return 0;
+}
+
+LIB_EXPORT rc_t CC BAMFileSetPosition(const BAMFile *cself, const BAMFilePosition *pos)
+{
+    return BAMFileSetPositionInt(cself, *pos >> 16, (uint16_t)(*pos));
+}
+
+LIB_EXPORT rc_t CC BAMFileRewind(const BAMFile *cself)
+{
+    return BAMFileSetPositionInt(cself, cself->fpos_first, cself->ucfirst);
+}
+
+static void BAMFileUnlockBuffer(BAMFile *self) {
+    if (self->bufLocker != NULL) {
+        memcpy(self->bufLocker->storage, self->bufLocker->data, self->bufLocker->datasize);
+        self->bufLocker->data = (bam_alignment *)&self->bufLocker->storage[0];
+        self->bufLocker = NULL;
+    }
+}
+
+static
+rc_t BAMAlignmentParse(BAMAlignment *y, const uint8_t data[], uint32_t datasize)
+{
+    y->datasize = datasize;
+    y->data = (bam_alignment *)&data[0];
+    
+    /* calculate the offsets and verify that none are beyond the end of data */
+    y->cigar = sizeof(struct bam_alignment_s) + getReadNameLength(y) - 1;
+    if (y->cigar >= datasize)
+        return RC(rcAlign, rcFile, rcReading, rcRow, rcInvalid);
+    
+    y->seq   = y->cigar + 4 * getCigarCount(y);
+    if (y->seq >= datasize)
+        return RC(rcAlign, rcFile, rcReading, rcRow, rcInvalid);
+    
+    y->qual  = y->seq + ((getReadLen(y) + 1) >> 1);
+    if (y->qual >= datasize)
+        return RC(rcAlign, rcFile, rcReading, rcRow, rcInvalid);
+    
+    y->extra = y->qual + getReadLen(y);
+    if (y->extra > datasize) /* if extra is empty, it will be equal to datasize */
+        return RC(rcAlign, rcFile, rcReading, rcRow, rcInvalid);
+    
+    y->readGroupName = 0;
+    y->csread = 0;
+    return 0;
 }
 
 LIB_EXPORT rc_t CC BAMFileRead(const BAMFile *cself, const BAMAlignment **rhs)
 {
     BAMFile *self = (BAMFile *)cself;
     BAMAlignment *y;
-    BAMAlignment x;
-    struct ctx_LoadOptTags_s load_ctx;
-    bool local = false;
-    int32_t i32;
+    uint32_t datasize;
     rc_t rc;
-    unsigned xtra;
     
     *rhs = NULL;
 
@@ -1907,17 +1322,9 @@ LIB_EXPORT rc_t CC BAMFileRead(const BAMFile *cself, const BAMAlignment **rhs)
     if (cself->bufCurrent >= cself->bufSize && cself->eof)
         return RC(rcAlign, rcFile, rcReading, rcRow, rcNotFound);
 
-    if (self->bufLocker != NULL) {
-        if (self->bufLocker->storage == NULL)
-            self->bufLocker->storage = malloc(self->bufLocker->datasize);
-        if (self->bufLocker->storage == NULL)
-            return RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
-        memcpy(self->bufLocker->storage, self->bufLocker->data, self->bufLocker->datasize);
-        self->bufLocker->data = (bam_alignment *)&self->bufLocker->storage[0];
-        self->bufLocker = NULL;
-    }
-    
-    rc = BAMFileReadI32(self, &i32);
+    BAMFileUnlockBuffer(self);
+
+    rc = BAMFileReadUI32(self, &datasize);
     if (rc) {
         if (GetRCObject(rc) == rcData && GetRCState(rc) == rcInsufficient) {
             self->eof = true;
@@ -1925,77 +1332,45 @@ LIB_EXPORT rc_t CC BAMFileRead(const BAMFile *cself, const BAMAlignment **rhs)
         }
         return rc;
     }
-    if (i32 <= 0)
-        return RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
-    
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM record: { size: %i }\n", i32));
-    memset(&x, 0, sizeof(x));
-    x.datasize = i32;
-    
-    if (self->bufCurrent + x.datasize <= self->bufSize) {
-        x.data = (bam_alignment *)&self->buffer[self->bufCurrent];
-        local = true;
+    /* it should never be bigger than 64K */
+    if ((datasize & 0xFFFF) != datasize) {
+        /* probably a seek to a bad position */
+        return RC(rcAlign, rcFile, rcReading, rcData, rcTooBig);
     }
-    else {
-        x.storage = malloc(x.datasize);
-        if (x.storage == NULL)
-            return RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
+    y = malloc(sizeof(*y) - sizeof(y->storage) + datasize);
+    if (y == NULL)
+        return RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
 
-        rc = BAMFileReadn(self, x.datasize, x.storage);
+    y->datasize = datasize;
+    
+    if (self->bufCurrent + datasize <= self->bufSize) {
+        /* all of the data needed for this record is in the buffer
+         * so instead of copying it, we'll take the pointer and
+         * place a reservation on the buffer to prevent it from
+         * going away on us.  Note that enough storage was allocated
+         * that if the reservation needs to be broken there is space
+         * to copy the data into.
+         */
+        rc = BAMAlignmentParse(y, &self->buffer[self->bufCurrent], datasize);
         if (rc) {
-            free(x.storage);
+            free(y);
             return rc;
         }
-        x.data = (bam_alignment *)x.storage;
-    }
-    {{
-        unsigned const nameLen = getReadNameLength(&x);
-        unsigned const cigCnt  = getCigarCount(&x);
-        unsigned const readLen = getReadLen(&x);
-        
-        DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM record: { name length: %u, cigar count: %u, read length %u }\n", nameLen, cigCnt, readLen));
-        x.cigar = sizeof(x.data[0]) + nameLen - 1;
-        x.seq   = x.cigar + 4 * cigCnt;
-        x.qual  = x.seq + (readLen + 1) / 2;
-        xtra    = x.qual + readLen;
-    }}
-    if (   x.cigar >= x.datasize
-        || x.seq   >  x.datasize
-        || x.qual  >  x.datasize
-        || xtra    >  x.datasize
-        || (rc = ParseOptData(&x.data->raw[xtra], x.datasize - xtra, &x.numExtra, CountOptTags)) != 0)
-    {
-	rc = RC(rcAlign, rcFile, rcReading, rcRow, rcInvalid);
-        free(x.storage);
-        return rc;
-    }
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("BAM record: { number of extra fields: %u }\n", x.numExtra));
-    y = calloc(sizeof(*y) + (x.numExtra ? x.numExtra - 1 : 0) * sizeof(y->extra), 1);
-    if (y == NULL) {
-        free(x.storage);
-        return RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
+        self->bufLocker = y;
+        self->bufCurrent += datasize;
     }
-    *y = x;
-    load_ctx.self = y;
-    load_ctx.i = 0;
-    if ((rc = ParseOptData(&y->data->raw[xtra], y->datasize - xtra, &load_ctx, LoadOptTags)) != 0) {
-        free(x.storage);
-        free(y);
-        return rc;
+    else {
+        rc = BAMFileReadn(self, datasize, y->storage);
+        if (rc == 0)
+            rc = BAMAlignmentParse(y, y->storage, datasize);
+        if (rc) {
+            free(y);
+            return rc;
+        }
     }
-    ksort(y->extra, y->numExtra, sizeof(y->extra[0]), OptTag_sort, y);
 
     BAMFileAddRef(y->parent = self);
     atomic32_set(&y->refcount, 1);
-    if (local) {
-        self->bufLocker = y;
-        self->bufCurrent += y->datasize;
-        if (self->bufCurrent == self->bufSize) {
-            self->fpos_cur = self->vt.FileGetPos(&self->file);
-            self->bufCurrent = 0;
-            self->bufSize = 0;
-        }
-    }
     
     *rhs = y;
     return 0;
@@ -2053,7 +1428,7 @@ LIB_EXPORT rc_t CC BAMFileGetReadGroup(const BAMFile *cself, unsigned i, const B
 LIB_EXPORT rc_t CC BAMFileGetHeaderText(BAMFile const *cself, char const **header, size_t *header_len)
 {
     *header = cself->header;
-    *header_len = *header ? string_size( *header ) : 0;
+    *header_len = strlen(*header);
     return 0;
 }
 
@@ -2071,7 +1446,6 @@ static rc_t BAMAlignmentWhack(BAMAlignment *self)
     if (self->parent->bufLocker == self)
         self->parent->bufLocker = NULL;
     BAMFileRelease(self->parent);
-    free(self->storage);
     free(self);
     return 0;
 }
@@ -2099,7 +1473,10 @@ LIB_EXPORT uint16_t CC BAMAlignmentBadFields(const BAMAlignment *self)
 
 static uint32_t BAMAlignmentGetCigarElement(const BAMAlignment *self, unsigned i)
 {
-    return LE2HUI32(&((uint8_t const *)getCigarBase(self))[i * 4]);
+    uint32_t y;
+    
+    memcpy(&y, &self->data->raw[self->cigar + i * 4], 4);
+    return LE2HUI32(&y);
 }
 
 LIB_EXPORT rc_t CC BAMAlignmentGetRefSeqId(const BAMAlignment *cself, int32_t *rhs)
@@ -2243,7 +1620,8 @@ unsigned ReferenceLengthFromCIGAR(const BAMAlignment *self)
     }
     return y;
 }
-
+#if 0
+Ken: don't delete it! It's documentation!
 static
 unsigned SequenceLengthFromCIGAR(const BAMAlignment *self)
 {
@@ -2268,6 +1646,7 @@ unsigned SequenceLengthFromCIGAR(const BAMAlignment *self)
     }
     return y;
 }
+#endif
 
 LIB_EXPORT rc_t CC BAMAlignmentGetPosition2(const BAMAlignment *cself, int64_t *rhs, uint32_t *length)
 {
@@ -2279,7 +1658,90 @@ LIB_EXPORT rc_t CC BAMAlignmentGetPosition2(const BAMAlignment *cself, int64_t *
 
 LIB_EXPORT rc_t CC BAMAlignmentGetReadGroupName(const BAMAlignment *cself, const char **rhs)
 {
-    *rhs = get_RG(cself);
+    if (cself->readGroupName == 0) {
+        const unsigned n = cself->datasize;
+        unsigned i = cself->extra;
+        rc_t rc = 0;
+        
+        while (i + 3 < n) {
+            const char *const tag = (const char *)&cself->data->raw[i];
+            const int type = cself->data->raw[i + 2];
+            const uint8_t *const value = &cself->data->raw[i + 3];
+            unsigned size = 3;
+            
+            switch (type) {
+            case dt_CSTRING:
+                if (tag[0] == 'R' && tag[1] == 'G')
+                    ((BAMAlignment *)cself)->readGroupName = i + 3;
+            case dt_HEXSTRING:
+                while (size != n && tag[size] != '\0')
+                    ++size;
+                if (size == n)
+                    rc = RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
+                else
+                    ++size;
+                break;
+            case dt_INT8:
+            case dt_UINT8:
+            case dt_ASCII:
+                size += 1;
+                break;
+            case dt_INT16:
+            case dt_UINT16:
+                size += 2;
+                break;
+            case dt_FLOAT32:
+            case dt_INT:
+            case dt_UINT:
+                size += 4;
+                break;
+            case dt_FLOAT64:
+                size += 8;
+                break;
+            case dt_NUM_ARRAY:
+                size += 5;
+                {
+                    uint32_t elem_count;
+                    
+                    memcpy(&elem_count, &value[1], 4);
+                    elem_count = LE2HUI32(&elem_count);
+                    switch (value[0]) {
+                    case dt_INT8:
+                    case dt_UINT8:
+                        size += elem_count;
+                        break;
+                    case dt_INT16:
+                    case dt_UINT16:
+                        size += elem_count * 2;
+                        break;
+                    case dt_FLOAT32:
+                    case dt_INT:
+                    case dt_UINT:
+                        size += elem_count * 4;
+                        break;
+                    case dt_FLOAT64:
+                        size += elem_count * 8;
+                        break;
+                    default:
+                        rc = RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
+                    }
+                }
+                break;
+            default:
+                rc = RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
+            }
+            if (rc) {
+                ((BAMAlignment *)cself)->readGroupName = 0;
+                break;
+            }
+            i += size;
+        }
+    }
+
+    if (cself->readGroupName != 0)
+        *rhs = (const char *)&cself->data->raw[cself->readGroupName];
+    else
+        *rhs = NULL;
     return 0;
 }
 
@@ -2291,7 +1753,7 @@ LIB_EXPORT rc_t CC BAMAlignmentGetReadName(const BAMAlignment *cself, const char
 
 LIB_EXPORT rc_t CC BAMAlignmentGetReadName2(const BAMAlignment *cself, const char **rhs, size_t *length)
 {
-    *length = getReadNameLength(cself) - 1;
+    *length = getReadNameLength(cself);
     *rhs = getReadName(cself);
     return 0;
 }
@@ -2314,9 +1776,9 @@ LIB_EXPORT rc_t CC BAMAlignmentGetCigarCount(const BAMAlignment *cself, unsigned
     return 0;
 }
 
-LIB_EXPORT rc_t CC BAMAlignmentGetRawCigar(const BAMAlignment *cself, uint32_t const *rslt[], uint32_t *length)
+LIB_EXPORT rc_t CC BAMAlignmentGetRawCigar(const BAMAlignment *cself, uint32_t const **rslt, uint32_t *length)
 {
-    *rslt = getCigarBase(cself);
+    *rslt = (uint32_t*)&cself->data->raw[cself->cigar];
     *length = getCigarCount(cself);
     return 0;
 }
@@ -2349,7 +1811,7 @@ LIB_EXPORT rc_t CC BAMAlignmentGetSequence2(const BAMAlignment *cself, char *rhs
      *   N    T    G    K    C    Y    S    B    A    W    R    D    M    H    V    =
      */
     static const char  tr[16] = "=ACMGRSVTWYHKDBN";
- /* static const char ctr[16] = "=TGKCYSBAWRDMHVN"; */
+    /* static const char ctr[16] = "=TGKCYSBAWRDMHVN"; */
     unsigned const n = getReadLen(cself);
     const uint8_t * const seq = &cself->data->raw[cself->seq];
     unsigned si, di;
@@ -2371,90 +1833,189 @@ LIB_EXPORT rc_t CC BAMAlignmentGetSequence(const BAMAlignment *cself, char *rhs)
     return BAMAlignmentGetSequence2(cself, rhs, 0, 0);
 }
 
+static rc_t BAMAlignmentGetCSRead(BAMAlignment const *cself);
+
 LIB_EXPORT bool CC BAMAlignmentHasColorSpace(BAMAlignment const *cself)
 {
-    return get_CS(cself) != NULL;
+    if (cself->csread == 0) {
+        BAMAlignmentGetCSRead(cself);
+        if (cself->csread == 0)
+            return false;
+    }
+    return true;
 }
 
 LIB_EXPORT rc_t CC BAMAlignmentGetCSKey(BAMAlignment const *cself, char rhs[1])
 {
-    char const *const vCS = get_CS(cself);
-    
-    if (vCS)
-        rhs[0] = vCS[0];
+    if (cself->csread == 0) {
+        BAMAlignmentGetCSRead(cself);
+        if (cself->csread == 0)
+            return RC(rcAlign, rcFile, rcReading, rcData, rcNotFound);
+    }
+    *rhs = cself->data->raw[cself->csread];
+    return 0;
+}
+
+LIB_EXPORT rc_t CC BAMAlignmentGetCSSequence(BAMAlignment const *cself, char rhs[])
+{
+    if (cself->csread == 0) {
+        BAMAlignmentGetCSRead(cself);
+        if (cself->csread == 0)
+            return RC(rcAlign, rcFile, rcReading, rcData, rcNotFound);
+    }
+    memcpy(rhs, &cself->data->raw[cself->csread + 1], getReadLen(cself));
     return 0;
 }
 
-LIB_EXPORT rc_t CC BAMAlignmentGetCSSeqLen(BAMAlignment const *cself, uint32_t *const rhs)
+LIB_EXPORT rc_t CC BAMAlignmentGetQuality(const BAMAlignment *cself, const uint8_t **rhs)
+{
+    *rhs = &cself->data->raw[cself->qual];
+    return 0;
+}
+
+typedef bool (* i_OptData_f)(BAMAlignment const *cself, void *ctx, char const tag[2], BAMOptDataValueType type, unsigned count,
+                             void const *value, unsigned size);
+
+static rc_t BAMAlignmentParseOptData(BAMAlignment const *cself, void *ctx, i_OptData_f f)
+{
+    unsigned const n = cself->datasize;
+    unsigned i = cself->extra;
+    rc_t rc = 0;
+    
+    while (rc == 0 && i + 3 < n) {
+        char const *const tag = (char const *)&cself->data->raw[i];
+        int type = cself->data->raw[i + 2];
+        const uint8_t *const vp = &cself->data->raw[i + 3];
+        unsigned len = 0;
+        unsigned size = 0;
+        unsigned count = 1;
+        unsigned offset = 0;
+        
+        switch (type) {
+        case dt_CSTRING:
+        case dt_HEXSTRING:
+            len = 0;
+            while (i + len + 3 != n && vp[len] != '\0')
+                ++len;
+            if (i + len + 3 == n) {
+                rc = RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
+                break;
+            }
+            size = len;
+            ++len;
+            break;
+        case dt_INT8:
+        case dt_UINT8:
+        case dt_ASCII:
+            size = len = 1;
+            break;
+        case dt_INT16:
+        case dt_UINT16:
+            size = len = 2;
+            break;
+        case dt_INT:
+        case dt_FLOAT32:
+        case dt_UINT:
+            size = len = 4;
+            break;
+        case dt_FLOAT64:
+            size = len = 8;
+            break;
+        case dt_NUM_ARRAY:
+            offset = len = 5;
+            {
+                unsigned elem_size = 0;
+                uint32_t elem_count = 0;
+                
+                switch (vp[0]) {
+                case dt_INT8:
+                case dt_UINT8:
+                    elem_size = 1;
+                    break;
+                case dt_INT16:
+                case dt_UINT16:
+                    elem_size = 2;
+                    break;
+                case dt_FLOAT32:
+                case dt_INT:
+                case dt_UINT:
+                    elem_size = 4;
+                    break;
+                case dt_FLOAT64:
+                    elem_size = 8;
+                    break;
+                default:
+                    rc = RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
+                    break;
+                }
+                if (rc)
+                    break;
+                memcpy(&elem_count, &vp[1], 4);
+                elem_count = LE2HUI32(&elem_count);
+                len += elem_size * elem_count;
+                if (i + len + 3 > n) {
+                    rc = RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
+                    break;
+                }
+                type = vp[0];
+                count = elem_count;
+                size = elem_size;
+            }
+            break;
+        default:
+            rc = RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
+            break;
+        }
+        if (rc)
+            break;
+        i += len + 3;
+        if (f(cself, ctx, tag, type, count, &vp[offset], size))
+            break;
+    }
+    return rc;
+}
+
+static bool BAMAlignmentGetCS(BAMAlignment const *cself, void *ctx, char const tag[2],
+                              BAMOptDataValueType type, unsigned count,
+                              void const *value, unsigned size)
 {
-    struct offset_size_s const *const vCS = get_CS_info(cself);
-    
-    *rhs = vCS ? vCS->size - 5 : 0;
-    return 0;
+    if (tag[0] == 'C' && tag[1] == 'S' && size == getReadLen(cself) + 1) {
+        *(uint8_t const **)ctx = value;
+        return true;
+    }
+    return false;
 }
 
-LIB_EXPORT rc_t CC BAMAlignmentGetCSSequence(BAMAlignment const *cself, char rhs[], uint32_t const seqlen)
+static rc_t BAMAlignmentGetCSRead(BAMAlignment const *cself)
 {
-    char const *const vCS = get_CS(cself);
-    
-    if (vCS) {
-        unsigned i;
-        
-        for (i = 0;i != seqlen; ++i) {
-            char const ch = vCS[i+1];
-            
-            rhs[i] = (ch == '4') ? '.' : ch;
-        }
+    uint8_t const *cs = NULL;
+    rc_t rc = BAMAlignmentParseOptData(cself, &cs, BAMAlignmentGetCS);
+    if (rc == 0 && cs != NULL) {
+        ((BAMAlignment *)cself)->csread = cs - cself->data->raw;
     }
-    return 0;
+    return rc;
 }
 
-LIB_EXPORT rc_t CC BAMAlignmentGetQuality(const BAMAlignment *cself, const uint8_t **rhs)
+static bool BAMAlignmentGetOQ(BAMAlignment const *cself, void *ctx, char const tag[2],
+                              BAMOptDataValueType type, unsigned count,
+                              void const *value, unsigned size)
 {
-    *rhs = &cself->data->raw[cself->qual];
-    return 0;
+    if (tag[0] == 'O' && tag[1] == 'Q') {
+        *(uint8_t const **)ctx = value;
+        return true;
+    }
+    return false;
 }
 
 LIB_EXPORT rc_t CC BAMAlignmentGetQuality2(BAMAlignment const *cself, uint8_t const **rhs, uint8_t *offset)
 {
-    uint8_t const *const OQ = get_OQ(cself);
+    rc_t rc;
     
-    if (OQ) {
-        struct offset_size_s const *const oq = get_OQ_info(cself);
-        
-        if (oq->size - 4 == getReadLen(cself)) {
-            *offset = 33;
-            *rhs = OQ;
-        }
-        else
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInconsistent);
-    }
-    else {
-        *offset = 0;
-        *rhs = &cself->data->raw[cself->qual];
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC BAMAlignmentGetCSQuality(BAMAlignment const *cself, uint8_t const **rhs, uint8_t *offset)
-{
-    struct offset_size_s const *const cs = get_CS_info(cself);
-    struct offset_size_s const *const cq = get_CQ_info(cself);
-    uint8_t const *const CQ = get_CQ(cself);
-    
-    if (cs && cq && CQ) {
-        if (cs->size == cq->size) {
-            *offset = 33;
-            *rhs = CQ + 1;
-            return 0;
-        }
-        if (cs->size == cq->size + 1) {
-            *offset = 33;
-            *rhs = CQ;
-            return 0;
-        }
-        return RC(rcAlign, rcRow, rcReading, rcData, rcInconsistent);
-    }
+    *offset = 33;
+    *rhs = NULL;
+    rc = BAMAlignmentParseOptData(cself, ( void* ) rhs, BAMAlignmentGetOQ);
+    if (rc == 0 && *rhs != NULL)
+        return 0;
     *offset = 0;
     *rhs = &cself->data->raw[cself->qual];
     return 0;
@@ -2490,7 +2051,7 @@ typedef struct OptForEach_ctx_s {
 static bool i_OptDataForEach(BAMAlignment const *cself, void *Ctx, char const tag[2], BAMOptDataValueType type, unsigned count, void const *value, unsigned size)
 {
     OptForEach_ctx_t *ctx = (OptForEach_ctx_t *)Ctx;
-    size_t const need = (size_t)&((BAMOptData const *)NULL)->u.f64[(count * size + sizeof(double) - 1)/sizeof(double)];
+    size_t const need = (size_t)&((BAMOptData const *)NULL)->u.f64[(count * size + sizeof(double))/sizeof(double)];
     
     if (need > ctx->valsize) {
         void *const temp = realloc(ctx->alloced, need);
@@ -2502,13 +2063,12 @@ static bool i_OptDataForEach(BAMAlignment const *cself, void *Ctx, char const ta
         ctx->valsize = need;
     }
     ctx->val->type = type;
-    ctx->val->element_count = (type == dt_CSTRING || type == dt_HEXSTRING) ? size - 1 : count;
+    ctx->val->element_count = (type == dt_CSTRING || type == dt_HEXSTRING) ? size : count;
     
     memcpy(ctx->val->u.u8, value, size * count);
 #if __BYTE_ORDER == __BIG_ENDIAN
     {{
         unsigned di;
-	uint32_t elem_count = ctx->val->element_count;
         
         switch (size) {
         case 2:
@@ -2530,7 +2090,66 @@ static bool i_OptDataForEach(BAMAlignment const *cself, void *Ctx, char const ta
     return ctx->rc != 0;
 }
 
+#if USE_OLD_BAM_OPT_FOR_EACH
+LIB_EXPORT rc_t CC BAMAlignmentOptDataForEach(const BAMAlignment *cself, void *ctx, BAMOptionalDataFunction f)
+{
+    const char *const auxData = (const char *)&cself->data->raw[cself->extra];
+    const unsigned n = cself->datasize - cself->extra;
+    unsigned i;
+    rc_t rc;
+    
+    if (n < 4)
+        return 0;
+    for (i = 0; i < n - 3; ) {
+        const char *const tag = &auxData[i];
+        const int type = ((const uint8_t *)auxData)[i + 2];
+        const uint8_t *const value = (const uint8_t *)&auxData[i + 3];
+        unsigned size = 3;
+        
+        switch (type) {
+        case dt_CSTRING:
+        case dt_HEXSTRING:
+            while (size != n && tag[size] != '\0')
+                ++size;
+            if (size == n)
+                return RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
+            ++size;
+            break;
+        case dt_INT8:
+        case dt_UINT8:
+        case dt_ASCII:
+            size += 1;
+            break;
+        case dt_INT16:
+        case dt_UINT16:
+            size += 2;
+            break;
+        case dt_FLOAT32:
+        case dt_INT:
+        case dt_UINT:
+            size += 4;
+            break;
+        case dt_FLOAT64:
+            size += 8;
+            break;
+        case dt_NUM_ARRAY:
+            /* TODO: implement */
+        default:
+            return RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
+        }
+        rc = f(ctx, tag, type, value, size - 3);
+        if (rc)
+            return rc;
+        i += size;
+    }
+    return 0;
+}
+
+LIB_EXPORT rc_t CC BAMAlignmentOptDataForEach2(const BAMAlignment *cself, void *ctx, BAMOptionalDataFunction2 f)
+#else
+
 LIB_EXPORT rc_t CC BAMAlignmentOptDataForEach(const BAMAlignment *cself, void *user_ctx, BAMOptionalDataFunction f)
+#endif
 {
     union u {
         BAMOptData value;
@@ -2538,7 +2157,6 @@ LIB_EXPORT rc_t CC BAMAlignmentOptDataForEach(const BAMAlignment *cself, void *u
     } value_auto;
     OptForEach_ctx_t ctx;
     rc_t rc;
-    unsigned i;
     
     ctx.val = &value_auto.value;
     ctx.alloced = NULL;
@@ -2547,453 +2165,22 @@ LIB_EXPORT rc_t CC BAMAlignmentOptDataForEach(const BAMAlignment *cself, void *u
     ctx.user_f = f;
     ctx.user_ctx = user_ctx;
     
-    for (i = 0; i != cself->numExtra; ++i) {
-        char const *const tag = (char const *)&cself->data->raw[cself->extra[i].offset];
-        uint8_t type = tag[2];
-        uint8_t const *const vp = (uint8_t const *)&tag[3];
-        unsigned len = cself->extra[i].size - 3;
-        unsigned size = cself->extra[i].size - 3;
-        unsigned count = 1;
-        unsigned offset = 0;
-        
-        if (type == dt_NUM_ARRAY) {
-            unsigned elem_size = 0;
-            uint32_t elem_count = 0;
-            
-            offset = len = 5;
-            switch (vp[0]) {
-            case dt_INT8:
-            case dt_UINT8:
-                elem_size = 1;
-                break;
-            case dt_INT16:
-            case dt_UINT16:
-                elem_size = 2;
-                break;
-            case dt_FLOAT32:
-            case dt_INT:
-            case dt_UINT:
-                elem_size = 4;
-                break;
-            case dt_FLOAT64:
-                elem_size = 8;
-                break;
-            default:
-                rc = RC(rcAlign, rcFile, rcReading, rcData, rcUnexpected);
-                break;
-            }
-            if (rc)
-                break;
-            elem_count = LE2HUI32(&vp[1]);
-            len += elem_size * elem_count;
-            type = vp[0];
-            count = elem_count;
-            size = elem_size;
-            break;
-        }
-        if (i_OptDataForEach(cself, &ctx, tag, type, count, &vp[offset], size))
-            break;
-    }
-    rc = ctx.rc;
+    rc = BAMAlignmentParseOptData(cself, &ctx, i_OptDataForEach);
+    if (rc == 0)
+        rc = ctx.rc;
     if (ctx.alloced)
         free(ctx.alloced);
     return rc;
 }
 
-LIB_EXPORT bool CC BAMAlignmentHasCGData(BAMAlignment const *self)
-{
-    return get_CG_GC_info(self) && get_CG_GS_info(self) && get_CG_GQ_info(self);
-}
-
-static bool BAMAlignmentParseCGTag(BAMAlignment const *self,uint32_t *cg_segs,uint32_t max_cg_segs)
-{
-/*** patern in cg_segs should be nSnGnSnG - no more then 7 segments **/
-    struct offset_size_s const *const GCi = get_CG_GC_info(self);
-    char *cg  = (char *) &self->data->raw[GCi->offset + 3];
-    char *end = cg + GCi->size -4;
-    /** init**/
-    int iseg=0;
-    char last_op='S';
-    cg_segs[iseg] = 0;
-
-    while(cg < end && iseg < max_cg_segs){
-        int op_len = strtol(cg,&cg,10);
-        char op = *cg;
-        cg++;
-        if(op==last_op){
-                cg_segs[iseg] += op_len;
-        } else{
-                last_op = op;
-                iseg++;
-                cg_segs[iseg] = op_len;
-        }
-    }
-    for(iseg+=1;iseg < max_cg_segs;iseg ++){
-        cg_segs[iseg] = 0;
-    }
-    return true;
-}
-
-static
-rc_t ExtractInt32(BAMAlignment const *self, int32_t *result,
-                  struct offset_size_s const *const tag)
-{
-    int32_t y;
-    
-    switch (self->data->raw[tag->offset + 2]) {
-    case 'c':
-        if (tag->size == 4)
-            y = ((int8_t const *)self->data->raw)[tag->offset + 3];
-        else
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        break;
-    case 'C':
-        if (tag->size == 4)
-            y = ((uint8_t const *)self->data->raw)[tag->offset + 3];
-        else
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        break;
-    case 's':
-        if (tag->size == 5)
-            y = LE2HI16(self->data->raw + tag->offset + 3);
-        else
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        break;
-    case 'S':
-        if (tag->size == 5)
-            y = LE2HUI16(self->data->raw + tag->offset + 3);
-        else
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        break;
-    case 'i':
-        if (tag->size == 7)
-            y = LE2HI32(self->data->raw + tag->offset + 3);
-        else
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        break;
-    case 'I':
-        if (tag->size == 7)
-            y = LE2HUI32(self->data->raw + tag->offset + 3);
-        else
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        break;
-    default:
-        return RC(rcAlign, rcRow, rcReading, rcData, rcNotFound);
-    }
-    *result = y;
-    return 0;
-}
-
-LIB_EXPORT
-rc_t CC BAMAlignmentGetCGAlignGroup(BAMAlignment const *self,
-                                    char buffer[],
-                                    size_t max_size,
-                                    size_t *act_size)
-{
-    struct offset_size_s const *const ZA = get_CG_ZA_info(self);
-    struct offset_size_s const *const ZI = get_CG_ZI_info(self);
-    
-    if (ZA && ZI) {
-        rc_t rc;
-        int32_t za;
-        int32_t zi;
-        
-        rc = ExtractInt32(self, &za, ZA); if (rc) return rc;
-        rc = ExtractInt32(self, &zi, ZI); if (rc) return rc;
-        return string_printf(buffer, max_size, act_size, "%i_%i", zi, za);
-    }
-    return RC(rcAlign, rcRow, rcReading, rcData, rcNotFound);
-}
-
-LIB_EXPORT
-rc_t CC BAMAlignmentGetCGSeqQual(BAMAlignment const *self,
-                                 char sequence[],
-                                 uint8_t quality[])
-{
-    struct offset_size_s const *const GCi = get_CG_GC_info(self);
-    struct offset_size_s const *const GSi = get_CG_GS_info(self);
-    struct offset_size_s const *const GQi = get_CG_GQ_info(self);
-
-    if (GCi && GSi && GQi) {
-        char const *const vGS = (char const *)&self->data->raw[GSi->offset + 3];
-        char const *const GQ = (char const *)&self->data->raw[GQi->offset + 3];
-        unsigned const GSsize = GSi->size - 4;
-        unsigned const sn = getReadLen(self);
-        uint32_t cg_segs[2*CG_NUM_SEGS-1]; /** 4 segments + 3gaps **/
-        unsigned i,G,S;
-
-        if (GSi->size != GQi->size)
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        if (SequenceLengthFromCIGAR(self) != sn)
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        if (!BAMAlignmentParseCGTag(self, cg_segs,2*CG_NUM_SEGS-1))
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-
-        for(S=cg_segs[0],G=0,i=1;i<CG_NUM_SEGS;i++){ /** sum all S and G **/
-                S += cg_segs[2*i];
-                G += cg_segs[2*i-1];
-        }
-        if (G + G != GSsize || S + G > sn || sn + G != 35) {
-            /*fprintf(stderr, "GSsize: %u; sn: %u; S: %u; G: %u\n", GSsize, sn, S, G);*/
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        }
-        if(G > 0){
-                int nsi=cg_segs[0];/** new index into sequence */
-                int osi=nsi+G;     /** old index into sequence */
-                int k;             /** index into inserted sequence **/
-                /***make room for inserts **/
-                memmove(sequence + osi, sequence + nsi, sn - nsi);
-                memmove(quality  + osi, quality  + nsi, sn - nsi);
-                for(i=1,k=0;i<CG_NUM_SEGS && nsi < osi;i++){/*** when osi and nsi meet we are done ***/
-                        int j;
-                        for(j = cg_segs[2*i-1];j>0;j--){/** insert mode **/
-                                sequence[nsi] = vGS[k];
-                                quality [nsi] = GQ[k] - 33;
-                                nsi++;k++;
-                                sequence[nsi] = vGS[k];
-                                quality [nsi] = GQ[k] - 33;
-                                nsi++;k++;
-                                osi++;
-                        }
-                        if(nsi < osi){
-                                for(j=cg_segs[2*i];j>0;j--){/** copy mode **/
-                                        sequence[nsi] = sequence[osi];
-                                        quality[nsi]  = quality[osi];
-                                        nsi++;osi++;
-                                }
-                        }
-                }
-        }
-        return 0;
-    }
-    return RC(rcAlign, rcRow, rcReading, rcData, rcNotFound);
-}
-
-
-static unsigned splice(uint32_t cigar[], unsigned n, unsigned at, unsigned out, unsigned in, uint32_t const new_values[/* in */])
-{
-    assert(at + out <= n);
-    memmove(&cigar[at + in], &cigar[at + out], (n - at - out) * 4);
-    if (in)
-        memcpy(&cigar[at], new_values, in * 4);
-    return n + in - out;
-}
-
-#define OPCODE_2_FIX (0xF)
-
-static unsigned insert_B(unsigned S, unsigned G, uint32_t cigar[], unsigned n)
-{
-    unsigned i;
-    unsigned pos;
-    unsigned T=S+G;
-    
-    for (pos = i = 0; i < n; ++i) {
-        unsigned const opcode = cigar[i] & 0xF;
-        
-        switch (opcode) {
-        case 0:
-        case 1:
-        case 4:
-        case 7:
-        case 8:
-            {{
-                unsigned const len = cigar[i] >> 4;
-                unsigned const nxt = pos + len;
-                
-                if (pos <= T && T <= nxt) {
-                    unsigned const l = T - pos;
-                    unsigned const r = len - l;
-                    unsigned B = i + 2;
-                    unsigned in = 4;
-                    uint32_t Ops[4];
-                    uint32_t *ops = Ops;
-                    
-                    Ops[0] = (l << 4) | opcode;
-                    Ops[1] = (G << 4) | 9; /* B */
-                    Ops[2] = (G << 4) | 0; /* M this is not backwards */
-                    Ops[3] = (r << 4) | opcode;
-                    
-                    if (r == 0)
-                        --in;
-                    if (l == 0) {
-                        ++ops;
-                        --in;
-                        --B;
-                    }
-                    n = splice(cigar, n, i, 1, in, ops);
-                    return n;;
-                }
-                pos = nxt;
-            }}
-            break;
-        default:
-            break;
-        }
-    }
-    return n;
-}
-
-static unsigned fix_I(uint32_t cigar[], unsigned n)
-{
-    unsigned i;
-    int last_b = 0;
-    
-    for (i = 0; i < n; ++i) {
-        unsigned const opcode = cigar[i] & 0xF;
-        
-        if (opcode == 0xF) {
-            unsigned const oplen = cigar[i] >> 4;
-            uint32_t ops[2];
-            
-            if (0/*last_b*/) {
-                ops[0] = (oplen << 4) | 0; /* M */
-                ops[1] = (oplen << 4) | 9; /* B */
-            }
-            else {
-                ops[0] = (oplen << 4) | 9; /* B */
-                ops[1] = (oplen << 4) | 0; /* M */
-            }
-            
-            n = splice(cigar, n, i, 1, 2, ops);
-            ++i;
-        }
-        else if (opcode == 9)
-            last_b = 1;
-        else
-            last_b = 0;
-    }
-    return n;
-}
-
-static unsigned fix_IN(uint32_t cigar[], unsigned n)
-{
-    unsigned i;
-    
-    for (i = 1; i < n; ++i) {
-        unsigned const opL = cigar[i-1] & 0xF;
-        unsigned const opI = cigar[ i ] & 0xF;
-        
-        if (opL == 1 && opI == 3) {
-            unsigned const oplen = cigar[i-1] >> 4;
-            uint32_t ops[2];
-            
-            ops[0] = (oplen << 4) | 9; /* B */
-            ops[1] = (oplen << 4) | 0; /* M */
-            
-            n = splice(cigar, n, i-1, 1, 2, ops);
-            ++i;
-        }
-        else if (opL == 3 && opI == 1) {
-            unsigned const oplen = cigar[i] >> 4;
-            uint32_t ops[2];
-            
-            ops[0] = (oplen << 4) | 9; /* M */
-            ops[1] = (oplen << 4) | 0; /* B */
-            
-            n = splice(cigar, n, i, 1, 2, ops);
-            ++i;
-        }
-    }
-    return n;
-}
-
-static unsigned canonicalize(uint32_t cigar[], unsigned n)
-{
-    unsigned i;
-    
-    for (i = n; i > 0; ) {
-        --i;
-        if (cigar[i] >> 4 == 0 || (cigar[i] & 0xF) == 6)
-            n = splice(cigar, n, i, 1, 0, NULL);
-    }
-    for (i = 1; i < n; ) {
-        unsigned const opL = cigar[i-1] & 0xF;
-        unsigned const opI = cigar[ i ] & 0xF;
-        
-        if (opI == opL) {
-            unsigned const oplen = (cigar[i] >> 4) + (cigar[i-1] >> 4);
-            uint32_t const op = (oplen << 4) | opI;
-
-            n = splice(cigar, n, i-1, 2, 1, &op);
-        }
-        else
-            ++i;
-    }
-#if 0
-    if ((cigar[0] & 0xF) == 1)
-        cigar[0] = (cigar[0] & ~(uint32_t)0xF) | 4; /* I -> S */
-    if ((cigar[n - 1] & 0xF) == 1)
-        cigar[n - 1] = (cigar[n - 1] & ~(uint32_t)0xF) | 4; /* I -> S */
-#endif
-    return n;
-}
-
-static void reverse(uint32_t cigar[], unsigned n)
-{
-    unsigned i;
-    unsigned j;
-    
-    for (j = n - 1, i = 0; i < j; ++i, --j) {
-        uint32_t const tmp = cigar[i];
-        cigar[i] = cigar[j];
-        cigar[j] = tmp;
-    }
-}
-
-LIB_EXPORT
-rc_t CC BAMAlignmentGetCGCigar(BAMAlignment const *self,
-                               uint32_t *cigar,
-                               uint32_t cig_max,
-                               uint32_t *cig_act)
-{
-    struct offset_size_s const *const GCi = get_CG_GC_info(self);
-
-    *cig_act = 0;
-
-    if (GCi) {
-        uint32_t i,G,S;
-        unsigned n = getCigarCount(self);
-        uint32_t cg_segs[2*CG_NUM_SEGS-1]; /** 4 segments + 3gaps **/
-
-        if (!BAMAlignmentParseCGTag(self, cg_segs, 2*CG_NUM_SEGS-1))
-            return RC(rcAlign, rcRow, rcReading, rcData, rcInvalid);
-        if (cig_max < n + 5)
-            return RC(rcAlign, rcRow, rcReading, rcBuffer, rcInsufficient);
-
-        memcpy(cigar, getCigarBase(self), n * 4);
-        n = canonicalize(cigar, n); /* just in case */
-        for(i=0,S=0; i< CG_NUM_SEGS-1;i++){
-                S+=cg_segs[2*i];
-                G=cg_segs[2*i+1];
-                if(G > 0){
-                        n = insert_B(S, G, cigar, n);
-                        S+=G;
-                }
-        }
-        *cig_act = n;
-        return 0;
-    }
-    return RC(rcAlign, rcRow, rcReading, rcData, rcNotFound);
-}
-
-
-LIB_EXPORT rc_t BAMAlignmentGetTI(BAMAlignment const *self, uint64_t *ti)
-{
-    char const *const TI = get_XT(self);
-    long long unsigned temp;
-    
-    if (TI && sscanf(TI, "ti|%llu", &temp) == 1) {
-        *ti = (uint64_t)temp;
-        return 0;
-    }
-    return RC(rcAlign, rcRow, rcReading, rcData, rcNotFound);
-}
-
 /* MARK: BAMIndex stuff */
 
-static uint64_t get_pos(uint8_t const buf[])
+static uint64_t get_pos(const uint8_t *buf)
 {
-    return LE2HUI64(buf);
+    uint64_t v64;
+
+    memcpy(&v64, buf, 8);
+    return LE2HUI64(&v64);
 }
 
 #define MAX_BIN 37449
@@ -3058,7 +2245,7 @@ typedef rc_t (*WalkIndexStructureCallBack)(const uint8_t data[], size_t dlen,
                                            void *ctx);
 
 static
-rc_t WalkIndexStructure(uint8_t const buf[], size_t const blen,
+rc_t WalkIndexStructure(const uint8_t buf[], size_t blen,
                         WalkIndexStructureCallBack func,
                         void *ctx
                         )
@@ -3068,21 +2255,17 @@ rc_t WalkIndexStructure(uint8_t const buf[], size_t const blen,
     unsigned i;
     rc_t rc;
     
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("Index data length: %u", blen));
-
     if (cp + 4 > blen)
         return RC(rcAlign, rcIndex, rcReading, rcData, rcInsufficient);
-    
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("Index signature: '%c%c%c%u'", buf[cp+0], buf[cp+1], buf[cp+2], buf[cp+3]));
     if (memcmp(buf + cp, "BAI\1", 4) != 0)
         return RC(rcAlign, rcIndex, rcReading, rcFormat, rcUnknown);
-    
     cp += 4;
+    
     if (cp + 4 > blen)
         return RC(rcAlign, rcIndex, rcReading, rcData, rcInsufficient);
-
-    nrefs = LE2HI32(buf + cp); cp += 4;
-    DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("Index reference count: %i", nrefs));
+    memcpy(&nrefs, buf + cp, 4);
+    nrefs = LE2HI32(&nrefs);
+    cp += 4;
     
     if (nrefs == 0)
         return RC(rcAlign, rcIndex, rcReading, rcData, rcEmpty);
@@ -3093,23 +2276,20 @@ rc_t WalkIndexStructure(uint8_t const buf[], size_t const blen,
         int32_t intervals;
         unsigned di;
         
-        DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("Index reference %u: starts at %u", i, cp));
         if (cp + 4 > blen)
             return RC(rcAlign, rcIndex, rcReading, rcData, rcInsufficient);
+        memcpy(&bins, buf + cp, 4); cp += 4;
+        bins = LE2HI32(&bins);
         
-        bins = LE2HI32(buf + cp); cp += 4;
-        DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("Index reference %u: %i bins", i, nrefs));
-
         for (di = 0; di < bins; ++di) {
             uint32_t binNo;
             
             if (cp + 8 > blen)
                 return RC(rcAlign, rcIndex, rcReading, rcData, rcInsufficient);
-
-            binNo = LE2HUI32(buf + cp); cp += 4;
-            chunks = LE2HI32(buf + cp); cp += 4;
-            DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("Index reference %u, bin %u: %i chunks", i, binNo, chunks));
-            
+            memcpy(&binNo, buf + cp, 4); cp += 4;
+            memcpy(&chunks, buf + cp, 4); cp += 4;
+            binNo = LE2HUI32(&binNo);
+            chunks = LE2HI32(&chunks);
             if (cp + 16 * chunks > blen)
                 return RC(rcAlign, rcIndex, rcReading, rcData, rcInsufficient);
             rc = func(&buf[cp], 16 * chunks, i, nrefs, bai_StartStopPairs, binNo, bins, chunks, ctx);
@@ -3119,10 +2299,8 @@ rc_t WalkIndexStructure(uint8_t const buf[], size_t const blen,
         }
         if (cp + 4 > blen)
             return RC(rcAlign, rcIndex, rcReading, rcData, rcInsufficient);
-
-        intervals = LE2HI32(buf + cp); cp += 4;
-        DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_BAM), ("Index reference %u: %i intervals", i, intervals));
-
+        memcpy(&intervals, buf + cp, 4); cp += 4;
+        intervals = LE2HI32(&intervals);
         if (cp + 8 * intervals > blen)
             return RC(rcAlign, rcIndex, rcReading, rcData, rcInsufficient);
         rc = func(&buf[cp], 8 * intervals, i, nrefs, bai_16kIntervals, ~(unsigned)0, bins, intervals, ctx);
@@ -3216,9 +2394,17 @@ rc_t LoadIndex2a(const uint8_t data[], size_t dlen, unsigned refNo,
         if (n_ival > 1)
             break;
         
-        assert(i == LE2HI32(ctx->base + cp));
+#if _DEBUGGING
+        {{
+            uint32_t bin_no;
+
+            memcpy(&bin_no, ctx->base + cp, 4);
+            assert(i == LE2HI32(&bin_no));
+        }}
+#endif
         cp += 4;
-        chunk_count = LE2HI32(ctx->base + cp); cp += 4;
+        memcpy(&chunk_count, ctx->base + cp, 4); cp += 4;
+        chunk_count = LE2HI32(&chunk_count);
         found = ctx->refSeq[refNo][ival];
         for (k = 0; k < chunk_count; ++k) {
             const uint64_t start = get_pos(ctx->base + cp);
@@ -3251,7 +2437,8 @@ rc_t LoadIndex2a(const uint8_t data[], size_t dlen, unsigned refNo,
         if (ival + n_ival > max_ival)
             n_ival = max_ival - ival;
         
-        chunk_count = LE2HI32(ctx->base + cp + 4); cp += 8;
+        memcpy(&chunk_count, ctx->base + cp + 4, 4); cp += 8;
+        chunk_count = LE2HI32(&chunk_count);
         for (k = 0; k < chunk_count; ++k) {
             const uint64_t start = get_pos(ctx->base + cp);
             const uint64_t end   = get_pos(ctx->base + cp + 8);
@@ -3379,13 +2566,13 @@ rc_t BAMFileOpenIndexInternal(const BAMFile *self, const char *path)
     if (rc == 0) {
         buf = malloc(fsize);
         if (buf != NULL) {
-            size_t nread;
+            size_t read;
             
-            rc = KFileRead(kf, 0, buf, fsize, &nread);
+            rc = KFileRead(kf, 0, buf, fsize, &read);
             KFileRelease(kf);
             if (rc == 0) {
-                if (nread == fsize) {
-                    rc = LoadIndex((BAMFile *)self, buf, nread);
+                if (read == fsize) {
+                    rc = LoadIndex((BAMFile *)self, buf, read);
                     free(buf);
                     return rc;
                 }
@@ -3404,11 +2591,11 @@ LIB_EXPORT rc_t CC BAMFileOpenIndex(const BAMFile *self, const char *path)
     return BAMFileOpenIndexInternal(self, path);
 }
 
-LIB_EXPORT rc_t CC BAMFileOpenIndexWithVPath(const BAMFile *self, const VPath *kpath)
+LIB_EXPORT rc_t CC BAMFileOpenIndexWithKPath(const BAMFile *self, const KPath *kpath)
 {
     char path[4096];
     size_t nread;
-    rc_t rc = VPathReadPath(kpath, path, sizeof(path), &nread);
+    rc_t rc = KPathReadPath(kpath, path, sizeof(path), &nread);
 
     if (rc == 0) {
         path[nread] = '\0';
@@ -3533,11 +2720,11 @@ static rc_t BAMIndexWhack(const BAMIndex *cself) {
 
 /* MARK: BAM Validation Stuff */
 
-static rc_t OpenVPathRead(const KFile **fp, struct VPath const *path)
+static rc_t OpenKPathRead(const KFile **fp, struct KPath const *path)
 {
     char buffer[4096];
     size_t blen;
-    rc_t rc = VPathReadPath(path, buffer, sizeof(buffer), &blen);
+    rc_t rc = KPathReadPath(path, buffer, sizeof(buffer), &blen);
     
     if (rc == 0) {
         KDirectory *dir;
@@ -3551,10 +2738,10 @@ static rc_t OpenVPathRead(const KFile **fp, struct VPath const *path)
     return rc;
 }
 
-static rc_t ReadVPath(void **data, size_t *dsize, struct VPath const *path)
+static rc_t ReadKPath(void **data, size_t *dsize, struct KPath const *path)
 {
     const KFile *fp;
-    rc_t rc = OpenVPathRead(&fp, path);
+    rc_t rc = OpenKPathRead(&fp, path);
     
     if (rc == 0) {
         uint8_t *buff;
@@ -3587,14 +2774,13 @@ static rc_t ReadVPath(void **data, size_t *dsize, struct VPath const *path)
     return rc;
 }
 
-static rc_t VPath2BGZF(BGZFile *bgzf, struct VPath const *path)
+static rc_t KPath2BGZF(BGZFile *bgzf, struct KPath const *path)
 {
     const KFile *fp;
-    BGZFile_vt dummy;
-    rc_t rc = OpenVPathRead(&fp, path);
+    rc_t rc = OpenKPathRead(&fp, path);
     
     if (rc == 0) {
-        rc = BGZFileInit(bgzf, fp, &dummy);
+        rc = BGZFileInit(bgzf, fp);
         KFileRelease(fp);
     }
     return rc;
@@ -3731,14 +2917,16 @@ rc_t BAMValidateHeader(const uint8_t data[],
     if (memcmp(data, "BAM\1", 4) != 0)
         return RC(rcAlign, rcFile, rcValidating, rcFormat, rcUnrecognized);
     
-    hlen = LE2HI32(&data[4]);
+    memcpy(&hlen, &data[4], 4);
+    hlen = LE2HI32(&hlen);
     if (hlen < 0)
         return RC(rcAlign, rcFile, rcValidating, rcData, rcInvalid);
     
     if (dsize < hlen + 12)
         return RC(rcAlign, rcFile, rcValidating, rcData, rcIncomplete);
     
-    refs = LE2HI32(&data[hlen + 8]);
+    memcpy(&refs, &data[hlen + 8], 4);
+    refs = LE2HI32(&refs);
     if (refs < 0)
         return RC(rcAlign, rcFile, rcValidating, rcData, rcInvalid);
     
@@ -3748,7 +2936,8 @@ rc_t BAMValidateHeader(const uint8_t data[],
         if (dsize < cp + 4)
             return RC(rcAlign, rcFile, rcValidating, rcData, rcIncomplete);
         
-        nlen = LE2HI32(&data[cp]);
+        memcpy(&nlen, &data[cp], 4);
+        nlen = LE2HI32(&nlen);
         if (nlen < 0)
             return RC(rcAlign, rcFile, rcValidating, rcData, rcInvalid);
         
@@ -3764,8 +2953,8 @@ rc_t BAMValidateHeader(const uint8_t data[],
     return 0;
 }
 
-static rc_t BAMValidateIndex(struct VPath const *bampath,
-                             struct VPath const *baipath,
+static rc_t BAMValidateIndex(struct KPath const *bampath,
+                             struct KPath const *baipath,
                              BAMValidateOption options,
                              BAMValidateCallback callback,
                              void *callbackContext
@@ -3787,7 +2976,7 @@ static rc_t BAMValidateIndex(struct VPath const *bampath,
     if ((options & bvo_IndexOptions) == 0)
         return callback(callbackContext, 0, &stats);
 
-    rc = ReadVPath((void **)&bai, &bai_size, baipath);
+    rc = ReadKPath((void **)&bai, &bai_size, baipath);
     if (rc)
         return rc;
     
@@ -3803,7 +2992,7 @@ static rc_t BAMValidateIndex(struct VPath const *bampath,
     if ((options & bvo_IndexOptions) == bvo_IndexStructure)
         return WalkIndexStructure(bai, bai_size, IndexValidateStructure, &ctx);
 
-    rc = VPath2BGZF(&bam, bampath);
+    rc = KPath2BGZF(&bam, bampath);
     if (rc == 0) {
         ctx.mpositions = 1024 * 32;
         ctx.position = malloc(ctx.mpositions * sizeof(ctx.position[0]));
@@ -3876,7 +3065,8 @@ static rc_t BAMValidateIndex(struct VPath const *bampath,
                         if (dsize - bpos < 4 || dsize - bpos < rsize)
                             goto BAD_BLOCK_OFFSET;
                     }
-                    rsize = LE2HI32(data + bpos);
+                    memcpy(&temp, data + bpos, 4);
+                    rsize = LE2HI32(&temp);
                     if (rsize <= 0)
                         goto BAD_BLOCK_OFFSET;
                     if (rsize > 0xFFFF) {
@@ -3886,7 +3076,7 @@ static rc_t BAMValidateIndex(struct VPath const *bampath,
                     }
                     if (dsize - bpos < rsize)
                         goto READ_MORE;
-/*                    rc = BAMAlignmentParse(&algn, data + bpos + 4, rsize); */
+                    rc = BAMAlignmentParse(&algn, data + bpos + 4, rsize);
                     if (rc)
                         goto BAD_BLOCK_OFFSET;
                     ++stats.indexBlockOffset.good;
@@ -4043,7 +3233,8 @@ static rc_t BAMValidate2(void *Ctx, const BGZFile *file,
                 while (cp + 4 < ctx->bsize) {
                     int32_t rsize;
                     
-                    rsize = LE2HI32(&ctx->buf[cp]);
+                    memcpy(&rsize, &ctx->buf[cp], 4);
+                    rsize = LE2HI32(&rsize);
                     if (rsize < 0) {
                         ++ctx->stats->blockStructure.error;
                         ctx->options = bvo_BlockStructure;
@@ -4065,7 +3256,7 @@ static rc_t BAMValidate2(void *Ctx, const BGZFile *file,
                         if (ctx->options > bvo_BlockStructure) {
                             BAMAlignment algn;
                             
-/*                            rc = BAMAlignmentParse(&algn, &ctx->buf[cp + 4], rsize); */
+                            rc = BAMAlignmentParse(&algn, &ctx->buf[cp + 4], rsize);
                             if (rc == 0) {
                                 ++ctx->stats->recordStructure.good;
                                 if (ctx->options > bvo_RecordStructure)
@@ -4113,7 +3304,7 @@ static rc_t BAMValidate2(void *Ctx, const BGZFile *file,
     return fatal ? rc : rc2;
 }
 
-static rc_t BAMValidateBAM(struct VPath const *bampath,
+static rc_t BAMValidateBAM(struct KPath const *bampath,
                            BAMValidateOption options,
                            BAMValidateCallback callback,
                            void *callbackContext
@@ -4146,7 +3337,7 @@ static rc_t BAMValidateBAM(struct VPath const *bampath,
     if (options > bvo_RecordStructure)
         options = bvo_RecordStructure | (options & 0xFFF0);
     
-    rc = VPath2BGZF(&bam, bampath);
+    rc = KPath2BGZF(&bam, bampath);
     if (rc == 0) {
         stats.bamFileSize = bam.fsize;
         if ((options & 7) > bvo_BlockHeaders)
@@ -4163,8 +3354,8 @@ static rc_t CC dummy_cb(void *ctx, rc_t result, const BAMValidateStats *stats)
     return 0;
 }
 
-LIB_EXPORT rc_t CC BAMValidate(struct VPath const *bampath,
-                               struct VPath const *baipath,
+LIB_EXPORT rc_t CC BAMValidate(struct KPath const *bampath,
+                               struct KPath const *baipath,
                                BAMValidateOption options,
                                BAMValidateCallback callback,
                                void *callbackContext
diff --git a/libs/align/debug.h b/libs/align/debug.h
index 7c03771..cf18501 100644
--- a/libs/align/debug.h
+++ b/libs/align/debug.h
@@ -29,49 +29,15 @@
 #include <klib/debug.h>
 
 #if _DEBUGGING
-
 #define ALIGN_DBGF(msg) DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_WRITER), msg)
 #define ALIGN_DBG(fmt, ...) ALIGN_DBGF(("%s:%u: " fmt "\n", __func__, __LINE__, __VA_ARGS__))
 #define ALIGN_DBGERR(rc) if(rc != 0) {ALIGN_DBGF(("%s:%u: %R\n", __func__, __LINE__, rc));}
 #define ALIGN_DBGERRP(fmt, rc, ...) if(rc != 0) {ALIGN_DBGF(("%s:%u: %R " fmt "\n", __func__, __LINE__, rc, __VA_ARGS__));}
-
-#define ALIGN_C_DBGF(msg) DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_COMPRESS), msg)
-#define ALIGN_C_DBG(fmt, ...) ALIGN_C_DBGF(("%s:%u: " fmt "\n", __func__, __LINE__, __VA_ARGS__))
-#define ALIGN_C_DBGERR(rc) if(rc != 0) {ALIGN_C_DBGF(("%s:%u: %R\n", __func__, __LINE__, rc));}
-#define ALIGN_C_DBGERRP(fmt, rc, ...) if(rc != 0) {ALIGN_C_DBGF(("%s:%u: %R " fmt "\n", __func__, __LINE__, rc, __VA_ARGS__));}
-
-#define ALIGN_R_DBGF(msg) DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_COVERAGE), msg)
-#define ALIGN_R_DBG(fmt, ...) ALIGN_R_DBGF(("%s:%u: " fmt "\n", __func__, __LINE__, __VA_ARGS__))
-#define ALIGN_R_DBGERR(rc) if(rc != 0) {ALIGN_R_DBGF(("%s:%u: %R\n", __func__, __LINE__, rc));}
-#define ALIGN_R_DBGERRP(fmt, rc, ...) if(rc != 0) {ALIGN_R_DBGF(("%s:%u: %R " fmt "\n", __func__, __LINE__, rc, __VA_ARGS__));}
-
-#define ALIGN_CF_DBGF(msg) DBGMSG(DBG_ALIGN, DBG_FLAG(DBG_ALIGN_CFG), msg)
-#define ALIGN_CF_DBG(fmt, ...) ALIGN_CF_DBGF(("%s:%u: " fmt "\n", __func__, __LINE__, __VA_ARGS__))
-#define ALIGN_CF_DBGERR(rc) if(rc != 0) {ALIGN_CF_DBGF(("%s:%u: %R\n", __func__, __LINE__, rc));}
-#define ALIGN_CF_DBGERRP(fmt, rc, ...) if(rc != 0) {ALIGN_CF_DBGF(("%s:%u: %R " fmt "\n", __func__, __LINE__, rc, __VA_ARGS__));}
-
 #else
-
-#define ALIGN_DBGF(msg) ((void)0)
 #define ALIGN_DBG(fmt, ...) ((void)0)
 #define ALIGN_DBGERR(rc) ((void)0)
 #define ALIGN_DBGERRP(fmt, rc, ...) ((void)0)
-
-#define ALIGN_C_DBGF(msg) ((void)0)
-#define ALIGN_C_DBG(fmt, ...) ((void)0)
-#define ALIGN_C_DBGERR(rc) ((void)0)
-#define ALIGN_C_DBGERRP(fmt, rc, ...) ((void)0)
-
-#define ALIGN_R_DBGF(msg) ((void)0)
-#define ALIGN_R_DBG(fmt, ...) ((void)0)
-#define ALIGN_R_DBGERR(rc) ((void)0)
-#define ALIGN_R_DBGERRP(fmt, rc, ...) ((void)0)
-
-#define ALIGN_CF_DBGF(msg) ((void)0)
-#define ALIGN_CF_DBG(fmt, ...) ((void)0)
-#define ALIGN_CF_DBGERR(rc) ((void)0)
-#define ALIGN_CF_DBGERRP(fmt, rc, ...) ((void)0)
-
+#define ALIGN_DBGF(msg) ((void)0)
 #endif
 
 #endif /* _h_align_debug_ */
diff --git a/libs/align/dna-reverse-cmpl.c b/libs/align/dna-reverse-cmpl.c
deleted file mode 100644
index 3476106..0000000
--- a/libs/align/dna-reverse-cmpl.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <align/extern.h>
-
-#include <klib/rc.h>
-#include <insdc/insdc.h>
-#include <sysalloc.h>
-
-#include "debug.h"
-#include <align/dna-reverse-cmpl.h>
-#include <string.h>
-
-LIB_EXPORT rc_t CC DNAReverseCompliment(const INSDC_dna_text* seq, INSDC_dna_text* cmpl, uint32_t len)
-{
-    rc_t rc = 0;
-    uint32_t i;
-    static INSDC_dna_text compl[256] = "~";
-
-    if( seq == NULL || compl == NULL ) {
-        rc = RC( rcAlign, rcType, rcConverting, rcParam, rcNull);
-    } else {
-        if( compl[0] == '~' ) {
-            INSDC_dna_text* x = (INSDC_dna_text*)&compl[0];
-            memset(x, 0, sizeof(compl));
-            x['A'] = x['a'] = 'T';
-            x['T'] = x['t'] = 'A';
-            x['U'] = x['u'] = 'A';
-            x['G'] = x['g'] = 'C';
-            x['C'] = x['c'] = 'G';
-            x['Y'] = x['y'] = 'R';
-            x['R'] = x['r'] = 'Y';
-            x['S'] = x['s'] = 'S';
-            x['W'] = x['w'] = 'W';
-            x['K'] = x['k'] = 'M';
-            x['M'] = x['m'] = 'K';
-            x['B'] = x['b'] = 'V';
-            x['D'] = x['d'] = 'H';
-            x['H'] = x['h'] = 'D';
-            x['V'] = x['v'] = 'B';
-            x['N'] = x['n'] = 'N';
-            x['0'] = '0';
-            x['1'] = '1';
-            x['2'] = '2';
-            x['3'] = '3';
-        }
-        cmpl += len;
-        for(i = 0; i < len; i++) {
-            *--cmpl= compl[(int)seq[i]];
-            if( *cmpl == '\0' ) {
-                rc = RC(rcAlign, rcFormatter, rcWriting, rcData, rcInvalid);
-                break;
-            }
-        }
-    }
-    ALIGN_DBGERR(rc);
-    return rc;
-}
diff --git a/libs/align/libalign-access.vers b/libs/align/libalign-access.vers
index a970716..21e8796 100644
--- a/libs/align/libalign-access.vers
+++ b/libs/align/libalign-access.vers
@@ -1 +1 @@
-1.0.15
+1.0.3
diff --git a/libs/align/libalign-reader.vers b/libs/align/libalign-reader.vers
index 2ac9634..6d7de6e 100644
--- a/libs/align/libalign-reader.vers
+++ b/libs/align/libalign-reader.vers
@@ -1 +1 @@
-1.0.13
+1.0.2
diff --git a/libs/kns/libkns.vers b/libs/align/libalign-writer.vers
similarity index 100%
rename from libs/kns/libkns.vers
rename to libs/align/libalign-writer.vers
diff --git a/libs/align/pl_iterator.c b/libs/align/pl_iterator.c
deleted file mode 100644
index b627af6..0000000
--- a/libs/align/pl_iterator.c
+++ /dev/null
@@ -1,671 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <align/extern.h>
-
-#include <klib/rc.h>
-#include <klib/vector.h>
-#include <klib/refcount.h>
-#include <klib/sort.h>
-#include <klib/text.h>
-#include <klib/out.h>
-#include <insdc/insdc.h>
-#include <align/manager.h>
-#include <align/iterator.h>
-#include <sysalloc.h>
-
-#include "debug.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-
-typedef struct window
-{
-    INSDC_coord_zero first;
-    INSDC_coord_len len;
-} window;
-
-
-typedef struct pi_entry
-{
-    DLNode n;                       /* to have it in a DLList */
-    PlacementIterator *pi;          /* the placement-iterator we have added */
-    window nxt_avail;               /* the next available position of the placement-iterator */
-} pi_entry;
-
-
-typedef struct pi_window
-{
-    DLNode n;                       /* to have it in a DLList */
-    window w;                       /* the window of the placement-iterator */
-    DLList pi_entries;              /* it has a DLList of pi_entry-struct's */
-    uint32_t count;                 /* how many entries do we have */
-} pi_window;
-
-
-typedef struct pi_ref
-{
-    DLNode n;                       /* to have it in a DLList */
-    char * name;                    /* the name of the reference it referes to */
-    window outer;                   /* the sum of all windows it has... */
-    bool outer_initialized;         /* has the outer-window been initialized */
-    DLList pi_windows;              /* it has a DLList of pi_window-struct's */
-} pi_ref;
-
-
-struct PlacementSetIterator
-{
-    KRefcount refcount;
-    struct AlignMgr const *amgr;    /* the alignment-manager... ( right now: we store it, but that's it )*/
-    DLList pi_refs;                 /* a list of references we have to iterate over... */
-    pi_ref * current_ref;           /* what is the current reference, we are handling ? */
-    pi_window * current_window;     /* what is the current window, we are handling ? */
-    pi_entry * current_entry;       /* what is the current pi-entry, we are handling ? */
-};
-
-
-/* =================================================================================================== */
-
-
-LIB_EXPORT rc_t CC AlignMgrMakePlacementSetIterator ( struct AlignMgr const *self,
-    PlacementSetIterator **iter )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcSelf, rcNull );
-    else
-    {
-        if ( iter == NULL  )
-            rc = RC( rcAlign, rcIterator, rcConstructing, rcParam, rcNull );
-        else
-        {
-            PlacementSetIterator * psi = calloc( sizeof * psi, 1 );
-            if ( psi == NULL )
-                rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                rc = AlignMgrAddRef ( self );
-                if ( rc == 0 )
-                {
-                    KRefcountInit( &psi->refcount, 1, "PlacementSetIterator", "Make", "align" );
-                    psi->amgr = self;
-                    psi->current_ref = NULL;          /* we don't know that yet */
-                    psi->current_window = NULL;
-                    psi->current_entry = NULL;
-                    DLListInit( &psi->pi_refs );
-                }
-            }
-            if ( rc == 0 )
-                *iter = psi;
-            else
-                free( psi );
-        }
-    }
-
-    return rc;
-}
-
-
-/* =================================================================================================== */
-
-
-static int cmp_pchar( const char * a, const char * b )
-{
-    int res = 0;
-    if ( ( a != NULL )&&( b != NULL ) )
-    {
-        size_t len_a = string_size( a );
-        size_t len_b = string_size( b );
-        res = string_cmp ( a, len_a, b, len_b, ( len_a < len_b ) ? len_b : len_a );
-    }
-    return res;
-}
-
-
-/* =================================================================================================== */
-
-
-typedef struct pi_ref_cb_ctx
-{
-    const char * name;
-    pi_ref *res;
-} pi_ref_cb_ctx;
-
-
-static bool CC find_pi_ref_callback( DLNode *n, void *data )
-{
-    pi_ref_cb_ctx *ctx = ( pi_ref_cb_ctx * )data;
-    pi_ref * pr = ( pi_ref * ) n;
-    bool res = ( cmp_pchar( ctx->name, pr->name ) == 0 );
-    if ( res )
-    {
-        ctx->res = pr;
-    }
-    return res;
-}
-
-
-static pi_ref * find_pi_ref( const DLList * list, const char * name )
-{
-    pi_ref_cb_ctx ctx;
-    ctx.res = NULL;
-    ctx.name = name;
-    DLListDoUntil ( list, false, find_pi_ref_callback, &ctx );
-    return ctx.res;
-}
-
-
-/* =================================================================================================== */
-
-typedef struct pi_window_cb_ctx
-{
-    window *w;
-    pi_window *res;
-} pi_window_cb_ctx;
-
-
-static bool CC find_pi_window_callback( DLNode *n, void *data )
-{
-    pi_window_cb_ctx *ctx = ( pi_window_cb_ctx * )data;
-    pi_window * pw = ( pi_window * ) n;
-    bool res = ( pw->w.first == ctx->w->first && pw->w.len == ctx->w->len );
-    if ( res )
-        ctx->res = pw;
-    return res;
-}
-
-
-static pi_window * find_pi_window( const DLList * list, window * w )
-{
-    pi_window_cb_ctx ctx;
-    ctx.res = NULL;
-    ctx.w = w;
-    DLListDoUntil ( list, false, find_pi_window_callback, &ctx );
-    return ctx.res;
-}
-
-
-/* =================================================================================================== */
-
-
-static rc_t make_pi_window( pi_window ** pw, DLList * list, window * w )
-{
-    rc_t rc = 0;
-    *pw = calloc( 1, sizeof ** pw );
-    if ( *pw == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        (*pw)->w.first = w->first;
-        (*pw)->w.len = w->len;
-        DLListInit( &( (*pw)->pi_entries ) );
-        DLListPushTail ( list, ( DLNode * )(*pw) );
-    }
-    return rc;
-}
-
-
-static rc_t add_to_pi_window( pi_window * pw, PlacementIterator *pi )
-{
-    rc_t rc = 0;
-    pi_entry * pie = calloc( 1, sizeof *pie );
-    if ( pie == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        pie->pi = pi;       /* store the placement-iterator in it's entry-struct */
-        rc = PlacementIteratorNextAvailPos ( pi, &(pie->nxt_avail.first), &(pie->nxt_avail.len) );
-        if ( rc == 0 )
-        {
-            PlacementIteratorAddRef ( pi );
-            DLListPushTail ( &pw->pi_entries, ( DLNode * )pie );
-        }
-        else
-        {
-            free( pie );
-            ALIGN_DBG( "PlacementIter has no placements...", 0 );
-        }
-    }
-    return rc;
-}
-
-
-/* =================================================================================================== */
-
-
-static rc_t make_pi_ref( pi_ref ** pr, DLList * list, const char * name )
-{
-    rc_t rc = 0;
-    *pr = calloc( 1, sizeof ** pr );
-    if ( *pr == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        (*pr)->name = string_dup_measure ( name, NULL );
-        DLListInit( &( (*pr)->pi_windows ) );
-        DLListPushTail ( list, ( DLNode * )(*pr) );
-    }
-    return rc;
-}
-
-
-static rc_t add_to_pi_ref( pi_ref * pr, window * w, PlacementIterator *pi )
-{
-    rc_t rc = 0;
-    pi_window * pw = find_pi_window( &pr->pi_windows, w );
-
-    if ( pw == NULL )
-        rc = make_pi_window( &pw, &pr->pi_windows, w );
-    if ( rc == 0 )
-        rc = add_to_pi_window( pw, pi );
-
-    if ( rc == 0 )
-    {
-        /* keep track of the outer window... */
-        if ( DLListHead( &pr->pi_windows ) == NULL )
-        {
-            /* first window ?*/
-            pr->outer.first = w->first;
-            pr->outer.len = w->len;
-        }
-        else
-        {
-            if ( w->first < pr->outer.first )
-                pr->outer.first = w->first;
-            if ( w->first + w->len > pr->outer.first + pr->outer.len )
-                pr->outer.len = ( ( w->first + w->len ) - pr->outer.first ) + 1;
-        }
-    }
-    return rc;
-}
-
-
-/* =================================================================================================== */
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorAddPlacementIterator ( PlacementSetIterator *self,
-    PlacementIterator *pi )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcSelf, rcNull );
-    else
-    {
-        if ( pi == NULL  )
-            rc = RC( rcAlign, rcIterator, rcConstructing, rcParam, rcNull );
-        else
-        {
-            const char * name;      /* what reference are we aligning against */
-            window w;               /* where does the pi start/end, against said reference */
-
-            /* to find the name of the reference used, important for adding the iterator */
-            rc = PlacementIteratorRefWindow ( pi, &name, &(w.first), &(w.len) );
-            if ( rc == 0 )
-            {
-                pi_ref * pr = find_pi_ref( &self->pi_refs, name );
-                /* if we do not have a pi_ref yet with this name: make one! */
-                if ( pr == NULL )
-                    rc = make_pi_ref( &pr, &self->pi_refs, name );
-                /* add the placement-iterator to the newly-made or existing pi_ref! */
-                if ( rc == 0 )
-                    rc = add_to_pi_ref( pr, &w, pi );
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorAddRef ( const PlacementSetIterator *cself )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-        rc = RC( rcAlign, rcIterator, rcAttaching, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountAdd( &cself->refcount, "PlacementSetIterator" ) != krefOkay )
-        {
-            rc = RC( rcAlign, rcIterator, rcAttaching, rcError, rcUnexpected );
-        }
-    }
-    return rc;
-}
-
-
-/* =================================================================================================== */
-
-
-static void CC pi_entry_whacker( DLNode *n, void *data )
-{
-    pi_entry * pie = ( pi_entry * )n;
-    PlacementIteratorRelease ( pie->pi );
-    free( pie );
-}
-
-static void CC pi_window_whacker( DLNode *n, void *data )
-{
-    pi_window * pw = ( pi_window * )n;
-    DLListWhack ( &pw->pi_entries, pi_entry_whacker, NULL );
-    free( pw );
-}
-
-static void CC pi_ref_whacker( DLNode *n, void *data )
-{
-    pi_ref * pr = ( pi_ref * )n;
-    DLListWhack ( &pr->pi_windows, pi_window_whacker, NULL );
-    free( pr->name );
-    free( pr );
-}
-
-
-static void pl_set_iter_clear_curr_ref_window( PlacementSetIterator *self )
-{
-    if ( self->current_window != NULL )
-    {
-        pi_window_whacker( (DLNode *)self->current_window, NULL );
-        self->current_window = NULL;
-    }
-}
-
-
-static void pl_set_iter_clear_curr_ref( PlacementSetIterator *self )
-{
-    if ( self->current_ref != NULL )
-    {
-        pi_ref_whacker( (DLNode *)self->current_ref, NULL );
-        self->current_ref = NULL;
-    }
-}
-
-/* =================================================================================================== */
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorRelease ( const PlacementSetIterator *cself )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-        rc = RC( rcAlign, rcIterator, rcReleasing, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountDrop( &cself->refcount, "PlacementSetIterator" ) == krefWhack )
-        {
-            PlacementSetIterator * self = ( PlacementSetIterator * ) cself;
-
-            pl_set_iter_clear_curr_ref_window( self );
-            pl_set_iter_clear_curr_ref( self );
-
-            /* release the DLList of pi-ref's and the pi's in it... */
-            DLListWhack ( &self->pi_refs, pi_ref_whacker, NULL );
-
-            AlignMgrRelease ( self->amgr );
-
-            free( self );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorNextReference ( PlacementSetIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len, struct ReferenceObj const ** refobj )
-{
-    rc_t rc = 0;
-    if ( refobj != NULL ) { *refobj = NULL; }
-
-    if ( self == NULL )
-        return RC( rcAlign, rcIterator, rcReleasing, rcSelf, rcNull );
-
-    pl_set_iter_clear_curr_ref_window( self );
-    pl_set_iter_clear_curr_ref( self );
-    self->current_entry = NULL;     /* what is the current pi-entry, we are handling ? */
-
-    /* !!! here we are taking the next reference from the top of the list */
-    self->current_ref = ( pi_ref * )DLListPopHead ( &self->pi_refs );
-
-    if ( self->current_ref == NULL )
-    {
-        return SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-    }
-
-    if ( first_pos != NULL ) *first_pos = self->current_ref->outer.first;
-    if ( len != NULL) *len = self->current_ref->outer.len;
-
-    /* if the caller wants to know the ref-obj... */
-    if ( refobj != NULL )
-    {
-        pi_window *pw = ( pi_window * )DLListHead( &(self->current_ref->pi_windows) );
-        if ( pw != NULL )
-        {
-            pi_entry * pie = ( pi_entry * )DLListHead( &(pw->pi_entries) );
-            if ( pie != NULL )
-            {
-                rc = PlacementIteratorRefObj( pie->pi, refobj );
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorNextWindow ( PlacementSetIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len )
-{
-    rc_t rc = 0;
-    if ( first_pos != NULL ) { *first_pos = 0; }
-    if ( len != NULL ) { *len = 0; }
-
-    if ( self == NULL )
-        return RC( rcAlign, rcIterator, rcReleasing, rcSelf, rcNull );
-
-    self->current_entry = NULL;     /* what is the current pi-entry, we are handling ? */
-
-    if ( self->current_ref == NULL )
-    {
-        return SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-    }
-
-    pl_set_iter_clear_curr_ref_window( self );
-
-    /* !!! here we are taking the next window from the top of the list */
-    self->current_window = ( pi_window * )DLListPopHead ( &(self->current_ref->pi_windows) );
-
-    /* check if we have reached the last window on this reference... */
-    if ( self->current_window == NULL )
-    {
-        return SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-    }
-
-    /* point to the first entry in this window... */
-    self->current_entry = ( pi_entry * )DLListHead( &(self->current_window->pi_entries) );
-
-    /* if the caller wants to know first_pos / len */
-    if ( first_pos != NULL )
-    {
-        *first_pos = self->current_window->w.first;
-    }
-    if ( len != NULL )
-    {
-        *len = self->current_window->w.len;
-    }
-
-    return rc;
-}
-
-typedef struct pi_ref_nxt_avail_pos_ctx
-{
-    uint32_t count;
-    INSDC_coord_zero min_pos;
-    INSDC_coord_len min_len;
-    bool min_pos_initialized;
-    rc_t rc;
-} pi_ref_nxt_avail_pos_ctx;
-
-static void CC nxt_avail_pos_cb( DLNode * n, void * data )
-{
-    pi_ref_nxt_avail_pos_ctx * ctx = ( pi_ref_nxt_avail_pos_ctx * ) data;
-    if ( ctx->rc == 0 )
-    {
-        pi_entry * pie = ( pi_entry * )n;
-        rc_t rc = PlacementIteratorNextAvailPos ( pie->pi, &(pie->nxt_avail.first), &(pie->nxt_avail.len) );
-        if ( rc == 0 )
-        {
-/*            OUTMSG(( "nxt_avail.first=%u w.last=%u\n", pie->nxt_avail.first, pie->w.last )); */
-            ( ctx->count )++;
-            if ( ctx->min_pos_initialized )
-            {
-                if ( pie->nxt_avail.first < ctx->min_pos )
-                {
-                    ctx->min_pos = pie->nxt_avail.first;
-                    ctx->min_len = pie->nxt_avail.len;
-                }
-            }
-            else
-            {
-                ctx->min_pos = pie->nxt_avail.first;
-                ctx->min_len = pie->nxt_avail.len;
-                ctx->min_pos_initialized = true;
-            }
-        }
-        else
-        {
-            if ( GetRCState( rc ) != rcDone )
-                ctx->rc = rc;
-        }
-    }
-}
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorNextAvailPos ( const PlacementSetIterator *cself,
-    INSDC_coord_zero *pos, INSDC_coord_len *len )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        if ( pos == NULL )
-            rc = RC( rcAlign, rcIterator, rcAccessing, rcParam, rcNull );
-        else
-        {
-            PlacementSetIterator *self = ( PlacementSetIterator * )cself;
-            if ( self->current_ref == NULL || self->current_window == NULL )
-            {
-                rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-            }
-            else
-            {
-                /* loop through all the pi_entry int the current_pi_ref */
-                pi_ref_nxt_avail_pos_ctx ctx;
-                ctx.count = 0;
-                ctx.rc = 0;
-                ctx.min_pos = 0;
-                ctx.min_len = 0;
-                ctx.min_pos_initialized = false;
-                DLListForEach ( &(self->current_window->pi_entries),
-                                false, nxt_avail_pos_cb, &ctx );
-                rc = ctx.rc;
-                if ( ctx.count == 0 )
-                {
-                    rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-                }
-                else
-                {
-                    *pos = ctx.min_pos;
-                    if ( len != NULL )
-                    {
-                        *len = ctx.min_len;
-                    }
-                }
-            } 
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorNextRecordAt ( PlacementSetIterator *self,
-    INSDC_coord_zero pos, const PlacementRecord **rec )
-{
-    rc_t rc = 0;
-    pi_window * pw;
-    bool done;
-
-    if ( rec == NULL )
-        return RC( rcAlign, rcIterator, rcAccessing, rcParam, rcNull );
-    *rec = NULL;
-    if ( self == NULL )
-        return RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    if ( self->current_ref == NULL )
-    {
-        /* no more reference to iterator over! the iterator is done! */
-        return SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-    }
-    if ( self->current_window == NULL )
-    {
-        /* no more windows to iterator over! the iterator is done! */
-        return SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-    }
-
-    pw = self->current_window;
-    done = false;
-    do
-    {
-        if ( self->current_entry == NULL )
-        {
-            self->current_entry = ( pi_entry * )DLListHead( &(pw->pi_entries) );
-        }
-        done = ( self->current_entry == NULL );
-        rc = ( done ? SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone ) : 0 );
-        if ( rc == 0 )
-        {
-            rc = PlacementIteratorNextRecordAt ( self->current_entry->pi, pos, rec );
-            done = ( GetRCState( rc ) != rcDone );
-            if ( !done )
-            {
-                self->current_entry = ( pi_entry * )DLNodeNext( ( DLNode * )self->current_entry );
-                done = ( self->current_entry == NULL );
-                rc = ( done ? SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone ) : 0 );
-            }
-        }
-    } while ( !done );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementSetIteratorNextIdAt ( PlacementSetIterator *self,
-    INSDC_coord_zero pos, int64_t *row_id, INSDC_coord_len *len )
-{
-    const PlacementRecord *rec;
-    rc_t rc = PlacementSetIteratorNextRecordAt ( self, pos, &rec );
-    if ( rc == 0 )
-    {
-        if ( row_id != NULL ) *row_id = rec->id;
-        if ( len != NULL ) *len = rec->len;
-    }
-    return rc;
-}
diff --git a/libs/align/quality-quantizer.c b/libs/align/quality-quantizer.c
deleted file mode 100644
index 15205ca..0000000
--- a/libs/align/quality-quantizer.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <stdint.h>
-#include <string.h>
-#include <ctype.h>
-
-#include <klib/defs.h>
-#include <align/quality-quantizer.h>
-
-LIB_EXPORT
-bool CC QualityQuantizerInitMatrix(uint8_t dst[256], char const quant[])
-{
-    unsigned i = 0;
-    unsigned limit = 0;
-    unsigned value = 0;
-    unsigned cur;
-    int ws = 1;
-    int st = 0;
-    
-    memset(dst, 0, 256);
-    for (cur = 0; quant[cur] != 0; ++cur) {
-        int const ch = quant[cur];
-        
-        if (ws) {
-            if (isspace(ch))
-                continue;
-            ws = false;
-        }
-        switch (st) {
-        case 0:
-            if (isdigit(ch)) {
-                value = (value * 10) + ch - '0';
-                break;
-            }
-            else if (isspace(ch)) {
-                ++st;
-                ws = true;
-                break;
-            }
-            ++st;
-            /* no break */
-        case 1:
-            if (ch != ':')
-                return false;
-            ws = true;
-            ++st;
-            break;
-        case 2:
-            if (isdigit(ch)) {
-                limit  = (limit * 10) + ch - '0';
-                break;
-            }
-            else if (isspace(ch)) {
-                ++st;
-                ws = true;
-                break;
-            }
-            else if (ch == '-' && limit == 0) {
-                memset(dst + i, value, 256 - i);
-                return true;
-            }
-            ++st;
-            /* no break */
-        case 3:
-            if (ch != ',')
-                return false;
-            ws = true;
-            st = 0;
-            if (i > limit)
-                return false;
-            /* set from dst[i..(limit - 1)] = value
-             * not inclusive of the endpoint
-             */
-            memset(dst + i, value, limit - i);
-            i = limit;
-            limit = value = 0;
-            break;
-        }
-    }
-    return false;
-}
diff --git a/libs/align/reader-cmn.c b/libs/align/reader-cmn.c
index 607ac09..c147563 100644
--- a/libs/align/reader-cmn.c
+++ b/libs/align/reader-cmn.c
@@ -26,7 +26,6 @@
 #include <klib/rc.h>
 #include <vdb/table.h>
 #include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
 
 #include "reader-cmn.h"
 #include "debug.h"
@@ -35,283 +34,98 @@
 #include <stdlib.h>
 #include <string.h>
 
-struct TableReader
-{
+struct TableReader {
+    const VTable* tbl;
     const VCursor* curs;
     const TableReaderColumn* cols;
     int64_t curr;
 };
 
-
-rc_t CC TableReader_Make( const TableReader** cself, const VTable* table,
-                          TableReaderColumn* cols, size_t cache )
-{
-    rc_t rc = 0;
-    const VCursor* curs;
-
-    if ( table == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcParam, rcInvalid );
-    }
-    else
-    {
-        rc = VTableCreateCachedCursorRead( table, &curs, cache );
-        if ( rc == 0 )
-        {
-            rc = TableReader_MakeCursor( cself, curs, cols );
-            VCursorRelease( curs );
-        }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-rc_t CC TableReader_MakeCursor( const TableReader** cself, const VCursor* cursor,
-                                TableReaderColumn* cols )
+rc_t CC TableReader_Make(const TableReader** cself, const VTable* table, TableReaderColumn* cols, size_t cache)
 {
     rc_t rc = 0;
     TableReader* obj = NULL;
 
-    if ( cself == NULL || cursor == NULL || cols == NULL || cols->name == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcParam, rcInvalid );
-    }
-    else if ( ( obj = calloc( 1, sizeof( *obj ) ) ) == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcMemory, rcExhausted );
-    }
-    else
-    {
-        rc = VCursorAddRef( cursor );
-        if ( rc == 0 )
-        {
-            obj->curs = cursor;
-/*            obj->cursor_open = false; */
-            obj->cols = cols;
-            while ( rc == 0 && cols->name != NULL)
-            {
-                if ( !( cols->flags & ercol_Skip ) )
-                {
-                    rc = VCursorAddColumn( obj->curs, &cols->idx, cols->name );
-                    if ( rc != 0 )
-                    {
-                        if ( ( rc != 0 && ( cols->flags & ercol_Optional ) ) || GetRCState( rc ) == rcExists )
-                        {
+    if( cself == NULL || table == NULL || cols == NULL || cols->name == NULL ) {
+        rc = RC(rcAlign, rcType, rcConstructing, rcParam, rcInvalid);
+    } else if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
+        rc = RC(rcAlign, rcType, rcConstructing, rcMemory, rcExhausted);
+    } else {
+        obj->tbl = table;
+        VTableAddRef(table);
+        obj->cols = cols;
+        if( (rc = VTableCreateCachedCursorRead(obj->tbl, &obj->curs, cache)) == 0 ) {
+            while(cols->name != NULL) {
+                if( !(cols->flags & ercol_Skip) ) {
+                    if( (rc = VCursorAddColumn(obj->curs, &cols->idx, cols->name)) != 0) {
+                        if( GetRCState(rc) == rcNotFound && (cols->flags & ercol_Optional) ) {
                             rc = 0;
                         }
-                        else
-                        {
-                            ALIGN_DBGERRP( "cannot add column '%s' to cursor", rc, cols->name );
-                        }
                     }
                 }
                 cols++;
             }
-            if ( rc == 0 )
-            {
-                rc = VCursorOpen( obj->curs );
+            if( rc == 0 ) {
+                rc = VCursorOpen(obj->curs);
             }
         }
     }
-
-
-    if( rc == 0 )
-    {
+    if( rc == 0 ) {
         *cself = obj;
-/*        ALIGN_DBG("ok%c", '!'); */
-    }
-    else
-    {
-        TableReader_Whack( obj );
-        ALIGN_DBGERRP( "TableReader_MakeCursor() failed", rc, 0 );
+        ALIGN_DBG("ok%c", '!');
+    } else {
+        TableReader_Whack(obj);
+        ALIGN_DBGERRP("table", rc, 0);
     }
     return rc;
 }
 
-
-void CC TableReader_Whack( const TableReader* cself )
+void CC TableReader_Whack(const TableReader* cself)
 {
-    if ( cself != NULL )
-    {
-        VCursorRelease( cself->curs );
-        free( ( TableReader* ) cself );
+    if( cself != NULL ) {
+        VCursorRelease(cself->curs);
+        VTableRelease(cself->tbl);
+        free((TableReader*)cself);
     }
 }
 
-/*
-rc_t CC TableReader_OpenCursor( const TableReader* cself )
-{
-    TableReader * tr = ( TableReader * )cself;
-    VCursor * curs = ( VCursor * )tr->curs;
-    rc_t rc = VCursorOpen( curs );
-    tr->cursor_open = ( rc == 0 );
-    return rc;
-}
-*/
-
-rc_t CC TableReader_ReadRow( const TableReader* cself, int64_t rowid )
+rc_t CC TableReader_ReadRow(const TableReader* cself, int64_t rowid)
 {
     rc_t rc = 0;
     TableReaderColumn* c = NULL;
 
-    if ( cself == NULL )
-    {
+    if( cself == NULL ) {
         rc = RC(rcAlign, rcType, rcOpening, rcSelf, rcNull);
-    }
-    else if ( cself->curr != rowid )
-    {
-/*
-        if ( !cself->cursor_open )
-            rc = TableReader_OpenCursor( cself );
-*/
-        if ( rc == 0 )
-        {
-            rc = VCursorCloseRow( cself->curs );
-            if ( rc == 0 )
-            {
-                rc = VCursorSetRowId( cself->curs, rowid );
-                if ( rc == 0 )
-                {
-                    rc = VCursorOpenRow( cself->curs );
-                    if ( rc == 0 )
-                    {
-                        uint32_t boff = 0;
-                        c = ( TableReaderColumn* )( cself->cols );
-                        while ( c->name != NULL )
-                        {
-                            if ( c->idx != 0 )
-                            {
-                                /* TBD - FIX ME
-                                   this can be dangerous, since VCursorCellData
-                                   can cause cache flushes, invalidating previous
-                                   reads. THESE MUST BE FETCHED UPON DEMAND, NOT
-                                   PREFETCHED!!
-                                */
-                                rc = VCursorCellData( cself->curs, c->idx, NULL, (const void**)&c->base.var, &boff, &c->len );
-                                if ( rc != 0 )
-                                {
-                                    if ( c->flags & ercol_Optional )
-                                        rc = 0;
-                                    c->base.var = NULL;
-                                    c->len = 0;
-                                }
-                                else if ( boff != 0 )
-                                {
-                                    rc = RC( rcAlign, rcType, rcReading, rcData, rcUnsupported );
-                                }
-                            }
-                            c++;
-                        }
+    } else if( cself->curr != rowid &&
+               (rc = VCursorCloseRow(cself->curs)) == 0 &&
+               (rc = VCursorSetRowId(cself->curs, rowid)) == 0 &&
+               (rc = VCursorOpenRow(cself->curs)) == 0 ) {
+        uint32_t boff = 0;
+        c = (TableReaderColumn*)(cself->cols);
+        while(c->name != NULL) {
+            if (c->idx != 0) {
+                rc = VCursorCellData(cself->curs, c->idx, NULL, (const void**)&c->base, &boff, &c->len);
+                if (rc) {
+                    if (c->flags & ercol_Optional) {
+                        rc = 0;
                     }
                 }
+                else if (boff != 0) {
+                    rc = RC(rcAlign, rcType, rcReading, rcData, rcUnsupported);
+                }
             }
+            c++;
         }
     }
-
-    if ( rc != 0 )
-    {
-        ALIGN_DBGERRP( "column %s row %ld", rc, c ? c->name : "<none>", rowid );
-    }
-    else
-    {
-        ( ( TableReader* )cself )->curr = rowid;
+    if( rc != 0 ) {
+        ALIGN_DBGERRP("column %s row %ld", rc, c ? c->name : "<none>", rowid);
+    } else {
+        ((TableReader*)cself)->curr = rowid;
     }
     return rc;
 }
 
-
-rc_t CC TableReader_IdRange( const TableReader* cself, int64_t* first, uint64_t* count )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcRetrieving, rcSelf, rcNull );
-    }
-    else
-    {
-/*
-        if ( !cself->cursor_open )
-            rc = TableReader_OpenCursor( cself );
-        if ( rc == 0 )
-*/
-            rc = VCursorIdRange( cself->curs, 0, first, count );
-    }
-    return rc;
-}
-
-
-rc_t CC TableReader_OpenIndex( const TableReader* cself, const char* name, const KIndex** idx )
-{
-    rc_t rc = 0;
-
-    if ( cself == NULL || name == NULL || idx == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcNull );
-    }
-    else
-    {
-/*
-        if ( !cself->cursor_open )
-            rc = TableReader_OpenCursor( cself );
-        if ( rc == 0 )
-        {
-*/
-            const VTable* tbl;
-            rc = VCursorOpenParentRead( cself->curs, &tbl );
-            if ( rc == 0 )
-            {
-                rc = VTableOpenIndexRead( tbl, idx, name );
-                VTableRelease( tbl );
-            }
-/*        } */
-    }
-    return rc;
-}
-
-
-rc_t CC TableReader_PageIdRange( const TableReader *cself, int64_t rowid,
-                                 int64_t *pfirst, int64_t *plast )
+rc_t CC TableReader_IdRange(const TableReader* cself, int64_t* first, uint64_t* count)
 {
-    rc_t rc = 0;
-    
-    if ( cself == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcOpening, rcSelf, rcNull );
-    }
-    else
-    {
-/*
-        if ( !cself->cursor_open )
-            rc = TableReader_OpenCursor( cself );
-        if ( rc == 0 )
-        {
-*/
-            if ( pfirst != NULL || plast != NULL )
-            {
-                int64_t first = INT64_MAX;
-                int64_t last = INT64_MIN;
-                unsigned i;
-                
-                for ( i = 0; cself->cols[ i ].name != NULL; ++i )
-                {
-                    if ( cself->cols[i].idx != 0 )
-                    {
-                        int64_t tfirst;
-                        int64_t tlast;
-                        
-                        rc = VCursorPageIdRange( cself->curs, cself->cols[ i ].idx, rowid, &tfirst, &tlast );
-                        if ( rc == 0 )
-                        {
-                            if ( first > tfirst ) { first = tfirst; }
-                            if ( last < tlast ) { last = tlast; }
-                        }
-                    }
-                }
-                if ( pfirst != NULL ) { *pfirst = first; }
-                if ( plast  != NULL ) { *plast  = last; }
-            }
-/*        } */
-    }
-    return rc;
+    return VCursorIdRange(cself->curs, 0, first, count);
 }
diff --git a/libs/align/reader-cmn.h b/libs/align/reader-cmn.h
index 3310999..840d090 100644
--- a/libs/align/reader-cmn.h
+++ b/libs/align/reader-cmn.h
@@ -26,8 +26,8 @@
 #ifndef _h_align_reader_cmn_
 #define _h_align_reader_cmn_
 
-#include <insdc/insdc.h>
-#include <insdc/sra.h>
+#include <vdb/manager.h>
+#include <vdb/database.h>
 
 enum TableReaderColumn_Array {
     ercol_Optional = 0x01,
@@ -38,24 +38,7 @@ enum TableReaderColumn_Array {
 typedef struct TableReaderColumn_struct {
     uint32_t idx;
     const char* name;
-    union {
-        const void* var;
-        const char* str;
-        const bool* buul;
-        const uint8_t* u8;
-        const int16_t* i16;
-        const uint16_t* u16;
-        const int32_t* i32;
-        const uint32_t* u32;
-        const int64_t* i64;
-        const uint64_t* u64;
-        const INSDC_coord_one* coord1;
-        const INSDC_coord_zero* coord0;
-        const INSDC_coord_len* coord_len;
-        const INSDC_coord_val* coord_val;
-        const INSDC_SRA_xread_type* read_type;
-        const INSDC_SRA_read_filter* read_filter;
-    } base;
+    const void* base;
     uint32_t len;
     uint32_t flags;
 } TableReaderColumn;
@@ -64,18 +47,10 @@ typedef struct TableReader TableReader;
 
 rc_t CC TableReader_Make(const TableReader** cself, const VTable* table, TableReaderColumn* cols, size_t cache);
 
-rc_t CC TableReader_MakeCursor(const TableReader** cself, const VCursor* cursor, TableReaderColumn* cols );
-
-rc_t CC TableReader_OpenCursor( const TableReader* cself );
-
 void CC TableReader_Whack(const TableReader* cself);
 
 rc_t CC TableReader_ReadRow(const TableReader* cself, int64_t rowid);
 
 rc_t CC TableReader_IdRange(const TableReader* cself, int64_t* first, uint64_t* count);
 
-rc_t CC TableReader_OpenIndex(const TableReader* cself, const char* name, const KIndex** idx);
-
-rc_t CC TableReader_PageIdRange(const TableReader *cself, int64_t rowid, int64_t *first, int64_t *last);
-
 #endif /* _h_align_reader_cmn_ */
diff --git a/libs/align/reader-refseq.c b/libs/align/reader-refseq.c
index 0a29c53..bb72a4b 100644
--- a/libs/align/reader-refseq.c
+++ b/libs/align/reader-refseq.c
@@ -26,17 +26,14 @@
 #include <align/extern.h>
 
 #include <klib/rc.h>
-#include <klib/text.h>
 #include <insdc/insdc.h>
 #include <vdb/manager.h>
 #include <vdb/table.h>
-#include <vdb/cursor.h>
 #include <align/reader-refseq.h>
 #include <os-native.h>
 #include <sysalloc.h>
 
 #include "reader-cmn.h"
-#include "reference-cmn.h"
 #include "debug.h"
 
 #include <stdlib.h>
@@ -49,11 +46,12 @@
 static const TableReaderColumn TableReaderRefSeq_cols[] =
 {
     /* order important, see code below! */
-    {0, "(INSDC:dna:text)READ", {NULL}, 0, 0},
-    {0, "(INSDC:4na:bin)READ", {NULL}, 0, ercol_Skip},
-    {0, "QUALITY", {NULL}, 0, ercol_Skip | ercol_Optional},
-    {0, "SEQ_LEN", {NULL}, 0, 0},
-    {0, NULL, {NULL}, 0, 0}
+    {0, "(INSDC:dna:text)READ", NULL, 0, 0},
+    {0, "(INSDC:4na:bin)READ", NULL, 0, ercol_Skip},
+    {0, "QUALITY", NULL, 0, ercol_Skip | ercol_Optional},
+    {0, "SEQ_START", NULL, 0, 0},
+    {0, "SEQ_LEN", NULL, 0, 0},
+    {0, NULL, NULL, 0, 0}
 };
 
 struct TableReaderRefSeq {
@@ -61,12 +59,13 @@ struct TableReaderRefSeq {
     TableReaderColumn cols[sizeof(TableReaderRefSeq_cols)/sizeof(TableReaderRefSeq_cols[0])];
     char seq_id[256];
     uint32_t max_seq_len;
-    INSDC_coord_len total_seq_len;
+    uint64_t total_seq_len;
     bool circular;
     bool has_md5;
     uint8_t md5[16];
-    const TableReaderColumn* read;
-    const TableReaderColumn* seq_len;
+    const char** read;
+    const INSDC_coord_one** seq_start;
+    const INSDC_coord_len** seq_len;
 };
 
 LIB_EXPORT rc_t CC TableReaderRefSeq_MakeTable(const TableReaderRefSeq** cself, const VDBManager* vmgr,
@@ -83,34 +82,28 @@ LIB_EXPORT rc_t CC TableReaderRefSeq_MakeTable(const TableReaderRefSeq** cself,
         const TableReader* tmp;
         TableReaderColumn static_cols[] = {
             /* order important, see code below! */
-            {0, "MAX_SEQ_LEN", {NULL}, 0, 0},
-            {0, "SEQ_ID", {NULL}, 0, 0},
-            {0, "TOTAL_SEQ_LEN", {NULL}, 0, 0},
-            {0, "CIRCULAR", {NULL}, 0, 0},
-            {0, "MD5", {NULL}, 0, ercol_Optional},
-            {0, NULL, {NULL}, 0, 0}
+            {0, "MAX_SEQ_LEN", NULL, 0, 0},
+            {0, "SEQ_ID", NULL, 0, 0},
+            {0, "TOTAL_SEQ_LEN", NULL, 0, 0},
+            {0, "CIRCULAR", NULL, 0, 0},
+            {0, "MD5", NULL, 0, ercol_Optional},
+            {0, NULL, NULL, 0, 0}
         };
         if( (rc = TableReader_Make(&tmp, table, static_cols, 0)) == 0 ) {
             if( (rc = TableReader_ReadRow(tmp, 1)) == 0 ) {
-                self->max_seq_len = static_cols[0].base.u32[0];
-                self->total_seq_len = static_cols[2].base.u64[0];
-                if( self->total_seq_len != static_cols[2].base.u64[0] ) {
-                    rc = RC(rcAlign, rcType, rcConstructing, rcData, rcOutofrange);
-                }
-                if( static_cols[1].base.var != NULL ) {
-                    if ( static_cols[ 1 ].len > sizeof( self->seq_id ) - 1 )
-                    {
-                        rc = RC( rcAlign, rcType, rcConstructing, rcBuffer, rcInsufficient );
-                    }
-                    else
-                    {
-                        string_copy( self->seq_id, ( sizeof self->seq_id ) -  1, static_cols[1].base.str, static_cols[1].len );
-                        self->seq_id[ static_cols[ 1 ].len ] = '\0';
+                self->max_seq_len = *((uint32_t*)(static_cols[0].base));
+                self->total_seq_len = *((uint64_t*)(static_cols[2].base));
+                if( static_cols[1].base != NULL ) {
+                    if( static_cols[1].len > sizeof(self->seq_id) - 1 ) {
+                        rc = RC(rcAlign, rcType, rcConstructing, rcBuffer, rcInsufficient);
+                    } else {
+                        strncpy(self->seq_id, static_cols[1].base, static_cols[1].len);
+                        self->seq_id[static_cols[1].len] = '\0';
                     }
                 }
-                self->circular = static_cols[3].base.buul[0];
-                if( static_cols[4].base.var != NULL ) {
-                    memcpy(self->md5, static_cols[4].base.var, sizeof(self->md5));
+                self->circular = *((bool*)(static_cols[3].base));
+                if( static_cols[4].base != NULL ) {
+                    memcpy(self->md5, static_cols[4].base, sizeof(self->md5));
                     self->has_md5 = true;
                 }
             }
@@ -119,18 +112,19 @@ LIB_EXPORT rc_t CC TableReaderRefSeq_MakeTable(const TableReaderRefSeq** cself,
 
         memcpy(self->cols, TableReaderRefSeq_cols, sizeof(TableReaderRefSeq_cols));
         if( options & errefseq_4NA) {
-            self->cols[0].flags |= ercol_Skip;
-            self->cols[1].flags &= ~ercol_Skip;
-            self->read = &self->cols[1];
+            self->cols[0].flags = ercol_Skip;
+            self->cols[1].flags = 0;
+            self->read = (const char**)&(self->cols[1].base);
         } else {
-            self->read = &self->cols[0];
+            self->read = (const char**)&(self->cols[0].base);
         }
-        self->seq_len = &self->cols[3];
+        self->seq_start = (const INSDC_coord_one**)&(self->cols[3].base);
+        self->seq_len = (const INSDC_coord_len**)&(self->cols[4].base);
         rc = TableReader_Make(&self->base, table, self->cols, cache);
     }
     if( rc == 0 ) {
         *cself = self;
-        /* ALIGN_DBG("table 0x%p opened 0x%p", table, self); */
+        ALIGN_DBG("table 0x%p opened 0x%p", table, self);
     } else {
         TableReaderRefSeq_Whack(self);
         ALIGN_DBGERRP("table for 0x%p", rc, table);
@@ -151,7 +145,7 @@ LIB_EXPORT rc_t CC TableReaderRefSeq_MakePath(const TableReaderRefSeq** cself, c
         VTableRelease(tbl);
     }
     if( rc == 0 ) {
-        /* ALIGN_DBG("table %s opened 0x%p", path, *cself); */
+        ALIGN_DBG("table %s opened 0x%p", path, *cself);
     } else {
         ALIGN_DBGERRP("table for %s", rc, path);
     }
@@ -161,7 +155,7 @@ LIB_EXPORT rc_t CC TableReaderRefSeq_MakePath(const TableReaderRefSeq** cself, c
 LIB_EXPORT void CC TableReaderRefSeq_Whack(const TableReaderRefSeq* cself)
 {
     if( cself != NULL ) {
-        /* ALIGN_DBG("table 0x%p closed", cself); */
+        ALIGN_DBG("table 0x%p closed", cself);
         TableReader_Whack(cself->base);
         free((TableReaderRefSeq*)cself);
     }
@@ -174,13 +168,13 @@ LIB_EXPORT rc_t CC TableReaderRefSeq_SeqId(const TableReaderRefSeq* cself, const
         rc = RC(rcAlign, rcType, rcReading, rcParam, rcNull);
     } else {
         *id = cself->seq_id;
-        *id_sz = string_size(cself->seq_id);
+        *id_sz = strlen(cself->seq_id);
     }
     ALIGN_DBGERR(rc);
     return rc;
 }
 
-LIB_EXPORT rc_t CC TableReaderRefSeq_SeqLength(const TableReaderRefSeq* cself, INSDC_coord_len* len)
+LIB_EXPORT rc_t CC TableReaderRefSeq_SeqLength(const TableReaderRefSeq* cself, uint64_t* len)
 {
     rc_t rc = 0;
     if( cself == NULL || len == NULL ) {
@@ -216,8 +210,8 @@ LIB_EXPORT rc_t CC TableReaderRefSeq_MD5(const TableReaderRefSeq* cself, const u
     return rc;
 }
 
-LIB_EXPORT rc_t CC TableReaderRefSeq_Read(const TableReaderRefSeq* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                                          uint8_t* buffer, INSDC_coord_len* written)
+LIB_EXPORT rc_t CC TableReaderRefSeq_Read(const TableReaderRefSeq* cself, int64_t offset, INSDC_coord_len len,
+                                          INSDC_dna_text* buffer, INSDC_coord_len* written)
 {
     rc_t rc = 0;
 
@@ -225,24 +219,33 @@ LIB_EXPORT rc_t CC TableReaderRefSeq_Read(const TableReaderRefSeq* cself, INSDC_
         rc = RC(rcAlign, rcType, rcReading, rcParam, rcNull);
     } else if( len == 0 ) {
         *written = 0;
-    } else if( (rc = ReferenceSeq_ReOffset(cself->circular, cself->total_seq_len, &offset)) == 0 ) {
+    } else if( !cself->circular && (offset < 0 || offset >= cself->total_seq_len) ) {
+        rc = RC(rcAlign, rcType, rcReading, rcParam, rcOutofrange);
+    } else {
         INSDC_coord_len q = 0;
+
+        if( offset < 0 ) {
+            /* revert offset to positive */
+            offset = cself->total_seq_len - ((-offset) % cself->total_seq_len);
+        } else if( offset > cself->total_seq_len ) {
+            offset %= cself->total_seq_len;
+        }
         *written = 0;
         do {
             int64_t rowid = offset / cself->max_seq_len + 1;
             INSDC_coord_zero s = offset % cself->max_seq_len;
             if( (rc = TableReader_ReadRow(cself->base, rowid)) == 0 ) {
-                q = cself->seq_len->base.coord_len[0] - s;
+                q = **(cself->seq_len) - s;
                 if( q > len ) {
                     q = len;
                 }
-                memcpy(&buffer[*written], cself->read->base.str + s, q);
+                memcpy(&buffer[*written], *(cself->read) + s, q);
                 *written += q;
                 offset += q;
                 len -= q;
             }
             /* SEQ_LEN < MAX_SEQ_LEN is last row unless it is CIRCULAR */
-            if( cself->seq_len->base.coord_len[0] < cself->max_seq_len ) {
+            if( (**(cself->seq_len) < cself->max_seq_len) ) {
                 if( !cself->circular ) {
                     break;
                 }
diff --git a/libs/align/ref_iterator.c b/libs/align/ref_iterator.c
deleted file mode 100644
index 8d91afc..0000000
--- a/libs/align/ref_iterator.c
+++ /dev/null
@@ -1,866 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <align/extern.h>
-
-#include <klib/rc.h>
-#include <klib/container.h>
-#include <klib/refcount.h>
-#include <klib/sort.h>
-#include <klib/text.h>
-#include <klib/out.h>
-#include <insdc/insdc.h>
-#include <align/reference.h>
-#include <align/iterator.h>
-#include <align/manager.h>
-#include <sysalloc.h>
-
-#include "debug.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-#define COL_READ "(INSDC:4na:bin)READ"
-#define COL_HAS_MISMATCH "(bool)HAS_MISMATCH"
-#define COL_HAS_REF_OFFSET "(bool)HAS_REF_OFFSET"
-#define COL_REF_OFFSET "(I32)REF_OFFSET"
-#define COL_READ_GROUP "(ascii)SEQ_SPOT_GROUP"
-
-
-typedef struct spot_group
-{
-    DLNode n;                       /* to have it in a DLList */
-    char * name;                    /* the name of the read-group, can be NULL */
-    size_t len;                     /* the length of the name */
-    DLList records;                 /* has list of PlacementRecords... */
-} spot_group;
-
-
-static rc_t make_spot_group( spot_group ** sg, DLList * list, const char * name, size_t len )
-{
-    rc_t rc = 0;
-    *sg = calloc( 1, sizeof ** sg );
-    if ( *sg == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        if ( len > 0 && name != NULL )
-        {
-            (*sg)->name = string_dup( name, len );
-            if ( (*sg)->name != NULL )
-            {
-                (*sg)->len = len;
-            }
-        }
-        /* if name is NULL, the spot-group is initialized with 0 via calloc() */
-        DLListInit( &( (*sg)->records ) );
-        DLListPushTail ( list, ( DLNode * )(*sg) );
-    }
-    return rc;
-}
-
-
-static void CC whack_the_placement_record( DLNode *n, void *data )
-{    PlacementRecordWhack ( ( PlacementRecord * )n );   }
-
-static void free_spot_group( spot_group *sg )
-{
-    if ( sg->name != NULL ) free( sg->name );
-    DLListWhack ( &sg->records, whack_the_placement_record, NULL );
-    free( sg );
-}
-
-
-static void CC whack_the_spot_group( DLNode *n, void *data )
-{    free_spot_group ( ( spot_group * )n );   }
-
-static void clear_spot_group_list( DLList * list )
-{
-    DLListWhack ( list, whack_the_spot_group, NULL );
-}
-
-
-typedef struct find_spot_group_cb_ctx
-{
-    const char * name;
-    size_t len;
-    spot_group *res;
-} find_spot_group_cb_ctx;
-
-
-static bool CC find_spot_group_callback( DLNode *n, void *data )
-{
-    find_spot_group_cb_ctx *ctx = ( find_spot_group_cb_ctx * )data;
-    spot_group * sg = ( spot_group * ) n;
-    bool res = false;
-
-    if ( ctx->name == NULL || sg->name == NULL )
-    {
-        res = true;
-    }
-    else
-    {
-        res = ( string_cmp ( sg->name, sg->len, 
-                             ctx->name, ctx->len, 
-                             ( sg->len < ctx->len ) ? ctx->len : sg->len ) == 0 );
-    }
-
-    if ( res )
-    {
-        ctx->res = sg;
-    }
-    return res;
-}
-
-static spot_group * find_spot_group( DLList * list, const char * name, size_t len )
-{
-    find_spot_group_cb_ctx ctx;
-    ctx.res = NULL;
-    ctx.name = name;
-    ctx.len = len;
-    DLListDoUntil ( list, false, find_spot_group_callback, &ctx );
-    return ctx.res;
-}
-
-static rc_t add_to_spot_groups( DLList * list, const PlacementRecord *rec )
-{
-    rc_t rc = 0;
-    spot_group * sg = find_spot_group( list, rec->spot_group, rec->spot_group_len );
-    if ( sg == NULL )
-    {
-        rc = make_spot_group( &sg, list, rec->spot_group, rec->spot_group_len );
-    }
-    if ( rc == 0 )
-    {
-        DLListPushTail ( &sg->records, ( DLNode * )(rec) );
-    }
-    return rc;
-}
-
-
-static uint32_t remove_invalid_records( const struct ReferenceObj * const refobj,
-                                        DLList * list, INSDC_coord_zero pos )
-{
-    uint32_t res = 0;
-    spot_group * sg = ( spot_group * )DLListHead( list );
-    while ( sg != NULL )
-    {
-        spot_group *nxt = ( spot_group * )DLNodeNext( ( DLNode * )sg );
-        PlacementRecord *rec = ( PlacementRecord * )DLListHead( &sg->records );
-        while ( rec != NULL )
-        {
-            PlacementRecord *nxt_rec = ( PlacementRecord * )DLNodeNext( ( DLNode * )rec );
-            INSDC_coord_zero end_pos = ( rec->pos + rec->len );
-            bool remove = ( end_pos <= pos );
-            if ( !remove )
-            {
-                AlignmentIterator * al_iter = PlacementRecordCast ( rec, placementRecordExtension0 );
-                int32_t state = AlignmentIteratorState ( al_iter, NULL );
-                remove = ( ( state & align_iter_invalid ) == align_iter_invalid );
-            }
-            if ( remove )
-            {
-                DLListUnlink ( &sg->records, ( DLNode * )rec );
-                PlacementRecordWhack ( rec );
-            }
-            else
-            {
-                res++;
-            }
-            rec = nxt_rec;
-        }
-        sg = nxt;
-    }
-    return res;
-}
-
-
-static void inc_alignment_iterators( DLList * list, INSDC_coord_zero pos )
-{
-    spot_group * sg = ( spot_group * )DLListHead( list );
-    while ( sg != NULL )
-    {
-        spot_group *nxt = ( spot_group * )DLNodeNext( ( DLNode * )sg );
-        PlacementRecord *rec = ( PlacementRecord * )DLListHead( &sg->records );
-        while ( rec != NULL )
-        {
-            PlacementRecord *nxt_rec = ( PlacementRecord * )DLNodeNext( ( DLNode * )rec );
-            AlignmentIterator * al_iter = PlacementRecordCast ( rec, placementRecordExtension0 );
-            if ( rec->pos <= pos && al_iter != NULL )
-            {
-                AlignmentIteratorNext ( al_iter );
-            }
-            rec = nxt_rec;
-        }
-        sg = nxt;
-    }
-}
-
-/* ======================================================================================== */
-
-
-struct ReferenceIterator
-{
-    KRefcount refcount;
-    struct AlignMgr const *amgr;
-
-    DLList spot_groups;                     /* has a list of spot-groups... */
-
-    int32_t min_mapq;                       /* has a minimum mapq-value... */
-    PlacementRecordExtendFuncs ext_func;    /* has a struct with record-extension-functions from client*/
-    PlacementRecordExtendFuncs int_func;    /* has a struct with record-extension-functions for itself*/
-
-    uint32_t depth;                         /* how many records are in the list */
-    INSDC_coord_zero current_pos;           /* what is the current ref-position on the current ref. */
-    INSDC_coord_zero last_pos;              /* what is the current ref-position on the current ref. */
-    INSDC_coord_zero nxt_avail_pos;         /* what is the next available ref-position on the current ref. */
-    spot_group *current_spot_group;         /* what is the next spot-group to be handled */
-    PlacementRecord *current_rec;           /* the current-record at the current position */
-    bool need_init;                         /* do we need to init for the first next()-call */
-    PlacementSetIterator * pl_set_iter;     /* holds a list of placement-iterators */
-    struct ReferenceObj const * refobj;     /* cached result of ReferenceIteratorNextReference(...) */
-};
-
-
-LIB_EXPORT void CC RefIterRecordDestroy ( void *obj, void *data )
-{
-    /* nothing to do, because there are no sub-allocations etc. ... */
-}
-
-
-LIB_EXPORT rc_t CC RefIterRecordSize ( struct VCursor const *curs,
-    int64_t row_id, size_t * size, void *data )
-{
-    /* discover the size of the ref-iter-part to be allocated... */
-    return AlignIteratorRecordSize ( curs, row_id, size, data );
-}
-
-
-LIB_EXPORT rc_t CC RefIterRecordPopulate ( void *obj,
-    const PlacementRecord *placement, struct VCursor const *curs,
-    INSDC_coord_zero ref_window_start, INSDC_coord_len ref_window_len, void *data )
-{
-    return AlignIteratorRecordPopulate ( obj, placement, curs, ref_window_start, ref_window_len, data );
-}
-
-
-static void CC RefIterDestroyRecPart( void *obj, void *data )
-{
-    AlignmentIterator *iter = ( AlignmentIterator * )obj;
-    if ( iter != NULL )
-        AlignmentIteratorRelease( iter );
-}
-
-LIB_EXPORT rc_t CC AlignMgrMakeReferenceIterator ( struct AlignMgr const *self,
-    ReferenceIterator **iter, const PlacementRecordExtendFuncs *ext_1, int32_t min_mapq )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcSelf, rcNull );
-    else
-    {
-        if ( iter == NULL  )
-            rc = RC( rcAlign, rcIterator, rcConstructing, rcParam, rcNull );
-        else
-        {
-            ReferenceIterator * refi = calloc( sizeof * refi, 1 );
-            if ( refi == NULL )
-                rc = RC( rcAlign, rcIterator, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                KRefcountInit( &refi->refcount, 1, "ReferenceIterator", "Make", "align" );
-                refi->min_mapq = min_mapq;
-                if ( ext_1 != NULL )
-                {
-                    refi->ext_func.data = ext_1->data;
-                    refi->ext_func.destroy = ext_1->destroy;
-                    refi->ext_func.populate = ext_1->populate;
-                    refi->ext_func.alloc_size = ext_1->alloc_size;
-                    refi->ext_func.fixed_size = ext_1->fixed_size;
-                }
-
-                refi->int_func.data = ( void * )self;
-                refi->int_func.destroy = RefIterDestroyRecPart;
-                refi->int_func.populate = RefIterRecordPopulate;
-                refi->int_func.alloc_size = RefIterRecordSize; 
-
-                DLListInit( &(refi->spot_groups) );
-                rc = AlignMgrMakePlacementSetIterator ( self, &refi->pl_set_iter );
-                refi->need_init = true;
-            }
-
-            if ( rc == 0 )
-                rc = AlignMgrAddRef ( self );
-
-            if ( rc == 0 )
-            {
-                refi->amgr = self;
-                *iter = refi;
-            }
-            else
-                free( refi );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorAddRef ( const ReferenceIterator *self )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcAttaching, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountAdd( &self->refcount, "ReferenceIterator" ) != krefOkay )
-        {
-            rc = RC( rcAlign, rcIterator, rcAttaching, rcError, rcUnexpected );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorRelease ( const ReferenceIterator *cself )
-{
-    rc_t rc = 0;
-    if ( cself == NULL )
-        rc = RC( rcAlign, rcIterator, rcReleasing, rcSelf, rcNull );
-    else
-    {
-        if ( KRefcountDrop( &cself->refcount, "ReferenceIterator" ) == krefWhack )
-        {
-            ReferenceIterator * self = ( ReferenceIterator * ) cself;
-            /* we 'own' the records! - we have to destroy them, if some are left in here */
-            clear_spot_group_list( &self->spot_groups );
-            rc = PlacementSetIteratorRelease ( self->pl_set_iter );
-            AlignMgrRelease ( self->amgr );
-            free( self );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorAddPlacementIterator( ReferenceIterator *self,
-    PlacementIterator *pi )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcSelf, rcNull );
-    else
-    {
-        if ( pi == NULL )
-            rc = RC( rcAlign, rcIterator, rcConstructing, rcParam, rcNull );
-        else
-        {
-            rc = PlacementSetIteratorAddPlacementIterator ( self->pl_set_iter, pi );
-        }
-    }
-    return rc;
-}
-
-
-#define ALIGN_COL_COUNT 4
-
-static const char * align_cols[ ALIGN_COL_COUNT ] = 
-{ COL_REF_OFFSET, COL_HAS_REF_OFFSET, COL_HAS_MISMATCH, COL_READ };
-
-
-static rc_t prepare_align_cursor( struct VCursor const *align )
-{
-    rc_t rc = 0;
-    uint32_t i, throw_away_idx;
-
-    for ( i = 0; i < ALIGN_COL_COUNT && rc == 0; ++i ) {
-        rc =VCursorAddColumn ( align, &throw_away_idx, "%s", align_cols[ i ] );
-        if( GetRCState(rc) == rcExists ) {
-            rc = 0;
-        }
-    }
-        
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorAddPlacements( ReferenceIterator *self,
-     struct ReferenceObj const *ref_obj, INSDC_coord_zero ref_pos, INSDC_coord_len ref_len,
-     struct VCursor const *ref, struct VCursor const *align, align_id_src ids,
-     const char * spot_group )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcConstructing, rcSelf, rcNull );
-    else
-    {
-        if ( ref_obj == NULL )
-            rc = RC( rcAlign, rcIterator, rcConstructing, rcParam, rcNull );
-        else
-        {
-            if ( align != NULL )
-                rc = prepare_align_cursor( align );
-
-            if ( rc == 0 )
-            {
-                PlacementIterator *pi;
-
-                rc = ReferenceObj_MakePlacementIterator ( ref_obj, &pi, ref_pos, ref_len, self->min_mapq,
-                        ref, align, ids, &self->int_func, &self->ext_func, spot_group );
-                if ( rc == 0 )
-                {
-                    rc = PlacementSetIteratorAddPlacementIterator ( self->pl_set_iter, pi );
-                    if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-                }
-            }
-            /* if rc != 0 then ref_obj had NO AddRef inside  ReferenceObj_MakePlacementIterator() ! */
-            if ( rc == 0 )
-                ReferenceObj_Release( ref_obj );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t fill_recordlist( ReferenceIterator *self, INSDC_coord_zero pos )
-{
-    rc_t rc;
-    do
-    {
-        const PlacementRecord *rec;
-        /* from the placement-set-iterator into our list... */
-        rc = PlacementSetIteratorNextRecordAt ( self->pl_set_iter, pos, &rec );
-        if ( rc == 0 )
-        {
-            if ( rec->pos == pos )
-            {
-                self->depth++;
-                rc = add_to_spot_groups( &self->spot_groups, rec );
-            }
-            else
-                PlacementRecordWhack ( rec );
-        }
-    } while( rc == 0 );
-
-    if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorNextReference ( ReferenceIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len, struct ReferenceObj const ** refobj )
-{
-    rc_t rc = 0;
-
-    if ( refobj != NULL )
-        *refobj = NULL;
-
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        struct ReferenceObj const * robj;
-        rc = PlacementSetIteratorNextReference ( self->pl_set_iter, first_pos, len, &robj );
-        clear_spot_group_list( &self->spot_groups );
-        if ( rc == 0 )
-        {
-            /* cache the returned refobj in order to get to reference-bases later... */
-            self->refobj = robj;
-            self->need_init = true;
-        }
-        else
-        {
-            self->refobj = NULL;
-        }
-
-        if ( refobj != NULL )
-        {
-            *refobj = self->refobj;
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorNextWindow ( ReferenceIterator *self,
-    INSDC_coord_zero *first_pos, INSDC_coord_len *len )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        rc = PlacementSetIteratorNextWindow ( self->pl_set_iter, first_pos, len );
-        clear_spot_group_list( &self->spot_groups );
-        if ( rc == 0 )
-        {
-            self->need_init = true;
-            self->current_pos = *first_pos;
-            self->current_spot_group = NULL;
-            self->last_pos = self->current_pos + *len - 1;
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorNextSpotGroup ( ReferenceIterator *self,
-    const char ** name, size_t * len )
-{
-    rc_t rc = 0;
-
-    if ( self->current_spot_group == NULL )
-    {
-        self->current_spot_group = ( spot_group * )DLListHead( &self->spot_groups );
-        if ( self->current_spot_group == NULL )
-        {
-            rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-        }
-    }
-    else
-    {
-        spot_group *nxt  = ( spot_group * )DLNodeNext( ( DLNode * ) self->current_spot_group );
-        if ( nxt == NULL )
-        {
-            rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-        }
-        else
-        {
-            self->current_spot_group = nxt;
-        }
-    }
-    self->current_rec = NULL;
-
-    if ( rc == 0 && self->current_spot_group != NULL )
-    {
-        if ( name != NULL )
-        {
-            *name = self->current_spot_group->name;
-        }
-        if ( len != NULL )
-        {
-            *len = self->current_spot_group->len;
-        }
-    }
-    return rc;
-}
-
-
-/* iterates the PlacementSetIterator forward to reach self->current_pos on the reference */
-static rc_t first_ref_iter_nxt_pos( ReferenceIterator *self, bool skip_empty )
-{
-    rc_t rc;
-    bool loop;
-    self->need_init = false;
-    do
-    {
-        rc = PlacementSetIteratorNextAvailPos ( self->pl_set_iter, &self->nxt_avail_pos, NULL );
-        loop = ( rc == 0 );
-        if ( loop )
-        {
-            loop = ( self->nxt_avail_pos <= self->current_pos );
-            if ( loop )
-            {
-                rc = fill_recordlist( self, self->nxt_avail_pos );
-                self->depth = remove_invalid_records( self->refobj, &self->spot_groups, self->nxt_avail_pos - 1 );
-            }
-        }
-    } while ( loop );
-
-    if ( skip_empty && self->nxt_avail_pos > self->current_pos && self->depth == 0 )
-    {
-        self->current_pos = self->nxt_avail_pos;
-    }
-    self->depth = remove_invalid_records( self->refobj, &self->spot_groups, self->current_pos );
-
-    if ( GetRCState( rc ) == rcDone ) rc = 0;
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorNextPos ( ReferenceIterator *self, bool skip_empty )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        self->current_rec = NULL;
-        if ( self->need_init )
-        {
-            rc = first_ref_iter_nxt_pos( self, skip_empty );
-        }
-        else
-        {
-            /* increment the current position */
-            self->current_pos++;
-
-            if ( self->current_pos <= self->last_pos )
-            {
-                /* jump over gaps, if requested ... */
-                if ( self->depth == 0 && skip_empty )
-                {
-                    self->current_pos = self->nxt_avail_pos;
-                }
-
-                /* increment the internal alignment-iterator of every placement-record */
-                inc_alignment_iterators( &self->spot_groups, self->current_pos );
-
-                /* loop through the list to look if we have to remove records,
-                   that do end before this new position */
-                self->depth = remove_invalid_records( self->refobj, &self->spot_groups, self->current_pos );
-
-                rc = fill_recordlist( self, self->current_pos );
-                if ( rc == 0 )
-                {
-                    self->current_spot_group = NULL;
-                    /* set our sights to the next position... */
-                    rc = PlacementSetIteratorNextAvailPos ( self->pl_set_iter, &self->nxt_avail_pos, NULL );
-                    if ( GetRCState( rc ) == rcDone )
-                    {
-                        if ( self->depth > 0 )
-                        {
-                            rc = 0;
-                        }
-                        else if ( !skip_empty )
-                        {
-                            if ( self->current_pos <= self->last_pos ) rc = 0;
-                        }
-                    }
-                }
-            }
-            else
-            {
-                rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-                clear_spot_group_list( &self->spot_groups );
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorPosition ( const ReferenceIterator *self,
-    INSDC_coord_zero *pos, uint32_t * depth, INSDC_4na_bin * base )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        /* return position, many records our record-list, and the base at this position */
-        if ( pos != NULL )
-        {
-            *pos = self->current_pos;
-        }
-
-        if ( depth != NULL )
-        {
-            *depth = self->depth;
-        }
-
-        if ( base != NULL )
-        {
-            uint32_t written;
-            *base = 0;
-            /* problem! how to get the base if depth == 0 */
-            if ( self->current_rec != NULL )
-            {
-                rc = ReferenceObj_Read( self->current_rec->ref, self->current_pos, 1, base, &written );
-            }
-            else if ( self->refobj != NULL )
-            {
-                rc = ReferenceObj_Read( self->refobj, self->current_pos, 1, base, &written );
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorNextPlacement ( ReferenceIterator *self,
-    const PlacementRecord **rec )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-    {
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    }
-    else if ( rec == NULL )
-    {
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcParam, rcNull );
-    }
-    else
-    {
-        if ( self->current_spot_group == NULL )
-        {
-            rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-        }
-        else
-        {
-            if ( self->current_rec == NULL )
-            {
-                self->current_rec = ( PlacementRecord * )DLListHead( &self->current_spot_group->records );
-            }
-            else
-            {
-                self->current_rec = ( PlacementRecord * )DLNodeNext( ( DLNode * )self->current_rec );
-            }
-
-            if ( self->current_rec == NULL )
-            {
-                rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-            }
-            else
-            {
-                *rec = self->current_rec;
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceIteratorGetPlacement ( ReferenceIterator *self,
-    const PlacementRecord **rec )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-    {
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcSelf, rcNull );
-    }
-    else if ( rec == NULL )
-    {
-        rc = RC( rcAlign, rcIterator, rcAccessing, rcParam, rcNull );
-    }
-    else
-    {
-        if ( self->current_spot_group == NULL )
-        {
-            rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-        }
-        else
-        {
-            if ( self->current_rec != NULL )
-            {
-                /* remove the 'previous' current-rec! */
-                DLListPopHead ( &self->current_spot_group->records );
-                PlacementRecordWhack ( self->current_rec );
-                self->depth--;
-                self->current_rec = NULL;
-            }
-
-            self->current_rec = ( PlacementRecord * )DLListHead( &self->current_spot_group->records );
-            if ( self->current_rec == NULL )
-            {
-                rc = SILENT_RC( rcAlign, rcIterator, rcAccessing, rcOffset, rcDone );
-            }
-            else
-            {
-                *rec = self->current_rec;
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT int32_t CC ReferenceIteratorState ( const ReferenceIterator *self,
-    INSDC_coord_zero *seq_pos )
-{
-    int32_t res = align_iter_invalid;
-    if ( seq_pos != NULL )
-    {
-        *seq_pos = 0;
-    }
-    if ( self != NULL )
-    {
-        /* PlacementRecordCast returns NULL if self->current_rec is NULL */
-        AlignmentIterator * al_iter = PlacementRecordCast ( self->current_rec, placementRecordExtension0 );
-        if ( al_iter != NULL )
-            res = AlignmentIteratorState ( al_iter, seq_pos );
-    }
-    return res;
-}
-
-
-LIB_EXPORT uint32_t CC ReferenceIteratorBasesInserted ( const ReferenceIterator *self,
-    const INSDC_4na_bin **bases )
-{
-    uint32_t res = align_iter_invalid;
-    if ( bases != NULL )
-    {
-        *bases = NULL;
-    }
-    if ( self != NULL )
-    {
-        /* PlacementRecordCast returns NULL if self->current_rec is NULL */
-        AlignmentIterator * al_iter = PlacementRecordCast ( self->current_rec, placementRecordExtension0 );
-        if ( al_iter != NULL )
-            res = AlignmentIteratorBasesInserted( al_iter, bases );
-    }
-    return res;
-}
-
-
-LIB_EXPORT uint32_t CC ReferenceIteratorBasesDeleted ( const ReferenceIterator *self,
-    INSDC_coord_zero *pos, const INSDC_4na_bin **bases )
-{
-    uint32_t res = align_iter_invalid;
-    if ( bases != NULL )
-    {
-        *bases = NULL;
-    }
-    if ( self != NULL )
-    {
-        /* PlacementRecordCast returns NULL if self->current_rec is NULL */
-        AlignmentIterator * al_iter = PlacementRecordCast ( self->current_rec, placementRecordExtension0 );
-        if ( al_iter != NULL )
-        {
-            INSDC_coord_zero temp_pos;
-            res = AlignmentIteratorBasesDeleted( al_iter, &temp_pos );
-            if ( ( res & align_iter_invalid ) != align_iter_invalid )
-            {
-                if ( pos != NULL ) { *pos = temp_pos; }
-                /* where to get the reference-bases from ? PlacementRecord.ref ! */
-                if ( res > 0 && bases != NULL )
-                {
-                    uint8_t * buffer = malloc( res );
-                    if ( buffer != NULL )
-                    {
-                        INSDC_coord_len written;
-                        rc_t rc = ReferenceObj_Read( self->current_rec->ref, temp_pos, res, buffer, &written );
-                        if ( rc == 0 )
-                        {
-                            *bases = buffer;
-                        }
-                    }
-                }
-            }
-        }
-    }
-    return res;
-}
diff --git a/libs/align/reference-cmn.c b/libs/align/reference-cmn.c
deleted file mode 100644
index 59e7c3d..0000000
--- a/libs/align/reference-cmn.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-#include <align/extern.h>
-
-#include <klib/rc.h>
-#include <insdc/insdc.h>
-
-#include "reference-cmn.h"
-#include <sysalloc.h>
-
-rc_t CC ReferenceSeq_ReOffset(bool circular, INSDC_coord_len seq_len, INSDC_coord_zero* offset)
-{
-    if( !circular && (*offset < 0 || *offset >= seq_len) ) {
-        return RC(rcAlign, rcType, rcReading, rcOffset, rcOutofrange);
-    } else if( *offset < 0 ) {
-        *offset = seq_len - ((-(*offset)) % seq_len);
-    } else if( circular && *offset > seq_len ) {
-        *offset %= seq_len;
-    }
-    return 0;
-}
diff --git a/libs/align/reference-cmn.h b/libs/align/reference-cmn.h
deleted file mode 100644
index 76fac49..0000000
--- a/libs/align/reference-cmn.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was readten as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-#ifndef _h_align_reference_cmn_
-#define _h_align_reference_cmn_
-
-#include <klib/defs.h>
-
-/* Validates and adjusts offset for a RefSeq based on its attributes
- * circular [IN]
- * seq_len [IN]
- * offset [IN,OUT] always be >= 0 upon return
- */
-rc_t CC ReferenceSeq_ReOffset(bool circular, INSDC_coord_len seq_len, INSDC_coord_zero* offset);
-
-#endif /* _h_align_reference_cmn_ */
diff --git a/libs/align/reference.c b/libs/align/reference.c
deleted file mode 100644
index 553652b..0000000
--- a/libs/align/reference.c
+++ /dev/null
@@ -1,1933 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was readten as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <align/extern.h>
-
-#include <klib/rc.h>
-#include <klib/container.h>
-#include <klib/refcount.h>
-#include <klib/vector.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <insdc/insdc.h>
-#include <vdb/manager.h>
-#include <vdb/database.h>
-#include <vdb/cursor.h>
-#include <vdb/table.h>
-#include <vdb/vdb-priv.h>
-#include <align/iterator.h>
-#include <align/reference.h>
-#include <align/refseq-mgr.h>
-#include <os-native.h>
-#include <sysalloc.h>
-
-#include "reader-cmn.h"
-#include "reference-cmn.h"
-#include "debug.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#include <assert.h>
-
-/* This is a temporary define, used to test code to deal with
-   circular references and new means of tracking window end */
-
-enum EReferenceList_ColNames
-{
-    ereflst_cn_READ_dna,
-    ereflst_cn_READ_4na,
-    ereflst_cn_SEQ_LEN,
-    ereflst_cn_PRIMARY_ALIGNMENT_IDS,
-    ereflst_cn_SECONDARY_ALIGNMENT_IDS,
-    ereflst_cn_EVIDENCE_INTERVAL_IDS,
-    ereflst_cn_OVERLAP_REF_POS,
-    ereflst_cn_OVERLAP_REF_LEN
-};
-
-const TableReaderColumn ReferenceList_cols[] =
-{
-    { 0, "(INSDC:dna:text)READ",    { NULL }, 0, 0 },
-    { 0, "(INSDC:4na:bin)READ",     { NULL }, 0, ercol_Skip },
-    { 0, "SEQ_LEN",                 { NULL }, 0, 0 },
-    { 0, "PRIMARY_ALIGNMENT_IDS",   { NULL }, 0, ercol_Skip },
-    { 0, "SECONDARY_ALIGNMENT_IDS", { NULL }, 0, ercol_Skip },
-    { 0, "EVIDENCE_INTERVAL_IDS",   { NULL }, 0, ercol_Skip | ercol_Optional },
-    { 0, "OVERLAP_REF_POS",         { NULL }, 0, ercol_Optional },
-    { 0, "OVERLAP_REF_LEN",         { NULL }, 0, ercol_Optional },
-    { 0, NULL,                      { NULL }, 0, 0 }
-};
-
-enum EPlacementIterator_ColNames
-{
-    eplacementiter_cn_REF_POS,
-    eplacementiter_cn_REF_LEN,
-    eplacementiter_cn_MAPQ,
-    eplacementiter_cn_READ_GROUP
-};
-
-const TableReaderColumn PlacementIterator_cols[] =
-{
-    { 0, "REF_POS",     { NULL }, 0, 0 },
-    { 0, "REF_LEN",     { NULL }, 0, 0 },
-    { 0, "MAPQ",        { NULL }, 0, 0 },
-    { 0, "SPOT_GROUP",  { NULL }, 0, 0 },
-    { 0, NULL,          { NULL }, 0, 0 }
-};
-
-struct ReferenceList
-{
-    KRefcount refcount;
-    const RefSeqMgr* refseqmgr;
-    const VCursor* cursor;
-    BSTree name_tree;
-    BSTree seqid_tree;
-    uint32_t options;
-    size_t cache;
-    uint32_t max_seq_len;
-    uint32_t nodes_qty;
-    uint32_t nodes_max_qty;
-    const TableReader* reader;
-    TableReaderColumn reader_cols[ sizeof( ReferenceList_cols ) / sizeof( ReferenceList_cols[ 0 ] ) ];
-    const TableReader* iter;
-    TableReaderColumn iter_cols[ sizeof( PlacementIterator_cols ) / sizeof( PlacementIterator_cols[ 0 ] ) ];
-    /* last are children using realloc!! */
-    ReferenceObj* nodes[ 2 ];
-};
-
-struct ReferenceObj
-{
-    /* we use this in 2 lists so we need to adjust results of Find, etc calls for name tree!! */
-    BSTNode by_seqid; /* primary key */
-    BSTNode by_name; /* struct addr will be by_name[-1]; */
-    ReferenceList* mgr;
-    uint32_t id;
-    uint32_t bin;
-    char* name;
-    char* seqid;
-    bool circular;
-    bool read_present;
-    int64_t start_rowid;
-    int64_t end_rowid;
-    INSDC_coord_len seq_len;
-};
-
-
-static int CC ReferenceObj_CmpSeqId( const void *item, const BSTNode *n )
-{
-    return strcasecmp( ( const char* )item, ( ( const ReferenceObj* )n )->seqid );
-}
-
-
-static int CC ReferenceObj_SortSeqId( const BSTNode *item, const BSTNode *n )
-{
-    return ReferenceObj_CmpSeqId( ( ( const ReferenceObj* )item )->seqid, n );
-}
-
-
-static int CC ReferenceObj_CmpName( const void *item, const BSTNode *n )
-{
-    return strcasecmp( ( const char* )item, ( ( const ReferenceObj* )&n[ -1 ] )->name );
-}
-
-
-static int CC ReferenceObj_SortName( const BSTNode *item, const BSTNode *n )
-{
-    return ReferenceObj_CmpName( ( ( const ReferenceObj* )&item[ -1 ] )->name, n );
-}
-
-static rc_t ReferenceObj_Alloc( ReferenceObj** self, const char* seqid, size_t seqid_sz,
-                                const char* name, size_t name_sz)
-{
-    rc_t rc = 0;
-    if ( self == NULL || seqid == NULL || seqid_sz == 0 || name == NULL || name_sz == 0 )
-    {
-        rc = RC( rcAlign, rcIndex, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        ReferenceObj* obj = calloc( 1,  sizeof( *obj ) + seqid_sz + 1 + name_sz + 1 );
-        if ( obj == NULL )
-        {
-            rc = RC( rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted );
-        }
-        else
-        {
-            obj->seqid = ( char* )&obj[ 1 ];
-            obj->name = obj->seqid;
-            obj->name += seqid_sz + 1;
-            memcpy( obj->seqid, seqid, seqid_sz );
-            obj->seqid[ seqid_sz ] = '\0';
-            memcpy( obj->name, name, name_sz );
-            obj->name[ name_sz ] = '\0';
-            *self = obj;
-        }
-    }
-    return rc;
-}
-
-
-/* helper function for ReferenceList_MakeCursor() */
-static rc_t ReferenceList_handle_filter( const KIndex* iname, const char * filt_name, uint32_t bin_size,
-                                         int64_t *start, int64_t tbl_start, uint64_t *count, int *bin_num,
-                                         TableReaderColumn *h, const TableReader* tmp )
-{
-    rc_t rc = 0;
-    if ( strncmp( filt_name, "START_ROW:", 10 ) )
-    {
-        if ( bin_size == 0 || strncmp( filt_name, "BIN_NUM:", 8 ) )
-        {
-            rc = KIndexFindText( iname, filt_name, start, count, NULL, NULL );
-            if( rc == 0 && bin_size > 0 )
-            {
-                /** change start to the beginning of the bin **/
-                *bin_num = ( *start - tbl_start ) / bin_size;
-            }
-        }
-        else
-        {
-            *bin_num = atoi( filt_name + 8 );
-        }
-        if ( bin_size > 0 )
-        {
-            *start = tbl_start + ( bin_size * (*bin_num) );
-            rc = TableReader_ReadRow( tmp, *start );
-            if ( rc == 0 )
-            {
-                int64_t r_start;
-                char name[ 4096 ];
-                if ( h[ 0 ].len < sizeof( name ) )
-                {
-                    memcpy( name, h[ 0 ].base.str, h[ 0 ].len );
-                    name[ h[ 0 ].len ] = '\0';
-                    rc = KIndexFindText( iname, name, &r_start, count, NULL, NULL );
-                    if ( rc == 0 && *start > r_start )
-                    { /*** move start to the beginning of the fully contained sequence **/
-                        *start = r_start + *count;
-                    }
-                }
-                else
-                {
-                    rc = RC( rcAlign, rcType, rcConstructing, rcName, rcTooLong );
-                }
-            }
-        }
-    }
-    else
-    {
-        int64_t req_start = atoi( filt_name + 10 );
-        if ( req_start >= *start && req_start < *start + *count )
-        {
-            int64_t delta = req_start - *start;
-            *start = req_start;
-            *count -= delta;
-        }
-        else
-        {
-            rc = RC( rcAlign, rcType, rcConstructing, rcId, rcOutofrange );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_MakeCursor( const ReferenceList** cself, const VCursor* cursor, uint32_t options,
-                                             const char* filt_name, const uint32_t numbins )
-{
-    rc_t rc = 0;
-    ReferenceList* self = NULL;
-
-    if ( cself == NULL || cursor == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else if ( ( self = calloc( 1, sizeof( *self ) ) ) == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcMemory, rcExhausted );
-    }
-    else
-    {
-        const TableReader* tmp = NULL;
-        uint32_t bin_size;
-        int bin_num = -1;
-        TableReaderColumn h[] =
-        {
-            { 0, "NAME",        {NULL}, 0, 0 }, /*0*/
-            { 0, "SEQ_ID",      {NULL}, 0, 0 }, /*1*/
-            { 0, "SEQ_LEN",     {NULL}, 0, 0 }, /*2*/
-            { 0, "CIRCULAR",    {NULL}, 0, 0 }, /*3*/
-            { 0, "MAX_SEQ_LEN", {NULL}, 0, 0 }, /*4*/
-            { 0, "SEQ_START",   {NULL}, 0, 0 }, /*5*/
-            { 0, "CMP_READ",    {NULL}, 0, 0 }, /*6*/
-            { 0, NULL,          {NULL}, 0, 0 }
-        };
-        KRefcountInit( &self->refcount, 1, "ReferenceList", "Make", "align" );
-        BSTreeInit( &self->name_tree );
-        BSTreeInit( &self->seqid_tree );
-        self->options = options;
-        self->nodes_max_qty = sizeof( self->nodes ) / sizeof( self->nodes[ 0 ] );
-
-        rc = VCursorAddRef( self->cursor = cursor );
-        if ( rc == 0 )
-        {
-            rc = TableReader_MakeCursor( &tmp, cursor, h );
-            if ( rc == 0 )
-            {
-                int64_t start, tbl_start, tbl_stop;
-                uint64_t count;
-                const KIndex* iname = NULL;
-                bool only_one = false;
-
-                /* index is optional */
-                rc_t rctmp = TableReader_OpenIndex( tmp, "i_name", &iname );
-                ALIGN_DBGERRP( "index '%s' was not found", rctmp, "i_name" );
-
-                rc = TableReader_IdRange( tmp, &start, &count );
-                assert( rc == 0 );
-                tbl_start = start;
-                tbl_stop  = start + count -1;
-                if ( numbins > 0 )
-                {
-                    bin_size = ( count + numbins -1 ) / numbins;
-                }
-                else
-                {
-                    bin_size = 0;
-                }
-
-                if ( iname && filt_name )
-                {
-                    if ( bin_size == 0 )
-                    {
-                        only_one = true;
-                    }
-                    rc = ReferenceList_handle_filter( iname, filt_name, bin_size, &start, tbl_start,
-                                                      &count, &bin_num, h, tmp );
-                }
-
-                if ( rc == 0 )
-                {
-                    ReferenceObj* node = NULL;
-                    uint32_t last_name_len = 0;
-                    bool read_determination_done = false;
-
-                    while ( rc == 0  && start <= tbl_stop )
-                    {
-                        if ( bin_num < 0 && count == 0 )
-                        {
-                            /*** normal loop without binning ***/
-                            break;
-                        }
-                        rc = TableReader_ReadRow( tmp, start );
-                        if ( rc == 0 )
-                        {
-                            if ( node == NULL || last_name_len != h[0].len ||
-                                 strncmp( h[ 0 ].base.str, node->name, h[ 0 ].len) != 0 )
-                            {
-                                uint32_t cur_bin = ( bin_size > 0 ) ? ( start-tbl_start ) / bin_size : 0;
-                                if ( only_one && self->nodes_qty == 1 )
-                                {
-                                    break;
-                                }
-                                if ( bin_num >= 0 && cur_bin != bin_num )
-                                {
-                                    break;
-                                }
-                                if ( node == NULL && h[ 4 ].len > 0 )
-                                {
-                                    self->max_seq_len = h[ 4 ].base.u32[ 0 ];
-                                }
-                                if ( self->nodes_qty == self->nodes_max_qty )
-                                {
-                                    ReferenceList* tmp = realloc( self, sizeof( *self ) + sizeof( node ) * self->nodes_max_qty );
-                                    if ( tmp == NULL )
-                                    {
-                                        rc = RC(rcAlign, rcType, rcConstructing, rcMemory, rcExhausted);
-                                    }
-                                    else
-                                    {
-                                        self = tmp;
-                                        self->nodes_max_qty += sizeof( self->nodes ) / sizeof( self->nodes[ 0 ] );
-                                    }
-                                }
-                                if ( rc == 0 )
-                                {
-                                    rc = ReferenceObj_Alloc( &node, h[ 1 ].base.str, h[ 1 ].len, h[ 0 ].base.str, h[ 0 ].len );
-                                    if ( rc == 0 )
-                                    {
-                                        node->id = self->nodes_qty;
-                                        self->nodes[ self->nodes_qty++ ] = node;
-                                        last_name_len = h[ 0 ].len;
-                                        node->circular = h[ 3 ].len ? h[ 3 ].base.buul[ 0 ] : false;
-                                        node->start_rowid = start;
-                                        node->seq_len = 0;
-                                        node->bin = cur_bin;
-                                        read_determination_done = false;
-                                        rc = BSTreeInsertUnique( &self->seqid_tree, &node->by_seqid, NULL, ReferenceObj_SortSeqId );
-                                        if ( rc == 0 )
-                                        {
-                                            rc = BSTreeInsertUnique( &self->name_tree, &node->by_name, NULL, ReferenceObj_SortName );
-                                        }
-                                    }
-                                }
-                            }
-                            if ( rc == 0 )
-                            {
-                                INSDC_coord_len cur_seq_len = h[ 2 ].base.coord_len[ 0 ];
-                                if ( cur_seq_len == 0 )
-                                {
-                                    /* assign it to max-seq-len */
-                                    cur_seq_len = h[ 4 ].base.coord_len[ 0 ];
-                                }
-
-                                if ( h[ 6 ].len > 0 )
-                                {/** CMP_READ > 0 -- truly local ***/
-                                    node->read_present = true; 
-                                    read_determination_done = true;
-                                }
-                                else if ( h[ 5 ].base.coord1[ 0 ] != 0 )
-                                { /*** truly remote ***/
-                                    node->read_present = false;
-                                    read_determination_done = true;
-                                } /*** else still not sure **/
-
-                                if ( read_determination_done && iname != NULL )
-                                {
-                                    /* scroll to last row for this reference projecting the seq_len */
-                                    int64_t r_start;
-                                    uint64_t r_count;
-                                    if ( KIndexFindText( iname, node->name, &r_start, &r_count, NULL, NULL ) == 0 )
-                                    {
-                                        assert( node->start_rowid == r_start );
-                                        /* not last ref row */
-                                        if ( start != r_start + r_count - 1 )
-                                        {
-                                            /* we need to pickup last row SEQ_LEN for this reference
-                                            so we step back 2 rows in table from this ref end row
-                                            and also skip rows already scanned for read presence */
-                                            r_count -= ( start - r_start ) + 2;
-                                            node->seq_len += cur_seq_len * r_count;
-                                            start += r_count;
-                                            count -= r_count;
-                                        }
-                                    }
-                                }
-                                node->seq_len += cur_seq_len;
-                                node->end_rowid = start;
-                            }
-                        }
-                        else if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcRow )
-                        {
-                            rc = 0;
-                        }
-                        start++;
-                        count--;
-                    }
-                    for ( start = 0; rc == 0 && start < self->nodes_qty; start++ )
-                    {
-                        self->nodes[ start ]->mgr = self;
-                    }
-                    if ( rc == 0 && self->max_seq_len == 0 )
-                    {
-                        rc = RC(rcAlign, rcType, rcConstructing, rcData, rcCorrupt);
-                    }
-                }
-                KIndexRelease( iname );
-            }
-        }
-        TableReader_Whack( tmp );
-    }
-
-    if ( rc == 0 )
-    {
-        *cself = self;
-        /* ALIGN_DBG("created 0x%p with cursor 0x%p", self, cursor); */
-    }
-    else
-    {
-        *cself = NULL;
-        ReferenceList_Release( self );
-        /* ALIGN_DBGERRP( "failed for cursor 0x%p", rc, cursor ); */
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_MakeTable( const ReferenceList** cself, const VTable* table, uint32_t options,
-                                            size_t cache, const char* filt_name, const uint32_t numbins )
-{
-    rc_t rc = 0;
-    const VCursor* curs;
-
-    if ( table == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = VTableCreateCachedCursorRead( table, &curs, cache );
-        if ( rc == 0 )
-        {
-            rc = VCursorPermitPostOpenAdd( curs );
-            if ( rc == 0 )
-            {
-                rc = ReferenceList_MakeCursor( cself, curs, options, filt_name, numbins );
-                if ( rc == 0 )
-                {
-                    ( (ReferenceList*)(*cself))->cache = cache;
-                }
-                VCursorRelease(curs);
-            }
-        }
-    }
-    ALIGN_DBGERRP( "failed for table 0x%p", rc, table );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_MakeDatabase( const ReferenceList** cself, const VDatabase* db, uint32_t options,
-                                               size_t cache, const char* name, const uint32_t numbins )
-{
-    rc_t rc = 0;
-    const VTable* tbl = NULL;
-    const char* nm = "REFERENCE";
-    /*const char* nm = (options & ereferencelist_useEvidence) ? "EVIDENCE_INTERVAL" : "REFERENCE";*/
-
-    if ( db == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = VDatabaseOpenTableRead( db, &tbl, nm );
-        if ( rc == 0 )
-        {
-            rc = ReferenceList_MakeTable( cself, tbl, options, cache, name, numbins );
-            VTableRelease( tbl );
-        }
-    }
-    ALIGN_DBGERRP( "failed for database 0x%p", rc, db );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_MakePath( const ReferenceList** cself, const VDBManager* vmgr, const char* dbpath,
-                                           uint32_t options, size_t cache, const char* name, const uint32_t numbins )
-{
-    rc_t rc = 0;
-    const VDatabase* db = NULL;
-
-    if ( vmgr == NULL || dbpath == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = VDBManagerOpenDBRead( vmgr, &db, NULL, "%s", dbpath );
-        if ( rc == 0 )
-        {
-            rc = ReferenceList_MakeDatabase( cself, db, options, cache, name, numbins );
-            VDatabaseRelease( db );
-        }
-    }
-    ALIGN_DBGERRP( "failed for database %s", rc, dbpath );
-    return rc;
-}
-
-
-static rc_t ReferenceList_OpenCursor( ReferenceList* self )
-{
-    rc_t rc = 0;
-
-    assert( self != NULL );
-
-    memcpy( self->reader_cols, ReferenceList_cols, sizeof( ReferenceList_cols ) );
-
-    if ( self->options & ereferencelist_4na )
-    {
-        self->reader_cols[ ereflst_cn_READ_dna ].flags |= ercol_Skip;
-        self->reader_cols[ ereflst_cn_READ_4na ].flags &= ~ercol_Skip;
-    }
-
-    if ( self->options & ereferencelist_usePrimaryIds )
-    {
-        self->reader_cols[ ereflst_cn_PRIMARY_ALIGNMENT_IDS ].flags &= ~ercol_Skip;
-    }
-
-    if ( self->options & ereferencelist_useSecondaryIds )
-    {
-        self->reader_cols[ ereflst_cn_SECONDARY_ALIGNMENT_IDS ].flags &= ~ercol_Skip;
-    }
-
-    if ( self->options & ereferencelist_useEvidenceIds )
-    {
-        self->reader_cols[ ereflst_cn_EVIDENCE_INTERVAL_IDS ].flags &= ~ercol_Skip;
-    }
-
-    if ( !( self->options &
-          ( ereferencelist_usePrimaryIds | ereferencelist_useSecondaryIds | ereferencelist_useEvidenceIds ) ) )
-    {
-        self->reader_cols[ ereflst_cn_OVERLAP_REF_POS ].flags |= ercol_Skip;
-        self->reader_cols[ ereflst_cn_OVERLAP_REF_LEN ].flags |= ercol_Skip;
-    }
-    rc = TableReader_MakeCursor( &self->reader, self->cursor, self->reader_cols );
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-static rc_t ReferenceList_OpenCursor2( ReferenceList* self, align_id_src ids )
-{
-    rc_t rc = 0;
-
-    assert( self != NULL );
-    if ( ids != primary_align_ids && ids != secondary_align_ids && ids != evidence_align_ids )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcOutofrange );
-    }
-    else if ( ids == primary_align_ids && !( self->options & ereferencelist_usePrimaryIds ) )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else if ( ids == secondary_align_ids && !( self->options & ereferencelist_useSecondaryIds ) )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else if ( ids == evidence_align_ids && !( self->options & ereferencelist_useEvidenceIds ) )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        const VTable* vtbl = NULL;
-        rc = VCursorOpenParentRead( self->cursor, &vtbl );
-        if ( rc == 0 )
-        {
-            if ( rc == 0 )
-            {
-                const VDatabase* db = NULL;
-                rc = VTableOpenParentRead( vtbl, &db );
-                if ( rc == 0 )
-                {
-                    rc = VDatabaseOpenTableRead( db, &vtbl, ids == primary_align_ids ? "PRIMARY_ALIGNMENT" :
-                           ( ids == secondary_align_ids ? "SECONDARY_ALIGNMENT" : "EVIDENCE_INTERVAL" ) );
-                    if ( rc == 0 )
-                    {
-                        memcpy( self->iter_cols, PlacementIterator_cols, sizeof( PlacementIterator_cols ) );
-                        rc = TableReader_Make( &self->iter, vtbl, self->iter_cols, self->cache );
-                    }
-                    VDatabaseRelease( db );
-                }
-            }
-            VTableRelease( vtbl );
-        }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-static rc_t ReferenceList_RefSeqMgr( const ReferenceList* cself, const RefSeqMgr** rmgr )
-{
-    rc_t rc = 0;
-
-    assert( rmgr != NULL );
-
-    if ( cself->refseqmgr == NULL )
-    {
-        const VTable* vtbl = NULL;
-        rc = VCursorOpenParentRead( cself->cursor, &vtbl );
-        if ( rc == 0 )
-        {
-            const VDBManager* vmgr;
-            rc = VTableOpenManagerRead( vtbl, &vmgr );
-            if ( rc == 0 )
-            {
-                rc = RefSeqMgr_Make( &( (ReferenceList*)cself )->refseqmgr, vmgr,
-                                     ( cself->options & ereferencelist_4na ) ? errefseq_4NA : 0, cself->cache, 2 );
-                VDBManagerRelease( vmgr );
-            }
-            VTableRelease( vtbl );
-        }
-    }
-    *rmgr = cself->refseqmgr;
-    ALIGN_DBGERR(rc);
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_AddRef( const ReferenceList *cself )
-{
-    rc_t rc = 0;
-    if ( cself != NULL )
-    {
-        if ( KRefcountAdd( &cself->refcount, "ReferenceList" ) != krefOkay )
-        {
-            rc = RC( rcAlign, rcType, rcAttaching, rcError, rcUnexpected );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT void CC ReferenceList_Release( const ReferenceList* cself )
-{
-    if ( cself != NULL )
-    {
-        if ( KRefcountDrop(&cself->refcount, "ReferenceList") == krefWhack )
-        {
-            ReferenceList* self = ( ReferenceList* )cself;
-            TableReader_Whack( self->reader );
-            TableReader_Whack( cself->iter );
-            RefSeqMgr_Release( self->refseqmgr );
-            while( self->nodes_qty-- > 0 )
-            {
-                free( self->nodes[ self->nodes_qty ] );
-            }
-            VCursorRelease( cself->cursor );
-            KRefcountWhack( &self->refcount, "ReferenceList" );
-            free( self );
-        }
-    }
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_Count(const ReferenceList* cself, uint32_t* count)
-{
-    rc_t rc = 0;
-    if ( cself == NULL || count == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcNull );
-    }
-    else
-    {
-        *count = cself->nodes_qty;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_Find( const ReferenceList* cself, const ReferenceObj** obj,
-                                       const char* key, size_t key_sz )
-{
-    rc_t rc = 0;
-    char buf[4096], *b = buf;
-
-    if ( cself == NULL || obj == NULL || key == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcSearching, rcParam, rcNull );
-    }
-    else if ( key_sz >= sizeof( buf ) && ( b = malloc( key_sz + 1 ) ) == NULL )
-    {
-        rc = RC(rcAlign, rcType, rcSearching, rcMemory, rcExhausted);
-    }
-    else
-    {
-        memcpy( b, key, key_sz );
-        b[ key_sz ] = '\0';
-        *obj = ( ReferenceObj* )BSTreeFind( &cself->seqid_tree, b, ReferenceObj_CmpSeqId );
-        if ( *obj == NULL )
-        {
-            const BSTNode* n = BSTreeFind( &cself->name_tree, b, ReferenceObj_CmpName );
-            if ( n != NULL )
-            {
-                *obj = ( ReferenceObj* )&n[ -1 ];
-            }
-        }
-        if ( *obj == NULL )
-        {
-            rc = RC( rcAlign, rcType, rcSearching, rcItem, rcNotFound );
-        }
-        else
-        {
-            rc = ReferenceList_AddRef( cself );
-            if ( rc != 0 )
-            {
-                *obj = NULL;
-            }
-        }
-
-        if ( b != buf )
-        {
-            free( b );
-        }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceList_Get( const ReferenceList* cself, const ReferenceObj** obj, uint32_t idx )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || obj == NULL || idx >= cself->nodes_qty )
-    {
-        rc = RC( rcAlign, rcType, rcRetrieving, rcParam, rcInvalid );
-    }
-    else
-    {
-        rc = ReferenceList_AddRef( cself );
-        if ( rc == 0 )
-        {
-            *obj = cself->nodes[ idx ];
-        }
-        else
-        {
-            *obj = NULL;
-        }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t ReferenceObj_AddRef( const ReferenceObj *cself )
-{
-    if ( cself == NULL )
-    {
-        return RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    } 
-    else
-    {
-        return ReferenceList_AddRef( cself->mgr );
-    }
-}
-
-
-LIB_EXPORT void ReferenceObj_Release( const ReferenceObj *cself )
-{
-    ReferenceList_Release( cself ? cself->mgr : NULL );
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_Idx( const ReferenceObj* cself, uint32_t* idx )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || idx == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        *idx = cself->id;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_IdRange( const ReferenceObj* cself, int64_t* start, int64_t* stop )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || (start == NULL && stop == NULL) )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        if ( start != NULL )
-        {
-            *start = cself->start_rowid;
-        }
-        if ( stop != NULL )
-        {
-            *stop = cself->end_rowid;
-        }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_Bin( const ReferenceObj* cself, uint32_t* bin )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || bin == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        *bin = cself->bin;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_SeqId( const ReferenceObj* cself, const char** seqid )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || seqid == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        *seqid = cself->seqid;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_Name( const ReferenceObj* cself, const char** name )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || name == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        *name = cself->name;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_SeqLength( const ReferenceObj* cself, INSDC_coord_len* len )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || len == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        *len = cself->seq_len;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_Circular( const ReferenceObj* cself, bool* circular )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || circular == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        *circular = cself->circular;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_External( const ReferenceObj* cself, bool* external, char** path )
-{
-    rc_t rc = 0;
-
-    if ( cself == NULL || external == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        const RefSeqMgr* rmgr;
-        *external = !cself->read_present;
-        if ( path != NULL && !cself->read_present )
-        {
-            rc = ReferenceList_RefSeqMgr( cself->mgr, &rmgr );
-            if ( rc == 0 )
-            {
-                *path = NULL;
-                rc = RefSeqMgr_Exists( rmgr, cself->seqid, string_size( cself->seqid ), NULL );
-                if ( GetRCObject( rc ) == rcTable && GetRCState( rc ) == rcNotFound )
-                {
-                    rc = 0;
-                }
-            }
-        }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_Read( const ReferenceObj* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                                      uint8_t* buffer, INSDC_coord_len* written )
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || buffer == NULL || written == NULL )
-    {
-        rc = RC ( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        rc = ReferenceSeq_ReOffset( cself->circular, cself->seq_len, &offset );
-        if ( rc == 0 )
-        {
-            if ( cself->mgr->reader != NULL || ( rc = ReferenceList_OpenCursor( cself->mgr ) ) == 0 )
-            {
-                int cid = ( cself->mgr->options & ereferencelist_4na ) ? ereflst_cn_READ_4na : ereflst_cn_READ_dna;
-                INSDC_coord_len q = 0;
-                *written = 0;
-                do
-                {
-                    int64_t rowid = cself->start_rowid + offset / cself->mgr->max_seq_len;
-                    INSDC_coord_zero s = offset % cself->mgr->max_seq_len;
-                    rc = TableReader_ReadRow( cself->mgr->reader, rowid );
-                    if ( rc == 0 )
-                    {
-                        q = cself->mgr->reader_cols[ereflst_cn_SEQ_LEN].base.coord_len[0] - s;
-                        if ( q > len ) { q = len; }
-                        memcpy( &buffer[ *written ], &cself->mgr->reader_cols[ cid ].base.str[ s ], q );
-                        *written += q;
-                        offset += q;
-                        len -= q;
-                    }
-                    /* SEQ_LEN < MAX_SEQ_LEN is last row unless it is CIRCULAR */
-                    if ( cself->mgr->reader_cols[ ereflst_cn_SEQ_LEN ].base.coord_len[ 0 ] < cself->mgr->max_seq_len )
-                    {
-                        if ( !cself->circular ) { break; }
-                        offset = 0;
-                    }
-                } while ( rc == 0 && q > 0 && len > 0 );
-            }
-        }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_GetIdCount( const ReferenceObj* cself, int64_t row_id, uint32_t *count )
-{
-    rc_t rc = 0;
-
-    if ( cself == NULL || count == NULL )
-    {
-        rc = RC ( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else if ( cself->mgr == NULL )
-    {
-        rc = RC ( rcAlign, rcType, rcAccessing, rcItem, rcInvalid );
-    }
-    else
-    {
-        *count = 0;
-
-        if ( cself->mgr->reader == NULL )
-            rc = ReferenceList_OpenCursor( cself->mgr );
-
-        if ( rc == 0 )
-        {
-            rc = TableReader_ReadRow( cself->mgr->reader, row_id );
-            if ( rc == 0 )
-            {
-                TableReaderColumn *col = &( cself->mgr->reader_cols[ ereflst_cn_PRIMARY_ALIGNMENT_IDS ] );
-                count[ 0 ] = col->len;
-                col = &( cself->mgr->reader_cols[ ereflst_cn_SECONDARY_ALIGNMENT_IDS ] );
-                count[ 1 ] = col->len;
-                col = &( cself->mgr->reader_cols[ ereflst_cn_EVIDENCE_INTERVAL_IDS ] );
-                count[ 2 ] = col->len;
-            }
-        }
-    }
-    return rc;
-}
-
-
-typedef struct PlacementRecExtensionInfo PlacementRecExtensionInfo;
-struct PlacementRecExtensionInfo
-{
-    /* data, destructor and size for extension 1 */
-    void * data;
-    void ( CC * destroy ) ( void *obj, void *data );
-    size_t size;
-};
-
-
-LIB_EXPORT void * CC PlacementRecordCast ( const PlacementRecord *self, uint32_t ext )
-{
-    void * res = NULL;
-    if ( self != NULL )
-    {
-        uint8_t * ptr = ( uint8_t * ) self;
-        PlacementRecExtensionInfo * ext_info;
-
-/**********************************************
-    +---------------+
-    | core          |   PlacementRecord *
-    +---------------+
-    | read_group    |   char *
-    +---------------+
-    | ext_info1     |   PlacementRecExtensionInfo *
-    | ext_info2     |   PlacementRecExtensionInfo *
-    +---------------+
-    | ext1          |   ??? *
-    +---------------+
-    | ext2          |   ??? *
-    +---------------+
-**********************************************/
-        ptr += ( sizeof * self );
-        ptr += self->spot_group_len;
-        ext_info = ( PlacementRecExtensionInfo * )( ptr );
-        ptr += ( 2 * ( sizeof * ext_info ) );
-        switch( ext )
-        {
-            case placementRecordExtension0 : res = ( void * ) ptr;
-                                             break;
-
-            case placementRecordExtension1 : res = ( void * ) ( ptr + ext_info->size );
-                                             break;
-        }
-    }
-    return res;
-}
-
-
-LIB_EXPORT void * CC PlacementRecord_get_ext_data_ptr ( const PlacementRecord *self, uint32_t ext )
-{
-    void * res = NULL;
-    if ( self != NULL )
-    {
-        uint8_t * ptr = ( uint8_t * ) self;
-        PlacementRecExtensionInfo * ext_info;
-        ptr += ( sizeof * self );
-        ptr += self->spot_group_len;    /* ptr points now to the 1st ext-info-block */
-        ext_info = ( PlacementRecExtensionInfo * )( ptr );
-        switch( ext )
-        {
-        case placementRecordExtension0 : res = ext_info[ 0 ].data; break;
-        case placementRecordExtension1 : res = ext_info[ 1 ].data; break;
-        }
-    }
-    return res;
-}
-
-
-LIB_EXPORT void CC PlacementRecordWhack( const PlacementRecord *cself )
-{
-    if ( cself != NULL ) 
-    {
-        PlacementRecord * self = ( PlacementRecord * )cself;
-        PlacementRecExtensionInfo * ext_info;
-        uint8_t * ptr = ( uint8_t * )self;
-        ptr += sizeof( *self );
-        ptr += self->spot_group_len;
-        ext_info = ( PlacementRecExtensionInfo * ) ptr;
-
-        /* destroy from the outer callback-block beginning */
-        if ( ext_info[ 1 ].destroy != NULL )
-        {
-            void *obj = PlacementRecordCast ( self, placementRecordExtension1 );
-            ext_info[ 1 ].destroy( obj, ext_info[ 1 ].data );
-        }
-
-        if ( ext_info[ 0 ].destroy != NULL )
-        {
-            void *obj = PlacementRecordCast ( self, placementRecordExtension0 );
-            ext_info[ 0 ].destroy( obj, ext_info[ 0 ].data );
-        }
-        /* now deallocate ( or put back into pool ) */
-        free( self );
-    }
-}
-
-struct PlacementIterator
-{
-    const ReferenceObj* obj;
-    INSDC_coord_zero ref_window_start;
-    INSDC_coord_len ref_window_len;
-
-    int64_t last_ref_row_of_window_rel;     /* relative to start of reference, not window */
-    int64_t cur_ref_row_rel;                /* current row relative to start of reference */
-    int64_t rowcount_of_ref;                /* precomputed: how many rows does this reference has */
-
-    /* own reader in case of ref cursor based construction */
-    const TableReader* ref_reader;
-    TableReaderColumn* ref_cols;
-    TableReaderColumn ref_cols_own[sizeof(ReferenceList_cols)/sizeof(ReferenceList_cols[0])];
-
-    /* own reader in case of align cursor based construction */
-    const TableReader* align_reader;
-    TableReaderColumn* align_cols;
-    TableReaderColumn align_cols_own[sizeof(PlacementIterator_cols)/sizeof(PlacementIterator_cols[0])];
-
-    /* current reference table row */
-    int64_t current_reftable_row;
-
-    const TableReaderColumn* ids_col;
-    Vector ids;
-    /* PlacementRecord c-tor params */
-    PlacementRecordExtendFuncs ext_0;
-    PlacementRecordExtendFuncs ext_1;
-
-    /* if this field is :
-     * NULL ... group by original read-group from the source-file
-     * points to empty string ... do not perform grouping at all
-     * point to non-empty string ... group by this string
-    */
-    const char * spot_group;
-    size_t spot_group_len;
-    int32_t min_mapq;
-
-    const VCursor* align_curs;
-};
-
-
-static void enter_spotgroup ( PlacementIterator *iter, const char * spot_group )
-{
-    if ( spot_group == NULL )
-    {
-        iter->spot_group = NULL;
-        iter->spot_group_len = 0;
-    }
-    else
-    {
-        iter->spot_group_len = string_size ( spot_group );
-        if ( iter->spot_group_len > 0 )
-        {
-            iter->spot_group = string_dup_measure ( spot_group, NULL );
-        }
-        else
-        {
-            iter->spot_group = calloc( 1, 1 );
-        }
-    }
-}
-
-
-static int64_t calc_overlaped( PlacementIterator * o, align_id_src ids )
-{
-    int64_t res = o->ref_window_start;
-    bool from_ref_table = false;
-
-/*
-    uint32_t ofs = 0;
-    switch ( ids )
-    {
-        case primary_align_ids   : ofs = 0; break;
-        case secondary_align_ids : ofs = 1; break;
-        case evidence_align_ids  : ofs = 2; break;
-    }
-
-    if ( o->ref_cols[ ereflst_cn_OVERLAP_REF_LEN ].idx != 0 && 
-         o->ref_cols[ ereflst_cn_OVERLAP_REF_LEN ].len > ofs )
-    {
-        INSDC_coord_len overlap_ref_len = o->ref_cols[ ereflst_cn_OVERLAP_REF_LEN ].base.coord_len[ ofs ];
-        if ( overlap_ref_len < o->obj->mgr->max_seq_len )
-        {
-            if ( o->ref_cols[ ereflst_cn_OVERLAP_REF_POS ].idx != 0 && 
-                 o->ref_cols[ ereflst_cn_OVERLAP_REF_POS ].len > ofs )
-            {
-                res = o->ref_cols[ereflst_cn_OVERLAP_REF_POS].base.coord0[ ofs ];
-                from_ref_table = true;
-            }
-        }
-    }
-*/
-
-    if ( !from_ref_table )
-    {
-        /* default is step back 10 rows/50k bases */
-        int64_t ref_pos_lookback = ( 10 * o->obj->mgr->max_seq_len );
-        if ( o->obj->circular )
-        {
-            int64_t const half = ( o->obj->seq_len / 2 );
-
-            if ( ref_pos_lookback > half )
-            {
-                /* go back no more than one full length */
-                ref_pos_lookback = half;
-            }
-            res = ( o->ref_window_start - ref_pos_lookback ); /* could become negative */
-        }
-        else
-        {
-            res = ( o->ref_window_start < ref_pos_lookback ? 0 : ( o->ref_window_start - ref_pos_lookback ) );
-        }
-    }
-    return res;
-}
-
-
-LIB_EXPORT rc_t CC ReferenceObj_MakePlacementIterator ( const ReferenceObj* cself,
-    PlacementIterator **iter,
-    INSDC_coord_zero ref_window_start, INSDC_coord_len ref_window_len,
-    int32_t min_mapq,
-    struct VCursor const *ref_cur, struct VCursor const *align_cur, align_id_src ids,
-    const PlacementRecordExtendFuncs *ext_0, const PlacementRecordExtendFuncs *ext_1,
-    const char * spot_group )
-{
-    rc_t rc = 0;
-    PlacementIterator* o = NULL;
-
-    if ( cself == NULL || iter == NULL )
-    {
-        rc = RC(rcAlign, rcType, rcAccessing, rcParam, rcInvalid);
-    }
-    else if ( ( rc = ReferenceSeq_ReOffset( cself->circular, cself->seq_len, &ref_window_start ) ) != 0 )
-    {
-    }
-    else if ( ( o = calloc( 1, sizeof( *o ) ) ) == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcMemory, rcExhausted );
-    }
-    else
-    {
-        rc = ReferenceList_AddRef( cself->mgr );
-        if ( rc == 0 )
-        {
-            ReferenceList* mgr = cself->mgr;
-            o->obj = cself;
-            /* o->wrapped_around = false; */
-            ReferenceObj_AddRef( o->obj );
-            o->min_mapq = min_mapq;
-
-            if ( ext_0 != NULL )
-            {
-                o->ext_0.data = ext_0->data;
-                o->ext_0.destroy = ext_0->destroy;
-                o->ext_0.populate = ext_0->populate;
-                o->ext_0.alloc_size = ext_0->alloc_size;
-                o->ext_0.fixed_size = ext_0->fixed_size;
-            }
-
-            if ( ext_1 != NULL )
-            {
-                o->ext_1.data = ext_1->data;
-                o->ext_1.destroy = ext_1->destroy;
-                o->ext_1.populate = ext_1->populate;
-                o->ext_1.alloc_size = ext_1->alloc_size;
-                o->ext_1.fixed_size = ext_1->fixed_size;
-            }
-
-            if ( ref_cur == NULL )
-            {
-                if ( mgr->reader == NULL )
-                {
-                    rc = ReferenceList_OpenCursor( mgr );
-                }
-                if ( rc == 0 )
-                {
-                    o->ref_reader = mgr->reader;
-                    o->ref_cols = mgr->reader_cols;
-                }
-            }
-            else
-            {
-                memcpy( o->ref_cols_own, ReferenceList_cols, sizeof( o->ref_cols_own ) );
-                o->ref_cols = o->ref_cols_own;
-                rc = TableReader_MakeCursor( &o->ref_reader, ref_cur, o->ref_cols_own );
-            }
-
-            if ( align_cur == NULL )
-            {
-                bool b_assign = ( mgr->iter != NULL );
-                if ( !b_assign )
-                {
-                    rc = ReferenceList_OpenCursor2( mgr, ids );
-                    b_assign = ( rc == 0 );
-                }
-                if ( b_assign )
-                {
-                    o->align_reader = mgr->iter;
-                    o->align_cols = mgr->iter_cols;
-                }
-            }
-            else
-            {
-                memcpy( o->align_cols_own, PlacementIterator_cols, sizeof( o->align_cols_own ) );
-                o->align_cols = o->align_cols_own;
-                o->align_curs = align_cur;
-                rc = TableReader_MakeCursor( &o->align_reader, align_cur, o->align_cols );
-            }
-
-            if ( rc == 0 )
-            {
-                int64_t first_ref_row_of_window_rel = ( ref_window_start / mgr->max_seq_len );
-                int64_t first_ref_row_of_window_abs = ( cself->start_rowid + first_ref_row_of_window_rel );
-
-                /* in bases */
-                o->ref_window_start = ref_window_start;
-                o->ref_window_len = ref_window_len;
-
-                /* in reference-rows */
-                o->last_ref_row_of_window_rel = ref_window_start;
-                o->last_ref_row_of_window_rel += ref_window_len;
-                o->last_ref_row_of_window_rel /= mgr->max_seq_len;
-                o->rowcount_of_ref = ( cself->end_rowid - cself->start_rowid );
-
-                /* get effective starting offset based on overlap
-                   from alignments which started before the requested pos */
-                rc = TableReader_ReadRow( o->ref_reader, first_ref_row_of_window_abs );
-                if ( rc == 0 )
-                {
-                    int64_t ref_pos_overlapped = calc_overlaped( o, ids );
-                    ALIGN_DBG( "ref_pos_overlapped: %li", ref_pos_overlapped );
-
-                    /* the absolute row where we are reading from */
-                    o->cur_ref_row_rel = ( ref_pos_overlapped / mgr->max_seq_len ) - 1;
-
-                    VectorInit( &o->ids, 0, 100 );
-
-                    o->ids_col = &o->ref_cols[ids == primary_align_ids ? ereflst_cn_PRIMARY_ALIGNMENT_IDS :
-                            ( ids == secondary_align_ids ? ereflst_cn_SECONDARY_ALIGNMENT_IDS : ereflst_cn_EVIDENCE_INTERVAL_IDS ) ];
-
-                    ALIGN_DBG( "iter.last_ref_row_of_window_rel: %li", o->last_ref_row_of_window_rel );
-                    ALIGN_DBG( "iter.rowcount_of_ref: %li", o->rowcount_of_ref );
-                    ALIGN_DBG( "iter.cur_ref_row_rel: %li", o->cur_ref_row_rel );
-                }
-            }
-
-            if ( rc != 0 )
-            {
-                ReferenceObj_Release( o->obj );
-            }
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        enter_spotgroup ( o, spot_group );
-        *iter = o;
-/*        ALIGN_DBG( "iter for %s:%s opened 0x%p", cself->seqid, cself->name, o ); */
-    }
-    else
-    {
-        *iter = NULL;
-        PlacementIteratorRelease( o );
-        ALIGN_DBGERRP( "iter for %s:%s", rc, cself->seqid, cself->name );
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementIteratorAddRef ( const PlacementIterator *cself )
-{
-    return ReferenceList_AddRef(cself ? cself->obj->mgr : NULL);
-}
-
-
-static void CC PlacementIterator_whack_recs( void *item, void *data )
-{
-    PlacementRecordWhack( ( PlacementRecord * ) item );
-}
-
-
-LIB_EXPORT rc_t CC PlacementIteratorRelease ( const PlacementIterator *cself )
-{
-    if ( cself != NULL )
-    {
-        PlacementIterator* self = ( PlacementIterator* )cself;
-
-        VectorWhack( &self->ids, PlacementIterator_whack_recs, NULL );
-
-        if ( self->ref_reader != self->obj->mgr->reader )
-        {
-            TableReader_Whack( self->ref_reader );
-        }
-        if ( self->align_reader != self->obj->mgr->iter )
-        {
-            TableReader_Whack( self->align_reader );
-        }
-        ReferenceObj_Release( self->obj );
-        ReferenceList_Release( self->obj->mgr );
-        if ( self->spot_group != NULL )
-        {
-            free( ( void * )self->spot_group );
-        }
-        free( self );
-    }
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC PlacementIteratorRefWindow( const PlacementIterator *self,
-                                               const char **idstr, INSDC_coord_zero* pos, INSDC_coord_len* len )
-{
-    rc_t rc = 0;
-
-    if ( self == NULL || (idstr == NULL || pos == NULL || len == NULL ) )
-    {
-        rc = RC(rcAlign, rcType, rcAccessing, rcParam, rcInvalid);
-    }
-    else
-    {
-        if ( idstr != NULL ) { *idstr = self->obj->seqid; }
-        if ( pos != NULL )   { *pos = self->ref_window_start; }
-        if ( len != NULL )   { *len = self -> ref_window_len; }
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementIteratorRefObj( const PlacementIterator * self,
-                                            struct ReferenceObj const ** refobj )
-{
-    rc_t rc = 0;
-
-    if ( self == NULL || refobj == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        *refobj = self->obj;
-    }
-    ALIGN_DBGERR( rc );
-    return rc;
-}
-
-
-#if _DEBUGGING
-static void CC PlacementRecordVector_dump( void *item, void *data )
-{
-    const PlacementRecord* i = ( const PlacementRecord* )item;
-    ALIGN_DBG( " {%u, %u, %li}", i->pos, i->len, i->id );
-}
-#endif
-
-
-/* this comparison function performs last-to-first
-   ordering in the Vector. for this reason, all
-   comparisons and return values are reversed. */
-static int CC PlacementRecordVector_cmp( const void** left, const void** right, void* data )
-{
-    const PlacementRecord* l = *( ( const PlacementRecord** )left );
-    const PlacementRecord* r = *( ( const PlacementRecord** )right );
-
-    /* order by pos desc
-       return right - left rather than
-       normal left - right to reverse result */
-    int32_t d = r -> pos - l -> pos;
-    if ( d != 0 )
-        return d;
-
-    /* ...len asc */
-    if ( l -> len < r -> len )
-        return -1;
-    if ( l -> len > r -> len )
-        return 1;
-
-    /* ...id desc */
-    if ( l -> id > r -> id )
-        return -1;
-    if ( l -> id < r -> id )
-        return 1;
-    return 0;
-}
-
-
-static rc_t allocate_populate_rec( const PlacementIterator *cself,
-                                   PlacementRecord **rec,
-                                   struct VCursor const *curs,
-                                   int64_t id,
-                                   INSDC_coord_zero apos,
-                                   INSDC_coord_len alen )
-{
-    rc_t rc = 0;
-
-    {
-        PlacementRecExtensionInfo * ext_info;
-        size_t spot_group_len, size0, size1, total_size;
-
-        if ( cself->spot_group_len > 0 )
-        {
-            /* use the read-group from the PlacementIterator as an fix override ... */
-            spot_group_len = cself->spot_group_len;
-        }
-        else
-        {
-            if ( cself->spot_group != NULL )
-            {
-                /* iterator has an empty (not NULL) spot-group: use the orignal data! */
-                spot_group_len = cself->align_cols[eplacementiter_cn_READ_GROUP].len;
-            }
-            else
-            {
-                /* do not use spotgroups at all ! */
-                spot_group_len = 0;
-            }
-        }
-
-        /* use callback or fixed size to discover the size of portions 0 and 1 */
-        if ( cself->ext_0.alloc_size != NULL )
-        {
-            rc = cself->ext_0.alloc_size( curs, id, &size0, cself->ext_0.data );
-            if ( rc != 0 )
-                return rc;
-        }
-        else
-            size0 = cself->ext_0.fixed_size;
-
-        if ( cself->ext_1.alloc_size != NULL )
-        {
-            rc = cself->ext_1.alloc_size( curs, id, &size1, cself->ext_1.data );
-            if ( rc != 0 )
-                return rc;
-        }
-        else
-            size1 = cself->ext_1.fixed_size;
-        
-        /* allocate the record ( or take it from a pool ) */
-        total_size = ( sizeof **rec ) + spot_group_len + ( 2 * ( sizeof *ext_info ) ) + size0 + size1;
-        *rec = calloc( 1, total_size );
-        if ( *rec == NULL )
-        {
-            rc = RC( rcAlign, rcType, rcAccessing, rcMemory, rcExhausted );
-        }
-        else
-        {
-            PlacementRecord *pr = * rec;
-            uint8_t * ptr = ( uint8_t * )( * rec );
-            ptr += sizeof ( **rec );
-            pr->spot_group = (char *)ptr;
-            ptr += spot_group_len ;
-            ext_info = ( PlacementRecExtensionInfo * )ptr;
-
-            /* prepopulate the core-record : */
-            pr->id  = id;               /* the row-id */
-            pr->ref = cself->obj;       /* the ReferenceObj it refers to */
-            pr->pos = apos;             /* the positon on the reference */
-            pr->len = alen;             /* the length on the reference */
-            pr->mapq = cself->align_cols[eplacementiter_cn_MAPQ].base.i32[ 0 ]; /* mapq */
-
-            /* populate the spot-group : (with the values discovered at the "size-phase" ) */
-            pr->spot_group_len = spot_group_len;
-            if ( cself->spot_group_len > 0 )
-            {
-                /* we make a copy of the spot-group-override commin from the iterator */
-                string_copy ( pr->spot_group, spot_group_len, cself->spot_group, spot_group_len );
-            }
-            else
-            {
-                if ( cself->spot_group != NULL )
-                {
-                    /* iterator has an empty (not NULL) spot-group: use the orignal data! */
-                    string_copy( pr->spot_group, spot_group_len,
-                                 cself->align_cols[eplacementiter_cn_READ_GROUP].base.str, spot_group_len );
-                }
-            }
-
-            ext_info[ 0 ].data = cself->ext_0.data;          /* the opt. context ptr. */
-            ext_info[ 0 ].destroy = cself->ext_0.destroy;    /* the opt. destructor */
-            ext_info[ 0 ].size = size0;                      /* discovered size from above */
-
-            ext_info[ 1 ].data = cself->ext_1.data;          /* the opt. context ptr. */
-            ext_info[ 1 ].destroy = cself->ext_1.destroy;    /* the opt. destructor */
-            ext_info[ 1 ].size = size1;                      /* discovered size from above */
-
-            /* pass the record now to the opt. populate-callbacks */
-            if ( cself->ext_0.populate != NULL )
-            {
-                void * obj = PlacementRecordCast ( pr, placementRecordExtension0 );
-                rc = cself->ext_0.populate( obj, pr, curs,
-                                            cself->ref_window_start,
-                                            cself->ref_window_len,
-                                            cself->ext_0.data );
-                if ( rc != 0 && cself->ext_0.destroy != NULL )
-                {
-                    void *obj = PlacementRecordCast ( pr, placementRecordExtension0 );
-                    cself->ext_0.destroy( obj, cself->ext_0.data );
-                }
-            }
-
-            if ( rc == 0 && cself->ext_1.populate != NULL )
-            {
-                void * obj = PlacementRecordCast ( pr, placementRecordExtension1 );
-                rc = cself->ext_1.populate( obj, pr, curs, 
-                                            cself->ref_window_start,
-                                            cself->ref_window_len,
-                                            cself->ext_1.data );
-                if ( rc != 0 )
-                {
-                    if ( cself->ext_1.destroy != NULL )
-                    {
-                        void *obj = PlacementRecordCast ( pr, placementRecordExtension1 );
-                        cself->ext_1.destroy( obj, cself->ext_1.data );
-                    }
-                    if ( cself->ext_0.destroy != NULL )
-                    {
-                        void *obj = PlacementRecordCast ( pr, placementRecordExtension0 );
-                        cself->ext_0.destroy( obj, cself->ext_0.data );
-                    }
-
-                }
-            }
-
-            if ( rc != 0 )
-            {
-                /* free */
-                free( *rec );
-                *rec = NULL;
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t make_alignment( PlacementIterator *self, int64_t align_id,
-                            INSDC_coord_zero apos, INSDC_coord_len alen )
-{
-    PlacementRecord *rec;
-    rc_t rc = allocate_populate_rec( self, &rec, self->align_curs, align_id, apos, alen );
-    if ( rc == 0 )
-    {
-        /*ALIGN_DBG("align %p: {%li, %u, %u} - added[%u]", rec, cself->ids_col->base.i64[i],
-            apos, alen, VectorLength(&cself->ids));*/
-        rc = VectorAppend( &self->ids, NULL, rec );
-        if ( rc != 0 )
-            PlacementRecordWhack( rec );
-    }
-    else
-    {
-        if ( GetRCState( rc ) == rcIgnored )
-            rc = 0; /* do not break the loop if a record is filtered out! */
-    }
-    return rc;
-}
-
-
-/*
-  we have read a single row from REFERENCE, including the
-  alignment ids. use each alignment id from this row to
-  populate internal vector
-*/
-static rc_t read_alignments( PlacementIterator *self )
-{
-    rc_t rc = 0;
-    uint32_t i;
-    /* fill out vector */
-    /*ALIGN_DBG("align rows: %u", cself->ids_col->len);*/
-    for ( i = 0; rc == 0 && i < self->ids_col->len; i++ )
-    {
-        rc = TableReader_ReadRow( self->align_reader, self->ids_col->base.i64[ i ] );
-        if ( rc == 0 )
-        {
-            INSDC_coord_zero apos = self->align_cols[ eplacementiter_cn_REF_POS ].base.coord0[ 0 ];
-            INSDC_coord_len alen  = self->align_cols[ eplacementiter_cn_REF_LEN ].base.coord_len[ 0 ];
-            /*ALIGN_DBG("align row: {%li, %u, %u}", cself->ids_col->base.i64[i], apos, alen);*/
-
-            if ( self->cur_ref_row_rel < 0 )
-                apos -= self->obj->seq_len;
-
-            /* at this point we have the position of the alignment.
-               we want it to intersect with the window */
-
-            /* test mapq */
-            if ( self->align_cols[eplacementiter_cn_MAPQ].base.i32[ 0 ] < self->min_mapq )
-                continue;
-
-            /* case 1: alignment, which is expressed in
-               linear coordinates, is entirely to left of
-               window. */
-            if ( (INSDC_coord_zero)( apos + alen ) <= self -> ref_window_start )
-            {
-                /* ignore this alignment */
-                continue;
-            }
-
-            /* case 2: alignment is to the right of window */
-            if ( apos >= ( self -> ref_window_start + self -> ref_window_len ) )
-            {
-                /* if not circular, it cannot intersect */
-                if ( ! self -> obj -> circular )
-                {
-                    /* this seems like it indicates end of window,
-                       however there is no guarantee that the ids
-                       being fetched are in reference order. they are
-                       supposed to be in row order ( cluster ) to
-                       reduce random access to cursor. unless row
-                       order is guaranteed to be reference order,
-                       we cannot know that the loop can be terminated. */
-                    continue;
-                }
-
-                /* circular, but still within linear range
-                   means it cannot wrap around to intersect */
-                if ( (INSDC_coord_zero)( apos + alen ) <= self->obj->seq_len )
-                    continue;
-
-            }
-            else if ( ( self->obj->circular )&&( apos + alen > self->obj->seq_len ) ) 
-            {
-                /* the end of the alignment sticks over the end of the reference! 
-                   ---> we have the rare case of an alignment that wraps arround !
-                   let as insert the alignment 2 times!
-                   ( one with neg. position, one at real position ) */
-                rc =  make_alignment( self, self->ids_col->base.i64[i], apos - self->obj->seq_len, alen );
-            }
-
-            /* having arrived here, we know the alignment intersects our window
-               apos MAY be < 0 if the alignment wrapped around */
-            if ( rc == 0 )
-                rc =  make_alignment( self, self->ids_col->base.i64[i], apos, alen );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementIteratorNextAvailPos( const PlacementIterator *cself,
-    INSDC_coord_zero *pos, INSDC_coord_len *len )
-{
-    rc_t rc = 0;
-    PlacementIterator* self = (PlacementIterator*)cself;
-
-    if ( self == NULL || ( pos == NULL && len == NULL ) )
-    {
-        rc = RC( rcAlign, rcType, rcSelecting, rcParam, rcInvalid );
-    }
-    else
-    {
-        while ( rc == 0 && VectorLength( &self->ids ) == 0 )
-        {
-            /* read ids */
-
-            self->cur_ref_row_rel++;   /* increment row offset */
-
-            ALIGN_DBG( "ref row: %li-%li-%li",
-                       self->obj->start_rowid, self->cur_ref_row_rel, self->last_ref_row_of_window_rel );
-
-            if ( self->cur_ref_row_rel > self->last_ref_row_of_window_rel )
-                rc = SILENT_RC( rcAlign, rcType, rcSelecting, rcRange, rcDone );
-            else
-            {
-                int64_t row = ( self->obj->start_rowid + self->cur_ref_row_rel );
-                if ( self->cur_ref_row_rel < 0 )
-                    row += self->rowcount_of_ref;
-
-                rc = TableReader_ReadRow( self->ref_reader, row );
-                if ( rc == 0 )
-                    rc = read_alignments( self );
-
-                if ( ( rc == 0 || GetRCState( rc ) == rcDone) && VectorLength( &cself->ids ) > 0 )
-                {
-                    VectorReorder( &self->ids, PlacementRecordVector_cmp, NULL );
-#if _DEBUGGING && 0
-                    ALIGN_DBG( "REFERENCE row %li %u recs order by pos asc, len desc, id asc",
-                                row, VectorLength( &cself->ids ) );
-                    VectorForEach( &self->ids, true, PlacementRecordVector_dump, NULL );
-#endif
-                }
-            }
-        }
-
-        if ( rc == 0 || GetRCState( rc ) == rcDone )
-        {
-            uint32_t count = VectorLength( &cself->ids );
-            if ( count > 0 )
-            {
-                PlacementRecord* r = VectorLast( &cself->ids );
-                rc = 0;
-                if ( pos != NULL ) { *pos = r->pos; }
-                if ( len != NULL ) { *len = r->len; }
-
-/*                ALIGN_DBG( "PlacementIteratorNextAvailPos( pos=%u, n=%u )", r->pos, count ); */
-                if ( !( cself->obj->circular ) && ( r->pos >= ( cself->ref_window_start + cself->ref_window_len ) ) )
-                {
-                    /* the alignment !starts! after the end of the of the requested window! */
-                    rc = SILENT_RC( rcAlign, rcType, rcSelecting, rcRange, rcDone );
-                }
-            }
-            else
-                ALIGN_DBG( "PlacementIteratorNextAvailPos( no placements )", 0 );
-        }
-    }
-
-    if ( rc != 0 && GetRCState(rc) != rcDone )
-        ALIGN_DBGERR( rc );
-
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementIteratorNextRecordAt( PlacementIterator *cself,
-    INSDC_coord_zero pos, const PlacementRecord **rec )
-{
-    rc_t rc = 0;
-    if ( cself == NULL || rec == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        uint32_t vlen = VectorLength( &cself->ids );
-        *rec = NULL;
-        if ( vlen > 0 )
-        {
-            PlacementRecord* r = VectorLast( &cself->ids );
-            if ( r->pos == pos )
-            {
-                VectorRemove( &cself->ids, vlen - 1, (void**)rec );
-            }
-        }
-    }
-
-    if ( rc == 0 && *rec == NULL )
-    {
-        rc = SILENT_RC( rcAlign, rcType, rcSelecting, rcOffset, rcDone );
-    }
-    else
-    {
-        ALIGN_DBGERR( rc );
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC PlacementIteratorNextIdAt( PlacementIterator *cself,
-                                              INSDC_coord_zero pos, int64_t *row_id, INSDC_coord_len *len )
-{
-    rc_t rc = 0;
-    const PlacementRecord* r = NULL;
-
-    if ( cself == NULL || row_id == NULL )
-    {
-        rc = RC( rcAlign, rcType, rcAccessing, rcParam, rcInvalid );
-    }
-    else
-    {
-        rc = PlacementIteratorNextRecordAt( cself, pos, &r );
-        if ( rc  == 0 )
-        {
-            *row_id = r->id;
-            if ( len != NULL ) { *len = r->len; }
-            PlacementRecordWhack( r );
-        }
-    }
-
-    if ( GetRCState( rc ) != rcDone )
-    {
-        ALIGN_DBGERR( rc );
-    }
-    return rc;
-}
diff --git a/libs/align/refseq-mgr.c b/libs/align/refseq-mgr.c
index fde6e90..9df013d 100644
--- a/libs/align/refseq-mgr.c
+++ b/libs/align/refseq-mgr.c
@@ -23,7 +23,6 @@
 * ===========================================================================
 *
 */
-
 #include <align/extern.h>
 
 #include <klib/rc.h>
@@ -51,10 +50,6 @@
 #include <ctype.h>
 #include <assert.h>
 
-/*#define ALIGN_DBG KOutMsg*/
-
-#define USE_OWN_REFSEQ_RESOLVER 0
-
 struct RefSeqMgr {
     BSTree tree;
     KConfig *kfg;
@@ -68,154 +63,12 @@ struct RefSeqMgr {
     BSTree vdbs;
 };
 
-struct RefSeq {
-    BSTNode dad;
-    const RefSeqMgr* mgr;
-    const TableReaderRefSeq* reader;
-    uint64_t usage;
-    uint32_t accession_sz;
-    /* must be last member of struct */
-    char accession[1];
-};
-
-typedef struct RefSeqMgr_Db_struct {
-    BSTNode dad;
-    char key[4096];
-    const VDatabase* db;
-} RefSeqMgr_Db;
-
-#if USE_OWN_REFSEQ_RESOLVER
-struct FindTable_ctx {
-    RefSeqMgr* self;
-    const KDBManager* kmgr;
-    const VTable** tbl;
-    char const* name;
-    uint32_t name_sz;
-    bool found;
-    rc_t rc;
-    char** path; /* optional */
-};
-#endif
-
-static
-rc_t RefSeqMgr_ConfigValue ( const KConfig *kfg, const char *node_path, char *value, size_t value_size )
-{
-    const KConfigNode *node;
-    rc_t rc = KConfigOpenNodeRead ( kfg, & node, node_path );
-    if ( rc == 0 )
-    {
-        size_t num_read, remaining;
-        rc = KConfigNodeRead ( node, 0, value, value_size - 1, & num_read,  & remaining );
-        if ( rc == 0 )
-        {
-            if ( remaining != 0 )
-                rc = RC ( rcSRA, rcMgr, rcConstructing, rcString, rcExcessive );
-            else
-                value [ num_read ] = 0;
-        }
-        
-        KConfigNodeRelease ( node );
-    }
-    return rc;
-}
-
-static
-rc_t RefSeqMgr_KfgReadRepositories(const KConfig* kfg, char* paths, size_t paths_sz)
-{
-    /* servers are children of refseq/repository, e.g.:             /refseq/repository/main="..." */ 
-    /* volumes are in refseq/repository/<serverName>/volumes, e.g.: /refseq/repository/main/volumes="..." */
-    /* all server/volume combinations are returned in paths separated by ':' */
-    
-    rc_t rc = 0;
-    const KConfigNode *node;
-#define KFG_PATH "/refseq/repository/"
-    paths[0] = 0;
-    
-    rc = KConfigOpenNodeRead ( kfg, & node, KFG_PATH );
-    if ( rc == 0 )
-    {
-        KNamelist* children;
-        rc = KConfigNodeListChild ( node, &children );
-        if ( rc == 0 )
-        {
-            uint32_t count;
-            rc = KNamelistCount ( children, &count );
-            if ( rc == 0 )
-            {
-                uint32_t i;
-                for (i = 0; i < count; ++i) /* for all servers */
-                {
-                    const char* name;
-                    rc = KNamelistGet ( children, i, &name );
-                    if ( rc == 0 )
-                    {
-#define BufSize 4096
-                        char server[ BufSize ];
-                        char buf[ BufSize ];
-                        size_t num_writ;
-                        
-                        rc = string_printf(buf, BufSize, &num_writ, KFG_PATH "%s", name);
-                        if (rc == 0)
-                        {
-                            rc = RefSeqMgr_ConfigValue ( kfg, buf, server, sizeof(server) );
-                            if (rc == 0)
-                            {
-                                rc = string_printf(buf, BufSize, &num_writ, KFG_PATH "%s/volumes", name);
-                                if (rc == 0)
-                                {
-                                    char volumes[ BufSize ];
-                                    rc = RefSeqMgr_ConfigValue ( kfg, buf, volumes, sizeof(volumes) );
-                                    if (rc == 0)
-                                    {   /* create a server/volume pair for every combination, append to paths, ':' - separate */ 
-                                        char *vol_rem = volumes;
-                                        char *vol_sep;
-                                        
-                                        do {
-                                            char const *volume = vol_rem;
-                                            vol_sep = string_chr(volume, string_size(volume), ':');
-                                            if(vol_sep) {
-                                                vol_rem = vol_sep + 1;
-                                                *vol_sep = 0;
-                                            }
-                                            string_copy(paths + string_size(paths), paths_sz - string_size(paths), server, string_size(server));
-                                            if (paths[string_size(paths)-1] != '/')
-                                            {
-                                                string_copy(paths + string_size(paths), paths_sz - string_size(paths), "/", 1);
-                                            }
-                                            string_copy(paths + string_size(paths), paths_sz - string_size(paths), volume, string_size(volume));
-                                            string_copy(paths + string_size(paths), paths_sz - string_size(paths), ":", 1);
-                                        } while(vol_sep);
-                                    }
-                                }
-                            }
-                        }
-#undef BufSize
-                    }
-                    if ( rc != 0 )
-                    {
-                        break;
-                    }
-                }
-            }
-            KNamelistRelease ( children );
-        }
-        
-        KConfigNodeRelease ( node );
-    }
-    if (GetRCState(rc) == rcNotFound)
-    {
-        paths[0] = '\0';
-        return 0;
-    }
-    return 0;
-}
-
 static
 rc_t RefSeqMgr_KfgReadStr(const KConfig* kfg, const char* path, char* value, size_t value_sz)
 {
     rc_t rc = 0;
     const KConfigNode *node;
-    
+
     if ( (rc = KConfigOpenNodeRead(kfg, &node, path)) == 0 ) {
         size_t num_read, remaining;
         if( (rc = KConfigNodeRead(node, 0, value, value_sz - 1, &num_read, &remaining)) == 0 ) {
@@ -241,91 +94,95 @@ rc_t RefSeqMgr_ForEachVolume(const RefSeqMgr* cself, RefSeqMgr_ForEachVolume_cal
     
     if( cself == NULL || cb == NULL ) {
         rc = RC(rcAlign, rcType, rcConstructing, rcParam, rcNull);
-    } else if( cb(".", NULL, data) ) {
-        /* found in local dir */
-    } else if( (rc = RefSeqMgr_KfgReadStr(cself->kfg, "refseq/paths", servers, sizeof(servers))) != 0 ) {
-        ALIGN_DBGERRP("%s", rc, "RefSeqMgr_KfgReadStr(paths)");
+    } else if( (rc = RefSeqMgr_KfgReadStr(cself->kfg, "refseq/servers", servers, sizeof(servers))) != 0 ||
+               (rc = RefSeqMgr_KfgReadStr(cself->kfg, "refseq/volumes", volumes, sizeof(volumes))) != 0 ) {
+        ALIGN_DBGERRP("%s", rc, "RefSeqMgr_KfgReadStr(servers/volumes)");
     } else {
         bool found = false;
-        if( servers[0] != '\0' ) {
-            char *srv_sep;
-            char *srv_rem = servers;
+        char *srv_sep;
+        char *srv_rem = servers;
+
+        /* servers and volumes are depricated and optional */
+        if( servers[0] != '\0' || volumes[0] != '\0' ) {
             do {
-                char const* server = srv_rem;
+                char vol[4096];
+                char const *server = srv_rem;
+                char *vol_rem = vol;
+                char *vol_sep;
                 
+                strcpy(vol, volumes);
                 srv_sep = strchr(server, ':');
                 if(srv_sep) {
                     srv_rem = srv_sep + 1;
                     *srv_sep = 0;
                 }
-                if( cb(server, NULL, data) ) {
-                    found = true;
-                    break;
-                }
-            } while(srv_sep);
+                do {
+                    char const *volume = vol_rem;
+                    
+                    vol_sep = strchr(volume, ':');
+                    if(vol_sep) {
+                        vol_rem = vol_sep + 1;
+                        *vol_sep = 0;
+                    }
+                    found = cb(server, volume, data);
+                } while(!found && vol_sep);
+            } while(!found && srv_sep);
         }
         if( !found ) {
-            /* locate refseq servers/volumes in possibly multiple repositories */
-            if( (rc = RefSeqMgr_KfgReadRepositories(cself->kfg, servers, sizeof(servers))) != 0 ) {
-                ALIGN_DBGERRP("%s", rc, "RefSeqMgr_KfgReadStr(refseq/repository/*)");
-            };
-            if( servers[0] != '\0' ) {
+            if( (rc = RefSeqMgr_KfgReadStr(cself->kfg, "refseq/paths", servers, sizeof(servers))) != 0 ) {
+                ALIGN_DBGERRP("%s", rc, "RefSeqMgr_KfgReadStr(paths)");
+            } else {
                 char *srv_sep;
                 char *srv_rem = servers;
+
+                if( servers[0] == '\0' ) {
+                    /* local local dir */
+                    memcpy(servers, ".", 2);
+                }
                 do {
                     char const* server = srv_rem;
-                    
+
                     srv_sep = strchr(server, ':');
                     if(srv_sep) {
                         srv_rem = srv_sep + 1;
                         *srv_sep = 0;
                     }
                     if( cb(server, NULL, data) ) {
-                        found = true;
                         break;
                     }
                 } while(srv_sep);
             }
         }
-        if( !found ) {
-            if ( (rc = RefSeqMgr_KfgReadStr(cself->kfg, "refseq/servers", servers, sizeof(servers))) != 0 ||
-                (rc = RefSeqMgr_KfgReadStr(cself->kfg, "refseq/volumes", volumes, sizeof(volumes))) != 0 ) {
-                ALIGN_DBGERRP("%s", rc, "RefSeqMgr_KfgReadStr(servers/volumes)");
-            } 
-            /* servers and volumes are deprecated and optional */
-            if( rc == 0 && (servers[0] != '\0' || volumes[0] != '\0') ) {
-                char *srv_sep;
-                char *srv_rem = servers;
-                do {
-                    char vol[ 4096 ];
-                    char const *server = srv_rem;
-                    char *vol_rem = vol;
-                    char *vol_sep;
-                    
-                    string_copy ( vol, sizeof vol, volumes, string_size( volumes ) );
-                    srv_sep = strchr(server, ':');
-                    if(srv_sep) {
-                        srv_rem = srv_sep + 1;
-                        *srv_sep = 0;
-                    }
-                    do {
-                        char const *volume = vol_rem;
-                        
-                        vol_sep = strchr(volume, ':');
-                        if(vol_sep) {
-                            vol_rem = vol_sep + 1;
-                            *vol_sep = 0;
-                        }
-                        found = cb(server, volume, data);
-                    } while(!found && vol_sep);
-                } while(!found && srv_sep);
-            }
-        }
     }
     return rc;
 }
 
-#if USE_OWN_REFSEQ_RESOLVER
+struct RefSeq {
+    BSTNode dad;
+    const RefSeqMgr* mgr;
+    const TableReaderRefSeq* reader;
+    uint64_t usage;
+    uint32_t accession_sz;
+    /* must be last member of struct */
+    char accession[1];
+};
+
+typedef struct RefSeqMgr_Db_struct {
+    BSTNode dad;
+    char key[4096];
+    const VDatabase* db;
+} RefSeqMgr_Db;
+
+struct FindTable_ctx {
+    RefSeqMgr* self;
+    const KDBManager* kmgr;
+    const VTable** tbl;
+    char const* name;
+    uint32_t name_sz;
+    bool found;
+    rc_t rc;
+};
+
 static
 int CC RefSeqMgr_DbSort(const BSTNode* item, const BSTNode* node)
 {
@@ -341,31 +198,29 @@ int CC RefSeqMgr_FindDb(const void *item, const BSTNode *node)
 static
 bool FindTable(char const server[], char const volume[], void *data)
 {
-    const VTable* tbl = NULL;
     struct FindTable_ctx *ctx = data;
+    int pathType;
     const char* vol_sep = "/";
     
-    if( volume == NULL || string_size(volume) == 0) {
+    if( volume == NULL ) {
         volume = "";
         vol_sep = "";
     }
-    ctx->rc = VDBManagerOpenTableRead(ctx->self->vmgr, &tbl, NULL, "%s%s%s/%.*s", server, vol_sep, volume, ctx->name_sz, ctx->name);
-    ALIGN_DBG("trying '%s%s%s/%.*s'...", server, vol_sep, volume, ctx->name_sz, ctx->name);
-    
-    ctx->found = false;
-    
-    if(ctx->rc == 0){
-        ALIGN_DBG("found\n", "");
-	    ctx->found = true;
-    }
-    else if (GetRCState(ctx->rc) == rcNotFound) {
-        ctx->rc = 0;
-        ALIGN_DBG("not found\n", "");
-        
+    ALIGN_DBG("try table '%s%s%s/%.*s'", server, vol_sep, volume, ctx->name_sz, ctx->name);
+    pathType = KDBManagerPathType(ctx->kmgr, "%s%s%s/%.*s", server, vol_sep, volume, ctx->name_sz, ctx->name);
+    pathType &= ~kptAlias;
+
+    if( pathType == kptTable ) {
+        ALIGN_DBG("found table '%s%s%s/%.*s'", server, vol_sep, volume, ctx->name_sz, ctx->name);
+        ctx->found = true;
+        if (ctx->tbl) {
+            ctx->rc = VDBManagerOpenTableRead(ctx->self->vmgr, ctx->tbl, NULL, "%s%s%s/%.*s", server, vol_sep, volume, ctx->name_sz, ctx->name);
+        }
+    } else if( pathType == kptNotFound ) {
         /* can be kar */
         if( ctx->name_sz > 7 ) {
             uint32_t i = 0;
-            
+
             /* check for pattern '\w{4}\d{2}[\.\d]+' */
             while( isalpha(ctx->name[i]) && i < 4 ) {
                 i++;
@@ -380,21 +235,21 @@ bool FindTable(char const server[], char const volume[], void *data)
             if( i == ctx->name_sz ) {
                 char key[4096];
                 size_t n;
-                
+
                 if( string_printf(key, sizeof(key), &n, "%s%s%s/%.*s", server, vol_sep, volume, 6, ctx->name) != 0 ) {
-                    (void)LOGMSG(klogWarn, "kar-vdb lookup buffer");
+                    LOGMSG(klogWarn, "kar-vdb lookup buffer");
                 } else {
-                    RefSeqMgr_Db *db = (RefSeqMgr_Db*)BSTreeFind(&ctx->self->vdbs, key, RefSeqMgr_FindDb);
-                    
-                    ALIGN_DBG("trying database '%s%s%s/%.*s'...", server, vol_sep, volume, 6, ctx->name);
+                    RefSeqMgr_Db* db = NULL;
+                    ALIGN_DBG("retry as '%s/%.*s'", key, ctx->name_sz, ctx->name);
+                    db = (RefSeqMgr_Db*)BSTreeFind(&ctx->self->vdbs, key, RefSeqMgr_FindDb);
                     if( db == NULL ) {
                         const VDatabase* vdb = NULL;
-                        if( (ctx->rc = VDBManagerOpenDBRead(ctx->self->vmgr, &vdb, NULL, key)) == 0 ) {
+                        if( VDBManagerOpenDBRead(ctx->self->vmgr, &vdb, NULL, key) == 0 ) {
                             db = malloc(sizeof(*db));
                             if( db == NULL ) {
                                 ctx->rc = RC(rcAlign, rcDatabase, rcOpening, rcMemory, rcExhausted);
                             } else {
-                                string_copy( db->key, sizeof db->key, key, string_size( key ) );
+                                strcpy(db->key, key);
                                 db->db = vdb;
                                 ctx->rc = BSTreeInsertUnique(&ctx->self->vdbs, &db->dad, NULL, RefSeqMgr_DbSort);
                             }
@@ -406,42 +261,26 @@ bool FindTable(char const server[], char const volume[], void *data)
                         }
                     }
                     if( db != NULL ) {
-                        ALIGN_DBG(" table '%.*s'", ctx->name_sz, ctx->name);
-                        if( (ctx->rc = VDatabaseOpenTableRead(db->db, &tbl, "%.*s", ctx->name_sz, ctx->name)) == 0 ) {
+                        const VTable* tbl = NULL;
+
+                        if( VDatabaseOpenTableRead(db->db, &tbl, "%.*s", ctx->name_sz, ctx->name) == 0 ) {
                             ctx->found = true;
-                            ALIGN_DBG("found\n", "");
+                            if(ctx->tbl) {
+                                *(ctx->tbl) = tbl;
+                            } else {
+                                VTableRelease(tbl);
+                            }
                         }
-                        else
-                            ALIGN_DBG("not found\n", "");
                     }
-                    else
-                        ALIGN_DBG("not found\n", "");
                 }
             }
         }
     }
-    if( ctx->found){
-        if(ctx->tbl)  *(ctx->tbl) = tbl;
-        else VTableRelease(tbl);
-    }
-    if( ctx->found && ctx->path != NULL ) {
-        size_t path_sz = string_size( server ) + string_size( vol_sep ) + string_size( volume ) + 1 + ctx->name_sz + 1;
-        char* path = malloc(path_sz);
-        if( path == NULL ) {
-            ctx->rc = RC(rcAlign, rcPath, rcConstructing, rcMemory, rcExhausted);
-        } else {
-            if( (ctx->rc = string_printf(path, path_sz, &path_sz, "%s%s%s/%.*s", server, vol_sep, volume, ctx->name_sz, ctx->name)) == 0 ) {
-                *(ctx->path) = path;
-            } else {
-                free(path);
-            }
-        }
-    }
     return ctx->found;
 }
 
 static
-rc_t RefSeqMgr_FindTable(const RefSeqMgr* cself, char const accession[], uint32_t accession_sz, VTable const **tbl, char** path)
+rc_t RefSeqMgr_FindTable(const RefSeqMgr* cself, char const accession[], uint32_t accession_sz, VTable const **tbl)
 {
     rc_t rc;
     struct FindTable_ctx ctx;
@@ -455,7 +294,6 @@ rc_t RefSeqMgr_FindTable(const RefSeqMgr* cself, char const accession[], uint32_
         ctx.found = false;
         ctx.tbl = tbl;
         ctx.rc = 0;
-        ctx.path = path;
         
         rc = RefSeqMgr_ForEachVolume(cself, FindTable, &ctx);
         if(rc == 0 && ctx.rc == 0 && !ctx.found) {
@@ -465,64 +303,31 @@ rc_t RefSeqMgr_FindTable(const RefSeqMgr* cself, char const accession[], uint32_
     }
     return rc ? rc : ctx.rc;
 }
-#endif
 
-LIB_EXPORT rc_t CC RefSeqMgr_SetCache(RefSeqMgr const *const cself, size_t cache, uint32_t keep_open_num)
-{
-    if (cself) {
-        RefSeqMgr *const self = (RefSeqMgr *)cself;
-        
-        self->cache = cache;
-        self->num_open_max = keep_open_num;
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC RefSeqMgr_Make( const RefSeqMgr** cself, const VDBManager* vmgr,
-                                   uint32_t reader_options, size_t cache, uint32_t keep_open_num )
+LIB_EXPORT rc_t CC RefSeqMgr_Make(const RefSeqMgr** cself, const VDBManager* vmgr, uint32_t reader_options, size_t cache, uint32_t keep_open_num)
 {
     rc_t rc = 0;
     RefSeqMgr* obj = NULL;
     
-    if ( cself == NULL || vmgr == NULL )
-    {
-        rc = RC( rcAlign, rcIndex, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        obj = calloc( 1, sizeof( *obj ) );
-        if ( obj == NULL )
-        {
-            rc = RC( rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted );
-        }
-        else
-        {
-            rc = KConfigMake( &obj->kfg, NULL );
-            if ( rc == 0 )
-            {
-                rc = VDBManagerAddRef( vmgr );
-                if ( rc == 0 )
-                {
-                    BSTreeInit( &obj->tree );
-                    BSTreeInit( &obj->vdbs );
-                    obj->vmgr = vmgr;
-                    obj->cache = cache;
-                    obj->num_open_max = keep_open_num;
-                    obj->reader_options = reader_options;
-                }
-            }
-        }
+    if( cself == NULL || vmgr == NULL ) {
+        rc = RC(rcAlign, rcIndex, rcConstructing, rcParam, rcNull);
+    } else if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
+        rc = RC(rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted);
+    } else if( (rc = KConfigMake(&obj->kfg, NULL)) == 0 &&
+               (rc = VDBManagerAddRef(vmgr)) == 0 ) {
+        BSTreeInit(&obj->tree);
+        BSTreeInit(&obj->vdbs);
+        obj->vmgr = vmgr;
+        obj->cache = cache;
+        obj->num_open_max = keep_open_num;
+        obj->reader_options = reader_options;
     }
-
-    if ( rc == 0 )
-    {
+    if( rc == 0 ) {
         *cself = obj;
-/*        ALIGN_DBG( "max_open: %u", obj->num_open_max ); */
-    }
-    else
-    {
-        RefSeqMgr_Release( obj );
-        ALIGN_DBGERR( rc );
+        ALIGN_DBG("max_open: %u", obj->num_open_max);
+    } else {
+        RefSeqMgr_Release(obj);
+        ALIGN_DBGERR(rc);
     }
     return rc;
 }
@@ -556,28 +361,14 @@ LIB_EXPORT rc_t CC RefSeqMgr_Release(const RefSeqMgr* cself)
     return 0;
 }
 
-LIB_EXPORT rc_t RefSeqMgr_Exists(const RefSeqMgr* cself, const char* accession, uint32_t accession_sz, char** path)
+LIB_EXPORT rc_t RefSeqMgr_Exists(const RefSeqMgr* cself, const char* accession, uint32_t accession_sz)
 {
     rc_t rc = 0;
 
     if( cself == NULL || accession == NULL || accession_sz == 0 ) {
         rc = RC(rcAlign, rcIndex, rcAccessing, rcParam, rcNull);
-    }
-    else {
-#if USE_OWN_REFSEQ_RESOLVER
-        rc = RefSeqMgr_FindTable(cself, accession, accession_sz, NULL, path);
-#else
-        VTable const *tbl = NULL;
-
-        /* if "accession" is not a path,
-           prepend special scheme to tell VResolver
-           to treat WGS accessions as Refseq */
-        if ( string_chr ( accession, accession_sz, '/' ) == NULL )
-            rc = VDBManagerOpenTableRead(cself->vmgr, &tbl, NULL, "ncbi-acc:%.*s?vdb-ctx=refseq", accession_sz, accession);
-        else
-            rc = VDBManagerOpenTableRead(cself->vmgr, &tbl, NULL, "%.*s", accession_sz, accession);
-        VTableRelease(tbl);
-#endif
+    } else {
+        rc = RefSeqMgr_FindTable(cself, accession, accession_sz, NULL);
     }
     return rc;
 }
@@ -606,9 +397,22 @@ int CC RefSeq_Sort(const BSTNode* item, const BSTNode* node)
     return i->accession_sz - n->accession_sz;
 }
 
+static
+void CC RefSeq_Unused( BSTNode *node, void *data )
+{
+    RefSeq* n = (RefSeq*)node;
+    RefSeq** d = (RefSeq**)data;
+
+    if( n->reader != NULL ) {
+        if( *d == NULL || (*d)->usage > n->usage ) {
+            *d = n;
+        }
+    }
+}
+
 LIB_EXPORT rc_t CC RefSeqMgr_Read(const RefSeqMgr* cself, const char* seq_id, uint32_t seq_id_sz,
-                                  INSDC_coord_zero offset, INSDC_coord_len len,
-                                  uint8_t* buffer, INSDC_coord_len* written)
+                                  int64_t offset, INSDC_coord_len len,
+                                  INSDC_dna_text* buffer, INSDC_coord_len* written)
 {
     rc_t rc = 0;
     const RefSeq* obj;
@@ -620,144 +424,78 @@ LIB_EXPORT rc_t CC RefSeqMgr_Read(const RefSeqMgr* cself, const char* seq_id, ui
     return rc;
 }
 
-static
-void CC RefSeq_Oldest( BSTNode *node, void *Data )
-{
-    RefSeq const *const n = (RefSeq const *)node;
-    RefSeq const **const rslt = (RefSeq const **)Data;
-    RefSeq const *const d = *rslt;
-    
-    if (n->reader != NULL && (d == NULL || n->usage < d->usage))
-        *rslt = n;
-}
-
-static
-rc_t RefSeqMgr_GetReader(RefSeqMgr *const mgr, RefSeq *const obj)
+LIB_EXPORT rc_t CC RefSeqMgr_GetSeq(const RefSeqMgr* cmgr, const RefSeq** cself, const char* seq_id, uint32_t seq_id_sz)
 {
     rc_t rc = 0;
-    
-    if (obj->reader == NULL) {
-        VTable const *tbl;
-        
-        while (mgr->num_open_max > 0 && mgr->num_open >= mgr->num_open_max) {
-            RefSeq *old;
-            
-        REMOVE_OLDEST:
-            old = NULL;
-            BSTreeForEach(&mgr->tree, false, RefSeq_Oldest, &old);
-            if (old == NULL)
-                break;
-            
-            TableReaderRefSeq_Whack(old->reader);
-            old->reader = NULL;
-            --mgr->num_open;
-        }
-#if USE_OWN_REFSEQ_RESOLVER
-        rc = RefSeqMgr_FindTable(mgr, obj->accession, obj->accession_sz, &tbl, NULL);
-#else
-        /* if "accession" is not a path,
-           prepend special scheme to tell VResolver
-           to treat WGS accessions as Refseq */
-        if ( string_chr ( obj -> accession, obj -> accession_sz, '/' ) == NULL )
-            rc = VDBManagerOpenTableRead(mgr->vmgr, &tbl, NULL, "ncbi-acc:%.*s?vdb-ctx=refseq", obj->accession_sz, obj->accession);
-        else
-            rc = VDBManagerOpenTableRead(mgr->vmgr, &tbl, NULL, "%.*s", obj->accession_sz, obj->accession);
-#endif
-        if (rc == 0)
-            rc = TableReaderRefSeq_MakeTable(&obj->reader, mgr->vmgr, tbl,
-                                             mgr->reader_options, mgr->cache);
-        if (rc == 0) {
-            VTableRelease(tbl);
-            ++mgr->num_open;
-        }
-        else if ( GetRCObject(rc) == rcMemory &&
-                 (GetRCState (rc) == rcInsufficient || GetRCState(rc) == rcExhausted))
-        {
-            if (mgr->num_open_max == 0 || mgr->num_open < mgr->num_open_max)
-                return rc;
-            rc = 0;
-            goto REMOVE_OLDEST;
+    RefSeq* obj = NULL;
+    RefSeqMgr* mgr = (RefSeqMgr*)cmgr;
+
+    if( cmgr == NULL || cself == NULL || seq_id == NULL ) {
+        rc = RC(rcAlign, rcIndex, rcConstructing, rcParam, rcNull);
+    } else {
+        String s;
+        StringInit(&s, seq_id, seq_id_sz, seq_id_sz);
+        if( cmgr->last_used != NULL && RefSeq_Cmp(&s, &cmgr->last_used->dad) == 0 ) {
+            obj = cmgr->last_used;
+        } else {
+            *cself = NULL;
+            obj = (RefSeq*)BSTreeFind(&cmgr->tree, &s, RefSeq_Cmp);
+            if( obj == NULL ) {
+                if( (obj = calloc(1,  sizeof(*obj) + seq_id_sz)) == NULL ) {
+                    rc = RC(rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted);
+                } else {
+                    memcpy(obj->accession, seq_id, seq_id_sz);
+                    obj->accession_sz = seq_id_sz;
+                    obj->mgr = cmgr;
+                    if( (rc = BSTreeInsertUnique(&mgr->tree, &obj->dad, NULL, RefSeq_Sort)) != 0 ) {
+                        free(obj);
+                    }
+                }
+            }
         }
-        else
-            return rc;
     }
-    mgr->last_used = obj;
-    return rc;
-}
-
-static
-rc_t RefSeqMgr_GetSeqInternal(RefSeqMgr *const mgr, RefSeq const **const cself,
-                              char const seq_id[], unsigned const seq_id_sz)
-{
-    
-    rc_t rc;
-    RefSeq *obj;
-    String s;
-    
-    StringInit(&s, seq_id, seq_id_sz, seq_id_sz);
-    
-    *cself = NULL;
-    if (mgr->last_used != NULL && RefSeq_Cmp(&s, &mgr->last_used->dad) == 0)
-        obj = mgr->last_used;
-    else {
-        obj = (RefSeq*)BSTreeFind(&mgr->tree, &s, RefSeq_Cmp);
-        if (obj == NULL) {
-            obj = calloc(1, sizeof(*obj) + seq_id_sz);
-            if (obj) {
-                memcpy(obj->accession, seq_id, seq_id_sz);
-                obj->accession_sz = seq_id_sz;
-                obj->mgr = mgr;
-                rc = BSTreeInsertUnique(&mgr->tree, &obj->dad, NULL, RefSeq_Sort);
-                if (rc) {
-                    free(obj);
-                    return rc;
+    if( rc == 0 ) {
+        if( obj->reader == NULL ) {
+            const VTable* tbl;
+
+            if( cmgr->num_open_max > 0 && cmgr->num_open >= cmgr->num_open_max ) {
+                RefSeq* old = NULL;
+                BSTreeForEach(&cmgr->tree, false, RefSeq_Unused, &old);
+                if( old != NULL ) {
+                    TableReaderRefSeq_Whack(old->reader);
+                    old->reader = NULL;
+                    mgr->num_open--;
+                }
+            }
+            if( (rc = RefSeqMgr_FindTable(cmgr, obj->accession, obj->accession_sz, &tbl)) == 0 ) {
+                if( (rc = TableReaderRefSeq_MakeTable(&obj->reader, cmgr->vmgr, tbl,
+                                                      cmgr->reader_options, cmgr->cache)) == 0 ) {
+                    mgr->num_open++;
                 }
+                VTableRelease(tbl);
             }
-            else
-                return RC(rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted);
+        }
+        if( rc == 0 ) {
+            mgr->last_used = obj;
         }
     }
-    rc = RefSeqMgr_GetReader(mgr, obj);
-    *cself = obj;
-    
-    return rc;
-}
-
-LIB_EXPORT rc_t CC RefSeqMgr_GetSeq(const RefSeqMgr* cmgr, const RefSeq** cself, const char* seq_id, uint32_t seq_id_sz)
-{
-    rc_t rc;
-
-    if (cmgr == NULL || cself == NULL || seq_id == NULL)
-        rc = RC(rcAlign, rcIndex, rcConstructing, rcParam, rcNull);
-    else
-        rc = RefSeqMgr_GetSeqInternal((RefSeqMgr *)cmgr, cself, seq_id, seq_id_sz);
-
-    if (rc)
+    if( rc == 0 ) {
+        *cself = obj;
+    } else {
         ALIGN_DBGERRP("SEQ_ID: '%.*s'", rc, seq_id_sz, seq_id);
-
+    }
     return rc;
 }
 
-LIB_EXPORT rc_t CC RefSeq_Read(const RefSeq* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                               uint8_t* buffer, INSDC_coord_len* written)
+LIB_EXPORT rc_t CC RefSeq_Read(const RefSeq* cself, int64_t offset, INSDC_coord_len len,
+                               INSDC_dna_text* buffer, INSDC_coord_len* written)
 {
     rc_t rc = 0;
 
     if( cself == NULL || buffer == NULL || written == NULL ) {
         rc = RC(rcAlign, rcFile, rcReading, rcParam, rcNull);
-    }
-    else {
-        RefSeq *const self = (RefSeq *)cself;
-        RefSeqMgr *const mgr = (RefSeqMgr *)self->mgr;
-        
-        rc = RefSeqMgr_GetReader(mgr, self);
-        if (rc == 0) {
-            TableReaderRefSeq const *const reader = self->reader;
-            
-            rc = TableReaderRefSeq_Read(reader, offset, len, buffer, written);
-            if (rc == 0)
-                self->usage = ++mgr->usage;
-        }
+    } else if( (rc = TableReaderRefSeq_Read(cself->reader, offset, len, buffer, written)) == 0 ) {
+        ((RefSeq*)cself)->usage = ++((RefSeqMgr*)cself->mgr)->usage;
     }
     ALIGN_DBGERR(rc);
     return rc;
@@ -776,7 +514,7 @@ LIB_EXPORT rc_t CC RefSeq_Circular(const RefSeq* cself, bool* circular)
     return rc;
 }
 
-LIB_EXPORT rc_t CC RefSeq_SeqLength(const RefSeq* cself, INSDC_coord_len* len)
+LIB_EXPORT rc_t CC RefSeq_SeqLength(const RefSeq* cself, uint64_t* len)
 {
     rc_t rc = 0;
 
diff --git a/libs/align/writer-alignment.c b/libs/align/writer-alignment.c
index 63b54f7..7605f60 100644
--- a/libs/align/writer-alignment.c
+++ b/libs/align/writer-alignment.c
@@ -28,7 +28,6 @@
 #include <klib/rc.h>
 #include <insdc/insdc.h>
 #include <vdb/database.h>
-#include <vdb/cursor.h>
 #include <align/writer-alignment.h>
 #include "writer-priv.h"
 #include "reader-cmn.h"
@@ -45,41 +44,38 @@
 static const TableWriterColumn TableWriterAlgn_cols[ewalgn_cn_Last + 1] =
 {
     /* order is important, see enum in .h !!! */
-    {0, "TMP_KEY_ID", sizeof(uint64_t) * 8, ewcol_Temporary | ewcol_Ignore},
+    {0, "TMP_KEY_ID", sizeof(uint32_t) * 8, ewcol_Temporary | ewcol_Ignore},
     {0, "PLOIDY", sizeof(uint32_t) * 8, ewcol_Ignore},
     {0, "SEQ_SPOT_ID", sizeof(int64_t) * 8, ewcol_IsArray | ewcol_Ignore},
     {0, "SEQ_READ_ID", sizeof(INSDC_coord_one) * 8, ewcol_IsArray },
     {0, "READ_START", sizeof(INSDC_coord_zero) * 8, ewcol_IsArray | ewcol_Ignore},
     {0, "READ_LEN", sizeof(INSDC_coord_len) * 8, ewcol_IsArray | ewcol_Ignore},
-    {0, "REF_ID", sizeof(int64_t) * 8, ewcol_Ignore},
-    {0, "REF_START", sizeof(INSDC_coord_zero) * 8, ewcol_Ignore},
-    {0, "GLOBAL_REF_START", sizeof(uint64_t) * 8, 0},
-    {0, "REF_LEN", sizeof(INSDC_coord_len) * 8, 0},
-    {0, "REF_ORIENTATION", sizeof(bool) * 8, 0},
+    {0, "REF_ID", sizeof(int64_t) * 8, ewcol_IsArray | ewcol_Ignore},
+    {0, "REF_START", sizeof(INSDC_coord_zero) * 8, ewcol_IsArray | ewcol_Ignore},
+    {0, "GLOBAL_REF_START", sizeof(uint64_t) * 8, ewcol_IsArray},
+    {0, "REF_LEN", sizeof(INSDC_coord_len) * 8, ewcol_IsArray | ewcol_Ignore},
+    {0, "REF_ORIENTATION", sizeof(bool) * 8, ewcol_IsArray},
     {0, "REF_PLOIDY", sizeof(uint32_t) * 8, ewcol_IsArray | ewcol_Ignore},
     {0, "MATE_REF_ORIENTATION", sizeof(bool) * 8, ewcol_Ignore},
     {0, "MATE_REF_ID", sizeof(int64_t) * 8, ewcol_Ignore},
     {0, "MATE_REF_POS", sizeof(INSDC_coord_zero) * 8, ewcol_Ignore},
     {0, "MATE_ALIGN_ID", sizeof(int64_t) * 8, ewcol_Ignore},
     {0, "TEMPLATE_LEN", sizeof(INSDC_coord_zero) * 8, ewcol_Ignore},
-    {0, "MAPQ", sizeof(int32_t) * 8, 0},
+    {0, "MAPQ", sizeof(int32_t) * 8, ewcol_IsArray},
     {0, "HAS_MISMATCH", sizeof(bool) * 8, ewcol_IsArray},
     {0, "(bool)HAS_REF_OFFSET", sizeof(bool) * 8, ewcol_IsArray},
     {0, "MISMATCH", sizeof(INSDC_dna_text) * 8, ewcol_IsArray},
-    {0, "REF_OFFSET", sizeof(int32_t) * 8, ewcol_IsArray},
-    {0, "EVIDENCE_ALIGNMENT_IDS", sizeof(int64_t) * 8, ewcol_IsArray | ewcol_Ignore},
-    {0, "ALIGN_GROUP", sizeof(char) * 8, ewcol_IsArray | ewcol_Ignore }
+    {0, "REF_OFFSET", sizeof(int32_t) * 8, ewcol_IsArray}
 };
 
 static const TableReaderColumn TableAlgnReadTmpKey_cols[] = {
-    {0, "TMP_KEY_ID", {NULL}, 0, 0},
-    {0, NULL, {NULL}, 0, 0}
+    {0, "TMP_KEY_ID", NULL, 0, 0},
+    {0, NULL, NULL, 0, 0}
 };
 
 struct TableWriterAlgn {
     uint32_t options;
     const TableWriter* base;
-    const char* ref_table_name;
     uint8_t cursor_id;
     TableWriterColumn cols[sizeof(TableWriterAlgn_cols)/sizeof(TableWriterAlgn_cols[0])];
     uint8_t spotid_cursor_id;
@@ -102,22 +98,17 @@ LIB_EXPORT rc_t CC TableWriterAlgn_Make(const TableWriterAlgn** cself, VDatabase
         if( self == NULL ) {
             rc = RC(rcAlign, rcFormatter, rcConstructing, rcMemory, rcExhausted);
         } else {
-            self->ref_table_name = "REFERENCE";
             memcpy(self->cols, TableWriterAlgn_cols, sizeof(TableWriterAlgn_cols));
             switch(type) {
             case ewalgn_tabletype_PrimaryAlignment:
                 tbl_nm = "PRIMARY_ALIGNMENT";
-                self->cols[ewalgn_cn_ALIGN_GROUP].flags &= ~ewcol_Ignore;
                 break;
             case ewalgn_tabletype_SecondaryAlignment:
                 tbl_nm = "SECONDARY_ALIGNMENT";
-#if 0
+                self->cols[ewalgn_cn_REF_LEN].flags &= ~ewcol_Ignore;
                 self->cols[ewalgn_cn_HAS_MISMATCH].flags |= ewcol_Ignore;
                 self->cols[ewalgn_cn_MISMATCH].flags |= ewcol_Ignore;
-#else
-                self->cols[ewalgn_cn_MISMATCH].name = "TMP_MISMATCH";
-                self->cols[ewalgn_cn_HAS_MISMATCH].name = "TMP_HAS_MISMATCH";
-#endif
+
                 self->cols[ewalgn_cn_MATE_REF_ORIENTATION].flags &= ~ewcol_Ignore;
                 self->cols[ewalgn_cn_MATE_REF_ID].flags &= ~ewcol_Ignore;
                 self->cols[ewalgn_cn_MATE_REF_POS].flags &= ~ewcol_Ignore;
@@ -128,21 +119,14 @@ LIB_EXPORT rc_t CC TableWriterAlgn_Make(const TableWriterAlgn** cself, VDatabase
                 tbl_nm = "EVIDENCE_INTERVAL";
                 options |= ewalgn_co_unsorted;
                 options |= ewalgn_co_PLOIDY;
-                self->cols[ewalgn_cn_SEQ_SPOT_ID].flags |= ewcol_Ignore;
                 self->cols[ewalgn_cn_SEQ_READ_ID].flags |= ewcol_Ignore;
-                self->cols[ewalgn_cn_EVIDENCE_ALIGNMENT_IDS].flags &= ~ewcol_Ignore;
                 break;
             case ewalgn_tabletype_EvidenceAlignment:
                 tbl_nm = "EVIDENCE_ALIGNMENT";
-                self->ref_table_name = "EVIDENCE_INTERVAL";
+                self->cols[ewalgn_cn_REF_LEN].flags &= ~ewcol_Ignore;
                 self->cols[ewalgn_cn_REF_PLOIDY].flags &= ~ewcol_Ignore;
-#if 0
                 self->cols[ewalgn_cn_HAS_MISMATCH].flags |= ewcol_Ignore;
                 self->cols[ewalgn_cn_MISMATCH].flags |= ewcol_Ignore;
-#else
-		self->cols[ewalgn_cn_MISMATCH].name = "TMP_MISMATCH";
-                self->cols[ewalgn_cn_HAS_MISMATCH].name = "TMP_HAS_MISMATCH";
-#endif
                 options |= ewalgn_co_unsorted;
                 break;
             default:
@@ -163,20 +147,8 @@ LIB_EXPORT rc_t CC TableWriterAlgn_Make(const TableWriterAlgn** cself, VDatabase
                 self->cols[ewalgn_cn_REF_ID].flags &= ~ewcol_Ignore;
                 self->cols[ewalgn_cn_REF_START].flags &= ~ewcol_Ignore;
                 self->cols[ewalgn_cn_GLOBAL_REF_START].flags |= ewcol_Ignore;
-                if( type == ewalgn_tabletype_SecondaryAlignment ) {
-                    self->cols[ewalgn_cn_MISMATCH].name = "TMP_MISMATCH";
-                    self->cols[ewalgn_cn_MISMATCH].flags &= ~ewcol_Ignore;
-                    self->cols[ewalgn_cn_HAS_MISMATCH].name = "TMP_HAS_MISMATCH";
-                    self->cols[ewalgn_cn_HAS_MISMATCH].flags &= ~ewcol_Ignore;
-                }
-            }
-            if( options & ewalgn_co_MATE_ALIGN_ID_only ) {
-                self->cols[ewalgn_cn_MATE_REF_ORIENTATION].flags |= ewcol_Ignore;
-                self->cols[ewalgn_cn_MATE_REF_ID].flags |= ewcol_Ignore;
-                self->cols[ewalgn_cn_MATE_REF_POS].flags |= ewcol_Ignore;
-                self->cols[ewalgn_cn_TEMPLATE_LEN].flags |= ewcol_Ignore;
             }
-            if( (rc = TableWriter_Make(&self->base, db, tbl_nm, NULL)) == 0 ) {
+            if( (rc = TableWriter_Make(&self->base, db, tbl_nm)) == 0 ) {
                 rc = TableWriter_AddCursor(self->base, self->cols, sizeof(self->cols)/sizeof(self->cols[0]), &self->cursor_id);
                 self->options = options;
             }
@@ -196,20 +168,7 @@ LIB_EXPORT rc_t CC TableWriterAlgn_Whack(const TableWriterAlgn* cself, bool comm
 {
     rc_t rc = 0;
     if( cself != NULL ) {
-        VTable* vtbl;
-
         TableReader_Whack(cself->tmpkey_reader);
-        if( (rc = TableWriter_GetVTable(cself->base, &vtbl)) == 0 ) {
-            KMetadata* meta;
-            if( (rc = VTableOpenMetadataUpdate(vtbl, &meta)) == 0 ) {
-                KMDataNode* node;
-                if( (rc = KMetadataOpenNodeUpdate(meta, &node, "CONFIG/REF_TABLE")) == 0 ) {
-                    rc = KMDataNodeWriteCString(node, cself->ref_table_name);
-                    KMDataNodeRelease(node);
-                }
-                KMetadataRelease(meta);
-            }
-        }
         rc = TableWriter_Whack(cself->base, commit, rows);
         free((TableWriterAlgn*)cself);
     }
@@ -249,24 +208,17 @@ LIB_EXPORT rc_t CC TableWriterAlgn_Write(const TableWriterAlgn* cself, const Tab
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_GLOBAL_REF_START], data->global_ref_start);
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_HAS_MISMATCH], data->has_mismatch);
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_MISMATCH], data->mismatch);
-        TW_COL_WRITE_VAR(cself->base, cself->cols[ewalgn_cn_REF_LEN], data->ref_len);
+        TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_REF_LEN], data->ref_len);
 
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_REF_ORIENTATION], data->ref_orientation);
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_REF_PLOIDY], data->ref_ploidy);
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_MAPQ], data->mapq);
 
-        if( data->mate_align_id.elements != 1 ) {
-            TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_MATE_ALIGN_ID], data->mate_align_id);
-        } else {
-            TW_COL_WRITE_BUF(cself->base, cself->cols[ewalgn_cn_MATE_ALIGN_ID], data->mate_align_id.buffer,
-                             ((const int64_t*)(data->mate_align_id.buffer))[0] ? 1 : 0);
-        }
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_MATE_REF_ORIENTATION], data->mate_ref_orientation);
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_MATE_REF_ID], data->mate_ref_id);
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_MATE_REF_POS], data->mate_ref_pos);
+        TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_MATE_ALIGN_ID], data->mate_align_id);
         TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_TEMPLATE_LEN], data->template_len);
-        TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_EVIDENCE_ALIGNMENT_IDS], data->alingment_ids);
-        TW_COL_WRITE(cself->base, cself->cols[ewalgn_cn_ALIGN_GROUP], data->align_group);
 
         if( rc == 0 ) {
             rc = TableWriter_CloseRow(cself->base);
@@ -287,7 +239,7 @@ LIB_EXPORT rc_t CC TableWriterAlgn_TmpKeyStart(const TableWriterAlgn* cself)
         ALIGN_DBGERR(rc);
     } else if( (rc = TableWriter_CloseCursor(cself->base, cself->cursor_id, NULL)) == 0 ) {
         TableWriterAlgn* self = (TableWriterAlgn*)cself;
-        VTable* vtbl = NULL;
+        const VTable* vtbl = NULL;
         memcpy(&self->cols_read_tmpkey, &TableAlgnReadTmpKey_cols, sizeof(TableAlgnReadTmpKey_cols));
         if( (rc = TableWriter_GetVTable(cself->base, &vtbl)) == 0 &&
             (rc = TableReader_Make(&self->tmpkey_reader, vtbl, self->cols_read_tmpkey, 50 * 1024 * 1024)) == 0 ) {
@@ -303,7 +255,7 @@ LIB_EXPORT rc_t CC TableWriterAlgn_TmpKeyStart(const TableWriterAlgn* cself)
     return rc;
 }
 
-LIB_EXPORT rc_t CC TableWriterAlgn_TmpKey(const TableWriterAlgn* cself, int64_t rowid, uint64_t* key_id)
+LIB_EXPORT rc_t CC TableWriterAlgn_TmpKey(const TableWriterAlgn* cself, int64_t rowid, uint32_t* key_id)
 {
     rc_t rc = 0;
 
@@ -314,7 +266,7 @@ LIB_EXPORT rc_t CC TableWriterAlgn_TmpKey(const TableWriterAlgn* cself, int64_t
         rc = RC( rcAlign, rcType, rcReading, rcMode, rcNotOpen);
         ALIGN_DBGERR(rc);
     } else if( (rc = TableReader_ReadRow(cself->tmpkey_reader, rowid)) == 0 ) {
-        memcpy(key_id, cself->cols_read_tmpkey[0].base.var, sizeof(*key_id));
+        memcpy(key_id, cself->cols_read_tmpkey[0].base, sizeof(*key_id));
     }
     return rc;
 }
@@ -337,3 +289,45 @@ LIB_EXPORT rc_t CC TableWriterAlgn_Write_SpotId(const TableWriterAlgn* cself, in
     }
     return rc;
 }
+
+LIB_EXPORT rc_t CC TableWriterAlgn_ReverseCompliment(const INSDC_dna_text* seq, INSDC_dna_text* cmpl, uint32_t len)
+{
+    rc_t rc = 0;
+    uint32_t i;
+    static INSDC_dna_text compl[256] = "~";
+
+    if( seq == NULL || compl == NULL ) {
+        rc = RC( rcAlign, rcType, rcConverting, rcParam, rcNull);
+    } else {
+        if( compl[0] == '~' ) {
+            INSDC_dna_text* x = (INSDC_dna_text*)&compl[0];
+            memset(x, 0, sizeof(compl));
+            x['A'] = x['a'] = 'T';
+            x['T'] = x['t'] = 'A';
+            x['U'] = x['u'] = 'A';
+            x['G'] = x['g'] = 'C';
+            x['C'] = x['c'] = 'G';
+            x['Y'] = x['y'] = 'R';
+            x['R'] = x['r'] = 'Y';
+            x['S'] = x['s'] = 'S';
+            x['W'] = x['w'] = 'W';
+            x['K'] = x['k'] = 'M';
+            x['M'] = x['m'] = 'K';
+            x['B'] = x['b'] = 'V';
+            x['D'] = x['d'] = 'H';
+            x['H'] = x['h'] = 'D';
+            x['V'] = x['v'] = 'B';
+            x['N'] = x['n'] = 'N';
+        }
+        cmpl += len;
+        for(i = 0; i < len; i++) {
+            *--cmpl= compl[(int)seq[i]];
+            if( *cmpl == '\0' ) {
+                rc = RC(rcAlign, rcFormatter, rcWriting, rcData, rcInvalid);
+                break;
+            }
+        }
+    }
+    ALIGN_DBGERR(rc);
+    return rc;
+}
diff --git a/libs/align/writer-cmn.c b/libs/align/writer-cmn.c
index df4b0fa..d99262b 100644
--- a/libs/align/writer-cmn.c
+++ b/libs/align/writer-cmn.c
@@ -25,10 +25,6 @@
 */
 #include <klib/rc.h>
 #include <klib/log.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <kdb/meta.h>
-#include <kapp/main.h>
 #include <vdb/table.h>
 #include <vdb/cursor.h>
 #include <vdb/schema.h>
@@ -40,7 +36,6 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <time.h>
 
 #define TW_MAX_CURSORS 8
 
@@ -72,11 +67,11 @@ rc_t TableWriter_Init(TableWriter** self, const char* table, const char* table_p
     } else if( (*self = calloc(1, sizeof(**self))) == NULL ) {
         rc = RC(rcAlign, rcType, rcConstructing, rcMemory, rcExhausted);
     } else {
-        (*self)->table = string_dup( table, string_size( table ) );
+        (*self)->table = strdup(table);
         if( (*self)->table == NULL ) {
             rc = RC(rcAlign, rcType, rcConstructing, rcMemory, rcExhausted);
         } else if( table_path != NULL ) {
-            (*self)->table_path = string_dup( table_path, string_size( table_path ) );
+            (*self)->table_path = strdup(table_path);
             if( (*self)->table_path == NULL ) {
                 rc = RC(rcAlign, rcType, rcConstructing, rcMemory, rcExhausted);
             }
@@ -101,7 +96,7 @@ rc_t TableWriter_OpenCursor(const TableWriter* cself, uint8_t cursor_id)
             } else if( self->is_update ) {
                 rc = VDatabaseOpenTableUpdate(self->vdb, &self->vtbl, self->table);
             } else {
-                rc = VDatabaseCreateTable(self->vdb, &self->vtbl, self->table, kcmCreate | kcmMD5, self->table_path);
+                rc = VDatabaseCreateTable(self->vdb, &self->vtbl, self->table, kcmCreate | kcmMD5, self->table);
             }
         }
 
@@ -134,14 +129,14 @@ rc_t TableWriter_OpenCursor(const TableWriter* cself, uint8_t cursor_id)
     return rc;
 }
 
-rc_t CC TableWriter_Make(const TableWriter** cself, VDatabase *db, const char* table, const char* table_path)
+rc_t CC TableWriter_Make(const TableWriter** cself, VDatabase *db, const char* table)
 {
     rc_t rc = 0;
     TableWriter* obj = NULL;
 
     if( cself == NULL ) {
         rc = RC(rcAlign, rcType, rcConstructing, rcParam, rcNull);
-    } else if( (rc = TableWriter_Init(&obj, table, table_path ? table_path : table)) == 0 &&
+    } else if( (rc = TableWriter_Init(&obj, table, NULL)) == 0 &&
                (rc = VDatabaseAddRef(db)) == 0 ) {
         obj->vdb = db;
     }
@@ -150,7 +145,7 @@ rc_t CC TableWriter_Make(const TableWriter** cself, VDatabase *db, const char* t
         ALIGN_DBG("table %s opened for writing", (*cself)->table);
     } else {
         TableWriter_Whack(obj, false, NULL);
-        ALIGN_DBGERRP("table %s at %s", rc, table, table_path);
+        ALIGN_DBGERRP("table %s", rc, table);
     }
     return rc;
 }
@@ -201,7 +196,7 @@ rc_t CC TableWriter_MakeUpdate(const TableWriter** cself, VDatabase *db, const c
     return rc;
 }
 
-rc_t CC TableWriter_GetVTable(const TableWriter* cself, VTable** vtbl)
+rc_t CC TableWriter_GetVTable(const TableWriter* cself, const VTable** vtbl)
 {
     rc_t rc = 0;
 
@@ -213,66 +208,6 @@ rc_t CC TableWriter_GetVTable(const TableWriter* cself, VTable** vtbl)
     return rc;
 }
 
-rc_t CC TableWriter_Sign(const TableWriter* cself, const char* argv0, const char* argv0_date, const char* app_name, ver_t app_version)
-{
-    rc_t rc = 0;
-    KMetadata* meta = NULL;
-    KMDataNode* root = NULL;
-
-    if( cself == NULL || argv0 == NULL || argv0_date == NULL || app_name == NULL || app_version == 0 ) {
-        rc = RC(rcAlign, rcMetadata, rcWriting, rcParam, rcNull);
-    } else if( (rc = VTableOpenMetadataUpdate(cself->vtbl, &meta)) == 0 &&
-               (rc = KMetadataOpenNodeUpdate(meta, &root, "/")) == 0 ) {
-        KMDataNode *node = NULL;
-        if( (rc = KMDataNodeOpenNodeUpdate(root, &node, "SOFTWARE")) == 0 ) {
-            char str_vers[64];
-            KMDataNode *subNode = NULL;
-            if( (rc = KMDataNodeOpenNodeUpdate(node, &subNode, "loader")) == 0 ) {
-                if( (rc = string_printf(str_vers, sizeof(str_vers), NULL, "%V", KAppVersion())) == 0 ) {
-                    rc = KMDataNodeWriteAttr(subNode, "vers", str_vers);
-                }
-                if(rc == 0) {
-                    rc = KMDataNodeWriteAttr(subNode, "date", argv0_date);
-                }
-                if(rc == 0) {
-                    const char* tool_name = strrchr(argv0, '/');
-                    const char* r = strrchr(argv0, '\\');
-                    if( tool_name != NULL && r != NULL && tool_name < r ) {
-                        tool_name = r;
-                    }
-                    if( tool_name++ == NULL) {
-                        tool_name = argv0;
-                    }
-                    rc = KMDataNodeWriteAttr(subNode, "name", tool_name);
-                }
-                KMDataNodeRelease(subNode);
-            }
-            if(rc == 0 && (rc = KMDataNodeOpenNodeUpdate(node, &subNode, "formatter")) == 0 ) {
-                if( (rc = string_printf(str_vers, sizeof(str_vers), NULL, "%V", app_version)) == 0 ) {
-                    rc = KMDataNodeWriteAttr(subNode, "vers", str_vers);
-                }
-                if(rc == 0) {
-                    rc = KMDataNodeWriteAttr(subNode, "name", app_name ? app_name : "internal");
-                }
-                KMDataNodeRelease(subNode);
-            }
-            KMDataNodeRelease(node);
-        }
-        if( rc == 0 && (rc = KMDataNodeOpenNodeUpdate(root, &node, "LOAD")) == 0 ) {
-            KMDataNode *subNode = NULL;
-            if( (rc = KMDataNodeOpenNodeUpdate(node, &subNode, "timestamp")) == 0 ) {
-                time_t t = time(NULL);
-                rc = KMDataNodeWrite(subNode, &t, sizeof(t));
-                KMDataNodeRelease(subNode);
-            }
-            KMDataNodeRelease(node);
-        }
-    }
-    KMDataNodeRelease(root);
-    KMetadataRelease(meta);
-    return rc;
-}
-
 rc_t CC TableWriter_Whack(const TableWriter* cself, bool commit, uint64_t* rows)
 {
     rc_t rc = 0;
@@ -288,12 +223,10 @@ rc_t CC TableWriter_Whack(const TableWriter* cself, bool commit, uint64_t* rows)
             if( self->cursors[i].col_qty > 0 ) {
                 self->curr = &self->cursors[i];
                 if( self->curr->cursor != NULL ) {
-                    rc_t rc1 = 0, rc2;
                     if( commit ) {
-                        rc1 = VCursorCommit(self->curr->cursor);
+                        rc = VCursorCommit(self->curr->cursor);
                     }
-                    rc2 = VCursorRelease(self->curr->cursor);
-                    rc = rc ? rc : (rc1 ? rc1 : rc2);
+                    VCursorRelease(self->curr->cursor);
                     self->curr->cursor = NULL;
                 }
                 if( i == 0 && rows != NULL ) {
@@ -306,11 +239,11 @@ rc_t CC TableWriter_Whack(const TableWriter* cself, bool commit, uint64_t* rows)
                 self->curr = &self->cursors[i];
                 for(j = 0; j < self->curr->col_qty; j++) {
                     if( self->curr->cols[j].idx != 0 && (self->curr->cols[j].flags & ewcol_Temporary) ) {
-                        rc_t rc1;
-                        if( (rc1 = VTableDropColumn(self->vtbl, self->curr->cols[j].name)) != 0 ) {
-                            (void)PLOGERR(klogWarn, (klogWarn, rc1,
+                        if( (rc = VTableDropColumn(self->vtbl, self->curr->cols[j].name)) != 0 ) {
+                            (void)PLOGERR(klogWarn, (klogWarn, rc,
                                 "table $(table) failed to drop temporary column '$(column)'",
                                 "table=%s,column=%s", self->table, self->curr->cols[j].name));
+                            rc = 0;
                         } else {
                             ALIGN_DBG("table %s dropped tmp col %s", self->table, self->curr->cols[j].name);
                         }
@@ -318,7 +251,7 @@ rc_t CC TableWriter_Whack(const TableWriter* cself, bool commit, uint64_t* rows)
                 }
             }
         }
-        if( commit && rc == 0 && self->vtbl != NULL ) {
+        if( commit && rc == 0 ) {
             rc = VTableReindex(self->vtbl);
         }
         VTableRelease(self->vtbl);
@@ -401,25 +334,6 @@ rc_t CC TableWriter_CloseCursor(const TableWriter* cself, uint8_t cursor_id, uin
     return rc;
 }
 
-rc_t CC TableWriter_Flush(const TableWriter *cself, const uint8_t cursor_id)
-{
-    rc_t rc = 0;
-    
-    if( cself == NULL || cursor_id >= TW_MAX_CURSORS || cself->cursors[cursor_id].col_qty == 0 ) {
-        rc = RC(rcAlign, rcType, rcOpening, rcParam, rcInvalid);
-        ALIGN_DBGERR(rc);
-    }
-    else if( cself->cursors[cursor_id].cursor != NULL ) {
-        rc = VCursorFlushPage(cself->cursors[cursor_id].cursor);
-        if( rc == 0 ) {
-            ALIGN_DBG("table %s cursor %hu flushed", cself->table, cursor_id);
-        } else {
-            ALIGN_DBGERRP("table %s cursor %hu flushing", rc, cself->table, cursor_id);
-        }
-    }
-    return rc;
-}
-
 rc_t CC TableWriter_OpenRow(const TableWriter* cself, int64_t* rowid, const uint8_t cursor_id)
 {
     rc_t rc = 0;
diff --git a/libs/align/writer-priv.h b/libs/align/writer-priv.h
index a9099a8..199c92b 100644
--- a/libs/align/writer-priv.h
+++ b/libs/align/writer-priv.h
@@ -29,7 +29,6 @@
 #include <vdb/manager.h>
 #include <vdb/database.h>
 #include <vdb/table.h>
-#include <kdb/meta.h>
 
 #include <align/writer-cmn.h>
 
@@ -49,7 +48,7 @@ typedef struct TableWriterColumn_struct {
 
 typedef struct TableWriter TableWriter;
 
-rc_t CC TableWriter_Make(const TableWriter** cself, VDatabase *db, const char* table, const char* table_path /* NULL */);
+rc_t CC TableWriter_Make(const TableWriter** cself, VDatabase *db, const char* table);
 
 rc_t CC TableWriter_MakeMgr(const TableWriter** cself, VDBManager* mgr, const char* schema_path, const char* type, const char* table_path);
 
@@ -58,9 +57,7 @@ rc_t CC TableWriter_MakeUpdate(const TableWriter** cself, VDatabase *db, const c
 /* add scursor based on column list */
 rc_t CC TableWriter_AddCursor(const TableWriter* cself, TableWriterColumn* cols, uint32_t col_qty, uint8_t* cursor_id);
 
-rc_t CC TableWriter_GetVTable(const TableWriter* cself, VTable** vtbl);
-
-rc_t CC TableWriter_Sign(const TableWriter* cself, const char* argv0, const char* argv0_date, const char* app_name, ver_t app_version);
+rc_t CC TableWriter_GetVTable(const TableWriter* cself, const VTable** vtbl);
 
 /* optionally return internal vtbl still open but committed */
 rc_t CC TableWriter_Whack(const TableWriter* cself, bool commit, uint64_t* rows);
@@ -68,9 +65,6 @@ rc_t CC TableWriter_Whack(const TableWriter* cself, bool commit, uint64_t* rows)
 /* commits and closes cursor_id, returns number of rows written in cursor, optionally */
 rc_t CC TableWriter_CloseCursor(const TableWriter* cself, uint8_t cursor_id, uint64_t* rows);
 
-/* flushes any pending writes into the table */
-rc_t CC TableWriter_Flush(const TableWriter *cself, const uint8_t cursor_id);
-
 /* CANNOT OPEN ROWS IN MULTIPLE CURSORS AT ONCE
     Use sequence:
     OpenRow
diff --git a/libs/align/writer-ref.c b/libs/align/writer-ref.c
index d4d04a9..bbde6d1 100644
--- a/libs/align/writer-ref.c
+++ b/libs/align/writer-ref.c
@@ -26,7 +26,6 @@
 #include <align/extern.h>
 
 #include <klib/rc.h>
-#include <kfs/file.h>
 #include <insdc/insdc.h>
 #include <vdb/table.h>
 #include <align/writer-refseq.h>
@@ -63,11 +62,8 @@ static const TableWriterColumn TableWriterRefCoverage_cols[ewrefcv_cn_Last + 1]
     {0, "CGRAPH_LOW", sizeof(uint8_t) * 8, 0},
     {0, "CGRAPH_MISMATCHES", sizeof(uint32_t) * 8, 0},
     {0, "CGRAPH_INDELS", sizeof(uint32_t) * 8, 0},
-    {0, "OVERLAP_REF_POS", sizeof(INSDC_coord_zero) * 8, ewcol_IsArray},
-    {0, "OVERLAP_REF_LEN", sizeof(INSDC_coord_len) * 8, ewcol_IsArray},
     {0, "PRIMARY_ALIGNMENT_IDS", sizeof(int64_t) * 8, ewcol_IsArray},
-    {0, "SECONDARY_ALIGNMENT_IDS", sizeof(int64_t) * 8, ewcol_IsArray},
-    {0, "EVIDENCE_INTERVAL_IDS", sizeof(int64_t) * 8, ewcol_IsArray}
+    {0, "SECONDARY_ALIGNMENT_IDS", sizeof(int64_t) * 8, ewcol_IsArray}
 };
 
 struct TableWriterRef {
@@ -102,7 +98,7 @@ rc_t CC TableWriterRef_Make(const TableWriterRef** cself, VDatabase* db, const u
             if( !(options & ewref_co_QUALITY) ) {
                 self->cols_data[ewrefd_cn_QUALITY].flags |= ewcol_Ignore;
             }
-            if( (rc = TableWriter_Make(&self->base, db, "REFERENCE", NULL)) == 0 &&
+            if( (rc = TableWriter_Make(&self->base, db, "REFERENCE")) == 0 &&
                 (rc = TableWriter_AddCursor(self->base, self->cols_data,
                             sizeof(self->cols_data) / sizeof(self->cols_data[0]), &self->cursor_id)) == 0 ) {
                 self->options = options;
@@ -175,17 +171,13 @@ rc_t TableWriterRef_WriteDefaults(const TableWriterRef* cself)
             ReferenceSeqCoverage c;
 
             memset(&c, 0, sizeof(c));
+            c.primary_ids.buffer = c.secondary_ids.buffer = &c;
             TW_COL_WRITE_DEF_VAR(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_CGRAPH_HIGH], c.low);
             TW_COL_WRITE_DEF_VAR(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_CGRAPH_LOW], c.high);
             TW_COL_WRITE_DEF_VAR(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_CGRAPH_MISMATCHES], c.mismatches);
             TW_COL_WRITE_DEF_VAR(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_CGRAPH_INDELS], c.indels);
-            TW_COL_WRITE_DEF_BUF(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_OVERLAP_REF_POS],
-                    c.overlap_ref_pos, sizeof(c.overlap_ref_pos) / sizeof(c.overlap_ref_pos[0]));
-            TW_COL_WRITE_DEF_BUF(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_OVERLAP_REF_LEN],
-                    c.overlap_ref_len, sizeof(c.overlap_ref_len) / sizeof(c.overlap_ref_len[0]));
-            TW_COL_WRITE_DEF(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_PRIMARY_ALIGNMENT_IDS], c.ids[ewrefcov_primary_table]);
-            TW_COL_WRITE_DEF(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_SECONDARY_ALIGNMENT_IDS], c.ids[ewrefcov_secondary_table]);
-            TW_COL_WRITE_DEF(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_EVIDENCE_INTERVAL_IDS], c.ids[ewrefcov_evidence_table]);
+            TW_COL_WRITE_DEF(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_PRIMARY_ALIGNMENT_IDS], c.primary_ids);
+            TW_COL_WRITE_DEF(self->base, self->coverage_cursor_id, self->cols_coverage[ewrefcv_cn_SECONDARY_ALIGNMENT_IDS], c.secondary_ids);
         }
     }
     return rc;
@@ -241,10 +233,8 @@ rc_t CC TableWriterRef_Write(const TableWriterRef* cself, const TableWriterRefDa
         ALIGN_DBGERRP("%s is longer than %s", rc, cself->cols_data[ewrefd_cn_READ].name, cself->cols_data[ewrefd_cn_MAX_SEQ_LEN].name);
     } else if( (rc = TableWriter_OpenRow(cself->base, rowid, cself->cursor_id)) == 0 ) {
         const INSDC_dna_text* b = data->read.buffer;
-        INSDC_coord_len const len = data->read.elements;
+        INSDC_coord_len len = data->read.elements;
         bool write_read = data->seq_id.elements < 1 || data->force_READ_write;
-        INSDC_coord_len trim_len = len;
-        
         if( cself->last_seq_id_len != data->seq_id.elements ||
             strncmp(cself->last_seq_id, data->seq_id.buffer, cself->last_seq_id_len) != 0 ) {
             /* new seq_id: reset counters and mem it */
@@ -255,43 +245,32 @@ rc_t CC TableWriterRef_Write(const TableWriterRef* cself, const TableWriterRefDa
             self->last_cs_key = 'T';
         }
         /* trunc trailing N */
-        b += len - 1;
-        while( trim_len > 0 && (*b == 'N' || *b == 'n' || *b == '.') ) {
-            trim_len--; b--;
+        while( len > 0 && toupper(b[len - 1]) == 'N' ) {
+            len--;
         }
         TW_COL_WRITE(cself->base, cself->cols_data[ewrefd_cn_NAME], data->name);
-        TW_COL_WRITE_BUF(cself->base, cself->cols_data[ewrefd_cn_READ], data->read.buffer, (write_read ? trim_len : 0));
+        TW_COL_WRITE_BUF(cself->base, cself->cols_data[ewrefd_cn_READ], data->read.buffer, (write_read ? len : 0));
         TW_COL_WRITE(cself->base, cself->cols_data[ewrefd_cn_QUALITY], data->quality);
         TW_COL_WRITE(cself->base, cself->cols_data[ewrefd_cn_SEQ_ID], data->seq_id);
-        if( trim_len == 0 ) {
-            TW_COL_WRITE_VAR(cself->base, cself->cols_data[ewrefd_cn_SEQ_START], trim_len);
+        if( len == 0 ) {
+            TW_COL_WRITE_VAR(cself->base, cself->cols_data[ewrefd_cn_SEQ_START], len);
         } else {
             TW_COL_WRITE_VAR(cself->base, cself->cols_data[ewrefd_cn_SEQ_START], cself->seq_start_last);
         }
-        TW_COL_WRITE_VAR(cself->base, cself->cols_data[ewrefd_cn_SEQ_LEN], len);
+        TW_COL_WRITE_VAR(cself->base, cself->cols_data[ewrefd_cn_SEQ_LEN], data->read.elements);
         TW_COL_WRITE_VAR(cself->base, cself->cols_data[ewrefd_cn_CS_KEY], cself->last_cs_key);
         TW_COL_WRITE_VAR(cself->base, cself->cols_data[ewrefd_cn_CIRCULAR], data->circular);
         if( rc == 0 && (rc = TableWriter_CloseRow(cself->base)) == 0 ) {
             TableWriterRef* self = (TableWriterRef*)cself;
             
             self->last_cs_key = ((const char*)(data->read.buffer))[data->read.elements - 1];
-            switch (self->last_cs_key) {
-            case 'A':
-            case 'C':
-            case 'G':
-            case 'T':
-                break;
-            default:
-                self->last_cs_key = 'T';
-                break;
-            }
             self->seq_start_last += data->read.elements;
         }
     }
     return rc;
 }
 
-rc_t CC TableWriterRef_WriteCoverage(const TableWriterRef* cself, int64_t rowid, INSDC_coord_zero offset, const ReferenceSeqCoverage* coverage)
+rc_t CC TableWriterRef_WriteCoverage(const TableWriterRef* cself, int64_t rowid, int64_t offset, const ReferenceSeqCoverage* coverage)
 {
     rc_t rc = 0;
 
@@ -305,11 +284,11 @@ rc_t CC TableWriterRef_WriteCoverage(const TableWriterRef* cself, int64_t rowid,
         ALIGN_DBGERRP("coverage %s", rc, "data");
     } else if( offset > cself->seq_start_last ) {
         rc = RC(rcAlign, rcType, rcWriting, rcData, rcInvalid);
-        ALIGN_DBGERRP("%i is beyond last written chunk", rc, offset);
+        ALIGN_DBGERRP("%lu is beyond last written chunk", rc, offset);
     } else {
         if( (rowid + offset / cself->max_seq_len) - cself->last_coverage_row > 1 ) {
             /* fill in gap in coverage rows with default values */
-            ALIGN_DBG("gap in coverage rows (%li,%li) -> use defaults", cself->last_coverage_row, rowid + offset / cself->max_seq_len);
+            ALIGN_DBG("%gap in coverage rows (%li,%li) -> use defaults", cself->last_coverage_row, rowid + offset / cself->max_seq_len);
             rc = TableWriterRef_DefaultCoverage(cself, rowid + offset / cself->max_seq_len);
         }
         if( rc == 0 && (rc = TableWriter_OpenRowId(cself->base, rowid + offset / cself->max_seq_len, cself->coverage_cursor_id)) == 0 ) {
@@ -317,13 +296,8 @@ rc_t CC TableWriterRef_WriteCoverage(const TableWriterRef* cself, int64_t rowid,
             TW_COL_WRITE_VAR(cself->base, cself->cols_coverage[ewrefcv_cn_CGRAPH_LOW], coverage->low);
             TW_COL_WRITE_VAR(cself->base, cself->cols_coverage[ewrefcv_cn_CGRAPH_MISMATCHES], coverage->mismatches);
             TW_COL_WRITE_VAR(cself->base, cself->cols_coverage[ewrefcv_cn_CGRAPH_INDELS], coverage->indels);
-            TW_COL_WRITE_BUF(cself->base, cself->cols_coverage[ewrefcv_cn_OVERLAP_REF_POS],
-                    coverage->overlap_ref_pos, sizeof(coverage->overlap_ref_pos) / sizeof(coverage->overlap_ref_pos[0]));
-            TW_COL_WRITE_BUF(cself->base, cself->cols_coverage[ewrefcv_cn_OVERLAP_REF_LEN],
-                    coverage->overlap_ref_len, sizeof(coverage->overlap_ref_len) / sizeof(coverage->overlap_ref_len[0]));
-            TW_COL_WRITE(cself->base, cself->cols_coverage[ewrefcv_cn_PRIMARY_ALIGNMENT_IDS], coverage->ids[ewrefcov_primary_table]);
-            TW_COL_WRITE(cself->base, cself->cols_coverage[ewrefcv_cn_SECONDARY_ALIGNMENT_IDS], coverage->ids[ewrefcov_secondary_table]);
-            TW_COL_WRITE(cself->base, cself->cols_coverage[ewrefcv_cn_EVIDENCE_INTERVAL_IDS], coverage->ids[ewrefcov_evidence_table]);
+            TW_COL_WRITE(cself->base, cself->cols_coverage[ewrefcv_cn_PRIMARY_ALIGNMENT_IDS], coverage->primary_ids);
+            TW_COL_WRITE(cself->base, cself->cols_coverage[ewrefcv_cn_SECONDARY_ALIGNMENT_IDS], coverage->secondary_ids);
             if( rc == 0 ) {
                 TableWriterRef* self = (TableWriterRef*)cself;
                 self->last_coverage_row = rowid + offset / cself->max_seq_len;
@@ -338,10 +312,10 @@ struct TableWriterRefCoverage {
     const TableWriter* base;
     bool init; /* default written indicator */
     uint8_t cursor_id;
-    TableWriterColumn cols[ewrefcv_cn_ReCover + 1];
+    TableWriterColumn cols[sizeof(TableWriterRefCoverage_cols)/sizeof(TableWriterRefCoverage_cols[0])];
 };
 
-rc_t CC TableWriterRefCoverage_MakeCoverage(const TableWriterRefCoverage** cself, VDatabase* db, const uint32_t options)
+rc_t CC TableWriterRefCoverage_Make(const TableWriterRefCoverage** cself, VDatabase* db)
 {
     rc_t rc = 0;
     TableWriterRefCoverage* self = NULL;
@@ -353,7 +327,7 @@ rc_t CC TableWriterRefCoverage_MakeCoverage(const TableWriterRefCoverage** cself
         if( self == NULL ) {
             rc = RC(rcAlign, rcFormatter, rcConstructing, rcMemory, rcExhausted);
         } else {
-            memcpy(self->cols, TableWriterRefCoverage_cols, sizeof(self->cols));
+            memcpy(self->cols, TableWriterRefCoverage_cols, sizeof(TableWriterRefCoverage_cols));
             if( (rc = TableWriter_MakeUpdate(&self->base, db, "REFERENCE")) == 0 ) {
                 rc = TableWriter_AddCursor(self->base, self->cols,
                         sizeof(self->cols) / sizeof(self->cols[0]), &self->cursor_id);
@@ -362,44 +336,13 @@ rc_t CC TableWriterRefCoverage_MakeCoverage(const TableWriterRefCoverage** cself
     }
     if( rc == 0 ) {
         *cself = self;
-        ALIGN_R_DBG("table %s", "opened");
+        ALIGN_DBG("table %s", "opened");
     } else {
         TableWriterRefCoverage_Whack(self, false, NULL);
         ALIGN_DBGERR(rc);
     }
     return rc;
 }
-rc_t CC TableWriterRefCoverage_MakeIds(const TableWriterRefCoverage** cself, VDatabase* db, const char  * col_name)
-{
-    rc_t rc = 0;
-    TableWriterRefCoverage* self = NULL;
-
-    if( cself == NULL ) {
-        rc = RC(rcAlign, rcFormatter, rcConstructing, rcParam, rcNull);
-    } else {
-        self = calloc(1, sizeof(*self));
-        if( self == NULL ) {
-            rc = RC(rcAlign, rcFormatter, rcConstructing, rcMemory, rcExhausted);
-        } else {
-            if( (rc = TableWriter_MakeUpdate(&self->base, db, "REFERENCE")) == 0 ) {
-                self->cols[0].idx = 0;
-                self->cols[0].name = col_name;
-                self->cols[0].element_bits = 8 * sizeof(int64_t);
-                self->cols[0].flags=ewcol_IsArray;
-                rc = TableWriter_AddCursor(self->base, self->cols,1, &self->cursor_id);
-            }
-        }
-    }
-    if( rc == 0 ) {
-        *cself = self;
-        ALIGN_R_DBG("table %s", "opened");
-    } else {
-        TableWriterRefCoverage_Whack(self, false, NULL);
-        ALIGN_DBGERR(rc);
-    }
-    return rc;
-}
-
 
 rc_t CC TableWriterRefCoverage_Whack(const TableWriterRefCoverage* cself, bool commit, uint64_t* rows)
 {
@@ -412,70 +355,36 @@ rc_t CC TableWriterRefCoverage_Whack(const TableWriterRefCoverage* cself, bool c
     return rc;
 }
 
-
-rc_t CC TableWriterRefCoverage_WriteCoverage(const TableWriterRefCoverage* cself, int64_t rowid, const ReferenceSeqCoverage* coverage)
+rc_t CC TableWriterRefCoverage_Write(const TableWriterRefCoverage* cself, int64_t rowid, const ReferenceSeqCoverage* coverage)
 {
     rc_t rc = 0;
 
     if( cself == NULL || coverage == NULL ) {
         rc = RC(rcAlign, rcType, rcWriting, rcParam, rcNull);
         ALIGN_DBGERR(rc);
-    }
-    else {
-        if( !cself->init ) {
-            /* set the defaults */
-            ReferenceSeqCoverage c;
-            
-            memset(&c, 0, sizeof(c));
-            TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_HIGH], c.low);
-            TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_LOW], c.high);
-            TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_MISMATCHES], c.mismatches);
-            TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_INDELS], c.indels);
-            TW_COL_WRITE_DEF_BUF(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_OVERLAP_REF_POS],
-                                 c.overlap_ref_pos, sizeof(c.overlap_ref_pos) / sizeof(c.overlap_ref_pos[0]));
-            TW_COL_WRITE_DEF_BUF(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_OVERLAP_REF_LEN],
-                                 c.overlap_ref_len, sizeof(c.overlap_ref_len) / sizeof(c.overlap_ref_len[0]));
-            
-            ((TableWriterRefCoverage*)cself)->init = true;
-        }
-        if( rc == 0 && (rc = TableWriter_OpenRowId(cself->base, rowid, cself->cursor_id)) == 0 ) {
-            TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_HIGH], coverage->high);
-            TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_LOW], coverage->low);
-            TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_MISMATCHES], coverage->mismatches);
-            TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_INDELS], coverage->indels);
-            TW_COL_WRITE_BUF(cself->base, cself->cols[ewrefcv_cn_OVERLAP_REF_POS],
-                             coverage->overlap_ref_pos, sizeof(coverage->overlap_ref_pos) / sizeof(coverage->overlap_ref_pos[0]));
-            TW_COL_WRITE_BUF(cself->base, cself->cols[ewrefcv_cn_OVERLAP_REF_LEN],
-                             coverage->overlap_ref_len, sizeof(coverage->overlap_ref_len) / sizeof(coverage->overlap_ref_len[0]));
+    } else if( !cself->init ) {
+        ReferenceSeqCoverage c;
             
-            if( rc == 0 ) {
-                rc = TableWriter_CloseRow(cself->base);
-            }
-        }
+        memset(&c, 0, sizeof(c));
+        c.primary_ids.buffer = c.secondary_ids.buffer = &c;
+        TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_HIGH], c.low);
+        TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_LOW], c.high);
+        TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_MISMATCHES], c.mismatches);
+        TW_COL_WRITE_DEF_VAR(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_CGRAPH_INDELS], c.indels);
+        TW_COL_WRITE_DEF(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_PRIMARY_ALIGNMENT_IDS], c.primary_ids);
+        TW_COL_WRITE_DEF(cself->base, cself->cursor_id, cself->cols[ewrefcv_cn_SECONDARY_ALIGNMENT_IDS], c.secondary_ids);
+        ((TableWriterRefCoverage*)cself)->init = true;
     }
-    return rc;
-}
-rc_t CC TableWriterRefCoverage_WriteIds(const TableWriterRefCoverage* cself, int64_t rowid, const int64_t* buf,uint32_t num)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || (buf  == NULL && num > 0)) {
-        rc = RC(rcAlign, rcType, rcWriting, rcParam, rcNull);
-        ALIGN_DBGERR(rc);
-    }
-    else {
-        if( !cself->init ) {
-            /* set the defaults */
-            TW_COL_WRITE_DEF_BUF(cself->base, cself->cursor_id, cself->cols[0],NULL,0);
-            ((TableWriterRefCoverage*)cself)->init = true;
-        }
-        if( rc == 0 && (rc = TableWriter_OpenRowId(cself->base, rowid, cself->cursor_id)) == 0 ) {
-            TW_COL_WRITE_BUF(cself->base, cself->cols[0],buf,num);
-            if( rc == 0 ) {
-                rc = TableWriter_CloseRow(cself->base);
-            }
+    if( rc == 0 && (rc = TableWriter_OpenRowId(cself->base, rowid, cself->cursor_id)) == 0 ) {
+        TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_HIGH], coverage->high);
+        TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_LOW], coverage->low);
+        TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_MISMATCHES], coverage->mismatches);
+        TW_COL_WRITE_VAR(cself->base, cself->cols[ewrefcv_cn_CGRAPH_INDELS], coverage->indels);
+        TW_COL_WRITE(cself->base, cself->cols[ewrefcv_cn_PRIMARY_ALIGNMENT_IDS], coverage->primary_ids);
+        TW_COL_WRITE(cself->base, cself->cols[ewrefcv_cn_SECONDARY_ALIGNMENT_IDS], coverage->secondary_ids);
+        if( rc == 0 ) {
+            rc = TableWriter_CloseRow(cself->base);
         }
     }
     return rc;
 }
-
diff --git a/libs/align/writer-ref.h b/libs/align/writer-ref.h
index e059a0b..a2a9568 100644
--- a/libs/align/writer-ref.h
+++ b/libs/align/writer-ref.h
@@ -45,23 +45,19 @@ enum ETableWriterRefData_ColNames {
 
 enum ETableWriterRefCoverage_ColNames {
     /* coverage data starts here */
-    ewrefcv_cn_CGRAPH_HIGH=0,
+    ewrefcv_cn_CGRAPH_HIGH,
     ewrefcv_cn_CGRAPH_LOW,
     ewrefcv_cn_CGRAPH_MISMATCHES,
     ewrefcv_cn_CGRAPH_INDELS,
-    ewrefcv_cn_OVERLAP_REF_POS,
-    ewrefcv_cn_OVERLAP_REF_LEN,
-    ewrefcv_cn_ReCover = ewrefcv_cn_OVERLAP_REF_LEN,
     ewrefcv_cn_PRIMARY_ALIGNMENT_IDS,
     ewrefcv_cn_SECONDARY_ALIGNMENT_IDS,
-    ewrefcv_cn_EVIDENCE_INTERVAL_IDS,
-    ewrefcv_cn_Last = ewrefcv_cn_EVIDENCE_INTERVAL_IDS
+    ewrefcv_cn_Last = ewrefcv_cn_SECONDARY_ALIGNMENT_IDS
 };
 
 enum ETableWriterRef_ColOptions {
     ewref_co_SaveRead = 0x01, /* always write READ */
-    ewref_co_QUALITY = 0x02,  /* use QUALITY column, by default not opened */
-    ewref_co_Coverage = 0x04  /* use coverage columns, by default not opened */
+    ewref_co_QUALITY = 0x02, /* use QUALITY column, by default not opened */
+    ewref_co_Coverage = 0x04 /* use coverage columns, by default not opened */
 };
 
 typedef struct TableWriterRefData_struct {
@@ -89,18 +85,18 @@ rc_t CC TableWriterRef_WriteDefaultCovarage(const TableWriterRef* cself, enum ET
 /* rowid optional here */
 rc_t CC TableWriterRef_Write(const TableWriterRef* cself, const TableWriterRefData* data, int64_t* rowid);
 
-rc_t CC TableWriterRef_WriteCoverage(const TableWriterRef* cself, int64_t rowid, INSDC_coord_zero offset, const ReferenceSeqCoverage* coverage);
+rc_t CC TableWriterRef_WriteCoverage(const TableWriterRef* cself, int64_t rowid, int64_t offset, const ReferenceSeqCoverage* coverage);
 
 
 
 
 typedef struct TableWriterRefCoverage TableWriterRefCoverage;
 
-rc_t CC TableWriterRefCoverage_MakeCoverage(const TableWriterRefCoverage** cself, VDatabase* db, const uint32_t options);
-rc_t CC TableWriterRefCoverage_MakeIds(const TableWriterRefCoverage** cself, VDatabase* db, const char *col_name);
+rc_t CC TableWriterRefCoverage_Make(const TableWriterRefCoverage** cself, VDatabase* db);
+
 /* rows optional here */
 rc_t CC TableWriterRefCoverage_Whack(const TableWriterRefCoverage* cself, bool commit, uint64_t* rows);
-rc_t CC TableWriterRefCoverage_WriteCoverage(const TableWriterRefCoverage* cself, int64_t rowid, const ReferenceSeqCoverage* coverage);
-rc_t CC TableWriterRefCoverage_WriteIds(const TableWriterRefCoverage* cself, int64_t rowid, const int64_t* buf,uint32_t num);
+
+rc_t CC TableWriterRefCoverage_Write(const TableWriterRefCoverage* cself, int64_t rowid, const ReferenceSeqCoverage* coverage);
 
 #endif /* _h_align_writer_ref_ */
diff --git a/libs/align/writer-reference.c b/libs/align/writer-reference.c
index b310617..dd7e990 100644
--- a/libs/align/writer-reference.c
+++ b/libs/align/writer-reference.c
@@ -24,22 +24,17 @@
 */
 #include <align/extern.h>
 
-#include <kapp/main.h>
 #include <klib/log.h>
 #include <klib/rc.h>
+#include <kapp/main.h>
 #include <klib/sort.h>
-#include <klib/data-buffer.h>
 #include <klib/container.h>
-#include <klib/checksum.h>
-#include <klib/text.h>
 #include <kfs/mmap.h>
 #include <kfs/file.h>
 #include <kdb/manager.h>
 #include <vdb/database.h>
 #include <vdb/table.h>
-#include <vdb/cursor.h>
 #include <vdb/manager.h>
-#include <vdb/vdb-priv.h>
 #include <sra/sradb.h>
 
 #include <align/writer-reference.h>
@@ -48,7 +43,6 @@
 #include "refseq-mgr-priv.h"
 #include "writer-ref.h"
 #include "reader-cmn.h"
-#include "reference-cmn.h"
 #include "debug.h"
 #include <os-native.h>
 #include <sysalloc.h>
@@ -59,173 +53,78 @@
 #include <ctype.h>
 #include <assert.h>
 
-/*
- * ReferenceSeq objects:
- *  ReferenceSeq objects may be unattached, i.e. they might not yet represent an
- *  actual sequence.
- *
- *  ReferenceSeq objects may be attached, i.e. they represent a sequence from
- *  either RefSeq or a fasta file.
- *
- *  A ReferenceSeq object may be refered to by more than one id, but a
- *  ReferenceSeq object has only one canonical id.
- *
- *  More than one ReferenceSeq object may be associated with the same seqId.
- *
- *  More than one ReferenceSeq object may be attached to the same sequence.
- *  This will cause the REFERENCE table to have more than one copy of the
- *  sequence.
- *
- *  ReferenceSeq objects may be created from the config file.  These objects
- *  will have an id, a seqId, but no fastaSeqId.  These are unattached.
- *
- *  ReferenceSeq objects may be created from explicit fasta files.  These
- *  objects will have a fastaSeqId, but *** NO id OR seqId ***. These are
- *  attached.
- *
- *  ReferenceSeq objects may be created on the fly by requesting an id that
- *  isn't already in the collection.  These objects will have the requested id.
- *
- * When a reference is requested (by id):
- *  Resolve the id to a ReferenceSeq object.
- *  If the object is unattached, attach it to a sequence.
- *  If the sequence is not yet written to the REFERENCE table, write it to the
- *  REFERENCE table.  NAME gets id; SEQID gets seqId unless seqId is null, then
- *  SEQID gets id.
- *
- * Resolving id's to ReferenceSeq objects:
- *  Search the id index and if the found object is attached, return it.
- *  Search the identifiers in the fastaSeqIds or seqIds.
- *  If different objects were found from both searches, use sequence length and
- *  MD5 to break the tie (if both match then use RefSeq).  If no sequence length
- *  or MD5 then fail.
- *  If no objects were found from either search, then create a new unattached
- *  ReferenceSeq object.
- *  If the object's id is null, set it to the id.
- *  It the object was not found in the id index, add it.
- *
- * Attaching ReferenceSeq objects to sequences:
- *  Search RefSeq for seqId.
- *  Else search RefSeq for id.
- *  Else search for seqId in the loaded fasta files.
- *  Else search data directory for id.fasta or id.fa; load it or fail.
- *  Else search data directory for seqId.fasta or seqId.fa; load it or fail.
- *  Else fail.
- *  If failed, mark the object as dead.
- *
- *
- *
- * Config file:
- *  The config file consists of lines containing whitespace (preferably tab)
- *  seperated fields.  The fields are:
- *      NAME (unique)
- *      SEQID
- *      extra (optional)
- *
- *  There is one ReferenceSeq object created per record in the config file.
- *  NAME is stored in id; SEQID is stored in seqId; if extra contains the word
- *  'circular' (case-insensitive), true is stored in circular.  These
- *  ReferenceSeq object are created in the unattached state, i.e. not attached
- *  to a fasta file or a RefSeq library object.
- *
- * Fasta files:
- *  Fasta file consists of one of more sequences.  A sequence in a fasta file
- *  consists of a seqid line followed by lines containing the bases of the
- *  sequence.  A seqid line starts with '>' and the next word (whitespace
- *  delimited) is the seqid.  The seqid may consist of '|' delimited identifiers
- *  (this is purposely vague).  The fasta seqid is stored in fastaSeqId.
- *
- * Fasta files may be loaded explicitly:
- *  When a fasta file is loaded explicitly, a new ReferenceSeq object is created
- *  (with id == NULL) for each sequence found in the file.
- *
- * Fasta files may be loaded implicitly:
- *  When an id can't be found in the set of ReferenceSeq objects and can't be
- *  found as an accession by RefSeq, an attempt is made to load a fasta file
- *  named <id>.fasta or <id>.fa in the directory given to the constructor.  If
- *  this succeeds, a new ReferenceSeq object with the given id is attached to
- *  the sequence.  In this situation, to avoid ambiquity, there can be only one
- *  sequence in the fasta file.
- *
- */
-
-enum ReferenceSeqType {
-    rst_unattached,
-    rst_local,
-    rst_refSeqById,
-    rst_refSeqBySeqId,
-    rst_dead
+struct ReferenceMgr {
+    const TableWriterRef* writer;
+    const KDirectory* dir;
+    BSTree tree;
+    uint32_t options;
+    const VDBManager* vmgr;
+    const RefSeqMgr* rmgr;
+    VDatabase* db;
+    size_t cache;
+    uint32_t num_open_max;
+    uint32_t num_open;
+    uint64_t usage;
+    uint32_t max_seq_len;
+    /* last seq end */
+    int64_t ref_rowid;
+    int32_t compress_buf[10240];
+    /* must be last element of struct! */
+    INSDC_dna_text seq_buf[TableWriterRefSeq_MAX_SEQ_LEN];
 };
 
 struct ReferenceSeq {
-    ReferenceMgr *mgr;
-    char *id;
-    char *seqId;
-    char *fastaSeqId;
-    /* ref table position */
-    int64_t start_rowid;
-    /* total reference length */
-    INSDC_coord_len seq_len;
-    int type;
+    BSTNode dad;
+    const ReferenceMgr* mgr;
+    bool local;
+    char id[64];
+    char accession[64];
     bool circular;
-    uint8_t md5[16];
     union {
         struct {
-            KDataBuffer buf;
-            uint8_t const *data;
+            /* local file data */
+            uint64_t file_size;
+            uint64_t line_sz; /* length of line w/ \n */
+            uint64_t fasta_offset; /* first base in file */
+            const KMMap* map;
+            /* cache last call to KMMapReposition */
+            uint64_t map_from;
+            uint64_t map_to;
         } local;
-        RefSeq const *refseq;
+        struct {
+            const RefSeq* o;
+            uint64_t usage;
+        } refseq;
     } u;
+    /* ref table position */
+    int64_t start_rowid;
+    /* total reference length */
+    uint64_t seq_len;
 };
 
-struct ReferenceMgr {
-    TableWriterRef const *writer;
-    KDirectory const *dir;
-    RefSeqMgr const *rmgr;
-    VDatabase *db;
-    ReferenceSeq *refSeq;
-    
-    int64_t ref_rowid;
-    
-    size_t cache;
-    
-    uint32_t options;
-    uint32_t num_open_max;
-    uint32_t num_open;
-    uint32_t max_seq_len;
-    
-    KDataBuffer compress;
-    KDataBuffer seq;
-    KDataBuffer refSeqs;
-    KDataBuffer refSeqsById;
-};
-
-typedef struct key_id_t {
-    char const *key;
-    int64_t id;
-} key_id_t;
+static
+int CC ReferenceSeq_Cmp(const void *item, const BSTNode *n)
+{
+    return strcasecmp((const char*)item, ((const ReferenceSeq*)n)->id);
+}
 
 static
-int CC key_id_cmp(const void *arg1, const void *arg2, void *data)
+int CC ReferenceSeq_Sort(const BSTNode *item, const BSTNode *n)
 {
-    key_id_t const *a = arg1;
-    key_id_t const *b = arg2;
-    
-    return strcmp(a->key, b->key);
+    return ReferenceSeq_Cmp(((const ReferenceSeq*)item)->id, n);
 }
 
 static
-void CC ReferenceSeq_Whack(ReferenceSeq *self)
+void CC ReferenceSeq_Unused( BSTNode *node, void *data )
 {
-    if (self->type == rst_local) {
-        KDataBufferWhack(&self->u.local.buf);
-    }
-    else if (self->type == rst_refSeqById || self->type == rst_refSeqBySeqId) {
-        RefSeq_Release(self->u.refseq);
+    ReferenceSeq* n = (ReferenceSeq*)node;
+    ReferenceSeq** d = (ReferenceSeq**)data;
+
+    if( !n->local && n->u.refseq.o != NULL ) {
+        if( *d == NULL || (*d)->u.refseq.usage > n->u.refseq.usage ) {
+            *d = n;
+        }
     }
-    free(self->id);
-    free(self->seqId);
-    free(self->fastaSeqId);
 }
 
 struct OpenConfigFile_ctx {
@@ -257,13 +156,11 @@ bool OpenConfigFile(char const server[], char const volume[], void *Ctx)
 }
 
 static
-rc_t FindAndOpenConfigFile(RefSeqMgr const *const rmgr,
-                           KDirectory const *const dir,
-                           KFile const **const kfp, char const conf[])
+rc_t FindAndOpenConfigFile(const RefSeqMgr* rmgr, KDirectory const *dir, KFile const **kfp, char const conf[])
 {
     rc_t rc = KDirectoryOpenFileRead(dir, kfp, conf);
     
-    if (rc) {
+    if(rc) {
         struct OpenConfigFile_ctx ctx;
 
         ctx.name = conf;
@@ -279,1457 +176,442 @@ rc_t FindAndOpenConfigFile(RefSeqMgr const *const rmgr,
     return rc;
 }
 
-enum comparison_weights {
-    no_match        = 0,
-    substring_match = (1u << 0),
-    expected_prefix = (1u << 1),
-    exact_match     = (1u << 2),
-    seq_len_match   = (1u << 3),
-    md5_match       = (1u << 4)
-};
-
-static
-unsigned str_weight(char const str[], char const qry[], unsigned const qry_len)
-{
-    char const *const fnd = strcasestr(str, qry);
-    unsigned wt = no_match;
-    
-    if (fnd) {
-        unsigned const fnd_len = string_size( fnd );
-        unsigned const fndlen = (fnd_len > qry_len && fnd[qry_len] == '|') ? qry_len : fnd_len;
-        
-        if (fndlen == qry_len && (fnd == str || fnd[-1] == '|')) {
-            wt |= substring_match;
-            
-            if (fnd == str) {
-                if (fnd[fndlen] == '\0')
-                    wt |= exact_match;
-            }
-            else {
-                /* check for expected prefices */
-                char const *ns = fnd - 1;
-                
-                while (ns != str && ns[-1] != '|')
-                    --ns;
-                
-                if (   memcmp(ns, "ref|", 4) == 0
-                    || memcmp(ns, "emb|", 4) == 0
-                    || memcmp(ns, "dbg|", 4) == 0
-                    || memcmp(ns, "tpg|", 4) == 0
-                    || memcmp(ns, "tpe|", 4) == 0
-                    || memcmp(ns, "tpd|", 4) == 0
-                    || memcmp(ns, "gpp|", 4) == 0
-                    || memcmp(ns,  "gb|", 3) == 0
-                    )
-                {
-                    wt |= expected_prefix;
-                }
-            }
-        }
-    }
-    return wt;
-}
-
-static
-rc_t ReferenceMgr_AddId(ReferenceMgr *const self, char const ID[],
-                        ReferenceSeq const *const obj)
-{
-    char *id = string_dup( ID, string_size( ID ) );
-    unsigned const last_id = self->refSeqsById.elem_count;
-    
-    if (id) {
-        rc_t rc = KDataBufferResize(&self->refSeqsById, last_id + 1);
-        
-        if (rc == 0) {
-            key_id_t *kid = &((key_id_t *)self->refSeqsById.base)[last_id];
-            
-            kid->key = id;
-            kid->id = obj - self->refSeq;
-            
-            ksort(self->refSeqsById.base, self->refSeqsById.elem_count, sizeof(key_id_t), key_id_cmp, NULL);
-        }
-        else
-            free(id);
-        
-        return rc;
-    }
-    else
-        return RC(rcAlign, rcIndex, rcInserting, rcMemory, rcExhausted);
-}
-
-static
-key_id_t *ReferenceMgr_FindId(ReferenceMgr const *const self, char const id[])
-{
-    key_id_t qry;
-    
-    qry.key = id;
-    qry.id = 0;
-    
-    return kbsearch(&qry, self->refSeqsById.base,
-                    self->refSeqsById.elem_count,
-                    sizeof(qry), key_id_cmp, NULL);
-}
-
-static
-rc_t ReferenceMgr_NewReferenceSeq(ReferenceMgr *const self, ReferenceSeq **const rslt)
-{
-    unsigned const last_rs = self->refSeqs.elem_count;
-    rc_t rc = KDataBufferResize(&self->refSeqs, last_rs + 1);
-    
-    if (rc) return rc;
-    self->refSeq = self->refSeqs.base;
-    
-    *rslt = &self->refSeq[last_rs];
-    memset(&self->refSeq[last_rs], 0, sizeof(self->refSeq[0]));
-    self->refSeq[last_rs].mgr = self;
-
-    return 0;
-}
-
-static
-int CC config_cmp(void const *A, void const *B, void *Data)
-{
-    struct {
-        unsigned id;
-        unsigned seqId;
-        unsigned extra;
-        unsigned extralen;
-    } const *const a = A;
-    struct {
-        unsigned id;
-        unsigned seqId;
-        unsigned extra;
-        unsigned extralen;
-    } const *const b = B;
-    char const *const data = Data;
-    
-    return strcmp(&data[a->id], &data[b->id]);
-}
-
-static
-rc_t ReferenceMgr_ProcessConf(ReferenceMgr *const self, char Data[], unsigned const len)
-{
-    rc_t rc;
-    unsigned i;
-    unsigned j;
-    struct {
-        unsigned id;
-        unsigned seqId;
-        unsigned extra;
-        unsigned extralen;
-    } *data, tmp;
-    KDataBuffer buf;
-    
-    memset(&buf, 0, sizeof(buf));
-    buf.elem_bits = sizeof(data[0]) * 8;
-    
-    for (j = i = 0; i < len; ++j) {
-        unsigned lineEnd;
-        unsigned id;
-        unsigned acc;
-        unsigned ii;
-        
-        for (lineEnd = i; lineEnd != len; ++lineEnd) {
-            int const ch = Data[lineEnd];
-            
-            if (ch == '\n')
-                break;
-            if (ch == '\r')
-                break;
-        }
-        if (i == lineEnd) {
-            ++i;
-            continue;
-        }
-        Data[lineEnd] = '\0';
-        for (id = i; id != lineEnd; ++id) {
-            int const ch = Data[id];
-            
-            if (!isspace(ch))
-                break;
-        }
-        for (ii = id; ii != lineEnd; ++ii) {
-            int const ch = Data[ii];
-            
-            if (isspace(ch)) {
-                Data[ii++] = '\0';
-                break;
-            }
-        }
-        for (acc = ii; acc < lineEnd; ++acc) {
-            int const ch = Data[acc];
-            
-            if (!isspace(ch))
-                break;
-        }
-        if (acc >= lineEnd)
-            return RC(rcAlign, rcFile, rcReading, rcFormat, rcInvalid);
-        
-        for (ii = acc; ii != lineEnd; ++ii) {
-            int const ch = Data[ii];
-            
-            if (isspace(ch)) {
-                Data[ii++] = '\0';
-                break;
-            }
-        }
-        tmp.id = id;
-        tmp.seqId = acc;
-        tmp.extra = ii;
-        tmp.extralen = lineEnd > ii ? lineEnd - ii : 0;
-        
-        if ((rc = KDataBufferResize(&buf, buf.elem_count + 1)) != 0) return rc;
-        data = buf.base;
-        
-        data[buf.elem_count-1] = tmp;
-        i = lineEnd + 1;
-    }
-    
-    /* check unique */
-    ksort(data, buf.elem_count, sizeof(data[0]), config_cmp, Data);
-    for (i = 1; i < buf.elem_count; ++i) {
-        if (strcmp(&Data[data[i-1].id], &Data[data[i].id]) == 0)
-            return RC(rcAlign, rcIndex, rcConstructing, rcItem, rcExists);
-    }
-
-    for (i = 0; i != buf.elem_count; ++i) {
-        unsigned const extralen = data[i].extralen;
-        char const *const id    = &Data[data[i].id];
-        char const *const seqId = &Data[data[i].seqId];
-        char const *const extra = extralen ? &Data[data[i].extra] : NULL;
-        bool circular = false;
-        ReferenceSeq *rs;
-        
-        if (extra && extralen >= 8) {
-            char const *const circ = strcasestr(extra, "circular");
-            
-            circular = circ && (circ == extra || isspace(circ[-1])) &&
-                       (circ[8] == '\0' || isspace(circ[8]));
-        }
-        if ((rc = ReferenceMgr_NewReferenceSeq(self, &rs)) != 0) return rc;
-        
-        rs->id = string_dup( id, string_size( id ) );
-        if ( rs->id == NULL )
-            return RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
-
-        rs->seqId = string_dup( seqId, string_size( seqId ) );
-        if ( rs->seqId == NULL )
-            return RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
-        
-        rs->circular = circular;
-    }
-    KDataBufferWhack(&buf);
-    return 0;
-}
-
 static
-rc_t ReferenceMgr_Conf(ReferenceMgr *const self, char const conf[])
+rc_t ReferenceMgr_Conf(const RefSeqMgr* rmgr, BSTree* tree, KDirectory const *dir, VDBManager const *vmgr, char const conf[])
 {
-    rc_t rc;
+    rc_t rc = 0;
     const KFile* kf = NULL;
 
-    if (conf == NULL)
-        return 0;
-    
-    rc = FindAndOpenConfigFile(self->rmgr, self->dir, &kf, conf);
-    if (rc == 0) {
-        uint64_t sz;
-        KDataBuffer buf;
-        
-        rc = KFileSize(kf, &sz);
-        assert(rc == 0);
-        if (sz == 0)
-            (void)PLOGMSG(klogWarn, (klogWarn, "Configuration file '$(file)' is empty", "file=%s", conf));
-        else {
-            rc = KDataBufferMakeBytes(&buf, sz + 1);
-            if (rc == 0) {
-                size_t nread;
-                
-                rc = KFileReadAll(kf, 0, buf.base, sz, &nread);
-                if (rc == 0) {
-                    assert(nread == sz);
-                    ((char *)buf.base)[sz] = '\n'; /* make sure that last line is terminated */
-                    rc = ReferenceMgr_ProcessConf(self, buf.base, sz + 1);
-                }
-                KDataBufferWhack(&buf);
-            }
-        }
-        KFileRelease(kf);
-    }
-    return rc;
-}
-
-static
-rc_t ReferenceMgr_FastaFile_GetSeqIds(KDataBuffer *const buf, char const data[], uint64_t const len)
-{
-    uint64_t pos;
-    int st = 0;
-    
-    for (pos = 0; pos < len; ++pos) {
-        int const ch = data[pos];
-        
-        if (st == 0) {
-            if (ch == '>') {
-                uint64_t const n = buf->elem_count;
-                rc_t rc = KDataBufferResize(buf, n + 1);
-                
-                if (rc)
-                    return rc;
-                ((uint64_t *)buf->base)[n] = pos;
-                st = 1;
-            }
-        }
-        else if (ch == '\r' || ch == '\n') 
-            st = 0;
-    }
-    return 0;
-}
-
-static
-rc_t ReferenceMgr_ImportFasta(ReferenceMgr *const self, ReferenceSeq *obj, KDataBuffer *const buf)
-{
-    unsigned seqId;
-    unsigned seqIdLen;
-    unsigned ln;
-    unsigned src;
-    unsigned dst;
-    unsigned start=0;
-    char *const data = buf->base;
-    unsigned const len = buf->elem_count;
-    rc_t rc;
-    MD5State mds;
-    
-    memset(obj, 0, sizeof(*obj));
-    obj->mgr = self;
-    
-    if (len == 0)
-        return 0;
-    assert(data[0] == '>');
-    
-    for (ln = 1; ln != len; ++ln) {
-        int const ch = data[ln];
-        
-        if (ch == '\r' || ch == '\n') {
-            data[ln] = '\0';
-            start = ln + 1;
-            break;
-        }
-    }
-    for (seqId = 1; seqId != ln; ++seqId) {
-        if (!isspace(data[seqId]))
-            break;
-    }
-    for (seqIdLen = 0; seqId + seqIdLen < ln; ++seqIdLen) {
-        if (isspace(data[seqId + seqIdLen])) {
-            ln = seqId + seqIdLen;
-            data[ln] = '\0';
-            break;
-        }
-    }
-    if (seqIdLen == 0)
-        return RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
-    
-    obj->fastaSeqId = string_dup( &data[ seqId ], string_size( &data[ seqId ] ) );
-    if ( obj->fastaSeqId == NULL )
-        return RC(rcAlign, rcFile, rcReading, rcMemory, rcExhausted);
-    
-    MD5StateInit(&mds);
-    for (dst = src = start; src != len; ++src) {
-        int const ch = toupper(data[src]);
-        
-        if (isspace(ch))
-            continue;
-        
-        if (strchr(INSDC_4na_map_CHARSET, ch) == NULL && ch != 'X')
-            return RC(rcAlign, rcFile, rcReading, rcData, rcInvalid);
-        
-        data[dst] = ch == 'X' ? 'N' : ch;
-        MD5StateAppend(&mds, data + dst, 1);
-        ++dst;
-    }
-    MD5StateFinish(&mds, obj->md5);
-    rc = KDataBufferSub(buf, &obj->u.local.buf, start, dst - start);
-    if (rc == 0) {
-        obj->type = rst_local;
-        obj->seq_len = dst - start;
-    }
-    else
-        obj->type = rst_dead;
-    return rc;
-}
+    assert(tree != NULL);
+    assert(dir != NULL);
 
-#define READ_CHUNK_SIZE (1024 * 1024)
+    if( conf != NULL &&
+        (rc = FindAndOpenConfigFile(rmgr, dir, &kf, conf)) == 0 ) {
+        const KMMap* mm;
+        uint64_t pos = 0;
+        size_t page_sz;
+        const char* str;
 
-static
-rc_t ReferenceMgr_ImportFastaFile(ReferenceMgr *const self, KFile const *kf,
-                                  ReferenceSeq *rslt)
-{
-    uint64_t file_size;
-    rc_t rc = KFileSize(kf, &file_size);
-    
-    if (rc == 0) {
-        KDataBuffer fbuf;
-        
-        rc = KDataBufferMake(&fbuf, 8, file_size);
-        if (rc == 0) {
-            fbuf.elem_count = 0;
+        if( (rc = KMMapMakeRead(&mm, kf)) == 0 ) {
             do {
-                size_t const readable = file_size - fbuf.elem_count;
-                size_t const to_read = readable > READ_CHUNK_SIZE ? READ_CHUNK_SIZE : readable;
-                size_t nread = 0;
-                
-                rc = KFileRead(kf, fbuf.elem_count, &((uint8_t *)fbuf.base)[fbuf.elem_count], to_read, &nread);
-                if (rc != 0 || nread == 0)
-                    break;
-                fbuf.elem_count += nread;
-            } while (fbuf.elem_count < file_size);
-            if (rc == 0) {
-                char const *const base = fbuf.base;
-                KDataBuffer seqIdBuf;
-                
-                memset(&seqIdBuf, 0, sizeof(seqIdBuf));
-                seqIdBuf.elem_bits = sizeof(file_size) * 8;
-                
-                rc = ReferenceMgr_FastaFile_GetSeqIds(&seqIdBuf, base, file_size);
-                if (rc == 0) {
-                    uint64_t const *const seqIdOffset = seqIdBuf.base;
-                    unsigned const seqIds = seqIdBuf.elem_count;
-                    unsigned i;
-                    KDataBuffer sub;
-                    
-                    if (rslt) {
-                        if (seqIds > 1)
-                            rc = RC(rcAlign, rcFile, rcReading, rcItem, rcUnexpected);
-                        
-                        memset(&sub, 0, sizeof(sub));
-                        KDataBufferSub(&fbuf, &sub, seqIdOffset[0], file_size - seqIdOffset[0]);
-                        rc = ReferenceMgr_ImportFasta(self, rslt, &sub);
-                        KDataBufferWhack(&sub);
-                    }
-                    else
-                        for (i = 0; i != seqIds; ++i) {
-                            uint64_t const ofs = seqIdOffset[i];
-                            uint64_t const nxt = (i < seqIds - 1) ? seqIdOffset[i + 1] : file_size;
-                            uint64_t const len = nxt - ofs;
-                            ReferenceSeq tmp;
-                            ReferenceSeq *new_seq;
-                            
-                            memset(&sub, 0, sizeof(sub));
-                            KDataBufferSub(&fbuf, &sub, ofs, len);
-                            rc = ReferenceMgr_ImportFasta(self, &tmp, &sub);
-                            KDataBufferWhack(&sub);
-                            if (rc) break;
-                            
-                            rc = ReferenceMgr_NewReferenceSeq(self, &new_seq);
-                            if (rc) break;
-                            
-                            *new_seq = tmp;
+                ReferenceSeq* tmp = NULL;
+                if( (rc = KMMapReposition(mm, pos, &page_sz)) == 0 &&
+                    (rc = KMMapAddrRead(mm, (const void**)&str)) == 0 ) {
+                    while( rc == 0 && page_sz > 0 ) {
+                        const char* n = memchr(str, '\n', page_sz);
+                        const char* r = memchr(str, '\r', page_sz);
+
+                        if( (tmp = calloc(1,  sizeof(*tmp))) == NULL ) {
+                            rc = RC(rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted);
+                            break;
                         }
-                }
-                KDataBufferWhack(&seqIdBuf);
-            }
-            KDataBufferWhack(&fbuf);
-        }
-    }
-    return rc;
-}
-
-static
-rc_t OpenFastaFile(KFile const **const kf,
-                   KDirectory const *const dir,
-                   char const base[],
-                   unsigned const len)
-{
-    char fname_a[4096];
-    char *fname_h = NULL;
-    char *fname = fname_a;
-    rc_t rc;
-    
-    if (len + 7 >= sizeof(fname_a)) {
-        fname_h = malloc(len + 7);
-        if (fname_h)
-            fname = fname_h;
-        else
-            return RC(rcAlign, rcFile, rcOpening, rcMemory, rcExhausted);
-    }
-    memcpy(fname, base, len);
-    memcpy(fname + len, ".fasta", 7);
-    
-    rc = KDirectoryOpenFileRead(dir, kf, fname);
-    if (rc) {
-        fname[len + 3] = '\0'; /* base.fasta -> base.fa */
-        
-        rc = KDirectoryOpenFileRead(dir, kf, fname);
-    }
-    free(fname_h);
-    return rc;
-}
-
-#if 1
-void ReferenceSeq_Dump(ReferenceSeq const *const rs, unsigned const i, key_id_t const *const key_id_array, unsigned const m)
-{
-    static char const *types[] = {
-        "'unattached'",
-        "'fasta'",
-        "'RefSeq-by-id'",
-        "'RefSeq-by-seqid'",
-        "'dead'"
-    };
-    unsigned j;
-    
-    ALIGN_CF_DBGF(("{ "));
-    ALIGN_CF_DBGF(("type: %s, ", (rs->type < 0 || rs->type > rst_dead) ? "null" : types[rs->type]));
-    
-    if (rs->id)
-        ALIGN_CF_DBGF(("id: '%s', ", rs->id));
-    else
-        ALIGN_CF_DBGF(("id: null, "));
-    
-    if (rs->seqId)
-        ALIGN_CF_DBGF(("seqId: '%s', ", rs->seqId));
-    else
-        ALIGN_CF_DBGF(("seqId: null, "));
-    
-    if (rs->fastaSeqId)
-        ALIGN_CF_DBGF(("fastaSeqId: '%s', ", rs->fastaSeqId));
-    else
-        ALIGN_CF_DBGF(("fastaSeqId: null, "));
-    
-    ALIGN_CF_DBGF(("seq-len: %u, ", rs->seq_len));
-    ALIGN_CF_DBGF(("circular: %s, ", rs->circular ? "true" : "false"));
-    
-    if (rs->md5) {
-        ALIGN_CF_DBGF(("md5: '"));
-        for (j = 0; j != 16; ++j)
-            ALIGN_CF_DBGF(("%02X", rs->md5[j]));
-        ALIGN_CF_DBGF(("', "));
-    }
-    else
-        ALIGN_CF_DBGF(("md5: null, "));
-    
-    
-    ALIGN_CF_DBGF(("keys: [ "));
-    for (j = 0; j != m; ++j) {
-        key_id_t const *const kid = &key_id_array[j];
-        
-        if (kid->id == i)
-            ALIGN_CF_DBGF(("'%s', ", kid->key));
-    }
-    ALIGN_CF_DBGF(("] }"));
-}
-
-void ReferenceMgr_DumpConfig(ReferenceMgr const *const self)
-{
-    unsigned const n = self->refSeqs.elem_count;
-    unsigned const m = self->refSeqsById.elem_count;
-    key_id_t const *const key_id_array = self->refSeqsById.base;
-    unsigned i;
-    
-    ALIGN_CF_DBGF(("config: [\n"));
-    for (i = 0; i != n; ++i) {
-        ALIGN_CF_DBGF(("\t"));
-        ReferenceSeq_Dump(&self->refSeq[i], i, key_id_array, m);
-        ALIGN_CF_DBGF((",\n"));
-    }
-    ALIGN_CF_DBGF(("]\n"));
-}
-#endif
-
-static
-rc_t ReferenceMgr_TryFasta(ReferenceMgr *const self, ReferenceSeq *const seq,
-                           char const id[], unsigned const idLen)
-{
-    KFile const *kf = NULL;
-    rc_t rc;
-    
-    rc = OpenFastaFile(&kf, self->dir, id, idLen);
-    
-    if (rc == 0) {
-        rc = ReferenceMgr_ImportFastaFile(self, kf, seq);
-        KFileRelease(kf);
-    }
-    return rc;
-}
-
-static
-rc_t ReferenceSeq_GetRefSeqInfo(ReferenceSeq *const self)
-{
-    rc_t rc;
-    uint8_t const *md5;
-    
-    assert(self != NULL);
-    assert(self->type == rst_refSeqById || self->type == rst_refSeqBySeqId);
-    
-    if ((rc = RefSeq_Circular(self->u.refseq, &self->circular)) != 0)
-        return rc;
-    if ((rc = RefSeq_SeqLength(self->u.refseq, &self->seq_len)) != 0)
-        return rc;
-    if ((rc = RefSeq_MD5(self->u.refseq, &md5)) != 0)
-        return rc;
-    
-    memcpy(self->md5, md5, 16);
-    return 0;
-}
-
-static
-rc_t ReferenceSeq_Attach(ReferenceMgr *const self, ReferenceSeq *const rs)
-{
-    unsigned const seqid_len = rs->seqId ? string_size( rs->seqId ) : 0;
-    unsigned const id_len = rs->id ? string_size( rs->id ) : 0;
-    rc_t rc = 0;
-    KFile const *kf = NULL;
-    
-    assert(rs->type == rst_unattached);
-    assert(id_len != 0 || seqid_len != 0);
-    
-    if (seqid_len) {
-        if (RefSeqMgr_Exists(self->rmgr, rs->seqId, seqid_len, NULL) == 0) {
-            rc = RefSeqMgr_GetSeq(self->rmgr, &rs->u.refseq, rs->seqId, seqid_len);
-            if (rc == 0) {
-                rs->type = rst_refSeqBySeqId;
-                rc = ReferenceSeq_GetRefSeqInfo(rs);
-            }
-            return rc;
-        }
-    }
-    if (id_len) {
-        if (RefSeqMgr_Exists(self->rmgr, rs->id, id_len, NULL) == 0) {
-            rc = RefSeqMgr_GetSeq(self->rmgr, &rs->u.refseq, rs->id, id_len);
-            if (rc == 0) {
-                rs->type = rst_refSeqById;
-                rc = ReferenceSeq_GetRefSeqInfo(rs);
-            }
-            return rc;
-        }
-    }
-    if (id_len) {
-        rc = OpenFastaFile(&kf, self->dir, rs->id, id_len);
-        if (rc && seqid_len)
-            rc = OpenFastaFile(&kf, self->dir, rs->seqId, seqid_len);
-    }
-    else
-        rc = OpenFastaFile(&kf, self->dir, rs->seqId, seqid_len);
-    
-    if (kf) {
-        ReferenceSeq tmp;
-        
-        rc = ReferenceMgr_ImportFastaFile(self, kf, &tmp);
-        KFileRelease(kf);
-        if (rc == 0) {
-            tmp.id = rs->id;
-            tmp.seqId = rs->seqId;
-            tmp.circular = rs->circular;
-            
-            *rs = tmp;
-        }
-        return rc;
-    }
-    return 0;
-}
-
-static
-rc_t ReferenceMgr_OpenSeq(ReferenceMgr *const self, ReferenceSeq **const rslt,
-                          char const id[],
-                          unsigned const seq_len,
-                          uint8_t const md5[16])
-{
-    unsigned const idLen = string_size( id );
-    key_id_t const *const fnd = ReferenceMgr_FindId(self, id);
-    
-    assert(rslt != NULL);
-    *rslt = NULL;
-    if (fnd) {
-        if (self->refSeq[fnd->id].type == rst_dead)
-            return RC(rcAlign, rcIndex, rcSearching, rcItem, rcInvalid);
-        *rslt = &self->refSeq[fnd->id];
-        return 0;
-    }
-    else {
-        unsigned const n = self->refSeqs.elem_count;
-        unsigned i;
-        ReferenceSeq *seq = NULL;
-        rc_t rc = 0;
-        
-        /* try to find by id; this should work most of the time */
-        for (i = 0; i != n; ++i) {
-            ReferenceSeq *const rs = &self->refSeq[i];
-
-            if (rs->type == rst_dead)
-                continue;
-            
-            if (rs->id && strcmp(rs->id, id) == 0) {
-                seq = rs;
-                break;
-            }
-        }
-        if (seq == NULL) {
-            /* try to find by seqId */
-            for (i = 0; i != n; ++i) {
-                ReferenceSeq *const rs = &self->refSeq[i];
-                
-                if (rs->type == rst_dead)
-                    continue;
-                
-                if (rs->seqId && strcasecmp(rs->seqId, id) == 0) {
-                    seq = rs;
-                    break;
-                }
-            }
-        }
-        if (seq == NULL) {
-            /* try to find id within fasta seqIds */
-            unsigned best_wt = 0;
-            unsigned best = n;
-            
-            for (i = 0; i != n; ++i) {
-                ReferenceSeq const *const rs = &self->refSeq[i];
-                
-                if (rs->fastaSeqId) {
-                    unsigned wt = str_weight(rs->fastaSeqId, id, idLen);
-                    
-                    if (wt != no_match) {
-                        if (seq_len && rs->seq_len == seq_len)
-                            wt |= seq_len_match;
-                        if (md5 && memcmp(rs->md5, md5, 16) == 0)
-                            wt |= md5_match;
-                    }
-                    if (best_wt < wt) {
-                        best_wt = wt;
-                        best = i;
-                    }
-                }
-            }
-            if (best < n)
-                seq = &self->refSeq[best];
-        }
-        if (seq == NULL) {
-            /* try id.fasta or id.fa */
-            rc = ReferenceMgr_NewReferenceSeq(self, &seq);
-            if (rc) return rc;
-            rc = ReferenceMgr_TryFasta(self, seq, id, idLen);
-            if (GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcPath)
-                rc = 0;
-            else if (rc) return rc;
-        }
-        else if (seq->type == rst_unattached) {
-            /* expect to get here most of the time
-             *
-             * ReferenceSeq_Attach tries to get reference:
-             *  from RefSeqMgr:
-             *   by seqId
-             *   by id
-             *  from self->dir (data directory)
-             *   id.fasta
-             *   id.fa
-             *   seqId.fasta
-             *   seqId.fa
-             */
-            rc = ReferenceSeq_Attach(self, seq);
-            if (rc) return rc;
-            
-            if (seq->type == rst_unattached && seq->seqId != NULL) {
-                /* attach didn't work for id; try to find seqId within fasta seqIds */
-                unsigned const seqIdLen = string_size( seq->seqId );
-                unsigned best_wt = 0;
-                unsigned best = n;
-                
-                for (i = 0; i != n; ++i) {
-                    ReferenceSeq const *const rs = &self->refSeq[i];
-                    
-                    if (rs->type == rst_local && rs->fastaSeqId) {
-                        unsigned wt = str_weight(rs->fastaSeqId, seq->seqId, seqIdLen);
-                        
-                        if (wt != no_match) {
-                            if (seq_len && rs->seq_len == seq_len)
-                                wt |= seq_len_match;
-                            if (md5 && memcmp(rs->md5, md5, 16) == 0)
-                                wt |= md5_match;
+                        if(n == NULL && r == NULL) {
+                            n = str + page_sz + 1;
+                            page_sz = 0;
+                        } else {
+                            if( n == NULL || (r != NULL && r < n) ) {
+                                n = r;
+                            }
+                            page_sz -= n - str + 1;
+                        }
+                        r = str;
+                        /* find id: chr6 */
+                        while( r < n && !isspace(*r)){ r++; }
+                        if( r == n ) {
+                            rc = RC(rcAlign, rcIndex, rcConstructing, rcFileFormat, rcInvalid);
+                            break;
+                        } else if( r - str >= sizeof(tmp->id) ) {
+                            rc = RC(rcAlign, rcIndex, rcConstructing, rcBuffer, rcInsufficient);
+                            break;
+                        } else {
+                            memcpy(tmp->id, str, r - str);
+                            tmp->id[r - str] = '\0';
                         }
-                        if (best_wt < wt) {
-                            best_wt = wt;
-                            best = i;
+                        /* skip space(s) */
+                        while( r < n && isspace(*r)){ r++; }
+                        if( r >= n ) {
+                            rc = RC(rcAlign, rcIndex, rcConstructing, rcFileFormat, rcInvalid);
+                            break;
                         }
-                    }
-                }
-                if (best < n) {
-                    char *const tmp_id = seq->id;
-                    char *const tmp_seqId = seq->seqId;
-                    bool const tmp_circ = seq->circular;
-                    
-                    *seq = self->refSeq[best];
-                    seq->id = tmp_id;
-                    seq->seqId = tmp_seqId;
-                    seq->fastaSeqId = NULL;
-                    seq->circular = tmp_circ;
-
-                    /* add another reference to the data buffer */
-                    rc = KDataBufferSub(&self->refSeq[best].u.local.buf, &seq->u.local.buf, 0, 0);
-                    if (rc) return rc;
-                }
-            }
-        }
-        assert(seq != NULL);
-        if (seq->type == rst_unattached) {
-            /* nothing has worked and nothing left to try */
-            seq->type = rst_dead;
-            rc = RC(rcAlign, rcFile, rcConstructing, rcId, rcNotFound);
-        }
-        else {
-            ReferenceSeq *alt = NULL;
-            
-            /* perform ambiguity check
-             *
-             * This search follows the same pattern as the main search but has
-             * more stringent conditions.  One hopes that it fails to find
-             * anything.
-             */
-            for (i = 0; i != n; ++i) {
-                ReferenceSeq *const rs = &self->refSeq[i];
-                
-                if (   rs->type != rst_dead
-                    && rs->type != rst_unattached
-                    && rs != seq
-                    && rs->id != NULL
-                    && strcmp(id, rs->id) == 0
-                    && (seq_len == 0 || seq_len == rs->seq_len))
-                {
-                    alt = rs;
-                    break;
-                }
-            }
-            if (alt == NULL) {
-                for (i = 0; i != n; ++i) {
-                    ReferenceSeq *const rs = &self->refSeq[i];
-                    
-                    if (   rs->type != rst_dead
-                        && rs->type != rst_unattached
-                        && rs != seq
-                        && rs->seqId != NULL
-                        && strcasecmp(id, rs->seqId) == 0
-                        && (seq_len == 0 || seq_len == rs->seq_len))
-                    {
-                        alt = rs;
-                        break;
-                    }
-                }
-            }
-            if (alt == NULL) {
-                unsigned best_wt = 0;
-                unsigned best = n;
-                
-                for (i = 0; i != n; ++i) {
-                    ReferenceSeq const *const rs = &self->refSeq[i];
-                    
-                    if (rs != seq && rs->fastaSeqId && rs != seq) {
-                        unsigned wt = str_weight(rs->fastaSeqId, id, idLen);
-                        
-                        if (wt != no_match) {
-                            if (seq_len && rs->seq_len == seq_len)
-                                wt |= seq_len_match;
-                            if (md5 && memcmp(rs->md5, md5, 16) == 0)
-                                wt |= md5_match;
+                        str = r;
+                        /* get accession */
+                        while( r < n && !isspace(*r)){ r++; }
+                        if( r - str >= sizeof(tmp->accession) ) {
+                            rc = RC(rcAlign, rcIndex, rcConstructing, rcBuffer, rcInsufficient);
+                            break;
+                        } else {
+                            memcpy(tmp->accession, str, r - str);
+                            tmp->accession[r - str] = '\0';
                         }
-                        if (best_wt < wt) {
-                            best_wt = wt;
-                            best = i;
+                        if( RefSeqMgr_Exists(rmgr, tmp->accession, r - str) == 0 ) {
+                            tmp->local = false;
+                            if( (rc = BSTreeInsertUnique(tree, &tmp->dad, NULL, ReferenceSeq_Sort)) != 0 ) {
+                                break;
+                            }
+                            ALIGN_DBG("RefSeq translation added '%s' -> '%s'", tmp->id, tmp->accession);
+                        } else {
+                            /* skips unknown references, later may be picked up as local files */
+                            (void)PLOGMSG(klogWarn, (klogWarn, "RefSeq table '$(acc)' for '$(id)' was not found",
+                                                               "acc=%s,id=%s", tmp->accession, tmp->id));
+                            free(tmp);
                         }
+                        tmp = NULL;
+                        str = n + 1;
                     }
                 }
-                if (best < n)
-                    alt = &self->refSeq[best];
-            }
-            /* try to knock the alternative out of consideration
-             * if it survives length and md5 tests, it is *really* likely to be
-             * a duplicate.
-             */
-            if (alt != NULL && seq_len != 0 && seq_len != alt->seq_len)
-                alt = NULL;
-            if (alt != NULL && md5 != NULL && memcmp(md5, alt->md5, 16) != 0)
-                alt = NULL;
-            if (alt != NULL) {
-                seq->type = rst_dead;
-                rc = RC(rcAlign, rcFile, rcConstructing, rcId, rcAmbiguous);
-            }
-        }
-        if ( seq->id == NULL )
-        {
-            seq->id = string_dup( id, string_size( id ) );
-            if ( seq->id == NULL )
-                return RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+                free(tmp);
+            } while(rc == 0 && page_sz > 0);
+            KMMapRelease(mm);
         }
-        /* finally, associate the id with the object and put it in the index */
-        {{
-            rc_t rc2 = ReferenceMgr_AddId(self, id, seq);
-            if (rc == 0)
-                rc = rc2;
-        }}
-        if (rc == 0)
-            *rslt = seq;
-        return rc;
-    }
-}
-
-LIB_EXPORT rc_t CC ReferenceMgr_SetCache(ReferenceMgr const *const self, size_t cache, uint32_t num_open)
-{
-    return RefSeqMgr_SetCache(self->rmgr, cache, num_open);
-}
-
-static
-rc_t OpenDataDirectory(KDirectory const **rslt, char const path[])
-{
-    KDirectory *dir;
-    rc_t rc = KDirectoryNativeDir(&dir);
-    
-    if (rc == 0) {
-        if (path) {
-            rc = KDirectoryOpenDirRead(dir, rslt, false, path);
-            KDirectoryRelease(dir);
-        }
-        else
-            *rslt = dir;
+        KFileRelease(kf);
     }
     return rc;
 }
 
-LIB_EXPORT rc_t CC ReferenceMgr_Make(ReferenceMgr const **cself, VDatabase *db,
-                                     VDBManager const* vmgr,
-                                     const uint32_t options, char const conf[], char const path[],
+LIB_EXPORT rc_t CC ReferenceMgr_Make(const ReferenceMgr** cself, VDatabase* db, const VDBManager* vmgr,
+                                     const uint32_t options, const char* conf, const char* path,
                                      uint32_t max_seq_len, size_t cache, uint32_t num_open)
 {
-    rc_t rc;
-    ReferenceMgr *self;
+    rc_t rc = 0;
+    KDirectory* dir = NULL;
+    ReferenceMgr* obj = NULL;
     uint32_t wopt = 0;
     
-    if (cself == NULL)
-        return RC(rcAlign, rcIndex, rcConstructing, rcParam, rcNull);
-    
     wopt |= (options & ewrefmgr_co_allREADs) ? ewref_co_SaveRead : 0;
     wopt |= (options & ewrefmgr_co_Coverage) ? ewref_co_Coverage : 0;
 
-    if (max_seq_len == 0)
+    if( max_seq_len == 0 ) {
         max_seq_len = TableWriterRefSeq_MAX_SEQ_LEN;
-    
-    self = calloc(1, sizeof(*self));
-    if (self) {
-        rc = KDataBufferMakeBytes(&self->seq, max_seq_len);
-        if (rc == 0) {
-            self->compress.elem_bits = 32;
-            self->refSeqs.elem_bits = sizeof(ReferenceSeq) * 8;
-            self->refSeqsById.elem_bits = sizeof(key_id_t) * 8;
-            
-            self->options = options;
-            self->cache = cache;
-            self->num_open_max = num_open;
-            self->max_seq_len = max_seq_len;
-            if (db) VDatabaseAddRef(self->db = db);
-            rc = OpenDataDirectory(&self->dir, path);
-            if (rc == 0) {
-                rc = RefSeqMgr_Make(&self->rmgr, vmgr, 0, cache, num_open);
-                if (rc == 0) {
-                    rc = ReferenceMgr_Conf(self, conf);
-                    if (rc == 0) {
-                        *cself = self;
-                        ALIGN_DBG("conf %s, local path '%s'", conf ? conf : "", path ? path : "");
-                        return 0;
-                    }
-                    (void)PLOGERR(klogErr, (klogErr, rc, "failed to open configuration $(file)", "file=%s/%s", path ? path : ".", conf));
+    }
+    if( cself == NULL || (vmgr == NULL && conf != NULL) ) {
+        rc = RC(rcAlign, rcIndex, rcConstructing, rcParam, rcNull);
+    } else if( (obj = calloc(1, sizeof(*obj) + max_seq_len - sizeof(obj->seq_buf))) == NULL ) {
+        rc = RC(rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted);
+
+    } else if( (rc = KDirectoryNativeDir(&dir)) == 0 ) {
+        BSTreeInit(&obj->tree);
+        obj->options = options;
+        obj->cache = cache;
+        obj->num_open_max = num_open;
+        obj->max_seq_len = max_seq_len;
+        if( (rc = VDBManagerAddRef(vmgr)) == 0 ) {
+            obj->vmgr = vmgr;
+        }
+        if( rc == 0 && db != NULL && (rc = VDatabaseAddRef(db)) == 0 ) {
+            obj->db = db;
+        }
+        if( rc == 0 ) {
+            if( path == NULL ) {
+                if( (rc = KDirectoryAddRef(dir)) == 0 ) {
+                    obj->dir = dir;
                 }
+            } else {
+                rc = KDirectoryOpenDirRead(dir, &obj->dir, false, path);
+            }
+            if( rc == 0 ) {
+                rc = RefSeqMgr_Make(&obj->rmgr, obj->vmgr, 0, cache, num_open);
             }
         }
-        ReferenceMgr_Release(self, false, NULL, false);
+        if (rc == 0 && (rc = ReferenceMgr_Conf(obj->rmgr, &obj->tree, obj->dir, obj->vmgr, conf)) != 0 ) {
+            (void)PLOGERR(klogErr, (klogErr, rc, "failed to open configuration $(file)", "file=%s/%s", path ? path : ".", conf));
+        }
+    }
+    KDirectoryRelease(dir);
+    if( rc == 0 ) {
+        *cself = obj;
+        ALIGN_DBG("conf %s, local path '%s'", conf ? conf : "", path ? path : "");
+    } else {
+        ReferenceMgr_Release(obj, false, NULL, false);
+        ALIGN_DBGERR(rc);
     }
-    else
-        rc = RC(rcAlign, rcIndex, rcConstructing, rcMemory, rcExhausted);
-
-    ALIGN_DBGERR(rc);
-
     return rc;
 }
 
-#define ID_CHUNK_SZ 256
-
-typedef struct TChunk32_struct {
-    struct TChunk32_struct* next;
-    uint32_t id[ID_CHUNK_SZ]; /*** will only work with positive ids **/
-} TChunk32;
-
-typedef struct AlignId32List_struct {
-	TChunk32* head;
-	TChunk32* tail;
-	uint32_t  tail_qty;  /** number elements in the last chunk **/
-	uint32_t  chunk_qty; /** number of chunks */
-} AlignId32List;
-typedef struct AlignIdList_struct {
-	AlignId32List **sub_list;
-	uint32_t        sub_list_count; 
-} AlignIdList;
-
-static uint64_t AlignId32ListCount(AlignId32List *l)
-{ return (l->chunk_qty>0)?ID_CHUNK_SZ*(l->chunk_qty-1)+ l->tail_qty:0;}
-
-static uint64_t AlignIdListCount(AlignIdList *l)
-{
-	uint64_t ret=0;
-	if(l){
-		uint32_t i;
-		for(i=0;i<l->sub_list_count;i++){
-			if(l->sub_list[i]){
-				ret += AlignId32ListCount(l->sub_list[i]);
-			}
-		}
-	}
-	return ret;
-}
-static int int64_compare(const void *A, const void *B, void *ignore)
-{
-	return *(int64_t*)A -  *(int64_t*)B;
-}
-static uint64_t AlignIdListFlatCopy(AlignIdList *l,int64_t *buf,uint64_t num_elem,bool do_sort)
-{
-	uint64_t res=0;
-	uint32_t i,j;
-	AlignId32List* cl;
-	assert(l!=0);
-
-	if((cl = l->sub_list[0])!=NULL){
-		TChunk32* head  = cl->head;
-		while(head !=  cl->tail){
-			for(i=0;i<ID_CHUNK_SZ && res < num_elem;i++,res++){
-				buf[res] = head->id[i];
-			}
-			head = head->next;
-		}
-		for(i=0;i<cl->tail_qty && res < num_elem;i++,res++){
-			buf[res] = head->id[i];
-		}
-	}
-	for(j = 1; j< l->sub_list_count && res < num_elem;j++){
-		if((cl = l->sub_list[j])!=NULL){
-			TChunk32* head  = cl->head;
-			uint64_t  hi = ((uint64_t)j) << 32;
-			while(head !=  cl->tail){
-				for(i=0;i<ID_CHUNK_SZ && res < num_elem;i++,res++){
-					buf[res] = hi | head->id[i];
-				}
-				head = head->next;
-			}
-			for(i=0;i<cl->tail_qty && res < num_elem;i++,res++){
-				buf[res] = hi | head->id[i];
-			}
-		}
-	}
-	if(do_sort && res > 1) 
-		ksort(buf,res,sizeof(*buf),int64_compare,NULL);
-	return res;
-}
-
-static rc_t AlignId32ListAddId(AlignId32List *l,const uint32_t id)
-{
-	if(l->tail  == NULL){
-		l->head = l->tail = malloc(sizeof(*l->tail));
-		if(l->tail == NULL) return RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
-		l->chunk_qty =1;
-		l->tail_qty = 0;	
-	}
-	if(l->tail_qty == ID_CHUNK_SZ){/** chunk is full **/
-		l->tail->next = malloc(sizeof(*l->tail));
-		if(l->tail == NULL) return RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
-		l->tail = l->tail->next;
-		l->chunk_qty ++;
-		l->tail_qty = 0;	
-	}
-	l->tail->id[l->tail_qty++]=id;
-	return 0;
-}
-
-static rc_t AlignIdListAddId(AlignIdList *l,const int64_t id)
-{
-	uint32_t  sub_id,id32;
-	if(id < 0) return RC(rcAlign, rcTable, rcCommitting, rcId, rcOutofrange);
-	id32 = (uint32_t) id;
-	sub_id = id >> 32;
-	if(sub_id >= l->sub_list_count) return RC(rcAlign, rcTable, rcCommitting, rcId, rcOutofrange);
-	if(l->sub_list[sub_id] == NULL){
-		l->sub_list[sub_id] = calloc(1,sizeof(AlignId32List));
-		if(l->sub_list[sub_id] == NULL) return RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
-	}
-	return AlignId32ListAddId(l->sub_list[sub_id],id32);
-}
-
-static void AlignId32ListRelease(AlignId32List *l)
-{
-	if(l){
-		while(l->head != l->tail){
-			TChunk32* head = l->head;
-			l->head = l->head->next;
-			free(head);
-		}
-		free(l->head);
-		free(l);
-	}
-}
-static void AlignIdListRelease(AlignIdList *l)
+static
+void CC ReferenceSeq_Whack(BSTNode *n, void *data)
 {
-        if(l){
-		uint32_t i;
-		for(i=0;i<l->sub_list_count;i++){
-			AlignId32ListRelease(l->sub_list[i]);
-		}
-		free(l->sub_list);
-		free(l);
-        }
+    ReferenceSeq* self = (ReferenceSeq*)n;
+    if( self->local ) {
+        KMMapRelease(self->u.local.map);
+    } else {
+        RefSeq_Release(self->u.refseq.o);
+    }
+    free(self);
 }
 
+#define ID_CHUNK_SZ 16
+typedef struct TChunk_struct {
+    struct TChunk_struct* next;
+    uint16_t secondary; /* bit mask */
+    int64_t id[ID_CHUNK_SZ];
+} TChunk;
 
 typedef struct {
-    AlignIdList*	idlist;
     ReferenceSeqCoverage cover;
-    INSDC_coord_len bin_seq_len;
+    TChunk* head;
+    TChunk* tail;
+    uint8_t tail_qty; /* id count within tail */
+    uint32_t id_qty; /* id count overall */
+    uint8_t* hilo; /* array of max_seq_len */
 } TCover;
 
 static
-void ReferenceMgr_TCoverRelease(TCover* c)
-{
-	if(c){
-		AlignIdListRelease(c->idlist);
-		c->idlist = NULL;
-	}
-}
-static 
-rc_t ReferenceMgr_TCoverSetMaxId(TCover* c,int64_t id)
+void ReferenceMgr_TCoverRelease(const TCover* c)
 {
-	uint32_t  sub_id;
-	if(id < 0) return RC(rcAlign, rcTable, rcCommitting, rcId, rcOutofrange);
-	sub_id = id >> 32;
-	if(c->idlist == NULL){
-		c->idlist = calloc(1,sizeof(AlignIdList));
-		if(c->idlist==NULL) return RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
-		c->idlist->sub_list_count = sub_id+1;
-		c->idlist->sub_list = calloc(c->idlist->sub_list_count,sizeof(c->idlist->sub_list[0]));
-		if( c->idlist->sub_list == NULL) return RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
-	} else {
-		return RC(rcAlign, rcTable, rcCommitting, rcParam, rcUnexpected);
-	}
-	return 0;
+    TChunk* h = c->head;
+    while( h != NULL ) {
+        TChunk* n = h->next;
+        free(h);
+        h = n;
+    }
 }
-
 static
-rc_t CoverageGetSeqLen(ReferenceMgr const *const mgr, TCover data[], uint64_t const rows)
+int CC int64_cmp( const void* l, const void* r, void *data )
 {
-    TableReaderColumn acols[] =
-    {
-        {0, "(INSDC:coord:len)SEQ_LEN", {NULL}, 0, 0},
-        {0, NULL, {NULL}, 0, 0}
-    };
-    VTable const *tbl;
-    rc_t rc = VDatabaseOpenTableRead(mgr->db, &tbl, "REFERENCE");
-    
-    if (rc == 0) {
-        TableReader const *reader;
-        
-        rc = TableReader_Make(&reader, tbl, acols, 0);
-        if (rc == 0) {
-            uint64_t i;
-            
-            for (i = 0; i != rows; ++i) {
-                rc = TableReader_ReadRow(reader, i + 1);
-                if (rc == 0 && acols->len > 0)
-                    data[i].bin_seq_len = acols->base.coord_len[0];
-            }
-            TableReader_Whack(reader);
-        }
-        VTableRelease(tbl);
-    }
-    return rc;
+    return *(const int64_t*)l - *(const int64_t*)r;
 }
 
 static
-rc_t ReferenceMgr_ReCover(const ReferenceMgr* cself, uint64_t ref_rows)
+rc_t ReferenceMgr_ReCover(const ReferenceMgr* cself, uint64_t rows)
 {
     rc_t rc = 0;
+    int i;
     uint64_t new_rows = 0;
     const TableWriterRefCoverage* cover_writer = NULL;
-    
+
     TableReaderColumn acols[] =
     {
-        {0, "REF_ID", {NULL}, 0, 0},
-        {0, "REF_START", {NULL}, 0, 0},
-        {0, "CIGAR_LONG",{NULL}, 0, 0},
-        {0, "REF_POS",{NULL}, 0, 0},
-        {0, NULL, {NULL}, 0, 0}
+        {0, "REF_ID", NULL, 0, 0},
+        {0, "REF_START", NULL, 0, 0},
+        {0, "REF_LEN", NULL, 0, 0},
+        {0, "MISMATCH", NULL, 0, 0},
+        {0, "REF_OFFSET", NULL, 0, 0},
+        {0, "HAS_REF_OFFSET", NULL, 0, 0},
+        {0, NULL, NULL, 0, 0}
     };
-    const int64_t** al_ref_id = &acols[0].base.i64;
-    const INSDC_coord_zero** al_ref_start = &acols[1].base.coord0;
-    const TableReaderColumn* cigar =  &acols[2];
-    const INSDC_coord_zero** al_ref_pos = &acols[3].base.coord0;
-    /* order is important see ReferenceSeqCoverage struct */
-    struct {
-        const char* nm;
-	    const char* col;
-        bool ids_only;
-    } tbls[] = { {"PRIMARY_ALIGNMENT", "PRIMARY_ALIGNMENT_IDS",false},
-        {"SECONDARY_ALIGNMENT", "SECONDARY_ALIGNMENT_IDS",false},
-        {"EVIDENCE_INTERVAL", "EVIDENCE_INTERVAL_IDS", true} };
-	int tbls_qty=(sizeof(tbls)/sizeof(tbls[0]));
-    rc_t rc1 = 0;
-    int64_t rr;
-    uint32_t i;
-    uint8_t* hilo=NULL;
-    TCover* data = NULL;
-    
-    /* allocate mem for ref_rows of reference coverage*/
-    if((data = calloc(ref_rows, (sizeof(*data) + cself->max_seq_len))) == NULL ) {
-		rc = RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
-    } else {
-		/** allocation for both data and hilo was done in 1 shot ***/
-		hilo = (uint8_t *)&data[ref_rows];
-        rc = CoverageGetSeqLen(cself, data, ref_rows);
-    }
-    /* grep through tables for coverage data */
-    ALIGN_R_DBG("covering REFERENCE rowid range [1:%ld]",ref_rows);
-    for(i = 0; rc == 0 && i < tbls_qty; i++) { /* TABLE LOOP STARTS */
-        const VTable* table = NULL;
-        const TableReader* reader = NULL;
-        int64_t al_from;
-        uint64_t al_qty;
-        
-        ALIGN_R_DBG("covering REFERENCE with %s", tbls[i].nm);
-        if( (rc = VDatabaseOpenTableRead(cself->db, &table, tbls[i].nm)) != 0 ) {
-            if( GetRCState(rc) == rcNotFound ) {
-                ALIGN_R_DBG("table %s was not found, ignored", tbls[i].nm);
-                rc = 0;
-                continue;
-            } else {
-                break;
-            }
-        }
-        if( (rc = TableReader_Make(&reader, table, acols, cself->cache)) == 0 &&
-           (rc = TableReader_IdRange(reader, &al_from, &al_qty)) == 0 ) {
-            int64_t al_rowid;
-            
-            for(al_rowid = al_from; rc == 0 && al_rowid < al_from + al_qty; al_rowid++) {
-                if( (rc = TableReader_ReadRow(reader, al_rowid)) != 0 ) {
-                    break;
-                }
-                rr    = **al_ref_id-1;
-                /**** Record ALIGNMENT_IDS ***/
-                if(   data[rr].idlist == NULL 
-                   && (rc = ReferenceMgr_TCoverSetMaxId(data+rr,al_from + al_qty))!=0){
-                    break; /*** out-of-memory ***/
+    const int64_t** al_ref_id = (const int64_t**)&acols[0].base;
+    const INSDC_coord_zero** al_ref_start = (const INSDC_coord_zero**)&acols[1].base;
+    const INSDC_coord_len** al_ref_len =  (const INSDC_coord_len**)&acols[2].base;
+    const uint32_t* mismatch_len =  &acols[3].len;
+    const uint32_t* ref_offset_len =  &acols[4].len;
+    const int32_t** ref_offset = (const int32_t **)&acols[4].base;
+    const uint8_t** has_ref_offset = (const uint8_t **)&acols[5].base;
+
+    /* TODO TO DO TBD change to work properly with mutiple reads in alignment table */
+
+    if( (rc = TableWriterRefCoverage_Make(&cover_writer, cself->db)) == 0 ) {
+        rc_t rc1 = 0;
+        /* array of ids for sorting and writing to table:
+           for head prim_ids , from tail secondry_ids */
+        int64_t ref_from = 1, *ids = NULL, rr;
+        size_t ids_sz = 0;
+        uint64_t ref_qty = rows;
+
+        ALIGN_DBG("sizeof(TCover) %u, sizeof(TChunk) %u", sizeof(TCover), sizeof(TChunk));
+        while( rc == 0 && ref_from <= rows ) {
+            const char* tbls[] = {"PRIMARY_ALIGNMENT", "SECONDARY_ALIGNMENT"};
+            TCover* data = NULL;
+            uint8_t* hilo;
+            /* allocate mem for up to ref_qty of reference coverage data up to 4Gb */
+            do {
+                TCover* t = NULL;
+                if( (ref_qty * (sizeof(*t) + cself->max_seq_len)) > (4L * 1024 * 1024 * 1024) ||
+                    (t = calloc(ref_qty, sizeof(*t) + cself->max_seq_len)) == NULL ) {
+                    ref_qty = ref_qty / 3 * 2;
                 }
-                if((rc = AlignIdListAddId(data[rr].idlist,al_rowid))!=0){
-                    break; /*** out-of-memory ***/
+                if( ref_qty < 1 ) {
+                    rc = RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
                 }
-                /**** Done alignment ids ***/
-                if( !tbls[i].ids_only ) { /*** work on statistics ***/
-                    char const *c = cigar->base.str;
-                    const char *c_end = c + cigar->len;
-                    int64_t const global_ref_pos = rr*cself->max_seq_len + **al_ref_start; /** global_ref_start **/
-                    int64_t const global_refseq_start = global_ref_pos -  **al_ref_pos;   /** global_ref_start of current reference **/
-                    unsigned const bin_no = global_ref_pos / cself->max_seq_len;
-                    TCover *const bin = &data[bin_no];
-                    uint8_t *const cov = &hilo[global_ref_pos];
-                    int64_t ref_offset = 0;
-                    int64_t max_ref_offset = 0;
-                    int64_t min_ref_offset = 0;
-                    int64_t j;
-
-                    while (rc == 0 && c < c_end) {
-                        int op_len = strtol(c, (char **)&c, 10);
-                        int const op = *c++;
-                        
-                        switch (op){
-                        case 'I':/* extra bases in the read **/
-                            ++bin->cover.indels;
-                        case 'S':/* skip in the read */
-                            break;
-                        case 'B':/* back up in the sequence */
-                            if (ref_offset > op_len)
-                                ref_offset -= op_len;
-                            else
-                                ref_offset = 0;
-                            break;
-                        case 'D': /** delete in the reference ***/
-                            ++bin->cover.indels;
-                        case 'N': /** expected skip in the reference ***/
-                            ref_offset += op_len;
+                data = t;
+                hilo = (uint8_t*)&data[ref_qty];
+            } while( rc == 0 && data == NULL );
+            /* grep through tables for coverage data */
+            ALIGN_DBG("covering REFERENCE rowid range [%ld:%ld]", ref_from, ref_from + ref_qty - 1);
+            for(i = 0; rc == 0 && i < sizeof(tbls)/sizeof(tbls[0]); i++ ) {
+                const VTable* table = NULL;
+                const TableReader* reader = NULL;
+                int64_t al_from;
+                uint64_t al_qty;
+
+                if( (rc = VDatabaseOpenTableRead(cself->db, &table, tbls[i])) == 0 &&
+                    (rc = TableReader_Make(&reader, table, acols, cself->cache)) == 0 &&
+                    (rc = TableReader_IdRange(reader, &al_from, &al_qty)) == 0 ) {
+                    int64_t al_rowid;
+                    for(al_rowid = al_from; rc == 0 && al_rowid <= al_qty; al_rowid++) {
+                        int64_t ref_r, al_ref_id_end;
+                        uint64_t j, seq_start = 0, refseq_start, refseq_len;
+                        if( (rc = TableReader_ReadRow(reader, al_rowid)) != 0 ) {
                             break;
-                        case 'X':
-                            bin->cover.mismatches += op_len;
-                        case '=':
-                            ref_offset += op_len;
-                            break;
-                        default:
-                            rc = RC(rcAlign, rcTable, rcCommitting, rcData, rcUnrecognized);
                         }
-                        if (min_ref_offset > ref_offset)
-                            min_ref_offset = ref_offset;
-                        if (max_ref_offset < ref_offset)
-                            max_ref_offset = ref_offset;
-                    }
-                    for (j = min_ref_offset; j < max_ref_offset; ++j) {
-                        unsigned const hl = cov[j];
-                        
-                        if (hl < UINT8_MAX)
-                            cov[j] = hl + 1;
-                    }
-                    /*** check if OVERLAPS are needed ***/
-                    {
-                        int64_t min_rr = (global_ref_pos + min_ref_offset)/cself->max_seq_len;
-                        int64_t max_rr = (global_ref_pos + max_ref_offset)/cself->max_seq_len;
-                        
-                        if(min_rr < 0) min_rr = 0;
-                        if(max_rr >= ref_rows) max_rr = ref_rows -1;
-                        
-                        assert(min_rr<= max_rr);
-                        
-                        if(min_rr < max_rr){
-                            int64_t  overlap_ref_pos; /** relative the beginning of the reference **/
-                            uint32_t overlap_ref_len = (global_ref_pos + max_ref_offset) % cself->max_seq_len ;
-                            
-                            min_rr++;
-                            if (global_ref_pos + min_ref_offset > global_refseq_start) {
-                                overlap_ref_pos = global_ref_pos + min_ref_offset - global_refseq_start;
-                            }
-                            else {
-                                overlap_ref_pos = 1;
+                        /* alignment can run across multiple reference chunks */
+                        al_ref_id_end = cself->max_seq_len - **al_ref_start;
+                        if( al_ref_id_end < **al_ref_len ) {
+                            al_ref_id_end = (**al_ref_len - al_ref_id_end) / cself->max_seq_len + 1;
+                        } else {
+                            al_ref_id_end = 1;
+                        }
+                        al_ref_id_end += **al_ref_id;
+                        refseq_start = **al_ref_start;
+                        ALIGN_DBG("al row %li has REF_ID [%ld,%ld], REF_START: %u, REF_LEN %u",
+                                    al_rowid, **al_ref_id, al_ref_id_end - 1, **al_ref_start, **al_ref_len);
+                        for(ref_r = **al_ref_id; ref_r < al_ref_id_end; ref_r++) {
+                            refseq_len = cself->max_seq_len - refseq_start;
+                            if( seq_start + refseq_len > **al_ref_len ) {
+                                refseq_len = **al_ref_len - seq_start;
                             }
-                            for ( ; min_rr < max_rr; ++min_rr) {
-                                if (   data[min_rr].cover.overlap_ref_pos[i] == 0 /*** NOT SET***/
-                                    || overlap_ref_pos < data[min_rr].cover.overlap_ref_pos[i])
-                                {
-									data[min_rr].cover.overlap_ref_pos[i] = overlap_ref_pos;
+                            ALIGN_DBG("covered ref_id %ld [%ld,%ld]", ref_r, refseq_start, refseq_start + refseq_len);
+                            if( ref_r >= ref_from && ref_r < ref_from + ref_qty ) {
+                                uint64_t k = ref_r - ref_from;
+                                ALIGN_DBG("%ld is a match for %ld[%lu]", ref_r, ref_from + k, k);
+                                if( data[k].tail_qty == ID_CHUNK_SZ || data[k].head == NULL ) {
+                                    TChunk* x = malloc(sizeof(*(data[k].tail)));
+                                    while( x == NULL ) {
+                                        /* release last ref cover_writer record and retry */
+                                        ReferenceMgr_TCoverRelease(&data[--ref_qty]);
+                                        ALIGN_DBG("downsize covering REFERENCE rowid range [%ld:%ld] from %s",
+                                                  ref_from, ref_from + ref_qty - 1, tbls[i]);
+                                        if( ref_qty < 1 ) {
+                                            rc = RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
+                                            break;
+                                        } else if( ref_r >= ref_from + ref_qty ) {
+                                            break;
+                                        }
+                                    }
+                                    if( rc != 0 ) {
+                                        break;
+                                    }
+                                    if( data[k].head == NULL ) {
+                                        data[k].head = x;
+                                    } else {
+                                        data[k].tail->next = x;
+                                    }
+                                    x->secondary = 0;
+                                    data[k].tail = x;
+                                    data[k].tail->next = NULL;
+                                    data[k].tail_qty = 0;
+                                    data[k].hilo = &hilo[cself->max_seq_len * k];
+                                }
+                                data[k].tail->id[data[k].tail_qty] = al_rowid;
+                                if( i > 0 ) {
+                                    data[k].tail->secondary |= 1 << data[k].tail_qty;
+                                }
+                                data[k].tail_qty++;
+                                data[k].id_qty++;
+                                if( ref_r == **al_ref_id ) {
+                                    /* write those to 1st chunk only */
+                                    
+                                    unsigned left_soft_clip = 0;
+                                    
+                                    if (*ref_offset_len > 0 && (*has_ref_offset)[0] != 0 && (*ref_offset)[0] < 0) {
+                                        left_soft_clip = 1;
+                                    }
+                                    data[k].cover.mismatches += *mismatch_len;
+                                    data[k].cover.indels += *ref_offset_len - left_soft_clip;
+                                }
+                                for(j = refseq_start; j < refseq_start + refseq_len; j++) {
+                                    if( data[k].hilo[j] < UINT8_MAX ) {
+                                        data[k].hilo[j]++;
+                                    }
                                 }
-                                data[min_rr].cover.overlap_ref_len[i] = cself->max_seq_len; /*** in between chunks get full length of overlap **/
-                            }
-                            if (   data[min_rr].cover.overlap_ref_pos[i] == 0
-                                || overlap_ref_pos < data[min_rr].cover.overlap_ref_pos[i])
-                            {
-								data[min_rr].cover.overlap_ref_pos[i] = overlap_ref_pos;
                             }
-                            if (overlap_ref_len > data[min_rr].cover.overlap_ref_len[i])
-								data[min_rr].cover.overlap_ref_len[i] = overlap_ref_len;
+                            seq_start += refseq_len;
+                            refseq_start = 0;
                         }
+                        rc = rc ? rc : Quitting();
                     }
-                } /**** DONE WITH WORK ON STATISTICS ***/
-                ALIGN_DBGERR(rc);
-                rc = rc ? rc : Quitting();
+                }
+                VTableRelease(table);
+                TableReader_Whack(reader);
             }
-		    /*** HAVE TO RELEASE **/
-		    TableReader_Whack(reader);
-		    VTableRelease(table);
-		    /*** NOW SAVE AND RELEASE THE COLUMN ***/
-		    if( (rc = TableWriterRefCoverage_MakeIds(&cover_writer, cself->db, tbls[i].col)) == 0 ) {
-                for(rr=0; rc ==0 &&  rr < ref_rows; rr ++){
-                    uint64_t num_elem = AlignIdListCount( data[rr].idlist);
-                    uint64_t num_elem_copied = 0;
-                    if(num_elem > 0 ){
-#define BUF_STACK_COUNT 128 * 1024
-                        int64_t buf_stack[BUF_STACK_COUNT];
-                        int64_t *buf_alloc = NULL;
-                        int64_t *buf = buf_stack;
-                        if(num_elem > BUF_STACK_COUNT){
-                            buf=buf_alloc=malloc(num_elem*sizeof(buf[0]));
-                            if(buf_alloc == NULL) 
-                                rc = RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
-                        }
-                        if(rc == 0){
-                            num_elem_copied = AlignIdListFlatCopy(data[rr].idlist,buf,num_elem,true);
-                            assert(num_elem == num_elem_copied);
-                        }
-                        ReferenceMgr_TCoverRelease(data+rr); /** release memory ***/
-                        if(rc == 0){
-                            rc = TableWriterRefCoverage_WriteIds(cover_writer, rr+1, buf,num_elem);
+            /* prep and write coverage data */
+            for(rr = 0; rc == 0 && rr < ref_qty; rr++) {
+                uint32_t i;
+                TChunk* x;
+                ReferenceSeqCoverage* c = &data[rr].cover;
+
+                while( ids_sz < data[rr].id_qty ) {
+                    int64_t* n = realloc(ids, data[rr].id_qty * sizeof(*ids));
+                    if( n == NULL ) {
+                        ReferenceMgr_TCoverRelease(&data[--ref_qty]);
+                        ALIGN_DBG("downsize covering REFERENCE rowid range [%ld:%ld]", ref_from, ref_from + ref_qty - 1);
+                        if( ref_qty < 1 ) {
+                            rc = RC(rcAlign, rcTable, rcCommitting, rcMemory, rcExhausted);
+                            break;
+                        } else if( rr >= ref_qty ) {
+                            break;
                         }
-                        if(buf_alloc) free(buf_alloc);
                     } else {
-                        rc = TableWriterRefCoverage_WriteIds(cover_writer, rr+1, NULL,0);
+                        ids = n;
+                        ids_sz = data[rr].id_qty;
                     }
                 }
-                if(rc == 0){
-                    rc = TableWriterRefCoverage_Whack(cover_writer, rc == 0, &new_rows);
-                    if( rc == 0  && ref_rows != new_rows ) {
-                        rc = RC(rcAlign, rcTable, rcCommitting, rcData, rcInconsistent);
+                if( rc != 0 || rr >= ref_qty ) {
+                    break;
+                }
+                ALIGN_DBGF(("ref rowid %ld:", ref_from + rr));
+                x = data[rr].head;
+                while( x != NULL ) {
+                    uint8_t q = data[rr].tail == x ? data[rr].tail_qty : ID_CHUNK_SZ;
+                    for(i = 0; i < q; i++) {
+                        ALIGN_DBGF((" %lu[%c]", x->id[i], (x->secondary & i) ? 's' : 'p'));
+                        if( x->secondary & i ) {
+                            ids[ids_sz - ++c->secondary_ids.elements] = x->id[i];
+                        } else {
+                            ids[c->primary_ids.elements++] = x->id[i];
+                        }
                     }
+                    x = x->next;
                 }
-                ALIGN_DBGERR(rc);
-		    }
-		} else {
-			TableReader_Whack(reader);
-			VTableRelease(table);
-		}
-	}/* TABLE LOOP ENDS **/
-    /* prep and write coverage data */
-	if(rc == 0) {
-        uint64_t k;
-        
-		rc = TableWriterRefCoverage_MakeCoverage(&cover_writer, cself->db, 0);
-		for (rr = 0, k = 0; rc == 0 && rr != ref_rows; ++rr, k += cself->max_seq_len) {
-            unsigned hi = 0;
-            unsigned lo = 255;
-            
-		    for (i = 0; i != data[rr].bin_seq_len; ++i) {
-                unsigned const depth = hilo[k + i];
-                
-                if (hi < depth) hi = depth;
-                if (lo > depth) lo = depth;
-		    }
-            data[rr].cover.high = hi;
-            data[rr].cover.low  = lo;
-		    rc = TableWriterRefCoverage_WriteCoverage(cover_writer,rr+1, &data[rr].cover);
-		}
-		free(data);
-		rc1 = TableWriterRefCoverage_Whack(cover_writer, rc == 0, &new_rows);
-		rc = rc ? rc : rc1;
-		if( rc == 0 && ref_rows != new_rows ) {
-		    rc = RC(rcAlign, rcTable, rcCommitting, rcData, rcInconsistent);
-		}
-	}
-    ALIGN_DBGERR(rc);
-	return rc;
+                c->primary_ids.buffer = ids;
+                c->secondary_ids.buffer = &ids[ids_sz - c->secondary_ids.elements];
+                ALIGN_DBGF((" ids 0x%p:0x%p,", ids, ids + ids_sz));
+                ALIGN_DBGF((" prm 0x%p q=%lu,", c->primary_ids.buffer, c->primary_ids.elements));
+                ALIGN_DBGF((" 2nd 0x%p q=%lu\n", c->secondary_ids.buffer, c->secondary_ids.elements));
+                ksort((void*)(c->primary_ids.buffer), c->primary_ids.elements, sizeof(*ids), int64_cmp, NULL);
+                ksort((void*)(c->secondary_ids.buffer), c->secondary_ids.elements, sizeof(*ids), int64_cmp, NULL);
+                if( data[rr].hilo != NULL ) {
+                    memset(&c->low, 0xFF, sizeof(c->low));
+                    for(i = 0; i < cself->max_seq_len; i++) {
+                        if( c->high < data[rr].hilo[i] ) {
+                            c->high = data[rr].hilo[i];
+                        }
+                        if( c->low > data[rr].hilo[i] ) {
+                            c->low = data[rr].hilo[i];
+                        }
+                    }
+                }
+                rc = TableWriterRefCoverage_Write(cover_writer, ref_from + rr, c);
+                ReferenceMgr_TCoverRelease(&data[rr]);
+            }
+            free(data);
+            ref_from += ref_qty;
+            ref_qty = rows - ref_from + 1;
+        }
+        free(ids);
+        rc1 = TableWriterRefCoverage_Whack(cover_writer, rc == 0, &new_rows);
+        rc = rc ? rc : rc1;
+        if( rc == 0 && rows != new_rows ) {
+            rc = RC(rcAlign, rcTable, rcCommitting, rcData, rcInconsistent);
+        }
+    }
+    return rc;
 }
 
-LIB_EXPORT rc_t CC ReferenceMgr_Release(const ReferenceMgr *cself,
-                                        bool commit,
-                                        uint64_t *const Rows,
-                                        bool build_coverage)
+LIB_EXPORT rc_t CC ReferenceMgr_Release(const ReferenceMgr* cself, bool commit, uint64_t* rows, bool build_coverage)
 {
     rc_t rc = 0;
+    if( cself != NULL ) {
+        uint64_t rr, *r = rows ? rows : &rr;
+        ReferenceMgr* self = (ReferenceMgr*)cself;
 
-    if (cself != NULL) {
-        ReferenceMgr *const self = (ReferenceMgr *)cself;
-        uint64_t rows;
-        unsigned i;
-        
-        rc = TableWriterRef_Whack(self->writer, commit, &rows);
-        if (Rows) *Rows = rows;
+        rc = TableWriterRef_Whack(self->writer, commit, r);
+        BSTreeWhack(&self->tree, ReferenceSeq_Whack, NULL);
         KDirectoryRelease(self->dir);
-        
-        for (i = 0; i != self->refSeqsById.elem_count; ++i)
-            free((void *)((key_id_t *)self->refSeqsById.base)[i].key);
-        
-        for (i = 0; i != self->refSeqs.elem_count; ++i)
-            ReferenceSeq_Whack(&self->refSeq[i]);
-        
-        KDataBufferWhack(&self->compress);
-        KDataBufferWhack(&self->seq);
-        KDataBufferWhack(&self->refSeqs);
-        KDataBufferWhack(&self->refSeqsById);
-        
-        if (rc == 0 && build_coverage && commit)
-            rc = ReferenceMgr_ReCover(cself, rows);
-#if 0 
-        {
-            VTable* t = NULL;
-            
-            if (VDatabaseOpenTableUpdate(self->db, &t, "SECONDARY_ALIGNMENT") == 0) {
-                VTableDropColumn(t, "TMP_MISMATCH");
-                VTableDropColumn(t, "TMP_HAS_MISMATCH");
-            }
-            VTableRelease(t);
+        if( rc == 0 && build_coverage ) {
+            rc = ReferenceMgr_ReCover(cself, *r);
         }
-#endif
         VDatabaseRelease(self->db);
+        VDBManagerRelease(self->vmgr);
         RefSeqMgr_Release(self->rmgr);
         free(self);
     }
@@ -1737,139 +619,228 @@ LIB_EXPORT rc_t CC ReferenceMgr_Release(const ReferenceMgr *cself,
 }
 
 static
-rc_t ReferenceSeq_ReadDirect(ReferenceSeq *self,
-                             int offset,
-                             unsigned const len,
-                             bool read_circular,
-                             uint8_t buffer[],
-                             unsigned* written,
-                             bool force_linear)
+rc_t ReferenceSeq_Local(ReferenceSeq** self, BSTree* tree, const char* id, const KFile* kf)
 {
-    *written = 0;
-    if (len == 0)
-        return 0;
-    
-    if (read_circular || self->circular) {
-        if (offset < 0) {
-            unsigned const n = (-offset) / self->seq_len;
-            offset = (self->seq_len * (n + 1) + offset) % self->seq_len;
-        }
-        else if (offset > self->seq_len)
-            offset %= self->seq_len;
-    }
-    else if (offset >= self->seq_len)
-        return RC(rcAlign, rcType, rcReading, rcOffset, rcOutofrange);
+    rc_t rc = 0;
+    ReferenceSeq* obj;
+    size_t page_sz;
     
-    if (self->type == rst_local) {
-        uint8_t const *const src = self->u.local.buf.base;
-        unsigned dst_off = 0;
+    assert(self != NULL);
+    assert(id != NULL);
+    assert(kf != NULL);
         
-        while (dst_off < len) {
-            unsigned const writable = len - dst_off;
-            unsigned const readable = self->seq_len - offset;
-            unsigned const to_write = readable < writable ? readable : writable;
-            
-            memcpy(&buffer[dst_off], &src[offset], to_write);
-            *written += to_write;
-            if (!read_circular)
-                break;
-            offset = 0;
-            dst_off += to_write;
+    *self = NULL;
+    if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
+        rc = RC(rcAlign, rcFile, rcConstructing, rcMemory, rcExhausted);
+    } else if( ((obj->local = true)) &&
+               (rc = KFileSize(kf, &obj->u.local.file_size)) == 0 &&
+               (rc = KMMapMakeRead(&obj->u.local.map, kf)) == 0 &&
+               (rc = KMMapReposition(obj->u.local.map, 0, &page_sz)) == 0 ) {
+        const char* addr;
+
+        obj->u.local.map_to = page_sz;
+        /* make sure we have 2 lines */
+        if( (rc = KMMapAddrRead(obj->u.local.map, (const void**)&addr)) == 0 ) {
+            const char* sp = memchr(addr, ' ', page_sz);
+            const char* nl1 = memchr(addr, '\n', page_sz);
+            const char* nl2 = memchr(nl1 + 1, '\n', page_sz - (nl1 - addr));
+            sp = sp ? sp : nl1;
+            if( addr[0] != '>' || nl1 == NULL || nl2 == NULL || sp-- > nl1 ) {
+                rc = RC(rcAlign, rcFile, rcConstructing, rcData, rcUnrecognized);
+            } else if( strlen(id) >= sizeof(obj->id) || (sp - addr) >= sizeof(obj->accession) ) {
+                rc = RC(rcAlign, rcFile, rcConstructing, rcBuffer, rcInsufficient);
+            } else {
+                strcpy(obj->id, id);
+                memcpy(obj->accession, &addr[1], sp - addr);
+                obj->accession[sp - addr] = '\0';
+                obj->u.local.line_sz = nl2 - nl1 - 1;
+                obj->u.local.fasta_offset = (nl1 - addr) + 1;
+                obj->seq_len = obj->u.local.file_size - obj->u.local.fasta_offset;
+                obj->seq_len -= obj->seq_len / obj->u.local.line_sz; /* remove \n qty */
+                rc = BSTreeInsertUnique(tree, &obj->dad, NULL, ReferenceSeq_Sort);
+            }
         }
-        return 0;
     }
-    else if (self->type == rst_refSeqById || self->type == rst_refSeqBySeqId) {
-        unsigned to_write = len;
-        
-        if (!self->circular || force_linear) {
-            unsigned const readable = self->seq_len - offset;
-            
-            if (to_write > readable)
-                to_write = readable;
-        }
-        return RefSeq_Read(self->u.refseq, offset, to_write, buffer, written);
+    if( rc == 0 ) {
+        *self = obj;
+        ALIGN_DBG("RefSeq local fasta added '%s' -> '%s'", obj->id, obj->accession);
+    } else {
+        ReferenceSeq_Whack(&obj->dad, NULL);
+        ALIGN_DBGERR(rc);
     }
-    return RC(rcAlign, rcType, rcReading, rcType, rcInvalid);
+    return rc;
 }
 
 static
-rc_t ReferenceMgr_LoadSeq(ReferenceMgr *const self, ReferenceSeq *obj)
+rc_t ReferenceSeq_ReOffset(const ReferenceSeq* self, int64_t* offset)
 {
-    KDataBuffer readBuf;
-    rc_t rc = KDataBufferMake(&readBuf, 8, self->max_seq_len);
-    
-    if (rc == 0) {
-        char const *const id = obj->id;
-        char const *const seqId = obj->seqId ? obj->seqId : id;
-        TableWriterRefData data;
-        INSDC_coord_zero offset = 0;
-        
-        obj->start_rowid = self->ref_rowid + 1;
-        data.name.buffer = id;
-        data.name.elements = string_size( id );
-        data.read.buffer = readBuf.base;
-        data.seq_id.buffer = seqId;
-        data.seq_id.elements = string_size( seqId );
-        data.force_READ_write = obj->type == rst_local || (self->options & ewrefmgr_co_allREADs);
-        data.circular = obj->circular;
-        
-        if (self->writer == NULL) {
-            uint32_t wopt = 0;
-            
-            wopt |= (self->options & ewrefmgr_co_allREADs) ? ewref_co_SaveRead : 0;
-            wopt |= (self->options & ewrefmgr_co_Coverage) ? ewref_co_Coverage : 0;
-            if( (rc = TableWriterRef_Make(&self->writer, self->db, wopt)) == 0 ) {
-                TableWriterData mlen;
-                
-                mlen.buffer = &self->max_seq_len;
-                mlen.elements = 1;
-                rc = TableWriterRef_WriteDefaultData(self->writer, ewrefseq_cn_MAX_SEQ_LEN, &mlen);
-            }
+    /* see TableReaderRefSeq_Read, same logic */
+    if( !self->circular && (*offset < 0 || *offset >= self->seq_len) ) {
+        return RC(rcAlign, rcType, rcReading, rcOffset, rcOutofrange);
+    } else if( *offset < 0 ) {
+        *offset = self->seq_len - ((-(*offset)) % self->seq_len);
+    } else if( self->circular && *offset > self->seq_len ) {
+        *offset %= self->seq_len;
+    }
+    return 0;
+}
+
+static
+rc_t ReferenceSeq_ReadDirect(ReferenceSeq* self, int64_t offset, INSDC_coord_len len, bool read_curcular,
+                             INSDC_dna_text* buffer, INSDC_coord_len* written)
+{
+    rc_t rc = 0;
+
+    *written = 0;
+    if( (rc = ReferenceSeq_ReOffset(self, &offset)) != 0 ) {
+    } else if( self->local ) {
+        /* translate offset into file dimensions */
+        offset += offset / self->u.local.line_sz; /* add \n on each line */
+        offset += self->u.local.fasta_offset; /* add defline */
+        if( offset >= self->u.local.file_size ) {
+            return RC(rcAlign, rcFile, rcReading, rcOffset, rcOutofrange);
+        } else {
+            size_t page;
+            const char* str;
+            do {
+                if( offset < self->u.local.map_from || self->u.local.map_to < offset ) {
+                    if( (rc = KMMapReposition(self->u.local.map, offset, &page)) == 0 ) {
+                        self->u.local.map_from = offset;
+                        self->u.local.map_to = offset + page;
+                    }
+                }
+                if( rc == 0 && (rc = KMMapAddrRead(self->u.local.map, (const void**)&str)) == 0 ) {
+                    offset += page;
+                    while( page > 0 && len > 0 ) {
+                        char* nl = memchr(str, '\n', page);
+                        size_t q = (nl == NULL) ? page : nl - str;
+                        if( q > len ) {
+                            q = len;
+                        }
+                        memcpy(&buffer[*written], str, q);
+                        *written = *written + q;
+                        len -= q;
+                        if( nl != NULL ) {
+                            q++;
+                        }
+                        page -= q;
+                        str += q;
+                    }
+                }
+                if( read_curcular && offset >= self->u.local.file_size ) {
+                    offset = self->u.local.fasta_offset;
+                }
+            } while( rc == 0 && len > 0 && offset < self->u.local.file_size );
+        }
+    } else {
+        /* we need to trim len to actual length of seq */
+        if( !read_curcular && (offset + len) >= self->seq_len ) {
+            len = self->seq_len - offset;
         }
-        while (rc == 0 && offset < obj->seq_len) {
-            unsigned row_len;
-            
-            rc = ReferenceSeq_ReadDirect(obj, offset, self->max_seq_len, false,
-                                         readBuf.base, &row_len, true);
-            if (rc != 0 || row_len == 0) break;
-            
-            data.read.elements = row_len;
-            rc = TableWriterRef_Write(self->writer, &data, NULL);
-            offset += row_len;
-            ++self->ref_rowid;
+        if( rc == 0 && (rc = RefSeq_Read(self->u.refseq.o, offset, len, buffer, written)) == 0 ) {
+            self->u.refseq.usage = ++((ReferenceMgr*)self->mgr)->usage;
         }
-        KDataBufferWhack(&readBuf);
     }
+    ALIGN_DBGERR(rc);
     return rc;
 }
 
-LIB_EXPORT rc_t CC ReferenceMgr_GetSeq(ReferenceMgr const *const cself,
-                                       ReferenceSeq const **const seq,
-                                       char const id[])
+static
+rc_t CC ReferenceMgr_Find(const ReferenceMgr* cself, const char* id, ReferenceSeq** seq, const KFile** kf)
 {
-    ReferenceMgr *const self = (ReferenceMgr *)cself;
-    
-    if  (self == NULL || seq == NULL || id == NULL )
-        return RC(rcAlign, rcFile, rcConstructing, rcParam, rcNull);
+    *seq = (ReferenceSeq*)BSTreeFind(&cself->tree, id, ReferenceSeq_Cmp);
+    if( *seq == NULL ) {
+        /* try local file */
+        return KDirectoryOpenFileRead(cself->dir, kf, "%s.fasta", id);
+    }
+    *kf = NULL;
+    return 0;
+}
+
+LIB_EXPORT rc_t CC ReferenceMgr_GetSeq(const ReferenceMgr* cself, const ReferenceSeq** seq, const char* id)
+{
+    rc_t rc = 0;
+    ReferenceSeq* obj;
     
-    *seq = NULL;
-    {
-        ReferenceSeq *obj;
-        rc_t rc = ReferenceMgr_OpenSeq(self, &obj, id, 0, NULL);
+    if( cself == NULL || seq == NULL || id == NULL ) {
+        rc = RC(rcAlign, rcFile, rcConstructing, rcParam, rcNull);
+    } else {
+        ReferenceMgr* mgr = (ReferenceMgr*)cself;
+        const KFile* kf;
         
-        if (rc) return rc;
-        if (obj->start_rowid == 0) {
-            rc = ReferenceMgr_LoadSeq(self, obj);
-            if (rc) return rc;
+        *seq = NULL;
+        rc = ReferenceMgr_Find(cself, id, &obj, &kf);
+        if( rc == 0 && obj == NULL ) {
+            /* it is local file */
+            rc = ReferenceSeq_Local(&obj, &mgr->tree, id, kf);
+            KFileRelease(kf);
+        }
+        if( rc == 0 && !obj->local && obj->u.refseq.o == NULL ) {
+            if( cself->num_open_max > 0 && cself->num_open >= cself->num_open_max ) {
+                ReferenceSeq* old = NULL;
+                BSTreeForEach(&cself->tree, false, ReferenceSeq_Unused, &old);
+                if( old != NULL ) {
+                    RefSeq_Release(old->u.refseq.o);
+                    old->u.refseq.o = NULL;
+                    mgr->num_open--;
+                }
+            }
+            rc = RefSeqMgr_GetSeq(cself->rmgr, &obj->u.refseq.o, obj->accession, strlen(obj->accession));
+            if( rc == 0 &&
+                (rc = RefSeq_Circular(obj->u.refseq.o, &obj->circular)) == 0 &&
+                (rc = RefSeq_SeqLength(obj->u.refseq.o, &obj->seq_len)) == 0 ) {
+                mgr->num_open++;
+            }
+        }
+        if( rc == 0 && obj->start_rowid == 0 ) {
+            /* append to the whole thing to REFERENCE table since we encounter it for the 1st time */
+            TableWriterRefData data;
+            INSDC_coord_len len = 0;
+            int64_t offset = 0;
+            obj->mgr = cself;
+            obj->start_rowid = mgr->ref_rowid + 1;
+            data.name.buffer = obj->id;
+            data.name.elements = strlen(obj->id);
+            data.read.buffer = mgr->seq_buf;
+            data.seq_id.buffer = obj->accession;
+            data.seq_id.elements = strlen(obj->accession);
+            data.force_READ_write = obj->local || (cself->options & ewrefmgr_co_allREADs);
+            data.circular = obj->circular;
+            if (cself->writer == NULL) {
+                uint32_t wopt = 0;
+
+                wopt |= (mgr->options & ewrefmgr_co_allREADs) ? ewref_co_SaveRead : 0;
+                wopt |= (mgr->options & ewrefmgr_co_Coverage) ? ewref_co_Coverage : 0;
+                if( (rc = TableWriterRef_Make(&mgr->writer, mgr->db, wopt)) == 0 ) {
+                    TableWriterData mlen;
+                    mlen.buffer = &mgr->max_seq_len;
+                    mlen.elements = 1;
+                    rc = TableWriterRef_WriteDefaultData(mgr->writer, ewrefseq_cn_MAX_SEQ_LEN, &mlen);
+                }
+            }
+            if (rc == 0) {
+                do {
+                    if( (rc = ReferenceSeq_ReadDirect(obj, offset, mgr->max_seq_len, false,
+                                                      mgr->seq_buf, &len)) == 0 && len > 0 ) {
+                        data.read.elements = len;
+                        rc = TableWriterRef_Write(cself->writer, &data, NULL);
+                        offset += len;
+                        mgr->ref_rowid++;
+                    }
+                } while( rc == 0 && len > 0 && offset < obj->seq_len );
+            }
         }
+    }
+    if( rc == 0 ) {
         *seq = obj;
+    } else {
+        ALIGN_DBGERR(rc);
     }
-    return 0;
+    return rc;
 }
 
-LIB_EXPORT rc_t CC ReferenceMgr_Verify(const ReferenceMgr* cself, const char* id, INSDC_coord_len seq_len, const uint8_t* md5)
+LIB_EXPORT rc_t CC ReferenceMgr_Verify(const ReferenceMgr* cself, const char* id, uint64_t seq_len, const uint8_t* md5)
 {
-#if 0
     rc_t rc = 0;
     ReferenceSeq* rseq;
     const KFile* kf;
@@ -1888,29 +859,13 @@ LIB_EXPORT rc_t CC ReferenceMgr_Verify(const ReferenceMgr* cself, const char* id
                 rc = RC(rcAlign, rcFile, rcValidating, rcSize, rcUnequal);
                 ALIGN_DBGERRP("%s->%s SEQ_LEN verification", rc, id, rseq->accession);
             }
-            if( rc == 0 && md5 != NULL && memcmp(md5, rseq->u.local.md5, sizeof(rseq->u.local.md5)) != 0 ) {
-                unsigned i;
-                rc = RC(rcAlign, rcTable, rcValidating, rcChecksum, rcUnequal);
-                ALIGN_DBGERRP("%s->%s MD5 verification", rc, id, rseq->accession);
-                ALIGN_DBGF((" local '"));
-                for(i = 0; i < sizeof(rseq->u.local.md5); i++) {
-                    ALIGN_DBGF(("%02hx", rseq->u.local.md5[i]));
-                }
-                ALIGN_DBGF(("'  <> match '"));
-                for(i = 0; i < sizeof(rseq->u.local.md5); i++) {
-                    ALIGN_DBGF(("%02hx", md5[i]));
-                }
-                ALIGN_DBGF(("'\n"));
-            } else {
-                ALIGN_DBG("%s->%s MD5 verification ok", id, rseq->accession);
-            }
         } else {
             const RefSeq* tmp = rseq->u.refseq.o;
-            INSDC_coord_len o_len;
+            uint64_t o_len;
             const uint8_t* o_md5;
 
             if( tmp == NULL ) {
-                if( (rc = RefSeqMgr_GetSeq(cself->rmgr, &tmp, rseq->accession, string_size( rseq->accession ))) != 0 ||
+                if( (rc = RefSeqMgr_GetSeq(cself->rmgr, &tmp, rseq->accession, strlen(rseq->accession))) != 0 ||
                     (rc = RefSeq_SeqLength(tmp, &o_len)) != 0 ) {
                     ALIGN_DBGERRP("%s->%s verification", rc, id, rseq->accession);
                 }
@@ -1926,7 +881,7 @@ LIB_EXPORT rc_t CC ReferenceMgr_Verify(const ReferenceMgr* cself, const char* id
                 }
             }
             if( rc == 0 && (rc = RefSeq_MD5(tmp, &o_md5)) == 0 ) {
-                if( md5 != NULL && o_md5 != NULL && memcmp(md5, o_md5, sizeof(rseq->u.local.md5)) != 0 ) {
+                if( md5 != NULL && o_md5 != NULL && memcmp(md5, o_md5, 16) != 0 ) {
                     rc = RC(rcAlign, rcTable, rcValidating, rcChecksum, rcUnequal);
                     ALIGN_DBGERRP("%s->%s MD5 verification", rc, id, rseq->accession);
                 } else {
@@ -1944,283 +899,12 @@ LIB_EXPORT rc_t CC ReferenceMgr_Verify(const ReferenceMgr* cself, const char* id
         ALIGN_DBGERRP("%s verification", rc, id);
     }
     return rc;
-#else
-    if (cself == NULL || id == NULL)
-        return RC(rcAlign, rcFile, rcValidating, rcParam, rcNull);
-    {
-        ReferenceMgr *self = (ReferenceMgr *)cself;
-        ReferenceSeq *rseq;
-        rc_t rc = ReferenceMgr_OpenSeq(self, &rseq, id, seq_len, md5);
-        
-        if (rc) return rc;
-        if (rseq->seq_len != seq_len) {
-            rc = RC(rcAlign, rcFile, rcValidating, rcSize, rcUnequal);
-            ALIGN_DBGERRP("%s->%s SEQ_LEN verification", rc, id, rseq->seqId);
-        }
-        if (md5 && memcmp(md5, rseq->md5, sizeof(rseq->md5)) != 0 ) {
-            unsigned i;
-            
-            rc = RC(rcAlign, rcTable, rcValidating, rcChecksum, rcUnequal);
-            ALIGN_DBGERRP("%s->%s MD5 verification", rc, id, rseq->seqId);
-            ALIGN_DBGF((" found '"));
-            for(i = 0; i < sizeof(rseq->md5); i++) {
-                ALIGN_DBGF(("%02hx", rseq->md5[i]));
-            }
-            ALIGN_DBGF(("'  != requested '"));
-            for(i = 0; i < sizeof(rseq->md5); i++) {
-                ALIGN_DBGF(("%02hx", md5[i]));
-            }
-            ALIGN_DBGF(("'\n"));
-        } else {
-            ALIGN_DBG("%s->%s MD5 verification ok", id, rseq->seqId);
-        }
-        if( rc == 0 ) {
-            ALIGN_DBG("%s verification ok", id);
-        } else {
-            ALIGN_DBGERRP("%s verification", rc, id);
-        }
-        return rc;
-    }
-#endif
-}
-
-LIB_EXPORT rc_t CC ReferenceMgr_FastaPath(const ReferenceMgr* cself, const char* fasta_path)
-{
-    rc_t rc = 0;
-    KDirectory* dir;
-
-    if( cself == NULL || fasta_path == NULL ) {
-        rc = RC(rcAlign, rcFile, rcConstructing, rcParam, rcNull);
-    } else if( (rc = KDirectoryNativeDir(&dir)) == 0 ) {
-        const KFile* kf;
-        if( (rc = KDirectoryOpenFileRead(dir, &kf, "%s", fasta_path)) == 0 ) {
-            rc = ReferenceMgr_FastaFile(cself, kf);
-            KFileRelease(kf);
-        }
-        KDirectoryRelease(dir);
-    }
-    ALIGN_DBGERRP("from file %s", rc, fasta_path);
-    return rc;
-}
-
-LIB_EXPORT rc_t CC ReferenceMgr_FastaFile(const ReferenceMgr* cself, const KFile* file)
-{
-    if( cself == NULL || file == NULL ) {
-        return RC(rcAlign, rcFile, rcConstructing, rcParam, rcNull);
-    }
-    return ReferenceMgr_ImportFastaFile((ReferenceMgr *)cself, file, NULL);
-}
-
-static
-int extrace_cigar_op(char *op,
-                     uint32_t *op_len,
-                     char const *const cigar,
-                     uint32_t const cigar_len,
-                     uint32_t const offset,
-                     uint32_t const options,
-                     unsigned *const bin)
-{
-    static char const op_txt[] = "MIDNSHP=XB??????";
-    uint32_t i = offset;
-    
-    if (options & ewrefmgr_cmp_Binary) {
-        uint32_t c;
-        
-        memcpy(&c, cigar + i * 4, 4);
-        *bin = c & 0x0F;
-        *op = op_txt[c & 0x0F];
-        *op_len = c >> 4;
-    }
-    else {
-        uint32_t len = 0;
-        int ch;
-
-        while(i < cigar_len && (ch = cigar[i]) != '\0' && isdigit(ch)) {
-            len *= 10;
-            len += ch - '0';
-            ++i;
-        }
-        *bin = *op = ch;
-        *op_len = len;
-    }
-    return i - offset;
-}
-
-static
-rc_t cigar2offset(const uint32_t options, const void* cigar, uint32_t cigar_len, int32_t* out, uint32_t out_sz, uint32_t out_used,
-                  INSDC_coord_len* seq_len, INSDC_coord_len* ref_len, INSDC_coord_len* max_ref_len)
-{
-    rc_t rc = 0;
-    uint32_t i;
-    uint32_t last_match = 0;
-    uint32_t op_len;
-    uint32_t last_soft_len = 0;
-    uint32_t b_len = 0;
-    uint32_t last_op = cigar_len - 1;
-    char op;
-    unsigned op_bin;
-    
-    if ((options & ewrefmgr_cmp_Binary) == 0) {
-        for (i = 0; i < cigar_len; last_op = ++i) {
-            i += extrace_cigar_op(&op, &op_len, cigar, cigar_len, i, options, &op_bin);
-        }
-    }
-    
-#if _DEBUGGING
-    ALIGN_C_DBGF(("%s:%u: ", __func__, __LINE__));
-    if( options & ewrefmgr_cmp_Binary ) {
-        ALIGN_C_DBGF(("bin cigar '"));
-        for(i = 0; i < cigar_len; i++) {
-            extrace_cigar_op(&op, &op_len, cigar, cigar_len, i, options, &op_bin);
-            ALIGN_C_DBGF(("%u%c", op_len, op));
-        }
-    } else {
-        ALIGN_C_DBGF(("cigar '%.*s", cigar_len, cigar));
-    }
-    ALIGN_C_DBGF(("'[%u]\n", cigar_len));
-#endif
-    
-    *seq_len = 0;
-    *ref_len = 0;
-    *max_ref_len = 0;
-    memset(out, 0, out_used * sizeof(*out) * 2);
-    for(i = 0; rc == 0 && i < cigar_len; i++) {
-        i += extrace_cigar_op(&op, &op_len, cigar, cigar_len, i, options, &op_bin);
-        if (op == 'P') {
-            continue;
-        }
-        if( op != 'S' && op != 'I' ) {
-            last_soft_len = 0;
-        }
-        switch(op) {
-        case 'M':
-        case '=':
-        case 'X':
-            *seq_len += op_len;
-            *ref_len += op_len;
-            *max_ref_len += op_len;
-            if(b_len > op_len) {
-                b_len -= op_len;
-            }
-            else {
-                b_len=0;
-                last_match = *seq_len;
-            }
-            break;
-        case 'S':
-        case 'I':
-            last_soft_len += op_len;
-            *max_ref_len += op_len;
-            *seq_len += op_len;
-            if (last_match < out_sz) {
-                if (i < last_op) {
-                    if (b_len > 0) {/** not right soft clip **/
-                        assert(out[last_match] < 0);
-                        out[last_match-out[last_match]] = 0x80000000;
-                    }
-                    out[last_match] += -op_len;
-                }
-                if (b_len == 0) last_match = *seq_len;
-            } else {
-                rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcInconsistent);
-            }
-            
-            break;
-        case 'B':
-            /* Complete Genomics CIGAR style specific:
-             overlap between consecutive reads
-             ex: sequence 6 bases: ACACTG, reference 2 bases: ACTG,
-             cigar will be: 2M2B2M
-             no need to move sequence position
-             */
-            if( last_match < out_sz ) {
-                if(b_len > 0 && i < cigar_len -1){/** not right soft clip **/
-                    assert(out[last_match] < 0);
-                    out[last_match-out[last_match]] = 0x80000000;
-                }
-                out[last_match] -= op_len;
-            } else {
-                rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcInconsistent);
-            }
-            if( *ref_len < op_len ) {
-                *ref_len = 0;
-            } else {
-                *ref_len -= op_len;
-            }
-            *max_ref_len += op_len;
-            b_len += op_len;
-            break;
-        case 'D':
-        case 'N':
-            if( last_match < out_sz ) {
-                out[last_match] += op_len;
-            } else if (last_match == out_sz && last_match > 0 ){ /*** delete at the end ***/
-                out[last_match-1] += op_len;
-            } else {
-                rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcInconsistent);
-            }
-            *ref_len += op_len;
-            *max_ref_len += op_len;
-            break;
-        case 'H':
-            if ((options & ewrefmgr_co_AcceptHardClip) == 0)
-            {
-                rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcInvalid);
-                (void)LOGERR(klogErr, rc, "Hard clipping of sequence data is not allowed");
-            }
-            break;
-        default:
-            rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcUnrecognized);
-            if ((options & ewrefmgr_cmp_Binary) == 0)
-                (void)PLOGERR(klogErr, (klogErr, rc, "Invalid or unrecognized CIGAR operation '$(opcode)'", "opcode=%c", op));
-            else if (op != '?')
-                (void)PLOGERR(klogErr, (klogErr, rc, "Invalid or unrecognized CIGAR operation '$(opcode)' (binary code: $(opbin))", "opcode=%c,opbin=%u", op, op_bin));
-            else
-                (void)PLOGERR(klogErr, (klogErr, rc, "Invalid or unrecognized CIGAR operation (binary code: $(opbin))", "opbin=%u", op_bin));
-            break;
-        }
-    }
-    if( !(options & ewrefmgr_cmp_Exact) && last_soft_len > 0 ) {
-        ALIGN_C_DBG("trailing soft clip %u @ %u", last_soft_len, last_match);
-        out[last_match] += last_soft_len;
-    }
-#if _DEBUGGING
-    ALIGN_C_DBGF(("%s:%u: offsets: ", __func__, __LINE__));
-    last_match = last_match > *seq_len ? last_match : *seq_len;
-    for(i = 0; i <= last_match; i++) {
-        if( i == *seq_len ) {
-            ALIGN_C_DBGF((" | "));
-        }
-        ALIGN_C_DBGF(("%i%c", out[i], ((i + 1) % 5) ? ',' : ' '));
-    }
-    ALIGN_C_DBGF((" cigar derived seq_len %u, ref_len %u, max_ref_len %u\n", *seq_len, *ref_len, *max_ref_len));
-#endif
-    return rc;
-}
-
-static
-void ReferenceSeq_TranslateOffset_int(ReferenceSeq const *const cself,
-                                      INSDC_coord_zero const offset,
-                                      int64_t *const ref_id,
-                                      INSDC_coord_zero *const ref_start,
-                                      uint64_t *const global_ref_start)
-{
-    if (ref_id)
-        *ref_id = cself->start_rowid + offset / cself->mgr->max_seq_len;
-    
-    if (ref_start)
-        *ref_start = offset % cself->mgr->max_seq_len;
-    
-    if (global_ref_start)
-        *global_ref_start = (cself->start_rowid - 1) * cself->mgr->max_seq_len + offset;
 }
 
 LIB_EXPORT rc_t CC ReferenceMgr_Compress(const ReferenceMgr* cself, uint32_t options,
-                                         const char* id, INSDC_coord_zero offset,
+                                         const char* id, int64_t offset,
                                          const char* seq, INSDC_coord_len seq_len,
                                          const void* cigar, uint32_t cigar_len,
-                                         INSDC_coord_zero allele_offset, const char* allele, INSDC_coord_len allele_len,INSDC_coord_zero offset_in_allele,
-                                         const void* allele_cigar, uint32_t allele_cigar_len,
                                          TableWriterAlgnData* data)
 {
     rc_t rc = 0;
@@ -2229,310 +913,261 @@ LIB_EXPORT rc_t CC ReferenceMgr_Compress(const ReferenceMgr* cself, uint32_t opt
     if( cself == NULL || id == NULL ) {
         rc = RC(rcAlign, rcFile, rcProcessing, rcParam, rcNull);
     } else if( (rc = ReferenceMgr_GetSeq(cself, &refseq, id)) == 0 ) {
-        rc = ReferenceSeq_Compress(refseq, options, offset, seq, seq_len, cigar, cigar_len,
-                                   allele_offset, allele, allele_len,offset_in_allele,
-				   allele_cigar, allele_cigar_len, data);
+        rc = ReferenceSeq_Compress(refseq, options, offset, seq, seq_len, cigar, cigar_len, data);
         ReferenceSeq_Release(refseq);
     }
-    ALIGN_C_DBGERR(rc);
+    ALIGN_DBGERR(rc);
     return rc;
 }
 
-LIB_EXPORT rc_t CC ReferenceSeq_Compress(const ReferenceSeq* cself, const uint32_t options, INSDC_coord_zero offset,
+LIB_EXPORT rc_t CC ReferenceSeq_Compress(const ReferenceSeq* cself, uint32_t options, int64_t offset,
                                          const char* seq, INSDC_coord_len seq_len,
                                          const void* cigar, uint32_t cigar_len,
-                                         INSDC_coord_zero allele_offset, const char* allele,
-					 INSDC_coord_len allele_len,
-					 INSDC_coord_zero offset_in_allele,
-                                         const void* allele_cigar, uint32_t allele_cigar_len,
                                          TableWriterAlgnData* data)
 {
     rc_t rc = 0;
 
-    if( cself == NULL || seq == NULL || cigar == NULL || cigar_len == 0 || data == NULL ||
-        (!(allele == NULL && allele_len == 0 && allele_cigar == NULL && allele_cigar_len == 0) &&
-         !(allele != NULL && allele_cigar != NULL && allele_cigar_len != 0)) ) {
-        return RC(rcAlign, rcFile, rcProcessing, rcParam, rcInvalid);
-    }
-    if (seq_len * 2 > cself->mgr->compress.elem_count) {
-        rc = KDataBufferResize(&cself->mgr->compress, seq_len * 2);
-        if (rc) return rc;
-    }
-    if ((rc = ReferenceSeq_ReOffset(cself->circular, cself->seq_len, &offset)) == 0 ) {
-        INSDC_coord_len i, seq_pos = 0, allele_ref_end = 0, ref_len = 0, rl = 0, max_rl = 0;
+    ALIGN_DBG("align '%.*s'[%u] to '%s' at %li using '%.*s'[%u]",
+        (int)seq_len, seq, seq_len, cself ? cself->id : NULL, offset, 
+          (options & ewrefmgr_cmp_Binary) ? 3 : (int)cigar_len, (options & ewrefmgr_cmp_Binary) ? "bin" : cigar, cigar_len);
+
+    if( cself == NULL || seq == NULL || cigar == NULL || cigar_len == 0 || data == NULL ) {
+        rc = RC(rcAlign, rcFile, rcProcessing, rcParam, rcInvalid);
+    } else if( seq_len > sizeof(cself->mgr->compress_buf) / sizeof(cself->mgr->compress_buf[0]) ) {
+        rc = RC(rcAlign, rcFile, rcProcessing, rcBuffer, rcInsufficient);
+    } else if( (rc = ReferenceSeq_ReOffset(cself, &offset)) == 0 ) {
+        INSDC_coord_len seq_pos = 0;
+        uint32_t i, last_match = 0, op_len;
+        unsigned char op;
         INSDC_coord_zero* read_start = &((INSDC_coord_zero*)(data->read_start.buffer))[data->ploidy];
         INSDC_coord_len* read_len = &((INSDC_coord_len*)(data->read_len.buffer))[data->ploidy];
-        bool* has_ref_offset, *has_mismatch;
-        int32_t* ref_offset;
-        uint8_t* mismatch; 
-        uint8_t sref_buf[64 * 1024];
-        void *href_buf = NULL;
-        uint8_t *ref_buf = sref_buf;
-	int32_t  allele_off_buf[1024];
-#if _DEBUGGING
-        uint64_t i_ref_offset_elements, i_mismatch_elements;
-        char x[4096];
-#endif
+        INSDC_coord_len rl = 0, *ref_len = &((INSDC_coord_len*)(data->ref_len.buffer))[data->ploidy];
+        bool* has_ref_offset;
+        uint64_t i_ref_offset_elements;
+        int32_t* ref_offset, *cb = (int32_t*)(cself->mgr->compress_buf);
 
         if( data->ploidy == 0 ) {
             data->has_ref_offset.elements = seq_len;
             data->ref_offset.elements = 0;
-            data->has_mismatch.elements = seq_len;
-            data->mismatch.elements = 0;
             *read_start = 0;
-        }
-        else {
+            i_ref_offset_elements = 0;
+        } else {
             data->has_ref_offset.elements += seq_len;
-            data->has_mismatch.elements += seq_len;
             *read_start = read_start[-1] + read_len[-1];
+            i_ref_offset_elements = data->ref_offset.elements;
         }
         *read_len = seq_len;
-        has_ref_offset = &((bool*)(data->has_ref_offset.buffer))[*read_start];
-        ref_offset = (int32_t*)(data->ref_offset.buffer);
-        has_mismatch = &((bool*)(data->has_mismatch.buffer))[*read_start];
-        mismatch = (uint8_t*)(data->mismatch.buffer);
+        *ref_len = 0;
 
 #if _DEBUGGING
-        i_ref_offset_elements = data->ref_offset.elements;
-        i_mismatch_elements = data->mismatch.elements;
-        ALIGN_C_DBG("align%s '%.*s'[%u] to '%s:%s' at %i", (options & ewrefmgr_cmp_Exact) ? " EXACT" : "",
-                    seq_len, seq, seq_len, cself->id, cself->seqId, offset);
-#endif
-        if( allele != NULL ) {
-            /* determine length of reference for subst by allele */
-            ALIGN_C_DBG("apply allele %.*s[%u] at %i w/cigar below",
-                        allele_len, allele, allele_len, allele_offset);
-            rc = cigar2offset(options, allele_cigar, allele_cigar_len,
-                    allele_off_buf, sizeof(allele_off_buf)/sizeof(*allele_off_buf)/2,
-                    allele_len, &seq_pos, &allele_ref_end, &max_rl);
-            /* where allele ends on reference */
-            allele_ref_end += allele_offset;
-        }
-        if( rc == 0 ) {
-            rc = cigar2offset(options, cigar, cigar_len,
-                              (int32_t*)(cself->mgr->compress.base), cself->mgr->compress.elem_count / 2,
-                             seq_len, &seq_pos, &rl, &max_rl);
-        }
-        if( allele != NULL ) {
-            if( allele_offset + allele_ref_end < offset || allele_offset >= offset + rl ) {
-                (void)PLOGMSG(klogWarn, (klogWarn,
-                    "allele $(a) offset $(ao) $(ac) is not within referenced region in $(id) at offset $(ro) $(rc)",
-                    "a=%.*s,ao=%i,ac=%.*s,id=%s,ro=%i,rc=%.*s",
-                    allele_len, allele, allele_offset, (options & ewrefmgr_cmp_Binary) ? 0 : allele_cigar_len, allele_cigar,
-                    cself->seqId, offset, (options & ewrefmgr_cmp_Binary) ? 0 : cigar_len, cigar));
-                allele = NULL;
+        ALIGN_DBG("real offset %li ref is circular? %s", offset, cself->circular ? "true" : "false");
+        if( options & ewrefmgr_cmp_Binary ) {
+            ALIGN_DBGF(("%s:%u: bin cigar:", __func__, __LINE__));
+            for(i = 0; i < cigar_len; i++) {
+                const uint32_t* c = cigar;
+                op = c[i] & 0x0F;
+                op_len = c[i] >> 4;
+                ALIGN_DBGF(("%u%c", op_len, "MIDNSHP=XB"[op]));
             }
+            ALIGN_DBGF(("\n"));
         }
-        if( rc == 0 ) {
-            if( !(options & ewrefmgr_cmp_Exact) ) {
-                /* do not write leading deletes just move reference offset */
-                int32_t *const compress_buf = cself->mgr->compress.base;
-                if( compress_buf[0] > 0 ) {
-                    offset += compress_buf[0];
-                    rl -= compress_buf[0];
-                    max_rl -= compress_buf[0];
-                    compress_buf[0] = 0;
-                    ALIGN_C_DBG("adjusted offset %i", offset);
-                }
-            }
-            ref_len = rl;
-            if( (offset + max_rl) > cself->seq_len && !cself->circular ) {
-                max_rl = cself->seq_len - offset;
-                if( max_rl < rl ) {
-                    /* ref_len used for compression cannot be shorter than ref_len derived from cigar,
-                       if there is a shortage it will fail later here */
-                    max_rl = rl;
+#endif
+        memset(cb, 0, sizeof(*cb) * seq_len);
+        for(i = 0; rc == 0 && i < cigar_len; i++) {
+            if( options & ewrefmgr_cmp_Binary ) {
+                const uint32_t* c = cigar;
+                op = c[i] & 0x0F;
+                op_len = c[i] >> 4;
+            } else {
+                const unsigned char* c = cigar;
+                op_len = 0;
+                while( c[i] != '\0' && isdigit(c[i]) ) {
+                    op_len *= 10;
+                    op_len += c[i++] - '0';
                 }
-                ALIGN_C_DBG("max_ref_len truncated to %u cause it goes beyond refseq length %lu at offset %i",
-                             max_rl, cself->seq_len, offset);
-            }
-            ALIGN_C_DBG("chosen REF_LEN %u, ref len for match %u", ref_len, max_rl);
-
-            assert(seq_len == seq_pos);
-            if (max_rl > sizeof(sref_buf)) {
-                if (href_buf)
-                    free(href_buf);
-                href_buf = malloc(max_rl);
-                if (href_buf == NULL)
-                    rc = RC(rcAlign, rcFile, rcProcessing, rcMemory, rcExhausted);
-                ref_buf = href_buf;
+                /* avoid intersecting with 4-bit binary above */
+                op = c[i] <= 0x0F ? 0xFF : c[i];
             }
-            if (rc == 0) {
-                int64_t ref_pos;
-
-                if( allele != NULL ) {
-                    /* subst allele in reference */
-                    if( allele_offset <= offset ) {
-                        /* move allele start inside referenced chunk */
-			    allele     += offset_in_allele;
-			    allele_len -= offset_in_allele;
-                            rl = 0;
+            switch(op) {
+                case 'M':
+                case 0:
+                case '=':
+                case 7:
+                case 'X':
+                case 8:
+                    seq_pos += op_len;
+                    rl += op_len;
+                    *ref_len = rl;
+                    last_match = seq_pos;
+                    break;
+                case 'I':
+                case 1:
+                case 'S':
+                case 4:
+                    seq_pos += op_len;
+                    cb[last_match] += -op_len;
+                    break;
+                case 'B':
+                case 9:
+                    /* Complete Genomics CIGAR style specific:
+                       overlap between consecutive reads
+                       ex: sequence 6 bases: ACACTG, reference 2 bases: ACTG,
+                       cigar will be: 2M2B2M
+                       no need to move sequence position
+                    */
+                    cb[last_match] -= op_len;
+                    if( rl < op_len ) {
+                        /* step back beyond ref start */
+                        offset -= op_len - rl;
+                        rl = 0;
                     } else {
-                        /* fetch portion of reference which comes before allele */
-                        rl = allele_offset - offset;
-                        rc = ReferenceSeq_ReadDirect((ReferenceSeq*)cself, offset, rl, true, ref_buf, &i, false);
-                        if( rc == 0 && rl != i ) {
-                            /* here we need to test it otherwise excessive portion of allele could be fetch in next if */
-                            rc = RC(rcAlign, rcFile, rcProcessing, rcRange, rcExcessive);
-                        }
-                    }
-                    if( rc == 0 && allele_len < (max_rl - rl) ) {
-                        memcpy(&ref_buf[rl], allele, allele_len);
-                        rl += allele_len;
-                        /* append tail of actual reference */
-                        rc = ReferenceSeq_ReadDirect((ReferenceSeq*)cself, allele_ref_end, max_rl - rl, true, &ref_buf[rl], &i, false);
-                        rl += i;
-                    } else if( rc == 0 ) {
-                        /* allele is longer than needed */
-                        memcpy(&ref_buf[rl], allele, max_rl - rl);
-                        rl = max_rl;
-                    }
-                } else {
-                    rc = ReferenceSeq_ReadDirect((ReferenceSeq*)cself, offset, max_rl, true, ref_buf, &rl, false);
-                }
-                if( rc != 0 || max_rl != rl ) {
-                    rc = rc ? rc : RC(rcAlign, rcFile, rcProcessing, rcRange, rcExcessive);
-                    ALIGN_C_DBGERRP("refseq is shorter: at offset %i need %u bases", rc, offset, max_rl);
-                } else {
-                    int32_t *const compress_buf = cself->mgr->compress.base;
-                    for(seq_pos = 0, ref_pos = 0; seq_pos < seq_len; seq_pos++, ref_pos++) {
-                        has_ref_offset[seq_pos] = compress_buf[seq_pos] != 0;
-                        if( has_ref_offset[seq_pos]){
-                            if(compress_buf[seq_pos] == 0x80000000 ){
-                                compress_buf[seq_pos] = 0; /** the hack has served its purpose **/
-                            } else {
-                                ref_offset[data->ref_offset.elements++] = compress_buf[seq_pos];
-                                ref_pos += compress_buf[seq_pos];
-                            }
-                        }
-                        if( (ref_pos < 0) || (ref_pos >= max_rl) || 
-                            ((toupper(ref_buf[ref_pos]) != toupper(seq[seq_pos])) && (seq[seq_pos] != '=')) ) {
-                            has_mismatch[seq_pos] = true;
-                            mismatch[data->mismatch.elements++] = seq[seq_pos];
-                        } else {
-                            /* match! */
-                            has_mismatch[seq_pos] = false;
-                        }
+                        rl -= op_len;
                     }
-                }
+                    break;
+                case 'D':
+                case 2:
+                case 'N':
+                case 3:
+                    cb[last_match] += op_len;
+                    rl += op_len;
+                    break;
+                case 'P':
+                case 6:
+                    continue;
+                case 'H':
+                case 5:
+                default:
+                    rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcUnrecognized);
             }
         }
+        if( rc == 0 ) {
+            /* do not write leading deletes just move reference offset */
+            if( cb[0] > 0 ) {
+                offset += cb[0];
+                *ref_len -= cb[0];
+                cb[0] = 0;
+            }
 #if _DEBUGGING
-        if(rc == 0 ) {
-            int32_t j;
-            memset(x, '-', sizeof(x) - 1);
-            x[sizeof(x) - 2] = '\0';
-
-            ALIGN_C_DBG("ref: %.*s [%u]", max_rl, ref_buf, max_rl);
-            ALIGN_C_DBGF(("%s:%u: ref: ", __func__, __LINE__));
-            for(seq_pos = 0, j = 0, rl = 0, i = 0; seq_pos < seq_len; seq_pos++, j++) {
-                if( has_ref_offset[seq_pos] ) {
-                    if( ref_offset[i_ref_offset_elements + rl] > 0 ) {
-                        ALIGN_C_DBGF(("%.*s", (uint32_t)(ref_offset[i_ref_offset_elements + rl]), &ref_buf[j]));
-                    } else {
-                        i = -ref_offset[i_ref_offset_elements + rl];
-                    }
-                    j += ref_offset[i_ref_offset_elements + rl];
-                    rl++;
-                }
-                ALIGN_C_DBGF(("%c", (j < 0 || j >= max_rl) ? '-' : (i > 0) ? tolower(ref_buf[j]) : ref_buf[j]));
-                if( i > 0  ) {
-                    i--;
-                }
+            ALIGN_DBGF(("%s:%u: last_match %u, offsets:", __func__, __LINE__, last_match));
+            for(i = 0; i < seq_len; i++) {
+                ALIGN_DBGF(("%i%c", cb[i], ((i + 1) % 5) ? ',' : '~'));
             }
-            ALIGN_C_DBGF(("\n%s:%u: seq: ", __func__, __LINE__));
-            for(i = 0, j = 0; i < seq_len; i++) {
-                if( has_ref_offset[i] && ref_offset[i_ref_offset_elements + j++] > 0 ) {
-                    ALIGN_C_DBGF(("%.*s", ref_offset[i_ref_offset_elements + j - 1], x));
+            ALIGN_DBGF(("\n"));
+#endif
+            has_ref_offset = &((bool*)(data->has_ref_offset.buffer))[*read_start];
+            ref_offset = (int32_t*)(data->ref_offset.buffer);
+            /* do not write trailing indels cause they are simple mismatches */
+            for(i = 0; i < last_match; i++) {
+                has_ref_offset[i] = cb[i] != 0;
+                if( has_ref_offset[i] ) {
+                    ref_offset[data->ref_offset.elements++] = cb[i];
                 }
-                ALIGN_C_DBGF(("%c", seq[i]));
             }
-            ALIGN_C_DBGF((" [%u]\n", seq_len));
-            ALIGN_C_DBGF(("%s:%u: hro: ", __func__, __LINE__));
-            for(i = 0, j = 0; i < seq_len; i++) {
-                if( has_ref_offset[i] && ref_offset[i_ref_offset_elements + j++] > 0 ) {
-                    ALIGN_C_DBGF(("%.*s", ref_offset[i_ref_offset_elements + j - 1], x));
-                }
-                ALIGN_C_DBGF(("%c", has_ref_offset[i] + '0'));
+            memset(&has_ref_offset[last_match], 0, seq_len - last_match);
+
+#if _DEBUGGING
+            ALIGN_DBG("aligned at %li ref_len %u, num offsets %lu, seq_pos %u", offset, *ref_len, data->ref_offset.elements, seq_pos);
+            ALIGN_DBGF(("%s:%u: HAS_REF_OFFSET: ", __func__, __LINE__));
+            for(i = 0; i < seq_len; i++) {
+                ALIGN_DBGF(("%c", (has_ref_offset[i] != 0) ? '1' : '0'));
             }
-            ALIGN_C_DBGF((", ro:"));
+            ALIGN_DBGF((", REF_OFFSET:"));
             for(i = i_ref_offset_elements; i < data->ref_offset.elements; i++) {
-                ALIGN_C_DBGF((" %i,", ref_offset[i]));
-            }
-            ALIGN_C_DBGF(("[%u]\n", data->ref_offset.elements - i_ref_offset_elements));
-            ALIGN_C_DBGF(("%s:%u: hmm: ", __func__, __LINE__));
-            for(i = 0, j = 0; i < seq_len; i++) {
-                if( has_ref_offset[i] && ref_offset[i_ref_offset_elements + j++] > 0 ) {
-                    ALIGN_C_DBGF(("%.*s", ref_offset[i_ref_offset_elements + j - 1], x));
-                }
-                ALIGN_C_DBGF(("%c", has_mismatch[i] + '0'));
+                ALIGN_DBGF((" %i,", ref_offset[i]));
             }
-            ALIGN_C_DBGF((", mm: '%.*s'[%u]\n", (int)(data->mismatch.elements - i_mismatch_elements),
-                &mismatch[i_mismatch_elements], data->mismatch.elements - i_mismatch_elements));
-        }
+            ALIGN_DBGF(("[%u]\n", data->ref_offset.elements - i_ref_offset_elements));
 #endif
+            assert(seq_len == seq_pos);
+        }
+#if _DEBUGGING
         if( rc == 0 ) {
-            if( data->ploidy == 0 ) {
-                int64_t *const ref_id = (int64_t *)data->ref_id.buffer;
-                INSDC_coord_zero *const ref_start = (INSDC_coord_zero *)data->ref_start.buffer;
-                uint64_t *const global_ref_start = (uint64_t *)data->global_ref_start.buffer;
-                
-                data->ref_1st_row_id = cself->start_rowid;
-                data->effective_offset = offset;
-                data->ref_len = ref_len;
-                ALIGN_C_DBGF(("%s:%u: reference 1st ROW_ID %li OFFSET %i REF_LEN %u",
-                    __func__, __LINE__, data->ref_1st_row_id, data->effective_offset, data->ref_len));
-                
-                ReferenceSeq_TranslateOffset_int(cself, offset, ref_id, ref_start, global_ref_start);
-                
-                if (ref_id) {
-                    data->ref_id.elements = 1;
-                    ALIGN_C_DBGF((" REF_ID %li", ref_id[0]));
-                }
-                if (ref_start) {
-                    data->ref_start.elements = 1;
-                    ALIGN_C_DBGF((" REF_START %i", ref_start[0]));
-                }
-                if (global_ref_start) {
-                    data->global_ref_start.elements = 1;
-                    ALIGN_C_DBGF((" GLOBAL_REF_START %lu", global_ref_start[0]));
+#else
+        if( rc == 0 && !(options & ewrefmgr_cmp_NoMismatch) ) {
+#endif
+            bool* has_mismatch = &((bool*)(data->has_mismatch.buffer))[*read_start];
+            INSDC_dna_text* mismatch = (INSDC_dna_text*)(data->mismatch.buffer);
+            INSDC_dna_text ref_buf[20480];
+
+            if( *ref_len > sizeof(ref_buf) ) {
+                rc = RC(rcAlign, rcFile, rcProcessing, rcBuffer, rcInsufficient);
+            } else if( (rc = ReferenceSeq_ReadDirect((ReferenceSeq*)cself, offset, *ref_len,
+                                                                      true, ref_buf, &rl)) == 0 ) {
+                int64_t ref_pos = 0;
+                uint64_t ref_offset_pos = i_ref_offset_elements;
+                uint64_t i_mismatch_elements;
+
+                ALIGN_DBG("ref %.*s[%u]", rl, ref_buf, rl);
+                if( data->ploidy == 0 ) {
+                    data->has_mismatch.elements = 0;
+                    data->mismatch.elements = 0;
                 }
-                ALIGN_C_DBGF(("\n"));
-            } else {
-                if( data->ref_1st_row_id != cself->start_rowid || data->effective_offset != offset ) {
-                    rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcInconsistent);
-                    (void)PLOGERR(klogErr, (klogErr, rc,
-                        "all reads in alignment record must align to same refseq at same location $(r1)@$(o1) <> $(r2):$(a2)@$(o2)",
-                        "r1=%li,o1=%i,r2=%s,a2=%s,o2=%i", data->ref_1st_row_id, data->effective_offset, cself->id, cself->seqId, offset));
-                } else if( data->ref_len != ref_len ) {
-                    rc = RC(rcAlign, rcFile, rcProcessing, rcData, rcInconsistent);
-                    (void)PLOGERR(klogErr, (klogErr, rc,
-                        "all reads in alignment record must have same size projection on refseq $(rl1) <> $(rl2) $(r):$(a)@$(o)",
-                        "rl1=%u,rl2=%u,r=%s,a=%s,o=%i", data->ref_len, ref_len, cself->id, cself->seqId, offset));
+                i_mismatch_elements = data->mismatch.elements;
+                data->has_mismatch.elements += seq_len;
+
+                ALIGN_DBGF(("%s:%u: HAS_MISMATCH: ", __func__, __LINE__));
+                for(seq_pos = 0; seq_pos < seq_len; seq_pos++, ref_pos++) {
+                    if( has_ref_offset[seq_pos] ) {
+                        ref_pos += ref_offset[ref_offset_pos++];
+                    }
+                    if( (ref_pos < 0) || (ref_pos >= rl) || 
+                        ((toupper(ref_buf[ref_pos]) != toupper(seq[seq_pos])) && (seq[seq_pos] != '=')) ) {
+                        has_mismatch[seq_pos] = true;
+                        mismatch[data->mismatch.elements++] = seq[seq_pos];
+                    } else {
+                        has_mismatch[seq_pos] = false;
+                    }
+                    ALIGN_DBGF(("%c", has_mismatch[seq_pos] ? '1' : '0'));
                 }
+                ALIGN_DBGF((", MISMATCH: '%.*s'[%u]\n", (int)(data->mismatch.elements - i_mismatch_elements),
+                    &mismatch[i_mismatch_elements], data->mismatch.elements - i_mismatch_elements));
             }
         }
         if( rc == 0 ) {
+            if( data->ref_1st_row_id.buffer ) {
+                ((INSDC_coord_len*)(data->ref_1st_row_id.buffer))[data->ploidy] = cself->start_rowid;
+                data->ref_1st_row_id.elements = data->ploidy + 1;
+                ALIGN_DBG("1st ROW_ID %u", ((INSDC_coord_len*)(data->ref_1st_row_id.buffer))[data->ploidy]);
+            }
+
+            if( data->ref_id.buffer ) {
+                ((int64_t*)(data->ref_id.buffer))[data->ploidy] = cself->start_rowid + offset / cself->mgr->max_seq_len;
+                data->ref_id.elements = data->ploidy + 1;
+                ALIGN_DBG("REF_ID: %li", ((int64_t*)(data->ref_id.buffer))[data->ploidy]);
+            }
+            if( data->ref_start.buffer ) {
+                ((INSDC_coord_zero*)(data->ref_start.buffer))[data->ploidy] = offset % cself->mgr->max_seq_len;
+                data->ref_start.elements = data->ploidy + 1;
+                ALIGN_DBG("REF_START %i", ((INSDC_coord_zero*)(data->ref_start.buffer))[data->ploidy]);
+            }
+            if( data->global_ref_start.buffer ) {
+                ((uint64_t*)(data->global_ref_start.buffer))[data->ploidy] = (cself->start_rowid - 1) * cself->mgr->max_seq_len + offset;
+                data->global_ref_start.elements = data->ploidy + 1;
+                ALIGN_DBG("GLOBAL_REF_START %lu", ((uint64_t*)(data->global_ref_start.buffer))[data->ploidy]);
+            }
+            if( data->effective_offset.buffer ) {
+                ((int64_t*)(data->effective_offset.buffer))[data->ploidy] = offset;
+                data->effective_offset.elements = data->ploidy + 1;
+                ALIGN_DBG("OFFSET %li", ((int64_t*)(data->effective_offset.buffer))[data->ploidy]);
+            }
             data->ploidy++;
             data->read_start.elements = data->ploidy;
             data->read_len.elements = data->ploidy;
+            data->ref_len.elements = data->ploidy;
         }
-        if (href_buf)
-            free(href_buf);
     }
-    ALIGN_C_DBGERR(rc);
+    ALIGN_DBGERR(rc);
     return rc;
 }
 
-LIB_EXPORT rc_t CC ReferenceSeq_Read(const ReferenceSeq* cself, INSDC_coord_zero offset, INSDC_coord_len len,
-                                     uint8_t* buffer, INSDC_coord_len* ref_len)
+LIB_EXPORT rc_t CC ReferenceSeq_Read(const ReferenceSeq* cself, int64_t offset, INSDC_coord_len len,
+                                     INSDC_dna_text* buffer, INSDC_coord_len* ref_len)
 {
     rc_t rc = 0;
 
     if( cself == NULL || buffer == NULL || ref_len == NULL ) {
         rc = RC(rcAlign, rcFile, rcReading, rcParam, rcNull);
     } else {
-        rc = ReferenceSeq_ReadDirect((ReferenceSeq*)cself, offset, len, true, buffer, ref_len, false);
+        rc = ReferenceSeq_ReadDirect((ReferenceSeq*)cself, offset, len, true, buffer, ref_len);
     }
     ALIGN_DBGERR(rc);
     return rc;
@@ -2550,7 +1185,7 @@ LIB_EXPORT rc_t CC ReferenceSeq_Get1stRow(const ReferenceSeq* cself, int64_t* ro
     return rc;
 }
 
-LIB_EXPORT rc_t CC ReferenceSeq_AddCoverage(const ReferenceSeq* cself, INSDC_coord_zero offset, const ReferenceSeqCoverage* data)
+LIB_EXPORT rc_t CC ReferenceSeq_AddCoverage(const ReferenceSeq* cself, int64_t offset, const ReferenceSeqCoverage* data)
 {
     rc_t rc = 0;
 
@@ -2558,8 +1193,8 @@ LIB_EXPORT rc_t CC ReferenceSeq_AddCoverage(const ReferenceSeq* cself, INSDC_coo
         rc = RC(rcAlign, rcFile, rcReading, rcParam, rcNull);
     } else if( !(cself->mgr->options & ewrefmgr_co_Coverage) ) {
         rc = RC( rcAlign, rcType, rcWriting, rcData, rcUnexpected);
-        ALIGN_R_DBGERRP("coverage %s", rc, "data");
-    } else if( (rc = ReferenceSeq_ReOffset(cself->circular, cself->seq_len, &offset)) == 0 ) {
+        ALIGN_DBGERRP("coverage %s", rc, "data");
+    } else if( (rc = ReferenceSeq_ReOffset(cself, &offset)) == 0 ) {
         rc = TableWriterRef_WriteCoverage(cself->mgr->writer, cself->start_rowid, offset, data);
     }
     ALIGN_DBGERR(rc);
diff --git a/libs/align/writer-refseq.c b/libs/align/writer-refseq.c
index 6da7795..43995c5 100644
--- a/libs/align/writer-refseq.c
+++ b/libs/align/writer-refseq.c
@@ -69,9 +69,10 @@ LIB_EXPORT rc_t CC TableWriterRefSeq_Make(const TableWriterRefSeq** cself, VDBMa
 {
     rc_t rc = 0;
 
-    if( cself == NULL ) {
+    if( cself == NULL )
         rc = RC(rcAlign, rcFormatter, rcConstructing, rcParam, rcNull);
-    } else {
+    else
+    {
         TableWriterRefSeq* self = calloc(1, sizeof(*self));
         if( self == NULL ) {
             rc = RC(rcAlign, rcFormatter, rcConstructing, rcMemory, rcExhausted);
@@ -88,26 +89,18 @@ LIB_EXPORT rc_t CC TableWriterRefSeq_Make(const TableWriterRefSeq** cself, VDBMa
             *cself = self;
             ALIGN_DBG("table %s created", table_path);
         } else {
-            TableWriterRefSeq_Whack(self, false, NULL, NULL, NULL, NULL, 0);
+            TableWriterRefSeq_Whack(self, false, NULL);
             ALIGN_DBGERRP("table %s", rc, table_path);
         }
     }
     return rc;
 }
 
-LIB_EXPORT rc_t CC TableWriterRefSeq_Whack(const TableWriterRefSeq* cself, bool commit, uint64_t* rows,
-                                           const char* argv0, const char* argv0_date,
-                                           const char* app_name, ver_t app_version)
+LIB_EXPORT rc_t CC TableWriterRefSeq_Whack(const TableWriterRefSeq* cself, bool commit, uint64_t* rows)
 {
     rc_t rc = 0;
-
     if( cself != NULL ) {
-        rc_t rc1;
-        if( commit ) {
-            rc = TableWriter_Sign(cself->base, argv0, argv0_date, app_name, app_version);
-        }
-        rc1 = TableWriter_Whack(cself->base, rc ? false : commit, rows);
-        rc = rc ? rc : rc1;
+        rc = TableWriter_Whack(cself->base, commit, rows);
         free((TableWriterRefSeq*)cself);
     }
     return rc;
diff --git a/libs/align/writer-sequence.c b/libs/align/writer-sequence.c
index 4453ac5..4e5f634 100644
--- a/libs/align/writer-sequence.c
+++ b/libs/align/writer-sequence.c
@@ -26,13 +26,8 @@
 #include <align/extern.h>
 
 #include <klib/rc.h>
-#include <klib/vector.h>
-#include <klib/sort.h>
-#include <klib/data-buffer.h>
-#include <klib/printf.h>
 #include <insdc/insdc.h>
 #include <vdb/database.h>
-#include <vdb/cursor.h>
 #include <sra/sradb.h>
 #include <align/writer-sequence.h>
 #include "writer-priv.h"
@@ -52,7 +47,7 @@ static const TableWriterColumn TableWriterSeq_cols[ewseq_cn_Last + 1] =
     /* order is important, see Write below!!! */
     {0, "(INSDC:dna:text)CMP_READ", sizeof(char) * 8, ewcol_IsArray},
     {0, "(INSDC:color:text)CMP_CSREAD", sizeof(char) * 8, ewcol_IsArray | ewcol_Ignore},
-    {0, "CS_KEY", sizeof(char) * 8, ewcol_IsArray | ewcol_Ignore},
+    {0, "CSKEY", sizeof(char) * 8, ewcol_IsArray | ewcol_Ignore},
     {0, "QUALITY", sizeof(INSDC_quality_phred) * 8, ewcol_IsArray},
     {0, "PRIMARY_ALIGNMENT_ID", sizeof(int64_t) * 8, ewcol_IsArray},
     {0, "ALIGNMENT_COUNT", sizeof(uint8_t) * 8, ewcol_IsArray},
@@ -63,16 +58,14 @@ static const TableWriterColumn TableWriterSeq_cols[ewseq_cn_Last + 1] =
     {0, "READ_TYPE", sizeof(SRAReadTypes) * 8, ewcol_IsArray},
     {0, "READ_START", sizeof(INSDC_coord_zero) * 8, ewcol_IsArray},
     {0, "READ_LEN", sizeof(INSDC_coord_len) * 8, ewcol_IsArray},
-    {0, "TMP_KEY_ID", sizeof(uint64_t) * 8, ewcol_Temporary},
+    {0, "TMP_KEY_ID", sizeof(uint32_t) * 8, ewcol_Temporary},
     {0, "SPOT_GROUP", sizeof(char) * 8, ewcol_IsArray | ewcol_Ignore},
-    {0, "READ_FILTER", sizeof(uint8_t) * 8, ewcol_IsArray},
-    {0, "TI", sizeof(uint64_t) * 8, ewcol_IsArray | ewcol_Ignore}
+    {0, "READ_FILTER", sizeof(uint8_t) * 8, ewcol_IsArray}
 };
 
 static const TableReaderColumn TableSeqReadTmpKey_cols[] = {
-    {0, "TMP_KEY_ID", {NULL}, 0, 0},
-    {0, "READ_LEN", {NULL}, 0, 0},
-    {0, NULL, {NULL}, 0, 0}
+    {0, "TMP_KEY_ID", NULL, 0, 0},
+    {0, NULL, NULL, 0, 0}
 };
 
 struct TableWriterSeq {
@@ -88,11 +81,6 @@ struct TableWriterSeq {
     TableWriterColumn cols_alignd[2];
     const TableReader* tmpkey_reader;
     TableReaderColumn cols_read_tmpkey[sizeof(TableSeqReadTmpKey_cols) / sizeof(TableSeqReadTmpKey_cols[0])];
-    KVector *stats;
-    unsigned statsCount;
-    int64_t tmpKeyIdFirst;
-    int64_t tmpKeyIdLast;
-    bool flush;
 };
 
 static bool TableWriterSeq_InitQuantMatrix(uint8_t dst[256], char const quant[])
@@ -172,112 +160,11 @@ static bool TableWriterSeq_InitQuantMatrix(uint8_t dst[256], char const quant[])
     return false;
 }
 
-typedef struct { uint64_t distance, count; } stats_pair_t;
-
-typedef struct { 
-    stats_pair_t *stats;
-    unsigned i;
-} pb_t;
-
-static rc_t CC stats_cb(uint64_t key, uint64_t value, void *user_data)
-{
-    pb_t *pb = user_data;
-    
-    pb->stats[pb->i].distance = key;
-    pb->stats[pb->i].count = value;
-    ++pb->i;
-    
-    return 0;
-}
-
-static int CC stats_cmp_count(const void *A, const void *B, void *ignore)
-{
-    if (((stats_pair_t const *)A)->distance == 0)
-        return -1;
-    if (((stats_pair_t const *)B)->distance == 0)
-        return 1;
-    if (((stats_pair_t const *)B)->count < ((stats_pair_t const *)A)->count)
-        return -1;
-    if (((stats_pair_t const *)B)->count > ((stats_pair_t const *)A)->count)
-        return 1;
-    if (((stats_pair_t const *)B)->distance < ((stats_pair_t const *)A)->distance)
-        return 1;
-    if (((stats_pair_t const *)B)->distance > ((stats_pair_t const *)A)->distance)
-        return -1;
-    return 0;
-}
-
-static int CC stats_cmp_distance(const void *A, const void *B, void *ignore)
-{
-    if (((stats_pair_t const *)A)->distance < ((stats_pair_t const *)B)->distance)
-        return -1;
-    if (((stats_pair_t const *)A)->distance > ((stats_pair_t const *)B)->distance)
-        return 1;
-    return 0;
-}
-
-static rc_t TableWriterSeq_WriteStatistics(TableWriterSeq const *cself, KMDataNode *node)
-{
-    pb_t pb;
-    rc_t rc;
-    KDataBuffer buf;
-    
-    rc = KDataBufferMake(&buf, 8 * sizeof(pb.stats[0]), cself->statsCount);
-    if (rc) return rc;
-    
-    pb.stats = buf.base;
-    pb.i = 0;
-    rc = KVectorVisitU64(cself->stats, 0, stats_cb, &pb);
-    if (rc == 0) {
-        unsigned i;
-        unsigned const n = cself->statsCount < 126 ? cself->statsCount : 126;
-        uint64_t *const distance = buf.base;
-        
-        ksort(pb.stats, cself->statsCount, sizeof(pb.stats[0]), stats_cmp_count, NULL);
-        ksort(pb.stats, n, sizeof(pb.stats[0]), stats_cmp_distance, NULL);
-        for (i = 0; i != n; ++i) {
-            distance[i] = pb.stats[i].distance;
-        }
-        rc = KMDataNodeWrite(node, distance, n * sizeof(distance[0]));
-    }
-    KDataBufferWhack(&buf);
-    return rc;
-}
-
-static rc_t TableWriterSeq_CollectStatistics(TableWriterSeq *self, const TableWriterData* primary_alignment_id)
-{
-    rc_t rc;
-    int64_t mate[2] = {0, 0};
-    uint64_t distance = 0;
-    uint64_t count = 0;
-    
-    memcpy(mate, primary_alignment_id->buffer, sizeof(mate[0]) * primary_alignment_id->elements);
-    if (mate[0] && mate[1]) {
-        distance = (mate[0] < mate[1]) ? (mate[1] - mate[0]) : (mate[0] - mate[1]);
-    }
-    else
-        return 0;
-    if (self->stats == NULL) {
-        rc = KVectorMake(&self->stats); if (rc) return rc;
-    }
-    rc = KVectorGetU64(self->stats, distance, &count);
-    if (GetRCObject(rc) == rcItem && GetRCState(rc) == rcNotFound) {
-        rc = KVectorSetU64(self->stats, distance, 1);
-        if (rc == 0) ++self->statsCount;
-    }
-    else if (rc == 0) {
-        ++count;
-        rc = KVectorSetU64(self->stats, distance, count);
-    }
-    return rc;
-}
-
 LIB_EXPORT rc_t CC TableWriterSeq_Make(const TableWriterSeq** cself, VDatabase* db,
                                        uint32_t const options, char const qual_quantization[])
 {
     rc_t rc = 0;
     TableWriterSeq* self = NULL;
-    char const *tblName = (options & ewseq_co_ColorSpace) ? "CS_SEQUENCE" : "SEQUENCE";
 
     if( cself == NULL || db == NULL ) {
         rc = RC(rcAlign, rcFormatter, rcConstructing, rcParam, rcNull);
@@ -306,10 +193,7 @@ LIB_EXPORT rc_t CC TableWriterSeq_Make(const TableWriterSeq** cself, VDatabase*
             if( options & ewseq_co_SpotGroup) {
                 self->cols[ewseq_cn_SPOT_GROUP].flags &= ~ewcol_Ignore;
             }
-            if( options & ewseq_co_TI) {
-                self->cols[ewseq_cn_TI].flags &= ~ewcol_Ignore;
-            }
-            if( (rc = TableWriter_Make(&self->base, db, tblName, "SEQUENCE")) == 0 ) {
+            if( (rc = TableWriter_Make(&self->base, db, "SEQUENCE")) == 0 ) {
                 rc = TableWriter_AddCursor(self->base, self->cols, sizeof(self->cols)/sizeof(self->cols[0]), &self->cursor_id);
             }
         }
@@ -348,24 +232,8 @@ LIB_EXPORT rc_t CC TableWriterSeq_Whack(const TableWriterSeq* cself, bool commit
 
     if( cself != NULL ) {
         TableWriterSeq* self = (TableWriterSeq*)cself;
-        VTable *vtbl;
-        
         TableReader_Whack(cself->tmpkey_reader);
-#if 1
-        if (cself->stats && commit && (rc = TableWriter_GetVTable(cself->base, &vtbl)) == 0 ) {
-            KMetadata* meta;
-            if( (rc = VTableOpenMetadataUpdate(vtbl, &meta)) == 0 ) {
-                KMDataNode* node;
-                if( (rc = KMetadataOpenNodeUpdate(meta, &node, "MATE_STATISTICS")) == 0 ) {
-                    rc = TableWriterSeq_WriteStatistics(cself, node);
-                    KMDataNodeRelease(node);
-                }
-                KMetadataRelease(meta);
-            }
-        }
-#endif
-        rc = TableWriter_Whack(cself->base, commit && (rc == 0), rows);
-        KVectorRelease(cself->stats);
+        rc = TableWriter_Whack(cself->base, commit, rows);
         free(self->qual_buf);
         free(self);
     }
@@ -431,9 +299,6 @@ LIB_EXPORT rc_t CC TableWriterSeq_Write(const TableWriterSeq* cself, const Table
     } else if( (cself->options & ewseq_co_AlignData) && data->alignment_count.elements != data->nreads ) {
         rc = RC(rcAlign, rcType, rcWriting, rcData, rcInconsistent);
         ALIGN_DBGERRP("nreads and alignment_count length %u <> %lu", rc, data->nreads, data->alignment_count.elements);
-    } else if( data->no_quantize_mask.buffer && data->no_quantize_mask.elements != data->quality.elements ) {
-        rc = RC(rcAlign, rcType, rcWriting, rcData, rcInconsistent);
-        ALIGN_DBGERRP("quality and no_quantize_mask length %u <> %lu", rc, data->quality.elements, data->no_quantize_mask.elements);
     } else if( !(cself->options & ewseq_co_NoLabelData) &&
                (lbl = ((data->label.buffer ? 1 : 0) + (data->label_start.buffer ? 1 : 0) +
                                                   (data->label_len.buffer ? 1 : 0))) != 0 && lbl != 3 ) {
@@ -443,9 +308,6 @@ LIB_EXPORT rc_t CC TableWriterSeq_Write(const TableWriterSeq* cself, const Table
         if( cself->options & ewseq_co_AlignData ) {
             TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_PRIMARY_ALIGNMENT_ID], data->primary_alignment_id);
             TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_ALIGNMENT_COUNT], data->alignment_count);
-            if (rc == 0) {
-                rc = TableWriterSeq_CollectStatistics((TableWriterSeq *)cself, &data->primary_alignment_id);
-            }
         }
         if( cself->options & ewseq_co_SaveRead ) {
             TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_READ], data->sequence);
@@ -480,18 +342,8 @@ LIB_EXPORT rc_t CC TableWriterSeq_Write(const TableWriterSeq* cself, const Table
                     ((TableWriterSeq*)cself)->qual_buf = p;
                 }
             }
-            if (data->no_quantize_mask.buffer) {
-                bool const *mask = data->no_quantize_mask.buffer;
-                
-                for(i = 0; i < data->quality.elements; i++ ) {
-                    uint8_t const q = b[i] & 0x3F;
-                    cself->qual_buf[i] = mask[i] ? q : cself->discrete_qual[q];
-                }
-            }
-            else {
-                for(i = 0; i < data->quality.elements; i++ ) {
-                    cself->qual_buf[i] = cself->discrete_qual[b[i]];
-                }
+            for(i = 0; i < data->quality.elements; i++ ) {
+                cself->qual_buf[i] = cself->discrete_qual[b[i]];
             }
             TW_COL_WRITE_BUF(cself->base, cself->cols[ewseq_cn_QUALITY], cself->qual_buf, data->quality.elements);
         }
@@ -507,8 +359,6 @@ LIB_EXPORT rc_t CC TableWriterSeq_Write(const TableWriterSeq* cself, const Table
         TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_SPOT_GROUP], data->spot_group);
         TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_CSKEY], data->cskey);
         TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_READ_FILTER], data->read_filter);
-        TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_PLATFORM], data->platform);
-        TW_COL_WRITE(cself->base, cself->cols[ewseq_cn_TI], data->ti);
         if( rc == 0 ) {
             rc = TableWriter_CloseRow(cself->base);
         }
@@ -528,10 +378,7 @@ LIB_EXPORT rc_t CC TableWriterSeq_TmpKeyStart(const TableWriterSeq* cself)
         ALIGN_DBGERR(rc);
     } else if( (rc = TableWriter_CloseCursor(cself->base, 0, NULL)) == 0 ) {
         TableWriterSeq* self = (TableWriterSeq*)cself;
-        VTable* vtbl = NULL;
-        
-        self->tmpKeyIdFirst = INT64_MAX;
-        self->tmpKeyIdLast = INT64_MIN;
+        const VTable* vtbl = NULL;
         memcpy(&self->cols_read_tmpkey, &TableSeqReadTmpKey_cols, sizeof(TableSeqReadTmpKey_cols));
         if( (rc = TableWriter_GetVTable(cself->base, &vtbl)) == 0 &&
             (rc = TableReader_Make(&self->tmpkey_reader, vtbl, self->cols_read_tmpkey, 50 * 1024 * 1024)) == 0 ) {
@@ -544,7 +391,7 @@ LIB_EXPORT rc_t CC TableWriterSeq_TmpKeyStart(const TableWriterSeq* cself)
     return rc;
 }
 
-LIB_EXPORT rc_t CC TableWriterSeq_TmpKey(const TableWriterSeq* cself, int64_t rowid, uint64_t* key_id)
+LIB_EXPORT rc_t CC TableWriterSeq_TmpKey(const TableWriterSeq* cself, int64_t rowid, uint32_t* key_id)
 {
     rc_t rc = 0;
 
@@ -555,13 +402,7 @@ LIB_EXPORT rc_t CC TableWriterSeq_TmpKey(const TableWriterSeq* cself, int64_t ro
         rc = RC( rcAlign, rcType, rcReading, rcMode, rcNotOpen);
         ALIGN_DBGERR(rc);
     } else if( (rc = TableReader_ReadRow(cself->tmpkey_reader, rowid)) == 0 ) {
-        memcpy(key_id, cself->cols_read_tmpkey[0].base.var, sizeof(*key_id));
-        if (cself->tmpKeyIdLast < rowid || rowid < cself->tmpKeyIdFirst) {
-            rc = TableReader_PageIdRange(cself->tmpkey_reader, rowid,
-                                        &((TableWriterSeq*)cself)->tmpKeyIdFirst,
-                                        &((TableWriterSeq*)cself)->tmpKeyIdLast);
-            ((TableWriterSeq*)cself)->flush = rc == 0;
-        }
+        memcpy(key_id, cself->cols_read_tmpkey[0].base, sizeof(*key_id));
     }
     return rc;
 }
@@ -572,43 +413,17 @@ LIB_EXPORT rc_t CC TableWriterSeq_WriteAlignmentData(const TableWriterSeq* cself
 {
     rc_t rc = 0;
 
-    if( cself == NULL ) {
+    if( cself == NULL || rowid == 0 || primary_alignment_id == NULL ) {
         rc = RC( rcAlign, rcType, rcWriting, rcParam, rcNull);
         ALIGN_DBGERR(rc);
     } else if( cself->options & ewseq_co_AlignData ) {
         rc = RC( rcAlign, rcType, rcWriting, rcParam, rcViolated);
         ALIGN_DBGERR(rc);
-    } else if( rowid == 0 ) {
-        rc = TableWriter_Flush(cself->base, cself->alignd_cursor_id);
-    }
-    else if( primary_alignment_id == NULL || alignment_count == NULL ) {
-        rc = RC( rcAlign, rcType, rcWriting, rcParam, rcNull);
-        ALIGN_DBGERR(rc);
-    } else if( (rc = TableReader_ReadRow(cself->tmpkey_reader, rowid)) != 0 ||
-        cself->cols_read_tmpkey[1].len != primary_alignment_id->elements ) {
-        rc = rc ? rc : RC(rcAlign, rcType, rcWriting, rcData, rcInconsistent);
-        ALIGN_DBGERRP("nreads and primary_alignment_id length %u <> %lu",
-            rc, cself->cols_read_tmpkey[1].len, primary_alignment_id->elements);
-    } else if( primary_alignment_id->elements != alignment_count->elements ) {
-        rc = RC(rcAlign, rcType, rcWriting, rcData, rcInconsistent);
-        ALIGN_DBGERRP("primary_alignment_id and alignment_count length %u <> %lu",
-            rc, primary_alignment_id->elements, alignment_count->elements);
-    }
-    else {
-        if (cself->flush) {
-            rc = TableWriter_Flush(cself->base, cself->alignd_cursor_id);
-            ((TableWriterSeq*)cself)->flush = false;
-        }
-        if( rc == 0 &&
-           (rc = TableWriter_OpenRowId(cself->base, rowid, cself->alignd_cursor_id)) == 0 ) {
-            TW_COL_WRITE(cself->base, cself->cols_alignd[0], *primary_alignment_id);
-            TW_COL_WRITE(cself->base, cself->cols_alignd[1], *alignment_count);
-            if( rc == 0 ) {
-                rc = TableWriter_CloseRow(cself->base);
-            }
-            if (rc == 0/* && (cself->options & ewseq_co_WantMateStats)*/) {
-                rc = TableWriterSeq_CollectStatistics((TableWriterSeq *)cself, primary_alignment_id);
-            }
+    } else if( (rc = TableWriter_OpenRowId(cself->base, rowid, cself->alignd_cursor_id)) == 0 ) {
+        TW_COL_WRITE(cself->base, cself->cols_alignd[0], *primary_alignment_id);
+        TW_COL_WRITE(cself->base, cself->cols_alignd[1], *alignment_count);
+        if( rc == 0 ) {
+            rc = TableWriter_CloseRow(cself->base);
         }
     }
     return rc;
diff --git a/libs/axf/Makefile b/libs/axf/Makefile
index f9710fd..9af57d2 100644
--- a/libs/axf/Makefile
+++ b/libs/axf/Makefile
@@ -25,7 +25,7 @@
 
 default: std
 
-TOP ?= $(shell ../../build/abspath.sh ../..)
+TOP ?= $(abspath ../..)
 MODULE = libs/axf
 
 MOD_LIBS = \
@@ -43,13 +43,15 @@ include $(TOP)/build/Makefile.env
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: makedirs
+vers-includes: $(addsuffix .vers.h,$(ALL_LIBS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_LIBS): makedirs
+$(ALL_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-.PHONY: all std $(ALL_LIBS)
+.PHONY: vers-includes all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -80,7 +82,6 @@ AXF_SRC = \
 	raw-restore-read \
 	raw-restore-qual \
 	seq-restore-read \
-	seq-construct-read \
 	cigar \
 	project_read_from_sequence \
 	not-my-row \
@@ -93,19 +94,16 @@ AXF_SRC = \
 	align-local_ref_start \
 	generate-mismatch-qual \
 	mismatch-restore-qual \
-	ref-preserve_qual \
-	ref-tbl \
-	make-cmp-read_desc \
-	get_mate_align_ids
+	ref-preserve_qual
 
 AXF_OBJ = \
 	$(addsuffix .$(LOBX),$(AXF_SRC))
 
 AXF_LIB = \
-	-lalign-reader \
 	-dvdb \
 	-dkdb \
 	-dklib \
+	-dalign-reader \
 	-dm \
 	-dz
 
@@ -115,7 +113,7 @@ $(MODDIR)/libaxf.$(SHLX): $(AXF_OBJ)
 $(TARGDIR)/libaxf.$(LIBX): $(ILIBDIR)/libaxf.$(LIBX)
 
 $(ILIBDIR)/libaxf.$(LIBX): $(AXF_OBJ)
-	$(LD) --slib -o $@ $^ $(AXF_LIB)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(AXF_LIB)
 
 
 #-------------------------------------------------------------------------------
@@ -133,11 +131,10 @@ WAXF_OBJ = \
 	$(addsuffix .$(LOBX),$(WAXF_SRC))
 
 WAXF_LIB = \
-	-lalign-reader \
 	-dwvdb \
 	-dwkdb \
-	-lkfg \
 	-dklib \
+	-dalign-writer \
 	-dm \
 	-dz
 
@@ -147,4 +144,4 @@ $(WMODDIR)/libwaxf.$(SHLX): $(WAXF_OBJ)
 $(TARGDIR)/libwaxf.$(LIBX): $(ILIBDIR)/libwaxf.$(LIBX)
 
 $(ILIBDIR)/libwaxf.$(LIBX): $(WAXF_OBJ)
-	$(LD) --slib -o $@ $^ $(WAXF_LIB)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(WAXF_LIB)
diff --git a/libs/axf/align-local_ref_id.c b/libs/axf/align-local_ref_id.c
index 97f8efb..64b3c5c 100644
--- a/libs/axf/align-local_ref_id.c
+++ b/libs/axf/align-local_ref_id.c
@@ -37,8 +37,6 @@
 
 #include <bitstr.h>
 
-#include "ref-tbl.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -46,7 +44,7 @@
 typedef struct LocalRefID LocalRefID;
 struct LocalRefID
 {
-    uint32_t max_seq_len;
+    uint32_t maxSeqLen;
 };
 
 static
@@ -60,37 +58,53 @@ void CC LocalRefIDWhack ( void *obj )
 }
 
 static
-rc_t LocalRefIDMake ( LocalRefID **objp, const VTable *tbl, const VCursor *native_curs)
+rc_t LocalRefIDMake ( LocalRefID **objp, const VTable *tbl )
 {
     rc_t rc;
+    const VCursor *curs;
+    uint32_t colIdx;
+
     /* create the object */
     LocalRefID *obj = malloc ( sizeof * obj );
     if ( obj == NULL ) {
         rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
     } else {
-	const VCursor *curs=NULL;
-	 /* open the reference table cursor*/
-	if( (rc = AlignRefTableCursor(tbl, native_curs, &curs, NULL)) == 0 ){
-		uint32_t itmp;
-                if(  (rc = VCursorAddColumn(curs, &itmp, "(U32)MAX_SEQ_LEN")) == 0 || GetRCState(rc) == rcExists)  {
-                    const void *base;
-                    uint32_t row_len;
-                    rc = VCursorCellDataDirect(curs, 1, itmp, NULL, &base, NULL, &row_len);
-                    if(rc == 0) {
-                        assert(row_len == 1);
-                        memcpy(&obj->max_seq_len, base, 4);
+        /* get at the parent database */
+        const VDatabase *db;
+        rc = VTableOpenParentRead ( tbl, & db );
+        if ( rc == 0 )
+        {
+            /* open the reference table */
+            const VTable *reftbl;
+            rc = VDatabaseOpenTableRead ( db, & reftbl, "REFERENCE" );
+            VDatabaseRelease ( db );
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCursorRead ( reftbl, & curs);
+                VTableRelease ( reftbl );
+                if( rc == 0 ) {
+                    /* add columns to cursor */
+                    if( (rc = VCursorAddColumn(curs, &colIdx, "(U32)MAX_SEQ_LEN")) == 0 ) {
+                        rc = VCursorOpen(curs);
+                    }
+                    if (rc == 0) {
+                        const void *base;
+                        uint32_t row_len;
+                        
+                        rc = VCursorCellDataDirect(curs, 1, colIdx, NULL, &base, NULL, &row_len);
+                        if (rc == 0) {
+                            memcpy(&obj->maxSeqLen, base, 4);
+                        }
+                    }
+                    VCursorRelease(curs);
+                    if( rc == 0 ) {
+                        *objp = obj;
+                        return 0;
                     }
                 }
-                if( GetRCObject(rc) == rcColumn && GetRCState(rc) == rcNotFound ) {
-                    obj->max_seq_len = 0;
-                    rc = 0;
-                }
-		VCursorRelease(curs);
-		if(rc == 0){
-			*objp = obj;
-			return 0;
-		}
-	}
+            }
+        }
         free ( obj );
     }
     return rc;
@@ -105,10 +119,10 @@ rc_t CC align_local_ref_id ( void *data, const VXformInfo *info, void *Dst, cons
     LocalRefID const *self = (void const *)data;
     int64_t *dst=(int64_t*)Dst;
     uint64_t const *global_ref_start = Src; 
-    uint64_t i;
+    unsigned i;
 
     for (i = 0; i != elem_count; ++i) {
-        dst[i] = global_ref_start[i] / self->max_seq_len + 1;
+        dst[i] = global_ref_start[i] / self->maxSeqLen + 1;
     }
     return 0;
 }
@@ -117,7 +131,7 @@ VTRANSFACT_IMPL ( NCBI_align_local_ref_id, 1, 0, 0 ) ( const void *self, const V
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     LocalRefID *fself;
-    rc_t rc = LocalRefIDMake ( & fself, info -> tbl,  (const VCursor*)info->parms );
+    rc_t rc = LocalRefIDMake ( & fself, info -> tbl );
     if ( rc == 0 )
     {
         rslt -> self = fself;
diff --git a/libs/axf/align-local_ref_start.c b/libs/axf/align-local_ref_start.c
index 6b37120..46ea655 100644
--- a/libs/axf/align-local_ref_start.c
+++ b/libs/axf/align-local_ref_start.c
@@ -37,8 +37,6 @@
 
 #include <bitstr.h>
 
-#include "ref-tbl.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -46,7 +44,7 @@
 typedef struct LocalRefStart LocalRefStart;
 struct LocalRefStart
 {
-    uint32_t max_seq_len;
+    uint32_t maxSeqLen;
 };
 
 static
@@ -60,37 +58,52 @@ void CC LocalRefStartWhack ( void *obj )
 }
 
 static
-rc_t LocalRefStartMake ( LocalRefStart **objp, const VTable *tbl, const VCursor *native_curs )
+rc_t LocalRefStartMake ( LocalRefStart **objp, const VTable *tbl )
 {
     rc_t rc;
+    const VCursor *curs;
+    uint32_t colIdx;
 
     /* create the object */
     LocalRefStart *obj = malloc ( sizeof * obj );
     if ( obj == NULL ) {
         rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
     } else {
-	const VCursor *curs=NULL;
-         /* open the reference table cursor*/
-        if( (rc = AlignRefTableCursor(tbl, native_curs, &curs, NULL)) == 0 ){
-                uint32_t itmp;
-                if(  (rc = VCursorAddColumn(curs, &itmp, "(U32)MAX_SEQ_LEN")) == 0 || GetRCState(rc) == rcExists)  {
-                    const void *base;
-                    uint32_t row_len;
-                    rc = VCursorCellDataDirect(curs, 1, itmp, NULL, &base, NULL, &row_len);
-                    if(rc == 0) {
-                        assert(row_len == 1);
-                        memcpy(&obj->max_seq_len, base, 4);
+        /* get at the parent database */
+        const VDatabase *db;
+        rc = VTableOpenParentRead ( tbl, & db );
+        if ( rc == 0 )
+        {
+            /* open the reference table */
+            const VTable *reftbl;
+            rc = VDatabaseOpenTableRead ( db, & reftbl, "REFERENCE" );
+            VDatabaseRelease ( db );
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCursorRead ( reftbl, & curs);
+                VTableRelease ( reftbl );
+                if( rc == 0 ) {
+                    /* add columns to cursor */
+                    if( (rc = VCursorAddColumn(curs, &colIdx, "(U32)MAX_SEQ_LEN")) == 0 ) {
+                        rc = VCursorOpen(curs);
                     }
-                }
-                if( GetRCObject(rc) == rcColumn && GetRCState(rc) == rcNotFound ) {
-                    obj->max_seq_len = 0;
-                    rc = 0;
-                }
-                VCursorRelease(curs);
-                if(rc == 0){
+                    if (rc == 0) {
+                        const void *base;
+                        uint32_t row_len;
+                        
+                        rc = VCursorCellDataDirect(curs, 1, colIdx, NULL, &base, NULL, &row_len);
+                        if (rc == 0) {
+                            memcpy(&obj->maxSeqLen, base, 4);
+                        }
+                    }
+                    VCursorRelease(curs);
+                    if( rc == 0 ) {
                         *objp = obj;
                         return 0;
+                    }
                 }
+            }
         }
         free ( obj );
     }
@@ -109,7 +122,7 @@ rc_t CC align_local_ref_start ( void *data, const VXformInfo *info, void *Dst, c
     unsigned i;
     
     for (i = 0; i != elem_count; ++i) {
-        dst[i] = global_ref_start[i] % self->max_seq_len;
+        dst[i] = global_ref_start[i] % self->maxSeqLen;
     }
     return 0;
 }
@@ -118,7 +131,7 @@ VTRANSFACT_IMPL ( NCBI_align_local_ref_start, 1, 0, 0 ) ( const void *self, cons
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     LocalRefStart *fself;
-    rc_t rc = LocalRefStartMake ( & fself, info -> tbl, (const VCursor*)info->parms  );
+    rc_t rc = LocalRefStartMake ( & fself, info -> tbl );
     if ( rc == 0 )
     {
         rslt -> self = fself;
diff --git a/libs/axf/align-ref-name.c b/libs/axf/align-ref-name.c
index ce7fc21..e40118e 100644
--- a/libs/axf/align-ref-name.c
+++ b/libs/axf/align-ref-name.c
@@ -37,8 +37,6 @@
 
 #include <bitstr.h>
 
-#include "ref-tbl.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -62,7 +60,7 @@ void CC RefNameWhack ( void *obj )
 }
 
 static
-rc_t RefNameMake ( RefName **objp, const VTable *tbl, const VCursor *native_curs )
+rc_t RefNameMake ( RefName **objp, const VTable *tbl )
 {
     rc_t rc;
 
@@ -71,23 +69,32 @@ rc_t RefNameMake ( RefName **objp, const VTable *tbl, const VCursor *native_curs
     if ( obj == NULL ) {
         rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
     } else {
-	obj->curs=NULL;
-        /* open the reference cursor */
-	rc = AlignRefTableCursor(tbl, native_curs, &obj->curs, NULL);
-	if(rc == 0){
-                /* add columns to cursor */
-		rc = VCursorAddColumn(obj->curs, &obj->name_idx, "(utf8)REF_NAME");
-		if( GetRCObject(rc) == rcColumn && GetRCState(rc) == rcNotFound ) {
-			rc = VCursorAddColumn(obj->curs, &obj->name_idx, "(utf8)NAME");
-		}
-		if(GetRCState(rc) == rcExists){
-			rc = 0;
-		}
+        /* get at the parent database */
+        const VDatabase *db;
+        rc = VTableOpenParentRead ( tbl, & db );
+        if ( rc == 0 )
+        {
+            /* open the reference table */
+            const VTable *reftbl;
+            rc = VDatabaseOpenTableRead ( db, & reftbl, "REFERENCE" );
+            VDatabaseRelease ( db );
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCachedCursorRead(reftbl, &obj->curs, 2*1024u * 1024u);
+                VTableRelease ( reftbl );
                 if( rc == 0 ) {
-                    *objp = obj;
-                    return 0;
+                    /* add columns to cursor */
+                    if( (rc = VCursorAddColumn(obj->curs, &obj->name_idx, "(utf8)NAME")) == 0 ) {
+                        rc = VCursorOpen(obj->curs);
+                    }
+                    if( rc == 0 ) {
+                        *objp = obj;
+                        return 0;
+                    }
+                    VCursorRelease ( obj -> curs );
                 }
-                VCursorRelease ( obj -> curs );
+            }
         }
         free ( obj );
     }
@@ -95,7 +102,7 @@ rc_t RefNameMake ( RefName **objp, const VTable *tbl, const VCursor *native_curs
 }
 
 enum align_ref_name_args {
-    REF_ID
+    REF_ID,
 };
 
 /*
@@ -107,6 +114,7 @@ rc_t CC align_ref_name ( void *data, const VXformInfo *info,
 {
     rc_t rc;
     RefName const *self = (void const *)data;
+    uint8_t *dst;
     char const *name = NULL;
     uint32_t name_len;
 
@@ -124,8 +132,8 @@ rc_t CC align_ref_name ( void *data, const VXformInfo *info,
     }
     
     if (GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow) {
-        name = "";
-        name_len = 0;
+        name = "*";
+        name_len = 1;
     }
     else if (rc) return rc;
     
@@ -145,7 +153,7 @@ VTRANSFACT_IMPL ( NCBI_align_ref_name, 1, 0, 0 ) ( const void *self, const VXfac
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     RefName *fself;
-    rc_t rc = RefNameMake ( & fself, info -> tbl,(const VCursor*)info->parms  );
+    rc_t rc = RefNameMake ( & fself, info -> tbl );
     if ( rc == 0 )
     {
         rslt -> self = fself;
diff --git a/libs/axf/align-ref-pos.c b/libs/axf/align-ref-pos.c
index fb891e2..2c2c79c 100644
--- a/libs/axf/align-ref-pos.c
+++ b/libs/axf/align-ref-pos.c
@@ -38,8 +38,6 @@
 
 #include <bitstr.h>
 
-#include "ref-tbl.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -106,7 +104,7 @@ void CC RefPosWhack ( void *obj )
 }
 
 static
-rc_t RefPosMake ( RefPos **objp, const VTable *tbl, const VCursor *native_curs )
+rc_t RefPosMake ( RefPos **objp, const VTable *tbl )
 {
     rc_t rc;
 
@@ -115,44 +113,54 @@ rc_t RefPosMake ( RefPos **objp, const VTable *tbl, const VCursor *native_curs )
     if ( obj == NULL ) {
         rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
     } else {
-	obj->curs=NULL;
-        BSTreeInit(&obj->tr_range);
-        /* open the reference table cursor*/
-	  
-	if( (rc = AlignRefTableCursor(tbl, native_curs, &obj->curs, NULL)) == 0 ) {
-                uint32_t itmp;
-                if(  (rc = VCursorAddColumn(obj->curs, &itmp, "(U32)MAX_SEQ_LEN")) == 0 || GetRCState(rc) == rcExists)  {
-                    const void *base;
-                    uint32_t row_len;
-                    rc = VCursorCellDataDirect(obj->curs, 1, itmp, NULL, &base, NULL, &row_len);
-                    if(rc == 0) {
-                        assert(row_len == 1);
-                        memcpy(&obj->max_seq_len, base, 4);
+        /* get at the parent database */
+        const VDatabase *db;
+	BSTreeInit(&obj->tr_range);
+        rc = VTableOpenParentRead ( tbl, & db );
+        if ( rc == 0 )
+        {
+            /* open the reference table */
+            const VTable *reftbl;
+            rc = VDatabaseOpenTableRead ( db, & reftbl, "REFERENCE" );
+            VDatabaseRelease ( db );
+	    if ( rc == 0 ){
+		const VCursor* ctmp;
+		rc = VTableCreateCursorRead ( reftbl, & ctmp);
+		if(rc==0){
+			uint32_t	itmp;
+			rc = VCursorAddColumn(ctmp, &itmp, "(U32)MAX_SEQ_LEN");
+			if(rc==0) rc = VCursorOpen(ctmp);
+			if(rc==0) {
+				const void *base;
+	                        uint32_t row_len;
+				rc = VCursorCellDataDirect(ctmp, 1,itmp, NULL, &base, NULL, &row_len);
+				if (rc == 0) {
+					assert(row_len == 1);
+					memcpy(&obj->max_seq_len, base, 4);
+				}
+			}
+		}
+	    }
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCachedCursorRead(reftbl, &obj->curs, 4*1024*1024);
+                VTableRelease ( reftbl );
+                if( rc == 0 ) {
+                    /* add columns to cursor */
+                    if( (rc = VCursorAddColumn(obj->curs, &obj->name_idx, "(utf8)NAME")) == 0 &&
+                        (rc = VCursorAddColumn(obj->curs, &obj->name_range_idx, "NAME_RANGE")) == 0 ) {
+                        rc = VCursorOpen(obj->curs);
                     }
+                    if( rc == 0 ) {
+                        *objp = obj;
+                        return 0;
+                    }
+                    VCursorRelease ( obj -> curs );
                 }
-                if( GetRCObject(rc) == rcColumn && GetRCState(rc) == rcNotFound ) {
-		    /*** no MAX_SEQ_LEN means that REF_POS==REF_START **/
-		    VCursorRelease(obj->curs);
-		    obj->curs = NULL;
-                    obj->max_seq_len = 0;
-		    obj->name_range_idx = 0;
-		    obj->name_idx = 0;
-                    rc = 0;
-                } else if( rc == 0 ) {
-                        /* add columns to cursor */
-			rc = VCursorAddColumn(obj->curs, &obj->name_idx, "(utf8)NAME");
-			if(rc == 0 || GetRCState(rc) == rcExists)
-				rc = VCursorAddColumn(obj->curs, &obj->name_range_idx, "NAME_RANGE");
-			if(GetRCState(rc) == rcExists)
-				rc = 0;
-                }
-        }
-        if( rc == 0 ) {
-            *objp = obj;
-        } else {
-	    VCursorRelease(obj->curs);
-            free(obj);
+            }
         }
+        free ( obj );
     }
     return rc;
 }
@@ -174,55 +182,58 @@ rc_t CC align_ref_pos ( void *data, const VXformInfo *info,
     rc_t rc;
     RefPos const *self = (void const *)data;
     int64_t ref_row_id;
+    char const *name = NULL;
+    uint32_t name_len;
     INSDC_coord_zero *ref_pos;
     unsigned const ploidy = argv[REF_START].u.data.elem_count;
     unsigned i;
+    BSTRowRange *brr;
 
     /* get start and length of reference segment */
-    int64_t const *ref_id;
-    INSDC_coord_zero const *ref_start;
+    int64_t const *ref_id = argv[REF_ID].u.data.base;
+    INSDC_coord_zero const *ref_start = argv[REF_START].u.data.base;
 
     assert(argv[REF_ID].u.data.elem_bits == sizeof(*ref_id) * 8);
     assert(argv[REF_START].u.data.elem_bits == sizeof(*ref_start) * 8);
 
-    ref_start = argv[REF_START].u.data.base;
+    ref_id += argv[REF_ID].u.data.first_elem;
     ref_start += argv[REF_START].u.data.first_elem;
 
-    if( self->curs != NULL ) {
-        char const *name = NULL;
-        uint32_t name_len;
-        BSTRowRange *brr;
-
-        ref_id = argv[REF_ID].u.data.base;
-        ref_id += argv[REF_ID].u.data.first_elem;
 
-        brr = (BSTRowRange*)BSTreeFind(&self->tr_range,&ref_id[0],row_range_cmp);
-        if(brr==NULL) {
-            RowRange *new_rr;
-            rc = VCursorCellDataDirect(self->curs, ref_id[0], self->name_idx, NULL, (void const **)&name, NULL, &name_len);
-            if (rc) return rc;
-            rc = VCursorParamsSet((struct VCursorParams const *)self->curs, "QUERY_SEQ_NAME", "%.*s", name_len, name);
-            if (rc) return rc;
+    brr = (BSTRowRange*)BSTreeFind(&self->tr_range,&ref_id[0],row_range_cmp);
 
-            rc = VCursorCellDataDirect(self->curs, ref_id[0], self->name_range_idx, NULL, (void const **)&new_rr, NULL, NULL);
-            if (rc) return rc;
 
-            brr=malloc(sizeof(*brr));
-            memcpy(&brr->rr,new_rr,sizeof(*new_rr));
-            BSTreeInsert((BSTree*)&self->tr_range,(BSTNode*)brr, row_range_sort);
-        }
-        ref_row_id = brr->rr.start_id;
+    if(brr==NULL){
+        RowRange *new_rr;
+    	rc = VCursorSetRowId(self->curs, ref_id[0]);
+    	if (rc) return rc;
+	rc = VCursorOpenRow(self->curs);
+	if (rc) return rc;
+	rc = VCursorCellData(self->curs, self->name_idx, NULL, (void const **)&name, NULL, &name_len);
+	if (rc) return rc;
+        rc = VCursorParamsSet((struct VCursorParams const *)self->curs, "QUERY_SEQ_NAME", "%.*s", name_len, name);
+        if (rc) return rc;
+        
+        rc = VCursorCellData(self->curs, self->name_range_idx, NULL, (void const **)&new_rr, NULL, NULL);
+        if (rc) return rc;
+        
+        VCursorCloseRow(self->curs);
+	brr=malloc(sizeof(*brr));
+	memcpy(&brr->rr,new_rr,sizeof(*new_rr));
+	BSTreeInsert((BSTree*)&self->tr_range,(BSTNode*)brr, row_range_sort);
     }
 
+    ref_row_id = brr->rr.start_id;
+    
+    rc = KDataBufferCast(rslt->data, rslt->data, sizeof(ref_pos[0]) * 8, true);
+    if (rc) return rc;
+
     rc = KDataBufferResize(rslt->data, ploidy);
     if (rc) return rc;
     
-    ref_pos = rslt->data->base;
+    ref_pos = rslt->data->base;    
     for (i = 0; i != ploidy; ++i) {
-        ref_pos[i] = ref_start[i];
-        if( self->curs != NULL ) {
-            ref_pos[i] += (ref_id[0] - ref_row_id) * self->max_seq_len;
-        }
+        ref_pos[i] = (ref_id[0] - ref_row_id) * self->max_seq_len + ref_start[i];
     }
     rslt->elem_count = ploidy;
     rslt->elem_bits = sizeof(ref_pos[0]) * 8;
@@ -233,7 +244,7 @@ VTRANSFACT_IMPL ( NCBI_align_ref_pos, 1, 0, 0 ) ( const void *self, const VXfact
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     RefPos *fself;
-    rc_t rc = RefPosMake ( & fself, info -> tbl,  (const VCursor*)info->parms);
+    rc_t rc = RefPosMake ( & fself, info -> tbl );
     if ( rc == 0 )
     {
         rslt -> self = fself;
diff --git a/libs/axf/align-ref-seq-id.c b/libs/axf/align-ref-seq-id.c
index 6d0d8a7..5b22a80 100644
--- a/libs/axf/align-ref-seq-id.c
+++ b/libs/axf/align-ref-seq-id.c
@@ -37,8 +37,6 @@
 
 #include <bitstr.h>
 
-#include "ref-tbl.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -62,7 +60,7 @@ void CC RefSeqIDWhack ( void *obj )
 }
 
 static
-rc_t RefSeqIDMake ( RefSeqID **objp, const VTable *tbl, const VCursor *native_curs )
+rc_t RefSeqIDMake ( RefSeqID **objp, const VTable *tbl )
 {
     rc_t rc;
 
@@ -71,23 +69,32 @@ rc_t RefSeqIDMake ( RefSeqID **objp, const VTable *tbl, const VCursor *native_cu
     if ( obj == NULL ) {
         rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
     } else {
-	obj->curs=NULL;
-        /* open the reference cursor */
-        rc = AlignRefTableCursor(tbl, native_curs, &obj->curs, NULL);
-        if(rc == 0){
-                /* add columns to cursor */
-                rc = VCursorAddColumn(obj->curs, &obj->seqID_idx, "SEQ_ID");
-                if( GetRCObject(rc) == rcColumn && GetRCState(rc) == rcNotFound ) {
-                        rc = VCursorAddColumn(obj->curs, &obj->seqID_idx, "REF_SEQ_ID");
-                }
-                if(GetRCState(rc) == rcExists){
-                        rc = 0;
-                }
+        /* get at the parent database */
+        const VDatabase *db;
+        rc = VTableOpenParentRead ( tbl, & db );
+        if ( rc == 0 )
+        {
+            /* open the reference table */
+            const VTable *reftbl;
+            rc = VDatabaseOpenTableRead ( db, & reftbl, "REFERENCE" );
+            VDatabaseRelease ( db );
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCachedCursorRead(reftbl, &obj->curs, 2*1024*1024);
+                VTableRelease ( reftbl );
                 if( rc == 0 ) {
-                    *objp = obj;
-                    return 0;
+                    /* add columns to cursor */
+                    if( (rc = VCursorAddColumn(obj->curs, &obj->seqID_idx, "SEQ_ID")) == 0 ) {
+                        rc = VCursorOpen(obj->curs);
+                    }
+                    if( rc == 0 ) {
+                        *objp = obj;
+                        return 0;
+                    }
+                    VCursorRelease ( obj -> curs );
                 }
-                VCursorRelease ( obj -> curs );
+            }
         }
         free ( obj );
     }
@@ -95,7 +102,7 @@ rc_t RefSeqIDMake ( RefSeqID **objp, const VTable *tbl, const VCursor *native_cu
 }
 
 enum align_ref_name_args {
-    REF_ID
+    REF_ID,
 };
 
 /*
@@ -107,6 +114,7 @@ rc_t CC align_ref_seq_id ( void *data, const VXformInfo *info,
 {
     rc_t rc;
     RefSeqID const *self = (void const *)data;
+    uint8_t *dst;
     char const *name = NULL;
     uint32_t name_len;
 
@@ -115,19 +123,11 @@ rc_t CC align_ref_seq_id ( void *data, const VXformInfo *info,
 
     assert(argv[REF_ID].u.data.elem_bits == sizeof(*ref_id) * 8);
 
-    if( self->curs == NULL || argv[REF_ID].u.data.elem_count == 0 ) {
-        rslt->elem_count = 0;
-        return 0;
-    }
     ref_id += argv[REF_ID].u.data.first_elem;
     
     rc = VCursorCellDataDirect(self->curs, ref_id[0], self->seqID_idx, NULL, (void const **)&name, NULL, &name_len);
-    if (GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow) {
-        name = "";
-        name_len = 0;
-    } else if( rc != 0 ) {
-        return rc;
-    }
+    if (rc) return rc;
+    
     rc = KDataBufferCast(rslt->data, rslt->data, sizeof(name[0]) * 8, true);
     if (rc) return rc;
 
@@ -144,7 +144,7 @@ VTRANSFACT_IMPL ( NCBI_align_ref_seq_id, 1, 0, 0 ) ( const void *self, const VXf
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     RefSeqID *fself;
-    rc_t rc = RefSeqIDMake ( & fself, info -> tbl, (const VCursor*)info->parms  );
+    rc_t rc = RefSeqIDMake ( & fself, info -> tbl );
     if ( rc == 0 )
     {
         rslt -> self = fself;
diff --git a/libs/axf/align-restore-read.c b/libs/axf/align-restore-read.c
index 95b2066..1bd6d27 100644
--- a/libs/axf/align-restore-read.c
+++ b/libs/axf/align-restore-read.c
@@ -47,7 +47,7 @@ rc_t CC align_restore_read_impl ( void *data, const VXformInfo *info, int64_t ro
     VRowResult *rslt, uint32_t argc, const VRowData argv [] )
 {
     rc_t rc;
-    int mmi,roi,rri,di,bi;
+    int mmi,roi,rri,di;
     const INSDC_4na_bin	*ref_read 	= argv[0].u.data.base;
     const uint32_t	ref_read_len 	= argv[0].u.data.elem_count;
     const uint8_t	*has_mismatch	= argv[1].u.data.base;
@@ -58,8 +58,6 @@ rc_t CC align_restore_read_impl ( void *data, const VXformInfo *info, int64_t ro
     const uint32_t	has_ref_offset_len = argv[3].u.data.elem_count;
     const int32_t 	*ref_offset	= argv[4].u.data.base;
     const uint32_t	ref_offset_len  = argv[4].u.data.elem_count;
-    uint32_t ploidy = 1, rl;
-    const INSDC_coord_len* read_len = &has_mismatch_len;
 
     INSDC_4na_bin *dst;
     uint32_t	dst_len;
@@ -78,13 +76,6 @@ rc_t CC align_restore_read_impl ( void *data, const VXformInfo *info, int64_t ro
 
     if ( has_mismatch_len != has_ref_offset_len )
 		return RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent);
-
-    if( argc > 5 ) {
-        assert(argv[5].u.data.elem_bits == 32);
-        ploidy = argv[5].u.data.elem_count;
-        read_len = argv[5].u.data.base;
-        read_len += argv[5].u.data.first_elem;
-    }
     dst_len = has_mismatch_len;
 
     /* resize output row for the total number of reads */    
@@ -94,13 +85,12 @@ rc_t CC align_restore_read_impl ( void *data, const VXformInfo *info, int64_t ro
     rslt -> elem_count = dst_len;
     dst = rslt -> data -> base;
     /**** MAIN RESTORATION LOOP ***/
-    for(mmi=roi=rri=di=bi=0, rl = 1; di < dst_len; di++,rri++,rl++,bi++){
-        if(has_ref_offset[di] && bi >= 0){ /** bi can only become negative on Bs; skip has_ref_offset if Bs are not exhausted ***/
+    for(mmi=roi=rri=di=0; di < dst_len; di++,rri++){
+        if(has_ref_offset[di]){
             if(roi >= ref_offset_len)
                 return RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent);
-            memcpy ( & bi, ref_offset + roi, sizeof bi );
-            rri += bi; /** can lead to negative rri ***/                
-            roi++;
+            rri += ref_offset[roi]; /** can lead to negative rri ***/
+            roi ++;
         }
         if(has_mismatch[di]){
             if(mmi >= mismatch_len)
@@ -113,12 +103,6 @@ rc_t CC align_restore_read_impl ( void *data, const VXformInfo *info, int64_t ro
             }
             dst[di]=ref_read[rri];
         }
-        if( ploidy > 1 && rl == read_len[0] ) {
-            rri = -1;
-            rl = 0;
-            ploidy--;
-            read_len++;
-        }
     }
     return 0;
 }
@@ -128,7 +112,7 @@ rc_t CC align_restore_read_impl ( void *data, const VXformInfo *info, int64_t ro
  * function
  * INSDC:4na:bin ALIGN:align_restore_read #1( INSDC:4na:bin ref_read, bool has_mismatch, INSDC:4na:bin mismatch, bool has_ref_offset, I32 ref_offset);
  */
-VTRANSFACT_IMPL ( ALIGN_align_restore_read, 1, 0, 1 ) ( const void *Self, const VXfactInfo *info,
+VTRANSFACT_IMPL ( ALIGN_align_restore_read, 1, 0, 0 ) ( const void *Self, const VXfactInfo *info,
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
 
diff --git a/libs/axf/cigar.c b/libs/axf/cigar.c
index ead65c3..1932c37 100644
--- a/libs/axf/cigar.c
+++ b/libs/axf/cigar.c
@@ -34,7 +34,6 @@
 #include <klib/data-buffer.h>
 #include <bitstr.h>
 #include <sysalloc.h>
-#include <klib/printf.h>
 
 #include <klib/out.h>
 
@@ -47,368 +46,160 @@
 
 #include <insdc/insdc.h>
 
-#define ARG_BASE(TYPE, N) (((TYPE const *)argv[(N)].u.data.base) + argv[(N)].u.data.first_elem)
-#define ARG_ALIAS(TYPE, NAME, N) TYPE const *const NAME = ARG_BASE(TYPE, N)
-#define ARG_ALIAS_COND(TYPE, NAME, N, ALT) TYPE const *const NAME = ((argc > (N)) ? ARG_BASE(TYPE, N) : ALT)
-
 typedef struct trim_self_struct {
     uint8_t version;
 } self_t;
 
 static
-rc_t op2b(KDataBuffer *dst, unsigned const offset, unsigned *const count, int const opcode, unsigned oplen)
-{
-    unsigned digits = 1;
-    unsigned scale = 10;
-    
-    if (oplen == 0) {
-        *count = 0;
-        return 0;
-    }
-    while (scale < oplen) {
-        scale *= 10;
-        ++digits;
-    }
-    if (scale == oplen) /* oplen is whole power of 10 */
-        ++digits;
-
-    *count = digits + 1;
-    
-    if (dst) {
-        unsigned const need = offset + digits + 1;
-        
-        if (need > dst->elem_count) {
-            rc_t rc = KDataBufferResize(dst, need);
-            if (rc) return rc;
-        }
-        {
-            char *const base = &((char *)dst->base)[offset];
-            
-            base[digits] = opcode;
-            do {
-                unsigned const digit = oplen % 10;
-                
-                oplen /= 10;
-                base[--digits] = digit + '0';
-            } while (digits);
-        }
-    }
-    return 0;
-}
-
-static
-rc_t cigar_string(KDataBuffer *dst, size_t boff, uint64_t *bsize, bool const full,
-                  bool const has_mismatch[], bool const has_ref_offset[],
-                  INSDC_coord_zero const read_start, INSDC_coord_zero const read_end,
-                  int32_t const ref_offset[], unsigned const ro_len, unsigned *ro_offset)
+rc_t cigar_string(char cigar_buf[], size_t bmax, size_t *bsize, int version,
+                  uint8_t const has_mismatch[],
+                  uint8_t const has_ref_offset[],
+                  int32_t const ref_offset[],
+                  unsigned len,
+                  unsigned ro_len)
 {
     size_t bsz = 0;
-    unsigned nwrit;
-    uint32_t i,m,mm;
-    rc_t rc;
-    unsigned cur_off = ro_offset ? *ro_offset : 0;
+    uint32_t i,roi,m,mm;
     
-#define BUF_WRITE(OP, LEN) if ((rc = op2b(dst, bsz + boff, &nwrit, (OP), (LEN))) != 0) return rc; bsz += nwrit;
+#define MACRO_FLUSH_MATCH \
+if(m > 0){ \
+    if(bsz > bmax - 10) /*** reserve some space for %d%c ***/ \
+        return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient ); \
+    bsz += sprintf(cigar_buf+bsz,"%d=",m); \
+    m = 0; \
+}
 
-#define MACRO_FLUSH_MATCH    { BUF_WRITE('=', m); m = 0; }
-#define MACRO_FLUSH_MISMATCH { BUF_WRITE(i == read_end ? 'S' : 'X', mm); mm = 0; }
+#define MACRO_FLUSH_MISMATCH \
+if(mm > 0){ \
+    if(bsz > bmax - 10) /*** reserve some space for %d%c ***/ \
+        return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient ); \
+    if(i==len) bsz += sprintf(cigar_buf+bsz,"%dS",mm); \
+    else       bsz += sprintf(cigar_buf+bsz,"%dX",mm); \
+    mm = 0; \
+}
 
 #define MACRO_FLUSH_BOTH \
 if(m+mm > 0) { \
-    if(i==read_end && has_ref_offset[i]) { \
-        BUF_WRITE('M', m); BUF_WRITE('S', mm); \
+    if(i==len) { \
+        if(bsz > bmax - 20) /*** reserve some space for %d%c%d%c ***/ \
+            return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient ); \
+        if(m > 0)  bsz += sprintf(cigar_buf+bsz,"%dM",m); \
+        if(mm > 0) bsz += sprintf(cigar_buf+bsz,"%dS",mm); \
     } else { \
-        BUF_WRITE('M', m + mm) \
+        if(bsz > bmax - 10) /*** reserve some space for %d%c ***/ \
+            return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient ); \
+        bsz += sprintf(cigar_buf+bsz,"%dM",m+mm); \
     } \
     m=mm=0; \
 }
 
 #define MACRO_FLUSH \
-if(full){ \
+if(version==1){ \
     MACRO_FLUSH_MATCH; \
     MACRO_FLUSH_MISMATCH; \
 } else { \
     MACRO_FLUSH_BOTH; \
 }
-    for(i = read_start, bsz = m = mm = 0; i < read_end; i++) {
+    for ( i = roi = bsz = m = mm = 0; i < len; ++i)
+    {
         if(has_ref_offset[i]){ /*** No offset in the reference **/
-            int32_t offset;
-            
-            if( cur_off >= ro_len) /*** bad data ***/
-                return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
+            uint32_t offset;
             
-            offset = ref_offset[cur_off++];
-            
-            if( offset > 0 ){ /*** insert in the reference, delete in sequence ***/
+            if( roi >= ro_len) /*** bad data ***/
+                return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
+            if( ref_offset[roi] > 0 ){ /*** insert in the reference, delete in sequence ***/
+                offset = ref_offset[roi];
                 if(i==0) /**** deletes in the beginning are disallowed, REF_START should have been moved and delete converted to insert **/
                     return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
                 MACRO_FLUSH;
-                BUF_WRITE('D', offset);
-            } else if ( offset < 0){ /**** delete from the reference ***/
-                offset = -offset;
-                if( i + offset > read_end)
+                if(bsz > bmax - 10) /*** reserve some space for %d%c ***/
+                    return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient );
+                bsz += sprintf(cigar_buf+bsz,"%dD",ref_offset[roi]);
+            } else if ( ref_offset[roi] < 0){ /**** delete from the reference ***/
+                offset = -ref_offset[roi];
+                if( i + offset > len)
                     return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
-                if(i > 0) { /** normally indels are before the current base ***/
+                if(bsz > bmax - 10) /*** reserve some space for %d%c ***/
+                    return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient );
+                if(i > 0) { /** normally indels are after the current base ***/
                     MACRO_FLUSH;
-                    BUF_WRITE('I', offset);
+                    if( i + offset == len) /*** end soft clip **/
+                        bsz += sprintf(cigar_buf+bsz,"%dS",offset);
+                    else 
+                        bsz += sprintf(cigar_buf+bsz,"%dI",offset);
                 } else { /***  this  is a soft clip at the beginning ***/
-                    BUF_WRITE('S', offset);
+                    m=mm=0;
+                    bsz += sprintf(cigar_buf+bsz,"%dS",offset);
                 }
                 i += offset;
             } else { /*** Not possible ??? ***/
                 return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
             }
+            roi++;
         }
-        if(i < read_end ){
-            if(has_mismatch[i]){
-                if(full) {
-                    MACRO_FLUSH_MATCH;
-                }
-                mm++;
+        if(has_mismatch[i]){
+            if(version==1){
+                MACRO_FLUSH_MATCH;
+            }
+            mm++;
+        } else {
+            if(version==1) {
+                MACRO_FLUSH_MISMATCH;
             } else {
-                if(full) {
-                    MACRO_FLUSH_MISMATCH;
-                } else {
-                    m+=mm;
-                    mm=0;
-                }
-                m++;
+                m+=mm;
+                mm=0;
             }
+            m++;
         }
     }
     MACRO_FLUSH;
     *bsize = bsz;
-    if (ro_offset) *ro_offset = cur_off;
-    return 0;
-    
-#undef BUF_WRITE
-#undef MACRO_FLUSH_MATCH
-#undef MACRO_FLUSH_MISMATCH
-#undef MACRO_FLUSH_BOTH
-#undef MACRO_FLUSH
-}
-
-
-static
-rc_t cigar_string_2(KDataBuffer *dst, size_t boff, uint64_t *bsize, const int version,
-                    bool const has_mismatch[], bool const has_ref_offset[],
-                    INSDC_coord_zero const read_start, INSDC_coord_zero const read_end,
-                    int32_t const ref_offset[], unsigned const ro_len, unsigned* ro_offset,
-                    unsigned const reflen, bool use_S)
-{
-    int ri;
-    unsigned si;
-    unsigned di;
-    rc_t rc;
-    unsigned nwrit;
-    unsigned cur_off = ro_offset ? *ro_offset : 0;
-    unsigned op_len;
-    int opcode;
-    int const opM = version == 1 ? '=' : 'M';
-    int const opX = version == 1 ? 'X' : 'M';
-    int const opS = use_S ? 'S' : 'I';
-    
-#define BUF_WRITE(OP, LEN) { if ((rc = op2b(dst, di + boff, &nwrit, (OP), (LEN))) != 0) return rc; di += nwrit; }
-    si=read_start;
-    if (/* !use_S && */read_start == read_end && reflen > 0) {/** full delete as a last ploidy ends up written nowhere  **/
-        di=0;
-        opcode = 'D';
-        op_len = reflen;
-    }
-    else for (op_len = di = 0, opcode = ri = 0; si < read_end && ri <= (int)reflen; ) {
-        if (has_ref_offset[si]) {
-            int offs;
-            
-            if(op_len > 0) {
-                BUF_WRITE(opcode, op_len);
-                op_len = 0;
-            }
-            if (cur_off >= ro_len) /*** bad data ***/
-                return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-
-            offs = ref_offset[cur_off++];
-            if (offs < 0) {
-                unsigned j;
-                for(j=1; j<-offs && (si + j) < read_end;){
-                    if(has_ref_offset[si+j]){/*** structured insert **/
-                        BUF_WRITE(si ? 'I' : opS, j);
-                        offs += j;
-                        si   += j;
-                        j=1;
-                    } else {
-                        j++;
-                    }
-                }
-                if(offs < 0){
-                    BUF_WRITE(si ? 'I' : opS, -offs);
-                    si -= offs;
-                }
-                continue;
-            }
-            else if (offs > 0) {
-                BUF_WRITE('D', offs);
-                ri += offs;
-            }
-            else
-                return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-        }
-        if (ri < (int)reflen) {
-            int const op_nxt = (has_mismatch[si] ? opX : opM);
-            
-            if (op_len == 0 || opcode == op_nxt)
-                ++op_len;
-            else {
-                BUF_WRITE(opcode, op_len);
-                op_len = 1;
-            }
-            opcode = op_nxt;
-        }
-        else
-            break;
-        ++si;
-        ++ri;
-    }
-    BUF_WRITE(opcode, op_len);
-    if (si < read_end){
-        if (cur_off + 1 < ro_len) { 
-            assert(read_end + ref_offset[cur_off] == si);
-            cur_off++;
-            BUF_WRITE('I', read_end - si);
-        }
-        else {
-            BUF_WRITE(opS, read_end - si);
-        }
-    }
-    *bsize = di;
-    if (ro_offset) *ro_offset = cur_off;
-
     return 0;
-#undef BUF_WRITE
-}
-
-static INSDC_coord_len right_soft_clip(unsigned seq_len, unsigned ref_len,
-                                       unsigned noffsets,
-                                       int32_t const ref_offset[])
-{
-    INSDC_coord_len a = ref_len;
-    unsigned i;
-    
-    for (i = 0; i < noffsets; ++i)
-        a -= ref_offset[i];
-    return a < seq_len ? seq_len - a : 0;
 }
 
 static
 rc_t CC cigar_impl ( void *data, const VXformInfo *info, int64_t row_id,
     VRowResult *rslt, uint32_t argc, const VRowData argv [] )
 {
-    self_t const *self = data;
-    unsigned const rdln = argv[0].u.data.elem_count;
-    unsigned const ro_len = argv[2].u.data.elem_count;
-    bool const *has_mismatch   = argv[0].u.data.base;
-    bool const *has_ref_offset = argv[1].u.data.base;
-    int32_t const *ref_offset   = argv[2].u.data.base;
     rc_t rc;
+    const self_t *self = data;
+    uint32_t len    = argv[0].u.data.elem_count;
+    uint32_t ro_len = argv[2].u.data.elem_count;
+    char   cigar_buf[1024];
+    size_t cbi;
+    const uint8_t *has_mismatch   = argv [ 0 ] . u . data . base;
+    const uint8_t *has_ref_offset = argv [ 1 ] . u . data . base;
+    const int32_t *ref_offset     = argv [ 2 ] . u . data . base;
     
     assert(argv[0].u.data.elem_bits == 8);
     assert(argv[1].u.data.elem_bits == 8);
     assert(argv[2].u.data.elem_bits == 32);
 
-    assert(rdln == argv[1].u.data.elem_count);
+    assert(len == argv[1].u.data.elem_count);
 
-    has_mismatch   += argv[0].u.data.first_elem;
-    has_ref_offset += argv[1].u.data.first_elem;
-    ref_offset     += argv[2].u.data.first_elem;
+    has_mismatch   += argv [ 0 ] . u . data . first_elem;
+    has_ref_offset += argv [ 1 ] . u . data . first_elem;
+    ref_offset     += argv [ 2 ] . u . data . first_elem;
 
-    rslt->data->elem_bits = 8;
-    if (argc == 3)
-        rc = cigar_string(rslt->data, 0, &rslt->elem_count, self->version & 0x1,
-                          has_mismatch, has_ref_offset,
-                          0, rdln, ref_offset, ro_len, NULL);
-    else {
-        int32_t const *const rfln = argv[3].u.data.base;
-        
-        rc = cigar_string_2(rslt->data, 0, &rslt->elem_count, self->version & 0x1,
-                            has_mismatch, has_ref_offset,
-                            0, rdln, ref_offset, ro_len, NULL,
-                            rfln[argv[3].u.data.first_elem],true);
-    }
-    return rc;
-}
+    rc = cigar_string(cigar_buf, sizeof(cigar_buf), &cbi, self->version, has_mismatch, has_ref_offset, ref_offset, len, ro_len);
+    if (rc) return rc;
+   
+    /* resize output row for the total number of reads */    
+    rslt -> data -> elem_bits = 8;
+    rc = KDataBufferResize ( rslt -> data, cbi );
+    if ( rc != 0 )
+        return rc;
 
-static
-rc_t CC cigar_impl_2 ( void *data, const VXformInfo *info, int64_t row_id,
-                        VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    self_t const *self = data;
-    bool const *has_mismatch        = argv[0].u.data.base;
-    bool const *has_ref_offset      = argv[1].u.data.base;
-    int32_t const *ref_offset       = argv[2].u.data.base;
-    INSDC_coord_len const *read_len = argv[3].u.data.base;
-    uint32_t const nreads = argv[3].u.data.elem_count;
-    uint32_t const ro_len = argv[2].u.data.elem_count;
-    uint32_t n;
-    uint32_t ro_offset = 0;
-    rc_t rc = 0;
-    uint64_t cnt;
-    INSDC_coord_zero start;
-    INSDC_coord_len *cigar_len;
-    KDataBuffer *buf = (self->version & 0x04) ? NULL : rslt->data;
-    
-    assert(argv[0].u.data.elem_bits == 8);
-    assert(argv[1].u.data.elem_bits == 8);
-    assert(argv[2].u.data.elem_bits == 32);
-    assert(argv[3].u.data.elem_bits == 32);
-    
-    has_mismatch   += argv[0].u.data.first_elem;
-    has_ref_offset += argv[1].u.data.first_elem;
-    ref_offset     += argv[2].u.data.first_elem;
-    read_len       += argv[3].u.data.first_elem;
-
-    if( self->version & 0x4 ) {
-        rslt->data->elem_bits = sizeof(*cigar_len) * 8;
-        rslt->elem_count = nreads;
-        rc = KDataBufferResize(rslt->data, rslt->elem_count); if (rc) return rc;
-        cigar_len = rslt->data->base;
-        if (argv[0].u.data.elem_count == 0 ||
-            argv[1].u.data.elem_count == 0)
-        {
-            memset(cigar_len, 0, sizeof(cigar_len[0]) * nreads);
-            return 0;
-        }
-    }
-    else {
-        rslt->data->elem_bits = 8;
-        rslt->elem_count = 0;
-    }
-    for (n = 0, start = 0, ro_offset = 0; n < nreads; start += read_len[n++]) {
-        if (argc == 4)
-            rc = cigar_string(buf, rslt->elem_count, &cnt, self->version & 0x1,
-                              has_mismatch, has_ref_offset,
-                              start, start + read_len[n],
-                              ref_offset, ro_len, &ro_offset);
-        else {
-            int32_t const *const reflen = argv[4].u.data.base;
-            
-            rc = cigar_string_2(buf, rslt->elem_count, &cnt, self->version & 0x1,
-                                has_mismatch, has_ref_offset,
-                                start, start + read_len[n],
-                                ref_offset, ro_len, &ro_offset,
-                                reflen[argv[4].u.data.first_elem],(nreads==1));
-        }
-        if (rc) return rc;
-        if (self->version & 0x04)
-            cigar_len[n] = cnt;
-        else
-            rslt->elem_count += cnt;
-    }
+    rslt -> elem_count = cbi;
+    if(cbi > 0)
+        memcpy(rslt -> data -> base, cigar_buf, cbi );
     return 0;
 }
 
 static
 void CC self_whack( void *ptr )
 {
-    free( ptr );
+        free( ptr );
 }
 
 
@@ -423,11 +214,11 @@ VTRANSFACT_IMPL ( ALIGN_cigar, 1, 0, 0 ) ( const void *Self, const VXfactInfo *i
 
     self.version =cp -> argv [ 0 ] . data . u8 [ 0 ];
     switch(self.version){
-    case 0:
-    case 1:
-        break;
-    default:
-        return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
+	case 0:
+        case 1:
+		break;
+	default:
+		return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
     }
     rslt->u.rf = cigar_impl;
     rslt->variant = vftRow;
@@ -438,85 +229,54 @@ VTRANSFACT_IMPL ( ALIGN_cigar, 1, 0, 0 ) ( const void *Self, const VXfactInfo *i
     return 0;
 }
 
-VTRANSFACT_IMPL ( ALIGN_cigar_2, 2, 0, 0 ) ( const void *Self, const VXfactInfo *info,
-                                          VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    self_t self;
-    const VTypedesc* tp = &info->fdesc.desc;
-
-    self.version = cp->argv[0].data.u8[0];
-    switch(self.version) {
-    case 0x0:
-    case 0x1:
-        break;
-    default:
-        return RC(rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect);
-    }
-
-    if( tp->domain == vtdAscii && tp->intrinsic_bits == 8 ) {
-        self.version |= 0x2;
-    } else if( tp->domain == vtdUint && tp->intrinsic_bits == sizeof(INSDC_coord_len) * 8 ) {
-        self.version |= 0x4;
-    } else {
-        return RC(rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect);
-    }
-    rslt->u.rf = cigar_impl_2;
-    rslt->variant = vftRow;
-    rslt->self = malloc(sizeof self);
-    memcpy(rslt->self, &self, sizeof(self));
-    rslt->whack = self_whack;
-    return 0;
-}
-
 static
 rc_t CC edit_distance_impl ( void *data, const VXformInfo *info, int64_t row_id,
-                            VRowResult *rslt, uint32_t argc, const VRowData argv [] )
+    VRowResult *rslt, uint32_t argc, const VRowData argv [] )
 {
     rc_t rc;
     uint32_t i,roi,mrun;
     uint32_t len    = argv[0].u.data.elem_count;
+    uint32_t ro_len = argv[2].u.data.elem_count;
     uint32_t *dst;
-    
-    uint8_t const *has_mismatch   = argv [ 0 ] . u . data . base;
-    uint8_t const *has_ref_offset = argv [ 1 ] . u . data . base;
-    int32_t const *ref_offset     = argv [ 2 ] . u . data . base;
+
+    const uint8_t *has_mismatch   = argv [ 0 ] . u . data . base;
+    const uint8_t *has_ref_offset = argv [ 1 ] . u . data . base;
+    const int32_t *ref_offset     = argv [ 2 ] . u . data . base;
     
     assert(argv[0].u.data.elem_bits == 8);
     assert(argv[1].u.data.elem_bits == 8);
     assert(argv[2].u.data.elem_bits == 32);
-    
+
     assert(len == argv[1].u.data.elem_count);
-    
+
     has_mismatch   += argv [ 0 ] . u . data . first_elem;
     has_ref_offset += argv [ 1 ] . u . data . first_elem;
     ref_offset     += argv [ 2 ] . u . data . first_elem;
-    
+
     /* resize output row for the total number of reads */    
-    rslt->data->elem_bits = rslt->elem_bits;
     rc = KDataBufferResize ( rslt -> data, 1);
     if ( rc != 0 ) return rc;
-    
     rslt -> elem_count = 1;
     dst = rslt -> data -> base;
     dst[0]=0;
     if(len == 0) return 0; /** nothing to do **/
-    
+
     if(has_ref_offset[0]){/** skip mismatches from the beginning == soft clip ***/
-        if(ref_offset[0] > 0)  /**** deletes in the beginning are disallowed, REF_START should have been moved and delete converted to insert **/
-            return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
-        i=-ref_offset[0];
-        roi=1;
-        mrun=0;
+	if(ref_offset[0] > 0)  /**** deletes in the beginning are disallowed, REF_START should have been moved and delete converted to insert **/
+		return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
+	i=-ref_offset[0];
+	roi=1;
+	mrun=0;
     } else {
-        i=roi=0;
+	i=roi=0;
     }
     for(mrun=0;i<len;i++){
-        if(has_mismatch[i]){
-            mrun++;
-        } else {/*** intentionally skipping last run of mismatches **/
-            dst[0]+=mrun;
-            mrun=0;
-        }
+	if(has_mismatch[i]){
+		mrun++;
+	} else {/*** intentionally skipping last run of mismatches **/
+		dst[0]+=mrun;
+		mrun=0;
+	}
     }
     return 0;
 }
@@ -535,139 +295,7 @@ VTRANSFACT_IMPL ( NCBI_align_edit_distance, 1, 0, 0 ) ( const void *Self, const
 
 
 /*
- * edit distance = sum of lengths of inserts
- *               + sum of lengths of deletes
- *               + number of mismatches
- * excluding soft clips
- */
-
-unsigned edit_distance(bool const has_ref_offset[],
-                       bool const has_mismatch[],
-                       unsigned const readlen,
-                       unsigned const reflen,
-                       int32_t const ref_offset[],
-                       unsigned const offsets)
-{
-    if (readlen == 0) {
-        /* full delete */
-        return reflen;
-    }
-    else {
-        INSDC_coord_len const rsc = right_soft_clip(readlen, reflen, offsets, ref_offset);
-        unsigned indels = 0;
-        unsigned misses = 0;
-        unsigned i = 0;
-        unsigned j = 0;
-        
-        if (has_ref_offset[0] && ref_offset[j] < 0)
-            j = i = 1;
-        
-        /* sum of insert lengths + sum of delete lengths excluding soft clips */
-        for ( ; i < readlen - rsc; ++i) {
-            if (has_ref_offset[i]) {
-                int const offset = ref_offset[j++];
-                
-                if (offset < 0)
-                    indels += -offset;
-                else
-                    indels +=  offset;
-            }
-        }
-        /* sum of mismatches not in inserts or soft clips */
-        for (j = i = 0; i < readlen - rsc;) {
-            if (has_ref_offset[i]) {
-                int offset = ref_offset[j++];
-                
-                if (offset < 0) {
-                    i += -offset;
-                    continue;
-                }
-            }
-            misses += has_mismatch[i] ? 1 : 0;
-            ++i;
-        }
-        return indels + misses;
-    }
-}
-
-static
-rc_t CC edit_distance_2_impl ( void *data, const VXformInfo *info, int64_t row_id,
-    VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    unsigned const nreads = argc > 4 ? argv[4].u.data.elem_count : 1;
-    unsigned const len = argv[0].u.data.elem_count;
-    unsigned const noffsets = argv[2].u.data.elem_count;
-    INSDC_coord_len const dummy_rl = len;
-
-    ARG_ALIAS     (bool           , has_mismatch  , 0);
-    ARG_ALIAS     (bool           , has_ref_offset, 1);
-    ARG_ALIAS     (int32_t        , ref_offset    , 2);
-    ARG_ALIAS     (INSDC_coord_len, ref_len       , 3);
-    ARG_ALIAS_COND(INSDC_coord_len, readlen       , 4, &dummy_rl);
-    
-    assert(argv[0].u.data.elem_bits == sizeof(has_mismatch  [0]) * 8);
-    assert(argv[1].u.data.elem_bits == sizeof(has_ref_offset[0]) * 8);
-    assert(argv[2].u.data.elem_bits == sizeof(ref_offset    [0]) * 8);
-    assert(argv[3].u.data.elem_bits == sizeof(ref_len       [0]) * 8);
-
-    rslt->data->elem_bits = rslt->elem_bits;
-    if (len == 0) {
-        return KDataBufferResize(rslt->data, rslt->elem_count = 0);
-    }
-    
-    assert(len == argv[1].u.data.elem_count);
-
-    rslt->elem_count = nreads;
-    rc = KDataBufferResize(rslt->data, nreads);
-    if (rc == 0) {
-        unsigned i;
-        unsigned start = 0;
-        unsigned offset = 0;
-        uint32_t *const dst = rslt->data->base;
-        
-        for (i = 0; i < nreads; ++i) {
-            unsigned const rlen = readlen[i];
-            unsigned j;
-            unsigned offsets = 0;
-            
-            for (j = 0; j < rlen; ++j) {
-                if (has_ref_offset[start + j])
-                    ++offsets;
-            }
-            if (offsets + offset > noffsets)
-                return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-            
-            dst[i] = edit_distance(has_ref_offset + start,
-                                   has_mismatch + start,
-                                   rlen,
-                                   ref_len[0],
-                                   ref_offset + offset,
-                                   offsets);
-            start += rlen;
-            offset += offsets;
-        }
-    }
-    return rc;
-}
-
-/*
- * function
- * U32 NCBI:align:edit_distance #2 ( bool has_mismatch, bool has_ref_offset,
- *     I32 ref_offset, INSDC:coord:len ref_len );
- */
-VTRANSFACT_IMPL ( NCBI_align_edit_distance_2, 2, 0, 0 ) ( const void *Self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt->u.rf = edit_distance_2_impl;
-    rslt->variant = vftRow;
-    return 0;
-}
-
-
-/*
- * function bool ALIGN:generate_has_mismatch #1 (INSDC:4na:bin reference,
- *     INSDC:4na:bin subject, bool has_ref_offset, I32 ref_offset);
+ * function bool ALIGN:generate_has_mismatch #1 (INSDC:4na:bin reference,INSDC:4na:bin subject, bool has_ref_offset, I32 ref_offset);
  */
 static
 rc_t CC generate_has_mismatch_impl ( void *data, const VXformInfo *info, int64_t row_id,
@@ -685,17 +313,9 @@ rc_t CC generate_has_mismatch_impl ( void *data, const VXformInfo *info, int64_t
     const int32_t *ref_offset = argv [ 3 ] . u . data . base;
 
     uint8_t * dst;
-    uint32_t  len = 0;
+    uint32_t  len;
 
-    rslt -> data -> elem_bits = 8;
-    if (sbj_len == 0) {
-        rc = KDataBufferResize ( rslt -> data, 0 );
-        if ( rc != 0 )
-            return rc;
-        rslt -> elem_count = 0;
-        return 0;
-    }
-    assert(sbj_len == hro_len);
+    assert(sbj_len == hro_len );
     len = sbj_len;
 
     ref            += argv [ 0 ] . u . data . first_elem;
@@ -711,16 +331,16 @@ rc_t CC generate_has_mismatch_impl ( void *data, const VXformInfo *info, int64_t
     rslt -> elem_count = len;
     dst = rslt -> data->base;
     for(si=ri=roi=0;si< len;si++,ri++){
-        if(has_ref_offset[si] != 0){/*** need to offset the reference ***/
-            if( roi >= ro_len){
-                return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
-            }
-            ri += ref_offset[roi++];
-        }
-        if(ri >=0 && ri < ref_len && sbj[si]==ref[ri])
-            dst[si]=0;
-        else
-            dst[si]=1;
+	if(has_ref_offset[si] != 0){/*** need to offset the reference ***/
+		if( roi >= ro_len){
+			return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
+		}
+		ri += ref_offset[roi];
+	}
+	if(ri >=0 && ri < ref_len && (sbj[si]&ref[ri])!=0)
+		dst[si]=0;
+	else
+		dst[si]=1;
     }
     return 0;
 }
@@ -737,7 +357,7 @@ VTRANSFACT_IMPL ( ALIGN_generate_has_mismatch, 1, 0, 0 ) ( const void *Self, con
 }
 
 /*
- * function bool ALIGN:generate_mismatch #1 (INSDC:4na:bin reference,INSDC:4na:bin subject, bool has_ref_offset, I32 ref_offset);
+ * function bool ALIGN:generate_has_mismatch #1 (INSDC:4na:bin reference,INSDC:4na:bin subject, bool has_ref_offset, I32 ref_offset);
  */
 static
 rc_t CC generate_mismatch_impl ( void *data, const VXformInfo *info, int64_t row_id,
@@ -756,10 +376,6 @@ rc_t CC generate_mismatch_impl ( void *data, const VXformInfo *info, int64_t row
     uint8_t	buf[5*1024];
     uint32_t  len;
 
-    rslt -> data -> elem_bits = 8;
-    if (sbj_len == 0) {
-        return KDataBufferResize(rslt->data, rslt->elem_count = 0);
-    }
     assert(sbj_len == hro_len );
 
     ref            += argv [ 0 ] . u . data . first_elem;
@@ -768,19 +384,20 @@ rc_t CC generate_mismatch_impl ( void *data, const VXformInfo *info, int64_t row
     ref_offset     += argv [ 3 ] . u . data . first_elem;
 
     for(si=ri=roi=0,len=0;si<sbj_len;si++,ri++){
-        if(has_ref_offset[si] != 0){/*** need to offset the reference ***/
-            if( roi >= ro_len){
-                return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
-            }
-            ri += ref_offset[roi++];
-        }
-        if(ri >=0 && ri < ref_len && sbj[si]==ref[ri]){/*noop*/}
-        else {
-            if(len > sizeof(buf)) return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient);
-            buf[len++]=sbj[si];
-        }
+	if(has_ref_offset[si] != 0){/*** need to offset the reference ***/
+		if( roi >= ro_len){
+			return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid );
+		}
+		ri += ref_offset[roi];
+	}
+	if(ri >=0 && ri < ref_len && (sbj[si]&ref[ri])!=0){/*noop*/}
+	else {
+		if(len > sizeof(buf)) return RC(rcXF, rcFunction, rcExecuting, rcBuffer, rcInsufficient);
+		buf[len++]=sbj[si];
+	}
     }
     /* resize output row for the total number of reads */
+    rslt -> data -> elem_bits = 8;
     rc = KDataBufferResize ( rslt -> data, len );
     if ( rc != 0 )
         return rc;
@@ -817,9 +434,9 @@ rc_t CC generate_mismatch_qual_impl ( void *data, const VXformInfo *info, int64_
     q    += argv[0].u.data.first_elem;
     h_mm += argv[1].u.data.first_elem;
     for(mm_cnt=0,i=0;i<argv[0].u.data.elem_count;i++){
-        if(h_mm[i]){
-            buf[mm_cnt++]=q[i];
-        }
+	if(h_mm[i]){
+		buf[mm_cnt++]=q[i];
+	}
     }
     /* resize output row for the total number of reads */
     rslt -> data -> elem_bits = 8;
@@ -927,61 +544,6 @@ rc_t CC left_soft_clip_impl ( void *data, const VXformInfo *info, int64_t row_id
     return rc;
 }
 
-static
-rc_t CC left_soft_clip_impl_2 ( void *data, const VXformInfo *info, int64_t row_id,
-    VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    INSDC_coord_len* result;
-    const bool* has_ref_offset = argv[0].u.data.base;
-    const int32_t* ref_offset = argv[1].u.data.base;
-    const uint64_t n_offsets = argv[1].u.data.elem_count;
-    const INSDC_coord_len* read_len = argv[2].u.data.base;
-    const uint32_t nreads = argv[2].u.data.elem_count;
-    uint32_t n, roi;
-    INSDC_coord_zero start;
-
-    assert(argv[0].u.data.elem_bits == sizeof(has_ref_offset[0]) * 8);
-    assert(argv[1].u.data.elem_bits == sizeof(ref_offset[0]) * 8);
-    assert(argv[2].u.data.elem_bits == sizeof(read_len[0]) * 8);
-    
-    has_ref_offset += argv[0].u.data.first_elem;
-    ref_offset += argv[1].u.data.first_elem;
-    read_len += argv[2].u.data.first_elem;
-
-    rslt->data->elem_bits = sizeof(*result) * 8;
-    rslt->elem_count = nreads;
-    rc = KDataBufferResize(rslt->data, rslt->elem_count);
-    result = rslt->data->base;
-
-    for(n = roi = start = 0; rc == 0 && n < nreads; start += read_len[n++]) {
-        if(has_ref_offset[start] && ref_offset[roi] < 0) {
-            if( roi >= n_offsets ) {
-                rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-                break;
-            }
-            result[n] = -ref_offset[roi];
-        } else {
-            result[n] = 0;
-        }
-        if( n < nreads - 1 && roi < n_offsets ) {
-            /* scroll through has_ref_offset and consume ref_offsets for this read
-               only if there is next read or more offsets */
-            uint32_t k;
-            for(k = start; k < start + read_len[n]; k++) {
-                if( has_ref_offset[k] ) {
-                    if( roi >= n_offsets ) {
-                        rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-                        break;
-                    }
-                    roi++;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
 VTRANSFACT_IMPL ( NCBI_align_get_left_soft_clip, 1, 0, 0 ) ( const void *Self, const VXfactInfo *info,
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
@@ -992,15 +554,7 @@ VTRANSFACT_IMPL ( NCBI_align_get_left_soft_clip, 1, 0, 0 ) ( const void *Self, c
     return 0;
 }
 
-VTRANSFACT_IMPL ( NCBI_align_get_left_soft_clip_2, 2, 0, 0 ) ( const void *Self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt->u.rf = left_soft_clip_impl_2;
-    rslt->variant = vftRow;
-    rslt -> self = NULL;
-    rslt -> whack = NULL;
-    return 0;
-}
+
 
 /*
  * function INSDC:coord:len NCBI:align:get_right_soft_clip #1 ( 
@@ -1017,41 +571,38 @@ rc_t CC right_soft_clip_impl ( void *data, const VXformInfo *info, int64_t row_i
     bool const *has_mismatch = argv[0].u.data.base;
     bool const *has_ref_offset = NULL;
     int32_t    last_ref_offset = 0;
-    
+
     assert(argv[0].u.data.elem_bits == sizeof(has_mismatch[0]) * 8);
     has_mismatch += argv[0].u.data.first_elem;
-    
+
     if( argc > 2 ) {
         has_ref_offset = argv[2].u.data.base;
         has_ref_offset += argv[2].u.data.first_elem;
-        if(argc > 3 ) {
-            const int32_t *ro = argv[3].u.data.base;
-            ro += argv[3].u.data.first_elem;
-            if(argv[3].u.data.elem_count > 0){
-                last_ref_offset = ro[argv[3].u.data.elem_count-1];
-            }
-        }
+	if(argc > 3 ) {
+		int32_t *ro = argv[3].u.data.base;
+		ro         += argv[3].u.data.first_elem;
+		if(argv[3].u.data.elem_count > 0){
+			last_ref_offset = ro[argv[3].u.data.elem_count-1];
+		}
+	}
     }
-    
+
     assert(argv[1].u.data.elem_bits == sizeof(left) * 8);
     left = ((INSDC_coord_len const *)argv[1].u.data.base)[argv[1].u.data.first_elem];
     
     while (right != left && has_mismatch[right - 1] &&
-           (has_ref_offset == NULL || has_ref_offset[right - 1] == 0) )
-    {
+           (has_ref_offset == NULL || has_ref_offset[right - 1] == 0) ) {
         ++result;
         --right;
     }
-    while(right > 0 && last_ref_offset <0 && has_ref_offset[right - 1] == 0){ /*** some mismatches from left needs to be recovered to cover for inserts **/
-        last_ref_offset++;
-        right--;
+    while(right > 0 && has_ref_offset[right - 1] == 0 && last_ref_offset <0){ /*** some mismatches from left needs to be recovered to cover for inserts **/
+	last_ref_offset++;
+	right--;
     }
     if(last_ref_offset < -1 ){
-        last_ref_offset ++;
-        if(result < -last_ref_offset) result=0;
-        else result += last_ref_offset;
-    } else if (last_ref_offset > 0){
-	result += last_ref_offset;
+	last_ref_offset ++;
+	if(result < -last_ref_offset) result=0;
+	else result += last_ref_offset;
     }
     
     rslt->data->elem_bits = sizeof(result) * 8;
@@ -1071,7 +622,6 @@ VTRANSFACT_IMPL ( NCBI_align_get_right_soft_clip, 1, 0, 0 ) ( const void *Self,
     rslt -> whack = NULL;
     return 0;
 }
-
 VTRANSFACT_IMPL ( NCBI_align_get_right_soft_clip_2, 2, 0, 0 ) ( const void *Self, const VXfactInfo *info,
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
@@ -1083,111 +633,7 @@ VTRANSFACT_IMPL ( NCBI_align_get_right_soft_clip_2, 2, 0, 0 ) ( const void *Self
 }
 
 
-/*
- * function INSDC:coord:len NCBI:align:get_right_soft_clip #3 
- *     ( bool has_ref_offset, I32 ref_offset, INSDC:coord:len ref_len )
- */
-static
-rc_t CC right_soft_clip_3_impl ( void *data, const VXformInfo *info, int64_t row_id,
-                              VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    INSDC_coord_len const ref_len = ((INSDC_coord_len const *)argv[2].u.data.base)[argv[2].u.data.first_elem];
-    unsigned const seq_len = argv[0].u.data.elem_count;
-    int32_t const *ref_offset  = &((int32_t const *)argv[1].u.data.base)[argv[1].u.data.first_elem];
-    unsigned const n = argv[1].u.data.elem_count;
-    
-    assert(argv[1].u.data.elem_bits == sizeof(ref_offset    [0]) * 8);
-    assert(argv[2].u.data.elem_bits == sizeof(ref_len          ) * 8);
-
-    rslt->data->elem_bits = rslt->elem_bits;
-    rslt->elem_count = 1;
-    rc = KDataBufferResize(rslt->data, 1);
-    if (rc == 0)
-        ((INSDC_coord_len *)rslt->data->base)[0] = right_soft_clip(seq_len, ref_len, n, ref_offset);
-    return rc;
-}
-
-VTRANSFACT_IMPL ( NCBI_align_get_right_soft_clip_3, 3, 0, 0 )
-    ( const void *Self, const VXfactInfo *info, VFuncDesc *rslt,
-      const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt->u.rf = right_soft_clip_3_impl;
-    rslt->variant = vftRow;
-    rslt -> self = NULL;
-    rslt -> whack = NULL;
-    return 0;
-}
-
-static
-rc_t CC right_soft_clip_4_impl ( void *data, const VXformInfo *info, int64_t row_id,
-                                 VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    INSDC_coord_len* result;
-    const bool* has_ref_offset = argv[0].u.data.base;
-    const int32_t* ref_offset = argv[1].u.data.base;
-    const uint64_t n_offsets = argv[1].u.data.elem_count;
-    const INSDC_coord_len* read_len = argv[2].u.data.base;
-    const uint32_t nreads = argv[2].u.data.elem_count;
-    const INSDC_coord_len* ref_len = argv[3].u.data.base;
-    uint32_t n, roi;
-    INSDC_coord_zero start;
-
-    assert(argv[0].u.data.elem_bits == sizeof(has_ref_offset[0]) * 8);
-    assert(argv[1].u.data.elem_bits == sizeof(ref_offset[0]) * 8);
-    assert(argv[2].u.data.elem_bits == sizeof(read_len[0]) * 8);
-    assert(argv[3].u.data.elem_bits == sizeof(ref_len[0]) * 8);
-    assert(argv[3].u.data.elem_count == 1);
-    
-    has_ref_offset += argv[0].u.data.first_elem;
-    ref_offset += argv[1].u.data.first_elem;
-    read_len += argv[2].u.data.first_elem;
-    ref_len += argv[3].u.data.first_elem;
-
-    rslt->data->elem_bits = sizeof(*result) * 8;
-    rslt->elem_count = nreads;
-    rc = KDataBufferResize(rslt->data, rslt->elem_count);
-    result = rslt->data->base;
-
-    for(n = roi = start = 0; rc == 0 && n < nreads; ++n) {
-        INSDC_coord_len const rlen = read_len[n];
-        unsigned k;
-        unsigned offset_count;
-        
-        for (k = offset_count = 0; k < rlen; ++k) {
-            if (has_ref_offset[k + start])
-                ++offset_count;
-        }
-        result[n] = right_soft_clip(rlen, ref_len[0], offset_count, ref_offset);
-        ref_offset += offset_count;
-        start += rlen;
-#if 0
-        result[n] = read_len[n] - ref_len[0];
-        for(k = start; k < start + read_len[n]; k++) {
-            if( has_ref_offset[k] ) {
-                if( roi >= n_offsets ) {
-                    rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-                    break;
-                }
-                result[n] += ref_offset[roi++];
-            }
-        }
-#endif
-    }
-    return rc;
-}
 
-VTRANSFACT_IMPL ( NCBI_align_get_right_soft_clip_4, 4, 0, 0 )
-    ( const void *Self, const VXfactInfo *info, VFuncDesc *rslt,
-      const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt->u.rf = right_soft_clip_4_impl;
-    rslt->variant = vftRow;
-    rslt -> self = NULL;
-    rslt -> whack = NULL;
-    return 0;
-}
 
 /*
  * function ascii NCBI:align:get_clipped_cigar #1 ( ascii cigar )
@@ -1228,71 +674,6 @@ rc_t CC clipped_cigar_impl ( void *data, const VXformInfo *info, int64_t row_id,
     return rc;
 }
 
-static
-rc_t CC clipped_cigar_impl_v2 ( void *data, const VXformInfo *info, int64_t row_id,
-                                VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc = 0;
-    const char* cigar = argv[0].u.data.base;
-    const INSDC_coord_len* cigar_len = argv[1].u.data.base;
-    const uint32_t nreads = argv[1].u.data.elem_count;
-    INSDC_coord_len* new_cigar_len;
-    uint32_t n;
-    INSDC_coord_zero rstart;
-    
-    assert(argv[0].u.data.elem_bits == sizeof(*cigar) * 8);
-    assert(argv[1].u.data.elem_bits == sizeof(*cigar_len) * 8);
-
-    if (argv[0].u.data.elem_count == 0) {
-        return KDataBufferResize(rslt->data, rslt->elem_count = 0);
-    }
-    
-    cigar += argv[0].u.data.first_elem;
-    cigar_len += argv[1].u.data.first_elem;
-
-    if( data != NULL ) {
-        rslt->data->elem_bits = sizeof(*cigar_len) * 8;
-        rslt->elem_count = nreads;
-        rc = KDataBufferResize(rslt->data, rslt->elem_count);
-        new_cigar_len = rslt->data->base;
-    } else {
-        rslt->elem_count = 0;
-        rslt->data->elem_bits = sizeof(*cigar) * 8;
-    }
-    for(n = rstart = 0; n < nreads; rstart += cigar_len[n++]) {
-        INSDC_coord_zero i = rstart, start = rstart;
-        INSDC_coord_zero end = start + cigar_len[n];
-
-        /* drop all \d+S groups at head */
-        while(i < end) {
-            if(cigar[i] == 'S') {
-                start = i + 1;
-            } else if( !isdigit(cigar[i]) ) {
-                break;
-            }
-            i++;
-        }
-        /* drop all \d+S groups at tail */
-        while(end > start) {
-            end--;
-            if(cigar[end] != 'S' && !isdigit(cigar[end]) ) {
-                break;
-            }
-        }
-        if( data == NULL ) {
-            int64_t x = end - start + 1;
-            if( x > 0 && (rc = KDataBufferResize(rslt->data, rslt->elem_count + x)) == 0 ) {
-                char* b = rslt->data->base;
-                memcpy(&b[rslt->elem_count], &cigar[start], x);
-                rslt->elem_count += x;
-            }
-        } else {
-            new_cigar_len[n] = end - start + 1;
-        }
-    }
-    return rc;
-}
-
 VTRANSFACT_IMPL ( NCBI_align_get_clipped_cigar, 1, 0, 0 ) ( const void *Self, const VXfactInfo *info,
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
@@ -1303,24 +684,6 @@ VTRANSFACT_IMPL ( NCBI_align_get_clipped_cigar, 1, 0, 0 ) ( const void *Self, co
     return 0;
 }
 
-VTRANSFACT_IMPL ( NCBI_align_get_clipped_cigar_2, 2, 0, 0 ) ( const void *Self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    const VTypedesc* tp = &info->fdesc.desc;
-
-    if( tp->domain == vtdAscii && tp->intrinsic_bits == 8 ) {
-        rslt->self = NULL;
-    } else if( tp->domain == vtdUint && tp->intrinsic_bits == sizeof(INSDC_coord_len) * 8 ) {
-        rslt->self = rslt; /* something different from NULL :) */
-    } else {
-        return RC(rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect);
-    }
-    rslt->u.rf = clipped_cigar_impl_v2;
-    rslt->variant = vftRow;
-    rslt->whack = NULL;
-    return 0;
-}
-
 
 
 /*
@@ -1377,67 +740,31 @@ rc_t CC get_ref_len_impl ( void *data, const VXformInfo *info, int64_t row_id,
     VRowResult *rslt, uint32_t argc, const VRowData argv [] )
 {
     rc_t rc;
-    INSDC_coord_len result,right=0;
-    
-    unsigned const read_len = argv[0].u.data.elem_count;
+    INSDC_coord_len result;
     unsigned const n_offsets = argv[1].u.data.elem_count;
-    bool const *hro = argv[0].u.data.base;
+    INSDC_coord_len const *right = argv[2].u.data.base;
     int32_t const *ref_offset = argv[1].u.data.base;
+    int32_t sum;
+    unsigned i;
     
+    assert(argv[2].u.data.elem_bits == sizeof(right[0]) * 8);
+    assert(argv[0].u.data.elem_count >= right[argv[2].u.data.first_elem]);
     assert(argv[1].u.data.elem_bits == sizeof(ref_offset[0]) * 8);
-    
-    hro += argv[0].u.data.first_elem;
-    ref_offset += argv[1].u.data.first_elem;
 
-    if( argc > 2 ) {
-	right = ((INSDC_coord_len*)argv[2].u.data.base)[argv[2].u.data.first_elem];
-        
-        assert(argv[2].u.data.elem_bits == sizeof(right) * 8);
-        assert(read_len >= right);
-    }
-    if( n_offsets == 0){
-	if(read_len < right) return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-	result = read_len - right;
-    } else {
-	int32_t  ires, rov;
-	unsigned i;
-	
-	if(argc > 2){/*** clipping ***/
-		for(i=0,ires=read_len - right;i<n_offsets;i++){
-			memcpy( & rov, ref_offset + i, sizeof rov );
-			ires += rov;
-        }
-	} else {
-		int32_t sum_pos,sum_neg;
-		for(i=0,sum_pos=sum_neg=0;i<n_offsets;i++){
-			memcpy( & rov, ref_offset + i, sizeof rov );
-			if (rov > 0) sum_pos += rov;
-			else         sum_neg += rov;            
-		}
-		if(sum_pos + sum_neg >= 0){/** all offsets may not over-shorten needed reference ***/
-			ires = read_len + sum_pos + sum_neg;
-		} else { /** inefficient case - exact reach into the reference is needed **/
-			unsigned j;
-			for(i=0,j=0,sum_pos=0,ires=0;j<read_len; j++){
-				if(hro[i]){
-					if(i >= n_offsets) return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-					memcpy( & rov, ref_offset + i, sizeof rov );
-					ires += rov;
-					i++;
-				}
-				sum_pos ++;
-				if(sum_pos > ires) ires=sum_pos;
-			}
-		}
-	}
-	if(ires < 0) return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-	result=ires;
+    ref_offset += argv[1].u.data.first_elem;
+    result = argv[0].u.data.elem_count - right[argv[2].u.data.first_elem];
+    
+    for (sum = 0, i = 0; i != n_offsets; ++i) {
+        sum += ref_offset[i];
     }
+    assert((int32_t)result >= -sum);
+    result += sum;
+    
     rslt->data->elem_bits = sizeof(result) * 8;
     rslt->elem_count = 1;
     rc = KDataBufferResize(rslt->data, rslt->elem_count);
     if (rc == 0)
-	memcpy(rslt->data->base,&result,sizeof(result));
+        memcpy(rslt->data->base, &result, sizeof(result));
     return rc;
 }
 
@@ -1466,10 +793,7 @@ rc_t CC clip_impl ( void *data, const VXformInfo *info, int64_t row_id,
     INSDC_coord_len right = ((INSDC_coord_len const *)argv[2].u.data.base)[argv[2].u.data.first_elem];
 
     rslt->data->elem_bits = argv[0].u.data.elem_bits;
-    if (argv[0].u.data.elem_count >= left + right)
-        rslt->elem_count = argv[0].u.data.elem_count - left - right;
-    else
-        rslt->elem_count = 0;
+    rslt->elem_count = argv[0].u.data.elem_count - left - right;
     rc = KDataBufferResize(rslt->data, rslt->elem_count);
     if (rc == 0) {
         if ((rslt->data->elem_bits & 7) == 0)
@@ -1494,62 +818,7 @@ VTRANSFACT_IMPL ( NCBI_align_clip, 1, 0, 0 ) ( const void *Self, const VXfactInf
     return 0;
 }
 
-static
-rc_t CC clip_impl_2 ( void *data, const VXformInfo *info, int64_t row_id,
-                      VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    const INSDC_coord_len* read_len = argv[1].u.data.base;
-    const uint32_t nreads = argv[1].u.data.elem_count;
-    const INSDC_coord_len* left =  argv[2].u.data.base;
-    const INSDC_coord_len* right = argv[3].u.data.base;
-    uint32_t n;
-    INSDC_coord_zero start;
-
-    assert(argv[1].u.data.elem_count == argv[2].u.data.elem_count);
-    assert(argv[1].u.data.elem_count == argv[3].u.data.elem_count);
-    assert(argv[1].u.data.elem_bits == sizeof(read_len[0]) * 8);
-    assert(argv[2].u.data.elem_bits == sizeof(left[0]) * 8);
-    assert(argv[2].u.data.elem_bits == sizeof(right[0]) * 8);
-
-    read_len += argv[1].u.data.first_elem;
-    left += argv[2].u.data.first_elem;
-    right += argv[3].u.data.first_elem;
 
-    rslt->data->elem_bits = argv[0].u.data.elem_bits;
-    rslt->elem_count = 0;
-    rc = KDataBufferResize(rslt->data, rslt->elem_count);
-    if (rc)
-        return rc;
-    if (argv[0].u.data.elem_count == 0)
-        return 0;
-
-    for(n = start = 0; rc == 0 && n < nreads; start += read_len[n++]) {
-        uint64_t x = left[n] + right[n];
-        assert(argv[0].u.data.elem_count >= start);
-        assert(argv[0].u.data.elem_count >= start + read_len[n]);
-        if( read_len[n] > x ) {
-            x = read_len[n] - x;
-            if( x > 0 && (rc = KDataBufferResize(rslt->data, rslt->elem_count + x)) == 0) {
-                bitcpy(rslt->data->base, rslt->elem_count * argv[0].u.data.elem_bits,
-                       argv[0].u.data.base, (argv[0].u.data.first_elem + start + left[n]) * argv[0].u.data.elem_bits,
-                       x * rslt->data->elem_bits);
-                rslt->elem_count += x;
-            }
-        }
-    }
-    return rc;
-}
-
-VTRANSFACT_IMPL ( NCBI_align_clip_2, 2, 0, 0 ) ( const void *Self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt->u.rf = clip_impl_2;
-    rslt->variant = vftRow;
-    rslt -> self = NULL;
-    rslt -> whack = NULL;
-    return 0;
-}
 
 /*
  * function bool NCBI:align:get_ref_mismatch #1
diff --git a/libs/axf/get-sam-flags.c b/libs/axf/get-sam-flags.c
index 4d6574f..c69066b 100644
--- a/libs/axf/get-sam-flags.c
+++ b/libs/axf/get-sam-flags.c
@@ -41,13 +41,6 @@
 #include <ctype.h>
 #include <assert.h>
 
-
-/* "properly aligned" fragments according to the aligner
-   may mean minimally that the fragments are on the same
-   chromosome. */
-#define PROPER_ALIGNED_MEANS_SAME_CHROMOSOME 1
-
-
 static
 rc_t CC get_sam_flags_impl(void *data, const VXformInfo *info,
                            int64_t row_id, VRowResult *rslt,
@@ -56,14 +49,14 @@ rc_t CC get_sam_flags_impl(void *data, const VXformInfo *info,
 {
     rc_t 	rc;
     int32_t	*dst;
-    const INSDC_coord_one  *rid = argv[1].u.data.base; /* SEQ_READ_ID */
-    const int32_t         *tlen = argv[2].u.data.base; /* TEMPLATE_LEN */
-    const bool	           *ro1 = argv[3].u.data.base; /* REF_ORIENTATION */
-    const bool             *ro2 = argv[4].u.data.base; /* MATE_REF_ORIENTATION */
-    const bool             *sec = argv[5].u.data.base; 
-    const bool             mate_present = (argv[4].u.data.elem_count > 0 );
+    const INSDC_coord_one  *rid = argv[1].u.data.base;
+    const int32_t  	   *tlen = argv[2].u.data.base;
+    const bool	           *ro1 = argv[3].u.data.base;
+    const bool             *ro2 = argv[4].u.data.base;
+    const bool             *sec = argv[5].u.data.base;
     const SRAReadFilter    *flt = argc > 6 ? argv[6].u.data.base : NULL;
 
+    assert(nreads > 0);
     assert(argv[1].u.data.elem_count == 1);
     assert(argv[2].u.data.elem_count == 1);
     assert(argv[3].u.data.elem_count == 1);
@@ -72,12 +65,10 @@ rc_t CC get_sam_flags_impl(void *data, const VXformInfo *info,
     
     
     rc = KDataBufferResize(rslt->data, 1);
-    if(rc != 0)
-        return rc;
+    if(rc != 0) return rc;
     rslt->elem_count=1;
     dst = rslt->data->base;
     dst[0]=0;
-    if(nreads == 0) return 0;
     
     
     rid  += argv[1].u.data.first_elem;
@@ -89,47 +80,34 @@ rc_t CC get_sam_flags_impl(void *data, const VXformInfo *info,
         flt += argv[6].u.data.first_elem;
     
     /***************** SAM FLAGS************
-      Bit  Description
-     0x001 template having multiple fragments in sequencing
-     0x002 each fragment properly aligned according to the aligner
-     0x004 fragment unmapped
-     0x008 next fragment in the template unmapped
-     0x010 SEQ being reverse complemented
-     0x020 SEQ of the next fragment in the template being reversed
-     0x040 the first fragment in the template
-     0x080 the last fragment in the template
+     Bit  Description
+     0x1 template having multiple fragments in sequencing
+     0x2 each fragment properly aligned according to the aligner
+     0x4 fragment unmapped
+     0x8 next fragment in the template unmapped
+     0x10 SEQ being reverse complemented
+     0x20 SEQ of the next fragment in the template being reversed
+     0x40 the first fragment in the template
+     0x80 the last fragment in the template
      0x100 secondary alignment
      0x200 not passing quality controls
      0x400 PCR or optical duplicate
     ****************************/
-    if(ro1[0])
-        dst[0] |= 0x10;
-    if(sec[0])
-        dst[0] |= 0x100;
+    if(ro1[0])      dst[0] |= 0x10;
+    if(sec[0])      dst[0] |= 0x100;
     if(nreads > 1) {
-        if(rid[0] == 1)
-            dst[0] |= 0x40;
-        if (rid[0] == nreads)
-            dst[0] |= 0x80;
+        if(rid[0] == 1) dst[0] |= 0x40;
+        if (rid[0] == nreads) dst[0] |= 0x80;
         dst[0] |= 0x1;
-        if(mate_present) {
-#if PROPER_ALIGNED_MEANS_SAME_CHROMOSOME
-           if( tlen[0] != 0 )
-#endif
-                dst[0] |= 0x2;
-           if(ro2[0])
-                dst[0] |= 0x20;
+        if(tlen[0] != 0 ){
+            dst[0] |= 0x2;
+            if(ro2[0]) dst[0] |= 0x20;
         } else {
             dst[0] |= 0x8;
         }
     }
-    if( flt ) {
-        if( flt[0] == SRA_READ_FILTER_REJECT ) {
-            dst[0] |= 0x200;
-        } else if( flt[0] == SRA_READ_FILTER_CRITERIA ) {
-            dst[0] |= 0x400;
-        }
-    }
+    if (flt && flt[0] == SRA_READ_FILTER_CRITERIA)
+        dst[0] |= 0x400;
     return rc;	
 }
 
@@ -142,15 +120,11 @@ rc_t CC get_sam_flags_impl_v1(void *data,const VXformInfo *info, int64_t row_id,
     
     assert(argv[0].u.data.elem_bits == sizeof(read_len[0]) * 8);
     read_len += argv[0].u.data.first_elem;
-   
-#if 1 
-    for (i = 0, nreads = 0; i != argv[0].u.data.elem_count; ++i) {
+    
+    for (i = 0; i != argv[0].u.data.elem_count; ++i) {
         if (read_len[i] != 0)
             ++nreads;
     }
-#else
-    nreads = argv[0].u.data.elem_count;
-#endif
     return get_sam_flags_impl(data, info, row_id, rslt, nreads, argc, argv);
 }
 
diff --git a/libs/axf/get_mate_align_ids.c b/libs/axf/get_mate_align_ids.c
deleted file mode 100644
index d96e65d..0000000
--- a/libs/axf/get_mate_align_ids.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-#include <vdb/extern.h>
-#include <vdb/xform.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
-
-#include <kdb/meta.h>
-
-#include <klib/rc.h>
-#include <klib/data-buffer.h>
-#include <klib/sort.h>
-#include <klib/vector.h>
-
-#include <insdc/sra.h>
-#include <insdc/insdc.h>
-
-#include <bitstr.h>
-#include <sysalloc.h>
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <ctype.h>
-
-typedef struct ID_cache_t
-{
-    uint32_t idx;
-    VCursor const *curs;
-    KVector *j_cache;
-    KVector *p_cache;
-}ID_cache_t;
-
-#define MIN_DIFF_TO_CACHE 10000
-#define TMP_CACHE_PAGESIZE (16*1024)
-
-
-static rc_t lookup_mate(ID_cache_t *const self, int64_t const id, int64_t *mateid)
-{
-    return KVectorGetI64(self->j_cache, (uint64_t)id,mateid);
-}
-
-static rc_t cache_mate(ID_cache_t *self, int64_t id, int64_t mateid)
-{
-    return KVectorSetU64(self->j_cache, (uint64_t)id, mateid);
-}
-
-static rc_t fetch_mates(ID_cache_t *self, int64_t spotid, const int64_t **ids,uint32_t *rlen)
-{
-    rc_t rc = 0;
-    uint32_t elem_bits;
-    uint32_t boff;
-
-    rc = VCursorCellDataDirect(self->curs, spotid, self->idx,&elem_bits, (const void**) ids, &boff, rlen);
-    assert(*rlen==0 || elem_bits==64);
-    assert(boff==0);
-    return rc;
-}
-static rc_t fetch_mate_id(ID_cache_t *self, int64_t spotid, int64_t const id, int64_t *mateid)
-{
-    rc_t rc = 0;
-    uint32_t rlen;
-    int i;
-    const int64_t *base;
-
-    
-
-    rc = fetch_mates(self, spotid,&base,&rlen);
-    if(rc) return rc;
-    if (rlen > 2) return RC(rcXF, rcFunction, rcExecuting, rcConstraint, rcViolated);
-    mateid[0]=0;
-    for(i=0;i<rlen;i++){
-	if(base[i] != id) {
-		mateid[0] = base[i];
-	}
-    }
-    return rc;
-}
-
-static
-rc_t get_mate_algn_id_impl(ID_cache_t *const self,
-                          int64_t const row, int64_t rslt[],
-                          int64_t const spotid)
-{
-    rc_t rc = 0;
-    bool    page_processed=false;
-    int64_t first,first_blob,last,last_blob;
-
-    /** check cache **/
-    rc = lookup_mate(self, row, rslt);
-    if (rc == 0) return 0;
-
-    /** Page boundary is defined by the variable "first" **/
-    rc = VCursorPageIdRange(self->curs, self->idx, spotid, &first_blob, &last_blob);      if (rc) return rc;
-    first = spotid & ~(TMP_CACHE_PAGESIZE - 1 );
-    if(first < first_blob) first = first_blob;
-    last = first + TMP_CACHE_PAGESIZE -1;
-    if(last > last_blob) last = last_blob;
-
-    rc = KVectorGetBool(self->p_cache, (uint64_t)first,&page_processed);
-    if (rc == 0 && page_processed) { /*** This page was processed before. Row did not need caching. Just fetch Row being asked **/
-	return fetch_mate_id(self, spotid, row, rslt);
-    } else { /** unprocessed page **/
-	int64_t i;
-	
-	rc = KVectorSetBool(self->p_cache, (uint64_t)first,true); /** mark as processed **/
-	if(rc) return rc;
-	
-	for(i=first;i<=last;i++){
-		int64_t	ids[2]={0,0};
-		const int64_t *ptr;
-		uint32_t rlen;
-		rc = fetch_mates(self, i, &ptr,&rlen);
-		if(rc){
-			if(GetRCState ( rc ) == rcNotFound ) rc = 0;
-			else return rc;
-		}
-		memcpy(ids,ptr,rlen*sizeof(*ptr));
-		if(ids[0]!= 0 && ids[1] != 0 && labs(ids[0] - ids[1])> MIN_DIFF_TO_CACHE){
-			rc = cache_mate((ID_cache_t*)self,ids[0],ids[1]);
-			if(rc) return rc;
-			rc = cache_mate((ID_cache_t*)self,ids[1],ids[0]);
-			if(rc) return rc;
-		}
-		if(i==spotid){
-			if(ids[0] == row){
-				rslt[0] = ids[1];
-			} else if(ids[1] == row){
-				rslt[0] = ids[0];
-			} else {
-				return RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent);
-			} 
-		}
-	}
-    }
-    return rc;
-}
-static
-rc_t CC get_mate_algn_id_drvr(void *Self,
-                              const VXformInfo *info, int64_t row_id,
-                              VRowResult *rslt,
-                              uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    ID_cache_t *self = Self;
-
-    rslt->data->elem_bits = rslt->elem_bits;
-    rc = KDataBufferResize(rslt->data, 1);
-    if (rc == 0) {
-#if 0
-        rc = get_mate_algn_id_impl(self, row_id, rslt->data->base,
-           ((int64_t const *)argv[0].u.data.base)[argv[0].u.data.first_elem]);
-#else
-	rc = fetch_mate_id(self, ((int64_t const *)argv[0].u.data.base)[argv[0].u.data.first_elem], row_id, rslt->data->base);
-#endif
-        if (rc == 0){
-	    if(*(int64_t*)rslt->data->base == 0) rslt->elem_count = 0;
-            else rslt->elem_count = 1;
-	}
-    }
-    return rc;
-}
-
-/* open_sub_cursor
- */
-static
-rc_t open_sub_cursor(ID_cache_t *self, const VXfactInfo *info, const VCursor *native_curs)
-{
-    rc_t rc;
-
-    rc = VCursorLinkedCursorGet(native_curs,"SEQUENCE",&self->curs);
-    if(rc != 0){
-	const VDatabase *db;
-	const VTable *tbl;
-	/* get at the parent database */
-	rc = VTableOpenParentRead ( info -> tbl, & db );
-	if(rc != 0) return rc;
-	/* open the table */
-	rc = VDatabaseOpenTableRead ( db, &tbl, "SEQUENCE" );
-	VDatabaseRelease ( db );
-	if(rc != 0) return rc;
-	/* create a cursor */
-	rc = VTableCreateCachedCursorRead(tbl, &self->curs,2UL*1024*1024*1024);
-	VTableRelease(tbl);
-	if(rc != 0) return rc;
-	rc = VCursorPermitPostOpenAdd( self->curs );
-	if(rc != 0) return rc;
-	rc = VCursorOpen( self->curs );
-	if(rc != 0) return rc;
-	rc = VCursorLinkedCursorSet(native_curs,"SEQUENCE",self->curs);
-	if(rc != 0) return rc;
-    } else {
-	    VCursorAddRef(self->curs);
-    }
-    rc = VCursorAddColumn(self->curs, &self->idx, "(I64)PRIMARY_ALIGNMENT_ID");
-    if (rc == 0) {
-	rc = KVectorMake(&self->j_cache);
-	if(rc==0) rc = KVectorMake(&self->p_cache);
-	if(rc==0) return 0;
-    }
-    VCursorRelease(self->curs);
-    return rc;
-}
-
-
-/* close_sub_cursor
- */
-static
-void CC close_sub_cursor(void *data)
-{
-    ID_cache_t *self = data;
-
-    VCursorRelease(self->curs);
-    KVectorRelease(self->j_cache);
-    KVectorRelease(self->p_cache);
-    free(self);
-}
-
-
-/*
- * extern function I64[2] NCBI:align:get_mate_id #1 (I64 spotId);
- */
-VTRANSFACT_IMPL(NCBI_align_get_mate_align_id, 1, 0, 0) (const void *Self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp)
-{
-    rc_t rc;
-    ID_cache_t *self = calloc(1, sizeof(*self));
-
-    if (self == NULL)
-        return RC(rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted);
-
-    rc = open_sub_cursor(self, info, (const VCursor*)info->parms);
-    if (rc == 0) {
-        rslt->self = self;
-        rslt->u.rf = get_mate_algn_id_drvr;
-        rslt->variant = vftIdDepRow;
-        rslt->whack = close_sub_cursor;
-    }
-    else {
-        free(self);
-    }
-
-    return rc;
-}
diff --git a/libs/axf/libaxf.vers b/libs/axf/libaxf.vers
index b0f3d96..af0b7dd 100644
--- a/libs/axf/libaxf.vers
+++ b/libs/axf/libaxf.vers
@@ -1 +1 @@
-1.0.8
+1.0.6
diff --git a/libs/axf/libaxf.vers.h b/libs/axf/libaxf.vers.h
new file mode 100644
index 0000000..22278b1
--- /dev/null
+++ b/libs/axf/libaxf.vers.h
@@ -0,0 +1 @@
+#define LIBAXF_VERS 0x01000006
diff --git a/libs/axf/libwaxf.vers b/libs/axf/libwaxf.vers
index b0f3d96..af0b7dd 100644
--- a/libs/axf/libwaxf.vers
+++ b/libs/axf/libwaxf.vers
@@ -1 +1 @@
-1.0.8
+1.0.6
diff --git a/libs/axf/libwaxf.vers.h b/libs/axf/libwaxf.vers.h
new file mode 100644
index 0000000..dfcee7a
--- /dev/null
+++ b/libs/axf/libwaxf.vers.h
@@ -0,0 +1 @@
+#define LIBWAXF_VERS 0x01000006
diff --git a/libs/axf/make-cmp-read_desc.c b/libs/axf/make-cmp-read_desc.c
deleted file mode 100644
index 67026c0..0000000
--- a/libs/axf/make-cmp-read_desc.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-#include <vdb/extern.h>
-#include <vdb/xform.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/schema.h>
-
-
-#include <klib/defs.h>
-#include <klib/rc.h>
-#include <kdb/meta.h>
-#include <klib/data-buffer.h>
-#include <insdc/insdc.h>
-#include <align/refseq-mgr.h>
-#include <bitstr.h>
-#include <sysalloc.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <insdc/sra.h>
-
-static void copy(void *dst, size_t doff, void const *src, size_t soff, size_t bits)
-{
-    if ((doff & 7) == 0 && (soff & 7) == 0 && (bits & 7) == 0)
-        memcpy(&((char *)dst)[doff >> 3], &((char const *)src)[soff >> 3], bits >> 3);
-    else
-        bitcpy(dst, doff, src, soff, bits);
-}
-
-static
-rc_t CC make_cmp_read_desc_inv_impl(void *data, const VXformInfo *info, int64_t row_id,
-    VFixedRowResult const *rslt, uint32_t argc, VRowData const argv [] )
-{
-    int64_t const *const alignId = &((int64_t const *)argv[1].u.data.base)[argv[1].u.data.first_elem];
-    void const *const ZERO = data;
-    void const *const base = argv[0].u.data.base;
-    unsigned src = argv[0].u.data.first_elem * rslt->elem_bits;
-    unsigned dst = rslt->first_elem * rslt->elem_bits;
-    unsigned i;
-    
-    for (i = 0; i != rslt->elem_count; ++i) {
-        bool const aligned = alignId[i] != 0;
-
-        copy(rslt->base, dst, !aligned ? base : ZERO, !aligned ? src : 0, rslt->elem_bits);
-
-        src += rslt->elem_bits;
-        dst += rslt->elem_bits;
-    }
-    return 0;
-}
-
-static
-rc_t CC make_cmp_read_desc_impl(void *data, const VXformInfo *info, int64_t row_id,
-    VFixedRowResult const *rslt, uint32_t argc, VRowData const argv [] )
-{
-    int64_t const *const alignId = &((int64_t const *)argv[1].u.data.base)[argv[1].u.data.first_elem];
-    void const *const ZERO = data;
-    void const *const base = argv[0].u.data.base;
-    unsigned src = argv[0].u.data.first_elem * rslt->elem_bits;
-    unsigned dst = rslt->first_elem * rslt->elem_bits;
-    unsigned i;
-    
-    for (i = 0; i != rslt->elem_count; ++i) {
-        bool const aligned = alignId[i] != 0;
-
-        copy(rslt->base, dst, aligned ? base : ZERO, aligned ? src : 0, rslt->elem_bits);
-
-        src += rslt->elem_bits;
-        dst += rslt->elem_bits;
-    }
-    return 0;
-}
-
-static
-rc_t CC make_read_start_impl(void *data, const VXformInfo *info, int64_t row_id,
-                             VFixedRowResult const *rslt, uint32_t argc, VRowData const argv [] )
-{
-    INSDC_coord_zero *const dst = &((INSDC_coord_zero *)rslt->base)[rslt->first_elem];
-    INSDC_coord_len const *const readlen = &((INSDC_coord_len const *)argv[0].u.data.base)[argv[0].u.data.first_elem];
-    INSDC_coord_zero start;
-    unsigned i;
-    
-    for (start = 0, i = 0; i != rslt->elem_count; ++i) {
-        INSDC_coord_len const rlen = readlen[i];
-
-        dst[i] = start;
-        start += rlen;
-    }
-    return 0;
-}
-
-static rc_t make_cmp_read_desc_factory(const void *Self,
-                                       const VXfactInfo *info,
-                                       VFuncDesc *rslt,
-                                       const VFactoryParams *cp,
-                                       const VFunctionParams *dp)
-{
-    rslt->self = calloc(1, (info->fdesc.desc.intrinsic_bits * info->fdesc.desc.intrinsic_bits + 7) >> 3);
-    if (rslt->self == NULL)
-        return RC(rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted);
-    rslt->whack = free;
-    rslt->u.pf = cp->argv[0].data.b[0] ? make_cmp_read_desc_inv_impl : make_cmp_read_desc_impl;
-    rslt->variant = vftFixedRow;
-    return 0;
-}
-
-/* 
- * function < type T >
- * T NCBI:align:make_cmp_read_desc #1 <bool invert>(T operand, I64 align_id);
- */
-VTRANSFACT_IMPL ( NCBI_align_make_cmp_read_desc, 1, 0, 0 )
-    ( const void *Self, const VXfactInfo *info, VFuncDesc *rslt,
-      const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    return make_cmp_read_desc_factory(Self, info, rslt, cp, dp);
-}
-
-/*
- * extern function INSDC:coord:zero NCBI:align:make_read_start #1
- *     (INSDC:coord:len read_len, I64 align_id);
- */
-VTRANSFACT_IMPL ( NCBI_align_make_read_start, 1, 0, 0 )
-    ( const void *Self, const VXfactInfo *info, VFuncDesc *rslt,
-      const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt->u.pf = make_read_start_impl;
-    rslt->variant = vftFixedRow;
-    return 0;
-}
diff --git a/libs/axf/not-my-row.c b/libs/axf/not-my-row.c
index 165b205..974bc92 100644
--- a/libs/axf/not-my-row.c
+++ b/libs/axf/not-my-row.c
@@ -54,7 +54,7 @@ rc_t CC not_my_row_impl(void *data,const VXformInfo *info, int64_t row_id, VRowR
 		int i,j;
 		dst = rslt->data->base;
 		for(i=j=0;i<len;i++){
-			if(src[i]!=row_id && src[i] > 0/**we used alignment is as 0 to indicate no alignmnent**/){
+			if(src[i]!=row_id){
 				dst[j++]=src[i];
 			}
 		}
diff --git a/libs/axf/project_read_from_sequence.c b/libs/axf/project_read_from_sequence.c
index cb2e6f2..963f445 100644
--- a/libs/axf/project_read_from_sequence.c
+++ b/libs/axf/project_read_from_sequence.c
@@ -28,7 +28,6 @@
 #include <vdb/database.h>
 #include <vdb/table.h>
 #include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
 
 
 #include <klib/defs.h>
@@ -66,7 +65,7 @@ void CC RestoreReadWhack ( void *obj )
 }
 
 static
-rc_t RestoreReadMake ( RestoreRead **objp, const VXfactInfo *info, const VFactoryParams *cp, const VCursor *native_curs )
+rc_t RestoreReadMake ( RestoreRead **objp, const VXfactInfo *info, const VFactoryParams *cp )
 {
     rc_t rc;
 
@@ -75,60 +74,59 @@ rc_t RestoreReadMake ( RestoreRead **objp, const VXfactInfo *info, const VFactor
     if ( obj == NULL ) {
         rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
     } else {
-        rc = VCursorLinkedCursorGet(native_curs,"SEQUENCE",&obj->curs);
-	if(rc != 0){
-		const VDatabase *db;
-		const VTable *tbl;
-		/* get at the parent database */
-		rc = VTableOpenParentRead ( info -> tbl, & db );
-		if(rc != 0) return rc;
-		/* open the table */
-		rc = VDatabaseOpenTableRead ( db, &tbl, "SEQUENCE" );
-		VDatabaseRelease ( db );
-		if(rc != 0) return rc;
-		/* create a cursor */
-                rc = VTableCreateCachedCursorRead(tbl, &obj->curs,2UL*1024*1024*1024);
-		VTableRelease(tbl);
-		if(rc != 0) return rc;
-		rc = VCursorPermitPostOpenAdd( obj->curs );
-                if(rc != 0) return rc;
-                rc = VCursorOpen( obj->curs );
-                if(rc != 0) return rc;
-                rc = VCursorLinkedCursorSet(native_curs,"SEQUENCE",obj->curs);
-                if(rc != 0) return rc;
-	} else {
-		VCursorAddRef(obj->curs);
-	}
-	if ( rc == 0 )
-	{
-	    /* add columns to cursor */
-	    assert ( cp -> argc == 1 );
-	    rc = VCursorAddColumn ( obj -> curs, & obj -> col_idx, "%.*s",
-		cp -> argv [ 0 ] . count, cp -> argv [ 0 ] . data . ascii );
-	    if ( rc == 0 || GetRCState(rc) == rcExists )
-		rc = VCursorAddColumn ( obj -> curs, & obj -> read_len_idx, "(INSDC:coord:len)READ_LEN" );
-	    if ( rc == 0 || GetRCState(rc) == rcExists )
-		rc = VCursorAddColumn ( obj -> curs, & obj -> read_start_idx, "(INSDC:coord:zero)READ_START");
-	    if ( rc == 0  || GetRCState(rc) == rcExists) {
-		VTypedesc src;
-		rc = VCursorDatatype ( obj -> curs, obj -> col_idx, NULL, & src );
-		if ( rc == 0 ){
-			/* selected column should have same characteristics */
-			if ( src . domain != info -> fdesc . desc . domain                 ||
-			     src . intrinsic_bits != info -> fdesc . desc . intrinsic_bits ||
-			     src . intrinsic_dim != info -> fdesc . desc. intrinsic_dim )
-			{
-			    rc = RC ( rcXF, rcFunction, rcConstructing, rcType, rcInconsistent );
-			}
-			else if ( ( src . intrinsic_bits & 7 ) != 0 )
-			    rc = RC ( rcXF, rcFunction, rcConstructing, rcType, rcUnsupported );
-			else
-			{
-			    * objp = obj;
-			    return 0;
-			}
-		}
-	    }
+        /* get at the parent database */
+        const VDatabase *db;
+        rc = VTableOpenParentRead ( info -> tbl, & db );
+        if ( rc == 0 ) {
+            /* open the primary alignment table */
+            const VTable *patbl;
+            rc = VDatabaseOpenTableRead ( db, & patbl, "SEQUENCE" );
+            VDatabaseRelease ( db );
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCachedCursorRead(patbl, &obj->curs, 4*1024*1024);
+                VTableRelease ( patbl );
+                if ( rc == 0 )
+                {
+                    /* add columns to cursor */
+                    assert ( cp -> argc == 1 );
+                    rc = VCursorAddColumn ( obj -> curs, & obj -> col_idx, "%.*s",
+                        cp -> argv [ 0 ] . count, cp -> argv [ 0 ] . data . ascii );
+                    if ( rc == 0)
+                        rc = VCursorAddColumn ( obj -> curs, & obj -> read_len_idx, "(INSDC:coord:len)READ_LEN" );
+                    if ( rc == 0)
+                        rc = VCursorAddColumn ( obj -> curs, & obj -> read_start_idx, "(INSDC:coord:zero)READ_START");
+                    if ( rc == 0 )
+                    {
+                        rc = VCursorOpen ( obj -> curs );
+                        if ( rc == 0 )
+                        {
+                            VTypedesc src;
+                            rc = VCursorDatatype ( obj -> curs, obj -> col_idx, NULL, & src );
+                            if ( rc == 0 )
+                            {
+                                /* selected column should have same characteristics */
+                                if ( src . domain != info -> fdesc . desc . domain                 ||
+                                     src . intrinsic_bits != info -> fdesc . desc . intrinsic_bits ||
+                                     src . intrinsic_dim != info -> fdesc . desc. intrinsic_dim )
+                                {
+                                    rc = RC ( rcXF, rcFunction, rcConstructing, rcType, rcInconsistent );
+                                }
+                                else if ( ( src . intrinsic_bits & 7 ) != 0 )
+                                    rc = RC ( rcXF, rcFunction, rcConstructing, rcType, rcUnsupported );
+                                else
+                                {
+                                    * objp = obj;
+                                    return 0;
+                                }
+                            }
+                        }
+                    }
+
+                    VCursorRelease ( obj -> curs );
+                }
+            }
         }
         free ( obj );
     }
@@ -162,14 +160,9 @@ rc_t CC project_from_sequence_impl ( void *data, const VXformInfo *info,
     assert(argv[1].u.data.elem_bits == 32);
     assert(argv[1].u.data.elem_count == 1);
 
-    if(spot_id[0] == 0){ /*** valid case , the projection should be empty ***/
-	rslt->elem_count =0;
-	return 0;
-    }
     assert ( read_id_in[0] > 0 );
     read_id = read_id_in[0] - 1; /** make zero - based **/
 
-
     rc = VCursorCellDataDirect(self->curs, spot_id[0], self->read_len_idx, NULL, (void const **)&read_len, NULL, &nreads);
     if (rc) return rc;
     
@@ -216,11 +209,11 @@ VTRANSFACT_IMPL ( ALIGN_project_from_sequence, 1, 0, 0 ) ( const void *Self, con
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     RestoreRead *fself;
-    rc_t rc = RestoreReadMake ( & fself, info, cp, (const VCursor*)info->parms  );
+    rc_t rc = RestoreReadMake ( & fself, info, cp );
     if(rc == 0 ) {
         rslt->self = fself;
         rslt->u.ndf = project_from_sequence_impl;
-        rslt->variant = vftRow;
+        rslt->variant = vftNonDetRow;
         rslt -> whack = RestoreReadWhack;
     }
     return rc;
diff --git a/libs/axf/ref-preserve_qual.c b/libs/axf/ref-preserve_qual.c
index b4d1e3f..44de091 100644
--- a/libs/axf/ref-preserve_qual.c
+++ b/libs/axf/ref-preserve_qual.c
@@ -320,8 +320,6 @@ rc_t CC generate_preserve_qual_impl(void *Self, VXformInfo const *info,
     rslt->data->elem_bits = rslt->elem_bits;
     rslt->elem_count = seq_len;
     rc = KDataBufferResize(rslt->data, rslt->elem_count);                       if (rc) return rc;
-    memset(rslt->data->base, 0, (seq_len * rslt->elem_bits + 7) >> 3);
-    return 0;
     
     StringInit(&refName, &((char const *)argv[0].u.data.base)[argv[0].u.data.first_elem],
                argv[0].u.data.elem_count, argv[0].u.data.elem_count);
diff --git a/libs/axf/ref-restore-read.c b/libs/axf/ref-restore-read.c
index beb4599..fbdf9ce 100644
--- a/libs/axf/ref-restore-read.c
+++ b/libs/axf/ref-restore-read.c
@@ -75,7 +75,7 @@ rc_t RestoreReadMake ( RestoreRead **objp, const VDBManager *mgr )
     if( obj == NULL ) {
 		rc = RC(rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted);
     } else {
-        if( (rc = RefSeqMgr_Make(&obj->rmgr, mgr, errefseq_4NA, 1024 * 1024 * 1024, 30)) == 0 ) {
+        if( (rc = RefSeqMgr_Make(&obj->rmgr, mgr, errefseq_4NA, 32 * 1024 * 1024, 10)) == 0 ) {
 		    *objp = obj;
         } else {
             *objp = NULL;
@@ -91,7 +91,7 @@ rc_t CC ref_restore_read_impl ( void *data, const VXformInfo *info, int64_t row_
 {
     rc_t rc;
     RestoreRead* self = data;
-    uint8_t* dst;
+    INSDC_dna_text* dst;
     uint32_t read_len     = argv[0].u.data.elem_count;
     const uint8_t *read   = argv[0].u.data.base;
     uint32_t seqid_len    = argv[1].u.data.elem_count;
@@ -155,7 +155,7 @@ VTRANSFACT_IMPL ( ALIGN_ref_restore_read, 1, 0, 0 ) ( const void *Self, const VX
     if(rc == 0 ) {
         rslt->self = fself;
         rslt->u.ndf = ref_restore_read_impl;
-        rslt->variant = vftRow;
+        rslt->variant = vftNonDetRow;
         rslt -> whack = RestoreReadWhack;
     }
     return rc;
diff --git a/libs/axf/ref-tbl-sub-select.c b/libs/axf/ref-tbl-sub-select.c
index 7719353..67920d7 100644
--- a/libs/axf/ref-tbl-sub-select.c
+++ b/libs/axf/ref-tbl-sub-select.c
@@ -37,8 +37,6 @@
 
 #include <bitstr.h>
 
-#include "ref-tbl.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -47,321 +45,232 @@
 typedef struct RefTableSubSelect RefTableSubSelect;
 struct RefTableSubSelect
 {
-    rc_t (*func)(struct RefTableSubSelect* self, int64_t ref_row_id,
-                 INSDC_coord_zero offset, INSDC_coord_len ref_len,
-                 uint32_t ref_ploidy, VRowResult* rslt);
     const VCursor *curs;
     uint32_t out_idx;
-    union {
-        struct {
-            uint32_t circular_idx;
-            uint32_t name_idx;
-            uint32_t name_range_idx;
-            uint32_t seq_len_idx;
-            uint32_t max_seq_len_idx;
-            /* set once upon 1st call */
-            /* set once per each call, if changed from previous */
-            char* name;
-            uint32_t name_len;
-            int64_t start_id;
-            int64_t stop_id;
-            bool circular;
-            INSDC_coord_len seq_len;
-            uint32_t max_seq_len;
-        } ref;
-        struct {
-            uint32_t ref_id_idx;
-            uint32_t ref_start_idx;
-            uint32_t ref_len_idx;
-            uint32_t read_start_idx;
-            uint32_t read_len_idx;
-            struct RefTableSubSelect* parent;
-        } mod;
-    } u;
+    uint32_t circular_idx;
+    uint32_t name_idx;
+    uint32_t name_range_idx;
 };
 
-/*
-  ref_ploidy != 0 means that offset here is relative to ref_row_id, so it can be
-    negative or positive and can extend between rows within same refseq
-  ref_ploidy means that offset is normal REF_START
- */
-
 static
-rc_t CC REFERENCE_TABLE_sub_select(RefTableSubSelect* self, int64_t ref_row_id,
-                             INSDC_coord_zero offset, INSDC_coord_len ref_len,
-                             uint32_t ref_ploidy, VRowResult* rslt)
+void CC RefTableSubSelectWhack ( void *obj )
 {
-    rc_t rc = 0;
-    INSDC_coord_len num_read;
-
-    if( ref_row_id < self->u.ref.start_id || ref_row_id > self->u.ref.stop_id ) {
-        /* update cached ref data if ref has changed */
-        const char* n;
-        uint32_t n_len;
-        struct {
-            int64_t start_id;
-            int64_t stop_id;
-        } *out;
-
-        if( (rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.ref.name_idx, NULL, (const void**)&n, NULL, &n_len)) == 0 &&
-            /* use i_name to find current ref rowid range */
-            (rc = VCursorParamsSet((const struct VCursorParams *)(self->curs), "QUERY_SEQ_NAME", "%.*s", n_len, n)) == 0 &&
-            (rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.ref.name_range_idx, NULL, (const void**)&out, NULL, NULL)) == 0 ) {
-
-            if( self->u.ref.name_len < n_len ) {
-                void* p = realloc(self->u.ref.name, n_len);
-                if( p == NULL ) {
-                    rc = RC(rcXF, rcFunction, rcSelecting, rcMemory, rcExhausted);
-                } else {
-                    self->u.ref.name = (char*)p;
-                }
-            }
-            if( rc == 0 ) {
-                const bool* c;
-                INSDC_coord_len* sl;
-                uint32_t* m;
-
-                memcpy(self->u.ref.name, n, n_len);
-                self->u.ref.name_len = n_len;
-                self->u.ref.start_id = out->start_id;
-                self->u.ref.stop_id = out->stop_id;
-                if( (rc = VCursorCellDataDirect(self->curs, self->u.ref.stop_id, self->u.ref.circular_idx, NULL, (const void**)&c, NULL, NULL)) == 0 &&
-                    (rc = VCursorCellDataDirect(self->curs, self->u.ref.stop_id, self->u.ref.seq_len_idx, NULL, (const void**)&sl, NULL, NULL)) == 0 &&
-                    (rc = VCursorCellDataDirect(self->curs, self->u.ref.stop_id, self->u.ref.max_seq_len_idx, NULL, (const void**)&m, NULL, NULL)) == 0 ) {
-                    
-                    self->u.ref.circular = c[0];
-                    self->u.ref.seq_len = m[0] * (self->u.ref.stop_id - self->u.ref.start_id) + sl[0];
-                    self->u.ref.max_seq_len = m[0];
-                }
-            }
-        }
-    }
-    if( rc == 0 && ref_ploidy != 0 ) {
-        /* convert offset to normal from start of ref relative to current row */
-        offset += self->u.ref.max_seq_len * (ref_row_id - self->u.ref.start_id);
-        if( self->u.ref.circular ) {
-            /* make offset positive starting from refseq actual start */
-            if( offset < 0 ) {
-                offset = self->u.ref.seq_len - ((-offset) % self->u.ref.seq_len);
-            } else {
-                offset %= self->u.ref.seq_len;
-            }
-        } else if( offset < 0 || offset >= self->u.ref.seq_len ) {
-            rc = RC(rcXF, rcFunction, rcSelecting, rcData, rcCorrupt);
-        }
-        ref_row_id = self->u.ref.start_id + offset / self->u.ref.max_seq_len;
-        offset %= self->u.ref.max_seq_len;
-    }
-    /* read the data */
-    for(num_read = 0; rc == 0 && num_read < ref_len && ref_row_id <= self->u.ref.stop_id; offset = 0) {
-            uint32_t bits;
-            const void* output;
-            uint32_t boff;
-            uint32_t row_len;
-
-            if( (rc = VCursorCellDataDirect(self->curs, ref_row_id,self->out_idx, &bits, &output, &boff, &row_len)) == 0 ) {
-                /* row_len MUST be > offset */
-                if( row_len <= offset ) {
-                    rc = RC(rcXF, rcFunction, rcSelecting, rcData, rcCorrupt);
-                } else {
-                    row_len -= offset;
-                    if(ref_len < row_len + num_read) {
-                        row_len = ref_len - num_read;
-                    }
-                    /* copy data */
-                    bitcpy(rslt->data->base, rslt->elem_count * bits, output, offset * bits + boff, row_len * bits);
-                    rslt->elem_count += row_len;
-                    num_read += row_len;
-                    if( ++ref_row_id > self->u.ref.stop_id && self->u.ref.circular ) {
-                        ref_row_id = self->u.ref.start_id;
-                    }
-                }
-            }
-    }
-    /* detect incomplete read */
-    if( rc == 0 && num_read == 0 ) {
-        rc = RC(rcXF, rcFunction, rcSelecting, rcTransfer, rcIncomplete);
+    RefTableSubSelect * self = obj;
+    if ( self != NULL )
+    {
+        VCursorRelease ( self -> curs );
+        free ( self );
     }
-    return rc;
 }
 
 static
-rc_t CC ALIGN_CMN_TABLE_sub_select(RefTableSubSelect* self, int64_t ref_row_id,
-                                   INSDC_coord_zero offset, INSDC_coord_len ref_len,
-                                   uint32_t ref_ploidy, VRowResult* rslt)
+rc_t RefTable_READ_SubSelectMake ( RefTableSubSelect **objp, const VTable *tbl )
 {
-	rc_t rc=0;
-        INSDC_coord_len num_read = 0;
-        const int64_t* al_ref_id = NULL;
-        int64_t al_ref_id_value;
-        const INSDC_coord_zero* al_ref_start = NULL;
-
-        if( offset < 0 ) {
-            if( (rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.mod.ref_id_idx, NULL, (void const **)&al_ref_id, NULL, NULL)) == 0 &&
-                (rc = VCursorCellDataDirect(self->curs, ref_row_id,self->u.mod.ref_start_idx, NULL, (void const **)&al_ref_start, NULL, NULL)) == 0 ) {
-                memcpy ( & al_ref_id_value, al_ref_id, sizeof *al_ref_id );
-                if( -offset > ref_len ) {
-                    /* requested chunk is to the left and is not using allele data */
-                    rc = RC(rcXF, rcFunction, rcSelecting, rcData, rcCorrupt);
-                } else if( (rc = self->u.mod.parent->func(self->u.mod.parent, al_ref_id_value, offset + al_ref_start[0],
-                                                          -offset, ref_ploidy, rslt)) == 0 ) {
-                    /* read left portion of underlying reference */
-                    num_read += rslt->elem_count;
-                    offset = 0;
-                }
-            }
-        }
-        if( rc == 0 && num_read < ref_len ) {
-            /* copy self */
-            void const* output;
-            uint32_t bits, boff, rs_len, rl_len;
-            const INSDC_coord_zero* rs;
-            const INSDC_coord_len* rl;
+    rc_t rc;
 
-            if( (rc = VCursorCellDataDirect(self->curs, ref_row_id, self->out_idx, &bits, &output, &boff, NULL)) == 0 &&
-                (rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.mod.read_start_idx, NULL, (void const **)&rs, NULL, &rs_len)) == 0 &&
-                (rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.mod.read_len_idx, NULL, (void const **)&rl, NULL, &rl_len)) == 0 ) {
-                assert(rs_len == rl_len);
-                assert(ref_ploidy > 0 && ref_ploidy <= rl_len);
-                if( offset > rl[ref_ploidy - 1] ) {
-                    /* requested chunk starts beyond allele */
-                    rc = RC(rcXF, rcFunction, rcSelecting, rcData, rcCorrupt);
-                } else {
-                    INSDC_coord_len left = ref_len - num_read;
-                    if( (rl[ref_ploidy - 1] - offset) < left ) {
-                        left = rl[ref_ploidy - 1] - offset;
+    /* create the object */
+    RefTableSubSelect *obj = malloc ( sizeof * obj );
+    if ( obj == NULL ) {
+        rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
+    } else {
+        /* get at the parent database */
+        const VDatabase *db;
+        rc = VTableOpenParentRead ( tbl, & db );
+        if ( rc == 0 )
+        {
+            /* open the reference table */
+            const VTable *reftbl;
+            rc = VDatabaseOpenTableRead ( db, & reftbl, "REFERENCE" );
+            VDatabaseRelease ( db );
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCachedCursorRead(reftbl, &obj->curs, 4*1024*1024);
+                VTableRelease ( reftbl );
+                if( rc == 0 ) {
+                    /* add columns to cursor */
+                    if( (rc = VCursorAddColumn(obj->curs, &obj->out_idx,  "(INSDC:4na:bin) READ")) == 0 &&
+                        (rc = VCursorAddColumn(obj->curs, &obj->name_idx, "(utf8)NAME")) == 0 &&
+                        (rc = VCursorAddColumn(obj->curs, &obj->circular_idx, "CIRCULAR")) == 0 &&
+                        (rc = VCursorAddColumn(obj->curs, &obj->name_range_idx, "NAME_RANGE")) == 0 ) {
+                        rc = VCursorOpen(obj->curs);
                     }
-                    bitcpy(rslt->data->base, rslt->elem_count * bits, output, (rs[ref_ploidy - 1] + offset) * bits + boff, left * bits);
-                    num_read += left;
-                    rslt->elem_count += left;
-                }
-            }
-        }
-        if( rc == 0 && num_read < ref_len ) {
-            const INSDC_coord_len* al_ref_len;
-            /* copy right portion of underlying reference */
-            if( al_ref_id == NULL || al_ref_start == NULL ) {
-                if( (rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.mod.ref_id_idx, NULL, (void const **)&al_ref_id, NULL, NULL)) == 0 ) {
-                     rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.mod.ref_start_idx, NULL, (void const **)&al_ref_start, NULL, NULL);
+                    if( rc == 0 ) {
+                        *objp = obj;
+                        return 0;
+                    }
+                    VCursorRelease ( obj -> curs );
                 }
             }
-            if( rc == 0 ) {
-                rc = VCursorCellDataDirect(self->curs, ref_row_id, self->u.mod.ref_len_idx, NULL, (void const **)&al_ref_len, NULL, NULL);
-            }
-            memcpy ( & al_ref_id_value, al_ref_id, sizeof *al_ref_id );
-            if( rc == 0 &&
-                (rc = self->u.mod.parent->func(self->u.mod.parent, al_ref_id_value, al_ref_start[0] + al_ref_len[0],
-                                 ref_len - num_read, ref_ploidy, rslt)) == 0 ) {
-            }
         }
-    return rc;
-}
-
-static
-void CC RefTableSubSelect_Whack ( void *obj )
-{
-    if( obj != NULL ) {
-        RefTableSubSelect* self = (RefTableSubSelect*)obj;
-        VCursorRelease(self->curs);
-        if( self->func != REFERENCE_TABLE_sub_select ) {
-            RefTableSubSelect_Whack(self->u.mod.parent);
-        } else {
-            free(self->u.ref.name);
-        }
-        free(self);
+        free ( obj );
     }
+    return rc;
 }
 
-/* normal way to do it */
-#define IS_ADDED(c, i, n) ((rc = VCursorAddColumn(c, i, n)) == 0 || \
-                           (GetRCObject(rc) == rcColumn && GetRCState(rc) == rcExists))
-
 static
-rc_t RefTableSubSelect_Make( RefTableSubSelect **objp, const VTable *tbl, const VCursor *native_curs, const char* out_col_name )
+rc_t RefTable_PRESERVE_QUAL_SubSelectMake ( RefTableSubSelect **objp, const VTable *tbl )
 {
     rc_t rc;
-
+    
     /* create the object */
-    RefTableSubSelect* obj = (RefTableSubSelect*)calloc(1, sizeof(*obj));
-    if( obj == NULL ) {
-        rc = RC(rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted);
+    RefTableSubSelect *obj = malloc ( sizeof * obj );
+    if ( obj == NULL ) {
+        rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
     } else {
-	const VTable *reftbl=NULL;
-        /* open the reference table cursor*/
-        if( (rc = AlignRefTableCursor(tbl, native_curs, &obj->curs,&reftbl)) == 0 ) {
-                /* add columns to cursor */
-                if( IS_ADDED(obj->curs, &obj->u.ref.circular_idx, "CIRCULAR") ) {
-                    /* normal REFERENCE table */
-                    if( IS_ADDED(obj->curs, &obj->u.ref.name_idx, "(utf8)NAME") &&
-                        IS_ADDED(obj->curs, &obj->u.ref.name_range_idx, "NAME_RANGE") &&
-                        IS_ADDED(obj->curs, &obj->u.ref.seq_len_idx, "SEQ_LEN") &&
-                        IS_ADDED(obj->curs, &obj->u.ref.max_seq_len_idx, "MAX_SEQ_LEN") ) {
-                        obj->func = REFERENCE_TABLE_sub_select;
-                        rc = 0;
+        /* get at the parent database */
+        const VDatabase *db;
+        rc = VTableOpenParentRead ( tbl, & db );
+        if ( rc == 0 )
+        {
+            /* open the reference table */
+            const VTable *reftbl;
+            rc = VDatabaseOpenTableRead ( db, & reftbl, "REFERENCE" );
+            VDatabaseRelease ( db );
+            if ( rc == 0 )
+            {
+                /* create a cursor */
+                rc = VTableCreateCachedCursorRead(reftbl, &obj->curs, 4*1024*1024);
+                VTableRelease ( reftbl );
+                if( rc == 0 ) {
+                    /* add columns to cursor */
+                    if( (rc = VCursorAddColumn(obj->curs, &obj->out_idx,  "(bool)PRESERVE_QUAL")) == 0 &&
+                       (rc = VCursorAddColumn(obj->curs, &obj->name_idx, "(utf8)NAME")) == 0 &&
+                       (rc = VCursorAddColumn(obj->curs, &obj->circular_idx, "CIRCULAR")) == 0 &&
+                       (rc = VCursorAddColumn(obj->curs, &obj->name_range_idx, "NAME_RANGE")) == 0 ) {
+                        rc = VCursorOpen(obj->curs);
                     }
-                } else if( GetRCObject(rc) == rcColumn && GetRCState(rc) == rcNotFound ) {
-                    /* try as align_cmn */
-                    if( (rc = RefTableSubSelect_Make(&obj->u.mod.parent, reftbl, native_curs, out_col_name)) ==0 &&
-                        IS_ADDED(obj->curs, &obj->u.mod.ref_id_idx, "REF_ID") &&
-                        IS_ADDED(obj->curs, &obj->u.mod.ref_start_idx, "REF_START") &&
-                        IS_ADDED(obj->curs, &obj->u.mod.ref_len_idx, "REF_LEN") &&
-                        IS_ADDED(obj->curs, &obj->u.mod.read_start_idx, "READ_START") &&
-                        IS_ADDED(obj->curs, &obj->u.mod.read_len_idx, "READ_LEN") ) {
-                        obj->func = ALIGN_CMN_TABLE_sub_select;
-                        rc = 0;
+                    if( rc == 0 ) {
+                        *objp = obj;
+                        return 0;
                     }
+                    VCursorRelease ( obj -> curs );
                 }
-                if( rc == 0 && IS_ADDED(obj->curs, &obj->out_idx,  out_col_name) ) {
-                    rc = 0;
-                }
-                if( rc == 0 ) {
-                    *objp = obj;
-		    VTableRelease(reftbl);
-                    return 0;
-                }
-                VCursorRelease(obj->curs);
+            }
         }
-	VTableRelease(reftbl);
-        free(obj);
+        free ( obj );
     }
     return rc;
 }
 
+static void my_copy(void *Dst, bitsz_t doff, void const *Src, bitsz_t soff, bitsz_t sz)
+{
+    if ((doff & 7) == 0 && (soff & 7) == 0 && (sz & 7) == 0) {
+        uint8_t *const dst = (uint8_t *)Dst;
+        uint8_t const *const src = (uint8_t const *)Src;
+        
+        memcpy(&dst[doff >> 3], &src[soff >> 3], sz >> 3);
+    }
+    else
+        bitcpy(Dst, doff, Src, soff, sz);
+}
+
 static
 rc_t CC reftbl_sub_select ( void *data, const VXformInfo *info,
-                           int64_t row_id, VRowResult *rslt, uint32_t argc, const VRowData argv[] )
+    int64_t row_id, VRowResult *rslt, uint32_t argc, const VRowData argv[] )
 {
     rc_t rc;
-    RefTableSubSelect* self = (RefTableSubSelect*)data;
-    const int64_t* ref_id = (const int64_t*)argv[0].u.data.base;
-    const INSDC_coord_zero* ref_start = (const INSDC_coord_zero*)argv[1].u.data.base;
-    const INSDC_coord_len* ref_len = (const INSDC_coord_len*)argv[2].u.data.base;
-    const uint32_t* ref_ploidy = NULL;
-    
-    if( argc > 3 ) {
-        ref_ploidy = (const uint32_t*)argv[3].u.data.base;
-        ref_ploidy += argv[3].u.data.first_elem;
-        assert(argv[3].u.data.elem_bits == sizeof(*ref_ploidy) * 8 );
-    }
+    const RefTableSubSelect * self = (const void*)data;
+    uint8_t *dst;
+    uint32_t num_read, row_len, ref_len;
+    INSDC_coord_zero offset;
+    int64_t ref_row_id;
+    char* name = NULL;
+    uint32_t name_len = 0;
+    const bool* circular;
+
+    /* get start and length of reference segment */
+    const int64_t* ref_id = argv[0].u.data.base;
+    const INSDC_coord_zero* ref_start = argv[1].u.data.base;
+    const INSDC_coord_len* ref_lenv  = argv[2].u.data.base;
+
     assert(argv[0].u.data.elem_bits == sizeof(*ref_id) * 8 );
     assert(argv[1].u.data.elem_bits == sizeof(*ref_start) * 8 );
-    assert(argv[2].u.data.elem_bits == sizeof(*ref_len) * 8 );
-
-    ref_id += argv[0].u.data.first_elem;
-    ref_start += argv[1].u.data.first_elem;
-    ref_len += argv[2].u.data.first_elem;
+    assert(argv[2].u.data.elem_bits == sizeof(*ref_lenv) * 8 );
 
+    ref_lenv += argv[2].u.data.first_elem;
+    ref_len = ref_lenv[0];
     /* get the memory for output row */
+    
     rslt->data->elem_bits = rslt->elem_bits;
-    if( (rc = KDataBufferResize(rslt->data, ref_len[0])) == 0 ) {
-        /* must set it to 0 here - functions above accumulate */
-        rslt->elem_count = 0;
-	if(ref_len[0] > 0){
-		int64_t ref_id_val;
-		memcpy ( & ref_id_val, ref_id, sizeof ref_id_val );
-		rc = self->func(self, ref_id_val, ref_start[0], ref_len[0], ref_ploidy ? ref_ploidy[0] : 0, rslt);
-	}
+    if((rc = KDataBufferResize ( rslt->data, ref_len )) == 0 ) {
+        dst = rslt->data->base;
+        /* starting row and offset */
+        ref_id += argv[0].u.data.first_elem;
+        ref_start += argv[1].u.data.first_elem;
+        ref_row_id = ref_id[0];
+        offset = ref_start[0];
+    }
+    /* read the sequence */
+    for( num_read = 0; rc == 0 && num_read < ref_len; offset = 0, num_read += row_len ) {
+        VCursorCloseRow(self->curs);
+        if( (rc = VCursorSetRowId(self->curs, ref_row_id)) == 0 &&
+            (rc = VCursorOpenRow(self->curs)) == 0 ) {
+            void const* output;
+            const char* name_next;
+            uint32_t name_len_next;
+            uint32_t bits;
+            uint32_t boff;
+            
+            if( (rc = VCursorCellData(self->curs, self->out_idx, &bits, &output, &boff, &row_len)) == 0 &&
+                (rc = VCursorCellData(self->curs, self->name_idx, NULL, (void const **)&name_next, NULL, &name_len_next)) == 0 ) {
+                if( name != NULL && (name_len != name_len_next || memcmp(name, name_next, name_len) != 0) ) {
+                    /* next name detected */
+                    if( *circular ) {
+                        /* use i_name to find 1st rowid */
+                        if( (rc = VCursorParamsSet((const struct VCursorParams *)(self->curs),
+                                                   "QUERY_SEQ_NAME", "%.*s", name_len, name)) == 0 ) {
+                            struct {
+                                int64_t start_id;
+                                uint64_t id_count;
+                            } *out;
+                            if( (rc = VCursorCellData(self->curs, self->name_range_idx, NULL, (const void**)&out, NULL, NULL)) == 0 ) {
+                                row_len = 0;
+                                ref_row_id = out->start_id;
+                            }
+                        }
+                        continue;
+                    } else {
+                        rc = RC(rcXF, rcFunction, rcSelecting, rcData, rcCorrupt);
+                    }
+                } else if( name == NULL ) {
+                    uint32_t l;
+                    if( (rc = VCursorCellData(self->curs, self->circular_idx, NULL,
+                                              (const void**)&circular, NULL, &l)) == 0 ) {
+                        assert(l == sizeof(*circular));
+                        name = malloc(name_len_next);
+                        if( name == NULL ) {
+                            rc = RC(rcXF, rcFunction, rcSelecting, rcMemory, rcExhausted);
+                        } else {
+                            memcpy(name, name_next, name_len_next);
+                            name_len = name_len_next;
+                        }
+                    }
+                }
+                if( rc == 0 ) {
+                    /* row_len MUST be > offset */
+                    if( row_len <= offset ) {
+                        rc = RC(rcXF, rcFunction, rcSelecting, rcData, rcCorrupt);
+                    } else {
+                        row_len -= offset;
+                        if(ref_len < row_len + num_read) {
+                            row_len = ref_len - num_read;
+                        }
+                        /* copy data */
+                        my_copy(dst, num_read * bits, output, offset * bits + boff, row_len * bits);
+
+                        ref_row_id++;
+                    }
+                }
+            }
+        }
+    }
+    /* detect incomplete read */
+    if( rc == 0 && num_read < ref_len ) {
+        rc = RC(rcXF, rcFunction, rcSelecting, rcTransfer, rcIncomplete);
     }
+    free(name);
+    rslt->elem_count = num_read;
     return rc;
 }
 
@@ -369,13 +278,13 @@ VTRANSFACT_IMPL ( ALIGN_ref_sub_select, 1, 0, 0 ) ( const void *self, const VXfa
     VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     RefTableSubSelect *fself;
-    rc_t rc = RefTableSubSelect_Make ( & fself, info -> tbl, (const VCursor*)info->parms ,"(INSDC:4na:bin)READ" );
+    rc_t rc = RefTable_READ_SubSelectMake ( & fself, info -> tbl );
     if ( rc == 0 )
     {
         rslt -> self = fself;
-        rslt -> whack = RefTableSubSelect_Whack;
+        rslt -> whack = RefTableSubSelectWhack;
         rslt -> u . ndf = reftbl_sub_select;
-        rslt -> variant = vftRow;
+        rslt -> variant = vftNonDetRow;
     }
 
     return rc;
@@ -385,13 +294,13 @@ VTRANSFACT_IMPL ( NCBI_align_ref_sub_select_preserve_qual, 1, 0, 0 ) ( const voi
                                                    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
     RefTableSubSelect *fself;
-    rc_t rc = RefTableSubSelect_Make( & fself, info -> tbl, (const VCursor*)info->parms , "(bool)PRESERVE_QUAL" );
+    rc_t rc = RefTable_PRESERVE_QUAL_SubSelectMake ( & fself, info -> tbl );
     if ( rc == 0 )
     {
         rslt -> self = fself;
-        rslt -> whack = RefTableSubSelect_Whack;
+        rslt -> whack = RefTableSubSelectWhack;
         rslt -> u . ndf = reftbl_sub_select;
-        rslt -> variant = vftRow;
+        rslt -> variant = vftNonDetRow;
     }
     
     return rc;
diff --git a/libs/axf/ref-tbl.c b/libs/axf/ref-tbl.c
deleted file mode 100644
index 57e0933..0000000
--- a/libs/axf/ref-tbl.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/vdb-priv.h>
-#include <vdb/cursor.h>
-#include <kdb/meta.h>
-#include <klib/rc.h>
-
-#include "ref-tbl.h"
-#include <string.h>
-
-rc_t AlignRefTableCursor(const VTable* table, const VCursor *native_curs, const VCursor** ref_cursor,const VTable **reftbl)
-{
-	rc_t rc = 0;
-	char ref_tbl_name[512] =  "REFERENCE";
-	const KMetadata* meta;
-	const VCursor *curs;
-
-	if( (rc = VTableOpenMetadataRead(table, &meta)) == 0 ) {
-	    const KMDataNode* node;
-            if( (rc = KMetadataOpenNodeRead(meta, &node, "CONFIG/REF_TABLE")) == 0 ) {
-                size_t sz;
-                rc = KMDataNodeReadCString(node, ref_tbl_name, sizeof(ref_tbl_name), &sz);
-                ref_tbl_name[sz] = '\0';
-                KMDataNodeRelease(node);
-            }
-            KMetadataRelease(meta);
-        }
-	rc = VCursorLinkedCursorGet(native_curs,ref_tbl_name,&curs);
-	if(rc != 0){
-		const VDatabase *db;
-                const VTable *tbl;
-                /* get at the parent database */
-                rc = VTableOpenParentRead ( table, & db );
-                if(rc != 0) return rc;
-                /* open the table */
-                rc = VDatabaseOpenTableRead ( db, &tbl, ref_tbl_name);
-                VDatabaseRelease ( db );
-                if(rc != 0) return rc;
-                /* create a cursor */
-                rc = VTableCreateCachedCursorRead(tbl, &curs,256*1024*1024);
-		if(reftbl){
-			*reftbl = tbl;
-                } else {
-			VTableRelease(tbl);
-		}
-                if(rc != 0) return rc;
-                rc = VCursorPermitPostOpenAdd( curs );
-                if(rc != 0) return rc;
-                rc = VCursorOpen( curs );
-                if(rc != 0) return rc;
-                if(native_curs)
-                    rc = VCursorLinkedCursorSet(native_curs,ref_tbl_name,curs);
-                
-                if(rc != 0) return rc;
-	} else {
-		VCursorAddRef(curs);
-	}
-	*ref_cursor = curs;
-	return 0;
-}
diff --git a/libs/axf/ref-tbl.h b/libs/axf/ref-tbl.h
deleted file mode 100644
index 24cbf80..0000000
--- a/libs/axf/ref-tbl.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_axf_ref_tbl_
-#define _h_axf_ref_tbl_
-
-/* Caller must release ref_cursor */
-rc_t AlignRefTableCursor(const VTable* table, const VCursor *native_curs, const VCursor** ref_cursor, const VTable **reftbl);
-
-#endif /* _h_axf_ref_tbl_ */
diff --git a/libs/axf/refseq-stats.c b/libs/axf/refseq-stats.c
index c77368c..8b6bf22 100644
--- a/libs/axf/refseq-stats.c
+++ b/libs/axf/refseq-stats.c
@@ -134,7 +134,7 @@ VTRANSFACT_IMPL ( NCBI_refSeq_stats, 1, 0, 0 ) ( const void *self, const VXfactI
             if( rc == 0 ) {
                 rslt->self = data;
                 rslt->whack = refseq_meta_stats_whack;
-                rslt->variant = vftRow;
+                rslt->variant = vftNonDetRow;
                 rslt->u.rf = refseq_meta_stats;
                 data->crc32 = 0;
                 CRC32Init();
diff --git a/libs/axf/seq-construct-read.c b/libs/axf/seq-construct-read.c
deleted file mode 100644
index d0fc66e..0000000
--- a/libs/axf/seq-construct-read.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-#include <vdb/extern.h>
-#include <vdb/xform.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/schema.h>
-
-
-#include <klib/defs.h>
-#include <klib/rc.h>
-#include <kdb/meta.h>
-#include <klib/data-buffer.h>
-#include <insdc/insdc.h>
-#include <align/refseq-mgr.h>
-#include <bitstr.h>
-#include <sysalloc.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <insdc/sra.h>
-
-
-static
-rc_t CC seq_construct_read ( void *data, const VXformInfo *info, int64_t row_id,
-    VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    uint8_t *dst;
-
-    /* base pointers to input data */
-    const uint8_t *aligned = argv [ 0 ] . u . data . base;
-    const INSDC_coord_len *aligned_len = argv [ 1 ] . u . data . base;
-    const uint8_t *unaligned = argv [ 2 ] . u . data . base;
-    const INSDC_coord_len *unaligned_len = argv [ 3 ] . u . data . base;
-
-    /* the number of reads */
-    uint32_t i, seqlen, aligned_seqlen, unaligned_seqlen;
-    uint32_t nreads = argv [ 1 ] . u . data . elem_count;
-
-    /* require the same dimension for both inputs */
-    if ( argv [ 1 ] . u . data . elem_count != argv [ 3 ] . u . data . elem_count )
-        return RC ( rcXF, rcFunction, rcExecuting, rcData, rcInconsistent );
-
-    /* offset base pointers to start of row */
-    aligned += argv [ 0 ] . u . data . first_elem;
-    aligned_len += argv [ 1 ] . u . data . first_elem;
-    unaligned += argv [ 2 ] . u . data . first_elem;
-    unaligned_len += argv [ 3 ] . u . data . first_elem;
-
-    /* calculate new sequence length */
-    for ( i = seqlen = 0; i < nreads; ++ i )
-        seqlen += unaligned_len [ i ] != 0 ? unaligned_len [ i ] : aligned_len [ i ];
-
-    /* set output buffer size */
-    rslt -> data -> elem_bits = 8;
-    rc = KDataBufferResize ( rslt -> data, seqlen );
-    if ( rc != 0 )
-        return rc;
-
-    /* produce final sequence */
-    for ( dst = rslt -> data -> base, i = seqlen = aligned_seqlen = unaligned_seqlen = 0; i < nreads; ++ i )
-    {
-        /* give preference to unaligned */
-        if ( unaligned_len [ i ] != 0 )
-        {
-            memcpy ( & dst [ seqlen ], & unaligned [ unaligned_seqlen ], unaligned_len [ i ] );
-            seqlen += unaligned_len [ i ];
-        }
-        else
-        {
-            memcpy ( & dst [ seqlen ], & aligned [ aligned_seqlen ], aligned_len [ i ] );
-            seqlen += aligned_len [ i ];
-        }
-
-        aligned_seqlen += aligned_len [ i ];
-        unaligned_seqlen += unaligned_len [ i ];
-    }
-
-    rslt -> elem_count = seqlen;
-
-    return 0;
-}
-
-/* 
- * function < type T >
- * T NCBI:align:seq_construct_read #1 (T     read, INSDC:coord:len     read_len,
- *                                     T cmp_read, INSDC:coord:len cmp_read_len);
- */
-VTRANSFACT_IMPL ( NCBI_align_seq_construct_read, 1, 0, 0 )
-    ( const void *Self, const VXfactInfo *info,
-      VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    if (info->fdesc.desc.intrinsic_bits * info->fdesc.desc.intrinsic_dim != 8)
-        return RC(rcAlign, rcFunction, rcConstructing, rcType, rcIncorrect);
-    rslt->u.ndf = seq_construct_read;
-    rslt->variant = vftRow;
-    return 0;
-}
diff --git a/libs/axf/seq-restore-read.c b/libs/axf/seq-restore-read.c
index 1141717..f1667c6 100644
--- a/libs/axf/seq-restore-read.c
+++ b/libs/axf/seq-restore-read.c
@@ -28,7 +28,6 @@
 #include <vdb/database.h>
 #include <vdb/table.h>
 #include <vdb/cursor.h>
-#include <vdb/schema.h>
 
 
 #include <klib/defs.h>
@@ -83,7 +82,7 @@ rc_t RestoreReadMake ( RestoreRead **objp, const VTable *tbl )
             VDatabaseRelease ( db );
             if ( rc == 0 ) {
                 /* create a cursor */
-                rc = VTableCreateCachedCursorRead(patbl, &obj->curs, 256*1024*1024UL);
+                rc = VTableCreateCachedCursorRead(patbl, &obj->curs, 4*1024*1024);
                 VTableRelease ( patbl );
                 if ( rc == 0 ) {
                     /* add columns to cursor */
@@ -110,7 +109,7 @@ static INSDC_4na_bin  map[]={
 /*3  0011 - 1100*/ 12,
 /*4  0100 - 0010*/ 2,
 /*5  0101 - 1010*/ 10,
-/*  0110 - 0110*/ 6,
+/*6  0110 - 0110*/ 6,
 /*7  0111 - 1110*/ 14,
 /*8  1000 - 0001*/ 1,
 /*9  1001 - 1001*/ 9,
@@ -137,21 +136,21 @@ rc_t CC seq_restore_read_impl ( void *data, const VXformInfo *info, int64_t row_
     const int64_t	*align_id	= argv[1].u.data.base;
     const INSDC_coord_len *read_len  	= argv[2].u.data.base;
     const uint8_t	*read_type	= argv[3].u.data.base;
-    
+
     assert(argv[0].u.data.elem_bits == 8);
     assert(argv[1].u.data.elem_bits == 64);
     assert(argv[2].u.data.elem_bits == sizeof(INSDC_coord_len)*8);
     assert(argv[2].u.data.elem_count == num_reads);
     assert(argv[3].u.data.elem_count == num_reads);
-    
-    
+
+
     src   += argv [ 0 ] . u . data . first_elem;
     align_id  += argv [ 1 ] . u . data . first_elem;
     read_len  += argv [ 2 ] . u . data . first_elem;
     read_type += argv [ 3 ] . u . data . first_elem;
-    
+
     for(i=0,len=0;i<num_reads;i++){
-        len+=read_len[i];
+	len+=read_len[i];
     }
     /* resize output row */    
     rslt->data->elem_bits = 8;
@@ -159,40 +158,46 @@ rc_t CC seq_restore_read_impl ( void *data, const VXformInfo *info, int64_t row_
     rslt->elem_count = len;
     dst = rslt->data->base;
     if ( rc == 0  && len > 0 ) {
-        if(len == src_len){ /*** shortcut - all data is local ***/
-            memcpy(dst,src,len);
-        } else for(i=0;i<num_reads && rc == 0;i++){ /*** checking read by read ***/
-            if(align_id[i] > 0) {
-                    const INSDC_4na_bin *r_src;
-                    uint32_t             r_src_len;
-                    rc = VCursorCellDataDirect ( self -> curs,  align_id[i], self -> read_idx, NULL, ( const void** ) & r_src, NULL, & r_src_len );
-                    if(rc == 0){
-                        if(r_src_len == read_len[i]){
-                            if(read_type[i]&SRA_READ_TYPE_FORWARD){
-                                memcpy(dst,r_src,read_len[i]);
-                            }else if(read_type[i]&SRA_READ_TYPE_REVERSE){
-                                int j,k;
-                                for(j=0,k=read_len[i]-1;j<read_len[i];j++,k--){
-                                    dst[j]=map[r_src[k]&15];
-                                }
-                            } else {
-                                rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent);
-                            }
-                        } else {
-                            rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent);
-                        }
-                    }
-            } else { /*** data is in READ column **/
-                if(src_len >= read_len[i]){
-                    memcpy(dst,src,read_len[i]);
-                    src_len -= read_len[i];
-                    src     += read_len[i];
-                } else {
-                    return RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent );
-                }
-            }
-            dst += read_len[i];
-        }
+	if(len == src_len){ /*** shortcut - all data is local ***/
+		memcpy(dst,src,len);
+	} else for(i=0;i<num_reads && rc == 0;i++){ /*** checking read by read ***/
+		if(align_id[i] > 0) {
+			/* set the starting row id */
+			rc = VCursorSetRowId ( self -> curs, align_id[i] );
+			if(rc==0) rc = VCursorOpenRow ( self -> curs );
+			if(rc==0){
+				const INSDC_4na_bin *r_src;
+				uint32_t             r_src_len;
+				rc = VCursorCellData ( self -> curs, self -> read_idx, NULL, ( const void** ) & r_src, NULL, & r_src_len );
+				if(rc == 0){
+					if(r_src_len == read_len[i]){
+						if(read_type[i]&SRA_READ_TYPE_FORWARD){
+							memcpy(dst,r_src,read_len[i]);
+						}else if(read_type[i]&SRA_READ_TYPE_REVERSE){
+							int j,k;
+							for(j=0,k=read_len[i]-1;j<read_len[i];j++,k--){
+								dst[j]=map[r_src[k]&15];
+							}
+						} else {
+							rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent);
+						}
+					} else {
+						rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent);
+					}
+				}
+				VCursorCloseRow ( self -> curs );			
+			}
+		} else { /*** data is in READ column **/
+			if(src_len >= read_len[i]){
+				memcpy(dst,src,read_len[i]);
+				src_len -= read_len[i];
+				src     += read_len[i];
+			} else {
+				return RC(rcXF, rcFunction, rcExecuting, rcData, rcInconsistent );
+			}
+		}
+		dst += read_len[i];
+	}
     }
     return rc;
 }
@@ -209,8 +214,9 @@ VTRANSFACT_IMPL ( ALIGN_seq_restore_read, 1, 0, 0 ) ( const void *Self, const VX
     if(rc == 0 ) {
         rslt->self = fself;
         rslt->u.ndf = seq_restore_read_impl;
-        rslt->variant = vftRow;
+        rslt->variant = vftNonDetRow;
         rslt -> whack = RestoreReadWhack;
     }
     return rc;
 }
+
diff --git a/libs/axf/template-len.c b/libs/axf/template-len.c
index 07266db..b1a3dff 100644
--- a/libs/axf/template-len.c
+++ b/libs/axf/template-len.c
@@ -42,80 +42,50 @@
 static
 rc_t CC template_len_impl(void *data,const VXformInfo *info, int64_t row_id, VRowResult *rslt, uint32_t argc, const VRowData argv [] ) 
 {
-    rc_t 	rc;
-    int32_t	*dst;
-    const INSDC_coord_zero *p1 = argv[0].u.data.base;
-    const INSDC_coord_zero *p2 = argv[1].u.data.base;
-    const INSDC_coord_len  *l1 = argv[2].u.data.base;
-    const INSDC_coord_len  *l2 = argv[3].u.data.base;
-    const char             *n1 = argv[4].u.data.base;
-    const char             *n2 = argv[5].u.data.base;
-    const INSDC_coord_one  *r1 = argv[6].u.data.base;
+	rc_t 	rc;
+	int32_t	*dst;
+	const INSDC_coord_zero *p1 = argv[0].u.data.base;
+	const INSDC_coord_zero *p2 = argv[1].u.data.base;
+	const INSDC_coord_len  *l1 = argv[2].u.data.base;
+        const INSDC_coord_len  *l2 = argv[3].u.data.base;
+        const char             *n1 = argv[4].u.data.base;
+	const char             *n2 = argv[5].u.data.base;
+	const INSDC_coord_one  *r1 = argv[6].u.data.base;
 
-    /** primary should have everything defines ***/
-    assert(argv[0].u.data.elem_count == 1);
-    assert(argv[2].u.data.elem_count == 1);
-    assert(argv[4].u.data.elem_count > 0 );
-    assert(argv[6].u.data.elem_count == 1);
+	/** primary should have everything defines ***/
+	assert(argv[0].u.data.elem_count == 1);
+	assert(argv[2].u.data.elem_count == 1);
+	assert(argv[4].u.data.elem_count > 0 );
+	assert(argv[6].u.data.elem_count == 1);
 
-    rc = KDataBufferResize(rslt->data, 1);
-    if(rc != 0) return rc;
-    rslt->elem_count=1;
-    dst = rslt->data->base;
-    dst[0] = 0;
 
-    /*** check if the mate is mapped **/
-    if(   argv[1].u.data.elem_count > 0
-        && argv[3].u.data.elem_count > 0
-        && argv[4].u.data.elem_count == argv[5].u.data.elem_count)
-    {
-        n1+=argv[4].u.data.first_elem;
-        n2+=argv[5].u.data.first_elem;
-        r1+=argv[6].u.data.first_elem;
-        
-        if(   argv[4].u.data.elem_count == argv[5].u.data.elem_count
-            && memcmp(n1,n2,argv[4].u.data.elem_count)==0) /*** same reference name ***/
-        {
-#if 1
-            unsigned const self_left  = p1[argv[0].u.data.first_elem];
-            unsigned const mate_left  = p2[argv[1].u.data.first_elem];
-            unsigned const self_right = self_left + l1[argv[2].u.data.first_elem];
-            unsigned const mate_right = mate_left + l2[argv[3].u.data.first_elem];
-            unsigned const  leftmost  = (self_left  < mate_left ) ? self_left  : mate_left;
-            unsigned const rightmost  = (self_right > mate_right) ? self_right : mate_right;
-            unsigned const tlen = rightmost - leftmost;
-            
-            /* The standard says, "The leftmost segment has a plus sign and the rightmost has a minus sign." */
-            if (   (self_left <= mate_left && self_right >= mate_right)     /* mate fully contained within self or */
-                || (mate_left <= self_left && mate_right >= self_right))    /* self fully contained within mate; */
-            {
-                if (self_left < mate_left || (r1[0] == 1 && self_left == mate_left))
-                    dst[0] = tlen;
-                else
-                    dst[0] = -tlen;
-            }
-            else if (   (self_right == mate_right && mate_left == leftmost) /* both are rightmost, but mate is leftmost */
-                     ||  self_right == rightmost)
-            {
-                dst[0] = -tlen;
-            }
-            else
-                dst[0] = tlen;
-#else
-            dst[0] = p2[argv[1].u.data.first_elem] -  p1[argv[0].u.data.first_elem];
-            if(dst[0] < 0){
-                dst[0] -= l1[argv[2].u.data.first_elem];
-            } else if (dst[0] > 0) {
-                dst[0] += l2[argv[3].u.data.first_elem];
-            } else if(r1[0]==1){/*** bam wants to give positive TLEN ***/
-                dst[0] = l1[argv[2].u.data.first_elem];
-            } else if(r1[0]==2){/*** bam wants to give negative TLEN ***/
-                dst[0] = -l2[argv[3].u.data.first_elem];
-            } 
-#endif
-        }
-    }
-    return 0;	
+	rc = KDataBufferResize(rslt->data, 1);
+	if(rc != 0) return rc;
+	rslt->elem_count=1;
+	dst = rslt->data->base;
+	dst[0]=0;
+	
+	/*** check if the mate is mapped **/
+	if(   argv[1].u.data.elem_count > 0
+           && argv[3].u.data.elem_count > 0
+	   && argv[4].u.data.elem_count == argv[5].u.data.elem_count){ 
+		n1+=argv[4].u.data.first_elem;
+		n2+=argv[5].u.data.first_elem;
+		r1+=argv[6].u.data.first_elem;
+		if(memcmp(n1,n2,argv[4].u.data.elem_count)==0){ /*** same reference name ***/
+			dst[0] = p2[argv[1].u.data.first_elem] -  p1[argv[0].u.data.first_elem];
+			if(dst[0] < 0){
+				dst[0] -= l1[argv[2].u.data.first_elem];
+			} else if (dst[0] > 0) {
+				dst[0] += l2[argv[3].u.data.first_elem];
+			} else if(r1[0]==1){/*** bam wants to give positive TLEN ***/
+				dst[0] = l1[argv[2].u.data.first_elem];
+			} else if(r1[0]==2){/*** bam wants to give negative TLEN ***/
+                                dst[0] = -l2[argv[3].u.data.first_elem];
+                        } 
+		}
+	}
+	return rc;	
 }
 
 VTRANSFACT_IMPL ( NCBI_align_template_len, 1, 0, 0 ) ( const void *self, const VXfactInfo *info, VFuncDesc *rslt,
diff --git a/libs/ext/Makefile b/libs/ext/Makefile
index faa5ee5..8d213f2 100644
--- a/libs/ext/Makefile
+++ b/libs/ext/Makefile
@@ -33,8 +33,7 @@ include $(TOP)/build/Makefile.shell
 #
 SUBDIRS = \
 	zlib \
-	bzip2 \
-	curl
+	bzip2
 
 default: $(SUBDIRS)
 
diff --git a/libs/ext/bzip2/Makefile b/libs/ext/bzip2/Makefile
index 7a0a693..7940b76 100644
--- a/libs/ext/bzip2/Makefile
+++ b/libs/ext/bzip2/Makefile
@@ -42,16 +42,16 @@ ALL_LIBS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-std: makedirs download
+std: makedirs download-$(OS)
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
 all: makedirs download
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-$(INT_LIBS): makedirs download
+$(INT_LIBS): makedirs download-$(OS)
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
 
-$(EXT_LIBS): makedirs download
+$(EXT_LIBS): makedirs download-$(OS)
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
 .PHONY: all std $(ALL_LIBS)
@@ -66,7 +66,7 @@ $(TARGDIR)/all: $(LIBDIR)/libbz2
 #-------------------------------------------------------------------------------
 # std
 #
-$(TARGDIR)/std: $(LIBDIR)/libbz2
+$(TARGDIR)/std: $(LIBDIR)/libbz2-$(OS)
 
 .PHONY: $(TARGDIR)/std
 
@@ -74,18 +74,37 @@ $(TARGDIR)/std: $(LIBDIR)/libbz2
 # clean
 #
 clean: stdclean
-	@ rm -f libbz2.vers
 
 .PHONY: clean
 
 #-------------------------------------------------------------------------------
+# libbz2-$(OS)
+#
+NORMALLY_HAVE = \
+	unix \
+	linux \
+	mac \
+	sun
+
+DONT_HAVE = \
+	win
+
+LIBBZ2_SYS_HAS_LIB = \
+	$(addprefix $(LIBDIR)/libbz2-,$(NORMALLY_HAVE))
+
+$(LIBBZ2_SYS_HAS_LIB):
+	@ true
+
+LIBBZ2_SYS_NEEDS_LIB = \
+	$(addprefix $(LIBDIR)/libbz2-,$(DONT_HAVE))
+
+$(LIBBZ2_SYS_NEEDS_LIB): $(LIBDIR)/libbz2
+
+
+#-------------------------------------------------------------------------------
 # libbz2
 #
-ifeq (win,$(OS))
 $(LIBDIR)/libbz2: $(addprefix $(LIBDIR)/libbz2.,$(LIBEXT))
-else
-$(LIBDIR)/libbz2: $(addprefix $(LIBDIR)/libbz2.,$(LIBX))
-endif
 
 LIBBZ2_SRC = \
 	blocksort \
@@ -109,52 +128,38 @@ $(LIBDIR)/libbz2.$(LIBX): $(LIBBZ2_OBJ)
 
 
 #-------------------------------------------------------------------------------
+# download-$(OS)
+#
+LIBBZ2_SYS_HAS_SRC = \
+	$(addprefix download-,$(NORMALLY_HAVE))
+
+$(LIBBZ2_SYS_HAS_SRC):
+	@ true
+
+LIBBZ2_SYS_NEEDS_SRC = \
+	$(addprefix download-,$(DONT_HAVE))
+
+$(LIBBZ2_SYS_NEEDS_SRC): download
+
+
+#-------------------------------------------------------------------------------
 # libbz2 download
 #
 BZIP2_VERS := \
 	1.0.6
 
-BZIP2_TAR = \
-	bzip2-$(BZIP2_VERS).tar
-
-BZIP2_TAR_GZ = \
-	$(BZIP2_TAR).gz
-
-ifeq (win,$(OS))
-ECHO_VERS = echo -ne $(BZIP2_VERS) "\n"
-else
-ECHO_VERS = echo $(BZIP2_VERS)
-endif
-
-ifeq (sun,$(OS))
-	BZIP2_TAR_GET = $(BZIP2_TAR)
-	TAR_CMD = tar -xf
-else
-	BZIP2_TAR_GET = $(BZIP2_TAR_GZ)
-	TAR_CMD = tar --no-same-owner -x -z -f
-endif
-
-ifeq (mac,$(OS))
-RETRIEVE = curl -O
-else
-RETRIEVE = wget
-endif
-
-$(BZIP2_TAR_GZ):
+bzip2-$(BZIP2_VERS).tar.gz:
 	@ echo downloading the sources
-	$(RETRIEVE) http://bzip.org/$(BZIP2_VERS)/bzip2-$(BZIP2_VERS).tar.gz
+	wget http://bzip.org/$(BZIP2_VERS)/bzip2-$(BZIP2_VERS).tar.gz
 	@ touch $@
 
-$(BZIP2_TAR): $(BZIP2_TAR_GZ)
-	gzcat $^ > $@
-
-libbz2.vers: $(BZIP2_TAR_GET)
+libbz2.vers: bzip2-$(BZIP2_VERS).tar.gz
 	@ echo unpacking the sources
-	$(TAR_CMD) $^
+	tar xzf $^
 	mv bzip2-$(BZIP2_VERS)/*.[ch] .
 	mv bzip2-$(BZIP2_VERS)/*.def .
-	-rm -rf bzip2-$(BZIP2_VERS)
-	@ $(ECHO_VERS) > $@
+	rm -rf bzip2-$(BZIP2_VERS)
+	@ echo $(BZIP2_VERS) > $@
 
 download: libbz2.vers
 
diff --git a/libs/ext/bzip2/blocksort.c b/libs/ext/bzip2/blocksort.c
deleted file mode 100644
index d0d662c..0000000
--- a/libs/ext/bzip2/blocksort.c
+++ /dev/null
@@ -1,1094 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Block sorting machinery                               ---*/
-/*---                                           blocksort.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-/*---------------------------------------------*/
-/*--- Fallback O(N log(N)^2) sorting        ---*/
-/*--- algorithm, for repetitive blocks      ---*/
-/*---------------------------------------------*/
-
-/*---------------------------------------------*/
-static 
-__inline__
-void fallbackSimpleSort ( UInt32* fmap, 
-                          UInt32* eclass, 
-                          Int32   lo, 
-                          Int32   hi )
-{
-   Int32 i, j, tmp;
-   UInt32 ec_tmp;
-
-   if (lo == hi) return;
-
-   if (hi - lo > 3) {
-      for ( i = hi-4; i >= lo; i-- ) {
-         tmp = fmap[i];
-         ec_tmp = eclass[tmp];
-         for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
-            fmap[j-4] = fmap[j];
-         fmap[j-4] = tmp;
-      }
-   }
-
-   for ( i = hi-1; i >= lo; i-- ) {
-      tmp = fmap[i];
-      ec_tmp = eclass[tmp];
-      for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
-         fmap[j-1] = fmap[j];
-      fmap[j-1] = tmp;
-   }
-}
-
-
-/*---------------------------------------------*/
-#define fswap(zz1, zz2) \
-   { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
-
-#define fvswap(zzp1, zzp2, zzn)       \
-{                                     \
-   Int32 yyp1 = (zzp1);               \
-   Int32 yyp2 = (zzp2);               \
-   Int32 yyn  = (zzn);                \
-   while (yyn > 0) {                  \
-      fswap(fmap[yyp1], fmap[yyp2]);  \
-      yyp1++; yyp2++; yyn--;          \
-   }                                  \
-}
-
-
-#define fmin(a,b) ((a) < (b)) ? (a) : (b)
-
-#define fpush(lz,hz) { stackLo[sp] = lz; \
-                       stackHi[sp] = hz; \
-                       sp++; }
-
-#define fpop(lz,hz) { sp--;              \
-                      lz = stackLo[sp];  \
-                      hz = stackHi[sp]; }
-
-#define FALLBACK_QSORT_SMALL_THRESH 10
-#define FALLBACK_QSORT_STACK_SIZE   100
-
-
-static
-void fallbackQSort3 ( UInt32* fmap, 
-                      UInt32* eclass,
-                      Int32   loSt, 
-                      Int32   hiSt )
-{
-   Int32 unLo, unHi, ltLo, gtHi, n, m;
-   Int32 sp, lo, hi;
-   UInt32 med, r, r3;
-   Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
-   Int32 stackHi[FALLBACK_QSORT_STACK_SIZE];
-
-   r = 0;
-
-   sp = 0;
-   fpush ( loSt, hiSt );
-
-   while (sp > 0) {
-
-      AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
-
-      fpop ( lo, hi );
-      if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
-         fallbackSimpleSort ( fmap, eclass, lo, hi );
-         continue;
-      }
-
-      /* Random partitioning.  Median of 3 sometimes fails to
-         avoid bad cases.  Median of 9 seems to help but 
-         looks rather expensive.  This too seems to work but
-         is cheaper.  Guidance for the magic constants 
-         7621 and 32768 is taken from Sedgewick's algorithms
-         book, chapter 35.
-      */
-      r = ((r * 7621) + 1) % 32768;
-      r3 = r % 3;
-      if (r3 == 0) med = eclass[fmap[lo]]; else
-      if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
-                   med = eclass[fmap[hi]];
-
-      unLo = ltLo = lo;
-      unHi = gtHi = hi;
-
-      while (1) {
-         while (1) {
-            if (unLo > unHi) break;
-            n = (Int32)eclass[fmap[unLo]] - (Int32)med;
-            if (n == 0) { 
-               fswap(fmap[unLo], fmap[ltLo]); 
-               ltLo++; unLo++; 
-               continue; 
-            };
-            if (n > 0) break;
-            unLo++;
-         }
-         while (1) {
-            if (unLo > unHi) break;
-            n = (Int32)eclass[fmap[unHi]] - (Int32)med;
-            if (n == 0) { 
-               fswap(fmap[unHi], fmap[gtHi]); 
-               gtHi--; unHi--; 
-               continue; 
-            };
-            if (n < 0) break;
-            unHi--;
-         }
-         if (unLo > unHi) break;
-         fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;
-      }
-
-      AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );
-
-      if (gtHi < ltLo) continue;
-
-      n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
-      m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
-
-      n = lo + unLo - ltLo - 1;
-      m = hi - (gtHi - unHi) + 1;
-
-      if (n - lo > hi - m) {
-         fpush ( lo, n );
-         fpush ( m, hi );
-      } else {
-         fpush ( m, hi );
-         fpush ( lo, n );
-      }
-   }
-}
-
-#undef fmin
-#undef fpush
-#undef fpop
-#undef fswap
-#undef fvswap
-#undef FALLBACK_QSORT_SMALL_THRESH
-#undef FALLBACK_QSORT_STACK_SIZE
-
-
-/*---------------------------------------------*/
-/* Pre:
-      nblock > 0
-      eclass exists for [0 .. nblock-1]
-      ((UChar*)eclass) [0 .. nblock-1] holds block
-      ptr exists for [0 .. nblock-1]
-
-   Post:
-      ((UChar*)eclass) [0 .. nblock-1] holds block
-      All other areas of eclass destroyed
-      fmap [0 .. nblock-1] holds sorted order
-      bhtab [ 0 .. 2+(nblock/32) ] destroyed
-*/
-
-#define       SET_BH(zz)  bhtab[(zz) >> 5] |= (1 << ((zz) & 31))
-#define     CLEAR_BH(zz)  bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))
-#define     ISSET_BH(zz)  (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))
-#define      WORD_BH(zz)  bhtab[(zz) >> 5]
-#define UNALIGNED_BH(zz)  ((zz) & 0x01f)
-
-static
-void fallbackSort ( UInt32* fmap, 
-                    UInt32* eclass, 
-                    UInt32* bhtab,
-                    Int32   nblock,
-                    Int32   verb )
-{
-   Int32 ftab[257];
-   Int32 ftabCopy[256];
-   Int32 H, i, j, k, l, r, cc, cc1;
-   Int32 nNotDone;
-   Int32 nBhtab;
-   UChar* eclass8 = (UChar*)eclass;
-
-   /*--
-      Initial 1-char radix sort to generate
-      initial fmap and initial BH bits.
-   --*/
-   if (verb >= 4)
-      VPrintf0 ( "        bucket sorting ...\n" );
-   for (i = 0; i < 257;    i++) ftab[i] = 0;
-   for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
-   for (i = 0; i < 256;    i++) ftabCopy[i] = ftab[i];
-   for (i = 1; i < 257;    i++) ftab[i] += ftab[i-1];
-
-   for (i = 0; i < nblock; i++) {
-      j = eclass8[i];
-      k = ftab[j] - 1;
-      ftab[j] = k;
-      fmap[k] = i;
-   }
-
-   nBhtab = 2 + (nblock / 32);
-   for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
-   for (i = 0; i < 256; i++) SET_BH(ftab[i]);
-
-   /*--
-      Inductively refine the buckets.  Kind-of an
-      "exponential radix sort" (!), inspired by the
-      Manber-Myers suffix array construction algorithm.
-   --*/
-
-   /*-- set sentinel bits for block-end detection --*/
-   for (i = 0; i < 32; i++) { 
-      SET_BH(nblock + 2*i);
-      CLEAR_BH(nblock + 2*i + 1);
-   }
-
-   /*-- the log(N) loop --*/
-   H = 1;
-   while (1) {
-
-      if (verb >= 4) 
-         VPrintf1 ( "        depth %6d has ", H );
-
-      j = 0;
-      for (i = 0; i < nblock; i++) {
-         if (ISSET_BH(i)) j = i;
-         k = fmap[i] - H; if (k < 0) k += nblock;
-         eclass[k] = j;
-      }
-
-      nNotDone = 0;
-      r = -1;
-      while (1) {
-
-	 /*-- find the next non-singleton bucket --*/
-         k = r + 1;
-         while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
-         if (ISSET_BH(k)) {
-            while (WORD_BH(k) == 0xffffffff) k += 32;
-            while (ISSET_BH(k)) k++;
-         }
-         l = k - 1;
-         if (l >= nblock) break;
-         while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
-         if (!ISSET_BH(k)) {
-            while (WORD_BH(k) == 0x00000000) k += 32;
-            while (!ISSET_BH(k)) k++;
-         }
-         r = k - 1;
-         if (r >= nblock) break;
-
-         /*-- now [l, r] bracket current bucket --*/
-         if (r > l) {
-            nNotDone += (r - l + 1);
-            fallbackQSort3 ( fmap, eclass, l, r );
-
-            /*-- scan bucket and generate header bits-- */
-            cc = -1;
-            for (i = l; i <= r; i++) {
-               cc1 = eclass[fmap[i]];
-               if (cc != cc1) { SET_BH(i); cc = cc1; };
-            }
-         }
-      }
-
-      if (verb >= 4) 
-         VPrintf1 ( "%6d unresolved strings\n", nNotDone );
-
-      H *= 2;
-      if (H > nblock || nNotDone == 0) break;
-   }
-
-   /*-- 
-      Reconstruct the original block in
-      eclass8 [0 .. nblock-1], since the
-      previous phase destroyed it.
-   --*/
-   if (verb >= 4)
-      VPrintf0 ( "        reconstructing block ...\n" );
-   j = 0;
-   for (i = 0; i < nblock; i++) {
-      while (ftabCopy[j] == 0) j++;
-      ftabCopy[j]--;
-      eclass8[fmap[i]] = (UChar)j;
-   }
-   AssertH ( j < 256, 1005 );
-}
-
-#undef       SET_BH
-#undef     CLEAR_BH
-#undef     ISSET_BH
-#undef      WORD_BH
-#undef UNALIGNED_BH
-
-
-/*---------------------------------------------*/
-/*--- The main, O(N^2 log(N)) sorting       ---*/
-/*--- algorithm.  Faster for "normal"       ---*/
-/*--- non-repetitive blocks.                ---*/
-/*---------------------------------------------*/
-
-/*---------------------------------------------*/
-static
-__inline__
-Bool mainGtU ( UInt32  i1, 
-               UInt32  i2,
-               UChar*  block, 
-               UInt16* quadrant,
-               UInt32  nblock,
-               Int32*  budget )
-{
-   Int32  k;
-   UChar  c1, c2;
-   UInt16 s1, s2;
-
-   AssertD ( i1 != i2, "mainGtU" );
-   /* 1 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 2 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 3 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 4 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 5 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 6 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 7 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 8 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 9 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 10 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 11 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-   /* 12 */
-   c1 = block[i1]; c2 = block[i2];
-   if (c1 != c2) return (c1 > c2);
-   i1++; i2++;
-
-   k = nblock + 8;
-
-   do {
-      /* 1 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-      /* 2 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-      /* 3 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-      /* 4 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-      /* 5 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-      /* 6 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-      /* 7 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-      /* 8 */
-      c1 = block[i1]; c2 = block[i2];
-      if (c1 != c2) return (c1 > c2);
-      s1 = quadrant[i1]; s2 = quadrant[i2];
-      if (s1 != s2) return (s1 > s2);
-      i1++; i2++;
-
-      if (i1 >= nblock) i1 -= nblock;
-      if (i2 >= nblock) i2 -= nblock;
-
-      k -= 8;
-      (*budget)--;
-   }
-      while (k >= 0);
-
-   return False;
-}
-
-
-/*---------------------------------------------*/
-/*--
-   Knuth's increments seem to work better
-   than Incerpi-Sedgewick here.  Possibly
-   because the number of elems to sort is
-   usually small, typically <= 20.
---*/
-static
-Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280,
-                   9841, 29524, 88573, 265720,
-                   797161, 2391484 };
-
-static
-void mainSimpleSort ( UInt32* ptr,
-                      UChar*  block,
-                      UInt16* quadrant,
-                      Int32   nblock,
-                      Int32   lo, 
-                      Int32   hi, 
-                      Int32   d,
-                      Int32*  budget )
-{
-   Int32 i, j, h, bigN, hp;
-   UInt32 v;
-
-   bigN = hi - lo + 1;
-   if (bigN < 2) return;
-
-   hp = 0;
-   while (incs[hp] < bigN) hp++;
-   hp--;
-
-   for (; hp >= 0; hp--) {
-      h = incs[hp];
-
-      i = lo + h;
-      while (True) {
-
-         /*-- copy 1 --*/
-         if (i > hi) break;
-         v = ptr[i];
-         j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
-                 ) ) {
-            ptr[j] = ptr[j-h];
-            j = j - h;
-            if (j <= (lo + h - 1)) break;
-         }
-         ptr[j] = v;
-         i++;
-
-         /*-- copy 2 --*/
-         if (i > hi) break;
-         v = ptr[i];
-         j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
-                 ) ) {
-            ptr[j] = ptr[j-h];
-            j = j - h;
-            if (j <= (lo + h - 1)) break;
-         }
-         ptr[j] = v;
-         i++;
-
-         /*-- copy 3 --*/
-         if (i > hi) break;
-         v = ptr[i];
-         j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
-                 ) ) {
-            ptr[j] = ptr[j-h];
-            j = j - h;
-            if (j <= (lo + h - 1)) break;
-         }
-         ptr[j] = v;
-         i++;
-
-         if (*budget < 0) return;
-      }
-   }
-}
-
-
-/*---------------------------------------------*/
-/*--
-   The following is an implementation of
-   an elegant 3-way quicksort for strings,
-   described in a paper "Fast Algorithms for
-   Sorting and Searching Strings", by Robert
-   Sedgewick and Jon L. Bentley.
---*/
-
-#define mswap(zz1, zz2) \
-   { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
-
-#define mvswap(zzp1, zzp2, zzn)       \
-{                                     \
-   Int32 yyp1 = (zzp1);               \
-   Int32 yyp2 = (zzp2);               \
-   Int32 yyn  = (zzn);                \
-   while (yyn > 0) {                  \
-      mswap(ptr[yyp1], ptr[yyp2]);    \
-      yyp1++; yyp2++; yyn--;          \
-   }                                  \
-}
-
-static 
-__inline__
-UChar mmed3 ( UChar a, UChar b, UChar c )
-{
-   UChar t;
-   if (a > b) { t = a; a = b; b = t; };
-   if (b > c) { 
-      b = c;
-      if (a > b) b = a;
-   }
-   return b;
-}
-
-#define mmin(a,b) ((a) < (b)) ? (a) : (b)
-
-#define mpush(lz,hz,dz) { stackLo[sp] = lz; \
-                          stackHi[sp] = hz; \
-                          stackD [sp] = dz; \
-                          sp++; }
-
-#define mpop(lz,hz,dz) { sp--;             \
-                         lz = stackLo[sp]; \
-                         hz = stackHi[sp]; \
-                         dz = stackD [sp]; }
-
-
-#define mnextsize(az) (nextHi[az]-nextLo[az])
-
-#define mnextswap(az,bz)                                        \
-   { Int32 tz;                                                  \
-     tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \
-     tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \
-     tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; }
-
-
-#define MAIN_QSORT_SMALL_THRESH 20
-#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT)
-#define MAIN_QSORT_STACK_SIZE 100
-
-static
-void mainQSort3 ( UInt32* ptr,
-                  UChar*  block,
-                  UInt16* quadrant,
-                  Int32   nblock,
-                  Int32   loSt, 
-                  Int32   hiSt, 
-                  Int32   dSt,
-                  Int32*  budget )
-{
-   Int32 unLo, unHi, ltLo, gtHi, n, m, med;
-   Int32 sp, lo, hi, d;
-
-   Int32 stackLo[MAIN_QSORT_STACK_SIZE];
-   Int32 stackHi[MAIN_QSORT_STACK_SIZE];
-   Int32 stackD [MAIN_QSORT_STACK_SIZE];
-
-   Int32 nextLo[3];
-   Int32 nextHi[3];
-   Int32 nextD [3];
-
-   sp = 0;
-   mpush ( loSt, hiSt, dSt );
-
-   while (sp > 0) {
-
-      AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
-
-      mpop ( lo, hi, d );
-      if (hi - lo < MAIN_QSORT_SMALL_THRESH || 
-          d > MAIN_QSORT_DEPTH_THRESH) {
-         mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
-         if (*budget < 0) return;
-         continue;
-      }
-
-      med = (Int32) 
-            mmed3 ( block[ptr[ lo         ]+d],
-                    block[ptr[ hi         ]+d],
-                    block[ptr[ (lo+hi)>>1 ]+d] );
-
-      unLo = ltLo = lo;
-      unHi = gtHi = hi;
-
-      while (True) {
-         while (True) {
-            if (unLo > unHi) break;
-            n = ((Int32)block[ptr[unLo]+d]) - med;
-            if (n == 0) { 
-               mswap(ptr[unLo], ptr[ltLo]); 
-               ltLo++; unLo++; continue; 
-            };
-            if (n >  0) break;
-            unLo++;
-         }
-         while (True) {
-            if (unLo > unHi) break;
-            n = ((Int32)block[ptr[unHi]+d]) - med;
-            if (n == 0) { 
-               mswap(ptr[unHi], ptr[gtHi]); 
-               gtHi--; unHi--; continue; 
-            };
-            if (n <  0) break;
-            unHi--;
-         }
-         if (unLo > unHi) break;
-         mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--;
-      }
-
-      AssertD ( unHi == unLo-1, "mainQSort3(2)" );
-
-      if (gtHi < ltLo) {
-         mpush(lo, hi, d+1 );
-         continue;
-      }
-
-      n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
-      m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
-
-      n = lo + unLo - ltLo - 1;
-      m = hi - (gtHi - unHi) + 1;
-
-      nextLo[0] = lo;  nextHi[0] = n;   nextD[0] = d;
-      nextLo[1] = m;   nextHi[1] = hi;  nextD[1] = d;
-      nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1;
-
-      if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
-      if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
-      if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
-
-      AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" );
-      AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" );
-
-      mpush (nextLo[0], nextHi[0], nextD[0]);
-      mpush (nextLo[1], nextHi[1], nextD[1]);
-      mpush (nextLo[2], nextHi[2], nextD[2]);
-   }
-}
-
-#undef mswap
-#undef mvswap
-#undef mpush
-#undef mpop
-#undef mmin
-#undef mnextsize
-#undef mnextswap
-#undef MAIN_QSORT_SMALL_THRESH
-#undef MAIN_QSORT_DEPTH_THRESH
-#undef MAIN_QSORT_STACK_SIZE
-
-
-/*---------------------------------------------*/
-/* Pre:
-      nblock > N_OVERSHOOT
-      block32 exists for [0 .. nblock-1 +N_OVERSHOOT]
-      ((UChar*)block32) [0 .. nblock-1] holds block
-      ptr exists for [0 .. nblock-1]
-
-   Post:
-      ((UChar*)block32) [0 .. nblock-1] holds block
-      All other areas of block32 destroyed
-      ftab [0 .. 65536 ] destroyed
-      ptr [0 .. nblock-1] holds sorted order
-      if (*budget < 0), sorting was abandoned
-*/
-
-#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8])
-#define SETMASK (1 << 21)
-#define CLEARMASK (~(SETMASK))
-
-static
-void mainSort ( UInt32* ptr, 
-                UChar*  block,
-                UInt16* quadrant, 
-                UInt32* ftab,
-                Int32   nblock,
-                Int32   verb,
-                Int32*  budget )
-{
-   Int32  i, j, k, ss, sb;
-   Int32  runningOrder[256];
-   Bool   bigDone[256];
-   Int32  copyStart[256];
-   Int32  copyEnd  [256];
-   UChar  c1;
-   Int32  numQSorted;
-   UInt16 s;
-   if (verb >= 4) VPrintf0 ( "        main sort initialise ...\n" );
-
-   /*-- set up the 2-byte frequency table --*/
-   for (i = 65536; i >= 0; i--) ftab[i] = 0;
-
-   j = block[0] << 8;
-   i = nblock-1;
-   for (; i >= 3; i -= 4) {
-      quadrant[i] = 0;
-      j = (j >> 8) | ( ((UInt16)block[i]) << 8);
-      ftab[j]++;
-      quadrant[i-1] = 0;
-      j = (j >> 8) | ( ((UInt16)block[i-1]) << 8);
-      ftab[j]++;
-      quadrant[i-2] = 0;
-      j = (j >> 8) | ( ((UInt16)block[i-2]) << 8);
-      ftab[j]++;
-      quadrant[i-3] = 0;
-      j = (j >> 8) | ( ((UInt16)block[i-3]) << 8);
-      ftab[j]++;
-   }
-   for (; i >= 0; i--) {
-      quadrant[i] = 0;
-      j = (j >> 8) | ( ((UInt16)block[i]) << 8);
-      ftab[j]++;
-   }
-
-   /*-- (emphasises close relationship of block & quadrant) --*/
-   for (i = 0; i < BZ_N_OVERSHOOT; i++) {
-      block   [nblock+i] = block[i];
-      quadrant[nblock+i] = 0;
-   }
-
-   if (verb >= 4) VPrintf0 ( "        bucket sorting ...\n" );
-
-   /*-- Complete the initial radix sort --*/
-   for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
-
-   s = block[0] << 8;
-   i = nblock-1;
-   for (; i >= 3; i -= 4) {
-      s = (s >> 8) | (block[i] << 8);
-      j = ftab[s] -1;
-      ftab[s] = j;
-      ptr[j] = i;
-      s = (s >> 8) | (block[i-1] << 8);
-      j = ftab[s] -1;
-      ftab[s] = j;
-      ptr[j] = i-1;
-      s = (s >> 8) | (block[i-2] << 8);
-      j = ftab[s] -1;
-      ftab[s] = j;
-      ptr[j] = i-2;
-      s = (s >> 8) | (block[i-3] << 8);
-      j = ftab[s] -1;
-      ftab[s] = j;
-      ptr[j] = i-3;
-   }
-   for (; i >= 0; i--) {
-      s = (s >> 8) | (block[i] << 8);
-      j = ftab[s] -1;
-      ftab[s] = j;
-      ptr[j] = i;
-   }
-
-   /*--
-      Now ftab contains the first loc of every small bucket.
-      Calculate the running order, from smallest to largest
-      big bucket.
-   --*/
-   for (i = 0; i <= 255; i++) {
-      bigDone     [i] = False;
-      runningOrder[i] = i;
-   }
-
-   {
-      Int32 vv;
-      Int32 h = 1;
-      do h = 3 * h + 1; while (h <= 256);
-      do {
-         h = h / 3;
-         for (i = h; i <= 255; i++) {
-            vv = runningOrder[i];
-            j = i;
-            while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
-               runningOrder[j] = runningOrder[j-h];
-               j = j - h;
-               if (j <= (h - 1)) goto zero;
-            }
-            zero:
-            runningOrder[j] = vv;
-         }
-      } while (h != 1);
-   }
-
-   /*--
-      The main sorting loop.
-   --*/
-
-   numQSorted = 0;
-
-   for (i = 0; i <= 255; i++) {
-
-      /*--
-         Process big buckets, starting with the least full.
-         Basically this is a 3-step process in which we call
-         mainQSort3 to sort the small buckets [ss, j], but
-         also make a big effort to avoid the calls if we can.
-      --*/
-      ss = runningOrder[i];
-
-      /*--
-         Step 1:
-         Complete the big bucket [ss] by quicksorting
-         any unsorted small buckets [ss, j], for j != ss.  
-         Hopefully previous pointer-scanning phases have already
-         completed many of the small buckets [ss, j], so
-         we don't have to sort them at all.
-      --*/
-      for (j = 0; j <= 255; j++) {
-         if (j != ss) {
-            sb = (ss << 8) + j;
-            if ( ! (ftab[sb] & SETMASK) ) {
-               Int32 lo = ftab[sb]   & CLEARMASK;
-               Int32 hi = (ftab[sb+1] & CLEARMASK) - 1;
-               if (hi > lo) {
-                  if (verb >= 4)
-                     VPrintf4 ( "        qsort [0x%x, 0x%x]   "
-                                "done %d   this %d\n",
-                                ss, j, numQSorted, hi - lo + 1 );
-                  mainQSort3 ( 
-                     ptr, block, quadrant, nblock, 
-                     lo, hi, BZ_N_RADIX, budget 
-                  );   
-                  numQSorted += (hi - lo + 1);
-                  if (*budget < 0) return;
-               }
-            }
-            ftab[sb] |= SETMASK;
-         }
-      }
-
-      AssertH ( !bigDone[ss], 1006 );
-
-      /*--
-         Step 2:
-         Now scan this big bucket [ss] so as to synthesise the
-         sorted order for small buckets [t, ss] for all t,
-         including, magically, the bucket [ss,ss] too.
-         This will avoid doing Real Work in subsequent Step 1's.
-      --*/
-      {
-         for (j = 0; j <= 255; j++) {
-            copyStart[j] =  ftab[(j << 8) + ss]     & CLEARMASK;
-            copyEnd  [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1;
-         }
-         for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
-            k = ptr[j]-1; if (k < 0) k += nblock;
-            c1 = block[k];
-            if (!bigDone[c1])
-               ptr[ copyStart[c1]++ ] = k;
-         }
-         for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
-            k = ptr[j]-1; if (k < 0) k += nblock;
-            c1 = block[k];
-            if (!bigDone[c1]) 
-               ptr[ copyEnd[c1]-- ] = k;
-         }
-      }
-
-      AssertH ( (copyStart[ss]-1 == copyEnd[ss])
-                || 
-                /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1.
-                   Necessity for this case is demonstrated by compressing 
-                   a sequence of approximately 48.5 million of character 
-                   251; 1.0.0/1.0.1 will then die here. */
-                (copyStart[ss] == 0 && copyEnd[ss] == nblock-1),
-                1007 )
-
-      for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
-
-      /*--
-         Step 3:
-         The [ss] big bucket is now done.  Record this fact,
-         and update the quadrant descriptors.  Remember to
-         update quadrants in the overshoot area too, if
-         necessary.  The "if (i < 255)" test merely skips
-         this updating for the last bucket processed, since
-         updating for the last bucket is pointless.
-
-         The quadrant array provides a way to incrementally
-         cache sort orderings, as they appear, so as to 
-         make subsequent comparisons in fullGtU() complete
-         faster.  For repetitive blocks this makes a big
-         difference (but not big enough to be able to avoid
-         the fallback sorting mechanism, exponential radix sort).
-
-         The precise meaning is: at all times:
-
-            for 0 <= i < nblock and 0 <= j <= nblock
-
-            if block[i] != block[j], 
-
-               then the relative values of quadrant[i] and 
-                    quadrant[j] are meaningless.
-
-               else {
-                  if quadrant[i] < quadrant[j]
-                     then the string starting at i lexicographically
-                     precedes the string starting at j
-
-                  else if quadrant[i] > quadrant[j]
-                     then the string starting at j lexicographically
-                     precedes the string starting at i
-
-                  else
-                     the relative ordering of the strings starting
-                     at i and j has not yet been determined.
-               }
-      --*/
-      bigDone[ss] = True;
-
-      if (i < 255) {
-         Int32 bbStart  = ftab[ss << 8] & CLEARMASK;
-         Int32 bbSize   = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
-         Int32 shifts   = 0;
-
-         while ((bbSize >> shifts) > 65534) shifts++;
-
-         for (j = bbSize-1; j >= 0; j--) {
-            Int32 a2update     = ptr[bbStart + j];
-            UInt16 qVal        = (UInt16)(j >> shifts);
-            quadrant[a2update] = qVal;
-            if (a2update < BZ_N_OVERSHOOT)
-               quadrant[a2update + nblock] = qVal;
-         }
-         AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
-      }
-
-   }
-
-   if (verb >= 4)
-      VPrintf3 ( "        %d pointers, %d sorted, %d scanned\n",
-                 nblock, numQSorted, nblock - numQSorted );
-}
-
-#undef BIGFREQ
-#undef SETMASK
-#undef CLEARMASK
-
-
-/*---------------------------------------------*/
-/* Pre:
-      nblock > 0
-      arr2 exists for [0 .. nblock-1 +N_OVERSHOOT]
-      ((UChar*)arr2)  [0 .. nblock-1] holds block
-      arr1 exists for [0 .. nblock-1]
-
-   Post:
-      ((UChar*)arr2) [0 .. nblock-1] holds block
-      All other areas of block destroyed
-      ftab [ 0 .. 65536 ] destroyed
-      arr1 [0 .. nblock-1] holds sorted order
-*/
-void BZ2_blockSort ( EState* s )
-{
-   UInt32* ptr    = s->ptr; 
-   UChar*  block  = s->block;
-   UInt32* ftab   = s->ftab;
-   Int32   nblock = s->nblock;
-   Int32   verb   = s->verbosity;
-   Int32   wfact  = s->workFactor;
-   UInt16* quadrant;
-   Int32   budget;
-   Int32   budgetInit;
-   Int32   i;
-
-   if (nblock < 10000) {
-      fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
-   } else {
-      /* Calculate the location for quadrant, remembering to get
-         the alignment right.  Assumes that &(block[0]) is at least
-         2-byte aligned -- this should be ok since block is really
-         the first section of arr2.
-      */
-      i = nblock+BZ_N_OVERSHOOT;
-      if (i & 1) i++;
-      quadrant = (UInt16*)(&(block[i]));
-
-      /* (wfact-1) / 3 puts the default-factor-30
-         transition point at very roughly the same place as 
-         with v0.1 and v0.9.0.  
-         Not that it particularly matters any more, since the
-         resulting compressed stream is now the same regardless
-         of whether or not we use the main sort or fallback sort.
-      */
-      if (wfact < 1  ) wfact = 1;
-      if (wfact > 100) wfact = 100;
-      budgetInit = nblock * ((wfact-1) / 3);
-      budget = budgetInit;
-
-      mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
-      if (verb >= 3) 
-         VPrintf3 ( "      %d work, %d block, ratio %5.2f\n",
-                    budgetInit - budget,
-                    nblock, 
-                    (float)(budgetInit - budget) /
-                    (float)(nblock==0 ? 1 : nblock) ); 
-      if (budget < 0) {
-         if (verb >= 2) 
-            VPrintf0 ( "    too repetitive; using fallback"
-                       " sorting algorithm\n" );
-         fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
-      }
-   }
-
-   s->origPtr = -1;
-   for (i = 0; i < s->nblock; i++)
-      if (ptr[i] == 0)
-         { s->origPtr = i; break; };
-
-   AssertH( s->origPtr != -1, 1003 );
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                       blocksort.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/bzip2-1.0.6.tar.gz b/libs/ext/bzip2/bzip2-1.0.6.tar.gz
deleted file mode 100644
index e47e903..0000000
Binary files a/libs/ext/bzip2/bzip2-1.0.6.tar.gz and /dev/null differ
diff --git a/libs/ext/bzip2/bzip2.c b/libs/ext/bzip2/bzip2.c
deleted file mode 100644
index 6de9d1d..0000000
--- a/libs/ext/bzip2/bzip2.c
+++ /dev/null
@@ -1,2034 +0,0 @@
-
-/*-----------------------------------------------------------*/
-/*--- A block-sorting, lossless compressor        bzip2.c ---*/
-/*-----------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-/* Place a 1 beside your platform, and 0 elsewhere.
-   Generic 32-bit Unix.
-   Also works on 64-bit Unix boxes.
-   This is the default.
-*/
-#define BZ_UNIX      1
-
-/*--
-  Win32, as seen by Jacob Navia's excellent
-  port of (Chris Fraser & David Hanson)'s excellent
-  lcc compiler.  Or with MS Visual C.
-  This is selected automatically if compiled by a compiler which
-  defines _WIN32, not including the Cygwin GCC.
---*/
-#define BZ_LCCWIN32  0
-
-#if defined(_WIN32) && !defined(__CYGWIN__)
-#undef  BZ_LCCWIN32
-#define BZ_LCCWIN32 1
-#undef  BZ_UNIX
-#define BZ_UNIX 0
-#endif
-
-
-/*---------------------------------------------*/
-/*--
-  Some stuff for all platforms.
---*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-#include <math.h>
-#include <errno.h>
-#include <ctype.h>
-#include "bzlib.h"
-
-#define ERROR_IF_EOF(i)       { if ((i) == EOF)  ioError(); }
-#define ERROR_IF_NOT_ZERO(i)  { if ((i) != 0)    ioError(); }
-#define ERROR_IF_MINUS_ONE(i) { if ((i) == (-1)) ioError(); }
-
-
-/*---------------------------------------------*/
-/*--
-   Platform-specific stuff.
---*/
-
-#if BZ_UNIX
-#   include <fcntl.h>
-#   include <sys/types.h>
-#   include <utime.h>
-#   include <unistd.h>
-#   include <sys/stat.h>
-#   include <sys/times.h>
-
-#   define PATH_SEP    '/'
-#   define MY_LSTAT    lstat
-#   define MY_STAT     stat
-#   define MY_S_ISREG  S_ISREG
-#   define MY_S_ISDIR  S_ISDIR
-
-#   define APPEND_FILESPEC(root, name) \
-      root=snocString((root), (name))
-
-#   define APPEND_FLAG(root, name) \
-      root=snocString((root), (name))
-
-#   define SET_BINARY_MODE(fd) /**/
-
-#   ifdef __GNUC__
-#      define NORETURN __attribute__ ((noreturn))
-#   else
-#      define NORETURN /**/
-#   endif
-
-#   ifdef __DJGPP__
-#     include <io.h>
-#     include <fcntl.h>
-#     undef MY_LSTAT
-#     undef MY_STAT
-#     define MY_LSTAT stat
-#     define MY_STAT stat
-#     undef SET_BINARY_MODE
-#     define SET_BINARY_MODE(fd)                        \
-        do {                                            \
-           int retVal = setmode ( fileno ( fd ),        \
-                                  O_BINARY );           \
-           ERROR_IF_MINUS_ONE ( retVal );               \
-        } while ( 0 )
-#   endif
-
-#   ifdef __CYGWIN__
-#     include <io.h>
-#     include <fcntl.h>
-#     undef SET_BINARY_MODE
-#     define SET_BINARY_MODE(fd)                        \
-        do {                                            \
-           int retVal = setmode ( fileno ( fd ),        \
-                                  O_BINARY );           \
-           ERROR_IF_MINUS_ONE ( retVal );               \
-        } while ( 0 )
-#   endif
-#endif /* BZ_UNIX */
-
-
-
-#if BZ_LCCWIN32
-#   include <io.h>
-#   include <fcntl.h>
-#   include <sys\stat.h>
-
-#   define NORETURN       /**/
-#   define PATH_SEP       '\\'
-#   define MY_LSTAT       _stat
-#   define MY_STAT        _stat
-#   define MY_S_ISREG(x)  ((x) & _S_IFREG)
-#   define MY_S_ISDIR(x)  ((x) & _S_IFDIR)
-
-#   define APPEND_FLAG(root, name) \
-      root=snocString((root), (name))
-
-#   define APPEND_FILESPEC(root, name)                \
-      root = snocString ((root), (name))
-
-#   define SET_BINARY_MODE(fd)                        \
-      do {                                            \
-         int retVal = setmode ( fileno ( fd ),        \
-                                O_BINARY );           \
-         ERROR_IF_MINUS_ONE ( retVal );               \
-      } while ( 0 )
-
-#endif /* BZ_LCCWIN32 */
-
-
-/*---------------------------------------------*/
-/*--
-  Some more stuff for all platforms :-)
---*/
-
-typedef char            Char;
-typedef unsigned char   Bool;
-typedef unsigned char   UChar;
-typedef int             Int32;
-typedef unsigned int    UInt32;
-typedef short           Int16;
-typedef unsigned short  UInt16;
-                                       
-#define True  ((Bool)1)
-#define False ((Bool)0)
-
-/*--
-  IntNative is your platform's `native' int size.
-  Only here to avoid probs with 64-bit platforms.
---*/
-typedef int IntNative;
-
-
-/*---------------------------------------------------*/
-/*--- Misc (file handling) data decls             ---*/
-/*---------------------------------------------------*/
-
-Int32   verbosity;
-Bool    keepInputFiles, smallMode, deleteOutputOnInterrupt;
-Bool    forceOverwrite, testFailsExist, unzFailsExist, noisy;
-Int32   numFileNames, numFilesProcessed, blockSize100k;
-Int32   exitValue;
-
-/*-- source modes; F==file, I==stdin, O==stdout --*/
-#define SM_I2O           1
-#define SM_F2O           2
-#define SM_F2F           3
-
-/*-- operation modes --*/
-#define OM_Z             1
-#define OM_UNZ           2
-#define OM_TEST          3
-
-Int32   opMode;
-Int32   srcMode;
-
-#define FILE_NAME_LEN 1034
-
-Int32   longestFileName;
-Char    inName [FILE_NAME_LEN];
-Char    outName[FILE_NAME_LEN];
-Char    tmpName[FILE_NAME_LEN];
-Char    *progName;
-Char    progNameReally[FILE_NAME_LEN];
-FILE    *outputHandleJustInCase;
-Int32   workFactor;
-
-static void    panic                 ( const Char* ) NORETURN;
-static void    ioError               ( void )        NORETURN;
-static void    outOfMemory           ( void )        NORETURN;
-static void    configError           ( void )        NORETURN;
-static void    crcError              ( void )        NORETURN;
-static void    cleanUpAndFail        ( Int32 )       NORETURN;
-static void    compressedStreamEOF   ( void )        NORETURN;
-
-static void    copyFileName ( Char*, Char* );
-static void*   myMalloc     ( Int32 );
-static void    applySavedFileAttrToOutputFile ( IntNative fd );
-
-
-
-/*---------------------------------------------------*/
-/*--- An implementation of 64-bit ints.  Sigh.    ---*/
-/*--- Roll on widespread deployment of ANSI C9X ! ---*/
-/*---------------------------------------------------*/
-
-typedef
-   struct { UChar b[8]; } 
-   UInt64;
-
-
-static
-void uInt64_from_UInt32s ( UInt64* n, UInt32 lo32, UInt32 hi32 )
-{
-   n->b[7] = (UChar)((hi32 >> 24) & 0xFF);
-   n->b[6] = (UChar)((hi32 >> 16) & 0xFF);
-   n->b[5] = (UChar)((hi32 >> 8)  & 0xFF);
-   n->b[4] = (UChar) (hi32        & 0xFF);
-   n->b[3] = (UChar)((lo32 >> 24) & 0xFF);
-   n->b[2] = (UChar)((lo32 >> 16) & 0xFF);
-   n->b[1] = (UChar)((lo32 >> 8)  & 0xFF);
-   n->b[0] = (UChar) (lo32        & 0xFF);
-}
-
-
-static
-double uInt64_to_double ( UInt64* n )
-{
-   Int32  i;
-   double base = 1.0;
-   double sum  = 0.0;
-   for (i = 0; i < 8; i++) {
-      sum  += base * (double)(n->b[i]);
-      base *= 256.0;
-   }
-   return sum;
-}
-
-
-static
-Bool uInt64_isZero ( UInt64* n )
-{
-   Int32 i;
-   for (i = 0; i < 8; i++)
-      if (n->b[i] != 0) return 0;
-   return 1;
-}
-
-
-/* Divide *n by 10, and return the remainder.  */
-static 
-Int32 uInt64_qrm10 ( UInt64* n )
-{
-   UInt32 rem, tmp;
-   Int32  i;
-   rem = 0;
-   for (i = 7; i >= 0; i--) {
-      tmp = rem * 256 + n->b[i];
-      n->b[i] = tmp / 10;
-      rem = tmp % 10;
-   }
-   return rem;
-}
-
-
-/* ... and the Whole Entire Point of all this UInt64 stuff is
-   so that we can supply the following function.
-*/
-static
-void uInt64_toAscii ( char* outbuf, UInt64* n )
-{
-   Int32  i, q;
-   UChar  buf[32];
-   Int32  nBuf   = 0;
-   UInt64 n_copy = *n;
-   do {
-      q = uInt64_qrm10 ( &n_copy );
-      buf[nBuf] = q + '0';
-      nBuf++;
-   } while (!uInt64_isZero(&n_copy));
-   outbuf[nBuf] = 0;
-   for (i = 0; i < nBuf; i++) 
-      outbuf[i] = buf[nBuf-i-1];
-}
-
-
-/*---------------------------------------------------*/
-/*--- Processing of complete files and streams    ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------*/
-static 
-Bool myfeof ( FILE* f )
-{
-   Int32 c = fgetc ( f );
-   if (c == EOF) return True;
-   ungetc ( c, f );
-   return False;
-}
-
-
-/*---------------------------------------------*/
-static 
-void compressStream ( FILE *stream, FILE *zStream )
-{
-   BZFILE* bzf = NULL;
-   UChar   ibuf[5000];
-   Int32   nIbuf;
-   UInt32  nbytes_in_lo32, nbytes_in_hi32;
-   UInt32  nbytes_out_lo32, nbytes_out_hi32;
-   Int32   bzerr, bzerr_dummy, ret;
-
-   SET_BINARY_MODE(stream);
-   SET_BINARY_MODE(zStream);
-
-   if (ferror(stream)) goto errhandler_io;
-   if (ferror(zStream)) goto errhandler_io;
-
-   bzf = BZ2_bzWriteOpen ( &bzerr, zStream, 
-                           blockSize100k, verbosity, workFactor );   
-   if (bzerr != BZ_OK) goto errhandler;
-
-   if (verbosity >= 2) fprintf ( stderr, "\n" );
-
-   while (True) {
-
-      if (myfeof(stream)) break;
-      nIbuf = fread ( ibuf, sizeof(UChar), 5000, stream );
-      if (ferror(stream)) goto errhandler_io;
-      if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf );
-      if (bzerr != BZ_OK) goto errhandler;
-
-   }
-
-   BZ2_bzWriteClose64 ( &bzerr, bzf, 0, 
-                        &nbytes_in_lo32, &nbytes_in_hi32,
-                        &nbytes_out_lo32, &nbytes_out_hi32 );
-   if (bzerr != BZ_OK) goto errhandler;
-
-   if (ferror(zStream)) goto errhandler_io;
-   ret = fflush ( zStream );
-   if (ret == EOF) goto errhandler_io;
-   if (zStream != stdout) {
-      Int32 fd = fileno ( zStream );
-      if (fd < 0) goto errhandler_io;
-      applySavedFileAttrToOutputFile ( fd );
-      ret = fclose ( zStream );
-      outputHandleJustInCase = NULL;
-      if (ret == EOF) goto errhandler_io;
-   }
-   outputHandleJustInCase = NULL;
-   if (ferror(stream)) goto errhandler_io;
-   ret = fclose ( stream );
-   if (ret == EOF) goto errhandler_io;
-
-   if (verbosity >= 1) {
-      if (nbytes_in_lo32 == 0 && nbytes_in_hi32 == 0) {
-	 fprintf ( stderr, " no data compressed.\n");
-      } else {
-	 Char   buf_nin[32], buf_nout[32];
-	 UInt64 nbytes_in,   nbytes_out;
-	 double nbytes_in_d, nbytes_out_d;
-	 uInt64_from_UInt32s ( &nbytes_in, 
-			       nbytes_in_lo32, nbytes_in_hi32 );
-	 uInt64_from_UInt32s ( &nbytes_out, 
-			       nbytes_out_lo32, nbytes_out_hi32 );
-	 nbytes_in_d  = uInt64_to_double ( &nbytes_in );
-	 nbytes_out_d = uInt64_to_double ( &nbytes_out );
-	 uInt64_toAscii ( buf_nin, &nbytes_in );
-	 uInt64_toAscii ( buf_nout, &nbytes_out );
-	 fprintf ( stderr, "%6.3f:1, %6.3f bits/byte, "
-		   "%5.2f%% saved, %s in, %s out.\n",
-		   nbytes_in_d / nbytes_out_d,
-		   (8.0 * nbytes_out_d) / nbytes_in_d,
-		   100.0 * (1.0 - nbytes_out_d / nbytes_in_d),
-		   buf_nin,
-		   buf_nout
-		 );
-      }
-   }
-
-   return;
-
-   errhandler:
-   BZ2_bzWriteClose64 ( &bzerr_dummy, bzf, 1, 
-                        &nbytes_in_lo32, &nbytes_in_hi32,
-                        &nbytes_out_lo32, &nbytes_out_hi32 );
-   switch (bzerr) {
-      case BZ_CONFIG_ERROR:
-         configError(); break;
-      case BZ_MEM_ERROR:
-         outOfMemory (); break;
-      case BZ_IO_ERROR:
-         errhandler_io:
-         ioError(); break;
-      default:
-         panic ( "compress:unexpected error" );
-   }
-
-   panic ( "compress:end" );
-   /*notreached*/
-}
-
-
-
-/*---------------------------------------------*/
-static 
-Bool uncompressStream ( FILE *zStream, FILE *stream )
-{
-   BZFILE* bzf = NULL;
-   Int32   bzerr, bzerr_dummy, ret, nread, streamNo, i;
-   UChar   obuf[5000];
-   UChar   unused[BZ_MAX_UNUSED];
-   Int32   nUnused;
-   void*   unusedTmpV;
-   UChar*  unusedTmp;
-
-   nUnused = 0;
-   streamNo = 0;
-
-   SET_BINARY_MODE(stream);
-   SET_BINARY_MODE(zStream);
-
-   if (ferror(stream)) goto errhandler_io;
-   if (ferror(zStream)) goto errhandler_io;
-
-   while (True) {
-
-      bzf = BZ2_bzReadOpen ( 
-               &bzerr, zStream, verbosity, 
-               (int)smallMode, unused, nUnused
-            );
-      if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
-      streamNo++;
-
-      while (bzerr == BZ_OK) {
-         nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
-         if (bzerr == BZ_DATA_ERROR_MAGIC) goto trycat;
-         if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0)
-            fwrite ( obuf, sizeof(UChar), nread, stream );
-         if (ferror(stream)) goto errhandler_io;
-      }
-      if (bzerr != BZ_STREAM_END) goto errhandler;
-
-      BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
-      if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
-
-      unusedTmp = (UChar*)unusedTmpV;
-      for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
-
-      BZ2_bzReadClose ( &bzerr, bzf );
-      if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
-
-      if (nUnused == 0 && myfeof(zStream)) break;
-   }
-
-   closeok:
-   if (ferror(zStream)) goto errhandler_io;
-   if (stream != stdout) {
-      Int32 fd = fileno ( stream );
-      if (fd < 0) goto errhandler_io;
-      applySavedFileAttrToOutputFile ( fd );
-   }
-   ret = fclose ( zStream );
-   if (ret == EOF) goto errhandler_io;
-
-   if (ferror(stream)) goto errhandler_io;
-   ret = fflush ( stream );
-   if (ret != 0) goto errhandler_io;
-   if (stream != stdout) {
-      ret = fclose ( stream );
-      outputHandleJustInCase = NULL;
-      if (ret == EOF) goto errhandler_io;
-   }
-   outputHandleJustInCase = NULL;
-   if (verbosity >= 2) fprintf ( stderr, "\n    " );
-   return True;
-
-   trycat: 
-   if (forceOverwrite) {
-      rewind(zStream);
-      while (True) {
-      	 if (myfeof(zStream)) break;
-      	 nread = fread ( obuf, sizeof(UChar), 5000, zStream );
-      	 if (ferror(zStream)) goto errhandler_io;
-      	 if (nread > 0) fwrite ( obuf, sizeof(UChar), nread, stream );
-      	 if (ferror(stream)) goto errhandler_io;
-      }
-      goto closeok;
-   }
-  
-   errhandler:
-   BZ2_bzReadClose ( &bzerr_dummy, bzf );
-   switch (bzerr) {
-      case BZ_CONFIG_ERROR:
-         configError(); break;
-      case BZ_IO_ERROR:
-         errhandler_io:
-         ioError(); break;
-      case BZ_DATA_ERROR:
-         crcError();
-      case BZ_MEM_ERROR:
-         outOfMemory();
-      case BZ_UNEXPECTED_EOF:
-         compressedStreamEOF();
-      case BZ_DATA_ERROR_MAGIC:
-         if (zStream != stdin) fclose(zStream);
-         if (stream != stdout) fclose(stream);
-         if (streamNo == 1) {
-            return False;
-         } else {
-            if (noisy)
-            fprintf ( stderr, 
-                      "\n%s: %s: trailing garbage after EOF ignored\n",
-                      progName, inName );
-            return True;       
-         }
-      default:
-         panic ( "decompress:unexpected error" );
-   }
-
-   panic ( "decompress:end" );
-   return True; /*notreached*/
-}
-
-
-/*---------------------------------------------*/
-static 
-Bool testStream ( FILE *zStream )
-{
-   BZFILE* bzf = NULL;
-   Int32   bzerr, bzerr_dummy, ret, nread, streamNo, i;
-   UChar   obuf[5000];
-   UChar   unused[BZ_MAX_UNUSED];
-   Int32   nUnused;
-   void*   unusedTmpV;
-   UChar*  unusedTmp;
-
-   nUnused = 0;
-   streamNo = 0;
-
-   SET_BINARY_MODE(zStream);
-   if (ferror(zStream)) goto errhandler_io;
-
-   while (True) {
-
-      bzf = BZ2_bzReadOpen ( 
-               &bzerr, zStream, verbosity, 
-               (int)smallMode, unused, nUnused
-            );
-      if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
-      streamNo++;
-
-      while (bzerr == BZ_OK) {
-         nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
-         if (bzerr == BZ_DATA_ERROR_MAGIC) goto errhandler;
-      }
-      if (bzerr != BZ_STREAM_END) goto errhandler;
-
-      BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
-      if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
-
-      unusedTmp = (UChar*)unusedTmpV;
-      for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
-
-      BZ2_bzReadClose ( &bzerr, bzf );
-      if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
-      if (nUnused == 0 && myfeof(zStream)) break;
-
-   }
-
-   if (ferror(zStream)) goto errhandler_io;
-   ret = fclose ( zStream );
-   if (ret == EOF) goto errhandler_io;
-
-   if (verbosity >= 2) fprintf ( stderr, "\n    " );
-   return True;
-
-   errhandler:
-   BZ2_bzReadClose ( &bzerr_dummy, bzf );
-   if (verbosity == 0) 
-      fprintf ( stderr, "%s: %s: ", progName, inName );
-   switch (bzerr) {
-      case BZ_CONFIG_ERROR:
-         configError(); break;
-      case BZ_IO_ERROR:
-         errhandler_io:
-         ioError(); break;
-      case BZ_DATA_ERROR:
-         fprintf ( stderr,
-                   "data integrity (CRC) error in data\n" );
-         return False;
-      case BZ_MEM_ERROR:
-         outOfMemory();
-      case BZ_UNEXPECTED_EOF:
-         fprintf ( stderr,
-                   "file ends unexpectedly\n" );
-         return False;
-      case BZ_DATA_ERROR_MAGIC:
-         if (zStream != stdin) fclose(zStream);
-         if (streamNo == 1) {
-          fprintf ( stderr, 
-                    "bad magic number (file not created by bzip2)\n" );
-            return False;
-         } else {
-            if (noisy)
-            fprintf ( stderr, 
-                      "trailing garbage after EOF ignored\n" );
-            return True;       
-         }
-      default:
-         panic ( "test:unexpected error" );
-   }
-
-   panic ( "test:end" );
-   return True; /*notreached*/
-}
-
-
-/*---------------------------------------------------*/
-/*--- Error [non-] handling grunge                ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------*/
-static
-void setExit ( Int32 v )
-{
-   if (v > exitValue) exitValue = v;
-}
-
-
-/*---------------------------------------------*/
-static 
-void cadvise ( void )
-{
-   if (noisy)
-   fprintf (
-      stderr,
-      "\nIt is possible that the compressed file(s) have become corrupted.\n"
-        "You can use the -tvv option to test integrity of such files.\n\n"
-        "You can use the `bzip2recover' program to attempt to recover\n"
-        "data from undamaged sections of corrupted files.\n\n"
-    );
-}
-
-
-/*---------------------------------------------*/
-static 
-void showFileNames ( void )
-{
-   if (noisy)
-   fprintf (
-      stderr,
-      "\tInput file = %s, output file = %s\n",
-      inName, outName 
-   );
-}
-
-
-/*---------------------------------------------*/
-static 
-void cleanUpAndFail ( Int32 ec )
-{
-   IntNative      retVal;
-   struct MY_STAT statBuf;
-
-   if ( srcMode == SM_F2F 
-        && opMode != OM_TEST
-        && deleteOutputOnInterrupt ) {
-
-      /* Check whether input file still exists.  Delete output file
-         only if input exists to avoid loss of data.  Joerg Prante, 5
-         January 2002.  (JRS 06-Jan-2002: other changes in 1.0.2 mean
-         this is less likely to happen.  But to be ultra-paranoid, we
-         do the check anyway.)  */
-      retVal = MY_STAT ( inName, &statBuf );
-      if (retVal == 0) {
-         if (noisy)
-            fprintf ( stderr, 
-                      "%s: Deleting output file %s, if it exists.\n",
-                      progName, outName );
-         if (outputHandleJustInCase != NULL)
-            fclose ( outputHandleJustInCase );
-         retVal = remove ( outName );
-         if (retVal != 0)
-            fprintf ( stderr,
-                      "%s: WARNING: deletion of output file "
-                      "(apparently) failed.\n",
-                      progName );
-      } else {
-         fprintf ( stderr,
-                   "%s: WARNING: deletion of output file suppressed\n",
-                    progName );
-         fprintf ( stderr,
-                   "%s:    since input file no longer exists.  Output file\n",
-                   progName );
-         fprintf ( stderr,
-                   "%s:    `%s' may be incomplete.\n",
-                   progName, outName );
-         fprintf ( stderr, 
-                   "%s:    I suggest doing an integrity test (bzip2 -tv)"
-                   " of it.\n",
-                   progName );
-      }
-   }
-
-   if (noisy && numFileNames > 0 && numFilesProcessed < numFileNames) {
-      fprintf ( stderr, 
-                "%s: WARNING: some files have not been processed:\n"
-                "%s:    %d specified on command line, %d not processed yet.\n\n",
-                progName, progName,
-                numFileNames, numFileNames - numFilesProcessed );
-   }
-   setExit(ec);
-   exit(exitValue);
-}
-
-
-/*---------------------------------------------*/
-static 
-void panic ( const Char* s )
-{
-   fprintf ( stderr,
-             "\n%s: PANIC -- internal consistency error:\n"
-             "\t%s\n"
-             "\tThis is a BUG.  Please report it to me at:\n"
-             "\tjseward at bzip.org\n",
-             progName, s );
-   showFileNames();
-   cleanUpAndFail( 3 );
-}
-
-
-/*---------------------------------------------*/
-static 
-void crcError ( void )
-{
-   fprintf ( stderr,
-             "\n%s: Data integrity error when decompressing.\n",
-             progName );
-   showFileNames();
-   cadvise();
-   cleanUpAndFail( 2 );
-}
-
-
-/*---------------------------------------------*/
-static 
-void compressedStreamEOF ( void )
-{
-  if (noisy) {
-    fprintf ( stderr,
-	      "\n%s: Compressed file ends unexpectedly;\n\t"
-	      "perhaps it is corrupted?  *Possible* reason follows.\n",
-	      progName );
-    perror ( progName );
-    showFileNames();
-    cadvise();
-  }
-  cleanUpAndFail( 2 );
-}
-
-
-/*---------------------------------------------*/
-static 
-void ioError ( void )
-{
-   fprintf ( stderr,
-             "\n%s: I/O or other error, bailing out.  "
-             "Possible reason follows.\n",
-             progName );
-   perror ( progName );
-   showFileNames();
-   cleanUpAndFail( 1 );
-}
-
-
-/*---------------------------------------------*/
-static 
-void mySignalCatcher ( IntNative n )
-{
-   fprintf ( stderr,
-             "\n%s: Control-C or similar caught, quitting.\n",
-             progName );
-   cleanUpAndFail(1);
-}
-
-
-/*---------------------------------------------*/
-static 
-void mySIGSEGVorSIGBUScatcher ( IntNative n )
-{
-   if (opMode == OM_Z)
-      fprintf ( 
-      stderr,
-      "\n%s: Caught a SIGSEGV or SIGBUS whilst compressing.\n"
-      "\n"
-      "   Possible causes are (most likely first):\n"
-      "   (1) This computer has unreliable memory or cache hardware\n"
-      "       (a surprisingly common problem; try a different machine.)\n"
-      "   (2) A bug in the compiler used to create this executable\n"
-      "       (unlikely, if you didn't compile bzip2 yourself.)\n"
-      "   (3) A real bug in bzip2 -- I hope this should never be the case.\n"
-      "   The user's manual, Section 4.3, has more info on (1) and (2).\n"
-      "   \n"
-      "   If you suspect this is a bug in bzip2, or are unsure about (1)\n"
-      "   or (2), feel free to report it to me at: jseward at bzip.org.\n"
-      "   Section 4.3 of the user's manual describes the info a useful\n"
-      "   bug report should have.  If the manual is available on your\n"
-      "   system, please try and read it before mailing me.  If you don't\n"
-      "   have the manual or can't be bothered to read it, mail me anyway.\n"
-      "\n",
-      progName );
-      else
-      fprintf ( 
-      stderr,
-      "\n%s: Caught a SIGSEGV or SIGBUS whilst decompressing.\n"
-      "\n"
-      "   Possible causes are (most likely first):\n"
-      "   (1) The compressed data is corrupted, and bzip2's usual checks\n"
-      "       failed to detect this.  Try bzip2 -tvv my_file.bz2.\n"
-      "   (2) This computer has unreliable memory or cache hardware\n"
-      "       (a surprisingly common problem; try a different machine.)\n"
-      "   (3) A bug in the compiler used to create this executable\n"
-      "       (unlikely, if you didn't compile bzip2 yourself.)\n"
-      "   (4) A real bug in bzip2 -- I hope this should never be the case.\n"
-      "   The user's manual, Section 4.3, has more info on (2) and (3).\n"
-      "   \n"
-      "   If you suspect this is a bug in bzip2, or are unsure about (2)\n"
-      "   or (3), feel free to report it to me at: jseward at bzip.org.\n"
-      "   Section 4.3 of the user's manual describes the info a useful\n"
-      "   bug report should have.  If the manual is available on your\n"
-      "   system, please try and read it before mailing me.  If you don't\n"
-      "   have the manual or can't be bothered to read it, mail me anyway.\n"
-      "\n",
-      progName );
-
-   showFileNames();
-   if (opMode == OM_Z)
-      cleanUpAndFail( 3 ); else
-      { cadvise(); cleanUpAndFail( 2 ); }
-}
-
-
-/*---------------------------------------------*/
-static 
-void outOfMemory ( void )
-{
-   fprintf ( stderr,
-             "\n%s: couldn't allocate enough memory\n",
-             progName );
-   showFileNames();
-   cleanUpAndFail(1);
-}
-
-
-/*---------------------------------------------*/
-static 
-void configError ( void )
-{
-   fprintf ( stderr,
-             "bzip2: I'm not configured correctly for this platform!\n"
-             "\tI require Int32, Int16 and Char to have sizes\n"
-             "\tof 4, 2 and 1 bytes to run properly, and they don't.\n"
-             "\tProbably you can fix this by defining them correctly,\n"
-             "\tand recompiling.  Bye!\n" );
-   setExit(3);
-   exit(exitValue);
-}
-
-
-/*---------------------------------------------------*/
-/*--- The main driver machinery                   ---*/
-/*---------------------------------------------------*/
-
-/* All rather crufty.  The main problem is that input files
-   are stat()d multiple times before use.  This should be
-   cleaned up. 
-*/
-
-/*---------------------------------------------*/
-static 
-void pad ( Char *s )
-{
-   Int32 i;
-   if ( (Int32)strlen(s) >= longestFileName ) return;
-   for (i = 1; i <= longestFileName - (Int32)strlen(s); i++)
-      fprintf ( stderr, " " );
-}
-
-
-/*---------------------------------------------*/
-static 
-void copyFileName ( Char* to, Char* from ) 
-{
-   if ( strlen(from) > FILE_NAME_LEN-10 )  {
-      fprintf (
-         stderr,
-         "bzip2: file name\n`%s'\n"
-         "is suspiciously (more than %d chars) long.\n"
-         "Try using a reasonable file name instead.  Sorry! :-)\n",
-         from, FILE_NAME_LEN-10
-      );
-      setExit(1);
-      exit(exitValue);
-   }
-
-  strncpy(to,from,FILE_NAME_LEN-10);
-  to[FILE_NAME_LEN-10]='\0';
-}
-
-
-/*---------------------------------------------*/
-static 
-Bool fileExists ( Char* name )
-{
-   FILE *tmp   = fopen ( name, "rb" );
-   Bool exists = (tmp != NULL);
-   if (tmp != NULL) fclose ( tmp );
-   return exists;
-}
-
-
-/*---------------------------------------------*/
-/* Open an output file safely with O_EXCL and good permissions.
-   This avoids a race condition in versions < 1.0.2, in which
-   the file was first opened and then had its interim permissions
-   set safely.  We instead use open() to create the file with
-   the interim permissions required. (--- --- rw-).
-
-   For non-Unix platforms, if we are not worrying about
-   security issues, simple this simply behaves like fopen.
-*/
-static
-FILE* fopen_output_safely ( Char* name, const char* mode )
-{
-#  if BZ_UNIX
-   FILE*     fp;
-   IntNative fh;
-   fh = open(name, O_WRONLY|O_CREAT|O_EXCL, S_IWUSR|S_IRUSR);
-   if (fh == -1) return NULL;
-   fp = fdopen(fh, mode);
-   if (fp == NULL) close(fh);
-   return fp;
-#  else
-   return fopen(name, mode);
-#  endif
-}
-
-
-/*---------------------------------------------*/
-/*--
-  if in doubt, return True
---*/
-static 
-Bool notAStandardFile ( Char* name )
-{
-   IntNative      i;
-   struct MY_STAT statBuf;
-
-   i = MY_LSTAT ( name, &statBuf );
-   if (i != 0) return True;
-   if (MY_S_ISREG(statBuf.st_mode)) return False;
-   return True;
-}
-
-
-/*---------------------------------------------*/
-/*--
-  rac 11/21/98 see if file has hard links to it
---*/
-static 
-Int32 countHardLinks ( Char* name )
-{  
-   IntNative      i;
-   struct MY_STAT statBuf;
-
-   i = MY_LSTAT ( name, &statBuf );
-   if (i != 0) return 0;
-   return (statBuf.st_nlink - 1);
-}
-
-
-/*---------------------------------------------*/
-/* Copy modification date, access date, permissions and owner from the
-   source to destination file.  We have to copy this meta-info off
-   into fileMetaInfo before starting to compress / decompress it,
-   because doing it afterwards means we get the wrong access time.
-
-   To complicate matters, in compress() and decompress() below, the
-   sequence of tests preceding the call to saveInputFileMetaInfo()
-   involves calling fileExists(), which in turn establishes its result
-   by attempting to fopen() the file, and if successful, immediately
-   fclose()ing it again.  So we have to assume that the fopen() call
-   does not cause the access time field to be updated.
-
-   Reading of the man page for stat() (man 2 stat) on RedHat 7.2 seems
-   to imply that merely doing open() will not affect the access time.
-   Therefore we merely need to hope that the C library only does
-   open() as a result of fopen(), and not any kind of read()-ahead
-   cleverness.
-
-   It sounds pretty fragile to me.  Whether this carries across
-   robustly to arbitrary Unix-like platforms (or even works robustly
-   on this one, RedHat 7.2) is unknown to me.  Nevertheless ...  
-*/
-#if BZ_UNIX
-static 
-struct MY_STAT fileMetaInfo;
-#endif
-
-static 
-void saveInputFileMetaInfo ( Char *srcName )
-{
-#  if BZ_UNIX
-   IntNative retVal;
-   /* Note use of stat here, not lstat. */
-   retVal = MY_STAT( srcName, &fileMetaInfo );
-   ERROR_IF_NOT_ZERO ( retVal );
-#  endif
-}
-
-
-static 
-void applySavedTimeInfoToOutputFile ( Char *dstName )
-{
-#  if BZ_UNIX
-   IntNative      retVal;
-   struct utimbuf uTimBuf;
-
-   uTimBuf.actime = fileMetaInfo.st_atime;
-   uTimBuf.modtime = fileMetaInfo.st_mtime;
-
-   retVal = utime ( dstName, &uTimBuf );
-   ERROR_IF_NOT_ZERO ( retVal );
-#  endif
-}
-
-static 
-void applySavedFileAttrToOutputFile ( IntNative fd )
-{
-#  if BZ_UNIX
-   IntNative retVal;
-
-   retVal = fchmod ( fd, fileMetaInfo.st_mode );
-   ERROR_IF_NOT_ZERO ( retVal );
-
-   (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
-   /* chown() will in many cases return with EPERM, which can
-      be safely ignored.
-   */
-#  endif
-}
-
-
-/*---------------------------------------------*/
-static 
-Bool containsDubiousChars ( Char* name )
-{
-#  if BZ_UNIX
-   /* On unix, files can contain any characters and the file expansion
-    * is performed by the shell.
-    */
-   return False;
-#  else /* ! BZ_UNIX */
-   /* On non-unix (Win* platforms), wildcard characters are not allowed in 
-    * filenames.
-    */
-   for (; *name != '\0'; name++)
-      if (*name == '?' || *name == '*') return True;
-   return False;
-#  endif /* BZ_UNIX */
-}
-
-
-/*---------------------------------------------*/
-#define BZ_N_SUFFIX_PAIRS 4
-
-const Char* zSuffix[BZ_N_SUFFIX_PAIRS] 
-   = { ".bz2", ".bz", ".tbz2", ".tbz" };
-const Char* unzSuffix[BZ_N_SUFFIX_PAIRS] 
-   = { "", "", ".tar", ".tar" };
-
-static 
-Bool hasSuffix ( Char* s, const Char* suffix )
-{
-   Int32 ns = strlen(s);
-   Int32 nx = strlen(suffix);
-   if (ns < nx) return False;
-   if (strcmp(s + ns - nx, suffix) == 0) return True;
-   return False;
-}
-
-static 
-Bool mapSuffix ( Char* name, 
-                 const Char* oldSuffix, 
-                 const Char* newSuffix )
-{
-   if (!hasSuffix(name,oldSuffix)) return False;
-   name[strlen(name)-strlen(oldSuffix)] = 0;
-   strcat ( name, newSuffix );
-   return True;
-}
-
-
-/*---------------------------------------------*/
-static 
-void compress ( Char *name )
-{
-   FILE  *inStr;
-   FILE  *outStr;
-   Int32 n, i;
-   struct MY_STAT statBuf;
-
-   deleteOutputOnInterrupt = False;
-
-   if (name == NULL && srcMode != SM_I2O)
-      panic ( "compress: bad modes\n" );
-
-   switch (srcMode) {
-      case SM_I2O: 
-         copyFileName ( inName, (Char*)"(stdin)" );
-         copyFileName ( outName, (Char*)"(stdout)" ); 
-         break;
-      case SM_F2F: 
-         copyFileName ( inName, name );
-         copyFileName ( outName, name );
-         strcat ( outName, ".bz2" ); 
-         break;
-      case SM_F2O: 
-         copyFileName ( inName, name );
-         copyFileName ( outName, (Char*)"(stdout)" ); 
-         break;
-   }
-
-   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
-      if (noisy)
-      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
-                progName, inName );
-      setExit(1);
-      return;
-   }
-   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
-      fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
-                progName, inName, strerror(errno) );
-      setExit(1);
-      return;
-   }
-   for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) {
-      if (hasSuffix(inName, zSuffix[i])) {
-         if (noisy)
-         fprintf ( stderr, 
-                   "%s: Input file %s already has %s suffix.\n",
-                   progName, inName, zSuffix[i] );
-         setExit(1);
-         return;
-      }
-   }
-   if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
-      MY_STAT(inName, &statBuf);
-      if ( MY_S_ISDIR(statBuf.st_mode) ) {
-         fprintf( stderr,
-                  "%s: Input file %s is a directory.\n",
-                  progName,inName);
-         setExit(1);
-         return;
-      }
-   }
-   if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
-      if (noisy)
-      fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
-                progName, inName );
-      setExit(1);
-      return;
-   }
-   if ( srcMode == SM_F2F && fileExists ( outName ) ) {
-      if (forceOverwrite) {
-	 remove(outName);
-      } else {
-	 fprintf ( stderr, "%s: Output file %s already exists.\n",
-		   progName, outName );
-	 setExit(1);
-	 return;
-      }
-   }
-   if ( srcMode == SM_F2F && !forceOverwrite &&
-        (n=countHardLinks ( inName )) > 0) {
-      fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
-                progName, inName, n, n > 1 ? "s" : "" );
-      setExit(1);
-      return;
-   }
-
-   if ( srcMode == SM_F2F ) {
-      /* Save the file's meta-info before we open it.  Doing it later
-         means we mess up the access times. */
-      saveInputFileMetaInfo ( inName );
-   }
-
-   switch ( srcMode ) {
-
-      case SM_I2O:
-         inStr = stdin;
-         outStr = stdout;
-         if ( isatty ( fileno ( stdout ) ) ) {
-            fprintf ( stderr,
-                      "%s: I won't write compressed data to a terminal.\n",
-                      progName );
-            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
-                              progName, progName );
-            setExit(1);
-            return;
-         };
-         break;
-
-      case SM_F2O:
-         inStr = fopen ( inName, "rb" );
-         outStr = stdout;
-         if ( isatty ( fileno ( stdout ) ) ) {
-            fprintf ( stderr,
-                      "%s: I won't write compressed data to a terminal.\n",
-                      progName );
-            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
-                              progName, progName );
-            if ( inStr != NULL ) fclose ( inStr );
-            setExit(1);
-            return;
-         };
-         if ( inStr == NULL ) {
-            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
-                      progName, inName, strerror(errno) );
-            setExit(1);
-            return;
-         };
-         break;
-
-      case SM_F2F:
-         inStr = fopen ( inName, "rb" );
-         outStr = fopen_output_safely ( outName, "wb" );
-         if ( outStr == NULL) {
-            fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
-                      progName, outName, strerror(errno) );
-            if ( inStr != NULL ) fclose ( inStr );
-            setExit(1);
-            return;
-         }
-         if ( inStr == NULL ) {
-            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
-                      progName, inName, strerror(errno) );
-            if ( outStr != NULL ) fclose ( outStr );
-            setExit(1);
-            return;
-         };
-         break;
-
-      default:
-         panic ( "compress: bad srcMode" );
-         break;
-   }
-
-   if (verbosity >= 1) {
-      fprintf ( stderr,  "  %s: ", inName );
-      pad ( inName );
-      fflush ( stderr );
-   }
-
-   /*--- Now the input and output handles are sane.  Do the Biz. ---*/
-   outputHandleJustInCase = outStr;
-   deleteOutputOnInterrupt = True;
-   compressStream ( inStr, outStr );
-   outputHandleJustInCase = NULL;
-
-   /*--- If there was an I/O error, we won't get here. ---*/
-   if ( srcMode == SM_F2F ) {
-      applySavedTimeInfoToOutputFile ( outName );
-      deleteOutputOnInterrupt = False;
-      if ( !keepInputFiles ) {
-         IntNative retVal = remove ( inName );
-         ERROR_IF_NOT_ZERO ( retVal );
-      }
-   }
-
-   deleteOutputOnInterrupt = False;
-}
-
-
-/*---------------------------------------------*/
-static 
-void uncompress ( Char *name )
-{
-   FILE  *inStr;
-   FILE  *outStr;
-   Int32 n, i;
-   Bool  magicNumberOK;
-   Bool  cantGuess;
-   struct MY_STAT statBuf;
-
-   deleteOutputOnInterrupt = False;
-
-   if (name == NULL && srcMode != SM_I2O)
-      panic ( "uncompress: bad modes\n" );
-
-   cantGuess = False;
-   switch (srcMode) {
-      case SM_I2O: 
-         copyFileName ( inName, (Char*)"(stdin)" );
-         copyFileName ( outName, (Char*)"(stdout)" ); 
-         break;
-      case SM_F2F: 
-         copyFileName ( inName, name );
-         copyFileName ( outName, name );
-         for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++)
-            if (mapSuffix(outName,zSuffix[i],unzSuffix[i]))
-               goto zzz; 
-         cantGuess = True;
-         strcat ( outName, ".out" );
-         break;
-      case SM_F2O: 
-         copyFileName ( inName, name );
-         copyFileName ( outName, (Char*)"(stdout)" ); 
-         break;
-   }
-
-   zzz:
-   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
-      if (noisy)
-      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
-                progName, inName );
-      setExit(1);
-      return;
-   }
-   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
-      fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
-                progName, inName, strerror(errno) );
-      setExit(1);
-      return;
-   }
-   if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
-      MY_STAT(inName, &statBuf);
-      if ( MY_S_ISDIR(statBuf.st_mode) ) {
-         fprintf( stderr,
-                  "%s: Input file %s is a directory.\n",
-                  progName,inName);
-         setExit(1);
-         return;
-      }
-   }
-   if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
-      if (noisy)
-      fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
-                progName, inName );
-      setExit(1);
-      return;
-   }
-   if ( /* srcMode == SM_F2F implied && */ cantGuess ) {
-      if (noisy)
-      fprintf ( stderr, 
-                "%s: Can't guess original name for %s -- using %s\n",
-                progName, inName, outName );
-      /* just a warning, no return */
-   }   
-   if ( srcMode == SM_F2F && fileExists ( outName ) ) {
-      if (forceOverwrite) {
-	remove(outName);
-      } else {
-        fprintf ( stderr, "%s: Output file %s already exists.\n",
-                  progName, outName );
-        setExit(1);
-        return;
-      }
-   }
-   if ( srcMode == SM_F2F && !forceOverwrite &&
-        (n=countHardLinks ( inName ) ) > 0) {
-      fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
-                progName, inName, n, n > 1 ? "s" : "" );
-      setExit(1);
-      return;
-   }
-
-   if ( srcMode == SM_F2F ) {
-      /* Save the file's meta-info before we open it.  Doing it later
-         means we mess up the access times. */
-      saveInputFileMetaInfo ( inName );
-   }
-
-   switch ( srcMode ) {
-
-      case SM_I2O:
-         inStr = stdin;
-         outStr = stdout;
-         if ( isatty ( fileno ( stdin ) ) ) {
-            fprintf ( stderr,
-                      "%s: I won't read compressed data from a terminal.\n",
-                      progName );
-            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
-                              progName, progName );
-            setExit(1);
-            return;
-         };
-         break;
-
-      case SM_F2O:
-         inStr = fopen ( inName, "rb" );
-         outStr = stdout;
-         if ( inStr == NULL ) {
-            fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
-                      progName, inName, strerror(errno) );
-            if ( inStr != NULL ) fclose ( inStr );
-            setExit(1);
-            return;
-         };
-         break;
-
-      case SM_F2F:
-         inStr = fopen ( inName, "rb" );
-         outStr = fopen_output_safely ( outName, "wb" );
-         if ( outStr == NULL) {
-            fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
-                      progName, outName, strerror(errno) );
-            if ( inStr != NULL ) fclose ( inStr );
-            setExit(1);
-            return;
-         }
-         if ( inStr == NULL ) {
-            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
-                      progName, inName, strerror(errno) );
-            if ( outStr != NULL ) fclose ( outStr );
-            setExit(1);
-            return;
-         };
-         break;
-
-      default:
-         panic ( "uncompress: bad srcMode" );
-         break;
-   }
-
-   if (verbosity >= 1) {
-      fprintf ( stderr, "  %s: ", inName );
-      pad ( inName );
-      fflush ( stderr );
-   }
-
-   /*--- Now the input and output handles are sane.  Do the Biz. ---*/
-   outputHandleJustInCase = outStr;
-   deleteOutputOnInterrupt = True;
-   magicNumberOK = uncompressStream ( inStr, outStr );
-   outputHandleJustInCase = NULL;
-
-   /*--- If there was an I/O error, we won't get here. ---*/
-   if ( magicNumberOK ) {
-      if ( srcMode == SM_F2F ) {
-         applySavedTimeInfoToOutputFile ( outName );
-         deleteOutputOnInterrupt = False;
-         if ( !keepInputFiles ) {
-            IntNative retVal = remove ( inName );
-            ERROR_IF_NOT_ZERO ( retVal );
-         }
-      }
-   } else {
-      unzFailsExist = True;
-      deleteOutputOnInterrupt = False;
-      if ( srcMode == SM_F2F ) {
-         IntNative retVal = remove ( outName );
-         ERROR_IF_NOT_ZERO ( retVal );
-      }
-   }
-   deleteOutputOnInterrupt = False;
-
-   if ( magicNumberOK ) {
-      if (verbosity >= 1)
-         fprintf ( stderr, "done\n" );
-   } else {
-      setExit(2);
-      if (verbosity >= 1)
-         fprintf ( stderr, "not a bzip2 file.\n" ); else
-         fprintf ( stderr,
-                   "%s: %s is not a bzip2 file.\n",
-                   progName, inName );
-   }
-
-}
-
-
-/*---------------------------------------------*/
-static 
-void testf ( Char *name )
-{
-   FILE *inStr;
-   Bool allOK;
-   struct MY_STAT statBuf;
-
-   deleteOutputOnInterrupt = False;
-
-   if (name == NULL && srcMode != SM_I2O)
-      panic ( "testf: bad modes\n" );
-
-   copyFileName ( outName, (Char*)"(none)" );
-   switch (srcMode) {
-      case SM_I2O: copyFileName ( inName, (Char*)"(stdin)" ); break;
-      case SM_F2F: copyFileName ( inName, name ); break;
-      case SM_F2O: copyFileName ( inName, name ); break;
-   }
-
-   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
-      if (noisy)
-      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
-                progName, inName );
-      setExit(1);
-      return;
-   }
-   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
-      fprintf ( stderr, "%s: Can't open input %s: %s.\n",
-                progName, inName, strerror(errno) );
-      setExit(1);
-      return;
-   }
-   if ( srcMode != SM_I2O ) {
-      MY_STAT(inName, &statBuf);
-      if ( MY_S_ISDIR(statBuf.st_mode) ) {
-         fprintf( stderr,
-                  "%s: Input file %s is a directory.\n",
-                  progName,inName);
-         setExit(1);
-         return;
-      }
-   }
-
-   switch ( srcMode ) {
-
-      case SM_I2O:
-         if ( isatty ( fileno ( stdin ) ) ) {
-            fprintf ( stderr,
-                      "%s: I won't read compressed data from a terminal.\n",
-                      progName );
-            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
-                              progName, progName );
-            setExit(1);
-            return;
-         };
-         inStr = stdin;
-         break;
-
-      case SM_F2O: case SM_F2F:
-         inStr = fopen ( inName, "rb" );
-         if ( inStr == NULL ) {
-            fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
-                      progName, inName, strerror(errno) );
-            setExit(1);
-            return;
-         };
-         break;
-
-      default:
-         panic ( "testf: bad srcMode" );
-         break;
-   }
-
-   if (verbosity >= 1) {
-      fprintf ( stderr, "  %s: ", inName );
-      pad ( inName );
-      fflush ( stderr );
-   }
-
-   /*--- Now the input handle is sane.  Do the Biz. ---*/
-   outputHandleJustInCase = NULL;
-   allOK = testStream ( inStr );
-
-   if (allOK && verbosity >= 1) fprintf ( stderr, "ok\n" );
-   if (!allOK) testFailsExist = True;
-}
-
-
-/*---------------------------------------------*/
-static 
-void license ( void )
-{
-   fprintf ( stderr,
-
-    "bzip2, a block-sorting file compressor.  "
-    "Version %s.\n"
-    "   \n"
-    "   Copyright (C) 1996-2010 by Julian Seward.\n"
-    "   \n"
-    "   This program is free software; you can redistribute it and/or modify\n"
-    "   it under the terms set out in the LICENSE file, which is included\n"
-    "   in the bzip2-1.0.6 source distribution.\n"
-    "   \n"
-    "   This program is distributed in the hope that it will be useful,\n"
-    "   but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-    "   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-    "   LICENSE file for more details.\n"
-    "   \n",
-    BZ2_bzlibVersion()
-   );
-}
-
-
-/*---------------------------------------------*/
-static 
-void usage ( Char *fullProgName )
-{
-   fprintf (
-      stderr,
-      "bzip2, a block-sorting file compressor.  "
-      "Version %s.\n"
-      "\n   usage: %s [flags and input files in any order]\n"
-      "\n"
-      "   -h --help           print this message\n"
-      "   -d --decompress     force decompression\n"
-      "   -z --compress       force compression\n"
-      "   -k --keep           keep (don't delete) input files\n"
-      "   -f --force          overwrite existing output files\n"
-      "   -t --test           test compressed file integrity\n"
-      "   -c --stdout         output to standard out\n"
-      "   -q --quiet          suppress noncritical error messages\n"
-      "   -v --verbose        be verbose (a 2nd -v gives more)\n"
-      "   -L --license        display software version & license\n"
-      "   -V --version        display software version & license\n"
-      "   -s --small          use less memory (at most 2500k)\n"
-      "   -1 .. -9            set block size to 100k .. 900k\n"
-      "   --fast              alias for -1\n"
-      "   --best              alias for -9\n"
-      "\n"
-      "   If invoked as `bzip2', default action is to compress.\n"
-      "              as `bunzip2',  default action is to decompress.\n"
-      "              as `bzcat', default action is to decompress to stdout.\n"
-      "\n"
-      "   If no file names are given, bzip2 compresses or decompresses\n"
-      "   from standard input to standard output.  You can combine\n"
-      "   short flags, so `-v -4' means the same as -v4 or -4v, &c.\n"
-#     if BZ_UNIX
-      "\n"
-#     endif
-      ,
-
-      BZ2_bzlibVersion(),
-      fullProgName
-   );
-}
-
-
-/*---------------------------------------------*/
-static 
-void redundant ( Char* flag )
-{
-   fprintf ( 
-      stderr, 
-      "%s: %s is redundant in versions 0.9.5 and above\n",
-      progName, flag );
-}
-
-
-/*---------------------------------------------*/
-/*--
-  All the garbage from here to main() is purely to
-  implement a linked list of command-line arguments,
-  into which main() copies argv[1 .. argc-1].
-
-  The purpose of this exercise is to facilitate 
-  the expansion of wildcard characters * and ? in 
-  filenames for OSs which don't know how to do it
-  themselves, like MSDOS, Windows 95 and NT.
-
-  The actual Dirty Work is done by the platform-
-  specific macro APPEND_FILESPEC.
---*/
-
-typedef
-   struct zzzz {
-      Char        *name;
-      struct zzzz *link;
-   }
-   Cell;
-
-
-/*---------------------------------------------*/
-static 
-void *myMalloc ( Int32 n )
-{
-   void* p;
-
-   p = malloc ( (size_t)n );
-   if (p == NULL) outOfMemory ();
-   return p;
-}
-
-
-/*---------------------------------------------*/
-static 
-Cell *mkCell ( void )
-{
-   Cell *c;
-
-   c = (Cell*) myMalloc ( sizeof ( Cell ) );
-   c->name = NULL;
-   c->link = NULL;
-   return c;
-}
-
-
-/*---------------------------------------------*/
-static 
-Cell *snocString ( Cell *root, Char *name )
-{
-   if (root == NULL) {
-      Cell *tmp = mkCell();
-      tmp->name = (Char*) myMalloc ( 5 + strlen(name) );
-      strcpy ( tmp->name, name );
-      return tmp;
-   } else {
-      Cell *tmp = root;
-      while (tmp->link != NULL) tmp = tmp->link;
-      tmp->link = snocString ( tmp->link, name );
-      return root;
-   }
-}
-
-
-/*---------------------------------------------*/
-static 
-void addFlagsFromEnvVar ( Cell** argList, Char* varName ) 
-{
-   Int32 i, j, k;
-   Char *envbase, *p;
-
-   envbase = getenv(varName);
-   if (envbase != NULL) {
-      p = envbase;
-      i = 0;
-      while (True) {
-         if (p[i] == 0) break;
-         p += i;
-         i = 0;
-         while (isspace((Int32)(p[0]))) p++;
-         while (p[i] != 0 && !isspace((Int32)(p[i]))) i++;
-         if (i > 0) {
-            k = i; if (k > FILE_NAME_LEN-10) k = FILE_NAME_LEN-10;
-            for (j = 0; j < k; j++) tmpName[j] = p[j];
-            tmpName[k] = 0;
-            APPEND_FLAG(*argList, tmpName);
-         }
-      }
-   }
-}
-
-
-/*---------------------------------------------*/
-#define ISFLAG(s) (strcmp(aa->name, (s))==0)
-
-IntNative main ( IntNative argc, Char *argv[] )
-{
-   Int32  i, j;
-   Char   *tmp;
-   Cell   *argList;
-   Cell   *aa;
-   Bool   decode;
-
-   /*-- Be really really really paranoid :-) --*/
-   if (sizeof(Int32) != 4 || sizeof(UInt32) != 4  ||
-       sizeof(Int16) != 2 || sizeof(UInt16) != 2  ||
-       sizeof(Char)  != 1 || sizeof(UChar)  != 1)
-      configError();
-
-   /*-- Initialise --*/
-   outputHandleJustInCase  = NULL;
-   smallMode               = False;
-   keepInputFiles          = False;
-   forceOverwrite          = False;
-   noisy                   = True;
-   verbosity               = 0;
-   blockSize100k           = 9;
-   testFailsExist          = False;
-   unzFailsExist           = False;
-   numFileNames            = 0;
-   numFilesProcessed       = 0;
-   workFactor              = 30;
-   deleteOutputOnInterrupt = False;
-   exitValue               = 0;
-   i = j = 0; /* avoid bogus warning from egcs-1.1.X */
-
-   /*-- Set up signal handlers for mem access errors --*/
-   signal (SIGSEGV, mySIGSEGVorSIGBUScatcher);
-#  if BZ_UNIX
-#  ifndef __DJGPP__
-   signal (SIGBUS,  mySIGSEGVorSIGBUScatcher);
-#  endif
-#  endif
-
-   copyFileName ( inName,  (Char*)"(none)" );
-   copyFileName ( outName, (Char*)"(none)" );
-
-   copyFileName ( progNameReally, argv[0] );
-   progName = &progNameReally[0];
-   for (tmp = &progNameReally[0]; *tmp != '\0'; tmp++)
-      if (*tmp == PATH_SEP) progName = tmp + 1;
-
-
-   /*-- Copy flags from env var BZIP2, and 
-        expand filename wildcards in arg list.
-   --*/
-   argList = NULL;
-   addFlagsFromEnvVar ( &argList,  (Char*)"BZIP2" );
-   addFlagsFromEnvVar ( &argList,  (Char*)"BZIP" );
-   for (i = 1; i <= argc-1; i++)
-      APPEND_FILESPEC(argList, argv[i]);
-
-
-   /*-- Find the length of the longest filename --*/
-   longestFileName = 7;
-   numFileNames    = 0;
-   decode          = True;
-   for (aa = argList; aa != NULL; aa = aa->link) {
-      if (ISFLAG("--")) { decode = False; continue; }
-      if (aa->name[0] == '-' && decode) continue;
-      numFileNames++;
-      if (longestFileName < (Int32)strlen(aa->name) )
-         longestFileName = (Int32)strlen(aa->name);
-   }
-
-
-   /*-- Determine source modes; flag handling may change this too. --*/
-   if (numFileNames == 0)
-      srcMode = SM_I2O; else srcMode = SM_F2F;
-
-
-   /*-- Determine what to do (compress/uncompress/test/cat). --*/
-   /*-- Note that subsequent flag handling may change this. --*/
-   opMode = OM_Z;
-
-   if ( (strstr ( progName, "unzip" ) != 0) ||
-        (strstr ( progName, "UNZIP" ) != 0) )
-      opMode = OM_UNZ;
-
-   if ( (strstr ( progName, "z2cat" ) != 0) ||
-        (strstr ( progName, "Z2CAT" ) != 0) ||
-        (strstr ( progName, "zcat" ) != 0)  ||
-        (strstr ( progName, "ZCAT" ) != 0) )  {
-      opMode = OM_UNZ;
-      srcMode = (numFileNames == 0) ? SM_I2O : SM_F2O;
-   }
-
-
-   /*-- Look at the flags. --*/
-   for (aa = argList; aa != NULL; aa = aa->link) {
-      if (ISFLAG("--")) break;
-      if (aa->name[0] == '-' && aa->name[1] != '-') {
-         for (j = 1; aa->name[j] != '\0'; j++) {
-            switch (aa->name[j]) {
-               case 'c': srcMode          = SM_F2O; break;
-               case 'd': opMode           = OM_UNZ; break;
-               case 'z': opMode           = OM_Z; break;
-               case 'f': forceOverwrite   = True; break;
-               case 't': opMode           = OM_TEST; break;
-               case 'k': keepInputFiles   = True; break;
-               case 's': smallMode        = True; break;
-               case 'q': noisy            = False; break;
-               case '1': blockSize100k    = 1; break;
-               case '2': blockSize100k    = 2; break;
-               case '3': blockSize100k    = 3; break;
-               case '4': blockSize100k    = 4; break;
-               case '5': blockSize100k    = 5; break;
-               case '6': blockSize100k    = 6; break;
-               case '7': blockSize100k    = 7; break;
-               case '8': blockSize100k    = 8; break;
-               case '9': blockSize100k    = 9; break;
-               case 'V':
-               case 'L': license();            break;
-               case 'v': verbosity++; break;
-               case 'h': usage ( progName );
-                         exit ( 0 );
-                         break;
-               default:  fprintf ( stderr, "%s: Bad flag `%s'\n",
-                                   progName, aa->name );
-                         usage ( progName );
-                         exit ( 1 );
-                         break;
-            }
-         }
-      }
-   }
-   
-   /*-- And again ... --*/
-   for (aa = argList; aa != NULL; aa = aa->link) {
-      if (ISFLAG("--")) break;
-      if (ISFLAG("--stdout"))            srcMode          = SM_F2O;  else
-      if (ISFLAG("--decompress"))        opMode           = OM_UNZ;  else
-      if (ISFLAG("--compress"))          opMode           = OM_Z;    else
-      if (ISFLAG("--force"))             forceOverwrite   = True;    else
-      if (ISFLAG("--test"))              opMode           = OM_TEST; else
-      if (ISFLAG("--keep"))              keepInputFiles   = True;    else
-      if (ISFLAG("--small"))             smallMode        = True;    else
-      if (ISFLAG("--quiet"))             noisy            = False;   else
-      if (ISFLAG("--version"))           license();                  else
-      if (ISFLAG("--license"))           license();                  else
-      if (ISFLAG("--exponential"))       workFactor = 1;             else 
-      if (ISFLAG("--repetitive-best"))   redundant(aa->name);        else
-      if (ISFLAG("--repetitive-fast"))   redundant(aa->name);        else
-      if (ISFLAG("--fast"))              blockSize100k = 1;          else
-      if (ISFLAG("--best"))              blockSize100k = 9;          else
-      if (ISFLAG("--verbose"))           verbosity++;                else
-      if (ISFLAG("--help"))              { usage ( progName ); exit ( 0 ); }
-         else
-         if (strncmp ( aa->name, "--", 2) == 0) {
-            fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name );
-            usage ( progName );
-            exit ( 1 );
-         }
-   }
-
-   if (verbosity > 4) verbosity = 4;
-   if (opMode == OM_Z && smallMode && blockSize100k > 2) 
-      blockSize100k = 2;
-
-   if (opMode == OM_TEST && srcMode == SM_F2O) {
-      fprintf ( stderr, "%s: -c and -t cannot be used together.\n",
-                progName );
-      exit ( 1 );
-   }
-
-   if (srcMode == SM_F2O && numFileNames == 0)
-      srcMode = SM_I2O;
-
-   if (opMode != OM_Z) blockSize100k = 0;
-
-   if (srcMode == SM_F2F) {
-      signal (SIGINT,  mySignalCatcher);
-      signal (SIGTERM, mySignalCatcher);
-#     if BZ_UNIX
-      signal (SIGHUP,  mySignalCatcher);
-#     endif
-   }
-
-   if (opMode == OM_Z) {
-     if (srcMode == SM_I2O) {
-        compress ( NULL );
-     } else {
-        decode = True;
-        for (aa = argList; aa != NULL; aa = aa->link) {
-           if (ISFLAG("--")) { decode = False; continue; }
-           if (aa->name[0] == '-' && decode) continue;
-           numFilesProcessed++;
-           compress ( aa->name );
-        }
-     }
-   } 
-   else
-
-   if (opMode == OM_UNZ) {
-      unzFailsExist = False;
-      if (srcMode == SM_I2O) {
-         uncompress ( NULL );
-      } else {
-         decode = True;
-         for (aa = argList; aa != NULL; aa = aa->link) {
-            if (ISFLAG("--")) { decode = False; continue; }
-            if (aa->name[0] == '-' && decode) continue;
-            numFilesProcessed++;
-            uncompress ( aa->name );
-         }      
-      }
-      if (unzFailsExist) { 
-         setExit(2); 
-         exit(exitValue);
-      }
-   } 
-
-   else {
-      testFailsExist = False;
-      if (srcMode == SM_I2O) {
-         testf ( NULL );
-      } else {
-         decode = True;
-         for (aa = argList; aa != NULL; aa = aa->link) {
-	    if (ISFLAG("--")) { decode = False; continue; }
-            if (aa->name[0] == '-' && decode) continue;
-            numFilesProcessed++;
-            testf ( aa->name );
-	 }
-      }
-      if (testFailsExist && noisy) {
-         fprintf ( stderr,
-           "\n"
-           "You can use the `bzip2recover' program to attempt to recover\n"
-           "data from undamaged sections of corrupted files.\n\n"
-         );
-         setExit(2);
-         exit(exitValue);
-      }
-   }
-
-   /* Free the argument list memory to mollify leak detectors 
-      (eg) Purify, Checker.  Serves no other useful purpose.
-   */
-   aa = argList;
-   while (aa != NULL) {
-      Cell* aa2 = aa->link;
-      if (aa->name != NULL) free(aa->name);
-      free(aa);
-      aa = aa2;
-   }
-
-   return exitValue;
-}
-
-
-/*-----------------------------------------------------------*/
-/*--- end                                         bzip2.c ---*/
-/*-----------------------------------------------------------*/
diff --git a/libs/ext/bzip2/bzip2recover.c b/libs/ext/bzip2/bzip2recover.c
deleted file mode 100644
index f9de049..0000000
--- a/libs/ext/bzip2/bzip2recover.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/*-----------------------------------------------------------*/
-/*--- Block recoverer program for bzip2                   ---*/
-/*---                                      bzip2recover.c ---*/
-/*-----------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-/* This program is a complete hack and should be rewritten properly.
-	 It isn't very complicated. */
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-/* This program records bit locations in the file to be recovered.
-   That means that if 64-bit ints are not supported, we will not
-   be able to recover .bz2 files over 512MB (2^32 bits) long.
-   On GNU supported platforms, we take advantage of the 64-bit
-   int support to circumvent this problem.  Ditto MSVC.
-
-   This change occurred in version 1.0.2; all prior versions have
-   the 512MB limitation.
-*/
-#ifdef __GNUC__
-   typedef  unsigned long long int  MaybeUInt64;
-#  define MaybeUInt64_FMT "%Lu"
-#else
-#ifdef _MSC_VER
-   typedef  unsigned __int64  MaybeUInt64;
-#  define MaybeUInt64_FMT "%I64u"
-#else
-   typedef  unsigned int   MaybeUInt64;
-#  define MaybeUInt64_FMT "%u"
-#endif
-#endif
-
-typedef  unsigned int   UInt32;
-typedef  int            Int32;
-typedef  unsigned char  UChar;
-typedef  char           Char;
-typedef  unsigned char  Bool;
-#define True    ((Bool)1)
-#define False   ((Bool)0)
-
-
-#define BZ_MAX_FILENAME 2000
-
-Char inFileName[BZ_MAX_FILENAME];
-Char outFileName[BZ_MAX_FILENAME];
-Char progName[BZ_MAX_FILENAME];
-
-MaybeUInt64 bytesOut = 0;
-MaybeUInt64 bytesIn  = 0;
-
-
-/*---------------------------------------------------*/
-/*--- Header bytes                                ---*/
-/*---------------------------------------------------*/
-
-#define BZ_HDR_B 0x42                         /* 'B' */
-#define BZ_HDR_Z 0x5a                         /* 'Z' */
-#define BZ_HDR_h 0x68                         /* 'h' */
-#define BZ_HDR_0 0x30                         /* '0' */
- 
-
-/*---------------------------------------------------*/
-/*--- I/O errors                                  ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------*/
-static void readError ( void )
-{
-   fprintf ( stderr,
-             "%s: I/O error reading `%s', possible reason follows.\n",
-            progName, inFileName );
-   perror ( progName );
-   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
-             progName );
-   exit ( 1 );
-}
-
-
-/*---------------------------------------------*/
-static void writeError ( void )
-{
-   fprintf ( stderr,
-             "%s: I/O error reading `%s', possible reason follows.\n",
-            progName, inFileName );
-   perror ( progName );
-   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
-             progName );
-   exit ( 1 );
-}
-
-
-/*---------------------------------------------*/
-static void mallocFail ( Int32 n )
-{
-   fprintf ( stderr,
-             "%s: malloc failed on request for %d bytes.\n",
-            progName, n );
-   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
-             progName );
-   exit ( 1 );
-}
-
-
-/*---------------------------------------------*/
-static void tooManyBlocks ( Int32 max_handled_blocks )
-{
-   fprintf ( stderr,
-             "%s: `%s' appears to contain more than %d blocks\n",
-            progName, inFileName, max_handled_blocks );
-   fprintf ( stderr,
-             "%s: and cannot be handled.  To fix, increase\n",
-             progName );
-   fprintf ( stderr, 
-             "%s: BZ_MAX_HANDLED_BLOCKS in bzip2recover.c, and recompile.\n",
-             progName );
-   exit ( 1 );
-}
-
-
-
-/*---------------------------------------------------*/
-/*--- Bit stream I/O                              ---*/
-/*---------------------------------------------------*/
-
-typedef
-   struct {
-      FILE*  handle;
-      Int32  buffer;
-      Int32  buffLive;
-      Char   mode;
-   }
-   BitStream;
-
-
-/*---------------------------------------------*/
-static BitStream* bsOpenReadStream ( FILE* stream )
-{
-   BitStream *bs = malloc ( sizeof(BitStream) );
-   if (bs == NULL) mallocFail ( sizeof(BitStream) );
-   bs->handle = stream;
-   bs->buffer = 0;
-   bs->buffLive = 0;
-   bs->mode = 'r';
-   return bs;
-}
-
-
-/*---------------------------------------------*/
-static BitStream* bsOpenWriteStream ( FILE* stream )
-{
-   BitStream *bs = malloc ( sizeof(BitStream) );
-   if (bs == NULL) mallocFail ( sizeof(BitStream) );
-   bs->handle = stream;
-   bs->buffer = 0;
-   bs->buffLive = 0;
-   bs->mode = 'w';
-   return bs;
-}
-
-
-/*---------------------------------------------*/
-static void bsPutBit ( BitStream* bs, Int32 bit )
-{
-   if (bs->buffLive == 8) {
-      Int32 retVal = putc ( (UChar) bs->buffer, bs->handle );
-      if (retVal == EOF) writeError();
-      bytesOut++;
-      bs->buffLive = 1;
-      bs->buffer = bit & 0x1;
-   } else {
-      bs->buffer = ( (bs->buffer << 1) | (bit & 0x1) );
-      bs->buffLive++;
-   };
-}
-
-
-/*---------------------------------------------*/
-/*--
-   Returns 0 or 1, or 2 to indicate EOF.
---*/
-static Int32 bsGetBit ( BitStream* bs )
-{
-   if (bs->buffLive > 0) {
-      bs->buffLive --;
-      return ( ((bs->buffer) >> (bs->buffLive)) & 0x1 );
-   } else {
-      Int32 retVal = getc ( bs->handle );
-      if ( retVal == EOF ) {
-         if (errno != 0) readError();
-         return 2;
-      }
-      bs->buffLive = 7;
-      bs->buffer = retVal;
-      return ( ((bs->buffer) >> 7) & 0x1 );
-   }
-}
-
-
-/*---------------------------------------------*/
-static void bsClose ( BitStream* bs )
-{
-   Int32 retVal;
-
-   if ( bs->mode == 'w' ) {
-      while ( bs->buffLive < 8 ) {
-         bs->buffLive++;
-         bs->buffer <<= 1;
-      };
-      retVal = putc ( (UChar) (bs->buffer), bs->handle );
-      if (retVal == EOF) writeError();
-      bytesOut++;
-      retVal = fflush ( bs->handle );
-      if (retVal == EOF) writeError();
-   }
-   retVal = fclose ( bs->handle );
-   if (retVal == EOF) {
-      if (bs->mode == 'w') writeError(); else readError();
-   }
-   free ( bs );
-}
-
-
-/*---------------------------------------------*/
-static void bsPutUChar ( BitStream* bs, UChar c )
-{
-   Int32 i;
-   for (i = 7; i >= 0; i--)
-      bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 );
-}
-
-
-/*---------------------------------------------*/
-static void bsPutUInt32 ( BitStream* bs, UInt32 c )
-{
-   Int32 i;
-
-   for (i = 31; i >= 0; i--)
-      bsPutBit ( bs, (c >> i) & 0x1 );
-}
-
-
-/*---------------------------------------------*/
-static Bool endsInBz2 ( Char* name )
-{
-   Int32 n = strlen ( name );
-   if (n <= 4) return False;
-   return
-      (name[n-4] == '.' &&
-       name[n-3] == 'b' &&
-       name[n-2] == 'z' &&
-       name[n-1] == '2');
-}
-
-
-/*---------------------------------------------------*/
-/*---                                             ---*/
-/*---------------------------------------------------*/
-
-/* This logic isn't really right when it comes to Cygwin. */
-#ifdef _WIN32
-#  define  BZ_SPLIT_SYM  '\\'  /* path splitter on Windows platform */
-#else
-#  define  BZ_SPLIT_SYM  '/'   /* path splitter on Unix platform */
-#endif
-
-#define BLOCK_HEADER_HI  0x00003141UL
-#define BLOCK_HEADER_LO  0x59265359UL
-
-#define BLOCK_ENDMARK_HI 0x00001772UL
-#define BLOCK_ENDMARK_LO 0x45385090UL
-
-/* Increase if necessary.  However, a .bz2 file with > 50000 blocks
-   would have an uncompressed size of at least 40GB, so the chances
-   are low you'll need to up this.
-*/
-#define BZ_MAX_HANDLED_BLOCKS 50000
-
-MaybeUInt64 bStart [BZ_MAX_HANDLED_BLOCKS];
-MaybeUInt64 bEnd   [BZ_MAX_HANDLED_BLOCKS];
-MaybeUInt64 rbStart[BZ_MAX_HANDLED_BLOCKS];
-MaybeUInt64 rbEnd  [BZ_MAX_HANDLED_BLOCKS];
-
-Int32 main ( Int32 argc, Char** argv )
-{
-   FILE*       inFile;
-   FILE*       outFile;
-   BitStream*  bsIn, *bsWr;
-   Int32       b, wrBlock, currBlock, rbCtr;
-   MaybeUInt64 bitsRead;
-
-   UInt32      buffHi, buffLo, blockCRC;
-   Char*       p;
-
-   strcpy ( progName, argv[0] );
-   inFileName[0] = outFileName[0] = 0;
-
-   fprintf ( stderr, 
-             "bzip2recover 1.0.6: extracts blocks from damaged .bz2 files.\n" );
-
-   if (argc != 2) {
-      fprintf ( stderr, "%s: usage is `%s damaged_file_name'.\n",
-                        progName, progName );
-      switch (sizeof(MaybeUInt64)) {
-         case 8:
-            fprintf(stderr, 
-                    "\trestrictions on size of recovered file: None\n");
-            break;
-         case 4:
-            fprintf(stderr, 
-                    "\trestrictions on size of recovered file: 512 MB\n");
-            fprintf(stderr, 
-                    "\tto circumvent, recompile with MaybeUInt64 as an\n"
-                    "\tunsigned 64-bit int.\n");
-            break;
-         default:
-            fprintf(stderr, 
-                    "\tsizeof(MaybeUInt64) is not 4 or 8 -- "
-                    "configuration error.\n");
-            break;
-      }
-      exit(1);
-   }
-
-   if (strlen(argv[1]) >= BZ_MAX_FILENAME-20) {
-      fprintf ( stderr, 
-                "%s: supplied filename is suspiciously (>= %d chars) long.  Bye!\n",
-                progName, (int)strlen(argv[1]) );
-      exit(1);
-   }
-
-   strcpy ( inFileName, argv[1] );
-
-   inFile = fopen ( inFileName, "rb" );
-   if (inFile == NULL) {
-      fprintf ( stderr, "%s: can't read `%s'\n", progName, inFileName );
-      exit(1);
-   }
-
-   bsIn = bsOpenReadStream ( inFile );
-   fprintf ( stderr, "%s: searching for block boundaries ...\n", progName );
-
-   bitsRead = 0;
-   buffHi = buffLo = 0;
-   currBlock = 0;
-   bStart[currBlock] = 0;
-
-   rbCtr = 0;
-
-   while (True) {
-      b = bsGetBit ( bsIn );
-      bitsRead++;
-      if (b == 2) {
-         if (bitsRead >= bStart[currBlock] &&
-            (bitsRead - bStart[currBlock]) >= 40) {
-            bEnd[currBlock] = bitsRead-1;
-            if (currBlock > 0)
-               fprintf ( stderr, "   block %d runs from " MaybeUInt64_FMT 
-                                 " to " MaybeUInt64_FMT " (incomplete)\n",
-                         currBlock,  bStart[currBlock], bEnd[currBlock] );
-         } else
-            currBlock--;
-         break;
-      }
-      buffHi = (buffHi << 1) | (buffLo >> 31);
-      buffLo = (buffLo << 1) | (b & 1);
-      if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI 
-             && buffLo == BLOCK_HEADER_LO)
-           || 
-           ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI 
-             && buffLo == BLOCK_ENDMARK_LO)
-         ) {
-         if (bitsRead > 49) {
-            bEnd[currBlock] = bitsRead-49;
-         } else {
-            bEnd[currBlock] = 0;
-         }
-         if (currBlock > 0 &&
-	     (bEnd[currBlock] - bStart[currBlock]) >= 130) {
-            fprintf ( stderr, "   block %d runs from " MaybeUInt64_FMT 
-                              " to " MaybeUInt64_FMT "\n",
-                      rbCtr+1,  bStart[currBlock], bEnd[currBlock] );
-            rbStart[rbCtr] = bStart[currBlock];
-            rbEnd[rbCtr] = bEnd[currBlock];
-            rbCtr++;
-         }
-         if (currBlock >= BZ_MAX_HANDLED_BLOCKS)
-            tooManyBlocks(BZ_MAX_HANDLED_BLOCKS);
-         currBlock++;
-
-         bStart[currBlock] = bitsRead;
-      }
-   }
-
-   bsClose ( bsIn );
-
-   /*-- identified blocks run from 1 to rbCtr inclusive. --*/
-
-   if (rbCtr < 1) {
-      fprintf ( stderr,
-                "%s: sorry, I couldn't find any block boundaries.\n",
-                progName );
-      exit(1);
-   };
-
-   fprintf ( stderr, "%s: splitting into blocks\n", progName );
-
-   inFile = fopen ( inFileName, "rb" );
-   if (inFile == NULL) {
-      fprintf ( stderr, "%s: can't open `%s'\n", progName, inFileName );
-      exit(1);
-   }
-   bsIn = bsOpenReadStream ( inFile );
-
-   /*-- placate gcc's dataflow analyser --*/
-   blockCRC = 0; bsWr = 0;
-
-   bitsRead = 0;
-   outFile = NULL;
-   wrBlock = 0;
-   while (True) {
-      b = bsGetBit(bsIn);
-      if (b == 2) break;
-      buffHi = (buffHi << 1) | (buffLo >> 31);
-      buffLo = (buffLo << 1) | (b & 1);
-      if (bitsRead == 47+rbStart[wrBlock]) 
-         blockCRC = (buffHi << 16) | (buffLo >> 16);
-
-      if (outFile != NULL && bitsRead >= rbStart[wrBlock]
-                          && bitsRead <= rbEnd[wrBlock]) {
-         bsPutBit ( bsWr, b );
-      }
-
-      bitsRead++;
-
-      if (bitsRead == rbEnd[wrBlock]+1) {
-         if (outFile != NULL) {
-            bsPutUChar ( bsWr, 0x17 ); bsPutUChar ( bsWr, 0x72 );
-            bsPutUChar ( bsWr, 0x45 ); bsPutUChar ( bsWr, 0x38 );
-            bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
-            bsPutUInt32 ( bsWr, blockCRC );
-            bsClose ( bsWr );
-         }
-         if (wrBlock >= rbCtr) break;
-         wrBlock++;
-      } else
-      if (bitsRead == rbStart[wrBlock]) {
-         /* Create the output file name, correctly handling leading paths. 
-            (31.10.2001 by Sergey E. Kusikov) */
-         Char* split;
-         Int32 ofs, k;
-         for (k = 0; k < BZ_MAX_FILENAME; k++) 
-            outFileName[k] = 0;
-         strcpy (outFileName, inFileName);
-         split = strrchr (outFileName, BZ_SPLIT_SYM);
-         if (split == NULL) {
-            split = outFileName;
-         } else {
-            ++split;
-	 }
-	 /* Now split points to the start of the basename. */
-         ofs  = split - outFileName;
-         sprintf (split, "rec%5d", wrBlock+1);
-         for (p = split; *p != 0; p++) if (*p == ' ') *p = '0';
-         strcat (outFileName, inFileName + ofs);
-
-         if ( !endsInBz2(outFileName)) strcat ( outFileName, ".bz2" );
-
-         fprintf ( stderr, "   writing block %d to `%s' ...\n",
-                           wrBlock+1, outFileName );
-
-         outFile = fopen ( outFileName, "wb" );
-         if (outFile == NULL) {
-            fprintf ( stderr, "%s: can't write `%s'\n",
-                      progName, outFileName );
-            exit(1);
-         }
-         bsWr = bsOpenWriteStream ( outFile );
-         bsPutUChar ( bsWr, BZ_HDR_B );    
-         bsPutUChar ( bsWr, BZ_HDR_Z );    
-         bsPutUChar ( bsWr, BZ_HDR_h );    
-         bsPutUChar ( bsWr, BZ_HDR_0 + 9 );
-         bsPutUChar ( bsWr, 0x31 ); bsPutUChar ( bsWr, 0x41 );
-         bsPutUChar ( bsWr, 0x59 ); bsPutUChar ( bsWr, 0x26 );
-         bsPutUChar ( bsWr, 0x53 ); bsPutUChar ( bsWr, 0x59 );
-      }
-   }
-
-   fprintf ( stderr, "%s: finished\n", progName );
-   return 0;
-}
-
-
-
-/*-----------------------------------------------------------*/
-/*--- end                                  bzip2recover.c ---*/
-/*-----------------------------------------------------------*/
diff --git a/libs/ext/bzip2/bzlib.c b/libs/ext/bzip2/bzlib.c
deleted file mode 100644
index bd358a7..0000000
--- a/libs/ext/bzip2/bzlib.c
+++ /dev/null
@@ -1,1572 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Library top-level functions.                          ---*/
-/*---                                               bzlib.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-/* CHANGES
-   0.9.0    -- original version.
-   0.9.0a/b -- no changes in this file.
-   0.9.0c   -- made zero-length BZ_FLUSH work correctly in bzCompress().
-     fixed bzWrite/bzRead to ignore zero-length requests.
-     fixed bzread to correctly handle read requests after EOF.
-     wrong parameter order in call to bzDecompressInit in
-     bzBuffToBuffDecompress.  Fixed.
-*/
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-/*--- Compression stuff                           ---*/
-/*---------------------------------------------------*/
-
-
-/*---------------------------------------------------*/
-#ifndef BZ_NO_STDIO
-void BZ2_bz__AssertH__fail ( int errcode )
-{
-   fprintf(stderr, 
-      "\n\nbzip2/libbzip2: internal error number %d.\n"
-      "This is a bug in bzip2/libbzip2, %s.\n"
-      "Please report it to me at: jseward at bzip.org.  If this happened\n"
-      "when you were using some program which uses libbzip2 as a\n"
-      "component, you should also report this bug to the author(s)\n"
-      "of that program.  Please make an effort to report this bug;\n"
-      "timely and accurate bug reports eventually lead to higher\n"
-      "quality software.  Thanks.  Julian Seward, 10 December 2007.\n\n",
-      errcode,
-      BZ2_bzlibVersion()
-   );
-
-   if (errcode == 1007) {
-   fprintf(stderr,
-      "\n*** A special note about internal error number 1007 ***\n"
-      "\n"
-      "Experience suggests that a common cause of i.e. 1007\n"
-      "is unreliable memory or other hardware.  The 1007 assertion\n"
-      "just happens to cross-check the results of huge numbers of\n"
-      "memory reads/writes, and so acts (unintendedly) as a stress\n"
-      "test of your memory system.\n"
-      "\n"
-      "I suggest the following: try compressing the file again,\n"
-      "possibly monitoring progress in detail with the -vv flag.\n"
-      "\n"
-      "* If the error cannot be reproduced, and/or happens at different\n"
-      "  points in compression, you may have a flaky memory system.\n"
-      "  Try a memory-test program.  I have used Memtest86\n"
-      "  (www.memtest86.com).  At the time of writing it is free (GPLd).\n"
-      "  Memtest86 tests memory much more thorougly than your BIOSs\n"
-      "  power-on test, and may find failures that the BIOS doesn't.\n"
-      "\n"
-      "* If the error can be repeatably reproduced, this is a bug in\n"
-      "  bzip2, and I would very much like to hear about it.  Please\n"
-      "  let me know, and, ideally, save a copy of the file causing the\n"
-      "  problem -- without which I will be unable to investigate it.\n"
-      "\n"
-   );
-   }
-
-   exit(3);
-}
-#endif
-
-
-/*---------------------------------------------------*/
-static
-int bz_config_ok ( void )
-{
-   if (sizeof(int)   != 4) return 0;
-   if (sizeof(short) != 2) return 0;
-   if (sizeof(char)  != 1) return 0;
-   return 1;
-}
-
-
-/*---------------------------------------------------*/
-static
-void* default_bzalloc ( void* opaque, Int32 items, Int32 size )
-{
-   void* v = malloc ( items * size );
-   return v;
-}
-
-static
-void default_bzfree ( void* opaque, void* addr )
-{
-   if (addr != NULL) free ( addr );
-}
-
-
-/*---------------------------------------------------*/
-static
-void prepare_new_block ( EState* s )
-{
-   Int32 i;
-   s->nblock = 0;
-   s->numZ = 0;
-   s->state_out_pos = 0;
-   BZ_INITIALISE_CRC ( s->blockCRC );
-   for (i = 0; i < 256; i++) s->inUse[i] = False;
-   s->blockNo++;
-}
-
-
-/*---------------------------------------------------*/
-static
-void init_RL ( EState* s )
-{
-   s->state_in_ch  = 256;
-   s->state_in_len = 0;
-}
-
-
-static
-Bool isempty_RL ( EState* s )
-{
-   if (s->state_in_ch < 256 && s->state_in_len > 0)
-      return False; else
-      return True;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompressInit) 
-                    ( bz_stream* strm, 
-                     int        blockSize100k,
-                     int        verbosity,
-                     int        workFactor )
-{
-   Int32   n;
-   EState* s;
-
-   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
-
-   if (strm == NULL || 
-       blockSize100k < 1 || blockSize100k > 9 ||
-       workFactor < 0 || workFactor > 250)
-     return BZ_PARAM_ERROR;
-
-   if (workFactor == 0) workFactor = 30;
-   if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
-   if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
-
-   s = BZALLOC( sizeof(EState) );
-   if (s == NULL) return BZ_MEM_ERROR;
-   s->strm = strm;
-
-   s->arr1 = NULL;
-   s->arr2 = NULL;
-   s->ftab = NULL;
-
-   n       = 100000 * blockSize100k;
-   s->arr1 = BZALLOC( n                  * sizeof(UInt32) );
-   s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
-   s->ftab = BZALLOC( 65537              * sizeof(UInt32) );
-
-   if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) {
-      if (s->arr1 != NULL) BZFREE(s->arr1);
-      if (s->arr2 != NULL) BZFREE(s->arr2);
-      if (s->ftab != NULL) BZFREE(s->ftab);
-      if (s       != NULL) BZFREE(s);
-      return BZ_MEM_ERROR;
-   }
-
-   s->blockNo           = 0;
-   s->state             = BZ_S_INPUT;
-   s->mode              = BZ_M_RUNNING;
-   s->combinedCRC       = 0;
-   s->blockSize100k     = blockSize100k;
-   s->nblockMAX         = 100000 * blockSize100k - 19;
-   s->verbosity         = verbosity;
-   s->workFactor        = workFactor;
-
-   s->block             = (UChar*)s->arr2;
-   s->mtfv              = (UInt16*)s->arr1;
-   s->zbits             = NULL;
-   s->ptr               = (UInt32*)s->arr1;
-
-   strm->state          = s;
-   strm->total_in_lo32  = 0;
-   strm->total_in_hi32  = 0;
-   strm->total_out_lo32 = 0;
-   strm->total_out_hi32 = 0;
-   init_RL ( s );
-   prepare_new_block ( s );
-   return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-static
-void add_pair_to_block ( EState* s )
-{
-   Int32 i;
-   UChar ch = (UChar)(s->state_in_ch);
-   for (i = 0; i < s->state_in_len; i++) {
-      BZ_UPDATE_CRC( s->blockCRC, ch );
-   }
-   s->inUse[s->state_in_ch] = True;
-   switch (s->state_in_len) {
-      case 1:
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         break;
-      case 2:
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         break;
-      case 3:
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         break;
-      default:
-         s->inUse[s->state_in_len-4] = True;
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         s->block[s->nblock] = (UChar)ch; s->nblock++;
-         s->block[s->nblock] = ((UChar)(s->state_in_len-4));
-         s->nblock++;
-         break;
-   }
-}
-
-
-/*---------------------------------------------------*/
-static
-void flush_RL ( EState* s )
-{
-   if (s->state_in_ch < 256) add_pair_to_block ( s );
-   init_RL ( s );
-}
-
-
-/*---------------------------------------------------*/
-#define ADD_CHAR_TO_BLOCK(zs,zchh0)               \
-{                                                 \
-   UInt32 zchh = (UInt32)(zchh0);                 \
-   /*-- fast track the common case --*/           \
-   if (zchh != zs->state_in_ch &&                 \
-       zs->state_in_len == 1) {                   \
-      UChar ch = (UChar)(zs->state_in_ch);        \
-      BZ_UPDATE_CRC( zs->blockCRC, ch );          \
-      zs->inUse[zs->state_in_ch] = True;          \
-      zs->block[zs->nblock] = (UChar)ch;          \
-      zs->nblock++;                               \
-      zs->state_in_ch = zchh;                     \
-   }                                              \
-   else                                           \
-   /*-- general, uncommon cases --*/              \
-   if (zchh != zs->state_in_ch ||                 \
-      zs->state_in_len == 255) {                  \
-      if (zs->state_in_ch < 256)                  \
-         add_pair_to_block ( zs );                \
-      zs->state_in_ch = zchh;                     \
-      zs->state_in_len = 1;                       \
-   } else {                                       \
-      zs->state_in_len++;                         \
-   }                                              \
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool copy_input_until_stop ( EState* s )
-{
-   Bool progress_in = False;
-
-   if (s->mode == BZ_M_RUNNING) {
-
-      /*-- fast track the common case --*/
-      while (True) {
-         /*-- block full? --*/
-         if (s->nblock >= s->nblockMAX) break;
-         /*-- no input? --*/
-         if (s->strm->avail_in == 0) break;
-         progress_in = True;
-         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
-         s->strm->next_in++;
-         s->strm->avail_in--;
-         s->strm->total_in_lo32++;
-         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
-      }
-
-   } else {
-
-      /*-- general, uncommon case --*/
-      while (True) {
-         /*-- block full? --*/
-         if (s->nblock >= s->nblockMAX) break;
-         /*-- no input? --*/
-         if (s->strm->avail_in == 0) break;
-         /*-- flush/finish end? --*/
-         if (s->avail_in_expect == 0) break;
-         progress_in = True;
-         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
-         s->strm->next_in++;
-         s->strm->avail_in--;
-         s->strm->total_in_lo32++;
-         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
-         s->avail_in_expect--;
-      }
-   }
-   return progress_in;
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool copy_output_until_stop ( EState* s )
-{
-   Bool progress_out = False;
-
-   while (True) {
-
-      /*-- no output space? --*/
-      if (s->strm->avail_out == 0) break;
-
-      /*-- block done? --*/
-      if (s->state_out_pos >= s->numZ) break;
-
-      progress_out = True;
-      *(s->strm->next_out) = s->zbits[s->state_out_pos];
-      s->state_out_pos++;
-      s->strm->avail_out--;
-      s->strm->next_out++;
-      s->strm->total_out_lo32++;
-      if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
-   }
-
-   return progress_out;
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool handle_compress ( bz_stream* strm )
-{
-   Bool progress_in  = False;
-   Bool progress_out = False;
-   EState* s = strm->state;
-   
-   while (True) {
-
-      if (s->state == BZ_S_OUTPUT) {
-         progress_out |= copy_output_until_stop ( s );
-         if (s->state_out_pos < s->numZ) break;
-         if (s->mode == BZ_M_FINISHING && 
-             s->avail_in_expect == 0 &&
-             isempty_RL(s)) break;
-         prepare_new_block ( s );
-         s->state = BZ_S_INPUT;
-         if (s->mode == BZ_M_FLUSHING && 
-             s->avail_in_expect == 0 &&
-             isempty_RL(s)) break;
-      }
-
-      if (s->state == BZ_S_INPUT) {
-         progress_in |= copy_input_until_stop ( s );
-         if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) {
-            flush_RL ( s );
-            BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) );
-            s->state = BZ_S_OUTPUT;
-         }
-         else
-         if (s->nblock >= s->nblockMAX) {
-            BZ2_compressBlock ( s, False );
-            s->state = BZ_S_OUTPUT;
-         }
-         else
-         if (s->strm->avail_in == 0) {
-            break;
-         }
-      }
-
-   }
-
-   return progress_in || progress_out;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
-{
-   Bool progress;
-   EState* s;
-   if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
-   if (s == NULL) return BZ_PARAM_ERROR;
-   if (s->strm != strm) return BZ_PARAM_ERROR;
-
-   preswitch:
-   switch (s->mode) {
-
-      case BZ_M_IDLE:
-         return BZ_SEQUENCE_ERROR;
-
-      case BZ_M_RUNNING:
-         if (action == BZ_RUN) {
-            progress = handle_compress ( strm );
-            return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
-         } 
-         else
-	 if (action == BZ_FLUSH) {
-            s->avail_in_expect = strm->avail_in;
-            s->mode = BZ_M_FLUSHING;
-            goto preswitch;
-         }
-         else
-         if (action == BZ_FINISH) {
-            s->avail_in_expect = strm->avail_in;
-            s->mode = BZ_M_FINISHING;
-            goto preswitch;
-         }
-         else 
-            return BZ_PARAM_ERROR;
-
-      case BZ_M_FLUSHING:
-         if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
-         if (s->avail_in_expect != s->strm->avail_in) 
-            return BZ_SEQUENCE_ERROR;
-         progress = handle_compress ( strm );
-         if (s->avail_in_expect > 0 || !isempty_RL(s) ||
-             s->state_out_pos < s->numZ) return BZ_FLUSH_OK;
-         s->mode = BZ_M_RUNNING;
-         return BZ_RUN_OK;
-
-      case BZ_M_FINISHING:
-         if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
-         if (s->avail_in_expect != s->strm->avail_in) 
-            return BZ_SEQUENCE_ERROR;
-         progress = handle_compress ( strm );
-         if (!progress) return BZ_SEQUENCE_ERROR;
-         if (s->avail_in_expect > 0 || !isempty_RL(s) ||
-             s->state_out_pos < s->numZ) return BZ_FINISH_OK;
-         s->mode = BZ_M_IDLE;
-         return BZ_STREAM_END;
-   }
-   return BZ_OK; /*--not reached--*/
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompressEnd)  ( bz_stream *strm )
-{
-   EState* s;
-   if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
-   if (s == NULL) return BZ_PARAM_ERROR;
-   if (s->strm != strm) return BZ_PARAM_ERROR;
-
-   if (s->arr1 != NULL) BZFREE(s->arr1);
-   if (s->arr2 != NULL) BZFREE(s->arr2);
-   if (s->ftab != NULL) BZFREE(s->ftab);
-   BZFREE(strm->state);
-
-   strm->state = NULL;   
-
-   return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-/*--- Decompression stuff                         ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompressInit) 
-                     ( bz_stream* strm, 
-                       int        verbosity,
-                       int        small )
-{
-   DState* s;
-
-   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
-
-   if (strm == NULL) return BZ_PARAM_ERROR;
-   if (small != 0 && small != 1) return BZ_PARAM_ERROR;
-   if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR;
-
-   if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
-   if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
-
-   s = BZALLOC( sizeof(DState) );
-   if (s == NULL) return BZ_MEM_ERROR;
-   s->strm                  = strm;
-   strm->state              = s;
-   s->state                 = BZ_X_MAGIC_1;
-   s->bsLive                = 0;
-   s->bsBuff                = 0;
-   s->calculatedCombinedCRC = 0;
-   strm->total_in_lo32      = 0;
-   strm->total_in_hi32      = 0;
-   strm->total_out_lo32     = 0;
-   strm->total_out_hi32     = 0;
-   s->smallDecompress       = (Bool)small;
-   s->ll4                   = NULL;
-   s->ll16                  = NULL;
-   s->tt                    = NULL;
-   s->currBlockNo           = 0;
-   s->verbosity             = verbosity;
-
-   return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-/* Return  True iff data corruption is discovered.
-   Returns False if there is no problem.
-*/
-static
-Bool unRLE_obuf_to_output_FAST ( DState* s )
-{
-   UChar k1;
-
-   if (s->blockRandomised) {
-
-      while (True) {
-         /* try to finish existing run */
-         while (True) {
-            if (s->strm->avail_out == 0) return False;
-            if (s->state_out_len == 0) break;
-            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
-            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
-            s->state_out_len--;
-            s->strm->next_out++;
-            s->strm->avail_out--;
-            s->strm->total_out_lo32++;
-            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
-         }
-
-         /* can a new run be started? */
-         if (s->nblock_used == s->save_nblock+1) return False;
-               
-         /* Only caused by corrupt data stream? */
-         if (s->nblock_used > s->save_nblock+1)
-            return True;
-   
-         s->state_out_len = 1;
-         s->state_out_ch = s->k0;
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         s->state_out_len = 2;
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         s->state_out_len = 3;
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         s->state_out_len = ((Int32)k1) + 4;
-         BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; 
-         s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
-      }
-
-   } else {
-
-      /* restore */
-      UInt32        c_calculatedBlockCRC = s->calculatedBlockCRC;
-      UChar         c_state_out_ch       = s->state_out_ch;
-      Int32         c_state_out_len      = s->state_out_len;
-      Int32         c_nblock_used        = s->nblock_used;
-      Int32         c_k0                 = s->k0;
-      UInt32*       c_tt                 = s->tt;
-      UInt32        c_tPos               = s->tPos;
-      char*         cs_next_out          = s->strm->next_out;
-      unsigned int  cs_avail_out         = s->strm->avail_out;
-      Int32         ro_blockSize100k     = s->blockSize100k;
-      /* end restore */
-
-      UInt32       avail_out_INIT = cs_avail_out;
-      Int32        s_save_nblockPP = s->save_nblock+1;
-      unsigned int total_out_lo32_old;
-
-      while (True) {
-
-         /* try to finish existing run */
-         if (c_state_out_len > 0) {
-            while (True) {
-               if (cs_avail_out == 0) goto return_notr;
-               if (c_state_out_len == 1) break;
-               *( (UChar*)(cs_next_out) ) = c_state_out_ch;
-               BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
-               c_state_out_len--;
-               cs_next_out++;
-               cs_avail_out--;
-            }
-            s_state_out_len_eq_one:
-            {
-               if (cs_avail_out == 0) { 
-                  c_state_out_len = 1; goto return_notr;
-               };
-               *( (UChar*)(cs_next_out) ) = c_state_out_ch;
-               BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
-               cs_next_out++;
-               cs_avail_out--;
-            }
-         }   
-         /* Only caused by corrupt data stream? */
-         if (c_nblock_used > s_save_nblockPP)
-            return True;
-
-         /* can a new run be started? */
-         if (c_nblock_used == s_save_nblockPP) {
-            c_state_out_len = 0; goto return_notr;
-         };   
-         c_state_out_ch = c_k0;
-         BZ_GET_FAST_C(k1); c_nblock_used++;
-         if (k1 != c_k0) { 
-            c_k0 = k1; goto s_state_out_len_eq_one; 
-         };
-         if (c_nblock_used == s_save_nblockPP) 
-            goto s_state_out_len_eq_one;
-   
-         c_state_out_len = 2;
-         BZ_GET_FAST_C(k1); c_nblock_used++;
-         if (c_nblock_used == s_save_nblockPP) continue;
-         if (k1 != c_k0) { c_k0 = k1; continue; };
-   
-         c_state_out_len = 3;
-         BZ_GET_FAST_C(k1); c_nblock_used++;
-         if (c_nblock_used == s_save_nblockPP) continue;
-         if (k1 != c_k0) { c_k0 = k1; continue; };
-   
-         BZ_GET_FAST_C(k1); c_nblock_used++;
-         c_state_out_len = ((Int32)k1) + 4;
-         BZ_GET_FAST_C(c_k0); c_nblock_used++;
-      }
-
-      return_notr:
-      total_out_lo32_old = s->strm->total_out_lo32;
-      s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out);
-      if (s->strm->total_out_lo32 < total_out_lo32_old)
-         s->strm->total_out_hi32++;
-
-      /* save */
-      s->calculatedBlockCRC = c_calculatedBlockCRC;
-      s->state_out_ch       = c_state_out_ch;
-      s->state_out_len      = c_state_out_len;
-      s->nblock_used        = c_nblock_used;
-      s->k0                 = c_k0;
-      s->tt                 = c_tt;
-      s->tPos               = c_tPos;
-      s->strm->next_out     = cs_next_out;
-      s->strm->avail_out    = cs_avail_out;
-      /* end save */
-   }
-   return False;
-}
-
-
-
-/*---------------------------------------------------*/
-__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
-{
-   Int32 nb, na, mid;
-   nb = 0;
-   na = 256;
-   do {
-      mid = (nb + na) >> 1;
-      if (indx >= cftab[mid]) nb = mid; else na = mid;
-   }
-   while (na - nb != 1);
-   return nb;
-}
-
-
-/*---------------------------------------------------*/
-/* Return  True iff data corruption is discovered.
-   Returns False if there is no problem.
-*/
-static
-Bool unRLE_obuf_to_output_SMALL ( DState* s )
-{
-   UChar k1;
-
-   if (s->blockRandomised) {
-
-      while (True) {
-         /* try to finish existing run */
-         while (True) {
-            if (s->strm->avail_out == 0) return False;
-            if (s->state_out_len == 0) break;
-            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
-            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
-            s->state_out_len--;
-            s->strm->next_out++;
-            s->strm->avail_out--;
-            s->strm->total_out_lo32++;
-            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
-         }
-   
-         /* can a new run be started? */
-         if (s->nblock_used == s->save_nblock+1) return False;
-
-         /* Only caused by corrupt data stream? */
-         if (s->nblock_used > s->save_nblock+1)
-            return True;
-   
-         s->state_out_len = 1;
-         s->state_out_ch = s->k0;
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         s->state_out_len = 2;
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         s->state_out_len = 3;
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
-         k1 ^= BZ_RAND_MASK; s->nblock_used++;
-         s->state_out_len = ((Int32)k1) + 4;
-         BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; 
-         s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
-      }
-
-   } else {
-
-      while (True) {
-         /* try to finish existing run */
-         while (True) {
-            if (s->strm->avail_out == 0) return False;
-            if (s->state_out_len == 0) break;
-            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
-            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
-            s->state_out_len--;
-            s->strm->next_out++;
-            s->strm->avail_out--;
-            s->strm->total_out_lo32++;
-            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
-         }
-   
-         /* can a new run be started? */
-         if (s->nblock_used == s->save_nblock+1) return False;
-
-         /* Only caused by corrupt data stream? */
-         if (s->nblock_used > s->save_nblock+1)
-            return True;
-   
-         s->state_out_len = 1;
-         s->state_out_ch = s->k0;
-         BZ_GET_SMALL(k1); s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         s->state_out_len = 2;
-         BZ_GET_SMALL(k1); s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         s->state_out_len = 3;
-         BZ_GET_SMALL(k1); s->nblock_used++;
-         if (s->nblock_used == s->save_nblock+1) continue;
-         if (k1 != s->k0) { s->k0 = k1; continue; };
-   
-         BZ_GET_SMALL(k1); s->nblock_used++;
-         s->state_out_len = ((Int32)k1) + 4;
-         BZ_GET_SMALL(s->k0); s->nblock_used++;
-      }
-
-   }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
-{
-   Bool    corrupt;
-   DState* s;
-   if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
-   if (s == NULL) return BZ_PARAM_ERROR;
-   if (s->strm != strm) return BZ_PARAM_ERROR;
-
-   while (True) {
-      if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
-      if (s->state == BZ_X_OUTPUT) {
-         if (s->smallDecompress)
-            corrupt = unRLE_obuf_to_output_SMALL ( s ); else
-            corrupt = unRLE_obuf_to_output_FAST  ( s );
-         if (corrupt) return BZ_DATA_ERROR;
-         if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
-            BZ_FINALISE_CRC ( s->calculatedBlockCRC );
-            if (s->verbosity >= 3) 
-               VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC, 
-                          s->calculatedBlockCRC );
-            if (s->verbosity >= 2) VPrintf0 ( "]" );
-            if (s->calculatedBlockCRC != s->storedBlockCRC)
-               return BZ_DATA_ERROR;
-            s->calculatedCombinedCRC 
-               = (s->calculatedCombinedCRC << 1) | 
-                    (s->calculatedCombinedCRC >> 31);
-            s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
-            s->state = BZ_X_BLKHDR_1;
-         } else {
-            return BZ_OK;
-         }
-      }
-      if (s->state >= BZ_X_MAGIC_1) {
-         Int32 r = BZ2_decompress ( s );
-         if (r == BZ_STREAM_END) {
-            if (s->verbosity >= 3)
-               VPrintf2 ( "\n    combined CRCs: stored = 0x%08x, computed = 0x%08x", 
-                          s->storedCombinedCRC, s->calculatedCombinedCRC );
-            if (s->calculatedCombinedCRC != s->storedCombinedCRC)
-               return BZ_DATA_ERROR;
-            return r;
-         }
-         if (s->state != BZ_X_OUTPUT) return r;
-      }
-   }
-
-   AssertH ( 0, 6001 );
-
-   return 0;  /*NOTREACHED*/
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompressEnd)  ( bz_stream *strm )
-{
-   DState* s;
-   if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
-   if (s == NULL) return BZ_PARAM_ERROR;
-   if (s->strm != strm) return BZ_PARAM_ERROR;
-
-   if (s->tt   != NULL) BZFREE(s->tt);
-   if (s->ll16 != NULL) BZFREE(s->ll16);
-   if (s->ll4  != NULL) BZFREE(s->ll4);
-
-   BZFREE(strm->state);
-   strm->state = NULL;
-
-   return BZ_OK;
-}
-
-
-#ifndef BZ_NO_STDIO
-/*---------------------------------------------------*/
-/*--- File I/O stuff                              ---*/
-/*---------------------------------------------------*/
-
-#define BZ_SETERR(eee)                    \
-{                                         \
-   if (bzerror != NULL) *bzerror = eee;   \
-   if (bzf != NULL) bzf->lastErr = eee;   \
-}
-
-typedef 
-   struct {
-      FILE*     handle;
-      Char      buf[BZ_MAX_UNUSED];
-      Int32     bufN;
-      Bool      writing;
-      bz_stream strm;
-      Int32     lastErr;
-      Bool      initialisedOk;
-   }
-   bzFile;
-
-
-/*---------------------------------------------*/
-static Bool myfeof ( FILE* f )
-{
-   Int32 c = fgetc ( f );
-   if (c == EOF) return True;
-   ungetc ( c, f );
-   return False;
-}
-
-
-/*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzWriteOpen) 
-                    ( int*  bzerror,      
-                      FILE* f, 
-                      int   blockSize100k, 
-                      int   verbosity,
-                      int   workFactor )
-{
-   Int32   ret;
-   bzFile* bzf = NULL;
-
-   BZ_SETERR(BZ_OK);
-
-   if (f == NULL ||
-       (blockSize100k < 1 || blockSize100k > 9) ||
-       (workFactor < 0 || workFactor > 250) ||
-       (verbosity < 0 || verbosity > 4))
-      { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
-
-   if (ferror(f))
-      { BZ_SETERR(BZ_IO_ERROR); return NULL; };
-
-   bzf = malloc ( sizeof(bzFile) );
-   if (bzf == NULL)
-      { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
-
-   BZ_SETERR(BZ_OK);
-   bzf->initialisedOk = False;
-   bzf->bufN          = 0;
-   bzf->handle        = f;
-   bzf->writing       = True;
-   bzf->strm.bzalloc  = NULL;
-   bzf->strm.bzfree   = NULL;
-   bzf->strm.opaque   = NULL;
-
-   if (workFactor == 0) workFactor = 30;
-   ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, 
-                              verbosity, workFactor );
-   if (ret != BZ_OK)
-      { BZ_SETERR(ret); free(bzf); return NULL; };
-
-   bzf->strm.avail_in = 0;
-   bzf->initialisedOk = True;
-   return bzf;   
-}
-
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzWrite)
-             ( int*    bzerror, 
-               BZFILE* b, 
-               void*   buf, 
-               int     len )
-{
-   Int32 n, n2, ret;
-   bzFile* bzf = (bzFile*)b;
-
-   BZ_SETERR(BZ_OK);
-   if (bzf == NULL || buf == NULL || len < 0)
-      { BZ_SETERR(BZ_PARAM_ERROR); return; };
-   if (!(bzf->writing))
-      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
-   if (ferror(bzf->handle))
-      { BZ_SETERR(BZ_IO_ERROR); return; };
-
-   if (len == 0)
-      { BZ_SETERR(BZ_OK); return; };
-
-   bzf->strm.avail_in = len;
-   bzf->strm.next_in  = buf;
-
-   while (True) {
-      bzf->strm.avail_out = BZ_MAX_UNUSED;
-      bzf->strm.next_out = bzf->buf;
-      ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN );
-      if (ret != BZ_RUN_OK)
-         { BZ_SETERR(ret); return; };
-
-      if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
-         n = BZ_MAX_UNUSED - bzf->strm.avail_out;
-         n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
-                       n, bzf->handle );
-         if (n != n2 || ferror(bzf->handle))
-            { BZ_SETERR(BZ_IO_ERROR); return; };
-      }
-
-      if (bzf->strm.avail_in == 0)
-         { BZ_SETERR(BZ_OK); return; };
-   }
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzWriteClose)
-                  ( int*          bzerror, 
-                    BZFILE*       b, 
-                    int           abandon,
-                    unsigned int* nbytes_in,
-                    unsigned int* nbytes_out )
-{
-   BZ2_bzWriteClose64 ( bzerror, b, abandon, 
-                        nbytes_in, NULL, nbytes_out, NULL );
-}
-
-
-void BZ_API(BZ2_bzWriteClose64)
-                  ( int*          bzerror, 
-                    BZFILE*       b, 
-                    int           abandon,
-                    unsigned int* nbytes_in_lo32,
-                    unsigned int* nbytes_in_hi32,
-                    unsigned int* nbytes_out_lo32,
-                    unsigned int* nbytes_out_hi32 )
-{
-   Int32   n, n2, ret;
-   bzFile* bzf = (bzFile*)b;
-
-   if (bzf == NULL)
-      { BZ_SETERR(BZ_OK); return; };
-   if (!(bzf->writing))
-      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
-   if (ferror(bzf->handle))
-      { BZ_SETERR(BZ_IO_ERROR); return; };
-
-   if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0;
-   if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0;
-   if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0;
-   if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0;
-
-   if ((!abandon) && bzf->lastErr == BZ_OK) {
-      while (True) {
-         bzf->strm.avail_out = BZ_MAX_UNUSED;
-         bzf->strm.next_out = bzf->buf;
-         ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH );
-         if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END)
-            { BZ_SETERR(ret); return; };
-
-         if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
-            n = BZ_MAX_UNUSED - bzf->strm.avail_out;
-            n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
-                          n, bzf->handle );
-            if (n != n2 || ferror(bzf->handle))
-               { BZ_SETERR(BZ_IO_ERROR); return; };
-         }
-
-         if (ret == BZ_STREAM_END) break;
-      }
-   }
-
-   if ( !abandon && !ferror ( bzf->handle ) ) {
-      fflush ( bzf->handle );
-      if (ferror(bzf->handle))
-         { BZ_SETERR(BZ_IO_ERROR); return; };
-   }
-
-   if (nbytes_in_lo32 != NULL)
-      *nbytes_in_lo32 = bzf->strm.total_in_lo32;
-   if (nbytes_in_hi32 != NULL)
-      *nbytes_in_hi32 = bzf->strm.total_in_hi32;
-   if (nbytes_out_lo32 != NULL)
-      *nbytes_out_lo32 = bzf->strm.total_out_lo32;
-   if (nbytes_out_hi32 != NULL)
-      *nbytes_out_hi32 = bzf->strm.total_out_hi32;
-
-   BZ_SETERR(BZ_OK);
-   BZ2_bzCompressEnd ( &(bzf->strm) );
-   free ( bzf );
-}
-
-
-/*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzReadOpen) 
-                   ( int*  bzerror, 
-                     FILE* f, 
-                     int   verbosity,
-                     int   small,
-                     void* unused,
-                     int   nUnused )
-{
-   bzFile* bzf = NULL;
-   int     ret;
-
-   BZ_SETERR(BZ_OK);
-
-   if (f == NULL || 
-       (small != 0 && small != 1) ||
-       (verbosity < 0 || verbosity > 4) ||
-       (unused == NULL && nUnused != 0) ||
-       (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED)))
-      { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
-
-   if (ferror(f))
-      { BZ_SETERR(BZ_IO_ERROR); return NULL; };
-
-   bzf = malloc ( sizeof(bzFile) );
-   if (bzf == NULL) 
-      { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
-
-   BZ_SETERR(BZ_OK);
-
-   bzf->initialisedOk = False;
-   bzf->handle        = f;
-   bzf->bufN          = 0;
-   bzf->writing       = False;
-   bzf->strm.bzalloc  = NULL;
-   bzf->strm.bzfree   = NULL;
-   bzf->strm.opaque   = NULL;
-   
-   while (nUnused > 0) {
-      bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
-      unused = ((void*)( 1 + ((UChar*)(unused))  ));
-      nUnused--;
-   }
-
-   ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small );
-   if (ret != BZ_OK)
-      { BZ_SETERR(ret); free(bzf); return NULL; };
-
-   bzf->strm.avail_in = bzf->bufN;
-   bzf->strm.next_in  = bzf->buf;
-
-   bzf->initialisedOk = True;
-   return bzf;   
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b )
-{
-   bzFile* bzf = (bzFile*)b;
-
-   BZ_SETERR(BZ_OK);
-   if (bzf == NULL)
-      { BZ_SETERR(BZ_OK); return; };
-
-   if (bzf->writing)
-      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
-
-   if (bzf->initialisedOk)
-      (void)BZ2_bzDecompressEnd ( &(bzf->strm) );
-   free ( bzf );
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzRead) 
-           ( int*    bzerror, 
-             BZFILE* b, 
-             void*   buf, 
-             int     len )
-{
-   Int32   n, ret;
-   bzFile* bzf = (bzFile*)b;
-
-   BZ_SETERR(BZ_OK);
-
-   if (bzf == NULL || buf == NULL || len < 0)
-      { BZ_SETERR(BZ_PARAM_ERROR); return 0; };
-
-   if (bzf->writing)
-      { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; };
-
-   if (len == 0)
-      { BZ_SETERR(BZ_OK); return 0; };
-
-   bzf->strm.avail_out = len;
-   bzf->strm.next_out = buf;
-
-   while (True) {
-
-      if (ferror(bzf->handle)) 
-         { BZ_SETERR(BZ_IO_ERROR); return 0; };
-
-      if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
-         n = fread ( bzf->buf, sizeof(UChar), 
-                     BZ_MAX_UNUSED, bzf->handle );
-         if (ferror(bzf->handle))
-            { BZ_SETERR(BZ_IO_ERROR); return 0; };
-         bzf->bufN = n;
-         bzf->strm.avail_in = bzf->bufN;
-         bzf->strm.next_in = bzf->buf;
-      }
-
-      ret = BZ2_bzDecompress ( &(bzf->strm) );
-
-      if (ret != BZ_OK && ret != BZ_STREAM_END)
-         { BZ_SETERR(ret); return 0; };
-
-      if (ret == BZ_OK && myfeof(bzf->handle) && 
-          bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
-         { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
-
-      if (ret == BZ_STREAM_END)
-         { BZ_SETERR(BZ_STREAM_END);
-           return len - bzf->strm.avail_out; };
-      if (bzf->strm.avail_out == 0)
-         { BZ_SETERR(BZ_OK); return len; };
-      
-   }
-
-   return 0; /*not reached*/
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzReadGetUnused) 
-                     ( int*    bzerror, 
-                       BZFILE* b, 
-                       void**  unused, 
-                       int*    nUnused )
-{
-   bzFile* bzf = (bzFile*)b;
-   if (bzf == NULL)
-      { BZ_SETERR(BZ_PARAM_ERROR); return; };
-   if (bzf->lastErr != BZ_STREAM_END)
-      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
-   if (unused == NULL || nUnused == NULL)
-      { BZ_SETERR(BZ_PARAM_ERROR); return; };
-
-   BZ_SETERR(BZ_OK);
-   *nUnused = bzf->strm.avail_in;
-   *unused = bzf->strm.next_in;
-}
-#endif
-
-
-/*---------------------------------------------------*/
-/*--- Misc convenience stuff                      ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffCompress) 
-                         ( char*         dest, 
-                           unsigned int* destLen,
-                           char*         source, 
-                           unsigned int  sourceLen,
-                           int           blockSize100k, 
-                           int           verbosity, 
-                           int           workFactor )
-{
-   bz_stream strm;
-   int ret;
-
-   if (dest == NULL || destLen == NULL || 
-       source == NULL ||
-       blockSize100k < 1 || blockSize100k > 9 ||
-       verbosity < 0 || verbosity > 4 ||
-       workFactor < 0 || workFactor > 250) 
-      return BZ_PARAM_ERROR;
-
-   if (workFactor == 0) workFactor = 30;
-   strm.bzalloc = NULL;
-   strm.bzfree = NULL;
-   strm.opaque = NULL;
-   ret = BZ2_bzCompressInit ( &strm, blockSize100k, 
-                              verbosity, workFactor );
-   if (ret != BZ_OK) return ret;
-
-   strm.next_in = source;
-   strm.next_out = dest;
-   strm.avail_in = sourceLen;
-   strm.avail_out = *destLen;
-
-   ret = BZ2_bzCompress ( &strm, BZ_FINISH );
-   if (ret == BZ_FINISH_OK) goto output_overflow;
-   if (ret != BZ_STREAM_END) goto errhandler;
-
-   /* normal termination */
-   *destLen -= strm.avail_out;   
-   BZ2_bzCompressEnd ( &strm );
-   return BZ_OK;
-
-   output_overflow:
-   BZ2_bzCompressEnd ( &strm );
-   return BZ_OUTBUFF_FULL;
-
-   errhandler:
-   BZ2_bzCompressEnd ( &strm );
-   return ret;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffDecompress) 
-                           ( char*         dest, 
-                             unsigned int* destLen,
-                             char*         source, 
-                             unsigned int  sourceLen,
-                             int           small,
-                             int           verbosity )
-{
-   bz_stream strm;
-   int ret;
-
-   if (dest == NULL || destLen == NULL || 
-       source == NULL ||
-       (small != 0 && small != 1) ||
-       verbosity < 0 || verbosity > 4) 
-          return BZ_PARAM_ERROR;
-
-   strm.bzalloc = NULL;
-   strm.bzfree = NULL;
-   strm.opaque = NULL;
-   ret = BZ2_bzDecompressInit ( &strm, verbosity, small );
-   if (ret != BZ_OK) return ret;
-
-   strm.next_in = source;
-   strm.next_out = dest;
-   strm.avail_in = sourceLen;
-   strm.avail_out = *destLen;
-
-   ret = BZ2_bzDecompress ( &strm );
-   if (ret == BZ_OK) goto output_overflow_or_eof;
-   if (ret != BZ_STREAM_END) goto errhandler;
-
-   /* normal termination */
-   *destLen -= strm.avail_out;
-   BZ2_bzDecompressEnd ( &strm );
-   return BZ_OK;
-
-   output_overflow_or_eof:
-   if (strm.avail_out > 0) {
-      BZ2_bzDecompressEnd ( &strm );
-      return BZ_UNEXPECTED_EOF;
-   } else {
-      BZ2_bzDecompressEnd ( &strm );
-      return BZ_OUTBUFF_FULL;
-   };      
-
-   errhandler:
-   BZ2_bzDecompressEnd ( &strm );
-   return ret; 
-}
-
-
-/*---------------------------------------------------*/
-/*--
-   Code contributed by Yoshioka Tsuneo (tsuneo at rr.iij4u.or.jp)
-   to support better zlib compatibility.
-   This code is not _officially_ part of libbzip2 (yet);
-   I haven't tested it, documented it, or considered the
-   threading-safeness of it.
-   If this code breaks, please contact both Yoshioka and me.
---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-/*--
-   return version like "0.9.5d, 4-Sept-1999".
---*/
-const char * BZ_API(BZ2_bzlibVersion)(void)
-{
-   return BZ_VERSION;
-}
-
-
-#ifndef BZ_NO_STDIO
-/*---------------------------------------------------*/
-
-#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
-#   include <fcntl.h>
-#   include <io.h>
-#   define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
-#else
-#   define SET_BINARY_MODE(file)
-#endif
-static
-BZFILE * bzopen_or_bzdopen
-               ( const char *path,   /* no use when bzdopen */
-                 int fd,             /* no use when bzdopen */
-                 const char *mode,
-                 int open_mode)      /* bzopen: 0, bzdopen:1 */
-{
-   int    bzerr;
-   char   unused[BZ_MAX_UNUSED];
-   int    blockSize100k = 9;
-   int    writing       = 0;
-   char   mode2[10]     = "";
-   FILE   *fp           = NULL;
-   BZFILE *bzfp         = NULL;
-   int    verbosity     = 0;
-   int    workFactor    = 30;
-   int    smallMode     = 0;
-   int    nUnused       = 0; 
-
-   if (mode == NULL) return NULL;
-   while (*mode) {
-      switch (*mode) {
-      case 'r':
-         writing = 0; break;
-      case 'w':
-         writing = 1; break;
-      case 's':
-         smallMode = 1; break;
-      default:
-         if (isdigit((int)(*mode))) {
-            blockSize100k = *mode-BZ_HDR_0;
-         }
-      }
-      mode++;
-   }
-   strcat(mode2, writing ? "w" : "r" );
-   strcat(mode2,"b");   /* binary mode */
-
-   if (open_mode==0) {
-      if (path==NULL || strcmp(path,"")==0) {
-        fp = (writing ? stdout : stdin);
-        SET_BINARY_MODE(fp);
-      } else {
-        fp = fopen(path,mode2);
-      }
-   } else {
-#ifdef BZ_STRICT_ANSI
-      fp = NULL;
-#else
-      fp = fdopen(fd,mode2);
-#endif
-   }
-   if (fp == NULL) return NULL;
-
-   if (writing) {
-      /* Guard against total chaos and anarchy -- JRS */
-      if (blockSize100k < 1) blockSize100k = 1;
-      if (blockSize100k > 9) blockSize100k = 9; 
-      bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
-                             verbosity,workFactor);
-   } else {
-      bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode,
-                            unused,nUnused);
-   }
-   if (bzfp == NULL) {
-      if (fp != stdin && fp != stdout) fclose(fp);
-      return NULL;
-   }
-   return bzfp;
-}
-
-
-/*---------------------------------------------------*/
-/*--
-   open file for read or write.
-      ex) bzopen("file","w9")
-      case path="" or NULL => use stdin or stdout.
---*/
-BZFILE * BZ_API(BZ2_bzopen)
-               ( const char *path,
-                 const char *mode )
-{
-   return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0);
-}
-
-
-/*---------------------------------------------------*/
-BZFILE * BZ_API(BZ2_bzdopen)
-               ( int fd,
-                 const char *mode )
-{
-   return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1);
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len )
-{
-   int bzerr, nread;
-   if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0;
-   nread = BZ2_bzRead(&bzerr,b,buf,len);
-   if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) {
-      return nread;
-   } else {
-      return -1;
-   }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len )
-{
-   int bzerr;
-
-   BZ2_bzWrite(&bzerr,b,buf,len);
-   if(bzerr == BZ_OK){
-      return len;
-   }else{
-      return -1;
-   }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzflush) (BZFILE *b)
-{
-   /* do nothing now... */
-   return 0;
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzclose) (BZFILE* b)
-{
-   int bzerr;
-   FILE *fp;
-   
-   if (b==NULL) {return;}
-   fp = ((bzFile *)b)->handle;
-   if(((bzFile*)b)->writing){
-      BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL);
-      if(bzerr != BZ_OK){
-         BZ2_bzWriteClose(NULL,b,1,NULL,NULL);
-      }
-   }else{
-      BZ2_bzReadClose(&bzerr,b);
-   }
-   if(fp!=stdin && fp!=stdout){
-      fclose(fp);
-   }
-}
-
-
-/*---------------------------------------------------*/
-/*--
-   return last error code 
---*/
-static const char *bzerrorstrings[] = {
-       "OK"
-      ,"SEQUENCE_ERROR"
-      ,"PARAM_ERROR"
-      ,"MEM_ERROR"
-      ,"DATA_ERROR"
-      ,"DATA_ERROR_MAGIC"
-      ,"IO_ERROR"
-      ,"UNEXPECTED_EOF"
-      ,"OUTBUFF_FULL"
-      ,"CONFIG_ERROR"
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-};
-
-
-const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum)
-{
-   int err = ((bzFile *)b)->lastErr;
-
-   if(err>0) err = 0;
-   *errnum = err;
-   return bzerrorstrings[err*-1];
-}
-#endif
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                           bzlib.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/bzlib.h b/libs/ext/bzip2/bzlib.h
deleted file mode 100644
index 8277123..0000000
--- a/libs/ext/bzip2/bzlib.h
+++ /dev/null
@@ -1,282 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Public header file for the library.                   ---*/
-/*---                                               bzlib.h ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#ifndef _BZLIB_H
-#define _BZLIB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define BZ_RUN               0
-#define BZ_FLUSH             1
-#define BZ_FINISH            2
-
-#define BZ_OK                0
-#define BZ_RUN_OK            1
-#define BZ_FLUSH_OK          2
-#define BZ_FINISH_OK         3
-#define BZ_STREAM_END        4
-#define BZ_SEQUENCE_ERROR    (-1)
-#define BZ_PARAM_ERROR       (-2)
-#define BZ_MEM_ERROR         (-3)
-#define BZ_DATA_ERROR        (-4)
-#define BZ_DATA_ERROR_MAGIC  (-5)
-#define BZ_IO_ERROR          (-6)
-#define BZ_UNEXPECTED_EOF    (-7)
-#define BZ_OUTBUFF_FULL      (-8)
-#define BZ_CONFIG_ERROR      (-9)
-
-typedef 
-   struct {
-      char *next_in;
-      unsigned int avail_in;
-      unsigned int total_in_lo32;
-      unsigned int total_in_hi32;
-
-      char *next_out;
-      unsigned int avail_out;
-      unsigned int total_out_lo32;
-      unsigned int total_out_hi32;
-
-      void *state;
-
-      void *(*bzalloc)(void *,int,int);
-      void (*bzfree)(void *,void *);
-      void *opaque;
-   } 
-   bz_stream;
-
-
-#ifndef BZ_IMPORT
-#define BZ_EXPORT
-#endif
-
-#ifndef BZ_NO_STDIO
-/* Need a definitition for FILE */
-#include <stdio.h>
-#endif
-
-#ifdef _WIN32
-#   include <windows.h>
-#   ifdef small
-      /* windows.h define small to char */
-#      undef small
-#   endif
-#   ifdef BZ_EXPORT
-#   define BZ_API(func) WINAPI func
-#   define BZ_EXTERN extern
-#   else
-   /* import windows dll dynamically */
-#   define BZ_API(func) (WINAPI * func)
-#   define BZ_EXTERN
-#   endif
-#else
-#   define BZ_API(func) func
-#   define BZ_EXTERN extern
-#endif
-
-
-/*-- Core (low-level) library functions --*/
-
-BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( 
-      bz_stream* strm, 
-      int        blockSize100k, 
-      int        verbosity, 
-      int        workFactor 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzCompress) ( 
-      bz_stream* strm, 
-      int action 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( 
-      bz_stream* strm 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( 
-      bz_stream *strm, 
-      int       verbosity, 
-      int       small
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( 
-      bz_stream* strm 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( 
-      bz_stream *strm 
-   );
-
-
-
-/*-- High(er) level library functions --*/
-
-#ifndef BZ_NO_STDIO
-#define BZ_MAX_UNUSED 5000
-
-typedef void BZFILE;
-
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( 
-      int*  bzerror,   
-      FILE* f, 
-      int   verbosity, 
-      int   small,
-      void* unused,    
-      int   nUnused 
-   );
-
-BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( 
-      int*    bzerror, 
-      BZFILE* b 
-   );
-
-BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( 
-      int*    bzerror, 
-      BZFILE* b, 
-      void**  unused,  
-      int*    nUnused 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzRead) ( 
-      int*    bzerror, 
-      BZFILE* b, 
-      void*   buf, 
-      int     len 
-   );
-
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( 
-      int*  bzerror,      
-      FILE* f, 
-      int   blockSize100k, 
-      int   verbosity, 
-      int   workFactor 
-   );
-
-BZ_EXTERN void BZ_API(BZ2_bzWrite) ( 
-      int*    bzerror, 
-      BZFILE* b, 
-      void*   buf, 
-      int     len 
-   );
-
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( 
-      int*          bzerror, 
-      BZFILE*       b, 
-      int           abandon, 
-      unsigned int* nbytes_in, 
-      unsigned int* nbytes_out 
-   );
-
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( 
-      int*          bzerror, 
-      BZFILE*       b, 
-      int           abandon, 
-      unsigned int* nbytes_in_lo32, 
-      unsigned int* nbytes_in_hi32, 
-      unsigned int* nbytes_out_lo32, 
-      unsigned int* nbytes_out_hi32
-   );
-#endif
-
-
-/*-- Utility functions --*/
-
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( 
-      char*         dest, 
-      unsigned int* destLen,
-      char*         source, 
-      unsigned int  sourceLen,
-      int           blockSize100k, 
-      int           verbosity, 
-      int           workFactor 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( 
-      char*         dest, 
-      unsigned int* destLen,
-      char*         source, 
-      unsigned int  sourceLen,
-      int           small, 
-      int           verbosity 
-   );
-
-
-/*--
-   Code contributed by Yoshioka Tsuneo (tsuneo at rr.iij4u.or.jp)
-   to support better zlib compatibility.
-   This code is not _officially_ part of libbzip2 (yet);
-   I haven't tested it, documented it, or considered the
-   threading-safeness of it.
-   If this code breaks, please contact both Yoshioka and me.
---*/
-
-BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
-      void
-   );
-
-#ifndef BZ_NO_STDIO
-BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
-      const char *path,
-      const char *mode
-   );
-
-BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
-      int        fd,
-      const char *mode
-   );
-         
-BZ_EXTERN int BZ_API(BZ2_bzread) (
-      BZFILE* b, 
-      void* buf, 
-      int len 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzwrite) (
-      BZFILE* b, 
-      void*   buf, 
-      int     len 
-   );
-
-BZ_EXTERN int BZ_API(BZ2_bzflush) (
-      BZFILE* b
-   );
-
-BZ_EXTERN void BZ_API(BZ2_bzclose) (
-      BZFILE* b
-   );
-
-BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
-      BZFILE *b, 
-      int    *errnum
-   );
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/*-------------------------------------------------------------*/
-/*--- end                                           bzlib.h ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/bzlib_private.h b/libs/ext/bzip2/bzlib_private.h
deleted file mode 100644
index 5d0217f..0000000
--- a/libs/ext/bzip2/bzlib_private.h
+++ /dev/null
@@ -1,509 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Private header file for the library.                  ---*/
-/*---                                       bzlib_private.h ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#ifndef _BZLIB_PRIVATE_H
-#define _BZLIB_PRIVATE_H
-
-#include <stdlib.h>
-
-#ifndef BZ_NO_STDIO
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#endif
-
-#include "bzlib.h"
-
-
-
-/*-- General stuff. --*/
-
-#define BZ_VERSION  "1.0.6, 6-Sept-2010"
-
-typedef char            Char;
-typedef unsigned char   Bool;
-typedef unsigned char   UChar;
-typedef int             Int32;
-typedef unsigned int    UInt32;
-typedef short           Int16;
-typedef unsigned short  UInt16;
-
-#define True  ((Bool)1)
-#define False ((Bool)0)
-
-#ifndef __GNUC__
-#define __inline__  /* */
-#endif 
-
-#ifndef BZ_NO_STDIO
-
-extern void BZ2_bz__AssertH__fail ( int errcode );
-#define AssertH(cond,errcode) \
-   { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); }
-
-#if BZ_DEBUG
-#define AssertD(cond,msg) \
-   { if (!(cond)) {       \
-      fprintf ( stderr,   \
-        "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\
-      exit(1); \
-   }}
-#else
-#define AssertD(cond,msg) /* */
-#endif
-
-#define VPrintf0(zf) \
-   fprintf(stderr,zf)
-#define VPrintf1(zf,za1) \
-   fprintf(stderr,zf,za1)
-#define VPrintf2(zf,za1,za2) \
-   fprintf(stderr,zf,za1,za2)
-#define VPrintf3(zf,za1,za2,za3) \
-   fprintf(stderr,zf,za1,za2,za3)
-#define VPrintf4(zf,za1,za2,za3,za4) \
-   fprintf(stderr,zf,za1,za2,za3,za4)
-#define VPrintf5(zf,za1,za2,za3,za4,za5) \
-   fprintf(stderr,zf,za1,za2,za3,za4,za5)
-
-#else
-
-extern void bz_internal_error ( int errcode );
-#define AssertH(cond,errcode) \
-   { if (!(cond)) bz_internal_error ( errcode ); }
-#define AssertD(cond,msg)                do { } while (0)
-#define VPrintf0(zf)                     do { } while (0)
-#define VPrintf1(zf,za1)                 do { } while (0)
-#define VPrintf2(zf,za1,za2)             do { } while (0)
-#define VPrintf3(zf,za1,za2,za3)         do { } while (0)
-#define VPrintf4(zf,za1,za2,za3,za4)     do { } while (0)
-#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0)
-
-#endif
-
-
-#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1)
-#define BZFREE(ppp)  (strm->bzfree)(strm->opaque,(ppp))
-
-
-/*-- Header bytes. --*/
-
-#define BZ_HDR_B 0x42   /* 'B' */
-#define BZ_HDR_Z 0x5a   /* 'Z' */
-#define BZ_HDR_h 0x68   /* 'h' */
-#define BZ_HDR_0 0x30   /* '0' */
-  
-/*-- Constants for the back end. --*/
-
-#define BZ_MAX_ALPHA_SIZE 258
-#define BZ_MAX_CODE_LEN    23
-
-#define BZ_RUNA 0
-#define BZ_RUNB 1
-
-#define BZ_N_GROUPS 6
-#define BZ_G_SIZE   50
-#define BZ_N_ITERS  4
-
-#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE))
-
-
-
-/*-- Stuff for randomising repetitive blocks. --*/
-
-extern Int32 BZ2_rNums[512];
-
-#define BZ_RAND_DECLS                          \
-   Int32 rNToGo;                               \
-   Int32 rTPos                                 \
-
-#define BZ_RAND_INIT_MASK                      \
-   s->rNToGo = 0;                              \
-   s->rTPos  = 0                               \
-
-#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)
-
-#define BZ_RAND_UPD_MASK                       \
-   if (s->rNToGo == 0) {                       \
-      s->rNToGo = BZ2_rNums[s->rTPos];         \
-      s->rTPos++;                              \
-      if (s->rTPos == 512) s->rTPos = 0;       \
-   }                                           \
-   s->rNToGo--;
-
-
-
-/*-- Stuff for doing CRCs. --*/
-
-extern UInt32 BZ2_crc32Table[256];
-
-#define BZ_INITIALISE_CRC(crcVar)              \
-{                                              \
-   crcVar = 0xffffffffL;                       \
-}
-
-#define BZ_FINALISE_CRC(crcVar)                \
-{                                              \
-   crcVar = ~(crcVar);                         \
-}
-
-#define BZ_UPDATE_CRC(crcVar,cha)              \
-{                                              \
-   crcVar = (crcVar << 8) ^                    \
-            BZ2_crc32Table[(crcVar >> 24) ^    \
-                           ((UChar)cha)];      \
-}
-
-
-
-/*-- States and modes for compression. --*/
-
-#define BZ_M_IDLE      1
-#define BZ_M_RUNNING   2
-#define BZ_M_FLUSHING  3
-#define BZ_M_FINISHING 4
-
-#define BZ_S_OUTPUT    1
-#define BZ_S_INPUT     2
-
-#define BZ_N_RADIX 2
-#define BZ_N_QSORT 12
-#define BZ_N_SHELL 18
-#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2)
-
-
-
-
-/*-- Structure holding all the compression-side stuff. --*/
-
-typedef
-   struct {
-      /* pointer back to the struct bz_stream */
-      bz_stream* strm;
-
-      /* mode this stream is in, and whether inputting */
-      /* or outputting data */
-      Int32    mode;
-      Int32    state;
-
-      /* remembers avail_in when flush/finish requested */
-      UInt32   avail_in_expect;
-
-      /* for doing the block sorting */
-      UInt32*  arr1;
-      UInt32*  arr2;
-      UInt32*  ftab;
-      Int32    origPtr;
-
-      /* aliases for arr1 and arr2 */
-      UInt32*  ptr;
-      UChar*   block;
-      UInt16*  mtfv;
-      UChar*   zbits;
-
-      /* for deciding when to use the fallback sorting algorithm */
-      Int32    workFactor;
-
-      /* run-length-encoding of the input */
-      UInt32   state_in_ch;
-      Int32    state_in_len;
-      BZ_RAND_DECLS;
-
-      /* input and output limits and current posns */
-      Int32    nblock;
-      Int32    nblockMAX;
-      Int32    numZ;
-      Int32    state_out_pos;
-
-      /* map of bytes used in block */
-      Int32    nInUse;
-      Bool     inUse[256];
-      UChar    unseqToSeq[256];
-
-      /* the buffer for bit stream creation */
-      UInt32   bsBuff;
-      Int32    bsLive;
-
-      /* block and combined CRCs */
-      UInt32   blockCRC;
-      UInt32   combinedCRC;
-
-      /* misc administratium */
-      Int32    verbosity;
-      Int32    blockNo;
-      Int32    blockSize100k;
-
-      /* stuff for coding the MTF values */
-      Int32    nMTF;
-      Int32    mtfFreq    [BZ_MAX_ALPHA_SIZE];
-      UChar    selector   [BZ_MAX_SELECTORS];
-      UChar    selectorMtf[BZ_MAX_SELECTORS];
-
-      UChar    len     [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-      Int32    code    [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-      Int32    rfreq   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-      /* second dimension: only 3 needed; 4 makes index calculations faster */
-      UInt32   len_pack[BZ_MAX_ALPHA_SIZE][4];
-
-   }
-   EState;
-
-
-
-/*-- externs for compression. --*/
-
-extern void 
-BZ2_blockSort ( EState* );
-
-extern void 
-BZ2_compressBlock ( EState*, Bool );
-
-extern void 
-BZ2_bsInitWrite ( EState* );
-
-extern void 
-BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 );
-
-extern void 
-BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 );
-
-
-
-/*-- states for decompression. --*/
-
-#define BZ_X_IDLE        1
-#define BZ_X_OUTPUT      2
-
-#define BZ_X_MAGIC_1     10
-#define BZ_X_MAGIC_2     11
-#define BZ_X_MAGIC_3     12
-#define BZ_X_MAGIC_4     13
-#define BZ_X_BLKHDR_1    14
-#define BZ_X_BLKHDR_2    15
-#define BZ_X_BLKHDR_3    16
-#define BZ_X_BLKHDR_4    17
-#define BZ_X_BLKHDR_5    18
-#define BZ_X_BLKHDR_6    19
-#define BZ_X_BCRC_1      20
-#define BZ_X_BCRC_2      21
-#define BZ_X_BCRC_3      22
-#define BZ_X_BCRC_4      23
-#define BZ_X_RANDBIT     24
-#define BZ_X_ORIGPTR_1   25
-#define BZ_X_ORIGPTR_2   26
-#define BZ_X_ORIGPTR_3   27
-#define BZ_X_MAPPING_1   28
-#define BZ_X_MAPPING_2   29
-#define BZ_X_SELECTOR_1  30
-#define BZ_X_SELECTOR_2  31
-#define BZ_X_SELECTOR_3  32
-#define BZ_X_CODING_1    33
-#define BZ_X_CODING_2    34
-#define BZ_X_CODING_3    35
-#define BZ_X_MTF_1       36
-#define BZ_X_MTF_2       37
-#define BZ_X_MTF_3       38
-#define BZ_X_MTF_4       39
-#define BZ_X_MTF_5       40
-#define BZ_X_MTF_6       41
-#define BZ_X_ENDHDR_2    42
-#define BZ_X_ENDHDR_3    43
-#define BZ_X_ENDHDR_4    44
-#define BZ_X_ENDHDR_5    45
-#define BZ_X_ENDHDR_6    46
-#define BZ_X_CCRC_1      47
-#define BZ_X_CCRC_2      48
-#define BZ_X_CCRC_3      49
-#define BZ_X_CCRC_4      50
-
-
-
-/*-- Constants for the fast MTF decoder. --*/
-
-#define MTFA_SIZE 4096
-#define MTFL_SIZE 16
-
-
-
-/*-- Structure holding all the decompression-side stuff. --*/
-
-typedef
-   struct {
-      /* pointer back to the struct bz_stream */
-      bz_stream* strm;
-
-      /* state indicator for this stream */
-      Int32    state;
-
-      /* for doing the final run-length decoding */
-      UChar    state_out_ch;
-      Int32    state_out_len;
-      Bool     blockRandomised;
-      BZ_RAND_DECLS;
-
-      /* the buffer for bit stream reading */
-      UInt32   bsBuff;
-      Int32    bsLive;
-
-      /* misc administratium */
-      Int32    blockSize100k;
-      Bool     smallDecompress;
-      Int32    currBlockNo;
-      Int32    verbosity;
-
-      /* for undoing the Burrows-Wheeler transform */
-      Int32    origPtr;
-      UInt32   tPos;
-      Int32    k0;
-      Int32    unzftab[256];
-      Int32    nblock_used;
-      Int32    cftab[257];
-      Int32    cftabCopy[257];
-
-      /* for undoing the Burrows-Wheeler transform (FAST) */
-      UInt32   *tt;
-
-      /* for undoing the Burrows-Wheeler transform (SMALL) */
-      UInt16   *ll16;
-      UChar    *ll4;
-
-      /* stored and calculated CRCs */
-      UInt32   storedBlockCRC;
-      UInt32   storedCombinedCRC;
-      UInt32   calculatedBlockCRC;
-      UInt32   calculatedCombinedCRC;
-
-      /* map of bytes used in block */
-      Int32    nInUse;
-      Bool     inUse[256];
-      Bool     inUse16[16];
-      UChar    seqToUnseq[256];
-
-      /* for decoding the MTF values */
-      UChar    mtfa   [MTFA_SIZE];
-      Int32    mtfbase[256 / MTFL_SIZE];
-      UChar    selector   [BZ_MAX_SELECTORS];
-      UChar    selectorMtf[BZ_MAX_SELECTORS];
-      UChar    len  [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-
-      Int32    limit  [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-      Int32    base   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-      Int32    perm   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-      Int32    minLens[BZ_N_GROUPS];
-
-      /* save area for scalars in the main decompress code */
-      Int32    save_i;
-      Int32    save_j;
-      Int32    save_t;
-      Int32    save_alphaSize;
-      Int32    save_nGroups;
-      Int32    save_nSelectors;
-      Int32    save_EOB;
-      Int32    save_groupNo;
-      Int32    save_groupPos;
-      Int32    save_nextSym;
-      Int32    save_nblockMAX;
-      Int32    save_nblock;
-      Int32    save_es;
-      Int32    save_N;
-      Int32    save_curr;
-      Int32    save_zt;
-      Int32    save_zn; 
-      Int32    save_zvec;
-      Int32    save_zj;
-      Int32    save_gSel;
-      Int32    save_gMinlen;
-      Int32*   save_gLimit;
-      Int32*   save_gBase;
-      Int32*   save_gPerm;
-
-   }
-   DState;
-
-
-
-/*-- Macros for decompression. --*/
-
-#define BZ_GET_FAST(cccc)                     \
-    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
-    if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
-    s->tPos = s->tt[s->tPos];                 \
-    cccc = (UChar)(s->tPos & 0xff);           \
-    s->tPos >>= 8;
-
-#define BZ_GET_FAST_C(cccc)                   \
-    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
-    if (c_tPos >= (UInt32)100000 * (UInt32)ro_blockSize100k) return True; \
-    c_tPos = c_tt[c_tPos];                    \
-    cccc = (UChar)(c_tPos & 0xff);            \
-    c_tPos >>= 8;
-
-#define SET_LL4(i,n)                                          \
-   { if (((i) & 0x1) == 0)                                    \
-        s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else    \
-        s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4);  \
-   }
-
-#define GET_LL4(i)                             \
-   ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF)
-
-#define SET_LL(i,n)                          \
-   { s->ll16[i] = (UInt16)(n & 0x0000ffff);  \
-     SET_LL4(i, n >> 16);                    \
-   }
-
-#define GET_LL(i) \
-   (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16))
-
-#define BZ_GET_SMALL(cccc)                            \
-    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
-    if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
-    cccc = BZ2_indexIntoF ( s->tPos, s->cftab );    \
-    s->tPos = GET_LL(s->tPos);
-
-
-/*-- externs for decompression. --*/
-
-extern Int32 
-BZ2_indexIntoF ( Int32, Int32* );
-
-extern Int32 
-BZ2_decompress ( DState* );
-
-extern void 
-BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*,
-                           Int32,  Int32, Int32 );
-
-
-#endif
-
-
-/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/
-
-#ifdef BZ_NO_STDIO
-#ifndef NULL
-#define NULL 0
-#endif
-#endif
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                   bzlib_private.h ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/compress.c b/libs/ext/bzip2/compress.c
deleted file mode 100644
index caf7696..0000000
--- a/libs/ext/bzip2/compress.c
+++ /dev/null
@@ -1,672 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Compression machinery (not incl block sorting)        ---*/
-/*---                                            compress.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-/* CHANGES
-    0.9.0    -- original version.
-    0.9.0a/b -- no changes in this file.
-    0.9.0c   -- changed setting of nGroups in sendMTFValues() 
-                so as to do a bit better on small files
-*/
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-/*--- Bit stream I/O                              ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-void BZ2_bsInitWrite ( EState* s )
-{
-   s->bsLive = 0;
-   s->bsBuff = 0;
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsFinishWrite ( EState* s )
-{
-   while (s->bsLive > 0) {
-      s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24);
-      s->numZ++;
-      s->bsBuff <<= 8;
-      s->bsLive -= 8;
-   }
-}
-
-
-/*---------------------------------------------------*/
-#define bsNEEDW(nz)                           \
-{                                             \
-   while (s->bsLive >= 8) {                   \
-      s->zbits[s->numZ]                       \
-         = (UChar)(s->bsBuff >> 24);          \
-      s->numZ++;                              \
-      s->bsBuff <<= 8;                        \
-      s->bsLive -= 8;                         \
-   }                                          \
-}
-
-
-/*---------------------------------------------------*/
-static
-__inline__
-void bsW ( EState* s, Int32 n, UInt32 v )
-{
-   bsNEEDW ( n );
-   s->bsBuff |= (v << (32 - s->bsLive - n));
-   s->bsLive += n;
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsPutUInt32 ( EState* s, UInt32 u )
-{
-   bsW ( s, 8, (u >> 24) & 0xffL );
-   bsW ( s, 8, (u >> 16) & 0xffL );
-   bsW ( s, 8, (u >>  8) & 0xffL );
-   bsW ( s, 8,  u        & 0xffL );
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsPutUChar ( EState* s, UChar c )
-{
-   bsW( s, 8, (UInt32)c );
-}
-
-
-/*---------------------------------------------------*/
-/*--- The back end proper                         ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-static
-void makeMaps_e ( EState* s )
-{
-   Int32 i;
-   s->nInUse = 0;
-   for (i = 0; i < 256; i++)
-      if (s->inUse[i]) {
-         s->unseqToSeq[i] = s->nInUse;
-         s->nInUse++;
-      }
-}
-
-
-/*---------------------------------------------------*/
-static
-void generateMTFValues ( EState* s )
-{
-   UChar   yy[256];
-   Int32   i, j;
-   Int32   zPend;
-   Int32   wr;
-   Int32   EOB;
-
-   /* 
-      After sorting (eg, here),
-         s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,
-         and
-         ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] 
-         holds the original block data.
-
-      The first thing to do is generate the MTF values,
-      and put them in
-         ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ].
-      Because there are strictly fewer or equal MTF values
-      than block values, ptr values in this area are overwritten
-      with MTF values only when they are no longer needed.
-
-      The final compressed bitstream is generated into the
-      area starting at
-         (UChar*) (&((UChar*)s->arr2)[s->nblock])
-
-      These storage aliases are set up in bzCompressInit(),
-      except for the last one, which is arranged in 
-      compressBlock().
-   */
-   UInt32* ptr   = s->ptr;
-   UChar* block  = s->block;
-   UInt16* mtfv  = s->mtfv;
-
-   makeMaps_e ( s );
-   EOB = s->nInUse+1;
-
-   for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0;
-
-   wr = 0;
-   zPend = 0;
-   for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i;
-
-   for (i = 0; i < s->nblock; i++) {
-      UChar ll_i;
-      AssertD ( wr <= i, "generateMTFValues(1)" );
-      j = ptr[i]-1; if (j < 0) j += s->nblock;
-      ll_i = s->unseqToSeq[block[j]];
-      AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );
-
-      if (yy[0] == ll_i) { 
-         zPend++;
-      } else {
-
-         if (zPend > 0) {
-            zPend--;
-            while (True) {
-               if (zPend & 1) {
-                  mtfv[wr] = BZ_RUNB; wr++; 
-                  s->mtfFreq[BZ_RUNB]++; 
-               } else {
-                  mtfv[wr] = BZ_RUNA; wr++; 
-                  s->mtfFreq[BZ_RUNA]++; 
-               }
-               if (zPend < 2) break;
-               zPend = (zPend - 2) / 2;
-            };
-            zPend = 0;
-         }
-         {
-            register UChar  rtmp;
-            register UChar* ryy_j;
-            register UChar  rll_i;
-            rtmp  = yy[1];
-            yy[1] = yy[0];
-            ryy_j = &(yy[1]);
-            rll_i = ll_i;
-            while ( rll_i != rtmp ) {
-               register UChar rtmp2;
-               ryy_j++;
-               rtmp2  = rtmp;
-               rtmp   = *ryy_j;
-               *ryy_j = rtmp2;
-            };
-            yy[0] = rtmp;
-            j = ryy_j - &(yy[0]);
-            mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++;
-         }
-
-      }
-   }
-
-   if (zPend > 0) {
-      zPend--;
-      while (True) {
-         if (zPend & 1) {
-            mtfv[wr] = BZ_RUNB; wr++; 
-            s->mtfFreq[BZ_RUNB]++; 
-         } else {
-            mtfv[wr] = BZ_RUNA; wr++; 
-            s->mtfFreq[BZ_RUNA]++; 
-         }
-         if (zPend < 2) break;
-         zPend = (zPend - 2) / 2;
-      };
-      zPend = 0;
-   }
-
-   mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++;
-
-   s->nMTF = wr;
-}
-
-
-/*---------------------------------------------------*/
-#define BZ_LESSER_ICOST  0
-#define BZ_GREATER_ICOST 15
-
-static
-void sendMTFValues ( EState* s )
-{
-   Int32 v, t, i, j, gs, ge, totc, bt, bc, iter;
-   Int32 nSelectors, alphaSize, minLen, maxLen, selCtr;
-   Int32 nGroups, nBytes;
-
-   /*--
-   UChar  len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-   is a global since the decoder also needs it.
-
-   Int32  code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-   Int32  rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-   are also globals only used in this proc.
-   Made global to keep stack frame size small.
-   --*/
-
-
-   UInt16 cost[BZ_N_GROUPS];
-   Int32  fave[BZ_N_GROUPS];
-
-   UInt16* mtfv = s->mtfv;
-
-   if (s->verbosity >= 3)
-      VPrintf3( "      %d in block, %d after MTF & 1-2 coding, "
-                "%d+2 syms in use\n", 
-                s->nblock, s->nMTF, s->nInUse );
-
-   alphaSize = s->nInUse+2;
-   for (t = 0; t < BZ_N_GROUPS; t++)
-      for (v = 0; v < alphaSize; v++)
-         s->len[t][v] = BZ_GREATER_ICOST;
-
-   /*--- Decide how many coding tables to use ---*/
-   AssertH ( s->nMTF > 0, 3001 );
-   if (s->nMTF < 200)  nGroups = 2; else
-   if (s->nMTF < 600)  nGroups = 3; else
-   if (s->nMTF < 1200) nGroups = 4; else
-   if (s->nMTF < 2400) nGroups = 5; else
-                       nGroups = 6;
-
-   /*--- Generate an initial set of coding tables ---*/
-   { 
-      Int32 nPart, remF, tFreq, aFreq;
-
-      nPart = nGroups;
-      remF  = s->nMTF;
-      gs = 0;
-      while (nPart > 0) {
-         tFreq = remF / nPart;
-         ge = gs-1;
-         aFreq = 0;
-         while (aFreq < tFreq && ge < alphaSize-1) {
-            ge++;
-            aFreq += s->mtfFreq[ge];
-         }
-
-         if (ge > gs 
-             && nPart != nGroups && nPart != 1 
-             && ((nGroups-nPart) % 2 == 1)) {
-            aFreq -= s->mtfFreq[ge];
-            ge--;
-         }
-
-         if (s->verbosity >= 3)
-            VPrintf5( "      initial group %d, [%d .. %d], "
-                      "has %d syms (%4.1f%%)\n",
-                      nPart, gs, ge, aFreq, 
-                      (100.0 * (float)aFreq) / (float)(s->nMTF) );
- 
-         for (v = 0; v < alphaSize; v++)
-            if (v >= gs && v <= ge) 
-               s->len[nPart-1][v] = BZ_LESSER_ICOST; else
-               s->len[nPart-1][v] = BZ_GREATER_ICOST;
- 
-         nPart--;
-         gs = ge+1;
-         remF -= aFreq;
-      }
-   }
-
-   /*--- 
-      Iterate up to BZ_N_ITERS times to improve the tables.
-   ---*/
-   for (iter = 0; iter < BZ_N_ITERS; iter++) {
-
-      for (t = 0; t < nGroups; t++) fave[t] = 0;
-
-      for (t = 0; t < nGroups; t++)
-         for (v = 0; v < alphaSize; v++)
-            s->rfreq[t][v] = 0;
-
-      /*---
-        Set up an auxiliary length table which is used to fast-track
-	the common case (nGroups == 6). 
-      ---*/
-      if (nGroups == 6) {
-         for (v = 0; v < alphaSize; v++) {
-            s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v];
-            s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v];
-            s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v];
-	 }
-      }
-
-      nSelectors = 0;
-      totc = 0;
-      gs = 0;
-      while (True) {
-
-         /*--- Set group start & end marks. --*/
-         if (gs >= s->nMTF) break;
-         ge = gs + BZ_G_SIZE - 1; 
-         if (ge >= s->nMTF) ge = s->nMTF-1;
-
-         /*-- 
-            Calculate the cost of this group as coded
-            by each of the coding tables.
-         --*/
-         for (t = 0; t < nGroups; t++) cost[t] = 0;
-
-         if (nGroups == 6 && 50 == ge-gs+1) {
-            /*--- fast track the common case ---*/
-            register UInt32 cost01, cost23, cost45;
-            register UInt16 icv;
-            cost01 = cost23 = cost45 = 0;
-
-#           define BZ_ITER(nn)                \
-               icv = mtfv[gs+(nn)];           \
-               cost01 += s->len_pack[icv][0]; \
-               cost23 += s->len_pack[icv][1]; \
-               cost45 += s->len_pack[icv][2]; \
-
-            BZ_ITER(0);  BZ_ITER(1);  BZ_ITER(2);  BZ_ITER(3);  BZ_ITER(4);
-            BZ_ITER(5);  BZ_ITER(6);  BZ_ITER(7);  BZ_ITER(8);  BZ_ITER(9);
-            BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14);
-            BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19);
-            BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24);
-            BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29);
-            BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34);
-            BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39);
-            BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44);
-            BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49);
-
-#           undef BZ_ITER
-
-            cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16;
-            cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16;
-            cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16;
-
-         } else {
-	    /*--- slow version which correctly handles all situations ---*/
-            for (i = gs; i <= ge; i++) { 
-               UInt16 icv = mtfv[i];
-               for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
-            }
-         }
- 
-         /*-- 
-            Find the coding table which is best for this group,
-            and record its identity in the selector table.
-         --*/
-         bc = 999999999; bt = -1;
-         for (t = 0; t < nGroups; t++)
-            if (cost[t] < bc) { bc = cost[t]; bt = t; };
-         totc += bc;
-         fave[bt]++;
-         s->selector[nSelectors] = bt;
-         nSelectors++;
-
-         /*-- 
-            Increment the symbol frequencies for the selected table.
-          --*/
-         if (nGroups == 6 && 50 == ge-gs+1) {
-            /*--- fast track the common case ---*/
-
-#           define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++
-
-            BZ_ITUR(0);  BZ_ITUR(1);  BZ_ITUR(2);  BZ_ITUR(3);  BZ_ITUR(4);
-            BZ_ITUR(5);  BZ_ITUR(6);  BZ_ITUR(7);  BZ_ITUR(8);  BZ_ITUR(9);
-            BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14);
-            BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19);
-            BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24);
-            BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29);
-            BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34);
-            BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39);
-            BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44);
-            BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49);
-
-#           undef BZ_ITUR
-
-         } else {
-	    /*--- slow version which correctly handles all situations ---*/
-            for (i = gs; i <= ge; i++)
-               s->rfreq[bt][ mtfv[i] ]++;
-         }
-
-         gs = ge+1;
-      }
-      if (s->verbosity >= 3) {
-         VPrintf2 ( "      pass %d: size is %d, grp uses are ", 
-                   iter+1, totc/8 );
-         for (t = 0; t < nGroups; t++)
-            VPrintf1 ( "%d ", fave[t] );
-         VPrintf0 ( "\n" );
-      }
-
-      /*--
-        Recompute the tables based on the accumulated frequencies.
-      --*/
-      /* maxLen was changed from 20 to 17 in bzip2-1.0.3.  See 
-         comment in huffman.c for details. */
-      for (t = 0; t < nGroups; t++)
-         BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), 
-                                 alphaSize, 17 /*20*/ );
-   }
-
-
-   AssertH( nGroups < 8, 3002 );
-   AssertH( nSelectors < 32768 &&
-            nSelectors <= (2 + (900000 / BZ_G_SIZE)),
-            3003 );
-
-
-   /*--- Compute MTF values for the selectors. ---*/
-   {
-      UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp;
-      for (i = 0; i < nGroups; i++) pos[i] = i;
-      for (i = 0; i < nSelectors; i++) {
-         ll_i = s->selector[i];
-         j = 0;
-         tmp = pos[j];
-         while ( ll_i != tmp ) {
-            j++;
-            tmp2 = tmp;
-            tmp = pos[j];
-            pos[j] = tmp2;
-         };
-         pos[0] = tmp;
-         s->selectorMtf[i] = j;
-      }
-   };
-
-   /*--- Assign actual codes for the tables. --*/
-   for (t = 0; t < nGroups; t++) {
-      minLen = 32;
-      maxLen = 0;
-      for (i = 0; i < alphaSize; i++) {
-         if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
-         if (s->len[t][i] < minLen) minLen = s->len[t][i];
-      }
-      AssertH ( !(maxLen > 17 /*20*/ ), 3004 );
-      AssertH ( !(minLen < 1),  3005 );
-      BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), 
-                          minLen, maxLen, alphaSize );
-   }
-
-   /*--- Transmit the mapping table. ---*/
-   { 
-      Bool inUse16[16];
-      for (i = 0; i < 16; i++) {
-          inUse16[i] = False;
-          for (j = 0; j < 16; j++)
-             if (s->inUse[i * 16 + j]) inUse16[i] = True;
-      }
-     
-      nBytes = s->numZ;
-      for (i = 0; i < 16; i++)
-         if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0);
-
-      for (i = 0; i < 16; i++)
-         if (inUse16[i])
-            for (j = 0; j < 16; j++) {
-               if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0);
-            }
-
-      if (s->verbosity >= 3) 
-         VPrintf1( "      bytes: mapping %d, ", s->numZ-nBytes );
-   }
-
-   /*--- Now the selectors. ---*/
-   nBytes = s->numZ;
-   bsW ( s, 3, nGroups );
-   bsW ( s, 15, nSelectors );
-   for (i = 0; i < nSelectors; i++) { 
-      for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1);
-      bsW(s,1,0);
-   }
-   if (s->verbosity >= 3)
-      VPrintf1( "selectors %d, ", s->numZ-nBytes );
-
-   /*--- Now the coding tables. ---*/
-   nBytes = s->numZ;
-
-   for (t = 0; t < nGroups; t++) {
-      Int32 curr = s->len[t][0];
-      bsW ( s, 5, curr );
-      for (i = 0; i < alphaSize; i++) {
-         while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ };
-         while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ };
-         bsW ( s, 1, 0 );
-      }
-   }
-
-   if (s->verbosity >= 3)
-      VPrintf1 ( "code lengths %d, ", s->numZ-nBytes );
-
-   /*--- And finally, the block data proper ---*/
-   nBytes = s->numZ;
-   selCtr = 0;
-   gs = 0;
-   while (True) {
-      if (gs >= s->nMTF) break;
-      ge = gs + BZ_G_SIZE - 1; 
-      if (ge >= s->nMTF) ge = s->nMTF-1;
-      AssertH ( s->selector[selCtr] < nGroups, 3006 );
-
-      if (nGroups == 6 && 50 == ge-gs+1) {
-            /*--- fast track the common case ---*/
-            UInt16 mtfv_i;
-            UChar* s_len_sel_selCtr 
-               = &(s->len[s->selector[selCtr]][0]);
-            Int32* s_code_sel_selCtr
-               = &(s->code[s->selector[selCtr]][0]);
-
-#           define BZ_ITAH(nn)                      \
-               mtfv_i = mtfv[gs+(nn)];              \
-               bsW ( s,                             \
-                     s_len_sel_selCtr[mtfv_i],      \
-                     s_code_sel_selCtr[mtfv_i] )
-
-            BZ_ITAH(0);  BZ_ITAH(1);  BZ_ITAH(2);  BZ_ITAH(3);  BZ_ITAH(4);
-            BZ_ITAH(5);  BZ_ITAH(6);  BZ_ITAH(7);  BZ_ITAH(8);  BZ_ITAH(9);
-            BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14);
-            BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19);
-            BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24);
-            BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29);
-            BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34);
-            BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39);
-            BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44);
-            BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49);
-
-#           undef BZ_ITAH
-
-      } else {
-	 /*--- slow version which correctly handles all situations ---*/
-         for (i = gs; i <= ge; i++) {
-            bsW ( s, 
-                  s->len  [s->selector[selCtr]] [mtfv[i]],
-                  s->code [s->selector[selCtr]] [mtfv[i]] );
-         }
-      }
-
-
-      gs = ge+1;
-      selCtr++;
-   }
-   AssertH( selCtr == nSelectors, 3007 );
-
-   if (s->verbosity >= 3)
-      VPrintf1( "codes %d\n", s->numZ-nBytes );
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_compressBlock ( EState* s, Bool is_last_block )
-{
-   if (s->nblock > 0) {
-
-      BZ_FINALISE_CRC ( s->blockCRC );
-      s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31);
-      s->combinedCRC ^= s->blockCRC;
-      if (s->blockNo > 1) s->numZ = 0;
-
-      if (s->verbosity >= 2)
-         VPrintf4( "    block %d: crc = 0x%08x, "
-                   "combined CRC = 0x%08x, size = %d\n",
-                   s->blockNo, s->blockCRC, s->combinedCRC, s->nblock );
-
-      BZ2_blockSort ( s );
-   }
-
-   s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]);
-
-   /*-- If this is the first block, create the stream header. --*/
-   if (s->blockNo == 1) {
-      BZ2_bsInitWrite ( s );
-      bsPutUChar ( s, BZ_HDR_B );
-      bsPutUChar ( s, BZ_HDR_Z );
-      bsPutUChar ( s, BZ_HDR_h );
-      bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) );
-   }
-
-   if (s->nblock > 0) {
-
-      bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 );
-      bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 );
-      bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 );
-
-      /*-- Now the block's CRC, so it is in a known place. --*/
-      bsPutUInt32 ( s, s->blockCRC );
-
-      /*-- 
-         Now a single bit indicating (non-)randomisation. 
-         As of version 0.9.5, we use a better sorting algorithm
-         which makes randomisation unnecessary.  So always set
-         the randomised bit to 'no'.  Of course, the decoder
-         still needs to be able to handle randomised blocks
-         so as to maintain backwards compatibility with
-         older versions of bzip2.
-      --*/
-      bsW(s,1,0);
-
-      bsW ( s, 24, s->origPtr );
-      generateMTFValues ( s );
-      sendMTFValues ( s );
-   }
-
-
-   /*-- If this is the last block, add the stream trailer. --*/
-   if (is_last_block) {
-
-      bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 );
-      bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 );
-      bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 );
-      bsPutUInt32 ( s, s->combinedCRC );
-      if (s->verbosity >= 2)
-         VPrintf1( "    final combined CRC = 0x%08x\n   ", s->combinedCRC );
-      bsFinishWrite ( s );
-   }
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                        compress.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/crctable.c b/libs/ext/bzip2/crctable.c
deleted file mode 100644
index 1fea7e9..0000000
--- a/libs/ext/bzip2/crctable.c
+++ /dev/null
@@ -1,104 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Table for doing CRCs                                  ---*/
-/*---                                            crctable.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-/*--
-  I think this is an implementation of the AUTODIN-II,
-  Ethernet & FDDI 32-bit CRC standard.  Vaguely derived
-  from code by Rob Warnock, in Section 51 of the
-  comp.compression FAQ.
---*/
-
-UInt32 BZ2_crc32Table[256] = {
-
-   /*-- Ugly, innit? --*/
-
-   0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
-   0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
-   0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
-   0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
-   0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
-   0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
-   0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
-   0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
-   0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
-   0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
-   0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
-   0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
-   0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
-   0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
-   0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
-   0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
-   0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
-   0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
-   0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
-   0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
-   0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
-   0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
-   0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
-   0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
-   0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
-   0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
-   0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
-   0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
-   0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
-   0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
-   0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
-   0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
-   0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
-   0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
-   0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
-   0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
-   0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
-   0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
-   0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
-   0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
-   0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
-   0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
-   0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
-   0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
-   0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
-   0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
-   0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
-   0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
-   0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
-   0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
-   0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
-   0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
-   0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
-   0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
-   0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
-   0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
-   0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
-   0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
-   0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
-   0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
-   0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
-   0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
-   0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
-   0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
-};
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                        crctable.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/decompress.c b/libs/ext/bzip2/decompress.c
deleted file mode 100644
index 311f566..0000000
--- a/libs/ext/bzip2/decompress.c
+++ /dev/null
@@ -1,646 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Decompression machinery                               ---*/
-/*---                                          decompress.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-static
-void makeMaps_d ( DState* s )
-{
-   Int32 i;
-   s->nInUse = 0;
-   for (i = 0; i < 256; i++)
-      if (s->inUse[i]) {
-         s->seqToUnseq[s->nInUse] = i;
-         s->nInUse++;
-      }
-}
-
-
-/*---------------------------------------------------*/
-#define RETURN(rrr)                               \
-   { retVal = rrr; goto save_state_and_return; };
-
-#define GET_BITS(lll,vvv,nnn)                     \
-   case lll: s->state = lll;                      \
-   while (True) {                                 \
-      if (s->bsLive >= nnn) {                     \
-         UInt32 v;                                \
-         v = (s->bsBuff >>                        \
-             (s->bsLive-nnn)) & ((1 << nnn)-1);   \
-         s->bsLive -= nnn;                        \
-         vvv = v;                                 \
-         break;                                   \
-      }                                           \
-      if (s->strm->avail_in == 0) RETURN(BZ_OK);  \
-      s->bsBuff                                   \
-         = (s->bsBuff << 8) |                     \
-           ((UInt32)                              \
-              (*((UChar*)(s->strm->next_in))));   \
-      s->bsLive += 8;                             \
-      s->strm->next_in++;                         \
-      s->strm->avail_in--;                        \
-      s->strm->total_in_lo32++;                   \
-      if (s->strm->total_in_lo32 == 0)            \
-         s->strm->total_in_hi32++;                \
-   }
-
-#define GET_UCHAR(lll,uuu)                        \
-   GET_BITS(lll,uuu,8)
-
-#define GET_BIT(lll,uuu)                          \
-   GET_BITS(lll,uuu,1)
-
-/*---------------------------------------------------*/
-#define GET_MTF_VAL(label1,label2,lval)           \
-{                                                 \
-   if (groupPos == 0) {                           \
-      groupNo++;                                  \
-      if (groupNo >= nSelectors)                  \
-         RETURN(BZ_DATA_ERROR);                   \
-      groupPos = BZ_G_SIZE;                       \
-      gSel = s->selector[groupNo];                \
-      gMinlen = s->minLens[gSel];                 \
-      gLimit = &(s->limit[gSel][0]);              \
-      gPerm = &(s->perm[gSel][0]);                \
-      gBase = &(s->base[gSel][0]);                \
-   }                                              \
-   groupPos--;                                    \
-   zn = gMinlen;                                  \
-   GET_BITS(label1, zvec, zn);                    \
-   while (1) {                                    \
-      if (zn > 20 /* the longest code */)         \
-         RETURN(BZ_DATA_ERROR);                   \
-      if (zvec <= gLimit[zn]) break;              \
-      zn++;                                       \
-      GET_BIT(label2, zj);                        \
-      zvec = (zvec << 1) | zj;                    \
-   };                                             \
-   if (zvec - gBase[zn] < 0                       \
-       || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE)  \
-      RETURN(BZ_DATA_ERROR);                      \
-   lval = gPerm[zvec - gBase[zn]];                \
-}
-
-
-/*---------------------------------------------------*/
-Int32 BZ2_decompress ( DState* s )
-{
-   UChar      uc;
-   Int32      retVal;
-   Int32      minLen, maxLen;
-   bz_stream* strm = s->strm;
-
-   /* stuff that needs to be saved/restored */
-   Int32  i;
-   Int32  j;
-   Int32  t;
-   Int32  alphaSize;
-   Int32  nGroups;
-   Int32  nSelectors;
-   Int32  EOB;
-   Int32  groupNo;
-   Int32  groupPos;
-   Int32  nextSym;
-   Int32  nblockMAX;
-   Int32  nblock;
-   Int32  es;
-   Int32  N;
-   Int32  curr;
-   Int32  zt;
-   Int32  zn; 
-   Int32  zvec;
-   Int32  zj;
-   Int32  gSel;
-   Int32  gMinlen;
-   Int32* gLimit;
-   Int32* gBase;
-   Int32* gPerm;
-
-   if (s->state == BZ_X_MAGIC_1) {
-      /*initialise the save area*/
-      s->save_i           = 0;
-      s->save_j           = 0;
-      s->save_t           = 0;
-      s->save_alphaSize   = 0;
-      s->save_nGroups     = 0;
-      s->save_nSelectors  = 0;
-      s->save_EOB         = 0;
-      s->save_groupNo     = 0;
-      s->save_groupPos    = 0;
-      s->save_nextSym     = 0;
-      s->save_nblockMAX   = 0;
-      s->save_nblock      = 0;
-      s->save_es          = 0;
-      s->save_N           = 0;
-      s->save_curr        = 0;
-      s->save_zt          = 0;
-      s->save_zn          = 0;
-      s->save_zvec        = 0;
-      s->save_zj          = 0;
-      s->save_gSel        = 0;
-      s->save_gMinlen     = 0;
-      s->save_gLimit      = NULL;
-      s->save_gBase       = NULL;
-      s->save_gPerm       = NULL;
-   }
-
-   /*restore from the save area*/
-   i           = s->save_i;
-   j           = s->save_j;
-   t           = s->save_t;
-   alphaSize   = s->save_alphaSize;
-   nGroups     = s->save_nGroups;
-   nSelectors  = s->save_nSelectors;
-   EOB         = s->save_EOB;
-   groupNo     = s->save_groupNo;
-   groupPos    = s->save_groupPos;
-   nextSym     = s->save_nextSym;
-   nblockMAX   = s->save_nblockMAX;
-   nblock      = s->save_nblock;
-   es          = s->save_es;
-   N           = s->save_N;
-   curr        = s->save_curr;
-   zt          = s->save_zt;
-   zn          = s->save_zn; 
-   zvec        = s->save_zvec;
-   zj          = s->save_zj;
-   gSel        = s->save_gSel;
-   gMinlen     = s->save_gMinlen;
-   gLimit      = s->save_gLimit;
-   gBase       = s->save_gBase;
-   gPerm       = s->save_gPerm;
-
-   retVal = BZ_OK;
-
-   switch (s->state) {
-
-      GET_UCHAR(BZ_X_MAGIC_1, uc);
-      if (uc != BZ_HDR_B) RETURN(BZ_DATA_ERROR_MAGIC);
-
-      GET_UCHAR(BZ_X_MAGIC_2, uc);
-      if (uc != BZ_HDR_Z) RETURN(BZ_DATA_ERROR_MAGIC);
-
-      GET_UCHAR(BZ_X_MAGIC_3, uc)
-      if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC);
-
-      GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
-      if (s->blockSize100k < (BZ_HDR_0 + 1) || 
-          s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC);
-      s->blockSize100k -= BZ_HDR_0;
-
-      if (s->smallDecompress) {
-         s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
-         s->ll4  = BZALLOC( 
-                      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) 
-                   );
-         if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
-      } else {
-         s->tt  = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
-         if (s->tt == NULL) RETURN(BZ_MEM_ERROR);
-      }
-
-      GET_UCHAR(BZ_X_BLKHDR_1, uc);
-
-      if (uc == 0x17) goto endhdr_2;
-      if (uc != 0x31) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_BLKHDR_2, uc);
-      if (uc != 0x41) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_BLKHDR_3, uc);
-      if (uc != 0x59) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_BLKHDR_4, uc);
-      if (uc != 0x26) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_BLKHDR_5, uc);
-      if (uc != 0x53) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_BLKHDR_6, uc);
-      if (uc != 0x59) RETURN(BZ_DATA_ERROR);
-
-      s->currBlockNo++;
-      if (s->verbosity >= 2)
-         VPrintf1 ( "\n    [%d: huff+mtf ", s->currBlockNo );
- 
-      s->storedBlockCRC = 0;
-      GET_UCHAR(BZ_X_BCRC_1, uc);
-      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
-      GET_UCHAR(BZ_X_BCRC_2, uc);
-      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
-      GET_UCHAR(BZ_X_BCRC_3, uc);
-      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
-      GET_UCHAR(BZ_X_BCRC_4, uc);
-      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
-
-      GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1);
-
-      s->origPtr = 0;
-      GET_UCHAR(BZ_X_ORIGPTR_1, uc);
-      s->origPtr = (s->origPtr << 8) | ((Int32)uc);
-      GET_UCHAR(BZ_X_ORIGPTR_2, uc);
-      s->origPtr = (s->origPtr << 8) | ((Int32)uc);
-      GET_UCHAR(BZ_X_ORIGPTR_3, uc);
-      s->origPtr = (s->origPtr << 8) | ((Int32)uc);
-
-      if (s->origPtr < 0)
-         RETURN(BZ_DATA_ERROR);
-      if (s->origPtr > 10 + 100000*s->blockSize100k) 
-         RETURN(BZ_DATA_ERROR);
-
-      /*--- Receive the mapping table ---*/
-      for (i = 0; i < 16; i++) {
-         GET_BIT(BZ_X_MAPPING_1, uc);
-         if (uc == 1) 
-            s->inUse16[i] = True; else 
-            s->inUse16[i] = False;
-      }
-
-      for (i = 0; i < 256; i++) s->inUse[i] = False;
-
-      for (i = 0; i < 16; i++)
-         if (s->inUse16[i])
-            for (j = 0; j < 16; j++) {
-               GET_BIT(BZ_X_MAPPING_2, uc);
-               if (uc == 1) s->inUse[i * 16 + j] = True;
-            }
-      makeMaps_d ( s );
-      if (s->nInUse == 0) RETURN(BZ_DATA_ERROR);
-      alphaSize = s->nInUse+2;
-
-      /*--- Now the selectors ---*/
-      GET_BITS(BZ_X_SELECTOR_1, nGroups, 3);
-      if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR);
-      GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
-      if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
-      for (i = 0; i < nSelectors; i++) {
-         j = 0;
-         while (True) {
-            GET_BIT(BZ_X_SELECTOR_3, uc);
-            if (uc == 0) break;
-            j++;
-            if (j >= nGroups) RETURN(BZ_DATA_ERROR);
-         }
-         s->selectorMtf[i] = j;
-      }
-
-      /*--- Undo the MTF values for the selectors. ---*/
-      {
-         UChar pos[BZ_N_GROUPS], tmp, v;
-         for (v = 0; v < nGroups; v++) pos[v] = v;
-   
-         for (i = 0; i < nSelectors; i++) {
-            v = s->selectorMtf[i];
-            tmp = pos[v];
-            while (v > 0) { pos[v] = pos[v-1]; v--; }
-            pos[0] = tmp;
-            s->selector[i] = tmp;
-         }
-      }
-
-      /*--- Now the coding tables ---*/
-      for (t = 0; t < nGroups; t++) {
-         GET_BITS(BZ_X_CODING_1, curr, 5);
-         for (i = 0; i < alphaSize; i++) {
-            while (True) {
-               if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR);
-               GET_BIT(BZ_X_CODING_2, uc);
-               if (uc == 0) break;
-               GET_BIT(BZ_X_CODING_3, uc);
-               if (uc == 0) curr++; else curr--;
-            }
-            s->len[t][i] = curr;
-         }
-      }
-
-      /*--- Create the Huffman decoding tables ---*/
-      for (t = 0; t < nGroups; t++) {
-         minLen = 32;
-         maxLen = 0;
-         for (i = 0; i < alphaSize; i++) {
-            if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
-            if (s->len[t][i] < minLen) minLen = s->len[t][i];
-         }
-         BZ2_hbCreateDecodeTables ( 
-            &(s->limit[t][0]), 
-            &(s->base[t][0]), 
-            &(s->perm[t][0]), 
-            &(s->len[t][0]),
-            minLen, maxLen, alphaSize
-         );
-         s->minLens[t] = minLen;
-      }
-
-      /*--- Now the MTF values ---*/
-
-      EOB      = s->nInUse+1;
-      nblockMAX = 100000 * s->blockSize100k;
-      groupNo  = -1;
-      groupPos = 0;
-
-      for (i = 0; i <= 255; i++) s->unzftab[i] = 0;
-
-      /*-- MTF init --*/
-      {
-         Int32 ii, jj, kk;
-         kk = MTFA_SIZE-1;
-         for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) {
-            for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
-               s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj);
-               kk--;
-            }
-            s->mtfbase[ii] = kk + 1;
-         }
-      }
-      /*-- end MTF init --*/
-
-      nblock = 0;
-      GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym);
-
-      while (True) {
-
-         if (nextSym == EOB) break;
-
-         if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) {
-
-            es = -1;
-            N = 1;
-            do {
-               /* Check that N doesn't get too big, so that es doesn't
-                  go negative.  The maximum value that can be
-                  RUNA/RUNB encoded is equal to the block size (post
-                  the initial RLE), viz, 900k, so bounding N at 2
-                  million should guard against overflow without
-                  rejecting any legitimate inputs. */
-               if (N >= 2*1024*1024) RETURN(BZ_DATA_ERROR);
-               if (nextSym == BZ_RUNA) es = es + (0+1) * N; else
-               if (nextSym == BZ_RUNB) es = es + (1+1) * N;
-               N = N * 2;
-               GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym);
-            }
-               while (nextSym == BZ_RUNA || nextSym == BZ_RUNB);
-
-            es++;
-            uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ];
-            s->unzftab[uc] += es;
-
-            if (s->smallDecompress)
-               while (es > 0) {
-                  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
-                  s->ll16[nblock] = (UInt16)uc;
-                  nblock++;
-                  es--;
-               }
-            else
-               while (es > 0) {
-                  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
-                  s->tt[nblock] = (UInt32)uc;
-                  nblock++;
-                  es--;
-               };
-
-            continue;
-
-         } else {
-
-            if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
-
-            /*-- uc = MTF ( nextSym-1 ) --*/
-            {
-               Int32 ii, jj, kk, pp, lno, off;
-               UInt32 nn;
-               nn = (UInt32)(nextSym - 1);
-
-               if (nn < MTFL_SIZE) {
-                  /* avoid general-case expense */
-                  pp = s->mtfbase[0];
-                  uc = s->mtfa[pp+nn];
-                  while (nn > 3) {
-                     Int32 z = pp+nn;
-                     s->mtfa[(z)  ] = s->mtfa[(z)-1];
-                     s->mtfa[(z)-1] = s->mtfa[(z)-2];
-                     s->mtfa[(z)-2] = s->mtfa[(z)-3];
-                     s->mtfa[(z)-3] = s->mtfa[(z)-4];
-                     nn -= 4;
-                  }
-                  while (nn > 0) { 
-                     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; 
-                  };
-                  s->mtfa[pp] = uc;
-               } else { 
-                  /* general case */
-                  lno = nn / MTFL_SIZE;
-                  off = nn % MTFL_SIZE;
-                  pp = s->mtfbase[lno] + off;
-                  uc = s->mtfa[pp];
-                  while (pp > s->mtfbase[lno]) { 
-                     s->mtfa[pp] = s->mtfa[pp-1]; pp--; 
-                  };
-                  s->mtfbase[lno]++;
-                  while (lno > 0) {
-                     s->mtfbase[lno]--;
-                     s->mtfa[s->mtfbase[lno]] 
-                        = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
-                     lno--;
-                  }
-                  s->mtfbase[0]--;
-                  s->mtfa[s->mtfbase[0]] = uc;
-                  if (s->mtfbase[0] == 0) {
-                     kk = MTFA_SIZE-1;
-                     for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) {
-                        for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
-                           s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];
-                           kk--;
-                        }
-                        s->mtfbase[ii] = kk + 1;
-                     }
-                  }
-               }
-            }
-            /*-- end uc = MTF ( nextSym-1 ) --*/
-
-            s->unzftab[s->seqToUnseq[uc]]++;
-            if (s->smallDecompress)
-               s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else
-               s->tt[nblock]   = (UInt32)(s->seqToUnseq[uc]);
-            nblock++;
-
-            GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym);
-            continue;
-         }
-      }
-
-      /* Now we know what nblock is, we can do a better sanity
-         check on s->origPtr.
-      */
-      if (s->origPtr < 0 || s->origPtr >= nblock)
-         RETURN(BZ_DATA_ERROR);
-
-      /*-- Set up cftab to facilitate generation of T^(-1) --*/
-      /* Check: unzftab entries in range. */
-      for (i = 0; i <= 255; i++) {
-         if (s->unzftab[i] < 0 || s->unzftab[i] > nblock)
-            RETURN(BZ_DATA_ERROR);
-      }
-      /* Actually generate cftab. */
-      s->cftab[0] = 0;
-      for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1];
-      for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1];
-      /* Check: cftab entries in range. */
-      for (i = 0; i <= 256; i++) {
-         if (s->cftab[i] < 0 || s->cftab[i] > nblock) {
-            /* s->cftab[i] can legitimately be == nblock */
-            RETURN(BZ_DATA_ERROR);
-         }
-      }
-      /* Check: cftab entries non-descending. */
-      for (i = 1; i <= 256; i++) {
-         if (s->cftab[i-1] > s->cftab[i]) {
-            RETURN(BZ_DATA_ERROR);
-         }
-      }
-
-      s->state_out_len = 0;
-      s->state_out_ch  = 0;
-      BZ_INITIALISE_CRC ( s->calculatedBlockCRC );
-      s->state = BZ_X_OUTPUT;
-      if (s->verbosity >= 2) VPrintf0 ( "rt+rld" );
-
-      if (s->smallDecompress) {
-
-         /*-- Make a copy of cftab, used in generation of T --*/
-         for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i];
-
-         /*-- compute the T vector --*/
-         for (i = 0; i < nblock; i++) {
-            uc = (UChar)(s->ll16[i]);
-            SET_LL(i, s->cftabCopy[uc]);
-            s->cftabCopy[uc]++;
-         }
-
-         /*-- Compute T^(-1) by pointer reversal on T --*/
-         i = s->origPtr;
-         j = GET_LL(i);
-         do {
-            Int32 tmp = GET_LL(j);
-            SET_LL(j, i);
-            i = j;
-            j = tmp;
-         }
-            while (i != s->origPtr);
-
-         s->tPos = s->origPtr;
-         s->nblock_used = 0;
-         if (s->blockRandomised) {
-            BZ_RAND_INIT_MASK;
-            BZ_GET_SMALL(s->k0); s->nblock_used++;
-            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
-         } else {
-            BZ_GET_SMALL(s->k0); s->nblock_used++;
-         }
-
-      } else {
-
-         /*-- compute the T^(-1) vector --*/
-         for (i = 0; i < nblock; i++) {
-            uc = (UChar)(s->tt[i] & 0xff);
-            s->tt[s->cftab[uc]] |= (i << 8);
-            s->cftab[uc]++;
-         }
-
-         s->tPos = s->tt[s->origPtr] >> 8;
-         s->nblock_used = 0;
-         if (s->blockRandomised) {
-            BZ_RAND_INIT_MASK;
-            BZ_GET_FAST(s->k0); s->nblock_used++;
-            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
-         } else {
-            BZ_GET_FAST(s->k0); s->nblock_used++;
-         }
-
-      }
-
-      RETURN(BZ_OK);
-
-
-
-    endhdr_2:
-
-      GET_UCHAR(BZ_X_ENDHDR_2, uc);
-      if (uc != 0x72) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_ENDHDR_3, uc);
-      if (uc != 0x45) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_ENDHDR_4, uc);
-      if (uc != 0x38) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_ENDHDR_5, uc);
-      if (uc != 0x50) RETURN(BZ_DATA_ERROR);
-      GET_UCHAR(BZ_X_ENDHDR_6, uc);
-      if (uc != 0x90) RETURN(BZ_DATA_ERROR);
-
-      s->storedCombinedCRC = 0;
-      GET_UCHAR(BZ_X_CCRC_1, uc);
-      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
-      GET_UCHAR(BZ_X_CCRC_2, uc);
-      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
-      GET_UCHAR(BZ_X_CCRC_3, uc);
-      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
-      GET_UCHAR(BZ_X_CCRC_4, uc);
-      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
-
-      s->state = BZ_X_IDLE;
-      RETURN(BZ_STREAM_END);
-
-      default: AssertH ( False, 4001 );
-   }
-
-   AssertH ( False, 4002 );
-
-   save_state_and_return:
-
-   s->save_i           = i;
-   s->save_j           = j;
-   s->save_t           = t;
-   s->save_alphaSize   = alphaSize;
-   s->save_nGroups     = nGroups;
-   s->save_nSelectors  = nSelectors;
-   s->save_EOB         = EOB;
-   s->save_groupNo     = groupNo;
-   s->save_groupPos    = groupPos;
-   s->save_nextSym     = nextSym;
-   s->save_nblockMAX   = nblockMAX;
-   s->save_nblock      = nblock;
-   s->save_es          = es;
-   s->save_N           = N;
-   s->save_curr        = curr;
-   s->save_zt          = zt;
-   s->save_zn          = zn;
-   s->save_zvec        = zvec;
-   s->save_zj          = zj;
-   s->save_gSel        = gSel;
-   s->save_gMinlen     = gMinlen;
-   s->save_gLimit      = gLimit;
-   s->save_gBase       = gBase;
-   s->save_gPerm       = gPerm;
-
-   return retVal;   
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                      decompress.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/dlltest.c b/libs/ext/bzip2/dlltest.c
deleted file mode 100644
index 03fa146..0000000
--- a/libs/ext/bzip2/dlltest.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
-   minibz2
-      libbz2.dll test program.
-      by Yoshioka Tsuneo (tsuneo at rr.iij4u.or.jp)
-      This file is Public Domain.  Welcome any email to me.
-
-   usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]
-*/
-
-#define BZ_IMPORT
-#include <stdio.h>
-#include <stdlib.h>
-#include "bzlib.h"
-#ifdef _WIN32
-#include <io.h>
-#endif
-
-
-#ifdef _WIN32
-
-#define BZ2_LIBNAME "libbz2-1.0.2.DLL" 
-
-#include <windows.h>
-static int BZ2DLLLoaded = 0;
-static HINSTANCE BZ2DLLhLib;
-int BZ2DLLLoadLibrary(void)
-{
-   HINSTANCE hLib;
-
-   if(BZ2DLLLoaded==1){return 0;}
-   hLib=LoadLibrary(BZ2_LIBNAME);
-   if(hLib == NULL){
-      fprintf(stderr,"Can't load %s\n",BZ2_LIBNAME);
-      return -1;
-   }
-   BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion");
-   BZ2_bzopen=GetProcAddress(hLib,"BZ2_bzopen");
-   BZ2_bzdopen=GetProcAddress(hLib,"BZ2_bzdopen");
-   BZ2_bzread=GetProcAddress(hLib,"BZ2_bzread");
-   BZ2_bzwrite=GetProcAddress(hLib,"BZ2_bzwrite");
-   BZ2_bzflush=GetProcAddress(hLib,"BZ2_bzflush");
-   BZ2_bzclose=GetProcAddress(hLib,"BZ2_bzclose");
-   BZ2_bzerror=GetProcAddress(hLib,"BZ2_bzerror");
-
-   if (!BZ2_bzlibVersion || !BZ2_bzopen || !BZ2_bzdopen
-       || !BZ2_bzread || !BZ2_bzwrite || !BZ2_bzflush
-       || !BZ2_bzclose || !BZ2_bzerror) {
-      fprintf(stderr,"GetProcAddress failed.\n");
-      return -1;
-   }
-   BZ2DLLLoaded=1;
-   BZ2DLLhLib=hLib;
-   return 0;
-
-}
-int BZ2DLLFreeLibrary(void)
-{
-   if(BZ2DLLLoaded==0){return 0;}
-   FreeLibrary(BZ2DLLhLib);
-   BZ2DLLLoaded=0;
-}
-#endif /* WIN32 */
-
-void usage(void)
-{
-   puts("usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]");
-}
-
-int main(int argc,char *argv[])
-{
-   int decompress = 0;
-   int level = 9;
-   char *fn_r = NULL;
-   char *fn_w = NULL;
-
-#ifdef _WIN32
-   if(BZ2DLLLoadLibrary()<0){
-      fprintf(stderr,"Loading of %s failed.  Giving up.\n", BZ2_LIBNAME);
-      exit(1);
-   }
-   printf("Loading of %s succeeded.  Library version is %s.\n",
-          BZ2_LIBNAME, BZ2_bzlibVersion() );
-#endif
-   while(++argv,--argc){
-      if(**argv =='-' || **argv=='/'){
-         char *p;
-
-         for(p=*argv+1;*p;p++){
-            if(*p=='d'){
-               decompress = 1;
-            }else if('1'<=*p && *p<='9'){
-               level = *p - '0';
-            }else{
-               usage();
-               exit(1);
-            }
-         }
-      }else{
-         break;
-      }
-   }
-   if(argc>=1){
-      fn_r = *argv;
-      argc--;argv++;
-   }else{
-      fn_r = NULL;
-   }
-   if(argc>=1){
-      fn_w = *argv;
-      argc--;argv++;
-   }else{
-      fn_w = NULL;
-   }
-   {
-      int len;
-      char buff[0x1000];
-      char mode[10];
-
-      if(decompress){
-         BZFILE *BZ2fp_r = NULL;
-         FILE *fp_w = NULL;
-
-         if(fn_w){
-            if((fp_w = fopen(fn_w,"wb"))==NULL){
-               printf("can't open [%s]\n",fn_w);
-               perror("reason:");
-               exit(1);
-            }
-         }else{
-            fp_w = stdout;
-         }
-         if((fn_r == NULL && (BZ2fp_r = BZ2_bzdopen(fileno(stdin),"rb"))==NULL)
-            || (fn_r != NULL && (BZ2fp_r = BZ2_bzopen(fn_r,"rb"))==NULL)){
-            printf("can't bz2openstream\n");
-            exit(1);
-         }
-         while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){
-            fwrite(buff,1,len,fp_w);
-         }
-         BZ2_bzclose(BZ2fp_r);
-         if(fp_w != stdout) fclose(fp_w);
-      }else{
-         BZFILE *BZ2fp_w = NULL;
-         FILE *fp_r = NULL;
-
-         if(fn_r){
-            if((fp_r = fopen(fn_r,"rb"))==NULL){
-               printf("can't open [%s]\n",fn_r);
-               perror("reason:");
-               exit(1);
-            }
-         }else{
-            fp_r = stdin;
-         }
-         mode[0]='w';
-         mode[1] = '0' + level;
-         mode[2] = '\0';
-
-         if((fn_w == NULL && (BZ2fp_w = BZ2_bzdopen(fileno(stdout),mode))==NULL)
-            || (fn_w !=NULL && (BZ2fp_w = BZ2_bzopen(fn_w,mode))==NULL)){
-            printf("can't bz2openstream\n");
-            exit(1);
-         }
-         while((len=fread(buff,1,0x1000,fp_r))>0){
-            BZ2_bzwrite(BZ2fp_w,buff,len);
-         }
-         BZ2_bzclose(BZ2fp_w);
-         if(fp_r!=stdin)fclose(fp_r);
-      }
-   }
-#ifdef _WIN32
-   BZ2DLLFreeLibrary();
-#endif
-   return 0;
-}
diff --git a/libs/ext/bzip2/huffman.c b/libs/ext/bzip2/huffman.c
deleted file mode 100644
index 2283fdb..0000000
--- a/libs/ext/bzip2/huffman.c
+++ /dev/null
@@ -1,205 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Huffman coding low-level stuff                        ---*/
-/*---                                             huffman.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-/*---------------------------------------------------*/
-#define WEIGHTOF(zz0)  ((zz0) & 0xffffff00)
-#define DEPTHOF(zz1)   ((zz1) & 0x000000ff)
-#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3))
-
-#define ADDWEIGHTS(zw1,zw2)                           \
-   (WEIGHTOF(zw1)+WEIGHTOF(zw2)) |                    \
-   (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2)))
-
-#define UPHEAP(z)                                     \
-{                                                     \
-   Int32 zz, tmp;                                     \
-   zz = z; tmp = heap[zz];                            \
-   while (weight[tmp] < weight[heap[zz >> 1]]) {      \
-      heap[zz] = heap[zz >> 1];                       \
-      zz >>= 1;                                       \
-   }                                                  \
-   heap[zz] = tmp;                                    \
-}
-
-#define DOWNHEAP(z)                                   \
-{                                                     \
-   Int32 zz, yy, tmp;                                 \
-   zz = z; tmp = heap[zz];                            \
-   while (True) {                                     \
-      yy = zz << 1;                                   \
-      if (yy > nHeap) break;                          \
-      if (yy < nHeap &&                               \
-          weight[heap[yy+1]] < weight[heap[yy]])      \
-         yy++;                                        \
-      if (weight[tmp] < weight[heap[yy]]) break;      \
-      heap[zz] = heap[yy];                            \
-      zz = yy;                                        \
-   }                                                  \
-   heap[zz] = tmp;                                    \
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbMakeCodeLengths ( UChar *len, 
-                             Int32 *freq,
-                             Int32 alphaSize,
-                             Int32 maxLen )
-{
-   /*--
-      Nodes and heap entries run from 1.  Entry 0
-      for both the heap and nodes is a sentinel.
-   --*/
-   Int32 nNodes, nHeap, n1, n2, i, j, k;
-   Bool  tooLong;
-
-   Int32 heap   [ BZ_MAX_ALPHA_SIZE + 2 ];
-   Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ];
-   Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; 
-
-   for (i = 0; i < alphaSize; i++)
-      weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8;
-
-   while (True) {
-
-      nNodes = alphaSize;
-      nHeap = 0;
-
-      heap[0] = 0;
-      weight[0] = 0;
-      parent[0] = -2;
-
-      for (i = 1; i <= alphaSize; i++) {
-         parent[i] = -1;
-         nHeap++;
-         heap[nHeap] = i;
-         UPHEAP(nHeap);
-      }
-
-      AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 );
-   
-      while (nHeap > 1) {
-         n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
-         n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
-         nNodes++;
-         parent[n1] = parent[n2] = nNodes;
-         weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]);
-         parent[nNodes] = -1;
-         nHeap++;
-         heap[nHeap] = nNodes;
-         UPHEAP(nHeap);
-      }
-
-      AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 );
-
-      tooLong = False;
-      for (i = 1; i <= alphaSize; i++) {
-         j = 0;
-         k = i;
-         while (parent[k] >= 0) { k = parent[k]; j++; }
-         len[i-1] = j;
-         if (j > maxLen) tooLong = True;
-      }
-      
-      if (! tooLong) break;
-
-      /* 17 Oct 04: keep-going condition for the following loop used
-         to be 'i < alphaSize', which missed the last element,
-         theoretically leading to the possibility of the compressor
-         looping.  However, this count-scaling step is only needed if
-         one of the generated Huffman code words is longer than
-         maxLen, which up to and including version 1.0.2 was 20 bits,
-         which is extremely unlikely.  In version 1.0.3 maxLen was
-         changed to 17 bits, which has minimal effect on compression
-         ratio, but does mean this scaling step is used from time to
-         time, enough to verify that it works.
-
-         This means that bzip2-1.0.3 and later will only produce
-         Huffman codes with a maximum length of 17 bits.  However, in
-         order to preserve backwards compatibility with bitstreams
-         produced by versions pre-1.0.3, the decompressor must still
-         handle lengths of up to 20. */
-
-      for (i = 1; i <= alphaSize; i++) {
-         j = weight[i] >> 8;
-         j = 1 + (j / 2);
-         weight[i] = j << 8;
-      }
-   }
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbAssignCodes ( Int32 *code,
-                         UChar *length,
-                         Int32 minLen,
-                         Int32 maxLen,
-                         Int32 alphaSize )
-{
-   Int32 n, vec, i;
-
-   vec = 0;
-   for (n = minLen; n <= maxLen; n++) {
-      for (i = 0; i < alphaSize; i++)
-         if (length[i] == n) { code[i] = vec; vec++; };
-      vec <<= 1;
-   }
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbCreateDecodeTables ( Int32 *limit,
-                                Int32 *base,
-                                Int32 *perm,
-                                UChar *length,
-                                Int32 minLen,
-                                Int32 maxLen,
-                                Int32 alphaSize )
-{
-   Int32 pp, i, j, vec;
-
-   pp = 0;
-   for (i = minLen; i <= maxLen; i++)
-      for (j = 0; j < alphaSize; j++)
-         if (length[j] == i) { perm[pp] = j; pp++; };
-
-   for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0;
-   for (i = 0; i < alphaSize; i++) base[length[i]+1]++;
-
-   for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1];
-
-   for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0;
-   vec = 0;
-
-   for (i = minLen; i <= maxLen; i++) {
-      vec += (base[i+1] - base[i]);
-      limit[i] = vec-1;
-      vec <<= 1;
-   }
-   for (i = minLen + 1; i <= maxLen; i++)
-      base[i] = ((limit[i-1] + 1) << 1) - base[i];
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                         huffman.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/libbz2.def b/libs/ext/bzip2/libbz2.def
deleted file mode 100644
index 2dc0dd8..0000000
--- a/libs/ext/bzip2/libbz2.def
+++ /dev/null
@@ -1,27 +0,0 @@
-LIBRARY			LIBBZ2
-DESCRIPTION		"libbzip2: library for data compression"
-EXPORTS
-	BZ2_bzCompressInit
-	BZ2_bzCompress
-	BZ2_bzCompressEnd
-	BZ2_bzDecompressInit
-	BZ2_bzDecompress
-	BZ2_bzDecompressEnd
-	BZ2_bzReadOpen
-	BZ2_bzReadClose
-	BZ2_bzReadGetUnused
-	BZ2_bzRead
-	BZ2_bzWriteOpen
-	BZ2_bzWrite
-	BZ2_bzWriteClose
-	BZ2_bzWriteClose64
-	BZ2_bzBuffToBuffCompress
-	BZ2_bzBuffToBuffDecompress
-	BZ2_bzlibVersion
-	BZ2_bzopen
-	BZ2_bzdopen
-	BZ2_bzread
-	BZ2_bzwrite
-	BZ2_bzflush
-	BZ2_bzclose
-	BZ2_bzerror
diff --git a/libs/ext/bzip2/libbz2.vers b/libs/ext/bzip2/libbz2.vers
deleted file mode 100644
index af0b7dd..0000000
--- a/libs/ext/bzip2/libbz2.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.0.6
diff --git a/libs/ext/bzip2/mk251.c b/libs/ext/bzip2/mk251.c
deleted file mode 100644
index c9c36f6..0000000
--- a/libs/ext/bzip2/mk251.c
+++ /dev/null
@@ -1,31 +0,0 @@
-
-/* Spew out a long sequence of the byte 251.  When fed to bzip2
-   versions 1.0.0 or 1.0.1, causes it to die with internal error
-   1007 in blocksort.c.  This assertion misses an extremely rare
-   case, which is fixed in this version (1.0.2) and above.
-*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#include <stdio.h>
-
-int main ()
-{
-   int i;
-   for (i = 0; i < 48500000 ; i++)
-     putchar(251);
-   return 0;
-}
diff --git a/libs/ext/bzip2/randtable.c b/libs/ext/bzip2/randtable.c
deleted file mode 100644
index 6d62459..0000000
--- a/libs/ext/bzip2/randtable.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Table for randomising repetitive blocks               ---*/
-/*---                                           randtable.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------*/
-Int32 BZ2_rNums[512] = { 
-   619, 720, 127, 481, 931, 816, 813, 233, 566, 247, 
-   985, 724, 205, 454, 863, 491, 741, 242, 949, 214, 
-   733, 859, 335, 708, 621, 574, 73, 654, 730, 472, 
-   419, 436, 278, 496, 867, 210, 399, 680, 480, 51, 
-   878, 465, 811, 169, 869, 675, 611, 697, 867, 561, 
-   862, 687, 507, 283, 482, 129, 807, 591, 733, 623, 
-   150, 238, 59, 379, 684, 877, 625, 169, 643, 105, 
-   170, 607, 520, 932, 727, 476, 693, 425, 174, 647, 
-   73, 122, 335, 530, 442, 853, 695, 249, 445, 515, 
-   909, 545, 703, 919, 874, 474, 882, 500, 594, 612, 
-   641, 801, 220, 162, 819, 984, 589, 513, 495, 799, 
-   161, 604, 958, 533, 221, 400, 386, 867, 600, 782, 
-   382, 596, 414, 171, 516, 375, 682, 485, 911, 276, 
-   98, 553, 163, 354, 666, 933, 424, 341, 533, 870, 
-   227, 730, 475, 186, 263, 647, 537, 686, 600, 224, 
-   469, 68, 770, 919, 190, 373, 294, 822, 808, 206, 
-   184, 943, 795, 384, 383, 461, 404, 758, 839, 887, 
-   715, 67, 618, 276, 204, 918, 873, 777, 604, 560, 
-   951, 160, 578, 722, 79, 804, 96, 409, 713, 940, 
-   652, 934, 970, 447, 318, 353, 859, 672, 112, 785, 
-   645, 863, 803, 350, 139, 93, 354, 99, 820, 908, 
-   609, 772, 154, 274, 580, 184, 79, 626, 630, 742, 
-   653, 282, 762, 623, 680, 81, 927, 626, 789, 125, 
-   411, 521, 938, 300, 821, 78, 343, 175, 128, 250, 
-   170, 774, 972, 275, 999, 639, 495, 78, 352, 126, 
-   857, 956, 358, 619, 580, 124, 737, 594, 701, 612, 
-   669, 112, 134, 694, 363, 992, 809, 743, 168, 974, 
-   944, 375, 748, 52, 600, 747, 642, 182, 862, 81, 
-   344, 805, 988, 739, 511, 655, 814, 334, 249, 515, 
-   897, 955, 664, 981, 649, 113, 974, 459, 893, 228, 
-   433, 837, 553, 268, 926, 240, 102, 654, 459, 51, 
-   686, 754, 806, 760, 493, 403, 415, 394, 687, 700, 
-   946, 670, 656, 610, 738, 392, 760, 799, 887, 653, 
-   978, 321, 576, 617, 626, 502, 894, 679, 243, 440, 
-   680, 879, 194, 572, 640, 724, 926, 56, 204, 700, 
-   707, 151, 457, 449, 797, 195, 791, 558, 945, 679, 
-   297, 59, 87, 824, 713, 663, 412, 693, 342, 606, 
-   134, 108, 571, 364, 631, 212, 174, 643, 304, 329, 
-   343, 97, 430, 751, 497, 314, 983, 374, 822, 928, 
-   140, 206, 73, 263, 980, 736, 876, 478, 430, 305, 
-   170, 514, 364, 692, 829, 82, 855, 953, 676, 246, 
-   369, 970, 294, 750, 807, 827, 150, 790, 288, 923, 
-   804, 378, 215, 828, 592, 281, 565, 555, 710, 82, 
-   896, 831, 547, 261, 524, 462, 293, 465, 502, 56, 
-   661, 821, 976, 991, 658, 869, 905, 758, 745, 193, 
-   768, 550, 608, 933, 378, 286, 215, 979, 792, 961, 
-   61, 688, 793, 644, 986, 403, 106, 366, 905, 644, 
-   372, 567, 466, 434, 645, 210, 389, 550, 919, 135, 
-   780, 773, 635, 389, 707, 100, 626, 958, 165, 504, 
-   920, 176, 193, 713, 857, 265, 203, 50, 668, 108, 
-   645, 990, 626, 197, 510, 357, 358, 850, 858, 364, 
-   936, 638
-};
-
-
-/*-------------------------------------------------------------*/
-/*--- end                                       randtable.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/libs/ext/bzip2/spewG.c b/libs/ext/bzip2/spewG.c
deleted file mode 100644
index 14a3649..0000000
--- a/libs/ext/bzip2/spewG.c
+++ /dev/null
@@ -1,54 +0,0 @@
-
-/* spew out a thoroughly gigantic file designed so that bzip2
-   can compress it reasonably rapidly.  This is to help test
-   support for large files (> 2GB) in a reasonable amount of time.
-   I suggest you use the undocumented --exponential option to
-   bzip2 when compressing the resulting file; this saves a bit of
-   time.  Note: *don't* bother with --exponential when compressing 
-   Real Files; it'll just waste a lot of CPU time :-)
-   (but is otherwise harmless).
-*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-	 ------------------------------------------------------------------ */
-
-
-#define _FILE_OFFSET_BITS 64
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/* The number of megabytes of junk to spew out (roughly) */
-#define MEGABYTES 5000
-
-#define N_BUF 1000000
-char buf[N_BUF];
-
-int main ( int argc, char** argv )
-{
-   int ii, kk, p;
-   srandom(1);
-   setbuffer ( stdout, buf, N_BUF );
-   for (kk = 0; kk < MEGABYTES * 515; kk+=3) {
-      p = 25+random()%50;
-      for (ii = 0; ii < p; ii++)
-         printf ( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" );
-      for (ii = 0; ii < p-1; ii++)
-         printf ( "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
-      for (ii = 0; ii < p+1; ii++)
-         printf ( "ccccccccccccccccccccccccccccccccccccc" );
-   }
-   fflush(stdout);
-   return 0;
-}
diff --git a/libs/ext/bzip2/unzcrash.c b/libs/ext/bzip2/unzcrash.c
deleted file mode 100644
index 7041da5..0000000
--- a/libs/ext/bzip2/unzcrash.c
+++ /dev/null
@@ -1,141 +0,0 @@
-
-/* A test program written to test robustness to decompression of
-   corrupted data.  Usage is 
-       unzcrash filename
-   and the program will read the specified file, compress it (in memory),
-   and then repeatedly decompress it, each time with a different bit of
-   the compressed data inverted, so as to test all possible one-bit errors.
-   This should not cause any invalid memory accesses.  If it does, 
-   I want to know about it!
-
-   PS.  As you can see from the above description, the process is
-   incredibly slow.  A file of size eg 5KB will cause it to run for
-   many hours.
-*/
-
-/* ------------------------------------------------------------------
-   This file is part of bzip2/libbzip2, a program and library for
-   lossless, block-sorting data compression.
-
-   bzip2/libbzip2 version 1.0.6 of 6 September 2010
-   Copyright (C) 1996-2010 Julian Seward <jseward at bzip.org>
-
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
-   README file.
-
-   This program is released under the terms of the license contained
-   in the file LICENSE.
-   ------------------------------------------------------------------ */
-
-
-#include <stdio.h>
-#include <assert.h>
-#include "bzlib.h"
-
-#define M_BLOCK 1000000
-
-typedef unsigned char uchar;
-
-#define M_BLOCK_OUT (M_BLOCK + 1000000)
-uchar inbuf[M_BLOCK];
-uchar outbuf[M_BLOCK_OUT];
-uchar zbuf[M_BLOCK + 600 + (M_BLOCK / 100)];
-
-int nIn, nOut, nZ;
-
-static char *bzerrorstrings[] = {
-       "OK"
-      ,"SEQUENCE_ERROR"
-      ,"PARAM_ERROR"
-      ,"MEM_ERROR"
-      ,"DATA_ERROR"
-      ,"DATA_ERROR_MAGIC"
-      ,"IO_ERROR"
-      ,"UNEXPECTED_EOF"
-      ,"OUTBUFF_FULL"
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-      ,"???"   /* for future */
-};
-
-void flip_bit ( int bit )
-{
-   int byteno = bit / 8;
-   int bitno  = bit % 8;
-   uchar mask = 1 << bitno;
-   //fprintf ( stderr, "(byte %d  bit %d  mask %d)",
-   //          byteno, bitno, (int)mask );
-   zbuf[byteno] ^= mask;
-}
-
-int main ( int argc, char** argv )
-{
-   FILE* f;
-   int   r;
-   int   bit;
-   int   i;
-
-   if (argc != 2) {
-      fprintf ( stderr, "usage: unzcrash filename\n" );
-      return 1;
-   }
-
-   f = fopen ( argv[1], "r" );
-   if (!f) {
-      fprintf ( stderr, "unzcrash: can't open %s\n", argv[1] );
-      return 1;
-   }
-
-   nIn = fread ( inbuf, 1, M_BLOCK, f );
-   fprintf ( stderr, "%d bytes read\n", nIn );
-
-   nZ = M_BLOCK;
-   r = BZ2_bzBuffToBuffCompress (
-         zbuf, &nZ, inbuf, nIn, 9, 0, 30 );
-
-   assert (r == BZ_OK);
-   fprintf ( stderr, "%d after compression\n", nZ );
-
-   for (bit = 0; bit < nZ*8; bit++) {
-      fprintf ( stderr, "bit %d  ", bit );
-      flip_bit ( bit );
-      nOut = M_BLOCK_OUT;
-      r = BZ2_bzBuffToBuffDecompress (
-            outbuf, &nOut, zbuf, nZ, 0, 0 );
-      fprintf ( stderr, " %d  %s ", r, bzerrorstrings[-r] );
-
-      if (r != BZ_OK) {
-         fprintf ( stderr, "\n" );
-      } else {
-         if (nOut != nIn) {
-           fprintf(stderr, "nIn/nOut mismatch %d %d\n", nIn, nOut );
-           return 1;
-         } else {
-           for (i = 0; i < nOut; i++)
-             if (inbuf[i] != outbuf[i]) { 
-                fprintf(stderr, "mismatch at %d\n", i ); 
-                return 1; 
-           }
-           if (i == nOut) fprintf(stderr, "really ok!\n" );
-         }
-      }
-
-      flip_bit ( bit );
-   }
-
-#if 0
-   assert (nOut == nIn);
-   for (i = 0; i < nOut; i++) {
-     if (inbuf[i] != outbuf[i]) {
-        fprintf ( stderr, "difference at %d !\n", i );
-        return 1;
-     }
-   }
-#endif
-
-   fprintf ( stderr, "all ok\n" );
-   return 0;
-}
diff --git a/libs/ext/curl/Makefile b/libs/ext/curl/Makefile
deleted file mode 100644
index e5736a8..0000000
--- a/libs/ext/curl/Makefile
+++ /dev/null
@@ -1,103 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../../build/abspath.sh ../../..)
-MODULE = libs/ext/curl
-
-include $(TOP)/build/Makefile.env
-
-INT_LIBS = \
-
-EXT_LIBS = \
-	libcurl
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-ifneq (rwin,$(BUILD_OS))
-
-all std clean $(ALL_LIBS):
-	@true
-
-.PHONY: all std clean $(ALL_LIBS)
-
-else
-
-std: makedirs 
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-all: makedirs 
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(INT_LIBS): makedirs 
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_LIBS): makedirs 
-	@ $(MAKE_CMD) $(LIBDIR)/$@
-
-.PHONY: all std $(ALL_LIBS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: $(BINDIR)/libcurl.$(DLLX)
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: $(BINDIR)/libcurl.$(DLLX)
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-	rm -f $(BINDIR)/libcurl.$(DLLX)
-    
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# libcurl
-#
-LIBCURL_VERS := \
-	7.29.0
-
-ifeq (dbg,$(BUILD))
-    DBG=-dbg
-endif
-$(BINDIR)/libcurl.$(DLLX): /panfs/pan1/sra-test/TOOLKIT/libcurl/$(LIBCURL_VERS)/win$(BITS)$(DBG)/libcurl.$(DLLX)
-	cp $^ $@
-
-endif
-    
diff --git a/libs/ext/zlib/Makefile b/libs/ext/zlib/Makefile
index 6339903..e8329bf 100644
--- a/libs/ext/zlib/Makefile
+++ b/libs/ext/zlib/Makefile
@@ -42,16 +42,16 @@ ALL_LIBS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-std: makedirs download
+std: makedirs download-$(OS)
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
 all: makedirs download
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-$(INT_LIBS): makedirs download
+$(INT_LIBS): makedirs download-$(OS)
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
 
-$(EXT_LIBS): makedirs download
+$(EXT_LIBS): makedirs download-$(OS)
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
 .PHONY: all std $(ALL_LIBS)
@@ -66,7 +66,7 @@ $(TARGDIR)/all: $(LIBDIR)/libz
 #-------------------------------------------------------------------------------
 # std
 #
-$(TARGDIR)/std: $(LIBDIR)/libz
+$(TARGDIR)/std: $(LIBDIR)/libz-$(OS)
 
 .PHONY: $(TARGDIR)/std
 
@@ -74,18 +74,37 @@ $(TARGDIR)/std: $(LIBDIR)/libz
 # clean
 #
 clean: stdclean
-	@ rm -f libz.vers
 
 .PHONY: clean
 
 #-------------------------------------------------------------------------------
+# libz-$(OS)
+#
+NORMALLY_HAVE = \
+	unix \
+	linux \
+	mac \
+	sun
+
+DONT_HAVE = \
+	win
+
+LIBZ_SYS_HAS_LIB = \
+	$(addprefix $(LIBDIR)/libz-,$(NORMALLY_HAVE))
+
+$(LIBZ_SYS_HAS_LIB):
+	@ true
+
+LIBZ_SYS_NEEDS_LIB = \
+	$(addprefix $(LIBDIR)/libz-,$(DONT_HAVE))
+
+$(LIBZ_SYS_NEEDS_LIB): $(LIBDIR)/libz
+
+
+#-------------------------------------------------------------------------------
 # libz
 #
-ifeq (win,$(OS))
 $(LIBDIR)/libz: $(addprefix $(LIBDIR)/libz.,$(LIBEXT))
-else
-$(LIBDIR)/libz: $(addprefix $(LIBDIR)/libz.,$(LIBX))
-endif
 
 LIBZ_SRC = \
 	adler32 \
@@ -118,52 +137,38 @@ $(LIBDIR)/libz.$(LIBX): $(LIBZ_OBJ)
 
 
 #-------------------------------------------------------------------------------
+# download-$(OS)
+#
+LIBZ_SYS_HAS_SRC = \
+	$(addprefix download-,$(NORMALLY_HAVE))
+
+$(LIBZ_SYS_HAS_SRC):
+	@ true
+
+LIBZ_SYS_NEEDS_SRC = \
+	$(addprefix download-,$(DONT_HAVE))
+
+$(LIBZ_SYS_NEEDS_SRC): download
+
+
+#-------------------------------------------------------------------------------
 # libz download
 #
 ZLIB_VERS := \
-	1.2.7
-
-ZLIB_TAR = \
-	zlib-$(ZLIB_VERS).tar
-
-ZLIB_TAR_GZ = \
-	$(ZLIB_TAR).gz
-
-ifeq (win,$(OS))
-ECHO_VERS = echo -ne $(ZLIB_VERS) "\n"
-else
-ECHO_VERS = echo $(ZLIB_VERS)
-endif
-
-ifeq (sun,$(OS))
-	ZLIB_TAR_GET = $(ZLIB_TAR)
-	TAR_CMD = tar -xf
-else
-	ZLIB_TAR_GET = $(ZLIB_TAR_GZ)
-	TAR_CMD = tar --no-same-owner -x -z -f
-endif
-
-ifeq (mac,$(OS))
-RETRIEVE = curl -O
-else
-RETRIEVE = wget
-endif
-
-$(ZLIB_TAR_GZ):
+	1.2.5
+
+zlib-$(ZLIB_VERS).tar.gz:
 	@ echo downloading the sources
-	$(RETRIEVE) http://zlib.net/$@
+	wget http://zlib.net/$@
 	@ touch $@
 
-$(ZLIB_TAR): $(ZLIB_TAR_GZ)
-	gzcat $^ > $@
-
-libz.vers: $(ZLIB_TAR_GET)
+libz.vers: zlib-$(ZLIB_VERS).tar.gz
 	@ echo unpacking the sources
-	$(TAR_CMD) $^
+	tar xzf $^
 	mv zlib-$(ZLIB_VERS)/*.[ch] .
 	mv zlib-$(ZLIB_VERS)/win32/zlib.def libz.def
-	-rm -rf zlib-$(ZLIB_VERS) >/dev/null
-	@ $(ECHO_VERS) > $@
+	rm -rf zlib-$(ZLIB_VERS)
+	@ echo $(ZLIB_VERS) > $@
 
 download: libz.vers
 
diff --git a/libs/ext/zlib/adler32.c b/libs/ext/zlib/adler32.c
deleted file mode 100644
index a868f07..0000000
--- a/libs/ext/zlib/adler32.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2011 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zutil.h"
-
-#define local static
-
-local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
-
-#define BASE 65521      /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i)  {adler += (buf)[i]; sum2 += adler;}
-#define DO2(buf,i)  DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i)  DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i)  DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf)   DO8(buf,0); DO8(buf,8);
-
-/* use NO_DIVIDE if your processor does not do division in hardware --
-   try it both ways to see which is faster */
-#ifdef NO_DIVIDE
-/* note that this assumes BASE is 65521, where 65536 % 65521 == 15
-   (thank you to John Reiser for pointing this out) */
-#  define CHOP(a) \
-    do { \
-        unsigned long tmp = a >> 16; \
-        a &= 0xffffUL; \
-        a += (tmp << 4) - tmp; \
-    } while (0)
-#  define MOD28(a) \
-    do { \
-        CHOP(a); \
-        if (a >= BASE) a -= BASE; \
-    } while (0)
-#  define MOD(a) \
-    do { \
-        CHOP(a); \
-        MOD28(a); \
-    } while (0)
-#  define MOD63(a) \
-    do { /* this assumes a is not negative */ \
-        z_off64_t tmp = a >> 32; \
-        a &= 0xffffffffL; \
-        a += (tmp << 8) - (tmp << 5) + tmp; \
-        tmp = a >> 16; \
-        a &= 0xffffL; \
-        a += (tmp << 4) - tmp; \
-        tmp = a >> 16; \
-        a &= 0xffffL; \
-        a += (tmp << 4) - tmp; \
-        if (a >= BASE) a -= BASE; \
-    } while (0)
-#else
-#  define MOD(a) a %= BASE
-#  define MOD28(a) a %= BASE
-#  define MOD63(a) a %= BASE
-#endif
-
-/* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
-    uLong adler;
-    const Bytef *buf;
-    uInt len;
-{
-    unsigned long sum2;
-    unsigned n;
-
-    /* split Adler-32 into component sums */
-    sum2 = (adler >> 16) & 0xffff;
-    adler &= 0xffff;
-
-    /* in case user likes doing a byte at a time, keep it fast */
-    if (len == 1) {
-        adler += buf[0];
-        if (adler >= BASE)
-            adler -= BASE;
-        sum2 += adler;
-        if (sum2 >= BASE)
-            sum2 -= BASE;
-        return adler | (sum2 << 16);
-    }
-
-    /* initial Adler-32 value (deferred check for len == 1 speed) */
-    if (buf == Z_NULL)
-        return 1L;
-
-    /* in case short lengths are provided, keep it somewhat fast */
-    if (len < 16) {
-        while (len--) {
-            adler += *buf++;
-            sum2 += adler;
-        }
-        if (adler >= BASE)
-            adler -= BASE;
-        MOD28(sum2);            /* only added so many BASE's */
-        return adler | (sum2 << 16);
-    }
-
-    /* do length NMAX blocks -- requires just one modulo operation */
-    while (len >= NMAX) {
-        len -= NMAX;
-        n = NMAX / 16;          /* NMAX is divisible by 16 */
-        do {
-            DO16(buf);          /* 16 sums unrolled */
-            buf += 16;
-        } while (--n);
-        MOD(adler);
-        MOD(sum2);
-    }
-
-    /* do remaining bytes (less than NMAX, still just one modulo) */
-    if (len) {                  /* avoid modulos if none remaining */
-        while (len >= 16) {
-            len -= 16;
-            DO16(buf);
-            buf += 16;
-        }
-        while (len--) {
-            adler += *buf++;
-            sum2 += adler;
-        }
-        MOD(adler);
-        MOD(sum2);
-    }
-
-    /* return recombined sums */
-    return adler | (sum2 << 16);
-}
-
-/* ========================================================================= */
-local uLong adler32_combine_(adler1, adler2, len2)
-    uLong adler1;
-    uLong adler2;
-    z_off64_t len2;
-{
-    unsigned long sum1;
-    unsigned long sum2;
-    unsigned rem;
-
-    /* for negative len, return invalid adler32 as a clue for debugging */
-    if (len2 < 0)
-        return 0xffffffffUL;
-
-    /* the derivation of this formula is left as an exercise for the reader */
-    MOD63(len2);                /* assumes len2 >= 0 */
-    rem = (unsigned)len2;
-    sum1 = adler1 & 0xffff;
-    sum2 = rem * sum1;
-    MOD(sum2);
-    sum1 += (adler2 & 0xffff) + BASE - 1;
-    sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
-    if (sum1 >= BASE) sum1 -= BASE;
-    if (sum1 >= BASE) sum1 -= BASE;
-    if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1);
-    if (sum2 >= BASE) sum2 -= BASE;
-    return sum1 | (sum2 << 16);
-}
-
-/* ========================================================================= */
-uLong ZEXPORT adler32_combine(adler1, adler2, len2)
-    uLong adler1;
-    uLong adler2;
-    z_off_t len2;
-{
-    return adler32_combine_(adler1, adler2, len2);
-}
-
-uLong ZEXPORT adler32_combine64(adler1, adler2, len2)
-    uLong adler1;
-    uLong adler2;
-    z_off64_t len2;
-{
-    return adler32_combine_(adler1, adler2, len2);
-}
diff --git a/libs/ext/zlib/compress.c b/libs/ext/zlib/compress.c
deleted file mode 100644
index ea4dfbe..0000000
--- a/libs/ext/zlib/compress.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2005 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#define ZLIB_INTERNAL
-#include "zlib.h"
-
-/* ===========================================================================
-     Compresses the source buffer into the destination buffer. The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer. Upon entry, destLen is the total size of the
-   destination buffer, which must be at least 0.1% larger than sourceLen plus
-   12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-    int level;
-{
-    z_stream stream;
-    int err;
-
-    stream.next_in = (Bytef*)source;
-    stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
-    /* Check for source > 64K on 16-bit machine: */
-    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
-    stream.next_out = dest;
-    stream.avail_out = (uInt)*destLen;
-    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
-
-    stream.zalloc = (alloc_func)0;
-    stream.zfree = (free_func)0;
-    stream.opaque = (voidpf)0;
-
-    err = deflateInit(&stream, level);
-    if (err != Z_OK) return err;
-
-    err = deflate(&stream, Z_FINISH);
-    if (err != Z_STREAM_END) {
-        deflateEnd(&stream);
-        return err == Z_OK ? Z_BUF_ERROR : err;
-    }
-    *destLen = stream.total_out;
-
-    err = deflateEnd(&stream);
-    return err;
-}
-
-/* ===========================================================================
- */
-int ZEXPORT compress (dest, destLen, source, sourceLen)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-{
-    return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
-}
-
-/* ===========================================================================
-     If the default memLevel or windowBits for deflateInit() is changed, then
-   this function needs to be updated.
- */
-uLong ZEXPORT compressBound (sourceLen)
-    uLong sourceLen;
-{
-    return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
-           (sourceLen >> 25) + 13;
-}
diff --git a/libs/ext/zlib/crc32.c b/libs/ext/zlib/crc32.c
deleted file mode 100644
index 979a719..0000000
--- a/libs/ext/zlib/crc32.c
+++ /dev/null
@@ -1,425 +0,0 @@
-/* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- *
- * Thanks to Rodney Brown <rbrown64 at csc.com.au> for his contribution of faster
- * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing
- * tables for updating the shift register in one step with three exclusive-ors
- * instead of four steps with four exclusive-ors.  This results in about a
- * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3.
- */
-
-/* @(#) $Id$ */
-
-/*
-  Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore
-  protection on the static variables used to control the first-use generation
-  of the crc tables.  Therefore, if you #define DYNAMIC_CRC_TABLE, you should
-  first call get_crc_table() to initialize the tables before allowing more than
-  one thread to use crc32().
-
-  DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h.
- */
-
-#ifdef MAKECRCH
-#  include <stdio.h>
-#  ifndef DYNAMIC_CRC_TABLE
-#    define DYNAMIC_CRC_TABLE
-#  endif /* !DYNAMIC_CRC_TABLE */
-#endif /* MAKECRCH */
-
-#include "zutil.h"      /* for STDC and FAR definitions */
-
-#define local static
-
-/* Definitions for doing the crc four data bytes at a time. */
-#if !defined(NOBYFOUR) && defined(Z_U4)
-#  define BYFOUR
-#endif
-#ifdef BYFOUR
-   local unsigned long crc32_little OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
-   local unsigned long crc32_big OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
-#  define TBLS 8
-#else
-#  define TBLS 1
-#endif /* BYFOUR */
-
-/* Local functions for crc concatenation */
-local unsigned long gf2_matrix_times OF((unsigned long *mat,
-                                         unsigned long vec));
-local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat));
-local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2));
-
-
-#ifdef DYNAMIC_CRC_TABLE
-
-local volatile int crc_table_empty = 1;
-local z_crc_t FAR crc_table[TBLS][256];
-local void make_crc_table OF((void));
-#ifdef MAKECRCH
-   local void write_table OF((FILE *, const z_crc_t FAR *));
-#endif /* MAKECRCH */
-/*
-  Generate tables for a byte-wise 32-bit CRC calculation on the polynomial:
-  x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
-
-  Polynomials over GF(2) are represented in binary, one bit per coefficient,
-  with the lowest powers in the most significant bit.  Then adding polynomials
-  is just exclusive-or, and multiplying a polynomial by x is a right shift by
-  one.  If we call the above polynomial p, and represent a byte as the
-  polynomial q, also with the lowest power in the most significant bit (so the
-  byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
-  where a mod b means the remainder after dividing a by b.
-
-  This calculation is done using the shift-register method of multiplying and
-  taking the remainder.  The register is initialized to zero, and for each
-  incoming bit, x^32 is added mod p to the register if the bit is a one (where
-  x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
-  x (which is shifting right by one and adding x^32 mod p if the bit shifted
-  out is a one).  We start with the highest power (least significant bit) of
-  q and repeat for all eight bits of q.
-
-  The first table is simply the CRC of all possible eight bit values.  This is
-  all the information needed to generate CRCs on data a byte at a time for all
-  combinations of CRC register values and incoming bytes.  The remaining tables
-  allow for word-at-a-time CRC calculation for both big-endian and little-
-  endian machines, where a word is four bytes.
-*/
-local void make_crc_table()
-{
-    z_crc_t c;
-    int n, k;
-    z_crc_t poly;                       /* polynomial exclusive-or pattern */
-    /* terms of polynomial defining this crc (except x^32): */
-    static volatile int first = 1;      /* flag to limit concurrent making */
-    static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26};
-
-    /* See if another task is already doing this (not thread-safe, but better
-       than nothing -- significantly reduces duration of vulnerability in
-       case the advice about DYNAMIC_CRC_TABLE is ignored) */
-    if (first) {
-        first = 0;
-
-        /* make exclusive-or pattern from polynomial (0xedb88320UL) */
-        poly = 0;
-        for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++)
-            poly |= (z_crc_t)1 << (31 - p[n]);
-
-        /* generate a crc for every 8-bit value */
-        for (n = 0; n < 256; n++) {
-            c = (z_crc_t)n;
-            for (k = 0; k < 8; k++)
-                c = c & 1 ? poly ^ (c >> 1) : c >> 1;
-            crc_table[0][n] = c;
-        }
-
-#ifdef BYFOUR
-        /* generate crc for each value followed by one, two, and three zeros,
-           and then the byte reversal of those as well as the first table */
-        for (n = 0; n < 256; n++) {
-            c = crc_table[0][n];
-            crc_table[4][n] = ZSWAP32(c);
-            for (k = 1; k < 4; k++) {
-                c = crc_table[0][c & 0xff] ^ (c >> 8);
-                crc_table[k][n] = c;
-                crc_table[k + 4][n] = ZSWAP32(c);
-            }
-        }
-#endif /* BYFOUR */
-
-        crc_table_empty = 0;
-    }
-    else {      /* not first */
-        /* wait for the other guy to finish (not efficient, but rare) */
-        while (crc_table_empty)
-            ;
-    }
-
-#ifdef MAKECRCH
-    /* write out CRC tables to crc32.h */
-    {
-        FILE *out;
-
-        out = fopen("crc32.h", "w");
-        if (out == NULL) return;
-        fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n");
-        fprintf(out, " * Generated automatically by crc32.c\n */\n\n");
-        fprintf(out, "local const z_crc_t FAR ");
-        fprintf(out, "crc_table[TBLS][256] =\n{\n  {\n");
-        write_table(out, crc_table[0]);
-#  ifdef BYFOUR
-        fprintf(out, "#ifdef BYFOUR\n");
-        for (k = 1; k < 8; k++) {
-            fprintf(out, "  },\n  {\n");
-            write_table(out, crc_table[k]);
-        }
-        fprintf(out, "#endif\n");
-#  endif /* BYFOUR */
-        fprintf(out, "  }\n};\n");
-        fclose(out);
-    }
-#endif /* MAKECRCH */
-}
-
-#ifdef MAKECRCH
-local void write_table(out, table)
-    FILE *out;
-    const z_crc_t FAR *table;
-{
-    int n;
-
-    for (n = 0; n < 256; n++)
-        fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : "    ",
-                (unsigned long)(table[n]),
-                n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", "));
-}
-#endif /* MAKECRCH */
-
-#else /* !DYNAMIC_CRC_TABLE */
-/* ========================================================================
- * Tables of CRC-32s of all single-byte values, made by make_crc_table().
- */
-#include "crc32.h"
-#endif /* DYNAMIC_CRC_TABLE */
-
-/* =========================================================================
- * This function can be used by asm versions of crc32()
- */
-const z_crc_t FAR * ZEXPORT get_crc_table()
-{
-#ifdef DYNAMIC_CRC_TABLE
-    if (crc_table_empty)
-        make_crc_table();
-#endif /* DYNAMIC_CRC_TABLE */
-    return (const z_crc_t FAR *)crc_table;
-}
-
-/* ========================================================================= */
-#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8)
-#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
-
-/* ========================================================================= */
-unsigned long ZEXPORT crc32(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    uInt len;
-{
-    if (buf == Z_NULL) return 0UL;
-
-#ifdef DYNAMIC_CRC_TABLE
-    if (crc_table_empty)
-        make_crc_table();
-#endif /* DYNAMIC_CRC_TABLE */
-
-#ifdef BYFOUR
-    if (sizeof(void *) == sizeof(ptrdiff_t)) {
-        z_crc_t endian;
-
-        endian = 1;
-        if (*((unsigned char *)(&endian)))
-            return crc32_little(crc, buf, len);
-        else
-            return crc32_big(crc, buf, len);
-    }
-#endif /* BYFOUR */
-    crc = crc ^ 0xffffffffUL;
-    while (len >= 8) {
-        DO8;
-        len -= 8;
-    }
-    if (len) do {
-        DO1;
-    } while (--len);
-    return crc ^ 0xffffffffUL;
-}
-
-#ifdef BYFOUR
-
-/* ========================================================================= */
-#define DOLIT4 c ^= *buf4++; \
-        c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
-            crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24]
-#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4
-
-/* ========================================================================= */
-local unsigned long crc32_little(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    unsigned len;
-{
-    register z_crc_t c;
-    register const z_crc_t FAR *buf4;
-
-    c = (z_crc_t)crc;
-    c = ~c;
-    while (len && ((ptrdiff_t)buf & 3)) {
-        c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
-        len--;
-    }
-
-    buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-    while (len >= 32) {
-        DOLIT32;
-        len -= 32;
-    }
-    while (len >= 4) {
-        DOLIT4;
-        len -= 4;
-    }
-    buf = (const unsigned char FAR *)buf4;
-
-    if (len) do {
-        c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
-    } while (--len);
-    c = ~c;
-    return (unsigned long)c;
-}
-
-/* ========================================================================= */
-#define DOBIG4 c ^= *++buf4; \
-        c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
-            crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
-#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
-
-/* ========================================================================= */
-local unsigned long crc32_big(crc, buf, len)
-    unsigned long crc;
-    const unsigned char FAR *buf;
-    unsigned len;
-{
-    register z_crc_t c;
-    register const z_crc_t FAR *buf4;
-
-    c = ZSWAP32((z_crc_t)crc);
-    c = ~c;
-    while (len && ((ptrdiff_t)buf & 3)) {
-        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
-        len--;
-    }
-
-    buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-    buf4--;
-    while (len >= 32) {
-        DOBIG32;
-        len -= 32;
-    }
-    while (len >= 4) {
-        DOBIG4;
-        len -= 4;
-    }
-    buf4++;
-    buf = (const unsigned char FAR *)buf4;
-
-    if (len) do {
-        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
-    } while (--len);
-    c = ~c;
-    return (unsigned long)(ZSWAP32(c));
-}
-
-#endif /* BYFOUR */
-
-#define GF2_DIM 32      /* dimension of GF(2) vectors (length of CRC) */
-
-/* ========================================================================= */
-local unsigned long gf2_matrix_times(mat, vec)
-    unsigned long *mat;
-    unsigned long vec;
-{
-    unsigned long sum;
-
-    sum = 0;
-    while (vec) {
-        if (vec & 1)
-            sum ^= *mat;
-        vec >>= 1;
-        mat++;
-    }
-    return sum;
-}
-
-/* ========================================================================= */
-local void gf2_matrix_square(square, mat)
-    unsigned long *square;
-    unsigned long *mat;
-{
-    int n;
-
-    for (n = 0; n < GF2_DIM; n++)
-        square[n] = gf2_matrix_times(mat, mat[n]);
-}
-
-/* ========================================================================= */
-local uLong crc32_combine_(crc1, crc2, len2)
-    uLong crc1;
-    uLong crc2;
-    z_off64_t len2;
-{
-    int n;
-    unsigned long row;
-    unsigned long even[GF2_DIM];    /* even-power-of-two zeros operator */
-    unsigned long odd[GF2_DIM];     /* odd-power-of-two zeros operator */
-
-    /* degenerate case (also disallow negative lengths) */
-    if (len2 <= 0)
-        return crc1;
-
-    /* put operator for one zero bit in odd */
-    odd[0] = 0xedb88320UL;          /* CRC-32 polynomial */
-    row = 1;
-    for (n = 1; n < GF2_DIM; n++) {
-        odd[n] = row;
-        row <<= 1;
-    }
-
-    /* put operator for two zero bits in even */
-    gf2_matrix_square(even, odd);
-
-    /* put operator for four zero bits in odd */
-    gf2_matrix_square(odd, even);
-
-    /* apply len2 zeros to crc1 (first square will put the operator for one
-       zero byte, eight zero bits, in even) */
-    do {
-        /* apply zeros operator for this bit of len2 */
-        gf2_matrix_square(even, odd);
-        if (len2 & 1)
-            crc1 = gf2_matrix_times(even, crc1);
-        len2 >>= 1;
-
-        /* if no more bits set, then done */
-        if (len2 == 0)
-            break;
-
-        /* another iteration of the loop with odd and even swapped */
-        gf2_matrix_square(odd, even);
-        if (len2 & 1)
-            crc1 = gf2_matrix_times(odd, crc1);
-        len2 >>= 1;
-
-        /* if no more bits set, then done */
-    } while (len2 != 0);
-
-    /* return combined crc */
-    crc1 ^= crc2;
-    return crc1;
-}
-
-/* ========================================================================= */
-uLong ZEXPORT crc32_combine(crc1, crc2, len2)
-    uLong crc1;
-    uLong crc2;
-    z_off_t len2;
-{
-    return crc32_combine_(crc1, crc2, len2);
-}
-
-uLong ZEXPORT crc32_combine64(crc1, crc2, len2)
-    uLong crc1;
-    uLong crc2;
-    z_off64_t len2;
-{
-    return crc32_combine_(crc1, crc2, len2);
-}
diff --git a/libs/ext/zlib/crc32.h b/libs/ext/zlib/crc32.h
deleted file mode 100644
index 9e0c778..0000000
--- a/libs/ext/zlib/crc32.h
+++ /dev/null
@@ -1,441 +0,0 @@
-/* crc32.h -- tables for rapid CRC calculation
- * Generated automatically by crc32.c
- */
-
-local const z_crc_t FAR crc_table[TBLS][256] =
-{
-  {
-    0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
-    0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
-    0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
-    0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
-    0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
-    0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
-    0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
-    0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
-    0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
-    0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
-    0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
-    0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
-    0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
-    0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
-    0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
-    0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
-    0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
-    0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
-    0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
-    0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
-    0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
-    0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
-    0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
-    0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
-    0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
-    0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
-    0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
-    0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
-    0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
-    0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
-    0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
-    0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
-    0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
-    0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
-    0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
-    0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
-    0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
-    0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
-    0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
-    0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
-    0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
-    0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
-    0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
-    0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
-    0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
-    0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
-    0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
-    0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
-    0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
-    0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
-    0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
-    0x2d02ef8dUL
-#ifdef BYFOUR
-  },
-  {
-    0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
-    0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
-    0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
-    0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
-    0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
-    0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
-    0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
-    0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
-    0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
-    0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
-    0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
-    0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
-    0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
-    0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
-    0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
-    0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
-    0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
-    0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
-    0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
-    0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
-    0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
-    0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
-    0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
-    0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
-    0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
-    0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
-    0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
-    0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
-    0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
-    0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
-    0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
-    0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
-    0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
-    0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
-    0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
-    0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
-    0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
-    0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
-    0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
-    0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
-    0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
-    0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
-    0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
-    0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
-    0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
-    0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
-    0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
-    0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
-    0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
-    0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
-    0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
-    0x9324fd72UL
-  },
-  {
-    0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
-    0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
-    0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
-    0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
-    0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
-    0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
-    0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
-    0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
-    0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
-    0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
-    0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
-    0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
-    0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
-    0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
-    0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
-    0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
-    0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
-    0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
-    0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
-    0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
-    0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
-    0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
-    0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
-    0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
-    0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
-    0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
-    0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
-    0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
-    0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
-    0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
-    0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
-    0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
-    0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
-    0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
-    0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
-    0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
-    0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
-    0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
-    0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
-    0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
-    0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
-    0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
-    0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
-    0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
-    0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
-    0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
-    0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
-    0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
-    0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
-    0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
-    0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
-    0xbe9834edUL
-  },
-  {
-    0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
-    0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
-    0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
-    0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
-    0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
-    0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
-    0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
-    0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
-    0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
-    0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
-    0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
-    0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
-    0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
-    0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
-    0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
-    0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
-    0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
-    0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
-    0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
-    0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
-    0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
-    0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
-    0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
-    0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
-    0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
-    0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
-    0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
-    0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
-    0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
-    0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
-    0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
-    0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
-    0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
-    0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
-    0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
-    0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
-    0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
-    0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
-    0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
-    0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
-    0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
-    0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
-    0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
-    0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
-    0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
-    0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
-    0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
-    0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
-    0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
-    0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
-    0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
-    0xde0506f1UL
-  },
-  {
-    0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
-    0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
-    0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
-    0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
-    0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
-    0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
-    0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
-    0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
-    0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
-    0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
-    0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
-    0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
-    0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
-    0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
-    0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
-    0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
-    0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
-    0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
-    0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
-    0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
-    0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
-    0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
-    0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
-    0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
-    0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
-    0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
-    0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
-    0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
-    0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
-    0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
-    0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
-    0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
-    0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
-    0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
-    0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
-    0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
-    0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
-    0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
-    0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
-    0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
-    0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
-    0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
-    0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
-    0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
-    0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
-    0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
-    0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
-    0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
-    0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
-    0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
-    0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
-    0x8def022dUL
-  },
-  {
-    0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
-    0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
-    0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
-    0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
-    0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
-    0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
-    0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
-    0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
-    0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
-    0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
-    0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
-    0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
-    0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
-    0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
-    0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
-    0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
-    0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
-    0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
-    0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
-    0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
-    0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
-    0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
-    0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
-    0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
-    0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
-    0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
-    0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
-    0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
-    0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
-    0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
-    0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
-    0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
-    0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
-    0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
-    0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
-    0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
-    0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
-    0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
-    0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
-    0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
-    0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
-    0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
-    0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
-    0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
-    0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
-    0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
-    0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
-    0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
-    0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
-    0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
-    0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
-    0x72fd2493UL
-  },
-  {
-    0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
-    0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
-    0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
-    0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
-    0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
-    0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
-    0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
-    0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
-    0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
-    0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
-    0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
-    0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
-    0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
-    0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
-    0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
-    0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
-    0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
-    0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
-    0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
-    0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
-    0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
-    0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
-    0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
-    0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
-    0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
-    0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
-    0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
-    0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
-    0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
-    0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
-    0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
-    0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
-    0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
-    0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
-    0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
-    0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
-    0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
-    0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
-    0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
-    0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
-    0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
-    0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
-    0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
-    0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
-    0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
-    0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
-    0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
-    0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
-    0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
-    0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
-    0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
-    0xed3498beUL
-  },
-  {
-    0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
-    0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
-    0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
-    0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
-    0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
-    0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
-    0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
-    0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
-    0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
-    0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
-    0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
-    0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
-    0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
-    0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
-    0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
-    0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
-    0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
-    0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
-    0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
-    0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
-    0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
-    0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
-    0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
-    0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
-    0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
-    0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
-    0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
-    0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
-    0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
-    0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
-    0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
-    0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
-    0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
-    0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
-    0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
-    0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
-    0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
-    0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
-    0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
-    0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
-    0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
-    0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
-    0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
-    0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
-    0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
-    0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
-    0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
-    0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
-    0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
-    0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
-    0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
-    0xf10605deUL
-#endif
-  }
-};
diff --git a/libs/ext/zlib/deflate.c b/libs/ext/zlib/deflate.c
deleted file mode 100644
index 9e4c2cb..0000000
--- a/libs/ext/zlib/deflate.c
+++ /dev/null
@@ -1,1965 +0,0 @@
-/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- *  ALGORITHM
- *
- *      The "deflation" process depends on being able to identify portions
- *      of the input text which are identical to earlier input (within a
- *      sliding window trailing behind the input currently being processed).
- *
- *      The most straightforward technique turns out to be the fastest for
- *      most input files: try all possible matches and select the longest.
- *      The key feature of this algorithm is that insertions into the string
- *      dictionary are very simple and thus fast, and deletions are avoided
- *      completely. Insertions are performed at each input character, whereas
- *      string matches are performed only when the previous match ends. So it
- *      is preferable to spend more time in matches to allow very fast string
- *      insertions and avoid deletions. The matching algorithm for small
- *      strings is inspired from that of Rabin & Karp. A brute force approach
- *      is used to find longer strings when a small match has been found.
- *      A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
- *      (by Leonid Broukhis).
- *         A previous version of this file used a more sophisticated algorithm
- *      (by Fiala and Greene) which is guaranteed to run in linear amortized
- *      time, but has a larger average cost, uses more memory and is patented.
- *      However the F&G algorithm may be faster for some highly redundant
- *      files if the parameter max_chain_length (described below) is too large.
- *
- *  ACKNOWLEDGEMENTS
- *
- *      The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
- *      I found it in 'freeze' written by Leonid Broukhis.
- *      Thanks to many people for bug reports and testing.
- *
- *  REFERENCES
- *
- *      Deutsch, L.P.,"DEFLATE Compressed Data Format Specification".
- *      Available in http://tools.ietf.org/html/rfc1951
- *
- *      A description of the Rabin and Karp algorithm is given in the book
- *         "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
- *
- *      Fiala,E.R., and Greene,D.H.
- *         Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
- *
- */
-
-/* @(#) $Id$ */
-
-#include "deflate.h"
-
-const char deflate_copyright[] =
-   " deflate 1.2.7 Copyright 1995-2012 Jean-loup Gailly and Mark Adler ";
-/*
-  If you use the zlib library in a product, an acknowledgment is welcome
-  in the documentation of your product. If for some reason you cannot
-  include such an acknowledgment, I would appreciate that you keep this
-  copyright string in the executable of your product.
- */
-
-/* ===========================================================================
- *  Function prototypes.
- */
-typedef enum {
-    need_more,      /* block not completed, need more input or more output */
-    block_done,     /* block flush performed */
-    finish_started, /* finish started, need only more output at next deflate */
-    finish_done     /* finish done, accept no more input or output */
-} block_state;
-
-typedef block_state (*compress_func) OF((deflate_state *s, int flush));
-/* Compression function. Returns the block state after the call. */
-
-local void fill_window    OF((deflate_state *s));
-local block_state deflate_stored OF((deflate_state *s, int flush));
-local block_state deflate_fast   OF((deflate_state *s, int flush));
-#ifndef FASTEST
-local block_state deflate_slow   OF((deflate_state *s, int flush));
-#endif
-local block_state deflate_rle    OF((deflate_state *s, int flush));
-local block_state deflate_huff   OF((deflate_state *s, int flush));
-local void lm_init        OF((deflate_state *s));
-local void putShortMSB    OF((deflate_state *s, uInt b));
-local void flush_pending  OF((z_streamp strm));
-local int read_buf        OF((z_streamp strm, Bytef *buf, unsigned size));
-#ifdef ASMV
-      void match_init OF((void)); /* asm code initialization */
-      uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#else
-local uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#endif
-
-#ifdef DEBUG
-local  void check_match OF((deflate_state *s, IPos start, IPos match,
-                            int length));
-#endif
-
-/* ===========================================================================
- * Local data
- */
-
-#define NIL 0
-/* Tail of hash chains */
-
-#ifndef TOO_FAR
-#  define TOO_FAR 4096
-#endif
-/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
-
-/* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
-typedef struct config_s {
-   ush good_length; /* reduce lazy search above this match length */
-   ush max_lazy;    /* do not perform lazy search above this match length */
-   ush nice_length; /* quit search above this match length */
-   ush max_chain;
-   compress_func func;
-} config;
-
-#ifdef FASTEST
-local const config configuration_table[2] = {
-/*      good lazy nice chain */
-/* 0 */ {0,    0,  0,    0, deflate_stored},  /* store only */
-/* 1 */ {4,    4,  8,    4, deflate_fast}}; /* max speed, no lazy matches */
-#else
-local const config configuration_table[10] = {
-/*      good lazy nice chain */
-/* 0 */ {0,    0,  0,    0, deflate_stored},  /* store only */
-/* 1 */ {4,    4,  8,    4, deflate_fast}, /* max speed, no lazy matches */
-/* 2 */ {4,    5, 16,    8, deflate_fast},
-/* 3 */ {4,    6, 32,   32, deflate_fast},
-
-/* 4 */ {4,    4, 16,   16, deflate_slow},  /* lazy matches */
-/* 5 */ {8,   16, 32,   32, deflate_slow},
-/* 6 */ {8,   16, 128, 128, deflate_slow},
-/* 7 */ {8,   32, 128, 256, deflate_slow},
-/* 8 */ {32, 128, 258, 1024, deflate_slow},
-/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */
-#endif
-
-/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
- * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
- * meaning.
- */
-
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
-/* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
-#define RANK(f) (((f) << 1) - ((f) > 4 ? 9 : 0))
-
-/* ===========================================================================
- * Update a hash value with the given input byte
- * IN  assertion: all calls to to UPDATE_HASH are made with consecutive
- *    input characters, so that a running hash key can be computed from the
- *    previous key instead of complete recalculation each time.
- */
-#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
-
-
-/* ===========================================================================
- * Insert string str in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * If this file is compiled with -DFASTEST, the compression level is forced
- * to 1, and no hash chains are maintained.
- * IN  assertion: all calls to to INSERT_STRING are made with consecutive
- *    input characters and the first MIN_MATCH bytes of str are valid
- *    (except for the last MIN_MATCH-1 bytes of the input file).
- */
-#ifdef FASTEST
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
-#else
-#define INSERT_STRING(s, str, match_head) \
-   (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
-    match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \
-    s->head[s->ins_h] = (Pos)(str))
-#endif
-
-/* ===========================================================================
- * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
- * prev[] will be initialized on the fly.
- */
-#define CLEAR_HASH(s) \
-    s->head[s->hash_size-1] = NIL; \
-    zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
-
-/* ========================================================================= */
-int ZEXPORT deflateInit_(strm, level, version, stream_size)
-    z_streamp strm;
-    int level;
-    const char *version;
-    int stream_size;
-{
-    return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
-                         Z_DEFAULT_STRATEGY, version, stream_size);
-    /* To do: ignore strm->next_in if we use it as window */
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
-                  version, stream_size)
-    z_streamp strm;
-    int  level;
-    int  method;
-    int  windowBits;
-    int  memLevel;
-    int  strategy;
-    const char *version;
-    int stream_size;
-{
-    deflate_state *s;
-    int wrap = 1;
-    static const char my_version[] = ZLIB_VERSION;
-
-    ushf *overlay;
-    /* We overlay pending_buf and d_buf+l_buf. This works since the average
-     * output size for (length,distance) codes is <= 24 bits.
-     */
-
-    if (version == Z_NULL || version[0] != my_version[0] ||
-        stream_size != sizeof(z_stream)) {
-        return Z_VERSION_ERROR;
-    }
-    if (strm == Z_NULL) return Z_STREAM_ERROR;
-
-    strm->msg = Z_NULL;
-    if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-#endif
-    }
-    if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zfree = zcfree;
-#endif
-
-#ifdef FASTEST
-    if (level != 0) level = 1;
-#else
-    if (level == Z_DEFAULT_COMPRESSION) level = 6;
-#endif
-
-    if (windowBits < 0) { /* suppress zlib wrapper */
-        wrap = 0;
-        windowBits = -windowBits;
-    }
-#ifdef GZIP
-    else if (windowBits > 15) {
-        wrap = 2;       /* write gzip wrapper instead */
-        windowBits -= 16;
-    }
-#endif
-    if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
-        windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
-        strategy < 0 || strategy > Z_FIXED) {
-        return Z_STREAM_ERROR;
-    }
-    if (windowBits == 8) windowBits = 9;  /* until 256-byte window bug fixed */
-    s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
-    if (s == Z_NULL) return Z_MEM_ERROR;
-    strm->state = (struct internal_state FAR *)s;
-    s->strm = strm;
-
-    s->wrap = wrap;
-    s->gzhead = Z_NULL;
-    s->w_bits = windowBits;
-    s->w_size = 1 << s->w_bits;
-    s->w_mask = s->w_size - 1;
-
-    s->hash_bits = memLevel + 7;
-    s->hash_size = 1 << s->hash_bits;
-    s->hash_mask = s->hash_size - 1;
-    s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
-
-    s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
-    s->prev   = (Posf *)  ZALLOC(strm, s->w_size, sizeof(Pos));
-    s->head   = (Posf *)  ZALLOC(strm, s->hash_size, sizeof(Pos));
-
-    s->high_water = 0;      /* nothing written to s->window yet */
-
-    s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
-
-    overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
-    s->pending_buf = (uchf *) overlay;
-    s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
-
-    if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
-        s->pending_buf == Z_NULL) {
-        s->status = FINISH_STATE;
-        strm->msg = (char*)ERR_MSG(Z_MEM_ERROR);
-        deflateEnd (strm);
-        return Z_MEM_ERROR;
-    }
-    s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
-    s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
-
-    s->level = level;
-    s->strategy = strategy;
-    s->method = (Byte)method;
-
-    return deflateReset(strm);
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
-    z_streamp strm;
-    const Bytef *dictionary;
-    uInt  dictLength;
-{
-    deflate_state *s;
-    uInt str, n;
-    int wrap;
-    unsigned avail;
-    unsigned char *next;
-
-    if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL)
-        return Z_STREAM_ERROR;
-    s = strm->state;
-    wrap = s->wrap;
-    if (wrap == 2 || (wrap == 1 && s->status != INIT_STATE) || s->lookahead)
-        return Z_STREAM_ERROR;
-
-    /* when using zlib wrappers, compute Adler-32 for provided dictionary */
-    if (wrap == 1)
-        strm->adler = adler32(strm->adler, dictionary, dictLength);
-    s->wrap = 0;                    /* avoid computing Adler-32 in read_buf */
-
-    /* if dictionary would fill window, just replace the history */
-    if (dictLength >= s->w_size) {
-        if (wrap == 0) {            /* already empty otherwise */
-            CLEAR_HASH(s);
-            s->strstart = 0;
-            s->block_start = 0L;
-            s->insert = 0;
-        }
-        dictionary += dictLength - s->w_size;  /* use the tail */
-        dictLength = s->w_size;
-    }
-
-    /* insert dictionary into window and hash */
-    avail = strm->avail_in;
-    next = strm->next_in;
-    strm->avail_in = dictLength;
-    strm->next_in = (Bytef *)dictionary;
-    fill_window(s);
-    while (s->lookahead >= MIN_MATCH) {
-        str = s->strstart;
-        n = s->lookahead - (MIN_MATCH-1);
-        do {
-            UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]);
-#ifndef FASTEST
-            s->prev[str & s->w_mask] = s->head[s->ins_h];
-#endif
-            s->head[s->ins_h] = (Pos)str;
-            str++;
-        } while (--n);
-        s->strstart = str;
-        s->lookahead = MIN_MATCH-1;
-        fill_window(s);
-    }
-    s->strstart += s->lookahead;
-    s->block_start = (long)s->strstart;
-    s->insert = s->lookahead;
-    s->lookahead = 0;
-    s->match_length = s->prev_length = MIN_MATCH-1;
-    s->match_available = 0;
-    strm->next_in = next;
-    strm->avail_in = avail;
-    s->wrap = wrap;
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateResetKeep (strm)
-    z_streamp strm;
-{
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) {
-        return Z_STREAM_ERROR;
-    }
-
-    strm->total_in = strm->total_out = 0;
-    strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
-    strm->data_type = Z_UNKNOWN;
-
-    s = (deflate_state *)strm->state;
-    s->pending = 0;
-    s->pending_out = s->pending_buf;
-
-    if (s->wrap < 0) {
-        s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
-    }
-    s->status = s->wrap ? INIT_STATE : BUSY_STATE;
-    strm->adler =
-#ifdef GZIP
-        s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
-#endif
-        adler32(0L, Z_NULL, 0);
-    s->last_flush = Z_NO_FLUSH;
-
-    _tr_init(s);
-
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateReset (strm)
-    z_streamp strm;
-{
-    int ret;
-
-    ret = deflateResetKeep(strm);
-    if (ret == Z_OK)
-        lm_init(strm->state);
-    return ret;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateSetHeader (strm, head)
-    z_streamp strm;
-    gz_headerp head;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    if (strm->state->wrap != 2) return Z_STREAM_ERROR;
-    strm->state->gzhead = head;
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflatePending (strm, pending, bits)
-    unsigned *pending;
-    int *bits;
-    z_streamp strm;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    if (pending != Z_NULL)
-        *pending = strm->state->pending;
-    if (bits != Z_NULL)
-        *bits = strm->state->bi_valid;
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflatePrime (strm, bits, value)
-    z_streamp strm;
-    int bits;
-    int value;
-{
-    deflate_state *s;
-    int put;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    s = strm->state;
-    if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
-        return Z_BUF_ERROR;
-    do {
-        put = Buf_size - s->bi_valid;
-        if (put > bits)
-            put = bits;
-        s->bi_buf |= (ush)((value & ((1 << put) - 1)) << s->bi_valid);
-        s->bi_valid += put;
-        _tr_flush_bits(s);
-        value >>= put;
-        bits -= put;
-    } while (bits);
-    return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateParams(strm, level, strategy)
-    z_streamp strm;
-    int level;
-    int strategy;
-{
-    deflate_state *s;
-    compress_func func;
-    int err = Z_OK;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    s = strm->state;
-
-#ifdef FASTEST
-    if (level != 0) level = 1;
-#else
-    if (level == Z_DEFAULT_COMPRESSION) level = 6;
-#endif
-    if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {
-        return Z_STREAM_ERROR;
-    }
-    func = configuration_table[s->level].func;
-
-    if ((strategy != s->strategy || func != configuration_table[level].func) &&
-        strm->total_in != 0) {
-        /* Flush the last buffer: */
-        err = deflate(strm, Z_BLOCK);
-    }
-    if (s->level != level) {
-        s->level = level;
-        s->max_lazy_match   = configuration_table[level].max_lazy;
-        s->good_match       = configuration_table[level].good_length;
-        s->nice_match       = configuration_table[level].nice_length;
-        s->max_chain_length = configuration_table[level].max_chain;
-    }
-    s->strategy = strategy;
-    return err;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain)
-    z_streamp strm;
-    int good_length;
-    int max_lazy;
-    int nice_length;
-    int max_chain;
-{
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    s = strm->state;
-    s->good_match = good_length;
-    s->max_lazy_match = max_lazy;
-    s->nice_match = nice_length;
-    s->max_chain_length = max_chain;
-    return Z_OK;
-}
-
-/* =========================================================================
- * For the default windowBits of 15 and memLevel of 8, this function returns
- * a close to exact, as well as small, upper bound on the compressed size.
- * They are coded as constants here for a reason--if the #define's are
- * changed, then this function needs to be changed as well.  The return
- * value for 15 and 8 only works for those exact settings.
- *
- * For any setting other than those defaults for windowBits and memLevel,
- * the value returned is a conservative worst case for the maximum expansion
- * resulting from using fixed blocks instead of stored blocks, which deflate
- * can emit on compressed data for some combinations of the parameters.
- *
- * This function could be more sophisticated to provide closer upper bounds for
- * every combination of windowBits and memLevel.  But even the conservative
- * upper bound of about 14% expansion does not seem onerous for output buffer
- * allocation.
- */
-uLong ZEXPORT deflateBound(strm, sourceLen)
-    z_streamp strm;
-    uLong sourceLen;
-{
-    deflate_state *s;
-    uLong complen, wraplen;
-    Bytef *str;
-
-    /* conservative upper bound for compressed data */
-    complen = sourceLen +
-              ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
-
-    /* if can't get parameters, return conservative bound plus zlib wrapper */
-    if (strm == Z_NULL || strm->state == Z_NULL)
-        return complen + 6;
-
-    /* compute wrapper length */
-    s = strm->state;
-    switch (s->wrap) {
-    case 0:                                 /* raw deflate */
-        wraplen = 0;
-        break;
-    case 1:                                 /* zlib wrapper */
-        wraplen = 6 + (s->strstart ? 4 : 0);
-        break;
-    case 2:                                 /* gzip wrapper */
-        wraplen = 18;
-        if (s->gzhead != Z_NULL) {          /* user-supplied gzip header */
-            if (s->gzhead->extra != Z_NULL)
-                wraplen += 2 + s->gzhead->extra_len;
-            str = s->gzhead->name;
-            if (str != Z_NULL)
-                do {
-                    wraplen++;
-                } while (*str++);
-            str = s->gzhead->comment;
-            if (str != Z_NULL)
-                do {
-                    wraplen++;
-                } while (*str++);
-            if (s->gzhead->hcrc)
-                wraplen += 2;
-        }
-        break;
-    default:                                /* for compiler happiness */
-        wraplen = 6;
-    }
-
-    /* if not default parameters, return conservative bound */
-    if (s->w_bits != 15 || s->hash_bits != 8 + 7)
-        return complen + wraplen;
-
-    /* default settings: return tight bound for that case */
-    return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
-           (sourceLen >> 25) + 13 - 6 + wraplen;
-}
-
-/* =========================================================================
- * Put a short in the pending buffer. The 16-bit value is put in MSB order.
- * IN assertion: the stream state is correct and there is enough room in
- * pending_buf.
- */
-local void putShortMSB (s, b)
-    deflate_state *s;
-    uInt b;
-{
-    put_byte(s, (Byte)(b >> 8));
-    put_byte(s, (Byte)(b & 0xff));
-}
-
-/* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
- */
-local void flush_pending(strm)
-    z_streamp strm;
-{
-    unsigned len;
-    deflate_state *s = strm->state;
-
-    _tr_flush_bits(s);
-    len = s->pending;
-    if (len > strm->avail_out) len = strm->avail_out;
-    if (len == 0) return;
-
-    zmemcpy(strm->next_out, s->pending_out, len);
-    strm->next_out  += len;
-    s->pending_out  += len;
-    strm->total_out += len;
-    strm->avail_out  -= len;
-    s->pending -= len;
-    if (s->pending == 0) {
-        s->pending_out = s->pending_buf;
-    }
-}
-
-/* ========================================================================= */
-int ZEXPORT deflate (strm, flush)
-    z_streamp strm;
-    int flush;
-{
-    int old_flush; /* value of flush param for previous deflate call */
-    deflate_state *s;
-
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        flush > Z_BLOCK || flush < 0) {
-        return Z_STREAM_ERROR;
-    }
-    s = strm->state;
-
-    if (strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0) ||
-        (s->status == FINISH_STATE && flush != Z_FINISH)) {
-        ERR_RETURN(strm, Z_STREAM_ERROR);
-    }
-    if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
-
-    s->strm = strm; /* just in case */
-    old_flush = s->last_flush;
-    s->last_flush = flush;
-
-    /* Write the header */
-    if (s->status == INIT_STATE) {
-#ifdef GZIP
-        if (s->wrap == 2) {
-            strm->adler = crc32(0L, Z_NULL, 0);
-            put_byte(s, 31);
-            put_byte(s, 139);
-            put_byte(s, 8);
-            if (s->gzhead == Z_NULL) {
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, OS_CODE);
-                s->status = BUSY_STATE;
-            }
-            else {
-                put_byte(s, (s->gzhead->text ? 1 : 0) +
-                            (s->gzhead->hcrc ? 2 : 0) +
-                            (s->gzhead->extra == Z_NULL ? 0 : 4) +
-                            (s->gzhead->name == Z_NULL ? 0 : 8) +
-                            (s->gzhead->comment == Z_NULL ? 0 : 16)
-                        );
-                put_byte(s, (Byte)(s->gzhead->time & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, s->gzhead->os & 0xff);
-                if (s->gzhead->extra != Z_NULL) {
-                    put_byte(s, s->gzhead->extra_len & 0xff);
-                    put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
-                }
-                if (s->gzhead->hcrc)
-                    strm->adler = crc32(strm->adler, s->pending_buf,
-                                        s->pending);
-                s->gzindex = 0;
-                s->status = EXTRA_STATE;
-            }
-        }
-        else
-#endif
-        {
-            uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
-            uInt level_flags;
-
-            if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
-                level_flags = 0;
-            else if (s->level < 6)
-                level_flags = 1;
-            else if (s->level == 6)
-                level_flags = 2;
-            else
-                level_flags = 3;
-            header |= (level_flags << 6);
-            if (s->strstart != 0) header |= PRESET_DICT;
-            header += 31 - (header % 31);
-
-            s->status = BUSY_STATE;
-            putShortMSB(s, header);
-
-            /* Save the adler32 of the preset dictionary: */
-            if (s->strstart != 0) {
-                putShortMSB(s, (uInt)(strm->adler >> 16));
-                putShortMSB(s, (uInt)(strm->adler & 0xffff));
-            }
-            strm->adler = adler32(0L, Z_NULL, 0);
-        }
-    }
-#ifdef GZIP
-    if (s->status == EXTRA_STATE) {
-        if (s->gzhead->extra != Z_NULL) {
-            uInt beg = s->pending;  /* start of bytes to update crc */
-
-            while (s->gzindex < (s->gzhead->extra_len & 0xffff)) {
-                if (s->pending == s->pending_buf_size) {
-                    if (s->gzhead->hcrc && s->pending > beg)
-                        strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                            s->pending - beg);
-                    flush_pending(strm);
-                    beg = s->pending;
-                    if (s->pending == s->pending_buf_size)
-                        break;
-                }
-                put_byte(s, s->gzhead->extra[s->gzindex]);
-                s->gzindex++;
-            }
-            if (s->gzhead->hcrc && s->pending > beg)
-                strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                    s->pending - beg);
-            if (s->gzindex == s->gzhead->extra_len) {
-                s->gzindex = 0;
-                s->status = NAME_STATE;
-            }
-        }
-        else
-            s->status = NAME_STATE;
-    }
-    if (s->status == NAME_STATE) {
-        if (s->gzhead->name != Z_NULL) {
-            uInt beg = s->pending;  /* start of bytes to update crc */
-            int val;
-
-            do {
-                if (s->pending == s->pending_buf_size) {
-                    if (s->gzhead->hcrc && s->pending > beg)
-                        strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                            s->pending - beg);
-                    flush_pending(strm);
-                    beg = s->pending;
-                    if (s->pending == s->pending_buf_size) {
-                        val = 1;
-                        break;
-                    }
-                }
-                val = s->gzhead->name[s->gzindex++];
-                put_byte(s, val);
-            } while (val != 0);
-            if (s->gzhead->hcrc && s->pending > beg)
-                strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                    s->pending - beg);
-            if (val == 0) {
-                s->gzindex = 0;
-                s->status = COMMENT_STATE;
-            }
-        }
-        else
-            s->status = COMMENT_STATE;
-    }
-    if (s->status == COMMENT_STATE) {
-        if (s->gzhead->comment != Z_NULL) {
-            uInt beg = s->pending;  /* start of bytes to update crc */
-            int val;
-
-            do {
-                if (s->pending == s->pending_buf_size) {
-                    if (s->gzhead->hcrc && s->pending > beg)
-                        strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                            s->pending - beg);
-                    flush_pending(strm);
-                    beg = s->pending;
-                    if (s->pending == s->pending_buf_size) {
-                        val = 1;
-                        break;
-                    }
-                }
-                val = s->gzhead->comment[s->gzindex++];
-                put_byte(s, val);
-            } while (val != 0);
-            if (s->gzhead->hcrc && s->pending > beg)
-                strm->adler = crc32(strm->adler, s->pending_buf + beg,
-                                    s->pending - beg);
-            if (val == 0)
-                s->status = HCRC_STATE;
-        }
-        else
-            s->status = HCRC_STATE;
-    }
-    if (s->status == HCRC_STATE) {
-        if (s->gzhead->hcrc) {
-            if (s->pending + 2 > s->pending_buf_size)
-                flush_pending(strm);
-            if (s->pending + 2 <= s->pending_buf_size) {
-                put_byte(s, (Byte)(strm->adler & 0xff));
-                put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
-                strm->adler = crc32(0L, Z_NULL, 0);
-                s->status = BUSY_STATE;
-            }
-        }
-        else
-            s->status = BUSY_STATE;
-    }
-#endif
-
-    /* Flush as much pending output as possible */
-    if (s->pending != 0) {
-        flush_pending(strm);
-        if (strm->avail_out == 0) {
-            /* Since avail_out is 0, deflate will be called again with
-             * more output space, but possibly with both pending and
-             * avail_in equal to zero. There won't be anything to do,
-             * but this is not an error situation so make sure we
-             * return OK instead of BUF_ERROR at next call of deflate:
-             */
-            s->last_flush = -1;
-            return Z_OK;
-        }
-
-    /* Make sure there is something to do and avoid duplicate consecutive
-     * flushes. For repeated and useless calls with Z_FINISH, we keep
-     * returning Z_STREAM_END instead of Z_BUF_ERROR.
-     */
-    } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
-               flush != Z_FINISH) {
-        ERR_RETURN(strm, Z_BUF_ERROR);
-    }
-
-    /* User must not provide more input after the first FINISH: */
-    if (s->status == FINISH_STATE && strm->avail_in != 0) {
-        ERR_RETURN(strm, Z_BUF_ERROR);
-    }
-
-    /* Start a new block or continue the current one.
-     */
-    if (strm->avail_in != 0 || s->lookahead != 0 ||
-        (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
-        block_state bstate;
-
-        bstate = s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :
-                    (s->strategy == Z_RLE ? deflate_rle(s, flush) :
-                        (*(configuration_table[s->level].func))(s, flush));
-
-        if (bstate == finish_started || bstate == finish_done) {
-            s->status = FINISH_STATE;
-        }
-        if (bstate == need_more || bstate == finish_started) {
-            if (strm->avail_out == 0) {
-                s->last_flush = -1; /* avoid BUF_ERROR next call, see above */
-            }
-            return Z_OK;
-            /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
-             * of deflate should use the same flush parameter to make sure
-             * that the flush is complete. So we don't have to output an
-             * empty block here, this will be done at next call. This also
-             * ensures that for a very small output buffer, we emit at most
-             * one empty block.
-             */
-        }
-        if (bstate == block_done) {
-            if (flush == Z_PARTIAL_FLUSH) {
-                _tr_align(s);
-            } else if (flush != Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
-                _tr_stored_block(s, (char*)0, 0L, 0);
-                /* For a full flush, this empty block will be recognized
-                 * as a special marker by inflate_sync().
-                 */
-                if (flush == Z_FULL_FLUSH) {
-                    CLEAR_HASH(s);             /* forget history */
-                    if (s->lookahead == 0) {
-                        s->strstart = 0;
-                        s->block_start = 0L;
-                        s->insert = 0;
-                    }
-                }
-            }
-            flush_pending(strm);
-            if (strm->avail_out == 0) {
-              s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */
-              return Z_OK;
-            }
-        }
-    }
-    Assert(strm->avail_out > 0, "bug2");
-
-    if (flush != Z_FINISH) return Z_OK;
-    if (s->wrap <= 0) return Z_STREAM_END;
-
-    /* Write the trailer */
-#ifdef GZIP
-    if (s->wrap == 2) {
-        put_byte(s, (Byte)(strm->adler & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 16) & 0xff));
-        put_byte(s, (Byte)((strm->adler >> 24) & 0xff));
-        put_byte(s, (Byte)(strm->total_in & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 8) & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 16) & 0xff));
-        put_byte(s, (Byte)((strm->total_in >> 24) & 0xff));
-    }
-    else
-#endif
-    {
-        putShortMSB(s, (uInt)(strm->adler >> 16));
-        putShortMSB(s, (uInt)(strm->adler & 0xffff));
-    }
-    flush_pending(strm);
-    /* If avail_out is zero, the application will call deflate again
-     * to flush the rest.
-     */
-    if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */
-    return s->pending != 0 ? Z_OK : Z_STREAM_END;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateEnd (strm)
-    z_streamp strm;
-{
-    int status;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-
-    status = strm->state->status;
-    if (status != INIT_STATE &&
-        status != EXTRA_STATE &&
-        status != NAME_STATE &&
-        status != COMMENT_STATE &&
-        status != HCRC_STATE &&
-        status != BUSY_STATE &&
-        status != FINISH_STATE) {
-      return Z_STREAM_ERROR;
-    }
-
-    /* Deallocate in reverse order of allocations: */
-    TRY_FREE(strm, strm->state->pending_buf);
-    TRY_FREE(strm, strm->state->head);
-    TRY_FREE(strm, strm->state->prev);
-    TRY_FREE(strm, strm->state->window);
-
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-
-    return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
-}
-
-/* =========================================================================
- * Copy the source state to the destination state.
- * To simplify the source, this is not supported for 16-bit MSDOS (which
- * doesn't have enough memory anyway to duplicate compression states).
- */
-int ZEXPORT deflateCopy (dest, source)
-    z_streamp dest;
-    z_streamp source;
-{
-#ifdef MAXSEG_64K
-    return Z_STREAM_ERROR;
-#else
-    deflate_state *ds;
-    deflate_state *ss;
-    ushf *overlay;
-
-
-    if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) {
-        return Z_STREAM_ERROR;
-    }
-
-    ss = source->state;
-
-    zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));
-
-    ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
-    if (ds == Z_NULL) return Z_MEM_ERROR;
-    dest->state = (struct internal_state FAR *) ds;
-    zmemcpy((voidpf)ds, (voidpf)ss, sizeof(deflate_state));
-    ds->strm = dest;
-
-    ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
-    ds->prev   = (Posf *)  ZALLOC(dest, ds->w_size, sizeof(Pos));
-    ds->head   = (Posf *)  ZALLOC(dest, ds->hash_size, sizeof(Pos));
-    overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
-    ds->pending_buf = (uchf *) overlay;
-
-    if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
-        ds->pending_buf == Z_NULL) {
-        deflateEnd (dest);
-        return Z_MEM_ERROR;
-    }
-    /* following zmemcpy do not work for 16-bit MSDOS */
-    zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte));
-    zmemcpy((voidpf)ds->prev, (voidpf)ss->prev, ds->w_size * sizeof(Pos));
-    zmemcpy((voidpf)ds->head, (voidpf)ss->head, ds->hash_size * sizeof(Pos));
-    zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
-
-    ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
-    ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
-    ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
-
-    ds->l_desc.dyn_tree = ds->dyn_ltree;
-    ds->d_desc.dyn_tree = ds->dyn_dtree;
-    ds->bl_desc.dyn_tree = ds->bl_tree;
-
-    return Z_OK;
-#endif /* MAXSEG_64K */
-}
-
-/* ===========================================================================
- * Read a new buffer from the current input stream, update the adler32
- * and total number of bytes read.  All deflate() input goes through
- * this function so some applications may wish to modify it to avoid
- * allocating a large strm->next_in buffer and copying from it.
- * (See also flush_pending()).
- */
-local int read_buf(strm, buf, size)
-    z_streamp strm;
-    Bytef *buf;
-    unsigned size;
-{
-    unsigned len = strm->avail_in;
-
-    if (len > size) len = size;
-    if (len == 0) return 0;
-
-    strm->avail_in  -= len;
-
-    zmemcpy(buf, strm->next_in, len);
-    if (strm->state->wrap == 1) {
-        strm->adler = adler32(strm->adler, buf, len);
-    }
-#ifdef GZIP
-    else if (strm->state->wrap == 2) {
-        strm->adler = crc32(strm->adler, buf, len);
-    }
-#endif
-    strm->next_in  += len;
-    strm->total_in += len;
-
-    return (int)len;
-}
-
-/* ===========================================================================
- * Initialize the "longest match" routines for a new zlib stream
- */
-local void lm_init (s)
-    deflate_state *s;
-{
-    s->window_size = (ulg)2L*s->w_size;
-
-    CLEAR_HASH(s);
-
-    /* Set the default configuration parameters:
-     */
-    s->max_lazy_match   = configuration_table[s->level].max_lazy;
-    s->good_match       = configuration_table[s->level].good_length;
-    s->nice_match       = configuration_table[s->level].nice_length;
-    s->max_chain_length = configuration_table[s->level].max_chain;
-
-    s->strstart = 0;
-    s->block_start = 0L;
-    s->lookahead = 0;
-    s->insert = 0;
-    s->match_length = s->prev_length = MIN_MATCH-1;
-    s->match_available = 0;
-    s->ins_h = 0;
-#ifndef FASTEST
-#ifdef ASMV
-    match_init(); /* initialize the asm code */
-#endif
-#endif
-}
-
-#ifndef FASTEST
-/* ===========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- * OUT assertion: the match length is not greater than s->lookahead.
- */
-#ifndef ASMV
-/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
- * match.S. The code will be functionally equivalent.
- */
-local uInt longest_match(s, cur_match)
-    deflate_state *s;
-    IPos cur_match;                             /* current match */
-{
-    unsigned chain_length = s->max_chain_length;/* max hash chain length */
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                       /* matched string */
-    register int len;                           /* length of current match */
-    int best_len = s->prev_length;              /* best match length so far */
-    int nice_match = s->nice_match;             /* stop if match long enough */
-    IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
-        s->strstart - (IPos)MAX_DIST(s) : NIL;
-    /* Stop when cur_match becomes <= limit. To simplify the code,
-     * we prevent matches with the string of window index 0.
-     */
-    Posf *prev = s->prev;
-    uInt wmask = s->w_mask;
-
-#ifdef UNALIGNED_OK
-    /* Compare two bytes at a time. Note: this is not always beneficial.
-     * Try with and without -DUNALIGNED_OK to check.
-     */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
-    register ush scan_start = *(ushf*)scan;
-    register ush scan_end   = *(ushf*)(scan+best_len-1);
-#else
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-    register Byte scan_end1  = scan[best_len-1];
-    register Byte scan_end   = scan[best_len];
-#endif
-
-    /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-     * It is easy to get rid of this optimization if necessary.
-     */
-    Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
-    /* Do not waste too much time if we already have a good match: */
-    if (s->prev_length >= s->good_match) {
-        chain_length >>= 2;
-    }
-    /* Do not look for matches beyond the end of the input. This is necessary
-     * to make deflate deterministic.
-     */
-    if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
-    do {
-        Assert(cur_match < s->strstart, "no future");
-        match = s->window + cur_match;
-
-        /* Skip to next match if the match length cannot increase
-         * or if the match length is less than 2.  Note that the checks below
-         * for insufficient lookahead only occur occasionally for performance
-         * reasons.  Therefore uninitialized memory will be accessed, and
-         * conditional jumps will be made that depend on those values.
-         * However the length of the match is limited to the lookahead, so
-         * the output of deflate is not affected by the uninitialized values.
-         */
-#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
-        /* This code assumes sizeof(unsigned short) == 2. Do not use
-         * UNALIGNED_OK if your compiler uses a different size.
-         */
-        if (*(ushf*)(match+best_len-1) != scan_end ||
-            *(ushf*)match != scan_start) continue;
-
-        /* It is not necessary to compare scan[2] and match[2] since they are
-         * always equal when the other bytes match, given that the hash keys
-         * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
-         * strstart+3, +5, ... up to strstart+257. We check for insufficient
-         * lookahead only every 4th comparison; the 128th check will be made
-         * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
-         * necessary to put more guard bytes at the end of the window, or
-         * to check more often for insufficient lookahead.
-         */
-        Assert(scan[2] == match[2], "scan[2]?");
-        scan++, match++;
-        do {
-        } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 scan < strend);
-        /* The funny "do {}" generates better code on most compilers */
-
-        /* Here, scan <= window+strstart+257 */
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-        if (*scan == *match) scan++;
-
-        len = (MAX_MATCH - 1) - (int)(strend-scan);
-        scan = strend - (MAX_MATCH-1);
-
-#else /* UNALIGNED_OK */
-
-        if (match[best_len]   != scan_end  ||
-            match[best_len-1] != scan_end1 ||
-            *match            != *scan     ||
-            *++match          != scan[1])      continue;
-
-        /* The check at best_len-1 can be removed because it will be made
-         * again later. (This heuristic is not always a win.)
-         * It is not necessary to compare scan[2] and match[2] since they
-         * are always equal when the other bytes match, given that
-         * the hash keys are equal and that HASH_BITS >= 8.
-         */
-        scan += 2, match++;
-        Assert(*scan == *match, "match[2]?");
-
-        /* We check for insufficient lookahead only every 8th comparison;
-         * the 256th check will be made at strstart+258.
-         */
-        do {
-        } while (*++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 *++scan == *++match && *++scan == *++match &&
-                 scan < strend);
-
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
-        len = MAX_MATCH - (int)(strend - scan);
-        scan = strend - MAX_MATCH;
-
-#endif /* UNALIGNED_OK */
-
-        if (len > best_len) {
-            s->match_start = cur_match;
-            best_len = len;
-            if (len >= nice_match) break;
-#ifdef UNALIGNED_OK
-            scan_end = *(ushf*)(scan+best_len-1);
-#else
-            scan_end1  = scan[best_len-1];
-            scan_end   = scan[best_len];
-#endif
-        }
-    } while ((cur_match = prev[cur_match & wmask]) > limit
-             && --chain_length != 0);
-
-    if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
-    return s->lookahead;
-}
-#endif /* ASMV */
-
-#else /* FASTEST */
-
-/* ---------------------------------------------------------------------------
- * Optimized version for FASTEST only
- */
-local uInt longest_match(s, cur_match)
-    deflate_state *s;
-    IPos cur_match;                             /* current match */
-{
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                       /* matched string */
-    register int len;                           /* length of current match */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-
-    /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-     * It is easy to get rid of this optimization if necessary.
-     */
-    Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
-    Assert(cur_match < s->strstart, "no future");
-
-    match = s->window + cur_match;
-
-    /* Return failure if the match length is less than 2:
-     */
-    if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1;
-
-    /* The check at best_len-1 can be removed because it will be made
-     * again later. (This heuristic is not always a win.)
-     * It is not necessary to compare scan[2] and match[2] since they
-     * are always equal when the other bytes match, given that
-     * the hash keys are equal and that HASH_BITS >= 8.
-     */
-    scan += 2, match += 2;
-    Assert(*scan == *match, "match[2]?");
-
-    /* We check for insufficient lookahead only every 8th comparison;
-     * the 256th check will be made at strstart+258.
-     */
-    do {
-    } while (*++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             *++scan == *++match && *++scan == *++match &&
-             scan < strend);
-
-    Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
-    len = MAX_MATCH - (int)(strend - scan);
-
-    if (len < MIN_MATCH) return MIN_MATCH - 1;
-
-    s->match_start = cur_match;
-    return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead;
-}
-
-#endif /* FASTEST */
-
-#ifdef DEBUG
-/* ===========================================================================
- * Check that the match at match_start is indeed a match.
- */
-local void check_match(s, start, match, length)
-    deflate_state *s;
-    IPos start, match;
-    int length;
-{
-    /* check that the match is indeed a match */
-    if (zmemcmp(s->window + match,
-                s->window + start, length) != EQUAL) {
-        fprintf(stderr, " start %u, match %u, length %d\n",
-                start, match, length);
-        do {
-            fprintf(stderr, "%c%c", s->window[match++], s->window[start++]);
-        } while (--length != 0);
-        z_error("invalid match");
-    }
-    if (z_verbose > 1) {
-        fprintf(stderr,"\\[%d,%d]", start-match, length);
-        do { putc(s->window[start++], stderr); } while (--length != 0);
-    }
-}
-#else
-#  define check_match(s, start, match, length)
-#endif /* DEBUG */
-
-/* ===========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead.
- *
- * IN assertion: lookahead < MIN_LOOKAHEAD
- * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
- *    At least one byte has been read, or avail_in == 0; reads are
- *    performed for at least two bytes (required for the zip translate_eol
- *    option -- not supported here).
- */
-local void fill_window(s)
-    deflate_state *s;
-{
-    register unsigned n, m;
-    register Posf *p;
-    unsigned more;    /* Amount of free space at the end of the window. */
-    uInt wsize = s->w_size;
-
-    Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
-
-    do {
-        more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
-
-        /* Deal with !@#$% 64K limit: */
-        if (sizeof(int) <= 2) {
-            if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
-                more = wsize;
-
-            } else if (more == (unsigned)(-1)) {
-                /* Very unlikely, but possible on 16 bit machine if
-                 * strstart == 0 && lookahead == 1 (input done a byte at time)
-                 */
-                more--;
-            }
-        }
-
-        /* If the window is almost full and there is insufficient lookahead,
-         * move the upper half to the lower one to make room in the upper half.
-         */
-        if (s->strstart >= wsize+MAX_DIST(s)) {
-
-            zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
-            s->match_start -= wsize;
-            s->strstart    -= wsize; /* we now have strstart >= MAX_DIST */
-            s->block_start -= (long) wsize;
-
-            /* Slide the hash table (could be avoided with 32 bit values
-               at the expense of memory usage). We slide even when level == 0
-               to keep the hash table consistent if we switch back to level > 0
-               later. (Using level 0 permanently is not an optimal usage of
-               zlib, so we don't care about this pathological case.)
-             */
-            n = s->hash_size;
-            p = &s->head[n];
-            do {
-                m = *--p;
-                *p = (Pos)(m >= wsize ? m-wsize : NIL);
-            } while (--n);
-
-            n = wsize;
-#ifndef FASTEST
-            p = &s->prev[n];
-            do {
-                m = *--p;
-                *p = (Pos)(m >= wsize ? m-wsize : NIL);
-                /* If n is not on any hash chain, prev[n] is garbage but
-                 * its value will never be used.
-                 */
-            } while (--n);
-#endif
-            more += wsize;
-        }
-        if (s->strm->avail_in == 0) break;
-
-        /* If there was no sliding:
-         *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
-         *    more == window_size - lookahead - strstart
-         * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
-         * => more >= window_size - 2*WSIZE + 2
-         * In the BIG_MEM or MMAP case (not yet supported),
-         *   window_size == input_size + MIN_LOOKAHEAD  &&
-         *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
-         * Otherwise, window_size == 2*WSIZE so more >= 2.
-         * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
-         */
-        Assert(more >= 2, "more < 2");
-
-        n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more);
-        s->lookahead += n;
-
-        /* Initialize the hash value now that we have some input: */
-        if (s->lookahead + s->insert >= MIN_MATCH) {
-            uInt str = s->strstart - s->insert;
-            s->ins_h = s->window[str];
-            UPDATE_HASH(s, s->ins_h, s->window[str + 1]);
-#if MIN_MATCH != 3
-            Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
-            while (s->insert) {
-                UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]);
-#ifndef FASTEST
-                s->prev[str & s->w_mask] = s->head[s->ins_h];
-#endif
-                s->head[s->ins_h] = (Pos)str;
-                str++;
-                s->insert--;
-                if (s->lookahead + s->insert < MIN_MATCH)
-                    break;
-            }
-        }
-        /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
-         * but this is not important since only literal bytes will be emitted.
-         */
-
-    } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
-
-    /* If the WIN_INIT bytes after the end of the current data have never been
-     * written, then zero those bytes in order to avoid memory check reports of
-     * the use of uninitialized (or uninitialised as Julian writes) bytes by
-     * the longest match routines.  Update the high water mark for the next
-     * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
-     * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
-     */
-    if (s->high_water < s->window_size) {
-        ulg curr = s->strstart + (ulg)(s->lookahead);
-        ulg init;
-
-        if (s->high_water < curr) {
-            /* Previous high water mark below current data -- zero WIN_INIT
-             * bytes or up to end of window, whichever is less.
-             */
-            init = s->window_size - curr;
-            if (init > WIN_INIT)
-                init = WIN_INIT;
-            zmemzero(s->window + curr, (unsigned)init);
-            s->high_water = curr + init;
-        }
-        else if (s->high_water < (ulg)curr + WIN_INIT) {
-            /* High water mark at or above current data, but below current data
-             * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
-             * to end of window, whichever is less.
-             */
-            init = (ulg)curr + WIN_INIT - s->high_water;
-            if (init > s->window_size - s->high_water)
-                init = s->window_size - s->high_water;
-            zmemzero(s->window + s->high_water, (unsigned)init);
-            s->high_water += init;
-        }
-    }
-
-    Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
-           "not enough room for search");
-}
-
-/* ===========================================================================
- * Flush the current block, with given end-of-file flag.
- * IN assertion: strstart is set to the end of the current match.
- */
-#define FLUSH_BLOCK_ONLY(s, last) { \
-   _tr_flush_block(s, (s->block_start >= 0L ? \
-                   (charf *)&s->window[(unsigned)s->block_start] : \
-                   (charf *)Z_NULL), \
-                (ulg)((long)s->strstart - s->block_start), \
-                (last)); \
-   s->block_start = s->strstart; \
-   flush_pending(s->strm); \
-   Tracev((stderr,"[FLUSH]")); \
-}
-
-/* Same but force premature exit if necessary. */
-#define FLUSH_BLOCK(s, last) { \
-   FLUSH_BLOCK_ONLY(s, last); \
-   if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \
-}
-
-/* ===========================================================================
- * Copy without compression as much as possible from the input stream, return
- * the current block state.
- * This function does not insert new strings in the dictionary since
- * uncompressible data is probably not useful. This function is used
- * only for the level=0 compression option.
- * NOTE: this function should be optimized to avoid extra copying from
- * window to pending_buf.
- */
-local block_state deflate_stored(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
-     * to pending_buf_size, and each stored block has a 5 byte header:
-     */
-    ulg max_block_size = 0xffff;
-    ulg max_start;
-
-    if (max_block_size > s->pending_buf_size - 5) {
-        max_block_size = s->pending_buf_size - 5;
-    }
-
-    /* Copy as much as possible from input to output: */
-    for (;;) {
-        /* Fill the window as much as possible: */
-        if (s->lookahead <= 1) {
-
-            Assert(s->strstart < s->w_size+MAX_DIST(s) ||
-                   s->block_start >= (long)s->w_size, "slide too late");
-
-            fill_window(s);
-            if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
-
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-        Assert(s->block_start >= 0L, "block gone");
-
-        s->strstart += s->lookahead;
-        s->lookahead = 0;
-
-        /* Emit a stored block if pending_buf will be full: */
-        max_start = s->block_start + max_block_size;
-        if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
-            /* strstart == 0 is possible when wraparound on 16-bit machine */
-            s->lookahead = (uInt)(s->strstart - max_start);
-            s->strstart = (uInt)max_start;
-            FLUSH_BLOCK(s, 0);
-        }
-        /* Flush if we may have to slide, otherwise block_start may become
-         * negative and the data will be gone:
-         */
-        if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
-            FLUSH_BLOCK(s, 0);
-        }
-    }
-    s->insert = 0;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if ((long)s->strstart > s->block_start)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-
-/* ===========================================================================
- * Compress as much as possible from the input stream, return the current
- * block state.
- * This function does not perform lazy evaluation of matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
-local block_state deflate_fast(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    IPos hash_head;       /* head of the hash chain */
-    int bflush;           /* set if current block must be flushed */
-
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the next match, plus MIN_MATCH bytes to insert the
-         * string following the next match.
-         */
-        if (s->lookahead < MIN_LOOKAHEAD) {
-            fill_window(s);
-            if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* Insert the string window[strstart .. strstart+2] in the
-         * dictionary, and set hash_head to the head of the hash chain:
-         */
-        hash_head = NIL;
-        if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
-        }
-
-        /* Find the longest match, discarding those <= prev_length.
-         * At this point we have always match_length < MIN_MATCH
-         */
-        if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
-            /* To simplify the code, we prevent matches with the string
-             * of window index 0 (in particular we have to avoid a match
-             * of the string with itself at the start of the input file).
-             */
-            s->match_length = longest_match (s, hash_head);
-            /* longest_match() sets match_start */
-        }
-        if (s->match_length >= MIN_MATCH) {
-            check_match(s, s->strstart, s->match_start, s->match_length);
-
-            _tr_tally_dist(s, s->strstart - s->match_start,
-                           s->match_length - MIN_MATCH, bflush);
-
-            s->lookahead -= s->match_length;
-
-            /* Insert new strings in the hash table only if the match length
-             * is not too large. This saves time but degrades compression.
-             */
-#ifndef FASTEST
-            if (s->match_length <= s->max_insert_length &&
-                s->lookahead >= MIN_MATCH) {
-                s->match_length--; /* string at strstart already in table */
-                do {
-                    s->strstart++;
-                    INSERT_STRING(s, s->strstart, hash_head);
-                    /* strstart never exceeds WSIZE-MAX_MATCH, so there are
-                     * always MIN_MATCH bytes ahead.
-                     */
-                } while (--s->match_length != 0);
-                s->strstart++;
-            } else
-#endif
-            {
-                s->strstart += s->match_length;
-                s->match_length = 0;
-                s->ins_h = s->window[s->strstart];
-                UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
-                Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
-                /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
-                 * matter since it will be recomputed at next deflate call.
-                 */
-            }
-        } else {
-            /* No match, output a literal byte */
-            Tracevv((stderr,"%c", s->window[s->strstart]));
-            _tr_tally_lit (s, s->window[s->strstart], bflush);
-            s->lookahead--;
-            s->strstart++;
-        }
-        if (bflush) FLUSH_BLOCK(s, 0);
-    }
-    s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-
-#ifndef FASTEST
-/* ===========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
-local block_state deflate_slow(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    IPos hash_head;          /* head of hash chain */
-    int bflush;              /* set if current block must be flushed */
-
-    /* Process the input block. */
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the next match, plus MIN_MATCH bytes to insert the
-         * string following the next match.
-         */
-        if (s->lookahead < MIN_LOOKAHEAD) {
-            fill_window(s);
-            if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* Insert the string window[strstart .. strstart+2] in the
-         * dictionary, and set hash_head to the head of the hash chain:
-         */
-        hash_head = NIL;
-        if (s->lookahead >= MIN_MATCH) {
-            INSERT_STRING(s, s->strstart, hash_head);
-        }
-
-        /* Find the longest match, discarding those <= prev_length.
-         */
-        s->prev_length = s->match_length, s->prev_match = s->match_start;
-        s->match_length = MIN_MATCH-1;
-
-        if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
-            s->strstart - hash_head <= MAX_DIST(s)) {
-            /* To simplify the code, we prevent matches with the string
-             * of window index 0 (in particular we have to avoid a match
-             * of the string with itself at the start of the input file).
-             */
-            s->match_length = longest_match (s, hash_head);
-            /* longest_match() sets match_start */
-
-            if (s->match_length <= 5 && (s->strategy == Z_FILTERED
-#if TOO_FAR <= 32767
-                || (s->match_length == MIN_MATCH &&
-                    s->strstart - s->match_start > TOO_FAR)
-#endif
-                )) {
-
-                /* If prev_match is also MIN_MATCH, match_start is garbage
-                 * but we will ignore the current match anyway.
-                 */
-                s->match_length = MIN_MATCH-1;
-            }
-        }
-        /* If there was a match at the previous step and the current
-         * match is not better, output the previous match:
-         */
-        if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
-            uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
-            /* Do not insert strings in hash table beyond this. */
-
-            check_match(s, s->strstart-1, s->prev_match, s->prev_length);
-
-            _tr_tally_dist(s, s->strstart -1 - s->prev_match,
-                           s->prev_length - MIN_MATCH, bflush);
-
-            /* Insert in hash table all strings up to the end of the match.
-             * strstart-1 and strstart are already inserted. If there is not
-             * enough lookahead, the last two strings are not inserted in
-             * the hash table.
-             */
-            s->lookahead -= s->prev_length-1;
-            s->prev_length -= 2;
-            do {
-                if (++s->strstart <= max_insert) {
-                    INSERT_STRING(s, s->strstart, hash_head);
-                }
-            } while (--s->prev_length != 0);
-            s->match_available = 0;
-            s->match_length = MIN_MATCH-1;
-            s->strstart++;
-
-            if (bflush) FLUSH_BLOCK(s, 0);
-
-        } else if (s->match_available) {
-            /* If there was no match at the previous position, output a
-             * single literal. If there was a match but the current match
-             * is longer, truncate the previous match to a single literal.
-             */
-            Tracevv((stderr,"%c", s->window[s->strstart-1]));
-            _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-            if (bflush) {
-                FLUSH_BLOCK_ONLY(s, 0);
-            }
-            s->strstart++;
-            s->lookahead--;
-            if (s->strm->avail_out == 0) return need_more;
-        } else {
-            /* There is no previous match to compare with, wait for
-             * the next step to decide.
-             */
-            s->match_available = 1;
-            s->strstart++;
-            s->lookahead--;
-        }
-    }
-    Assert (flush != Z_NO_FLUSH, "no flush?");
-    if (s->match_available) {
-        Tracevv((stderr,"%c", s->window[s->strstart-1]));
-        _tr_tally_lit(s, s->window[s->strstart-1], bflush);
-        s->match_available = 0;
-    }
-    s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-#endif /* FASTEST */
-
-/* ===========================================================================
- * For Z_RLE, simply look for runs of bytes, generate matches only of distance
- * one.  Do not maintain a hash table.  (It will be regenerated if this run of
- * deflate switches away from Z_RLE.)
- */
-local block_state deflate_rle(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    int bflush;             /* set if current block must be flushed */
-    uInt prev;              /* byte at distance one to match */
-    Bytef *scan, *strend;   /* scan goes up to strend for length of run */
-
-    for (;;) {
-        /* Make sure that we always have enough lookahead, except
-         * at the end of the input file. We need MAX_MATCH bytes
-         * for the longest run, plus one for the unrolled loop.
-         */
-        if (s->lookahead <= MAX_MATCH) {
-            fill_window(s);
-            if (s->lookahead <= MAX_MATCH && flush == Z_NO_FLUSH) {
-                return need_more;
-            }
-            if (s->lookahead == 0) break; /* flush the current block */
-        }
-
-        /* See how many times the previous byte repeats */
-        s->match_length = 0;
-        if (s->lookahead >= MIN_MATCH && s->strstart > 0) {
-            scan = s->window + s->strstart - 1;
-            prev = *scan;
-            if (prev == *++scan && prev == *++scan && prev == *++scan) {
-                strend = s->window + s->strstart + MAX_MATCH;
-                do {
-                } while (prev == *++scan && prev == *++scan &&
-                         prev == *++scan && prev == *++scan &&
-                         prev == *++scan && prev == *++scan &&
-                         prev == *++scan && prev == *++scan &&
-                         scan < strend);
-                s->match_length = MAX_MATCH - (int)(strend - scan);
-                if (s->match_length > s->lookahead)
-                    s->match_length = s->lookahead;
-            }
-            Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
-        }
-
-        /* Emit match if have run of MIN_MATCH or longer, else emit literal */
-        if (s->match_length >= MIN_MATCH) {
-            check_match(s, s->strstart, s->strstart - 1, s->match_length);
-
-            _tr_tally_dist(s, 1, s->match_length - MIN_MATCH, bflush);
-
-            s->lookahead -= s->match_length;
-            s->strstart += s->match_length;
-            s->match_length = 0;
-        } else {
-            /* No match, output a literal byte */
-            Tracevv((stderr,"%c", s->window[s->strstart]));
-            _tr_tally_lit (s, s->window[s->strstart], bflush);
-            s->lookahead--;
-            s->strstart++;
-        }
-        if (bflush) FLUSH_BLOCK(s, 0);
-    }
-    s->insert = 0;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
-
-/* ===========================================================================
- * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.
- * (It will be regenerated if this run of deflate switches away from Huffman.)
- */
-local block_state deflate_huff(s, flush)
-    deflate_state *s;
-    int flush;
-{
-    int bflush;             /* set if current block must be flushed */
-
-    for (;;) {
-        /* Make sure that we have a literal to write. */
-        if (s->lookahead == 0) {
-            fill_window(s);
-            if (s->lookahead == 0) {
-                if (flush == Z_NO_FLUSH)
-                    return need_more;
-                break;      /* flush the current block */
-            }
-        }
-
-        /* Output a literal byte */
-        s->match_length = 0;
-        Tracevv((stderr,"%c", s->window[s->strstart]));
-        _tr_tally_lit (s, s->window[s->strstart], bflush);
-        s->lookahead--;
-        s->strstart++;
-        if (bflush) FLUSH_BLOCK(s, 0);
-    }
-    s->insert = 0;
-    if (flush == Z_FINISH) {
-        FLUSH_BLOCK(s, 1);
-        return finish_done;
-    }
-    if (s->last_lit)
-        FLUSH_BLOCK(s, 0);
-    return block_done;
-}
diff --git a/libs/ext/zlib/deflate.h b/libs/ext/zlib/deflate.h
deleted file mode 100644
index fbac44d..0000000
--- a/libs/ext/zlib/deflate.h
+++ /dev/null
@@ -1,346 +0,0 @@
-/* deflate.h -- internal compression state
- * Copyright (C) 1995-2012 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id$ */
-
-#ifndef DEFLATE_H
-#define DEFLATE_H
-
-#include "zutil.h"
-
-/* define NO_GZIP when compiling if you want to disable gzip header and
-   trailer creation by deflate().  NO_GZIP would be used to avoid linking in
-   the crc code when it is not needed.  For shared libraries, gzip encoding
-   should be left enabled. */
-#ifndef NO_GZIP
-#  define GZIP
-#endif
-
-/* ===========================================================================
- * Internal compression state.
- */
-
-#define LENGTH_CODES 29
-/* number of length codes, not counting the special END_BLOCK code */
-
-#define LITERALS  256
-/* number of literal bytes 0..255 */
-
-#define L_CODES (LITERALS+1+LENGTH_CODES)
-/* number of Literal or Length codes, including the END_BLOCK code */
-
-#define D_CODES   30
-/* number of distance codes */
-
-#define BL_CODES  19
-/* number of codes used to transfer the bit lengths */
-
-#define HEAP_SIZE (2*L_CODES+1)
-/* maximum heap size */
-
-#define MAX_BITS 15
-/* All codes must not exceed MAX_BITS bits */
-
-#define Buf_size 16
-/* size of bit buffer in bi_buf */
-
-#define INIT_STATE    42
-#define EXTRA_STATE   69
-#define NAME_STATE    73
-#define COMMENT_STATE 91
-#define HCRC_STATE   103
-#define BUSY_STATE   113
-#define FINISH_STATE 666
-/* Stream status */
-
-
-/* Data structure describing a single value and its code string. */
-typedef struct ct_data_s {
-    union {
-        ush  freq;       /* frequency count */
-        ush  code;       /* bit string */
-    } fc;
-    union {
-        ush  dad;        /* father node in Huffman tree */
-        ush  len;        /* length of bit string */
-    } dl;
-} FAR ct_data;
-
-#define Freq fc.freq
-#define Code fc.code
-#define Dad  dl.dad
-#define Len  dl.len
-
-typedef struct static_tree_desc_s  static_tree_desc;
-
-typedef struct tree_desc_s {
-    ct_data *dyn_tree;           /* the dynamic tree */
-    int     max_code;            /* largest code with non zero frequency */
-    static_tree_desc *stat_desc; /* the corresponding static tree */
-} FAR tree_desc;
-
-typedef ush Pos;
-typedef Pos FAR Posf;
-typedef unsigned IPos;
-
-/* A Pos is an index in the character window. We use short instead of int to
- * save space in the various tables. IPos is used only for parameter passing.
- */
-
-typedef struct internal_state {
-    z_streamp strm;      /* pointer back to this zlib stream */
-    int   status;        /* as the name implies */
-    Bytef *pending_buf;  /* output still pending */
-    ulg   pending_buf_size; /* size of pending_buf */
-    Bytef *pending_out;  /* next pending byte to output to the stream */
-    uInt   pending;      /* nb of bytes in the pending buffer */
-    int   wrap;          /* bit 0 true for zlib, bit 1 true for gzip */
-    gz_headerp  gzhead;  /* gzip header information to write */
-    uInt   gzindex;      /* where in extra, name, or comment */
-    Byte  method;        /* STORED (for zip only) or DEFLATED */
-    int   last_flush;    /* value of flush param for previous deflate call */
-
-                /* used by deflate.c: */
-
-    uInt  w_size;        /* LZ77 window size (32K by default) */
-    uInt  w_bits;        /* log2(w_size)  (8..16) */
-    uInt  w_mask;        /* w_size - 1 */
-
-    Bytef *window;
-    /* Sliding window. Input bytes are read into the second half of the window,
-     * and move to the first half later to keep a dictionary of at least wSize
-     * bytes. With this organization, matches are limited to a distance of
-     * wSize-MAX_MATCH bytes, but this ensures that IO is always
-     * performed with a length multiple of the block size. Also, it limits
-     * the window size to 64K, which is quite useful on MSDOS.
-     * To do: use the user input buffer as sliding window.
-     */
-
-    ulg window_size;
-    /* Actual size of window: 2*wSize, except when the user input buffer
-     * is directly used as sliding window.
-     */
-
-    Posf *prev;
-    /* Link to older string with same hash index. To limit the size of this
-     * array to 64K, this link is maintained only for the last 32K strings.
-     * An index in this array is thus a window index modulo 32K.
-     */
-
-    Posf *head; /* Heads of the hash chains or NIL. */
-
-    uInt  ins_h;          /* hash index of string to be inserted */
-    uInt  hash_size;      /* number of elements in hash table */
-    uInt  hash_bits;      /* log2(hash_size) */
-    uInt  hash_mask;      /* hash_size-1 */
-
-    uInt  hash_shift;
-    /* Number of bits by which ins_h must be shifted at each input
-     * step. It must be such that after MIN_MATCH steps, the oldest
-     * byte no longer takes part in the hash key, that is:
-     *   hash_shift * MIN_MATCH >= hash_bits
-     */
-
-    long block_start;
-    /* Window position at the beginning of the current output block. Gets
-     * negative when the window is moved backwards.
-     */
-
-    uInt match_length;           /* length of best match */
-    IPos prev_match;             /* previous match */
-    int match_available;         /* set if previous match exists */
-    uInt strstart;               /* start of string to insert */
-    uInt match_start;            /* start of matching string */
-    uInt lookahead;              /* number of valid bytes ahead in window */
-
-    uInt prev_length;
-    /* Length of the best match at previous step. Matches not greater than this
-     * are discarded. This is used in the lazy match evaluation.
-     */
-
-    uInt max_chain_length;
-    /* To speed up deflation, hash chains are never searched beyond this
-     * length.  A higher limit improves compression ratio but degrades the
-     * speed.
-     */
-
-    uInt max_lazy_match;
-    /* Attempt to find a better match only when the current match is strictly
-     * smaller than this value. This mechanism is used only for compression
-     * levels >= 4.
-     */
-#   define max_insert_length  max_lazy_match
-    /* Insert new strings in the hash table only if the match length is not
-     * greater than this length. This saves time but degrades compression.
-     * max_insert_length is used only for compression levels <= 3.
-     */
-
-    int level;    /* compression level (1..9) */
-    int strategy; /* favor or force Huffman coding*/
-
-    uInt good_match;
-    /* Use a faster search when the previous match is longer than this */
-
-    int nice_match; /* Stop searching when current match exceeds this */
-
-                /* used by trees.c: */
-    /* Didn't use ct_data typedef below to suppress compiler warning */
-    struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
-    struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
-    struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
-
-    struct tree_desc_s l_desc;               /* desc. for literal tree */
-    struct tree_desc_s d_desc;               /* desc. for distance tree */
-    struct tree_desc_s bl_desc;              /* desc. for bit length tree */
-
-    ush bl_count[MAX_BITS+1];
-    /* number of codes at each bit length for an optimal tree */
-
-    int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
-    int heap_len;               /* number of elements in the heap */
-    int heap_max;               /* element of largest frequency */
-    /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
-     * The same heap array is used to build all trees.
-     */
-
-    uch depth[2*L_CODES+1];
-    /* Depth of each subtree used as tie breaker for trees of equal frequency
-     */
-
-    uchf *l_buf;          /* buffer for literals or lengths */
-
-    uInt  lit_bufsize;
-    /* Size of match buffer for literals/lengths.  There are 4 reasons for
-     * limiting lit_bufsize to 64K:
-     *   - frequencies can be kept in 16 bit counters
-     *   - if compression is not successful for the first block, all input
-     *     data is still in the window so we can still emit a stored block even
-     *     when input comes from standard input.  (This can also be done for
-     *     all blocks if lit_bufsize is not greater than 32K.)
-     *   - if compression is not successful for a file smaller than 64K, we can
-     *     even emit a stored file instead of a stored block (saving 5 bytes).
-     *     This is applicable only for zip (not gzip or zlib).
-     *   - creating new Huffman trees less frequently may not provide fast
-     *     adaptation to changes in the input data statistics. (Take for
-     *     example a binary file with poorly compressible code followed by
-     *     a highly compressible string table.) Smaller buffer sizes give
-     *     fast adaptation but have of course the overhead of transmitting
-     *     trees more frequently.
-     *   - I can't count above 4
-     */
-
-    uInt last_lit;      /* running index in l_buf */
-
-    ushf *d_buf;
-    /* Buffer for distances. To simplify the code, d_buf and l_buf have
-     * the same number of elements. To use different lengths, an extra flag
-     * array would be necessary.
-     */
-
-    ulg opt_len;        /* bit length of current block with optimal trees */
-    ulg static_len;     /* bit length of current block with static trees */
-    uInt matches;       /* number of string matches in current block */
-    uInt insert;        /* bytes at end of window left to insert */
-
-#ifdef DEBUG
-    ulg compressed_len; /* total bit length of compressed file mod 2^32 */
-    ulg bits_sent;      /* bit length of compressed data sent mod 2^32 */
-#endif
-
-    ush bi_buf;
-    /* Output buffer. bits are inserted starting at the bottom (least
-     * significant bits).
-     */
-    int bi_valid;
-    /* Number of valid bits in bi_buf.  All bits above the last valid bit
-     * are always zero.
-     */
-
-    ulg high_water;
-    /* High water mark offset in window for initialized bytes -- bytes above
-     * this are set to zero in order to avoid memory check warnings when
-     * longest match routines access bytes past the input.  This is then
-     * updated to the new high water mark.
-     */
-
-} FAR deflate_state;
-
-/* Output a byte on the stream.
- * IN assertion: there is enough room in pending_buf.
- */
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
-
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-#define MAX_DIST(s)  ((s)->w_size-MIN_LOOKAHEAD)
-/* In order to simplify the code, particularly on 16 bit machines, match
- * distances are limited to MAX_DIST instead of WSIZE.
- */
-
-#define WIN_INIT MAX_MATCH
-/* Number of bytes after end of data in window to initialize in order to avoid
-   memory checker errors from longest match routines */
-
-        /* in trees.c */
-void ZLIB_INTERNAL _tr_init OF((deflate_state *s));
-int ZLIB_INTERNAL _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
-void ZLIB_INTERNAL _tr_flush_block OF((deflate_state *s, charf *buf,
-                        ulg stored_len, int last));
-void ZLIB_INTERNAL _tr_flush_bits OF((deflate_state *s));
-void ZLIB_INTERNAL _tr_align OF((deflate_state *s));
-void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
-                        ulg stored_len, int last));
-
-#define d_code(dist) \
-   ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
-/* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. _dist_code[256] and _dist_code[257] are never
- * used.
- */
-
-#ifndef DEBUG
-/* Inline versions of _tr_tally for speed: */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
-  extern uch ZLIB_INTERNAL _length_code[];
-  extern uch ZLIB_INTERNAL _dist_code[];
-#else
-  extern const uch ZLIB_INTERNAL _length_code[];
-  extern const uch ZLIB_INTERNAL _dist_code[];
-#endif
-
-# define _tr_tally_lit(s, c, flush) \
-  { uch cc = (c); \
-    s->d_buf[s->last_lit] = 0; \
-    s->l_buf[s->last_lit++] = cc; \
-    s->dyn_ltree[cc].Freq++; \
-    flush = (s->last_lit == s->lit_bufsize-1); \
-   }
-# define _tr_tally_dist(s, distance, length, flush) \
-  { uch len = (length); \
-    ush dist = (distance); \
-    s->d_buf[s->last_lit] = dist; \
-    s->l_buf[s->last_lit++] = len; \
-    dist--; \
-    s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
-    s->dyn_dtree[d_code(dist)].Freq++; \
-    flush = (s->last_lit == s->lit_bufsize-1); \
-  }
-#else
-# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
-# define _tr_tally_dist(s, distance, length, flush) \
-              flush = _tr_tally(s, distance, length)
-#endif
-
-#endif /* DEFLATE_H */
diff --git a/libs/ext/zlib/gzclose.c b/libs/ext/zlib/gzclose.c
deleted file mode 100644
index caeb99a..0000000
--- a/libs/ext/zlib/gzclose.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* gzclose.c -- zlib gzclose() function
- * Copyright (C) 2004, 2010 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "gzguts.h"
-
-/* gzclose() is in a separate file so that it is linked in only if it is used.
-   That way the other gzclose functions can be used instead to avoid linking in
-   unneeded compression or decompression routines. */
-int ZEXPORT gzclose(file)
-    gzFile file;
-{
-#ifndef NO_GZCOMPRESS
-    gz_statep state;
-
-    if (file == NULL)
-        return Z_STREAM_ERROR;
-    state = (gz_statep)file;
-
-    return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
-#else
-    return gzclose_r(file);
-#endif
-}
diff --git a/libs/ext/zlib/gzguts.h b/libs/ext/zlib/gzguts.h
deleted file mode 100644
index ee3f281..0000000
--- a/libs/ext/zlib/gzguts.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/* gzguts.h -- zlib internal header definitions for gz* operations
- * Copyright (C) 2004, 2005, 2010, 2011, 2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#ifdef _LARGEFILE64_SOURCE
-#  ifndef _LARGEFILE_SOURCE
-#    define _LARGEFILE_SOURCE 1
-#  endif
-#  ifdef _FILE_OFFSET_BITS
-#    undef _FILE_OFFSET_BITS
-#  endif
-#endif
-
-#ifdef HAVE_HIDDEN
-#  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
-#else
-#  define ZLIB_INTERNAL
-#endif
-
-#include <stdio.h>
-#include "zlib.h"
-#ifdef STDC
-#  include <string.h>
-#  include <stdlib.h>
-#  include <limits.h>
-#endif
-#include <fcntl.h>
-
-#ifdef _WIN32
-#  include <stddef.h>
-#endif
-
-#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)
-#  include <io.h>
-#endif
-
-#ifdef NO_DEFLATE       /* for compatibility with old definition */
-#  define NO_GZCOMPRESS
-#endif
-
-#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-
-#if defined(__CYGWIN__)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-
-#if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-
-#ifndef HAVE_VSNPRINTF
-#  ifdef MSDOS
-/* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
- but for now we just assume it doesn't. */
-#    define NO_vsnprintf
-#  endif
-#  ifdef __TURBOC__
-#    define NO_vsnprintf
-#  endif
-#  ifdef WIN32
-/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
-#    if !defined(vsnprintf) && !defined(NO_vsnprintf)
-#      if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
-#         define vsnprintf _vsnprintf
-#      endif
-#    endif
-#  endif
-#  ifdef __SASC
-#    define NO_vsnprintf
-#  endif
-#  ifdef VMS
-#    define NO_vsnprintf
-#  endif
-#  ifdef __OS400__
-#    define NO_vsnprintf
-#  endif
-#  ifdef __MVS__
-#    define NO_vsnprintf
-#  endif
-#endif
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-/* gz* functions always use library allocation functions */
-#ifndef STDC
-  extern voidp  malloc OF((uInt size));
-  extern void   free   OF((voidpf ptr));
-#endif
-
-/* get errno and strerror definition */
-#if defined UNDER_CE
-#  include <windows.h>
-#  define zstrerror() gz_strwinerror((DWORD)GetLastError())
-#else
-#  ifndef NO_STRERROR
-#    include <errno.h>
-#    define zstrerror() strerror(errno)
-#  else
-#    define zstrerror() "stdio error (consult errno)"
-#  endif
-#endif
-
-/* provide prototypes for these when building zlib without LFS */
-#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0
-    ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-    ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
-    ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
-    ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
-#endif
-
-/* default memLevel */
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-
-/* default i/o buffer size -- double this for output when reading */
-#define GZBUFSIZE 8192
-
-/* gzip modes, also provide a little integrity check on the passed structure */
-#define GZ_NONE 0
-#define GZ_READ 7247
-#define GZ_WRITE 31153
-#define GZ_APPEND 1     /* mode set to GZ_WRITE after the file is opened */
-
-/* values for gz_state how */
-#define LOOK 0      /* look for a gzip header */
-#define COPY 1      /* copy input directly */
-#define GZIP 2      /* decompress a gzip stream */
-
-/* internal gzip file state data structure */
-typedef struct {
-        /* exposed contents for gzgetc() macro */
-    struct gzFile_s x;      /* "x" for exposed */
-                            /* x.have: number of bytes available at x.next */
-                            /* x.next: next output data to deliver or write */
-                            /* x.pos: current position in uncompressed data */
-        /* used for both reading and writing */
-    int mode;               /* see gzip modes above */
-    int fd;                 /* file descriptor */
-    char *path;             /* path or fd for error messages */
-    unsigned size;          /* buffer size, zero if not allocated yet */
-    unsigned want;          /* requested buffer size, default is GZBUFSIZE */
-    unsigned char *in;      /* input buffer */
-    unsigned char *out;     /* output buffer (double-sized when reading) */
-    int direct;             /* 0 if processing gzip, 1 if transparent */
-        /* just for reading */
-    int how;                /* 0: get header, 1: copy, 2: decompress */
-    z_off64_t start;        /* where the gzip data started, for rewinding */
-    int eof;                /* true if end of input file reached */
-    int past;               /* true if read requested past end */
-        /* just for writing */
-    int level;              /* compression level */
-    int strategy;           /* compression strategy */
-        /* seek request */
-    z_off64_t skip;         /* amount to skip (already rewound if backwards) */
-    int seek;               /* true if seek request pending */
-        /* error information */
-    int err;                /* error code */
-    char *msg;              /* error message */
-        /* zlib inflate or deflate stream */
-    z_stream strm;          /* stream structure in-place (not a pointer) */
-} gz_state;
-typedef gz_state FAR *gz_statep;
-
-/* shared functions */
-void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
-#if defined UNDER_CE
-char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
-#endif
-
-/* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
-   value -- needed when comparing unsigned to z_off64_t, which is signed
-   (possible z_off64_t types off_t, off64_t, and long are all signed) */
-#ifdef INT_MAX
-#  define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
-#else
-unsigned ZLIB_INTERNAL gz_intmax OF((void));
-#  define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
-#endif
diff --git a/libs/ext/zlib/gzlib.c b/libs/ext/zlib/gzlib.c
deleted file mode 100644
index ca55c6e..0000000
--- a/libs/ext/zlib/gzlib.c
+++ /dev/null
@@ -1,620 +0,0 @@
-/* gzlib.c -- zlib functions common to reading and writing gzip files
- * Copyright (C) 2004, 2010, 2011, 2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "gzguts.h"
-
-#if defined(_WIN32) && !defined(__BORLANDC__)
-#  define LSEEK _lseeki64
-#else
-#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
-#  define LSEEK lseek64
-#else
-#  define LSEEK lseek
-#endif
-#endif
-
-/* Local functions */
-local void gz_reset OF((gz_statep));
-local gzFile gz_open OF((const void *, int, const char *));
-
-#if defined UNDER_CE
-
-/* Map the Windows error number in ERROR to a locale-dependent error message
-   string and return a pointer to it.  Typically, the values for ERROR come
-   from GetLastError.
-
-   The string pointed to shall not be modified by the application, but may be
-   overwritten by a subsequent call to gz_strwinerror
-
-   The gz_strwinerror function does not change the current setting of
-   GetLastError. */
-char ZLIB_INTERNAL *gz_strwinerror (error)
-     DWORD error;
-{
-    static char buf[1024];
-
-    wchar_t *msgbuf;
-    DWORD lasterr = GetLastError();
-    DWORD chars = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
-        | FORMAT_MESSAGE_ALLOCATE_BUFFER,
-        NULL,
-        error,
-        0, /* Default language */
-        (LPVOID)&msgbuf,
-        0,
-        NULL);
-    if (chars != 0) {
-        /* If there is an \r\n appended, zap it.  */
-        if (chars >= 2
-            && msgbuf[chars - 2] == '\r' && msgbuf[chars - 1] == '\n') {
-            chars -= 2;
-            msgbuf[chars] = 0;
-        }
-
-        if (chars > sizeof (buf) - 1) {
-            chars = sizeof (buf) - 1;
-            msgbuf[chars] = 0;
-        }
-
-        wcstombs(buf, msgbuf, chars + 1);
-        LocalFree(msgbuf);
-    }
-    else {
-        sprintf(buf, "unknown win32 error (%ld)", error);
-    }
-
-    SetLastError(lasterr);
-    return buf;
-}
-
-#endif /* UNDER_CE */
-
-/* Reset gzip file state */
-local void gz_reset(state)
-    gz_statep state;
-{
-    state->x.have = 0;              /* no output data available */
-    if (state->mode == GZ_READ) {   /* for reading ... */
-        state->eof = 0;             /* not at end of file */
-        state->past = 0;            /* have not read past end yet */
-        state->how = LOOK;          /* look for gzip header */
-    }
-    state->seek = 0;                /* no seek request pending */
-    gz_error(state, Z_OK, NULL);    /* clear error */
-    state->x.pos = 0;               /* no uncompressed data yet */
-    state->strm.avail_in = 0;       /* no input data yet */
-}
-
-/* Open a gzip file either by name or file descriptor. */
-local gzFile gz_open(path, fd, mode)
-    const void *path;
-    int fd;
-    const char *mode;
-{
-    gz_statep state;
-    size_t len;
-    int oflag;
-#ifdef O_CLOEXEC
-    int cloexec = 0;
-#endif
-#ifdef O_EXCL
-    int exclusive = 0;
-#endif
-
-    /* check input */
-    if (path == NULL)
-        return NULL;
-
-    /* allocate gzFile structure to return */
-    state = malloc(sizeof(gz_state));
-    if (state == NULL)
-        return NULL;
-    state->size = 0;            /* no buffers allocated yet */
-    state->want = GZBUFSIZE;    /* requested buffer size */
-    state->msg = NULL;          /* no error message yet */
-
-    /* interpret mode */
-    state->mode = GZ_NONE;
-    state->level = Z_DEFAULT_COMPRESSION;
-    state->strategy = Z_DEFAULT_STRATEGY;
-    state->direct = 0;
-    while (*mode) {
-        if (*mode >= '0' && *mode <= '9')
-            state->level = *mode - '0';
-        else
-            switch (*mode) {
-            case 'r':
-                state->mode = GZ_READ;
-                break;
-#ifndef NO_GZCOMPRESS
-            case 'w':
-                state->mode = GZ_WRITE;
-                break;
-            case 'a':
-                state->mode = GZ_APPEND;
-                break;
-#endif
-            case '+':       /* can't read and write at the same time */
-                free(state);
-                return NULL;
-            case 'b':       /* ignore -- will request binary anyway */
-                break;
-#ifdef O_CLOEXEC
-            case 'e':
-                cloexec = 1;
-                break;
-#endif
-#ifdef O_EXCL
-            case 'x':
-                exclusive = 1;
-                break;
-#endif
-            case 'f':
-                state->strategy = Z_FILTERED;
-                break;
-            case 'h':
-                state->strategy = Z_HUFFMAN_ONLY;
-                break;
-            case 'R':
-                state->strategy = Z_RLE;
-                break;
-            case 'F':
-                state->strategy = Z_FIXED;
-            case 'T':
-                state->direct = 1;
-            default:        /* could consider as an error, but just ignore */
-                ;
-            }
-        mode++;
-    }
-
-    /* must provide an "r", "w", or "a" */
-    if (state->mode == GZ_NONE) {
-        free(state);
-        return NULL;
-    }
-
-    /* can't force transparent read */
-    if (state->mode == GZ_READ) {
-        if (state->direct) {
-            free(state);
-            return NULL;
-        }
-        state->direct = 1;      /* for empty file */
-    }
-
-    /* save the path name for error messages */
-#ifdef _WIN32
-    if (fd == -2) {
-        len = wcstombs(NULL, path, 0);
-        if (len == (size_t)-1)
-            len = 0;
-    }
-    else
-#endif
-        len = strlen(path);
-    state->path = malloc(len + 1);
-    if (state->path == NULL) {
-        free(state);
-        return NULL;
-    }
-#ifdef _WIN32
-    if (fd == -2)
-        if (len)
-            wcstombs(state->path, path, len + 1);
-        else
-            *(state->path) = 0;
-    else
-#endif
-        strcpy(state->path, path);
-
-    /* compute the flags for open() */
-    oflag =
-#ifdef O_LARGEFILE
-        O_LARGEFILE |
-#endif
-#ifdef O_BINARY
-        O_BINARY |
-#endif
-#ifdef O_CLOEXEC
-        (cloexec ? O_CLOEXEC : 0) |
-#endif
-        (state->mode == GZ_READ ?
-         O_RDONLY :
-         (O_WRONLY | O_CREAT |
-#ifdef O_EXCL
-          (exclusive ? O_EXCL : 0) |
-#endif
-          (state->mode == GZ_WRITE ?
-           O_TRUNC :
-           O_APPEND)));
-
-    /* open the file with the appropriate flags (or just use fd) */
-    state->fd = fd > -1 ? fd : (
-#ifdef _WIN32
-        fd == -2 ? _wopen(path, oflag, 0666) :
-#endif
-        open(path, oflag, 0666));
-    if (state->fd == -1) {
-        free(state->path);
-        free(state);
-        return NULL;
-    }
-    if (state->mode == GZ_APPEND)
-        state->mode = GZ_WRITE;         /* simplify later checks */
-
-    /* save the current position for rewinding (only if reading) */
-    if (state->mode == GZ_READ) {
-        state->start = LSEEK(state->fd, 0, SEEK_CUR);
-        if (state->start == -1) state->start = 0;
-    }
-
-    /* initialize stream */
-    gz_reset(state);
-
-    /* return stream */
-    return (gzFile)state;
-}
-
-/* -- see zlib.h -- */
-gzFile ZEXPORT gzopen(path, mode)
-    const char *path;
-    const char *mode;
-{
-    return gz_open(path, -1, mode);
-}
-
-/* -- see zlib.h -- */
-gzFile ZEXPORT gzopen64(path, mode)
-    const char *path;
-    const char *mode;
-{
-    return gz_open(path, -1, mode);
-}
-
-/* -- see zlib.h -- */
-gzFile ZEXPORT gzdopen(fd, mode)
-    int fd;
-    const char *mode;
-{
-    char *path;         /* identifier for error messages */
-    gzFile gz;
-
-    if (fd == -1 || (path = malloc(7 + 3 * sizeof(int))) == NULL)
-        return NULL;
-    sprintf(path, "<fd:%d>", fd);   /* for debugging */
-    gz = gz_open(path, fd, mode);
-    free(path);
-    return gz;
-}
-
-/* -- see zlib.h -- */
-#ifdef _WIN32
-gzFile ZEXPORT gzopen_w(path, mode)
-    const wchar_t *path;
-    const char *mode;
-{
-    return gz_open(path, -2, mode);
-}
-#endif
-
-/* -- see zlib.h -- */
-int ZEXPORT gzbuffer(file, size)
-    gzFile file;
-    unsigned size;
-{
-    gz_statep state;
-
-    /* get internal structure and check integrity */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    if (state->mode != GZ_READ && state->mode != GZ_WRITE)
-        return -1;
-
-    /* make sure we haven't already allocated memory */
-    if (state->size != 0)
-        return -1;
-
-    /* check and set requested size */
-    if (size < 2)
-        size = 2;               /* need two bytes to check magic header */
-    state->want = size;
-    return 0;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzrewind(file)
-    gzFile file;
-{
-    gz_statep state;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-
-    /* check that we're reading and that there's no error */
-    if (state->mode != GZ_READ ||
-            (state->err != Z_OK && state->err != Z_BUF_ERROR))
-        return -1;
-
-    /* back up and start over */
-    if (LSEEK(state->fd, state->start, SEEK_SET) == -1)
-        return -1;
-    gz_reset(state);
-    return 0;
-}
-
-/* -- see zlib.h -- */
-z_off64_t ZEXPORT gzseek64(file, offset, whence)
-    gzFile file;
-    z_off64_t offset;
-    int whence;
-{
-    unsigned n;
-    z_off64_t ret;
-    gz_statep state;
-
-    /* get internal structure and check integrity */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    if (state->mode != GZ_READ && state->mode != GZ_WRITE)
-        return -1;
-
-    /* check that there's no error */
-    if (state->err != Z_OK && state->err != Z_BUF_ERROR)
-        return -1;
-
-    /* can only seek from start or relative to current position */
-    if (whence != SEEK_SET && whence != SEEK_CUR)
-        return -1;
-
-    /* normalize offset to a SEEK_CUR specification */
-    if (whence == SEEK_SET)
-        offset -= state->x.pos;
-    else if (state->seek)
-        offset += state->skip;
-    state->seek = 0;
-
-    /* if within raw area while reading, just go there */
-    if (state->mode == GZ_READ && state->how == COPY &&
-            state->x.pos + offset >= 0) {
-        ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR);
-        if (ret == -1)
-            return -1;
-        state->x.have = 0;
-        state->eof = 0;
-        state->past = 0;
-        state->seek = 0;
-        gz_error(state, Z_OK, NULL);
-        state->strm.avail_in = 0;
-        state->x.pos += offset;
-        return state->x.pos;
-    }
-
-    /* calculate skip amount, rewinding if needed for back seek when reading */
-    if (offset < 0) {
-        if (state->mode != GZ_READ)         /* writing -- can't go backwards */
-            return -1;
-        offset += state->x.pos;
-        if (offset < 0)                     /* before start of file! */
-            return -1;
-        if (gzrewind(file) == -1)           /* rewind, then skip to offset */
-            return -1;
-    }
-
-    /* if reading, skip what's in output buffer (one less gzgetc() check) */
-    if (state->mode == GZ_READ) {
-        n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > offset ?
-            (unsigned)offset : state->x.have;
-        state->x.have -= n;
-        state->x.next += n;
-        state->x.pos += n;
-        offset -= n;
-    }
-
-    /* request skip (if not zero) */
-    if (offset) {
-        state->seek = 1;
-        state->skip = offset;
-    }
-    return state->x.pos + offset;
-}
-
-/* -- see zlib.h -- */
-z_off_t ZEXPORT gzseek(file, offset, whence)
-    gzFile file;
-    z_off_t offset;
-    int whence;
-{
-    z_off64_t ret;
-
-    ret = gzseek64(file, (z_off64_t)offset, whence);
-    return ret == (z_off_t)ret ? (z_off_t)ret : -1;
-}
-
-/* -- see zlib.h -- */
-z_off64_t ZEXPORT gztell64(file)
-    gzFile file;
-{
-    gz_statep state;
-
-    /* get internal structure and check integrity */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    if (state->mode != GZ_READ && state->mode != GZ_WRITE)
-        return -1;
-
-    /* return position */
-    return state->x.pos + (state->seek ? state->skip : 0);
-}
-
-/* -- see zlib.h -- */
-z_off_t ZEXPORT gztell(file)
-    gzFile file;
-{
-    z_off64_t ret;
-
-    ret = gztell64(file);
-    return ret == (z_off_t)ret ? (z_off_t)ret : -1;
-}
-
-/* -- see zlib.h -- */
-z_off64_t ZEXPORT gzoffset64(file)
-    gzFile file;
-{
-    z_off64_t offset;
-    gz_statep state;
-
-    /* get internal structure and check integrity */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    if (state->mode != GZ_READ && state->mode != GZ_WRITE)
-        return -1;
-
-    /* compute and return effective offset in file */
-    offset = LSEEK(state->fd, 0, SEEK_CUR);
-    if (offset == -1)
-        return -1;
-    if (state->mode == GZ_READ)             /* reading */
-        offset -= state->strm.avail_in;     /* don't count buffered input */
-    return offset;
-}
-
-/* -- see zlib.h -- */
-z_off_t ZEXPORT gzoffset(file)
-    gzFile file;
-{
-    z_off64_t ret;
-
-    ret = gzoffset64(file);
-    return ret == (z_off_t)ret ? (z_off_t)ret : -1;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzeof(file)
-    gzFile file;
-{
-    gz_statep state;
-
-    /* get internal structure and check integrity */
-    if (file == NULL)
-        return 0;
-    state = (gz_statep)file;
-    if (state->mode != GZ_READ && state->mode != GZ_WRITE)
-        return 0;
-
-    /* return end-of-file state */
-    return state->mode == GZ_READ ? state->past : 0;
-}
-
-/* -- see zlib.h -- */
-const char * ZEXPORT gzerror(file, errnum)
-    gzFile file;
-    int *errnum;
-{
-    gz_statep state;
-
-    /* get internal structure and check integrity */
-    if (file == NULL)
-        return NULL;
-    state = (gz_statep)file;
-    if (state->mode != GZ_READ && state->mode != GZ_WRITE)
-        return NULL;
-
-    /* return error information */
-    if (errnum != NULL)
-        *errnum = state->err;
-    return state->msg == NULL ? "" : state->msg;
-}
-
-/* -- see zlib.h -- */
-void ZEXPORT gzclearerr(file)
-    gzFile file;
-{
-    gz_statep state;
-
-    /* get internal structure and check integrity */
-    if (file == NULL)
-        return;
-    state = (gz_statep)file;
-    if (state->mode != GZ_READ && state->mode != GZ_WRITE)
-        return;
-
-    /* clear error and end-of-file */
-    if (state->mode == GZ_READ) {
-        state->eof = 0;
-        state->past = 0;
-    }
-    gz_error(state, Z_OK, NULL);
-}
-
-/* Create an error message in allocated memory and set state->err and
-   state->msg accordingly.  Free any previous error message already there.  Do
-   not try to free or allocate space if the error is Z_MEM_ERROR (out of
-   memory).  Simply save the error message as a static string.  If there is an
-   allocation failure constructing the error message, then convert the error to
-   out of memory. */
-void ZLIB_INTERNAL gz_error(state, err, msg)
-    gz_statep state;
-    int err;
-    const char *msg;
-{
-    /* free previously allocated message and clear */
-    if (state->msg != NULL) {
-        if (state->err != Z_MEM_ERROR)
-            free(state->msg);
-        state->msg = NULL;
-    }
-
-    /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
-    if (err != Z_OK && err != Z_BUF_ERROR)
-        state->x.have = 0;
-
-    /* set error code, and if no message, then done */
-    state->err = err;
-    if (msg == NULL)
-        return;
-
-    /* for an out of memory error, save as static string */
-    if (err == Z_MEM_ERROR) {
-        state->msg = (char *)msg;
-        return;
-    }
-
-    /* construct error message with path */
-    if ((state->msg = malloc(strlen(state->path) + strlen(msg) + 3)) == NULL) {
-        state->err = Z_MEM_ERROR;
-        state->msg = (char *)"out of memory";
-        return;
-    }
-    strcpy(state->msg, state->path);
-    strcat(state->msg, ": ");
-    strcat(state->msg, msg);
-    return;
-}
-
-#ifndef INT_MAX
-/* portably return maximum value for an int (when limits.h presumed not
-   available) -- we need to do this to cover cases where 2's complement not
-   used, since C standard permits 1's complement and sign-bit representations,
-   otherwise we could just use ((unsigned)-1) >> 1 */
-unsigned ZLIB_INTERNAL gz_intmax()
-{
-    unsigned p, q;
-
-    p = 1;
-    do {
-        q = p;
-        p <<= 1;
-        p++;
-    } while (p > q);
-    return q >> 1;
-}
-#endif
diff --git a/libs/ext/zlib/gzread.c b/libs/ext/zlib/gzread.c
deleted file mode 100644
index 3493d34..0000000
--- a/libs/ext/zlib/gzread.c
+++ /dev/null
@@ -1,589 +0,0 @@
-/* gzread.c -- zlib functions for reading gzip files
- * Copyright (C) 2004, 2005, 2010, 2011, 2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "gzguts.h"
-
-/* Local functions */
-local int gz_load OF((gz_statep, unsigned char *, unsigned, unsigned *));
-local int gz_avail OF((gz_statep));
-local int gz_look OF((gz_statep));
-local int gz_decomp OF((gz_statep));
-local int gz_fetch OF((gz_statep));
-local int gz_skip OF((gz_statep, z_off64_t));
-
-/* Use read() to load a buffer -- return -1 on error, otherwise 0.  Read from
-   state->fd, and update state->eof, state->err, and state->msg as appropriate.
-   This function needs to loop on read(), since read() is not guaranteed to
-   read the number of bytes requested, depending on the type of descriptor. */
-local int gz_load(state, buf, len, have)
-    gz_statep state;
-    unsigned char *buf;
-    unsigned len;
-    unsigned *have;
-{
-    int ret;
-
-    *have = 0;
-    do {
-        ret = read(state->fd, buf + *have, len - *have);
-        if (ret <= 0)
-            break;
-        *have += ret;
-    } while (*have < len);
-    if (ret < 0) {
-        gz_error(state, Z_ERRNO, zstrerror());
-        return -1;
-    }
-    if (ret == 0)
-        state->eof = 1;
-    return 0;
-}
-
-/* Load up input buffer and set eof flag if last data loaded -- return -1 on
-   error, 0 otherwise.  Note that the eof flag is set when the end of the input
-   file is reached, even though there may be unused data in the buffer.  Once
-   that data has been used, no more attempts will be made to read the file.
-   If strm->avail_in != 0, then the current data is moved to the beginning of
-   the input buffer, and then the remainder of the buffer is loaded with the
-   available data from the input file. */
-local int gz_avail(state)
-    gz_statep state;
-{
-    unsigned got;
-    z_streamp strm = &(state->strm);
-
-    if (state->err != Z_OK && state->err != Z_BUF_ERROR)
-        return -1;
-    if (state->eof == 0) {
-        if (strm->avail_in) {       /* copy what's there to the start */
-            unsigned char *p = state->in, *q = strm->next_in;
-            unsigned n = strm->avail_in;
-            do {
-                *p++ = *q++;
-            } while (--n);
-        }
-        if (gz_load(state, state->in + strm->avail_in,
-                    state->size - strm->avail_in, &got) == -1)
-            return -1;
-        strm->avail_in += got;
-        strm->next_in = state->in;
-    }
-    return 0;
-}
-
-/* Look for gzip header, set up for inflate or copy.  state->x.have must be 0.
-   If this is the first time in, allocate required memory.  state->how will be
-   left unchanged if there is no more input data available, will be set to COPY
-   if there is no gzip header and direct copying will be performed, or it will
-   be set to GZIP for decompression.  If direct copying, then leftover input
-   data from the input buffer will be copied to the output buffer.  In that
-   case, all further file reads will be directly to either the output buffer or
-   a user buffer.  If decompressing, the inflate state will be initialized.
-   gz_look() will return 0 on success or -1 on failure. */
-local int gz_look(state)
-    gz_statep state;
-{
-    z_streamp strm = &(state->strm);
-
-    /* allocate read buffers and inflate memory */
-    if (state->size == 0) {
-        /* allocate buffers */
-        state->in = malloc(state->want);
-        state->out = malloc(state->want << 1);
-        if (state->in == NULL || state->out == NULL) {
-            if (state->out != NULL)
-                free(state->out);
-            if (state->in != NULL)
-                free(state->in);
-            gz_error(state, Z_MEM_ERROR, "out of memory");
-            return -1;
-        }
-        state->size = state->want;
-
-        /* allocate inflate memory */
-        state->strm.zalloc = Z_NULL;
-        state->strm.zfree = Z_NULL;
-        state->strm.opaque = Z_NULL;
-        state->strm.avail_in = 0;
-        state->strm.next_in = Z_NULL;
-        if (inflateInit2(&(state->strm), 15 + 16) != Z_OK) {    /* gunzip */
-            free(state->out);
-            free(state->in);
-            state->size = 0;
-            gz_error(state, Z_MEM_ERROR, "out of memory");
-            return -1;
-        }
-    }
-
-    /* get at least the magic bytes in the input buffer */
-    if (strm->avail_in < 2) {
-        if (gz_avail(state) == -1)
-            return -1;
-        if (strm->avail_in == 0)
-            return 0;
-    }
-
-    /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
-       a logical dilemma here when considering the case of a partially written
-       gzip file, to wit, if a single 31 byte is written, then we cannot tell
-       whether this is a single-byte file, or just a partially written gzip
-       file -- for here we assume that if a gzip file is being written, then
-       the header will be written in a single operation, so that reading a
-       single byte is sufficient indication that it is not a gzip file) */
-    if (strm->avail_in > 1 &&
-            strm->next_in[0] == 31 && strm->next_in[1] == 139) {
-        inflateReset(strm);
-        state->how = GZIP;
-        state->direct = 0;
-        return 0;
-    }
-
-    /* no gzip header -- if we were decoding gzip before, then this is trailing
-       garbage.  Ignore the trailing garbage and finish. */
-    if (state->direct == 0) {
-        strm->avail_in = 0;
-        state->eof = 1;
-        state->x.have = 0;
-        return 0;
-    }
-
-    /* doing raw i/o, copy any leftover input to output -- this assumes that
-       the output buffer is larger than the input buffer, which also assures
-       space for gzungetc() */
-    state->x.next = state->out;
-    if (strm->avail_in) {
-        memcpy(state->x.next, strm->next_in, strm->avail_in);
-        state->x.have = strm->avail_in;
-        strm->avail_in = 0;
-    }
-    state->how = COPY;
-    state->direct = 1;
-    return 0;
-}
-
-/* Decompress from input to the provided next_out and avail_out in the state.
-   On return, state->x.have and state->x.next point to the just decompressed
-   data.  If the gzip stream completes, state->how is reset to LOOK to look for
-   the next gzip stream or raw data, once state->x.have is depleted.  Returns 0
-   on success, -1 on failure. */
-local int gz_decomp(state)
-    gz_statep state;
-{
-    int ret = Z_OK;
-    unsigned had;
-    z_streamp strm = &(state->strm);
-
-    /* fill output buffer up to end of deflate stream */
-    had = strm->avail_out;
-    do {
-        /* get more input for inflate() */
-        if (strm->avail_in == 0 && gz_avail(state) == -1)
-            return -1;
-        if (strm->avail_in == 0) {
-            gz_error(state, Z_BUF_ERROR, "unexpected end of file");
-            break;
-        }
-
-        /* decompress and handle errors */
-        ret = inflate(strm, Z_NO_FLUSH);
-        if (ret == Z_STREAM_ERROR || ret == Z_NEED_DICT) {
-            gz_error(state, Z_STREAM_ERROR,
-                     "internal error: inflate stream corrupt");
-            return -1;
-        }
-        if (ret == Z_MEM_ERROR) {
-            gz_error(state, Z_MEM_ERROR, "out of memory");
-            return -1;
-        }
-        if (ret == Z_DATA_ERROR) {              /* deflate stream invalid */
-            gz_error(state, Z_DATA_ERROR,
-                     strm->msg == NULL ? "compressed data error" : strm->msg);
-            return -1;
-        }
-    } while (strm->avail_out && ret != Z_STREAM_END);
-
-    /* update available output */
-    state->x.have = had - strm->avail_out;
-    state->x.next = strm->next_out - state->x.have;
-
-    /* if the gzip stream completed successfully, look for another */
-    if (ret == Z_STREAM_END)
-        state->how = LOOK;
-
-    /* good decompression */
-    return 0;
-}
-
-/* Fetch data and put it in the output buffer.  Assumes state->x.have is 0.
-   Data is either copied from the input file or decompressed from the input
-   file depending on state->how.  If state->how is LOOK, then a gzip header is
-   looked for to determine whether to copy or decompress.  Returns -1 on error,
-   otherwise 0.  gz_fetch() will leave state->how as COPY or GZIP unless the
-   end of the input file has been reached and all data has been processed.  */
-local int gz_fetch(state)
-    gz_statep state;
-{
-    z_streamp strm = &(state->strm);
-
-    do {
-        switch(state->how) {
-        case LOOK:      /* -> LOOK, COPY (only if never GZIP), or GZIP */
-            if (gz_look(state) == -1)
-                return -1;
-            if (state->how == LOOK)
-                return 0;
-            break;
-        case COPY:      /* -> COPY */
-            if (gz_load(state, state->out, state->size << 1, &(state->x.have))
-                    == -1)
-                return -1;
-            state->x.next = state->out;
-            return 0;
-        case GZIP:      /* -> GZIP or LOOK (if end of gzip stream) */
-            strm->avail_out = state->size << 1;
-            strm->next_out = state->out;
-            if (gz_decomp(state) == -1)
-                return -1;
-        }
-    } while (state->x.have == 0 && (!state->eof || strm->avail_in));
-    return 0;
-}
-
-/* Skip len uncompressed bytes of output.  Return -1 on error, 0 on success. */
-local int gz_skip(state, len)
-    gz_statep state;
-    z_off64_t len;
-{
-    unsigned n;
-
-    /* skip over len bytes or reach end-of-file, whichever comes first */
-    while (len)
-        /* skip over whatever is in output buffer */
-        if (state->x.have) {
-            n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > len ?
-                (unsigned)len : state->x.have;
-            state->x.have -= n;
-            state->x.next += n;
-            state->x.pos += n;
-            len -= n;
-        }
-
-        /* output buffer empty -- return if we're at the end of the input */
-        else if (state->eof && state->strm.avail_in == 0)
-            break;
-
-        /* need more data to skip -- load up output buffer */
-        else {
-            /* get more output, looking for header if required */
-            if (gz_fetch(state) == -1)
-                return -1;
-        }
-    return 0;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzread(file, buf, len)
-    gzFile file;
-    voidp buf;
-    unsigned len;
-{
-    unsigned got, n;
-    gz_statep state;
-    z_streamp strm;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    strm = &(state->strm);
-
-    /* check that we're reading and that there's no (serious) error */
-    if (state->mode != GZ_READ ||
-            (state->err != Z_OK && state->err != Z_BUF_ERROR))
-        return -1;
-
-    /* since an int is returned, make sure len fits in one, otherwise return
-       with an error (this avoids the flaw in the interface) */
-    if ((int)len < 0) {
-        gz_error(state, Z_DATA_ERROR, "requested length does not fit in int");
-        return -1;
-    }
-
-    /* if len is zero, avoid unnecessary operations */
-    if (len == 0)
-        return 0;
-
-    /* process a skip request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_skip(state, state->skip) == -1)
-            return -1;
-    }
-
-    /* get len bytes to buf, or less than len if at the end */
-    got = 0;
-    do {
-        /* first just try copying data from the output buffer */
-        if (state->x.have) {
-            n = state->x.have > len ? len : state->x.have;
-            memcpy(buf, state->x.next, n);
-            state->x.next += n;
-            state->x.have -= n;
-        }
-
-        /* output buffer empty -- return if we're at the end of the input */
-        else if (state->eof && strm->avail_in == 0) {
-            state->past = 1;        /* tried to read past end */
-            break;
-        }
-
-        /* need output data -- for small len or new stream load up our output
-           buffer */
-        else if (state->how == LOOK || len < (state->size << 1)) {
-            /* get more output, looking for header if required */
-            if (gz_fetch(state) == -1)
-                return -1;
-            continue;       /* no progress yet -- go back to copy above */
-            /* the copy above assures that we will leave with space in the
-               output buffer, allowing at least one gzungetc() to succeed */
-        }
-
-        /* large len -- read directly into user buffer */
-        else if (state->how == COPY) {      /* read directly */
-            if (gz_load(state, buf, len, &n) == -1)
-                return -1;
-        }
-
-        /* large len -- decompress directly into user buffer */
-        else {  /* state->how == GZIP */
-            strm->avail_out = len;
-            strm->next_out = buf;
-            if (gz_decomp(state) == -1)
-                return -1;
-            n = state->x.have;
-            state->x.have = 0;
-        }
-
-        /* update progress */
-        len -= n;
-        buf = (char *)buf + n;
-        got += n;
-        state->x.pos += n;
-    } while (len);
-
-    /* return number of bytes read into user buffer (will fit in int) */
-    return (int)got;
-}
-
-/* -- see zlib.h -- */
-#undef gzgetc
-int ZEXPORT gzgetc(file)
-    gzFile file;
-{
-    int ret;
-    unsigned char buf[1];
-    gz_statep state;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-
-    /* check that we're reading and that there's no (serious) error */
-    if (state->mode != GZ_READ ||
-        (state->err != Z_OK && state->err != Z_BUF_ERROR))
-        return -1;
-
-    /* try output buffer (no need to check for skip request) */
-    if (state->x.have) {
-        state->x.have--;
-        state->x.pos++;
-        return *(state->x.next)++;
-    }
-
-    /* nothing there -- try gzread() */
-    ret = gzread(file, buf, 1);
-    return ret < 1 ? -1 : buf[0];
-}
-
-int ZEXPORT gzgetc_(file)
-gzFile file;
-{
-    return gzgetc(file);
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzungetc(c, file)
-    int c;
-    gzFile file;
-{
-    gz_statep state;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-
-    /* check that we're reading and that there's no (serious) error */
-    if (state->mode != GZ_READ ||
-        (state->err != Z_OK && state->err != Z_BUF_ERROR))
-        return -1;
-
-    /* process a skip request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_skip(state, state->skip) == -1)
-            return -1;
-    }
-
-    /* can't push EOF */
-    if (c < 0)
-        return -1;
-
-    /* if output buffer empty, put byte at end (allows more pushing) */
-    if (state->x.have == 0) {
-        state->x.have = 1;
-        state->x.next = state->out + (state->size << 1) - 1;
-        state->x.next[0] = c;
-        state->x.pos--;
-        state->past = 0;
-        return c;
-    }
-
-    /* if no room, give up (must have already done a gzungetc()) */
-    if (state->x.have == (state->size << 1)) {
-        gz_error(state, Z_DATA_ERROR, "out of room to push characters");
-        return -1;
-    }
-
-    /* slide output data if needed and insert byte before existing data */
-    if (state->x.next == state->out) {
-        unsigned char *src = state->out + state->x.have;
-        unsigned char *dest = state->out + (state->size << 1);
-        while (src > state->out)
-            *--dest = *--src;
-        state->x.next = dest;
-    }
-    state->x.have++;
-    state->x.next--;
-    state->x.next[0] = c;
-    state->x.pos--;
-    state->past = 0;
-    return c;
-}
-
-/* -- see zlib.h -- */
-char * ZEXPORT gzgets(file, buf, len)
-    gzFile file;
-    char *buf;
-    int len;
-{
-    unsigned left, n;
-    char *str;
-    unsigned char *eol;
-    gz_statep state;
-
-    /* check parameters and get internal structure */
-    if (file == NULL || buf == NULL || len < 1)
-        return NULL;
-    state = (gz_statep)file;
-
-    /* check that we're reading and that there's no (serious) error */
-    if (state->mode != GZ_READ ||
-        (state->err != Z_OK && state->err != Z_BUF_ERROR))
-        return NULL;
-
-    /* process a skip request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_skip(state, state->skip) == -1)
-            return NULL;
-    }
-
-    /* copy output bytes up to new line or len - 1, whichever comes first --
-       append a terminating zero to the string (we don't check for a zero in
-       the contents, let the user worry about that) */
-    str = buf;
-    left = (unsigned)len - 1;
-    if (left) do {
-        /* assure that something is in the output buffer */
-        if (state->x.have == 0 && gz_fetch(state) == -1)
-            return NULL;                /* error */
-        if (state->x.have == 0) {       /* end of file */
-            state->past = 1;            /* read past end */
-            break;                      /* return what we have */
-        }
-
-        /* look for end-of-line in current output buffer */
-        n = state->x.have > left ? left : state->x.have;
-        eol = memchr(state->x.next, '\n', n);
-        if (eol != NULL)
-            n = (unsigned)(eol - state->x.next) + 1;
-
-        /* copy through end-of-line, or remainder if not found */
-        memcpy(buf, state->x.next, n);
-        state->x.have -= n;
-        state->x.next += n;
-        state->x.pos += n;
-        left -= n;
-        buf += n;
-    } while (left && eol == NULL);
-
-    /* return terminated string, or if nothing, end of file */
-    if (buf == str)
-        return NULL;
-    buf[0] = 0;
-    return str;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzdirect(file)
-    gzFile file;
-{
-    gz_statep state;
-
-    /* get internal structure */
-    if (file == NULL)
-        return 0;
-    state = (gz_statep)file;
-
-    /* if the state is not known, but we can find out, then do so (this is
-       mainly for right after a gzopen() or gzdopen()) */
-    if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0)
-        (void)gz_look(state);
-
-    /* return 1 if transparent, 0 if processing a gzip stream */
-    return state->direct;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzclose_r(file)
-    gzFile file;
-{
-    int ret, err;
-    gz_statep state;
-
-    /* get internal structure */
-    if (file == NULL)
-        return Z_STREAM_ERROR;
-    state = (gz_statep)file;
-
-    /* check that we're reading */
-    if (state->mode != GZ_READ)
-        return Z_STREAM_ERROR;
-
-    /* free memory and close file */
-    if (state->size) {
-        inflateEnd(&(state->strm));
-        free(state->out);
-        free(state->in);
-    }
-    err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK;
-    gz_error(state, Z_OK, NULL);
-    free(state->path);
-    ret = close(state->fd);
-    free(state);
-    return ret ? Z_ERRNO : err;
-}
diff --git a/libs/ext/zlib/gzwrite.c b/libs/ext/zlib/gzwrite.c
deleted file mode 100644
index 27cb342..0000000
--- a/libs/ext/zlib/gzwrite.c
+++ /dev/null
@@ -1,565 +0,0 @@
-/* gzwrite.c -- zlib functions for writing gzip files
- * Copyright (C) 2004, 2005, 2010, 2011, 2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "gzguts.h"
-
-/* Local functions */
-local int gz_init OF((gz_statep));
-local int gz_comp OF((gz_statep, int));
-local int gz_zero OF((gz_statep, z_off64_t));
-
-/* Initialize state for writing a gzip file.  Mark initialization by setting
-   state->size to non-zero.  Return -1 on failure or 0 on success. */
-local int gz_init(state)
-    gz_statep state;
-{
-    int ret;
-    z_streamp strm = &(state->strm);
-
-    /* allocate input buffer */
-    state->in = malloc(state->want);
-    if (state->in == NULL) {
-        gz_error(state, Z_MEM_ERROR, "out of memory");
-        return -1;
-    }
-
-    /* only need output buffer and deflate state if compressing */
-    if (!state->direct) {
-        /* allocate output buffer */
-        state->out = malloc(state->want);
-        if (state->out == NULL) {
-            free(state->in);
-            gz_error(state, Z_MEM_ERROR, "out of memory");
-            return -1;
-        }
-
-        /* allocate deflate memory, set up for gzip compression */
-        strm->zalloc = Z_NULL;
-        strm->zfree = Z_NULL;
-        strm->opaque = Z_NULL;
-        ret = deflateInit2(strm, state->level, Z_DEFLATED,
-                           MAX_WBITS + 16, DEF_MEM_LEVEL, state->strategy);
-        if (ret != Z_OK) {
-            free(state->out);
-            free(state->in);
-            gz_error(state, Z_MEM_ERROR, "out of memory");
-            return -1;
-        }
-    }
-
-    /* mark state as initialized */
-    state->size = state->want;
-
-    /* initialize write buffer if compressing */
-    if (!state->direct) {
-        strm->avail_out = state->size;
-        strm->next_out = state->out;
-        state->x.next = strm->next_out;
-    }
-    return 0;
-}
-
-/* Compress whatever is at avail_in and next_in and write to the output file.
-   Return -1 if there is an error writing to the output file, otherwise 0.
-   flush is assumed to be a valid deflate() flush value.  If flush is Z_FINISH,
-   then the deflate() state is reset to start a new gzip stream.  If gz->direct
-   is true, then simply write to the output file without compressing, and
-   ignore flush. */
-local int gz_comp(state, flush)
-    gz_statep state;
-    int flush;
-{
-    int ret, got;
-    unsigned have;
-    z_streamp strm = &(state->strm);
-
-    /* allocate memory if this is the first time through */
-    if (state->size == 0 && gz_init(state) == -1)
-        return -1;
-
-    /* write directly if requested */
-    if (state->direct) {
-        got = write(state->fd, strm->next_in, strm->avail_in);
-        if (got < 0 || (unsigned)got != strm->avail_in) {
-            gz_error(state, Z_ERRNO, zstrerror());
-            return -1;
-        }
-        strm->avail_in = 0;
-        return 0;
-    }
-
-    /* run deflate() on provided input until it produces no more output */
-    ret = Z_OK;
-    do {
-        /* write out current buffer contents if full, or if flushing, but if
-           doing Z_FINISH then don't write until we get to Z_STREAM_END */
-        if (strm->avail_out == 0 || (flush != Z_NO_FLUSH &&
-            (flush != Z_FINISH || ret == Z_STREAM_END))) {
-            have = (unsigned)(strm->next_out - state->x.next);
-            if (have && ((got = write(state->fd, state->x.next, have)) < 0 ||
-                         (unsigned)got != have)) {
-                gz_error(state, Z_ERRNO, zstrerror());
-                return -1;
-            }
-            if (strm->avail_out == 0) {
-                strm->avail_out = state->size;
-                strm->next_out = state->out;
-            }
-            state->x.next = strm->next_out;
-        }
-
-        /* compress */
-        have = strm->avail_out;
-        ret = deflate(strm, flush);
-        if (ret == Z_STREAM_ERROR) {
-            gz_error(state, Z_STREAM_ERROR,
-                      "internal error: deflate stream corrupt");
-            return -1;
-        }
-        have -= strm->avail_out;
-    } while (have);
-
-    /* if that completed a deflate stream, allow another to start */
-    if (flush == Z_FINISH)
-        deflateReset(strm);
-
-    /* all done, no errors */
-    return 0;
-}
-
-/* Compress len zeros to output.  Return -1 on error, 0 on success. */
-local int gz_zero(state, len)
-    gz_statep state;
-    z_off64_t len;
-{
-    int first;
-    unsigned n;
-    z_streamp strm = &(state->strm);
-
-    /* consume whatever's left in the input buffer */
-    if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
-        return -1;
-
-    /* compress len zeros (len guaranteed > 0) */
-    first = 1;
-    while (len) {
-        n = GT_OFF(state->size) || (z_off64_t)state->size > len ?
-            (unsigned)len : state->size;
-        if (first) {
-            memset(state->in, 0, n);
-            first = 0;
-        }
-        strm->avail_in = n;
-        strm->next_in = state->in;
-        state->x.pos += n;
-        if (gz_comp(state, Z_NO_FLUSH) == -1)
-            return -1;
-        len -= n;
-    }
-    return 0;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzwrite(file, buf, len)
-    gzFile file;
-    voidpc buf;
-    unsigned len;
-{
-    unsigned put = len;
-    unsigned n;
-    gz_statep state;
-    z_streamp strm;
-
-    /* get internal structure */
-    if (file == NULL)
-        return 0;
-    state = (gz_statep)file;
-    strm = &(state->strm);
-
-    /* check that we're writing and that there's no error */
-    if (state->mode != GZ_WRITE || state->err != Z_OK)
-        return 0;
-
-    /* since an int is returned, make sure len fits in one, otherwise return
-       with an error (this avoids the flaw in the interface) */
-    if ((int)len < 0) {
-        gz_error(state, Z_DATA_ERROR, "requested length does not fit in int");
-        return 0;
-    }
-
-    /* if len is zero, avoid unnecessary operations */
-    if (len == 0)
-        return 0;
-
-    /* allocate memory if this is the first time through */
-    if (state->size == 0 && gz_init(state) == -1)
-        return 0;
-
-    /* check for seek request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_zero(state, state->skip) == -1)
-            return 0;
-    }
-
-    /* for small len, copy to input buffer, otherwise compress directly */
-    if (len < state->size) {
-        /* copy to input buffer, compress when full */
-        do {
-            if (strm->avail_in == 0)
-                strm->next_in = state->in;
-            n = state->size - strm->avail_in;
-            if (n > len)
-                n = len;
-            memcpy(strm->next_in + strm->avail_in, buf, n);
-            strm->avail_in += n;
-            state->x.pos += n;
-            buf = (char *)buf + n;
-            len -= n;
-            if (len && gz_comp(state, Z_NO_FLUSH) == -1)
-                return 0;
-        } while (len);
-    }
-    else {
-        /* consume whatever's left in the input buffer */
-        if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
-            return 0;
-
-        /* directly compress user buffer to file */
-        strm->avail_in = len;
-        strm->next_in = (voidp)buf;
-        state->x.pos += len;
-        if (gz_comp(state, Z_NO_FLUSH) == -1)
-            return 0;
-    }
-
-    /* input was all buffered or compressed (put will fit in int) */
-    return (int)put;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzputc(file, c)
-    gzFile file;
-    int c;
-{
-    unsigned char buf[1];
-    gz_statep state;
-    z_streamp strm;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    strm = &(state->strm);
-
-    /* check that we're writing and that there's no error */
-    if (state->mode != GZ_WRITE || state->err != Z_OK)
-        return -1;
-
-    /* check for seek request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_zero(state, state->skip) == -1)
-            return -1;
-    }
-
-    /* try writing to input buffer for speed (state->size == 0 if buffer not
-       initialized) */
-    if (strm->avail_in < state->size) {
-        if (strm->avail_in == 0)
-            strm->next_in = state->in;
-        strm->next_in[strm->avail_in++] = c;
-        state->x.pos++;
-        return c & 0xff;
-    }
-
-    /* no room in buffer or not initialized, use gz_write() */
-    buf[0] = c;
-    if (gzwrite(file, buf, 1) != 1)
-        return -1;
-    return c & 0xff;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzputs(file, str)
-    gzFile file;
-    const char *str;
-{
-    int ret;
-    unsigned len;
-
-    /* write string */
-    len = (unsigned)strlen(str);
-    ret = gzwrite(file, str, len);
-    return ret == 0 && len != 0 ? -1 : ret;
-}
-
-#if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#include <stdarg.h>
-
-/* -- see zlib.h -- */
-int ZEXPORTVA gzprintf (gzFile file, const char *format, ...)
-{
-    int size, len;
-    gz_statep state;
-    z_streamp strm;
-    va_list va;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    strm = &(state->strm);
-
-    /* check that we're writing and that there's no error */
-    if (state->mode != GZ_WRITE || state->err != Z_OK)
-        return 0;
-
-    /* make sure we have some buffer space */
-    if (state->size == 0 && gz_init(state) == -1)
-        return 0;
-
-    /* check for seek request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_zero(state, state->skip) == -1)
-            return 0;
-    }
-
-    /* consume whatever's left in the input buffer */
-    if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
-        return 0;
-
-    /* do the printf() into the input buffer, put length in len */
-    size = (int)(state->size);
-    state->in[size - 1] = 0;
-    va_start(va, format);
-#ifdef NO_vsnprintf
-#  ifdef HAS_vsprintf_void
-    (void)vsprintf((char *)(state->in), format, va);
-    va_end(va);
-    for (len = 0; len < size; len++)
-        if (state->in[len] == 0) break;
-#  else
-    len = vsprintf((char *)(state->in), format, va);
-    va_end(va);
-#  endif
-#else
-#  ifdef HAS_vsnprintf_void
-    (void)vsnprintf((char *)(state->in), size, format, va);
-    va_end(va);
-    len = strlen((char *)(state->in));
-#  else
-    len = vsnprintf((char *)(state->in), size, format, va);
-    va_end(va);
-#  endif
-#endif
-
-    /* check that printf() results fit in buffer */
-    if (len <= 0 || len >= (int)size || state->in[size - 1] != 0)
-        return 0;
-
-    /* update buffer and position, defer compression until needed */
-    strm->avail_in = (unsigned)len;
-    strm->next_in = state->in;
-    state->x.pos += len;
-    return len;
-}
-
-#else /* !STDC && !Z_HAVE_STDARG_H */
-
-/* -- see zlib.h -- */
-int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
-                       a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
-    gzFile file;
-    const char *format;
-    int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
-        a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
-{
-    int size, len;
-    gz_statep state;
-    z_streamp strm;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-    strm = &(state->strm);
-
-    /* check that can really pass pointer in ints */
-    if (sizeof(int) != sizeof(void *))
-        return 0;
-
-    /* check that we're writing and that there's no error */
-    if (state->mode != GZ_WRITE || state->err != Z_OK)
-        return 0;
-
-    /* make sure we have some buffer space */
-    if (state->size == 0 && gz_init(state) == -1)
-        return 0;
-
-    /* check for seek request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_zero(state, state->skip) == -1)
-            return 0;
-    }
-
-    /* consume whatever's left in the input buffer */
-    if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
-        return 0;
-
-    /* do the printf() into the input buffer, put length in len */
-    size = (int)(state->size);
-    state->in[size - 1] = 0;
-#ifdef NO_snprintf
-#  ifdef HAS_sprintf_void
-    sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8,
-            a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-    for (len = 0; len < size; len++)
-        if (state->in[len] == 0) break;
-#  else
-    len = sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8,
-                  a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-#  endif
-#else
-#  ifdef HAS_snprintf_void
-    snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6, a7, a8,
-             a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-    len = strlen((char *)(state->in));
-#  else
-    len = snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6,
-                   a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18,
-                   a19, a20);
-#  endif
-#endif
-
-    /* check that printf() results fit in buffer */
-    if (len <= 0 || len >= (int)size || state->in[size - 1] != 0)
-        return 0;
-
-    /* update buffer and position, defer compression until needed */
-    strm->avail_in = (unsigned)len;
-    strm->next_in = state->in;
-    state->x.pos += len;
-    return len;
-}
-
-#endif
-
-/* -- see zlib.h -- */
-int ZEXPORT gzflush(file, flush)
-    gzFile file;
-    int flush;
-{
-    gz_statep state;
-
-    /* get internal structure */
-    if (file == NULL)
-        return -1;
-    state = (gz_statep)file;
-
-    /* check that we're writing and that there's no error */
-    if (state->mode != GZ_WRITE || state->err != Z_OK)
-        return Z_STREAM_ERROR;
-
-    /* check flush parameter */
-    if (flush < 0 || flush > Z_FINISH)
-        return Z_STREAM_ERROR;
-
-    /* check for seek request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_zero(state, state->skip) == -1)
-            return -1;
-    }
-
-    /* compress remaining data with requested flush */
-    gz_comp(state, flush);
-    return state->err;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzsetparams(file, level, strategy)
-    gzFile file;
-    int level;
-    int strategy;
-{
-    gz_statep state;
-    z_streamp strm;
-
-    /* get internal structure */
-    if (file == NULL)
-        return Z_STREAM_ERROR;
-    state = (gz_statep)file;
-    strm = &(state->strm);
-
-    /* check that we're writing and that there's no error */
-    if (state->mode != GZ_WRITE || state->err != Z_OK)
-        return Z_STREAM_ERROR;
-
-    /* if no change is requested, then do nothing */
-    if (level == state->level && strategy == state->strategy)
-        return Z_OK;
-
-    /* check for seek request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_zero(state, state->skip) == -1)
-            return -1;
-    }
-
-    /* change compression parameters for subsequent input */
-    if (state->size) {
-        /* flush previous input with previous parameters before changing */
-        if (strm->avail_in && gz_comp(state, Z_PARTIAL_FLUSH) == -1)
-            return state->err;
-        deflateParams(strm, level, strategy);
-    }
-    state->level = level;
-    state->strategy = strategy;
-    return Z_OK;
-}
-
-/* -- see zlib.h -- */
-int ZEXPORT gzclose_w(file)
-    gzFile file;
-{
-    int ret = Z_OK;
-    gz_statep state;
-
-    /* get internal structure */
-    if (file == NULL)
-        return Z_STREAM_ERROR;
-    state = (gz_statep)file;
-
-    /* check that we're writing */
-    if (state->mode != GZ_WRITE)
-        return Z_STREAM_ERROR;
-
-    /* check for seek request */
-    if (state->seek) {
-        state->seek = 0;
-        if (gz_zero(state, state->skip) == -1)
-            ret = state->err;
-    }
-
-    /* flush, free memory, and close file */
-    if (state->size) {
-        if (gz_comp(state, Z_FINISH) == -1)
-            ret = state->err;
-        if (!state->direct) {
-            (void)deflateEnd(&(state->strm));
-            free(state->out);
-        }
-        free(state->in);
-    }
-    gz_error(state, Z_OK, NULL);
-    free(state->path);
-    if (close(state->fd) == -1)
-        ret = Z_ERRNO;
-    free(state);
-    return ret;
-}
diff --git a/libs/ext/zlib/infback.c b/libs/ext/zlib/infback.c
deleted file mode 100644
index 981aff1..0000000
--- a/libs/ext/zlib/infback.c
+++ /dev/null
@@ -1,640 +0,0 @@
-/* infback.c -- inflate using a call-back interface
- * Copyright (C) 1995-2011 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
-   This code is largely copied from inflate.c.  Normally either infback.o or
-   inflate.o would be linked into an application--not both.  The interface
-   with inffast.c is retained so that optimized assembler-coded versions of
-   inflate_fast() can be used with either inflate.c or infback.c.
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-/* function prototypes */
-local void fixedtables OF((struct inflate_state FAR *state));
-
-/*
-   strm provides memory allocation functions in zalloc and zfree, or
-   Z_NULL to use the library memory allocation functions.
-
-   windowBits is in the range 8..15, and window is a user-supplied
-   window and output buffer that is 2**windowBits bytes.
- */
-int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size)
-z_streamp strm;
-int windowBits;
-unsigned char FAR *window;
-const char *version;
-int stream_size;
-{
-    struct inflate_state FAR *state;
-
-    if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
-        stream_size != (int)(sizeof(z_stream)))
-        return Z_VERSION_ERROR;
-    if (strm == Z_NULL || window == Z_NULL ||
-        windowBits < 8 || windowBits > 15)
-        return Z_STREAM_ERROR;
-    strm->msg = Z_NULL;                 /* in case we return an error */
-    if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-#endif
-    }
-    if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-    strm->zfree = zcfree;
-#endif
-    state = (struct inflate_state FAR *)ZALLOC(strm, 1,
-                                               sizeof(struct inflate_state));
-    if (state == Z_NULL) return Z_MEM_ERROR;
-    Tracev((stderr, "inflate: allocated\n"));
-    strm->state = (struct internal_state FAR *)state;
-    state->dmax = 32768U;
-    state->wbits = windowBits;
-    state->wsize = 1U << windowBits;
-    state->window = window;
-    state->wnext = 0;
-    state->whave = 0;
-    return Z_OK;
-}
-
-/*
-   Return state with length and distance decoding tables and index sizes set to
-   fixed code decoding.  Normally this returns fixed tables from inffixed.h.
-   If BUILDFIXED is defined, then instead this routine builds the tables the
-   first time it's called, and returns those tables the first time and
-   thereafter.  This reduces the size of the code by about 2K bytes, in
-   exchange for a little execution time.  However, BUILDFIXED should not be
-   used for threaded applications, since the rewriting of the tables and virgin
-   may not be thread-safe.
- */
-local void fixedtables(state)
-struct inflate_state FAR *state;
-{
-#ifdef BUILDFIXED
-    static int virgin = 1;
-    static code *lenfix, *distfix;
-    static code fixed[544];
-
-    /* build fixed huffman tables if first call (may not be thread safe) */
-    if (virgin) {
-        unsigned sym, bits;
-        static code *next;
-
-        /* literal/length table */
-        sym = 0;
-        while (sym < 144) state->lens[sym++] = 8;
-        while (sym < 256) state->lens[sym++] = 9;
-        while (sym < 280) state->lens[sym++] = 7;
-        while (sym < 288) state->lens[sym++] = 8;
-        next = fixed;
-        lenfix = next;
-        bits = 9;
-        inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
-
-        /* distance table */
-        sym = 0;
-        while (sym < 32) state->lens[sym++] = 5;
-        distfix = next;
-        bits = 5;
-        inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
-
-        /* do this just once */
-        virgin = 0;
-    }
-#else /* !BUILDFIXED */
-#   include "inffixed.h"
-#endif /* BUILDFIXED */
-    state->lencode = lenfix;
-    state->lenbits = 9;
-    state->distcode = distfix;
-    state->distbits = 5;
-}
-
-/* Macros for inflateBack(): */
-
-/* Load returned state from inflate_fast() */
-#define LOAD() \
-    do { \
-        put = strm->next_out; \
-        left = strm->avail_out; \
-        next = strm->next_in; \
-        have = strm->avail_in; \
-        hold = state->hold; \
-        bits = state->bits; \
-    } while (0)
-
-/* Set state from registers for inflate_fast() */
-#define RESTORE() \
-    do { \
-        strm->next_out = put; \
-        strm->avail_out = left; \
-        strm->next_in = next; \
-        strm->avail_in = have; \
-        state->hold = hold; \
-        state->bits = bits; \
-    } while (0)
-
-/* Clear the input bit accumulator */
-#define INITBITS() \
-    do { \
-        hold = 0; \
-        bits = 0; \
-    } while (0)
-
-/* Assure that some input is available.  If input is requested, but denied,
-   then return a Z_BUF_ERROR from inflateBack(). */
-#define PULL() \
-    do { \
-        if (have == 0) { \
-            have = in(in_desc, &next); \
-            if (have == 0) { \
-                next = Z_NULL; \
-                ret = Z_BUF_ERROR; \
-                goto inf_leave; \
-            } \
-        } \
-    } while (0)
-
-/* Get a byte of input into the bit accumulator, or return from inflateBack()
-   with an error if there is no input available. */
-#define PULLBYTE() \
-    do { \
-        PULL(); \
-        have--; \
-        hold += (unsigned long)(*next++) << bits; \
-        bits += 8; \
-    } while (0)
-
-/* Assure that there are at least n bits in the bit accumulator.  If there is
-   not enough available input to do that, then return from inflateBack() with
-   an error. */
-#define NEEDBITS(n) \
-    do { \
-        while (bits < (unsigned)(n)) \
-            PULLBYTE(); \
-    } while (0)
-
-/* Return the low n bits of the bit accumulator (n < 16) */
-#define BITS(n) \
-    ((unsigned)hold & ((1U << (n)) - 1))
-
-/* Remove n bits from the bit accumulator */
-#define DROPBITS(n) \
-    do { \
-        hold >>= (n); \
-        bits -= (unsigned)(n); \
-    } while (0)
-
-/* Remove zero to seven bits as needed to go to a byte boundary */
-#define BYTEBITS() \
-    do { \
-        hold >>= bits & 7; \
-        bits -= bits & 7; \
-    } while (0)
-
-/* Assure that some output space is available, by writing out the window
-   if it's full.  If the write fails, return from inflateBack() with a
-   Z_BUF_ERROR. */
-#define ROOM() \
-    do { \
-        if (left == 0) { \
-            put = state->window; \
-            left = state->wsize; \
-            state->whave = left; \
-            if (out(out_desc, put, left)) { \
-                ret = Z_BUF_ERROR; \
-                goto inf_leave; \
-            } \
-        } \
-    } while (0)
-
-/*
-   strm provides the memory allocation functions and window buffer on input,
-   and provides information on the unused input on return.  For Z_DATA_ERROR
-   returns, strm will also provide an error message.
-
-   in() and out() are the call-back input and output functions.  When
-   inflateBack() needs more input, it calls in().  When inflateBack() has
-   filled the window with output, or when it completes with data in the
-   window, it calls out() to write out the data.  The application must not
-   change the provided input until in() is called again or inflateBack()
-   returns.  The application must not change the window/output buffer until
-   inflateBack() returns.
-
-   in() and out() are called with a descriptor parameter provided in the
-   inflateBack() call.  This parameter can be a structure that provides the
-   information required to do the read or write, as well as accumulated
-   information on the input and output such as totals and check values.
-
-   in() should return zero on failure.  out() should return non-zero on
-   failure.  If either in() or out() fails, than inflateBack() returns a
-   Z_BUF_ERROR.  strm->next_in can be checked for Z_NULL to see whether it
-   was in() or out() that caused in the error.  Otherwise,  inflateBack()
-   returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
-   error, or Z_MEM_ERROR if it could not allocate memory for the state.
-   inflateBack() can also return Z_STREAM_ERROR if the input parameters
-   are not correct, i.e. strm is Z_NULL or the state was not initialized.
- */
-int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc)
-z_streamp strm;
-in_func in;
-void FAR *in_desc;
-out_func out;
-void FAR *out_desc;
-{
-    struct inflate_state FAR *state;
-    unsigned char FAR *next;    /* next input */
-    unsigned char FAR *put;     /* next output */
-    unsigned have, left;        /* available input and output */
-    unsigned long hold;         /* bit buffer */
-    unsigned bits;              /* bits in bit buffer */
-    unsigned copy;              /* number of stored or match bytes to copy */
-    unsigned char FAR *from;    /* where to copy match bytes from */
-    code here;                  /* current decoding table entry */
-    code last;                  /* parent table entry */
-    unsigned len;               /* length to copy for repeats, bits to drop */
-    int ret;                    /* return code */
-    static const unsigned short order[19] = /* permutation of code lengths */
-        {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-    /* Check that the strm exists and that the state was initialized */
-    if (strm == Z_NULL || strm->state == Z_NULL)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* Reset the state */
-    strm->msg = Z_NULL;
-    state->mode = TYPE;
-    state->last = 0;
-    state->whave = 0;
-    next = strm->next_in;
-    have = next != Z_NULL ? strm->avail_in : 0;
-    hold = 0;
-    bits = 0;
-    put = state->window;
-    left = state->wsize;
-
-    /* Inflate until end of block marked as last */
-    for (;;)
-        switch (state->mode) {
-        case TYPE:
-            /* determine and dispatch block type */
-            if (state->last) {
-                BYTEBITS();
-                state->mode = DONE;
-                break;
-            }
-            NEEDBITS(3);
-            state->last = BITS(1);
-            DROPBITS(1);
-            switch (BITS(2)) {
-            case 0:                             /* stored block */
-                Tracev((stderr, "inflate:     stored block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = STORED;
-                break;
-            case 1:                             /* fixed block */
-                fixedtables(state);
-                Tracev((stderr, "inflate:     fixed codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = LEN;              /* decode codes */
-                break;
-            case 2:                             /* dynamic block */
-                Tracev((stderr, "inflate:     dynamic codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = TABLE;
-                break;
-            case 3:
-                strm->msg = (char *)"invalid block type";
-                state->mode = BAD;
-            }
-            DROPBITS(2);
-            break;
-
-        case STORED:
-            /* get and verify stored block length */
-            BYTEBITS();                         /* go to byte boundary */
-            NEEDBITS(32);
-            if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
-                strm->msg = (char *)"invalid stored block lengths";
-                state->mode = BAD;
-                break;
-            }
-            state->length = (unsigned)hold & 0xffff;
-            Tracev((stderr, "inflate:       stored length %u\n",
-                    state->length));
-            INITBITS();
-
-            /* copy stored block from input to output */
-            while (state->length != 0) {
-                copy = state->length;
-                PULL();
-                ROOM();
-                if (copy > have) copy = have;
-                if (copy > left) copy = left;
-                zmemcpy(put, next, copy);
-                have -= copy;
-                next += copy;
-                left -= copy;
-                put += copy;
-                state->length -= copy;
-            }
-            Tracev((stderr, "inflate:       stored end\n"));
-            state->mode = TYPE;
-            break;
-
-        case TABLE:
-            /* get dynamic table entries descriptor */
-            NEEDBITS(14);
-            state->nlen = BITS(5) + 257;
-            DROPBITS(5);
-            state->ndist = BITS(5) + 1;
-            DROPBITS(5);
-            state->ncode = BITS(4) + 4;
-            DROPBITS(4);
-#ifndef PKZIP_BUG_WORKAROUND
-            if (state->nlen > 286 || state->ndist > 30) {
-                strm->msg = (char *)"too many length or distance symbols";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracev((stderr, "inflate:       table sizes ok\n"));
-
-            /* get code length code lengths (not a typo) */
-            state->have = 0;
-            while (state->have < state->ncode) {
-                NEEDBITS(3);
-                state->lens[order[state->have++]] = (unsigned short)BITS(3);
-                DROPBITS(3);
-            }
-            while (state->have < 19)
-                state->lens[order[state->have++]] = 0;
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 7;
-            ret = inflate_table(CODES, state->lens, 19, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid code lengths set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       code lengths ok\n"));
-
-            /* get length and distance code code lengths */
-            state->have = 0;
-            while (state->have < state->nlen + state->ndist) {
-                for (;;) {
-                    here = state->lencode[BITS(state->lenbits)];
-                    if ((unsigned)(here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                if (here.val < 16) {
-                    DROPBITS(here.bits);
-                    state->lens[state->have++] = here.val;
-                }
-                else {
-                    if (here.val == 16) {
-                        NEEDBITS(here.bits + 2);
-                        DROPBITS(here.bits);
-                        if (state->have == 0) {
-                            strm->msg = (char *)"invalid bit length repeat";
-                            state->mode = BAD;
-                            break;
-                        }
-                        len = (unsigned)(state->lens[state->have - 1]);
-                        copy = 3 + BITS(2);
-                        DROPBITS(2);
-                    }
-                    else if (here.val == 17) {
-                        NEEDBITS(here.bits + 3);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 3 + BITS(3);
-                        DROPBITS(3);
-                    }
-                    else {
-                        NEEDBITS(here.bits + 7);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 11 + BITS(7);
-                        DROPBITS(7);
-                    }
-                    if (state->have + copy > state->nlen + state->ndist) {
-                        strm->msg = (char *)"invalid bit length repeat";
-                        state->mode = BAD;
-                        break;
-                    }
-                    while (copy--)
-                        state->lens[state->have++] = (unsigned short)len;
-                }
-            }
-
-            /* handle error breaks in while */
-            if (state->mode == BAD) break;
-
-            /* check for end-of-block code (better have one) */
-            if (state->lens[256] == 0) {
-                strm->msg = (char *)"invalid code -- missing end-of-block";
-                state->mode = BAD;
-                break;
-            }
-
-            /* build code tables -- note: do not change the lenbits or distbits
-               values here (9 and 6) without reading the comments in inftrees.h
-               concerning the ENOUGH constants, which depend on those values */
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 9;
-            ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid literal/lengths set";
-                state->mode = BAD;
-                break;
-            }
-            state->distcode = (code const FAR *)(state->next);
-            state->distbits = 6;
-            ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
-                            &(state->next), &(state->distbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid distances set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       codes ok\n"));
-            state->mode = LEN;
-
-        case LEN:
-            /* use inflate_fast() if we have enough input and output */
-            if (have >= 6 && left >= 258) {
-                RESTORE();
-                if (state->whave < state->wsize)
-                    state->whave = state->wsize - left;
-                inflate_fast(strm, state->wsize);
-                LOAD();
-                break;
-            }
-
-            /* get a literal, length, or end-of-block code */
-            for (;;) {
-                here = state->lencode[BITS(state->lenbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if (here.op && (here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->lencode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(here.bits);
-            state->length = (unsigned)here.val;
-
-            /* process literal */
-            if (here.op == 0) {
-                Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
-                        "inflate:         literal '%c'\n" :
-                        "inflate:         literal 0x%02x\n", here.val));
-                ROOM();
-                *put++ = (unsigned char)(state->length);
-                left--;
-                state->mode = LEN;
-                break;
-            }
-
-            /* process end of block */
-            if (here.op & 32) {
-                Tracevv((stderr, "inflate:         end of block\n"));
-                state->mode = TYPE;
-                break;
-            }
-
-            /* invalid code */
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid literal/length code";
-                state->mode = BAD;
-                break;
-            }
-
-            /* length code -- get extra bits, if any */
-            state->extra = (unsigned)(here.op) & 15;
-            if (state->extra != 0) {
-                NEEDBITS(state->extra);
-                state->length += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            Tracevv((stderr, "inflate:         length %u\n", state->length));
-
-            /* get distance code */
-            for (;;) {
-                here = state->distcode[BITS(state->distbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if ((here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->distcode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-            }
-            DROPBITS(here.bits);
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-            state->offset = (unsigned)here.val;
-
-            /* get distance extra bits, if any */
-            state->extra = (unsigned)(here.op) & 15;
-            if (state->extra != 0) {
-                NEEDBITS(state->extra);
-                state->offset += BITS(state->extra);
-                DROPBITS(state->extra);
-            }
-            if (state->offset > state->wsize - (state->whave < state->wsize ?
-                                                left : 0)) {
-                strm->msg = (char *)"invalid distance too far back";
-                state->mode = BAD;
-                break;
-            }
-            Tracevv((stderr, "inflate:         distance %u\n", state->offset));
-
-            /* copy match from window to output */
-            do {
-                ROOM();
-                copy = state->wsize - state->offset;
-                if (copy < left) {
-                    from = put + copy;
-                    copy = left - copy;
-                }
-                else {
-                    from = put - state->offset;
-                    copy = left;
-                }
-                if (copy > state->length) copy = state->length;
-                state->length -= copy;
-                left -= copy;
-                do {
-                    *put++ = *from++;
-                } while (--copy);
-            } while (state->length != 0);
-            break;
-
-        case DONE:
-            /* inflate stream terminated properly -- write leftover output */
-            ret = Z_STREAM_END;
-            if (left < state->wsize) {
-                if (out(out_desc, state->window, state->wsize - left))
-                    ret = Z_BUF_ERROR;
-            }
-            goto inf_leave;
-
-        case BAD:
-            ret = Z_DATA_ERROR;
-            goto inf_leave;
-
-        default:                /* can't happen, but makes compilers happy */
-            ret = Z_STREAM_ERROR;
-            goto inf_leave;
-        }
-
-    /* Return unused input */
-  inf_leave:
-    strm->next_in = next;
-    strm->avail_in = have;
-    return ret;
-}
-
-int ZEXPORT inflateBackEnd(strm)
-z_streamp strm;
-{
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-    Tracev((stderr, "inflate: end\n"));
-    return Z_OK;
-}
diff --git a/libs/ext/zlib/inffast.c b/libs/ext/zlib/inffast.c
deleted file mode 100644
index 2f1d60b..0000000
--- a/libs/ext/zlib/inffast.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/* inffast.c -- fast decoding
- * Copyright (C) 1995-2008, 2010 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-#ifndef ASMINF
-
-/* Allow machine dependent optimization for post-increment or pre-increment.
-   Based on testing to date,
-   Pre-increment preferred for:
-   - PowerPC G3 (Adler)
-   - MIPS R5000 (Randers-Pehrson)
-   Post-increment preferred for:
-   - none
-   No measurable difference:
-   - Pentium III (Anderson)
-   - M68060 (Nikl)
- */
-#ifdef POSTINC
-#  define OFF 0
-#  define PUP(a) *(a)++
-#else
-#  define OFF 1
-#  define PUP(a) *++(a)
-#endif
-
-/*
-   Decode literal, length, and distance codes and write out the resulting
-   literal and match bytes until either not enough input or output is
-   available, an end-of-block is encountered, or a data error is encountered.
-   When large enough input and output buffers are supplied to inflate(), for
-   example, a 16K input buffer and a 64K output buffer, more than 95% of the
-   inflate execution time is spent in this routine.
-
-   Entry assumptions:
-
-        state->mode == LEN
-        strm->avail_in >= 6
-        strm->avail_out >= 258
-        start >= strm->avail_out
-        state->bits < 8
-
-   On return, state->mode is one of:
-
-        LEN -- ran out of enough output space or enough available input
-        TYPE -- reached end of block code, inflate() to interpret next block
-        BAD -- error in block data
-
-   Notes:
-
-    - The maximum input bits used by a length/distance pair is 15 bits for the
-      length code, 5 bits for the length extra, 15 bits for the distance code,
-      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
-      Therefore if strm->avail_in >= 6, then there is enough input to avoid
-      checking for available input while decoding.
-
-    - The maximum bytes that a single length/distance pair can output is 258
-      bytes, which is the maximum length that can be coded.  inflate_fast()
-      requires strm->avail_out >= 258 for each loop to avoid checking for
-      output space.
- */
-void ZLIB_INTERNAL inflate_fast(strm, start)
-z_streamp strm;
-unsigned start;         /* inflate()'s starting value for strm->avail_out */
-{
-    struct inflate_state FAR *state;
-    unsigned char FAR *in;      /* local strm->next_in */
-    unsigned char FAR *last;    /* while in < last, enough input available */
-    unsigned char FAR *out;     /* local strm->next_out */
-    unsigned char FAR *beg;     /* inflate()'s initial strm->next_out */
-    unsigned char FAR *end;     /* while out < end, enough space available */
-#ifdef INFLATE_STRICT
-    unsigned dmax;              /* maximum distance from zlib header */
-#endif
-    unsigned wsize;             /* window size or zero if not using window */
-    unsigned whave;             /* valid bytes in the window */
-    unsigned wnext;             /* window write index */
-    unsigned char FAR *window;  /* allocated sliding window, if wsize != 0 */
-    unsigned long hold;         /* local strm->hold */
-    unsigned bits;              /* local strm->bits */
-    code const FAR *lcode;      /* local strm->lencode */
-    code const FAR *dcode;      /* local strm->distcode */
-    unsigned lmask;             /* mask for first level of length codes */
-    unsigned dmask;             /* mask for first level of distance codes */
-    code here;                  /* retrieved table entry */
-    unsigned op;                /* code bits, operation, extra bits, or */
-                                /*  window position, window bytes to copy */
-    unsigned len;               /* match length, unused bytes */
-    unsigned dist;              /* match distance */
-    unsigned char FAR *from;    /* where to copy match from */
-
-    /* copy state to local variables */
-    state = (struct inflate_state FAR *)strm->state;
-    in = strm->next_in - OFF;
-    last = in + (strm->avail_in - 5);
-    out = strm->next_out - OFF;
-    beg = out - (start - strm->avail_out);
-    end = out + (strm->avail_out - 257);
-#ifdef INFLATE_STRICT
-    dmax = state->dmax;
-#endif
-    wsize = state->wsize;
-    whave = state->whave;
-    wnext = state->wnext;
-    window = state->window;
-    hold = state->hold;
-    bits = state->bits;
-    lcode = state->lencode;
-    dcode = state->distcode;
-    lmask = (1U << state->lenbits) - 1;
-    dmask = (1U << state->distbits) - 1;
-
-    /* decode literals and length/distances until end-of-block or not enough
-       input data or output space */
-    do {
-        if (bits < 15) {
-            hold += (unsigned long)(PUP(in)) << bits;
-            bits += 8;
-            hold += (unsigned long)(PUP(in)) << bits;
-            bits += 8;
-        }
-        here = lcode[hold & lmask];
-      dolen:
-        op = (unsigned)(here.bits);
-        hold >>= op;
-        bits -= op;
-        op = (unsigned)(here.op);
-        if (op == 0) {                          /* literal */
-            Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
-                    "inflate:         literal '%c'\n" :
-                    "inflate:         literal 0x%02x\n", here.val));
-            PUP(out) = (unsigned char)(here.val);
-        }
-        else if (op & 16) {                     /* length base */
-            len = (unsigned)(here.val);
-            op &= 15;                           /* number of extra bits */
-            if (op) {
-                if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
-                    bits += 8;
-                }
-                len += (unsigned)hold & ((1U << op) - 1);
-                hold >>= op;
-                bits -= op;
-            }
-            Tracevv((stderr, "inflate:         length %u\n", len));
-            if (bits < 15) {
-                hold += (unsigned long)(PUP(in)) << bits;
-                bits += 8;
-                hold += (unsigned long)(PUP(in)) << bits;
-                bits += 8;
-            }
-            here = dcode[hold & dmask];
-          dodist:
-            op = (unsigned)(here.bits);
-            hold >>= op;
-            bits -= op;
-            op = (unsigned)(here.op);
-            if (op & 16) {                      /* distance base */
-                dist = (unsigned)(here.val);
-                op &= 15;                       /* number of extra bits */
-                if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
-                    bits += 8;
-                    if (bits < op) {
-                        hold += (unsigned long)(PUP(in)) << bits;
-                        bits += 8;
-                    }
-                }
-                dist += (unsigned)hold & ((1U << op) - 1);
-#ifdef INFLATE_STRICT
-                if (dist > dmax) {
-                    strm->msg = (char *)"invalid distance too far back";
-                    state->mode = BAD;
-                    break;
-                }
-#endif
-                hold >>= op;
-                bits -= op;
-                Tracevv((stderr, "inflate:         distance %u\n", dist));
-                op = (unsigned)(out - beg);     /* max distance in output */
-                if (dist > op) {                /* see if copy from window */
-                    op = dist - op;             /* distance back in window */
-                    if (op > whave) {
-                        if (state->sane) {
-                            strm->msg =
-                                (char *)"invalid distance too far back";
-                            state->mode = BAD;
-                            break;
-                        }
-#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
-                        if (len <= op - whave) {
-                            do {
-                                PUP(out) = 0;
-                            } while (--len);
-                            continue;
-                        }
-                        len -= op - whave;
-                        do {
-                            PUP(out) = 0;
-                        } while (--op > whave);
-                        if (op == 0) {
-                            from = out - dist;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--len);
-                            continue;
-                        }
-#endif
-                    }
-                    from = window - OFF;
-                    if (wnext == 0) {           /* very common case */
-                        from += wsize - op;
-                        if (op < len) {         /* some from window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = out - dist;  /* rest from output */
-                        }
-                    }
-                    else if (wnext < op) {      /* wrap around window */
-                        from += wsize + wnext - op;
-                        op -= wnext;
-                        if (op < len) {         /* some from end of window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = window - OFF;
-                            if (wnext < len) {  /* some from start of window */
-                                op = wnext;
-                                len -= op;
-                                do {
-                                    PUP(out) = PUP(from);
-                                } while (--op);
-                                from = out - dist;      /* rest from output */
-                            }
-                        }
-                    }
-                    else {                      /* contiguous in window */
-                        from += wnext - op;
-                        if (op < len) {         /* some from window */
-                            len -= op;
-                            do {
-                                PUP(out) = PUP(from);
-                            } while (--op);
-                            from = out - dist;  /* rest from output */
-                        }
-                    }
-                    while (len > 2) {
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        len -= 3;
-                    }
-                    if (len) {
-                        PUP(out) = PUP(from);
-                        if (len > 1)
-                            PUP(out) = PUP(from);
-                    }
-                }
-                else {
-                    from = out - dist;          /* copy direct from output */
-                    do {                        /* minimum length is three */
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        len -= 3;
-                    } while (len > 2);
-                    if (len) {
-                        PUP(out) = PUP(from);
-                        if (len > 1)
-                            PUP(out) = PUP(from);
-                    }
-                }
-            }
-            else if ((op & 64) == 0) {          /* 2nd level distance code */
-                here = dcode[here.val + (hold & ((1U << op) - 1))];
-                goto dodist;
-            }
-            else {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-        }
-        else if ((op & 64) == 0) {              /* 2nd level length code */
-            here = lcode[here.val + (hold & ((1U << op) - 1))];
-            goto dolen;
-        }
-        else if (op & 32) {                     /* end-of-block */
-            Tracevv((stderr, "inflate:         end of block\n"));
-            state->mode = TYPE;
-            break;
-        }
-        else {
-            strm->msg = (char *)"invalid literal/length code";
-            state->mode = BAD;
-            break;
-        }
-    } while (in < last && out < end);
-
-    /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
-    len = bits >> 3;
-    in -= len;
-    bits -= len << 3;
-    hold &= (1U << bits) - 1;
-
-    /* update state and return */
-    strm->next_in = in + OFF;
-    strm->next_out = out + OFF;
-    strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
-    strm->avail_out = (unsigned)(out < end ?
-                                 257 + (end - out) : 257 - (out - end));
-    state->hold = hold;
-    state->bits = bits;
-    return;
-}
-
-/*
-   inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe):
-   - Using bit fields for code structure
-   - Different op definition to avoid & for extra bits (do & for table bits)
-   - Three separate decoding do-loops for direct, window, and wnext == 0
-   - Special case for distance > 1 copies to do overlapped load and store copy
-   - Explicit branch predictions (based on measured branch probabilities)
-   - Deferring match copy and interspersed it with decoding subsequent codes
-   - Swapping literal/length else
-   - Swapping window/direct else
-   - Larger unrolled copy loops (three is about right)
-   - Moving len -= 3 statement into middle of loop
- */
-
-#endif /* !ASMINF */
diff --git a/libs/ext/zlib/inffast.h b/libs/ext/zlib/inffast.h
deleted file mode 100644
index e5c1aa4..0000000
--- a/libs/ext/zlib/inffast.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* inffast.h -- header to use inffast.c
- * Copyright (C) 1995-2003, 2010 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start));
diff --git a/libs/ext/zlib/inffixed.h b/libs/ext/zlib/inffixed.h
deleted file mode 100644
index d628327..0000000
--- a/libs/ext/zlib/inffixed.h
+++ /dev/null
@@ -1,94 +0,0 @@
-    /* inffixed.h -- table for decoding fixed codes
-     * Generated automatically by makefixed().
-     */
-
-    /* WARNING: this file should *not* be used by applications.
-       It is part of the implementation of this library and is
-       subject to change. Applications should only use zlib.h.
-     */
-
-    static const code lenfix[512] = {
-        {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48},
-        {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128},
-        {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59},
-        {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176},
-        {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20},
-        {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100},
-        {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8},
-        {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216},
-        {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76},
-        {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114},
-        {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2},
-        {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148},
-        {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42},
-        {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86},
-        {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15},
-        {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236},
-        {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62},
-        {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142},
-        {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31},
-        {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162},
-        {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25},
-        {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105},
-        {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4},
-        {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202},
-        {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69},
-        {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125},
-        {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13},
-        {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195},
-        {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35},
-        {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91},
-        {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19},
-        {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246},
-        {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55},
-        {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135},
-        {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99},
-        {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190},
-        {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16},
-        {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96},
-        {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6},
-        {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209},
-        {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72},
-        {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116},
-        {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4},
-        {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153},
-        {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44},
-        {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82},
-        {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11},
-        {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229},
-        {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58},
-        {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138},
-        {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51},
-        {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173},
-        {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30},
-        {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110},
-        {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0},
-        {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195},
-        {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65},
-        {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121},
-        {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9},
-        {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258},
-        {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37},
-        {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93},
-        {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23},
-        {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251},
-        {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51},
-        {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131},
-        {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67},
-        {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183},
-        {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23},
-        {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103},
-        {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9},
-        {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223},
-        {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79},
-        {0,9,255}
-    };
-
-    static const code distfix[32] = {
-        {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025},
-        {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193},
-        {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385},
-        {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577},
-        {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073},
-        {22,5,193},{64,5,0}
-    };
diff --git a/libs/ext/zlib/inflate.c b/libs/ext/zlib/inflate.c
deleted file mode 100644
index 47418a1..0000000
--- a/libs/ext/zlib/inflate.c
+++ /dev/null
@@ -1,1496 +0,0 @@
-/* inflate.c -- zlib decompression
- * Copyright (C) 1995-2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * Change history:
- *
- * 1.2.beta0    24 Nov 2002
- * - First version -- complete rewrite of inflate to simplify code, avoid
- *   creation of window when not needed, minimize use of window when it is
- *   needed, make inffast.c even faster, implement gzip decoding, and to
- *   improve code readability and style over the previous zlib inflate code
- *
- * 1.2.beta1    25 Nov 2002
- * - Use pointers for available input and output checking in inffast.c
- * - Remove input and output counters in inffast.c
- * - Change inffast.c entry and loop from avail_in >= 7 to >= 6
- * - Remove unnecessary second byte pull from length extra in inffast.c
- * - Unroll direct copy to three copies per loop in inffast.c
- *
- * 1.2.beta2    4 Dec 2002
- * - Change external routine names to reduce potential conflicts
- * - Correct filename to inffixed.h for fixed tables in inflate.c
- * - Make hbuf[] unsigned char to match parameter type in inflate.c
- * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset)
- *   to avoid negation problem on Alphas (64 bit) in inflate.c
- *
- * 1.2.beta3    22 Dec 2002
- * - Add comments on state->bits assertion in inffast.c
- * - Add comments on op field in inftrees.h
- * - Fix bug in reuse of allocated window after inflateReset()
- * - Remove bit fields--back to byte structure for speed
- * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths
- * - Change post-increments to pre-increments in inflate_fast(), PPC biased?
- * - Add compile time option, POSTINC, to use post-increments instead (Intel?)
- * - Make MATCH copy in inflate() much faster for when inflate_fast() not used
- * - Use local copies of stream next and avail values, as well as local bit
- *   buffer and bit count in inflate()--for speed when inflate_fast() not used
- *
- * 1.2.beta4    1 Jan 2003
- * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings
- * - Move a comment on output buffer sizes from inffast.c to inflate.c
- * - Add comments in inffast.c to introduce the inflate_fast() routine
- * - Rearrange window copies in inflate_fast() for speed and simplification
- * - Unroll last copy for window match in inflate_fast()
- * - Use local copies of window variables in inflate_fast() for speed
- * - Pull out common wnext == 0 case for speed in inflate_fast()
- * - Make op and len in inflate_fast() unsigned for consistency
- * - Add FAR to lcode and dcode declarations in inflate_fast()
- * - Simplified bad distance check in inflate_fast()
- * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new
- *   source file infback.c to provide a call-back interface to inflate for
- *   programs like gzip and unzip -- uses window as output buffer to avoid
- *   window copying
- *
- * 1.2.beta5    1 Jan 2003
- * - Improved inflateBack() interface to allow the caller to provide initial
- *   input in strm.
- * - Fixed stored blocks bug in inflateBack()
- *
- * 1.2.beta6    4 Jan 2003
- * - Added comments in inffast.c on effectiveness of POSTINC
- * - Typecasting all around to reduce compiler warnings
- * - Changed loops from while (1) or do {} while (1) to for (;;), again to
- *   make compilers happy
- * - Changed type of window in inflateBackInit() to unsigned char *
- *
- * 1.2.beta7    27 Jan 2003
- * - Changed many types to unsigned or unsigned short to avoid warnings
- * - Added inflateCopy() function
- *
- * 1.2.0        9 Mar 2003
- * - Changed inflateBack() interface to provide separate opaque descriptors
- *   for the in() and out() functions
- * - Changed inflateBack() argument and in_func typedef to swap the length
- *   and buffer address return values for the input function
- * - Check next_in and next_out for Z_NULL on entry to inflate()
- *
- * The history for versions after 1.2.0 are in ChangeLog in zlib distribution.
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "inflate.h"
-#include "inffast.h"
-
-#ifdef MAKEFIXED
-#  ifndef BUILDFIXED
-#    define BUILDFIXED
-#  endif
-#endif
-
-/* function prototypes */
-local void fixedtables OF((struct inflate_state FAR *state));
-local int updatewindow OF((z_streamp strm, unsigned out));
-#ifdef BUILDFIXED
-   void makefixed OF((void));
-#endif
-local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf,
-                              unsigned len));
-
-int ZEXPORT inflateResetKeep(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    strm->total_in = strm->total_out = state->total = 0;
-    strm->msg = Z_NULL;
-    if (state->wrap)        /* to support ill-conceived Java test suite */
-        strm->adler = state->wrap & 1;
-    state->mode = HEAD;
-    state->last = 0;
-    state->havedict = 0;
-    state->dmax = 32768U;
-    state->head = Z_NULL;
-    state->hold = 0;
-    state->bits = 0;
-    state->lencode = state->distcode = state->next = state->codes;
-    state->sane = 1;
-    state->back = -1;
-    Tracev((stderr, "inflate: reset\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateReset(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    state->wsize = 0;
-    state->whave = 0;
-    state->wnext = 0;
-    return inflateResetKeep(strm);
-}
-
-int ZEXPORT inflateReset2(strm, windowBits)
-z_streamp strm;
-int windowBits;
-{
-    int wrap;
-    struct inflate_state FAR *state;
-
-    /* get the state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* extract wrap request from windowBits parameter */
-    if (windowBits < 0) {
-        wrap = 0;
-        windowBits = -windowBits;
-    }
-    else {
-        wrap = (windowBits >> 4) + 1;
-#ifdef GUNZIP
-        if (windowBits < 48)
-            windowBits &= 15;
-#endif
-    }
-
-    /* set number of window bits, free window if different */
-    if (windowBits && (windowBits < 8 || windowBits > 15))
-        return Z_STREAM_ERROR;
-    if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) {
-        ZFREE(strm, state->window);
-        state->window = Z_NULL;
-    }
-
-    /* update state and reset the rest of it */
-    state->wrap = wrap;
-    state->wbits = (unsigned)windowBits;
-    return inflateReset(strm);
-}
-
-int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
-z_streamp strm;
-int windowBits;
-const char *version;
-int stream_size;
-{
-    int ret;
-    struct inflate_state FAR *state;
-
-    if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
-        stream_size != (int)(sizeof(z_stream)))
-        return Z_VERSION_ERROR;
-    if (strm == Z_NULL) return Z_STREAM_ERROR;
-    strm->msg = Z_NULL;                 /* in case we return an error */
-    if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zalloc = zcalloc;
-        strm->opaque = (voidpf)0;
-#endif
-    }
-    if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
-        return Z_STREAM_ERROR;
-#else
-        strm->zfree = zcfree;
-#endif
-    state = (struct inflate_state FAR *)
-            ZALLOC(strm, 1, sizeof(struct inflate_state));
-    if (state == Z_NULL) return Z_MEM_ERROR;
-    Tracev((stderr, "inflate: allocated\n"));
-    strm->state = (struct internal_state FAR *)state;
-    state->window = Z_NULL;
-    ret = inflateReset2(strm, windowBits);
-    if (ret != Z_OK) {
-        ZFREE(strm, state);
-        strm->state = Z_NULL;
-    }
-    return ret;
-}
-
-int ZEXPORT inflateInit_(strm, version, stream_size)
-z_streamp strm;
-const char *version;
-int stream_size;
-{
-    return inflateInit2_(strm, DEF_WBITS, version, stream_size);
-}
-
-int ZEXPORT inflatePrime(strm, bits, value)
-z_streamp strm;
-int bits;
-int value;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (bits < 0) {
-        state->hold = 0;
-        state->bits = 0;
-        return Z_OK;
-    }
-    if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR;
-    value &= (1L << bits) - 1;
-    state->hold += value << state->bits;
-    state->bits += bits;
-    return Z_OK;
-}
-
-/*
-   Return state with length and distance decoding tables and index sizes set to
-   fixed code decoding.  Normally this returns fixed tables from inffixed.h.
-   If BUILDFIXED is defined, then instead this routine builds the tables the
-   first time it's called, and returns those tables the first time and
-   thereafter.  This reduces the size of the code by about 2K bytes, in
-   exchange for a little execution time.  However, BUILDFIXED should not be
-   used for threaded applications, since the rewriting of the tables and virgin
-   may not be thread-safe.
- */
-local void fixedtables(state)
-struct inflate_state FAR *state;
-{
-#ifdef BUILDFIXED
-    static int virgin = 1;
-    static code *lenfix, *distfix;
-    static code fixed[544];
-
-    /* build fixed huffman tables if first call (may not be thread safe) */
-    if (virgin) {
-        unsigned sym, bits;
-        static code *next;
-
-        /* literal/length table */
-        sym = 0;
-        while (sym < 144) state->lens[sym++] = 8;
-        while (sym < 256) state->lens[sym++] = 9;
-        while (sym < 280) state->lens[sym++] = 7;
-        while (sym < 288) state->lens[sym++] = 8;
-        next = fixed;
-        lenfix = next;
-        bits = 9;
-        inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
-
-        /* distance table */
-        sym = 0;
-        while (sym < 32) state->lens[sym++] = 5;
-        distfix = next;
-        bits = 5;
-        inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
-
-        /* do this just once */
-        virgin = 0;
-    }
-#else /* !BUILDFIXED */
-#   include "inffixed.h"
-#endif /* BUILDFIXED */
-    state->lencode = lenfix;
-    state->lenbits = 9;
-    state->distcode = distfix;
-    state->distbits = 5;
-}
-
-#ifdef MAKEFIXED
-#include <stdio.h>
-
-/*
-   Write out the inffixed.h that is #include'd above.  Defining MAKEFIXED also
-   defines BUILDFIXED, so the tables are built on the fly.  makefixed() writes
-   those tables to stdout, which would be piped to inffixed.h.  A small program
-   can simply call makefixed to do this:
-
-    void makefixed(void);
-
-    int main(void)
-    {
-        makefixed();
-        return 0;
-    }
-
-   Then that can be linked with zlib built with MAKEFIXED defined and run:
-
-    a.out > inffixed.h
- */
-void makefixed()
-{
-    unsigned low, size;
-    struct inflate_state state;
-
-    fixedtables(&state);
-    puts("    /* inffixed.h -- table for decoding fixed codes");
-    puts("     * Generated automatically by makefixed().");
-    puts("     */");
-    puts("");
-    puts("    /* WARNING: this file should *not* be used by applications.");
-    puts("       It is part of the implementation of this library and is");
-    puts("       subject to change. Applications should only use zlib.h.");
-    puts("     */");
-    puts("");
-    size = 1U << 9;
-    printf("    static const code lenfix[%u] = {", size);
-    low = 0;
-    for (;;) {
-        if ((low % 7) == 0) printf("\n        ");
-        printf("{%u,%u,%d}", (low & 127) == 99 ? 64 : state.lencode[low].op,
-               state.lencode[low].bits, state.lencode[low].val);
-        if (++low == size) break;
-        putchar(',');
-    }
-    puts("\n    };");
-    size = 1U << 5;
-    printf("\n    static const code distfix[%u] = {", size);
-    low = 0;
-    for (;;) {
-        if ((low % 6) == 0) printf("\n        ");
-        printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits,
-               state.distcode[low].val);
-        if (++low == size) break;
-        putchar(',');
-    }
-    puts("\n    };");
-}
-#endif /* MAKEFIXED */
-
-/*
-   Update the window with the last wsize (normally 32K) bytes written before
-   returning.  If window does not exist yet, create it.  This is only called
-   when a window is already in use, or when output has been written during this
-   inflate call, but the end of the deflate stream has not been reached yet.
-   It is also called to create a window for dictionary data when a dictionary
-   is loaded.
-
-   Providing output buffers larger than 32K to inflate() should provide a speed
-   advantage, since only the last 32K of output is copied to the sliding window
-   upon return from inflate(), and since all distances after the first 32K of
-   output will fall in the output data, making match copies simpler and faster.
-   The advantage may be dependent on the size of the processor's data caches.
- */
-local int updatewindow(strm, out)
-z_streamp strm;
-unsigned out;
-{
-    struct inflate_state FAR *state;
-    unsigned copy, dist;
-
-    state = (struct inflate_state FAR *)strm->state;
-
-    /* if it hasn't been done already, allocate space for the window */
-    if (state->window == Z_NULL) {
-        state->window = (unsigned char FAR *)
-                        ZALLOC(strm, 1U << state->wbits,
-                               sizeof(unsigned char));
-        if (state->window == Z_NULL) return 1;
-    }
-
-    /* if window not in use yet, initialize */
-    if (state->wsize == 0) {
-        state->wsize = 1U << state->wbits;
-        state->wnext = 0;
-        state->whave = 0;
-    }
-
-    /* copy state->wsize or less output bytes into the circular window */
-    copy = out - strm->avail_out;
-    if (copy >= state->wsize) {
-        zmemcpy(state->window, strm->next_out - state->wsize, state->wsize);
-        state->wnext = 0;
-        state->whave = state->wsize;
-    }
-    else {
-        dist = state->wsize - state->wnext;
-        if (dist > copy) dist = copy;
-        zmemcpy(state->window + state->wnext, strm->next_out - copy, dist);
-        copy -= dist;
-        if (copy) {
-            zmemcpy(state->window, strm->next_out - copy, copy);
-            state->wnext = copy;
-            state->whave = state->wsize;
-        }
-        else {
-            state->wnext += dist;
-            if (state->wnext == state->wsize) state->wnext = 0;
-            if (state->whave < state->wsize) state->whave += dist;
-        }
-    }
-    return 0;
-}
-
-/* Macros for inflate(): */
-
-/* check function to use adler32() for zlib or crc32() for gzip */
-#ifdef GUNZIP
-#  define UPDATE(check, buf, len) \
-    (state->flags ? crc32(check, buf, len) : adler32(check, buf, len))
-#else
-#  define UPDATE(check, buf, len) adler32(check, buf, len)
-#endif
-
-/* check macros for header crc */
-#ifdef GUNZIP
-#  define CRC2(check, word) \
-    do { \
-        hbuf[0] = (unsigned char)(word); \
-        hbuf[1] = (unsigned char)((word) >> 8); \
-        check = crc32(check, hbuf, 2); \
-    } while (0)
-
-#  define CRC4(check, word) \
-    do { \
-        hbuf[0] = (unsigned char)(word); \
-        hbuf[1] = (unsigned char)((word) >> 8); \
-        hbuf[2] = (unsigned char)((word) >> 16); \
-        hbuf[3] = (unsigned char)((word) >> 24); \
-        check = crc32(check, hbuf, 4); \
-    } while (0)
-#endif
-
-/* Load registers with state in inflate() for speed */
-#define LOAD() \
-    do { \
-        put = strm->next_out; \
-        left = strm->avail_out; \
-        next = strm->next_in; \
-        have = strm->avail_in; \
-        hold = state->hold; \
-        bits = state->bits; \
-    } while (0)
-
-/* Restore state from registers in inflate() */
-#define RESTORE() \
-    do { \
-        strm->next_out = put; \
-        strm->avail_out = left; \
-        strm->next_in = next; \
-        strm->avail_in = have; \
-        state->hold = hold; \
-        state->bits = bits; \
-    } while (0)
-
-/* Clear the input bit accumulator */
-#define INITBITS() \
-    do { \
-        hold = 0; \
-        bits = 0; \
-    } while (0)
-
-/* Get a byte of input into the bit accumulator, or return from inflate()
-   if there is no input available. */
-#define PULLBYTE() \
-    do { \
-        if (have == 0) goto inf_leave; \
-        have--; \
-        hold += (unsigned long)(*next++) << bits; \
-        bits += 8; \
-    } while (0)
-
-/* Assure that there are at least n bits in the bit accumulator.  If there is
-   not enough available input to do that, then return from inflate(). */
-#define NEEDBITS(n) \
-    do { \
-        while (bits < (unsigned)(n)) \
-            PULLBYTE(); \
-    } while (0)
-
-/* Return the low n bits of the bit accumulator (n < 16) */
-#define BITS(n) \
-    ((unsigned)hold & ((1U << (n)) - 1))
-
-/* Remove n bits from the bit accumulator */
-#define DROPBITS(n) \
-    do { \
-        hold >>= (n); \
-        bits -= (unsigned)(n); \
-    } while (0)
-
-/* Remove zero to seven bits as needed to go to a byte boundary */
-#define BYTEBITS() \
-    do { \
-        hold >>= bits & 7; \
-        bits -= bits & 7; \
-    } while (0)
-
-/*
-   inflate() uses a state machine to process as much input data and generate as
-   much output data as possible before returning.  The state machine is
-   structured roughly as follows:
-
-    for (;;) switch (state) {
-    ...
-    case STATEn:
-        if (not enough input data or output space to make progress)
-            return;
-        ... make progress ...
-        state = STATEm;
-        break;
-    ...
-    }
-
-   so when inflate() is called again, the same case is attempted again, and
-   if the appropriate resources are provided, the machine proceeds to the
-   next state.  The NEEDBITS() macro is usually the way the state evaluates
-   whether it can proceed or should return.  NEEDBITS() does the return if
-   the requested bits are not available.  The typical use of the BITS macros
-   is:
-
-        NEEDBITS(n);
-        ... do something with BITS(n) ...
-        DROPBITS(n);
-
-   where NEEDBITS(n) either returns from inflate() if there isn't enough
-   input left to load n bits into the accumulator, or it continues.  BITS(n)
-   gives the low n bits in the accumulator.  When done, DROPBITS(n) drops
-   the low n bits off the accumulator.  INITBITS() clears the accumulator
-   and sets the number of available bits to zero.  BYTEBITS() discards just
-   enough bits to put the accumulator on a byte boundary.  After BYTEBITS()
-   and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
-
-   NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
-   if there is no input available.  The decoding of variable length codes uses
-   PULLBYTE() directly in order to pull just enough bytes to decode the next
-   code, and no more.
-
-   Some states loop until they get enough input, making sure that enough
-   state information is maintained to continue the loop where it left off
-   if NEEDBITS() returns in the loop.  For example, want, need, and keep
-   would all have to actually be part of the saved state in case NEEDBITS()
-   returns:
-
-    case STATEw:
-        while (want < need) {
-            NEEDBITS(n);
-            keep[want++] = BITS(n);
-            DROPBITS(n);
-        }
-        state = STATEx;
-    case STATEx:
-
-   As shown above, if the next state is also the next case, then the break
-   is omitted.
-
-   A state may also return if there is not enough output space available to
-   complete that state.  Those states are copying stored data, writing a
-   literal byte, and copying a matching string.
-
-   When returning, a "goto inf_leave" is used to update the total counters,
-   update the check value, and determine whether any progress has been made
-   during that inflate() call in order to return the proper return code.
-   Progress is defined as a change in either strm->avail_in or strm->avail_out.
-   When there is a window, goto inf_leave will update the window with the last
-   output written.  If a goto inf_leave occurs in the middle of decompression
-   and there is no window currently, goto inf_leave will create one and copy
-   output to the window for the next call of inflate().
-
-   In this implementation, the flush parameter of inflate() only affects the
-   return code (per zlib.h).  inflate() always writes as much as possible to
-   strm->next_out, given the space available and the provided input--the effect
-   documented in zlib.h of Z_SYNC_FLUSH.  Furthermore, inflate() always defers
-   the allocation of and copying into a sliding window until necessary, which
-   provides the effect documented in zlib.h for Z_FINISH when the entire input
-   stream available.  So the only thing the flush parameter actually does is:
-   when flush is set to Z_FINISH, inflate() cannot return Z_OK.  Instead it
-   will return Z_BUF_ERROR if it has not reached the end of the stream.
- */
-
-int ZEXPORT inflate(strm, flush)
-z_streamp strm;
-int flush;
-{
-    struct inflate_state FAR *state;
-    unsigned char FAR *next;    /* next input */
-    unsigned char FAR *put;     /* next output */
-    unsigned have, left;        /* available input and output */
-    unsigned long hold;         /* bit buffer */
-    unsigned bits;              /* bits in bit buffer */
-    unsigned in, out;           /* save starting available input and output */
-    unsigned copy;              /* number of stored or match bytes to copy */
-    unsigned char FAR *from;    /* where to copy match bytes from */
-    code here;                  /* current decoding table entry */
-    code last;                  /* parent table entry */
-    unsigned len;               /* length to copy for repeats, bits to drop */
-    int ret;                    /* return code */
-#ifdef GUNZIP
-    unsigned char hbuf[4];      /* buffer for gzip header crc calculation */
-#endif
-    static const unsigned short order[19] = /* permutation of code lengths */
-        {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0))
-        return Z_STREAM_ERROR;
-
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->mode == TYPE) state->mode = TYPEDO;      /* skip check */
-    LOAD();
-    in = have;
-    out = left;
-    ret = Z_OK;
-    for (;;)
-        switch (state->mode) {
-        case HEAD:
-            if (state->wrap == 0) {
-                state->mode = TYPEDO;
-                break;
-            }
-            NEEDBITS(16);
-#ifdef GUNZIP
-            if ((state->wrap & 2) && hold == 0x8b1f) {  /* gzip header */
-                state->check = crc32(0L, Z_NULL, 0);
-                CRC2(state->check, hold);
-                INITBITS();
-                state->mode = FLAGS;
-                break;
-            }
-            state->flags = 0;           /* expect zlib header */
-            if (state->head != Z_NULL)
-                state->head->done = -1;
-            if (!(state->wrap & 1) ||   /* check if zlib header allowed */
-#else
-            if (
-#endif
-                ((BITS(8) << 8) + (hold >> 8)) % 31) {
-                strm->msg = (char *)"incorrect header check";
-                state->mode = BAD;
-                break;
-            }
-            if (BITS(4) != Z_DEFLATED) {
-                strm->msg = (char *)"unknown compression method";
-                state->mode = BAD;
-                break;
-            }
-            DROPBITS(4);
-            len = BITS(4) + 8;
-            if (state->wbits == 0)
-                state->wbits = len;
-            else if (len > state->wbits) {
-                strm->msg = (char *)"invalid window size";
-                state->mode = BAD;
-                break;
-            }
-            state->dmax = 1U << len;
-            Tracev((stderr, "inflate:   zlib header ok\n"));
-            strm->adler = state->check = adler32(0L, Z_NULL, 0);
-            state->mode = hold & 0x200 ? DICTID : TYPE;
-            INITBITS();
-            break;
-#ifdef GUNZIP
-        case FLAGS:
-            NEEDBITS(16);
-            state->flags = (int)(hold);
-            if ((state->flags & 0xff) != Z_DEFLATED) {
-                strm->msg = (char *)"unknown compression method";
-                state->mode = BAD;
-                break;
-            }
-            if (state->flags & 0xe000) {
-                strm->msg = (char *)"unknown header flags set";
-                state->mode = BAD;
-                break;
-            }
-            if (state->head != Z_NULL)
-                state->head->text = (int)((hold >> 8) & 1);
-            if (state->flags & 0x0200) CRC2(state->check, hold);
-            INITBITS();
-            state->mode = TIME;
-        case TIME:
-            NEEDBITS(32);
-            if (state->head != Z_NULL)
-                state->head->time = hold;
-            if (state->flags & 0x0200) CRC4(state->check, hold);
-            INITBITS();
-            state->mode = OS;
-        case OS:
-            NEEDBITS(16);
-            if (state->head != Z_NULL) {
-                state->head->xflags = (int)(hold & 0xff);
-                state->head->os = (int)(hold >> 8);
-            }
-            if (state->flags & 0x0200) CRC2(state->check, hold);
-            INITBITS();
-            state->mode = EXLEN;
-        case EXLEN:
-            if (state->flags & 0x0400) {
-                NEEDBITS(16);
-                state->length = (unsigned)(hold);
-                if (state->head != Z_NULL)
-                    state->head->extra_len = (unsigned)hold;
-                if (state->flags & 0x0200) CRC2(state->check, hold);
-                INITBITS();
-            }
-            else if (state->head != Z_NULL)
-                state->head->extra = Z_NULL;
-            state->mode = EXTRA;
-        case EXTRA:
-            if (state->flags & 0x0400) {
-                copy = state->length;
-                if (copy > have) copy = have;
-                if (copy) {
-                    if (state->head != Z_NULL &&
-                        state->head->extra != Z_NULL) {
-                        len = state->head->extra_len - state->length;
-                        zmemcpy(state->head->extra + len, next,
-                                len + copy > state->head->extra_max ?
-                                state->head->extra_max - len : copy);
-                    }
-                    if (state->flags & 0x0200)
-                        state->check = crc32(state->check, next, copy);
-                    have -= copy;
-                    next += copy;
-                    state->length -= copy;
-                }
-                if (state->length) goto inf_leave;
-            }
-            state->length = 0;
-            state->mode = NAME;
-        case NAME:
-            if (state->flags & 0x0800) {
-                if (have == 0) goto inf_leave;
-                copy = 0;
-                do {
-                    len = (unsigned)(next[copy++]);
-                    if (state->head != Z_NULL &&
-                            state->head->name != Z_NULL &&
-                            state->length < state->head->name_max)
-                        state->head->name[state->length++] = len;
-                } while (len && copy < have);
-                if (state->flags & 0x0200)
-                    state->check = crc32(state->check, next, copy);
-                have -= copy;
-                next += copy;
-                if (len) goto inf_leave;
-            }
-            else if (state->head != Z_NULL)
-                state->head->name = Z_NULL;
-            state->length = 0;
-            state->mode = COMMENT;
-        case COMMENT:
-            if (state->flags & 0x1000) {
-                if (have == 0) goto inf_leave;
-                copy = 0;
-                do {
-                    len = (unsigned)(next[copy++]);
-                    if (state->head != Z_NULL &&
-                            state->head->comment != Z_NULL &&
-                            state->length < state->head->comm_max)
-                        state->head->comment[state->length++] = len;
-                } while (len && copy < have);
-                if (state->flags & 0x0200)
-                    state->check = crc32(state->check, next, copy);
-                have -= copy;
-                next += copy;
-                if (len) goto inf_leave;
-            }
-            else if (state->head != Z_NULL)
-                state->head->comment = Z_NULL;
-            state->mode = HCRC;
-        case HCRC:
-            if (state->flags & 0x0200) {
-                NEEDBITS(16);
-                if (hold != (state->check & 0xffff)) {
-                    strm->msg = (char *)"header crc mismatch";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-            }
-            if (state->head != Z_NULL) {
-                state->head->hcrc = (int)((state->flags >> 9) & 1);
-                state->head->done = 1;
-            }
-            strm->adler = state->check = crc32(0L, Z_NULL, 0);
-            state->mode = TYPE;
-            break;
-#endif
-        case DICTID:
-            NEEDBITS(32);
-            strm->adler = state->check = ZSWAP32(hold);
-            INITBITS();
-            state->mode = DICT;
-        case DICT:
-            if (state->havedict == 0) {
-                RESTORE();
-                return Z_NEED_DICT;
-            }
-            strm->adler = state->check = adler32(0L, Z_NULL, 0);
-            state->mode = TYPE;
-        case TYPE:
-            if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave;
-        case TYPEDO:
-            if (state->last) {
-                BYTEBITS();
-                state->mode = CHECK;
-                break;
-            }
-            NEEDBITS(3);
-            state->last = BITS(1);
-            DROPBITS(1);
-            switch (BITS(2)) {
-            case 0:                             /* stored block */
-                Tracev((stderr, "inflate:     stored block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = STORED;
-                break;
-            case 1:                             /* fixed block */
-                fixedtables(state);
-                Tracev((stderr, "inflate:     fixed codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = LEN_;             /* decode codes */
-                if (flush == Z_TREES) {
-                    DROPBITS(2);
-                    goto inf_leave;
-                }
-                break;
-            case 2:                             /* dynamic block */
-                Tracev((stderr, "inflate:     dynamic codes block%s\n",
-                        state->last ? " (last)" : ""));
-                state->mode = TABLE;
-                break;
-            case 3:
-                strm->msg = (char *)"invalid block type";
-                state->mode = BAD;
-            }
-            DROPBITS(2);
-            break;
-        case STORED:
-            BYTEBITS();                         /* go to byte boundary */
-            NEEDBITS(32);
-            if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
-                strm->msg = (char *)"invalid stored block lengths";
-                state->mode = BAD;
-                break;
-            }
-            state->length = (unsigned)hold & 0xffff;
-            Tracev((stderr, "inflate:       stored length %u\n",
-                    state->length));
-            INITBITS();
-            state->mode = COPY_;
-            if (flush == Z_TREES) goto inf_leave;
-        case COPY_:
-            state->mode = COPY;
-        case COPY:
-            copy = state->length;
-            if (copy) {
-                if (copy > have) copy = have;
-                if (copy > left) copy = left;
-                if (copy == 0) goto inf_leave;
-                zmemcpy(put, next, copy);
-                have -= copy;
-                next += copy;
-                left -= copy;
-                put += copy;
-                state->length -= copy;
-                break;
-            }
-            Tracev((stderr, "inflate:       stored end\n"));
-            state->mode = TYPE;
-            break;
-        case TABLE:
-            NEEDBITS(14);
-            state->nlen = BITS(5) + 257;
-            DROPBITS(5);
-            state->ndist = BITS(5) + 1;
-            DROPBITS(5);
-            state->ncode = BITS(4) + 4;
-            DROPBITS(4);
-#ifndef PKZIP_BUG_WORKAROUND
-            if (state->nlen > 286 || state->ndist > 30) {
-                strm->msg = (char *)"too many length or distance symbols";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracev((stderr, "inflate:       table sizes ok\n"));
-            state->have = 0;
-            state->mode = LENLENS;
-        case LENLENS:
-            while (state->have < state->ncode) {
-                NEEDBITS(3);
-                state->lens[order[state->have++]] = (unsigned short)BITS(3);
-                DROPBITS(3);
-            }
-            while (state->have < 19)
-                state->lens[order[state->have++]] = 0;
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 7;
-            ret = inflate_table(CODES, state->lens, 19, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid code lengths set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       code lengths ok\n"));
-            state->have = 0;
-            state->mode = CODELENS;
-        case CODELENS:
-            while (state->have < state->nlen + state->ndist) {
-                for (;;) {
-                    here = state->lencode[BITS(state->lenbits)];
-                    if ((unsigned)(here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                if (here.val < 16) {
-                    DROPBITS(here.bits);
-                    state->lens[state->have++] = here.val;
-                }
-                else {
-                    if (here.val == 16) {
-                        NEEDBITS(here.bits + 2);
-                        DROPBITS(here.bits);
-                        if (state->have == 0) {
-                            strm->msg = (char *)"invalid bit length repeat";
-                            state->mode = BAD;
-                            break;
-                        }
-                        len = state->lens[state->have - 1];
-                        copy = 3 + BITS(2);
-                        DROPBITS(2);
-                    }
-                    else if (here.val == 17) {
-                        NEEDBITS(here.bits + 3);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 3 + BITS(3);
-                        DROPBITS(3);
-                    }
-                    else {
-                        NEEDBITS(here.bits + 7);
-                        DROPBITS(here.bits);
-                        len = 0;
-                        copy = 11 + BITS(7);
-                        DROPBITS(7);
-                    }
-                    if (state->have + copy > state->nlen + state->ndist) {
-                        strm->msg = (char *)"invalid bit length repeat";
-                        state->mode = BAD;
-                        break;
-                    }
-                    while (copy--)
-                        state->lens[state->have++] = (unsigned short)len;
-                }
-            }
-
-            /* handle error breaks in while */
-            if (state->mode == BAD) break;
-
-            /* check for end-of-block code (better have one) */
-            if (state->lens[256] == 0) {
-                strm->msg = (char *)"invalid code -- missing end-of-block";
-                state->mode = BAD;
-                break;
-            }
-
-            /* build code tables -- note: do not change the lenbits or distbits
-               values here (9 and 6) without reading the comments in inftrees.h
-               concerning the ENOUGH constants, which depend on those values */
-            state->next = state->codes;
-            state->lencode = (code const FAR *)(state->next);
-            state->lenbits = 9;
-            ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
-                                &(state->lenbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid literal/lengths set";
-                state->mode = BAD;
-                break;
-            }
-            state->distcode = (code const FAR *)(state->next);
-            state->distbits = 6;
-            ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
-                            &(state->next), &(state->distbits), state->work);
-            if (ret) {
-                strm->msg = (char *)"invalid distances set";
-                state->mode = BAD;
-                break;
-            }
-            Tracev((stderr, "inflate:       codes ok\n"));
-            state->mode = LEN_;
-            if (flush == Z_TREES) goto inf_leave;
-        case LEN_:
-            state->mode = LEN;
-        case LEN:
-            if (have >= 6 && left >= 258) {
-                RESTORE();
-                inflate_fast(strm, out);
-                LOAD();
-                if (state->mode == TYPE)
-                    state->back = -1;
-                break;
-            }
-            state->back = 0;
-            for (;;) {
-                here = state->lencode[BITS(state->lenbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if (here.op && (here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->lencode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-                state->back += last.bits;
-            }
-            DROPBITS(here.bits);
-            state->back += here.bits;
-            state->length = (unsigned)here.val;
-            if ((int)(here.op) == 0) {
-                Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
-                        "inflate:         literal '%c'\n" :
-                        "inflate:         literal 0x%02x\n", here.val));
-                state->mode = LIT;
-                break;
-            }
-            if (here.op & 32) {
-                Tracevv((stderr, "inflate:         end of block\n"));
-                state->back = -1;
-                state->mode = TYPE;
-                break;
-            }
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid literal/length code";
-                state->mode = BAD;
-                break;
-            }
-            state->extra = (unsigned)(here.op) & 15;
-            state->mode = LENEXT;
-        case LENEXT:
-            if (state->extra) {
-                NEEDBITS(state->extra);
-                state->length += BITS(state->extra);
-                DROPBITS(state->extra);
-                state->back += state->extra;
-            }
-            Tracevv((stderr, "inflate:         length %u\n", state->length));
-            state->was = state->length;
-            state->mode = DIST;
-        case DIST:
-            for (;;) {
-                here = state->distcode[BITS(state->distbits)];
-                if ((unsigned)(here.bits) <= bits) break;
-                PULLBYTE();
-            }
-            if ((here.op & 0xf0) == 0) {
-                last = here;
-                for (;;) {
-                    here = state->distcode[last.val +
-                            (BITS(last.bits + last.op) >> last.bits)];
-                    if ((unsigned)(last.bits + here.bits) <= bits) break;
-                    PULLBYTE();
-                }
-                DROPBITS(last.bits);
-                state->back += last.bits;
-            }
-            DROPBITS(here.bits);
-            state->back += here.bits;
-            if (here.op & 64) {
-                strm->msg = (char *)"invalid distance code";
-                state->mode = BAD;
-                break;
-            }
-            state->offset = (unsigned)here.val;
-            state->extra = (unsigned)(here.op) & 15;
-            state->mode = DISTEXT;
-        case DISTEXT:
-            if (state->extra) {
-                NEEDBITS(state->extra);
-                state->offset += BITS(state->extra);
-                DROPBITS(state->extra);
-                state->back += state->extra;
-            }
-#ifdef INFLATE_STRICT
-            if (state->offset > state->dmax) {
-                strm->msg = (char *)"invalid distance too far back";
-                state->mode = BAD;
-                break;
-            }
-#endif
-            Tracevv((stderr, "inflate:         distance %u\n", state->offset));
-            state->mode = MATCH;
-        case MATCH:
-            if (left == 0) goto inf_leave;
-            copy = out - left;
-            if (state->offset > copy) {         /* copy from window */
-                copy = state->offset - copy;
-                if (copy > state->whave) {
-                    if (state->sane) {
-                        strm->msg = (char *)"invalid distance too far back";
-                        state->mode = BAD;
-                        break;
-                    }
-#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
-                    Trace((stderr, "inflate.c too far\n"));
-                    copy -= state->whave;
-                    if (copy > state->length) copy = state->length;
-                    if (copy > left) copy = left;
-                    left -= copy;
-                    state->length -= copy;
-                    do {
-                        *put++ = 0;
-                    } while (--copy);
-                    if (state->length == 0) state->mode = LEN;
-                    break;
-#endif
-                }
-                if (copy > state->wnext) {
-                    copy -= state->wnext;
-                    from = state->window + (state->wsize - copy);
-                }
-                else
-                    from = state->window + (state->wnext - copy);
-                if (copy > state->length) copy = state->length;
-            }
-            else {                              /* copy from output */
-                from = put - state->offset;
-                copy = state->length;
-            }
-            if (copy > left) copy = left;
-            left -= copy;
-            state->length -= copy;
-            do {
-                *put++ = *from++;
-            } while (--copy);
-            if (state->length == 0) state->mode = LEN;
-            break;
-        case LIT:
-            if (left == 0) goto inf_leave;
-            *put++ = (unsigned char)(state->length);
-            left--;
-            state->mode = LEN;
-            break;
-        case CHECK:
-            if (state->wrap) {
-                NEEDBITS(32);
-                out -= left;
-                strm->total_out += out;
-                state->total += out;
-                if (out)
-                    strm->adler = state->check =
-                        UPDATE(state->check, put - out, out);
-                out = left;
-                if ((
-#ifdef GUNZIP
-                     state->flags ? hold :
-#endif
-                     ZSWAP32(hold)) != state->check) {
-                    strm->msg = (char *)"incorrect data check";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-                Tracev((stderr, "inflate:   check matches trailer\n"));
-            }
-#ifdef GUNZIP
-            state->mode = LENGTH;
-        case LENGTH:
-            if (state->wrap && state->flags) {
-                NEEDBITS(32);
-                if (hold != (state->total & 0xffffffffUL)) {
-                    strm->msg = (char *)"incorrect length check";
-                    state->mode = BAD;
-                    break;
-                }
-                INITBITS();
-                Tracev((stderr, "inflate:   length matches trailer\n"));
-            }
-#endif
-            state->mode = DONE;
-        case DONE:
-            ret = Z_STREAM_END;
-            goto inf_leave;
-        case BAD:
-            ret = Z_DATA_ERROR;
-            goto inf_leave;
-        case MEM:
-            return Z_MEM_ERROR;
-        case SYNC:
-        default:
-            return Z_STREAM_ERROR;
-        }
-
-    /*
-       Return from inflate(), updating the total counts and the check value.
-       If there was no progress during the inflate() call, return a buffer
-       error.  Call updatewindow() to create and/or update the window state.
-       Note: a memory error from inflate() is non-recoverable.
-     */
-  inf_leave:
-    RESTORE();
-    if (state->wsize || (out != strm->avail_out && state->mode < BAD &&
-            (state->mode < CHECK || flush != Z_FINISH)))
-        if (updatewindow(strm, out)) {
-            state->mode = MEM;
-            return Z_MEM_ERROR;
-        }
-    in -= strm->avail_in;
-    out -= strm->avail_out;
-    strm->total_in += in;
-    strm->total_out += out;
-    state->total += out;
-    if (state->wrap && out)
-        strm->adler = state->check =
-            UPDATE(state->check, strm->next_out - out, out);
-    strm->data_type = state->bits + (state->last ? 64 : 0) +
-                      (state->mode == TYPE ? 128 : 0) +
-                      (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0);
-    if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)
-        ret = Z_BUF_ERROR;
-    return ret;
-}
-
-int ZEXPORT inflateEnd(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->window != Z_NULL) ZFREE(strm, state->window);
-    ZFREE(strm, strm->state);
-    strm->state = Z_NULL;
-    Tracev((stderr, "inflate: end\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength)
-z_streamp strm;
-const Bytef *dictionary;
-uInt dictLength;
-{
-    struct inflate_state FAR *state;
-    unsigned long dictid;
-    unsigned char *next;
-    unsigned avail;
-    int ret;
-
-    /* check state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (state->wrap != 0 && state->mode != DICT)
-        return Z_STREAM_ERROR;
-
-    /* check for correct dictionary identifier */
-    if (state->mode == DICT) {
-        dictid = adler32(0L, Z_NULL, 0);
-        dictid = adler32(dictid, dictionary, dictLength);
-        if (dictid != state->check)
-            return Z_DATA_ERROR;
-    }
-
-    /* copy dictionary to window using updatewindow(), which will amend the
-       existing dictionary if appropriate */
-    next = strm->next_out;
-    avail = strm->avail_out;
-    strm->next_out = (Bytef *)dictionary + dictLength;
-    strm->avail_out = 0;
-    ret = updatewindow(strm, dictLength);
-    strm->avail_out = avail;
-    strm->next_out = next;
-    if (ret) {
-        state->mode = MEM;
-        return Z_MEM_ERROR;
-    }
-    state->havedict = 1;
-    Tracev((stderr, "inflate:   dictionary set\n"));
-    return Z_OK;
-}
-
-int ZEXPORT inflateGetHeader(strm, head)
-z_streamp strm;
-gz_headerp head;
-{
-    struct inflate_state FAR *state;
-
-    /* check state */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if ((state->wrap & 2) == 0) return Z_STREAM_ERROR;
-
-    /* save header structure */
-    state->head = head;
-    head->done = 0;
-    return Z_OK;
-}
-
-/*
-   Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff.  Return when found
-   or when out of input.  When called, *have is the number of pattern bytes
-   found in order so far, in 0..3.  On return *have is updated to the new
-   state.  If on return *have equals four, then the pattern was found and the
-   return value is how many bytes were read including the last byte of the
-   pattern.  If *have is less than four, then the pattern has not been found
-   yet and the return value is len.  In the latter case, syncsearch() can be
-   called again with more data and the *have state.  *have is initialized to
-   zero for the first call.
- */
-local unsigned syncsearch(have, buf, len)
-unsigned FAR *have;
-unsigned char FAR *buf;
-unsigned len;
-{
-    unsigned got;
-    unsigned next;
-
-    got = *have;
-    next = 0;
-    while (next < len && got < 4) {
-        if ((int)(buf[next]) == (got < 2 ? 0 : 0xff))
-            got++;
-        else if (buf[next])
-            got = 0;
-        else
-            got = 4 - got;
-        next++;
-    }
-    *have = got;
-    return next;
-}
-
-int ZEXPORT inflateSync(strm)
-z_streamp strm;
-{
-    unsigned len;               /* number of bytes to look at or looked at */
-    unsigned long in, out;      /* temporary to save total_in and total_out */
-    unsigned char buf[4];       /* to restore bit buffer to byte string */
-    struct inflate_state FAR *state;
-
-    /* check parameters */
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;
-
-    /* if first time, start search in bit buffer */
-    if (state->mode != SYNC) {
-        state->mode = SYNC;
-        state->hold <<= state->bits & 7;
-        state->bits -= state->bits & 7;
-        len = 0;
-        while (state->bits >= 8) {
-            buf[len++] = (unsigned char)(state->hold);
-            state->hold >>= 8;
-            state->bits -= 8;
-        }
-        state->have = 0;
-        syncsearch(&(state->have), buf, len);
-    }
-
-    /* search available input */
-    len = syncsearch(&(state->have), strm->next_in, strm->avail_in);
-    strm->avail_in -= len;
-    strm->next_in += len;
-    strm->total_in += len;
-
-    /* return no joy or set up to restart inflate() on a new block */
-    if (state->have != 4) return Z_DATA_ERROR;
-    in = strm->total_in;  out = strm->total_out;
-    inflateReset(strm);
-    strm->total_in = in;  strm->total_out = out;
-    state->mode = TYPE;
-    return Z_OK;
-}
-
-/*
-   Returns true if inflate is currently at the end of a block generated by
-   Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
-   implementation to provide an additional safety check. PPP uses
-   Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
-   block. When decompressing, PPP checks that at the end of input packet,
-   inflate is waiting for these length bytes.
- */
-int ZEXPORT inflateSyncPoint(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    return state->mode == STORED && state->bits == 0;
-}
-
-int ZEXPORT inflateCopy(dest, source)
-z_streamp dest;
-z_streamp source;
-{
-    struct inflate_state FAR *state;
-    struct inflate_state FAR *copy;
-    unsigned char FAR *window;
-    unsigned wsize;
-
-    /* check input */
-    if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||
-        source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)
-        return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)source->state;
-
-    /* allocate space */
-    copy = (struct inflate_state FAR *)
-           ZALLOC(source, 1, sizeof(struct inflate_state));
-    if (copy == Z_NULL) return Z_MEM_ERROR;
-    window = Z_NULL;
-    if (state->window != Z_NULL) {
-        window = (unsigned char FAR *)
-                 ZALLOC(source, 1U << state->wbits, sizeof(unsigned char));
-        if (window == Z_NULL) {
-            ZFREE(source, copy);
-            return Z_MEM_ERROR;
-        }
-    }
-
-    /* copy state */
-    zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));
-    zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state));
-    if (state->lencode >= state->codes &&
-        state->lencode <= state->codes + ENOUGH - 1) {
-        copy->lencode = copy->codes + (state->lencode - state->codes);
-        copy->distcode = copy->codes + (state->distcode - state->codes);
-    }
-    copy->next = copy->codes + (state->next - state->codes);
-    if (window != Z_NULL) {
-        wsize = 1U << state->wbits;
-        zmemcpy(window, state->window, wsize);
-    }
-    copy->window = window;
-    dest->state = (struct internal_state FAR *)copy;
-    return Z_OK;
-}
-
-int ZEXPORT inflateUndermine(strm, subvert)
-z_streamp strm;
-int subvert;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    state = (struct inflate_state FAR *)strm->state;
-    state->sane = !subvert;
-#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
-    return Z_OK;
-#else
-    state->sane = 1;
-    return Z_DATA_ERROR;
-#endif
-}
-
-long ZEXPORT inflateMark(strm)
-z_streamp strm;
-{
-    struct inflate_state FAR *state;
-
-    if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
-    state = (struct inflate_state FAR *)strm->state;
-    return ((long)(state->back) << 16) +
-        (state->mode == COPY ? state->length :
-            (state->mode == MATCH ? state->was - state->length : 0));
-}
diff --git a/libs/ext/zlib/inflate.h b/libs/ext/zlib/inflate.h
deleted file mode 100644
index 95f4986..0000000
--- a/libs/ext/zlib/inflate.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* inflate.h -- internal inflate state definition
- * Copyright (C) 1995-2009 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* define NO_GZIP when compiling if you want to disable gzip header and
-   trailer decoding by inflate().  NO_GZIP would be used to avoid linking in
-   the crc code when it is not needed.  For shared libraries, gzip decoding
-   should be left enabled. */
-#ifndef NO_GZIP
-#  define GUNZIP
-#endif
-
-/* Possible inflate modes between inflate() calls */
-typedef enum {
-    HEAD,       /* i: waiting for magic header */
-    FLAGS,      /* i: waiting for method and flags (gzip) */
-    TIME,       /* i: waiting for modification time (gzip) */
-    OS,         /* i: waiting for extra flags and operating system (gzip) */
-    EXLEN,      /* i: waiting for extra length (gzip) */
-    EXTRA,      /* i: waiting for extra bytes (gzip) */
-    NAME,       /* i: waiting for end of file name (gzip) */
-    COMMENT,    /* i: waiting for end of comment (gzip) */
-    HCRC,       /* i: waiting for header crc (gzip) */
-    DICTID,     /* i: waiting for dictionary check value */
-    DICT,       /* waiting for inflateSetDictionary() call */
-        TYPE,       /* i: waiting for type bits, including last-flag bit */
-        TYPEDO,     /* i: same, but skip check to exit inflate on new block */
-        STORED,     /* i: waiting for stored size (length and complement) */
-        COPY_,      /* i/o: same as COPY below, but only first time in */
-        COPY,       /* i/o: waiting for input or output to copy stored block */
-        TABLE,      /* i: waiting for dynamic block table lengths */
-        LENLENS,    /* i: waiting for code length code lengths */
-        CODELENS,   /* i: waiting for length/lit and distance code lengths */
-            LEN_,       /* i: same as LEN below, but only first time in */
-            LEN,        /* i: waiting for length/lit/eob code */
-            LENEXT,     /* i: waiting for length extra bits */
-            DIST,       /* i: waiting for distance code */
-            DISTEXT,    /* i: waiting for distance extra bits */
-            MATCH,      /* o: waiting for output space to copy string */
-            LIT,        /* o: waiting for output space to write literal */
-    CHECK,      /* i: waiting for 32-bit check value */
-    LENGTH,     /* i: waiting for 32-bit length (gzip) */
-    DONE,       /* finished check, done -- remain here until reset */
-    BAD,        /* got a data error -- remain here until reset */
-    MEM,        /* got an inflate() memory error -- remain here until reset */
-    SYNC        /* looking for synchronization bytes to restart inflate() */
-} inflate_mode;
-
-/*
-    State transitions between above modes -
-
-    (most modes can go to BAD or MEM on error -- not shown for clarity)
-
-    Process header:
-        HEAD -> (gzip) or (zlib) or (raw)
-        (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT ->
-                  HCRC -> TYPE
-        (zlib) -> DICTID or TYPE
-        DICTID -> DICT -> TYPE
-        (raw) -> TYPEDO
-    Read deflate blocks:
-            TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK
-            STORED -> COPY_ -> COPY -> TYPE
-            TABLE -> LENLENS -> CODELENS -> LEN_
-            LEN_ -> LEN
-    Read deflate codes in fixed or dynamic block:
-                LEN -> LENEXT or LIT or TYPE
-                LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
-                LIT -> LEN
-    Process trailer:
-        CHECK -> LENGTH -> DONE
- */
-
-/* state maintained between inflate() calls.  Approximately 10K bytes. */
-struct inflate_state {
-    inflate_mode mode;          /* current inflate mode */
-    int last;                   /* true if processing last block */
-    int wrap;                   /* bit 0 true for zlib, bit 1 true for gzip */
-    int havedict;               /* true if dictionary provided */
-    int flags;                  /* gzip header method and flags (0 if zlib) */
-    unsigned dmax;              /* zlib header max distance (INFLATE_STRICT) */
-    unsigned long check;        /* protected copy of check value */
-    unsigned long total;        /* protected copy of output count */
-    gz_headerp head;            /* where to save gzip header information */
-        /* sliding window */
-    unsigned wbits;             /* log base 2 of requested window size */
-    unsigned wsize;             /* window size or zero if not using window */
-    unsigned whave;             /* valid bytes in the window */
-    unsigned wnext;             /* window write index */
-    unsigned char FAR *window;  /* allocated sliding window, if needed */
-        /* bit accumulator */
-    unsigned long hold;         /* input bit accumulator */
-    unsigned bits;              /* number of bits in "in" */
-        /* for string and stored block copying */
-    unsigned length;            /* literal or length of data to copy */
-    unsigned offset;            /* distance back to copy string from */
-        /* for table and code decoding */
-    unsigned extra;             /* extra bits needed */
-        /* fixed and dynamic code tables */
-    code const FAR *lencode;    /* starting table for length/literal codes */
-    code const FAR *distcode;   /* starting table for distance codes */
-    unsigned lenbits;           /* index bits for lencode */
-    unsigned distbits;          /* index bits for distcode */
-        /* dynamic table building */
-    unsigned ncode;             /* number of code length code lengths */
-    unsigned nlen;              /* number of length code lengths */
-    unsigned ndist;             /* number of distance code lengths */
-    unsigned have;              /* number of code lengths in lens[] */
-    code FAR *next;             /* next available space in codes[] */
-    unsigned short lens[320];   /* temporary storage for code lengths */
-    unsigned short work[288];   /* work area for code table building */
-    code codes[ENOUGH];         /* space for code tables */
-    int sane;                   /* if false, allow invalid distance too far */
-    int back;                   /* bits back of last unprocessed length/lit */
-    unsigned was;               /* initial length of match */
-};
diff --git a/libs/ext/zlib/inftrees.c b/libs/ext/zlib/inftrees.c
deleted file mode 100644
index abcd7c4..0000000
--- a/libs/ext/zlib/inftrees.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-
-#define MAXBITS 15
-
-const char inflate_copyright[] =
-   " inflate 1.2.7 Copyright 1995-2012 Mark Adler ";
-/*
-  If you use the zlib library in a product, an acknowledgment is welcome
-  in the documentation of your product. If for some reason you cannot
-  include such an acknowledgment, I would appreciate that you keep this
-  copyright string in the executable of your product.
- */
-
-/*
-   Build a set of tables to decode the provided canonical Huffman code.
-   The code lengths are lens[0..codes-1].  The result starts at *table,
-   whose indices are 0..2^bits-1.  work is a writable array of at least
-   lens shorts, which is used as a work area.  type is the type of code
-   to be generated, CODES, LENS, or DISTS.  On return, zero is success,
-   -1 is an invalid code, and +1 means that ENOUGH isn't enough.  table
-   on return points to the next available entry's address.  bits is the
-   requested root table index bits, and on return it is the actual root
-   table index bits.  It will differ if the request is greater than the
-   longest code or if it is less than the shortest code.
- */
-int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work)
-codetype type;
-unsigned short FAR *lens;
-unsigned codes;
-code FAR * FAR *table;
-unsigned FAR *bits;
-unsigned short FAR *work;
-{
-    unsigned len;               /* a code's length in bits */
-    unsigned sym;               /* index of code symbols */
-    unsigned min, max;          /* minimum and maximum code lengths */
-    unsigned root;              /* number of index bits for root table */
-    unsigned curr;              /* number of index bits for current table */
-    unsigned drop;              /* code bits to drop for sub-table */
-    int left;                   /* number of prefix codes available */
-    unsigned used;              /* code entries in table used */
-    unsigned huff;              /* Huffman code */
-    unsigned incr;              /* for incrementing code, index */
-    unsigned fill;              /* index for replicating entries */
-    unsigned low;               /* low bits for current root entry */
-    unsigned mask;              /* mask for low root bits */
-    code here;                  /* table entry for duplication */
-    code FAR *next;             /* next available space in table */
-    const unsigned short FAR *base;     /* base value table to use */
-    const unsigned short FAR *extra;    /* extra bits table to use */
-    int end;                    /* use base and extra for symbol > end */
-    unsigned short count[MAXBITS+1];    /* number of codes of each length */
-    unsigned short offs[MAXBITS+1];     /* offsets in table for each length */
-    static const unsigned short lbase[31] = { /* Length codes 257..285 base */
-        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
-        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
-    static const unsigned short lext[31] = { /* Length codes 257..285 extra */
-        16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
-        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 78, 68};
-    static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
-        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
-        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
-        8193, 12289, 16385, 24577, 0, 0};
-    static const unsigned short dext[32] = { /* Distance codes 0..29 extra */
-        16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
-        23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
-        28, 28, 29, 29, 64, 64};
-
-    /*
-       Process a set of code lengths to create a canonical Huffman code.  The
-       code lengths are lens[0..codes-1].  Each length corresponds to the
-       symbols 0..codes-1.  The Huffman code is generated by first sorting the
-       symbols by length from short to long, and retaining the symbol order
-       for codes with equal lengths.  Then the code starts with all zero bits
-       for the first code of the shortest length, and the codes are integer
-       increments for the same length, and zeros are appended as the length
-       increases.  For the deflate format, these bits are stored backwards
-       from their more natural integer increment ordering, and so when the
-       decoding tables are built in the large loop below, the integer codes
-       are incremented backwards.
-
-       This routine assumes, but does not check, that all of the entries in
-       lens[] are in the range 0..MAXBITS.  The caller must assure this.
-       1..MAXBITS is interpreted as that code length.  zero means that that
-       symbol does not occur in this code.
-
-       The codes are sorted by computing a count of codes for each length,
-       creating from that a table of starting indices for each length in the
-       sorted table, and then entering the symbols in order in the sorted
-       table.  The sorted table is work[], with that space being provided by
-       the caller.
-
-       The length counts are used for other purposes as well, i.e. finding
-       the minimum and maximum length codes, determining if there are any
-       codes at all, checking for a valid set of lengths, and looking ahead
-       at length counts to determine sub-table sizes when building the
-       decoding tables.
-     */
-
-    /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
-    for (len = 0; len <= MAXBITS; len++)
-        count[len] = 0;
-    for (sym = 0; sym < codes; sym++)
-        count[lens[sym]]++;
-
-    /* bound code lengths, force root to be within code lengths */
-    root = *bits;
-    for (max = MAXBITS; max >= 1; max--)
-        if (count[max] != 0) break;
-    if (root > max) root = max;
-    if (max == 0) {                     /* no symbols to code at all */
-        here.op = (unsigned char)64;    /* invalid code marker */
-        here.bits = (unsigned char)1;
-        here.val = (unsigned short)0;
-        *(*table)++ = here;             /* make a table to force an error */
-        *(*table)++ = here;
-        *bits = 1;
-        return 0;     /* no symbols, but wait for decoding to report error */
-    }
-    for (min = 1; min < max; min++)
-        if (count[min] != 0) break;
-    if (root < min) root = min;
-
-    /* check for an over-subscribed or incomplete set of lengths */
-    left = 1;
-    for (len = 1; len <= MAXBITS; len++) {
-        left <<= 1;
-        left -= count[len];
-        if (left < 0) return -1;        /* over-subscribed */
-    }
-    if (left > 0 && (type == CODES || max != 1))
-        return -1;                      /* incomplete set */
-
-    /* generate offsets into symbol table for each length for sorting */
-    offs[1] = 0;
-    for (len = 1; len < MAXBITS; len++)
-        offs[len + 1] = offs[len] + count[len];
-
-    /* sort symbols by length, by symbol order within each length */
-    for (sym = 0; sym < codes; sym++)
-        if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym;
-
-    /*
-       Create and fill in decoding tables.  In this loop, the table being
-       filled is at next and has curr index bits.  The code being used is huff
-       with length len.  That code is converted to an index by dropping drop
-       bits off of the bottom.  For codes where len is less than drop + curr,
-       those top drop + curr - len bits are incremented through all values to
-       fill the table with replicated entries.
-
-       root is the number of index bits for the root table.  When len exceeds
-       root, sub-tables are created pointed to by the root entry with an index
-       of the low root bits of huff.  This is saved in low to check for when a
-       new sub-table should be started.  drop is zero when the root table is
-       being filled, and drop is root when sub-tables are being filled.
-
-       When a new sub-table is needed, it is necessary to look ahead in the
-       code lengths to determine what size sub-table is needed.  The length
-       counts are used for this, and so count[] is decremented as codes are
-       entered in the tables.
-
-       used keeps track of how many table entries have been allocated from the
-       provided *table space.  It is checked for LENS and DIST tables against
-       the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
-       the initial root table size constants.  See the comments in inftrees.h
-       for more information.
-
-       sym increments through all symbols, and the loop terminates when
-       all codes of length max, i.e. all codes, have been processed.  This
-       routine permits incomplete codes, so another loop after this one fills
-       in the rest of the decoding tables with invalid code markers.
-     */
-
-    /* set up for code type */
-    switch (type) {
-    case CODES:
-        base = extra = work;    /* dummy value--not used */
-        end = 19;
-        break;
-    case LENS:
-        base = lbase;
-        base -= 257;
-        extra = lext;
-        extra -= 257;
-        end = 256;
-        break;
-    default:            /* DISTS */
-        base = dbase;
-        extra = dext;
-        end = -1;
-    }
-
-    /* initialize state for loop */
-    huff = 0;                   /* starting code */
-    sym = 0;                    /* starting code symbol */
-    len = min;                  /* starting code length */
-    next = *table;              /* current table to fill in */
-    curr = root;                /* current table index bits */
-    drop = 0;                   /* current bits to drop from code for index */
-    low = (unsigned)(-1);       /* trigger new sub-table when len > root */
-    used = 1U << root;          /* use root table entries */
-    mask = used - 1;            /* mask for comparing low */
-
-    /* check available table space */
-    if ((type == LENS && used >= ENOUGH_LENS) ||
-        (type == DISTS && used >= ENOUGH_DISTS))
-        return 1;
-
-    /* process all codes and make table entries */
-    for (;;) {
-        /* create table entry */
-        here.bits = (unsigned char)(len - drop);
-        if ((int)(work[sym]) < end) {
-            here.op = (unsigned char)0;
-            here.val = work[sym];
-        }
-        else if ((int)(work[sym]) > end) {
-            here.op = (unsigned char)(extra[work[sym]]);
-            here.val = base[work[sym]];
-        }
-        else {
-            here.op = (unsigned char)(32 + 64);         /* end of block */
-            here.val = 0;
-        }
-
-        /* replicate for those indices with low len bits equal to huff */
-        incr = 1U << (len - drop);
-        fill = 1U << curr;
-        min = fill;                 /* save offset to next table */
-        do {
-            fill -= incr;
-            next[(huff >> drop) + fill] = here;
-        } while (fill != 0);
-
-        /* backwards increment the len-bit code huff */
-        incr = 1U << (len - 1);
-        while (huff & incr)
-            incr >>= 1;
-        if (incr != 0) {
-            huff &= incr - 1;
-            huff += incr;
-        }
-        else
-            huff = 0;
-
-        /* go to next symbol, update count, len */
-        sym++;
-        if (--(count[len]) == 0) {
-            if (len == max) break;
-            len = lens[work[sym]];
-        }
-
-        /* create new sub-table if needed */
-        if (len > root && (huff & mask) != low) {
-            /* if first time, transition to sub-tables */
-            if (drop == 0)
-                drop = root;
-
-            /* increment past last table */
-            next += min;            /* here min is 1 << curr */
-
-            /* determine length of next table */
-            curr = len - drop;
-            left = (int)(1 << curr);
-            while (curr + drop < max) {
-                left -= count[curr + drop];
-                if (left <= 0) break;
-                curr++;
-                left <<= 1;
-            }
-
-            /* check for enough space */
-            used += 1U << curr;
-            if ((type == LENS && used >= ENOUGH_LENS) ||
-                (type == DISTS && used >= ENOUGH_DISTS))
-                return 1;
-
-            /* point entry in root table to sub-table */
-            low = huff & mask;
-            (*table)[low].op = (unsigned char)curr;
-            (*table)[low].bits = (unsigned char)root;
-            (*table)[low].val = (unsigned short)(next - *table);
-        }
-    }
-
-    /* fill in remaining table entry if code is incomplete (guaranteed to have
-       at most one remaining entry, since if the code is incomplete, the
-       maximum code length that was allowed to get this far is one bit) */
-    if (huff != 0) {
-        here.op = (unsigned char)64;            /* invalid code marker */
-        here.bits = (unsigned char)(len - drop);
-        here.val = (unsigned short)0;
-        next[huff] = here;
-    }
-
-    /* set return parameters */
-    *table += used;
-    *bits = root;
-    return 0;
-}
diff --git a/libs/ext/zlib/inftrees.h b/libs/ext/zlib/inftrees.h
deleted file mode 100644
index baa53a0..0000000
--- a/libs/ext/zlib/inftrees.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995-2005, 2010 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* Structure for decoding tables.  Each entry provides either the
-   information needed to do the operation requested by the code that
-   indexed that table entry, or it provides a pointer to another
-   table that indexes more bits of the code.  op indicates whether
-   the entry is a pointer to another table, a literal, a length or
-   distance, an end-of-block, or an invalid code.  For a table
-   pointer, the low four bits of op is the number of index bits of
-   that table.  For a length or distance, the low four bits of op
-   is the number of extra bits to get after the code.  bits is
-   the number of bits in this code or part of the code to drop off
-   of the bit buffer.  val is the actual byte to output in the case
-   of a literal, the base length or distance, or the offset from
-   the current table to the next table.  Each entry is four bytes. */
-typedef struct {
-    unsigned char op;           /* operation, extra bits, table bits */
-    unsigned char bits;         /* bits in this part of the code */
-    unsigned short val;         /* offset in table or code value */
-} code;
-
-/* op values as set by inflate_table():
-    00000000 - literal
-    0000tttt - table link, tttt != 0 is the number of table index bits
-    0001eeee - length or distance, eeee is the number of extra bits
-    01100000 - end of block
-    01000000 - invalid code
- */
-
-/* Maximum size of the dynamic table.  The maximum number of code structures is
-   1444, which is the sum of 852 for literal/length codes and 592 for distance
-   codes.  These values were found by exhaustive searches using the program
-   examples/enough.c found in the zlib distribtution.  The arguments to that
-   program are the number of symbols, the initial root table size, and the
-   maximum bit length of a code.  "enough 286 9 15" for literal/length codes
-   returns returns 852, and "enough 30 6 15" for distance codes returns 592.
-   The initial root table size (9 or 6) is found in the fifth argument of the
-   inflate_table() calls in inflate.c and infback.c.  If the root table size is
-   changed, then these maximum sizes would be need to be recalculated and
-   updated. */
-#define ENOUGH_LENS 852
-#define ENOUGH_DISTS 592
-#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS)
-
-/* Type of code to build for inflate_table() */
-typedef enum {
-    CODES,
-    LENS,
-    DISTS
-} codetype;
-
-int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
-                             unsigned codes, code FAR * FAR *table,
-                             unsigned FAR *bits, unsigned short FAR *work));
diff --git a/libs/ext/zlib/libz.def b/libs/ext/zlib/libz.def
deleted file mode 100644
index 0489615..0000000
--- a/libs/ext/zlib/libz.def
+++ /dev/null
@@ -1,84 +0,0 @@
-; zlib data compression library
-EXPORTS
-; basic functions
-    zlibVersion
-    deflate
-    deflateEnd
-    inflate
-    inflateEnd
-; advanced functions
-    deflateSetDictionary
-    deflateCopy
-    deflateReset
-    deflateParams
-    deflateTune
-    deflateBound
-    deflatePending
-    deflatePrime
-    deflateSetHeader
-    inflateSetDictionary
-    inflateSync
-    inflateCopy
-    inflateReset
-    inflateReset2
-    inflatePrime
-    inflateMark
-    inflateGetHeader
-    inflateBack
-    inflateBackEnd
-    zlibCompileFlags
-; utility functions
-    compress
-    compress2
-    compressBound
-    uncompress
-    gzopen
-    gzdopen
-    gzbuffer
-    gzsetparams
-    gzread
-    gzwrite
-    gzprintf
-    gzputs
-    gzgets
-    gzputc
-    gzgetc
-    gzungetc
-    gzflush
-    gzseek
-    gzrewind
-    gztell
-    gzoffset
-    gzeof
-    gzdirect
-    gzclose
-    gzclose_r
-    gzclose_w
-    gzerror
-    gzclearerr
-; large file functions
-    gzopen64
-    gzseek64
-    gztell64
-    gzoffset64
-    adler32_combine64
-    crc32_combine64
-; checksum functions
-    adler32
-    crc32
-    adler32_combine
-    crc32_combine
-; various hacks, don't look :)
-    deflateInit_
-    deflateInit2_
-    inflateInit_
-    inflateInit2_
-    inflateBackInit_
-    gzgetc_
-    zError
-    inflateSyncPoint
-    get_crc_table
-    inflateUndermine
-    inflateResetKeep
-    deflateResetKeep
-    gzopen_w
diff --git a/libs/ext/zlib/libz.vers b/libs/ext/zlib/libz.vers
deleted file mode 100644
index c04c650..0000000
--- a/libs/ext/zlib/libz.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.2.7
diff --git a/libs/ext/zlib/trees.c b/libs/ext/zlib/trees.c
deleted file mode 100644
index 8c32b21..0000000
--- a/libs/ext/zlib/trees.c
+++ /dev/null
@@ -1,1224 +0,0 @@
-/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-2012 Jean-loup Gailly
- * detect_data_type() function provided freely by Cosmin Truta, 2006
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- *  ALGORITHM
- *
- *      The "deflation" process uses several Huffman trees. The more
- *      common source values are represented by shorter bit sequences.
- *
- *      Each code tree is stored in a compressed form which is itself
- * a Huffman encoding of the lengths of all the code strings (in
- * ascending order by source values).  The actual code strings are
- * reconstructed from the lengths in the inflate process, as described
- * in the deflate specification.
- *
- *  REFERENCES
- *
- *      Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
- *      Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
- *
- *      Storer, James A.
- *          Data Compression:  Methods and Theory, pp. 49-50.
- *          Computer Science Press, 1988.  ISBN 0-7167-8156-5.
- *
- *      Sedgewick, R.
- *          Algorithms, p290.
- *          Addison-Wesley, 1983. ISBN 0-201-06672-6.
- */
-
-/* @(#) $Id$ */
-
-/* #define GEN_TREES_H */
-
-#include "deflate.h"
-
-#ifdef DEBUG
-#  include <ctype.h>
-#endif
-
-/* ===========================================================================
- * Constants
- */
-
-#define MAX_BL_BITS 7
-/* Bit length codes must not exceed MAX_BL_BITS bits */
-
-#define END_BLOCK 256
-/* end of block literal code */
-
-#define REP_3_6      16
-/* repeat previous bit length 3-6 times (2 bits of repeat count) */
-
-#define REPZ_3_10    17
-/* repeat a zero length 3-10 times  (3 bits of repeat count) */
-
-#define REPZ_11_138  18
-/* repeat a zero length 11-138 times  (7 bits of repeat count) */
-
-local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
-   = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
-
-local const int extra_dbits[D_CODES] /* extra bits for each distance code */
-   = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
-
-local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */
-   = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
-
-local const uch bl_order[BL_CODES]
-   = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
-/* The lengths of the bit length codes are sent in order of decreasing
- * probability, to avoid transmitting the lengths for unused bit length codes.
- */
-
-/* ===========================================================================
- * Local data. These are initialized only once.
- */
-
-#define DIST_CODE_LEN  512 /* see definition of array dist_code below */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
-/* non ANSI compilers may not accept trees.h */
-
-local ct_data static_ltree[L_CODES+2];
-/* The static literal tree. Since the bit lengths are imposed, there is no
- * need for the L_CODES extra codes used during heap construction. However
- * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
- * below).
- */
-
-local ct_data static_dtree[D_CODES];
-/* The static distance tree. (Actually a trivial tree since all codes use
- * 5 bits.)
- */
-
-uch _dist_code[DIST_CODE_LEN];
-/* Distance codes. The first 256 values correspond to the distances
- * 3 .. 258, the last 256 values correspond to the top 8 bits of
- * the 15 bit distances.
- */
-
-uch _length_code[MAX_MATCH-MIN_MATCH+1];
-/* length code for each normalized match length (0 == MIN_MATCH) */
-
-local int base_length[LENGTH_CODES];
-/* First normalized length for each code (0 = MIN_MATCH) */
-
-local int base_dist[D_CODES];
-/* First normalized distance for each code (0 = distance of 1) */
-
-#else
-#  include "trees.h"
-#endif /* GEN_TREES_H */
-
-struct static_tree_desc_s {
-    const ct_data *static_tree;  /* static tree or NULL */
-    const intf *extra_bits;      /* extra bits for each code or NULL */
-    int     extra_base;          /* base index for extra_bits */
-    int     elems;               /* max number of elements in the tree */
-    int     max_length;          /* max bit length for the codes */
-};
-
-local static_tree_desc  static_l_desc =
-{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
-
-local static_tree_desc  static_d_desc =
-{static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS};
-
-local static_tree_desc  static_bl_desc =
-{(const ct_data *)0, extra_blbits, 0,   BL_CODES, MAX_BL_BITS};
-
-/* ===========================================================================
- * Local (static) routines in this file.
- */
-
-local void tr_static_init OF((void));
-local void init_block     OF((deflate_state *s));
-local void pqdownheap     OF((deflate_state *s, ct_data *tree, int k));
-local void gen_bitlen     OF((deflate_state *s, tree_desc *desc));
-local void gen_codes      OF((ct_data *tree, int max_code, ushf *bl_count));
-local void build_tree     OF((deflate_state *s, tree_desc *desc));
-local void scan_tree      OF((deflate_state *s, ct_data *tree, int max_code));
-local void send_tree      OF((deflate_state *s, ct_data *tree, int max_code));
-local int  build_bl_tree  OF((deflate_state *s));
-local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
-                              int blcodes));
-local void compress_block OF((deflate_state *s, ct_data *ltree,
-                              ct_data *dtree));
-local int  detect_data_type OF((deflate_state *s));
-local unsigned bi_reverse OF((unsigned value, int length));
-local void bi_windup      OF((deflate_state *s));
-local void bi_flush       OF((deflate_state *s));
-local void copy_block     OF((deflate_state *s, charf *buf, unsigned len,
-                              int header));
-
-#ifdef GEN_TREES_H
-local void gen_trees_header OF((void));
-#endif
-
-#ifndef DEBUG
-#  define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
-   /* Send a code of the given tree. c and tree must not have side effects */
-
-#else /* DEBUG */
-#  define send_code(s, c, tree) \
-     { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
-       send_bits(s, tree[c].Code, tree[c].Len); }
-#endif
-
-/* ===========================================================================
- * Output a short LSB first on the stream.
- * IN assertion: there is enough room in pendingBuf.
- */
-#define put_short(s, w) { \
-    put_byte(s, (uch)((w) & 0xff)); \
-    put_byte(s, (uch)((ush)(w) >> 8)); \
-}
-
-/* ===========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
-#ifdef DEBUG
-local void send_bits      OF((deflate_state *s, int value, int length));
-
-local void send_bits(s, value, length)
-    deflate_state *s;
-    int value;  /* value to send */
-    int length; /* number of bits */
-{
-    Tracevv((stderr," l %2d v %4x ", length, value));
-    Assert(length > 0 && length <= 15, "invalid length");
-    s->bits_sent += (ulg)length;
-
-    /* If not enough room in bi_buf, use (valid) bits from bi_buf and
-     * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
-     * unused bits in value.
-     */
-    if (s->bi_valid > (int)Buf_size - length) {
-        s->bi_buf |= (ush)value << s->bi_valid;
-        put_short(s, s->bi_buf);
-        s->bi_buf = (ush)value >> (Buf_size - s->bi_valid);
-        s->bi_valid += length - Buf_size;
-    } else {
-        s->bi_buf |= (ush)value << s->bi_valid;
-        s->bi_valid += length;
-    }
-}
-#else /* !DEBUG */
-
-#define send_bits(s, value, length) \
-{ int len = length;\
-  if (s->bi_valid > (int)Buf_size - len) {\
-    int val = value;\
-    s->bi_buf |= (ush)val << s->bi_valid;\
-    put_short(s, s->bi_buf);\
-    s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
-    s->bi_valid += len - Buf_size;\
-  } else {\
-    s->bi_buf |= (ush)(value) << s->bi_valid;\
-    s->bi_valid += len;\
-  }\
-}
-#endif /* DEBUG */
-
-
-/* the arguments must not have side effects */
-
-/* ===========================================================================
- * Initialize the various 'constant' tables.
- */
-local void tr_static_init()
-{
-#if defined(GEN_TREES_H) || !defined(STDC)
-    static int static_init_done = 0;
-    int n;        /* iterates over tree elements */
-    int bits;     /* bit counter */
-    int length;   /* length value */
-    int code;     /* code value */
-    int dist;     /* distance index */
-    ush bl_count[MAX_BITS+1];
-    /* number of codes at each bit length for an optimal tree */
-
-    if (static_init_done) return;
-
-    /* For some embedded targets, global variables are not initialized: */
-#ifdef NO_INIT_GLOBAL_POINTERS
-    static_l_desc.static_tree = static_ltree;
-    static_l_desc.extra_bits = extra_lbits;
-    static_d_desc.static_tree = static_dtree;
-    static_d_desc.extra_bits = extra_dbits;
-    static_bl_desc.extra_bits = extra_blbits;
-#endif
-
-    /* Initialize the mapping length (0..255) -> length code (0..28) */
-    length = 0;
-    for (code = 0; code < LENGTH_CODES-1; code++) {
-        base_length[code] = length;
-        for (n = 0; n < (1<<extra_lbits[code]); n++) {
-            _length_code[length++] = (uch)code;
-        }
-    }
-    Assert (length == 256, "tr_static_init: length != 256");
-    /* Note that the length 255 (match length 258) can be represented
-     * in two different ways: code 284 + 5 bits or code 285, so we
-     * overwrite length_code[255] to use the best encoding:
-     */
-    _length_code[length-1] = (uch)code;
-
-    /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
-    dist = 0;
-    for (code = 0 ; code < 16; code++) {
-        base_dist[code] = dist;
-        for (n = 0; n < (1<<extra_dbits[code]); n++) {
-            _dist_code[dist++] = (uch)code;
-        }
-    }
-    Assert (dist == 256, "tr_static_init: dist != 256");
-    dist >>= 7; /* from now on, all distances are divided by 128 */
-    for ( ; code < D_CODES; code++) {
-        base_dist[code] = dist << 7;
-        for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
-            _dist_code[256 + dist++] = (uch)code;
-        }
-    }
-    Assert (dist == 256, "tr_static_init: 256+dist != 512");
-
-    /* Construct the codes of the static literal tree */
-    for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
-    n = 0;
-    while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++;
-    while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++;
-    while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++;
-    while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++;
-    /* Codes 286 and 287 do not exist, but we must include them in the
-     * tree construction to get a canonical Huffman tree (longest code
-     * all ones)
-     */
-    gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
-
-    /* The static distance tree is trivial: */
-    for (n = 0; n < D_CODES; n++) {
-        static_dtree[n].Len = 5;
-        static_dtree[n].Code = bi_reverse((unsigned)n, 5);
-    }
-    static_init_done = 1;
-
-#  ifdef GEN_TREES_H
-    gen_trees_header();
-#  endif
-#endif /* defined(GEN_TREES_H) || !defined(STDC) */
-}
-
-/* ===========================================================================
- * Genererate the file trees.h describing the static trees.
- */
-#ifdef GEN_TREES_H
-#  ifndef DEBUG
-#    include <stdio.h>
-#  endif
-
-#  define SEPARATOR(i, last, width) \
-      ((i) == (last)? "\n};\n\n" :    \
-       ((i) % (width) == (width)-1 ? ",\n" : ", "))
-
-void gen_trees_header()
-{
-    FILE *header = fopen("trees.h", "w");
-    int i;
-
-    Assert (header != NULL, "Can't open trees.h");
-    fprintf(header,
-            "/* header created automatically with -DGEN_TREES_H */\n\n");
-
-    fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n");
-    for (i = 0; i < L_CODES+2; i++) {
-        fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code,
-                static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5));
-    }
-
-    fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n");
-    for (i = 0; i < D_CODES; i++) {
-        fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code,
-                static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5));
-    }
-
-    fprintf(header, "const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {\n");
-    for (i = 0; i < DIST_CODE_LEN; i++) {
-        fprintf(header, "%2u%s", _dist_code[i],
-                SEPARATOR(i, DIST_CODE_LEN-1, 20));
-    }
-
-    fprintf(header,
-        "const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {\n");
-    for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) {
-        fprintf(header, "%2u%s", _length_code[i],
-                SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20));
-    }
-
-    fprintf(header, "local const int base_length[LENGTH_CODES] = {\n");
-    for (i = 0; i < LENGTH_CODES; i++) {
-        fprintf(header, "%1u%s", base_length[i],
-                SEPARATOR(i, LENGTH_CODES-1, 20));
-    }
-
-    fprintf(header, "local const int base_dist[D_CODES] = {\n");
-    for (i = 0; i < D_CODES; i++) {
-        fprintf(header, "%5u%s", base_dist[i],
-                SEPARATOR(i, D_CODES-1, 10));
-    }
-
-    fclose(header);
-}
-#endif /* GEN_TREES_H */
-
-/* ===========================================================================
- * Initialize the tree data structures for a new zlib stream.
- */
-void ZLIB_INTERNAL _tr_init(s)
-    deflate_state *s;
-{
-    tr_static_init();
-
-    s->l_desc.dyn_tree = s->dyn_ltree;
-    s->l_desc.stat_desc = &static_l_desc;
-
-    s->d_desc.dyn_tree = s->dyn_dtree;
-    s->d_desc.stat_desc = &static_d_desc;
-
-    s->bl_desc.dyn_tree = s->bl_tree;
-    s->bl_desc.stat_desc = &static_bl_desc;
-
-    s->bi_buf = 0;
-    s->bi_valid = 0;
-#ifdef DEBUG
-    s->compressed_len = 0L;
-    s->bits_sent = 0L;
-#endif
-
-    /* Initialize the first block of the first file: */
-    init_block(s);
-}
-
-/* ===========================================================================
- * Initialize a new block.
- */
-local void init_block(s)
-    deflate_state *s;
-{
-    int n; /* iterates over tree elements */
-
-    /* Initialize the trees. */
-    for (n = 0; n < L_CODES;  n++) s->dyn_ltree[n].Freq = 0;
-    for (n = 0; n < D_CODES;  n++) s->dyn_dtree[n].Freq = 0;
-    for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
-
-    s->dyn_ltree[END_BLOCK].Freq = 1;
-    s->opt_len = s->static_len = 0L;
-    s->last_lit = s->matches = 0;
-}
-
-#define SMALLEST 1
-/* Index within the heap array of least frequent node in the Huffman tree */
-
-
-/* ===========================================================================
- * Remove the smallest element from the heap and recreate the heap with
- * one less element. Updates heap and heap_len.
- */
-#define pqremove(s, tree, top) \
-{\
-    top = s->heap[SMALLEST]; \
-    s->heap[SMALLEST] = s->heap[s->heap_len--]; \
-    pqdownheap(s, tree, SMALLEST); \
-}
-
-/* ===========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
-#define smaller(tree, n, m, depth) \
-   (tree[n].Freq < tree[m].Freq || \
-   (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
-
-/* ===========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
-local void pqdownheap(s, tree, k)
-    deflate_state *s;
-    ct_data *tree;  /* the tree to restore */
-    int k;               /* node to move down */
-{
-    int v = s->heap[k];
-    int j = k << 1;  /* left son of k */
-    while (j <= s->heap_len) {
-        /* Set j to the smallest of the two sons: */
-        if (j < s->heap_len &&
-            smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
-            j++;
-        }
-        /* Exit if v is smaller than both sons */
-        if (smaller(tree, v, s->heap[j], s->depth)) break;
-
-        /* Exchange v with the smallest son */
-        s->heap[k] = s->heap[j];  k = j;
-
-        /* And continue down the tree, setting j to the left son of k */
-        j <<= 1;
-    }
-    s->heap[k] = v;
-}
-
-/* ===========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- *    above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- *     array bl_count contains the frequencies for each bit length.
- *     The length opt_len is updated; static_len is also updated if stree is
- *     not null.
- */
-local void gen_bitlen(s, desc)
-    deflate_state *s;
-    tree_desc *desc;    /* the tree descriptor */
-{
-    ct_data *tree        = desc->dyn_tree;
-    int max_code         = desc->max_code;
-    const ct_data *stree = desc->stat_desc->static_tree;
-    const intf *extra    = desc->stat_desc->extra_bits;
-    int base             = desc->stat_desc->extra_base;
-    int max_length       = desc->stat_desc->max_length;
-    int h;              /* heap index */
-    int n, m;           /* iterate over the tree elements */
-    int bits;           /* bit length */
-    int xbits;          /* extra bits */
-    ush f;              /* frequency */
-    int overflow = 0;   /* number of elements with bit length too large */
-
-    for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
-
-    /* In a first pass, compute the optimal bit lengths (which may
-     * overflow in the case of the bit length tree).
-     */
-    tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
-
-    for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
-        n = s->heap[h];
-        bits = tree[tree[n].Dad].Len + 1;
-        if (bits > max_length) bits = max_length, overflow++;
-        tree[n].Len = (ush)bits;
-        /* We overwrite tree[n].Dad which is no longer needed */
-
-        if (n > max_code) continue; /* not a leaf node */
-
-        s->bl_count[bits]++;
-        xbits = 0;
-        if (n >= base) xbits = extra[n-base];
-        f = tree[n].Freq;
-        s->opt_len += (ulg)f * (bits + xbits);
-        if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
-    }
-    if (overflow == 0) return;
-
-    Trace((stderr,"\nbit length overflow\n"));
-    /* This happens for example on obj2 and pic of the Calgary corpus */
-
-    /* Find the first bit length which could increase: */
-    do {
-        bits = max_length-1;
-        while (s->bl_count[bits] == 0) bits--;
-        s->bl_count[bits]--;      /* move one leaf down the tree */
-        s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
-        s->bl_count[max_length]--;
-        /* The brother of the overflow item also moves one step up,
-         * but this does not affect bl_count[max_length]
-         */
-        overflow -= 2;
-    } while (overflow > 0);
-
-    /* Now recompute all bit lengths, scanning in increasing frequency.
-     * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
-     * lengths instead of fixing only the wrong ones. This idea is taken
-     * from 'ar' written by Haruhiko Okumura.)
-     */
-    for (bits = max_length; bits != 0; bits--) {
-        n = s->bl_count[bits];
-        while (n != 0) {
-            m = s->heap[--h];
-            if (m > max_code) continue;
-            if ((unsigned) tree[m].Len != (unsigned) bits) {
-                Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
-                s->opt_len += ((long)bits - (long)tree[m].Len)
-                              *(long)tree[m].Freq;
-                tree[m].Len = (ush)bits;
-            }
-            n--;
-        }
-    }
-}
-
-/* ===========================================================================
- * Generate the codes for a given tree and bit counts (which need not be
- * optimal).
- * IN assertion: the array bl_count contains the bit length statistics for
- * the given tree and the field len is set for all tree elements.
- * OUT assertion: the field code is set for all tree elements of non
- *     zero code length.
- */
-local void gen_codes (tree, max_code, bl_count)
-    ct_data *tree;             /* the tree to decorate */
-    int max_code;              /* largest code with non zero frequency */
-    ushf *bl_count;            /* number of codes at each bit length */
-{
-    ush next_code[MAX_BITS+1]; /* next code value for each bit length */
-    ush code = 0;              /* running code value */
-    int bits;                  /* bit index */
-    int n;                     /* code index */
-
-    /* The distribution counts are first used to generate the code values
-     * without bit reversal.
-     */
-    for (bits = 1; bits <= MAX_BITS; bits++) {
-        next_code[bits] = code = (code + bl_count[bits-1]) << 1;
-    }
-    /* Check that the bit counts in bl_count are consistent. The last code
-     * must be all ones.
-     */
-    Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
-            "inconsistent bit counts");
-    Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
-
-    for (n = 0;  n <= max_code; n++) {
-        int len = tree[n].Len;
-        if (len == 0) continue;
-        /* Now reverse the bits */
-        tree[n].Code = bi_reverse(next_code[len]++, len);
-
-        Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
-             n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
-    }
-}
-
-/* ===========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- *     and corresponding code. The length opt_len is updated; static_len is
- *     also updated if stree is not null. The field max_code is set.
- */
-local void build_tree(s, desc)
-    deflate_state *s;
-    tree_desc *desc; /* the tree descriptor */
-{
-    ct_data *tree         = desc->dyn_tree;
-    const ct_data *stree  = desc->stat_desc->static_tree;
-    int elems             = desc->stat_desc->elems;
-    int n, m;          /* iterate over heap elements */
-    int max_code = -1; /* largest code with non zero frequency */
-    int node;          /* new node being created */
-
-    /* Construct the initial heap, with least frequent element in
-     * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
-     * heap[0] is not used.
-     */
-    s->heap_len = 0, s->heap_max = HEAP_SIZE;
-
-    for (n = 0; n < elems; n++) {
-        if (tree[n].Freq != 0) {
-            s->heap[++(s->heap_len)] = max_code = n;
-            s->depth[n] = 0;
-        } else {
-            tree[n].Len = 0;
-        }
-    }
-
-    /* The pkzip format requires that at least one distance code exists,
-     * and that at least one bit should be sent even if there is only one
-     * possible code. So to avoid special checks later on we force at least
-     * two codes of non zero frequency.
-     */
-    while (s->heap_len < 2) {
-        node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0);
-        tree[node].Freq = 1;
-        s->depth[node] = 0;
-        s->opt_len--; if (stree) s->static_len -= stree[node].Len;
-        /* node is 0 or 1 so it does not have extra bits */
-    }
-    desc->max_code = max_code;
-
-    /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
-     * establish sub-heaps of increasing lengths:
-     */
-    for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
-
-    /* Construct the Huffman tree by repeatedly combining the least two
-     * frequent nodes.
-     */
-    node = elems;              /* next internal node of the tree */
-    do {
-        pqremove(s, tree, n);  /* n = node of least frequency */
-        m = s->heap[SMALLEST]; /* m = node of next least frequency */
-
-        s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */
-        s->heap[--(s->heap_max)] = m;
-
-        /* Create a new node father of n and m */
-        tree[node].Freq = tree[n].Freq + tree[m].Freq;
-        s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ?
-                                s->depth[n] : s->depth[m]) + 1);
-        tree[n].Dad = tree[m].Dad = (ush)node;
-#ifdef DUMP_BL_TREE
-        if (tree == s->bl_tree) {
-            fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)",
-                    node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
-        }
-#endif
-        /* and insert the new node in the heap */
-        s->heap[SMALLEST] = node++;
-        pqdownheap(s, tree, SMALLEST);
-
-    } while (s->heap_len >= 2);
-
-    s->heap[--(s->heap_max)] = s->heap[SMALLEST];
-
-    /* At this point, the fields freq and dad are set. We can now
-     * generate the bit lengths.
-     */
-    gen_bitlen(s, (tree_desc *)desc);
-
-    /* The field len is now set, we can generate the bit codes */
-    gen_codes ((ct_data *)tree, max_code, s->bl_count);
-}
-
-/* ===========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree.
- */
-local void scan_tree (s, tree, max_code)
-    deflate_state *s;
-    ct_data *tree;   /* the tree to be scanned */
-    int max_code;    /* and its largest code of non zero frequency */
-{
-    int n;                     /* iterates over all tree elements */
-    int prevlen = -1;          /* last emitted length */
-    int curlen;                /* length of current code */
-    int nextlen = tree[0].Len; /* length of next code */
-    int count = 0;             /* repeat count of the current code */
-    int max_count = 7;         /* max repeat count */
-    int min_count = 4;         /* min repeat count */
-
-    if (nextlen == 0) max_count = 138, min_count = 3;
-    tree[max_code+1].Len = (ush)0xffff; /* guard */
-
-    for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
-        if (++count < max_count && curlen == nextlen) {
-            continue;
-        } else if (count < min_count) {
-            s->bl_tree[curlen].Freq += count;
-        } else if (curlen != 0) {
-            if (curlen != prevlen) s->bl_tree[curlen].Freq++;
-            s->bl_tree[REP_3_6].Freq++;
-        } else if (count <= 10) {
-            s->bl_tree[REPZ_3_10].Freq++;
-        } else {
-            s->bl_tree[REPZ_11_138].Freq++;
-        }
-        count = 0; prevlen = curlen;
-        if (nextlen == 0) {
-            max_count = 138, min_count = 3;
-        } else if (curlen == nextlen) {
-            max_count = 6, min_count = 3;
-        } else {
-            max_count = 7, min_count = 4;
-        }
-    }
-}
-
-/* ===========================================================================
- * Send a literal or distance tree in compressed form, using the codes in
- * bl_tree.
- */
-local void send_tree (s, tree, max_code)
-    deflate_state *s;
-    ct_data *tree; /* the tree to be scanned */
-    int max_code;       /* and its largest code of non zero frequency */
-{
-    int n;                     /* iterates over all tree elements */
-    int prevlen = -1;          /* last emitted length */
-    int curlen;                /* length of current code */
-    int nextlen = tree[0].Len; /* length of next code */
-    int count = 0;             /* repeat count of the current code */
-    int max_count = 7;         /* max repeat count */
-    int min_count = 4;         /* min repeat count */
-
-    /* tree[max_code+1].Len = -1; */  /* guard already set */
-    if (nextlen == 0) max_count = 138, min_count = 3;
-
-    for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
-        if (++count < max_count && curlen == nextlen) {
-            continue;
-        } else if (count < min_count) {
-            do { send_code(s, curlen, s->bl_tree); } while (--count != 0);
-
-        } else if (curlen != 0) {
-            if (curlen != prevlen) {
-                send_code(s, curlen, s->bl_tree); count--;
-            }
-            Assert(count >= 3 && count <= 6, " 3_6?");
-            send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
-
-        } else if (count <= 10) {
-            send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
-
-        } else {
-            send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
-        }
-        count = 0; prevlen = curlen;
-        if (nextlen == 0) {
-            max_count = 138, min_count = 3;
-        } else if (curlen == nextlen) {
-            max_count = 6, min_count = 3;
-        } else {
-            max_count = 7, min_count = 4;
-        }
-    }
-}
-
-/* ===========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
-local int build_bl_tree(s)
-    deflate_state *s;
-{
-    int max_blindex;  /* index of last bit length code of non zero freq */
-
-    /* Determine the bit length frequencies for literal and distance trees */
-    scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code);
-    scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code);
-
-    /* Build the bit length tree: */
-    build_tree(s, (tree_desc *)(&(s->bl_desc)));
-    /* opt_len now includes the length of the tree representations, except
-     * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
-     */
-
-    /* Determine the number of bit length codes to send. The pkzip format
-     * requires that at least 4 bit length codes be sent. (appnote.txt says
-     * 3 but the actual value used is 4.)
-     */
-    for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {
-        if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
-    }
-    /* Update opt_len to include the bit length tree and counts */
-    s->opt_len += 3*(max_blindex+1) + 5+5+4;
-    Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
-            s->opt_len, s->static_len));
-
-    return max_blindex;
-}
-
-/* ===========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
-local void send_all_trees(s, lcodes, dcodes, blcodes)
-    deflate_state *s;
-    int lcodes, dcodes, blcodes; /* number of codes for each tree */
-{
-    int rank;                    /* index in bl_order */
-
-    Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
-    Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
-            "too many codes");
-    Tracev((stderr, "\nbl counts: "));
-    send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
-    send_bits(s, dcodes-1,   5);
-    send_bits(s, blcodes-4,  4); /* not -3 as stated in appnote.txt */
-    for (rank = 0; rank < blcodes; rank++) {
-        Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
-        send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
-    }
-    Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
-
-    send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
-    Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
-
-    send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
-    Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
-}
-
-/* ===========================================================================
- * Send a stored block
- */
-void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last)
-    deflate_state *s;
-    charf *buf;       /* input block */
-    ulg stored_len;   /* length of input block */
-    int last;         /* one if this is the last block for a file */
-{
-    send_bits(s, (STORED_BLOCK<<1)+last, 3);    /* send block type */
-#ifdef DEBUG
-    s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
-    s->compressed_len += (stored_len + 4) << 3;
-#endif
-    copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
-}
-
-/* ===========================================================================
- * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
- */
-void ZLIB_INTERNAL _tr_flush_bits(s)
-    deflate_state *s;
-{
-    bi_flush(s);
-}
-
-/* ===========================================================================
- * Send one empty static block to give enough lookahead for inflate.
- * This takes 10 bits, of which 7 may remain in the bit buffer.
- */
-void ZLIB_INTERNAL _tr_align(s)
-    deflate_state *s;
-{
-    send_bits(s, STATIC_TREES<<1, 3);
-    send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
-    s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
-#endif
-    bi_flush(s);
-}
-
-/* ===========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
- */
-void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
-    deflate_state *s;
-    charf *buf;       /* input block, or NULL if too old */
-    ulg stored_len;   /* length of input block */
-    int last;         /* one if this is the last block for a file */
-{
-    ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
-    int max_blindex = 0;  /* index of last bit length code of non zero freq */
-
-    /* Build the Huffman trees unless a stored block is forced */
-    if (s->level > 0) {
-
-        /* Check if the file is binary or text */
-        if (s->strm->data_type == Z_UNKNOWN)
-            s->strm->data_type = detect_data_type(s);
-
-        /* Construct the literal and distance trees */
-        build_tree(s, (tree_desc *)(&(s->l_desc)));
-        Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
-                s->static_len));
-
-        build_tree(s, (tree_desc *)(&(s->d_desc)));
-        Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
-                s->static_len));
-        /* At this point, opt_len and static_len are the total bit lengths of
-         * the compressed block data, excluding the tree representations.
-         */
-
-        /* Build the bit length tree for the above two trees, and get the index
-         * in bl_order of the last bit length code to send.
-         */
-        max_blindex = build_bl_tree(s);
-
-        /* Determine the best encoding. Compute the block lengths in bytes. */
-        opt_lenb = (s->opt_len+3+7)>>3;
-        static_lenb = (s->static_len+3+7)>>3;
-
-        Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
-                opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
-                s->last_lit));
-
-        if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
-
-    } else {
-        Assert(buf != (char*)0, "lost buf");
-        opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
-    }
-
-#ifdef FORCE_STORED
-    if (buf != (char*)0) { /* force stored block */
-#else
-    if (stored_len+4 <= opt_lenb && buf != (char*)0) {
-                       /* 4: two words for the lengths */
-#endif
-        /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
-         * Otherwise we can't have processed more than WSIZE input bytes since
-         * the last block flush, because compression would have been
-         * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
-         * transform a block into a stored block.
-         */
-        _tr_stored_block(s, buf, stored_len, last);
-
-#ifdef FORCE_STATIC
-    } else if (static_lenb >= 0) { /* force static trees */
-#else
-    } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) {
-#endif
-        send_bits(s, (STATIC_TREES<<1)+last, 3);
-        compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
-#ifdef DEBUG
-        s->compressed_len += 3 + s->static_len;
-#endif
-    } else {
-        send_bits(s, (DYN_TREES<<1)+last, 3);
-        send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
-                       max_blindex+1);
-        compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree);
-#ifdef DEBUG
-        s->compressed_len += 3 + s->opt_len;
-#endif
-    }
-    Assert (s->compressed_len == s->bits_sent, "bad compressed size");
-    /* The above check is made mod 2^32, for files larger than 512 MB
-     * and uLong implemented on 32 bits.
-     */
-    init_block(s);
-
-    if (last) {
-        bi_windup(s);
-#ifdef DEBUG
-        s->compressed_len += 7;  /* align on byte boundary */
-#endif
-    }
-    Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
-           s->compressed_len-7*last));
-}
-
-/* ===========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
-int ZLIB_INTERNAL _tr_tally (s, dist, lc)
-    deflate_state *s;
-    unsigned dist;  /* distance of matched string */
-    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
-{
-    s->d_buf[s->last_lit] = (ush)dist;
-    s->l_buf[s->last_lit++] = (uch)lc;
-    if (dist == 0) {
-        /* lc is the unmatched char */
-        s->dyn_ltree[lc].Freq++;
-    } else {
-        s->matches++;
-        /* Here, lc is the match length - MIN_MATCH */
-        dist--;             /* dist = match distance - 1 */
-        Assert((ush)dist < (ush)MAX_DIST(s) &&
-               (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
-               (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
-
-        s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
-        s->dyn_dtree[d_code(dist)].Freq++;
-    }
-
-#ifdef TRUNCATE_BLOCK
-    /* Try to guess if it is profitable to stop the current block here */
-    if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
-        /* Compute an upper bound for the compressed length */
-        ulg out_length = (ulg)s->last_lit*8L;
-        ulg in_length = (ulg)((long)s->strstart - s->block_start);
-        int dcode;
-        for (dcode = 0; dcode < D_CODES; dcode++) {
-            out_length += (ulg)s->dyn_dtree[dcode].Freq *
-                (5L+extra_dbits[dcode]);
-        }
-        out_length >>= 3;
-        Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
-               s->last_lit, in_length, out_length,
-               100L - out_length*100L/in_length));
-        if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
-    }
-#endif
-    return (s->last_lit == s->lit_bufsize-1);
-    /* We avoid equality with lit_bufsize because of wraparound at 64K
-     * on 16 bit machines and because stored blocks are restricted to
-     * 64K-1 bytes.
-     */
-}
-
-/* ===========================================================================
- * Send the block data compressed using the given Huffman trees
- */
-local void compress_block(s, ltree, dtree)
-    deflate_state *s;
-    ct_data *ltree; /* literal tree */
-    ct_data *dtree; /* distance tree */
-{
-    unsigned dist;      /* distance of matched string */
-    int lc;             /* match length or unmatched char (if dist == 0) */
-    unsigned lx = 0;    /* running index in l_buf */
-    unsigned code;      /* the code to send */
-    int extra;          /* number of extra bits to send */
-
-    if (s->last_lit != 0) do {
-        dist = s->d_buf[lx];
-        lc = s->l_buf[lx++];
-        if (dist == 0) {
-            send_code(s, lc, ltree); /* send a literal byte */
-            Tracecv(isgraph(lc), (stderr," '%c' ", lc));
-        } else {
-            /* Here, lc is the match length - MIN_MATCH */
-            code = _length_code[lc];
-            send_code(s, code+LITERALS+1, ltree); /* send the length code */
-            extra = extra_lbits[code];
-            if (extra != 0) {
-                lc -= base_length[code];
-                send_bits(s, lc, extra);       /* send the extra length bits */
-            }
-            dist--; /* dist is now the match distance - 1 */
-            code = d_code(dist);
-            Assert (code < D_CODES, "bad d_code");
-
-            send_code(s, code, dtree);       /* send the distance code */
-            extra = extra_dbits[code];
-            if (extra != 0) {
-                dist -= base_dist[code];
-                send_bits(s, dist, extra);   /* send the extra distance bits */
-            }
-        } /* literal or match pair ? */
-
-        /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
-        Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
-               "pendingBuf overflow");
-
-    } while (lx < s->last_lit);
-
-    send_code(s, END_BLOCK, ltree);
-}
-
-/* ===========================================================================
- * Check if the data type is TEXT or BINARY, using the following algorithm:
- * - TEXT if the two conditions below are satisfied:
- *    a) There are no non-portable control characters belonging to the
- *       "black list" (0..6, 14..25, 28..31).
- *    b) There is at least one printable character belonging to the
- *       "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
- * - BINARY otherwise.
- * - The following partially-portable control characters form a
- *   "gray list" that is ignored in this detection algorithm:
- *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
- * IN assertion: the fields Freq of dyn_ltree are set.
- */
-local int detect_data_type(s)
-    deflate_state *s;
-{
-    /* black_mask is the bit mask of black-listed bytes
-     * set bits 0..6, 14..25, and 28..31
-     * 0xf3ffc07f = binary 11110011111111111100000001111111
-     */
-    unsigned long black_mask = 0xf3ffc07fUL;
-    int n;
-
-    /* Check for non-textual ("black-listed") bytes. */
-    for (n = 0; n <= 31; n++, black_mask >>= 1)
-        if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0))
-            return Z_BINARY;
-
-    /* Check for textual ("white-listed") bytes. */
-    if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0
-            || s->dyn_ltree[13].Freq != 0)
-        return Z_TEXT;
-    for (n = 32; n < LITERALS; n++)
-        if (s->dyn_ltree[n].Freq != 0)
-            return Z_TEXT;
-
-    /* There are no "black-listed" or "white-listed" bytes:
-     * this stream either is empty or has tolerated ("gray-listed") bytes only.
-     */
-    return Z_BINARY;
-}
-
-/* ===========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
-local unsigned bi_reverse(code, len)
-    unsigned code; /* the value to invert */
-    int len;       /* its bit length */
-{
-    register unsigned res = 0;
-    do {
-        res |= code & 1;
-        code >>= 1, res <<= 1;
-    } while (--len > 0);
-    return res >> 1;
-}
-
-/* ===========================================================================
- * Flush the bit buffer, keeping at most 7 bits in it.
- */
-local void bi_flush(s)
-    deflate_state *s;
-{
-    if (s->bi_valid == 16) {
-        put_short(s, s->bi_buf);
-        s->bi_buf = 0;
-        s->bi_valid = 0;
-    } else if (s->bi_valid >= 8) {
-        put_byte(s, (Byte)s->bi_buf);
-        s->bi_buf >>= 8;
-        s->bi_valid -= 8;
-    }
-}
-
-/* ===========================================================================
- * Flush the bit buffer and align the output on a byte boundary
- */
-local void bi_windup(s)
-    deflate_state *s;
-{
-    if (s->bi_valid > 8) {
-        put_short(s, s->bi_buf);
-    } else if (s->bi_valid > 0) {
-        put_byte(s, (Byte)s->bi_buf);
-    }
-    s->bi_buf = 0;
-    s->bi_valid = 0;
-#ifdef DEBUG
-    s->bits_sent = (s->bits_sent+7) & ~7;
-#endif
-}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(s, buf, len, header)
-    deflate_state *s;
-    charf    *buf;    /* the input data */
-    unsigned len;     /* its length */
-    int      header;  /* true if block header must be written */
-{
-    bi_windup(s);        /* align on byte boundary */
-
-    if (header) {
-        put_short(s, (ush)len);
-        put_short(s, (ush)~len);
-#ifdef DEBUG
-        s->bits_sent += 2*16;
-#endif
-    }
-#ifdef DEBUG
-    s->bits_sent += (ulg)len<<3;
-#endif
-    while (len--) {
-        put_byte(s, *buf++);
-    }
-}
diff --git a/libs/ext/zlib/trees.h b/libs/ext/zlib/trees.h
deleted file mode 100644
index d35639d..0000000
--- a/libs/ext/zlib/trees.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* header created automatically with -DGEN_TREES_H */
-
-local const ct_data static_ltree[L_CODES+2] = {
-{{ 12},{  8}}, {{140},{  8}}, {{ 76},{  8}}, {{204},{  8}}, {{ 44},{  8}},
-{{172},{  8}}, {{108},{  8}}, {{236},{  8}}, {{ 28},{  8}}, {{156},{  8}},
-{{ 92},{  8}}, {{220},{  8}}, {{ 60},{  8}}, {{188},{  8}}, {{124},{  8}},
-{{252},{  8}}, {{  2},{  8}}, {{130},{  8}}, {{ 66},{  8}}, {{194},{  8}},
-{{ 34},{  8}}, {{162},{  8}}, {{ 98},{  8}}, {{226},{  8}}, {{ 18},{  8}},
-{{146},{  8}}, {{ 82},{  8}}, {{210},{  8}}, {{ 50},{  8}}, {{178},{  8}},
-{{114},{  8}}, {{242},{  8}}, {{ 10},{  8}}, {{138},{  8}}, {{ 74},{  8}},
-{{202},{  8}}, {{ 42},{  8}}, {{170},{  8}}, {{106},{  8}}, {{234},{  8}},
-{{ 26},{  8}}, {{154},{  8}}, {{ 90},{  8}}, {{218},{  8}}, {{ 58},{  8}},
-{{186},{  8}}, {{122},{  8}}, {{250},{  8}}, {{  6},{  8}}, {{134},{  8}},
-{{ 70},{  8}}, {{198},{  8}}, {{ 38},{  8}}, {{166},{  8}}, {{102},{  8}},
-{{230},{  8}}, {{ 22},{  8}}, {{150},{  8}}, {{ 86},{  8}}, {{214},{  8}},
-{{ 54},{  8}}, {{182},{  8}}, {{118},{  8}}, {{246},{  8}}, {{ 14},{  8}},
-{{142},{  8}}, {{ 78},{  8}}, {{206},{  8}}, {{ 46},{  8}}, {{174},{  8}},
-{{110},{  8}}, {{238},{  8}}, {{ 30},{  8}}, {{158},{  8}}, {{ 94},{  8}},
-{{222},{  8}}, {{ 62},{  8}}, {{190},{  8}}, {{126},{  8}}, {{254},{  8}},
-{{  1},{  8}}, {{129},{  8}}, {{ 65},{  8}}, {{193},{  8}}, {{ 33},{  8}},
-{{161},{  8}}, {{ 97},{  8}}, {{225},{  8}}, {{ 17},{  8}}, {{145},{  8}},
-{{ 81},{  8}}, {{209},{  8}}, {{ 49},{  8}}, {{177},{  8}}, {{113},{  8}},
-{{241},{  8}}, {{  9},{  8}}, {{137},{  8}}, {{ 73},{  8}}, {{201},{  8}},
-{{ 41},{  8}}, {{169},{  8}}, {{105},{  8}}, {{233},{  8}}, {{ 25},{  8}},
-{{153},{  8}}, {{ 89},{  8}}, {{217},{  8}}, {{ 57},{  8}}, {{185},{  8}},
-{{121},{  8}}, {{249},{  8}}, {{  5},{  8}}, {{133},{  8}}, {{ 69},{  8}},
-{{197},{  8}}, {{ 37},{  8}}, {{165},{  8}}, {{101},{  8}}, {{229},{  8}},
-{{ 21},{  8}}, {{149},{  8}}, {{ 85},{  8}}, {{213},{  8}}, {{ 53},{  8}},
-{{181},{  8}}, {{117},{  8}}, {{245},{  8}}, {{ 13},{  8}}, {{141},{  8}},
-{{ 77},{  8}}, {{205},{  8}}, {{ 45},{  8}}, {{173},{  8}}, {{109},{  8}},
-{{237},{  8}}, {{ 29},{  8}}, {{157},{  8}}, {{ 93},{  8}}, {{221},{  8}},
-{{ 61},{  8}}, {{189},{  8}}, {{125},{  8}}, {{253},{  8}}, {{ 19},{  9}},
-{{275},{  9}}, {{147},{  9}}, {{403},{  9}}, {{ 83},{  9}}, {{339},{  9}},
-{{211},{  9}}, {{467},{  9}}, {{ 51},{  9}}, {{307},{  9}}, {{179},{  9}},
-{{435},{  9}}, {{115},{  9}}, {{371},{  9}}, {{243},{  9}}, {{499},{  9}},
-{{ 11},{  9}}, {{267},{  9}}, {{139},{  9}}, {{395},{  9}}, {{ 75},{  9}},
-{{331},{  9}}, {{203},{  9}}, {{459},{  9}}, {{ 43},{  9}}, {{299},{  9}},
-{{171},{  9}}, {{427},{  9}}, {{107},{  9}}, {{363},{  9}}, {{235},{  9}},
-{{491},{  9}}, {{ 27},{  9}}, {{283},{  9}}, {{155},{  9}}, {{411},{  9}},
-{{ 91},{  9}}, {{347},{  9}}, {{219},{  9}}, {{475},{  9}}, {{ 59},{  9}},
-{{315},{  9}}, {{187},{  9}}, {{443},{  9}}, {{123},{  9}}, {{379},{  9}},
-{{251},{  9}}, {{507},{  9}}, {{  7},{  9}}, {{263},{  9}}, {{135},{  9}},
-{{391},{  9}}, {{ 71},{  9}}, {{327},{  9}}, {{199},{  9}}, {{455},{  9}},
-{{ 39},{  9}}, {{295},{  9}}, {{167},{  9}}, {{423},{  9}}, {{103},{  9}},
-{{359},{  9}}, {{231},{  9}}, {{487},{  9}}, {{ 23},{  9}}, {{279},{  9}},
-{{151},{  9}}, {{407},{  9}}, {{ 87},{  9}}, {{343},{  9}}, {{215},{  9}},
-{{471},{  9}}, {{ 55},{  9}}, {{311},{  9}}, {{183},{  9}}, {{439},{  9}},
-{{119},{  9}}, {{375},{  9}}, {{247},{  9}}, {{503},{  9}}, {{ 15},{  9}},
-{{271},{  9}}, {{143},{  9}}, {{399},{  9}}, {{ 79},{  9}}, {{335},{  9}},
-{{207},{  9}}, {{463},{  9}}, {{ 47},{  9}}, {{303},{  9}}, {{175},{  9}},
-{{431},{  9}}, {{111},{  9}}, {{367},{  9}}, {{239},{  9}}, {{495},{  9}},
-{{ 31},{  9}}, {{287},{  9}}, {{159},{  9}}, {{415},{  9}}, {{ 95},{  9}},
-{{351},{  9}}, {{223},{  9}}, {{479},{  9}}, {{ 63},{  9}}, {{319},{  9}},
-{{191},{  9}}, {{447},{  9}}, {{127},{  9}}, {{383},{  9}}, {{255},{  9}},
-{{511},{  9}}, {{  0},{  7}}, {{ 64},{  7}}, {{ 32},{  7}}, {{ 96},{  7}},
-{{ 16},{  7}}, {{ 80},{  7}}, {{ 48},{  7}}, {{112},{  7}}, {{  8},{  7}},
-{{ 72},{  7}}, {{ 40},{  7}}, {{104},{  7}}, {{ 24},{  7}}, {{ 88},{  7}},
-{{ 56},{  7}}, {{120},{  7}}, {{  4},{  7}}, {{ 68},{  7}}, {{ 36},{  7}},
-{{100},{  7}}, {{ 20},{  7}}, {{ 84},{  7}}, {{ 52},{  7}}, {{116},{  7}},
-{{  3},{  8}}, {{131},{  8}}, {{ 67},{  8}}, {{195},{  8}}, {{ 35},{  8}},
-{{163},{  8}}, {{ 99},{  8}}, {{227},{  8}}
-};
-
-local const ct_data static_dtree[D_CODES] = {
-{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
-{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
-{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
-{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
-{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
-{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
-};
-
-const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {
- 0,  1,  2,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8,
- 8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 10,
-10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
-11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  0,  0, 16, 17,
-18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
-};
-
-const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {
- 0,  1,  2,  3,  4,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 12, 12,
-13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
-17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
-19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
-21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
-22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
-};
-
-local const int base_length[LENGTH_CODES] = {
-0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
-64, 80, 96, 112, 128, 160, 192, 224, 0
-};
-
-local const int base_dist[D_CODES] = {
-    0,     1,     2,     3,     4,     6,     8,    12,    16,    24,
-   32,    48,    64,    96,   128,   192,   256,   384,   512,   768,
- 1024,  1536,  2048,  3072,  4096,  6144,  8192, 12288, 16384, 24576
-};
-
diff --git a/libs/ext/zlib/uncompr.c b/libs/ext/zlib/uncompr.c
deleted file mode 100644
index ad98be3..0000000
--- a/libs/ext/zlib/uncompr.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* uncompr.c -- decompress a memory buffer
- * Copyright (C) 1995-2003, 2010 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#define ZLIB_INTERNAL
-#include "zlib.h"
-
-/* ===========================================================================
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer. Upon entry, destLen is the total
-   size of the destination buffer, which must be large enough to hold the
-   entire uncompressed data. (The size of the uncompressed data must have
-   been saved previously by the compressor and transmitted to the decompressor
-   by some mechanism outside the scope of this compression library.)
-   Upon exit, destLen is the actual size of the compressed buffer.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted.
-*/
-int ZEXPORT uncompress (dest, destLen, source, sourceLen)
-    Bytef *dest;
-    uLongf *destLen;
-    const Bytef *source;
-    uLong sourceLen;
-{
-    z_stream stream;
-    int err;
-
-    stream.next_in = (Bytef*)source;
-    stream.avail_in = (uInt)sourceLen;
-    /* Check for source > 64K on 16-bit machine: */
-    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-
-    stream.next_out = dest;
-    stream.avail_out = (uInt)*destLen;
-    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
-
-    stream.zalloc = (alloc_func)0;
-    stream.zfree = (free_func)0;
-
-    err = inflateInit(&stream);
-    if (err != Z_OK) return err;
-
-    err = inflate(&stream, Z_FINISH);
-    if (err != Z_STREAM_END) {
-        inflateEnd(&stream);
-        if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0))
-            return Z_DATA_ERROR;
-        return err;
-    }
-    *destLen = stream.total_out;
-
-    err = inflateEnd(&stream);
-    return err;
-}
diff --git a/libs/ext/zlib/zconf.h b/libs/ext/zlib/zconf.h
deleted file mode 100644
index 8a46a58..0000000
--- a/libs/ext/zlib/zconf.h
+++ /dev/null
@@ -1,506 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2012 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#ifndef ZCONF_H
-#define ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- * Even better than compiling with -DZ_PREFIX would be to use configure to set
- * this permanently in zconf.h using "./configure --zprefix".
- */
-#ifdef Z_PREFIX     /* may be set to #if 1 by ./configure */
-#  define Z_PREFIX_SET
-
-/* all linked symbols */
-#  define _dist_code            z__dist_code
-#  define _length_code          z__length_code
-#  define _tr_align             z__tr_align
-#  define _tr_flush_block       z__tr_flush_block
-#  define _tr_init              z__tr_init
-#  define _tr_stored_block      z__tr_stored_block
-#  define _tr_tally             z__tr_tally
-#  define adler32               z_adler32
-#  define adler32_combine       z_adler32_combine
-#  define adler32_combine64     z_adler32_combine64
-#  ifndef Z_SOLO
-#    define compress              z_compress
-#    define compress2             z_compress2
-#    define compressBound         z_compressBound
-#  endif
-#  define crc32                 z_crc32
-#  define crc32_combine         z_crc32_combine
-#  define crc32_combine64       z_crc32_combine64
-#  define deflate               z_deflate
-#  define deflateBound          z_deflateBound
-#  define deflateCopy           z_deflateCopy
-#  define deflateEnd            z_deflateEnd
-#  define deflateInit2_         z_deflateInit2_
-#  define deflateInit_          z_deflateInit_
-#  define deflateParams         z_deflateParams
-#  define deflatePending        z_deflatePending
-#  define deflatePrime          z_deflatePrime
-#  define deflateReset          z_deflateReset
-#  define deflateResetKeep      z_deflateResetKeep
-#  define deflateSetDictionary  z_deflateSetDictionary
-#  define deflateSetHeader      z_deflateSetHeader
-#  define deflateTune           z_deflateTune
-#  define deflate_copyright     z_deflate_copyright
-#  define get_crc_table         z_get_crc_table
-#  ifndef Z_SOLO
-#    define gz_error              z_gz_error
-#    define gz_intmax             z_gz_intmax
-#    define gz_strwinerror        z_gz_strwinerror
-#    define gzbuffer              z_gzbuffer
-#    define gzclearerr            z_gzclearerr
-#    define gzclose               z_gzclose
-#    define gzclose_r             z_gzclose_r
-#    define gzclose_w             z_gzclose_w
-#    define gzdirect              z_gzdirect
-#    define gzdopen               z_gzdopen
-#    define gzeof                 z_gzeof
-#    define gzerror               z_gzerror
-#    define gzflush               z_gzflush
-#    define gzgetc                z_gzgetc
-#    define gzgetc_               z_gzgetc_
-#    define gzgets                z_gzgets
-#    define gzoffset              z_gzoffset
-#    define gzoffset64            z_gzoffset64
-#    define gzopen                z_gzopen
-#    define gzopen64              z_gzopen64
-#    ifdef _WIN32
-#      define gzopen_w              z_gzopen_w
-#    endif
-#    define gzprintf              z_gzprintf
-#    define gzputc                z_gzputc
-#    define gzputs                z_gzputs
-#    define gzread                z_gzread
-#    define gzrewind              z_gzrewind
-#    define gzseek                z_gzseek
-#    define gzseek64              z_gzseek64
-#    define gzsetparams           z_gzsetparams
-#    define gztell                z_gztell
-#    define gztell64              z_gztell64
-#    define gzungetc              z_gzungetc
-#    define gzwrite               z_gzwrite
-#  endif
-#  define inflate               z_inflate
-#  define inflateBack           z_inflateBack
-#  define inflateBackEnd        z_inflateBackEnd
-#  define inflateBackInit_      z_inflateBackInit_
-#  define inflateCopy           z_inflateCopy
-#  define inflateEnd            z_inflateEnd
-#  define inflateGetHeader      z_inflateGetHeader
-#  define inflateInit2_         z_inflateInit2_
-#  define inflateInit_          z_inflateInit_
-#  define inflateMark           z_inflateMark
-#  define inflatePrime          z_inflatePrime
-#  define inflateReset          z_inflateReset
-#  define inflateReset2         z_inflateReset2
-#  define inflateSetDictionary  z_inflateSetDictionary
-#  define inflateSync           z_inflateSync
-#  define inflateSyncPoint      z_inflateSyncPoint
-#  define inflateUndermine      z_inflateUndermine
-#  define inflateResetKeep      z_inflateResetKeep
-#  define inflate_copyright     z_inflate_copyright
-#  define inflate_fast          z_inflate_fast
-#  define inflate_table         z_inflate_table
-#  ifndef Z_SOLO
-#    define uncompress            z_uncompress
-#  endif
-#  define zError                z_zError
-#  ifndef Z_SOLO
-#    define zcalloc               z_zcalloc
-#    define zcfree                z_zcfree
-#  endif
-#  define zlibCompileFlags      z_zlibCompileFlags
-#  define zlibVersion           z_zlibVersion
-
-/* all zlib typedefs in zlib.h and zconf.h */
-#  define Byte                  z_Byte
-#  define Bytef                 z_Bytef
-#  define alloc_func            z_alloc_func
-#  define charf                 z_charf
-#  define free_func             z_free_func
-#  ifndef Z_SOLO
-#    define gzFile                z_gzFile
-#  endif
-#  define gz_header             z_gz_header
-#  define gz_headerp            z_gz_headerp
-#  define in_func               z_in_func
-#  define intf                  z_intf
-#  define out_func              z_out_func
-#  define uInt                  z_uInt
-#  define uIntf                 z_uIntf
-#  define uLong                 z_uLong
-#  define uLongf                z_uLongf
-#  define voidp                 z_voidp
-#  define voidpc                z_voidpc
-#  define voidpf                z_voidpf
-
-/* all zlib structs in zlib.h and zconf.h */
-#  define gz_header_s           z_gz_header_s
-#  define internal_state        z_internal_state
-
-#endif
-
-#if defined(__MSDOS__) && !defined(MSDOS)
-#  define MSDOS
-#endif
-#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
-#  define OS2
-#endif
-#if defined(_WINDOWS) && !defined(WINDOWS)
-#  define WINDOWS
-#endif
-#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
-#  ifndef WIN32
-#    define WIN32
-#  endif
-#endif
-#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
-#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
-#    ifndef SYS16BIT
-#      define SYS16BIT
-#    endif
-#  endif
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#ifdef SYS16BIT
-#  define MAXSEG_64K
-#endif
-#ifdef MSDOS
-#  define UNALIGNED_OK
-#endif
-
-#ifdef __STDC_VERSION__
-#  ifndef STDC
-#    define STDC
-#  endif
-#  if __STDC_VERSION__ >= 199901L
-#    ifndef STDC99
-#      define STDC99
-#    endif
-#  endif
-#endif
-#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
-#  define STDC
-#endif
-
-#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
-#  define STDC
-#endif
-
-#ifndef STDC
-#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-#    define const       /* note: need a more gentle solution here */
-#  endif
-#endif
-
-#if defined(ZLIB_CONST) && !defined(z_const)
-#  define z_const const
-#else
-#  define z_const
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-#  define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            (1 << (windowBits+2)) +  (1 << (memLevel+9))
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-#ifndef Z_ARG /* function prototypes for stdarg */
-#  if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#    define Z_ARG(args)  args
-#  else
-#    define Z_ARG(args)  ()
-#  endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#ifdef SYS16BIT
-#  if defined(M_I86SM) || defined(M_I86MM)
-     /* MSC small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef _MSC_VER
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#  if (defined(__SMALL__) || defined(__MEDIUM__))
-     /* Turbo C small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef __BORLANDC__
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#endif
-
-#if defined(WINDOWS) || defined(WIN32)
-   /* If building or using zlib as a DLL, define ZLIB_DLL.
-    * This is not mandatory, but it offers a little performance increase.
-    */
-#  ifdef ZLIB_DLL
-#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
-#      ifdef ZLIB_INTERNAL
-#        define ZEXTERN extern __declspec(dllexport)
-#      else
-#        define ZEXTERN extern __declspec(dllimport)
-#      endif
-#    endif
-#  endif  /* ZLIB_DLL */
-   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
-    * define ZLIB_WINAPI.
-    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
-    */
-#  ifdef ZLIB_WINAPI
-#    ifdef FAR
-#      undef FAR
-#    endif
-#    include <windows.h>
-     /* No need for _export, use ZLIB.DEF instead. */
-     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
-#    define ZEXPORT WINAPI
-#    ifdef WIN32
-#      define ZEXPORTVA WINAPIV
-#    else
-#      define ZEXPORTVA FAR CDECL
-#    endif
-#  endif
-#endif
-
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
-#ifndef ZEXTERN
-#  define ZEXTERN extern
-#endif
-#ifndef ZEXPORT
-#  define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-#  define ZEXPORTVA
-#endif
-
-#ifndef FAR
-#  define FAR
-#endif
-
-#if !defined(__MACTYPES__)
-typedef unsigned char  Byte;  /* 8 bits */
-#endif
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
-   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-#  define Bytef Byte FAR
-#else
-   typedef Byte  FAR Bytef;
-#endif
-typedef char  FAR charf;
-typedef int   FAR intf;
-typedef uInt  FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void const *voidpc;
-   typedef void FAR   *voidpf;
-   typedef void       *voidp;
-#else
-   typedef Byte const *voidpc;
-   typedef Byte FAR   *voidpf;
-   typedef Byte       *voidp;
-#endif
-
-/* ./configure may #define Z_U4 here */
-
-#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
-#  include <limits.h>
-#  if (UINT_MAX == 0xffffffffUL)
-#    define Z_U4 unsigned
-#  else
-#    if (ULONG_MAX == 0xffffffffUL)
-#      define Z_U4 unsigned long
-#    else
-#      if (USHRT_MAX == 0xffffffffUL)
-#        define Z_U4 unsigned short
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef Z_U4
-   typedef Z_U4 z_crc_t;
-#else
-   typedef unsigned long z_crc_t;
-#endif
-
-#ifdef HAVE_UNISTD_H    /* may be set to #if 1 by ./configure */
-#  define Z_HAVE_UNISTD_H
-#endif
-
-#ifdef HAVE_STDARG_H    /* may be set to #if 1 by ./configure */
-#  define Z_HAVE_STDARG_H
-#endif
-
-#ifdef STDC
-#  ifndef Z_SOLO
-#    include <sys/types.h>      /* for off_t */
-#  endif
-#endif
-
-#ifdef _WIN32
-#  include <stddef.h>           /* for wchar_t */
-#endif
-
-/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
- * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
- * though the former does not conform to the LFS document), but considering
- * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
- * equivalently requesting no 64-bit operations
- */
-#if defined(LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
-#  undef _LARGEFILE64_SOURCE
-#endif
-
-#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
-#  define Z_HAVE_UNISTD_H
-#endif
-#ifndef Z_SOLO
-#  if defined(Z_HAVE_UNISTD_H) || defined(LARGEFILE64_SOURCE)
-#    include <unistd.h>         /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
-#    ifdef VMS
-#      include <unixio.h>       /* for off_t */
-#    endif
-#    ifndef z_off_t
-#      define z_off_t off_t
-#    endif
-#  endif
-#endif
-
-#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
-#  define Z_LFS64
-#endif
-
-#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
-#  define Z_LARGE64
-#endif
-
-#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
-#  define Z_WANT64
-#endif
-
-#if !defined(SEEK_SET) && !defined(Z_SOLO)
-#  define SEEK_SET        0       /* Seek from beginning of file.  */
-#  define SEEK_CUR        1       /* Seek from current position.  */
-#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
-#endif
-
-#ifndef z_off_t
-#  define z_off_t long
-#endif
-
-#if !defined(_WIN32) && defined(Z_LARGE64)
-#  define z_off64_t off64_t
-#else
-#  if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
-#    define z_off64_t __int64
-#  else
-#    define z_off64_t z_off_t
-#  endif
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-  #pragma map(deflateInit_,"DEIN")
-  #pragma map(deflateInit2_,"DEIN2")
-  #pragma map(deflateEnd,"DEEND")
-  #pragma map(deflateBound,"DEBND")
-  #pragma map(inflateInit_,"ININ")
-  #pragma map(inflateInit2_,"ININ2")
-  #pragma map(inflateEnd,"INEND")
-  #pragma map(inflateSync,"INSY")
-  #pragma map(inflateSetDictionary,"INSEDI")
-  #pragma map(compressBound,"CMBND")
-  #pragma map(inflate_table,"INTABL")
-  #pragma map(inflate_fast,"INFA")
-  #pragma map(inflate_copyright,"INCOPY")
-#endif
-
-#endif /* ZCONF_H */
diff --git a/libs/ext/zlib/zlib-1.2.7.tar.gz b/libs/ext/zlib/zlib-1.2.7.tar.gz
deleted file mode 100644
index 833e888..0000000
Binary files a/libs/ext/zlib/zlib-1.2.7.tar.gz and /dev/null differ
diff --git a/libs/ext/zlib/zlib.h b/libs/ext/zlib/zlib.h
deleted file mode 100644
index 3edf3ac..0000000
--- a/libs/ext/zlib/zlib.h
+++ /dev/null
@@ -1,1744 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.2.7, May 2nd, 2012
-
-  Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup at gzip.org          madler at alumni.caltech.edu
-
-
-  The data format used by the zlib library is described by RFCs (Request for
-  Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
-  (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
-*/
-
-#ifndef ZLIB_H
-#define ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.2.7"
-#define ZLIB_VERNUM 0x1270
-#define ZLIB_VER_MAJOR 1
-#define ZLIB_VER_MINOR 2
-#define ZLIB_VER_REVISION 7
-#define ZLIB_VER_SUBREVISION 0
-
-/*
-    The 'zlib' compression library provides in-memory compression and
-  decompression functions, including integrity checks of the uncompressed data.
-  This version of the library supports only one compression method (deflation)
-  but other algorithms will be added later and will have the same stream
-  interface.
-
-    Compression can be done in a single step if the buffers are large enough,
-  or can be done by repeated calls of the compression function.  In the latter
-  case, the application must provide more input and/or consume the output
-  (providing more output space) before each call.
-
-    The compressed data format used by default by the in-memory functions is
-  the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
-  around a deflate stream, which is itself documented in RFC 1951.
-
-    The library also supports reading and writing files in gzip (.gz) format
-  with an interface similar to that of stdio using the functions that start
-  with "gz".  The gzip format is different from the zlib format.  gzip is a
-  gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
-
-    This library can optionally read and write gzip streams in memory as well.
-
-    The zlib format was designed to be compact and fast for use in memory
-  and on communications channels.  The gzip format was designed for single-
-  file compression on file systems, has a larger header than zlib to maintain
-  directory information, and uses a different, slower check method than zlib.
-
-    The library does not install any signal handler.  The decoder checks
-  the consistency of the compressed data, so the library should never crash
-  even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void   (*free_func)  OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
-    z_const Bytef *next_in;     /* next input byte */
-    uInt     avail_in;  /* number of bytes available at next_in */
-    uLong    total_in;  /* total number of input bytes read so far */
-
-    Bytef    *next_out; /* next output byte should be put there */
-    uInt     avail_out; /* remaining free space at next_out */
-    uLong    total_out; /* total number of bytes output so far */
-
-    z_const char *msg;  /* last error message, NULL if no error */
-    struct internal_state FAR *state; /* not visible by applications */
-
-    alloc_func zalloc;  /* used to allocate the internal state */
-    free_func  zfree;   /* used to free the internal state */
-    voidpf     opaque;  /* private data object passed to zalloc and zfree */
-
-    int     data_type;  /* best guess about the data type: binary or text */
-    uLong   adler;      /* adler32 value of the uncompressed data */
-    uLong   reserved;   /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
-     gzip header information passed to and from zlib routines.  See RFC 1952
-  for more details on the meanings of these fields.
-*/
-typedef struct gz_header_s {
-    int     text;       /* true if compressed data believed to be text */
-    uLong   time;       /* modification time */
-    int     xflags;     /* extra flags (not used when writing a gzip file) */
-    int     os;         /* operating system */
-    Bytef   *extra;     /* pointer to extra field or Z_NULL if none */
-    uInt    extra_len;  /* extra field length (valid if extra != Z_NULL) */
-    uInt    extra_max;  /* space at extra (only when reading header) */
-    Bytef   *name;      /* pointer to zero-terminated file name or Z_NULL */
-    uInt    name_max;   /* space at name (only when reading header) */
-    Bytef   *comment;   /* pointer to zero-terminated comment or Z_NULL */
-    uInt    comm_max;   /* space at comment (only when reading header) */
-    int     hcrc;       /* true if there was or will be a header crc */
-    int     done;       /* true when done reading gzip header (not used
-                           when writing a gzip file) */
-} gz_header;
-
-typedef gz_header FAR *gz_headerp;
-
-/*
-     The application must update next_in and avail_in when avail_in has dropped
-   to zero.  It must update next_out and avail_out when avail_out has dropped
-   to zero.  The application must initialize zalloc, zfree and opaque before
-   calling the init function.  All other fields are set by the compression
-   library and must not be updated by the application.
-
-     The opaque value provided by the application will be passed as the first
-   parameter for calls of zalloc and zfree.  This can be useful for custom
-   memory management.  The compression library attaches no meaning to the
-   opaque value.
-
-     zalloc must return Z_NULL if there is not enough memory for the object.
-   If zlib is used in a multi-threaded application, zalloc and zfree must be
-   thread safe.
-
-     On 16-bit systems, the functions zalloc and zfree must be able to allocate
-   exactly 65536 bytes, but will not be required to allocate more than this if
-   the symbol MAXSEG_64K is defined (see zconf.h).  WARNING: On MSDOS, pointers
-   returned by zalloc for objects of exactly 65536 bytes *must* have their
-   offset normalized to zero.  The default allocation function provided by this
-   library ensures this (see zutil.c).  To reduce memory requirements and avoid
-   any allocation of 64K objects, at the expense of compression ratio, compile
-   the library with -DMAX_WBITS=14 (see zconf.h).
-
-     The fields total_in and total_out can be used for statistics or progress
-   reports.  After compression, total_in holds the total size of the
-   uncompressed data and may be saved for use in the decompressor (particularly
-   if the decompressor wants to decompress everything in a single step).
-*/
-
-                        /* constants */
-
-#define Z_NO_FLUSH      0
-#define Z_PARTIAL_FLUSH 1
-#define Z_SYNC_FLUSH    2
-#define Z_FULL_FLUSH    3
-#define Z_FINISH        4
-#define Z_BLOCK         5
-#define Z_TREES         6
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK            0
-#define Z_STREAM_END    1
-#define Z_NEED_DICT     2
-#define Z_ERRNO        (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR   (-3)
-#define Z_MEM_ERROR    (-4)
-#define Z_BUF_ERROR    (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative values
- * are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION         0
-#define Z_BEST_SPEED             1
-#define Z_BEST_COMPRESSION       9
-#define Z_DEFAULT_COMPRESSION  (-1)
-/* compression levels */
-
-#define Z_FILTERED            1
-#define Z_HUFFMAN_ONLY        2
-#define Z_RLE                 3
-#define Z_FIXED               4
-#define Z_DEFAULT_STRATEGY    0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY   0
-#define Z_TEXT     1
-#define Z_ASCII    Z_TEXT   /* for compatibility with 1.2.2 and earlier */
-#define Z_UNKNOWN  2
-/* Possible values of the data_type field (though see inflate()) */
-
-#define Z_DEFLATED   8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
-
-                        /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-   If the first character differs, the library code actually used is not
-   compatible with the zlib.h header file used by the application.  This check
-   is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
-     Initializes the internal stream state for compression.  The fields
-   zalloc, zfree and opaque must be initialized before by the caller.  If
-   zalloc and zfree are set to Z_NULL, deflateInit updates them to use default
-   allocation functions.
-
-     The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-   1 gives best speed, 9 gives best compression, 0 gives no compression at all
-   (the input data is simply copied a block at a time).  Z_DEFAULT_COMPRESSION
-   requests a default compromise between speed and compression (currently
-   equivalent to level 6).
-
-     deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if level is not a valid compression level, or
-   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-   with the version assumed by the caller (ZLIB_VERSION).  msg is set to null
-   if there is no error message.  deflateInit does not perform any compression:
-   this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
-    deflate compresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-    The detailed semantics are as follows.  deflate performs one or both of the
-  following actions:
-
-  - Compress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in and avail_in are updated and
-    processing will resume at this point for the next call of deflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  This action is forced if the parameter flush is non zero.
-    Forcing flush frequently degrades the compression ratio, so this parameter
-    should be set only when necessary (in interactive applications).  Some
-    output may be provided even if flush is not set.
-
-    Before the call of deflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating avail_in or avail_out accordingly; avail_out should
-  never be zero before the call.  The application can consume the compressed
-  output when it wants, for example when the output buffer is full (avail_out
-  == 0), or after each call of deflate().  If deflate returns Z_OK and with
-  zero avail_out, it must be called again after making room in the output
-  buffer because there might be more output pending.
-
-    Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
-  decide how much data to accumulate before producing output, in order to
-  maximize compression.
-
-    If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-  flushed to the output buffer and the output is aligned on a byte boundary, so
-  that the decompressor can get all input data available so far.  (In
-  particular avail_in is zero after the call if enough output space has been
-  provided before the call.) Flushing may degrade compression for some
-  compression algorithms and so it should be used only when necessary.  This
-  completes the current deflate block and follows it with an empty stored block
-  that is three bits plus filler bits to the next byte, followed by four bytes
-  (00 00 ff ff).
-
-    If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the
-  output buffer, but the output is not aligned to a byte boundary.  All of the
-  input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.
-  This completes the current deflate block and follows it with an empty fixed
-  codes block that is 10 bits long.  This assures that enough bytes are output
-  in order for the decompressor to finish the block before the empty fixed code
-  block.
-
-    If flush is set to Z_BLOCK, a deflate block is completed and emitted, as
-  for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
-  seven bits of the current block are held to be written as the next byte after
-  the next deflate block is completed.  In this case, the decompressor may not
-  be provided enough bits at this point in order to complete decompression of
-  the data provided so far to the compressor.  It may need to wait for the next
-  block to be emitted.  This is for advanced applications that need to control
-  the emission of deflate blocks.
-
-    If flush is set to Z_FULL_FLUSH, all output is flushed as with
-  Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-  restart from this point if previous compressed data has been damaged or if
-  random access is desired.  Using Z_FULL_FLUSH too often can seriously degrade
-  compression.
-
-    If deflate returns with avail_out == 0, this function must be called again
-  with the same value of the flush parameter and more output space (updated
-  avail_out), until the flush is complete (deflate returns with non-zero
-  avail_out).  In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
-  avail_out is greater than six to avoid repeated flush markers due to
-  avail_out == 0 on return.
-
-    If the parameter flush is set to Z_FINISH, pending input is processed,
-  pending output is flushed and deflate returns with Z_STREAM_END if there was
-  enough output space; if deflate returns with Z_OK, this function must be
-  called again with Z_FINISH and more output space (updated avail_out) but no
-  more input data, until it returns with Z_STREAM_END or an error.  After
-  deflate has returned Z_STREAM_END, the only possible operations on the stream
-  are deflateReset or deflateEnd.
-
-    Z_FINISH can be used immediately after deflateInit if all the compression
-  is to be done in a single step.  In this case, avail_out must be at least the
-  value returned by deflateBound (see below).  Then deflate is guaranteed to
-  return Z_STREAM_END.  If not enough output space is provided, deflate will
-  not return Z_STREAM_END, and it must be called again as described above.
-
-    deflate() sets strm->adler to the adler32 checksum of all input read
-  so far (that is, total_in bytes).
-
-    deflate() may update strm->data_type if it can make a good guess about
-  the input data type (Z_BINARY or Z_TEXT).  In doubt, the data is considered
-  binary.  This field is only for information purposes and does not affect the
-  compression algorithm in any manner.
-
-    deflate() returns Z_OK if some progress has been made (more input
-  processed or more output produced), Z_STREAM_END if all input has been
-  consumed and all output has been produced (only when flush is set to
-  Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-  if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible
-  (for example avail_in or avail_out was zero).  Note that Z_BUF_ERROR is not
-  fatal, and deflate() can be called again with more input and more output
-  space to continue compressing.
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-   stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-   prematurely (some input or output was discarded).  In the error case, msg
-   may be set but then points to a static string (which must not be
-   deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
-     Initializes the internal stream state for decompression.  The fields
-   next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-   the caller.  If next_in is not Z_NULL and avail_in is large enough (the
-   exact value depends on the compression method), inflateInit determines the
-   compression method from the zlib header and allocates all data structures
-   accordingly; otherwise the allocation will be deferred to the first call of
-   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-   use default allocation functions.
-
-     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit() does not process any header information -- that is deferred
-   until inflate() is called.
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
-    inflate decompresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-  The detailed semantics are as follows.  inflate performs one or both of the
-  following actions:
-
-  - Decompress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in is updated and processing will
-    resume at this point for the next call of inflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  inflate() provides as much output as possible, until there is
-    no more input data or no more space in the output buffer (see below about
-    the flush parameter).
-
-    Before the call of inflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating the next_* and avail_* values accordingly.  The
-  application can consume the uncompressed output when it wants, for example
-  when the output buffer is full (avail_out == 0), or after each call of
-  inflate().  If inflate returns Z_OK and with zero avail_out, it must be
-  called again after making room in the output buffer because there might be
-  more output pending.
-
-    The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH,
-  Z_BLOCK, or Z_TREES.  Z_SYNC_FLUSH requests that inflate() flush as much
-  output as possible to the output buffer.  Z_BLOCK requests that inflate()
-  stop if and when it gets to the next deflate block boundary.  When decoding
-  the zlib or gzip format, this will cause inflate() to return immediately
-  after the header and before the first block.  When doing a raw inflate,
-  inflate() will go ahead and process the first block, and will return when it
-  gets to the end of that block, or when it runs out of data.
-
-    The Z_BLOCK option assists in appending to or combining deflate streams.
-  Also to assist in this, on return inflate() will set strm->data_type to the
-  number of unused bits in the last byte taken from strm->next_in, plus 64 if
-  inflate() is currently decoding the last block in the deflate stream, plus
-  128 if inflate() returned immediately after decoding an end-of-block code or
-  decoding the complete header up to just before the first byte of the deflate
-  stream.  The end-of-block will not be indicated until all of the uncompressed
-  data from that block has been written to strm->next_out.  The number of
-  unused bits may in general be greater than seven, except when bit 7 of
-  data_type is set, in which case the number of unused bits will be less than
-  eight.  data_type is set as noted here every time inflate() returns for all
-  flush options, and so can be used to determine the amount of currently
-  consumed input in bits.
-
-    The Z_TREES option behaves as Z_BLOCK does, but it also returns when the
-  end of each deflate block header is reached, before any actual data in that
-  block is decoded.  This allows the caller to determine the length of the
-  deflate block header for later use in random access within a deflate block.
-  256 is added to the value of strm->data_type when inflate() returns
-  immediately after reaching the end of the deflate block header.
-
-    inflate() should normally be called until it returns Z_STREAM_END or an
-  error.  However if all decompression is to be performed in a single step (a
-  single call of inflate), the parameter flush should be set to Z_FINISH.  In
-  this case all pending input is processed and all pending output is flushed;
-  avail_out must be large enough to hold all of the uncompressed data for the
-  operation to complete.  (The size of the uncompressed data may have been
-  saved by the compressor for this purpose.) The use of Z_FINISH is not
-  required to perform an inflation in one step.  However it may be used to
-  inform inflate that a faster approach can be used for the single inflate()
-  call.  Z_FINISH also informs inflate to not maintain a sliding window if the
-  stream completes, which reduces inflate's memory footprint.  If the stream
-  does not complete, either because not all of the stream is provided or not
-  enough output space is provided, then a sliding window will be allocated and
-  inflate() can be called again to continue the operation as if Z_NO_FLUSH had
-  been used.
-
-     In this implementation, inflate() always flushes as much output as
-  possible to the output buffer, and always uses the faster approach on the
-  first call.  So the effects of the flush parameter in this implementation are
-  on the return value of inflate() as noted below, when inflate() returns early
-  when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of
-  memory for a sliding window when Z_FINISH is used.
-
-     If a preset dictionary is needed after this call (see inflateSetDictionary
-  below), inflate sets strm->adler to the Adler-32 checksum of the dictionary
-  chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
-  strm->adler to the Adler-32 checksum of all output produced so far (that is,
-  total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
-  below.  At the end of the stream, inflate() checks that its computed adler32
-  checksum is equal to that saved by the compressor and returns Z_STREAM_END
-  only if the checksum is correct.
-
-    inflate() can decompress and check either zlib-wrapped or gzip-wrapped
-  deflate data.  The header type is detected automatically, if requested when
-  initializing with inflateInit2().  Any information contained in the gzip
-  header is not retained, so applications that need that information should
-  instead use raw inflate, see inflateInit2() below, or inflateBack() and
-  perform their own processing of the gzip header and trailer.  When processing
-  gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
-  producted so far.  The CRC-32 is checked against the gzip trailer.
-
-    inflate() returns Z_OK if some progress has been made (more input processed
-  or more output produced), Z_STREAM_END if the end of the compressed data has
-  been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-  corrupted (input stream not conforming to the zlib format or incorrect check
-  value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
-  next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory,
-  Z_BUF_ERROR if no progress is possible or if there was not enough room in the
-  output buffer when Z_FINISH is used.  Note that Z_BUF_ERROR is not fatal, and
-  inflate() can be called again with more input and more output space to
-  continue decompressing.  If Z_DATA_ERROR is returned, the application may
-  then call inflateSync() to look for a good compression block if a partial
-  recovery of the data is desired.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-   was inconsistent.  In the error case, msg may be set but then points to a
-   static string (which must not be deallocated).
-*/
-
-
-                        /* Advanced functions */
-
-/*
-    The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-                                     int  level,
-                                     int  method,
-                                     int  windowBits,
-                                     int  memLevel,
-                                     int  strategy));
-
-     This is another version of deflateInit with more compression options.  The
-   fields next_in, zalloc, zfree and opaque must be initialized before by the
-   caller.
-
-     The method parameter is the compression method.  It must be Z_DEFLATED in
-   this version of the library.
-
-     The windowBits parameter is the base two logarithm of the window size
-   (the size of the history buffer).  It should be in the range 8..15 for this
-   version of the library.  Larger values of this parameter result in better
-   compression at the expense of memory usage.  The default value is 15 if
-   deflateInit is used instead.
-
-     windowBits can also be -8..-15 for raw deflate.  In this case, -windowBits
-   determines the window size.  deflate() will then generate raw deflate data
-   with no zlib header or trailer, and will not compute an adler32 check value.
-
-     windowBits can also be greater than 15 for optional gzip encoding.  Add
-   16 to windowBits to write a simple gzip header and trailer around the
-   compressed data instead of a zlib wrapper.  The gzip header will have no
-   file name, no extra data, no comment, no modification time (set to zero), no
-   header crc, and the operating system will be set to 255 (unknown).  If a
-   gzip stream is being written, strm->adler is a crc32 instead of an adler32.
-
-     The memLevel parameter specifies how much memory should be allocated
-   for the internal compression state.  memLevel=1 uses minimum memory but is
-   slow and reduces compression ratio; memLevel=9 uses maximum memory for
-   optimal speed.  The default value is 8.  See zconf.h for total memory usage
-   as a function of windowBits and memLevel.
-
-     The strategy parameter is used to tune the compression algorithm.  Use the
-   value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-   filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
-   string match), or Z_RLE to limit match distances to one (run-length
-   encoding).  Filtered data consists mostly of small values with a somewhat
-   random distribution.  In this case, the compression algorithm is tuned to
-   compress them better.  The effect of Z_FILTERED is to force more Huffman
-   coding and less string matching; it is somewhat intermediate between
-   Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY.  Z_RLE is designed to be almost as
-   fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data.  The
-   strategy parameter only affects the compression ratio but not the
-   correctness of the compressed output even if it is not set appropriately.
-   Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler
-   decoder for special applications.
-
-     deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid
-   method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is
-   incompatible with the version assumed by the caller (ZLIB_VERSION).  msg is
-   set to null if there is no error message.  deflateInit2 does not perform any
-   compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the compression dictionary from the given byte sequence
-   without producing any compressed output.  When using the zlib format, this
-   function must be called immediately after deflateInit, deflateInit2 or
-   deflateReset, and before any call of deflate.  When doing raw deflate, this
-   function must be called either before any call of deflate, or immediately
-   after the completion of a deflate block, i.e. after all input has been
-   consumed and all output has been delivered when using any of the flush
-   options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH.  The
-   compressor and decompressor must use exactly the same dictionary (see
-   inflateSetDictionary).
-
-     The dictionary should consist of strings (byte sequences) that are likely
-   to be encountered later in the data to be compressed, with the most commonly
-   used strings preferably put towards the end of the dictionary.  Using a
-   dictionary is most useful when the data to be compressed is short and can be
-   predicted with good accuracy; the data can then be compressed better than
-   with the default empty dictionary.
-
-     Depending on the size of the compression data structures selected by
-   deflateInit or deflateInit2, a part of the dictionary may in effect be
-   discarded, for example if the dictionary is larger than the window size
-   provided in deflateInit or deflateInit2.  Thus the strings most likely to be
-   useful should be put at the end of the dictionary, not at the front.  In
-   addition, the current implementation of deflate will use at most the window
-   size minus 262 bytes of the provided dictionary.
-
-     Upon return of this function, strm->adler is set to the adler32 value
-   of the dictionary; the decompressor may later use this value to determine
-   which dictionary has been used by the compressor.  (The adler32 value
-   applies to the whole dictionary even if only a subset of the dictionary is
-   actually used by the compressor.) If a raw deflate was requested, then the
-   adler32 value is not computed and strm->adler is not set.
-
-     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent (for example if deflate has already been called for this stream
-   or if not at a block boundary for raw deflate).  deflateSetDictionary does
-   not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when several compression strategies will be
-   tried, for example when there are several ways of pre-processing the input
-   data with a filter.  The streams that will be discarded should then be freed
-   by calling deflateEnd.  Note that deflateCopy duplicates the internal
-   compression state which can be quite large, so this strategy is slow and can
-   consume lots of memory.
-
-     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to deflateEnd followed by deflateInit,
-   but does not free and reallocate all the internal compression state.  The
-   stream will keep the same compression level and any other attributes that
-   may have been set by deflateInit2.
-
-     deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
-                                      int level,
-                                      int strategy));
-/*
-     Dynamically update the compression level and compression strategy.  The
-   interpretation of level and strategy is as in deflateInit2.  This can be
-   used to switch between compression and straight copy of the input data, or
-   to switch to a different kind of input data requiring a different strategy.
-   If the compression level is changed, the input available so far is
-   compressed with the old level (and may be flushed); the new level will take
-   effect only at the next call of deflate().
-
-     Before the call of deflateParams, the stream state must be set as for
-   a call of deflate(), since the currently available input may have to be
-   compressed and flushed.  In particular, strm->avail_out must be non-zero.
-
-     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if
-   strm->avail_out was zero.
-*/
-
-ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
-                                    int good_length,
-                                    int max_lazy,
-                                    int nice_length,
-                                    int max_chain));
-/*
-     Fine tune deflate's internal compression parameters.  This should only be
-   used by someone who understands the algorithm used by zlib's deflate for
-   searching for the best matching string, and even then only by the most
-   fanatic optimizer trying to squeeze out the last compressed bit for their
-   specific input data.  Read the deflate.c source code for the meaning of the
-   max_lazy, good_length, nice_length, and max_chain parameters.
-
-     deflateTune() can be called after deflateInit() or deflateInit2(), and
-   returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
- */
-
-ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
-                                       uLong sourceLen));
-/*
-     deflateBound() returns an upper bound on the compressed size after
-   deflation of sourceLen bytes.  It must be called after deflateInit() or
-   deflateInit2(), and after deflateSetHeader(), if used.  This would be used
-   to allocate an output buffer for deflation in a single pass, and so would be
-   called before deflate().  If that first deflate() call is provided the
-   sourceLen input bytes, an output buffer allocated to the size returned by
-   deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed
-   to return Z_STREAM_END.  Note that it is possible for the compressed size to
-   be larger than the value returned by deflateBound() if flush options other
-   than Z_FINISH or Z_NO_FLUSH are used.
-*/
-
-ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm,
-                                       unsigned *pending,
-                                       int *bits));
-/*
-     deflatePending() returns the number of bytes and bits of output that have
-   been generated, but not yet provided in the available output.  The bytes not
-   provided would be due to the available output space having being consumed.
-   The number of bits of output not provided are between 0 and 7, where they
-   await more bits to join them in order to fill out a full byte.  If pending
-   or bits are Z_NULL, then those values are not set.
-
-     deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
- */
-
-ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     deflatePrime() inserts bits in the deflate output stream.  The intent
-   is that this function is used to start off the deflate output with the bits
-   leftover from a previous deflate stream when appending to it.  As such, this
-   function can only be used for raw deflate, and must be used before the first
-   deflate() call after a deflateInit2() or deflateReset().  bits must be less
-   than or equal to 16, and that many of the least significant bits of value
-   will be inserted in the output.
-
-     deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough
-   room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     deflateSetHeader() provides gzip header information for when a gzip
-   stream is requested by deflateInit2().  deflateSetHeader() may be called
-   after deflateInit2() or deflateReset() and before the first call of
-   deflate().  The text, time, os, extra field, name, and comment information
-   in the provided gz_header structure are written to the gzip header (xflag is
-   ignored -- the extra flags are set according to the compression level).  The
-   caller must assure that, if not Z_NULL, name and comment are terminated with
-   a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
-   available there.  If hcrc is true, a gzip header crc is included.  Note that
-   the current versions of the command-line version of gzip (up through version
-   1.3.x) do not support header crc's, and will report that it is a "multi-part
-   gzip file" and give up.
-
-     If deflateSetHeader is not used, the default gzip header has text false,
-   the time set to zero, and os set to 255, with no extra, name, or comment
-   fields.  The gzip header is returned to the default state by deflateReset().
-
-     deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
-                                     int  windowBits));
-
-     This is another version of inflateInit with an extra parameter.  The
-   fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-   before by the caller.
-
-     The windowBits parameter is the base two logarithm of the maximum window
-   size (the size of the history buffer).  It should be in the range 8..15 for
-   this version of the library.  The default value is 15 if inflateInit is used
-   instead.  windowBits must be greater than or equal to the windowBits value
-   provided to deflateInit2() while compressing, or it must be equal to 15 if
-   deflateInit2() was not used.  If a compressed stream with a larger window
-   size is given as input, inflate() will return with the error code
-   Z_DATA_ERROR instead of trying to allocate a larger window.
-
-     windowBits can also be zero to request that inflate use the window size in
-   the zlib header of the compressed stream.
-
-     windowBits can also be -8..-15 for raw inflate.  In this case, -windowBits
-   determines the window size.  inflate() will then process raw deflate data,
-   not looking for a zlib or gzip header, not generating a check value, and not
-   looking for any check values for comparison at the end of the stream.  This
-   is for use with other formats that use the deflate compressed data format
-   such as zip.  Those formats provide their own check values.  If a custom
-   format is developed using the raw deflate format for compressed data, it is
-   recommended that a check value such as an adler32 or a crc32 be applied to
-   the uncompressed data as is done in the zlib, gzip, and zip formats.  For
-   most applications, the zlib format should be used as is.  Note that comments
-   above on the use in deflateInit2() applies to the magnitude of windowBits.
-
-     windowBits can also be greater than 15 for optional gzip decoding.  Add
-   32 to windowBits to enable zlib and gzip decoding with automatic header
-   detection, or add 16 to decode only the gzip format (the zlib format will
-   return a Z_DATA_ERROR).  If a gzip stream is being decoded, strm->adler is a
-   crc32 instead of an adler32.
-
-     inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit2 does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit2() does not process any header information -- that is
-   deferred until inflate() is called.
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the decompression dictionary from the given uncompressed byte
-   sequence.  This function must be called immediately after a call of inflate,
-   if that call returned Z_NEED_DICT.  The dictionary chosen by the compressor
-   can be determined from the adler32 value returned by that call of inflate.
-   The compressor and decompressor must use exactly the same dictionary (see
-   deflateSetDictionary).  For raw inflate, this function can be called at any
-   time to set the dictionary.  If the provided dictionary is smaller than the
-   window and there is already data in the window, then the provided dictionary
-   will amend what's there.  The application must insure that the dictionary
-   that was used for compression is provided.
-
-     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-   expected one (incorrect adler32 value).  inflateSetDictionary does not
-   perform any decompression: this will be done by subsequent calls of
-   inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
-     Skips invalid compressed data until a possible full flush point (see above
-   for the description of deflate with Z_FULL_FLUSH) can be found, or until all
-   available input is skipped.  No output is provided.
-
-     inflateSync searches for a 00 00 FF FF pattern in the compressed data.
-   All full flush points have this pattern, but not all occurences of this
-   pattern are full flush points.
-
-     inflateSync returns Z_OK if a possible full flush point has been found,
-   Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point
-   has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.
-   In the success case, the application may save the current current value of
-   total_in which indicates where valid compressed data was found.  In the
-   error case, the application may repeatedly call inflateSync, providing more
-   input each time, until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when randomly accessing a large stream.  The
-   first pass through the stream can periodically record the inflate state,
-   allowing restarting inflate at those points when randomly accessing the
-   stream.
-
-     inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to inflateEnd followed by inflateInit,
-   but does not free and reallocate all the internal decompression state.  The
-   stream will keep attributes that may have been set by inflateInit2.
-
-     inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
-                                      int windowBits));
-/*
-     This function is the same as inflateReset, but it also permits changing
-   the wrap and window size requests.  The windowBits parameter is interpreted
-   the same as it is for inflateInit2.
-
-     inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL), or if
-   the windowBits parameter is invalid.
-*/
-
-ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     This function inserts bits in the inflate input stream.  The intent is
-   that this function is used to start inflating at a bit position in the
-   middle of a byte.  The provided bits will be used before any bytes are used
-   from next_in.  This function should only be used with raw inflate, and
-   should be used before the first inflate() call after inflateInit2() or
-   inflateReset().  bits must be less than or equal to 16, and that many of the
-   least significant bits of value will be inserted in the input.
-
-     If bits is negative, then the input stream bit buffer is emptied.  Then
-   inflatePrime() can be called again to put bits in the buffer.  This is used
-   to clear out bits leftover after feeding inflate a block description prior
-   to feeding inflate codes.
-
-     inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));
-/*
-     This function returns two values, one in the lower 16 bits of the return
-   value, and the other in the remaining upper bits, obtained by shifting the
-   return value down 16 bits.  If the upper value is -1 and the lower value is
-   zero, then inflate() is currently decoding information outside of a block.
-   If the upper value is -1 and the lower value is non-zero, then inflate is in
-   the middle of a stored block, with the lower value equaling the number of
-   bytes from the input remaining to copy.  If the upper value is not -1, then
-   it is the number of bits back from the current bit position in the input of
-   the code (literal or length/distance pair) currently being processed.  In
-   that case the lower value is the number of bytes already emitted for that
-   code.
-
-     A code is being processed if inflate is waiting for more input to complete
-   decoding of the code, or if it has completed decoding but is waiting for
-   more output space to write the literal or match data.
-
-     inflateMark() is used to mark locations in the input data for random
-   access, which may be at bit positions, and to note those cases where the
-   output of a code may span boundaries of random access blocks.  The current
-   location in the input stream can be determined from avail_in and data_type
-   as noted in the description for the Z_BLOCK flush parameter for inflate.
-
-     inflateMark returns the value noted above or -1 << 16 if the provided
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     inflateGetHeader() requests that gzip header information be stored in the
-   provided gz_header structure.  inflateGetHeader() may be called after
-   inflateInit2() or inflateReset(), and before the first call of inflate().
-   As inflate() processes the gzip stream, head->done is zero until the header
-   is completed, at which time head->done is set to one.  If a zlib stream is
-   being decoded, then head->done is set to -1 to indicate that there will be
-   no gzip header information forthcoming.  Note that Z_BLOCK or Z_TREES can be
-   used to force inflate() to return immediately after header processing is
-   complete and before any actual data is decompressed.
-
-     The text, time, xflags, and os fields are filled in with the gzip header
-   contents.  hcrc is set to true if there is a header CRC.  (The header CRC
-   was valid if done is set to one.) If extra is not Z_NULL, then extra_max
-   contains the maximum number of bytes to write to extra.  Once done is true,
-   extra_len contains the actual extra field length, and extra contains the
-   extra field, or that field truncated if extra_max is less than extra_len.
-   If name is not Z_NULL, then up to name_max characters are written there,
-   terminated with a zero unless the length is greater than name_max.  If
-   comment is not Z_NULL, then up to comm_max characters are written there,
-   terminated with a zero unless the length is greater than comm_max.  When any
-   of extra, name, or comment are not Z_NULL and the respective field is not
-   present in the header, then that field is set to Z_NULL to signal its
-   absence.  This allows the use of deflateSetHeader() with the returned
-   structure to duplicate the header.  However if those fields are set to
-   allocated memory, then the application will need to save those pointers
-   elsewhere so that they can be eventually freed.
-
-     If inflateGetHeader is not used, then the header information is simply
-   discarded.  The header is always checked for validity, including the header
-   CRC if present.  inflateReset() will reset the process to discard the header
-   information.  The application would need to call inflateGetHeader() again to
-   retrieve the header from the next gzip stream.
-
-     inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
-                                        unsigned char FAR *window));
-
-     Initialize the internal stream state for decompression using inflateBack()
-   calls.  The fields zalloc, zfree and opaque in strm must be initialized
-   before the call.  If zalloc and zfree are Z_NULL, then the default library-
-   derived memory allocation routines are used.  windowBits is the base two
-   logarithm of the window size, in the range 8..15.  window is a caller
-   supplied buffer of that size.  Except for special applications where it is
-   assured that deflate was used with small window sizes, windowBits must be 15
-   and a 32K byte window must be supplied to be able to decompress general
-   deflate streams.
-
-     See inflateBack() for the usage of these routines.
-
-     inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
-   the parameters are invalid, Z_MEM_ERROR if the internal state could not be
-   allocated, or Z_VERSION_ERROR if the version of the library does not match
-   the version of the header file.
-*/
-
-typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *));
-typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
-
-ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
-                                    in_func in, void FAR *in_desc,
-                                    out_func out, void FAR *out_desc));
-/*
-     inflateBack() does a raw inflate with a single call using a call-back
-   interface for input and output.  This is more efficient than inflate() for
-   file i/o applications in that it avoids copying between the output and the
-   sliding window by simply making the window itself the output buffer.  This
-   function trusts the application to not change the output buffer passed by
-   the output function, at least until inflateBack() returns.
-
-     inflateBackInit() must be called first to allocate the internal state
-   and to initialize the state with the user-provided window buffer.
-   inflateBack() may then be used multiple times to inflate a complete, raw
-   deflate stream with each call.  inflateBackEnd() is then called to free the
-   allocated state.
-
-     A raw deflate stream is one with no zlib or gzip header or trailer.
-   This routine would normally be used in a utility that reads zip or gzip
-   files and writes out uncompressed files.  The utility would decode the
-   header and process the trailer on its own, hence this routine expects only
-   the raw deflate stream to decompress.  This is different from the normal
-   behavior of inflate(), which expects either a zlib or gzip header and
-   trailer around the deflate stream.
-
-     inflateBack() uses two subroutines supplied by the caller that are then
-   called by inflateBack() for input and output.  inflateBack() calls those
-   routines until it reads a complete deflate stream and writes out all of the
-   uncompressed data, or until it encounters an error.  The function's
-   parameters and return types are defined above in the in_func and out_func
-   typedefs.  inflateBack() will call in(in_desc, &buf) which should return the
-   number of bytes of provided input, and a pointer to that input in buf.  If
-   there is no input available, in() must return zero--buf is ignored in that
-   case--and inflateBack() will return a buffer error.  inflateBack() will call
-   out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].  out()
-   should return zero on success, or non-zero on failure.  If out() returns
-   non-zero, inflateBack() will return with an error.  Neither in() nor out()
-   are permitted to change the contents of the window provided to
-   inflateBackInit(), which is also the buffer that out() uses to write from.
-   The length written by out() will be at most the window size.  Any non-zero
-   amount of input may be provided by in().
-
-     For convenience, inflateBack() can be provided input on the first call by
-   setting strm->next_in and strm->avail_in.  If that input is exhausted, then
-   in() will be called.  Therefore strm->next_in must be initialized before
-   calling inflateBack().  If strm->next_in is Z_NULL, then in() will be called
-   immediately for input.  If strm->next_in is not Z_NULL, then strm->avail_in
-   must also be initialized, and then if strm->avail_in is not zero, input will
-   initially be taken from strm->next_in[0 ..  strm->avail_in - 1].
-
-     The in_desc and out_desc parameters of inflateBack() is passed as the
-   first parameter of in() and out() respectively when they are called.  These
-   descriptors can be optionally used to pass any information that the caller-
-   supplied in() and out() functions need to do their job.
-
-     On return, inflateBack() will set strm->next_in and strm->avail_in to
-   pass back any unused input that was provided by the last in() call.  The
-   return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
-   if in() or out() returned an error, Z_DATA_ERROR if there was a format error
-   in the deflate stream (in which case strm->msg is set to indicate the nature
-   of the error), or Z_STREAM_ERROR if the stream was not properly initialized.
-   In the case of Z_BUF_ERROR, an input or output error can be distinguished
-   using strm->next_in which will be Z_NULL only if in() returned an error.  If
-   strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
-   non-zero.  (in() will always be called before out(), so strm->next_in is
-   assured to be defined if out() returns non-zero.) Note that inflateBack()
-   cannot return Z_OK.
-*/
-
-ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
-/*
-     All memory allocated by inflateBackInit() is freed.
-
-     inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
-   state was inconsistent.
-*/
-
-ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-/* Return flags indicating compile-time options.
-
-    Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
-     1.0: size of uInt
-     3.2: size of uLong
-     5.4: size of voidpf (pointer)
-     7.6: size of z_off_t
-
-    Compiler, assembler, and debug options:
-     8: DEBUG
-     9: ASMV or ASMINF -- use ASM code
-     10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
-     11: 0 (reserved)
-
-    One-time table building (smaller code, but not thread-safe if true):
-     12: BUILDFIXED -- build static block decoding tables when needed
-     13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
-     14,15: 0 (reserved)
-
-    Library content (indicates missing functionality):
-     16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
-                          deflate code when not needed)
-     17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
-                    and decode gzip streams (to avoid linking crc code)
-     18-19: 0 (reserved)
-
-    Operation variations (changes in library functionality):
-     20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
-     21: FASTEST -- deflate algorithm with only one, lowest compression level
-     22,23: 0 (reserved)
-
-    The sprintf variant used by gzprintf (zero is best):
-     24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
-     25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
-     26: 0 = returns value, 1 = void -- 1 means inferred string length returned
-
-    Remainder:
-     27-31: 0 (reserved)
- */
-
-#ifndef Z_SOLO
-
-                        /* utility functions */
-
-/*
-     The following utility functions are implemented on top of the basic
-   stream-oriented functions.  To simplify the interface, some default options
-   are assumed (compression level and memory usage, standard memory allocation
-   functions).  The source code of these utility functions can be modified if
-   you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen,
-                                 const Bytef *source, uLong sourceLen));
-/*
-     Compresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest,   uLongf *destLen,
-                                  const Bytef *source, uLong sourceLen,
-                                  int level));
-/*
-     Compresses the source buffer into the destination buffer.  The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer.  Upon entry, destLen is the total size of the
-   destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
-/*
-     compressBound() returns an upper bound on the compressed size after
-   compress() or compress2() on sourceLen bytes.  It would be used before a
-   compress() or compress2() call to allocate the destination buffer.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,
-                                   const Bytef *source, uLong sourceLen));
-/*
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be large enough to hold the entire
-   uncompressed data.  (The size of the uncompressed data must have been saved
-   previously by the compressor and transmitted to the decompressor by some
-   mechanism outside the scope of this compression library.) Upon exit, destLen
-   is the actual size of the uncompressed buffer.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete.  In
-   the case where there is not enough room, uncompress() will fill the output
-   buffer with the uncompressed data up to that point.
-*/
-
-                        /* gzip file access functions */
-
-/*
-     This library supports reading and writing files in gzip (.gz) format with
-   an interface similar to that of stdio, using the functions that start with
-   "gz".  The gzip format is different from the zlib format.  gzip is a gzip
-   wrapper, documented in RFC 1952, wrapped around a deflate stream.
-*/
-
-typedef struct gzFile_s *gzFile;    /* semi-opaque gzip file descriptor */
-
-/*
-ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-
-     Opens a gzip (.gz) file for reading or writing.  The mode parameter is as
-   in fopen ("rb" or "wb") but can also include a compression level ("wb9") or
-   a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only
-   compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F'
-   for fixed code compression as in "wb9F".  (See the description of
-   deflateInit2 for more information about the strategy parameter.)  'T' will
-   request transparent writing or appending with no compression and not using
-   the gzip format.
-
-     "a" can be used instead of "w" to request that the gzip stream that will
-   be written be appended to the file.  "+" will result in an error, since
-   reading and writing to the same gzip file is not supported.  The addition of
-   "x" when writing will create the file exclusively, which fails if the file
-   already exists.  On systems that support it, the addition of "e" when
-   reading or writing will set the flag to close the file on an execve() call.
-
-     These functions, as well as gzip, will read and decode a sequence of gzip
-   streams in a file.  The append function of gzopen() can be used to create
-   such a file.  (Also see gzflush() for another way to do this.)  When
-   appending, gzopen does not test whether the file begins with a gzip stream,
-   nor does it look for the end of the gzip streams to begin appending.  gzopen
-   will simply append a gzip stream to the existing file.
-
-     gzopen can be used to read a file which is not in gzip format; in this
-   case gzread will directly read from the file without decompression.  When
-   reading, this will be detected automatically by looking for the magic two-
-   byte gzip header.
-
-     gzopen returns NULL if the file could not be opened, if there was
-   insufficient memory to allocate the gzFile state, or if an invalid mode was
-   specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).
-   errno can be checked to determine if the reason gzopen failed was that the
-   file could not be opened.
-*/
-
-ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-/*
-     gzdopen associates a gzFile with the file descriptor fd.  File descriptors
-   are obtained from calls like open, dup, creat, pipe or fileno (if the file
-   has been previously opened with fopen).  The mode parameter is as in gzopen.
-
-     The next call of gzclose on the returned gzFile will also close the file
-   descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor
-   fd.  If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd,
-   mode);.  The duplicated descriptor should be saved to avoid a leak, since
-   gzdopen does not close fd if it fails.  If you are using fileno() to get the
-   file descriptor from a FILE *, then you will have to use dup() to avoid
-   double-close()ing the file descriptor.  Both gzclose() and fclose() will
-   close the associated file descriptor, so they need to have different file
-   descriptors.
-
-     gzdopen returns NULL if there was insufficient memory to allocate the
-   gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not
-   provided, or '+' was provided), or if fd is -1.  The file descriptor is not
-   used until the next gz* read, write, seek, or close operation, so gzdopen
-   will not detect if fd is invalid (unless fd is -1).
-*/
-
-ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
-/*
-     Set the internal buffer size used by this library's functions.  The
-   default buffer size is 8192 bytes.  This function must be called after
-   gzopen() or gzdopen(), and before any other calls that read or write the
-   file.  The buffer memory allocation is always deferred to the first read or
-   write.  Two buffers are allocated, either both of the specified size when
-   writing, or one of the specified size and the other twice that size when
-   reading.  A larger buffer size of, for example, 64K or 128K bytes will
-   noticeably increase the speed of decompression (reading).
-
-     The new buffer size also affects the maximum length for gzprintf().
-
-     gzbuffer() returns 0 on success, or -1 on failure, such as being called
-   too late.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
-     Dynamically update the compression level or strategy.  See the description
-   of deflateInit2 for the meaning of these parameters.
-
-     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-   opened for writing.
-*/
-
-ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
-     Reads the given number of uncompressed bytes from the compressed file.  If
-   the input file is not in gzip format, gzread copies the given number of
-   bytes into the buffer directly from the file.
-
-     After reaching the end of a gzip stream in the input, gzread will continue
-   to read, looking for another gzip stream.  Any number of gzip streams may be
-   concatenated in the input file, and will all be decompressed by gzread().
-   If something other than a gzip stream is encountered after a gzip stream,
-   that remaining trailing garbage is ignored (and no error is returned).
-
-     gzread can be used to read a gzip file that is being concurrently written.
-   Upon reaching the end of the input, gzread will return with the available
-   data.  If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then
-   gzclearerr can be used to clear the end of file indicator in order to permit
-   gzread to be tried again.  Z_OK indicates that a gzip stream was completed
-   on the last gzread.  Z_BUF_ERROR indicates that the input file ended in the
-   middle of a gzip stream.  Note that gzread does not return -1 in the event
-   of an incomplete gzip stream.  This error is deferred until gzclose(), which
-   will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip
-   stream.  Alternatively, gzerror can be used before gzclose to detect this
-   case.
-
-     gzread returns the number of uncompressed bytes actually read, less than
-   len for end of file, or -1 for error.
-*/
-
-ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
-                                voidpc buf, unsigned len));
-/*
-     Writes the given number of uncompressed bytes into the compressed file.
-   gzwrite returns the number of uncompressed bytes written or 0 in case of
-   error.
-*/
-
-ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));
-/*
-     Converts, formats, and writes the arguments to the compressed file under
-   control of the format string, as in fprintf.  gzprintf returns the number of
-   uncompressed bytes actually written, or 0 in case of error.  The number of
-   uncompressed bytes written is limited to 8191, or one less than the buffer
-   size given to gzbuffer().  The caller should assure that this limit is not
-   exceeded.  If it is exceeded, then gzprintf() will return an error (0) with
-   nothing written.  In this case, there may also be a buffer overflow with
-   unpredictable consequences, which is possible only if zlib was compiled with
-   the insecure functions sprintf() or vsprintf() because the secure snprintf()
-   or vsnprintf() functions were not available.  This can be determined using
-   zlibCompileFlags().
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
-     Writes the given null-terminated string to the compressed file, excluding
-   the terminating null character.
-
-     gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
-     Reads bytes from the compressed file until len-1 characters are read, or a
-   newline character is read and transferred to buf, or an end-of-file
-   condition is encountered.  If any characters are read or if len == 1, the
-   string is terminated with a null character.  If no characters are read due
-   to an end-of-file or len < 1, then the buffer is left untouched.
-
-     gzgets returns buf which is a null-terminated string, or it returns NULL
-   for end-of-file or in case of error.  If there was an error, the contents at
-   buf are indeterminate.
-*/
-
-ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-/*
-     Writes c, converted to an unsigned char, into the compressed file.  gzputc
-   returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-/*
-     Reads one byte from the compressed file.  gzgetc returns this byte or -1
-   in case of end of file or error.  This is implemented as a macro for speed.
-   As such, it does not do all of the checking the other functions do.  I.e.
-   it does not check to see if file is NULL, nor whether the structure file
-   points to has been clobbered or not.
-*/
-
-ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));
-/*
-     Push one character back onto the stream to be read as the first character
-   on the next read.  At least one character of push-back is allowed.
-   gzungetc() returns the character pushed, or -1 on failure.  gzungetc() will
-   fail if c is -1, and may fail if a character has been pushed but not read
-   yet.  If gzungetc is used immediately after gzopen or gzdopen, at least the
-   output buffer size of pushed characters is allowed.  (See gzbuffer above.)
-   The pushed character will be discarded if the stream is repositioned with
-   gzseek() or gzrewind().
-*/
-
-ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-/*
-     Flushes all pending output into the compressed file.  The parameter flush
-   is as in the deflate() function.  The return value is the zlib error number
-   (see function gzerror below).  gzflush is only permitted when writing.
-
-     If the flush parameter is Z_FINISH, the remaining data is written and the
-   gzip stream is completed in the output.  If gzwrite() is called again, a new
-   gzip stream will be started in the output.  gzread() is able to read such
-   concatented gzip streams.
-
-     gzflush should be called only when strictly necessary because it will
-   degrade compression if called too often.
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
-                                   z_off_t offset, int whence));
-
-     Sets the starting position for the next gzread or gzwrite on the given
-   compressed file.  The offset represents a number of bytes in the
-   uncompressed data stream.  The whence parameter is defined as in lseek(2);
-   the value SEEK_END is not supported.
-
-     If the file is opened for reading, this function is emulated but can be
-   extremely slow.  If the file is opened for writing, only forward seeks are
-   supported; gzseek then compresses a sequence of zeroes up to the new
-   starting position.
-
-     gzseek returns the resulting offset location as measured in bytes from
-   the beginning of the uncompressed stream, or -1 in case of error, in
-   particular if the file is opened for writing and the new starting position
-   would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT    gzrewind OF((gzFile file));
-/*
-     Rewinds the given file. This function is supported only for reading.
-
-     gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT    gztell OF((gzFile file));
-
-     Returns the starting position for the next gzread or gzwrite on the given
-   compressed file.  This position represents a number of bytes in the
-   uncompressed data stream, and is zero when starting, even if appending or
-   reading a gzip stream from the middle of a file using gzdopen().
-
-     gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
-
-     Returns the current offset in the file being read or written.  This offset
-   includes the count of bytes that precede the gzip stream, for example when
-   appending or when using gzdopen() for reading.  When reading, the offset
-   does not include as yet unused buffered input.  This information can be used
-   for a progress indicator.  On error, gzoffset() returns -1.
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
-     Returns true (1) if the end-of-file indicator has been set while reading,
-   false (0) otherwise.  Note that the end-of-file indicator is set only if the
-   read tried to go past the end of the input, but came up short.  Therefore,
-   just like feof(), gzeof() may return false even if there is no more data to
-   read, in the event that the last read request was for the exact number of
-   bytes remaining in the input file.  This will happen if the input file size
-   is an exact multiple of the buffer size.
-
-     If gzeof() returns true, then the read functions will return no more data,
-   unless the end-of-file indicator is reset by gzclearerr() and the input file
-   has grown since the previous end of file was detected.
-*/
-
-ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
-/*
-     Returns true (1) if file is being copied directly while reading, or false
-   (0) if file is a gzip stream being decompressed.
-
-     If the input file is empty, gzdirect() will return true, since the input
-   does not contain a gzip stream.
-
-     If gzdirect() is used immediately after gzopen() or gzdopen() it will
-   cause buffers to be allocated to allow reading the file to determine if it
-   is a gzip file.  Therefore if gzbuffer() is used, it should be called before
-   gzdirect().
-
-     When writing, gzdirect() returns true (1) if transparent writing was
-   requested ("wT" for the gzopen() mode), or false (0) otherwise.  (Note:
-   gzdirect() is not needed when writing.  Transparent writing must be
-   explicitly requested, so the application already knows the answer.  When
-   linking statically, using gzdirect() will include all of the zlib code for
-   gzip file reading and decompression, which may not be desired.)
-*/
-
-ZEXTERN int ZEXPORT    gzclose OF((gzFile file));
-/*
-     Flushes all pending output if necessary, closes the compressed file and
-   deallocates the (de)compression state.  Note that once file is closed, you
-   cannot call gzerror with file, since its structures have been deallocated.
-   gzclose must not be called more than once on the same file, just as free
-   must not be called more than once on the same allocation.
-
-     gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a
-   file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the
-   last read ended in the middle of a gzip stream, or Z_OK on success.
-*/
-
-ZEXTERN int ZEXPORT gzclose_r OF((gzFile file));
-ZEXTERN int ZEXPORT gzclose_w OF((gzFile file));
-/*
-     Same as gzclose(), but gzclose_r() is only for use when reading, and
-   gzclose_w() is only for use when writing or appending.  The advantage to
-   using these instead of gzclose() is that they avoid linking in zlib
-   compression or decompression code that is not used when only reading or only
-   writing respectively.  If gzclose() is used, then both compression and
-   decompression code will be included the application when linking to a static
-   zlib library.
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
-     Returns the error message for the last error which occurred on the given
-   compressed file.  errnum is set to zlib error number.  If an error occurred
-   in the file system and not in the compression library, errnum is set to
-   Z_ERRNO and the application may consult errno to get the exact error code.
-
-     The application must not modify the returned string.  Future calls to
-   this function may invalidate the previously returned string.  If file is
-   closed, then the string previously returned by gzerror will no longer be
-   available.
-
-     gzerror() should be used to distinguish errors from end-of-file for those
-   functions above that do not distinguish those cases in their return values.
-*/
-
-ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
-/*
-     Clears the error and end-of-file flags for file.  This is analogous to the
-   clearerr() function in stdio.  This is useful for continuing to read a gzip
-   file that is being written concurrently.
-*/
-
-#endif /* !Z_SOLO */
-
-                        /* checksum functions */
-
-/*
-     These functions are not related to compression but are exported
-   anyway because they might be useful in applications using the compression
-   library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-/*
-     Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-   return the updated checksum.  If buf is Z_NULL, this function returns the
-   required initial value for the checksum.
-
-     An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-   much faster.
-
-   Usage example:
-
-     uLong adler = adler32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       adler = adler32(adler, buffer, length);
-     }
-     if (adler != original_adler) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
-                                          z_off_t len2));
-
-     Combine two Adler-32 checksums into one.  For two sequences of bytes, seq1
-   and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
-   each, adler1 and adler2.  adler32_combine() returns the Adler-32 checksum of
-   seq1 and seq2 concatenated, requiring only adler1, adler2, and len2.  Note
-   that the z_off_t type (like off_t) is a signed integer.  If len2 is
-   negative, the result has no meaning or utility.
-*/
-
-ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len));
-/*
-     Update a running CRC-32 with the bytes buf[0..len-1] and return the
-   updated CRC-32.  If buf is Z_NULL, this function returns the required
-   initial value for the crc.  Pre- and post-conditioning (one's complement) is
-   performed within this function so it shouldn't be done by the application.
-
-   Usage example:
-
-     uLong crc = crc32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       crc = crc32(crc, buffer, length);
-     }
-     if (crc != original_crc) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
-
-     Combine two CRC-32 check values into one.  For two sequences of bytes,
-   seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
-   calculated for each, crc1 and crc2.  crc32_combine() returns the CRC-32
-   check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
-   len2.
-*/
-
-
-                        /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method,
-                                      int windowBits, int memLevel,
-                                      int strategy, const char *version,
-                                      int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,
-                                      const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
-                                         unsigned char FAR *window,
-                                         const char *version,
-                                         int stream_size));
-#define deflateInit(strm, level) \
-        deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit(strm) \
-        inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-                      (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
-        inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
-                      (int)sizeof(z_stream))
-#define inflateBackInit(strm, windowBits, window) \
-        inflateBackInit_((strm), (windowBits), (window), \
-                      ZLIB_VERSION, (int)sizeof(z_stream))
-
-#ifndef Z_SOLO
-
-/* gzgetc() macro and its supporting function and exposed data structure.  Note
- * that the real internal state is much larger than the exposed structure.
- * This abbreviated structure exposes just enough for the gzgetc() macro.  The
- * user should not mess with these exposed elements, since their names or
- * behavior could change in the future, perhaps even capriciously.  They can
- * only be used by the gzgetc() macro.  You have been warned.
- */
-struct gzFile_s {
-    unsigned have;
-    unsigned char *next;
-    z_off64_t pos;
-};
-ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file));  /* backward compatibility */
-#ifdef Z_PREFIX_SET
-#  undef z_gzgetc
-#  define z_gzgetc(g) \
-          ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
-#else
-#  define gzgetc(g) \
-          ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g))
-#endif
-
-/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
- * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if
- * both are true, the application gets the *64 functions, and the regular
- * functions are changed to 64 bits) -- in case these are set on systems
- * without large file support, _LFS64_LARGEFILE must also be true
- */
-#ifdef Z_LARGE64
-   ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-   ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
-   ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
-   ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t));
-   ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t));
-#endif
-
-#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64)
-#  ifdef Z_PREFIX_SET
-#    define z_gzopen z_gzopen64
-#    define z_gzseek z_gzseek64
-#    define z_gztell z_gztell64
-#    define z_gzoffset z_gzoffset64
-#    define z_adler32_combine z_adler32_combine64
-#    define z_crc32_combine z_crc32_combine64
-#  else
-#    define gzopen gzopen64
-#    define gzseek gzseek64
-#    define gztell gztell64
-#    define gzoffset gzoffset64
-#    define adler32_combine adler32_combine64
-#    define crc32_combine crc32_combine64
-#  endif
-#  ifndef Z_LARGE64
-     ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-     ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
-     ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
-     ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile));
-     ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
-     ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
-#  endif
-#else
-   ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *));
-   ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int));
-   ZEXTERN z_off_t ZEXPORT gztell OF((gzFile));
-   ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-#endif
-
-#else /* Z_SOLO */
-
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-
-#endif /* !Z_SOLO */
-
-/* hack for buggy compilers */
-#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
-    struct internal_state {int dummy;};
-#endif
-
-/* undocumented functions */
-ZEXTERN const char   * ZEXPORT zError           OF((int));
-ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));
-ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table    OF((void));
-ZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));
-ZEXTERN int            ZEXPORT inflateResetKeep OF((z_streamp));
-ZEXTERN int            ZEXPORT deflateResetKeep OF((z_streamp));
-#if defined(_WIN32) && !defined(Z_SOLO)
-ZEXTERN gzFile         ZEXPORT gzopen_w OF((const wchar_t *path,
-                                            const char *mode));
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ZLIB_H */
diff --git a/libs/ext/zlib/zutil.c b/libs/ext/zlib/zutil.c
deleted file mode 100644
index 65e0d3b..0000000
--- a/libs/ext/zlib/zutil.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zutil.h"
-#ifndef Z_SOLO
-#  include "gzguts.h"
-#endif
-
-#ifndef NO_DUMMY_DECL
-struct internal_state      {int dummy;}; /* for buggy compilers */
-#endif
-
-const char * const z_errmsg[10] = {
-"need dictionary",     /* Z_NEED_DICT       2  */
-"stream end",          /* Z_STREAM_END      1  */
-"",                    /* Z_OK              0  */
-"file error",          /* Z_ERRNO         (-1) */
-"stream error",        /* Z_STREAM_ERROR  (-2) */
-"data error",          /* Z_DATA_ERROR    (-3) */
-"insufficient memory", /* Z_MEM_ERROR     (-4) */
-"buffer error",        /* Z_BUF_ERROR     (-5) */
-"incompatible version",/* Z_VERSION_ERROR (-6) */
-""};
-
-
-const char * ZEXPORT zlibVersion()
-{
-    return ZLIB_VERSION;
-}
-
-uLong ZEXPORT zlibCompileFlags()
-{
-    uLong flags;
-
-    flags = 0;
-    switch ((int)(sizeof(uInt))) {
-    case 2:     break;
-    case 4:     flags += 1;     break;
-    case 8:     flags += 2;     break;
-    default:    flags += 3;
-    }
-    switch ((int)(sizeof(uLong))) {
-    case 2:     break;
-    case 4:     flags += 1 << 2;        break;
-    case 8:     flags += 2 << 2;        break;
-    default:    flags += 3 << 2;
-    }
-    switch ((int)(sizeof(voidpf))) {
-    case 2:     break;
-    case 4:     flags += 1 << 4;        break;
-    case 8:     flags += 2 << 4;        break;
-    default:    flags += 3 << 4;
-    }
-    switch ((int)(sizeof(z_off_t))) {
-    case 2:     break;
-    case 4:     flags += 1 << 6;        break;
-    case 8:     flags += 2 << 6;        break;
-    default:    flags += 3 << 6;
-    }
-#ifdef DEBUG
-    flags += 1 << 8;
-#endif
-#if defined(ASMV) || defined(ASMINF)
-    flags += 1 << 9;
-#endif
-#ifdef ZLIB_WINAPI
-    flags += 1 << 10;
-#endif
-#ifdef BUILDFIXED
-    flags += 1 << 12;
-#endif
-#ifdef DYNAMIC_CRC_TABLE
-    flags += 1 << 13;
-#endif
-#ifdef NO_GZCOMPRESS
-    flags += 1L << 16;
-#endif
-#ifdef NO_GZIP
-    flags += 1L << 17;
-#endif
-#ifdef PKZIP_BUG_WORKAROUND
-    flags += 1L << 20;
-#endif
-#ifdef FASTEST
-    flags += 1L << 21;
-#endif
-#if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#  ifdef NO_vsnprintf
-    flags += 1L << 25;
-#    ifdef HAS_vsprintf_void
-    flags += 1L << 26;
-#    endif
-#  else
-#    ifdef HAS_vsnprintf_void
-    flags += 1L << 26;
-#    endif
-#  endif
-#else
-    flags += 1L << 24;
-#  ifdef NO_snprintf
-    flags += 1L << 25;
-#    ifdef HAS_sprintf_void
-    flags += 1L << 26;
-#    endif
-#  else
-#    ifdef HAS_snprintf_void
-    flags += 1L << 26;
-#    endif
-#  endif
-#endif
-    return flags;
-}
-
-#ifdef DEBUG
-
-#  ifndef verbose
-#    define verbose 0
-#  endif
-int ZLIB_INTERNAL z_verbose = verbose;
-
-void ZLIB_INTERNAL z_error (m)
-    char *m;
-{
-    fprintf(stderr, "%s\n", m);
-    exit(1);
-}
-#endif
-
-/* exported to allow conversion of error code to string for compress() and
- * uncompress()
- */
-const char * ZEXPORT zError(err)
-    int err;
-{
-    return ERR_MSG(err);
-}
-
-#if defined(_WIN32_WCE)
-    /* The Microsoft C Run-Time Library for Windows CE doesn't have
-     * errno.  We define it as a global variable to simplify porting.
-     * Its value is always 0 and should not be used.
-     */
-    int errno = 0;
-#endif
-
-#ifndef HAVE_MEMCPY
-
-void ZLIB_INTERNAL zmemcpy(dest, source, len)
-    Bytef* dest;
-    const Bytef* source;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = *source++; /* ??? to be unrolled */
-    } while (--len != 0);
-}
-
-int ZLIB_INTERNAL zmemcmp(s1, s2, len)
-    const Bytef* s1;
-    const Bytef* s2;
-    uInt  len;
-{
-    uInt j;
-
-    for (j = 0; j < len; j++) {
-        if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
-    }
-    return 0;
-}
-
-void ZLIB_INTERNAL zmemzero(dest, len)
-    Bytef* dest;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = 0;  /* ??? to be unrolled */
-    } while (--len != 0);
-}
-#endif
-
-#ifndef Z_SOLO
-
-#ifdef SYS16BIT
-
-#ifdef __TURBOC__
-/* Turbo C in 16-bit mode */
-
-#  define MY_ZCALLOC
-
-/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
- * and farmalloc(64K) returns a pointer with an offset of 8, so we
- * must fix the pointer. Warning: the pointer must be put back to its
- * original form in order to free it, use zcfree().
- */
-
-#define MAX_PTR 10
-/* 10*64K = 640K */
-
-local int next_ptr = 0;
-
-typedef struct ptr_table_s {
-    voidpf org_ptr;
-    voidpf new_ptr;
-} ptr_table;
-
-local ptr_table table[MAX_PTR];
-/* This table is used to remember the original form of pointers
- * to large buffers (64K). Such pointers are normalized with a zero offset.
- * Since MSDOS is not a preemptive multitasking OS, this table is not
- * protected from concurrent access. This hack doesn't work anyway on
- * a protected system like OS/2. Use Microsoft C instead.
- */
-
-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
-    voidpf buf = opaque; /* just to make some compilers happy */
-    ulg bsize = (ulg)items*size;
-
-    /* If we allocate less than 65520 bytes, we assume that farmalloc
-     * will return a usable pointer which doesn't have to be normalized.
-     */
-    if (bsize < 65520L) {
-        buf = farmalloc(bsize);
-        if (*(ush*)&buf != 0) return buf;
-    } else {
-        buf = farmalloc(bsize + 16L);
-    }
-    if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
-    table[next_ptr].org_ptr = buf;
-
-    /* Normalize the pointer to seg:0 */
-    *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
-    *(ush*)&buf = 0;
-    table[next_ptr++].new_ptr = buf;
-    return buf;
-}
-
-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
-{
-    int n;
-    if (*(ush*)&ptr != 0) { /* object < 64K */
-        farfree(ptr);
-        return;
-    }
-    /* Find the original pointer */
-    for (n = 0; n < next_ptr; n++) {
-        if (ptr != table[n].new_ptr) continue;
-
-        farfree(table[n].org_ptr);
-        while (++n < next_ptr) {
-            table[n-1] = table[n];
-        }
-        next_ptr--;
-        return;
-    }
-    ptr = opaque; /* just to make some compilers happy */
-    Assert(0, "zcfree: ptr not found");
-}
-
-#endif /* __TURBOC__ */
-
-
-#ifdef M_I86
-/* Microsoft C in 16-bit mode */
-
-#  define MY_ZCALLOC
-
-#if (!defined(_MSC_VER) || (_MSC_VER <= 600))
-#  define _halloc  halloc
-#  define _hfree   hfree
-#endif
-
-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    return _halloc((long)items, size);
-}
-
-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    _hfree(ptr);
-}
-
-#endif /* M_I86 */
-
-#endif /* SYS16BIT */
-
-
-#ifndef MY_ZCALLOC /* Any system without a special alloc function */
-
-#ifndef STDC
-extern voidp  malloc OF((uInt size));
-extern voidp  calloc OF((uInt items, uInt size));
-extern void   free   OF((voidpf ptr));
-#endif
-
-voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
-    voidpf opaque;
-    unsigned items;
-    unsigned size;
-{
-    if (opaque) items += size - size; /* make compiler happy */
-    return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
-                              (voidpf)calloc(items, size);
-}
-
-void ZLIB_INTERNAL zcfree (opaque, ptr)
-    voidpf opaque;
-    voidpf ptr;
-{
-    free(ptr);
-    if (opaque) return; /* make compiler happy */
-}
-
-#endif /* MY_ZCALLOC */
-
-#endif /* !Z_SOLO */
diff --git a/libs/ext/zlib/zutil.h b/libs/ext/zlib/zutil.h
deleted file mode 100644
index 4e3dcc6..0000000
--- a/libs/ext/zlib/zutil.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2012 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id$ */
-
-#ifndef ZUTIL_H
-#define ZUTIL_H
-
-#ifdef HAVE_HIDDEN
-#  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
-#else
-#  define ZLIB_INTERNAL
-#endif
-
-#include "zlib.h"
-
-#if defined(STDC) && !defined(Z_SOLO)
-#  if !(defined(_WIN32_WCE) && defined(_MSC_VER))
-#    include <stddef.h>
-#  endif
-#  include <string.h>
-#  include <stdlib.h>
-#endif
-
-#ifdef Z_SOLO
-   typedef long ptrdiff_t;  /* guess -- will be caught if guess is wrong */
-#endif
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-typedef unsigned char  uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long  ulg;
-
-extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
-/* (size given to avoid silly warnings with Visual C++) */
-
-#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
-
-#define ERR_RETURN(strm,err) \
-  return (strm->msg = (char*)ERR_MSG(err), (err))
-/* To be used only when the state is known to be valid */
-
-        /* common constants */
-
-#ifndef DEF_WBITS
-#  define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES    2
-/* The three kinds of block type */
-
-#define MIN_MATCH  3
-#define MAX_MATCH  258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
-        /* target dependencies */
-
-#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
-#  define OS_CODE  0x00
-#  ifndef Z_SOLO
-#    if defined(__TURBOC__) || defined(__BORLANDC__)
-#      if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
-         /* Allow compilation with ANSI keywords only enabled */
-         void _Cdecl farfree( void *block );
-         void *_Cdecl farmalloc( unsigned long nbytes );
-#      else
-#        include <alloc.h>
-#      endif
-#    else /* MSC or DJGPP */
-#      include <malloc.h>
-#    endif
-#  endif
-#endif
-
-#ifdef AMIGA
-#  define OS_CODE  0x01
-#endif
-
-#if defined(VAXC) || defined(VMS)
-#  define OS_CODE  0x02
-#  define F_OPEN(name, mode) \
-     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-#endif
-
-#if defined(ATARI) || defined(atarist)
-#  define OS_CODE  0x05
-#endif
-
-#ifdef OS2
-#  define OS_CODE  0x06
-#  if defined(M_I86) && !defined(Z_SOLO)
-#    include <malloc.h>
-#  endif
-#endif
-
-#if defined(MACOS) || defined(TARGET_OS_MAC)
-#  define OS_CODE  0x07
-#  ifndef Z_SOLO
-#    if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-#      include <unix.h> /* for fdopen */
-#    else
-#      ifndef fdopen
-#        define fdopen(fd,mode) NULL /* No fdopen() */
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef TOPS20
-#  define OS_CODE  0x0a
-#endif
-
-#ifdef WIN32
-#  ifndef __CYGWIN__  /* Cygwin is Unix, not Win32 */
-#    define OS_CODE  0x0b
-#  endif
-#endif
-
-#ifdef __50SERIES /* Prime/PRIMOS */
-#  define OS_CODE  0x0f
-#endif
-
-#if defined(_BEOS_) || defined(RISCOS)
-#  define fdopen(fd,mode) NULL /* No fdopen() */
-#endif
-
-#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
-#  if defined(_WIN32_WCE)
-#    define fdopen(fd,mode) NULL /* No fdopen() */
-#    ifndef _PTRDIFF_T_DEFINED
-       typedef int ptrdiff_t;
-#      define _PTRDIFF_T_DEFINED
-#    endif
-#  else
-#    define fdopen(fd,type)  _fdopen(fd,type)
-#  endif
-#endif
-
-#if defined(__BORLANDC__) && !defined(MSDOS)
-  #pragma warn -8004
-  #pragma warn -8008
-  #pragma warn -8066
-#endif
-
-/* provide prototypes for these when building zlib without LFS */
-#if !defined(_WIN32) && (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
-    ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
-    ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
-#endif
-
-        /* common defaults */
-
-#ifndef OS_CODE
-#  define OS_CODE  0x03  /* assume Unix */
-#endif
-
-#ifndef F_OPEN
-#  define F_OPEN(name, mode) fopen((name), (mode))
-#endif
-
-         /* functions */
-
-#if defined(pyr) || defined(Z_SOLO)
-#  define NO_MEMCPY
-#endif
-#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
- /* Use our own functions for small and medium model with MSC <= 5.0.
-  * You may have to use the same strategy for Borland C (untested).
-  * The __SC__ check is for Symantec.
-  */
-#  define NO_MEMCPY
-#endif
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-#  define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-#    define zmemcpy _fmemcpy
-#    define zmemcmp _fmemcmp
-#    define zmemzero(dest, len) _fmemset(dest, 0, len)
-#  else
-#    define zmemcpy memcpy
-#    define zmemcmp memcmp
-#    define zmemzero(dest, len) memset(dest, 0, len)
-#  endif
-#else
-   void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
-   int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
-   void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG
-#  include <stdio.h>
-   extern int ZLIB_INTERNAL z_verbose;
-   extern void ZLIB_INTERNAL z_error OF((char *m));
-#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
-#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
-#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
-#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
-#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
-#else
-#  define Assert(cond,msg)
-#  define Trace(x)
-#  define Tracev(x)
-#  define Tracevv(x)
-#  define Tracec(c,x)
-#  define Tracecv(c,x)
-#endif
-
-#ifndef Z_SOLO
-   voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
-                                    unsigned size));
-   void ZLIB_INTERNAL zcfree  OF((voidpf opaque, voidpf ptr));
-#endif
-
-#define ZALLOC(strm, items, size) \
-           (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-
-/* Reverse the bytes in a 32-bit value */
-#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
-                    (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
-
-#endif /* ZUTIL_H */
diff --git a/libs/kapp/Makefile b/libs/kapp/Makefile
index e71434e..7fdc289 100644
--- a/libs/kapp/Makefile
+++ b/libs/kapp/Makefile
@@ -87,14 +87,12 @@ $(ILIBDIR)/libkapp: $(addprefix $(ILIBDIR)/libkapp.,$(LIBX))
 KAPP_SRC = \
 	main \
 	args \
-	tokenizer \
 	sysmain
 
 KAPP_OBJ = \
 	$(addsuffix .$(OBJX),$(KAPP_SRC))
 
 KAPP_LIB = \
-	-dvfs \
 	-dklib
 
 $(ILIBDIR)/libkapp.$(LIBX): $(KAPP_OBJ)
@@ -115,10 +113,6 @@ LOADLIB_SRC = \
 	loader-meta \
 	log-xml
 
-ifneq (win,$(OS))
-	LOADLIB_SRC += queue-file
-endif
-
 LOADLIB_OBJ = \
 	$(addsuffix .$(LOBX),$(LOADLIB_SRC))
 
@@ -126,10 +120,6 @@ LOADLIB_LIB = \
 	-dkfs \
 	-dklib
 
-ifneq (win,$(OS))
-	LOADLIB_LIB += -dkq
-endif
-
 $(LIBDIR)/libload.$(LIBX): $(LOADLIB_OBJ)
 	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(LOADLIB_LIB)
 
diff --git a/libs/kapp/args.c b/libs/kapp/args.c
index 06ef91c..f4a9279 100644
--- a/libs/kapp/args.c
+++ b/libs/kapp/args.c
@@ -27,7 +27,6 @@
 #include <kapp/extern.h>
 #include <sysalloc.h>
 
-#include <klib/report.h>
 #include <klib/rc.h>
 #include <klib/container.h>
 #include <klib/text.h>
@@ -37,12 +36,9 @@
 #include <klib/out.h>
 #include <klib/status.h>
 #include <klib/debug.h>
-#include <kfg/config.h>
 #include <kapp/main.h>
 #include <kapp/args.h>
 
-#include "args_debug.h"
-
 #include <assert.h>
 #include <ctype.h>
 #include <stdio.h>
@@ -50,24 +46,9 @@
 #include <string.h>
 #include <stdarg.h>
 
-#define USE_INLINING   0
-#ifndef USE_OPTFILE
-#define USE_OPTFILE    0
-#endif
-#define USE_EARLY_HELP 1
-#define USE_EARLY_VERSION 1
-
-/* many tools acquired some usage for '-q'
-   other than the standard meaning of "be quiet".
-   while we phase this out, allow these tools
-   to replace the default usage. */
-#define HONOR_LEGACY_Q_ALIAS 1
-#if HONOR_LEGACY_Q_ALIAS
-#define LEGACY_Q_ALIAS_DEPRECATED 1
-#define LEGACY_Q_ALIAS_ERROR      0
-#endif
+#define USE_INLINING 0
 
-bool CC is_valid_name (const char * string)
+KAPP_EXTERN bool CC is_valid_name (const char * string)
 {
     /* we do not allow leading - or empty names */
     if ((*string == '\0') || (*string == '-'))
@@ -146,14 +127,12 @@ typedef struct Option
 {
     BSTNode     n;              /* BSTree node storage */
 
-    size_t      size;           /* name length (size if UTF-8) */
     Vector      values;         /* Vector of set values */
     uint32_t    count;          /* count of times option seen on the command line */
     uint32_t    max_count;      /* if non-zero, how many times is it legal to be seen */
     bool        needs_value;    /* does this option take/require a value? */
     bool        required;       
-    bool        deprecated;     /* a warning if used */
-    bool        error;          /* an error if used */
+    size_t      size;           /* name length (size if UTF-8) */
     char        name [1];       /* key value The 1 will be the NUL */
 } Option;
 
@@ -161,7 +140,6 @@ static
 rc_t CC OptionMake (Option ** pself, const char * name, size_t size, uint32_t max_count, bool needs_value, bool required)
 {
     Option *   self;
-    rc_t rc;
 
     assert (pself);
     assert (name);
@@ -171,23 +149,20 @@ rc_t CC OptionMake (Option ** pself, const char * name, size_t size, uint32_t ma
     self = malloc (sizeof (*self) + size);
     if (self == NULL)
     {
-        rc = RC (rcRuntime, rcArgv, rcConstructing, rcMemory, rcExhausted);
-        PLOGERR (klogErr, (klogErr, rc, "Error adding option '$(O)'","O=--%s",name));
-    }
-    else 
-    {
-        if ((self->needs_value = needs_value) != false)
-            VectorInit (&self->values,0,4);
-        else
-            memset (&self->values, sizeof(self->values), 0);
-
-        self->required = required;
-        self->deprecated = self->error = false;
-        self->count = 0;
-        self->max_count = max_count;
-        self->size = size;
-        string_copy (self->name, size+1, name, size);
+        *pself = NULL;
+        return RC (rcRuntime, rcArgv, rcConstructing, rcMemory, rcExhausted);
     }
+
+    if ((self->needs_value = needs_value) != false)
+        VectorInit (&self->values,0,4);
+    else
+        memset (&self->values, sizeof(self->values), 0);
+    self->required = required;
+
+    self->count = 0;
+    self->max_count = max_count;
+    self->size = size;
+    string_copy (self->name, size+1, name, size);
     *pself = self;
     return 0;
 }
@@ -272,23 +247,19 @@ rc_t CC OptionGetValue (const Option * self, uint32_t number, const char ** valu
 static
 rc_t CC OptionAddValue (Option * self, const char * value, size_t size)
 {
-    ParamValue * pvalue;
     rc_t rc = 0;
+    ParamValue * pvalue;
 
     assert (self);
 
     ++self->count;
-
-/*     KOutMsg ("%s: name %s count %u max_count %u value %s\n", __func__, self->name, self->count, self->max_count, value); */
     if (self->max_count && (self->count > self->max_count))
     {
         --self->count;
-        rc = RC (rcRuntime, rcArgv, rcInserting, rcData, rcExcessive);
-        PLOGERR (klogErr,
-                 (klogErr, rc, "Too many occurrences of option '$(O)'",
-                  "O=--%s", self->name));
+        fprintf (stderr, "Too many occurances of %s option\n", self->name);
+        return RC (rcRuntime, rcArgv, rcInserting, rcData, rcExcessive);
     }
-    else if (self->needs_value)
+    if (self->needs_value)
     {
         assert (value);     /* gotta have a value */
         assert (size);      /* value can't be a NUL string */
@@ -301,15 +272,9 @@ rc_t CC OptionAddValue (Option * self, const char * value, size_t size)
             rc = VectorAppend (&self->values, NULL, pvalue);
             if (rc)
             {
-                PLOGERR (klogErr,
-                         (klogErr, rc, "error capturing parameter '$(O)'",
-                          "O=--%s", self->name));
+                fprintf (stderr, "error capturing parameter %s\n", self->name);
                 ParamValueWhack (pvalue);
             }
-            else
-            {
-                ARGS_DBG( "added option-value %s", self->name );
-            }
         }
     }
     return rc;
@@ -344,11 +309,8 @@ int CC OptionSort (const BSTNode * item, const BSTNode * n)
 typedef struct OptAlias
 {
     BSTNode     n;              /* BSTree Node storage */
-
-    Option *   option;          /* full name node for which this is an alias */
+    Option *   option;         /* full name node for which this is an alias */
     size_t      size;
-    bool        deprecated;     /* warning if used */
-    bool        error;          /* error if used */
     char        name[1];        /* utf8 name */
 } OptAlias;
 
@@ -365,16 +327,11 @@ rc_t CC OptAliasMake (OptAlias ** pself, const char * name, size_t size,
     self = malloc (sizeof (*self) + size);
     if (self == NULL)
     {
-        rc_t rc = RC (rcRuntime, rcArgv, rcConstructing, rcMemory, rcExhausted);
-        PLOGERR (klogErr,
-                 (klogErr, rc, "Error creating structure for alias '$(A)' for parameter '$(B)", 
-                  "A=%s,B=%s", name, option->name));
         *pself = NULL;
-        return rc;
+        return RC (rcRuntime, rcArgv, rcConstructing, rcMemory, rcExhausted);
     }
     self->option = option;
     self->size = size;
-    self->deprecated = self->error = false;
     string_copy (self->name, size + 1, name, size);
     *pself = self;
     return 0;
@@ -569,12 +526,9 @@ struct Args
 #if NOT_USED_YET
     HelpGroup * def_help;
 #endif
-#if HONOR_LEGACY_Q_ALIAS
-    bool   qalias_replaced;
-#endif
 };
 
-rc_t CC ArgsMake (Args ** pself)
+KAPP_EXTERN rc_t CC ArgsMake (Args ** pself)
 {
     rc_t rc;
     Args * self;
@@ -595,11 +549,8 @@ rc_t CC ArgsMake (Args ** pself)
         BSTreeInit (&self->aliases);
         VectorInit (&self->argv,0,8);
         VectorInit (&self->params,0,8);
-        VectorInit (&self->help,0,16);
-#if HONOR_LEGACY_Q_ALIAS
-        self -> qalias_replaced = false;
-#endif
 #if NOT_USED_YET
+        VectorInit (&self->help,0,16);
         rc = HelpGroupMake (&help, "NCBI Options");
         if (rc)
         {
@@ -618,7 +569,7 @@ rc_t CC ArgsMake (Args ** pself)
     return rc;
 }
 
-rc_t CC ArgsWhack (Args * self)
+KAPP_EXTERN rc_t CC ArgsWhack (Args * self)
 {
     if (self)
     {
@@ -645,27 +596,27 @@ rc_t CC ArgsAddOption (Args * self, const OptDef * option)
 
     if (self == NULL)
     {
-        rc = RC (rcRuntime, rcArgv, rcConstructing, rcSelf, rcNull);
-        LOGERR (klogInt, rc, "Error adding an opion with no object");
-        return rc;
+        fprintf (stderr, "Error calling %s with NULL first parameter\n", __func__);
+        return RC (rcRuntime, rcArgv, rcConstructing, rcSelf, rcNull);
     }
     if (option == NULL)
     {
-        rc = RC (rcRuntime, rcArgv, rcConstructing, rcParam, rcNull);
-        LOGERR (klogInt, rc, "Error adding an option with no option name");
-        return rc;
+        fprintf (stderr, "Error calling %s with NULL second parameter\n", __func__);
+        return RC (rcRuntime, rcArgv, rcConstructing, rcParam, rcNull);
     }
     name = option->name;
     if (! is_valid_name (name))
     {
-        rc = RC (rcRuntime, rcArgv, rcConstructing, rcName, rcInvalid);
-        PLOGERR (klogInt, (klogInt, rc, "Error using illegal option name '$(O)'", "O=--%s", name));
-        return rc;
+        fprintf (stderr, "Error using illegal option name %s\n", name);
+        return RC (rcRuntime, rcArgv, rcConstructing, rcName, rcInvalid);
     }
     size = string_size (name);
     rc = OptionMake (&node, name, size, option->max_count, option->needs_value, option->required);
     if (rc)
+    {
+        fprintf (stderr, "Error initializing structures to parase parameters\n");
         return rc;
+    }
     size ++;
 
     prev = NULL;
@@ -675,21 +626,20 @@ rc_t CC ArgsAddOption (Args * self, const OptDef * option)
         if (GetRCState(rc) == rcBusy)
         {
             rc = RC (rcRuntime, rcArgv, rcConstructing, rcName, rcBusy);
-            PLOGERR (klogInt,
-                     (klogInt, rc, "duplicate option name '$(O)'", "O=--%s", name));
+            fprintf (stderr, "duplicate option name %s\n", name);
         }
         else
-            PLOGERR (klogInt,
-                     (klogInt, rc, "unknown error inserting option name '$(O)'", "O=--%s", name));
+            fprintf (stderr, "unknown error inserting %s\n", name);
 
         OptionWhack (node);
         return rc;
+
     }
     if (option->aliases)     /* any single character aliases? */
     {
         const char * startc;
         const char * endc;
-        int incr;
+        size_t incr;
 
         for ((startc = option->aliases),(endc = startc + string_size (startc));
              startc < endc; startc += incr)
@@ -703,80 +653,54 @@ rc_t CC ArgsAddOption (Args * self, const OptDef * option)
             if (incr < 0)
             {
                 rc = RC (rcRuntime, rcArgv, rcConstructing, rcName, rcCorrupt);
-                PLOGERR (klogInt,
-                         (klogInt, rc, "Error parsing alias string '$(A)' from '$(B)' for '$(C)'",
-                          "A=%s,B=%s,C=%s", startc, option->aliases, name));
+                fprintf (stderr, "Error parsing alias string %s from %s for %s\n",
+                         startc, option->aliases, name);
                 break;
             }
             if (incr > 4)
             {
                 rc = RC (rcRuntime, rcArgv, rcConstructing, rcName, rcCorrupt);
-                PLOGERR (klogInt,
-                         (klogInt, rc,"Error parsing UTF-8 string '$(S)'",
-                          "S=%s", startc));
+                fprintf (stderr, "Error parsing UTF-8 string %s\n", startc);
                 break;
             }
-            size = string_copy (alias_name, sizeof (alias_name), startc, incr);
+            string_copy (alias_name, sizeof (alias_name), startc, incr);
             if (! is_valid_name (alias_name))
             {
                 rc = RC (rcRuntime, rcArgv, rcConstructing, rcName, rcInvalid);
-                PLOGERR (klogInt,
-                         (klogInt, rc, "Error using invalid alias name '$(S)'",
-                          "S=%s", alias_name));
+                fprintf (stderr, "Error using invalid alias name %s", alias_name);
                 break;
             }
-#if 0
             size += incr + 1;
-#endif
             rc = OptAliasMake (&snode, alias_name, incr, node);
             if (rc)
+            {
+                fprintf (stderr, "Error creating structure for alias %s for parameter %s\n", 
+                         alias_name, node->name);
                 break;
+            }
             rc = BSTreeInsertUnique (&self->aliases, &snode->n, (BSTNode**)&sprev, OptAliasSort);
             if (rc)
             {
                 if (GetRCState(rc) == rcExists)
                 {
-#if HONOR_LEGACY_Q_ALIAS
-                    if ( ! self -> qalias_replaced && size == 1 && alias_name [ 0 ] == 'q' )
-                    {
-                        BSTreeUnlink ( & self -> aliases, & sprev -> n );
-                        rc = BSTreeInsertUnique ( & self -> aliases, & snode -> n, NULL, OptAliasSort );
-                        if ( rc != 0 )
-                            BSTreeInsert ( & self -> aliases, & sprev -> n, OptAliasSort );
-                        else
-                        {
-                            OptAliasWhack ( sprev );
-                            self -> qalias_replaced = true;
-#if LEGACY_Q_ALIAS_DEPRECATED
-                            snode -> deprecated = true;
-#elif LEGACY_Q_ALIAS_ERROR
-                            snode -> error = true;
-#endif
-                            continue;
-                        }
-                    }
-#endif
                     rc = RC (rcRuntime, rcArgv, rcConstructing, rcName, rcExists);
-                    PLOGERR (klogInt,
-                             (klogInt, rc, "duplicate alias name '$(S)'",
-                              "S=%s", alias_name));
+                    fprintf (stderr, "duplicate alias name %s\n", alias_name);
                 }
                 else
-                {
-                    PLOGERR (klogErr,
-                             (klogErr, rc, "unknown error inserting alias '$(S)'",
-                              "S=%s", alias_name));
-                }
+                    fprintf (stderr, "%d unknown error inserting alias %s\n", rc, alias_name);
 
                 OptAliasWhack (snode);
                 break;
             }
         }
     }
+    if (rc == 0)
+    {
+    }
     return rc;
 }
 
-rc_t CC ArgsAddOptionArray (Args * self, const OptDef * option, uint32_t count /*, 
+KAPP_EXTERN rc_t CC ArgsAddOptionArray (Args * self, const OptDef * option, uint32_t count /*, 
                                                                                              rc_t (*header_fmt)(Args * args, const char * header),
                                                                                              const char * header */)
 {
@@ -816,7 +740,7 @@ rc_t CC ArgsAddOptionArray (Args * self, const OptDef * option, uint32_t count /
 
 /*
  */
-rc_t CC next_arg (const Args * self, int * pix, int max, const char ** pvalue)
+KAPP_EXTERN rc_t CC next_arg (const Args * self, int * pix, int max, const char ** pvalue)
 {
     int ix;
 
@@ -833,50 +757,32 @@ rc_t CC next_arg (const Args * self, int * pix, int max, const char ** pvalue)
 typedef struct ArgsReqCheckData
 {
     Option * missing_option;
-    rc_t rc;
 } ArgsReqCheckData;
 
 static
-void CC ArgsCheckRequiredInt (BSTNode * n, void * _data)
+bool CC ArgsCheckRequired (BSTNode * n, void * _data)
 {
-#if 1
+#if 0
+/* Need to rethink this. If help is asked for this shouldn't fail */
     ArgsReqCheckData * data;
     Option * opt;
-    rc_t rc;
 
     data = _data;
     opt = (Option*)n;
+
     if (opt->required && ! opt->count)
     {
-        rc = RC( rcRuntime, rcArgv, rcParsing, rcParam, rcNotFound );
-        PLOGERR (klogWarn, (klogWarn, rc, "Error missing required parameter '$(P)'",
-                            "P=%s", opt->name));
-        if (data->missing_option == NULL)
-        {
-            data->missing_option = opt;
-            data->rc = rc;
-        }
+        data->missing_option = opt;
+        return true;
     }
 #endif
+    return false;
 }
 
-/* check for required parameters */
-rc_t CC ArgsCheckRequired (Args * self)
-{
-    ArgsReqCheckData r = { NULL, false };
-
-    BSTreeForEach ( &self->names, false, ArgsCheckRequiredInt, &r );
-
-    return r.rc;
-}
-
-static
-rc_t ArgsParseInt (Args * self, int argc, char *argv[])
+KAPP_EXTERN rc_t CC ArgsParse (Args * self, int argc, char *argv[])
 {
-    rc_t rc = 0;        /* hard fail - quit processing */
-    rc_t orc = 0;       /* soft fail - keep processing but we'll fail in the end */
-    rc_t qrc = 0;       /* transient - if set will move to a previously unset orc */
-    int ix, ix_from, ix_to;
+    rc_t rc = 0;
+    int ix;
     size_t jx;
     Option * node;
     const char * parg;
@@ -886,131 +792,83 @@ rc_t ArgsParseInt (Args * self, int argc, char *argv[])
     const char * value = NULL;
     size_t value_len;
     bool needs_value;
-    uint32_t n_in_argv_before;
-
-    n_in_argv_before = VectorLength( &self->argv );
 
     /* first capture original argument list and store in our format */
-    for ( ix = 0; ix < argc; ++ix )
+    for (ix = 0; ix < argc; ++ix)
     {
         size_t len;
 
         parg = argv[ix];
-        len = strlen ( parg );
+        len = strlen (parg);
 
-        rc = ParamValueMake ( &arg, parg, len );
-        if ( rc == 0 )
-            rc = VectorAppend ( &self->argv, NULL, arg );
-        if ( rc )
+        rc = ParamValueMake (&arg, parg, len);
+        if (rc == 0)
+            rc = VectorAppend (&self->argv, NULL, arg);
+        if (rc)
             break;
-        else
-            ARGS_DBG( "ArgsParse: inserted '%s' into self->argv", parg );
     }
     
-    if ( rc )
+    if (rc)
         return rc;
 
-    if ( n_in_argv_before == 0 )
+    for (ix = 1; ix < argc; ++ix)
     {
-        ix_from = 1;
-        ix_to = argc;
-    }
-    else
-    {
-        ix_from = n_in_argv_before;
-        ix_to = n_in_argv_before + argc;
-    }
-
-    for ( ix = ix_from; ix < ix_to; ++ix )
-    {
-        parg = ( const char * )VectorGet( &self->argv, ix );
-
-        ARGS_DBG( "ArgsParse: parsing '%s' from self->argv", parg );
-
-        if ( parg[ 0 ] != '-' )
+        parg = (const char *)VectorGet (&self->argv, ix);
+        if (parg[0] != '-')
         {
             /* we can do this because it is already a (const char *)
              * and (ParamValue *) after the first loop */
-            rc = VectorAppend ( &self->params, NULL, parg );
-            if ( rc )
+            rc = VectorAppend (&self->params, NULL, parg);
+            if (rc)
                 break;
-            ARGS_DBG( "ArgsParse: appending to params '%s'", parg );
         }
         else
         {
             node = NULL;
-            if ( parg[ 1 ] == '-' )
+            if (parg[1] == '-')
             {
-                size_t nlen = string_copy( name, sizeof( name ), parg + 2, string_size( parg + 2 ) );
-                ARGS_DBG( "ArgsParse: '%s' is a '--' parameter!", parg );
-                equal_sign = string_chr( name, nlen, '=' );
-                if ( equal_sign )
+                size_t nlen=string_copy (name, sizeof (name), parg+2, string_size (parg+2));
+                equal_sign = string_chr (name, nlen, '=');
+                if (equal_sign)
                     *equal_sign = '\0';
 
-                node = ( Option* )BSTreeFind( &self->names, name, OptionCmp );
-                if ( node == NULL )
+                node = (Option*)BSTreeFind (&self->names, name, OptionCmp);
+                if (node == NULL)
                 {
-                    qrc = RC( rcApp, rcArgv, rcParsing, rcParam, rcUnknown );
-                    PLOGERR (klogErr,
-                             (klogErr, qrc,
-                              "Unknown argument '$(O)'", "O=--%s", name ));
-/*                     break; */
-                    if (orc == 0) /* non-fatal */
-                        orc = qrc;
+                    rc = RC (rcApp, rcArgv, rcParsing, rcParam, rcUnknown);
+                    fprintf (stderr, "Unknown argument %s\n", name);
+                    break;
                 }
                 else
                 {
-                    needs_value = OptionNeedsValue( node );
-                    ARGS_DBG( "ArgsParse: found node for parameter '%s'", parg );
-                    if ( needs_value )
+                    needs_value = OptionNeedsValue (node);
+                    if (needs_value)
                     {
-                        ARGS_DBG( "ArgsParse: parameter '%s' needs value", parg );
-                        if ( equal_sign != NULL )
-                            value = parg + 2 + ( ( equal_sign + 1 ) - name );
-
-                        else if ( ix + 1 >= ix_to )
-                        {
-                            rc = RC( rcRuntime, rcArgv, rcParsing, rcParam, rcExhausted );
-                            PLOGERR (klogErr,
-                                     (klogErr, qrc,"Option '$(O)' is missing a value", "O=--%s", node->name ));
-                        }
+                        if (equal_sign != NULL)
+                            value = parg + 2 + ((equal_sign+1) - name);
                         else
-                        {
-                            ARGS_DBG( "ArgsParse: calling next_arg()", 0 );
-                            rc = next_arg( self, &ix, ix_to, &value );
-                        }
+                            rc = next_arg (self, &ix, argc, &value);
 
-                        if ( rc == 0 )
-                        {
-                            assert ( value != NULL );
+                        if (rc)
+                            break;
 
-                            value_len = string_size( value );
+                        assert (value != NULL);
 
-                            rc = OptionAddValue( node, value, value_len );
+                        value_len = string_size (value);
+
+                        rc = OptionAddValue (node, value, value_len);
+                        if (rc)
+                        {
+                            break;
                         }
                     }
                     else
                     {
-                        rc = OptionAddValue( node, NULL, 0 );
-                    }
-
-                    if ( rc != 0 )
-                        break;
-
-                    if ( node -> error )
-                    {
-                        rc = RC ( rcApp, rcArgv, rcParsing, rcParam, rcUnsupported );
-                        PLOGERR (klogErr,
-                                 (klogErr, rc,
-                                  "Deprecated argument '$(O)' is no longer supported.", "O=--%s", name ));
-                        break;
-                    }
-
-                    if ( node -> deprecated )
-                    {
-                        PLOGMSG (klogWarn,
-                                 (klogWarn,
-                                  "Deprecated argument '$(O)' may not be supported in future releases.", "O=--%s", name ));
+                        rc = OptionAddValue (node, NULL, 0);
+                        if (rc)
+                        {
+                            break;
+                        }
                     }
                 }
             }
@@ -1019,184 +877,86 @@ rc_t ArgsParseInt (Args * self, int argc, char *argv[])
                 const char * end;
                 uint32_t name_len;
 
-                end = parg + string_size( parg );
-                ARGS_DBG( "ArgsParse: '%s' is a '-' parameter!", parg );
-                for ( jx = 1; parg[ jx ]; jx += name_len )
+                end = parg + string_size (parg);
+                for (jx = 1; parg[jx]; jx += name_len)
                 {
                     OptAlias *alias;
                     uint32_t c;
 
-                    name_len = utf8_utf32( &c, parg + jx, end ); 
-                    string_copy( name, sizeof( name ), parg + jx, name_len );
+                    name_len = utf8_utf32 ( &c, parg+jx, end); 
+                    string_copy (name, sizeof (name), parg+jx, name_len);
 
-                    alias = ( OptAlias* )BSTreeFind( &self->aliases, name, OptAliasCmp );
-                    if ( alias == NULL )
+                    alias = (OptAlias*)BSTreeFind (&self->aliases, name, OptAliasCmp);
+                    if (alias == NULL)
                     {
-                        qrc = RC( rcApp, rcArgv, rcParsing, rcParam, rcUnknown );
-                        PLOGERR (klogErr,
-                                 (klogErr, qrc,
-                                  "Unknown argument '$(O)'", "O=-%s", name ));
-
-                        if (orc == 0)
-                            orc = qrc;
+                        rc = RC (rcApp, rcArgv, rcParsing, rcParam, rcUnknown);
+                        fprintf (stderr, "Unknown argument %s\n", name);
                     }
                     else
                     {
-                        bool break_loop = false;
-                        node = OptAliasOption( alias );
-                        if ( OptionNeedsValue( node ) )
+                        node = OptAliasOption (alias);
+                        if (OptionNeedsValue(node))
                         {
-                            if ( parg[ jx + name_len ] == '=' )
+                            if (parg[jx+name_len] == '=')
                             {
                                 ++jx;
-                                if ( parg[ jx + name_len ] )
+                                if (parg[jx+name_len])
                                     value = parg + jx + name_len;
                                 else
                                 {
-                                    qrc = RC( rcRuntime, rcArgv, rcParsing, rcParam, rcExhausted );
-                                    LOGERR (klogErr, qrc,
-                                            "Value missing with alias followed by =" );
-                                    if (orc == 0)
-                                        orc = qrc;
-                                    break_loop = true;
+                                    rc = RC (rcRuntime, rcArgv, rcParsing, rcParam, rcExhausted);
+                                    fprintf (stderr, "Value missing with alias followed by =\n");
                                 }
                             }
-                            else if ( parg[ jx + name_len ] )
+                            else if(parg[jx+name_len])
                             {
                                 value = parg + jx + name_len;
                             }
-                            else if ( ix + 1 >= ix_to )
-                            {
-                                rc = RC( rcRuntime, rcArgv, rcParsing, rcParam, rcExhausted );
-                                PLOGERR (klogErr,
-                                         (klogErr, rc,
-                                          "Option '$(O)' ( alias for '$(N)' ) is missing a value",
-                                          "O=-%s,N=--%s", name, node->name ));
-                                break;
+                            else if( ix + 1 >= argc ) {
+                                rc = RC (rcRuntime, rcArgv, rcParsing, rcParam, rcExhausted);
+                                fprintf (stderr, "Option '%s' is missing a value\n", node->name);
                             }
                             else
-                            {
-                                value = ( const char * )VectorGet( &self->argv, ++ix );
-                            }
-                            ARGS_DBG( "ArgsParse: the value of '%s' is '%s'", name, value );
-
-                            if ( rc == 0 )
-                                rc = OptionAddValue( node, value, string_size( value ) );
-                            break_loop = true;
-                        }
-                        else
-                        {
-                            rc = OptionAddValue( node, NULL, 0 );
-                        }
-
-                        if ( rc != 0 )
+                                value = argv [++ix];
+                            if (rc == 0)
+                                rc = OptionAddValue (node, value, string_size (value));
                             break;
-
-                        if ( node -> error )
-                        {
-                            rc = RC ( rcApp, rcArgv, rcParsing, rcParam, rcUnsupported );
-                            PLOGERR (klogErr,
-                                     (klogErr, rc,
-                                      "Deprecated argument '$(O)' ( alias for '$(N)' ) is no longer supported.",
-                                      "O=-%s,N=--%s"
-                                      , name
-                                      , node->name
-                                         ));
-                            break;
-                        }
-
-                        if ( alias -> error )
-                        {
-                            rc = RC ( rcApp, rcArgv, rcParsing, rcParam, rcUnsupported );
-                            PLOGERR (klogErr,
-                                     (klogErr, rc,
-                                      "Deprecated argument '$(O)' is no longer supported. "
-                                      "Please use '$(N)' instead.",
-                                      "O=-%s,N=--%s"
-                                      , name
-                                      , node->name
-                                         ));
-                            break;
-                        }
-
-                        if ( node -> error )
-                        {
-                            PLOGMSG (klogWarn,
-                                     (klogWarn,
-                                      "Deprecated argument '$(O)' ( alias for '$(N)' ) may not be supported in future releases.",
-                                      "O=-%s,N=--%s"
-                                      , name
-                                      , node->name
-                                         ));
                         }
-
-                        else if ( alias -> deprecated )
+                        else
                         {
-                            PLOGMSG (klogWarn,
-                                     (klogWarn,
-                                      "Deprecated argument '$(O)' may not be supported in future releases. "
-                                      "Please use '$(N)' instead.",
-                                      "O=-%s,N=--%s"
-                                      , name
-                                      , node->name
-                                         ));
+                            rc = OptionAddValue (node, NULL, 0);
+                            if (rc)
+                                break;
                         }
-
-                        if ( break_loop )
-                            break;
                     }
                 }
             }
         }
-        if ( rc )
+        if (rc)
             break;
     }
 
-#if _DEBUGGING
-    (void)ArgsHandleDebug (self);
-#endif
-#if USE_EARLY_HELP
+    /* check for required parameters */
     if (rc == 0)
     {
-        rc = ArgsHandleHelp (self);
-        /* if "help" wasn't found we aren't using standard arguments so don't
-         * call it an error: if OptionGout changes this might have to as well */
-        if (rc == SILENT_RC (rcRuntime, rcArgv, rcAccessing, rcName, rcNotFound))
-            rc = 0;
-    }
-#endif
-#if USE_EARLY_VERSION
-    if (rc == 0)
-    {
-        rc = ArgsHandleVersion (self);
-        if (rc == SILENT_RC (rcRuntime, rcArgv, rcAccessing, rcName, rcNotFound))
-            rc = 0;
-    }
-#endif
-    /* now recovery non-fatal errors into final rc */
-    if (rc == 0)
-        rc = orc;
+        bool b;
+        ArgsReqCheckData r;
 
-    if ( rc )
-    {
-        ReportSilence();
+
+        b = BSTreeDoUntil (&self->names, false, ArgsCheckRequired, &r);
+        if (b)
+        {
+            fprintf (stderr, "Error missing required parameter %.*s\n",
+                     (int)r.missing_option->size, r.missing_option->name);
+            rc = RC (rcRuntime, rcArgv, rcParsing, rcParam, rcNotFound);
+        }
     }
-    return rc;
-}
 
-rc_t CC ArgsParse (Args * self, int argc, char *argv[])
-{
-    KLogLevel lvl = KLogLevelGet ();
-    rc_t rc = KLogLevelSet ( klogWarn );
-    rc = ArgsParseInt ( self, argc, argv );
-    KLogLevelSet ( lvl );
     return rc;
 }
 
-rc_t CC ArgsOptionCount (const Args * self, const char * option_name, uint32_t * count)
+KAPP_EXTERN rc_t CC ArgsOptionCount (const Args * self, const char * option_name, uint32_t * count)
 {
-    rc_t rc;
-
     if (self == NULL)
         return RC (rcRuntime, rcArgv, rcAccessing, rcSelf, rcNull);
     else if (count == NULL)
@@ -1207,20 +967,14 @@ rc_t CC ArgsOptionCount (const Args * self, const char * option_name, uint32_t *
 
         node = (const Option*)BSTreeFind (&self->names, option_name, OptionCmp);
         if (node == NULL)
-        {
-            rc = RC (rcRuntime, rcArgv, rcAccessing, rcName, rcNotFound);
-/* this was removed to shut up about "help" not being found during tests
-            PLOGERR (klogWarn, (klogWarn, rc, "Option name not found '$(S)'", "S=%s", option_name));
- */
-            return rc;
-        }
+            return RC (rcRuntime, rcArgv, rcAccessing, rcName, rcNotFound);
 
         *count = OptionGetCount (node);
         return 0;
     }
 }
 
-rc_t CC ArgsOptionValue (const Args * self, const char * option_name, uint32_t iteration,
+KAPP_EXTERN rc_t CC ArgsOptionValue (const Args * self, const char * option_name, uint32_t iteration,
                                      const char ** value_string)
 {
     const Option * node;
@@ -1240,7 +994,7 @@ rc_t CC ArgsOptionValue (const Args * self, const char * option_name, uint32_t i
         return  OptionGetValue (node, iteration, value_string);
 }
 
-rc_t CC ArgsParamCount (const Args * self, uint32_t * count)
+KAPP_EXTERN rc_t CC ArgsParamCount (const Args * self, uint32_t * count)
 {
     if (self == NULL)
         return RC (rcRuntime, rcArgv, rcAccessing, rcSelf, rcNull);
@@ -1251,7 +1005,7 @@ rc_t CC ArgsParamCount (const Args * self, uint32_t * count)
     return 0;
 }
 
-rc_t CC ArgsParamValue (const Args * self, uint32_t iteration, const char ** value_string)
+KAPP_EXTERN rc_t CC ArgsParamValue (const Args * self, uint32_t iteration, const char ** value_string)
 {
     if (self == NULL)
         return RC (rcRuntime, rcArgv, rcAccessing, rcSelf, rcNull);
@@ -1269,7 +1023,7 @@ rc_t CC ArgsParamValue (const Args * self, uint32_t iteration, const char ** val
     return 0;
 }
 
-rc_t CC ArgsArgvCount (const Args * self, uint32_t * count)
+KAPP_EXTERN rc_t CC ArgsArgvCount (const Args * self, uint32_t * count)
 {
     if (self == NULL)
         return RC (rcRuntime, rcArgv, rcAccessing, rcSelf, rcNull);
@@ -1283,12 +1037,12 @@ rc_t CC ArgsArgvCount (const Args * self, uint32_t * count)
 #undef ArgsArgc
 #endif
 
-rc_t CC ArgsArgc (const Args * self, uint32_t * count)
+KAPP_EXTERN rc_t CC ArgsArgc (const Args * self, uint32_t * count)
 {
     return ArgsArgvCount (self, count);
 }
 
-rc_t CC ArgsArgvValue (const Args * self, uint32_t iteration, const char ** value_string)
+KAPP_EXTERN rc_t CC ArgsArgvValue (const Args * self, uint32_t iteration, const char ** value_string)
 {
     if (self == NULL)
         return RC (rcRuntime, rcArgv, rcAccessing, rcSelf, rcNull);
@@ -1309,29 +1063,18 @@ rc_t CC ArgsArgvValue (const Args * self, uint32_t iteration, const char ** valu
 #define USAGE_MAX_SIZE 81
 static
 const char * verbose_usage[] = 
-{ "Increase the verbosity of the program status messages.",
-  "Use multiple times for more verbosity.","Negates quiet.", NULL };
-static
-const char * quiet_usage[] = 
-{ "Turn off all status messages for the program.",
-  "Negated by verbose.", NULL };
+{ "Increase the verbosity level of the program.",
+  "Use multiple times for more verbosity.", NULL };
 static
 const char * debug_usage[] = 
 { "Turn on debug output for module.",
   "All flags if not specified.", NULL };
 static
 const char * help_usage[] = 
-{ "Output a brief explanation for the program.", NULL };
-static
-const char * report_usage[] = 
-{ "Control program execution environment report generation (if implemented).",
-    "One of (never|error|always). Default is error", NULL };
+{ "Output a brief explantion for the program.", NULL };
 static
 const char * version_usage[] = 
 { "Display the version of the program then quit.", NULL };
-static
-const char * optfile_usage[] = 
-{ "Read more options and parameters from the file.", NULL};
 static 
 char log0 [USAGE_MAX_SIZE];
 static 
@@ -1339,9 +1082,6 @@ char log1 [USAGE_MAX_SIZE];
 static
 const char * log_usage[] = 
 { "Logging level as number or enum string.", log0, log1, NULL };
-static
-const char * no_user_settings_usage[] = 
-{ "Turn off user-specific configuration.", NULL };
 
 static
 void CC gen_log_usage (const char ** _buffers)
@@ -1420,17 +1160,17 @@ void CC gen_log_usage (const char ** _buffers)
 OptDef StandardOptions[]  =
 {
     {
-        OPTION_HELP,    ALIAS_HELP,    NULL, 
+	OPTION_HELP,    ALIAS_HELP,    NULL, 
         help_usage,
-        OPT_UNLIM, false, false
+	OPT_UNLIM, false, false
     },
     {
-        OPTION_VERSION, ALIAS_VERSION, NULL,
+	OPTION_VERSION, ALIAS_VERSION, NULL,
         version_usage,
-        OPT_UNLIM, false, false
+	OPT_UNLIM, false, false
     },
     {
-        OPTION_LOG_LEVEL, ALIAS_LOG_LEVEL, gen_log_usage,
+	OPTION_LOG_LEVEL, ALIAS_LOG_LEVEL, gen_log_usage,
         log_usage,
         OPT_UNLIM, true, false
     },
@@ -1440,42 +1180,20 @@ OptDef StandardOptions[]  =
         OPT_UNLIM, false, false
     },
     {
-        OPTION_QUIET, ALIAS_QUIET, NULL,
-        quiet_usage,
-        OPT_UNLIM, false, false
-    },
-#if USE_OPTFILE
-    {
-        OPTION_OPTFILE, ALIAS_OPTFILE, NULL,
-        optfile_usage,
-        OPT_UNLIM, true, false
-    },
-#endif
-    {
         OPTION_DEBUG, ALIAS_DEBUG, NULL,
         debug_usage, 
         OPT_UNLIM, true, false
-    },
-    {
-        OPTION_NO_USER_SETTINGS, NULL, NULL,
-        no_user_settings_usage,
-        OPT_UNLIM, false, false
-    },
-    {   /* OPTION_REPORT is used in klib/report.c */
-        OPTION_REPORT, NULL, NULL,
-        report_usage, 
-        OPT_UNLIM, true, false
     }
 };
 
-rc_t CC ArgsAddStandardOptions(Args * self)
+KAPP_EXTERN rc_t CC ArgsAddStandardOptions(Args * self)
 {
     return ArgsAddOptionArray (self, StandardOptions,
                                sizeof (StandardOptions) / sizeof (OptDef)
                                /*, NULL, NULL */ );
 }
 
-rc_t CC ArgsMakeStandardOptions (Args** pself)
+KAPP_EXTERN rc_t CC ArgsMakeStandardOptions (Args** pself)
 {
     Args * self;
     rc_t rc;
@@ -1491,7 +1209,7 @@ rc_t CC ArgsMakeStandardOptions (Args** pself)
     return rc;
 }
 
-rc_t CC ArgsHandleHelp (Args * self)
+KAPP_EXTERN rc_t CC ArgsHandleHelp (Args * self)
 {
     uint32_t count;
     rc_t rc;
@@ -1511,7 +1229,7 @@ rc_t CC ArgsHandleHelp (Args * self)
 }
 
 
-rc_t CC ArgsHandleVersion (Args * self)
+KAPP_EXTERN rc_t CC ArgsHandleVersion (Args * self)
 {
     uint32_t count;
     rc_t rc;
@@ -1537,7 +1255,7 @@ rc_t CC ArgsHandleVersion (Args * self)
 }
 
 
-rc_t CC ArgsHandleLogLevel (const Args * self)
+KAPP_EXTERN rc_t CC ArgsHandleLogLevel (const Args * self)
 {
     uint32_t count;
     rc_t rc;
@@ -1567,62 +1285,17 @@ rc_t CC ArgsHandleLogLevel (const Args * self)
     return rc;
 }
 
-rc_t CC ArgsHandleStatusLevel (const Args * self)
+KAPP_EXTERN rc_t CC ArgsHandleStatusLevel (const Args * self)
 {
-    uint32_t vcount, qcount;
+    uint32_t count;
     rc_t rc;
 
-    rc = ArgsOptionCount (self, OPTION_VERBOSE, &vcount);
-    if (rc == 0)
-    {
-        rc = ArgsOptionCount (self, OPTION_QUIET, &qcount);
-        if (rc == 0)
-        {
-            KStsLevel current;
-
-            current = KStsLevelGet();
-
-            if (vcount)
-            {
-                rc_t irc;
-
-                irc = SILENT_RC (rcRuntime, rcArgv, rcParsing, rcParam, rcIncorrect);
-                if (qcount)
-                {
-                    PLOGERR (klogErr,
-                             (klogErr, irc,
-                              "$(V)($(v)) and $(Q)($(q)) should not be used together",
-                              "V=%s,v=%s,Q=$s,q=%s",
-                              OPTION_VERBOSE,ALIAS_VERBOSE,
-                              OPTION_QUIET,ALIAS_QUIET));
-                }
-                KStsLevelSet (current + vcount);
-            }
-            else if (qcount)
-                KStsLevelSet (0);
-        }
+    rc = ArgsOptionCount (self, OPTION_VERBOSE, &count);
+    if (rc == 0) {
+        KStsLevelSet (count);
     }
     return rc;
 }
-
-rc_t CC ArgsHandleNoUserSettings (const Args * self)
-{
-    uint32_t count = 0;
-    rc_t rc = ArgsOptionCount (self, OPTION_NO_USER_SETTINGS, &count);
-    if (rc == 0 && count != 0)
-        KConfigDisableUserSettings ();
-    return rc;
-}
-
-
-#if USE_OPTFILE
-rc_t CC ArgsHandleOptfile (Args * self)
-{
-    return Args_parse_inf_file (self, OPTION_OPTFILE);
-}
-#endif
-
-
 #if _DEBUGGING
 rc_t CC ArgsHandleDebug (const Args * self)
 {
@@ -1655,7 +1328,7 @@ rc_t CC ArgsHandleDebug (const Args * self)
 }
 #endif
 
-rc_t CC ArgsHandleStandardOptions (Args * self)
+KAPP_EXTERN rc_t CC ArgsHandleStandardOptions (Args * self)
 {
     rc_t rc;
 
@@ -1664,9 +1337,11 @@ rc_t CC ArgsHandleStandardOptions (Args * self)
         rc = ArgsHandleHelp (self);
         if (rc)
             break;
+
         rc = ArgsHandleVersion (self);
         if (rc)
             break;
+
         rc = ArgsHandleLogLevel (self);
         if (rc)
             break;
@@ -1675,19 +1350,14 @@ rc_t CC ArgsHandleStandardOptions (Args * self)
         if (rc)
             break;
 
-        rc = ArgsHandleNoUserSettings (self);
-        if (rc)
-            break;
-
-#if _DEBUGGING 
-	/* called a second time in case more symbols in in files */
+#if _DEBUGGING
         rc = ArgsHandleDebug (self);
 #endif
     } while (0); /* not a real loop */
     return rc;
 }
 
-rc_t CC ArgsMakeAndHandle (Args ** pself, int argc, char ** argv, uint32_t table_count, ...)
+KAPP_EXTERN rc_t CC ArgsMakeAndHandle (Args ** pself, int argc, char ** argv, uint32_t table_count, ...)
 {
     rc_t rc;
     Args * self;
@@ -1696,16 +1366,15 @@ rc_t CC ArgsMakeAndHandle (Args ** pself, int argc, char ** argv, uint32_t table
     rc = ArgsMakeStandardOptions (&self);
     if (rc == 0)
     {
-        for (;;)
+        do
         {
-            /* load added OptDef tables */
             if (table_count)
             {
                 va_list ap;
 
                 va_start (ap, table_count);
 
-                while (table_count--)
+                while (table_count-- && (rc == 0))
                 {
                     OptDef * options;
                     uint32_t opt_count;
@@ -1714,12 +1383,8 @@ rc_t CC ArgsMakeAndHandle (Args ** pself, int argc, char ** argv, uint32_t table
                     opt_count = va_arg (ap, uint32_t);
 
                     rc = ArgsAddOptionArray (self, options, opt_count /* , NULL, NULL */);
-                    if (rc)
-                        break;
                 }
-
                 va_end (ap);
-
                 if (rc)
                     break;
             }
@@ -1728,35 +1393,15 @@ rc_t CC ArgsMakeAndHandle (Args ** pself, int argc, char ** argv, uint32_t table
             if (rc)
                 break;
 
-#if USE_OPTFILE
-            /*
-             * recursively check for files full of options
-             * we want this done before flagging missing arguments
-             */
-            rc = ArgsHandleOptfile (self);
-            if (rc)
-                break;
-#endif
-            /*
-             * now handle (maybe even rehandle except the optfile
-             * the standard arguments all applications/tools support
-             */
             rc = ArgsHandleStandardOptions (self);
             if (rc)
                 break;
 
-            rc = ArgsCheckRequired (self);
-            if (rc)
-            {
-                MiniUsage(self);
-                break;
-            }
-
             *pself = self;
+
             return 0;
 
-            break;
-        }
+        } while (0);
     
         ArgsWhack (self);
     }
@@ -1771,7 +1416,7 @@ rc_t CC ArgsMakeAndHandle (Args ** pself, int argc, char ** argv, uint32_t table
  * and quite probably outside of args.
  */
 
-const char * CC trim_path (const char * full_name)
+KAPP_EXTERN const char * CC trim_path (const char * full_name)
 {
     const char * name;
 
@@ -1784,7 +1429,7 @@ const char * CC trim_path (const char * full_name)
 }
 
 
-rc_t CC ArgsProgram (const Args * args, const char ** fullpath, const char ** progname)
+KAPP_EXTERN rc_t CC ArgsProgram (const Args * args, const char ** fullpath, const char ** progname)
 {
     const char * defaultname = UsageDefaultName;
     const char * f;
@@ -1891,6 +1536,7 @@ static void print_indented( const size_t first_indent, const size_t indent,
 
 void CC HelpOptionLine(const char * alias, const char * option, const char * param, const char ** msgs)
 {
+    int n, msgc;
 /*    const char * msg; */
 #define INDENT 2
 #define MSG_INDENT 35
@@ -1899,36 +1545,25 @@ void CC HelpOptionLine(const char * alias, const char * option, const char * par
     bool has_alias = (alias != NULL && alias[0] != '\0');
     bool has_opt = (option != NULL && option[0] != '\0');
 
-    if( has_alias || has_opt )
-    {
-        int n, msgc;
-
-        OUTMSG(("%*s%n", INDENT, " ", & msgc ));
-
-        if( has_alias )
-        {
+    if( has_alias || has_opt ) {
+        OUTMSG(("%*s%n", INDENT, " ", &n));
+        msgc = n;
+        if( has_alias ) {
             OUTMSG(("-%s%n", alias, &n));
             msgc += n;
         }
-
-        if( has_alias && has_opt )
-        {
+        if( has_alias && has_opt ) {
             OUTMSG(("|"));
             msgc++;
         }
-
-        if( has_opt )
-        {
+        if( has_opt ) {
             OUTMSG(("--%s%n", option, &n));
             msgc += n;
         }
-
-        if( param != NULL)
-        {
+        if( param != NULL) {
             OUTMSG((" <%s>%n", param, &n));
             msgc += n;
         }
-
         print_indented( msgc, MSG_INDENT, MSG_MAXLEN, msgs );
     }
 }
@@ -1965,22 +1600,12 @@ void CC HelpOptionsStandard (void)
     HelpOptionLine (ALIAS_LOG_LEVEL, OPTION_LOG_LEVEL, "level", log_usage);
 
     HelpOptionLine (ALIAS_VERBOSE, OPTION_VERBOSE, NULL, verbose_usage);
-    HelpOptionLine (ALIAS_QUIET, OPTION_QUIET, NULL, quiet_usage);
-#if USE_OPTFILE
-    HelpOptionLine (ALIAS_OPTFILE, OPTION_OPTFILE, "file", optfile_usage);
-#endif
 #if _DEBUGGING
     HelpOptionLine (ALIAS_DEBUG, OPTION_DEBUG, "Module[-Flag]", debug_usage); 
 #endif
 }
 
 
-void CC HelpOptionsReport (void)
-{
-    HelpOptionLine (ALIAS_REPORT, OPTION_REPORT, "type", report_usage);
-}
-
-
 rc_t CC MiniUsage (const Args * args)
 {
     KWrtWriter w;
diff --git a/libs/kapp/args_debug.h b/libs/kapp/args_debug.h
deleted file mode 100644
index 3221434..0000000
--- a/libs/kapp/args_debug.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#ifndef _h_args_priv_libs_
-#define _h_args_priv_libs_
-
-#include <klib/debug.h>
-
-#if _DEBUGGING
-
-#define ARGS_DBGF(msg) DBGMSG(DBG_ARGS, DBG_FLAG(DBG_ARGS_WRITER), msg)
-#define ARGS_DBG(fmt, ...) ARGS_DBGF(("%s:%u: " fmt "\n", __func__, __LINE__, __VA_ARGS__))
-#define ARGS_DBGERR(rc) if(rc != 0) {ARGS_DBGF(("%s:%u: %R\n", __func__, __LINE__, rc));}
-#define ARGS_DBGERRP(fmt, rc, ...) if(rc != 0) {ARGS_DBGF(("%s:%u: %R " fmt "\n", __func__, __LINE__, rc, __VA_ARGS__));}
-
-#else
-
-#define ARGS_DBGF(msg) ((void)0)
-#define ARGS_DBG(fmt, ...) ((void)0)
-#define ARGS_DBGERR(rc) ((void)0)
-#define ARGS_DBGERRP(fmt, rc, ...) ((void)0)
-
-#endif
-
-#endif
\ No newline at end of file
diff --git a/libs/kapp/libload.vers b/libs/kapp/libload.vers
index 66c4c22..21e8796 100644
--- a/libs/kapp/libload.vers
+++ b/libs/kapp/libload.vers
@@ -1 +1 @@
-1.0.9
+1.0.3
diff --git a/libs/kapp/loader-file.c b/libs/kapp/loader-file.c
index 26fc1b6..87a0cf8 100644
--- a/libs/kapp/loader-file.c
+++ b/libs/kapp/loader-file.c
@@ -34,16 +34,13 @@
 #include <kfs/bzip.h>
 #include <kfs/gzip.h>
 #include <kapp/progressbar.h>
-#include <kapp/queue-file.h>
 
 #include <kapp/loader-file.h>
 #define KFILE_IMPL KLoaderFile
 #include <kfs/impl.h>
 
-#include <sysalloc.h>
 #include <stdlib.h>
 #include <string.h>
-#include <os-native.h> /* for strdup on Windows */
 
 #define DBG(msg) DBGMSG(DBG_LOADLIB,DBG_FLAG(DBG_LOADLIB_FILE), msg)
 
@@ -69,7 +66,6 @@ struct KLoaderFile
     char* filename;
     char* realname;
     bool has_md5;
-    bool ahead;
     uint8_t md5_digest[16];
 
     /* current file */
@@ -214,16 +210,6 @@ rc_t KLoaderFile_Open(KLoaderFile* self)
                     rc = RC(rcApp, rcFile, rcOpening, rcType, rcUnexpected);
                     break;
             }
-#if ! WINDOWS
-            if( rc == 0 && self->ahead ) {
-                const KFile *z = NULL;
-                if( (rc = KQueueFileMakeRead(&z, self->pos, self->file,
-                                             self->buffer_size * 10,  self->buffer_size, 0)) == 0 ) {
-                    KFileRelease(self->file);
-                    self->file = z;
-                }
-            }
-#endif
         }
     }
     if( rc != 0 ) {
@@ -285,7 +271,7 @@ LIB_EXPORT rc_t CC KLoaderFile_IsEof(const KLoaderFile* cself, bool* eof)
         return RC(rcApp, rcFile, rcConstructing, rcParam, rcNull);
     }
     /* end of file is when file is at eof and nothing in buffer or last readline returned the buffer */
-    *eof = cself->eof && ((cself->avail - cself->eol) == 0);
+    *eof = cself->eof && cself->avail == 0;
     return 0;
 }
 
@@ -313,16 +299,19 @@ LIB_EXPORT rc_t CC KLoaderFile_Reset(const KLoaderFile* cself)
         rc = RC(rcApp, rcFile, rcConstructing, rcParam, rcNull);
     } else {
         KLoaderFile* self = (KLoaderFile*)cself;
-        if( cself->pos != 0 && (cself->ahead || cself->compress_type != compress_none) ) {
-            /* threaded buffering || data in buffer is not first portion of the file */
-            rc = KLoaderFile_Close(cself);
+        if( cself->compress_type != compress_none ) {
+            if( cself->pos != 0 ) {
+                /* data in buffer is not first portion of the file */
+                rc = KLoaderFile_Close(cself);
+                self->avail = 0;
+                self->buffer[0] = 0;
+            }
+        } else {
             self->avail = 0;
             self->buffer[0] = 0;
-            self->eof = false;
-        } else {
-            self->avail += self->buffer_pos - self->buffer;
         }
         self->pos = 0;
+        self->eof = false;
         self->eol = 0;
         self->line_no = 0;
         self->buffer_pos = self->buffer;
@@ -330,17 +319,6 @@ LIB_EXPORT rc_t CC KLoaderFile_Reset(const KLoaderFile* cself)
     return rc;
 }
 
-LIB_EXPORT rc_t CC KLoaderFile_SetReadAhead(const KLoaderFile* cself, bool read_ahead)
-{
-    if( cself == NULL ) {
-        return RC(rcApp, rcFile, rcConstructing, rcParam, rcNull);
-    }
-#if ! WINDOWS
-    ((KLoaderFile*)cself)->ahead = read_ahead;
-#endif
-    return 0;
-}
-
 LIB_EXPORT rc_t CC KLoaderFile_LOG(const KLoaderFile* cself, KLogLevel lvl, rc_t rc, const char *msg, const char *fmt, ...)
 {
     va_list args;
@@ -352,35 +330,39 @@ LIB_EXPORT rc_t CC KLoaderFile_LOG(const KLoaderFile* cself, KLogLevel lvl, rc_t
 
 LIB_EXPORT rc_t CC KLoaderFile_VLOG(const KLoaderFile* cself, KLogLevel lvl, rc_t rc, const char *msg, const char *fmt, va_list args)
 {
-    if( cself == NULL || (msg == NULL && rc == 0) ) {
+    if( cself == NULL || (msg == NULL && rc == 0) )
+    {
         rc = RC(rcApp, rcFile, rcAccessing, rcParam, rcInvalid);
         LOGERR(klogErr, rc, __func__);
-    }  else if( msg == NULL && rc != 0 ) {
-        if( cself->line_no == 0 ) {
-            PLOGERR(lvl, (lvl, rc, "$(file):$(offset)", "file=%s,offset=%lu", cself->filename, cself->pos));
-        } else {
-            PLOGERR(lvl, (lvl, rc, "$(file):$(line)", "file=%s,line=%lu", cself->filename, cself->line_no));
-        }
-    } else {
+    }
+    else if( msg == NULL && rc != 0 )
+    {
+        if( cself->line_no == 0 )
+            PLOGERR(lvl, (lvl, rc, NULL, PLOG_2(PLOG_S(file),PLOG_U64(line)), cself->filename, cself->pos));
+        else
+            PLOGERR(lvl, (lvl, rc, NULL, PLOG_2(PLOG_S(file),PLOG_U64(line)), cself->filename, cself->line_no));
+    }
+    else
+    {
         rc_t fmt_rc;
         char xfmt[4096];
         const char* f = fmt ? fmt : "";
         const char* c = fmt ? "," : "";
 
-        if( cself->line_no == 0 ) {
+        if( cself->line_no == 0 )
             fmt_rc = string_printf(xfmt, sizeof xfmt, NULL, "file=%s,offset=%lu%s%s", cself->filename, cself->pos, c, f);
-        } else {
+        else
             fmt_rc = string_printf(xfmt, sizeof xfmt, NULL, "file=%s,line=%lu%s%s", cself->filename, cself->line_no, c, f);
-        }
-        if ( fmt_rc == 0 ) {
+
+        if ( fmt_rc == 0 )
             fmt = xfmt;
-        }
-        if( rc == 0 ) {
+
+        if( rc == 0 )
             VLOGMSG(lvl, (lvl, msg, fmt, args));
-        } else {
+        else
             VLOGERR(lvl, (lvl, rc, msg, fmt, args));
-        }
     }
+
     return rc;
 }
 
@@ -424,15 +406,7 @@ LIB_EXPORT rc_t CC KLoaderFile_Readline(const KLoaderFile* cself, const void** b
     } else {
         KLoaderFile *self = (KLoaderFile*)cself;
         uint8_t* nl;
-        bool refilled = false;
-        bool eof;
-        
-        rc = KLoaderFile_IsEof(cself, &eof);
-        if( rc == 0 && eof ) {
-            *buffer = NULL;
-            return 0;
-        }
-        
+        bool refill = true;
         while( rc == 0 ) {
             bool CR_last = false;
             int i, cnt = self->avail - self->eol;
@@ -444,10 +418,10 @@ LIB_EXPORT rc_t CC KLoaderFile_Readline(const KLoaderFile* cself, const void** b
                     nl = &buf[i];
                 }
             }
-            if( nl != NULL || refilled ) {
+            if( !(nl == NULL && refill) ) {
                 break;
             }
-            refilled = true;
+            refill = false;
             /* none found we need to push out processed portion and load full buffer */
             if( self->eol > 0 ) {
                 /* mark that line ended on buffer end and last char in buffer is \r */
@@ -471,7 +445,10 @@ LIB_EXPORT rc_t CC KLoaderFile_Readline(const KLoaderFile* cself, const void** b
                 if( self->buffer_size == self->avail ) {
                     /* buffer could be copied and next call will provide tail of line */
                     rc = RC( rcApp, rcFile, rcReading, rcString, rcTooLong);
-                } 
+                } else if( (rc = KLoaderFile_IsEof(cself, &refill)) == 0 && refill ) {
+                    /* EOF */
+                    *buffer = NULL;
+                }
             } else {
                 *length = nl - (uint8_t*)*buffer;
                 self->eol = nl - self->buffer_pos + 1;
@@ -538,19 +515,11 @@ LIB_EXPORT rc_t CC KLoaderFile_FullName(const KLoaderFile *self, const char **na
 {
     if( self == NULL || name == NULL ) {
         return RC(rcApp, rcFile, rcAccessing, rcParam, rcNull);
-    } else {
-        *name = self->realname;
     }
+    *name = self->realname;
     return 0;
 }
 
-LIB_EXPORT rc_t CC KLoaderFile_ResolveName(const KLoaderFile *self, char *resolved, size_t rsize)
-{
-    if( self == NULL || resolved == NULL ) {
-        return RC(rcApp, rcFile, rcAccessing, rcParam, rcNull);
-    }
-    return KDirectoryResolvePath(self->dir, true, resolved, rsize, self->realname);
-}
 
 LIB_EXPORT rc_t CC KLoaderFile_Release(const KLoaderFile* cself, bool exclude_from_progress)
 {
@@ -575,8 +544,7 @@ LIB_EXPORT rc_t CC KLoaderFile_Release(const KLoaderFile* cself, bool exclude_fr
     return rc;
 }
 
-LIB_EXPORT rc_t CC KLoaderFile_Make(const KLoaderFile **file, const KDirectory* dir, const char* filename,
-                                    const uint8_t* md5_digest, bool read_ahead)
+LIB_EXPORT rc_t CC KLoaderFile_Make(const KLoaderFile **file, const KDirectory* dir, const char* filename, const uint8_t* md5_digest)
 {
     rc_t rc = 0;
     KLoaderFile* obj = NULL;
@@ -617,13 +585,8 @@ LIB_EXPORT rc_t CC KLoaderFile_Make(const KLoaderFile **file, const KDirectory*
                         }
                     }
                     if( rc == 0 &&
-                        (rc = KFileInit(&obj->dad, (const KFile_vt*)&KLoaderFile_vtbl, "KLoaderFile", filename, true, false)) == 0 ) {
+                        (rc = KFileInit(&obj->dad, (const KFile_vt*)&KLoaderFile_vtbl, true, false)) == 0 ) {
                         obj->file = &obj->dad;
-#if WINDOWS
-                        obj->ahead = false;
-#else
-                        obj->ahead = read_ahead;
-#endif
                         obj->realname = strdup(resolved);
                         if( obj->realname == NULL ) {
                             rc = RC(rcApp, rcFile, rcConstructing, rcMemory, rcExhausted);
diff --git a/libs/kapp/log-xml.c b/libs/kapp/log-xml.c
index 891dbfc..450a4c6 100644
--- a/libs/kapp/log-xml.c
+++ b/libs/kapp/log-xml.c
@@ -31,7 +31,7 @@
 #include <klib/status.h>
 #include <klib/text.h>
 #include <klib/printf.h>
-#include <kxml/xml.h>
+#include <klib/xml.h>
 #include <kfs/file.h>
 #include <kfs/kfs-priv.h>
 #include <kfs/directory.h>
@@ -86,18 +86,20 @@ struct XMLLogger {
     XMLFormatterData stslib;
 };
 
-LIB_EXPORT
+static
 rc_t CC XMLLogger_Encode(const char* src, char *dst, size_t dst_sz, size_t *num_writ)
 {
     rc_t rc = 0;
+    size_t bytes;
+    const char* p;
+
+    assert(src != NULL && num_writ != NULL);
 
-    if( src == NULL || dst == NULL || num_writ == NULL ) {
-        rc = RC(rcApp, rcArgv, rcParsing, rcParam, rcNull);
+    *num_writ = 0;
+    if( *src == '\0' ) {
+        *dst = *src;
     } else {
-        *num_writ = 0;
         do {
-            size_t bytes;
-            const char* p;
             switch(*src) {
                 case '\'':
                     bytes = 6;
@@ -126,14 +128,12 @@ rc_t CC XMLLogger_Encode(const char* src, char *dst, size_t dst_sz, size_t *num_
             }
             if( (*num_writ + bytes) > dst_sz ) {
                 rc = RC(rcApp, rcLog, rcEncoding, rcBuffer, rcInsufficient);
-                break;
             } else {
                 memcpy(dst, p, bytes);
                 *num_writ = *num_writ + bytes;
                 dst += bytes;
             }
-        } while(*src++ != '\0');
-        *num_writ = *num_writ - 1;
+        } while(rc == 0 && *++src != '\0');
     }
     return rc;
 }
@@ -310,7 +310,6 @@ LIB_EXPORT rc_t CC XMLLogger_Make2(const XMLLogger** self, KDirectory* dir, cons
 {
     rc_t rc = 0;
     XMLLogger* obj;
-    KDirectory* my_dir = NULL;
 
     const uint32_t lopt = klogFmtTimestamp | klogFmtSeverity |
                           klogFmtMessage | klogFmtAppName | klogFmtAppVersion | klogFmtReasonShort;
@@ -325,9 +324,9 @@ LIB_EXPORT rc_t CC XMLLogger_Make2(const XMLLogger** self, KDirectory* dir, cons
     obj = calloc(1, sizeof(*obj));
     if( obj == NULL ) {
         rc = RC(rcApp, rcLog, rcAllocating, rcMemory, rcExhausted);
-    } else if( fd < 0 && dir == NULL && (rc = KDirectoryNativeDir(&my_dir)) != 0 ) {
+    } else if( fd < 0 && dir == NULL && (rc = KDirectoryNativeDir(&dir)) != 0 ) {
     } else if( fd >= 0 && (rc = KFileMakeFDFileWrite(&obj->file.file, false, fd)) != 0 ) {
-    } else if( logpath != NULL && fd < 0 && (rc = KDirectoryCreateFile(dir ? dir : my_dir, &obj->file.file, false, 0644, kcmInit, logpath)) != 0 ) {
+    } else if( logpath != NULL && fd < 0 && (rc = KDirectoryCreateFile(dir, &obj->file.file, false, 0644, kcmInit, logpath)) != 0 ) {
     } else {
     
         obj->file.pos = 0;
@@ -367,7 +366,6 @@ LIB_EXPORT rc_t CC XMLLogger_Make2(const XMLLogger** self, KDirectory* dir, cons
             }
         }
     }
-    KDirectoryRelease(my_dir);
     if( rc == 0 ) {
         *self = obj;
         if( fd >= 0 ) {
diff --git a/libs/kapp/main.c b/libs/kapp/main.c
index 125a64d..9906fdb 100644
--- a/libs/kapp/main.c
+++ b/libs/kapp/main.c
@@ -29,8 +29,6 @@
 #include <sysalloc.h>
 #include <kapp/main.h>
 #include <kfg/config.h>
-#include <kproc/procmgr.h>
-#include <klib/report.h>
 #include <klib/writer.h>
 #include <klib/log.h>
 #include <klib/status.h>
@@ -356,34 +354,12 @@ void CC NextLogLevelh (int *ip,
  *  to be in the shell-native character set: ASCII or UTF-8
  *  element 0 is expected to be executable identity or path.
  */
-static
-void CC atexit_task ( void )
-{
-    KProcMgrWhack ();
-}
-
 rc_t KMane ( int argc, char *argv [] )
 {
-    rc_t rc;
-
     /* get application version */
-    ver_t vers = KAppVersion ();
-
-    /* initialize cleanup tasks */
-    int status = atexit ( atexit_task );
-    if ( status != 0 )
-        return SILENT_RC ( rcApp, rcNoTarg, rcInitializing, rcFunction, rcNotAvailable );
+    uint32_t vers = KAppVersion ();
 
-    /* initialize error reporting */
-    ReportInit ( argc, argv, vers );
-
-    /* initialize proc mgr */
-    rc = KProcMgrInit ();
-    if ( rc != 0 )
-        return rc;
-
-    /* initialize logging */
-    rc = KWrtInit(argv[0], vers);
+    rc_t rc = KWrtInit(argv[0], vers);
     if ( rc == 0 )
         rc = KLogLibHandlerSetStdErr ();
     if ( rc == 0 )
@@ -400,8 +376,6 @@ rc_t KMane ( int argc, char *argv [] )
             rc = KMain ( argc, argv );
             if ( rc != 0 )
             {
-
-#if _DEBUGGING
                 rc_t rc2;
                 uint32_t lineno;
                 const char *filename, *function;
@@ -414,8 +388,6 @@ rc_t KMane ( int argc, char *argv [] )
                               , function
                         );
                 }
-#endif
-
             }
 #if KFG_COMMON_CREATION
             KConfigRelease ( kfg );
@@ -423,9 +395,5 @@ rc_t KMane ( int argc, char *argv [] )
 #endif
     }
 
-    /* finalize error reporting */
-    ReportSilence ();
-    ReportFinalize ( rc );
-
     return rc;
 }
diff --git a/libs/kapp/queue-file.c b/libs/kapp/queue-file.c
deleted file mode 100644
index e8dfd14..0000000
--- a/libs/kapp/queue-file.c
+++ /dev/null
@@ -1,925 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-typedef struct KQueueFile KQueueFile;
-#define KFILE_IMPL KQueueFile
-
-#include <kapp/extern.h>
-#include <kapp/queue-file.h>
-#include <kfs/file.h>
-#include <kfs/impl.h>
-#include <kproc/timeout.h>
-#include <kproc/thread.h>
-#include <kproc/queue.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <os-native.h>
-#include <klib/out.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#if _DEBUGGING && 0
-#define DEFAULT_BLOCK_SIZE 4 * 1024
-#define QFMSG( msg, ... ) \
-    KOutMsg ( msg, __VA_ARGS__ )
-#else
-#define DEFAULT_BLOCK_SIZE 64 * 1024
-#define QFMSG( msg, ... ) \
-    ( void ) 0
-#endif
-
-#define DEFAULT_TIMEOUT_MS 150
-
-/*--------------------------------------------------------------------------
- * KQueueFileBuffer
- *  a block that describes its valid bytes and position
- */
-typedef struct KQueueFileBuffer KQueueFileBuffer;
-struct KQueueFileBuffer
-{
-    uint64_t pos;
-    size_t bytes;
-    rc_t rc;
-    uint32_t align;
-    uint8_t data [ 1 ];
-};
-
-static
-bool KQueueFileBufferContains ( const KQueueFileBuffer *self, uint64_t pos )
-{
-    if ( self != NULL )
-    {
-        if ( self -> pos <= pos && ( self -> pos + self -> bytes ) > pos )
-            return true;
-    }
-    return false;
-}
-
-
-/*--------------------------------------------------------------------------
- * KQueueFile
- *  an extension to KFile that runs on a background thread
- */
-struct KQueueFile
-{
-    KFile dad;
-
-    /* the source file's size on open */
-    uint64_t apparent_size;
-
-    /* starting position for read-ahead */
-    uint64_t start_pos;
-
-    /* the file really being accessed */
-    KFile *f;
-
-    /* buffer info */
-    KQueueFileBuffer *b;
-    size_t bsize;
-
-    /* thread and buffer queue */
-    KThread *t;
-    KQueue *q;
-
-    /* captured upon open */
-    rc_t rc_from_size_on_open;
-
-    /* timeout when queue is not responding */
-    uint32_t timeout_ms;
-};
-
-/* Whack
- */
-static
-rc_t KQueueFileWhackRead ( KQueueFile *self )
-{
-    void *b;
-
-    /* no more reading */
-    QFMSG ( "%s: sealing queue\n", __func__ );
-    KQueueSeal ( self -> q );
-
-    /* flush the queue */
-    QFMSG ( "%s: popping queue\n", __func__ );
-    while ( KQueuePop ( self -> q, & b, NULL ) == 0 )
-    {
-        QFMSG ( "%s: dousing a buffer\n", __func__ );
-        free ( b );
-    }
-
-    /* wait for thread to exit */
-    QFMSG ( "%s: waiting for bg thread to exit\n", __func__ );
-    KThreadWait ( self -> t, NULL );
-
-    /* tear it down */
-    QFMSG ( "%s: freeing object\n", __func__ );
-    free ( self -> b );
-    KThreadRelease ( self -> t );
-    KQueueRelease ( self -> q );
-    KFileRelease ( self -> f );
-    free ( self );
-
-    return 0;
-}
-
-static
-rc_t KQueueFileFlush ( KQueueFile *self, KQueueFileBuffer *b )
-{
-    rc_t rc;
-
-    /* timeout is in mS */
-    timeout_t tm;
-    QFMSG ( "%s: initializing timeout for %,umS\n", __func__, self->timeout_ms);
-    TimeoutInit ( & tm, self->timeout_ms );
-
-    /* push buffer */
-    QFMSG ( "%s: pushing buffer...\n", __func__ );
-    rc = KQueuePush ( self -> q, b, & tm );
-    QFMSG ( "%s: ...done: rc = %R\n", __func__, rc );
-    if ( rc != 0 )
-    {
-        /* see if the bg thread exited */
-        if ( GetRCState ( rc ) == rcReadonly )
-        {
-            rc = RC ( rcApp, rcFile, rcWriting, rcTransfer, rcIncomplete );
-            QFMSG ( "%s: resetting rc to %R\n", __func__, rc );
-        }
-        return rc;
-    }
-
-    QFMSG ( "%s: forgetting about buffer\n", __func__ );
-    self -> b = NULL;
-    return 0;
-}
-
-static
-rc_t KQueueFileWhackWrite ( KQueueFile *self )
-{
-    void *b;
-    rc_t rc = 0;
-
-    /* flush last buffer */
-    if ( self -> b != NULL )
-    {
-        QFMSG ( "%s: have non-null buffer\n", __func__ );
-        if ( self -> b -> bytes != 0 )
-        {
-            QFMSG ( "%s: buffer has %zu bytes\n", __func__, self -> b -> bytes );
-            rc = KQueueFileFlush ( self, self -> b );
-        }
-
-        free ( self -> b );
-        self -> b = NULL;
-    }
-
-    /* no more writing */
-    QFMSG ( "%s: sealing queue\n", __func__ );
-    KQueueSeal ( self -> q );
-
-    /* wait for thread to exit */
-    QFMSG ( "%s: waiting for bg thread to exit\n", __func__ );
-    KThreadWait ( self -> t, NULL );
-
-    /* the file should be written
-       but flush the queue if bg thread didn't */
-    QFMSG ( "%s: popping queue\n", __func__ );
-    while ( KQueuePop ( self -> q, & b, NULL ) == 0 )
-    {
-        QFMSG ( "%s: dousing a buffer\n", __func__ );
-        free ( b );
-    }
-
-    /* tear it down */
-    QFMSG ( "%s: freeing object\n", __func__ );
-    KThreadRelease ( self -> t );
-    KQueueRelease ( self -> q );
-    KFileRelease ( self -> f );
-    free ( self );
-
-    return rc;
-}
-
-/* GetSysFile
- *  returns an underlying system file object
- *  and starting offset to contiguous region
- *  suitable for memory mapping, or NULL if
- *  no such file is available.
- */
-static
-struct KSysFile* CC KQueueFileGetSysFile ( const KQueueFile *self, uint64_t *offset )
-{
-    return NULL;
-}
-
-/* RandomAccess
- *  ALMOST by definition, the file is random access
- *
- *  certain file types will refuse random access
- *  these include FIFO and socket based files, but also
- *  wrappers that require serial access ( e.g. compression )
- *
- *  returns 0 if random access, error code otherwise
- */
-static
-rc_t CC KQueueFileRandomAccess ( const KQueueFile *self )
-{
-    return RC ( rcFS, rcFile, rcAccessing, rcFunction, rcUnsupported );
-}
-
-/* Type
- *  returns a KQueueFileDesc
- *  not intended to be a content type,
- *  but rather an implementation class
- */
-static
-uint32_t CC KQueueFileType ( const KQueueFile *self )
-{
-    return kptFIFO;
-}
-
-/* Size
- *  returns size in bytes of file
- *
- *  "size" [ OUT ] - return parameter for file size
- */
-static
-rc_t CC KQueueFileSize ( const KQueueFile *self, uint64_t *size )
-{
-    * size = self -> apparent_size;
-    return self -> rc_from_size_on_open;
-}
-
-/* SetSize
- *  sets size in bytes of file
- *
- *  "size" [ IN ] - new file size
- */
-static
-rc_t CC KQueueFileSetSize ( KQueueFile *self, uint64_t size )
-{
-    return RC ( rcFS, rcFile, rcAccessing, rcFunction, rcUnsupported );
-}
-
-
-/* RunRead
- *  runs read loop on background thread
- */
-static
-rc_t CC KQueueFileRunRead ( const KThread *t, void *data )
-{
-    KQueueFile *self = data;
-
-    rc_t rc;
-    bool loop;
-    uint64_t pos;
-    size_t num_read;
-
-    QFMSG ( "BG: %s: running read-ahead loop\n", __func__ );
-    for ( rc = 0, loop = true, pos = self -> start_pos; loop; pos += num_read )
-    {
-        timeout_t tm;
-
-        KQueueFileBuffer *b = malloc ( sizeof * b - sizeof b -> data + self -> bsize );
-        if ( b == NULL )
-        {
-            rc = RC ( rcApp, rcFile, rcReading, rcMemory, rcExhausted );
-            QFMSG ( "BG: %s: failed to allocate %zu byte buffer\n", __func__, self -> bsize );
-            b = malloc ( sizeof * b );
-            if ( b == NULL )
-                break;
-
-            num_read = 0;
-            b -> rc = rc;
-            QFMSG ( "BG: %s: created empty buffer with rc = %R.\n", __func__, b -> rc );
-            loop = false;
-        }
-        else
-        {
-            QFMSG ( "BG: %s: reading %zu byte buffer\n", __func__, self -> bsize );
-            b -> rc = KFileReadAll ( self -> f, pos, b -> data, self -> bsize, & num_read );
-            QFMSG ( "BG: %s: read %zu bytes, rc = %R\n", __func__, num_read, b -> rc );
-            if ( b -> rc != 0 || num_read == 0 )
-                loop = false;
-        }
-
-        /* update buffer data */
-        b -> pos = pos;
-        b -> bytes = num_read;
-#if _DEBUGGING
-        b -> align = 0;
-#endif
-
-PushAgain:
-        /* timeout is in mS */
-        QFMSG ( "BG: %s: initializing timeout for %,umS\n", __func__, self->timeout_ms );
-        TimeoutInit ( & tm, self->timeout_ms );
-
-        /* push buffer */
-        QFMSG ( "BG: %s: pushing buffer...\n", __func__ );
-        rc = KQueuePush ( self -> q, b, & tm );
-        QFMSG ( "BG: %s: ...done: rc = %R\n", __func__, rc );
-        if ( rc != 0 )
-        {
-            /* if queue has been sealed by fg */
-            if ( GetRCState ( rc ) == rcReadonly )
-            {
-                rc = 0;
-                QFMSG ( "BG: %s: clearing rc\n", __func__ );
-
-            } else if( GetRCObject(rc) == rcTimeout && GetRCState(rc) == rcExhausted ) {
-                goto PushAgain;
-            }
-            QFMSG ( "BG: %s: dousing buffer\n", __func__ );
-            free ( b );
-            break;
-        }
-    }
-    
-    /* going to exit thread */
-    QFMSG ( "BG: %s: sealing thread\n", __func__ );
-    KQueueSeal ( self -> q );
-
-    QFMSG ( "BG: %s: exit with rc = %R\n", __func__, rc );
-    return rc;
-}
-
-/* Read
- *  read file from known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT ] - return parameter giving number of bytes
- *  actually read. when returned value is zero and return code is
- *  also zero, interpreted as end of file.
- */
-static
-rc_t CC KQueueFileNoRead ( const KQueueFile *self, uint64_t pos,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    return RC ( rcFS, rcFile, rcReading, rcFile, rcWriteonly );
-}
-
-static
-rc_t CC KQueueFileRead ( const KQueueFile *cself, uint64_t pos,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc;
-    size_t to_read;
-    KQueueFile *self = ( KQueueFile* ) cself;
-    KQueueFileBuffer *b = self -> b;
-
-    assert ( num_read != NULL );
-    assert ( * num_read == 0 );
-    assert ( buffer != NULL && bsize != 0 );
-
-    /* detect attempt to back up */
-    if ( b != NULL && pos < b -> pos )
-    {
-        QFMSG ( "%s: detected attempt to back up from %lu to %lu\n", __func__, b -> pos, pos );
-        return RC ( rcApp, rcFile, rcReading, rcConstraint, rcViolated );
-    }
-    
-    QFMSG ( "%s: loop to read %zu bytes at offset %lu\n", __func__, bsize, pos );
-    while ( ! KQueueFileBufferContains ( b, pos ) )
-    {
-        /* fetch next buffer */
-        KQueueFileBuffer *tmp;
-
-        /* timeout is in mS */
-        timeout_t tm;
-        QFMSG ( "%s: initializing timeout for %,umS\n", __func__, self->timeout_ms );
-        TimeoutInit ( & tm, self->timeout_ms );
-
-        /* pop buffer */
-        QFMSG ( "%s: popping buffer...\n", __func__ );
-        rc = KQueuePop ( self -> q, ( void** ) & tmp, & tm );
-        QFMSG ( "%s: ...done: rc = %R\n", __func__, rc );
-        if ( rc != 0 )
-        {
-            /* see if the bg thread is done */
-            if ( GetRCState ( rc ) == rcDone && GetRCObject ( rc ) == rcData )
-            {
-                QFMSG ( "%s: BG thread has exited with end-of-input\n", __func__ );
-                return 0;
-            } else if( GetRCObject(rc) == rcTimeout && GetRCState(rc) == rcExhausted ) {
-                continue; /* timeout is not a problem, try again */
-            }
-
-            QFMSG ( "%s: read failed with rc = %R\n", __func__, rc );
-            return rc;
-        }
-
-        /* queue is not supposed to be able to contain NULL */
-        assert ( tmp != NULL );
-
-        /* buffer may indicate read error or end of input */
-        if ( tmp -> rc != 0 || tmp -> bytes == 0 )
-        {
-            rc = tmp -> rc;
-            QFMSG ( "%s: BG thread has delivered %zu size buffer with rc = %R\n", __func__, tmp -> bytes, rc );
-            free ( tmp );
-            return rc;
-        }
-
-        /* free existing buffer */
-        if ( b != NULL )
-        {
-            QFMSG ( "%s: freeing buffer of %zu bytes at position %lu\n", __func__, b -> bytes, b -> pos );
-            free ( b );
-        }
-
-        /* take new buffer */
-        self -> b = b = tmp;
-        QFMSG ( "%s: caching buffer of %zu bytes at position %lu\n", __func__, b -> bytes, b -> pos );
-    }
-
-    pos -= b -> pos;
-    to_read = b -> bytes - ( size_t ) pos;
-    if ( to_read > bsize )
-        to_read = bsize;
-
-    QFMSG ( "%s: copying %zu bytes from buffer at local offset %lu\n", __func__, to_read, pos );
-    memcpy ( buffer, & b -> data [ pos ], to_read );
-
-    QFMSG ( "%s: successful read\n", __func__ );
-    * num_read = to_read;
-    return 0;
-}
-
-
-/* RunWrite
- *  runs write loop on background thread
- */
-static
-rc_t CC KQueueFileRunWrite ( const KThread *t, void *data )
-{
-    KQueueFile *self = data;
-
-    rc_t rc;
-    do
-    {
-        size_t num_writ;
-        KQueueFileBuffer *b;
-
-        /* timeout is in mS */
-        timeout_t tm;
-        TimeoutInit ( & tm, self->timeout_ms );
-
-        /* pop buffer */
-        rc = KQueuePop ( self -> q, ( void** ) & b, & tm );
-        if ( rc != 0 )
-        {
-            /* see if the fg thread is done */
-            if ( GetRCState ( rc ) == rcDone && GetRCObject ( rc ) == rcData )
-            {
-                rc = 0;
-            }
-            else if ( GetRCObject(rc) == rcTimeout && GetRCState(rc) == rcExhausted )
-            {
-                rc = 0;
-                continue;
-            }
-
-            break;
-        }
-
-        /* queue won't accept NULL object references */
-        assert ( b != NULL );
-
-        /* look at buffer for end of input */
-        if ( b -> rc != 0 || b -> bytes == 0 )
-        {
-            free ( b );
-            break;
-        }
-
-        /* write to file */
-        rc = KFileWriteAll ( self -> f, b -> pos, b -> data, b -> bytes, & num_writ );
-        assert ( num_writ == b -> bytes || rc != 0 );
-
-        /* TBD - need a better way to deal with this */
-        if ( rc != 0 )
-        {
-            PLOGERR ( klogSys, ( klogSys, rc, "$(func): wrote $(num_writ) of $(bytes) bytes to file",
-                                 "func=%s,num_writ=%zu,bytes=%zu", __func__, num_writ, b -> bytes ) );
-        }
-
-        /* done with buffer */
-        free ( b );
-    }
-    while ( rc == 0 );
-
-    /* going to exit thread */
-    KQueueSeal ( self -> q );
-
-    return rc;
-}
-
-/* Write
- *  write file at known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-static
-rc_t CC KQueueFileNoWrite ( KQueueFile *self, uint64_t pos,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    return RC ( rcApp, rcFile, rcWriting, rcFile, rcReadonly );
-}
-
-static
-rc_t CC KQueueFileWrite ( KQueueFile *self, uint64_t pos,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    rc_t rc;
-    size_t total, to_write;
-
-    for ( rc = 0, total = 0; total < size; pos += to_write, total += to_write )
-    {
-        /* current buffer */
-        KQueueFileBuffer *b = self -> b;
-
-        /* if we have a buffer, test for a write within bounds */
-        if ( self -> b != NULL )
-        {
-            /* an attempt to write first byte BEFORE
-               current buffer or BEYOND current contents
-               or AT current end while being full provokes
-               a flush of the current buffer */
-            if ( pos < b -> pos ||
-                 pos > b -> pos + b -> bytes ||
-                 pos == b -> pos + self -> bsize )
-            {
-                rc = KQueueFileFlush ( self, b );
-                if ( rc != 0 )
-                {   /* the background thread is probably gone */
-                    break;
-                }
-            }
-        }
-
-        /* if by now we don't have a buffer, allocate one */
-        if ( self -> b == NULL )
-        {
-            b = malloc ( sizeof * b - sizeof b -> data + self -> bsize );
-            if ( b == NULL )
-            {
-                rc = RC ( rcApp, rcFile, rcWriting, rcMemory, rcExhausted );
-                break;
-            }
-
-            self -> b = b;
-            b -> pos = pos/* + total*/;
-            b -> bytes = 0;
-            b -> rc = 0;
-#if _DEBUGGING
-            b -> align = 0;
-#endif
-        }
-
-        assert ( b != NULL );
-        assert ( b == self -> b );
-/*        assert ( pos >= b -> pos ); */
-        assert ( pos <= b -> pos + b -> bytes );
-        assert ( pos < b -> pos + self -> bsize );
-
-        /* write into the buffer */
-        to_write = size - total;
-        if ( b -> bytes + to_write > self -> bsize )
-            to_write = self -> bsize - b -> bytes;
-
-        memcpy ( & b -> data [ b -> bytes ], & ( ( const uint8_t* ) buffer ) [ total ], to_write );
-        b -> bytes += to_write;
-    }
-
-
-    * num_writ = total;
-    if ( total != 0 )
-        return 0;
-
-    return rc;
-}
-
-
-static KFile_vt_v1 KQueueFileRead_vt_v1 =
-{
-    /* version 1.1 */
-    1, 1,
-
-    /* v1.0 */
-    KQueueFileWhackRead,
-    KQueueFileGetSysFile,
-    KQueueFileRandomAccess,
-    KQueueFileSize,
-    KQueueFileSetSize,
-    KQueueFileRead,
-    KQueueFileNoWrite,
-
-    /* v1.1 */
-    KQueueFileType
-};
-
-
-static KFile_vt_v1 KQueueFileWrite_vt_v1 =
-{
-    /* version 1.1 */
-    1, 1,
-
-    /* v1.0 */
-    KQueueFileWhackWrite,
-    KQueueFileGetSysFile,
-    KQueueFileRandomAccess,
-    KQueueFileSize,
-    KQueueFileSetSize,
-    KQueueFileNoRead,
-    KQueueFileWrite,
-
-    /* v1.1 */
-    KQueueFileType
-};
-
-
-/* MakeRead
- *  make a queue file for reading-ahead on background thread
- *
- *  when the file is created, a background thread is started
- *  that begins reading from "src" at position "pos", into
- *  buffers of size "buffer_size". each buffer is pushed into
- *  a cross-thread queue where it is consumed by the reading
- *  thread.
- *
- *  the background thread is throttled by queue capacity - determined
- *  by "queue_bytes" and "block_size", such that if the queue is full,
- *  the thread will sleep. the consumer thread is also throttled by the
- *  queue in that it will sleep if the queue is empty with pending data.
- *
- *  the background thread will exit upon reaching end of file,
- *  upon a permanent error, or if the queue is sealed by the consumer
- *  thread.
- *
- *  when the file is collected in response to a release message,
- *  the queue will be sealed against further inserts, pending buffers
- *  will be discarded, the background thread will be joined, and
- *  the source file will be released.
- *
- *  the intended usage is serial reading of the file. reads
- *  may only progress forward, i.e. backing up is not permitted.
- *
- *  "qf" [ OUT ] - return parameter for queue file
- *
- *  "pos" [ IN ] - starting position for reads from "src".
- *  NB - "src" must support being addressed at this position.
- *
- *  "src" [ IN ] - source file for read-ahead on background thread.
- *  must have read permissions.
- *
- *  "queue_bytes" [ IN ] - the read-ahead limit of the background
- *  thread, in bytes. this is the amount of data that will be queued
- *  for the consumer thread before the bg thread sleeps.
- *
- *  "block_size" [ IN, DEFAULT ZERO ] - optional parameter giving
- *  desired block size when reading from "src". this may be used
- *  to tune reading for source data, e.g. 64K blocks for gzip.
- */
-LIB_EXPORT rc_t CC KQueueFileMakeRead ( const KFile **qfp, uint64_t pos,
-    const KFile *src, size_t queue_bytes, size_t block_size, uint32_t timeout_ms )
-{
-    rc_t rc;
-
-    if ( qfp == NULL )
-        rc = RC ( rcApp, rcFile, rcConstructing, rcParam, rcNull );
-    else
-    {
-        if ( src == NULL )
-            rc = RC ( rcApp, rcFile, rcConstructing, rcFile, rcNull );
-        else if ( ! src -> read_enabled )
-        {
-            if ( src -> write_enabled )
-                rc = RC ( rcApp, rcFile, rcConstructing, rcFile, rcWriteonly );
-            else
-                rc = RC ( rcApp, rcFile, rcConstructing, rcFile, rcNoPerm );
-        }
-        else if ( pos == 0 || ( rc = KFileRandomAccess ( src ) ) == 0 )
-        {
-            KQueueFile *qf = malloc ( sizeof * qf );
-            if ( qf == NULL )
-                rc = RC ( rcApp, rcFile, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                rc = KFileInit ( & qf -> dad, ( const KFile_vt* ) & KQueueFileRead_vt_v1, "KQueueFile", "no-name", true, false );
-                if ( rc == 0 )
-                {
-                    qf -> f = ( KFile* ) src;
-                    rc = KFileAddRef ( src );
-                    if ( rc == 0 )
-                    {
-                        uint32_t capacity;
-
-                        /* zero block size means default */
-                        if ( block_size == 0 )
-                            block_size = DEFAULT_BLOCK_SIZE;
-
-                        /* queue capacity is expressed in bytes originally
-                           translate to buffer count */
-                        capacity = ( queue_bytes + block_size - 1 ) / block_size;
-                        if ( capacity == 0 )
-                            capacity = 1;
-
-                        /* actual capacity will be a power of 2 */
-                        rc = KQueueMake ( & qf -> q, capacity );
-                        if ( rc == 0 )
-                        {
-                            /* capture current size if supported */
-                            qf -> rc_from_size_on_open = KFileSize ( src, & qf -> apparent_size );
-
-                            /* starting position for read */
-                            qf -> start_pos = pos;
-
-                            /* requested buffer size */
-                            qf -> b = NULL;
-                            qf -> bsize = block_size;
-
-                            /* timeout */
-                            qf -> timeout_ms = timeout_ms == 0 ? DEFAULT_TIMEOUT_MS : timeout_ms;
-
-                            /* finally, start the background thread */
-                            rc = KThreadMake ( & qf -> t, KQueueFileRunRead, qf );
-                            if ( rc == 0 )
-                            {
-                                * qfp = & qf -> dad;
-                                return 0;
-                            }
-
-                            KQueueRelease ( qf -> q );
-                        }
-
-                        KFileRelease ( qf -> f );
-                    }
-                }
-
-                free ( qf );
-            }
-        }
-
-        * qfp = NULL;
-    }
-
-    return rc;
-}
-
-
-/* MakeWrite
- *  make a queue file for writing-behind on background thread
- *
- *  when the file is created, a background thread is started that
- *  waits for buffers to appear in the cross-thread queue. as the producer
- *  thread writes, data are accumulated into buffers which are pushed
- *  into the queue as they fill, and written in turn on the bg thread.
- *
- *  the producer thread is throttled by queue capacity - determined by
- *  "queue_bytes" and "block_size", such that if the queue is full,
- *  the thread will sleep. the background thread is also throttled by
- *  the queue in that it will sleep if the queue is empty with pending
- *  data.
- *
- *  the background thread will exit upon a permanent error, or if the
- *  queue is sealed by the producer thread.
- *
- *  when the file is collected in response to a release message,
- *  the queue will be sealed against further inserts, pending buffers
- *  will be written, the background thread will be joined, and
- *  the source file will be released.
- *
- *  the intended usage is serial writing of the file. random writes
- *  will be accepted, but may reduce the queue efficiency.
- *
- *  "qf" [ OUT ] - return parameter for queue file
- *
- *  "dst" [ IN ] - destination file for write-behind on background thread.
- *  must have write permissions.
- *
- *  "queue_bytes" [ IN ] - the write-behind limit of the producer
- *  thread, in bytes. this is the amount of data that will be queued
- *  for the background thread before the producer thread sleeps.
- *
- *  "block_size" [ IN, DEFAULT ZERO ] - optional parameter giving
- *  desired block size when writing to "dst". this may be used
- *  to tune writing for source data, e.g. 64K blocks for gzip.
- */
-LIB_EXPORT rc_t CC KQueueFileMakeWrite ( KFile **qfp,
-    KFile *dst, size_t queue_bytes, size_t block_size, uint32_t timeout_ms )
-{
-    rc_t rc;
-
-    if ( qfp == NULL )
-        rc = RC ( rcApp, rcFile, rcConstructing, rcParam, rcNull );
-    else
-    {
-        if ( dst == NULL )
-            rc = RC ( rcApp, rcFile, rcConstructing, rcFile, rcNull );
-        else if ( ! dst -> write_enabled )
-        {
-            if ( dst -> read_enabled )
-                rc = RC ( rcApp, rcFile, rcConstructing, rcFile, rcReadonly );
-            else
-                rc = RC ( rcApp, rcFile, rcConstructing, rcFile, rcNoPerm );
-        }
-        else
-        {
-            KQueueFile *qf = malloc ( sizeof * qf );
-            if ( qf == NULL )
-                rc = RC ( rcApp, rcFile, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                rc = KFileInit ( & qf -> dad, ( const KFile_vt* ) & KQueueFileWrite_vt_v1, "KQueueFile", "no-name", false, true );
-                if ( rc == 0 )
-                {
-                    qf -> f = dst;
-                    rc = KFileAddRef ( dst );
-                    if ( rc == 0 )
-                    {
-                        uint32_t capacity;
-
-                        /* zero block size means default */
-                        if ( block_size == 0 )
-                            block_size = DEFAULT_BLOCK_SIZE;
-
-                        /* queue capacity is expressed in bytes originally
-                           translate to buffer count */
-                        capacity = ( queue_bytes + block_size - 1 ) / block_size;
-                        if ( capacity == 0 )
-                            capacity = 1;
-
-                        /* actual capacity will be a power of 2 */
-                        rc = KQueueMake ( & qf -> q, capacity );
-                        if ( rc == 0 )
-                        {
-                            /* capture current size if supported */
-                            qf -> rc_from_size_on_open = KFileSize ( dst, & qf -> apparent_size );
-
-                            /* starting position not used */
-                            qf -> start_pos = 0;
-
-                            /* requested buffer size */
-                            qf -> b = NULL;
-                            qf -> bsize = block_size;
-
-                            /* timeout */
-                            qf -> timeout_ms = timeout_ms == 0 ? DEFAULT_TIMEOUT_MS : timeout_ms;
-
-                            /* finally, start the background thread */
-                            rc = KThreadMake ( & qf -> t, KQueueFileRunWrite, qf );
-                            if ( rc == 0 )
-                            {
-                                * qfp = & qf -> dad;
-                                return 0;
-                            }
-
-                            KQueueRelease ( qf -> q );
-                        }
-
-                        KFileRelease ( qf -> f );
-                    }
-                }
-
-                free ( qf );
-            }
-        }
-
-        * qfp = NULL;
-    }
-
-    return rc;
-}
diff --git a/libs/kapp/tokenizer.c b/libs/kapp/tokenizer.c
deleted file mode 100644
index 6bee3ed..0000000
--- a/libs/kapp/tokenizer.c
+++ /dev/null
@@ -1,525 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kapp/extern.h>
-#include <sysalloc.h>
-
-#include <kapp/args.h>
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/text.h>
-
-#include <vfs/path.h>
-#include <vfs/manager.h>
-#include <kfs/file.h>
-
-#include <os-native.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-
-#define ARGV_INC 10
-#define TOKEN_INC 512
-
-/*
-   strtok() not used, because we tokenize the content of a file!
-   we do that in chunks of 4096 char's
-   a token can span multiple chunks!
-   we also support quoting and escaping ( a la bash )
-*/
-
-typedef struct tokenzr
-{
-    int * argc;
-    char *** argv;
-    char *token;
-    size_t allocated;
-    size_t used;
-    uint32_t state;
-    uint32_t nargs;
-    char escape[ 3 ];
-    char n_escape;
-    char m_escape;
-} tokenzr;
-
-
-static rc_t make_tokenzr( tokenzr **t, int * argc, char *** argv )
-{
-    rc_t rc = 0;
-    if ( t == NULL )
-    {
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcSelf, rcNull );
-    }
-    else
-    {
-        tokenzr *t1 = malloc( sizeof *t1 );
-        if ( t1 == NULL )
-        {
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        }
-        else
-        {
-            t1->token = malloc( TOKEN_INC );
-            if ( t1->token == NULL )
-            {
-                rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-            }
-            else
-            {
-                t1->allocated = TOKEN_INC;
-                t1->used = 0;
-                t1->state = 0;
-                t1->nargs = 0;
-                t1->argc = argc;
-                t1->argv = argv;
-                t1->n_escape = 0;
-                t1->m_escape = 0;
-            }
-        }
-        if ( rc == 0 )
-        {
-            *t = t1;
-        }
-    }
-    return rc;
-}
-
-
-static void free_tokenzr( tokenzr *t )
-{
-    if ( t != NULL )
-    {
-        if ( t->token != NULL )
-            free( t->token );
-        free( t );
-    }
-}
-
-
-static rc_t expand_argv( tokenzr *t )
-{
-    rc_t rc = 0;
-    char ** pargv = *(t->argv);
-
-    if ( pargv == NULL )
-    {
-        pargv = malloc( ARGV_INC * ( sizeof pargv[ 0 ] ) );
-        if ( pargv != NULL )
-        {
-            t->nargs = ARGV_INC;
-            ( *(t->argc) ) = 0;
-        }
-        else
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-    }
-    else
-    {
-        if ( ( *(t->argc) ) >= t->nargs )
-        {
-            char ** pargv1 = realloc( pargv, ( ( t->nargs + ARGV_INC ) * ( sizeof pargv[ 0 ] ) ) );
-            if ( pargv1 != NULL )
-            {
-                t->nargs += ARGV_INC;
-                pargv = pargv1;
-            }
-            else
-            {
-                rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-                free( pargv );
-                pargv = NULL;
-            }
-        }
-    }
-    if ( rc == 0 )
-    {
-        *(t->argv) =  pargv;
-    }
-    return rc;
-}
-
-
-static rc_t add_string_to_argv( tokenzr *t, const char * str, size_t len )
-{
-    rc_t rc = expand_argv( t );
-    if ( rc == 0 )
-    {
-        int argc = *(t->argc);
-        char ** pargv = *(t->argv);
-
-        pargv[ argc ] = string_dup ( str, len );
-        if ( pargv[ argc ] == NULL )
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        else
-        {
-            ( *(t->argc) )++;
-            *(t->argv) =  pargv;
-            t->used = 0;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t add_token_to_argv( tokenzr *t )
-{
-    return add_string_to_argv( t, t->token, t->used );
-}
-
-
-static rc_t add_buffer_to_token( tokenzr *t, const char *buffer, size_t buflen )
-{
-    rc_t rc = 0;
-    if ( t->used + buflen > t->allocated )
-    {
-        size_t new_size = t->used + buflen + TOKEN_INC;
-        char * temp = realloc( t->token, new_size );
-        if ( temp == NULL )
-        {
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        }
-        else
-        {
-            t->token = temp;
-            t->allocated = new_size;
-        }
-    }
-    if ( rc == 0 )
-    {
-        memcpy( t->token + t->used, buffer, buflen );
-        t->used += buflen;
-    }
-    return rc;
-}
-
-
-/* this is the 'normal' state, that the buffer is divided into tokens by white-space */
-const static char delim0[] = " \r\n\f\t\v\\\"";
-static rc_t tokenize_state0( tokenzr *t, bool *done, char ** ptr, const char *buffer, size_t buflen )
-{
-    rc_t rc;
-    char * s = strpbrk ( *ptr, delim0 );
-    if ( s == NULL )
-    {
-        /* delimiting char not found!
-            ---> add everything to the tokenbuffer */
-        size_t to_add = buflen - ( *ptr - buffer );
-        rc = add_buffer_to_token( t, *ptr, to_add );
-        *done = true;
-    }
-    else
-    {
-        /* delimiting char found!
-            ---> add everything from ptr to s to the tokenbuffer
-            ---> then add token to argv
-            ---> then clear token */
-        rc = add_buffer_to_token( t, *ptr, s - *ptr );
-        if ( rc == 0 )
-        {
-            if ( t->used > 0 && *s != '\\' )
-                rc = add_token_to_argv( t );
-            *ptr = s + 1;
-            *done = ( *ptr >= buffer + buflen );
-            switch( *s )
-            {
-                case '"'  : t->state =  1; break;
-                case '\\' : t->state =  2; break;
-            }
-        }
-    }
-    return rc;
-}
-
-
-/* this state, provides 'quoting' ( prevents tokenizing by putting quotes "" around strings
-    which would be otherwise separated by whitespace ) */
-const static char delim1[] = "\"";
-static rc_t tokenize_state1( tokenzr *t, bool *done, char ** ptr, const char *buffer, size_t buflen )
-{
-    rc_t rc;
-    char * s = strpbrk ( *ptr, delim1 );
-    if ( s == NULL )
-    {
-        /* delimiting char not found!
-            ---> add everything to the tokenbuffer */
-        size_t to_add = buflen - ( *ptr - buffer );
-        rc = add_buffer_to_token( t, *ptr, to_add );
-        *done = true;
-    }
-    else
-    {
-        /* delimiting char found!
-            ---> add everything from ptr to s to the tokenbuffer
-            ---> then add token to argv
-            ---> then clear token */
-        rc = add_buffer_to_token( t, *ptr, s - *ptr );
-        if ( rc == 0 )
-        {
-            if ( t->used > 0 )
-                rc = add_token_to_argv( t );
-            *ptr = s + 1;
-            *done = ( *ptr >= buffer + buflen );
-            if ( *s == '"' )
-                t->state = 0;
-        }
-    }
-    return rc;
-}
-
-
-/* this state, provides 'escaping' ( \nnn or \xHH or \' or \" ) */
-static rc_t tokenize_state2( tokenzr *t, bool *done, char ** ptr, const char *buffer, size_t buflen )
-{
-    rc_t rc = 0;
-    char c = **ptr;
-    switch( c )
-    {
-        case '\\' : /* no break intended ! */
-        case '\'' :
-        case '\"' : rc = add_buffer_to_token( t, (*ptr)++, 1 );
-                    break;
-
-        case 't'  : rc = add_buffer_to_token( t, "\t", 1 );
-                    (*ptr)++;
-                    break;
-        case 'n'  : rc = add_buffer_to_token( t, "\n", 1 );
-                    (*ptr)++;
-                    break;
-        case 'r'  : rc = add_buffer_to_token( t, "\r", 1 );
-                    (*ptr)++;
-                    break;
-
-    }
-    t->state = 0;
-    *done = ( *ptr >= buffer + buflen );
-    return rc;
-}
-
-
-static rc_t tokenize_buffer( tokenzr *t, const char *buffer, size_t buflen )
-{
-    rc_t rc = 0;
-    char * ptr = ( char * ) buffer;
-    bool done = false;
-    while ( rc == 0 && !done )
-        switch( t->state )
-        {
-            case 0 : rc = tokenize_state0( t, &done, &ptr, buffer, buflen ); break;
-            case 1 : rc = tokenize_state1( t, &done, &ptr, buffer, buflen ); break;
-            case 2 : rc = tokenize_state2( t, &done, &ptr, buffer, buflen ); break;
-        }
-    return rc;
-}
-
-
-static rc_t tokenize_file_and_progname_into_argv( const char * filename, const char * progname,
-                                                  int * argc, char *** argv )
-{
-    rc_t rc2, rc = 0;
-    VFSManager *vfs_mgr;
-
-    ( *argv ) = NULL;
-    ( *argc ) = 0;
-    rc = VFSManagerMake ( &vfs_mgr );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "VFSManagerMake() failed" );
-    else
-    {
-        VPath * vfs_path;
-        rc = VPathMake ( &vfs_path, filename );
-        if ( rc != 0 )
-            LOGERR( klogInt, rc, "VPathMake() failed" );
-        else
-        {
-            struct KFile const *my_file;
-            rc = VFSManagerOpenFileRead ( vfs_mgr, &my_file, vfs_path );
-            if ( rc != 0 )
-                LOGERR( klogInt, rc, "VFSManagerOpenFileRead() failed" );
-            else
-            {
-                tokenzr *t;
-                uint64_t pos = 0;
-                char buffer[ 4096 + 1 ];
-                size_t num_read;
-
-                rc = make_tokenzr( &t, argc, argv );
-                if ( rc != 0 )
-                    LOGERR( klogInt, rc, "make_tokenzr() failed" );
-                else
-                {
-                    if ( progname != NULL )
-                        rc = add_string_to_argv( t, progname, string_size( progname ) );
-
-                    if ( rc == 0 )
-                    {
-                        do
-                        {
-                            rc = KFileRead ( my_file, pos, buffer, ( sizeof buffer ) - 1, &num_read );
-                            if ( rc != 0 )
-                                LOGERR( klogInt, rc, "KFileRead() failed" );
-                            else if ( num_read > 0 )
-                            {
-                                buffer[ num_read ]  = 0;
-                                rc = tokenize_buffer( t, buffer, num_read );
-                                if ( rc != 0 )
-                                    LOGERR( klogInt, rc, "tokenize_buffer() failed" );
-                                pos += num_read;
-                            }
-                        } while ( rc == 0 && num_read > 0 );
-                    }
-
-                    if ( rc == 0 && t->used > 0 )
-                    {
-                        rc = add_token_to_argv( t );
-                        if ( rc != 0 )
-                            LOGERR( klogInt, rc, "add_token_to_argv() failed" );
-                    }
-                    free_tokenzr( t );
-                }
-                rc2 = KFileRelease ( my_file );
-                if ( rc2 != 0 )
-                    LOGERR( klogInt, rc2, "KFileRelease() failed" );
-            }
-            rc2 = VPathRelease ( vfs_path );
-            if ( rc2 != 0 )
-                LOGERR( klogInt, rc2, "VPathRelease() failed" );
-        }
-        rc2 = VFSManagerRelease ( vfs_mgr );
-        if ( rc2 != 0 )
-            LOGERR( klogInt, rc2, "VFSManagerRelease() failed" );
-    }
-    return rc;
-}
-
-
-rc_t CC Args_tokenize_file_into_argv( const char * filename, int * argc, char *** argv )
-{
-    return tokenize_file_and_progname_into_argv( filename, NULL, argc, argv );
-}
-
-
-rc_t CC Args_tokenize_file_and_progname_into_argv( const char * filename, const char * progname,
-                                                               int * argc, char *** argv )
-{
-    return tokenize_file_and_progname_into_argv( filename, progname, argc, argv );
-}
-
-
-void CC Args_free_token_argv( int argc, char * argv[] )
-{
-    if ( argv != NULL )
-    {
-        int i;
-        for ( i = 0; i < argc; ++i )
-            free( argv[ i ] );
-        free( argv );
-    }
-}
-
-
-static int sized_str_cmp( const char *a, const char *b )
-{
-    size_t asize = string_size ( a );
-    size_t bsize = string_size ( b );
-    return strcase_cmp ( a, asize, b, bsize, ( asize > bsize ) ? asize : bsize );
-}
-
-
-/* get's the filename following a file_option - parameter into the file-name-buffer */
-rc_t CC Args_find_option_in_argv( int argc, char * argv[],
-                                              const char * option_name,
-                                              char * option, size_t option_len )
-{
-    rc_t rc = 0;
-    int i, opt_idx;
-
-    if ( option == NULL )
-        return RC( rcRuntime, rcArgv, rcConstructing, rcParam, rcNull );
-
-    option[ 0 ] = 0;
-
-    if ( argv == NULL || argc < 1 )
-        return RC( rcRuntime, rcArgv, rcConstructing, rcSelf, rcNull );
-    if ( option_name == NULL || option_len == 0 )
-        return RC( rcRuntime, rcArgv, rcConstructing, rcParam, rcNull );
-
-    opt_idx = -1;
-    for ( i = 0; i < argc && ( option[ 0 ] == 0 ); ++i )
-    {
-        if ( sized_str_cmp( (const char *)argv[i], option_name ) == 0 )
-        {
-                opt_idx = ( i + 1 );
-        }
-        else if ( i == opt_idx )
-        {
-            string_copy( option, option_len, argv[i], string_size( argv[i] ) );
-        }
-    }
-    if ( option[ 0 ] == 0 )
-        rc = RC( rcRuntime, rcArgv, rcConstructing, rcParam, rcNotFound );
-    return rc;
-}
-
-
-rc_t CC Args_parse_inf_file( Args * args, const char * file_option )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, file_option, &count );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "ArgsOptionCount() failed" );
-    else if ( count > 0 )
-    {
-        uint32_t count2 = 0;
-        do
-        {
-            uint32_t idx;
-            for ( idx = count2; idx < count && rc == 0; ++idx )
-            {
-                const char *filename;
-                rc = ArgsOptionValue( args, file_option, idx, &filename );
-                if ( rc != 0 )
-                    LOGERR( klogInt, rc, "ArgsOptionValue() failed" );
-                else if ( filename != NULL )
-                {
-                    int argc;
-                    char ** argv;
-                    rc = Args_tokenize_file_into_argv( filename, &argc, &argv );
-                    if ( rc == 0 && argv != NULL && argc > 0 )
-                    {
-                        rc = ArgsParse ( args, argc, argv );
-                        Args_free_token_argv( argc, argv );
-                    }
-                }
-            }
-            count2 = count;
-            rc = ArgsOptionCount( args, file_option, &count );
-            if ( rc != 0 )
-                LOGERR( klogInt, rc, "ArgsOptionCount() failed" );
-        } while ( rc == 0 && count > count2 );
-    }
-    return rc;
-}
diff --git a/libs/kapp/unix/sysmain.c b/libs/kapp/unix/sysmain.c
index cbeb87e..fb247f1 100644
--- a/libs/kapp/unix/sysmain.c
+++ b/libs/kapp/unix/sysmain.c
@@ -30,7 +30,6 @@
 #include <klib/log.h>
 #include <klib/debug.h>
 #include <klib/status.h>
-#include <klib/report.h>
 #include <klib/rc.h>
 #include <atomic32.h>
 
@@ -43,10 +42,6 @@
 #include <errno.h>
 #include <assert.h>
 
-#if ! _DEBUGGING && ! defined CATCH_SIGSEGV
-#define CATCH_SIGSEGV 1
-#endif
-
 /*--------------------------------------------------------------------------
  * Main
  */
@@ -71,8 +66,6 @@ rc_t Quitting ( void )
  */
 rc_t SignalQuit ( void )
 {
-    ReportSilence ();
-
     if ( kill ( 0, SIGTERM ) != 0 ) switch ( errno )
     {
     case EINVAL:
@@ -141,8 +134,6 @@ void SigQuitHandler ( int sig )
 {
     const char *msg;
 
-    ReportSilence ();
-
     atomic32_inc ( & quitting );
     switch ( sig )
     {
@@ -165,7 +156,6 @@ void SigQuitHandler ( int sig )
 
 /* SigSegvHandler
  */
-#if CATCH_SIGSEGV
 static
 void SigSegvHandler ( int sig )
 {
@@ -174,7 +164,6 @@ void SigSegvHandler ( int sig )
     abort ();
     exit ( 1 );
 }
-#endif
 
 /* main
  *  Unix specific main entrypoint
@@ -190,9 +179,7 @@ int main ( int argc, char *argv [] )
         { SigHupHandler, SIGHUP },
         { SigQuitHandler, SIGINT },
         { SigQuitHandler, SIGQUIT },
-#if CATCH_SIGSEGV
         { SigSegvHandler, SIGSEGV },
-#endif
         { SigQuitHandler, SIGTERM }
     };
 
diff --git a/libs/kapp/win/sysmain.c b/libs/kapp/win/sysmain.c
index e8f3bcc..3d48b67 100644
--- a/libs/kapp/win/sysmain.c
+++ b/libs/kapp/win/sysmain.c
@@ -107,21 +107,6 @@ rc_t CC SignalNoHup ( void )
     return 0;
 }
 
-
-BOOL CC Our_HandlerRoutine( DWORD dwCtrlType )
-{
-    BOOL res = FALSE;
-    switch( dwCtrlType )
-    {
-    case CTRL_C_EVENT : ReportSilence ();
-                        atomic32_inc ( & quitting );
-                        res = TRUE;
-                        break;
-    }
-    return res;
-}
-
-
 /* main
  *  Windows specific main entrypoint
  */
@@ -130,8 +115,6 @@ int main2 ( int argc, char *argv [] )
 {
     rc_t rc;
 
-    SetConsoleCtrlHandler( ( PHANDLER_ROUTINE ) Our_HandlerRoutine, TRUE );
-
     /* run this guy */
     rc = KMane ( argc, argv );
 
@@ -229,7 +212,6 @@ char *rewrite_arg ( const wchar_t *arg )
     return utf8;
 }
 
-
 int __cdecl wmain ( int argc, wchar_t *wargv [], wchar_t *envp [] )
 {
     char **argv;
diff --git a/libs/kdb/Makefile b/libs/kdb/Makefile
index 2b941a9..03f51b2 100644
--- a/libs/kdb/Makefile
+++ b/libs/kdb/Makefile
@@ -43,18 +43,19 @@ include $(TOP)/build/Makefile.env
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(ALL_LIBS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(INT_LIBS): vers-includes
+$(INT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
 
-$(EXT_LIBS): vers-includes
+$(EXT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
 .PHONY: all std $(ALL_LIBS) $(ALL_DEFS)
 
-
 #-------------------------------------------------------------------------------
 # std
 #
@@ -65,13 +66,6 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -128,8 +122,6 @@ KDB_OBJ = \
 	$(addsuffix .$(LOBX),$(KDB_SRC))
 
 KDB_LIB = \
-	-dvfs \
-	-dkrypto \
 	-dkfs \
 	-dklib
 
@@ -172,8 +164,6 @@ WKDB_OBJ = \
 	$(addsuffix .$(LOBX),$(WKDB_SRC))
 
 WKDB_LIB = \
-	-dvfs \
-	-dkrypto \
 	-dkfs \
 	-dklib
 
diff --git a/libs/kdb/btree.c b/libs/kdb/btree.c
index f3a11f0..bfaf1f0 100644
--- a/libs/kdb/btree.c
+++ b/libs/kdb/btree.c
@@ -805,9 +805,7 @@ rc_t KBTreeReadHeader ( KBTreeHdr *hdr, const KFile *f )
         if ( eof < sizeof * hdr )
             return RC ( rcDB, rcTree, rcConstructing, rcData, rcCorrupt );
 
-        rc = KFileReadAll ( f, eof - sizeof * hdr, hdr, sizeof * hdr, & num_read );
-        if ( rc == 0 && num_read != sizeof * hdr )
-            rc = RC ( rcDB, rcTree, rcConstructing, rcData, rcInsufficient );
+        rc = KFileRead ( f, eof - sizeof * hdr, hdr, sizeof * hdr, & num_read );
         if ( rc == 0 )
         {
             if ( hdr -> endian != eByteOrderTag )
@@ -939,8 +937,6 @@ typedef struct KBTreeBranchNode_v2 KBTreeBranchNode;
 
 #if _DEBUGGING 
 #define VALIDATE_SEARCH_WINDOW 0
-#endif
-
 #if VALIDATE_SEARCH_WINDOW
 static
 bool validate_search_window(KBTreeSrchWindow *win)
@@ -955,7 +951,7 @@ bool validate_search_window(KBTreeSrchWindow *win)
 #else
 #define validate_search_window(A) true
 #endif
-
+#endif
 /* Whack
  */
 static
@@ -1096,7 +1092,7 @@ LIB_EXPORT rc_t CC KBTreeMakeRead ( const KBTree **btp,
 #if BTREE_KEY2ID
 LIB_EXPORT rc_t CC KBTreeMakeUpdate ( KBTree **btp, KFile *backing,
     size_t climit, bool write_through, KBTreeKeyType type,
-    size_t min_key_size, size_t max_key_size, size_t id_size,
+    size_t min_key_size, size_t max_key_size,
     KBTreeCompareFunc cmp )
 #else
 LIB_EXPORT rc_t CC KBTreeMakeUpdate ( KBTree **btp, KFile *backing,
@@ -1113,7 +1109,9 @@ LIB_EXPORT rc_t CC KBTreeMakeUpdate ( KBTree **btp, KFile *backing,
         rc = RC ( rcDB, rcTree, rcConstructing, rcParam, rcNull );
     else
     {
-        if ( type >= kbtLastDefined )
+        if ( backing == NULL )
+            rc = RC ( rcDB, rcTree, rcConstructing, rcFile, rcNull );
+        else if ( type >= kbtLastDefined )
             rc = RC ( rcDB, rcTree, rcConstructing, rcType, rcUnrecognized );
         else if ( min_key_size == 0 )
             rc = RC ( rcDB, rcTree, rcConstructing, rcParam, rcInvalid );
@@ -1121,18 +1119,15 @@ LIB_EXPORT rc_t CC KBTreeMakeUpdate ( KBTree **btp, KFile *backing,
             rc = RC ( rcDB, rcTree, rcConstructing, rcParam, rcExcessive );
         else if ( min_key_size > max_key_size )
             rc = RC ( rcDB, rcTree, rcConstructing, rcParam, rcInconsistent );
-#if BTREE_KEY2ID && ! BTREE_KEY2ID64
-        else if ( id_size != sizeof ( uint32_t ) )
-            rc = RC ( rcDB, rcTree, rcConstructing, rcParam, rcInvalid );
-#endif
         else
         {
-            KBTree *bt = calloc ( 1,sizeof * bt );
+            KBTree *bt = malloc ( sizeof * bt );
             if ( bt == NULL )
                 rc = RC ( rcDB, rcTree, rcConstructing, rcMemory, rcExhausted );
             else
             {
-                if ( backing == NULL || ( rc = KBTreeReadHeader ( & bt -> hdr, backing )) == 0 || GetRCState ( rc ) == rcNotFound )
+                rc = KBTreeReadHeader ( & bt -> hdr, backing );
+                if ( rc == 0 || GetRCState ( rc ) == rcNotFound )
                 {
                     /* detect empty file */
                     if ( bt -> hdr . version == 0 )
@@ -1175,7 +1170,7 @@ LIB_EXPORT rc_t CC KBTreeMakeUpdate ( KBTree **btp, KFile *backing,
 
                     if ( rc == 0 )
                     {
-                        if(backing) rc = KFileAddRef ( backing );
+                        rc = KFileAddRef ( backing );
                         if ( rc == 0 )
                         {
                             /* create page file */
@@ -1195,7 +1190,7 @@ LIB_EXPORT rc_t CC KBTreeMakeUpdate ( KBTree **btp, KFile *backing,
                                 return 0;
                             }
 
-                            if(backing) KFileRelease ( backing );
+                            KFileRelease ( backing );
                         }
                     }
                 }
@@ -1463,7 +1458,7 @@ rc_t branch_find ( const KBTree *self, const KPage *page,
 
 
 #if BTREE_KEY2ID
-LIB_EXPORT rc_t CC KBTreeFind ( const KBTree *self, uint64_t *id,
+LIB_EXPORT rc_t CC KBTreeFind ( const KBTree *self, uint32_t *id,
     const void *key, size_t key_size )
 #else
 LIB_EXPORT rc_t CC KBTreeFind ( const KBTree *self, KBTreeValue *val,
@@ -1495,20 +1490,12 @@ LIB_EXPORT rc_t CC KBTreeFind ( const KBTree *self, KBTreeValue *val,
             rc = KPageFileGet ( self -> pgfile, & page, self -> hdr . root >> 1 );
             if ( rc == 0 )
             {
-#if BTREE_KEY2ID && ! BTREE_KEY2ID64
-                uint32_t id32;
-#endif
                 rc = ( ( ( self -> hdr . root & 1 ) == 0 ) ? leaf_find : branch_find )
-#if BTREE_KEY2ID64
+#if BTREE_KEY2ID
                     ( self, page, id, key, key_size );
-#elif BTREE_KEY2ID
-                    ( self, page, & id32, key, key_size );
 #else
                     ( self, page, val, key, key_size );
 #endif
-#if BTREE_KEY2ID && ! BTREE_KEY2ID64
-                    * id = id32;
-#endif
                 
                 KPageRelease ( page );
             }
@@ -2717,7 +2704,7 @@ rc_t branch_entry ( KBTree *self, KBTreeEntryData *pb, KPage *page, KBTreeSplit
 
 
 #if BTREE_KEY2ID
-LIB_EXPORT rc_t CC KBTreeEntry ( KBTree *self, uint64_t *id,
+LIB_EXPORT rc_t CC KBTreeEntry ( KBTree *self, uint32_t *id,
     bool *was_inserted, const void *key, size_t key_size )
 #else
 LIB_EXPORT rc_t CC KBTreeEntry ( KBTree *self,
@@ -2754,20 +2741,11 @@ LIB_EXPORT rc_t CC KBTreeEntry ( KBTree *self,
             bool leaf;
             KPage *page;
 
-#if BTREE_KEY2ID && ! BTREE_KEY2ID64
-            /* TEMPORARY
-               until full 64-bit ids are supported
-            */
-            uint32_t id32 = ( uint32_t ) * id;
-#endif
-
             /* package the entry params into a block */
             KBTreeEntryData pb;
             pb . self = self;
-#if BTREE_KEY2ID64
+#if BTREE_KEY2ID
             pb . id = id;
-#elif BTREE_KEY2ID
-            pb . id = & id32;
 #else
             pb . val = val;
             pb . alloc_size = alloc_size;
@@ -2801,9 +2779,6 @@ LIB_EXPORT rc_t CC KBTreeEntry ( KBTree *self,
                     leaf_entry ( self, & pb, page, & split ):
                     branch_entry ( self, & pb, page, & split );
 
-#if BTREE_KEY2ID && ! BTREE_KEY2ID64
-                * id = id32;
-#endif
                 if ( rc != 0 )
                 {
                     /* detect split */
@@ -2831,7 +2806,7 @@ LIB_EXPORT rc_t CC KBTreeEntry ( KBTree *self,
                                 node -> ltrans = split . left;
                                 node -> ord [ 0 ] . trans = split . right;
                                 node -> count = 1;
-/* 				assert ( split . left < 10000 && split . right < 10000); */
+				assert ( split . left < 10000 && split . right < 10000);
                                 /*** init search windows ***/
                                 q=(split.ksize>0)? *(uint8_t*)split.key:0;
 				node -> win[q].lower = 0;
@@ -2892,7 +2867,7 @@ LIB_EXPORT rc_t CC KBTreeEntry ( KBTree *self,
 #if BTREE_KEY2ID
 static
 rc_t invoke_foreach_func ( const KBTree *self, const void *cnode, const void *ordp,
-    void ( CC * f ) ( const void *key, size_t key_size, uint64_t id, void *data ), void *data )
+    void ( CC * f ) ( const void *key, size_t key_size, uint32_t id, void *data ), void *data )
 #else
 static
 rc_t invoke_foreach_func ( const KBTree *self, const void *cnode, const void *ordp,
@@ -2928,8 +2903,8 @@ rc_t invoke_foreach_func ( const KBTree *self, const void *cnode, const void *or
 
 #if BTREE_KEY2ID
 static
-rc_t leaf_foreach ( const KBTree *self, bool reverse, uint64_t nid,
-    void ( CC * f ) ( const void *key, size_t key_size, uint64_t id, void *data ), void *data )
+rc_t leaf_foreach ( const KBTree *self, bool reverse, uint32_t nid,
+    void ( CC * f ) ( const void *key, size_t key_size, uint32_t id, void *data ), void *data )
 #else
 static
 rc_t leaf_foreach ( const KBTree *self, bool reverse, uint32_t nid,
@@ -2967,8 +2942,8 @@ rc_t leaf_foreach ( const KBTree *self, bool reverse, uint32_t nid,
 
 #if BTREE_KEY2ID
 static
-rc_t branch_foreach ( const KBTree *self, bool reverse, uint64_t nid,
-    void ( CC * f ) ( const void *key, size_t key_size, uint64_t id, void *data ), void *data )
+rc_t branch_foreach ( const KBTree *self, bool reverse, uint32_t nid,
+    void ( CC * f ) ( const void *key, size_t key_size, uint32_t id, void *data ), void *data )
 #else
 static
 rc_t branch_foreach ( const KBTree *self, bool reverse, uint32_t nid,
@@ -3032,7 +3007,7 @@ rc_t branch_foreach ( const KBTree *self, bool reverse, uint32_t nid,
 
 #if BTREE_KEY2ID
 LIB_EXPORT rc_t CC KBTreeForEach ( const KBTree *self, bool reverse,
-    void ( CC * f ) ( const void *key, size_t key_size, uint64_t id, void *data ), void *data )
+    void ( CC * f ) ( const void *key, size_t key_size, uint32_t id, void *data ), void *data )
 #else
 LIB_EXPORT rc_t CC KBTreeForEach ( const KBTree *self, bool reverse,
     void ( CC * f ) ( const void *key, size_t key_size, KBTreeValue *val, void *data ), void *data )
diff --git a/libs/kdb/coldata.c b/libs/kdb/coldata.c
index 8434b7f..427cfc3 100644
--- a/libs/kdb/coldata.c
+++ b/libs/kdb/coldata.c
@@ -39,7 +39,7 @@
 #include <errno.h>
 
 
-#define DATA_READ_FILE_BUFFER 32* 1024
+#define DATA_READ_FILE_BUFFER 32 * 1024
 
 
 /*--------------------------------------------------------------------------
diff --git a/libs/kdb/colidx0.c b/libs/kdb/colidx0.c
index b0f2653..b0caf74 100644
--- a/libs/kdb/colidx0.c
+++ b/libs/kdb/colidx0.c
@@ -171,7 +171,7 @@ rc_t KColumnIdx0Init_v1 ( KColumnIdx0 *self, const KFile *f, bool bswap )
         {
             uint32_t count;
 
-            rc = KFileReadAll ( f, pos,
+            rc = KFileRead ( f, pos,
                 buffer, 2048 * sizeof * buffer, & num_read );
             if ( rc != 0 )
                 break;
@@ -217,7 +217,7 @@ rc_t KColumnIdx0Init ( KColumnIdx0 *self, const KFile *f, uint32_t total, bool b
             if ( count > 2048 )
                 count = 2048;
 
-            rc = KFileReadAll ( f, i * sizeof * buffer,
+            rc = KFileRead ( f, i * sizeof * buffer,
                 buffer, count * sizeof * buffer, & num_read );
             if ( rc != 0 )
                 break;
diff --git a/libs/kdb/colidx1.c b/libs/kdb/colidx1.c
index 83439de..66edaef 100644
--- a/libs/kdb/colidx1.c
+++ b/libs/kdb/colidx1.c
@@ -145,13 +145,13 @@ rc_t KColumnIdx1Init ( KColumnIdx1 *self, uint32_t off, uint32_t count )
     {
         size_t num_read;
         uint32_t i, cnt;
-        for ( rc = 0, i = 0; i < count; off += ( uint32_t ) num_read, i += cnt )
+        for ( rc = 0, i = 0; i < count; off += (uint32_t)num_read, i += cnt )
         {
             cnt = count - i;
             if ( cnt > 2048 )
                 cnt = 2048;
 
-            rc = KFileReadAll ( self -> f, off,
+            rc = KFileRead ( self -> f, off,
                 buffer, cnt * sizeof * buffer, & num_read );
             if ( rc != 0 )
                 break;
@@ -195,7 +195,7 @@ rc_t KColumnIdx1OpenRead ( KColumnIdx1 *self, const KDirectory *dir,
     {
         KColumnHdr hdr;
         size_t num_bytes;
-        rc = KFileReadAll ( self -> f, 0, & hdr, sizeof hdr, & num_bytes );
+        rc = KFileRead ( self -> f, 0, & hdr, sizeof hdr, & num_bytes );
         if ( rc == 0 )
         {
             if ( num_bytes == 0 )
@@ -248,7 +248,7 @@ rc_t KColumnIdx1OpenRead ( KColumnIdx1 *self, const KDirectory *dir,
                         if ( rc == 0 )
                         {
                             off = sizeof hdr . dad;
-                            rc = KFileReadAll ( self -> fidx, 0, & hdr, sizeof hdr, & num_bytes );
+                            rc = KFileRead ( self -> fidx, 0, & hdr, sizeof hdr, & num_bytes );
                             if ( rc == 0 )
                             {
                                 if ( num_bytes < KColumnHdrOffset ( hdr, v2 ) )
diff --git a/libs/kdb/colidx2-priv.h b/libs/kdb/colidx2-priv.h
index 2e28a65..2319306 100644
--- a/libs/kdb/colidx2-priv.h
+++ b/libs/kdb/colidx2-priv.h
@@ -39,8 +39,13 @@
 #include <klib/container.h>
 #endif
 
-#include <klib/data-buffer.h>
+#ifndef IDX2_SINGLE_PAGE_CACHE
+#define IDX2_SINGLE_PAGE_CACHE 1
+#endif
+
+#if IDX2_SINGLE_PAGE_CACHE
 #include "idxblk-priv.h"
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -51,16 +56,6 @@ extern "C" {
  * KColumnIdx2
  *  level 2 index
  */
-
-typedef struct KColumnIdx2BlockCache
-{
-    /* single page cache */
-    void *block;
-    int64_t start_id;
-    size_t count;
-    KColIdxBlock iblk;
-} KColumnIdx2BlockCache;
-
 typedef struct KColumnIdx2 KColumnIdx2;
 struct KColumnIdx2
 {
@@ -70,9 +65,15 @@ struct KColumnIdx2
     /* idx2 itself */
     struct KFile const *f;
 
-    /* full caching mechanism */
-    KDataBuffer cstorage;
-    uint32_t	last;
+#if ! IDX2_SINGLE_PAGE_CACHE
+    size_t align1;
+#else
+    /* single page cache */
+    void *block;
+    int64_t start_id;
+    size_t count;
+    KColIdxBlock iblk;
+#endif
 };
 
 /* Open
diff --git a/libs/kdb/colidx2.c b/libs/kdb/colidx2.c
index 59743c3..e5cf946 100644
--- a/libs/kdb/colidx2.c
+++ b/libs/kdb/colidx2.c
@@ -39,7 +39,7 @@
 #include <byteswap.h>
 
 
-#define IDX2_READ_FILE_BUFFER 64 * 1024
+#define IDX2_READ_FILE_BUFFER 32 * 1024
 
 
 /*--------------------------------------------------------------------------
@@ -54,11 +54,10 @@ rc_t KColumnIdx2Init ( KColumnIdx2 *self, uint64_t idx2_eof )
 {
     rc_t rc;
 
-#if 0
-    memset(&self->cstorage,0,sizeof(self->cstorage));
-    self->cstorage.elem_bits = sizeof(KColumnIdx2BlockCache)*8;
-    self->last = 0;
+#if IDX2_SINGLE_PAGE_CACHE
+    self -> block = NULL;
 #endif
+
     rc = KFileSize ( self -> f, & self -> eof );
     if ( rc == 0 )
     {
@@ -70,9 +69,8 @@ rc_t KColumnIdx2Init ( KColumnIdx2 *self, uint64_t idx2_eof )
             return 0;
         }
     }
-    
-    KFileRelease ( self -> f );
 
+    KFileRelease ( self -> f );
     self -> f = NULL;
     return rc;
 }
@@ -84,20 +82,10 @@ rc_t KColumnIdx2OpenRead ( KColumnIdx2 *self,
 {
     rc_t rc;
 
-    rc = KDataBufferMake ( & self -> cstorage, sizeof ( KColumnIdx2BlockCache ) * 8, 0 );
-    if ( rc != 0 )
-    {
-        memset ( self, 0, sizeof * self );
-        return rc;
-    }
-
-    self -> last = 0;
-
     if ( eof == 0 )
     {
-#if 0
-        KDataBufferResize(&self->cstorage,0);
-        self -> last = 0;
+#if IDX2_SINGLE_PAGE_CACHE
+        self -> block = NULL;
 #endif
         self -> eof = 0;
         self -> f = NULL;
@@ -134,13 +122,11 @@ rc_t KColumnIdx2Whack ( KColumnIdx2 *self )
     rc_t rc = KFileRelease ( self -> f );
     if ( rc == 0 )
     {
-        int i;
-        KColumnIdx2BlockCache * cache=(KColumnIdx2BlockCache *)self -> cstorage.base;
         self -> f = NULL;
-        for(i=0;i<self->cstorage.elem_count;i++){
-            free(cache[i].block);
-        }
-        KDataBufferWhack(&self->cstorage);
+#if IDX2_SINGLE_PAGE_CACHE
+        free ( self -> block );
+        self -> block = NULL;
+#endif
     }
     return rc;
 }
@@ -176,47 +162,25 @@ rc_t KColumnIdx2LocateBlob ( const KColumnIdx2 *self,
     int64_t first, int64_t upper, bool bswap )
 {
     rc_t rc;
+
     uint32_t count;
     size_t block_size, orig;
-    uint32_t slot=0;
 
+#if ! IDX2_SINGLE_PAGE_CACHE
+    char buffer [ 1024 ];
+    void *block = buffer;
+#else
     void *block;
 
-    /* check within page cache */
-    if(self -> cstorage.elem_count > 0){
-        KColumnIdx2BlockCache * cache=(KColumnIdx2BlockCache *)self -> cstorage.base;
-        assert(self->last < self->cstorage.elem_count);
-        if(bloc -> start_id == cache[self->last].start_id){
-            rc = KColIdxBlockLocateBlob ( & cache[self->last].iblk, loc, bloc, ( uint32_t ) cache[self->last].count, first, upper );
-            if ( rc == 0) return 0;
-        } else {
-            uint32_t lower,upper,pivot;
-            if(bloc -> start_id > cache[self->last].start_id){
-                lower=self->last+1;
-                upper=self->cstorage.elem_count;
-            } else {
-                lower=0;
-                upper = self->last;
-            }
-            while(lower < upper){
-                pivot = (lower + upper) / 2;
-                if(bloc -> start_id == cache[pivot].start_id){
-                    KColumnIdx2 * nc_self=(KColumnIdx2 *)self;
-                    nc_self->last = pivot;
-                    rc = KColIdxBlockLocateBlob ( & cache[self->last].iblk, loc, bloc, ( uint32_t ) cache[self->last].count, first, upper );
-                    if ( rc == 0) return 0;
-                    goto BSEARCH_DONE;
-                } else if(bloc -> start_id < cache[pivot].start_id){
-                    upper=pivot;
-                } else {
-                    lower =pivot+1;
-                }
-            }
-            assert(lower == upper );
-            slot = upper;
-        }
+    /* check within single page cache */
+    if ( self -> block != NULL && self -> start_id == bloc -> start_id )
+    {
+        rc = KColIdxBlockLocateBlob ( & self -> iblk,
+            loc, bloc, ( uint32_t ) self -> count, first, upper );
+        if ( rc == 0 )
+            return 0;
     }
-BSEARCH_DONE:
+#endif
 
     /* file may be empty or non-existent */
     if ( self -> eof == 0 )
@@ -234,13 +198,16 @@ BSEARCH_DONE:
     block_size = KColBlockLocAllocSize ( bloc, orig, count );
 
     /* allocate a block */
+#if ! IDX2_SINGLE_PAGE_CACHE
+    if ( block_size > sizeof buffer )
+#endif
         block = malloc ( block_size );
     if ( block == NULL )
         rc = RC ( rcDB, rcColumn, rcSelecting, rcMemory, rcExhausted );
     else
     {
         size_t num_read;
-        rc = KFileReadAll ( self -> f, bloc -> pg, block, orig, & num_read );
+        rc = KFileRead ( self -> f, bloc -> pg, block, orig, & num_read );
         if ( rc == 0 )
         {
             if ( num_read != orig )
@@ -252,26 +219,25 @@ BSEARCH_DONE:
                 if ( rc == 0 )
                 {
                     rc = KColIdxBlockLocateBlob ( & iblk,
-                        loc, bloc, count, first, upper );
+                       loc, bloc, count, first, upper );
+#if IDX2_SINGLE_PAGE_CACHE
                     if ( rc == 0 )
                     {
-                        KColumnIdx2BlockCache * cache;
-                        KDataBufferResize(&((KColumnIdx2 *)self)->cstorage,self->cstorage.elem_count+1);
-                        cache=(KColumnIdx2BlockCache *)self -> cstorage.base;
-                        if(slot < self->cstorage.elem_count -1){ /** not adding to the end **/
-                            memmove(cache+slot+1,cache+slot,sizeof(*cache)*(self->cstorage.elem_count - slot - 1));
-                        }
-                        cache += slot; 
-                        cache -> block = block;
-                        cache -> start_id = bloc -> start_id;
-                        cache -> count = count;
-                        cache -> iblk = iblk;
+                        free ( self -> block );
+                        ( ( KColumnIdx2* ) self ) -> block = block;
+                        ( ( KColumnIdx2* ) self ) -> start_id = bloc -> start_id;
+                        ( ( KColumnIdx2* ) self ) -> count = count;
+                        ( ( KColumnIdx2* ) self ) -> iblk = iblk;
                         return 0;
                     }
+#endif
                 }
             }
         }
-        
+
+#if ! IDX2_SINGLE_PAGE_CACHE
+        if ( block != buffer )
+#endif
             free ( block );
     }
 
diff --git a/libs/kdb/column-cc.c b/libs/kdb/column-cc.c
index c283d4b..5abc732 100644
--- a/libs/kdb/column-cc.c
+++ b/libs/kdb/column-cc.c
@@ -75,24 +75,6 @@ rc_t CC col_check_report(const CCReportInfoBlock *nfo, void *Ctx)
 }
 
 static
-rc_t CC CheckExists(const KDirectory *dir, uint32_t type, const char *name, void *Ctx)
-{
-    struct col_check_ctx *ctx = Ctx;
-    
-    if ((type & ~kptAlias) == kptFile) {
-        if (strcmp(name, "data") == 0)
-            ctx->found |= 1;
-        else if (strcmp(name, "idx0") == 0)
-            ctx->found |= 2;
-        else if (strcmp(name, "idx1") == 0)
-            ctx->found |= 4;
-        else if (strcmp(name, "idx2") == 0)
-            ctx->found |= 8;
-    }
-    return 0;
-}
-
-static
 rc_t KColumnCheckMD5(const KColumn *self,
                      CCReportInfoBlock *nfo,
                      CCReportFunc report, void *ctx)
@@ -108,30 +90,11 @@ rc_t KColumnCheckMD5(const KColumn *self,
     
     rc = DirectoryCheckMD5(self->dir, "md5", nfo, col_check_report, &local_ctx);
     if (rc == 0 && !local_ctx.failed && local_ctx.found != 0x0F) {
-        local_ctx.found = 0;
-        KDirectoryVisit(self->dir, false, CheckExists, &local_ctx, NULL);
         nfo->type = ccrpt_Done;
-        if (local_ctx.found == 0x0F) {
-            nfo->info.done.rc = RC(rcDB, rcColumn, rcValidating, rcChecksum, rcNotFound);
-            nfo->info.done.mesg = "Some files are missing checksums";
-        }
-        else {
-            nfo->info.done.rc = RC(rcDB, rcColumn, rcValidating, rcFile, rcNotFound);
-            nfo->info.done.mesg = "Some files are missing";
-        }
+        nfo->info.done.rc = RC(rcDB, rcColumn, rcValidating, rcFile, rcNotFound);
+        nfo->info.done.mesg = "Some files are missing";
         rc = report(nfo, ctx);
     }
-    else if (rc == 0) {
-        nfo->type = ccrpt_Done;
-        nfo->info.done.rc = 0;
-        nfo->info.done.mesg = "md5 ok";
-        rc = report(nfo, ctx);
-    }
-    else {
-        nfo->type = ccrpt_Done;
-        rc = report(nfo, ctx);
-    }
-
     return rc;
 }
 
@@ -188,9 +151,8 @@ rc_t KColumnCheckBlobs(const KColumn *self,
         row += count;
     }
     nfo->info.done.rc = 0;
-    nfo->info.done.mesg = "checksums ok";
+    nfo->info.done.mesg = NULL;
     nfo->type = ccrpt_Done;
-    rc = report(nfo, ctx);
     return rc;
 }
 
@@ -199,26 +161,15 @@ rc_t CC KColumnConsistencyCheck(const KColumn *self,
     uint32_t level, CCReportInfoBlock *nfo, CCReportFunc report, void *ctx )
 {
     rc_t rc = 0;
-
-    bool indexOnly = level & CC_INDEX_ONLY;
-    if (indexOnly) {
-        level &= ~CC_INDEX_ONLY;
-    }
-
+    
     if (KDirectoryPathType(self->dir, "md5") != kptNotFound)
-        rc = level == 0 ? KColumnCheckMD5(self, nfo, report, ctx) : 0;
-    else {
-        nfo->type = ccrpt_Done;
-        nfo->info.done.mesg = "missing md5 file";
-        nfo->info.done.rc = 0; /* RC(rcDB, rcColumn, rcValidating, rcFile, rcNotFound); */
-        
-        rc = report(nfo, ctx);
-        
-        if (level == 0)
-            level = 1;
-    }
+        rc = KColumnCheckMD5(self, nfo, report, ctx);
+    else if (level == 0)
+        level = 1;
     
     if (rc == 0 && level > 0)
         rc = KColumnCheckBlobs(self, nfo, report, ctx);
+    if (rc == 0 && nfo->info.done.rc != 0)
+        rc = report(nfo, ctx);
     return rc;
 }
diff --git a/libs/kdb/column.c b/libs/kdb/column.c
index c5c0192..f3dd247 100644
--- a/libs/kdb/column.c
+++ b/libs/kdb/column.c
@@ -33,7 +33,6 @@
 #include <kdb/kdb-priv.h>
 #include <klib/checksum.h>
 #include <klib/rc.h>
-#include <klib/printf.h>
 #include <atomic32.h>
 #include <sysalloc.h>
 #undef KONST
@@ -236,41 +235,36 @@ rc_t KColumnMakeRead ( KColumn **colp, const KDirectory *dir, const char *path )
  */
 static
 rc_t KDBManagerVOpenColumnReadInt ( const KDBManager *self,
-    const KColumn **colp, const KDirectory *wd, bool try_srapath,
+    const KColumn **colp, const KDirectory *wd,
     const char *path, va_list args )
 {
     char colpath [ 4096 ];
-    rc_t rc;
-    size_t z;
-
-/*    rc = KDirectoryVResolvePath ( wd, 1,
-        colpath, sizeof colpath, path, args ); */
-    rc = string_vprintf( colpath, sizeof colpath, &z, path, args );
+    rc_t rc = KDirectoryVResolvePath ( wd, 1,
+        colpath, sizeof colpath, path, args );
     if ( rc == 0 )
     {
         KColumn *col;
         const KDirectory *dir;
 
         /* open table directory */
-        rc = KDBOpenPathTypeRead ( self, wd, colpath, &dir, kptColumn, NULL, try_srapath );
+	rc = KDBOpenPathTypeRead ( wd, colpath, &dir, kptColumn, NULL );
         if ( rc == 0 )
         {
             rc = KColumnMakeRead ( & col, dir, colpath );
-            if ( rc == 0 )
+            if ( rc != 0 )
+                KDirectoryRelease ( dir );
+            else
             {
                 col -> mgr = KDBManagerAttach ( self );
                 * colp = col;
                 return 0;
             }
-
-            KDirectoryRelease ( dir );
         }
     }
     
     return rc;
 }
 
-
 LIB_EXPORT rc_t CC KDBManagerOpenColumnRead ( const KDBManager *self,
     const KColumn **col, const char *path, ... )
 {
@@ -284,7 +278,6 @@ LIB_EXPORT rc_t CC KDBManagerOpenColumnRead ( const KDBManager *self,
     return rc;
 }
 
-
 LIB_EXPORT rc_t CC KDBManagerVOpenColumnRead ( const KDBManager *self,
     const KColumn **col, const char *path, va_list args )
 {
@@ -297,10 +290,9 @@ LIB_EXPORT rc_t CC KDBManagerVOpenColumnRead ( const KDBManager *self,
         return RC ( rcDB, rcMgr, rcOpening, rcSelf, rcNull );
 
     return KDBManagerVOpenColumnReadInt
-        ( self, col, self -> wd, true, path, args );
+        ( self, col, self -> wd, path, args );
 }
 
-
 LIB_EXPORT rc_t CC KTableOpenColumnRead ( const KTable *self,
     const KColumn **col, const char *path, ... )
 {
@@ -333,7 +325,7 @@ LIB_EXPORT rc_t CC KTableVOpenColumnRead ( const KTable *self,
     if ( rc == 0 )
     {
         rc = KDBManagerVOpenColumnReadInt ( self -> mgr,
-            colp, self -> dir, false, path, NULL );
+            colp, self -> dir, path, NULL );
         if ( rc == 0 )
         {
             KColumn *col = ( KColumn* ) * colp;
diff --git a/libs/kdb/database-cc.c b/libs/kdb/database-cc.c
index a0e0b1c..35cbd9e 100644
--- a/libs/kdb/database-cc.c
+++ b/libs/kdb/database-cc.c
@@ -57,136 +57,119 @@
 
 #undef index
 
-static void KDatabaseGetName(KDatabase const *self, char const **rslt)
+static
+rc_t KDatabaseCheckMD5 ( const KDatabase *self, CCReportFunc report, void *ctx )
 {
     char *sep;
-    
-    *rslt = self->path;
-    sep = strrchr(self->path, '/');
-    if (sep != NULL)
-        *rslt = sep + 1;
-}
 
-static
-rc_t KDatabaseCheckMD5 (const KDatabase *self, CCReportFunc report, void *ctx)
-{
     CCReportInfoBlock info;
-    memset (& info, 0, sizeof info);
+    memset ( & info, 0, sizeof info );
 
-    info.objType = kptDatabase;
-    KDatabaseGetName(self, &info.objName);
+    info . objType = kptDatabase;
+    info . objName = self -> path;
+    sep = strrchr ( self -> path, '/' );
+    if ( sep != NULL )
+        info.objName = sep + 1;
     
-    return DirectoryCheckMD5 (self -> dir, "md5", & info, report, ctx);
+    return DirectoryCheckMD5 ( self -> dir, "md5", & info, report, ctx );
 }
 
 static
-rc_t KDatabaseCheckTables (const KDatabase *self, uint32_t depth, int level, CCReportFunc report, void *ctx)
+rc_t KDatabaseCheckTables ( const KDatabase *self, int level, CCReportFunc report, void *ctx )
 {
     uint32_t n;
-    
+
     KNamelist *list;
-    rc_t rc = KDatabaseListTbl (self, & list);
-    if (rc != 0)
+    rc_t rc = KDatabaseListTbl ( self, & list );
+    if ( rc != 0 )
         return rc;
-    
-    rc = KNamelistCount (list, & n);
-    if (rc == 0)
+
+    rc = KNamelistCount ( list, & n );
+    if ( rc == 0 )
     {
-        CCReportInfoBlock nfo;
-        memset (& nfo, 0, sizeof nfo);
-        nfo.objType = kptTable;
-        
-        for (nfo.objId = 0; rc == 0 && nfo.objId != (int) n; ++ nfo.objId)
+        uint32_t idx;
+        for ( idx = 0; idx < n && rc == 0; ++ idx )
         {
-            rc = KNamelistGet (list, nfo.objId, &nfo.objName);
-            if (rc == 0)
+            const char *tblname;
+            rc = KNamelistGet ( list, idx, & tblname );
+            if ( rc == 0 )
             {
                 const KTable *tbl;
                 
-                nfo.type = ccrpt_Visit;
-                nfo.info.visit.depth = depth + 1;
-                rc = report(&nfo, ctx); if (rc) break;
-                
-                rc = KDatabaseOpenTableRead (self, & tbl, nfo.objName);
-                if (rc == 0)
+                rc = KDatabaseOpenTableRead ( self, & tbl, tblname );
+                if ( rc == 0 )
                 {
-                    rc = KTableConsistencyCheck (tbl, depth + 1, level, report,
-                        ctx, SRA_PLATFORM_UNDEFINED);
-                    KTableRelease (tbl);
+                    rc = KTableConsistencyCheck ( tbl, level, report, ctx );
+                    KTableRelease ( tbl );
                 }
             }
         }
     }
     
-    KNamelistRelease (list);
+    KNamelistRelease(list);
     return rc;
 }
 
 static
-rc_t KDatabaseCheckIndexMD5 (const KDirectory *dir,
-    CCReportInfoBlock *nfo, CCReportFunc report, void *ctx)
+rc_t KDatabaseCheckIndexMD5 ( const KDirectory *dir,
+    CCReportInfoBlock *nfo, CCReportFunc report, void *ctx )
 {
     char md5 [ 4100 ];
 
-    snprintf (md5, sizeof md5, "%s.md5", nfo -> objName);
-    return DirectoryCheckMD5 (dir, md5, nfo, report, ctx);
+    snprintf ( md5, sizeof md5, "%s.md5", nfo -> objName );
+    return DirectoryCheckMD5 ( dir, md5, nfo, report, ctx );
 }
 
 static
-const KDirectory *KDatabaseFindIndexDir (const KDatabase *self)
+const KDirectory *KDatabaseFindIndexDir ( const KDatabase *self )
 {
     const KDirectory *idxDir;
     
-    rc_t rc = KDirectoryOpenDirRead (self -> dir, & idxDir, false, "idx");
-    if (rc == 0)
+    rc_t rc = KDirectoryOpenDirRead ( self -> dir, & idxDir, false, "idx" );
+    if ( rc == 0 )
         return idxDir;
 
     return NULL;
 }
 
 static
-rc_t KDatabaseCheckIndices (const KDatabase *self, uint32_t depth, uint32_t level, CCReportFunc report, void *ctx)
+rc_t KDatabaseCheckIndices ( const KDatabase *self, uint32_t level, CCReportFunc report, void *ctx)
 {
     uint32_t n;
 
     KNamelist *list;
-    rc_t rc = KDatabaseListIdx (self, & list);
-    if (rc != 0)
+    rc_t rc = KDatabaseListIdx ( self, & list );
+    if ( rc != 0 )
     {
-        if (GetRCState (rc) == rcNotFound)
+        if ( GetRCState ( rc ) == rcNotFound )
             return 0;
         return rc;
     }
 
-/* TEST    assert(0); */
-    rc = KNamelistCount (list, & n);
-    if (rc == 0)
+    rc = KNamelistCount ( list, & n );
+    if ( rc == 0 )
     {
-        const KDirectory *idxDir = KDatabaseFindIndexDir (self);
-        if (idxDir == NULL)
-            rc = RC (rcDB, rcDatabase, rcValidating, rcDirectory, rcNull);
+        const KDirectory *idxDir = KDatabaseFindIndexDir ( self );
+        if ( idxDir == NULL )
+            rc = RC ( rcDB, rcDatabase, rcValidating, rcDirectory, rcNull );
         else
         {
             CCReportInfoBlock nfo;
-            memset (& nfo, 0, sizeof nfo);
-            nfo.objType = kptIndex;
+            memset ( & nfo, 0, sizeof nfo );
+            nfo . objType = kptIndex;
 
-            for (nfo.objId = 0; rc == 0 && nfo.objId != (int) n; ++ nfo.objId)
+            for ( nfo . objId = 0; rc == 0 && nfo . objId != (int) n; ++ nfo . objId )
             {
                 rc = KNamelistGet(list, nfo.objId, &nfo.objName);
-                if (rc != 0)
+                if ( rc != 0 )
                     break;
             
-                nfo.type = ccrpt_Visit;
-                nfo.info.visit.depth = depth + 1;
-                rc = report(&nfo, ctx); if (rc) break;
-                
-                rc = KDatabaseCheckIndexMD5 (idxDir, &nfo, report, ctx);
-                if (rc == 0 && level > 0)
+                rc = KDatabaseCheckIndexMD5 ( idxDir, &nfo, report, ctx );
+                if ( rc == 0 && level > 0 )
                 {
                     const KIndex *idx;
-                    rc = KDatabaseOpenIndexRead (self, &idx, nfo.objName);
-                    if (rc != 0)
+                    rc = KDatabaseOpenIndexRead ( self, &idx, nfo . objName );
+                    if ( rc != 0 )
                     {
                         nfo.type = ccrpt_Done;
                         nfo.info.done.rc = rc;
@@ -202,7 +185,7 @@ rc_t KDatabaseCheckIndices (const KDatabase *self, uint32_t depth, uint32_t leve
                                                     &nfo.info.index.num_rows,
                                                     &nfo.info.index.num_holes);
                         KIndexRelease(idx);
-                        if (rc != 0)
+                        if ( rc != 0 )
                         {
                             nfo.type = ccrpt_Done;
                             nfo.info.done.rc = rc;
@@ -210,129 +193,78 @@ rc_t KDatabaseCheckIndices (const KDatabase *self, uint32_t depth, uint32_t leve
                         }
                     }
 
-                    rc = report (& nfo, ctx);
+                    rc = report ( & nfo, ctx );
                 }
             }
 
-            KDirectoryRelease (idxDir);
+            KDirectoryRelease ( idxDir );
         }
     }
 
-    KNamelistRelease (list);
+    KNamelistRelease ( list );
     return rc;
 }
 
 static
-rc_t KDatabaseCheckDatabases (const KDatabase *self, uint32_t depth, int level, CCReportFunc report, void *ctx)
+rc_t KDatabaseCheckDatabases ( const KDatabase *self, int level, CCReportFunc report, void *ctx )
 {
     uint32_t n;
 
     KNamelist *list;
-    rc_t rc = KDatabaseListDB (self, & list);
-    if (rc != 0)
+    rc_t rc = KDatabaseListDB ( self, & list );
+    if ( rc != 0 )
     {
-        if (GetRCState (rc) == rcNotFound)
+        if ( GetRCState ( rc ) == rcNotFound )
             return 0;
         return rc;
     }
 
-    rc = KNamelistCount (list, & n);
-    if (rc == 0)
+    rc = KNamelistCount ( list, & n );
+    if ( rc == 0 )
     {
-        CCReportInfoBlock nfo;
-        memset (& nfo, 0, sizeof nfo);
-        nfo.objType = kptDatabase;
+        uint32_t idx;
         
-        for (nfo.objId = 0; rc == 0 && nfo.objId != (int) n; ++ nfo.objId)
+        for ( idx = 0; idx < n && rc == 0; ++ idx )
         {
-            rc = KNamelistGet (list, nfo.objId, &nfo.objName);
-            if (rc == 0)
+            const char *dbname;
+            rc = KNamelistGet ( list, idx, & dbname );
+            if ( rc == 0 )
             {
                 const KDatabase *db;
-                
-                nfo.type = ccrpt_Visit;
-                nfo.info.visit.depth = depth + 1;
-                rc = report(&nfo, ctx); if (rc) break;
-                
-                rc = KDatabaseOpenDBRead (self, & db, nfo.objName);
-                if (rc == 0)
+                rc = KDatabaseOpenDBRead ( self, & db, dbname );
+                if ( rc == 0 )
                 {
-                    rc = KDatabaseConsistencyCheck (db, depth + 1, level, report, ctx);
-                    KDatabaseRelease (db);
+                    rc = KDatabaseConsistencyCheck ( db, level, report, ctx );
+                    KDatabaseRelease ( db );
                 }
             }
         }
     }
     
-    KNamelistRelease (list);
+    KNamelistRelease ( list );
     return rc;
 }
 
 LIB_EXPORT
-rc_t CC KDatabaseConsistencyCheck (const KDatabase *self,
-    uint32_t depth, uint32_t level, CCReportFunc report, void *ctx)
+rc_t CC KDatabaseConsistencyCheck ( const KDatabase *self,
+    uint32_t level, CCReportFunc report, void *ctx )
 {
     rc_t rc = 0;
-    uint32_t type;
-
-    bool indexOnly = level & CC_INDEX_ONLY;
-    if (indexOnly) {
-        level &= ~CC_INDEX_ONLY;
-    }
-
-    if (self == NULL)
-        return RC (rcDB, rcDatabase, rcValidating, rcSelf, rcNull);
-    
-    if (depth == 0) {
-        CCReportInfoBlock info;
-        
-        KDatabaseGetName(self, &info.objName);
-        info.objId = 0;
-        info.objType = kptDatabase;
-        info.type = ccrpt_Visit;
-        info.info.visit.depth = 0;
-        
-        rc = report(&info, ctx);
-        if (rc) return rc;
-    }
     
-    type = KDirectoryPathType(self->dir, "md5");
-    if (type == kptZombieFile) {
-        CCReportInfoBlock info;
-        
-        KDatabaseGetName(self, &info.objName);
-        info.objId = 0;
-        info.objType = kptTable;
-        info.type = ccrpt_Done;
-        info.info.done.mesg = "Database may be truncated";
-        info.info.done.rc = 0;
-        
-        rc = report(&info, ctx);
-    }
-    else if (type != kptNotFound)
-        rc = KDatabaseCheckMD5 (self, report, ctx);
-    else {
-        CCReportInfoBlock info;
-        
-        KDatabaseGetName(self, &info.objName);
-        info.objId = 0;
-        info.objType = kptDatabase;
-        info.type = ccrpt_Done;
-        info.info.done.mesg = "no md5 file";
-        info.info.done.rc = 0;
-        
-        rc = report(&info, ctx);
-    }
+    if ( self == NULL )
+        return RC ( rcDB, rcDatabase, rcValidating, rcSelf, rcNull );
     
+    if (KDirectoryPathType(self->dir, "md5") != kptNotFound)
+        rc = KDatabaseCheckMD5 ( self, report, ctx );
 
-    if (rc == 0)
-        rc = KDatabaseCheckTables (self, depth, level, report, ctx);
+    if ( rc == 0 )
+        rc = KDatabaseCheckTables ( self, level, report, ctx );
 
-    if (rc == 0)
-        rc = KDatabaseCheckIndices (self, depth, level, report, ctx);
+    if ( rc == 0 )    
+        rc = KDatabaseCheckIndices ( self, level, report, ctx );
 
-    if (rc == 0)
-        rc = KDatabaseCheckDatabases (self, depth, level, report, ctx);
+    if ( rc == 0 )
+        rc = KDatabaseCheckDatabases ( self, level, report, ctx );
 
     return rc;
 }
diff --git a/libs/kdb/database-cmn.c b/libs/kdb/database-cmn.c
index b99e497..82d71ea 100644
--- a/libs/kdb/database-cmn.c
+++ b/libs/kdb/database-cmn.c
@@ -214,7 +214,7 @@ rc_t KDBManagerVOpenDBReadInt ( const KDBManager *self,
         const KDirectory *dir;
 
         /* open the directory if its a database */
-        rc = KDBOpenPathTypeRead ( wd, dbpath, &dir, kptDatabase, NULL );
+	rc = KDBOpenPathTypeRead ( wd, dbpath, &dir, kptDatabase, NULL );
         if ( rc == 0 )
         {
             /* allocate a new guy */
diff --git a/libs/kdb/database.c b/libs/kdb/database.c
index 275baa1..721e0e1 100644
--- a/libs/kdb/database.c
+++ b/libs/kdb/database.c
@@ -32,15 +32,11 @@
 #undef KONST
 
 #include <klib/namelist.h>
-#include <klib/log.h>
 #include <klib/rc.h>
-#include <klib/printf.h>
-#include <os-native.h>
 #include <sysalloc.h>
 
 #include <limits.h>
 #include <stdlib.h>
-#include <stdio.h>
 #include <string.h>
 #include <assert.h>
 
@@ -50,22 +46,6 @@
  *  connection to a database within file system
  */
 
-/* GetPath
- *  return the absolute path to DB
- */
-LIB_EXPORT rc_t CC KDatabaseGetPath ( KDatabase const *self,
-    const char **path )
-{
-    if ( self == NULL )
-        return RC ( rcDB, rcDatabase, rcAccessing, rcSelf, rcNull );
-    if ( path == NULL )
-        return RC ( rcDB, rcDatabase, rcAccessing, rcParam, rcNull );
-
-    *path = self->path;
-
-    return 0;
-}
-
 /* Whack
  */
 static
@@ -206,30 +186,23 @@ rc_t KDatabaseMake ( KDatabase **dbp, const KDirectory *dir, const char *path )
  *  wd-native character set giving path to database
  */
 static
-rc_t KDBManagerVOpenDBReadInt ( const KDBManager *self, const KDatabase **dbp,
-                                const KDirectory *wd, bool try_srapath,
-                                const char *path, va_list args )
+rc_t KDBManagerVOpenDBReadInt ( const KDBManager *self,
+    const KDatabase **dbp, const KDirectory *wd,
+    const char *path, va_list args )
 {
-    rc_t rc;
-
-    /* MUST use vsnprintf because the documented behavior of "path"
-       is that of stdc library's printf, not vdb printf */
+    /* generate absolute path to db */
     char dbpath [ 4096 ];
-    int z = ( args == NULL ) ?
-        snprintf ( dbpath, sizeof dbpath, path ):
-        vsnprintf ( dbpath, sizeof dbpath, path, args );
-    if ( z < 0 || ( size_t ) z >= sizeof dbpath )
-        rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcExcessive );
-    else
+    rc_t rc = KDirectoryVResolvePath ( wd, true,
+        dbpath, sizeof dbpath, path, args );
+    if ( rc == 0 )
     {
+        KDatabase *db;
         const KDirectory *dir;
 
         /* open the directory if its a database */
-        rc = KDBOpenPathTypeRead ( self, wd, dbpath, &dir, kptDatabase, NULL, try_srapath );
+	rc = KDBOpenPathTypeRead ( wd, dbpath, &dir, kptDatabase, NULL );
         if ( rc == 0 )
         {
-            KDatabase *db;
-
             /* allocate a new guy */
             rc = KDatabaseMake ( & db, dir, dbpath );
             if ( rc == 0 )
@@ -242,6 +215,7 @@ rc_t KDBManagerVOpenDBReadInt ( const KDBManager *self, const KDatabase **dbp,
             KDirectoryRelease ( dir );
         }
     }
+    
     return rc;
 }
 
@@ -282,7 +256,7 @@ LIB_EXPORT rc_t CC KDBManagerVOpenDBRead ( const KDBManager *self,
     if ( self == NULL )
         return RC ( rcDB, rcMgr, rcOpening, rcSelf, rcNull );
 
-    return KDBManagerVOpenDBReadInt ( self, db, self -> wd, true, path, args );
+    return KDBManagerVOpenDBReadInt ( self, db, self -> wd, path, args );
 }
 
 LIB_EXPORT rc_t CC KDatabaseVOpenDBRead ( const KDatabase *self,
@@ -304,7 +278,7 @@ LIB_EXPORT rc_t CC KDatabaseVOpenDBRead ( const KDatabase *self,
     if ( rc == 0 )
     {
         rc = KDBManagerVOpenDBReadInt ( self -> mgr, dbp,
-            self -> dir, false, path, NULL );
+            self -> dir, path, NULL );
         if ( rc == 0 )
         {
             KDatabase *db = ( KDatabase* ) * dbp;
@@ -340,47 +314,7 @@ LIB_EXPORT bool CC KDatabaseLocked ( const KDatabase *self )
  */
 LIB_EXPORT bool CC KDatabaseVExists ( const KDatabase *self, uint32_t type, const char *name, va_list args )
 {
-    if ( self != NULL && name != NULL && name [ 0 ] != 0 )
-    {
-        rc_t rc;
-        size_t len;
-        const char *ns;
-        char path [ 256 ];
-
-        switch ( type )
-        {
-        case kptDatabase:
-            ns = "db";
-            len = 2;
-            break;
-
-        case kptTable:
-            ns = "tbl";
-            len = 3;
-            break;
-
-        case kptIndex:
-            ns = "idx";
-            len = 3;
-            break;
-
-        default:
-            return false;
-        }
-
-        rc = KDBVMakeSubPath ( self -> dir, path, sizeof path, ns, len, name, args );
-        if ( rc == 0 )
-        {
-            switch ( KDirectoryPathType ( self -> dir, path ) )
-            {
-            case kptFile:
-            case kptDir:
-            case kptFile | kptAlias:
-            case kptDir | kptAlias:
-                return true;
-            }
-        }
-    }
+    /* TBD */
     return false;
 }
 
@@ -399,83 +333,6 @@ LIB_EXPORT bool CC KDatabaseExists ( const KDatabase *self, uint32_t type, const
 }
 
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptDatabase, kptTable and kptIndex
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-LIB_EXPORT bool CC KDatabaseIsAlias ( const KDatabase *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name )
-{
-    if ( self != NULL && name != NULL && name [ 0 ] != 0 )
-    {
-        rc_t rc;
-        size_t len;
-        const char *ns;
-        char path [ 256 ];
-
-        switch ( type )
-        {
-        case kptDatabase:
-            ns = "db";
-            len = 2;
-            break;
-
-        case kptTable:
-            ns = "tbl";
-            len = 3;
-            break;
-
-        case kptIndex:
-            ns = "idx";
-            len = 3;
-            break;
-
-        default:
-            return false;
-        }
-
-        rc = KDBMakeSubPath ( self -> dir, path, sizeof path, ns, len, name );
-        if ( rc == 0 )
-        {
-            switch ( KDirectoryPathType ( self -> dir, path ) )
-            {
-            case kptFile | kptAlias:
-            case kptDir | kptAlias:
-                if ( resolved != NULL && rsize != 0 )
-                {
-                    const KDirectory *sub;
-                    rc = KDirectoryOpenDirRead ( self -> dir, & sub, false, ns );
-                    * resolved = 0;
-                    if ( rc != 0 )
-                        PLOGERR ( klogWarn, ( klogWarn, rc, "failed to open subdirectory '$(sub)'", "sub=%s", ns ) );
-                    else
-                    {
-                        rc = KDirectoryResolveAlias ( sub, false, resolved, rsize, name );
-                        KDirectoryRelease ( sub );
-                        if ( rc != 0 )
-                            PLOGERR ( klogWarn, ( klogWarn, rc, "failed to resolve alias '$(alias)'", "alias=%s", name ) );
-                    }
-                }
-                return true;
-            }
-        }
-    }
-
-    if ( resolved != NULL && rsize != 0 )
-        * resolved = 0;
-
-    return false;
-}
-
-
 /* Writable
  *  returns 0 if object is writable
  *  or a reason why if not
@@ -638,29 +495,18 @@ LIB_EXPORT rc_t CC KDatabaseModDate ( const KDatabase *self, KTime_t *mtime )
 /* List
  *  create database listings
  */
-struct FilterData
-{
-    const KDBManager * mgr;
-    int type;
-};
-
 static
-bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data_ )
+bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data )
 {
-    struct FilterData * data = data_;
-    return ( KDBOpenPathTypeRead ( data->mgr, dir, name, NULL, data->type, NULL, false ) == 0 );
+    return ( KDBOpenPathTypeRead ( dir, name, NULL, (( long int ) data ), NULL ) == 0 );
 }
 
 LIB_EXPORT rc_t CC KDatabaseListDB ( const KDatabase *self, KNamelist **names )
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-        data.mgr = self->mgr;
-        data.type = kptDatabase;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "db", NULL );
+            names, KDatabaseListFilter, ( void* ) kptDatabase, "db", NULL );
     }
 
     if ( names != NULL )
@@ -673,12 +519,8 @@ LIB_EXPORT rc_t CC KDatabaseListTbl ( struct KDatabase const *self, KNamelist **
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-        data.mgr = self->mgr;
-        data.type = kptTable;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "tbl", NULL );
+            names, KDatabaseListFilter, ( void* ) kptTable, "tbl", NULL );
     }
 
     if ( names != NULL )
@@ -691,12 +533,8 @@ LIB_EXPORT rc_t CC KDatabaseListIdx ( struct KDatabase const *self, KNamelist **
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-        data.mgr = self->mgr;
-        data.type = kptIndex;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "idx", NULL );
+            names, KDatabaseListFilter, ( void* ) kptIndex, "idx", NULL );
     }
 
     if ( names != NULL )
diff --git a/libs/kdb/dbcc-cmn.c b/libs/kdb/dbcc-cmn.c
index 09d287c..90a94d2 100644
--- a/libs/kdb/dbcc-cmn.c
+++ b/libs/kdb/dbcc-cmn.c
@@ -134,7 +134,7 @@ rc_t DirectoryCheckMD5(const KDirectory *dir, const char name[],
         nfo->info.done.rc = rc2;
     }
     else {
-        nfo->info.done.mesg = "md5 ok";
+        nfo->info.done.mesg = NULL;
         nfo->info.done.rc = 0;
     }
     return report(nfo, ctx);
diff --git a/libs/kdb/dbmgr-cmn.c b/libs/kdb/dbmgr-cmn.c
index c21e008..ec56046 100644
--- a/libs/kdb/dbmgr-cmn.c
+++ b/libs/kdb/dbmgr-cmn.c
@@ -34,8 +34,6 @@
 #include "kdb-priv.h"
 #undef KONST
 
-#include <vfs/manager.h>
-#include <kfs/directory.h>
 #include <klib/symbol.h>
 #include <klib/checksum.h>
 #include <klib/rc.h>
@@ -65,8 +63,6 @@ rc_t KDBManagerWhack ( KDBManager *self )
     /* everything should be closed */
     assert ( self -> open_objs . root == NULL );
 
-    rc = VFSManagerRelease ( self -> vfsmgr );
-
     rc = KDirectoryRelease ( self -> wd );
     if ( rc == 0 )
     {
@@ -171,19 +167,14 @@ rc_t KDBManagerMake ( KDBManager **mgrp, const KDirectory *wd, const char *op )
 
             if ( rc == 0 )
             {
-                rc = VFSManagerMake ( & mgr -> vfsmgr );
-
-                if ( rc == 0 )
-                {
-                    CRC32Init ();
+                CRC32Init ();
 
-                    BSTreeInit ( & mgr -> open_objs );
+                BSTreeInit ( & mgr -> open_objs );
 
-                    KRefcountInit ( & mgr -> refcount, 1, "KDBManager", op, "kmgr" );
+                KRefcountInit ( & mgr -> refcount, 1, "KDBManager", op, "kmgr" );
 
-                    * mgrp = mgr;
-                    return 0;
-                }
+                * mgrp = mgr;
+                return 0;
             }
 
             free ( mgr );
@@ -220,24 +211,35 @@ LIB_EXPORT rc_t CC KDBManagerVersion ( const KDBManager *self, uint32_t *version
  */
 LIB_EXPORT bool CC KDBManagerVExists ( const KDBManager *self, uint32_t requested, const char *name, va_list args )
 {
-    int type;
-
-    type = KDBManagerVPathType (self, name, args);
-    switch ( type )
+    char full [ 4096 ];
+    rc_t rc = KDirectoryVResolvePath ( self -> wd, false, full, sizeof full, name, args );
+    if ( rc == 0 )
     {
-    case kptDatabase:
-    case kptTable:
-    case kptIndex:
-    case kptColumn:
-    case kptMetadata:
-        break;
-    case kptPrereleaseTbl:
-        type = kptTable;
-        break;
-    default:
-        return false;
+        int type = KDBPathType ( self -> wd, full ) & ~ kptAlias;
+        switch ( type )
+        {
+        case kptDatabase:
+        case kptTable:
+        case kptIndex:
+        case kptColumn:
+        case kptMetadata:
+            break;
+        case kptPrereleaseTbl:
+            type = kptTable;
+            break;
+#if 0
+            /*TBD - eventually we need to check for an archive here */
+        case kptFile: 
+            /* check if this is an archive .tar or .sra and return rcReadonly if it is */
+#endif
+        default:
+            return false;
+        }
+
+        return requested == ( uint32_t ) type;
     }
-    return requested == ( uint32_t ) type;
+
+    return false;
 }
 
 bool KDBManagerExists ( const KDBManager *self, uint32_t type, const char *name, ... )
diff --git a/libs/kdb/dbmgr-priv.h b/libs/kdb/dbmgr-priv.h
index 4ee0356..48f4b60 100644
--- a/libs/kdb/dbmgr-priv.h
+++ b/libs/kdb/dbmgr-priv.h
@@ -53,7 +53,7 @@ extern "C" {
  */
 struct KSymbol;
 struct KDirectory;
-struct VFSManager;
+
 
 /*--------------------------------------------------------------------------
  * KDBManager
@@ -69,9 +69,6 @@ struct KDBManager
 
     /* open references */
     KRefcount refcount;
-
-    /* other managers needed by the KDB manager */
-    struct VFSManager * vfsmgr;
 };
 
 
diff --git a/libs/kdb/dbmgr.c b/libs/kdb/dbmgr.c
index a0d2039..00ff9a7 100644
--- a/libs/kdb/dbmgr.c
+++ b/libs/kdb/dbmgr.c
@@ -29,22 +29,13 @@
 #include <kdb/extern.h>
 #include "libkdb.vers.h"
 
-#include <vfs/manager.h>
-#include <vfs/resolver.h>
-#include <vfs/path.h>
-#include <vfs/path-priv.h>
-#include <kfs/directory.h>
-
 #define KONST const
 #include "dbmgr-priv.h"
 #include "kdb-priv.h"
-#include "kdbfmt-priv.h"
 #include <klib/checksum.h>
 #include <klib/rc.h>
 #undef KONST
 
-#include <klib/text.h>
-
 #include <sysalloc.h>
 
 #include <limits.h>
@@ -72,161 +63,6 @@ LIB_EXPORT rc_t CC KDBManagerMakeRead ( const KDBManager **mgrp, const KDirector
 }
 
 
-/*
- * Resolve using manager, possibly against this directory, using or not uri
- * accession resolution of those dangerous formatted path thingies
- *
-
-
-
- * 1. If naked accession or uri accession resolve to local, 
-
-
- * self                         = a kdbmanager
- * disable_accession_resolution = turn off VResolver usage for accessions
- *                                read versus create/upate 
- * resolved+path                = a vpath created based on text path
- * fmt                          = our scary interface that is 'sprintf'ish
- * args                         = goes with the fmt
- *
- * NOTE: as usual a path with a '%' becomes broken at unsuspected times
- */
-rc_t KDBManagerResolveVPathInt (const KDBManager * self, 
-                                bool disable_accession_resolution,
-                                VPath ** resolved_path, 
-                                const VPath * path)
-{
-    uint32_t flags;
-
-    assert (self != NULL);
-    assert (resolved_path != NULL);
-    assert (path != NULL);
-
-    flags = disable_accession_resolution
-        ? vfsmgr_rflag_no_acc
-        : vfsmgr_rflag_kdb_acc;
-
-    return VFSManagerResolvePath (self->vfsmgr, 
-                                  flags,
-                                  path, resolved_path);
-}
-
-
-rc_t KDBManagerVResolveVPath (const KDBManager * self, 
-                                bool disable_accession_resolution,
-                                VPath ** resolved_path, 
-                                const VPath * path)
-{
-    return KDBManagerResolveVPathInt (self, disable_accession_resolution,
-                                      resolved_path, path);
-}
-
-
-rc_t KDBManagerVResolvePath (const KDBManager * self, 
-                             bool disable_accession_resolution,
-                             VPath ** resolved_path, 
-                             const char * fmt, va_list args)
-{
-    VPath * p;
-    rc_t rc;
-
-    if (resolved_path == NULL)
-        return RC (rcDB, rcMgr, rcResolving, rcParam, rcNull);
-
-    *resolved_path = NULL;
-
-    if (self == NULL)
-        return RC (rcDB, rcMgr, rcResolving, rcSelf, rcNull);
-
-    if ((fmt == NULL) || (fmt[0] == '\0'))
-        return RC (rcDB, rcMgr, rcResolving, rcParam, rcNull);
-
-    rc = VPathMakeFmt (&p, fmt, args);
-    if (rc == 0)
-    {
-        rc = KDBManagerVResolveVPath (self, disable_accession_resolution,
-                                      resolved_path, p);
-        VPathRelease (p);
-    }
-    return rc;
-}
-
-rc_t KDBManagerVResolvePathRelativeDir (const KDBManager * self, const KDirectory * dir,
-                                        bool disable_accession_resolution,
-                                        VPath ** resolved_path, 
-                                        const char * fmt, va_list args)
-{
-    VPath * p;
-    rc_t rc;
-
-    if (resolved_path == NULL)
-        return RC (rcDB, rcMgr, rcResolving, rcParam, rcNull);
-
-    *resolved_path = NULL;
-
-    if (self == NULL)
-        return RC (rcDB, rcMgr, rcResolving, rcSelf, rcNull);
-
-    if ((fmt == NULL) || (fmt[0] == '\0'))
-        return RC (rcDB, rcMgr, rcResolving, rcParam, rcNull);
-
-    rc = VPathMakeFmt (&p, fmt, args);
-    if (rc == 0)
-    {
-        rc = KDBManagerVResolveVPath (self, disable_accession_resolution,
-                                      resolved_path, p);
-        VPathRelease (p);
-    }
-    return rc;
-}
-
-
-rc_t KDBManagerResolvePathRelativeDir (const KDBManager * self,
-                                       const KDirectory * dir,
-                                       bool disable_accession_resolution,
-                                       VPath ** resolved_path, const char * fmt, ...)
-{
-    va_list args;
-    rc_t rc;
-
-    va_start (args, fmt);
-
-    rc = KDBManagerVResolvePathRelativeDir (self, dir, 
-                                            disable_accession_resolution,
-                                            resolved_path, fmt, args);
-    va_end (args);
-    return rc;
-}
-
-
-
-/* KDBHdrValidate
- *  validates that a header sports a supported byte order
- *  and that the version is within range
- */
-rc_t KDBHdrValidate ( const KDBHdr *hdr, size_t size,
-    uint32_t min_vers, uint32_t max_vers )
-{
-    assert ( hdr != NULL );
-
-    if ( size < sizeof * hdr )
-        return RC ( rcDB, rcHeader, rcValidating, rcData, rcCorrupt );
-
-    if ( hdr -> endian != eByteOrderTag )
-    {
-        if ( hdr -> endian == eByteOrderReverse )
-            return RC ( rcDB, rcHeader, rcValidating, rcByteOrder, rcIncorrect );
-        return RC ( rcDB, rcHeader, rcValidating, rcData, rcCorrupt );
-    }
-
-    if ( hdr -> version < min_vers || hdr -> version > max_vers )
-        return RC ( rcDB, rcHeader, rcValidating, rcHeader, rcBadVersion );
-
-    return 0;
-}
-
-
-
 /* Writable
  *  returns 0 if object is writable
  *  or a reason why if not
@@ -247,7 +83,7 @@ LIB_EXPORT rc_t CC KDBManagerVWritable ( const KDBManager *self, const char * pa
         rc = KDirectoryVResolvePath ( self -> wd, true, dbpath, sizeof dbpath, path, args );
         if ( rc == 0 )
         {
-            int type = KDBPathType ( self -> wd, NULL, path ) & ~ kptAlias;
+            int type = KDBPathType ( self -> wd, path ) & ~ kptAlias;
             switch ( type )
             {
             case kptDatabase:
@@ -298,92 +134,23 @@ LIB_EXPORT rc_t CC KDBManagerRunPeriodicTasks ( const KDBManager *self )
 
 
 /* PathType
- *  check the path type of an object/directory path.
- *  this is an extension of the KDirectoryPathType and will return
- *  the KDirectory values if a path type is not specifically a
- *  kdb object
+ * check the path type of an object/directory path.
+ * this is an extension of the KDirectoryPathType and will return
+ * the KDirectory values if a path type is not specifically a
+ * kdb object
  */
-LIB_EXPORT int CC KDBManagerPathTypeVP ( const KDBManager * self, const VPath * path )
-{
-    VPath * rpath;
-    int path_type;
-    rc_t rc;
-
-    path_type = kptBadPath;
-    if ((self != NULL) && (path != NULL))
-    {
-        /*
-         * resolve the possible relative path or accession into
-         * a final path we can open directly
-         */
-        rc = KDBManagerResolveVPathInt (self, false, &rpath, path);
-        if (rc == 0)
-        {
-            const KDirectory * dir;
-
-            /*
-             * Most KDBPathType values are based on 'directories'
-             * so try to open the resolved path as a directory
-             */
-            rc = VFSManagerOpenDirectoryReadDecrypt (self->vfsmgr, &dir, rpath);
-            if (rc == 0)
-            {
-                path_type = KDBPathTypeDir (dir, kptDir, NULL, ".");
-                KDirectoryRelease (dir);
-            }
-            /*
-             * If we couldn't open the path as a directory we 'might'
-             * have a KDB idx but we will only try that for a limitted
-             * set of uri schemes.
-             */
-            else
-            {
-                VPUri_t t;
-
-                rc = VPathGetScheme_t (rpath, &t);
-                if (rc == 0)
-                {
-                    switch (t)
-                    {
-                    default:
-                        break;
-                    case vpuri_ncbi_vfs:
-                    case vpuri_file:
-                    case vpuri_none:
-                    {
-                        char b [4 * 1024];
-                        size_t z;
-                        rc = VPathReadPath (path, b, sizeof b, &z);
-                        if (rc == 0)
-                            path_type = KDBPathType (self->wd, false, b);
-                        break;
-                    }}
-                }
-            }
-            VPathRelease (rpath);
-        }
-    }
-    return path_type;
-}
-
 
 LIB_EXPORT int CC KDBManagerVPathType ( const KDBManager * self, const char *path, va_list args )
 {
-    int path_type = kptBadPath;
+    rc_t rc;
+    char     full [ 8192 ];
 
-    if ((self != NULL) && (path != NULL))
+    rc = KDirectoryVResolvePath ( self->wd, true, full, sizeof full, path, args );
+    if (rc == 0)
     {
-        VPath * vp;
-        rc_t rc;
-
-        rc = VPathMakeVFmt (&vp, path, args);
-        if (rc == 0)
-        {
-            path_type = KDBManagerPathTypeVP (self, vp);
-            VPathRelease (vp);
-        }
+        return KDBPathType ( self->wd, full );
     }
-    return path_type;
+    return kptBadPath;
 }
 
 
diff --git a/libs/kdb/idxblk.c b/libs/kdb/idxblk.c
index e5c14cf..6f7bb84 100644
--- a/libs/kdb/idxblk.c
+++ b/libs/kdb/idxblk.c
@@ -54,8 +54,8 @@ void KColConstBlockMapSwap ( KColConstBlockMap *self, uint32_t count, int type )
         ( ( uint64_t* ) self -> h . first ) [ 0 ] = bswap_64 ( self -> h . first [ 0 ] );
         break;
     case btypePredictable:
-        * ( uint64_t* ) & ( self -> h . pred -> pg ) = bswap_64 ( self -> h . pred -> pg );
-        * ( uint32_t* ) & ( self -> h . pred -> sz ) = bswap_32 ( self -> h . pred -> sz );
+        * ( ( uint64_t* ) & ( self -> h . pred ) -> pg ) = bswap_64 ( self -> h . pred -> pg );
+        * ( ( uint32_t* ) & ( self -> h . pred ) -> sz ) = bswap_32 ( self -> h . pred -> sz );
         break;
     }
 
@@ -293,7 +293,7 @@ void KColIdxBlockGet3 ( const KColIdxBlock *self,
 {
     * sz = self -> pg . h . pred [ 0 ] . sz;
     * pg = self -> pg . h . pred [ 0 ] . pg +
-        ( (uint64_t) self -> pg . h . pred [ 0 ] . sz * idx );
+        ( self -> pg . h . pred [ 0 ] . sz * idx );
 }
 
 /* RewriteColumns
@@ -509,8 +509,7 @@ rc_t KColIdxBlockInit ( KColIdxBlock *self,
     if ( bswap )
     {
         KColConstBlockMapSwap ( & self -> id, count, bloc -> u . blk . id_type );
-        if ( self -> pg . h . p != self -> id . h . p )
-            KColConstBlockMapSwap ( & self -> pg, count, bloc -> u . blk . pg_type );
+        KColConstBlockMapSwap ( & self -> pg, count, bloc -> u . blk . pg_type );
     }
 
     /* check for need to rewrite columns */
diff --git a/libs/kdb/index-cmn.h b/libs/kdb/index-cmn.h
index ff2dc6f..b7b5357 100644
--- a/libs/kdb/index-cmn.h
+++ b/libs/kdb/index-cmn.h
@@ -223,7 +223,7 @@ uint32_t KPTrieIndexID2Ord_v2 ( const KPTrieIndex_v2 *self, int64_t id );
 rc_t KPTrieIndexCheckConsistency_v2 ( const KPTrieIndex_v2 *self,
     int64_t *start_id, uint64_t *id_range, uint64_t *num_keys,
     uint64_t *num_rows, uint64_t *num_holes,
-    struct KIndex const *outer, bool key2id, bool id2key, bool all_ids, bool convertFromV1 );
+    struct KIndex const *outer, bool key2id, bool id2key, bool all_ids );
 
 
 /*--------------------------------------------------------------------------
@@ -244,8 +244,7 @@ rc_t KTrieIndexFind_v2 ( const KTrieIndex_v2 *self,
     uint32_t *span,
 #endif
     int ( CC * custom_cmp ) ( const void *item, struct PBSTNode const *n, void *data ),
-    void * data,
-    bool convertFromV1);
+    void * data );
 
 /* projection index id to key-string */
 #if V2FIND_RETURNS_SPAN
@@ -261,7 +260,7 @@ rc_t KTrieIndexProject_v2 ( const KTrieIndex_v2 *self,
 rc_t KTrieIndexCheckConsistency_v2 ( const KTrieIndex_v2 *self,
     int64_t *start_id, uint64_t *id_range, uint64_t *num_keys,
     uint64_t *num_rows, uint64_t *num_holes,
-    struct KIndex const *outer, bool key2id, bool id2key, bool all_ids, bool convertFromV1 );
+    struct KIndex const *outer, bool key2id, bool id2key, bool all_ids );
 
 
 /*--------------------------------------------------------------------------
diff --git a/libs/kdb/index.c b/libs/kdb/index.c
index 2dbb325..24fc6bd 100644
--- a/libs/kdb/index.c
+++ b/libs/kdb/index.c
@@ -66,7 +66,6 @@ struct KIndex
         KTrieIndex_v2 txt234;
         KU64Index_v3  u64_3;
     } u;
-    bool converted_from_v1;
     uint8_t type;
     char path [ 1 ];
 };
@@ -103,7 +102,7 @@ rc_t KIndexWhack ( KIndex *self )
         self -> mgr = NULL;
 
         /* complete */
-        rc = SILENT_RC ( rcDB, rcIndex, rcDestroying, rcIndex, rcBadVersion );
+        rc = RC ( rcDB, rcIndex, rcDestroying, rcIndex, rcBadVersion );
 
         switch ( self -> type )
         {
@@ -271,9 +270,6 @@ rc_t KIndexAttach ( KIndex *self, const KMMap *mm, bool *byteswap )
                 switch ( hdr -> version )
                 {
                 case 1:
-#if KDBINDEXVERS != 1
-                    self -> converted_from_v1 = true;
-#endif
                 case 2:
                     self -> type = kitText;
                     break;
@@ -642,7 +638,7 @@ LIB_EXPORT rc_t CC KIndexConsistencyCheck ( const KIndex *self, uint32_t level,
             case 4:
                 rc = KTrieIndexCheckConsistency_v2 ( & self -> u . txt234,
                     start_id, id_range, num_keys, num_rows, num_holes,
-                    self, key2id, id2key, all_ids, self -> converted_from_v1 );
+                    self, key2id, id2key, all_ids );
                 break;
             default:
                 return RC ( rcDB, rcIndex, rcValidating, rcIndex, rcBadVersion );
@@ -701,9 +697,9 @@ LIB_EXPORT rc_t CC KIndexFindText ( const KIndex *self, const char *key, int64_t
         case 3:
         case 4:
 #if V2FIND_RETURNS_SPAN
-            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, start_id, & span, custom_cmp, data, self -> converted_from_v1 );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, start_id, & span, custom_cmp, data );
 #else
-            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, start_id, custom_cmp, data, self -> converted_from_v1 );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, start_id, custom_cmp, data );
 #endif
             break;
         default:
@@ -759,9 +755,9 @@ LIB_EXPORT rc_t CC KIndexFindAllText ( const KIndex *self, const char *key,
         case 3:
         case 4:
 #if V2FIND_RETURNS_SPAN
-            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, & id64, & span, NULL, NULL, self -> converted_from_v1 );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, & id64, & span, NULL, NULL );
 #else
-            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, & id64, NULL, NULL, self -> converted_from_v1 );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt234, key, & id64, NULL, NULL );
 #endif
             if ( rc == 0 )
                 rc = ( * f ) ( id64, span, data );
diff --git a/libs/kdb/kdb-priv.h b/libs/kdb/kdb-priv.h
index f9440f1..f23fa3e 100644
--- a/libs/kdb/kdb-priv.h
+++ b/libs/kdb/kdb-priv.h
@@ -39,16 +39,15 @@
 extern "C" {
 #endif
 
-struct KDirectory;
-struct KDBManager;
-
-/*
- * This symbol is inserted where the KDB is being tweaked to allow
- * VFS URI syntax in opening KDB database objects initially to support
- * krypto passwords more fully.  By specifying the password source
- * individually for opens two KDB objects with different passwords can be opened.
+/*--------------------------------------------------------------------------
+ * KDBPathType
  */
-#define SUPPORT_VFS_URI 1
+enum
+{
+    kptMetadata = kptColumn + 1,
+    kptPrereleaseTbl
+};
+
 
 /*--------------------------------------------------------------------------
  * KDB utility
@@ -58,8 +57,7 @@ struct KDBManager;
 /* PathType
  *  checks type of path
  */
-int KDBPathTypeDir ( const struct KDirectory *dir, int type,bool *zombies, const char *path );
-int KDBPathType ( const struct KDirectory *dir, bool *zombies, const char *path );
+int KDBPathType ( const KDirectory *dir, const char *path );
 
 /* OpenPathType
  * Opens a path if it is of the specified type.  Even if it is an archive file
@@ -75,46 +73,33 @@ int KDBPathType ( const struct KDirectory *dir, bool *zombies, const char *path
  * archive that is of the requested type.  An archive will have been opened
  * but reshut if dpdir is NULL.
  */ 
-rc_t KDBOpenPathTypeRead ( const struct KDBManager * mgr, const struct KDirectory * dir, const char * path, 
-    const struct KDirectory ** dpdir, int pathtype, int * realpathtype, bool try_srapath );
+rc_t KDBOpenPathTypeRead ( const KDirectory * dir, const char * path, 
+    const KDirectory ** dpdir, int pathtype, int * realpathtype );
 
 /* Writable
  *  examines a directory structure for any "lock" files
  *  examines a file for ( any ) write permission
  */
-rc_t KDBWritable ( const struct KDirectory *dir, const char *path );
+rc_t KDBWritable ( const KDirectory *dir, const char *path );
 
 /* GetObjModDate
  *  extract mod date from a path
  */
-rc_t KDBGetObjModDate ( const struct KDirectory *dir, KTime_t *mtime );
+rc_t KDBGetObjModDate ( const KDirectory *dir, KTime_t *mtime );
 
 /* GetPathModDate
  *  extract mod date from a path
  */
-rc_t KDBVGetPathModDate ( const struct KDirectory *dir,
+rc_t KDBVGetPathModDate ( const KDirectory *dir,
     KTime_t *mtime, const char *path, va_list args );
 
-/* KDBMakeSubPath
- *  adds a namespace to path spec
- */
-rc_t KDBMakeSubPath ( struct KDirectory const *dir,
-    char *subpath, size_t subpath_max, const char *ns,
-    uint32_t ns_size, const char *path, ... );
 /* VMakeSubPath
  *  adds a namespace to path spec
  */
-rc_t KDBVMakeSubPath ( const struct KDirectory *dir,
+rc_t KDBVMakeSubPath ( const KDirectory *dir,
     char *subpath, size_t subpath_max, const char *ns,
     uint32_t ns_size, const char *path, va_list args );
 
-
-/* KDBIsPathUri
- * A hack to get some of VFS into KDB that is too tightly bound to KFS
- */
-bool KDBIsPathUri (const char * path);
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/libs/kdb/kdb.c b/libs/kdb/kdb.c
index db307e3..2efc91f 100644
--- a/libs/kdb/kdb.c
+++ b/libs/kdb/kdb.c
@@ -25,48 +25,29 @@
 */
 
 #include <kdb/extern.h>
+#include <va_copy.h>
 
 #include "kdb-priv.h"
 #include "kdbfmt-priv.h"
-#include "dbmgr-priv.h"
-
-#include <krypto/key.h>
-#include <krypto/encfile.h>
-#include <krypto/wgaencrypt.h>
-
-#include <vfs/manager.h>
-#include <vfs/path.h>
-#include <vfs/resolver.h>
-#include <vfs/manager-priv.h>
-#include <sra/srapath.h>
 
 #include <kfs/kfs-priv.h>
 #include <kfs/directory.h>
 #include <kfs/file.h>
-#include <kfs/arc.h>
 #include <kfs/tar.h>
-#include <kfs/sra.h>
+#include <kfs/arc.h>
 #include <kfs/kfs-priv.h>
 #include <klib/container.h>
 #include <klib/text.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
 
-#include <va_copy.h>
-
 #include <limits.h>
 #include <stdlib.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdio.h>
 #include <string.h>
 #include <ctype.h>
 #include <assert.h>
 #include <errno.h>
 
-#ifndef SUPPORT_VFS_URI
-#define SUPPORT_VFS_URI 0
-#endif
 
 /*--------------------------------------------------------------------------
  * KDB utility
@@ -76,8 +57,6 @@
  *  validates that a header sports a supported byte order
  *  and that the version is within range
  */
-/* this is included to make kdb.c vs. wkdb.c file comparisons easier in [x]emacs.*/
-#if NOT_USED_IN_READ_ONLY_SIDE
 rc_t KDBHdrValidate ( const KDBHdr *hdr, size_t size,
     uint32_t min_vers, uint32_t max_vers )
 {
@@ -98,7 +77,6 @@ rc_t KDBHdrValidate ( const KDBHdr *hdr, size_t size,
 
     return 0;
 }
-#endif
 
 /* KDBPathType
  *  checks type of path
@@ -120,14 +98,13 @@ enum ScanBits
     scan_ofile  = ( 1 << 12 ),
     scan_meta   = ( 1 << 13 ),
     scan_skey   = ( 1 << 14 ),
-    scan_sealed = ( 1 << 15 ),
-    scan_zombie = ( 1 << 16 )
+    scan_sealed = ( 1 << 15 )
 };
 
 static
 rc_t CC scan_dbdir ( const KDirectory *dir, uint32_t type, const char *name, void *data )
 {
-    uint32_t *bits = data;
+    int *bits = data;
 
     type &= kptAlias - 1;
 
@@ -205,139 +182,112 @@ rc_t CC scan_dbdir ( const KDirectory *dir, uint32_t type, const char *name, voi
 
         * bits |= scan_ofile;
     }
-    else if (type == kptZombieFile )
-    {
-        * bits |= scan_zombie;
-    }
-    
+
     return 0;
 }
 
-
-int KDBPathTypeDir (const KDirectory * dir, int type, bool * pHasZombies, const char * path)
+int KDBPathType ( const KDirectory *dir, const char *path )
 {
-    const char * leaf, * parent;
-    uint32_t bits;
-    rc_t rc;
-
-    bits = 0;
-
-    assert ((type == kptDir) || (type == (kptDir|kptAlias)));
+    const char *leaf, *parent;
 
-    rc = KDirectoryVVisit ( dir, false, scan_dbdir, & bits, path, NULL );
-    if ( rc == 0 ) do
+    rc_t rc;
+    int bits;
+    int type = KDirectoryVPathType ( dir, path, NULL );
+    switch ( type )
     {
-        if ( ( bits & scan_zombie ) != 0 ) {
-            bits &= ~scan_zombie;
-            if (pHasZombies)
-                *pHasZombies = true;
-        }
-        /* look for a column */
-        if ( ( bits & scan_idxN ) != 0 &&
-             ( bits & ( scan_data | scan_dataN ) ) != 0 )
-        {
-            if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
-                type += kptColumn - kptDir;
-            break;
-        }
-
-        /* look for a table */
-        if ( ( bits & scan_col ) != 0 )
+    case kptDir:
+    case kptDir | kptAlias:
+        bits = 0;
+        rc = KDirectoryVVisit ( dir, false, scan_dbdir, & bits, path, NULL );
+        if ( rc == 0 )
         {
-            /* can't have sub-tables or a db */
-            if ( ( bits & ( scan_db | scan_tbl ) ) == 0 )
+            /* look for a column */
+            if ( ( bits & scan_idxN ) != 0 &&
+                 ( bits & ( scan_data | scan_dataN ) ) != 0 )
             {
-                /* look for an old-structure table */
-                if ( ( bits & ( scan_meta | scan_md ) ) == scan_meta ||
-                     ( bits & ( scan_skey | scan_idx ) ) == scan_skey )
-                    type += kptPrereleaseTbl - kptDir;
-                else
-                    type += kptTable - kptDir;
+                if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
+                    type += kptColumn - kptDir;
+                break;
             }
-            break;
-        }
 
-        /* look for metadata */
-        if ( ( bits & ( scan_cur | scan_rNNN ) ) != 0 )
-        {
-            if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
-                type += kptMetadata - kptDir;
-            break;
-        }
+            /* look for a table */
+            if ( ( bits & scan_col ) != 0 )
+            {
+                /* can't have sub-tables or a db */
+                if ( ( bits & ( scan_db | scan_tbl ) ) == 0 )
+                {
+                    /* look for an old-structure table */
+                    if ( ( bits & ( scan_meta | scan_md ) ) == scan_meta ||
+                         ( bits & ( scan_skey | scan_idx ) ) == scan_skey )
+                        type += kptPrereleaseTbl - kptDir;
+                    else
+                        type += kptTable - kptDir;
+                }
+                break;
+            }
 
-        /* look for a database */
-        if ( ( bits & scan_tbl ) != 0 )
-        {
-            if ( ( bits & scan_col ) == 0 )
-                type += kptDatabase - kptDir;
-            break;
-        }
+            /* look for metadata */
+            if ( ( bits & ( scan_cur | scan_rNNN ) ) != 0 )
+            {
+                if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
+                    type += kptMetadata - kptDir;
+                break;
+            }
 
-        /* look for a structured column */
-        if ( ( bits & scan_odir ) != 0 )
-        {
-            leaf = strrchr ( path, '/' );
-            if ( leaf != NULL )
+            /* look for a database */
+            if ( ( bits & scan_tbl ) != 0 )
             {
-                parent = string_rchr ( path, leaf - path, '/' );
-                if ( parent ++ == NULL )
-                    parent = path;
-                if ( memcmp ( parent, "col/", 4 ) != 0 )
-                    break;
+                if ( ( bits & scan_col ) == 0 )
+                    type += kptDatabase - kptDir;
+                break;
+            }
 
-                bits = 0;
-                if ( KDirectoryVVisit ( dir, 1, scan_dbdir, & bits, path, NULL ) == 0 )
+            /* look for a structured column */
+            if ( ( bits & scan_odir ) != 0 )
+            {
+                leaf = strrchr ( path, '/' );
+                if ( leaf != NULL )
                 {
-                    if ( ( bits & scan_idxN ) != 0 &&
-                         ( bits & ( scan_data | scan_dataN ) ) != 0 )
-                    {
-                        if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
-                            type += kptColumn - kptDir;
+                    parent = string_rchr ( path, leaf - path, '/' );
+                    if ( parent ++ == NULL )
+                        parent = path;
+                    if ( memcmp ( parent, "col/", 4 ) != 0 )
                         break;
+
+                    bits = 0;
+                    if ( KDirectoryVVisit ( dir, 1, scan_dbdir, & bits, path, NULL ) == 0 )
+                    {
+                        if ( ( bits & scan_idxN ) != 0 &&
+                             ( bits & ( scan_data | scan_dataN ) ) != 0 )
+                        {
+                            if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
+                                type += kptColumn - kptDir;
+                            break;
+                        }
                     }
                 }
             }
         }
-    } while (0);
-
-    return type;
-}
-
-
-int KDBPathType ( const KDirectory *dir, bool *pHasZombies, const char *path )
-{
-    const char *leaf, *parent;
-
-
-    rc_t rc;
-    int type = KDirectoryVPathType ( dir, path, NULL );
-    
-    if (pHasZombies)
-        *pHasZombies = false;
-
-    switch ( type )
-    {
-    case kptDir:
-    case kptDir | kptAlias:
-        type = KDBPathTypeDir (dir, type, pHasZombies, path);
         break;
 
     case kptFile:
     case kptFile | kptAlias:
     {
         /* if we hit a file first try it as an archive */
+        rc_t rc;
         const KDirectory * ldir;
 
         rc = KDirectoryOpenSraArchiveRead_silent ( dir, &ldir, false, path );
         if ( rc != 0 )
             rc = KDirectoryOpenTarArchiveRead_silent ( dir, &ldir, false, path );
+
         /* it was an archive so recur */
-        if ( rc == 0 )
+        if (rc == 0)
         {
             /* recheck this newly opened directory for KDB/KFS type */
             int type2;
 
-            type2 = KDBPathType ( ldir, NULL, "." );
+            type2 = KDBPathType ( ldir, "." );
             if ((type2 != kptDir) || (type != (kptDir|kptAlias)))
                 type = type2;
 
@@ -363,335 +313,106 @@ int KDBPathType ( const KDirectory *dir, bool *pHasZombies, const char *path )
 }
 
 
-
-#if SUPPORT_VFS_URI
-#else
-/* return configured password as ASCIZ
- * opertates on vfs/kfs/kfg objects, not kdb objects */
-static
-rc_t KDBOpenFileGetPassword (char * pw, size_t pwz)
+rc_t KDBOpenPathTypeRead ( const KDirectory * dir, const char * path, 
+    const KDirectory ** pdir, int pathtype, int * ppathtype )
 {
-    VFSManager * mgr;
     rc_t rc;
+    uint32_t dtype;
+    int type;
+    const KDirectory * ldir;
 
-    assert (pw);
-    assert (pwz);
+    /* set local directory pointer to error state NULL */
+    ldir = NULL;
+    rc = 0;
 
-    pw[0] = '\0';
+    type = dtype = KDirectoryPathType (dir, path);
 
-    rc = VFSManagerMake (&mgr);
-    if (rc)
-        ;                      /* failure to make VFS manager: pass along rc */
-    else
+    switch (dtype)
     {
-        size_t pwfz;
-        char pwf [4096 + 1];
-
-        rc = VFSManagerGetConfigPWFile (mgr, pwf, sizeof (pwf) - 1, &pwfz);
-        if (rc)
-            /* failure to get password file path: tweak rc */
-            rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcNotFound);
+    case kptDir:
+    case kptDir | kptAlias:
+        type = KDBPathType ( dir, path );
 
-        else
+        if (( type == pathtype ) || (type == (pathtype|kptAlias)))
         {
-            VPath * pwp;
-
-            pwf [pwfz] = '\0'; /* force to ASCIZ */
-
-            rc = VPathMakeSysPath (&pwp, pwf);
-
-            if (rc)
-                ;       /* failure to construct a path from the string */
-            
-            else
+            rc = KDirectoryVOpenDirUpdate ( ( KDirectory * ) dir, ( KDirectory ** ) & ldir, false, path, NULL );
+            if ( rc != 0)
             {
-                const KFile * pwf;
-          
-                rc = VFSManagerOpenFileRead (mgr, &pwf, pwp);
-                if (rc)
-                    /* failure to open password file */
-                    rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcNotOpen);
-
-                else
-                {
-                    size_t z;
-                    char pwb [4098]; /* arbitrarily using 4096 as maximum
-                                        allowed length */
-
-                    /* at this point we are only getting the password from a 
-                     * file but in the future if we can get it from a pipe of
-                     * some sort we can't count on the ReadAll to really know
-                     * if we hit end of file and not just a pause in the
-                     * streaming.  VFS/KFS 2 will have to fix this somehow
-                     */
-
-                    rc = KFileReadAll (pwf, 0, pwb, sizeof pwb, &z);
-                    if (rc)
-                        ;       /* failure to read password file: pass along rc */
-                    else
-                    {
-                        /* trim off EOL if present */
-                        char * pc;
-
-                        pwb[z] = '\0';   /* force ASCIZ */
-
-                        pc = string_chr (pwb, z, '\r');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = 1 + pc - pwb;
-                        }
-                        pc = string_chr (pwb, z, '\n');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = 1 + pc - pwb;
-                        }
-                        if (z == 0)
-                            rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcTooShort);
-
-                        else if (pwz < z) /* pwz came in as 4096 */
-                            rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcTooLong);
-
-                        else
-                        {
-                            memmove (pw, pwb, z+1);
-                        }
-                    }
-                    KFileRelease (pwf);
-                }
-                VPathRelease (pwp);
+                rc = KDirectoryVOpenDirRead ( dir, &ldir, false, path, NULL );
             }
         }
-        VFSManagerRelease (mgr);
-    }
-    return rc;
-}
-
-
-/* not KDB specific - just uses vfs/krypto/kfs objects */
-static
-rc_t KDBOpenFileAsDirectory (const KDirectory * dir,
-                             const char * path, 
-                             const KDirectory ** pdir,
-                             uint32_t rcobj)
-{
-    const KFile * file;
-    const KFile * f;
-    const KDirectory * ldir;
-    bool encrypted = false;
-
-    rc_t rc;
-
-    *pdir = NULL;
+        break;
 
-    rc = KDirectoryOpenFileRead (dir, &file, path);
-    if (rc == 0)
-    {
-        rc = KFileRandomAccess(file);
-        if (rc)
-            rc = RC (rcDB, rcMgr, rcOpening, rcobj, rcUnsupported);
-        else
+    case kptFile:
+    case kptFile | kptAlias:
+        rc = KDirectoryOpenSraArchiveRead_silent ( dir, &ldir, false, path );
+        if ( rc != 0  )
+            rc = KDirectoryOpenTarArchiveRead_silent ( dir, &ldir, false, path );
+        if ( rc == 0 )
         {
-            size_t tz;
-            char tbuff [4096];
-            char pbuff [4096 + 1];
+            /* recheck this newly opened directory for KDB/KFS type */
+            type = KDBPathType ( ldir, "." );
 
-            rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-            if (rc == 0)
+            /* it its not the KDB type we wanted fail */
+            if (( type != pathtype ) && (type != (pathtype | kptAlias )))
             {
-                if (KFileIsEnc (tbuff, tz) == 0)
-                {
-                    encrypted = true;
-
-                    rc = KDBOpenFileGetPassword (pbuff, sizeof (pbuff) - 1);
-                    if (rc == 0)
-                    {
-                        KKey key;
-
-                        rc = KKeyInitRead (&key, kkeyAES128, pbuff, string_size (pbuff));
-                        if (rc == 0)
-                        {
-                            rc = KEncFileMakeRead (&f, file, &key);
-                            if (rc == 0)
-                            {
-                                /* KEncFileMakeRead adds a reference */
-                                KFileRelease (file);
-                                file = f;
-                                rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-                            }
-                        }
-                    }
-                }
-                else if (KFileIsWGAEnc (tbuff, tz) == 0)
-                {
-                    encrypted = true;
-
-                    rc = KDBOpenFileGetPassword (pbuff, sizeof (pbuff) - 1);
-                    if (rc == 0)
-                    {
-                        rc = KFileMakeWGAEncRead (&f, file, pbuff, string_size (pbuff));
-                        if (rc == 0)
-                        {
-                            /* KFileMakeWGAEncRead adds a reference */
-                            KFileRelease (file);
-                            file = f;
-                            rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-                        }
-                    }
-                }
-                /* else not a handled encryption or unencrypted: we can't distinguish too much */
-
-                if (rc == 0)
-                {
-                    if (KFileIsSRA (tbuff, tz) == 0)
-                    {
-                        rc = KDirectoryOpenSraArchiveReadUnbounded_silent_preopened (dir,
-                                                                                     &ldir,
-                                                                                     false,
-                                                                                     file,
-                                                                                     path);
-                    }
-                    else
-                    {
-                        rc = KDirectoryOpenTarArchiveRead_silent_preopened (dir, &ldir, false,
-                                                                            file, path);
-                    }
-
-                    /* not an archive type we handle or a bad archive */
-                    if (rc)
-                    {
-                        if (encrypted)
-                            rc = RC ( rcDB, rcMgr, rcOpening, rcEncryptionKey, rcIncorrect );
-                        else
-                            rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
-                    }
-                    else
-                    {
-                        /*
-                         * release our ownership of the KFile that but archive will 
-                         * keep theirs
-                         */
-                        KFileRelease (file);
-                        *pdir = ldir;
-                        return 0;
-                    }
-                }
+                KDirectoryRelease (ldir);
+                ldir = NULL;
+                rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
             }
         }
-        KFileRelease (file);
+        else if ( rc != 0 )
+        {
+            rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
+        }
+        break;
     }
-    return rc;
-}
-#endif
-
 
-static rc_t KDBOpenPathTypeReadInt ( const KDBManager * mgr, const KDirectory * dir, const char * path,
-                                     const KDirectory ** pdir, int * type,
-                                     int pathtype, uint32_t rcobj, bool try_srapath )
-{
-    VFSManager * vmgr = mgr->vfsmgr;
-    const KDirectory * ldir = NULL;
-    rc_t rc = 0;
-
-    /* object relative opens can be done using KFS - we hacked in VFS after all */
-    if (! try_srapath)
-    {
-        rc = KDirectoryOpenDirUpdate ((KDirectory*)dir, (KDirectory**)pdir, false, path);
-        if ((rc) && (GetRCState(rc) != rcNotFound))
-            rc = KDirectoryOpenDirRead (dir, pdir, false, path);
-    }
-    else
+    if (( rc != 0 ) || (( type != pathtype ) && (type != (pathtype|kptAlias))))
     {
-        VPath * vpath;
-
-        /*
-         * We've got to decide if the path coming in is a full or relative
-         * path and if relative make it relative to dir or possibly its a srapath
-         * accession
-         *
-         */
-        rc = VPathMakeDirectoryRelative ( &vpath, dir, path, NULL );
-        if ( rc == 0 )
+        /* tune the error message based on path type */
+        uint32_t obj;
+        switch ( pathtype )
         {
-            rc = VFSManagerOpenDirectoryReadDirectoryRelativeDecrypt ( vmgr, dir, &ldir, vpath );
-
-            if ( rc == 0 )
-            {
-                *type = (~kptAlias) & KDBPathType ( ldir, NULL, "." );
-
-                /* just a directory, not a kdb type */
-                if ( *type == kptDir )
-                    rc = RC (rcDB, rcMgr, rcOpening, rcPath, rcIncorrect);
-
-                else if ( *type != pathtype )
-                {
-                    KDirectoryRelease( ldir );
-                    rc = RC ( rcDB, rcMgr, rcOpening, rcobj, rcIncorrect );
-                }
-                else
-                {
-                    if ( pdir != NULL )
-                        *pdir = ldir;
-                    else
-                        KDirectoryRelease( ldir );
-                }
-            }
-            VPathRelease ( vpath );
+        default:
+            obj = rcType;
+            break;
+        case kptTable:
+        case kptTable | kptAlias:
+        case kptPrereleaseTbl:
+        case kptPrereleaseTbl | kptAlias:
+            obj = rcTable;
+            break;
+        case kptColumn:
+        case kptColumn | kptAlias:
+            obj = rcColumn;
+            break;
+        case kptDatabase:
+        case kptDatabase | kptAlias:
+            obj = rcDatabase;
+            break;
+        }
+        switch ( type )
+        {
+        case kptNotFound:
+            rc =  RC ( rcDB, rcMgr, rcOpening, obj, rcNotFound );
+            break;
+        case kptBadPath:
+            rc =  RC ( rcDB, rcMgr, rcOpening, rcPath, rcInvalid );
+            break;
+        default:
+            rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
+            break;
         }
     }
-    return rc;
-}
-
-rc_t KDBOpenPathTypeRead ( const KDBManager * mgr, const KDirectory * dir, const char * path, 
-    const KDirectory ** pdir, int pathtype, int * ppathtype, bool try_srapath )
-{
-    const KDirectory *ldir;
-    rc_t rc = 0;
-    uint32_t rcobj;
-    int type = kptNotFound; /* bogus? */
-
-/*     KOutMsg ("%s: %s\n", __func__, path); */
-
-    if ( pdir != NULL )
-        *pdir = NULL;
-    if ( ppathtype != NULL )
-        *ppathtype = type;
-
-    switch (pathtype & ~ kptAlias) /* tune the error message based on path type */
+    if ((rc != 0) || ((ldir != NULL) && (pdir == NULL)))
     {
-        /* we'll hit this if we don't track defines in kdb/manager.h */
-    default:
-        rc = RC (rcDB, rcMgr, rcOpening, rcType, rcInvalid);
-        return rc;
-
-    case kptTable:
-    case kptPrereleaseTbl:
-        rcobj = rcTable;
-        break;
-
-    case kptColumn:
-        rcobj = rcColumn;
-        break;
-
-    case kptDatabase:
-    case kptDatabase | kptAlias:
-        rcobj = rcDatabase;
-        break;
+        KDirectoryRelease ( ldir );
+        ldir = NULL;
     }
 
-    rc = KDBOpenPathTypeReadInt( mgr, dir, path, &ldir, &type, pathtype, rcobj, try_srapath );
-
-    if (rc == 0)
-    {
-        if ( ppathtype != NULL )
-            *ppathtype = type;
-
-        if (pdir != NULL)
-            *pdir = ldir;
-        else
-            KDirectoryRelease (ldir);
-    }
+    if (pdir != NULL)
+        *pdir = ldir;
 
     return rc;
 }
@@ -705,12 +426,6 @@ rc_t KDBWritable ( const KDirectory *dir, const char *path )
     uint32_t access;
     rc_t rc;
 
-    /* protect us from bad parameters */
-    if (dir == NULL)
-        return RC (rcDB, rcPath, rcAccessing, rcDirectory, rcNull);
-    if (path == NULL)
-        return RC (rcDB, rcPath, rcAccessing, rcPath, rcNull);
-
     /* we have to be able to check the access if it is to be writable */
     rc = KDirectoryVAccess ( dir, & access, path, NULL );
     if ( rc == 0 )
@@ -748,11 +463,12 @@ rc_t KDBWritable ( const KDirectory *dir, const char *path )
             rc = RC ( rcDB, rcPath, rcAccessing, rcPath, rcIncorrect );
         }
     }
+
     return rc;
 }
 
 
-bool KDBIsLocked ( const KDirectory *dir, const char *path )
+LIB_EXPORT bool CC KDBIsLocked ( const KDirectory *dir, const char *path )
 {
     return ( KDBWritable (dir, path) != 0 );
 }
@@ -839,24 +555,10 @@ rc_t KDBVMakeSubPath ( struct KDirectory const *dir,
         subpath_max -= ns_size + 1;
     }
 
-#if CRUFTY_USE_OF_RESOLVE_PATH
     /* because this call only builds a path instead of resolving anything
      * is is okay that we are using the wrong directory */
     rc = KDirectoryVResolvePath ( dir, false,
         subpath, subpath_max, path, args );
-#else
-    {
-        int sz = vsnprintf ( subpath, subpath_max, path, args );
-        if ( sz < 0 || ( size_t ) sz >= subpath_max )
-            rc = RC ( rcDB, rcDirectory, rcResolving, rcBuffer, rcInsufficient );
-        else if ( sz == 0 )
-            rc = RC ( rcDB, rcDirectory, rcResolving, rcPath, rcEmpty );
-        else
-        {
-            rc = 0;
-        }
-    }
-#endif
     switch ( GetRCState ( rc ) )
     {
     case 0:
@@ -878,57 +580,3 @@ rc_t KDBVMakeSubPath ( struct KDirectory const *dir,
     }
     return rc;
 }
-
-/* KDBMakeSubPath
- *  adds a namespace to path spec
- */
-rc_t KDBMakeSubPath ( struct KDirectory const *dir,
-    char *subpath, size_t subpath_max, const char *ns,
-    uint32_t ns_size, const char *path, ... )
-{
-    rc_t rc = 0;
-    va_list args;
-    va_start(args, path);
-    rc = KDBVMakeSubPath(dir, subpath, subpath_max, ns, ns_size, path, args);
-    va_end(args);
-    return rc;
-}
-
-/* this is included to make kdb.c vs. wkdb.c file comparisons easier in [x]emacs.*/
-#if NOT_USED_IN_READ_ONLY_SIDE
-/* VDrop
- */
-static
-rc_t KDBDropInt ( KDirectory * dir, const KDBManager * mgr,
-                  const char * path )
-{
-}
-
-rc_t KDBMgrVDrop ( KDirectory * dir, const KDBManager * mgr, uint32_t obj_type,
-                   const char * path, va_list args )
-{
-}
-#endif
-
-/* KDBIsPathUri
- * A hack to get some of VFS into KDB that is too tightly bound to KFS
- */
-
-bool KDBIsPathUri (const char * path)
-{
-    const char * pc;
-    size_t z;
-
-    z = string_size (path);
-
-    if (NULL != (pc = string_chr (path, z, ':')))
-        return true;
-
-    if (NULL != (pc = string_chr (path, z, '?')))
-        return true;
-
-    if (NULL != (pc = string_chr (path, z, '#')))
-        return true;
-
-    return false;
-}
diff --git a/libs/kdb/libkdb.vers b/libs/kdb/libkdb.vers
index 0b1f1ed..0495c4a 100644
--- a/libs/kdb/libkdb.vers
+++ b/libs/kdb/libkdb.vers
@@ -1 +1 @@
-1.2.13
+1.2.3
diff --git a/libs/kdb/libkdb.vers.h b/libs/kdb/libkdb.vers.h
new file mode 100644
index 0000000..1a165ff
--- /dev/null
+++ b/libs/kdb/libkdb.vers.h
@@ -0,0 +1 @@
+#define LIBKDB_VERS 0x01020003
diff --git a/libs/kdb/libwkdb.vers b/libs/kdb/libwkdb.vers
index 0b1f1ed..0495c4a 100644
--- a/libs/kdb/libwkdb.vers
+++ b/libs/kdb/libwkdb.vers
@@ -1 +1 @@
-1.2.13
+1.2.3
diff --git a/libs/kdb/libwkdb.vers.h b/libs/kdb/libwkdb.vers.h
new file mode 100644
index 0000000..7e02097
--- /dev/null
+++ b/libs/kdb/libwkdb.vers.h
@@ -0,0 +1 @@
+#define LIBWKDB_VERS 0x01020003
diff --git a/libs/kdb/meta.c b/libs/kdb/meta.c
index dd39d85..22fb7bf 100644
--- a/libs/kdb/meta.c
+++ b/libs/kdb/meta.c
@@ -41,7 +41,6 @@ struct KMDataNodeNamelist;
 #undef KONST
 
 #include <kdb/meta.h>
-#include <kdb/namelist.h>
 #include <klib/container.h>
 #include <klib/pbstree.h>
 #include <klib/namelist.h>
@@ -50,7 +49,6 @@ struct KMDataNodeNamelist;
 #include <kfs/mmap.h>
 #include <klib/refcount.h>
 #include <klib/debug.h>
-#include <klib/log.h>
 #include <klib/rc.h>
 #include <strtol.h>
 #include <os-native.h>
@@ -65,8 +63,6 @@ struct KMDataNodeNamelist;
 #include <assert.h>
 
 #define KMETADATAVERS 2
-#define NODE_SIZE_LIMIT ( 25 * 1024 * 1024 )
-#define NODE_CHILD_LIMIT ( 100 * 1024 )
 
 
 typedef struct KMDataNodeInflateData KMDataNodeInflateData;
@@ -75,8 +71,6 @@ struct KMDataNodeInflateData
     const KMetadata *meta;
     const KMDataNode *par;
     BSTree *bst;
-    size_t node_size_limit;
-    uint32_t node_child_limit;
     rc_t rc;
     bool byteswap;
 };
@@ -345,7 +339,7 @@ bool CC KMDataNodeInflate_v1 ( PBSTNode *n, void *data )
     }
 
     pb -> rc = RC ( rcDB, rcMetadata, rcConstructing, rcMemory, rcExhausted );
-    free ( b );
+    free ( n );
     return true;
 }
 
@@ -364,8 +358,6 @@ rc_t KMDataNodeInflateAttr ( KMDataNode *n, bool byteswap )
         pb . meta = n -> meta;
         pb . par = n;
         pb . bst = & n -> attr;
-        pb . node_size_limit = NODE_SIZE_LIMIT;
-        pb . node_child_limit = NODE_CHILD_LIMIT;
         pb . rc = 0;
         pb . byteswap = byteswap;
         PBSTreeDoUntil ( bst, 0, KMAttrNodeInflate, & pb );
@@ -383,8 +375,7 @@ static
 bool CC KMDataNodeInflate ( PBSTNode *n, void *data );
 
 static
-rc_t KMDataNodeInflateChild ( KMDataNode *n,
-    size_t node_size_limit, uint32_t node_child_limit, bool byteswap )
+rc_t KMDataNodeInflateChild ( KMDataNode *n, bool byteswap )
 {
     PBSTree *bst;
     rc_t rc = PBSTreeMake ( & bst, n -> value, n -> vsize, byteswap );
@@ -392,45 +383,16 @@ rc_t KMDataNodeInflateChild ( KMDataNode *n,
         rc = RC ( rcDB, rcMetadata, rcConstructing, rcData, rcCorrupt );
     else
     {
-        uint32_t bst_count = PBSTreeCount ( bst );
+        KMDataNodeInflateData pb;
         size_t bst_size = PBSTreeSize ( bst );
-        if ( bst_count > node_child_limit )
-        {
-            PLOGMSG ( klogWarn, ( klogWarn,
-                                  "refusing to inflate metadata node '$(node)' within file '$(path)': "
-                                  "number of children ($(num_children)) exceeds limit ($(limit))."
-                                  , "node=%s,path=%s,num_children=%u,limit=%u"
-                                  , n -> name
-                                  , n -> meta -> path
-                                  , bst_count
-                                  , node_child_limit )
-                );
-        }
-        else if ( bst_size > node_size_limit )
-        {
-            PLOGMSG ( klogWarn, ( klogWarn,
-                                  "refusing to inflate metadata node '$(node)' within file '$(path)': "
-                                 "node size ($(node_size)) exceeds limit ($(limit))."
-                                 , "node=%s,path=%s,node_size=%zu,limit=%zu"
-                                 , n -> name
-                                 , n -> meta -> path
-                                 , bst_size
-                                 , node_size_limit )
-                );
-        }
-        else
-        {
-            KMDataNodeInflateData pb;
-            pb . meta = n -> meta;
-            pb . par = n;        
-            pb . bst = & n -> child;
-            pb . node_size_limit = node_size_limit;
-            pb . node_child_limit = node_child_limit;
-            pb . rc = 0;
-            pb . byteswap = byteswap;
-            PBSTreeDoUntil ( bst, 0, KMDataNodeInflate, & pb );
-            rc = pb . rc;
-        }
+
+        pb . meta = n -> meta;
+        pb . par = n;        
+        pb . bst = & n -> child;
+        pb . rc = 0;
+        pb . byteswap = byteswap;
+        PBSTreeDoUntil ( bst, 0, KMDataNodeInflate, & pb );
+        rc = pb . rc;
         
         PBSTreeWhack ( bst );
         
@@ -478,8 +440,7 @@ bool CC KMDataNodeInflate ( PBSTNode *n, void *data )
     pb -> rc = ( bits & 1 ) != 0 ? KMDataNodeInflateAttr ( b, pb -> byteswap ) : 0;
     if ( pb -> rc == 0 )
     {
-        pb -> rc = ( bits & 2 ) != 0 ?
-            KMDataNodeInflateChild ( b, pb -> node_size_limit, pb -> node_child_limit, pb -> byteswap ) : 0;
+        pb -> rc = ( bits & 2 ) != 0 ? KMDataNodeInflateChild ( b, pb -> byteswap ) : 0;
         if ( pb -> rc == 0 )
         {
             void *value;
@@ -507,7 +468,7 @@ bool CC KMDataNodeInflate ( PBSTNode *n, void *data )
         BSTreeWhack ( & b -> attr, KMAttrNodeWhack, NULL );
     }
 
-    free ( b );
+    free ( n );
     return true;
 }
 
@@ -1606,8 +1567,6 @@ rc_t KMetadataPopulate ( KMetadata *self, const KDirectory *dir, const char *pat
                         pb . meta = self;
                         pb . par = self -> root;
                         pb . bst = & self -> root -> child;
-                        pb . node_size_limit = NODE_SIZE_LIMIT;
-                        pb . node_child_limit = NODE_CHILD_LIMIT;
                         pb . rc = 0;
                         pb . byteswap = self -> byteswap;
 
@@ -2123,7 +2082,7 @@ void CC KMDataNodeGrabName ( BSTNode *n, void *data )
     list -> namelist [ list -> count ++ ] = ( ( const KMDataNode* ) n ) -> name;
 }
 
-LIB_EXPORT rc_t CC KMDataNodeListChildren ( const KMDataNode *self, KNamelist **names )
+LIB_EXPORT rc_t CC KMDataNodeListChild ( const KMDataNode *self, KNamelist **names )
 {
     if ( names == NULL )
         return RC ( rcDB, rcMetadata, rcListing, rcParam, rcNull );
diff --git a/libs/kdb/ptrieval-v2.c b/libs/kdb/ptrieval-v2.c
index 7a8b939..c1ff270 100644
--- a/libs/kdb/ptrieval-v2.c
+++ b/libs/kdb/ptrieval-v2.c
@@ -61,7 +61,6 @@ struct KPTrieIndexCCParms_v2
     bool key2id;
     bool id2key;
     bool all_ids;
-    bool convertFromV1;
     bool failed;
 };
 
@@ -69,7 +68,7 @@ struct KPTrieIndexCCParms_v2
  */
 static
 void KPTrieIndexCCParmsInit_v2 ( KPTrieIndexCCParms_v2 *pb,
-    const KPTrieIndex_v2 *self, const KIndex *outer, bool key2id, bool id2key, bool all_ids, bool convertFromV1 )
+    const KPTrieIndex_v2 *self, const KIndex *outer, bool key2id, bool id2key, bool all_ids )
 {
     KIdStatsInit ( & pb -> stats );
     pb -> rc = 0;
@@ -78,7 +77,6 @@ void KPTrieIndexCCParmsInit_v2 ( KPTrieIndexCCParms_v2 *pb,
     pb -> key2id = key2id;
     pb -> id2key = self -> ord2node ? id2key : false;
     pb -> all_ids = all_ids;
-    pb -> convertFromV1 = convertFromV1;
     pb -> failed = false;
 }
 
@@ -113,7 +111,7 @@ void KPTrieIndexCCParmsWhack_v2 ( KPTrieIndexCCParms_v2 *pb )
 static
 bool CC KPTrieIndexCCVisit_v2 ( PTNode *n, void *data )
 {
-    KPTrieIndexCCParms_v2 *pb = (KPTrieIndexCCParms_v2 *)data;
+    KPTrieIndexCCParms_v2 *pb = data;
     const KPTrieIndex_v2 *self = pb -> self;
 
     rc_t rc;
@@ -123,71 +121,48 @@ bool CC KPTrieIndexCCVisit_v2 ( PTNode *n, void *data )
     uint32_t i, ord;
 
     /* detect conversion from v1 */
-    if ( pb -> convertFromV1 && self -> id_bits == 0 )
+    if ( self -> id_bits == 0 )
     {
-        uint32_t id32;
-
         /* payload of v1 PTNode is a 32-bit spot id */
+        uint32_t id32;
         assert ( n -> data . size == sizeof id32 );
         memcpy ( & id32, n -> data . addr, sizeof id32 );
         id = self -> byteswap ? bswap_32 ( id32 ) : id32;
+        span = 1;
+        ord = ( uint32_t ) ( id - self -> first + 1 );
     }
     else
     {
         /* native v2 */
         /* TBD - should this pass n -> data . size * 8 ??? */
-        if ( self -> id_bits != 0 )
+        rc = Unpack ( self -> id_bits, sizeof id * 8,
+            n -> data . addr, 0, self -> id_bits, NULL,
+            & id, sizeof id, & usize );
+        if ( rc != 0 )
         {
-            rc = Unpack ( self -> id_bits, sizeof id * 8,
-                n -> data . addr, 0, self -> id_bits, NULL,
-                & id, sizeof id, & usize );
-            if ( rc != 0 )
-            {
-                PLOGMSG ( klogWarn, ( klogWarn, "could not determine row id of v2 node $(nid)",
+            PLOGMSG ( klogWarn, ( klogWarn, "could not determine row id of v2 node $(nid)",
                                  "nid=0x%08x", n -> id ));
-                pb -> failed = true;
-                return false;
-            }
-        }
-        else
-        {
-            id = 0;
+            pb -> failed = true;
+            return false;
         }
-
         id += self -> first;
-    }
 
-    /* convert from row-id to 1-based ordinal index */
-    ord = KPTrieIndexID2Ord_v2 ( self, id );
-    if ( ord == 0 )
-    {
-        /* 0 means not found */
-        PLOGMSG ( klogWarn, ( klogWarn, "v2 node $(nid): row id $(rid) not found in trie",
-                              "nid=0x%08x,rid=%ld", n -> id, id ));
-        pb -> failed = true;
-        return false;
-    }
+        ord = KPTrieIndexID2Ord_v2 ( self, id );
+        if ( ord == 0 )
+        {
+            PLOGMSG ( klogWarn, ( klogWarn, "v2 node $(nid): row id $(rid) not found in trie",
+                                  "nid=0x%08x,rid=%ld", n -> id, id ));
+            pb -> failed = true;
+            return false;
+        }
 
-    if ( self -> ord2node != NULL )
-    {
-        /* to calculate span of last entry, where
-           1-based "ord" == the number of nodes,
-           just find the distance between the last row-id
-           in index ( self->maxid ) and the current row-id */
-        if ( ord == self -> count )
-            span = self -> maxid - id + 1;
-        else
+        if ( self -> ord2node != NULL )
         {
-            /* from here on, we will use "ord" to be the
-               ZERO-BASED index of the slot FOLLOWING the
-               one corresponding to id. we want to find the
-               row-id AFTER the current one and calculate distance */
-            switch ( self -> variant )
+            if ( ord == self -> count )
+                span = self -> maxid - id + 1;
+            else switch ( self -> variant )
             {
-            /* linear array */
             case 0:
-                /* starting with the FOLLOWING slot,
-                   count duplicate entries */
                 for ( i = ord; i < self -> count; ++ i )
                 {
                     if ( n -> id != self -> ord2node [ i ] )
@@ -195,10 +170,6 @@ bool CC KPTrieIndexCCVisit_v2 ( PTNode *n, void *data )
                 }
                 span = self -> first + i - id;
                 break;
-
-            /* packed ordered array of sparse row-ids from here on
-               we already have "id" for this node, so the span will
-               be the distance from NEXT id - 1-based ord is 0-based next */
             case 1:
                 span = self -> first + self -> id2ord . v8 [ ord ] - id;
                 break;
@@ -218,22 +189,22 @@ bool CC KPTrieIndexCCVisit_v2 ( PTNode *n, void *data )
                 return true;
             }
         }
-    }
-    else if ( self -> span_bits == 0 )
-        span = 1;
-    else
-    {
-        /* TBD - this case is never used in practice.
-           it would be an skey without a projection index */
-        rc = Unpack ( self -> span_bits, sizeof span * 8,
-                      n -> data . addr, 0, self -> id_bits, NULL,
-                      & span, sizeof span, & usize );
-        if ( rc != 0 )
+        else if ( self -> span_bits == 0 )
+            span = 1;
+        else
         {
-            PLOGMSG ( klogWarn, ( klogWarn, "could not determine span of v2 node $(nid), row id $(rid)",
-                                  "nid=0x%08x,rid=%ld", n -> id, id ));
-            pb -> failed = true;
-            return false;
+            /* TBD - this case is never used in practice.
+               it would be an skey without a projection index */
+            rc = Unpack ( self -> span_bits, sizeof span * 8,
+                n -> data . addr, 0, self -> id_bits, NULL,
+                & span, sizeof span, & usize );
+            if ( rc != 0 )
+            {
+                PLOGMSG ( klogWarn, ( klogWarn, "could not determine span of v2 node $(nid), row id $(rid)",
+                                      "nid=0x%08x,rid=%ld", n -> id, id ));
+                pb -> failed = true;
+                return false;
+            }
         }
     }
 
@@ -312,7 +283,7 @@ bool CC KPTrieIndexCCVisit_v2 ( PTNode *n, void *data )
             size_t key_size, bsize = sizeof buffer;
             if ( sizeof buffer <= orig -> size )
             {
-                key = (char *)malloc ( bsize = orig -> size + 1 );
+                key = malloc ( bsize = orig -> size + 1 );
                 if ( key == 0 )
                 {
                     pb -> rc = RC ( rcDB, rcIndex, rcValidating, rcMemory, rcExhausted );
@@ -363,7 +334,7 @@ bool CC KPTrieIndexCCVisit_v2 ( PTNode *n, void *data )
 rc_t KPTrieIndexCheckConsistency_v2 ( const KPTrieIndex_v2 *self,
     int64_t *start_id, uint64_t *id_range, uint64_t *num_keys,
     uint64_t *num_rows, uint64_t *num_holes,
-    const KIndex *outer, bool key2id, bool id2key, bool all_ids, bool convertFromV1 )
+    const KIndex *outer, bool key2id, bool id2key, bool all_ids )
 {
     rc_t rc = 0;
     KPTrieIndexCCParms_v2 pb;
@@ -374,7 +345,7 @@ rc_t KPTrieIndexCheckConsistency_v2 ( const KPTrieIndex_v2 *self,
     if ( ( key2id || id2key ) && outer == NULL )
         return RC ( rcDB, rcIndex, rcValidating, rcSelf, rcNull );
 
-    KPTrieIndexCCParmsInit_v2 ( & pb, self, outer, key2id, id2key, all_ids, convertFromV1 );
+    KPTrieIndexCCParmsInit_v2 ( & pb, self, outer, key2id, id2key, all_ids );
     if ( PTrieDoUntil ( self -> key2id, KPTrieIndexCCVisit_v2, & pb ) )
         rc = pb . rc;
     else if ( pb . failed )
diff --git a/libs/kdb/table-cc.c b/libs/kdb/table-cc.c
index 17bcb4a..38dbf3c 100644
--- a/libs/kdb/table-cc.c
+++ b/libs/kdb/table-cc.c
@@ -38,17 +38,13 @@
 #include "cc-priv.h"
 
 #include <kdb/index.h>
-#include <kdb/meta.h>
-#include <kdb/kdb-priv.h>
 
 #include <kfs/file.h>
 #include <kfs/md5.h>
 #include <klib/refcount.h>
-#include <klib/log.h> /* PLOGMSG */
 #include <klib/rc.h>
 #include <klib/namelist.h>
 #include <kdb/namelist.h>
-
 #include <os-native.h>
 #include <sysalloc.h>
 
@@ -61,127 +57,59 @@
 
 #undef index
 
-static void KTableGetName(KTable const *self, char const **rslt)
-{
-    char *sep;
-    
-    *rslt = self->path;
-    sep = strrchr(self->path, '/');
-    if (sep != NULL)
-        *rslt = sep + 1;
-}
-
 static
 rc_t KTableCheckMD5 ( const KTable *self, CCReportFunc report, void *ctx )
 {
+    char *sep;
+
     CCReportInfoBlock info;
     memset ( & info, 0, sizeof info );
 
     info.objType = kptTable;
-    KTableGetName(self, &info.objName);
+    info.objName = self->path;
+    sep = strrchr(self->path, '/');
+    if (sep != NULL )
+        info.objName = sep + 1;
     
     return DirectoryCheckMD5 ( self->dir, "md5", & info, report, ctx );
 }
 
-#if 0
-static bool KTableCheckColumnsFilter(const KDirectory *dir, const char *name, void *data)
-{
-    return (KDirectoryPathType(dir, name) & ~kptAlias) == kptDir;
-}
-#endif
-
-typedef struct KTableCheckColumn_pb_s {
-    KTable const *self;
-    CCReportFunc report;
-    void *rpt_ctx;
-    unsigned n;
-    int level;
-    uint32_t depth;
-    INSDC_SRA_platform_id platform;
-} KTableCheckColumn_pb_t;
-
-static rc_t CC KTableCheckColumn(const KDirectory *dir, uint32_t type, const char *name, void *data)
+static
+rc_t KTableCheckColumns ( const KTable *self, int level, CCReportFunc report, void *ctx )
 {
-    KTableCheckColumn_pb_t *pb = (KTableCheckColumn_pb_t *)data;
-    CCReportInfoBlock info;
-    
-    memset(&info, 0, sizeof(info));
+    uint32_t n;
+    KNamelist *list;
+    rc_t rc = KTableListCol(self, &list);
     
-    if ((type & ~kptAlias) != kptDir) {
-        char mesg[4096];
-        
-        snprintf(mesg, sizeof(mesg), "unexpected object '%s'", name);
-        KTableGetName(pb->self, &info.objName);
-        info.objId = 0;
-        info.objType = kptTable;
-        info.type = ccrpt_Done;
-        info.info.done.mesg = mesg;
-        info.info.done.rc = 0;
-        return pb->report(&info, pb->rpt_ctx);
-    }
-    else {
-        bool hasZombies;
-        INSDC_SRA_platform_id platform = pb->platform;
-        uint32_t ktype = KDBPathType(dir, &hasZombies, name);
-        rc_t rc;
-        
-        info.objType = kptColumn;
-        info.objId = pb->n++;
-        info.objName = name;
-        info.type = ccrpt_Visit;
-        info.info.visit.depth = pb->depth + 1;
-        rc = pb->report(&info, pb->rpt_ctx);
-        if (rc) return rc;
+    if (rc)
+        return rc;
+
+    rc = KNamelistCount(list, &n);
+    if (rc == 0) {
+        CCReportInfoBlock nfo;
         
-        info.type = ccrpt_Done;
+        memset(&nfo, 0, sizeof(nfo));
+        nfo.objType = kptColumn;
         
-        if (hasZombies) {
-#if 0
-            info.info.done.rc = RC(rcDB, rcTable, rcValidating, rcFile, rcTooShort);
-#else
-            info.info.done.rc = 0;
-#endif
-            info.info.done.mesg = "Column may be truncated";
-            rc = pb->report(&info, pb->rpt_ctx);
-            if (rc) return rc;
-        }
-        info.info.done.rc = RC(rcDB, rcTable, rcValidating, rcType, rcIncorrect);
-        if ((ktype & ~kptAlias) == kptColumn) {
-            const KColumn *col;
-            
-            info.info.done.rc = KTableOpenColumnRead(pb->self, &col, name);
-            if (info.info.done.rc == 0) {
-                info.info.done.rc = KColumnConsistencyCheck(col, pb->level, &info, pb->report, pb->rpt_ctx);
-                KColumnRelease(col);
-                return info.info.done.rc;
-            }
-        }
-        if (platform != SRA_PLATFORM_UNDEFINED && platform != SRA_PLATFORM_454
-            && name != NULL && name[0] != '\0' && strcmp(name, "SIGNAL") == 0)
+        for ( nfo . objId = 0; nfo . objId != n && rc == 0; ++ nfo . objId )
         {
-            (void)PLOGMSG(klogWarn, (klogWarn, "COLUMN '$(name)' IS INCOMPLETE",
-                "name=%s", name));
-            return 0;
+            rc = KNamelistGet ( list, nfo . objId, & nfo . objName );
+            if ( rc == 0 )
+            {
+                const KColumn *col;
+                
+                rc = KTableOpenColumnRead ( self, & col, nfo . objName );
+                if ( rc == 0 )
+                {
+                    rc = KColumnConsistencyCheck ( col, level, &nfo, report, ctx );
+                    KColumnRelease ( col );
+                }
+            }
         }
-        info.info.done.mesg = "Failed to open column";
-        return pb->report(&info, pb->rpt_ctx);
     }
-}
-
-static
-rc_t KTableCheckColumns ( const KTable *self, uint32_t depth, int level,
-    CCReportFunc report, void *ctx, INSDC_SRA_platform_id platform )
-{
-    KTableCheckColumn_pb_t pb;
     
-    pb.self = self;
-    pb.report = report;
-    pb.rpt_ctx = ctx;
-    pb.n = 0;
-    pb.level = level;
-    pb.depth = depth;
-    pb.platform = platform;
-    return KDirectoryVVisit(self->dir, false, KTableCheckColumn, &pb, "col", NULL);
+    KNamelistRelease(list);
+    return rc;
 }
 
 static
@@ -211,11 +139,9 @@ static const KDirectory *KTableFindIndexDir(const KTable *self)
 }
 
 static
-rc_t KTableCheckIndices(const KTable *self, uint32_t depth, int level, CCReportFunc report, void *ctx)
+rc_t KTableCheckIndices(const KTable *self, int level, CCReportFunc report, void *ctx)
 {
     uint32_t n;
-    const KMetadata *meta;
-    int64_t max_row_id = 0;
 
     KNamelist *list;
     rc_t rc = KTableListIdx(self, &list);
@@ -226,22 +152,6 @@ rc_t KTableCheckIndices(const KTable *self, uint32_t depth, int level, CCReportF
         return rc;
     }
 
-    rc = KTableOpenMetadataRead ( self, & meta );
-    if ( rc == 0 )
-    {
-        const KMDataNode *seq;
-        rc = KMetadataOpenNodeRead ( meta, & seq, "/.seq/spot" );
-        if ( rc == 0 )
-        {
-            rc = KMDataNodeReadAsI64 ( seq, & max_row_id );
-            if ( rc != 0 )
-                max_row_id = 0;
-            KMDataNodeRelease ( seq );
-        }
-
-        KMetadataRelease ( meta );
-    }
-
     rc = KNamelistCount(list, &n);
     if ( rc == 0 )
     {
@@ -259,11 +169,7 @@ rc_t KTableCheckIndices(const KTable *self, uint32_t depth, int level, CCReportF
                 rc = KNamelistGet(list, nfo.objId, &nfo.objName);
                 if ( rc != 0 )
                     break;
-                
-                nfo.type = ccrpt_Visit;
-                nfo.info.visit.depth = depth + 1;
-                rc = report(&nfo, ctx); if (rc) break;
-                
+            
                 rc = KTableCheckIndexMD5(idxDir, &nfo, report, ctx);
                 if (rc == 0 && level > 0)
                 {
@@ -278,8 +184,6 @@ rc_t KTableCheckIndices(const KTable *self, uint32_t depth, int level, CCReportF
                     }
                     else
                     {
-                        KIndexSetMaxRowId ( idx, max_row_id );
-
                         nfo.type = ccrpt_Index;
                         rc = KIndexConsistencyCheck(idx, level < 3 ? 1 : 3,
                                                     &nfo.info.index.start_id,
@@ -310,69 +214,22 @@ rc_t KTableCheckIndices(const KTable *self, uint32_t depth, int level, CCReportF
 }
 
 LIB_EXPORT
-rc_t CC KTableConsistencyCheck(const KTable *self, uint32_t depth, uint32_t level,
-    CCReportFunc report, void *ctx, INSDC_SRA_platform_id platform)
+rc_t CC KTableConsistencyCheck(const KTable *self, uint32_t level,
+                               CCReportFunc report, void *ctx)
 {
     rc_t rc = 0;
-    uint32_t type;
     
-    bool indexOnly = level & CC_INDEX_ONLY;
-    if (indexOnly) {
-        level &= ~CC_INDEX_ONLY;
-    }
-
     if (self == NULL)
         return RC(rcDB, rcTable, rcValidating, rcSelf, rcNull);
     
-    if (depth == 0) {
-        CCReportInfoBlock info;
-        
-        KTableGetName(self, &info.objName);
-        info.objId = 0;
-        info.objType = kptTable;
-        info.type = ccrpt_Visit;
-        info.info.visit.depth = 0;
-        
-        rc = report(&info, ctx);
-        if (rc) return rc;
-    }
-    
-    type = KDirectoryPathType(self->dir, "md5");
-    if (type == kptZombieFile) {
-        CCReportInfoBlock info;
-        
-        KTableGetName(self, &info.objName);
-        info.objId = 0;
-        info.objType = kptTable;
-        info.type = ccrpt_Done;
-        info.info.done.mesg = "Table may be truncated";
-        info.info.done.rc = 0;
-        
-        rc = report(&info, ctx);
-    }
-    else if (type != kptNotFound) {
-        if (!indexOnly) {
-            rc = KTableCheckMD5(self, report, ctx);
-        }
-    }
-    else {
-        CCReportInfoBlock info;
-        
-        KTableGetName(self, &info.objName);
-        info.objId = 0;
-        info.objType = kptTable;
-        info.type = ccrpt_Done;
-        info.info.done.mesg = "missing md5 file";
-        info.info.done.rc = 0;
-        
-        rc = report(&info, ctx);
-    }
+    if (KDirectoryPathType(self->dir, "md5") != kptNotFound)
+        rc = KTableCheckMD5(self, report, ctx);
 
-    if ( rc == 0 && ! indexOnly )
-        rc = KTableCheckColumns(self, depth, level, report, ctx, platform);
+    if ( rc == 0 )
+        rc = KTableCheckColumns(self, level, report, ctx);
 
     if ( rc == 0 )    
-        rc = KTableCheckIndices(self, depth, level, report, ctx);
+        rc = KTableCheckIndices(self, level, report, ctx);
         
     return rc;
 }
diff --git a/libs/kdb/table.c b/libs/kdb/table.c
index 7a0ea75..6f6477c 100644
--- a/libs/kdb/table.c
+++ b/libs/kdb/table.c
@@ -35,15 +35,11 @@
 
 #include <kdb/extern.h>
 #include <klib/namelist.h>
-#include <klib/log.h>
 #include <klib/rc.h>
-#include <klib/printf.h>
-#include <os-native.h>
 #include <sysalloc.h>
 
 #include <limits.h>
 #include <stdlib.h>
-#include <stdio.h>
 #include <string.h>
 #include <assert.h>
 
@@ -53,22 +49,6 @@
  *  a collection of columns indexed by row id, metadata, indices
  */
 
-/* GetPath
- *  return the absolute path to table
- */
-LIB_EXPORT rc_t CC KTableGetPath ( const KTable *self,
-    const char **path )
-{
-    if ( self == NULL )
-        return RC ( rcDB, rcTable, rcAccessing, rcSelf, rcNull );
-    if ( path == NULL )
-        return RC ( rcDB, rcTable, rcAccessing, rcParam, rcNull );
-
-    *path = self->path;
-
-    return 0;
-}
-
 /* Whack
  */
 static
@@ -211,30 +191,24 @@ rc_t KTableMake ( KTable **tblp, const KDirectory *dir, const char *path )
  */
 static
 rc_t KDBManagerVOpenTableReadInt ( const KDBManager *self,
-    const KTable **tblp, const KDirectory *wd, bool try_srapath,
+    const KTable **tblp, const KDirectory *wd,
     const char *path, va_list args )
 {
-    rc_t rc;
-
     char tblpath [ 4096 ];
-    int z = ( args == NULL ) ?
-        snprintf ( tblpath, sizeof tblpath, path ):
-        vsnprintf ( tblpath, sizeof tblpath, path, args );
-    if ( z < 0 || ( size_t ) z >= sizeof tblpath )
-        rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcExcessive );
-    else
+    rc_t rc = KDirectoryVResolvePath ( wd, 1,
+        tblpath, sizeof tblpath, path, args );
+    if ( rc == 0 )
     {
         KTable *tbl;
         const KDirectory *dir;
         bool prerelease = false;
 
-        rc = KDBOpenPathTypeRead ( self, wd, tblpath, &dir, kptTable, NULL, try_srapath );
+        rc = KDBOpenPathTypeRead ( wd, tblpath, &dir, kptTable, NULL );
         if ( rc != 0 )
         {
             prerelease = true;
-            rc = KDBOpenPathTypeRead ( self, wd, tblpath, &dir, kptPrereleaseTbl, NULL, try_srapath );
+            rc = KDBOpenPathTypeRead ( wd, tblpath, &dir, kptPrereleaseTbl, NULL );
         }
-
         if ( rc == 0 )
         {
             rc = KTableMake ( & tbl, dir, tblpath );
@@ -245,13 +219,14 @@ rc_t KDBManagerVOpenTableReadInt ( const KDBManager *self,
                 * tblp = tbl;
                 return 0;
             }
+
             KDirectoryRelease ( dir );
         }
     }
+    
     return rc;
 }
 
-
 LIB_EXPORT rc_t CC KDBManagerOpenTableRead ( const KDBManager *self,
     const KTable **tbl, const char *path, ... )
 {
@@ -265,7 +240,6 @@ LIB_EXPORT rc_t CC KDBManagerOpenTableRead ( const KDBManager *self,
     return rc;
 }
 
-
 LIB_EXPORT rc_t CC KDBManagerVOpenTableRead ( const KDBManager *self,
     const KTable **tbl, const char *path, va_list args )
 {
@@ -277,7 +251,7 @@ LIB_EXPORT rc_t CC KDBManagerVOpenTableRead ( const KDBManager *self,
     if ( self == NULL )
         return RC ( rcDB, rcMgr, rcOpening, rcSelf, rcNull );
 
-    return KDBManagerVOpenTableReadInt ( self, tbl, self -> wd, true, path, args);
+    return KDBManagerVOpenTableReadInt ( self, tbl, self -> wd, path, args );
 }
 
 LIB_EXPORT rc_t CC KDatabaseOpenTableRead ( const KDatabase *self,
@@ -312,7 +286,7 @@ LIB_EXPORT rc_t CC KDatabaseVOpenTableRead ( const KDatabase *self,
     if ( rc == 0 )
     {
         rc = KDBManagerVOpenTableReadInt ( self -> mgr, tblp,
-            self -> dir, false, path, NULL );
+            self -> dir, path, NULL );
         if ( rc == 0 )
         {
             KTable *tbl = ( KTable* ) * tblp;
@@ -399,75 +373,6 @@ LIB_EXPORT bool CC KTableExists ( const KTable *self, uint32_t type, const char
 }
 
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptIndex and kptColumn
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-LIB_EXPORT bool CC KTableIsAlias ( const KTable *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name )
-{
-    if ( self != NULL && name != NULL && name [ 0 ] != 0 )
-    {
-        rc_t rc;
-        const char *ns;
-        char path [ 256 ];
-
-        switch ( type )
-        {
-        case kptIndex:
-            ns = "idx";
-            break;
-
-        case kptColumn:
-            ns = "col";
-            break;
-
-        default:
-            return false;
-        }
-
-        rc = KDBMakeSubPath ( self -> dir, path, sizeof path, ns, 3, name );
-        if ( rc == 0 )
-        {
-            switch ( KDirectoryPathType ( self -> dir, path ) )
-            {
-            case kptFile | kptAlias:
-            case kptDir | kptAlias:
-                if ( resolved != NULL && rsize != 0 )
-                {
-                    const KDirectory *sub;
-                    rc = KDirectoryOpenDirRead ( self -> dir, & sub, false, ns );
-                    * resolved = 0;
-                    if ( rc != 0 )
-                        PLOGERR ( klogWarn, ( klogWarn, rc, "failed to open subdirectory '$(sub)'", "sub=%s", ns ) );
-                    else
-                    {
-                        rc = KDirectoryResolveAlias ( sub, false, resolved, rsize, name );
-                        KDirectoryRelease ( sub );
-                        if ( rc != 0 )
-                            PLOGERR ( klogWarn, ( klogWarn, rc, "failed to resolve alias '$(alias)'", "alias=%s", name ) );
-                    }
-                }
-                return true;
-            }
-        }
-    }
-
-    if ( resolved != NULL && rsize != 0 )
-        * resolved = 0;
-
-    return false;
-}
-
-
 /* Writable
  *  returns 0 if object is writable
  *  or a reason why if not
@@ -637,30 +542,18 @@ LIB_EXPORT rc_t CC KTableModDate ( const KTable *self, KTime_t *mtime )
 /* List
  *  create table listings
  */
-struct FilterData
-{
-    const KDBManager * mgr;
-    int type;
-};
-
 static
-bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data_ )
+bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data )
 {
-    struct FilterData * data = data_;
-    return ( KDBOpenPathTypeRead ( data->mgr, dir, name, NULL, data->type, NULL, false ) == 0 );
+    return KDBOpenPathTypeRead(dir, name, NULL, (intptr_t)data, NULL) == 0;
 }
 
 LIB_EXPORT rc_t CC KTableListCol ( const KTable *self, KNamelist **names )
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-
-        data.mgr = self->mgr;
-        data.type = kptColumn;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "col", NULL );
+            names, KDatabaseListFilter, ( void* ) kptColumn, "col", NULL );
     }
 
     if ( names != NULL )
diff --git a/libs/kdb/trieidx-v2.c b/libs/kdb/trieidx-v2.c
index c0eeaa4..befe35d 100644
--- a/libs/kdb/trieidx-v2.c
+++ b/libs/kdb/trieidx-v2.c
@@ -808,7 +808,7 @@ rc_t KPTrieIndexFind_v2 ( const KPTrieIndex_v2 *self,
 #if V2FIND_RETURNS_SPAN
     uint32_t *span,
 #endif
-    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data, bool convertFromV1 )
+    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data )
 {
     rc_t rc;
 
@@ -831,7 +831,7 @@ rc_t KPTrieIndexFind_v2 ( const KPTrieIndex_v2 *self,
             size_t usize;
 
             /* detect conversion from v1 */
-            if ( convertFromV1 && self -> id_bits == 0 )
+            if ( self -> id_bits == 0 )
             {
                 /* v1 stored tree will have just a 32-bit spot id as data */
                 uint32_t id;
@@ -843,16 +843,9 @@ rc_t KPTrieIndexFind_v2 ( const KPTrieIndex_v2 *self,
             else
             {
                 /* should be native v2 */
-                if ( self -> id_bits > 0 )
-                {
-                    rc = Unpack ( self -> id_bits, sizeof * start_id * 8,
-                        pnode . data . addr, 0, self -> id_bits, NULL,
-                        start_id, sizeof * start_id, & usize );
-                }
-                else
-                {
-                    rc = 0;
-                }
+                rc = Unpack ( self -> id_bits, sizeof * start_id * 8,
+                    pnode . data . addr, 0, self -> id_bits, NULL,
+                    start_id, sizeof * start_id, & usize );
                 * start_id += self -> first;
             }
 
@@ -988,7 +981,7 @@ rc_t KTrieIndexFind_v2 ( const KTrieIndex_v2 *self,
 #if V2FIND_RETURNS_SPAN
     uint32_t *span,
 #endif
-    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data, bool convertFromV1  )
+    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data )
 {
     /* search within persisted index */
     if ( self -> pt . key2id != NULL )
@@ -997,7 +990,7 @@ rc_t KTrieIndexFind_v2 ( const KTrieIndex_v2 *self,
 #if V2FIND_RETURNS_SPAN
                                     span,
 #endif
-                                    custom_cmp, data, convertFromV1 );
+                                    custom_cmp, data );
     }
 
     return RC ( rcDB, rcIndex, rcSelecting, rcString, rcNotFound );
diff --git a/libs/kdb/trieval-v2.c b/libs/kdb/trieval-v2.c
index e3e095b..6e07d23 100644
--- a/libs/kdb/trieval-v2.c
+++ b/libs/kdb/trieval-v2.c
@@ -38,12 +38,12 @@
 rc_t KTrieIndexCheckConsistency_v2 ( const KTrieIndex_v2 *self,
     int64_t *start_id, uint64_t *id_range, uint64_t *num_keys,
     uint64_t *num_rows, uint64_t *num_holes,
-    struct KIndex const *outer, bool key2id, bool id2key, bool all_ids, bool convertFromV1  )
+    struct KIndex const *outer, bool key2id, bool id2key, bool all_ids )
 {
     if ( self == NULL )
         return RC ( rcDB, rcIndex, rcValidating, rcParam, rcNull );
 
     return KPTrieIndexCheckConsistency_v2 ( & self -> pt,
         start_id, id_range, num_keys, num_rows, num_holes,
-        outer, key2id, id2key, all_ids, convertFromV1 );
+        outer, key2id, id2key, all_ids );
 }
diff --git a/libs/kdb/wcolidx0.c b/libs/kdb/wcolidx0.c
index b16973a..070efc4 100644
--- a/libs/kdb/wcolidx0.c
+++ b/libs/kdb/wcolidx0.c
@@ -198,7 +198,7 @@ rc_t KColumnIdx0Init_v1 ( KColumnIdx0 *self, bool bswap )
         {
             uint32_t count;
 
-            rc = KFileReadAll ( self -> f, self -> eof,
+            rc = KFileRead ( self -> f, self -> eof,
                 buffer, 2048 * sizeof * buffer, & num_read );
             if ( rc != 0 )
                 break;
@@ -247,7 +247,7 @@ rc_t KColumnIdx0Init ( KColumnIdx0 *self, uint32_t total, bool bswap )
             if ( count > 2048 )
                 count = 2048;
 
-            rc = KFileReadAll ( self -> f, i * sizeof * buffer,
+            rc = KFileRead ( self -> f, i * sizeof * buffer,
                 buffer, count * sizeof * buffer, & num_read );
             if ( rc != 0 )
                 break;
diff --git a/libs/kdb/wcolidx1.c b/libs/kdb/wcolidx1.c
index a1f897e..5fedfa7 100644
--- a/libs/kdb/wcolidx1.c
+++ b/libs/kdb/wcolidx1.c
@@ -155,7 +155,7 @@ rc_t KColumnIdx1Init ( KColumnIdx1 *self, uint32_t off, uint32_t count )
                 cnt = 2048;
 
             /* read into buffer an even number of blocks */
-            rc = KFileReadAll ( self -> f, off,
+            rc = KFileRead ( self -> f, off,
                 buffer, cnt * sizeof * buffer, & num_read );
             if ( rc != 0 )
                 break;
@@ -314,7 +314,7 @@ rc_t KColumnIdx1OpenRead ( KColumnIdx1 *self, const KDirectory *dir,
     {
         KColumnHdr hdr;
         size_t num_bytes;
-        rc = KFileReadAll ( self -> f, 0, & hdr, sizeof hdr, & num_bytes );
+        rc = KFileRead ( self -> f, 0, & hdr, sizeof hdr, & num_bytes );
         if ( rc == 0 )
         {
             if ( num_bytes == 0 )
@@ -367,7 +367,7 @@ rc_t KColumnIdx1OpenRead ( KColumnIdx1 *self, const KDirectory *dir,
                         if ( rc == 0 )
                         {
                             off = sizeof hdr . dad;
-                            rc = KFileReadAll ( self -> fidx, 0, & hdr, sizeof hdr, & num_bytes );
+                            rc = KFileRead ( self -> fidx, 0, & hdr, sizeof hdr, & num_bytes );
                             if ( rc == 0 )
                             {
                                 if ( num_bytes < KColumnHdrOffset ( hdr, v2 ) )
@@ -477,7 +477,7 @@ rc_t KColumnIdx1OpenUpdate ( KColumnIdx1 *self, KDirectory *dir,
     {
         KColumnHdr hdr;
         size_t num_bytes;
-        rc = KFileReadAll ( self -> f, 0, & hdr, sizeof hdr, & num_bytes );
+        rc = KFileRead ( self -> f, 0, & hdr, sizeof hdr, & num_bytes );
         if ( rc == 0 )
         {
             /* if file was there, open will pass but if empty should be
@@ -533,7 +533,7 @@ rc_t KColumnIdx1OpenUpdate ( KColumnIdx1 *self, KDirectory *dir,
                         {
                             self -> convert = CONVERT_ON_SAVE_NONE;
                             off = sizeof hdr . dad; /* where to read in idx1 */
-                            rc = KFileReadAll ( self -> fidx, 0, & hdr, sizeof hdr, & num_bytes );
+                            rc = KFileRead ( self -> fidx, 0, & hdr, sizeof hdr, & num_bytes );
                             if ( rc == 0 )
                             {
                                 if ( num_bytes < KColumnHdrOffset ( hdr, v2 ) )
diff --git a/libs/kdb/wcolidx2.c b/libs/kdb/wcolidx2.c
index 563aa44..667cc6b 100644
--- a/libs/kdb/wcolidx2.c
+++ b/libs/kdb/wcolidx2.c
@@ -39,7 +39,7 @@
 #include <string.h>
 #include <assert.h>
 
-#define IDX2_READ_FILE_BUFFER 1024 * 1024
+#define IDX2_READ_FILE_BUFFER 32 * 1024
 
 
 /*--------------------------------------------------------------------------
@@ -135,7 +135,7 @@ rc_t KColumnIdx2LocateBlob ( const KColumnIdx2 *self,
         rc = RC ( rcDB, rcIndex, rcSelecting, rcNoObj, rcUnsupported );
     else
     {
-        uint64_t buffer [ 1024 / 8 ]; /* make sure is uint64_t aligned */
+        char buffer [ 1024 ];
         void *block = buffer;
 
         /* determine the number of entries in block */
@@ -153,7 +153,7 @@ rc_t KColumnIdx2LocateBlob ( const KColumnIdx2 *self,
         else
         {
             size_t num_read;
-            rc = KFileReadAll ( self -> f, bloc -> pg, block, orig, & num_read );
+            rc = KFileRead ( self -> f, bloc -> pg, block, orig, & num_read );
             if ( rc == 0 )
             {
                 if ( num_read != orig )
diff --git a/libs/kdb/wcolumn.c b/libs/kdb/wcolumn.c
index d259b29..eeaae12 100644
--- a/libs/kdb/wcolumn.c
+++ b/libs/kdb/wcolumn.c
@@ -37,7 +37,6 @@
 #include <kfs/md5.h>
 #include <kfs/impl.h>
 #include <klib/checksum.h>
-#include <klib/printf.h>
 #include <klib/log.h>
 #include <sysalloc.h>
 
@@ -555,7 +554,7 @@ rc_t KDBManagerVCreateColumnInt ( KDBManager *self,
     {
         KDirectory *dir;
 
-        switch ( KDBPathType ( /*NULL,*/ wd, NULL, colpath ) )
+        switch ( KDBPathType ( wd, colpath ) )
         {
         case kptNotFound:
             /* first good path */
@@ -615,7 +614,7 @@ rc_t KDBManagerVCreateColumnInt ( KDBManager *self,
 	case kptFile | kptAlias:
 	    /* if we find a file, vary the failure if it is an archive that is a column
 	     * or a non related file */
-	    if ( KDBOpenPathTypeRead ( self, wd, colpath, NULL, kptColumn, NULL, false ) == 0 )
+	    if ( KDBOpenPathTypeRead ( wd, colpath, NULL, kptColumn, NULL ) == 0 )
 		return RC ( rcDB, rcMgr, rcCreating, rcDirectory, rcUnauthorized );
 	    /* fall through */
         default:
@@ -775,14 +774,16 @@ LIB_EXPORT rc_t CC KTableVCreateColumn ( KTable *self, KColumn **colp,
 static
 rc_t KDBManagerVOpenColumnReadInt ( const KDBManager *cself,
     const KColumn **colp, const KDirectory *wd,
-    const char *path, va_list args, bool *cached, bool try_srapath )
+    const char *path, va_list args, bool *cached )
 {
     char colpath [ 4096 ];
     rc_t rc = KDirectoryVResolvePath ( wd, true,
         colpath, sizeof colpath, path, args );
+    if(cached != NULL ) *cached = false;
     if ( rc == 0 )
     {
         KSymbol *sym;
+        const KDirectory *dir;
 
         /* if already open */
         sym = KDBManagerOpenObjectFind (cself, colpath);
@@ -791,8 +792,7 @@ rc_t KDBManagerVOpenColumnReadInt ( const KDBManager *cself,
             const KColumn *ccol;
             rc_t obj;
 
-            if(cached != NULL ) *cached = true;
-
+	    if(cached != NULL ) *cached = true;
             switch (sym->type)
             {
             case kptColumn:
@@ -824,39 +824,32 @@ rc_t KDBManagerVOpenColumnReadInt ( const KDBManager *cself,
                 obj = rcMetadata;
                 break;
             }
-            rc = RC (rcDB, rcMgr, rcOpening, obj, rcBusy);
+            return  RC (rcDB, rcMgr, rcOpening, obj, rcBusy);
         }
-        else
-        {
-            const KDirectory *dir;
 
-            if ( cached != NULL )
-                *cached = false;
+	rc = KDBOpenPathTypeRead ( wd, colpath, &dir, kptColumn, NULL );
+        if ( rc == 0 )
+        { 
+            KColumn *col;
 
-            rc = KDBOpenPathTypeRead ( cself, wd, path, &dir, kptColumn, NULL, try_srapath );
+            rc = KColumnMakeRead ( & col, dir, colpath, NULL );
 
             if ( rc == 0 )
-            { 
-                KColumn *col;
-
-                rc = KColumnMakeRead ( & col, dir, colpath, NULL );
-
+            {
+                rc = KDBManagerInsertColumn ( (KDBManager*)cself, col );
                 if ( rc == 0 )
                 {
-                    rc = KDBManagerInsertColumn ( (KDBManager*)cself, col );
-                    if ( rc == 0 )
-                    {
-                        * colp = col;
-                        return 0;
-                    }
-
-                    KColumnRelease ( col );
+                    * colp = col;
+                    return 0;
                 }
 
-                KDirectoryRelease ( dir );
+                KColumnRelease ( col );
             }
+
+            KDirectoryRelease ( dir );
         }
     }
+    
     return rc;
 }
 
@@ -884,7 +877,7 @@ LIB_EXPORT rc_t CC KDBManagerVOpenColumnRead ( const KDBManager *self,
     if ( self == NULL )
         return RC ( rcDB, rcMgr, rcOpening, rcSelf, rcNull );
 
-    return KDBManagerVOpenColumnReadInt ( self, col, self -> wd, path, args , NULL, true);
+    return KDBManagerVOpenColumnReadInt ( self, col, self -> wd, path, args , NULL);
 }
 
 LIB_EXPORT rc_t CC KTableOpenColumnRead ( const KTable *self,
@@ -920,7 +913,7 @@ LIB_EXPORT rc_t CC KTableVOpenColumnRead ( const KTable *self,
     {
 	bool col_is_cached;
         rc = KDBManagerVOpenColumnReadInt ( self -> mgr,
-            colp, self -> dir, path, NULL, &col_is_cached, false );
+            colp, self -> dir, path, NULL, &col_is_cached );
         if ( rc == 0 )
         {
             KColumn *col = ( KColumn* ) * colp;
@@ -942,16 +935,11 @@ LIB_EXPORT rc_t CC KTableVOpenColumnRead ( const KTable *self,
  */
 static
 rc_t KDBManagerVOpenColumnUpdateInt ( KDBManager *self,
-    KColumn **colp, KDirectory *wd, bool try_srapath,
-    const char *path, va_list args )
+    KColumn **colp, KDirectory *wd, const char *path, va_list args )
 {
     char colpath [ 4096 ];
-    rc_t rc;
-    size_t z;
-
-/*    rc = KDirectoryVResolvePath ( wd, 1,
-        colpath, sizeof colpath, path, args ); */
-    rc = string_vprintf( colpath, sizeof colpath, &z, path, args );
+    rc_t rc = KDirectoryVResolvePath ( wd, true,
+        colpath, sizeof colpath, path, args );
     if ( rc == 0 )
     {
         KSymbol * sym;
@@ -988,7 +976,7 @@ rc_t KDBManagerVOpenColumnUpdateInt ( KDBManager *self,
             return RC ( rcDB, rcMgr, rcOpening, obj, rcBusy );
         }
         /* only open existing dbs */
-        switch (KDBPathType ( /*NULL,*/ wd, NULL, colpath ) )
+        switch (KDBPathType ( wd, colpath ) )
         {
         case kptNotFound:
             return RC ( rcDB, rcMgr, rcOpening, rcColumn, rcNotFound );
@@ -1001,7 +989,7 @@ rc_t KDBManagerVOpenColumnUpdateInt ( KDBManager *self,
 	     * this should be changed to a readonly as it is not possible not 
 	     * disallowed.  rcReadonly not rcUnauthorized
 	     */
-	    if ( KDBOpenPathTypeRead ( self, wd, colpath, NULL, kptColumn, NULL, try_srapath ) == 0 )
+	    if ( KDBOpenPathTypeRead ( wd, colpath, NULL, kptColumn, NULL ) == 0 )
 		return RC ( rcDB, rcMgr, rcOpening, rcDirectory, rcUnauthorized );
 	    /* fall through */
         default:
@@ -1093,7 +1081,7 @@ LIB_EXPORT rc_t CC KDBManagerVOpenColumnUpdate ( KDBManager *self,
         return RC ( rcDB, rcMgr, rcOpening, rcSelf, rcNull );
 
     return KDBManagerVOpenColumnUpdateInt
-        ( self, col, self -> wd, true, path, args );
+        ( self, col, self -> wd, path, args );
 }
 
 LIB_EXPORT rc_t CC KTableOpenColumnUpdate ( KTable *self,
@@ -1131,7 +1119,7 @@ LIB_EXPORT rc_t CC KTableVOpenColumnUpdate ( KTable *self,
     if ( rc == 0 )
     {
         rc = KDBManagerVOpenColumnUpdateInt ( self -> mgr,
-            colp, self -> dir, false, path, NULL );
+            colp, self -> dir, path, NULL );
         if ( rc == 0 )
         {
             KColumn *col = * colp;
@@ -1146,8 +1134,8 @@ bool KTableColumnNeedsReindex ( KTable *self, const char *colname )
     if ( self != NULL )
     {
         char path [ 256 ];
-        rc_t rc = KDBMakeSubPath ( self -> dir,
-            path, sizeof path, "col", 3, colname );
+        rc_t rc = KDBVMakeSubPath ( self -> dir,
+            path, sizeof path, "col", 3, colname, NULL );
         if ( rc == 0 )
         {
             uint64_t idx0_size;
diff --git a/libs/kdb/wdatabase.c b/libs/kdb/wdatabase.c
index 1aa18e8..8b90916 100644
--- a/libs/kdb/wdatabase.c
+++ b/libs/kdb/wdatabase.c
@@ -32,8 +32,6 @@
 #include "wkdb-priv.h"
 #include <klib/namelist.h>
 #include <klib/symbol.h>
-#include <klib/log.h>
-#include <klib/printf.h>
 #include <klib/rc.h>
 #include <kfs/directory.h>
 #include <kfs/file.h>
@@ -52,20 +50,6 @@
  *  connection to a database within file system
  */
 
-/* GetPath
- *  return the absolute path to DB
- */
-LIB_EXPORT rc_t CC KDatabaseGetPath ( struct KDatabase const *self,
-    const char **path )
-{
-    if ( self == NULL )
-        return RC ( rcDB, rcDatabase, rcAccessing, rcSelf, rcNull );
-    if ( path == NULL )
-        return RC ( rcDB, rcDatabase, rcAccessing, rcParam, rcNull );
-    *path = self->path;
-    return 0;
-}
-
 /* Whack
  */
 static
@@ -302,8 +286,7 @@ rc_t KDBManagerVCreateDBInt ( KDBManager *self,
         dbpath, sizeof dbpath, path, args );
     if ( rc == 0 )
     {
-        /* we won't try accession resolution here */
-        int type = KDBPathType ( /*NULL,*/ wd, NULL, dbpath );
+        int type = KDBPathType ( wd, dbpath );
         switch ( type )
         {
         case kptNotFound:
@@ -365,7 +348,7 @@ rc_t KDBManagerVCreateDBInt ( KDBManager *self,
 	case kptFile | kptAlias:
 	    /* if we find a file, vary the failure if it is an archive that is a database
 	     * or a non related file */
-	    if ( KDBOpenPathTypeRead ( self, wd, dbpath, NULL, kptDatabase, NULL, false ) == 0 )
+	    if ( KDBOpenPathTypeRead ( wd, dbpath, NULL, kptDatabase, NULL ) == 0 )
 		return RC ( rcDB, rcMgr, rcCreating, rcDirectory, rcUnauthorized );
 	    /* fall through */
         default:
@@ -507,16 +490,20 @@ LIB_EXPORT rc_t CC KDatabaseVCreateDB ( KDatabase *self,
 static
 rc_t KDBManagerVOpenDBReadInt ( const KDBManager *cself,
     const KDatabase **dbp, KDirectory *wd,
-    const char *path, va_list args, bool *cached, bool try_srapath )
+    const char *path, va_list args, bool *cached )
 {
-    rc_t rc;
-    char dbpath [4096];
-    size_t z;
+    /* generate absolute path to db */
+    char dbpath [ 4096 ];
+    rc_t rc = KDirectoryVResolvePath ( wd, true,
+        dbpath, sizeof dbpath, path, args );
+
+    if ( cached != NULL )
+        * cached = false;
 
-    rc = string_vprintf (dbpath, sizeof dbpath, &z, path, args);
     if ( rc == 0 )
     {
         KSymbol *sym;
+        const KDirectory *dir;
 
         /* if already open */
         sym = KDBManagerOpenObjectFind (cself, dbpath);
@@ -560,42 +547,39 @@ rc_t KDBManagerVOpenDBReadInt ( const KDBManager *cself,
                 obj = rcMetadata;
                 break;
             }
-            rc = RC (rcDB, rcMgr, rcOpening, obj, rcBusy);
+            return  RC (rcDB, rcMgr, rcOpening, obj, rcBusy);
         }
-        else
-        {
-            const KDirectory *dir;
+	rc = KDBOpenPathTypeRead ( wd, dbpath, &dir, kptDatabase, NULL );
 
-            if ( cached != NULL )
-                * cached = false;
+	if ( rc == 0 )
+	{
+            KDatabase *db;
+
+	    rc = KDatabaseMake ( &db, dir, dbpath, NULL, true );
 
-            /* open the directory if its a database */
-            rc = KDBOpenPathTypeRead ( cself, wd, dbpath, &dir, kptDatabase, NULL, try_srapath );
             if ( rc == 0 )
             {
-                KDatabase *db;
+                KDBManager *self = ( KDBManager* ) cself;
 
-                rc = KDatabaseMake ( &db, dir, dbpath, NULL, true );
+                rc = KDBManagerInsertDatabase ( self, db );
                 if ( rc == 0 )
                 {
-                    KDBManager *self = ( KDBManager* ) cself;
-
-                    rc = KDBManagerInsertDatabase ( self, db );
-                    if ( rc == 0 )
-                    {
-                        * dbp = db;
-                        return 0;
-                    }
-                    free (db);
+                    * dbp = db;
+                    return 0;
                 }
-                KDirectoryRelease (dir);
+
+/*                 rc = RC ( rcDB, rcMgr, rcOpening, rcDatabase, rcBusy ); */
+            
+                free ( db );
             }
+
+            KDirectoryRelease ( dir );
         }
     }
+    
     return rc;
 }
 
-
 LIB_EXPORT rc_t CC KDBManagerOpenDBRead ( const KDBManager *self,
     const KDatabase **db, const char *path, ... )
 {
@@ -620,7 +604,7 @@ LIB_EXPORT rc_t CC KDBManagerVOpenDBRead ( const KDBManager *self,
     if ( self == NULL )
         return RC ( rcDB, rcMgr, rcOpening, rcSelf, rcNull );
 
-    return KDBManagerVOpenDBReadInt ( self, db, self -> wd, path, args, NULL, true );
+    return KDBManagerVOpenDBReadInt ( self, db, self -> wd, path, args, NULL );
 }
 
 LIB_EXPORT rc_t CC KDatabaseOpenDBRead ( const KDatabase *self,
@@ -656,7 +640,7 @@ LIB_EXPORT rc_t CC KDatabaseVOpenDBRead ( const KDatabase *self,
     {
         bool is_cached;
         rc = KDBManagerVOpenDBReadInt ( self -> mgr, dbp,
-                                        self -> dir, path, NULL, & is_cached, false );
+            self -> dir, path, NULL, & is_cached );
         if ( rc == 0 && ! is_cached )
         {
             KDatabase *db = ( KDatabase* ) * dbp;
@@ -719,7 +703,7 @@ rc_t KDBManagerVOpenDBUpdateInt ( KDBManager *self,
             return RC ( rcDB, rcMgr, rcOpening, obj, rcBusy );
         }
         /* only open existing dbs */
-        switch (KDBPathType ( /*self,*/ wd, NULL, dbpath ) )
+        switch (KDBPathType ( wd, dbpath ) )
         {
         case kptNotFound:
             return RC ( rcDB, rcMgr, rcOpening, rcDatabase, rcNotFound );
@@ -729,7 +713,7 @@ rc_t KDBManagerVOpenDBUpdateInt ( KDBManager *self,
 	case kptFile | kptAlias:
 	    /* if we find a file, vary the failure if it is an archive that is a database
 	     * or a non related file */
-	    if ( KDBOpenPathTypeRead ( self, wd, dbpath, NULL, kptDatabase, NULL, false ) == 0 )
+	    if ( KDBOpenPathTypeRead ( wd, dbpath, NULL, kptDatabase, NULL ) == 0 )
 		return RC ( rcDB, rcMgr, rcOpening, rcDirectory, rcUnauthorized );
 	    /* fall through */
         default:
@@ -872,53 +856,13 @@ LIB_EXPORT bool CC KDatabaseLocked ( const KDatabase *self )
  *  returns true if requested object exists
  *
  *  "type" [ IN ] - a KDBPathType
- *  valid values are kptTable
+ *  valid values are kptIndex and kptColumn
  *
  *  "path" [ IN ] - NUL terminated path
  */
 LIB_EXPORT bool CC KDatabaseVExists ( const KDatabase *self, uint32_t type, const char *name, va_list args )
 {
-    if ( self != NULL && name != NULL && name [ 0 ] != 0 )
-    {
-        rc_t rc;
-        size_t len;
-        const char *ns;
-        char path [ 256 ];
-
-        switch ( type )
-        {
-        case kptDatabase:
-            ns = "db";
-            len = 2;
-            break;
-
-        case kptTable:
-            ns = "tbl";
-            len = 3;
-            break;
-
-        case kptIndex:
-            ns = "idx";
-            len = 3;
-            break;
-
-        default:
-            return false;
-        }
-
-        rc = KDBVMakeSubPath ( self -> dir, path, sizeof path, ns, len, name, args );
-        if ( rc == 0 )
-        {
-            switch ( KDirectoryPathType ( self -> dir, path ) )
-            {
-            case kptFile:
-            case kptDir:
-            case kptFile | kptAlias:
-            case kptDir | kptAlias:
-                return true;
-            }
-        }
-    }
+    /* TBD */
     return false;
 }
 
@@ -937,83 +881,6 @@ LIB_EXPORT bool CC KDatabaseExists ( const KDatabase *self, uint32_t type, const
 }
 
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptDatabase, kptTable and kptIndex
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-LIB_EXPORT bool CC KDatabaseIsAlias ( const KDatabase *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name )
-{
-    if ( self != NULL && name != NULL && name [ 0 ] != 0 )
-    {
-        rc_t rc;
-        size_t len;
-        const char *ns;
-        char path [ 256 ];
-
-        switch ( type )
-        {
-        case kptDatabase:
-            ns = "db";
-            len = 2;
-            break;
-
-        case kptTable:
-            ns = "tbl";
-            len = 3;
-            break;
-
-        case kptIndex:
-            ns = "idx";
-            len = 3;
-            break;
-
-        default:
-            return false;
-        }
-
-        rc = KDBMakeSubPath ( self -> dir, path, sizeof path, ns, len, name );
-        if ( rc == 0 )
-        {
-            switch ( KDirectoryPathType ( self -> dir, path ) )
-            {
-            case kptFile | kptAlias:
-            case kptDir | kptAlias:
-                if ( resolved != NULL && rsize != 0 )
-                {
-                    const KDirectory *sub;
-                    rc = KDirectoryOpenDirRead ( self -> dir, & sub, false, ns );
-                    * resolved = 0;
-                    if ( rc != 0 )
-                        PLOGERR ( klogWarn, ( klogWarn, rc, "failed to open subdirectory '$(sub)'", "sub=%s", ns ) );
-                    else
-                    {
-                        rc = KDirectoryResolveAlias ( sub, false, resolved, rsize, name );
-                        KDirectoryRelease ( sub );
-                        if ( rc != 0 )
-                            PLOGERR ( klogWarn, ( klogWarn, rc, "failed to resolve alias '$(alias)'", "alias=%s", name ) );
-                    }
-                }
-                return true;
-            }
-        }
-    }
-
-    if ( resolved != NULL && rsize != 0 )
-        * resolved = 0;
-
-    return false;
-}
-
-
 /* Writable
  *  returns 0 if object is writable
  *  or a reason why if not
@@ -1436,29 +1303,19 @@ LIB_EXPORT rc_t CC KDatabaseModDate ( const KDatabase *self, KTime_t *mtime )
 /* List
  *  create database listings
  */
-struct FilterData
-{
-    const KDBManager * mgr;
-    int type;
-};
-
 static
-bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data_ )
+bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data )
 {
-    struct FilterData * data = data_;
-    return ( KDBOpenPathTypeRead ( data->mgr, dir, name, NULL, data->type, NULL, false ) == 0 );
+    /* contains a pointer truncation from void* to long !!! on 64-bit-systems */
+    return ( KDBOpenPathTypeRead ( dir, name, NULL, ( long int ) data, NULL ) == 0 );
 }
 
 LIB_EXPORT rc_t CC KDatabaseListDB ( const KDatabase *self, KNamelist **names )
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-        data.mgr = self->mgr;
-        data.type = kptDatabase;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "db", NULL );
+            names, KDatabaseListFilter, ( void* ) kptDatabase, "db", NULL );
     }
 
     if ( names != NULL )
@@ -1471,12 +1328,8 @@ LIB_EXPORT rc_t CC KDatabaseListTbl ( struct KDatabase const *self, KNamelist **
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-        data.mgr = self->mgr;
-        data.type = kptTable;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "tbl", NULL );
+            names, KDatabaseListFilter, ( void* ) kptTable, "tbl", NULL );
     }
 
     if ( names != NULL )
@@ -1489,12 +1342,8 @@ LIB_EXPORT rc_t CC KDatabaseListIdx ( struct KDatabase const *self, KNamelist **
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-        data.mgr = self->mgr;
-        data.type = kptIndex;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "idx", NULL );
+            names, KDatabaseListFilter, ( void* ) kptIndex, "idx", NULL );
     }
 
     if ( names != NULL )
diff --git a/libs/kdb/wdbmgr.c b/libs/kdb/wdbmgr.c
index 7a5e70b..0896b48 100644
--- a/libs/kdb/wdbmgr.c
+++ b/libs/kdb/wdbmgr.c
@@ -69,15 +69,13 @@ LIB_EXPORT rc_t CC KDBManagerMakeUpdate ( KDBManager **mgrp, KDirectory *wd )
  *  or a reason why if not
  *
  *  "path" [ IN ] - NUL terminated path
- *
- * TBD: Better reasons for non local paths
  */
 static
 rc_t KDBManagerWritableInt ( const KDirectory * dir, const char * path )
 {
     rc_t rc;
 
-    int type = KDBPathType ( /*NULL,*/ dir, NULL, path ) & ~ kptAlias;
+    int type = KDBPathType ( dir, path ) & ~ kptAlias;
     switch ( type )
     {
     case kptDatabase:
@@ -323,12 +321,13 @@ LIB_EXPORT rc_t CC KDBManagerRunPeriodicTasks ( const KDBManager *self )
 
 LIB_EXPORT int CC KDBManagerVPathType ( const KDBManager * self, const char *path, va_list args )
 {
-    if ( self != NULL )
+    rc_t rc;
+    char     full [ 8192 ];
+
+    rc = KDirectoryVResolvePath ( self->wd, false, full, sizeof full, path, args );
+    if (rc == 0)
     {
-        char full [ 4096 ];
-        rc_t rc = KDirectoryVResolvePath ( self -> wd, false, full, sizeof full, path, args );
-        if ( rc == 0 )
-            return KDBPathType ( /*self,*/ self -> wd, NULL, full );
+        return KDBPathType ( self->wd, full );
     }
     return kptBadPath;
 }
diff --git a/libs/kdb/windex.c b/libs/kdb/windex.c
index 7a3b317..ee75eee 100644
--- a/libs/kdb/windex.c
+++ b/libs/kdb/windex.c
@@ -71,7 +71,6 @@ struct KIndex
         KTrieIndex_v2 txt2;
         KU64Index_v3  u64_3;
     } u;
-    bool converted_from_v1;
     uint8_t type;
     uint8_t read_only;
     uint8_t dirty;
@@ -130,7 +129,7 @@ rc_t KIndexWhack ( KIndex *self )
             {
                 self -> mgr = NULL;
 
-                rc = SILENT_RC ( rcDB, rcIndex, rcDestroying, rcIndex, rcBadVersion );
+                rc = RC ( rcDB, rcIndex, rcDestroying, rcIndex, rcBadVersion );
 
                 /* complete */
                 switch ( self -> type )
@@ -271,9 +270,6 @@ rc_t KIndexAttach ( KIndex *self, const KMMap *mm, bool *byteswap )
                 switch ( hdr -> version )
                 {
                 case 1:
-#if KDBINDEXVERS != 1
-                    self -> converted_from_v1 = true;
-#endif
                 case 2:
                     self -> type = kitText;
                     break;
@@ -677,7 +673,7 @@ rc_t KDBManagerCreateIndexInt ( KDBManager *self, KIndex **idxp,
     if ( rc == 0 )
     {
         KIndex *idx;
-        switch ( ptype = KDBPathType ( wd, NULL, idxpath ) )
+        switch ( ptype = KDBPathType ( wd, idxpath ) )
         {
         case kptNotFound:
             /* first good path */
@@ -1508,10 +1504,10 @@ LIB_EXPORT rc_t CC KIndexFindText ( const KIndex *self, const char *key, int64_t
         case 3:
         case 4:
 #if V2FIND_RETURNS_SPAN
-            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, start_id, & span, custom_cmp, data, self -> converted_from_v1 );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, start_id, & span, custom_cmp, data );
 #else
             ( void ) ( span = 0 );
-            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, start_id, custom_cmp, data, self -> converted_from_v1  );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, start_id, custom_cmp, data );
 #endif
             break;
         default:
@@ -1565,9 +1561,9 @@ LIB_EXPORT rc_t CC KIndexFindAllText ( const KIndex *self, const char *key,
         case 3:
         case 4:
 #if V2FIND_RETURNS_SPAN
-            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, & id64, & span, NULL, NULL, self -> converted_from_v1 );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, & id64, & span, NULL, NULL );
 #else
-            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, & id64, NULL, NULL, self -> converted_from_v1 );
+            rc = KTrieIndexFind_v2 ( & self -> u . txt2, key, & id64, NULL, NULL );
 #endif
             if ( rc == 0 )
                 rc = ( * f ) ( id64, span, data );
diff --git a/libs/kdb/wkdb-priv.h b/libs/kdb/wkdb-priv.h
index 5f18aba..b30d696 100644
--- a/libs/kdb/wkdb-priv.h
+++ b/libs/kdb/wkdb-priv.h
@@ -39,22 +39,23 @@
 extern "C" {
 #endif
 
-/*
- * This symbol is inserted where the KDB is being tweaked to allow
- * VFS URI syntax in opening KDB database objects initially to support
- * krypto passwords more fully.  By specifying the password source
- * individually for opens two KDB objects with different passwords can be opened.
- */
-#define SUPPORT_VFS_URI 1
-
 
 /*--------------------------------------------------------------------------
  * forwards
  */
 struct BSTree;
 struct BSTNode;
-struct KDirectory;
-struct KDBManager;
+
+
+/*--------------------------------------------------------------------------
+ * KDBPathType
+ */
+enum
+{
+    kptMetadata = kptColumn + 1,
+    kptPrereleaseTbl
+};
+
 
 /*--------------------------------------------------------------------------
  * KDB utility
@@ -63,11 +64,8 @@ struct KDBManager;
 
 /* PathType
  *  checks type of path
- *
- * if mgr != NULL we will try accession and uri resolution on path
  */
-int KDBPathTypeDir ( const struct KDirectory *dir, int type,bool *zombies, const char *path );
-int KDBPathType ( const struct KDirectory *dir, bool *zombies, const char *path );
+int KDBPathType ( const KDirectory *dir, const char *path );
 
 /* OpenPathType
  * Opens a path if it is of the specified type.  Even if it is an archive file
@@ -83,37 +81,37 @@ int KDBPathType ( const struct KDirectory *dir, bool *zombies, const char *path
  * archive that is of the requested type.  An archive will have been opened
  * but reshut if dpdir is NULL.
  */ 
-rc_t KDBOpenPathTypeRead ( const struct KDBManager * mgr, const struct KDirectory * dir, const char * path, 
-    const struct KDirectory ** dpdir, int pathtype, int * realpathtype, bool try_srapath );
+rc_t KDBOpenPathTypeRead ( const KDirectory * dir, const char * path, 
+    const KDirectory ** dpdir, int pathtype, int * realpathtype );
 
 /* Writable
  *  examines a directory structure for any "lock" files
  *  examines a file for ( any ) write permission
  */
-bool KDBIsLocked ( const struct KDirectory *dir, const char *path );
-rc_t KDBWritable ( const struct KDirectory *dir, const char *path );
+bool KDBIsLocked ( const KDirectory *dir, const char *path );
+rc_t KDBWritable ( const KDirectory *dir, const char *path );
 
 /* Lock
  *  performs directory locking
  */
-rc_t KDBLockDir ( struct KDirectory *dir, const char *path );
-rc_t KDBLockFile ( struct KDirectory *dir, const char *path );
+rc_t KDBLockDir ( KDirectory *dir, const char *path );
+rc_t KDBLockFile ( KDirectory *dir, const char *path );
 
 /* Unlock
  *  performs directory unlocking
  */
-rc_t KDBUnlockDir ( struct KDirectory *dir, const char *path );
-rc_t KDBUnlockFile ( struct KDirectory *dir, const char *path );
+rc_t KDBUnlockDir ( KDirectory *dir, const char *path );
+rc_t KDBUnlockFile ( KDirectory *dir, const char *path );
 
 /* GetObjModDate
  *  extract mod date from a path
  */
-rc_t KDBGetObjModDate ( const struct KDirectory *dir, KTime_t *mtime );
+rc_t KDBGetObjModDate ( const KDirectory *dir, KTime_t *mtime );
 
 /* GetPathModDate
  *  extract mod date from a path
  */
-rc_t KDBVGetPathModDate ( const struct KDirectory *dir,
+rc_t KDBVGetPathModDate ( const KDirectory *dir,
     KTime_t *mtime, const char *path, va_list args );
 
 /* GetNamespaceString
@@ -122,34 +120,28 @@ rc_t KDBVGetPathModDate ( const struct KDirectory *dir,
  */
 const char * KDBGetNamespaceString ( int namespace );
 
-/* KDBMakeSubPath
- *  adds a namespace to path spec
- */
-rc_t KDBMakeSubPath ( struct KDirectory const *dir,
-    char *subpath, size_t subpath_max, const char *ns,
-    uint32_t ns_size, const char *path, ... );
 /* VMakeSubPath
  *  adds a namespace to path spec
  */
-rc_t KDBVMakeSubPath ( const struct KDirectory *dir,
+rc_t KDBVMakeSubPath ( const KDirectory *dir,
     char *subpath, size_t subpath_max, const char *ns,
     uint32_t ns_size, const char *path, va_list args );
 
 /* VDrop
  */
-rc_t KDBMgrVDrop ( struct KDirectory * dir, const struct KDBManager * mgr, uint32_t obj_type,
+rc_t KDBMgrVDrop ( KDirectory * dir, const KDBManager * mgr, uint32_t obj_type,
                    const char * path, va_list args );
-rc_t KDBVDrop ( struct KDirectory *dir, const struct KDBManager * mgr,
+rc_t KDBVDrop ( KDirectory *dir, const KDBManager * mgr,
     uint32_t type, const char *name, va_list args );
 
 /* Rename
  */
-rc_t KDBRename ( struct KDirectory *dir, struct KDBManager *mgr,
+rc_t KDBRename ( KDirectory *dir, KDBManager *mgr,
                  uint32_t type, bool force, const char *from, const char *to );
 
 /* Alias
  */
-rc_t KDBAlias ( struct KDirectory *dir, uint32_t type,
+rc_t KDBAlias ( KDirectory *dir, uint32_t type,
     const char *targ, const char *alias );
 
 
diff --git a/libs/kdb/wkdb.c b/libs/kdb/wkdb.c
index cafad55..102658b 100644
--- a/libs/kdb/wkdb.c
+++ b/libs/kdb/wkdb.c
@@ -30,16 +30,6 @@
 #include "kdbfmt-priv.h"
 #include "dbmgr-priv.h"
 
-#include <krypto/key.h>
-#include <krypto/encfile.h>
-#include <krypto/wgaencrypt.h>
-
-#include <vfs/manager.h>
-#include <vfs/path.h>
-#include <vfs/resolver.h>
-#include <vfs/manager-priv.h>
-#include <sra/srapath.h>
-
 #include <kfs/kfs-priv.h>
 #include <kfs/directory.h>
 #include <kfs/file.h>
@@ -56,16 +46,12 @@
 
 #include <limits.h>
 #include <stdlib.h>
-#include <stdio.h>
 #include <stdarg.h>
 #include <string.h>
 #include <ctype.h>
 #include <assert.h>
 #include <errno.h>
 
-#ifndef SUPPORT_VFS_URI
-#define SUPPORT_VFS_URI 0
-#endif
 
 /*--------------------------------------------------------------------------
  * (W)KDB utility
@@ -116,14 +102,13 @@ enum ScanBits
     scan_ofile  = ( 1 << 12 ),
     scan_meta   = ( 1 << 13 ),
     scan_skey   = ( 1 << 14 ),
-    scan_sealed = ( 1 << 15 ),
-    scan_zombie = ( 1 << 16 )
+    scan_sealed = ( 1 << 15 )
 };
 
 static
 rc_t CC scan_dbdir ( const KDirectory *dir, uint32_t type, const char *name, void *data )
 {
-    uint32_t *bits = data;
+    int *bits = data;
 
     type &= kptAlias - 1;
 
@@ -201,11 +186,7 @@ rc_t CC scan_dbdir ( const KDirectory *dir, uint32_t type, const char *name, voi
 
         * bits |= scan_ofile;
     }
-    else if (type == kptZombieFile )
-    {
-        * bits |= scan_zombie;
-    }
-    
+
     return 0;
 }
 
@@ -230,119 +211,95 @@ const char *KDBGetNamespaceString ( int namespace )
     }
 }
 
-
-int KDBPathTypeDir (const KDirectory * dir, int type, bool * pHasZombies, const char * path)
+int KDBPathType ( const KDirectory *dir, const char *path )
 {
-    const char * leaf, * parent;
-    uint32_t bits;
-    rc_t rc;
-
-    bits = 0;
-
-    assert ((type == kptDir) || (type == (kptDir|kptAlias)));
+    const char *leaf, *parent;
 
-    rc = KDirectoryVVisit ( dir, false, scan_dbdir, & bits, path, NULL );
-    if ( rc == 0 ) do
+    rc_t rc;
+    int bits;
+    int type = KDirectoryVPathType ( dir, path, NULL );
+    switch ( type )
     {
-        if ( ( bits & scan_zombie ) != 0 ) {
-            bits &= ~scan_zombie;
-            if (pHasZombies)
-                *pHasZombies = true;
-        }
-        /* look for a column */
-        if ( ( bits & scan_idxN ) != 0 &&
-             ( bits & ( scan_data | scan_dataN ) ) != 0 )
-        {
-            if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
-                type += kptColumn - kptDir;
-            break;
-        }
-
-        /* look for a table */
-        if ( ( bits & scan_col ) != 0 )
+    case kptDir:
+    case kptDir | kptAlias:
+        bits = 0;
+        rc = KDirectoryVVisit ( dir, false, scan_dbdir, & bits, path, NULL );
+        if ( rc == 0 )
         {
-            /* can't have sub-tables or a db */
-            if ( ( bits & ( scan_db | scan_tbl ) ) == 0 )
+            /* look for a column */
+            if ( ( bits & scan_idxN ) != 0 &&
+                 ( bits & ( scan_data | scan_dataN ) ) != 0 )
             {
-                /* look for an old-structure table */
-                if ( ( bits & ( scan_meta | scan_md ) ) == scan_meta ||
-                     ( bits & ( scan_skey | scan_idx ) ) == scan_skey )
-                    type += kptPrereleaseTbl - kptDir;
-                else
-                    type += kptTable - kptDir;
+                if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
+                    type += kptColumn - kptDir;
+                break;
             }
-            break;
-        }
 
-        /* look for metadata */
-        if ( ( bits & ( scan_cur | scan_rNNN ) ) != 0 )
-        {
-            if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
-                type += kptMetadata - kptDir;
-            break;
-        }
+            /* look for a table */
+            if ( ( bits & scan_col ) != 0 )
+            {
+                /* can't have sub-tables or a db */
+                if ( ( bits & ( scan_db | scan_tbl ) ) == 0 )
+                {
+                    /* look for an old-structure table */
+                    if ( ( bits & ( scan_meta | scan_md ) ) == scan_meta ||
+                         ( bits & ( scan_skey | scan_idx ) ) == scan_skey )
+                        type += kptPrereleaseTbl - kptDir;
+                    else
+                        type += kptTable - kptDir;
+                }
+                break;
+            }
 
-        /* look for a database */
-        if ( ( bits & scan_tbl ) != 0 )
-        {
-            if ( ( bits & scan_col ) == 0 )
-                type += kptDatabase - kptDir;
-            break;
-        }
+            /* look for metadata */
+            if ( ( bits & ( scan_cur | scan_rNNN ) ) != 0 )
+            {
+                if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
+                    type += kptMetadata - kptDir;
+                break;
+            }
 
-        /* look for a structured column */
-        if ( ( bits & scan_odir ) != 0 )
-        {
-            leaf = strrchr ( path, '/' );
-            if ( leaf != NULL )
+            /* look for a database */
+            if ( ( bits & scan_tbl ) != 0 )
             {
-                parent = string_rchr ( path, leaf - path, '/' );
-                if ( parent ++ == NULL )
-                    parent = path;
-                if ( memcmp ( parent, "col/", 4 ) != 0 )
-                    break;
+                if ( ( bits & scan_col ) == 0 )
+                    type += kptDatabase - kptDir;
+                break;
+            }
 
-                bits = 0;
-                if ( KDirectoryVVisit ( dir, 1, scan_dbdir, & bits, path, NULL ) == 0 )
+            /* look for a structured column */
+            if ( ( bits & scan_odir ) != 0 )
+            {
+                leaf = strrchr ( path, '/' );
+                if ( leaf != NULL )
                 {
-                    if ( ( bits & scan_idxN ) != 0 &&
-                         ( bits & ( scan_data | scan_dataN ) ) != 0 )
-                    {
-                        if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
-                            type += kptColumn - kptDir;
+                    parent = string_rchr ( path, leaf - path, '/' );
+                    if ( parent ++ == NULL )
+                        parent = path;
+                    if ( memcmp ( parent, "col/", 4 ) != 0 )
                         break;
+
+                    bits = 0;
+                    if ( KDirectoryVVisit ( dir, 1, scan_dbdir, & bits, path, NULL ) == 0 )
+                    {
+                        if ( ( bits & scan_idxN ) != 0 &&
+                             ( bits & ( scan_data | scan_dataN ) ) != 0 )
+                        {
+                            if ( ( bits & ( scan_db | scan_tbl | scan_idx | scan_col ) ) == 0 )
+                                type += kptColumn - kptDir;
+                            break;
+                        }
                     }
                 }
             }
         }
-    } while (0);
-
-    return type;
-}
-
-
-int KDBPathType ( const KDirectory *dir, bool *pHasZombies, const char *path )
-{
-    const char *leaf, *parent;
-
-
-    rc_t rc;
-    int type = KDirectoryVPathType ( dir, path, NULL );
-    
-    if (pHasZombies)
-        *pHasZombies = false;
-
-    switch ( type )
-    {
-    case kptDir:
-    case kptDir | kptAlias:
-        type = KDBPathTypeDir (dir, type, pHasZombies, path);
         break;
 
     case kptFile:
     case kptFile | kptAlias:
     {
         /* if we hit a file first try it as an archive */
+        rc_t rc;
         const KDirectory * ldir;
 
         rc = KDirectoryOpenSraArchiveRead_silent ( dir, &ldir, false, path );
@@ -354,7 +311,7 @@ int KDBPathType ( const KDirectory *dir, bool *pHasZombies, const char *path )
             /* recheck this newly opened directory for KDB/KFS type */
             int type2;
 
-            type2 = KDBPathType ( ldir, NULL, "." );
+            type2 = KDBPathType ( ldir, "." );
             if ((type2 != kptDir) || (type != (kptDir|kptAlias)))
                 type = type2;
 
@@ -376,341 +333,111 @@ int KDBPathType ( const KDirectory *dir, bool *pHasZombies, const char *path )
         break;
     }
     }
+
     return type;
 }
 
 
-
-#if SUPPORT_VFS_URI
-#else
-/* return configured password as ASCIZ
- * opertates on vfs/kfs/kfg objects, not kdb objects */
-static
-rc_t KDBOpenFileGetPassword (char * pw, size_t pwz)
+rc_t KDBOpenPathTypeRead ( const KDirectory * dir, const char * path, 
+    const KDirectory ** pdir, int pathtype, int * ppathtype )
 {
-    VFSManager * mgr;
-    rc_t rc;
+    rc_t rc = 0;
+    uint32_t dtype;
+    int type;
+    const KDirectory * ldir;
 
-    assert (pw);
-    assert (pwz);
+    /* set local directory pointer to error state NULL */
+    ldir = NULL;
+    rc = 0;
 
-    pw[0] = '\0';
+    type = dtype = KDirectoryPathType (dir, path);
 
-    rc = VFSManagerMake (&mgr);
-    if (rc)
-        ;                      /* failure to make VFS manager: pass along rc */
-    else
+    switch (dtype)
     {
-        size_t pwfz;
-        char pwf [4096 + 1];
-
-        rc = VFSManagerGetConfigPWFile (mgr, pwf, sizeof (pwf) - 1, &pwfz);
-        if (rc)
-            /* failure to get password file path: tweak rc */
-            rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcNotFound);
+    case kptDir:
+    case kptDir | kptAlias:
+        type = KDBPathType ( dir, path );
 
-        else
+        if (( type == pathtype ) || (type == (pathtype|kptAlias)))
         {
-            VPath * pwp;
-
-            pwf [pwfz] = '\0'; /* force to ASCIZ */
-
-            rc = VPathMakeSysPath (&pwp, pwf);
-
-            if (rc)
-                ;       /* failure to construct a path from the string */
-            
-            else
+            rc = KDirectoryVOpenDirUpdate ( ( KDirectory * ) dir, ( KDirectory ** ) & ldir, false, path, NULL );
+            if ( rc != 0)
             {
-                const KFile * pwf;
-          
-                rc = VFSManagerOpenFileRead (mgr, &pwf, pwp);
-                if (rc)
-                    /* failure to open password file */
-                    rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcNotOpen);
-
-                else
-                {
-                    size_t z;
-                    char pwb [4098]; /* arbitrarily using 4096 as maximum
-                                        allowed length */
-
-                    /* at this point we are only getting the password from a 
-                     * file but in the future if we can get it from a pipe of
-                     * some sort we can't count on the ReadAll to really know
-                     * if we hit end of file and not just a pause in the
-                     * streaming.  VFS/KFS 2 will have to fix this somehow
-                     */
-
-                    rc = KFileReadAll (pwf, 0, pwb, sizeof pwb, &z);
-                    if (rc)
-                        ;       /* failure to read password file: pass along rc */
-                    else
-                    {
-                        /* trim off EOL if present */
-                        char * pc;
-
-                        pwb[z] = '\0';   /* force ASCIZ */
-
-                        pc = string_chr (pwb, z, '\r');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = 1 + pc - pwb;
-                        }
-                        pc = string_chr (pwb, z, '\n');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = 1 + pc - pwb;
-                        }
-                        if (z == 0)
-                            rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcTooShort);
-
-                        else if (pwz < z) /* pwz came in as 4096 */
-                            rc = RC (rcDB, rcMgr, rcOpening, rcEncryptionKey, rcTooLong);
-
-                        else
-                        {
-                            memmove (pw, pwb, z+1);
-                        }
-                    }
-                    KFileRelease (pwf);
-                }
-                VPathRelease (pwp);
+                rc = KDirectoryVOpenDirRead ( dir, &ldir, false, path, NULL );
             }
         }
-        VFSManagerRelease (mgr);
-    }
-    return rc;
-}
-
-
-/* not KDB specific - just uses vfs/krypto/kfs objects */
-static
-rc_t KDBOpenFileAsDirectory (const KDirectory * dir,
-                             const char * path, 
-                             const KDirectory ** pdir,
-                             uint32_t rcobj)
-{
-    const KFile * file;
-    const KFile * f;
-    const KDirectory * ldir;
-    bool encrypted = false;
-
-    rc_t rc;
-
-    *pdir = NULL;
+        break;
 
-    rc = KDirectoryOpenFileRead (dir, &file, path);
-    if (rc == 0)
-    {
-        rc = KFileRandomAccess(file);
-        if (rc)
-            rc = RC (rcDB, rcMgr, rcOpening, rcobj, rcUnsupported);
-        else
+    case kptFile:
+    case kptFile | kptAlias:
+        rc = KDirectoryOpenSraArchiveRead_silent ( dir, &ldir, false, path );
+        if ( rc != 0 )
+            rc = KDirectoryOpenTarArchiveRead_silent ( dir, &ldir, false, path );
+        if ( rc == 0 )
         {
-            size_t tz;
-            char tbuff [4096];
-            char pbuff [4096 + 1];
+            /* recheck this newly opened directory for KDB/KFS type */
+            type = KDBPathType ( ldir, "." );
 
-            rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-            if (rc == 0)
+            /* it its not the KDB type we wanted fail */
+            if (( type != pathtype ) && (type != (pathtype | kptAlias )))
             {
-                if (KFileIsEnc (tbuff, tz) == 0)
-                {
-                    encrypted = true;
-
-                    rc = KDBOpenFileGetPassword (pbuff, sizeof (pbuff) - 1);
-                    if (rc == 0)
-                    {
-                        KKey key;
-
-                        rc = KKeyInitRead (&key, kkeyAES128, pbuff, string_size (pbuff));
-                        if (rc == 0)
-                        {
-                            rc = KEncFileMakeRead (&f, file, &key);
-                            if (rc == 0)
-                            {
-                                /* KEncFileMakeRead adds a reference */
-                                KFileRelease (file);
-                                file = f;
-                                rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-                            }
-                        }
-                    }
-                }
-                else if (KFileIsWGAEnc (tbuff, tz) == 0)
-                {
-                    encrypted = true;
-
-                    rc = KDBOpenFileGetPassword (pbuff, sizeof (pbuff) - 1);
-                    if (rc == 0)
-                    {
-                        rc = KFileMakeWGAEncRead (&f, file, pbuff, string_size (pbuff));
-                        if (rc == 0)
-                        {
-                            /* KFileMakeWGAEncRead adds a reference */
-                            KFileRelease (file);
-                            file = f;
-                            rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-                        }
-                    }
-                }
-                /* else not a handled encryption or unencrypted: we can't distinguish too much */
-
-                if (rc == 0)
-                {
-                    if (KFileIsSRA (tbuff, tz) == 0)
-                    {
-                        rc = KDirectoryOpenSraArchiveReadUnbounded_silent_preopened (dir,
-                                                                                     &ldir,
-                                                                                     false,
-                                                                                     file,
-                                                                                     path);
-                    }
-                    else
-                    {
-                        rc = KDirectoryOpenTarArchiveRead_silent_preopened (dir, &ldir, false,
-                                                                            file, path);
-                        if (rc == 0)
-                            KFileRelease (file);
-                    }
-
-                    /* not an archive type we handle or a bad archive */
-                    if (rc)
-                    {
-                        if (encrypted)
-                            rc = RC ( rcDB, rcMgr, rcOpening, rcEncryptionKey, rcIncorrect );
-                        else
-                            rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
-                    }
-                    else
-                    {
-                        /*
-                         * release our ownership of the KFile that but archive will 
-                         * keep theirs
-                         */
-                        KFileRelease (file);
-                        *pdir = ldir;
-                        return 0;
-                    }
-                }
+                KDirectoryRelease (ldir);
+                ldir = NULL;
+                rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
             }
         }
-        KFileRelease (file);
+        else if ( rc != 0 )
+        {
+            rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
+        }
+        break;
     }
-    return rc;
-}
-#endif
-
 
-static rc_t KDBOpenPathTypeReadInt ( const KDBManager * mgr, const KDirectory * dir, const char * path,
-                                     const KDirectory ** pdir, int * type,
-                                     int pathtype, uint32_t rcobj, bool try_srapath )
-{
-    VFSManager * vmgr = mgr->vfsmgr;
-    const KDirectory * ldir = NULL;
-    rc_t rc = 0;
-
-    /* object relative opens can be done using KFS - we hacked in VFS after all */
-    if (! try_srapath)
-    {
-        rc = KDirectoryOpenDirUpdate ((KDirectory*)dir, (KDirectory**)pdir, false, path);
-        if ((rc) && (GetRCState(rc) != rcNotFound))
-            rc = KDirectoryOpenDirRead (dir, pdir, false, path);
-    }
-    else
+    if (( rc != 0 ) || (( type != pathtype ) && (type != (pathtype|kptAlias))))
     {
-        VPath * vpath;
-
-        /*
-         * We've got to decide if the path coming in is a full or relative
-         * path and if relative make it relative to dir or possibly its a srapath
-         * accession
-         *
-         */
-        rc = VPathMakeDirectoryRelative ( &vpath, dir, path, NULL );
-        if ( rc == 0 )
+        /* tune the error message based on path type */
+        uint32_t obj;
+        switch ( pathtype )
         {
-            rc = VFSManagerOpenDirectoryReadDirectoryRelativeDecrypt ( vmgr, dir, &ldir, vpath );
-
-            if ( rc == 0 )
-            {
-                *type = (~kptAlias) & KDBPathType ( ldir, NULL, "." );
-
-                /* just a directory, not a kdb type */
-                if ( *type == kptDir )
-                    rc = RC (rcDB, rcMgr, rcOpening, rcPath, rcIncorrect);
-
-                else if ( *type != pathtype )
-                {
-                    KDirectoryRelease( ldir );
-                    rc = RC ( rcDB, rcMgr, rcOpening, rcobj, rcIncorrect );
-                }
-                else
-                {
-                    if ( pdir != NULL )
-                        *pdir = ldir;
-                    else
-                        KDirectoryRelease( ldir );
-                }
-            }
-            VPathRelease ( vpath );
+        default:
+            obj = rcType;
+            break;
+        case kptTable:
+        case kptTable | kptAlias:
+        case kptPrereleaseTbl:
+        case kptPrereleaseTbl | kptAlias:
+            obj = rcTable;
+            break;
+        case kptColumn:
+        case kptColumn | kptAlias:
+            obj = rcColumn;
+            break;
+        case kptDatabase:
+        case kptDatabase | kptAlias:
+            obj = rcDatabase;
+            break;
+        }
+        switch ( type )
+        {
+        case kptNotFound:
+            rc =  RC ( rcDB, rcMgr, rcOpening, obj, rcNotFound );
+            break;
+        case kptBadPath:
+            rc =  RC ( rcDB, rcMgr, rcOpening, rcPath, rcInvalid );
+            break;
+        default:
+            rc = RC ( rcDB, rcMgr, rcOpening, rcPath, rcIncorrect );
+            break;
         }
     }
-    return rc;
-}
-
-rc_t KDBOpenPathTypeRead ( const KDBManager * mgr, const KDirectory * dir, const char * path, 
-    const KDirectory ** pdir, int pathtype, int * ppathtype, bool try_srapath )
-{
-    const KDirectory *ldir;
-    rc_t rc = 0;
-    uint32_t rcobj;
-    int type = kptNotFound; /* bogus? */
-
-/*     KOutMsg ("%s: %s\n", __func__, path); */
-
-    if ( pdir != NULL )
-        *pdir = NULL;
-    if ( ppathtype != NULL )
-        *ppathtype = type;
-
-    switch (pathtype & ~ kptAlias) /* tune the error message based on path type */
+    if ((rc != 0) || ((ldir != NULL) && (pdir == NULL)))
     {
-        /* we'll hit this if we don't track defines in kdb/manager.h */
-    default:
-        rc = RC (rcDB, rcMgr, rcOpening, rcType, rcInvalid);
-        return rc;
-
-    case kptTable:
-    case kptPrereleaseTbl:
-        rcobj = rcTable;
-        break;
-
-    case kptColumn:
-        rcobj = rcColumn;
-        break;
-
-    case kptDatabase:
-    case kptDatabase | kptAlias:
-        rcobj = rcDatabase;
-        break;
+        KDirectoryRelease ( ldir );
+        ldir = NULL;
     }
 
-    rc = KDBOpenPathTypeReadInt( mgr, dir, path, &ldir, &type, pathtype, rcobj, try_srapath );
-
-    if (rc == 0)
-    {
-        if ( ppathtype != NULL )
-            *ppathtype = type;
-
-        if (pdir != NULL)
-            *pdir = ldir;
-        else
-            KDirectoryRelease (ldir);
-    }
+    if (pdir != NULL)
+        *pdir = ldir;
 
     return rc;
 }
@@ -722,6 +449,7 @@ rc_t KDBOpenPathTypeRead ( const KDBManager * mgr, const KDirectory * dir, const
  */
 rc_t KDBWritable ( const KDirectory *dir, const char *path )
 {
+    /* we have to be able to check the access if it is to be writable */
     uint32_t access;
     rc_t rc;
 
@@ -780,7 +508,7 @@ rc_t KDBWritable ( const KDirectory *dir, const char *path )
             {
             case kptFile:
             case kptFile | kptAlias:
-                rc = RC ( rcDB, rcPath, rcAccessing, rcLock, rcLocked );
+                rc = RC (rcDB, rcPath, rcAccessing, rcLock, rcLocked );
                 break;
             case kptNotFound:
                 break;
@@ -800,8 +528,7 @@ rc_t KDBWritable ( const KDirectory *dir, const char *path )
             rc = RC ( rcDB, rcPath, rcAccessing, rcPath, rcInvalid);
             break;
         default:
-            /* an illegal type of object named "lock" is in this directory
-             * which will block the ability to lock it
+            /* a bad "file" type with the name of our object
              */
             rc = RC (rcDB, rcPath, rcAccessing, rcPath, rcUnexpected);
         }
@@ -809,7 +536,6 @@ rc_t KDBWritable ( const KDirectory *dir, const char *path )
     return rc;
 }
 
-
 bool KDBIsLocked ( const KDirectory *dir, const char *path )
 {
 
@@ -1027,24 +753,10 @@ rc_t KDBVMakeSubPath ( struct KDirectory const *dir,
         subpath_max -= ns_size + 1;
     }
 
-#if CRUFTY_USE_OF_RESOLVE_PATH
     /* because this call only builds a path instead of resolving anything
      * is is okay that we are using the wrong directory */
     rc = KDirectoryVResolvePath ( dir, false,
         subpath, subpath_max, path, args );
-#else
-    {
-        int sz = vsnprintf ( subpath, subpath_max, path, args );
-        if ( sz < 0 || ( size_t ) sz >= subpath_max )
-            rc = RC ( rcDB, rcDirectory, rcResolving, rcBuffer, rcInsufficient );
-        else if ( sz == 0 )
-            rc = RC ( rcDB, rcDirectory, rcResolving, rcPath, rcEmpty );
-        else
-        {
-            rc = 0;
-        }
-    }
-#endif
     switch ( GetRCState ( rc ) )
     {
     case 0:
@@ -1067,21 +779,6 @@ rc_t KDBVMakeSubPath ( struct KDirectory const *dir,
     return 0;
 }
 
-/* KDBMakeSubPath
- *  adds a namespace to path spec
- */
-rc_t KDBMakeSubPath ( struct KDirectory const *dir,
-    char *subpath, size_t subpath_max, const char *ns,
-    uint32_t ns_size, const char *path, ... )
-{
-    rc_t rc = 0;
-    va_list args;
-    va_start(args, path);
-    rc = KDBVMakeSubPath(dir, subpath, subpath_max, ns, ns_size, path, args);
-    va_end(args);
-    return rc;
-}
-
 /* VDrop
  */
 static
@@ -1104,7 +801,7 @@ rc_t KDBMgrVDrop ( KDirectory * dir, const KDBManager * mgr, uint32_t obj_type,
                                   path, args );
     if (rc == 0)
     {
-        int pt = KDBPathType ( /*mgr,*/ dir, NULL, full_path );
+        int pt = KDBPathType ( dir, full_path );
         switch ( pt )
         {
         case kptNotFound:
@@ -1171,7 +868,7 @@ rc_t KDBVDrop ( KDirectory *dir, const KDBManager * mgr,
         path, sizeof path, ns, ns_size, name, args );
     if ( rc == 0 )
     {
-        int pt = KDBPathType ( /*mgr,*/ dir, NULL, path );
+        int pt = KDBPathType ( dir, path );
         switch ( pt )
         {
         case kptNotFound:
@@ -1195,7 +892,7 @@ rc_t KDBVDrop ( KDirectory *dir, const KDBManager * mgr,
         case kptFile | kptAlias:
         case kptFile:
 	    /* can we get here?  Will we have needed to open for update to get here? */
-	    rc = KDBOpenPathTypeRead ( mgr, dir, path, NULL, type, NULL, false );
+	    rc = KDBOpenPathTypeRead ( dir, path, NULL, type, NULL );
 	    if ( rc == 0 )
                 return RC ( rcDB, rcDirectory, rcRemoving, rcPath, rcReadonly );
             /* fall through */
@@ -1253,12 +950,12 @@ rc_t KDBRename ( KDirectory *dir, KDBManager *mgr, uint32_t type, bool force,
         return RC ( rcDB, rcDirectory, rcRenaming, rcType, rcIncorrect );
     }
 
-    rc = KDBMakeSubPath ( dir,
-        src, sizeof src, ns, ns_size, from);
+    rc = KDBVMakeSubPath ( dir,
+        src, sizeof src, ns, ns_size, from, NULL );
     if ( rc == 0 )
     {
         char dst [ 256 ];
-        int pt = KDBPathType ( /*mgr,*/ dir, NULL, src );
+        int pt = KDBPathType ( dir, src );
         switch ( pt )
         {
         case kptNotFound:
@@ -1283,8 +980,8 @@ rc_t KDBRename ( KDirectory *dir, KDBManager *mgr, uint32_t type, bool force,
             return RC ( rcDB, rcDirectory, rcRenaming, rcPath, rcIncorrect );
         }
 
-        rc = KDBMakeSubPath ( dir,
-            dst, sizeof dst, ns, ns_size, to );
+        rc = KDBVMakeSubPath ( dir,
+            dst, sizeof dst, ns, ns_size, to, NULL );
         if ( rc == 0 )
         {
             if ( KDirectoryVPathType ( dir, dst, NULL ) != kptNotFound )
@@ -1346,12 +1043,12 @@ rc_t KDBAlias ( KDirectory *dir, uint32_t type,
         return RC ( rcDB, rcDirectory, rcAliasing, rcType, rcIncorrect );
     }
 
-    rc = KDBMakeSubPath ( dir,
-        src, sizeof src, ns, ns_size, targ );
+    rc = KDBVMakeSubPath ( dir,
+        src, sizeof src, ns, ns_size, targ, NULL );
     if ( rc == 0 )
     {
         char dst [ 256 ];
-        int pt = KDBPathType ( /*NULL,*/ dir, NULL, src );
+        int pt = KDBPathType ( dir, src );
         switch ( pt )
         {
         case kptNotFound:
@@ -1363,7 +1060,7 @@ rc_t KDBAlias ( KDirectory *dir, uint32_t type,
         case kptTable | kptAlias:
         case kptIndex | kptAlias:
         case kptColumn | kptAlias:
-            pt &= ~ kptAlias;
+            pt -= kptAlias;
 
         case kptDatabase:
         case kptTable:
@@ -1376,8 +1073,8 @@ rc_t KDBAlias ( KDirectory *dir, uint32_t type,
             return RC ( rcDB, rcDirectory, rcAliasing, rcPath, rcIncorrect );
         }
 
-        rc = KDBMakeSubPath ( dir,
-            dst, sizeof dst, ns, ns_size, alias );
+        rc = KDBVMakeSubPath ( dir,
+            dst, sizeof dst, ns, ns_size, alias, NULL );
         if ( rc == 0 )
         {
             rc = KDirectoryCreateAlias ( dir,
@@ -1387,27 +1084,3 @@ rc_t KDBAlias ( KDirectory *dir, uint32_t type,
 
     return rc;
 }
-
-
-/* KDBIsPathUri
- * A hack to get some of VFS into KDB that is too tightly bound to KFS
- */
-
-bool KDBIsPathUri (const char * path)
-{
-    const char * pc;
-    size_t z;
-
-    z = string_size (path);
-
-    if (NULL != (pc = string_chr (path, z, ':')))
-        return true;
-
-    if (NULL != (pc = string_chr (path, z, '?')))
-        return true;
-
-    if (NULL != (pc = string_chr (path, z, '#')))
-        return true;
-
-    return false;
-}
diff --git a/libs/kdb/wmeta.c b/libs/kdb/wmeta.c
index 4a55b07..55ea58c 100644
--- a/libs/kdb/wmeta.c
+++ b/libs/kdb/wmeta.c
@@ -38,7 +38,6 @@ struct KMDataNodeNamelist;
 #include "kdbfmt-priv.h"
 
 #include <kdb/meta.h>
-#include <kdb/namelist.h>
 #include <klib/container.h>
 #include <klib/pbstree.h>
 #include <klib/namelist.h>
@@ -48,13 +47,12 @@ struct KMDataNodeNamelist;
 #include <kfs/md5.h>
 #include <klib/symbol.h>
 #include <klib/refcount.h>
-#include <klib/debug.h>
-#include <klib/log.h>
 #include <klib/rc.h>
+#include <klib/debug.h>
 #include <atomic.h>
+#include <strtol.h>
 #include <os-native.h>
 #include <sysalloc.h>
-#include <strtol.h>
 
 #ifndef TRACK_REFERENCES
 #define TRACK_REFERENCES 0
@@ -68,8 +66,6 @@ struct KMDataNodeNamelist;
 #include <assert.h>
 
 #define KMETADATAVERS 2
-#define NODE_SIZE_LIMIT ( 25 * 1024 * 1024 )
-#define NODE_CHILD_LIMIT ( 100 * 1024 )
 
 
 typedef struct KMDataNodeInflateData KMDataNodeInflateData;
@@ -78,8 +74,6 @@ struct KMDataNodeInflateData
     KMetadata *meta;
     KMDataNode *par;
     BSTree *bst;
-    size_t node_size_limit;
-    uint32_t node_child_limit;
     rc_t rc;
     bool byteswap;
 };
@@ -398,7 +392,7 @@ bool CC KMDataNodeInflate_v1 ( PBSTNode *n, void *data )
     }
 
     pb -> rc = RC ( rcDB, rcMetadata, rcConstructing, rcMemory, rcExhausted );
-    free ( b );
+    free ( n );
     return true;
 }
 
@@ -417,8 +411,6 @@ rc_t KMDataNodeInflateAttr ( KMDataNode *n, bool byteswap )
         pb . meta = n -> meta;
         pb . par = n;
         pb . bst = & n -> attr;
-        pb . node_size_limit = 0;
-        pb . node_child_limit = 0;
         pb . rc = 0;
         pb . byteswap = byteswap;
         PBSTreeDoUntil ( bst, 0, KMAttrNodeInflate, & pb );
@@ -436,8 +428,7 @@ static
 bool CC KMDataNodeInflate ( PBSTNode *n, void *data );
 
 static
-rc_t KMDataNodeInflateChild ( KMDataNode *n,
-    size_t node_size_limit, uint32_t node_child_limit, bool byteswap )
+rc_t KMDataNodeInflateChild ( KMDataNode *n, bool byteswap )
 {
     PBSTree *bst;
     rc_t rc = PBSTreeMake ( & bst, n -> value, n -> vsize, byteswap );
@@ -445,55 +436,16 @@ rc_t KMDataNodeInflateChild ( KMDataNode *n,
         rc = RC ( rcDB, rcMetadata, rcConstructing, rcData, rcCorrupt );
     else
     {
-        uint32_t bst_count = PBSTreeCount ( bst );
+        KMDataNodeInflateData pb;
         size_t bst_size = PBSTreeSize ( bst );
-        bool inflate = node_child_limit == 0;
-        if ( ! inflate ) {
-            if ( bst_count > node_child_limit )
-            {
-                PLOGMSG ( klogWarn, ( klogWarn,
-                                      "refusing to inflate metadata node '$(node)' "
-                                      "within file '$(path)': "
-                                      "number of children ($(num_children)) "
-                                      "exceeds limit ($(limit))."
-                                      , "node=%s,path=%s,num_children=%u,limit=%u"
-                                      , n -> name
-                                      , n -> meta -> path
-                                      , bst_count
-                                      , node_child_limit )
-                    );
-            }
-            else if ( bst_size > node_size_limit )
-            {
-                PLOGMSG ( klogWarn, ( klogWarn,
-                                      "refusing to inflate metadata node '$(node)' "
-                                      "within file '$(path)': "
-                                      "node size ($(node_size)) exceeds limit ($(limit))."
-                                     , "node=%s,path=%s,node_size=%zu,limit=%zu"
-                                     , n -> name
-                                     , n -> meta -> path
-                                     , bst_size
-                                     , node_size_limit )
-                    );
-            }
-            else {
-                inflate = true;
-            }
-        }
 
-        if ( inflate ) {
-            KMDataNodeInflateData pb;
-
-            pb . meta = n -> meta;
-            pb . par = n;        
-            pb . bst = & n -> child;
-            pb . node_size_limit = node_size_limit;
-            pb . node_child_limit = node_child_limit;
-            pb . rc = 0;
-            pb . byteswap = byteswap;
-            PBSTreeDoUntil ( bst, 0, KMDataNodeInflate, & pb );
-            rc = pb . rc;
-        }
+        pb . meta = n -> meta;
+        pb . par = n;        
+        pb . bst = & n -> child;
+        pb . rc = 0;
+        pb . byteswap = byteswap;
+        PBSTreeDoUntil ( bst, 0, KMDataNodeInflate, & pb );
+        rc = pb . rc;
         
         PBSTreeWhack ( bst );
         
@@ -542,8 +494,7 @@ bool CC KMDataNodeInflate ( PBSTNode *n, void *data )
     pb -> rc = ( bits & 1 ) != 0 ? KMDataNodeInflateAttr ( b, pb -> byteswap ) : 0;
     if ( pb -> rc == 0 )
     {
-        pb -> rc = ( bits & 2 ) != 0 ?
-            KMDataNodeInflateChild ( b, pb -> node_size_limit, pb -> node_child_limit, pb -> byteswap ) : 0;
+        pb -> rc = ( bits & 2 ) != 0 ? KMDataNodeInflateChild ( b, pb -> byteswap ) : 0;
         if ( pb -> rc == 0 )
         {
             void *value;
@@ -571,7 +522,7 @@ bool CC KMDataNodeInflate ( PBSTNode *n, void *data )
         BSTreeWhack ( & b -> attr, KMAttrNodeWhack, NULL );
     }
 
-    free ( b );
+    free ( n );
     return true;
 }
 
@@ -2513,7 +2464,7 @@ rc_t KMetadataSever ( const KMetadata *self )
  */
 
 static
-rc_t KMetadataPopulate ( KMetadata *self, const KDirectory *dir, const char *path, bool read_only )
+rc_t KMetadataPopulate ( KMetadata *self, const KDirectory *dir, const char *path )
 {
     const KFile *f;
     rc_t rc = KDirectoryVOpenFileRead ( dir, & f, path, NULL );
@@ -2573,8 +2524,6 @@ rc_t KMetadataPopulate ( KMetadata *self, const KDirectory *dir, const char *pat
                         pb . meta = self;
                         pb . par = self -> root;
                         pb . bst = & self -> root -> child;
-                        pb . node_size_limit = read_only ? NODE_SIZE_LIMIT : 0;
-                        pb . node_child_limit = read_only ? NODE_CHILD_LIMIT : 0;
                         pb . rc = 0;
                         pb . byteswap = self -> byteswap;
 
@@ -2659,7 +2608,7 @@ rc_t KMetadataMake ( KMetadata **metap,
                 return 0;
             }
             
-            rc = KMetadataPopulate ( meta, dir, path, read_only );
+            rc = KMetadataPopulate ( meta, dir, path );
             if ( rc == 0 )
             {
                 KDirectoryAddRef ( dir );
@@ -2672,7 +2621,6 @@ rc_t KMetadataMake ( KMetadata **metap,
 
         free ( meta );
     }
-    * metap = NULL;
     return rc;
 }
 
@@ -2783,11 +2731,11 @@ rc_t KDBManagerOpenMetadataReadInt ( KDBManager *self,
                     * metap = meta;
                     return 0;
                 }
-
-                KMetadataRelease ( meta );
             }
 
 /*             rc = RC ( rcDB, rcMgr, rcOpening, rcMetadata, rcExists ); */
+
+            KMetadataRelease ( meta );
         }
     }
     
@@ -3514,7 +3462,7 @@ void CC KMDataNodeGrabName ( BSTNode *n, void *data )
     list -> namelist [ list -> count ++ ] = ( ( const KMDataNode* ) n ) -> name;
 }
 
-LIB_EXPORT rc_t CC KMDataNodeListChildren ( const KMDataNode *self, KNamelist **names )
+LIB_EXPORT rc_t CC KMDataNodeListChild ( const KMDataNode *self, KNamelist **names )
 {
     rc_t rc;
     unsigned int count;
diff --git a/libs/kdb/wtable.c b/libs/kdb/wtable.c
index 9fe225a..5a463e1 100644
--- a/libs/kdb/wtable.c
+++ b/libs/kdb/wtable.c
@@ -37,8 +37,6 @@
 #include <klib/namelist.h>
 #include <klib/symbol.h>
 #include <kdb/namelist.h>
-#include <klib/log.h>
-#include <klib/printf.h>
 #include <klib/rc.h>
 #include <kfs/directory.h>
 #include <kfs/file.h>
@@ -60,22 +58,6 @@
  *  a collection of columns indexed by row id, metadata, indices
  */
 
-/* GetPath
- *  return the absolute path to table
- */
-LIB_EXPORT rc_t CC KTableGetPath ( const KTable *self,
-    const char **path )
-{
-    if ( self == NULL )
-        return RC ( rcDB, rcTable, rcAccessing, rcSelf, rcNull );
-    if ( path == NULL )
-        return RC ( rcDB, rcTable, rcAccessing, rcParam, rcNull );
-
-    *path = self->path;
-
-    return 0;
-}
-
 /* Whack
  */
 static
@@ -383,7 +365,7 @@ rc_t KDBManagerVCreateTableInt ( KDBManager *self,
         bool convert = false;
         bool not_found = false;
 
-        switch ( KDBPathType ( /*NULL,*/ wd, NULL, tblpath ) )
+        switch ( KDBPathType ( wd, tblpath ) )
         {
         case kptNotFound:
             not_found = true;
@@ -422,8 +404,8 @@ rc_t KDBManagerVCreateTableInt ( KDBManager *self,
         case kptFile | kptAlias:
             /* if we find a file, vary the failure if it is an archive that is a table
              * or a non related file */
-            if (( KDBOpenPathTypeRead ( self, wd, tblpath, NULL, kptTable, NULL, false ) == 0 ) ||
-                ( KDBOpenPathTypeRead ( self, wd, tblpath, NULL, kptPrereleaseTbl, NULL, false ) == 0 ) )
+            if (( KDBOpenPathTypeRead ( wd, tblpath, NULL, kptTable, NULL ) == 0 ) ||
+                ( KDBOpenPathTypeRead ( wd, tblpath, NULL, kptPrereleaseTbl, NULL ) == 0 ) )
                 return RC ( rcDB, rcMgr, rcCreating, rcTable, rcReadonly );
             /* fall through */
         default:
@@ -579,27 +561,24 @@ LIB_EXPORT rc_t CC KDatabaseVCreateTable ( KDatabase *self,
  */
 static
 rc_t KDBManagerVOpenTableReadInt ( const KDBManager *cself,
-    const KTable **tblp, const KDirectory *wd, bool try_srapath,
+    const KTable **tblp, const KDirectory *wd,
     const char *path, va_list args )
 {
-    rc_t rc;
     char tblpath [ 4096 ];
-    size_t z;
-
-/*    rc = KDirectoryVResolvePath ( wd, 1,
-        tblpath, sizeof tblpath, path, args ); */
-    rc = string_vprintf( tblpath, sizeof tblpath, &z, path, args );
+    rc_t rc = KDirectoryVResolvePath ( wd, true,
+        tblpath, sizeof tblpath, path, args );
     if ( rc == 0 )
     {
         KSymbol *sym;
-        
+        const KDirectory *dir;
+        bool prerelease = false;
+
         /* if already open */
         sym = KDBManagerOpenObjectFind (cself, tblpath);
         if (sym != NULL)
         {
             const KTable * ctbl;
             rc_t obj;
-
             switch (sym->type)
             {
             case kptTable:
@@ -615,7 +594,7 @@ rc_t KDBManagerVOpenTableReadInt ( const KDBManager *cself,
                 }
                 obj = rcTable;
                 break;
-                
+
             default:
                 obj = rcPath;
                 break;
@@ -632,41 +611,39 @@ rc_t KDBManagerVOpenTableReadInt ( const KDBManager *cself,
                 obj = rcMetadata;
                 break;
             }
-            rc = RC (rcDB, rcMgr, rcOpening, obj, rcBusy);
+            return  RC (rcDB, rcMgr, rcOpening, obj, rcBusy);
         }
-        else
+	rc = KDBOpenPathTypeRead ( wd, tblpath, &dir, kptTable, NULL );
+	if ( rc != 0 )
+	{
+	    prerelease = true;
+	    rc = KDBOpenPathTypeRead ( wd, tblpath, &dir, kptPrereleaseTbl, NULL );
+	}
+
+	if ( rc == 0 )
         {
-            KTable * tbl;
-            const KDirectory *dir;
-            bool prerelease = false;
+            KTable *tbl;
 
-            rc = KDBOpenPathTypeRead ( cself, wd, tblpath, &dir, kptTable, NULL, try_srapath );
-            if ( rc != 0 )
-            {
-                prerelease = true;
-                rc = KDBOpenPathTypeRead ( cself, wd, tblpath, &dir, kptPrereleaseTbl, NULL, try_srapath );
-            }        
+            rc = KTableMake ( & tbl, dir, tblpath, NULL, true );
             if ( rc == 0 )
             {
-                rc = KTableMake ( & tbl, dir, tblpath, NULL, true );
+                KDBManager *self = ( KDBManager* ) cself;
+
+                rc = KDBManagerInsertTable ( self, tbl );
                 if ( rc == 0 )
                 {
-                    KDBManager * self = (KDBManager *)cself;
-
-                    rc = KDBManagerInsertTable (self, tbl );
-
-                    if (rc == 0)
-                    {
-                        tbl -> prerelease = prerelease;
-                        * tblp = tbl;
-                        return 0;
-                    }
-                    free ( tbl );
+                    tbl -> prerelease = prerelease;
+                    * tblp = tbl;
+                    return 0;
                 }
-                KDirectoryRelease ( dir );
+
+                free ( tbl );
             }
+
+            KDirectoryRelease ( dir );
         }
     }
+    
     return rc;
 }
 
@@ -694,7 +671,7 @@ LIB_EXPORT rc_t CC KDBManagerVOpenTableRead ( const KDBManager *self,
     if ( self == NULL )
         return RC ( rcDB, rcMgr, rcOpening, rcSelf, rcNull );
 
-    return KDBManagerVOpenTableReadInt ( self, tbl, self -> wd, true, path, args );
+    return KDBManagerVOpenTableReadInt ( self, tbl, self -> wd, path, args );
 }
 
 LIB_EXPORT rc_t CC KDatabaseOpenTableRead ( const KDatabase *self,
@@ -729,7 +706,7 @@ LIB_EXPORT rc_t CC KDatabaseVOpenTableRead ( const KDatabase *self,
     if ( rc == 0 )
     {
         rc = KDBManagerVOpenTableReadInt ( self -> mgr, tblp,
-                                           self -> dir, false, path, NULL );
+            self -> dir, path, NULL );
         if ( rc == 0 )
         {
             KTable *tbl = ( KTable* ) * tblp;
@@ -792,7 +769,7 @@ rc_t KDBManagerVOpenTableUpdateInt ( KDBManager *self,
             return RC ( rcDB, rcMgr, rcOpening, obj, rcBusy );
         }
         /* only open existing tbls */
-        switch ( KDBPathType ( /*NULL,*/ wd, NULL, tblpath ) )
+        switch ( KDBPathType ( wd, tblpath ) )
         {
         case kptNotFound:
             return RC ( rcDB, rcMgr, rcOpening, rcTable, rcNotFound );
@@ -804,8 +781,8 @@ rc_t KDBManagerVOpenTableUpdateInt ( KDBManager *self,
         case kptFile | kptAlias:
             /* if we find a file, vary the failure if it is an archive that is a table
              * or a non related file */
-            if (( KDBOpenPathTypeRead ( self, wd, tblpath, NULL, kptTable, NULL, false ) == 0 ) ||
-                ( KDBOpenPathTypeRead ( self, wd, tblpath, NULL, kptPrereleaseTbl, NULL, false ) == 0 ) )
+            if (( KDBOpenPathTypeRead ( wd, tblpath, NULL, kptTable, NULL ) == 0 ) ||
+                ( KDBOpenPathTypeRead ( wd, tblpath, NULL, kptPrereleaseTbl, NULL ) == 0 ) )
                 return RC ( rcDB, rcMgr, rcCreating, rcTable, rcUnauthorized );
             /* fall through */
         default:
@@ -1010,75 +987,6 @@ LIB_EXPORT bool CC KTableExists ( const KTable *self, uint32_t type, const char
 }
 
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptIndex and kptColumn
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-LIB_EXPORT bool CC KTableIsAlias ( const KTable *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name )
-{
-    if ( self != NULL && name != NULL && name [ 0 ] != 0 )
-    {
-        rc_t rc;
-        const char *ns;
-        char path [ 256 ];
-
-        switch ( type )
-        {
-        case kptIndex:
-            ns = "idx";
-            break;
-
-        case kptColumn:
-            ns = "col";
-            break;
-
-        default:
-            return false;
-        }
-
-        rc = KDBMakeSubPath ( self -> dir, path, sizeof path, ns, 3, name );
-        if ( rc == 0 )
-        {
-            switch ( KDirectoryPathType ( self -> dir, path ) )
-            {
-            case kptFile | kptAlias:
-            case kptDir | kptAlias:
-                if ( resolved != NULL && rsize != 0 )
-                {
-                    const KDirectory *sub;
-                    rc = KDirectoryOpenDirRead ( self -> dir, & sub, false, ns );
-                    * resolved = 0;
-                    if ( rc != 0 )
-                        PLOGERR ( klogWarn, ( klogWarn, rc, "failed to open subdirectory '$(sub)'", "sub=%s", ns ) );
-                    else
-                    {
-                        rc = KDirectoryResolveAlias ( sub, false, resolved, rsize, name );
-                        KDirectoryRelease ( sub );
-                        if ( rc != 0 )
-                            PLOGERR ( klogWarn, ( klogWarn, rc, "failed to resolve alias '$(alias)'", "alias=%s", name ) );
-                    }
-                }
-                return true;
-            }
-        }
-    }
-
-    if ( resolved != NULL && rsize != 0 )
-        * resolved = 0;
-
-    return false;
-}
-
-
 /* Writable
  *  returns 0 if object is writable
  *  or a reason why if not
@@ -1303,7 +1211,7 @@ LIB_EXPORT rc_t CC KTableReindex ( KTable *self )
                        idx0 is used for cursor sessions */
                     if ( KTableColumnNeedsReindex ( self, name ) )
                     {
-                        rc = KTableOpenColumnUpdate ( self, & col, name );
+                        rc = KTableVOpenColumnUpdate ( self, & col, name, NULL );
                         if ( rc != 0 )
                         {
                             if ( GetRCState ( rc ) == rcBusy )
@@ -1522,30 +1430,18 @@ LIB_EXPORT rc_t CC KTableModDate ( const KTable *self, KTime_t *mtime )
 /* List
  *  create table listings
  */
-struct FilterData
-{
-    const KDBManager * mgr;
-    int type;
-};
-
 static
-bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data_ )
+bool CC KDatabaseListFilter ( const KDirectory *dir, const char *name, void *data )
 {
-    struct FilterData * data = data_;
-
-    return KDBOpenPathTypeRead(data->mgr, dir, name, NULL, data->type, NULL, false) == 0;
+    return KDBOpenPathTypeRead(dir, name, NULL, (intptr_t)data, NULL) == 0;
 }
 
 LIB_EXPORT rc_t CC KTableListCol ( const KTable *self, KNamelist **names )
 {
     if ( self != NULL )
     {
-        struct FilterData data;
-        data.mgr = self->mgr;
-        data.type = kptColumn;
-
         return KDirectoryVList ( self -> dir,
-            names, KDatabaseListFilter, &data, "col", NULL );
+                                names, KDatabaseListFilter, ( void* ) kptColumn, "col", NULL );
     }
     
     if ( names != NULL )
diff --git a/libs/kdb/wtrieidx-v1.c b/libs/kdb/wtrieidx-v1.c
index b5073c3..095a71a 100644
--- a/libs/kdb/wtrieidx-v1.c
+++ b/libs/kdb/wtrieidx-v1.c
@@ -414,7 +414,7 @@ rc_t KTrieIndexPersistProj_v1 ( const KTrieIndex_v1 *self, PersistTrieData *pb )
         {
             size_t num_read;
             num_to_read = file_size - sizeof ( KDBHdr );
-            rc = KFileReadAll ( pb -> f, sizeof ( KDBHdr ),
+            rc = KFileRead ( pb -> f, sizeof ( KDBHdr ),
                 addr, num_to_read, & num_read );
             if ( rc != 0 )
                 free ( addr );
diff --git a/libs/kdb/wtrieidx-v2.c b/libs/kdb/wtrieidx-v2.c
index b3dd8ab..1d70e28 100644
--- a/libs/kdb/wtrieidx-v2.c
+++ b/libs/kdb/wtrieidx-v2.c
@@ -799,7 +799,7 @@ rc_t KPTrieIndexFind_v2 ( const KPTrieIndex_v2 *self,
 #if V2FIND_RETURNS_SPAN
     uint32_t *span,
 #endif
-    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data, bool convertFromV1 )
+    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data )
 {
     rc_t rc;
 
@@ -823,7 +823,7 @@ rc_t KPTrieIndexFind_v2 ( const KPTrieIndex_v2 *self,
             size_t usize;
 
             /* detect conversion from v1 */
-            if ( convertFromV1 && self -> id_bits == 0 )
+            if ( self -> id_bits == 0 )
             {
                 /* v1 stored tree will have just a 32-bit spot id as data */
                 uint32_t id;
@@ -1514,7 +1514,7 @@ rc_t KTrieIndexPersistProj_v2 ( const KTrieIndex_v2 *self, PersistTrieData *pb )
         num_to_read = file_size - sizeof ( KPTrieIndexHdr_v2 );
         if ( rc == 0 )
         {
-            rc = KFileReadAll ( pb -> f, sizeof ( KPTrieIndexHdr_v2 ), addr,
+            rc = KFileRead ( pb -> f, sizeof ( KPTrieIndexHdr_v2 ), addr,
 			     num_to_read, & num_read );
             if ( rc == 0 )
             {
@@ -1641,7 +1641,7 @@ rc_t KTrieIndexPersistProj_v3 ( const KTrieIndex_v2 *self, PersistTrieData *pb )
         {
             size_t num_read;
             num_to_read = file_size - sizeof ( KPTrieIndexHdr_v3 );
-            rc = KFileReadAll ( pb -> f, sizeof ( KPTrieIndexHdr_v3 ),
+            rc = KFileRead ( pb -> f, sizeof ( KPTrieIndexHdr_v3 ),
                 addr, num_to_read, & num_read );
             if ( rc != 0 )
                 free ( addr );
@@ -2420,7 +2420,7 @@ rc_t KTrieIndexFind_v2 ( const KTrieIndex_v2 *self,
 #if V2FIND_RETURNS_SPAN
     uint32_t *span,
 #endif
-    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data, bool convertFromV1 )
+    int ( CC * custom_cmp ) ( const void *item, const PBSTNode *n, void *data ), void *data )
 {
     /* search within in-core index */
     if ( self -> count != 0 )
@@ -2468,7 +2468,7 @@ rc_t KTrieIndexFind_v2 ( const KTrieIndex_v2 *self,
 #if V2FIND_RETURNS_SPAN
                                     span,
 #endif
-                                    custom_cmp, data, convertFromV1 );
+                                    custom_cmp, data );
     }
 
     return RC ( rcDB, rcIndex, rcSelecting, rcString, rcNotFound );
@@ -2485,7 +2485,7 @@ struct KTrieIndexProjectData_v2
 static
 bool CC KTrieIndexProjectScan_v2 ( TNode *n, void *data )
 {
-    KTrieIndexProjectData_v2 *pb = (KTrieIndexProjectData_v2 *)data;
+    KTrieIndexProjectData_v2 *pb = data;
     const KTrieIdxNode_v2_s2 *node = ( const KTrieIdxNode_v2_s2* ) n;
 
     if ( pb -> id >= node -> start_id &&
diff --git a/libs/kfg/Makefile b/libs/kfg/Makefile
index 0d3fcb4..85344d1 100644
--- a/libs/kfg/Makefile
+++ b/libs/kfg/Makefile
@@ -36,9 +36,6 @@ ALL_LIBS = \
 	$(INT_LIBS) \
 	$(EXT_LIBS)
 
-TEST_TOOLS = \
-	wb-test-kfg
-
 include $(TOP)/build/Makefile.env
 
 #-------------------------------------------------------------------------------
@@ -53,10 +50,7 @@ $(INT_LIBS): makedirs
 $(EXT_LIBS): makedirs
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
-$(TEST_TOOLS): makedirs
-	@ $(MAKE_CMD) $(TEST_BINDIR)/$@
-
-.PHONY: all std $(ALL_LIBS) $(TEST_TOOLS)
+.PHONY: all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -71,7 +65,6 @@ $(TARGDIR)/std: \
 # clean
 #
 clean: stdclean
-	@ rm -f $(addsuffix *,$(addprefix $(TEST_BINDIR)/,$(TEST_TOOLS)))
 
 .PHONY: clean
 
@@ -86,18 +79,10 @@ tag: \
 #-------------------------------------------------------------------------------
 # kfg
 #
-$(LIBDIR)/libkfg: $(NCBIDIR)/default.kfg $(addprefix $(LIBDIR)/libkfg.,$(LIBEXT))
-
-$(NCBIDIR)/default.kfg: $(SRCDIR)/default.kfg
-	rm -f $(NCBIDIR)/config.kfg
-	cp $^ $@
+$(LIBDIR)/libkfg: $(addprefix $(LIBDIR)/libkfg.,$(LIBEXT))
 
 KFG_SRC = \
-	config-grammar \
-	config-lex \
-	config \
-	repository \
-	report-kfg
+	config
 
 KFG_OBJ = \
 	$(addsuffix .$(LOBX),$(KFG_SRC))
@@ -114,25 +99,3 @@ $(LIBDIR)/libkfg.$(LIBX): $(KFG_OBJ)
 
 libkfg_tag:
 	@ $(TOP)/build/tag-module.sh $(MODULE) libkfg $(KFG_OBJ)
-
-#-------------------------------------------------------------------------------
-# white-box test
-#
-TEST_SRC = \
-	wb-test-kfg
-
-TEST_OBJ = \
-	$(addsuffix .$(OBJX),$(TEST_SRC))
-
-TEST_LIB = \
-	-sktst \
-	-skapp \
-	-svfs \
-	-skurl \
-	-skrypto \
-	-skfg \
-	-skfs \
-	-sklib 
-
-$(TEST_BINDIR)/wb-test-kfg: $(TEST_OBJ)
-	$(LP) --exe -o $@ $^ $(TEST_LIB) 
diff --git a/libs/kfg/config-grammar.c b/libs/kfg/config-grammar.c
deleted file mode 100644
index 60c9a8a..0000000
--- a/libs/kfg/config-grammar.c
+++ /dev/null
@@ -1,1725 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
-
-/* Bison implementation for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "2.5"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 1
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-/* Substitute the variable and function names.  */
-#define yyparse         KFG_parse
-#define yylex           KFG_lex
-#define yyerror         KFG_error
-#define yylval          KFG_lval
-#define yychar          KFG_char
-#define yydebug         KFG_debug
-#define yynerrs         KFG_nerrs
-
-
-/* Copy the first part of user declarations.  */
-
-  
-	#include <sysalloc.h>
-
-	#include "kfg-parse.h"
-	
-	#define YYSTYPE KFGSymbol
-	#include "config-tokens.h"
-		
-	#define KFG_lex KFGScan_yylex
-	
-	/* required parameter to VNamelistMake */
-	#define NAMELIST_ALLOC_BLKSIZE 10
-	
-	static void ReportRc(KFGParseBlock* pb, KFGScanBlock* sb, rc_t rc);
-	static void AppendName(KFGScanBlock* sb, VNamelist*, const KFGParseBlock*);
-
-
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     kfgEND_INPUT = 0,
-     kfgEND_LINE = 258,
-     kfgUNTERM_STRING = 259,
-     kfgUNTERM_ESCAPED_STRING = 260,
-     kfgUNRECOGNIZED = 261,
-     kfgVAR_REF = 262,
-     kfgUNTERM_VAR_REF = 263,
-     kfgASSIGN = 264,
-     kfgSTRING = 265,
-     kfgESCAPED_STRING = 266,
-     kfgABS_PATH = 267,
-     kfgREL_PATH = 268
-   };
-#endif
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
-
-
-	KFGParseBlock		pb;
-	const VNamelist*	namelist;
-
-
-
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-/* Copy the second part of user declarations.  */
-
-
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
-#else
-static int
-YYID (yyi)
-    int yyi;
-#endif
-{
-  return yyi;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-	     && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
-    do									\
-      {									\
-	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
-	Stack = &yyptr->Stack_alloc;					\
-	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-	yyptr += yynewbytes / sizeof (*yyptr);				\
-      }									\
-    while (YYID (0))
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  YYSIZE_T yyi;				\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];		\
-	}					\
-      while (YYID (0))
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  13
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   21
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  14
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  8
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  17
-/* YYNRULES -- Number of states.  */
-#define YYNSTATES  23
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   268
-
-#define YYTRANSLATE(YYX)						\
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint8 yyprhs[] =
-{
-       0,     0,     3,     5,     7,     9,    12,    17,    19,    22,
-      24,    26,    28,    30,    32,    35,    38,    40
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int8 yyrhs[] =
-{
-      15,     0,    -1,    16,    -1,     0,    -1,    17,    -1,    16,
-      17,    -1,    18,    19,    20,    21,    -1,     3,    -1,     1,
-      21,    -1,    12,    -1,    13,    -1,     9,    -1,    10,    -1,
-      11,    -1,    20,    10,    -1,    20,    11,    -1,     3,    -1,
-       0,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const yytype_uint8 yyrline[] =
-{
-       0,    82,    82,    83,    87,    88,    92,   101,   102,   106,
-     107,   111,   115,   116,   117,   118,   122,   123
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "kfgEND_INPUT", "error", "$undefined", "kfgEND_LINE",
-  "kfgUNTERM_STRING", "kfgUNTERM_ESCAPED_STRING", "kfgUNRECOGNIZED",
-  "kfgVAR_REF", "kfgUNTERM_VAR_REF", "kfgASSIGN", "kfgSTRING",
-  "kfgESCAPED_STRING", "kfgABS_PATH", "kfgREL_PATH", "$accept", "config",
-  "name_value_pairs", "name_value_pair", "pathname", "assign_op", "value",
-  "line_end", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    14,    15,    15,    16,    16,    17,    17,    17,    18,
-      18,    19,    20,    20,    20,    20,    21,    21
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     1,     1,     1,     2,     4,     1,     2,     1,
-       1,     1,     1,     1,     2,     2,     1,     1
-};
-
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       0,     3,     0,     7,     9,    10,     0,     0,     4,     0,
-      17,    16,     8,     1,     5,    11,     0,    12,    13,     0,
-      14,    15,     6
-};
-
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-      -1,     6,     7,     8,     9,    16,    19,    12
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -5
-static const yytype_int8 yypact[] =
-{
-       0,    -5,     6,    -5,    -5,    -5,     2,     4,    -5,     1,
-      -5,    -5,    -5,    -5,    -5,    -5,    10,    -5,    -5,     8,
-      -5,    -5,    -5
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-      -5,    -5,    -5,     7,    -5,    -5,    -5,    -4
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -3
-static const yytype_int8 yytable[] =
-{
-       1,     2,    13,     3,    -2,     2,    10,     3,    10,    11,
-      15,    11,     4,     5,    14,    22,     4,     5,    20,    21,
-      17,    18
-};
-
-#define yypact_value_is_default(yystate) \
-  ((yystate) == (-5))
-
-#define yytable_value_is_error(yytable_value) \
-  YYID (0)
-
-static const yytype_uint8 yycheck[] =
-{
-       0,     1,     0,     3,     0,     1,     0,     3,     0,     3,
-       9,     3,    12,    13,     7,    19,    12,    13,    10,    11,
-      10,    11
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const yytype_uint8 yystos[] =
-{
-       0,     0,     1,     3,    12,    13,    15,    16,    17,    18,
-       0,     3,    21,     0,    17,     9,    19,    10,    11,    20,
-      10,    11,    21
-};
-
-#define yyerrok		(yyerrstatus = 0)
-#define yyclearin	(yychar = YYEMPTY)
-#define YYEMPTY		(-2)
-#define YYEOF		0
-
-#define YYACCEPT	goto yyacceptlab
-#define YYABORT		goto yyabortlab
-#define YYERROR		goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
-
-#define YYFAIL		goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)					\
-do								\
-  if (yychar == YYEMPTY && yylen == 1)				\
-    {								\
-      yychar = (Token);						\
-      yylval = (Value);						\
-      YYPOPSTACK (1);						\
-      goto yybackup;						\
-    }								\
-  else								\
-    {								\
-      yyerror (pb, sb, YY_("syntax error: cannot back up")); \
-      YYERROR;							\
-    }								\
-while (YYID (0))
-
-
-#define YYTERROR	1
-#define YYERRCODE	256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)				\
-    do									\
-      if (YYID (N))                                                    \
-	{								\
-	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
-	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
-	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
-	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
-	}								\
-      else								\
-	{								\
-	  (Current).first_line   = (Current).last_line   =		\
-	    YYRHSLOC (Rhs, 0).last_line;				\
-	  (Current).first_column = (Current).last_column =		\
-	    YYRHSLOC (Rhs, 0).last_column;				\
-	}								\
-    while (YYID (0))
-#endif
-
-
-/* This macro is provided for backward compatibility. */
-
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (&yylval, YYLEX_PARAM)
-#else
-# define YYLEX yylex (&yylval, sb)
-#endif
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)			\
-do {						\
-  if (yydebug)					\
-    YYFPRINTF Args;				\
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
-do {									  \
-  if (yydebug)								  \
-    {									  \
-      YYFPRINTF (stderr, "%s ", Title);					  \
-      yy_symbol_print (stderr,						  \
-		  Type, Value, pb, sb); \
-      YYFPRINTF (stderr, "\n");						  \
-    }									  \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, KFGParseBlock* pb, KFGScanBlock* sb)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, pb, sb)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    KFGParseBlock* pb;
-    KFGScanBlock* sb;
-#endif
-{
-  if (!yyvaluep)
-    return;
-  YYUSE (pb);
-  YYUSE (sb);
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
-# endif
-  switch (yytype)
-    {
-      default:
-	break;
-    }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, KFGParseBlock* pb, KFGScanBlock* sb)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, pb, sb)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    KFGParseBlock* pb;
-    KFGScanBlock* sb;
-#endif
-{
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, pb, sb);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
-    yytype_int16 *yybottom;
-    yytype_int16 *yytop;
-#endif
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)				\
-do {								\
-  if (yydebug)							\
-    yy_stack_print ((Bottom), (Top));				\
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule, KFGParseBlock* pb, KFGScanBlock* sb)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule, pb, sb)
-    YYSTYPE *yyvsp;
-    int yyrule;
-    KFGParseBlock* pb;
-    KFGScanBlock* sb;
-#endif
-{
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  unsigned long int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-	     yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-		       &(yyvsp[(yyi + 1) - (yynrhs)])
-		       		       , pb, sb);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)		\
-do {					\
-  if (yydebug)				\
-    yy_reduce_print (yyvsp, Rule, pb, sb); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef	YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-	switch (*++yyp)
-	  {
-	  case '\'':
-	  case ',':
-	    goto do_not_strip_quotes;
-
-	  case '\\':
-	    if (*++yyp != '\\')
-	      goto do_not_strip_quotes;
-	    /* Fall through.  */
-	  default:
-	    if (yyres)
-	      yyres[yyn] = *yyp;
-	    yyn++;
-	    break;
-
-	  case '"':
-	    if (yyres)
-	      yyres[yyn] = '\0';
-	    return yyn;
-	  }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  YYSIZE_T yysize1;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = 0;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - Assume YYFAIL is not used.  It's too flawed to consider.  See
-       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
-       for details.  YYERROR is fine as it does not invoke this
-       function.
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-                if (! (yysize <= yysize1
-                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                  return 2;
-                yysize = yysize1;
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  yysize1 = yysize + yystrlen (yyformat);
-  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-    return 2;
-  yysize = yysize1;
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, KFGParseBlock* pb, KFGScanBlock* sb)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep, pb, sb)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-    KFGParseBlock* pb;
-    KFGScanBlock* sb;
-#endif
-{
-  YYUSE (yyvaluep);
-  YYUSE (pb);
-  YYUSE (sb);
-
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  switch (yytype)
-    {
-      case 20: /* "value" */
-
-	{
-	VNamelistRelease((yyvaluep->namelist));
-};
-
-	break;
-
-      default:
-	break;
-    }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes.  */
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (KFGParseBlock* pb, KFGScanBlock* sb);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (KFGParseBlock* pb, KFGScanBlock* sb)
-#else
-int
-yyparse (pb, sb)
-    KFGParseBlock* pb;
-    KFGScanBlock* sb;
-#endif
-#endif
-{
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-
-    /* Number of syntax errors so far.  */
-    int yynerrs;
-
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       `yyss': related to states.
-       `yyvs': related to semantic values.
-
-       Refer to the stacks thru separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yytoken = 0;
-  yyss = yyssa;
-  yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-  yyssp = yyss;
-  yyvsp = yyvs;
-
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-	/* Give user a chance to reallocate the stack.  Use copies of
-	   these so that the &'s don't force the real ones into
-	   memory.  */
-	YYSTYPE *yyvs1 = yyvs;
-	yytype_int16 *yyss1 = yyss;
-
-	/* Each stack pointer address is followed by the size of the
-	   data in use in that stack, in bytes.  This used to be a
-	   conditional around just the two extra args, but that might
-	   be undefined if yyoverflow is a macro.  */
-	yyoverflow (YY_("memory exhausted"),
-		    &yyss1, yysize * sizeof (*yyssp),
-		    &yyvs1, yysize * sizeof (*yyvsp),
-		    &yystacksize);
-
-	yyss = yyss1;
-	yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-	goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-	yystacksize = YYMAXDEPTH;
-
-      {
-	yytype_int16 *yyss1 = yyss;
-	union yyalloc *yyptr =
-	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-	if (! yyptr)
-	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss_alloc, yyss);
-	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-	if (yyss1 != yyssa)
-	  YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-		  (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-	YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  *++yyvsp = yylval;
-
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 6:
-
-    { 
-			rc_t rc=sb->write_nvp(sb->self, (yyvsp[(1) - (4)].pb).tokenText, (yyvsp[(1) - (4)].pb).tokenLength, (yyvsp[(3) - (4)].namelist));
-			if (rc != 0)
-			{
-				ReportRc(pb, sb, rc);
-			}
-			VNamelistRelease((yyvsp[(3) - (4)].namelist));
-		}
-    break;
-
-  case 12:
-
-    { VNamelistMake(&(yyval.namelist), NAMELIST_ALLOC_BLKSIZE); AppendName(sb, (yyval.namelist), &(yyvsp[(1) - (1)].pb)); }
-    break;
-
-  case 13:
-
-    { VNamelistMake(&(yyval.namelist), NAMELIST_ALLOC_BLKSIZE); AppendName(sb, (yyval.namelist), &(yyvsp[(1) - (1)].pb)); }
-    break;
-
-  case 14:
-
-    { AppendName(sb, (yyvsp[(1) - (2)].namelist), &(yyvsp[(2) - (2)].pb)); (yyval.namelist)=(yyvsp[(1) - (2)].namelist); }
-    break;
-
-  case 15:
-
-    { AppendName(sb, (yyvsp[(1) - (2)].namelist), &(yyvsp[(2) - (2)].pb)); (yyval.namelist)=(yyvsp[(1) - (2)].namelist); }
-    break;
-
-
-
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-  /* Now `shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (pb, sb, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (pb, sb, yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-	 error, discard it.  */
-
-      if (yychar <= YYEOF)
-	{
-	  /* Return failure if at end of input.  */
-	  if (yychar == YYEOF)
-	    YYABORT;
-	}
-      else
-	{
-	  yydestruct ("Error: discarding",
-		      yytoken, &yylval, pb, sb);
-	  yychar = YYEMPTY;
-	}
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-	{
-	  yyn += YYTERROR;
-	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-	    {
-	      yyn = yytable[yyn];
-	      if (0 < yyn)
-		break;
-	    }
-	}
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-	YYABORT;
-
-
-      yydestruct ("Error: popping",
-		  yystos[yystate], yyvsp, pb, sb);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  *++yyvsp = yylval;
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined(yyoverflow) || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (pb, sb, YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, pb, sb);
-    }
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-		  yystos[*yyssp], yyvsp, pb, sb);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
-}
-
-
-
-
-
-#include <assert.h>
-#include <klib/token.h>
-#include <klib/log.h>
-#include <klib/writer.h>
-
-void KFG_error(KFGParseBlock* pb, KFGScanBlock* sb, const char* msg)
-{
-    sb->report_error(sb, msg);
-}
-
-void ReportRc(KFGParseBlock* pb, KFGScanBlock* sb, rc_t rc)
-{
-	char buf[1025];
-	size_t num_writ;
-	RCExplain(rc, buf, 1024, &num_writ);
-	buf[1024]=0;
-	yyerror(0, sb, buf);
-}
-
-void AppendName(KFGScanBlock* sb, VNamelist* nl, const KFGParseBlock* pb)
-{	/* pb represents either a kfgSTRING or a kfgESCAPED_STRING with opening and closed quotes clipped */
-    rc_t rc;
-    KToken t;
-    size_t value_size;
-    char* buf;
-
-	if (pb->tokenLength == 0)
-	{
-		return;
-	}
-		    
-    t.id= pb->tokenId == kfgESCAPED_STRING ? eEscapedString : eString;
-    StringInit(&t.str, pb->tokenText-1, pb->tokenLength+2, pb->tokenLength+2); /* compensate for clipped quotes in order to use KTokenToString */
-    buf=(char*)malloc(t.str.size);
-
-	/* KTokenToString removes opening and closing quotes and handles escapes if present */
-	rc = KTokenToString (&t, buf, t.str.size, &value_size);
-	if (rc != 0)
-	{
-		ReportRc(0, sb, rc);
-	}
-	else
-	{	
-		assert(value_size < t.str.size);
-        buf[value_size]=0;
-		rc = VNamelistAppend(nl, buf);
-		if (rc != 0)
-		{
-			ReportRc(0, sb, rc);
-		}
-	}		
-	free(buf);
-}
-
-
-	
-
diff --git a/libs/kfg/config-lex.c b/libs/kfg/config-lex.c
deleted file mode 100644
index 55543c2..0000000
--- a/libs/kfg/config-lex.c
+++ /dev/null
@@ -1,2511 +0,0 @@
-
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* An opaque pointer. */
-#ifndef YY_TYPEDEF_YY_SCANNER_T
-#define YY_TYPEDEF_YY_SCANNER_T
-typedef void* yyscan_t;
-#endif
-
-/* For convenience, these vars (plus the bison vars far below)
-   are macros in the reentrant scanner. */
-#define yyin yyg->yyin_r
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
-#define yy_flex_debug yyg->yy_flex_debug_r
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yyg->yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yyg->yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart(yyin ,yyscanner )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
-     *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE yylex. 
-     *       One obvious solution it to make yy_act a global. I tried that, and saw
-     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
-     */
-    #define  YY_LESS_LINENO(n) \
-            do { \
-                int yyl;\
-                for ( yyl = n; yyl < yyleng; ++yyl )\
-                    if ( yytext[yyl] == '\n' )\
-                        --yylineno;\
-            }while(0)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = yyg->yy_hold_char; \
-		YY_RESTORE_YY_MORE_OFFSET \
-		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-		} \
-	while ( 0 )
-
-#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	yy_size_t yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	int yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via yyrestart()), so that the user can continue scanning by
-	 * just pointing yyin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
-                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
-
-void yyrestart (FILE *input_file ,yyscan_t yyscanner );
-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
-void yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-void yypop_buffer_state (yyscan_t yyscanner );
-
-static void yyensure_buffer_stack (yyscan_t yyscanner );
-static void yy_load_buffer_state (yyscan_t yyscanner );
-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
-
-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
-
-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
-
-void *yyalloc (yy_size_t ,yyscan_t yyscanner );
-void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
-void yyfree (void * ,yyscan_t yyscanner );
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        yyensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        yyensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define yywrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-typedef int yy_state_type;
-
-#define yytext_ptr yytext_r
-
-static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
-static int yy_get_next_buffer (yyscan_t yyscanner );
-static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
-	yyg->yytext_ptr = yy_bp; \
-	yyleng = (size_t) (yy_cp - yy_bp); \
-	yyg->yy_hold_char = *yy_cp; \
-	*yy_cp = '\0'; \
-	yyg->yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 35
-#define YY_END_OF_BUFFER 36
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[135] =
-    {   0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       13,   13,   36,   34,    8,    9,   24,    7,   34,   15,
-       34,   11,   32,    2,    4,   35,   35,   35,   35,   31,
-       35,   35,   35,   22,   13,   13,   24,   23,    0,    0,
-        7,    0,   15,    0,   14,    0,    1,   10,   11,    0,
-        2,    3,    4,    0,    5,    0,    6,    0,   31,    0,
-       29,    0,    0,   22,   20,   13,   13,   23,    0,   27,
-       26,   26,    0,    0,   14,   18,   17,   17,   10,    0,
-       11,   30,   21,   13,   27,   26,   25,   26,    0,   26,
-        0,   33,    0,    0,   18,   17,   17,   16,    0,   17,
-
-        0,   10,   11,   12,   13,   13,    0,   26,   25,   26,
-       26,   26,   28,    0,    0,   17,   17,   16,   17,   17,
-       19,   10,   13,   26,   25,   26,   26,    0,   17,   17,
-       16,   17,   13,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        2,    4,    4,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    5,    6,    7,    1,    1,    8,    9,
-       10,   11,    1,    1,   12,   12,   13,   14,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,    1,    1,    1,
-       15,    1,    1,    1,   14,   14,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
-        1,   16,    1,    1,   14,    1,   14,   14,   14,   14,
-
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
-       14,   14,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[17] =
-    {   0,
-        1,    1,    2,    3,    1,    1,    1,    1,    1,    4,
-        5,    6,    6,    6,    1,    7
-    } ;
-
-static yyconst flex_int16_t yy_base[163] =
-    {   0,
-        0,    0,   14,   15,   16,   17,   26,   40,   54,   68,
-       82,   90,   86,  670,  670,  670,   96,    0,   74,  106,
-       10,   69,  670,    0,  670,  120,  131,   27,  670,  670,
-      142,   15,  149,  670,    0,   72,  154,  670,  168,    0,
-        0,   66,  178,  192,  670,    0,  670,   66,   65,   63,
-        0,  206,  670,  217,  670,  228,  670,   30,  670,   65,
-      670,   31,   64,  670,  670,    0,   55,  670,   59,  670,
-      237,  249,  256,   58,  670,  670,  264,  274,   53,   51,
-       51,  670,  670,  281,  670,  291,  670,  305,    0,  317,
-      331,  670,    0,   49,  670,  341,  355,  670,    0,  365,
-
-      379,   47,   46,  670,    0,   41,  393,    0,    0,  407,
-      420,    0,  670,   34,  434,    0,  448,    0,  461,    0,
-      670,   41,   37,    0,    0,    0,  474,    0,    0,    0,
-        0,  487,   38,  670,  503,  510,  517,  524,  531,  538,
-      545,   47,  552,  559,  566,  572,  578,  585,  592,   35,
-      599,  606,  613,  620,   34,  627,  634,  641,  648,   30,
-      655,  662
-    } ;
-
-static yyconst flex_int16_t yy_def[163] =
-    {   0,
-      134,    1,  135,  135,  135,  135,  136,  136,  137,  137,
-      138,  138,  134,  134,  134,  134,  139,  140,  134,  141,
-      134,  142,  134,  143,  134,  144,  144,  145,  134,  134,
-      145,  146,  146,  134,  147,  147,  139,  134,  139,  148,
-      140,  134,  141,  141,  134,  149,  134,  150,  142,  134,
-      143,  144,  134,  144,  134,  144,  134,  145,  134,   31,
-      134,  146,   33,  134,  134,  147,  147,  134,   39,  134,
-      151,  152,  134,   44,  134,  134,  153,  154,  150,  134,
-      155,  134,  134,  147,  134,  151,  134,  156,  157,  152,
-      152,  134,   73,  134,  134,  153,  158,  134,  159,  154,
-
-      154,  160,  155,  134,   84,  147,  151,   86,   86,  156,
-      161,   86,  134,   73,  153,   96,  158,   96,  162,   96,
-      134,  160,   84,   86,   86,  110,  161,  114,   96,  117,
-       96,  162,   84,    0,  134,  134,  134,  134,  134,  134,
-      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-      134,  134
-    } ;
-
-static yyconst flex_int16_t yy_nxt[687] =
-    {   0,
-       14,   15,   16,   15,   17,   18,   19,   20,   14,   14,
-       14,   14,   21,   22,   23,   14,   25,   25,   25,   25,
-       47,   63,   64,   48,   26,   26,   27,   27,   29,   29,
-       30,   59,   31,   60,   59,  122,   60,   63,   64,  103,
-       79,   29,   29,   29,   30,  128,   31,  128,  133,  133,
-      133,  133,   49,   80,  123,   29,   29,   29,   50,   80,
-       33,   34,  114,   50,  102,   80,   95,   85,   84,   29,
-       29,   29,   83,   82,   33,   34,   81,   50,   80,   73,
-       67,   50,   42,   29,   29,  134,  134,  134,   36,  134,
-      134,   29,   29,  134,  134,  134,   36,  134,  134,   29,
-
-       38,  134,   39,  134,  134,  134,  134,  134,  134,  134,
-      134,   40,   44,   45,  134,  134,  134,  134,  134,  134,
-      134,   46,   53,  134,  134,  134,  134,  134,  134,  134,
-       54,  134,   55,   53,  134,  134,  134,  134,  134,  134,
-      134,   56,  134,   57,   58,   58,  134,  134,  134,  134,
-       61,   62,   62,  134,  134,  134,  134,   65,   68,  134,
-       69,  134,  134,  134,  134,  134,  134,  134,  134,   40,
-       37,   37,  134,  134,  134,  134,   70,  134,  134,  134,
-      134,  134,  134,   71,   74,   75,  134,  134,  134,  134,
-      134,  134,  134,   46,   43,   43,  134,  134,  134,  134,
-
-       76,  134,  134,  134,  134,  134,  134,   77,  134,  134,
-      134,  134,  134,  134,  134,  134,  134,  134,  134,   53,
-      134,  134,  134,  134,  134,  134,  134,   54,  134,   55,
-       53,  134,  134,  134,  134,  134,  134,  134,   56,  134,
-       57,   87,  134,   88,  134,  134,  134,  134,  134,  134,
-      134,  134,   89,   87,  134,   91,  134,  134,  134,  134,
-      134,  134,  134,  134,   40,   92,  134,   93,   94,   93,
-       97,   98,  134,  134,  134,  134,  134,  134,  134,   99,
-      101,   98,  134,  134,  134,  134,  134,  134,  134,   46,
-      104,  134,  105,  106,  105,   87,  134,  107,  134,  134,
-
-      134,  134,  134,  134,  134,  134,   89,   86,   86,  109,
-      134,  110,  134,   86,  134,  134,  134,  134,  134,  134,
-      111,   87,  134,   91,  134,  134,  134,  134,  134,  134,
-      134,  134,   40,   90,   90,  134,  134,  134,  134,  113,
-      134,  134,  134,  134,  134,  134,   71,  115,   98,  134,
-      134,  134,  134,  134,  134,  134,   99,   96,   96,  134,
-      134,  117,  118,   96,  134,  134,  134,  134,  134,  134,
-      119,  101,   98,  134,  134,  134,  134,  134,  134,  134,
-       46,  100,  100,  134,  134,  134,  134,  121,  134,  134,
-      134,  134,  134,  134,   77,   86,   86,  134,  134,  134,
-
-      134,  134,  134,  134,  134,  134,  134,  134,   71,   86,
-       86,  109,  134,  110,  134,   86,  134,  134,  134,  134,
-      134,  134,  111,  112,  125,  134,  126,  134,  134,  134,
-      134,  134,  134,  134,  134,  127,   96,   96,  134,  134,
-      134,  134,  134,  134,  134,  134,  134,  134,  134,   77,
-       96,   96,  134,  134,  117,  118,   96,  134,  134,  134,
-      134,  134,  134,  119,  120,  134,  134,  130,  131,  134,
-      134,  134,  134,  134,  134,  134,  132,  112,  125,  134,
-       88,  134,  134,  134,  134,  134,  134,  134,  134,  127,
-      120,  134,  134,   97,  131,  134,  134,  134,  134,  134,
-
-      134,  134,  132,   24,   24,   24,   24,   24,   24,   24,
-       28,   28,   28,   28,   28,   28,   28,   32,   32,   32,
-       32,   32,   32,   32,   35,   35,   35,   35,   35,   35,
-       35,   37,  134,  134,   37,   37,   37,   37,   41,  134,
-       41,   41,   41,   41,   41,   43,  134,  134,   43,   43,
-       43,   43,   51,  134,   51,   51,  134,   51,   51,   52,
-       52,   52,   52,   52,   52,   52,   58,  134,  134,   58,
-       58,   58,   62,  134,  134,   62,   62,   62,   66,  134,
-       66,  134,   66,   66,   66,   72,  134,   72,   72,   72,
-       72,   72,   78,  134,   78,   78,   78,   78,   78,   86,
-
-      134,  134,   86,   86,   86,   86,   90,  134,  134,   90,
-       90,   90,   90,   96,  134,  134,   96,   96,   96,   96,
-      100,  134,  134,  100,  100,  100,  100,  108,  108,  108,
-      108,  108,  108,  108,  112,  134,  112,  112,  112,  112,
-      112,  116,  116,  116,  116,  116,  116,  116,  120,  134,
-      120,  120,  120,  120,  120,  124,  134,  124,  124,  124,
-      124,  124,  129,  134,  129,  129,  129,  129,  129,   13,
-      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-      134,  134,  134,  134,  134,  134
-    } ;
-
-static yyconst flex_int16_t yy_chk[687] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    3,    4,    5,    6,
-       21,   32,   32,   21,    3,    4,    5,    6,    7,    7,
-        7,   28,    7,   28,   58,  160,   58,   62,   62,  155,
-      150,    7,    8,    8,    8,  114,    8,  114,  123,  133,
-      123,  133,  142,  122,  106,    8,    9,    9,  103,  102,
-        9,    9,   94,   81,   80,   79,   74,   69,   67,    9,
-       10,   10,   63,   60,   10,   10,   50,   49,   48,   42,
-       36,   22,   19,   10,   11,   13,    0,    0,   11,    0,
-        0,   11,   12,    0,    0,    0,   12,    0,    0,   12,
-
-       17,    0,   17,    0,    0,    0,    0,    0,    0,    0,
-        0,   17,   20,   20,    0,    0,    0,    0,    0,    0,
-        0,   20,   26,    0,    0,    0,    0,    0,    0,    0,
-       26,    0,   26,   27,    0,    0,    0,    0,    0,    0,
-        0,   27,    0,   27,   31,   31,    0,    0,    0,    0,
-       31,   33,   33,    0,    0,    0,    0,   33,   37,    0,
-       37,    0,    0,    0,    0,    0,    0,    0,    0,   37,
-       39,   39,    0,    0,    0,    0,   39,    0,    0,    0,
-        0,    0,    0,   39,   43,   43,    0,    0,    0,    0,
-        0,    0,    0,   43,   44,   44,    0,    0,    0,    0,
-
-       44,    0,    0,    0,    0,    0,    0,   44,   52,    0,
-        0,    0,    0,    0,    0,    0,   52,    0,   52,   54,
-        0,    0,    0,    0,    0,    0,    0,   54,    0,   54,
-       56,    0,    0,    0,    0,    0,    0,    0,   56,    0,
-       56,   71,    0,   71,    0,    0,    0,    0,    0,    0,
-        0,    0,   71,   72,    0,   72,    0,    0,    0,    0,
-        0,    0,    0,    0,   72,   73,    0,   73,   73,   73,
-       77,   77,    0,    0,    0,    0,    0,    0,    0,   77,
-       78,   78,    0,    0,    0,    0,    0,    0,    0,   78,
-       84,    0,   84,   84,   84,   86,    0,   86,    0,    0,
-
-        0,    0,    0,    0,    0,    0,   86,   88,   88,   88,
-        0,   88,    0,   88,    0,    0,    0,    0,    0,    0,
-       88,   90,    0,   90,    0,    0,    0,    0,    0,    0,
-        0,    0,   90,   91,   91,    0,    0,    0,    0,   91,
-        0,    0,    0,    0,    0,    0,   91,   96,   96,    0,
-        0,    0,    0,    0,    0,    0,   96,   97,   97,    0,
-        0,   97,   97,   97,    0,    0,    0,    0,    0,    0,
-       97,  100,  100,    0,    0,    0,    0,    0,    0,    0,
-      100,  101,  101,    0,    0,    0,    0,  101,    0,    0,
-        0,    0,    0,    0,  101,  107,  107,    0,    0,    0,
-
-        0,  107,    0,    0,    0,    0,    0,    0,  107,  110,
-      110,  110,    0,  110,    0,  110,    0,    0,    0,    0,
-        0,    0,  110,  111,  111,    0,  111,    0,    0,    0,
-        0,    0,    0,    0,    0,  111,  115,  115,    0,    0,
-        0,    0,  115,    0,    0,    0,    0,    0,    0,  115,
-      117,  117,    0,    0,  117,  117,  117,    0,    0,    0,
-        0,    0,    0,  117,  119,    0,    0,  119,  119,    0,
-        0,    0,    0,    0,    0,    0,  119,  127,  127,    0,
-      127,    0,    0,    0,    0,    0,    0,    0,    0,  127,
-      132,    0,    0,  132,  132,    0,    0,    0,    0,    0,
-
-        0,    0,  132,  135,  135,  135,  135,  135,  135,  135,
-      136,  136,  136,  136,  136,  136,  136,  137,  137,  137,
-      137,  137,  137,  137,  138,  138,  138,  138,  138,  138,
-      138,  139,    0,    0,  139,  139,  139,  139,  140,    0,
-      140,  140,  140,  140,  140,  141,    0,    0,  141,  141,
-      141,  141,  143,    0,  143,  143,    0,  143,  143,  144,
-      144,  144,  144,  144,  144,  144,  145,    0,    0,  145,
-      145,  145,  146,    0,    0,  146,  146,  146,  147,    0,
-      147,    0,  147,  147,  147,  148,    0,  148,  148,  148,
-      148,  148,  149,    0,  149,  149,  149,  149,  149,  151,
-
-        0,    0,  151,  151,  151,  151,  152,    0,    0,  152,
-      152,  152,  152,  153,    0,    0,  153,  153,  153,  153,
-      154,    0,    0,  154,  154,  154,  154,  156,  156,  156,
-      156,  156,  156,  156,  157,    0,  157,  157,  157,  157,
-      157,  158,  158,  158,  158,  158,  158,  158,  159,    0,
-      159,  159,  159,  159,  159,  161,    0,  161,  161,  161,
-      161,  161,  162,    0,  162,  162,  162,  162,  162,  134,
-      134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-      134,  134,  134,  134,  134,  134
-    } ;
-
-/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[36] =
-    {   0,
-0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 
-    0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0,     };
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-	#include <sysalloc.h>
-    
-	#include "kfg-parse.h"
-	#include "config-tokens.h"    
-	
-    #define YYSTYPE KFGParseBlock
-    
-    /* code to populate token with internal values */
-    #define YY_USER_ACTION              \
-        yylval -> tokenText		= yytext;	\
-        yylval -> tokenLength	= yyleng;	\
-        yylval -> line_no		= yylineno;	\
-        yylval -> column_no		= yycolumn; \
-        yycolumn += yyleng; 
-        
-    #define REM_LQUOTE \
-		++ yylval -> tokenText;	\
-		-- yylval -> tokenLength; \
-		++ yylval -> column_no;
-		
-    #define REM_RQUOTE \
-		-- yylval -> tokenLength; 
-#define YY_NO_UNISTD_H 1
-/* re-entrant scanner */
-/* bison options */
-/* maintain state stack */
-/* let parser handle EOF */
-/* start-state for slash-star comments */
-
-/* states for strings */
-
-/* in-string variable reference */
-
-/* node/name in a path */
-
-#define INITIAL 0
-#define CMT_SLASH_STAR 1
-#define CMT_MULTI_LINE 2
-#define IN_DBL_STRING 3
-#define IN_SNG_STRING 4
-#define IN_VAR_REF 5
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-/* Holds the entire state of the reentrant scanner. */
-struct yyguts_t
-    {
-
-    /* User-defined. Not touched by flex. */
-    YY_EXTRA_TYPE yyextra_r;
-
-    /* The rest are the same as the globals declared in the non-reentrant scanner. */
-    FILE *yyin_r, *yyout_r;
-    size_t yy_buffer_stack_top; /**< index of top of stack. */
-    size_t yy_buffer_stack_max; /**< capacity of stack. */
-    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
-    char yy_hold_char;
-    int yy_n_chars;
-    int yyleng_r;
-    char *yy_c_buf_p;
-    int yy_init;
-    int yy_start;
-    int yy_did_buffer_switch_on_eof;
-    int yy_start_stack_ptr;
-    int yy_start_stack_depth;
-    int *yy_start_stack;
-    yy_state_type yy_last_accepting_state;
-    char* yy_last_accepting_cpos;
-
-    int yylineno_r;
-    int yy_flex_debug_r;
-
-    char *yytext_r;
-    int yy_more_flag;
-    int yy_more_len;
-
-    YYSTYPE * yylval_r;
-
-    }; /* end struct yyguts_t */
-
-static int yy_init_globals (yyscan_t yyscanner );
-
-    /* This must go here because YYSTYPE and YYLTYPE are included
-     * from bison output in section 1.*/
-    #    define yylval yyg->yylval_r
-    
-int yylex_init (yyscan_t* scanner);
-
-int yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int yylex_destroy (yyscan_t yyscanner );
-
-int yyget_debug (yyscan_t yyscanner );
-
-void yyset_debug (int debug_flag ,yyscan_t yyscanner );
-
-YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner );
-
-void yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
-
-FILE *yyget_in (yyscan_t yyscanner );
-
-void yyset_in  (FILE * in_str ,yyscan_t yyscanner );
-
-FILE *yyget_out (yyscan_t yyscanner );
-
-void yyset_out  (FILE * out_str ,yyscan_t yyscanner );
-
-int yyget_leng (yyscan_t yyscanner );
-
-char *yyget_text (yyscan_t yyscanner );
-
-int yyget_lineno (yyscan_t yyscanner );
-
-void yyset_lineno (int line_number ,yyscan_t yyscanner );
-
-YYSTYPE * yyget_lval (yyscan_t yyscanner );
-
-void yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap (yyscan_t yyscanner );
-#else
-extern int yywrap (yyscan_t yyscanner );
-#endif
-#endif
-
-    static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
-    
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (yyscan_t yyscanner );
-#else
-static int input (yyscan_t yyscanner );
-#endif
-
-#endif
-
-    static void yy_push_state (int new_state ,yyscan_t yyscanner);
-    
-    static void yy_pop_state (yyscan_t yyscanner );
-    
-    static int yy_top_state (yyscan_t yyscanner );
-    
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		int n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( yyin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(yyin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int yylex \
-               (YYSTYPE * yylval_param ,yyscan_t yyscanner);
-
-#define YY_DECL int yylex \
-               (YYSTYPE * yylval_param , yyscan_t yyscanner)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
- /* multi-line comments */
-
-    yylval = yylval_param;
-
-	if ( !yyg->yy_init )
-		{
-		yyg->yy_init = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! yyg->yy_start )
-			yyg->yy_start = 1;	/* first start state */
-
-		if ( ! yyin )
-			yyin = stdin;
-
-		if ( ! yyout )
-			yyout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			yyensure_buffer_stack (yyscanner);
-			YY_CURRENT_BUFFER_LVALUE =
-				yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-		}
-
-		yy_load_buffer_state(yyscanner );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		yy_cp = yyg->yy_c_buf_p;
-
-		/* Support of yytext. */
-		*yy_cp = yyg->yy_hold_char;
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = yyg->yy_start;
-yy_match:
-		do
-			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				yyg->yy_last_accepting_state = yy_current_state;
-				yyg->yy_last_accepting_cpos = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 135 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			++yy_cp;
-			}
-		while ( yy_current_state != 134 );
-		yy_cp = yyg->yy_last_accepting_cpos;
-		yy_current_state = yyg->yy_last_accepting_state;
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-
-		YY_DO_BEFORE_ACTION;
-
-		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
-			{
-			int yyl;
-			for ( yyl = 0; yyl < yyleng; ++yyl )
-				if ( yytext[yyl] == '\n' )
-					   
-    do{ yylineno++;
-        yycolumn=0;
-    }while(0)
-;
-			}
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = yyg->yy_hold_char;
-			yy_cp = yyg->yy_last_accepting_cpos;
-			yy_current_state = yyg->yy_last_accepting_state;
-			goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-{ yy_push_state ( CMT_SLASH_STAR, yyscanner ); }
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-/* ignore */
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-/* ignore */
-	YY_BREAK
-case 4:
-/* rule 4 can match eol */
-YY_RULE_SETUP
-{ BEGIN CMT_MULTI_LINE; }
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-{ yy_pop_state ( yyscanner ); }
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-{ yy_pop_state ( yyscanner ); return kfgEND_LINE; }
-	YY_BREAK
-/* line comments */
-case 7:
-YY_RULE_SETUP
-/* ignore */
-	YY_BREAK
-/* ignored tokens */
-case 8:
-YY_RULE_SETUP
-/* ignore */
-	YY_BREAK
-/* end of line is significant */
-case 9:
-/* rule 9 can match eol */
-YY_RULE_SETUP
-{ return kfgEND_LINE; }
-	YY_BREAK
-/* normal, POSIX-style paths */
-case 10:
-YY_RULE_SETUP
-{ return kfgABS_PATH; }
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-{ return kfgREL_PATH; }
-	YY_BREAK
-/* variable references inside strings */
-case 12:
-YY_RULE_SETUP
-{ yy_pop_state ( yyscanner ); return kfgVAR_REF; }
-	YY_BREAK
-case 13:
-YY_RULE_SETUP
-{ yy_pop_state ( yyscanner ); return kfgUNTERM_VAR_REF; }
-	YY_BREAK
-case YY_STATE_EOF(IN_VAR_REF):
-{ yy_pop_state ( yyscanner ); return kfgUNTERM_VAR_REF; } 
-	YY_BREAK
-/* single quoted strings */
-case 14:
-/* rule 14 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; REM_RQUOTE; return kfgSTRING; }
-	YY_BREAK
-case 15:
-/* rule 15 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; return kfgUNTERM_STRING; }
-	YY_BREAK
-case 16:
-/* rule 16 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; REM_RQUOTE; return kfgESCAPED_STRING; }
-	YY_BREAK
-case 17:
-/* rule 17 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; return kfgUNTERM_ESCAPED_STRING; }
-	YY_BREAK
-/* single quoted strings with variable references*/
-case 18:
-/* rule 18 can match eol */
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 2;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ REM_LQUOTE; yy_push_state ( IN_SNG_STRING, yyscanner ); yy_push_state ( IN_VAR_REF, yyscanner ); return kfgSTRING; }
-	YY_BREAK
-case 19:
-/* rule 19 can match eol */
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 2;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ REM_LQUOTE; yy_push_state ( IN_SNG_STRING, yyscanner ); yy_push_state ( IN_VAR_REF, yyscanner ); return kfgESCAPED_STRING; }
-	YY_BREAK
-case 20:
-YY_RULE_SETUP
-{ yy_push_state ( IN_VAR_REF, yyscanner ); yyless(0); }
-	YY_BREAK
-case 21:
-/* rule 21 can match eol */
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 2;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ yy_push_state ( IN_VAR_REF, yyscanner ); return kfgSTRING; }
-	YY_BREAK
-case 22:
-/* rule 22 can match eol */
-YY_RULE_SETUP
-{ REM_RQUOTE; yy_pop_state ( yyscanner ); return kfgSTRING; } 
-	YY_BREAK
-/* double quoted strings */
-case 23:
-/* rule 23 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; REM_RQUOTE; return kfgSTRING; }
-	YY_BREAK
-case 24:
-/* rule 24 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; return kfgUNTERM_STRING; }
-	YY_BREAK
-case 25:
-/* rule 25 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; REM_RQUOTE; return kfgESCAPED_STRING; }
-	YY_BREAK
-case 26:
-/* rule 26 can match eol */
-YY_RULE_SETUP
-{ REM_LQUOTE; return kfgUNTERM_ESCAPED_STRING; }
-	YY_BREAK
-/* double quoted strings with variable references*/
-case 27:
-/* rule 27 can match eol */
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 2;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ REM_LQUOTE; yy_push_state ( IN_DBL_STRING, yyscanner ); yy_push_state ( IN_VAR_REF, yyscanner ); return kfgSTRING; }
-	YY_BREAK
-case 28:
-/* rule 28 can match eol */
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 2;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ REM_LQUOTE; yy_push_state ( IN_DBL_STRING, yyscanner ); yy_push_state ( IN_VAR_REF, yyscanner ); return kfgESCAPED_STRING; }
-	YY_BREAK
-case 29:
-YY_RULE_SETUP
-{ yy_push_state ( IN_VAR_REF, yyscanner ); yyless(0); }
-	YY_BREAK
-case 30:
-/* rule 30 can match eol */
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 2;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ yy_push_state ( IN_VAR_REF, yyscanner ); return kfgSTRING; }
-	YY_BREAK
-case 31:
-/* rule 31 can match eol */
-YY_RULE_SETUP
-{ REM_RQUOTE; yy_pop_state ( yyscanner ); return kfgSTRING; } 
-	YY_BREAK
-/* literals */
-case 32:
-YY_RULE_SETUP
-{ return kfgASSIGN; }
-	YY_BREAK
-case 33:
-YY_RULE_SETUP
-{ return kfgVAR_REF; }
-	YY_BREAK
-/* unrecognized input */
-case 34:
-YY_RULE_SETUP
-{ return kfgUNRECOGNIZED; }
-	YY_BREAK
-case 35:
-YY_RULE_SETUP
-ECHO;
-	YY_BREAK
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(CMT_SLASH_STAR):
-case YY_STATE_EOF(CMT_MULTI_LINE):
-case YY_STATE_EOF(IN_DBL_STRING):
-case YY_STATE_EOF(IN_SNG_STRING):
-	yyterminate();
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = yyg->yy_hold_char;
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed yyin at a new source and called
-			 * yylex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state( yyscanner );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
-
-			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++yyg->yy_c_buf_p;
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = yyg->yy_last_accepting_cpos;
-				yy_current_state = yyg->yy_last_accepting_state;
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer( yyscanner ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				yyg->yy_did_buffer_switch_on_eof = 0;
-
-				if ( yywrap(yyscanner ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * yytext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				yyg->yy_c_buf_p =
-					yyg->yytext_ptr + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				yyg->yy_c_buf_p =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of yylex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = yyg->yytext_ptr;
-	register int number_to_move, i;
-	int ret_val;
-
-	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
-
-	else
-		{
-			int num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-			int yy_c_buf_p_offset =
-				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				int new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			yyg->yy_n_chars, (size_t) num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	if ( yyg->yy_n_chars == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			yyrestart(yyin  ,yyscanner);
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
-	yyg->yy_n_chars += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
-	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	yy_current_state = yyg->yy_start;
-
-	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
-		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			yyg->yy_last_accepting_state = yy_current_state;
-			yyg->yy_last_accepting_cpos = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 135 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
-{
-	register int yy_is_jam;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
-	register char *yy_cp = yyg->yy_c_buf_p;
-
-	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		yyg->yy_last_accepting_state = yy_current_state;
-		yyg->yy_last_accepting_cpos = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 135 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 134);
-
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-    static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
-{
-	register char *yy_cp;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    yy_cp = yyg->yy_c_buf_p;
-
-	/* undo effects of setting up yytext */
-	*yy_cp = yyg->yy_hold_char;
-
-	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-		{ /* need to shift things up to make room */
-		/* +2 for EOB chars. */
-		register int number_to_move = yyg->yy_n_chars + 2;
-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-		register char *source =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
-		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			*--dest = *--source;
-
-		yy_cp += (int) (dest - source);
-		yy_bp += (int) (dest - source);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
-		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-			YY_FATAL_ERROR( "flex scanner push-back overflow" );
-		}
-
-	*--yy_cp = (char) c;
-
-    if ( c == '\n' ){
-        --yylineno;
-    }
-
-	yyg->yytext_ptr = yy_bp;
-	yyg->yy_hold_char = *yy_cp;
-	yyg->yy_c_buf_p = yy_cp;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (yyscan_t yyscanner)
-#else
-    static int input  (yyscan_t yyscanner)
-#endif
-
-{
-	int c;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	*yyg->yy_c_buf_p = yyg->yy_hold_char;
-
-	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			/* This was really a NUL. */
-			*yyg->yy_c_buf_p = '\0';
-
-		else
-			{ /* need more input */
-			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
-			++yyg->yy_c_buf_p;
-
-			switch ( yy_get_next_buffer( yyscanner ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					yyrestart(yyin ,yyscanner);
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( yywrap(yyscanner ) )
-						return EOF;
-
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput(yyscanner);
-#else
-					return input(yyscanner);
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
-	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
-	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
-
-	if ( c == '\n' )
-		   
-    do{ yylineno++;
-        yycolumn=0;
-    }while(0)
-;
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * @param yyscanner The scanner object.
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! YY_CURRENT_BUFFER ){
-        yyensure_buffer_stack (yyscanner);
-		YY_CURRENT_BUFFER_LVALUE =
-            yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-	}
-
-	yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
-	yy_load_buffer_state(yyscanner );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * @param yyscanner The scanner object.
- */
-    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		yypop_buffer_state();
-	 *		yypush_buffer_state(new_buffer);
-     */
-	yyensure_buffer_stack (yyscanner);
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	yy_load_buffer_state(yyscanner );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (yywrap()) processing, but the only time this flag
-	 * is looked at is after yywrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-static void yy_load_buffer_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	yyg->yy_hold_char = *yyg->yy_c_buf_p;
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * @param yyscanner The scanner object.
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ,yyscanner );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	yy_init_buffer(b,file ,yyscanner);
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- * @param yyscanner The scanner object.
- */
-    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		yyfree((void *) b->yy_ch_buf ,yyscanner );
-
-	yyfree((void *) b ,yyscanner );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
-    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
-
-{
-	int oerrno = errno;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	yy_flush_buffer(b ,yyscanner);
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then yy_init_buffer was _probably_
-     * called from yyrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * @param yyscanner The scanner object.
- */
-    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		yy_load_buffer_state(yyscanner );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  @param yyscanner The scanner object.
- */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (new_buffer == NULL)
-		return;
-
-	yyensure_buffer_stack(yyscanner);
-
-	/* This block is copied from yy_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		yyg->yy_buffer_stack_top++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from yy_switch_to_buffer. */
-	yy_load_buffer_state(yyscanner );
-	yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  @param yyscanner The scanner object.
- */
-void yypop_buffer_state (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (!YY_CURRENT_BUFFER)
-		return;
-
-	yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if (yyg->yy_buffer_stack_top > 0)
-		--yyg->yy_buffer_stack_top;
-
-	if (YY_CURRENT_BUFFER) {
-		yy_load_buffer_state(yyscanner );
-		yyg->yy_did_buffer_switch_on_eof = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void yyensure_buffer_stack (yyscan_t yyscanner)
-{
-	int num_to_alloc;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if (!yyg->yy_buffer_stack) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								, yyscanner);
-		if ( ! yyg->yy_buffer_stack )
-			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-								  
-		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		yyg->yy_buffer_stack_max = num_to_alloc;
-		yyg->yy_buffer_stack_top = 0;
-		return;
-	}
-
-	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
-		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
-								(yyg->yy_buffer_stack,
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								, yyscanner);
-		if ( ! yyg->yy_buffer_stack )
-			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
-		yyg->yy_buffer_stack_max = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return 0;
-
-	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	yy_switch_to_buffer(b ,yyscanner );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to yylex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       yy_scan_bytes() instead.
- */
-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
-{
-    
-	return yy_scan_bytes(yystr,strlen(yystr) ,yyscanner);
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n;
-	int i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) yyalloc(n ,yyscanner );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = yy_scan_buffer(buf,n ,yyscanner);
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-    static void yy_push_state (int  new_state , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
-		{
-		yy_size_t new_size;
-
-		yyg->yy_start_stack_depth += YY_START_STACK_INCR;
-		new_size = yyg->yy_start_stack_depth * sizeof( int );
-
-		if ( ! yyg->yy_start_stack )
-			yyg->yy_start_stack = (int *) yyalloc(new_size ,yyscanner );
-
-		else
-			yyg->yy_start_stack = (int *) yyrealloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
-
-		if ( ! yyg->yy_start_stack )
-			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
-		}
-
-	yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
-
-	BEGIN(new_state);
-}
-
-    static void yy_pop_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( --yyg->yy_start_stack_ptr < 0 )
-		YY_FATAL_ERROR( "start-condition stack underflow" );
-
-	BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
-}
-
-    static int yy_top_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		yytext[yyleng] = yyg->yy_hold_char; \
-		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
-		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
-		*yyg->yy_c_buf_p = '\0'; \
-		yyleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the user-defined data for this scanner.
- * @param yyscanner The scanner object.
- */
-YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyextra;
-}
-
-/** Get the current line number.
- * @param yyscanner The scanner object.
- */
-int yyget_lineno  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-    
-    return yylineno;
-}
-
-/** Get the current column number.
- * @param yyscanner The scanner object.
- */
-int yyget_column  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-    
-    return yycolumn;
-}
-
-/** Get the input stream.
- * @param yyscanner The scanner object.
- */
-FILE *yyget_in  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyin;
-}
-
-/** Get the output stream.
- * @param yyscanner The scanner object.
- */
-FILE *yyget_out  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyout;
-}
-
-/** Get the length of the current token.
- * @param yyscanner The scanner object.
- */
-int yyget_leng  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyleng;
-}
-
-/** Get the current token.
- * @param yyscanner The scanner object.
- */
-
-char *yyget_text  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yytext;
-}
-
-/** Set the user-defined data. This data is never touched by the scanner.
- * @param user_defined The data to be associated with this scanner.
- * @param yyscanner The scanner object.
- */
-void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyextra = user_defined ;
-}
-
-/** Set the current line number.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-void yyset_lineno (int  line_number , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* lineno is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner); 
-    
-    yylineno = line_number;
-}
-
-/** Set the current column.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-void yyset_column (int  column_no , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* column is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           yy_fatal_error( "yyset_column called with no buffer" , yyscanner); 
-    
-    yycolumn = column_no;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * @param yyscanner The scanner object.
- * @see yy_switch_to_buffer
- */
-void yyset_in (FILE *  in_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyin = in_str ;
-}
-
-void yyset_out (FILE *  out_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyout = out_str ;
-}
-
-int yyget_debug  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yy_flex_debug;
-}
-
-void yyset_debug (int  bdebug , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yy_flex_debug = bdebug ;
-}
-
-/* Accessor methods for yylval and yylloc */
-
-YYSTYPE * yyget_lval  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yylval;
-}
-
-void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yylval = yylval_param;
-}
-
-/* User-visible API */
-
-/* yylex_init is special because it creates the scanner itself, so it is
- * the ONLY reentrant function that doesn't take the scanner as the last argument.
- * That's why we explicitly handle the declaration, instead of using our macros.
- */
-
-int yylex_init(yyscan_t* ptr_yy_globals)
-
-{
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-
-    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
-
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-
-    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-/* yylex_init_extra has the same functionality as yylex_init, but follows the
- * convention of taking the scanner as the last argument. Note however, that
- * this is a *pointer* to a scanner, as it will be allocated by this call (and
- * is the reason, too, why this function also must handle its own declaration).
- * The user defined value in the first argument will be available to yyalloc in
- * the yyextra field.
- */
-
-int yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
-
-{
-    struct yyguts_t dummy_yyguts;
-
-    yyset_extra (yy_user_defined, &dummy_yyguts);
-
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-	
-    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
-	
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-    
-    /* By setting to 0xAA, we expose bugs in
-    yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-    
-    yyset_extra (yy_user_defined, *ptr_yy_globals);
-    
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-static int yy_init_globals (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from yylex_destroy(), so don't allocate here.
-     */
-
-    yyg->yy_buffer_stack = 0;
-    yyg->yy_buffer_stack_top = 0;
-    yyg->yy_buffer_stack_max = 0;
-    yyg->yy_c_buf_p = (char *) 0;
-    yyg->yy_init = 0;
-    yyg->yy_start = 0;
-
-    yyg->yy_start_stack_ptr = 0;
-    yyg->yy_start_stack_depth = 0;
-    yyg->yy_start_stack =  NULL;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    yyin = stdin;
-    yyout = stdout;
-#else
-    yyin = (FILE *) 0;
-    yyout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * yylex_init()
-     */
-    return 0;
-}
-
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		yypop_buffer_state(yyscanner);
-	}
-
-	/* Destroy the stack itself. */
-	yyfree(yyg->yy_buffer_stack ,yyscanner);
-	yyg->yy_buffer_stack = NULL;
-
-    /* Destroy the start condition stack. */
-        yyfree(yyg->yy_start_stack ,yyscanner );
-        yyg->yy_start_stack = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * yylex() is called, initialization will occur. */
-    yy_init_globals( yyscanner);
-
-    /* Destroy the main struct (reentrant only). */
-    yyfree ( yyscanner , yyscanner );
-    yyscanner = NULL;
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
-{
-	register int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
-{
-	register int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
-{
-	return (void *) malloc( size );
-}
-
-void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
-{
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void yyfree (void * ptr , yyscan_t yyscanner)
-{
-	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-rc_t CC KFGScan_yylex_init(KFGScanBlock* sb, const char *str)
-{
-	if (yylex_init(&sb->scanner) != 0)
-	{
-		return RC ( rcKFG, rcMgr, rcParsing, rcMemory, rcExhausted );
-	}		
-	sb->buffer=yy_scan_string(str,sb->scanner); 
-	
-	{	/* initialize line/col counters */
-		/* yylineno and yycolumn are macros using variable yyg, so we have to prepare it for them */
-		struct yyguts_t * yyg = (struct yyguts_t*)sb->scanner;
-		yylineno=1;
-		yycolumn=1;
-	}
-	
-	return 0;
-}
-
-void CC KFGScan_yylex_destroy(KFGScanBlock* sb)
-{
-	yy_delete_buffer(sb->buffer,sb->scanner); 
-	if (sb->scanner)
-	{
-		yylex_destroy(sb->scanner);
-	}		
-	sb->scanner=0;
-	sb->buffer=0;
-}
-
-void CC KFGScan_set_debug(bool on, KFGScanBlock* sb)
-{
-	yyset_debug(on ? 1 : 0,sb->scanner);
-}
-
-int CC KFGScan_yylex(KFGSymbol* sym, KFGScanBlock* sb) 
-{ 
-	sym->pb.tokenId=yylex(&sym->pb,sb->scanner); 
-	sb->lastToken= &sym->pb;
-	
-	switch (sym->pb.tokenId)
-	{
-	case kfgVAR_REF:
-		if (!sb->look_up_var(sb->self, &sym->pb)) 
-		{
-			/* undefined variable reference is handled silently, to behave like a shell script */
-			/* KFG_error(&sym->pb, sb, "variable not found");*/
-			sym->pb.tokenLength = 0; 
-		}
-		sym->pb.tokenId = kfgSTRING;
-		break;
-	case kfgUNTERM_VAR_REF: /* convert bad var ref into a string */ 
-		KFG_error(&sym->pb, sb, "unterminated variable reference inside a string (use '\\$(' to avoid this message)");
-		sym->pb.tokenId = kfgSTRING; 
-		break;
-	case kfgUNTERM_STRING:
-	case kfgUNTERM_ESCAPED_STRING:
-		KFG_error(&sym->pb, sb, "unterminated string");
-		break;
-	default:
-		break;
-	}
-	
-	return sym->pb.tokenId;
-}
-
diff --git a/libs/kfg/config-tokens.h b/libs/kfg/config-tokens.h
deleted file mode 100644
index 2090822..0000000
--- a/libs/kfg/config-tokens.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
-
-/* Bison interface for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     kfgEND_INPUT = 0,
-     kfgEND_LINE = 258,
-     kfgUNTERM_STRING = 259,
-     kfgUNTERM_ESCAPED_STRING = 260,
-     kfgUNRECOGNIZED = 261,
-     kfgVAR_REF = 262,
-     kfgUNTERM_VAR_REF = 263,
-     kfgASSIGN = 264,
-     kfgSTRING = 265,
-     kfgESCAPED_STRING = 266,
-     kfgABS_PATH = 267,
-     kfgREL_PATH = 268
-   };
-#endif
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
-
-
-	KFGParseBlock		pb;
-	const VNamelist*	namelist;
-
-
-
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-
-
diff --git a/libs/kfg/config.c b/libs/kfg/config.c
index faadfe2..f211290 100644
--- a/libs/kfg/config.c
+++ b/libs/kfg/config.c
@@ -33,51 +33,26 @@ struct KfgConfigNamelist;
 
 #include <klib/token.h>
 #include <klib/container.h>
-#include <klib/data-buffer.h> /* KDataBuffer */
 #include <klib/refcount.h>
 #include <klib/text.h>
 #include <klib/printf.h>
 #include <klib/rc.h>
 #include <klib/debug.h>
-#include <klib/log.h> 
-#include <klib/out.h> /* OUTMSG */
-#include <klib/klib-priv.h>
+#include <klib/log.h>
 #include <kfs/directory.h>
-#include <kfs/gzip.h> /* KFileMakeGzipForRead */
-#include <kfs/subfile.h> /* KFileMakeSubRead */
 #include <kfs/file.h>
 #include <kfs/dyload.h>
 #include <kfs/mmap.h>
-#include <os-native.h>
-#include <vfs/path.h>
-#include <strtol.h>
 #include <sysalloc.h>
-#include <os-native.h>
 
 #include <string.h>
-#include <ctype.h>
 #include <stdlib.h>
 #include <assert.h>
-#include <va_copy.h>
-
-#if !WINDOWS
-    #include <sys/utsname.h>
-#endif
-
-#include "kfg-parse.h"
-#include "config-tokens.h"
 
 #ifndef PATH_MAX
 #define PATH_MAX 4096
 #endif
 
-/* the leaf name of the user's modifiable settings,
-   must reside in the user's $HOME/.ncbi directory */
-#define MAGIC_LEAF_NAME "user-settings.mkfg"
-
-static bool s_disable_user_settings = false;
-
-
 /*--------------------------------------------------------------------------
  * KConfig
  */
@@ -86,34 +61,6 @@ rc_t KConfigSever ( const KConfig *self );
 
 
 /*--------------------------------------------------------------------------
- * KConfigIncluded
- *  node within configuration tree
- */
-
-typedef struct KConfigIncluded KConfigIncluded;
-struct KConfigIncluded
-{
-    BSTNode n;
-    bool is_magic_file;
-    char path [ 1 ];
-};
-
-
-static
-void CC KConfigIncludedWhack ( BSTNode *n, void *ignore )
-{
-    free ( n );
-}
-
-static
-int CC KConfigIncludedSort ( const BSTNode *item, const BSTNode *n )
-{
-    const KConfigIncluded *a = ( const KConfigIncluded* ) item;
-    const KConfigIncluded *b = ( const KConfigIncluded* ) n;
-    return strcmp ( a -> path, b -> path );
-}
-
-/*--------------------------------------------------------------------------
  * KConfigNode
  *  node within configuration tree
  */
@@ -127,9 +74,6 @@ struct KConfigNode
     /* uncounted reference to parent node */
     KConfigNode *dad;
 
-    /* File node came from; null if created during runtime*/
-    KConfigIncluded *came_from;
-
     /* named children - always unique */
     BSTree children;
 
@@ -145,9 +89,7 @@ struct KConfigNode
 
     KRefcount refcount;
 
-    bool internal;
     bool read_only;
-    bool dirty;
 };
 
 /* replace this once we introduce attributes */
@@ -184,14 +126,19 @@ void CC KConfigNodeWhack ( BSTNode *n, void * data )
 static
 void KConfigNodeInit ( KConfigNode *self, const String *name )
 {
-    /* clear out here, ignoring the string space */
-    memset ( self, 0, sizeof * self );
-
     /* initialize name early for the sake of KRefcountInit */
     string_copy ( ( char* ) ( self + 1 ), name -> size + 1, name -> addr, name -> size );
     StringInit ( & self -> name, ( char* ) ( self + 1 ), name -> size, name -> len );
-    StringInit ( & self -> value, "", 0, 0 );
+
     KRefcountInit ( & self -> refcount, 0, "KConfigNode", "init", self -> name . addr );
+
+    self -> mgr = NULL;
+    self -> dad = NULL;
+    BSTreeInit ( & self -> children );
+    BSTreeInit ( & self -> attr );
+    self -> val_buffer = NULL;
+    StringInit ( & self -> value, "", 0, 0 );
+    self -> read_only = false;
 }
 
 /* Make
@@ -199,7 +146,6 @@ void KConfigNodeInit ( KConfigNode *self, const String *name )
 static
 rc_t KConfigNodeMake ( KConfigNode **n, const String *name )
 {
-    /* don't use calloc, because of string space */
     KConfigNode *cn = malloc ( sizeof * cn + name -> size + 1 );
     if ( cn == NULL )
     {
@@ -260,7 +206,7 @@ LIB_EXPORT rc_t CC KConfigNodeRelease ( const KConfigNode *self )
         {
         case krefWhack:
             KConfigNodeWhack ( & ( ( KConfigNode* ) self ) -> n, NULL );
-        break;
+	    break;
         case krefLimit:
             return RC ( rcKFG, rcNode, rcReleasing, rcRange, rcExcessive );
         }
@@ -278,85 +224,95 @@ struct KConfig
     BSTree tree;
     BSTree included;
     KDualRef refcount;
-    KConfigIncluded *current_file;
-
-    char * load_path;
-    size_t load_path_sz_tmp;
+};
 
-    const char *magic_file_path;
-    size_t magic_file_path_size;
+static KConfig *G_kfg = NULL;
 
-    bool dirty;
-    bool initialized;
+typedef struct KConfigIncluded KConfigIncluded;
+struct KConfigIncluded
+{
+    BSTNode n;
+    char path [ 1 ];
 };
 
 
-rc_t KConfigAppendToLoadPath(KConfig *self, const char* chunk)
+static
+void CC KConfigIncludedWhack ( BSTNode *n, void *ignore )
+{
+    free ( n );
+}
+
+static
+int CC KConfigIncludedSort ( const BSTNode *item, const BSTNode *n )
+{
+    const KConfigIncluded *a = ( const KConfigIncluded* ) item;
+    const KConfigIncluded *b = ( const KConfigIncluded* ) n;
+    return strcmp ( a -> path, b -> path );
+}
+
+
+static char * G_load_path = NULL;
+static size_t G_load_path_sz_tmp = 0;
+
+static char* append_to_load_path(char* src, size_t* sz,
+    const char* chunk)
 {
-    rc_t rc = 0;
     size_t new_sz = 0;
 
-    assert(self);
-
+    if (sz == NULL) {
+        return NULL;
+    }
     if (chunk == NULL || chunk[0] == '\0') {
-        return rc;
+        return src;
     }
 
-    if (self->load_path == NULL) {
-        self->load_path_sz_tmp = PATH_MAX;
-        self->load_path = malloc(self->load_path_sz_tmp);
-        if (self->load_path == NULL) {
-            return RC ( rcKFG, rcMgr, rcCreating, rcMemory, rcExhausted );
+    if (src == NULL) {
+        *sz = PATH_MAX;
+        src = malloc(*sz);
+        if (src == NULL) {
+            return NULL;
         }
-        self->load_path[0] = '\0';
+        src[0] = '\0';
     }
 
-    new_sz = string_size(self->load_path) + 1 + string_size(chunk) + 1;
-    if (self->load_path_sz_tmp < new_sz) {
-        self->load_path_sz_tmp = 2 * new_sz;
-        self->load_path = realloc(self->load_path, self->load_path_sz_tmp);
-        if (self->load_path == NULL) {
-            return RC ( rcKFG, rcMgr, rcCreating, rcMemory, rcExhausted );
+    new_sz = strlen(src) + 1 + strlen(chunk) + 1;
+    if (*sz < new_sz) {
+        *sz = 2 * new_sz;
+        src = realloc(src, *sz);
+        if (src == NULL) {
+            return NULL;
         }
     }
 
-    if (self->load_path[0] != '\0') {
-        strcat(self->load_path, ":");
+    if (src[0] != '\0') {
+        strcat(src, ":");
     }
-    strcat(self->load_path, chunk);
+    strcat(src, chunk);
 
-    return rc;
+    return src;
 }
 
 
 /* Whack
  */
 static
-rc_t KConfigEmpty ( KConfig * self)
-{
-    if (self)
-    {
-        BSTreeWhack ( & self -> tree, KConfigNodeWhack, self );
-        BSTreeWhack ( & self -> included, KConfigIncludedWhack, NULL );
-
-        self -> magic_file_path_size = 0;
-        free ( ( void* ) self -> magic_file_path );
-        self -> magic_file_path = NULL;
-
-        self->load_path_sz_tmp = 0;
-        free ( self->load_path );
-        self->load_path = NULL;
-    }
-    return 0;
-}
-
-static
 rc_t KConfigWhack ( KConfig *self )
 {
-    KConfigEmpty (self);
+    if ( self == G_kfg )
+#if KFG_COMMON_CREATION
+        return 0;
+#else
+        G_kfg = NULL;
+#endif
 
+    BSTreeWhack ( & self -> tree, KConfigNodeWhack, self );
+    BSTreeWhack ( & self -> included, KConfigIncludedWhack, NULL );
     free ( self );
 
+    free ( G_load_path );
+    G_load_path = NULL;
+    G_load_path_sz_tmp = 0;
+
     return 0;
 }
 
@@ -367,11 +323,8 @@ void KConfigInit ( KConfig *self, KConfigNode * root )
 {
     KDualRefInit ( & self -> refcount, 1, 0, "KConfig", "init", "kfg" );
     BSTreeInit ( & self -> tree );
-    self -> dirty = false;
-    self -> initialized = false;
     BSTreeInit ( & self -> included );
     BSTreeInsert ( & self -> tree, & root -> n, KConfigNodeSort );
-    self -> magic_file_path = NULL;
 }
 
 
@@ -507,10 +460,8 @@ KToken *KConfigNodeFind ( const KConfigNode *self, const KConfigNode **n, KToken
 /* Create
  */
 static
-KToken *KConfigNodeCreate ( KConfigNode *self, KConfigNode **n, KTokenSource *src, KToken *t, 
-                            KConfigIncluded *current_file )
+KToken *KConfigNodeCreate ( KConfigNode *self, KConfigNode **n, KTokenSource *src, KToken *t )
 {
-    bool created = false;
     KConfigNode * nself;
     * n = NULL;
 
@@ -541,7 +492,6 @@ KToken *KConfigNodeCreate ( KConfigNode *self, KConfigNode **n, KTokenSource *sr
                 BSTreeInsert ( & self -> children, & child -> n, KConfigNodeSort );  
                 child -> dad = self;
                 self = child;
-                created = true;
             }
             else
             {
@@ -559,9 +509,6 @@ KToken *KConfigNodeCreate ( KConfigNode *self, KConfigNode **n, KTokenSource *sr
         KTokenizerNext ( kPOSIXPathTokenizer, src, t );
     }
 
-    if ( created )
-        self -> came_from = current_file;
-
     * n = self;
     return t;
 }
@@ -780,8 +727,7 @@ rc_t KConfigNodeVOpenNodeUpdateInt ( KConfigNode *self, KConfig *mgr,
                     while ( t.id == eFwdSlash);
 
                     /* follow path */
-                    assert ( mgr != NULL );
-                    if ( KConfigNodeCreate ( self, node, & src, & t, mgr -> current_file ) == NULL )
+                    if ( KConfigNodeCreate ( self, node, & src, & t ) == NULL )
                         return RC ( rcKFG, rcNode, rcOpening, rcPath, rcInvalid );
                     if ( ( self = * node ) == NULL )
                         rc = RC ( rcKFG, rcNode, rcOpening, rcMemory, rcExhausted );
@@ -792,21 +738,15 @@ rc_t KConfigNodeVOpenNodeUpdateInt ( KConfigNode *self, KConfig *mgr,
 
             if ( rc == 0 )
             {
-                /* check to see if internal */
-                if ( self -> internal )
-                    rc = RC ( rcKFG, rcNode, rcOpening, rcNode, rcReadonly );
-                else
+                /* check to see if open */
+                if ( atomic32_read ( & self -> refcount ) == 0 )
                 {
-                    /* check to see if open */
-                    if ( atomic32_read ( & self -> refcount ) == 0 )
-                    {
-                        self -> mgr = KConfigAttach ( mgr );
-                        assert ( ! self -> read_only );
-                        return KConfigNodeAddRef ( self );
-                    }
-
-                    rc = RC ( rcKFG, rcNode, rcOpening, rcNode, rcBusy );
+                    self -> mgr = KConfigAttach ( mgr );
+                    assert ( ! self -> read_only );
+                    return KConfigNodeAddRef ( self );
                 }
+
+                rc = RC ( rcKFG, rcNode, rcOpening, rcNode, rcBusy );
             }
         }
 
@@ -934,16 +874,6 @@ LIB_EXPORT rc_t CC KConfigNodeRead ( const KConfigNode *self,
     return rc;
 }
 
-static
-void KConfigNodeSetDirty ( KConfigNode *self )
-{
-    KConfig *mgr = self -> mgr;
-
-    if ( mgr == NULL )
-        self -> dirty = true;
-    else if ( mgr -> initialized )
-        self -> dirty = mgr -> dirty = true;
-}
 
 /* Write
  *  write a node value or attribute
@@ -957,7 +887,7 @@ LIB_EXPORT rc_t CC KConfigNodeWrite ( KConfigNode *self, const char *buffer, siz
 
     if ( self == NULL )
         rc = RC ( rcKFG, rcNode, rcWriting, rcSelf, rcNull );
-    else if ( self -> read_only || self -> internal )
+    else if ( self -> read_only )
         rc = RC ( rcKFG, rcNode, rcWriting, rcSelf, rcReadonly );
     else if ( size == 0 )
     {
@@ -982,9 +912,6 @@ LIB_EXPORT rc_t CC KConfigNodeWrite ( KConfigNode *self, const char *buffer, siz
         assert ( self -> val_buffer != NULL );
         string_copy ( self -> val_buffer, self -> value . size + 1, buffer, size );
         self -> value . len = string_len ( self -> val_buffer, size );
-        
-        KConfigNodeSetDirty ( self );
-        
         rc = 0;
     }
 
@@ -1003,7 +930,7 @@ LIB_EXPORT rc_t CC KConfigNodeAppend ( KConfigNode *self, const char *buffer, si
 
     if ( self == NULL )
         rc = RC ( rcKFG, rcNode, rcWriting, rcSelf, rcNull );
-    else if ( self -> read_only || self -> internal )
+    else if ( self -> read_only )
         rc = RC ( rcKFG, rcNode, rcWriting, rcSelf, rcReadonly );
     else if ( size == 0 )
         rc = 0;
@@ -1018,9 +945,6 @@ LIB_EXPORT rc_t CC KConfigNodeAppend ( KConfigNode *self, const char *buffer, si
         string_copy ( & self -> val_buffer [ self -> value . size ], self -> value . size + size + 1, buffer, size );
         self -> value . size += size;
         self -> value . len = string_len ( self -> val_buffer, self -> value . size );
-        
-        KConfigNodeSetDirty ( self );
-
         rc = 0;
     }
 
@@ -1042,7 +966,7 @@ LIB_EXPORT rc_t CC KConfigNodeAppend ( KConfigNode *self, const char *buffer, si
 LIB_EXPORT rc_t CC KConfigNodeReadAttr ( const KConfigNode *self, const char *name,
                                          char *buffer, size_t bsize, size_t *size )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
@@ -1057,7 +981,7 @@ LIB_EXPORT rc_t CC KConfigNodeReadAttr ( const KConfigNode *self, const char *na
 LIB_EXPORT rc_t CC KConfigNodeWriteAttr ( KConfigNode *self,
                                           const char *name, const char *value )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
@@ -1068,25 +992,25 @@ LIB_EXPORT rc_t CC KConfigNodeWriteAttr ( KConfigNode *self,
  */
 LIB_EXPORT rc_t CC KConfigNodeDropAll ( KConfigNode *self )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
 LIB_EXPORT rc_t CC KConfigNodeDropAttr ( KConfigNode *self, const char *attr )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
 LIB_EXPORT rc_t CC KConfigNodeVDropChild ( KConfigNode *self, const char *path, va_list args )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
 LIB_EXPORT rc_t CC KConfigNodeDropChild ( KConfigNode *self, const char *path, ... )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
@@ -1102,13 +1026,13 @@ LIB_EXPORT rc_t CC KConfigNodeDropChild ( KConfigNode *self, const char *path, .
  */
 LIB_EXPORT rc_t CC KConfigNodeRenameAttr ( KConfigNode *self, const char *from, const char *to )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
 LIB_EXPORT rc_t CC KConfigNodeRenameChild ( KConfigNode *self, const char *from, const char *to )
 {
-    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplemented", "F=%s", __func__));
+    PLOGMSG (klogFatal, (klogFatal, "$(F) unimplmented", "F=%s", __func__));
     return -1;
 }
 
@@ -1117,140 +1041,225 @@ LIB_EXPORT rc_t CC KConfigNodeRenameChild ( KConfigNode *self, const char *from,
  * KConfig
  */
 
+
+/*
+  Grammar:
+  EOL = "\n";
+  lower = [a-z]
+  alpha = [A-Za-z]
+  file = <line>*;
+  line = comment | path-value;
+  comment = script-comment | cpp-comment;
+  script-comment = "#", not_pound , EOL;
+  cpp-comment = "//", any, EOL;
+
+*/
+
+typedef struct parse_block
+{
+    KConfig * self;
+    const KTokenizer * tz;
+    KTokenSource * src;
+    KToken t;
+    const String * symbol;
+    const String * value;
+} parse_block;
+
 static
-rc_t
-update_node ( KConfig* self, const char* key, const char* value, bool internal )
+rc_t write_nvp (parse_block * pb)
 {
+    rc_t rc;
     KConfigNode * node;
-    rc_t rc = KConfigVOpenNodeUpdate ( self, &node, key, NULL);
+
+    rc = KConfigVOpenNodeUpdate ( pb->self, &node, pb->symbol->addr, NULL);
+
     if (rc == 0)
     {
-/*        pLogMsg(klogInfo, "updating config key $(KEY) with '$(VALUE)'", 
-                          "KEY=%s,VALUE=%s", 
-                          key, value);*/
-        rc = KConfigNodeWrite (node, value, string_size(value));
-        node -> internal = internal;
+        /* +1 and -2 get rid of containing quote marks */
+        rc = KConfigNodeWrite (node, pb->value->addr + 1, StringSize (pb->value) - 2);
+
         KConfigNodeRelease ( node );
     }
+
     return rc;
 }
 
 static
-rc_t write_nvp(void * self, const char* name, size_t nameLen, VNamelist* values)
-{   /* concatenate all values from the namelist and put the result into config under the given name */
-    uint32_t count;
-    uint32_t size=0;
-    uint32_t concatTo=0;
-    uint32_t i;
-    const String* nameStr;
-
-    char* buf;
-    rc_t rc=VNameListCount(values, &count);
-    if (rc != 0)
-    {
-        return rc;
-    }
-    for (i=0; i < count; ++i)
+rc_t parse_value (parse_block * pb)
+{
+    rc_t rc;
+    size_t value_size;
+    char value_buffer [4096];
+
+
+    switch ((KTokenizerNext (pb->tz, pb->src, &pb->t))->id)
     {
-        const char* val;
-        rc=VNameListGet(values, i, &val);
-        if (rc != 0)
+    default:
+        rc = RC (rcKFG, rcMgr, rcParsing, rcString, rcUnexpected);
+        break;
+    case eString:
+    case eEscapedString:
+        rc = KTokenToString (&pb->t, value_buffer, sizeof value_buffer, &value_size);
+        if (rc == 0)
         {
-            return rc;
+            StringCopy (&pb->value, &pb->t.str);
+            rc = write_nvp (pb);
+            free ((void*)pb->value);
         }
-        size+=string_size(val);
+        break;
     }
+    return rc;
+}
 
-    buf=(char*)malloc(size+1);
-    if (buf == 0)
-    {
-        return RC ( rcKFG, rcMgr, rcLoading, rcMemory, rcExhausted );
-    }
+static
+rc_t validate_symbol (parse_block * pb)
+{
+    /* yeah this should do something eventually */
+    return 0;
+}
+static
+rc_t parse_name (parse_block * pb)
+{
+    const String * concat;
+    rc_t rc;
 
-    concatTo=0;
-    for (i=0; i < count; ++i)
+    switch ( KTokenizerNext ( pb -> tz, pb -> src, & pb -> t ) -> id )
     {
-        const char* val;
-        rc=VNameListGet(values, i, &val);
-        if (rc != 0)
+    default:
+        rc = RC (rcKFG, rcMgr, rcParsing, rcName, rcUnexpected);
+        break;
+        /* any of these can be part of a path -- but not yet */
+    case eDecimal:
+        /*     case eHex: */
+        /*     case eOctal: */
+        /*     case eFloat: */
+        /*     case eExpFloat: */
+        /*     case eMajMinRel: */
+    case eIdent:
+    case eName:
+        /*     case ePeriod: */
+        /*     case eTilde: */
+        /*     case eMinus: */
+    case eFwdSlash:     
+        /*     case eDblPeriod: */
+        /*     case eEllipses: */
+        rc = StringConcat (&concat, pb->symbol, &pb->t.str);
+        if (rc == 0)
         {
-            free(buf);
-            return rc;
+            pb->symbol = concat;
+            rc = parse_name (pb);
+            free ((void*)concat);
         }
-        string_copy(buf+concatTo, size+1-concatTo, val, string_size(val));
-        concatTo+=string_size(val);
-    }
-    buf[size]=0;
-
-    {
-        String tmp;
-        StringInit(&tmp, name, nameLen, nameLen);
-        StringCopy(&nameStr, &tmp);
+        break;
+    case eAssign:
+        rc = validate_symbol (pb);
+        if (rc == 0)
+        {
+            rc = parse_value (pb);            
+        }
+        break;
     }
-    rc = update_node((KConfig *)self, nameStr->addr, buf, false);
-    StringWhack(nameStr);
-    free(buf);
     return rc;
 }
 
 static
-bool look_up_var(void * self, struct KFGParseBlock* pb)
+rc_t parse_nvp (parse_block * pb)
 {
-    const KConfigNode* node;
-    rc_t rc = KConfigOpenNodeRead((KConfig*)self, &node, "%.*s", pb->tokenLength-3, pb->tokenText+2);
-    if (rc == 0)
+    const String * symbol;
+    rc_t rc;
+
+redo:
+    switch ((KTokenizerNext (pb->tz, pb->src, &pb->t))->id)
     {
-        pb->tokenText   = node->value.addr; 
-        pb->tokenLength = node->value.len;
-        pb->tokenId     = kfgVAR_REF;
+    case eEndOfInput:
+        rc = 0;
+        break;
+
+    case eEndOfLine:
+        LOGMSG (klogInfo, "End Of Line");
+        goto redo;
+
+    default:
+        rc = RC (rcKFG, rcMgr, rcParsing, rcToken, rcUnexpected);
+        break;
+
+        /* a symbol must look like a legal posix path
+         * thetokenizer eats things awkwardly for us so we'll muddle through
+         *
+         * We aren't getting whitespace and we aren't getting all legal path
+         * characters as a path at this point so we'll just face it.
+         * Gather up all legal symbols and concatenate them.
+         *
+         * this currently allows the bad syntax of
+         *
+         *   path/name = "value"; 
+         *
+         * to be the same as
+         *
+         *   path 
+         *   /
+         *      # woo hoo
+         *          name
+         *   =
+         *     "value"
+         *
+         *       ;
+         */
+        /* any of these can be the first part of a path -- but not yet */
+        /*     case eDecimal: */
+        /*     case eHex: */
+        /*     case eOctal: */
+        /*     case eFloat: */
+        /*     case eExpFloat: */
+        /*     case eMajMinRel: */
+    case eIdent:
+    case eName:
+        /*     case ePeriod: */
+        /*     case eTilde: */
+        /*     case eMinus: */
+    case eFwdSlash:
+        /*     case eDblPeriod: */
+        /*     case eEllipses: */
+
+        rc = StringCopy (&symbol, &pb->t.str);
+        if (rc == 0)
+        {
+            pb->symbol = symbol;
+            rc = parse_name (pb);
+            free ((void*)symbol);
+        }
+        break;
     }
-    KConfigNodeRelease(node);
-    return rc == 0;
+    return rc;
 }
 
-static
-void CC report_error(KFGScanBlock* sb, const char* msg)
-{
-    pLogMsg(klogErr, "$(file):$(line):$(column): error: token='$(token)', msg='$(msg)'", 
-                     "file=%s,line=%d,column=%d,token=%.*s,msg=%s", 
-                     sb->file, 
-                     sb->lastToken->line_no, 
-                     sb->lastToken->column_no, 
-                     sb->lastToken->tokenLength, 
-                     sb->lastToken->tokenText, 
-                     msg);
-}
 
 /*
- * Set up the parameter block and start parsing lines
+ * Set up the parameter block and start prasing lines
  */
 static
-rc_t parse_file ( KConfig * self, const char* path, const char * src )
+rc_t parse_file ( KConfig * self, KTokenSource * src )
 {
-    KFGParseBlock pb;
-    KFGScanBlock sb;
+    parse_block pb;
     rc_t rc;
 
-    pb.tokenLength  = 0;
-    pb.line_no      = 0;
-    pb.column_no    = 0;
-
-    sb.self         = self;
-    sb.file         = path;
-    sb.write_nvp    = write_nvp;
-    sb.look_up_var  = look_up_var;
-    sb.report_error = report_error;
-
-    rc = KFGScan_yylex_init(&sb, src);
-    if (rc == 0)
+    pb.self = self;
+    pb.tz = kPOSIXPathTokenizer;
+    pb.src = src;
+    memset (&pb.t, 0, sizeof pb.t);
+    pb.symbol = NULL;
+    pb.value = NULL;
+    do 
     {
-        KFG_parse(&pb, &sb); /* may have reported parse errors into log, but we should have been able to extract enough data to proceed regardless */
-        KFGScan_yylex_destroy(&sb);
+        rc = parse_nvp (&pb);
+        if (rc)
+            break;
     }
-
+    while (pb.t.id != eEndOfInput);
     return rc;
 }
 
+
 /* LoadFile
  * loads a configuration file
  */
@@ -1265,52 +1274,9 @@ LIB_EXPORT rc_t CC KConfigLoadFile ( KConfig * self, const char * path, const KF
     else
     {
         const KMMap * mm;
-        bool entry_initialized = self -> initialized;
-        self -> initialized = false;
-
-        /* populate file-specific predefined nodes */
-#define UPDATE_NODES(dir, file)                             \
-        rc = update_node(self, "kfg/dir", dir, false );     \
-        if (rc == 0)                                        \
-            rc = update_node(self, "kfg/name", file, false )
 
-        if ( path == NULL || path [ 0 ] == 0)
-        {
+        if ( path == NULL || path [ 0 ] == 0 )
             path = "UNSPECIFIED";
-            UPDATE_NODES ( "", "" );
-        }
-        else
-        {
-            KDirectory* dir;
-            rc = KDirectoryNativeDir(&dir);
-            if (rc == 0 )
-            {
-                char buff [ 4096 ];
-                rc = KDirectoryResolvePath ( dir, true, buff, sizeof buff,
-                    "%.*s", string_size(path), path );
-                if ( rc == 0 )
-                {
-                    char* name = strrchr (buff, '/');
-                    if (name == NULL)
-                    {   /* no dir name */
-                        UPDATE_NODES("", buff);
-                    }
-                    else
-                    {
-                        *name=0; /* nul-terminate dir name; file name follows the 0 */
-                        UPDATE_NODES(buff, name+1);
-                    }
-                }
-                KDirectoryRelease ( dir );
-            }
-            else
-            {
-                update_node(self, "kfg/dir", "", false);
-                update_node(self, "kfg/name", "", false);
-            }
-        }
-#undef UPDATE_NODES
-
 
         rc = KMMapMakeRead ( & mm, file );
         if ( rc == 0 )
@@ -1322,411 +1288,93 @@ LIB_EXPORT rc_t CC KConfigLoadFile ( KConfig * self, const char * path, const KF
                 rc = KMMapSize ( mm, & size );
             if ( rc == 0 )
             {
-                /* make a 0-terminated copy for parsing */
-                char* buf=malloc(size+1);
-                if (buf == 0)
-                {
-                    rc = RC ( rcKFG, rcMgr, rcLoading, rcMemory, rcExhausted );
-                }
-                else
-                {
-                    string_copy(buf, size+1, ptr, size);
-                    buf[size]=0;
+                String str;
+                String spath;
+                KTokenText tt;
+                KTokenSource src;
 
-                    /* Parse the path to populate: */
-                    /* update_node(self, "kfg/dir", dir, false);*/
-                    /* update_node(self, "kfg/name", name, false);*/
+                /* create a String from file path */
+                StringInitCString ( & spath, path );
 
-                    /* parse config file */
-                    rc = parse_file ( self, path, buf );
-                    free(buf);
-                }
+                /* create a String from file source */
+                StringInit ( & str, ptr, size, string_len ( ptr, size ) );
+
+                /* initialize token-text */
+                KTokenTextInit ( & tt, & str, & spath );
+
+                /* initialize token source */
+                KTokenSourceInit ( & src, & tt );
+
+                /* parse config file */
+                parse_file ( self, & src );
             }
 
             KMMapRelease ( mm );
         }
-        self -> initialized = entry_initialized;
     }
 
     return rc;
 }
 
-
-typedef struct PrintBuff PrintBuff;
-struct PrintBuff
-{
-    KFile *f;
-    /* total bytes flushed to the file*/
-    size_t flushed;
-    /* total bytes in buffer */
-    size_t buffered;
-    
-    rc_t rc;
-    
-    /* buffer */
-    char buffer [ 32 * 1024 ];
-    
-};
-
-/* Init
- *  initialize your structure    
- */
 static
-void PrintBuffInit ( PrintBuff *pb, KFile *f )
-{
-    assert ( pb != NULL );
-    pb -> f = f;
-    pb -> flushed = 0;
-    pb -> buffered = 0;
-    pb -> rc = 0;
-}
-
-/* Flush
- * Write buffer out to file
- */
-static rc_t PrintBuffFlush ( PrintBuff *self )
+rc_t make_include_path ( KConfigIncluded **p, const KDirectory *dir, const char *path, size_t sz )
 {
-    rc_t rc = 0;
-
-    assert ( self != NULL );
-    if ( self -> buffered != 0 )
+    char buff [ 4096 ];
+    rc_t rc = KDirectoryResolvePath ( dir, true, buff, sizeof buff, "%.*s", ( int ) sz, path );
+    if ( rc == 0 )
     {
-        size_t num_writ;
-        rc = KFileWriteAll ( self -> f, self -> flushed, self -> buffer, self -> buffered, & num_writ );
-        
-        if ( rc == 0 )
+        KConfigIncluded *include;
+        sz = strlen ( buff );
+        include = malloc ( sizeof * include + sz );
+        if ( include == NULL )
+            rc = RC ( rcKFG, rcMgr, rcLoading, rcMemory, rcExhausted );
+        else
         {
-            if ( num_writ != self -> buffered )
-                rc = RC ( rcKFG, rcBuffer, rcFlushing, rcTransfer, rcIncomplete );
-            else
-            {
-                self -> flushed += num_writ;
-                self -> buffered = 0;
-            }
+            string_copy ( include -> path, sz + sizeof include -> path, buff, sz );
+            * p = include;
+            return 0;
         }
     }
-    return self -> rc = rc;
+    * p = NULL;
+    return rc;
 }
 
-/* Print
- *  printf style writing to the buffer
- */
+
 static
-rc_t PrintBuffPrint ( PrintBuff *self, const char *fmt, ... )
+bool load_from_file_path ( KConfig *self, const KDirectory *dir, const char *path, size_t sz )
 {
+    const KFile *cfg_file;
     rc_t rc;
-    size_t num_writ;
-    va_list args1, args2;
-
-    assert ( self != NULL );
-    assert ( fmt != NULL );
-    assert ( fmt [ 0 ] != 0 );
-
-    va_start ( args1, fmt );
-    va_copy ( args2, args1 );
-
-    rc = string_vprintf ( & self -> buffer [ self -> buffered ], 
-                          sizeof self -> buffer - self -> buffered, & num_writ, fmt, args1 );
+    
+    DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: try to load from file '%.*s'\n", (int)sz, path ) );
+    rc = KDirectoryOpenFileRead ( dir, & cfg_file, "%.*s", ( int ) sz, path );
     if ( rc == 0 )
-        self -> buffered += num_writ;
-    else if ( GetRCObject ( rc ) == rcBuffer && GetRCState ( rc ) == rcInsufficient )
     {
-        rc = PrintBuffFlush ( self );
+        KConfigIncluded *include;
+        rc = make_include_path ( & include, dir, path, sz );
         if ( rc == 0 )
         {
-            rc = string_vprintf ( & self -> buffer [ self -> buffered ],
-                                  sizeof self -> buffer - self -> buffered, & num_writ, fmt, args2 );
-            if ( rc == 0 )
-                self -> buffered += num_writ;
+            BSTNode *existing;
+            if ( BSTreeInsertUnique ( & self -> included, & include -> n, & existing, KConfigIncludedSort ) != 0 )
+                free ( include );
+            else
+            {
+                rc = KConfigLoadFile ( self, include -> path, cfg_file );
+                if ( rc != 0 )
+                {
+                    BSTreeUnlink ( & self -> included, & include -> n );
+                    free ( include );
+                }
+            }
         }
-    }
-
-    va_end ( args2 );
-    va_end ( args1 );
 
-    return self -> rc = rc;
-    
+        KFileRelease ( cfg_file );
+    }
+    return ( rc == 0 ) ? true : false;
 }
 
-char ToHex(uint32_t i)
-{
-    if (i <= 9)
-        return '0' + i;
-    return 'A' + (i - 10);
-}
-
-static
-rc_t CC PrintBuffPrintQuoted ( PrintBuff *self, const String* data )
-{
-    rc_t rc = PrintBuffPrint(self, "\"");
-    const char* str = (const char*)(data->addr);
-    uint32_t i;
-    for ( i = 0; i < StringLength(data); ++i )
-    {
-        if (rc != 0)
-            break;
-        if (str[i] < ' ')
-        {
-            rc = PrintBuffPrint(self, "\\x%c%c", ToHex(str[i]/16), ToHex(str[i]%16) );
-        }
-        else
-        {
-            switch (str[i])
-            {
-            case '"':
-                rc = PrintBuffPrint(self, "\\\"");
-                break;
-            default:
-                rc = PrintBuffPrint(self, "%c", str[i]);
-            }
-        }
-    }
-    if (rc == 0)
-        rc = PrintBuffPrint(self, "\"");
-    return rc;
-}
-
-static
-bool KConfigNodePrintPath ( KConfigNode *self, PrintBuff *pb )
-{
-    if ( self -> dad == NULL )
-        PrintBuffPrint ( pb, "%S", & self -> name );
-    else
-    {
-        if ( KConfigNodePrintPath ( self -> dad, pb ) )
-            return true;
-
-        PrintBuffPrint ( pb, "/%S", & self -> name );
-    }
-    return pb -> rc != 0;
-}
-
-static
-bool CC WriteDirtyNode ( BSTNode *n, void *data )
-{
-    KConfigNode *self = ( KConfigNode * ) n;
-    PrintBuff *pb = data;
-
-    if ( self -> dirty || ( self -> came_from != NULL && self -> came_from -> is_magic_file ) )
-    {
-        if ( KConfigNodePrintPath ( self, pb ) )
-            return true;
-
-        if ( PrintBuffPrint ( pb, " = " ) != 0 )
-            return true;
-            
-        if ( PrintBuffPrintQuoted ( pb, &self->value ) != 0 )
-            return true;
-            
-        if ( PrintBuffPrint ( pb, "\n" ) != 0 )
-            return true;
-    }
-
-    return BSTreeDoUntil ( & self -> children, false, WriteDirtyNode, pb );
-}
-
-static
-void CC UnsetDirtyNode ( BSTNode *n, void *data )
-{
-    KConfigNode *self = ( KConfigNode * ) n;
-
-    if ( self -> dirty )
-        self -> dirty = false;
-
-    BSTreeForEach ( & self -> children, false, UnsetDirtyNode, data );
-}
-
-static
-rc_t path_to_magic_file ( const KConfig *self, char *path, size_t buffer_size, size_t *path_size )
-{
-    const KConfigNode *node;
-    rc_t rc = KConfigOpenNodeRead ( self, & node, "NCBI_SETTINGS" );
-
-    if ( rc == 0 )
-    {
-        size_t num_read, remaining;
-        rc = KConfigNodeRead ( node, 0, path, buffer_size - 1, & num_read, & remaining );
-
-        if ( rc == 0 && remaining != 0 )
-           rc = RC ( rcKFG, rcNode, rcReading, rcBuffer, rcInsufficient );
-
-        path[num_read] = '\0';
-        
-        KConfigNodeRelease ( node );
-    }
-    return rc;
-}
-
-/* Commit
- *  commits changes to user's private configuration file
- */
-LIB_EXPORT rc_t CC KConfigCommit ( KConfig *self )
-{
-    rc_t rc;
-    size_t path_size;
-    char magic_file_path [ 4096 ];
-
-    if ( self == NULL )
-        return RC ( rcKFG, rcData, rcCommitting, rcSelf, rcNull );
-
-    /* Must only commit dirty nodes*/
-    if ( ! self -> dirty )
-        return 0;
-
-    rc = path_to_magic_file ( self, magic_file_path, sizeof magic_file_path, & path_size );
-    if ( rc == 0 )
-    {
-        char tmp_file_path [ 4096 ];
-        rc = string_printf ( tmp_file_path, sizeof tmp_file_path, NULL, "%s.tmp", magic_file_path );
-        if ( rc == 0 )
-        {
-            KDirectory *dir;        
-            
-            /* get current directory */
-            rc = KDirectoryNativeDir ( & dir );
-            if ( rc == 0 )
-            {
-                KFile *tmp;
-
-                /* create temp magic file */
-                rc = KDirectoryCreateFile ( dir, & tmp, false, 0600, kcmInit | kcmParents, tmp_file_path );
-
-                if ( rc == 0 )
-                {
-                    PrintBuff pb;
-                    PrintBuffInit ( & pb, tmp );
-
-                    /* issue warning */
-                    rc = PrintBuffPrint ( & pb, "## auto-generated configuration file - DO NOT EDIT ##\n\n" );
-                    if ( rc == 0 )
-                    {
-                        /* flush nodes to file */
-                        if ( BSTreeDoUntil ( & self -> tree, false, WriteDirtyNode, & pb ) )
-                            /* failure */
-                            rc = pb . rc;
-                        else 
-                            rc = PrintBuffFlush ( & pb );
-                    }
-                        
-                    KFileRelease ( tmp );
-                        
-                    if ( rc == 0 )
-                    {
-                        /* Rename file */
-                        rc = KDirectoryRename ( dir, true, tmp_file_path, magic_file_path  );
-                        if ( rc == 0 )
-                        {
-                            /* clear dirty flags */
-                            BSTreeForEach (  & self -> tree, false, UnsetDirtyNode, & pb);
-                                
-                            self -> dirty = false;
-                        }
-                    }
-                        
-                    if ( rc != 0 )
-                        KDirectoryRemove ( dir, true, tmp_file_path );
-                }
-            
-                /* release dir */
-                KDirectoryRelease ( dir );
-            }
-        }
-    }
-    return rc;
-}
-
-
-static
-rc_t record_magic_path ( KConfig *self, const KDirectory *dir, const char *path, size_t sz )
-{
-    char buff [ 4096 ];
-    rc_t rc = KDirectoryResolvePath ( dir, true, buff, sizeof buff, "%.*s", ( int ) sz, path );
-    if ( rc == 0 )
-    {
-        char *magic_file_path;
-        sz = string_size ( buff );
-        magic_file_path = malloc ( sz + 1 );
-        if ( magic_file_path == NULL )
-            rc = RC ( rcKFG, rcMgr, rcLoading, rcMemory, rcExhausted );
-        else
-        {
-            free ( (void*) self -> magic_file_path );
-            self -> magic_file_path = magic_file_path;
-            self -> magic_file_path_size = sz;
-            memcpy ( magic_file_path, buff, sz + 1 );
-        }
-    }
-
-    return rc;
-}
-
-
-static
-rc_t make_include_path ( KConfigIncluded **p, const KDirectory *dir, const char *path, size_t sz, bool is_magic )
-{
-    char buff [ 4096 ];
-    rc_t rc = KDirectoryResolvePath ( dir, true, buff, sizeof buff, "%.*s", ( int ) sz, path );
-    if ( rc == 0 )
-    {
-        KConfigIncluded *include;
-        sz = string_size ( buff );
-        include = malloc ( sizeof * include + sz );
-        if ( include == NULL )
-            rc = RC ( rcKFG, rcMgr, rcLoading, rcMemory, rcExhausted );
-        else
-        {
-            include -> is_magic_file = is_magic;
-            string_copy ( include -> path, sz + sizeof include -> path, buff, sz );
-            * p = include;
-            return 0;
-        }
-    }
-    * p = NULL;
-    return rc;
-}
-
-
-static
-bool load_from_file_path ( KConfig *self, const KDirectory *dir, const char *path, size_t sz, bool is_magic )
-{
-    rc_t rc;
-    const KFile *cfg_file;
-
-    /* record magic file path, regardless of whether it exists as a file */
-    if ( is_magic )
-        record_magic_path ( self, dir, path, sz );
-    
-    DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: try to load from file '%.*s'\n", (int)sz, path ) );
-    rc = KDirectoryOpenFileRead ( dir, & cfg_file, "%.*s", ( int ) sz, path );
-    if ( rc == 0 )
-    {
-        KConfigIncluded *include;
-        rc = make_include_path ( & include, dir, path, sz, is_magic );
-        if ( rc == 0 )
-        {
-            BSTNode *existing;
-            if ( BSTreeInsertUnique ( & self -> included, & include -> n, & existing, KConfigIncludedSort ) != 0 )
-                free ( include );
-            else
-            {
-                self -> current_file = include;
-                rc = KConfigLoadFile ( self, include -> path, cfg_file );
-                self -> current_file = NULL;
-                if ( rc != 0 )
-                {
-                    BSTreeUnlink ( & self -> included, & include -> n );
-                    free ( include );
-                }
-            }
-        }
-
-        KFileRelease ( cfg_file );
-    }
-    return ( rc == 0 ) ? true : false;
-}
-
-typedef struct scan_config_path_data scan_config_path_data;
-struct scan_config_path_data
+typedef struct scan_config_path_data scan_config_path_data;
+struct scan_config_path_data
 {
     KConfig *self;
     bool loaded;
@@ -1741,10 +1389,9 @@ rc_t CC scan_config_path ( const KDirectory *dir, uint32_t type, const char *nam
     case kptFile:
     case kptFile | kptAlias:
     {
-        size_t sz = string_size ( name );
+        size_t sz = strlen ( name );
         if ( sz >= 5 && strcase_cmp ( & name [ sz - 4 ], 4, ".kfg", 4, 4 ) == 0 )
-            pb -> loaded |= load_from_file_path ( pb -> self, dir, name, sz, false );
-
+            pb -> loaded |= load_from_file_path ( pb -> self, dir, name, sz );
         break;
     }}
 
@@ -1769,7 +1416,7 @@ bool load_from_dir_path ( KConfig *self, const KDirectory *dir, const char *path
 {
     bool loaded = false;
     const KDirectory *cfg_dir;
-    rc_t rc = KDirectoryOpenDirRead ( dir, & cfg_dir, false, "%.*s", ( uint32_t ) sz, path );
+    rc_t rc = KDirectoryOpenDirRead ( dir, & cfg_dir, false, "%.*s", ( int ) sz, path );
     if ( rc == 0 )
     {
         DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: try to load from directory '%.*s'\n", (int)sz, path ) );
@@ -1790,7 +1437,7 @@ bool load_from_path ( KConfig *self, const KDirectory * dir, const char *path, s
         switch ( KDirectoryPathType ( dir, "%.*s", ( int ) sz, path ) & ~ kptAlias )
         {
         case kptFile:
-            loaded = load_from_file_path ( self, dir, path, sz, false );
+            loaded = load_from_file_path ( self, dir, path, sz );
             break;
         case kptDir:
             loaded = load_from_dir_path ( self, dir, path, sz );
@@ -1804,7 +1451,7 @@ static
 bool load_from_path_list ( KConfig *self, const KDirectory *dir, const char *path )
 {
     bool loaded = false;
-    const char *end = path + string_size ( path );
+    const char *end = path + strlen ( path );
     while ( path < end )
     {
         const char *sep = string_chr ( path, end - path, ':' );
@@ -1835,9 +1482,9 @@ bool load_from_env_variable ( KConfig *self, const KDirectory *dir )
         DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: try to load from env. var '%s'\n", env_list[ i ] ) );
         if ( eval != NULL && eval [ 0 ] != 0 )
         {
-            rc_t rc = 0;
             DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: try to load from env. var '%s'\n", eval ) );
-            rc = KConfigAppendToLoadPath(self, eval);
+            G_load_path
+                = append_to_load_path(G_load_path, &G_load_path_sz_tmp, eval);
             loaded = load_from_path_list ( self, dir, eval );
             if ( loaded )
                 DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: found from env. var '%s'\n", eval ) );
@@ -1852,23 +1499,17 @@ bool load_from_std_location ( KConfig *self, const KDirectory *dir )
 {
     const char * std_locs [] =
     {
-#if ! WINDOWS
-        "/etc/ncbi",
-#else
-        "/c/ncbi",
-#endif
+        "/etc/ncbi"
     };
-
-    rc_t rc = 0;
-
+    
     int i;
     bool loaded = false;
     for ( i = 0; ! loaded && i < sizeof std_locs / sizeof std_locs [ 0 ]; ++ i )
     {
         DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: try to load from std. location '%s'\n", std_locs[ i ] ) );
-        rc = KConfigAppendToLoadPath(self, std_locs [ i ]);
-        loaded = load_from_path ( self, dir,
-            std_locs [ i ], string_size ( std_locs [ i ] ));
+        G_load_path = append_to_load_path
+            (G_load_path, &G_load_path_sz_tmp, std_locs [ i ]);
+        loaded = load_from_path ( self, dir, std_locs [ i ], strlen ( std_locs [ i ] ) );
     }
     if ( loaded )
         DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: found from std. location\n" ) );
@@ -1876,7 +1517,7 @@ bool load_from_std_location ( KConfig *self, const KDirectory *dir )
 }
 
 static
-rc_t load_from_fs_location ( KConfig *self )
+void load_from_fs_location ( KConfig *self )
 {
     KDyld *dyld;
     rc_t rc = KDyldMake ( & dyld );
@@ -1893,7 +1534,8 @@ rc_t load_from_fs_location ( KConfig *self )
             if (KDirectoryResolvePath
                     (dir, true, resolved, sizeof resolved, "ncbi") == 0)
             {
-                rc = KConfigAppendToLoadPath(self, resolved);
+                G_load_path = append_to_load_path
+                    (G_load_path, &G_load_path_sz_tmp, resolved);
             }
             if ( load_from_dir_path ( self, dir, "ncbi", 4 ) )
                 DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: found from dyn. loader\n" ) );
@@ -1901,7 +1543,6 @@ rc_t load_from_fs_location ( KConfig *self )
         }
         KDyldRelease ( dyld );
     }
-    return rc;
 }
 
 LIB_EXPORT rc_t CC KConfigGetLoadPath ( const KConfig *self,
@@ -1915,56 +1556,10 @@ LIB_EXPORT rc_t CC KConfigGetLoadPath ( const KConfig *self,
         return RC ( rcKFG, rcPath, rcListing, rcParam, rcNull );
     }
 
-    *path = self->load_path;
+    *path = G_load_path;
     return 0;
 }
 
-
-static
-bool load_from_home(KConfig *self, const KDirectory *dir)
-{
-    const char *home = getenv("HOME");
-    DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: checking HOME\n" ) );
-
-    if (home == NULL) {
-        home = getenv("USERPROFILE");
-    }
-
-    if (home != NULL)
-    {
-        bool loaded;
-        size_t num_writ, path_size;
-        char path[PATH_MAX];
-        rc_t rc = string_printf(path, sizeof path, &num_writ, "%s/.ncbi", home);
-        if (rc != 0)
-            return false;
-
-        assert(num_writ < sizeof path);
-        
-        loaded = load_from_path ( self, dir, path, num_writ );
-        if ( loaded )
-        {
-            DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG),
-                ( "KFG: found from '%s'\n", path ) );
-        }
-
-        path_size = num_writ;
-        rc = string_printf ( & path [ path_size ], sizeof path - path_size, & num_writ, "/%s", MAGIC_LEAF_NAME );
-        if ( rc == 0 )
-        {
-            if ( load_from_file_path ( self, dir, path, path_size + num_writ, true ) )
-                loaded = true;
-        }
-        return loaded;
-    }
-    else {
-        DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG),
-            ( "KFG: none of env{HOME}, env{USERPROFILE} is defined\n" ) );
-    }
-
-    return false;
-}
-
 static
 void load_config_files ( KConfig *self, const KDirectory *dir )
 {
@@ -1976,16 +1571,11 @@ void load_config_files ( KConfig *self, const KDirectory *dir )
     if ( dir != NULL )
     {
         DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: try load from supplied directory\n" ) );
-
-        loaded = scan_config_dir ( self, dir );
-        if ( loaded )
+        if ( scan_config_dir ( self, dir ) )
+        {
             DBGMSG( DBG_KFG, DBG_FLAG(DBG_KFG), ( "KFG: found from supplied directory\n" ) );
-
-        if ( load_from_file_path ( self, dir, MAGIC_LEAF_NAME, sizeof MAGIC_LEAF_NAME - 1, true ) )
-            loaded = true;
-
-        if ( loaded )
             return;
+        }
     }
 
     /* open up the native directory */
@@ -2005,252 +1595,75 @@ void load_config_files ( KConfig *self, const KDirectory *dir )
     if ( ! loaded )
         load_from_fs_location ( self );
 
-    if ( ! s_disable_user_settings )
-        loaded |= load_from_home ( self, wd );
-
     KDirectoryRelease ( wd );
 
-    if (self->load_path) {
+    if (G_load_path) {
         char* tmp = NULL;
-        self->load_path_sz_tmp = string_size(self->load_path) + 1;
-        tmp = realloc(self->load_path, self->load_path_sz_tmp);
+        G_load_path_sz_tmp = strlen(G_load_path) + 1;
+        tmp = realloc(G_load_path, G_load_path_sz_tmp);
         if (tmp) {
-            self->load_path = tmp;
+            G_load_path = tmp;
         }
     }
 }
 
-static
-void add_predefined_nodes ( KConfig * self, const char *appname )
-{
-    size_t bytes;
-    char buf [ 4096 ];
-    const char *value;
-
-    KDirectory *cwd;
-    const KDirectory *dir;
 
-#if ! WINDOWS
-    struct utsname name;
-#endif
-
-    /* Path to libkfg.so */
-    KDyld *dyld;
-    rc_t rc = KDyldMake ( & dyld );
-    if ( rc == 0 )
+/* Make
+ *  create a process-global configuration manager
+ *
+ *  "cfg" [ OUT ] - return parameter for mgr
+ */
+LIB_EXPORT rc_t CC KConfigMake ( KConfig **cfg, const KDirectory * cfgdir )
+{
+    rc_t rc;
+    if ( cfg == NULL )
+        rc = RC ( rcKFG, rcMgr, rcCreating, rcParam, rcNull );
+    else
     {
-        rc = KDyldHomeDirectory ( dyld, & dir, ( fptr_t ) KConfigMake );
-        if ( rc == 0 )
+        KConfig *mgr = G_kfg;
+        if ( mgr != NULL )      /* if already made, just attach */
         {
-            KDirectoryResolvePath ( dir, true, buf, sizeof buf, "." );
-            KDirectoryRelease ( dir );
+            KConfigAddRef ( mgr );
+            * cfg = mgr;
+            return 0;
         }
-        KDyldRelease ( dyld );
-    }
-    update_node ( self, "vdb/lib/paths/kfg", rc == 0 ? buf : "", true );
 
-    /* Architecture */ 
-#if ! WINDOWS
-    if (uname(&name) >= 0)
-        update_node(self, "kfg/arch/name", name.nodename, true);
-    else
-#endif
-        update_node ( self, "kfg/arch/name", "", true);
-
-    string_printf(buf, sizeof(buf), &bytes, "%u", _ARCH_BITS);
-    update_node ( self, "kfg/arch/bits", buf, true );
-
-    /* *OS */
-#if LINUX
-    #define OS "linux"
-#elif MAC 
-    #define OS "mac"
-#elif WINDOWS
-    #define OS "win"
-#elif SUN
-    #define OS "sun"
-#else
-    #error unrecognized OS
-#endif
-    update_node ( self, "OS", OS, true );
-#undef OS
+        mgr = malloc ( sizeof * mgr );
+        if ( mgr == NULL )
+            rc = RC ( rcKFG, rcMgr, rcCreating, rcMemory, rcExhausted );
+        else
+        {
+            KConfigNode * root;
 
-    /* BUILD_LINKAGE */
-#if _STATIC
-    #define BUILD_LINKAGE "STATIC"
-#else
-    #define BUILD_LINKAGE "DYNAMIC"
-#endif
-    update_node ( self, "BUILD_LINKAGE", BUILD_LINKAGE, true );
-#undef BUILD_LINKAGE
-
-    /* BUILD */
-#if _PROFILING
-    #define BUILD "PROFILE"
-#elif _DEBUGGING
-    #define BUILD "DEBUG"
-#else 
-    #define BUILD "RELEASE"
-#endif
-    update_node(self, "BUILD", BUILD, true );
-#undef BUILD
+            String slash;
+            CONST_STRING ( & slash, "/" );
 
-    cwd = NULL;
+            rc = KConfigNodeMake ( & root, & slash );
+            if ( rc == 0 )
+            {
+                KConfigInit ( mgr, root );
 
-    /* PWD */
-    rc = KDirectoryNativeDir ( & cwd );
-    if ( rc == 0 )
-        rc = KDirectoryResolvePath ( cwd, true, buf, sizeof buf, "." );
-    update_node(self, "PWD", rc == 0 ? buf : "", true );
+                load_config_files ( mgr, cfgdir );
 
-    /* APPPATH */
-    if ( appname != NULL && rc == 0 )
-    {
-        bytes = string_size ( appname );
-        value = string_rchr ( appname, bytes, '/' );
-        if ( value == NULL )
-            value = string_rchr ( appname, bytes, '\\' );
-        if ( value != NULL )
-            bytes = appname + bytes - value;
-        rc = KDirectoryResolvePath ( cwd, true, buf, sizeof buf, "%s", appname);
-        if ( rc == 0 && bytes != 0 )
-            buf [ string_size(buf) - bytes ] = 0;    
-        update_node(self, "APPPATH", rc == 0 ? buf : "", true );
-    }
+                G_kfg = mgr;
+                * cfg = mgr;
+                return 0;
+            }
 
-    /* APPNAME */
-    rc = LogAppName(buf, sizeof(buf), &bytes);
-    if ( rc == 0 )
-        buf [ bytes ] = 0;
-    update_node(self, "APPNAME", rc == 0 ? buf : "", true );
-
-    /* Environment variables */
-    /* some of the variables may be undefined, create nodes with empty values for them */
-#define DEFINE_ENV(name)                                         \
-    value=getenv(name);                                          \
-    update_node(self, name, value == NULL ? "" : value, true )
-
-    DEFINE_ENV("HOST");
-    DEFINE_ENV("USER");
-    value = getenv("HOME");
-    if (value == NULL) 
-    {   /* apparently on Windows, use USERPROFILE */
-        value = getenv("USERPROFILE");
-    }
-    if (value == NULL)
-    {
-        update_node(self, "HOME", "", true );
-        update_node(self, "NCBI_HOME", "", false );
-        update_node(self, "NCBI_SETTINGS", "", false );
-    }
-    else
-    {
-        rc = KDirectoryResolvePath(cwd, true, buf, sizeof(buf), value);
-        if (rc == 0)
-        {
-            size_t bytes2;
-            char buf2 [ 4096 ];
-        
-            update_node(self, "HOME", buf, true );
-            
-            string_printf(buf2, sizeof(buf2), &bytes2, "%s/.ncbi", buf);
-            update_node(self, "NCBI_HOME", buf2, false );    /* can be overridden by the user */ 
-            
-            string_printf(buf2, sizeof(buf2), &bytes2, "%s/.ncbi/%s", buf, MAGIC_LEAF_NAME);
-            update_node(self, "NCBI_SETTINGS", buf2, false );    /* can be overridden by the user */ 
+            KConfigWhack ( mgr );
         }
-        else
-            LOGERR (klogErr, rc, "Unable to create a config item for $HOME");
-    }
 
-    DEFINE_ENV("VDB_ROOT");
-    DEFINE_ENV("VDB_CONFIG");
-#undef DEFINE_ENV
+        * cfg = NULL;
+    }
 
-    KDirectoryRelease ( cwd );
+    return rc;
 }
 
-static
-rc_t KConfigFill ( KConfig * self, const KDirectory * cfgdir, const char *appname, bool local)
-{
-    KConfigNode * root;
-    String empty;
-    rc_t rc;
-
-    CONST_STRING ( & empty, "" );
-
-    rc = KConfigNodeMake ( & root, & empty );
-    if (rc == 0)
-    {
-        KConfigInit ( self, root );
-        add_predefined_nodes ( self, appname );
-        load_config_files ( self, cfgdir );
-    }
-    return rc;
-}
-
-
-extern rc_t ReportKfg ( const ReportFuncs *f, uint32_t indent );
-
-/* "cfg" [ OUT ] - return parameter for mgr
-   if ("local" == true) do not initialize G_kfg */
-static
-rc_t KConfigMakeImpl ( KConfig **cfg, const KDirectory * cfgdir, bool local )
-{
-    rc_t rc;
-    const char *appname = NULL;
-
-    static bool latch;
-    if ( ! latch )
-    {
-        appname = ReportInitConfig ( ReportKfg );
-        latch = true;
-    }
-
-    if ( cfg == NULL )
-        rc = RC ( rcKFG, rcMgr, rcCreating, rcParam, rcNull );
-    else
-    {
-        KConfig *mgr = calloc ( 1, sizeof * mgr );
-        if ( mgr == NULL )
-            rc = RC ( rcKFG, rcMgr, rcCreating, rcMemory, rcExhausted );
-        else
-        {
-            rc = KConfigFill (mgr, cfgdir, appname, local);
-
-            mgr -> initialized = true;
-            if ( rc == 0 )
-            {
-                * cfg = mgr;
-                return 0;
-            }
-
-            KConfigWhack ( mgr );
-        }
-
-        * cfg = NULL;
-    }
-
-    return rc;
-}
-
-/* call KConfigMake; do not initialize G_kfg */
-LIB_EXPORT rc_t CC KConfigMakeLocal ( KConfig **cfg, const KDirectory * cfgdir )
-{   return KConfigMakeImpl(cfg, cfgdir, true); }
-
-/* Make
- *  create a process-global configuration manager
- *
- *  "cfg" [ OUT ] - return parameter for mgr
- */
-LIB_EXPORT rc_t CC KConfigMake ( KConfig **cfg, const KDirectory * cfgdir )
-{   return KConfigMakeImpl(cfg, cfgdir, false); }
-
-/*--------------------------------------------------------------------------
- * KNamelist
- */
-typedef struct KfgConfigNamelist KfgConfigNamelist;
-struct KfgConfigNamelist
+/*--------------------------------------------------------------------------
+ * KNamelist
+ */
+typedef struct KfgConfigNamelist KfgConfigNamelist;
+struct KfgConfigNamelist
 {
     KNamelist dad;
     size_t count;
@@ -2345,10 +1758,10 @@ void CC KConfigNodeGrabName ( BSTNode *n, void *data )
         = ( ( const KConfigNode* ) n ) -> name . addr;
 }
 
-/* ListChildren
+/* ListChild
  *  list all named children
  */
-LIB_EXPORT rc_t CC KConfigNodeListChildren ( const KConfigNode *self,
+LIB_EXPORT rc_t CC KConfigNodeListChild ( const KConfigNode *self,
     KNamelist **names )
 {
     if ( names == NULL )
@@ -2410,941 +1823,3 @@ LIB_EXPORT rc_t CC KConfigListIncluded ( const KConfig *self,
 
     return RC ( rcKFG, rcMgr, rcListing, rcSelf, rcNull );
 }
-
-/************** Internal node-reading helpers *************/
-
-/* ReadNodeValueFixed
- * copy the node's value into the caller's fixed size buffer and 0-terminate
- */
-static rc_t ReadNodeValueFixed ( const KConfigNode* self, char *buf, size_t bsize )
-{
-    size_t num_read, remaining;
-    rc_t rc = KConfigNodeRead ( self, 0, buf, bsize - 1, &num_read, &remaining);
-    if (rc == 0)
-    {
-        if (remaining != 0)
-            rc = RC ( rcKFG, rcNode, rcReading, rcBuffer, rcInsufficient );
-        else
-            buf[num_read] = '\0';
-    }        
-    return rc;
-}
-
-/**********************************************************/
- 
-/* ReadBool
- *  read a boolean node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (true if "TRUE", false if "FALSE"; rc != 0 if neither)
- *
- */
-LIB_EXPORT rc_t CC KConfigNodeReadBool ( const KConfigNode *self, bool *result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        * result = false;
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcNode, rcReading, rcSelf, rcNull );
-        else
-        {
-            char buf [ 6 ];
-            rc = ReadNodeValueFixed ( self, buf, sizeof buf );
-            if ( rc == 0 )
-            {
-                switch ( tolower ( buf [ 0 ] ) )
-                {
-                case 'f':
-                    if ( buf [ 1 ] == 0 )
-                        return 0;
-                    if ( strncasecmp ( buf, "false", sizeof buf ) == 0 )
-                        return 0;
-                    break;
-
-                case 'n':
-                    if ( buf [ 1 ] == 0 )
-                        return 0;
-                    if ( strncasecmp ( buf, "no", sizeof buf ) == 0 )
-                        return 0;
-                    break;
-
-                case 't':
-                    * result = true;
-                    if ( buf [ 1 ] == 0 )
-                        return 0;
-                    if ( strncasecmp ( buf, "true", sizeof buf ) == 0 )
-                        return 0;
-                    break;
-
-                case 'y':
-                    * result = true;
-                    if ( buf [ 1 ] == 0 )
-                        return 0;
-                    if ( strncasecmp ( buf, "yes", sizeof buf ) == 0 )
-                        return 0;
-                    break;
-                }
-
-                * result = false;
-                rc = RC ( rcKFG, rcNode, rcReading, rcFormat, rcIncorrect );
-            }
-        }
-    }
-
-    return rc;
-}
-
-/* ReadI64
- *  read an integer node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-LIB_EXPORT rc_t CC KConfigNodeReadI64 ( const KConfigNode *self, int64_t *result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        * result = 0;
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcNode, rcReading, rcSelf, rcNull );
-        else
-        {
-            /* allow for leading zeros */
-            char buf [ 256 ];
-    
-            rc = ReadNodeValueFixed(self, buf, sizeof(buf));
-            if (rc == 0)
-            {
-                char* endptr;
-                int64_t res = strtoi64(buf, &endptr, 0);
-                if ( *endptr == '\0' )
-                    *result = res;
-                else
-                    rc = RC(rcKFG, rcNode, rcReading, rcFormat, rcIncorrect);
-            }
-        }
-    }
-    return rc;
-}
-
-/* ReadU64
- *  read an unsiged node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-LIB_EXPORT rc_t CC KConfigNodeReadU64 ( const KConfigNode *self, uint64_t* result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        * result = 0;
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcNode, rcReading, rcSelf, rcNull );
-        else
-        {
-            /* allow for leading zeros */
-            char buf [ 256 ];
-    
-            rc = ReadNodeValueFixed(self, buf, sizeof(buf));
-            if (rc == 0)
-            {
-                char* endptr;
-                int64_t res = strtou64(buf, &endptr, 0);
-                if ( *endptr == '\0' )
-                    *result = res;
-                else
-                    rc = RC(rcKFG, rcNode, rcReading, rcFormat, rcIncorrect);
-            }
-        }
-    }
-    return rc;
-}
-
-/* ReadF64
- *  read a floating point node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-LIB_EXPORT rc_t CC KConfigNodeReadF64( const KConfigNode *self, double* result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        * result = 0.0;
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcNode, rcReading, rcSelf, rcNull );
-        else
-        {
-            /* allow for leading zeros, trailing digits */
-            char buf [ 256 ];
-
-            rc = ReadNodeValueFixed(self, buf, sizeof(buf));
-            if (rc == 0)
-            {
-                char* endptr;
-                double res = strtod(buf, &endptr);
-                if ( *endptr == '\0' )
-                    *result = res;
-                else
-                    rc = RC(rcKFG, rcNode, rcReading, rcFormat, rcIncorrect);
-            }
-        }
-    }
-    return rc;
-}
-
-#if 0
-/*** NB - code needs to be located in VFS ***/
-/* ReadNodeValueFixed
- * Allocate a character buffer of sufficient size, copy the node's value into it, 0-terminate. Caller deallocates.
- */
-static rc_t ReadNodeValueVariable( const KConfigNode* self, char** buf )
-{
-    size_t num_read, to_read;
-    /* first we ask about the size to be read */
-    rc_t rc = KConfigNodeRead ( self, 0, NULL, 0, &num_read, &to_read );
-    if ( rc == 0 )
-    {
-        char* value = malloc( to_read + 1 );
-        if ( value )
-        {
-            rc = ReadNodeValueFixed( self, value, to_read + 1 );
-            if ( rc == 0 )
-                *buf = value;
-            else
-                free (value);
-        }
-        else
-            rc = RC( rcKFG, rcNode, rcReading, rcMemory, rcExhausted );
-    }   
-    return rc;
-}
-
-/* ReadFloat
- *  read a VPath node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-LIB_EXPORT rc_t CC KConfigNodeReadVPath ( const KConfigNode *self, struct VPath** result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        * result = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcNode, rcReading, rcSelf, rcNull );
-        else
-        {
-            char* buf;
-            rc = ReadNodeValueVariable ( self, &buf );
-            if ( rc == 0)
-            {
-                rc = VPathMake(result, buf);
-                free(buf);
-            }
-        }
-    }
-    return rc;
-}
-#endif
-
-/* ReadString
- *  read a String node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-LIB_EXPORT rc_t CC KConfigNodeReadString ( const KConfigNode *self, String** result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        * result = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcNode, rcReading, rcSelf, rcNull );
-        else
-        {
-            size_t num_read, to_read;
-
-            /* first we ask about the size to be read */
-            rc = KConfigNodeRead ( self, 0, NULL, 0, &num_read, &to_read );
-            if ( rc == 0 )
-            {
-                String *value = malloc ( sizeof * value + to_read + 1 );
-                if ( value == NULL )
-                    rc = RC( rcKFG, rcNode, rcReading, rcMemory, rcExhausted );
-                else
-                {
-                    /* TBD - this is broken for non-ascii strings
-                       much better to be WITHIN the config.c implementation
-                       and reach into the node value directly! */
-                    StringInit ( value, (char*)( value + 1 ), to_read, to_read + 1 );
-                    rc = ReadNodeValueFixed(self, (char*)value->addr, to_read + 1);
-                    if ( rc == 0 )
-                        *result = value;
-                    else
-                    {
-                        rc = RC(rcKFG, rcNode, rcReading, rcFormat, rcIncorrect);
-                        free ( value );
-                    }
-                }
-            }
-        }
-    }    
-    return rc;
-}
-
-/* this macro wraps a call to KConfigNodeGetXXX in a node-accessing
-   code to implement the corresponding KConfigGetXXX function */
-#define NODE_TO_CONFIG_ACCESSOR(fn) \
-    const KConfigNode* node;                                \
-    rc_t rc = KConfigOpenNodeRead ( self, &node, path );    \
-    if ( rc == 0)                                           \
-    {                                                       \
-        rc_t rc2;                                           \
-        rc = fn(node, result);                              \
-        rc2 = KConfigNodeRelease(node);                     \
-        if (rc == 0)                                        \
-            rc = rc2;                                       \
-    }                                                       \
-    return rc;                                              
-    
-/* THESE FUNCTIONS ARE PROTECTED AGAINST BAD "self" AND "path"
-   BY KConfigOpenNodeRead, BUT THE CONVERSION FUNCTIONS ARE NOT */
-LIB_EXPORT rc_t CC KConfigReadBool ( const KConfig* self, const char* path, bool* result )
-{
-    NODE_TO_CONFIG_ACCESSOR(KConfigNodeReadBool);
-}    
-LIB_EXPORT rc_t CC KConfigReadI64 ( const KConfig* self, const char* path, int64_t* result )
-{
-    NODE_TO_CONFIG_ACCESSOR(KConfigNodeReadI64);
-}
-LIB_EXPORT rc_t CC KConfigReadU64 ( const KConfig* self, const char* path, uint64_t* result )
-{
-    NODE_TO_CONFIG_ACCESSOR(KConfigNodeReadU64);
-}
-LIB_EXPORT rc_t CC KConfigReadF64 ( const KConfig* self, const char* path, double* result )
-{
-    NODE_TO_CONFIG_ACCESSOR(KConfigNodeReadF64);
-}
-#if 0
-LIB_EXPORT rc_t CC KConfigReadVPath ( const KConfig* self, const char* path, struct VPath** result )
-{
-    NODE_TO_CONFIG_ACCESSOR(KConfigNodeReadVPath);
-}
-#endif
-LIB_EXPORT rc_t CC KConfigReadString ( const KConfig* self, const char* path, struct String** result )
-{
-    NODE_TO_CONFIG_ACCESSOR(KConfigNodeReadString);
-}
-
-#define DISP_RC(rc, msg) (void)((rc == 0) ? 0 : LOGERR(klogInt, rc, msg))
-#define DISP_RC2(rc, name, msg) (void)((rc == 0) ? 0 : \
-    PLOGERR(klogInt, (klogInt, rc, \
-        "$(name): $(msg)", "name=%s,msg=%s", name, msg)))
-
-static rc_t KConfigNodeReadData(const KConfigNode* self,
-    char* buf, size_t blen, size_t* num_read)
-{
-    rc_t rc = 0;
-    size_t remaining = 0;
-
-    assert(buf && blen && num_read);
-
-    rc = KConfigNodeRead(self, 0, buf, blen, num_read, &remaining);
-
-    assert(remaining == 0); /* TODO overflow check */
-    assert(*num_read <= blen);
-
-    return rc;
-}
-
-static rc_t printIndent(int indent) {
-    rc_t rc = 0;
-
-    int i = 0;
-    for (i = 0; i < indent * 2; ++i) {
-        rc_t rc2 = OUTMSG((" "));
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-
-    return rc;
-}
-
-static
-rc_t KConfigNodePrint(const KConfigNode* self,
-    int indent, const char* root)
-{
-    rc_t rc = 0;
-    KNamelist* names = NULL;
-    uint32_t count = 0;
-    uint32_t i = 0;
-    char data[512] = "";
-    size_t num_data = 0;
-    assert(self);
-
-    printIndent(indent);
-    OUTMSG(("<%s>", root));
-
-    if (rc == 0) {
-        rc_t rc = KConfigNodeReadData(self, data, sizeof data, &num_data);
-        DISP_RC2(rc, "KConfigNodeReadData()", root);
-        if (rc == 0 && num_data > 0) {
-            OUTMSG(("%.*s", (int)num_data, data));
-        }
-    }
-
-    if (rc == 0) {
-        rc = KConfigNodeListChild(self, &names);
-        DISP_RC2(rc, "KConfigNodeListChild()", root);
-    }
-    if (rc == 0) {
-        rc = KNamelistCount(names, &count);
-        DISP_RC2(rc, "KNamelistCount()", root);
-    }
-
-
-    if (rc == 0) {
-        if (count > 0) {
-            OUTMSG(("\n"));
-        }
-        for (i = 0; i < count; ++i) {
-            const char* name = NULL;
-            const KConfigNode* node = NULL;
-            if (rc == 0) {
-                rc = KNamelistGet(names, i, &name);
-                DISP_RC2(rc, "KNamelistGet()", root);
-            }
-            if (rc == 0) {
-                rc = KConfigNodeOpenNodeRead(self, &node, name);
-                DISP_RC2(rc, "KConfigNodeOpenNodeRead()", name);
-            }
-            if (rc == 0) {
-                KConfigNodePrint(node, indent + 1, name);
-            }
-            KConfigNodeRelease(node);
-        }
-    }
-
-    if (count > 0) {
-        printIndent(indent);
-    }
-    OUTMSG(("</%s>\n", root));
-
-    KNamelistRelease(names);
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KConfigPrint(const KConfig* self, int indent) {
-    rc_t rc = 0;
-
-    const char root[] = "Config";
-
-    if (self == NULL) {
-        OUTMSG(("<%s>", root));
-        OUTMSG(("KConfigPrint(const KConfig* self = NULL)\n"));
-        OUTMSG(("</%s>\n", root));
-    }
-    else {
-        const KConfigNode* node = NULL;
-        if (rc == 0) {
-            rc = KConfigOpenNodeRead(self, &node, "/");
-            DISP_RC2(rc, "KConfigOpenNodeRead()", "/");
-        }
-        if (rc == 0) {
-            KConfigNodePrint(node, indent, "Config");
-        }
-        KConfigNodeRelease(node);
-    }
-
-    return rc;
-}
-
-LIB_EXPORT void CC KConfigDisableUserSettings ( void )
-{
-    s_disable_user_settings = true;
-}
-
-static
-rc_t open_file ( const KFile **f, const char *path )
-{
-    /* get current directory */
-    KDirectory *wd;
-    rc_t rc = KDirectoryNativeDir ( & wd );
-    if ( rc == 0 )
-    {
-        rc = KDirectoryOpenFileRead ( wd, f, path );
-        KDirectoryRelease ( wd );
-    }
-
-    return rc;
-}
-
-static
-rc_t decode_file ( KDataBuffer *mem, const KFile *orig )
-{
-    char hdr [ 8 ];
-    size_t num_read;
-    rc_t rc = KFileReadAll ( orig, 0, hdr, sizeof hdr, & num_read );
-    if ( rc == 0 && num_read == sizeof hdr )
-    {
-        if ( memcmp ( hdr, "ncbi_gap", sizeof hdr ) == 0 )
-        {
-            uint64_t eof;
-            rc = KFileSize ( orig, & eof );
-            if ( rc == 0 )
-            {
-                const KFile *sub;
-                rc = KFileMakeSubRead ( & sub, orig, sizeof hdr,
-                    eof - sizeof hdr );
-                if ( rc == 0 )
-                {
-                    const KFile *gzip;
-                    rc = KFileMakeGzipForRead ( & gzip, sub );
-                    if ( rc == 0 )
-                    {
-                        rc = KDataBufferMakeBytes ( mem, 0 );
-                        if ( rc == 0 )
-                        {
-                            size_t total, to_read;
-
-                            /* after all of that, we're ready to decompress */
-                            for ( total = 0; ; )
-                            {
-                                char *buff;
-
-                                rc = KDataBufferResize ( mem,
-                                    total + 32 * 1024 );
-                                if ( rc != 0 )
-                                    break;
-
-                                buff = mem -> base;
-                                to_read = ( size_t ) mem -> elem_count - total;
-
-                                rc = KFileReadAll ( gzip, total,
-                                    & buff [ total ], to_read, & num_read );
-                                if ( rc != 0 )
-                                    break;
-
-                                total += num_read;
-                                
-                                if ( num_read < to_read )
-                                {
-                                    buff [ total ] = 0;
-                                    mem -> elem_count = total;
-                                    break;
-                                }
-                            }
-                        }
-
-                        KFileRelease ( gzip );
-                    }
-
-                    KFileRelease ( sub );
-                }
-            }
-        }
-    }
-
-    return rc;
-}
-
-typedef struct {
-    const char *projectId;
-    const char *encryptionKey;
-    const char *downloadTicket;
-    const char *description;
-} KGapConfig;
-
-static
-rc_t _KConfigNncToKGapConfig(const KConfig *self, char *text, KGapConfig *kgc)
-{
-    size_t len = 0;
-    int i = 0;
-
-    assert(self && text && kgc);
-
-    memset(kgc, 0, sizeof *kgc);
-    len = string_size(text);
-
-    {
-        const char version[] = "version ";
-        size_t l = sizeof version - 1;
-        if (string_cmp(version, l, text, len, l) != 0) {
-            return RC(rcKFG, rcMgr, rcUpdating, rcFormat, rcUnrecognized);
-        }
-        text += l;
-        len -= l;
-    }
-
-    {
-        const char version[] = "1.0";
-        size_t l = sizeof version - 1;
-        if (string_cmp(version, l, text, l, l) != 0) {
-            return RC(rcKFG, rcMgr, rcUpdating, rcFormat, rcUnsupported);
-        }
-        text += l;
-        len -= l;
-    }
-
-    while (len > 0 && (text[0] == '\r' || text[0] == '\n')) {
-        ++text;
-        --len;
-    }
-
-    for (i = 0; ; ++i) {
-        const char *p = NULL;
-        if (i == 0) {
-            p = strtok(text, "|");
-        }
-        else {
-            p = strtok (NULL, "|");
-        }
-        if (p == NULL) {
-            break;
-        }
-        switch (i) {
-            case 0:
-                kgc->projectId = p;
-                break;
-            case 1:
-                kgc->encryptionKey = p;
-                break;
-            case 2:
-                kgc->downloadTicket = p;
-                break;
-            case 3:
-                kgc->description = p;
-                break;
-        }
-    }
-
-    if (!kgc->projectId || !kgc->encryptionKey || !kgc->downloadTicket ||
-        !kgc->description)
-    {
-        return RC(rcKFG, rcMgr, rcUpdating, rcFile, rcInvalid);
-    }
-
-    return 0;
-}
-
-static rc_t _KConfigFixResolverCgiNode(KConfig *self) {
-    rc_t rc = 0;
-
-    KConfigNode *node = NULL;
-    struct String *result = NULL;
-
-    assert(self);
-
-    if (rc == 0) {
-        rc = KConfigOpenNodeUpdate(self, &node,
-            "/repository/remote/protected/CGI/resolver-cgi");
-    }
-
-    if (rc == 0) {
-        rc = KConfigNodeReadString(node, &result);
-    }
-
-    if (rc == 0) {
-        assert(result);
-        if (result->size == 0) {
-            const char buffer[]
-                = "http://www.ncbi.nlm.nih.gov/Traces/names/names.cgi";
-            rc = KConfigNodeWrite(node, buffer, sizeof buffer);
-        }
-    }
-
-    free(result);
-
-    KConfigNodeRelease(node);
-
-    return rc;
-}
-
-static rc_t _KConfigNodeUpdateChild(KConfigNode *self,
-    const char *name, const char *val)
-{
-    rc_t rc = 0;
-
-    KConfigNode *node = NULL;
-
-    assert(self && name && val);
-
-    if (rc == 0) {
-        rc = KConfigNodeOpenNodeUpdate(self, &node, name);
-    }
-
-    if (rc == 0) {
-        rc = KConfigNodeWrite(node, val, string_size(val));
-    }
-
-    {
-        rc_t rc2 = KConfigNodeRelease(node);
-        if (rc2 != 0 && rc == 0) {
-            rc = rc2;
-        }
-    }
-
-    return rc;
-}
-
-static rc_t _KConfigMkPwdFileAndNode(KConfig *self,
-    KConfigNode *rep, const KGapConfig *kgc)
-{
-    rc_t rc = 0;
-    const KConfigNode *ncbiHome = NULL;
-    KConfigNode *node = NULL;
-    struct String *result = NULL;
-    char encryptionKeyPath[PATH_MAX];
-    KDirectory *dir = NULL;
-    KFile *encryptionKeyFile = NULL;
-    size_t num_writ = 0;
-
-    assert(self && kgc && rep);
-
-    if (rc == 0) {
-        rc = KConfigOpenNodeRead(self, &ncbiHome, "NCBI_HOME");
-    }
-    if (rc == 0) {
-        rc = KConfigNodeReadString(ncbiHome, &result);
-    }
-    KConfigNodeRelease(ncbiHome);
-    ncbiHome = NULL;
-
-    if (rc == 0) {
-        size_t num_writ = 0;
-        assert(result && result->addr);
-        rc = string_printf(encryptionKeyPath, sizeof encryptionKeyPath,
-            &num_writ, "%s/dbGap-%s.enc_key", result->addr, kgc->projectId);
-        if (rc == 0) {
-            assert(num_writ < sizeof encryptionKeyPath);
-        }
-    }
-    free(result);
-    result = NULL;
-
-    if (rc == 0) {
-        rc = KDirectoryNativeDir(&dir);
-    }
-
-    if (rc == 0) {
-        rc = KDirectoryCreateFile(dir, &encryptionKeyFile,
-            false, 0600, kcmInit | kcmParents, encryptionKeyPath);
-    }
-
-    KDirectoryRelease(dir);
-
-    if (rc == 0) {
-        assert(kgc->encryptionKey);
-        rc = KFileWrite(encryptionKeyFile, 0,
-            kgc->encryptionKey, string_size(kgc->encryptionKey), &num_writ);
-        if (rc == 0) {
-            assert(num_writ == string_size(kgc->encryptionKey));
-        }
-    }
-
-    if (rc == 0) {
-        rc = KFileWrite(encryptionKeyFile, string_size(kgc->encryptionKey),
-            "\n", 1, &num_writ);
-        if (rc == 0) {
-            assert(num_writ == 1);
-        }
-    }
-
-    {
-        rc_t rc2 = KFileRelease(encryptionKeyFile);
-        if (rc2 != 0 && rc == 0) {
-            rc = rc2;
-        }
-    }
-
-    if (rc == 0) {
-        rc = _KConfigNodeUpdateChild(rep,
-            "encryption-key-path", encryptionKeyPath);
-    }
-
-    KConfigNodeRelease(node);
-
-    return rc;
-}
-
-static rc_t _KConfigDBGapRepositoryNodes(KConfig *self,
-    KConfigNode *rep, const KGapConfig *kgc, const char *repoParentPath)
-{
-    rc_t rc = 0;
-
-    assert(self && rep && kgc);
-
-    if (rc == 0) {
-        rc = _KConfigMkPwdFileAndNode(self, rep, kgc);
-    }
-
-    if (rc == 0) {
-        assert(kgc->downloadTicket);
-        rc = _KConfigNodeUpdateChild(rep,
-            "download-ticket", kgc->downloadTicket);
-    }
-
-    if (rc == 0) {
-        rc = _KConfigNodeUpdateChild(rep, "description", kgc->description);
-    }
-
-    if (rc == 0) {
-        rc = _KConfigNodeUpdateChild(rep, "apps/sra/volumes/sraFlat", "sra");
-    }
-
-    if (rc == 0) {
-        rc = _KConfigNodeUpdateChild(rep, "cache-enabled", "true");
-    }
-
-    if (rc == 0) {
-        char rootPath[PATH_MAX] = "";
-        if (repoParentPath == NULL) {
-            size_t num_writ = 0;
-            const KConfigNode *home = NULL;
-            String *result = NULL;
-
-            if (rc == 0) {
-                rc = KConfigOpenNodeRead(self, &home, "HOME");
-            }
-
-            if (rc == 0) {
-                rc = KConfigNodeReadString(home, &result);
-            }
-
-            if (rc == 0) {
-                assert(result && result->addr);
-                rc = string_printf(rootPath, sizeof rootPath, &num_writ,
-                    "%s/ncbi/dbGap-%s", result->addr, kgc->projectId);
-            }
-
-            if (rc == 0) {
-                repoParentPath = rootPath;
-            }
-
-            free(result);
-            KConfigNodeRelease(home);
-        }
-
-        if (rc == 0) {
-            rc = _KConfigNodeUpdateChild(rep, "root", repoParentPath);
-        }
-    }
-
-    return rc;
-}
-
-static rc_t _KConfigAddDBGapRepository(KConfig *self,
-    const KGapConfig *kgc, const char *repoParentPath)
-{
-    rc_t rc = 0;
-
-    KConfigNode *rep = NULL;
-
-    char repNodeName[512] = "";
-
-    assert(self && kgc);
-
-    if (rc == 0) {
-        size_t num_writ = 0;
-        rc = string_printf(repNodeName, sizeof repNodeName, &num_writ,
-            "/repository/user/protected/dbGap-%s", kgc->projectId);
-        if (rc == 0) {
-            assert(num_writ < sizeof repNodeName);
-        }
-    }
-
-    if (rc == 0) {
-        rc = KConfigOpenNodeUpdate(self, &rep, repNodeName);
-    }
-
-    if (rc == 0) {
-        rc = _KConfigDBGapRepositoryNodes(self, rep, kgc, repoParentPath);
-    }
-
-    KConfigNodeRelease(rep);
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KConfigImportNgc(KConfig *self,
-    const char *ngcPath, const char *repoParentPath)
-{
-    if (self == NULL) {
-        return RC(rcKFG, rcMgr, rcUpdating, rcSelf, rcNull);
-    }
-
-    if (ngcPath == NULL) {
-        return RC(rcKFG, rcMgr, rcUpdating, rcParam, rcNull);
-    }
-    else {
-        const KFile *orig = NULL;
-        rc_t rc = open_file ( & orig, ngcPath );
-        if (rc != 0) {
-            return rc;
-        }
-        else {
-            KGapConfig kgc;
-
-            KDataBuffer mem;
-            memset ( & mem, 0, sizeof mem );
-
-            rc = decode_file ( & mem, orig );
-            KFileRelease ( orig );
-            orig = NULL;
-
-            if (rc == 0) {
-                rc = _KConfigNncToKGapConfig(self, mem.base, &kgc);
-            }
-
-            KDataBufferWhack ( & mem );
-
-            if (rc == 0) {
-                rc = _KConfigFixResolverCgiNode(self);
-            }
-
-            if (rc == 0) {
-                rc = _KConfigAddDBGapRepository(self, &kgc, repoParentPath);
-            }
-        }
-
-        return rc;
-    }
-}
diff --git a/tools/sra-sort/Makefile.gcc b/libs/kfg/config.linux.kfg
similarity index 88%
rename from tools/sra-sort/Makefile.gcc
rename to libs/kfg/config.linux.kfg
index 02182c4..a5164c7 100644
--- a/tools/sra-sort/Makefile.gcc
+++ b/libs/kfg/config.linux.kfg
@@ -22,6 +22,8 @@
 #
 # ===========================================================================
 
+# this is the most basic type of configuration
 
-PED = $(shell $(SRCDIR)/gcc-ped.sh -std=gnu99 -fgnu89-inline)
-
+# vdb/module/paths = "path-to-modules"
+# vdb/schema/paths = "path-to-schema"
+# refseq/paths     = "path-to-references"
diff --git a/tools/sra-sort/Makefile.clang b/libs/kfg/config.mac.kfg
similarity index 88%
rename from tools/sra-sort/Makefile.clang
rename to libs/kfg/config.mac.kfg
index bad5e3a..a5164c7 100644
--- a/tools/sra-sort/Makefile.clang
+++ b/libs/kfg/config.mac.kfg
@@ -22,6 +22,8 @@
 #
 # ===========================================================================
 
+# this is the most basic type of configuration
 
-PED = -std=gnu99 -fgnu89-inline
-
+# vdb/module/paths = "path-to-modules"
+# vdb/schema/paths = "path-to-schema"
+# refseq/paths     = "path-to-references"
diff --git a/tools/sra-sort/Makefile.vc++ b/libs/kfg/config.win.kfg
similarity index 88%
rename from tools/sra-sort/Makefile.vc++
rename to libs/kfg/config.win.kfg
index ca33e13..a5164c7 100644
--- a/tools/sra-sort/Makefile.vc++
+++ b/libs/kfg/config.win.kfg
@@ -22,3 +22,8 @@
 #
 # ===========================================================================
 
+# this is the most basic type of configuration
+
+# vdb/module/paths = "path-to-modules"
+# vdb/schema/paths = "path-to-schema"
+# refseq/paths     = "path-to-references"
diff --git a/libs/kfg/default.kfg b/libs/kfg/default.kfg
deleted file mode 100644
index 14f8ac9..0000000
--- a/libs/kfg/default.kfg
+++ /dev/null
@@ -1,45 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-## DEFAULT CONFIGURATION FOR SRA-TOOLKIT
-# 
-#  These settings are intended to allow the tools to work under conditions
-#  when the user has not yet performed any configuration.
-/config/default = "true"
-
-# The user's default public repository
-/repository/user/main/public/apps/refseq/volumes/refseq = "refseq"
-/repository/user/main/public/apps/sra/volumes/sraFlat = "sra"
-/repository/user/main/public/apps/wgs/volumes/wgsFlat = "wgs"
-/repository/user/main/public/cache-enabled = "true"
-/repository/user/main/public/root = "$(HOME)/ncbi/public"
-
-# Remote access to NCBI's public repository
-/repository/remote/main/NCBI/apps/refseq/volumes/refseq = "refseq"
-/repository/remote/main/NCBI/apps/sra/volumes/fuse1000 = "sra-instant/reads/ByRun/sra"
-/repository/remote/main/NCBI/apps/wgs/volumes/fuseWGS = "wgs"
-/repository/remote/main/NCBI/root = "http://ftp-trace.ncbi.nlm.nih.gov/sra"
-
-# Remote access to NCBI's protected repository
-/repository/remote/protected/CGI/resolver-cgi = "http://www.ncbi.nlm.nih.gov/Traces/names/names.cgi"
diff --git a/libs/kfg/kfg-parse.h b/libs/kfg/kfg-parse.h
deleted file mode 100644
index c271b98..0000000
--- a/libs/kfg/kfg-parse.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_kfg_scan_
-#define _h_kfg_scan_
-
-#include <kfg/extern.h>
-#include <klib/rc.h>
-#include <klib/namelist.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct KFGParseBlock
-{
-    const char* tokenText;
-    size_t tokenLength;
-    int tokenId;
-    size_t line_no;
-    size_t column_no;
-} KFGParseBlock;
-
-typedef struct KFGScanBlock
-{
-    void* scanner;
-    void* buffer;
-    void* self; 
-    const char* file;
-    KFGParseBlock* lastToken; /* used for error reporting */
-    rc_t (*write_nvp)(void * self, const char* name, size_t nameLen, VNamelist*);
-    bool (*look_up_var)(void * self, struct KFGParseBlock*);
-    void (*report_error)(struct KFGScanBlock* sb, const char* msg);
-} KFGScanBlock;
-
-#define YYSTYPE_IS_DECLARED
-typedef union 
-{
-	KFGParseBlock   pb;
-	VNamelist*	    namelist;
-} KFGSymbol;
-
-/* Exposed for the sake of wb-test-kfg. */
-KFG_EXTERN rc_t CC KFGScan_yylex_init(KFGScanBlock* sb, const char *str);
-KFG_EXTERN void CC KFGScan_yylex_destroy(KFGScanBlock* sb);
-
-KFG_EXTERN void CC KFGScan_set_debug(bool on, KFGScanBlock* scannerContext);
-
-KFG_EXTERN int CC KFGScan_yylex(KFGSymbol* pb, KFGScanBlock* scannerContext);
-
-KFG_EXTERN int CC KFG_parse(KFGParseBlock* pb, KFGScanBlock* scannerContext);
-void CC KFG_error(KFGParseBlock* pb, KFGScanBlock* sb, const char* msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kfg_scan_ */
diff --git a/libs/kfg/libkfg.vers b/libs/kfg/libkfg.vers
index a970716..90a27f9 100644
--- a/libs/kfg/libkfg.vers
+++ b/libs/kfg/libkfg.vers
@@ -1 +1 @@
-1.0.15
+1.0.5
diff --git a/libs/kfg/report-kfg.c b/libs/kfg/report-kfg.c
deleted file mode 100644
index a0e45e0..0000000
--- a/libs/kfg/report-kfg.c
+++ /dev/null
@@ -1,505 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kfg/extern.h>
-
-#include <kfg/config.h>
-#include <kfg/repository.h> /* KRepositoryMgr */
-#include <kfg/kfg-priv.h>
-
-#include <klib/namelist.h> /* KNamelistRelease */
-#include <klib/out.h> /* OUTMSG */
-#include <klib/klib-priv.h>
-#include <klib/rc.h>
-
-#include <kfs/directory.h>
-#include <kfs/dyload.h> /* KDyld */
-#include <kfs/file.h> /* KFileRead */
-#include <kfs/nullfile.h> /* KFileMakeNullUpdate */
-#include <kfs/md5.h> /* KMD5SumFmt */
-
-#include <sysalloc.h>
-
-#include <stdarg.h> /* va_start */
-#include <stdio.h> /* sprintf */
-#include <stdlib.h> /* malloc */
-#include <string.h> /* memset */
-#include <limits.h> /* PATH_MAX */
-#include <assert.h>
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
-
-/*
- * An unrecoverable error happened.
- * We can help to solve it
- * by reporting information about known application execution environment.
- */
-
-#define report ( * f -> report )
-#define reportData ( * f -> reportData )
-#define reportData1 ( * f -> reportData1 )
-#define reportOpen ( * f -> reportOpen )
-#define reportOpen1 ( * f -> reportOpen1 )
-#define reportClose ( * f -> reportClose )
-#define reportClose1 ( * f -> reportClose1 )
-#define reportError ( * f -> reportError )
-#define reportErrorStr ( * f -> reportErrorStr )
-#define reportErrorStrImpl ( * f -> reportErrorStrImpl )
-#define reportErrorStrInt ( * f -> reportErrorStrInt )
-#define reportError3Str ( * f -> reportError3Str )
-
-static rc_t ReportKfgFiles(const ReportFuncs *f,
-    int indent, const KConfig* cfg)
-{
-    rc_t rc = 0;
-
-    uint32_t count = 0;
-    KNamelist* names = NULL;
-
-    rc = KConfigListIncluded(cfg, &names);
-
-    if (rc != 0) {
-        reportOpen(indent, "Files", 0);
-        reportError(indent + 1, rc, "KConfigListIncluded");
-    }
-    else {
-        rc = KNamelistCount(names, &count);
-        if (rc != 0) {
-            reportOpen(indent, "Files", 0);
-            reportErrorStr(indent + 1,
-                rc, "KNamelistCount", "origin", "KConfigListIncluded");
-        }
-        else {
-            int i = 0;
-            reportOpen(indent, "Files", 1, "count", 'd', count);
-            for (i = 0; i < count && rc == 0; ++i) {
-                const char* name = NULL;
-                rc = KNamelistGet(names, i, &name);
-                if (rc != 0) {
-                    reportErrorStrInt(indent + 1, rc, "KNamelistGet",
-                        "origin", "KConfigListIncluded", "idx", i);
-                }
-                else
-                {   report(indent + 1, "File", 1, "name", 's', name); }
-            }
-        }
-    }
-    reportClose(indent, "Files");
-
-    RELEASE(KNamelist, names);
-
-    return rc;
-}
-
-static
-rc_t sKConfigNode_Read(const KConfigNode* node, char* buffer, size_t buf_sz,
-    char** overflow_buf, bool* cant_allocate)
-{
-    rc_t rc = 0;
-    size_t num_read = 0;
-    size_t remaining = 0;
-    assert(overflow_buf && cant_allocate);
-    *cant_allocate = false;
-    *overflow_buf = NULL;
-    rc = KConfigNodeRead(node, 0, buffer, buf_sz, &num_read, &remaining);
-    if (rc != 0)
-    {   return rc; }
-    if (num_read < buf_sz)
-    {   buffer[num_read] = '\0'; }
-    else {
-        size_t new_buf_sz = num_read + remaining + 1;
-        char* overflow = malloc(new_buf_sz);
-        if (overflow == NULL) {
-            int i = 0;
-            for (i = 2; i < 5 && buf_sz - i > 0; ++i)
-            {   buffer[buf_sz - i] = '.'; }
-            buffer[buf_sz - 1] = '\0';
-            *cant_allocate = true;
-        }
-        else {
-            buffer = *overflow_buf = overflow;
-            buf_sz = 
-            rc = KConfigNodeRead
-                (node, 0, buffer, new_buf_sz, &num_read, &remaining);
-            if (rc != 0)
-            {   return rc; }
-            assert(num_read < new_buf_sz && remaining == 0);
-            buffer[num_read] = '\0';
-        }
-    }
-    return rc;
-}
-
-static rc_t ReportChildNode(const ReportFuncs *f, int indent,
-    const KNamelist* names, const KConfigNode* node, const char* root, uint32_t idx);
-
-static
-rc_t ReportConfigNodeChildren(const ReportFuncs *f, int indent,
-    const KConfigNode* node, const char* nodeName)
-{
-    KNamelist* names = NULL;
-    rc_t rc = KConfigNodeListChild(node, &names);
-    if (rc != 0) {
-        reportErrorStrImpl(indent,
-            rc, "KConfigNodeListChild", "node", nodeName, false);
-    }
-    else {
-        uint32_t count = 0;
-        rc = KNamelistCount(names, &count);
-        if (rc != 0) {
-            reportErrorStrImpl
-                (indent, rc, "KNamelistCount", "node", nodeName, false);
-        }
-        else {
-            if (count) {
-                int i = 0;
-                OUTMSG(("\n"));
-                for (i = 0; i < count && rc == 0; ++i) {
-                    rc = ReportChildNode
-                        (f, indent + 1, names, node, nodeName, i);
-                }
-                for (i = 0; i < indent; ++i)
-                {   OUTMSG((" ")); }
-            }
-        }
-    }
-    RELEASE(KNamelist, names);
-    return rc;
-}
-
-static rc_t ReportConfigNode(const ReportFuncs *f, int indent, const char* root,
-    const char* name, const KConfigNode* node, const char* node_name)
-{
-    rc_t rc = 0;
-
-    char local[PATH_MAX + 1] = "";
-    const char* nodeName = node_name ? node_name : name;
-    char* overflow = NULL;
-    bool cantallocate = false;
-
-    reportOpen1(indent, nodeName);
-    rc = sKConfigNode_Read(node, local, sizeof local, &overflow, &cantallocate);
-    if (rc == 0) {
-        char* buf = overflow ? overflow : local;
-        rc = reportData1(buf);
-        free(overflow);
-        overflow = NULL;
-        if (rc == 0)
-        {   rc = ReportConfigNodeChildren(f, indent, node, nodeName); }
-    }
-    else {
-        reportError3Str
-            (indent + 1, rc, "KConfigNodeRead", "node", root, "/", name, false);
-    }
-    reportClose1(nodeName);
-
-    return rc;
-}
-
-static rc_t ReportConfigNode_File(const ReportFuncs *f, int indent,
-    const char* root,
-    const char* name, const KConfigNode* node, const char* node_name)
-{
-    rc_t rc = 0;
-    char local[PATH_MAX + 1] = "";
-    const char* nodeName = node_name ? node_name : name;
-    char* overflow = NULL;
-    bool cantallocate = false;
-    rc = sKConfigNode_Read(node, local, sizeof local, &overflow, &cantallocate);
-    if (rc) {
-        reportError3Str
-            (indent, rc, "KConfigNodeRead", "node", root, "/", name, false);
-    }
-    else {
-        const char* buf = overflow ? overflow : local;
-        KPathType file_type = kptNotFound;
-        const char* type = NULL;
-        if (!cantallocate) {
-            KDirectory* dir = NULL;
-            rc = KDirectoryNativeDir(&dir);
-            if (rc == 0) {
-                file_type = KDirectoryPathType(dir, buf);
-                file_type &= ~kptAlias;
-                type = file_type == kptFile ? "exists" :
-                          file_type == kptNotFound ? "not found" : "unexpected";
-            }
-            RELEASE(KDirectory, dir);
-        }
-        else
-        {   type = "noo long"; }
-        if (rc == 0)
-        {   reportData(indent, nodeName, buf, 1, "file", 's', type); }
-    }
-    free(overflow);
-    overflow = NULL;
-    return rc;
-}
-
-static rc_t ReportChildNode(const ReportFuncs *f, int indent,
-    const KNamelist* names,
-    const KConfigNode* node, const char* root, uint32_t idx)
-{
-    rc_t rc = 0;
-
-    const char* name = NULL;
-    rc = KNamelistGet(names, idx, &name);
-    if (rc != 0) {
-        reportErrorStrInt
-            (indent + 1, rc, "KNamelistGet", "node", root, "idx", idx);
-    }
-    else {
-        const KConfigNode* child = NULL;
-        rc = KConfigNodeOpenNodeRead(node, &child, name);
-        if (rc != 0) {
-            reportOpen(indent, name, 0);
-            reportError3Str(indent + 1, rc, "KConfigNodeOpenNodeRead",
-                "node", root, "/", name, true);
-            reportClose(indent, name);
-        }
-        else
-        {   rc = ReportConfigNode(f, indent, root, name, child, NULL); }
-    }
-
-    return rc;
-}
-
-static
-rc_t ReportRefseq(const ReportFuncs *f, int indent, const KConfig* cfg)
-{
-    rc_t rc = 0;
-
-    const char root[] = "refseq";
-
-    const KConfigNode* node = NULL;
-    rc = KConfigOpenNodeRead(cfg, &node, root);
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            report(indent, root, 1, "state", 's', "not found");
-            rc = 0;
-        }
-        else
-        {   reportErrorStr(indent, rc, "KConfigOpenNodeRead", "node", root); }
-    }
-    else {
-        KNamelist* names = NULL;
-        rc = KConfigNodeListChild(node, &names);
-        if (rc != 0)
-        {   reportErrorStr(indent, rc, "KConfigNodeListChild", "node", root); }
-        else {
-            uint32_t count = 0;
-            rc = KNamelistCount(names, &count);
-            if (rc != 0)
-            {   reportErrorStr(indent, rc, "KNamelistCount", "node", root); }
-            else {
-                uint32_t i = 0;
-                reportOpen(indent, root, 0);
-                for (i = 0; i < count && rc == 0; ++i)
-                {   rc = ReportChildNode(f, indent + 1, names, node, root, i); }
-                reportClose(indent, root);
-            }
-        }
-        RELEASE(KNamelist, names);
-    }
-
-    RELEASE(KConfigNode, node);
-
-    return rc;
-}
-
-static
-rc_t ReportSra(const ReportFuncs *f, int indent, const KConfig* cfg)
-{
-    rc_t rc = 0;
-    const char root[] = "sra";
-    const KConfigNode* node = NULL;
-    assert(cfg);
-    rc = KConfigOpenNodeRead(cfg, &node, root);
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            report(indent, root, 1, "state", 's', "not found");
-            rc = 0;
-        }
-        else
-        {   reportErrorStr(indent, rc, "KConfigOpenNodeRead", "node", root); }
-    }
-    else {
-        KNamelist* names = NULL;
-        rc = KConfigNodeListChild(node, &names);
-        if (rc != 0)
-        {   reportErrorStr(indent, rc, "KConfigNodeListChild", "node", root); }
-        else {
-            uint32_t count = 0;
-            rc = KNamelistCount(names, &count);
-            if (rc != 0)
-            {   reportErrorStr(indent, rc, "KNamelistCount", "node", root); }
-            else {
-                uint32_t i = 0;
-                reportOpen(indent, root, 0);
-                for (i = 0; i < count && rc == 0; ++i)
-                {   rc = ReportChildNode(f, indent + 1, names, node, root, i); }
-                reportClose(indent, root);
-            }
-        }
-        RELEASE(KNamelist, names);
-    }
-    RELEASE(KConfigNode, node);
-    return rc;
-}
-
-static
-rc_t ReportKrypto(const ReportFuncs *f, int indent, const KConfig* cfg)
-{
-    rc_t rc = 0;
-
-    const char root[] = "krypto/pwfile";
-    const char name[] = "krypto";
-
-    const KConfigNode* node = NULL;
-    rc = KConfigOpenNodeRead(cfg, &node, root);
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            report(indent, name, 1, "state", 's', "pwfile: not found");
-            rc = 0;
-        }
-        else
-        {   reportErrorStr(indent, rc, "KConfigOpenNodeRead", "node", root); }
-    }
-    else {
-        rc = ReportConfigNode_File(f, indent, "krypto", "pwfile", node, "krypto");
-    }
-
-    RELEASE(KConfigNode, node);
-
-    return rc;
-}
-
-static
-rc_t ReportCrntRepository(const ReportFuncs *f, int indent, const KConfig *cfg)
-{
-    rc_t rc = 0;
-    const KRepositoryMgr *mgr = NULL;
-    const KRepository *protectd = NULL;
-    const char root[] = "CurrentProtectedRepository";
-    bool open = false;
-    rc = KConfigMakeRepositoryMgrRead(cfg, &mgr);
-    if (rc != 0) {
-        reportError(indent, rc, "KConfigMakeRepositoryMgrRead");
-    }
-    if (rc == 0) {
-        rc = KRepositoryMgrCurrentProtectedRepository(mgr, &protectd);
-        if (rc != 0) {
-            if (rc == SILENT_RC(
-                rcKFG, rcMgr, rcAccessing, rcNode, rcNotFound))
-            {
-                report(indent, root, 1, "found", 's', "false");
-            }
-            else {
-                reportOpen(indent, root, 0);
-                open = true;
-                reportErrorStr(indent + 1, rc,
-                    "KRepositoryMgrCurrentProtectedRepository", NULL, NULL);
-            }
-        }
-    }
-    if (rc == 0) {
-        char buffer[256];
-        size_t name_size = 0;
-        reportOpen(indent, root, 1, "found", 's', "true");
-        open = true;
-        rc = KRepositoryName(protectd, buffer, sizeof buffer, &name_size);
-        if (rc != 0) {
-            reportErrorStr(indent + 1, rc, "KRepositoryName",
-                "origin", "KRepositoryMgrCurrentProtectedRepository");
-        }
-        else {
-            reportData(indent + 1, "name", buffer, 0);
-        }
-    }
-    RELEASE(KRepository, protectd);
-    RELEASE(KRepositoryMgr, mgr);
-    if (open) {
-        reportClose(indent, root);
-    }
-    return rc;
-}
-
-rc_t ReportKfg ( const ReportFuncs *f, uint32_t indent )
-{
-    rc_t rc = 0;
-
-    KConfig* cfg = NULL;
-
-    const char tag[] = "Configuration";
-    reportOpen(indent, tag, 0);
-
-    rc = KConfigMake(&cfg, NULL);
-    if (rc != 0) {
-        reportError(indent + 1, rc, "KConfigMake");
-    }
-    else {
-        {
-            rc_t rc2 = ReportKfgFiles(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = ReportRefseq(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = ReportKrypto(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = ReportSra(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = KConfigPrint(cfg, indent);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = ReportCrntRepository(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-    }
-
-    reportClose(indent, tag);
-
-    RELEASE(KConfig, cfg);
-
-    return rc;
-}
diff --git a/libs/kfg/report.c b/libs/kfg/report.c
deleted file mode 100644
index 01a7353..0000000
--- a/libs/kfg/report.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kfg/extern.h>
-
-#include <kfg/config.h>
-#include <kfg/kfg-priv.h>
-
-#include <klib/namelist.h> /* KNamelistRelease */
-#include <klib/out.h> /* OUTMSG */
-#include <klib/klib-priv.h>
-#include <klib/rc.h>
-
-#include <kfs/directory.h>
-#include <kfs/dyload.h> /* KDyld */
-#include <kfs/file.h> /* KFileRead */
-#include <kfs/nullfile.h> /* KFileMakeNullUpdate */
-#include <kfs/md5.h> /* KMD5SumFmt */
-
-#include <stdarg.h> /* va_start */
-#include <stdio.h> /* sprintf */
-#include <stdlib.h> /* malloc */
-#include <string.h> /* memset */
-#include <limits.h> /* PATH_MAX */
-#include <assert.h>
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
-
-/*
- * An unrecoverable error happened.
- * We can help to solve it
- * by reporting information about known application execution environment.
- */
-
-#define report ( * f -> report )
-#define reportData ( * f -> reportData )
-#define reportData1 ( * f -> reportData1 )
-#define reportOpen ( * f -> reportOpen )
-#define reportOpen1 ( * f -> reportOpen1 )
-#define reportClose ( * f -> reportClose )
-#define reportClose1 ( * f -> reportClose1 )
-#define reportError ( * f -> reportError )
-#define reportErrorStr ( * f -> reportErrorStr )
-#define reportErrorStrImpl ( * f -> reportErrorStrImpl )
-#define reportErrorStrInt ( * f -> reportErrorStrInt )
-#define reportError3Str ( * f -> reportError3Str )
-
-static rc_t ReportKfgFiles(const ReportFuncs *f, int indent, const KConfig* cfg) {
-    rc_t rc = 0;
-
-    uint32_t count = 0;
-    KNamelist* names = NULL;
-
-    rc = KConfigListIncluded(cfg, &names);
-
-    if (rc != 0) {
-        reportOpen(indent, "Files", 0);
-        reportError(indent + 1, rc, "KConfigListIncluded");
-    }
-    else {
-        rc = KNamelistCount(names, &count);
-        if (rc != 0) {
-            reportOpen(indent, "Files", 0);
-            reportErrorStr(indent + 1,
-                rc, "KNamelistCount", "origin", "KConfigListIncluded");
-        }
-        else {
-            int i = 0;
-            reportOpen(indent, "Files", 1, "count", 'd', count);
-            for (i = 0; i < count && rc == 0; ++i) {
-                const char* name = NULL;
-                rc = KNamelistGet(names, i, &name);
-                if (rc != 0) {
-                    reportErrorStrInt(indent + 1, rc, "KNamelistGet",
-                        "origin", "KConfigListIncluded", "idx", i);
-                }
-                else
-                {   report(indent + 1, "File", 1, "name", 's', name); }
-            }
-        }
-    }
-    reportClose(indent, "Files");
-
-    RELEASE(KNamelist, names);
-
-    return rc;
-}
-
-static
-rc_t sKConfigNode_Read(const KConfigNode* node, char* buffer, size_t buf_sz,
-    char** overflow_buf, bool* cant_allocate)
-{
-    rc_t rc = 0;
-    size_t num_read = 0;
-    size_t remaining = 0;
-    assert(overflow_buf && cant_allocate);
-    *cant_allocate = false;
-    *overflow_buf = NULL;
-    rc = KConfigNodeRead(node, 0, buffer, buf_sz, &num_read, &remaining);
-    if (rc != 0)
-    {   return rc; }
-    if (num_read < buf_sz)
-    {   buffer[num_read] = '\0'; }
-    else {
-        size_t new_buf_sz = num_read + remaining + 1;
-        char* overflow = malloc(new_buf_sz);
-        if (overflow == NULL) {
-            int i = 0;
-            for (i = 2; i < 5 && buf_sz - i > 0; ++i)
-            {   buffer[buf_sz - i] = '.'; }
-            buffer[buf_sz - 1] = '\0';
-            *cant_allocate = true;
-        }
-        else {
-            buffer = *overflow_buf = overflow;
-            buf_sz = 
-            rc = KConfigNodeRead
-                (node, 0, buffer, new_buf_sz, &num_read, &remaining);
-            if (rc != 0)
-            {   return rc; }
-            assert(num_read < new_buf_sz && remaining == 0);
-            buffer[num_read] = '\0';
-        }
-    }
-    return rc;
-}
-
-static rc_t ReportChildNode(const ReportFuncs *f, int indent,
-    const KNamelist* names, const KConfigNode* node, const char* root, uint32_t idx);
-
-static
-rc_t ReportConfigNodeChildren(const ReportFuncs *f, int indent,
-    const KConfigNode* node, const char* nodeName)
-{
-    KNamelist* names = NULL;
-    rc_t rc = KConfigNodeListChild(node, &names);
-    if (rc != 0) {
-        reportErrorStrImpl(indent,
-            rc, "KConfigNodeListChild", "node", nodeName, false);
-    }
-    else {
-        uint32_t count = 0;
-        rc = KNamelistCount(names, &count);
-        if (rc != 0) {
-            reportErrorStrImpl
-                (indent, rc, "KNamelistCount", "node", nodeName, false);
-        }
-        else {
-            if (count) {
-                int i = 0;
-                OUTMSG(("\n"));
-                for (i = 0; i < count && rc == 0; ++i) {
-                    rc = ReportChildNode
-                        (f, indent + 1, names, node, nodeName, i);
-                }
-                for (i = 0; i < indent; ++i)
-                {   OUTMSG((" ")); }
-            }
-        }
-    }
-    RELEASE(KNamelist, names);
-    return rc;
-}
-
-static
-rc_t ReportConfigNode(const ReportFuncs *f, int indent, const char* root, const char* name,
-    const KConfigNode* node, const char* node_name)
-{
-    rc_t rc = 0;
-
-    char local[PATH_MAX + 1] = "";
-    const char* nodeName = node_name ? node_name : name;
-    char* overflow = NULL;
-    bool cantallocate = false;
-
-    reportOpen1(indent, nodeName);
-    rc = sKConfigNode_Read(node, local, sizeof local, &overflow, &cantallocate);
-    if (rc == 0) {
-        char* buf = overflow ? overflow : local;
-        rc = reportData1(buf);
-        free(overflow);
-        overflow = NULL;
-        if (rc == 0)
-        {   rc = ReportConfigNodeChildren(f, indent, node, nodeName); }
-    }
-    else {
-        reportError3Str
-            (indent + 1, rc, "KConfigNodeRead", "node", root, "/", name, false);
-    }
-    reportClose1(nodeName);
-
-    return rc;
-}
-
-static
-rc_t ReportConfigNode_File(const ReportFuncs *f, int indent, const char* root, const char* name,
-    const KConfigNode* node, const char* node_name)
-{
-    rc_t rc = 0;
-    char local[PATH_MAX + 1] = "";
-    const char* nodeName = node_name ? node_name : name;
-    char* overflow = NULL;
-    bool cantallocate = false;
-    rc = sKConfigNode_Read(node, local, sizeof local, &overflow, &cantallocate);
-    if (rc) {
-        reportError3Str
-            (indent, rc, "KConfigNodeRead", "node", root, "/", name, false);
-    }
-    else {
-        const char* buf = overflow ? overflow : local;
-        KPathType file_type = kptNotFound;
-        const char* type = NULL;
-        if (!cantallocate) {
-            KDirectory* dir = NULL;
-            rc = KDirectoryNativeDir(&dir);
-            if (rc == 0) {
-                file_type = KDirectoryPathType(dir, buf);
-                file_type &= ~kptAlias;
-                type = file_type == kptFile ? "exists" :
-                          file_type == kptNotFound ? "not found" : "unexpected";
-            }
-            RELEASE(KDirectory, dir);
-        }
-        else
-        {   type = "noo long"; }
-        if (rc == 0)
-        {   reportData(indent, nodeName, buf, 1, "file", 's', type); }
-    }
-    free(overflow);
-    overflow = NULL;
-    return rc;
-}
-
-static rc_t ReportChildNode(const ReportFuncs *f, int indent, const KNamelist* names,
-    const KConfigNode* node, const char* root, uint32_t idx)
-{
-    rc_t rc = 0;
-
-    const char* name = NULL;
-    rc = KNamelistGet(names, idx, &name);
-    if (rc != 0) {
-        reportErrorStrInt
-            (indent + 1, rc, "KNamelistGet", "node", root, "idx", idx);
-    }
-    else {
-        const KConfigNode* child = NULL;
-        rc = KConfigNodeOpenNodeRead(node, &child, name);
-        if (rc != 0) {
-            reportOpen(indent, name, 0);
-            reportError3Str(indent + 1, rc, "KConfigNodeOpenNodeRead",
-                "node", root, "/", name, true);
-            reportClose(indent, name);
-        }
-        else
-        {   rc = ReportConfigNode(f, indent, root, name, child, NULL); }
-    }
-
-    return rc;
-}
-
-static rc_t ReportRefseq(const ReportFuncs *f, int indent, const KConfig* cfg) {
-    rc_t rc = 0;
-
-    const char root[] = "refseq";
-
-    const KConfigNode* node = NULL;
-    rc = KConfigOpenNodeRead(cfg, &node, root);
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            report(indent, root, 1, "state", 's', "not found");
-            rc = 0;
-        }
-        else
-        {   reportErrorStr(indent, rc, "KConfigOpenNodeRead", "node", root); }
-    }
-    else {
-        KNamelist* names = NULL;
-        rc = KConfigNodeListChild(node, &names);
-        if (rc != 0)
-        {   reportErrorStr(indent, rc, "KConfigNodeListChild", "node", root); }
-        else {
-            uint32_t count = 0;
-            rc = KNamelistCount(names, &count);
-            if (rc != 0)
-            {   reportErrorStr(indent, rc, "KNamelistCount", "node", root); }
-            else {
-                uint32_t i = 0;
-                reportOpen(indent, root, 0);
-                for (i = 0; i < count && rc == 0; ++i)
-                {   rc = ReportChildNode(f, indent + 1, names, node, root, i); }
-                reportClose(indent, root);
-            }
-        }
-        RELEASE(KNamelist, names);
-    }
-
-    RELEASE(KConfigNode, node);
-
-    return rc;
-}
-
-static rc_t ReportSra(const ReportFuncs *f, int indent, const KConfig* cfg) {
-    rc_t rc = 0;
-    const char root[] = "sra";
-    const KConfigNode* node = NULL;
-    assert(cfg);
-    rc = KConfigOpenNodeRead(cfg, &node, root);
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            report(indent, root, 1, "state", 's', "not found");
-            rc = 0;
-        }
-        else
-        {   reportErrorStr(indent, rc, "KConfigOpenNodeRead", "node", root); }
-    }
-    else {
-        KNamelist* names = NULL;
-        rc = KConfigNodeListChild(node, &names);
-        if (rc != 0)
-        {   reportErrorStr(indent, rc, "KConfigNodeListChild", "node", root); }
-        else {
-            uint32_t count = 0;
-            rc = KNamelistCount(names, &count);
-            if (rc != 0)
-            {   reportErrorStr(indent, rc, "KNamelistCount", "node", root); }
-            else {
-                uint32_t i = 0;
-                reportOpen(indent, root, 0);
-                for (i = 0; i < count && rc == 0; ++i)
-                {   rc = ReportChildNode(f, indent + 1, names, node, root, i); }
-                reportClose(indent, root);
-            }
-        }
-        RELEASE(KNamelist, names);
-    }
-    RELEASE(KConfigNode, node);
-    return rc;
-}
-
-static rc_t ReportKrypto(const ReportFuncs *f, int indent, const KConfig* cfg) {
-    rc_t rc = 0;
-
-    const char root[] = "krypto/pwfile";
-    const char name[] = "krypto";
-
-    const KConfigNode* node = NULL;
-    rc = KConfigOpenNodeRead(cfg, &node, root);
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            report(indent, name, 1, "state", 's', "pwfile: not found");
-            rc = 0;
-        }
-        else
-        {   reportErrorStr(indent, rc, "KConfigOpenNodeRead", "node", root); }
-    }
-    else {
-        rc = ReportConfigNode_File(f, indent, "krypto", "pwfile", node, "krypto");
-    }
-
-    RELEASE(KConfigNode, node);
-
-    return rc;
-}
-
-rc_t ReportKfg ( const ReportFuncs *f, uint32_t indent )
-{
-    rc_t rc = 0;
-
-    KConfig* cfg = NULL;
-
-    const char tag[] = "Configuration";
-    reportOpen(indent, tag, 0);
-
-    rc = KConfigMake(&cfg, NULL);
-    if (rc != 0)
-    {   reportError(indent + 1, rc, "KConfigMake"); }
-    else {
-        {
-            rc_t rc2 = ReportKfgFiles(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = ReportRefseq(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = ReportKrypto(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        {
-            rc_t rc2 = ReportSra(f, indent + 1, cfg);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-    }
-
-    reportClose(indent, tag);
-
-    RELEASE(KConfig, cfg);
-
-    return rc;
-}
diff --git a/libs/kfg/repository.c b/libs/kfg/repository.c
deleted file mode 100644
index d1b2af2..0000000
--- a/libs/kfg/repository.c
+++ /dev/null
@@ -1,1087 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <kfg/extern.h>
-
-#include <kfg/repository.h>
-#include <kfg/config.h>
-#include <kfs/file.h>
-#include <kfs/directory.h>
-#include <kfs/impl.h>
-#include <klib/refcount.h>
-#include <klib/text.h>
-#include <klib/vector.h>
-#include <klib/namelist.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-/*--------------------------------------------------------------------------
- * KRepository
- *  presents structured access to a storage repository
- *  as modeled in KConfig.
- *
- *  all objects are obtained via KRepositoryMgr ( see below )
- */
-struct KRepository
-{
-    const KConfigNode *node;
-    String name;
-    KRefcount refcount;
-    KRepCategory category;
-    KRepSubCategory subcategory;
-};
-
-
-/* Whack
- */
-static
-rc_t KRepositoryWhack ( KRepository *self )
-{
-    KConfigNodeRelease ( self -> node );
-    free ( self );
-    return 0;
-}
-
-/* Sort
- */
-static
-int CC KRepositorySort ( const void **a, const void **b, void *ignore )
-{
-    const KRepository *left = * a;
-    const KRepository *right = * b;
-
-    if ( left -> category < right -> category )
-        return -1;
-    if ( left -> category > right -> category )
-        return 1;
-    if ( left -> subcategory < right -> subcategory )
-        return -1;
-    if ( left -> subcategory > right -> subcategory )
-        return 1;
-    return StringCompare ( & left -> name, & right -> name );
-}
-
-/* Make
- */
-static
-rc_t KRepositoryMake ( KRepository **rp, const KConfigNode *node,
-    const char *name, KRepCategory category, KRepSubCategory subcategory )
-{
-    rc_t rc;
-    KRepository *r;
-    String name_str;
-
-    /* measure string */
-    StringInitCString ( & name_str, name );
-
-    /* create object */
-    r = malloc ( sizeof * r + name_str . size + 1 );
-    if ( r == NULL )
-        return RC ( rcKFG, rcNode, rcConstructing, rcMemory, rcExhausted );
-
-    rc = KConfigNodeAddRef ( node );
-    if ( rc != 0 )
-    {
-        free ( r );
-        return rc;
-    }
-
-    r -> node = node;
-    r -> name = name_str;
-    r -> name . addr = ( char* ) ( r + 1 );
-    KRefcountInit ( & r -> refcount, 1, "KRepository", "make", name );
-    r -> category = category;
-    r -> subcategory = subcategory;
-    memcpy ( r + 1, name, name_str . size );
-    ( ( char* ) ( r + 1 ) ) [ name_str . size ] = 0;
-
-    * rp = r;
-
-    return 0;
-}
-
-
-/* AddRef
- * Release
- */
-LIB_EXPORT rc_t CC KRepositoryAddRef ( const KRepository *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KRepository" ) )
-        {
-        case krefLimit:
-            return RC ( rcKFG, rcNode, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KRepositoryRelease ( const KRepository *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "KRepository" ) )
-        {
-        case krefWhack:
-            return KRepositoryWhack ( ( KRepository* ) self );
-        case krefLimit:
-            return RC ( rcKFG, rcNode, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-/* WhackEntry
- *  for cleaning up these vectors
- */
-static
-void CC KRepositoryWhackEntry ( void *item, void *ignore )
-{
-    KRepository *self = item;
-    KRepositoryRelease ( self );
-}
-
-
-/* Category
- * SubCategory
- *  tells what the repository category or sub-category are
- *  or returns "bad" if the repository object is not usable.
- */
-LIB_EXPORT KRepCategory CC KRepositoryCategory ( const KRepository *self )
-{
-    if ( self != NULL )
-        return self -> category;
-    return krepBadCategory;
-}
-
-LIB_EXPORT KRepSubCategory CC KRepositorySubCategory ( const KRepository *self )
-{
-    if ( self != NULL )
-        return self -> subcategory;
-    return krepBadSubCategory;
-}
-
-
-/* Name
- *  get the repository name
- *  attempts to copy NUL-terminated name into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - name output parameter
- *
- *  "name_size" [ OUT, NULL OKAY ] - returns the name size in
- *  bytes, excluding any NUL termination.
- */
-LIB_EXPORT rc_t CC KRepositoryName ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *name_size )
-{
-    if ( self == NULL )
-        return RC ( rcKFG, rcNode, rcAccessing, rcSelf, rcNull );
-
-    if ( name_size != NULL )
-        * name_size = self -> name . size;
-
-    if ( bsize < self -> name . size )
-        return RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcInsufficient );
-
-    if ( buffer == NULL )
-        return RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcNull );
-
-    memcpy ( buffer, self -> name . addr, self -> name . size );
-
-    if ( bsize > self -> name . size )
-        buffer [ self -> name . size ] = 0;
-
-    return 0;
-}
-
-
-/* DisplayName
- *  get the repository display name,
- *  if different from its actual name
- *
- *  attempts to copy NUL-terminated name into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - name output parameter
- *
- *  "name_size" [ OUT, NULL OKAY ] - returns the name size in
- *  bytes, excluding any NUL termination.
- */
-LIB_EXPORT rc_t CC KRepositoryDisplayName ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *name_size )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcKFG, rcNode, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        const KConfigNode *node;
-
-        if ( name_size != NULL )
-            * name_size = 0;
-
-        rc = KConfigNodeOpenNodeRead ( self -> node, & node, "display-name" );
-        if ( rc != 0 )
-            rc = KRepositoryName ( self, buffer, bsize, name_size );
-        else
-        {
-            size_t num_read, remaining;
-            rc = KConfigNodeRead ( node, 0, buffer, bsize, & num_read, & remaining );
-            KConfigNodeRelease ( node );
-
-            if ( rc == 0 )
-            {
-                if ( name_size != NULL )
-                    * name_size = num_read + remaining;
-
-                if ( remaining != 0 )
-                    rc = RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcInsufficient );
-                else if ( num_read < bsize )
-                    buffer [ num_read ] = 0;
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* Root
- *  read the root path as a POSIX path or URL
- *
- *  attempts to copy NUL-terminated path into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - path output parameter
- *
- *  "root_size" [ OUT, NULL OKAY ] - returns the path size in
- *  bytes, excluding any NUL termination.
- */
-LIB_EXPORT rc_t CC KRepositoryRoot ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *root_size )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcKFG, rcNode, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        const KConfigNode *node;
-
-        if ( root_size != NULL )
-            * root_size = 0;
-
-        rc = KConfigNodeOpenNodeRead ( self -> node, & node, "root" );
-        if ( rc == 0 )
-        {
-            size_t num_read, remaining;
-            rc = KConfigNodeRead ( node, 0, buffer, bsize, & num_read, & remaining );
-            KConfigNodeRelease ( node );
-
-            if ( rc == 0 )
-            {
-                if ( root_size != NULL )
-                    * root_size = num_read + remaining;
-
-                if ( remaining != 0 )
-                    rc = RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcInsufficient );
-                else if ( num_read < bsize )
-                    buffer [ num_read ] = 0;
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* Disabled
- *  discover whether the repository is enabled
- */
-LIB_EXPORT bool CC KRepositoryDisabled ( const KRepository *self )
-{
-    if ( self != NULL )
-    {
-        const KConfigNode *node;
-        rc_t rc = KConfigNodeOpenNodeRead ( self -> node, & node, "disabled" );
-        if ( rc == 0 )
-        {
-            bool disabled = false;
-            rc = KConfigNodeReadBool ( node, & disabled );
-            KConfigNodeRelease ( node );
-            if ( rc == 0 )
-                return disabled;
-        }
-    }
-
-    return false;
-}
-
-/* CacheEnabled
- *  discover whether the repository supports caching
- */
-LIB_EXPORT bool CC KRepositoryCacheEnabled ( const KRepository *self )
-{
-    if ( self != NULL )
-    {
-        const KConfigNode *node;
-        rc_t rc = KConfigNodeOpenNodeRead ( self -> node, & node, "cache-enabled" );
-        if ( rc == 0 )
-        {
-            bool enabled = false;
-            rc = KConfigNodeReadBool ( node, & enabled );
-            KConfigNodeRelease ( node );
-            if ( rc == 0 )
-                return enabled;
-        }
-    }
-
-    return false;
-}
-
-
-/* DownloadTicket
- *  return any associated download ticket
- *
- *  attempts to copy NUL-terminated ticket into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - ticket output parameter
- *
- *  "ticket_size" [ OUT, NULL OKAY ] - returns the ticket size in
- *  bytes, excluding any NUL termination.
- */
-LIB_EXPORT rc_t CC KRepositoryDownloadTicket ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *ticket_size )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcKFG, rcNode, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        const KConfigNode *node;
-
-        if ( ticket_size != NULL )
-            * ticket_size = 0;
-
-        rc = KConfigNodeOpenNodeRead ( self -> node, & node, "download-ticket" );
-        if ( rc == 0 )
-        {
-            size_t num_read, remaining;
-            rc = KConfigNodeRead ( node, 0, buffer, bsize, & num_read, & remaining );
-            KConfigNodeRelease ( node );
-
-            if ( rc == 0 )
-            {
-                if ( ticket_size != NULL )
-                    * ticket_size = num_read + remaining;
-
-                if ( remaining != 0 )
-                    rc = RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcInsufficient );
-                else if ( num_read < bsize )
-                    buffer [ num_read ] = 0;
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* EncryptionKey
- *  return any associated encryption key
- *
- *  attempts to copy NUL-terminated key into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - encryption key output parameter
- *
- *  "key_size" [ OUT, NULL OKAY ] - returns the key size in
- *  bytes, excluding any NUL termination.
- */
-LIB_EXPORT rc_t CC KRepositoryEncryptionKey ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *key_size )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcKFG, rcNode, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        const KConfigNode *node;
-
-        if ( key_size != NULL )
-            * key_size = 0;
-
-        rc = KConfigNodeOpenNodeRead ( self -> node, & node, "encryption-key" );
-        if ( rc == 0 )
-        {
-            size_t num_read, remaining;
-            rc = KConfigNodeRead ( node, 0, buffer, bsize, & num_read, & remaining );
-            KConfigNodeRelease ( node );
-
-            if ( rc == 0 )
-            {
-                if ( key_size != NULL )
-                    * key_size = num_read + remaining;
-
-                if ( remaining != 0 )
-                    rc = RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcInsufficient );
-                else if ( num_read < bsize )
-                    memset ( & buffer [ num_read ], 0, bsize - num_read );
-            }
-        }
-        else if ( GetRCState ( rc ) == rcNotFound )
-        {
-            char path [ 4096 ];
-            rc_t rc2 = KRepositoryEncryptionKeyFile ( self, path, sizeof path, NULL );
-            if ( rc2 == 0 )
-            {
-                KDirectory *wd;
-                rc2 = KDirectoryNativeDir ( & wd );
-                if ( rc2 == 0 )
-                {
-                    const KFile *keyFile;
-                    rc2 = KDirectoryOpenFileRead ( wd, & keyFile, path );
-                    KDirectoryRelease ( wd );
-                    if ( rc2 == 0 )
-                    {
-                        size_t num_read;
-                        rc = KFileReadAll ( keyFile, 0, buffer, bsize, & num_read );
-                        if ( rc == 0 )
-                        {
-                            if ( num_read == bsize )
-                            {
-                                uint64_t eof;
-                                rc = KFileSize ( keyFile, & eof );
-                                if ( rc == 0 )
-                                    num_read = ( size_t ) eof;
-                                else
-                                    num_read = 0;
-
-                                rc = RC ( rcKFG, rcFile, rcReading, rcBuffer, rcInsufficient );
-                                memset ( buffer, 0, bsize );
-                            }
-                            else if ( num_read == 0 )
-                            {
-                                rc = RC ( rcKFG, rcFile, rcReading, rcFile, rcEmpty );
-                                memset ( buffer, 0, bsize );
-                            }
-                            else
-                            {
-                                char *eoln = string_chr ( buffer, num_read, '\n' );
-                                if ( eoln != NULL )
-                                {
-                                    if ( eoln == buffer )
-                                        num_read = 0;
-                                    else if ( eoln [ -1 ] == '\r' )
-                                        num_read = eoln - buffer - 1;
-                                    else
-                                        num_read = eoln - buffer;
-                                }
-
-                                if ( key_size != NULL )
-                                    * key_size = num_read;
-
-                                memset ( & buffer [ num_read ], 0, bsize - num_read );
-                            }
-                        }
-
-                        KFileRelease ( keyFile );
-                    }
-                }
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* EncryptionKeyFile
- *  return path to any associated encryption key file
- *
- *  attempts to copy NUL-terminated path into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - key file path output parameter
- *
- *  "path_size" [ OUT, NULL OKAY ] - returns the path size in
- *  bytes, excluding any NUL termination.
- */
-LIB_EXPORT rc_t CC KRepositoryEncryptionKeyFile ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *path_size )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcKFG, rcNode, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        const KConfigNode *node;
-
-        if ( path_size != NULL )
-            * path_size = 0;
-
-        rc = KConfigNodeOpenNodeRead ( self -> node, & node, "encryption-key-path" );
-        if ( rc == 0 )
-        {
-            size_t num_read, remaining;
-            rc = KConfigNodeRead ( node, 0, buffer, bsize, & num_read, & remaining );
-            KConfigNodeRelease ( node );
-
-            if ( rc == 0 )
-            {
-                if ( path_size != NULL )
-                    * path_size = num_read + remaining;
-
-                if ( remaining != 0 )
-                    rc = RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcInsufficient );
-                else if ( num_read < bsize )
-                    buffer [ num_read ] = 0;
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* Description
- *  return any associated descriptive text
- *
- *  attempts to copy NUL-terminated description into provided buffer
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - description text output parameter
- *
- *  "desc_size" [ OUT, NULL OKAY ] - returns the text size in
- *  bytes, excluding any NUL termination.
- */
-LIB_EXPORT rc_t CC KRepositoryDescription ( const KRepository *self,
-    char *buffer, size_t bsize, size_t *desc_size )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcKFG, rcNode, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        const KConfigNode *node;
-
-        if ( desc_size != NULL )
-            * desc_size = 0;
-
-        rc = KConfigNodeOpenNodeRead ( self -> node, & node, "description" );
-        if ( rc == 0 )
-        {
-            size_t num_read, remaining;
-            rc = KConfigNodeRead ( node, 0, buffer, bsize, & num_read, & remaining );
-            KConfigNodeRelease ( node );
-
-            if ( rc == 0 )
-            {
-                if ( desc_size != NULL )
-                    * desc_size = num_read + remaining;
-
-                if ( remaining != 0 )
-                    rc = RC ( rcKFG, rcNode, rcAccessing, rcBuffer, rcInsufficient );
-                else if ( num_read < bsize )
-                    buffer [ num_read ] = 0;
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/*--------------------------------------------------------------------------
- * KRepositoryVector
- *  uses Vector API
- *  holds zero or more KRepository objects
- */
-
-
-/* Whack
- *  destroy your vector
- */
-LIB_EXPORT rc_t CC KRepositoryVectorWhack ( KRepositoryVector *self )
-{
-    if ( self == NULL )
-        return RC ( rcKFG, rcVector, rcDestroying, rcSelf, rcNull );
-
-    VectorWhack ( self, KRepositoryWhackEntry, NULL );
-    return 0;
-}
-
-
-/*--------------------------------------------------------------------------
- * KRepositoryMgr
- *  manages structured access to repositories
- */
-struct KRepositoryMgr
-{
-    const KConfig *ro_cfg;
-    KConfig *rw_cfg;
-    KRefcount refcount;
-};
-
-
-/* Whack
- */
-static
-rc_t KRepositoryMgrWhack ( KRepositoryMgr *self )
-{
-    if ( self -> ro_cfg )
-        KConfigRelease ( self -> ro_cfg );
-    if ( self -> rw_cfg )
-        KConfigRelease ( self -> rw_cfg );
-    free ( self );
-    return 0;
-}
-
-
-/* Make
- *  create a repository manager
- *  uses values from "self"
- */
-LIB_EXPORT rc_t CC KConfigMakeRepositoryMgrRead ( const KConfig *self, const KRepositoryMgr **mgrp )
-{
-    rc_t rc;
-
-    if ( mgrp == NULL )
-        rc = RC ( rcKFG, rcMgr, rcConstructing, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcMgr, rcConstructing, rcSelf, rcNull );
-        else
-        {
-            KRepositoryMgr *mgr = calloc ( 1, sizeof * mgr );
-            if ( mgr == NULL )
-                rc = RC ( rcKFG, rcMgr, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                rc = KConfigAddRef ( self );
-                if ( rc == 0 )
-                {
-                    mgr -> ro_cfg = self;
-                    KRefcountInit ( & mgr -> refcount, 1, "KRepositoryMgr", "make-read", "mgr" );
-                    * mgrp = mgr;
-                    return 0;
-                }
-
-                free ( mgr );
-            }
-        }
-
-        * mgrp = NULL;
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KConfigMakeRepositoryMgrUpdate ( KConfig *self, KRepositoryMgr **mgrp )
-{
-    rc_t rc;
-
-    if ( mgrp == NULL )
-        rc = RC ( rcKFG, rcMgr, rcConstructing, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcMgr, rcConstructing, rcSelf, rcNull );
-        else
-        {
-            KRepositoryMgr *mgr = calloc ( 1, sizeof * mgr );
-            if ( mgr == NULL )
-                rc = RC ( rcKFG, rcMgr, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                rc = KConfigAddRef ( self );
-                if ( rc == 0 )
-                {
-                    mgr -> rw_cfg = self;
-                    KRefcountInit ( & mgr -> refcount, 1, "KRepositoryMgr", "make-update", "mgr" );
-                    * mgrp = mgr;
-                    return 0;
-                }
-
-                free ( mgr );
-            }
-        }
-
-        * mgrp = NULL;
-    }
-
-    return rc;
-}
-
-
-/* AddRef
- * Release
- */
-LIB_EXPORT rc_t CC KRepositoryMgrAddRef ( const KRepositoryMgr *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KRepositoryMgr" ) )
-        {
-        case krefLimit:
-            return RC ( rcKFG, rcMgr, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KRepositoryMgrRelease ( const KRepositoryMgr *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "KRepositoryMgr" ) )
-        {
-        case krefWhack:
-            return KRepositoryMgrWhack ( ( KRepositoryMgr* ) self );
-        case krefLimit:
-            return RC ( rcKFG, rcMgr, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-static
-const KConfig *KRepositoryMgrGetROKConfig ( const KRepositoryMgr *self )
-{
-    return self -> ro_cfg ? self -> ro_cfg : self -> rw_cfg;
-}
-
-static
-rc_t KRepositoryMgrSubCategoryRepositories ( const KConfigNode *sub,
-    KRepCategory category, KRepSubCategory subcategory, KRepositoryVector *repositories )
-{
-    KNamelist *repo_names;
-    rc_t rc = KConfigNodeListChildren ( sub, & repo_names );
-    if ( rc == 0 )
-    {
-        uint32_t i, count;
-        rc = KNamelistCount ( repo_names, & count );
-        for ( i = 0; i < count && rc == 0; ++ i )
-        {
-            const char *repo_name;
-            rc = KNamelistGet ( repo_names, i, & repo_name );
-            if ( rc == 0 )
-            {
-                const KConfigNode *node;
-                rc = KConfigNodeOpenNodeRead ( sub, & node, repo_name );
-                if ( rc == 0 )
-                {
-                    KRepository *repo;
-                    rc = KRepositoryMake ( & repo, node, repo_name, category, subcategory );
-                    if ( rc == 0 )
-                    {
-                        rc = VectorAppend ( repositories, NULL, repo );
-                        if ( rc != 0 )
-                            KRepositoryWhack ( repo );
-                    }
-
-                    KConfigNodeRelease ( node );
-                }
-            }
-        }
-
-        KNamelistRelease ( repo_names );
-    }
-
-    return rc;
-}
-
-static
-rc_t KRepositoryMgrCategoryRepositories ( const KConfigNode *cat,
-    KRepCategory category, KRepositoryVector *repositories )
-{
-    KNamelist *sub_names;
-    rc_t rc = KConfigNodeListChildren ( cat, & sub_names );
-    if ( rc == 0 )
-    {
-        uint32_t i, count;
-        rc = KNamelistCount ( sub_names, & count );
-        for ( i = 0; i < count && rc == 0; ++ i )
-        {
-            const char *sub_name;
-            rc = KNamelistGet ( sub_names, i, & sub_name );
-            if ( rc == 0 )
-            {
-                KRepSubCategory subcategory = krepBadSubCategory;
-                if ( strcmp ( "main", sub_name ) == 0 )
-                    subcategory = krepMainSubCategory;
-                else if ( strcmp ( "aux", sub_name ) == 0 )
-                    subcategory = krepAuxSubCategory;
-                else if ( strcmp ( "protected", sub_name ) == 0 )
-                    subcategory = krepProtectedSubCategory;
-
-                if ( subcategory != krepBadSubCategory )
-                {
-                    const KConfigNode *sub;
-                    rc = KConfigNodeOpenNodeRead ( cat, & sub, sub_name );
-                    if ( rc == 0 )
-                    {
-                        rc = KRepositoryMgrSubCategoryRepositories ( sub, category, subcategory, repositories );
-                        KConfigNodeRelease ( sub );
-                    }
-                }
-            }
-        }
-
-        KNamelistRelease ( sub_names );
-    }
-
-    return rc;
-}
-
-
-/* UserRepositories
- *  retrieve all user repositories in a Vector
- */
-LIB_EXPORT rc_t CC KRepositoryMgrUserRepositories ( const KRepositoryMgr *self,
-    KRepositoryVector *user_repositories )
-{
-    rc_t rc;
-
-    if ( user_repositories == NULL )
-        rc = RC ( rcKFG, rcMgr, rcAccessing, rcParam, rcNull );
-    else
-    {
-        VectorInit ( user_repositories, 0, 8 );
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcMgr, rcAccessing, rcSelf, rcNull );
-        else
-        {
-            const KConfig *kfg = KRepositoryMgrGetROKConfig ( self );
-
-            const KConfigNode *user;
-            rc = KConfigOpenNodeRead ( kfg, & user, "/repository/user" );
-            if ( rc == 0 )
-            {
-                rc = KRepositoryMgrCategoryRepositories ( user, krepUserCategory, user_repositories );
-                KConfigNodeRelease ( user );
-                if ( rc == 0 )
-                    VectorReorder ( user_repositories, KRepositorySort, NULL );
-            }
-
-            if ( rc != 0 )
-                KRepositoryVectorWhack ( user_repositories );
-        }
-    }
-
-    return rc;
-}
-
-
-/* SiteRepositories
- *  retrieve all site repositories in a Vector
- */
-LIB_EXPORT rc_t CC KRepositoryMgrSiteRepositories ( const KRepositoryMgr *self,
-    KRepositoryVector *site_repositories )
-{
-    rc_t rc;
-
-    if ( site_repositories == NULL )
-        rc = RC ( rcKFG, rcMgr, rcAccessing, rcParam, rcNull );
-    else
-    {
-        VectorInit ( site_repositories, 0, 8 );
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcMgr, rcAccessing, rcSelf, rcNull );
-        else
-        {
-            const KConfig *kfg = KRepositoryMgrGetROKConfig ( self );
-
-            const KConfigNode *site;
-            rc = KConfigOpenNodeRead ( kfg, & site, "/repository/site" );
-            if ( rc == 0 )
-            {
-                rc = KRepositoryMgrCategoryRepositories ( site, krepSiteCategory, site_repositories );
-                KConfigNodeRelease ( site );
-                if ( rc == 0 )
-                    VectorReorder ( site_repositories, KRepositorySort, NULL );
-            }
-
-            if ( rc != 0 )
-                KRepositoryVectorWhack ( site_repositories );
-        }
-    }
-
-    return rc;
-}
-
-
-/* RemoteRepositories
- *  retrieve all remote repositories in a Vector
- */
-LIB_EXPORT rc_t CC KRepositoryMgrRemoteRepositories ( const KRepositoryMgr *self,
-    KRepositoryVector *remote_repositories )
-{
-    rc_t rc;
-
-    if ( remote_repositories == NULL )
-        rc = RC ( rcKFG, rcMgr, rcAccessing, rcParam, rcNull );
-    else
-    {
-        VectorInit ( remote_repositories, 0, 8 );
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcMgr, rcAccessing, rcSelf, rcNull );
-        else
-        {
-            const KConfig *kfg = KRepositoryMgrGetROKConfig ( self );
-
-            const KConfigNode *remote;
-            rc = KConfigOpenNodeRead ( kfg, & remote, "/repository/remote" );
-            if ( rc == 0 )
-            {
-                rc = KRepositoryMgrCategoryRepositories ( remote, krepRemoteCategory, remote_repositories );
-                KConfigNodeRelease ( remote );
-                if ( rc == 0 )
-                    VectorReorder ( remote_repositories, KRepositorySort, NULL );
-            }
-
-            if ( rc != 0 )
-                KRepositoryVectorWhack ( remote_repositories );
-        }
-    }
-
-    return rc;
-}
-
-
-/* CurrentProtectedRepository
- *  returns the currently active user protected repository
- */
-LIB_EXPORT rc_t CC KRepositoryMgrCurrentProtectedRepository ( const KRepositoryMgr *self, const KRepository **protected )
-{
-    rc_t rc;
-
-    if ( protected == NULL )
-        rc = RC ( rcKFG, rcMgr, rcAccessing, rcParam, rcNull );
-    else
-    {
-        * protected = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcKFG, rcMgr, rcAccessing, rcSelf, rcNull );
-        else
-        {
-            KRepositoryVector v;
-            rc = KRepositoryMgrUserRepositories ( self, & v );
-            if ( rc == 0 )
-            {
-                KDirectory *wd;
-                rc = KDirectoryNativeDir ( & wd );
-                if ( rc == 0 )
-                {
-                    /* we need services of system directory */
-                    struct KSysDir *sysDir = KDirectoryGetSysDir ( wd );
-
-                    /* allocate buffer space for 3 paths */
-                    const size_t path_size = 4096;
-                    char *wd_path = malloc ( path_size * 3 );
-                    if ( wd_path == NULL )
-                        rc = RC ( rcKFG, rcMgr, rcAccessing, rcMemory, rcExhausted );
-                    else
-                    {
-                        /* the working directory already has a canonical path */
-                        rc = KDirectoryResolvePath ( wd, true, wd_path, path_size, "." );
-                        if ( rc == 0 )
-                        {
-                            size_t wd_size = string_size ( wd_path );
-
-                            /* look for all protected user repositories */
-                            uint32_t i, count = VectorLength ( & v );
-                            for ( i = 0; i < count; ++ i )
-                            {
-                                const KRepository *r = ( const void* ) VectorGet ( & v, i );
-                                if ( r -> subcategory == krepProtectedSubCategory )
-                                {
-                                    size_t resolved_size;
-                                    char *resolved = wd_path + path_size;
-
-                                    /* get stated root path to repository */
-                                    char *root = resolved + path_size;
-                                    rc = KRepositoryRoot ( r, root, path_size, NULL );
-                                    if ( rc != 0 )
-                                        break;
-
-                                    /* get its canonical path */
-                                    rc = KSysDirRealPath ( sysDir, resolved, path_size, root );
-                                    if ( rc != 0 )
-                                        break;
-
-                                    /* we know the current directory's canonical path size
-                                       and we know the repository's canonical path size.
-                                       to be "within" the repository, the current directory's
-                                       size must be >= repository path size, and must match
-                                       exactly the repository path itself over those bytes. */
-                                    resolved_size = string_size ( resolved );
-                                    if ( resolved_size <= wd_size && memcmp ( wd_path, resolved, resolved_size ) == 0 )
-                                    {
-                                        /* still have a little more to check */
-                                        if ( resolved_size == wd_size ||
-                                             wd_path [ resolved_size ] == '/' )
-                                        {
-                                            /* we are in the repository */
-                                            rc = KRepositoryAddRef ( r );
-                                            if ( rc == 0 )
-                                                * protected = r;
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-
-                        free ( wd_path );
-                    }
-
-                    KDirectoryRelease ( wd );
-                }
-
-                KRepositoryVectorWhack ( & v );
-            }
-
-            if ( rc == 0 && * protected == NULL )
-                rc = RC ( rcKFG, rcMgr, rcAccessing, rcNode, rcNotFound );
-        }
-    }
-
-    return rc;
-}
diff --git a/libs/kfs/Makefile b/libs/kfs/Makefile
index 87421b3..3d83284 100644
--- a/libs/kfs/Makefile
+++ b/libs/kfs/Makefile
@@ -81,14 +81,16 @@ tag: \
 #
 $(LIBDIR)/libkfs: $(addprefix $(LIBDIR)/libkfs.,$(LIBEXT))
 
-KFS_CMN = \
+KFS_SRC = \
+	path \
+	syspath \
 	directory \
 	arrayfile \
 	file \
 	sysdir \
 	sysfile \
+	mmap \
 	sysmmap \
-	syslockfile \
 	sysdll \
 	gzip \
 	bzip \
@@ -103,32 +105,19 @@ KFS_CMN = \
 	tar \
 	teefile \
 	buffile \
-	buffile-read \
 	buffile-write \
 	subfile \
 	nullfile \
 	countfile \
 	dir_test \
 	pagefile \
-	pmem \
-	readheadfile \
-	ramfile \
-	quickmount \
-	report \
-	lockfile \
-	syslockfile \
-	cacheteefile
-
-KFS_SRC = \
-	mmap \
-	$(KFS_CMN)
+	pmem
 
 
 KFS_OBJ = \
 	$(addsuffix .$(LOBX),$(KFS_SRC))
 
 KFS_LIB = \
-	-dkproc \
 	-dklib \
 	-ddl \
 	-dz \
@@ -167,8 +156,7 @@ KFF_OBJ = \
 	$(addsuffix .$(LOBX),$(KFF_SRC))
 
 KFF_LIB = \
-	-dkfg \
-	-dklib
+	-dklib 
 
 ifneq (win,$(OS))
 	KFF_LIB += -lmagic
diff --git a/libs/kfs/arc.c b/libs/kfs/arc.c
index 1779673..1d7c993 100644
--- a/libs/kfs/arc.c
+++ b/libs/kfs/arc.c
@@ -28,7 +28,6 @@
 #include "toc-priv.h"
 
 #include <kfs/arc.h>
-
 #include <klib/debug.h>
 #include <klib/log.h>
 #include <klib/status.h>
@@ -39,9 +38,6 @@
 #include <klib/pbstree.h>
 #include <klib/text.h>
 #include <klib/sort.h>
-#include <klib/printf.h>
-#include <klib/klib-priv.h> /* ReportRecordZombieFile */
-
 #include <kfs/directory.h>
 #include <kfs/file.h>
 #include <kfs/toc.h>
@@ -1125,47 +1121,43 @@ uint32_t KArcDirFullPathType (const KArcDir *self, const char * path)
 
     for (loopcount = 0; loopcount < KARC_LINK_RESOLVE_LOOPMAX; ++loopcount)
     {
-        rc = KArcDirResolvePathNode (self,
-            rcConstructing, local_path, false, &node, &type); 
-        if (rc != 0)
-        {
-            /* TODO: filter rc into kptBadPath or kptNotFound... */
-            return (tt | kptNotFound);
-        }
-        switch (type)
-        {
-        default:
-            return kptBadPath;
+	rc = KArcDirResolvePathNode (self, rcConstructing, local_path, false, &node, &type); 
+	if (rc != 0)
+	{
+	    /* TODO: filter rc into kptBadPath or kptNotFound... */
+	    return (tt | kptNotFound);
+	}
+	switch (type)
+	{
+	default:
+	    return kptBadPath;
 
-        case ktocentrytype_unknown:
-            return kptBadPath;
+	case ktocentrytype_unknown:
+	    return kptBadPath;
 
-        case ktocentrytype_hardlink:
-            return kptDir;
+	case ktocentrytype_hardlink:
+	    return kptDir;
 
-        case ktocentrytype_dir:
-            return tt | kptDir;
+	case ktocentrytype_dir:
+	    return tt | kptDir;
 
-        case ktocentrytype_file:
-        case ktocentrytype_emptyfile:
-            return tt | kptFile;
+	case ktocentrytype_file:
+	case ktocentrytype_emptyfile:
+	    return tt | kptFile;
 
-        case ktocentrytype_chunked:
-            return tt | kptFile;
+	case ktocentrytype_chunked:
+	    return tt | kptFile;
 
-        case ktocentrytype_softlink:
-            tt = kptAlias;
-            if (KTocEntryGetSoftTarget(node,&local_path) != 0)
-                return kptAlias|kptNotFound;
-            break;
+	case ktocentrytype_softlink:
+	    tt = kptAlias;
+	    if (KTocEntryGetSoftTarget(node,&local_path) != 0)
+		return kptAlias|kptNotFound;
+	    break;
 
         case ktocentrytype_zombiefile:
-            PLOGMSG (klogWarn, (klogWarn,
-                "zombie file detected: '$(P)'", "P=%s", path));
-            ReportRecordZombieFile();
             return tt | kptZombieFile;
 
-        }
+	}
     }
     return kptBadPath;
 }
@@ -2180,12 +2172,6 @@ rc_t KArcFileMake (KArcFile ** self,
      * Proceed with non-NULL parameters
      */
     rc = KFileSize (archive, &size);
-    if (GetRCState(rc) == rcUnsupported)
-    {
-        size = ~(uint64_t)0;
-        rc = 0;
-    }
-
     if (rc == 0)
     {
         /* we need to check chunked files here as well */
@@ -2211,7 +2197,6 @@ rc_t KArcFileMake (KArcFile ** self,
             {
                 rc = KFileInit (&pF->dad,				/* initialize base class */
                                 (const KFile_vt*)&vtKArcFile,	/* VTable for KArcFile */
-                                "KArcFile", "no-name",
                                 true,				/* read allowed */
                                 false);				/* write disallowed */
                 if (rc == 0)
@@ -3447,18 +3432,12 @@ LIB_EXPORT rc_t CC KDirectoryToKArcDir (const KDirectory * self, const KArcDir *
 
 static
 rc_t KDirectoryOpenArcDirRead_intern( const KDirectory * self,
-                                      const KDirectory ** pdir,
-                                      bool chroot,
-                                      bool silent,
-                                      const char * path,
-                                      KArcFSType baseType,
-                                      void * _archive,
-                                      rc_t ( CC * parse )( KToc *, const void *,
-                                                           bool( CC* )( const KDirectory*,
-                                                                        const char *, void*),
-                                                           void * ),
-                                      bool( CC* filter )( const KDirectory*, const char *, void * ),
-                                      void * filterparam )
+    const KDirectory ** pdir, bool chroot, bool silent,
+    const char * path, KArcFSType baseType,
+    rc_t ( CC * parse )( KToc *, const void *,
+        bool( CC* )( const KDirectory*, const char *, void*), void * ),
+    bool( CC* filter )( const KDirectory*, const char *, void * ),
+    void * filterparam )
 {
     union
     {
@@ -3475,7 +3454,7 @@ rc_t KDirectoryOpenArcDirRead_intern( const KDirectory * self,
     char     cpath [ 4096 ];
     uint32_t type;
 
-    archive.v = _archive;
+    archive.v = NULL;
     /* -----
      * sanity check parameters  The first bunch is from the base class KDirectory.
      */
@@ -3520,110 +3499,77 @@ rc_t KDirectoryOpenArcDirRead_intern( const KDirectory * self,
         return RC ( rcFS, rcDirectory, rcAccessing, rcPath, rcInvalid );
     }
 
-    if (_archive == NULL)
-    {
-        /* -----
-         * we got a local String type mixed in along with ASCIZ cstrings
-         */
-        rc = KDirectoryResolvePath ( self, true, cpath, sizeof (cpath), path );
-        if ( rc == 0 )
-        {
-            size_t ln;
-            ln = strlen (cpath);
-            if ((cpath[ln-1] == '.')&&(cpath[ln-2] == '/'))
-                cpath[ln-2] = '\0';
-        }
-        else
-            return rc;
-    }
-    else
+    /* -----
+     * we got a local String type mixed in along with ASCIZ cstrings
+     */
+    rc = KDirectoryResolvePath ( self, true, cpath, sizeof (cpath), path );
+    if ( rc == 0 )
     {
         size_t ln;
-
-        rc = string_printf (cpath, sizeof cpath, &ln, path);
-        if ((rc == 0) && (ln > sizeof cpath))
-            rc = RC (rcFS, rcArc, rcOpening, rcBuffer, rcInsufficient);
+        ln = strlen (cpath);
+        if ((cpath[ln-1] == '.')&&(cpath[ln-2] == '/'))
+            cpath[ln-2] = '\0';
     }
-
+    if ( rc != 0 )
+        return rc;
     StringInitCString ( &spath, cpath );
     pathlen = strlen ( cpath );
 
-    if (_archive != NULL)
+    type = KDirectoryVPathType ( self, cpath, NULL );
+    switch ( type & ~kptAlias )
     {
-        switch (baseType)
-        {
-        case tocKFile:
-            rc = KFileAddRef (_archive);
-            break;
-        case tocKDirectory:
-            rc = KDirectoryAddRef (_archive);
-            break;
-        default:
-            /* i dunno */
-            break;
-        }
-        if (rc)
-            return rc;
+    default:
+        rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcUnexpected );
+        if ( !silent )
+            LOGERR (klogErr, rc, "Unusable file type" );
+        break;
+    case kptNotFound:
+    case kptBadPath:
+        rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcNotFound );
+        break;
+
+    case kptFile:
+    /* -----
+     * Open the archive file as a KFILE for internal use
+     *
+     * Fail / quit if we couldn't
+     */
+    if ( baseType != tocKFile )
+    {
+        rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcIncorrect );
+        if ( !silent )
+            LOGERR ( klogErr, rc, "Mismatch of file type and expected type" );
+        return rc;
     }
-    else
+
+    rc = KDirectoryVOpenFileRead ( self, &archive.f, cpath, NULL );
+    if ( rc != 0 && !silent )
     {
-        type = KDirectoryVPathType ( self, cpath, NULL );
-        switch ( type & ~kptAlias )
+        PLOGERR ( klogErr, ( klogErr, rc,
+                             "Failed to open archive file $(file)",
+                             PLOG_S (file),
+                             path ) );
+    }
+    break;
+
+    case kptDir:
+        if ( baseType != tocKDirectory )
         {
-        default:
-            rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcUnexpected );
+            rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcInconsistent );
             if ( !silent )
-                LOGERR (klogErr, rc, "Unusable file type" );
-            break;
-        case kptNotFound:
-        case kptBadPath:
-            rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcNotFound );
-            break;
-
-        case kptFile:
-            /* -----
-             * Open the archive file as a KFILE for internal use
-             *
-             * Fail / quit if we couldn't
-             */
-            if ( baseType != tocKFile )
-            {
-                rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcIncorrect );
-                if ( !silent )
-                    LOGERR ( klogErr, rc, "Mismatch of file type and expected type" );
-                return rc;
-            }
-
-            rc = KDirectoryVOpenFileRead ( self, &archive.f, cpath, NULL );
-            if ( rc != 0 && !silent )
-            {
-                PLOGERR ( klogErr, ( klogErr, rc,
-                                     "Failed to open archive file $(file)",
-                                     PLOG_S (file),
-                                     path ) );
-            }
-        
-            break;
-
-        case kptDir:
-            if ( baseType != tocKDirectory )
-            {
-                rc = RC ( rcFS, rcArc, rcOpening, rcFile, rcInconsistent );
-                if ( !silent )
-                    LOGERR ( klogErr, rc, "Mismatch of file type and expected type" );
-                return rc;
-            }
+                LOGERR ( klogErr, rc, "Mismatch of file type and expected type" );
+            return rc;
+        }
+        rc = KDirectoryVOpenDirRead ( self, &archive.d, false, cpath, NULL );
+        if ( rc != 0 && !silent )
+        {
+            PLOGMSG ( klogErr,
+            ( klogErr, "Failed to open archive directory $(file)",
+              PLOG_S ( file ), path ) );
+        }
+        break;
+    } /* switch ( type & ~kptAlias ) */
 
-            rc = KDirectoryVOpenDirRead ( self, &archive.d, false, cpath, NULL );
-            if ( rc != 0 && !silent )
-            {
-                PLOGMSG ( klogErr,
-                          ( klogErr, "Failed to open archive directory $(file)",
-                            PLOG_S ( file ), path ) );
-            }
-            break;
-        } /* switch ( type & ~kptAlias ) */
-    }
     if ( rc == 0 )
     {
         /* -----
@@ -3689,6 +3635,7 @@ rc_t KDirectoryOpenArcDirRead_intern( const KDirectory * self,
      * if rc is non-zero we failed somewhere above.
      * Release allocated memory and exit with that error code.
      */
+
     if ( archive.v != NULL )
     {
         switch ( baseType )
@@ -3705,8 +3652,6 @@ rc_t KDirectoryOpenArcDirRead_intern( const KDirectory * self,
         }
     }
 
-    rc = rc | rcaux;
-
     if ( rc != 0 )
     {
         if ( arcdir != NULL )
@@ -3716,8 +3661,7 @@ rc_t KDirectoryOpenArcDirRead_intern( const KDirectory * self,
 
     if ( toc != NULL )
         KTocRelease ( toc );
-
-    return rc;
+    return rc | rcaux;
 }
 
 
@@ -3768,9 +3712,8 @@ LIB_EXPORT rc_t CC KDirectoryOpenArcDirRead( const KDirectory * self,
         pdir,
         chroot, 
         false,
-        path,
+        path, 
         baseType,
-        NULL,
         parse,
         filter,
         filterparam );
@@ -3793,34 +3736,10 @@ LIB_EXPORT rc_t CC KDirectoryOpenArcDirRead_silent( const KDirectory * self,
         true,
         path, 
         baseType,
-        NULL,
         parse,
         filter,
         filterparam );
 }
-LIB_EXPORT rc_t CC KDirectoryOpenArcDirRead_silent_preopened( const KDirectory * self,
-    const KDirectory ** pdir,
-    bool chroot,
-    const char * path,
-    KArcFSType baseType,
-    void * archive,
-    rc_t ( CC * parse )( KToc *, const void *,
-        bool( CC * )( const KDirectory *, const char *, void * ), void * ),
-    bool ( CC * filter )( const KDirectory*, const char *, void *),
-    void * filterparam )
-{
-    return KDirectoryOpenArcDirRead_intern( self,
-        pdir,
-        chroot, 
-        true,
-        path, 
-        baseType,
-        archive,
-        parse,
-        filter,
-        filterparam );
-}
-
 
 /* ======================================================================
  * 
diff --git a/libs/kfs/buffile-read.c b/libs/kfs/buffile-read.c
deleted file mode 100644
index 7635568..0000000
--- a/libs/kfs/buffile-read.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-typedef struct KBufReadFile KBufReadFile;
-#define KFILE_IMPL KBufReadFile
-
-#include <kfs/extern.h>
-
-#include <kfs/file.h>
-#include <kfs/impl.h>
-#include <klib/debug.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-
-/*-----------------------------------------------------------------------
- * KBufReadFile
- */
-struct KBufReadFile
-{
-    KFile dad;
-
-    uint64_t pos;       /* position of buff within the original file */
-
-    const KFile *f;           /* original file being buffered */
-
-    size_t bsize;       /* size of the buffer */
-    size_t num_valid;   /* how much of the buffer is actually valid */
-
-    uint8_t buff [ 1 ];
-};
-
-static
-rc_t CC KBufReadFileDestroy ( KBufReadFile *self )
-{
-    rc_t rc = KFileRelease ( self -> f );
-    if ( rc == 0 )
-        free ( self );
-    return rc;
-}
-
-static
-struct KSysFile* CC KBufReadFileSysFile ( const KBufReadFile *self, uint64_t *offset )
-{
-    /* does not support SysFile */
-    * offset = 0;
-    return NULL;
-}
-
-static
-rc_t CC KBufReadFileRandomAccess ( const KBufReadFile *self )
-{
-    return KFileRandomAccess ( self -> f );
-}
-
-static
-rc_t CC KBufReadFileSize ( const KBufReadFile *self, uint64_t *size )
-{
-    return KFileSize ( self -> f, size );
-}
-
-static
-rc_t CC KBufReadFileSetSize ( KBufReadFile *self, uint64_t size )
-{
-    return RC ( rcFS, rcFile, rcAccessing, rcFunction, rcUnsupported );
-}
-
-static
-rc_t CC KBufReadFileRead ( const KBufReadFile *cself, uint64_t pos,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc = 0;
-
-    assert (cself);
-    assert (buffer);
-    assert (num_read);
-
-    /* start assuming nothing will be read */
-    *num_read = 0;
-
-    if (bsize != 0)
-    {
-        KBufReadFile * self = (KBufReadFile *)cself;
-        uint64_t new_pos; 
-        size_t new_offset;
-
-        /* cast might be a no-op */
-        new_offset = (size_t)(pos % cself->bsize);
-        new_pos = pos - new_offset;
-
-        /* we need to read if we are on the wrong 'sector page'
-         * or the current 'sector page' isn't long enough.
-         *
-         * If on the wrong page just kill the contents
-         */
-        if (new_pos != cself->pos)
-        {
-            self->num_valid = 0;
-            self->pos = new_pos;
-        }
-
-        /* new we agree on the 'sector page' even if we have nothing
-         * valid in it */
-        if ((self->num_valid == 0) || (self->num_valid <= (size_t)new_offset))
-        {
-            size_t new_num_read;
-            rc = KFileReadAll (self->f, self->pos + self->num_valid,
-                               self->buff + self->num_valid, 
-                               self->bsize - self->num_valid,
-                               &new_num_read);
-            if (rc == 0)
-                self->num_valid += new_num_read;
-        }
-
-        /* now we have all we're gonna get this time */
-        if (new_offset < self->num_valid)
-        {
-            size_t to_copy;
-
-            to_copy = self->num_valid - new_offset;
-            if (to_copy > bsize)
-                to_copy = bsize;
-            
-            memmove (buffer, self->buff + new_offset, to_copy);
-            *num_read = to_copy;
-        }
-    }
-    return rc;
-}
-
-static
-rc_t CC KBufReadFileWrite ( KBufReadFile *self, uint64_t pos,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    return RC ( rcFS, rcFile, rcWriting, rcFunction, rcUnsupported );
-}
-
-static
-uint32_t CC KBufReadFileType ( const KBufReadFile * self )
-{
-    return KFileType ( self -> f );
-}
-
-static
-rc_t KBufReadFileMake ( KBufReadFile ** bp, const KFile *f, size_t bsize,
-    const KFile_vt *vt, bool read_enabled, bool write_enabled )
-{
-    rc_t rc;
-
-    KBufReadFile *buf = calloc ( sizeof * buf - 1 + bsize, 1 );
-    if ( buf == NULL )
-        rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        rc = KFileInit ( & buf -> dad, vt, "KBufReadFile", "no-name", read_enabled, write_enabled );
-        if ( rc == 0 )
-        {
-            rc = KFileAddRef ( f );
-            if ( rc == 0 )
-            {
-                buf -> f = ( KFile* ) f;
-                buf -> bsize = bsize;
-                * bp = buf;
-                return 0;
-            }
-        }
-
-        free ( buf );
-    }
-
-    return rc;
-}
-
-/* MakeBufferedWrite
- *  make a writable file buffer
- *
- *  "buf" [ OUT ] - return parameter for new buffered file
- *
- *  "original" [ IN ] - source file to be buffered. must have read access
- *
- *  "bsize" [ IN ] - buffer size
- */
-
-static
-const KFile_vt_v1 vtKBufReadFileRandWR_v1 =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KBufReadFileDestroy,
-    KBufReadFileSysFile,
-    KBufReadFileRandomAccess,
-    KBufReadFileSize,
-    KBufReadFileSetSize,
-    KBufReadFileRead,
-    KBufReadFileWrite,
-
-    /* 1.1 */
-    KBufReadFileType
-};
-
-LIB_EXPORT 
-rc_t CC KBufReadFileMakeRead ( const KFile ** bp, const KFile * original, size_t bsize )
-{
-    rc_t rc;
-
-    if ( bp == NULL )
-        rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcNull );
-    else
-    {
-        if ( original == NULL )
-            rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcNull );
-        else if ( ! original -> read_enabled )
-        {
-            if ( original -> write_enabled )
-                rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcWriteonly );
-            else
-                rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcNoPerm );
-        }
-        else
-        {
-            KBufReadFile *buf;
-            rc = KBufReadFileMake ( & buf, original, bsize,
-                ( const KFile_vt* ) & vtKBufReadFileRandWR_v1, true, false );
-            if ( rc == 0 )
-            {
-                * bp = & buf -> dad;
-                return 0;
-            }
-        }
-
-        * bp = NULL;
-    }
-
-    return rc;
-}
diff --git a/libs/kfs/buffile-write.c b/libs/kfs/buffile-write.c
index 1d46ce9..a22dd5f 100644
--- a/libs/kfs/buffile-write.c
+++ b/libs/kfs/buffile-write.c
@@ -284,7 +284,7 @@ rc_t KBufWriteFileMake ( KBufWriteFile ** bp, const KFile *f, size_t bsize,
     else
     {
         memset ( buf, 0, sizeof * buf );
-        rc = KFileInit ( & buf -> dad, vt, "KBufWriteFile", "no-name", read_enabled, write_enabled );
+        rc = KFileInit ( & buf -> dad, vt, read_enabled, write_enabled );
         if ( rc == 0 )
         {
             rc = KFileAddRef ( f );
@@ -332,7 +332,7 @@ const KFile_vt_v1 vtKBufWriteFileRandWR_v1 =
     KBufWriteFileType
 };
 
-LIB_EXPORT rc_t KBufWriteFileMakeWrite ( KFile ** bp, KFile * original, size_t bsize )
+rc_t KBufWriteFileMakeWrite ( KFile ** bp, KFile * original, size_t bsize )
 {
     rc_t rc;
 
diff --git a/libs/kfs/buffile.c b/libs/kfs/buffile.c
index ecff70c..220ee04 100644
--- a/libs/kfs/buffile.c
+++ b/libs/kfs/buffile.c
@@ -396,7 +396,7 @@ rc_t KBufFileMake ( KBufFile ** bp, const KFile_vt *vt,
         rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
     else
     {
-        rc = KFileInit ( & buf -> dad, vt, "KBufFile", "no-name", read_enabled, write_enabled );
+        rc = KFileInit ( & buf -> dad, vt, read_enabled, write_enabled );
         if ( rc == 0 )
         {
             rc = KFileAddRef ( f );
diff --git a/libs/kfs/bzip.c b/libs/kfs/bzip.c
index 4fe4362..2adacf7 100644
--- a/libs/kfs/bzip.c
+++ b/libs/kfs/bzip.c
@@ -48,8 +48,8 @@ struct KBZipFile;
 #endif
 
 #define BZIP_DBGSTREAM(strm,msg)                                 \
-    BZIP_DEBUG(("%s: bz_stream (%p) %.35s\nnext_in %p "          \
-                "avail_in %6u total_in %10lu next_out %p "       \
+    BZIP_DEBUG(("%s: bz_stream (%p) %.35s\nnext_in %14zu "       \
+                "avail_in %6u total_in %10lu next_out %14zu "    \
                 "avail_out %6u total_out %10lu\n",               \
                 __func__, strm, msg,                             \
                 strm->next_in, strm->avail_in,                   \
@@ -213,7 +213,7 @@ rc_t KBZipFileReadInt (KBZipFile * self, void * buffer, size_t bsize, size_t * p
     size_t tot_read = 0;
     rc_t rc = 0;
 
-    BZIP_DEBUG (("---------------\n%s: Enter requesting bsize %lu\n", __func__, bsize));
+    BZIP_DEBUG (("%s: Enter requesting bsize %lu\n", __func__, bsize));
 
     strm = &self->strm;
 
@@ -222,11 +222,6 @@ rc_t KBZipFileReadInt (KBZipFile * self, void * buffer, size_t bsize, size_t * p
         char * this_out;
         size_t src_read;
         int zret;
-        bool bin;
-        bool bout;
-        bool end;
-
-        bin = (strm->avail_in != 0);
 
         BZIP_DEBUG (("%s: loop start tot_read %zu\n", __func__, tot_read));
 
@@ -288,9 +283,7 @@ rc_t KBZipFileReadInt (KBZipFile * self, void * buffer, size_t bsize, size_t * p
 
         case BZ_STREAM_END:
             BZIP_DEBUG (("%s: BZ_STREAM_END\n", __func__));
-            end = true;
             num_read = strm->next_out - this_out;
-            bout = (num_read != 0);
             BZIP_DEBUG (("%s: num_read %zu\n", __func__, num_read));
             self->completed = true;
             BZIP_DBGSTREAM (strm, "before BZ2_bzDecompressEnd");
@@ -323,9 +316,7 @@ rc_t KBZipFileReadInt (KBZipFile * self, void * buffer, size_t bsize, size_t * p
 
         case BZ_OK:
             BZIP_DEBUG (("%s: BZ_OK\n", __func__));
-            end = false;
             num_read = strm->next_out - this_out;
-            bout = (num_read != 0);
             BZIP_DEBUG (("%s: num_read %zu\n", __func__, num_read));
 
         read_more:
@@ -337,17 +328,9 @@ rc_t KBZipFileReadInt (KBZipFile * self, void * buffer, size_t bsize, size_t * p
                                 sizeof self->buff, &src_read);
                 if (rc)
                     return rc;
-
-                BZIP_DEBUG (("%s: KFileRead read %u\n", __func__, src_read));
-
                 if (src_read == 0)
-                {
-                    BZIP_DEBUG (("%s: end %u in %u out %u\n", __func__, end, bin, bout));
-                
-                    if (!end && bin && !bout)
-                        rc = RC (rcFS, rcFile, rcReading, rcData, rcInsufficient);
                     goto done;
-                }
+
                 strm->avail_in = src_read;
                 self->filePosition += src_read;
                 strm->next_in = self->buff;
@@ -365,7 +348,7 @@ rc_t KBZipFileReadInt (KBZipFile * self, void * buffer, size_t bsize, size_t * p
         BZIP_DEBUG (("%s: loop end tot_read %zu\n", __func__, tot_read));
     }
 done:
-    BZIP_DEBUG (("%s: returning tot_read %zu\n\n\n", __func__, tot_read));
+    BZIP_DEBUG (("%s: returning tot_read %zu\n", __func__, tot_read));
     *pnumread = tot_read;
     return rc;
 }
@@ -385,7 +368,7 @@ static rc_t KBZipFileReadSeek (KBZipFile *self, uint64_t pos)
 
         BZIP_DEBUG(("%s: call KBZipFileReadInt to_read %zu \n",__func__));
 
-	rc = KBZipFileReadInt ( self, buff, to_read, &num_read);
+	rc = KBZipFileReadInt ( self, buff, to_read, &num_read );
 
         BZIP_DEBUG(("%s: return KBZipFileReadInt num_read %zu \n",__func__));
 
@@ -394,6 +377,7 @@ static rc_t KBZipFileReadSeek (KBZipFile *self, uint64_t pos)
 
 	if (num_read == 0)
 	    break;
+
     }
     return rc;
 }
@@ -697,7 +681,7 @@ LIB_EXPORT rc_t CC KFileMakeBzip2ForRead (const struct KFile **pnew_obj,
         else
         {
             rc = KFileInit(&obj->dad, (const KFile_vt*) &KBZipFile_vt_v1,
-                           "KBZipFile", "no-name", true, false);
+                           true, false);
             if (rc == 0)
             {
                 bz_stream * strm;
@@ -778,7 +762,7 @@ LIB_EXPORT rc_t CC KFileMakeBzip2ForWrite (struct KFile **pnew_obj,
         else
         {
             rc = KFileInit(&obj->dad, (const KFile_vt*)&KBZipFile_vt_v1,
-                           "KBZipFile", "no-name", false, true);
+                           false, true);
             if (rc == 0)
             {
                 bz_stream* strm;
diff --git a/libs/kfs/cacheteefile.c b/libs/kfs/cacheteefile.c
deleted file mode 100644
index 791e7ca..0000000
--- a/libs/kfs/cacheteefile.c
+++ /dev/null
@@ -1,1689 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <kfs/extern.h>
-
-struct KCacheTeeFile;
-#define KFILE_IMPL struct KCacheTeeFile
-#include <kfs/impl.h>
-#include <kfs/lockfile.h>
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <klib/checksum.h>
-
-#include <kfs/cacheteefile.h>
-
-#include <sysalloc.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-
-/*--------------------------------------------------------------------------
- layout of local file:
- 
- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC MMMMMMMMMMMMMM SS BB
-
- C ... file content in valid/invalid blocks
- M ... bitmap of blocks bytes = ( ( ( content-size / block-size ) + 1 ) / 8 ) + 1 )
- S ... size of content ( uint64_t ) 8 bytes
- B ... used blocksize  ( uint32_t ) 4 bytes
- */
-
-
-/*--------------------------------------------------------------------------
- * KCacheTeeFile
- */
-
-#define CACHE_TEE_DEFAULT_BLOCKSIZE ( 32 * 1024 )
-#define CACHE_TEE_REPORT 0
-
-typedef struct KCacheTeeFile
-{
-    KFile dad;
-    const KFile * remote;
-    KFile * local;
-    KFile * logger;
-    KDirectory * dir;
-    KLockFile * lock;
-
-    uint8_t * bitmap;
-    uint8_t * scratch_buffer;
-
-    uint64_t remote_size;
-    uint64_t local_size;
-    uint64_t block_count;
-    uint64_t log_file_pos;
-    uint64_t first_block_in_scratch;
-
-    /* size_t */ uint64_t bitmap_bytes;
-    /* size_t */ uint64_t scratch_size;
-    /* size_t */ uint64_t valid_scratch_bytes;
-    uint32_t block_size;
-    uint32_t cluster_factor;
-    bool fully_in_cache;
-    bool report;
-    bool local_read_only;
-    char local_path [ 1 ];
-} KCacheTeeFile;
-
-
-const uint8_t BitNr2Mask[ 8 ] =
-{
-         /* 0  1  2  3   4   5   6    7  */
-            1, 2, 4, 8, 16, 32, 64, 128
-};
-
-#define IS_CACHE_BIT( CacheFile, Block_Nr ) ( CacheFile->bitmap[ (Block_Nr) >> 3 ] & BitNr2Mask[ (Block_Nr) & 7 ] ) > 0
-
-#define IS_BITMAP_BIT( BitMap, Block_Nr ) ( BitMap[ (Block_Nr) >> 3 ] & BitNr2Mask[ (Block_Nr) & 7 ] ) > 0
-
-#define BITS_2_BYTES( BitCount ) ( ( ( BitCount ) + 7 ) >> 3 )
-
-#define SIZE_2_BLOCK_COUNT( Number_Of_Bytes, Block_Size ) ( ( ( Number_Of_Bytes ) + ( Block_Size ) - 1 ) / ( Block_Size ) )
-
-
-static rc_t calculate_local_size_from_remote_size( KCacheTeeFile *self )
-{
-    rc_t rc = 0;
-    if ( self->block_size > 0 )
-    {
-        self->block_count = SIZE_2_BLOCK_COUNT( self->remote_size, self->block_size );
-        self->bitmap_bytes = BITS_2_BYTES( self->block_count );
-        self->local_size = ( self->remote_size +
-                             self->bitmap_bytes + 
-                             sizeof self->remote_size + 
-                             sizeof self->block_size );
-    }
-    else
-    {
-        rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "div by zero attempt in calculating local size" );
-    }
-    return rc;
-}
-
-
-static rc_t create_bitmap_buffer( uint8_t ** bitmap, /* size_t */ uint64_t bitmap_bytes )
-{
-    rc_t rc = 0;
-    *bitmap = calloc ( sizeof **bitmap, bitmap_bytes );
-    if ( *bitmap == NULL )
-    {
-        rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-        LOGERR( klogErr, rc, "init local bitmap-area" );
-    }
-    return rc;
-}
-
-static rc_t create_bitmap( KCacheTeeFile *self )
-{
-    return create_bitmap_buffer( &self->bitmap, self->bitmap_bytes );
-}
-
-
-static bool is_bitmap_full( const uint8_t * bitmap, /* size_t */ uint64_t bitmap_bytes, uint64_t block_count )
-{
-    /* size_t */ uint64_t bitmap_byte = 0;
-    while( bitmap_byte < ( bitmap_bytes - 1 ) )
-    {
-        if ( bitmap[ bitmap_byte++ ] != 0xFF )
-            return false;
-    }
-    {
-        uint64_t block_id = ( bitmap_byte << 3 );
-        while ( block_id < block_count )
-        {
-            bool block_cached = IS_BITMAP_BIT( bitmap, block_id );
-            if ( !block_cached )
-                return false;
-            ++block_id;
-        }
-    }
-    return true;
-}
-
-
-static void report( const KCacheTeeFile * cf )
-{
-    OUTMSG(( "log  : %s\n", cf -> logger != NULL ? "YES" : "NO" ));
-    OUTMSG(( "size : local=%,lu remote=%,lu\n", cf -> local_size, cf -> remote_size ));
-    OUTMSG(( "block: size=%,u count=%,u\n", cf -> block_size, cf -> block_count ));
-    OUTMSG(( "bitmp: bytes=%,u\n", cf -> bitmap_bytes ));
-    OUTMSG(( "fully: %s\n", cf -> fully_in_cache ? "YES" : "NO" ));
-}
-
-
-static rc_t init_new_local_file( KCacheTeeFile * cf )
-{
-    rc_t rc = create_bitmap( cf );
-    cf->fully_in_cache = false;
-    if ( rc == 0 )
-    {
-        size_t written;
-        uint64_t pos = cf -> remote_size;
-        /* write the bitmap ( zero'd out ) into the local file */
-        rc = KFileWriteAll ( cf -> local, pos, 
-                             cf -> bitmap, cf -> bitmap_bytes, &written );
-        if ( rc == 0 && written != cf -> bitmap_bytes )
-        {
-            rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-            LOGERR( klogErr, rc, "no full initialization of local file bitmap" );
-        }
-        if ( rc == 0 && cf->report )
-        {
-            OUTMSG(( "init new cachefile: %u bytes of bitmaps written at pos %lu\n", written, pos ));
-        }
-
-        /* write the remote-file-size into the local file ( uint64_t = 8 bytes )*/
-        if ( rc == 0 )
-        {
-            pos += cf -> bitmap_bytes;
-            rc = KFileWriteAll ( cf -> local, pos,
-                                 &cf -> remote_size, sizeof( cf -> remote_size ), &written );
-            if ( rc == 0 && written != sizeof( cf -> remote_size ) )
-            {
-                rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-                LOGERR( klogErr, rc, "cannot write remote-filesize into local file" );
-            }
-        }
-        if ( rc == 0 && cf->report )
-        {
-            OUTMSG(( "init new cachefile: %u bytes of remote size written at pos %lu ( remote-size = %lu )\n", written, pos, cf->remote_size ));
-        }
-
-        /* write the block-size into the local file ( size_t = 4 bytes )*/
-        if ( rc == 0 )
-        {
-            pos += sizeof( cf -> remote_size );
-            rc = KFileWriteAll ( cf -> local, pos,
-                                 &cf -> block_size, sizeof( cf -> block_size ), &written );
-            if ( rc == 0 && written != sizeof( cf -> block_size ) )
-            {
-                rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-                LOGERR( klogErr, rc, "cannot write block-size into local file" );
-            }
-        }
-        if ( rc == 0 && cf->report )
-        {
-            OUTMSG(( "init new cachefile: %u bytes of block_size written at pos %lu ( block-size = %lu )\n", written, pos, cf->block_size ));
-        }
-
-    }
-    if ( rc == 0 && cf -> report )
-        report( cf );
-    return rc;
-}
-
-
-static rc_t read_block_size( const struct KFile * self, uint64_t local_size, uint32_t *block_size, bool silent )
-{
-    size_t num_read;
-    uint64_t pos = local_size - ( sizeof *block_size );
-    /* read the block-size, compare to the requested block-size */
-    rc_t rc =  KFileRead( self, pos, block_size, sizeof *block_size, &num_read );
-    if ( rc != 0 )
-    {
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "cannot read block-size from local file" );
-        }
-    }
-    else if ( num_read != sizeof *block_size )
-    {
-        rc = RC ( rcFS, rcFile, rcValidating, rcParam, rcInvalid );
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "cannot read block-size from local file" );
-        }
-    }
-    if ( rc == 0 && *block_size == 0 )
-    {
-        rc = RC ( rcFS, rcFile, rcValidating, rcParam, rcInvalid );
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "block-size read from local file is zero" );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t read_content_size( const struct KFile * self, uint64_t local_size, uint64_t *content_size, bool silent )
-{
-    size_t num_read;
-    uint64_t pos = ( local_size - 4 ) - sizeof( *content_size );
-    rc_t rc =  KFileRead ( self, pos, content_size, sizeof *content_size, &num_read );
-    if ( rc != 0 )
-    {
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "cannot read content-size from local file" );
-        }
-    }
-    else if ( num_read != sizeof *content_size )
-    {
-        rc = RC ( rcFS, rcFile, rcValidating, rcParam, rcInvalid );
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "cannot read content-size from local file" );
-        }
-    }
-    if ( rc == 0 && *content_size == 0 )
-    {
-        rc = RC ( rcFS, rcFile, rcValidating, rcParam, rcInvalid );
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "content-size read from local file is zero" );
-        }
-    }
-    if ( rc == 0 && *content_size >= local_size )
-    {
-        rc = RC ( rcFS, rcFile, rcValidating, rcParam, rcInvalid );
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "content-size read from local file is invalid" );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t verify_file_structure( const uint64_t local_size, const uint32_t block_size, const uint64_t content_size,
-                                   uint64_t * block_count, /* size_t */ uint64_t * bitmap_bytes, bool silent )
-{
-    rc_t rc = 0;
-    uint64_t expected_size;
-
-    *block_count = SIZE_2_BLOCK_COUNT( content_size, block_size );
-    *bitmap_bytes = BITS_2_BYTES( *block_count );
-
-    /* check if the values 'content-size' and 'block_size' result in the currect real file size */
-    expected_size = content_size + *bitmap_bytes + sizeof ( local_size ) + sizeof ( block_size );
-    if ( expected_size != local_size )
-    {
-        rc = RC ( rcFS, rcFile, rcValidating, rcParam, rcInvalid );
-        if ( !silent )
-        {
-            LOGERR( klogErr, rc, "content-size/blocksize do not make sense for this file" );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t verify_existing_local_file( KCacheTeeFile * cf, bool silent )
-{
-    /* size_t */ uint64_t bitmap_bytes;
-    uint32_t block_size;
-    uint64_t content_size, block_count;
-
-    rc_t rc = read_block_size ( cf -> local, cf -> local_size, &block_size, silent );
-    /* read content-size, compare to the content-size of the remote file */
-    if ( rc == 0 )
-        rc = read_content_size ( cf -> local, cf -> local_size, &content_size, silent );
-
-    if ( rc == 0 && content_size != cf -> remote_size )
-    {
-        rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-        PLOGERR( klogErr, ( klogErr, rc, "content-size in local file $(ls) does not match size of remote file $(rs)", 
-                           "ls=%lu,rs=%lu", content_size, cf -> remote_size ) );
-    }
-
-    /* check if the local file has the right size ( content + bitmap + content_size + block_size )*/
-    if ( rc == 0 )
-        rc = verify_file_structure ( cf -> local_size, block_size, content_size, &block_count, &bitmap_bytes, silent );
-
-    /* check if the requested block-size equals the stored block-size */
-    if ( rc == 0 )
-    {
-        if ( cf -> block_size == 0 )
-            cf -> block_size = CACHE_TEE_DEFAULT_BLOCKSIZE;
-        if ( cf -> block_size != block_size )
-        {
-            PLOGMSG( klogWarn, ( klogWarn, "block-size in local file $(ls) does not match requested value $(rv)",
-                                "ls=%u,rv=%u", block_size, cf -> block_size ) );
-        }
-        /* use the block-size as stored in the file */
-        cf -> block_size = block_size;
-        cf -> block_count = block_count;
-        cf -> bitmap_bytes = bitmap_bytes;
-        rc = create_bitmap( cf );
-    }
-
-    /* read the bitmap into the memory ... */
-    if ( rc == 0 )
-    {
-        size_t num_read;
-        /* read the bitmap from the local file */
-        rc = KFileReadAll ( cf -> local, content_size,
-                            cf -> bitmap, cf -> bitmap_bytes, &num_read );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "cannot read bitmap from local file" );
-        }
-        else if ( num_read != cf -> bitmap_bytes )
-        {
-            rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-            PLOGERR( klogErr, ( klogErr, rc, "cannot read $(ls) bitmap-bytes from local file, read $(rs) instead", 
-                           "ls=%lu,rs=%lu", cf -> bitmap_bytes, num_read ));
-        }
-    }
-
-    /* check if we have the whole remote file in cache */
-    if ( rc == 0 )
-        cf -> fully_in_cache = is_bitmap_full( cf -> bitmap, cf -> bitmap_bytes, cf -> block_count ); 
-
-    if ( rc == 0 && cf -> report )
-        report( cf );
-
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC IsCacheFileComplete( const struct KFile * self, bool * is_complete, bool silent )
-{
-    rc_t rc;
-    if ( self == NULL )
-        rc = RC( rcFS, rcFile, rcValidating, rcSelf, rcNull );
-    else if ( is_complete == NULL )
-        rc = RC( rcFS, rcFile, rcValidating, rcParam, rcNull );
-    else
-    {
-        uint64_t local_size;
-        *is_complete = false;
-        rc = KFileSize( self, &local_size );
-        if ( rc != 0 )
-        {
-            if ( !silent )
-            {
-                LOGERR( klogErr, rc, "cannot detect filesize when checking if cached file is complete" );
-            }
-        }
-        /* TODO: need to do a better constant tha a magic number */
-        else if (local_size < 13)
-        {
-            rc = RC ( rcFS, rcFile, rcValidating, rcSize, rcInsufficient );
-            if ( !silent )
-            {
-                LOGERR( klogErr, rc, "cannot use filesize of zero when checking if cached file is complete" );
-            }
-        }
-        else
-        {
-            uint32_t block_size;
-            rc = read_block_size( self, local_size, &block_size, silent );
-            if ( rc == 0 )
-            {
-                uint64_t content_size;
-
-                rc = read_content_size( self, local_size, &content_size, silent );
-                /* create bitmap buffer */
-                if ( rc == 0 )
-                {
-                    uint64_t block_count;
-                    /* size_t */ uint64_t bitmap_bytes;
-                    rc = verify_file_structure( local_size, block_size, content_size, &block_count, &bitmap_bytes, silent );
-                    if ( rc == 0 )
-                    {
-                        uint8_t * bitmap = NULL;
-                        rc = create_bitmap_buffer( &bitmap, bitmap_bytes );
-                        if ( rc == 0 )
-                        {
-                            size_t num_read;
-                            /* read the bitmap into the memory ... */
-                            rc = KFileReadAll ( self, content_size, bitmap, bitmap_bytes, &num_read );
-                            if ( rc != 0 )
-                            {
-                                if ( !silent )
-                                    LOGERR( klogErr, rc, "cannot read bitmap from local file" );
-                            }
-                            else if ( num_read != bitmap_bytes )
-                            {
-                                rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-                                if ( !silent )
-                                {
-                                    PLOGERR( klogErr, ( klogErr, rc, "cannot read $(ls) bitmap-bytes from local file, read $(rs) instead", 
-                                                        "ls=%lu,rs=%lu", bitmap_bytes, num_read ));
-                                }
-                            }
-                        }
-                        if ( rc == 0 )
-                            *is_complete = is_bitmap_full( bitmap, bitmap_bytes, block_count );
-
-                        if ( bitmap != NULL )
-                            free( bitmap );
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC TruncateCacheFile( struct KFile * self )
-{
-    rc_t rc;
-    if ( self == NULL )
-        rc = RC( rcFS, rcFile, rcResizing, rcSelf, rcNull );
-    else
-    {
-        uint64_t local_size;
-        rc = KFileSize( self, &local_size );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "cannot detect filesize when truncating cached file" );
-        }
-        else
-        {
-            uint32_t block_size;
-            rc = read_block_size( self, local_size, &block_size, false );
-            if ( rc == 0 )
-            {
-                uint64_t content_size;
-                rc = read_content_size( self, local_size, &content_size, false );
-                if ( rc == 0 )
-                {
-                    uint64_t block_count;
-                    /* size_t */ uint64_t bitmap_bytes;
-                    rc = verify_file_structure( local_size, block_size, content_size, &block_count, &bitmap_bytes, false );
-
-                    /* truncate the file by setting the new (shorter) filesize */
-                    if ( rc == 0 )
-                        rc = KFileSetSize( self, content_size );
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t promote_cache( KCacheTeeFile * cf )
-{
-    char cache_file_name [ 4096 ];
-    char temp_file_name [ 4096 ];
-    size_t num_writ;
-    rc_t rc = string_printf ( cache_file_name, sizeof cache_file_name, &num_writ, "%s.cache", cf -> local_path );
-    if ( rc == 0 )
-        rc = string_printf ( temp_file_name, sizeof temp_file_name, &num_writ, "%s.cache.temp", cf -> local_path );
-
-    /* (1) releaes open cache file ( windows cannot rename open files ) */
-    if ( rc == 0 )
-        rc = KFileRelease( cf -> local );
-
-    /* (2) rename to temporary name */
-    if ( rc == 0 )
-    {
-        cf -> local = NULL;
-        rc = KDirectoryRename ( cf -> dir, true, cache_file_name, temp_file_name );
-    }
-
-    /* (3) open from temporary name */
-    if ( rc == 0 )
-        rc = KDirectoryOpenFileWrite( cf -> dir, &cf -> local, true, "%s", temp_file_name );
-
-    /* (4) perform truncation */
-    if ( rc == 0 )
-        rc = TruncateCacheFile( cf -> local );
-    
-    /* (5) releaes open temp. cache file ( windows cannot rename open files ) */
-    if ( rc == 0 )
-        rc = KFileRelease( cf -> local );
-
-    /* (6) rename to final filename ( windows cannot rename open files ) */
-    if ( rc == 0 )
-    {
-        cf -> local = NULL;
-        rc = KDirectoryRename ( cf -> dir, true, temp_file_name, cf -> local_path );
-    }
-
-    /* (6) open from final filename */
-    if ( rc == 0 )
-        rc = KDirectoryOpenFileWrite( cf -> dir, &cf -> local, true, "%s", cf -> local_path );
-
-    return rc;
-}
-
-
-/* Destroy
- */
-static rc_t CC KCacheTeeFileDestroy( KCacheTeeFile *self )
-{
-    if ( self->report )
-    {
-        OUTMSG(( "\nDESTROY cacheteefile '%s'\n\n", self -> local_path ));
-    }
-
-    if ( !self -> local_read_only && self -> lock != NULL )
-    {
-        rc_t rc = IsCacheFileComplete ( self -> local, &self -> fully_in_cache, false );
-        if ( rc == 0 && self -> fully_in_cache )
-        {
-            if ( self->report )
-            {
-                OUTMSG(( "\nPROMOTING cacheteefile '%s'\n\n", self -> local_path ));
-            }
-            promote_cache( self );
-        }
-    }
-
-    if ( self->bitmap != NULL )
-        free( self->bitmap );
-    if ( self->scratch_buffer != NULL )
-        free( self->scratch_buffer );
-
-    KDirectoryRelease ( self->dir );
-    KFileRelease ( self -> remote );
-    KFileRelease ( self -> local );
-    KLockFileRelease ( self -> lock );
-    KFileRelease ( self -> logger );
-
-    free ( self );
-    return 0;
-}
-
-
-
-static rc_t log_to_file( KFile *log, uint64_t *log_file_pos,
-                         uint64_t pos, size_t bsize, size_t num_read )
-{
-    char buffer[ 1024 ];
-    size_t printf_written;
-    rc_t rc = string_printf( buffer, sizeof buffer, &printf_written, 
-                             "READ at %lu.%u read = %u\n",
-                             pos, bsize, num_read );
-    if ( rc == 0 )
-    {
-        size_t log_written;
-        rc = KFileWriteAll ( log, *log_file_pos, buffer, printf_written, &log_written );
-        if ( rc == 0 )
-            *log_file_pos += log_written;
-    }
-    return rc;
-}
-
-
-static void set_bitmap( const KCacheTeeFile *cself, uint64_t start_block, uint64_t block_count )
-{
-    uint64_t block_idx, block_nr;
-    for ( block_idx = 0, block_nr = start_block; 
-          block_idx < block_count; 
-          ++block_idx, ++block_nr )
-    {
-        cself->bitmap[ block_nr >> 3 ] |= BitNr2Mask[ block_nr & 0x07 ];
-    }
-}
-
-
-static rc_t write_bitmap( const KCacheTeeFile *cself, uint64_t start_block, uint64_t block_count )
-{
-    size_t written;
-    uint32_t start_block_byte = ( start_block >> 3 );
-    uint32_t end_block_byte = ( ( start_block + block_count - 1 ) >> 3 );
-    uint64_t pos = cself->remote_size + start_block_byte;
-    size_t to_write = ( end_block_byte - start_block_byte ) + 1;
-    rc_t rc = KFileWriteAll( cself->local, pos, &cself->bitmap[ start_block_byte ], to_write, &written );
-    if ( rc != 0 )
-    {
-        PLOGERR( klogErr, ( klogErr, rc, "cannot write local-file-bitmap block $(sb).$(cn)", 
-                           "sb=%lu,cn=%lu", start_block, block_count ) );
-    }
-    if ( rc == 0 && cself->report )
-    {
-        OUTMSG(( "writing bitmap: %u bytes written at pos %lu\n", written, pos ));
-    }
-
-    return rc;
-}
-
-
-static rc_t resize_scratch_buffer( const KCacheTeeFile *cself, /* size_t */ uint64_t new_size )
-{
-    rc_t rc = 0;
-    KCacheTeeFile *self = ( KCacheTeeFile * )cself;
-
-    /* create scratch-buffer or resize it if needed */
-    if ( self->scratch_size == 0 )
-    {
-        self->scratch_buffer = malloc( new_size );
-        if ( self->scratch_buffer == NULL )
-            rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-        else
-            self->scratch_size = new_size;
-    }
-    else if ( self->scratch_size < new_size )
-    {
-        uint8_t * tmp = realloc( self->scratch_buffer, new_size );
-        if ( tmp == NULL )
-            rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-        else
-        {
-            self->scratch_buffer = tmp;
-            self->scratch_size = new_size;
-        }
-    }
-    return rc;
-}
-
-
-size_t check_rd_len( const KCacheTeeFile *cself, uint64_t pos, size_t bsize )
-{
-    size_t res = bsize;
-    uint64_t last_pos = pos;
-    last_pos += bsize;
-    if ( last_pos >= cself->remote_size )
-    {
-        if ( pos >= cself->remote_size )
-            res = 0;
-        else
-            res = ( cself->remote_size - pos );
-    }
-    return res;
-}
-
-
-static rc_t rd_remote_wr_local( const KCacheTeeFile *cself, uint64_t pos,
-                                void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc = 0;
-    if ( bsize > 0 )
-    {
-        size_t bytes_read;
-        *num_read = 0;
-        rc = KFileReadAll( cself->remote, pos, buffer, bsize, &bytes_read );
-        if ( rc == 0 )
-        {
-            if ( cself->report )
-            {
-                OUTMSG(( "reading remote data: %u bytes read at pos %lu\n", bytes_read, pos ));
-            }
-
-            if ( cself->local_read_only )
-            {
-                *num_read = bytes_read;
-            }
-            else
-            {
-                rc = KFileWriteAll( cself->local, pos, buffer, bytes_read, num_read );
-                if ( rc == 0 && cself->report )
-                {
-                    OUTMSG(( "writing local data: %u bytes written at pos %lu\n", *num_read, pos ));
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-#if 0
-static rc_t KCacheTeeFileRead_Starting_with_Cache_Hit( const KCacheTeeFile *cself, uint64_t pos,
-                               void *buffer, size_t bsize, size_t *num_read, uint64_t first_requested_block )
-{
-    rc_t rc = 0;
-    uint64_t t_pos, end_block, last_block = first_requested_block;
-    size_t to_read = check_rd_len( cself, pos, bsize );
-
-    if ( to_read == 0 )
-        return rc;
-
-    t_pos = pos + to_read - 1;
-    end_block = ( t_pos / cself->block_size );
-
-    /* the requested range starts with a cache-hit : 
-        - detect the last block after this first hit, that is still in cache */
-    if ( end_block > first_requested_block )
-    {
-        while( ( last_block <= end_block ) && ( IS_CACHE_BIT( cself, last_block + 1 ) ) )
-            ++last_block;
-    }
-
-    /* if not the whole requested range is a cache-hit: reduce to_read */
-    if ( last_block < end_block )
-/*        to_read = ( ( ( ( last_block + 1 ) * cself->block_size ) - 1 ) - pos ); */
-        to_read = ( ( ( last_block + 1 ) * cself->block_size ) - pos );
-    assert( to_read <= bsize );
-
-    if ( cself->report )
-        OUTMSG(( "RD LOCAL: %,lu.%,lu\n", pos, to_read ));
-
-    /* now read it from the local file into the user-supplied buffer */
-    if ( to_read > 0 )
-        rc = KFileReadAll( cself->local, pos, buffer, to_read, num_read );
-
-    return rc;
-}
-#endif
-
-#if 0
-static rc_t KCacheTeeFileRead_Block_Aligned_Cache_Miss( const KCacheTeeFile *cself, uint64_t pos,
-                               void *buffer, size_t bsize, size_t *num_read, uint64_t first_requested_block )
-{
-    rc_t rc;
-    /* we are block-aligned ! */
-    uint64_t block_count = ( bsize / cself->block_size );
-    if ( cself->report )
-        OUTMSG(( "RD REMOTE (block aligned): %,lu.%,lu (%,lu blocks)\n", pos, bsize, block_count ));
-    rc = rd_remote_wr_local( cself, pos, buffer, bsize, num_read );
-    if ( rc == 0 && !cself->local_read_only )
-    {
-        set_bitmap( cself, first_requested_block, block_count );
-        rc = write_bitmap( cself, first_requested_block, block_count );
-    }
-    if ( rc == 0 && cself->cluster_factor > 1 )
-    {
-        size_t over_read_size = cself->cluster_factor * cself->block_size;
-        rc = resize_scratch_buffer( cself, over_read_size );
-        if ( rc == 0 )
-        {
-            size_t tmp_read;
-            uint64_t r_pos = pos + bsize;
-            rc = rd_remote_wr_local( cself, r_pos, cself->scratch_buffer, over_read_size, &tmp_read );
-            if ( rc == 0 && !cself->local_read_only )
-            {
-                set_bitmap( cself, first_requested_block + block_count, cself->cluster_factor );
-                rc = write_bitmap( cself, first_requested_block + block_count, cself->cluster_factor );
-            }
-        }
-    }
-    return rc;
-}
-#endif
-
-#if 0
-static rc_t KCacheTeeFileRead_Starting_with_Cache_Miss_small( const KCacheTeeFile *cself, uint64_t pos,
-                               void *buffer, size_t bsize, size_t to_read, size_t *num_read,
-                               uint64_t first_requested_block, uint64_t last_cache_miss_block )
-{
-    rc_t rc = 0;
-    uint64_t t_pos, block_count;
-    size_t t_len, processed;
-
-    /* we are not block-aligned, and the request is smaller than 1 block in size ! */
-    if ( cself->report )
-        OUTMSG(( "RD REMOTE (small) : %,lu.%,lu\n", pos, to_read ));
-
-    /* that means we request 1 or 2 blocks of memory from our scratch-buffer ... */
-    t_pos = ( first_requested_block * cself->block_size );
-    block_count = ( ( last_cache_miss_block - first_requested_block ) + 1 );
-    t_len = ( block_count * cself->block_size );
-    rc = resize_scratch_buffer( cself, t_len );
-
-    if ( cself->report )
-        OUTMSG(( "RD REMOTE (small) : from <%,lu> %,lu blocks\n", t_pos, block_count ));
-
-    assert( to_read <= t_len );
-
-    /* we read that from remote, write it local and set the bitmap */
-    if ( rc == 0 )
-    {
-        rc = rd_remote_wr_local( cself, t_pos, cself->scratch_buffer, t_len, &processed );
-        if ( rc == 0 && !cself->local_read_only )
-        {
-            set_bitmap( cself, first_requested_block, block_count );
-            rc = write_bitmap( cself, first_requested_block, block_count );
-        }
-    }
-
-    /* then we copy the requested amount out of the scratch-buffer */
-    if ( rc == 0 )
-    {
-        memcpy( buffer, &( cself->scratch_buffer[ pos - t_pos ] ), to_read );
-        *num_read = to_read;
-    }
-    return rc;
-}
-#endif
-
-#if 0
-static rc_t KCacheTeeFileRead_Starting_with_Cache_Miss_large( const KCacheTeeFile *cself, uint64_t pos,
-                               void *buffer, size_t bsize, size_t to_read, size_t *num_read,
-                               uint64_t first_requested_block, uint64_t last_cache_miss_block )
-{
-    rc_t rc = 0;
-    uint64_t t_pos;
-    int64_t t_len;
-    size_t processed;
-
-    /* we are not block-aligned ! */
-    if ( cself->report )
-        OUTMSG(( "RD REMOTE (large) : %,lu.%,lu\n", pos, to_read ));
-
-    /* THERE IS AN EVENTUAL PRE-READ if pos is not block-aligned, using the user-supplied buffer */
-    t_pos = ( first_requested_block * cself->block_size );
-    if ( t_pos < pos )
-    {
-        t_len = ( pos - t_pos );
-        if ( cself->report )
-            OUTMSG(( "PRE : %,lu.%,lu\n", t_pos, t_len ));
-
-        assert( t_len < bsize );
-        rc = rd_remote_wr_local( cself, t_pos, buffer, t_len, &processed );
-    }
-
-    if ( rc == 0 )
-    {
-        /* THERE IS AN EVENTUAL POST-READ if pos + to_read is not block-aligned */
-        uint64_t last_pos = ( last_cache_miss_block + 1 ) * cself->block_size;
-        t_pos = pos + processed;
-        if ( last_pos > t_pos )
-        {
-            t_len = ( last_pos - t_pos );
-            if ( cself->report )
-                OUTMSG(( "POST: %,lu.%,lu\n", t_pos, t_len ));
-            if ( t_len <= bsize )
-                rc = rd_remote_wr_local( cself, t_pos, buffer, t_len, &processed );
-        }
-
-        if ( rc == 0 )
-        {
-            /* finally we read what was requested, into the user-supplied buffer */
-            if ( cself->report )
-                OUTMSG(( "MAIN: %,lu.%,lu\n", pos, to_read ));
-
-            rc = rd_remote_wr_local( cself, pos, buffer, to_read, num_read );
-            if ( rc == 0 && !cself->local_read_only )
-            {
-                uint64_t block_count = ( last_cache_miss_block - first_requested_block ) + 1;
-                set_bitmap( cself, first_requested_block, block_count );
-                rc = write_bitmap( cself, first_requested_block, block_count );
-            }
-        }
-    }
-    return rc;
-}
-#endif
-
-#if 0
-static rc_t KCacheTeeFileRead_Starting_with_Cache_Miss( const KCacheTeeFile *cself, uint64_t pos,
-                               void *buffer, size_t bsize, size_t *num_read, uint64_t first_requested_block )
-{
-    rc_t rc = 0;
-    size_t to_read = check_rd_len( cself, pos, bsize );
-    uint64_t end_pos = pos + to_read;
-    uint64_t last_requested_block = ( end_pos / cself->block_size );
-    uint64_t last_cache_miss_block = first_requested_block;
-
-    if ( to_read == 0 )
-        return rc;
-
-    assert( to_read <= bsize );
-
-    /* detect the last block after this first miss, that is still not in cache */
-    while( last_cache_miss_block <= last_requested_block && 
-           !( IS_CACHE_BIT( cself, last_cache_miss_block ) ) )
-    {
-        ++last_cache_miss_block;
-    }
-
-    if ( cself->report )
-        OUTMSG(( "CACHE-MISS from block #%,lu to #%,lu (end-block #%,lu)\n",
-                  first_requested_block, last_cache_miss_block, last_requested_block ));
-
-    /* check if the request is aligned to our block */
-    if ( ( pos == ( first_requested_block * cself->block_size ) ) &&
-         ( ( to_read % cself->block_size ) == 0 ) )
-    {
-        /* we are block-aligned ! */
-        rc = KCacheTeeFileRead_Block_Aligned_Cache_Miss( cself, pos, buffer, to_read, num_read, first_requested_block );
-    }
-    else
-    {
-        if ( to_read < cself->block_size )
-        {
-            rc = KCacheTeeFileRead_Starting_with_Cache_Miss_small( cself, pos, buffer, bsize, to_read, num_read,
-                                                first_requested_block, last_cache_miss_block );
-        }
-        else
-        {
-            rc = KCacheTeeFileRead_Starting_with_Cache_Miss_large( cself, pos, buffer, bsize, to_read, num_read,
-                                                first_requested_block, last_cache_miss_block );
-        }
-    }
-    return rc;
-}
-#endif
-
-#if 0
-static rc_t KCacheTeeFileRead_clustered( const KCacheTeeFile *cself, uint64_t pos,
-                                         void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc;
-    size_t l_num_read = 0;
-    uint64_t first_requested_block = ( pos / cself->block_size );
-    
-    if ( num_read != NULL )
-        *num_read = 0;
-
-    if ( cself->report )
-        OUTMSG(( "\nREQUEST: %,lu .[ %,lu ] ( first_requested_block=%,lu )\n", pos, bsize, first_requested_block ));
-
-     if ( IS_CACHE_BIT( cself, first_requested_block ) )
-    {
-        rc = KCacheTeeFileRead_Starting_with_Cache_Hit( cself, pos, buffer, bsize, &l_num_read, first_requested_block );
-    }
-    else
-    {
-        rc = KCacheTeeFileRead_Starting_with_Cache_Miss( cself, pos, buffer, bsize, &l_num_read, first_requested_block );
-    }
-
-    if ( rc == 0 && num_read != NULL )
-        *num_read = l_num_read;
-
-    if ( cself->logger != NULL )
-    {
-        KCacheTeeFile * self = ( KCacheTeeFile * ) cself;
-        log_to_file( self->logger, &self->log_file_pos, pos, bsize, l_num_read );
-    }
-    return rc;
-}
-#endif
-
-static uint64_t calc_req_blocks( uint64_t pos, uint64_t first_req_block, size_t bsize, uint32_t block_size )
-{
-    uint64_t res, temp;
-
-    res = pos;
-    res += bsize;
-    temp = first_req_block;
-    temp *= block_size;
-    res -= temp;
-    res += block_size;
-    res--;
-    res /= block_size;
-
-/*    res = ( ( ( pos + bsize ) - ( first_req_block * block_size ) + ( block_size - 1 ) ) / block_size ); */
-/*    uint64_t req_blocks = ( ( ( pos + bsize - 1 ) / block_size ) - first_req_block ) + 1; */
-    return res;
-}
-
-static rc_t KCacheTeeFileRead_simple_cached( const KCacheTeeFile *cself, uint64_t pos,
-                                             void *buffer, size_t bsize, size_t *num_read, uint64_t first_req_block )
-{
-    rc_t rc = 0;
-    bool found_in_scratch = false;
-    size_t to_read;
-    size_t block_count = 1;
-    uint64_t req_blocks = calc_req_blocks( pos, first_req_block, bsize, cself->block_size );
-
-    /* we read as much as we have from the local cache, forcing the caller
-       to eventually make another request ( the non-cached part of it ) afterwards */
-    if ( req_blocks > 1 )
-    {
-        /* detect how many blocks are in cache after the first_req_block */
-        uint64_t block = first_req_block;
-        block_count = 0;
-        do
-        {
-            block++;
-            block_count++;
-        }
-        while ( ( block_count < req_blocks ) && ( IS_CACHE_BIT( cself, block ) ) );
-    }
-
-    /* check if we eventually have the requested bytes in the scratch-buffer */
-    if ( cself -> first_block_in_scratch == first_req_block )
-    {
-        uint64_t first_pos_in_scratch = first_req_block;
-        first_pos_in_scratch *= cself->block_size;
-        if ( pos >= first_pos_in_scratch )
-        {
-            uint64_t last_pos_in_scratch = first_pos_in_scratch;
-            last_pos_in_scratch += cself -> valid_scratch_bytes;
-            found_in_scratch = ( pos < last_pos_in_scratch );
-            if ( found_in_scratch )
-            {
-                uint64_t available_in_scratch = ( last_pos_in_scratch - pos );
-                if ( bsize > available_in_scratch )
-                    to_read = available_in_scratch;
-                else
-                    to_read = bsize;
-
-                memmove ( buffer, &( cself->scratch_buffer[ pos - first_pos_in_scratch ] ), to_read );
-                *num_read = to_read;
-            }
-        }
-    }
-
-    if ( !found_in_scratch )
-    {
-        /* now we have to check how much of the request can be satisfied from the local file */
-        uint64_t reachable = first_req_block;
-        reachable += block_count;
-        reachable *= cself->block_size;
-        reachable -= pos;
-
-        /* are we requesting beyond the end of file? */
-        if ( reachable >= bsize )
-            to_read = check_rd_len( cself, pos, bsize );
-        else
-            to_read = check_rd_len( cself, pos, reachable );
-
-        rc = KFileReadAll( cself->local, pos, buffer, to_read, num_read );
-    }
-
-    return rc;
-}
-
-
-static rc_t KCacheTeeFileRead_simple_not_cached( const KCacheTeeFile *cself, uint64_t pos,
-                                                 void *buffer, size_t bsize, size_t *num_read, uint64_t first_req_block )
-{
-    rc_t rc;
-    size_t to_read_remote;
-    size_t block_count = 1;
-    uint64_t req_blocks = calc_req_blocks( pos, first_req_block, bsize, cself->block_size );
-
-    if ( req_blocks >  1 )
-    {
-        uint64_t block = first_req_block;
-        block_count = 0;
-        do
-        {
-            block++;
-            block_count++;
-        }
-        while ( ( block_count < req_blocks ) && ( !( IS_CACHE_BIT( cself, block ) ) ) );
-    }
-
-    to_read_remote = ( block_count * cself->block_size );
-    rc = resize_scratch_buffer( cself, to_read_remote );
-    if ( rc == 0 )
-    {
-        size_t l_num_read;
-        uint64_t block_start = first_req_block;
-        block_start *= cself->block_size;
-        to_read_remote = check_rd_len( cself, block_start, to_read_remote );
-        rc = rd_remote_wr_local( cself, block_start, cself->scratch_buffer, to_read_remote, &l_num_read );
-        if ( rc == 0 )
-        {
-            ( ( KCacheTeeFile * )cself ) -> first_block_in_scratch = first_req_block;
-            ( ( KCacheTeeFile * )cself ) -> valid_scratch_bytes = l_num_read;
-            if ( !cself->local_read_only )
-            {
-                set_bitmap( cself, first_req_block, block_count );
-                rc = write_bitmap( cself, first_req_block, block_count );
-            }
-        }
-        if ( rc == 0 )
-        {
-            /* what we have to return to the caller is somewhere in the scratch_buffer */
-            uint64_t offset = pos;
-            offset -= block_start;
-
-            /* how much we can copy depends on how much was not in cache,
-               and how much was requested in the first place... */
-            if ( l_num_read >= offset )
-            {
-                l_num_read -= offset;
-                if ( l_num_read > bsize )
-                    l_num_read = bsize;
-                memmove ( buffer, &( cself->scratch_buffer[ offset ] ), l_num_read );
-            }
-            else
-            {
-                l_num_read = 0;
-            }
-            *num_read = l_num_read;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t KCacheTeeFileRead_simple( const KCacheTeeFile *cself, uint64_t pos,
-                                      void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc;
-    uint64_t first_req_block = pos;
-    first_req_block /= cself->block_size;
-
-    *num_read = 0;
-    if ( cself->report )
-        OUTMSG(( "\nREQUEST '%s': %,lu .[%,lu] ( first_req_block=%,lu )\n",
-                 cself->local_path, pos, bsize, first_req_block ));
-
-    /* "simple" strategy, read only that much as requested... */
-    if ( IS_CACHE_BIT( cself, first_req_block ) )
-    {
-        rc = KCacheTeeFileRead_simple_cached( cself, pos, buffer, bsize, num_read, first_req_block );
-    }
-    else
-    {
-        rc = KCacheTeeFileRead_simple_not_cached( cself, pos, buffer, bsize, num_read, first_req_block );
-    }
-
-    if ( cself->logger != NULL )
-    {
-        KCacheTeeFile * self = ( KCacheTeeFile * ) cself;
-        log_to_file( self->logger, &self->log_file_pos, pos, bsize, *num_read );
-    }
-
-    return rc;
-}
-
-
-/**********************************************************************************************
-    START vt-functions
-**********************************************************************************************/
-
-static struct KSysFile* KCacheTeeFileGetSysFile( const KCacheTeeFile *self, uint64_t *offset )
-{
-    * offset = 0;
-    return NULL;
-}
-
-
-static rc_t KCacheTeeFileRandomAccess( const KCacheTeeFile *self )
-{
-    return 0;
-}
-
-
-static rc_t KCacheTeeFileSize( const KCacheTeeFile *self, uint64_t *size )
-{
-    *size = self->remote_size;
-    return 0;
-}
-
-
-static rc_t KCacheTeeFileSetSize( KCacheTeeFile *self, uint64_t size )
-{
-    return RC ( rcFS, rcFile, rcUpdating, rcFile, rcReadonly );
-}
-
-static rc_t KCacheTeeFileRead( const KCacheTeeFile *cself, uint64_t pos,
-                               void *buffer, size_t bsize, size_t *num_read )
-{
-    /*
-    if ( cself -> cluster_factor != 0 )
-        return KCacheTeeFileRead_clustered( cself, pos, buffer, bsize, num_read );
-    else
-        return KCacheTeeFileRead_simple( cself, pos, buffer, bsize, num_read );
-    */
-
-    return KCacheTeeFileRead_simple( cself, pos, buffer, bsize, num_read );
-}
-
-
-static rc_t KCacheTeeFileWrite( KCacheTeeFile *self, uint64_t pos,
-                                const void *buffer, size_t size, size_t *num_writ )
-{
-    return RC ( rcFS, rcFile, rcUpdating, rcInterface, rcUnsupported );
-}
-
-/**********************************************************************************************
-    END vt-functions
-**********************************************************************************************/
-
-
-static KFile_vt_v1 vtKCacheTeeFile =
-{
-    /* version 1.0 */
-    1, 0,
-
-    /* start minor version 0 methods */
-    KCacheTeeFileDestroy,
-    KCacheTeeFileGetSysFile,
-    KCacheTeeFileRandomAccess,
-    KCacheTeeFileSize,
-    KCacheTeeFileSetSize,
-    KCacheTeeFileRead,
-    KCacheTeeFileWrite
-    /* end minor version 0 methods */
-};
-
-
-static rc_t make_cache_tee( struct KDirectory *self, struct KFile const **tee,
-    struct KFile const *remote, struct KFile *local, struct KFile *logger, KLockFile *lock,
-    uint32_t blocksize, uint32_t cluster, bool report, const char *path )
-{
-    rc_t rc;
-    size_t path_size = string_size ( path );
-    KCacheTeeFile * cf = malloc ( sizeof * cf + path_size + 1 );
-    if ( cf == NULL )
-        rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        cf -> dir = self;
-        string_copy( cf -> local_path, path_size + 1, path, path_size );
-        cf -> remote = remote;     /* store the file-objects but no AddRef()'s yet! */
-        cf -> local  = local;
-        cf -> logger = logger;
-        cf -> lock = lock;
-        cf -> report = report;
-        cf -> cluster_factor = cluster;
-        cf -> local_read_only = !( local -> write_enabled );
-        cf -> block_size = ( blocksize > 0 ) ? blocksize : CACHE_TEE_DEFAULT_BLOCKSIZE;
-        cf -> bitmap = NULL;
-        cf -> scratch_buffer = NULL;
-        cf -> scratch_size = 0;
-        cf -> first_block_in_scratch = 0;
-        cf -> valid_scratch_bytes = 0;
-
-        rc = KFileSize( local, &cf -> local_size );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "cannot detect size of local file" );
-        }
-        else
-        {
-            rc = KFileSize( cf -> remote, &cf -> remote_size );
-            if ( rc != 0 )
-            {
-                LOGERR( klogErr, rc, "cannot detect size of remote file" );
-            }
-            else
-            {
-                if ( cf -> local_size == 0 )
-                {
-                    /* the local file was just created... */
-                    if ( cf -> remote_size == 0 )
-                    {
-                        rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-                        LOGERR( klogErr, rc, "size of remote file is zero" );
-                    }
-                    else
-                    {
-                        rc = calculate_local_size_from_remote_size( cf );
-                        if ( rc == 0 )
-                        {
-                            rc = KFileSetSize ( cf -> local, cf -> local_size );
-                            if ( rc == 0 )
-                            {
-                                rc = init_new_local_file( cf );
-                            }
-                            else
-                            {
-                                PLOGERR( klogInt, ( klogInt, rc, "cannot size local file to $(l) bytes", "l=%lu", cf->local_size ) );
-                            }
-                        }
-                    }
-                }
-                else
-                    rc = verify_existing_local_file( cf, false );
-            }
-
-            if ( rc == 0 && cf -> fully_in_cache && ! cf -> local_read_only && cf -> lock != NULL )
-            {
-                /* here is the up-front-test: the cache is complete and we have write access! */
-                rc = promote_cache( cf );
-                /*
-                if ( rc == 0 )
-                    rc = KFileAddRef( cf -> local );
-                */
-                if ( rc == 0 )
-                {
-                    *tee = cf -> local;
-                    KLockFileRelease ( cf -> lock );
-                    free ( cf );
-                    return rc;  /* here we return the truncated, promoted cache as tee-file ! */
-                }
-            }
-
-            if ( rc == 0 )
-            {
-                if ( cf -> remote_size == 0 )
-                    cf -> remote_size = cf -> local_size;
-
-                /* now we have to AddRef() everything we hang on until the final release! */
-                rc = KDirectoryAddRef ( cf -> dir );
-                if ( rc == 0 )
-                {
-                    rc = KFileAddRef( cf -> remote );
-                    if ( rc == 0 )
-                    {
-                        /* rc = KFileAddRef( cf -> local ); */
-                        if ( rc == 0 )
-                        {
-                            if ( cf -> logger != NULL )
-                                rc = KFileAddRef( cf -> logger );
-                            if ( rc == 0 )
-                            {
-                                rc = KFileInit( &cf -> dad, (const union KFile_vt *)&vtKCacheTeeFile, "KCacheTeeFile", path, true, false );
-                                if ( rc == 0 )
-                                {
-                                    /* the wrapper is ready to use now! */
-                                    *tee = ( const KFile * ) &cf -> dad;
-                                    return 0;
-                                }
-                                else
-                                {
-                                    LOGERR( klogErr, rc, "cannot initialize KFile-structure" );
-                                    KFileRelease( cf -> logger );
-                                    KFileRelease( cf -> local );
-                                    KFileRelease( cf -> remote );
-                                    KDirectoryRelease ( cf -> dir );
-                                }
-                            }
-                            else
-                            {
-                                KFileRelease( cf -> local );
-                                KFileRelease( cf -> remote );
-                                KDirectoryRelease ( cf -> dir );
-                            }
-                        }
-                        else
-                        {
-                            KFileRelease( cf -> remote );
-                            KDirectoryRelease ( cf -> dir );
-                        }
-                    }
-                    else
-                        KDirectoryRelease ( cf -> dir );
-                }
-            }
-        }
-        free ( cf );
-    }
-    return rc;
-}
-
-
-static rc_t make_read_only_cache_tee( struct KDirectory *self,
-    struct KFile const **tee, struct KFile const *remote, struct KFile *logger,
-    uint32_t blocksize, uint32_t cluster, bool report, const char *path )
-{
-    const struct KFile * local;
-    rc_t rc = KDirectoryOpenFileRead( self, &local, "%s.cache", path );
-    if ( rc == 0 )
-    {
-        if ( report )
-            KOutMsg( "successfuly opened cache file '%s.cache' in read/only-mode\n",
-                      path );
-        rc = make_cache_tee( self, tee, remote, ( struct KFile * )local, logger, NULL,
-                             blocksize, cluster, report, path );
-    }
-    else
-    {
-        /* we cannot even open the local cache in read-only mode,
-           we give up - and return a reference to the remote file... */
-        rc = KFileAddRef( remote );
-        if ( rc == 0 )
-        {
-            if ( report )
-                KOutMsg( "cannot open cache file '%s.cache' in read/only-mode ( returning remote-file )\n",
-                          path );
-            *tee = remote;
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KDirectoryVMakeCacheTee ( struct KDirectory *self,
-    struct KFile const **tee, struct KFile const *remote, struct KFile *logger,
-    uint32_t blocksize, uint32_t cluster, bool report, const char *path, va_list args )
-{
-    rc_t rc;
-    if ( tee == NULL || remote == NULL )
-        rc = RC ( rcFS, rcFile, rcAllocating, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcFS, rcFile, rcAllocating, rcSelf, rcNull );
-        else if ( path == NULL )
-            rc = RC ( rcFS, rcFile, rcAllocating, rcPath, rcNull );
-        else if ( path [ 0 ] == 0 )
-            rc = RC ( rcFS, rcFile, rcAllocating, rcPath, rcEmpty );
-        else
-        {
-            char full [ 4096 ];
-
-#if CACHE_TEE_REPORT == 1
-            report = true;
-#endif
-
-            rc = KDirectoryVResolvePath ( self, false, full, sizeof full, path, args );
-            if ( rc != 0 )
-            {
-                PLOGERR( klogErr, ( klogErr, rc, "cannot resolve path of cache file '$(path)'", 
-                        "path=%s", full ) );
-            }
-            else
-            {
-                KLockFile *lock = NULL;
-
-                if ( report )
-                    KOutMsg( "CREATE CacheTeeFile for '%s'\n", full );
-
-                rc = KDirectoryCreateLockFile ( self, &lock, "%s.cache.lock", full );
-                if ( rc == 0 )
-                {
-                    /* it was possible to aquire the lock on the cache-file */
-                    struct KFile * local;
-
-                    if ( report )
-                        KOutMsg( "successfuly aquired lockfile '%s.cache.lock'\n", full );
-
-
-                    rc = KDirectoryOpenFileWrite( self, &local, true, "%s.cache", full );
-                    if ( rc == 0 )
-                    {
-                        if ( report )
-                            KOutMsg( "successfuly opened '%s.cache'\n", full );
-
-                        /* we have the exclusive rd/wr access to the cache file !*/
-                        rc = make_cache_tee( self, tee, remote, local, logger, lock,
-                                             blocksize, cluster, report, full );
-                    }
-                    else if ( GetRCState( rc ) == rcNotFound )
-                    {
-                        rc = KDirectoryCreateFile( self, &local, true, 0664, kcmOpen, "%s.cache", full );
-                        if ( rc == 0 )
-                        {
-                            if ( report )
-                                KOutMsg( "cache-file '%s.cache' created with rd/wr-access\n", full );
-                            /* we have the exclusive rd/wr access to the cache file !*/
-                            rc = make_cache_tee( self, tee, remote, local, logger, lock,
-                                                 blocksize, cluster, report, full );
-                        }
-                    }
-                    else
-                    {
-                        if ( report )
-                            KOutMsg( "no rd/wr access to cache-file '%s.cache' rc=%R\n", full, rc );
-
-                        /* we do not have the exclusive rd/wr access to the cache file !*/
-                        rc = KLockFileRelease ( lock );
-                        if ( rc == 0 )
-                            rc = make_read_only_cache_tee( self, tee, remote, logger,
-                                    blocksize, cluster, report, full );
-                    }
-                }
-                else if ( GetRCState ( rc ) == rcBusy )
-                {
-                    if ( report )
-                        KOutMsg( "failed to aquired lockfile '%s.cache.lock'\n", full );
-
-                    /* it was NOT possible to aquire the lock on the cache-file */
-                    rc = make_read_only_cache_tee( self, tee, remote, logger,
-                            blocksize, cluster, report, full );
-                }
-                else
-                {
-                    PLOGERR( klogErr, ( klogErr, rc, "cannot create lock-file '$(path).cache.lock'", 
-                            "path=%s", full ) );
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KDirectoryMakeCacheTee ( struct KDirectory *self,
-    struct KFile const **tee, struct KFile const *remote, struct KFile *logger,
-    uint32_t blocksize, uint32_t cluster, bool report, const char *path, ... )
-{
-    rc_t rc;
-    va_list args;
-    va_start ( args, path );
-
-    rc = KDirectoryVMakeCacheTee ( self, tee, remote, logger, blocksize, cluster, report, path, args );
-
-    va_end ( args );
-
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC GetCacheCompleteness( const struct KFile * self, float * percent )
-{
-    rc_t rc;
-    if ( self == NULL )
-        rc = RC( rcFS, rcFile, rcValidating, rcSelf, rcNull );
-    else if ( percent == NULL )
-        rc = RC( rcFS, rcFile, rcValidating, rcParam, rcNull );
-    else
-    {
-        uint64_t local_size;
-        *percent = 0;
-        rc = KFileSize( self, &local_size );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "cannot detect filesize when checking if cached file is complete" );
-        }
-        else
-        {
-            uint32_t block_size;
-            rc = read_block_size( self, local_size, &block_size, false );
-            if ( rc == 0 )
-            {
-                uint64_t content_size;
-                rc = read_content_size( self, local_size, &content_size, false );
-                /* create bitmap buffer */
-                if ( rc == 0 )
-                {
-                    uint64_t block_count;
-                    /* size_t */ uint64_t bitmap_bytes;
-                    rc = verify_file_structure( local_size, block_size, content_size, &block_count, &bitmap_bytes, false );
-                    if ( rc == 0 )
-                    {
-                        uint8_t * bitmap = NULL;
-                        rc = create_bitmap_buffer( &bitmap, bitmap_bytes );
-                        if ( rc == 0 )
-                        {
-                            size_t num_read;
-                            /* read the bitmap into the memory ... */
-                            rc = KFileReadAll ( self, content_size, bitmap, bitmap_bytes, &num_read );
-                            if ( rc != 0 )
-                            {
-                                LOGERR( klogErr, rc, "cannot read bitmap from local file" );
-                            }
-                            else if ( num_read != bitmap_bytes )
-                            {
-                                rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcInvalid );
-                                PLOGERR( klogErr, ( klogErr, rc, "cannot read $(ls) bitmap-bytes from local file, read $(rs) instead", 
-                                               "ls=%lu,rs=%lu", bitmap_bytes, num_read ));
-                            }
-                        }
-                        if ( rc == 0 )
-                        {
-                            uint64_t idx, in_cache = 0;
-                            for ( idx = 0; idx < block_count; ++idx )
-                            {
-                                if ( IS_BITMAP_BIT( bitmap, idx ) )
-                                    in_cache++;
-                            }
-                            if ( in_cache > 0 && block_count > 0 )
-                            {
-                                float res = in_cache;
-                                res *= 100;
-                                res /= block_count;
-                                * percent = res;
-                            }
-                        }
-                        if ( bitmap != NULL )
-                            free( bitmap );
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-/* -----
- * examens the file, and reports the size of the original file ( without the cachefile-footer )
- *
- */
-LIB_EXPORT rc_t CC GetCacheTruncatedSize( const struct KFile * self, uint64_t * truncated_size, bool silent )
-{
-    rc_t rc;
-    if ( self == NULL )
-        rc = RC( rcFS, rcFile, rcValidating, rcSelf, rcNull );
-    else if ( truncated_size == NULL )
-        rc = RC( rcFS, rcFile, rcValidating, rcParam, rcNull );
-    else
-    {
-        uint64_t local_size;
-        *truncated_size = 0;
-        rc = KFileSize( self, &local_size );
-        if ( rc != 0 )
-        {
-            if ( !silent )
-            {
-                LOGERR( klogErr, rc, "cannot detect filesize when checking if cached file is complete" );
-            }
-        }
-        /* TODO: need to do a better constant tha a magic number */
-        else if (local_size < 13)
-        {
-            rc = RC ( rcFS, rcFile, rcValidating, rcSize, rcInsufficient );
-            if ( !silent )
-            {
-                LOGERR( klogErr, rc, "cannot use filesize of zero when checking if cached file is complete" );
-            }
-        }
-        else
-        {
-            uint32_t block_size;
-            rc = read_block_size( self, local_size, &block_size, true );
-            if ( rc == 0 )
-            {
-                uint64_t content_size;
-                rc = read_content_size( self, local_size, &content_size, true );
-                if ( rc == 0 )
-                {
-                    uint64_t block_count;
-                    /* size_t */ uint64_t bitmap_bytes;
-                    rc = verify_file_structure( local_size, block_size, content_size, &block_count, &bitmap_bytes, true );
-                    if ( rc == 0 )
-                    {
-                        *truncated_size = content_size;
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
diff --git a/libs/kfs/countfile.c b/libs/kfs/countfile.c
index d34c5e9..565855a 100644
--- a/libs/kfs/countfile.c
+++ b/libs/kfs/countfile.c
@@ -45,16 +45,6 @@
 #define KFILE_IMPL struct KCounterFile
 #include <kfs/impl.h>
 
-/* clear out possible macro definitions of FS and GS,
- * which show up on Solaris/x86 when building with GCC (per sys/ucontext.h)
- */
-#ifdef FS
-#  undef FS
-#endif
-#ifdef GS
-#  undef GS
-#endif
-
 static rc_t CC KCounterFileDestroy (KCounterFile *self);
 static struct KSysFile *CC KCounterFileGetSysFile (const KCounterFile *self,
 					    uint64_t *offset);
@@ -148,7 +138,6 @@ rc_t KCounterFileMake (KCounterFile ** pself,
     {
 	rc = KFileInit (&self->dad,			/* initialize base class */
 			(const KFile_vt*)&vtKCounterFile,/* VTable for KCounterFile */
-            "KCounterFile", "no-name",
 			original->read_enabled,
 			original->write_enabled);
 	if (rc == 0)
diff --git a/libs/kfs/crc32.c b/libs/kfs/crc32.c
index a2a38a0..944b819 100644
--- a/libs/kfs/crc32.c
+++ b/libs/kfs/crc32.c
@@ -706,14 +706,11 @@ LIB_EXPORT rc_t CC KCRC32SumFmtUpdate ( KCRC32SumFmt *self, const char *path, ui
             }
 
             /* if existing, perform update */
-            else
+            else if ( exist -> crc32 != entry -> crc32 || exist -> bin != entry -> bin )
             {
-                if ( exist -> crc32 != entry -> crc32 || exist -> bin != entry -> bin )
-                {
-                    exist -> crc32 = entry -> crc32;
-                    exist -> bin = entry -> bin;
-                    self -> dirty = true;
-                }
+                exist -> crc32 = entry -> crc32;
+                exist -> bin = entry -> bin;
+                self -> dirty = true;
                 KCRC32SumEntryWhack ( & entry -> n, NULL );
             }
         }
@@ -1386,7 +1383,7 @@ LIB_EXPORT rc_t CC KFileMakeCRC32Read ( const KFile **fp,
             else
             {
                 rc = KFileInit ( & f -> dad,
-				     ( const KFile_vt* ) & KCRC32FileRead_vt, "KCRC32File", "no-name", true, false );
+				     ( const KFile_vt* ) & KCRC32FileRead_vt, true, false );
                 if ( rc == 0 )
                 {
                     f -> position = 0;
@@ -1480,7 +1477,7 @@ LIB_EXPORT rc_t CC KCRC32FileMakeWrite ( KCRC32File **fp,
             else
             {
                 rc = KFileInit ( & f -> dad,
-                    ( const KFile_vt* ) & sKCRC32FileWrite_vt, "KCRC32File", path, out -> read_enabled, true );
+                    ( const KFile_vt* ) & sKCRC32FileWrite_vt, out -> read_enabled, true );
                 if ( rc == 0 )
                 {
                     f -> position = 0;
@@ -1590,7 +1587,7 @@ LIB_EXPORT rc_t CC KCRC32FileMakeAppend ( KCRC32File **fp, KFile *out, KCRC32Sum
             else
             {
                 rc = KFileInit ( & f -> dad,
-                    ( const KFile_vt* ) & sKCRC32FileAppend_vt, "KCRC32File", path, out -> read_enabled, true );
+                    ( const KFile_vt* ) & sKCRC32FileAppend_vt, out -> read_enabled, true );
                 if ( rc == 0 )
                 {
                     f -> crc32 = 0;
@@ -1737,7 +1734,7 @@ LIB_EXPORT rc_t CC KFileMakeNewCRC32Read ( const KFile **fp,
             else
             {
                 rc = KFileInit ( & f -> dad,
-                    ( const KFile_vt* ) & sKCRC32FileReadCreate_vt, "KCRC32File", path, in -> read_enabled, false );
+                    ( const KFile_vt* ) & sKCRC32FileReadCreate_vt, in -> read_enabled, false );
                 if ( rc == 0 )
                 {
                     f -> position = 0;
diff --git a/libs/kfs/directory.c b/libs/kfs/directory.c
index f3ba147..4786669 100644
--- a/libs/kfs/directory.c
+++ b/libs/kfs/directory.c
@@ -30,11 +30,8 @@
 #include <kfs/impl.h>
 #include <klib/refcount.h>
 #include <klib/rc.h>
-#include <klib/text.h>
-#include <klib/printf.h>
 #include <sysalloc.h>
 
-#include <stdlib.h>
 
 /*--------------------------------------------------------------------------
  * KDirectory
@@ -1154,8 +1151,10 @@ LIB_EXPORT rc_t CC KDirectoryVOpenDirRead ( const KDirectory *self,
     if ( self == NULL )
         return RC ( rcFS, rcDirectory, rcOpening, rcSelf, rcNull );
 
-    if ( path == NULL || path [ 0 ] == 0 )
-        path = ".";
+    if ( path == NULL )
+        return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcNull );
+    if ( path [ 0 ] == 0 )
+        return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcInvalid );
 
     switch ( self -> vt -> v1 . maj )
     {
@@ -1191,12 +1190,14 @@ LIB_EXPORT rc_t CC KDirectoryVOpenDirUpdate ( KDirectory *self,
     if ( self == NULL )
         return RC ( rcFS, rcDirectory, rcOpening, rcSelf, rcNull );
 
+    if ( path == NULL )
+        return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcNull );
+    if ( path [ 0 ] == 0 )
+        return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcInvalid );
+
     if ( self -> read_only )
         return RC ( rcFS, rcDirectory, rcOpening, rcDirectory, rcReadonly );
 
-    if ( path == NULL || path [ 0 ] == 0 )
-        path = ".";
-
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
@@ -1370,169 +1371,3 @@ LIB_EXPORT struct KSysDir* CC KDirectoryGetSysDir ( const KDirectory *self )
     return NULL;
 }
 
-
-static rc_t copy_loop( const KFile *src, KFile *dst, size_t bsize )
-{
-    rc_t rc = 0;
-    uint64_t pos = 0;
-    size_t num_read = 1;
-
-    char * buffer = malloc( bsize );
-    if ( buffer == NULL )
-        return RC( rcFS, rcDirectory, rcCopying, rcMemory, rcExhausted );
-
-    while ( rc == 0 && num_read > 0 )
-    {
-        rc = KFileRead ( src, pos, buffer, bsize, &num_read );
-        if ( rc == 0 && num_read > 0 )
-        {
-            size_t num_writ;
-            rc = KFileWrite ( dst, pos, buffer, num_read, &num_writ );
-            pos += num_read;
-        }
-    }
-    free( buffer );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KDirectoryCopyPath ( const KDirectory *src_dir,
-    KDirectory *dst_dir, const char *src_path, const char * dst_path )
-{
-    rc_t rc;
-    struct KFile const *f_src;
-
-    if ( src_dir == NULL || dst_dir == NULL )
-        return RC ( rcFS, rcDirectory, rcCopying, rcSelf, rcNull );
-    if ( src_path == NULL || dst_path == NULL )
-        return RC ( rcFS, rcDirectory, rcCopying, rcParam, rcNull );
-
-    rc = KDirectoryOpenFileRead ( src_dir, &f_src, "%s", src_path );
-    if ( rc == 0 )
-    {
-        uint32_t pt = KDirectoryPathType ( dst_dir, "%s", dst_path );
-        switch( pt )
-        {
-            case kptFile : ; /* intentional fall through! */
-            case kptDir  : rc = KDirectoryRemove ( dst_dir, true, "%s", dst_path ); break;
-        }
-        if ( rc == 0 )
-        {
-            struct KFile *f_dst;
-            uint32_t access = 0664;
-            rc = KDirectoryCreateFile ( dst_dir, &f_dst, false, access, kcmCreate, "%s", dst_path );
-            if ( rc == 0 )
-            {
-                rc = copy_loop( f_src, f_dst, 1024 * 16 );
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t build_obj_path( char **s, const char *path, const char * objname )
-{
-    rc_t rc;
-    size_t lp = string_size( path );
-    size_t l = lp + string_size( objname ) + 2;
-    *s = malloc( l );
-    if ( *s == NULL )
-        rc = RC( rcFS, rcDirectory, rcCopying, rcMemory, rcExhausted );
-    else
-    {
-        size_t written;
-        const char * concat = ( ( path[ lp - 1 ] == '/' ) ? "%s%s" : "%s/%s" );
-        rc = string_printf( *s, l, &written, concat, path, objname );
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KDirectoryCopyPaths( const KDirectory * src_dir,
-    KDirectory * dst_dir, bool recursive, const char *src, const char *dst )
-{
-    rc_t rc;
-    struct KNamelist *list;
-
-    if ( src_dir == NULL || dst_dir == NULL )
-        return RC ( rcFS, rcDirectory, rcCopying, rcSelf, rcNull );
-    if ( src == NULL || dst == NULL )
-        return RC ( rcFS, rcDirectory, rcCopying, rcParam, rcNull );
-
-    rc = KDirectoryList ( src_dir, &list, NULL, NULL, "%s", src );
-    if ( rc == 0 )
-    {
-        uint32_t pt = KDirectoryPathType ( dst_dir, "%s", dst );
-        /* if the output-directory does not exist: create it! */
-        switch( pt )
-        {
-            case kptFile : rc = KDirectoryRemove ( dst_dir, true, "%s", dst );
-                            /* intentially no break ! */
-
-            case kptNotFound : if ( rc == 0 )
-                                    rc = KDirectoryCreateDir ( dst_dir, 0775, kcmCreate | kcmParents, "%s", dst );
-                               break;
-        }
-        if ( rc == 0 )
-        {
-            uint32_t i, n;
-            rc = KNamelistCount ( list, &n );
-            for ( i = 0; i < n && rc == 0; ++i )
-            {
-                const char *name;
-                rc = KNamelistGet ( list, i, &name );
-                if ( rc == 0 )
-                {
-                    char *src_obj;
-                    rc = build_obj_path( &src_obj, src, name );
-                    if ( rc == 0 )
-                    {
-                        char *dst_obj;
-                        rc = build_obj_path( &dst_obj, dst, name );
-                        if ( rc == 0 )
-                        {
-                            pt = KDirectoryPathType ( src_dir, "%s", src_obj );
-                            switch( pt )
-                            {
-                                case kptFile : rc = KDirectoryCopyPath ( src_dir, dst_dir, src_obj, dst_obj );
-                                               break;
-
-                                case kptDir  : if ( recursive )
-                                                    rc = KDirectoryCopyPaths( src_dir, dst_dir, true, src_obj, dst_obj );
-                                               break;
-                            }
-                            free( dst_obj );
-                        }
-                        free( src_obj );
-                    }
-                }
-            }
-        }
-        KNamelistRelease ( list );
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KDirectoryCopy( const KDirectory * src_dir,
-    KDirectory * dst_dir, bool recursive, const char *src, const char *dst )
-{
-    rc_t rc = 0;
-    uint32_t pt;
-
-    if ( src_dir == NULL || dst_dir == NULL )
-        return RC ( rcFS, rcDirectory, rcCopying, rcSelf, rcNull );
-    if ( src == NULL || dst == NULL )
-        return RC ( rcFS, rcDirectory, rcCopying, rcParam, rcNull );
-
-    pt = KDirectoryPathType ( src_dir, "%s", src );
-    switch( pt )
-    {
-        case kptFile : rc = KDirectoryCopyPath ( src_dir, dst_dir, src, dst );
-                        break;
-        case kptDir  : rc = KDirectoryCopyPaths ( src_dir, dst_dir, recursive, src, dst );
-                        break;
-    }
-    return rc;
-}
diff --git a/libs/kfs/ffext.c b/libs/kfs/ffext.c
index 390fa28..39dde22 100644
--- a/libs/kfs/ffext.c
+++ b/libs/kfs/ffext.c
@@ -27,7 +27,6 @@
 #include <kfs/extern.h>
 #include <klib/rc.h>
 #include <kfs/file.h>
-#include <klib/text.h>
 #include <klib/log.h>
 #include <klib/container.h>
 #include <kfs/fileformat.h>
@@ -682,7 +681,6 @@ rc_t CC KExtFileFormatGetTypePath (const KExtFileFormat *self,
     rc_t rc = 0;
     const char * b;
     const char * s;
-    size_t size;
 
 
     FUNC_ENTRY();
@@ -700,7 +698,7 @@ rc_t CC KExtFileFormatGetTypePath (const KExtFileFormat *self,
 
     b = strrchr (s, '.');
     if (b == NULL)
-	b = path + string_measure(path, &size) - 1; /* will be an empty string when calls KExtTableFind */
+	b = path + strlen(path) - 1; /* will be an empty string when calls KExtTableFind */
     {
 	KExtNode * node;
 	size_t c;
@@ -722,7 +720,7 @@ rc_t CC KExtFileFormatGetTypePath (const KExtFileFormat *self,
 		if (c > descr_max)
 		    c = descr_max-1;
 		if (descr)
-		    string_copy (descr, descr_max, node->kffdescr, c);
+		    strncpy (descr, node->kffdescr, c);
 		descr[c] = '\0';
 		if (descr_len)
 		    *descr_len = c;
@@ -744,15 +742,15 @@ rc_t CC KExtFileFormatGetTypePath (const KExtFileFormat *self,
 
 
 #else
-	size_t l = string_measure (b, &size);
+	size_t l = strlen (b);
 	if (desc != NULL)
 	{
-	    string_copy (desc, desc_max, b, l);
+	    strncpy (desc, b, desc_max);
 	    if (desc_max < l)
 		desc[desc_max-1] = 0;
 	}
 	if (descr_len != NULL)
-	    *descr_len = l;
+	    *descr_len = strlen (b);
 	if (type != NULL)
 	    *type = kfftUnknown;
 	if (class != NULL)
diff --git a/libs/kfs/ffmagic.c b/libs/kfs/ffmagic.c
index f572a04..b4e100d 100644
--- a/libs/kfs/ffmagic.c
+++ b/libs/kfs/ffmagic.c
@@ -28,13 +28,10 @@
 #include <magic.h>
 #include <klib/rc.h>
 #include <kfs/file.h>
-#include <klib/text.h>
 #include <klib/log.h>
-#include <klib/debug.h>
 #include <klib/container.h>
 #include <kfs/directory.h>
 #include <kfs/fileformat.h>
-#include <kfg/config.h>
 #include <sysalloc.h>
 #include "fileformat-priv.h"
 struct KMagicFileFormat;
@@ -734,7 +731,7 @@ rc_t KMagicFileFormatGetTypeBuff (const KMagicFileFormat *self, const void * buf
 		if (c > descr_max)
 		    c = descr_max-1;
 		if (descr)
-		    string_copy(descr, descr_max, node->kffdescr, c);
+		    strncpy (descr, node->kffdescr, c);
 		descr[c] = '\0';
 		if (descr_len)
 		    *descr_len = c;
@@ -756,13 +753,12 @@ rc_t KMagicFileFormatGetTypeBuff (const KMagicFileFormat *self, const void * buf
 
 
 #else
-    size_t size;
-	size_t l = string_measure(b, &size);
-	if (descr != NULL)
+	size_t l = strlen (b);
+	if (desc != NULL)
 	{
-	    string_copy (descr, descr_max, b, l);
-	    if (descr_max < l)
-		descr[descr_max-1] = 0;
+	    strncpy (desc, b, desc_max);
+	    if (desc_max < l)
+		desc[desc_max-1] = 0;
 	}
 	if (descr_len != NULL)
 	    *descr_len = strlen (b);
@@ -785,9 +781,6 @@ LIB_EXPORT rc_t CC KMagicFileFormatMake (KFileFormat ** pft, const char * magic_
 
     FUNC_ENTRY();
 
-    DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-            ("%s: load path as called %s\n", __func__, magic_path));
-
     self = malloc (sizeof * self);
     if (self == NULL)
     {
@@ -795,8 +788,6 @@ LIB_EXPORT rc_t CC KMagicFileFormatMake (KFileFormat ** pft, const char * magic_
 	LOGERR (klogFatal, rc, "Failed to allocate for KMagicFileFormat");
     }
     else
-
-
     {
 	rc = KFileFormatInit (&self->dad, (const KFileFormat_vt *)&vt_v1, typeAndClass, tclen);
 	if (rc == 0)
@@ -807,8 +798,7 @@ LIB_EXPORT rc_t CC KMagicFileFormatMake (KFileFormat ** pft, const char * magic_
 		rc = KMagicTableInit (self->table, self->dad.tables, magic, magiclen);
 		if (rc == 0)
 		{
- 		    self->cookie = magic_open (MAGIC_PRESERVE_ATIME);
-/* 		    self->cookie = magic_open (MAGIC_PRESERVE_ATIME|MAGIC_DEBUG|MAGIC_CHECK); */
+		    self->cookie = magic_open (MAGIC_PRESERVE_ATIME);
 		    if (self->cookie == NULL)
 		    {
 			rc = RC (rcFF, rcFileFormat, rcConstructing, rcResources, rcNull);
@@ -816,111 +806,17 @@ LIB_EXPORT rc_t CC KMagicFileFormatMake (KFileFormat ** pft, const char * magic_
 		    }
 		    else
 		    {
-                        KDirectory * pwd;
-                        KConfig * kfg;
-                        static const char unix_magic_path[] = "/usr/share/file/magic";
-                        static const char kfg_magic_path[] = "kfs/kff/magic";
-                        char * magic_path_cursor;
-                        char kfg_magic_path_buff [1024];
-                        char magic_path_buff [4096];
-                        size_t z;
 			int load_code;
-
-
-                        magic_path_cursor = magic_path_buff;
-
-                        if (magic_path)
-                        {
-                            z = strlen (magic_path);
-                            if (magic_path_cursor != magic_path_buff)
-                                *magic_path_cursor++ = ':';
-                            memcpy (magic_path_cursor, magic_path, z);
-                            magic_path_cursor += z;
-                            *magic_path_cursor = '\0';
-                            DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                    ("%s: 1 magic_path_buff %s\n", __func__, magic_path_buff));
-                        }
-
-                        /* see if we have a configured alternate magic path */
-                        rc = KConfigMake (&kfg, NULL);
-                        if (rc == 0)
-                        {
-                            const KConfigNode * node;
-                            rc = KConfigOpenNodeRead (kfg, &node, kfg_magic_path);
-                            if (rc == 0)
-                            {
-                                size_t remaining;
-                                rc = KConfigNodeRead (node, 0, kfg_magic_path_buff,
-                                                      sizeof kfg_magic_path_buff-1,
-                                                      &z, &remaining);
-                                if (rc == 0)
-                                {
-                                    if (remaining != 0)
-                                    {
-                                        rc = RC (rcFF, rcFileFormat, rcLoading, 
-                                                 rcString, rcExcessive);
-                                        DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                                ("%s: failed KConfigOpenNodeRead remaining %zu %R\n",
-                                                 __func__, remaining, rc));
-                                    }
-                                    else if (z)
-                                    {
-                                        kfg_magic_path_buff[z] = '\0';
-                                        if (magic_path_cursor != magic_path_buff)
-                                            *magic_path_cursor++ = ':';
-                                        memcpy (magic_path_cursor,kfg_magic_path_buff, z);
-                                        magic_path_cursor += z;
-                                        *magic_path_cursor = '\0';
-                                        DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                                ("%s: 3 magic_path_buff %s\n", __func__, magic_path_buff));
-                                    }
-                                }
-                                else
-                                    DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                            ("%s: failed KConfigNodeRead %R\n", __func__, rc));
-                            }
-                            else
-                                DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                        ("%s: failed KConfigOpenNodeRead %R\n", __func__, rc));
-                        }
-                        else
-                            DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                    ("%s: failed KConfigMake %R\n", __func__, rc));
 			
-                        rc = KDirectoryNativeDir (&pwd);
-                        if (rc == 0)
-                        {
-                            KPathType kpt = KDirectoryPathType (pwd, unix_magic_path);
-                            DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                    ("%s: %s %x\n", __func__, unix_magic_path, kpt));
-                            if ((kpt & ~ kptAlias) == kptFile)
-                            {
-                                z = strlen (unix_magic_path);
-                                if (magic_path_cursor != magic_path_buff)
-                                    *magic_path_cursor++ = ':';
-                                memcpy (magic_path_cursor, unix_magic_path, z);
-                                magic_path_cursor += z;
-                                *magic_path_cursor = '\0';
-                                DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                        ("%s: 2 magic_path_buff %s\n", __func__, magic_path_buff));
-                            }
-                        }
-                        else
-                            LOGERR (klogErr, rc, "Failed to open NativeDir for Magic");
-
-                        DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF),
-                                ("%s: loading path %s\n", __func__, magic_path_buff));
-
-			load_code = magic_load (self->cookie, magic_path_buff);
+			load_code = magic_load (self->cookie, magic_path); /* figger out how to do an over-ride correctly ? */
 			if (load_code != 0) /* defined as 0 success and -1 as fail */
 			{
-                            KFF_DEBUG (("%s: magic_load() failed with load code %d\n", __func__, load_code));
 			    rc = RC (rcFF, rcFileFormat, rcLoading, rcLibrary, rcUnexpected);
 			}
 			else
 			{
 			    *pft = &self->dad;
-                            KFF_DEBUG (("%s Success\n", __func__));
+                            KFF_DEBUG (("%s Success", __func__));
 			    return 0;
 			}
 			magic_close (self->cookie);
diff --git a/libs/kfs/file.c b/libs/kfs/file.c
index 65408c2..42063e4 100644
--- a/libs/kfs/file.c
+++ b/libs/kfs/file.c
@@ -82,17 +82,7 @@ LIB_EXPORT struct KSysFile* CC KFileGetSysFile ( const KFile *self, uint64_t *of
 LIB_EXPORT rc_t CC KFileAddRef ( const KFile *self )
 {
     if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KFile" ) )
-        {
-        case krefLimit:
-            return RC ( rcFS, rcFile, rcAttaching, rcRange, rcExcessive );
-        case krefNegative:
-            return RC ( rcFS, rcFile, rcAttaching, rcSelf, rcInvalid );
-        default:
-            break;
-        }
-    }
+        atomic32_inc ( & ( ( KFile* ) self ) -> refcount );
     return 0;
 }
 
@@ -100,23 +90,25 @@ LIB_EXPORT rc_t CC KFileAddRef ( const KFile *self )
  *  discard reference to file
  *  ignores NULL references
  */
-LIB_EXPORT rc_t CC KFileRelease ( const KFile *self )
+LIB_EXPORT rc_t CC KFileRelease ( const KFile *cself )
 {
-    if ( self != NULL )
+    KFile *self = ( KFile* ) cself;
+    if ( cself != NULL )
     {
-        switch ( KRefcountDrop ( & self -> refcount, "KFile" ) )
+        if ( atomic32_dec_and_test ( & self -> refcount ) )
         {
-        case krefWhack:
+            rc_t rc;
+
             if ( self -> dir != NULL )
-                return KDirectoryDestroyFile ( self -> dir, ( KFile* ) self );
-            return KFileDestroy ( ( KFile* ) self );
-        case krefLimit:
-            return RC ( rcFS, rcFile, rcReleasing, rcRange, rcExcessive );
-        default:
-            break;
+                rc = KDirectoryDestroyFile ( self -> dir, self );
+            else
+                rc = KFileDestroy ( self );
+
+            if ( rc != 0 )
+                atomic32_set ( & self -> refcount, 1 );
+            return rc;
         }
     }
-
     return 0;
 }
 
@@ -244,67 +236,6 @@ LIB_EXPORT rc_t CC KFileRead ( const KFile *self, uint64_t pos,
     return RC ( rcFS, rcFile, rcReading, rcInterface, rcBadVersion );
 }
 
-/* ReadAll
- *  read from file until "bsize" bytes have been retrieved
- *  or until end-of-input
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT ] - return parameter giving number of bytes
- *  actually read. when returned value is zero and return code is
- *  also zero, interpreted as end of file.
- */
-LIB_EXPORT rc_t CC KFileReadAll ( const KFile *self, uint64_t pos,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc;
-    uint8_t *b;
-    size_t total, count;
-
-    if ( num_read == NULL )
-        return RC ( rcFS, rcFile, rcReading, rcParam, rcNull );
-
-    * num_read = 0;
-
-    if ( self == NULL )
-        return RC ( rcFS, rcFile, rcReading, rcSelf, rcNull );
-
-    if ( ! self -> read_enabled )
-        return RC ( rcFS, rcFile, rcReading, rcFile, rcNoPerm );
-
-    if ( buffer == NULL )
-        return RC ( rcFS, rcFile, rcReading, rcBuffer, rcNull );
-    if ( bsize == 0 )
-        return RC ( rcFS, rcFile, rcReading, rcBuffer, rcInsufficient );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        for ( rc = 0, b = buffer, total = 0; total < bsize; total += count )
-        {
-            count = 0;
-            rc = ( * self -> vt -> v1 . read ) ( self, pos + total, b + total, bsize - total, & count );
-            if ( rc != 0 )
-                break;
-            if ( count == 0 )
-                break;
-        }
-        break;
-    default:
-        return RC ( rcFS, rcFile, rcReading, rcInterface, rcBadVersion );
-    }
-
-    if ( total != 0 )
-    {
-        * num_read = total;
-        return 0;
-    }
-
-    return rc;
-}
-
 /* Write
  *  write file at known position
  *
@@ -343,71 +274,10 @@ LIB_EXPORT rc_t CC KFileWrite ( KFile *self, uint64_t pos,
     return RC ( rcFS, rcFile, rcWriting, rcInterface, rcBadVersion );
 }
 
-/* WriteAll
- *  write from file until "size" bytes have been transferred
- *  or until no further progress can be made
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-LIB_EXPORT rc_t CC KFileWriteAll ( KFile *self, uint64_t pos,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    rc_t rc;
-    const uint8_t *b;
-    size_t total, count;
-
-    size_t ignore;
-    if ( num_writ == NULL )
-        num_writ = & ignore;
-
-    * num_writ = 0;
-
-    if ( self == NULL )
-        return RC ( rcFS, rcFile, rcWriting, rcSelf, rcNull );
-
-    if ( ! self -> write_enabled )
-        return RC ( rcFS, rcFile, rcWriting, rcFile, rcNoPerm );
-
-    if ( size == 0 )
-        return 0;
-    if ( buffer == NULL )
-        return RC ( rcFS, rcFile, rcWriting, rcBuffer, rcNull );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        for ( rc = 0, b = buffer, total = 0; total < size; total += count )
-        {
-            count = 0;
-            rc = ( * self -> vt -> v1 . write ) ( self, pos + total, b + total, size - total, & count );
-            if ( rc != 0 )
-                break;
-            if ( count == 0 )
-                break;
-        }
-        break;
-    default:
-        return RC ( rcFS, rcFile, rcWriting, rcInterface, rcBadVersion );
-    }
-
-    * num_writ = total;
-    if ( total == size )
-        return 0;
-    if ( rc == 0 )
-        return RC ( rcFS, rcFile, rcWriting, rcTransfer, rcIncomplete );
-    return rc;
-}
-
 /* Init
  *  initialize a newly allocated file object
  */
 LIB_EXPORT rc_t CC KFileInit ( KFile *self, const KFile_vt *vt,
-    const char *classname, const char *fname,
     bool read_enabled, bool write_enabled )
 {
     if ( self == NULL )
@@ -452,7 +322,7 @@ LIB_EXPORT rc_t CC KFileInit ( KFile *self, const KFile_vt *vt,
 
     self -> vt = vt;
     self -> dir = NULL;
-    KRefcountInit ( & self -> refcount, 1, classname, "init", fname );
+    atomic32_set ( & self -> refcount, 1 );
     self -> read_enabled = ( uint8_t ) ( read_enabled != 0 );
     self -> write_enabled = ( uint8_t ) ( write_enabled != 0 );
 
diff --git a/libs/kfs/fileformat-priv.h b/libs/kfs/fileformat-priv.h
index 4f19e62..5737a35 100644
--- a/libs/kfs/fileformat-priv.h
+++ b/libs/kfs/fileformat-priv.h
@@ -43,7 +43,7 @@ extern "C" {
 #endif
 
 #ifdef _DEBUGGING
-#define FUNC_ENTRY() /* DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFFENTRY), ("Enter: %s\n", __func__)) */
+#define FUNC_ENTRY() DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFFENTRY), ("Enter: %s\n", __func__))
 #define KFF_DEBUG(msg) DBGMSG (DBG_KFS, DBG_FLAG(DBG_KFS_KFF), msg)
 #else
 #define FUNC_ENTRY()
diff --git a/libs/kfs/gzip.c b/libs/kfs/gzip.c
index ebf088f..333113a 100644
--- a/libs/kfs/gzip.c
+++ b/libs/kfs/gzip.c
@@ -134,7 +134,7 @@ LIB_EXPORT rc_t CC KFileMakeGzipForRead( const struct KFile **result,
     if (!obj)
         return RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
 
-    rc = KFileInit(&obj->dad, (const KFile_vt*) &s_vtKFile_InGz, "KGZipFile", "no-name", true, false);
+    rc = KFileInit(&obj->dad, (const KFile_vt*) &s_vtKFile_InGz, true, false);
     if (rc != 0) {
         free(obj);
         return rc;
@@ -289,6 +289,7 @@ static rc_t z_read ( KGZipFile * self, void * buffer, size_t bsize, size_t * _nu
             GZIP_DEBUG(("%s: data error %d\n",__func__, zret));
             return RC (rcFS, rcFile, rcReading, rcData, rcCorrupt);
 
+            /* don't handle these yet */
         case Z_STREAM_END:
             GZIP_DEBUG(("%s: stream end %d\n",__func__, zret));
             self->completed = true;
@@ -425,7 +426,7 @@ LIB_EXPORT rc_t CC KFileMakeGzipForWrite( struct KFile **result,
     if (!obj)
         return RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
 
-    rc = KFileInit(&obj->dad, (const KFile_vt*) &s_vtKFile_OutGz, "KGZipFile", "no-name", false, true);
+    rc = KFileInit(&obj->dad, (const KFile_vt*) &s_vtKFile_OutGz, false, true);
     if (rc != 0) {
         free(obj);
         return rc;
diff --git a/libs/kfs/libkfs.vers b/libs/kfs/libkfs.vers
index 1892b92..c813fe1 100644
--- a/libs/kfs/libkfs.vers
+++ b/libs/kfs/libkfs.vers
@@ -1 +1 @@
-1.3.2
+1.2.5
diff --git a/libs/kfs/lockfile.c b/libs/kfs/lockfile.c
deleted file mode 100644
index 85b36e2..0000000
--- a/libs/kfs/lockfile.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-struct KRemoveLockFileTask;
-#define KTASK_IMPL struct KRemoveLockFileTask
-
-#include <kfs/extern.h>
-#include <kfs/lockfile.h>
-#include <kfs/impl.h>
-#include <kfs/file.h>
-#include <kfs/directory.h>
-#include <kproc/task.h>
-#include <kproc/impl.h>
-#include <kproc/procmgr.h>
-#include <klib/text.h>
-#include <klib/refcount.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#if _DEBUGGING
-#define CRIPPLE_CLEANUP 0
-#define DISABLE_CLEANUP 0
-#endif
-
-/*--------------------------------------------------------------------------
- * KRemoveLockFileTask
- */
-typedef struct KRemoveLockFileTask KRemoveLockFileTask;
-struct KRemoveLockFileTask
-{
-    KTask dad;
-    KDirectory *dir;
-    char path [ 1 ];
-};
-
-static
-rc_t CC KRemoveLockFileTaskWhack ( KRemoveLockFileTask *self )
-{
-    rc_t rc = KDirectoryRelease ( self -> dir );
-    KTaskDestroy ( & self -> dad, "KRemoveLockFileTask" );
-    free ( self );
-    return rc;
-}
-
-static
-rc_t CC KRemoveLockFileTaskExecute ( KRemoveLockFileTask *self )
-{
-    return KDirectoryRemove ( self -> dir, true, self -> path );
-}
-
-static
-KTask_vt_v1 KRemoveLockFileTask_vt =
-{
-    1, 0,
-    KRemoveLockFileTaskWhack,
-    KRemoveLockFileTaskExecute
-};
-
-static
-rc_t KRemoveLockFileTaskMake ( KTask **task, KDirectory *dir, const char *path )
-{
-    rc_t rc;
-    size_t path_size = string_size ( path );
-    KRemoveLockFileTask *t = malloc ( sizeof * t + path_size );
-    if ( t == NULL )
-        rc = RC ( rcFS, rcLock, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        rc = KTaskInit ( & t -> dad, ( const KTask_vt* ) & KRemoveLockFileTask_vt, "KRemoveLockFileTask", path );
-        if ( rc == 0 )
-        {
-            rc = KDirectoryAddRef ( t -> dir = dir );
-            if ( rc == 0 )
-            {
-                strcpy ( t -> path, path );
-                * task = & t -> dad;
-                return 0;
-            }
-        }
-
-        free ( t );
-    }
-
-    return rc;
-}
-
-
-/*--------------------------------------------------------------------------
- * KLockFile
- *  a mutual exclusion lock on a file
- *  the lock is acquired upon creation
- *  and released upon destruction
- *
- * NB - only guaranteed to work when used from a single host
- */
-struct KLockFile
-{
-    KProcMgr *pmgr;
-    KTask *cleanup;
-    KTaskTicket ticket;
-    KRefcount refcount;
-};
-
-static
-rc_t KLockFileWhack ( KLockFile *self )
-{
-    rc_t rc;
-
-    /* remove task from cleanup queue */
-    if ( self -> pmgr != NULL )
-    {
-        rc = KProcMgrRemoveCleanupTask ( self -> pmgr, & self -> ticket );
-        KProcMgrRelease ( self -> pmgr );
-    }
-
-#if ! CRIPPLE_CLEANUP && ! DISABLE_CLEANUP
-    /* remove the lock file from file system */
-    rc = KTaskExecute ( self -> cleanup );
-#endif
-    KTaskRelease ( self -> cleanup );
-
-    free ( self );
-    return 0;
-}
-
-
-/* AddRef
- */
-LIB_EXPORT rc_t CC KLockFileAddRef ( const KLockFile *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KLockFile" ) )
-        {
-        case krefLimit:
-            return RC ( rcFS, rcLock, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-/* Release
- */
-LIB_EXPORT rc_t CC KLockFileRelease ( const KLockFile *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "KLockFile" ) )
-        {
-        case krefWhack:
-            return KLockFileWhack ( ( KLockFile* ) self );
-        case krefLimit:
-            return RC ( rcFS, rcLock, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-/* Make
- */
-static
-rc_t KLockFileMake ( KLockFile **lock, KDirectory *dir, const char *path )
-{
-    rc_t rc;
-    KLockFile *f = malloc ( sizeof * f );
-    if ( f == NULL )
-        rc = RC ( rcFS, rcLock, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        rc = KRemoveLockFileTaskMake ( & f -> cleanup, dir, path );
-        if ( rc == 0 )
-        {
-#if ! DISABLE_CLEANUP
-            /* register cleanup task with proc mgr */
-            rc = KProcMgrMakeSingleton ( & f -> pmgr );
-            if ( rc == 0 )
-                rc = KProcMgrAddCleanupTask ( f -> pmgr, & f -> ticket, f -> cleanup );
-            else
-#else
-            f -> pmgr = NULL;
-#endif
-            {
-                /* this is allowed to fail if mgr has not been initialized */
-                memset ( & f -> ticket, 0, sizeof f -> ticket );
-                rc = 0;
-            }
-
-            if ( rc == 0 )
-            {
-                KRefcountInit ( & f -> refcount, 1, "KLockFile", "make", path );
-                * lock = f;
-                return 0;
-            }
-
-            if ( f -> pmgr != NULL )
-                KProcMgrRelease ( f -> pmgr );
-        }
-
-        free ( f );
-    }
-
-    return rc;
-}
-
-
-/*--------------------------------------------------------------------------
- * KDirectory
- *  interface extensions
- */
-
-
-/* CreateLockFile
- *  attempts to create a KLockFile
- *
- *  "lock" [ OUT ] - return parameter for newly created lock file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting lock file
- */
-LIB_EXPORT rc_t CC KDirectoryVCreateLockFile ( KDirectory *self,
-    KLockFile **lock, const char *path, va_list args )
-{
-    rc_t rc;
-
-    if ( lock == NULL )
-        rc = RC ( rcFS, rcFile, rcLocking, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcFS, rcFile, rcLocking, rcSelf, rcNull );
-        else if ( path == NULL )
-            rc = RC ( rcFS, rcFile, rcLocking, rcPath, rcNull );
-        else if ( path [ 0 ] == 0 )
-            rc = RC ( rcFS, rcFile, rcLocking, rcPath, rcEmpty );
-        else
-        {
-            char full [ 4096 ];
-            rc = KDirectoryVResolvePath ( self, false, full, sizeof full, path, args );
-            if ( rc == 0 )
-            {
-                KFile *lock_file;
-                rc = KDirectoryCreateFile ( self, & lock_file, false, 0600, kcmCreate | kcmParents, full );
-                if ( rc == 0 )
-                {
-                    rc_t rc2;
-
-                    /* no longer need the file - not going to write to it anyway */
-                    KFileRelease ( lock_file );
-
-                    /* we have the lock */
-                    rc = KLockFileMake ( lock, self, full );
-                    if ( rc == 0 )
-                        return 0;
-
-                    /* must unlink lockfile */
-                    rc2 = KDirectoryRemove ( self, true, full );
-                    if ( rc2 != 0 )
-                        /* issue a report */;
-                }
-                else if ( GetRCState ( rc ) == rcExists )
-                {
-                    /* map the rc to kproc type values */
-                    rc = RC ( rcFS, rcFile, rcLocking, rcLocking, rcBusy );
-                }
-                else
-                {
-                    rc = ResetRCContext ( rc, rcFS, rcFile, rcLocking );
-                }
-            }
-        }
-
-        * lock = NULL;
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KDirectoryCreateLockFile ( KDirectory *self,
-    KLockFile **lock, const char *path, ... )
-{
-    rc_t rc;
-
-    va_list args;
-    va_start ( args, path );
-
-    rc = KDirectoryVCreateLockFile ( self, lock, path, args );
-
-    va_end ( args );
-
-    return rc;
-}
-
-
-/* CreateExclusiveAccessFile
- *  opens a file with exclusive write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "access" [ IN ] - standard Unix access mode, e.g. 0664
- *
- *  "mode" [ IN ] - a creation mode ( see explanation above ).
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- */
-
-LIB_EXPORT rc_t CC KDirectoryCreateExclusiveAccessFile ( KDirectory *self, KFile **f,
-    bool update, uint32_t access, KCreateMode mode, const char *path, ... )
-{
-    rc_t rc;
-
-    va_list args;
-    va_start ( args, path );
-
-    rc = KDirectoryVCreateExclusiveAccessFile ( self, f, update, access, mode, path, args );
-
-    va_end ( args );
-
-    return rc;
-}
diff --git a/libs/kfs/md5.c b/libs/kfs/md5.c
index e172b0c..57d74c5 100644
--- a/libs/kfs/md5.c
+++ b/libs/kfs/md5.c
@@ -399,7 +399,6 @@ rc_t KMD5SumFmtPopulate ( KMD5SumFmt *self, const KFile *in )
 
 /* Make
  *  creates a formatted accessor to textual checksum file
- *  takes over ownership of "in"/"out" file reference
  */
 LIB_EXPORT rc_t CC KMD5SumFmtMakeRead ( const KMD5SumFmt **fp, const KFile *in )
 {
@@ -444,10 +443,6 @@ LIB_EXPORT rc_t CC KMD5SumFmtMakeRead ( const KMD5SumFmt **fp, const KFile *in )
     return rc;
 }
 
-/* Make
- *  creates a formatted accessor to textual checksum file
- *  takes over ownership of "in"/"out" file reference
- */
 LIB_EXPORT rc_t CC KMD5SumFmtMakeUpdate ( KMD5SumFmt **fp, KFile *out )
 {
     rc_t rc;
@@ -767,16 +762,14 @@ LIB_EXPORT rc_t CC KMD5SumFmtUpdate ( KMD5SumFmt *self, const char *path,
                 self -> dirty = true;
                 ++ self -> count;
             }
-            else
+
+            /* if existing, perform update */
+            else if ( memcmp ( exist -> digest, entry -> digest, sizeof exist -> digest ) != 0 ||
+                      exist -> bin != entry -> bin )
             {
-                /* if existing, perform update */
-                if ( memcmp ( exist -> digest, entry -> digest, sizeof exist -> digest ) != 0 ||
-                     exist -> bin != entry -> bin )
-                {
-                    memcpy ( exist -> digest, entry -> digest, sizeof exist -> digest );
-                    exist -> bin = entry -> bin;
-                    self -> dirty = true;
-                }
+                memcpy ( exist -> digest, entry -> digest, sizeof exist -> digest );
+                exist -> bin = entry -> bin;
+                self -> dirty = true;
                 KMD5SumEntryWhack ( & entry -> n, NULL );
             }
         }
@@ -1498,7 +1491,7 @@ LIB_EXPORT rc_t CC KFileMakeMD5Read ( const KFile **fp,
             else
             {
                 rc = KFileInit ( & f -> dad,
-				     ( const KFile_vt* ) & KMD5FileRead_vt, "KMD5File", "no-name", true, false );
+				     ( const KFile_vt* ) & KMD5FileRead_vt, true, false );
                 if ( rc == 0 )
                 {
                     f -> position = 0;
@@ -1592,7 +1585,7 @@ LIB_EXPORT rc_t CC KMD5FileMakeWrite ( KMD5File **fp,
             else
             {
                 rc = KFileInit ( & f -> dad,
-                    ( const KFile_vt* ) & sKMD5FileWrite_vt, "KMD5File", path, out -> read_enabled, true );
+                    ( const KFile_vt* ) & sKMD5FileWrite_vt, out -> read_enabled, true );
                 if ( rc == 0 )
                 {
                     f -> position = 0;
@@ -1702,7 +1695,7 @@ LIB_EXPORT rc_t CC KMD5FileMakeAppend ( KMD5File **fp, KFile *out, KMD5SumFmt *m
             else
             {
                 rc = KFileInit ( & f -> dad,
-                    ( const KFile_vt* ) & sKMD5FileAppend_vt, "KMD5File", path, out -> read_enabled, true );
+                    ( const KFile_vt* ) & sKMD5FileAppend_vt, out -> read_enabled, true );
                 if ( rc == 0 )
                 {
                     MD5StateInit ( & f -> md5 );
@@ -1825,13 +1818,6 @@ static KFile_vt_v1 sKMD5FileReadCreate_vt =
     KMD5FileType
 };
 
-/* MakeReadNew
- *  creates an adapter to create MD5 checksum for a file
- *
- *  "in" [ IN ] - input file 
- *  since this file is being wrapped by "f", ownership of
- *  the provided reference is transferred to "f"
- */
 LIB_EXPORT rc_t CC KFileMakeNewMD5Read ( const KFile **fp,
     const struct KFile *in, KMD5SumFmt *md5, const char *path )
 {
@@ -1855,14 +1841,14 @@ LIB_EXPORT rc_t CC KFileMakeNewMD5Read ( const KFile **fp,
             rc = RC ( rcFS, rcFile, rcConstructing, rcPath, rcEmpty );
         else
         {
-            size_t path_size = string_size ( path );
-            KMD5File *f = malloc ( sizeof * f + path_size );
+            KMD5File *f = malloc ( sizeof * f - sizeof f -> u +
+                sizeof f -> u . wr + strlen ( path ) );
             if ( f == NULL )
                 rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
             else
             {
                 rc = KFileInit ( & f -> dad,
-                    ( const KFile_vt* ) & sKMD5FileReadCreate_vt, "KMD5File", path, in -> read_enabled, false );
+                    ( const KFile_vt* ) & sKMD5FileReadCreate_vt, in -> read_enabled, false );
                 if ( rc == 0 )
                 {
                     f -> position = 0;
@@ -1871,7 +1857,7 @@ LIB_EXPORT rc_t CC KFileMakeNewMD5Read ( const KFile **fp,
                     f -> fmt = md5;
 		    f -> type = KMD5FileTypeWrite;
                     memset ( & f -> u . wr, 0, sizeof f -> u . wr );
-                    string_copy ( f -> u . wr . path, path_size + 1, path, path_size );
+                    strcpy ( f -> u . wr . path, path );
 #if 0
 /* KFileSize can't always be used */
                     rc = KFileSize ( in, & f -> u . wr . max_position );
diff --git a/libs/kfs/mmap.c b/libs/kfs/mmap.c
index 32a7887..bde5286 100644
--- a/libs/kfs/mmap.c
+++ b/libs/kfs/mmap.c
@@ -39,13 +39,9 @@
 #define USE_MALLOC_MMAP 1
 
 #if USE_MALLOC_MMAP
-
-#ifndef FORCE_MALLOC_MMAP
 #define FORCE_MALLOC_MMAP 0
 #endif
 
-#endif
-
 
 /*--------------------------------------------------------------------------
  * KMMap
@@ -277,7 +273,7 @@ rc_t KMMapMallocRgn ( KMMap *self, uint64_t pos, size_t size, bool read_only )
         }
 
         /* crop for readonly case */
-        if ( read_only && (( size == 0 ) || ( pos + size > eof )))
+        if ( read_only && pos + size > eof )
             size = ( size_t ) ( eof - pos );
     }
 
@@ -658,7 +654,7 @@ LIB_EXPORT rc_t CC KMMapMakeMaxRead ( const KMMap **mm, const KFile *f )
         return KMMapMakeRgnRead ( mm, f, 0, 1500 * 1024 * 1024 );
 
     /* 64-bit or beyond */
-    return KMMapMakeRgnRead ( mm, f, 0,  ( ( size_t ) 48 ) * 1024 * 1024 * 1024 );
+    return KMMapMakeRgnRead ( mm, f, 0,  ( ( size_t ) 8 ) * 1024 * 1024 * 1024 );
 }
 
 LIB_EXPORT rc_t CC KMMapMakeMaxUpdate ( KMMap **mm, KFile *f )
@@ -672,8 +668,8 @@ LIB_EXPORT rc_t CC KMMapMakeMaxUpdate ( KMMap **mm, KFile *f )
             eof = 1500 * 1024 * 1024;
 
         /* 64-bit or beyond */
-        if ( sizeof mm == 8 && eof > ( ( size_t ) 48 ) * 1024 * 1024 * 1024 )
-            eof = ( ( size_t ) 48 ) * 1024 * 1024 * 1024;
+        if ( sizeof mm == 8 && eof > ( ( size_t ) 8 ) * 1024 * 1024 * 1024 )
+            eof = ( ( size_t ) 8 ) * 1024 * 1024 * 1024;
 
         rc = KMMapMakeRgnUpdate ( mm, f, 0, ( size_t ) eof );
     }
diff --git a/libs/kfs/nullfile.c b/libs/kfs/nullfile.c
index 22eab36..2694ded 100644
--- a/libs/kfs/nullfile.c
+++ b/libs/kfs/nullfile.c
@@ -111,7 +111,6 @@ rc_t KNullFileMake (KNullFile ** self, bool write_allowed)
     {
 	rc = KFileInit (&pF->dad,			/* initialize base class */
 			(const KFile_vt*)&vtKNullFile, 	/* VTable for KNullFile */
-            "KNullFile", "no-name",
 			true,				/* read allowed */
 			write_allowed);
 	if (rc == 0)
diff --git a/libs/kfs/pagefile.c b/libs/kfs/pagefile.c
index bf0f05f..38c6c7f 100644
--- a/libs/kfs/pagefile.c
+++ b/libs/kfs/pagefile.c
@@ -96,7 +96,7 @@ struct KPageBacking
 static
 void KPageBackingWhack ( KPageBacking *self )
 {
-    if(self -> backing) KFileRelease ( self -> backing );
+    KFileRelease ( self -> backing );
     free ( self );
 }
 
@@ -184,7 +184,6 @@ rc_t KPageBackingSetSize ( KPageBacking *self, uint32_t pg_count )
 /* Read
  *  read a page from backing
  */
-#if 0
 static
 rc_t KFileReadAll ( const KFile *self, uint64_t pos, uint8_t *buff, size_t bsize, size_t *num_read )
 {
@@ -209,7 +208,6 @@ rc_t KFileReadAll ( const KFile *self, uint64_t pos, uint8_t *buff, size_t bsize
     * num_read = 0;
     return rc;
 }
-#endif
 
 static
 rc_t KPageBackingRead ( const KPageBacking *self, void **ppage, uint32_t pg_id )
@@ -269,7 +267,6 @@ rc_t KPageBackingRead ( const KPageBacking *self, void **ppage, uint32_t pg_id )
 /* Write
  *  write a page to backing store
  */
-#if 0
 static
 rc_t KFileWriteAll ( KFile *self, uint64_t pos, const uint8_t *buff, size_t size, size_t *num_writ )
 {
@@ -297,7 +294,6 @@ rc_t KFileWriteAll ( KFile *self, uint64_t pos, const uint8_t *buff, size_t size
     * num_writ = 0;
     return rc;
 }
-#endif
 
 static
 rc_t KPageBackingWrite ( KPageBacking *self, const void *page, uint32_t pg_id )
@@ -367,12 +363,10 @@ struct KPage
 static
 rc_t KPageWhack ( KPage *self )
 {
-    if ( self -> backing ) {
-	if ( self -> dirty )
-	    KPageBackingWrite ( self -> backing, self -> page, self -> page_id );
-	KPageBackingSever ( self -> backing );
-    }
+    if ( self -> dirty )
+        KPageBackingWrite ( self -> backing, self -> page, self -> page_id );
     KPageMemWhack ( self -> page );
+    KPageBackingSever ( self -> backing );
     free ( self );
     return 0;
 }
@@ -393,8 +387,7 @@ rc_t KPageNew ( KPage **ppage, KPageBacking *backing, uint32_t page_id )
         rc = KPageMemNew ( & page -> page );
         if ( rc == 0 )
         {
-            if(backing)page -> backing = KPageBackingAttach ( backing );
-	    else page -> backing=NULL;
+            page -> backing = KPageBackingAttach ( backing );
             KRefcountInit ( & page -> refcount, 1, "KPage", "new", "page" );
             page -> page_id = page_id;
             page -> read_only = false;
@@ -467,7 +460,7 @@ LIB_EXPORT rc_t CC KPageRelease ( const KPage *self )
     if ( self != NULL ) switch ( KRefcountDrop ( & self -> refcount, "KPage" ) )
     {
     case krefOkay:
-        if ( self -> dirty && self -> backing && self -> backing -> write_through )
+        if ( self -> dirty && self -> backing -> write_through )
         {
             rc_t rc = KPageBackingWrite ( self -> backing, self -> page, self -> page_id );
             if ( rc != 0 )
@@ -703,11 +696,7 @@ rc_t KPageFileSetPageCount(KPageFile *self,uint32_t count)
 	}
 	self->count=count;
 	if( self -> read_only) return 0;
-	if( self -> backing ) return KPageBackingSetSize ( self -> backing, count );
-	else if ( self->count > self->climit ){
-                return RC ( rcFS, rcFile, rcProcessing, rcBuffer, rcExhausted );
-	}
-	return 0;
+        return KPageBackingSetSize ( self -> backing, count );
 }
 /* Whack
  */
@@ -718,7 +707,7 @@ rc_t KPageFileWhack ( KPageFile *self )
     /* first, visit each cached page in flush order */
     self->page_idx=KPageFile_whack_recursive(self->page_idx,self->page_idx_depth,0,&self->by_access,&self->ccount);
     /* release the backing file */
-    if(self -> backing) KPageBackingRelease ( self -> backing );
+    KPageBackingRelease ( self -> backing );
     /* delete the object */
     free ( self );
     return 0;
@@ -811,54 +800,53 @@ LIB_EXPORT rc_t CC KPageFileMakeRead ( const KPageFile **pf,
 LIB_EXPORT rc_t CC KPageFileMakeUpdate ( KPageFile **pf,
     KFile *backing, size_t climit, bool write_through )
 {
-    rc_t rc=0;
+    rc_t rc;
 
     if ( pf == NULL )
         rc = RC ( rcFS, rcFile, rcConstructing, rcParam, rcNull );
     else
     {
-        if ( backing != NULL ){
-        	if ( ! backing -> read_enabled )
-		{
-		    if ( backing -> write_enabled )
-			rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcWriteonly );
-		    else
-			rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcNoPerm );
-		}
-		else if ( ! backing -> write_enabled )
-		    rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcReadonly );
-	}
-        if(rc == 0)
+        if ( backing == NULL )
+            rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcNull );
+        else if ( ! backing -> read_enabled )
         {
-	    KPageFile *f = malloc ( sizeof * f );
-	    if ( f == NULL )
-                    rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-            else 
-	    {
-		f->page_idx=NULL;
-		f->page_idx_depth=0;
-		DLListInit ( & f -> by_access );
-		KRefcountInit ( & f -> refcount, 1, "KPageFile", "make", "pgfile" );
-		f -> count = 0;
-		f -> ccount = 0;
-		f -> climit = ( uint32_t ) ( climit >>  PGBITS );
-		if(f -> climit < MIN_CACHE_PAGE) f -> climit = MIN_CACHE_PAGE;
-		f -> read_only = false;
-		f -> backing = NULL; /** for now **/
-	    }
-	    if(rc == 0 && backing)
+            if ( backing -> write_enabled )
+                rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcWriteonly );
+            else
+                rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcNoPerm );
+        }
+        else if ( ! backing -> write_enabled )
+            rc = RC ( rcFS, rcFile, rcConstructing, rcFile, rcReadonly );
+        else
+        {
+            KPageBacking *bf = calloc ( 1, sizeof * bf );
+            if ( bf == NULL )
+                rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
+            else
             {
-		KPageBacking *bf = calloc ( 1, sizeof * bf );
-		if ( bf == NULL )
-			rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
+                KPageFile *f = malloc ( sizeof * f );
+                if ( f == NULL )
+                    rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
                 else
                 {
                     rc = KFileAddRef ( backing );
-		    if(rc == 0)
-		     {
+                    if ( rc == 0 )
+                    {
+			f->page_idx=NULL;
+			f->page_idx_depth=0;
+                        DLListInit ( & f -> by_access );
+                        KRefcountInit ( & f -> refcount, 1, "KPageFile", "make", "pgfile" );
+                        f -> count = 0;
+                        f -> ccount = 0;
+                        f -> climit = ( uint32_t ) ( climit >>  PGBITS );
+			if(f -> climit < MIN_CACHE_PAGE) f -> climit = MIN_CACHE_PAGE;
+                        f -> read_only = false;
+
                         /* finish the backing file */
                         KRefcountInit ( & bf -> refcount, 1, "KPageBacking", "make", "backing" );
+                        f -> backing = bf;
                         bf -> write_through = write_through;
+                            
                         /* attached reference */
                         bf -> backing = backing;
 
@@ -867,24 +855,23 @@ LIB_EXPORT rc_t CC KPageFileMakeUpdate ( KPageFile **pf,
                         if ( rc == 0 )
                         {
                             bf -> have_eof = true;
+			    rc=KPageFileSetPageCount(f,( uint32_t ) ( ( bf -> eof + PGSIZE - 1 ) >> PGBITS ));
+			    if(rc!=0) return rc;
                         }
+                        * pf = f;
+                        return 0;
                     }
+
+                    free ( f );
                 }
-		if (rc == 0){
-			f -> backing = bf;
-			rc=KPageFileSetPageCount(f,( uint32_t ) ( ( bf -> eof + PGSIZE - 1 ) >> PGBITS ));
-		} else if ( bf ){
-			free ( bf );
-		}
+
+                free ( bf );
             }
-	    if(rc == 0){
-		* pf = f;
-	    } else if (f) {
-		free(f);
-	    }
         }
-	if(rc != 0) *pf = NULL;
+
+        * pf = NULL;
     }
+
     return rc;
 }
 
@@ -1279,5 +1266,5 @@ LIB_EXPORT rc_t CC KPageFileDropBacking ( KPageFile *self )
     if ( self == NULL )
         return RC ( rcFS, rcFile, rcDetaching, rcSelf, rcNull );
 
-    return self -> backing?KPageBackingDrop ( self -> backing ):0;
+    return KPageBackingDrop ( self -> backing );
 }
diff --git a/libs/vfs/path-priv.h b/libs/kfs/path-priv.h
similarity index 73%
rename from libs/vfs/path-priv.h
rename to libs/kfs/path-priv.h
index a4cd28d..6f7ef9b 100644
--- a/libs/vfs/path-priv.h
+++ b/libs/kfs/path-priv.h
@@ -24,13 +24,20 @@
 *
 */
 
-#ifndef _h_vfs_path_priv_libs_
-#define _h_vfs_path_priv_libs_
+#ifndef _h_kfs_path_priv_libs_
+#define _h_kfs_path_priv_libs_
 
-#include <vfs/extern.h>
+#ifndef _h_kfs_extern_
+#include <kfs/extern.h>
+#endif
+
+#ifndef _h_klib_defs_
 #include <klib/defs.h>
-#include <vfs/path.h>
-#include <vfs/path-priv.h>
+#endif
+
+#include <kfs/path.h>
+#include <kfs/path-priv.h>
+
 #include <klib/text.h>
 #include <klib/refcount.h>
 #include <klib/container.h>
@@ -38,11 +45,7 @@
 #include <stdarg.h>
 
 #ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef USE_VRESOLVER
-#define USE_VRESOLVER 1
+extern "C" {}
 #endif
 
 #ifndef SUPPORT_FILE_URL
@@ -53,41 +56,39 @@ extern "C" {
 #define USE_EXPERIMENTAL_CODE 1
 #endif
 
-#ifndef USE_VPATH_OPTIONS_STRINGS
-#define USE_VPATH_OPTIONS_STRINGS 0
-#endif
-
 #ifdef _DEBUGGING
-#define PATH_DEBUG(msg) DBGMSG(DBG_VFS,DBG_FLAG(DBG_VFS_PATH), msg)
+#define PATH_DEBUG(msg) DBGMSG(DBG_KFS,DBG_FLAG(DBG_KFS_PATH), msg)
 #else
 #define PATH_DEBUG(msg)
 #endif
 #define OFF_PATH_DEBUG(msg)
 
+#define NCBI_FILE_SCHEME "ncbi-file"
 
-typedef struct VPOption VPOption;
-struct VPOption
+typedef int32_t KPUri_t;
+enum eKPUri_t
+{
+    kpuri_invalid = -1,
+    kpuri_not_supported,
+    kpuri_ncbi_kfs,
+#if SUPPORT_FILE_URL
+    kpuri_file,
+#endif
+    kpuri_count
+};
+
+typedef struct KPOption KPOption;
+struct KPOption
 {
     BSTNode node;
-    VPOption_t name;
+    KPOption_t name;
     String value;
 /*     const char * value; */
 };
 
-struct VPath
+struct KPath
 {
-#if USE_VPATH_OPTIONS_STRINGS
-    const VPath * root;
-
-    KRefcount refcount;
-
-    String fullpath;
-
-    String scheme;
-
-
-#else
-    const VPath * root;
+    const KPath * root;
     KRefcount refcount;
     String path;
     BSTree options;   /* query section of an uri; maybe set other ways as well. */
@@ -95,21 +96,19 @@ struct VPath
     char * fragment;
     size_t alloc_size;  /* how much extra space allocated for a path too long for the built in buffer */
     size_t asciz_size;  /* doubles as allocated size -1 if less than the size of the buffer below */
-    VPUri_t scheme;
     char * storage;
-#endif
 };
 
 
 /* not externally callable */
-rc_t CC VPathTransformSysPath (VPath * self);
-rc_t VPathTransformPathHier (char ** uri_path);
+rc_t CC KPathTransformSysPath (KPath * self);
+rc_t KPathTransformPathHier (char ** uri_path);
 
-rc_t VPathInitAuthority (VPath * self, char ** next);
+rc_t KPathInitAuthority (KPath * self, char ** next);
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _h_vfs_path_priv_ */
+#endif /* _h_kfs_path_priv_ */
diff --git a/libs/vfs/path.c b/libs/kfs/path.c
similarity index 52%
rename from libs/vfs/path.c
rename to libs/kfs/path.c
index ba9591d..a39be78 100644
--- a/libs/vfs/path.c
+++ b/libs/kfs/path.c
@@ -24,33 +24,28 @@
  *
  */
 
-#include <vfs/extern.h>
+#include <kfs/extern.h>
 #include <os-native.h>
-#include <vfs/path.h>
-#include <vfs/manager.h>
-#include <vfs/resolver.h>
-
+#include <kfs/path.h>
 #include "path-priv.h"
+#include <kfs/kfs-priv.h>
 
-#include <sra/srapath.h> /* this only looks like its a module problem */
-#include <kfs/directory.h>
 #include <klib/refcount.h>
 #include <klib/text.h>
 #include <klib/printf.h>
-#include <klib/out.h>
 #include <klib/log.h>
 #include <klib/debug.h>
 #include <klib/rc.h>
 
 #include <stdlib.h>
 #include <string.h>
-#include <sysalloc.h>
+/* #include <sysalloc.h> */
 #include <ctype.h>
 #include <assert.h>
 
-rc_t VPOptionMake (VPOption ** new_obj, VPOption_t name, const char * value, size_t size)
+rc_t KPOptionMake (KPOption ** new_obj, KPOption_t name, const char * value, size_t size)
 {
-    VPOption * obj;
+    KPOption * obj;
 
     assert (new_obj);
 
@@ -64,23 +59,23 @@ rc_t VPOptionMake (VPOption ** new_obj, VPOption_t name, const char * value, siz
     return 0;
 }
 
-void CC VPOptionWhack (BSTNode * self, void * ignored)
+void CC KPOptionWhack (BSTNode * self, void * ignored)
 {
     free (self);
 }
 
-int CC VPOptionCmp ( const void * item, const BSTNode * n )
+int CC KPOptionCmp ( const void * item, const BSTNode * n )
 {
-    VPOption_t o = (VPOption_t)(size_t)item;
-    const VPOption * b = (const VPOption *)n;
+    KPOption_t o = (KPOption_t)(size_t)item;
+    const KPOption * b = (const KPOption *)n;
 
     return o - b->name;
 }
 
-int CC VPOptionSort ( const BSTNode * item, const BSTNode * n )
+int CC KPOptionSort ( const BSTNode * item, const BSTNode * n )
 {
-    const VPOption * a = (const VPOption *)item;
-    const VPOption * b = (const VPOption *)n;
+    const KPOption * a = (const KPOption *)item;
+    const KPOption * b = (const KPOption *)n;
 
     return a->name - b->name;
 }
@@ -88,7 +83,7 @@ int CC VPOptionSort ( const BSTNode * item, const BSTNode * n )
 
 #if 0
 static
-rc_t VPathMakeCanon (VPath * self)
+rc_t KPathMakeCanon (KPath * self)
 {
     char * low;  /* 'root' location in path */
     char * dst;  /* target reference for removing . and .. nodes */
@@ -151,13 +146,13 @@ rc_t VPathMakeCanon (VPath * self)
 #endif
 /* Destroy
  */
-rc_t VPathDestroy (const VPath * cself)
+rc_t KPathDestroy (const KPath * cself)
 {
     if (cself)
     {
-        VPath * self = (VPath*)cself;
+        KPath * self = (KPath*)cself;
         PATH_DEBUG (("-----\n%s: %p %p\n\n", __func__, cself, cself->storage ));
-        BSTreeWhack (&self->options, VPOptionWhack, NULL);
+        BSTreeWhack (&self->options, KPOptionWhack, NULL);
         free (self->storage);
         free (self);
     }
@@ -165,13 +160,13 @@ rc_t VPathDestroy (const VPath * cself)
 }
 
 
-static const char class_name[] = "VPath";
+static const char class_name[] = "KPath";
 
 /* AddRef
  *  creates a new reference
  *  ignores NULL references
  */
-LIB_EXPORT rc_t CC VPathAddRef ( const VPath *self )
+LIB_EXPORT rc_t CC KPathAddRef ( const KPath *self )
 {
     if ( self != NULL )
     {
@@ -190,14 +185,14 @@ LIB_EXPORT rc_t CC VPathAddRef ( const VPath *self )
  *  discard reference to file
  *  ignores NULL references
  */
-LIB_EXPORT rc_t CC VPathRelease ( const VPath *self )
+LIB_EXPORT rc_t CC KPathRelease ( const KPath *self )
 {
     if ( self != NULL )
     {
         switch (KRefcountDrop (&self->refcount, class_name))
         {
         case krefWhack:
-            VPathDestroy (self);
+            KPathDestroy (self);
             break;
         case krefLimit:
         case krefNegative:
@@ -208,8 +203,9 @@ LIB_EXPORT rc_t CC VPathRelease ( const VPath *self )
 }
 
 
+#if USE_EXPERIMENTAL_CODE
 /* not fully reselient to bad input */
-static __inline__
+static
 char decode_nibble (char c)
 {
     if ((c >= '0') && (c <= '9'))
@@ -220,9 +216,9 @@ char decode_nibble (char c)
         return (c - 'A');
     return (0);
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool string_decode (char * p)
 {
     char * q;
@@ -238,9 +234,8 @@ bool string_decode (char * p)
         {
             if ((ix + 2 > limit) || ! isxdigit (p[1]) || ! isxdigit (p[2]))
                 return false;
-            *q = decode_nibble (*++p) << 4;
-            *q += decode_nibble (*++p);
-            
+            *q = decode_nibble (p[1]) << 4;
+            *q += decode_nibble (p[2]);
         }
         else if (q != p)
             *q = *p;
@@ -251,10 +246,9 @@ bool string_decode (char * p)
         *q = '\0';
     return true;
 }
-
-
-#if 0
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE && 0
+static
 rc_t StringDecode (String * self)
 {
     size_t limit;
@@ -287,170 +281,53 @@ rc_t StringDecode (String * self)
     return 0;
 }
 #endif
-
-/*
- * Coded against the ABNF from RFC 3987 International Resource Identifiers and
- * RFC 3986 Universal Resource Identifiers
- */
-
-static __inline__
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_sub_delim (int ch)
 {
     switch (ch)
     {
-    case '!': case '$': case '&': case '\'':
-    case '(': case ')': case '*': case '+':
-    case ',': case ';': case '=':
+    case '!': case '$': case '&': case '\'': case '(': case ')': case '*':
+    case '+': case ',': case ';': case '=':
         return true;
     default:
         return false;
     }
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE && 0
+static
 bool is_gen_delim (int ch)
 {
     switch (ch)
     {
-    case ':': case '/': case '?': case '#': case '[': case ']': case '@':
+    case '"': case '/': case '?': case '#': case '[': case ']': case '@':
         return true;
     default:
         return false;
     }
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE && 0
+static
 bool is_reserved (int ch)
 {
     return is_gen_delim (ch) || is_sub_delim (ch);
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_unreserved (int ch)
 {
-    return (isalnum (ch) || /* ALPHA and DIGIT */
+    return (isalnum (ch) ||
             (ch == '-') ||
             (ch == '.') ||
             (ch == '_') ||
             (ch == '~'));
 }
-
-
-static __inline__
-bool is_pct_encoded (const char * str)
-{
-    return (
-        (str[0] == '%') &&
-        (isxdigit (str[1])) &&
-        (isxdigit (str[2])));
-}
-
-
-static __inline__
-const char * eat_dec_octet (const char * str)
-{
-    /* not a number */
-    if (! isdigit (str[0]))
-        return str;
-
-    /* 0-9 single digit */
-    if (! isdigit (str[1]))
-        return str+1;
-
-    /* no leading zeroes */
-    if (str[0] == '0')
-        return str;
-
-    /* 10-99 */
-    if (! isdigit (str[2]))
-        return str+2;
-
-    /* 1000 and up */
-    if (isdigit (str[2]))
-        return str;
-
-    /* 100-199 */
-    if (str[0] == '1')
-        return str+3;
-
-    /* 300-999 */
-    if (str[0] != '2')
-        return str;
-
-    /* 200-249 */
-    if (str[1] < '5')
-        return str+2;
-
-    /* 260-299 */
-    if (str[1] > '5')
-        return str;
-
-    /* 256-259 */
-    if (str[2] > '5')
-        return str;
-
-    /* 250-255 */
-    return str+2;
-}
-
-
-static __inline__
-const char * eat_IPv4address (const char * str)
-{
-    const char * t0;
-    const char * t1;
-
-    t0 = str;
-
-    t1 = eat_dec_octet (t0);
-    if (t1 == t0)
-        return str;
-
-    if (*t1 != '.')
-        return str;
-
-    t0 = t1 + 1;
-
-    t1 = eat_dec_octet (t0);
-    if (t1 == t0)
-        return str;
-
-    if (*t1 != '.')
-        return str;
-
-    t0 = t1 + 1;
-
-    t1 = eat_dec_octet (t0);
-    if (t1 == t0)
-        return str;
-
-    if (*t1 != '.')
-        return str;
-
-    t0 = t1 + 1;
-
-    t1 = eat_dec_octet (t0);
-    if (t1 == t0)
-        return str;
-
-    return t1;
-}
-
-
-static __inline__
-const char * eat_IPv6address (const char * str)
-{
-    /* not going there yet */
-    return str;
-}
-
-
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_scheme_char (int ch)
 {
     return (isalnum (ch) ||
@@ -458,9 +335,9 @@ bool is_scheme_char (int ch)
             (ch == '-') ||
             (ch == ','));
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_scheme (const char * str)
 {
     if ( !isalpha (*str++))
@@ -470,18 +347,18 @@ bool is_scheme (const char * str)
             return false;
     return true;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_iprivate (int ch )
 {
     return (((ch >= 0x00E000) && (ch <= 0x00F8FF)) ||
             ((ch >= 0x0F0000) && (ch <= 0x0FFFFD)) ||
             ((ch >= 0x100000) && (ch <= 0x10FFFD)));
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_ucschar (int ch)
 {
     return (((ch >= 0xA0)   && (ch <= 0xD7FF)) ||
@@ -502,23 +379,24 @@ bool is_ucschar (int ch)
             ((ch >= 0xD0000) && (ch <= 0xDFFFD)) ||
             ((ch >= 0xE0000) && (ch <= 0xEFFFD)));
 }
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_iunreserved (int ch)
 {
     return is_unreserved (ch) || is_ucschar (ch);
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_ipchar (int ch)
 {
     return is_iunreserved (ch) || is_sub_delim (ch) || 
         (ch == ':') || (ch == '@');
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_query (const char * str)
 {
     for ( ; *str; ++str)
@@ -533,9 +411,9 @@ bool is_query (const char * str)
     }
     return true;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_fragment (const char * str)
 {
     for ( ; *str; ++str)
@@ -550,10 +428,9 @@ bool is_fragment (const char * str)
     }
     return true;
 }
-
-
-#if 0
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE && 0
+static
 bool is_isegment (const char * str, size_t sz)
 {
     const char * end = str + sz;
@@ -572,9 +449,8 @@ bool is_isegment (const char * str, size_t sz)
     return true;
 }
 #endif
-
-
-static __inline__
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_iuserinfo (const char * str)
 {
     for (;;++str)
@@ -588,9 +464,9 @@ const char * eat_iuserinfo (const char * str)
     }
     return str;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_ireg_name (const char * str)
 {
     for (;;++str)
@@ -604,27 +480,27 @@ const char * eat_ireg_name (const char * str)
     }
     return str;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_port (const char * str)
 {
     while (isdigit (*str))
         ++str;
     return str;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_ihost (const char * str)
 {
     /* not doing ip addresses yet */
 
     return eat_ireg_name (str);
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_iuserinfo_at (const char * str)
 {
     const char * temp = eat_iuserinfo (str);
@@ -634,9 +510,9 @@ const char * eat_iuserinfo_at (const char * str)
         return NULL;
     return temp;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_iauthority (const char * str)
 {
     const char * temp;
@@ -656,9 +532,9 @@ const char * eat_iauthority (const char * str)
 
     return str;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_file_iauthority (const char * str)
 {
     const char * temp;
@@ -668,31 +544,18 @@ const char * eat_file_iauthority (const char * str)
         return false;
     return temp;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_isegment (const char * str)
 {
-    while (*str)
-    {
-        if (is_ipchar (*str))
-        {
-            ++str;
-            continue;
-        }
-        if (is_pct_encoded (str))
-        {
-            str += 3;
-            continue;
-        }
-        else
-            break;
-    }
+    while (is_ipchar (*str))
+        ++str;
     return str;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 const char * eat_isegment_nz (const char * str)
 {
     const char * temp = eat_isegment (str);
@@ -700,10 +563,9 @@ const char * eat_isegment_nz (const char * str)
         return NULL;
     return temp;
 }
-
-
-#if 0
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE && 0
+static
 const char * eat_isegment_nz_nc (const char * str)
 {
     const char * temp = str;
@@ -717,10 +579,8 @@ const char * eat_isegment_nz_nc (const char * str)
     return str;
 }
 #endif
-
-
-#if 0
-static __inline__
+#if USE_EXPERIMENTAL_CODE && 0
+static
 bool is_isegment_nz (const char * str, size_t sz)
 {
     if (sz == 0)
@@ -728,10 +588,8 @@ bool is_isegment_nz (const char * str, size_t sz)
     return is_isegment (str, sz);
 }
 #endif
-
-
-#if 0
-static __inline__
+#if USE_EXPERIMENTAL_CODE && 0
+static
 bool is_isegment_nz_nc (const char * str, size_t sz)
 {
     if (sz == 0)
@@ -741,10 +599,8 @@ bool is_isegment_nz_nc (const char * str, size_t sz)
     return is_isegment (str, sz);
 }
 #endif
-
-
-#if 0
-static __inline__
+#if USE_EXPERIMENTAL_CODE && 0
+static
 bool is_ireg_name (const char * str, size_t sz)
 {
     const char * end = str + sz;
@@ -764,28 +620,26 @@ bool is_ireg_name (const char * str, size_t sz)
     return true;
 }
 #endif
-
-
-static __inline__
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_ipath_rootless (const char * str);
-
-static __inline__
+static
 bool is_ipath_absolute (const char * str)
 {
     if (*str++ != '/')
         return false;
     return is_ipath_rootless (str);
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_ipath_empty (const char * str)
 {
     return (*str == '\0');
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_ipath_abempty (const char * str)
 {
     for (;;)
@@ -805,9 +659,9 @@ bool is_ipath_abempty (const char * str)
         }
     }
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_ipath_rootless (const char * str)
 {
     str = eat_isegment_nz (str);
@@ -816,10 +670,9 @@ bool is_ipath_rootless (const char * str)
 
     return is_ipath_abempty (str);
 }
-
-
-#if 0
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE && 0
+static
 bool is_ipath_noscheme (const char * str)
 {
     str = eat_isegment_nz_nc (str);
@@ -830,9 +683,8 @@ bool is_ipath_noscheme (const char * str)
     return is_ipath_abempty (str);
 }
 #endif
-
-
-static __inline__
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_hier (const char * str)
 {
     if ((str[0] == '/') && (str[1] == '/'))
@@ -853,14 +705,16 @@ bool is_hier (const char * str)
 
     return false;
 }
+#endif
 
 
-#if 0
+
+#if USE_EXPERIMENTAL_CODE && 0
 /*
  * confusion and ambiguity in the world of RFCs...
  *  We're gonna go with the RFC-3987 definition of ihost as ireg-name
  */
-static __inline__
+static
 const char * eat_hostname (const char * str)
 {
     /* -----
@@ -882,13 +736,13 @@ const char * eat_hostname (const char * str)
     }
 }
 #endif
-#if 0
+#if USE_EXPERIMENTAL_CODE && 0
 /* -----
  * number.number.number.numer 
  * does not range check number
  * sigh...
  */
-static __inline__
+static
 const char * eat_ipv6 (const char * str)
 {
 #if 1
@@ -942,12 +796,12 @@ const char * eat_ipv6 (const char * str)
 #endif
 }
 #endif
-#if 0
+#if USE_EXPERIMENTAL_CODE && 0
 /* -----
  * number.number.number.numer 
  * does not range check number
  */
-static __inline__
+static
 const char * eat_ipv4 (const char * str)
 {
     do
@@ -972,8 +826,8 @@ const char * eat_ipv4 (const char * str)
     return str;
 }
 #endif
-#if 0
-static __inline__
+#if USE_EXPERIMENTAL_CODE && 0
+static
 const char * eat_hostnumber (const char * str)
 {
     const char * temp;
@@ -984,8 +838,8 @@ const char * eat_hostnumber (const char * str)
     return temp;
 }
 #endif
-#if 0
-static __inline__
+#if USE_EXPERIMENTAL_CODE && 0
+static
 const char * eat_host (const char * str)
 {
     const char * temp;
@@ -996,10 +850,8 @@ const char * eat_host (const char * str)
     return temp;
 }
 #endif
-
-
-#if 0
-static __inline__
+#if USE_EXPERIMENTAL_CODE && 0
+static
 const char * eat_fsegment (const char * str)
 {
     for (;;++str)
@@ -1015,11 +867,9 @@ const char * eat_fsegment (const char * str)
     return str;
 }
 #endif
-
-
+#if USE_EXPERIMENTAL_CODE && 0
 /* fpath = fsegment *[ "/" fsegment ] */
-#if 0
-static __inline__
+static
 bool is_fpath (const char * str)
 {
     for (;;)
@@ -1036,9 +886,8 @@ bool is_fpath (const char * str)
     return false; /* unreachable really */
 }
 #endif
-
-
-static __inline__
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_file_hier (const char * str)
 {
 #if 0
@@ -1062,7 +911,6 @@ bool is_file_hier (const char * str)
     }
     return is_fpath (str);
 #else
-#if 0
     if ((str[0] == '/') && (str[1] == '/'))
     {
         const char * temp = eat_file_iauthority (str);
@@ -1080,46 +928,34 @@ bool is_file_hier (const char * str)
         return true;
 
     return false;
-#else
-    /* by this point we aren't limited to ASCII  leave it for KFS*/
-    return true;
-#endif
 #endif
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_file_query (const char * str)
 {
     return (*str == '\0');
 
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_file_fragment (const char * str)
 {
     return (*str == '\0');
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_kfs_hier (const char * str)
 {
     return is_file_hier (str);
 }
-
-
-static __inline__
-bool is_acc_hier (const char * str)
-{
-    /* not really doing this now */
-    return true;
-}
-
-
-static __inline__
-const char * eat_kfs_query (const char * str, VPOption ** opt)
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
+const char * eat_kfs_query (const char * str, KPOption ** opt)
 {
     /*
      *    query_entry = "encrypt" / "enc" / ( "pwfile=" hier-part ) / ( "pwfd=" fd )
@@ -1137,16 +973,15 @@ const char * eat_kfs_query (const char * str, VPOption ** opt)
             if ((str[3] == '\0') || (str[3] == '&'))
                 temp =  str + 3;
 
-            else if ((strncasecmp ("rypt", str+3, 4) == 0) && 
-                     ((str[7] == '\0') || (str[7] == '&')))
+            if ((strncasecmp ("rypt", str+3, 4) == 0) && 
+                ((str[7] == '\0') || (str[7] == '&')))
                 temp = str + 7;
-
             if (temp)
             {
-                VPOption * o;
+                KPOption * o;
                 rc_t rc;
 
-                rc = VPOptionMake (&o, vpopt_encrypted, temp, 0);
+                rc = KPOptionMake (&o, kpopt_encrypted, temp, 0);
                 if (rc)
                     return false;
                 *opt = o;
@@ -1165,10 +1000,10 @@ const char * eat_kfs_query (const char * str, VPOption ** opt)
                 ++temp1;
             if (temp1 != temp2)
             {
-                VPOption * o;
+                KPOption * o;
                 rc_t rc;
 
-                rc = VPOptionMake (&o, vpopt_pwpath, temp2, temp1-temp2);
+                rc = KPOptionMake (&o, kpopt_pwpath, temp2, temp1-temp2);
                 if (rc)
                     return false;
                 *opt = o;
@@ -1186,32 +1021,10 @@ const char * eat_kfs_query (const char * str, VPOption ** opt)
                 break;
             if ((*temp1 == '\0') || (*temp1 == '&'))
             {
-                VPOption * o;
-                rc_t rc;
-
-                rc = VPOptionMake (&o, vpopt_pwfd, temp2, temp1-temp2);
-                if (rc)
-                    return false;
-                *opt = o;
-                return temp1;
-            }
-        }
-        break;
-    case 'r':
-        if (strncasecmp ("eadgroup=", str + 1, sizeof ("eadgroup=") - 1) == 0)
-        {
-            const char * temp1 = str + 1 + sizeof ("eadgroup=") - 1;
-            const char * temp2 = temp1;
-            while (isprint(*temp1))
-                ++temp1;
-            if (temp1 == temp2)
-                break;
-            if ((*temp1 == '\0') || (*temp1 == '&'))
-            {
-                VPOption * o;
+                KPOption * o;
                 rc_t rc;
 
-                rc = VPOptionMake (&o, vpopt_readgroup, temp2, temp1-temp2);
+                rc = KPOptionMake (&o, kpopt_pwfd, temp2, temp1-temp2);
                 if (rc)
                     return false;
                 *opt = o;
@@ -1219,77 +1032,14 @@ const char * eat_kfs_query (const char * str, VPOption ** opt)
             }
         }
         break;
-    case 't':
-        if (strncasecmp ("emporary_pw_hack=", str + 1, sizeof ("emporary_pw_hack=") - 1) == 0)
-        {
-            const char * temp1 = str + 1 + sizeof ("emporary_pw_hack=") - 1;
-            const char * temp2 = temp1;
-            while (isalnum(*temp1))
-                ++temp1;
-            if (temp1 == temp2)
-                break;
-            if ((*temp1 == '\0') || (*temp1 == '&'))
-            {
-                VPOption * o;
-                rc_t rc;
 
-                rc = VPOptionMake (&o, vpopt_temporary_pw_hack, temp2, temp1-temp2);
-                if (rc)
-                    return false;
-                *opt = o;
-                return temp1;
-            }
-        }
-        else if (strncasecmp ("ic=", str + 1, sizeof ("ic=") - 1) == 0)
-        {
-            const char * temp1 = str + 1 + sizeof ("ic=") - 1;
-            const char * temp2 = temp1;
-            while ( * temp1 != 0 && * temp1 != '&' )
-                ++temp1;
-            if (temp1 == temp2)
-                break;
-            if ((*temp1 == '\0') || (*temp1 == '&'))
-            {
-                VPOption * o;
-                rc_t rc;
-
-                rc = VPOptionMake (&o, vpopt_gap_ticket, temp2, temp1-temp2);
-                if (rc)
-                    return false;
-                *opt = o;
-                return temp1;
-            }
-        }
-        break;
-    case 'v':
-        if (strncasecmp ("db-ctx=", str + 1, sizeof ("db-ctx=") - 1) == 0)
-        {
-            const char * temp1 = str + 1 + sizeof ("db-ctx=") - 1;
-            const char * temp2 = temp1;
-            while (isalnum(*temp1))
-                ++temp1;
-            if (temp1 == temp2)
-                break;
-            if ((*temp1 == '\0') || (*temp1 == '&'))
-            {
-                VPOption * o;
-                rc_t rc;
-
-                rc = VPOptionMake (&o, vpopt_vdb_ctx, temp2, temp1-temp2);
-                if (rc)
-                    return false;
-                *opt = o;
-                return temp1;
-            }
-        }
-        break;
     }
     PATH_DEBUG (("%s: failed '%s'\n",__func__,str));
     return NULL;
 }
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_kfs_query (const char * str, BSTree * tree)
 {
     /* 
@@ -1304,45 +1054,37 @@ bool is_kfs_query (const char * str, BSTree * tree)
 
     for (;;)
     {
-        VPOption * o = NULL;
+        KPOption * o = NULL;
 
-        /* this returns an allocation */
         temp = eat_kfs_query (str, &o);
-        if ( o == NULL )
+        if ((temp == NULL) || (o == NULL))
             return false;
-        if ( temp == NULL )
-        {
-            VPOptionWhack ( & o -> node, NULL );
-            return false;
-        }
 
-        switch ( o -> name )
+        /* can only have one of these two */
+        if ((o->name == kpopt_pwpath) || (o->name == kpopt_pwfd))
         {
-        case vpopt_pwpath:
-        case vpopt_pwfd:
-            /* can only have one of these */
-            if ( BSTreeInsertUnique ( tree, &o->node, NULL, VPOptionSort ) != 0)
-            {
-                VPOptionWhack ( & o -> node, NULL );
+            BSTNode * n;
+
+            n = BSTreeFind ( tree, (void*)kpopt_pwpath, KPOptionCmp );
+            if (n)
                 return false;
-            }
-            break;
-        case vpopt_temporary_pw_hack:
-        case vpopt_vdb_ctx:
-        case vpopt_gap_ticket:
-        case vpopt_encrypted:
-        case vpopt_readgroup:
-            /* the behavior here appears to be
-               tolerate repeats, but only insert first */
-            if ( BSTreeInsertUnique ( tree, &o->node, NULL, VPOptionSort ) != 0)
-                VPOptionWhack ( & o -> node, NULL );
-            break;
 
-        default:
-            VPOptionWhack ( & o -> node, NULL );
-            break;
+            n = BSTreeFind ( tree, (void*)kpopt_pwfd, KPOptionCmp );
+            if (n)
+                return false;
+
+            if ( BSTreeInsert ( tree, &o->node, KPOptionSort ) != 0)
+                return false;
         }
+        else if ( o->name == kpopt_encrypted )
+        {
+            BSTNode * n;
 
+            n = BSTreeFind ( tree, (void*)kpopt_pwpath, KPOptionCmp );
+            if (n == NULL)
+                if ( BSTreeInsert ( tree, &o->node, KPOptionSort ) != 0)
+                    return false;
+        }
         str = temp;
         if (*str == '\0')
             break;
@@ -1354,37 +1096,18 @@ bool is_kfs_query (const char * str, BSTree * tree)
     }
     return true;
 }
-
-static __inline__
-bool is_http_query (const char * str, BSTree * tree)
-{
-    return is_kfs_query (str, tree);
-}
-
-
-static __inline__
-bool is_acc_query (const char * str, BSTree * tree)
-{
-    return is_kfs_query (str, tree);
-}
-
-
-static __inline__
+#endif
+#if USE_EXPERIMENTAL_CODE
+static
 bool is_kfs_fragment (const char * str)
 {
-    return true;
-/*     return (*str == '\0'); */
-}
-
-
-static __inline__
-bool is_acc_fragment (const char * str)
-{
     return (*str == '\0');
 }
+#endif
 
 
-
+#if USE_EXPERIMENTAL_CODE
+#if SUPPORT_FILE_URL
 /*
  * file://host/path bue we allow file:/path
  *
@@ -1393,7 +1116,7 @@ bool is_acc_fragment (const char * str)
  * fileurl = "file://" [host / "localhost" ] "/" fpath
  */
 static
-rc_t VPathMakeUriFile (VPath * self, char * new_allocation, 
+rc_t KPathMakeUriFile (KPath * self, char * new_allocation, 
                        size_t sz, char * hier, char * query,
                        char * fragment)
 {
@@ -1418,25 +1141,24 @@ rc_t VPathMakeUriFile (VPath * self, char * new_allocation,
 
     PATH_DEBUG (("%s: hier '%s' query '%s' fragment '%s'\n", __func__,
                  hier, query, fragment));
-    rc = VPathTransformPathHier (&hier);
+    rc = KPathTransformPathHier (&hier);
     PATH_DEBUG (("%s: hier '%s' query '%s' fragment '%s'\n", __func__,
                  hier, query, fragment));
     if (rc)
-    {
-        self->storage = NULL;
         return rc;
-    }
     StringInitCString (&self->path, hier);
     self->query = query;
     self->fragment = fragment;
     PATH_DEBUG (("%s: path '%S' fragment '%s'\n", __func__,
                  &self->path, self->fragment));
     return 0;
-}
-
-        
+}        
+#endif
+#endif
+#if USE_EXPERIMENTAL_CODE
+#if SUPPORT_FILE_URL
 static
-rc_t VPathMakeUriKfs (VPath * self, char * new_allocation, 
+rc_t KPathMakeUriKfs (KPath * self, char * new_allocation, 
                       size_t sz, char * hier,
                       char * query, char * fragment)
 {
@@ -1472,217 +1194,44 @@ rc_t VPathMakeUriKfs (VPath * self, char * new_allocation,
 
     PATH_DEBUG (("%s: hier '%s' query '%s' fragment '%s'\n", __func__,
                  hier, query, fragment));
-    rc = VPathTransformPathHier (&hier);
+    rc = KPathTransformPathHier (&hier);
     PATH_DEBUG (("%s: hier '%s' query '%s' fragment '%s'\n", __func__,
                  hier, query, fragment));
     if (rc)
-    {
-        self->storage = NULL;
         return rc;
-    }
-    StringInitCString (&self->path, hier);
-    self->query = query;
-    self->fragment = fragment;
-    PATH_DEBUG (("%s: path '%S' fragment '%s'\n", __func__,
-                 &self->path, self->fragment));
-    return 0;
-}
-
-
-
-static
-rc_t VPathMakeUriAcc (VPath * self, char * new_allocation, 
-                      size_t sz, char * hier,
-                      char * query, char * fragment)
-{
-    rc_t rc;
-
-    assert (self);
-    assert (new_allocation);
-    assert (sz);
-    assert (hier);
-    assert (query);
-    assert (fragment);
-
-    if (!is_acc_hier (hier))
-    {
-        PATH_DEBUG (("%s: failed is_acc_hier '%s'\n", __func__, hier));
-        return RC (rcFS, rcPath, rcConstructing, rcUri, rcInvalid);
-    }
-
-    if (!is_acc_query (query, &self->options))
-    {
-        PATH_DEBUG (("%s: failed is_kfs_query '%s'\n",__func__, query));
-        return RC (rcFS, rcPath, rcConstructing, rcUri, rcInvalid);
-    }
-
-    if (!is_kfs_fragment (fragment))
-    {
-        PATH_DEBUG (("%s: failed is_kfs_fragment '%s'\n",__func__, fragment));
-        return RC (rcFS, rcPath, rcConstructing, rcUri, rcInvalid);
-    }
-
-    free (self->storage);
-    self->storage = new_allocation;
-    self->alloc_size = sz;
-
-    PATH_DEBUG (("%s: hier '%s' query '%s' fragment '%s'\n", __func__,
-                 hier, query, fragment));
-    rc = VPathTransformPathHier (&hier);
-    PATH_DEBUG (("%s: hier '%s' query '%s' fragment '%s'\n", __func__,
-                 hier, query, fragment));
-    if (rc)
-    {
-        self->storage = NULL;
-        return rc;
-    }
-    StringInitCString (&self->path, hier);
-    self->query = query;
-    self->fragment = fragment;
-    PATH_DEBUG (("%s: path '%S' fragment '%s'\n", __func__,
-                 &self->path, self->fragment));
-    return 0;
-}
-
-
-static
-rc_t VPathMakeUriHttp (VPath * self, char * new_allocation, 
-                      size_t sz, char * hier,
-                      char * query, char * fragment)
-{
-    assert (self);
-    assert (new_allocation);
-    assert (sz);
-    assert (hier);
-    assert (query);
-    assert (fragment);
-
-    if (!is_http_query (query, &self->options))
-    {
-        PATH_DEBUG (("%s: failed is_http_query '%s'\n",__func__, query));
-        return RC (rcFS, rcPath, rcConstructing, rcUri, rcInvalid);
-    }
-
-    free (self->storage);
-    self->storage = new_allocation;
-    self->alloc_size = sz;
-
-    StringInitCString (&self->path, hier);
-    self -> query = query;
-    self->fragment = fragment;
-    PATH_DEBUG (("%s: path '%S' fragment '%s'\n", __func__,
-                 &self->path, self->fragment));
-    return 0;
-}
-
-
-static
-rc_t VPathMakeUriFtp (VPath * self, char * new_allocation, 
-                      size_t sz, char * hier,
-                      char * query, char * fragment)
-{
-    assert (self);
-    assert (new_allocation);
-    assert (sz);
-    assert (hier);
-    assert (query);
-    assert (fragment);
-
-    free (self->storage);
-    self->storage = new_allocation;
-    self->alloc_size = sz;
-
     StringInitCString (&self->path, hier);
     self->fragment = fragment;
-    PATH_DEBUG (("%s: path '%S' fragment '%s'\n", __func__,
+    PATH_DEBUG (("%s: path '%S' fragment '%S'\n", __func__,
                  &self->path, self->fragment));
     return 0;
 }
-
-static
-rc_t VPathMakeUriNcbiLegrefseq (VPath * self, char * new_allocation, 
-                                size_t sz, char * hier,
-                                char * query, char * fragment)
-{
-    assert (self);
-    assert (new_allocation);
-    assert (sz);
-    assert (hier);
-    assert (query);
-    assert (fragment);
-
-    free (self->storage);
-    self->storage = new_allocation;
-    self->alloc_size = sz;
-
-    StringInitCString (&self->path, hier);
-    self->fragment = fragment;
-    PATH_DEBUG (("%s: path '%S' fragment '%s'\n", __func__,
-                 &self->path, self->fragment));
-    return 0;
-}
-
-
-
-
+#endif
+#endif
+#if USE_EXPERIMENTAL_CODE
 static
-VPUri_t scheme_type (const char * scheme)
+KPUri_t scheme_type (const char * scheme)
 {
     /* We have a "legal" scheme name. We'll only look for specific schemes we
      * support and mark all others as merely unsupported rather than 
      * differentiate types we don't care about.
      */
-    switch (tolower(scheme[0]))
+#if SUPPORT_FILE_URL
+    if (strcasecmp ("file", scheme) == 0)
     {
-    case '\0':
-        PATH_DEBUG (("%s: no scheme\n",__func__));
-        return vpuri_none;
-
-    case 'f':
-        if (strcasecmp ("file", scheme) == 0)
-        {
-            PATH_DEBUG (("%s: file scheme\n",__func__));
-            return vpuri_file;
-        }
-        if (strcasecmp (FTP_SCHEME, scheme) == 0)
-        {
-            PATH_DEBUG (("%s: " FTP_SCHEME " scheme\n",__func__));
-            return vpuri_ftp;
-        }
-        break;
-
-    case 'n':
-        if (strcasecmp (NCBI_FILE_SCHEME, scheme) == 0)
-        {
-            PATH_DEBUG (("%s: " NCBI_FILE_SCHEME " scheme\n",__func__));
-            return vpuri_ncbi_vfs;
-        }
-        else if (strcasecmp (NCBI_ACCESSION_SCHEME, scheme) == 0)
-        {
-            PATH_DEBUG (("%s: " NCBI_ACCESSION_SCHEME " scheme\n",__func__));
-            return vpuri_ncbi_acc;
-        }
-        break;
-
-    case 'h':
-        if (strcasecmp (HTTP_SCHEME, scheme) == 0)
-        {
-            PATH_DEBUG (("%s: " HTTP_SCHEME " scheme\n",__func__));
-            return vpuri_http;
-        }
-        break;
+        PATH_DEBUG (("%s: file scheme\n",__func__));
+        return kpuri_file;
+    }
+#endif
 
-    case 'x':
-        if (strcasecmp (NCBI_LEGREFSEQ_SCHEME, scheme) == 0)
-        {
-            PATH_DEBUG (("%s: " NCBI_LEGREFSEQ_SCHEME " scheme\n",__func__));
-            return vpuri_ncbi_legrefseq;
-        }
-        break;
+    if (strcasecmp (NCBI_FILE_SCHEME, scheme) == 0)
+    {
+        PATH_DEBUG (("%s: " NCBI_FILE_SCHEME " scheme\n",__func__));
+        return kpuri_ncbi_kfs;
     }
 
-    return vpuri_not_supported;
+    return kpuri_not_supported;
 }
+#endif
 
 
 /*
@@ -1695,9 +1244,10 @@ VPUri_t scheme_type (const char * scheme)
  * of the other parts waiting for a scheme specific parsing
  */
 
+#if USE_EXPERIMENTAL_CODE
 /* pcopy and scheme point to the same place - seems redundant */
 static
-rc_t VPathSplitUri (VPath * self, char ** pcopy, size_t * psiz, char ** scheme, char ** hier,
+rc_t KPathSplitUri (KPath * self, char ** pcopy, size_t * psiz, char ** scheme, char ** hier,
                     char ** query, char ** fragment)
 {
     char * copy;
@@ -1735,21 +1285,12 @@ rc_t VPathSplitUri (VPath * self, char ** pcopy, size_t * psiz, char ** scheme,
          * with "-", ",", "_", and "~"
          */
         if ((h == NULL) || (h == s))
-        {
-            h = s;
-            s = e;
             break;
-        }
 
         *h++ = '\0';
-
         if (! is_scheme (s))
-        {
-            h[-1] = ':';
-            h = s;
-            s = e;
             break;
-        }
+        
         if (h != e)
         {
             f = strchr (h, '#');
@@ -1766,23 +1307,23 @@ rc_t VPathSplitUri (VPath * self, char ** pcopy, size_t * psiz, char ** scheme,
             else
                 *q++ = '\0';
         }
-#if 0
-        if (! is_hier (h))
+
+        if (! string_decode (h))
             break;
 
-        if (! is_query (q))
+        if (! string_decode (q))
             break;
 
-        if (! is_fragment (f))
+        if (! string_decode (f))
             break;
-#endif
-        if (! string_decode (h))
+        
+        if (! is_hier (h))
             break;
 
-        if (! string_decode (q))
+        if (! is_query (q))
             break;
 
-        if (! string_decode (f))
+        if (! is_fragment (f))
             break;
 
         *scheme = s;
@@ -1795,12 +1336,14 @@ rc_t VPathSplitUri (VPath * self, char ** pcopy, size_t * psiz, char ** scheme,
     }
 
     free (copy);
-    return SILENT_RC (rcFS, rcPath, rcParsing, rcUri, rcInvalid);
+    return RC (rcFS, rcPath, rcParsing, rcUri, rcInvalid);
 }
+#endif
 
 
+#if USE_EXPERIMENTAL_CODE
 static
-rc_t VPathParseURI (VPath * self)
+rc_t KPathParseURI (KPath * self)
 {
     char * parsed_uri;
     char * scheme;
@@ -1810,61 +1353,34 @@ rc_t VPathParseURI (VPath * self)
     size_t allocated;
     rc_t rc;
 
-    PATH_DEBUG (("%s: starting path '%s'\n",__func__,self->path.addr));
-    rc = VPathSplitUri (self, &parsed_uri, &allocated, &scheme, &hier, &query, &fragment);
+    rc = KPathSplitUri (self, &parsed_uri, &allocated, &scheme, &hier, &query, &fragment);
     PATH_DEBUG (("%s: allocated %p '%zu'\n",__func__,parsed_uri,allocated));
     if (rc == 0)
     {
-        switch (self->scheme = scheme_type (scheme))
+        switch (scheme_type (scheme))
         {
-        case vpuri_invalid:
+        case kpuri_invalid:
             rc = RC (rcFS, rcPath, rcParsing, rcUri, rcInvalid);
             break;
 
-        case vpuri_not_supported:
+        case kpuri_not_supported:
             rc = RC (rcFS, rcPath, rcParsing, rcUri, rcIncorrect);
             break;
 
-        case vpuri_file:
-            PATH_DEBUG (("%s: call VPathMakeUriFile\n",__func__));
-            rc = VPathMakeUriFile (self, parsed_uri, allocated, hier, query,
+#if SUPPORT_FILE_URL
+        case kpuri_file:
+            PATH_DEBUG (("%s: call KPathMakeUriFile\n",__func__));
+            rc = KPathMakeUriFile (self, parsed_uri, allocated, hier, query,
                                    fragment);
             break;
+#endif
 
-        case vpuri_ncbi_vfs:
-            PATH_DEBUG (("%s: call VPathMakeUriKfs\n",__func__));
-            rc = VPathMakeUriKfs (self, parsed_uri, allocated, hier, query,
-                                  fragment);
-            break;
-
-        case vpuri_ncbi_acc:
-            PATH_DEBUG (("%s: call VPathMakeUriAcc\n",__func__));
-            rc = VPathMakeUriAcc (self, parsed_uri, allocated, hier, query,
-                                  fragment);
-            break;
-
-        case vpuri_http:
-            PATH_DEBUG (("%s: call VPathMakeUriHttp\n",__func__));
-            rc = VPathMakeUriHttp (self, parsed_uri, allocated, hier, query,
-                                   fragment);
-
-            break;
-
-        case vpuri_ftp:
-            PATH_DEBUG (("%s: call VPathMakeUriFtp\n",__func__));
-            rc = VPathMakeUriFtp (self, parsed_uri, allocated, hier, query,
+        case kpuri_ncbi_kfs:
+            PATH_DEBUG (("%s: call KPathMakeUriKfs\n",__func__));
+            rc = KPathMakeUriKfs (self, parsed_uri, allocated, hier, query,
                                   fragment);
-
             break;
 
-        case vpuri_ncbi_legrefseq:
-            PATH_DEBUG (("%s: call VPathMakeUriNcbiLegrefseq\n",__func__));
-            rc = VPathMakeUriNcbiLegrefseq (self, parsed_uri, allocated, hier, query,
-                                            fragment);
-
-            break;
-
-
         default:
             rc = RC (rcFS, rcPath, rcParsing, rcUri, rcCorrupt);
             break;
@@ -1874,14 +1390,14 @@ rc_t VPathParseURI (VPath * self)
     }
     return rc;
 }
-
+#endif
 
 static
-rc_t VPathAlloc (VPath ** pself, const char * path_string)
+rc_t KPathAlloc (KPath ** pself, const char * path_string)
 {
     rc_t rc;
     size_t z, zz;
-    VPath * self;
+    KPath * self;
 
 
     zz = 1 + (z = string_size (path_string));
@@ -1929,7 +1445,7 @@ rc_t VPathAlloc (VPath ** pself, const char * path_string)
 
 
 static
-rc_t VPathMakeValidateParams (VPath ** new_path, const char * path)
+rc_t KPathMakeValidateParams (KPath ** new_path, const char * path)
 {
     if (new_path == NULL)
         return RC (rcFS, rcPath, rcConstructing, rcSelf, rcNull);
@@ -1940,18 +1456,20 @@ rc_t VPathMakeValidateParams (VPath ** new_path, const char * path)
 }
 
 
-LIB_EXPORT rc_t CC VPathMake ( VPath ** new_path, const char * posix_path)
+LIB_EXPORT rc_t CC KPathMake ( KPath ** new_path, const char * posix_path)
 {
-    VPath * self;
+    KPath * self;
     rc_t rc;
 
-    rc = VPathMakeValidateParams (new_path, posix_path);
+    rc = KPathMakeValidateParams (new_path, posix_path);
     if (rc == 0)
     {
-        rc = VPathAlloc (&self, posix_path);
+        rc = KPathAlloc (&self, posix_path);
         if (rc == 0)
         {
-            rc = VPathParseURI (self);
+#if USE_EXPERIMENTAL_CODE
+            rc = KPathParseURI (self);
+#endif
 
             /* ignore return - if its bad just leave the path alone even if 
              * it turns out to be bad later */
@@ -1963,228 +1481,81 @@ LIB_EXPORT rc_t CC VPathMake ( VPath ** new_path, const char * posix_path)
 }
 
 
-LIB_EXPORT rc_t CC VPathMakeSysPath ( VPath ** new_path, const char * sys_path)
+LIB_EXPORT rc_t CC KPathMakeSysPath ( KPath ** new_path, const char * sys_path)
 {
-    VPath * self;
+    KPath * self;
     rc_t rc;
 
-    rc = VPathMakeValidateParams (new_path, sys_path);
+    rc = KPathMakeValidateParams (new_path, sys_path);
     if (rc)
     {
-        LOGERR (klogErr, rc, "error with VPathMakeValidateParams");
+        LOGERR (klogErr, rc, "error with KPathMakeValidateParams");
         return rc;
     }
 
-    rc = VPathAlloc (&self, sys_path);
+    rc = KPathAlloc (&self, sys_path);
     if (rc)
         return rc;
-
+#if USE_EXPERIMENTAL_CODE
     /* first try as URI then as a system specific path */
-    rc = VPathParseURI (self);
+    rc = KPathParseURI (self);
     if (rc)
-    {
-        PATH_DEBUG (("%s: failed VPathParse URI '%R'\n",__func__,rc));
-        rc = VPathTransformSysPath(self);
-        if (rc)
-            PATH_DEBUG (("%s: failed VPathTransformSysPath URI '%R'\n",__func__,rc));
-    }
+#endif
+        rc = KPathTransformSysPath(self);
+
     if (rc)
-        VPathDestroy (self);
+        KPathDestroy (self);
     else
         *new_path = self;
     return rc;
 }
 
 
-LIB_EXPORT rc_t CC VPathMakeVFmt ( VPath ** new_path, const char * fmt, va_list args )
+LIB_EXPORT rc_t CC KPathMakeVFmt ( KPath ** new_path, const char * fmt, va_list args )
 {
     size_t len;
     rc_t rc;
     char buffer [32*1024]; /* okay we really don't want any larger than this I suppose */
 
-    rc = VPathMakeValidateParams (new_path, fmt);
+    rc = KPathMakeValidateParams (new_path, fmt);
     if (rc)
         return rc;
 
-    rc = string_vprintf (buffer, sizeof (buffer), &len, fmt, args);
+    rc = string_printf (buffer, sizeof (buffer), &len, fmt, args);
     if (rc)
         return rc;
 
     if (len >= sizeof buffer)
         return RC (rcFS, rcPath, rcConstructing, rcBuffer, rcInsufficient);
 
-    return VPathMake (new_path, buffer);
+    return KPathMake (new_path, buffer);
 }
 
 
-LIB_EXPORT rc_t CC VPathMakeFmt ( VPath ** new_path, const char * fmt, ... )
+LIB_EXPORT rc_t CC KPathMakeFmt ( KPath ** new_path, const char * fmt, ... )
 {
     rc_t rc;
     va_list args;
 
     va_start (args, fmt);
-    rc = VPathMakeVFmt (new_path, fmt, args);
+    rc = KPathMakeVFmt (new_path, fmt, args);
     va_end (args);
 
     return rc;
 }
 
-
-
-/* -----
- * for this to work
- * the base path must be a directory or have no hiearchical part at all
- *
- * is the srapathmgr is not NULL we first try to resolve the relative path as 
- * an srapath 'alias'
- */
-LIB_EXPORT rc_t CC VPathMakeDirectoryRelative ( VPath ** new_path, const KDirectory * basedir,
-                                                const char * relative_path, SRAPath * srapathmgr )
+LIB_EXPORT rc_t CC KPathMakeRelative ( KPath ** new_path, const KPath * base_path,
+                                       const char * relative_path )
 {
-    VPath * vpath = NULL;
-    VPath * rpath = NULL;
-    VPath * fpath = NULL;
-    char sbuff [8192];
-    rc_t rc;
+    rc_t rc = RC (rcFS, rcPath, rcConstructing, rcFunction, rcUnsupported);
 
-/*     KOutMsg ("%s: %s\n", __func__, relative_path); */
 
-    if (new_path == NULL)
-        return RC (rcVFS, rcPath, rcConstructing, rcSelf, rcNull);
-
-    *new_path = NULL;
-
-    if ((basedir == NULL) ||
-        (relative_path == NULL))
-        return RC (rcVFS, rcPath, rcConstructing, rcParam, rcNull);
 
-    /*
-     * create a VPath off the relative path.  This will create one of three things
-     * as of when this was writen:
-     *  1: kfile_acs uri
-     *  2: full path
-     *  3: relative path
-     *
-     * Handling (1) is easy and mirrors the quick out above.
-     */
-    rc = VPathMakeSysPath (&rpath, relative_path);
-    if (rc == 0)
-    {
-        VFSManager *vmgr;
-        bool it_worked = false;
-
-        switch (rpath->scheme)
-        {
-        case vpuri_none:
-            if (string_chr (relative_path, string_size (relative_path), '/') != NULL)
-                goto treat_as_file_path;
-            /* else fall through no break */
-        case vpuri_ncbi_acc:
-            /*
-             * First we'll see if the relative path is actually an accession
-             * in which case we ignore the base dir
-             */
-            rc = VFSManagerMake (&vmgr);
-            if (rc == 0)
-            {
-                VResolver * resolver;
-
-                rc = VFSManagerGetResolver (vmgr, &resolver);
-                if (rc == 0)
-                {
-                    rc = VResolverLocal (resolver, rpath, (const VPath **)&fpath);
-                    if (rc == 0)
-                        it_worked = true;
-
-                    else if (GetRCState (rc) == rcNotFound)
-                    {
-                        rc = VResolverRemote (resolver, rpath, ( const VPath** ) &fpath, NULL);
-                        if (rc == 0)
-                            it_worked = true;
-                    }
-                    VResolverRelease (resolver);
-                }
-                VFSManagerRelease (vmgr);
-            }
-            if (it_worked)
-            {
-                *new_path = fpath;
-                rc = 0;
-            }
-            break;
-            
-        case vpuri_ncbi_vfs:
-        case vpuri_file:
-        treat_as_file_path:
-            /* full path or relative? */
-            if (rpath->path.addr[0] == '/')
-            {
-                /* full path is done */
-                *new_path = rpath;
-                return 0;
-            }
-            /* our relative path really is relative and must be resolved */
-            rc = KDirectoryResolvePath (basedir, true, sbuff, sizeof sbuff,
-                                        rpath->path.addr);
-            if (rc == 0)
-            {
-                rc = VPathMake (&vpath, sbuff);
-                if (rc == 0)
-                {
-                    char * use_opts;
-
-/*                         KOutMsg ("%s: 2.5 %s %s\n", __func__, sbuff, vpath->path.addr); */
-
-                    use_opts = vpath->query;
-/*                         KOutMsg ("%s: 2.6 %s %s\n", __func__, sbuff, vpath->path.addr); */
-                    if ((use_opts == NULL) || (use_opts[0] == '\0'))
-                    {
-/*                         KOutMsg ("%s: 2.7 %s %s\n", __func__, sbuff, vpath->path.addr); */
-                        use_opts = rpath->query;
-                    }
-/*                         KOutMsg ("%s: 2.8 %s %s\n", __func__, sbuff, vpath->path.addr); */
-
-                    memmove (sbuff, "ncbi-file:", sizeof "ncbi-file:");
-                    memmove (sbuff + sizeof "ncbi-file", vpath->path.addr, vpath->path.size + 1);
-                    if (use_opts)
-                    {
-                        sbuff[sizeof "ncbi-file" + vpath->path.size] = '?';
-                        memmove (sbuff + sizeof "ncbi-file" + vpath->path.size + 1, use_opts, string_size (use_opts) + 1);
-                    }
-/*                         KOutMsg ("%s: 2.9 %s %s\n", __func__, sbuff, vpath->path.addr); */
-
-                    rc = VPathMake (&fpath, sbuff);
-                    if (rc == 0)
-                    {
-/*                         KOutMsg ("%s: 2.10 %s %s\n", __func__, sbuff, vpath->path.addr); */
-
-                        VPathRelease (vpath);
-                        VPathRelease (rpath);
-                        *new_path = fpath;
-                        return 0;
-                    }
-                    VPathRelease (vpath);
-                }
-            }
-            break;
-
-        case vpuri_http:
-        case vpuri_ftp:
-            *new_path = rpath;
-            return 0;
-
-        case vpuri_not_supported:
-        case vpuri_invalid:
-        default:
-            break;
-        }
-        VPathRelease (rpath);
-    }
     return rc;
 }
 
 
-LIB_EXPORT rc_t CC VPathMakeCurrentPath ( VPath ** new_path )
+LIB_EXPORT rc_t CC KPathMakeCurrentPath ( KPath ** new_path )
 {
     char buff [4096];
     char * a = NULL;
@@ -2192,7 +1563,7 @@ LIB_EXPORT rc_t CC VPathMakeCurrentPath ( VPath ** new_path )
     size_t z;
     rc_t rc;
 
-    rc = VPathGetCWD (b, sizeof buff);
+    rc = KPathGetCWD (b, sizeof buff);
     if (rc)
     {
         for (z = 2 * sizeof buff; rc; z += sizeof buff)
@@ -2203,23 +1574,22 @@ LIB_EXPORT rc_t CC VPathMakeCurrentPath ( VPath ** new_path )
                 free (a);
                 return RC (rcFS, rcPath, rcConstructing, rcMemory, rcExhausted);
             }
-            rc = VPathGetCWD (b, z);
+            rc = KPathGetCWD (b, z);
         }
     }
-    rc = VPathMakeSysPath (new_path, b);
+    rc = KPathMakeSysPath (new_path, b);
     if (b != buff)
         free (b);
     return rc;
 }
 
-
 /* ----------
- * VPathReadPath
+ * KPathReadPath
  *
  * Copy the path as a ASCIZ string to the buffer.  The form will be the KFS
  * internal "posix-path" form.
  */
-LIB_EXPORT rc_t CC VPathReadPath (const VPath * self, char * buffer, size_t buffer_size,
+LIB_EXPORT rc_t CC KPathReadPath (const KPath * self, char * buffer, size_t buffer_size,
                                   size_t * num_read)
 {
     size_t z = StringSize (&self->path);
@@ -2230,22 +1600,20 @@ LIB_EXPORT rc_t CC VPathReadPath (const VPath * self, char * buffer, size_t buff
 
     PATH_DEBUG (("%s: path '%S' fragment '%s'\n", __func__,
                  &self->path, self->fragment));
+
     PATH_DEBUG (("%s: should copy '%*.*s' length '%zu'\n", __func__, z, z,
                  self->path.addr, z));
-
-    memcpy ( buffer, self->path.addr, z );
-    if ( buffer_size > z )
-        buffer[ z ] = '\0';
-    if ( num_read != NULL )
-        *num_read = z;
+    memcpy (buffer, self->path.addr, z);
+    if (buffer_size > z)
+        buffer[z] = '\0';
+    *num_read = z;
 
     PATH_DEBUG (("%s: copied '%*.*s' length '%zu'\n", __func__, z, z,
                  buffer, z));
     return 0;
 }
 
-
-LIB_EXPORT rc_t CC VPathReadQuery (const VPath * self, char * buffer, size_t buffer_size,
+LIB_EXPORT rc_t CC KPathReadQuery (const KPath * self, char * buffer, size_t buffer_size,
                                    size_t * num_read)
 {
     if (num_read == NULL)
@@ -2263,8 +1631,7 @@ LIB_EXPORT rc_t CC VPathReadQuery (const VPath * self, char * buffer, size_t buf
     return 0;
 }
 
-
-LIB_EXPORT rc_t CC VPathReadFragment (const VPath * self, char * buffer, size_t buffer_size,
+LIB_EXPORT rc_t CC KPathReadFragment (const KPath * self, char * buffer, size_t buffer_size,
                                       size_t * num_read)
 {
     if (num_read == NULL)
@@ -2284,174 +1651,19 @@ LIB_EXPORT rc_t CC VPathReadFragment (const VPath * self, char * buffer, size_t
     return 0;
 }
 
-
 /* ----------
  */
-LIB_EXPORT rc_t CC VPathOption (const VPath * self, VPOption_t option,
+LIB_EXPORT rc_t CC KPathOption (const KPath * self, KPOption_t option,
                                 char * buffer, size_t buffer_size,
                                 size_t * num_read)
 {
-    size_t o = (size_t)option; /* some oddness to use a value instead of a pointer */
-    BSTNode * n = BSTreeFind (&self->options, (void*)o, VPOptionCmp);
-    VPOption * opt;
+    size_t o = (size_t)option;
+    BSTNode * n = BSTreeFind (&self->options, (void*)o, KPOptionCmp);
+    KPOption * opt;
 
     if (n == NULL)
         return RC (rcFS, rcPath, rcAccessing, rcParam, rcNotFound);
-    opt = (VPOption*)n;
+    opt = (KPOption*)n;
     *num_read = string_copy (buffer, buffer_size, opt->value.addr, opt->value.size);
     return 0;
 }
-
-
-LIB_EXPORT VPUri_t VPathGetUri_t (const VPath * self)
-{
-    if (self)
-    {
-        VPUri_t v = self->scheme;
-        if ((v < vpuri_invalid) ||
-            (v >= vpuri_count))
-            v = vpuri_invalid;
-        return v;
-    }
-    return vpuri_invalid;
-}
-
-
-LIB_EXPORT rc_t CC VPathMakeString ( const VPath * self, const String ** uri )
-{
-    rc_t rc = 0;
-    if ( uri == NULL )
-        rc = RC ( rcVFS, rcPath, rcAccessing, rcParam, rcNull );
-    else
-    {
-        *uri = NULL;
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcPath, rcAccessing, rcSelf, rcNull );
-        else
-        {
-            /* this version is a bit of a hack */
-            struct
-            {
-                String s;
-                char   b[ 1 ];
-            } * t;
-            size_t z = self->path.addr - self->storage;
-
-            t = malloc ( sizeof * t + self->alloc_size );
-            if ( t == NULL )
-                rc = RC ( rcVFS, rcPath, rcAccessing, rcMemory, rcExhausted );
-            else
-            {
-                char *s = &( t->b[ 0 ] );
-
-                if ( z != 0 )
-                {
-                    memcpy ( s, self->storage, z - 1 );
-                    s [ z - 1 ] = ':';
-                }
-
-                memcpy ( &s[ z ], self->path.addr, self->path.size );
-                z += self->path.size;
-
-                if ( self->query != NULL && self->query[ 0 ] != '\0' )
-                {
-                    size_t y = string_size ( self->query );
-                    s[ z++ ] = '?';
-                    memcpy ( &s[ z ], self->query, y );
-                    z += y;
-                }
-
-                if ( self->fragment != NULL && self->fragment[ 0 ] != '\0' )
-                {
-                    size_t y = string_size ( self->fragment );
-                    s[ z++ ] = '#';
-                    memcpy ( &s[ z ], self->fragment, y );
-                    z += y;
-                }
-
-                s[ z ] = '\0';
-                StringInit ( &t->s, s, z, string_len ( s, z ) );
-                *uri = &t->s;
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VPathGetScheme ( const VPath * self, const String ** scheme )
-{
-    rc_t rc = 0;
-    if ( scheme == NULL )
-        rc = RC ( rcVFS, rcPath, rcAccessing, rcParam, rcNull );
-    else
-    {
-        *scheme = NULL;
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcPath, rcAccessing, rcSelf, rcNull );
-        else
-        {
-            size_t z = ( self->path.addr - self->storage );
-            if ( z > 0 )
-            {
-                struct
-                {
-                    String s;
-                    char   b[ 1 ];
-                } * t;
-                t = malloc ( sizeof * t + z );
-                if ( t == NULL )
-                    rc = RC ( rcVFS, rcPath, rcAccessing, rcMemory, rcExhausted );
-                else
-                {
-                    size_t i;
-                    char *s = &( t->b[ 0 ] );
-                    memcpy ( s, self->storage, z - 1 );
-                    for ( i = 0; i < z; ++i )
-                        s[ i ] = tolower( s[ i ] );
-                    s[ z ] = '\0';
-                    StringInit ( &t->s, s, z, string_len ( s, z ) );
-                    *scheme = &t->s;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VPathGetScheme_t( const VPath * self, VPUri_t * uri_type )
-{
-    rc_t rc = 0;
-    if ( uri_type == NULL )
-        rc = RC ( rcVFS, rcPath, rcAccessing, rcParam, rcNull );
-    else
-    {
-        *uri_type = vpuri_invalid;
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcPath, rcAccessing, rcSelf, rcNull );
-        else
-            *uri_type = self->scheme;
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VPathGetPath ( const VPath * self, const String ** path )
-{
-    rc_t rc = 0;
-    if ( path == NULL )
-        rc = RC ( rcVFS, rcPath, rcAccessing, rcParam, rcNull );
-    else
-    {
-        *path = NULL;
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcPath, rcAccessing, rcSelf, rcNull );
-        else
-        {
-            if ( StringSize ( &self->path ) > 0 )
-                rc = StringCopy ( path, &self->path );
-        }
-    }
-    return rc;
-}
diff --git a/libs/kfs/quickmount.c b/libs/kfs/quickmount.c
deleted file mode 100644
index 83e2297..0000000
--- a/libs/kfs/quickmount.c
+++ /dev/null
@@ -1,967 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <kfs/extern.h>
-#include <kfs/quickmount.h>
-#include <kfs/directory.h>
-
-#include <klib/rc.h>
-#include <klib/printf.h>
-
-#include <sysalloc.h>
-
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-
-/* ----------------------------------------------------------------------
- * 
- */
-
-/* -----
- * define the specific types to be used in the templatish/inheritancish
- * definition of vtables and their elements
- */
-#define KDIR_IMPL struct KQuickMountDir
-#define KNAMELIST_IMPL   struct KQuickMountListing
-#include <kfs/impl.h>
-
-/* ======================================================================
- */
-/*--------------------------------------------------------------------------
- * KQuickMountDir
- *  a directory inside an archive (tar or SRA for example)
- *
- * This type is being engineered to mimic KQuickMountDir.
- */
-struct KQuickMountDir
-{
-    KDirectory   dad;
-    int          root;
-    const KFile* file;
-    char *       mount;
-    char         path[1];
-    /* actual allocation is based on actual string length */
-};
-
-
-
-/* KQuickMountDirCanonPath
- */
-static
-rc_t KQuickMountDirCanonPath ( const KQuickMountDir *self, enum RCContext ctx, char *path, size_t psize )
-{
-    char *low, *dst, *last, *end = path + psize;
-    low = dst = last = path + self -> root;
-
-    while ( 1 )
-    {
-        char *src = strchr ( last + 1, '/' );
-        if ( src == NULL )
-            src = end;
-
-        /* detect special sequences */
-        switch ( src - last )
-        {
-        case 2:
-            if ( last [ 1 ] == '.' )
-            {
-                /* skip over */
-                last = src;
-                if ( src != end )
-                    continue;
-            }
-            break;
-
-        case 3:
-            if ( last [ 1 ] == '.' && last [ 2 ] == '.' )
-            {
-                /* remove previous leaf in path */
-                dst [ 0 ] = 0;
-                dst = strrchr ( path, '/' );
-                if ( dst == NULL || dst < low )
-                    return RC ( rcFS, rcDirectory, ctx, rcPath, rcInvalid );
-
-                last = src;
-                if ( src != end )
-                    continue;
-            }
-            break;
-        }
-
-        /* if rewriting, copy leaf */
-        assert ( src >= last );
-
-        if ( dst != last )
-            memmove ( dst, last, src - last );
-
-        /* move destination ahead */
-        dst += src - last;
-        
-        /* if we're done, go */
-        if ( src == end )
-                break;
-
-        /* find next separator */
-        last = src;
-    }
-
-    /* NUL terminate if modified */
-    if ( dst != end )
-        * dst = 0;
-
-    return 0;
-}
-
-/* KQuickMountDirRelativePath
- *  makes "path" relative to "root"
- *  both "root" and "path" MUST be absolute
- *  both "root" and "path" MUST be canonical, i.e. have no "./" or "../" sequences
- */
-static
-rc_t KQuickMountDirRelativePath (const KQuickMountDir *self, enum RCContext ctx,
-                                 const char *root, char *path, size_t path_max)
-{
-    int backup;
-    size_t bsize, psize;
-
-    const char *r = root + self -> root;
-    const char *p = path + self -> root;
-
-    assert ( r != NULL && r [ 0 ] == '/' );
-    assert ( p != NULL && p [ 0 ] == '/' );
-
-    for ( ; * r == * p; ++ r, ++ p )
-    {
-        /* disallow identical paths */
-        if ( * r == 0 )
-            return RC ( rcFS, rcDirectory, ctx, rcPath, rcInvalid );
-    }
-
-    /* paths are identical up to "r","p"
-       if "r" is within a leaf name, then no backup is needed
-       by counting every '/' from "r" to end, obtain backup count */
-    for ( backup = 0; * r != 0; ++ r )
-    {
-        if ( * r == '/' )
-            ++ backup;
-    }
-
-    /* the number of bytes to be inserted */
-    bsize = backup * 3;
-
-    /* align "p" to last directory separator */
-    while ( p [ -1 ] != '/' ) -- p;
-
-    /* the size of the remaining relative path */
-    psize = strlen ( p );
-
-    /* open up space if needed */
-    if ( p - path < bsize )
-    {
-        /* prevent overflow */
-        if ( bsize + psize >= path_max )
-            return RC ( rcFS, rcDirectory, ctx, rcPath, rcExcessive );
-        memmove ( path + bsize, p, psize + 1 /* 1 for '\0'*/ );
-    }
-
-    /* insert backup sequences */
-    for ( bsize = 0; backup > 0; bsize += 3, -- backup )
-        memcpy ( & path [ bsize ], "../", 3 );
-
-    /* close gap */
-    if ( p - path > bsize )
-        memmove ( & path [ bsize ], p, strlen ( p ) + 1 );
-
-    return 0;
-}
-
-
-
-static __inline__
-rc_t KQuickMountDirVMakePath (const KQuickMountDir * self, enum RCContext ctx, 
-                              bool canon, char * buffer, size_t path_max,
-                              const char * path, va_list args)
-{
-    size_t psize;
-    size_t bsize;
-    rc_t rc;
-
-    if ( path == NULL )
-        return RC ( rcFS, rcDirectory, ctx, rcPath, rcNull );
-    if ( path [ 0 ] == 0 )
-        return RC ( rcFS, rcDirectory, ctx, rcPath, rcInvalid );
-
-    if ( args != NULL && path [ 0 ] == '%' )
-    {
-        rc = string_vprintf (buffer, path_max, &psize, path, args);
-
-        if (psize > path_max)
-            return RC ( rcFS, rcDirectory, ctx, rcPath, rcExcessive );
-        if (rc)
-            return rc;
-        if ( buffer [ 0 ] != '/' )
-        {
-            bsize = (self->mount - self->path) - 1;
-            if ( bsize + psize >= path_max )
-                return RC ( rcFS, rcDirectory, ctx, rcPath, rcExcessive );
-            memmove ( buffer + bsize, buffer, psize + 1 );
-            assert ( self -> path [ bsize - 1 ] == '/' );
-            memcpy ( buffer, self -> path, bsize );
-        }
-        else if ( ( bsize = self -> root ) != 0 )
-        {
-            if ( bsize + psize >= path_max )
-                return RC ( rcFS, rcDirectory, ctx, rcPath, rcExcessive );
-            memmove ( buffer + bsize, buffer, psize + 1 );
-            assert ( self -> path [ bsize - 1 ] != '/' );
-            memcpy ( buffer, self -> path, bsize );
-        }
-    }
-    else
-    {
-        if ( path [ 0 ] != '/' )
-        {
-/*             assert ( self -> path [ self -> size - 1 ] == '/' ); */
-            memcpy ( buffer, self -> path, bsize = (self->mount - self->path) - 1 );
-        }
-        else if ( ( bsize = self -> root ) != 0 )
-        {
-            assert ( self -> path [ bsize - 1 ] != '/' );
-            memcpy ( buffer, self -> path, bsize );
-        }
-
-
-        rc = string_vprintf ( buffer + bsize, path_max - bsize, &psize, path, args );
-        if (bsize + psize >= path_max)
-            return RC ( rcFS, rcDirectory, ctx, rcPath, rcExcessive );
-        if (rc)
-            return rc;
-    }
-
-    if ( buffer [ bsize + psize ] == '/' )
-        buffer [ bsize + -- psize ] = 0;
-
-    if ( psize > 0 && ( canon || self -> root != 0 ) )
-        return KQuickMountDirCanonPath ( self, ctx, buffer, bsize + psize );
-
-    return 0;
-}
-
-
-static __inline__
-rc_t KQuickMountDirMakePath (const KQuickMountDir * self, enum RCContext ctx, 
-                             bool canon, char * buffer, size_t path_max,
-                             const char * path, ...)
-{
-    va_list args;
-    rc_t rc;
-
-    va_start (args, path);
-    rc = KQuickMountDirVMakePath (self, ctx, canon, buffer,
-                                  path_max, path, args);
-    va_end (args);
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirDestroy
- */
-static rc_t CC KQuickMountDirDestroy (KQuickMountDir *self)
-{
-    rc_t rc;
-
-    rc = KFileRelease (self->file);
-
-    free (self);
-
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirList
- *  create a directory listing
- *
- *  "list" [ OUT ] - return parameter for list object
- *
- *  "path" [ IN, NULL OKAY ] - optional parameter for target
- *  directory. if NULL, interpreted to mean "."
- *
- * [RET] rc_t					0 for success; anything else for a failure
- *						see itf/klib/rc.h for general details
- * [IN]	 const KQuickMountDir *	self		Object oriented C; KQuickMountDir object for this method
- * [OUT] KNamelist **		listp,
- * [IN]  bool (* 		f	)(const KDirectory*,const char *, void *)
- * [IN]  void *			data
- * [IN]  const char *		path
- * [IN]  va_list		args
- */
-static
-rc_t CC KQuickMountDirList (const KQuickMountDir *self,
-                       KNamelist **listp,
-                       bool (CC* f) (const KDirectory *dir, const char *name, void *data),
-                       void *data,
-                       const char *path,
-                       va_list args)
-{
-    return RC (rcFS, rcDirectory, rcAccessing, rcFunction, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirVisit
- *  visit each path under designated directory,
- *  recursively if so indicated
- *
- *  "recurse" [ IN ] - if non-zero, recursively visit sub-directories
- *
- *  "f" [ IN ] and "data" [ IN, OPAQUE ] - function to execute
- *  on each path. receives a base directory and relative path
- *  for each entry, where each path is also given the leaf name
- *  for convenience. if "f" returns non-zero, the iteration will
- *  terminate and that value will be returned. NB - "dir" will not
- *  be the same as "self".
- *
- *  "path" [ IN ] - NUL terminated string in directory-native character set
- */
-static 
-rc_t CC KQuickMountDirVisit (const KQuickMountDir *self, 
-                      bool recurse,
-                      rc_t (CC* f) (const KDirectory *, uint32_t, const char *, void *), 
-                      void *data,
-                      const char *path,
-                      va_list args)
-{
-    return RC (rcFS, rcDirectory, rcAccessing, rcFunction, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirVisitUpdate
- */
-static rc_t CC KQuickMountDirVisitUpdate (KQuickMountDir *self,
-                                   bool recurse,
-                                   rc_t (CC*f) (KDirectory *,uint32_t,const char *,void *),
-                                   void *data,
-                                   const char *path,
-                                   va_list args)
-{
-    return RC (rcFS, rcDirectory, rcUpdating, rcFunction, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirPathType
- *  returns a KPathType
- *
- *  "path" [ IN ] - NUL terminated string in directory-native character set
- * NOTE: Does not meet a design target of on stack (localized variable) allocation of single 4kb path
- *
- * [RET] uint32_t
- * [IN]  const KQuickMountDir *	self		Object oriented C; KQuickMountDir object for this method
- * [IN]  const char *		path
- * [IN]  va_list		args
- */
-static uint32_t CC KQuickMountDirPathType (const KQuickMountDir *self, const char *path, va_list args)
-{
-    char buff [8192];
-    rc_t rc;
-
-    rc = KQuickMountDirVMakePath (self, rcAccessing, true, buff, sizeof buff, path, args);
-    if (rc)
-        return kptBadPath;
-
-    if (strcmp (buff, self->path) == 0)
-        return kptFile;
-
-    return kptNotFound;
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirResolvePath
- *
- *  resolves path to an absolute or directory-relative path
- *
- * [IN]  const KQuickMountDir *self		Objected oriented self
- * [IN]	 bool 		absolute	if non-zero, always give a path starting
- *  					with '/'. NB - if the directory is 
- *					chroot'd, the absolute path
- *					will still be relative to directory root.
- * [OUT] char *		resolved	buffer for NUL terminated result path in 
- *					directory-native character set
- * [IN]	 size_t		rsize		limiting size of resolved buffer
- * [IN]  const char *	path		NUL terminated string in directory-native
- *					character set denoting target path. 
- *					NB - need not exist.
- *
- * NOTE: Does not meet a design target of on stack (localized variable) allocation of single 4kb path
- */
-static rc_t CC KQuickMountDirResolvePath (const KQuickMountDir *self,
-                                          bool absolute,
-                                          char *resolved,
-                                          size_t rsize,
-                                          const char *path,
-                                          va_list args)
-{
-    char full [ 8192 ];
-    rc_t rc = KQuickMountDirVMakePath ( self, rcResolving, true, full, sizeof full, path, args );
-    if ( rc == 0 )
-    {
-        uint32_t path_size = strlen ( full );
-
-        if ( absolute )
-        {
-            /* test buffer capacity */
-            if ( path_size - self -> root >= rsize )
-                return RC ( rcFS, rcDirectory, rcResolving, rcBuffer, rcInsufficient );
-
-            /* ready to go */
-            strcpy ( resolved, & full [ self -> root ] );
-/*             assert ( resolved [ 0 ] == '/' ); */
-        }
-        else
-        {
-            rc = KQuickMountDirRelativePath ( self, rcResolving, self -> path, full, sizeof full /*path_size*/ );
-            if ( rc == 0 )
-            {
-                path_size = strlen ( full );
-                if ( path_size >= rsize )
-                    return RC ( rcFS, rcDirectory, rcResolving, rcBuffer, rcInsufficient );
-                strcpy ( resolved, full );
-            }
-        }
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirResolveAlias
- *  resolves an alias path to its immediate target
- *  NB - the resolved path may be yet another alias
- *
- *  "alias" [ IN ] - NUL terminated string in directory-native
- *  character set denoting an object presumed to be an alias.
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - buffer for
- *  NUL terminated result path in directory-native character set
- *
- * NOTE: Does not meet a design target of on stack (localized variable) allocation of single 4kb path
- */
-static rc_t CC KQuickMountDirResolveAlias (const KQuickMountDir * self, 
-				 bool absolute,
-				 char * resolved,
-				 size_t rsize,
-				 const char *alias,
-				 va_list args)
-{
-    return RC (rcFS, rcDirectory, rcAccessing, rcFunction, rcUnsupported);
-}
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirRename
- *  rename an object accessible from directory, replacing
- *  any existing target object of the same type
- *
- *  "from" [ IN ] - NUL terminated string in directory-native
- *  character set denoting existing object
- *
- *  "to" [ IN ] - NUL terminated string in directory-native
- *  character set denoting existing object
- */
-static
-rc_t CC KQuickMountDirRename (KQuickMountDir *self, bool force, const char *from, const char *to)
-{
-    assert (self != NULL);
-    assert (from != NULL);
-    assert (to != NULL);
-
-    return RC (rcFS, rcDirectory, rcUpdating, rcSelf, rcUnsupported);
-}
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirRemove
- *  remove an accessible object from its directory
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object
- *
- *  "force" [ IN ] - if non-zero and target is a directory,
- *  remove recursively
- */
-static
-rc_t CC KQuickMountDirRemove (KQuickMountDir *self, bool force, const char *path, va_list args)
-{
-    assert (self != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcUpdating, rcSelf, rcUnsupported);
-}
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirClearDir
- *  remove all directory contents
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target directory
- *
- *  "force" [ IN ] - if non-zero and directory entry is a
- *  sub-directory, remove recursively
- */
-static
-rc_t CC KQuickMountDirClearDir (KQuickMountDir *self, bool force, const char *path, va_list args)
-{
-    assert (self != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcUpdating, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirAccess
- *  get access to object
- *
- *  "access" [ OUT ] - return parameter for Unix access mode
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object
- * NOTE: Does not meet a design target of on stack (localized variable) allocation of single 4kb path
- */
-static rc_t CC KQuickMountDirVAccess (const KQuickMountDir *self,
-			    uint32_t *access,
-			    const char *path,
-			    va_list args)
-{
-    return RC (rcFS, rcDirectory, rcAccessing, rcFunction, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirSetAccess
- *  set access to object a la Unix "chmod"
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object
- *
- *  "access" [ IN ] and "mask" [ IN ] - definition of change
- *  where "access" contains new bit values and "mask defines
- *  which bits should be changed.
- *
- *  "recurse" [ IN ] - if non zero and "path" is a directory,
- *  apply changes recursively.
- */
-static rc_t CC KQuickMountDirSetAccess (KQuickMountDir *self,
-			      bool recurse,
-			      uint32_t access,
-			      uint32_t mask,
-			      const char *path,
-			      va_list args)
-{
-    assert (self != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcUpdating, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirCreateAlias
- *  creates a path alias according to create mode
- *
- *  "targ" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object
- *
- *  "alias" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target alias
- *
- *  "access" [ IN ] - standard Unix directory access mode
- *  used when "mode" has kcmParents set and alias path does
- *  not exist.
- *
- *  "mode" [ IN ] - a creation mode (see explanation above).
- */
-static
-rc_t CC KQuickMountDirCreateAlias (KQuickMountDir *self,
-			 uint32_t access,
-			 KCreateMode mode,
-			 const char *targ,
-			 const char *alias)
-{
-    assert (self != NULL);
-    assert (targ != NULL);
-    assert (alias != NULL);
-
-    return RC (rcFS, rcDirectory, rcCreating, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirOpenFileRead
- *  opens an existing file with read-only access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- * NOTE: Does not meet a design target of on stack (localized variable) allocation of single 4kb path
- */
-static
-rc_t CC KQuickMountDirOpenFileRead	(const KQuickMountDir *self,
-					 const KFile **f,
-					 const char *path,
-					 va_list args)
-{
-    return RC (rcFS, rcDirectory, rcOpening, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirOpenFileWrite
- *  opens an existing file with write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- *
- *  "update" [ IN ] - if non-zero, open in read/write mode
- *  otherwise, open in write-only mode
- */
-static
-rc_t CC KQuickMountDirOpenFileWrite	(KQuickMountDir *self,
-					 KFile **f,
-					 bool update,
-					 const char *path,
-					 va_list args)
-{
-    assert (self != NULL);
-    assert (f != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcCreating, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirCreateFile
- *  opens a file with write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- *
- *  "access" [ IN ] - standard Unix access mode, e.g. 0664
- *
- *  "update" [ IN ] - if non-zero, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "mode" [ IN ] - a creation mode (see explanation above).
- */
-static
-rc_t CC KQuickMountDirCreateFile	(KQuickMountDir *self,
-					 KFile **f,
-					 bool update,
-					 uint32_t access,
-					 KCreateMode cmode,
-					 const char *path,
-					 va_list args)
-{
-    assert (self != NULL);
-    assert (f != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcCreating, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirFileSize
- *  returns size in bytes of target file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- *
- *  "size" [ OUT ] - return parameter for file size
- * NOTE: Does not meet a design target of on stack (localized variable) allocation of single 4kb path
- */
-static
-rc_t CC KQuickMountDirFileSize		(const KQuickMountDir *self,
-					 uint64_t *size,
-					 const char *path,
-					 va_list args)
-{
-    return RC (rcFS, rcDirectory, rcCreating, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirSetFileSize
- *  sets size in bytes of target file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- *
- *  "size" [ IN ] - new file size
- */
-static
-rc_t CC KQuickMountDirSetFileSize	(KQuickMountDir *self,
-					 uint64_t size,
-					 const char *path,
-					 va_list args)
-{
-    assert (self != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcWriting, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirOpenDirRead
- *
- *  opens a sub-directory
- *
- * [IN]  const KQuickMountDir *	self	Object Oriented C KQuickMountDir self
- * [OUT] const KDirectory **	subp	Where to put the new KDirectory/KQuickMountDir
- * [IN]  bool			chroot	Create a chroot cage for this new subdirectory
- * [IN]  const char *		path	Path to the directory to open
- * [IN]  va_list		args	So far the only use of args is possible additions to path
- */
-static 
-rc_t CC KQuickMountDirOpenDirRead	(const KQuickMountDir *self,
-					 const KDirectory **subp,
-					 bool chroot,
-					 const char *path,
-					 va_list args)
-{
-    return RC (rcFS, rcDirectory, rcOpening, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirOpenDirUpdate
- *  opens a sub-directory
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target directory
- *
- *  "chroot" [ IN ] - if non-zero, the new directory becomes
- *  chroot'd and will interpret paths beginning with '/'
- *  relative to itself.
- */
-static
-rc_t CC KQuickMountDirOpenDirUpdate	(KQuickMountDir *self,
-					 KDirectory ** subp, 
-					 bool chroot, 
-					 const char *path, 
-					 va_list args)
-{
-    assert (self != NULL);
-    assert (subp != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcUpdating, rcSelf, rcUnsupported);
-}
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirCreateDir
- *  create a sub-directory
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target directory
- *
- *  "access" [ IN ] - standard Unix directory permissions
- *
- *  "mode" [ IN ] - a creation mode (see explanation above).
- */
-static
-rc_t CC KQuickMountDirCreateDir	(KQuickMountDir *self,
-					 uint32_t access,
-					 KCreateMode mode,
-					 const char *path,
-					 va_list args)
-{
-    assert (self != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcCreating, rcSelf, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * KQuickMountDirDestroyFile
- */
-#if 0
-static
-rc_t CC KQuickMountDirDestroyFile	(KQuickMountDir *self,
-					 KFile * f)
-{
-    assert (self != NULL);
-    assert (f != NULL);
-
-    return RC (rcFS, rcDirectory, rcDestroying, rcSelf, rcUnsupported);
-}
-
-
-static	rc_t CC KQuickMountDirDate (const KQuickMountDir *self,
-					 KTime_t *date,
-					 const char *path,
-					 va_list args)
-{
-    return RC (rcFS, rcDirectory, rcAccessing, rcSelf, rcUnsupported);
-
-}
-
-
-static	rc_t CC KQuickMountDirSetDate		(KQuickMountDir *self,
-					 bool recurse,
-					 KTime_t date,
-					 const char *path,
-					 va_list args)
-{
-    assert (self != NULL);
-    assert (path != NULL);
-
-    return RC (rcFS, rcDirectory, rcUpdating, rcSelf, rcUnsupported);
-}
-#endif
-
-/* ----------------------------------------------------------------------
- *
- */
-static KDirectory_vt_v1 vtKQuickMountDir =
-{
-    /* version 1.0 */
-    1, 0,
-
-    /* start minor version 0 methods*/
-    KQuickMountDirDestroy,
-    KQuickMountDirList,
-    KQuickMountDirVisit,
-    KQuickMountDirVisitUpdate,
-    KQuickMountDirPathType,
-    KQuickMountDirResolvePath,
-    KQuickMountDirResolveAlias,
-    KQuickMountDirRename,
-    KQuickMountDirRemove,
-    KQuickMountDirClearDir,
-    KQuickMountDirVAccess,
-    KQuickMountDirSetAccess,
-    KQuickMountDirCreateAlias,
-    KQuickMountDirOpenFileRead,
-    KQuickMountDirOpenFileWrite,
-    KQuickMountDirCreateFile,
-    KQuickMountDirFileSize,
-    KQuickMountDirSetFileSize,
-    KQuickMountDirOpenDirRead,
-    KQuickMountDirOpenDirUpdate,
-    KQuickMountDirCreateDir,
-    NULL,
-    /* end minor version 0 methods*/
-    /* start minor version 1 methods*/
-    NULL,
-    NULL,
-    NULL,
-    /* end minor version 2 methods*/
-    NULL,
-    /* end minor version 2 methods*/
-    /* end minor version 3 methods*/
-    NULL,
-    NULL
-    /* end minor version 3 methods*/
-};
-
-
-static KQuickMountDir * KQuickMountDirAlloc (size_t path_size, size_t mount_size)
-{
-    return calloc (sizeof (KQuickMountDir) + path_size + mount_size + 1, 1);
-}
-
-
-KFS_EXTERN rc_t KQuickMountDirMake (const KDirectory * self, 
-                                    const KDirectory ** pnewdir,
-                                    const KFile * file,
-                                    const char * path, size_t path_size,
-                                    const char * mount, size_t mount_size)
-{
-    KQuickMountDir * newdir;
-    char * pc;
-    rc_t rc;
-    bool endslash;
-    char tbuff [8193];
-
-    endslash = path[path_size-1] == '/';
-
-    if (sizeof tbuff - 1 < mount_size)
-        return RC (rcFS, rcDirectory, rcCreating, rcBuffer, rcInsufficient);
-
-    memcpy (tbuff, mount, mount_size);
-    tbuff[mount_size] = '\0';
-
-    while ((pc = strpbrk (tbuff, "\"\\/")) != NULL)
-        *pc = '_';
-
-    rc = KFileAddRef (file);
-    if (rc == 0)
-    {
-        newdir = KQuickMountDirAlloc (path_size, mount_size);
-        if (newdir == NULL)
-            rc = RC (rcFS, rcDirectory, rcAllocating, rcMemory, rcExhausted);
-        else
-        {
-            newdir->file = file;
-            newdir->mount = newdir->path + path_size;
-            rc = KQuickMountDirMakePath (newdir, rcCreating, true, newdir->path,
-                                         path_size + 1 + mount_size + 1,
-                                         endslash?"%s%s":"%s/%s", path, tbuff);
-            if (rc == 0)
-            {
-                rc = KDirectoryInit (&newdir->dad, (const KDirectory_vt*) &vtKQuickMountDir,
-                                     "KQuickMountDir", path?path:"(null)", false);
-                if (rc == 0)
-                {
-                    newdir->mount = newdir->path + path_size + 1;
-                    newdir->root = 0;
-                    *pnewdir = &newdir->dad;
-                    return 0;
-                }
-/*             rc = RC (rcFS, rcDirectory, rcInitializing, rcObject, rcInvalid); */
-            }
-            KQuickMountDirDestroy (newdir);
-        }
-        KFileRelease (file);
-    }
-    return rc;
-}
-                         
-
-
-/* end of file quickmount.c */
-
diff --git a/libs/kfs/ramfile.c b/libs/kfs/ramfile.c
deleted file mode 100644
index 588ec2e..0000000
--- a/libs/kfs/ramfile.c
+++ /dev/null
@@ -1,415 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <kfs/extern.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <kfs/file.h>
-#include <sysalloc.h>
-#include <kfs/ramfile.h>
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* ======================================================================
- * KRamFile
- */
-
-/* -----
- * define the specific types to be used in the templatish/inheritancish
- * definition of vtables and their elements
- */
-#define KFILE_IMPL struct KRamFile
-#include <kfs/impl.h>
-
-/*-----------------------------------------------------------------------
- * KRamFile
- *  A KFile that puts reads and writes into a buffer. The buffer is passed
- *  in so the creator will know where the buffer is.
- */
-struct KRamFile
-{
-    KFile	dad;
-
-    uint64_t pos;
-    uint64_t max_pos;
-    size_t   bsize;
-    size_t   max;
-    char *   buffer;
-};
-
-/* ----------------------------------------------------------------------
- * Destroy
- *
- */
-static
-rc_t CC KRamFileDestroy (KRamFile *self)
-{
-    free (self);
-    return 0;
-}
-
-/* ----------------------------------------------------------------------
- * GetSysFile
- *  returns an underlying system file object
- *  and starting offset to contiguous region
- *  suitable for memory mapping, or RAM if
- *  no such file is available.
- *
- * We cant allow memory mapping a tee file as the read?writes ar needed
- * to trigger the writes to the copy KFile
- */
-
-static
-struct KSysFile *CC KRamFileGetSysFile (const KRamFile *self, uint64_t *offset)
-{
-    /* parameters must be non-RAM */
-    assert (self != NULL);
-    assert (offset != NULL);
-
-    return NULL;
-}
-
-/* ----------------------------------------------------------------------
- * RandomAccess
- *
- *  returns 0 if random access, error code otherwise
- *
- * Update needs to be able to seek both original and copy while read
- * only needs to be able to seek the original.
- */
-static
-rc_t CC KRamFileRandomAccess (const KRamFile *self)
-{
-    assert (self != NULL);
-    return 0;
-}
-
-/* ----------------------------------------------------------------------
- * Type
- *  returns a KFileDesc
- *  not intended to be a content type,
- *  but rather an implementation class
- */
-static
-uint32_t CC KRamFileType (const KRamFile *self)
-{
-    return kfdNull;
-}
-
-
-/* ----------------------------------------------------------------------
- * Size
- *  returns size in bytes of file
- *
- *  "size" [ OUT ] - return parameter for file size
- */
-static
-rc_t CC KRamFileSize (const KRamFile *self, uint64_t *size)
-{
-    assert (self != NULL);
-    assert (size != NULL);
-
-/*     return RC ( rcFS, rcFile, rcAccessing, rcFunction, rcUnsupported ); */
-    *size = self->max_pos;
-    return 0;
-}
-
-/* ----------------------------------------------------------------------
- * SetSize
- *  sets size in bytes of file
- *
- *  "size" [ IN ] - new file size
- */
-static
-rc_t CC KRamFileSetSize (KRamFile *self, uint64_t size)
-{
-/*     return RC (rcFS, rcFile, rcUpdating, rcSelf, rcUnsupported); */
-    self->max_pos = size;
-    return 0;
-}
-
-/* ----------------------------------------------------------------------
- * Read
- *  read file from known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT, RAM OKAY ] - optional return parameter
- *  giving number of bytes actually read
- *
- * NOTE: Can not seek;
- *
- */
-static
-rc_t CC KRamFileRead	(const KRamFile *self,
-			 uint64_t pos,
-			 void *buffer,
-			 size_t bsize,
-			 size_t *num_read)
-{
-    assert (self);
-    assert (buffer);
-    assert (num_read);
-    /* no restrictions on pos or bsize */
-
-    if (pos >= self->max_pos)
-    {
-        *num_read = 0;
-        return 0;
-    }
-    else if (pos + bsize > self->max_pos)
-        bsize = self->max_pos - pos;
-
-    /* if we are trying to read outside the current window */
-    else if (self->pos > pos)
-    {
-        /* get some zeros */
-        size_t left_zeroes;
-
-        left_zeroes = self->pos - pos;
-
-        if (left_zeroes >= bsize)
-            left_zeroes = bsize;
-
-        memset (buffer, 0, bsize);
-    }
-    else if (self->pos + self->bsize < pos)
-        memset (buffer, 0, bsize);
-
-    /* so we are inside the current window */
-    else
-    {
-        /* are we trying to go past the window? */
-        if (pos + bsize > self->pos + self->bsize)
-            bsize = (self->pos + self->bsize) - pos;
-
-        memcpy (buffer, self->buffer + (pos - self->pos), bsize);
-    }
-    *num_read = bsize;
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * Write
- *  write file at known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, RAM OKAY ] - optional return parameter
- *  giving number of bytes actually written
- *
- * Always accepts writes and can seek.
- */
-static
-rc_t CC KRamFileWrite (KRamFile *self, uint64_t pos,
-		       const void *buffer, size_t bsize,
-		       size_t *num_writ)
-{
-    char * to;
-
-    /* can't really fail */
-
-    assert (self);
-    assert (buffer);
-    assert (num_writ);
-
-    /* does the write fill the buffer? */
-    if (bsize >= self->max)
-    {
-        /* we can never allow a write larger than the internal buffer */
-        self->pos = pos;
-        self->bsize = bsize = self->max;
-        to = self->buffer;
-        if (self->max_pos < pos + bsize)
-            self->max_pos = pos + bsize;
-    }
-
-    /* else are we seeking forward or backward to completely new or completely
-     * over writing what is there */
-    else if ((self->bsize == 0) ||                     /* currently no buffer */
-             (pos >= (self->pos + self->max)) || /* past current */
-             (pos + self->max <= self->pos) ||   /* behind current */
-             ((pos <= self->pos) && (pos + bsize >= self->pos + self->bsize)))
-    {
-        /* reset the buffer parameters */
-        self->pos = pos;
-        self->bsize = bsize;
-        if (self->max_pos < pos + bsize)
-            self->max_pos = pos + bsize;
-
-        to = self->buffer;
-        /* clear any unused portion of the buffer */
-        if (self->max > bsize)
-            memset (self->buffer + bsize, 0, self->max - bsize);
-    }
-    else if (pos >= self->pos) 
-    {
-        /* if we are reading something at or after what we have now
-         * where the right edge was doesn't matter since we zero fill
-         * in the previous condition and at construction */
-        /* how far into the buffer will we start */
-        size_t poff = pos - self->pos;
-
-        /* do we have to slide the window? This is not optimized */
-        if ((poff != 0) && (poff + bsize > self->max))
-        {
-            size_t m = poff + bsize - self->max;
-            if (self->bsize < self->max)
-                memset (self->buffer + bsize, 0, self->max = self->bsize);
-            /* must use memmove not memcpy */
-            memmove (self->buffer, self->buffer + poff, self->max - pos);
-
-            poff -= m;
-            self->pos -= m;
-        }
-
-        /* check for a new self->bsize */
-        if (poff + bsize > self->bsize)
-            self->bsize = poff + bsize;
-
-        /* check for a new max position */
-        if (self->max_pos < self->pos + self->bsize)
-            self->max_pos = self->pos + self->bsize;
-
-        to = self->buffer + poff;
-    }
-    else
-    {
-        size_t poff = self->pos - pos;
-
-        /* non optimized slide */
-        memmove (self->buffer + poff, self->buffer, self->max - poff);
-        self->pos = pos;
-        self->bsize += poff;
-        if (self->bsize > self->max)
-            self->bsize = self->max;
-        to = self->buffer;
-    }
-    memcpy (to, buffer, bsize);
-    *num_writ = bsize;
-
-    return 0;
-}
-
-
-static const KFile_vt_v1 vtKRamFile =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KRamFileDestroy,
-    KRamFileGetSysFile,
-    KRamFileRandomAccess,
-    KRamFileSize,
-    KRamFileSetSize,
-    KRamFileRead,
-    KRamFileWrite,
-
-    /* 1.1 */
-    KRamFileType
-};
-
-/* ----------------------------------------------------------------------
- * KRamFileMake
- *  create a new file object
- */
-static
-rc_t KRamFileMake (KRamFile ** pself, char * buffer, size_t buffer_size, bool r, bool w)
-{
-    rc_t	rc;
-    KRamFile *	self;
-
-    /* -----
-     */
-    if (pself == NULL)
-        return RC (rcFS, rcFile, rcConstructing, rcSelf, rcNull);
-
-    if (buffer == NULL)
-        return RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-
-    /* we only deny size 0 buffer just to avoid the too weird corner cases */
-    if (buffer_size == 0)
-        return RC (rcFS, rcFile, rcConstructing, rcParam, rcTooShort);
-
-    if (((r != true) && (r != false)) || ((w != true) && (w != false)))
-        return RC (rcFS, rcFile, rcConstructing, rcParam, rcInvalid);
-
-    /* -----
-     * get space for the object
-     */
-    self = malloc (sizeof (*self));
-    if (self == NULL)	/* allocation failed */
-    {
-	/* fail */
-	rc = RC (rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
-    }
-    else
-    {
-	rc = KFileInit (&self->dad,			/* initialize base class */
-			(const KFile_vt*)&vtKRamFile, 	/* VTable for KRamFile */
-            "KRamFile", "ram",
-                        r,w);
-	if (rc == 0)
-	{
-            self->pos = self->max_pos = 0;
-            self->max = buffer_size;
-            self->bsize = 0;
-            self->buffer = buffer;
-	    *pself = self;
-	    return 0;
-	}
-	/* fail */
-	free (self);
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KRamFileMakeRead (const KFile ** self,char * buffer, size_t buffer_size)
-{
-    return KRamFileMake ((KRamFile **)self, buffer, buffer_size, true, false);
-}
-
-LIB_EXPORT rc_t CC KRamFileMakeWrite (KFile ** self, char * buffer, size_t buffer_size)
-{
-    return KRamFileMake ((KRamFile **)self, buffer, buffer_size, false, true);
-}
-
-LIB_EXPORT rc_t CC KRamFileMakeUpdate (KFile ** self, char * buffer, size_t buffer_size)
-{
-    return KRamFileMake ((KRamFile **)self, buffer, buffer_size, true, true);
-}
-
-
-/* end of file ramfile.c */
-
diff --git a/libs/kfs/readheadfile.c b/libs/kfs/readheadfile.c
deleted file mode 100644
index 59ab0a5..0000000
--- a/libs/kfs/readheadfile.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <kfs/extern.h>
-#include <klib/log.h>
-#include <klib/debug.h>
-#include <klib/rc.h>
-#include <kfs/file.h>
-#include <kfs/readheadfile.h>
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-/* ======================================================================
- * KReadHeadFile
- */
-
-/* -----
- * define the specific types to be used in the templatish/inheritancish
- * definition of vtables and their elements
- */
-struct KReadHeadFile;
-#define KFILE_IMPL struct KReadHeadFile
-#include <kfs/impl.h>
-
-
-/*-----------------------------------------------------------------------
- * KReadHeadFile
- */
-typedef struct KReadHeadFile
-{
-    KFile	  dad;
-    uint64_t	  max_position;
-    const KFile * original;
-    size_t        buffer_size;
-    uint8_t       buffer [1];
-} KReadHeadFile;
-
-/* ----------------------------------------------------------------------
- * Destroy
- *
- */
-static
-rc_t CC KReadHeadFileDestroy (KReadHeadFile *self)
-{
-    rc_t rc;
-
-    rc = KFileRelease (self->original);
-
-    free (self);
-    return rc;
-}
-
-/* ----------------------------------------------------------------------
- * GetSysFile
- *  returns an underlying system file object
- *  and starting offset to contiguous region
- *  suitable for memory mapping, or NULL if
- *  no such file is available.
- *
- * bytes could not be counted if memory mapped so this is disallowed
- */
-
-static
-struct KSysFile *CC KReadHeadFileGetSysFile (const KReadHeadFile *self, uint64_t *offset)
-{
-    /* parameters must be non-NULL */
-    assert (self != NULL);
-    assert (offset != NULL);
-
-    return KFileGetSysFile (self->original, offset);
-}
-
-/* ----------------------------------------------------------------------
- * RandomAccess
- *
- *  returns 0 if random access, error code otherwise
- */
-static
-rc_t CC KReadHeadFileRandomAccess (const KReadHeadFile *self)
-{
-    return KFileRandomAccess (self->original);
-}
-
-/* ----------------------------------------------------------------------
- * Type
- *  returns a KFileDesc
- *  not intended to be a content type,
- *  but rather an implementation class
- */
-static
-uint32_t CC KReadHeadFileType (const KReadHeadFile *self)
-{
-    return KFileType (self->original);
-}
-
-/* ----------------------------------------------------------------------
- * Size
- *  returns size in bytes of file
- *
- *  "size" [ OUT ] - return parameter for file size
- */
-static
-rc_t CC KReadHeadFileSize (const KReadHeadFile *self, uint64_t *size)
-{
-    return KFileSize (self->original, size);
-}
-
-/* ----------------------------------------------------------------------
- * SetSize
- *  sets size in bytes of file
- *
- *  "size" [ IN ] - new file size
- */
-static
-rc_t CC KReadHeadFileSetSize (KReadHeadFile *self, uint64_t size)
-{
-    return RC (rcFS, rcFile, rcUpdating, rcFunction, rcUnsupported);
-}
-
-/* ----------------------------------------------------------------------
- * Read
- *  read file from known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually read
- */
-static
-rc_t CC KReadHeadFileRead	(const KReadHeadFile *cself,
-				 uint64_t pos,
-				 void *buffer,
-				 size_t bsize,
-				 size_t *num_read)
-{
-    rc_t rc;
-    size_t valid = 0;
-    size_t this_read;
-    KReadHeadFile *self = (KReadHeadFile *)cself;
-    *num_read = 0;
-
-    /* are we re-reading? */
-    if (pos < self->max_position)
-    {
-        size_t valid = self->max_position - pos;
-
-        if (bsize <= valid)
-        {
-            memmove (buffer, self->buffer + pos, bsize);
-            return 0;
-        }
-
-        memmove (buffer, self->buffer + pos, valid);
-    }
-    rc = KFileRead (self->original, pos + valid, (char *)buffer + valid,
-                    bsize - valid, &this_read);
-
-    *num_read = (rc) ? 0 : valid + this_read;
-    return rc;
-}
-
-/* ----------------------------------------------------------------------
- * Write
- *  write file at known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- *
- * Unsupported as we now treat archives as READ ONLY
- */
-static
-rc_t CC KReadHeadFileWrite (KReadHeadFile *self, uint64_t pos,
-			   const void *buffer, size_t bsize,
-			   size_t *num_writ)
-{
-    assert ( self != NULL );
-    return RC (rcFS, rcFile, rcWriting, rcFunction, rcUnsupported);
-}
-
-static const KFile_vt_v1 vtKReadHeadFile =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KReadHeadFileDestroy,
-    KReadHeadFileGetSysFile,
-    KReadHeadFileRandomAccess,
-    KReadHeadFileSize,
-    KReadHeadFileSetSize,
-    KReadHeadFileRead,
-    KReadHeadFileWrite,
-
-    /* 1.1 */
-    KReadHeadFileType
-};
-
-
-
-/* ----------------------------------------------------------------------
- * KReadHeadFileMake
- *  create a new file object
- */
-
-LIB_EXPORT rc_t CC KFileMakeReadHead (const KFile ** pself,
-                                      const KFile * original,
-                                      size_t buffer_size)
-{
-    rc_t rc;
-
-    if (pself == NULL)
-        return RC (rcFS, rcFile, rcConstructing, rcSelf, rcNull);
-
-    *pself = NULL;
-
-    if (original == NULL)
-        return RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-
-    rc = KFileAddRef (original);
-    if (rc)
-        return rc;
-
-    rc = KFileRandomAccess (original);
-
-    /* buffering not needed as existing file is random access */
-    if (rc == 0)
-    {
-        *pself = original;
-        return 0;
-    }
-
-    /* some other failure we'll have to bail on */
-    else if (GetRCState(rc) != rcUnsupported)
-        return rc;
-
-    else
-    {
-        KReadHeadFile * self;
-
-        self = malloc (sizeof (*self) + buffer_size); /* really too much but too hard to tune down accurately */
-        if (self == NULL)
-            return RC (rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
-
-	rc = KFileInit (&self->dad,			/* initialize base class */
-			(const KFile_vt*)&vtKReadHeadFile,/* VTable for KReadHeadFile */
-            "KReadHeadFile", "no-name",
-			original->read_enabled,
-			false);
-	if (rc == 0)
-	{
-            self->max_position = 0;
-            self->original = original;
-            self->buffer_size = buffer_size;
-            *pself = &self->dad;
-            return 0;
-	}
-	/* fail */
-	free (self);
-    }
-    return rc;
-}
-
-/* end of file countfile.c */
-
diff --git a/libs/kfs/report.c b/libs/kfs/report.c
deleted file mode 100644
index 94c6600..0000000
--- a/libs/kfs/report.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kfs/extern.h>
-
-#include <klib/klib-priv.h>
-#include <klib/out.h> /* KOutHandlerSet */
-#include <klib/rc.h>
-
-#include <kfs/directory.h>
-#include <kfs/file.h> /* KFileWrite */
-
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h> /* calloc */
-#include <string.h> /* memset */
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
-
-/*
- * An unrecoverable error happened.
- * We can help to solve it
- * by reporting information about known application execution environment.
- */
-
-#define report ( * f -> report )
-#define reportData ( * f -> reportData )
-#define reportData1 ( * f -> reportData1 )
-#define reportOpen ( * f -> reportOpen )
-#define reportOpen1 ( * f -> reportOpen1 )
-#define reportClose ( * f -> reportClose )
-#define reportClose1 ( * f -> reportClose1 )
-#define reportError ( * f -> reportError )
-#define reportErrorStr ( * f -> reportErrorStr )
-#define reportErrorStrImpl ( * f -> reportErrorStrImpl )
-#define reportErrorStrInt ( * f -> reportErrorStrInt )
-#define reportError3Str ( * f -> reportError3Str )
-
-#define MAGIC 0x6521
-
-typedef struct SFile {
-    uint64_t magic;
-    KFile* f;
-    uint64_t pos;
-} SFile;
-
-static rc_t CC fileWriter
-(void* data, const char* buffer, size_t bytes, size_t* num_writ)
-{
-    rc_t rc = 0;
-
-    SFile* self = (SFile*)data;
-    size_t dummy;
-    if (num_writ == NULL)
-    {   num_writ = &dummy; }
-    *num_writ = 0;
-
-    assert(self);
-    if (self->magic != MAGIC) {
-        return rc;
-    }
-
-    rc = KFileWrite(self->f, self->pos, buffer, bytes, num_writ);
-    self->pos += *num_writ;
-
-    return rc;
-}
-
-rc_t CC ReportRedirect
-( KWrtHandler* handler, const char* filename, bool* to_file, bool finalize )
-{
-    rc_t rc = 0;
-    if (!finalize) {
-        if (handler) {
-            handler->writer = KOutWriterGet();
-            handler->data = KOutDataGet();
-        }
-        if (filename) {
-            KDirectory* dir = NULL;
-            SFile* data = calloc(1, sizeof *data);
-            if (data == NULL) {
-                return RC(rcFS, rcMemory, rcAllocating, rcMemory, rcExhausted);
-            }
-            data->magic = MAGIC;
-            rc = KDirectoryNativeDir(&dir);
-            if (rc == 0) {
-                rc = KDirectoryCreateFile
-                    (dir, &data->f, false, 0664, kcmInit, filename);
-            }
-            if (rc == 0) {
-                rc = KOutHandlerSet(fileWriter, data);
-            }
-            RELEASE(KDirectory, dir);
-        }
-        if (rc != 0 || filename == NULL) {
-            KOutHandlerSetStdErr();
-            if (to_file)
-            {   *to_file = false; }
-        }
-        else if (to_file)
-        {   *to_file = true; }
-
-    }
-    else {
-        void* data = KOutDataGet();
-        SFile* self = (SFile*)data;
-        if (self) {
-            if (self->magic == MAGIC) {
-                RELEASE(KFile, self->f);;
-            }
-            memset(self, 0, sizeof *self);
-            free(self);
-        }
-        if (handler) {
-            KOutHandlerSet(handler->writer, handler->data);
-        }
-    }
-    return rc;
-}
-
-rc_t CC ReportCWD ( const ReportFuncs *f, uint32_t indent )
-{
-    KDirectory *wd;
-    rc_t rc = KDirectoryNativeDir ( & wd );
-    if ( rc != 0 )
-        reportError(indent, rc, "KDirectoryNativeDir");
-    else
-    {
-        char cwd [ PATH_MAX + 1 ];
-        rc = KDirectoryResolvePath ( wd, true, cwd, sizeof cwd, "." );
-        KDirectoryRelease ( wd );
-
-        if ( rc != 0 )
-            reportError(indent, rc, "KDirectoryResolvePath");
-        else
-            reportData(indent, "Cwd", cwd, 0);
-    }
-
-    return rc;
-}
diff --git a/libs/kfs/sra.c b/libs/kfs/sra.c
index bb7fb09..793111c 100644
--- a/libs/kfs/sra.c
+++ b/libs/kfs/sra.c
@@ -78,7 +78,7 @@ static void	SraHeaderInit (KSraHeader * self, size_t treesize, KSRAFileAlignment
     self->u.v1.file_offset = add_filler (sizeof * self + treesize, alignment);
 }
 
-rc_t SraHeaderMake (KSraHeader ** pself, size_t treesize, KSRAFileAlignment alignment)
+LIB_EXPORT rc_t CC SraHeaderMake (KSraHeader ** pself, size_t treesize, KSRAFileAlignment alignment)
 {
     KSraHeader * self = malloc (sizeof (KSraHeader));
     if (self == NULL)
@@ -89,7 +89,7 @@ rc_t SraHeaderMake (KSraHeader ** pself, size_t treesize, KSRAFileAlignment alig
 }
 
 
-static rc_t  SraHeaderValidate ( const KSraHeader * self, bool * reverse, uint32_t * _version, size_t bytes_available )
+LIB_EXPORT rc_t CC SraHeaderValidate ( const KSraHeader * self, bool * reverse, uint32_t * _version )
 {
     uint64_t offset;
     rc_t rc;
@@ -100,17 +100,11 @@ static rc_t  SraHeaderValidate ( const KSraHeader * self, bool * reverse, uint32
 	*reverse = false;
     if (_version != NULL)
 	*_version = 0;
-
-    if (bytes_available < 8)
-        return RC (rcFS, rcArc, rcParsing, rcHeader, rcInsufficient);
-
     if (memcmp ((void*)self, &ksraheader_v1,
 		sizeof (ksraheader_v1.ncbi) + sizeof (ksraheader_v1.sra)) != 0)
+    {
 	return RC (rcFS, rcArc, rcParsing, rcHeader, rcInvalid);
-
-    if (bytes_available < 12)
-        return 0;
-
+    }
     switch (self->byte_order)
     {
     default:
@@ -124,9 +118,6 @@ static rc_t  SraHeaderValidate ( const KSraHeader * self, bool * reverse, uint32
     }
     rc = 0;
 
-    if (bytes_available < 16)
-        return 0;
-
     version = rev ? bswap_32 (self->version) : self->version;
     offset = rev ? bswap_64 (self->u.v1.file_offset) : self->u.v1.file_offset;
 
@@ -147,8 +138,6 @@ static rc_t  SraHeaderValidate ( const KSraHeader * self, bool * reverse, uint32
 
 LIB_EXPORT uint64_t CC SraHeaderGetFileOffset ( const KSraHeader * self )
 {
-    if ( self -> byte_order == eSraByteOrderReverse )
-        return bswap_64 ( self->u.v1.file_offset );
     return self->u.v1.file_offset;
 }
 
@@ -273,7 +262,7 @@ rc_t CC KArcParseSRAInt ( struct KToc * self,
     }
 
     /* version is ignored at this point as there is only one version */
-    rc = SraHeaderValidate ( &header, &reverse, &version, sizeof header );
+    rc = SraHeaderValidate ( &header, &reverse, &version );
     if ( rc != 0 )
     {
         if ( !silent )
@@ -347,14 +336,6 @@ LIB_EXPORT rc_t CC KArcParseSRAUnbounded ( struct KToc * self,
     return KArcParseSRAInt ( self, kvoid, ignored, ignored_data, true, false );
 }
 
-LIB_EXPORT rc_t CC KArcParseSRAUnbounded_silent ( struct KToc * self,
-                                  const void * kvoid,
-                                  bool (CC*ignored) (const struct KDirectory*,  const char*, void*),
-                                  void *ignored_data )
-{
-    return KArcParseSRAInt ( self, kvoid, ignored, ignored_data, true, false );
-}
-
 
 LIB_EXPORT rc_t CC KDirectoryVOpenSraArchiveRead ( struct KDirectory const *self,
     struct KDirectory const **sra_dir, int chroot, const char *path, va_list args )
@@ -385,6 +366,17 @@ LIB_EXPORT rc_t CC KDirectoryOpenSraArchiveRead ( struct KDirectory const *self,
 }
 
 
+/* instead of including... source is in arc.c */
+LIB_EXPORT rc_t CC KDirectoryOpenArcDirRead_silent( const KDirectory * self,
+    const KDirectory ** pdir,
+    bool chroot,
+    const char * path,
+    KArcFSType baseType,
+    rc_t ( CC * parse )( KToc *, const void *,
+        bool( CC * )( const KDirectory *, const char *, void * ), void * ),
+    bool ( CC * filter )( const KDirectory*, const char *, void *),
+    void * filterparam );
+
 LIB_EXPORT rc_t CC KDirectoryVOpenSraArchiveRead_silent ( struct KDirectory const *self,
     struct KDirectory const **sra_dir, int chroot, const char *path, va_list args )
 {
@@ -414,35 +406,6 @@ LIB_EXPORT rc_t CC KDirectoryOpenSraArchiveRead_silent ( struct KDirectory const
 }
 
 
-LIB_EXPORT rc_t CC KDirectoryVOpenSraArchiveReadUnbounded_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const struct KFile * f, const char *path, va_list args )
-{
-    /* respond properly to va_list */
-    char full [ 4096 ];
-    int len = vsnprintf ( full, sizeof full, path, args );
-    if ( len < 0 || len >= sizeof full )
-        return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcExcessive );
-
-    /* putting off parameter validation into this call */
-    return KDirectoryOpenArcDirRead_silent_preopened ( self, sra_dir, false, full, tocKFile,
-        ( void* ) f, KArcParseSRAUnbounded_silent, NULL, NULL );
-}
-
-
-LIB_EXPORT rc_t CC KDirectoryOpenSraArchiveReadUnbounded_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **sra_dir, int chroot, const struct KFile * f, const char *path, ... )
-{
-    rc_t rc;
-    va_list args;
-
-    va_start ( args, path );
-    rc = KDirectoryVOpenSraArchiveReadUnbounded_silent_preopened ( self, sra_dir, chroot, f, path, args );
-    va_end ( args );
-
-    return rc;
-}
-
-
 LIB_EXPORT rc_t CC KDirectoryVOpenSraArchiveReadUnbounded ( struct KDirectory const *self,
     struct KDirectory const **sra_dir, int chroot, const char *path, va_list args )
 {
@@ -472,14 +435,4 @@ LIB_EXPORT rc_t CC KDirectoryOpenSraArchiveReadUnbounded ( struct KDirectory con
 }
 
 
-LIB_EXPORT rc_t CC KFileIsSRA (const char * b, size_t z)
-{
-    const KSraHeader * h = (const KSraHeader *)b;
-
-    if (SraHeaderValidate (h, NULL, NULL, z) == 0)
-        return 0;
-    
-    return RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcWrongType);
-}
-
 /* end of file */
diff --git a/libs/kfs/subfile.c b/libs/kfs/subfile.c
index 4a3525d..969e430 100644
--- a/libs/kfs/subfile.c
+++ b/libs/kfs/subfile.c
@@ -129,7 +129,6 @@ rc_t KSubFileMake (KSubFile ** self,
     {
         rc = KFileInit (&pF->dad,			/* initialize base class */
             (const KFile_vt*)&vtKSubFile, 	/* VTable for KSubFile */
-            "KSubFile", "no-name",
                         read_enabled,		/* read allowed */
                         write_enabled);		/* write disallowed */
 	if (rc == 0)
@@ -316,21 +315,22 @@ rc_t CC KSubFileWrite (KSubFile *self, uint64_t pos,
 		       const void *buffer, size_t bsize,
 		       size_t *num_writ)
 {
-    size_t to_write;
+    rc_t	rc;
 
     assert (self != NULL);
     assert (buffer != NULL);
     assert (num_writ != NULL);
 
     *num_writ = 0;
-    if (pos >= ( uint64_t ) self->size)
-        return 0;
-
-    to_write = bsize;
+    if (pos > self->size)
+    {
+	return 0;
+    }
     if ((pos + bsize) > self->size)
-        to_write = ( uint64_t ) self -> size - pos;
-
-    return KFileWrite (self->original, self->start + pos, buffer, to_write, num_writ);
+	rc = RC (rcFS, rcFile, rcWriting, rcOffset, rcTooBig);
+    else
+	rc = KFileWrite (self->original, self->start + pos, buffer, bsize, num_writ);
+    return rc;
 }
 
 /* end of file subfile.c */
diff --git a/libs/kfs/tar.c b/libs/kfs/tar.c
index a13da1e..e1307f9 100644
--- a/libs/kfs/tar.c
+++ b/libs/kfs/tar.c
@@ -67,8 +67,9 @@
  * Hide any definition of sun that might have come from sun compilers
  * or the like
  */
+#ifdef sun
 #undef sun
-#undef SUN
+#endif
 
 
 #define PASTE_2(a,b)   a##b
@@ -1023,7 +1024,7 @@ static tar_header_type	what_header_type(const tar_header* header)
 	 */
 	char temp_str	[9];
 	memset(temp_str,0,sizeof(temp_str));
-	string_copy(temp_str, sizeof(temp_str), header->posix.magic, 8);
+	strncpy(temp_str,header->posix.magic,8);
         TAR_DEBUG(("%s: unknown header type magic [%s]\n",
                    __func__, temp_str));
 	type = TAR_UNDEFINED;
@@ -1396,14 +1397,13 @@ static rc_t  pax_xhdr_set_general_string (char ** str, const char * val)
     }
     else
     {
-        size_t size;
-        len = string_measure(val, &size) + 1;
+	len = strlen (val) + 1;
     }
     *str = malloc (len);
     if (*str)
     {
-        string_copy(*str, len, val, len-1);
-        (*str)[len-1] = '\0'; /* if it was a '\n' terminated value this is needed not worth the check if needed */
+	strncpy (*str, val, len-1);
+	(*str)[len-1] = '\0'; /* if it was a '\n' terminated value this is needed not worth the check if needed */
     }
     else
     {
@@ -1446,12 +1446,11 @@ LIB_EXPORT rc_t CC pax_xhdr_set_gname(pax_xheader * self, char * new_name)
 
 LIB_EXPORT bool CC pax_xhdr_get_general_string (char**src, char**dst, size_t max)
 {
-    size_t size;
-    if (string_measure(*src, &size) > max-1)	/* fail if too big for target */
+    if (strlen(*src) > max-1)	/* fail if too big for target */
     {
-        return false;
+	return false;
     }
-    string_copy(*dst, max, *src, size);
+    strcpy(*dst,*src);
     return true;
 }
 
@@ -1630,7 +1629,7 @@ rc_t release_map (KTarState * self)
  * have to be made to support all manner of extensions.
  */
 static
-uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_limit, bool silent)
+uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_limit)
 {
     /* -----
      * full_path will store the full path of an element which can be longer than 
@@ -1837,11 +1836,10 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
 /* 	    break; */
 
 	default:
-            if ( ! silent )
-                PLOGMSG (klogErr,(klogErr,
-                                  "unsupported header type $(type) $(string)",
-                                  "type=%d,string=%s",
-                                  type, get_type_string(type)));
+	    PLOGMSG (klogErr,(klogErr,
+		      "unsupported header type $(type) $(string)",
+		      "type=%d,string=%s",
+		      type, get_type_string(type)));
 	    done = true;
 	    break;
 
@@ -1887,7 +1885,7 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
 	 */
 	if (full_path[0] == 0) /* if full_path wasn't filled in by an 'L' long name */
 	{
-            size_t len, size;
+            size_t len;
 	    /* -----
 	     * if there is a prefix (POSIX style) use it
 	     * copy the prefix and then concatenate the name field
@@ -1901,12 +1899,12 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
 		/* -----
 		 * copy in the prefix, force a NUL just in case. then add a directory divider 
 		 */
-            string_copy(full_path, sizeof(full_path), current_header.h->posix.prefix, TAR_PREFIX_LEN);
+		strncpy(full_path,current_header.h->posix.prefix,TAR_PREFIX_LEN);
 		full_path[TAR_PREFIX_LEN] = 0x00;
 		strcat(full_path,"/");
 	    }
 	    strncat(full_path,current_header.h->tar.name,TAR_NAME_LEN);
-            len = string_measure(full_path, &size);
+            len = strlen (full_path);
             while (len > 1)
             {
                 if (full_path[len-1] == '/')
@@ -1979,13 +1977,10 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
 	     * If the type is file but the last character in the path is "/"
 	     * treat it as a directory instead
 	     */
-        {
-            size_t size;
-            if (full_path[string_measure(full_path, &size)-1] == '/')
-            {
-                link = LINK_DIRECTORY;
-            }
-        }
+	    if (full_path[strlen(full_path)-1] == '/')
+	    {
+		link = LINK_DIRECTORY;
+	    }
 	    /* fall through */
 	case LINK_NORMAL_FILE:
 	case LINK_CONTIGUOUS_FILE:
@@ -2000,7 +1995,7 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
 	case LINK_SYMBOLIC_LINK:
 	    if (full_link[0] == 0)
 	    {
-            string_copy(full_link, sizeof(full_link), current_header.h->tar.linkname, TAR_NAME_LEN);
+		strncpy(full_link,current_header.h->tar.linkname,TAR_NAME_LEN);
 	    }
 	    done = true;
 	    break;
@@ -2077,7 +2072,7 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
 	    if ( (uint64_t)( offset + sizeof( tar_header ) + data_size ) > hard_limit )
 		return 0;
 
-	    string_copy(full_link, sizeof(full_link), (char*)(current_header.b + sizeof(tar_header)), data_size);
+	    strncpy(full_link, (char*)(current_header.b + sizeof(tar_header)), data_size);
 	    break;
 	case LINK_NEXT_LONG_NAME:	/* long path name */
 	    /* -----
@@ -2089,7 +2084,7 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
 		return 0;
 	    }
 
-	    string_copy(full_path, sizeof(full_path), (char*)(current_header.b + sizeof(tar_header)), data_size);
+	    strncpy(full_path, (char*)(current_header.b + sizeof(tar_header)), data_size);
 	    break;
 	}
 	
@@ -2124,10 +2119,7 @@ uint64_t process_one_entry (KTarState * self, uint64_t offset, uint64_t hard_lim
     switch (type)
     {
     default:
-        if ( ! silent )
-        {
-            PLOGMSG (klogErr,(klogErr,"Unhandled Header Block Type $(type):$(typeint)","type=%c,typeint=%d",type ? type : '0',type));
-        }
+	PLOGMSG (klogErr,(klogErr,"Unhandled Header Block Type $(type):$(typeint)","type=%c,typeint=%d",type ? type : '0',type));
 	return RC (rcFS, rcArc, rcParsing, rcData, rcUnsupported);
     case TAR_ZERO_BLOCK:
 /* 	LOGMSG (klogDebug1, "Zero Block"); */
@@ -2322,7 +2314,7 @@ rc_t KArcParseTAR_intern ( KToc * self,
              * OR a negative on a file parse error
              * OR zero for a file that would exceed the current window
              */
-            used = process_one_entry ( &state, offset, state.buffer_limit, silent );
+            used = process_one_entry ( &state, offset, state.buffer_limit );
 
             if ( used == 0 )
                 stalled ++;
@@ -2406,6 +2398,17 @@ LIB_EXPORT int CC KDirectoryVOpenTarArchiveRead ( struct KDirectory const *self,
                                       KArcParseTAR, NULL, NULL );
 }
 
+/* instead of including... source is in arc.c */
+LIB_EXPORT rc_t CC KDirectoryOpenArcDirRead_silent( const KDirectory * self,
+                                                   const KDirectory ** pdir,
+                                                   bool chroot,
+                                                   const char * path,
+                                                   KArcFSType baseType,
+                                                   rc_t ( CC * parse )( KToc *, const void *,
+                                                                       bool( CC * )( const KDirectory *, const char *, void * ), void * ),
+                                                   bool ( CC * filter )( const KDirectory*, const char *, void *),
+                                                   void * filterparam );
+
 LIB_EXPORT int CC KDirectoryVOpenTarArchiveRead_silent ( struct KDirectory const *self,
     struct KDirectory const **tar_dir, int chroot, const char *path, va_list args )
 {
@@ -2415,15 +2418,6 @@ LIB_EXPORT int CC KDirectoryVOpenTarArchiveRead_silent ( struct KDirectory const
 }
 
 
-LIB_EXPORT int CC KDirectoryVOpenTarArchiveRead_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **tar_dir, int chroot, const struct KFile * f, const char *path, va_list args )
-{
-    /* putting off parameter validation into this call */
-    return KDirectoryOpenArcDirRead_silent_preopened ( self, tar_dir, false, path, tocKFile, 
-                                      (void*)f, KArcParseTAR_silent, NULL, NULL );
-}
-
-
 LIB_EXPORT int CC KDirectoryOpenTarArchiveRead ( struct KDirectory const *self,
     struct KDirectory const **tar_dir, int chroot, const char *path, ... )
 {
@@ -2452,20 +2446,6 @@ LIB_EXPORT int CC KDirectoryOpenTarArchiveRead_silent ( struct KDirectory const
 }
 
 
-LIB_EXPORT int CC KDirectoryOpenTarArchiveRead_silent_preopened ( struct KDirectory const *self,
-    struct KDirectory const **tar_dir, int chroot, const KFile * f, const char *path, ... )
-{
-    rc_t rc;
-    va_list args;
-
-    va_start ( args, path );
-    rc = KDirectoryVOpenTarArchiveRead_silent_preopened ( self, tar_dir, chroot, f, path, args );
-    va_end ( args );
-
-    return rc;
-}
-
-
 /* ----------
  * Validate that the compiler packed all the character arrays into the correct sizes
  * to use the header.
diff --git a/libs/kfs/teefile.c b/libs/kfs/teefile.c
index 17f9d2a..3552b1e 100644
--- a/libs/kfs/teefile.c
+++ b/libs/kfs/teefile.c
@@ -203,7 +203,6 @@ rc_t KTeeFileMake (KTeeFile ** self,
     {
 	rc = KFileInit (&pF->dad,			/* initialize base class */
 			vt,			 	/* VTable for KTeeFile */
-            "KTeeFile", "no-name",
 			read_enabled,			/* read allowed */
 			write_enabled);			/* write disallowed */
 	if (rc == 0)
diff --git a/libs/kfs/tocentry.c b/libs/kfs/tocentry.c
index b2de16b..1359501 100644
--- a/libs/kfs/tocentry.c
+++ b/libs/kfs/tocentry.c
@@ -371,7 +371,7 @@ rc_t KTocEntryNewChunked ( KTocEntry ** new_entry,
      *
      * Then add to that the size in bytes of the chunked data (all 64 bit numbers).
      */
-    nsize = ~( ( size_t ) sizeof(uint64_t)-1) & 
+    nsize = ~(sizeof(uint64_t)-1) & 
 	(sizeof(KTocEntry)
 	 - sizeof(union KTocEntryUnion)
 	 + sizeof(struct KTocEntryChunkFile)
@@ -1378,14 +1378,10 @@ bool check_limit (const void * ptr, const void * limit, size_t size)
 	ptr = *_ptr;							\
 									\
 	if (rev)							\
-	{								\
-	    T t;							\
-	    memcpy (&t, ptr, sizeof (T));				\
-	    *pout = S (t);						\
-	}								\
+	    *pout = S (*ptr++);						\
 	else								\
-	    memcpy (pout, ptr, sizeof (T));                             \
-	*_ptr = ++ptr;							\
+	    *pout = *ptr++;						\
+	*_ptr = ptr;							\
 	return 0;							\
     }
 
@@ -1449,7 +1445,6 @@ rc_t KTocEntryInflateNodeCommon (const void ** ptr,
 	memcpy (common->name+plen+1, *ptr, nlen);
 	common->name[plen + nlen + 1] = '\0';
     }
-
     *ptr = ((uint8_t*)*ptr) + nlen;
 
     rc = read_i64 (ptr, limit, rev, &common->mtime);
@@ -1722,23 +1717,27 @@ rc_t KTocInflatePBSTree ( KToc * self, uint64_t arcsize, const void * treestart,
     rc_t rc;
     PBSTree * pbst;
 
-    rc = PBSTreeMake (&pbst, treestart, maxsize, rev);
+    /* TBD - need to make this know about byte-swapping */
+    bool byteswap = false;
+
+    rc = PBSTreeMake (&pbst, treestart, maxsize, byteswap);
     if (rc == 0)
     {
-        KTocEntryInflateData data;
+	KTocEntryInflateData data;
 
-        data.toc = self;
-        data.path = path;
+	data.toc = self;
+	data.path = path;
         data.arcsize = arcsize;
-        data.rc = 0;
-        data.rev = rev;
-        data.offset = offset;
-        
-        PBSTreeForEach (pbst, false, KTocEntryInflate, &data);
+	data.rc = 0;
+	data.rev = rev;
+	data.offset = offset;
+
+	PBSTreeForEach (pbst, false, KTocEntryInflate, &data);
+
+	rc = data.rc;
 
-        rc = data.rc;
 
-        PBSTreeWhack (pbst);
+        free (pbst);
     }
     return rc;
 }
diff --git a/libs/kfs/tocfile.c b/libs/kfs/tocfile.c
index 66cbcda..c1bc0ee 100644
--- a/libs/kfs/tocfile.c
+++ b/libs/kfs/tocfile.c
@@ -531,7 +531,7 @@ LIB_EXPORT rc_t CC KTocFileMake ( const KFile ** pself,
     }
     else
     {
-	rc = KFileInit (&self->dad, (const KFile_vt*)&vtKTocFile, "KTocFile", "no-name", true, false);
+	rc = KFileInit (&self->dad, (const KFile_vt*)&vtKTocFile, true, false);
 	if (rc != 0)
 	{
 	    LOGERR (klogErr, rc, "Init failure in KTocFileMake");
diff --git a/libs/kfs/unix/sysdir-priv.h b/libs/kfs/unix/sysdir-priv.h
index ceebc8e..ae0cac0 100644
--- a/libs/kfs/unix/sysdir-priv.h
+++ b/libs/kfs/unix/sysdir-priv.h
@@ -61,6 +61,15 @@ typedef struct KSysDir KSysDir;
 rc_t KSysDirMakePath ( struct KSysDir const *self, enum RCContext ctx, bool canon,
     char *buffer, size_t path_max, const char *path, va_list args );
 
+
+/* RealPath
+ *  returns a real OS path
+ */
+rc_t KSysDirRealPath ( const KSysDir *self,
+    char *real, size_t bsize, const char *path, ... );
+rc_t KSysDirVRealPath ( const KSysDir *self,
+    char *real, size_t bsize, const char *path, va_list args );
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/libs/kfs/unix/sysdir.c b/libs/kfs/unix/sysdir.c
index fb450fa..9442e6f 100644
--- a/libs/kfs/unix/sysdir.c
+++ b/libs/kfs/unix/sysdir.c
@@ -43,11 +43,8 @@ struct KSysDirListing;
 #include <klib/log.h>
 #include <klib/out.h>
 #include <klib/rc.h>
-#include <klib/klib-priv.h>
 #include <sysalloc.h>
 
-#include "os-native.h"
-
 #ifndef __USE_UNIX98
 #define __USE_UNIX98 1
 #endif
@@ -477,8 +474,7 @@ rc_t KSysDirMakePath ( const KSysDir *self, enum RCContext ctx, bool canon,
             return RC ( rcFS, rcDirectory, ctx, rcPath, rcExcessive );
     }
 
-    /* remove trailing slashes; keep the leading slash */
-    while ( bsize + psize > 1 && buffer [ bsize + psize - 1] == '/' )
+    if ( buffer [ bsize + psize ] == '/' )
         buffer [ bsize + -- psize ] = 0;
 
     if ( psize > 0 && ( canon || self -> root != 0 ) )
@@ -852,7 +848,7 @@ rc_t KSysDirResolvePath ( const KSysDir *self, bool absolute,
 
             /* ready to go */
             strcpy ( resolved, & full [ self -> root ] );
-/*             assert ( resolved [ 0 ] == '/' ); */
+            assert ( resolved [ 0 ] == '/' );
         }
         else
         {
@@ -1015,9 +1011,6 @@ rc_t KSysDirRename ( KSysDir *self, bool force, const char *from, const char *to
             case ENOMEM:
                 rc = RC ( rcFS, rcDirectory, rcRenaming, rcMemory, rcExhausted );
                 break;
-            case ENOENT:
-                rc = RC ( rcFS, rcDirectory, rcRenaming, rcPath, rcNotFound );
-                break;
             default:
                 rc = RC ( rcFS, rcDirectory, rcRenaming, rcNoObj, rcUnknown );
                 break;
@@ -1182,7 +1175,6 @@ rc_t KSysDirRemoveEntry ( char *path, size_t path_max, bool force )
 
         while ( rmdir ( path ) != 0 ) switch ( errno )
         {
-        case EEXIST:
         case ENOTEMPTY:
             if ( force )
             {
@@ -1703,47 +1695,39 @@ rc_t KSysDirCreateParents ( const KSysDir *self,
     return rc;
 }
 
-/* CreateAlias
+/* KSysDirCreateAlias
  *  creates a path alias according to create mode
- *  such that "alias" => "targ"
+ *
+ *  "targ" [ IN ] - NUL terminated string in directory-native
+ *  character set denoting target object
+ *
+ *  "alias" [ IN ] - NUL terminated string in directory-native
+ *  character set denoting target alias
  *
  *  "access" [ IN ] - standard Unix directory access mode
  *  used when "mode" has kcmParents set and alias path does
  *  not exist.
  *
  *  "mode" [ IN ] - a creation mode ( see explanation above ).
- *
- *  "targ" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object, i.e. the object which
- *  is designated by symlink "alias".
- *
- *  "alias" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target alias, i.e. the symlink that
- *  designates a target "targ".
  */
 static
 rc_t KSysDirCreateAlias ( KSysDir *self,
     uint32_t access, KCreateMode mode,
     const char *targ, const char *alias )
 {
-    /* create full path to symlink */
-    char falias [ PATH_MAX ];
-    rc_t rc = KSysDirMakePath ( self, rcCreating, true, falias, sizeof falias, alias, NULL );
+    char ftarg [ PATH_MAX ];
+    rc_t rc = KSysDirMakePath ( self, rcCreating, true, ftarg, sizeof ftarg, targ, NULL );
     if ( rc == 0 )
     {
-        /* the full path to target RELATIVE TO self */
-        char ftarg [ PATH_MAX ];
-        rc = KSysDirMakePath ( self, rcCreating, true, ftarg, sizeof ftarg, targ, NULL );
+        char falias [ PATH_MAX ];
+        rc = KSysDirMakePath ( self, rcCreating, true, falias, sizeof falias, alias, NULL );
         if ( rc == 0 )
         {
-            /* if "targ" is relative or "self" is chroot'd,
-               "ftarg" must be made relative */
-            if ( targ [ 0 ] != '/' || self -> root != 0 )
+            /* if "alias" is relative or "self" is chroot'd,
+               "falias" must be made relative */
+            if ( alias [ 0 ] != '/' || self -> root != 0 )
             {
-                /* take path to alias as root.
-                   generate a path RELATIVE TO alias */
-                rc = KSysDirRelativePath ( self, rcCreating, falias,
-                    ftarg, sizeof ftarg /*strlen ( ftarg )*/ );
+                rc = KSysDirRelativePath ( self, rcCreating, falias, ftarg, sizeof ftarg /*strlen ( ftarg )*/ );
                 if ( rc != 0 )
                     return rc;
             }
@@ -1758,12 +1742,9 @@ rc_t KSysDirCreateAlias ( KSysDir *self,
                    create-only, force creation by removing old */
                 if ( ( mode & kcmValueMask ) != kcmCreate )
                 {
-                    /* refuse to drop if not an alias */
                     if ( ( KSysDirFullPathType ( falias ) & kptAlias ) == 0 )
                         return RC ( rcFS, rcDirectory, rcCreating, rcPath, rcIncorrect );
-
-                    /* drop existing alias */
-                    rc = KSysDirRemoveEntry ( falias, sizeof falias, false );
+                    rc = KSysDirRemoveEntry ( falias, sizeof falias, 0 );
                     if ( rc == 0 )
                         break;
                 }
@@ -1854,7 +1835,7 @@ rc_t KSysDirOpenFileRead ( const KSysDir *self,
             return RC ( rcFS, rcDirectory, rcOpening, rcNoObj, rcUnknown );
         }
 
-        rc = KSysFileMake ( ( KSysFile** ) f, fd, full, true, false );
+        rc = KSysFileMake ( ( KSysFile** ) f, fd, true, false );
         if ( rc != 0 )
             close ( fd );
     }
@@ -1904,7 +1885,7 @@ rc_t KSysDirOpenFileWrite ( KSysDir *self,
             return RC ( rcFS, rcDirectory, rcOpening, rcNoObj, rcUnknown );
         }
 
-        rc = KSysFileMake ( ( KSysFile** ) f, fd, full, update, 1 );
+        rc = KSysFileMake ( ( KSysFile** ) f, fd, update, 1 );
         if ( rc != 0 )
             close ( fd );
     }
@@ -1957,8 +1938,6 @@ rc_t KSysDirCreateFile ( KSysDir *self, KFile **f, bool update,
                    wherever there is read or write on file */
                 uint32_t dir_access = access |
                     ( ( access & 0444 ) >> 2 ) | ( ( access & 0222 ) >> 1 );
-                /* NEW 2/15/2013 - also force read */
-                dir_access |= ( dir_access & 0111 ) << 2;
                 KSysDirCreateParents ( self, full, dir_access, true );
 
                 /* try again */
@@ -2015,16 +1994,11 @@ rc_t KSysDirCreateFile ( KSysDir *self, KFile **f, bool update,
                 rc = RC ( rcFS, rcDirectory, rcCreating, rcNoObj, rcUnknown );
                 break;
             }
-            
-            /* disabled 12/12/2012 : it prints an error message, if vdb tries to open
-               the same reference-object twice via http. The lock-file for the 2nd try
-               does already exist. This is not an error, just a condition. */
-
-            /* PLOGERR (klogErr, (klogErr, rc, "failed to create '$(F)'", "F=%s", full)); */
+            PLOGERR (klogErr, (klogErr, rc, "failed to create '$(F)'", "F=%s", full));
             return rc;
         }
 
-        rc = KSysFileMake ( ( KSysFile** ) f, fd, full, update, true );
+        rc = KSysFileMake ( ( KSysFile** ) f, fd, update, true );
         if ( rc != 0 )
             close ( fd );
     }
@@ -2143,15 +2117,10 @@ rc_t KSysDirOpenDirRead ( const KSysDir *self,
         size_t path_size = strlen ( full );
         while ( path_size > 1 && full [ path_size - 1 ] == '/' )
             full [ -- path_size ] = 0;
-            
-        {
-            int t = KSysDirFullPathType ( full ) & ( kptAlias - 1 );
-            if ( t == kptNotFound )
-                return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcNotFound );
-            if ( t != kptDir )
-                return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcIncorrect );
-        }
-        
+
+        if ( ( KSysDirFullPathType ( full ) & ( kptAlias - 1 ) ) != kptDir )
+            return RC ( rcFS, rcDirectory, rcOpening, rcPath, rcIncorrect );
+
         sub = KSysDirMake ( path_size );
         if ( sub == NULL )
             rc = RC ( rcFS, rcDirectory, rcOpening, rcMemory, rcExhausted );
@@ -2348,10 +2317,6 @@ rc_t KSysDirInit ( KSysDir *self, enum RCContext ctx, uint32_t dad_root,
     return 0;
 }
 
-extern rc_t CC ReportCWD ( const ReportFuncs *f, uint32_t indent );
-extern rc_t CC ReportRedirect ( KWrtHandler* handler,
-    const char* filename, bool* to_file, bool finalize );
-
 LIB_EXPORT rc_t CC KDirectoryNativeDir ( KDirectory **dirp )
 {
     rc_t rc;
@@ -2359,13 +2324,6 @@ LIB_EXPORT rc_t CC KDirectoryNativeDir ( KDirectory **dirp )
     uint32_t size;
     char wd [ PATH_MAX ];
 
-    static bool latch;
-    if ( ! latch )
-    {
-        ReportInitKFS ( ReportCWD, ReportRedirect );
-        latch = true;
-    }
-
     if ( dirp == NULL )
         return RC ( rcFS, rcDirectory, rcAccessing, rcParam, rcNull );
 
diff --git a/libs/kfs/unix/sysdll.c b/libs/kfs/unix/sysdll.c
index 802a324..3aa13cc 100644
--- a/libs/kfs/unix/sysdll.c
+++ b/libs/kfs/unix/sysdll.c
@@ -43,8 +43,6 @@
 #include <klib/rc.h>
 #include <sysalloc.h>
 
-#include "os-native.h"
-
 /* old Sun includes won't define PATH_MAX */
 
 #ifndef __XOPEN_OR_POSIX
@@ -61,6 +59,11 @@
 #include <errno.h>
 #include <assert.h>
 
+/* turn on dladdr for GNU and Darwin */
+#if ! defined _GNU_SOURCE && ! defined _DARWIN_C_SOURCE
+#define _GNU_SOURCE
+#define _DARWIN_C_SOURCE
+#endif
 #include <dlfcn.h>
 
 
@@ -290,7 +293,7 @@ LIB_EXPORT rc_t CC KDyldHomeDirectory ( const KDyld *self, const KDirectory **di
         {
             Dl_info info;
             memset ( & info, 0, sizeof info );
-            if ( dladdr ( ( void* ) func, & info ) == 0 )
+            if ( dladdr ( ( const void* ) func, & info ) == 0 )
                 rc = RC ( rcFS, rcDylib, rcSearching, rcFunction, rcNotFound );
             else
             {
@@ -352,21 +355,11 @@ LIB_EXPORT rc_t CC KDyldHomeDirectory ( const KDyld *self, const KDirectory **di
                                         path_type = KDirectoryPathType ( wd, thanks_for_brilliant_APIs );
                                         if ( ( path_type & ~ kptAlias ) == kptFile )
                                         {
-                                            uint32_t access = 0;
-                                            rc = KDirectoryAccess ( wd, & access, thanks_for_brilliant_APIs );
-                                            if ( rc != 0 )
-                                                break;
-
-                                            /* try to do a quick check that the file can be executed.
-                                               but it could fail to do the right guess. */
-                                            if ( access & 0100 || access & 0010 || access & 0001 ) {
-                                                /* this is a file, which can be assumed to be an executable */
-                                                dli_fname = thanks_for_brilliant_APIs;
-                                                last_slash
-                                                    = & thanks_for_brilliant_APIs [ last_slash - path_start ];
-                                                rc = 0;
-                                                break;
-                                            }
+                                            /* this is a file, which can be assumed to be an executable */
+                                            dli_fname = thanks_for_brilliant_APIs;
+                                            last_slash = & thanks_for_brilliant_APIs [ last_slash - path_start ];
+                                            rc = 0;
+                                            break;
                                         }
                                     }
 
@@ -421,7 +414,7 @@ rc_t KDylibWhack ( KDylib *self )
 
 
 /* Darwin, especially before 10.5 doesn't/didn't do this well */
-#if ! MAC
+#if MAC
     /* try to close library */
     if ( dlclose ( self -> handle ) )
     {
@@ -465,10 +458,9 @@ rc_t KDylibSetLogging ( const KDylib *self )
 {
     rc_t ( CC * set_formatter ) ( KFmtWriter writer, KLogFmtFlags flags, void *data );
     rc_t ( CC * set_writer ) ( KWrtWriter writer, void *data );
-    rc_t ( CC * set_level ) ( KLogLevel lvl );
 
     /* set the current logging level */
-    set_level = ( rc_t ( * ) ( KLogLevel ) ) dlsym ( self -> handle, "KLogLevelSet" );
+    rc_t ( CC * set_level ) ( KLogLevel lvl ) = dlsym ( self -> handle, "KLogLevelSet" );
     if ( set_level != NULL )
     {
         KLogLevel lvl = KLogLevelGet ();
@@ -476,37 +468,37 @@ rc_t KDylibSetLogging ( const KDylib *self )
     }
 
     /* determine current library logging */
-    set_writer = ( rc_t ( * ) ( KWrtWriter, void* ) ) dlsym ( self -> handle, "KOutHandlerSet" );
+    set_writer = dlsym ( self -> handle, "KOutHandlerSet" );
     if ( set_writer != NULL ) {
         const KWrtHandler* handler = KOutHandlerGet ();
         ( * set_writer ) ( handler -> writer, handler -> data );
     }
 
-    set_formatter = ( rc_t ( * ) ( KFmtWriter, KLogFmtFlags, void* ) ) dlsym ( self -> handle, "KLogLibFmtHandlerSet" );
+    set_formatter = dlsym ( self -> handle, "KLogLibFmtHandlerSet" );
     if ( set_formatter != NULL ) {
         KLogFmtFlags flags = KLogLibFmtFlagsGet ();
         const KFmtHandler* fmt_handler = KLogFmtHandlerGet ();
         ( * set_formatter ) ( fmt_handler -> formatter, flags, fmt_handler -> data );
     }
-    set_writer = ( rc_t ( * ) ( KWrtWriter, void* ) ) dlsym ( self -> handle, "KLogLibHandlerSet" );
+    set_writer = dlsym ( self -> handle, "KLogLibHandlerSet" );
     if ( set_writer != NULL ) {
         const KWrtHandler* handler = KLogLibHandlerGet ();
         ( * set_writer ) ( handler -> writer, handler -> data );
     }
 
-    set_formatter = ( rc_t ( * ) ( KFmtWriter, KLogFmtFlags, void* ) ) dlsym ( self -> handle, "KStsLibFmtHandlerSet" );
+    set_formatter = dlsym ( self -> handle, "KStsLibFmtHandlerSet" );
     if ( set_formatter != NULL ) {
         KStsFmtFlags flags = KStsLibFmtFlagsGet ();
         const KFmtHandler* fmt_handler = KStsFmtHandlerGet ();
         ( * set_formatter ) ( fmt_handler -> formatter, flags, fmt_handler -> data );
     }
-    set_writer = ( rc_t ( * ) ( KWrtWriter, void* ) ) dlsym ( self -> handle, "KStsLibHandlerSet" );
+    set_writer = dlsym ( self -> handle, "KStsLibHandlerSet" );
     if ( set_writer != NULL ) {
         const KWrtHandler* handler = KStsLibHandlerGet ();
         ( * set_writer ) ( handler -> writer, handler -> data );
     }
 #if _DEBUGGING
-    set_writer = ( rc_t ( * ) ( KWrtWriter, void* ) ) dlsym ( self -> handle, "KDbgHandlerSet" );
+    set_writer = dlsym ( self -> handle, "KDbgHandlerSet" );
     if ( set_writer != NULL ) {
         const KWrtHandler* handler = KDbgHandlerGet ();
         ( * set_writer ) ( handler -> writer, handler -> data );
@@ -847,8 +839,7 @@ rc_t KDlsetWhack ( KDlset *self )
     return 0;
 }
 
-#define STRINGIZE(s) #s
-#define LIBNAME(pref, name, suff) STRINGIZE(pref) name STRINGIZE(suff)
+
 /* MakeSet
  *  load a dynamic library
  *
@@ -856,7 +847,7 @@ rc_t KDlsetWhack ( KDlset *self )
  */
 LIB_EXPORT rc_t CC KDyldMakeSet ( const KDyld *self, KDlset **setp )
 {
-    rc_t rc = 0;
+    rc_t rc;
 
     if ( setp == NULL )
         rc = RC ( rcFS, rcDylib, rcConstructing, rcParam, rcNull );
@@ -876,20 +867,8 @@ LIB_EXPORT rc_t CC KDyldMakeSet ( const KDyld *self, KDlset **setp )
                 VectorInit ( & set -> ord, 0, 16 );
                 KRefcountInit ( & set -> refcount, 1, "KDlset", "make", "dlset" );
 #if ! ALWAYS_ADD_EXE
-                {   
-                    KDylib *jni;
-                    const char* libname = LIBNAME(LIBPREFIX, "vdb_jni.", SHLIBEXT);
-                    if ( KDyldLoadLib ( ( KDyld* ) self, & jni, libname ) == 0 )
-                    {
-                        rc = KDlsetAddLib ( set, jni );
-                        KDylibRelease ( jni );
-                    }
-                    if (rc == 0)
-                    {
-                        * setp = set;
-                        return 0;
-                    }
-                }
+                * setp = set;
+                return 0;
 #else
                 {
                     KDylib *exe;
@@ -905,8 +884,9 @@ LIB_EXPORT rc_t CC KDyldMakeSet ( const KDyld *self, KDlset **setp )
                         }
                     }
                 }
-#endif
+
                 KDlsetRelease ( set );
+#endif
             }
         }
 
@@ -1352,56 +1332,6 @@ LIB_EXPORT rc_t CC KDlsetLastSymbol ( const KDlset *self, KSymAddr **sym, const
 }
 
 
-/* List - PRIVATE
- *  list the paths to the libraries in the set
- */
-typedef struct list_dylib_param list_dylib_param;
-struct list_dylib_param
-{
-    VNamelist *list;
-    rc_t rc;
-};
-
-static
-bool CC list_dylib ( void *item, void *data )
-{
-    list_dylib_param *pb = data;
-    const KDylib *lib = ( const void* ) item;
-
-    /* "lib" was created with KDylibMake
-       which creates a NUL terminated path.
-       of course, this could seg-fault if bad... */
-    assert ( lib -> path . addr [ lib -> path . size ] == 0 );
-
-    pb -> rc = VNamelistAppend ( pb -> list, lib -> path . addr );
-    return pb -> rc != 0;
-}
-
-LIB_EXPORT rc_t CC KDlsetList ( const KDlset *self, KNamelist **listp )
-{
-    list_dylib_param pb;
-
-    assert ( listp != NULL );
-
-    if ( self == NULL )
-        pb . rc = RC ( rcFS, rcDylib, rcListing, rcSelf, rcNull );
-    else
-    {
-        pb . rc = VNamelistMake ( & pb . list, VectorLength ( & self -> name ) );
-        if ( pb . rc == 0 )
-        {
-            bool fail = VectorDoUntil ( & self -> name, false, list_dylib, & pb );
-            if ( ! fail )
-                pb . rc = VNamelistToNamelist ( pb . list, listp );
-
-            VNamelistRelease ( pb . list );
-        }
-    }
-
-    return pb . rc;
-}
-
-
 /* AsObj
  * AsFunc
  *  retrieve symbol address as pointer to object
diff --git a/libs/kfs/unix/sysfile-priv.h b/libs/kfs/unix/sysfile-priv.h
index 34d2a40..f6db460 100644
--- a/libs/kfs/unix/sysfile-priv.h
+++ b/libs/kfs/unix/sysfile-priv.h
@@ -65,7 +65,7 @@ struct KSysFile
  *  create a new file object
  *  from file descriptor
  */
-rc_t KSysFileMake ( KSysFile **fp, int fd, const char *path, bool read_enabled, bool write_enabled );
+rc_t KSysFileMake ( KSysFile **fp, int fd, bool read_enabled, bool write_enabled );
 
 
 #ifdef __cplusplus
diff --git a/libs/kfs/unix/sysfile.c b/libs/kfs/unix/sysfile.c
index 5b98275..9a3383a 100644
--- a/libs/kfs/unix/sysfile.c
+++ b/libs/kfs/unix/sysfile.c
@@ -466,29 +466,29 @@ rc_t KSysFileWrite ( KSysFile *self, uint64_t pos,
             return rc;
 
         case EIO:
-            rc = RC ( rcFS, rcFile, rcWriting, rcTransfer, rcUnknown );
+            rc = RC ( rcFS, rcFile, rcReading, rcTransfer, rcUnknown );
             LOGERR (klogErr, rc, "system I/O error");
             return rc;
 
         case EBADF:
-            rc = RC ( rcFS, rcFile, rcWriting, rcFileDesc, rcInvalid );
+            rc = RC ( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
             PLOGERR (klogErr,
                      (klogErr, rc, "system bad file descriptor error fd='$(E)'",
                       "E=%d", self->fd));
             return rc;
 
         case EISDIR:
-            rc = RC ( rcFS, rcFile, rcWriting, rcFileDesc, rcIncorrect );
+            rc = RC ( rcFS, rcFile, rcReading, rcFileDesc, rcIncorrect );
             LOGERR (klogErr, rc, "system misuse of a directory error");
             return rc;
 
         case EINVAL:
-            rc = RC ( rcFS, rcFile, rcWriting, rcParam, rcInvalid );
+            rc = RC ( rcFS, rcFile, rcReading, rcParam, rcInvalid );
             LOGERR (klogErr, rc, "system invalid argument error");
             return rc;
 
         default:
-            rc = RC ( rcFS, rcFile, rcWriting, rcNoObj, rcUnknown );
+            rc = RC ( rcFS, rcFile, rcReading, rcNoObj, rcUnknown );
             PLOGERR (klogErr,
                      (klogErr, rc, "unknown system error errno='$(S)($(E))'",
                       "S=%!,E=%d", lerrno, lerrno));
@@ -530,7 +530,7 @@ static KFile_vt_v1 vtKSysFile =
 
 static
 rc_t KSysFileMakeVT ( KSysFile **fp, int fd, const KFile_vt *vt,
-    const char *path, bool read_enabled, bool write_enabled )
+    bool read_enabled, bool write_enabled )
 {
     rc_t rc;
     KSysFile *f;
@@ -564,7 +564,7 @@ rc_t KSysFileMakeVT ( KSysFile **fp, int fd, const KFile_vt *vt,
         }
 #endif
 
-        rc = KFileInit ( & f -> dad, vt, "KSysFile", path, read_enabled, write_enabled );
+        rc = KFileInit ( & f -> dad, vt, read_enabled, write_enabled );
         if ( rc == 0 )
         {
             f -> fd = fd;
@@ -577,10 +577,10 @@ rc_t KSysFileMakeVT ( KSysFile **fp, int fd, const KFile_vt *vt,
     return rc;
 }
 
-LIB_EXPORT rc_t CC KSysFileMake ( KSysFile **fp, int fd, const char *path, bool read_enabled, bool write_enabled )
+LIB_EXPORT rc_t CC KSysFileMake ( KSysFile **fp, int fd, bool read_enabled, bool write_enabled )
 {
     return KSysFileMakeVT ( fp, fd, ( const KFile_vt* ) & vtKSysFile,
-        path, read_enabled, write_enabled );
+        read_enabled, write_enabled );
 }
 
 /*--------------------------------------------------------------------------
@@ -804,7 +804,7 @@ rc_t KStdIOFileWrite ( KSysFile *dad, uint64_t pos,
         case EBADF:
             rc = RC ( rcFS, rcFile, rcWriting, rcFileDesc, rcInvalid );
             PLOGERR (klogInt,
-                     (klogInt, rc, "system bad file descriptor error fd=$(F)",
+                     (klogInt, rc, "systembad file descriptor error fd=$(F)",
                       "F=%d", lerrno, self->dad.fd));
             return rc;
 
@@ -917,7 +917,7 @@ rc_t KStdIOFileMake ( KFile **fp, int fd,
     if ( seekable )
     {
         return KSysFileMakeVT ( ( KSysFile** ) fp, fd,
-            ( const KFile_vt* ) & vtKStdIOFile, "stdio-file", read_enabled, write_enabled );
+            ( const KFile_vt* ) & vtKStdIOFile, read_enabled, write_enabled );
     }
 
     if ( fd < 0 )
@@ -955,7 +955,7 @@ rc_t KStdIOFileMake ( KFile **fp, int fd,
             }
 #endif
             rc = KFileInit ( &f->dad.dad, (const KFile_vt*) &vtKStdIOStream,
-                             "KStdIOFile", "fd", read_enabled, write_enabled );
+                             read_enabled, write_enabled );
             if ( rc == 0 )
             {
                 f -> dad . fd = fd;
diff --git a/libs/kfs/unix/syslockfile.c b/libs/kfs/unix/syslockfile.c
deleted file mode 100644
index 57aaa4c..0000000
--- a/libs/kfs/unix/syslockfile.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-typedef struct KExclAccessFile KExclAccessFile;
-#define KFILE_IMPL KExclAccessFile
-
-#include <kfs/extern.h>
-#include <kfs/lockfile.h>
-#include <kfs/impl.h>
-#include <kfs/file.h>
-#include <kfs/directory.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <assert.h>
-
-/*--------------------------------------------------------------------------
- * KExclAccessFile
- */
-struct KExclAccessFile
-{
-    KFile dad;
-    KLockFile *lock;
-    KFile *f;
-};
-
-static
-rc_t KExclAccessFileDestroy ( KExclAccessFile *self )
-{
-    rc_t rc = KFileRelease ( self -> f );
-    if ( rc == 0 )
-    {
-        KLockFileRelease ( self -> lock );
-        free ( self );
-    }
-    return rc;
-}
-
-static
-struct KSysFile *KExclAccessFileGetSysFile ( const KExclAccessFile *self, uint64_t *offset )
-{
-    return KFileGetSysFile ( self -> f, offset );
-}
-
-static
-rc_t KExclAccessFileRandomAccess ( const KExclAccessFile *self )
-{
-    return KFileRandomAccess ( self -> f );
-}
-
-static
-rc_t KExclAccessFileSize ( const KExclAccessFile *self, uint64_t *size )
-{
-    return KFileSize ( self -> f, size );
-}
-
-static
-rc_t KExclAccessFileSetSize ( KExclAccessFile *self, uint64_t size )
-{
-    return KFileSetSize ( self -> f, size );
-}
-
-static
-rc_t KExclAccessFileRead ( const KExclAccessFile *self, uint64_t pos,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    return KFileRead ( self -> f, pos, buffer, bsize, num_read );
-}
-
-static
-rc_t KExclAccessFileWrite ( KExclAccessFile *self, uint64_t pos,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    return KFileWrite ( self -> f, pos, buffer, size, num_writ );
-}
-
-static
-uint32_t KExclAccessFileType ( const KExclAccessFile * self )
-{
-    return KFileType ( self -> f );
-}
-
-static KFile_vt_v1 KExclAccessFile_vt =
-{
-    1, 1,
-
-    KExclAccessFileDestroy,
-    KExclAccessFileGetSysFile,
-    KExclAccessFileRandomAccess,
-    KExclAccessFileSize,
-    KExclAccessFileSetSize,
-    KExclAccessFileRead,
-    KExclAccessFileWrite,
-    KExclAccessFileType
-};
-
-static
-rc_t KExclAccessFileMake ( KExclAccessFile **fp, KLockFile *lock, KFile *f )
-{
-    rc_t rc;
-    KExclAccessFile *xf = malloc ( sizeof * xf );
-    if ( xf == NULL )
-        rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        rc = KFileInit ( & xf -> dad, ( const KFile_vt* ) & KExclAccessFile_vt,
-            "KExclAccessFile", "no-name", f -> read_enabled, f -> write_enabled );
-        if ( rc == 0 )
-        {
-            xf -> lock = lock;
-            xf -> f = f;
-            * fp = xf;
-            return 0;
-        }
-
-        free ( xf );
-    }
-
-    return rc;
-}
-
-
-/*--------------------------------------------------------------------------
- * KDirectory
- *  interface extensions
- */
-
-
-/* CreateExclusiveAccessFile
- *  opens a file with exclusive write access
- *
- *  "fp" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "access" [ IN ] - standard Unix access mode, e.g. 0664
- *
- *  "mode" [ IN ] - a creation mode ( see explanation above ).
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- */
-LIB_EXPORT rc_t CC KDirectoryVCreateExclusiveAccessFile ( KDirectory *self, KFile **fp,
-    bool update, uint32_t access, KCreateMode mode, const char *path, va_list args )
-{
-    rc_t rc;
-
-    if ( fp == NULL )
-        rc = RC ( rcFS, rcFile, rcLocking, rcParam, rcNull );
-    else
-    {
-        /* create the path */
-        char full [ 4096 ];
-        rc = KDirectoryVResolvePath ( self, true, full, sizeof full, path, args );
-        if ( rc == 0 )
-        {
-            KLockFile *lock;
-
-            /* acquire the lock */
-            rc = KDirectoryCreateLockFile ( self, & lock, "%s.lock", full );
-            if ( rc == 0 )
-            {
-                KFile *f;
-
-                /* create the file */
-                rc = KDirectoryCreateFile ( self, & f, update, access, mode, full );
-                if ( rc == 0 )
-                {
-                    KExclAccessFile *xf;
-
-                    /* wrap the file */
-                    rc = KExclAccessFileMake ( & xf, lock, f );
-                    if ( rc == 0 )
-                    {
-                        * fp = & xf -> dad;
-                        return 0;
-                    }
-
-                    KFileRelease ( f );
-                }
-
-                KLockFileRelease ( lock );
-            }
-        }
-
-        * fp = NULL;
-    }
-
-    return rc;
-}
diff --git a/libs/vfs/unix/syspath.c b/libs/kfs/unix/syspath.c
similarity index 92%
rename from libs/vfs/unix/syspath.c
rename to libs/kfs/unix/syspath.c
index 540dd84..625f22d 100644
--- a/libs/vfs/unix/syspath.c
+++ b/libs/kfs/unix/syspath.c
@@ -24,9 +24,9 @@
 *
 */
 
-#include <vfs/extern.h>
+#include <kfs/extern.h>
 
-#include <vfs/path.h>
+#include <kfs/path.h>
 #include "path-priv.h"
 
 #include <klib/rc.h>
@@ -38,7 +38,7 @@
 #include <string.h>
 #include <unistd.h>
 
-rc_t VPathTransformSysPath (VPath * self)
+rc_t KPathTransformSysPath (KPath * self)
 {
 #if 1
     return 0;
@@ -83,7 +83,7 @@ rc_t VPathTransformSysPath (VPath * self)
 }
 
 
-rc_t VPathGetCWD (char * buffer, size_t buffer_size)
+rc_t KPathGetCWD (char * buffer, size_t buffer_size)
 {
     char * temp = getcwd (buffer, buffer_size);
     if (temp == NULL)
@@ -92,10 +92,9 @@ rc_t VPathGetCWD (char * buffer, size_t buffer_size)
 }
 
 
-rc_t VPathTransformPathHier (char ** ppath)
+#if USE_EXPERIMENTAL_CODE
+rc_t KPathTransformPathHier (char ** ppath)
 {
-#if USE_EXPERIMENTAL_CODE && 0
-/* turning this off until http urls are better handled. */
     char * pc;
 
     pc = *ppath;
@@ -122,6 +121,6 @@ rc_t VPathTransformPathHier (char ** ppath)
         *ppath = pc;
     }
     PATH_DEBUG (("%s: outgoing path '%s'\n",__func__, *ppath));
-#endif
     return 0;
 }
+#endif
diff --git a/libs/kfs/win/lnk_tools.c b/libs/kfs/win/lnk_tools.c
index 853d441..a85f31c 100644
--- a/libs/kfs/win/lnk_tools.c
+++ b/libs/kfs/win/lnk_tools.c
@@ -23,9 +23,6 @@
 * ===========================================================================
 *
 */
-
-#include <sysalloc.h>
-
 #include <Shlobj.h>
 
 #define LNK_RES_ERROR 0
@@ -378,8 +375,7 @@ static wchar_t * win_assemble_lnk( const wchar_t *path, const size_t exists, siz
 
         *remaining = 0;
         path_len = wcslen( path );
-        #define ExtraChars 5
-        buff_len = ( path_len + ExtraChars ) * sizeof( * path );
+        buff_len = ( path_len + 5 ) * sizeof( * path );
         res = (wchar_t *)malloc( buff_len );
         if ( res != NULL )
         {
@@ -396,14 +392,13 @@ static wchar_t * win_assemble_lnk( const wchar_t *path, const size_t exists, siz
             /* if the string to be copied does not fit into the buffer 
                wcsncpy_s will terminate the application instead of returning
                an error !!! */
-            wcsncpy_s( res, path_len + ExtraChars, path, term ); /* 2nd argument is in elements, not bytes */
+            wcsncpy_s( res, buff_len, path, term );
             res[ term + 0 ] = L'.';
             res[ term + 1 ] = L'l';
             res[ term + 2 ] = L'n';
             res[ term + 3 ] = L'k';
             res[ term + 4 ] = 0;
         }
-        #undef ExtraChars
     }
     return res;
 }
diff --git a/libs/kfs/win/sysdir-priv.h b/libs/kfs/win/sysdir-priv.h
index 1ae8cc7..4568d15 100644
--- a/libs/kfs/win/sysdir-priv.h
+++ b/libs/kfs/win/sysdir-priv.h
@@ -78,10 +78,10 @@ rc_t KSysDirMakePath ( const KSysDir* self, enum RCContext ctx, bool canon,
 #endif
 
 
-/* OSPath
+/* RealPath
  *  returns a real OS path
  */
-rc_t KSysDirOSPath ( const KSysDir *self,
+rc_t KSysDirRealPath ( const KSysDir *self,
     wchar_t *real, size_t bsize, const char *path, va_list args );
 
 
diff --git a/libs/kfs/win/sysdir.c b/libs/kfs/win/sysdir.c
index fc9a333..a97177f 100644
--- a/libs/kfs/win/sysdir.c
+++ b/libs/kfs/win/sysdir.c
@@ -43,12 +43,10 @@ struct KSysDir;
 #include <klib/log.h>
 #include <klib/out.h>
 #include <klib/debug.h>
-#include <klib/klib-priv.h>
 
 #include <sysalloc.h>
 
 #include <stdio.h>
-#include <wchar.h>
 #include <stdarg.h>
 #include <assert.h>
 #include <WINDOWS.H>
@@ -109,8 +107,8 @@ rc_t KSysDirEnumInit ( KSysDirEnum *self, const wchar_t *path )
         rc = RC ( rcFS, rcDirectory, rcListing, rcNoObj, rcUnknown );
     }
 
-    PLOGERR ( klogInfo,
-             ( klogInfo, rc, "error FindFirstFileW - $(E) - $(C)",
+    PLOGERR ( klogErr,
+             ( klogErr, rc, "error FindWirstFileW - $(E) - $(C)",
               "E=%!,C=%u", err, err ) ); 
 
     return rc;
@@ -281,35 +279,6 @@ rc_t translate_file_error( DWORD error, enum RCContext ctx )
 }
 
 
-/* helper */
-
-static rc_t print_error_for( const wchar_t * path, const char * function, enum RCContext ctx, KLogLevel level )
-{
-    DWORD error = GetLastError();
-    rc_t rc = translate_file_error( error, ctx );
-#if _DEBUGGING
-    char buffer[ 4096 ];
-    size_t src_size, dst_size, len;
-    wchar_cvt_string_measure ( path, &src_size, &dst_size );
-    len = wchar_cvt_string_copy ( buffer, sizeof buffer, path, src_size );
-    buffer[ len ] = 0;
-    PLOGERR ( level,
-              ( level, rc, "error $(F) - $(E) - $(C) for $(D)",
-                "F=%s,E=%!,C=%u,D=%s", function, error, error, buffer ) ); 
-#endif
-    return rc;
-}
-
-
-static void wchar_2_char( const wchar_t * path, char * buffer, size_t buflen )
-{
-    size_t src_size, dst_size, len;
-    wchar_cvt_string_measure ( path, &src_size, &dst_size );
-    len = wchar_cvt_string_copy ( buffer, buflen, path, src_size );
-    buffer[ len ] = 0;
-}
-
-
 static
 uint32_t KSysDirPathTypeFromFindData ( WIN32_FIND_DATA *find_data, 
                                        const wchar_t * path,
@@ -412,7 +381,9 @@ uint32_t KSysDirFullPathType ( const wchar_t *path )
             return KSysDirResolvePathAndDetectPathType ( path );
         default:
             DBGMSG ( DBG_KFS, DBG_FLAG_ANY, ( "FindFirstFileW: WARNING - unrecognized return code - %u.\n", status ) );
-            print_error_for( path, "FindFirstFileW", rcResolving, klogErr );
+            PLOGERR ( klogErr,
+                     ( klogErr, 0, "error FindWirstFileW - $(E) - $(C)",
+                      "E=%!,C=%u", status, status ) ); 
             return kptBadPath;
         }
     }
@@ -588,7 +559,7 @@ rc_t KSysDirMakePath ( const KSysDir* self, enum RCContext ctx, bool canon,
                 return RC ( rcFS, rcDirectory, ctx, rcPath, rcInvalid );
 
             /* rewrite drive letter */
-            temp_utf8_buffer [ 0 ] = tolower ( temp_utf8_buffer [ 1 ] );
+            temp_utf8_buffer [ 0 ] = toupper ( temp_utf8_buffer [ 1 ] );
             temp_utf8_buffer [ 1 ] = ':';
         }
     }
@@ -645,7 +616,7 @@ rc_t KSysDirMakePath ( const KSysDir* self, enum RCContext ctx, bool canon,
     return 0;
 }
 
-rc_t KSysDirOSPath ( const KSysDir *self,
+rc_t KSysDirRealPath ( const KSysDir *self,
     wchar_t *real, size_t real_size, const char *path, va_list args )
 {
     return KSysDirMakePath ( self, rcLoading, true, real, real_size, path, args );
@@ -900,18 +871,27 @@ rc_t KSysDirRelativePath ( const KSysDir *self, enum RCContext ctx,
     const wchar_t *root, wchar_t *path, size_t path_max )
 {
     size_t psize;
-    uint32_t backup, blength_in_chars, dst, diff_from_here;
+    uint32_t backup, blength_in_chars;
 
     const wchar_t *r = root + self->root;
     const wchar_t *p = path + self->root;
 
-    for ( ; towlower ( * r ) == towlower ( * p ); ++ r, ++ p )
+    for ( ; * r == * p; ++ r, ++ p )
     {
         /* disallow identical paths */
         if ( * r == 0 )
             return RC( rcFS, rcDirectory, ctx, rcPath, rcInvalid );
     }
 
+    /* special case for windows: a network path like "\\panfs\traces01\" 
+       cannot be made relative to a working directory ! */
+
+    /* NB - THE BUG HERE IS THAT THE TWO PATHS MUST BE ON DIFFERENT FILE SYSTEMS */
+    if ( ( path[0] == '\\' ) && ( path[1] == '\\' ) )
+    {
+/*        return 0; */
+    }
+
     /* paths are identical up to "r","p"
        if "r" is within a leaf name, then no backup is needed
        by counting every '\\' from "r" to end, obtain backup count */
@@ -925,35 +905,31 @@ rc_t KSysDirRelativePath ( const KSysDir *self, enum RCContext ctx,
     blength_in_chars = backup * 3;
 
     /* align "p" to last directory separator */
-    if ( p > path ) {
-        while ( p [ -1 ] != '\\' ) -- p;
-    }
+    while ( p [ -1 ] != '\\' ) -- p;
 
     /* the size of the remaining relative path */
     psize = wcslen ( p );
-    diff_from_here = ( uint32_t )( p - path );
 
     /* open up space if needed */
-    if ( diff_from_here < blength_in_chars )
+    if ( (uint32_t)( p - path ) < blength_in_chars )
     {
         /* prevent overflow */
         if ( ( blength_in_chars + psize ) * sizeof( *path ) >= path_max )
             return RC( rcFS, rcDirectory, ctx, rcPath, rcExcessive );
-        memmove ( & path[ blength_in_chars ], p, psize * ( sizeof *p ) );
+        memmove ( path + blength_in_chars, p, psize * sizeof *p );
     }
 
     /* insert backup sequences */
-    for ( dst = 0; backup > 0; -- backup )
+    for ( blength_in_chars = 0; backup > 0; blength_in_chars += 3, -- backup )
     {
-        path [ dst++ ] = '.';
-        path [ dst++ ] = '.';
-        path [ dst++ ] = '\\';
+        path [ blength_in_chars + 0 ] = '.';
+        path [ blength_in_chars + 1 ] = '.';
+        path [ blength_in_chars + 2 ] = '\\';
     }
 
     /* close gap */
-    if ( diff_from_here > blength_in_chars )
+    if ( ( uint32_t) ( p - path ) > blength_in_chars )
         wcscpy ( & path [ blength_in_chars ], p );
-    path[ blength_in_chars + psize ] = 0;
 
     return 0;
 }
@@ -981,15 +957,10 @@ rc_t CC KSysDirResolvePath ( const KSysDir *self, bool absolute,
     uint32_t temp_length;
 
     /* convert the utf8-input-parameter path into wchar_t */
-    rc_t rc = KSysDirMakePath ( self, rcResolving, true, temp, sizeof temp, path, args );
+    rc_t rc = KSysDirMakePath( self, rcResolving, true, temp, sizeof temp, path, args);
     if ( rc != 0 )
         return rc;
 
-    temp[ 0 ] = tolower( temp[ 0 ] ); /* this is important:
-                                         otherwise the comparison for is_on_same_drive_letter fails
-                                         AND
-                                         KSysDirRelativePath() fails too! */
-
     temp_length = wchar_string_measure ( temp, &temp_size );
     if ( absolute )
     {
@@ -999,26 +970,11 @@ rc_t CC KSysDirResolvePath ( const KSysDir *self, bool absolute,
     }
     else
     {
-        /* we are on windows, only if the path has a drive letter and it is the same
-           one as in KSysDir itself, we should try to create a relative path */
-        wchar_t colon = ':';
-        bool is_on_same_drive_letter = ( iswascii ( temp[ 0 ] ) && iswascii ( self->path[ 0 ] ) &&
-                                         ( temp[ 1 ] == colon ) && ( self->path[ 1 ] == colon ) &&
-                                         ( towlower ( temp[ 0 ] ) == towlower ( self->path[ 0 ] ) ) );
-        if ( is_on_same_drive_letter )
-        {
-            rc = KSysDirRelativePath( self, rcResolving, self->path, temp, sizeof temp );
-            if ( rc == 0 )
-            {
-                uint32_t temp_length = wchar_string_measure ( temp, &temp_size );
-                if ( temp_length >= rsize )
-                    return RC ( rcFS, rcDirectory, rcResolving, rcBuffer, rcInsufficient );
-            }
-        }
-        else
+        rc = KSysDirRelativePath( self, rcResolving, self->path, temp, sizeof temp /* temp_size */ );
+        if ( rc == 0 )
         {
-            /* treat it as if absolute were requested ( see above ) */
-            if ( temp_length - self->root >= rsize )
+            uint32_t temp_length = wchar_string_measure ( temp, &temp_size );
+            if ( temp_length >= rsize )
                 return RC ( rcFS, rcDirectory, rcResolving, rcBuffer, rcInsufficient );
         }
     }
@@ -1266,25 +1222,15 @@ rc_t CC KSysDirRename ( KSysDir *self, bool force, const char *from, const char
     rc_t rc = KSysDirMakePath ( self, rcRenaming, false, current_name, sizeof current_name, from, NULL );
     if ( rc == 0 )
     {
-
         wchar_t new_name[ MAX_PATH ];
         rc = KSysDirMakePath ( self, rcRenaming, false, new_name, sizeof new_name, to, NULL );
         if ( rc == 0 )
         {
             DWORD err = 0;
             uint32_t try = 0;
-
             do
             {
-                BOOL success = false;
-                if ( force ) {
-                    DWORD dwFlags = MOVEFILE_REPLACE_EXISTING;
-                    success = MoveFileEx ( current_name, new_name, dwFlags );
-                }
-                else {
-                    success = MoveFileW ( current_name, new_name );
-                }
-                if ( success )
+                if ( MoveFileW( current_name, new_name ) )
                 {
                     rc = 0;
                 }
@@ -1302,8 +1248,6 @@ rc_t CC KSysDirRename ( KSysDir *self, bool force, const char *from, const char
                             Sleep( 500 ); /* sleep for a half a second */
                             rc = RC ( rcFS, rcDirectory, rcRenaming, rcFile, rcUnauthorized );
                             break;
-                       case ERROR_SHARING_VIOLATION:
-                           return RC ( rcFS, rcDirectory, rcRenaming, rcFile, rcBusy );
                         default:
                             return RC ( rcFS, rcDirectory, rcRenaming, rcNoObj, rcUnknown );
                     }
@@ -1488,7 +1432,9 @@ rc_t KSysDirRemoveEntry ( wchar_t *path, size_t path_max, bool force )
                         if ( !RemoveDirectoryW( path ) )
                         {
                             rc = RC ( rcFS, rcDirectory, rcRemoving, rcDirectory, rcUnauthorized );
-                            print_error_for( path, "RemoveDirectoryW", rcRemoving, klogErr );
+                            PLOGERR ( klogErr,
+                                      ( klogErr, rc, "error RemoveDirectoryW - $(E) - $(C)",
+                                       "E=%!,C=%u", error, error ) ); 
                         }
                     }
                     return rc;
@@ -1502,8 +1448,9 @@ rc_t KSysDirRemoveEntry ( wchar_t *path, size_t path_max, bool force )
             default :
                 rc = RC ( rcFS, rcDirectory, rcCreating, rcNoObj, rcUnknown );
             }
-
-            print_error_for( path, "RemoveDirectoryW", rcRemoving, klogInfo);
+            PLOGERR ( klogErr,
+                      ( klogErr, rc, "error RemoveDirectoryW - $(E) - $(C)",
+                       "E=%!,C=%u", error, error ) ); 
             return rc;
         }
     }
@@ -1587,8 +1534,11 @@ rc_t get_attributes ( const wchar_t * wpath, uint32_t * access, KTime_t * date )
         *access = 0;
     if ( date != NULL )
         *date = 0;
-
-    rc = print_error_for( wpath, "FindFirstFile", rcAccessing, klogErr );
+    error = GetLastError();
+    rc = translate_file_error( error, rcAccessing );
+    PLOGERR ( klogErr,
+              ( klogErr, rc, "error FindFirstFile - $(E) - $(C)",
+               "E=%!,C=%u", error, error ) ); 
     return rc;
 }
 
@@ -1801,10 +1751,12 @@ rc_t make_dir ( const wchar_t *path, uint32_t access )
     {
         DWORD error = GetLastError();
         rc = translate_file_error( error, rcCreating );
-/*
-        Do not print an error code here, it is valid that this can happen!
-        rc = print_error_for( path, "CreateDirectoryW", rcCreating, klogErr );
-*/
+        if ( error != ERROR_ALREADY_EXISTS )
+        {
+            PLOGERR ( klogErr,
+                      ( klogErr, rc, "error CreateDirectoryW - $(E) - $(C)",
+                        "E=%!,C=%u", error, error ) );
+        }
     }
     return rc;
 }
@@ -2008,17 +1960,19 @@ rc_t CC KSysDirOpenFileRead ( const KSysDir *self,
     rc_t rc = KSysDirMakePath( self, rcOpening, false, file_name, sizeof file_name, path, args );
     if ( rc == 0 )
     {
-        HANDLE file_handle = CreateFileW( file_name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, 
+        HANDLE file_handle = CreateFileW( file_name, GENERIC_READ, FILE_SHARE_READ, NULL, 
                                 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
         if ( file_handle == INVALID_HANDLE_VALUE )
         {
-            rc = print_error_for( file_name, "CreateFileW", rcOpening, klogInfo );
+            DWORD error = GetLastError();
+            rc = translate_file_error( error, rcOpening );
+            PLOGERR ( klogErr,
+                      ( klogErr, rc, "error CreateFileW - $(E) - $(C)",
+                        "E=%!,C=%u", error, error ) ); 
         }
         else
         {
-            char buffer[ MAX_PATH ];
-            wchar_2_char( file_name, buffer, sizeof buffer );
-            rc = KSysFileMake ( ( KSysFile** ) f, file_handle, buffer, true, false );
+            rc = KSysFileMake ( ( KSysFile** ) f, file_handle, true, false );
             if ( rc != 0 )
                 CloseHandle ( file_handle );
         }
@@ -2046,19 +2000,20 @@ rc_t CC KSysDirOpenFileWrite ( KSysDir *self,
     if ( rc == 0 )
     {
         DWORD dwDesiredAccess = update ? GENERIC_READ | GENERIC_WRITE : GENERIC_WRITE;
-        HANDLE file_handle = CreateFileW( file_name, dwDesiredAccess, FILE_SHARE_READ, NULL, 
-                                OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
+        HANDLE file_handle = CreateFileW( file_name, dwDesiredAccess, 0, NULL, 
+                                OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
 
         if ( file_handle == INVALID_HANDLE_VALUE )
         {
-            rc = print_error_for( file_name, "CreateFileW", rcAccessing, klogErr );
-
+            DWORD error = GetLastError();
+            rc = translate_file_error( error, rcAccessing );
+            PLOGERR ( klogErr,
+                      ( klogErr, rc, "error CreateFileW - $(E) - $(C)",
+                        "E=%!,C=%u", error, error ) ); 
         }
         else
         {
-            char buffer[ MAX_PATH ];
-            wchar_2_char( file_name, buffer, sizeof buffer );
-            rc = KSysFileMake ( ( KSysFile** ) f, file_handle, buffer, update, true );
+            rc = KSysFileMake ( ( KSysFile** ) f, file_handle, update, true );
             if ( rc != 0 )
                 CloseHandle ( file_handle );
         }
@@ -2130,29 +2085,17 @@ rc_t CC KSysDirCreateFile ( KSysDir *self, KFile **f, bool update,
 
             error = GetLastError();
             rc = translate_file_error( error, rcCreating );
-
-            /* disabled 12/12/2012 : it prints an error message, if vdb tries to open
-               the same reference-object twice via http. The lock-file for the 2nd try
-               does already exist. This is not an error, just a condition. */
-
-            /*
             PLOGERR ( klogErr,
                       ( klogErr, rc, "error CreateFileW - $(E) - $(C)",
                         "E=%!,C=%u", error, error ) ); 
-            */
-
             /* Unix code has a special case when creating an empty file, which is
                to say, creating a directory entry without needing to write to file */
             return rc;
         }
 
-        {
-            char buffer[ MAX_PATH ];
-            wchar_2_char( file_name, buffer, sizeof buffer );
-            rc = KSysFileMake ( ( KSysFile** ) f, file_handle, path, update, true );
-            if ( rc != 0 )
-                CloseHandle ( file_handle );
-        }
+        rc = KSysFileMake ( ( KSysFile** ) f, file_handle, update, true );
+        if ( rc != 0 )
+            CloseHandle ( file_handle );
     }
     return rc;
 }
@@ -2182,7 +2125,11 @@ rc_t CC KSysDirFileSize ( const KSysDir *self,
         }
         else
         {
-            rc = print_error_for( file_name, "GetFileAttributesEx", rcAccessing, klogErr );
+            DWORD error = GetLastError();
+            rc = translate_file_error( error, rcAccessing );
+            PLOGERR ( klogErr,
+                      ( klogErr, rc, "error GetFileAttributesEx - $(E) - $(C)",
+                        "E=%!,C=%u", error, error ) ); 
         }
     }
     return rc;
@@ -2225,7 +2172,11 @@ rc_t CC KSysDirSetFileSize ( KSysDir *self,
         }
         else
         {
-            rc = print_error_for( file_name, "CreateFileW", rcUpdating, klogErr );
+            DWORD error = GetLastError();
+            rc = translate_file_error( error, rcUpdating );
+            PLOGERR ( klogErr,
+                      ( klogErr, rc, "error CreateFileW - $(E) - $(C)",
+                        "E=%!,C=%u", error, error ) ); 
         }
     }
     return rc;
@@ -2420,7 +2371,11 @@ rc_t change_item_date( wchar_t *path, LPFILETIME win_time, bool dir_flag )
                                    OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
     if ( file_handle == INVALID_HANDLE_VALUE )
     {
-        rc = print_error_for( path, "CreateFileW", rcUpdating, klogErr );
+        DWORD error = GetLastError();
+        rc = translate_file_error( error, rcUpdating );
+        PLOGERR ( klogErr,
+                  ( klogErr, rc, "error CreateFileW - $(E) - $(C)",
+                    "E=%!,C=%u", error, error ) ); 
     }
     else
     {
@@ -2430,7 +2385,11 @@ rc_t change_item_date( wchar_t *path, LPFILETIME win_time, bool dir_flag )
         }
         else
         {
-            rc = print_error_for( path, "SetFileTime", rcUpdating, klogErr );
+            DWORD error = GetLastError();
+            rc = translate_file_error( error, rcUpdating );
+            PLOGERR ( klogErr,
+                      ( klogErr, rc, "error SetFileTime - $(E) - $(C)",
+                        "E=%!,C=%u", error, error ) ); 
         }
         CloseHandle ( file_handle );
     }
@@ -2719,21 +2678,10 @@ rc_t KDirectoryMakeFromRealPath ( KDirectory **dirp, const wchar_t *real, bool u
  *
  *  "dir" [ OUT ] - return parameter for native directory
  */
-extern rc_t CC ReportCWD ( const ReportFuncs *f, uint32_t indent );
-extern rc_t CC ReportRedirect ( KWrtHandler* handler,
-    const char* filename, bool* to_file, bool finalize );
-
 LIB_EXPORT rc_t CC KDirectoryNativeDir ( KDirectory **dirp )
 {
     rc_t rc;
 
-    static bool latch;
-    if ( ! latch )
-    {
-        ReportInitKFS ( ReportCWD, ReportRedirect );
-        latch = true;
-    }
-
     if ( dirp == NULL )
         rc = RC ( rcFS, rcDirectory, rcAccessing, rcParam, rcNull );
     else
@@ -2762,31 +2710,3 @@ LIB_EXPORT rc_t CC KDirectoryNativeDir ( KDirectory **dirp )
 
     return rc;
 }
-
-
-/* RealPath
- *  exposes functionality of system directory
- */
-LIB_EXPORT rc_t CC KSysDirRealPath ( struct KSysDir const *self,
-    char *real, size_t bsize, const char *path, ... )
-{
-    rc_t rc;
-    va_list args;
-
-    va_start ( args, path );
-    rc = KSysDirVRealPath ( self, real, bsize, path, args );
-    va_end ( args );
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KSysDirVRealPath ( struct KSysDir const *self,
-    char *real, size_t bsize, const char *path, va_list args )
-{
-    /* Windows is ... challenged when it comes to answering
-       this question. What is needed is to 1) convert the path
-       to a Windows-style wchar path, then 2) resolve each of
-       its components, etc. to come up with a real path, then
-       3) rewrite the path as a UTF-8 POSIX path */
-    return KSysDirResolvePath ( self, true, real, bsize, path, args );
-}
diff --git a/libs/kfs/win/sysdll.c b/libs/kfs/win/sysdll.c
index 4dd3439..0a6a849 100644
--- a/libs/kfs/win/sysdll.c
+++ b/libs/kfs/win/sysdll.c
@@ -24,10 +24,6 @@
 *
 */
 
-#ifndef _WIN32_WINNT /* This file requires OS newer than Windows 2000 */
-# define _WIN32_WINNT 0x0501
-#endif
-
 #include <kfs/extern.h>
 
 #define TRACK_REFERENCES 0
@@ -37,7 +33,6 @@
 
 #include <kfs/dyload.h>
 #include <kfs/directory.h>
-#include <kfs/kfs-priv.h>
 #include <klib/refcount.h>
 #include <klib/vector.h>
 #include <klib/text.h>
@@ -316,7 +311,7 @@ LIB_EXPORT rc_t CC KDyldHomeDirectory ( const KDyld *self, const KDirectory **di
              * a type safe way to do this */
             BOOL success = GetModuleHandleEx ( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
                                                | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
-                                               ( const TCHAR * )func, & h );
+                                               (LPCSTR)func, & h );
             if ( success )
             {
                 wchar_t fname [ MAX_PATH ];
@@ -479,9 +474,6 @@ static
 rc_t KDyldLoad ( KDyld *self, KDylib *lib, const wchar_t *path )
 {
     DWORD err;
-#if WE_WERE_BUILDING_FOR_WINDOWS_7_ALONE
-    UINT errMode = GetErrorMode();
-#endif
 
 	if ( path == NULL )
 	{
@@ -491,21 +483,15 @@ rc_t KDyldLoad ( KDyld *self, KDylib *lib, const wchar_t *path )
         return RC ( rcFS, rcDylib, rcLoading, rcNoObj, rcUnknown );
 	}
 
-    SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX); /* suppress the message box in case of an error */
     lib -> handle = LoadLibraryW ( path );
-#if WE_WERE_BUILDING_FOR_WINDOWS_7_ALONE
-    SetErrorMode(errMode);
-#endif
     if ( lib -> handle != NULL )
         return KDylibSetLogging ( lib );
 
     err = GetLastError ();
     switch ( err )
     {
-    case ERROR_MOD_NOT_FOUND :
+    case ERROR_MOD_NOT_FOUND:
         return RC ( rcFS, rcDylib, rcLoading, rcPath, rcNotFound );
-    case ERROR_BAD_EXE_FORMAT :
-        return RC ( rcFS, rcDylib, rcLoading, rcFormat, rcInvalid );
     }
 
     return RC ( rcFS, rcDylib, rcLoading, rcNoObj, rcUnknown );
@@ -524,7 +510,7 @@ rc_t KDyldVTryLoadLib ( KDyld *self, KDylib **lib,
     {
         wchar_t real [ MAX_PATH ];
 
-		rc = KSysDirOSPath ( sdir, real, sizeof real, path, args );
+		rc = KSysDirRealPath ( sdir, real, sizeof real, path, args );
 		if ( rc == 0 )
 		{
 			WString pstr;
@@ -811,8 +797,7 @@ rc_t KDlsetWhack ( KDlset *self )
     return 0;
 }
 
-#define STRINGIZE(s) #s
-#define LIBNAME(pref, name, suff) STRINGIZE(pref) name STRINGIZE(suff)
+
 /* MakeSet
  *  load a dynamic library
  *
@@ -820,7 +805,7 @@ rc_t KDlsetWhack ( KDlset *self )
  */
 LIB_EXPORT rc_t CC KDyldMakeSet ( const KDyld *self, KDlset **setp )
 {
-    rc_t rc = 0;
+    rc_t rc;
 
     if ( setp == NULL )
         rc = RC ( rcFS, rcDylib, rcConstructing, rcParam, rcNull );
@@ -840,20 +825,8 @@ LIB_EXPORT rc_t CC KDyldMakeSet ( const KDyld *self, KDlset **setp )
                 VectorInit ( & set -> ord, 0, 16 );
                 KRefcountInit ( & set -> refcount, 1, "KDlset", "make", "dlset" );
 #if ! ALWAYS_ADD_EXE
-                {   
-                    KDylib *jni;
-                    const char* libname = LIBNAME(LIBPREFIX, "vdb_jni.", SHLIBEXT);
-                    if ( KDyldLoadLib ( ( KDyld* ) self, & jni, libname ) == 0 )
-                    {
-                        rc = KDlsetAddLib ( set, jni );
-                        KDylibRelease ( jni );
-                    }
-                    if (rc == 0)
-                    {
-                        * setp = set;
-                        return 0;
-                    }
-                }
+                * setp = set;
+                return 0;
 #else
                 {
                     KDylib *exe;
@@ -1315,80 +1288,6 @@ LIB_EXPORT rc_t CC KDlsetLastSymbol ( const KDlset *self, KSymAddr **sym, const
 }
 
 
-/* List - PRIVATE
- *  list the paths to the libraries in the set
- */
-typedef struct list_dylib_param list_dylib_param;
-struct list_dylib_param
-{
-    VNamelist *list;
-    rc_t rc;
-};
-
-static
-bool CC list_dylib ( void *item, void *data )
-{
-    size_t bytes;
-    char utf8 [ 4096 ], *p;
-
-    list_dylib_param *pb = data;
-    const KDylib *lib = ( const void* ) item;
-
-    /* "lib" was created with KDylibMake
-       which creates a NUL terminated path.
-       of course, this could seg-fault if bad... */
-    assert ( lib -> path . addr [ lib -> path . len ] == 0 );
-
-    /* convert wide-character to UTF-8 */
-    bytes = wchar_cvt_string_copy ( utf8, sizeof utf8, lib -> path . addr, lib -> path . size );
-    if ( bytes < sizeof utf8 )
-    {
-        pb -> rc = VNamelistAppend ( pb -> list, utf8 );
-        return pb -> rc != 0;
-    }
-
-    p = malloc ( 16 * 1024 );
-    if ( p == NULL )
-    {
-        pb -> rc = RC ( rcFS, rcDylib, rcListing, rcMemory, rcExhausted );
-        return true;
-    }
-
-    bytes = wchar_cvt_string_copy ( p, 16 * 1024, lib -> path . addr, lib -> path . size );
-    if ( bytes >= 16 * 1024 )
-        pb -> rc = RC ( rcFS, rcDylib, rcListing, rcPath, rcTooLong );
-    else
-        pb -> rc = VNamelistAppend ( pb -> list, p );
-
-    free ( p );
-    return pb -> rc != 0;
-}
-
-LIB_EXPORT rc_t CC KDlsetList ( const KDlset *self, KNamelist **listp )
-{
-    list_dylib_param pb;
-
-    assert ( listp != NULL );
-
-    if ( self == NULL )
-        pb . rc = RC ( rcFS, rcDylib, rcListing, rcSelf, rcNull );
-    else
-    {
-        pb . rc = VNamelistMake ( & pb . list, VectorLength ( & self -> name ) );
-        if ( pb . rc == 0 )
-        {
-            bool fail = VectorDoUntil ( & self -> name, false, list_dylib, & pb );
-            if ( ! fail )
-                pb . rc = VNamelistToNamelist ( pb . list, listp );
-
-            VNamelistRelease ( pb . list );
-        }
-    }
-
-    return pb . rc;
-}
-
-
 /* AsObj
  * AsFunc
  *  retrieve symbol address as pointer to object
diff --git a/libs/kfs/win/sysfile-priv.h b/libs/kfs/win/sysfile-priv.h
index f0d4ebe..3306be8 100644
--- a/libs/kfs/win/sysfile-priv.h
+++ b/libs/kfs/win/sysfile-priv.h
@@ -49,16 +49,13 @@ struct KSysFile
     KFile dad;
     HANDLE handle;
     uint64_t pos;
-    bool failed_set_sparse;
-    bool is_sparse; /* throws off size dang it */
-    
 };
 
 /* KSysFileMake
  *  create a new file object
  *  from file descriptor
  */
-rc_t KSysFileMake ( KSysFile **fp, HANDLE fd, const char *path, bool read_enabled, bool write_enabled );
+rc_t KSysFileMake ( KSysFile **fp, HANDLE fd, bool read_enabled, bool write_enabled );
 
 
 #ifdef __cplusplus
diff --git a/libs/kfs/win/sysfile.c b/libs/kfs/win/sysfile.c
index 681b0cc..e8a34be 100644
--- a/libs/kfs/win/sysfile.c
+++ b/libs/kfs/win/sysfile.c
@@ -26,7 +26,6 @@
 
 #include <kfs/extern.h>
 
-
 /*--------------------------------------------------------------------------
  * forwards
  */
@@ -39,223 +38,13 @@ struct KSysFile;
 #include <klib/text.h>
 #include <sysalloc.h>
 
-/* temporary */
-/* #include <klib/out.h> */
-
-
-
 #include <Windows.h>
-/* #include <WinIoCtl.h> nested include in Windows.h? */
 
 /*--------------------------------------------------------------------------
  * KSysFile
  *  a Windows file
  */
 
-/* minimum set size or write beyond size difference to trigger setting sparse */
-/* tune this if too many or too few sparse files */
-#define MIN_SET_SPARSE_DIFF   (16*1024)
-#define MIN_SPARSE_BLOCK_DIFF  (4*1024)
-
-
-/* ----------
- * Some functions to isolate the calls to Windows functions as I feel dirty
- * just using them.
- * really its to isolate some calls the very different style of parmaters
- * for the calls from the usualy project approach.
- *
- * if the compiler inlines them it's all good.
- */
-
-/*
- * Get file size 
- */
-static rc_t get_file_size (const KSysFile * self, uint64_t * size)
-{
-    LARGE_INTEGER sz;
-
-    if ( GetFileSizeEx ( self -> handle, & sz ) == 0 )
-    {
-        rc_t rc;
-        DWORD last_error;
-
-        last_error = GetLastError ();
-        switch ( last_error )
-        {
-        case ERROR_INVALID_HANDLE:
-            rc = RC ( rcFS, rcFile, rcAccessing, rcFileDesc, rcInvalid );
-            break;
-        default:
-            rc = RC ( rcFS, rcFile, rcAccessing, rcNoObj, rcUnknown );
-            break;
-        }
-        PLOGERR (klogErr,
-                 (klogErr, rc, "error accessing file system status - $(E)($(C))",
-                  "E=%!,C=%u", last_error, last_error)); 
-        return rc;
-    }
-    *size = sz.QuadPart;
-
-    return 0;
-}
-
-
-/* returns (and side effect sets in structure)
- * if the file is already a sparse file
- */
-static bool check_if_sparse (KSysFile * self)
-{
-    BY_HANDLE_FILE_INFORMATION info;
-    BOOL worked;
-
-    if (self->is_sparse)
-        return true;
-
-    /*
-     * we don't use the GetFileInformationBy HandleEx as we don't want to 
-     * exclude Win XP yet.
-     */
-    worked = GetFileInformationByHandle (self->handle, &info);
-
-    self->is_sparse = 
-        ((info.dwFileAttributes & FILE_ATTRIBUTE_SPARSE_FILE)
-         == FILE_ATTRIBUTE_SPARSE_FILE);
-
-    return self->is_sparse;
-}
-
-/*
- * make a file sparse set_it == true
- * return is like Windows funcs with true being good
- *
- * we can't set if the Windows Volume doesn't allow it
- * but we'll let the function fail rather than try to get the value at 
- * CREATE (open) time because we'd be then checking at all file CREATE
- * whether we'd ever make it sparse or not
- */
-static
-bool set_sparse (KSysFile * self)
-{
-    FILE_SET_SPARSE_BUFFER b = { true };
-    DWORD ret;
-    BOOL worked;
-    bool rreett = false;
-
-    /* don't duplicate effort */
-    if (self->is_sparse)
-        rreett =  true;
-
-    else if (self->failed_set_sparse)
-        rreett = false;
-
-    else
-    {
-        worked = DeviceIoControl (self->handle, FSCTL_SET_SPARSE, &b, sizeof b,
-                              NULL, 0, &ret, NULL);
-/*         KOutMsg ("%s: %u\n",__func__,worked); */
-
-        /* not trusting bool is BOOL cause I don't trust Microsoft */
-        self->failed_set_sparse = (worked == 0);
-        self->is_sparse = !self->failed_set_sparse;
-        rreett =  self->is_sparse;
-    }
-/*     KOutMsg ("%s: %d\n",__func__,rreett); */
-    return rreett;
-}
-
-
-static bool set_not_sparse (KSysFile * self)
-{
-    FILE_SET_SPARSE_BUFFER b = { false };
-    DWORD ret;
-    BOOL worked;
-
-    /* don't duplicate effort */
-    if (!check_if_sparse (self))
-        return true;
-
-    if (self->failed_set_sparse)
-        return false;
-
-    worked = DeviceIoControl (self->handle, FSCTL_SET_SPARSE, &b, sizeof b,
-                              NULL, 0, &ret, NULL);
-
-    /* not trusting bool is BOOL cause I don't trust Microsoft */
-    self->failed_set_sparse = (worked == 0);
-    self->is_sparse = self->failed_set_sparse;
-    return ! self->is_sparse;
-}
-
-/*
- * this one works for non-sparse files too but what evs.
- */
-static rc_t set_zero_region (KSysFile * self, uint64_t start, uint64_t size)
-{
-    FILE_ZERO_DATA_INFORMATION b = { start, start + size };
-    DWORD ret;
-    BOOL worked;
-
-    worked = DeviceIoControl (self->handle, FSCTL_SET_ZERO_DATA,
-                            &b, sizeof b,
-                            NULL, 0,
-                            &ret, NULL);
-
-    /* TODO: check error codes with GetLastError and better rc values */
-    return (worked != 0) ? 0 : RC (rcFS, rcFile, rcWriting, rcBuffer, rcUnexpected);
-}
-
-
-/*
- * returns true if we can convert this file into a non-sparse file
- *
- * We went simple and fast.  We ask about zero regions.
- * if we specifically get back that there are none we say true
- * otherwise we say false.
- *
- * self can be modified so it can not be const
- */
-static bool can_be_made_not_sparse (KSysFile * self     )
-{
-#if 1
-    return false;
-#else
-    /* this is backwards - the list of os non-zero regions not zero regions */
-    LARGE_INTEGER fo;
-    LARGE_INTEGER l;
-    uint64_t size;
-    FILE_ALLOCATED_RANGE_BUFFER i;
-    FILE_ALLOCATED_RANGE_BUFFER o [16]; /* some none 0 number */
-    uint64_t count;
-    DWORD ret;
-    BOOL worked;
-    rc_t rc;
-
-    /* if is isn't sparse we can't make it not sparse */
-    /* first might be not yet set */
-    if (!check_if_sparse (self))
-        return true;
-
-    /* we can't scan for zero regions if we can't get a size */
-    rc = get_file_size (self, &size);
-    if (rc)
-        return false;
-
-    /* Microsoft APIs can be fairly odd */
-    fo.QuadPart = 0;
-    l.QuadPart = size;
-    i.FileOffset = fo;
-    i.Length = l;
-
-    worked = DeviceIoControl (self->handle, FSCTL_QUERY_ALLOCATED_RANGES,
-                              &i, sizeof i, o, sizeof o, & ret, NULL);
-    /* we can't change to non-sparse if we can't scan for zero regions */
-    if (worked == 0)
-        return false;
-
-    return (ret == 0);
-#endif
-}
-
 
 /* Destroy
  */
@@ -353,11 +142,6 @@ uint32_t CC KSysFileType ( const KSysFile *self )
 static
 rc_t CC KSysDiskFileSize ( const KSysFile *self, uint64_t *size )
 {
-#if 1
-/*     KOutMsg ("%s:\n",__func__); */
-    return get_file_size (self, size);
-#else
-
     LARGE_INTEGER sz;
 
     if ( GetFileSizeEx ( self -> handle, & sz ) == 0 )
@@ -383,7 +167,6 @@ rc_t CC KSysDiskFileSize ( const KSysFile *self, uint64_t *size )
 
     *size = sz . QuadPart;
     return 0;
-#endif
 }
 
 
@@ -406,27 +189,17 @@ rc_t CC KSysDiskFileSetSize ( KSysFile *self, uint64_t size )
 {
     rc_t rc = 1;
     LARGE_INTEGER p;
-    uint64_t prev_size;
-
-/*     KOutMsg ("%s:\n",__func__); */
-    /* get previous size for setting or clearing sparse */
-    rc = get_file_size ( self, &prev_size);
-    if (rc)
-        return rc;
-/*     KOutMsg ("%s: %lu\n",__func__, prev_size); */
 
     p . QuadPart = size;
 
     if ( SetFilePointerEx ( self -> handle, p, & p, FILE_BEGIN ) )
     {
-        self -> pos = size;
         if ( SetEndOfFile( self -> handle ) )
         {
             rc = 0;
         }
     }
 
-    /* failure to set size*/
     if ( rc != 0 )
     {
         DWORD last_error;
@@ -439,44 +212,10 @@ rc_t CC KSysDiskFileSetSize ( KSysFile *self, uint64_t size )
         default:
             rc = RC ( rcFS, rcFile, rcUpdating, rcNoObj, rcUnknown );
         }
-        PLOGERR ( klogErr,
-                 ( klogErr, rc, "error setting filesize - $(E) - $(C) to $(D)",
-                   "E=%!,C=%u,D=%lu", last_error, last_error, size ) ); 
-    }
-
-    /* check for wanting to be sparse file */
-    if (size > prev_size)
-    {
-        uint64_t diff;
-
-/*         KOutMsg ("%s: size(%lu) larger than prev_size(%lu)\n",__func__, size, prev_size); */
-
-        diff = size - prev_size;
-
-        /* if block size if big enough we'll try to make it a sparse block */
-        if (diff >= MIN_SPARSE_BLOCK_DIFF)
-        {
-/*             KOutMsg ("%s: diff(%lu) larger than block constant(%lu)\n",__func__, diff, MIN_SPARSE_BLOCK_DIFF); */
-            /* set sparse? */
-            if (!check_if_sparse(self)) /* isn't sparse now */
-            {
-                if (diff >= MIN_SET_SPARSE_DIFF)
-                {
-/*                     KOutMsg ("%s: diff(%lu) larger than sparse constant(%lu)\n",__func__, diff, MIN_SET_SPARSE_DIFF); */
-                    (void)set_sparse (self);
-                }
-            }
-            /* ordered to try to set before looking to set the zero region */
-            if (self->is_sparse)
-            {
-                /* set sparse region at end */
-                set_zero_region (self, prev_size, diff);
-            }
-        }
+        PLOGERR (klogErr,
+                 (klogErr, rc, "error accessing file system status - $(E)($(C))",
+                  "E=%!,C=%u", last_error, last_error)); 
     }
-    else if (can_be_made_not_sparse (self))
-        (void)set_not_sparse (self);
-
     return rc;
 }
 
@@ -561,17 +300,16 @@ rc_t CC KSysDiskFileRead ( const KSysFile *cself, uint64_t pos,
                 rc = RC ( rcFS, rcFile, rcPositioning, rcNoObj, rcUnknown );
                 break;
             }
-            PLOGERR ( klogErr,
-                     ( klogErr, rc, "error positioning system file - $(E)($(C)) to $(D)",
-                       "E=%!,C=%u,D=%u", last_error, last_error, pos ) ); 
+            PLOGERR (klogErr,
+                     (klogErr, rc, "error positioning system file - $(E)($(C))",
+                      "E=%!,C=%u", last_error, last_error)); 
             return rc;
         }
 
-        /* if we try to read beyond the end of the file... */
-        if ( pos >= p . QuadPart )
-        {   /* We've defined reading beyond EOF as return RC of 0 but bytes read as 0 */
-            /*return RC ( rcFS, rcFile, rcPositioning, rcFileDesc, rcInvalid );*/
-            return 0;
+        /* if we try to read behind the end of the file... */
+        if ( pos > p . QuadPart )
+        {
+            return RC ( rcFS, rcFile, rcPositioning, rcFileDesc, rcInvalid );
         }
 
         p . QuadPart = pos;
@@ -591,9 +329,9 @@ rc_t CC KSysDiskFileRead ( const KSysFile *cself, uint64_t pos,
                 return rc;
             default:
                 rc = RC ( rcFS, rcFile, rcPositioning, rcNoObj, rcUnknown );
-                PLOGERR ( klogErr,
-                          ( klogErr, rc, "error positioning system file - $(E)($(C)) to $(D)",
-                            "E=%!,C=%u,D=%lu", last_error, last_error, pos ) ); 
+                PLOGERR (klogErr,
+                         (klogErr, rc, "error positioning system file - $(E)($(C))",
+                          "E=%!,C=%u", last_error, last_error)); 
                 return rc;
             }
         }
@@ -693,7 +431,7 @@ rc_t KSysFileWriteCommon ( KSysFile *self,
 
             case ERROR_NOT_ENOUGH_MEMORY:
                 rc = RC (rcFS, rcFile, rcWriting, rcMemory, rcExhausted);
-                fmt = "error out of memory for WindowsWriteFile - $(E)($(C))";
+                fmt = "error out of memory for WindoowsWriteFile - $(E)($(C))";
                 break;
 
             default:
@@ -722,28 +460,15 @@ static
 rc_t CC KSysDiskFileWrite ( KSysFile *self, uint64_t pos,
     const void *buffer, size_t size, size_t *num_writ)
 {
-    rc_t rc;
     if ( self -> pos != pos )
     {
         LARGE_INTEGER p;
-        uint64_t curr_size;
-
-        rc = get_file_size ( self, &curr_size );
-        if ( rc != 0 )
-            return rc;
-
-        if ( curr_size < pos )
-        {
-            rc = KSysDiskFileSetSize (self, pos);
-            if (rc)
-                return rc;
-        }
-
 
         p . QuadPart = pos;
 
         if ( SetFilePointerEx ( self -> handle, p, & p, FILE_BEGIN ) == 0 )
         {
+            rc_t rc;
             DWORD last_error;
 
             last_error = GetLastError ();
@@ -871,7 +596,7 @@ static const KFile_vt_v1 vtKSysStdIOOtherFile =
 
 
 static
-rc_t KSysFileMakeVT ( KSysFile **fp, HANDLE fd, const KFile_vt *vt, const char *path,
+rc_t KSysFileMakeVT ( KSysFile **fp, HANDLE fd, const KFile_vt *vt,
     uint64_t initial_pos, bool read_enabled, bool write_enabled )
 {
     rc_t rc;
@@ -885,13 +610,11 @@ rc_t KSysFileMakeVT ( KSysFile **fp, HANDLE fd, const KFile_vt *vt, const char *
         rc = RC(rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
     else
     {
-        rc = KFileInit ( & f -> dad, vt, "KSysFile", path, read_enabled, write_enabled );
+        rc = KFileInit ( & f -> dad, vt, read_enabled, write_enabled );
         if ( rc == 0 )
         {
             f -> handle = fd;
-            f -> pos = initial_pos;
-            f -> failed_set_sparse = f->is_sparse = false;
-            check_if_sparse (f);
+	    f -> pos = initial_pos;
             *fp = f;
             return 0;
         }
@@ -906,7 +629,7 @@ rc_t KSysFileMakeVT ( KSysFile **fp, HANDLE fd, const KFile_vt *vt, const char *
 #define ISSTDIO 2
 
 static
-rc_t KSysFileMakeInt ( KSysFile **fp, HANDLE fd, const char *path, bool read_enabled, bool write_enabled, unsigned flags )
+rc_t KSysFileMakeInt ( KSysFile **fp, HANDLE fd, bool read_enabled, bool write_enabled, unsigned flags )
 {
     DWORD ret;
     const KFile_vt * vt;
@@ -923,7 +646,7 @@ rc_t KSysFileMakeInt ( KSysFile **fp, HANDLE fd, const char *path, bool read_ena
     {
     case FILE_TYPE_DISK:
         flags |= ISDISK;
-        initial_pos = -1;
+	initial_pos = -1;
         break;
 
     case FILE_TYPE_UNKNOWN:
@@ -939,12 +662,12 @@ rc_t KSysFileMakeInt ( KSysFile **fp, HANDLE fd, const char *path, bool read_ena
             break;
         }
 
-        initial_pos = 0;
+	initial_pos = 0;
         flags &= ~ISDISK;
         break;
 
     default:
-        initial_pos = 0;
+	initial_pos = 0;
         flags &= ~ISDISK;
         break;
     }
@@ -968,13 +691,13 @@ rc_t KSysFileMakeInt ( KSysFile **fp, HANDLE fd, const char *path, bool read_ena
         break;
     }
 
-    return KSysFileMakeVT ( fp, fd, vt, path, initial_pos, read_enabled, write_enabled );
+    return KSysFileMakeVT ( fp, fd, vt, initial_pos, read_enabled, write_enabled );
 }
 
 /* extern, but internal to libkfs */
-rc_t KSysFileMake ( KSysFile **fp, HANDLE fd, const char *path, bool read_enabled, bool write_enabled )
+rc_t KSysFileMake ( KSysFile **fp, HANDLE fd, bool read_enabled, bool write_enabled )
 {
-    return KSysFileMakeInt ( fp, fd, path, read_enabled, write_enabled, 0 );
+    return KSysFileMakeInt ( fp, fd, read_enabled, write_enabled, 0 );
 }
 
 
@@ -984,7 +707,7 @@ rc_t KSysFileMake ( KSysFile **fp, HANDLE fd, const char *path, bool read_enable
 LIB_EXPORT rc_t CC KFileMakeStdIn ( const KFile **fp )
 {
     HANDLE fd = GetStdHandle ( STD_INPUT_HANDLE );
-    return KSysFileMakeInt ( (KSysFile**)fp, fd, "stdin", true, false, ISSTDIO );
+    return KSysFileMakeInt ( (KSysFile**)fp, fd, true, false, ISSTDIO );
 }
 
 /* MakeStdOut
@@ -994,25 +717,11 @@ LIB_EXPORT rc_t CC KFileMakeStdIn ( const KFile **fp )
 LIB_EXPORT rc_t CC KFileMakeStdOut ( KFile **fp )
 {
     HANDLE fd = GetStdHandle ( STD_OUTPUT_HANDLE );
-    return KSysFileMakeInt ( (KSysFile**)fp, fd, "stdout", false, true, ISSTDIO );
+    return KSysFileMakeInt ( (KSysFile**)fp, fd, false, true, ISSTDIO );
 }
 
 LIB_EXPORT rc_t CC KFileMakeStdErr ( KFile **fp )
 {
     HANDLE fd = GetStdHandle ( STD_ERROR_HANDLE );
-    return KSysFileMakeInt ( (KSysFile**)fp, fd, "stderr", false, true, ISSTDIO );
-}
-
-/* MakeFDFile
- *  creates a file from a file-descriptor
- *  not supported under Windows
- */
-LIB_EXPORT rc_t CC KFileMakeFDFileRead ( const KFile **f, int fd )
-{
-    return RC (rcFS, rcFile, rcConstructing, rcFunction, rcUnsupported);
-}
-
-LIB_EXPORT rc_t CC KFileMakeFDFileWrite ( KFile **f, bool update, int fd )
-{
-    return RC (rcFS, rcFile, rcConstructing, rcFunction, rcUnsupported);
+    return KSysFileMakeInt ( (KSysFile**)fp, fd, false, true, ISSTDIO );
 }
diff --git a/libs/kfs/win/syslockfile.c b/libs/kfs/win/syslockfile.c
deleted file mode 100644
index 9b09f8d..0000000
--- a/libs/kfs/win/syslockfile.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kfs/extern.h>
-#include <kfs/lockfile.h>
-#include <kfs/directory.h>
-#include <klib/rc.h>
-
-
-/*--------------------------------------------------------------------------
- * KDirectory
- *  interface extensions
- */
-
-
-/* CreateExclusiveAccessFile
- *  opens a file with exclusive write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "access" [ IN ] - standard Unix access mode, e.g. 0664
- *
- *  "mode" [ IN ] - a creation mode ( see explanation above ).
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- */
-LIB_EXPORT rc_t CC KDirectoryVCreateExclusiveAccessFile ( KDirectory *self, struct KFile **f,
-    bool update, uint32_t access, KCreateMode mode, const char *path, va_list args )
-{
-    /* Windows should naturally behave as we want here... */
-    rc_t rc = KDirectoryVCreateFile ( self, f, update, access, mode, path, args );
-    if ( rc != 0 )
-    {
-        if ( GetRCState ( rc ) == rcExists )
-            rc = RC ( rcFS, rcFile, rcLocking, rcLocking, rcBusy );
-        else
-            rc = ResetRCContext ( rc, rcFS, rcFile, rcLocking );
-    }
-    return rc;
-}
diff --git a/libs/kfs/win/sysmmap.c b/libs/kfs/win/sysmmap.c
index 28c9873..ebfa70b 100644
--- a/libs/kfs/win/sysmmap.c
+++ b/libs/kfs/win/sysmmap.c
@@ -126,8 +126,6 @@ rc_t KMMapUnmap ( KMMap *self )
     {
         if ( ! CloseHandle ( self -> handle ) )
             return RC ( rcFS, rcMemMap, rcDestroying, rcNoObj, rcUnknown );
-        if ( ! UnmapViewOfFile( self -> addr ) )
-            return RC ( rcFS, rcMemMap, rcDestroying, rcNoObj, rcUnknown );
 
         self -> addr = NULL;
         self -> size = 0;
diff --git a/libs/vfs/win/syspath.c b/libs/kfs/win/syspath.c
similarity index 96%
rename from libs/vfs/win/syspath.c
rename to libs/kfs/win/syspath.c
index 707e833..d74ffaa 100644
--- a/libs/vfs/win/syspath.c
+++ b/libs/kfs/win/syspath.c
@@ -24,9 +24,9 @@
 *
 */
 #define CHECK_WINDOWS_PATH_LENGTH 0
-#include <vfs/extern.h>
+#include <kfs/extern.h>
 
-#include <vfs/path.h>
+#include <kfs/path.h>
 #include "path-priv.h"
 #include <klib/defs.h>
 #include <klib/rc.h>
@@ -63,7 +63,7 @@ char * reserved_device_names [] =
     NULL
 };
 
-rc_t CC VPathTransformSysPath (VPath * self)
+rc_t CC KPathTransformSysPath (KPath * self)
 {
     char * pc;
     size_t lim;
@@ -260,17 +260,16 @@ rc_t CC VPathTransformSysPath (VPath * self)
     {
         pc[1] = pc[0];
         pc[0] = '/';
-        self->scheme = vpuri_ncbi_vfs;
     }
     return 0;
 }
 
-rc_t VPathTransformPathHier (char ** uri_path)
+rc_t KPathTransformPathHier (char ** uri_path)
 {
     return 0;
 }
 
-LIB_EXPORT rc_t CC VPathGetCWD (char * buffer, size_t buffer_size)
+LIB_EXPORT rc_t CC KPathGetCWD (char * buffer, size_t buffer_size)
 {
     char * temp = _getcwd (buffer, (int)buffer_size);
     if (temp == NULL)
@@ -279,7 +278,7 @@ LIB_EXPORT rc_t CC VPathGetCWD (char * buffer, size_t buffer_size)
 }
 
 #if USE_EXPERIMENTAL_CODE
-rc_t VPathInitAuthority (struct VPath * self, char ** next)
+rc_t KPathInitAuthority (struct KPath * self, char ** next)
 {
 /*     static const char null_string[] = ""; */
 /*     CONST_STRING (&self->authority, null_string); */
diff --git a/libs/klib/Judy.h b/libs/klib/Judy.h
deleted file mode 100644
index 0b2c518..0000000
--- a/libs/klib/Judy.h
+++ /dev/null
@@ -1,629 +0,0 @@
-#ifndef _JUDY_INCLUDED
-#define _JUDY_INCLUDED
-/*
-// _________________
-//
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-//
-// HEADER FILE FOR EXPORTED FEATURES IN JUDY LIBRARY, libJudy.*
-//
-// See the manual entries for details.
-//
-// Note:  This header file uses old-style comments on #-directive lines and
-// avoids "()" on macro names in comments for compatibility with older cc -Aa
-// and some tools on some platforms.
-
-
-// PLATFORM-SPECIFIC
-*/
-
-#if ! JUST_DEFINE_YOUR_STUFF
-
-#ifdef JU_WIN /* =============================================== */
-
-typedef __int8           int8_t;
-typedef __int16          int16_t;
-typedef __int32          int32_t;
-typedef __int64          int64_t;
-
-typedef unsigned __int8  uint8_t;
-typedef unsigned __int16 uint16_t;
-typedef unsigned __int32 uint32_t;
-typedef unsigned __int64 uint64_t;
-
-#else /* ================ ! JU_WIN ============================= */
-
-/* ISO C99: 7.8 Format conversion of integer types <inttypes.h> */
-/*#include <inttypes.h>   if this FAILS, try #include <stdint.h> */ 
-
-/* ISO C99: 7.18 Integer types uint*_t */
-#include <stdint.h> 
-
-#endif /* ================ ! JU_WIN ============================= */
-
-/* ISO C99 Standard: 7.20 General utilities */
-#include <stdlib.h>  
-
-/* ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types */
-#include <limits.h>
-
-#endif /* JUST_DEFINE_YOUR_STUFF */
-
-#ifdef __cplusplus      /* support use by C++ code */
-extern "C" {
-#endif
-
-
-/* ****************************************************************************
-// DECLARE SOME BASE TYPES IN CASE THEY ARE MISSING:
-//
-// These base types include "const" where appropriate, but only where of
-// interest to the caller.  For example, a caller cares that a variable passed
-// by reference will not be modified, such as, "const void * Pindex", but not
-// that the called function internally does not modify the pointer itself, such
-// as, "void * const Pindex".
-//
-// Note that its OK to pass a Pvoid_t to a Pcvoid_t; the latter is the same,
-// only constant.  Callers need to do this so they can also pass & Pvoid_t to
-// PPvoid_t (non-constant).
-*/
-
-#ifndef _PCVOID_T
-#define _PCVOID_T
-typedef const void * Pcvoid_t;
-#endif
-
-#ifndef _PVOID_T
-#define _PVOID_T
-typedef void *   Pvoid_t;
-typedef void ** PPvoid_t;
-#endif
-
-#ifndef _WORD_T
-#define _WORD_T
-    typedef  size_t  Word_t, * PWord_t;  /* expect 32-bit or 64-bit words. */
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-
-/* ****************************************************************************
-// SUPPORT FOR ERROR HANDLING:
-//
-// Judy error numbers:
-//
-// Note:  These are an enum so theres a related typedef, but the numbers are
-// spelled out so you can map a number back to its name.
-*/
-typedef enum            /* uint8_t -- but C does not support this type of enum.
-                                   -- nor does it support // comments!!         */
-{
-
-/* Note:  JU_ERRNO_NONE and JU_ERRNO_FULL are not real errors.  They specify
-// conditions which are otherwise impossible return values from 32-bit
-// Judy1Count, which has 2^32 + 1 valid returns (0..2^32) plus one error
-// return.  These pseudo-errors support the return values that cannot otherwise
-// be unambiguously represented in a 32-bit word, and will never occur on a
-// 64-bit system. */
-
-        JU_ERRNO_NONE           = 0,
-        JU_ERRNO_FULL           = 1,
-        JU_ERRNO_NFMAX          = JU_ERRNO_FULL,
-
-/* JU_ERRNO_NOMEM comes from malloc(3C) when Judy cannot obtain needed memory.
-// The system errno value is also set to ENOMEM.  This error can be recoverable
-// if the calling application frees other memory.
-//
-// TBD:  Currently there is no guarantee the Judy array has no memory leaks
-// upon JU_ERRNO_NOMEM. */
-
-        JU_ERRNO_NOMEM          = 2,
-
-/* Problems with parameters from the calling program:
-//
-// JU_ERRNO_NULLPPARRAY means PPArray was null; perhaps PArray was passed where
-// &PArray was intended.  Similarly, JU_ERRNO_NULLPINDEX means PIndex was null;
-// perhaps &Index was intended.  Also, JU_ERRNO_NONNULLPARRAY,
-// JU_ERRNO_NULLPVALUE, and JU_ERRNO_UNSORTED, all added later (hence with
-// higher numbers), mean:  A non-null array was passed in where a null pointer
-// was required; PValue was null; and unsorted indexes were detected. */
-
-        JU_ERRNO_NULLPPARRAY    = 3,    /* see above.                       */
-        JU_ERRNO_NONNULLPARRAY  = 10,   /* see above.                       */
-        JU_ERRNO_NULLPINDEX     = 4,    /* see above.                       */
-        JU_ERRNO_NULLPVALUE     = 11,   /* see above.                       */
-        JU_ERRNO_NOTJUDY1       = 5,    /* PArray is not to a Judy1 array.  */
-        JU_ERRNO_NOTJUDYL       = 6,    /* PArray is not to a JudyL array.  */
-        JU_ERRNO_NOTJUDYSL      = 7,    /* PArray is not to a JudySL array. */
-        JU_ERRNO_UNSORTED       = 12,   /* see above.                       */
-
-/* Errors below this point are not recoverable; further tries to access the
-// Judy array might result in EFAULT and a core dump:
-//
-// JU_ERRNO_OVERRUN occurs when Judy detects, upon reallocation, that a block
-// of memory in its own freelist was modified since being freed. */
-
-        JU_ERRNO_OVERRUN        = 8,
-
-/* JU_ERRNO_CORRUPT occurs when Judy detects an impossible value in a Judy data
-// structure:
-//
-// Note:  The Judy data structure contains some redundant elements that support
-// this type of checking. */
-
-        JU_ERRNO_CORRUPT        = 9
-
-/* Warning:  At least some C or C++ compilers do not tolerate a trailing comma
-// above here.  At least we know of one case, in aCC; see JAGad58928. */
-
-} JU_Errno_t;
-
-
-/* Judy errno structure:
-//
-// WARNING:  For compatibility with possible future changes, the fields of this
-// struct should not be referenced directly.  Instead use the macros supplied
-// below.
-
-// This structure should be declared on the stack in a threaded process. */
-
-typedef struct J_UDY_ERROR_STRUCT
-{
-    JU_Errno_t je_Errno;            /* one of the enums above.               */
-    int        je_ErrID;            /* often an internal source line number. */
-    Word_t     je_reserved[4];      /* for future backward compatibility.    */
-
-} JError_t, * PJError_t;
-
-
-/* Related macros:
-//
-// Fields from error struct: */
-
-#define JU_ERRNO(PJError)  ((PJError)->je_Errno)
-#define JU_ERRID(PJError)  ((PJError)->je_ErrID)
-
-/* For checking return values from various Judy functions:
-//
-// Note:  Define JERR as -1, not as the seemingly more portable (Word_t)
-// (~0UL), to avoid a compiler "overflow in implicit constant conversion"
-// warning. */
-
-#define   JERR (-1)                     /* functions returning int or Word_t */
-#define  PJERR ((Pvoid_t)  (~0UL))      /* mainly for use here, see below    */
-#define PPJERR ((PPvoid_t) (~0UL))      /* functions that return PPvoid_t    */
-
-/* Convenience macro for when detailed error information (PJError_t) is not
-// desired by the caller; a purposely short name: */
-
-#define PJE0  ((PJError_t) NULL)
-
-
-/* ****************************************************************************
-// JUDY FUNCTIONS:
-//
-// P_JE is a shorthand for use below:
-*/
-#define P_JE  PJError_t PJError
-
-/* ****************************************************************************
-// JUDY1 FUNCTIONS:
-*/
-extern int      Judy1Test(       Pcvoid_t  PArray, Word_t   Index,   P_JE);
-extern int      Judy1Set(        PPvoid_t PPArray, Word_t   Index,   P_JE);
-extern int      Judy1SetArray(   PPvoid_t PPArray, Word_t   Count,
-                                             const Word_t * const PIndex,
-                                                                     P_JE);
-extern int      Judy1Unset(      PPvoid_t PPArray, Word_t   Index,   P_JE);
-extern Word_t   Judy1Count(      Pcvoid_t  PArray, Word_t   Index1,
-                                                   Word_t   Index2,  P_JE);
-extern int      Judy1ByCount(    Pcvoid_t  PArray, Word_t   Count,
-                                                   Word_t * PIndex,  P_JE);
-extern Word_t   Judy1FreeArray(  PPvoid_t PPArray,                   P_JE);
-extern Word_t   Judy1MemUsed(    Pcvoid_t  PArray);
-extern Word_t   Judy1MemActive(  Pcvoid_t  PArray);
-extern int      Judy1First(      Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      Judy1Next(       Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      Judy1Last(       Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      Judy1Prev(       Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      Judy1FirstEmpty( Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      Judy1NextEmpty(  Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      Judy1LastEmpty(  Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      Judy1PrevEmpty(  Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-
-/* ****************************************************************************
-// JUDYL FUNCTIONS:
-*/
-extern PPvoid_t JudyLGet(        Pcvoid_t  PArray, Word_t    Index,  P_JE);
-extern PPvoid_t JudyLIns(        PPvoid_t PPArray, Word_t    Index,  P_JE);
-extern int      JudyLInsArray(   PPvoid_t PPArray, Word_t    Count,
-                                             const Word_t * const PIndex,
-                                             const Word_t * const PValue,
-                                                                     P_JE);
-
-extern int      JudyLDel(        PPvoid_t PPArray, Word_t    Index,  P_JE);
-extern Word_t   JudyLCount(      Pcvoid_t  PArray, Word_t    Index1,
-                                                   Word_t    Index2, P_JE);
-extern PPvoid_t JudyLByCount(    Pcvoid_t  PArray, Word_t    Count,
-                                                   Word_t *  PIndex, P_JE);
-extern Word_t   JudyLFreeArray(  PPvoid_t PPArray,                   P_JE);
-extern Word_t   JudyLMemUsed(    Pcvoid_t  PArray);
-extern Word_t   JudyLMemActive(  Pcvoid_t  PArray);
-extern PPvoid_t JudyLFirst(      Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern PPvoid_t JudyLNext(       Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern PPvoid_t JudyLLast(       Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern PPvoid_t JudyLPrev(       Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      JudyLFirstEmpty( Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      JudyLNextEmpty(  Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      JudyLLastEmpty(  Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-extern int      JudyLPrevEmpty(  Pcvoid_t  PArray, Word_t * PIndex,  P_JE);
-
-/* ****************************************************************************
-// JUDYSL FUNCTIONS:
-*/
-extern PPvoid_t JudySLGet(       Pcvoid_t, const uint8_t * Index, P_JE);
-extern PPvoid_t JudySLIns(       PPvoid_t, const uint8_t * Index, P_JE);
-extern int      JudySLDel(       PPvoid_t, const uint8_t * Index, P_JE);
-extern Word_t   JudySLFreeArray( PPvoid_t,                        P_JE);
-extern PPvoid_t JudySLFirst(     Pcvoid_t,       uint8_t * Index, P_JE);
-extern PPvoid_t JudySLNext(      Pcvoid_t,       uint8_t * Index, P_JE);
-extern PPvoid_t JudySLLast(      Pcvoid_t,       uint8_t * Index, P_JE);
-extern PPvoid_t JudySLPrev(      Pcvoid_t,       uint8_t * Index, P_JE);
-
-/* ****************************************************************************
-// JUDYHSL FUNCTIONS:
-*/
-extern PPvoid_t JudyHSGet(       Pcvoid_t,  void *, Word_t);
-extern PPvoid_t JudyHSIns(       PPvoid_t,  void *, Word_t, P_JE);
-extern int      JudyHSDel(       PPvoid_t,  void *, Word_t, P_JE);
-extern Word_t   JudyHSFreeArray( PPvoid_t,                  P_JE);
-
-extern const char *Judy1MallocSizes;
-extern const char *JudyLMallocSizes;
-
-/* ****************************************************************************
-// JUDY memory interface to malloc() FUNCTIONS:
-*/
-extern Word_t JudyMalloc(Word_t);               /* words reqd => words allocd. */
-extern Word_t JudyMallocVirtual(Word_t);        /* words reqd => words allocd. */
-extern void   JudyFree(Pvoid_t, Word_t);        /* free, size in words.        */
-extern void   JudyFreeVirtual(Pvoid_t, Word_t); /* free, size in words.        */
-
-#define JLAP_INVALID    0x1     /* flag to mark pointer "not a Judy array" */
-
-/* ****************************************************************************
-// MACRO EQUIVALENTS FOR JUDY FUNCTIONS:
-//
-// The following macros, such as J1T, are shorthands for calling Judy functions
-// with parameter address-of and detailed error checking included.  Since they
-// are macros, the error checking code is replicated each time the macro is
-// used, but it runs fast in the normal case of no error.
-//
-// If the caller does not like the way the default JUDYERROR macro handles
-// errors (such as an exit(1) call when out of memory), they may define their
-// own before the "#include <Judy.h>".  A routine such as HandleJudyError
-// could do checking on specific error numbers and print a different message
-// dependent on the error.  The following is one example:
-//
-// Note: the back-slashes are removed because some compilers will not accept
-// them in comments.
-//
-// void HandleJudyError(uint8_t *, int, uint8_t *, int, int);
-// #define JUDYERROR(CallerFile, CallerLine, JudyFunc, JudyErrno, JudyErrID)
-// {
-//    HandleJudyError(CallerFile, CallerLine, JudyFunc, JudyErrno, JudyErrID);
-// }
-//
-// The routine HandleJudyError could do checking on specific error numbers and
-// print a different message dependent on the error.
-//
-// The macro receives five parameters that are:
-//
-// 1.  CallerFile:  Source filename where a Judy call returned a serious error.
-// 2.  CallerLine:  Line number in that source file.
-// 3.  JudyFunc:    Name of Judy function reporting the error.
-// 4.  JudyErrno:   One of the JU_ERRNO* values enumerated above.
-// 5.  JudyErrID:   The je_ErrID field described above.
-*/
-#ifndef JUDYERROR_NOTEST
-#ifndef JUDYERROR       /* supply a default error macro */
-#include <stdio.h>
-
-#define JUDYERROR(CallerFile, CallerLine, JudyFunc, JudyErrno, JudyErrID) \
-    {                                                                     \
-        (void) fprintf(stderr, "File '%s', line %d: %s(), "               \
-           "JU_ERRNO_* == %d, ID == %d\n",                                \
-           CallerFile, CallerLine,                                        \
-           JudyFunc, JudyErrno, JudyErrID);                               \
-        exit(1);                                                          \
-    }
-
-#endif /* JUDYERROR */
-#endif /* JUDYERROR_NOTEST */
-
-/* If the JUDYERROR macro is not desired at all, then the following eliminates
-// it.  However, the return code from each Judy function (that is, the first
-// parameter of each macro) must be checked by the caller to assure that an
-// error did not occur.
-//
-// Example:
-//
-//   #define JUDYERROR_NOTEST 1
-//   #include <Judy.h>
-//
-// or use this cc option at compile time:
-//
-//   cc -DJUDYERROR_NOTEST ...
-//
-// Example code:
-//
-//   J1S(Rc, PArray, Index);
-//   if (Rc == JERR) goto ...error
-//
-// or:
-//
-//   JLI(PValue, PArray, Index);
-//   if (PValue == PJERR) goto ...error
-
-
-// Internal shorthand macros for writing the J1S, etc. macros:
-*/
-#ifdef JUDYERROR_NOTEST /* ============================================ */
-
-/* "Judy Set Error": */
-
-#define J_SE(FuncName,Errno)  ((void) 0)
-
-/* Note:  In each J_*() case below, the digit is the number of key parameters
-// to the Judy*() call.  Just assign the Func result to the callers Rc value
-// without a cast because none is required, and this keeps the API simpler.
-// However, a family of different J_*() macros is needed to support the
-// different numbers of key parameters (0,1,2) and the Func return type.
-//
-// In the names below, "I" = integer result; "P" = pointer result.  Note, the
-// Funcs for J_*P() return PPvoid_t, but cast this to a Pvoid_t for flexible,
-// error-free assignment, and then compare to PJERR.
-*/
-#define J_0I(Rc,PArray,Func,FuncName) \
-        { (Rc) = Func(PArray, PJE0); }
-
-#define J_1I(Rc,PArray,Index,Func,FuncName) \
-        { (Rc) = Func(PArray, Index, PJE0); }
-
-#define J_1P(PV,PArray,Index,Func,FuncName) \
-        { (PV) = (Pvoid_t) Func(PArray, Index, PJE0); }
-
-#define J_2I(Rc,PArray,Index,Arg2,Func,FuncName) \
-        { (Rc) = Func(PArray, Index, Arg2, PJE0); }
-
-#define J_2C(Rc,PArray,Index1,Index2,Func,FuncName) \
-        { (Rc) = Func(PArray, Index1, Index2, PJE0); }
-
-#define J_2P(PV,PArray,Index,Arg2,Func,FuncName) \
-        { (PV) = (Pvoid_t) Func(PArray, Index, Arg2, PJE0); }
-
-/* Variations for Judy*Set/InsArray functions: */
-
-#define J_2AI(Rc,PArray,Count,PIndex,Func,FuncName) \
-        { (Rc) = Func(PArray, Count, PIndex, PJE0); }
-#define J_3AI(Rc,PArray,Count,PIndex,PValue,Func,FuncName) \
-        { (Rc) = Func(PArray, Count, PIndex, PValue, PJE0); }
-
-#else /* ================ ! JUDYERROR_NOTEST ============================= */
-
-#define J_E(FuncName,PJE) \
-        JUDYERROR(__FILE__, __LINE__, FuncName, JU_ERRNO(PJE), JU_ERRID(PJE))
-
-#define J_SE(FuncName,Errno)                                            \
-        {                                                               \
-            JError_t J_Error;                                           \
-            JU_ERRNO(&J_Error) = (Errno);                               \
-            JU_ERRID(&J_Error) = __LINE__;                              \
-            J_E(FuncName, &J_Error);                                    \
-        }
-
-/* Note:  In each J_*() case below, the digit is the number of key parameters
-// to the Judy*() call.  Just assign the Func result to the callers Rc value
-// without a cast because none is required, and this keeps the API simpler.
-// However, a family of different J_*() macros is needed to support the
-// different numbers of key parameters (0,1,2) and the Func return type.
-//
-// In the names below, "I" = integer result; "P" = pointer result.  Note, the
-// Funcs for J_*P() return PPvoid_t, but cast this to a Pvoid_t for flexible,
-// error-free assignment, and then compare to PJERR.
-*/
-#define J_0I(Rc,PArray,Func,FuncName)                                   \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if (((Rc) = Func(PArray, &J_Error)) == JERR)                \
-                J_E(FuncName, &J_Error);                                \
-        }
-
-#define J_1I(Rc,PArray,Index,Func,FuncName)                             \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if (((Rc) = Func(PArray, Index, &J_Error)) == JERR)         \
-                J_E(FuncName, &J_Error);                                \
-        }
-
-#define J_1P(Rc,PArray,Index,Func,FuncName)                             \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if (((Rc) = (Pvoid_t) Func(PArray, Index, &J_Error)) == PJERR) \
-                J_E(FuncName, &J_Error);                                \
-        }
-
-#define J_2I(Rc,PArray,Index,Arg2,Func,FuncName)                        \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if (((Rc) = Func(PArray, Index, Arg2, &J_Error)) == JERR)   \
-                J_E(FuncName, &J_Error);                                \
-        }
-
-/* Variation for Judy*Count functions, which return 0, not JERR, for error (and
-// also for other non-error cases):
-//
-// Note:  JU_ERRNO_NFMAX should only apply to 32-bit Judy1, but this header
-// file lacks the necessary ifdefs to make it go away otherwise, so always
-// check against it.
-*/
-#define J_2C(Rc,PArray,Index1,Index2,Func,FuncName)                     \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if ((((Rc) = Func(PArray, Index1, Index2, &J_Error)) == 0)  \
-             && (JU_ERRNO(&J_Error) > JU_ERRNO_NFMAX))                  \
-            {                                                           \
-                J_E(FuncName, &J_Error);                                \
-            }                                                           \
-        }
-
-#define J_2P(PV,PArray,Index,Arg2,Func,FuncName)                        \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if (((PV) = (Pvoid_t) Func(PArray, Index, Arg2, &J_Error))  \
-                == PJERR) J_E(FuncName, &J_Error);                      \
-        }
-
-/* Variations for Judy*Set/InsArray functions: */
-
-#define J_2AI(Rc,PArray,Count,PIndex,Func,FuncName)                     \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if (((Rc) = Func(PArray, Count, PIndex, &J_Error)) == JERR) \
-                J_E(FuncName, &J_Error);                                \
-        }
-
-#define J_3AI(Rc,PArray,Count,PIndex,PValue,Func,FuncName)              \
-        {                                                               \
-            JError_t J_Error;                                           \
-            if (((Rc) = Func(PArray, Count, PIndex, PValue, &J_Error))  \
-                == JERR) J_E(FuncName, &J_Error);                       \
-        }
-
-#endif /* ================ ! JUDYERROR_NOTEST ============================= */
-
-/* Some of the macros are special cases that use inlined shortcuts for speed
-// with root-level leaves:
-
-// This is a slower version with current processors, but in the future...
-*/
-#define J1T(Rc,PArray,Index)                                            \
-    (Rc) = Judy1Test((Pvoid_t)(PArray), Index, PJE0)
-
-#define J1S( Rc,    PArray,   Index) \
-        J_1I(Rc, (&(PArray)), Index,  Judy1Set,   "Judy1Set")
-#define J1SA(Rc,    PArray,   Count, PIndex) \
-        J_2AI(Rc,(&(PArray)), Count, PIndex, Judy1SetArray, "Judy1SetArray")
-#define J1U( Rc,    PArray,   Index) \
-        J_1I(Rc, (&(PArray)), Index,  Judy1Unset, "Judy1Unset")
-#define J1F( Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1First, "Judy1First")
-#define J1N( Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1Next,  "Judy1Next")
-#define J1L( Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1Last,  "Judy1Last")
-#define J1P( Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1Prev,  "Judy1Prev")
-#define J1FE(Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1FirstEmpty, "Judy1FirstEmpty")
-#define J1NE(Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1NextEmpty,  "Judy1NextEmpty")
-#define J1LE(Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1LastEmpty,  "Judy1LastEmpty")
-#define J1PE(Rc,    PArray,   Index) \
-        J_1I(Rc,    PArray, &(Index), Judy1PrevEmpty,  "Judy1PrevEmpty")
-#define J1C( Rc,    PArray,   Index1,  Index2) \
-        J_2C(Rc,    PArray,   Index1,  Index2, Judy1Count,   "Judy1Count")
-#define J1BC(Rc,    PArray,   Count,   Index) \
-        J_2I(Rc,    PArray,   Count, &(Index), Judy1ByCount, "Judy1ByCount")
-#define J1FA(Rc,    PArray) \
-        J_0I(Rc, (&(PArray)), Judy1FreeArray, "Judy1FreeArray")
-#define J1MU(Rc,    PArray) \
-        (Rc) = Judy1MemUsed(PArray)
-
-#define JLG(PV,PArray,Index)                                            \
-    (PV) = (Pvoid_t)JudyLGet((Pvoid_t)PArray, Index, PJE0)
-
-#define JLI( PV,    PArray,   Index)                                    \
-        J_1P(PV, (&(PArray)), Index,  JudyLIns,   "JudyLIns")
-
-#define JLIA(Rc,    PArray,   Count, PIndex, PValue)                    \
-        J_3AI(Rc,(&(PArray)), Count, PIndex, PValue, JudyLInsArray,     \
-                                                  "JudyLInsArray")
-#define JLD( Rc,    PArray,   Index)                                    \
-        J_1I(Rc, (&(PArray)), Index,  JudyLDel,   "JudyLDel")
-
-#define JLF( PV,    PArray,   Index)                                    \
-        J_1P(PV,    PArray, &(Index), JudyLFirst, "JudyLFirst")
-
-#define JLN( PV,    PArray,   Index)                                    \
-        J_1P(PV,    PArray, &(Index), JudyLNext, "JudyLNext")
-
-#define JLL( PV,    PArray,   Index)                                    \
-        J_1P(PV,    PArray, &(Index), JudyLLast,  "JudyLLast")
-#define JLP( PV,    PArray,   Index)                                    \
-        J_1P(PV,    PArray, &(Index), JudyLPrev,  "JudyLPrev")
-#define JLFE(Rc,    PArray,   Index)                                    \
-        J_1I(Rc,    PArray, &(Index), JudyLFirstEmpty, "JudyLFirstEmpty")
-#define JLNE(Rc,    PArray,   Index)                                    \
-        J_1I(Rc,    PArray, &(Index), JudyLNextEmpty,  "JudyLNextEmpty")
-#define JLLE(Rc,    PArray,   Index)                                    \
-        J_1I(Rc,    PArray, &(Index), JudyLLastEmpty,  "JudyLLastEmpty")
-#define JLPE(Rc,    PArray,   Index)                                    \
-        J_1I(Rc,    PArray, &(Index), JudyLPrevEmpty,  "JudyLPrevEmpty")
-#define JLC( Rc,    PArray,   Index1,  Index2)                          \
-        J_2C(Rc,    PArray,   Index1,  Index2, JudyLCount,   "JudyLCount")
-#define JLBC(PV,    PArray,   Count,   Index)                           \
-        J_2P(PV,    PArray,   Count, &(Index), JudyLByCount, "JudyLByCount")
-#define JLFA(Rc,    PArray)                                             \
-        J_0I(Rc, (&(PArray)), JudyLFreeArray, "JudyLFreeArray")
-#define JLMU(Rc,    PArray)                                             \
-        (Rc) = JudyLMemUsed(PArray)
-
-#define JHSI(PV,    PArray,   PIndex,   Count)                          \
-        J_2P(PV, (&(PArray)), PIndex,   Count, JudyHSIns, "JudyHSIns")
-#define JHSG(PV,    PArray,   PIndex,   Count)                          \
-        (PV) = (Pvoid_t) JudyHSGet(PArray, PIndex, Count)
-#define JHSD(Rc,    PArray,   PIndex,   Count)                          \
-        J_2I(Rc, (&(PArray)), PIndex, Count, JudyHSDel, "JudyHSDel")
-#define JHSFA(Rc,    PArray)                                            \
-        J_0I(Rc, (&(PArray)), JudyHSFreeArray, "JudyHSFreeArray")
-
-#define JSLG( PV,    PArray,   Index)                                   \
-        J_1P( PV,    PArray,   Index, JudySLGet,   "JudySLGet")
-#define JSLI( PV,    PArray,   Index)                                   \
-        J_1P( PV, (&(PArray)), Index, JudySLIns,   "JudySLIns")
-#define JSLD( Rc,    PArray,   Index)                                   \
-        J_1I( Rc, (&(PArray)), Index, JudySLDel,   "JudySLDel")
-#define JSLF( PV,    PArray,   Index)                                   \
-        J_1P( PV,    PArray,   Index, JudySLFirst, "JudySLFirst")
-#define JSLN( PV,    PArray,   Index)                                   \
-        J_1P( PV,    PArray,   Index, JudySLNext,  "JudySLNext")
-#define JSLL( PV,    PArray,   Index)                                   \
-        J_1P( PV,    PArray,   Index, JudySLLast,  "JudySLLast")
-#define JSLP( PV,    PArray,   Index)                                   \
-        J_1P( PV,    PArray,   Index, JudySLPrev,  "JudySLPrev")
-#define JSLFA(Rc,    PArray)                                            \
-        J_0I( Rc, (&(PArray)), JudySLFreeArray, "JudySLFreeArray")
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* ! _JUDY_INCLUDED */
diff --git a/libs/klib/Makefile b/libs/klib/Makefile
index 199c362..7e1aca4 100644
--- a/libs/klib/Makefile
+++ b/libs/klib/Makefile
@@ -42,42 +42,44 @@ include $(TOP)/build/Makefile.env
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all: makedirs
-	@ $(MAKE) -C $(SRCDIR)/judy all
-	@ $(MAKE_CMD) $(TARGDIR)/all
+vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
 
-std: makedirs
-	@ $(MAKE) -C $(SRCDIR)/judy std
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(INT_LIBS): makedirs
-	@ $(MAKE) -C $(SRCDIR)/judy std
+$(INT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
 
-$(EXT_LIBS): makedirs
-	@ $(MAKE) -C $(SRCDIR)/judy std
+$(EXT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
-.PHONY: all std $(ALL_LIBS)
+.PHONY: vers-includes all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
-# all, std
+# std
 #
-$(TARGDIR)/all $(TARGDIR)/std: \
+$(TARGDIR)/std: \
 	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
 	$(addprefix $(LIBDIR)/,$(EXT_LIBS))
 
-.PHONY: $(TARGDIR)/all $(TARGDIR)/std
+.PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
-	@ $(MAKE) -C $(SRCDIR)/judy clean
 
 .PHONY: clean
 
 #-------------------------------------------------------------------------------
+# tag
+#
+tag: \
+	$(addsuffix _tag,$(ALL_LIBS))
+
+.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
+
+#-------------------------------------------------------------------------------
 # klib
 #
 $(LIBDIR)/libklib: $(addprefix $(LIBDIR)/libklib.,$(LIBEXT))
@@ -106,7 +108,6 @@ KLIB_SRC = \
 	SHA-32bit \
 	SHA-64bit \
 	qsort \
-	ksort \
 	bsearch \
 	pack \
 	unpack \
@@ -125,9 +126,7 @@ KLIB_SRC = \
 	syslog \
 	systime \
 	rc-tbl \
-	rc-idx-tbl \
-	judy-vector \
-	report
+	rc-idx-tbl
 
 ifeq (win,$(OS))
 	KLIB_SRC += sysalloc
@@ -141,7 +140,6 @@ KLIB_OBJ = \
 	$(addsuffix .$(LOBX),$(KLIB_SRC))
 
 KLIB_LIB = \
-	-sjudy \
 	-lm
 
 $(LIBDIR)/libklib.$(SHLX): $(KLIB_OBJ)
diff --git a/libs/klib/SHA-32bit.c b/libs/klib/SHA-32bit.c
old mode 100644
new mode 100755
index 3b4bbfc..4747430
--- a/libs/klib/SHA-32bit.c
+++ b/libs/klib/SHA-32bit.c
@@ -200,7 +200,7 @@ static __inline__ void SHA_32b_Append(struct SHA32bitState *ctx, int which, cons
         memcpy(&ctx->W[ctx->cur], &data[i], n);
         ctx->cur += n;
         if (ctx->cur == 64) {
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
             uint32_t W[16];
             
             for (j = 0; j != 16; ++j)
@@ -223,7 +223,7 @@ static __inline__ void SHA_32b_Finish(const struct SHA32bitState *ctx, int which
     
     memset(W, 0, sizeof(W));
     for (j = 0; j != n; ++j) {
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
         W[j] = bswap_32(((const uint32_t *)ctx->W)[j]);
 #else
         W[j] = ((const uint32_t *)ctx->W)[j];
@@ -264,7 +264,7 @@ void CC SHA1StateFinish(SHA1State *ctx, uint8_t hash[20])
     uint32_t H[8];
 
     SHA_32b_Finish(ctx, 0, H);
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
     {
         H[0] = bswap_32(H[0]);
         H[1] = bswap_32(H[1]);
@@ -291,7 +291,7 @@ void CC SHA256StateFinish(SHA256State *ctx, uint8_t hash[32])
     uint32_t H[8];
 
     SHA_32b_Finish(ctx, 1, H);
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
     {
         H[0] = bswap_32(H[0]);
         H[1] = bswap_32(H[1]);
diff --git a/libs/klib/SHA-64bit.c b/libs/klib/SHA-64bit.c
old mode 100644
new mode 100755
index 1fc1914..2e9a69a
--- a/libs/klib/SHA-64bit.c
+++ b/libs/klib/SHA-64bit.c
@@ -162,7 +162,7 @@ static __inline__ void SHA_64b_Append(struct SHA64bitState *ctx, const uint8_t d
         memcpy(&ctx->W[ctx->cur], &data[i], n);
         ctx->cur += n;
         if (ctx->cur == 128) {
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
             uint64_t W[16];
             
             for (j = 0; j != 16; ++j)
@@ -185,7 +185,7 @@ static __inline__ void SHA_64b_Finish(const struct SHA64bitState *ctx, uint64_t
     
     memset(W, 0, sizeof(W));
     for (j = 0; j != n; ++j) {
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
         W[j] = bswap_64(((const uint64_t *)ctx->W)[j]);
 #else
         W[j] = ((const uint64_t *)ctx->W)[j];
@@ -226,7 +226,7 @@ void CC SHA384StateFinish(SHA384State *ctx, uint8_t hash[48])
     uint64_t H[8];
 
     SHA_64b_Finish(ctx, H);
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
     {
         H[0] = bswap_64(H[0]);
         H[1] = bswap_64(H[1]);
@@ -254,7 +254,7 @@ void CC SHA512StateFinish(SHA512State *ctx, uint8_t hash[64])
     uint64_t H[8];
 
     SHA_64b_Finish(ctx, H);
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
     {
         H[0] = bswap_64(H[0]);
         H[1] = bswap_64(H[1]);
diff --git a/libs/klib/data-buffer.c b/libs/klib/data-buffer.c
index dcf0ee7..0761b0c 100644
--- a/libs/klib/data-buffer.c
+++ b/libs/klib/data-buffer.c
@@ -50,22 +50,24 @@ struct buffer_impl_t {
 #if DEBUG_MALLOC_FREE
     uint32_t foo;
 #endif
+    uint8_t data [ 8 ];
 };
 
-static size_t roundup(size_t value, unsigned bits)
-{
-    size_t const mask = (((size_t)1u) << bits) - 1;
-    return (value + mask) & (~mask);
+
+static
+size_t alloc_size(size_t capacity) {
+    const size_t mask = ( 1U << 12 ) - 1;
+    return ( capacity + mask + sizeof(buffer_impl_t) - 8 ) & ~ mask;
 }
 
 static
 rc_t allocate(buffer_impl_t **target, size_t capacity) {
-    buffer_impl_t *y = malloc(capacity + sizeof(*y));
+    buffer_impl_t *y = malloc(capacity = alloc_size(capacity));
 
     if (y == NULL)
         return RC(rcRuntime, rcBuffer, rcAllocating, rcMemory, rcExhausted);
 
-    y->allocated = capacity;
+    y -> allocated = capacity;
     atomic32_set(&y->refcount, 1);
     
 #if DEBUG_MALLOC_FREE
@@ -82,7 +84,8 @@ static buffer_impl_t *add_ref(buffer_impl_t *self) {
 }
 
 static buffer_impl_t *test_add_ref(buffer_impl_t *self) {
-    if (self) add_ref(self);
+    if ( self != NULL )
+        atomic32_inc ( & self -> refcount );
     return self;
 }
 
@@ -109,49 +112,34 @@ static void release(buffer_impl_t *self) {
 static rc_t reallocate(buffer_impl_t **target, size_t capacity) {
     buffer_impl_t *temp;
     buffer_impl_t *self = *target;
+    size_t new_capacity = alloc_size(capacity);
 
-    if (capacity <= self->allocated)
+    if (new_capacity <= self->allocated)
         return 0;
 
     /* check reference count for copies */
-    if (atomic32_read(&self->refcount) <= 1)
+    if ( atomic32_read ( & self -> refcount ) <= 1 )
     {
-        temp = realloc(self, capacity + sizeof(*temp));
-        if (temp == NULL)
-            return RC(rcRuntime, rcBuffer, rcResizing, rcMemory, rcExhausted);
+        temp = realloc ( self, new_capacity );
+        if ( temp == NULL )
+            return RC ( rcRuntime, rcBuffer, rcResizing, rcMemory, rcExhausted );
     }
     else
     {
-        temp = malloc(capacity + sizeof(*temp));
-        if (temp == NULL)
-            return RC(rcRuntime, rcBuffer, rcResizing, rcMemory, rcExhausted);
-        memcpy(temp, self, self->allocated + sizeof(*temp));
+        temp = malloc ( new_capacity );
+        if ( temp == NULL )
+            return RC ( rcRuntime, rcBuffer, rcResizing, rcMemory, rcExhausted );
+        memcpy(temp, self, self->allocated);
         release(self);
     }
     self = temp;
-    self->allocated = capacity;
+    self->allocated = new_capacity;
     atomic32_set(&self->refcount, 1);
     *target = self;
 
     return 0;
 }
 
-static rc_t shrink(buffer_impl_t **target, size_t capacity)
-{
-    buffer_impl_t *self = *target;
-    
-    if (capacity < self->allocated && atomic32_read(&self->refcount) == 1) {
-        buffer_impl_t *temp = realloc(self, capacity + sizeof(*temp));
-        
-        if (temp == NULL)
-            return RC(rcRuntime, rcBuffer, rcResizing, rcMemory, rcExhausted);
-
-        temp->allocated = capacity;
-        *target = temp;
-    }
-    return 0;
-}
-
 /*
  either returns original with refcount == 2
  or returns new copy with refcount == 1
@@ -160,44 +148,32 @@ static buffer_impl_t* make_copy(buffer_impl_t *self) {
     if (atomic32_read_and_add_eq(&self->refcount, 1, 1)==1)
         return self;
     else {
-        buffer_impl_t *copy = malloc(self->allocated + sizeof(*self));
+        buffer_impl_t *copy = malloc(self->allocated);
         if (copy) {
-            memcpy(copy, self, self->allocated + sizeof(*copy));
+            memcpy(copy, self, self->allocated);
             atomic32_set(&copy->refcount, 1);
         }
         return copy;
     }
 }
 
-static void const *get_data(buffer_impl_t const *self)
-{
-    return &self[1];
-}
-
-static void const *get_data_endp(buffer_impl_t const *self)
-{
-    return (uint8_t const *)get_data(self) + self->allocated;
-}
-
 static
-rc_t buffer_impl_check_integrity (buffer_impl_t const *self, uint8_t const *base, size_t offset, size_t size)
+rc_t buffer_impl_check_integrity ( const buffer_impl_t *self, const uint8_t *base, size_t offset, size_t size )
 {
-    void const *const endp = &base[size+offset];
-
-    if (self == NULL)
+    if ( self == NULL )
         return 0;
 
     /* refcount is of major importance */
-    if (atomic32_read (& self->refcount) <= 0)
-        return RC (rcRuntime, rcBuffer, rcValidating, rcBuffer, rcDestroyed);
+    if ( atomic32_read ( & self -> refcount ) <= 0 )
+        return RC ( rcRuntime, rcBuffer, rcValidating, rcBuffer, rcDestroyed );
 
 #if DEBUG_MALLOC_FREE
-    if (self->foo != 0)
-        return RC (rcRuntime, rcBuffer, rcValidating, rcBuffer, rcDestroyed);
+    if ( self -> foo != 0 )
+        return RC ( rcRuntime, rcBuffer, rcValidating, rcBuffer, rcDestroyed );
 #endif
 
-    if ((void const *)base < get_data(self) || get_data_endp(self) < endp)
-        return RC (rcRuntime, rcBuffer, rcValidating, rcData, rcCorrupt);
+    if ( base < self -> data || & base [ offset + size ] > & self -> data [ self -> allocated ] )
+        return RC ( rcRuntime, rcBuffer, rcValidating, rcData, rcCorrupt );
 
     return 0;
 }
@@ -209,30 +185,30 @@ rc_t buffer_impl_check_integrity (buffer_impl_t const *self, uint8_t const *base
  *
  *  "capacity" [ IN ] - the number of bytes to be allocated
  */
-LIB_EXPORT rc_t CC KDataBufferMake(KDataBuffer *target, uint64_t elem_bits, uint64_t elem_count) {
+LIB_EXPORT rc_t CC KDataBufferMake( KDataBuffer *target, uint64_t elem_bits, uint64_t elem_count ) {
     rc_t rc;
-    size_t bytes;
+    uint64_t bytes;
     buffer_impl_t **impp = (buffer_impl_t **)&target->ignore;
     
     if (target == NULL)
     	return RC(rcRuntime, rcBuffer, rcConstructing, rcParam, rcNull);
     
-    bytes = roundup((elem_bits * elem_count + 7) / 8, 12);
-    if (8 * (uint64_t)bytes < elem_bits * elem_count)
+    bytes = ( elem_bits * elem_count + 7 ) >> 3;
+    if ( ( bytes >> 32 ) != 0 )
     	return RC(rcRuntime, rcBuffer, rcConstructing, rcParam, rcTooBig);
     
-    memset (target, 0, sizeof(*target));
+    memset ( target, 0, sizeof * target );
 
-    rc = allocate(impp, bytes);
-    if (rc == 0) {
-        target->base = (void *)get_data(*impp);
+    rc = allocate ( impp, ( size_t ) bytes );
+    if ( rc == 0 ) {
+        target->base = (**impp).data;
         target->elem_bits = elem_bits;
         target->elem_count = elem_count;
     }
     return rc;
 }
 
-LIB_EXPORT rc_t CC KDataBufferResize(KDataBuffer *self, uint64_t new_count) {
+LIB_EXPORT rc_t CC KDataBufferResize( KDataBuffer *self, uint64_t new_count) {
     rc_t rc;
     buffer_impl_t *imp;
     buffer_impl_t *new_imp;
@@ -250,22 +226,22 @@ LIB_EXPORT rc_t CC KDataBufferResize(KDataBuffer *self, uint64_t new_count) {
     }
 
     bits = self->elem_bits * new_count;
-    if (((bits + 7) >> 35) != 0)
+    if ( ( ( bits + 7 ) >> 35 ) != 0 )
     	return RC(rcRuntime, rcBuffer, rcConstructing, rcParam, rcTooBig);
     
     imp = (buffer_impl_t *)self->ignore;
     if (imp == NULL) {
         /* new buffer */
-        rc = allocate(&imp, roundup((bits + 7) / 8, 12));
+        rc = allocate(&imp, ( size_t ) ( ( bits + 7 ) >> 3 ) );
         if (rc == 0) {
             self->ignore = imp;
-            self->base = (void *)get_data(imp);
+            self->base = imp->data;
             self->elem_count = new_count;
         }
         return rc;
     }
 
-    cur_end = &((const uint8_t *)imp)[imp->allocated + sizeof *imp];
+    cur_end = &((const uint8_t *)imp)[imp->allocated];
     new_end = &((const uint8_t *)self->base)[(bits + self->bit_offset + 7) >> 3];
     if (cur_end >= new_end) {
         /* requested end-of-buffer is within current allocation; realloc not required */
@@ -276,31 +252,31 @@ LIB_EXPORT rc_t CC KDataBufferResize(KDataBuffer *self, uint64_t new_count) {
     if (!KDataBufferWritable(self))
         return RC(rcRuntime, rcBuffer, rcResizing, rcSelf, rcReadonly);
     
-    new_size = roundup((bits + 7) / 8, 12);
-    if (self->base == get_data(imp) && self->bit_offset == 0) {
+    new_size = (bits + 7) >> 3;
+    if (self->base == imp->data && self->bit_offset == 0) {
         rc = reallocate(&imp, new_size);
         if (rc == 0) {
             self->ignore = imp;
-            self->base = (void *)get_data(imp);
+            self->base = imp->data;
             self->elem_count = new_count;
         }
         return rc;
     }
 
     /* is sub-buffer but is sole reference */
-    rc = allocate(&new_imp, roundup(new_size, 12));
+    rc = allocate(&new_imp, new_size);
     if (rc == 0) {
-        memcpy((void *)get_data(new_imp), self->base, new_size);
+        memcpy(new_imp->data, self->base, new_size);
         release(imp);
-        self->base = (void *)get_data(new_imp);
         self->ignore = new_imp;
+        self->base = new_imp->data;
         self->elem_count = new_count;
     }
     return rc;
 }
 
-LIB_EXPORT rc_t CC KDataBufferSub (const KDataBuffer *self,
-    KDataBuffer *target, uint64_t start, uint64_t count)
+LIB_EXPORT rc_t CC KDataBufferSub ( const KDataBuffer *self,
+    KDataBuffer *target, uint64_t start, uint64_t count )
 {
     if (self == NULL || target == NULL)
     	return RC(rcRuntime, rcBuffer, rcConstructing, rcParam, rcNull);
@@ -317,37 +293,36 @@ LIB_EXPORT rc_t CC KDataBufferSub (const KDataBuffer *self,
     }
     {
         buffer_impl_t *imp = (buffer_impl_t *)self->ignore;
-        bitsz_t offset = self->bit_offset + (((bitsz_t)((uint8_t const *)self->base - (uint8_t const *)get_data(imp))) << 3);
+        bitsz_t offset = self->bit_offset + (((bitsz_t)((const uint8_t *)self->base - (const uint8_t *)imp->data)) << 3);
         
         if (start > self->elem_count){
             start = self->elem_count;
-            count = 0;
-        }
-        else if (count > self->elem_count) {
-            count = self->elem_count;
-        }
-        if (start + count > self->elem_count) {
-            count = self->elem_count - start;
-        }
+	    count = 0;
+	} else if (count > self->elem_count) {
+	    count = self->elem_count;
+	}
+	if ( start + count > self->elem_count) {
+	    count = self->elem_count - start;
+	}
         target->elem_count = count;
         offset += (bitsz_t)start * self->elem_bits;
-        target->base = &((uint8_t *)get_data(imp))[offset >> 3];
+        target->base = &imp->data[offset >> 3];
         target->bit_offset = (uint8_t)offset & 0x07;
     }
     return 0;
 }
 
-LIB_EXPORT rc_t CC KDataBufferCast(const KDataBuffer *self, KDataBuffer *target, uint64_t new_elem_bits, bool can_shrink) {
+LIB_EXPORT rc_t CC KDataBufferCast( const KDataBuffer *self, KDataBuffer *target, uint64_t new_elem_bits, bool can_shrink) {
     bitsz_t bits;
     size_t new_elem_count;
     bitsz_t new_bits;
 
-    if (self == NULL)
-        return RC (rcRuntime, rcBuffer, rcCasting, rcSelf, rcNull);
-    if (target == NULL)
-    	return RC (rcRuntime, rcBuffer, rcCasting, rcParam, rcNull);
-    if (new_elem_bits == 0)
-    	return RC (rcRuntime, rcBuffer, rcCasting, rcParam, rcInvalid);
+    if ( self == NULL )
+        return RC ( rcRuntime, rcBuffer, rcCasting, rcSelf, rcNull );
+    if ( target == NULL )
+    	return RC ( rcRuntime, rcBuffer, rcCasting, rcParam, rcNull );
+    if ( new_elem_bits == 0 )
+    	return RC ( rcRuntime, rcBuffer, rcCasting, rcParam, rcInvalid );
     
     bits = KDataBufferBits(self);
     new_elem_count = bits / new_elem_bits;
@@ -365,7 +340,7 @@ LIB_EXPORT rc_t CC KDataBufferCast(const KDataBuffer *self, KDataBuffer *target,
     return RC(rcRuntime, rcBuffer, rcCasting, rcParam, rcInvalid);
 }
 
-LIB_EXPORT rc_t CC KDataBufferMakeWritable (const KDataBuffer *cself, KDataBuffer *target)
+LIB_EXPORT rc_t CC KDataBufferMakeWritable ( const KDataBuffer *cself, KDataBuffer *target )
 {
     
     if (cself == NULL || target == NULL)
@@ -377,16 +352,16 @@ LIB_EXPORT rc_t CC KDataBufferMakeWritable (const KDataBuffer *cself, KDataBuffe
         buffer_impl_t *self = (buffer_impl_t *)cself->ignore;
         buffer_impl_t *copy;
         
-        if (cself->base == get_data(self) && cself->bit_offset == 0) {
+        if (cself->base == self->data && cself->bit_offset == 0) {
             /* not a sub-buffer */
             copy = make_copy(self);
             if (copy) {
-                if ((KDataBuffer const *)target == cself)
+                if ((const KDataBuffer *)target == cself)
                     release(self);
                 else 
                     *target = *cself;
                 target->ignore = copy;
-                target->base = (uint8_t *)get_data(copy);
+                target->base = copy->data;
                 
                 return 0;
             }
@@ -400,15 +375,15 @@ LIB_EXPORT rc_t CC KDataBufferMakeWritable (const KDataBuffer *cself, KDataBuffe
             /* sub-buffer so make new and copy */
             rc_t rc;
             
-            rc = allocate(&copy, roundup(KDataBufferBytes(cself), 12));
+            rc = allocate(&copy, KDataBufferBytes(cself));
             if (rc == 0) {
-                bitcpy((void *)get_data(copy), 0, cself->base, cself->bit_offset, KDataBufferBits(cself));
+                bitcpy(copy->data, 0, cself->base, cself->bit_offset, KDataBufferBits(cself));
                 if ((const KDataBuffer *)target == cself)
                     release(self);
                 else 
                     *target = *cself;
                 target->ignore = copy;
-                target->base = (uint8_t *)get_data(copy);
+                target->base = copy->data;
                 target->bit_offset = 0;
                 return 0;
             }
@@ -417,70 +392,54 @@ LIB_EXPORT rc_t CC KDataBufferMakeWritable (const KDataBuffer *cself, KDataBuffe
     }
 }
 
-LIB_EXPORT rc_t CC KDataBufferWhack (KDataBuffer *self)
+LIB_EXPORT rc_t CC KDataBufferWhack ( KDataBuffer *self )
 {
-    if (self)
+    if ( self )
     {
-        if (self->ignore)
-            release((buffer_impl_t *)self->ignore);
+        if ( self->ignore )
+            release( (buffer_impl_t *)self->ignore );
 
         memset(self, 0, sizeof(*self));
     }
     return 0;
 }
 
-LIB_EXPORT bool CC KDataBufferWritable(const KDataBuffer *cself)
+LIB_EXPORT bool CC KDataBufferWritable( const KDataBuffer *cself )
 {
     return (cself != NULL && cself->ignore != NULL &&
             atomic32_read(&((buffer_impl_t *)cself->ignore)->refcount) == 1) ? true : false;
 }
 
-LIB_EXPORT rc_t CC KDataBufferShrink(KDataBuffer *self)
-{
-    if (self && self->ignore) {
-        return shrink((buffer_impl_t **)&self->ignore,
-            (self->elem_bits * self->elem_count + self->bit_offset + 7) / 8);
-    }
-    return 0;
-}
-
-LIB_EXPORT size_t CC KDataBufferMemorySize(KDataBuffer const *self)
-{
-    if (self && self->ignore) {
-        return ((buffer_impl_t const *)self->ignore)->allocated + sizeof(buffer_impl_t);
-    }
-    return 0;
-}
 
 /* CheckIntegrity
  *  performs some level of integrity checking on buffer structure
  */
-LIB_EXPORT rc_t CC KDataBufferCheckIntegrity (const KDataBuffer *self)
+LIB_EXPORT rc_t CC KDataBufferCheckIntegrity ( const KDataBuffer *self )
 {
     /* whether NULL is allowed is determined by caller */
-    if (self == NULL)
-        return RC (rcRuntime, rcBuffer, rcValidating, rcSelf, rcNull);
+    if ( self == NULL )
+        return RC ( rcRuntime, rcBuffer, rcValidating, rcSelf, rcNull );
 
     /* elem-bits must not be 0, unless there is no allocation */
-    if (self->elem_bits == 0)
+    if ( self -> elem_bits == 0 )
     {
-        if (self->elem_count == 0 && self->bit_offset == 0 && self->ignore == NULL) {
+        if ( self -> elem_count == 0 && self -> bit_offset == 0 && self -> ignore == NULL ) {
             /* no allocation */
             return 0;
         }
-	    return RC (rcRuntime, rcBuffer, rcValidating, rcSelf, rcCorrupt);
+	    return RC ( rcRuntime, rcBuffer, rcValidating, rcSelf, rcCorrupt );
     }
 
     /* if there is no allocation, check self */
-    if (self->ignore == NULL)
+    if ( self -> ignore == NULL )
     {
-        if (self->elem_count != 0 || self->bit_offset != 0)
-	    return RC (rcRuntime, rcBuffer, rcValidating, rcSelf, rcCorrupt);
+        if ( self -> elem_count != 0 || self -> bit_offset != 0 )
+	    return RC ( rcRuntime, rcBuffer, rcValidating, rcSelf, rcCorrupt );
     }
 
     /* test self against allocated buffer */
-    return buffer_impl_check_integrity (self->ignore, (const void*) self->base,
-        self->bit_offset / self->elem_bits, KDataBufferBytes (self));
+    return buffer_impl_check_integrity ( self -> ignore, ( const void* ) self -> base,
+        self -> bit_offset / self -> elem_bits, KDataBufferBytes ( self ) );
 }
 
 /* 0x101e9b000 */
diff --git a/libs/klib/judy-vector.c b/libs/klib/judy-vector.c
deleted file mode 100644
index 3030d8e..0000000
--- a/libs/klib/judy-vector.c
+++ /dev/null
@@ -1,892 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <klib/extern.h>
-#include <klib/vector.h>
-#include <klib/refcount.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#define JUST_DEFINE_YOUR_STUFF 1
-#include "Judy.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-
-/*--------------------------------------------------------------------------
- * KVector
- *  encapsulated vector interface
- *
- *  a vector obeys a particular set of messages
- *  it may be implemented as an array, but not necessarily.
- *
- *  the principal property of a vector is that it acts as a map
- *  between an integer key and a value of some type. in this case,
- *  we only accept unsigned integers as keys.
- */
-struct KVector
-{
-    void *nancy;
-    KRefcount refcount;
-    uint32_t fixed_size;
-    bool nancy_bool;
-};
-
-
-/* Make
- *  create an empty vector
- */
-LIB_EXPORT rc_t CC KVectorMake ( KVector **vp )
-{
-    rc_t rc;
-
-    if ( vp == NULL )
-        rc = RC ( rcCont, rcVector, rcConstructing, rcParam, rcNull );
-    else
-    {
-        KVector *v = calloc ( 1, sizeof * v );
-        if ( v == NULL )
-            rc = RC ( rcCont, rcVector, rcConstructing, rcMemory, rcExhausted );
-        else
-        {
-            KRefcountInit ( & v -> refcount, 1, "KVector", "make", "v" );
-            * vp = v;
-            return 0;
-        }
-
-        * vp = NULL;
-    }
-
-    return rc;
-}
-
-
-/* Whack
- */
-static
-rc_t KVectorWhack ( KVector *self )
-{
-    if ( self -> nancy != NULL )
-    {
-        JError_t err;
-        Word_t whee =
-            ( self -> nancy_bool ? Judy1FreeArray : JudyLFreeArray )
-            ( & self -> nancy, & err );
-        ( void ) whee;
-    }
-
-    free ( self );
-    return 0;
-}
-
-
-/* AddRef
- * Release
- */
-LIB_EXPORT rc_t CC KVectorAddRef ( const KVector *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KVector" ) )
-        {
-        case krefOkay:
-            break;
-        case krefLimit:
-            return RC ( rcCont, rcVector, rcAttaching, rcRange, rcExcessive );
-        default:
-            return RC ( rcCont, rcVector, rcAttaching, rcRefcount, rcDestroyed );
-        }
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KVectorRelease ( const KVector *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "KVector" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-        case krefZero:
-            return KVectorWhack ( ( KVector* ) self );
-        default:
-            return RC ( rcCont, rcVector, rcReleasing, rcRefcount, rcDestroyed );
-        }
-    }
-    return 0;
-}
-
-
-/* NancyError
- *  translate a JError_t to an rc_t
- */
-static
-rc_t NancyError ( const JError_t *err, enum RCContext ctx )
-{
-    switch ( JU_ERRNO ( err ) )
-    {
-    case JU_ERRNO_NONE:
-        break;
-    case JU_ERRNO_FULL:
-        return RC ( rcCont, rcVector, ctx, rcRange, rcExcessive );
-    case JU_ERRNO_NOMEM:
-        return RC ( rcCont, rcVector, ctx, rcMemory, rcExhausted );
-    case JU_ERRNO_NULLPPARRAY:
-    case JU_ERRNO_NULLPINDEX:
-        return RC ( rcCont, rcVector, ctx, rcParam, rcNull );
-    case JU_ERRNO_NOTJUDY1:
-    case JU_ERRNO_NOTJUDYL:
-    case JU_ERRNO_NOTJUDYSL:
-        return RC ( rcCont, rcVector, ctx, rcType, rcIncorrect );
-    case JU_ERRNO_OVERRUN:
-    case JU_ERRNO_CORRUPT:
-        return RC ( rcCont, rcVector, ctx, rcVector, rcCorrupt );
-    case JU_ERRNO_NONNULLPARRAY:
-    case JU_ERRNO_NULLPVALUE:
-    case JU_ERRNO_UNSORTED:
-        return RC ( rcCont, rcVector, ctx, rcParam, rcInvalid );
-    }
-
-    return 0;
-}
-
-
-/* Get
- *  get an untyped value
- *  returns rc_t state of rcNull if index is not set
- *
- *  "key" [ IN ] - vector index
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for value
- *
- *  "bytes" [ OUT ] - return parameter for bytes in value
- *
- * NB - if rc_t state is rcInsufficient, "bytes" will contain
- *  the number of bytes required to access the indexed value
- */
-static
-rc_t Nancy1Test ( const void *nancy, uint64_t idx, bool *value )
-{
-    JError_t err;
-    int data = Judy1Test ( nancy, ( Word_t ) idx, & err );
-    if ( data == JERR )
-        return NancyError ( & err, rcAccessing );
-    * value = data != 0;
-    return 0;
-}
-
-static
-rc_t NancyLGet ( const void *nancy, uint64_t idx, Word_t *value )
-{
-    JError_t err;
-    PPvoid_t datap = JudyLGet ( nancy, ( Word_t ) idx, & err );
-    if ( datap == NULL )
-        return RC ( rcCont, rcVector, rcAccessing, rcItem, rcNotFound );
-    if ( datap == PPJERR )
-        return NancyError ( & err, rcAccessing );
-
-    * value = * ( const Word_t* ) datap;
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KVectorGet ( const KVector *self, uint64_t key,
-    void *buffer, size_t bsize, size_t *bytes )
-{
-    rc_t rc;
-
-    if ( bytes == NULL )
-        rc = RC ( rcCont, rcVector, rcAccessing, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcCont, rcVector, rcAccessing, rcSelf, rcNull );
-        else if ( buffer == NULL && bsize != 0 )
-            rc = RC ( rcCont, rcVector, rcAccessing, rcParam, rcNull );
-        else if ( sizeof key > sizeof ( Word_t ) && ( key >> 32 ) != 0 )
-            rc = RC ( rcCont, rcVector, rcAccessing, rcRange, rcExcessive );
-        else
-        {
-            if ( self -> nancy_bool )
-            {
-                bool data;
-                rc = Nancy1Test ( self -> nancy, key, & data );
-                if ( rc == 0 )
-                {
-                    * bytes = sizeof data;
-                    if ( bsize < sizeof data )
-                        rc = RC ( rcCont, rcVector, rcAccessing, rcBuffer, rcInsufficient );
-                    else
-                        * ( bool* ) buffer = data;
-                    return rc;
-                }
-            }
-            else
-            {
-                Word_t data;
-                rc = NancyLGet ( self -> nancy, key, & data );
-                if ( rc == 0 )
-                {
-                    if ( self -> fixed_size == 0 )
-                        rc = RC ( rcCont, rcVector, rcAccessing, rcFunction, rcUnsupported );
-                    else
-                    {
-                        * bytes = self -> fixed_size;
-                        if ( bsize < self -> fixed_size )
-                            rc = RC ( rcCont, rcVector, rcAccessing, rcBuffer, rcInsufficient );
-                        else switch ( self -> fixed_size )
-                        {
-                        case 1:
-                            if ( data >= 0x100 )
-                                rc = RC ( rcCont, rcVector, rcAccessing, rcData, rcCorrupt );
-                            * ( uint8_t* ) buffer = ( uint8_t ) data;
-                            break;
-                        case 2:
-                            if ( data >= 0x10000 )
-                                rc = RC ( rcCont, rcVector, rcAccessing, rcData, rcCorrupt );
-                            * ( uint16_t* ) buffer = ( uint16_t ) data;
-                            break;
-                        case 4:
-                            if ( sizeof data > 4 && ( data >> 32 ) != 0 )
-                                rc = RC ( rcCont, rcVector, rcAccessing, rcData, rcCorrupt );
-                            * ( uint32_t* ) buffer = ( uint32_t ) data;
-                            break;
-                        case 8:
-                            * ( uint64_t* ) buffer = ( uint64_t ) data;
-                            break;
-                        default:
-                            rc = RC ( rcCont, rcVector, rcAccessing, rcType, rcUnsupported );
-                        }
-                        return rc;
-                    }
-                }
-            }
-        }
-
-        * bytes = 0;
-    }
-
-    return rc;
-}
-
-/* Get
- *  get typed values
- *  returns rc_t state of rcNull if index is not set
- *
- *  "key" [ IN ] - vector index
- *
- *  "data" [ OUT ] - return parameter for value
- */
-LIB_EXPORT rc_t CC KVectorGetBool ( const KVector *self, uint64_t key, bool *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetI8 ( const KVector *self, uint64_t key, int8_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetI16 ( const KVector *self, uint64_t key, int16_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetI32 ( const KVector *self, uint64_t key, int32_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetI64 ( const KVector *self, uint64_t key, int64_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetU8 ( const KVector *self, uint64_t key, uint8_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetU16 ( const KVector *self, uint64_t key, uint16_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetU32 ( const KVector *self, uint64_t key, uint32_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetU64 ( const KVector *self, uint64_t key, uint64_t *data )
-{
-    size_t bytes;
-    return KVectorGet ( self, key, data, sizeof * data, & bytes );
-}
-
-LIB_EXPORT rc_t CC KVectorGetF32 ( const KVector *self, uint64_t key, float *data )
-{
-    size_t bytes;
-    rc_t rc = KVectorGet ( self, key, data, sizeof * data, & bytes );
-    if ( rc == 0 && bytes != sizeof * data )
-        rc = RC ( rcCont, rcVector, rcAccessing, rcType, rcUnsupported );
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KVectorGetF64 ( const KVector *self, uint64_t key, double *data )
-{
-    size_t bytes;
-    rc_t rc = KVectorGet ( self, key, data, sizeof * data, & bytes );
-    if ( rc == 0 && bytes != sizeof * data )
-        rc = RC ( rcCont, rcVector, rcAccessing, rcType, rcUnsupported );
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KVectorGetPtr ( const KVector *self, uint64_t key, void **data )
-{
-    size_t bytes;
-    rc_t rc = KVectorGet ( self, key, data, sizeof * data, & bytes );
-    if ( rc == 0 && bytes != sizeof * data )
-        rc = RC ( rcCont, rcVector, rcAccessing, rcType, rcUnsupported );
-    return rc;
-}
-
-
-/* Set
- *  set an untyped value
- *
- *  "key" [ IN ] - vector index
- *
- *  "data" [ IN ] and "bytes" [ IN ] - value buffer
- */
-static
-rc_t Nancy1Set ( void **nancy, uint64_t idx, bool value )
-{
-    JError_t err;
-    int status = ( value ? Judy1Set : Judy1Unset ) ( nancy, ( Word_t ) idx, & err );
-    if ( status == JERR )
-        return NancyError ( & err, rcWriting );
-    return 0;
-}
-
-static
-rc_t NancyLSet ( void **nancy, uint64_t idx, Word_t value )
-{
-    JError_t err;
-    PPvoid_t datap = JudyLIns ( nancy, ( Word_t ) idx, & err );
-    if ( datap == NULL )
-        return RC ( rcCont, rcVector, rcWriting, rcMemory, rcExhausted );
-    if ( datap == PPJERR )
-        return NancyError ( & err, rcWriting );
-    * ( Word_t* ) datap = value;
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KVectorSet ( KVector *self, uint64_t key,
-    const void *data, size_t bytes )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcCont, rcVector, rcWriting, rcSelf, rcNull );
-    else if ( data == NULL )
-        rc = RC ( rcCont, rcVector, rcWriting, rcParam, rcNull );
-    else if ( bytes == 0 )
-        rc = RC ( rcCont, rcVector, rcWriting, rcParam, rcEmpty );
-    else
-    {
-        Word_t value;
-
-        /* detect first set */
-        if ( self -> nancy == NULL )
-        {
-            switch ( bytes )
-            {
-            case 1:
-            case 2:
-            case 4:
-                break;
-            case 8:
-                if ( sizeof value < 8 )
-                    return RC ( rcCont, rcVector, rcWriting, rcParam, rcExcessive );
-            }
-
-            self -> fixed_size = ( uint32_t ) bytes;
-        }
-        else if ( bytes != ( size_t ) self -> fixed_size )
-        {
-            return RC ( rcCont, rcVector, rcWriting, rcParam, rcInconsistent );
-        }
-        else if ( self -> nancy_bool )
-        {
-            switch ( * ( const bool* ) data )
-            {
-            case 0:
-            case 1:
-                break;
-            default:
-                return RC ( rcCont, rcVector, rcWriting, rcParam, rcInvalid );
-            }
-            return Nancy1Set ( & self -> nancy, key, * ( const bool* ) data );
-        }
-
-        switch ( bytes )
-        {
-        case 1:
-            value = * ( const uint8_t* ) data;
-            break;
-        case 2:
-            value = * ( const uint16_t* ) data;
-            break;
-        case 4:
-            value = * ( const uint32_t* ) data;
-            break;
-        case 8:
-            value = * ( const uint64_t* ) data;
-            break;
-        }
-
-        rc = NancyLSet ( & self -> nancy, key, value );
-    }
-
-    return rc;
-}
-
-/* Set
- *  set typed values
- *
- *  "key" [ IN ] - vector index
- *
- *  "data" [ IN ] - value
- */
-LIB_EXPORT rc_t CC KVectorSetBool ( KVector *self, uint64_t key, bool data )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcCont, rcVector, rcWriting, rcSelf, rcNull );
-    else
-    {
-        /* detect first set */
-        if ( self -> nancy == NULL )
-        {
-            self -> fixed_size = sizeof data;
-            self -> nancy_bool = true;
-        }
-        else if ( ! self -> nancy_bool )
-        {
-            return RC ( rcCont, rcVector, rcWriting, rcParam, rcInvalid );
-        }
-
-        rc = Nancy1Set ( & self -> nancy, key, data );
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KVectorSetI8 ( KVector *self, uint64_t key, int8_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetI16 ( KVector *self, uint64_t key, int16_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetI32 ( KVector *self, uint64_t key, int32_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetI64 ( KVector *self, uint64_t key, int64_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetU8 ( KVector *self, uint64_t key, uint8_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetU16 ( KVector *self, uint64_t key, uint16_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetU32 ( KVector *self, uint64_t key, uint32_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetU64 ( KVector *self, uint64_t key, uint64_t value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetF32 ( KVector *self, uint64_t key, float value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetF64 ( KVector *self, uint64_t key, double value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-LIB_EXPORT rc_t CC KVectorSetPtr ( KVector *self, uint64_t key, const void *value )
-{
-    return KVectorSet ( self, key, & value, sizeof value );
-}
-
-
-/* Unset
- *  unset an entry
- *  returns rc_t state rcNull if index is not set
- *
- *  "key" [ IN ] - vector index
- */
-LIB_EXPORT rc_t CC KVectorUnset ( KVector *self, uint64_t key )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcCont, rcVector, rcRemoving, rcSelf, rcNull );
-    else
-    {
-        int status;
-        JError_t err;
-
-        if ( self -> nancy_bool )
-            return Nancy1Set ( & self -> nancy, key, false );
-
-        status = JudyLDel ( & self -> nancy, key, & err );
-        if ( status == JERR )
-            return NancyError ( & err, rcRemoving );
-
-        rc = 0;
-    }
-
-    return rc;
-}
-
-
-/* Visit
- *  executes a function on each key/value pair
- *  returns early if "f" returns non-zero rc_t
- *
- *  "reverse" [ IN ] - if true, execute in reverse order
- *
- *  "f" [ IN ] and "user_data" [ IN, OPAQUE ] - function to be
- *  executed on each vector element or until the function
- *  returns true.
- */
-LIB_EXPORT rc_t CC KVectorVisit ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, const void *value, size_t bytes, void *user_data ),
-    void *user_data )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcCont, rcVector, rcVisiting, rcSelf, rcNull );
-    else if ( f == NULL )
-        rc = RC ( rcCont, rcVector, rcVisiting, rcFunction, rcNull );
-    else
-    {
-        rc = 0;
-
-        if ( self -> nancy != NULL )
-        {
-            JError_t err;
-            Word_t first, last, idx;
-
-	    /** Judy1First searches for first value higher then first**/ 
-            first = 0;
-	    /** Judy1Last searches for first value lower then last **/
-            last = (Word_t)-1;
-
-            if ( self -> nancy_bool )
-            {
-                bool value = true;
-                int status = Judy1First ( self -> nancy, & first, & err );
-                if ( status != JERR )
-                    status = Judy1Last ( self -> nancy, & last, & err );
-                if ( status == JERR )
-                    rc = NancyError ( & err, rcVisiting );
-                else if ( reverse )
-                {
-                    for ( idx = last; ; )
-                    {
-                        rc = ( * f ) ( idx, & value, sizeof value, user_data );
-                        if ( rc != 0 )
-                            break;
-                        if ( idx == first )
-                            break;
-                        status = Judy1Prev ( self -> nancy, & idx, & err );
-                        if ( status == JERR )
-                        {
-                            rc = NancyError ( & err, rcVisiting );
-                            break;
-                        }
-                    }
-                }
-                else
-                {
-                    for ( idx = first; ; )
-                    {
-                        rc = ( * f ) ( idx, & value, sizeof value, user_data );
-                        if ( rc != 0 )
-                            break;
-                        if ( idx == last )
-                            break;
-                        status = Judy1Next ( self -> nancy, & idx, & err );
-                        if ( status == JERR )
-                        {
-                            rc = NancyError ( & err, rcVisiting );
-                            break;
-                        }
-                    }
-                }
-            }
-            else
-            {
-                Word_t value;
-                PPvoid_t lastp, datap = JudyLFirst ( self -> nancy, & first, & err );
-                if ( datap != PPJERR )
-                    lastp = JudyLLast ( self -> nancy, & last, & err );
-                if ( datap == PPJERR || lastp == PPJERR )
-                    rc = NancyError ( & err, rcVisiting );
-                else if ( reverse )
-                {
-                    for ( rc = 0, idx = last, datap = lastp; ; )
-                    {
-                        if ( datap == NULL )
-                            break;
-                        value = * ( const Word_t* ) datap;
-                        rc = ( * f ) ( idx, & value, sizeof value, user_data );
-                        if ( rc != 0 )
-                            break;
-                        if ( idx == first )
-                            break;
-                        datap = JudyLPrev ( self -> nancy, & idx, & err );
-                        if ( datap == PPJERR )
-                        {
-                            rc = NancyError ( & err, rcVisiting );
-                            break;
-                        }
-                    }
-                }
-                else
-                {
-                    for ( rc = 0, idx = first; ; )
-                    {
-                        if ( datap == NULL )
-                            break;
-                        value = * ( const Word_t* ) datap;
-                        rc = ( * f ) ( idx, & value, sizeof value, user_data );
-                        if ( rc != 0 )
-                            break;
-                        if ( idx == last )
-                            break;
-                        datap = JudyLNext ( self -> nancy, & idx, & err );
-                        if ( datap == PPJERR )
-                        {
-                            rc = NancyError ( & err, rcVisiting );
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    return rc;
-}
-
-/* Visit
- *  visit typed values
- *  returns early if "f" returns non-zero rc_t
- *
- *  "reverse" [ IN ] - if true, execute in reverse order
- *
- *  "f" [ IN ] and "user_data" [ IN, OPAQUE ] - function to be
- *  executed on each vector element or until the function
- *  returns true.
- */
-typedef struct KVectorVisitTypedData KVectorVisitTypedData;
-struct KVectorVisitTypedData
-{
-    union
-    {
-        rc_t ( CC * b ) ( uint64_t key, bool value, void *user_data );
-        rc_t ( CC * i ) ( uint64_t key, int64_t value, void *user_data );
-        rc_t ( CC * u ) ( uint64_t key, uint64_t value, void *user_data );
-        rc_t ( CC * f ) ( uint64_t key, double value, void *user_data );
-        rc_t ( CC * p ) ( uint64_t key, const void *value, void *user_data );
-    } f;
-    void *user_data;
-};
-
-static
-rc_t CC KVectorVisitBoolFunc ( uint64_t key, const void *ptr, size_t bytes, void *user_data )
-{
-    rc_t rc;
-    bool value;
-    if ( bytes != sizeof value )
-        rc = RC ( rcCont, rcVector, rcVisiting, rcType, rcInvalid );
-    else if ( * ( const uint8_t* ) ptr > 1 )
-        rc = RC ( rcCont, rcVector, rcVisiting, rcData, rcInvalid );
-    else
-    {
-        KVectorVisitTypedData *pb = user_data;
-        rc = ( * pb -> f . b ) ( key,  * ( const bool* ) ptr, pb -> user_data );
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KVectorVisitBool ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, bool value, void *user_data ),
-    void *user_data )
-{
-    KVectorVisitTypedData pb;
-    pb . f . b = f;
-    pb . user_data = user_data;
-
-    return KVectorVisit ( self, reverse, KVectorVisitBoolFunc, & pb );
-}
-
-static
-rc_t CC KVectorVisitI64Func ( uint64_t key, const void *ptr, size_t bytes, void *user_data )
-{
-    int64_t value;
-    KVectorVisitTypedData *pb = user_data;
-
-    switch ( bytes )
-    {
-    case 1:
-        value = ( int8_t ) * ( const Word_t* ) ptr;
-        break;
-    case 2:
-        value = ( int16_t ) * ( const Word_t* ) ptr;
-        break;
-    case 4:
-        value = ( int32_t ) * ( const Word_t* ) ptr;
-        break;
-    default:
-        value = ( int64_t ) * ( const Word_t* ) ptr;
-    }
-
-    return ( * pb -> f . i ) ( key, value, pb -> user_data );
-}
-
-LIB_EXPORT rc_t CC KVectorVisitI64 ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, int64_t value, void *user_data ),
-    void *user_data )
-{
-    KVectorVisitTypedData pb;
-    pb . f . i = f;
-    pb . user_data = user_data;
-
-    return KVectorVisit ( self, reverse, KVectorVisitI64Func, & pb );
-}
-
-static
-rc_t CC KVectorVisitU64Func ( uint64_t key, const void *ptr, size_t bytes, void *user_data )
-{
-    KVectorVisitTypedData *pb = user_data;
-    return ( * pb -> f . u ) ( key, * ( const Word_t* ) ptr, pb -> user_data );
-}
-
-LIB_EXPORT rc_t CC KVectorVisitU64 ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, uint64_t value, void *user_data ),
-    void *user_data )
-{
-    KVectorVisitTypedData pb;
-    pb . f . u = f;
-    pb . user_data = user_data;
-
-    return KVectorVisit ( self, reverse, KVectorVisitU64Func, & pb );
-}
-
-static
-rc_t CC KVectorVisitF64Func ( uint64_t key, const void *ptr, size_t bytes, void *user_data )
-{
-    uint32_t u32;
-    double value;
-    KVectorVisitTypedData *pb = user_data;
-
-    switch ( bytes )
-    {
-    case 4:
-        u32 = ( uint32_t ) * ( const Word_t* ) ptr;
-        value = * ( const float* ) & u32;
-        break;
-    default:
-        value = * ( const double* ) ptr;
-    }
-
-    return ( * pb -> f . f ) ( key, value, pb -> user_data );
-}
-
-LIB_EXPORT rc_t CC KVectorVisitF64 ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, double value, void *user_data ),
-    void *user_data )
-{
-    KVectorVisitTypedData pb;
-    pb . f . f = f;
-    pb . user_data = user_data;
-
-    return KVectorVisit ( self, reverse, KVectorVisitF64Func, & pb );
-}
-
-static
-rc_t CC KVectorVisitPtrFunc ( uint64_t key, const void *ptr, size_t bytes, void *user_data )
-{
-    KVectorVisitTypedData *pb = user_data;
-    return ( * pb -> f . p ) ( key, * ( const void** ) ptr, pb -> user_data );
-}
-
-LIB_EXPORT rc_t CC KVectorVisitPtr ( const KVector *self, bool reverse,
-    rc_t ( CC * f ) ( uint64_t key, const void *value, void *user_data ),
-    void *user_data )
-{
-    KVectorVisitTypedData pb;
-    pb . f . p = f;
-    pb . user_data = user_data;
-
-    return KVectorVisit ( self, reverse, KVectorVisitPtrFunc, & pb );
-}
diff --git a/libs/klib/judy/Judy1.h b/libs/klib/judy/Judy1.h
deleted file mode 100644
index 5eeb6fd..0000000
--- a/libs/klib/judy/Judy1.h
+++ /dev/null
@@ -1,549 +0,0 @@
-#ifndef _JUDY1_INCLUDED
-#define _JUDY1_INCLUDED
-// _________________
-//
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// ****************************************************************************
-//          JUDY1 -- SMALL/LARGE AND/OR CLUSTERED/SPARSE BIT ARRAYS
-//
-//                                    -by-
-//
-//                             Douglas L. Baskins
-//                             doug at sourcejudy.com
-//
-// Judy arrays are designed to be used instead of arrays.  The performance
-// suggests the reason why Judy arrays are thought of as arrays, instead of
-// trees.  They are remarkably memory efficient at all populations.
-// Implemented as a hybrid digital tree (but really a state machine, see
-// below), Judy arrays feature fast insert/retrievals, fast near neighbor
-// searching, and contain a population tree for extremely fast ordinal related
-// retrievals.
-//
-// CONVENTIONS:
-//
-// - The comments here refer to 32-bit [64-bit] systems.
-//
-// - BranchL, LeafL refer to linear branches and leaves (small populations),
-//   except LeafL does not actually appear as such; rather, Leaf1..3 [Leaf1..7]
-//   is used to represent leaf Index sizes, and LeafW refers to a Leaf with
-//   full (long) word Indexes, which is also a type of linear leaf.  Note that
-//   root-level LeafW (Leaf4 [Leaf8]) leaves are also called LEAFW.
-//
-// - BranchB, LeafB1 refer to bitmap branches and leaves (intermediate
-//   populations).
-//
-// - BranchU refers to uncompressed branches.  An uncompressed branch has 256
-//   JPs, some of which could be null.  Note:  All leaves are compressed (and
-//   sorted), or else an expanse is full (FullPopu), so there is no LeafU
-//   equivalent to BranchU.
-//
-// - "Popu" is short for "Population".
-// - "Pop1" refers to actual population (base 1).
-// - "Pop0" refers to Pop1 - 1 (base 0), the way populations are stored in data
-//   structures.
-//
-// - Branches and Leaves are both named by the number of bytes in their Pop0
-//   field.  In the case of Leaves, the same number applies to the Index sizes.
-//
-// - The representation of many numbers as hex is a relatively safe and
-//   portable way to get desired bitpatterns as unsigned longs.
-//
-// - Some preprocessors cant handle single apostrophe characters within
-//   #ifndef code, so here, use delete all instead.
-
-#include "JudyPrivate.h"        // includes Judy.h in turn.
-#include "JudyPrivateBranch.h"
-
-
-// ****************************************************************************
-// JUDY1 ROOT POINTER (JRP) AND JUDY1 POINTER (JP) TYPE FIELDS
-// ****************************************************************************
-//
-// The following enum lists all possible JP Type fields. 
-
-typedef enum            // uint8_t -- but C does not support this type of enum.
-{
-
-// JP NULL TYPES:
-//
-// There is a series of cJ1_JPNULL* Types because each one pre-records a
-// different Index Size for when the first Index is inserted in the previously
-// null JP.  They must start >= 8 (three bits).
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJ1_JPNULL1 = 1,
-                                // Index Size 1[1] byte  when 1 Index inserted.
-        cJ1_JPNULL2,            // Index Size 2[2] bytes when 1 Index inserted.
-        cJ1_JPNULL3,            // Index Size 3[3] bytes when 1 Index inserted.
-
-#ifndef JU_64BIT
-#define cJ1_JPNULLMAX cJ1_JPNULL3
-#else
-        cJ1_JPNULL4,            // Index Size 4[4] bytes when 1 Index inserted.
-        cJ1_JPNULL5,            // Index Size 5[5] bytes when 1 Index inserted.
-        cJ1_JPNULL6,            // Index Size 6[6] bytes when 1 Index inserted.
-        cJ1_JPNULL7,            // Index Size 7[7] bytes when 1 Index inserted.
-#define cJ1_JPNULLMAX cJ1_JPNULL7
-#endif
-
-
-// JP BRANCH TYPES:
-//
-// Note:  There are no state-1 branches; only leaves reside at state 1.
-
-// Linear branches:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJ1_JPBRANCH_L2,        // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJ1_JPBRANCH_L3,        // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJ1_JPBRANCH_L4,        //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJ1_JPBRANCH_L5,        //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJ1_JPBRANCH_L6,        //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJ1_JPBRANCH_L7,        //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-        cJ1_JPBRANCH_L,         // note:  DcdPopO field not used.
-
-// Bitmap branches:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJ1_JPBRANCH_B2,        // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJ1_JPBRANCH_B3,        // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJ1_JPBRANCH_B4,        //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJ1_JPBRANCH_B5,        //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJ1_JPBRANCH_B6,        //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJ1_JPBRANCH_B7,        //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-        cJ1_JPBRANCH_B,         // note:  DcdPopO field not used.
-
-// Uncompressed branches:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJ1_JPBRANCH_U2,        // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJ1_JPBRANCH_U3,        // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJ1_JPBRANCH_U4,        //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJ1_JPBRANCH_U5,        //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJ1_JPBRANCH_U6,        //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJ1_JPBRANCH_U7,        //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-        cJ1_JPBRANCH_U,         // note:  DcdPopO field not used.
-
-
-// JP LEAF TYPES:
-
-// Linear leaves:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-//
-// Note:  There is no cJ1_JPLEAF1 for 64-bit for a subtle reason.  An immediate
-// JP can hold 15 1-byte Indexes, and a bitmap leaf would be used for 17
-// Indexes, so rather than support a linear leaf for only the case of exactly
-// 16 Indexes, a bitmap leaf is used in that case.  See also below regarding
-// cJ1_LEAF1_MAXPOP1 on 64-bit systems.
-//
-// Note:  There is no full-word (4-byte [8-byte]) Index leaf under a JP because
-// non-root-state leaves only occur under branches that decode at least one
-// byte.  Full-word, root-state leaves are under a JRP, not a JP.  However, in
-// the code a "fake" JP can be created temporarily above a root-state leaf.
-
-#ifndef JU_64BIT // 32-bit only; see above.
-        cJ1_JPLEAF1,            // 1    byte  Pop0, 2    bytes Dcd.
-#endif
-
-        cJ1_JPLEAF2,            // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJ1_JPLEAF3,            // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJ1_JPLEAF4,            //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJ1_JPLEAF5,            //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJ1_JPLEAF6,            //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJ1_JPLEAF7,            //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-// Bitmap leaf; Index Size == 1:
-//
-// Note:  These are currently only supported at state 1.  At other states the
-// bitmap would grow from 256 to 256^2, 256^3, ... bits, which would not be
-// efficient..
-
-        cJ1_JPLEAF_B1,          // 1[1] byte Pop0, 2[6] bytes Dcd.
-
-
-// Full population; Index Size == 1 virtual leaf:
-//
-// Note:  These are currently only supported at state 1.  At other states they
-// could be used, but they would be rare and the savings are dubious.
-
-        cJ1_JPFULLPOPU1,        // 1[1] byte Pop0, 2[6] bytes Dcd.
-
-#ifdef notdef  // for future enhancements
-        cJ1_JPFULLPOPU1m1,      // Full Population - 1 
-        cJ1_JPFULLPOPU1m2,      // Full Population - 2 
-        cJ1_JPFULLPOPU1m3,      // Full Population - 3 
-        cJ1_JPFULLPOPU1m4,      // Full Population - 4 
-        cJ1_JPFULLPOPU1m5,      // Full Population - 5 
-        cJ1_JPFULLPOPU1m6,      // Full Population - 6 
-        cJ1_JPFULLPOPU1m7,      // Full Population - 7 
-
-#ifdef JU_64BIT
-        cJ1_JPFULLPOPU1m8,      // Full Population - 8 
-        cJ1_JPFULLPOPU1m9,      // Full Population - 9 
-        cJ1_JPFULLPOPU1m10,     // Full Population - 10 
-        cJ1_JPFULLPOPU1m11,     // Full Population - 11
-        cJ1_JPFULLPOPU1m12,     // Full Population - 12
-        cJ1_JPFULLPOPU1m13,     // Full Population - 13
-        cJ1_JPFULLPOPU1m14,     // Full Population - 14
-        cJ1_JPFULLPOPU1m15,     // Full Population - 15
-#endif
-#endif // notdef -- for future enhancements
-
-
-// JP IMMEDIATES; leaves (Indexes) stored inside a JP:
-//
-// The second numeric suffix is the Pop1 for each type.  As the Index Size
-// increases, the maximum possible population decreases.
-//
-// Note:  These Types must be in sequential order in each group (Index Size),
-// and the groups in correct order too, for doing relative calculations between
-// them.  For example, since these Types enumerate the Pop1 values (unlike
-// other JP Types where there is a Pop0 value in the JP), the maximum Pop1 for
-// each Index Size is computable.
-
-        cJ1_JPIMMED_1_01,       // Index Size = 1, Pop1 = 1.
-        cJ1_JPIMMED_2_01,       // Index Size = 2, Pop1 = 1.
-        cJ1_JPIMMED_3_01,       // Index Size = 3, Pop1 = 1.
-#ifdef JU_64BIT
-        cJ1_JPIMMED_4_01,       // Index Size = 4, Pop1 = 1.
-        cJ1_JPIMMED_5_01,       // Index Size = 5, Pop1 = 1.
-        cJ1_JPIMMED_6_01,       // Index Size = 6, Pop1 = 1.
-        cJ1_JPIMMED_7_01,       // Index Size = 7, Pop1 = 1.
-#endif
-
-        cJ1_JPIMMED_1_02,       // Index Size = 1, Pop1 = 2.
-        cJ1_JPIMMED_1_03,       // Index Size = 1, Pop1 = 3.
-        cJ1_JPIMMED_1_04,       // Index Size = 1, Pop1 = 4.
-        cJ1_JPIMMED_1_05,       // Index Size = 1, Pop1 = 5.
-        cJ1_JPIMMED_1_06,       // Index Size = 1, Pop1 = 6.
-        cJ1_JPIMMED_1_07,       // Index Size = 1, Pop1 = 7.
-
-#ifdef JU_64BIT
-        cJ1_JPIMMED_1_08,       // Index Size = 1, Pop1 = 8.
-        cJ1_JPIMMED_1_09,       // Index Size = 1, Pop1 = 9.
-        cJ1_JPIMMED_1_10,       // Index Size = 1, Pop1 = 10.
-        cJ1_JPIMMED_1_11,       // Index Size = 1, Pop1 = 11.
-        cJ1_JPIMMED_1_12,       // Index Size = 1, Pop1 = 12.
-        cJ1_JPIMMED_1_13,       // Index Size = 1, Pop1 = 13.
-        cJ1_JPIMMED_1_14,       // Index Size = 1, Pop1 = 14.
-        cJ1_JPIMMED_1_15,       // Index Size = 1, Pop1 = 15.
-#endif
-
-        cJ1_JPIMMED_2_02,       // Index Size = 2, Pop1 = 2.
-        cJ1_JPIMMED_2_03,       // Index Size = 2, Pop1 = 3.
-
-#ifdef JU_64BIT
-        cJ1_JPIMMED_2_04,       // Index Size = 2, Pop1 = 4.
-        cJ1_JPIMMED_2_05,       // Index Size = 2, Pop1 = 5.
-        cJ1_JPIMMED_2_06,       // Index Size = 2, Pop1 = 6.
-        cJ1_JPIMMED_2_07,       // Index Size = 2, Pop1 = 7.
-#endif
-
-        cJ1_JPIMMED_3_02,       // Index Size = 3, Pop1 = 2.
-
-#ifdef JU_64BIT
-        cJ1_JPIMMED_3_03,       // Index Size = 3, Pop1 = 3.
-        cJ1_JPIMMED_3_04,       // Index Size = 3, Pop1 = 4.
-        cJ1_JPIMMED_3_05,       // Index Size = 3, Pop1 = 5.
-
-        cJ1_JPIMMED_4_02,       // Index Size = 4, Pop1 = 2.
-        cJ1_JPIMMED_4_03,       // Index Size = 4, Pop1 = 3.
-
-        cJ1_JPIMMED_5_02,       // Index Size = 5, Pop1 = 2.
-        cJ1_JPIMMED_5_03,       // Index Size = 3, Pop1 = 3.
-
-        cJ1_JPIMMED_6_02,       // Index Size = 6, Pop1 = 2.
-
-        cJ1_JPIMMED_7_02,       // Index Size = 7, Pop1 = 2.
-#endif
-
-// This special Type is merely a sentinel for doing relative calculations.
-// This value should not be used in switch statements (to avoid allocating code
-// for it), which is also why it appears at the end of the enum list.
-
-        cJ1_JPIMMED_CAP
-
-} jp1_Type_t;
-
-
-// RELATED VALUES:
-//
-// Index Size (state) for leaf JP, and JP type based on Index Size (state):
-
-#ifndef JU_64BIT // 32-bit
-#define J1_LEAFINDEXSIZE(jpType) ((jpType)    - cJ1_JPLEAF1 + 1)
-#define J1_LEAFTYPE(IndexSize)   ((IndexSize) + cJ1_JPLEAF1 - 1)
-#else
-#define J1_LEAFINDEXSIZE(jpType) ((jpType)    - cJ1_JPLEAF2 + 2)
-#define J1_LEAFTYPE(IndexSize)   ((IndexSize) + cJ1_JPLEAF2 - 2)
-#endif
-
-
-// ****************************************************************************
-// JUDY1 POINTER (JP) -- RELATED MACROS AND CONSTANTS
-// ****************************************************************************
-
-// MAXIMUM POPULATIONS OF LINEAR LEAVES:
-//
-// Allow up to 2 cache lines per leaf, with N bytes per index.
-//
-// J_1_MAXB is the maximum number of bytes (sort of) to allocate per leaf.
-// ALLOCSIZES is defined here, not there, for single-point control of these key
-// definitions.  See JudyTables.c for "TERMINATOR".
-
-#define J_1_MAXB   (sizeof(Word_t) * 32)
-#define ALLOCSIZES { 3, 5, 7, 11, 15, 23, 32, 47, 64, TERMINATOR } // in words.
-#define cJ1_LEAF1_MAXWORDS  5           // Leaf1 max alloc size in words.
-
-// Under JRP (root-state leaves):
-//
-// Includes a count (Population) word.
-//
-// Under JP (non-root-state leaves), which have no count (Population) words:
-//
-// When a 1-byte index leaf grows above cJ1_LEAF1_MAXPOP1 Indexes (bytes),
-// the memory chunk required grows to a size where a bitmap is just as
-// efficient, so use a bitmap instead for all greater Populations, on both
-// 32-bit and 64-bit systems.  However, on a 32-bit system this occurs upon
-// going from 6 to 8 words (24 to 32 bytes) in the memory chunk, but on a
-// 64-bit system this occurs upon going from 2 to 4 words (16 to 32 bytes).  It
-// would be silly to go from a 15-Index Immediate JP to a 16-Index linear leaf
-// to a 17-Index bitmap leaf, so just use a bitmap leaf for 16+ Indexes, which
-// means set cJ1_LEAF1_MAXPOP1 to cJ1_IMMED1_MAXPOP1 (15) to cause the
-// transition at that point.
-//
-// Note:  cJ1_LEAF1_MAXPOP1 is not used on 64-bit systems.
-
-#ifndef JU_64BIT // 32-bit
-
-#define cJ1_LEAF1_MAXPOP1    (cJ1_LEAF1_MAXWORDS * cJU_BYTESPERWORD)
-#define cJ1_LEAF2_MAXPOP1    (J_1_MAXB / 2)
-#define cJ1_LEAF3_MAXPOP1    (J_1_MAXB / 3)
-#define cJ1_LEAFW_MAXPOP1    ((J_1_MAXB - cJU_BYTESPERWORD) / cJU_BYTESPERWORD)
-
-#else // 64-bit
-
-// #define cJ1_LEAF1_MAXPOP1                    // no LEAF1 in 64-bit.
-#define cJ1_LEAF2_MAXPOP1    (J_1_MAXB / 2)
-#define cJ1_LEAF3_MAXPOP1    (J_1_MAXB / 3)
-#define cJ1_LEAF4_MAXPOP1    (J_1_MAXB / 4)
-#define cJ1_LEAF5_MAXPOP1    (J_1_MAXB / 5)
-#define cJ1_LEAF6_MAXPOP1    (J_1_MAXB / 6)
-#define cJ1_LEAF7_MAXPOP1    (J_1_MAXB / 7)
-#define cJ1_LEAFW_MAXPOP1    ((J_1_MAXB - cJU_BYTESPERWORD) / cJU_BYTESPERWORD)
-
-#endif
-
-
-// MAXIMUM POPULATIONS OF IMMEDIATE JPs:
-//
-// These specify the maximum Population of immediate JPs with various Index
-// Sizes (== sizes of remaining undecoded Index bits).
-
-#define cJ1_IMMED1_MAXPOP1  ((sizeof(jp_t) - 1) / 1)    // 7 [15].
-#define cJ1_IMMED2_MAXPOP1  ((sizeof(jp_t) - 1) / 2)    // 3  [7].
-#define cJ1_IMMED3_MAXPOP1  ((sizeof(jp_t) - 1) / 3)    // 2  [5].
-
-#ifdef JU_64BIT
-#define cJ1_IMMED4_MAXPOP1  ((sizeof(jp_t) - 1) / 4)    //    [3].
-#define cJ1_IMMED5_MAXPOP1  ((sizeof(jp_t) - 1) / 5)    //    [3].
-#define cJ1_IMMED6_MAXPOP1  ((sizeof(jp_t) - 1) / 6)    //    [2].
-#define cJ1_IMMED7_MAXPOP1  ((sizeof(jp_t) - 1) / 7)    //    [2].
-#endif
-
-
-// ****************************************************************************
-// JUDY1 BITMAP LEAF (J1LB) SUPPORT
-// ****************************************************************************
-
-#define J1_JLB_BITMAP(Pjlb,Subexp)  ((Pjlb)->j1lb_Bitmap[Subexp])
-
-typedef struct J__UDY1_BITMAP_LEAF
-{
-        BITMAPL_t j1lb_Bitmap[cJU_NUMSUBEXPL];
-
-} j1lb_t, * Pj1lb_t;
-
-
-// ****************************************************************************
-// MEMORY ALLOCATION SUPPORT
-// ****************************************************************************
-
-// ARRAY-GLOBAL INFORMATION:
-//
-// At the cost of an occasional additional cache fill, this object, which is
-// pointed at by a JRP and in turn points to a JP_BRANCH*, carries array-global
-// information about a Judy1 array that has sufficient population to amortize
-// the cost.  The jpm_Pop0 field prevents having to add up the total population
-// for the array in insert, delete, and count code.  The jpm_JP field prevents
-// having to build a fake JP for entry to a state machine; however, the
-// jp_DcdPopO field in jpm_JP, being one byte too small, is not used.
-//
-// Note:  Struct fields are ordered to keep "hot" data in the first 8 words
-// (see left-margin comments) for machines with 8-word cache lines, and to keep
-// sub-word fields together for efficient packing.
-
-typedef struct J_UDY1_POPULATION_AND_MEMORY
-{
-/* 1 */ Word_t     jpm_Pop0;            // total population-1 in array.
-/* 2 */ jp_t       jpm_JP;              // JP to first branch; see above.
-/* 4 */ Word_t     jpm_LastUPop0;       // last jpm_Pop0 when convert to BranchU
-// Note:  Field names match PJError_t for convenience in macros:
-/* 7 */ char       je_Errno;            // one of the enums in Judy.h.
-/* 7/8 */ int      je_ErrID;            // often an internal source line number.
-/* 8/9 */ Word_t   jpm_TotalMemWords;   // words allocated in array.
-} j1pm_t, *Pj1pm_t;
-
-
-// TABLES FOR DETERMINING IF LEAVES HAVE ROOM TO GROW:
-//
-// These tables indicate if a given memory chunk can support growth of a given
-// object into wasted (rounded-up) memory in the chunk.  This violates the
-// hiddenness of the JudyMalloc code.
-//
-// Also define macros to hide the details in the code using these tables.
-
-#ifndef JU_64BIT
-extern const uint8_t j__1_Leaf1PopToWords[cJ1_LEAF1_MAXPOP1 + 1];
-#endif
-extern const uint8_t j__1_Leaf2PopToWords[cJ1_LEAF2_MAXPOP1 + 1];
-extern const uint8_t j__1_Leaf3PopToWords[cJ1_LEAF3_MAXPOP1 + 1];
-#ifdef JU_64BIT
-extern const uint8_t j__1_Leaf4PopToWords[cJ1_LEAF4_MAXPOP1 + 1];
-extern const uint8_t j__1_Leaf5PopToWords[cJ1_LEAF5_MAXPOP1 + 1];
-extern const uint8_t j__1_Leaf6PopToWords[cJ1_LEAF6_MAXPOP1 + 1];
-extern const uint8_t j__1_Leaf7PopToWords[cJ1_LEAF7_MAXPOP1 + 1];
-#endif
-extern const uint8_t j__1_LeafWPopToWords[cJ1_LEAFW_MAXPOP1 + 1];
-
-// Check if increase of population will fit in same leaf:
-
-#ifndef JU_64BIT
-#define J1_LEAF1GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAF1_MAXPOP1, j__1_Leaf1PopToWords)
-#endif
-#define J1_LEAF2GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAF2_MAXPOP1, j__1_Leaf2PopToWords)
-#define J1_LEAF3GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAF3_MAXPOP1, j__1_Leaf3PopToWords)
-#ifdef JU_64BIT
-#define J1_LEAF4GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAF4_MAXPOP1, j__1_Leaf4PopToWords)
-#define J1_LEAF5GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAF5_MAXPOP1, j__1_Leaf5PopToWords)
-#define J1_LEAF6GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAF6_MAXPOP1, j__1_Leaf6PopToWords)
-#define J1_LEAF7GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAF7_MAXPOP1, j__1_Leaf7PopToWords)
-#endif
-#define J1_LEAFWGROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJ1_LEAFW_MAXPOP1, j__1_LeafWPopToWords)
-
-#ifndef JU_64BIT
-#define J1_LEAF1POPTOWORDS(Pop1)  (j__1_Leaf1PopToWords[Pop1])
-#endif
-#define J1_LEAF2POPTOWORDS(Pop1)  (j__1_Leaf2PopToWords[Pop1])
-#define J1_LEAF3POPTOWORDS(Pop1)  (j__1_Leaf3PopToWords[Pop1])
-#ifdef JU_64BIT
-#define J1_LEAF4POPTOWORDS(Pop1)  (j__1_Leaf4PopToWords[Pop1])
-#define J1_LEAF5POPTOWORDS(Pop1)  (j__1_Leaf5PopToWords[Pop1])
-#define J1_LEAF6POPTOWORDS(Pop1)  (j__1_Leaf6PopToWords[Pop1])
-#define J1_LEAF7POPTOWORDS(Pop1)  (j__1_Leaf7PopToWords[Pop1])
-#endif
-#define J1_LEAFWPOPTOWORDS(Pop1)  (j__1_LeafWPopToWords[Pop1])
-
-
-// FUNCTIONS TO ALLOCATE OBJECTS:
-
-Pj1pm_t j__udy1AllocJ1PM(void);                         // constant size.
-
-Pjbl_t  j__udy1AllocJBL(          Pj1pm_t);             // constant size.
-Pjbb_t  j__udy1AllocJBB(          Pj1pm_t);             // constant size.
-Pjp_t   j__udy1AllocJBBJP(Word_t, Pj1pm_t);
-Pjbu_t  j__udy1AllocJBU(          Pj1pm_t);             // constant size.
-
-#ifndef JU_64BIT
-Pjll_t  j__udy1AllocJLL1( Word_t, Pj1pm_t);
-#endif
-Pjll_t  j__udy1AllocJLL2( Word_t, Pj1pm_t);
-Pjll_t  j__udy1AllocJLL3( Word_t, Pj1pm_t);
-
-#ifdef JU_64BIT
-Pjll_t  j__udy1AllocJLL4( Word_t, Pj1pm_t);
-Pjll_t  j__udy1AllocJLL5( Word_t, Pj1pm_t);
-Pjll_t  j__udy1AllocJLL6( Word_t, Pj1pm_t);
-Pjll_t  j__udy1AllocJLL7( Word_t, Pj1pm_t);
-#endif
-
-Pjlw_t  j__udy1AllocJLW(  Word_t         );             // no Pj1pm needed.
-Pj1lb_t j__udy1AllocJLB1(         Pj1pm_t);             // constant size.
-
-
-// FUNCTIONS TO FREE OBJECTS:
-
-void    j__udy1FreeJ1PM( Pj1pm_t,        Pj1pm_t);      // constant size.
-
-void    j__udy1FreeJBL(  Pjbl_t,         Pj1pm_t);      // constant size.
-void    j__udy1FreeJBB(  Pjbb_t,         Pj1pm_t);      // constant size.
-void    j__udy1FreeJBBJP(Pjp_t,  Word_t, Pj1pm_t);
-void    j__udy1FreeJBU(  Pjbu_t,         Pj1pm_t);      // constant size.
-
-#ifndef JU_64BIT
-void    j__udy1FreeJLL1( Pjll_t, Word_t, Pj1pm_t);
-#endif
-void    j__udy1FreeJLL2( Pjll_t, Word_t, Pj1pm_t);
-void    j__udy1FreeJLL3( Pjll_t, Word_t, Pj1pm_t);
-
-#ifdef JU_64BIT
-void    j__udy1FreeJLL4( Pjll_t, Word_t, Pj1pm_t);
-void    j__udy1FreeJLL5( Pjll_t, Word_t, Pj1pm_t);
-void    j__udy1FreeJLL6( Pjll_t, Word_t, Pj1pm_t);
-void    j__udy1FreeJLL7( Pjll_t, Word_t, Pj1pm_t);
-#endif
-
-void    j__udy1FreeJLW(  Pjlw_t, Word_t, Pj1pm_t);
-void    j__udy1FreeJLB1( Pj1lb_t,        Pj1pm_t);      // constant size.
-void    j__udy1FreeSM(   Pjp_t,          Pj1pm_t);      // everything below Pjp.
-
-#endif // ! _JUDY1_INCLUDED
diff --git a/libs/klib/judy/JudyByCount.c b/libs/klib/judy/JudyByCount.c
deleted file mode 100644
index f6efea0..0000000
--- a/libs/klib/judy/JudyByCount.c
+++ /dev/null
@@ -1,952 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy*ByCount() function for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// Compile with -DNOSMARTJBB, -DNOSMARTJBU, and/or -DNOSMARTJLB to build a
-// version with cache line optimizations deleted, for testing.
-//
-// Judy*ByCount() is a conceptual although not literal inverse of Judy*Count().
-// Judy*Count() takes a pair of Indexes, and allows finding the ordinal of a
-// given Index (that is, its position in the list of valid indexes from the
-// beginning) as a degenerate case, because in general the count between two
-// Indexes, inclusive, is not always just the difference in their ordinals.
-// However, it suffices for Judy*ByCount() to simply be an ordinal-to-Index
-// mapper.
-//
-// Note:  Like Judy*Count(), this code must "count sideways" in branches, which
-// can result in a lot of cache line fills.  However, unlike Judy*Count(), this
-// code does not receive a specific Index, hence digit, where to start in each
-// branch, so it cant accurately calculate cache line fills required in each
-// direction.  The best it can do is an approximation based on the total
-// population of the expanse (pop1 from Pjp) and the ordinal of the target
-// Index (see SETOFFSET()) within the expanse.
-//
-// Compile with -DSMARTMETRICS to obtain global variables containing smart
-// cache line metrics.  Note:  Dont turn this on simultaneously for this file
-// and JudyCount.c because they export the same globals.
-// ****************************************************************************
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-// These are imported from JudyCount.c:
-//
-// TBD:  Should this be in common code?  Exported from a header file?
-
-#ifdef JUDY1
-extern	Word_t j__udy1JPPop1(const Pjp_t Pjp);
-#define	j__udyJPPop1 j__udy1JPPop1
-#else
-extern	Word_t j__udyLJPPop1(const Pjp_t Pjp);
-#define	j__udyJPPop1 j__udyLJPPop1
-#endif
-
-// Avoid duplicate symbols since this file is multi-compiled:
-
-#ifdef SMARTMETRICS
-#ifdef JUDY1
-Word_t	jbb_upward   = 0;	// counts of directions taken:
-Word_t	jbb_downward = 0;
-Word_t	jbu_upward   = 0;
-Word_t	jbu_downward = 0;
-Word_t	jlb_upward   = 0;
-Word_t	jlb_downward = 0;
-#else
-extern Word_t jbb_upward;
-extern Word_t jbb_downward;
-extern Word_t jbu_upward;
-extern Word_t jbu_downward;
-extern Word_t jlb_upward;
-extern Word_t jlb_downward;
-#endif
-#endif
-
-
-// ****************************************************************************
-// J U D Y   1   B Y   C O U N T
-// J U D Y   L   B Y   C O U N T
-//
-// See the manual entry.
-
-#ifdef JUDY1
-FUNCTION int Judy1ByCount
-#else
-FUNCTION PPvoid_t JudyLByCount
-#endif
-        (
-	Pcvoid_t  PArray,	// root pointer to first branch/leaf in SM.
-	Word_t	  Count,	// ordinal of Index to find, 1..MAX.
-	Word_t *  PIndex,	// to return found Index.
-	PJError_t PJError	// optional, for returning error info.
-        )
-{
-	Word_t	  Count0;	// Count, base-0, to match pop0.
-	Word_t	  state;	// current state in SM.
-	Word_t	  pop1;		// of current branch or leaf, or of expanse.
-	Word_t	  pop1lower;	// pop1 of expanses (JPs) below that for Count.
-	Word_t	  digit;	// current word in branch.
-	Word_t	  jpcount;	// JPs in a BranchB subexpanse.
-	long	  jpnum;	// JP number in a branch (base 0).
-	long	  subexp;	// for stepping through layer 1 (subexpanses).
-	int	  offset;	// index ordinal within a leaf, base 0.
-
-	Pjp_t	  Pjp;		// current JP in branch.
-	Pjll_t	  Pjll;		// current Judy linear leaf.
-
-
-// CHECK FOR EMPTY ARRAY OR NULL PINDEX:
-
-	if (PArray == (Pvoid_t) NULL) JU_RET_NOTFOUND;
-
-	if (PIndex == (PWord_t) NULL)
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-	}
-
-// Convert Count to Count0; assume special case of Count = 0 maps to ~0, as
-// desired, to represent the last index in a full array:
-//
-// Note:  Think of Count0 as a reliable "number of Indexes below the target."
-
-	Count0 = Count - 1;
-	assert((Count || Count0 == ~0));  // ensure CPU is sane about 0 - 1.
-	pop1lower = 0;
-
-	if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-	{
-	    Pjlw_t Pjlw = P_JLW(PArray);		// first word of leaf.
-
-	    if (Count0 > Pjlw[0]) JU_RET_NOTFOUND;	// too high.
-
-	    *PIndex = Pjlw[Count];			// Index, base 1.
-
-	    JU_RET_FOUND_LEAFW(Pjlw, Pjlw[0] + 1, Count0);
-	}
-	else
-	{
-	    Pjpm_t Pjpm = P_JPM(PArray);
-
-	    if (Count0 > (Pjpm->jpm_Pop0)) JU_RET_NOTFOUND;	// too high.
-
-	    Pjp  = &(Pjpm->jpm_JP);
-	    pop1 =  (Pjpm->jpm_Pop0) + 1;
-
-//	    goto SMByCount;
-	}
-
-// COMMON CODE:
-//
-// Prepare to handle a root-level or lower-level branch:  Save the current
-// state, obtain the total population for the branch in a state-dependent way,
-// and then branch to common code for multiple cases.
-//
-// For root-level branches, the state is always cJU_ROOTSTATE, and the array
-// population must already be set in pop1; it is not available in jp_DcdPopO.
-//
-// Note:  The total population is only needed in cases where the common code
-// "counts down" instead of up to minimize cache line fills.  However, its
-// available cheaply, and its better to do it with a constant shift (constant
-// state value) instead of a variable shift later "when needed".
-
-#define	PREPB_ROOT(Next)	\
-	state = cJU_ROOTSTATE;	\
-	goto Next
-
-// Use PREPB_DCD() to first copy the Dcd bytes to *PIndex if there are any
-// (only if state < cJU_ROOTSTATE - 1):
-
-#define	PREPB_DCD(Pjp,cState,Next)			\
-	JU_SETDCD(*PIndex, Pjp, cState);	        \
-	PREPB((Pjp), cState, Next)
-
-#define	PREPB(Pjp,cState,Next)	\
-	state = (cState);	\
-	pop1  = JU_JPBRANCH_POP0(Pjp, (cState)) + 1; \
-	goto Next
-
-// Calculate whether the ordinal of an Index within a given expanse falls in
-// the lower or upper half of the expanses population, taking care with
-// unsigned math and boundary conditions:
-//
-// Note:  Assume the ordinal falls within the expanses population, that is,
-// 0 < (Count - Pop1lower) <= Pop1exp (assuming infinite math).
-//
-// Note:  If the ordinal is the middle element, it doesnt matter whether
-// LOWERHALF() is TRUE or FALSE.
-
-#define	LOWERHALF(Count0,Pop1lower,Pop1exp) \
-	(((Count0) - (Pop1lower)) < ((Pop1exp) / 2))
-
-// Calculate the (signed) offset within a leaf to the desired ordinal (Count -
-// Pop1lower; offset is one less), and optionally ensure its in range:
-
-#define	SETOFFSET(Offset,Count0,Pop1lower,Pjp)	\
-	(Offset) = (Count0) - (Pop1lower);	\
-	assert((Offset) >= 0);			\
-	assert((Offset) <= JU_JPLEAF_POP0(Pjp))
-
-// Variations for immediate indexes, with and without pop1-specific assertions:
-
-#define	SETOFFSET_IMM_CK(Offset,Count0,Pop1lower,cPop1)	\
-	(Offset) = (Count0) - (Pop1lower);		\
-	assert((Offset) >= 0);				\
-	assert((Offset) <  (cPop1))
-
-#define	SETOFFSET_IMM(Offset,Count0,Pop1lower) \
-	(Offset) = (Count0) - (Pop1lower)
-
-
-// STATE MACHINE -- TRAVERSE TREE:
-//
-// In branches, look for the expanse (digit), if any, where the total pop1
-// below or at that expanse would meet or exceed Count, meaning the Index must
-// be in this expanse.
-
-SMByCount:			// return here for next branch/leaf.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// ----------------------------------------------------------------------------
-// LINEAR BRANCH; count populations in JPs in the JBL upwards until finding the
-// expanse (digit) containing Count, and "recurse".
-//
-// Note:  There are no null JPs in a JBL; watch out for pop1 == 0.
-//
-// Note:  A JBL should always fit in one cache line => no need to count up
-// versus down to save cache line fills.
-//
-// TBD:  The previous is no longer true.  Consider enhancing this code to count
-// up/down, but it can wait for a later tuning phase.  In the meantime, PREPB()
-// sets pop1 for the whole array, but that value is not used here.  001215:
-// Maybe its true again?
-
-	case cJU_JPBRANCH_L2:  PREPB_DCD(Pjp, 2, BranchL);
-#ifndef JU_64BIT
-	case cJU_JPBRANCH_L3:  PREPB(	 Pjp, 3, BranchL);
-#else
-	case cJU_JPBRANCH_L3:  PREPB_DCD(Pjp, 3, BranchL);
-	case cJU_JPBRANCH_L4:  PREPB_DCD(Pjp, 4, BranchL);
-	case cJU_JPBRANCH_L5:  PREPB_DCD(Pjp, 5, BranchL);
-	case cJU_JPBRANCH_L6:  PREPB_DCD(Pjp, 6, BranchL);
-	case cJU_JPBRANCH_L7:  PREPB(	 Pjp, 7, BranchL);
-#endif
-	case cJU_JPBRANCH_L:   PREPB_ROOT(	 BranchL);
-	{
-	    Pjbl_t Pjbl;
-
-// Common code (state-independent) for all cases of linear branches:
-
-BranchL:
-	    Pjbl = P_JBL(Pjp->jp_Addr);
-
-	    for (jpnum = 0; jpnum < (Pjbl->jbl_NumJPs); ++jpnum)
-	    {
-	        if ((pop1 = j__udyJPPop1((Pjbl->jbl_jp) + jpnum))
-		 == cJU_ALLONES)
-	        {
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-	        }
-	        assert(pop1 != 0);
-
-// Warning:  pop1lower and pop1 are unsigned, so do not subtract 1 and compare
-// >=, but instead use the following expression:
-
-	        if (pop1lower + pop1 > Count0)	 // Index is in this expanse.
-	        {
-		    JU_SETDIGIT(*PIndex, Pjbl->jbl_Expanse[jpnum], state);
-		    Pjp = (Pjbl->jbl_jp) + jpnum;
-		    goto SMByCount;			// look under this expanse.
-	        }
-
-	        pop1lower += pop1;			// add this JPs pop1.
-	    }
-
-	    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);  // should never get here.
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-
-	} // case cJU_JPBRANCH_L
-
-
-// ----------------------------------------------------------------------------
-// BITMAP BRANCH; count populations in JPs in the JBB upwards or downwards
-// until finding the expanse (digit) containing Count, and "recurse".
-//
-// Note:  There are no null JPs in a JBB; watch out for pop1 == 0.
-
-	case cJU_JPBRANCH_B2:  PREPB_DCD(Pjp, 2, BranchB);
-#ifndef JU_64BIT
-	case cJU_JPBRANCH_B3:  PREPB(	 Pjp, 3, BranchB);
-#else
-	case cJU_JPBRANCH_B3:  PREPB_DCD(Pjp, 3, BranchB);
-	case cJU_JPBRANCH_B4:  PREPB_DCD(Pjp, 4, BranchB);
-	case cJU_JPBRANCH_B5:  PREPB_DCD(Pjp, 5, BranchB);
-	case cJU_JPBRANCH_B6:  PREPB_DCD(Pjp, 6, BranchB);
-	case cJU_JPBRANCH_B7:  PREPB(	 Pjp, 7, BranchB);
-#endif
-	case cJU_JPBRANCH_B:   PREPB_ROOT(	 BranchB);
-	{
-	    Pjbb_t Pjbb;
-
-// Common code (state-independent) for all cases of bitmap branches:
-
-BranchB:
-	    Pjbb = P_JBB(Pjp->jp_Addr);
-
-// Shorthand for one subexpanse in a bitmap and for one JP in a bitmap branch:
-//
-// Note: BMPJP0 exists separately to support assertions.
-
-#define	BMPJP0(Subexp)	     (P_JP(JU_JBB_PJP(Pjbb, Subexp)))
-#define	BMPJP(Subexp,JPnum)  (BMPJP0(Subexp) + (JPnum))
-
-
-// Common code for descending through a JP:
-//
-// Determine the digit for the expanse and save it in *PIndex; then "recurse".
-
-#define	JBB_FOUNDEXPANSE			\
-	{					\
-	    JU_BITMAPDIGITB(digit, subexp, JU_JBB_BITMAP(Pjbb,subexp), jpnum); \
-	    JU_SETDIGIT(*PIndex, digit, state);	\
-	    Pjp = BMPJP(subexp, jpnum);		\
-	    goto SMByCount;			\
-	}
-
-
-#ifndef NOSMARTJBB  // enable to turn off smart code for comparison purposes.
-
-// FIGURE OUT WHICH DIRECTION CAUSES FEWER CACHE LINE FILLS; adding the pop1s
-// in JPs upwards, or subtracting the pop1s in JPs downwards:
-//
-// See header comments about limitations of this for Judy*ByCount().
-
-#endif
-
-// COUNT UPWARD, adding each "below" JPs pop1:
-
-#ifndef NOSMARTJBB  // enable to turn off smart code for comparison purposes.
-
-	    if (LOWERHALF(Count0, pop1lower, pop1))
-	    {
-#endif
-#ifdef SMARTMETRICS
-		++jbb_upward;
-#endif
-		for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)
-		{
-		    if ((jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb,subexp)))
-		     && (BMPJP0(subexp) == (Pjp_t) NULL))
-		    {
-			JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);  // null ptr.
-			JUDY1CODE(return(JERRI );)
-			JUDYLCODE(return(PPJERR);)
-		    }
-
-// Note:  An empty subexpanse (jpcount == 0) is handled "for free":
-
-		    for (jpnum = 0; jpnum < jpcount; ++jpnum)
-		    {
-			if ((pop1 = j__udyJPPop1(BMPJP(subexp, jpnum)))
-			  == cJU_ALLONES)
-			{
-			    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-			    JUDY1CODE(return(JERRI );)
-			    JUDYLCODE(return(PPJERR);)
-			}
-			assert(pop1 != 0);
-
-// Warning:  pop1lower and pop1 are unsigned, see earlier comment:
-
-			if (pop1lower + pop1 > Count0)
-			    JBB_FOUNDEXPANSE;	// Index is in this expanse.
-
-			pop1lower += pop1;	// add this JPs pop1.
-		    }
-		}
-#ifndef NOSMARTJBB  // enable to turn off smart code for comparison purposes.
-	    }
-
-
-// COUNT DOWNWARD, subtracting each "above" JPs pop1 from the whole expanses
-// pop1:
-
-	    else
-	    {
-#ifdef SMARTMETRICS
-		++jbb_downward;
-#endif
-		pop1lower += pop1;		// add whole branch to start.
-
-		for (subexp = cJU_NUMSUBEXPB - 1; subexp >= 0; --subexp)
-		{
-		    if ((jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp)))
-		     && (BMPJP0(subexp) == (Pjp_t) NULL))
-		    {
-			JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);  // null ptr.
-			JUDY1CODE(return(JERRI );)
-			JUDYLCODE(return(PPJERR);)
-		    }
-
-// Note:  An empty subexpanse (jpcount == 0) is handled "for free":
-
-		    for (jpnum = jpcount - 1; jpnum >= 0; --jpnum)
-		    {
-			if ((pop1 = j__udyJPPop1(BMPJP(subexp, jpnum)))
-			  == cJU_ALLONES)
-			{
-			    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-			    JUDY1CODE(return(JERRI );)
-			    JUDYLCODE(return(PPJERR);)
-			}
-			assert(pop1 != 0);
-
-// Warning:  pop1lower and pop1 are unsigned, see earlier comment:
-
-			pop1lower -= pop1;
-
-// Beware unsigned math problems:
-
-			if ((pop1lower == 0) || (pop1lower - 1 < Count0))
-			    JBB_FOUNDEXPANSE;	// Index is in this expanse.
-		    }
-		}
-	    }
-#endif // NOSMARTJBB
-
-	    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);  // should never get here.
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-
-	} // case cJU_JPBRANCH_B
-
-
-// ----------------------------------------------------------------------------
-// UNCOMPRESSED BRANCH; count populations in JPs in the JBU upwards or
-// downwards until finding the expanse (digit) containing Count, and "recurse".
-
-	case cJU_JPBRANCH_U2:  PREPB_DCD(Pjp, 2, BranchU);
-#ifndef JU_64BIT
-	case cJU_JPBRANCH_U3:  PREPB(	 Pjp, 3, BranchU);
-#else
-	case cJU_JPBRANCH_U3:  PREPB_DCD(Pjp, 3, BranchU);
-	case cJU_JPBRANCH_U4:  PREPB_DCD(Pjp, 4, BranchU);
-	case cJU_JPBRANCH_U5:  PREPB_DCD(Pjp, 5, BranchU);
-	case cJU_JPBRANCH_U6:  PREPB_DCD(Pjp, 6, BranchU);
-	case cJU_JPBRANCH_U7:  PREPB(	 Pjp, 7, BranchU);
-#endif
-	case cJU_JPBRANCH_U:   PREPB_ROOT(	 BranchU);
-	{
-	    Pjbu_t Pjbu;
-
-// Common code (state-independent) for all cases of uncompressed branches:
-
-BranchU:
-	    Pjbu = P_JBU(Pjp->jp_Addr);
-
-// Common code for descending through a JP:
-//
-// Save the digit for the expanse in *PIndex, then "recurse".
-
-#define	JBU_FOUNDEXPANSE			\
-	{					\
-	    JU_SETDIGIT(*PIndex, jpnum, state);	\
-	    Pjp = (Pjbu->jbu_jp) + jpnum;	\
-	    goto SMByCount;			\
-	}
-
-
-#ifndef NOSMARTJBU  // enable to turn off smart code for comparison purposes.
-
-// FIGURE OUT WHICH DIRECTION CAUSES FEWER CACHE LINE FILLS; adding the pop1s
-// in JPs upwards, or subtracting the pop1s in JPs downwards:
-//
-// See header comments about limitations of this for Judy*ByCount().
-
-#endif
-
-// COUNT UPWARD, simply adding the pop1 of each JP:
-
-#ifndef NOSMARTJBU  // enable to turn off smart code for comparison purposes.
-
-	    if (LOWERHALF(Count0, pop1lower, pop1))
-	    {
-#endif
-#ifdef SMARTMETRICS
-		++jbu_upward;
-#endif
-
-		for (jpnum = 0; jpnum < cJU_BRANCHUNUMJPS; ++jpnum)
-		{
-		    // shortcut, save a function call:
-
-		    if ((Pjbu->jbu_jp[jpnum].jp_Type) <= cJU_JPNULLMAX)
-			continue;
-
-		    if ((pop1 = j__udyJPPop1((Pjbu->jbu_jp) + jpnum))
-		     == cJU_ALLONES)
-		    {
-			JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-			JUDY1CODE(return(JERRI );)
-			JUDYLCODE(return(PPJERR);)
-		    }
-		    assert(pop1 != 0);
-
-// Warning:  pop1lower and pop1 are unsigned, see earlier comment:
-
-		    if (pop1lower + pop1 > Count0)
-			JBU_FOUNDEXPANSE;	// Index is in this expanse.
-
-		    pop1lower += pop1;		// add this JPs pop1.
-		}
-#ifndef NOSMARTJBU  // enable to turn off smart code for comparison purposes.
-	    }
-
-
-// COUNT DOWNWARD, subtracting the pop1 of each JP above from the whole
-// expanses pop1:
-
-	    else
-	    {
-#ifdef SMARTMETRICS
-		++jbu_downward;
-#endif
-		pop1lower += pop1;		// add whole branch to start.
-
-		for (jpnum = cJU_BRANCHUNUMJPS - 1; jpnum >= 0; --jpnum)
-		{
-		    // shortcut, save a function call:
-
-		    if ((Pjbu->jbu_jp[jpnum].jp_Type) <= cJU_JPNULLMAX)
-			continue;
-
-		    if ((pop1 = j__udyJPPop1(Pjbu->jbu_jp + jpnum))
-		     == cJU_ALLONES)
-		    {
-			JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-			JUDY1CODE(return(JERRI );)
-			JUDYLCODE(return(PPJERR);)
-		    }
-		    assert(pop1 != 0);
-
-// Warning:  pop1lower and pop1 are unsigned, see earlier comment:
-
-		    pop1lower -= pop1;
-
-// Beware unsigned math problems:
-
-		    if ((pop1lower == 0) || (pop1lower - 1 < Count0))
-			JBU_FOUNDEXPANSE;	// Index is in this expanse.
-		}
-	    }
-#endif // NOSMARTJBU
-
-	    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);  // should never get here.
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-
-	} // case cJU_JPBRANCH_U
-
-// ----------------------------------------------------------------------------
-// LINEAR LEAF:
-//
-// Return the Index at the proper ordinal (see SETOFFSET()) in the leaf.  First
-// copy Dcd bytes, if there are any (only if state < cJU_ROOTSTATE - 1), to
-// *PIndex.
-//
-// Note:  The preceding branch traversal code MIGHT set pop1 for this expanse
-// (linear leaf) as a side-effect, but dont depend on that (for JUDYL, which
-// is the only cases that need it anyway).
-
-#define	PREPL_DCD(cState)				\
-	JU_SETDCD(*PIndex, Pjp, cState);	        \
-	PREPL
-
-#ifdef JUDY1
-#define	PREPL_SETPOP1			// not needed in any cases.
-#else
-#define	PREPL_SETPOP1  pop1 = JU_JPLEAF_POP0(Pjp) + 1
-#endif
-
-#define	PREPL				\
-	Pjll = P_JLL(Pjp->jp_Addr);	\
-	PREPL_SETPOP1;			\
-	SETOFFSET(offset, Count0, pop1lower, Pjp)
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	case cJU_JPLEAF1:
-
-	    PREPL_DCD(1);
-	    JU_SETDIGIT1(*PIndex, ((uint8_t *) Pjll)[offset]);
-	    JU_RET_FOUND_LEAF1(Pjll, pop1, offset);
-#endif
-
-	case cJU_JPLEAF2:
-
-	    PREPL_DCD(2);
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(2)))
-		    | ((uint16_t *) Pjll)[offset];
-	    JU_RET_FOUND_LEAF2(Pjll, pop1, offset);
-
-#ifndef JU_64BIT
-	case cJU_JPLEAF3:
-	{
-	    Word_t lsb;
-	    PREPL;
-	    JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (3 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-	    JU_RET_FOUND_LEAF3(Pjll, pop1, offset);
-	}
-
-#else
-	case cJU_JPLEAF3:
-	{
-	    Word_t lsb;
-	    PREPL_DCD(3);
-	    JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (3 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-	    JU_RET_FOUND_LEAF3(Pjll, pop1, offset);
-	}
-
-	case cJU_JPLEAF4:
-
-	    PREPL_DCD(4);
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(4)))
-		    | ((uint32_t *) Pjll)[offset];
-	    JU_RET_FOUND_LEAF4(Pjll, pop1, offset);
-
-	case cJU_JPLEAF5:
-	{
-	    Word_t lsb;
-	    PREPL_DCD(5);
-	    JU_COPY5_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (5 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(5))) | lsb;
-	    JU_RET_FOUND_LEAF5(Pjll, pop1, offset);
-	}
-
-	case cJU_JPLEAF6:
-	{
-	    Word_t lsb;
-	    PREPL_DCD(6);
-	    JU_COPY6_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (6 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(6))) | lsb;
-	    JU_RET_FOUND_LEAF6(Pjll, pop1, offset);
-	}
-
-	case cJU_JPLEAF7:
-	{
-	    Word_t lsb;
-	    PREPL;
-	    JU_COPY7_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (7 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(7))) | lsb;
-	    JU_RET_FOUND_LEAF7(Pjll, pop1, offset);
-	}
-#endif
-
-
-// ----------------------------------------------------------------------------
-// BITMAP LEAF:
-//
-// Return the Index at the proper ordinal (see SETOFFSET()) in the leaf by
-// counting bits.  First copy Dcd bytes (always present since state 1 <
-// cJU_ROOTSTATE) to *PIndex.
-//
-// Note:  The preceding branch traversal code MIGHT set pop1 for this expanse
-// (bitmap leaf) as a side-effect, but dont depend on that.
-
-	case cJU_JPLEAF_B1:
-	{
-	    Pjlb_t Pjlb;
-
-	    JU_SETDCD(*PIndex, Pjp, 1);
-	    Pjlb = P_JLB(Pjp->jp_Addr);
-	    pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-
-// COUNT UPWARD, adding the pop1 of each subexpanse:
-//
-// The entire bitmap should fit in one cache line, but still try to save some
-// CPU time by counting the fewest possible number of subexpanses from the
-// bitmap.
-//
-// See header comments about limitations of this for Judy*ByCount().
-
-#ifndef NOSMARTJLB  // enable to turn off smart code for comparison purposes.
-
-	    if (LOWERHALF(Count0, pop1lower, pop1))
-	    {
-#endif
-#ifdef SMARTMETRICS
-		++jlb_upward;
-#endif
-		for (subexp = 0; subexp < cJU_NUMSUBEXPL; ++subexp)
-		{
-		    pop1 = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, subexp));
-
-// Warning:  pop1lower and pop1 are unsigned, see earlier comment:
-
-		    if (pop1lower + pop1 > Count0)
-			goto LeafB1;		// Index is in this subexpanse.
-
-		    pop1lower += pop1;		// add this subexpanses pop1.
-		}
-#ifndef NOSMARTJLB  // enable to turn off smart code for comparison purposes.
-	    }
-
-
-// COUNT DOWNWARD, subtracting each "above" subexpanses pop1 from the whole
-// expanses pop1:
-
-	    else
-	    {
-#ifdef SMARTMETRICS
-		++jlb_downward;
-#endif
-		pop1lower += pop1;		// add whole leaf to start.
-
-		for (subexp = cJU_NUMSUBEXPL - 1; subexp >= 0; --subexp)
-		{
-		    pop1lower -= j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, subexp));
-
-// Beware unsigned math problems:
-
-		    if ((pop1lower == 0) || (pop1lower - 1 < Count0))
-			goto LeafB1;		// Index is in this subexpanse.
-		}
-	    }
-#endif // NOSMARTJLB
-
-	    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);  // should never get here.
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-
-
-// RETURN INDEX FOUND:
-//
-// Come here with subexp set to the correct subexpanse, and pop1lower set to
-// the sum for all lower expanses and subexpanses in the Judy tree.  Calculate
-// and save in *PIndex the digit corresponding to the ordinal in this
-// subexpanse.
-
-LeafB1:
-	    SETOFFSET(offset, Count0, pop1lower, Pjp);
-	    JU_BITMAPDIGITL(digit, subexp, JU_JLB_BITMAP(Pjlb, subexp), offset);
-	    JU_SETDIGIT1(*PIndex, digit);
-	    JU_RET_FOUND_LEAF_B1(Pjlb, subexp, offset);
-//	    == return((PPvoid_t) (P_JV(JL_JLB_PVALUE(Pjlb, subexp)) + offset))
-
-	} // case cJU_JPLEAF_B1
-
-
-#ifdef JUDY1
-// ----------------------------------------------------------------------------
-// FULL POPULATION:
-//
-// Copy Dcd bytes (always present since state 1 < cJU_ROOTSTATE) to *PIndex,
-// then set the appropriate digit for the ordinal (see SETOFFSET()) in the leaf
-// as the LSB in *PIndex.
-
-	case cJ1_JPFULLPOPU1:
-
-	    JU_SETDCD(*PIndex, Pjp, 1);
-	    SETOFFSET(offset, Count0, pop1lower, Pjp);
-	    assert(offset >= 0);
-	    assert(offset <= cJU_JPFULLPOPU1_POP0);
-	    JU_SETDIGIT1(*PIndex, offset);
-	    JU_RET_FOUND_FULLPOPU1;
-#endif
-
-
-// ----------------------------------------------------------------------------
-// IMMEDIATE:
-//
-// Locate the Index with the proper ordinal (see SETOFFSET()) in the Immediate,
-// depending on leaf Index Size and pop1.  Note:  There are no Dcd bytes in an
-// Immediate JP, but in a cJU_JPIMMED_*_01 JP, the field holds the least bytes
-// of the immediate Index.
-
-#define	SET_01(cState)  JU_SETDIGITS(*PIndex, JU_JPDCDPOP0(Pjp), cState)
-
-	case cJU_JPIMMED_1_01: SET_01(1); goto Imm_01;
-	case cJU_JPIMMED_2_01: SET_01(2); goto Imm_01;
-	case cJU_JPIMMED_3_01: SET_01(3); goto Imm_01;
-#ifdef JU_64BIT
-	case cJU_JPIMMED_4_01: SET_01(4); goto Imm_01;
-	case cJU_JPIMMED_5_01: SET_01(5); goto Imm_01;
-	case cJU_JPIMMED_6_01: SET_01(6); goto Imm_01;
-	case cJU_JPIMMED_7_01: SET_01(7); goto Imm_01;
-#endif
-
-Imm_01:
-
-	    DBGCODE(SETOFFSET_IMM_CK(offset, Count0, pop1lower, 1);)
-	    JU_RET_FOUND_IMM_01(Pjp);
-
-// Shorthand for where to find start of Index bytes array:
-
-#ifdef JUDY1
-#define	PJI (Pjp->jp_1Index)
-#else
-#define	PJI (Pjp->jp_LIndex)
-#endif
-
-// Optional code to check the remaining ordinal (see SETOFFSET_IMM()) against
-// the Index Size of the Immediate:
-
-#ifndef DEBUG				// simple placeholder:
-#define	IMM(cPop1,Next) \
-	goto Next
-#else					// extra pop1-specific checking:
-#define	IMM(cPop1,Next)						\
-	SETOFFSET_IMM_CK(offset, Count0, pop1lower, cPop1);	\
-	goto Next
-#endif
-
-	case cJU_JPIMMED_1_02: IMM( 2, Imm1);
-	case cJU_JPIMMED_1_03: IMM( 3, Imm1);
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04: IMM( 4, Imm1);
-	case cJU_JPIMMED_1_05: IMM( 5, Imm1);
-	case cJU_JPIMMED_1_06: IMM( 6, Imm1);
-	case cJU_JPIMMED_1_07: IMM( 7, Imm1);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08: IMM( 8, Imm1);
-	case cJ1_JPIMMED_1_09: IMM( 9, Imm1);
-	case cJ1_JPIMMED_1_10: IMM(10, Imm1);
-	case cJ1_JPIMMED_1_11: IMM(11, Imm1);
-	case cJ1_JPIMMED_1_12: IMM(12, Imm1);
-	case cJ1_JPIMMED_1_13: IMM(13, Imm1);
-	case cJ1_JPIMMED_1_14: IMM(14, Imm1);
-	case cJ1_JPIMMED_1_15: IMM(15, Imm1);
-#endif
-
-Imm1:	    SETOFFSET_IMM(offset, Count0, pop1lower);
-	    JU_SETDIGIT1(*PIndex, ((uint8_t *) PJI)[offset]);
-	    JU_RET_FOUND_IMM(Pjp, offset);
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02: IMM(2, Imm2);
-	case cJU_JPIMMED_2_03: IMM(3, Imm2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04: IMM(4, Imm2);
-	case cJ1_JPIMMED_2_05: IMM(5, Imm2);
-	case cJ1_JPIMMED_2_06: IMM(6, Imm2);
-	case cJ1_JPIMMED_2_07: IMM(7, Imm2);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-Imm2:	    SETOFFSET_IMM(offset, Count0, pop1lower);
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(2)))
-		    | ((uint16_t *) PJI)[offset];
-	    JU_RET_FOUND_IMM(Pjp, offset);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_3_02: IMM(2, Imm3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_3_03: IMM(3, Imm3);
-	case cJ1_JPIMMED_3_04: IMM(4, Imm3);
-	case cJ1_JPIMMED_3_05: IMM(5, Imm3);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-Imm3:
-	{
-	    Word_t lsb;
-	    SETOFFSET_IMM(offset, Count0, pop1lower);
-	    JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (3 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_4_02: IMM(2, Imm4);
-	case cJ1_JPIMMED_4_03: IMM(3, Imm4);
-
-Imm4:	    SETOFFSET_IMM(offset, Count0, pop1lower);
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(4)))
-		    | ((uint32_t *) PJI)[offset];
-	    JU_RET_FOUND_IMM(Pjp, offset);
-
-	case cJ1_JPIMMED_5_02: IMM(2, Imm5);
-	case cJ1_JPIMMED_5_03: IMM(3, Imm5);
-
-Imm5:
-	{
-	    Word_t lsb;
-	    SETOFFSET_IMM(offset, Count0, pop1lower);
-	    JU_COPY5_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (5 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(5))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-
-	case cJ1_JPIMMED_6_02: IMM(2, Imm6);
-
-Imm6:
-	{
-	    Word_t lsb;
-	    SETOFFSET_IMM(offset, Count0, pop1lower);
-	    JU_COPY6_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (6 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(6))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-
-	case cJ1_JPIMMED_7_02: IMM(2, Imm7);
-
-Imm7:
-	{
-	    Word_t lsb;
-	    SETOFFSET_IMM(offset, Count0, pop1lower);
-	    JU_COPY7_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (7 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(7))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-#endif // (JUDY1 && JU_64BIT)
-
-
-// ----------------------------------------------------------------------------
-// UNEXPECTED JP TYPES:
-
-	default: JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		 JUDY1CODE(return(JERRI );)
-		 JUDYLCODE(return(PPJERR);)
-
-	} // SMByCount switch.
-
-	/*NOTREACHED*/
-
-} // Judy1ByCount() / JudyLByCount()
diff --git a/libs/klib/judy/JudyByCountWithDefs.c b/libs/klib/judy/JudyByCountWithDefs.c
deleted file mode 100644
index b4ad243..0000000
--- a/libs/klib/judy/JudyByCountWithDefs.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#define NOSMARTJBB 1
-#define NOSMARTJBU 1
-#define NOSMARTJLB 1
-#include "JudyByCount.c"
diff --git a/libs/klib/judy/JudyCascade.c b/libs/klib/judy/JudyCascade.c
deleted file mode 100644
index fccb747..0000000
--- a/libs/klib/judy/JudyCascade.c
+++ /dev/null
@@ -1,1940 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-extern int j__udyCreateBranchL(Pjp_t, Pjp_t, uint8_t *, Word_t, Pvoid_t);
-extern int j__udyCreateBranchB(Pjp_t, Pjp_t, uint8_t *, Word_t, Pvoid_t);
-
-DBGCODE(extern void JudyCheckSorted(Pjll_t Pjll, Word_t Pop1, long IndexSize);)
-
-static const jbb_t StageJBBZero;	// zeroed versions of namesake struct.
-
-// TBD:  There are multiple copies of (some of) these CopyWto3, Copy3toW,
-// CopyWto7 and Copy7toW functions in Judy1Cascade.c, JudyLCascade.c, and
-// JudyDecascade.c.  These static functions should probably be moved to a
-// common place, made macros, or something to avoid having four copies.
-
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   X   T O   W
-
-
-FUNCTION static void j__udyCopy3toW(
-	PWord_t	  PDest,
-	uint8_t * PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY3_PINDEX_TO_LONG(*PDest, PSrc);
-		PSrc	+= 3;
-		PDest	+= 1;
-
-	} while(--LeafIndexes);
-
-} //j__udyCopy3toW()
-
-
-#ifdef JU_64BIT
-
-FUNCTION static void j__udyCopy4toW(
-	PWord_t	   PDest,
-	uint32_t * PSrc,
-	Word_t	   LeafIndexes)
-{
-	do { *PDest++ = *PSrc++;
-	} while(--LeafIndexes);
-
-} // j__udyCopy4toW()
-
-
-FUNCTION static void j__udyCopy5toW(
-	PWord_t	  PDest,
-	uint8_t	* PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY5_PINDEX_TO_LONG(*PDest, PSrc);
-		PSrc	+= 5;
-		PDest	+= 1;
-
-	} while(--LeafIndexes);
-
-} // j__udyCopy5toW()
-
-
-FUNCTION static void j__udyCopy6toW(
-	PWord_t	  PDest,
-	uint8_t	* PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY6_PINDEX_TO_LONG(*PDest, PSrc);
-		PSrc	+= 6;
-		PDest	+= 1;
-
-	} while(--LeafIndexes);
-
-} // j__udyCopy6toW()
-
-
-FUNCTION static void j__udyCopy7toW(
-	PWord_t	  PDest,
-	uint8_t	* PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY7_PINDEX_TO_LONG(*PDest, PSrc);
-		PSrc	+= 7;
-		PDest	+= 1;
-
-	} while(--LeafIndexes);
-
-} // j__udyCopy7toW()
-
-#endif // JU_64BIT
-
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   W   T O   X
-
-
-FUNCTION static void j__udyCopyWto3(
-	uint8_t	* PDest,
-	PWord_t	  PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY3_LONG_TO_PINDEX(PDest, *PSrc);
-		PSrc	+= 1;
-		PDest	+= 3;
-
-	} while(--LeafIndexes);
-
-} // j__udyCopyWto3()
-
-
-#ifdef JU_64BIT
-
-FUNCTION static void j__udyCopyWto4(
-	uint8_t	* PDest,
-	PWord_t	  PSrc,
-	Word_t	  LeafIndexes)
-{
-	uint32_t *PDest32 = (uint32_t *)PDest;
-
-	do
-	{
-		*PDest32 = *PSrc;
-		PSrc	+= 1;
-		PDest32	+= 1;
-	} while(--LeafIndexes);
-
-} // j__udyCopyWto4()
-
-
-FUNCTION static void j__udyCopyWto5(
-	uint8_t	* PDest,
-	PWord_t	  PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY5_LONG_TO_PINDEX(PDest, *PSrc);
-		PSrc	+= 1;
-		PDest	+= 5;
-
-	} while(--LeafIndexes);
-
-} // j__udyCopyWto5()
-
-
-FUNCTION static void j__udyCopyWto6(
-	uint8_t	* PDest,
-	PWord_t	  PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY6_LONG_TO_PINDEX(PDest, *PSrc);
-		PSrc	+= 1;
-		PDest	+= 6;
-
-	} while(--LeafIndexes);
-
-} // j__udyCopyWto6()
-
-
-FUNCTION static void j__udyCopyWto7(
-	uint8_t	* PDest,
-	PWord_t	  PSrc,
-	Word_t	  LeafIndexes)
-{
-	do
-	{
-		JU_COPY7_LONG_TO_PINDEX(PDest, *PSrc);
-		PSrc	+= 1;
-		PDest	+= 7;
-
-	} while(--LeafIndexes);
-
-} // j__udyCopyWto7()
-
-#endif // JU_64BIT
-
-
-// ****************************************************************************
-// COMMON CODE (MACROS):
-//
-// Free objects in an array of valid JPs, StageJP[ExpCnt] == last one may
-// include Immeds, which are ignored.
-
-#define FREEALLEXIT(ExpCnt,StageJP,Pjpm)				\
-	{								\
-	    Word_t _expct = (ExpCnt);					\
-	    while (_expct--) j__udyFreeSM(&((StageJP)[_expct]), Pjpm);  \
-	    return(-1);                                                 \
-	}
-
-// Clear the array that keeps track of the number of JPs in a subexpanse:
-
-#define ZEROJP(SubJPCount)                                              \
-	{								\
-		int ii;							\
-		for (ii = 0; ii < cJU_NUMSUBEXPB; ii++) (SubJPCount[ii]) = 0; \
-	}
-
-// ****************************************************************************
-// __ J U D Y   S T A G E   J B B   T O   J B B
-//
-// Create a mallocd BranchB (jbb_t) from a staged BranchB while "splaying" a
-// single old leaf.  Return -1 if out of memory, otherwise 1.
-
-static int j__udyStageJBBtoJBB(
-	Pjp_t     PjpLeaf,	// JP of leaf being splayed.
-	Pjbb_t    PStageJBB,	// temp jbb_t on stack.
-	Pjp_t     PjpArray,	// array of JPs to splayed new leaves.
-	uint8_t * PSubCount,	// count of JPs for each subexpanse.
-	Pjpm_t    Pjpm)		// the jpm_t for JudyAlloc*().
-{
-	Pjbb_t    PjbbRaw;	// pointer to new bitmap branch.
-	Pjbb_t    Pjbb;
-	Word_t    subexp;
-
-// Get memory for new BranchB:
-
-	if ((PjbbRaw = j__udyAllocJBB(Pjpm)) == (Pjbb_t) NULL) return(-1);
-	Pjbb = P_JBB(PjbbRaw);
-
-// Copy staged BranchB into just-allocated BranchB:
-
-	*Pjbb = *PStageJBB;
-
-// Allocate the JP subarrays (BJP) for the new BranchB:
-
-	for (subexp = 0; subexp < cJU_NUMSUBEXPB; subexp++)
-	{
-	    Pjp_t  PjpRaw;
-	    Pjp_t  Pjp;
-	    Word_t NumJP;       // number of JPs in each subexpanse.
-
-	    if ((NumJP = PSubCount[subexp]) == 0) continue;	// empty.
-
-// Out of memory, back out previous allocations:
-
-	    if ((PjpRaw = j__udyAllocJBBJP(NumJP, Pjpm)) == (Pjp_t) NULL)
-	    {
-		while(subexp--)
-		{
-		    if ((NumJP = PSubCount[subexp]) == 0) continue;
-
-		    PjpRaw = JU_JBB_PJP(Pjbb, subexp);
-		    j__udyFreeJBBJP(PjpRaw, NumJP, Pjpm);
-		}
-		j__udyFreeJBB(PjbbRaw, Pjpm);
-		return(-1);	// out of memory.
-	    }
-	    Pjp = P_JP(PjpRaw);
-
-// Place the JP subarray pointer in the new BranchB, copy subarray JPs, and
-// advance to the next subexpanse:
-
-	    JU_JBB_PJP(Pjbb, subexp) = PjpRaw;
-	    JU_COPYMEM(Pjp, PjpArray, NumJP);
-	    PjpArray += NumJP;
-
-	} // for each subexpanse.
-
-// Change the PjpLeaf from Leaf to BranchB:
-
-	PjpLeaf->jp_Addr  = (Word_t) PjbbRaw;
-	PjpLeaf->jp_Type += cJU_JPBRANCH_B2 - cJU_JPLEAF2;  // Leaf to BranchB.
-
-	return(1);
-
-} // j__udyStageJBBtoJBB()
-
-
-// ****************************************************************************
-// __ J U D Y   J L L 2   T O   J L B 1
-//
-// Create a LeafB1 (jlb_t = JLB1) from a Leaf2 (2-byte Indexes and for JudyL,
-// Word_t Values).  Return NULL if out of memory, else a pointer to the new
-// LeafB1.
-//
-// NOTE:  Caller must release the Leaf2 that was passed in.
-
-FUNCTION static Pjlb_t j__udyJLL2toJLB1(
-	uint16_t * Pjll,	// array of 16-bit indexes.
-#ifdef JUDYL
-	Pjv_t      Pjv,		// array of associated values.
-#endif
-	Word_t     LeafPop1,	// number of indexes/values.
-	Pvoid_t    Pjpm)	// jpm_t for JudyAlloc*()/JudyFree*().
-{
-	Pjlb_t     PjlbRaw;
-	Pjlb_t     Pjlb;
-	int	   offset;
-JUDYLCODE(int	   subexp;)
-
-// Allocate the LeafB1:
-
-	if ((PjlbRaw = j__udyAllocJLB1(Pjpm)) == (Pjlb_t) NULL)
-	    return((Pjlb_t) NULL);
-	Pjlb = P_JLB(PjlbRaw);
-
-// Copy Leaf2 indexes to LeafB1:
-
-	for (offset = 0; offset < LeafPop1; ++offset)
-	    JU_BITMAPSETL(Pjlb, Pjll[offset]);
-
-#ifdef JUDYL
-
-// Build LeafVs from bitmap:
-
-	for (subexp = 0; subexp < cJU_NUMSUBEXPL; ++subexp)
-	{
-	    struct _POINTER_VALUES
-	    {
-		Word_t pv_Pop1;		// size of value area.
-		Pjv_t  pv_Pjv;		// raw pointer to value area.
-	    } pv[cJU_NUMSUBEXPL];
-
-// Get the population of the subexpanse, and if any, allocate a LeafV:
-
-	    pv[subexp].pv_Pop1 = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, subexp));
-
-	    if (pv[subexp].pv_Pop1)
-	    {
-		Pjv_t Pjvnew;
-
-// TBD:  There is an opportunity to put pop == 1 value in pointer:
-
-		pv[subexp].pv_Pjv = j__udyLAllocJV(pv[subexp].pv_Pop1, Pjpm);
-
-// Upon out of memory, free all previously allocated:
-
-		if (pv[subexp].pv_Pjv == (Pjv_t) NULL)
-		{
-		    while(subexp--)
-		    {
-			if (pv[subexp].pv_Pop1)
-			{
-			    j__udyLFreeJV(pv[subexp].pv_Pjv, pv[subexp].pv_Pop1,
-					  Pjpm);
-			}
-		    }
-		    j__udyFreeJLB1(PjlbRaw, Pjpm);
-		    return((Pjlb_t) NULL);
-		}
-
-		Pjvnew = P_JV(pv[subexp].pv_Pjv);
-		JU_COPYMEM(Pjvnew, Pjv, pv[subexp].pv_Pop1);
-		Pjv += pv[subexp].pv_Pop1;	// advance value pointer.
-
-// Place raw pointer to value array in bitmap subexpanse:
-
-		JL_JLB_PVALUE(Pjlb, subexp) = pv[subexp].pv_Pjv;
-
-	    } // populated subexpanse.
-	} // each subexpanse.
-
-#endif // JUDYL
-
-	return(PjlbRaw);	// pointer to LeafB1.
-
-} // j__udyJLL2toJLB1()
-
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E 1
-//
-// Create bitmap leaf from 1-byte Indexes and Word_t Values.
-//
-// TBD:  There must be a better way.
-//
-// Only for JudyL 32 bit:  (note, unifdef disallows comment on next line)
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-
-FUNCTION int j__udyCascade1(
-	Pjp_t	   Pjp,
-	Pvoid_t    Pjpm)
-{
-        Word_t     DcdP0;
-	uint8_t	 * PLeaf;
-	Pjlb_t	   PjlbRaw;
-	Pjlb_t	   Pjlb;
-	Word_t     Pop1;
-	Word_t     ii;		// temp for loop counter
-JUDYLCODE(Pjv_t	   Pjv;)
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF1);
-	assert((JU_JPDCDPOP0(Pjp) & 0xFF) == (cJU_LEAF1_MAXPOP1-1));
-
-	PjlbRaw = j__udyAllocJLB1(Pjpm);
-	if (PjlbRaw == (Pjlb_t) NULL) return(-1);
-
-	Pjlb  = P_JLB(PjlbRaw);
-	PLeaf = (uint8_t *) P_JLL(Pjp->jp_Addr);
-	Pop1  = JU_JPLEAF_POP0(Pjp) + 1;
-
-	JUDYLCODE(Pjv = JL_LEAF1VALUEAREA(PLeaf, Pop1);)
-
-//	Copy 1 byte index Leaf to bitmap Leaf
-	for (ii = 0; ii < Pop1; ii++) JU_BITMAPSETL(Pjlb, PLeaf[ii]);
-
-#ifdef JUDYL
-//	Build 8 subexpanse Value leaves from bitmap
-	for (ii = 0; ii < cJU_NUMSUBEXPL; ii++)
-	{
-//	    Get number of Indexes in subexpanse
-	    if ((Pop1 = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, ii))))
-	    {
-		Pjv_t PjvnewRaw;	// value area of new leaf.
-		Pjv_t Pjvnew;
-
-		PjvnewRaw = j__udyLAllocJV(Pop1, Pjpm);
-		if (PjvnewRaw == (Pjv_t) NULL)	// out of memory.
-		{
-//                  Free prevously allocated LeafVs:
-		    while(ii--)
-		    {
-			if ((Pop1 = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, ii))))
-			{
-			    PjvnewRaw = JL_JLB_PVALUE(Pjlb, ii);
-			    j__udyLFreeJV(PjvnewRaw, Pop1, Pjpm);
-			}
-		    }
-//                  Free the bitmap leaf
-		    j__udyLFreeJLB1(PjlbRaw,Pjpm);
-		    return(-1);
-		}
-		Pjvnew    = P_JV(PjvnewRaw);
-		JU_COPYMEM(Pjvnew, Pjv, Pop1);
-
-		Pjv += Pop1;
-		JL_JLB_PVALUE(Pjlb, ii) = PjvnewRaw;
-	    }
-	}
-#endif // JUDYL
-
-	DcdP0 = JU_JPDCDPOP0(Pjp) | (PLeaf[0] & cJU_DCDMASK(1));
-        JU_JPSETADT(Pjp, (Word_t)PjlbRaw, DcdP0, cJU_JPLEAF_B1);
-
-	return(1);	// return success
-
-} // j__udyCascade1()
-
-#endif // (!(JUDY1 && JU_64BIT))
-
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E 2
-//
-// Entry PLeaf of size LeafPop1 is either compressed or splayed with pointer
-// returned in Pjp.  Entry Levels sizeof(Word_t) down to level 2.
-//
-// Splay or compress the 2-byte Index Leaf that Pjp point to.  Return *Pjp as a
-// (compressed) cJU_LEAFB1 or a cJU_BRANCH_*2
-
-FUNCTION int j__udyCascade2(
-	Pjp_t	   Pjp,
-	Pvoid_t	   Pjpm)
-{
-	uint16_t * PLeaf;	// pointer to leaf, explicit type.
-	Word_t	   End, Start;	// temporaries.
-	Word_t	   ExpCnt;	// count of expanses of splay.
-	Word_t     CIndex;	// current Index word.
-JUDYLCODE(Pjv_t	   Pjv;)	// value area of leaf.
-
-//	Temp staging for parts(Leaves) of newly splayed leaf
-	jp_t	   StageJP   [cJU_LEAF2_MAXPOP1];  // JPs of new leaves
-	uint8_t	   StageExp  [cJU_LEAF2_MAXPOP1];  // Expanses of new leaves
-	uint8_t	   SubJPCount[cJU_NUMSUBEXPB];     // JPs in each subexpanse
-	jbb_t      StageJBB;                       // staged bitmap branch
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF2);
-	assert((JU_JPDCDPOP0(Pjp) & 0xFFFF) == (cJU_LEAF2_MAXPOP1-1));
-
-//	Get the address of the Leaf
-	PLeaf = (uint16_t *) P_JLL(Pjp->jp_Addr);
-
-//	And its Value area
-	JUDYLCODE(Pjv = JL_LEAF2VALUEAREA(PLeaf, cJU_LEAF2_MAXPOP1);)
-
-//  If Leaf is in 1 expanse -- just compress it to a Bitmap Leaf
-
-	CIndex = PLeaf[0];
-	if (!JU_DIGITATSTATE(CIndex ^ PLeaf[cJU_LEAF2_MAXPOP1-1], 2))
-	{
-//	cJU_JPLEAF_B1
-                Word_t DcdP0;
-		Pjlb_t PjlbRaw;
-		PjlbRaw = j__udyJLL2toJLB1(PLeaf,
-#ifdef JUDYL
-				     Pjv,
-#endif
-				     cJU_LEAF2_MAXPOP1, Pjpm);
-		if (PjlbRaw == (Pjlb_t)NULL) return(-1);  // out of memory
-
-//		Merge in another Dcd byte because compressing
-		DcdP0 = (CIndex & cJU_DCDMASK(1)) | JU_JPDCDPOP0(Pjp);
-                JU_JPSETADT(Pjp, (Word_t)PjlbRaw, DcdP0, cJU_JPLEAF_B1);
-
-		return(1);
-	}
-
-//  Else in 2+ expanses, splay Leaf into smaller leaves at higher compression
-
-	StageJBB = StageJBBZero;       // zero staged bitmap branch
-	ZEROJP(SubJPCount);
-
-//	Splay the 2 byte index Leaf to 1 byte Index Leaves
-	for (ExpCnt = Start = 0, End = 1; ; End++)
-	{
-//		Check if new expanse or last one
-		if (	(End == cJU_LEAF2_MAXPOP1)
-				||
-			(JU_DIGITATSTATE(CIndex ^ PLeaf[End], 2))
-		   )
-		{
-//			Build a leaf below the previous expanse
-//
-			Pjp_t  PjpJP	= StageJP + ExpCnt;
-			Word_t Pop1	= End - Start;
-			Word_t expanse = JU_DIGITATSTATE(CIndex, 2);
-			Word_t subexp  = expanse / cJU_BITSPERSUBEXPB;
-//
-//                      set the bit that is the current expanse
-			JU_JBB_BITMAP(&StageJBB, subexp) |= JU_BITPOSMASKB(expanse);
-#ifdef SUBEXPCOUNTS
-			StageJBB.jbb_subPop1[subexp] += Pop1; // pop of subexpanse
-#endif
-//                      count number of expanses in each subexpanse
-			SubJPCount[subexp]++;
-
-//			Save byte expanse of leaf
-			StageExp[ExpCnt] = JU_DIGITATSTATE(CIndex, 2);
-
-			if (Pop1 == 1)	// cJU_JPIMMED_1_01
-			{
-	                    Word_t DcdP0;
-	                    DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(1)) |
-                                CIndex;
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, DcdP0, cJ1_JPIMMED_1_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], DcdP0, 
-                                cJL_JPIMMED_1_01);
-#endif  // JUDYL
-			}
-			else if (Pop1 <= cJU_IMMED1_MAXPOP1) // bigger
-			{
-//		cJL_JPIMMED_1_02..3:  JudyL 32
-//		cJ1_JPIMMED_1_02..7:  Judy1 32
-//		cJL_JPIMMED_1_02..7:  JudyL 64
-//		cJ1_JPIMMED_1_02..15: Judy1 64
-#ifdef JUDYL
-				Pjv_t  PjvnewRaw;	// value area of leaf.
-				Pjv_t  Pjvnew;
-
-//				Allocate Value area for Immediate Leaf
-				PjvnewRaw = j__udyLAllocJV(Pop1, Pjpm);
-				if (PjvnewRaw == (Pjv_t) NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjvnew = P_JV(PjvnewRaw);
-
-//				Copy to Values to Value Leaf
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-				PjpJP->jp_Addr = (Word_t) PjvnewRaw;
-
-//				Copy to JP as an immediate Leaf
-				JU_COPYMEM(PjpJP->jp_LIndex, PLeaf + Start,
-					   Pop1);
-#else
-				JU_COPYMEM(PjpJP->jp_1Index, PLeaf + Start,
-					   Pop1);
-#endif
-//				Set Type, Population and Index size
-				PjpJP->jp_Type = cJU_JPIMMED_1_02 + Pop1 - 2;
-			}
-
-// 64Bit Judy1 does not have Leaf1:  (note, unifdef disallows comment on next
-// line)
-
-#if (! (defined(JUDY1) && defined(JU_64BIT)))
-			else if (Pop1 <= cJU_LEAF1_MAXPOP1) // still bigger
-			{
-//		cJU_JPLEAF1
-                                Word_t  DcdP0;
-				Pjll_t PjllRaw;	 // pointer to new leaf.
-				Pjll_t Pjll;
-		      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//				Get a new Leaf
-				PjllRaw = j__udyAllocJLL1(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t)NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjll = P_JLL(PjllRaw);
-#ifdef JUDYL
-//				Copy to Values to new Leaf
-				Pjvnew = JL_LEAF1VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif
-//				Copy Indexes to new Leaf
-				JU_COPYMEM((uint8_t *)Pjll, PLeaf+Start, Pop1);
-
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 1);)
-
-                                DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(2)) 
-                                                |
-                                        (CIndex & cJU_DCDMASK(2-1))
-                                                |
-                                        (Pop1 - 1);
-
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, DcdP0,
-                                        cJU_JPLEAF1);
-			}
-#endif //  (!(JUDY1 && JU_64BIT)) // Not 64Bit Judy1
-
-			else				// biggest
-			{
-//		cJU_JPLEAF_B1
-                                Word_t  DcdP0;
-				Pjlb_t PjlbRaw;
-				PjlbRaw = j__udyJLL2toJLB1(
-						PLeaf + Start,
-#ifdef JUDYL
-						Pjv + Start,
-#endif
-						Pop1, Pjpm);
-				if (PjlbRaw == (Pjlb_t)NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-                                DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(2)) 
-                                                |
-                                        (CIndex & cJU_DCDMASK(2-1)) 
-                                                |
-                                        (Pop1 - 1);
-
-                                JU_JPSETADT(PjpJP, (Word_t)PjlbRaw, DcdP0,
-                                        cJU_JPLEAF_B1);
-			}
-			ExpCnt++;
-//                      Done?
-			if (End == cJU_LEAF2_MAXPOP1) break;
-
-//			New Expanse, Start and Count
-			CIndex = PLeaf[End];
-			Start  = End;
-		}
-	}
-
-//      Now put all the Leaves below a BranchL or BranchB:
-	if (ExpCnt <= cJU_BRANCHLMAXJPS) // put the Leaves below a BranchL
-	{
-	    if (j__udyCreateBranchL(Pjp, StageJP, StageExp, ExpCnt,
-			Pjpm) == -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_L2;
-	}
-	else
-	{
-	    if (j__udyStageJBBtoJBB(Pjp, &StageJBB, StageJP, SubJPCount, Pjpm)
-		== -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-	}
-	return(1);
-
-} // j__udyCascade2()
-
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E 3
-//
-// Return *Pjp as a (compressed) cJU_LEAF2, cJU_BRANCH_L3, cJU_BRANCH_B3.
-
-FUNCTION int j__udyCascade3(
-	Pjp_t	   Pjp,
-	Pvoid_t	   Pjpm)
-{
-	uint8_t  * PLeaf;	// pointer to leaf, explicit type.
-	Word_t	   End, Start;	// temporaries.
-	Word_t	   ExpCnt;	// count of expanses of splay.
-	Word_t     CIndex;	// current Index word.
-JUDYLCODE(Pjv_t	   Pjv;)	// value area of leaf.
-
-//	Temp staging for parts(Leaves) of newly splayed leaf
-	jp_t	   StageJP   [cJU_LEAF3_MAXPOP1];  // JPs of new leaves
-	Word_t	   StageA    [cJU_LEAF3_MAXPOP1];
-	uint8_t	   StageExp  [cJU_LEAF3_MAXPOP1];  // Expanses of new leaves
-	uint8_t	   SubJPCount[cJU_NUMSUBEXPB];     // JPs in each subexpanse
-	jbb_t      StageJBB;                       // staged bitmap branch
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF3);
-	assert((JU_JPDCDPOP0(Pjp) & 0xFFFFFF) == (cJU_LEAF3_MAXPOP1-1));
-
-//	Get the address of the Leaf
-	PLeaf = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-//	Extract leaf to Word_t and insert-sort Index into it
-	j__udyCopy3toW(StageA, PLeaf, cJU_LEAF3_MAXPOP1);
-
-//	Get the address of the Leaf and Value area
-	JUDYLCODE(Pjv = JL_LEAF3VALUEAREA(PLeaf, cJU_LEAF3_MAXPOP1);)
-
-//  If Leaf is in 1 expanse -- just compress it (compare 1st, last & Index)
-
-	CIndex = StageA[0];
-	if (!JU_DIGITATSTATE(CIndex ^ StageA[cJU_LEAF3_MAXPOP1-1], 3))
-	{
-                Word_t DcdP0;
-		Pjll_t PjllRaw;	 // pointer to new leaf.
-		Pjll_t Pjll;
-      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//		Alloc a 2 byte Index Leaf
-		PjllRaw	= j__udyAllocJLL2(cJU_LEAF3_MAXPOP1, Pjpm);
-		if (PjllRaw == (Pjlb_t)NULL) return(-1);  // out of memory
-
-		Pjll = P_JLL(PjllRaw);
-
-//		Copy just 2 bytes Indexes to new Leaf
-//		j__udyCopyWto2((uint16_t *) Pjll, StageA, cJU_LEAF3_MAXPOP1);
-		JU_COPYMEM    ((uint16_t *) Pjll, StageA, cJU_LEAF3_MAXPOP1);
-#ifdef JUDYL
-//		Copy Value area into new Leaf
-		Pjvnew = JL_LEAF2VALUEAREA(Pjll, cJU_LEAF3_MAXPOP1);
-		JU_COPYMEM(Pjvnew, Pjv, cJU_LEAF3_MAXPOP1);
-#endif
-		DBGCODE(JudyCheckSorted(Pjll, cJU_LEAF3_MAXPOP1, 2);)
-
-//		Form new JP, Pop0 field is unchanged
-//		Add in another Dcd byte because compressing
-                DcdP0 = (CIndex & cJU_DCDMASK(2)) | JU_JPDCDPOP0(Pjp);
-
-                JU_JPSETADT(Pjp, (Word_t) PjllRaw, DcdP0, cJU_JPLEAF2);
-
-		return(1); // Success
-	}
-
-//  Else in 2+ expanses, splay Leaf into smaller leaves at higher compression
-
-	StageJBB = StageJBBZero;       // zero staged bitmap branch
-	ZEROJP(SubJPCount);
-
-//	Splay the 3 byte index Leaf to 2 byte Index Leaves
-	for (ExpCnt = Start = 0, End = 1; ; End++)
-	{
-//		Check if new expanse or last one
-		if (	(End == cJU_LEAF3_MAXPOP1)
-				||
-			(JU_DIGITATSTATE(CIndex ^ StageA[End], 3))
-		   )
-		{
-//			Build a leaf below the previous expanse
-
-			Pjp_t  PjpJP	= StageJP + ExpCnt;
-			Word_t Pop1	= End - Start;
-			Word_t expanse = JU_DIGITATSTATE(CIndex, 3);
-			Word_t subexp  = expanse / cJU_BITSPERSUBEXPB;
-//
-//                      set the bit that is the current expanse
-			JU_JBB_BITMAP(&StageJBB, subexp) |= JU_BITPOSMASKB(expanse);
-#ifdef SUBEXPCOUNTS
-			StageJBB.jbb_subPop1[subexp] += Pop1; // pop of subexpanse
-#endif
-//                      count number of expanses in each subexpanse
-			SubJPCount[subexp]++;
-
-//			Save byte expanse of leaf
-			StageExp[ExpCnt] = JU_DIGITATSTATE(CIndex, 3);
-
-			if (Pop1 == 1)	// cJU_JPIMMED_2_01
-			{
-	                    Word_t DcdP0;
-	                    DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(2)) |
-                                CIndex;
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, DcdP0, cJ1_JPIMMED_2_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], DcdP0, 
-                                cJL_JPIMMED_2_01);
-#endif  // JUDYL
-			}
-#if (defined(JUDY1) || defined(JU_64BIT))
-			else if (Pop1 <= cJU_IMMED2_MAXPOP1)
-			{
-//		cJ1_JPIMMED_2_02..3:  Judy1 32
-//		cJL_JPIMMED_2_02..3:  JudyL 64
-//		cJ1_JPIMMED_2_02..7:  Judy1 64
-#ifdef JUDYL
-//				Alloc is 1st in case of malloc fail
-				Pjv_t PjvnewRaw;  // value area of new leaf.
-				Pjv_t Pjvnew;
-
-//				Allocate Value area for Immediate Leaf
-				PjvnewRaw = j__udyLAllocJV(Pop1, Pjpm);
-				if (PjvnewRaw == (Pjv_t) NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjvnew = P_JV(PjvnewRaw);
-
-//				Copy to Values to Value Leaf
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-
-				PjpJP->jp_Addr = (Word_t) PjvnewRaw;
-
-//				Copy to Index to JP as an immediate Leaf
-				JU_COPYMEM((uint16_t *) (PjpJP->jp_LIndex),
-					   StageA + Start, Pop1);
-#else // JUDY1
-				JU_COPYMEM((uint16_t *) (PjpJP->jp_1Index),
-					   StageA + Start, Pop1);
-#endif // JUDY1
-//				Set Type, Population and Index size
-				PjpJP->jp_Type = cJU_JPIMMED_2_02 + Pop1 - 2;
-			}
-#endif // (JUDY1 || JU_64BIT)
-
-			else	// Make a linear leaf2
-			{
-//		cJU_JPLEAF2
-                                Word_t  DcdP0;
-				Pjll_t PjllRaw;	 // pointer to new leaf.
-				Pjll_t Pjll;
-		      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-				PjllRaw = j__udyAllocJLL2(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t) NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjll = P_JLL(PjllRaw);
-#ifdef JUDYL
-//				Copy to Values to new Leaf
-				Pjvnew = JL_LEAF2VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif
-//				Copy least 2 bytes per Index of Leaf to new Leaf
-				JU_COPYMEM((uint16_t *) Pjll, StageA+Start,
-					   Pop1);
-
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 2);)
-
-                                DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(3)) 
-                                                |
-                                        (CIndex & cJU_DCDMASK(3-1)) 
-                                                |
-                                        (Pop1 - 1);
-
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, DcdP0,
-                                        cJU_JPLEAF2);
-			}
-			ExpCnt++;
-//                      Done?
-			if (End == cJU_LEAF3_MAXPOP1) break;
-
-//			New Expanse, Start and Count
-			CIndex = StageA[End];
-			Start  = End;
-		}
-	}
-
-//      Now put all the Leaves below a BranchL or BranchB:
-	if (ExpCnt <= cJU_BRANCHLMAXJPS) // put the Leaves below a BranchL
-	{
-	    if (j__udyCreateBranchL(Pjp, StageJP, StageExp, ExpCnt,
-			Pjpm) == -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_L3;
-	}
-	else
-	{
-	    if (j__udyStageJBBtoJBB(Pjp, &StageJBB, StageJP, SubJPCount, Pjpm)
-		== -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-	}
-	return(1);
-
-} // j__udyCascade3()
-
-
-#ifdef JU_64BIT   // JudyCascade[4567]
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E 4
-//
-// Cascade from a cJU_JPLEAF4 to one of the following:
-//  1. if leaf is in 1 expanse:
-//        compress it into a JPLEAF3
-//  2. if leaf contains multiple expanses:
-//        create linear or bitmap branch containing
-//        each new expanse is either a:
-//               JPIMMED_3_01  branch
-//               JPIMMED_3_02  branch
-//               JPLEAF3
-
-FUNCTION int j__udyCascade4(
-	Pjp_t	   Pjp,
-	Pvoid_t	   Pjpm)
-{
-	uint32_t * PLeaf;	// pointer to leaf, explicit type.
-	Word_t	   End, Start;	// temporaries.
-	Word_t	   ExpCnt;	// count of expanses of splay.
-	Word_t     CIndex;	// current Index word.
-JUDYLCODE(Pjv_t	   Pjv;)	// value area of leaf.
-
-//	Temp staging for parts(Leaves) of newly splayed leaf
-	jp_t	   StageJP   [cJU_LEAF4_MAXPOP1];  // JPs of new leaves
-	Word_t	   StageA    [cJU_LEAF4_MAXPOP1];
-	uint8_t	   StageExp  [cJU_LEAF4_MAXPOP1];  // Expanses of new leaves
-	uint8_t	   SubJPCount[cJU_NUMSUBEXPB];     // JPs in each subexpanse
-	jbb_t      StageJBB;                       // staged bitmap branch
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF4);
-	assert((JU_JPDCDPOP0(Pjp) & 0xFFFFFFFF) == (cJU_LEAF4_MAXPOP1-1));
-
-//	Get the address of the Leaf
-	PLeaf = (uint32_t *) P_JLL(Pjp->jp_Addr);
-
-//	Extract 4 byte index Leaf to Word_t
-	j__udyCopy4toW(StageA, PLeaf, cJU_LEAF4_MAXPOP1);
-
-//	Get the address of the Leaf and Value area
-	JUDYLCODE(Pjv = JL_LEAF4VALUEAREA(PLeaf, cJU_LEAF4_MAXPOP1);)
-
-//  If Leaf is in 1 expanse -- just compress it (compare 1st, last & Index)
-
-	CIndex = StageA[0];
-	if (!JU_DIGITATSTATE(CIndex ^ StageA[cJU_LEAF4_MAXPOP1-1], 4))
-	{
-                Word_t DcdP0;
-		Pjll_t PjllRaw;	 // pointer to new leaf.
-		Pjll_t Pjll;
-      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new Leaf.
-
-//		Alloc a 3 byte Index Leaf
-		PjllRaw = j__udyAllocJLL3(cJU_LEAF4_MAXPOP1, Pjpm);
-		if (PjllRaw == (Pjlb_t)NULL) return(-1);  // out of memory
-
-		Pjll = P_JLL(PjllRaw);
-
-//		Copy Index area into new Leaf
-		j__udyCopyWto3((uint8_t *) Pjll, StageA, cJU_LEAF4_MAXPOP1);
-#ifdef JUDYL
-//		Copy Value area into new Leaf
-		Pjvnew = JL_LEAF3VALUEAREA(Pjll, cJU_LEAF4_MAXPOP1);
-		JU_COPYMEM(Pjvnew, Pjv, cJU_LEAF4_MAXPOP1);
-#endif
-		DBGCODE(JudyCheckSorted(Pjll, cJU_LEAF4_MAXPOP1, 3);)
-
-	        DcdP0 = JU_JPDCDPOP0(Pjp) | (CIndex & cJU_DCDMASK(3));
-                JU_JPSETADT(Pjp, (Word_t)PjllRaw, DcdP0, cJU_JPLEAF3);
-
-		return(1);
-	}
-
-//  Else in 2+ expanses, splay Leaf into smaller leaves at higher compression
-
-	StageJBB = StageJBBZero;       // zero staged bitmap branch
-	ZEROJP(SubJPCount);
-
-//	Splay the 4 byte index Leaf to 3 byte Index Leaves
-	for (ExpCnt = Start = 0, End = 1; ; End++)
-	{
-//		Check if new expanse or last one
-		if (	(End == cJU_LEAF4_MAXPOP1)
-				||
-			(JU_DIGITATSTATE(CIndex ^ StageA[End], 4))
-		   )
-		{
-//			Build a leaf below the previous expanse
-
-			Pjp_t  PjpJP	= StageJP + ExpCnt;
-			Word_t Pop1	= End - Start;
-			Word_t expanse = JU_DIGITATSTATE(CIndex, 4);
-			Word_t subexp  = expanse / cJU_BITSPERSUBEXPB;
-//
-//                      set the bit that is the current expanse
-			JU_JBB_BITMAP(&StageJBB, subexp) |= JU_BITPOSMASKB(expanse);
-#ifdef SUBEXPCOUNTS
-			StageJBB.jbb_subPop1[subexp] += Pop1; // pop of subexpanse
-#endif
-//                      count number of expanses in each subexpanse
-			SubJPCount[subexp]++;
-
-//			Save byte expanse of leaf
-			StageExp[ExpCnt] = JU_DIGITATSTATE(CIndex, 4);
-
-			if (Pop1 == 1)	// cJU_JPIMMED_3_01
-			{
-	                    Word_t DcdP0;
-	                    DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(3)) |
-                                CIndex;
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, DcdP0, cJ1_JPIMMED_3_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], DcdP0,
-                                cJL_JPIMMED_3_01);
-#endif  // JUDYL
-			}
-			else if (Pop1 <= cJU_IMMED3_MAXPOP1)
-			{
-//		cJ1_JPIMMED_3_02   :  Judy1 32
-//		cJL_JPIMMED_3_02   :  JudyL 64
-//		cJ1_JPIMMED_3_02..5:  Judy1 64
-
-#ifdef JUDYL
-//				Alloc is 1st in case of malloc fail
-				Pjv_t PjvnewRaw;  // value area of new leaf.
-				Pjv_t Pjvnew;
-
-//				Allocate Value area for Immediate Leaf
-				PjvnewRaw = j__udyLAllocJV(Pop1, Pjpm);
-				if (PjvnewRaw == (Pjv_t) NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjvnew = P_JV(PjvnewRaw);
-
-//				Copy to Values to Value Leaf
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-				PjpJP->jp_Addr = (Word_t) PjvnewRaw;
-
-//				Copy to Index to JP as an immediate Leaf
-				j__udyCopyWto3(PjpJP->jp_LIndex,
-					       StageA + Start, Pop1);
-#else
-				j__udyCopyWto3(PjpJP->jp_1Index,
-					       StageA + Start, Pop1);
-#endif
-//				Set type, population and Index size
-				PjpJP->jp_Type = cJU_JPIMMED_3_02 + Pop1 - 2;
-			}
-			else
-			{
-//		cJU_JPLEAF3
-                                Word_t  DcdP0;
-				Pjll_t PjllRaw;	 // pointer to new leaf.
-				Pjll_t Pjll;
-		      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-				PjllRaw = j__udyAllocJLL3(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t)NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjll = P_JLL(PjllRaw);
-
-//				Copy Indexes to new Leaf
-				j__udyCopyWto3((uint8_t *) Pjll, StageA + Start,
-					       Pop1);
-#ifdef JUDYL
-//				Copy to Values to new Leaf
-				Pjvnew = JL_LEAF3VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 3);)
-
-                                DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(4)) 
-                                                |
-                                        (CIndex & cJU_DCDMASK(4-1)) 
-                                                |
-                                        (Pop1 - 1);
-
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, DcdP0,
-                                        cJU_JPLEAF3);
-			}
-			ExpCnt++;
-//                      Done?
-			if (End == cJU_LEAF4_MAXPOP1) break;
-
-//			New Expanse, Start and Count
-			CIndex = StageA[End];
-			Start  = End;
-		}
-	}
-
-//      Now put all the Leaves below a BranchL or BranchB:
-	if (ExpCnt <= cJU_BRANCHLMAXJPS) // put the Leaves below a BranchL
-	{
-	    if (j__udyCreateBranchL(Pjp, StageJP, StageExp, ExpCnt,
-			Pjpm) == -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_L4;
-	}
-	else
-	{
-	    if (j__udyStageJBBtoJBB(Pjp, &StageJBB, StageJP, SubJPCount, Pjpm)
-		== -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-	}
-	return(1);
-
-}  // j__udyCascade4()
-
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E 5
-//
-// Cascade from a cJU_JPLEAF5 to one of the following:
-//  1. if leaf is in 1 expanse:
-//        compress it into a JPLEAF4
-//  2. if leaf contains multiple expanses:
-//        create linear or bitmap branch containing
-//        each new expanse is either a:
-//               JPIMMED_4_01  branch
-//               JPLEAF4
-
-FUNCTION int j__udyCascade5(
-	Pjp_t	   Pjp,
-	Pvoid_t	   Pjpm)
-{
-	uint8_t  * PLeaf;	// pointer to leaf, explicit type.
-	Word_t	   End, Start;	// temporaries.
-	Word_t	   ExpCnt;	// count of expanses of splay.
-	Word_t     CIndex;	// current Index word.
-JUDYLCODE(Pjv_t	   Pjv;)	// value area of leaf.
-
-//	Temp staging for parts(Leaves) of newly splayed leaf
-	jp_t	   StageJP   [cJU_LEAF5_MAXPOP1];  // JPs of new leaves
-	Word_t	   StageA    [cJU_LEAF5_MAXPOP1];
-	uint8_t	   StageExp  [cJU_LEAF5_MAXPOP1];  // Expanses of new leaves
-	uint8_t	   SubJPCount[cJU_NUMSUBEXPB];     // JPs in each subexpanse
-	jbb_t      StageJBB;                       // staged bitmap branch
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF5);
-	assert((JU_JPDCDPOP0(Pjp) & 0xFFFFFFFFFF) == (cJU_LEAF5_MAXPOP1-1));
-
-//	Get the address of the Leaf
-	PLeaf = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-//	Extract 5 byte index Leaf to Word_t
-	j__udyCopy5toW(StageA, PLeaf, cJU_LEAF5_MAXPOP1);
-
-//	Get the address of the Leaf and Value area
-	JUDYLCODE(Pjv = JL_LEAF5VALUEAREA(PLeaf, cJU_LEAF5_MAXPOP1);)
-
-//  If Leaf is in 1 expanse -- just compress it (compare 1st, last & Index)
-
-	CIndex = StageA[0];
-	if (!JU_DIGITATSTATE(CIndex ^ StageA[cJU_LEAF5_MAXPOP1-1], 5))
-	{
-                Word_t DcdP0;
-		Pjll_t PjllRaw;	 // pointer to new leaf.
-		Pjll_t Pjll;
-      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//		Alloc a 4 byte Index Leaf
-		PjllRaw = j__udyAllocJLL4(cJU_LEAF5_MAXPOP1, Pjpm);
-		if (PjllRaw == (Pjlb_t)NULL) return(-1);  // out of memory
-
-		Pjll = P_JLL(PjllRaw);
-
-//		Copy Index area into new Leaf
-		j__udyCopyWto4((uint8_t *) Pjll, StageA, cJU_LEAF5_MAXPOP1);
-#ifdef JUDYL
-//		Copy Value area into new Leaf
-		Pjvnew = JL_LEAF4VALUEAREA(Pjll, cJU_LEAF5_MAXPOP1);
-		JU_COPYMEM(Pjvnew, Pjv, cJU_LEAF5_MAXPOP1);
-#endif
-		DBGCODE(JudyCheckSorted(Pjll, cJU_LEAF5_MAXPOP1, 4);)
-
-	        DcdP0 = JU_JPDCDPOP0(Pjp) | (CIndex & cJU_DCDMASK(4));
-                JU_JPSETADT(Pjp, (Word_t)PjllRaw, DcdP0, cJU_JPLEAF4);
-
-		return(1);
-	}
-
-//  Else in 2+ expanses, splay Leaf into smaller leaves at higher compression
-
-	StageJBB = StageJBBZero;       // zero staged bitmap branch
-	ZEROJP(SubJPCount);
-
-//	Splay the 5 byte index Leaf to 4 byte Index Leaves
-	for (ExpCnt = Start = 0, End = 1; ; End++)
-	{
-//		Check if new expanse or last one
-		if (	(End == cJU_LEAF5_MAXPOP1)
-				||
-			(JU_DIGITATSTATE(CIndex ^ StageA[End], 5))
-		   )
-		{
-//			Build a leaf below the previous expanse
-
-			Pjp_t  PjpJP	= StageJP + ExpCnt;
-			Word_t Pop1	= End - Start;
-			Word_t expanse = JU_DIGITATSTATE(CIndex, 5);
-			Word_t subexp  = expanse / cJU_BITSPERSUBEXPB;
-//
-//                      set the bit that is the current expanse
-			JU_JBB_BITMAP(&StageJBB, subexp) |= JU_BITPOSMASKB(expanse);
-#ifdef SUBEXPCOUNTS
-			StageJBB.jbb_subPop1[subexp] += Pop1; // pop of subexpanse
-#endif
-//                      count number of expanses in each subexpanse
-			SubJPCount[subexp]++;
-
-//			Save byte expanse of leaf
-			StageExp[ExpCnt] = JU_DIGITATSTATE(CIndex, 5);
-
-			if (Pop1 == 1)	// cJU_JPIMMED_4_01
-			{
-	                    Word_t DcdP0;
-	                    DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(4)) |
-                                CIndex;
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, DcdP0, cJ1_JPIMMED_4_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], DcdP0,
-                                cJL_JPIMMED_4_01);
-#endif  // JUDYL
-			}
-#ifdef JUDY1
-			else if (Pop1 <= cJ1_IMMED4_MAXPOP1)
-			{
-//		cJ1_JPIMMED_4_02..3: Judy1 64
-
-//                              Copy to Index to JP as an immediate Leaf
-				j__udyCopyWto4(PjpJP->jp_1Index,
-					       StageA + Start, Pop1);
-
-//                              Set pointer, type, population and Index size
-				PjpJP->jp_Type = cJ1_JPIMMED_4_02 + Pop1 - 2;
-			}
-#endif
-			else
-			{
-//		cJU_JPLEAF4
-                                Word_t  DcdP0;
-				Pjll_t PjllRaw;	 // pointer to new leaf.
-				Pjll_t Pjll;
-		      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//				Get a new Leaf
-				PjllRaw = j__udyAllocJLL4(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t)NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjll = P_JLL(PjllRaw);
-
-//				Copy Indexes to new Leaf
-				j__udyCopyWto4((uint8_t *) Pjll, StageA + Start,
-					       Pop1);
-#ifdef JUDYL
-//				Copy to Values to new Leaf
-				Pjvnew = JL_LEAF4VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 4);)
-
-                                DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(5)) 
-                                                |
-                                        (CIndex & cJU_DCDMASK(5-1)) 
-                                                |
-                                        (Pop1 - 1);
-
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, DcdP0,
-                                        cJU_JPLEAF4);
-			}
-			ExpCnt++;
-//                      Done?
-			if (End == cJU_LEAF5_MAXPOP1) break;
-
-//			New Expanse, Start and Count
-			CIndex = StageA[End];
-			Start  = End;
-		}
-	}
-
-//      Now put all the Leaves below a BranchL or BranchB:
-	if (ExpCnt <= cJU_BRANCHLMAXJPS) // put the Leaves below a BranchL
-	{
-	    if (j__udyCreateBranchL(Pjp, StageJP, StageExp, ExpCnt,
-			Pjpm) == -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_L5;
-	}
-	else
-	{
-	    if (j__udyStageJBBtoJBB(Pjp, &StageJBB, StageJP, SubJPCount, Pjpm)
-		== -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-	}
-	return(1);
-
-}  // j__udyCascade5()
-
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E 6
-//
-// Cascade from a cJU_JPLEAF6 to one of the following:
-//  1. if leaf is in 1 expanse:
-//        compress it into a JPLEAF5
-//  2. if leaf contains multiple expanses:
-//        create linear or bitmap branch containing
-//        each new expanse is either a:
-//               JPIMMED_5_01 ... JPIMMED_5_03  branch
-//               JPIMMED_5_01  branch
-//               JPLEAF5
-
-FUNCTION int j__udyCascade6(
-	Pjp_t	   Pjp,
-	Pvoid_t	   Pjpm)
-{
-	uint8_t  * PLeaf;	// pointer to leaf, explicit type.
-	Word_t	   End, Start;	// temporaries.
-	Word_t	   ExpCnt;	// count of expanses of splay.
-	Word_t     CIndex;	// current Index word.
-JUDYLCODE(Pjv_t	   Pjv;)	// value area of leaf.
-
-//	Temp staging for parts(Leaves) of newly splayed leaf
-	jp_t	   StageJP   [cJU_LEAF6_MAXPOP1];  // JPs of new leaves
-	Word_t	   StageA    [cJU_LEAF6_MAXPOP1];
-	uint8_t	   StageExp  [cJU_LEAF6_MAXPOP1];  // Expanses of new leaves
-	uint8_t	   SubJPCount[cJU_NUMSUBEXPB];     // JPs in each subexpanse
-	jbb_t      StageJBB;                       // staged bitmap branch
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF6);
-	assert((JU_JPDCDPOP0(Pjp) & 0xFFFFFFFFFFFF) == (cJU_LEAF6_MAXPOP1-1));
-
-//	Get the address of the Leaf
-	PLeaf = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-//	Extract 6 byte index Leaf to Word_t
-	j__udyCopy6toW(StageA, PLeaf, cJU_LEAF6_MAXPOP1);
-
-//	Get the address of the Leaf and Value area
-	JUDYLCODE(Pjv = JL_LEAF6VALUEAREA(PLeaf, cJU_LEAF6_MAXPOP1);)
-
-//  If Leaf is in 1 expanse -- just compress it (compare 1st, last & Index)
-
-	CIndex = StageA[0];
-	if (!JU_DIGITATSTATE(CIndex ^ StageA[cJU_LEAF6_MAXPOP1-1], 6))
-	{
-                Word_t DcdP0;
-		Pjll_t PjllRaw;	 // pointer to new leaf.
-		Pjll_t Pjll;
-      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//		Alloc a 5 byte Index Leaf
-		PjllRaw = j__udyAllocJLL5(cJU_LEAF6_MAXPOP1, Pjpm);
-		if (PjllRaw == (Pjlb_t)NULL) return(-1);  // out of memory
-
-		Pjll = P_JLL(PjllRaw);
-
-//		Copy Index area into new Leaf
-		j__udyCopyWto5((uint8_t *) Pjll, StageA, cJU_LEAF6_MAXPOP1);
-#ifdef JUDYL
-//		Copy Value area into new Leaf
-		Pjvnew = JL_LEAF5VALUEAREA(Pjll, cJU_LEAF6_MAXPOP1);
-		JU_COPYMEM(Pjvnew, Pjv, cJU_LEAF6_MAXPOP1);
-#endif
-		DBGCODE(JudyCheckSorted(Pjll, cJU_LEAF6_MAXPOP1, 5);)
-
-	        DcdP0 = JU_JPDCDPOP0(Pjp) | (CIndex & cJU_DCDMASK(5));
-                JU_JPSETADT(Pjp, (Word_t)PjllRaw, DcdP0, cJU_JPLEAF5);
-
-		return(1);
-	}
-
-//  Else in 2+ expanses, splay Leaf into smaller leaves at higher compression
-
-	StageJBB = StageJBBZero;       // zero staged bitmap branch
-	ZEROJP(SubJPCount);
-
-//	Splay the 6 byte index Leaf to 5 byte Index Leaves
-	for (ExpCnt = Start = 0, End = 1; ; End++)
-	{
-//		Check if new expanse or last one
-		if (	(End == cJU_LEAF6_MAXPOP1)
-				||
-			(JU_DIGITATSTATE(CIndex ^ StageA[End], 6))
-		   )
-		{
-//			Build a leaf below the previous expanse
-
-			Pjp_t  PjpJP	= StageJP + ExpCnt;
-			Word_t Pop1	= End - Start;
-			Word_t expanse = JU_DIGITATSTATE(CIndex, 6);
-			Word_t subexp  = expanse / cJU_BITSPERSUBEXPB;
-//
-//                      set the bit that is the current expanse
-			JU_JBB_BITMAP(&StageJBB, subexp) |= JU_BITPOSMASKB(expanse);
-#ifdef SUBEXPCOUNTS
-			StageJBB.jbb_subPop1[subexp] += Pop1; // pop of subexpanse
-#endif
-//                      count number of expanses in each subexpanse
-			SubJPCount[subexp]++;
-
-//			Save byte expanse of leaf
-			StageExp[ExpCnt] = JU_DIGITATSTATE(CIndex, 6);
-
-			if (Pop1 == 1)	// cJU_JPIMMED_5_01
-			{
-	                    Word_t DcdP0;
-	                    DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(5)) |
-                                CIndex;
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, DcdP0, cJ1_JPIMMED_5_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], DcdP0,
-                                cJL_JPIMMED_5_01);
-#endif  // JUDYL
-			}
-#ifdef JUDY1
-			else if (Pop1 <= cJ1_IMMED5_MAXPOP1)
-			{
-//		cJ1_JPIMMED_5_02..3: Judy1 64
-
-//                              Copy to Index to JP as an immediate Leaf
-				j__udyCopyWto5(PjpJP->jp_1Index,
-					       StageA + Start, Pop1);
-
-//                              Set pointer, type, population and Index size
-				PjpJP->jp_Type = cJ1_JPIMMED_5_02 + Pop1 - 2;
-			}
-#endif
-			else
-			{
-//		cJU_JPLEAF5
-                                Word_t  DcdP0;
-				Pjll_t PjllRaw;	 // pointer to new leaf.
-				Pjll_t Pjll;
-		      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//				Get a new Leaf
-				PjllRaw = j__udyAllocJLL5(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t)NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-				Pjll = P_JLL(PjllRaw);
-
-//				Copy Indexes to new Leaf
-				j__udyCopyWto5((uint8_t *) Pjll, StageA + Start,
-					       Pop1);
-
-//				Copy to Values to new Leaf
-#ifdef JUDYL
-				Pjvnew = JL_LEAF5VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 5);)
-
-                                DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(6)) 
-                                                |
-                                        (CIndex & cJU_DCDMASK(6-1)) 
-                                                |
-                                        (Pop1 - 1);
-
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, DcdP0,
-                                        cJU_JPLEAF5);
-			}
-			ExpCnt++;
-//                      Done?
-			if (End == cJU_LEAF6_MAXPOP1) break;
-
-//			New Expanse, Start and Count
-			CIndex = StageA[End];
-			Start  = End;
-		}
-	}
-
-//      Now put all the Leaves below a BranchL or BranchB:
-	if (ExpCnt <= cJU_BRANCHLMAXJPS) // put the Leaves below a BranchL
-	{
-	    if (j__udyCreateBranchL(Pjp, StageJP, StageExp, ExpCnt,
-			Pjpm) == -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_L6;
-	}
-	else
-	{
-	    if (j__udyStageJBBtoJBB(Pjp, &StageJBB, StageJP, SubJPCount, Pjpm)
-		== -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-	}
-	return(1);
-
-}  // j__udyCascade6()
-
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E 7
-//
-// Cascade from a cJU_JPLEAF7 to one of the following:
-//  1. if leaf is in 1 expanse:
-//        compress it into a JPLEAF6
-//  2. if leaf contains multiple expanses:
-//        create linear or bitmap branch containing
-//        each new expanse is either a:
-//               JPIMMED_6_01 ... JPIMMED_6_02  branch
-//               JPIMMED_6_01  branch
-//               JPLEAF6
-
-FUNCTION int j__udyCascade7(
-	Pjp_t	   Pjp,
-	Pvoid_t	   Pjpm)
-{
-	uint8_t  * PLeaf;	// pointer to leaf, explicit type.
-	Word_t	   End, Start;	// temporaries.
-	Word_t	   ExpCnt;	// count of expanses of splay.
-	Word_t     CIndex;	// current Index word.
-JUDYLCODE(Pjv_t	   Pjv;)	// value area of leaf.
-
-//	Temp staging for parts(Leaves) of newly splayed leaf
-	jp_t	   StageJP   [cJU_LEAF7_MAXPOP1];  // JPs of new leaves
-	Word_t	   StageA    [cJU_LEAF7_MAXPOP1];
-	uint8_t	   StageExp  [cJU_LEAF7_MAXPOP1];  // Expanses of new leaves
-	uint8_t	   SubJPCount[cJU_NUMSUBEXPB];     // JPs in each subexpanse
-	jbb_t      StageJBB;                       // staged bitmap branch
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF7);
-	assert(JU_JPDCDPOP0(Pjp) == (cJU_LEAF7_MAXPOP1-1));
-
-//	Get the address of the Leaf
-	PLeaf = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-//	Extract 7 byte index Leaf to Word_t
-	j__udyCopy7toW(StageA, PLeaf, cJU_LEAF7_MAXPOP1);
-
-//	Get the address of the Leaf and Value area
-	JUDYLCODE(Pjv = JL_LEAF7VALUEAREA(PLeaf, cJU_LEAF7_MAXPOP1);)
-
-//  If Leaf is in 1 expanse -- just compress it (compare 1st, last & Index)
-
-	CIndex = StageA[0];
-	if (!JU_DIGITATSTATE(CIndex ^ StageA[cJU_LEAF7_MAXPOP1-1], 7))
-	{
-                Word_t DcdP0;
-		Pjll_t PjllRaw;	 // pointer to new leaf.
-		Pjll_t Pjll;
-      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//		Alloc a 6 byte Index Leaf
-		PjllRaw = j__udyAllocJLL6(cJU_LEAF7_MAXPOP1, Pjpm);
-		if (PjllRaw == (Pjlb_t)NULL) return(-1);  // out of memory
-
-		Pjll = P_JLL(PjllRaw);
-
-//		Copy Index area into new Leaf
-		j__udyCopyWto6((uint8_t *) Pjll, StageA, cJU_LEAF7_MAXPOP1);
-#ifdef JUDYL
-//		Copy Value area into new Leaf
-		Pjvnew = JL_LEAF6VALUEAREA(Pjll, cJU_LEAF7_MAXPOP1);
-		JU_COPYMEM(Pjvnew, Pjv, cJU_LEAF7_MAXPOP1);
-#endif
-		DBGCODE(JudyCheckSorted(Pjll, cJU_LEAF7_MAXPOP1, 6);)
-
-	        DcdP0 = JU_JPDCDPOP0(Pjp) | (CIndex & cJU_DCDMASK(6));
-                JU_JPSETADT(Pjp, (Word_t)PjllRaw, DcdP0, cJU_JPLEAF6);
-
-		return(1);
-	}
-
-//  Else in 2+ expanses, splay Leaf into smaller leaves at higher compression
-
-	StageJBB = StageJBBZero;       // zero staged bitmap branch
-	ZEROJP(SubJPCount);
-
-//	Splay the 7 byte index Leaf to 6 byte Index Leaves
-	for (ExpCnt = Start = 0, End = 1; ; End++)
-	{
-//		Check if new expanse or last one
-		if (	(End == cJU_LEAF7_MAXPOP1)
-				||
-			(JU_DIGITATSTATE(CIndex ^ StageA[End], 7))
-		   )
-		{
-//			Build a leaf below the previous expanse
-
-			Pjp_t  PjpJP	= StageJP + ExpCnt;
-			Word_t Pop1	= End - Start;
-			Word_t expanse = JU_DIGITATSTATE(CIndex, 7);
-			Word_t subexp  = expanse / cJU_BITSPERSUBEXPB;
-//
-//                      set the bit that is the current expanse
-			JU_JBB_BITMAP(&StageJBB, subexp) |= JU_BITPOSMASKB(expanse);
-#ifdef SUBEXPCOUNTS
-			StageJBB.jbb_subPop1[subexp] += Pop1; // pop of subexpanse
-#endif
-//                      count number of expanses in each subexpanse
-			SubJPCount[subexp]++;
-
-//			Save byte expanse of leaf
-			StageExp[ExpCnt] = JU_DIGITATSTATE(CIndex, 7);
-
-			if (Pop1 == 1)	// cJU_JPIMMED_6_01
-			{
-	                    Word_t DcdP0;
-	                    DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(6)) |
-                                CIndex;
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, DcdP0, cJ1_JPIMMED_6_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], DcdP0,
-                                cJL_JPIMMED_6_01);
-#endif  // JUDYL
-			}
-#ifdef JUDY1
-			else if (Pop1 == cJ1_IMMED6_MAXPOP1)
-			{
-//		cJ1_JPIMMED_6_02:    Judy1 64
-
-//                              Copy to Index to JP as an immediate Leaf
-				j__udyCopyWto6(PjpJP->jp_1Index,
-					       StageA + Start, 2);
-
-//                              Set pointer, type, population and Index size
-				PjpJP->jp_Type = cJ1_JPIMMED_6_02;
-			}
-#endif
-			else
-			{
-//		cJU_JPLEAF6
-                                Word_t  DcdP0;
-				Pjll_t PjllRaw;	 // pointer to new leaf.
-				Pjll_t Pjll;
-		      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-
-//				Get a new Leaf
-				PjllRaw = j__udyAllocJLL6(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t)NULL)
-					FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-				Pjll = P_JLL(PjllRaw);
-
-//				Copy Indexes to new Leaf
-				j__udyCopyWto6((uint8_t *) Pjll, StageA + Start,
-					       Pop1);
-#ifdef JUDYL
-//				Copy to Values to new Leaf
-				Pjvnew = JL_LEAF6VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 6);)
-
-                                DcdP0 = (JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(7)) 
-                                                |
-                                        (CIndex & cJU_DCDMASK(7-1)) 
-                                                |
-                                        (Pop1 - 1);
-
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, DcdP0,
-                                        cJU_JPLEAF6);
-			}
-			ExpCnt++;
-//                      Done?
-			if (End == cJU_LEAF7_MAXPOP1) break;
-
-//			New Expanse, Start and Count
-			CIndex = StageA[End];
-			Start  = End;
-		}
-	}
-
-//      Now put all the Leaves below a BranchL or BranchB:
-	if (ExpCnt <= cJU_BRANCHLMAXJPS) // put the Leaves below a BranchL
-	{
-	    if (j__udyCreateBranchL(Pjp, StageJP, StageExp, ExpCnt,
-			Pjpm) == -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_L7;
-	}
-	else
-	{
-	    if (j__udyStageJBBtoJBB(Pjp, &StageJBB, StageJP, SubJPCount, Pjpm)
-		== -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-	}
-	return(1);
-
-}  // j__udyCascade7()
-
-#endif // JU_64BIT
-
-
-// ****************************************************************************
-// __ J U D Y   C A S C A D E   L
-//
-// (Compressed) cJU_LEAF3[7], cJ1_JPBRANCH_L.
-//
-// Cascade from a LEAFW (under Pjp) to one of the following:
-//  1. if LEAFW is in 1 expanse:
-//        create linear branch with a JPLEAF3[7] under it
-//  2. LEAFW contains multiple expanses:
-//        create linear or bitmap branch containing new expanses
-//        each new expanse is either a: 32   64
-//               JPIMMED_3_01  branch    Y    N
-//               JPIMMED_7_01  branch    N    Y
-//               JPLEAF3                 Y    N
-//               JPLEAF7                 N    Y
-
-FUNCTION int j__udyCascadeL(
-	Pjp_t	   Pjp,
-	Pvoid_t	   Pjpm)
-{
-	Pjlw_t	   Pjlw;	// leaf to work on.
-	Word_t	   End, Start;	// temporaries.
-	Word_t	   ExpCnt;	// count of expanses of splay.
-	Word_t	   CIndex;	// current Index word.
-JUDYLCODE(Pjv_t	   Pjv;)	// value area of leaf.
-
-//	Temp staging for parts(Leaves) of newly splayed leaf
-	jp_t	StageJP [cJU_LEAFW_MAXPOP1];
-	uint8_t	StageExp[cJU_LEAFW_MAXPOP1];
-	uint8_t	   SubJPCount[cJU_NUMSUBEXPB];     // JPs in each subexpanse
-	jbb_t      StageJBB;                       // staged bitmap branch
-
-//	Get the address of the Leaf
-	Pjlw = P_JLW(Pjp->jp_Addr);
-
-	assert(Pjlw[0] == (cJU_LEAFW_MAXPOP1 - 1));
-
-//	Get pointer to Value area of old Leaf
-	JUDYLCODE(Pjv = JL_LEAFWVALUEAREA(Pjlw, cJU_LEAFW_MAXPOP1);)
-
-	Pjlw++;		// Now point to Index area
-
-// If Leaf is in 1 expanse -- first compress it (compare 1st, last & Index):
-
-	CIndex = Pjlw[0];	// also used far below
-	if (!JU_DIGITATSTATE(CIndex ^ Pjlw[cJU_LEAFW_MAXPOP1 - 1],
-			     cJU_ROOTSTATE))
-	{
-		Pjll_t PjllRaw;		// pointer to new leaf.
-		Pjll_t Pjll;
-      JUDYLCODE(Pjv_t  Pjvnew;)		// value area of new leaf.
-
-//		Get the common expanse to all elements in Leaf
-		StageExp[0] = JU_DIGITATSTATE(CIndex, cJU_ROOTSTATE);
-
-//		Alloc a 3[7] byte Index Leaf
-#ifdef JU_64BIT
-		PjllRaw	= j__udyAllocJLL7(cJU_LEAFW_MAXPOP1, Pjpm);
-		if (PjllRaw == (Pjlb_t)NULL) return(-1);  // out of memory
-
-		Pjll = P_JLL(PjllRaw);
-
-//		Copy LEAFW to a cJU_JPLEAF7
-		j__udyCopyWto7((uint8_t *) Pjll, Pjlw, cJU_LEAFW_MAXPOP1);
-#ifdef JUDYL
-//		Get the Value area of new Leaf
-		Pjvnew = JL_LEAF7VALUEAREA(Pjll, cJU_LEAFW_MAXPOP1);
-		JU_COPYMEM(Pjvnew, Pjv, cJU_LEAFW_MAXPOP1);
-#endif
-		DBGCODE(JudyCheckSorted(Pjll, cJU_LEAFW_MAXPOP1, 7);)
-#else // 32 Bit
-		PjllRaw	= j__udyAllocJLL3(cJU_LEAFW_MAXPOP1, Pjpm);
-		if (PjllRaw == (Pjll_t) NULL) return(-1);
-
-		Pjll = P_JLL(PjllRaw);
-
-//		Copy LEAFW to a cJU_JPLEAF3
-		j__udyCopyWto3((uint8_t *) Pjll, Pjlw, cJU_LEAFW_MAXPOP1);
-#ifdef JUDYL
-//		Get the Value area of new Leaf
-		Pjvnew = JL_LEAF3VALUEAREA(Pjll, cJU_LEAFW_MAXPOP1);
-		JU_COPYMEM(Pjvnew, Pjv, cJU_LEAFW_MAXPOP1);
-#endif
-		DBGCODE(JudyCheckSorted(Pjll, cJU_LEAFW_MAXPOP1, 3);)
-#endif  // 32 Bit
-
-//		Following not needed because cJU_DCDMASK(3[7]) is == 0
-//////		StageJP[0].jp_DcdPopO	|= (CIndex & cJU_DCDMASK(3[7]));
-#ifdef JU_64BIT
-                JU_JPSETADT(&(StageJP[0]), (Word_t)PjllRaw, cJU_LEAFW_MAXPOP1-1,
-                                cJU_JPLEAF7);
-#else   // 32BIT
-                JU_JPSETADT(&(StageJP[0]), (Word_t)PjllRaw, cJU_LEAFW_MAXPOP1-1,
-                                cJU_JPLEAF3);
-#endif  // 32BIT
-//		Create a 1 element Linear branch
-		if (j__udyCreateBranchL(Pjp, StageJP, StageExp, 1, Pjpm) == -1)
-		    return(-1);
-
-//		Change the type of callers JP
-		Pjp->jp_Type = cJU_JPBRANCH_L;
-
-		return(1);
-	}
-
-//  Else in 2+ expanses, splay Leaf into smaller leaves at higher compression
-
-	StageJBB = StageJBBZero;       // zero staged bitmap branch
-	ZEROJP(SubJPCount);
-
-//	Splay the 4[8] byte Index Leaf to 3[7] byte Index Leaves
-	for (ExpCnt = Start = 0, End = 1; ; End++)
-	{
-//		Check if new expanse or last one
-		if (	(End == cJU_LEAFW_MAXPOP1)
-				||
-			(JU_DIGITATSTATE(CIndex ^ Pjlw[End], cJU_ROOTSTATE))
-		   )
-		{
-//			Build a leaf below the previous expanse
-
-			Pjp_t  PjpJP	= StageJP + ExpCnt;
-			Word_t Pop1	= End - Start;
-			Word_t expanse = JU_DIGITATSTATE(CIndex, cJU_ROOTSTATE);
-			Word_t subexp  = expanse / cJU_BITSPERSUBEXPB;
-//
-//                      set the bit that is the current expanse
-			JU_JBB_BITMAP(&StageJBB, subexp) |= JU_BITPOSMASKB(expanse);
-#ifdef SUBEXPCOUNTS
-			StageJBB.jbb_subPop1[subexp] += Pop1; // pop of subexpanse
-#endif
-//                      count number of expanses in each subexpanse
-			SubJPCount[subexp]++;
-
-//			Save byte expanse of leaf
-			StageExp[ExpCnt] = JU_DIGITATSTATE(CIndex,
-							   cJU_ROOTSTATE);
-
-			if (Pop1 == 1)	// cJU_JPIMMED_3[7]_01
-			{
-#ifdef  JU_64BIT
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, CIndex, cJ1_JPIMMED_7_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], CIndex,
-                                cJL_JPIMMED_7_01);
-#endif  // JUDYL
-
-#else   // JU_32BIT
-#ifdef JUDY1
-                            JU_JPSETADT(PjpJP, 0, CIndex, cJ1_JPIMMED_3_01);
-#else   // JUDYL
-                            JU_JPSETADT(PjpJP, Pjv[Start], CIndex,
-                                cJL_JPIMMED_3_01);
-#endif  // JUDYL
-#endif  // JU_32BIT
-			}
-#ifdef JUDY1
-#ifdef  JU_64BIT
-			else if (Pop1 <= cJ1_IMMED7_MAXPOP1)
-#else
-			else if (Pop1 <= cJ1_IMMED3_MAXPOP1)
-#endif
-			{
-//		cJ1_JPIMMED_3_02   :  Judy1 32
-//		cJ1_JPIMMED_7_02   :  Judy1 64
-//                              Copy to JP as an immediate Leaf
-#ifdef  JU_64BIT
-				j__udyCopyWto7(PjpJP->jp_1Index, Pjlw+Start, 2);
-				PjpJP->jp_Type = cJ1_JPIMMED_7_02;
-#else
-				j__udyCopyWto3(PjpJP->jp_1Index, Pjlw+Start, 2);
-				PjpJP->jp_Type = cJ1_JPIMMED_3_02;
-#endif // 32 Bit
-			}
-#endif // JUDY1
-			else // Linear Leaf JPLEAF3[7]
-			{
-//		cJU_JPLEAF3[7]
-				Pjll_t PjllRaw;	 // pointer to new leaf.
-				Pjll_t Pjll;
-		      JUDYLCODE(Pjv_t  Pjvnew;)	 // value area of new leaf.
-#ifdef JU_64BIT
-				PjllRaw = j__udyAllocJLL7(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t) NULL) return(-1);
-				Pjll = P_JLL(PjllRaw);
-
-				j__udyCopyWto7((uint8_t *) Pjll, Pjlw + Start,
-					       Pop1);
-#ifdef JUDYL
-				Pjvnew = JL_LEAF7VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif // JUDYL
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 7);)
-#else // JU_64BIT - 32 Bit
-				PjllRaw = j__udyAllocJLL3(Pop1, Pjpm);
-				if (PjllRaw == (Pjll_t) NULL) return(-1);
-				Pjll = P_JLL(PjllRaw);
-
-				j__udyCopyWto3((uint8_t *) Pjll, Pjlw + Start,
-					       Pop1);
-#ifdef JUDYL
-				Pjvnew = JL_LEAF3VALUEAREA(Pjll, Pop1);
-				JU_COPYMEM(Pjvnew, Pjv + Start, Pop1);
-#endif // JUDYL
-				DBGCODE(JudyCheckSorted(Pjll, Pop1, 3);)
-#endif // 32 Bit
-
-#ifdef JU_64BIT
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, Pop1 - 1,
-                                        cJU_JPLEAF7);
-#else // JU_64BIT - 32 Bit
-                                JU_JPSETADT(PjpJP, (Word_t)PjllRaw, Pop1 - 1,
-                                        cJU_JPLEAF3);
-#endif // 32 Bit
-			}
-			ExpCnt++;
-//                      Done?
-			if (End == cJU_LEAFW_MAXPOP1) break;
-
-//			New Expanse, Start and Count
-			CIndex = Pjlw[End];
-			Start  = End;
-		}
-	}
-
-// Now put all the Leaves below a BranchL or BranchB:
-	if (ExpCnt <= cJU_BRANCHLMAXJPS) // put the Leaves below a BranchL
-	{
-	    if (j__udyCreateBranchL(Pjp, StageJP, StageExp, ExpCnt,
-			Pjpm) == -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_L;
-	}
-	else
-	{
-	    if (j__udyStageJBBtoJBB(Pjp, &StageJBB, StageJP, SubJPCount, Pjpm)
-		== -1) FREEALLEXIT(ExpCnt, StageJP, Pjpm);
-
-	    Pjp->jp_Type = cJU_JPBRANCH_B;  // cJU_LEAFW is out of sequence
-	}
-	return(1);
-
-} // j__udyCascadeL()
diff --git a/libs/klib/judy/JudyCount.c b/libs/klib/judy/JudyCount.c
deleted file mode 100644
index a8a6eb1..0000000
--- a/libs/klib/judy/JudyCount.c
+++ /dev/null
@@ -1,1193 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy*Count() function for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// Compile with -DNOSMARTJBB, -DNOSMARTJBU, and/or -DNOSMARTJLB to build a
-// version with cache line optimizations deleted, for testing.
-//
-// Compile with -DSMARTMETRICS to obtain global variables containing smart
-// cache line metrics.  Note:  Dont turn this on simultaneously for this file
-// and JudyByCount.c because they export the same globals.
-//
-// Judy*Count() returns the "count of Indexes" (inclusive) between the two
-// specified limits (Indexes).  This code is remarkably fast.  It traverses the
-// "Judy array" data structure.
-//
-// This count code is the GENERIC untuned version (minimum code size).  It
-// might be possible to tuned to a specific architecture to be faster.
-// However, in real applications, with a modern machine, it is expected that
-// the instruction times will be swamped by cache line fills.
-// ****************************************************************************
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-
-// define a phoney that is for sure
-
-#define cJU_LEAFW       cJU_JPIMMED_CAP
-
-// Avoid duplicate symbols since this file is multi-compiled:
-
-#ifdef SMARTMETRICS
-#ifdef JUDY1
-Word_t jbb_upward   = 0;	// counts of directions taken:
-Word_t jbb_downward = 0;
-Word_t jbu_upward   = 0;
-Word_t jbu_downward = 0;
-Word_t jlb_upward   = 0;
-Word_t jlb_downward = 0;
-#else
-extern Word_t jbb_upward;
-extern Word_t jbb_downward;
-extern Word_t jbu_upward;
-extern Word_t jbu_downward;
-extern Word_t jlb_upward;
-extern Word_t jlb_downward;
-#endif
-#endif
-
-
-// FORWARD DECLARATIONS (prototypes):
-
-static	Word_t j__udy1LCountSM(const Pjp_t Pjp, const Word_t Index,
-			       const Pjpm_t Pjpm);
-
-// Each of Judy1 and JudyL get their own private (static) version of this
-// function:
-
-static	int j__udyCountLeafB1(const Pjll_t Pjll, const Word_t Pop1,
-			      const Word_t Index);
-
-// These functions are not static because they are exported to Judy*ByCount():
-//
-// TBD:  Should be made static for performance reasons?  And thus duplicated?
-//
-// Note:  There really are two different functions, but for convenience they
-// are referred to here with a generic name.
-
-#ifdef JUDY1
-#define	j__udyJPPop1 j__udy1JPPop1
-#else
-#define	j__udyJPPop1 j__udyLJPPop1
-#endif
-
-Word_t j__udyJPPop1(const Pjp_t Pjp);
-
-
-// LOCAL ERROR HANDLING:
-//
-// The Judy*Count() functions are unusual because they return 0 instead of JERR
-// for an error.  In this source file, define C_JERR for clarity.
-
-#define	C_JERR 0
-
-
-// ****************************************************************************
-// J U D Y   1   C O U N T
-// J U D Y   L   C O U N T
-//
-// See the manual entry for details.
-//
-// This code is written recursively, at least at first, because thats much
-// simpler; hope its fast enough.
-
-#ifdef JUDY1
-FUNCTION Word_t Judy1Count
-#else
-FUNCTION Word_t JudyLCount
-#endif
-        (
-	Pcvoid_t  PArray,	// JRP to first branch/leaf in SM.
-	Word_t	  Index1,	// starting Index.
-	Word_t	  Index2,	// ending Index.
-	PJError_t PJError	// optional, for returning error info.
-        )
-{
-	jpm_t	  fakejpm;	// local temporary for small arrays.
-	Pjpm_t	  Pjpm;		// top JPM or local temporary for error info.
-	jp_t	  fakejp;	// constructed for calling j__udy1LCountSM().
-	Pjp_t	  Pjp;		// JP to pass to j__udy1LCountSM().
-	Word_t	  pop1;		// total for the array.
-	Word_t	  pop1above1;	// indexes at or above Index1, inclusive.
-	Word_t	  pop1above2;	// indexes at or above Index2, exclusive.
-	int	  retcode;	// from Judy*First() calls.
-JUDYLCODE(PPvoid_t PPvalue);	// from JudyLFirst() calls.
-
-
-// CHECK FOR SHORTCUTS:
-//
-// As documented, return C_JERR if the Judy array is empty or Index1 > Index2.
-
-	if ((PArray == (Pvoid_t) NULL) || (Index1 > Index2))
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NONE);
-	    return(C_JERR);
-	}
-
-// If Index1 == Index2, simply check if the specified Index is set; pass
-// through the return value from Judy1Test() or JudyLGet() with appropriate
-// translations.
-
-	if (Index1 == Index2)
-	{
-#ifdef JUDY1
-	    retcode = Judy1Test(PArray, Index1, PJError);
-
-	    if (retcode == JERRI) return(C_JERR);	// pass through error.
-
-	    if (retcode == 0)
-	    {
-		JU_SET_ERRNO(PJError, JU_ERRNO_NONE);
-		return(C_JERR);
-	    }
-#else
-	    PPvalue = JudyLGet(PArray, Index1, PJError);
-
-	    if (PPvalue == PPJERR) return(C_JERR);	// pass through error.
-
-	    if (PPvalue == (PPvoid_t) NULL)		// Index is not set.
-	    {
-		JU_SET_ERRNO(PJError, JU_ERRNO_NONE);
-		return(C_JERR);
-	    }
-#endif
-	    return(1);					// single index is set.
-	}
-
-
-// CHECK JRP TYPE:
-//
-// Use an if/then for speed rather than a switch, and put the most common cases
-// first.
-//
-// Note:  Since even cJU_LEAFW types require counting between two Indexes,
-// prepare them here for common code below that calls j__udy1LCountSM(), rather
-// than handling them even more specially here.
-
-	if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-	{
-	    Pjlw_t Pjlw	   = P_JLW(PArray);	// first word of leaf.
-	    Pjpm	   = & fakejpm;
-	    Pjp		   = & fakejp;
-	    Pjp->jp_Addr   = (Word_t) Pjlw;
-	    Pjp->jp_Type   = cJU_LEAFW;
-	    Pjpm->jpm_Pop0 = Pjlw[0];		// from first word of leaf.
-	    pop1	   = Pjpm->jpm_Pop0 + 1;
-	}
-	else
-	{
-	    Pjpm = P_JPM(PArray);
-	    Pjp	 = &(Pjpm->jpm_JP);
-	    pop1 = (Pjpm->jpm_Pop0) + 1;	// note: can roll over to 0.
-
-#if (defined(JUDY1) && (! defined(JU_64BIT)))
-	    if (pop1 == 0)		// rare special case of full array:
-	    {
-		Word_t count = Index2 - Index1 + 1;	// can roll over again.
-
-		if (count == 0)
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_FULL);
-		    return(C_JERR);
-		}
-		return(count);
-	    }
-#else
-	    assert(pop1);	// JudyL or 64-bit cannot create a full array!
-#endif
-	}
-
-
-// COUNT POP1 ABOVE INDEX1, INCLUSIVE:
-
-	assert(pop1);		// just to be safe.
-
-	if (Index1 == 0)	// shortcut, pop1above1 is entire population:
-	{
-	    pop1above1 = pop1;
-	}
-	else			// find first valid Index above Index1, if any:
-	{
-#ifdef JUDY1
-	    if ((retcode = Judy1First(PArray, & Index1, PJError)) == JERRI)
-		return(C_JERR);			// pass through error.
-#else
-	    if ((PPvalue = JudyLFirst(PArray, & Index1, PJError)) == PPJERR)
-		return(C_JERR);			// pass through error.
-
-	    retcode = (PPvalue != (PPvoid_t) NULL);	// found a next Index.
-#endif
-
-// If theres no Index at or above Index1, just return C_JERR (early exit):
-
-	    if (retcode == 0)
-	    {
-		JU_SET_ERRNO(PJError, JU_ERRNO_NONE);
-		return(C_JERR);
-	    }
-
-// If a first/next Index was found, call the counting motor starting with that
-// known valid Index, meaning the return should be positive, not C_JERR except
-// in case of a real error:
-
-	    if ((pop1above1 = j__udy1LCountSM(Pjp, Index1, Pjpm)) == C_JERR)
-	    {
-		JU_COPY_ERRNO(PJError, Pjpm);	// pass through error.
-		return(C_JERR);
-	    }
-	}
-
-
-// COUNT POP1 ABOVE INDEX2, EXCLUSIVE, AND RETURN THE DIFFERENCE:
-//
-// In principle, calculate the ordinal of each Index and take the difference,
-// with caution about off-by-one errors due to the specified Indexes being set
-// or unset.  In practice:
-//
-// - The ordinals computed here are inverse ordinals, that is, the populations
-//   ABOVE the specified Indexes (Index1 inclusive, Index2 exclusive), so
-//   subtract pop1above2 from pop1above1, rather than vice-versa.
-//
-// - Index1s result already includes a count for Index1 and/or Index2 if
-//   either is set, so calculate pop1above2 exclusive of Index2.
-//
-// TBD:  If Index1 and Index2 fall in the same expanse in the top-state
-// branch(es), would it be faster to walk the SM only once, to their divergence
-// point, before calling j__udy1LCountSM() or equivalent?  Possibly a non-issue
-// if a top-state pop1 becomes stored with each Judy1 array.  Also, consider
-// whether the first call of j__udy1LCountSM() fills the cache, for common tree
-// branches, for the second call.
-//
-// As for pop1above1, look for shortcuts for special cases when pop1above2 is
-// zero.  Otherwise call the counting "motor".
-
-	    assert(pop1above1);		// just to be safe.
-
-	    if (Index2++ == cJU_ALLONES) return(pop1above1); // Index2 at limit.
-
-#ifdef JUDY1
-	    if ((retcode = Judy1First(PArray, & Index2, PJError)) == JERRI)
-		return(C_JERR);
-#else
-	    if ((PPvalue = JudyLFirst(PArray, & Index2, PJError)) == PPJERR)
-		return(C_JERR);
-
-	    retcode = (PPvalue != (PPvoid_t) NULL);	// found a next Index.
-#endif
-	    if (retcode == 0) return(pop1above1);  // no Index above Index2.
-
-// Just as for Index1, j__udy1LCountSM() cannot return 0 (locally == C_JERR)
-// except in case of a real error:
-
-	    if ((pop1above2 = j__udy1LCountSM(Pjp, Index2, Pjpm)) == C_JERR)
-	    {
-		JU_COPY_ERRNO(PJError, Pjpm);		// pass through error.
-		return(C_JERR);
-	    }
-
-	    if (pop1above1 == pop1above2)
-	    {
-		JU_SET_ERRNO(PJError, JU_ERRNO_NONE);
-		return(C_JERR);
-	    }
-
-	    return(pop1above1 - pop1above2);
-
-} // Judy1Count() / JudyLCount()
-
-
-// ****************************************************************************
-// __ J U D Y 1 L   C O U N T   S M
-//
-// Given a pointer to a JP (with invalid jp_DcdPopO at cJU_ROOTSTATE), a known
-// valid Index, and a Pjpm for returning error info, recursively visit a Judy
-// array state machine (SM) and return the count of Indexes, including Index,
-// through the end of the Judy array at this state or below.  In case of error
-// or a count of 0 (should never happen), return C_JERR with appropriate
-// JU_ERRNO in the Pjpm.
-//
-// Note:  This function is not told the current state because its encoded in
-// the JP Type.
-//
-// Method:  To minimize cache line fills, while studying each branch, if Index
-// resides above the midpoint of the branch (which often consists of multiple
-// cache lines), ADD the populations at or above Index; otherwise, SUBTRACT
-// from the population of the WHOLE branch (available from the JP) the
-// populations at or above Index.  This is especially tricky for bitmap
-// branches.
-//
-// Note:  Unlike, say, the Ins and Del walk routines, this function returns the
-// same type of returns as Judy*Count(), so it can use *_SET_ERRNO*() macros
-// the same way.
-
-FUNCTION static Word_t j__udy1LCountSM(
-const	Pjp_t	Pjp,		// top of Judy (sub)SM.
-const	Word_t	Index,		// count at or above this Index.
-const	Pjpm_t	Pjpm)		// for returning error info.
-{
-	Pjbl_t	Pjbl;		// Pjp->jp_Addr masked and cast to types:
-	Pjbb_t	Pjbb;
-	Pjbu_t	Pjbu;
-	Pjll_t	Pjll;		// a Judy lower-level linear leaf.
-
-	Word_t	digit;		// next digit to decode from Index.
-	long	jpnum;		// JP number in a branch (base 0).
-	int	offset;		// index ordinal within a leaf, base 0.
-	Word_t	pop1;		// total population of an expanse.
-	Word_t	pop1above;	// to return.
-
-// Common code to check Decode bits in a JP against the equivalent portion of
-// Index; XOR together, then mask bits of interest; must be all 0:
-//
-// Note:  Why does this code only assert() compliance rather than actively
-// checking for outliers?  Its because Index is supposed to be valid, hence
-// always match any Dcd bits traversed.
-//
-// Note:  This assertion turns out to be always true for cState = 3 on 32-bit
-// and 7 on 64-bit, but its harmless, probably removed by the compiler.
-
-#define	CHECKDCD(Pjp,cState) \
-	assert(! JU_DCDNOTMATCHINDEX(Index, Pjp, cState))
-
-// Common code to prepare to handle a root-level or lower-level branch:
-// Extract a state-dependent digit from Index in a "constant" way, obtain the
-// total population for the branch in a state-dependent way, and then branch to
-// common code for multiple cases:
-//
-// For root-level branches, the state is always cJU_ROOTSTATE, and the
-// population is received in Pjpm->jpm_Pop0.
-//
-// Note:  The total population is only needed in cases where the common code
-// "counts up" instead of down to minimize cache line fills.  However, its
-// available cheaply, and its better to do it with a constant shift (constant
-// state value) instead of a variable shift later "when needed".
-
-#define	PREPB_ROOT(Pjp,Next)				\
-	digit = JU_DIGITATSTATE(Index, cJU_ROOTSTATE);	\
-	pop1  = (Pjpm->jpm_Pop0) + 1;			\
-	goto Next
-
-#define	PREPB(Pjp,cState,Next)				\
-	digit = JU_DIGITATSTATE(Index, cState);		\
-	pop1  = JU_JPBRANCH_POP0(Pjp, (cState)) + 1;    \
-	goto Next
-
-
-// SWITCH ON JP TYPE:
-//
-// WARNING:  For run-time efficiency the following cases replicate code with
-// varying constants, rather than using common code with variable values!
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// ----------------------------------------------------------------------------
-// ROOT-STATE LEAF that starts with a Pop0 word; just count within the leaf:
-
-	case cJU_LEAFW:
-	{
-	    Pjlw_t Pjlw = P_JLW(Pjp->jp_Addr);		// first word of leaf.
-
-	    assert((Pjpm->jpm_Pop0) + 1 == Pjlw[0] + 1);  // sent correctly.
-	    offset = j__udySearchLeafW(Pjlw + 1, Pjpm->jpm_Pop0 + 1, Index);
-	    assert(offset >= 0);			// Index must exist.
-	    assert(offset < (Pjpm->jpm_Pop0) + 1);	// Index be in range.
-	    return((Pjpm->jpm_Pop0) + 1 - offset);	// INCLUSIVE of Index.
-	}
-
-// ----------------------------------------------------------------------------
-// LINEAR BRANCH; count populations in JPs in the JBL ABOVE the next digit in
-// Index, and recurse for the next digit in Index:
-//
-// Note:  There are no null JPs in a JBL; watch out for pop1 == 0.
-//
-// Note:  A JBL should always fit in one cache line => no need to count up
-// versus down to save cache line fills.  (PREPB() sets pop1 for no reason.)
-
-	case cJU_JPBRANCH_L2:  CHECKDCD(Pjp, 2); PREPB(Pjp, 2, BranchL);
-	case cJU_JPBRANCH_L3:  CHECKDCD(Pjp, 3); PREPB(Pjp, 3, BranchL);
-
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_L4:  CHECKDCD(Pjp, 4); PREPB(Pjp, 4, BranchL);
-	case cJU_JPBRANCH_L5:  CHECKDCD(Pjp, 5); PREPB(Pjp, 5, BranchL);
-	case cJU_JPBRANCH_L6:  CHECKDCD(Pjp, 6); PREPB(Pjp, 6, BranchL);
-	case cJU_JPBRANCH_L7:  CHECKDCD(Pjp, 7); PREPB(Pjp, 7, BranchL);
-#endif
-	case cJU_JPBRANCH_L:   PREPB_ROOT(Pjp, BranchL);
-
-// Common code (state-independent) for all cases of linear branches:
-
-BranchL:
-
-	Pjbl      = P_JBL(Pjp->jp_Addr);
-	jpnum     = Pjbl->jbl_NumJPs;			// above last JP.
-	pop1above = 0;
-
-	while (digit < (Pjbl->jbl_Expanse[--jpnum]))	 // still ABOVE digit.
-	{
-	    if ((pop1 = j__udyJPPop1((Pjbl->jbl_jp) + jpnum)) == cJU_ALLONES)
-	    {
-		JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-		return(C_JERR);
-	    }
-
-	    pop1above += pop1;
-	    assert(jpnum > 0);				// should find digit.
-	}
-
-	assert(digit == (Pjbl->jbl_Expanse[jpnum]));	// should find digit.
-
-	pop1 = j__udy1LCountSM((Pjbl->jbl_jp) + jpnum, Index, Pjpm);
-	if (pop1 == C_JERR) return(C_JERR);		// pass error up.
-
-	assert(pop1above + pop1);
-	return(pop1above + pop1);
-
-
-// ----------------------------------------------------------------------------
-// BITMAP BRANCH; count populations in JPs in the JBB ABOVE the next digit in
-// Index, and recurse for the next digit in Index:
-//
-// Note:  There are no null JPs in a JBB; watch out for pop1 == 0.
-
-	case cJU_JPBRANCH_B2:  CHECKDCD(Pjp, 2); PREPB(Pjp, 2, BranchB);
-	case cJU_JPBRANCH_B3:  CHECKDCD(Pjp, 3); PREPB(Pjp, 3, BranchB);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_B4:  CHECKDCD(Pjp, 4); PREPB(Pjp, 4, BranchB);
-	case cJU_JPBRANCH_B5:  CHECKDCD(Pjp, 5); PREPB(Pjp, 5, BranchB);
-	case cJU_JPBRANCH_B6:  CHECKDCD(Pjp, 6); PREPB(Pjp, 6, BranchB);
-	case cJU_JPBRANCH_B7:  CHECKDCD(Pjp, 7); PREPB(Pjp, 7, BranchB);
-#endif
-	case cJU_JPBRANCH_B:   PREPB_ROOT(Pjp, BranchB);
-
-// Common code (state-independent) for all cases of bitmap branches:
-
-BranchB:
-	{
-	    long   subexp;	// for stepping through layer 1 (subexpanses).
-	    long   findsub;	// subexpanse containing   Index (digit).
-	    Word_t findbit;	// bit	      representing Index (digit).
-	    Word_t lowermask;	// bits for indexes at or below Index.
-	    Word_t jpcount;	// JPs in a subexpanse.
-	    Word_t clbelow;	// cache lines below digits cache line.
-	    Word_t clabove;	// cache lines above digits cache line.
-
-	    Pjbb      = P_JBB(Pjp->jp_Addr);
-	    findsub   = digit / cJU_BITSPERSUBEXPB;
-	    findbit   = digit % cJU_BITSPERSUBEXPB;
-	    lowermask = JU_MASKLOWERINC(JU_BITPOSMASKB(findbit));
-	    clbelow   = clabove = 0;	// initial/default => always downward.
-
-	    assert(JU_BITMAPTESTB(Pjbb, digit)); // digit must have a JP.
-	    assert(findsub < cJU_NUMSUBEXPB);	 // falls in expected range.
-
-// Shorthand for one subexpanse in a bitmap and for one JP in a bitmap branch:
-//
-// Note: BMPJP0 exists separately to support assertions.
-
-#define	BMPJP0(Subexp)       (P_JP(JU_JBB_PJP(Pjbb, Subexp)))
-#define	BMPJP(Subexp,JPnum)  (BMPJP0(Subexp) + (JPnum))
-
-#ifndef NOSMARTJBB  // enable to turn off smart code for comparison purposes.
-
-// FIGURE OUT WHICH DIRECTION CAUSES FEWER CACHE LINE FILLS; adding the pop1s
-// in JPs above Indexs JP, or subtracting the pop1s in JPs below Indexs JP.
-//
-// This is tricky because, while each set bit in the bitmap represents a JP,
-// the JPs are scattered over cJU_NUMSUBEXPB subexpanses, each of which can
-// contain JPs packed into multiple cache lines, and this code must visit every
-// JP either BELOW or ABOVE the JP for Index.
-//
-// Number of cache lines required to hold a linear list of the given number of
-// JPs, assuming the first JP is at the start of a cache line or the JPs in
-// jpcount fit wholly within a single cache line, which is ensured by
-// JudyMalloc():
-
-#define	CLPERJPS(jpcount) \
-	((((jpcount) * cJU_WORDSPERJP) + cJU_WORDSPERCL - 1) / cJU_WORDSPERCL)
-
-// Count cache lines below/above for each subexpanse:
-
-	    for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)
-	    {
-		jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp));
-
-// When at the subexpanse containing Index (digit), add cache lines
-// below/above appropriately, excluding the cache line containing the JP for
-// Index itself:
-
-		if	(subexp <  findsub)  clbelow += CLPERJPS(jpcount);
-		else if (subexp >  findsub)  clabove += CLPERJPS(jpcount);
-		else // (subexp == findsub)
-		{
-		    Word_t clfind;	// cache line containing Index (digit).
-
-		    clfind = CLPERJPS(j__udyCountBitsB(
-				    JU_JBB_BITMAP(Pjbb, subexp) & lowermask));
-
-		    assert(clfind > 0);	 // digit itself should have 1 CL.
-		    clbelow += clfind - 1;
-		    clabove += CLPERJPS(jpcount) - clfind;
-		}
-	    }
-#endif // ! NOSMARTJBB
-
-// Note:  Its impossible to get through the following "if" without setting
-// jpnum -- see some of the assertions below -- but gcc -Wall doesnt know
-// this, so preset jpnum to make it happy:
-
-	    jpnum = 0;
-
-
-// COUNT POPULATION FOR A BITMAP BRANCH, in whichever direction should result
-// in fewer cache line fills:
-//
-// Note:  If the remainder of Index is zero, pop1above is the pop1 of the
-// entire expanse and theres no point in recursing to lower levels; but this
-// should be so rare that its not worth checking for;
-// Judy1Count()/JudyLCount() never even calls the motor for Index == 0 (all
-// bytes).
-
-
-// COUNT UPWARD, subtracting each "below or at" JPs pop1 from the whole
-// expanses pop1:
-//
-// Note:  If this causes clbelow + 1 cache line fills including JPs cache
-// line, thats OK; at worst this is the same as clabove.
-
-	    if (clbelow < clabove)
-	    {
-#ifdef SMARTMETRICS
-		++jbb_upward;
-#endif
-		pop1above = pop1;		// subtract JPs at/below Index.
-
-// Count JPs for which to accrue pop1s in this subexpanse:
-//
-// TBD:  If JU_JBB_BITMAP is cJU_FULLBITMAPB, dont bother counting.
-
-		for (subexp = 0; subexp <= findsub; ++subexp)
-		{
-		    jpcount = j__udyCountBitsB((subexp < findsub) ?
-				      JU_JBB_BITMAP(Pjbb, subexp) :
-				      JU_JBB_BITMAP(Pjbb, subexp) & lowermask);
-
-		    // should always find findbit:
-		    assert((subexp < findsub) || jpcount);
-
-// Subtract pop1s from JPs BELOW OR AT Index (digit):
-//
-// Note:  The pop1 for Indexs JP itself is partially added back later at a
-// lower state.
-//
-// Note:  An empty subexpanse (jpcount == 0) is handled "for free".
-//
-// Note:  Must be null JP subexp pointer in empty subexpanse and non-empty in
-// non-empty subexpanse:
-
-		    assert(   jpcount  || (BMPJP0(subexp) == (Pjp_t) NULL));
-		    assert((! jpcount) || (BMPJP0(subexp) != (Pjp_t) NULL));
-
-		    for (jpnum = 0; jpnum < jpcount; ++jpnum)
-		    {
-			if ((pop1 = j__udyJPPop1(BMPJP(subexp, jpnum)))
-			    == cJU_ALLONES)
-			{
-			    JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-			    return(C_JERR);
-			}
-
-			pop1above -= pop1;
-		    }
-
-		    jpnum = jpcount - 1;	// make correct for digit.
-		}
-	    }
-
-// COUNT DOWNWARD, adding each "above" JPs pop1:
-
-	    else
-	    {
-		long jpcountbf;			// below findbit, inclusive.
-#ifdef SMARTMETRICS
-		++jbb_downward;
-#endif
-		pop1above = 0;			// add JPs above Index.
-		jpcountbf = 0;			// until subexp == findsub.
-
-// Count JPs for which to accrue pop1s in this subexpanse:
-//
-// This is more complicated than counting upward because the scan of digits
-// subexpanse must count ALL JPs, to know where to START counting down, and
-// ALSO note the offset of digits JP to know where to STOP counting down.
-
-		for (subexp = cJU_NUMSUBEXPB - 1; subexp >= findsub; --subexp)
-		{
-		    jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp));
-
-		    // should always find findbit:
-		    assert((subexp > findsub) || jpcount);
-
-		    if (! jpcount) continue;	// empty subexpanse, save time.
-
-// Count JPs below digit, inclusive:
-
-		    if (subexp == findsub)
-		    {
-			jpcountbf = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp)
-						  & lowermask);
-		    }
-
-		    // should always find findbit:
-		    assert((subexp > findsub) || jpcountbf);
-		    assert(jpcount >= jpcountbf);	// proper relationship.
-
-// Add pop1s from JPs ABOVE Index (digit):
-
-		    // no null JP subexp pointers:
-		    assert(BMPJP0(subexp) != (Pjp_t) NULL);
-
-		    for (jpnum = jpcount - 1; jpnum >= jpcountbf; --jpnum)
-		    {
-			if ((pop1 = j__udyJPPop1(BMPJP(subexp, jpnum)))
-			    == cJU_ALLONES)
-			{
-			    JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-			    return(C_JERR);
-			}
-
-			pop1above += pop1;
-		    }
-		    // jpnum is now correct for digit.
-		}
-	    } // else.
-
-// Return the net population ABOVE the digits JP at this state (in this JBB)
-// plus the population AT OR ABOVE Index in the SM under the digits JP:
-
-	    pop1 = j__udy1LCountSM(BMPJP(findsub, jpnum), Index, Pjpm);
-	    if (pop1 == C_JERR) return(C_JERR);		// pass error up.
-
-	    assert(pop1above + pop1);
-	    return(pop1above + pop1);
-
-	} // case.
-
-
-// ----------------------------------------------------------------------------
-// UNCOMPRESSED BRANCH; count populations in JPs in the JBU ABOVE the next
-// digit in Index, and recurse for the next digit in Index:
-//
-// Note:  If the remainder of Index is zero, pop1above is the pop1 of the
-// entire expanse and theres no point in recursing to lower levels; but this
-// should be so rare that its not worth checking for;
-// Judy1Count()/JudyLCount() never even calls the motor for Index == 0 (all
-// bytes).
-
-	case cJU_JPBRANCH_U2:  CHECKDCD(Pjp, 2); PREPB(Pjp, 2, BranchU);
-	case cJU_JPBRANCH_U3:  CHECKDCD(Pjp, 3); PREPB(Pjp, 3, BranchU);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_U4:  CHECKDCD(Pjp, 4); PREPB(Pjp, 4, BranchU);
-	case cJU_JPBRANCH_U5:  CHECKDCD(Pjp, 5); PREPB(Pjp, 5, BranchU);
-	case cJU_JPBRANCH_U6:  CHECKDCD(Pjp, 6); PREPB(Pjp, 6, BranchU);
-	case cJU_JPBRANCH_U7:  CHECKDCD(Pjp, 7); PREPB(Pjp, 7, BranchU);
-#endif
-	case cJU_JPBRANCH_U:   PREPB_ROOT(Pjp, BranchU);
-
-// Common code (state-independent) for all cases of uncompressed branches:
-
-BranchU:
-	    Pjbu = P_JBU(Pjp->jp_Addr);
-
-#ifndef NOSMARTJBU  // enable to turn off smart code for comparison purposes.
-
-// FIGURE OUT WHICH WAY CAUSES FEWER CACHE LINE FILLS; adding the JPs above
-// Indexs JP, or subtracting the JPs below Indexs JP.
-//
-// COUNT UPWARD, subtracting the pop1 of each JP BELOW OR AT Index, from the
-// whole expanses pop1:
-
-	    if (digit < (cJU_BRANCHUNUMJPS / 2))
-	    {
-		pop1above = pop1;		// subtract JPs below Index.
-#ifdef SMARTMETRICS
-		++jbu_upward;
-#endif
-		for (jpnum = 0; jpnum <= digit; ++jpnum)
-		{
-		    if ((Pjbu->jbu_jp[jpnum].jp_Type) <= cJU_JPNULLMAX)
-			continue;	// shortcut, save a function call.
-
-		    if ((pop1 = j__udyJPPop1(Pjbu->jbu_jp + jpnum))
-		     == cJU_ALLONES)
-		    {
-			JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-			return(C_JERR);
-		    }
-
-		    pop1above -= pop1;
-		}
-	    }
-
-// COUNT DOWNWARD, simply adding the pop1 of each JP ABOVE Index:
-
-	    else
-#endif // NOSMARTJBU
-	    {
-		assert(digit < cJU_BRANCHUNUMJPS);
-#ifdef SMARTMETRICS
-		++jbu_downward;
-#endif
-		pop1above = 0;			// add JPs above Index.
-
-		for (jpnum = cJU_BRANCHUNUMJPS - 1; jpnum > digit; --jpnum)
-		{
-		    if ((Pjbu->jbu_jp[jpnum].jp_Type) <= cJU_JPNULLMAX)
-			continue;	// shortcut, save a function call.
-
-		    if ((pop1 = j__udyJPPop1(Pjbu->jbu_jp + jpnum))
-		     == cJU_ALLONES)
-		    {
-			JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-			return(C_JERR);
-		    }
-
-		    pop1above += pop1;
-		}
-	    }
-
-	    if ((pop1 = j__udy1LCountSM(Pjbu->jbu_jp + digit, Index, Pjpm))
-	     == C_JERR) return(C_JERR);		// pass error up.
-
-	    assert(pop1above + pop1);
-	    return(pop1above + pop1);
-
-
-// ----------------------------------------------------------------------------
-// LEAF COUNT MACROS:
-//
-// LEAF*ABOVE() are common code for different JP types (linear leaves, bitmap
-// leaves, and immediates) and different leaf Index Sizes, which result in
-// calling different leaf search functions.  Linear leaves get the leaf address
-// from jp_Addr and the Population from jp_DcdPopO, while immediates use Pjp
-// itself as the leaf address and get Population from jp_Type.
-
-#define	LEAFLABOVE(Func)				\
-	Pjll = P_JLL(Pjp->jp_Addr);			\
-	pop1 = JU_JPLEAF_POP0(Pjp) + 1;	                \
-	LEAFABOVE(Func, Pjll, pop1)
-
-#define	LEAFB1ABOVE(Func) LEAFLABOVE(Func)  // different Func, otherwise same.
-
-#ifdef JUDY1
-#define	IMMABOVE(Func,Pop1)	\
-	Pjll = (Pjll_t) Pjp;	\
-	LEAFABOVE(Func, Pjll, Pop1)
-#else
-// Note:  For JudyL immediates with >= 2 Indexes, the index bytes are in a
-// different place than for Judy1:
-
-#define	IMMABOVE(Func,Pop1) \
-	LEAFABOVE(Func, (Pjll_t) (Pjp->jp_LIndex), Pop1)
-#endif
-
-// For all leaf types, the population AT OR ABOVE is the total pop1 less the
-// offset of Index; and Index should always be found:
-
-#define	LEAFABOVE(Func,Pjll,Pop1)		\
-	offset = Func(Pjll, Pop1, Index);	\
-	assert(offset >= 0);			\
-	assert(offset < (Pop1));		\
-	return((Pop1) - offset)
-
-// IMMABOVE_01 handles the special case of an immediate JP with 1 index, which
-// the search functions arent used for anyway:
-//
-// The target Index should be the one in this Immediate, in which case the
-// count above (inclusive) is always 1.
-
-#define	IMMABOVE_01						\
-	assert((JU_JPDCDPOP0(Pjp)) == JU_TRIMTODCDSIZE(Index));	\
-	return(1)
-
-
-// ----------------------------------------------------------------------------
-// LINEAR LEAF; search the leaf for Index; size is computed from jp_Type:
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	case cJU_JPLEAF1:  LEAFLABOVE(j__udySearchLeaf1);
-#endif
-	case cJU_JPLEAF2:  LEAFLABOVE(j__udySearchLeaf2);
-	case cJU_JPLEAF3:  LEAFLABOVE(j__udySearchLeaf3);
-
-#ifdef JU_64BIT
-	case cJU_JPLEAF4:  LEAFLABOVE(j__udySearchLeaf4);
-	case cJU_JPLEAF5:  LEAFLABOVE(j__udySearchLeaf5);
-	case cJU_JPLEAF6:  LEAFLABOVE(j__udySearchLeaf6);
-	case cJU_JPLEAF7:  LEAFLABOVE(j__udySearchLeaf7);
-#endif
-
-
-// ----------------------------------------------------------------------------
-// BITMAP LEAF; search the leaf for Index:
-//
-// Since the bitmap describes Indexes digitally rather than linearly, this is
-// not really a search, but just a count.
-
-	case cJU_JPLEAF_B1:  LEAFB1ABOVE(j__udyCountLeafB1);
-
-
-#ifdef JUDY1
-// ----------------------------------------------------------------------------
-// FULL POPULATION:
-//
-// Return the count of Indexes AT OR ABOVE Index, which is the total population
-// of the expanse (a constant) less the value of the undecoded digit remaining
-// in Index (its base-0 offset in the expanse), which yields an inclusive count
-// above.
-//
-// TBD:  This only supports a 1-byte full expanse.  Should this extract a
-// stored value for pop0 and possibly more LSBs of Index, to handle larger full
-// expanses?
-
-	case cJ1_JPFULLPOPU1:
-	    return(cJU_JPFULLPOPU1_POP0 + 1 - JU_DIGITATSTATE(Index, 1));
-#endif
-
-
-// ----------------------------------------------------------------------------
-// IMMEDIATE:
-
-	case cJU_JPIMMED_1_01:  IMMABOVE_01;
-	case cJU_JPIMMED_2_01:  IMMABOVE_01;
-	case cJU_JPIMMED_3_01:  IMMABOVE_01;
-#ifdef JU_64BIT
-	case cJU_JPIMMED_4_01:  IMMABOVE_01;
-	case cJU_JPIMMED_5_01:  IMMABOVE_01;
-	case cJU_JPIMMED_6_01:  IMMABOVE_01;
-	case cJU_JPIMMED_7_01:  IMMABOVE_01;
-#endif
-
-	case cJU_JPIMMED_1_02:  IMMABOVE(j__udySearchLeaf1,  2);
-	case cJU_JPIMMED_1_03:  IMMABOVE(j__udySearchLeaf1,  3);
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04:  IMMABOVE(j__udySearchLeaf1,  4);
-	case cJU_JPIMMED_1_05:  IMMABOVE(j__udySearchLeaf1,  5);
-	case cJU_JPIMMED_1_06:  IMMABOVE(j__udySearchLeaf1,  6);
-	case cJU_JPIMMED_1_07:  IMMABOVE(j__udySearchLeaf1,  7);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08:  IMMABOVE(j__udySearchLeaf1,  8);
-	case cJ1_JPIMMED_1_09:  IMMABOVE(j__udySearchLeaf1,  9);
-	case cJ1_JPIMMED_1_10:  IMMABOVE(j__udySearchLeaf1, 10);
-	case cJ1_JPIMMED_1_11:  IMMABOVE(j__udySearchLeaf1, 11);
-	case cJ1_JPIMMED_1_12:  IMMABOVE(j__udySearchLeaf1, 12);
-	case cJ1_JPIMMED_1_13:  IMMABOVE(j__udySearchLeaf1, 13);
-	case cJ1_JPIMMED_1_14:  IMMABOVE(j__udySearchLeaf1, 14);
-	case cJ1_JPIMMED_1_15:  IMMABOVE(j__udySearchLeaf1, 15);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02:  IMMABOVE(j__udySearchLeaf2,  2);
-	case cJU_JPIMMED_2_03:  IMMABOVE(j__udySearchLeaf2,  3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04:  IMMABOVE(j__udySearchLeaf2,  4);
-	case cJ1_JPIMMED_2_05:  IMMABOVE(j__udySearchLeaf2,  5);
-	case cJ1_JPIMMED_2_06:  IMMABOVE(j__udySearchLeaf2,  6);
-	case cJ1_JPIMMED_2_07:  IMMABOVE(j__udySearchLeaf2,  7);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_3_02:  IMMABOVE(j__udySearchLeaf3,  2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_3_03:  IMMABOVE(j__udySearchLeaf3,  3);
-	case cJ1_JPIMMED_3_04:  IMMABOVE(j__udySearchLeaf3,  4);
-	case cJ1_JPIMMED_3_05:  IMMABOVE(j__udySearchLeaf3,  5);
-
-	case cJ1_JPIMMED_4_02:  IMMABOVE(j__udySearchLeaf4,  2);
-	case cJ1_JPIMMED_4_03:  IMMABOVE(j__udySearchLeaf4,  3);
-
-	case cJ1_JPIMMED_5_02:  IMMABOVE(j__udySearchLeaf5,  2);
-	case cJ1_JPIMMED_5_03:  IMMABOVE(j__udySearchLeaf5,  3);
-
-	case cJ1_JPIMMED_6_02:  IMMABOVE(j__udySearchLeaf6,  2);
-
-	case cJ1_JPIMMED_7_02:  IMMABOVE(j__udySearchLeaf7,  2);
-#endif
-
-
-// ----------------------------------------------------------------------------
-// OTHER CASES:
-
-	default: JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT); return(C_JERR);
-
-	} // switch on JP type
-
-	/*NOTREACHED*/
-
-} // j__udy1LCountSM()
-
-
-// ****************************************************************************
-// J U D Y   C O U N T   L E A F   B 1
-//
-// This is a private analog of the j__udySearchLeaf*() functions for counting
-// in bitmap 1-byte leaves.  Since a bitmap leaf describes Indexes digitally
-// rather than linearly, this is not really a search, but just a count of the
-// valid Indexes == set bits below or including Index, which should be valid.
-// Return the "offset" (really the ordinal), 0 .. Pop1 - 1, of Index in Pjll;
-// if Indexs bit is not set (which should never happen, so this is DEBUG-mode
-// only), return the 1s-complement equivalent (== negative offset minus 1).
-//
-// Note:  The source code for this function looks identical for both Judy1 and
-// JudyL, but the JU_JLB_BITMAP macro varies.
-//
-// Note:  For simpler calling, the first arg is of type Pjll_t but then cast to
-// Pjlb_t.
-
-FUNCTION static int j__udyCountLeafB1(
-const	Pjll_t	Pjll,		// bitmap leaf, as Pjll_t for consistency.
-const	Word_t	Pop1,		// Population of whole leaf.
-const	Word_t	Index)		// to which to count.
-{
-	Pjlb_t	Pjlb	= (Pjlb_t) Pjll;	// to proper type.
-	Word_t	digit   = Index & cJU_MASKATSTATE(1);
-	Word_t	findsub = digit / cJU_BITSPERSUBEXPL;
-	Word_t	findbit = digit % cJU_BITSPERSUBEXPL;
-	int	count;		// in leaf through Index.
-	long	subexp;		// for stepping through subexpanses.
-
-
-// COUNT UPWARD:
-//
-// The entire bitmap should fit in one cache line, but still try to save some
-// CPU time by counting the fewest possible number of subexpanses from the
-// bitmap.
-
-#ifndef NOSMARTJLB  // enable to turn off smart code for comparison purposes.
-
-	if (findsub < (cJU_NUMSUBEXPL / 2))
-	{
-#ifdef SMARTMETRICS
-	    ++jlb_upward;
-#endif
-	    count = 0;
-
-	    for (subexp = 0; subexp < findsub; ++subexp)
-	    {
-		count += ((JU_JLB_BITMAP(Pjlb, subexp) == cJU_FULLBITMAPL) ?
-			  cJU_BITSPERSUBEXPL :
-			  j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, subexp)));
-	    }
-
-// This count includes findbit, which should be set, resulting in a base-1
-// offset:
-
-	    count += j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, findsub)
-				& JU_MASKLOWERINC(JU_BITPOSMASKL(findbit)));
-
-	    DBGCODE(if (! JU_BITMAPTESTL(Pjlb, digit)) return(~count);)
-	    assert(count >= 1);
-	    return(count - 1);		// convert to base-0 offset.
-	}
-#endif // NOSMARTJLB
-
-
-// COUNT DOWNWARD:
-//
-// Count the valid Indexes above or at Index, and subtract from Pop1.
-
-#ifdef SMARTMETRICS
-	++jlb_downward;
-#endif
-	count = Pop1;			// base-1 for now.
-
-	for (subexp = cJU_NUMSUBEXPL - 1; subexp > findsub; --subexp)
-	{
-	    count -= ((JU_JLB_BITMAP(Pjlb, subexp) == cJU_FULLBITMAPL) ?
-		      cJU_BITSPERSUBEXPL :
-		      j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, subexp)));
-	}
-
-// This count includes findbit, which should be set, resulting in a base-0
-// offset:
-
-	count -= j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, findsub)
-				& JU_MASKHIGHERINC(JU_BITPOSMASKL(findbit)));
-
-	DBGCODE(if (! JU_BITMAPTESTL(Pjlb, digit)) return(~count);)
-	assert(count >= 0);		// should find Index itself.
-	return(count);			// is already a base-0 offset.
-
-} // j__udyCountLeafB1()
-
-
-// ****************************************************************************
-// J U D Y   J P   P O P 1
-//
-// This function takes any type of JP other than a root-level JP (cJU_LEAFW* or
-// cJU_JPBRANCH* with no number suffix) and extracts the Pop1 from it.  In some
-// sense this is a wrapper around the JU_JP*_POP0 macros.  Why write it as a
-// function instead of a complex macro containing a trinary?  (See version
-// Judy1.h version 4.17.)  We think its cheaper to call a function containing
-// a switch statement with "constant" cases than to do the variable
-// calculations in a trinary.
-//
-// For invalid JP Types return cJU_ALLONES.  Note that this is an impossibly
-// high Pop1 for any JP below a top level branch.
-
-FUNCTION Word_t j__udyJPPop1(
-const	Pjp_t Pjp)		// JP to count.
-{
-	switch (JU_JPTYPE(Pjp))
-	{
-#ifdef notdef // caller should shortcut and not even call with these:
-
-	case cJU_JPNULL1:
-	case cJU_JPNULL2:
-	case cJU_JPNULL3:  return(0);
-#ifdef JU_64BIT
-	case cJU_JPNULL4:
-	case cJU_JPNULL5:
-	case cJU_JPNULL6:
-	case cJU_JPNULL7:  return(0);
-#endif
-#endif // notdef
-
-	case cJU_JPBRANCH_L2:
-	case cJU_JPBRANCH_B2:
-	case cJU_JPBRANCH_U2: return(JU_JPBRANCH_POP0(Pjp,2) + 1);
-
-	case cJU_JPBRANCH_L3:
-	case cJU_JPBRANCH_B3:
-	case cJU_JPBRANCH_U3: return(JU_JPBRANCH_POP0(Pjp,3) + 1);
-
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_L4:
-	case cJU_JPBRANCH_B4:
-	case cJU_JPBRANCH_U4: return(JU_JPBRANCH_POP0(Pjp,4) + 1);
-
-	case cJU_JPBRANCH_L5:
-	case cJU_JPBRANCH_B5:
-	case cJU_JPBRANCH_U5: return(JU_JPBRANCH_POP0(Pjp,5) + 1);
-
-	case cJU_JPBRANCH_L6:
-	case cJU_JPBRANCH_B6:
-	case cJU_JPBRANCH_U6: return(JU_JPBRANCH_POP0(Pjp,6) + 1);
-
-	case cJU_JPBRANCH_L7:
-	case cJU_JPBRANCH_B7:
-	case cJU_JPBRANCH_U7: return(JU_JPBRANCH_POP0(Pjp,7) + 1);
-#endif
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	case cJU_JPLEAF1:
-#endif
-	case cJU_JPLEAF2:
-	case cJU_JPLEAF3:
-#ifdef JU_64BIT
-	case cJU_JPLEAF4:
-	case cJU_JPLEAF5:
-	case cJU_JPLEAF6:
-	case cJU_JPLEAF7:
-#endif
-	case cJU_JPLEAF_B1:	return(JU_JPLEAF_POP0(Pjp) + 1);
-
-#ifdef JUDY1
-	case cJ1_JPFULLPOPU1:	return(cJU_JPFULLPOPU1_POP0 + 1);
-#endif
-
-	case cJU_JPIMMED_1_01:
-	case cJU_JPIMMED_2_01:
-	case cJU_JPIMMED_3_01:	return(1);
-#ifdef JU_64BIT
-	case cJU_JPIMMED_4_01:
-	case cJU_JPIMMED_5_01:
-	case cJU_JPIMMED_6_01:
-	case cJU_JPIMMED_7_01:	return(1);
-#endif
-
-	case cJU_JPIMMED_1_02:	return(2);
-	case cJU_JPIMMED_1_03:	return(3);
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04:	return(4);
-	case cJU_JPIMMED_1_05:	return(5);
-	case cJU_JPIMMED_1_06:	return(6);
-	case cJU_JPIMMED_1_07:	return(7);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08:	return(8);
-	case cJ1_JPIMMED_1_09:	return(9);
-	case cJ1_JPIMMED_1_10:	return(10);
-	case cJ1_JPIMMED_1_11:	return(11);
-	case cJ1_JPIMMED_1_12:	return(12);
-	case cJ1_JPIMMED_1_13:	return(13);
-	case cJ1_JPIMMED_1_14:	return(14);
-	case cJ1_JPIMMED_1_15:	return(15);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02:	return(2);
-	case cJU_JPIMMED_2_03:	return(3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04:	return(4);
-	case cJ1_JPIMMED_2_05:	return(5);
-	case cJ1_JPIMMED_2_06:	return(6);
-	case cJ1_JPIMMED_2_07:	return(7);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_3_02:	return(2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_3_03:	return(3);
-	case cJ1_JPIMMED_3_04:	return(4);
-	case cJ1_JPIMMED_3_05:	return(5);
-
-	case cJ1_JPIMMED_4_02:	return(2);
-	case cJ1_JPIMMED_4_03:	return(3);
-
-	case cJ1_JPIMMED_5_02:	return(2);
-	case cJ1_JPIMMED_5_03:	return(3);
-
-	case cJ1_JPIMMED_6_02:	return(2);
-
-	case cJ1_JPIMMED_7_02:	return(2);
-#endif
-
-	default:		return(cJU_ALLONES);
-	}
-
-	/*NOTREACHED*/
-
-} // j__udyJPPop1()
diff --git a/libs/klib/judy/JudyCreateBranch.c b/libs/klib/judy/JudyCreateBranch.c
deleted file mode 100644
index 1234c31..0000000
--- a/libs/klib/judy/JudyCreateBranch.c
+++ /dev/null
@@ -1,312 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Branch creation functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-
-// ****************************************************************************
-// J U D Y   C R E A T E   B R A N C H   L
-//
-// Build a BranchL from an array of JPs and associated 1 byte digits
-// (expanses).  Return with Pjp pointing to the BranchL.  Caller must
-// deallocate passed arrays, if necessary.
-//
-// We have no idea what kind of BranchL it is, so caller must set the jp_Type.
-//
-// Return -1 if error (details in Pjpm), otherwise return 1.
-
-FUNCTION int j__udyCreateBranchL(
-	Pjp_t	Pjp,		// Build JPs from this place
-	Pjp_t	PJPs,		// Array of JPs to put into Bitmap branch
-	uint8_t Exp[],		// Array of expanses to put into bitmap
-	Word_t  ExpCnt,		// Number of above JPs and Expanses
-	Pvoid_t	Pjpm)
-{
-	Pjbl_t	PjblRaw;	// pointer to linear branch.
-	Pjbl_t	Pjbl;
-
-	assert(ExpCnt <= cJU_BRANCHLMAXJPS);
-
-	PjblRaw	= j__udyAllocJBL(Pjpm);
-	if (PjblRaw == (Pjbl_t) NULL) return(-1);
-        Pjbl    = P_JBL(PjblRaw);
-
-//	Build a Linear Branch
-	Pjbl->jbl_NumJPs = ExpCnt;
-
-//	Copy from the Linear branch from splayed leaves
-	JU_COPYMEM(Pjbl->jbl_Expanse, Exp,  ExpCnt);
-	JU_COPYMEM(Pjbl->jbl_jp,      PJPs, ExpCnt);
-
-//	Pass back new pointer to the Linear branch in JP
-	Pjp->jp_Addr = (Word_t) PjblRaw;
-
-	return(1);
-
-} // j__udyCreateBranchL()
-
-
-// ****************************************************************************
-// J U D Y   C R E A T E   B R A N C H   B
-//
-// Build a BranchB from an array of JPs and associated 1 byte digits
-// (expanses).  Return with Pjp pointing to the BranchB.  Caller must
-// deallocate passed arrays, if necessary.
-//
-// We have no idea what kind of BranchB it is, so caller must set the jp_Type.
-//
-// Return -1 if error (details in Pjpm), otherwise return 1.
-
-FUNCTION int j__udyCreateBranchB(
-	Pjp_t	Pjp,		// Build JPs from this place
-	Pjp_t	PJPs,		// Array of JPs to put into Bitmap branch
-	uint8_t Exp[],		// Array of expanses to put into bitmap
-	Word_t  ExpCnt,		// Number of above JPs and Expanses
-	Pvoid_t	Pjpm)
-{
-	Pjbb_t	PjbbRaw;	// pointer to bitmap branch.
-	Pjbb_t	Pjbb;
-	Word_t  ii, jj;		// Temps
-	uint8_t CurrSubExp;	// Current sub expanse for BM
-
-// This assertion says the number of populated subexpanses is not too large.
-// This function is only called when a BranchL overflows to a BranchB or when a
-// cascade occurs, meaning a leaf overflows.  Either way ExpCnt cant be very
-// large, in fact a lot smaller than cJU_BRANCHBMAXJPS.  (Otherwise a BranchU
-// would be used.)  Popping this assertion means something (unspecified) has
-// gone very wrong, or else Judys design criteria have changed, although in
-// fact there should be no HARM in creating a BranchB with higher actual
-// fanout.
-
-	assert(ExpCnt <= cJU_BRANCHBMAXJPS);
-
-//	Get memory for a Bitmap branch
-	PjbbRaw	= j__udyAllocJBB(Pjpm);
-	if (PjbbRaw == (Pjbb_t) NULL) return(-1);
-	Pjbb = P_JBB(PjbbRaw);
-
-//	Get 1st "sub" expanse (0..7) of bitmap branch
-	CurrSubExp = Exp[0] / cJU_BITSPERSUBEXPB;
-
-// Index thru all 1 byte sized expanses:
-
-	for (jj = ii = 0; ii <= ExpCnt; ii++)
-	{
-		Word_t SubExp;	// Cannot be a uint8_t
-
-//		Make sure we cover the last one
-		if (ii == ExpCnt)
-		{
-			SubExp = cJU_ALLONES;	// Force last one
-		}
-		else
-		{
-//			Calculate the "sub" expanse of the byte expanse
-			SubExp = Exp[ii] / cJU_BITSPERSUBEXPB;  // Bits 5..7.
-
-//			Set the bit that represents the expanse in Exp[]
-			JU_JBB_BITMAP(Pjbb, SubExp) |= JU_BITPOSMASKB(Exp[ii]);
-		}
-//		Check if a new "sub" expanse range needed
-		if (SubExp != CurrSubExp)
-		{
-//			Get number of JPs in this sub expanse
-			Word_t NumJP = ii - jj;
-			Pjp_t  PjpRaw;
-			Pjp_t  Pjp;
-
-			PjpRaw = j__udyAllocJBBJP(NumJP, Pjpm);
-                        Pjp    = P_JP(PjpRaw);
-
-			if (PjpRaw == (Pjp_t) NULL)	// out of memory.
-			{
-
-// Free any previous allocations:
-
-			    while(CurrSubExp--)
-			    {
-				NumJP = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb,
-								  CurrSubExp));
-				if (NumJP)
-				{
-				    j__udyFreeJBBJP(JU_JBB_PJP(Pjbb,
-						    CurrSubExp), NumJP, Pjpm);
-				}
-			    }
-			    j__udyFreeJBB(PjbbRaw, Pjpm);
-			    return(-1);
-			}
-
-// Place the array of JPs in bitmap branch:
-
-			JU_JBB_PJP(Pjbb, CurrSubExp) = PjpRaw;
-
-// Copy the JPs to new leaf:
-
-			JU_COPYMEM(Pjp, PJPs + jj, NumJP);
-
-// On to the next bitmap branch "sub" expanse:
-
-			jj	   = ii;
-			CurrSubExp = SubExp;
-		}
-	} // for each 1-byte expanse
-
-// Pass back some of the JP to the new Bitmap branch:
-
-	Pjp->jp_Addr = (Word_t) PjbbRaw;
-
-	return(1);
-
-} // j__udyCreateBranchB()
-
-
-// ****************************************************************************
-// J U D Y   C R E A T E   B R A N C H   U
-//
-// Build a BranchU from a BranchB.  Return with Pjp pointing to the BranchU.
-// Free the BranchB and its JP subarrays.
-//
-// Return -1 if error (details in Pjpm), otherwise return 1.
-
-FUNCTION int j__udyCreateBranchU(
-	Pjp_t	  Pjp,
-	Pvoid_t	  Pjpm)
-{
-	jp_t	  JPNull;
-        Pjbu_t    PjbuRaw;
-        Pjbu_t    Pjbu;
-	Pjbb_t	  PjbbRaw;
-	Pjbb_t	  Pjbb;
-	Word_t	  ii, jj;
-	BITMAPB_t BitMap;
-	Pjp_t	  PDstJP;
-#ifdef JU_STAGED_EXP
-	jbu_t	  BranchU;	// Staged uncompressed branch
-#else
-
-// Allocate memory for a BranchU:
-
-	PjbuRaw = j__udyAllocJBU(Pjpm);
-	if (PjbuRaw == (Pjbu_t) NULL) return(-1);
-        Pjbu = P_JBU(PjbuRaw);
-#endif
-        JU_JPSETADT(&JPNull, 0, 0, JU_JPTYPE(Pjp) - cJU_JPBRANCH_B2 + cJU_JPNULL1);
-
-// Get the pointer to the BranchB:
-
-	PjbbRaw	= (Pjbb_t) (Pjp->jp_Addr);
-	Pjbb	= P_JBB(PjbbRaw);
-
-//	Set the pointer to the Uncompressed branch
-#ifdef JU_STAGED_EXP
-	PDstJP = BranchU.jbu_jp;
-#else
-        PDstJP = Pjbu->jbu_jp;
-#endif
-	for (ii = 0; ii < cJU_NUMSUBEXPB; ii++)
-	{
-		Pjp_t	PjpA;
-		Pjp_t	PjpB;
-
-		PjpB = PjpA = P_JP(JU_JBB_PJP(Pjbb, ii));
-
-//		Get the bitmap for this subexpanse
-		BitMap	= JU_JBB_BITMAP(Pjbb, ii);
-
-//		NULL empty subexpanses
-		if (BitMap == 0)
-		{
-//			But, fill with NULLs
-			for (jj = 0; jj < cJU_BITSPERSUBEXPB; jj++)
-			{
-				PDstJP[jj] = JPNull;
-			}
-			PDstJP += cJU_BITSPERSUBEXPB;
-			continue;
-		}
-//		Check if Uncompressed subexpanse
-		if (BitMap == cJU_FULLBITMAPB)
-		{
-//			Copy subexpanse to the Uncompressed branch intact
-			JU_COPYMEM(PDstJP, PjpA, cJU_BITSPERSUBEXPB);
-
-//			Bump to next subexpanse
-			PDstJP += cJU_BITSPERSUBEXPB;
-
-//			Set length of subexpanse
-			jj = cJU_BITSPERSUBEXPB;
-		}
-		else
-		{
-			for (jj = 0; jj < cJU_BITSPERSUBEXPB; jj++)
-			{
-//				Copy JP or NULLJP depending on bit
-				if (BitMap & 1) { *PDstJP = *PjpA++; }
-				else		{ *PDstJP = JPNull; }
-
-				PDstJP++;	// advance to next JP
-				BitMap >>= 1;
-			}
-			jj = PjpA - PjpB;
-		}
-
-// Free the subexpanse:
-
-		j__udyFreeJBBJP(JU_JBB_PJP(Pjbb, ii), jj, Pjpm);
-
-	} // for each JP in BranchU
-
-#ifdef JU_STAGED_EXP
-
-// Allocate memory for a BranchU:
-
-	PjbuRaw = j__udyAllocJBU(Pjpm);
-	if (PjbuRaw == (Pjbu_t) NULL) return(-1);
-        Pjbu = P_JBU(PjbuRaw);
-
-// Copy staged branch to newly allocated branch:
-//
-// TBD:  I think this code is broken.
-
-	*Pjbu = BranchU;
-
-#endif // JU_STAGED_EXP
-
-// Finally free the BranchB and put the BranchU in its place:
-
-	j__udyFreeJBB(PjbbRaw, Pjpm);
-
-	Pjp->jp_Addr  = (Word_t) PjbuRaw;
-	Pjp->jp_Type += cJU_JPBRANCH_U - cJU_JPBRANCH_B;
-
-	return(1);
-
-} // j__udyCreateBranchU()
diff --git a/libs/klib/judy/JudyDecascade.c b/libs/klib/judy/JudyDecascade.c
deleted file mode 100644
index da625bc..0000000
--- a/libs/klib/judy/JudyDecascade.c
+++ /dev/null
@@ -1,1204 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// "Decascade" support functions for JudyDel.c:  These functions convert
-// smaller-index-size leaves to larger-index-size leaves, and also, bitmap
-// leaves (LeafB1s) to Leaf1s, and some types of branches to smaller branches
-// at the same index size.  Some "decascading" occurs explicitly in JudyDel.c,
-// but rare or large subroutines appear as functions here, and the overhead to
-// call them is negligible.
-//
-// Compile with one of -DJUDY1 or -DJUDYL.  Note:  Function names are converted
-// to Judy1 or JudyL specific values by external #defines.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#endif
-#ifdef JUDYL
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-DBGCODE(extern void JudyCheckSorted(Pjll_t Pjll, Word_t Pop1, long IndexSize);)
-
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   2   T O   3
-//
-// Copy one or more 2-byte Indexes to a series of 3-byte Indexes.
-
-FUNCTION static void j__udyCopy2to3(
-	uint8_t *  PDest,	// to where to copy 3-byte Indexes.
-	uint16_t * PSrc,	// from where to copy 2-byte indexes.
-	Word_t     Pop1,	// number of Indexes to copy.
-	Word_t     MSByte)	// most-significant byte, prefix to each Index.
-{
-	Word_t	   Temp;	// for building 3-byte Index.
-
-	assert(Pop1);
-
-        do {
-	    Temp = MSByte | *PSrc++;
-	    JU_COPY3_LONG_TO_PINDEX(PDest, Temp);
-	    PDest += 3;
-        } while (--Pop1);
-
-} // j__udyCopy2to3()
-
-
-#ifdef JU_64BIT
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   3   T O   4
-//
-// Copy one or more 3-byte Indexes to a series of 4-byte Indexes.
-
-FUNCTION static void j__udyCopy3to4(
-	uint32_t * PDest,	// to where to copy 4-byte Indexes.
-	uint8_t *  PSrc,	// from where to copy 3-byte indexes.
-	Word_t     Pop1,	// number of Indexes to copy.
-	Word_t     MSByte)	// most-significant byte, prefix to each Index.
-{
-	Word_t	   Temp;	// for building 4-byte Index.
-
-	assert(Pop1);
-
-        do {
-	    JU_COPY3_PINDEX_TO_LONG(Temp, PSrc);
-	    Temp |= MSByte;
-	    PSrc += 3;
-	    *PDest++ = Temp;		// truncates to uint32_t.
-        } while (--Pop1);
-
-} // j__udyCopy3to4()
-
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   4   T O   5
-//
-// Copy one or more 4-byte Indexes to a series of 5-byte Indexes.
-
-FUNCTION static void j__udyCopy4to5(
-	uint8_t *  PDest,	// to where to copy 4-byte Indexes.
-	uint32_t * PSrc,	// from where to copy 4-byte indexes.
-	Word_t     Pop1,	// number of Indexes to copy.
-	Word_t     MSByte)	// most-significant byte, prefix to each Index.
-{
-	Word_t	   Temp;	// for building 5-byte Index.
-
-	assert(Pop1);
-
-        do {
-	    Temp = MSByte | *PSrc++;
-	    JU_COPY5_LONG_TO_PINDEX(PDest, Temp);
-	    PDest += 5;
-        } while (--Pop1);
-
-} // j__udyCopy4to5()
-
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   5   T O   6
-//
-// Copy one or more 5-byte Indexes to a series of 6-byte Indexes.
-
-FUNCTION static void j__udyCopy5to6(
-	uint8_t * PDest,	// to where to copy 6-byte Indexes.
-	uint8_t * PSrc,		// from where to copy 5-byte indexes.
-	Word_t    Pop1,		// number of Indexes to copy.
-	Word_t    MSByte)	// most-significant byte, prefix to each Index.
-{
-	Word_t	  Temp;		// for building 6-byte Index.
-
-	assert(Pop1);
-
-        do {
-	    JU_COPY5_PINDEX_TO_LONG(Temp, PSrc);
-	    Temp |= MSByte;
-	    JU_COPY6_LONG_TO_PINDEX(PDest, Temp);
-	    PSrc  += 5;
-	    PDest += 6;
-        } while (--Pop1);
-
-} // j__udyCopy5to6()
-
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   6   T O   7
-//
-// Copy one or more 6-byte Indexes to a series of 7-byte Indexes.
-
-FUNCTION static void j__udyCopy6to7(
-	uint8_t * PDest,	// to where to copy 6-byte Indexes.
-	uint8_t * PSrc,		// from where to copy 5-byte indexes.
-	Word_t    Pop1,		// number of Indexes to copy.
-	Word_t    MSByte)	// most-significant byte, prefix to each Index.
-{
-	Word_t	  Temp;		// for building 6-byte Index.
-
-	assert(Pop1);
-
-        do {
-	    JU_COPY6_PINDEX_TO_LONG(Temp, PSrc);
-	    Temp |= MSByte;
-	    JU_COPY7_LONG_TO_PINDEX(PDest, Temp);
-	    PSrc  += 6;
-	    PDest += 7;
-        } while (--Pop1);
-
-} // j__udyCopy6to7()
-
-#endif // JU_64BIT
-
-
-#ifndef JU_64BIT // 32-bit
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   3   T O   W
-//
-// Copy one or more 3-byte Indexes to a series of longs (words, always 4-byte).
-
-FUNCTION static void j__udyCopy3toW(
-	PWord_t   PDest,	// to where to copy full-word Indexes.
-	uint8_t * PSrc,		// from where to copy 3-byte indexes.
-	Word_t    Pop1,		// number of Indexes to copy.
-	Word_t    MSByte)	// most-significant byte, prefix to each Index.
-{
-	assert(Pop1);
-
-        do {
-	    JU_COPY3_PINDEX_TO_LONG(*PDest, PSrc);
-	    *PDest++ |= MSByte;
-	    PSrc     += 3;
-        } while (--Pop1);
-
-} // j__udyCopy3toW()
-
-
-#else // JU_64BIT
-
-// ****************************************************************************
-// __ J U D Y   C O P Y   7   T O   W
-//
-// Copy one or more 7-byte Indexes to a series of longs (words, always 8-byte).
-
-FUNCTION static void j__udyCopy7toW(
-	PWord_t   PDest,	// to where to copy full-word Indexes.
-	uint8_t * PSrc,		// from where to copy 7-byte indexes.
-	Word_t    Pop1,		// number of Indexes to copy.
-	Word_t    MSByte)	// most-significant byte, prefix to each Index.
-{
-	assert(Pop1);
-
-        do {
-	    JU_COPY7_PINDEX_TO_LONG(*PDest, PSrc);
-	    *PDest++ |= MSByte;
-	    PSrc     += 7;
-        } while (--Pop1);
-
-} // j__udyCopy7toW()
-
-#endif // JU_64BIT
-
-
-// ****************************************************************************
-// __ J U D Y   B R A N C H   B   T O   B R A N C H   L
-//
-// When a BranchB shrinks to have few enough JPs, call this function to convert
-// it to a BranchL.  Return 1 for success, or -1 for failure (with details in
-// Pjpm).
-
-FUNCTION int j__udyBranchBToBranchL(
-	Pjp_t	Pjp,		// points to BranchB to shrink.
-	Pvoid_t	Pjpm)		// for global accounting.
-{
-	Pjbb_t	PjbbRaw;	// old BranchB to shrink.
-	Pjbb_t	Pjbb;
-	Pjbl_t	PjblRaw;	// new BranchL to create.
-	Pjbl_t	Pjbl;
-	Word_t	Digit;		// in BranchB.
-	Word_t  NumJPs;		// non-null JPs in BranchB.
-	uint8_t Expanse[cJU_BRANCHLMAXJPS];	// for building jbl_Expanse[].
-	Pjp_t	Pjpjbl;		// current JP in BranchL.
-	Word_t  SubExp;		// in BranchB.
-
-	assert(JU_JPTYPE(Pjp) >= cJU_JPBRANCH_B2);
-	assert(JU_JPTYPE(Pjp) <= cJU_JPBRANCH_B);
-
-	PjbbRaw	= (Pjbb_t) (Pjp->jp_Addr);
-	Pjbb	= P_JBB(PjbbRaw);
-
-// Copy 1-byte subexpanse digits from BranchB to temporary buffer for BranchL,
-// for each bit set in the BranchB:
-//
-// TBD:  The following supports variable-sized linear branches, but they are no
-// longer variable; this could be simplified to save the copying.
-//
-// TBD:  Since cJU_BRANCHLMAXJP == 7 now, and cJU_BRANCHUNUMJPS == 256, the
-// following might be inefficient; is there a faster way to do it?  At least
-// skip wholly empty subexpanses?
-
-	for (NumJPs = Digit = 0; Digit < cJU_BRANCHUNUMJPS; ++Digit)
-	{
-	    if (JU_BITMAPTESTB(Pjbb, Digit))
-	    {
-		Expanse[NumJPs++] = Digit;
-		assert(NumJPs <= cJU_BRANCHLMAXJPS);	// required of caller.
-	    }
-	}
-
-// Allocate and populate the BranchL:
-
-	if ((PjblRaw = j__udyAllocJBL(Pjpm)) == (Pjbl_t) NULL) return(-1);
-	Pjbl = P_JBL(PjblRaw);
-
-	JU_COPYMEM(Pjbl->jbl_Expanse, Expanse, NumJPs);
-
-	Pjbl->jbl_NumJPs = NumJPs;
-	DBGCODE(JudyCheckSorted((Pjll_t) (Pjbl->jbl_Expanse), NumJPs, 1);)
-
-// Copy JPs from each BranchB subexpanse subarray:
-
-	Pjpjbl = P_JP(Pjbl->jbl_jp);	// start at first JP in array.
-
-	for (SubExp = 0; SubExp < cJU_NUMSUBEXPB; ++SubExp)
-	{
-	    Pjp_t PjpRaw = JU_JBB_PJP(Pjbb, SubExp);	// current Pjp.
-	    Pjp_t Pjp;
-
-	    if (PjpRaw == (Pjp_t) NULL) continue;  // skip empty subexpanse.
-	    Pjp = P_JP(PjpRaw);
-
-	    NumJPs = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, SubExp));
-	    assert(NumJPs);
-	    JU_COPYMEM(Pjpjbl, Pjp, NumJPs);	 // one subarray at a time.
-
-	    Pjpjbl += NumJPs;
-	    j__udyFreeJBBJP(PjpRaw, NumJPs, Pjpm);	// subarray.
-	}
-	j__udyFreeJBB(PjbbRaw, Pjpm);		// BranchB itself.
-
-// Finish up:  Calculate new JP type (same index size = level in new class),
-// and tie new BranchB into parent JP:
-
-	Pjp->jp_Type += cJU_JPBRANCH_L - cJU_JPBRANCH_B;
-	Pjp->jp_Addr  = (Word_t) PjblRaw;
-
-	return(1);
-
-} // j__udyBranchBToBranchL()
-
-
-#ifdef notdef
-
-// ****************************************************************************
-// __ J U D Y   B R A N C H   U   T O   B R A N C H   B
-//
-// When a BranchU shrinks to need little enough memory, call this function to
-// convert it to a BranchB to save memory (at the cost of some speed).  Return
-// 1 for success, or -1 for failure (with details in Pjpm).
-//
-// TBD:  Fill out if/when needed.  Not currently used in JudyDel.c for reasons
-// explained there.
-
-FUNCTION int j__udyBranchUToBranchB(
-	Pjp_t	Pjp,		// points to BranchU to shrink.
-	Pvoid_t	Pjpm)		// for global accounting.
-{
-	assert(FALSE);
-	return(1);
-}
-#endif // notdef
-
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-
-// ****************************************************************************
-// __ J U D Y   L E A F   B 1   T O   L E A F   1
-//
-// Shrink a bitmap leaf (cJU_LEAFB1) to linear leaf (cJU_JPLEAF1).
-// Return 1 for success, or -1 for failure (with details in Pjpm).
-//
-// Note:  This function is different than the other JudyLeaf*ToLeaf*()
-// functions because it receives a Pjp, not just a leaf, and handles its own
-// allocation and free, in order to allow the caller to continue with a LeafB1
-// if allocation fails.
-
-FUNCTION int j__udyLeafB1ToLeaf1(
-	Pjp_t	  Pjp,		// points to LeafB1 to shrink.
-	Pvoid_t	  Pjpm)		// for global accounting.
-{
-	Pjlb_t    PjlbRaw;	// bitmap in old leaf.
-	Pjlb_t    Pjlb;
-	Pjll_t	  PjllRaw;	// new Leaf1.
-	uint8_t	* Pleaf1;	// Leaf1 pointer type.
-	Word_t    Digit;	// in LeafB1 bitmap.
-#ifdef JUDYL
-	Pjv_t	  PjvNew;	// value area in new Leaf1.
-	Word_t    Pop1;
-	Word_t    SubExp;
-#endif
-
-	assert(JU_JPTYPE(Pjp) == cJU_JPLEAF_B1);
-	assert(((JU_JPDCDPOP0(Pjp) & 0xFF) + 1) == cJU_LEAF1_MAXPOP1);
-
-// Allocate JPLEAF1 and prepare pointers:
-
-	if ((PjllRaw = j__udyAllocJLL1(cJU_LEAF1_MAXPOP1, Pjpm)) == 0)
-	    return(-1);
-
-	Pleaf1	= (uint8_t *) P_JLL(PjllRaw);
-	PjlbRaw	= (Pjlb_t) (Pjp->jp_Addr);
-	Pjlb	= P_JLB(PjlbRaw);
-	JUDYLCODE(PjvNew = JL_LEAF1VALUEAREA(Pleaf1, cJL_LEAF1_MAXPOP1);)
-
-// Copy 1-byte indexes from old LeafB1 to new Leaf1:
-
-	for (Digit = 0; Digit < cJU_BRANCHUNUMJPS; ++Digit)
-	    if (JU_BITMAPTESTL(Pjlb, Digit))
-		*Pleaf1++ = Digit;
-
-#ifdef JUDYL
-
-// Copy all old-LeafB1 value areas from value subarrays to new Leaf1:
-
-	for (SubExp = 0; SubExp < cJU_NUMSUBEXPL; ++SubExp)
-	{
-	    Pjv_t PjvRaw = JL_JLB_PVALUE(Pjlb, SubExp);
-	    Pjv_t Pjv    = P_JV(PjvRaw);
-
-	    if (Pjv == (Pjv_t) NULL) continue;	// skip empty subarray.
-
-	    Pop1 = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, SubExp));  // subarray.
-	    assert(Pop1);
-
-	    JU_COPYMEM(PjvNew, Pjv, Pop1);		// copy value areas.
-	    j__udyLFreeJV(PjvRaw, Pop1, Pjpm);
-	    PjvNew += Pop1;				// advance through new.
-	}
-
-	assert((((Word_t) Pleaf1) - (Word_t) P_JLL(PjllRaw))
-	    == (PjvNew - JL_LEAF1VALUEAREA(P_JLL(PjllRaw), cJL_LEAF1_MAXPOP1)));
-#endif // JUDYL
-
-	DBGCODE(JudyCheckSorted((Pjll_t) P_JLL(PjllRaw),
-			    (((Word_t) Pleaf1) - (Word_t) P_JLL(PjllRaw)), 1);)
-
-// Finish up:  Free the old LeafB1 and plug the new Leaf1 into the JP:
-//
-// Note:  jp_DcdPopO does not change here.
-
-	j__udyFreeJLB1(PjlbRaw, Pjpm);
-
-	Pjp->jp_Addr = (Word_t) PjllRaw;
-	Pjp->jp_Type = cJU_JPLEAF1;
-
-	return(1);
-
-} // j__udyLeafB1ToLeaf1()
-
-#endif // (JUDYL || (! JU_64BIT))
-
-
-// ****************************************************************************
-// __ J U D Y   L E A F   1   T O   L E A F   2
-//
-// Copy 1-byte Indexes from a LeafB1 or Leaf1 to 2-byte Indexes in a Leaf2.
-// Pjp MUST be one of:  cJU_JPLEAF_B1, cJU_JPLEAF1, or cJU_JPIMMED_1_*.
-// Return number of Indexes copied.
-//
-// TBD:  In this and all following functions, the caller should already be able
-// to compute the Pop1 return value, so why return it?
-
-FUNCTION Word_t  j__udyLeaf1ToLeaf2(
-	uint16_t * PLeaf2,	// destination uint16_t * Index portion of leaf.
-#ifdef JUDYL
-	Pjv_t	   Pjv2,	// destination value part of leaf.
-#endif
-	Pjp_t	   Pjp,		// 1-byte-index object from which to copy.
-	Word_t     MSByte,	// most-significant byte, prefix to each Index.
-	Pvoid_t	   Pjpm)	// for global accounting.
-{
-	Word_t	   Pop1;	// Indexes in leaf.
-	Word_t	   Offset;	// in linear leaf list.
-JUDYLCODE(Pjv_t	   Pjv1Raw;)	// source object value area.
-JUDYLCODE(Pjv_t	   Pjv1;)
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF_B1:
-
-	case cJU_JPLEAF_B1:
-	{
-	    Pjlb_t Pjlb = P_JLB(Pjp->jp_Addr);
-	    Word_t Digit;	// in LeafB1 bitmap.
-  JUDYLCODE(Word_t SubExp;)	// in LeafB1.
-
-	    Pop1 = JU_JPBRANCH_POP0(Pjp, 1) + 1; assert(Pop1);
-
-// Copy 1-byte indexes from old LeafB1 to new Leaf2, including splicing in
-// the missing MSByte needed in the Leaf2:
-
-	    for (Digit = 0; Digit < cJU_BRANCHUNUMJPS; ++Digit)
-		if (JU_BITMAPTESTL(Pjlb, Digit))
-		    *PLeaf2++ = MSByte | Digit;
-
-#ifdef JUDYL
-
-// Copy all old-LeafB1 value areas from value subarrays to new Leaf2:
-
-	    for (SubExp = 0; SubExp < cJU_NUMSUBEXPL; ++SubExp)
-	    {
-		Word_t SubExpPop1;
-
-		Pjv1Raw = JL_JLB_PVALUE(Pjlb, SubExp);
-		if (Pjv1Raw == (Pjv_t) NULL) continue;	// skip empty.
-		Pjv1 = P_JV(Pjv1Raw);
-
-		SubExpPop1 = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, SubExp));
-		assert(SubExpPop1);
-
-		JU_COPYMEM(Pjv2, Pjv1, SubExpPop1);	// copy value areas.
-		j__udyLFreeJV(Pjv1Raw, SubExpPop1, Pjpm);
-		Pjv2 += SubExpPop1;			// advance through new.
-	    }
-#endif // JUDYL
-
-	    j__udyFreeJLB1((Pjlb_t) (Pjp->jp_Addr), Pjpm);  // LeafB1 itself.
-	    return(Pop1);
-
-	} // case cJU_JPLEAF_B1
-
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-
-// JPLEAF1:
-
-	case cJU_JPLEAF1:
-	{
-	    uint8_t * PLeaf1 = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPBRANCH_POP0(Pjp, 1) + 1; assert(Pop1);
-	    JUDYLCODE(Pjv1 = JL_LEAF1VALUEAREA(PLeaf1, Pop1);)
-
-// Copy all Index bytes including splicing in missing MSByte needed in Leaf2
-// (plus, for JudyL, value areas):
-
-	    for (Offset = 0; Offset < Pop1; ++Offset)
-	    {
-		PLeaf2[Offset] = MSByte | PLeaf1[Offset];
-		JUDYLCODE(Pjv2[Offset] = Pjv1[Offset];)
-	    }
-	    j__udyFreeJLL1((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-#endif // (JUDYL || (! JU_64BIT))
-
-
-// JPIMMED_1_01:
-//
-// Note:  jp_DcdPopO has 3 [7] bytes of Index (all but most significant byte),
-// so the assignment to PLeaf2[] truncates and MSByte is not needed.
-
-	case cJU_JPIMMED_1_01:
-	{
-	    PLeaf2[0] = JU_JPDCDPOP0(Pjp);	// see above.
-	    JUDYLCODE(Pjv2[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-// JPIMMED_1_0[2+]:
-
-	case cJU_JPIMMED_1_02:
-	case cJU_JPIMMED_1_03:
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04:
-	case cJU_JPIMMED_1_05:
-	case cJU_JPIMMED_1_06:
-	case cJU_JPIMMED_1_07:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08:
-	case cJ1_JPIMMED_1_09:
-	case cJ1_JPIMMED_1_10:
-	case cJ1_JPIMMED_1_11:
-	case cJ1_JPIMMED_1_12:
-	case cJ1_JPIMMED_1_13:
-	case cJ1_JPIMMED_1_14:
-	case cJ1_JPIMMED_1_15:
-#endif
-	{
-	    Pop1 = JU_JPTYPE(Pjp) - cJU_JPIMMED_1_02 + 2; assert(Pop1);
-	    JUDYLCODE(Pjv1Raw = (Pjv_t) (Pjp->jp_Addr);)
-	    JUDYLCODE(Pjv1    = P_JV(Pjv1Raw);)
-
-	    for (Offset = 0; Offset < Pop1; ++Offset)
-	    {
-#ifdef JUDY1
-		PLeaf2[Offset] = MSByte | Pjp->jp_1Index[Offset];
-#else
-		PLeaf2[Offset] = MSByte | Pjp->jp_LIndex[Offset];
-		Pjv2  [Offset] = Pjv1[Offset];
-#endif
-	    }
-	    JUDYLCODE(j__udyLFreeJV(Pjv1Raw, Pop1, Pjpm);)
-	    return(Pop1);
-	}
-
-
-// UNEXPECTED CASES, including JPNULL1, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf1ToLeaf2()
-
-
-// *****************************************************************************
-// __ J U D Y   L E A F   2   T O   L E A F   3
-//
-// Copy 2-byte Indexes from a Leaf2 to 3-byte Indexes in a Leaf3.
-// Pjp MUST be one of:  cJU_JPLEAF2 or cJU_JPIMMED_2_*.
-// Return number of Indexes copied.
-//
-// Note:  By the time this function is called to compress a level-3 branch to a
-// Leaf3, the branch has no narrow pointers under it, meaning only level-2
-// objects are below it and must be handled here.
-
-FUNCTION Word_t  j__udyLeaf2ToLeaf3(
-	uint8_t * PLeaf3,	// destination "uint24_t *" Index part of leaf.
-#ifdef JUDYL
-	Pjv_t	  Pjv3,		// destination value part of leaf.
-#endif
-	Pjp_t	  Pjp,		// 2-byte-index object from which to copy.
-	Word_t    MSByte,	// most-significant byte, prefix to each Index.
-	Pvoid_t	  Pjpm)		// for global accounting.
-{
-	Word_t	  Pop1;		// Indexes in leaf.
-#if (defined(JUDYL) && defined(JU_64BIT))
-	Pjv_t	  Pjv2Raw;	// source object value area.
-#endif
-JUDYLCODE(Pjv_t	  Pjv2;)
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF2:
-
-	case cJU_JPLEAF2:
-	{
-	    uint16_t * PLeaf2 = (uint16_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1; assert(Pop1);
-	    j__udyCopy2to3(PLeaf3, PLeaf2, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv2 = JL_LEAF2VALUEAREA(PLeaf2, Pop1);
-	    JU_COPYMEM(Pjv3, Pjv2, Pop1);
-#endif
-	    j__udyFreeJLL2((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-
-
-// JPIMMED_2_01:
-//
-// Note:  jp_DcdPopO has 3 [7] bytes of Index (all but most significant byte),
-// so the "assignment" to PLeaf3[] is exact [truncates] and MSByte is not
-// needed.
-
-	case cJU_JPIMMED_2_01:
-	{
-	    JU_COPY3_LONG_TO_PINDEX(PLeaf3, JU_JPDCDPOP0(Pjp));	// see above.
-	    JUDYLCODE(Pjv3[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-// JPIMMED_2_0[2+]:
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02:
-	case cJU_JPIMMED_2_03:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04:
-	case cJ1_JPIMMED_2_05:
-	case cJ1_JPIMMED_2_06:
-	case cJ1_JPIMMED_2_07:
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-	{
-	    JUDY1CODE(uint16_t * PLeaf2 = (uint16_t *) (Pjp->jp_1Index);)
-	    JUDYLCODE(uint16_t * PLeaf2 = (uint16_t *) (Pjp->jp_LIndex);)
-
-	    Pop1 = JU_JPTYPE(Pjp) - cJU_JPIMMED_2_02 + 2; assert(Pop1);
-	    j__udyCopy2to3(PLeaf3, PLeaf2, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv2Raw = (Pjv_t) (Pjp->jp_Addr);
-	    Pjv2    = P_JV(Pjv2Raw);
-	    JU_COPYMEM(Pjv3, Pjv2, Pop1);
-	    j__udyLFreeJV(Pjv2Raw, Pop1, Pjpm);
-#endif
-	    return(Pop1);
-	}
-#endif // (JUDY1 || JU_64BIT)
-
-
-// UNEXPECTED CASES, including JPNULL2, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf2ToLeaf3()
-
-
-#ifdef JU_64BIT
-
-// ****************************************************************************
-// __ J U D Y   L E A F   3   T O   L E A F   4
-//
-// Copy 3-byte Indexes from a Leaf3 to 4-byte Indexes in a Leaf4.
-// Pjp MUST be one of:  cJU_JPLEAF3 or cJU_JPIMMED_3_*.
-// Return number of Indexes copied.
-//
-// Note:  By the time this function is called to compress a level-4 branch to a
-// Leaf4, the branch has no narrow pointers under it, meaning only level-3
-// objects are below it and must be handled here.
-
-FUNCTION Word_t  j__udyLeaf3ToLeaf4(
-	uint32_t * PLeaf4,	// destination uint32_t * Index part of leaf.
-#ifdef JUDYL
-	Pjv_t	   Pjv4,	// destination value part of leaf.
-#endif
-	Pjp_t	   Pjp,		// 3-byte-index object from which to copy.
-	Word_t     MSByte,	// most-significant byte, prefix to each Index.
-	Pvoid_t	   Pjpm)	// for global accounting.
-{
-	Word_t	   Pop1;	// Indexes in leaf.
-JUDYLCODE(Pjv_t	   Pjv3Raw;)	// source object value area.
-JUDYLCODE(Pjv_t	   Pjv3;)
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF3:
-
-	case cJU_JPLEAF3:
-	{
-	    uint8_t * PLeaf3 = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1; assert(Pop1);
-	    j__udyCopy3to4(PLeaf4, (uint8_t *) PLeaf3, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv3 = JL_LEAF3VALUEAREA(PLeaf3, Pop1);
-	    JU_COPYMEM(Pjv4, Pjv3, Pop1);
-#endif
-	    j__udyFreeJLL3((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-
-
-// JPIMMED_3_01:
-//
-// Note:  jp_DcdPopO has 7 bytes of Index (all but most significant byte), so
-// the assignment to PLeaf4[] truncates and MSByte is not needed.
-
-	case cJU_JPIMMED_3_01:
-	{
-	    PLeaf4[0] = JU_JPDCDPOP0(Pjp);	// see above.
-	    JUDYLCODE(Pjv4[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-// JPIMMED_3_0[2+]:
-
-	case cJU_JPIMMED_3_02:
-#ifdef JUDY1
-	case cJ1_JPIMMED_3_03:
-	case cJ1_JPIMMED_3_04:
-	case cJ1_JPIMMED_3_05:
-#endif
-	{
-	    JUDY1CODE(uint8_t * PLeaf3 = (uint8_t *) (Pjp->jp_1Index);)
-	    JUDYLCODE(uint8_t * PLeaf3 = (uint8_t *) (Pjp->jp_LIndex);)
-
-	    JUDY1CODE(Pop1 = JU_JPTYPE(Pjp) - cJU_JPIMMED_3_02 + 2;)
-	    JUDYLCODE(Pop1 = 2;)
-
-	    j__udyCopy3to4(PLeaf4, PLeaf3, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv3Raw = (Pjv_t) (Pjp->jp_Addr);
-	    Pjv3    = P_JV(Pjv3Raw);
-	    JU_COPYMEM(Pjv4, Pjv3, Pop1);
-	    j__udyLFreeJV(Pjv3Raw, Pop1, Pjpm);
-#endif
-	    return(Pop1);
-	}
-
-
-// UNEXPECTED CASES, including JPNULL3, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf3ToLeaf4()
-
-
-// Note:  In all following j__udyLeaf*ToLeaf*() functions, JPIMMED_*_0[2+]
-// cases exist for Judy1 (&& 64-bit) only.  JudyL has no equivalent Immeds.
-
-
-// *****************************************************************************
-// __ J U D Y   L E A F   4   T O   L E A F   5
-//
-// Copy 4-byte Indexes from a Leaf4 to 5-byte Indexes in a Leaf5.
-// Pjp MUST be one of:  cJU_JPLEAF4 or cJU_JPIMMED_4_*.
-// Return number of Indexes copied.
-//
-// Note:  By the time this function is called to compress a level-5 branch to a
-// Leaf5, the branch has no narrow pointers under it, meaning only level-4
-// objects are below it and must be handled here.
-
-FUNCTION Word_t  j__udyLeaf4ToLeaf5(
-	uint8_t * PLeaf5,	// destination "uint40_t *" Index part of leaf.
-#ifdef JUDYL
-	Pjv_t	  Pjv5,		// destination value part of leaf.
-#endif
-	Pjp_t	  Pjp,		// 4-byte-index object from which to copy.
-	Word_t    MSByte,	// most-significant byte, prefix to each Index.
-	Pvoid_t	  Pjpm)		// for global accounting.
-{
-	Word_t	  Pop1;		// Indexes in leaf.
-JUDYLCODE(Pjv_t	  Pjv4;)	// source object value area.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF4:
-
-	case cJU_JPLEAF4:
-	{
-	    uint32_t * PLeaf4 = (uint32_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1; assert(Pop1);
-	    j__udyCopy4to5(PLeaf5, PLeaf4, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv4 = JL_LEAF4VALUEAREA(PLeaf4, Pop1);
-	    JU_COPYMEM(Pjv5, Pjv4, Pop1);
-#endif
-	    j__udyFreeJLL4((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-
-
-// JPIMMED_4_01:
-//
-// Note:  jp_DcdPopO has 7 bytes of Index (all but most significant byte), so
-// the assignment to PLeaf5[] truncates and MSByte is not needed.
-
-	case cJU_JPIMMED_4_01:
-	{
-	    JU_COPY5_LONG_TO_PINDEX(PLeaf5, JU_JPDCDPOP0(Pjp));	// see above.
-	    JUDYLCODE(Pjv5[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-#ifdef JUDY1
-
-// JPIMMED_4_0[4+]:
-
-	case cJ1_JPIMMED_4_02:
-	case cJ1_JPIMMED_4_03:
-	{
-	    uint32_t * PLeaf4 = (uint32_t *) (Pjp->jp_1Index);
-
-	    Pop1 = JU_JPTYPE(Pjp) - cJ1_JPIMMED_4_02 + 2;
-	    j__udyCopy4to5(PLeaf5, PLeaf4, Pop1, MSByte);
-	    return(Pop1);
-	}
-#endif // JUDY1
-
-
-// UNEXPECTED CASES, including JPNULL4, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf4ToLeaf5()
-
-
-// ****************************************************************************
-// __ J U D Y   L E A F   5   T O   L E A F   6
-//
-// Copy 5-byte Indexes from a Leaf5 to 6-byte Indexes in a Leaf6.
-// Pjp MUST be one of:  cJU_JPLEAF5 or cJU_JPIMMED_5_*.
-// Return number of Indexes copied.
-//
-// Note:  By the time this function is called to compress a level-6 branch to a
-// Leaf6, the branch has no narrow pointers under it, meaning only level-5
-// objects are below it and must be handled here.
-
-FUNCTION Word_t  j__udyLeaf5ToLeaf6(
-	uint8_t * PLeaf6,	// destination uint8_t * Index part of leaf.
-#ifdef JUDYL
-	Pjv_t	  Pjv6,		// destination value part of leaf.
-#endif
-	Pjp_t	  Pjp,		// 5-byte-index object from which to copy.
-	Word_t    MSByte,	// most-significant byte, prefix to each Index.
-	Pvoid_t	  Pjpm)		// for global accounting.
-{
-	Word_t	  Pop1;		// Indexes in leaf.
-JUDYLCODE(Pjv_t	  Pjv5;)	// source object value area.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF5:
-
-	case cJU_JPLEAF5:
-	{
-	    uint8_t * PLeaf5 = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1; assert(Pop1);
-	    j__udyCopy5to6(PLeaf6, PLeaf5, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv5 = JL_LEAF5VALUEAREA(PLeaf5, Pop1);
-	    JU_COPYMEM(Pjv6, Pjv5, Pop1);
-#endif
-	    j__udyFreeJLL5((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-
-
-// JPIMMED_5_01:
-//
-// Note:  jp_DcdPopO has 7 bytes of Index (all but most significant byte), so
-// the assignment to PLeaf6[] truncates and MSByte is not needed.
-
-	case cJU_JPIMMED_5_01:
-	{
-	    JU_COPY6_LONG_TO_PINDEX(PLeaf6, JU_JPDCDPOP0(Pjp));	// see above.
-	    JUDYLCODE(Pjv6[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-#ifdef JUDY1
-
-// JPIMMED_5_0[2+]:
-
-	case cJ1_JPIMMED_5_02:
-	case cJ1_JPIMMED_5_03:
-	{
-	    uint8_t * PLeaf5 = (uint8_t *) (Pjp->jp_1Index);
-
-	    Pop1 = JU_JPTYPE(Pjp) - cJ1_JPIMMED_5_02 + 2;
-	    j__udyCopy5to6(PLeaf6, PLeaf5, Pop1, MSByte);
-	    return(Pop1);
-	}
-#endif // JUDY1
-
-
-// UNEXPECTED CASES, including JPNULL5, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf5ToLeaf6()
-
-
-// *****************************************************************************
-// __ J U D Y   L E A F   6   T O   L E A F   7
-//
-// Copy 6-byte Indexes from a Leaf2 to 7-byte Indexes in a Leaf7.
-// Pjp MUST be one of:  cJU_JPLEAF6 or cJU_JPIMMED_6_*.
-// Return number of Indexes copied.
-//
-// Note:  By the time this function is called to compress a level-7 branch to a
-// Leaf7, the branch has no narrow pointers under it, meaning only level-6
-// objects are below it and must be handled here.
-
-FUNCTION Word_t  j__udyLeaf6ToLeaf7(
-	uint8_t * PLeaf7,	// destination "uint24_t *" Index part of leaf.
-#ifdef JUDYL
-	Pjv_t	  Pjv7,		// destination value part of leaf.
-#endif
-	Pjp_t	  Pjp,		// 6-byte-index object from which to copy.
-	Word_t    MSByte,	// most-significant byte, prefix to each Index.
-	Pvoid_t	  Pjpm)		// for global accounting.
-{
-	Word_t	  Pop1;		// Indexes in leaf.
-JUDYLCODE(Pjv_t	  Pjv6;)	// source object value area.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF6:
-
-	case cJU_JPLEAF6:
-	{
-	    uint8_t * PLeaf6 = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyCopy6to7(PLeaf7, PLeaf6, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv6 = JL_LEAF6VALUEAREA(PLeaf6, Pop1);
-	    JU_COPYMEM(Pjv7, Pjv6, Pop1);
-#endif
-	    j__udyFreeJLL6((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-
-
-// JPIMMED_6_01:
-//
-// Note:  jp_DcdPopO has 7 bytes of Index (all but most significant byte), so
-// the "assignment" to PLeaf7[] is exact and MSByte is not needed.
-
-	case cJU_JPIMMED_6_01:
-	{
-	    JU_COPY7_LONG_TO_PINDEX(PLeaf7, JU_JPDCDPOP0(Pjp));	// see above.
-	    JUDYLCODE(Pjv7[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-#ifdef JUDY1
-
-// JPIMMED_6_02:
-
-	case cJ1_JPIMMED_6_02:
-	{
-	    uint8_t * PLeaf6 = (uint8_t *) (Pjp->jp_1Index);
-
-	    j__udyCopy6to7(PLeaf7, PLeaf6, /* Pop1 = */ 2, MSByte);
-	    return(2);
-	}
-#endif // JUDY1
-
-
-// UNEXPECTED CASES, including JPNULL6, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf6ToLeaf7()
-
-#endif // JU_64BIT
-
-
-#ifndef JU_64BIT // 32-bit version first
-
-// ****************************************************************************
-// __ J U D Y   L E A F   3   T O   L E A F   W
-//
-// Copy 3-byte Indexes from a Leaf3 to 4-byte Indexes in a LeafW.  Pjp MUST be
-// one of:  cJU_JPLEAF3 or cJU_JPIMMED_3_*.  Return number of Indexes copied.
-//
-// Note:  By the time this function is called to compress a level-L branch to a
-// LeafW, the branch has no narrow pointers under it, meaning only level-3
-// objects are below it and must be handled here.
-
-FUNCTION Word_t  j__udyLeaf3ToLeafW(
-	Pjlw_t	Pjlw,		// destination Index part of leaf.
-#ifdef JUDYL
-	Pjv_t	PjvW,		// destination value part of leaf.
-#endif
-	Pjp_t	Pjp,		// 3-byte-index object from which to copy.
-	Word_t	MSByte,		// most-significant byte, prefix to each Index.
-	Pvoid_t	Pjpm)		// for global accounting.
-{
-	Word_t	Pop1;		// Indexes in leaf.
-JUDYLCODE(Pjv_t Pjv3;)		// source object value area.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF3:
-
-	case cJU_JPLEAF3:
-	{
-	    uint8_t * PLeaf3 = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyCopy3toW((PWord_t) Pjlw, PLeaf3, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv3 = JL_LEAF3VALUEAREA(PLeaf3, Pop1);
-	    JU_COPYMEM(PjvW, Pjv3, Pop1);
-#endif
-	    j__udyFreeJLL3((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-
-
-// JPIMMED_3_01:
-//
-// Note:  jp_DcdPopO has 3 bytes of Index (all but most significant byte), and
-// MSByte must be ord in.
-
-	case cJU_JPIMMED_3_01:
-	{
-	    Pjlw[0] = MSByte | JU_JPDCDPOP0(Pjp);		// see above.
-	    JUDYLCODE(PjvW[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-#ifdef JUDY1
-
-// JPIMMED_3_02:
-
-	case cJU_JPIMMED_3_02:
-	{
-	    uint8_t * PLeaf3 = (uint8_t *) (Pjp->jp_1Index);
-
-	    j__udyCopy3toW((PWord_t) Pjlw, PLeaf3, /* Pop1 = */ 2, MSByte);
-	    return(2);
-	}
-#endif // JUDY1
-
-
-// UNEXPECTED CASES, including JPNULL3, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf3ToLeafW()
-
-
-#else // JU_64BIT
-
-
-// ****************************************************************************
-// __ J U D Y   L E A F   7   T O   L E A F   W
-//
-// Copy 7-byte Indexes from a Leaf7 to 8-byte Indexes in a LeafW.
-// Pjp MUST be one of:  cJU_JPLEAF7 or cJU_JPIMMED_7_*.
-// Return number of Indexes copied.
-//
-// Note:  By the time this function is called to compress a level-L branch to a
-// LeafW, the branch has no narrow pointers under it, meaning only level-7
-// objects are below it and must be handled here.
-
-FUNCTION Word_t  j__udyLeaf7ToLeafW(
-	Pjlw_t	Pjlw,		// destination Index part of leaf.
-#ifdef JUDYL
-	Pjv_t	PjvW,		// destination value part of leaf.
-#endif
-	Pjp_t	Pjp,		// 7-byte-index object from which to copy.
-	Word_t	MSByte,		// most-significant byte, prefix to each Index.
-	Pvoid_t	Pjpm)		// for global accounting.
-{
-	Word_t	Pop1;		// Indexes in leaf.
-JUDYLCODE(Pjv_t	Pjv7;)		// source object value area.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// JPLEAF7:
-
-	case cJU_JPLEAF7:
-	{
-	    uint8_t * PLeaf7 = (uint8_t *) P_JLL(Pjp->jp_Addr);
-
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyCopy7toW((PWord_t) Pjlw, PLeaf7, Pop1, MSByte);
-#ifdef JUDYL
-	    Pjv7 = JL_LEAF7VALUEAREA(PLeaf7, Pop1);
-	    JU_COPYMEM(PjvW, Pjv7, Pop1);
-#endif
-	    j__udyFreeJLL7((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    return(Pop1);
-	}
-
-
-// JPIMMED_7_01:
-//
-// Note:  jp_DcdPopO has 7 bytes of Index (all but most significant byte), and
-// MSByte must be ord in.
-
-	case cJU_JPIMMED_7_01:
-	{
-	    Pjlw[0] = MSByte | JU_JPDCDPOP0(Pjp);		// see above.
-	    JUDYLCODE(PjvW[0] = Pjp->jp_Addr;)
-	    return(1);
-	}
-
-
-#ifdef JUDY1
-
-// JPIMMED_7_02:
-
-	case cJ1_JPIMMED_7_02:
-	{
-	    uint8_t * PLeaf7 = (uint8_t *) (Pjp->jp_1Index);
-
-	    j__udyCopy7toW((PWord_t) Pjlw, PLeaf7, /* Pop1 = */ 2, MSByte);
-	    return(2);
-	}
-#endif
-
-
-// UNEXPECTED CASES, including JPNULL7, should be handled by caller:
-
-	default: assert(FALSE); break;
-
-	} // switch
-
-	return(0);
-
-} // j__udyLeaf7ToLeafW()
-
-#endif // JU_64BIT
diff --git a/libs/klib/judy/JudyDel.c b/libs/klib/judy/JudyDel.c
deleted file mode 100644
index 4291da6..0000000
--- a/libs/klib/judy/JudyDel.c
+++ /dev/null
@@ -1,2144 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy1Unset() and JudyLDel() functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// About HYSTERESIS:  In the Judy code, hysteresis means leaving around a
-// nominally suboptimal (not maximally compressed) data structure after a
-// deletion.  As a result, the shape of the tree for two identical index sets
-// can differ depending on the insert/delete path taken to arrive at the index
-// sets.  The purpose is to minimize worst-case behavior (thrashing) that could
-// result from a series of intermixed insertions and deletions.  It also makes
-// for MUCH simpler code, because instead of performing, "delete and then
-// compress," it can say, "compress and then delete," where due to hysteresis,
-// compression is not even attempted until the object IS compressible.
-//
-// In some cases the code has no choice and it must "ungrow" a data structure
-// across a "phase transition" boundary without hysteresis.  In other cases the
-// amount (such as "hysteresis = 1") is indicated by the number of JP deletions
-// (in branches) or index deletions (in leaves) that can occur in succession
-// before compressing the data structure.  (It appears that hysteresis <= 1 in
-// all cases.)
-//
-// In general no hysteresis occurs when the data structure type remains the
-// same but the allocated memory chunk for the node must shrink, because the
-// relationship is hardwired and theres no way to know how much memory is
-// allocated to a given data structure.  Hysteresis = 0 in all these cases.
-//
-// TBD:  Could this code be faster if memory chunk hysteresis were supported
-// somehow along with data structure type hysteresis?
-//
-// TBD:  Should some of the assertions here be converted to product code that
-// returns JU_ERRNO_CORRUPT?
-//
-// TBD:  Dougs code had an odd mix of function-wide and limited-scope
-// variables.  Should some of the function-wide variables appear only in
-// limited scopes, or more likely, vice-versa?
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-DBGCODE(extern void JudyCheckPop(Pvoid_t PArray);)
-DBGCODE(extern void JudyCheckSorted(Pjll_t Pjll, Word_t Pop1, long IndexSize);)
-
-#ifdef TRACEJP
-#include "JudyPrintJP.c"
-#endif
-
-// These are defined to generic values in JudyCommon/JudyPrivateTypes.h:
-//
-// TBD:  These should be exported from a header file, but perhaps not, as they
-// are only used here, and exported from JudyDecascade.c, which is a separate
-// file for profiling reasons (to prevent inlining), but which potentially
-// could be merged with this file, either in SoftCM or at compile-time:
-
-#ifdef JUDY1
-
-extern int      j__udy1BranchBToBranchL(Pjp_t Pjp, Pvoid_t Pjpm);
-#ifndef JU_64BIT
-extern int      j__udy1LeafB1ToLeaf1(Pjp_t, Pvoid_t);
-#endif
-extern Word_t   j__udy1Leaf1ToLeaf2(uint16_t *, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udy1Leaf2ToLeaf3(uint8_t  *, Pjp_t, Word_t, Pvoid_t);
-#ifndef JU_64BIT
-extern Word_t   j__udy1Leaf3ToLeafW(Pjlw_t,     Pjp_t, Word_t, Pvoid_t);
-#else
-extern Word_t   j__udy1Leaf3ToLeaf4(uint32_t *, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udy1Leaf4ToLeaf5(uint8_t  *, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udy1Leaf5ToLeaf6(uint8_t  *, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udy1Leaf6ToLeaf7(uint8_t  *, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udy1Leaf7ToLeafW(Pjlw_t,     Pjp_t, Word_t, Pvoid_t);
-#endif
-
-#else // JUDYL
-
-extern int      j__udyLBranchBToBranchL(Pjp_t Pjp, Pvoid_t Pjpm);
-extern int      j__udyLLeafB1ToLeaf1(Pjp_t, Pvoid_t);
-extern Word_t   j__udyLLeaf1ToLeaf2(uint16_t *, Pjv_t, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udyLLeaf2ToLeaf3(uint8_t  *, Pjv_t, Pjp_t, Word_t, Pvoid_t);
-#ifndef JU_64BIT
-extern Word_t   j__udyLLeaf3ToLeafW(Pjlw_t,     Pjv_t, Pjp_t, Word_t, Pvoid_t);
-#else
-extern Word_t   j__udyLLeaf3ToLeaf4(uint32_t *, Pjv_t, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udyLLeaf4ToLeaf5(uint8_t  *, Pjv_t, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udyLLeaf5ToLeaf6(uint8_t  *, Pjv_t, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udyLLeaf6ToLeaf7(uint8_t  *, Pjv_t, Pjp_t, Word_t, Pvoid_t);
-extern Word_t   j__udyLLeaf7ToLeafW(Pjlw_t,     Pjv_t, Pjp_t, Word_t, Pvoid_t);
-#endif
-
-#endif // JUDYL
-
-// For convenience in the calling code; "M1" means "minus one":
-
-#ifndef JU_64BIT
-#define j__udyLeafM1ToLeafW j__udyLeaf3ToLeafW
-#else
-#define j__udyLeafM1ToLeafW j__udyLeaf7ToLeafW
-#endif
-
-
-// ****************************************************************************
-// __ J U D Y   D E L   W A L K
-//
-// Given a pointer to a JP, an Index known to be valid, the number of bytes
-// left to decode (== level in the tree), and a pointer to a global JPM, walk a
-// Judy (sub)tree to do an unset/delete of that index, and possibly modify the
-// JPM.  This function is only called internally, and recursively.  Unlike
-// Judy1Test() and JudyLGet(), the extra time required for recursion should be
-// negligible compared with the total.
-//
-// Return values:
-//
-// -1 error; details in JPM
-//
-//  0 Index already deleted (should never happen, Index is known to be valid)
-//
-//  1 previously valid Index deleted
-//
-//  2 same as 1, but in addition the JP now points to a BranchL containing a
-//    single JP, which should be compressed into the parent branch (if there
-//    is one, which is not the case for a top-level branch under a JPM)
-
-DBGCODE(uint8_t parentJPtype;)          // parent branch JP type.
-
-FUNCTION static int j__udyDelWalk(
-        Pjp_t   Pjp,            // current JP under which to delete.
-        Word_t  Index,          // to delete.
-        Word_t  ParentLevel,    // of parent branch.
-        Pjpm_t  Pjpm)           // for returning info to top level.
-{
-        Word_t  pop1;           // of a leaf.
-        Word_t  level;          // of a leaf.
-        uint8_t digit;          // from Index, in current branch.
-        Pjll_t  PjllnewRaw;     // address of newly allocated leaf.
-        Pjll_t  Pjllnew;
-        int     offset;         // within a branch.
-        int     retcode;        // return code: -1, 0, 1, 2.
-JUDYLCODE(Pjv_t PjvRaw;)        // value area.
-JUDYLCODE(Pjv_t Pjv;)
-
-        DBGCODE(level = 0;)
-
-ContinueDelWalk:                // for modifying state without recursing.
-
-#ifdef TRACEJP
-        JudyPrintJP(Pjp, "d", __LINE__);
-#endif
-
-        switch (JU_JPTYPE(Pjp)) // entry:  Pjp, Index.
-        {
-
-
-// ****************************************************************************
-// LINEAR BRANCH:
-//
-// MACROS FOR COMMON CODE:
-//
-// Check for population too high to compress a branch to a leaf, meaning just
-// descend through the branch, with a purposeful off-by-one error that
-// constitutes hysteresis = 1.  In other words, do not compress until the
-// branchs CURRENT population fits in the leaf, even BEFORE deleting one
-// index.
-//
-// Next is a label for branch-type-specific common code.  Variables pop1,
-// level, digit, and Index are in the context.
-
-#define JU_BRANCH_KEEP(cLevel,MaxPop1,Next)             \
-        if (pop1 > (MaxPop1))   /* hysteresis = 1 */    \
-        {                                               \
-            assert((cLevel) >= 2);                      \
-            level = (cLevel);                           \
-            digit = JU_DIGITATSTATE(Index, cLevel);     \
-            goto Next;                                  \
-        }
-
-// Support for generic calling of JudyLeaf*ToLeaf*() functions:
-//
-// Note:  Cannot use JUDYLCODE() because this contains a comma.
-
-#ifdef JUDY1
-#define JU_PVALUEPASS  // null.
-#else
-#define JU_PVALUEPASS  Pjv,
-#endif
-
-// During compression to a leaf, check if a JP contains nothing but a
-// cJU_JPIMMED_*_01, in which case shortcut calling j__udyLeaf*ToLeaf*():
-//
-// Copy the index bytes from the jp_DcdPopO field (with possible truncation),
-// and continue the branch-JP-walk loop.  Variables Pjp and Pleaf are in the
-// context.
-
-#define JU_BRANCH_COPY_IMMED_EVEN(cLevel,Pjp,ignore)            \
-        if (JU_JPTYPE(Pjp) == cJU_JPIMMED_1_01 + (cLevel) - 2)  \
-        {                                                       \
-            *Pleaf++ = JU_JPDCDPOP0(Pjp);                       \
-  JUDYLCODE(*Pjv++   = (Pjp)->jp_Addr;)                         \
-            continue;   /* for-loop */                          \
-        }
-
-#define JU_BRANCH_COPY_IMMED_ODD(cLevel,Pjp,CopyIndex)          \
-        if (JU_JPTYPE(Pjp) == cJU_JPIMMED_1_01 + (cLevel) - 2)  \
-        {                                                       \
-            CopyIndex(Pleaf, (Word_t) (JU_JPDCDPOP0(Pjp)));     \
-            Pleaf += (cLevel);  /* index size = level */        \
-  JUDYLCODE(*Pjv++ = (Pjp)->jp_Addr;)                           \
-            continue;   /* for-loop */                          \
-        }
-
-// Compress a BranchL into a leaf one index size larger:
-//
-// Allocate a new leaf, walk the JPs in the old BranchL and pack their contents
-// into the new leaf (of type NewJPType), free the old BranchL, and finally
-// restart the switch to delete Index from the new leaf.  (Note that all
-// BranchLs are the same size.)  Variables Pjp, Pjpm, Pleaf, digit, and pop1
-// are in the context.
-
-#define JU_BRANCHL_COMPRESS(cLevel,LeafType,MaxPop1,NewJPType,          \
-                            LeafToLeaf,Alloc,ValueArea,                 \
-                            CopyImmed,CopyIndex)                        \
-        {                                                               \
-            LeafType Pleaf;                                             \
-            Pjbl_t   PjblRaw;                                           \
-            Pjbl_t   Pjbl;                                              \
-            Word_t   numJPs;                                            \
-                                                                        \
-            if ((PjllnewRaw = Alloc(MaxPop1, Pjpm)) == 0) return(-1);   \
-            Pjllnew = P_JLL(PjllnewRaw);                                \
-            Pleaf   = (LeafType) Pjllnew;                               \
-  JUDYLCODE(Pjv     = ValueArea(Pleaf, MaxPop1);)                       \
-                                                                        \
-            PjblRaw = (Pjbl_t) (Pjp->jp_Addr);                          \
-            Pjbl    = P_JBL(PjblRaw);                                   \
-            numJPs  = Pjbl->jbl_NumJPs;                                 \
-                                                                        \
-            for (offset = 0; offset < numJPs; ++offset)                 \
-            {                                                           \
-                CopyImmed(cLevel, (Pjbl->jbl_jp) + offset, CopyIndex);  \
-                                                                        \
-                pop1 = LeafToLeaf(Pleaf, JU_PVALUEPASS                  \
-                          (Pjbl->jbl_jp) + offset,                      \
-                          JU_DIGITTOSTATE(Pjbl->jbl_Expanse[offset],    \
-                          cLevel), (Pvoid_t) Pjpm);                     \
-                Pleaf = (LeafType) (((Word_t) Pleaf) + ((cLevel) * pop1)); \
-      JUDYLCODE(Pjv  += pop1;)                                          \
-            }                                                           \
-            assert(((((Word_t) Pleaf) - ((Word_t) Pjllnew)) / (cLevel)) == (MaxPop1)); \
-  JUDYLCODE(assert((Pjv - ValueArea(Pjllnew, MaxPop1)) == (MaxPop1));)  \
-            DBGCODE(JudyCheckSorted(Pjllnew, MaxPop1, cLevel);)         \
-                                                                        \
-            j__udyFreeJBL(PjblRaw, Pjpm);                               \
-                                                                        \
-            Pjp->jp_Type = (NewJPType);                                 \
-            Pjp->jp_Addr = (Word_t) PjllnewRaw;                         \
-            goto ContinueDelWalk;       /* delete from new leaf */      \
-        }
-
-// Overall common code for initial BranchL deletion handling:
-//
-// Assert that Index is in the branch, then see if the BranchL should be kept
-// or else compressed to a leaf.  Variables Index, Pjp, and pop1 are in the
-// context.
-
-#define JU_BRANCHL(cLevel,MaxPop1,LeafType,NewJPType,                   \
-                   LeafToLeaf,Alloc,ValueArea,CopyImmed,CopyIndex)      \
-                                                                        \
-        assert(! JU_DCDNOTMATCHINDEX(Index, Pjp, cLevel));              \
-        assert(ParentLevel > (cLevel));                                 \
-                                                                        \
-        pop1 = JU_JPBRANCH_POP0(Pjp, cLevel) + 1;                       \
-        JU_BRANCH_KEEP(cLevel, MaxPop1, BranchLKeep);                   \
-        assert(pop1 == (MaxPop1));                                      \
-                                                                        \
-        JU_BRANCHL_COMPRESS(cLevel, LeafType, MaxPop1, NewJPType,       \
-                            LeafToLeaf, Alloc, ValueArea, CopyImmed, CopyIndex)
-
-
-// END OF MACROS, START OF CASES:
-
-        case cJU_JPBRANCH_L2:
-
-            JU_BRANCHL(2, cJU_LEAF2_MAXPOP1, uint16_t *, cJU_JPLEAF2,
-                       j__udyLeaf1ToLeaf2, j__udyAllocJLL2, JL_LEAF2VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_EVEN, ignore);
-
-        case cJU_JPBRANCH_L3:
-
-            JU_BRANCHL(3, cJU_LEAF3_MAXPOP1, uint8_t *, cJU_JPLEAF3,
-                       j__udyLeaf2ToLeaf3, j__udyAllocJLL3, JL_LEAF3VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY3_LONG_TO_PINDEX);
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_L4:
-
-            JU_BRANCHL(4, cJU_LEAF4_MAXPOP1, uint32_t *, cJU_JPLEAF4,
-                       j__udyLeaf3ToLeaf4, j__udyAllocJLL4, JL_LEAF4VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_EVEN, ignore);
-
-        case cJU_JPBRANCH_L5:
-
-            JU_BRANCHL(5, cJU_LEAF5_MAXPOP1, uint8_t *, cJU_JPLEAF5,
-                       j__udyLeaf4ToLeaf5, j__udyAllocJLL5, JL_LEAF5VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY5_LONG_TO_PINDEX);
-
-        case cJU_JPBRANCH_L6:
-
-            JU_BRANCHL(6, cJU_LEAF6_MAXPOP1, uint8_t *, cJU_JPLEAF6,
-                       j__udyLeaf5ToLeaf6, j__udyAllocJLL6, JL_LEAF6VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY6_LONG_TO_PINDEX);
-
-        case cJU_JPBRANCH_L7:
-
-            JU_BRANCHL(7, cJU_LEAF7_MAXPOP1, uint8_t *, cJU_JPLEAF7,
-                       j__udyLeaf6ToLeaf7, j__udyAllocJLL7, JL_LEAF7VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY7_LONG_TO_PINDEX);
-#endif // JU_64BIT
-
-// A top-level BranchL is different and cannot use JU_BRANCHL():  Dont try to
-// compress to a (LEAFW) leaf yet, but leave this for a later deletion
-// (hysteresis > 0); and the next JP type depends on the system word size; so
-// dont use JU_BRANCH_KEEP():
-
-        case cJU_JPBRANCH_L:
-        {
-            Pjbl_t Pjbl;
-            Word_t numJPs;
-
-            level = cJU_ROOTSTATE;
-            digit = JU_DIGITATSTATE(Index, cJU_ROOTSTATE);
-
-            // fall through:
-
-
-// COMMON CODE FOR KEEPING AND DESCENDING THROUGH A BRANCHL:
-//
-// Come here with level and digit set.
-
-BranchLKeep:
-            Pjbl   = P_JBL(Pjp->jp_Addr);
-            numJPs = Pjbl->jbl_NumJPs;
-            assert(numJPs > 0);
-            DBGCODE(parentJPtype = JU_JPTYPE(Pjp);)
-
-// Search for a match to the digit (valid Index => must find digit):
-
-            for (offset = 0; (Pjbl->jbl_Expanse[offset]) != digit; ++offset)
-                assert(offset < numJPs - 1);
-
-            Pjp = (Pjbl->jbl_jp) + offset;
-
-// If not at a (deletable) JPIMMED_*_01, continue the walk (to descend through
-// the BranchL):
-
-            assert(level >= 2);
-            if ((JU_JPTYPE(Pjp)) != cJU_JPIMMED_1_01 + level - 2) break;
-
-// At JPIMMED_*_01:  Ensure the index is in the right expanse, then delete the
-// Immed from the BranchL:
-//
-// Note:  A BranchL has a fixed size and format regardless of numJPs.
-
-            assert(JU_JPDCDPOP0(Pjp) == JU_TRIMTODCDSIZE(Index));
-
-            JU_DELETEINPLACE(Pjbl->jbl_Expanse, numJPs, offset, ignore);
-            JU_DELETEINPLACE(Pjbl->jbl_jp,      numJPs, offset, ignore);
-
-            DBGCODE(JudyCheckSorted((Pjll_t) (Pjbl->jbl_Expanse),
-                                    numJPs - 1, 1);)
-
-// If only one index left in the BranchL, indicate this to the caller:
-
-            return ((--(Pjbl->jbl_NumJPs) <= 1) ? 2 : 1);
-
-        } // case cJU_JPBRANCH_L.
-
-
-// ****************************************************************************
-// BITMAP BRANCH:
-//
-// MACROS FOR COMMON CODE:
-//
-// Note the reuse of common macros here, defined earlier:  JU_BRANCH_KEEP(),
-// JU_PVALUE*.
-//
-// Compress a BranchB into a leaf one index size larger:
-//
-// Allocate a new leaf, walk the JPs in the old BranchB (one bitmap subexpanse
-// at a time) and pack their contents into the new leaf (of type NewJPType),
-// free the old BranchB, and finally restart the switch to delete Index from
-// the new leaf.  Variables Pjp, Pjpm, Pleaf, digit, and pop1 are in the
-// context.
-//
-// Note:  Its no accident that the interface to JU_BRANCHB_COMPRESS() is
-// identical to JU_BRANCHL_COMPRESS().  Only the details differ in how to
-// traverse the branchs JPs.
-
-#define JU_BRANCHB_COMPRESS(cLevel,LeafType,MaxPop1,NewJPType,          \
-                            LeafToLeaf,Alloc,ValueArea,                 \
-                            CopyImmed,CopyIndex)                        \
-        {                                                               \
-            LeafType  Pleaf;                                            \
-            Pjbb_t    PjbbRaw;  /* BranchB to compress */               \
-            Pjbb_t    Pjbb;                                             \
-            Word_t    subexp;   /* current subexpanse number    */      \
-            BITMAPB_t bitmap;   /* portion for this subexpanse  */      \
-            Pjp_t     Pjp2Raw;  /* one subexpanses subarray     */      \
-            Pjp_t     Pjp2;                                             \
-                                                                        \
-            if ((PjllnewRaw = Alloc(MaxPop1, Pjpm)) == 0) return(-1);   \
-            Pjllnew = P_JLL(PjllnewRaw);                                \
-            Pleaf   = (LeafType) Pjllnew;                               \
-  JUDYLCODE(Pjv     = ValueArea(Pleaf, MaxPop1);)                       \
-                                                                        \
-            PjbbRaw = (Pjbb_t) (Pjp->jp_Addr);                          \
-            Pjbb    = P_JBB(PjbbRaw);                                   \
-                                                                        \
-            for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)         \
-            {                                                           \
-                if ((bitmap = JU_JBB_BITMAP(Pjbb, subexp)) == 0)        \
-                    continue;           /* empty subexpanse */          \
-                                                                        \
-                digit   = subexp * cJU_BITSPERSUBEXPB;                  \
-                Pjp2Raw = JU_JBB_PJP(Pjbb, subexp);                     \
-                Pjp2    = P_JP(Pjp2Raw);                                \
-                assert(Pjp2 != (Pjp_t) NULL);                           \
-                                                                        \
-                for (offset = 0; bitmap != 0; bitmap >>= 1, ++digit)    \
-                {                                                       \
-                    if (! (bitmap & 1))                                 \
-                        continue;       /* empty sub-subexpanse */      \
-                                                                        \
-                    ++offset;           /* before any continue */       \
-                                                                        \
-                    CopyImmed(cLevel, Pjp2 + offset - 1, CopyIndex);    \
-                                                                        \
-                    pop1 = LeafToLeaf(Pleaf, JU_PVALUEPASS              \
-                                      Pjp2 + offset - 1,                \
-                                      JU_DIGITTOSTATE(digit, cLevel),   \
-                                      (Pvoid_t) Pjpm);                  \
-                    Pleaf = (LeafType) (((Word_t) Pleaf) + ((cLevel) * pop1)); \
-          JUDYLCODE(Pjv  += pop1;)                                      \
-                }                                                       \
-                j__udyFreeJBBJP(Pjp2Raw, /* pop1 = */ offset, Pjpm);    \
-            }                                                           \
-            assert(((((Word_t) Pleaf) - ((Word_t) Pjllnew)) / (cLevel)) == (MaxPop1)); \
-  JUDYLCODE(assert((Pjv - ValueArea(Pjllnew, MaxPop1)) == (MaxPop1));)  \
-            DBGCODE(JudyCheckSorted(Pjllnew, MaxPop1, cLevel);)         \
-                                                                        \
-            j__udyFreeJBB(PjbbRaw, Pjpm);                               \
-                                                                        \
-            Pjp->jp_Type = (NewJPType);                                 \
-            Pjp->jp_Addr = (Word_t) PjllnewRaw;                         \
-            goto ContinueDelWalk;       /* delete from new leaf */      \
-        }
-
-// Overall common code for initial BranchB deletion handling:
-//
-// Assert that Index is in the branch, then see if the BranchB should be kept
-// or else compressed to a leaf.  Variables Index, Pjp, and pop1 are in the
-// context.
-
-#define JU_BRANCHB(cLevel,MaxPop1,LeafType,NewJPType,                   \
-                   LeafToLeaf,Alloc,ValueArea,CopyImmed,CopyIndex)      \
-                                                                        \
-        assert(! JU_DCDNOTMATCHINDEX(Index, Pjp, cLevel));              \
-        assert(ParentLevel > (cLevel));                                 \
-                                                                        \
-        pop1 = JU_JPBRANCH_POP0(Pjp, cLevel) + 1;                       \
-        JU_BRANCH_KEEP(cLevel, MaxPop1, BranchBKeep);                   \
-        assert(pop1 == (MaxPop1));                                      \
-                                                                        \
-        JU_BRANCHB_COMPRESS(cLevel, LeafType, MaxPop1, NewJPType,       \
-                            LeafToLeaf, Alloc, ValueArea, CopyImmed, CopyIndex)
-
-
-// END OF MACROS, START OF CASES:
-//
-// Note:  Its no accident that the macro calls for these cases is nearly
-// identical to the code for BranchLs.
-
-        case cJU_JPBRANCH_B2:
-
-            JU_BRANCHB(2, cJU_LEAF2_MAXPOP1, uint16_t *, cJU_JPLEAF2,
-                       j__udyLeaf1ToLeaf2, j__udyAllocJLL2, JL_LEAF2VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_EVEN, ignore);
-
-        case cJU_JPBRANCH_B3:
-
-            JU_BRANCHB(3, cJU_LEAF3_MAXPOP1, uint8_t *, cJU_JPLEAF3,
-                       j__udyLeaf2ToLeaf3, j__udyAllocJLL3, JL_LEAF3VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY3_LONG_TO_PINDEX);
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_B4:
-
-            JU_BRANCHB(4, cJU_LEAF4_MAXPOP1, uint32_t *, cJU_JPLEAF4,
-                       j__udyLeaf3ToLeaf4, j__udyAllocJLL4, JL_LEAF4VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_EVEN, ignore);
-
-        case cJU_JPBRANCH_B5:
-
-            JU_BRANCHB(5, cJU_LEAF5_MAXPOP1, uint8_t *, cJU_JPLEAF5,
-                       j__udyLeaf4ToLeaf5, j__udyAllocJLL5, JL_LEAF5VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY5_LONG_TO_PINDEX);
-
-        case cJU_JPBRANCH_B6:
-
-            JU_BRANCHB(6, cJU_LEAF6_MAXPOP1, uint8_t *, cJU_JPLEAF6,
-                       j__udyLeaf5ToLeaf6, j__udyAllocJLL6, JL_LEAF6VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY6_LONG_TO_PINDEX);
-
-        case cJU_JPBRANCH_B7:
-
-            JU_BRANCHB(7, cJU_LEAF7_MAXPOP1, uint8_t *, cJU_JPLEAF7,
-                       j__udyLeaf6ToLeaf7, j__udyAllocJLL7, JL_LEAF7VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY7_LONG_TO_PINDEX);
-#endif // JU_64BIT
-
-// A top-level BranchB is different and cannot use JU_BRANCHB():  Dont try to
-// compress to a (LEAFW) leaf yet, but leave this for a later deletion
-// (hysteresis > 0); and the next JP type depends on the system word size; so
-// dont use JU_BRANCH_KEEP():
-
-        case cJU_JPBRANCH_B:
-        {
-            Pjbb_t    Pjbb;             // BranchB to modify.
-            Word_t    subexp;           // current subexpanse number.
-            Word_t    subexp2;          // in second-level loop.
-            BITMAPB_t bitmap;           // portion for this subexpanse.
-            BITMAPB_t bitmask;          // with digits bit set.
-            Pjp_t     Pjp2Raw;          // one subexpanses subarray.
-            Pjp_t     Pjp2;
-            Word_t    numJPs;           // in one subexpanse.
-
-            level = cJU_ROOTSTATE;
-            digit = JU_DIGITATSTATE(Index, cJU_ROOTSTATE);
-
-            // fall through:
-
-
-// COMMON CODE FOR KEEPING AND DESCENDING THROUGH A BRANCHB:
-//
-// Come here with level and digit set.
-
-BranchBKeep:
-            Pjbb    = P_JBB(Pjp->jp_Addr);
-            subexp  = digit / cJU_BITSPERSUBEXPB;
-            bitmap  = JU_JBB_BITMAP(Pjbb, subexp);
-            bitmask = JU_BITPOSMASKB(digit);
-            assert(bitmap & bitmask);   // Index valid => digits bit is set.
-            DBGCODE(parentJPtype = JU_JPTYPE(Pjp);)
-
-// Compute digits offset into the bitmap, with a fast method if all bits are
-// set:
-
-            offset = ((bitmap == (cJU_FULLBITMAPB)) ?
-                      digit % cJU_BITSPERSUBEXPB :
-                      j__udyCountBitsB(bitmap & JU_MASKLOWEREXC(bitmask)));
-
-            Pjp2Raw = JU_JBB_PJP(Pjbb, subexp);
-            Pjp2    = P_JP(Pjp2Raw);
-            assert(Pjp2 != (Pjp_t) NULL);       // valid subexpanse pointer.
-
-// If not at a (deletable) JPIMMED_*_01, continue the walk (to descend through
-// the BranchB):
-
-            if (JU_JPTYPE(Pjp2 + offset) != cJU_JPIMMED_1_01 + level - 2)
-            {
-                Pjp = Pjp2 + offset;
-                break;
-            }
-
-// At JPIMMED_*_01:  Ensure the index is in the right expanse, then delete the
-// Immed from the BranchB:
-
-            assert(JU_JPDCDPOP0(Pjp2 + offset)
-                   == JU_TRIMTODCDSIZE(Index));
-
-// If only one index is left in the subexpanse, free the JP array:
-
-            if ((numJPs = j__udyCountBitsB(bitmap)) == 1)
-            {
-                j__udyFreeJBBJP(Pjp2Raw, /* pop1 = */ 1, Pjpm);
-                JU_JBB_PJP(Pjbb, subexp) = (Pjp_t) NULL;
-            }
-
-// Shrink JP array in-place:
-
-            else if (JU_BRANCHBJPGROWINPLACE(numJPs - 1))
-            {
-                assert(numJPs > 0);
-                JU_DELETEINPLACE(Pjp2, numJPs, offset, ignore);
-            }
-
-// JP array would end up too large; compress it to a smaller one:
-
-            else
-            {
-                Pjp_t PjpnewRaw;
-                Pjp_t Pjpnew;
-
-                if ((PjpnewRaw = j__udyAllocJBBJP(numJPs - 1, Pjpm))
-                 == (Pjp_t) NULL) return(-1);
-                Pjpnew = P_JP(PjpnewRaw);
-
-                JU_DELETECOPY(Pjpnew, Pjp2, numJPs, offset, ignore);
-                j__udyFreeJBBJP(Pjp2Raw, numJPs, Pjpm);         // old.
-
-                JU_JBB_PJP(Pjbb, subexp) = PjpnewRaw;
-            }
-
-// Clear digits bit in the bitmap:
-
-            JU_JBB_BITMAP(Pjbb, subexp) ^= bitmask;
-
-// If the current subexpanse alone is still too large for a BranchL (with
-// hysteresis = 1), the delete is all done:
-
-            if (numJPs > cJU_BRANCHLMAXJPS) return(1);
-
-// Consider shrinking the current BranchB to a BranchL:
-//
-// Check the numbers of JPs in other subexpanses in the BranchL.  Upon reaching
-// the critical number of numJPs (which could be right at the start; again,
-// with hysteresis = 1), its faster to just watch for any non-empty subexpanse
-// than to count bits in each subexpanse.  Upon finding too many JPs, give up
-// on shrinking the BranchB.
-
-            for (subexp2 = 0; subexp2 < cJU_NUMSUBEXPB; ++subexp2)
-            {
-                if (subexp2 == subexp) continue;  // skip current subexpanse.
-
-                if ((numJPs == cJU_BRANCHLMAXJPS) ?
-                    JU_JBB_BITMAP(Pjbb, subexp2) :
-                    ((numJPs += j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp2)))
-                     > cJU_BRANCHLMAXJPS))
-                {
-                    return(1);          // too many JPs, cannot shrink.
-                }
-            }
-
-// Shrink current BranchB to a BranchL:
-//
-// Note:  In this rare case, ignore the return value, do not pass it to the
-// caller, because the deletion is already successfully completed and the
-// caller(s) must decrement population counts.  The only errors expected from
-// this call are JU_ERRNO_NOMEM and JU_ERRNO_OVERRUN, neither of which is worth
-// forwarding from this point.  See also 4.1, 4.8, and 4.15 of this file.
-
-            (void) j__udyBranchBToBranchL(Pjp, Pjpm);
-            return(1);
-
-        } // case.
-
-
-// ****************************************************************************
-// UNCOMPRESSED BRANCH:
-//
-// MACROS FOR COMMON CODE:
-//
-// Note the reuse of common macros here, defined earlier:  JU_PVALUE*.
-//
-// Compress a BranchU into a leaf one index size larger:
-//
-// Allocate a new leaf, walk the JPs in the old BranchU and pack their contents
-// into the new leaf (of type NewJPType), free the old BranchU, and finally
-// restart the switch to delete Index from the new leaf.  Variables Pjp, Pjpm,
-// digit, and pop1 are in the context.
-//
-// Note:  Its no accident that the interface to JU_BRANCHU_COMPRESS() is
-// nearly identical to JU_BRANCHL_COMPRESS(); just NullJPType is added.  The
-// details differ in how to traverse the branchs JPs --
-//
-// -- and also, what to do upon encountering a cJU_JPIMMED_*_01 JP.  In
-// BranchLs and BranchBs the JP must be deleted, but in a BranchU its merely
-// converted to a null JP, and this is done by other switch cases, so the "keep
-// branch" situation is simpler here and JU_BRANCH_KEEP() is not used.  Also,
-// theres no code to convert a BranchU to a BranchB since counting the JPs in
-// a BranchU is (at least presently) expensive, and besides, keeping around a
-// BranchU is form of hysteresis.
-
-#define JU_BRANCHU_COMPRESS(cLevel,LeafType,MaxPop1,NullJPType,NewJPType,   \
-                            LeafToLeaf,Alloc,ValueArea,CopyImmed,CopyIndex) \
-        {                                                               \
-            LeafType Pleaf;                                             \
-            Pjbu_t PjbuRaw = (Pjbu_t) (Pjp->jp_Addr);                   \
-            Pjp_t  Pjp2    = JU_JBU_PJP0(Pjp);                          \
-            Word_t ldigit;      /* larger than uint8_t */               \
-                                                                        \
-            if ((PjllnewRaw = Alloc(MaxPop1, Pjpm)) == 0) return(-1);   \
-            Pjllnew = P_JLL(PjllnewRaw);                                \
-            Pleaf   = (LeafType) Pjllnew;                               \
-  JUDYLCODE(Pjv     = ValueArea(Pleaf, MaxPop1);)                       \
-                                                                        \
-            for (ldigit = 0; ldigit < cJU_BRANCHUNUMJPS; ++ldigit, ++Pjp2) \
-            {                                                           \
-                /* fast-process common types: */                        \
-                if (JU_JPTYPE(Pjp2) == (NullJPType)) continue;          \
-                CopyImmed(cLevel, Pjp2, CopyIndex);                     \
-                                                                        \
-                pop1 = LeafToLeaf(Pleaf, JU_PVALUEPASS Pjp2,            \
-                                  JU_DIGITTOSTATE(ldigit, cLevel),      \
-                                  (Pvoid_t) Pjpm);                      \
-                Pleaf = (LeafType) (((Word_t) Pleaf) + ((cLevel) * pop1)); \
-      JUDYLCODE(Pjv  += pop1;)                                          \
-            }                                                           \
-            assert(((((Word_t) Pleaf) - ((Word_t) Pjllnew)) / (cLevel)) == (MaxPop1)); \
-  JUDYLCODE(assert((Pjv - ValueArea(Pjllnew, MaxPop1)) == (MaxPop1));)  \
-            DBGCODE(JudyCheckSorted(Pjllnew, MaxPop1, cLevel);)         \
-                                                                        \
-            j__udyFreeJBU(PjbuRaw, Pjpm);                               \
-                                                                        \
-            Pjp->jp_Type = (NewJPType);                                 \
-            Pjp->jp_Addr = (Word_t) PjllnewRaw;                         \
-            goto ContinueDelWalk;       /* delete from new leaf */      \
-        }
-
-// Overall common code for initial BranchU deletion handling:
-//
-// Assert that Index is in the branch, then see if a BranchU should be kept or
-// else compressed to a leaf.  Variables level, Index, Pjp, and pop1 are in the
-// context.
-//
-// Note:  BranchU handling differs from BranchL and BranchB as described above.
-
-#define JU_BRANCHU(cLevel,MaxPop1,LeafType,NullJPType,NewJPType,        \
-                   LeafToLeaf,Alloc,ValueArea,CopyImmed,CopyIndex)      \
-                                                                        \
-        assert(! JU_DCDNOTMATCHINDEX(Index, Pjp, cLevel));              \
-        assert(ParentLevel > (cLevel));                                 \
-        DBGCODE(parentJPtype = JU_JPTYPE(Pjp);)                         \
-                                                                        \
-        pop1 = JU_JPBRANCH_POP0(Pjp, cLevel) + 1;                       \
-                                                                        \
-        if (pop1 > (MaxPop1))   /* hysteresis = 1 */                    \
-        {                                                               \
-            level = (cLevel);                                           \
-            Pjp   = P_JP(Pjp->jp_Addr) + JU_DIGITATSTATE(Index, cLevel);\
-            break;              /* descend to next level */             \
-        }                                                               \
-        assert(pop1 == (MaxPop1));                                      \
-                                                                        \
-        JU_BRANCHU_COMPRESS(cLevel, LeafType, MaxPop1, NullJPType, NewJPType, \
-                            LeafToLeaf, Alloc, ValueArea, CopyImmed, CopyIndex)
-
-
-// END OF MACROS, START OF CASES:
-//
-// Note:  Its no accident that the macro calls for these cases is nearly
-// identical to the code for BranchLs, with the addition of cJU_JPNULL*
-// parameters only needed for BranchUs.
-
-        case cJU_JPBRANCH_U2:
-
-            JU_BRANCHU(2, cJU_LEAF2_MAXPOP1, uint16_t *,
-                       cJU_JPNULL1, cJU_JPLEAF2,
-                       j__udyLeaf1ToLeaf2, j__udyAllocJLL2, JL_LEAF2VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_EVEN, ignore);
-
-        case cJU_JPBRANCH_U3:
-
-            JU_BRANCHU(3, cJU_LEAF3_MAXPOP1, uint8_t *,
-                       cJU_JPNULL2, cJU_JPLEAF3,
-                       j__udyLeaf2ToLeaf3, j__udyAllocJLL3, JL_LEAF3VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY3_LONG_TO_PINDEX);
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_U4:
-
-            JU_BRANCHU(4, cJU_LEAF4_MAXPOP1, uint32_t *,
-                       cJU_JPNULL3, cJU_JPLEAF4,
-                       j__udyLeaf3ToLeaf4, j__udyAllocJLL4, JL_LEAF4VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_EVEN, ignore);
-
-        case cJU_JPBRANCH_U5:
-
-            JU_BRANCHU(5, cJU_LEAF5_MAXPOP1, uint8_t *,
-                       cJU_JPNULL4, cJU_JPLEAF5,
-                       j__udyLeaf4ToLeaf5, j__udyAllocJLL5, JL_LEAF5VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY5_LONG_TO_PINDEX);
-
-        case cJU_JPBRANCH_U6:
-
-            JU_BRANCHU(6, cJU_LEAF6_MAXPOP1, uint8_t *,
-                       cJU_JPNULL5, cJU_JPLEAF6,
-                       j__udyLeaf5ToLeaf6, j__udyAllocJLL6, JL_LEAF6VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY6_LONG_TO_PINDEX);
-
-        case cJU_JPBRANCH_U7:
-
-            JU_BRANCHU(7, cJU_LEAF7_MAXPOP1, uint8_t *,
-                       cJU_JPNULL6, cJU_JPLEAF7,
-                       j__udyLeaf6ToLeaf7, j__udyAllocJLL7, JL_LEAF7VALUEAREA,
-                       JU_BRANCH_COPY_IMMED_ODD, JU_COPY7_LONG_TO_PINDEX);
-#endif // JU_64BIT
-
-// A top-level BranchU is different and cannot use JU_BRANCHU():  Dont try to
-// compress to a (LEAFW) leaf yet, but leave this for a later deletion
-// (hysteresis > 0); just descend through the BranchU:
-
-        case cJU_JPBRANCH_U:
-
-            DBGCODE(parentJPtype = JU_JPTYPE(Pjp);)
-
-            level = cJU_ROOTSTATE;
-            Pjp   = P_JP(Pjp->jp_Addr) + JU_DIGITATSTATE(Index, cJU_ROOTSTATE);
-            break;
-
-
-// ****************************************************************************
-// LINEAR LEAF:
-//
-// State transitions while deleting an Index, the inverse of the similar table
-// that appears in JudyIns.c:
-//
-// Note:  In JudyIns.c this table is not needed and does not appear until the
-// Immed handling code; because once a Leaf is reached upon growing the tree,
-// the situation remains simpler, but for deleting indexes, the complexity
-// arises when leaves must compress to Immeds.
-//
-// Note:  There are other transitions possible too, not shown here, such as to
-// a leaf one level higher.
-//
-// (Yes, this is very terse...  Study it and it will make sense.)
-// (Note, parts of this diagram are repeated below for quick reference.)
-//
-//                      reformat JP here for Judy1 only, from word-1 to word-2
-//                                                                     |
-//           JUDY1 && JU_64BIT   JUDY1 || JU_64BIT                     |
-//                                                                     V
-// (*) Leaf1 [[ => 1_15..08 ] => 1_07 => ... => 1_04 ] => 1_03 => 1_02 => 1_01
-//     Leaf2 [[ => 2_07..04 ] => 2_03 => 2_02        ]                 => 2_01
-//     Leaf3 [[ => 3_05..03 ] => 3_02                ]                 => 3_01
-// JU_64BIT only:
-//     Leaf4 [[ => 4_03..02 ]]                                         => 4_01
-//     Leaf5 [[ => 5_03..02 ]]                                         => 5_01
-//     Leaf6 [[ => 6_02     ]]                                         => 6_01
-//     Leaf7 [[ => 7_02     ]]                                         => 7_01
-//
-// (*) For Judy1 & 64-bit, go directly from a LeafB1 to cJU_JPIMMED_1_15; skip
-//     Leaf1, as described in Judy1.h regarding cJ1_JPLEAF1.
-//
-// MACROS FOR COMMON CODE:
-//
-// (De)compress a LeafX into a LeafY one index size (cIS) larger (X+1 = Y):
-//
-// This is only possible when the current leaf is under a narrow pointer
-// ((ParentLevel - 1) > cIS) and its population fits in a higher-level leaf.
-// Variables ParentLevel, pop1, PjllnewRaw, Pjllnew, Pjpm, and Index are in the
-// context.
-//
-// Note:  Doing an "uplevel" doesnt occur until the old leaf can be compressed
-// up one level BEFORE deleting an index; that is, hysteresis = 1.
-//
-// Note:  LeafType, MaxPop1, NewJPType, and Alloc refer to the up-level leaf,
-// not the current leaf.
-//
-// Note:  010327:  Fixed bug where the jp_DcdPopO next-uplevel digit (byte)
-// above the current Pop0 value was not being cleared.  When upleveling, one
-// digit in jp_DcdPopO "moves" from being part of the Dcd subfield to the Pop0
-// subfield, but since a leaf maxpop1 is known to be <= 1 byte in size, the new
-// Pop0 byte should always be zero.  This is easy to overlook because
-// JU_JPLEAF_POP0() "knows" to only use the LSB of Pop0 (for efficiency) and
-// ignore the other bytes...  Until someone uses cJU_POP0MASK() instead of
-// JU_JPLEAF_POP0(), such as in JudyInsertBranch.c.
-//
-// TBD:  Should JudyInsertBranch.c use JU_JPLEAF_POP0() rather than
-// cJU_POP0MASK(), for efficiency?  Does it know for sure its a narrow pointer
-// under the leaf?  Not necessarily.
-
-#define JU_LEAF_UPLEVEL(cIS,LeafType,MaxPop1,NewJPType,LeafToLeaf,      \
-                        Alloc,ValueArea)                                \
-                                                                        \
-        assert(((ParentLevel - 1) == (cIS)) || (pop1 >= (MaxPop1)));    \
-                                                                        \
-        if (((ParentLevel - 1) > (cIS))  /* under narrow pointer */     \
-         && (pop1 == (MaxPop1)))         /* hysteresis = 1       */     \
-        {                                                               \
-            Word_t D_cdP0;                                              \
-            if ((PjllnewRaw = Alloc(MaxPop1, Pjpm)) == 0) return(-1);   \
-            Pjllnew = P_JLL(PjllnewRaw);                                \
-  JUDYLCODE(Pjv     = ValueArea((LeafType) Pjllnew, MaxPop1);)          \
-                                                                        \
-            (void) LeafToLeaf((LeafType) Pjllnew, JU_PVALUEPASS Pjp,    \
-                              Index & cJU_DCDMASK(cIS), /* TBD, Doug says */ \
-                              (Pvoid_t) Pjpm);                          \
-            DBGCODE(JudyCheckSorted(Pjllnew, MaxPop1, cIS + 1);)        \
-                                                                        \
-            D_cdP0 = (~cJU_MASKATSTATE((cIS) + 1)) & JU_JPDCDPOP0(Pjp); \
-            JU_JPSETADT(Pjp, (Word_t)PjllnewRaw, D_cdP0, NewJPType);    \
-            goto ContinueDelWalk;       /* delete from new leaf */      \
-        }
-
-
-// For Leaf3, only support JU_LEAF_UPLEVEL on a 64-bit system, and for Leaf7,
-// there is no JU_LEAF_UPLEVEL:
-//
-// Note:  Theres no way here to go from Leaf3 [Leaf7] to LEAFW on a 32-bit
-// [64-bit] system.  Thats handled in the main code, because its different in
-// that a JPM is involved.
-
-#ifndef JU_64BIT // 32-bit.
-#define JU_LEAF_UPLEVEL64(cIS,LeafType,MaxPop1,NewJPType,LeafToLeaf,    \
-                          Alloc,ValueArea)              // null.
-#else
-#define JU_LEAF_UPLEVEL64(cIS,LeafType,MaxPop1,NewJPType,LeafToLeaf,    \
-                          Alloc,ValueArea)                              \
-        JU_LEAF_UPLEVEL  (cIS,LeafType,MaxPop1,NewJPType,LeafToLeaf,    \
-                          Alloc,ValueArea)
-#define JU_LEAF_UPLEVEL_NONE(cIS,LeafType,MaxPop1,NewJPType,LeafToLeaf, \
-                          Alloc,ValueArea)              // null.
-#endif
-
-// Compress a Leaf* with pop1 = 2, or a JPIMMED_*_02, into a JPIMMED_*_01:
-//
-// Copy whichever Index is NOT being deleted (and assert that the other one is
-// found; Index must be valid).  This requires special handling of the Index
-// bytes (and value area).  Variables Pjp, Index, offset, and Pleaf are in the
-// context, offset is modified to the undeleted Index, and Pjp is modified
-// including jp_Addr.
-
-
-#define JU_TOIMMED_01_EVEN(cIS,ignore1,ignore2)                         \
-{                                                                       \
-        Word_t  D_cdP0;                                                 \
-        Word_t  A_ddr = 0;                                              \
-        uint8_t T_ype = JU_JPTYPE(Pjp);                                 \
-        offset = (Pleaf[0] == JU_LEASTBYTES(Index, cIS)); /* undeleted Ind */ \
-        assert(Pleaf[offset ? 0 : 1] == JU_LEASTBYTES(Index, cIS));     \
-        D_cdP0 = (Index & cJU_DCDMASK(cIS)) | Pleaf[offset];            \
-JUDYLCODE(A_ddr = Pjv[offset];)                                         \
-        JU_JPSETADT(Pjp, A_ddr, D_cdP0, T_ype);                         \
-}
-
-#define JU_TOIMMED_01_ODD(cIS,SearchLeaf,CopyPIndex)                    \
-        {                                                               \
-            Word_t  D_cdP0;                                             \
-            Word_t  A_ddr = 0;                                          \
-            uint8_t T_ype = JU_JPTYPE(Pjp);                             \
-                                                                        \
-            offset = SearchLeaf(Pleaf, 2, Index);                       \
-            assert(offset >= 0);        /* Index must be valid */       \
-            CopyPIndex(D_cdP0, & (Pleaf[offset ? 0 : cIS]));            \
-            D_cdP0 |= Index & cJU_DCDMASK(cIS);                         \
-  JUDYLCODE(A_ddr = Pjv[offset ? 0 : 1];)                               \
-            JU_JPSETADT(Pjp, A_ddr, D_cdP0, T_ype);                     \
-        }
-
-
-// Compress a Leaf* into a JPIMMED_*_0[2+]:
-//
-// This occurs as soon as its possible, with hysteresis = 0.  Variables pop1,
-// Pleaf, offset, and Pjpm are in the context.
-//
-// TBD:  Explain why hysteresis = 0 here, rather than > 0.  Probably because
-// the insert code assumes if the population is small enough, an Immed is used,
-// not a leaf.
-//
-// The differences between Judy1 and JudyL with respect to value area handling
-// are just too large for completely common code between them...  Oh well, some
-// big ifdefs follow.
-
-#ifdef JUDY1
-
-#define JU_LEAF_TOIMMED(cIS,LeafType,MaxPop1,BaseJPType,ignore1,\
-                        ignore2,ignore3,ignore4,                \
-                        DeleteCopy,FreeLeaf)                    \
-                                                                \
-        assert(pop1 > (MaxPop1));                               \
-                                                                \
-        if ((pop1 - 1) == (MaxPop1))    /* hysteresis = 0 */    \
-        {                                                       \
-            Pjll_t PjllRaw = (Pjll_t) (Pjp->jp_Addr);           \
-            DeleteCopy((LeafType) (Pjp->jp_1Index), Pleaf, pop1, offset, cIS); \
-            DBGCODE(JudyCheckSorted((Pjll_t) (Pjp->jp_1Index),  pop1-1, cIS);) \
-            Pjp->jp_Type = (BaseJPType) - 1 + (MaxPop1) - 1;    \
-            FreeLeaf(PjllRaw, pop1, Pjpm);                      \
-            return(1);                                          \
-        }
-
-#else // JUDYL
-
-// Pjv is also in the context.
-
-#define JU_LEAF_TOIMMED(cIS,LeafType,MaxPop1,BaseJPType,ignore1,\
-                        ignore2,ignore3,ignore4,                \
-                        DeleteCopy,FreeLeaf)                    \
-                                                                \
-        assert(pop1 > (MaxPop1));                               \
-                                                                \
-        if ((pop1 - 1) == (MaxPop1))    /* hysteresis = 0 */    \
-        {                                                       \
-            Pjll_t PjllRaw = (Pjll_t) (Pjp->jp_Addr);           \
-            Pjv_t  PjvnewRaw;                                   \
-            Pjv_t  Pjvnew;                                      \
-                                                                \
-            if ((PjvnewRaw = j__udyLAllocJV(pop1 - 1, Pjpm))    \
-                == (Pjv_t) NULL) return(-1);                    \
-   JUDYLCODE(Pjvnew = P_JV(PjvnewRaw);)                         \
-                                                                \
-            DeleteCopy((LeafType) (Pjp->jp_LIndex), Pleaf, pop1, offset, cIS); \
-            JU_DELETECOPY(Pjvnew, Pjv, pop1, offset, cIS);      \
-            DBGCODE(JudyCheckSorted((Pjll_t) (Pjp->jp_LIndex),  pop1-1, cIS);) \
-            FreeLeaf(PjllRaw, pop1, Pjpm);                      \
-            Pjp->jp_Addr = (Word_t) PjvnewRaw;                  \
-            Pjp->jp_Type = (BaseJPType) - 2 + (MaxPop1);        \
-            return(1);                                          \
-        }
-
-// A complicating factor for JudyL & 32-bit is that Leaf2..3, and for JudyL &
-// 64-bit Leaf 4..7, go directly to an Immed*_01, where the value is stored in
-// jp_Addr and not in a separate LeafV.  For efficiency, use the following
-// macro in cases where it can apply; it is rigged to do the right thing.
-// Unfortunately, this requires the calling code to "know" the transition table
-// and call the right macro.
-//
-// This variant compresses a Leaf* with pop1 = 2 into a JPIMMED_*_01:
-
-#define JU_LEAF_TOIMMED_01(cIS,LeafType,MaxPop1,ignore,Immed01JPType,   \
-                           ToImmed,SearchLeaf,CopyPIndex,               \
-                           DeleteCopy,FreeLeaf)                         \
-                                                                        \
-        assert(pop1 > (MaxPop1));                                       \
-                                                                        \
-        if ((pop1 - 1) == (MaxPop1))    /* hysteresis = 0 */            \
-        {                                                               \
-            Pjll_t PjllRaw = (Pjll_t) (Pjp->jp_Addr);                   \
-            ToImmed(cIS, SearchLeaf, CopyPIndex);                       \
-            FreeLeaf(PjllRaw, pop1, Pjpm);                              \
-            Pjp->jp_Type = (Immed01JPType);                             \
-            return(1);                                                  \
-        }
-#endif // JUDYL
-
-// See comments above about these:
-//
-// Note:  Here "23" means index size 2 or 3, and "47" means 4..7.
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-#define JU_LEAF_TOIMMED_23(cIS,LeafType,MaxPop1,BaseJPType,Immed01JPType, \
-                           ToImmed,SearchLeaf,CopyPIndex,               \
-                           DeleteCopy,FreeLeaf)                         \
-        JU_LEAF_TOIMMED(   cIS,LeafType,MaxPop1,BaseJPType,ignore1,     \
-                           ignore2,ignore3,ignore4,                     \
-                           DeleteCopy,FreeLeaf)
-#else // JUDYL && 32-bit
-#define JU_LEAF_TOIMMED_23(cIS,LeafType,MaxPop1,BaseJPType,Immed01JPType, \
-                           ToImmed,SearchLeaf,CopyPIndex,               \
-                           DeleteCopy,FreeLeaf)                         \
-        JU_LEAF_TOIMMED_01(cIS,LeafType,MaxPop1,ignore,Immed01JPType,   \
-                           ToImmed,SearchLeaf,CopyPIndex,               \
-                           DeleteCopy,FreeLeaf)
-#endif
-
-#ifdef JU_64BIT
-#ifdef JUDY1
-#define JU_LEAF_TOIMMED_47(cIS,LeafType,MaxPop1,BaseJPType,Immed01JPType, \
-                           ToImmed,SearchLeaf,CopyPIndex,               \
-                           DeleteCopy,FreeLeaf)                         \
-        JU_LEAF_TOIMMED(   cIS,LeafType,MaxPop1,BaseJPType,ignore1,     \
-                           ignore2,ignore3,ignore4,                     \
-                           DeleteCopy,FreeLeaf)
-#else // JUDYL && 64-bit
-#define JU_LEAF_TOIMMED_47(cIS,LeafType,MaxPop1,BaseJPType,Immed01JPType, \
-                           ToImmed,SearchLeaf,CopyPIndex,               \
-                           DeleteCopy,FreeLeaf)                         \
-        JU_LEAF_TOIMMED_01(cIS,LeafType,MaxPop1,ignore,Immed01JPType,   \
-                           ToImmed,SearchLeaf,CopyPIndex,               \
-                           DeleteCopy,FreeLeaf)
-#endif // JUDYL
-#endif // JU_64BIT
-
-// Compress a Leaf* in place:
-//
-// Here hysteresis = 0 (no memory is wasted).  Variables pop1, Pleaf, and
-// offset, and for JudyL, Pjv, are in the context.
-
-#ifdef JUDY1
-#define JU_LEAF_INPLACE(cIS,GrowInPlace,DeleteInPlace)          \
-        if (GrowInPlace(pop1 - 1))      /* hysteresis = 0 */    \
-        {                                                       \
-            DeleteInPlace(Pleaf, pop1, offset, cIS);            \
-            DBGCODE(JudyCheckSorted(Pleaf, pop1 - 1, cIS);)     \
-            return(1);                                          \
-        }
-#else
-#define JU_LEAF_INPLACE(cIS,GrowInPlace,DeleteInPlace)          \
-        if (GrowInPlace(pop1 - 1))      /* hysteresis = 0 */    \
-        {                                                       \
-            DeleteInPlace(Pleaf, pop1, offset, cIS);            \
-/**/        JU_DELETEINPLACE(Pjv, pop1, offset, ignore);        \
-            DBGCODE(JudyCheckSorted(Pleaf, pop1 - 1, cIS);)     \
-            return(1);                                          \
-        }
-#endif
-
-// Compress a Leaf* into a smaller memory object of the same JP type:
-//
-// Variables PjllnewRaw, Pjllnew, Pleafpop1, Pjpm, PleafRaw, Pleaf, and offset
-// are in the context.
-
-#ifdef JUDY1
-
-#define JU_LEAF_SHRINK(cIS,LeafType,DeleteCopy,Alloc,FreeLeaf,ValueArea) \
-        if ((PjllnewRaw = Alloc(pop1 - 1, Pjpm)) == 0) return(-1);       \
-        Pjllnew = P_JLL(PjllnewRaw);                                     \
-        DeleteCopy((LeafType) Pjllnew, Pleaf, pop1, offset, cIS);        \
-        DBGCODE(JudyCheckSorted(Pjllnew, pop1 - 1, cIS);)                \
-        FreeLeaf(PleafRaw, pop1, Pjpm);                                  \
-        Pjp->jp_Addr = (Word_t) PjllnewRaw;                              \
-        return(1)
-
-#else // JUDYL
-
-#define JU_LEAF_SHRINK(cIS,LeafType,DeleteCopy,Alloc,FreeLeaf,ValueArea) \
-        {                                                               \
-/**/        Pjv_t Pjvnew;                                               \
-                                                                        \
-            if ((PjllnewRaw = Alloc(pop1 - 1, Pjpm)) == 0) return(-1);  \
-            Pjllnew = P_JLL(PjllnewRaw);                                \
-/**/        Pjvnew  = ValueArea(Pjllnew, pop1 - 1);                     \
-            DeleteCopy((LeafType) Pjllnew, Pleaf, pop1, offset, cIS);   \
-/**/        JU_DELETECOPY(Pjvnew, Pjv, pop1, offset, cIS);              \
-            DBGCODE(JudyCheckSorted(Pjllnew, pop1 - 1, cIS);)           \
-            FreeLeaf(PleafRaw, pop1, Pjpm);                             \
-            Pjp->jp_Addr = (Word_t) PjllnewRaw;                         \
-            return(1);                                                  \
-        }
-#endif // JUDYL
-
-// Overall common code for Leaf* deletion handling:
-//
-// See if the leaf can be:
-// - (de)compressed to one a level higher (JU_LEAF_UPLEVEL()), or if not,
-// - compressed to an Immediate JP (JU_LEAF_TOIMMED()), or if not,
-// - shrunk in place (JU_LEAF_INPLACE()), or if none of those, then
-// - shrink the leaf to a smaller chunk of memory (JU_LEAF_SHRINK()).
-//
-// Variables Pjp, pop1, Index, and offset are in the context.
-// The *Up parameters refer to a leaf one level up, if there is any.
-
-#define JU_LEAF(cIS,                                                    \
-                UpLevel,                                                \
-                  LeafTypeUp,MaxPop1Up,LeafJPTypeUp,LeafToLeaf,         \
-                  AllocUp,ValueAreaUp,                                  \
-                LeafToImmed,ToImmed,CopyPIndex,                         \
-                  LeafType,ImmedMaxPop1,ImmedBaseJPType,Immed01JPType,  \
-                  SearchLeaf,GrowInPlace,DeleteInPlace,DeleteCopy,      \
-                  Alloc,FreeLeaf,ValueArea)                             \
-        {                                                               \
-            Pjll_t   PleafRaw;                                          \
-            LeafType Pleaf;                                             \
-                                                                        \
-            assert(! JU_DCDNOTMATCHINDEX(Index, Pjp, cIS));             \
-            assert(ParentLevel > (cIS));                                \
-                                                                        \
-            PleafRaw = (Pjll_t) (Pjp->jp_Addr);                         \
-            Pleaf    = (LeafType) P_JLL(PleafRaw);                      \
-            pop1     = JU_JPLEAF_POP0(Pjp) + 1;                         \
-                                                                        \
-            UpLevel(cIS, LeafTypeUp, MaxPop1Up, LeafJPTypeUp,           \
-                    LeafToLeaf, AllocUp, ValueAreaUp);                  \
-                                                                        \
-            offset = SearchLeaf(Pleaf, pop1, Index);                    \
-            assert(offset >= 0);        /* Index must be valid */       \
-  JUDYLCODE(Pjv = ValueArea(Pleaf, pop1);)                              \
-                                                                        \
-            LeafToImmed(cIS, LeafType, ImmedMaxPop1,                    \
-                        ImmedBaseJPType, Immed01JPType,                 \
-                        ToImmed, SearchLeaf, CopyPIndex,                \
-                        DeleteCopy, FreeLeaf);                          \
-                                                                        \
-            JU_LEAF_INPLACE(cIS, GrowInPlace, DeleteInPlace);           \
-                                                                        \
-            JU_LEAF_SHRINK(cIS, LeafType, DeleteCopy, Alloc, FreeLeaf,  \
-                           ValueArea);                                  \
-        }
-
-// END OF MACROS, START OF CASES:
-//
-// (*) Leaf1 [[ => 1_15..08 ] => 1_07 => ... => 1_04 ] => 1_03 => 1_02 => 1_01
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-        case cJU_JPLEAF1:
-
-            JU_LEAF(1,
-                    JU_LEAF_UPLEVEL, uint16_t *, cJU_LEAF2_MAXPOP1, cJU_JPLEAF2,
-                      j__udyLeaf1ToLeaf2, j__udyAllocJLL2, JL_LEAF2VALUEAREA,
-                    JU_LEAF_TOIMMED, ignore, ignore,
-                      uint8_t *, cJU_IMMED1_MAXPOP1,
-                      cJU_JPIMMED_1_02, cJU_JPIMMED_1_01, j__udySearchLeaf1,
-                      JU_LEAF1GROWINPLACE, JU_DELETEINPLACE, JU_DELETECOPY,
-                      j__udyAllocJLL1, j__udyFreeJLL1, JL_LEAF1VALUEAREA);
-#endif
-
-// A complicating factor is that for JudyL & 32-bit, a Leaf2 must go directly
-// to an Immed 2_01 and a Leaf3 must go directly to an Immed 3_01:
-//
-// Leaf2 [[ => 2_07..04 ] => 2_03 => 2_02 ] => 2_01
-// Leaf3 [[ => 3_05..03 ] => 3_02         ] => 3_01
-//
-// Hence use JU_LEAF_TOIMMED_23 instead of JU_LEAF_TOIMMED in the cases below,
-// and also the parameters ToImmed and, for odd index sizes, CopyPIndex, are
-// required.
-
-        case cJU_JPLEAF2:
-
-            JU_LEAF(2,
-                    JU_LEAF_UPLEVEL, uint8_t *, cJU_LEAF3_MAXPOP1, cJU_JPLEAF3,
-                      j__udyLeaf2ToLeaf3, j__udyAllocJLL3, JL_LEAF3VALUEAREA,
-                    JU_LEAF_TOIMMED_23, JU_TOIMMED_01_EVEN, ignore,
-                      uint16_t *, cJU_IMMED2_MAXPOP1,
-                      cJU_JPIMMED_2_02, cJU_JPIMMED_2_01, j__udySearchLeaf2,
-                      JU_LEAF2GROWINPLACE, JU_DELETEINPLACE, JU_DELETECOPY,
-                      j__udyAllocJLL2, j__udyFreeJLL2, JL_LEAF2VALUEAREA);
-
-// On 32-bit there is no transition to "uplevel" for a Leaf3, so use
-// JU_LEAF_UPLEVEL64 instead of JU_LEAF_UPLEVEL:
-
-        case cJU_JPLEAF3:
-
-            JU_LEAF(3,
-                    JU_LEAF_UPLEVEL64, uint32_t *, cJU_LEAF4_MAXPOP1,
-                      cJU_JPLEAF4,
-                      j__udyLeaf3ToLeaf4, j__udyAllocJLL4, JL_LEAF4VALUEAREA,
-                    JU_LEAF_TOIMMED_23,
-                      JU_TOIMMED_01_ODD, JU_COPY3_PINDEX_TO_LONG,
-                      uint8_t *, cJU_IMMED3_MAXPOP1,
-                      cJU_JPIMMED_3_02, cJU_JPIMMED_3_01, j__udySearchLeaf3,
-                      JU_LEAF3GROWINPLACE, JU_DELETEINPLACE_ODD,
-                                           JU_DELETECOPY_ODD,
-                      j__udyAllocJLL3, j__udyFreeJLL3, JL_LEAF3VALUEAREA);
-
-#ifdef JU_64BIT
-
-// A complicating factor is that for JudyL & 64-bit, a Leaf[4-7] must go
-// directly to an Immed [4-7]_01:
-//
-// Leaf4 [[ => 4_03..02 ]] => 4_01
-// Leaf5 [[ => 5_03..02 ]] => 5_01
-// Leaf6 [[ => 6_02     ]] => 6_01
-// Leaf7 [[ => 7_02     ]] => 7_01
-//
-// Hence use JU_LEAF_TOIMMED_47 instead of JU_LEAF_TOIMMED in the cases below.
-
-        case cJU_JPLEAF4:
-
-            JU_LEAF(4,
-                    JU_LEAF_UPLEVEL, uint8_t *, cJU_LEAF5_MAXPOP1, cJU_JPLEAF5,
-                      j__udyLeaf4ToLeaf5, j__udyAllocJLL5, JL_LEAF5VALUEAREA,
-                    JU_LEAF_TOIMMED_47, JU_TOIMMED_01_EVEN, ignore,
-                      uint32_t *, cJU_IMMED4_MAXPOP1,
-                      cJ1_JPIMMED_4_02, cJU_JPIMMED_4_01, j__udySearchLeaf4,
-                      JU_LEAF4GROWINPLACE, JU_DELETEINPLACE, JU_DELETECOPY,
-                      j__udyAllocJLL4, j__udyFreeJLL4, JL_LEAF4VALUEAREA);
-
-        case cJU_JPLEAF5:
-
-            JU_LEAF(5,
-                    JU_LEAF_UPLEVEL, uint8_t *, cJU_LEAF6_MAXPOP1, cJU_JPLEAF6,
-                      j__udyLeaf5ToLeaf6, j__udyAllocJLL6, JL_LEAF6VALUEAREA,
-                    JU_LEAF_TOIMMED_47,
-                      JU_TOIMMED_01_ODD, JU_COPY5_PINDEX_TO_LONG,
-                      uint8_t *, cJU_IMMED5_MAXPOP1,
-                      cJ1_JPIMMED_5_02, cJU_JPIMMED_5_01, j__udySearchLeaf5,
-                      JU_LEAF5GROWINPLACE, JU_DELETEINPLACE_ODD,
-                                           JU_DELETECOPY_ODD,
-                      j__udyAllocJLL5, j__udyFreeJLL5, JL_LEAF5VALUEAREA);
-
-        case cJU_JPLEAF6:
-
-            JU_LEAF(6,
-                    JU_LEAF_UPLEVEL, uint8_t *, cJU_LEAF7_MAXPOP1, cJU_JPLEAF7,
-                      j__udyLeaf6ToLeaf7, j__udyAllocJLL7, JL_LEAF7VALUEAREA,
-                    JU_LEAF_TOIMMED_47,
-                      JU_TOIMMED_01_ODD, JU_COPY6_PINDEX_TO_LONG,
-                      uint8_t *, cJU_IMMED6_MAXPOP1,
-                      cJ1_JPIMMED_6_02, cJU_JPIMMED_6_01, j__udySearchLeaf6,
-                      JU_LEAF6GROWINPLACE, JU_DELETEINPLACE_ODD,
-                                           JU_DELETECOPY_ODD,
-                      j__udyAllocJLL6, j__udyFreeJLL6, JL_LEAF6VALUEAREA);
-
-// There is no transition to "uplevel" for a Leaf7, so use JU_LEAF_UPLEVEL_NONE
-// instead of JU_LEAF_UPLEVEL, and ignore all of the parameters to that macro:
-
-        case cJU_JPLEAF7:
-
-            JU_LEAF(7,
-                    JU_LEAF_UPLEVEL_NONE, ignore1, ignore2, ignore3, ignore4,
-                      ignore5, ignore6,
-                    JU_LEAF_TOIMMED_47,
-                      JU_TOIMMED_01_ODD, JU_COPY7_PINDEX_TO_LONG,
-                      uint8_t *, cJU_IMMED7_MAXPOP1,
-                      cJ1_JPIMMED_7_02, cJU_JPIMMED_7_01, j__udySearchLeaf7,
-                      JU_LEAF7GROWINPLACE, JU_DELETEINPLACE_ODD,
-                                           JU_DELETECOPY_ODD,
-                      j__udyAllocJLL7, j__udyFreeJLL7, JL_LEAF7VALUEAREA);
-#endif // JU_64BIT
-
-
-// ****************************************************************************
-// BITMAP LEAF:
-
-        case cJU_JPLEAF_B1:
-        {
-#ifdef JUDYL
-            Pjv_t     PjvnewRaw;        // new value area.
-            Pjv_t     Pjvnew;
-            Word_t    subexp;           // 1 of 8 subexpanses in bitmap.
-            Pjlb_t    Pjlb;             // pointer to bitmap part of the leaf.
-            BITMAPL_t bitmap;           // for one subexpanse.
-            BITMAPL_t bitmask;          // bit set for Indexs digit.
-#endif
-            assert(! JU_DCDNOTMATCHINDEX(Index, Pjp, 1));
-            assert(ParentLevel > 1);
-            // valid Index:
-            assert(JU_BITMAPTESTL(P_JLB(Pjp->jp_Addr), Index));
-
-            pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-
-// Like a Leaf1, see if its under a narrow pointer and can become a Leaf2
-// (hysteresis = 1):
-
-            JU_LEAF_UPLEVEL(1, uint16_t *, cJU_LEAF2_MAXPOP1, cJU_JPLEAF2,
-                            j__udyLeaf1ToLeaf2, j__udyAllocJLL2,
-                            JL_LEAF2VALUEAREA);
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-
-// Handle the unusual special case, on Judy1 64-bit only, where a LeafB1 goes
-// directly to a JPIMMED_1_15; as described in comments in Judy1.h and
-// JudyIns.c.  Copy 1-byte indexes from old LeafB1 to the Immed:
-
-            if ((pop1 - 1) == cJU_IMMED1_MAXPOP1)       // hysteresis = 0.
-            {
-                Pjlb_t    PjlbRaw;      // bitmap in old leaf.
-                Pjlb_t    Pjlb;
-                uint8_t * Pleafnew;     // JPIMMED as a pointer.
-                Word_t    ldigit;       // larger than uint8_t.
-
-                PjlbRaw  = (Pjlb_t) (Pjp->jp_Addr);
-                Pjlb     = P_JLB(PjlbRaw);
-                Pleafnew = Pjp->jp_1Index;
-
-                JU_BITMAPCLEARL(Pjlb, Index);   // unset Indexs bit.
-
-// TBD:  This is very slow, there must be a better way:
-
-                for (ldigit = 0; ldigit < cJU_BRANCHUNUMJPS; ++ldigit)
-                {
-                    if (JU_BITMAPTESTL(Pjlb, ldigit))
-                    {
-                        *Pleafnew++ = ldigit;
-                        assert(Pleafnew - (Pjp->jp_1Index)
-                            <= cJU_IMMED1_MAXPOP1);
-                    }
-                }
-
-                DBGCODE(JudyCheckSorted((Pjll_t) (Pjp->jp_1Index),
-                                        cJU_IMMED1_MAXPOP1, 1);)
-                j__udyFreeJLB1(PjlbRaw, Pjpm);
-
-                Pjp->jp_Type = cJ1_JPIMMED_1_15;
-                return(1);
-            }
-
-#else // (JUDYL || (! JU_64BIT))
-
-// Compress LeafB1 to a Leaf1:
-//
-// Note:  4.37 of this file contained alternate code for Judy1 only that simply
-// cleared the bit and allowed the LeafB1 to go below cJU_LEAF1_MAXPOP1.  This
-// was the ONLY case where a malloc failure was not fatal; however, it violated
-// the critical assumption that the tree is always kept in least-compressed
-// form.
-
-            if (pop1 == cJU_LEAF1_MAXPOP1)      // hysteresis = 1.
-            {
-                if (j__udyLeafB1ToLeaf1(Pjp, Pjpm) == -1) return(-1);
-                goto ContinueDelWalk;   // delete Index in new Leaf1.
-            }
-#endif // (JUDYL || (! JU_64BIT))
-
-#ifdef JUDY1
-            // unset Indexs bit:
-
-            JU_BITMAPCLEARL(P_JLB(Pjp->jp_Addr), Index);
-#else // JUDYL
-
-// This is very different from Judy1 because of the need to manage the value
-// area:
-//
-// Get last byte to decode from Index, and pointer to bitmap leaf:
-
-            digit = JU_DIGITATSTATE(Index, 1);
-            Pjlb = P_JLB(Pjp->jp_Addr);
-
-// Prepare additional values:
-
-            subexp  = digit / cJU_BITSPERSUBEXPL;       // which subexpanse.
-            bitmap  = JU_JLB_BITMAP(Pjlb, subexp);      // subexps 32-bit map.
-            PjvRaw  = JL_JLB_PVALUE(Pjlb, subexp);      // corresponding values.
-            Pjv     = P_JV(PjvRaw);
-            bitmask = JU_BITPOSMASKL(digit);            // mask for Index.
-
-            assert(bitmap & bitmask);                   // Index must be valid.
-
-            if (bitmap == cJU_FULLBITMAPL)      // full bitmap, take shortcut:
-            {
-                pop1   = cJU_BITSPERSUBEXPL;
-                offset = digit % cJU_BITSPERSUBEXPL;
-            }
-            else        // compute subexpanse pop1 and value area offset:
-            {
-                pop1   = j__udyCountBitsL(bitmap);
-                offset = j__udyCountBitsL(bitmap & (bitmask - 1));
-            }
-
-// Handle solitary Index remaining in subexpanse:
-
-            if (pop1 == 1)
-            {
-                j__udyLFreeJV(PjvRaw, 1, Pjpm);
-
-                JL_JLB_PVALUE(Pjlb, subexp) = (Pjv_t) NULL;
-                JU_JLB_BITMAP(Pjlb, subexp) = 0;
-
-                return(1);
-            }
-
-// Shrink value area in place or move to a smaller value area:
-
-            if (JL_LEAFVGROWINPLACE(pop1 - 1))          // hysteresis = 0.
-            {
-                JU_DELETEINPLACE(Pjv, pop1, offset, ignore);
-            }
-            else
-            {
-                if ((PjvnewRaw = j__udyLAllocJV(pop1 - 1, Pjpm))
-                    == (Pjv_t) NULL) return(-1);
-                Pjvnew = P_JV(PjvnewRaw);
-
-                JU_DELETECOPY(Pjvnew, Pjv, pop1, offset, ignore);
-                j__udyLFreeJV(PjvRaw, pop1, Pjpm);
-                JL_JLB_PVALUE(Pjlb, subexp) = (Pjv_t) PjvnewRaw;
-            }
-
-            JU_JLB_BITMAP(Pjlb, subexp) ^= bitmask;     // clear Indexs bit.
-
-#endif // JUDYL
-
-            return(1);
-
-        } // case.
-
-
-#ifdef JUDY1
-
-// ****************************************************************************
-// FULL POPULATION LEAF:
-//
-// Convert to a LeafB1 and delete the index.  Hysteresis = 0; none is possible.
-//
-// Note:  Earlier the second assertion below said, "== 2", but in fact the
-// parent could be at a higher level if a fullpop is under a narrow pointer.
-
-        case cJ1_JPFULLPOPU1:
-        {
-            Pjlb_t PjlbRaw;
-            Pjlb_t Pjlb;
-            Word_t subexp;
-
-            assert(! JU_DCDNOTMATCHINDEX(Index, Pjp, 2));
-            assert(ParentLevel > 1);    // see above.
-
-            if ((PjlbRaw = j__udyAllocJLB1(Pjpm)) == (Pjlb_t) NULL)
-                return(-1);
-            Pjlb = P_JLB(PjlbRaw);
-
-// Fully populate the leaf, then unset Indexs bit:
-
-            for (subexp = 0; subexp < cJU_NUMSUBEXPL; ++subexp)
-                JU_JLB_BITMAP(Pjlb, subexp) = cJU_FULLBITMAPL;
-
-            JU_BITMAPCLEARL(Pjlb, Index);
-
-            Pjp->jp_Addr = (Word_t) PjlbRaw;
-            Pjp->jp_Type = cJU_JPLEAF_B1;
-
-            return(1);
-        }
-#endif // JUDY1
-
-
-// ****************************************************************************
-// IMMEDIATE JP:
-//
-// If theres just the one Index in the Immed, convert the JP to a JPNULL*
-// (should only happen in a BranchU); otherwise delete the Index from the
-// Immed.  See the state transitions table elsewhere in this file for a summary
-// of which Immed types must be handled.  Hysteresis = 0; none is possible with
-// Immeds.
-//
-// MACROS FOR COMMON CODE:
-//
-// Single Index remains in cJU_JPIMMED_*_01; convert JP to null:
-//
-// Variables Pjp and parentJPtype are in the context.
-//
-// Note:  cJU_JPIMMED_*_01 should only be encountered in BranchUs, not in
-// BranchLs or BranchBs (where its improper to merely modify the JP to be a
-// null JP); that is, BranchL and BranchB code should have already handled
-// any cJU_JPIMMED_*_01 by different means.
-
-#define JU_IMMED_01(NewJPType,ParentJPType)                             \
-                                                                        \
-            assert(parentJPtype == (ParentJPType));                     \
-            assert(JU_JPDCDPOP0(Pjp) == JU_TRIMTODCDSIZE(Index));       \
-            JU_JPSETADT(Pjp, 0, 0, NewJPType);                          \
-            return(1)
-
-// Convert cJ*_JPIMMED_*_02 to cJU_JPIMMED_*_01:
-//
-// Move the undeleted Index, whichever does not match the least bytes of Index,
-// from undecoded-bytes-only (in jp_1Index or jp_LIndex as appropriate) to
-// jp_DcdPopO (full-field).  Pjp, Index, and offset are in the context.
-
-#define JU_IMMED_02(cIS,LeafType,NewJPType)             \
-        {                                               \
-            LeafType Pleaf;                             \
-                                                        \
-            assert((ParentLevel - 1) == (cIS));         \
-  JUDY1CODE(Pleaf  = (LeafType) (Pjp->jp_1Index);)      \
-  JUDYLCODE(Pleaf  = (LeafType) (Pjp->jp_LIndex);)      \
-  JUDYLCODE(PjvRaw = (Pjv_t) (Pjp->jp_Addr);)           \
-  JUDYLCODE(Pjv    = P_JV(PjvRaw);)                     \
-            JU_TOIMMED_01_EVEN(cIS, ignore, ignore);    \
-  JUDYLCODE(j__udyLFreeJV(PjvRaw, 2, Pjpm);)            \
-            Pjp->jp_Type = (NewJPType);                 \
-            return(1);                                  \
-        }
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-
-// Variation for "odd" cJ*_JPIMMED_*_02 JP types, which are very different from
-// "even" types because they use leaf search code and odd-copy macros:
-//
-// Note:  JudyL 32-bit has no "odd" JPIMMED_*_02 types.
-
-#define JU_IMMED_02_ODD(cIS,NewJPType,SearchLeaf,CopyPIndex)    \
-        {                                                       \
-            uint8_t * Pleaf;                                    \
-                                                                \
-            assert((ParentLevel - 1) == (cIS));                 \
-  JUDY1CODE(Pleaf  = (uint8_t *) (Pjp->jp_1Index);)             \
-  JUDYLCODE(Pleaf  = (uint8_t *) (Pjp->jp_LIndex);)             \
-  JUDYLCODE(PjvRaw = (Pjv_t) (Pjp->jp_Addr);)                   \
-  JUDYLCODE(Pjv    = P_JV(PjvRaw);)                             \
-            JU_TOIMMED_01_ODD(cIS, SearchLeaf, CopyPIndex);     \
-  JUDYLCODE(j__udyLFreeJV(PjvRaw, 2, Pjpm);)                    \
-            Pjp->jp_Type = (NewJPType);                         \
-            return(1);                                          \
-        }
-#endif // (JUDY1 || JU_64BIT)
-
-// Core code for deleting one Index (and for JudyL, its value area) from a
-// larger Immed:
-//
-// Variables Pleaf, pop1, and offset are in the context.
-
-#ifdef JUDY1
-#define JU_IMMED_DEL(cIS,DeleteInPlace)                 \
-        DeleteInPlace(Pleaf, pop1, offset, cIS);        \
-        DBGCODE(JudyCheckSorted(Pleaf, pop1 - 1, cIS);)
-
-#else // JUDYL
-
-// For JudyL the value area might need to be shrunk:
-
-#define JU_IMMED_DEL(cIS,DeleteInPlace)                         \
-                                                                \
-        if (JL_LEAFVGROWINPLACE(pop1 - 1)) /* hysteresis = 0 */ \
-        {                                                       \
-            DeleteInPlace(   Pleaf,  pop1, offset, cIS);        \
-            JU_DELETEINPLACE(Pjv, pop1, offset, ignore);        \
-            DBGCODE(JudyCheckSorted(Pleaf, pop1 - 1, cIS);)     \
-        }                                                       \
-        else                                                    \
-        {                                                       \
-            Pjv_t PjvnewRaw;                                    \
-            Pjv_t Pjvnew;                                       \
-                                                                \
-            if ((PjvnewRaw = j__udyLAllocJV(pop1 - 1, Pjpm))    \
-                == (Pjv_t) NULL) return(-1);                    \
-            Pjvnew = P_JV(PjvnewRaw);                           \
-                                                                \
-            DeleteInPlace(Pleaf, pop1, offset, cIS);            \
-            JU_DELETECOPY(Pjvnew, Pjv, pop1, offset, ignore);   \
-            DBGCODE(JudyCheckSorted(Pleaf, pop1 - 1, cIS);)     \
-            j__udyLFreeJV(PjvRaw, pop1, Pjpm);                  \
-                                                                \
-            (Pjp->jp_Addr) = (Word_t) PjvnewRaw;                \
-        }
-#endif // JUDYL
-
-// Delete one Index from a larger Immed where no restructuring is required:
-//
-// Variables pop1, Pjp, offset, and Index are in the context.
-
-#define JU_IMMED(cIS,LeafType,BaseJPType,SearchLeaf,DeleteInPlace)      \
-        {                                                               \
-            LeafType Pleaf;                                             \
-                                                                        \
-            assert((ParentLevel - 1) == (cIS));                         \
-  JUDY1CODE(Pleaf  = (LeafType) (Pjp->jp_1Index);)                      \
-  JUDYLCODE(Pleaf  = (LeafType) (Pjp->jp_LIndex);)                      \
-  JUDYLCODE(PjvRaw = (Pjv_t) (Pjp->jp_Addr);)                           \
-  JUDYLCODE(Pjv    = P_JV(PjvRaw);)                                     \
-            pop1   = (JU_JPTYPE(Pjp)) - (BaseJPType) + 2;               \
-            offset = SearchLeaf(Pleaf, pop1, Index);                    \
-            assert(offset >= 0);        /* Index must be valid */       \
-                                                                        \
-            JU_IMMED_DEL(cIS, DeleteInPlace);                           \
-            --(Pjp->jp_Type);                                           \
-            return(1);                                                  \
-        }
-
-
-// END OF MACROS, START OF CASES:
-
-// Single Index remains in Immed; convert JP to null:
-
-        case cJU_JPIMMED_1_01: JU_IMMED_01(cJU_JPNULL1, cJU_JPBRANCH_U2);
-        case cJU_JPIMMED_2_01: JU_IMMED_01(cJU_JPNULL2, cJU_JPBRANCH_U3);
-#ifndef JU_64BIT
-        case cJU_JPIMMED_3_01: JU_IMMED_01(cJU_JPNULL3, cJU_JPBRANCH_U);
-#else
-        case cJU_JPIMMED_3_01: JU_IMMED_01(cJU_JPNULL3, cJU_JPBRANCH_U4);
-        case cJU_JPIMMED_4_01: JU_IMMED_01(cJU_JPNULL4, cJU_JPBRANCH_U5);
-        case cJU_JPIMMED_5_01: JU_IMMED_01(cJU_JPNULL5, cJU_JPBRANCH_U6);
-        case cJU_JPIMMED_6_01: JU_IMMED_01(cJU_JPNULL6, cJU_JPBRANCH_U7);
-        case cJU_JPIMMED_7_01: JU_IMMED_01(cJU_JPNULL7, cJU_JPBRANCH_U);
-#endif
-
-// Multiple Indexes remain in the Immed JP; delete the specified Index:
-
-        case cJU_JPIMMED_1_02:
-
-            JU_IMMED_02(1, uint8_t *, cJU_JPIMMED_1_01);
-
-        case cJU_JPIMMED_1_03:
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_1_04:
-        case cJU_JPIMMED_1_05:
-        case cJU_JPIMMED_1_06:
-        case cJU_JPIMMED_1_07:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_1_08:
-        case cJ1_JPIMMED_1_09:
-        case cJ1_JPIMMED_1_10:
-        case cJ1_JPIMMED_1_11:
-        case cJ1_JPIMMED_1_12:
-        case cJ1_JPIMMED_1_13:
-        case cJ1_JPIMMED_1_14:
-        case cJ1_JPIMMED_1_15:
-#endif
-            JU_IMMED(1, uint8_t *, cJU_JPIMMED_1_02,
-                     j__udySearchLeaf1, JU_DELETEINPLACE);
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_2_02:
-
-            JU_IMMED_02(2, uint16_t *, cJU_JPIMMED_2_01);
-
-        case cJU_JPIMMED_2_03:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_2_04:
-        case cJ1_JPIMMED_2_05:
-        case cJ1_JPIMMED_2_06:
-        case cJ1_JPIMMED_2_07:
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-            JU_IMMED(2, uint16_t *, cJU_JPIMMED_2_02,
-                     j__udySearchLeaf2, JU_DELETEINPLACE);
-
-        case cJU_JPIMMED_3_02:
-
-            JU_IMMED_02_ODD(3, cJU_JPIMMED_3_01,
-                            j__udySearchLeaf3, JU_COPY3_PINDEX_TO_LONG);
-
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_3_03:
-        case cJ1_JPIMMED_3_04:
-        case cJ1_JPIMMED_3_05:
-
-            JU_IMMED(3, uint8_t *, cJU_JPIMMED_3_02,
-                     j__udySearchLeaf3, JU_DELETEINPLACE_ODD);
-
-        case cJ1_JPIMMED_4_02:
-
-            JU_IMMED_02(4, uint32_t *, cJU_JPIMMED_4_01);
-
-        case cJ1_JPIMMED_4_03:
-
-            JU_IMMED(4, uint32_t *, cJ1_JPIMMED_4_02,
-                     j__udySearchLeaf4, JU_DELETEINPLACE);
-
-        case cJ1_JPIMMED_5_02:
-
-            JU_IMMED_02_ODD(5, cJU_JPIMMED_5_01,
-                            j__udySearchLeaf5, JU_COPY5_PINDEX_TO_LONG);
-
-        case cJ1_JPIMMED_5_03:
-
-            JU_IMMED(5, uint8_t *, cJ1_JPIMMED_5_02,
-                     j__udySearchLeaf5, JU_DELETEINPLACE_ODD);
-
-        case cJ1_JPIMMED_6_02:
-
-            JU_IMMED_02_ODD(6, cJU_JPIMMED_6_01,
-                            j__udySearchLeaf6, JU_COPY6_PINDEX_TO_LONG);
-
-        case cJ1_JPIMMED_7_02:
-
-            JU_IMMED_02_ODD(7, cJU_JPIMMED_7_01,
-                            j__udySearchLeaf7, JU_COPY7_PINDEX_TO_LONG);
-
-#endif // (JUDY1 && JU_64BIT)
-
-
-// ****************************************************************************
-// INVALID JP TYPE:
-
-        default: JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT); return(-1);
-
-        } // switch
-
-
-// PROCESS JP -- RECURSIVELY:
-//
-// For non-Immed JP types, if successful, post-decrement the population count
-// at this level, or collapse a BranchL if necessary by copying the remaining
-// JP in the BranchL to the parent (hysteresis = 0), which implicitly creates a
-// narrow pointer if there was not already one in the hierarchy.
-
-        assert(level);
-        retcode =  j__udyDelWalk(Pjp, Index, level, Pjpm);
-        assert(retcode != 0);           // should never happen.
-
-        if ((JU_JPTYPE(Pjp)) < cJU_JPIMMED_1_01)                // not an Immed.
-        {
-            switch (retcode)
-            {
-            case 1: 
-            {
-                jp_t JP = *Pjp;
-                Word_t DcdP0;
-
-                DcdP0 = JU_JPDCDPOP0(Pjp) - 1;          // decrement count.
-                JU_JPSETADT(Pjp, JP.jp_Addr, DcdP0, JU_JPTYPE(&JP)); 
-                break;
-            }
-            case 2:     // collapse BranchL to single JP; see above:
-                {
-                    Pjbl_t PjblRaw = (Pjbl_t) (Pjp->jp_Addr);
-                    Pjbl_t Pjbl    = P_JBL(PjblRaw);
-
-                    *Pjp = Pjbl->jbl_jp[0];
-                    j__udyFreeJBL(PjblRaw, Pjpm);
-                    retcode = 1;
-                }
-            }
-        }
-
-        return(retcode);
-
-} // j__udyDelWalk()
-
-
-// ****************************************************************************
-// J U D Y   1   U N S E T
-// J U D Y   L   D E L
-//
-// Main entry point.  See the manual entry for details.
-
-#ifdef JUDY1
-FUNCTION int Judy1Unset 
-#else
-FUNCTION int JudyLDel
-#endif
-        (
-        PPvoid_t  PPArray,      // in which to delete.
-        Word_t    Index,        // to delete.
-        PJError_t PJError       // optional, for returning error info.
-        )
-{
-        Word_t    pop1;         // population of leaf.
-        int       offset;       // at which to delete Index.
-    JUDY1CODE(int retcode;)     // return code from Judy1Test().
-JUDYLCODE(PPvoid_t PPvalue;)  // pointer from JudyLGet().
-
-
-// CHECK FOR NULL ARRAY POINTER (error by caller):
-
-        if (PPArray == (PPvoid_t) NULL)
-        {
-            JU_SET_ERRNO(PJError, JU_ERRNO_NULLPPARRAY);
-            return(JERRI);
-        }
-
-
-// CHECK IF INDEX IS INVALID:
-//
-// If so, theres nothing to do.  This saves a lot of time.  Pass through
-// PJError, if any, from the "get" function.
-
-#ifdef JUDY1
-        if ((retcode = Judy1Test(*PPArray, Index, PJError)) == JERRI)
-            return (JERRI);
-
-        if (retcode == 0) return(0);
-#else
-        if ((PPvalue = JudyLGet(*PPArray, Index, PJError)) == PPJERR)
-            return (JERRI);
-
-        if (PPvalue == (PPvoid_t) NULL) return(0);
-#endif
-
-
-// ****************************************************************************
-// PROCESS TOP LEVEL (LEAFW) BRANCHES AND LEAVES:
-
-// ****************************************************************************
-// LEAFW LEAF, OTHER SIZE:
-//
-// Shrink or convert the leaf as necessary.  Hysteresis = 0; none is possible.
-
-        if (JU_LEAFW_POP0(*PPArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-        {
-  JUDYLCODE(Pjv_t  Pjv;)                        // current value area.
-  JUDYLCODE(Pjv_t  Pjvnew;)                     // value area in new leaf.
-            Pjlw_t Pjlw = P_JLW(*PPArray);      // first word of leaf.
-            Pjlw_t Pjlwnew;                     // replacement leaf.
-            pop1 = Pjlw[0] + 1;                 // first word of leaf is pop0.
-
-// Delete single (last) Index from array:
-
-            if (pop1 == 1)
-            {
-                j__udyFreeJLW(Pjlw, /* pop1 = */ 1, (Pjpm_t) NULL);
-                *PPArray = (Pvoid_t) NULL;
-                return(1);
-            }
-
-// Locate Index in compressible leaf:
-
-            offset = j__udySearchLeafW(Pjlw + 1, pop1, Index);
-            assert(offset >= 0);                // Index must be valid.
-
-  JUDYLCODE(Pjv = JL_LEAFWVALUEAREA(Pjlw, pop1);)
-
-// Delete Index in-place:
-//
-// Note:  "Grow in place from pop1 - 1" is the logical inverse of, "shrink in
-// place from pop1."  Also, Pjlw points to the count word, so skip that for
-// doing the deletion.
-
-            if (JU_LEAFWGROWINPLACE(pop1 - 1))
-            {
-                JU_DELETEINPLACE(Pjlw + 1, pop1, offset, ignore);
-#ifdef JUDYL // also delete from value area:
-                JU_DELETEINPLACE(Pjv,      pop1, offset, ignore);
-#endif
-                DBGCODE(JudyCheckSorted((Pjll_t) (Pjlw + 1), pop1 - 1,
-                                        cJU_ROOTSTATE);)
-                --(Pjlw[0]);                    // decrement population.
-                DBGCODE(JudyCheckPop(*PPArray);)
-                return(1);
-            }
-
-// Allocate new leaf for use in either case below:
-
-            Pjlwnew = j__udyAllocJLW(pop1 - 1);
-            JU_CHECKALLOC(Pjlw_t, Pjlwnew, JERRI);
-
-// Shrink to smaller LEAFW:
-//
-// Note:  Skip the first word = pop0 in each leaf.
-
-            Pjlwnew[0] = (pop1 - 1) - 1;
-            JU_DELETECOPY(Pjlwnew + 1, Pjlw + 1, pop1, offset, ignore);
-
-#ifdef JUDYL // also delete from value area:
-            Pjvnew = JL_LEAFWVALUEAREA(Pjlwnew, pop1 - 1);
-            JU_DELETECOPY(Pjvnew, Pjv, pop1, offset, ignore);
-#endif
-            DBGCODE(JudyCheckSorted(Pjlwnew + 1, pop1 - 1, cJU_ROOTSTATE);)
-
-            j__udyFreeJLW(Pjlw, pop1, (Pjpm_t) NULL);
-
-////        *PPArray = (Pvoid_t)  Pjlwnew | cJU_LEAFW);
-            *PPArray = (Pvoid_t)  Pjlwnew; 
-            DBGCODE(JudyCheckPop(*PPArray);)
-            return(1);
-
-        }
-        else
-
-
-// ****************************************************************************
-// JRP BRANCH:
-//
-// Traverse through the JPM to do the deletion unless the population is small
-// enough to convert immediately to a LEAFW.
-
-        {
-            Pjpm_t Pjpm;
-            Pjp_t  Pjp;         // top-level JP to process.
-            Word_t digit;       // in a branch.
-  JUDYLCODE(Pjv_t  Pjv;)        // to value area.
-            Pjlw_t Pjlwnew;                     // replacement leaf.
-    DBGCODE(Pjlw_t Pjlwnew_orig;)
-
-            Pjpm = P_JPM(*PPArray);     // top object in array (tree).
-            Pjp  = &(Pjpm->jpm_JP);     // next object (first branch or leaf).
-
-            assert(((Pjpm->jpm_JP.jp_Type) == cJU_JPBRANCH_L)
-                || ((Pjpm->jpm_JP.jp_Type) == cJU_JPBRANCH_B)
-                || ((Pjpm->jpm_JP.jp_Type) == cJU_JPBRANCH_U));
-
-// WALK THE TREE 
-//
-// Note:  Recursive code in j__udyDelWalk() knows how to collapse a lower-level
-// BranchL containing a single JP into the parent JP as a narrow pointer, but
-// the code here cant do that for a top-level BranchL.  The result can be
-// PArray -> JPM -> BranchL containing a single JP.  This situation is
-// unavoidable because a JPM cannot contain a narrow pointer; the BranchL is
-// required in order to hold the top digit decoded, and it does not collapse to
-// a LEAFW until the population is low enough.
-//
-// TBD:  Should we add a topdigit field to JPMs so they can hold narrow
-// pointers?
-
-            if (j__udyDelWalk(Pjp, Index, cJU_ROOTSTATE, Pjpm) == -1)
-            {
-                JU_COPY_ERRNO(PJError, Pjpm);
-                return(JERRI);
-            }
-
-            --(Pjpm->jpm_Pop0); // success; decrement total population.
-
-            if ((Pjpm->jpm_Pop0 + 1) != cJU_LEAFW_MAXPOP1)
-            {
-                DBGCODE(JudyCheckPop(*PPArray);)
-                return(1);
-            }
-
-// COMPRESS A BRANCH[LBU] TO A LEAFW:
-//
-            Pjlwnew = j__udyAllocJLW(cJU_LEAFW_MAXPOP1);
-            JU_CHECKALLOC(Pjlw_t, Pjlwnew, JERRI);
-
-// Plug leaf into root pointer and set population count:
-
-////        *PPArray  = (Pvoid_t) ((Word_t) Pjlwnew | cJU_LEAFW);
-            *PPArray  = (Pvoid_t) Pjlwnew;
-#ifdef JUDYL // prepare value area:
-            Pjv = JL_LEAFWVALUEAREA(Pjlwnew, cJU_LEAFW_MAXPOP1);
-#endif
-            *Pjlwnew++ = cJU_LEAFW_MAXPOP1 - 1; // set pop0.
-            DBGCODE(Pjlwnew_orig = Pjlwnew;)
-
-            switch (JU_JPTYPE(Pjp))
-            {
-
-// JPBRANCH_L:  Copy each JPs indexes to the new LEAFW and free the old
-// branch:
-
-            case cJU_JPBRANCH_L:
-            {
-                Pjbl_t PjblRaw = (Pjbl_t) (Pjp->jp_Addr);
-                Pjbl_t Pjbl    = P_JBL(PjblRaw);
-
-                for (offset = 0; offset < Pjbl->jbl_NumJPs; ++offset)
-                {
-                    pop1 = j__udyLeafM1ToLeafW(Pjlwnew, JU_PVALUEPASS
-                             (Pjbl->jbl_jp) + offset,
-                             JU_DIGITTOSTATE(Pjbl->jbl_Expanse[offset],
-                                             cJU_BYTESPERWORD),
-                             (Pvoid_t) Pjpm);
-                    Pjlwnew += pop1;            // advance through indexes.
-          JUDYLCODE(Pjv     += pop1;)           // advance through values.
-                }
-                j__udyFreeJBL(PjblRaw, Pjpm);
-
-                assert(Pjlwnew == Pjlwnew_orig + cJU_LEAFW_MAXPOP1);
-                break;                  // delete Index from new LEAFW.
-            }
-
-// JPBRANCH_B:  Copy each JPs indexes to the new LEAFW and free the old
-// branch, including each JP subarray:
-
-            case cJU_JPBRANCH_B:
-            {
-                Pjbb_t    PjbbRaw = (Pjbb_t) (Pjp->jp_Addr);
-                Pjbb_t    Pjbb    = P_JBB(PjbbRaw);
-                Word_t    subexp;       // current subexpanse number.
-                BITMAPB_t bitmap;       // portion for this subexpanse.
-                Pjp_t     Pjp2Raw;      // one subexpanses subarray.
-                Pjp_t     Pjp2;
-
-                for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)
-                {
-                    if ((bitmap = JU_JBB_BITMAP(Pjbb, subexp)) == 0)
-                        continue;               // skip empty subexpanse.
-
-                    digit   = subexp * cJU_BITSPERSUBEXPB;
-                    Pjp2Raw = JU_JBB_PJP(Pjbb, subexp);
-                    Pjp2    = P_JP(Pjp2Raw);
-                    assert(Pjp2 != (Pjp_t) NULL);
-
-// Walk through bits for all possible sub-subexpanses (digits); increment
-// offset for each populated subexpanse; until no more set bits:
-
-                    for (offset = 0; bitmap != 0; bitmap >>= 1, ++digit)
-                    {
-                        if (! (bitmap & 1))     // skip empty sub-subexpanse.
-                            continue;
-
-                        pop1 = j__udyLeafM1ToLeafW(Pjlwnew, JU_PVALUEPASS
-                                 Pjp2 + offset,
-                                 JU_DIGITTOSTATE(digit, cJU_BYTESPERWORD),
-                                 (Pvoid_t) Pjpm);
-                        Pjlwnew += pop1;         // advance through indexes.
-              JUDYLCODE(Pjv     += pop1;)        // advance through values.
-                        ++offset;
-                    }
-                    j__udyFreeJBBJP(Pjp2Raw, /* pop1 = */ offset, Pjpm);
-                }
-                j__udyFreeJBB(PjbbRaw, Pjpm);
-
-                assert(Pjlwnew == Pjlwnew_orig + cJU_LEAFW_MAXPOP1);
-                break;                  // delete Index from new LEAFW.
-
-            } // case cJU_JPBRANCH_B.
-
-
-// JPBRANCH_U:  Copy each JPs indexes to the new LEAFW and free the old
-// branch:
-
-            case cJU_JPBRANCH_U:
-            {
-                Pjbu_t  PjbuRaw = (Pjbu_t) (Pjp->jp_Addr);
-                Pjbu_t  Pjbu    = P_JBU(PjbuRaw);
-                Word_t  ldigit;         // larger than uint8_t.
-
-                for (Pjp = Pjbu->jbu_jp, ldigit = 0;
-                     ldigit < cJU_BRANCHUNUMJPS;
-                     ++Pjp, ++ldigit)
-                {
-
-// Shortcuts, to save a little time for possibly big branches:
-
-                    if ((JU_JPTYPE(Pjp)) == cJU_JPNULLMAX)  // skip null JP.
-                        continue;
-
-// TBD:  Should the following shortcut also be used in BranchL and BranchB
-// code?
-
-#ifndef JU_64BIT
-                    if ((JU_JPTYPE(Pjp)) == cJU_JPIMMED_3_01)
-#else
-                    if ((JU_JPTYPE(Pjp)) == cJU_JPIMMED_7_01)
-#endif
-                    {                                   // single Immed:
-                        *Pjlwnew++ = JU_DIGITTOSTATE(ldigit, cJU_BYTESPERWORD)
-                                   | JU_JPDCDPOP0(Pjp); // rebuild Index.
-#ifdef JUDYL
-                        *Pjv++ = Pjp->jp_Addr;  // copy value area.
-#endif
-                        continue;
-                    }
-
-                    pop1 = j__udyLeafM1ToLeafW(Pjlwnew, JU_PVALUEPASS
-                             Pjp, JU_DIGITTOSTATE(ldigit, cJU_BYTESPERWORD),
-                             (Pvoid_t) Pjpm);
-                    Pjlwnew += pop1;            // advance through indexes.
-          JUDYLCODE(Pjv     += pop1;)           // advance through values.
-                }
-                j__udyFreeJBU(PjbuRaw, Pjpm);
-
-                assert(Pjlwnew == Pjlwnew_orig + cJU_LEAFW_MAXPOP1);
-                break;                  // delete Index from new LEAFW.
-
-            } // case cJU_JPBRANCH_U.
-
-
-// INVALID JP TYPE in jpm_t struct
-
-            default: JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-                     return(JERRI);
-
-            } // end switch on sub-JP type.
-
-            DBGCODE(JudyCheckSorted((Pjll_t) Pjlwnew_orig, cJU_LEAFW_MAXPOP1,
-                                    cJU_ROOTSTATE);)
-
-// FREE JPM (no longer needed):
-
-            j__udyFreeJPM(Pjpm, (Pjpm_t) NULL);
-            DBGCODE(JudyCheckPop(*PPArray);)
-            return(1);
-
-        } 
-        /*NOTREACHED*/
-
-} // Judy1Unset() / JudyLDel()
diff --git a/libs/klib/judy/JudyFirst.c b/libs/klib/judy/JudyFirst.c
deleted file mode 100644
index 91533a9..0000000
--- a/libs/klib/judy/JudyFirst.c
+++ /dev/null
@@ -1,211 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy*First[Empty]() and Judy*Last[Empty]() routines for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// These are inclusive versions of Judy*Next[Empty]() and Judy*Prev[Empty]().
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-
-// ****************************************************************************
-// J U D Y   1   F I R S T
-// J U D Y   L   F I R S T
-//
-// See the manual entry for details.
-
-#ifdef JUDY1
-FUNCTION int	  Judy1First
-#else
-FUNCTION PPvoid_t JudyLFirst
-#endif
-        (
-	Pcvoid_t  PArray,	// Judy array to search.
-	Word_t *  PIndex,	// starting point and result.
-	PJError_t PJError	// optional, for returning error info.
-        )
-{
-        if (PIndex == (PWord_t) NULL)		// caller error:
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-	}
-
-#ifdef JUDY1
-	switch (Judy1Test(PArray, *PIndex, PJError))
-	{
-	case 1:	 return(1);			// found *PIndex itself.
-	case 0:  return(Judy1Next(PArray, PIndex, PJError));
-	default: return(JERRI);
-	}
-#else
-	{
-	    PPvoid_t PValue;
-
-	    if ((PValue = JudyLGet(PArray, *PIndex, PJError)) == PPJERR)
-		return(PPJERR);
-
-	    if (PValue != (PPvoid_t) NULL) return(PValue);  // found *PIndex.
-
-	    return(JudyLNext(PArray, PIndex, PJError));
-	}
-#endif
-
-} // Judy1First() / JudyLFirst()
-
-
-// ****************************************************************************
-// J U D Y   1   L A S T
-// J U D Y   L   L A S T
-//
-// See the manual entry for details.
-
-#ifdef JUDY1
-FUNCTION int	  Judy1Last(
-#else
-FUNCTION PPvoid_t JudyLLast(
-#endif
-	Pcvoid_t  PArray,	// Judy array to search.
-	Word_t *  PIndex,	// starting point and result.
-	PJError_t PJError)	// optional, for returning error info.
-{
-        if (PIndex == (PWord_t) NULL)
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);	 // caller error.
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-	}
-
-#ifdef JUDY1
-	switch (Judy1Test(PArray, *PIndex, PJError))
-	{
-	case 1:	 return(1);			// found *PIndex itself.
-	case 0:  return(Judy1Prev(PArray, PIndex, PJError));
-	default: return(JERRI);
-	}
-#else
-	{
-	    PPvoid_t PValue;
-
-	    if ((PValue = JudyLGet(PArray, *PIndex, PJError)) == PPJERR)
-		return(PPJERR);
-
-	    if (PValue != (PPvoid_t) NULL) return(PValue);  // found *PIndex.
-
-	    return(JudyLPrev(PArray, PIndex, PJError));
-	}
-#endif
-
-} // Judy1Last() / JudyLLast()
-
-
-// ****************************************************************************
-// J U D Y   1   F I R S T   E M P T Y
-// J U D Y   L   F I R S T   E M P T Y
-//
-// See the manual entry for details.
-
-#ifdef JUDY1
-FUNCTION int Judy1FirstEmpty(
-#else
-FUNCTION int JudyLFirstEmpty(
-#endif
-	Pcvoid_t  PArray,	// Judy array to search.
-	Word_t *  PIndex,	// starting point and result.
-	PJError_t PJError)	// optional, for returning error info.
-{
-        if (PIndex == (PWord_t) NULL)		// caller error:
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-	    return(JERRI);
-	}
-
-#ifdef JUDY1
-	switch (Judy1Test(PArray, *PIndex, PJError))
-	{
-	case 0:	 return(1);			// found *PIndex itself.
-	case 1:  return(Judy1NextEmpty(PArray, PIndex, PJError));
-	default: return(JERRI);
-	}
-#else
-	{
-	    PPvoid_t PValue;
-
-	    if ((PValue = JudyLGet(PArray, *PIndex, PJError)) == PPJERR)
-		return(JERRI);
-
-	    if (PValue == (PPvoid_t) NULL) return(1);	// found *PIndex.
-
-	    return(JudyLNextEmpty(PArray, PIndex, PJError));
-	}
-#endif
-
-} // Judy1FirstEmpty() / JudyLFirstEmpty()
-
-
-// ****************************************************************************
-// J U D Y   1   L A S T   E M P T Y
-// J U D Y   L   L A S T   E M P T Y
-//
-// See the manual entry for details.
-
-#ifdef JUDY1
-FUNCTION int Judy1LastEmpty(
-#else
-FUNCTION int JudyLLastEmpty(
-#endif
-	Pcvoid_t  PArray,	// Judy array to search.
-	Word_t *  PIndex,	// starting point and result.
-	PJError_t PJError)	// optional, for returning error info.
-{
-        if (PIndex == (PWord_t) NULL)
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);	 // caller error.
-	    return(JERRI);
-	}
-
-#ifdef JUDY1
-	switch (Judy1Test(PArray, *PIndex, PJError))
-	{
-	case 0:	 return(1);			// found *PIndex itself.
-	case 1:  return(Judy1PrevEmpty(PArray, PIndex, PJError));
-	default: return(JERRI);
-	}
-#else
-	{
-	    PPvoid_t PValue;
-
-	    if ((PValue = JudyLGet(PArray, *PIndex, PJError)) == PPJERR)
-		return(JERRI);
-
-	    if (PValue == (PPvoid_t) NULL) return(1);	// found *PIndex.
-
-	    return(JudyLPrevEmpty(PArray, PIndex, PJError));
-	}
-#endif
-
-} // Judy1LastEmpty() / JudyLLastEmpty()
diff --git a/libs/klib/judy/JudyFreeArray.c b/libs/klib/judy/JudyFreeArray.c
deleted file mode 100644
index 0145479..0000000
--- a/libs/klib/judy/JudyFreeArray.c
+++ /dev/null
@@ -1,361 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy1FreeArray() and JudyLFreeArray() functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-// Return the number of bytes freed from the array.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-DBGCODE(extern void JudyCheckPop(Pvoid_t PArray);)
-
-
-// ****************************************************************************
-// J U D Y   1   F R E E   A R R A Y
-// J U D Y   L   F R E E   A R R A Y
-//
-// See the Judy*(3C) manual entry for details.
-//
-// This code is written recursively, at least at first, because thats much
-// simpler.  Hope its fast enough.
-
-#ifdef JUDY1
-FUNCTION Word_t Judy1FreeArray
-#else
-FUNCTION Word_t JudyLFreeArray
-#endif
-        (
-	PPvoid_t  PPArray,	// array to free.
-	PJError_t PJError	// optional, for returning error info.
-        )
-{
-	jpm_t	  jpm;		// local to accumulate free statistics.
-
-// CHECK FOR NULL POINTER (error by caller):
-
-	if (PPArray == (PPvoid_t) NULL)
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPPARRAY);
-	    return(JERR);
-	}
-
-	DBGCODE(JudyCheckPop(*PPArray);)
-
-// Zero jpm.jpm_Pop0 (meaning the array will be empty in a moment) for accurate
-// logging in TRACEMI2.
-
-	jpm.jpm_Pop0	      = 0;		// see above.
-	jpm.jpm_TotalMemWords = 0;		// initialize memory freed.
-
-// 	Empty array:
-
-	if (P_JLW(*PPArray) == (Pjlw_t) NULL) return(0);
-
-// PROCESS TOP LEVEL "JRP" BRANCHES AND LEAF:
-
-	if (JU_LEAFW_POP0(*PPArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-	{
-	    Pjlw_t Pjlw = P_JLW(*PPArray);	// first word of leaf.
-
-	    j__udyFreeJLW(Pjlw, Pjlw[0] + 1, &jpm);
-	    *PPArray = (Pvoid_t) NULL;		// make an empty array.
-	    return (-(jpm.jpm_TotalMemWords * cJU_BYTESPERWORD));  // see above.
-	}
-	else
-
-// Rootstate leaves:  just free the leaf:
-
-// Common code for returning the amount of memory freed.
-//
-// Note:  In a an ordinary LEAFW, pop0 = *PPArray[0].
-//
-// Accumulate (negative) words freed, while freeing objects.
-// Return the positive bytes freed.
-
-	{
-	    Pjpm_t Pjpm	    = P_JPM(*PPArray);
-	    Word_t TotalMem = Pjpm->jpm_TotalMemWords;
-
-	    j__udyFreeSM(&(Pjpm->jpm_JP), &jpm);  // recurse through tree.
-	    j__udyFreeJPM(Pjpm, &jpm);
-
-// Verify the array was not corrupt.  This means that amount of memory freed
-// (which is negative) is equal to the initial amount:
-
-	    if (TotalMem + jpm.jpm_TotalMemWords)
-	    {
-		JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		return(JERR);
-	    }
-
-	    *PPArray = (Pvoid_t) NULL;		// make an empty array.
-	    return (TotalMem * cJU_BYTESPERWORD);
-	}
-
-} // Judy1FreeArray() / JudyLFreeArray()
-
-
-// ****************************************************************************
-// __ J U D Y   F R E E   S M
-//
-// Given a pointer to a JP, recursively visit and free (depth first) all nodes
-// in a Judy array BELOW the JP, but not the JP itself.  Accumulate in *Pjpm
-// the total words freed (as a negative value).  "SM" = State Machine.
-//
-// Note:  Corruption is not detected at this level because during a FreeArray,
-// if the code hasnt already core dumped, its better to remain silent, even
-// if some memory has not been freed, than to bother the caller about the
-// corruption.  TBD:  Is this true?  If not, must list all legitimate JPNULL
-// and JPIMMED above first, and revert to returning bool_t (see 4.34).
-
-FUNCTION void j__udyFreeSM(
-	Pjp_t	Pjp,		// top of Judy (top-state).
-	Pjpm_t	Pjpm)		// to return words freed.
-{
-	Word_t	Pop1;
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-#ifdef JUDY1
-
-// FULL EXPANSE -- nothing to free  for this jp_Type.
-
-	case cJ1_JPFULLPOPU1:
-	    break;
-#endif
-
-// JUDY BRANCH -- free the sub-tree depth first:
-
-// LINEAR BRANCH -- visit each JP in the JBLs list, then free the JBL:
-//
-// Note:  There are no null JPs in a JBL.
-
-	case cJU_JPBRANCH_L:
-	case cJU_JPBRANCH_L2:
-	case cJU_JPBRANCH_L3:
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_L4:
-	case cJU_JPBRANCH_L5:
-	case cJU_JPBRANCH_L6:
-	case cJU_JPBRANCH_L7:
-#endif // JU_64BIT
-	{
-	    Pjbl_t Pjbl = P_JBL(Pjp->jp_Addr);
-	    Word_t offset;
-
-	    for (offset = 0; offset < Pjbl->jbl_NumJPs; ++offset)
-	        j__udyFreeSM((Pjbl->jbl_jp) + offset, Pjpm);
-
-	    j__udyFreeJBL((Pjbl_t) (Pjp->jp_Addr), Pjpm);
-	    break;
-	}
-
-
-// BITMAP BRANCH -- visit each JP in the JBBs list based on the bitmap, also
-//
-// Note:  There are no null JPs in a JBB.
-
-	case cJU_JPBRANCH_B:
-	case cJU_JPBRANCH_B2:
-	case cJU_JPBRANCH_B3:
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_B4:
-	case cJU_JPBRANCH_B5:
-	case cJU_JPBRANCH_B6:
-	case cJU_JPBRANCH_B7:
-#endif // JU_64BIT
-	{
-	    Word_t subexp;
-	    Word_t offset;
-	    Word_t jpcount;
-
-	    Pjbb_t Pjbb = P_JBB(Pjp->jp_Addr);
-
-	    for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)
-	    {
-	        jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp));
-
-	        if (jpcount)
-	        {
-		    for (offset = 0; offset < jpcount; ++offset)
-		    {
-		       j__udyFreeSM(P_JP(JU_JBB_PJP(Pjbb, subexp)) + offset,
-				    Pjpm);
-		    }
-		    j__udyFreeJBBJP(JU_JBB_PJP(Pjbb, subexp), jpcount, Pjpm);
-	        }
-	    }
-	    j__udyFreeJBB((Pjbb_t) (Pjp->jp_Addr), Pjpm);
-
-	    break;
-	}
-
-
-// UNCOMPRESSED BRANCH -- visit each JP in the JBU array, then free the JBU
-// itself:
-//
-// Note:  Null JPs are handled during recursion at a lower state.
-
-	case cJU_JPBRANCH_U:
-	case cJU_JPBRANCH_U2:
-	case cJU_JPBRANCH_U3:
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_U4:
-	case cJU_JPBRANCH_U5:
-	case cJU_JPBRANCH_U6:
-	case cJU_JPBRANCH_U7:
-#endif // JU_64BIT
-	{
-	    Word_t offset;
-	    Pjbu_t Pjbu = P_JBU(Pjp->jp_Addr);
-
-	    for (offset = 0; offset < cJU_BRANCHUNUMJPS; ++offset)
-	        j__udyFreeSM((Pjbu->jbu_jp) + offset, Pjpm);
-
-	    j__udyFreeJBU((Pjbu_t) (Pjp->jp_Addr), Pjpm);
-	    break;
-	}
-
-
-// -- Cases below here terminate and do not recurse. --
-
-
-// LINEAR LEAF -- just free the leaf; size is computed from jp_Type:
-//
-// Note:  cJU_JPLEAF1 is a special case, see discussion in ../Judy1/Judy1.h
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	case cJU_JPLEAF1:
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyFreeJLL1((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-#endif
-
-	case cJU_JPLEAF2:
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyFreeJLL2((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-
-	case cJU_JPLEAF3:
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyFreeJLL3((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-
-#ifdef JU_64BIT
-	case cJU_JPLEAF4:
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyFreeJLL4((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-
-	case cJU_JPLEAF5:
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyFreeJLL5((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-
-	case cJU_JPLEAF6:
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyFreeJLL6((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-
-	case cJU_JPLEAF7:
-	    Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-	    j__udyFreeJLL7((Pjll_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-#endif // JU_64BIT
-
-
-// BITMAP LEAF -- free sub-expanse arrays of JPs, then free the JBB.
-
-	case cJU_JPLEAF_B1:
-	{
-#ifdef JUDYL
-	    Word_t subexp;
-	    Word_t jpcount;
-	    Pjlb_t Pjlb = P_JLB(Pjp->jp_Addr);
-
-// Free the value areas in the bitmap leaf:
-
-	    for (subexp = 0; subexp < cJU_NUMSUBEXPL; ++subexp)
-	    {
-	        jpcount = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, subexp));
-
-	        if (jpcount)
-		    j__udyLFreeJV(JL_JLB_PVALUE(Pjlb, subexp), jpcount, Pjpm);
-	    }
-#endif // JUDYL
-
-	    j__udyFreeJLB1((Pjlb_t) (Pjp->jp_Addr), Pjpm);
-	    break;
-
-	} // case cJU_JPLEAF_B1
-
-#ifdef JUDYL
-
-
-// IMMED*:
-//
-// For JUDYL, all non JPIMMED_*_01s have a LeafV which must be freed:
-
-	case cJU_JPIMMED_1_02:
-	case cJU_JPIMMED_1_03:
-#ifdef JU_64BIT
-	case cJU_JPIMMED_1_04:
-	case cJU_JPIMMED_1_05:
-	case cJU_JPIMMED_1_06:
-	case cJU_JPIMMED_1_07:
-#endif
-	    Pop1 = JU_JPTYPE(Pjp) - cJU_JPIMMED_1_02 + 2;
-	    j__udyLFreeJV((Pjv_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-
-#ifdef JU_64BIT
-	case cJU_JPIMMED_2_02:
-	case cJU_JPIMMED_2_03:
-
-	    Pop1 = JU_JPTYPE(Pjp) - cJU_JPIMMED_2_02 + 2;
-	    j__udyLFreeJV((Pjv_t) (Pjp->jp_Addr), Pop1, Pjpm);
-	    break;
-
-	case cJU_JPIMMED_3_02:
-	    j__udyLFreeJV((Pjv_t) (Pjp->jp_Addr), 2, Pjpm);
-	    break;
-
-#endif // JU_64BIT
-#endif // JUDYL
-
-
-// OTHER JPNULL, JPIMMED, OR UNEXPECTED TYPE -- nothing to free for this type:
-//
-// Note:  Lump together no-op and invalid JP types; see function header
-// comments.
-
-	default: break;
-
-	} // switch (JU_JPTYPE(Pjp))
-
-} // j__udyFreeSM()
diff --git a/libs/klib/judy/JudyGet.c b/libs/klib/judy/JudyGet.c
deleted file mode 100644
index 5071a3f..0000000
--- a/libs/klib/judy/JudyGet.c
+++ /dev/null
@@ -1,1092 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy1Test() and JudyLGet() functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-#ifdef TRACEJPR                 // different macro name, for "retrieval" only.
-#include "JudyPrintJP.c"
-#endif
-
-
-// ****************************************************************************
-// J U D Y   1   T E S T
-// J U D Y   L   G E T
-//
-// See the manual entry for details.  Note support for "shortcut" entries to
-// trees known to start with a JPM.
-
-#ifdef JUDY1
-
-#ifdef JUDYGETINLINE
-FUNCTION int j__udy1Test
-#else
-FUNCTION int Judy1Test
-#endif
-
-#else  // JUDYL
-
-#ifdef JUDYGETINLINE
-FUNCTION PPvoid_t j__udyLGet
-#else
-FUNCTION PPvoid_t JudyLGet
-#endif
-
-#endif // JUDYL
-        (
-#ifdef JUDYGETINLINE
-        Pvoid_t   PArray,       // from which to retrieve.
-        Word_t    Index         // to retrieve.
-#else
-        Pcvoid_t  PArray,       // from which to retrieve.
-        Word_t    Index,        // to retrieve.
-        PJError_t PJError       // optional, for returning error info.
-#endif
-        )
-{
-        Pjp_t     Pjp;          // current JP while walking the tree.
-        Pjpm_t    Pjpm;         // for global accounting.
-        uint8_t   Digit;        // byte just decoded from Index.
-        Word_t    Pop1;         // leaf population (number of indexes).
-        Pjll_t    Pjll;         // pointer to LeafL.
-        DBGCODE(uint8_t ParentJPType;)
-
-#ifndef JUDYGETINLINE
-
-        if (PArray == (Pcvoid_t) NULL)  // empty array.
-        {
-  JUDY1CODE(return(0);)
-  JUDYLCODE(return((PPvoid_t) NULL);)
-        }
-
-// ****************************************************************************
-// PROCESS TOP LEVEL BRANCHES AND LEAF:
-
-        if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-        {
-            Pjlw_t Pjlw = P_JLW(PArray);        // first word of leaf.
-            int    posidx;                      // signed offset in leaf.
-
-            Pop1   = Pjlw[0] + 1;
-            posidx = j__udySearchLeafW(Pjlw + 1, Pop1, Index);
-
-            if (posidx >= 0)
-            {
-      JUDY1CODE(return(1);)
-      JUDYLCODE(return((PPvoid_t) (JL_LEAFWVALUEAREA(Pjlw, Pop1) + posidx));)
-            }
-  JUDY1CODE(return(0);)
-  JUDYLCODE(return((PPvoid_t) NULL);)
-        }
-
-#endif // ! JUDYGETINLINE
-
-        Pjpm = P_JPM(PArray);
-        Pjp = &(Pjpm->jpm_JP);  // top branch is below JPM.
-
-// ****************************************************************************
-// WALK THE JUDY TREE USING A STATE MACHINE:
-
-ContinueWalk:           // for going down one level; come here with Pjp set.
-
-#ifdef TRACEJPR
-        JudyPrintJP(Pjp, "g", __LINE__);
-#endif
-        switch (JU_JPTYPE(Pjp))
-        {
-
-// Ensure the switch table starts at 0 for speed; otherwise more code is
-// executed:
-
-        case 0: goto ReturnCorrupt;     // save a little code.
-
-
-// ****************************************************************************
-// JPNULL*:
-//
-// Note:  These are legitimate in a BranchU (only) and do not constitute a
-// fault.
-
-        case cJU_JPNULL1:
-        case cJU_JPNULL2:
-        case cJU_JPNULL3:
-#ifdef JU_64BIT
-        case cJU_JPNULL4:
-        case cJU_JPNULL5:
-        case cJU_JPNULL6:
-        case cJU_JPNULL7:
-#endif
-            assert(ParentJPType >= cJU_JPBRANCH_U2);
-            assert(ParentJPType <= cJU_JPBRANCH_U);
-      JUDY1CODE(return(0);)
-      JUDYLCODE(return((PPvoid_t) NULL);)
-
-
-// ****************************************************************************
-// JPBRANCH_L*:
-//
-// Note:  The use of JU_DCDNOTMATCHINDEX() in branches is not strictly
-// required,since this can be done at leaf level, but it costs nothing to do it
-// sooner, and it aborts an unnecessary traversal sooner.
-
-        case cJU_JPBRANCH_L2:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 2)) break;
-            Digit = JU_DIGITATSTATE(Index, 2);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L3:
-
-#ifdef JU_64BIT // otherwise its a no-op:
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 3)) break;
-#endif
-            Digit = JU_DIGITATSTATE(Index, 3);
-            goto JudyBranchL;
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_L4:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 4)) break;
-            Digit = JU_DIGITATSTATE(Index, 4);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L5:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 5)) break;
-            Digit = JU_DIGITATSTATE(Index, 5);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L6:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 6)) break;
-            Digit = JU_DIGITATSTATE(Index, 6);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L7:
-
-            // JU_DCDNOTMATCHINDEX() would be a no-op.
-            Digit = JU_DIGITATSTATE(Index, 7);
-            goto JudyBranchL;
-
-#endif // JU_64BIT
-
-        case cJU_JPBRANCH_L:
-        {
-            Pjbl_t Pjbl;
-            int    posidx;
-
-            Digit = JU_DIGITATSTATE(Index, cJU_ROOTSTATE);
-
-// Common code for all BranchLs; come here with Digit set:
-
-JudyBranchL:
-            Pjbl = P_JBL(Pjp->jp_Addr);
-
-            posidx = 0;
-
-            do {
-                if (Pjbl->jbl_Expanse[posidx] == Digit)
-                {                       // found Digit; continue traversal:
-                    DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-                    Pjp = Pjbl->jbl_jp + posidx;
-                    goto ContinueWalk;
-                }
-            } while (++posidx != Pjbl->jbl_NumJPs);
-
-            break;
-        }
-
-
-// ****************************************************************************
-// JPBRANCH_B*:
-
-        case cJU_JPBRANCH_B2:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 2)) break;
-            Digit = JU_DIGITATSTATE(Index, 2);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B3:
-
-#ifdef JU_64BIT // otherwise its a no-op:
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 3)) break;
-#endif
-            Digit = JU_DIGITATSTATE(Index, 3);
-            goto JudyBranchB;
-
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_B4:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 4)) break;
-            Digit = JU_DIGITATSTATE(Index, 4);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B5:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 5)) break;
-            Digit = JU_DIGITATSTATE(Index, 5);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B6:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 6)) break;
-            Digit = JU_DIGITATSTATE(Index, 6);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B7:
-
-            // JU_DCDNOTMATCHINDEX() would be a no-op.
-            Digit = JU_DIGITATSTATE(Index, 7);
-            goto JudyBranchB;
-
-#endif // JU_64BIT
-
-        case cJU_JPBRANCH_B:
-        {
-            Pjbb_t    Pjbb;
-            Word_t    subexp;   // in bitmap, 0..7.
-            BITMAPB_t BitMap;   // for one subexpanse.
-            BITMAPB_t BitMask;  // bit in BitMap for Indexs Digit.
-
-            Digit = JU_DIGITATSTATE(Index, cJU_ROOTSTATE);
-
-// Common code for all BranchBs; come here with Digit set:
-
-JudyBranchB:
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjbb   = P_JBB(Pjp->jp_Addr);
-            subexp = Digit / cJU_BITSPERSUBEXPB;
-
-            BitMap = JU_JBB_BITMAP(Pjbb, subexp);
-            Pjp    = P_JP(JU_JBB_PJP(Pjbb, subexp));
-
-            BitMask = JU_BITPOSMASKB(Digit);
-
-// No JP in subexpanse for Index => Index not found:
-
-            if (! (BitMap & BitMask)) break;
-
-// Count JPs in the subexpanse below the one for Index:
-
-            Pjp += j__udyCountBitsB(BitMap & (BitMask - 1));
-
-            goto ContinueWalk;
-
-        } // case cJU_JPBRANCH_B*
-
-
-// ****************************************************************************
-// JPBRANCH_U*:
-//
-// Notice the reverse order of the cases, and falling through to the next case,
-// for performance.
-
-        case cJU_JPBRANCH_U:
-
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjp = JU_JBU_PJP(Pjp, Index, cJU_ROOTSTATE);
-
-// If not a BranchU, traverse; otherwise fall into the next case, which makes
-// this very fast code for a large Judy array (mainly BranchUs), especially
-// when branches are already in the cache, such as for prev/next:
-
-#ifndef JU_64BIT
-            if (JU_JPTYPE(Pjp) != cJU_JPBRANCH_U3) goto ContinueWalk;
-#else
-            if (JU_JPTYPE(Pjp) != cJU_JPBRANCH_U7) goto ContinueWalk;
-#endif
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_U7:
-
-            // JU_DCDNOTMATCHINDEX() would be a no-op.
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjp = JU_JBU_PJP(Pjp, Index, 7);
-
-            if (JU_JPTYPE(Pjp) != cJU_JPBRANCH_U6) goto ContinueWalk;
-            // and fall through.
-
-        case cJU_JPBRANCH_U6:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 6)) break;
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjp = JU_JBU_PJP(Pjp, Index, 6);
-
-            if (JU_JPTYPE(Pjp) != cJU_JPBRANCH_U5) goto ContinueWalk;
-            // and fall through.
-
-        case cJU_JPBRANCH_U5:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 5)) break;
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjp = JU_JBU_PJP(Pjp, Index, 5);
-
-            if (JU_JPTYPE(Pjp) != cJU_JPBRANCH_U4) goto ContinueWalk;
-            // and fall through.
-
-        case cJU_JPBRANCH_U4:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 4)) break;
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjp = JU_JBU_PJP(Pjp, Index, 4);
-
-            if (JU_JPTYPE(Pjp) != cJU_JPBRANCH_U3) goto ContinueWalk;
-            // and fall through.
-
-#endif // JU_64BIT
-
-        case cJU_JPBRANCH_U3:
-
-#ifdef JU_64BIT // otherwise its a no-op:
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 3)) break;
-#endif
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjp = JU_JBU_PJP(Pjp, Index, 3);
-
-            if (JU_JPTYPE(Pjp) != cJU_JPBRANCH_U2) goto ContinueWalk;
-            // and fall through.
-
-        case cJU_JPBRANCH_U2:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 2)) break;
-            DBGCODE(ParentJPType = JU_JPTYPE(Pjp);)
-            Pjp = JU_JBU_PJP(Pjp, Index, 2);
-
-// Note:  BranchU2 is a special case that must continue traversal to a leaf,
-// immed, full, or null type:
-
-            goto ContinueWalk;
-
-
-// ****************************************************************************
-// JPLEAF*:
-//
-// Note:  Here the calls of JU_DCDNOTMATCHINDEX() are necessary and check
-// whether Index is out of the expanse of a narrow pointer.
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-
-        case cJU_JPLEAF1:
-        {
-            int posidx;         // signed offset in leaf.
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 1)) break;
-
-            Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-            Pjll = P_JLL(Pjp->jp_Addr);
-
-            if ((posidx = j__udySearchLeaf1(Pjll, Pop1, Index)) < 0) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) (JL_LEAF1VALUEAREA(Pjll, Pop1) + posidx));)
-        }
-
-#endif // (JUDYL || (! JU_64BIT))
-
-        case cJU_JPLEAF2:
-        {
-            int posidx;         // signed offset in leaf.
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 2)) break;
-
-            Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-            Pjll = P_JLL(Pjp->jp_Addr);
-
-            if ((posidx = j__udySearchLeaf2(Pjll, Pop1, Index)) < 0) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) (JL_LEAF2VALUEAREA(Pjll, Pop1) + posidx));)
-        }
-        case cJU_JPLEAF3:
-        {
-            int posidx;         // signed offset in leaf.
-
-#ifdef JU_64BIT // otherwise its a no-op:
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 3)) break;
-#endif
-
-            Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-            Pjll = P_JLL(Pjp->jp_Addr);
-
-            if ((posidx = j__udySearchLeaf3(Pjll, Pop1, Index)) < 0) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) (JL_LEAF3VALUEAREA(Pjll, Pop1) + posidx));)
-        }
-#ifdef JU_64BIT
-        case cJU_JPLEAF4:
-        {
-            int posidx;         // signed offset in leaf.
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 4)) break;
-
-            Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-            Pjll = P_JLL(Pjp->jp_Addr);
-
-            if ((posidx = j__udySearchLeaf4(Pjll, Pop1, Index)) < 0) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) (JL_LEAF4VALUEAREA(Pjll, Pop1) + posidx));)
-        }
-        case cJU_JPLEAF5:
-        {
-            int posidx;         // signed offset in leaf.
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 5)) break;
-
-            Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-            Pjll = P_JLL(Pjp->jp_Addr);
-
-            if ((posidx = j__udySearchLeaf5(Pjll, Pop1, Index)) < 0) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) (JL_LEAF5VALUEAREA(Pjll, Pop1) + posidx));)
-        }
-
-        case cJU_JPLEAF6:
-        {
-            int posidx;         // signed offset in leaf.
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 6)) break;
-
-            Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-            Pjll = P_JLL(Pjp->jp_Addr);
-
-            if ((posidx = j__udySearchLeaf6(Pjll, Pop1, Index)) < 0) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) (JL_LEAF6VALUEAREA(Pjll, Pop1) + posidx));)
-        }
-        case cJU_JPLEAF7:
-        {
-            int posidx;         // signed offset in leaf.
-
-            // JU_DCDNOTMATCHINDEX() would be a no-op.
-            Pop1 = JU_JPLEAF_POP0(Pjp) + 1;
-            Pjll = P_JLL(Pjp->jp_Addr);
-
-            if ((posidx = j__udySearchLeaf7(Pjll, Pop1, Index)) < 0) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) (JL_LEAF7VALUEAREA(Pjll, Pop1) + posidx));)
-        }
-#endif // JU_64BIT
-
-
-// ****************************************************************************
-// JPLEAF_B1:
-
-        case cJU_JPLEAF_B1:
-        {
-            Pjlb_t    Pjlb;
-#ifdef JUDYL
-            int       posidx;
-            Word_t    subexp;   // in bitmap, 0..7.
-            BITMAPL_t BitMap;   // for one subexpanse.
-            BITMAPL_t BitMask;  // bit in BitMap for Indexs Digit.
-            Pjv_t     Pjv;
-#endif
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 1)) break;
-
-            Pjlb = P_JLB(Pjp->jp_Addr);
-
-#ifdef JUDY1
-
-// Simply check if Indexs bit is set in the bitmap:
-
-            if (JU_BITMAPTESTL(Pjlb, Index)) return(1);
-            break;
-
-#else // JUDYL
-
-// JudyL is much more complicated because of value area subarrays:
-
-            Digit   = JU_DIGITATSTATE(Index, 1);
-            subexp  = Digit / cJU_BITSPERSUBEXPL;
-            BitMap  = JU_JLB_BITMAP(Pjlb, subexp);
-            BitMask = JU_BITPOSMASKL(Digit);
-
-// No value in subexpanse for Index => Index not found:
-
-            if (! (BitMap & BitMask)) break;
-
-// Count value areas in the subexpanse below the one for Index:
-
-            Pjv = P_JV(JL_JLB_PVALUE(Pjlb, subexp));
-            assert(Pjv != (Pjv_t) NULL);
-            posidx = j__udyCountBitsL(BitMap & (BitMask - 1));
-
-            return((PPvoid_t) (Pjv + posidx));
-
-#endif // JUDYL
-
-        } // case cJU_JPLEAF_B1
-
-#ifdef JUDY1
-
-// ****************************************************************************
-// JPFULLPOPU1:
-//
-// If the Index is in the expanse, it is necessarily valid (found).
-
-        case cJ1_JPFULLPOPU1:
-
-            if (JU_DCDNOTMATCHINDEX(Index, Pjp, 1)) break;
-            return(1);
-
-#ifdef notdef // for future enhancements
-#ifdef JU_64BIT
-
-// Note: Need ? if (JU_DCDNOTMATCHINDEX(Index, Pjp, 1)) break;
-
-        case cJ1_JPFULLPOPU1m15:
-            if (Pjp->jp_1Index[14] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m14:
-            if (Pjp->jp_1Index[13] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m13:
-            if (Pjp->jp_1Index[12] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m12:
-            if (Pjp->jp_1Index[11] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m11:
-            if (Pjp->jp_1Index[10] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m10:
-            if (Pjp->jp_1Index[9] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m9:
-            if (Pjp->jp_1Index[8] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m8:
-            if (Pjp->jp_1Index[7] == (uint8_t)Index) break;
-#endif
-        case cJ1_JPFULLPOPU1m7:
-            if (Pjp->jp_1Index[6] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m6:
-            if (Pjp->jp_1Index[5] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m5:
-            if (Pjp->jp_1Index[4] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m4:
-            if (Pjp->jp_1Index[3] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m3:
-            if (Pjp->jp_1Index[2] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m2:
-            if (Pjp->jp_1Index[1] == (uint8_t)Index) break;
-        case cJ1_JPFULLPOPU1m1:
-            if (Pjp->jp_1Index[0] == (uint8_t)Index) break;
-
-            return(1);  // found, not in exclusion list
-
-#endif // JUDY1
-#endif //  notdef
-
-// ****************************************************************************
-// JPIMMED*:
-//
-// Note that the contents of jp_DcdPopO are different for cJU_JPIMMED_*_01:
-
-        case cJU_JPIMMED_1_01:
-        case cJU_JPIMMED_2_01:
-        case cJU_JPIMMED_3_01:
-#ifdef JU_64BIT
-        case cJU_JPIMMED_4_01:
-        case cJU_JPIMMED_5_01:
-        case cJU_JPIMMED_6_01:
-        case cJU_JPIMMED_7_01:
-#endif
-            if (JU_JPDCDPOP0(Pjp) != JU_TRIMTODCDSIZE(Index)) break;
-
-  JUDY1CODE(return(1);)
-  JUDYLCODE(return((PPvoid_t) &(Pjp->jp_Addr));)  // immediate value area.
-
-
-//   Macros to make code more readable and avoid dup errors
-
-#ifdef JUDY1
-
-#define CHECKINDEXNATIVE(LEAF_T, PJP, IDX, INDEX)                       \
-if (((LEAF_T *)((PJP)->jp_1Index))[(IDX) - 1] == (LEAF_T)(INDEX))       \
-    return(1)
-
-#define CHECKLEAFNONNAT(LFBTS, PJP, INDEX, IDX, COPY)                   \
-{                                                                       \
-    Word_t   i_ndex;                                                    \
-    uint8_t *a_ddr;                                                     \
-    a_ddr  = (PJP)->jp_1Index + (((IDX) - 1) * (LFBTS));                \
-    COPY(i_ndex, a_ddr);                                                \
-    if (i_ndex == JU_LEASTBYTES((INDEX), (LFBTS)))                      \
-        return(1);                                                      \
-}
-#endif
-
-#ifdef JUDYL
-
-#define CHECKINDEXNATIVE(LEAF_T, PJP, IDX, INDEX)                       \
-if (((LEAF_T *)((PJP)->jp_LIndex))[(IDX) - 1] == (LEAF_T)(INDEX))       \
-        return((PPvoid_t)(P_JV((PJP)->jp_Addr) + (IDX) - 1))
-
-#define CHECKLEAFNONNAT(LFBTS, PJP, INDEX, IDX, COPY)                   \
-{                                                                       \
-    Word_t   i_ndex;                                                    \
-    uint8_t *a_ddr;                                                     \
-    a_ddr  = (PJP)->jp_LIndex + (((IDX) - 1) * (LFBTS));                \
-    COPY(i_ndex, a_ddr);                                                \
-    if (i_ndex == JU_LEASTBYTES((INDEX), (LFBTS)))                      \
-        return((PPvoid_t)(P_JV((PJP)->jp_Addr) + (IDX) - 1));           \
-}
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_1_15: CHECKINDEXNATIVE(uint8_t, Pjp, 15, Index);
-        case cJ1_JPIMMED_1_14: CHECKINDEXNATIVE(uint8_t, Pjp, 14, Index);
-        case cJ1_JPIMMED_1_13: CHECKINDEXNATIVE(uint8_t, Pjp, 13, Index);
-        case cJ1_JPIMMED_1_12: CHECKINDEXNATIVE(uint8_t, Pjp, 12, Index);
-        case cJ1_JPIMMED_1_11: CHECKINDEXNATIVE(uint8_t, Pjp, 11, Index);
-        case cJ1_JPIMMED_1_10: CHECKINDEXNATIVE(uint8_t, Pjp, 10, Index);
-        case cJ1_JPIMMED_1_09: CHECKINDEXNATIVE(uint8_t, Pjp,  9, Index);
-        case cJ1_JPIMMED_1_08: CHECKINDEXNATIVE(uint8_t, Pjp,  8, Index);
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_1_07: CHECKINDEXNATIVE(uint8_t, Pjp,  7, Index);
-        case cJU_JPIMMED_1_06: CHECKINDEXNATIVE(uint8_t, Pjp,  6, Index);
-        case cJU_JPIMMED_1_05: CHECKINDEXNATIVE(uint8_t, Pjp,  5, Index);
-        case cJU_JPIMMED_1_04: CHECKINDEXNATIVE(uint8_t, Pjp,  4, Index);
-#endif
-        case cJU_JPIMMED_1_03: CHECKINDEXNATIVE(uint8_t, Pjp,  3, Index);
-        case cJU_JPIMMED_1_02: CHECKINDEXNATIVE(uint8_t, Pjp,  2, Index);
-                               CHECKINDEXNATIVE(uint8_t, Pjp,  1, Index);
-        break;
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_2_07: CHECKINDEXNATIVE(uint16_t, Pjp, 7, Index);
-        case cJ1_JPIMMED_2_06: CHECKINDEXNATIVE(uint16_t, Pjp, 6, Index);
-        case cJ1_JPIMMED_2_05: CHECKINDEXNATIVE(uint16_t, Pjp, 5, Index);
-        case cJ1_JPIMMED_2_04: CHECKINDEXNATIVE(uint16_t, Pjp, 4, Index);
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_2_03: CHECKINDEXNATIVE(uint16_t, Pjp, 3, Index);
-        case cJU_JPIMMED_2_02: CHECKINDEXNATIVE(uint16_t, Pjp, 2, Index);
-                               CHECKINDEXNATIVE(uint16_t, Pjp, 1, Index);
-        break;
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_3_05: 
-            CHECKLEAFNONNAT(3, Pjp, Index, 5, JU_COPY3_PINDEX_TO_LONG);
-        case cJ1_JPIMMED_3_04:
-            CHECKLEAFNONNAT(3, Pjp, Index, 4, JU_COPY3_PINDEX_TO_LONG);
-        case cJ1_JPIMMED_3_03:
-            CHECKLEAFNONNAT(3, Pjp, Index, 3, JU_COPY3_PINDEX_TO_LONG);
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_3_02:
-            CHECKLEAFNONNAT(3, Pjp, Index, 2, JU_COPY3_PINDEX_TO_LONG);
-            CHECKLEAFNONNAT(3, Pjp, Index, 1, JU_COPY3_PINDEX_TO_LONG);
-            break;
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-
-        case cJ1_JPIMMED_4_03: CHECKINDEXNATIVE(uint32_t, Pjp, 3, Index);
-        case cJ1_JPIMMED_4_02: CHECKINDEXNATIVE(uint32_t, Pjp, 2, Index);
-                               CHECKINDEXNATIVE(uint32_t, Pjp, 1, Index);
-            break;
-
-        case cJ1_JPIMMED_5_03:
-            CHECKLEAFNONNAT(5, Pjp, Index, 3, JU_COPY5_PINDEX_TO_LONG);
-        case cJ1_JPIMMED_5_02:
-            CHECKLEAFNONNAT(5, Pjp, Index, 2, JU_COPY5_PINDEX_TO_LONG);
-            CHECKLEAFNONNAT(5, Pjp, Index, 1, JU_COPY5_PINDEX_TO_LONG);
-            break;
-
-        case cJ1_JPIMMED_6_02:
-            CHECKLEAFNONNAT(6, Pjp, Index, 2, JU_COPY6_PINDEX_TO_LONG);
-            CHECKLEAFNONNAT(6, Pjp, Index, 1, JU_COPY6_PINDEX_TO_LONG);
-            break;
-
-        case cJ1_JPIMMED_7_02:
-            CHECKLEAFNONNAT(7, Pjp, Index, 2, JU_COPY7_PINDEX_TO_LONG);
-            CHECKLEAFNONNAT(7, Pjp, Index, 1, JU_COPY7_PINDEX_TO_LONG);
-            break;
-
-#endif // (JUDY1 && JU_64BIT)
-
-
-// ****************************************************************************
-// INVALID JP TYPE:
-
-        default:
-
-ReturnCorrupt:
-
-#ifdef JUDYGETINLINE    // Pjpm is known to be non-null:
-            JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-#else
-            JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-#endif
-            JUDY1CODE(return(JERRI );)
-            JUDYLCODE(return(PPJERR);)
-
-        } // switch on JP type
-
-JUDY1CODE(return(0);)
-JUDYLCODE(return((PPvoid_t) NULL);)
-
-} // Judy1Test() / JudyLGet()
-
-
-#ifndef JUDYGETINLINE   // only compile the following function once:
-#ifdef DEBUG
-
-// ****************************************************************************
-// J U D Y   C H E C K   P O P
-//
-// Given a pointer to a Judy array, traverse the entire array to ensure
-// population counts add up correctly.  This can catch various coding errors.
-//
-// Since walking the entire tree is probably time-consuming, enable this
-// function by setting env parameter $CHECKPOP to first call at which to start
-// checking.  Note:  This function is called both from insert and delete code.
-//
-// Note:  Even though this function does nothing useful for LEAFW leaves, its
-// good practice to call it anyway, and cheap too.
-//
-// TBD:  This is a debug-only check function similar to JudyCheckSorted(), but
-// since it walks the tree it is Judy1/JudyL-specific and must live in a source
-// file that is built both ways.
-//
-// TBD:  As feared, enabling this code for every insert/delete makes Judy
-// deathly slow, even for a small tree (10K indexes).  Its not so bad if
-// present but disabled (<1% slowdown measured).  Still, should it be ifdefd
-// other than DEBUG and/or called less often?
-//
-// TBD:  Should this "population checker" be expanded to a comprehensive tree
-// checker?  It currently detects invalid LEAFW/JP types as well as inconsistent
-// pop1s.  Other possible checks, all based on essentially redundant data in
-// the Judy tree, include:
-//
-// - Zero LS bits in jp_Addr field.
-//
-// - Correct Dcd bits.
-//
-// - Consistent JP types (always descending down the tree).
-//
-// - Sorted linear lists in BranchLs and leaves (using JudyCheckSorted(), but
-//   ideally that function is already called wherever appropriate after any
-//   linear list is modified).
-//
-// - Any others possible?
-
-#include <stdlib.h>             // for getenv() and atol().
-
-static Word_t JudyCheckPopSM(Pjp_t Pjp, Word_t RootPop1);
-
-FUNCTION void JudyCheckPop(
-        Pvoid_t PArray)
-{
-static  bool_t  checked = FALSE;        // already checked env parameter.
-static  bool_t  enabled = FALSE;        // env parameter set.
-static  bool_t  active  = FALSE;        // calls >= callsmin.
-static  Word_t  callsmin;               // start point from $CHECKPOP.
-static  Word_t  calls = 0;              // times called so far.
-
-
-// CHECK FOR EXTERNAL ENABLING:
-
-        if (! checked)                  // only check once.
-        {
-            char * value;               // for getenv().
-
-            checked = TRUE;
-
-            if ((value = getenv("CHECKPOP")) == (char *) NULL)
-            {
-#ifdef notdef
-// Take this out because nightly tests want to be flavor-independent; its not
-// OK to emit special non-error output from the debug flavor:
-
-                (void) puts("JudyCheckPop() present but not enabled by "
-                            "$CHECKPOP env parameter; set it to the number of "
-                            "calls at which to begin checking");
-#endif
-                return;
-            }
-
-            callsmin = atol(value);     // note: non-number evaluates to 0.
-            enabled  = TRUE;
-
-            (void) printf("JudyCheckPop() present and enabled; callsmin = "
-                          "%lu\n", callsmin);
-        }
-        else if (! enabled) return;
-
-// Previously or just now enabled; check if non-active or newly active:
-
-        if (! active)
-        {
-            if (++calls < callsmin) return;
-
-            (void) printf("JudyCheckPop() activated at call %lu\n", calls);
-            active = TRUE;
-        }
-
-// IGNORE LEAFW AT TOP OF TREE:
-
-        if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-                return;
-
-// Check JPM pop0 against tree, recursively:
-//
-// Note:  The traversal code in JudyCheckPopSM() is simplest when the case
-// statement for each JP type compares the pop1 for that JP to its subtree (if
-// any) after traversing the subtree (thats the hard part) and adding up
-// actual pop1s.  A top branchs JP in the JPM does not have room for a
-// full-word pop1, so pass it in as a special case.
-
-        {
-            Pjpm_t Pjpm = P_JPM(PArray);
-            (void) JudyCheckPopSM(&(Pjpm->jpm_JP), Pjpm->jpm_Pop0 + 1);
-            return;
-        }
-
-} // JudyCheckPop()
-
-
-// ****************************************************************************
-// J U D Y   C H E C K   P O P   S M
-//
-// Recursive state machine (subroutine) for JudyCheckPop():  Given a Pjp (other
-// than JPNULL*; caller should shortcut) and the root population for top-level
-// branches, check the subtrees actual pop1 against its nominal value, and
-// return the total pop1 for the subtree.
-//
-// Note:  Expect RootPop1 to be ignored at lower levels, so pass down 0, which
-// should pop an assertion if this expectation is violated.
-
-FUNCTION static Word_t JudyCheckPopSM(
-        Pjp_t  Pjp,             // top of subtree.
-        Word_t RootPop1)        // whole array, for top-level branches only.
-{
-        Word_t pop1_jp;         // nominal population from the JP.
-        Word_t pop1 = 0;        // actual population at this level.
-        Word_t offset;          // in a branch.
-
-#define PREPBRANCH(cPopBytes,Next) \
-        pop1_jp = JU_JPBRANCH_POP0(Pjp, cPopBytes) + 1; goto Next
-
-assert((((Word_t) (Pjp->jp_Addr)) & 7) == 3);
-        switch (JU_JPTYPE(Pjp))
-        {
-
-        case cJU_JPBRANCH_L2: PREPBRANCH(2, BranchL);
-        case cJU_JPBRANCH_L3: PREPBRANCH(3, BranchL);
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_L4: PREPBRANCH(4, BranchL);
-        case cJU_JPBRANCH_L5: PREPBRANCH(5, BranchL);
-        case cJU_JPBRANCH_L6: PREPBRANCH(6, BranchL);
-        case cJU_JPBRANCH_L7: PREPBRANCH(7, BranchL);
-#endif
-        case cJU_JPBRANCH_L:  pop1_jp = RootPop1;
-        {
-            Pjbl_t Pjbl;
-BranchL:
-            Pjbl = P_JBL(Pjp->jp_Addr);
-
-            for (offset = 0; offset < (Pjbl->jbl_NumJPs); ++offset)
-                pop1 += JudyCheckPopSM((Pjbl->jbl_jp) + offset, 0);
-
-            assert(pop1_jp == pop1);
-            return(pop1);
-        }
-
-        case cJU_JPBRANCH_B2: PREPBRANCH(2, BranchB);
-        case cJU_JPBRANCH_B3: PREPBRANCH(3, BranchB);
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_B4: PREPBRANCH(4, BranchB);
-        case cJU_JPBRANCH_B5: PREPBRANCH(5, BranchB);
-        case cJU_JPBRANCH_B6: PREPBRANCH(6, BranchB);
-        case cJU_JPBRANCH_B7: PREPBRANCH(7, BranchB);
-#endif
-        case cJU_JPBRANCH_B:  pop1_jp = RootPop1;
-        {
-            Word_t subexp;
-            Word_t jpcount;
-            Pjbb_t Pjbb;
-BranchB:
-            Pjbb = P_JBB(Pjp->jp_Addr);
-
-            for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)
-            {
-                jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp));
-
-                for (offset = 0; offset < jpcount; ++offset)
-                {
-                    pop1 += JudyCheckPopSM(P_JP(JU_JBB_PJP(Pjbb, subexp))
-                                         + offset, 0);
-                }
-            }
-
-            assert(pop1_jp == pop1);
-            return(pop1);
-        }
-
-        case cJU_JPBRANCH_U2: PREPBRANCH(2, BranchU);
-        case cJU_JPBRANCH_U3: PREPBRANCH(3, BranchU);
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_U4: PREPBRANCH(4, BranchU);
-        case cJU_JPBRANCH_U5: PREPBRANCH(5, BranchU);
-        case cJU_JPBRANCH_U6: PREPBRANCH(6, BranchU);
-        case cJU_JPBRANCH_U7: PREPBRANCH(7, BranchU);
-#endif
-        case cJU_JPBRANCH_U:  pop1_jp = RootPop1;
-        {
-            Pjbu_t Pjbu;
-BranchU:
-            Pjbu = P_JBU(Pjp->jp_Addr);
-
-            for (offset = 0; offset < cJU_BRANCHUNUMJPS; ++offset)
-            {
-                if (((Pjbu->jbu_jp[offset].jp_Type) >= cJU_JPNULL1)
-                 && ((Pjbu->jbu_jp[offset].jp_Type) <= cJU_JPNULLMAX))
-                {
-                    continue;           // skip null JP to save time.
-                }
-
-                pop1 += JudyCheckPopSM((Pjbu->jbu_jp) + offset, 0);
-            }
-
-            assert(pop1_jp == pop1);
-            return(pop1);
-        }
-
-
-// -- Cases below here terminate and do not recurse. --
-//
-// For all of these cases except JPLEAF_B1, there is no way to check the JPs
-// pop1 against the object itself; just return the pop1; but for linear leaves,
-// a bounds check is possible.
-
-#define CHECKLEAF(MaxPop1)                              \
-        pop1 = JU_JPLEAF_POP0(Pjp) + 1;                 \
-        assert(pop1 >= 1);                              \
-        assert(pop1 <= (MaxPop1));                      \
-        return(pop1)
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-        case cJU_JPLEAF1:  CHECKLEAF(cJU_LEAF1_MAXPOP1);
-#endif
-        case cJU_JPLEAF2:  CHECKLEAF(cJU_LEAF2_MAXPOP1);
-        case cJU_JPLEAF3:  CHECKLEAF(cJU_LEAF3_MAXPOP1);
-#ifdef JU_64BIT
-        case cJU_JPLEAF4:  CHECKLEAF(cJU_LEAF4_MAXPOP1);
-        case cJU_JPLEAF5:  CHECKLEAF(cJU_LEAF5_MAXPOP1);
-        case cJU_JPLEAF6:  CHECKLEAF(cJU_LEAF6_MAXPOP1);
-        case cJU_JPLEAF7:  CHECKLEAF(cJU_LEAF7_MAXPOP1);
-#endif
-
-        case cJU_JPLEAF_B1:
-        {
-            Word_t subexp;
-            Pjlb_t Pjlb;
-
-            pop1_jp = JU_JPLEAF_POP0(Pjp) + 1;
-
-            Pjlb = P_JLB(Pjp->jp_Addr);
-
-            for (subexp = 0; subexp < cJU_NUMSUBEXPL; ++subexp)
-                pop1 += j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, subexp));
-
-            assert(pop1_jp == pop1);
-            return(pop1);
-        }
-
-        JUDY1CODE(case cJ1_JPFULLPOPU1: return(cJU_JPFULLPOPU1_POP0);)
-
-        case cJU_JPIMMED_1_01:  return(1);
-        case cJU_JPIMMED_2_01:  return(1);
-        case cJU_JPIMMED_3_01:  return(1);
-#ifdef JU_64BIT
-        case cJU_JPIMMED_4_01:  return(1);
-        case cJU_JPIMMED_5_01:  return(1);
-        case cJU_JPIMMED_6_01:  return(1);
-        case cJU_JPIMMED_7_01:  return(1);
-#endif
-
-        case cJU_JPIMMED_1_02:  return(2);
-        case cJU_JPIMMED_1_03:  return(3);
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_1_04:  return(4);
-        case cJU_JPIMMED_1_05:  return(5);
-        case cJU_JPIMMED_1_06:  return(6);
-        case cJU_JPIMMED_1_07:  return(7);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_1_08:  return(8);
-        case cJ1_JPIMMED_1_09:  return(9);
-        case cJ1_JPIMMED_1_10:  return(10);
-        case cJ1_JPIMMED_1_11:  return(11);
-        case cJ1_JPIMMED_1_12:  return(12);
-        case cJ1_JPIMMED_1_13:  return(13);
-        case cJ1_JPIMMED_1_14:  return(14);
-        case cJ1_JPIMMED_1_15:  return(15);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_2_02:  return(2);
-        case cJU_JPIMMED_2_03:  return(3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_2_04:  return(4);
-        case cJ1_JPIMMED_2_05:  return(5);
-        case cJ1_JPIMMED_2_06:  return(6);
-        case cJ1_JPIMMED_2_07:  return(7);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_3_02:  return(2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_3_03:  return(3);
-        case cJ1_JPIMMED_3_04:  return(4);
-        case cJ1_JPIMMED_3_05:  return(5);
-
-        case cJ1_JPIMMED_4_02:  return(2);
-        case cJ1_JPIMMED_4_03:  return(3);
-        case cJ1_JPIMMED_5_02:  return(2);
-        case cJ1_JPIMMED_5_03:  return(3);
-        case cJ1_JPIMMED_6_02:  return(2);
-        case cJ1_JPIMMED_7_02:  return(2);
-#endif
-
-        } // switch (JU_JPTYPE(Pjp))
-
-        assert(FALSE);          // unrecognized JP type => corruption.
-        return(0);              // to make some compilers happy.
-
-} // JudyCheckPopSM()
-
-#endif // DEBUG
-#endif // ! JUDYGETINLINE
diff --git a/libs/klib/judy/JudyHS.c b/libs/klib/judy/JudyHS.c
deleted file mode 100644
index aa9fbfa..0000000
--- a/libs/klib/judy/JudyHS.c
+++ /dev/null
@@ -1,770 +0,0 @@
-//=======================================================================
-//   Author Douglas L. Baskins, Dec 2003.
-//   Permission to use this code is freely granted, provided that this
-//   statement is retained.
-//   email - doug at sourcejudy.com -or- dougbaskins at yahoo.com
-//=======================================================================
-
-#include <string.h>                     // for memcmp(), memcpy()
-
-#include <Judy.h>                       // for JudyL* routines/macros
-
-/*
-   This routine is a very fast "string" version of an ADT that stores
-   (JudyHSIns()), retrieves (JudyHSGet()), deletes (JudyHSDel()) and
-   frees the entire ADT (JudyHSFreeArray()) strings.  It uses the "Judy
-   arrays" JudyL() API as the main workhorse.  The length of the string
-   is included in the calling parameters so that strings with embedded
-   \0s can be used.  The string lengths can be from 0 bytes to whatever
-   malloc() can handle (~2GB).
-
-   Compile:
-  
-      cc -O JudyHS.c -c         needs to link with -lJudy (libJudy.a)
-  
-      Note: in gcc version 3.3.1, -O2 generates faster code than -O
-      Note: in gcc version 3.3.2, -O3 generates faster code than -O2
-
-   NOTES:
-
-1) There may be some performance issues with 64 bit machines, because I
-   have not characterized that it yet.
-
-2) It appears that a modern CPU (>2Ghz) that the instruction times are
-   much faster that a RAM access, so building up a word from bytes takes
-   no longer that a whole word access.  I am taking advantage of this to
-   make this code endian neutral.  A side effect of this is strings do
-   not need to be aligned, nor tested to be on to a word boundry.  In
-   older and in slow (RISC) machines, this may be a performance issue.
-   I have given up trying to optimize for machines that have very slow
-   mpy, mod, variable shifts and call returns.
-
-3) JudyHS is very scalable from 1 string to billions (with enough RAM).
-   The memory usage is also scales with population.  I have attempted to
-   combine the best characteristics of JudyL arrays with Hashing methods
-   and well designed modern processors (such as the 1.3Ghz Intel
-   Centrino this is being written on).
-
-   HOW JudyHS WORKS: ( 4[8] means 4 bytes in 32 bit machine and 8 in 64)
-
-   A) A JudyL array is used to separate strings of equal lengths into
-   their own structures (a different hash table is used for each length
-   of string).  The additional time overhead is very near zero because
-   of the CPU cache.  The space efficiency is improved because the
-   length need not be stored with the string (ls_t).  The "JLHash" ADT
-   in the test program "StringCompare" is verification of both these
-   assumptions.
-
-   B) A 32 bit hash value is produced from the string.  Many thanks to
-   the Internet and the author (Bob Jenkins) for coming up with a very
-   good and fast universal string hash.  Next the 32 bit hash number is
-   used as an Index to another JudyL array.  Notice that one (1) JudyL
-   array is used as a hash table per each string length.  If there are
-   no hash collisions (normally) then the string is copied to a
-   structure (ls_t) along with room for storing a Value.  A flag is
-   added to the pointer to note it is pointing to a ls_t structure.
-   Since the lengths of the strings are the same, there is no need to
-   stored length of string in the ls_t structure.  This saves about a
-   word per string of memory.
-
-   C) When there is a hashing collision (very rare), a JudyL array is
-   used to decode the next 4[8] bytes of the string.  That is, the next
-   4[8] bytes of the string are used as the Index.  This process is
-   repeated until the remaining string is unique.  The remaining string
-   (if any) is stored in a (now smaller) ls_t structure.  If the
-   remaining string is less or equal to 4[8] bytes, then the ls_t
-   structure is not needed and the Value area in the JudyL array is
-   used.  A compile option -DDONOTUSEHASH is available to test this
-   structure without using hashing (only the JudyL tree is used).  This
-   is equivalent to having all strings hashed to the same bucket.  The
-   speed is still better than all other tree based ADTs I have tested.
-   An added benefit of this is a very fast "hash collision" resolving.
-   It could foil hackers that exploit the slow synonym (linked-list)
-   collision handling property used with most hashing algorithms.  If
-   this is not a necessary property, then a simpler ADT "JLHash" that is
-   documented the the test program "StringCompare.c" may be used with a
-   little loss of memory efficiency (because it includes the string
-   length with the ls_t structure).  JudyHS was written to be the
-   fastest, very scalable, memory efficient, general purpose string ADT
-   possible.  (However, I would like to eat those words someday). (dlb)
-
-*/
-
-#ifdef EXAMPLE_CODE
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <Judy.h>
-
-//#include "JudyHS.h"                   // for Judy.h without JudyHS*()
-
-// By Doug Baskins Apr 2004 - for JudyHS man page
-
-#define MAXLINE 1000000                 /* max length of line */
-char      Index[MAXLINE];               // string to check
-
-int     // Usage:  CheckDupLines < file
-main()
-{
-    Pvoid_t   PJArray = (PWord_t)NULL;  // Judy array.
-    PWord_t   PValue;                   // ^ Judy array element.
-    Word_t    Bytes;                    // size of JudyHS array.
-    Word_t    LineNumb = 0;             // current line number
-    Word_t    Dups = 0;                 // number of duplicate lines
-
-    while (fgets(Index, MAXLINE, stdin) != (char *)NULL)
-    {
-        LineNumb++;                     // line number
-
-//      store string into array
-        JHSI(PValue, PJArray, Index, strlen(Index)); 
-        if (*PValue)                    // check if duplicate
-        {
-            Dups++;                     // count duplicates
-            printf("Duplicate lines %lu:%lu:%s", *PValue, LineNumb, Index);
-        }
-        else
-        {
-            *PValue = LineNumb;         // store Line number
-        }
-    }
-    printf("%lu Duplicates, free JudyHS array of %lu Lines\n", 
-                    Dups, LineNumb - Dups);
-    JHSFA(Bytes, PJArray);              // free array
-    printf("The JudyHS array allocated %lu bytes of memory\n", Bytes);
-    return (0);
-}
-#endif // EXAMPLE_CODE
-
-// Note:  Use JLAP_INVALID, which is non-zero, to mark pointers to a ls_t
-// This makes it compatable with previous versions of JudyL()
-
-#define IS_PLS(PLS)     (((Word_t) (PLS)) & JLAP_INVALID)
-#define CLEAR_PLS(PLS)  (((Word_t) (PLS)) & (~JLAP_INVALID))
-#define SET_PLS(PLS)    (((Word_t) (PLS)) | JLAP_INVALID)
-
-#define WORDSIZE     (sizeof(Word_t))
-
-// this is the struct used for "leaf" strings.  Note that
-// the Value is followed by a "variable" length ls_String array.
-//
-typedef struct L_EAFSTRING
-{
-    Word_t    ls_Value;                 // Value area (cannot change size)
-    uint8_t   ls_String[WORDSIZE];      // to fill out to a Word_t size
-} ls_t     , *Pls_t;
-
-#define LS_STRUCTOVD     (sizeof(ls_t) - WORDSIZE)
-
-// Calculate size of ls_t including the string of length of LEN.
-//
-#define LS_WORDLEN(LEN)  (((LEN) + LS_STRUCTOVD + WORDSIZE - 1) / WORDSIZE)
-
-// Copy from 0..4[8] bytes from string to a Word_t
-// NOTE: the copy in in little-endian order to take advantage of improved 
-// memory efficiency of JudyLIns() with smaller numbers
-//
-#define        COPYSTRING4toWORD(WORD,STR,LEN)          \
-{                                                       \
-    WORD = 0;                                           \
-    switch(LEN)                                         \
-    {                                                   \
-    default:    /* four and greater */                  \
-    case 4:                                             \
-        WORD += (Word_t)(((uint8_t *)(STR))[3] << 24);  \
-    case 3:                                             \
-        WORD += (Word_t)(((uint8_t *)(STR))[2] << 16);  \
-    case 2:                                             \
-        WORD += (Word_t)(((uint8_t *)(STR))[1] <<  8);  \
-    case 1:                                             \
-        WORD += (Word_t)(((uint8_t *)(STR))[0]);        \
-    case 0: break;                                      \
-    }                                                   \
-}
-
-#ifdef JU_64BIT
-
-// copy from 0..8 bytes from string to Word_t
-//
-#define        COPYSTRING8toWORD(WORD,STR,LEN)          \
-{                                                       \
-    WORD = 0UL;                                         \
-    switch(LEN)                                         \
-    {                                                   \
-    default:    /* eight and greater */                 \
-    case 8:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[7] << 56);  \
-    case 7:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[6] << 48);  \
-    case 6:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[5] << 40);  \
-    case 5:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[4] << 32);  \
-    case 4:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[3] << 24);  \
-    case 3:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[2] << 16);  \
-    case 2:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[1] <<  8);  \
-    case 1:                                             \
-        WORD += ((Word_t)((uint8_t *)(STR))[0]);        \
-    case 0: break;                                      \
-    }                                                   \
-}
-
-#define COPYSTRINGtoWORD COPYSTRING8toWORD
-
-#else  // JU_32BIT
-
-#define COPYSTRINGtoWORD COPYSTRING4toWORD
-
-#endif // JU_32BIT
-
-// set JError_t locally
-
-#define JU_SET_ERRNO(PJERROR, JERRNO)           \
-{                                               \
-    if (PJERROR != (PJError_t) NULL)            \
-    {                                           \
-        if (JERRNO)                             \
-            JU_ERRNO(PJError) = (JERRNO);       \
-        JU_ERRID(PJERROR) = __LINE__;           \
-    }                                           \
-}
-
-//=======================================================================
-// This routine must hash string to 24..32 bits.  The "goodness" of
-// the hash is not as important as its speed.
-//=======================================================================
-
-// hash to no more than 32 bits
-
-// extern Word_t gHmask; for hash bits experiments
-
-#define JUDYHASHSTR(HVALUE,STRING,LENGTH)       \
-{                                               \
-    uint8_t *p_ = (uint8_t *)(STRING);          \
-    uint8_t *q_ = p_ + (LENGTH);                \
-    uint32_t c_ = 0;                            \
-    for (; p_ != q_; ++p_)                      \
-    {                                           \
-        c_ = (c_ * 31) + *p_;                   \
-    }                                           \
-/*  c_ &= gHmask;   see above   */              \
-    (HVALUE) = c_;                              \
-}
-
-// Find String of Len in JudyHS structure, return pointer to associated Value
-
-PPvoid_t
-JudyHSGet(Pcvoid_t PArray,              // pointer (^) to structure
-           void * Str,                  // pointer to string
-           Word_t Len                   // length of string
-    )
-{
-    uint8_t  *String = (uint8_t *)Str;
-    PPvoid_t  PPValue;                  // pointer to Value
-    Word_t    Index;                    // 4[8] bytes of String
-
-    JLG(PPValue, PArray, Len);          // find hash table for strings of Len
-    if (PPValue == (PPvoid_t) NULL)
-        return ((PPvoid_t) NULL);       // no strings of this Len
-
-//  check for caller error (null pointer)
-//
-    if ((String == (void *) NULL) && (Len != 0))
-        return ((PPvoid_t) NULL);       // avoid null-pointer dereference
-
-#ifndef DONOTUSEHASH
-    if (Len > WORDSIZE)                 // Hash table not necessary with short
-    {
-        uint32_t  HValue;               // hash of input string
-        JUDYHASHSTR(HValue, String, Len);       // hash to no more than 32 bits
-        JLG(PPValue, *PPValue, (Word_t)HValue); // get ^ to hash bucket
-        if (PPValue == (PPvoid_t) NULL)
-            return ((PPvoid_t) NULL);   // no entry in Hash table
-    }
-#endif // DONOTUSEHASH
-
-/*
-  Each JudyL array decodes 4[8] bytes of the string.  Since the hash
-  collisions occur very infrequently, the performance is not important.
-  However, even if the Hash code is not used this method still is
-  significantly faster than common tree methods (AVL, Red-Black, Splay,
-  b-tree, etc..).  You can compare it yourself with #define DONOTUSEHASH
-  1 or putting -DDONOTUSEHASH in the cc line.  Use the "StringCompare.c"
-  code to compare (9Dec2003 dlb).
-*/
-    while (Len > WORDSIZE)              // traverse tree of JudyL arrays
-    {
-        if (IS_PLS(*PPValue))           // ^ to JudyL array or ls_t struct?
-        {
-            Pls_t     Pls;              // ls_t struct, termination of tree
-            Pls = (Pls_t) CLEAR_PLS(*PPValue);  // remove flag from ^
-
-//          if remaining string matches, return ^ to Value, else NULL
-
-            if (memcmp(String, Pls->ls_String, Len) == 0)
-                return ((PPvoid_t) (&(Pls->ls_Value)));
-            else
-                return ((PPvoid_t) NULL);       // string does not match
-        }
-        else
-        {
-            COPYSTRINGtoWORD(Index, String, WORDSIZE);
-
-            JLG(PPValue, *PPValue, Index);      // decode next 4[8] bytes
-            if (PPValue == (PPvoid_t) NULL)     // if NULL array, bail out
-                return ((PPvoid_t) NULL);       // string does not match
-
-            String += WORDSIZE;                 // advance
-            Len -= WORDSIZE;
-        }
-    }
-
-//  Get remaining 1..4[8] bytes left in string
-
-    COPYSTRINGtoWORD(Index, String, Len);
-    JLG(PPValue, *PPValue, Index);      // decode last 1-4[8] bytes
-    return (PPValue);
-}
-
-// Add string to a tree of JudyL arrays (all lengths must be same)
-
-static PPvoid_t
-insStrJudyLTree(uint8_t * String,      // string to add to tree of JudyL arrays
-                 Word_t Len,            // length of string
-                 PPvoid_t PPValue,      // pointer to root pointer
-                 PJError_t PJError      // for returning error info
-    )
-{
-    Word_t    Index;                    // next 4[8] bytes of String
-
-    while (Len > WORDSIZE)              // add to JudyL tree
-    {
-//      CASE 1, pointer is to a NULL, make a new ls_t leaf
-
-        if (*PPValue == (Pvoid_t)NULL)
-        {
-            Pls_t     Pls;              // memory for a ls_t
-            Pls = (Pls_t) JudyMalloc(LS_WORDLEN(Len));
-            if (Pls == NULL)
-            {
-                JU_SET_ERRNO(PJError, JU_ERRNO_NOMEM);
-                return (PPJERR);
-            }
-            Pls->ls_Value = 0;                          // clear Value word
-            memcpy(Pls->ls_String, String, Len);        // copy to new struct
-            *PPValue = (Pvoid_t)SET_PLS(Pls);           // mark pointer
-            return ((PPvoid_t) (&Pls->ls_Value));       // return ^ to Value
-        }                                               // no exit here
-//      CASE 2: is a ls_t, free (and shorten), then decode into JudyL tree
-
-        if (IS_PLS(*PPValue))                   // pointer to a ls_t? (leaf)
-        {
-            Pls_t     Pls;                      // ^ to ls_t
-            uint8_t  *String0;                  // ^ to string in ls_t
-            Word_t    Index0;                   // 4[8] bytes in string
-            Word_t    FreeLen;                  // length of ls_t
-            PPvoid_t  PPsplit;
-
-            FreeLen = LS_WORDLEN(Len);          // length of ls_t
-
-            Pls = (Pls_t) CLEAR_PLS(*PPValue);  // demangle ^ to ls_t
-            String0 = Pls->ls_String;
-            if (memcmp(String, String0, Len) == 0)      // check if match?
-            {
-                return ((PPvoid_t) (&Pls->ls_Value));   // yes, duplicate
-            }
-
-            *PPValue = NULL;            // clear ^ to ls_t and make JudyL
-
-//          This do loop is technically not required, saves multiple JudyFree()
-//          when storing already sorted strings into structure
-
-            do                          // decode next 4[8] bytes of string
-            {                           // with a JudyL array
-//              Note: string0 is always aligned
-
-                COPYSTRINGtoWORD(Index0, String0, WORDSIZE);
-                String0 += WORDSIZE;
-                COPYSTRINGtoWORD(Index, String, WORDSIZE);
-                String += WORDSIZE;
-                Len -= WORDSIZE;
-                PPsplit = PPValue;      // save for split below
-                PPValue = JudyLIns(PPValue, Index0, PJError);
-                if (PPValue == PPJERR)
-                {
-                    JU_SET_ERRNO(PJError, 0);
-                    return (PPJERR);
-                }
-
-            } while ((Index0 == Index) && (Len > WORDSIZE));
-
-//          finish storing remainder of string that was in the ls_t
-
-            PPValue = insStrJudyLTree(String0, Len, PPValue, PJError);
-            if (PPValue == PPJERR)
-            {
-                return (PPJERR);
-            }
-//          copy old Value to Value in new struct
-
-            *(PWord_t)PPValue = Pls->ls_Value;
-
-//          free the string buffer (ls_t)
-
-            JudyFree((Pvoid_t)Pls, FreeLen);
-            PPValue = JudyLIns(PPsplit, Index, PJError);
-            if (PPValue == PPJERR)
-            {
-                JU_SET_ERRNO(PJError, 0);
-                return (PPValue);
-            }
-
-//          finish remainder of newly inserted string
-
-            PPValue = insStrJudyLTree(String, Len, PPValue, PJError);
-            return (PPValue);
-        }                               // no exit here
-//      CASE 3, more JudyL arrays, decode to next tree
-
-        COPYSTRINGtoWORD(Index, String, WORDSIZE);
-        Len -= WORDSIZE;
-        String += WORDSIZE;
-
-        PPValue = JudyLIns(PPValue, Index, PJError);    // next 4[8] bytes
-        if (PPValue == PPJERR)
-        {
-            JU_SET_ERRNO(PJError, 0);
-            return (PPValue);
-        }
-    }
-//  this is done outside of loop so "Len" can be an unsigned number
-
-    COPYSTRINGtoWORD(Index, String, Len);
-    PPValue = JudyLIns(PPValue, Index, PJError);    // remaining 4[8] bytes
-
-    return (PPValue);
-}
-
-
-// Insert string to JudyHS structure, return pointer to associated Value
-
-PPvoid_t
-JudyHSIns(PPvoid_t PPArray,             // ^ to JudyHashArray name
-           void * Str,                  // pointer to string
-           Word_t Len,                  // length of string
-           PJError_t PJError            // optional, for returning error info
-    )
-{
-    uint8_t * String = (uint8_t *)Str;
-    PPvoid_t  PPValue;
-
-//  string can only be NULL if Len is 0.
-
-    if ((String == (uint8_t *) NULL) && (Len != 0UL))
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (PPJERR);
-    }
-    JLG(PPValue, *PPArray, Len);        // JudyL hash table for strings of Len
-    if (PPValue == (PPvoid_t) NULL)     // make new if missing, (very rare)
-    {
-        PPValue = JudyLIns(PPArray, Len, PJError);
-        if (PPValue == PPJERR)
-        {
-            JU_SET_ERRNO(PJError, 0);
-            return (PPJERR);
-        }
-    }
-#ifndef DONOTUSEHASH
-    if (Len > WORDSIZE)
-    {
-        uint32_t  HValue;                       // hash of input string
-        JUDYHASHSTR(HValue, String, Len);       // hash to no more than 32 bits
-        PPValue = JudyLIns(PPValue, (Word_t)HValue, PJError);
-        if (PPValue == PPJERR)
-        {
-            JU_SET_ERRNO(PJError, 0);
-            return (PPJERR);
-        }
-    }
-#endif // DONOTUSEHASH
-
-    PPValue = insStrJudyLTree(String, Len, PPValue, PJError); // add string 
-    return (PPValue);                   //  ^  to Value
-}
-
-// Delete string from tree of JudyL arrays (all Lens must be same)
-
-static int
-delStrJudyLTree(uint8_t * String,      // delete from tree of JudyL arrays
-                 Word_t Len,            // length of string
-                 PPvoid_t PPValue,      // ^ to hash bucket
-                 PJError_t PJError      // for returning error info
-    )
-{
-    PPvoid_t  PPValueN;                 // next pointer
-    Word_t    Index;
-    int       Ret;                      // -1=failed, 1=success, 2=quit del
-
-    if (IS_PLS(*PPValue))               // is pointer to ls_t?
-    {
-        Pls_t     Pls;
-        Pls = (Pls_t) CLEAR_PLS(*PPValue);      // demangle pointer
-        JudyFree((Pvoid_t)Pls, LS_WORDLEN(Len));        // free the ls_t
-
-        *PPValue = (Pvoid_t)NULL;       // clean pointer
-        return (1);                     // successfully deleted
-    }
-
-    if (Len > WORDSIZE)                 // delete from JudyL tree, not leaf
-    {
-        COPYSTRINGtoWORD(Index, String, WORDSIZE);      // get Index
-        JLG(PPValueN, *PPValue, Index); // get pointer to next JudyL array
-
-        String += WORDSIZE;             // advance to next 4[8] bytes
-        Len -= WORDSIZE;
-
-        Ret = delStrJudyLTree(String, Len, PPValueN, PJError);
-        if (Ret != 1) return(Ret);
-
-        if (*PPValueN == (PPvoid_t) NULL)
-        {
-//          delete JudyL element from tree
-
-            Ret = JudyLDel(PPValue, Index, PJError);
-        }
-    }
-    else
-    {
-        COPYSTRINGtoWORD(Index, String, Len);   // get leaf element
-
-//      delete last 1-4[8] bytes from leaf element
-
-        Ret = JudyLDel(PPValue, Index, PJError); 
-    }
-    return (Ret);
-}
-
-// Delete string from JHS structure
-
-int
-JudyHSDel(PPvoid_t PPArray,             // ^ to JudyHashArray struct
-           void * Str,                  // pointer to string
-           Word_t Len,                  // length of string
-           PJError_t PJError            // optional, for returning error info
-    )
-{
-    uint8_t * String = (uint8_t *)Str;
-    PPvoid_t  PPBucket, PPHtble;
-    int       Ret;                      // return bool from Delete routine
-#ifndef DONOTUSEHASH
-    uint32_t  HValue = 0;               // hash value of input string
-#endif // DONOTUSEHASH
-
-    if (PPArray == NULL)
-        return (0);                     // no pointer, return not found
-
-//  This is a little slower than optimum method, but not much in new CPU
-//  Verify that string is in the structure -- simplifies future assumptions
-
-    if (JudyHSGet(*PPArray, String, Len) == (PPvoid_t) NULL)
-        return (0);                     // string not found, return
-
-//  string is in structure, so testing for absence is not necessary
-
-    JLG(PPHtble, *PPArray, Len);        // JudyL hash table for strings of Len
-
-#ifdef DONOTUSEHASH
-    PPBucket = PPHtble;                 // simulate below code
-#else  // USEHASH
-    if (Len > WORDSIZE)
-    {
-        JUDYHASHSTR(HValue, String, Len);       // hash to no more than 32 bits
-
-//  get pointer to hash bucket
-
-        JLG(PPBucket, *PPHtble, (Word_t)HValue);
-    }
-    else
-    {
-        PPBucket = PPHtble;             // no bucket to JLGet
-    }
-#endif // USEHASH
-
-// delete from JudyL tree
-//
-    Ret = delStrJudyLTree(String, Len, PPBucket, PJError);
-    if (Ret != 1)
-    {
-        JU_SET_ERRNO(PJError, 0);
-        return(-1);
-    }
-//  handle case of missing JudyL array from hash table and length table
-
-    if (*PPBucket == (Pvoid_t)NULL)     // if JudyL tree gone
-    {
-#ifndef DONOTUSEHASH
-        if (Len > WORDSIZE)
-        {
-//          delete entry in Hash table
-
-            Ret = JudyLDel(PPHtble, (Word_t)HValue, PJError); 
-            if (Ret != 1)
-            {
-                JU_SET_ERRNO(PJError, 0);
-                return(-1);
-            }
-        }
-#endif // USEHASH
-        if (*PPHtble == (PPvoid_t) NULL)        // if Hash table gone
-        {
-//          delete entry from the String length table
-
-            Ret = JudyLDel(PPArray, Len, PJError); 
-            if (Ret != 1)
-            {
-                JU_SET_ERRNO(PJError, 0);
-                return(-1);
-            }
-        }
-    }
-    return (1);                         // success
-}
-
-static Word_t
-delJudyLTree(PPvoid_t PPValue,                 // ^ to JudyL root pointer
-              Word_t Len,                       // length of string
-              PJError_t PJError)                // for returning error info
-{
-    Word_t    bytes_freed = 0;                  // bytes freed at point
-    Word_t    bytes_total = 0;                  // accumulated bytes freed
-    PPvoid_t  PPValueN;
-
-//  Pointer is to another tree of JudyL arrays or ls_t struct
-
-    if (Len > WORDSIZE)                         // more depth to tree
-    {
-        Word_t NEntry;
-
-//      Pointer is to a ls_t struct
-
-        if (IS_PLS(*PPValue)) 
-        {
-            Pls_t   Pls;
-            Word_t  freewords;
-
-            freewords = LS_WORDLEN(Len);        // calculate length
-            Pls = (Pls_t)CLEAR_PLS(*PPValue);   // demangle pointer
-
-//        *PPValue = (Pvoid_t)NULL;               // clean pointer
-           JudyFree((Pvoid_t)Pls, freewords);   // free the ls_t
-
-            return(freewords * WORDSIZE);
-        }
-//      else
-//      Walk all the entrys in the JudyL array
-
-        NEntry = 0;                             // start at beginning
-        for (PPValueN = JudyLFirst(*PPValue, &NEntry, PJError);
-            (PPValueN != (PPvoid_t) NULL) && (PPValueN != PPJERR);
-             PPValueN = JudyLNext(*PPValue, &NEntry, PJError))
-        {
-//          recurse to the next level in the tree of arrays
-
-            bytes_freed = delJudyLTree(PPValueN, Len - WORDSIZE, PJError);
-            if (bytes_freed == JERR) return(JERR);
-            bytes_total += bytes_freed;
-        }
-        if (PPValueN == PPJERR) return(JERR);
-
-//      now free this JudyL array
-
-        bytes_freed = JudyLFreeArray(PPValue, PJError);
-        if (bytes_freed == JERR) return(JERR);
-        bytes_total += bytes_freed;
-
-        return(bytes_total);  // return amount freed
-    }
-//  else
-
-//  Pointer to simple JudyL array
-
-    bytes_freed = JudyLFreeArray(PPValue, PJError);
-
-    return(bytes_freed);
-}
-
-
-Word_t                                  // bytes freed
-JudyHSFreeArray(PPvoid_t PPArray,       // ^ to JudyHashArray struct
-           PJError_t PJError            // optional, for returning error info
-    )
-{
-    Word_t    Len;                      // start at beginning
-    Word_t    bytes_freed;              // bytes freed at this level.
-    Word_t    bytes_total;              // bytes total at all levels.
-    PPvoid_t  PPHtble;
-
-    if (PPArray == NULL) 
-        return (0);                     // no pointer, return none
-
-//  Walk the string length table for subsidary hash structs
-//  NOTE: This is necessary to determine the depth of the tree
-
-    bytes_freed = 0; 
-    bytes_total = 0;
-    Len = 0;                            // walk to length table
-
-    for (PPHtble  = JudyLFirst(*PPArray, &Len, PJError);
-        (PPHtble != (PPvoid_t) NULL) && (PPHtble != PPJERR);
-         PPHtble  = JudyLNext(*PPArray, &Len, PJError))
-    {
-        PPvoid_t PPValueH;
-
-#ifndef DONOTUSEHASH
-        if (Len > WORDSIZE)
-        {
-            Word_t HEntry = 0;              // walk the hash tables
-
-            for (PPValueH  = JudyLFirst(*PPHtble, &HEntry, PJError);
-                (PPValueH != (PPvoid_t) NULL) && (PPValueH != PPJERR);
-                 PPValueH  = JudyLNext(*PPHtble, &HEntry, PJError))
-            {
-                bytes_freed = delJudyLTree(PPValueH, Len, PJError);
-                if (bytes_freed == JERR) return(JERR);
-                bytes_total += bytes_freed;
-            }
-
-            if (PPValueH == PPJERR) return(JERR);
-
-//          free the Hash table for this length of string
-
-            bytes_freed = JudyLFreeArray(PPHtble, PJError);
-            if (bytes_freed == JERR) return(JERR);
-            bytes_total += bytes_freed;
-        }
-        else
-#endif // DONOTUSEHASH
-        {
-                PPValueH = PPHtble;     // simulate hash table
-
-                bytes_freed = delJudyLTree(PPValueH, Len, PJError);
-                if (bytes_freed == JERR) return(JERR);
-                bytes_total += bytes_freed;
-        }
-    }
-    if (PPHtble == PPJERR) return(JERR);
-
-//  free the length table
-
-    bytes_freed = JudyLFreeArray(PPArray, PJError);
-    if (bytes_freed == JERR) return(JERR);
-
-    bytes_total += bytes_freed;
-
-    return(bytes_total);                // return bytes freed
-}
diff --git a/libs/klib/judy/JudyHS.h b/libs/klib/judy/JudyHS.h
deleted file mode 100644
index b403501..0000000
--- a/libs/klib/judy/JudyHS.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// ****************************************************************************
-// Quick and dirty header file for use with old Judy.h without JudyHS defs
-// May 2004 (dlb) - No copyright or license -- it is free period.
-
-#include <stdint.h>
-
-// ****************************************************************************
-// JUDYHSL MACROS:
-
-#define JHSI(PV,    PArray,   PIndex,   Count)                          \
-        J_2P(PV, (&(PArray)), PIndex,   Count, JudyHSIns, "JudyHSIns")
-#define JHSG(PV,    PArray,   PIndex,   Count)                          \
-        (PV) = (Pvoid_t) JudyHSGet(PArray, PIndex, Count)
-#define JHSD(Rc,    PArray,   PIndex,   Count)                          \
-        J_2I(Rc, (&(PArray)), PIndex, Count, JudyHSDel, "JudyHSDel")
-#define JHSFA(Rc,    PArray)                                            \
-        J_0I(Rc, (&(PArray)), JudyHSFreeArray, "JudyHSFreeArray")
-
-// ****************************************************************************
-// JUDY memory interface to malloc() FUNCTIONS:
-
-extern Word_t JudyMalloc(Word_t);               // words reqd => words allocd.
-extern Word_t JudyMallocVirtual(Word_t);        // words reqd => words allocd.
-extern void   JudyFree(Pvoid_t, Word_t);        // block to free and its size in words.
-extern void   JudyFreeVirtual(Pvoid_t, Word_t); // block to free and its size in words.
-
-// ****************************************************************************
-// JUDYHS FUNCTIONS:
-
-extern PPvoid_t JudyHSGet(       Pcvoid_t,  void *, Word_t);
-extern PPvoid_t JudyHSIns(       PPvoid_t,  void *, Word_t, P_JE);
-extern int      JudyHSDel(       PPvoid_t,  void *, Word_t, P_JE);
-extern Word_t   JudyHSFreeArray( PPvoid_t,                  P_JE);
-
-extern uint32_t JudyHashStr(                void *, Word_t);
diff --git a/libs/klib/judy/JudyIns.c b/libs/klib/judy/JudyIns.c
deleted file mode 100644
index d90820b..0000000
--- a/libs/klib/judy/JudyIns.c
+++ /dev/null
@@ -1,1871 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy1Set() and JudyLIns() functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// TBD:  Should some of the assertions here be converted to product code that
-// returns JU_ERRNO_CORRUPT?
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-// Note:  Call JudyCheckPop() even before "already inserted" returns, to catch
-// population errors; see fix in 4.84:
-
-DBGCODE(extern void JudyCheckPop(Pvoid_t PArray);)
-DBGCODE(extern void JudyCheckSorted(Pjll_t Pjll, Word_t Pop1, long IndexSize);)
-
-#ifdef TRACEJP
-#include "JudyPrintJP.c"
-#endif
-
-
-// These are defined to generic values in JudyCommon/JudyPrivateTypes.h:
-//
-// TBD:  These should be exported from a header file, but perhaps not, as they
-// are only used here, and exported from Judy*Decascade, which is a separate
-// file for profiling reasons (to prevent inlining), but which potentially
-// could be merged with this file, either in SoftCM or at compile-time.
-
-#ifdef JUDY1
-extern int j__udy1CreateBranchB(Pjp_t, Pjp_t, uint8_t *, Word_t, Pvoid_t);
-extern int j__udy1CreateBranchU(Pjp_t, Pvoid_t);
-
-#ifndef JU_64BIT
-extern int j__udy1Cascade1(Pjp_t, Pvoid_t);
-#endif
-extern int j__udy1Cascade2(Pjp_t, Pvoid_t);
-extern int j__udy1Cascade3(Pjp_t, Pvoid_t);
-#ifdef JU_64BIT
-extern int j__udy1Cascade4(Pjp_t, Pvoid_t);
-extern int j__udy1Cascade5(Pjp_t, Pvoid_t);
-extern int j__udy1Cascade6(Pjp_t, Pvoid_t);
-extern int j__udy1Cascade7(Pjp_t, Pvoid_t);
-#endif
-extern int j__udy1CascadeL(Pjp_t, Pvoid_t);
-
-extern int j__udy1InsertBranch(Pjp_t Pjp, Word_t Index, Word_t Btype, Pjpm_t);
-
-#else // JUDYL
-
-extern int j__udyLCreateBranchB(Pjp_t, Pjp_t, uint8_t *, Word_t, Pvoid_t);
-extern int j__udyLCreateBranchU(Pjp_t, Pvoid_t);
-
-extern int j__udyLCascade1(Pjp_t, Pvoid_t);
-extern int j__udyLCascade2(Pjp_t, Pvoid_t);
-extern int j__udyLCascade3(Pjp_t, Pvoid_t);
-#ifdef JU_64BIT
-extern int j__udyLCascade4(Pjp_t, Pvoid_t);
-extern int j__udyLCascade5(Pjp_t, Pvoid_t);
-extern int j__udyLCascade6(Pjp_t, Pvoid_t);
-extern int j__udyLCascade7(Pjp_t, Pvoid_t);
-#endif
-extern int j__udyLCascadeL(Pjp_t, Pvoid_t);
-
-extern int j__udyLInsertBranch(Pjp_t Pjp, Word_t Index, Word_t Btype, Pjpm_t);
-#endif
-
-
-// ****************************************************************************
-// MACROS FOR COMMON CODE:
-//
-// Check if Index is an outlier to (that is, not a member of) this expanse:
-//
-// An outlier is an Index in-the-expanse of the slot containing the pointer,
-// but not-in-the-expanse of the "narrow" pointer in that slot.  (This means
-// the Dcd part of the Index differs from the equivalent part of jp_DcdPopO.)
-// Therefore, the remedy is to put a cJU_JPBRANCH_L* between the narrow pointer
-// and the object to which it points, and add the outlier Index as an Immediate
-// in the cJU_JPBRANCH_L*.  The "trick" is placing the cJU_JPBRANCH_L* at a
-// Level that is as low as possible.  This is determined by counting the digits
-// in the existing narrow pointer that are the same as the digits in the new
-// Index (see j__udyInsertBranch()).
-//
-// Note:  At some high Levels, cJU_DCDMASK() is all zeros => dead code; assume
-// the compiler optimizes this out.
-
-#define JU_CHECK_IF_OUTLIER(Pjp, Index, cLevel, Pjpm)                   \
-        if (JU_DCDNOTMATCHINDEX(Index, Pjp, cLevel))                    \
-            return(j__udyInsertBranch(Pjp, Index, cLevel, Pjpm))
-
-// Check if an Index is already in a leaf or immediate, after calling
-// j__udySearchLeaf*() to set Offset:
-//
-// A non-negative Offset means the Index already exists, so return 0; otherwise
-// complement Offset to proceed.
-
-#ifdef JUDY1
-#define Pjv ignore                                      // placeholder.
-#define JU_CHECK_IF_EXISTS(Offset,ignore,Pjpm)  \
-        {                                       \
-            if ((Offset) >= 0) return(0);       \
-            (Offset) = ~(Offset);               \
-        }
-#else
-// For JudyL, also set the value area pointer in the Pjpm:
-
-#define JU_CHECK_IF_EXISTS(Offset,Pjv,Pjpm)             \
-        {                                               \
-            if ((Offset) >= 0)                          \
-            {                                           \
-                (Pjpm)->jpm_PValue = (Pjv) + (Offset);  \
-                return(0);                              \
-            }                                           \
-            (Offset) = ~(Offset);                       \
-        }
-#endif
-
-
-// ****************************************************************************
-// __ J U D Y   I N S   W A L K
-//
-// Walk the Judy tree to do a set/insert.  This is only called internally, and
-// recursively.  Unlike Judy1Test() and JudyLGet(), the extra time required for
-// recursion should be negligible compared with the total.
-//
-// Return -1 for error (details in JPM), 0 for Index already inserted, 1 for
-// new Index inserted.
-
-FUNCTION static int j__udyInsWalk(
-        Pjp_t   Pjp,            // current JP to descend.
-        Word_t  Index,          // to insert.
-        Pjpm_t  Pjpm)           // for returning info to top Level.
-{
-        uint8_t digit;          // from Index, current offset into a branch.
-        jp_t    newJP;          // for creating a new Immed JP.
-        Word_t  exppop1;        // expanse (leaf) population.
-        int     retcode;        // return codes:  -1, 0, 1.
-
-#ifdef SUBEXPCOUNTS
-// Pointer to BranchB/U subexpanse counter:
-//
-// Note:  Very important for performance reasons (avoids cache fills).
-
-        PWord_t PSubExp = (PWord_t) NULL;
-#endif
-
-ContinueInsWalk:                // for modifying state without recursing.
-
-#ifdef TRACEJP
-        JudyPrintJP(Pjp, "i", __LINE__);
-#endif
-
-        switch (JU_JPTYPE(Pjp)) // entry:  Pjp, Index.
-        {
-
-
-// ****************************************************************************
-// JPNULL*:
-//
-// Convert JP in place from current null type to cJU_JPIMMED_*_01 by
-// calculating new JP type.
-
-        case cJU_JPNULL1:
-        case cJU_JPNULL2:
-        case cJU_JPNULL3:
-#ifdef JU_64BIT
-        case cJU_JPNULL4:
-        case cJU_JPNULL5:
-        case cJU_JPNULL6:
-        case cJU_JPNULL7:
-#endif
-            assert((Pjp->jp_Addr) == 0);
-            JU_JPSETADT(Pjp, 0, Index, JU_JPTYPE(Pjp) + cJU_JPIMMED_1_01 - cJU_JPNULL1);
-#ifdef JUDYL
-            // value area is first word of new Immed_01 JP:
-            Pjpm->jpm_PValue = (Pjv_t) (&(Pjp->jp_Addr));
-#endif
-            return(1);
-
-
-// ****************************************************************************
-// JPBRANCH_L*:
-//
-// If the new Index is not an outlier to the branchs expanse, and the branch
-// should not be converted to uncompressed, extract the digit and record the
-// Immediate type to create for a new Immed JP, before going to common code.
-//
-// Note:  JU_CHECK_IF_OUTLIER() is a no-op for BranchB3[7] on 32[64]-bit.
-
-#define JU_BRANCH_OUTLIER(DIGIT,POP1,cLEVEL,PJP,INDEX,PJPM)  \
-        JU_CHECK_IF_OUTLIER(PJP, INDEX, cLEVEL, PJPM);       \
-        (DIGIT) = JU_DIGITATSTATE(INDEX, cLEVEL);            \
-        (POP1)  = JU_JPBRANCH_POP0(PJP, cLEVEL)
-
-        case cJU_JPBRANCH_L2:
-            JU_BRANCH_OUTLIER(digit, exppop1, 2, Pjp, Index, Pjpm);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L3:
-            JU_BRANCH_OUTLIER(digit, exppop1, 3, Pjp, Index, Pjpm);
-            goto JudyBranchL;
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_L4:
-            JU_BRANCH_OUTLIER(digit, exppop1, 4, Pjp, Index, Pjpm);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L5:
-            JU_BRANCH_OUTLIER(digit, exppop1, 5, Pjp, Index, Pjpm);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L6:
-            JU_BRANCH_OUTLIER(digit, exppop1, 6, Pjp, Index, Pjpm);
-            goto JudyBranchL;
-
-        case cJU_JPBRANCH_L7:
-            JU_BRANCH_OUTLIER(digit, exppop1, 7, Pjp, Index, Pjpm);
-            goto JudyBranchL;
-#endif
-
-// Similar to common code above, but no outlier check is needed, and the Immed
-// type depends on the word size:
-
-        case cJU_JPBRANCH_L:
-        {
-            Pjbl_t PjblRaw;     // pointer to old linear branch.
-            Pjbl_t Pjbl;
-            Pjbu_t PjbuRaw;     // pointer to new uncompressed branch.
-            Pjbu_t Pjbu;
-            Word_t numJPs;      // number of JPs = populated expanses.
-            int    offset;      // in branch.
-
-            digit = JU_DIGITATSTATE(Index, cJU_ROOTSTATE);
-            exppop1 = Pjpm->jpm_Pop0;
-
-            // fall through:
-
-// COMMON CODE FOR LINEAR BRANCHES:
-//
-// Come here with digit and exppop1 already set.
-
-JudyBranchL:
-            PjblRaw = (Pjbl_t) (Pjp->jp_Addr);
-            Pjbl    = P_JBL(PjblRaw);
-
-// If population under this branch greater than:
-
-            if (exppop1 > JU_BRANCHL_MAX_POP)
-                goto ConvertBranchLtoU;
-
-            numJPs = Pjbl->jbl_NumJPs;
-
-            if ((numJPs == 0) || (numJPs > cJU_BRANCHLMAXJPS))
-            {
-                JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT);
-                return(-1);
-            }
-
-// Search for a match to the digit:
-
-            offset = j__udySearchLeaf1((Pjll_t) (Pjbl->jbl_Expanse), numJPs,
-                                       digit);
-
-// If Index is found, offset is into an array of 1..cJU_BRANCHLMAXJPS JPs:
-
-            if (offset >= 0)
-            {
-                Pjp = (Pjbl->jbl_jp) + offset;  // address of next JP.
-                break;                          // continue walk.
-            }
-
-// Expanse is missing (not populated) for the passed Index, so insert an Immed
-// -- if theres room:
-
-            if (numJPs < cJU_BRANCHLMAXJPS)
-            {
-                offset = ~offset;       // insertion offset.
-
-                JU_JPSETADT(&newJP, 0, Index,
-                        JU_JPTYPE(Pjp) + cJU_JPIMMED_1_01-cJU_JPBRANCH_L2);
-
-                JU_INSERTINPLACE(Pjbl->jbl_Expanse, numJPs, offset, digit);
-                JU_INSERTINPLACE(Pjbl->jbl_jp,      numJPs, offset, newJP);
-
-                DBGCODE(JudyCheckSorted((Pjll_t) (Pjbl->jbl_Expanse),
-                                        numJPs + 1, /* IndexSize = */ 1);)
-                ++(Pjbl->jbl_NumJPs);
-#ifdef JUDYL
-                // value area is first word of new Immed 01 JP:
-                Pjpm->jpm_PValue = (Pjv_t) ((Pjbl->jbl_jp) + offset);
-#endif
-                return(1);
-            }
-
-
-// MAXED OUT LINEAR BRANCH, CONVERT TO A BITMAP BRANCH, THEN INSERT:
-//
-// Copy the linear branch to a bitmap branch.
-//
-// TBD:  Consider renaming j__udyCreateBranchB() to j__udyConvertBranchLtoB().
-
-            assert((numJPs) <= cJU_BRANCHLMAXJPS);
-
-            if (j__udyCreateBranchB(Pjp, Pjbl->jbl_jp, Pjbl->jbl_Expanse,
-                                    numJPs, Pjpm) == -1)
-            {
-                return(-1);
-            }
-
-// Convert jp_Type from linear branch to equivalent bitmap branch:
-
-            Pjp->jp_Type += cJU_JPBRANCH_B - cJU_JPBRANCH_L;
-
-            j__udyFreeJBL(PjblRaw, Pjpm);       // free old BranchL.
-
-// Having changed branch types, now do the insert in the new branch type:
-
-            goto ContinueInsWalk;
-
-
-// OPPORTUNISTICALLY CONVERT FROM BRANCHL TO BRANCHU:
-//
-// Memory efficiency is no object because the branchs pop1 is large enough, so
-// speed up array access.  Come here with PjblRaw set.  Note:  This is goto
-// code because the previous block used to fall through into it as well, but no
-// longer.
-
-ConvertBranchLtoU:
-
-// Allocate memory for an uncompressed branch:
-
-            if ((PjbuRaw = j__udyAllocJBU(Pjpm)) == (Pjbu_t) NULL)
-                return(-1);
-            Pjbu = P_JBU(PjbuRaw);
-
-// Set the proper NULL type for most of the uncompressed branchs JPs:
-
-            JU_JPSETADT(&newJP, 0, 0, 
-                    JU_JPTYPE(Pjp) - cJU_JPBRANCH_L2 + cJU_JPNULL1);
-
-// Initialize:  Pre-set uncompressed branch to mostly JPNULL*s:
-
-            for (numJPs = 0; numJPs < cJU_BRANCHUNUMJPS; ++numJPs)
-                Pjbu->jbu_jp[numJPs] = newJP;
-
-// Copy JPs from linear branch to uncompressed branch:
-
-            {
-#ifdef SUBEXPCOUNTS
-                Word_t popmask = cJU_POP0MASK(JU_JPTYPE(Pjp))
-                                             - cJU_JPBRANCH_L2 - 2;
-
-                for (numJPs = 0; numJPs < cJU_NUMSUBEXPU; ++numJPs)
-                    Pjbu->jbu_subPop1[numJPs] = 0;
-#endif
-                for (numJPs = 0; numJPs < Pjbl->jbl_NumJPs; ++numJPs)
-                {
-                    Pjp_t Pjp1           = &(Pjbl->jbl_jp[numJPs]);
-                    offset               = Pjbl->jbl_Expanse[numJPs];
-                    Pjbu->jbu_jp[offset] = *Pjp1;
-#ifdef SUBEXPCOUNTS
-                    Pjbu->jbu_subPop1[offset/cJU_NUMSUBEXPU] +=
-                        JU_JPDCDPOP0(Pjp1) & popmask + 1;
-#endif
-                }
-            }
-            j__udyFreeJBL(PjblRaw, Pjpm);               // free old BranchL.
-
-// Plug new values into parent JP:
-
-            Pjp->jp_Addr  = (Word_t) PjbuRaw;
-            Pjp->jp_Type += cJU_JPBRANCH_U - cJU_JPBRANCH_L;    // to BranchU.
-
-// Save global population of last BranchU conversion:
-
-            Pjpm->jpm_LastUPop0 = Pjpm->jpm_Pop0;
-            goto ContinueInsWalk;
-
-        } // case cJU_JPBRANCH_L.
-
-
-// ****************************************************************************
-// JPBRANCH_B*:
-//
-// If the new Index is not an outlier to the branchs expanse, extract the
-// digit and record the Immediate type to create for a new Immed JP, before
-// going to common code.
-//
-// Note:  JU_CHECK_IF_OUTLIER() is a no-op for BranchB3[7] on 32[64]-bit.
-
-        case cJU_JPBRANCH_B2:
-            JU_BRANCH_OUTLIER(digit, exppop1, 2, Pjp, Index, Pjpm);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B3:
-            JU_BRANCH_OUTLIER(digit, exppop1, 3, Pjp, Index, Pjpm);
-            goto JudyBranchB;
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_B4:
-            JU_BRANCH_OUTLIER(digit, exppop1, 4, Pjp, Index, Pjpm);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B5:
-            JU_BRANCH_OUTLIER(digit, exppop1, 5, Pjp, Index, Pjpm);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B6:
-            JU_BRANCH_OUTLIER(digit, exppop1, 6, Pjp, Index, Pjpm);
-            goto JudyBranchB;
-
-        case cJU_JPBRANCH_B7:
-            JU_BRANCH_OUTLIER(digit, exppop1, 7, Pjp, Index, Pjpm);
-            goto JudyBranchB;
-#endif
-
-        case cJU_JPBRANCH_B:
-        {
-            Pjbb_t    Pjbb;             // pointer to bitmap branch.
-            Pjbb_t    PjbbRaw;          // pointer to bitmap branch.
-            Pjp_t     Pjp2Raw;          // 1 of N arrays of JPs.
-            Pjp_t     Pjp2;             // 1 of N arrays of JPs.
-            Word_t    subexp;           // 1 of N subexpanses in bitmap.
-            BITMAPB_t bitmap;           // for one subexpanse.
-            BITMAPB_t bitmask;          // bit set for Indexs digit.
-            Word_t    numJPs;           // number of JPs = populated expanses.
-            int       offset;           // in bitmap branch.
-
-// Similar to common code above, but no outlier check is needed, and the Immed
-// type depends on the word size:
-
-            digit   = JU_DIGITATSTATE(Index, cJU_ROOTSTATE);
-            exppop1 = Pjpm->jpm_Pop0;
-
-            // fall through:
-
-
-// COMMON CODE FOR BITMAP BRANCHES:
-//
-// Come here with digit and exppop1 already set.
-
-JudyBranchB:
-
-// If population increment is greater than..  (300):
-
-            if ((Pjpm->jpm_Pop0 - Pjpm->jpm_LastUPop0) > JU_BTOU_POP_INCREMENT)
-            {
-
-// If total population of array is greater than..  (750):
-
-                if (Pjpm->jpm_Pop0 > JU_BRANCHB_MAX_POP)
-                {
-
-// If population under the branch is greater than..  (135):
-
-                    if (exppop1 > JU_BRANCHB_MIN_POP)
-                    {
-                        if (j__udyCreateBranchU(Pjp, Pjpm) == -1) return(-1);
-
-// Save global population of last BranchU conversion:
-
-                        Pjpm->jpm_LastUPop0 = Pjpm->jpm_Pop0;
-
-                        goto ContinueInsWalk;
-                    }
-                }
-            }
-
-// CONTINUE TO USE BRANCHB:
-//
-// Get pointer to bitmap branch (JBB):
-
-            PjbbRaw = (Pjbb_t) (Pjp->jp_Addr);
-            Pjbb    = P_JBB(PjbbRaw);
-
-// Form the Int32 offset, and Bit offset values:
-//
-// 8 bit Decode | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-//              |SubExpanse |    Bit offset     |
-//
-// Get the 1 of 8 expanses from digit, Bits 5..7 = 1 of 8, and get the 32-bit
-// word that may have a bit set:
-
-            subexp = digit / cJU_BITSPERSUBEXPB;
-            bitmap = JU_JBB_BITMAP(Pjbb, subexp);
-
-            Pjp2Raw = JU_JBB_PJP(Pjbb, subexp);
-            Pjp2    = P_JP(Pjp2Raw);
-
-// Get the bit position that represents the desired expanse, and get the offset
-// into the array of JPs for the JP that matches the bit.
-
-            bitmask = JU_BITPOSMASKB(digit);
-            offset  = j__udyCountBitsB(bitmap & (bitmask - 1));
-
-// If JP is already in this expanse, get Pjp and continue the walk:
-
-            if (bitmap & bitmask)
-            {
-#ifdef SUBEXPCOUNTS
-                PSubExp = &(Pjbb->jbb_Counts[subexp]);  // ptr to subexp counts.
-#endif
-                Pjp =  Pjp2 + offset;
-                break;                                  // continue walk.
-            }
-
-
-// ADD NEW EXPANSE FOR NEW INDEX:
-//
-// The new expanse always an cJU_JPIMMED_*_01 containing just the new Index, so
-// finish setting up an Immed JP.
-
-            JU_JPSETADT(&newJP, 0, Index, 
-                JU_JPTYPE(Pjp) + cJU_JPIMMED_1_01-cJU_JPBRANCH_B2);
-
-// Get 1 of the 8 JP arrays and calculate number of JPs in subexpanse array:
-
-            Pjp2Raw = JU_JBB_PJP(Pjbb, subexp);
-            Pjp2    = P_JP(Pjp2Raw);
-            numJPs  = j__udyCountBitsB(bitmap);
-
-// Expand branch JP subarray in-place:
-
-            if (JU_BRANCHBJPGROWINPLACE(numJPs))
-            {
-                assert(numJPs > 0);
-                JU_INSERTINPLACE(Pjp2, numJPs, offset, newJP);
-#ifdef JUDYL
-                // value area is first word of new Immed 01 JP:
-                Pjpm->jpm_PValue = (Pjv_t) (Pjp2 + offset);
-#endif
-            }
-
-// No room, allocate a bigger bitmap branch JP subarray:
-
-            else
-            {
-                Pjp_t PjpnewRaw;
-                Pjp_t Pjpnew;
-
-                if ((PjpnewRaw = j__udyAllocJBBJP(numJPs + 1, Pjpm)) == 0)
-                    return(-1);
-                Pjpnew = P_JP(PjpnewRaw);
-
-// If there was an old JP array, then copy it, insert the new Immed JP, and
-// free the old array:
-
-                if (numJPs)
-                {
-                    JU_INSERTCOPY(Pjpnew, Pjp2, numJPs, offset, newJP);
-                    j__udyFreeJBBJP(Pjp2Raw, numJPs, Pjpm);
-#ifdef JUDYL
-                    // value area is first word of new Immed 01 JP:
-                    Pjpm->jpm_PValue = (Pjv_t) (Pjpnew + offset);
-#endif
-                }
-
-// New JP subarray; point to cJU_JPIMMED_*_01 and place it:
-
-                else
-                {
-                    assert(JU_JBB_PJP(Pjbb, subexp) == (Pjp_t) NULL);
-                     Pjp = Pjpnew;
-                    *Pjp = newJP;               // copy to new memory.
-#ifdef JUDYL
-                    // value area is first word of new Immed 01 JP:
-                    Pjpm->jpm_PValue = (Pjv_t) (&(Pjp->jp_Addr));
-#endif
-                }
-
-// Place new JP subarray in BranchB:
-
-                JU_JBB_PJP(Pjbb, subexp) = PjpnewRaw;
-
-            } // else
-
-// Set the new Indexs bit:
-
-            JU_JBB_BITMAP(Pjbb, subexp) |= bitmask;
-
-            return(1);
-
-        } // case
-
-
-// ****************************************************************************
-// JPBRANCH_U*:
-//
-// Just drop through the JP for the correct digit.  If the JP turns out to be a
-// JPNULL*, thats OK, the memory is already allocated, and the next walk
-// simply places an Immed in it.
-//
-#ifdef SUBEXPCOUNTS
-#define JU_GETSUBEXP(PSubExp,Pjbu,Digit) \
-        (PSubExp) = &((Pjbu)->jbu_subPop1[(Digit) / cJU_NUMSUBEXPU])
-#else
-#define JU_GETSUBEXP(PSubExp,Pjbu,Digit)  // null.
-#endif
-
-#define JU_JBU_PJP_SUBEXP(Pjp,PSubExp,Index,Level)              \
-        {                                                       \
-            uint8_t digit = JU_DIGITATSTATE(Index, Level);      \
-            Pjbu_t  P_jbu  = P_JBU((Pjp)->jp_Addr);             \
-            (Pjp) = &(P_jbu->jbu_jp[digit]);                    \
-            JU_GETSUBEXP(PSubExp, P_jbu, digit);                \
-        }
-
-        case cJU_JPBRANCH_U2:
-            JU_CHECK_IF_OUTLIER(Pjp, Index, 2, Pjpm);
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, 2);
-            break;
-
-#ifdef JU_64BIT
-        case cJU_JPBRANCH_U3:
-            JU_CHECK_IF_OUTLIER(Pjp, Index, 3, Pjpm);
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, 3);
-            break;
-
-        case cJU_JPBRANCH_U4:
-            JU_CHECK_IF_OUTLIER(Pjp, Index, 4, Pjpm);
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, 4);
-            break;
-
-        case cJU_JPBRANCH_U5:
-            JU_CHECK_IF_OUTLIER(Pjp, Index, 5, Pjpm);
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, 5);
-            break;
-
-        case cJU_JPBRANCH_U6:
-            JU_CHECK_IF_OUTLIER(Pjp, Index, 6, Pjpm);
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, 6);
-            break;
-
-        case cJU_JPBRANCH_U7:
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, 7);
-#else
-        case cJU_JPBRANCH_U3:
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, 3);
-#endif
-            break;
-
-        case cJU_JPBRANCH_U:
-            JU_JBU_PJP_SUBEXP(Pjp, PSubExp, Index, cJU_ROOTSTATE);
-            break;
-
-
-// ****************************************************************************
-// JPLEAF*:
-//
-// COMMON CODE FRAGMENTS TO MINIMIZE REDUNDANCY BELOW:
-//
-// These are necessary to support performance by function and loop unrolling
-// while avoiding huge amounts of nearly identical code.
-//
-// Prepare to handle a linear leaf:  Check for an outlier; set pop1 and pointer
-// to leaf:
-
-#ifdef JUDY1
-#define JU_LEAFVALUE(Pjv)                       // null.
-#define JU_LEAFPREPVALUE(Pjv, ValueArea)        // null.
-#else
-#define JU_LEAFVALUE(Pjv)                Pjv_t Pjv
-#define JU_LEAFPREPVALUE(Pjv, ValueArea) (Pjv) = ValueArea(Pleaf, exppop1)
-#endif
-
-#define JU_LEAFPREP(cIS,Type,MaxPop1,ValueArea)         \
-        Pjll_t  PjllRaw;                                \
-        Type    Pleaf;  /* specific type */             \
-        int     offset;                                 \
-        JU_LEAFVALUE(Pjv);                              \
-                                                        \
-        JU_CHECK_IF_OUTLIER(Pjp, Index, cIS, Pjpm);     \
-                                                        \
-        exppop1 = JU_JPLEAF_POP0(Pjp) + 1;              \
-        assert(exppop1 <= (MaxPop1));                   \
-        PjllRaw = (Pjll_t) (Pjp->jp_Addr);              \
-        Pleaf   = (Type) P_JLL(PjllRaw);                \
-        JU_LEAFPREPVALUE(Pjv, ValueArea)
-
-// Add to, or grow, a linear leaf:  Find Index position; if the Index is
-// absent, if theres room in the leaf, insert the Index [and value of 0] in
-// place, otherwise grow the leaf:
-//
-// Note:  These insertions always take place with whole words, using
-// JU_INSERTINPLACE() or JU_INSERTCOPY().
-
-#ifdef JUDY1
-#define JU_LEAFGROWVALUEADD(Pjv,ExpPop1,Offset)  // null.
-#else
-#define JU_LEAFGROWVALUEADD(Pjv,ExpPop1,Offset)         \
-        JU_INSERTINPLACE(Pjv, ExpPop1, Offset, 0);      \
-        Pjpm->jpm_PValue = (Pjv) + (Offset)
-#endif
-
-#ifdef JUDY1
-#define JU_LEAFGROWVALUENEW(ValueArea,Pjv,ExpPop1,Offset)  // null.
-#else
-#define JU_LEAFGROWVALUENEW(ValueArea,Pjv,ExpPop1,Offset)               \
-        {                                                               \
-            Pjv_t Pjvnew = ValueArea(Pleafnew, (ExpPop1) + 1);          \
-            JU_INSERTCOPY(Pjvnew, Pjv, ExpPop1, Offset, 0);             \
-            Pjpm->jpm_PValue = (Pjvnew) + (Offset);                     \
-        }
-#endif
-
-#define JU_LEAFGROW(cIS,Type,MaxPop1,Search,ValueArea,GrowInPlace,      \
-                    InsertInPlace,InsertCopy,Alloc,Free)                \
-                                                                        \
-        offset = Search(Pleaf, exppop1, Index);                         \
-        JU_CHECK_IF_EXISTS(offset, Pjv, Pjpm);                          \
-                                                                        \
-        if (GrowInPlace(exppop1))       /* add to current leaf */       \
-        {                                                               \
-            InsertInPlace(Pleaf, exppop1, offset, Index);               \
-            JU_LEAFGROWVALUEADD(Pjv, exppop1, offset);                  \
-            DBGCODE(JudyCheckSorted((Pjll_t) Pleaf, exppop1 + 1, cIS);) \
-            return(1);                                                  \
-        }                                                               \
-                                                                        \
-        if (exppop1 < (MaxPop1))        /* grow to new leaf */          \
-        {                                                               \
-            Pjll_t PjllnewRaw;                                          \
-            Type   Pleafnew;                                            \
-            if ((PjllnewRaw = Alloc(exppop1 + 1, Pjpm)) == 0) return(-1); \
-            Pleafnew = (Type) P_JLL(PjllnewRaw);                        \
-            InsertCopy(Pleafnew, Pleaf, exppop1, offset, Index);        \
-            JU_LEAFGROWVALUENEW(ValueArea, Pjv, exppop1, offset);       \
-            DBGCODE(JudyCheckSorted((Pjll_t) Pleafnew, exppop1 + 1, cIS);) \
-            Free(PjllRaw, exppop1, Pjpm);                               \
-            (Pjp->jp_Addr) = (Word_t) PjllnewRaw;                       \
-            return(1);                                                  \
-        }                                                               \
-        assert(exppop1 == (MaxPop1))
-
-// Handle linear leaf overflow (cascade):  Splay or compress into smaller
-// leaves:
-
-#define JU_LEAFCASCADE(MaxPop1,Cascade,Free)            \
-        if (Cascade(Pjp, Pjpm) == -1) return(-1);       \
-        Free(PjllRaw, MaxPop1, Pjpm);                   \
-        goto ContinueInsWalk
-
-// Wrapper around all of the above:
-
-#define JU_LEAFSET(cIS,Type,MaxPop1,Search,GrowInPlace,InsertInPlace,   \
-                   InsertCopy,Cascade,Alloc,Free,ValueArea)             \
-        {                                                               \
-            JU_LEAFPREP(cIS,Type,MaxPop1,ValueArea);                    \
-            JU_LEAFGROW(cIS,Type,MaxPop1,Search,ValueArea,GrowInPlace,  \
-                        InsertInPlace,InsertCopy,Alloc,Free);           \
-            JU_LEAFCASCADE(MaxPop1,Cascade,Free);                       \
-        }
-
-// END OF MACROS; LEAFL CASES START HERE:
-//
-// 64-bit Judy1 does not have 1-byte leaves:
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-
-        case cJU_JPLEAF1:
-
-            JU_LEAFSET(1, uint8_t *, cJU_LEAF1_MAXPOP1, j__udySearchLeaf1,
-                       JU_LEAF1GROWINPLACE, JU_INSERTINPLACE, JU_INSERTCOPY,
-                       j__udyCascade1, j__udyAllocJLL1, j__udyFreeJLL1,
-                       JL_LEAF1VALUEAREA);
-
-#endif // (JUDYL || ! JU_64BIT)
-
-        case cJU_JPLEAF2:
-
-            JU_LEAFSET(2, uint16_t *, cJU_LEAF2_MAXPOP1, j__udySearchLeaf2,
-                       JU_LEAF2GROWINPLACE, JU_INSERTINPLACE, JU_INSERTCOPY,
-                       j__udyCascade2, j__udyAllocJLL2, j__udyFreeJLL2,
-                       JL_LEAF2VALUEAREA);
-
-        case cJU_JPLEAF3:
-
-            JU_LEAFSET(3, uint8_t *, cJU_LEAF3_MAXPOP1, j__udySearchLeaf3,
-                       JU_LEAF3GROWINPLACE, JU_INSERTINPLACE3, JU_INSERTCOPY3,
-                       j__udyCascade3, j__udyAllocJLL3, j__udyFreeJLL3,
-                       JL_LEAF3VALUEAREA);
-
-#ifdef JU_64BIT
-        case cJU_JPLEAF4:
-
-            JU_LEAFSET(4, uint32_t *, cJU_LEAF4_MAXPOP1, j__udySearchLeaf4,
-                       JU_LEAF4GROWINPLACE, JU_INSERTINPLACE, JU_INSERTCOPY,
-                       j__udyCascade4, j__udyAllocJLL4, j__udyFreeJLL4,
-                       JL_LEAF4VALUEAREA);
-
-        case cJU_JPLEAF5:
-
-            JU_LEAFSET(5, uint8_t *, cJU_LEAF5_MAXPOP1, j__udySearchLeaf5,
-                       JU_LEAF5GROWINPLACE, JU_INSERTINPLACE5, JU_INSERTCOPY5,
-                       j__udyCascade5, j__udyAllocJLL5, j__udyFreeJLL5,
-                       JL_LEAF5VALUEAREA);
-
-        case cJU_JPLEAF6:
-
-            JU_LEAFSET(6, uint8_t *, cJU_LEAF6_MAXPOP1, j__udySearchLeaf6,
-                       JU_LEAF6GROWINPLACE, JU_INSERTINPLACE6, JU_INSERTCOPY6,
-                       j__udyCascade6, j__udyAllocJLL6, j__udyFreeJLL6,
-                       JL_LEAF6VALUEAREA);
-
-        case cJU_JPLEAF7:
-
-            JU_LEAFSET(7, uint8_t *, cJU_LEAF7_MAXPOP1, j__udySearchLeaf7,
-                       JU_LEAF7GROWINPLACE, JU_INSERTINPLACE7, JU_INSERTCOPY7,
-                       j__udyCascade7, j__udyAllocJLL7, j__udyFreeJLL7,
-                       JL_LEAF7VALUEAREA);
-#endif // JU_64BIT
-
-
-// ****************************************************************************
-// JPLEAF_B1:
-//
-// 8 bit Decode | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-//              |SubExpanse |    Bit offset     |
-//
-// Note:  For JudyL, values are stored in 8 subexpanses, each a linear word
-// array of up to 32 values each.
-
-        case cJU_JPLEAF_B1:
-        {
-#ifdef JUDYL
-            Pjv_t     PjvRaw;           // pointer to value part of the leaf.
-            Pjv_t     Pjv;              // pointer to value part of the leaf.
-            Pjv_t     PjvnewRaw;        // new value area.
-            Pjv_t     Pjvnew;           // new value area.
-            Word_t    subexp;           // 1 of 8 subexpanses in bitmap.
-            Pjlb_t    Pjlb;             // pointer to bitmap part of the leaf.
-            BITMAPL_t bitmap;           // for one subexpanse.
-            BITMAPL_t bitmask;          // bit set for Indexs digit.
-            int       offset;           // of index in value area.
-#endif
-
-            JU_CHECK_IF_OUTLIER(Pjp, Index, 1, Pjpm);
-
-#ifdef JUDY1
-
-// If Index (bit) is already set, return now:
-
-            if (JU_BITMAPTESTL(P_JLB(Pjp->jp_Addr), Index)) return(0);
-
-// If bitmap is not full, set the new Indexs bit; otherwise convert to a Full:
-
-            if ((exppop1 = JU_JPLEAF_POP0(Pjp) + 1)
-              < cJU_JPFULLPOPU1_POP0)
-            {
-                JU_BITMAPSETL(P_JLB(Pjp->jp_Addr), Index);
-            }
-            else
-            {
-                j__udyFreeJLB1((Pjlb_t) (Pjp->jp_Addr), Pjpm);  // free LeafB1.
-                Pjp->jp_Type = cJ1_JPFULLPOPU1;
-                Pjp->jp_Addr = 0;
-            }
-
-#else // JUDYL
-
-// This is very different from Judy1 because of the need to return a value area
-// even for an existing Index, or manage the value area for a new Index, and
-// because JudyL has no Full type:
-
-// Get last byte to decode from Index, and pointer to bitmap leaf:
-
-            digit = JU_DIGITATSTATE(Index, 1);
-            Pjlb  = P_JLB(Pjp->jp_Addr);
-
-// Prepare additional values:
-
-            subexp  = digit / cJU_BITSPERSUBEXPL;       // which subexpanse.
-            bitmap  = JU_JLB_BITMAP(Pjlb, subexp);      // subexps 32-bit map.
-            PjvRaw  = JL_JLB_PVALUE(Pjlb, subexp);      // corresponding values.
-            Pjv     = P_JV(PjvRaw);                     // corresponding values.
-            bitmask = JU_BITPOSMASKL(digit);            // mask for Index.
-            offset  = j__udyCountBitsL(bitmap & (bitmask - 1)); // of Index.
-
-// If Index already exists, get value pointer and exit:
-
-            if (bitmap & bitmask)
-            {
-                assert(Pjv);
-                Pjpm->jpm_PValue = Pjv + offset;        // existing value.
-                return(0);
-            }
-
-// Get the total bits set = expanse population of Value area:
-
-            exppop1 = j__udyCountBitsL(bitmap);
-
-// If the value area can grow in place, do it:
-
-            if (JL_LEAFVGROWINPLACE(exppop1))
-            {
-                JU_INSERTINPLACE(Pjv, exppop1, offset, 0);
-                JU_JLB_BITMAP(Pjlb, subexp) |= bitmask;  // set Indexs bit.
-                Pjpm->jpm_PValue = Pjv + offset;          // new value area.
-                return(1);
-            }
-
-// Increase size of value area:
-
-            if ((PjvnewRaw = j__udyLAllocJV(exppop1 + 1, Pjpm))
-             == (Pjv_t) NULL) return(-1);
-            Pjvnew = P_JV(PjvnewRaw);
-
-            if (exppop1)                // have existing value area.
-            {
-                assert(Pjv);
-                JU_INSERTCOPY(Pjvnew, Pjv, exppop1, offset, 0);
-                Pjpm->jpm_PValue = Pjvnew + offset;
-                j__udyLFreeJV(PjvRaw, exppop1, Pjpm);   // free old values.
-            }
-            else                        // first index, new value area:
-            {
-                 Pjpm->jpm_PValue   = Pjvnew;
-                *(Pjpm->jpm_PValue) = 0;
-            }
-
-// Set bit for new Index and place new leaf value area in bitmap:
-
-            JU_JLB_BITMAP(Pjlb, subexp) |= bitmask;
-            JL_JLB_PVALUE(Pjlb, subexp)  = PjvnewRaw;
-
-#endif // JUDYL
-
-            return(1);
-
-        } // case
-
-
-#ifdef JUDY1
-// ****************************************************************************
-// JPFULLPOPU1:
-//
-// If Index is not an outlier, then by definition its already set.
-
-        case cJ1_JPFULLPOPU1:
-
-            JU_CHECK_IF_OUTLIER(Pjp, Index, 1, Pjpm);
-            return(0);
-#endif
-
-
-// ****************************************************************************
-// JPIMMED*:
-//
-// This is some of the most complex code in Judy considering Judy1 versus JudyL
-// and 32-bit versus 64-bit variations.  The following comments attempt to make
-// this clearer.
-//
-// Of the 2 words in a JP, for immediate indexes Judy1 can use 2 words - 1 byte
-// = 7 [15] bytes, but JudyL can only use 1 word - 1 byte = 3 [7] bytes because
-// the other word is needed for a value area or a pointer to a value area.
-//
-// For both Judy1 and JudyL, cJU_JPIMMED_*_01 indexes are in word 2; otherwise
-// for Judy1 only, a list of 2 or more indexes starts in word 1.  JudyL keeps
-// the list in word 2 because word 1 is a pointer (to a LeafV, that is, a leaf
-// containing only values).  Furthermore, cJU_JPIMMED_*_01 indexes are stored
-// all-but-first-byte in jp_DcdPopO, not just the Index Sizes bytes.
-//
-// TBD:  This can be confusing because Doug didnt use data structures for it.
-// Instead he often directly accesses Pjp for the first word and jp_DcdPopO for
-// the second word.  It would be nice to use data structs, starting with
-// jp_1Index and jp_LIndex where possible.
-//
-// Maximum Immed JP types for Judy1/JudyL, depending on Index Size (cIS):
-//
-//          32-bit  64-bit
-//
-//    bytes:  7/ 3   15/ 7   (Judy1/JudyL)
-//
-//    cIS
-//    1_     07/03   15/07   (as in: cJ1_JPIMMED_1_07)
-//    2_     03/01   07/03
-//    3_     02/01   05/02
-//    4_             03/01
-//    5_             03/01
-//    6_             02/01
-//    7_             02/01
-//
-// State transitions while inserting an Index, matching the above table:
-// (Yes, this is very terse...  Study it and it will make sense.)
-// (Note, parts of this diagram are repeated below for quick reference.)
-//
-//      +-- reformat JP here for Judy1 only, from word-2 to word-1
-//      |
-//      |                  JUDY1 || JU_64BIT        JUDY1 && JU_64BIT
-//      V
-// 1_01 => 1_02 => 1_03 => [ 1_04 => ... => 1_07 => [ 1_08..15 => ]] Leaf1 (*)
-// 2_01 =>                 [ 2_02 => 2_03 =>        [ 2_04..07 => ]] Leaf2
-// 3_01 =>                 [ 3_02 =>                [ 3_03..05 => ]] Leaf3
-// JU_64BIT only:
-// 4_01 =>                                         [[ 4_02..03 => ]] Leaf4
-// 5_01 =>                                         [[ 5_02..03 => ]] Leaf5
-// 6_01 =>                                         [[ 6_02     => ]] Leaf6
-// 7_01 =>                                         [[ 7_02     => ]] Leaf7
-//
-// (*) For Judy1 & 64-bit, go directly from cJU_JPIMMED_1_15 to a LeafB1; skip
-//     Leaf1, as described in Judy1.h regarding cJ1_JPLEAF1.
-
-
-// COMMON CODE FRAGMENTS TO MINIMIZE REDUNDANCY BELOW:
-//
-// These are necessary to support performance by function and loop unrolling
-// while avoiding huge amounts of nearly identical code.
-//
-// The differences between Judy1 and JudyL with respect to value area handling
-// are just too large for completely common code between them...  Oh well, some
-// big ifdefs follow.  However, even in the following ifdefd code, use cJU_*,
-// JU_*, and Judy*() instead of cJ1_* / cJL_*, J1_* / JL_*, and
-// Judy1*()/JudyL*(), for minimum diffs.
-//
-// Handle growth of cJU_JPIMMED_*_01 to cJU_JPIMMED_*_02, for an even or odd
-// Index Size (cIS), given oldIndex, Index, and Pjll in the context:
-//
-// Put oldIndex and Index in their proper order.  For odd indexes, must copy
-// bytes.
-
-#ifdef JUDY1
-
-#define JU_IMMSET_01_COPY_EVEN(ignore1,ignore2) \
-        if (oldIndex < Index) { Pjll[0] = oldIndex; Pjll[1] = Index;    } \
-        else                  { Pjll[0] = Index;    Pjll[1] = oldIndex; }
-
-#define JU_IMMSET_01_COPY_ODD(cIS,CopyWord)     \
-        if (oldIndex < Index)                   \
-        {                                       \
-            CopyWord(Pjll + 0,     oldIndex);   \
-            CopyWord(Pjll + (cIS), Index);      \
-        }                                       \
-        else                                    \
-        {                                       \
-            CopyWord(Pjll + 0,    Index);       \
-            CopyWord(Pjll + (cIS), oldIndex);   \
-        }
-
-// The "real" *_01 Copy macro:
-//
-// Trim the high byte off Index, look for a match with the old Index, and if
-// none, insert the new Index in the leaf in the correct place, given Pjp and
-// Index in the context.
-//
-// Note:  A single immediate index lives in the jp_DcdPopO field, but two or
-// more reside starting at Pjp->jp_1Index.
-
-#define JU_IMMSET_01_COPY(cIS,LeafType,NewJPType,Copy,CopyWord) \
-        {                                                       \
-            LeafType Pjll;                                      \
-            Word_t   oldIndex = JU_JPDCDPOP0(Pjp);              \
-                                                                \
-            Index = JU_TRIMTODCDSIZE(Index);                    \
-            if (oldIndex == Index) return(0);                   \
-                                                                \
-            Pjll = (LeafType) (Pjp->jp_1Index);                 \
-            Copy(cIS,CopyWord);                                 \
-            DBGCODE(JudyCheckSorted(Pjll, 2, cIS);)             \
-                                                                \
-            Pjp->jp_Type = (NewJPType);                         \
-            return(1);                                          \
-        }
-
-#else // JUDYL
-
-// Variations to also handle value areas; see comments above:
-//
-// For JudyL, Pjv (start of value area) and oldValue are also in the context;
-// leave Pjv set to the value area for Index.
-
-#define JU_IMMSET_01_COPY_EVEN(cIS,CopyWord)    \
-        if (oldIndex < Index)                   \
-        {                                       \
-            Pjll[0] = oldIndex;                 \
-            Pjv [0] = oldValue;                 \
-            Pjll[1] = Index;                    \
-            ++Pjv;                              \
-        }                                       \
-        else                                    \
-        {                                       \
-            Pjll[0] = Index;                    \
-            Pjll[1] = oldIndex;                 \
-            Pjv [1] = oldValue;                 \
-        }
-
-#define JU_IMMSET_01_COPY_ODD(cIS,CopyWord)     \
-        if (oldIndex < Index)                   \
-        {                                       \
-            CopyWord(Pjll + 0,     oldIndex);   \
-            CopyWord(Pjll + (cIS), Index);      \
-            Pjv[0] = oldValue;                  \
-            ++Pjv;                              \
-        }                                       \
-        else                                    \
-        {                                       \
-            CopyWord(Pjll + 0,    Index);       \
-            CopyWord(Pjll + (cIS), oldIndex);   \
-            Pjv[1] = oldValue;                  \
-        }
-
-// The old value area is in the first word (*Pjp), and Pjv and Pjpm are also in
-// the context.  Also, unlike Judy1, indexes remain in word 2 (jp_LIndex),
-// meaning insert-in-place rather than copy.
-//
-// Return jpm_PValue pointing to Indexs value area.  If Index is new, allocate
-// a 2-value-leaf and attach it to the JP.
-
-#define JU_IMMSET_01_COPY(cIS,LeafType,NewJPType,Copy,CopyWord) \
-        {                                                       \
-            LeafType Pjll;                                      \
-            Word_t   oldIndex = JU_JPDCDPOP0(Pjp);              \
-            Word_t   oldValue;                                  \
-            Pjv_t    PjvRaw;                                    \
-            Pjv_t    Pjv;                                       \
-                                                                \
-            Index = JU_TRIMTODCDSIZE(Index);                    \
-                                                                \
-            if (oldIndex == Index)                              \
-            {                                                   \
-                Pjpm->jpm_PValue = (Pjv_t) Pjp;                 \
-                return(0);                                      \
-            }                                                   \
-                                                                \
-            if ((PjvRaw = j__udyLAllocJV(2, Pjpm)) == (Pjv_t) NULL) \
-                return(-1);                                     \
-            Pjv = P_JV(PjvRaw);                                 \
-                                                                \
-            oldValue       = Pjp->jp_Addr;                      \
-            (Pjp->jp_Addr) = (Word_t) PjvRaw;                   \
-            Pjll           = (LeafType) (Pjp->jp_LIndex);       \
-                                                                \
-            Copy(cIS,CopyWord);                                 \
-            DBGCODE(JudyCheckSorted(Pjll, 2, cIS);)             \
-                                                                \
-            Pjp->jp_Type   = (NewJPType);                       \
-            *Pjv             = 0;                               \
-            Pjpm->jpm_PValue = Pjv;                             \
-            return(1);                                          \
-        }
-
-// The following is a unique mix of JU_IMMSET_01() and JU_IMMSETCASCADE() for
-// going from cJU_JPIMMED_*_01 directly to a cJU_JPLEAF* for JudyL:
-//
-// If Index is not already set, allocate a leaf, copy the old and new indexes
-// into it, clear and return the new value area, and modify the current JP.
-// Note that jp_DcdPop is set to a pop0 of 0 for now, and incremented later.
-
-
-#define JU_IMMSET_01_CASCADE(cIS,LeafType,NewJPType,ValueArea,  \
-                             Copy,CopyWord,Alloc)               \
-        {                                                       \
-            Word_t   D_P0;                                      \
-            LeafType PjllRaw;                                   \
-            LeafType Pjll;                                      \
-            Word_t   oldIndex = JU_JPDCDPOP0(Pjp);              \
-            Word_t   oldValue;                                  \
-            Pjv_t    Pjv;                                       \
-                                                                \
-            Index = JU_TRIMTODCDSIZE(Index);                    \
-                                                                \
-            if (oldIndex == Index)                              \
-            {                                                   \
-                Pjpm->jpm_PValue = (Pjv_t) (&(Pjp->jp_Addr));   \
-                return(0);                                      \
-            }                                                   \
-                                                                \
-            if ((PjllRaw = (LeafType) Alloc(2, Pjpm)) == (LeafType) NULL) \
-                return(-1);                                     \
-            Pjll = (LeafType) P_JLL(PjllRaw);                   \
-            Pjv  = ValueArea(Pjll, 2);                          \
-                                                                \
-            oldValue = Pjp->jp_Addr;                            \
-                                                                \
-            Copy(cIS,CopyWord);                                 \
-            DBGCODE(JudyCheckSorted(Pjll, 2, cIS);)             \
-                                                                \
-            *Pjv = 0;                                           \
-            Pjpm->jpm_PValue  = Pjv;                            \
-            D_P0 = Index & cJU_DCDMASK(cIS); /* pop0 = 0 */     \
-            JU_JPSETADT(Pjp, (Word_t)PjllRaw, D_P0, NewJPType); \
-                                                                \
-            return(1);                                          \
-        }
-
-#endif // JUDYL
-
-// Handle growth of cJU_JPIMMED_*_[02..15]:
-
-#ifdef JUDY1
-
-// Insert an Index into an immediate JP that has room for more, if the Index is
-// not already present; given Pjp, Index, exppop1, Pjv, and Pjpm in the
-// context:
-//
-// Note:  Use this only when the JP format doesnt change, that is, going from
-// cJU_JPIMMED_X_0Y to cJU_JPIMMED_X_0Z, where X >= 2 and Y+1 = Z.
-//
-// Note:  Incrementing jp_Type is how to increase the Index population.
-
-#define JU_IMMSETINPLACE(cIS,LeafType,BaseJPType_02,Search,InsertInPlace) \
-        {                                                               \
-            LeafType Pjll;                                              \
-            int      offset;                                            \
-                                                                        \
-            exppop1 = JU_JPTYPE(Pjp) - (BaseJPType_02) + 2;             \
-            offset  = Search((Pjll_t) (Pjp->jp_1Index), exppop1, Index); \
-                                                                        \
-            JU_CHECK_IF_EXISTS(offset, ignore, Pjpm);                   \
-                                                                        \
-            Pjll = (LeafType) (Pjp->jp_1Index);                         \
-            InsertInPlace(Pjll, exppop1, offset, Index);                \
-            DBGCODE(JudyCheckSorted(Pjll, exppop1 + 1, cIS);)           \
-            ++(Pjp->jp_Type);                                           \
-            return(1);                                                  \
-        }
-
-// Insert an Index into an immediate JP that has no room for more:
-//
-// If the Index is not already present, do a cascade (to a leaf); given Pjp,
-// Index, Pjv, and Pjpm in the context.
-
-
-#define JU_IMMSETCASCADE(cIS,OldPop1,LeafType,NewJPType,                \
-                         ignore,Search,InsertCopy,Alloc)                \
-        {                                                               \
-            Word_t   D_P0;                                              \
-            Pjll_t PjllRaw;                                             \
-            Pjll_t Pjll;                                                \
-            int    offset;                                              \
-                                                                        \
-            offset = Search((Pjll_t) (Pjp->jp_1Index), (OldPop1), Index); \
-            JU_CHECK_IF_EXISTS(offset, ignore, Pjpm);                   \
-                                                                        \
-            if ((PjllRaw = Alloc((OldPop1) + 1, Pjpm)) == 0) return(-1); \
-            Pjll = P_JLL(PjllRaw);                                      \
-                                                                        \
-            InsertCopy((LeafType) Pjll, (LeafType) (Pjp->jp_1Index),    \
-                       OldPop1, offset, Index);                         \
-            DBGCODE(JudyCheckSorted(Pjll, (OldPop1) + 1, cIS);)         \
-                                                                        \
-            D_P0 = (Index & cJU_DCDMASK(cIS)) + (OldPop1) - 1;          \
-            JU_JPSETADT(Pjp, (Word_t)PjllRaw, D_P0, NewJPType);         \
-            return(1);                                                  \
-        }
-
-#else // JUDYL
-
-// Variations to also handle value areas; see comments above:
-//
-// For JudyL, Pjv (start of value area) is also in the context.
-//
-// TBD:  This code makes a true but weak assumption that a JudyL 32-bit 2-index
-// value area must be copied to a new 3-index value area.  AND it doesnt know
-// anything about JudyL 64-bit cases (cJU_JPIMMED_1_0[3-7] only) where the
-// value area can grow in place!  However, this should not break it, just slow
-// it down.
-
-#define JU_IMMSETINPLACE(cIS,LeafType,BaseJPType_02,Search,InsertInPlace) \
-        {                                                                 \
-            LeafType Pleaf;                                               \
-            int      offset;                                              \
-            Pjv_t    PjvRaw;                                              \
-            Pjv_t    Pjv;                                                 \
-            Pjv_t    PjvnewRaw;                                           \
-            Pjv_t    Pjvnew;                                              \
-                                                                          \
-            exppop1 = JU_JPTYPE(Pjp) - (BaseJPType_02) + 2;               \
-            offset  = Search((Pjll_t) (Pjp->jp_LIndex), exppop1, Index);  \
-            PjvRaw  = (Pjv_t) (Pjp->jp_Addr);                             \
-            Pjv     = P_JV(PjvRaw);                                       \
-                                                                          \
-            JU_CHECK_IF_EXISTS(offset, Pjv, Pjpm);                        \
-                                                                          \
-            if ((PjvnewRaw = j__udyLAllocJV(exppop1 + 1, Pjpm))           \
-             == (Pjv_t) NULL) return(-1);                                 \
-            Pjvnew = P_JV(PjvnewRaw);                                     \
-                                                                          \
-            Pleaf = (LeafType) (Pjp->jp_LIndex);                          \
-                                                                          \
-            InsertInPlace(Pleaf, exppop1, offset, Index);                 \
-            /* see TBD above about this: */                               \
-            JU_INSERTCOPY(Pjvnew, Pjv, exppop1, offset, 0);               \
-            DBGCODE(JudyCheckSorted(Pleaf, exppop1 + 1, cIS);)            \
-            j__udyLFreeJV(PjvRaw, exppop1, Pjpm);                         \
-            Pjp->jp_Addr     = (Word_t) PjvnewRaw;                        \
-            Pjpm->jpm_PValue = Pjvnew + offset;                           \
-                                                                          \
-            ++(Pjp->jp_Type);                                             \
-            return(1);                                                    \
-        }
-
-#define JU_IMMSETCASCADE(cIS,OldPop1,LeafType,NewJPType,                \
-                         ValueArea,Search,InsertCopy,Alloc)             \
-        {                                                               \
-            Word_t   D_P0;                                      \
-            Pjll_t PjllRaw;                                             \
-            Pjll_t Pjll;                                                \
-            int    offset;                                              \
-            Pjv_t  PjvRaw;                                              \
-            Pjv_t  Pjv;                                                 \
-            Pjv_t  Pjvnew;                                              \
-                                                                        \
-            PjvRaw = (Pjv_t) (Pjp->jp_Addr);                            \
-            Pjv    = P_JV(PjvRaw);                                      \
-            offset = Search((Pjll_t) (Pjp->jp_LIndex), (OldPop1), Index); \
-            JU_CHECK_IF_EXISTS(offset, Pjv, Pjpm);                      \
-                                                                        \
-            if ((PjllRaw = Alloc((OldPop1) + 1, Pjpm)) == 0)            \
-                return(-1);                                             \
-            Pjll = P_JLL(PjllRaw);                                      \
-            InsertCopy((LeafType) Pjll, (LeafType) (Pjp->jp_LIndex),    \
-                       OldPop1, offset, Index);                         \
-            DBGCODE(JudyCheckSorted(Pjll, (OldPop1) + 1, cIS);)         \
-                                                                        \
-            Pjvnew = ValueArea(Pjll, (OldPop1) + 1);                    \
-            JU_INSERTCOPY(Pjvnew, Pjv, OldPop1, offset, 0);             \
-            j__udyLFreeJV(PjvRaw, (OldPop1), Pjpm);                     \
-            Pjpm->jpm_PValue = Pjvnew + offset;                         \
-                                                                        \
-            D_P0 = (Index & cJU_DCDMASK(cIS)) + (OldPop1) - 1;          \
-            JU_JPSETADT(Pjp, (Word_t)PjllRaw, D_P0, NewJPType);         \
-            return(1);                                                  \
-        }
-
-#endif // JUDYL
-
-// Common convenience/shorthand wrappers around JU_IMMSET_01_COPY() for
-// even/odd index sizes:
-
-#define JU_IMMSET_01(     cIS, LeafType, NewJPType) \
-        JU_IMMSET_01_COPY(cIS, LeafType, NewJPType, JU_IMMSET_01_COPY_EVEN, \
-                          ignore)
-
-#define JU_IMMSET_01_ODD( cIS,            NewJPType, CopyWord) \
-        JU_IMMSET_01_COPY(cIS, uint8_t *, NewJPType, JU_IMMSET_01_COPY_ODD, \
-                          CopyWord)
-
-
-// END OF MACROS; IMMED CASES START HERE:
-
-// cJU_JPIMMED_*_01 cases:
-//
-// 1_01 always leads to 1_02:
-//
-// (1_01 => 1_02 => 1_03 => [ 1_04 => ... => 1_07 => [ 1_08..15 => ]] LeafL)
-
-        case cJU_JPIMMED_1_01: JU_IMMSET_01(1, uint8_t *, cJU_JPIMMED_1_02);
-
-// 2_01 leads to 2_02, and 3_01 leads to 3_02, except for JudyL 32-bit, where
-// they lead to a leaf:
-//
-// (2_01 => [ 2_02 => 2_03 => [ 2_04..07 => ]] LeafL)
-// (3_01 => [ 3_02 =>         [ 3_03..05 => ]] LeafL)
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_2_01: JU_IMMSET_01(2, uint16_t *, cJU_JPIMMED_2_02);
-        case cJU_JPIMMED_3_01: JU_IMMSET_01_ODD (3, cJU_JPIMMED_3_02,
-                                                 JU_COPY3_LONG_TO_PINDEX);
-#else
-        case cJU_JPIMMED_2_01:
-            JU_IMMSET_01_CASCADE(2, uint16_t *, cJU_JPLEAF2, JL_LEAF2VALUEAREA,
-                                 JU_IMMSET_01_COPY_EVEN, ignore,
-                                 j__udyAllocJLL2);
-        case cJU_JPIMMED_3_01:
-            JU_IMMSET_01_CASCADE(3, uint8_t *,  cJU_JPLEAF3, JL_LEAF3VALUEAREA,
-                                 JU_IMMSET_01_COPY_ODD,
-                                 JU_COPY3_LONG_TO_PINDEX, j__udyAllocJLL3);
-#endif
-
-#ifdef JU_64BIT
-
-// [4-7]_01 lead to [4-7]_02 for Judy1, and to leaves for JudyL:
-//
-// (4_01 => [[ 4_02..03 => ]] LeafL)
-// (5_01 => [[ 5_02..03 => ]] LeafL)
-// (6_01 => [[ 6_02 =>     ]] LeafL)
-// (7_01 => [[ 7_02 =>     ]] LeafL)
-
-#ifdef JUDY1
-        case cJU_JPIMMED_4_01: JU_IMMSET_01(4, uint32_t *, cJ1_JPIMMED_4_02);
-        case cJU_JPIMMED_5_01: JU_IMMSET_01_ODD(5, cJ1_JPIMMED_5_02,
-                                                JU_COPY5_LONG_TO_PINDEX);
-        case cJU_JPIMMED_6_01: JU_IMMSET_01_ODD(6, cJ1_JPIMMED_6_02,
-                                                JU_COPY6_LONG_TO_PINDEX);
-        case cJU_JPIMMED_7_01: JU_IMMSET_01_ODD(7, cJ1_JPIMMED_7_02,
-                                                JU_COPY7_LONG_TO_PINDEX);
-#else // JUDYL
-        case cJU_JPIMMED_4_01:
-            JU_IMMSET_01_CASCADE(4, uint32_t *, cJU_JPLEAF4, JL_LEAF4VALUEAREA,
-                                 JU_IMMSET_01_COPY_EVEN, ignore,
-                                 j__udyAllocJLL4);
-        case cJU_JPIMMED_5_01:
-            JU_IMMSET_01_CASCADE(5, uint8_t *, cJU_JPLEAF5, JL_LEAF5VALUEAREA,
-                                 JU_IMMSET_01_COPY_ODD,
-                                 JU_COPY5_LONG_TO_PINDEX, j__udyAllocJLL5);
-        case cJU_JPIMMED_6_01:
-            JU_IMMSET_01_CASCADE(6, uint8_t *, cJU_JPLEAF6, JL_LEAF6VALUEAREA,
-                                 JU_IMMSET_01_COPY_ODD,
-                                 JU_COPY6_LONG_TO_PINDEX, j__udyAllocJLL6);
-        case cJU_JPIMMED_7_01:
-            JU_IMMSET_01_CASCADE(7, uint8_t *, cJU_JPLEAF7, JL_LEAF7VALUEAREA,
-                                 JU_IMMSET_01_COPY_ODD,
-                                 JU_COPY7_LONG_TO_PINDEX, j__udyAllocJLL7);
-#endif // JUDYL
-#endif // JU_64BIT
-
-// cJU_JPIMMED_1_* cases that can grow in place:
-//
-// (1_01 => 1_02 => 1_03 => [ 1_04 => ... => 1_07 => [ 1_08..15 => ]] LeafL)
-
-        case cJU_JPIMMED_1_02:
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_1_03:
-        case cJU_JPIMMED_1_04:
-        case cJU_JPIMMED_1_05:
-        case cJU_JPIMMED_1_06:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJU_JPIMMED_1_07:
-        case cJ1_JPIMMED_1_08:
-        case cJ1_JPIMMED_1_09:
-        case cJ1_JPIMMED_1_10:
-        case cJ1_JPIMMED_1_11:
-        case cJ1_JPIMMED_1_12:
-        case cJ1_JPIMMED_1_13:
-        case cJ1_JPIMMED_1_14:
-#endif
-            JU_IMMSETINPLACE(1, uint8_t *, cJU_JPIMMED_1_02, j__udySearchLeaf1,
-                             JU_INSERTINPLACE);
-
-// cJU_JPIMMED_1_* cases that must cascade:
-//
-// (1_01 => 1_02 => 1_03 => [ 1_04 => ... => 1_07 => [ 1_08..15 => ]] LeafL)
-
-#if (defined(JUDYL) && (! defined(JU_64BIT)))
-        case cJU_JPIMMED_1_03:
-            JU_IMMSETCASCADE(1, 3, uint8_t *, cJU_JPLEAF1, JL_LEAF1VALUEAREA,
-                             j__udySearchLeaf1, JU_INSERTCOPY,
-                             j__udyAllocJLL1);
-#endif
-#if (defined(JUDY1) && (! defined(JU_64BIT)))
-        case cJU_JPIMMED_1_07:
-            JU_IMMSETCASCADE(1, 7, uint8_t *, cJU_JPLEAF1, ignore,
-                             j__udySearchLeaf1, JU_INSERTCOPY,
-                             j__udyAllocJLL1);
-
-#endif
-#if (defined(JUDYL) && defined(JU_64BIT))
-        case cJU_JPIMMED_1_07:
-            JU_IMMSETCASCADE(1, 7, uint8_t *, cJU_JPLEAF1, JL_LEAF1VALUEAREA,
-                             j__udySearchLeaf1, JU_INSERTCOPY,
-                             j__udyAllocJLL1);
-
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-// Special case, as described above, go directly from Immed to LeafB1:
-
-        case cJ1_JPIMMED_1_15:
-        {
-            Word_t DcdP0;
-            int    offset;
-            Pjlb_t PjlbRaw;
-            Pjlb_t Pjlb;
-
-            offset = j__udySearchLeaf1((Pjll_t) Pjp->jp_1Index, 15, Index);
-
-            JU_CHECK_IF_EXISTS(offset, ignore, Pjpm);
-
-// Create a bitmap leaf (special case for Judy1 64-bit only, see usage):  Set
-// new Index in bitmap, copy an Immed1_15 to the bitmap, and set the parent JP
-// EXCEPT jp_DcdPopO, leaving any followup to the caller:
-
-            if ((PjlbRaw = j__udyAllocJLB1(Pjpm)) == (Pjlb_t) NULL)
-                return(-1);
-            Pjlb = P_JLB(PjlbRaw);
-
-            JU_BITMAPSETL(Pjlb, Index);
-
-            for (offset = 0; offset < 15; ++offset)
-                JU_BITMAPSETL(Pjlb, Pjp->jp_1Index[offset]);
-
-//          Set jp_DcdPopO including the current pop0; incremented later:
-            DcdP0 = (Index & cJU_DCDMASK(1)) + 15 - 1;
-            JU_JPSETADT(Pjp, (Word_t)PjlbRaw, DcdP0, cJU_JPLEAF_B1);
-
-            return(1);
-        }
-#endif
-
-// cJU_JPIMMED_[2..7]_[02..15] cases that grow in place or cascade:
-//
-// (2_01 => [ 2_02 => 2_03 => [ 2_04..07 => ]] LeafL)
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-        case cJU_JPIMMED_2_02:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJU_JPIMMED_2_03:
-        case cJ1_JPIMMED_2_04:
-        case cJ1_JPIMMED_2_05:
-        case cJ1_JPIMMED_2_06:
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-            JU_IMMSETINPLACE(2, uint16_t *, cJU_JPIMMED_2_02, j__udySearchLeaf2,
-                             JU_INSERTINPLACE);
-#endif
-
-#undef OLDPOP1
-#if ((defined(JUDY1) && (! defined(JU_64BIT))) || (defined(JUDYL) && defined(JU_64BIT)))
-        case cJU_JPIMMED_2_03:
-#define OLDPOP1 3
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_2_07:
-#define OLDPOP1 7
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-            JU_IMMSETCASCADE(2, OLDPOP1, uint16_t *, cJU_JPLEAF2,
-                             JL_LEAF2VALUEAREA, j__udySearchLeaf2,
-                             JU_INSERTCOPY, j__udyAllocJLL2);
-#endif
-
-// (3_01 => [ 3_02 => [ 3_03..05 => ]] LeafL)
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJU_JPIMMED_3_02:
-        case cJ1_JPIMMED_3_03:
-        case cJ1_JPIMMED_3_04:
-
-            JU_IMMSETINPLACE(3, uint8_t *, cJU_JPIMMED_3_02, j__udySearchLeaf3,
-                             JU_INSERTINPLACE3);
-#endif
-
-#undef OLDPOP1
-#if ((defined(JUDY1) && (! defined(JU_64BIT))) || (defined(JUDYL) && defined(JU_64BIT)))
-        case cJU_JPIMMED_3_02:
-#define OLDPOP1 2
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-        case cJ1_JPIMMED_3_05:
-#define OLDPOP1 5
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-            JU_IMMSETCASCADE(3, OLDPOP1, uint8_t *, cJU_JPLEAF3,
-                             JL_LEAF3VALUEAREA, j__udySearchLeaf3,
-                             JU_INSERTCOPY3, j__udyAllocJLL3);
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-
-// (4_01 => [[ 4_02..03 => ]] LeafL)
-
-        case cJ1_JPIMMED_4_02:
-
-            JU_IMMSETINPLACE(4, uint32_t *, cJ1_JPIMMED_4_02, j__udySearchLeaf4,
-                             JU_INSERTINPLACE);
-
-        case cJ1_JPIMMED_4_03:
-
-            JU_IMMSETCASCADE(4, 3, uint32_t *, cJU_JPLEAF4, ignore,
-                             j__udySearchLeaf4, JU_INSERTCOPY,
-                             j__udyAllocJLL4);
-
-// (5_01 => [[ 5_02..03 => ]] LeafL)
-
-        case cJ1_JPIMMED_5_02:
-
-            JU_IMMSETINPLACE(5, uint8_t *, cJ1_JPIMMED_5_02, j__udySearchLeaf5,
-                             JU_INSERTINPLACE5);
-
-        case cJ1_JPIMMED_5_03:
-
-            JU_IMMSETCASCADE(5, 3, uint8_t *, cJU_JPLEAF5, ignore,
-                             j__udySearchLeaf5, JU_INSERTCOPY5,
-                             j__udyAllocJLL5);
-
-// (6_01 => [[ 6_02 => ]] LeafL)
-
-        case cJ1_JPIMMED_6_02:
-
-            JU_IMMSETCASCADE(6, 2, uint8_t *, cJU_JPLEAF6, ignore,
-                             j__udySearchLeaf6, JU_INSERTCOPY6,
-                             j__udyAllocJLL6);
-
-// (7_01 => [[ 7_02 => ]] LeafL)
-
-        case cJ1_JPIMMED_7_02:
-
-            JU_IMMSETCASCADE(7, 2, uint8_t *, cJU_JPLEAF7, ignore,
-                             j__udySearchLeaf7, JU_INSERTCOPY7,
-                             j__udyAllocJLL7);
-
-#endif // (JUDY1 && JU_64BIT)
-
-
-// ****************************************************************************
-// INVALID JP TYPE:
-
-        default: JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_CORRUPT); return(-1);
-
-        } // switch on JP type
-
-        {
-
-#ifdef SUBEXPCOUNTS
-
-// This code might seem strange here.  However it saves some memory read time
-// during insert (~70nS) because a pipelined processor does not need to "stall"
-// waiting for the memory read to complete.  Hope the compiler is not too smart
-// or dumb and moves the code down to where it looks like it belongs (below a
-// few lines).
-
-            Word_t SubExpCount = 0;     // current subexpanse counter.
-
-            if (PSubExp != (PWord_t) NULL)      // only if BranchB/U.
-                SubExpCount = PSubExp[0];
-#endif
-
-// PROCESS JP -- RECURSIVELY:
-//
-// For non-Immed JP types, if successful, post-increment the population count
-// at this Level.
-
-            retcode = j__udyInsWalk(Pjp, Index, Pjpm);
-
-// Successful insert, increment JP and subexpanse count:
-
-            if ((JU_JPTYPE(Pjp) < cJU_JPIMMED_1_01) && (retcode == 1))
-            {
-                jp_t   JP;
-                Word_t DcdP0;
-#ifdef SUBEXPCOUNTS
-
-// Note:  Pjp must be a pointer to a BranchB/U:
-
-                if (PSubExp != (PWord_t) NULL) PSubExp[0] = SubExpCount + 1;
-#endif
-
-                JP = *Pjp;
-                DcdP0 = JU_JPDCDPOP0(Pjp) + 1;
-                JU_JPSETADT(Pjp, JP.jp_Addr, DcdP0, JU_JPTYPE(&JP));
-            }
-        }
-        return(retcode);
-
-} // j__udyInsWalk()
-
-
-// ****************************************************************************
-// J U D Y   1   S E T
-// J U D Y   L   I N S
-//
-// Main entry point.  See the manual entry for details.
-
-#ifdef JUDY1
-FUNCTION int Judy1Set
-#else
-FUNCTION PPvoid_t JudyLIns
-#endif
-        (
-        PPvoid_t  PPArray,      // in which to insert.
-        Word_t    Index,        // to insert.
-        PJError_t PJError       // optional, for returning error info.
-        )
-{
-#ifdef JUDY1
-#define Pjv       ignore        // placeholders for macros.
-#define Pjvnew    ignore
-#else
-        Pjv_t     Pjv;          // value area in old leaf.
-        Pjv_t     Pjvnew;       // value area in new leaf.
-#endif
-        Pjpm_t    Pjpm;         // array-global info.
-        int       offset;       // position in which to store new Index.
-        Pjlw_t    Pjlw;
-
-
-// CHECK FOR NULL POINTER (error by caller):
-
-        if (PPArray == (PPvoid_t) NULL)
-        {
-            JU_SET_ERRNO(PJError, JU_ERRNO_NULLPPARRAY);
-            JUDY1CODE(return(JERRI );)
-            JUDYLCODE(return(PPJERR);)
-        }
-
-        Pjlw = P_JLW(*PPArray); // first word of leaf.
-
-// ****************************************************************************
-// PROCESS TOP LEVEL "JRP" BRANCHES AND LEAVES:
-
-// ****************************************************************************
-// JRPNULL (EMPTY ARRAY):  BUILD A LEAFW WITH ONE INDEX:
-
-// if a valid empty array (null pointer), so create an array of population == 1:
-
-        if (Pjlw == (Pjlw_t)NULL)
-        {
-            Pjlw_t Pjlwnew;
-
-            Pjlwnew = j__udyAllocJLW(1);
-            JUDY1CODE(JU_CHECKALLOC(Pjlw_t, Pjlwnew, JERRI );)
-            JUDYLCODE(JU_CHECKALLOC(Pjlw_t, Pjlwnew, PPJERR);)
-
-            Pjlwnew[0] = 1 - 1;         // pop0 = 0.
-            Pjlwnew[1] = Index;
-
-            *PPArray = (Pvoid_t) Pjlwnew;
-            DBGCODE(JudyCheckPop(*PPArray);)
-
-  JUDY1CODE(return(1); )
-  JUDYLCODE(Pjlwnew[2] = 0; )           // value area.
-  JUDYLCODE(return((PPvoid_t) (Pjlwnew + 2)); )
-
-        }  // NULL JRP
-
-// ****************************************************************************
-// LEAFW, OTHER SIZE:
-
-        if (JU_LEAFW_POP0(*PPArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-        {
-            Pjlw_t Pjlwnew;
-            Word_t pop1;
-
-            Pjlw = P_JLW(*PPArray);             // first word of leaf.
-            pop1 = Pjlw[0] + 1;
-
-#ifdef JUDYL
-            Pjv = JL_LEAFWVALUEAREA(Pjlw, pop1);
-#endif
-            offset = j__udySearchLeafW(Pjlw + 1, pop1, Index);
-
-            if (offset >= 0)            // index is already valid:
-            {
-                DBGCODE(JudyCheckPop(*PPArray);)
-                JUDY1CODE(return(0); )
-                JUDYLCODE(return((PPvoid_t) (Pjv + offset)); )
-            }
-
-            offset = ~offset;
-
-// Insert index in cases where no new memory is needed:
-
-            if (JU_LEAFWGROWINPLACE(pop1))
-            {
-                ++Pjlw[0];                      // increase population.
-
-                JU_INSERTINPLACE(Pjlw + 1, pop1, offset, Index);
-#ifdef JUDYL
-                JU_INSERTINPLACE(Pjv, pop1, offset, 0);
-#endif
-                DBGCODE(JudyCheckPop(*PPArray);)
-                DBGCODE(JudyCheckSorted(Pjlw + 1, pop1 + 1, cJU_ROOTSTATE);)
-
-      JUDY1CODE(return(1); )
-      JUDYLCODE(return((PPvoid_t) (Pjv + offset)); )
-            }
-
-// Insert index into a new, larger leaf:
-
-            if (pop1 < cJU_LEAFW_MAXPOP1)       // can grow to a larger leaf.
-            {
-                Pjlwnew = j__udyAllocJLW(pop1 + 1);
-                JUDY1CODE(JU_CHECKALLOC(Pjlw_t, Pjlwnew, JERRI );)
-                JUDYLCODE(JU_CHECKALLOC(Pjlw_t, Pjlwnew, PPJERR);)
-
-                Pjlwnew[0] = pop1;              // set pop0 in new leaf.
-
-                JU_INSERTCOPY(Pjlwnew + 1, Pjlw + 1, pop1, offset, Index);
-#ifdef JUDYL
-                Pjvnew = JL_LEAFWVALUEAREA(Pjlwnew, pop1 + 1);
-                JU_INSERTCOPY(Pjvnew, Pjv, pop1, offset, 0);
-#endif
-                DBGCODE(JudyCheckSorted(Pjlwnew + 1, pop1 + 1, cJU_ROOTSTATE);)
-
-                j__udyFreeJLW(Pjlw, pop1, NULL);
-
-                *PPArray = (Pvoid_t) Pjlwnew;
-                DBGCODE(JudyCheckPop(*PPArray);)
-
-      JUDY1CODE(return(1); )
-      JUDYLCODE(return((PPvoid_t) (Pjvnew + offset)); )
-            }
-
-            assert(pop1 == cJU_LEAFW_MAXPOP1);
-
-// Leaf at max size => cannot insert new index, so cascade instead:
-//
-// Upon cascading from a LEAFW leaf to the first branch, must allocate and
-// initialize a JPM.
-
-            Pjpm = j__udyAllocJPM();
-            JUDY1CODE(JU_CHECKALLOC(Pjpm_t, Pjpm, JERRI );)
-            JUDYLCODE(JU_CHECKALLOC(Pjpm_t, Pjpm, PPJERR);)
-
-            (Pjpm->jpm_Pop0)       = cJU_LEAFW_MAXPOP1 - 1;
-            (Pjpm->jpm_JP.jp_Addr) = (Word_t) Pjlw;
-
-            if (j__udyCascadeL(&(Pjpm->jpm_JP), Pjpm) == -1)
-            {
-                JU_COPY_ERRNO(PJError, Pjpm);
-                JUDY1CODE(return(JERRI );)
-                JUDYLCODE(return(PPJERR);)
-            }
-
-// Note:  No need to pass Pjpm for memory decrement; LEAFW memory is never
-// counted in a JPM at all:
-
-            j__udyFreeJLW(Pjlw, cJU_LEAFW_MAXPOP1, NULL);
-            *PPArray = (Pvoid_t) Pjpm;
-
-        } // JU_LEAFW
-
-// ****************************************************************************
-// BRANCH:
-
-        {
-            int retcode;  // really only needed for Judy1, but free for JudyL.
-
-            Pjpm = P_JPM(*PPArray);
-            retcode = j__udyInsWalk(&(Pjpm->jpm_JP), Index, Pjpm);
-
-            if (retcode == -1)
-            {
-                JU_COPY_ERRNO(PJError, Pjpm);
-                JUDY1CODE(return(JERRI );)
-                JUDYLCODE(return(PPJERR);)
-            }
-
-            if (retcode ==  1) ++(Pjpm->jpm_Pop0);  // incr total array popu.
-
-            assert(((Pjpm->jpm_JP.jp_Type) == cJU_JPBRANCH_L)
-                || ((Pjpm->jpm_JP.jp_Type) == cJU_JPBRANCH_B)
-                || ((Pjpm->jpm_JP.jp_Type) == cJU_JPBRANCH_U));
-            DBGCODE(JudyCheckPop(*PPArray);)
-
-#ifdef JUDY1
-            assert((retcode == 0) || (retcode == 1));
-            return(retcode);            // == JU_RET_*_JPM().
-#else
-            assert(Pjpm->jpm_PValue != (Pjv_t) NULL);
-            return((PPvoid_t) Pjpm->jpm_PValue);
-#endif
-        }
-        /*NOTREACHED*/
-
-} // Judy1Set() / JudyLIns()
diff --git a/libs/klib/judy/JudyInsArray.c b/libs/klib/judy/JudyInsArray.c
deleted file mode 100644
index c647ea5..0000000
--- a/libs/klib/judy/JudyInsArray.c
+++ /dev/null
@@ -1,1176 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// TBD:  It would probably be faster for the caller if the JudyL version took
-// PIndex as an interleaved array of indexes and values rather than just
-// indexes with a separate values array (PValue), especially considering
-// indexes and values are copied here with for-loops anyway and not the
-// equivalent of memcpy().  All code could be revised to simply count by two
-// words for JudyL?  Supports "streaming" the data to/from disk better later?
-// In which case get rid of JU_ERRNO_NULLPVALUE, no longer needed, and simplify
-// the API to this code.
-// _________________
-
-// Judy1SetArray() and JudyLInsArray() functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-DBGCODE(extern void JudyCheckPop(Pvoid_t PArray);)
-
-
-// IMMED AND LEAF SIZE AND BRANCH TYPE ARRAYS:
-//
-// These support fast and easy lookup by level.
-
-static uint8_t immed_maxpop1[] = {
-    0,
-    cJU_IMMED1_MAXPOP1,
-    cJU_IMMED2_MAXPOP1,
-    cJU_IMMED3_MAXPOP1,
-#ifdef JU_64BIT
-    cJU_IMMED4_MAXPOP1,
-    cJU_IMMED5_MAXPOP1,
-    cJU_IMMED6_MAXPOP1,
-    cJU_IMMED7_MAXPOP1,
-#endif
-    // note:  There are no IMMEDs for whole words.
-};
-
-static uint8_t leaf_maxpop1[] = {
-    0,
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-    cJU_LEAF1_MAXPOP1,
-#else
-    0,                                  // 64-bit Judy1 has no Leaf1.
-#endif
-    cJU_LEAF2_MAXPOP1,
-    cJU_LEAF3_MAXPOP1,
-#ifdef JU_64BIT
-    cJU_LEAF4_MAXPOP1,
-    cJU_LEAF5_MAXPOP1,
-    cJU_LEAF6_MAXPOP1,
-    cJU_LEAF7_MAXPOP1,
-#endif
-    // note:  Root-level leaves are handled differently.
-};
-
-static uint8_t branchL_JPtype[] = {
-    0,
-    0,
-    cJU_JPBRANCH_L2,
-    cJU_JPBRANCH_L3,
-#ifdef JU_64BIT
-    cJU_JPBRANCH_L4,
-    cJU_JPBRANCH_L5,
-    cJU_JPBRANCH_L6,
-    cJU_JPBRANCH_L7,
-#endif
-    cJU_JPBRANCH_L,
-};
-
-static uint8_t branchB_JPtype[] = {
-    0,
-    0,
-    cJU_JPBRANCH_B2,
-    cJU_JPBRANCH_B3,
-#ifdef JU_64BIT
-    cJU_JPBRANCH_B4,
-    cJU_JPBRANCH_B5,
-    cJU_JPBRANCH_B6,
-    cJU_JPBRANCH_B7,
-#endif
-    cJU_JPBRANCH_B,
-};
-
-static uint8_t branchU_JPtype[] = {
-    0,
-    0,
-    cJU_JPBRANCH_U2,
-    cJU_JPBRANCH_U3,
-#ifdef JU_64BIT
-    cJU_JPBRANCH_U4,
-    cJU_JPBRANCH_U5,
-    cJU_JPBRANCH_U6,
-    cJU_JPBRANCH_U7,
-#endif
-    cJU_JPBRANCH_U,
-};
-
-// Subexpanse masks are similer to JU_DCDMASK() but without the need to clear
-// the first digits bits.  Avoid doing variable shifts by precomputing a
-// lookup array.
-
-static Word_t subexp_mask[] = {
-    0,
-    ~cJU_POP0MASK(1),
-    ~cJU_POP0MASK(2),
-    ~cJU_POP0MASK(3),
-#ifdef JU_64BIT
-    ~cJU_POP0MASK(4),
-    ~cJU_POP0MASK(5),
-    ~cJU_POP0MASK(6),
-    ~cJU_POP0MASK(7),
-#endif
-};
-
-
-// FUNCTION PROTOTYPES:
-
-static bool_t j__udyInsArray(Pjp_t PjpParent, int Level, PWord_t PPop1,
-                             PWord_t PIndex,
-#ifdef JUDYL
-                             Pjv_t   PValue,
-#endif
-                             Pjpm_t  Pjpm);
-
-
-// ****************************************************************************
-// J U D Y   1   S E T   A R R A Y
-// J U D Y   L   I N S   A R R A Y
-//
-// Main entry point.  See the manual entry for external overview.
-//
-// TBD:  Until thats written, note that the function returns 1 for success or
-// JERRI for serious error, including insufficient memory to build whole array;
-// use Judy*Count() to see how many were stored, the first N of the total
-// Count.  Also, since it takes Count == Pop1, it cannot handle a full array.
-// Also, "sorted" means ascending without duplicates, otherwise you get the
-// "unsorted" error.
-//
-// The purpose of these functions is to allow rapid construction of a large
-// Judy array given a sorted list of indexes (and for JudyL, corresponding
-// values).  At least one customer saw this as useful, and probably it would
-// also be useful as a sufficient workaround for fast(er) unload/reload to/from
-// disk.
-//
-// This code is written recursively for simplicity, until/unless someone
-// decides to make it faster and more complex.  Hopefully recursion is fast
-// enough simply because the function is so much faster than a series of
-// Set/Ins calls.
-
-#ifdef JUDY1
-FUNCTION int Judy1SetArray
-#else
-FUNCTION int JudyLInsArray
-#endif
-        (
-        PPvoid_t  PPArray,      // in which to insert, initially empty.
-        Word_t    Count,        // number of indexes (and values) to insert.
-const   Word_t *  const PIndex, // list of indexes to insert.
-#ifdef JUDYL
-const   Word_t *  const PValue, // list of corresponding values.
-#endif
-        PJError_t PJError       // optional, for returning error info.
-        )
-{
-        Pjlw_t    Pjlw;         // new root-level leaf.
-        Pjlw_t    Pjlwindex;    // first index in root-level leaf.
-        int       offset;       // in PIndex.
-
-
-// CHECK FOR NULL OR NON-NULL POINTER (error by caller):
-
-        if (PPArray == (PPvoid_t) NULL)
-        { JU_SET_ERRNO(PJError, JU_ERRNO_NULLPPARRAY);   return(JERRI); }
-
-        if (*PPArray != (Pvoid_t) NULL)
-        { JU_SET_ERRNO(PJError, JU_ERRNO_NONNULLPARRAY); return(JERRI); }
-
-        if (PIndex == (PWord_t) NULL)
-        { JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);    return(JERRI); }
-
-#ifdef JUDYL
-        if (PValue == (PWord_t) NULL)
-        { JU_SET_ERRNO(PJError, JU_ERRNO_NULLPVALUE);    return(JERRI); }
-#endif
-
-
-// HANDLE LARGE COUNT (= POP1) (typical case):
-//
-// Allocate and initialize a JPM, set the root pointer to point to it, and then
-// build the tree underneath it.
-
-// Common code for unusual error handling when no JPM available:
-
-        if (Count > cJU_LEAFW_MAXPOP1)  // too big for root-level leaf.
-        {
-            Pjpm_t Pjpm;                        // new, to allocate.
-
-// Allocate JPM:
-
-            Pjpm = j__udyAllocJPM();
-            JU_CHECKALLOC(Pjpm_t, Pjpm, JERRI);
-            *PPArray = (Pvoid_t) Pjpm;
-
-// Set some JPM fields:
-
-            (Pjpm->jpm_Pop0) = Count - 1;
-            // note: (Pjpm->jpm_TotalMemWords) is now initialized.
-
-// Build Judy tree:
-//
-// In case of error save the final Count, possibly modified, unless modified to
-// 0, in which case free the JPM itself:
-
-            if (! j__udyInsArray(&(Pjpm->jpm_JP), cJU_ROOTSTATE, &Count,
-                                 (PWord_t) PIndex,
-#ifdef JUDYL
-                                 (Pjv_t) PValue,
-#endif
-                                 Pjpm))
-            {
-                JU_COPY_ERRNO(PJError, Pjpm);
-
-                if (Count)              // partial success, adjust pop0:
-                {
-                    (Pjpm->jpm_Pop0) = Count - 1;
-                }
-                else                    // total failure, free JPM:
-                {
-                    j__udyFreeJPM(Pjpm, (Pjpm_t) NULL);
-                    *PPArray = (Pvoid_t) NULL;
-                }
-
-                DBGCODE(JudyCheckPop(*PPArray);)
-                return(JERRI);
-            }
-
-            DBGCODE(JudyCheckPop(*PPArray);)
-            return(1);
-
-        } // large count
-
-
-// HANDLE SMALL COUNT (= POP1):
-//
-// First ensure indexes are in sorted order:
-
-        for (offset = 1; offset < Count; ++offset)
-        {
-            if (PIndex[offset - 1] >= PIndex[offset])
-            { JU_SET_ERRNO(PJError, JU_ERRNO_UNSORTED); return(JERRI); }
-        }
-
-        if (Count == 0) return(1);              // *PPArray remains null.
-
-        {
-            Pjlw      = j__udyAllocJLW(Count + 1);
-                        JU_CHECKALLOC(Pjlw_t, Pjlw, JERRI);
-            *PPArray  = (Pvoid_t) Pjlw;
-            Pjlw[0]   = Count - 1;              // set pop0.
-            Pjlwindex = Pjlw + 1;
-        }
-
-// Copy whole-word indexes (and values) to the root-level leaf:
-
-          JU_COPYMEM(Pjlwindex,                      PIndex, Count);
-JUDYLCODE(JU_COPYMEM(JL_LEAFWVALUEAREA(Pjlw, Count), PValue, Count));
-
-        DBGCODE(JudyCheckPop(*PPArray);)
-        return(1);
-
-} // Judy1SetArray() / JudyLInsArray()
-
-
-// ****************************************************************************
-// __ J U D Y   I N S   A R R A Y
-//
-// Given:
-//
-// - a pointer to a JP
-//
-// - the JPs level in the tree, that is, the number of digits left to decode
-//   in the indexes under the JP (one less than the level of the JPM or branch
-//   in which the JP resides); cJU_ROOTSTATE on first entry (when JP is the one
-//   in the JPM), down to 1 for a Leaf1, LeafB1, or FullPop
-//
-// - a pointer to the number of indexes (and corresponding values) to store in
-//   this subtree, to modify in case of partial success
-//
-// - a list of indexes (and for JudyL, corresponding values) to store in this
-//   subtree
-//
-// - a JPM for tracking memory usage and returning errors
-//
-// Recursively build a subtree (immediate indexes, leaf, or branch with
-// subtrees) and modify the JP accordingly.  On the way down, build a BranchU
-// (only) for any expanse with *PPop1 too high for a leaf; on the way out,
-// convert the BranchU to a BranchL or BranchB if appropriate.  Keep memory
-// statistics in the JPM.
-//
-// Return TRUE for success, or FALSE with error information set in the JPM in
-// case of error, in which case leave a partially constructed but healthy tree,
-// and modify parent population counts on the way out.
-//
-// Note:  Each call of this function makes all modifications to the PjpParent
-// it receives; neither the parent nor child calls do this.
-
-FUNCTION static bool_t j__udyInsArray(
-        Pjp_t   PjpParent,              // parent JP in/under which to store.
-        int     Level,                  // initial digits remaining to decode.
-        PWord_t PPop1,                  // number of indexes to store.
-        PWord_t PIndex,                 // list of indexes to store.
-#ifdef JUDYL
-        Pjv_t   PValue,                 // list of corresponding values.
-#endif
-        Pjpm_t  Pjpm)                   // for memory and errors.
-{
-        Pjp_t   Pjp;                    // lower-level JP.
-        Word_t  Pjbany;                 // any type of branch.
-        int     levelsub;               // actual, of Pjps node, <= Level.
-        Word_t  pop1 = *PPop1;          // fast local value.
-        Word_t  pop1sub;                // population of one subexpanse.
-        uint8_t JPtype;                 // current JP type.
-        uint8_t JPtype_null;            // precomputed value for new branch.
-        jp_t    JPnull;                 // precomputed for speed.
-        Pjbu_t  PjbuRaw;                // constructed BranchU.
-        Pjbu_t  Pjbu;
-        int     digit;                  // in BranchU.
-        Word_t  digitmask;              // for a digit in a BranchU.
-        Word_t  digitshifted;           // shifted to correct offset.
-        Word_t  digitshincr;            // increment for digitshifted.
-        int     offset;                 // in PIndex, or a bitmap subexpanse.
-        int     numJPs;                 // number non-null in a BranchU.
-        bool_t  retval;                 // to return from this func.
-JUDYLCODE(Pjv_t PjvRaw);                // destination value area.
-JUDYLCODE(Pjv_t Pjv);
-
-
-// MACROS FOR COMMON CODE:
-//
-// Note:  These use function and local parameters from the context.
-// Note:  Assume newly allocated memory is zeroed.
-
-// Indicate whether a sorted list of indexes in PIndex, based on the first and
-// last indexes in the list using pop1, are in the same subexpanse between
-// Level and L_evel:
-//
-// This can be confusing!  Note that SAMESUBEXP(L) == TRUE means the indexes
-// are the same through level L + 1, and it says nothing about level L and
-// lower; they might be the same or they might differ.
-//
-// Note:  In principle SAMESUBEXP needs a mask for the digits from Level,
-// inclusive, to L_evel, exclusive.  But in practice, since the indexes are all
-// known to be identical above Level, it just uses a mask for the digits
-// through L_evel + 1; see subexp_mask[].
-
-#define SAMESUBEXP(L_evel) \
-        (! ((PIndex[0] ^ PIndex[pop1 - 1]) & subexp_mask[L_evel]))
-
-// Set PjpParent to a null JP appropriate for the level of the node to which it
-// points, which is 1 less than the level of the node in which the JP resides,
-// which is by definition Level:
-//
-// Note:  This can set the JPMs JP to an invalid jp_Type, but it doesnt
-// matter because the JPM is deleted by the caller.
-
-#define SETJPNULL_PARENT \
-            JU_JPSETADT(PjpParent, 0, 0, cJU_JPNULL1 + Level - 1);
-
-// Variation to set a specified JP (in a branch being built) to a precomputed
-// null JP:
-
-#define SETJPNULL(Pjp) *(Pjp) = JPnull
-
-// Handle complete (as opposed to partial) memory allocation failure:  Set the
-// parent JP to an appropriate null type (to leave a consistent tree), zero the
-// callers population count, and return FALSE:
-//
-// Note:  At Level == cJU_ROOTSTATE this sets the JPMs JPs jp_Type to a bogus
-// value, but it doesnt matter because the JPM should be deleted by the
-// caller.
-
-#define NOMEM { SETJPNULL_PARENT; *PPop1 = 0; return(FALSE); }
-
-// Allocate a Leaf1-N and save the address in Pjll; in case of failure, NOMEM:
-
-#define ALLOCLEAF(AllocLeaf) \
-        if ((PjllRaw = AllocLeaf(pop1, Pjpm)) == (Pjll_t) NULL) NOMEM; \
-        Pjll = P_JLL(PjllRaw);
-
-// Copy indexes smaller than words (and values which are whole words) from
-// given arrays to immediate indexes or a leaf:
-//
-// TBD:  These macros overlap with some of the code in JudyCascade.c; do some
-// merging?  That file has functions while these are macros.
-
-#define COPYTOLEAF_EVEN_SUB(Pjll,LeafType)              \
-        {                                               \
-            LeafType * P_leaf  = (LeafType *) (Pjll);   \
-            Word_t     p_op1   = pop1;                  \
-            PWord_t    P_Index = PIndex;                \
-                                                        \
-            assert(pop1 > 0);                           \
-                                                        \
-            do { *P_leaf++ = *P_Index++; /* truncates */\
-            } while (--(p_op1));                        \
-        }
-
-#define COPYTOLEAF_ODD_SUB(cLevel,Pjll,Copy)            \
-        {                                               \
-            uint8_t * P_leaf  = (uint8_t *) (Pjll);     \
-            Word_t    p_op1   = pop1;                   \
-            PWord_t   P_Index = PIndex;                 \
-                                                        \
-            assert(pop1 > 0);                           \
-                                                        \
-            do {                                        \
-                Copy(P_leaf, *P_Index);                 \
-                P_leaf += (cLevel); ++P_Index;          \
-            } while (--(p_op1));                        \
-        }
-
-#ifdef JUDY1
-
-#define COPYTOLEAF_EVEN(Pjll,LeafType)   COPYTOLEAF_EVEN_SUB(Pjll,LeafType)
-#define COPYTOLEAF_ODD(cLevel,Pjll,Copy) COPYTOLEAF_ODD_SUB(cLevel,Pjll,Copy)
-
-#else // JUDYL adds copying of values:
-
-#define COPYTOLEAF_EVEN(Pjll,LeafType)                  \
-        {                                               \
-            COPYTOLEAF_EVEN_SUB(Pjll,LeafType)          \
-            JU_COPYMEM(Pjv, PValue, pop1);              \
-        }
-
-#define COPYTOLEAF_ODD(cLevel,Pjll,Copy)                \
-        {                                               \
-            COPYTOLEAF_ODD_SUB( cLevel,Pjll,Copy)       \
-            JU_COPYMEM(Pjv, PValue, pop1);              \
-        }
-
-#endif
-
-// Set the JP type for an immediate index, where BaseJPType is JPIMMED_*_02:
-
-#define SETIMMTYPE(BaseJPType)  (PjpParent->jp_Type) = (BaseJPType) + pop1 - 2
-
-// Allocate and populate a Leaf1-N:
-//
-// Build MAKELEAF_EVEN() and MAKELEAF_ODD() using macros for common code.
-
-#define MAKELEAF_SUB1(AllocLeaf,ValueArea,LeafType)                     \
-        ALLOCLEAF(AllocLeaf);                                           \
-        JUDYLCODE(Pjv = ValueArea(Pjll, pop1))
-
-
-#define MAKELEAF_SUB2(cLevel,JPType)                                    \
-{                                                                       \
-        Word_t D_cdP0;                                                  \
-        assert(pop1 - 1 <= cJU_POP0MASK(cLevel));                       \
-        D_cdP0 = (*PIndex & cJU_DCDMASK(cLevel)) | (pop1 - 1);          \
-        JU_JPSETADT(PjpParent, (Word_t)PjllRaw, D_cdP0, JPType);        \
-}
-
-
-#define MAKELEAF_EVEN(cLevel,JPType,AllocLeaf,ValueArea,LeafType)       \
-        MAKELEAF_SUB1(AllocLeaf,ValueArea,LeafType);                    \
-        COPYTOLEAF_EVEN(Pjll, LeafType);                                \
-        MAKELEAF_SUB2(cLevel, JPType)
-
-#define MAKELEAF_ODD(cLevel,JPType,AllocLeaf,ValueArea,Copy)            \
-        MAKELEAF_SUB1(AllocLeaf,ValueArea,LeafType);                    \
-        COPYTOLEAF_ODD(cLevel, Pjll, Copy);                             \
-        MAKELEAF_SUB2(cLevel, JPType)
-
-// Ensure that the indexes to be stored in immediate indexes or a leaf are
-// sorted:
-//
-// This check is pure overhead, but required in order to protect the Judy array
-// against caller error, to avoid a later corruption or core dump from a
-// seemingly valid Judy array.  Do this check piecemeal at the leaf level while
-// the indexes are already in the cache.  Higher-level order-checking occurs
-// while building branches.
-//
-// Note:  Any sorting error in the expanse of a single immediate indexes JP or
-// a leaf => save no indexes in that expanse.
-
-#define CHECKLEAFORDER                                                  \
-        {                                                               \
-            for (offset = 1; offset < pop1; ++offset)                   \
-            {                                                           \
-                if (PIndex[offset - 1] >= PIndex[offset])               \
-                {                                                       \
-                    SETJPNULL_PARENT;                                   \
-                    *PPop1 = 0;                                         \
-                    JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_UNSORTED);      \
-                    return(FALSE);                                      \
-                }                                                       \
-            }                                                           \
-        }
-
-
-// ------ START OF CODE ------
-
-        assert( Level >= 1);
-        assert( Level <= cJU_ROOTSTATE);
-        assert((Level <  cJU_ROOTSTATE) || (pop1 > cJU_LEAFW_MAXPOP1));
-
-
-// CHECK FOR TOP LEVEL:
-//
-// Special case:  If at the top level (PjpParent is in the JPM), a top-level
-// branch must be created, even if its a BranchL with just one JP.  (The JPM
-// cannot point to a leaf because the leaf would have to be a lower-level,
-// higher-capacity leaf under a narrow pointer (otherwise a root-level leaf
-// would suffice), and the JPMs JP cant handle a narrow pointer because the
-// jp_DcdPopO field isnt big enough.)  Otherwise continue to check for a pop1
-// small enough to support immediate indexes or a leaf before giving up and
-// making a lower-level branch.
-
-        if (Level == cJU_ROOTSTATE)
-        {
-            levelsub = cJU_ROOTSTATE;
-            goto BuildBranch2;
-        }
-        assert(Level < cJU_ROOTSTATE);
-
-
-// SKIP JPIMMED_*_01:
-//
-// Immeds with pop1 == 1 should be handled in-line during branch construction.
-
-        assert(pop1 > 1);
-
-
-// BUILD JPIMMED_*_02+:
-//
-// The starting address of the indexes depends on Judy1 or JudyL; also, JudyL
-// includes a pointer to a values-only leaf.
-
-        if (pop1 <= immed_maxpop1[Level])      // note: always < root level.
-        {
-            JUDY1CODE(uint8_t * Pjll = (uint8_t *) (PjpParent->jp_1Index);)
-            JUDYLCODE(uint8_t * Pjll = (uint8_t *) (PjpParent->jp_LIndex);)
-
-            CHECKLEAFORDER;             // indexes to be stored are sorted.
-
-#ifdef JUDYL
-            if ((PjvRaw = j__udyLAllocJV(pop1, Pjpm)) == (Pjv_t) NULL)
-                NOMEM;
-            (PjpParent->jp_Addr) = (Word_t) PjvRaw;
-            Pjv = P_JV(PjvRaw);
-#endif
-
-            switch (Level)
-            {
-            case 1: COPYTOLEAF_EVEN(Pjll, uint8_t);
-                    SETIMMTYPE(cJU_JPIMMED_1_02);
-                    break;
-#if (defined(JUDY1) || defined(JU_64BIT))
-            case 2: COPYTOLEAF_EVEN(Pjll, uint16_t);
-                    SETIMMTYPE(cJU_JPIMMED_2_02);
-                    break;
-            case 3: COPYTOLEAF_ODD(3, Pjll, JU_COPY3_LONG_TO_PINDEX);
-                    SETIMMTYPE(cJU_JPIMMED_3_02);
-                    break;
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-            case 4: COPYTOLEAF_EVEN(Pjll, uint32_t);
-                    SETIMMTYPE(cJ1_JPIMMED_4_02);
-                    break;
-            case 5: COPYTOLEAF_ODD(5, Pjll, JU_COPY5_LONG_TO_PINDEX);
-                    SETIMMTYPE(cJ1_JPIMMED_5_02);
-                    break;
-            case 6: COPYTOLEAF_ODD(6, Pjll, JU_COPY6_LONG_TO_PINDEX);
-                    SETIMMTYPE(cJ1_JPIMMED_6_02);
-                    break;
-            case 7: COPYTOLEAF_ODD(7, Pjll, JU_COPY7_LONG_TO_PINDEX);
-                    SETIMMTYPE(cJ1_JPIMMED_7_02);
-                    break;
-#endif
-            default: assert(FALSE);     // should be impossible.
-            }
-
-            return(TRUE);               // note: no children => no *PPop1 mods.
-
-        } // JPIMMED_*_02+
-
-
-// BUILD JPLEAF*:
-//
-// This code is a little tricky.  The method is:  For each level starting at
-// the present Level down through levelsub = 1, and then as a special case for
-// LeafB1 and FullPop (which are also at levelsub = 1 but have different
-// capacity, see later), check if pop1 fits in a leaf (using leaf_maxpop1[])
-// at that level.  If so, except for Level == levelsub, check if all of the
-// current indexes to be stored are in the same (narrow) subexpanse, that is,
-// the digits from Level to levelsub + 1, inclusive, are identical between the
-// first and last index in the (sorted) list (in PIndex).  If this condition is
-// satisfied at any level, build a leaf at that level (under a narrow pointer
-// if Level > levelsub).
-//
-// Note:  Doing the search in this order results in storing the indexes in
-// "least compressed form."
-
-        for (levelsub = Level; levelsub >= 1; --levelsub)
-        {
-            Pjll_t PjllRaw;
-            Pjll_t Pjll;
-
-// Check if pop1 is too large to fit in a leaf at levelsub; if so, try the next
-// lower level:
-
-            if (pop1 > leaf_maxpop1[levelsub]) continue;
-
-// If pop1 fits in a leaf at levelsub, but levelsub is lower than Level, must
-// also check whether all the indexes in the expanse to store can in fact be
-// placed under a narrow pointer; if not, a leaf cannot be used, at this or any
-// lower level (levelsub):
-
-            if ((levelsub < Level) && (! SAMESUBEXP(levelsub)))
-                goto BuildBranch;       // cant use a narrow, need a branch.
-
-// Ensure valid pop1 and all indexes are in fact common through Level:
-
-            assert(pop1 <= cJU_POP0MASK(Level) + 1);
-            assert(! ((PIndex[0] ^ PIndex[pop1 - 1]) & cJU_DCDMASK(Level)));
-
-            CHECKLEAFORDER;             // indexes to be stored are sorted.
-
-// Build correct type of leaf:
-//
-// Note:  The jp_DcdPopO and jp_Type assignments in MAKELEAF_* happen correctly
-// for the levelsub (not Level) of the new leaf, even if its under a narrow
-// pointer.
-
-            switch (levelsub)
-            {
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-            case 1: MAKELEAF_EVEN(1, cJU_JPLEAF1, j__udyAllocJLL1,
-                                  JL_LEAF1VALUEAREA, uint8_t);
-                    break;
-#endif
-            case 2: MAKELEAF_EVEN(2, cJU_JPLEAF2, j__udyAllocJLL2,
-                                  JL_LEAF2VALUEAREA, uint16_t);
-                    break;
-            case 3: MAKELEAF_ODD( 3, cJU_JPLEAF3, j__udyAllocJLL3,
-                                  JL_LEAF3VALUEAREA, JU_COPY3_LONG_TO_PINDEX);
-                    break;
-#ifdef JU_64BIT
-            case 4: MAKELEAF_EVEN(4, cJU_JPLEAF4, j__udyAllocJLL4,
-                                  JL_LEAF4VALUEAREA, uint32_t);
-                    break;
-            case 5: MAKELEAF_ODD( 5, cJU_JPLEAF5, j__udyAllocJLL5,
-                                  JL_LEAF5VALUEAREA, JU_COPY5_LONG_TO_PINDEX);
-                    break;
-            case 6: MAKELEAF_ODD( 6, cJU_JPLEAF6, j__udyAllocJLL6,
-                                  JL_LEAF6VALUEAREA, JU_COPY6_LONG_TO_PINDEX);
-                    break;
-            case 7: MAKELEAF_ODD( 7, cJU_JPLEAF7, j__udyAllocJLL7,
-                                  JL_LEAF7VALUEAREA, JU_COPY7_LONG_TO_PINDEX);
-                    break;
-#endif
-            default: assert(FALSE);     // should be impossible.
-            }
-
-            return(TRUE);               // note: no children => no *PPop1 mods.
-
-        } // JPLEAF*
-
-
-// BUILD JPLEAF_B1 OR JPFULLPOPU1:
-//
-// See above about JPLEAF*.  If pop1 doesnt fit in any level of linear leaf,
-// it might still fit in a LeafB1 or FullPop, perhaps under a narrow pointer.
-
-        if ((Level == 1) || SAMESUBEXP(1))      // same until last digit.
-        {
-            Pjlb_t PjlbRaw;                     // for bitmap leaf.
-            Pjlb_t Pjlb;
-
-            assert(pop1 <= cJU_JPFULLPOPU1_POP0 + 1);
-            CHECKLEAFORDER;             // indexes to be stored are sorted.
-
-#ifdef JUDY1
-
-// JPFULLPOPU1:
-
-            if (pop1 == cJU_JPFULLPOPU1_POP0 + 1)
-            {
-                Word_t  Addr  = PjpParent->jp_Addr;
-                Word_t  DcdP0 = (*PIndex & cJU_DCDMASK(1))
-                                        | cJU_JPFULLPOPU1_POP0;
-                JU_JPSETADT(PjpParent, Addr, DcdP0, cJ1_JPFULLPOPU1);
-
-                return(TRUE);
-            }
-#endif
-
-// JPLEAF_B1:
-
-            if ((PjlbRaw = j__udyAllocJLB1(Pjpm)) == (Pjlb_t) NULL)
-                NOMEM;
-            Pjlb = P_JLB(PjlbRaw);
-
-            for (offset = 0; offset < pop1; ++offset)
-                JU_BITMAPSETL(Pjlb, PIndex[offset]);
-
-            retval = TRUE;              // default.
-
-#ifdef JUDYL
-
-// Build subexpanse values-only leaves (LeafVs) under LeafB1:
-
-            for (offset = 0; offset < cJU_NUMSUBEXPL; ++offset)
-            {
-                if (! (pop1sub = j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, offset))))
-                    continue;           // skip empty subexpanse.
-
-// Allocate one LeafV = JP subarray; if out of memory, clear bitmaps for higher
-// subexpanses and adjust *PPop1:
-
-                if ((PjvRaw = j__udyLAllocJV(pop1sub, Pjpm))
-                 == (Pjv_t) NULL)
-                {
-                    for (/* null */; offset < cJU_NUMSUBEXPL; ++offset)
-                    {
-                        *PPop1 -= j__udyCountBitsL(JU_JLB_BITMAP(Pjlb, offset));
-                        JU_JLB_BITMAP(Pjlb, offset) = 0;
-                    }
-
-                    retval = FALSE;
-                    break;
-                }
-
-// Populate values-only leaf and save the pointer to it:
-
-                Pjv = P_JV(PjvRaw);
-                JU_COPYMEM(Pjv, PValue, pop1sub);
-                JL_JLB_PVALUE(Pjlb, offset) = PjvRaw;   // first-tier pointer.
-                PValue += pop1sub;
-
-            } // for each subexpanse
-
-#endif // JUDYL
-
-// Attach new LeafB1 to parent JP; note use of *PPop1 possibly < pop1:
-
-            JU_JPSETADT(PjpParent, (Word_t) PjlbRaw, 
-                    (*PIndex & cJU_DCDMASK(1)) | (*PPop1 - 1), cJU_JPLEAF_B1);
-
-            return(retval);
-
-        } // JPLEAF_B1 or JPFULLPOPU1
-
-
-// BUILD JPBRANCH_U*:
-//
-// Arriving at BuildBranch means Level < top level but the pop1 is too large
-// for immediate indexes or a leaf, even under a narrow pointer, including a
-// LeafB1 or FullPop at level 1.  This implies SAMESUBEXP(1) == FALSE, that is,
-// the indexes to be stored "branch" at level 2 or higher.
-
-BuildBranch:    // come here directly if a leaf wont work.
-
-        assert(Level >= 2);
-        assert(Level < cJU_ROOTSTATE);
-        assert(! SAMESUBEXP(1));                // sanity check, see above.
-
-// Determine the appropriate level for a new branch node; see if a narrow
-// pointer can be used:
-//
-// This can be confusing.  The branch is required at the lowest level L where
-// the indexes to store are not in the same subexpanse at level L-1.  Work down
-// from Level to tree level 3, which is 1 above the lowest tree level = 2 at
-// which a branch can be used.  Theres no need to check SAMESUBEXP at level 2
-// because its known to be false at level 2-1 = 1.
-//
-// Note:  Unlike for a leaf node, a narrow pointer is always used for a branch
-// if possible, that is, maximum compression is always used, except at the top
-// level of the tree, where a JPM cannot support a narrow pointer, meaning a
-// top BranchL can have a single JP (fanout = 1); but that case jumps directly
-// to BuildBranch2.
-//
-// Note:  For 32-bit systems the only usable values for a narrow pointer are
-// Level = 3 and levelsub = 2; 64-bit systems have many more choices; but
-// hopefully this for-loop is fast enough even on a 32-bit system.
-//
-// TBD:  If not fast enough, #ifdef JU_64BIT and handle the 32-bit case faster.
-
-        for (levelsub = Level; levelsub >= 3; --levelsub)  // see above.
-            if (! SAMESUBEXP(levelsub - 1))     // at limit of narrow pointer.
-                break;                          // put branch at levelsub.
-
-BuildBranch2:   // come here directly for Level = levelsub = cJU_ROOTSTATE.
-
-        assert(levelsub >= 2);
-        assert(levelsub <= Level);
-
-// Initially build a BranchU:
-//
-// Always start with a BranchU because the number of populated subexpanses is
-// not yet known.  Use digitmask, digitshifted, and digitshincr to avoid
-// expensive variable shifts within JU_DIGITATSTATE within the loop.
-//
-// TBD:  The use of digitmask, etc. results in more increment operations per
-// loop, is there an even faster way?
-//
-// TBD:  Would it pay to pre-count the populated JPs (subexpanses) and
-// pre-compress the branch, that is, build a BranchL or BranchB immediately,
-// also taking account of opportunistic uncompression rules?  Probably not
-// because at high levels of the tree there might be huge numbers of indexes
-// (hence cache lines) to scan in the PIndex array to determine the fanout
-// (number of JPs) needed.
-
-        if ((PjbuRaw = j__udyAllocJBU(Pjpm)) == (Pjbu_t) NULL) NOMEM;
-        Pjbu = P_JBU(PjbuRaw);
-
-        JPtype_null       = cJU_JPNULL1 + levelsub - 2;  // in new BranchU.
-        JU_JPSETADT(&JPnull, 0, 0, JPtype_null);
-
-        Pjp               = Pjbu->jbu_jp;           // for convenience in loop.
-        numJPs            = 0;                      // non-null in the BranchU.
-        digitmask         = cJU_MASKATSTATE(levelsub);   // see above.
-        digitshincr       = 1UL << (cJU_BITSPERBYTE * (levelsub - 1));
-        retval            = TRUE;
-
-// Scan and populate JPs (subexpanses):
-//
-// Look for all indexes matching each digit in the BranchU (at the correct
-// levelsub), and meanwhile notice any sorting error.  Increment PIndex (and
-// PValue) and reduce pop1 for each subexpanse handled successfully.
-
-        for (digit = digitshifted = 0;
-             digit < cJU_BRANCHUNUMJPS;
-             ++digit, digitshifted += digitshincr, ++Pjp)
-        {
-            DBGCODE(Word_t pop1subprev;)
-            assert(pop1 != 0);          // end of indexes is handled elsewhere.
-
-// Count indexes in digits subexpanse:
-
-            for (pop1sub = 0; pop1sub < pop1; ++pop1sub)
-                if (digitshifted != (PIndex[pop1sub] & digitmask)) break;
-
-// Empty subexpanse (typical, performance path) or sorting error (rare):
-
-            if (pop1sub == 0)
-            {
-                if (digitshifted < (PIndex[0] & digitmask))
-                { SETJPNULL(Pjp); continue; }           // empty subexpanse.
-
-                assert(pop1 < *PPop1);  // did save >= 1 index and decr pop1.
-                JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_UNSORTED);
-                goto AbandonBranch;
-            }
-
-// Non-empty subexpanse:
-//
-// First shortcut by handling pop1sub == 1 (JPIMMED_*_01) inline locally.
-
-            if (pop1sub == 1)                   // note: can be at root level.
-            {
-                Word_t Addr = 0;
-      JUDYLCODE(Addr    = (Word_t) (*PValue++);)
-                JU_JPSETADT(Pjp, Addr, *PIndex, cJU_JPIMMED_1_01 + levelsub -2);
-
-                ++numJPs;
-
-                if (--pop1) { ++PIndex; continue; }  // more indexes to store.
-
-                ++digit; ++Pjp;                 // skip JP just saved.
-                goto ClearBranch;               // save time.
-            }
-
-// Recurse to populate one digits (subexpanses) JP; if successful, skip
-// indexes (and values) just stored (performance path), except when expanse is
-// completely stored:
-
-            DBGCODE(pop1subprev = pop1sub;)
-
-            if (j__udyInsArray(Pjp, levelsub - 1, &pop1sub, (PWord_t) PIndex,
-#ifdef JUDYL
-                               (Pjv_t) PValue,
-#endif
-                               Pjpm))
-            {                                   // complete success.
-                ++numJPs;
-                assert(pop1subprev == pop1sub);
-                assert(pop1 >= pop1sub);
-
-                if ((pop1 -= pop1sub) != 0)     // more indexes to store:
-                {
-                    PIndex += pop1sub;          // skip indexes just stored.
-          JUDYLCODE(PValue += pop1sub;)
-                    continue;
-                }
-                // else leave PIndex in BranchUs expanse.
-
-// No more indexes to store in BranchUs expanse:
-
-                ++digit; ++Pjp;                 // skip JP just saved.
-                goto ClearBranch;               // save time.
-            }
-
-// Handle any error at a lower level of recursion:
-//
-// In case of partial success, pop1sub != 0, but it was reduced from the value
-// passed to j__udyInsArray(); skip this JP later during ClearBranch.
-
-            assert(pop1subprev > pop1sub);      // check j__udyInsArray().
-            assert(pop1        > pop1sub);      // check j__udyInsArray().
-
-            if (pop1sub)                        // partial success.
-            { ++digit; ++Pjp; ++numJPs; }       // skip JP just saved.
-
-            pop1 -= pop1sub;                    // deduct saved indexes if any.
-
-// Same-level sorting error, or any lower-level error; abandon the rest of the
-// branch:
-//
-// Arrive here with pop1 = remaining unsaved indexes (always non-zero).  Adjust
-// the *PPop1 value to record and return, modify retval, and use ClearBranch to
-// finish up.
-
-AbandonBranch:
-            assert(pop1 != 0);                  // more to store, see above.
-            assert(pop1 <= *PPop1);             // sanity check.
-
-            *PPop1 -= pop1;                     // deduct unsaved indexes.
-            pop1    = 0;                        // to avoid error later.
-            retval  = FALSE;
-
-// Error (rare), or end of indexes while traversing new BranchU (performance
-// path); either way, mark the remaining JPs, if any, in the BranchU as nulls
-// and exit the loop:
-//
-// Arrive here with digit and Pjp set to the first JP to set to null.
-
-ClearBranch:
-            for (/* null */; digit < cJU_BRANCHUNUMJPS; ++digit, ++Pjp)
-                SETJPNULL(Pjp);
-            break;                              // saves one more compare.
-
-        } // for each digit
-
-
-// FINISH JPBRANCH_U*:
-//
-// Arrive here with a BranchU built under Pjbu, numJPs set, and either:  retval
-// == TRUE and *PPop1 unmodified, or else retval == FALSE, *PPop1 set to the
-// actual number of indexes saved (possibly 0 for complete failure at a lower
-// level upon the first call of j__udyInsArray()), and the Judy error set in
-// Pjpm.  Either way, PIndex points to an index within the expanse just
-// handled.
-
-        Pjbany = (Word_t) PjbuRaw;              // default = use this BranchU.
-        JPtype = branchU_JPtype[levelsub];
-
-// Check for complete failure above:
-
-        assert((! retval) || *PPop1);           // sanity check.
-
-        if ((! retval) && (*PPop1 == 0))        // nothing stored, full failure.
-        {
-            j__udyFreeJBU(PjbuRaw, Pjpm);
-            SETJPNULL_PARENT;
-            return(FALSE);
-        }
-
-// Complete or partial success so far; watch for sorting error after the
-// maximum digit (255) in the BranchU, which is indicated by having more
-// indexes to store in the BranchUs expanse:
-//
-// For example, if an index to store has a digit of 255 at levelsub, followed
-// by an index with a digit of 254, the for-loop above runs out of digits
-// without reducing pop1 to 0.
-
-        if (pop1 != 0)
-        {
-            JU_SET_ERRNO_NONNULL(Pjpm, JU_ERRNO_UNSORTED);
-            *PPop1 -= pop1;             // deduct unsaved indexes.
-            retval  = FALSE;
-        }
-        assert(*PPop1 != 0);            // branch (still) cannot be empty.
-
-
-// OPTIONALLY COMPRESS JPBRANCH_U*:
-//
-// See if the BranchU should be compressed to a BranchL or BranchB; if so, do
-// that and free the BranchU; otherwise just use the existing BranchU.  Follow
-// the same rules as in JudyIns.c (version 4.95):  Only check local population
-// (cJU_OPP_UNCOMP_POP0) for BranchL, and only check global memory efficiency
-// (JU_OPP_UNCOMPRESS) for BranchB.  TBD:  Have the rules changed?
-//
-// Note:  Because of differing order of operations, the latter compression
-// might not result in the same set of branch nodes as a series of sequential
-// insertions.
-//
-// Note:  Allocating a BranchU only to sometimes convert it to a BranchL or
-// BranchB is unfortunate, but attempting to work with a temporary BranchU on
-// the stack and then allocate and keep it as a BranchU in many cases is worse
-// in terms of error handling.
-
-
-// COMPRESS JPBRANCH_U* TO JPBRANCH_L*:
-
-        if (numJPs <= cJU_BRANCHLMAXJPS)        // JPs fit in a BranchL.
-        {
-            Pjbl_t PjblRaw = (Pjbl_t) NULL;     // new BranchL; init for cc.
-            Pjbl_t Pjbl;
-
-            if ((*PPop1 > JU_BRANCHL_MAX_POP)   // pop too high.
-             || ((PjblRaw = j__udyAllocJBL(Pjpm)) == (Pjbl_t) NULL))
-            {                                   // cant alloc BranchL.
-                goto SetParent;                 // just keep BranchU.
-            }
-
-            Pjbl = P_JBL(PjblRaw);
-
-// Copy BranchU JPs to BranchL:
-
-            (Pjbl->jbl_NumJPs) = numJPs;
-            offset = 0;
-
-            for (digit = 0; digit < cJU_BRANCHUNUMJPS; ++digit)
-            {
-                if ((((Pjbu->jbu_jp) + digit)->jp_Type) == JPtype_null)
-                    continue;
-
-                (Pjbl->jbl_Expanse[offset  ]) = digit;
-                (Pjbl->jbl_jp     [offset++]) = Pjbu->jbu_jp[digit];
-            }
-            assert(offset == numJPs);           // found same number.
-
-// Free the BranchU and prepare to use the new BranchL instead:
-
-            j__udyFreeJBU(PjbuRaw, Pjpm);
-
-            Pjbany = (Word_t) PjblRaw;
-            JPtype = branchL_JPtype[levelsub];
-
-        } // compress to BranchL
-
-
-// COMPRESS JPBRANCH_U* TO JPBRANCH_B*:
-//
-// If unable to allocate the BranchB or any JP subarray, free all related
-// memory and just keep the BranchU.
-//
-// Note:  This use of JU_OPP_UNCOMPRESS is a bit conservative because the
-// BranchU is already allocated while the (presumably smaller) BranchB is not,
-// the opposite of how its used in single-insert code.
-
-        else
-        {
-            Pjbb_t PjbbRaw = (Pjbb_t) NULL;     // new BranchB; init for cc.
-            Pjbb_t Pjbb;
-            Pjp_t  Pjp2;                        // in BranchU.
-
-            if ((*PPop1 > JU_BRANCHB_MAX_POP)   // pop too high.
-             || ((PjbbRaw = j__udyAllocJBB(Pjpm)) == (Pjbb_t) NULL))
-            {                                   // cant alloc BranchB.
-                goto SetParent;                 // just keep BranchU.
-            }
-
-            Pjbb = P_JBB(PjbbRaw);
-
-// Set bits in bitmap for populated subexpanses:
-
-            Pjp2 = Pjbu->jbu_jp;
-
-            for (digit = 0; digit < cJU_BRANCHUNUMJPS; ++digit)
-                if ((((Pjbu->jbu_jp) + digit)->jp_Type) != JPtype_null)
-                    JU_BITMAPSETB(Pjbb, digit);
-
-// Copy non-null JPs to BranchB JP subarrays:
-
-            for (offset = 0; offset < cJU_NUMSUBEXPB; ++offset)
-            {
-                Pjp_t PjparrayRaw;
-                Pjp_t Pjparray;
-
-                if (! (numJPs = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, offset))))
-                    continue;                   // skip empty subexpanse.
-
-// If unable to allocate a JP subarray, free all BranchB memory so far and
-// continue to use the BranchU:
-
-                if ((PjparrayRaw = j__udyAllocJBBJP(numJPs, Pjpm))
-                    == (Pjp_t) NULL)
-                {
-                    while (offset-- > 0)
-                    {
-                        if (JU_JBB_PJP(Pjbb, offset) == (Pjp_t) NULL) continue;
-
-                        j__udyFreeJBBJP(JU_JBB_PJP(Pjbb, offset),
-                                 j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, offset)),
-                                        Pjpm);
-                    }
-                    j__udyFreeJBB(PjbbRaw, Pjpm);
-                    goto SetParent;             // keep BranchU.
-                }
-
-// Set one JP subarray pointer and copy the subexpanses JPs to the subarray:
-//
-// Scan the BranchU for non-null JPs until numJPs JPs are copied.
-
-                JU_JBB_PJP(Pjbb, offset) = PjparrayRaw;
-                Pjparray = P_JP(PjparrayRaw);
-
-                while (numJPs-- > 0)
-                {
-                    while ((Pjp2->jp_Type) == JPtype_null)
-                    {
-                        ++Pjp2;
-                        assert(Pjp2 < (Pjbu->jbu_jp) + cJU_BRANCHUNUMJPS);
-                    }
-                    *Pjparray++ = *Pjp2++;
-                }
-            } // for each subexpanse
-
-// Free the BranchU and prepare to use the new BranchB instead:
-
-            j__udyFreeJBU(PjbuRaw, Pjpm);
-
-            Pjbany = (Word_t) PjbbRaw;
-            JPtype = branchB_JPtype[levelsub];
-
-        } // compress to BranchB
-
-
-// COMPLETE OR PARTIAL SUCCESS:
-//
-// Attach new branch (under Pjp, with JPtype) to parent JP; note use of *PPop1,
-// possibly reduced due to partial failure.
-
-SetParent:
-        (PjpParent->jp_Addr) = Pjbany;
-        (PjpParent->jp_Type) = JPtype;
-
-        if (Level < cJU_ROOTSTATE)              // PjpParent not in JPM:
-        {
-            Word_t DcdP0 = (*PIndex & cJU_DCDMASK(levelsub)) | (*PPop1 - 1);
-
-            JU_JPSETADT(PjpParent ,Pjbany, DcdP0, JPtype);
-        }
-
-        return(retval);
-
-} // j__udyInsArray()
diff --git a/libs/klib/judy/JudyInsertBranch.c b/libs/klib/judy/JudyInsertBranch.c
deleted file mode 100644
index 307285c..0000000
--- a/libs/klib/judy/JudyInsertBranch.c
+++ /dev/null
@@ -1,133 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// BranchL insertion functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-extern int j__udyCreateBranchL(Pjp_t, Pjp_t, uint8_t *, Word_t, Pvoid_t);
-
-
-// ****************************************************************************
-// __ J U D Y   I N S E R T   B R A N C H
-//
-// Insert 2-element BranchL in between Pjp and Pjp->jp_Addr.
-//
-// Return -1 if out of memory, otherwise return 1.
-
-FUNCTION int j__udyInsertBranch(
-	Pjp_t	Pjp,		// JP containing narrow pointer.
-	Word_t	Index,		// outlier to Pjp.
-	Word_t	BranchLevel,	// of what JP points to, mapped from JP type.
-	Pjpm_t	Pjpm)		// for global accounting.
-{
-	jp_t	JP2 [2];
-	jp_t	JP;
-	Pjp_t	PjpNull;
-	Word_t	XorExp;
-	Word_t	Inew, Iold;
-	Word_t  DCDMask;	// initially for original BranchLevel.
-	int	Ret;
-	uint8_t	Exp2[2];
-	uint8_t	DecodeByteN, DecodeByteO;
-
-//	Get the current mask for the DCD digits:
-
-	DCDMask = cJU_DCDMASK(BranchLevel);
-
-//	Obtain Dcd bits that differ between Index and JP, shifted so the
-//	digit for BranchLevel is the LSB:
-
-	XorExp = ((Index ^ JU_JPDCDPOP0(Pjp)) & (cJU_ALLONES >> cJU_BITSPERBYTE))
-	       >> (BranchLevel * cJU_BITSPERBYTE);
-	assert(XorExp);		// Index must be an outlier.
-
-//	Count levels between object under narrow pointer and the level at which
-//	the outlier diverges from it, which is always at least initial
-//	BranchLevel + 1, to end up with the level (JP type) at which to insert
-//	the new intervening BranchL:
-
-	do { ++BranchLevel; } while ((XorExp >>= cJU_BITSPERBYTE));
-	assert((BranchLevel > 1) && (BranchLevel < cJU_ROOTSTATE));
-
-//	Get the MSB (highest digit) that differs between the old expanse and
-//	the new Index to insert:
-
-	DecodeByteO = JU_DIGITATSTATE(JU_JPDCDPOP0(Pjp), BranchLevel);
-	DecodeByteN = JU_DIGITATSTATE(Index,	         BranchLevel);
-
-	assert(DecodeByteO != DecodeByteN);
-
-//	Determine sorted order for old expanse and new Index digits:
-
-	if (DecodeByteN > DecodeByteO)	{ Iold = 0; Inew = 1; }
-	else				{ Iold = 1; Inew = 0; }
-
-//	Copy old JP into staging area for new Branch
-	JP2 [Iold] = *Pjp;
-	Exp2[Iold] = DecodeByteO;
-	Exp2[Inew] = DecodeByteN;
-
-//	Create a 2 Expanse Linear branch
-//
-//	Note: Pjp->jp_Addr is set by j__udyCreateBranchL()
-
-	Ret = j__udyCreateBranchL(Pjp, JP2, Exp2, 2, Pjpm);
-	if (Ret == -1) return(-1);
-
-//	Get Pjp to the NULL of where to do insert
-	PjpNull	= ((P_JBL(Pjp->jp_Addr))->jbl_jp) + Inew;
-
-//	Convert to a cJU_JPIMMED_*_01 at the correct level:
-//	Build JP and set type below to: cJU_JPIMMED_X_01
-        JU_JPSETADT(PjpNull, 0, Index, cJU_JPIMMED_1_01 - 2 + BranchLevel);
-
-//	Return pointer to Value area in cJU_JPIMMED_X_01
-	JUDYLCODE(Pjpm->jpm_PValue = (Pjv_t) PjpNull;)
-
-//	The old JP now points to a BranchL that is at higher level.  Therefore
-//	it contains excess DCD bits (in the least significant position) that
-//	must be removed (zeroed); that is, they become part of the Pop0
-//	subfield.  Note that the remaining (lower) bytes in the Pop0 field do
-//	not change.
-//
-//	Take from the old DCDMask, which went "down" to a lower BranchLevel,
-//	and zero any high bits that are still in the mask at the new, higher
-//	BranchLevel; then use this mask to zero the bits in jp_DcdPopO:
-
-//	Set old JP to a BranchL at correct level
-
-	Pjp->jp_Type = cJU_JPBRANCH_L2 - 2 + BranchLevel;
-	DCDMask		^= cJU_DCDMASK(BranchLevel);
-	DCDMask		 = ~DCDMask & JU_JPDCDPOP0(Pjp);
-        JP = *Pjp;
-        JU_JPSETADT(Pjp, JP.jp_Addr, DCDMask, JP.jp_Type);
-
-	return(1);
-
-} // j__udyInsertBranch()
diff --git a/libs/klib/judy/JudyL.h b/libs/klib/judy/JudyL.h
deleted file mode 100644
index 13c7d66..0000000
--- a/libs/klib/judy/JudyL.h
+++ /dev/null
@@ -1,503 +0,0 @@
-#ifndef _JUDYL_INCLUDED
-#define _JUDYL_INCLUDED
-// _________________
-//
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// ****************************************************************************
-//          JUDYL -- SMALL/LARGE AND/OR CLUSTERED/SPARSE ARRAYS
-//
-//                                    -by-
-//
-//                             Douglas L. Baskins
-//                             doug at sourcejudy.com
-//
-// Judy arrays are designed to be used instead of arrays.  The performance
-// suggests the reason why Judy arrays are thought of as arrays, instead of
-// trees.  They are remarkably memory efficient at all populations.
-// Implemented as a hybrid digital tree (but really a state machine, see
-// below), Judy arrays feature fast insert/retrievals, fast near neighbor
-// searching, and contain a population tree for extremely fast ordinal related
-// retrievals.
-//
-// CONVENTIONS:
-//
-// - The comments here refer to 32-bit [64-bit] systems.
-//
-// - BranchL, LeafL refer to linear branches and leaves (small populations),
-//   except LeafL does not actually appear as such; rather, Leaf1..3 [Leaf1..7]
-//   is used to represent leaf Index sizes, and LeafW refers to a Leaf with
-//   full (Long) word Indexes, which is also a type of linear leaf.  Note that
-//   root-level LeafW (Leaf4 [Leaf8]) leaves are called LEAFW.
-//
-// - BranchB, LeafB1 refer to bitmap branches and leaves (intermediate
-//   populations).
-//
-// - BranchU refers to uncompressed branches.  An uncompressed branch has 256
-//   JPs, some of which could be null.  Note:  All leaves are compressed (and
-//   sorted), or else an expanse is full (FullPopu), so there is no LeafU
-//   equivalent to BranchU.
-//
-// - "Popu" is short for "Population".
-// - "Pop1" refers to actual population (base 1).
-// - "Pop0" refers to Pop1 - 1 (base 0), the way populations are stored in data
-//   structures.
-//
-// - Branches and Leaves are both named by the number of bytes in their Pop0
-//   field.  In the case of Leaves, the same number applies to the Index sizes.
-//
-// - The representation of many numbers as hex is a relatively safe and
-//   portable way to get desired bitpatterns as unsigned longs.
-//
-// - Some preprocessors cant handle single apostrophe characters within
-//   #ifndef code, so here, delete all instead.
-
-
-#include "JudyPrivate.h"        // includes Judy.h in turn.
-#include "JudyPrivateBranch.h"  // support for branches.
-
-
-// ****************************************************************************
-// JUDYL ROOT POINTER (JRP) AND JUDYL POINTER (JP) TYPE FIELDS
-// ****************************************************************************
-
-typedef enum            // uint8_t -- but C does not support this type of enum.
-{
-
-// JP NULL TYPES:
-//
-// There is a series of cJL_JPNULL* Types because each one pre-records a
-// different Index Size for when the first Index is inserted in the previously
-// null JP.  They must start >= 8 (three bits).
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJL_JPNULL1 = 1,
-                                // Index Size 1[1] byte  when 1 Index inserted.
-        cJL_JPNULL2,            // Index Size 2[2] bytes when 1 Index inserted.
-        cJL_JPNULL3,            // Index Size 3[3] bytes when 1 Index inserted.
-
-#ifndef JU_64BIT
-#define cJL_JPNULLMAX cJL_JPNULL3
-#else
-        cJL_JPNULL4,            // Index Size 4[4] bytes when 1 Index inserted.
-        cJL_JPNULL5,            // Index Size 5[5] bytes when 1 Index inserted.
-        cJL_JPNULL6,            // Index Size 6[6] bytes when 1 Index inserted.
-        cJL_JPNULL7,            // Index Size 7[7] bytes when 1 Index inserted.
-#define cJL_JPNULLMAX cJL_JPNULL7
-#endif
-
-
-// JP BRANCH TYPES:
-//
-// Note:  There are no state-1 branches; only leaves reside at state 1.
-
-// Linear branches:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJL_JPBRANCH_L2,        // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJL_JPBRANCH_L3,        // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJL_JPBRANCH_L4,        //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJL_JPBRANCH_L5,        //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJL_JPBRANCH_L6,        //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJL_JPBRANCH_L7,        //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-        cJL_JPBRANCH_L,         // note:  DcdPopO field not used.
-
-// Bitmap branches:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJL_JPBRANCH_B2,        // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJL_JPBRANCH_B3,        // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJL_JPBRANCH_B4,        //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJL_JPBRANCH_B5,        //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJL_JPBRANCH_B6,        //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJL_JPBRANCH_B7,        //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-        cJL_JPBRANCH_B,         // note:  DcdPopO field not used.
-
-// Uncompressed branches:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-
-        cJL_JPBRANCH_U2,        // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJL_JPBRANCH_U3,        // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJL_JPBRANCH_U4,        //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJL_JPBRANCH_U5,        //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJL_JPBRANCH_U6,        //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJL_JPBRANCH_U7,        //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-        cJL_JPBRANCH_U,         // note:  DcdPopO field not used.
-
-
-// JP LEAF TYPES:
-
-// Linear leaves:
-//
-// Note:  These Types must be in sequential order for doing relative
-// calculations between them.
-//
-// Note:  There is no full-word (4-byte [8-byte]) Index leaf under a JP because
-// non-root-state leaves only occur under branches that decode at least one
-// byte.  Full-word, root-state leaves are under a JRP, not a JP.  However, in
-// the code a "fake" JP can be created temporarily above a root-state leaf.
-
-        cJL_JPLEAF1,            // 1[1] byte  Pop0, 2    bytes Dcd.
-        cJL_JPLEAF2,            // 2[2] bytes Pop0, 1[5] bytes Dcd.
-        cJL_JPLEAF3,            // 3[3] bytes Pop0, 0[4] bytes Dcd.
-
-#ifdef JU_64BIT
-        cJL_JPLEAF4,            //  [4] bytes Pop0,  [3] bytes Dcd.
-        cJL_JPLEAF5,            //  [5] bytes Pop0,  [2] bytes Dcd.
-        cJL_JPLEAF6,            //  [6] bytes Pop0,  [1] byte  Dcd.
-        cJL_JPLEAF7,            //  [7] bytes Pop0,  [0] bytes Dcd.
-#endif
-
-// Bitmap leaf; Index Size == 1:
-//
-// Note:  These are currently only supported at state 1.  At other states the
-// bitmap would grow from 256 to 256^2, 256^3, ... bits, which would not be
-// efficient..
-
-        cJL_JPLEAF_B1,          // 1[1] byte Pop0, 2[6] bytes Dcd.
-
-// Full population; Index Size == 1 virtual leaf:
-//
-// Note:  JudyL has no cJL_JPFULLPOPU1 equivalent to cJ1_JPFULLPOPU1, because
-// in the JudyL case this could result in a values-only leaf of up to 256 words
-// (value areas) that would be slow to insert/delete.
-
-
-// JP IMMEDIATES; leaves (Indexes) stored inside a JP:
-//
-// The second numeric suffix is the Pop1 for each type.  As the Index Size
-// increases, the maximum possible population decreases.
-//
-// Note:  These Types must be in sequential order in each group (Index Size),
-// and the groups in correct order too, for doing relative calculations between
-// them.  For example, since these Types enumerate the Pop1 values (unlike
-// other JP Types where there is a Pop0 value in the JP), the maximum Pop1 for
-// each Index Size is computable.
-//
-// All enums equal or above this point are cJL_JPIMMEDs.
-
-        cJL_JPIMMED_1_01,       // Index Size = 1, Pop1 = 1.
-        cJL_JPIMMED_2_01,       // Index Size = 2, Pop1 = 1.
-        cJL_JPIMMED_3_01,       // Index Size = 3, Pop1 = 1.
-
-#ifdef JU_64BIT
-        cJL_JPIMMED_4_01,       // Index Size = 4, Pop1 = 1.
-        cJL_JPIMMED_5_01,       // Index Size = 5, Pop1 = 1.
-        cJL_JPIMMED_6_01,       // Index Size = 6, Pop1 = 1.
-        cJL_JPIMMED_7_01,       // Index Size = 7, Pop1 = 1.
-#endif
-
-        cJL_JPIMMED_1_02,       // Index Size = 1, Pop1 = 2.
-        cJL_JPIMMED_1_03,       // Index Size = 1, Pop1 = 3.
-
-#ifdef JU_64BIT
-        cJL_JPIMMED_1_04,       // Index Size = 1, Pop1 = 4.
-        cJL_JPIMMED_1_05,       // Index Size = 1, Pop1 = 5.
-        cJL_JPIMMED_1_06,       // Index Size = 1, Pop1 = 6.
-        cJL_JPIMMED_1_07,       // Index Size = 1, Pop1 = 7.
-
-        cJL_JPIMMED_2_02,       // Index Size = 2, Pop1 = 2.
-        cJL_JPIMMED_2_03,       // Index Size = 2, Pop1 = 3.
-
-        cJL_JPIMMED_3_02,       // Index Size = 3, Pop1 = 2.
-#endif
-
-// This special Type is merely a sentinel for doing relative calculations.
-// This value should not be used in switch statements (to avoid allocating code
-// for it), which is also why it appears at the end of the enum list.
-
-        cJL_JPIMMED_CAP
-
-} jpL_Type_t;
-
-
-// RELATED VALUES:
-
-// Index Size (state) for leaf JP, and JP type based on Index Size (state):
-
-#define JL_LEAFINDEXSIZE(jpType) ((jpType)    - cJL_JPLEAF1 + 1)
-#define JL_LEAFTYPE(IndexSize)   ((IndexSize) + cJL_JPLEAF1 - 1)
-
-
-// MAXIMUM POPULATIONS OF LINEAR LEAVES:
-
-#ifndef JU_64BIT // 32-bit
-
-#define J_L_MAXB                (sizeof(Word_t) * 64)
-#define ALLOCSIZES { 3, 5, 7, 11, 15, 23, 32, 47, 64, TERMINATOR } // in words.
-#define cJL_LEAF1_MAXWORDS               (32)   // max Leaf1 size in words.
-
-// Note:  cJL_LEAF1_MAXPOP1 is chosen such that the index portion is less than
-// 32 bytes -- the number of bytes the index takes in a bitmap leaf.
-
-#define cJL_LEAF1_MAXPOP1 \
-   ((cJL_LEAF1_MAXWORDS * cJU_BYTESPERWORD)/(1 + cJU_BYTESPERWORD))
-#define cJL_LEAF2_MAXPOP1       (J_L_MAXB / (2 + cJU_BYTESPERWORD))
-#define cJL_LEAF3_MAXPOP1       (J_L_MAXB / (3 + cJU_BYTESPERWORD))
-#define cJL_LEAFW_MAXPOP1 \
-           ((J_L_MAXB - cJU_BYTESPERWORD) / (2 * cJU_BYTESPERWORD))
-
-#else // 64-bit
-
-#define J_L_MAXB                (sizeof(Word_t) * 64)
-#define ALLOCSIZES { 3, 5, 7, 11, 15, 23, 32, 47, 64, TERMINATOR } // in words.
-#define cJL_LEAF1_MAXWORDS       (15)   // max Leaf1 size in words.
-
-#define cJL_LEAF1_MAXPOP1 \
-   ((cJL_LEAF1_MAXWORDS * cJU_BYTESPERWORD)/(1 + cJU_BYTESPERWORD))
-#define cJL_LEAF2_MAXPOP1       (J_L_MAXB / (2 + cJU_BYTESPERWORD))
-#define cJL_LEAF3_MAXPOP1       (J_L_MAXB / (3 + cJU_BYTESPERWORD))
-#define cJL_LEAF4_MAXPOP1       (J_L_MAXB / (4 + cJU_BYTESPERWORD))
-#define cJL_LEAF5_MAXPOP1       (J_L_MAXB / (5 + cJU_BYTESPERWORD))
-#define cJL_LEAF6_MAXPOP1       (J_L_MAXB / (6 + cJU_BYTESPERWORD))
-#define cJL_LEAF7_MAXPOP1       (J_L_MAXB / (7 + cJU_BYTESPERWORD))
-#define cJL_LEAFW_MAXPOP1 \
-           ((J_L_MAXB - cJU_BYTESPERWORD) / (2 * cJU_BYTESPERWORD))
-
-#endif // 64-bit
-
-
-// MAXIMUM POPULATIONS OF IMMEDIATE JPs:
-//
-// These specify the maximum Population of immediate JPs with various Index
-// Sizes (== sizes of remaining undecoded Index bits).  Since the JP Types enum
-// already lists all the immediates in order by state and size, calculate these
-// values from it to avoid redundancy.
-
-#define cJL_IMMED1_MAXPOP1  ((cJU_BYTESPERWORD - 1) / 1)        // 3 [7].
-#define cJL_IMMED2_MAXPOP1  ((cJU_BYTESPERWORD - 1) / 2)        // 1 [3].
-#define cJL_IMMED3_MAXPOP1  ((cJU_BYTESPERWORD - 1) / 3)        // 1 [2].
-
-#ifdef JU_64BIT
-#define cJL_IMMED4_MAXPOP1  ((cJU_BYTESPERWORD - 1) / 4)        //   [1].
-#define cJL_IMMED5_MAXPOP1  ((cJU_BYTESPERWORD - 1) / 5)        //   [1].
-#define cJL_IMMED6_MAXPOP1  ((cJU_BYTESPERWORD - 1) / 6)        //   [1].
-#define cJL_IMMED7_MAXPOP1  ((cJU_BYTESPERWORD - 1) / 7)        //   [1].
-#endif
-
-
-// ****************************************************************************
-// JUDYL LEAF BITMAP (JLLB) SUPPORT
-// ****************************************************************************
-//
-// Assemble bitmap leaves out of smaller units that put bitmap subexpanses
-// close to their associated pointers.  Why not just use a bitmap followed by a
-// series of pointers?  (See 4.27.)  Turns out this wastes a cache fill on
-// systems with smaller cache lines than the assumed value cJU_WORDSPERCL.
-
-#define JL_JLB_BITMAP(Pjlb, Subexp)  ((Pjlb)->jLlb_jLlbs[Subexp].jLlbs_Bitmap)
-#define JL_JLB_PVALUE(Pjlb, Subexp)  ((Pjlb)->jLlb_jLlbs[Subexp].jLlbs_PValue)
-
-typedef struct J__UDYL_LEAF_BITMAP_SUBEXPANSE
-{
-        BITMAPL_t jLlbs_Bitmap;
-        Pjv_t     jLlbs_PValue;
-
-} jLlbs_t;
-
-typedef struct J__UDYL_LEAF_BITMAP
-{
-        jLlbs_t jLlb_jLlbs[cJU_NUMSUBEXPL];
-
-} jLlb_t, * PjLlb_t;
-
-// Words per bitmap leaf:
-
-#define cJL_WORDSPERLEAFB1  (sizeof(jLlb_t) / cJU_BYTESPERWORD)
-
-
-// ****************************************************************************
-// MEMORY ALLOCATION SUPPORT
-// ****************************************************************************
-
-// ARRAY-GLOBAL INFORMATION:
-//
-// At the cost of an occasional additional cache fill, this object, which is
-// pointed at by a JRP and in turn points to a JP_BRANCH*, carries array-global
-// information about a JudyL array that has sufficient population to amortize
-// the cost.  The jpm_Pop0 field prevents having to add up the total population
-// for the array in insert, delete, and count code.  The jpm_JP field prevents
-// having to build a fake JP for entry to a state machine; however, the
-// jp_DcdPopO field in jpm_JP, being one byte too small, is not used.
-//
-// Note:  Struct fields are ordered to keep "hot" data in the first 8 words
-// (see left-margin comments) for machines with 8-word cache lines, and to keep
-// sub-word fields together for efficient packing.
-
-typedef struct J_UDYL_POPULATION_AND_MEMORY
-{
-/* 1 */ Word_t     jpm_Pop0;            // total population-1 in array.
-/* 2 */ jp_t       jpm_JP;              // JP to first branch; see above.
-/* 4 */ Word_t     jpm_LastUPop0;       // last jpm_Pop0 when convert to BranchU
-/* 7 */ Pjv_t      jpm_PValue;          // pointer to value to return.
-// Note:  Field names match PJError_t for convenience in macros:
-/* 8 */ char       je_Errno;            // one of the enums in Judy.h.
-/* 8/9  */ int     je_ErrID;            // often an internal source line number.
-/* 9/10 */ Word_t  jpm_TotalMemWords;   // words allocated in array.
-} jLpm_t, *PjLpm_t;
-
-
-// TABLES FOR DETERMINING IF LEAVES HAVE ROOM TO GROW:
-//
-// These tables indicate if a given memory chunk can support growth of a given
-// object into wasted (rounded-up) memory in the chunk.  Note:  This violates
-// the hiddenness of the JudyMalloc code.
-
-extern const uint8_t j__L_Leaf1PopToWords[cJL_LEAF1_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf2PopToWords[cJL_LEAF2_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf3PopToWords[cJL_LEAF3_MAXPOP1 + 1];
-#ifdef JU_64BIT
-extern const uint8_t j__L_Leaf4PopToWords[cJL_LEAF4_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf5PopToWords[cJL_LEAF5_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf6PopToWords[cJL_LEAF6_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf7PopToWords[cJL_LEAF7_MAXPOP1 + 1];
-#endif
-extern const uint8_t j__L_LeafWPopToWords[cJL_LEAFW_MAXPOP1 + 1];
-extern const uint8_t j__L_LeafVPopToWords[];
-
-// These tables indicate where value areas start:
-
-extern const uint8_t j__L_Leaf1Offset    [cJL_LEAF1_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf2Offset    [cJL_LEAF2_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf3Offset    [cJL_LEAF3_MAXPOP1 + 1];
-#ifdef JU_64BIT
-extern const uint8_t j__L_Leaf4Offset    [cJL_LEAF4_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf5Offset    [cJL_LEAF5_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf6Offset    [cJL_LEAF6_MAXPOP1 + 1];
-extern const uint8_t j__L_Leaf7Offset    [cJL_LEAF7_MAXPOP1 + 1];
-#endif
-extern const uint8_t j__L_LeafWOffset    [cJL_LEAFW_MAXPOP1 + 1];
-
-// Also define macros to hide the details in the code using these tables.
-
-#define JL_LEAF1GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAF1_MAXPOP1, j__L_Leaf1PopToWords)
-#define JL_LEAF2GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAF2_MAXPOP1, j__L_Leaf2PopToWords)
-#define JL_LEAF3GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAF3_MAXPOP1, j__L_Leaf3PopToWords)
-#ifdef JU_64BIT
-#define JL_LEAF4GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAF4_MAXPOP1, j__L_Leaf4PopToWords)
-#define JL_LEAF5GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAF5_MAXPOP1, j__L_Leaf5PopToWords)
-#define JL_LEAF6GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAF6_MAXPOP1, j__L_Leaf6PopToWords)
-#define JL_LEAF7GROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAF7_MAXPOP1, j__L_Leaf7PopToWords)
-#endif
-#define JL_LEAFWGROWINPLACE(Pop1) \
-        J__U_GROWCK(Pop1, cJL_LEAFW_MAXPOP1, j__L_LeafWPopToWords)
-#define JL_LEAFVGROWINPLACE(Pop1)  \
-        J__U_GROWCK(Pop1, cJU_BITSPERSUBEXPL,  j__L_LeafVPopToWords)
-
-#define JL_LEAF1VALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_Leaf1Offset[Pop1])
-#define JL_LEAF2VALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_Leaf2Offset[Pop1])
-#define JL_LEAF3VALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_Leaf3Offset[Pop1])
-#ifdef JU_64BIT
-#define JL_LEAF4VALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_Leaf4Offset[Pop1])
-#define JL_LEAF5VALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_Leaf5Offset[Pop1])
-#define JL_LEAF6VALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_Leaf6Offset[Pop1])
-#define JL_LEAF7VALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_Leaf7Offset[Pop1])
-#endif
-#define JL_LEAFWVALUEAREA(Pjv,Pop1)  (((PWord_t)(Pjv)) + j__L_LeafWOffset[Pop1])
-
-#define JL_LEAF1POPTOWORDS(Pop1)        (j__L_Leaf1PopToWords[Pop1])
-#define JL_LEAF2POPTOWORDS(Pop1)        (j__L_Leaf2PopToWords[Pop1])
-#define JL_LEAF3POPTOWORDS(Pop1)        (j__L_Leaf3PopToWords[Pop1])
-#ifdef JU_64BIT
-#define JL_LEAF4POPTOWORDS(Pop1)        (j__L_Leaf4PopToWords[Pop1])
-#define JL_LEAF5POPTOWORDS(Pop1)        (j__L_Leaf5PopToWords[Pop1])
-#define JL_LEAF6POPTOWORDS(Pop1)        (j__L_Leaf6PopToWords[Pop1])
-#define JL_LEAF7POPTOWORDS(Pop1)        (j__L_Leaf7PopToWords[Pop1])
-#endif
-#define JL_LEAFWPOPTOWORDS(Pop1)        (j__L_LeafWPopToWords[Pop1])
-#define JL_LEAFVPOPTOWORDS(Pop1)        (j__L_LeafVPopToWords[Pop1])
-
-
-// FUNCTIONS TO ALLOCATE OBJECTS:
-
-PjLpm_t j__udyLAllocJLPM(void);                         // constant size.
-
-Pjbl_t  j__udyLAllocJBL(          PjLpm_t);             // constant size.
-Pjbb_t  j__udyLAllocJBB(          PjLpm_t);             // constant size.
-Pjp_t   j__udyLAllocJBBJP(Word_t, PjLpm_t);
-Pjbu_t  j__udyLAllocJBU(          PjLpm_t);             // constant size.
-
-Pjll_t  j__udyLAllocJLL1( Word_t, PjLpm_t);
-Pjll_t  j__udyLAllocJLL2( Word_t, PjLpm_t);
-Pjll_t  j__udyLAllocJLL3( Word_t, PjLpm_t);
-
-#ifdef JU_64BIT
-Pjll_t  j__udyLAllocJLL4( Word_t, PjLpm_t);
-Pjll_t  j__udyLAllocJLL5( Word_t, PjLpm_t);
-Pjll_t  j__udyLAllocJLL6( Word_t, PjLpm_t);
-Pjll_t  j__udyLAllocJLL7( Word_t, PjLpm_t);
-#endif
-
-Pjlw_t  j__udyLAllocJLW(  Word_t         );             // no PjLpm_t needed.
-PjLlb_t j__udyLAllocJLB1(         PjLpm_t);             // constant size.
-Pjv_t   j__udyLAllocJV(   Word_t, PjLpm_t);
-
-
-// FUNCTIONS TO FREE OBJECTS:
-
-void    j__udyLFreeJLPM( PjLpm_t,        PjLpm_t);      // constant size.
-
-void    j__udyLFreeJBL(  Pjbl_t,         PjLpm_t);      // constant size.
-void    j__udyLFreeJBB(  Pjbb_t,         PjLpm_t);      // constant size.
-void    j__udyLFreeJBBJP(Pjp_t,  Word_t, PjLpm_t);
-void    j__udyLFreeJBU(  Pjbu_t,         PjLpm_t);      // constant size.
-
-void    j__udyLFreeJLL1( Pjll_t, Word_t, PjLpm_t);
-void    j__udyLFreeJLL2( Pjll_t, Word_t, PjLpm_t);
-void    j__udyLFreeJLL3( Pjll_t, Word_t, PjLpm_t);
-
-#ifdef JU_64BIT
-void    j__udyLFreeJLL4( Pjll_t, Word_t, PjLpm_t);
-void    j__udyLFreeJLL5( Pjll_t, Word_t, PjLpm_t);
-void    j__udyLFreeJLL6( Pjll_t, Word_t, PjLpm_t);
-void    j__udyLFreeJLL7( Pjll_t, Word_t, PjLpm_t);
-#endif
-
-void    j__udyLFreeJLW(  Pjlw_t, Word_t, PjLpm_t);
-void    j__udyLFreeJLB1( PjLlb_t,        PjLpm_t);      // constant size.
-void    j__udyLFreeJV(   Pjv_t,  Word_t, PjLpm_t);
-void    j__udyLFreeSM(   Pjp_t,          PjLpm_t);      // everything below Pjp.
-
-#endif // ! _JUDYL_INCLUDED
diff --git a/libs/klib/judy/JudyMalloc.c b/libs/klib/judy/JudyMalloc.c
deleted file mode 100644
index 165521f..0000000
--- a/libs/klib/judy/JudyMalloc.c
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// ************************************************************************ //
-//                    JUDY - Memory Allocater                             //
-//                              -by-					  //
-//		         Douglas L. Baskins				  //
-//			  Hewlett Packard				  //
-//                        Fort Collins, Co				  //
-//                         (970) 229-2027				  //
-//									  //
-// ************************************************************************ //
-
-// JUDY INCLUDE FILES
-#include "Judy.h"
-
-// ****************************************************************************
-// J U D Y   M A L L O C
-//
-// Allocate RAM.  This is the single location in Judy code that calls
-// malloc(3C).  Note:  JPM accounting occurs at a higher level.
-
-Word_t JudyMalloc(
-	Word_t Words)
-{
-	Word_t Addr;
-
-	Addr = (Word_t) malloc(Words * sizeof(Word_t));
-	return(Addr);
-
-} // JudyMalloc()
-
-
-// ****************************************************************************
-// J U D Y   F R E E
-
-void JudyFree(
-	void * PWord,
-	Word_t Words)
-{
-	(void) Words;
-	free(PWord);
-
-} // JudyFree()
-
-
-// ****************************************************************************
-// J U D Y   M A L L O C
-//
-// Higher-level "wrapper" for allocating objects that need not be in RAM,
-// although at this time they are in fact only in RAM.  Later we hope that some
-// entire subtrees (at a JPM or branch) can be "virtual", so their allocations
-// and frees should go through this level.
-
-Word_t JudyMallocVirtual(
-	Word_t Words)
-{
-	return(JudyMalloc(Words));
-
-} // JudyMallocVirtual()
-
-
-// ****************************************************************************
-// J U D Y   F R E E
-
-void JudyFreeVirtual(
-	void * PWord,
-	Word_t Words)
-{
-        JudyFree(PWord, Words);
-
-} // JudyFreeVirtual()
diff --git a/libs/klib/judy/JudyMallocIF.c b/libs/klib/judy/JudyMallocIF.c
deleted file mode 100644
index fa91d80..0000000
--- a/libs/klib/judy/JudyMallocIF.c
+++ /dev/null
@@ -1,780 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy malloc/free interface functions for Judy1 and JudyL.
-//
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// Compile with -DTRACEMI (Malloc Interface) to turn on tracing of malloc/free
-// calls at the interface level.  (See also TRACEMF in lower-level code.)
-// Use -DTRACEMI2 for a terser format suitable for trace analysis.
-//
-// There can be malloc namespace bits in the LSBs of "raw" addresses from most,
-// but not all, of the j__udy*Alloc*() functions; see also JudyPrivate.h.  To
-// test the Judy code, compile this file with -DMALLOCBITS and use debug flavor
-// only (for assertions).  This test ensures that (a) all callers properly mask
-// the namespace bits out before dereferencing a pointer (or else a core dump
-// occurs), and (b) all callers send "raw" (unmasked) addresses to
-// j__udy*Free*() calls.
-//
-// Note:  Currently -DDEBUG turns on MALLOCBITS automatically.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-// Set "hidden" global j__uMaxWords to the maximum number of words to allocate
-// to any one array (large enough to have a JPM, otherwise j__uMaxWords is
-// ignored), to trigger a fake malloc error when the number is exceeded.  Note,
-// this code is always executed, not #ifdefd, because its virtually free.
-//
-// Note:  To keep the MALLOC macro faster and simpler, set j__uMaxWords to
-// MAXINT, not zero, by default.
-
-Word_t j__uMaxWords = ~0UL;
-
-// This macro hides the faking of a malloc failure:
-//
-// Note:  To keep this fast, just compare WordsPrev to j__uMaxWords without the
-// complexity of first adding WordsNow, meaning the trigger point is not
-// exactly where you might assume, but it shouldnt matter.
-
-#define MALLOC(MallocFunc,WordsPrev,WordsNow) \
-        (((WordsPrev) > j__uMaxWords) ? 0UL : MallocFunc(WordsNow))
-
-// Clear words starting at address:
-//
-// Note:  Only use this for objects that care; in other cases, it doesnt
-// matter if the objects memory is pre-zeroed.
-
-#define ZEROWORDS(Addr,Words)                   \
-        {                                       \
-            Word_t  Words__ = (Words);          \
-            PWord_t Addr__  = (PWord_t) (Addr); \
-            while (Words__--) *Addr__++ = 0UL;  \
-        }
-
-#ifdef TRACEMI
-
-// TRACING SUPPORT:
-//
-// Note:  For TRACEMI, use a format for address printing compatible with other
-// tracing facilities; in particular, %x not %lx, to truncate the "noisy" high
-// part on 64-bit systems.
-//
-// TBD: The trace macros need fixing for alternate address types.
-//
-// Note:  TRACEMI2 supports trace analysis no matter the underlying malloc/free
-// engine used.
-
-#include <stdio.h>
-
-static Word_t j__udyMemSequence = 0L;   // event sequence number.
-
-#define TRACE_ALLOC5(a,b,c,d,e)   (void) printf(a, (b), c, d)
-#define TRACE_FREE5( a,b,c,d,e)   (void) printf(a, (b), c, d)
-#define TRACE_ALLOC6(a,b,c,d,e,f) (void) printf(a, (b), c, d, e)
-#define TRACE_FREE6( a,b,c,d,e,f) (void) printf(a, (b), c, d, e)
-
-#else
-
-#ifdef TRACEMI2
-
-#include <stdio.h>
-
-#define b_pw cJU_BYTESPERWORD
-
-#define TRACE_ALLOC5(a,b,c,d,e)   \
-            (void) printf("a %lx %lx %lx\n", (b), (d) * b_pw, e)
-#define TRACE_FREE5( a,b,c,d,e)   \
-            (void) printf("f %lx %lx %lx\n", (b), (d) * b_pw, e)
-#define TRACE_ALLOC6(a,b,c,d,e,f)         \
-            (void) printf("a %lx %lx %lx\n", (b), (e) * b_pw, f)
-#define TRACE_FREE6( a,b,c,d,e,f)         \
-            (void) printf("f %lx %lx %lx\n", (b), (e) * b_pw, f)
-
-static Word_t j__udyMemSequence = 0L;   // event sequence number.
-
-#else
-
-#define TRACE_ALLOC5(a,b,c,d,e)   // null.
-#define TRACE_FREE5( a,b,c,d,e)   // null.
-#define TRACE_ALLOC6(a,b,c,d,e,f) // null.
-#define TRACE_FREE6( a,b,c,d,e,f) // null.
-
-#endif // ! TRACEMI2
-#endif // ! TRACEMI
-
-
-// MALLOC NAMESPACE SUPPORT:
-
-#if (defined(DEBUG) && (! defined(MALLOCBITS))) // for now, DEBUG => MALLOCBITS:
-#define MALLOCBITS 1
-#endif
-
-#ifdef MALLOCBITS
-#define MALLOCBITS_VALUE 0x3    // bit pattern to use.
-#define MALLOCBITS_MASK  0x7    // note: matches mask__ in JudyPrivate.h.
-
-#define MALLOCBITS_SET( Type,Addr) \
-        ((Addr) = (Type) ((Word_t) (Addr) |  MALLOCBITS_VALUE))
-#define MALLOCBITS_TEST(Type,Addr) \
-        assert((((Word_t) (Addr)) & MALLOCBITS_MASK) == MALLOCBITS_VALUE); \
-        ((Addr) = (Type) ((Word_t) (Addr) & ~MALLOCBITS_VALUE))
-#else
-#define MALLOCBITS_SET( Type,Addr)  // null.
-#define MALLOCBITS_TEST(Type,Addr)  // null.
-#endif
-
-
-// SAVE ERROR INFORMATION IN A Pjpm:
-//
-// "Small" (invalid) Addr values are used to distinguish overrun and no-mem
-// errors.  (TBD, non-zero invalid values are no longer returned from
-// lower-level functions, that is, JU_ERRNO_OVERRUN is no longer detected.)
-
-#define J__UDYSETALLOCERROR(Addr)                                       \
-        {                                                               \
-            JU_ERRID(Pjpm) = __LINE__;                                  \
-            if ((Word_t) (Addr) > 0) JU_ERRNO(Pjpm) = JU_ERRNO_OVERRUN; \
-            else                     JU_ERRNO(Pjpm) = JU_ERRNO_NOMEM;   \
-            return(0);                                                  \
-        }
-
-
-// ****************************************************************************
-// ALLOCATION FUNCTIONS:
-//
-// To help the compiler catch coding errors, each function returns a specific
-// object type.
-//
-// Note:  Only j__udyAllocJPM() and j__udyAllocJLW() return multiple values <=
-// sizeof(Word_t) to indicate the type of memory allocation failure.  Other
-// allocation functions convert this failure to a JU_ERRNO.
-
-
-// Note:  Unlike other j__udyAlloc*() functions, Pjpms are returned non-raw,
-// that is, without malloc namespace or root pointer type bits:
-
-FUNCTION Pjpm_t j__udyAllocJPM(void)
-{
-        Word_t Words = (sizeof(jpm_t) + cJU_BYTESPERWORD - 1) / cJU_BYTESPERWORD;
-        Pjpm_t Pjpm  = (Pjpm_t) MALLOC(JudyMalloc, Words, Words);
-
-        assert((Words * cJU_BYTESPERWORD) == sizeof(jpm_t));
-
-        if ((Word_t) Pjpm > sizeof(Word_t))
-        {
-            ZEROWORDS(Pjpm, Words);
-            Pjpm->jpm_TotalMemWords = Words;
-        }
-
-        TRACE_ALLOC5("0x%x %8lu = j__udyAllocJPM(), Words = %lu\n",
-                     Pjpm, j__udyMemSequence++, Words, cJU_LEAFW_MAXPOP1 + 1);
-        // MALLOCBITS_SET(Pjpm_t, Pjpm);  // see above.
-        return(Pjpm);
-
-} // j__udyAllocJPM()
-
-
-FUNCTION Pjbl_t j__udyAllocJBL(Pjpm_t Pjpm)
-{
-        Word_t Words   = sizeof(jbl_t) / cJU_BYTESPERWORD;
-        Pjbl_t PjblRaw = (Pjbl_t) MALLOC(JudyMallocVirtual,
-                                         Pjpm->jpm_TotalMemWords, Words);
-
-        assert((Words * cJU_BYTESPERWORD) == sizeof(jbl_t));
-
-        if ((Word_t) PjblRaw > sizeof(Word_t))
-        {
-            ZEROWORDS(P_JBL(PjblRaw), Words);
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjblRaw); }
-
-        TRACE_ALLOC5("0x%x %8lu = j__udyAllocJBL(), Words = %lu\n", PjblRaw,
-                     j__udyMemSequence++, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjbl_t, PjblRaw);
-        return(PjblRaw);
-
-} // j__udyAllocJBL()
-
-
-FUNCTION Pjbb_t j__udyAllocJBB(Pjpm_t Pjpm)
-{
-        Word_t Words   = sizeof(jbb_t) / cJU_BYTESPERWORD;
-        Pjbb_t PjbbRaw = (Pjbb_t) MALLOC(JudyMallocVirtual,
-                                         Pjpm->jpm_TotalMemWords, Words);
-
-        assert((Words * cJU_BYTESPERWORD) == sizeof(jbb_t));
-
-        if ((Word_t) PjbbRaw > sizeof(Word_t))
-        {
-            ZEROWORDS(P_JBB(PjbbRaw), Words);
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjbbRaw); }
-
-        TRACE_ALLOC5("0x%x %8lu = j__udyAllocJBB(), Words = %lu\n", PjbbRaw,
-                     j__udyMemSequence++, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjbb_t, PjbbRaw);
-        return(PjbbRaw);
-
-} // j__udyAllocJBB()
-
-
-FUNCTION Pjp_t j__udyAllocJBBJP(Word_t NumJPs, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_BRANCHJP_NUMJPSTOWORDS(NumJPs);
-        Pjp_t  PjpRaw;
-
-        PjpRaw = (Pjp_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjpRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjpRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJBBJP(%lu), Words = %lu\n", PjpRaw,
-                     j__udyMemSequence++, NumJPs, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjp_t, PjpRaw);
-        return(PjpRaw);
-
-} // j__udyAllocJBBJP()
-
-
-FUNCTION Pjbu_t j__udyAllocJBU(Pjpm_t Pjpm)
-{
-        Word_t Words   = sizeof(jbu_t) / cJU_BYTESPERWORD;
-        Pjbu_t PjbuRaw = (Pjbu_t) MALLOC(JudyMallocVirtual,
-                                         Pjpm->jpm_TotalMemWords, Words);
-
-        assert((Words * cJU_BYTESPERWORD) == sizeof(jbu_t));
-
-        if ((Word_t) PjbuRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjbuRaw); }
-
-        TRACE_ALLOC5("0x%x %8lu = j__udyAllocJBU(), Words = %lu\n", PjbuRaw,
-                     j__udyMemSequence++, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjbu_t, PjbuRaw);
-        return(PjbuRaw);
-
-} // j__udyAllocJBU()
-
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-
-FUNCTION Pjll_t j__udyAllocJLL1(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF1POPTOWORDS(Pop1);
-        Pjll_t PjllRaw;
-
-        PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjllRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjllRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL1(%lu), Words = %lu\n", PjllRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjll_t, PjllRaw);
-        return(PjllRaw);
-
-} // j__udyAllocJLL1()
-
-#endif // (JUDYL || (! JU_64BIT))
-
-
-FUNCTION Pjll_t j__udyAllocJLL2(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF2POPTOWORDS(Pop1);
-        Pjll_t PjllRaw;
-
-        PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjllRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjllRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL2(%lu), Words = %lu\n", PjllRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjll_t, PjllRaw);
-        return(PjllRaw);
-
-} // j__udyAllocJLL2()
-
-
-FUNCTION Pjll_t j__udyAllocJLL3(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF3POPTOWORDS(Pop1);
-        Pjll_t PjllRaw;
-
-        PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjllRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjllRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL3(%lu), Words = %lu\n", PjllRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjll_t, PjllRaw);
-        return(PjllRaw);
-
-} // j__udyAllocJLL3()
-
-
-#ifdef JU_64BIT
-
-FUNCTION Pjll_t j__udyAllocJLL4(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF4POPTOWORDS(Pop1);
-        Pjll_t PjllRaw;
-
-        PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjllRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjllRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL4(%lu), Words = %lu\n", PjllRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjll_t, PjllRaw);
-        return(PjllRaw);
-
-} // j__udyAllocJLL4()
-
-
-FUNCTION Pjll_t j__udyAllocJLL5(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF5POPTOWORDS(Pop1);
-        Pjll_t PjllRaw;
-
-        PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjllRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjllRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL5(%lu), Words = %lu\n", PjllRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjll_t, PjllRaw);
-        return(PjllRaw);
-
-} // j__udyAllocJLL5()
-
-
-FUNCTION Pjll_t j__udyAllocJLL6(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF6POPTOWORDS(Pop1);
-        Pjll_t PjllRaw;
-
-        PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjllRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjllRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL6(%lu), Words = %lu\n", PjllRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjll_t, PjllRaw);
-        return(PjllRaw);
-
-} // j__udyAllocJLL6()
-
-
-FUNCTION Pjll_t j__udyAllocJLL7(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF7POPTOWORDS(Pop1);
-        Pjll_t PjllRaw;
-
-        PjllRaw = (Pjll_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjllRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjllRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLL7(%lu), Words = %lu\n", PjllRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjll_t, PjllRaw);
-        return(PjllRaw);
-
-} // j__udyAllocJLL7()
-
-#endif // JU_64BIT
-
-
-// Note:  Root-level leaf addresses are always whole words (Pjlw_t), and unlike
-// other j__udyAlloc*() functions, they are returned non-raw, that is, without
-// malloc namespace or root pointer type bits (the latter are added later by
-// the caller):
-
-FUNCTION Pjlw_t j__udyAllocJLW(Word_t Pop1)
-{
-        Word_t Words = JU_LEAFWPOPTOWORDS(Pop1);
-        Pjlw_t Pjlw  = (Pjlw_t) MALLOC(JudyMalloc, Words, Words);
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyAllocJLW(%lu), Words = %lu\n", Pjlw,
-                     j__udyMemSequence++, Pop1, Words, Pop1);
-        // MALLOCBITS_SET(Pjlw_t, Pjlw);  // see above.
-        return(Pjlw);
-
-} // j__udyAllocJLW()
-
-
-FUNCTION Pjlb_t j__udyAllocJLB1(Pjpm_t Pjpm)
-{
-        Word_t Words = sizeof(jlb_t) / cJU_BYTESPERWORD;
-        Pjlb_t PjlbRaw;
-
-        PjlbRaw = (Pjlb_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        assert((Words * cJU_BYTESPERWORD) == sizeof(jlb_t));
-
-        if ((Word_t) PjlbRaw > sizeof(Word_t))
-        {
-            ZEROWORDS(P_JLB(PjlbRaw), Words);
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjlbRaw); }
-
-        TRACE_ALLOC5("0x%x %8lu = j__udyAllocJLB1(), Words = %lu\n", PjlbRaw,
-                     j__udyMemSequence++, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjlb_t, PjlbRaw);
-        return(PjlbRaw);
-
-} // j__udyAllocJLB1()
-
-
-#ifdef JUDYL
-
-FUNCTION Pjv_t j__udyLAllocJV(Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JL_LEAFVPOPTOWORDS(Pop1);
-        Pjv_t  PjvRaw;
-
-        PjvRaw = (Pjv_t) MALLOC(JudyMalloc, Pjpm->jpm_TotalMemWords, Words);
-
-        if ((Word_t) PjvRaw > sizeof(Word_t))
-        {
-            Pjpm->jpm_TotalMemWords += Words;
-        }
-        else { J__UDYSETALLOCERROR(PjvRaw); }
-
-        TRACE_ALLOC6("0x%x %8lu = j__udyLAllocJV(%lu), Words = %lu\n", PjvRaw,
-                     j__udyMemSequence++, Pop1, Words, (Pjpm->jpm_Pop0) + 2);
-        MALLOCBITS_SET(Pjv_t, PjvRaw);
-        return(PjvRaw);
-
-} // j__udyLAllocJV()
-
-#endif // JUDYL
-
-
-// ****************************************************************************
-// FREE FUNCTIONS:
-//
-// To help the compiler catch coding errors, each function takes a specific
-// object type to free.
-
-
-// Note:  j__udyFreeJPM() receives a root pointer with NO root pointer type
-// bits present, that is, they must be stripped by the caller using P_JPM():
-
-FUNCTION void j__udyFreeJPM(Pjpm_t PjpmFree, Pjpm_t PjpmStats)
-{
-        Word_t Words = (sizeof(jpm_t) + cJU_BYTESPERWORD - 1) / cJU_BYTESPERWORD;
-
-        // MALLOCBITS_TEST(Pjpm_t, PjpmFree);   // see above.
-        JudyFree((Pvoid_t) PjpmFree, Words);
-
-        if (PjpmStats != (Pjpm_t) NULL) PjpmStats->jpm_TotalMemWords -= Words;
-
-// Note:  Log PjpmFree->jpm_Pop0, similar to other j__udyFree*() functions, not
-// an assumed value of cJU_LEAFW_MAXPOP1, for when the caller is
-// Judy*FreeArray(), jpm_Pop0 is set to 0, and the population after the free
-// really will be 0, not cJU_LEAFW_MAXPOP1.
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJPM(%lu), Words = %lu\n", PjpmFree,
-                    j__udyMemSequence++, Words, Words, PjpmFree->jpm_Pop0);
-
-
-} // j__udyFreeJPM()
-
-
-FUNCTION void j__udyFreeJBL(Pjbl_t Pjbl, Pjpm_t Pjpm)
-{
-        Word_t Words = sizeof(jbl_t) / cJU_BYTESPERWORD;
-
-        MALLOCBITS_TEST(Pjbl_t, Pjbl);
-        JudyFreeVirtual((Pvoid_t) Pjbl, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE5("0x%x %8lu =  j__udyFreeJBL(), Words = %lu\n", Pjbl,
-                    j__udyMemSequence++, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJBL()
-
-
-FUNCTION void j__udyFreeJBB(Pjbb_t Pjbb, Pjpm_t Pjpm)
-{
-        Word_t Words = sizeof(jbb_t) / cJU_BYTESPERWORD;
-
-        MALLOCBITS_TEST(Pjbb_t, Pjbb);
-        JudyFreeVirtual((Pvoid_t) Pjbb, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE5("0x%x %8lu =  j__udyFreeJBB(), Words = %lu\n", Pjbb,
-                    j__udyMemSequence++, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJBB()
-
-
-FUNCTION void j__udyFreeJBBJP(Pjp_t Pjp, Word_t NumJPs, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_BRANCHJP_NUMJPSTOWORDS(NumJPs);
-
-        MALLOCBITS_TEST(Pjp_t, Pjp);
-        JudyFree((Pvoid_t) Pjp, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJBBJP(%lu), Words = %lu\n", Pjp,
-                    j__udyMemSequence++, NumJPs, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJBBJP()
-
-
-FUNCTION void j__udyFreeJBU(Pjbu_t Pjbu, Pjpm_t Pjpm)
-{
-        Word_t Words = sizeof(jbu_t) / cJU_BYTESPERWORD;
-
-        MALLOCBITS_TEST(Pjbu_t, Pjbu);
-        JudyFreeVirtual((Pvoid_t) Pjbu, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE5("0x%x %8lu =  j__udyFreeJBU(), Words = %lu\n", Pjbu,
-                    j__udyMemSequence++, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJBU()
-
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-
-FUNCTION void j__udyFreeJLL1(Pjll_t Pjll, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF1POPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjll_t, Pjll);
-        JudyFree((Pvoid_t) Pjll, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLL1(%lu), Words = %lu\n", Pjll,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLL1()
-
-#endif // (JUDYL || (! JU_64BIT))
-
-
-FUNCTION void j__udyFreeJLL2(Pjll_t Pjll, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF2POPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjll_t, Pjll);
-        JudyFree((Pvoid_t) Pjll, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLL2(%lu), Words = %lu\n", Pjll,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLL2()
-
-
-FUNCTION void j__udyFreeJLL3(Pjll_t Pjll, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF3POPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjll_t, Pjll);
-        JudyFree((Pvoid_t) Pjll, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLL3(%lu), Words = %lu\n", Pjll,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLL3()
-
-
-#ifdef JU_64BIT
-
-FUNCTION void j__udyFreeJLL4(Pjll_t Pjll, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF4POPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjll_t, Pjll);
-        JudyFree((Pvoid_t) Pjll, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLL4(%lu), Words = %lu\n", Pjll,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLL4()
-
-
-FUNCTION void j__udyFreeJLL5(Pjll_t Pjll, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF5POPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjll_t, Pjll);
-        JudyFree((Pvoid_t) Pjll, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLL5(%lu), Words = %lu\n", Pjll,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLL5()
-
-
-FUNCTION void j__udyFreeJLL6(Pjll_t Pjll, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF6POPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjll_t, Pjll);
-        JudyFree((Pvoid_t) Pjll, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLL6(%lu), Words = %lu\n", Pjll,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLL6()
-
-
-FUNCTION void j__udyFreeJLL7(Pjll_t Pjll, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAF7POPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjll_t, Pjll);
-        JudyFree((Pvoid_t) Pjll, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLL7(%lu), Words = %lu\n", Pjll,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLL7()
-
-#endif // JU_64BIT
-
-
-// Note:  j__udyFreeJLW() receives a root pointer with NO root pointer type
-// bits present, that is, they are stripped by P_JLW():
-
-FUNCTION void j__udyFreeJLW(Pjlw_t Pjlw, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JU_LEAFWPOPTOWORDS(Pop1);
-
-        // MALLOCBITS_TEST(Pjlw_t, Pjlw);       // see above.
-        JudyFree((Pvoid_t) Pjlw, Words);
-
-        if (Pjpm) Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu =  j__udyFreeJLW(%lu), Words = %lu\n", Pjlw,
-                    j__udyMemSequence++, Pop1, Words, Pop1 - 1);
-
-
-} // j__udyFreeJLW()
-
-
-FUNCTION void j__udyFreeJLB1(Pjlb_t Pjlb, Pjpm_t Pjpm)
-{
-        Word_t Words = sizeof(jlb_t) / cJU_BYTESPERWORD;
-
-        MALLOCBITS_TEST(Pjlb_t, Pjlb);
-        JudyFree((Pvoid_t) Pjlb, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE5("0x%x %8lu =  j__udyFreeJLB1(), Words = %lu\n", Pjlb,
-                    j__udyMemSequence++, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyFreeJLB1()
-
-
-#ifdef JUDYL
-
-FUNCTION void j__udyLFreeJV(Pjv_t Pjv, Word_t Pop1, Pjpm_t Pjpm)
-{
-        Word_t Words = JL_LEAFVPOPTOWORDS(Pop1);
-
-        MALLOCBITS_TEST(Pjv_t, Pjv);
-        JudyFree((Pvoid_t) Pjv, Words);
-
-        Pjpm->jpm_TotalMemWords -= Words;
-
-        TRACE_FREE6("0x%x %8lu = j__udyLFreeJV(%lu), Words = %lu\n", Pjv,
-                    j__udyMemSequence++, Pop1, Words, Pjpm->jpm_Pop0);
-
-
-} // j__udyLFreeJV()
-
-#endif // JUDYL
diff --git a/libs/klib/judy/JudyMemActive.c b/libs/klib/judy/JudyMemActive.c
deleted file mode 100644
index d95a134..0000000
--- a/libs/klib/judy/JudyMemActive.c
+++ /dev/null
@@ -1,257 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Return number of bytes of memory used to support a Judy1/L array.
-// Compile with one of -DJUDY1 or -DJUDYL.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-FUNCTION static Word_t j__udyGetMemActive(Pjp_t);
-
-
-// ****************************************************************************
-// J U D Y   1   M E M   A C T I V E
-// J U D Y   L   M E M   A C T I V E
-
-#ifdef JUDY1
-FUNCTION Word_t Judy1MemActive
-#else
-FUNCTION Word_t JudyLMemActive
-#endif
-        (
-	Pcvoid_t PArray	        // from which to retrieve.
-        )
-{
-	if (PArray == (Pcvoid_t)NULL) return(0);
-
-	if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-        {
-	    Pjlw_t Pjlw = P_JLW(PArray);	// first word of leaf.
-            Word_t Words = Pjlw[0] + 1;		// population.
-#ifdef JUDY1
-            return((Words + 1) * sizeof(Word_t));
-#else
-            return(((Words * 2) + 1) * sizeof(Word_t));
-#endif
-        }
-	else
-	{
-	    Pjpm_t Pjpm = P_JPM(PArray);
-	    return(j__udyGetMemActive(&Pjpm->jpm_JP) + sizeof(jpm_t));
-	}
-
-} // JudyMemActive()
-
-
-// ****************************************************************************
-// __ J U D Y   G E T   M E M   A C T I V E
-
-FUNCTION static Word_t j__udyGetMemActive(
-	Pjp_t  Pjp)		// top of subtree.
-{
-	Word_t offset;		// in a branch.
-	Word_t Bytes = 0;	// actual bytes used at this level.
-	Word_t IdxSz;		// bytes per index in leaves
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-	case cJU_JPBRANCH_L2:
-	case cJU_JPBRANCH_L3:
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_L4:
-	case cJU_JPBRANCH_L5:
-	case cJU_JPBRANCH_L6:
-	case cJU_JPBRANCH_L7:
-#endif
-	case cJU_JPBRANCH_L:
-	{
-	    Pjbl_t Pjbl = P_JBL(Pjp->jp_Addr);
-
-	    for (offset = 0; offset < (Pjbl->jbl_NumJPs); ++offset)
-	        Bytes += j__udyGetMemActive((Pjbl->jbl_jp) + offset);
-
-	    return(Bytes + sizeof(jbl_t));
-	}
-
-	case cJU_JPBRANCH_B2:
-	case cJU_JPBRANCH_B3:
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_B4:
-	case cJU_JPBRANCH_B5:
-	case cJU_JPBRANCH_B6:
-	case cJU_JPBRANCH_B7:
-#endif
-	case cJU_JPBRANCH_B:
-	{
-	    Word_t subexp;
-	    Word_t jpcount;
-	    Pjbb_t Pjbb = P_JBB(Pjp->jp_Addr);
-
-	    for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)
-	    {
-	        jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp));
-                Bytes  += jpcount * sizeof(jp_t);
-
-		for (offset = 0; offset < jpcount; ++offset)
-		{
-		    Bytes += j__udyGetMemActive(P_JP(JU_JBB_PJP(Pjbb, subexp))
-			   + offset);
-		}
-	    }
-
-	    return(Bytes + sizeof(jbb_t));
-	}
-
-	case cJU_JPBRANCH_U2:
-	case cJU_JPBRANCH_U3:
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_U4:
-	case cJU_JPBRANCH_U5:
-	case cJU_JPBRANCH_U6:
-	case cJU_JPBRANCH_U7:
-#endif
-	case cJU_JPBRANCH_U:
-        {
-	    Pjbu_t Pjbu = P_JBU(Pjp->jp_Addr);
-
-            for (offset = 0; offset < cJU_BRANCHUNUMJPS; ++offset)
-	    {
-		if (((Pjbu->jbu_jp[offset].jp_Type) >= cJU_JPNULL1)
-		 && ((Pjbu->jbu_jp[offset].jp_Type) <= cJU_JPNULLMAX))
-		{
-		    continue;		// skip null JP to save time.
-		}
-
-	        Bytes += j__udyGetMemActive(Pjbu->jbu_jp + offset);
-	    }
-
-	    return(Bytes + sizeof(jbu_t));
-        }
-
-
-// -- Cases below here terminate and do not recurse. --
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-        case cJU_JPLEAF1: IdxSz = 1; goto LeafWords;
-#endif
-	case cJU_JPLEAF2: IdxSz = 2; goto LeafWords;
-	case cJU_JPLEAF3: IdxSz = 3; goto LeafWords;
-#ifdef JU_64BIT
-	case cJU_JPLEAF4: IdxSz = 4; goto LeafWords;
-	case cJU_JPLEAF5: IdxSz = 5; goto LeafWords;
-	case cJU_JPLEAF6: IdxSz = 6; goto LeafWords;
-	case cJU_JPLEAF7: IdxSz = 7; goto LeafWords;
-#endif
-LeafWords:
-
-#ifdef JUDY1
-            return(IdxSz * (JU_JPLEAF_POP0(Pjp) + 1));
-#else
-            return((IdxSz + sizeof(Word_t))
-		 * (JU_JPLEAF_POP0(Pjp) + 1));
-#endif
-	case cJU_JPLEAF_B1:
-	{
-#ifdef JUDY1
-            return(sizeof(jlb_t));
-#else
-            Bytes = (JU_JPLEAF_POP0(Pjp) + 1) * sizeof(Word_t);
-
-	    return(Bytes + sizeof(jlb_t));
-#endif
-	}
-
-	JUDY1CODE(case cJ1_JPFULLPOPU1: return(0);)
-
-#ifdef JUDY1
-#define J__Mpy 0
-#else
-#define J__Mpy sizeof(Word_t)
-#endif
-
-	case cJU_JPIMMED_1_01:	return(0);
-	case cJU_JPIMMED_2_01:	return(0);
-	case cJU_JPIMMED_3_01:	return(0);
-#ifdef JU_64BIT
-	case cJU_JPIMMED_4_01:	return(0);
-	case cJU_JPIMMED_5_01:	return(0);
-	case cJU_JPIMMED_6_01:	return(0);
-	case cJU_JPIMMED_7_01:	return(0);
-#endif
-
-	case cJU_JPIMMED_1_02:	return(J__Mpy * 2);
-	case cJU_JPIMMED_1_03:	return(J__Mpy * 3);
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04:	return(J__Mpy * 4);
-	case cJU_JPIMMED_1_05:	return(J__Mpy * 5);
-	case cJU_JPIMMED_1_06:	return(J__Mpy * 6);
-	case cJU_JPIMMED_1_07:	return(J__Mpy * 7);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08:	return(0);
-	case cJ1_JPIMMED_1_09:	return(0);
-	case cJ1_JPIMMED_1_10:	return(0);
-	case cJ1_JPIMMED_1_11:	return(0);
-	case cJ1_JPIMMED_1_12:	return(0);
-	case cJ1_JPIMMED_1_13:	return(0);
-	case cJ1_JPIMMED_1_14:	return(0);
-	case cJ1_JPIMMED_1_15:	return(0);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02:	return(J__Mpy * 2);
-	case cJU_JPIMMED_2_03:	return(J__Mpy * 3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04:	return(0);
-	case cJ1_JPIMMED_2_05:	return(0);
-	case cJ1_JPIMMED_2_06:	return(0);
-	case cJ1_JPIMMED_2_07:	return(0);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_3_02:	return(J__Mpy * 2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_3_03:	return(0);
-	case cJ1_JPIMMED_3_04:	return(0);
-	case cJ1_JPIMMED_3_05:	return(0);
-
-	case cJ1_JPIMMED_4_02:	return(0);
-	case cJ1_JPIMMED_4_03:	return(0);
-	case cJ1_JPIMMED_5_02:	return(0);
-	case cJ1_JPIMMED_5_03:	return(0);
-	case cJ1_JPIMMED_6_02:	return(0);
-	case cJ1_JPIMMED_7_02:	return(0);
-#endif
-
-	} // switch (JU_JPTYPE(Pjp))
-
-	return(0);			// to make some compilers happy.
-
-} // j__udyGetMemActive()
diff --git a/libs/klib/judy/JudyMemUsed.c b/libs/klib/judy/JudyMemUsed.c
deleted file mode 100644
index e25f65b..0000000
--- a/libs/klib/judy/JudyMemUsed.c
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Return number of bytes of memory used to support a Judy1/L array.
-// Compile with one of -DJUDY1 or -DJUDYL.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-#ifdef JUDY1
-FUNCTION Word_t Judy1MemUsed
-#else  // JUDYL
-FUNCTION Word_t JudyLMemUsed
-#endif
-        (
-	Pcvoid_t PArray 	// from which to retrieve.
-        )
-{
-	Word_t	 Words = 0;
-
-        if (PArray == (Pcvoid_t) NULL) return(0);
-
-	if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-	{
-	    Pjlw_t Pjlw = P_JLW(PArray);		// first word of leaf.
-	    Words = JU_LEAFWPOPTOWORDS(Pjlw[0] + 1);	// based on pop1.
-	}
-	else
-	{
-	    Pjpm_t Pjpm = P_JPM(PArray);
-	    Words = Pjpm->jpm_TotalMemWords;
-	}
-
-	return(Words * sizeof(Word_t));		// convert to bytes.
-
-} // Judy1MemUsed() / JudyLMemUsed()
diff --git a/libs/klib/judy/JudyNext.c b/libs/klib/judy/JudyNext.c
deleted file mode 100644
index 4af06e2..0000000
--- a/libs/klib/judy/JudyNext.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define JUDYNEXT 1
-#include "JudyPrevNext.c"
diff --git a/libs/klib/judy/JudyNextEmpty.c b/libs/klib/judy/JudyNextEmpty.c
deleted file mode 100644
index 73b0926..0000000
--- a/libs/klib/judy/JudyNextEmpty.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define JUDYNEXT 1
-#include "JudyPrevNextEmpty.c"
diff --git a/libs/klib/judy/JudyPrev.c b/libs/klib/judy/JudyPrev.c
deleted file mode 100644
index 3d9f484..0000000
--- a/libs/klib/judy/JudyPrev.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define JUDYPREV 1
-#include "JudyPrevNext.c"
diff --git a/libs/klib/judy/JudyPrevEmpty.c b/libs/klib/judy/JudyPrevEmpty.c
deleted file mode 100644
index f9a182b..0000000
--- a/libs/klib/judy/JudyPrevEmpty.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define JUDYPREV 1
-#include "JudyPrevNextEmpty.c"
diff --git a/libs/klib/judy/JudyPrevNext.c b/libs/klib/judy/JudyPrevNext.c
deleted file mode 100644
index 1131eef..0000000
--- a/libs/klib/judy/JudyPrevNext.c
+++ /dev/null
@@ -1,1888 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy*Prev() and Judy*Next() functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// Compile with -DJUDYNEXT for the Judy*Next() function; otherwise defaults to
-// Judy*Prev().
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifndef JUDYNEXT
-#ifndef JUDYPREV
-#define	JUDYPREV 1		// neither set => use default.
-#endif
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-
-// ****************************************************************************
-// J U D Y   1   P R E V
-// J U D Y   1   N E X T
-// J U D Y   L   P R E V
-// J U D Y   L   N E X T
-//
-// See the manual entry for the API.
-//
-// OVERVIEW OF Judy*Prev():
-//
-// Use a reentrant switch statement (state machine, SM1 = "get") to decode the
-// callers *PIndex-1, starting with the (PArray), through branches, if
-// any, down to an immediate or a leaf.  Look for *PIndex-1 in that leaf, and
-// if found, return it.
-//
-// A dead end is either a branch that does not contain a JP for the appropriate
-// digit in *PIndex-1, or a leaf that does not contain the undecoded digits of
-// *PIndex-1.  Upon reaching a dead end, backtrack through the leaf/branches
-// that were just traversed, using a list (history) of parent JPs that is built
-// while going forward in SM1Get.  Start with the current leaf or branch.  In a
-// backtracked leaf, look for an Index less than *PIndex-1.  In each
-// backtracked branch, look "sideways" for the next JP, if any, lower than the
-// one for the digit (from *PIndex-1) that was previously decoded.  While
-// backtracking, if a leaf has no previous Index or a branch has no lower JP,
-// go to its parent branch in turn.  Upon reaching the JRP, return failure, "no
-// previous Index".  The backtrack process is sufficiently different from
-// SM1Get to merit its own separate reentrant switch statement (SM2 =
-// "backtrack").
-//
-// While backtracking, upon finding a lower JP in a branch, there is certain to
-// be a "prev" Index under that JP (unless the Judy array is corrupt).
-// Traverse forward again, this time taking the last (highest, right-most) JP
-// in each branch, and the last (highest) Index upon reaching an immediate or a
-// leaf.  This traversal is sufficiently different from SM1Get and SM2Backtrack
-// to merit its own separate reentrant switch statement (SM3 = "findlimit").
-//
-// "Decode" bytes in JPs complicate this process a little.  In SM1Get, when a
-// JP is a narrow pointer, that is, when states are skipped (so the skipped
-// digits are stored in jp_DcdPopO), compare the relevant digits to the same
-// digits in *PIndex-1.  If they are EQUAL, proceed in SM1Get as before.  If
-// jp_DcdPopOs digits are GREATER, treat the JP as a dead end and proceed in
-// SM2Backtrack.  If jp_DcdPopOs digits are LESS, treat the JP as if it had
-// just been found during a backtrack and proceed directly in SM3Findlimit.
-//
-// Note that Decode bytes can be ignored in SM3Findlimit; they dont matter.
-// Also note that in practice the Decode bytes are routinely compared with
-// *PIndex-1 because thats simpler and no slower than first testing for
-// narrowness.
-//
-// Decode bytes also make it unnecessary to construct the Index to return (the
-// revised *PIndex) during the search.  This step is deferred until finding an
-// Index during backtrack or findlimit, before returning it.  The first digit
-// of *PIndex is derived (saved) based on which JP is used in a JRP branch.
-// The remaining digits are obtained from the jp_DcdPopO field in the JP (if
-// any) above the immediate or leaf containing the found (prev) Index, plus the
-// remaining digit(s) in the immediate or leaf itself.  In the case of a LEAFW,
-// the Index to return is found directly in the leaf.
-//
-// Note:  Theoretically, as described above, upon reaching a dead end, SM1Get
-// passes control to SM2Backtrack to look sideways, even in a leaf.  Actually
-// its a little more efficient for the SM1Get leaf cases to shortcut this and
-// take care of the sideways searches themselves.  Hence the history list only
-// contains branch JPs, and SM2Backtrack only handles branches.  In fact, even
-// the branch handling cases in SM1Get do some shortcutting (sideways
-// searching) to avoid pushing history and calling SM2Backtrack unnecessarily.
-//
-// Upon reaching an Index to return after backtracking, *PIndex must be
-// modified to the found Index.  In principle this could be done by building
-// the Index from a saved rootdigit (in the top branch) plus the Dcd bytes from
-// the parent JP plus the appropriate Index bytes from the leaf.  However,
-// Immediates are difficult because their parent JPs lack one (last) digit.  So
-// instead just build the *PIndex to return "top down" while backtracking and
-// findlimiting.
-//
-// This function is written iteratively for speed, rather than recursively.
-//
-// CAVEATS:
-//
-// Why use a backtrack list (history stack), since it has finite size?  The
-// size is small for Judy on both 32-bit and 64-bit systems, and a list (really
-// just an array) is fast to maintain and use.  Other alternatives include
-// doing a lookahead (lookaside) in each branch while traversing forward
-// (decoding), and restarting from the top upon a dead end.
-//
-// A lookahead means noting the last branch traversed which contained a
-// non-null JP lower than the one specified by a digit in *PIndex-1, and
-// returning to that point for SM3Findlimit.  This seems like a good idea, and
-// should be pretty cheap for linear and bitmap branches, but it could result
-// in up to 31 unnecessary additional cache line fills (in extreme cases) for
-// every uncompressed branch traversed.  We have considered means of attaching
-// to or hiding within an uncompressed branch (in null JPs) a "cache line map"
-// or other structure, such as an offset to the next non-null JP, that would
-// speed this up, but it seems unnecessary merely to avoid having a
-// finite-length list (array).  (If JudySL is ever made "native", the finite
-// list length will be an issue.)
-//
-// Restarting at the top of the Judy array after a dead end requires a careful
-// modification of *PIndex-1 to decrement the digit for the parent branch and
-// set the remaining lower digits to all 1s.  This must be repeated each time a
-// parent branch contains another dead end, so even though it should all happen
-// in cache, the CPU time can be excessive.  (For JudySL or an equivalent
-// "infinitely deep" Judy array, consider a hybrid of a large, finite,
-// "circular" list and a restart-at-top when the list is backtracked to
-// exhaustion.)
-//
-// Why search for *PIndex-1 instead of *PIndex during SM1Get?  In rare
-// instances this prevents an unnecessary decode down the wrong path followed
-// by a backtrack; its pretty cheap to set up initially; and it means the
-// SM1Get machine can simply return if/when it finds that Index.
-//
-// TBD:  Wed like to enhance this function to make successive searches faster.
-// This would require saving some previous state, including the previous Index
-// returned, and in which leaf it was found.  If the next call is for the same
-// Index and the array has not been modified, start at the same leaf.  This
-// should be much easier to implement since this is iterative rather than
-// recursive code.
-//
-// VARIATIONS FOR Judy*Next():
-//
-// The Judy*Next() code is nearly a perfect mirror of the Judy*Prev() code.
-// See the Judy*Prev() overview comments, and mentally switch the following:
-//
-// - "*PIndex-1"  => "*PIndex+1"
-// - "less than"  => "greater than"
-// - "lower"      => "higher"
-// - "lowest"     => "highest"
-// - "next-left"  => "next-right"
-// - "right-most" => "left-most"
-//
-// Note:  SM3Findlimit could be called SM3Findmax/SM3Findmin, but a common name
-// for both Prev and Next means many fewer ifdefs in this code.
-//
-// TBD:  Currently this code traverses a JP whether its expanse is partially or
-// completely full (populated).  For Judy1 (only), since there is no value area
-// needed, consider shortcutting to a "success" return upon encountering a full
-// JP in SM1Get (or even SM3Findlimit?)  A full JP looks like this:
-//
-//	(((JU_JPDCDPOP0(Pjp) ^ cJU_ALLONES) & cJU_POP0MASK(cLevel)) == 0)
-
-#ifdef JUDY1
-#ifdef JUDYPREV
-FUNCTION int Judy1Prev
-#else
-FUNCTION int Judy1Next
-#endif
-#else
-#ifdef JUDYPREV
-FUNCTION PPvoid_t JudyLPrev
-#else
-FUNCTION PPvoid_t JudyLNext
-#endif
-#endif
-        (
-	Pcvoid_t  PArray,	// Judy array to search.
-	Word_t *  PIndex,	// starting point and result.
-	PJError_t PJError	// optional, for returning error info.
-        )
-{
-	Pjp_t	  Pjp, Pjp2;	// current JPs.
-	Pjbl_t	  Pjbl;		// Pjp->jp_Addr masked and cast to types:
-	Pjbb_t	  Pjbb;
-	Pjbu_t	  Pjbu;
-
-// Note:  The following initialization is not strictly required but it makes
-// gcc -Wall happy because there is an "impossible" path from Immed handling to
-// SM1LeafLImm code that looks like Pjll might be used before set:
-
-	Pjll_t	  Pjll = (Pjll_t) NULL;
-	Word_t	  state;	// current state in SM.
-	Word_t	  digit;	// next digit to decode from Index.
-
-// Note:  The following initialization is not strictly required but it makes
-// gcc -Wall happy because there is an "impossible" path from Immed handling to
-// SM1LeafLImm code (for JudyL & JudyPrev only) that looks like pop1 might be
-// used before set:
-
-#if (defined(JUDYL) && defined(JUDYPREV))
-	Word_t	  pop1 = 0;	// in a leaf.
-#else
-	Word_t	  pop1;		// in a leaf.
-#endif
-	int	  offset;	// linear branch/leaf, from j__udySearchLeaf*().
-	int	  subexp;	// subexpanse in a bitmap branch.
-	Word_t	  bitposmask;	// bit in bitmap for Index.
-
-// History for SM2Backtrack:
-//
-// For a given histnum, APjphist[histnum] is a parent JP that points to a
-// branch, and Aoffhist[histnum] is the offset of the NEXT JP in the branch to
-// which the parent JP points.  The meaning of Aoffhist[histnum] depends on the
-// type of branch to which the parent JP points:
-//
-// Linear:  Offset of the next JP in the JP list.
-//
-// Bitmap:  Which subexpanse, plus the offset of the next JP in the
-// subexpanses JP list (to avoid bit-counting again), plus for Judy*Next(),
-// hidden one byte to the left, which digit, because Judy*Next() also needs
-// this.
-//
-// Uncompressed:  Digit, which is actually the offset of the JP in the branch.
-//
-// Note:  Only branch JPs are stored in APjphist[] because, as explained
-// earlier, SM1Get shortcuts sideways searches in leaves (and even in branches
-// in some cases), so SM2Backtrack only handles branches.
-
-#define	HISTNUMMAX cJU_ROOTSTATE	// maximum branches traversable.
-	Pjp_t	APjphist[HISTNUMMAX];	// list of branch JPs traversed.
-	int	Aoffhist[HISTNUMMAX];	// list of next JP offsets; see above.
-	int	histnum = 0;		// number of JPs now in list.
-
-
-// ----------------------------------------------------------------------------
-// M A C R O S
-//
-// These are intended to make the code a bit more readable and less redundant.
-
-
-// "PUSH" AND "POP" Pjp AND offset ON HISTORY STACKS:
-//
-// Note:  Ensure a corrupt Judy array does not overflow *hist[].  Meanwhile,
-// underflowing *hist[] simply means theres no more room to backtrack =>
-// "no previous/next Index".
-
-#define	HISTPUSH(Pjp,Offset)			\
-	APjphist[histnum] = (Pjp);		\
-	Aoffhist[histnum] = (Offset);		\
-						\
-	if (++histnum >= HISTNUMMAX)		\
-	{					\
-	    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT) \
-	    JUDY1CODE(return(JERRI );)		\
-	    JUDYLCODE(return(PPJERR);)		\
-	}
-
-#define	HISTPOP(Pjp,Offset)			\
-	if ((histnum--) < 1) JU_RET_NOTFOUND;	\
-	(Pjp)	 = APjphist[histnum];		\
-	(Offset) = Aoffhist[histnum]
-
-// How to pack/unpack Aoffhist[] values for bitmap branches:
-
-#ifdef JUDYPREV
-
-#define	HISTPUSHBOFF(Subexp,Offset,Digit)	  \
-	(((Subexp) * cJU_BITSPERSUBEXPB) | (Offset))
-
-#define	HISTPOPBOFF(Subexp,Offset,Digit)	  \
-	(Subexp)  = (Offset) / cJU_BITSPERSUBEXPB; \
-	(Offset) %= cJU_BITSPERSUBEXPB
-#else
-
-#define	HISTPUSHBOFF(Subexp,Offset,Digit)	 \
-	 (((Digit) << cJU_BITSPERBYTE)		 \
-	| ((Subexp) * cJU_BITSPERSUBEXPB) | (Offset))
-
-#define	HISTPOPBOFF(Subexp,Offset,Digit)	 \
-	(Digit)   = (Offset) >> cJU_BITSPERBYTE; \
-	(Subexp)  = ((Offset) & JU_LEASTBYTESMASK(1)) / cJU_BITSPERSUBEXPB; \
-	(Offset) %= cJU_BITSPERSUBEXPB
-#endif
-
-
-// CHECK FOR NULL JP:
-
-#define	JPNULL(Type)  (((Type) >= cJU_JPNULL1) && ((Type) <= cJU_JPNULLMAX))
-
-
-// SEARCH A BITMAP:
-//
-// This is a weak analog of j__udySearchLeaf*() for bitmaps.  Return the actual
-// or next-left position, base 0, of Digit in the single uint32_t bitmap, also
-// given a Bitposmask for Digit.
-//
-// Unlike j__udySearchLeaf*(), the offset is not returned bit-complemented if
-// Digits bit is unset, because the caller can check the bitmap themselves to
-// determine that.  Also, if Digits bit is unset, the returned offset is to
-// the next-left JP (including -1), not to the "ideal" position for the Index =
-// next-right JP.
-//
-// Shortcut and skip calling j__udyCountBits*() if the bitmap is full, in which
-// case (Digit % cJU_BITSPERSUBEXP*) itself is the base-0 offset.
-//
-// TBD for Judy*Next():  Should this return next-right instead of next-left?
-// That is, +1 from current value?  Maybe not, if Digits bit IS set, +1 would
-// be wrong.
-
-#define	SEARCHBITMAPB(Bitmap,Digit,Bitposmask)				\
-	(((Bitmap) == cJU_FULLBITMAPB) ? (Digit % cJU_BITSPERSUBEXPB) :	\
-	 j__udyCountBitsB((Bitmap) & JU_MASKLOWERINC(Bitposmask)) - 1)
-
-#define	SEARCHBITMAPL(Bitmap,Digit,Bitposmask)				\
-	(((Bitmap) == cJU_FULLBITMAPL) ? (Digit % cJU_BITSPERSUBEXPL) :	\
-	 j__udyCountBitsL((Bitmap) & JU_MASKLOWERINC(Bitposmask)) - 1)
-
-#ifdef JUDYPREV
-// Equivalent to search for the highest offset in Bitmap:
-
-#define	SEARCHBITMAPMAXB(Bitmap)				  \
-	(((Bitmap) == cJU_FULLBITMAPB) ? cJU_BITSPERSUBEXPB - 1 : \
-	 j__udyCountBitsB(Bitmap) - 1)
-
-#define	SEARCHBITMAPMAXL(Bitmap)				  \
-	(((Bitmap) == cJU_FULLBITMAPL) ? cJU_BITSPERSUBEXPL - 1 : \
-	 j__udyCountBitsL(Bitmap) - 1)
-#endif
-
-
-// CHECK DECODE BYTES:
-//
-// Check Decode bytes in a JP against the equivalent portion of *PIndex.  If
-// *PIndex is lower (for Judy*Prev()) or higher (for Judy*Next()), this JP is a
-// dead end (the same as if it had been absent in a linear or bitmap branch or
-// null in an uncompressed branch), enter SM2Backtrack; otherwise enter
-// SM3Findlimit to find the highest/lowest Index under this JP, as if the code
-// had already backtracked to this JP.
-
-#ifdef JUDYPREV
-#define	CDcmp__ <
-#else
-#define	CDcmp__ >
-#endif
-
-#define	CHECKDCD(cState)						\
-	if (JU_DCDNOTMATCHINDEX(*PIndex, Pjp, cState))	                \
-	{								\
-	    if ((*PIndex		& cJU_DCDMASK(cState))		\
-	      CDcmp__(JU_JPDCDPOP0(Pjp) & cJU_DCDMASK(cState)))		\
-	    {								\
-		goto SM2Backtrack;					\
-	    }								\
-	    goto SM3Findlimit;						\
-	}
-
-
-// PREPARE TO HANDLE A LEAFW OR JRP BRANCH IN SM1:
-//
-// Extract a state-dependent digit from Index in a "constant" way, then jump to
-// common code for multiple cases.
-
-#define	SM1PREPB(cState,Next)				\
-	state = (cState);				\
-	digit = JU_DIGITATSTATE(*PIndex, cState);	\
-	goto Next
-
-
-// PREPARE TO HANDLE A LEAFW OR JRP BRANCH IN SM3:
-//
-// Optionally save Dcd bytes into *PIndex, then save state and jump to common
-// code for multiple cases.
-
-#define	SM3PREPB_DCD(cState,Next)			\
-	JU_SETDCD(*PIndex, Pjp, cState);	        \
-	SM3PREPB(cState,Next)
-
-#define	SM3PREPB(cState,Next)  state = (cState); goto Next
-
-
-// ----------------------------------------------------------------------------
-// CHECK FOR SHORTCUTS:
-//
-// Error out if PIndex is null.  Execute JU_RET_NOTFOUND if the Judy array is
-// empty or *PIndex is already the minimum/maximum Index possible.
-//
-// Note:  As documented, in case of failure *PIndex may be modified.
-
-	if (PIndex == (PWord_t) NULL)
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-	}
-
-#ifdef JUDYPREV
-	if ((PArray == (Pvoid_t) NULL) || ((*PIndex)-- == 0))
-#else
-	if ((PArray == (Pvoid_t) NULL) || ((*PIndex)++ == cJU_ALLONES))
-#endif
-	    JU_RET_NOTFOUND;
-
-
-// HANDLE JRP:
-//
-// Before even entering SM1Get, check the JRP type.  For JRP branches, traverse
-// the JPM; handle LEAFW leaves directly; but look for the most common cases
-// first.
-
-// ROOT-STATE LEAF that starts with a Pop0 word; just look within the leaf:
-//
-// If *PIndex is in the leaf, return it; otherwise return the Index, if any,
-// below where it would belong.
-
-	if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-	{
-	    Pjlw_t Pjlw = P_JLW(PArray);	// first word of leaf.
-	    pop1 = Pjlw[0] + 1;
-
-	    if ((offset = j__udySearchLeafW(Pjlw + 1, pop1, *PIndex))
-		>= 0)				// Index is present.
-	    {
-		assert(offset < pop1);			  // in expected range.
-		JU_RET_FOUND_LEAFW(Pjlw, pop1, offset); // *PIndex is set.
-	    }
-
-#ifdef JUDYPREV
-	    if ((offset = ~offset) == 0)	// no next-left Index.
-#else
-	    if ((offset = ~offset) >= pop1)	// no next-right Index.
-#endif
-		JU_RET_NOTFOUND;
-
-	    assert(offset <= pop1);		// valid result.
-
-#ifdef JUDYPREV
-	    *PIndex = Pjlw[offset--];		// next-left Index, base 1.
-#else
-	    *PIndex = Pjlw[offset + 1];		// next-right Index, base 1.
-#endif
-	    JU_RET_FOUND_LEAFW(Pjlw, pop1, offset);	// base 0.
-
-	}
-	else	// JRP BRANCH
-	{
-	    Pjpm_t Pjpm = P_JPM(PArray);
-	    Pjp = &(Pjpm->jpm_JP);
-
-//	    goto SM1Get;
-	}
-
-// ============================================================================
-// STATE MACHINE 1 -- GET INDEX:
-//
-// Search for *PIndex (already decremented/incremented so as to be inclusive).
-// If found, return it.  Otherwise in theory hand off to SM2Backtrack or
-// SM3Findlimit, but in practice "shortcut" by first sideways searching the
-// current branch or leaf upon hitting a dead end.  During sideways search,
-// modify *PIndex to a new path taken.
-//
-// ENTRY:  Pjp points to next JP to interpret, whose Decode bytes have not yet
-// been checked.  This JP is not yet listed in history.
-//
-// Note:  Check Decode bytes at the start of each loop, not after looking up a
-// new JP, so its easy to do constant shifts/masks, although this requires
-// cautious handling of Pjp, offset, and *hist[] for correct entry to
-// SM2Backtrack.
-//
-// EXIT:  Return, or branch to SM2Backtrack or SM3Findlimit with correct
-// interface, as described elsewhere.
-//
-// WARNING:  For run-time efficiency the following cases replicate code with
-// varying constants, rather than using common code with variable values!
-
-SM1Get:				// return here for next branch/leaf.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// ----------------------------------------------------------------------------
-// LINEAR BRANCH:
-//
-// Check Decode bytes, if any, in the current JP, then search for a JP for the
-// next digit in *PIndex.
-
-	case cJU_JPBRANCH_L2: CHECKDCD(2); SM1PREPB(2, SM1BranchL);
-	case cJU_JPBRANCH_L3: CHECKDCD(3); SM1PREPB(3, SM1BranchL);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_L4: CHECKDCD(4); SM1PREPB(4, SM1BranchL);
-	case cJU_JPBRANCH_L5: CHECKDCD(5); SM1PREPB(5, SM1BranchL);
-	case cJU_JPBRANCH_L6: CHECKDCD(6); SM1PREPB(6, SM1BranchL);
-	case cJU_JPBRANCH_L7: CHECKDCD(7); SM1PREPB(7, SM1BranchL);
-#endif
-	case cJU_JPBRANCH_L:		   SM1PREPB(cJU_ROOTSTATE, SM1BranchL);
-
-// Common code (state-independent) for all cases of linear branches:
-
-SM1BranchL:
-	    Pjbl = P_JBL(Pjp->jp_Addr);
-
-// Found JP matching current digit in *PIndex; record parent JP and the next
-// JPs offset, and iterate to the next JP:
-
-	    if ((offset = j__udySearchLeaf1((Pjll_t) (Pjbl->jbl_Expanse),
-					     Pjbl->jbl_NumJPs, digit)) >= 0)
-	    {
-		HISTPUSH(Pjp, offset);
-		Pjp = (Pjbl->jbl_jp) + offset;
-		goto SM1Get;
-	    }
-
-// Dead end, no JP in BranchL for next digit in *PIndex:
-//
-// Get the ideal location of digits JP, and if theres no next-left/right JP
-// in the BranchL, shortcut and start backtracking one level up; ignore the
-// current Pjp because it points to a BranchL with no next-left/right JP.
-
-#ifdef JUDYPREV
-	    if ((offset = (~offset) - 1) < 0)	// no next-left JP in BranchL.
-#else
-	    if ((offset = (~offset)) >= Pjbl->jbl_NumJPs)  // no next-right.
-#endif
-		goto SM2Backtrack;
-
-// Theres a next-left/right JP in the current BranchL; save its digit in
-// *PIndex and shortcut to SM3Findlimit:
-
-	    JU_SETDIGIT(*PIndex, Pjbl->jbl_Expanse[offset], state);
-	    Pjp = (Pjbl->jbl_jp) + offset;
-	    goto SM3Findlimit;
-
-
-// ----------------------------------------------------------------------------
-// BITMAP BRANCH:
-//
-// Check Decode bytes, if any, in the current JP, then look for a JP for the
-// next digit in *PIndex.
-
-	case cJU_JPBRANCH_B2: CHECKDCD(2); SM1PREPB(2, SM1BranchB);
-	case cJU_JPBRANCH_B3: CHECKDCD(3); SM1PREPB(3, SM1BranchB);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_B4: CHECKDCD(4); SM1PREPB(4, SM1BranchB);
-	case cJU_JPBRANCH_B5: CHECKDCD(5); SM1PREPB(5, SM1BranchB);
-	case cJU_JPBRANCH_B6: CHECKDCD(6); SM1PREPB(6, SM1BranchB);
-	case cJU_JPBRANCH_B7: CHECKDCD(7); SM1PREPB(7, SM1BranchB);
-#endif
-	case cJU_JPBRANCH_B:		   SM1PREPB(cJU_ROOTSTATE, SM1BranchB);
-
-// Common code (state-independent) for all cases of bitmap branches:
-
-SM1BranchB:
-	    Pjbb = P_JBB(Pjp->jp_Addr);
-
-// Locate the digits JP in the subexpanse list, if present, otherwise the
-// offset of the next-left JP, if any:
-
-	    subexp     = digit / cJU_BITSPERSUBEXPB;
-	    assert(subexp < cJU_NUMSUBEXPB);	// falls in expected range.
-	    bitposmask = JU_BITPOSMASKB(digit);
-	    offset     = SEARCHBITMAPB(JU_JBB_BITMAP(Pjbb, subexp), digit,
-				       bitposmask);
-	    // right range:
-	    assert((offset >= -1) && (offset < (int) cJU_BITSPERSUBEXPB));
-
-// Found JP matching current digit in *PIndex:
-//
-// Record the parent JP and the next JPs offset; and iterate to the next JP.
-
-//	    if (JU_BITMAPTESTB(Pjbb, digit))			// slower.
-	    if (JU_JBB_BITMAP(Pjbb, subexp) & bitposmask)	// faster.
-	    {
-		// not negative since at least one bit is set:
-		assert(offset >= 0);
-
-		HISTPUSH(Pjp, HISTPUSHBOFF(subexp, offset, digit));
-
-		if ((Pjp = P_JP(JU_JBB_PJP(Pjbb, subexp))) == (Pjp_t) NULL)
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-		}
-
-		Pjp += offset;
-		goto SM1Get;		// iterate to next JP.
-	    }
-
-// Dead end, no JP in BranchB for next digit in *PIndex:
-//
-// If theres a next-left/right JP in the current BranchB, shortcut to
-// SM3Findlimit.  Note:  offset is already set to the correct value for the
-// next-left/right JP.
-
-#ifdef JUDYPREV
-	    if (offset >= 0)		// next-left JP is in this subexpanse.
-		goto SM1BranchBFindlimit;
-
-	    while (--subexp >= 0)		// search next-left subexpanses.
-#else
-	    if (JU_JBB_BITMAP(Pjbb, subexp) & JU_MASKHIGHEREXC(bitposmask))
-	    {
-		++offset;			// next-left => next-right.
-		goto SM1BranchBFindlimit;
-	    }
-
-	    while (++subexp < cJU_NUMSUBEXPB)	// search next-right subexps.
-#endif
-	    {
-		if (! JU_JBB_PJP(Pjbb, subexp)) continue;  // empty subexpanse.
-
-#ifdef JUDYPREV
-		offset = SEARCHBITMAPMAXB(JU_JBB_BITMAP(Pjbb, subexp));
-		// expected range:
-		assert((offset >= 0) && (offset < cJU_BITSPERSUBEXPB));
-#else
-		offset = 0;
-#endif
-
-// Save the next-left/right JPs digit in *PIndex:
-
-SM1BranchBFindlimit:
-		JU_BITMAPDIGITB(digit, subexp, JU_JBB_BITMAP(Pjbb, subexp),
-				offset);
-		JU_SETDIGIT(*PIndex, digit, state);
-
-		if ((Pjp = P_JP(JU_JBB_PJP(Pjbb, subexp))) == (Pjp_t) NULL)
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-		}
-
-		Pjp += offset;
-		goto SM3Findlimit;
-	    }
-
-// Theres no next-left/right JP in the BranchB:
-//
-// Shortcut and start backtracking one level up; ignore the current Pjp because
-// it points to a BranchB with no next-left/right JP.
-
-	    goto SM2Backtrack;
-
-
-// ----------------------------------------------------------------------------
-// UNCOMPRESSED BRANCH:
-//
-// Check Decode bytes, if any, in the current JP, then look for a JP for the
-// next digit in *PIndex.
-
-	case cJU_JPBRANCH_U2: CHECKDCD(2); SM1PREPB(2, SM1BranchU);
-	case cJU_JPBRANCH_U3: CHECKDCD(3); SM1PREPB(3, SM1BranchU);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_U4: CHECKDCD(4); SM1PREPB(4, SM1BranchU);
-	case cJU_JPBRANCH_U5: CHECKDCD(5); SM1PREPB(5, SM1BranchU);
-	case cJU_JPBRANCH_U6: CHECKDCD(6); SM1PREPB(6, SM1BranchU);
-	case cJU_JPBRANCH_U7: CHECKDCD(7); SM1PREPB(7, SM1BranchU);
-#endif
-	case cJU_JPBRANCH_U:		   SM1PREPB(cJU_ROOTSTATE, SM1BranchU);
-
-// Common code (state-independent) for all cases of uncompressed branches:
-
-SM1BranchU:
-	    Pjbu = P_JBU(Pjp->jp_Addr);
-	    Pjp2 = (Pjbu->jbu_jp) + digit;
-
-// Found JP matching current digit in *PIndex:
-//
-// Record the parent JP and the next JPs digit, and iterate to the next JP.
-//
-// TBD:  Instead of this, just goto SM1Get, and add cJU_JPNULL* cases to the
-// SM1Get state machine?  Then backtrack?  However, it means you cant detect
-// an inappropriate cJU_JPNULL*, when it occurs in other than a BranchU, and
-// return JU_RET_CORRUPT.
-
-	    if (! JPNULL(JU_JPTYPE(Pjp2)))	// digit has a JP.
-	    {
-		HISTPUSH(Pjp, digit);
-		Pjp = Pjp2;
-		goto SM1Get;
-	    }
-
-// Dead end, no JP in BranchU for next digit in *PIndex:
-//
-// Search for a next-left/right JP in the current BranchU, and if one is found,
-// save its digit in *PIndex and shortcut to SM3Findlimit:
-
-#ifdef JUDYPREV
-	    while (digit >= 1)
-	    {
-		Pjp = (Pjbu->jbu_jp) + (--digit);
-#else
-	    while (digit < cJU_BRANCHUNUMJPS - 1)
-	    {
-		Pjp = (Pjbu->jbu_jp) + (++digit);
-#endif
-		if (JPNULL(JU_JPTYPE(Pjp))) continue;
-
-		JU_SETDIGIT(*PIndex, digit, state);
-		goto SM3Findlimit;
-	    }
-
-// Theres no next-left/right JP in the BranchU:
-//
-// Shortcut and start backtracking one level up; ignore the current Pjp because
-// it points to a BranchU with no next-left/right JP.
-
-	    goto SM2Backtrack;
-
-
-// ----------------------------------------------------------------------------
-// LINEAR LEAF:
-//
-// Check Decode bytes, if any, in the current JP, then search the leaf for
-// *PIndex.
-
-#define	SM1LEAFL(Func)					\
-	Pjll   = P_JLL(Pjp->jp_Addr);			\
-	pop1   = JU_JPLEAF_POP0(Pjp) + 1;	        \
-	offset = Func(Pjll, pop1, *PIndex);		\
-	goto SM1LeafLImm
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	case cJU_JPLEAF1:  CHECKDCD(1); SM1LEAFL(j__udySearchLeaf1);
-#endif
-	case cJU_JPLEAF2:  CHECKDCD(2); SM1LEAFL(j__udySearchLeaf2);
-	case cJU_JPLEAF3:  CHECKDCD(3); SM1LEAFL(j__udySearchLeaf3);
-
-#ifdef JU_64BIT
-	case cJU_JPLEAF4:  CHECKDCD(4); SM1LEAFL(j__udySearchLeaf4);
-	case cJU_JPLEAF5:  CHECKDCD(5); SM1LEAFL(j__udySearchLeaf5);
-	case cJU_JPLEAF6:  CHECKDCD(6); SM1LEAFL(j__udySearchLeaf6);
-	case cJU_JPLEAF7:  CHECKDCD(7); SM1LEAFL(j__udySearchLeaf7);
-#endif
-
-// Common code (state-independent) for all cases of linear leaves and
-// immediates:
-
-SM1LeafLImm:
-	    if (offset >= 0)		// *PIndex is in LeafL / Immed.
-#ifdef JUDY1
-		JU_RET_FOUND;
-#else
-	    {				// JudyL is trickier...
-		switch (JU_JPTYPE(Pjp))
-		{
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-		case cJU_JPLEAF1: JU_RET_FOUND_LEAF1(Pjll, pop1, offset);
-#endif
-		case cJU_JPLEAF2: JU_RET_FOUND_LEAF2(Pjll, pop1, offset);
-		case cJU_JPLEAF3: JU_RET_FOUND_LEAF3(Pjll, pop1, offset);
-#ifdef JU_64BIT
-		case cJU_JPLEAF4: JU_RET_FOUND_LEAF4(Pjll, pop1, offset);
-		case cJU_JPLEAF5: JU_RET_FOUND_LEAF5(Pjll, pop1, offset);
-		case cJU_JPLEAF6: JU_RET_FOUND_LEAF6(Pjll, pop1, offset);
-		case cJU_JPLEAF7: JU_RET_FOUND_LEAF7(Pjll, pop1, offset);
-#endif
-
-		case cJU_JPIMMED_1_01:
-		case cJU_JPIMMED_2_01:
-		case cJU_JPIMMED_3_01:
-#ifdef JU_64BIT
-		case cJU_JPIMMED_4_01:
-		case cJU_JPIMMED_5_01:
-		case cJU_JPIMMED_6_01:
-		case cJU_JPIMMED_7_01:
-#endif
-		    JU_RET_FOUND_IMM_01(Pjp);
-
-		case cJU_JPIMMED_1_02:
-		case cJU_JPIMMED_1_03:
-#ifdef JU_64BIT
-		case cJU_JPIMMED_1_04:
-		case cJU_JPIMMED_1_05:
-		case cJU_JPIMMED_1_06:
-		case cJU_JPIMMED_1_07:
-		case cJU_JPIMMED_2_02:
-		case cJU_JPIMMED_2_03:
-		case cJU_JPIMMED_3_02:
-#endif
-		    JU_RET_FOUND_IMM(Pjp, offset);
-		}
-
-		JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);  // impossible?
-		JUDY1CODE(return(JERRI );)
-		JUDYLCODE(return(PPJERR);)
-
-	    } // found *PIndex
-
-#endif // JUDYL
-
-// Dead end, no Index in LeafL / Immed for remaining digit(s) in *PIndex:
-//
-// Get the ideal location of Index, and if theres no next-left/right Index in
-// the LeafL / Immed, shortcut and start backtracking one level up; ignore the
-// current Pjp because it points to a LeafL / Immed with no next-left/right
-// Index.
-
-#ifdef JUDYPREV
-	    if ((offset = (~offset) - 1) < 0)	// no next-left Index.
-#else
-	    if ((offset = (~offset)) >= pop1)	// no next-right Index.
-#endif
-		goto SM2Backtrack;
-
-// Theres a next-left/right Index in the current LeafL / Immed; shortcut by
-// copying its digit(s) to *PIndex and returning it.
-//
-// Unfortunately this is pretty hairy, especially avoiding endian issues.
-//
-// The cJU_JPLEAF* cases are very similar to same-index-size cJU_JPIMMED* cases
-// for *_02 and above, but must return differently, at least for JudyL, so
-// spell them out separately here at the cost of a little redundant code for
-// Judy1.
-
-	    switch (JU_JPTYPE(Pjp))
-	    {
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	    case cJU_JPLEAF1:
-
-		JU_SETDIGIT1(*PIndex, ((uint8_t *) Pjll)[offset]);
-		JU_RET_FOUND_LEAF1(Pjll, pop1, offset);
-#endif
-
-	    case cJU_JPLEAF2:
-
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(2)))
-			| ((uint16_t *) Pjll)[offset];
-		JU_RET_FOUND_LEAF2(Pjll, pop1, offset);
-
-	    case cJU_JPLEAF3:
-	    {
-		Word_t lsb;
-		JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (3 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-		JU_RET_FOUND_LEAF3(Pjll, pop1, offset);
-	    }
-
-#ifdef JU_64BIT
-	    case cJU_JPLEAF4:
-
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(4)))
-			| ((uint32_t *) Pjll)[offset];
-		JU_RET_FOUND_LEAF4(Pjll, pop1, offset);
-
-	    case cJU_JPLEAF5:
-	    {
-		Word_t lsb;
-		JU_COPY5_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (5 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(5))) | lsb;
-		JU_RET_FOUND_LEAF5(Pjll, pop1, offset);
-	    }
-
-	    case cJU_JPLEAF6:
-	    {
-		Word_t lsb;
-		JU_COPY6_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (6 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(6))) | lsb;
-		JU_RET_FOUND_LEAF6(Pjll, pop1, offset);
-	    }
-
-	    case cJU_JPLEAF7:
-	    {
-		Word_t lsb;
-		JU_COPY7_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (7 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(7))) | lsb;
-		JU_RET_FOUND_LEAF7(Pjll, pop1, offset);
-	    }
-
-#endif // JU_64BIT
-
-#define	SET_01(cState)  JU_SETDIGITS(*PIndex, JU_JPDCDPOP0(Pjp), cState)
-
-	    case cJU_JPIMMED_1_01: SET_01(1); goto SM1Imm_01;
-	    case cJU_JPIMMED_2_01: SET_01(2); goto SM1Imm_01;
-	    case cJU_JPIMMED_3_01: SET_01(3); goto SM1Imm_01;
-#ifdef JU_64BIT
-	    case cJU_JPIMMED_4_01: SET_01(4); goto SM1Imm_01;
-	    case cJU_JPIMMED_5_01: SET_01(5); goto SM1Imm_01;
-	    case cJU_JPIMMED_6_01: SET_01(6); goto SM1Imm_01;
-	    case cJU_JPIMMED_7_01: SET_01(7); goto SM1Imm_01;
-#endif
-SM1Imm_01:	JU_RET_FOUND_IMM_01(Pjp);
-
-// Shorthand for where to find start of Index bytes array:
-
-#ifdef JUDY1
-#define	PJI (Pjp->jp_1Index)
-#else
-#define	PJI (Pjp->jp_LIndex)
-#endif
-
-	    case cJU_JPIMMED_1_02:
-	    case cJU_JPIMMED_1_03:
-#if (defined(JUDY1) || defined(JU_64BIT))
-	    case cJU_JPIMMED_1_04:
-	    case cJU_JPIMMED_1_05:
-	    case cJU_JPIMMED_1_06:
-	    case cJU_JPIMMED_1_07:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	    case cJ1_JPIMMED_1_08:
-	    case cJ1_JPIMMED_1_09:
-	    case cJ1_JPIMMED_1_10:
-	    case cJ1_JPIMMED_1_11:
-	    case cJ1_JPIMMED_1_12:
-	    case cJ1_JPIMMED_1_13:
-	    case cJ1_JPIMMED_1_14:
-	    case cJ1_JPIMMED_1_15:
-#endif
-		JU_SETDIGIT1(*PIndex, ((uint8_t *) PJI)[offset]);
-		JU_RET_FOUND_IMM(Pjp, offset);
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	    case cJU_JPIMMED_2_02:
-	    case cJU_JPIMMED_2_03:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	    case cJ1_JPIMMED_2_04:
-	    case cJ1_JPIMMED_2_05:
-	    case cJ1_JPIMMED_2_06:
-	    case cJ1_JPIMMED_2_07:
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(2)))
-			| ((uint16_t *) PJI)[offset];
-		JU_RET_FOUND_IMM(Pjp, offset);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	    case cJU_JPIMMED_3_02:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	    case cJ1_JPIMMED_3_03:
-	    case cJ1_JPIMMED_3_04:
-	    case cJ1_JPIMMED_3_05:
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-	    {
-		Word_t lsb;
-		JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (3 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-		JU_RET_FOUND_IMM(Pjp, offset);
-	    }
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-	    case cJ1_JPIMMED_4_02:
-	    case cJ1_JPIMMED_4_03:
-
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(4)))
-			| ((uint32_t *) PJI)[offset];
-		JU_RET_FOUND_IMM(Pjp, offset);
-
-	    case cJ1_JPIMMED_5_02:
-	    case cJ1_JPIMMED_5_03:
-	    {
-		Word_t lsb;
-		JU_COPY5_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (5 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(5))) | lsb;
-		JU_RET_FOUND_IMM(Pjp, offset);
-	    }
-
-	    case cJ1_JPIMMED_6_02:
-	    {
-		Word_t lsb;
-		JU_COPY6_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (6 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(6))) | lsb;
-		JU_RET_FOUND_IMM(Pjp, offset);
-	    }
-
-	    case cJ1_JPIMMED_7_02:
-	    {
-		Word_t lsb;
-		JU_COPY7_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (7 * offset));
-		*PIndex = (*PIndex & (~JU_LEASTBYTESMASK(7))) | lsb;
-		JU_RET_FOUND_IMM(Pjp, offset);
-	    }
-
-#endif // (JUDY1 && JU_64BIT)
-
-	    } // switch for not-found *PIndex
-
-	    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);	// impossible?
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-
-
-// ----------------------------------------------------------------------------
-// BITMAP LEAF:
-//
-// Check Decode bytes, if any, in the current JP, then look in the leaf for
-// *PIndex.
-
-	case cJU_JPLEAF_B1:
-	{
-	    Pjlb_t Pjlb;
-	    CHECKDCD(1);
-
-	    Pjlb	= P_JLB(Pjp->jp_Addr);
-	    digit       = JU_DIGITATSTATE(*PIndex, 1);
-	    subexp      = JU_SUBEXPL(digit);
-	    bitposmask  = JU_BITPOSMASKL(digit);
-	    assert(subexp < cJU_NUMSUBEXPL);	// falls in expected range.
-
-// *PIndex exists in LeafB1:
-
-//	    if (JU_BITMAPTESTL(Pjlb, digit))			// slower.
-	    if (JU_JLB_BITMAP(Pjlb, subexp) & bitposmask)	// faster.
-	    {
-#ifdef JUDYL				// needs offset at this point:
-		offset = SEARCHBITMAPL(JU_JLB_BITMAP(Pjlb, subexp), digit, bitposmask);
-#endif
-		JU_RET_FOUND_LEAF_B1(Pjlb, subexp, offset);
-//	== return((PPvoid_t) (P_JV(JL_JLB_PVALUE(Pjlb, subexp)) + (offset)));
-	    }
-
-// Dead end, no Index in LeafB1 for remaining digit in *PIndex:
-//
-// If theres a next-left/right Index in the current LeafB1, which for
-// Judy*Next() is true if any bits are set for higher Indexes, shortcut by
-// returning it.  Note:  For Judy*Prev(), offset is set here to the correct
-// value for the next-left JP.
-
-	    offset = SEARCHBITMAPL(JU_JLB_BITMAP(Pjlb, subexp), digit,
-				   bitposmask);
-	    // right range:
-	    assert((offset >= -1) && (offset < (int) cJU_BITSPERSUBEXPL));
-
-#ifdef JUDYPREV
-	    if (offset >= 0)		// next-left JP is in this subexpanse.
-		goto SM1LeafB1Findlimit;
-
-	    while (--subexp >= 0)		// search next-left subexpanses.
-#else
-	    if (JU_JLB_BITMAP(Pjlb, subexp) & JU_MASKHIGHEREXC(bitposmask))
-	    {
-		++offset;			// next-left => next-right.
-		goto SM1LeafB1Findlimit;
-	    }
-
-	    while (++subexp < cJU_NUMSUBEXPL)	// search next-right subexps.
-#endif
-	    {
-		if (! JU_JLB_BITMAP(Pjlb, subexp)) continue;  // empty subexp.
-
-#ifdef JUDYPREV
-		offset = SEARCHBITMAPMAXL(JU_JLB_BITMAP(Pjlb, subexp));
-		// expected range:
-		assert((offset >= 0) && (offset < (int) cJU_BITSPERSUBEXPL));
-#else
-		offset = 0;
-#endif
-
-// Save the next-left/right Indexess digit in *PIndex:
-
-SM1LeafB1Findlimit:
-		JU_BITMAPDIGITL(digit, subexp, JU_JLB_BITMAP(Pjlb, subexp), offset);
-		JU_SETDIGIT1(*PIndex, digit);
-		JU_RET_FOUND_LEAF_B1(Pjlb, subexp, offset);
-//	== return((PPvoid_t) (P_JV(JL_JLB_PVALUE(Pjlb, subexp)) + (offset)));
-	    }
-
-// Theres no next-left/right Index in the LeafB1:
-//
-// Shortcut and start backtracking one level up; ignore the current Pjp because
-// it points to a LeafB1 with no next-left/right Index.
-
-	    goto SM2Backtrack;
-
-	} // case cJU_JPLEAF_B1
-
-#ifdef JUDY1
-// ----------------------------------------------------------------------------
-// FULL POPULATION:
-//
-// If the Decode bytes match, *PIndex is found (without modification).
-
-	case cJ1_JPFULLPOPU1:
-
-	    CHECKDCD(1);
-	    JU_RET_FOUND_FULLPOPU1;
-#endif
-
-
-// ----------------------------------------------------------------------------
-// IMMEDIATE:
-
-#ifdef JUDYPREV
-#define	SM1IMM_SETPOP1(cPop1)
-#else
-#define SM1IMM_SETPOP1(cPop1)  pop1 = (cPop1)
-#endif
-
-#define	SM1IMM(Func,cPop1)				\
-	SM1IMM_SETPOP1(cPop1);				\
-	offset = Func((Pjll_t) (PJI), cPop1, *PIndex);	\
-	goto SM1LeafLImm
-
-// Special case for Pop1 = 1 Immediate JPs:
-//
-// If *PIndex is in the immediate, offset is 0, otherwise the binary NOT of the
-// offset where it belongs, 0 or 1, same as from the search functions.
-
-#ifdef JUDYPREV
-#define	SM1IMM_01_SETPOP1
-#else
-#define SM1IMM_01_SETPOP1  pop1 = 1
-#endif
-
-#define	SM1IMM_01							  \
-	SM1IMM_01_SETPOP1;						  \
-	offset = ((JU_JPDCDPOP0(Pjp) <  JU_TRIMTODCDSIZE(*PIndex)) ? ~1 : \
-		  (JU_JPDCDPOP0(Pjp) == JU_TRIMTODCDSIZE(*PIndex)) ?  0 : \
-								     ~0); \
-	goto SM1LeafLImm
-
-	case cJU_JPIMMED_1_01:
-	case cJU_JPIMMED_2_01:
-	case cJU_JPIMMED_3_01:
-#ifdef JU_64BIT
-	case cJU_JPIMMED_4_01:
-	case cJU_JPIMMED_5_01:
-	case cJU_JPIMMED_6_01:
-	case cJU_JPIMMED_7_01:
-#endif
-	    SM1IMM_01;
-
-// TBD:  Doug says it would be OK to have fewer calls and calculate arg 2, here
-// and in Judy*Count() also.
-
-	case cJU_JPIMMED_1_02:  SM1IMM(j__udySearchLeaf1,  2);
-	case cJU_JPIMMED_1_03:  SM1IMM(j__udySearchLeaf1,  3);
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04:  SM1IMM(j__udySearchLeaf1,  4);
-	case cJU_JPIMMED_1_05:  SM1IMM(j__udySearchLeaf1,  5);
-	case cJU_JPIMMED_1_06:  SM1IMM(j__udySearchLeaf1,  6);
-	case cJU_JPIMMED_1_07:  SM1IMM(j__udySearchLeaf1,  7);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08:  SM1IMM(j__udySearchLeaf1,  8);
-	case cJ1_JPIMMED_1_09:  SM1IMM(j__udySearchLeaf1,  9);
-	case cJ1_JPIMMED_1_10:  SM1IMM(j__udySearchLeaf1, 10);
-	case cJ1_JPIMMED_1_11:  SM1IMM(j__udySearchLeaf1, 11);
-	case cJ1_JPIMMED_1_12:  SM1IMM(j__udySearchLeaf1, 12);
-	case cJ1_JPIMMED_1_13:  SM1IMM(j__udySearchLeaf1, 13);
-	case cJ1_JPIMMED_1_14:  SM1IMM(j__udySearchLeaf1, 14);
-	case cJ1_JPIMMED_1_15:  SM1IMM(j__udySearchLeaf1, 15);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02:  SM1IMM(j__udySearchLeaf2,  2);
-	case cJU_JPIMMED_2_03:  SM1IMM(j__udySearchLeaf2,  3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04:  SM1IMM(j__udySearchLeaf2,  4);
-	case cJ1_JPIMMED_2_05:  SM1IMM(j__udySearchLeaf2,  5);
-	case cJ1_JPIMMED_2_06:  SM1IMM(j__udySearchLeaf2,  6);
-	case cJ1_JPIMMED_2_07:  SM1IMM(j__udySearchLeaf2,  7);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_3_02:  SM1IMM(j__udySearchLeaf3,  2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_3_03:  SM1IMM(j__udySearchLeaf3,  3);
-	case cJ1_JPIMMED_3_04:  SM1IMM(j__udySearchLeaf3,  4);
-	case cJ1_JPIMMED_3_05:  SM1IMM(j__udySearchLeaf3,  5);
-
-	case cJ1_JPIMMED_4_02:  SM1IMM(j__udySearchLeaf4,  2);
-	case cJ1_JPIMMED_4_03:  SM1IMM(j__udySearchLeaf4,  3);
-
-	case cJ1_JPIMMED_5_02:  SM1IMM(j__udySearchLeaf5,  2);
-	case cJ1_JPIMMED_5_03:  SM1IMM(j__udySearchLeaf5,  3);
-
-	case cJ1_JPIMMED_6_02:  SM1IMM(j__udySearchLeaf6,  2);
-
-	case cJ1_JPIMMED_7_02:  SM1IMM(j__udySearchLeaf7,  2);
-#endif
-
-
-// ----------------------------------------------------------------------------
-// INVALID JP TYPE:
-
-	default: JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		 JUDY1CODE(return(JERRI );)
-		 JUDYLCODE(return(PPJERR);)
-
-	} // SM1Get switch.
-
-	/*NOTREACHED*/
-
-
-// ============================================================================
-// STATE MACHINE 2 -- BACKTRACK BRANCH TO PREVIOUS JP:
-//
-// Look for the next-left/right JP in a branch, backing up the history list as
-// necessary.  Upon finding a next-left/right JP, modify the corresponding
-// digit in *PIndex before passing control to SM3Findlimit.
-//
-// Note:  As described earlier, only branch JPs are expected here; other types
-// fall into the default case.
-//
-// Note:  If a found JP contains needed Dcd bytes, thats OK, theyre copied to
-// *PIndex in SM3Findlimit.
-//
-// TBD:  This code has a lot in common with similar code in the shortcut cases
-// in SM1Get.  Can combine this code somehow?
-//
-// ENTRY:  List, possibly empty, of JPs and offsets in APjphist[] and
-// Aoffhist[]; see earlier comments.
-//
-// EXIT:  Execute JU_RET_NOTFOUND if no previous/next JP; otherwise jump to
-// SM3Findlimit to resume a new but different downward search.
-
-SM2Backtrack:		// come or return here for first/next sideways search.
-
-	HISTPOP(Pjp, offset);
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// ----------------------------------------------------------------------------
-// LINEAR BRANCH:
-
-	case cJU_JPBRANCH_L2: state = 2;	     goto SM2BranchL;
-	case cJU_JPBRANCH_L3: state = 3;	     goto SM2BranchL;
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_L4: state = 4;	     goto SM2BranchL;
-	case cJU_JPBRANCH_L5: state = 5;	     goto SM2BranchL;
-	case cJU_JPBRANCH_L6: state = 6;	     goto SM2BranchL;
-	case cJU_JPBRANCH_L7: state = 7;	     goto SM2BranchL;
-#endif
-	case cJU_JPBRANCH_L:  state = cJU_ROOTSTATE; goto SM2BranchL;
-
-SM2BranchL:
-#ifdef JUDYPREV
-	    if (--offset < 0) goto SM2Backtrack;  // no next-left JP in BranchL.
-#endif
-	    Pjbl = P_JBL(Pjp->jp_Addr);
-#ifdef JUDYNEXT
-	    if (++offset >= (Pjbl->jbl_NumJPs)) goto SM2Backtrack;
-						// no next-right JP in BranchL.
-#endif
-
-// Theres a next-left/right JP in the current BranchL; save its digit in
-// *PIndex and continue with SM3Findlimit:
-
-	    JU_SETDIGIT(*PIndex, Pjbl->jbl_Expanse[offset], state);
-	    Pjp = (Pjbl->jbl_jp) + offset;
-	    goto SM3Findlimit;
-
-
-// ----------------------------------------------------------------------------
-// BITMAP BRANCH:
-
-	case cJU_JPBRANCH_B2: state = 2;	     goto SM2BranchB;
-	case cJU_JPBRANCH_B3: state = 3;	     goto SM2BranchB;
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_B4: state = 4;	     goto SM2BranchB;
-	case cJU_JPBRANCH_B5: state = 5;	     goto SM2BranchB;
-	case cJU_JPBRANCH_B6: state = 6;	     goto SM2BranchB;
-	case cJU_JPBRANCH_B7: state = 7;	     goto SM2BranchB;
-#endif
-	case cJU_JPBRANCH_B:  state = cJU_ROOTSTATE; goto SM2BranchB;
-
-SM2BranchB:
-	    Pjbb = P_JBB(Pjp->jp_Addr);
-	    HISTPOPBOFF(subexp, offset, digit);		// unpack values.
-
-// If theres a next-left/right JP in the current BranchB, which for
-// Judy*Next() is true if any bits are set for higher Indexes, continue to
-// SM3Findlimit:
-//
-// Note:  offset is set to the JP previously traversed; go one to the
-// left/right.
-
-#ifdef JUDYPREV
-	    if (offset > 0)		// next-left JP is in this subexpanse.
-	    {
-		--offset;
-		goto SM2BranchBFindlimit;
-	    }
-
-	    while (--subexp >= 0)		// search next-left subexpanses.
-#else
-	    if (JU_JBB_BITMAP(Pjbb, subexp)
-	      & JU_MASKHIGHEREXC(JU_BITPOSMASKB(digit)))
-	    {
-		++offset;			// next-left => next-right.
-		goto SM2BranchBFindlimit;
-	    }
-
-	    while (++subexp < cJU_NUMSUBEXPB)	// search next-right subexps.
-#endif
-	    {
-		if (! JU_JBB_PJP(Pjbb, subexp)) continue;  // empty subexpanse.
-
-#ifdef JUDYPREV
-		offset = SEARCHBITMAPMAXB(JU_JBB_BITMAP(Pjbb, subexp));
-		// expected range:
-		assert((offset >= 0) && (offset < cJU_BITSPERSUBEXPB));
-#else
-		offset = 0;
-#endif
-
-// Save the next-left/right JPs digit in *PIndex:
-
-SM2BranchBFindlimit:
-		JU_BITMAPDIGITB(digit, subexp, JU_JBB_BITMAP(Pjbb, subexp),
-				offset);
-		JU_SETDIGIT(*PIndex, digit, state);
-
-		if ((Pjp = P_JP(JU_JBB_PJP(Pjbb, subexp))) == (Pjp_t) NULL)
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-		}
-
-		Pjp += offset;
-		goto SM3Findlimit;
-	    }
-
-// Theres no next-left/right JP in the BranchB:
-
-	    goto SM2Backtrack;
-
-
-// ----------------------------------------------------------------------------
-// UNCOMPRESSED BRANCH:
-
-	case cJU_JPBRANCH_U2: state = 2;	     goto SM2BranchU;
-	case cJU_JPBRANCH_U3: state = 3;	     goto SM2BranchU;
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_U4: state = 4;	     goto SM2BranchU;
-	case cJU_JPBRANCH_U5: state = 5;	     goto SM2BranchU;
-	case cJU_JPBRANCH_U6: state = 6;	     goto SM2BranchU;
-	case cJU_JPBRANCH_U7: state = 7;	     goto SM2BranchU;
-#endif
-	case cJU_JPBRANCH_U:  state = cJU_ROOTSTATE; goto SM2BranchU;
-
-SM2BranchU:
-
-// Search for a next-left/right JP in the current BranchU, and if one is found,
-// save its digit in *PIndex and continue to SM3Findlimit:
-
-	    Pjbu  = P_JBU(Pjp->jp_Addr);
-	    digit = offset;
-
-#ifdef JUDYPREV
-	    while (digit >= 1)
-	    {
-		Pjp = (Pjbu->jbu_jp) + (--digit);
-#else
-	    while (digit < cJU_BRANCHUNUMJPS - 1)
-	    {
-		Pjp = (Pjbu->jbu_jp) + (++digit);
-#endif
-		if (JPNULL(JU_JPTYPE(Pjp))) continue;
-
-		JU_SETDIGIT(*PIndex, digit, state);
-		goto SM3Findlimit;
-	    }
-
-// Theres no next-left/right JP in the BranchU:
-
-	    goto SM2Backtrack;
-
-
-// ----------------------------------------------------------------------------
-// INVALID JP TYPE:
-
-	default: JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		 JUDY1CODE(return(JERRI );)
-		 JUDYLCODE(return(PPJERR);)
-
-	} // SM2Backtrack switch.
-
-	/*NOTREACHED*/
-
-
-// ============================================================================
-// STATE MACHINE 3 -- FIND LIMIT JP/INDEX:
-//
-// Look for the highest/lowest (right/left-most) JP in each branch and the
-// highest/lowest Index in a leaf or immediate, and return it.  While
-// traversing, modify appropriate digit(s) in *PIndex to reflect the path
-// taken, including Dcd bytes in each JP (which could hold critical missing
-// digits for skipped branches).
-//
-// ENTRY:  Pjp set to a JP under which to find max/min JPs (if a branch JP) or
-// a max/min Index and return (if a leaf or immediate JP).
-//
-// EXIT:  Execute JU_RET_FOUND* upon reaching a leaf or immediate.  Should be
-// impossible to fail, unless the Judy array is corrupt.
-
-SM3Findlimit:		// come or return here for first/next branch/leaf.
-
-	switch (JU_JPTYPE(Pjp))
-	{
-// ----------------------------------------------------------------------------
-// LINEAR BRANCH:
-//
-// Simply use the highest/lowest (right/left-most) JP in the BranchL, but first
-// copy the Dcd bytes to *PIndex if there are any (only if state <
-// cJU_ROOTSTATE - 1).
-
-	case cJU_JPBRANCH_L2:  SM3PREPB_DCD(2, SM3BranchL);
-#ifndef JU_64BIT
-	case cJU_JPBRANCH_L3:  SM3PREPB(    3, SM3BranchL);
-#else
-	case cJU_JPBRANCH_L3:  SM3PREPB_DCD(3, SM3BranchL);
-	case cJU_JPBRANCH_L4:  SM3PREPB_DCD(4, SM3BranchL);
-	case cJU_JPBRANCH_L5:  SM3PREPB_DCD(5, SM3BranchL);
-	case cJU_JPBRANCH_L6:  SM3PREPB_DCD(6, SM3BranchL);
-	case cJU_JPBRANCH_L7:  SM3PREPB(    7, SM3BranchL);
-#endif
-	case cJU_JPBRANCH_L:   SM3PREPB(    cJU_ROOTSTATE, SM3BranchL);
-
-SM3BranchL:
-	    Pjbl = P_JBL(Pjp->jp_Addr);
-
-#ifdef JUDYPREV
-	    if ((offset = (Pjbl->jbl_NumJPs) - 1) < 0)
-#else
-	    offset = 0; if ((Pjbl->jbl_NumJPs) == 0)
-#endif
-	    {
-		JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		JUDY1CODE(return(JERRI );)
-		JUDYLCODE(return(PPJERR);)
-	    }
-
-	    JU_SETDIGIT(*PIndex, Pjbl->jbl_Expanse[offset], state);
-	    Pjp = (Pjbl->jbl_jp) + offset;
-	    goto SM3Findlimit;
-
-
-// ----------------------------------------------------------------------------
-// BITMAP BRANCH:
-//
-// Look for the highest/lowest (right/left-most) non-null subexpanse, then use
-// the highest/lowest JP in that subexpanse, but first copy Dcd bytes, if there
-// are any (only if state < cJU_ROOTSTATE - 1), to *PIndex.
-
-	case cJU_JPBRANCH_B2:  SM3PREPB_DCD(2, SM3BranchB);
-#ifndef JU_64BIT
-	case cJU_JPBRANCH_B3:  SM3PREPB(    3, SM3BranchB);
-#else
-	case cJU_JPBRANCH_B3:  SM3PREPB_DCD(3, SM3BranchB);
-	case cJU_JPBRANCH_B4:  SM3PREPB_DCD(4, SM3BranchB);
-	case cJU_JPBRANCH_B5:  SM3PREPB_DCD(5, SM3BranchB);
-	case cJU_JPBRANCH_B6:  SM3PREPB_DCD(6, SM3BranchB);
-	case cJU_JPBRANCH_B7:  SM3PREPB(    7, SM3BranchB);
-#endif
-	case cJU_JPBRANCH_B:   SM3PREPB(    cJU_ROOTSTATE, SM3BranchB);
-
-SM3BranchB:
-	    Pjbb   = P_JBB(Pjp->jp_Addr);
-#ifdef JUDYPREV
-	    subexp = cJU_NUMSUBEXPB;
-
-	    while (! (JU_JBB_BITMAP(Pjbb, --subexp)))  // find non-empty subexp.
-	    {
-		if (subexp <= 0)		    // wholly empty bitmap.
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-		}
-	    }
-
-	    offset = SEARCHBITMAPMAXB(JU_JBB_BITMAP(Pjbb, subexp));
-	    // expected range:
-	    assert((offset >= 0) && (offset < cJU_BITSPERSUBEXPB));
-#else
-	    subexp = -1;
-
-	    while (! (JU_JBB_BITMAP(Pjbb, ++subexp)))  // find non-empty subexp.
-	    {
-		if (subexp >= cJU_NUMSUBEXPB - 1)      // didnt find one.
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-		}
-	    }
-
-	    offset = 0;
-#endif
-
-	    JU_BITMAPDIGITB(digit, subexp, JU_JBB_BITMAP(Pjbb, subexp), offset);
-	    JU_SETDIGIT(*PIndex, digit, state);
-
-	    if ((Pjp = P_JP(JU_JBB_PJP(Pjbb, subexp))) == (Pjp_t) NULL)
-	    {
-		JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		JUDY1CODE(return(JERRI );)
-		JUDYLCODE(return(PPJERR);)
-	    }
-
-	    Pjp += offset;
-	    goto SM3Findlimit;
-
-
-// ----------------------------------------------------------------------------
-// UNCOMPRESSED BRANCH:
-//
-// Look for the highest/lowest (right/left-most) non-null JP, and use it, but
-// first copy Dcd bytes to *PIndex if there are any (only if state <
-// cJU_ROOTSTATE - 1).
-
-	case cJU_JPBRANCH_U2:  SM3PREPB_DCD(2, SM3BranchU);
-#ifndef JU_64BIT
-	case cJU_JPBRANCH_U3:  SM3PREPB(    3, SM3BranchU);
-#else
-	case cJU_JPBRANCH_U3:  SM3PREPB_DCD(3, SM3BranchU);
-	case cJU_JPBRANCH_U4:  SM3PREPB_DCD(4, SM3BranchU);
-	case cJU_JPBRANCH_U5:  SM3PREPB_DCD(5, SM3BranchU);
-	case cJU_JPBRANCH_U6:  SM3PREPB_DCD(6, SM3BranchU);
-	case cJU_JPBRANCH_U7:  SM3PREPB(    7, SM3BranchU);
-#endif
-	case cJU_JPBRANCH_U:   SM3PREPB(    cJU_ROOTSTATE, SM3BranchU);
-
-SM3BranchU:
-	    Pjbu  = P_JBU(Pjp->jp_Addr);
-#ifdef JUDYPREV
-	    digit = cJU_BRANCHUNUMJPS;
-
-	    while (digit >= 1)
-	    {
-		Pjp = (Pjbu->jbu_jp) + (--digit);
-#else
-
-	    for (digit = 0; digit < cJU_BRANCHUNUMJPS; ++digit)
-	    {
-		Pjp = (Pjbu->jbu_jp) + digit;
-#endif
-		if (JPNULL(JU_JPTYPE(Pjp))) continue;
-
-		JU_SETDIGIT(*PIndex, digit, state);
-		goto SM3Findlimit;
-	    }
-
-// No non-null JPs in BranchU:
-
-	    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-	    JUDY1CODE(return(JERRI );)
-	    JUDYLCODE(return(PPJERR);)
-
-
-// ----------------------------------------------------------------------------
-// LINEAR LEAF:
-//
-// Simply use the highest/lowest (right/left-most) Index in the LeafL, but the
-// details vary depending on leaf Index Size.  First copy Dcd bytes, if there
-// are any (only if state < cJU_ROOTSTATE - 1), to *PIndex.
-
-#define	SM3LEAFLDCD(cState)				\
-	JU_SETDCD(*PIndex, Pjp, cState);	        \
-	SM3LEAFLNODCD
-
-#ifdef JUDY1
-#define	SM3LEAFL_SETPOP1		// not needed in any cases.
-#else
-#define	SM3LEAFL_SETPOP1  pop1 = JU_JPLEAF_POP0(Pjp) + 1
-#endif
-
-#ifdef JUDYPREV
-#define	SM3LEAFLNODCD			\
-	Pjll = P_JLL(Pjp->jp_Addr);	\
-	SM3LEAFL_SETPOP1;		\
-	offset = JU_JPLEAF_POP0(Pjp); assert(offset >= 0)
-#else
-#define	SM3LEAFLNODCD			\
-	Pjll = P_JLL(Pjp->jp_Addr);	\
-	SM3LEAFL_SETPOP1;		\
-	offset = 0; assert(JU_JPLEAF_POP0(Pjp) >= 0);
-#endif
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	case cJU_JPLEAF1:
-
-	    SM3LEAFLDCD(1);
-	    JU_SETDIGIT1(*PIndex, ((uint8_t *) Pjll)[offset]);
-	    JU_RET_FOUND_LEAF1(Pjll, pop1, offset);
-#endif
-
-	case cJU_JPLEAF2:
-
-	    SM3LEAFLDCD(2);
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(2)))
-		    | ((uint16_t *) Pjll)[offset];
-	    JU_RET_FOUND_LEAF2(Pjll, pop1, offset);
-
-#ifndef JU_64BIT
-	case cJU_JPLEAF3:
-	{
-	    Word_t lsb;
-	    SM3LEAFLNODCD;
-	    JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (3 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-	    JU_RET_FOUND_LEAF3(Pjll, pop1, offset);
-	}
-
-#else
-	case cJU_JPLEAF3:
-	{
-	    Word_t lsb;
-	    SM3LEAFLDCD(3);
-	    JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (3 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-	    JU_RET_FOUND_LEAF3(Pjll, pop1, offset);
-	}
-
-	case cJU_JPLEAF4:
-
-	    SM3LEAFLDCD(4);
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(4)))
-		    | ((uint32_t *) Pjll)[offset];
-	    JU_RET_FOUND_LEAF4(Pjll, pop1, offset);
-
-	case cJU_JPLEAF5:
-	{
-	    Word_t lsb;
-	    SM3LEAFLDCD(5);
-	    JU_COPY5_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (5 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(5))) | lsb;
-	    JU_RET_FOUND_LEAF5(Pjll, pop1, offset);
-	}
-
-	case cJU_JPLEAF6:
-	{
-	    Word_t lsb;
-	    SM3LEAFLDCD(6);
-	    JU_COPY6_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (6 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(6))) | lsb;
-	    JU_RET_FOUND_LEAF6(Pjll, pop1, offset);
-	}
-
-	case cJU_JPLEAF7:
-	{
-	    Word_t lsb;
-	    SM3LEAFLNODCD;
-	    JU_COPY7_PINDEX_TO_LONG(lsb, ((uint8_t *) Pjll) + (7 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(7))) | lsb;
-	    JU_RET_FOUND_LEAF7(Pjll, pop1, offset);
-	}
-#endif
-
-
-// ----------------------------------------------------------------------------
-// BITMAP LEAF:
-//
-// Look for the highest/lowest (right/left-most) non-null subexpanse, then use
-// the highest/lowest Index in that subexpanse, but first copy Dcd bytes
-// (always present since state 1 < cJU_ROOTSTATE) to *PIndex.
-
-	case cJU_JPLEAF_B1:
-	{
-	    Pjlb_t Pjlb;
-
-	    JU_SETDCD(*PIndex, Pjp, 1);
-
-	    Pjlb   = P_JLB(Pjp->jp_Addr);
-#ifdef JUDYPREV
-	    subexp = cJU_NUMSUBEXPL;
-
-	    while (! JU_JLB_BITMAP(Pjlb, --subexp))  // find non-empty subexp.
-	    {
-		if (subexp <= 0)		// wholly empty bitmap.
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-		}
-	    }
-
-// TBD:  Might it be faster to just use a variant of BITMAPDIGIT*() that yields
-// the digit for the right-most Index with a bit set?
-
-	    offset = SEARCHBITMAPMAXL(JU_JLB_BITMAP(Pjlb, subexp));
-	    // expected range:
-	    assert((offset >= 0) && (offset < cJU_BITSPERSUBEXPL));
-#else
-	    subexp = -1;
-
-	    while (! JU_JLB_BITMAP(Pjlb, ++subexp))  // find non-empty subexp.
-	    {
-		if (subexp >= cJU_NUMSUBEXPL - 1)    // didnt find one.
-		{
-		    JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		    JUDY1CODE(return(JERRI );)
-		    JUDYLCODE(return(PPJERR);)
-		}
-	    }
-
-	    offset = 0;
-#endif
-
-	    JU_BITMAPDIGITL(digit, subexp, JU_JLB_BITMAP(Pjlb, subexp), offset);
-	    JU_SETDIGIT1(*PIndex, digit);
-	    JU_RET_FOUND_LEAF_B1(Pjlb, subexp, offset);
-//	== return((PPvoid_t) (P_JV(JL_JLB_PVALUE(Pjlb, subexp)) + (offset)));
-
-	} // case cJU_JPLEAF_B1
-
-#ifdef JUDY1
-// ----------------------------------------------------------------------------
-// FULL POPULATION:
-//
-// Copy Dcd bytes to *PIndex (always present since state 1 < cJU_ROOTSTATE),
-// then set the highest/lowest possible digit as the LSB in *PIndex.
-
-	case cJ1_JPFULLPOPU1:
-
-	    JU_SETDCD(   *PIndex, Pjp, 1);
-#ifdef JUDYPREV
-	    JU_SETDIGIT1(*PIndex, cJU_BITSPERBITMAP - 1);
-#else
-	    JU_SETDIGIT1(*PIndex, 0);
-#endif
-	    JU_RET_FOUND_FULLPOPU1;
-#endif // JUDY1
-
-
-// ----------------------------------------------------------------------------
-// IMMEDIATE:
-//
-// Simply use the highest/lowest (right/left-most) Index in the Imm, but the
-// details vary depending on leaf Index Size and pop1.  Note:  There are no Dcd
-// bytes in an Immediate JP, but in a cJU_JPIMMED_*_01 JP, the field holds the
-// least bytes of the immediate Index.
-
-	case cJU_JPIMMED_1_01: SET_01(1); goto SM3Imm_01;
-	case cJU_JPIMMED_2_01: SET_01(2); goto SM3Imm_01;
-	case cJU_JPIMMED_3_01: SET_01(3); goto SM3Imm_01;
-#ifdef JU_64BIT
-	case cJU_JPIMMED_4_01: SET_01(4); goto SM3Imm_01;
-	case cJU_JPIMMED_5_01: SET_01(5); goto SM3Imm_01;
-	case cJU_JPIMMED_6_01: SET_01(6); goto SM3Imm_01;
-	case cJU_JPIMMED_7_01: SET_01(7); goto SM3Imm_01;
-#endif
-SM3Imm_01:	JU_RET_FOUND_IMM_01(Pjp);
-
-#ifdef JUDYPREV
-#define	SM3IMM_OFFSET(cPop1)  (cPop1) - 1	// highest.
-#else
-#define	SM3IMM_OFFSET(cPop1)  0			// lowest.
-#endif
-
-#define	SM3IMM(cPop1,Next)		\
-	offset = SM3IMM_OFFSET(cPop1);	\
-	goto Next
-
-	case cJU_JPIMMED_1_02: SM3IMM( 2, SM3Imm1);
-	case cJU_JPIMMED_1_03: SM3IMM( 3, SM3Imm1);
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04: SM3IMM( 4, SM3Imm1);
-	case cJU_JPIMMED_1_05: SM3IMM( 5, SM3Imm1);
-	case cJU_JPIMMED_1_06: SM3IMM( 6, SM3Imm1);
-	case cJU_JPIMMED_1_07: SM3IMM( 7, SM3Imm1);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08: SM3IMM( 8, SM3Imm1);
-	case cJ1_JPIMMED_1_09: SM3IMM( 9, SM3Imm1);
-	case cJ1_JPIMMED_1_10: SM3IMM(10, SM3Imm1);
-	case cJ1_JPIMMED_1_11: SM3IMM(11, SM3Imm1);
-	case cJ1_JPIMMED_1_12: SM3IMM(12, SM3Imm1);
-	case cJ1_JPIMMED_1_13: SM3IMM(13, SM3Imm1);
-	case cJ1_JPIMMED_1_14: SM3IMM(14, SM3Imm1);
-	case cJ1_JPIMMED_1_15: SM3IMM(15, SM3Imm1);
-#endif
-
-SM3Imm1:    JU_SETDIGIT1(*PIndex, ((uint8_t *) PJI)[offset]);
-	    JU_RET_FOUND_IMM(Pjp, offset);
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02: SM3IMM(2, SM3Imm2);
-	case cJU_JPIMMED_2_03: SM3IMM(3, SM3Imm2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04: SM3IMM(4, SM3Imm2);
-	case cJ1_JPIMMED_2_05: SM3IMM(5, SM3Imm2);
-	case cJ1_JPIMMED_2_06: SM3IMM(6, SM3Imm2);
-	case cJ1_JPIMMED_2_07: SM3IMM(7, SM3Imm2);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-SM3Imm2:    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(2)))
-		    | ((uint16_t *) PJI)[offset];
-	    JU_RET_FOUND_IMM(Pjp, offset);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_3_02: SM3IMM(2, SM3Imm3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_3_03: SM3IMM(3, SM3Imm3);
-	case cJ1_JPIMMED_3_04: SM3IMM(4, SM3Imm3);
-	case cJ1_JPIMMED_3_05: SM3IMM(5, SM3Imm3);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-SM3Imm3:
-	{
-	    Word_t lsb;
-	    JU_COPY3_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (3 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(3))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_4_02: SM3IMM(2, SM3Imm4);
-	case cJ1_JPIMMED_4_03: SM3IMM(3, SM3Imm4);
-
-SM3Imm4:    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(4)))
-		    | ((uint32_t *) PJI)[offset];
-	    JU_RET_FOUND_IMM(Pjp, offset);
-
-	case cJ1_JPIMMED_5_02: SM3IMM(2, SM3Imm5);
-	case cJ1_JPIMMED_5_03: SM3IMM(3, SM3Imm5);
-
-SM3Imm5:
-	{
-	    Word_t lsb;
-	    JU_COPY5_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (5 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(5))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-
-	case cJ1_JPIMMED_6_02: SM3IMM(2, SM3Imm6);
-
-SM3Imm6:
-	{
-	    Word_t lsb;
-	    JU_COPY6_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (6 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(6))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-
-	case cJ1_JPIMMED_7_02: SM3IMM(2, SM3Imm7);
-
-SM3Imm7:
-	{
-	    Word_t lsb;
-	    JU_COPY7_PINDEX_TO_LONG(lsb, ((uint8_t *) PJI) + (7 * offset));
-	    *PIndex = (*PIndex & (~JU_LEASTBYTESMASK(7))) | lsb;
-	    JU_RET_FOUND_IMM(Pjp, offset);
-	}
-#endif // (JUDY1 && JU_64BIT)
-
-
-// ----------------------------------------------------------------------------
-// OTHER CASES:
-
-	default: JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT);
-		 JUDY1CODE(return(JERRI );)
-		 JUDYLCODE(return(PPJERR);)
-
-	} // SM3Findlimit switch.
-
-	/*NOTREACHED*/
-
-} // Judy1Prev() / Judy1Next() / JudyLPrev() / JudyLNext()
diff --git a/libs/klib/judy/JudyPrevNextEmpty.c b/libs/klib/judy/JudyPrevNextEmpty.c
deleted file mode 100644
index 7eef40d..0000000
--- a/libs/klib/judy/JudyPrevNextEmpty.c
+++ /dev/null
@@ -1,1388 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Judy*PrevEmpty() and Judy*NextEmpty() functions for Judy1 and JudyL.
-// Compile with one of -DJUDY1 or -DJUDYL.
-//
-// Compile with -DJUDYNEXT for the Judy*NextEmpty() function; otherwise
-// defaults to Judy*PrevEmpty().
-//
-// Compile with -DTRACEJPSE to trace JP traversals.
-//
-// This file is separate from JudyPrevNext.c because it differs too greatly for
-// ifdefs.  This might be a bit surprising, but there are two reasons:
-//
-// - First, down in the details, searching for an empty index (SearchEmpty) is
-//   remarkably asymmetric with searching for a valid index (SearchValid),
-//   mainly with respect to:  No return of a value area for JudyL; partially-
-//   full versus totally-full JPs; and handling of narrow pointers.
-//
-// - Second, we chose to implement SearchEmpty without a backtrack stack or
-//   backtrack engine, partly as an experiment, and partly because we think
-//   restarting from the top of the tree is less likely for SearchEmpty than
-//   for SearchValid, because empty indexes are more likely than valid indexes.
-//
-// A word about naming:  A prior version of this feature (see 4.13) was named
-// Judy*Free(), but there were concerns about that being read as a verb rather
-// than an adjective.  After prolonged debate and based on user input, we
-// changed "Free" to "Empty".
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifndef JUDYNEXT
-#ifndef JUDYPREV
-#define	JUDYPREV 1		// neither set => use default.
-#endif
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-#ifdef TRACEJPSE
-#include "JudyPrintJP.c"
-#endif
-
-
-// ****************************************************************************
-// J U D Y   1   P R E V   E M P T Y
-// J U D Y   1   N E X T   E M P T Y
-// J U D Y   L   P R E V   E M P T Y
-// J U D Y   L   N E X T   E M P T Y
-//
-// See the manual entry for the API.
-//
-// OVERVIEW OF Judy*PrevEmpty() / Judy*NextEmpty():
-//
-// See also for comparison the equivalent comments in JudyPrevNext.c.
-//
-// Take the callers *PIndex and subtract/add 1, but watch out for
-// underflow/overflow, which means "no previous/next empty index found."  Use a
-// reentrant switch statement (state machine, see SMGetRestart and
-// SMGetContinue) to decode Index, starting with the JRP (PArray), through a
-// JPM and branches, if any, down to an immediate or a leaf.  Look for Index in
-// that immediate or leaf, and if not found (invalid index), return success
-// (Index is empty).
-//
-// This search can result in a dead end where taking a different path is
-// required.  There are four kinds of dead ends:
-//
-// BRANCH PRIMARY dead end:  Encountering a fully-populated JP for the
-// appropriate digit in Index.  Search sideways in the branch for the
-// previous/next absent/null/non-full JP, and if one is found, set Index to the
-// highest/lowest index possible in that JPs expanse.  Then if the JP is an
-// absent or null JP, return success; otherwise for a non-full JP, traverse
-// through the partially populated JP.
-//
-// BRANCH SECONDARY dead end:  Reaching the end of a branch during a sideways
-// search after a branch primary dead end.  Set Index to the lowest/highest
-// index possible in the whole branchs expanse (one higher/lower than the
-// previous/next branchs expanse), then restart at the top of the tree, which
-// includes pre-decrementing/incrementing Index (again) and watching for
-// underflow/overflow (again).
-//
-// LEAF PRIMARY dead end:  Finding a valid (non-empty) index in an immediate or
-// leaf matching Index.  Search sideways in the immediate/leaf for the
-// previous/next empty index; if found, set *PIndex to match and return success.
-//
-// LEAF SECONDARY dead end:  Reaching the end of an immediate or leaf during a
-// sideways search after a leaf primary dead end.  Just as for a branch
-// secondary dead end, restart at the top of the tree with Index set to the
-// lowest/highest index possible in the whole immediate/leafs expanse.
-// TBD:  If leaf secondary dead end occurs, could shortcut and treat it as a
-// branch primary dead end; but this would require remembering the parent
-// branchs type and offset (a "one-deep stack"), and also wrestling with
-// narrow pointers, at least for leaves (but not for immediates).
-//
-// Note some ASYMMETRIES between SearchValid and SearchEmpty:
-//
-// - The SearchValid code, upon descending through a narrow pointer, if Index
-//   is outside the expanse of the subsidiary node (effectively a secondary
-//   dead end), must decide whether to backtrack or findlimit.  But the
-//   SearchEmpty code simply returns success (Index is empty).
-//
-// - Similarly, the SearchValid code, upon finding no previous/next index in
-//   the expanse of a narrow pointer (again, a secondary dead end), can simply
-//   start to backtrack at the parent JP.  But the SearchEmpty code would have
-//   to first determine whether or not the parent JPs narrow expanse contains
-//   a previous/next empty index outside the subexpanse.  Rather than keeping a
-//   parent state stack and backtracking this way, upon a secondary dead end,
-//   the SearchEmpty code simply restarts at the top of the tree, whether or
-//   not a narrow pointer is involved.  Again, see the equivalent comments in
-//   JudyPrevNext.c for comparison.
-//
-// This function is written iteratively for speed, rather than recursively.
-//
-// TBD:  Wed like to enhance this function to make successive searches faster.
-// This would require saving some previous state, including the previous Index
-// returned, and in which leaf it was found.  If the next call is for the same
-// Index and the array has not been modified, start at the same leaf.  This
-// should be much easier to implement since this is iterative rather than
-// recursive code.
-
-#ifdef JUDY1
-#ifdef JUDYPREV
-FUNCTION int Judy1PrevEmpty
-#else
-FUNCTION int Judy1NextEmpty
-#endif
-#else
-#ifdef JUDYPREV
-FUNCTION int JudyLPrevEmpty
-#else
-FUNCTION int JudyLNextEmpty
-#endif
-#endif
-        (
-	Pcvoid_t  PArray,	// Judy array to search.
-	Word_t *  PIndex,	// starting point and result.
-	PJError_t PJError	// optional, for returning error info.
-        )
-{
-	Word_t	  Index;	// fast copy, in a register.
-	Pjp_t	  Pjp;		// current JP.
-	Pjbl_t	  Pjbl;		// Pjp->jp_Addr masked and cast to types:
-	Pjbb_t	  Pjbb;
-	Pjbu_t	  Pjbu;
-	Pjlb_t	  Pjlb;
-	PWord_t	  Pword;	// alternate name for use by GET* macros.
-
-	Word_t	  digit;	// next digit to decode from Index.
-	Word_t	  digits;	// current state in SM = digits left to decode.
-	Word_t	  pop0;		// in a leaf.
-	Word_t	  pop0mask;	// precalculated to avoid variable shifts.
-	long	  offset;	// within a branch or leaf (can be large).
-	int	  subexp;	// subexpanse in a bitmap branch.
-	BITMAPB_t bitposmaskB;	// bit in bitmap for bitmap branch.
-	BITMAPL_t bitposmaskL;	// bit in bitmap for bitmap leaf.
-	Word_t	  possfullJP1;	// JP types for possibly full subexpanses:
-	Word_t	  possfullJP2;
-	Word_t	  possfullJP3;
-
-
-// ----------------------------------------------------------------------------
-// M A C R O S
-//
-// These are intended to make the code a bit more readable and less redundant.
-
-
-// CHECK FOR NULL JP:
-//
-// TBD:  In principle this can be reduced (here and in other *.c files) to just
-// the latter clause since no Type should ever be below cJU_JPNULL1, but in
-// fact some root pointer types can be lower, so for safety do both checks.
-
-#define	JPNULL(Type)  (((Type) >= cJU_JPNULL1) && ((Type) <= cJU_JPNULLMAX))
-
-
-// CHECK FOR A FULL JP:
-//
-// Given a JP, indicate if it is fully populated.  Use digits, pop0mask, and
-// possfullJP1..3 in the context.
-//
-// This is a difficult problem because it requires checking the Pop0 bits for
-// all-ones, but the number of bytes depends on the JP type, which is not
-// directly related to the parent branchs type or level -- the JPs child
-// could be under a narrow pointer (hence not full).  The simple answer
-// requires switching on or otherwise calculating the JP type, which could be
-// slow.  Instead, in SMPREPB* precalculate pop0mask and also record in
-// possfullJP1..3 the child JP (branch) types that could possibly be full (one
-// level down), and use them here.  For level-2 branches (with digits == 2),
-// the test for a full child depends on Judy1/JudyL.
-//
-// Note:  This cannot be applied to the JP in a JPM because it doesnt have
-// enough pop0 digits.
-//
-// TBD:  JPFULL_BRANCH diligently checks for BranchL or BranchB, where neither
-// of those can ever be full as it turns out.  Could just check for a BranchU
-// at the right level.  Also, pop0mask might be overkill, its not used much,
-// so perhaps just call cJU_POP0MASK(digits - 1) here?
-//
-// First, JPFULL_BRANCH checks for a full expanse for a JP whose child can be a
-// branch, that is, a JP in a branch at level 3 or higher:
-
-#define	JPFULL_BRANCH(Pjp)						\
-	  ((((JU_JPDCDPOP0(Pjp) ^ cJU_ALLONES) & pop0mask) == 0)	\
-	&& ((JU_JPTYPE(Pjp) == possfullJP1)				\
-	 || (JU_JPTYPE(Pjp) == possfullJP2)				\
-	 || (JU_JPTYPE(Pjp) == possfullJP3)))
-
-#ifdef JUDY1
-#define	JPFULL(Pjp)							\
-	((digits == 2) ?						\
-	 (JU_JPTYPE(Pjp) == cJ1_JPFULLPOPU1) : JPFULL_BRANCH(Pjp))
-#else
-#define	JPFULL(Pjp)							\
-	((digits == 2) ?						\
-	   (JU_JPTYPE(Pjp) == cJU_JPLEAF_B1)				\
-	 && (((JU_JPDCDPOP0(Pjp) & cJU_POP0MASK(1)) == cJU_POP0MASK(1))) : \
-	 JPFULL_BRANCH(Pjp))
-#endif
-
-
-// RETURN SUCCESS:
-//
-// This hides the need to set *PIndex back to the local value of Index -- use a
-// local value for faster operation.  Note that the callers *PIndex is ALWAYS
-// modified upon success, at least decremented/incremented.
-
-#define	RET_SUCCESS { *PIndex = Index; return(1); }
-
-
-// RETURN A CORRUPTION:
-
-#define	RET_CORRUPT { JU_SET_ERRNO(PJError, JU_ERRNO_CORRUPT); return(JERRI); }
-
-
-// SEARCH A BITMAP BRANCH:
-//
-// This is a weak analog of j__udySearchLeaf*() for bitmap branches.  Return
-// the actual or next-left position, base 0, of Digit in a BITMAPB_t bitmap
-// (subexpanse of a full bitmap), also given a Bitposmask for Digit.  The
-// position is the offset within the set bits.
-//
-// Unlike j__udySearchLeaf*(), the offset is not returned bit-complemented if
-// Digits bit is unset, because the caller can check the bitmap themselves to
-// determine that.  Also, if Digits bit is unset, the returned offset is to
-// the next-left JP or index (including -1), not to the "ideal" position for
-// the index = next-right JP or index.
-//
-// Shortcut and skip calling j__udyCountBitsB() if the bitmap is full, in which
-// case (Digit % cJU_BITSPERSUBEXPB) itself is the base-0 offset.
-
-#define	SEARCHBITMAPB(Bitmap,Digit,Bitposmask)				\
-	(((Bitmap) == cJU_FULLBITMAPB) ? (Digit % cJU_BITSPERSUBEXPB) :	\
-	 j__udyCountBitsB((Bitmap) & JU_MASKLOWERINC(Bitposmask)) - 1)
-
-#ifdef JUDYPREV
-// Equivalent to search for the highest offset in Bitmap, that is, one less
-// than the number of bits set:
-
-#define	SEARCHBITMAPMAXB(Bitmap)					\
-	(((Bitmap) == cJU_FULLBITMAPB) ? cJU_BITSPERSUBEXPB - 1 :	\
-	 j__udyCountBitsB(Bitmap) - 1)
-#endif
-
-
-// CHECK DECODE BYTES:
-//
-// Check Decode bytes in a JP against the equivalent portion of Index.  If they
-// dont match, Index is outside the subexpanse of a narrow pointer, hence is
-// empty.
-
-#define	CHECKDCD(cDigits) \
-	if (JU_DCDNOTMATCHINDEX(Index, Pjp, cDigits)) RET_SUCCESS
-
-
-// REVISE REMAINDER OF INDEX:
-//
-// Put one digit in place in Index and clear/set the lower digits, if any, so
-// the resulting Index is at the start/end of an expanse, or just clear/set the
-// least digits.
-//
-// Actually, to make simple use of JU_LEASTBYTESMASK, first clear/set all least
-// digits of Index including the digit to be overridden, then set the value of
-// that one digit.  If Digits == 1 the first operation is redundant, but either
-// very fast or even removed by the optimizer.
-
-#define	CLEARLEASTDIGITS(Digits) Index &= ~JU_LEASTBYTESMASK(Digits)
-#define	SETLEASTDIGITS(  Digits) Index |=  JU_LEASTBYTESMASK(Digits)
-
-#define	CLEARLEASTDIGITS_D(Digit,Digits)	\
-	{					\
-	    CLEARLEASTDIGITS(Digits);		\
-	    JU_SETDIGIT(Index, Digit, Digits);	\
-	}
-
-#define	SETLEASTDIGITS_D(Digit,Digits)		\
-	{					\
-	    SETLEASTDIGITS(Digits);		\
-	    JU_SETDIGIT(Index, Digit, Digits);	\
-	}
-
-
-// SET REMAINDER OF INDEX AND THEN RETURN OR CONTINUE:
-
-#define	SET_AND_RETURN(OpLeastDigits,Digit,Digits)	\
-	{						\
-	    OpLeastDigits(Digit, Digits);		\
-	    RET_SUCCESS;				\
-	}
-
-#define	SET_AND_CONTINUE(OpLeastDigits,Digit,Digits)	\
-	{						\
-	    OpLeastDigits(Digit, Digits);		\
-	    goto SMGetContinue;				\
-	}
-
-
-// PREPARE TO HANDLE A LEAFW OR JP BRANCH IN THE STATE MACHINE:
-//
-// Extract a state-dependent digit from Index in a "constant" way, then jump to
-// common code for multiple cases.
-//
-// TBD:  Should this macro do more, such as preparing variable-shift masks for
-// use in CLEARLEASTDIGITS and SETLEASTDIGITS?
-
-#define	SMPREPB(cDigits,Next,PossFullJP1,PossFullJP2,PossFullJP3)	\
-	digits	 = (cDigits);						\
-	digit	 = JU_DIGITATSTATE(Index, cDigits);			\
-	pop0mask = cJU_POP0MASK((cDigits) - 1);	 /* for branchs JPs */	\
-	possfullJP1 = (PossFullJP1);					\
-	possfullJP2 = (PossFullJP2);					\
-	possfullJP3 = (PossFullJP3);					\
-	goto Next
-
-// Variations for specific-level branches and for shorthands:
-//
-// Note:  SMPREPB2 need not initialize possfullJP* because JPFULL does not use
-// them for digits == 2, but gcc -Wall isnt quite smart enough to see this, so
-// waste a bit of time and space to get rid of the warning:
-
-#define	SMPREPB2(Next)				\
-	digits	 = 2;				\
-	digit	 = JU_DIGITATSTATE(Index, 2);	\
-	pop0mask = cJU_POP0MASK(1);  /* for branchs JPs */ \
-	possfullJP1 = possfullJP2 = possfullJP3 = 0;	    \
-	goto Next
-
-#define	SMPREPB3(Next) SMPREPB(3,	      Next, cJU_JPBRANCH_L2, \
-						    cJU_JPBRANCH_B2, \
-						    cJU_JPBRANCH_U2)
-#ifndef JU_64BIT
-#define	SMPREPBL(Next) SMPREPB(cJU_ROOTSTATE, Next, cJU_JPBRANCH_L3, \
-						    cJU_JPBRANCH_B3, \
-						    cJU_JPBRANCH_U3)
-#else
-#define	SMPREPB4(Next) SMPREPB(4,	      Next, cJU_JPBRANCH_L3, \
-						    cJU_JPBRANCH_B3, \
-						    cJU_JPBRANCH_U3)
-#define	SMPREPB5(Next) SMPREPB(5,	      Next, cJU_JPBRANCH_L4, \
-						    cJU_JPBRANCH_B4, \
-						    cJU_JPBRANCH_U4)
-#define	SMPREPB6(Next) SMPREPB(6,	      Next, cJU_JPBRANCH_L5, \
-						    cJU_JPBRANCH_B5, \
-						    cJU_JPBRANCH_U5)
-#define	SMPREPB7(Next) SMPREPB(7,	      Next, cJU_JPBRANCH_L6, \
-						    cJU_JPBRANCH_B6, \
-						    cJU_JPBRANCH_U6)
-#define	SMPREPBL(Next) SMPREPB(cJU_ROOTSTATE, Next, cJU_JPBRANCH_L7, \
-						    cJU_JPBRANCH_B7, \
-						    cJU_JPBRANCH_U7)
-#endif
-
-
-// RESTART AFTER SECONDARY DEAD END:
-//
-// Set Index to the first/last index in the branch or leaf subexpanse and start
-// over at the top of the tree.
-
-#ifdef JUDYPREV
-#define	SMRESTART(Digits) { CLEARLEASTDIGITS(Digits); goto SMGetRestart; }
-#else
-#define	SMRESTART(Digits) { SETLEASTDIGITS(  Digits); goto SMGetRestart; }
-#endif
-
-
-// CHECK EDGE OF LEAFS EXPANSE:
-//
-// Given the LSBs of the lowest/highest valid index in a leaf (or equivalently
-// in an immediate JP), the level (index size) of the leaf, and the full index
-// to return (as Index in the context) already set to the full index matching
-// the lowest/highest one, determine if there is an empty index in the leafs
-// expanse below/above the lowest/highest index, which is true if the
-// lowest/highest index is not at the "edge" of the leafs expanse based on its
-// LSBs.  If so, return Index decremented/incremented; otherwise restart at the
-// top of the tree.
-//
-// Note:  In many cases Index is already at the right spot and calling
-// SMRESTART instead of just going directly to SMGetRestart is a bit of
-// overkill.
-//
-// Note:  Variable shift occurs if Digits is not a constant.
-
-#ifdef JUDYPREV
-#define	LEAF_EDGE(MinIndex,Digits)			\
-	{						\
-	    if (MinIndex) { --Index; RET_SUCCESS; }	\
-	    SMRESTART(Digits);				\
-	}
-#else
-#define	LEAF_EDGE(MaxIndex,Digits)			\
-	{						\
-	    if ((MaxIndex) != JU_LEASTBYTES(cJU_ALLONES, Digits)) \
-	    { ++Index; RET_SUCCESS; }			\
-	    SMRESTART(Digits);				\
-	}
-#endif
-
-// Same as above except Index is not already set to match the lowest/highest
-// index, so do that before decrementing/incrementing it:
-
-#ifdef JUDYPREV
-#define	LEAF_EDGE_SET(MinIndex,Digits)	\
-	{				\
-	    if (MinIndex)		\
-	    { JU_SETDIGITS(Index, MinIndex, Digits); --Index; RET_SUCCESS; } \
-	    SMRESTART(Digits);		\
-	}
-#else
-#define	LEAF_EDGE_SET(MaxIndex,Digits)	\
-	{				\
-	    if ((MaxIndex) != JU_LEASTBYTES(cJU_ALLONES, Digits))	    \
-	    { JU_SETDIGITS(Index, MaxIndex, Digits); ++Index; RET_SUCCESS; } \
-	    SMRESTART(Digits);		\
-	}
-#endif
-
-
-// FIND A HOLE (EMPTY INDEX) IN AN IMMEDIATE OR LEAF:
-//
-// Given an index location in a leaf (or equivalently an immediate JP) known to
-// contain a usable hole (an empty index less/greater than Index), and the LSBs
-// of a minimum/maximum index to locate, find the previous/next empty index and
-// return it.
-//
-// Note:  "Even" index sizes (1,2,4[,8] bytes) have corresponding native C
-// types; "odd" index sizes dont, but they are not represented here because
-// they are handled completely differently; see elsewhere.
-
-#ifdef JUDYPREV
-
-#define	LEAF_HOLE_EVEN(cDigits,Pjll,IndexLSB)				\
-	{								\
-	    while (*(Pjll) > (IndexLSB)) --(Pjll); /* too high */	\
-	    if (*(Pjll) < (IndexLSB)) RET_SUCCESS  /* Index is empty */	\
-	    while (*(--(Pjll)) == --(IndexLSB)) /* null, find a hole */;\
-	    JU_SETDIGITS(Index, IndexLSB, cDigits);			\
-	    RET_SUCCESS;						\
-	}
-#else
-#define	LEAF_HOLE_EVEN(cDigits,Pjll,IndexLSB)				\
-	{								\
-	    while (*(Pjll) < (IndexLSB)) ++(Pjll); /* too low */	\
-	    if (*(Pjll) > (IndexLSB)) RET_SUCCESS  /* Index is empty */	\
-	    while (*(++(Pjll)) == ++(IndexLSB)) /* null, find a hole */;\
-	    JU_SETDIGITS(Index, IndexLSB, cDigits);			\
-	    RET_SUCCESS;						\
-	}
-#endif
-
-
-// SEARCH FOR AN EMPTY INDEX IN AN IMMEDIATE OR LEAF:
-//
-// Given a pointer to the first index in a leaf (or equivalently an immediate
-// JP), the population of the leaf, and a first empty Index to find (inclusive,
-// as Index in the context), where Index is known to fall within the expanse of
-// the leaf to search, efficiently find the previous/next empty index in the
-// leaf, if any.  For simplicity the following overview is stated in terms of
-// Judy*NextEmpty() only, but the same concepts apply symmetrically for
-// Judy*PrevEmpty().  Also, in each case the comparisons are for the LSBs of
-// Index and leaf indexes, according to the leafs level.
-//
-// 1.  If Index is GREATER than the last (highest) index in the leaf
-//     (maxindex), return success, Index is empty.  (Remember, Index is known
-//     to be in the leafs expanse.)
-//
-// 2.  If Index is EQUAL to maxindex:  If maxindex is not at the edge of the
-//     leafs expanse, increment Index and return success, there is an empty
-//     Index one higher than any in the leaf; otherwise restart with Index
-//     reset to the upper edge of the leafs expanse.  Note:  This might cause
-//     an extra cache line fill, but this is OK for repeatedly-called search
-//     code, and it saves CPU time.
-//
-// 3.  If Index is LESS than maxindex, check for "dense to end of leaf":
-//     Subtract Index from maxindex, and back up that many slots in the leaf.
-//     If the resulting offset is not before the start of the leaf then compare
-//     the index at this offset (baseindex) with Index:
-//
-// 3a.  If GREATER, the leaf must be corrupt, since indexes are sorted and
-//      there are no duplicates.
-//
-// 3b.  If EQUAL, the leaf is "dense" from Index to maxindex, meaning there is
-//      no reason to search it.  "Slide right" to the high end of the leaf
-//      (modify Index to maxindex) and continue with step 2 above.
-//
-// 3c.  If LESS, continue with step 4.
-//
-// 4.  If the offset based on maxindex minus Index falls BEFORE the start of
-//     the leaf, or if, per 3c above, baseindex is LESS than Index, the leaf is
-//     guaranteed "not dense to the end" and a usable empty Index must exist.
-//     This supports a more efficient search loop.  Start at the FIRST index in
-//     the leaf, or one BEYOND baseindex, respectively, and search the leaf as
-//     follows, comparing each current index (currindex) with Index:
-//
-// 4a.  If LESS, keep going to next index.  Note:  This is certain to terminate
-//      because maxindex is known to be greater than Index, hence the loop can
-//      be small and fast.
-//
-// 4b.  If EQUAL, loop and increment Index until finding currindex greater than
-//      Index, and return success with the modified Index.
-//
-// 4c.  If GREATER, return success, Index (unmodified) is empty.
-//
-// Note:  These are macros rather than functions for speed.
-
-#ifdef JUDYPREV
-
-#define	JSLE_EVEN(Addr,Pop0,cDigits,LeafType)				\
-	{								\
-	    LeafType * PjllLSB  = (LeafType *) (Addr);			\
-	    LeafType   IndexLSB = Index;	/* auto-masking */	\
-									\
-	/* Index before or at start of leaf: */				\
-									\
-	    if (*PjllLSB >= IndexLSB)		/* no need to search */	\
-	    {								\
-		if (*PjllLSB > IndexLSB) RET_SUCCESS; /* Index empty */	\
-		LEAF_EDGE(*PjllLSB, cDigits);				\
-	    }								\
-									\
-	/* Index in or after leaf: */					\
-									\
-	    offset = IndexLSB - *PjllLSB;	/* tentative offset  */	\
-	    if (offset <= (Pop0))		/* can check density */	\
-	    {								\
-		PjllLSB += offset;		/* move to slot */	\
-									\
-		if (*PjllLSB <= IndexLSB)	/* dense or corrupt */	\
-		{							\
-		    if (*PjllLSB == IndexLSB)	/* dense, check edge */	\
-			LEAF_EDGE_SET(PjllLSB[-offset], cDigits);	\
-		    RET_CORRUPT;					\
-		}							\
-		--PjllLSB;	/* not dense, start at previous */	\
-	    }								\
-	    else PjllLSB = ((LeafType *) (Addr)) + (Pop0); /* start at max */ \
-									\
-	    LEAF_HOLE_EVEN(cDigits, PjllLSB, IndexLSB);			\
-	}
-
-// JSLE_ODD is completely different from JSLE_EVEN because its important to
-// minimize copying odd indexes to compare them (see 4.14).  Furthermore, a
-// very complex version (4.17, but abandoned before fully debugged) that
-// avoided calling j__udySearchLeaf*() ran twice as fast as 4.14, but still
-// half as fast as SearchValid.  Doug suggested that to minimize complexity and
-// share common code we should use j__udySearchLeaf*() for the initial search
-// to establish if Index is empty, which should be common.  If Index is valid
-// in a leaf or immediate indexes, odds are good that an empty Index is nearby,
-// so for simplicity just use a *COPY* function to linearly search the
-// remainder.
-//
-// TBD:  Pathological case?  Average performance should be good, but worst-case
-// might suffer.  When Search says the initial Index is valid, so a linear
-// copy-and-compare is begun, if the caller builds fairly large leaves with
-// dense clusters AND frequently does a SearchEmpty at one end of such a
-// cluster, performance wont be very good.  Might a dense-check help?  This
-// means checking offset against the index at offset, and then against the
-// first/last index in the leaf.  We doubt the pathological case will appear
-// much in real applications because they will probably alternate SearchValid
-// and SearchEmpty calls.
-
-#define	JSLE_ODD(cDigits,Pjll,Pop0,Search,Copy)				\
-	{								\
-	    Word_t IndexLSB;		/* least bytes only */		\
-	    Word_t IndexFound;		/* in leaf	    */		\
-									\
-	    if ((offset = Search(Pjll, (Pop0) + 1, Index)) < 0)		\
-		RET_SUCCESS;		/* Index is empty */		\
-									\
-	    IndexLSB = JU_LEASTBYTES(Index, cDigits);			\
-	    offset  *= (cDigits);					\
-									\
-	    while ((offset -= (cDigits)) >= 0)				\
-	    {				/* skip until empty or start */	\
-		Copy(IndexFound, ((uint8_t *) (Pjll)) + offset);	\
-		if (IndexFound != (--IndexLSB))	/* found an empty */	\
-		{ JU_SETDIGITS(Index, IndexLSB, cDigits); RET_SUCCESS; }\
-	    }								\
-	    LEAF_EDGE_SET(IndexLSB, cDigits);				\
-	}
-
-#else // JUDYNEXT
-
-#define	JSLE_EVEN(Addr,Pop0,cDigits,LeafType)				\
-	{								\
-	    LeafType * PjllLSB   = ((LeafType *) (Addr)) + (Pop0);	\
-	    LeafType   IndexLSB = Index;	/* auto-masking */	\
-									\
-	/* Index at or after end of leaf: */				\
-									\
-	    if (*PjllLSB <= IndexLSB)		/* no need to search */	\
-	    {								\
-		if (*PjllLSB < IndexLSB) RET_SUCCESS;  /* Index empty */\
-		LEAF_EDGE(*PjllLSB, cDigits);				\
-	    }								\
-									\
-	/* Index before or in leaf: */					\
-									\
-	    offset = *PjllLSB - IndexLSB;	/* tentative offset  */	\
-	    if (offset <= (Pop0))		/* can check density */	\
-	    {								\
-		PjllLSB -= offset;		/* move to slot */	\
-									\
-		if (*PjllLSB >= IndexLSB)	/* dense or corrupt */	\
-		{							\
-		    if (*PjllLSB == IndexLSB)	/* dense, check edge */	\
-			LEAF_EDGE_SET(PjllLSB[offset], cDigits);	\
-		    RET_CORRUPT;					\
-		}							\
-		++PjllLSB;		/* not dense, start at next */	\
-	    }								\
-	    else PjllLSB = (LeafType *) (Addr);	/* start at minimum */	\
-									\
-	    LEAF_HOLE_EVEN(cDigits, PjllLSB, IndexLSB);			\
-	}
-
-#define	JSLE_ODD(cDigits,Pjll,Pop0,Search,Copy)				\
-	{								\
-	    Word_t IndexLSB;		/* least bytes only */		\
-	    Word_t IndexFound;		/* in leaf	    */		\
-	    int	   offsetmax;		/* in bytes	    */		\
-									\
-	    if ((offset = Search(Pjll, (Pop0) + 1, Index)) < 0)		\
-		RET_SUCCESS;			/* Index is empty */	\
-									\
-	    IndexLSB  = JU_LEASTBYTES(Index, cDigits);			\
-	    offset   *= (cDigits);					\
-	    offsetmax = (Pop0) * (cDigits);	/* single multiply */	\
-									\
-	    while ((offset += (cDigits)) <= offsetmax)			\
-	    {				/* skip until empty or end */	\
-		Copy(IndexFound, ((uint8_t *) (Pjll)) + offset);	\
-		if (IndexFound != (++IndexLSB))	/* found an empty */	\
-		{ JU_SETDIGITS(Index, IndexLSB, cDigits); RET_SUCCESS; } \
-	    }								\
-	    LEAF_EDGE_SET(IndexLSB, cDigits);				\
-	}
-
-#endif // JUDYNEXT
-
-// Note:  Immediate indexes never fill a single index group, so for odd index
-// sizes, save time by calling JSLE_ODD_IMM instead of JSLE_ODD.
-
-#define	j__udySearchLeafEmpty1(Addr,Pop0) \
-	JSLE_EVEN(Addr, Pop0, 1, uint8_t)
-
-#define	j__udySearchLeafEmpty2(Addr,Pop0) \
-	JSLE_EVEN(Addr, Pop0, 2, uint16_t)
-
-#define	j__udySearchLeafEmpty3(Addr,Pop0) \
-	JSLE_ODD(3, Addr, Pop0, j__udySearchLeaf3, JU_COPY3_PINDEX_TO_LONG)
-
-#ifndef JU_64BIT
-
-#define	j__udySearchLeafEmptyL(Addr,Pop0) \
-	JSLE_EVEN(Addr, Pop0, 4, Word_t)
-
-#else
-
-#define	j__udySearchLeafEmpty4(Addr,Pop0) \
-	JSLE_EVEN(Addr, Pop0, 4, uint32_t)
-
-#define	j__udySearchLeafEmpty5(Addr,Pop0) \
-	JSLE_ODD(5, Addr, Pop0, j__udySearchLeaf5, JU_COPY5_PINDEX_TO_LONG)
-
-#define	j__udySearchLeafEmpty6(Addr,Pop0) \
-	JSLE_ODD(6, Addr, Pop0, j__udySearchLeaf6, JU_COPY6_PINDEX_TO_LONG)
-
-#define	j__udySearchLeafEmpty7(Addr,Pop0) \
-	JSLE_ODD(7, Addr, Pop0, j__udySearchLeaf7, JU_COPY7_PINDEX_TO_LONG)
-
-#define	j__udySearchLeafEmptyL(Addr,Pop0) \
-	JSLE_EVEN(Addr, Pop0, 8, Word_t)
-
-#endif // JU_64BIT
-
-
-// ----------------------------------------------------------------------------
-// START OF CODE:
-//
-// CHECK FOR SHORTCUTS:
-//
-// Error out if PIndex is null.
-
-	if (PIndex == (PWord_t) NULL)
-	{
-	    JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-	    return(JERRI);
-	}
-
-	Index = *PIndex;			// fast local copy.
-
-// Set and pre-decrement/increment Index, watching for underflow/overflow:
-//
-// An out-of-bounds Index means failure:  No previous/next empty index.
-
-SMGetRestart:		// return here with revised Index.
-
-#ifdef JUDYPREV
-	if (Index-- == 0) return(0);
-#else
-	if (++Index == 0) return(0);
-#endif
-
-// An empty array with an in-bounds (not underflowed/overflowed) Index means
-// success:
-//
-// Note:  This check is redundant after restarting at SMGetRestart, but should
-// take insignificant time.
-
-	if (PArray == (Pvoid_t) NULL) RET_SUCCESS;
-
-// ----------------------------------------------------------------------------
-// ROOT-LEVEL LEAF that starts with a Pop0 word; just look within the leaf:
-//
-// If Index is not in the leaf, return success; otherwise return the first
-// empty Index, if any, below/above where it would belong.
-
-	if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
-	{
-	    Pjlw_t Pjlw = P_JLW(PArray);	// first word of leaf.
-	    pop0 = Pjlw[0];
-
-#ifdef	JUDY1
-	    if (pop0 == 0)			// special case.
-	    {
-#ifdef JUDYPREV
-		if ((Index != Pjlw[1]) || (Index-- != 0)) RET_SUCCESS;
-#else
-		if ((Index != Pjlw[1]) || (++Index != 0)) RET_SUCCESS;
-#endif
-		return(0);		// no previous/next empty index.
-	    }
-#endif // JUDY1
-
-	    j__udySearchLeafEmptyL(Pjlw + 1, pop0);
-
-//  No return -- thanks ALAN
-
-	}
-	else
-
-// ----------------------------------------------------------------------------
-// HANDLE JRP Branch:
-//
-// For JRP branches, traverse the JPM; handle LEAFW
-// directly; but look for the most common cases first.
-
-	{
-	    Pjpm_t Pjpm = P_JPM(PArray);
-	    Pjp = &(Pjpm->jpm_JP);
-
-//	    goto SMGetContinue;
-	}
-
-
-// ============================================================================
-// STATE MACHINE -- GET INDEX:
-//
-// Search for Index (already decremented/incremented so as to be an inclusive
-// search).  If not found (empty index), return success.  Otherwise do a
-// previous/next search, and if successful modify Index to the empty index
-// found.  See function header comments.
-//
-// ENTRY:  Pjp points to next JP to interpret, whose Decode bytes have not yet
-// been checked.
-//
-// Note:  Check Decode bytes at the start of each loop, not after looking up a
-// new JP, so its easy to do constant shifts/masks.
-//
-// EXIT:  Return, or branch to SMGetRestart with modified Index, or branch to
-// SMGetContinue with a modified Pjp, as described elsewhere.
-//
-// WARNING:  For run-time efficiency the following cases replicate code with
-// varying constants, rather than using common code with variable values!
-
-SMGetContinue:			// return here for next branch/leaf.
-
-#ifdef TRACEJPSE
-	JudyPrintJP(Pjp, "sf", __LINE__);
-#endif
-
-	switch (JU_JPTYPE(Pjp))
-	{
-
-
-// ----------------------------------------------------------------------------
-// LINEAR BRANCH:
-//
-// Check Decode bytes, if any, in the current JP, then search for a JP for the
-// next digit in Index.
-
-	case cJU_JPBRANCH_L2: CHECKDCD(2); SMPREPB2(SMBranchL);
-	case cJU_JPBRANCH_L3: CHECKDCD(3); SMPREPB3(SMBranchL);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_L4: CHECKDCD(4); SMPREPB4(SMBranchL);
-	case cJU_JPBRANCH_L5: CHECKDCD(5); SMPREPB5(SMBranchL);
-	case cJU_JPBRANCH_L6: CHECKDCD(6); SMPREPB6(SMBranchL);
-	case cJU_JPBRANCH_L7: CHECKDCD(7); SMPREPB7(SMBranchL);
-#endif
-	case cJU_JPBRANCH_L:		   SMPREPBL(SMBranchL);
-
-// Common code (state-independent) for all cases of linear branches:
-
-SMBranchL:
-	    Pjbl = P_JBL(Pjp->jp_Addr);
-
-// First, check if Indexs expanse (digit) is below/above the first/last
-// populated expanse in the BranchL, in which case Index is empty; otherwise
-// find the offset of the lowest/highest populated expanse at or above/below
-// digit, if any:
-//
-// Note:  The for-loop is guaranteed to exit eventually because the first/last
-// expanse is known to be a terminator.
-//
-// Note:  Cannot use j__udySearchLeaf*Empty1() here because it only applies to
-// leaves and does not know about partial versus full JPs, unlike the use of
-// j__udySearchLeaf1() for BranchLs in SearchValid code.  Also, since linear
-// leaf expanse lists are small, dont waste time calling j__udySearchLeaf1(),
-// just scan the expanse list.
-
-#ifdef JUDYPREV
-	    if ((Pjbl->jbl_Expanse[0]) > digit) RET_SUCCESS;
-
-	    for (offset = (Pjbl->jbl_NumJPs) - 1; /* null */; --offset)
-#else
-	    if ((Pjbl->jbl_Expanse[(Pjbl->jbl_NumJPs) - 1]) < digit)
-		RET_SUCCESS;
-
-	    for (offset = 0; /* null */; ++offset)
-#endif
-	    {
-
-// Too low/high, keep going; or too high/low, meaning the loop passed a hole
-// and the initial Index is empty:
-
-#ifdef JUDYPREV
-		if ((Pjbl->jbl_Expanse[offset]) > digit) continue;
-		if ((Pjbl->jbl_Expanse[offset]) < digit) RET_SUCCESS;
-#else
-		if ((Pjbl->jbl_Expanse[offset]) < digit) continue;
-		if ((Pjbl->jbl_Expanse[offset]) > digit) RET_SUCCESS;
-#endif
-
-// Found expanse matching digit; if its not full, traverse through it:
-
-		if (! JPFULL((Pjbl->jbl_jp) + offset))
-		{
-		    Pjp = (Pjbl->jbl_jp) + offset;
-		    goto SMGetContinue;
-		}
-
-// Common code:  While searching for a lower/higher hole or a non-full JP, upon
-// finding a lower/higher hole, adjust Index using the revised digit and
-// return; or upon finding a consecutive lower/higher expanse, if the expanses
-// JP is non-full, modify Index and traverse through the JP:
-
-#define	BRANCHL_CHECK(OpIncDec,OpLeastDigits,Digit,Digits)	\
-	{							\
-	    if ((Pjbl->jbl_Expanse[offset]) != OpIncDec digit)	\
-		SET_AND_RETURN(OpLeastDigits, Digit, Digits);	\
-								\
-	    if (! JPFULL((Pjbl->jbl_jp) + offset))		\
-	    {							\
-		Pjp = (Pjbl->jbl_jp) + offset;			\
-		SET_AND_CONTINUE(OpLeastDigits, Digit, Digits);	\
-	    }							\
-	}
-
-// BranchL primary dead end:  Expanse matching Index/digit is full (rare except
-// for dense/sequential indexes):
-//
-// Search for a lower/higher hole, a non-full JP, or the end of the expanse
-// list, while decrementing/incrementing digit.
-
-#ifdef JUDYPREV
-		while (--offset >= 0)
-		    BRANCHL_CHECK(--, SETLEASTDIGITS_D, digit, digits)
-#else
-		while (++offset < Pjbl->jbl_NumJPs)
-		    BRANCHL_CHECK(++, CLEARLEASTDIGITS_D, digit, digits)
-#endif
-
-// Passed end of BranchL expanse list after finding a matching but full
-// expanse:
-//
-// Digit now matches the lowest/highest expanse, which is a full expanse; if
-// digit is at the end of BranchLs expanse (no hole before/after), break out
-// of the loop; otherwise modify Index to the next lower/higher digit and
-// return success:
-
-#ifdef JUDYPREV
-		if (digit == 0) break;
-		--digit; SET_AND_RETURN(SETLEASTDIGITS_D, digit, digits);
-#else
-		if (digit == JU_LEASTBYTES(cJU_ALLONES, 1)) break;
-		++digit; SET_AND_RETURN(CLEARLEASTDIGITS_D, digit, digits);
-#endif
-	    } // for-loop
-
-// BranchL secondary dead end, no non-full previous/next JP:
-
-	    SMRESTART(digits);
-
-
-// ----------------------------------------------------------------------------
-// BITMAP BRANCH:
-//
-// Check Decode bytes, if any, in the current JP, then search for a JP for the
-// next digit in Index.
-
-	case cJU_JPBRANCH_B2: CHECKDCD(2); SMPREPB2(SMBranchB);
-	case cJU_JPBRANCH_B3: CHECKDCD(3); SMPREPB3(SMBranchB);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_B4: CHECKDCD(4); SMPREPB4(SMBranchB);
-	case cJU_JPBRANCH_B5: CHECKDCD(5); SMPREPB5(SMBranchB);
-	case cJU_JPBRANCH_B6: CHECKDCD(6); SMPREPB6(SMBranchB);
-	case cJU_JPBRANCH_B7: CHECKDCD(7); SMPREPB7(SMBranchB);
-#endif
-	case cJU_JPBRANCH_B:		   SMPREPBL(SMBranchB);
-
-// Common code (state-independent) for all cases of bitmap branches:
-
-SMBranchB:
-	    Pjbb = P_JBB(Pjp->jp_Addr);
-
-// Locate the digits JP in the subexpanse list, if present:
-
-	    subexp     = digit / cJU_BITSPERSUBEXPB;
-	    assert(subexp < cJU_NUMSUBEXPB);	// falls in expected range.
-	    bitposmaskB = JU_BITPOSMASKB(digit);
-
-// Absent JP = no JP matches current digit in Index:
-
-//	    if (! JU_BITMAPTESTB(Pjbb, digit))			// slower.
-	    if (! (JU_JBB_BITMAP(Pjbb, subexp) & bitposmaskB))	// faster.
-		RET_SUCCESS;
-
-// Non-full JP matches current digit in Index:
-//
-// Iterate to the subsidiary non-full JP.
-
-	    offset = SEARCHBITMAPB(JU_JBB_BITMAP(Pjbb, subexp), digit,
-				   bitposmaskB);
-	    // not negative since at least one bit is set:
-	    assert(offset >= 0);
-	    assert(offset < (int) cJU_BITSPERSUBEXPB);
-
-// Watch for null JP subarray pointer with non-null bitmap (a corruption):
-
-	    if ((Pjp = P_JP(JU_JBB_PJP(Pjbb, subexp)))
-	     == (Pjp_t) NULL) RET_CORRUPT;
-
-	    Pjp += offset;
-	    if (! JPFULL(Pjp)) goto SMGetContinue;
-
-// BranchB primary dead end:
-//
-// Upon hitting a full JP in a BranchB for the next digit in Index, search
-// sideways for a previous/next absent JP (unset bit) or non-full JP (set bit
-// with non-full JP); first in the current bitmap subexpanse, then in
-// lower/higher subexpanses.  Upon entry, Pjp points to a known-unusable JP,
-// ready to decrement/increment.
-//
-// Note:  The preceding code is separate from this loop because Index does not
-// need revising (see SET_AND_*()) if the initial index is an empty index.
-//
-// TBD:  For speed, shift bitposmaskB instead of using JU_BITMAPTESTB or
-// JU_BITPOSMASKB, but this shift has knowledge of bit order that really should
-// be encapsulated in a header file.
-
-#define	BRANCHB_CHECKBIT(OpLeastDigits)					\
-    if (! (JU_JBB_BITMAP(Pjbb, subexp) & bitposmaskB))  /* absent JP */	\
-	SET_AND_RETURN(OpLeastDigits, digit, digits)
-
-#define	BRANCHB_CHECKJPFULL(OpLeastDigits)				\
-    if (! JPFULL(Pjp))							\
-	SET_AND_CONTINUE(OpLeastDigits, digit, digits)
-
-#define	BRANCHB_STARTSUBEXP(OpLeastDigits)				\
-    if (! JU_JBB_BITMAP(Pjbb, subexp)) /* empty subexpanse, shortcut */ \
-	SET_AND_RETURN(OpLeastDigits, digit, digits)			\
-    if ((Pjp = P_JP(JU_JBB_PJP(Pjbb, subexp))) == (Pjp_t) NULL) RET_CORRUPT
-
-#ifdef JUDYPREV
-
-	    --digit;				// skip initial digit.
-	    bitposmaskB >>= 1;			// see TBD above.
-
-BranchBNextSubexp:	// return here to check next bitmap subexpanse.
-
-	    while (bitposmaskB)			// more bits to check in subexp.
-	    {
-		BRANCHB_CHECKBIT(SETLEASTDIGITS_D);
-		--Pjp;				// previous in subarray.
-		BRANCHB_CHECKJPFULL(SETLEASTDIGITS_D);
-		assert(digit >= 0);
-		--digit;
-		bitposmaskB >>= 1;
-	    }
-
-	    if (subexp-- > 0)			// more subexpanses.
-	    {
-		BRANCHB_STARTSUBEXP(SETLEASTDIGITS_D);
-		Pjp += SEARCHBITMAPMAXB(JU_JBB_BITMAP(Pjbb, subexp)) + 1;
-		bitposmaskB = (1U << (cJU_BITSPERSUBEXPB - 1));
-		goto BranchBNextSubexp;
-	    }
-
-#else // JUDYNEXT
-
-	    ++digit;				// skip initial digit.
-	    bitposmaskB <<= 1;			// note:  BITMAPB_t.
-
-BranchBNextSubexp:	// return here to check next bitmap subexpanse.
-
-	    while (bitposmaskB)			// more bits to check in subexp.
-	    {
-		BRANCHB_CHECKBIT(CLEARLEASTDIGITS_D);
-		++Pjp;				// previous in subarray.
-		BRANCHB_CHECKJPFULL(CLEARLEASTDIGITS_D);
-		assert(digit < cJU_SUBEXPPERSTATE);
-		++digit;
-		bitposmaskB <<= 1;		// note:  BITMAPB_t.
-	    }
-
-	    if (++subexp < cJU_NUMSUBEXPB)	// more subexpanses.
-	    {
-		BRANCHB_STARTSUBEXP(CLEARLEASTDIGITS_D);
-		--Pjp;				// pre-decrement.
-		bitposmaskB = 1;
-		goto BranchBNextSubexp;
-	    }
-
-#endif // JUDYNEXT
-
-// BranchB secondary dead end, no non-full previous/next JP:
-
-	    SMRESTART(digits);
-
-
-// ----------------------------------------------------------------------------
-// UNCOMPRESSED BRANCH:
-//
-// Check Decode bytes, if any, in the current JP, then search for a JP for the
-// next digit in Index.
-
-	case cJU_JPBRANCH_U2: CHECKDCD(2); SMPREPB2(SMBranchU);
-	case cJU_JPBRANCH_U3: CHECKDCD(3); SMPREPB3(SMBranchU);
-#ifdef JU_64BIT
-	case cJU_JPBRANCH_U4: CHECKDCD(4); SMPREPB4(SMBranchU);
-	case cJU_JPBRANCH_U5: CHECKDCD(5); SMPREPB5(SMBranchU);
-	case cJU_JPBRANCH_U6: CHECKDCD(6); SMPREPB6(SMBranchU);
-	case cJU_JPBRANCH_U7: CHECKDCD(7); SMPREPB7(SMBranchU);
-#endif
-	case cJU_JPBRANCH_U:		   SMPREPBL(SMBranchU);
-
-// Common code (state-independent) for all cases of uncompressed branches:
-
-SMBranchU:
-	    Pjbu = P_JBU(Pjp->jp_Addr);
-	    Pjp	 = (Pjbu->jbu_jp) + digit;
-
-// Absent JP = null JP for current digit in Index:
-
-	    if (JPNULL(JU_JPTYPE(Pjp))) RET_SUCCESS;
-
-// Non-full JP matches current digit in Index:
-//
-// Iterate to the subsidiary JP.
-
-	    if (! JPFULL(Pjp)) goto SMGetContinue;
-
-// BranchU primary dead end:
-//
-// Upon hitting a full JP in a BranchU for the next digit in Index, search
-// sideways for a previous/next null or non-full JP.  BRANCHU_CHECKJP() is
-// shorthand for common code.
-//
-// Note:  The preceding code is separate from this loop because Index does not
-// need revising (see SET_AND_*()) if the initial index is an empty index.
-
-#define	BRANCHU_CHECKJP(OpIncDec,OpLeastDigits)			\
-	{							\
-	    OpIncDec Pjp;					\
-								\
-	    if (JPNULL(JU_JPTYPE(Pjp)))				\
-		SET_AND_RETURN(OpLeastDigits, digit, digits)	\
-								\
-	    if (! JPFULL(Pjp))					\
-		SET_AND_CONTINUE(OpLeastDigits, digit, digits)	\
-	}
-
-#ifdef JUDYPREV
-	    while (digit-- > 0)
-		BRANCHU_CHECKJP(--, SETLEASTDIGITS_D);
-#else
-	    while (++digit < cJU_BRANCHUNUMJPS)
-		BRANCHU_CHECKJP(++, CLEARLEASTDIGITS_D);
-#endif
-
-// BranchU secondary dead end, no non-full previous/next JP:
-
-	    SMRESTART(digits);
-
-
-// ----------------------------------------------------------------------------
-// LINEAR LEAF:
-//
-// Check Decode bytes, if any, in the current JP, then search the leaf for the
-// previous/next empty index starting at Index.  Primary leaf dead end is
-// hidden within j__udySearchLeaf*Empty*().  In case of secondary leaf dead
-// end, restart at the top of the tree.
-//
-// Note:  Pword is the name known to GET*; think of it as Pjlw.
-
-#define	SMLEAFL(cDigits,Func)                   \
-	Pword = (PWord_t) P_JLW(Pjp->jp_Addr);  \
-	pop0  = JU_JPLEAF_POP0(Pjp);            \
-	Func(Pword, pop0)
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
-	case cJU_JPLEAF1:  CHECKDCD(1); SMLEAFL(1, j__udySearchLeafEmpty1);
-#endif
-	case cJU_JPLEAF2:  CHECKDCD(2); SMLEAFL(2, j__udySearchLeafEmpty2);
-	case cJU_JPLEAF3:  CHECKDCD(3); SMLEAFL(3, j__udySearchLeafEmpty3);
-
-#ifdef JU_64BIT
-	case cJU_JPLEAF4:  CHECKDCD(4); SMLEAFL(4, j__udySearchLeafEmpty4);
-	case cJU_JPLEAF5:  CHECKDCD(5); SMLEAFL(5, j__udySearchLeafEmpty5);
-	case cJU_JPLEAF6:  CHECKDCD(6); SMLEAFL(6, j__udySearchLeafEmpty6);
-	case cJU_JPLEAF7:  CHECKDCD(7); SMLEAFL(7, j__udySearchLeafEmpty7);
-#endif
-
-
-// ----------------------------------------------------------------------------
-// BITMAP LEAF:
-//
-// Check Decode bytes, if any, in the current JP, then search the leaf for the
-// previous/next empty index starting at Index.
-
-	case cJU_JPLEAF_B1:
-
-	    CHECKDCD(1);
-
-	    Pjlb	= P_JLB(Pjp->jp_Addr);
-	    digit	= JU_DIGITATSTATE(Index, 1);
-	    subexp	= digit / cJU_BITSPERSUBEXPL;
-	    bitposmaskL	= JU_BITPOSMASKL(digit);
-	    assert(subexp < cJU_NUMSUBEXPL);	// falls in expected range.
-
-// Absent index = no index matches current digit in Index:
-
-//	    if (! JU_BITMAPTESTL(Pjlb, digit))			// slower.
-	    if (! (JU_JLB_BITMAP(Pjlb, subexp) & bitposmaskL))	// faster.
-		RET_SUCCESS;
-
-// LeafB1 primary dead end:
-//
-// Upon hitting a valid (non-empty) index in a LeafB1 for the last digit in
-// Index, search sideways for a previous/next absent index, first in the
-// current bitmap subexpanse, then in lower/higher subexpanses.
-// LEAFB1_CHECKBIT() is shorthand for common code to handle one bit in one
-// bitmap subexpanse.
-//
-// Note:  The preceding code is separate from this loop because Index does not
-// need revising (see SET_AND_*()) if the initial index is an empty index.
-//
-// TBD:  For speed, shift bitposmaskL instead of using JU_BITMAPTESTL or
-// JU_BITPOSMASKL, but this shift has knowledge of bit order that really should
-// be encapsulated in a header file.
-
-#define	LEAFB1_CHECKBIT(OpLeastDigits)				\
-	if (! (JU_JLB_BITMAP(Pjlb, subexp) & bitposmaskL))	\
-	    SET_AND_RETURN(OpLeastDigits, digit, 1)
-
-#define	LEAFB1_STARTSUBEXP(OpLeastDigits)			\
-	if (! JU_JLB_BITMAP(Pjlb, subexp)) /* empty subexp */	\
-	    SET_AND_RETURN(OpLeastDigits, digit, 1)
-
-#ifdef JUDYPREV
-
-	    --digit;				// skip initial digit.
-	    bitposmaskL >>= 1;			// see TBD above.
-
-LeafB1NextSubexp:	// return here to check next bitmap subexpanse.
-
-	    while (bitposmaskL)			// more bits to check in subexp.
-	    {
-		LEAFB1_CHECKBIT(SETLEASTDIGITS_D);
-		assert(digit >= 0);
-		--digit;
-		bitposmaskL >>= 1;
-	    }
-
-	    if (subexp-- > 0)		// more subexpanses.
-	    {
-		LEAFB1_STARTSUBEXP(SETLEASTDIGITS_D);
-		bitposmaskL = ((Word_t)1U << (cJU_BITSPERSUBEXPL - 1));
-		goto LeafB1NextSubexp;
-	    }
-
-#else // JUDYNEXT
-
-	    ++digit;				// skip initial digit.
-	    bitposmaskL <<= 1;			// note:  BITMAPL_t.
-
-LeafB1NextSubexp:	// return here to check next bitmap subexpanse.
-
-	    while (bitposmaskL)			// more bits to check in subexp.
-	    {
-		LEAFB1_CHECKBIT(CLEARLEASTDIGITS_D);
-		assert(digit < cJU_SUBEXPPERSTATE);
-		++digit;
-		bitposmaskL <<= 1;		// note:  BITMAPL_t.
-	    }
-
-	    if (++subexp < cJU_NUMSUBEXPL)	// more subexpanses.
-	    {
-		LEAFB1_STARTSUBEXP(CLEARLEASTDIGITS_D);
-		bitposmaskL = 1;
-		goto LeafB1NextSubexp;
-	    }
-
-#endif // JUDYNEXT
-
-// LeafB1 secondary dead end, no empty index:
-
-	    SMRESTART(1);
-
-
-#ifdef JUDY1
-// ----------------------------------------------------------------------------
-// FULL POPULATION:
-//
-// If the Decode bytes do not match, Index is empty (without modification);
-// otherwise restart.
-
-	case cJ1_JPFULLPOPU1:
-
-	    CHECKDCD(1);
-	    SMRESTART(1);
-#endif
-
-
-// ----------------------------------------------------------------------------
-// IMMEDIATE:
-//
-// Pop1 = 1 Immediate JPs:
-//
-// If Index is not in the immediate JP, return success; otherwise check if
-// there is an empty index below/above the immediate JPs index, and if so,
-// return success with modified Index, else restart.
-//
-// Note:  Doug says its fast enough to calculate the index size (digits) in
-// the following; no need to set it separately for each case.
-
-	case cJU_JPIMMED_1_01:
-	case cJU_JPIMMED_2_01:
-	case cJU_JPIMMED_3_01:
-#ifdef JU_64BIT
-	case cJU_JPIMMED_4_01:
-	case cJU_JPIMMED_5_01:
-	case cJU_JPIMMED_6_01:
-	case cJU_JPIMMED_7_01:
-#endif
-	    if (JU_JPDCDPOP0(Pjp) != JU_TRIMTODCDSIZE(Index)) RET_SUCCESS;
-	    digits = JU_JPTYPE(Pjp) - cJU_JPIMMED_1_01 + 1;
-	    LEAF_EDGE(JU_LEASTBYTES(JU_JPDCDPOP0(Pjp), digits), digits);
-
-// Immediate JPs with Pop1 > 1:
-
-#define	IMM_MULTI(Func,BaseJPType)			\
-	JUDY1CODE(Pword = (PWord_t) (Pjp->jp_1Index);)	\
-	JUDYLCODE(Pword = (PWord_t) (Pjp->jp_LIndex);)	\
-	Func(Pword, JU_JPTYPE(Pjp) - (BaseJPType) + 1)
-
-	case cJU_JPIMMED_1_02:
-	case cJU_JPIMMED_1_03:
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_1_04:
-	case cJU_JPIMMED_1_05:
-	case cJU_JPIMMED_1_06:
-	case cJU_JPIMMED_1_07:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_1_08:
-	case cJ1_JPIMMED_1_09:
-	case cJ1_JPIMMED_1_10:
-	case cJ1_JPIMMED_1_11:
-	case cJ1_JPIMMED_1_12:
-	case cJ1_JPIMMED_1_13:
-	case cJ1_JPIMMED_1_14:
-	case cJ1_JPIMMED_1_15:
-#endif
-	    IMM_MULTI(j__udySearchLeafEmpty1, cJU_JPIMMED_1_02);
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_2_02:
-	case cJU_JPIMMED_2_03:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_2_04:
-	case cJ1_JPIMMED_2_05:
-	case cJ1_JPIMMED_2_06:
-	case cJ1_JPIMMED_2_07:
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-	    IMM_MULTI(j__udySearchLeafEmpty2, cJU_JPIMMED_2_02);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
-	case cJU_JPIMMED_3_02:
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_3_03:
-	case cJ1_JPIMMED_3_04:
-	case cJ1_JPIMMED_3_05:
-#endif
-#if (defined(JUDY1) || defined(JU_64BIT))
-	    IMM_MULTI(j__udySearchLeafEmpty3, cJU_JPIMMED_3_02);
-#endif
-
-#if (defined(JUDY1) && defined(JU_64BIT))
-	case cJ1_JPIMMED_4_02:
-	case cJ1_JPIMMED_4_03:
-	    IMM_MULTI(j__udySearchLeafEmpty4, cJ1_JPIMMED_4_02);
-
-	case cJ1_JPIMMED_5_02:
-	case cJ1_JPIMMED_5_03:
-	    IMM_MULTI(j__udySearchLeafEmpty5, cJ1_JPIMMED_5_02);
-
-	case cJ1_JPIMMED_6_02:
-	    IMM_MULTI(j__udySearchLeafEmpty6, cJ1_JPIMMED_6_02);
-
-	case cJ1_JPIMMED_7_02:
-	    IMM_MULTI(j__udySearchLeafEmpty7, cJ1_JPIMMED_7_02);
-#endif
-
-
-// ----------------------------------------------------------------------------
-// INVALID JP TYPE:
-
-	default: RET_CORRUPT;
-
-	} // SMGet switch.
-
-} // Judy1PrevEmpty() / Judy1NextEmpty() / JudyLPrevEmpty() / JudyLNextEmpty()
diff --git a/libs/klib/judy/JudyPrintJP.c b/libs/klib/judy/JudyPrintJP.c
deleted file mode 100644
index 3764da1..0000000
--- a/libs/klib/judy/JudyPrintJP.c
+++ /dev/null
@@ -1,399 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// JudyPrintJP() debugging/tracing function for Judy1 or JudyL code.
-// The caller should #include this file, with its static function (replicated
-// in each compilation unit), in another *.c file, and compile with one of
-// -DJUDY1 or -DJUDYL.
-//
-// The caller can set j__udyIndex and/or j__udyPopulation non-zero to have
-// those values reported, and also to control trace-enabling (see below).
-//
-// Tracing is disabled by default unless one or both of two env parameters is
-// set (regardless of value).  If either value is set but null or evaluates to
-// zero, tracing is immediately enabled.  To disable tracing until a particular
-// j__udy*Index value is seen, set STARTINDEX=<hex-index> in the env.  To
-// disable it until a particular j__udy*Population value is seen, set
-// STARTPOP=<decimal-population> in the env.  Once either condition is met,
-// tracing "latches on".
-//
-// Example:
-//
-//      STARTPOP=0              // immediate tracing.
-//      STARTINDEX=f35430a8     // not until one of these is met.
-//      STARTPOP=1000000
-//
-// Note:  Trace-enabling does nothing unless the caller sets the appropriate
-// global variable non-zero.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#include <stdlib.h>             // for getenv() and strtoul().
-
-
-// GLOBALS FROM CALLER:
-//
-// Note:  This storage is declared once in each compilation unit that includes
-// this file, but the linker should merge all cases into single locations, but
-// ONLY if these are uninitialized, so ASSUME they are 0 to start.
-
-Word_t j__udyIndex;             // current Index itself, optional from caller.
-Word_t j__udyPopulation;        // Indexes in array, optional from caller.
-
-// Other globals:
-
-static Word_t startindex = 0;           // see usage below.
-static Word_t startpop   = 0;
-static bool_t enabled    = FALSE;       // by default, unless env params set.
-
-// Shorthand for announcing JP addresses, Desc (in context), and JP types:
-//
-// Note:  Width is at least one blank wider than any JP type name, and the line
-// is left unfinished.
-//
-// Note:  Use a format for address printing compatible with other tracing
-// facilities; in particular, %x not %lx, to truncate the "noisy" high part on
-// 64-bit systems.
-
-#define JPTYPE(Type)  printf("0x%lx %s %-17s", (Word_t) Pjp, Desc, Type)
-
-// Shorthands for announcing expanse populations from DcdPopO fields:
-
-#define POP0 printf("Pop1 = 0 ")
-#define POP1 printf("Pop1 = %ld ", (Word_t) ((JU_JPDCDPOP0(Pjp) &            0xff) + 1))
-#define POP2 printf("Pop1 = %ld ", (Word_t) ((JU_JPDCDPOP0(Pjp) &          0xffff) + 1))
-#define POP3 printf("Pop1 = %ld ", (Word_t) ((JU_JPDCDPOP0(Pjp) &        0xffffff) + 1))
-#ifdef JU_64BIT
-#define POP4 printf("Pop1 = %ld ", (Word_t) ((JU_JPDCDPOP0(Pjp) &       0xffffffff) + 1))
-#define POP5 printf("Pop1 = %ld ", (Word_t) ((JU_JPDCDPOP0(Pjp) &     0xffffffffff) + 1))
-#define POP6 printf("Pop1 = %ld ", (Word_t) ((JU_JPDCDPOP0(Pjp) &   0xffffffffffff) + 1))
-#define POP7 printf("Pop1 = %ld ", (Word_t) ((JU_JPDCDPOP0(Pjp) & 0xffffffffffffff) + 1))
-#endif
-
-// Shorthands for announcing populations of Immeds:
-//
-// Note:  Line up the small populations that often occur together, but beyond
-// that, dont worry about it because populations can get arbitrarily large.
-
-#define POP_1   printf("Pop1 =  1 ")
-#define POP_2   printf("Pop1 =  2 ")
-#define POP_3   printf("Pop1 =  3 ")
-#define POP_4   printf("Pop1 =  4 ")
-#define POP_5   printf("Pop1 =  5 ")
-#define POP_6   printf("Pop1 =  6 ")
-#define POP_7   printf("Pop1 =  7 ")
-#define POP_8   printf("Pop1 =  8 ")
-#define POP_9   printf("Pop1 =  8 ")
-#define POP_10  printf("Pop1 = 10 ")
-#define POP_11  printf("Pop1 = 11 ")
-#define POP_12  printf("Pop1 = 12 ")
-#define POP_13  printf("Pop1 = 13 ")
-#define POP_14  printf("Pop1 = 14 ")
-#define POP_15  printf("Pop1 = 15 ")
-
-// Shorthands for other announcements:
-
-#define NUMJPSL printf("NumJPs = %d ", P_JBL(Pjp->jp_Addr)->jbl_NumJPs)
-#define OOPS    printf("-- OOPS, invalid Type\n"); exit(1)
-
-// This is harder to compute:
-
-#define NUMJPSB                                                         \
-        {                                                               \
-            Pjbb_t Pjbb = P_JBB(Pjp->jp_Addr);                          \
-            Word_t subexp;                                              \
-            int    numJPs = 0;                                          \
-                                                                        \
-            for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)         \
-                numJPs += j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp));\
-                                                                        \
-            printf("NumJPs = %d ", numJPs);                             \
-        }
-
-
-// ****************************************************************************
-// J U D Y   P R I N T   J P
-//
-// Dump information about a JP, at least its address, type, population, and
-// number of JPs, as appropriate.  Error out upon any unexpected JP type.
-//
-// TBD:  Dump more detailed information about the JP?
-
-FUNCTION static void JudyPrintJP(
-        Pjp_t  Pjp,             // JP to describe.
-        char * Desc,            // brief description of caller, such as "i".
-        int    Line)            // callers source line number.
-{
-static  bool_t checked = FALSE; // set upon first entry and check for params.
-        char * value;           // for getenv().
-
-
-// CHECK FOR EXTERNAL ENABLING:
-//
-// If a parameter is set, report the value, even if it is null or otherwise
-// evaluates to zero, in which case enable tracing immediately; otherwise wait
-// for the value to be hit.
-
-#define GETENV(Name,Value,Base)                                 \
-        if ((value = getenv (Name)) != (char *) NULL)           \
-        {                                                       \
-            (Value) = strtoul (value, (char **) NULL, Base);    \
-            enabled |= ((Value) == 0);  /* see above */         \
-                                                                \
-            (void) printf ("JudyPrintJP(\"%s\"): $%s = %lu\n",  \
-                           Desc, Name, Value);                  \
-        }
-
-        if (! checked)  // only check once.
-        {
-            checked = TRUE;
-
-            GETENV ("STARTINDEX", startindex, 16);
-            GETENV ("STARTPOP",   startpop,   10);
-
-            (void) printf ("JudyPrintJP(\"%s\"): Tracing present %s\n", Desc,
-                           enabled ? "and immediately enabled" :
-                           (startindex || startpop) ?
-                           "but disabled until start condition met" :
-                           "but not enabled by env parameter");
-        }
-
-        if (! enabled)  // check repeatedly until latched enabled:
-        {
-            if (startindex && (startindex == j__udyIndex))
-            {
-                 (void) printf ("=== TRACING ENABLED (\"%s\"), "
-                                "startindex = 0x%lx\n", Desc, startindex);
-                 enabled = TRUE;
-            }
-            else if (startpop && (startpop == j__udyPopulation))
-            {
-                 (void) printf ("=== TRACING ENABLED (\"%s\"), "
-                                "startpop = %lu\n", Desc, startpop);
-                 enabled = TRUE;
-            }
-            else
-            {
-                return;         // print nothing this time.
-            }
-        }
-
-
-// SWITCH ON JP TYPE:
-
-        switch (JU_JPTYPE(Pjp))
-        {
-
-// Note:  The following COULD be merged more tightly between Judy1 and JudyL,
-// but we decided that the output should say cJ1*/cJL*, not cJU*, to be more
-// specific.
-
-#ifdef JUDY1
-        case cJ1_JPNULL1:       JPTYPE("cJ1_JPNULL1"); POP0;            break;
-        case cJ1_JPNULL2:       JPTYPE("cJ1_JPNULL2"); POP0;            break;
-        case cJ1_JPNULL3:       JPTYPE("cJ1_JPNULL3"); POP0;            break;
-#ifdef JU_64BIT
-        case cJ1_JPNULL4:       JPTYPE("cJ1_JPNULL4"); POP0;            break;
-        case cJ1_JPNULL5:       JPTYPE("cJ1_JPNULL5"); POP0;            break;
-        case cJ1_JPNULL6:       JPTYPE("cJ1_JPNULL6"); POP0;            break;
-        case cJ1_JPNULL7:       JPTYPE("cJ1_JPNULL7"); POP0;            break;
-#endif
-
-        case cJ1_JPBRANCH_L2:   JPTYPE("cJ1_JPBRANCH_L2"); POP2;NUMJPSL;break;
-        case cJ1_JPBRANCH_L3:   JPTYPE("cJ1_JPBRANCH_L3"); POP3;NUMJPSL;break;
-#ifdef JU_64BIT
-        case cJ1_JPBRANCH_L4:   JPTYPE("cJ1_JPBRANCH_L4"); POP4;NUMJPSL;break;
-        case cJ1_JPBRANCH_L5:   JPTYPE("cJ1_JPBRANCH_L5"); POP5;NUMJPSL;break;
-        case cJ1_JPBRANCH_L6:   JPTYPE("cJ1_JPBRANCH_L6"); POP6;NUMJPSL;break;
-        case cJ1_JPBRANCH_L7:   JPTYPE("cJ1_JPBRANCH_L7"); POP7;NUMJPSL;break;
-#endif
-        case cJ1_JPBRANCH_L:    JPTYPE("cJ1_JPBRANCH_L");       NUMJPSL;break;
-
-        case cJ1_JPBRANCH_B2:   JPTYPE("cJ1_JPBRANCH_B2"); POP2;NUMJPSB;break;
-        case cJ1_JPBRANCH_B3:   JPTYPE("cJ1_JPBRANCH_B3"); POP3;NUMJPSB;break;
-#ifdef JU_64BIT
-        case cJ1_JPBRANCH_B4:   JPTYPE("cJ1_JPBRANCH_B4"); POP4;NUMJPSB;break;
-        case cJ1_JPBRANCH_B5:   JPTYPE("cJ1_JPBRANCH_B5"); POP5;NUMJPSB;break;
-        case cJ1_JPBRANCH_B6:   JPTYPE("cJ1_JPBRANCH_B6"); POP6;NUMJPSB;break;
-        case cJ1_JPBRANCH_B7:   JPTYPE("cJ1_JPBRANCH_B7"); POP7;NUMJPSB;break;
-#endif
-        case cJ1_JPBRANCH_B:    JPTYPE("cJ1_JPBRANCH_B");       NUMJPSB;break;
-
-        case cJ1_JPBRANCH_U2:   JPTYPE("cJ1_JPBRANCH_U2"); POP2;        break;
-        case cJ1_JPBRANCH_U3:   JPTYPE("cJ1_JPBRANCH_U3"); POP3;        break;
-#ifdef JU_64BIT
-        case cJ1_JPBRANCH_U4:   JPTYPE("cJ1_JPBRANCH_U4"); POP4;        break;
-        case cJ1_JPBRANCH_U5:   JPTYPE("cJ1_JPBRANCH_U5"); POP5;        break;
-        case cJ1_JPBRANCH_U6:   JPTYPE("cJ1_JPBRANCH_U6"); POP6;        break;
-        case cJ1_JPBRANCH_U7:   JPTYPE("cJ1_JPBRANCH_U7"); POP7;        break;
-#endif
-        case cJ1_JPBRANCH_U:    JPTYPE("cJ1_JPBRANCH_U");               break;
-
-#ifndef JU_64BIT
-        case cJ1_JPLEAF1:       JPTYPE("cJ1_JPLEAF1"); POP1;            break;
-#endif
-        case cJ1_JPLEAF2:       JPTYPE("cJ1_JPLEAF2"); POP2;            break;
-        case cJ1_JPLEAF3:       JPTYPE("cJ1_JPLEAF3"); POP3;            break;
-#ifdef JU_64BIT
-        case cJ1_JPLEAF4:       JPTYPE("cJ1_JPLEAF4"); POP4;            break;
-        case cJ1_JPLEAF5:       JPTYPE("cJ1_JPLEAF5"); POP5;            break;
-        case cJ1_JPLEAF6:       JPTYPE("cJ1_JPLEAF6"); POP6;            break;
-        case cJ1_JPLEAF7:       JPTYPE("cJ1_JPLEAF7"); POP7;            break;
-#endif
-
-        case cJ1_JPLEAF_B1:     JPTYPE("cJ1_JPLEAF_B1");    POP1;       break;
-        case cJ1_JPFULLPOPU1:   JPTYPE("cJ1_JPFULLPOPU1");  POP1;       break;
-
-        case cJ1_JPIMMED_1_01:  JPTYPE("cJ1_JPIMMED_1_01"); POP_1;      break;
-        case cJ1_JPIMMED_2_01:  JPTYPE("cJ1_JPIMMED_2_01"); POP_1;      break;
-        case cJ1_JPIMMED_3_01:  JPTYPE("cJ1_JPIMMED_3_01"); POP_1;      break;
-#ifdef JU_64BIT
-        case cJ1_JPIMMED_4_01:  JPTYPE("cJ1_JPIMMED_4_01"); POP_1;      break;
-        case cJ1_JPIMMED_5_01:  JPTYPE("cJ1_JPIMMED_5_01"); POP_1;      break;
-        case cJ1_JPIMMED_6_01:  JPTYPE("cJ1_JPIMMED_6_01"); POP_1;      break;
-        case cJ1_JPIMMED_7_01:  JPTYPE("cJ1_JPIMMED_7_01"); POP_1;      break;
-#endif
-
-        case cJ1_JPIMMED_1_02:  JPTYPE("cJ1_JPIMMED_1_02"); POP_2;      break;
-        case cJ1_JPIMMED_1_03:  JPTYPE("cJ1_JPIMMED_1_03"); POP_3;      break;
-        case cJ1_JPIMMED_1_04:  JPTYPE("cJ1_JPIMMED_1_04"); POP_4;      break;
-        case cJ1_JPIMMED_1_05:  JPTYPE("cJ1_JPIMMED_1_05"); POP_5;      break;
-        case cJ1_JPIMMED_1_06:  JPTYPE("cJ1_JPIMMED_1_06"); POP_6;      break;
-        case cJ1_JPIMMED_1_07:  JPTYPE("cJ1_JPIMMED_1_07"); POP_7;      break;
-#ifdef JU_64BIT
-        case cJ1_JPIMMED_1_08:  JPTYPE("cJ1_JPIMMED_1_08"); POP_8;      break;
-        case cJ1_JPIMMED_1_09:  JPTYPE("cJ1_JPIMMED_1_09"); POP_9;      break;
-        case cJ1_JPIMMED_1_10:  JPTYPE("cJ1_JPIMMED_1_10"); POP_10;     break;
-        case cJ1_JPIMMED_1_11:  JPTYPE("cJ1_JPIMMED_1_11"); POP_11;     break;
-        case cJ1_JPIMMED_1_12:  JPTYPE("cJ1_JPIMMED_1_12"); POP_12;     break;
-        case cJ1_JPIMMED_1_13:  JPTYPE("cJ1_JPIMMED_1_13"); POP_13;     break;
-        case cJ1_JPIMMED_1_14:  JPTYPE("cJ1_JPIMMED_1_14"); POP_14;     break;
-        case cJ1_JPIMMED_1_15:  JPTYPE("cJ1_JPIMMED_1_15"); POP_15;     break;
-#endif
-        case cJ1_JPIMMED_2_02:  JPTYPE("cJ1_JPIMMED_2_02"); POP_2;      break;
-        case cJ1_JPIMMED_2_03:  JPTYPE("cJ1_JPIMMED_2_03"); POP_3;      break;
-#ifdef JU_64BIT
-        case cJ1_JPIMMED_2_04:  JPTYPE("cJ1_JPIMMED_2_04"); POP_4;      break;
-        case cJ1_JPIMMED_2_05:  JPTYPE("cJ1_JPIMMED_2_05"); POP_5;      break;
-        case cJ1_JPIMMED_2_06:  JPTYPE("cJ1_JPIMMED_2_06"); POP_6;      break;
-        case cJ1_JPIMMED_2_07:  JPTYPE("cJ1_JPIMMED_2_07"); POP_7;      break;
-#endif
-
-        case cJ1_JPIMMED_3_02:  JPTYPE("cJ1_JPIMMED_3_02"); POP_2;      break;
-#ifdef JU_64BIT
-        case cJ1_JPIMMED_3_03:  JPTYPE("cJ1_JPIMMED_3_03"); POP_3;      break;
-        case cJ1_JPIMMED_3_04:  JPTYPE("cJ1_JPIMMED_3_04"); POP_4;      break;
-        case cJ1_JPIMMED_3_05:  JPTYPE("cJ1_JPIMMED_3_05"); POP_5;      break;
-        case cJ1_JPIMMED_4_02:  JPTYPE("cJ1_JPIMMED_4_02"); POP_2;      break;
-        case cJ1_JPIMMED_4_03:  JPTYPE("cJ1_JPIMMED_4_03"); POP_3;      break;
-        case cJ1_JPIMMED_5_02:  JPTYPE("cJ1_JPIMMED_5_02"); POP_2;      break;
-        case cJ1_JPIMMED_5_03:  JPTYPE("cJ1_JPIMMED_5_03"); POP_3;      break;
-        case cJ1_JPIMMED_6_02:  JPTYPE("cJ1_JPIMMED_6_02"); POP_2;      break;
-        case cJ1_JPIMMED_7_02:  JPTYPE("cJ1_JPIMMED_7_02"); POP_2;      break;
-#endif
-        case cJ1_JPIMMED_CAP:   JPTYPE("cJ1_JPIMMED_CAP");              OOPS;
-
-#else // JUDYL ===============================================================
-
-        case cJL_JPNULL1:       JPTYPE("cJL_JPNULL1"); POP0;            break;
-        case cJL_JPNULL2:       JPTYPE("cJL_JPNULL2"); POP0;            break;
-        case cJL_JPNULL3:       JPTYPE("cJL_JPNULL3"); POP0;            break;
-#ifdef JU_64BIT
-        case cJL_JPNULL4:       JPTYPE("cJL_JPNULL4"); POP0;            break;
-        case cJL_JPNULL5:       JPTYPE("cJL_JPNULL5"); POP0;            break;
-        case cJL_JPNULL6:       JPTYPE("cJL_JPNULL6"); POP0;            break;
-        case cJL_JPNULL7:       JPTYPE("cJL_JPNULL7"); POP0;            break;
-#endif
-
-        case cJL_JPBRANCH_L2:   JPTYPE("cJL_JPBRANCH_L2"); POP2;NUMJPSL;break;
-        case cJL_JPBRANCH_L3:   JPTYPE("cJL_JPBRANCH_L3"); POP3;NUMJPSL;break;
-#ifdef JU_64BIT
-        case cJL_JPBRANCH_L4:   JPTYPE("cJL_JPBRANCH_L4"); POP4;NUMJPSL;break;
-        case cJL_JPBRANCH_L5:   JPTYPE("cJL_JPBRANCH_L5"); POP5;NUMJPSL;break;
-        case cJL_JPBRANCH_L6:   JPTYPE("cJL_JPBRANCH_L6"); POP6;NUMJPSL;break;
-        case cJL_JPBRANCH_L7:   JPTYPE("cJL_JPBRANCH_L7"); POP7;NUMJPSL;break;
-#endif
-        case cJL_JPBRANCH_L:    JPTYPE("cJL_JPBRANCH_L");       NUMJPSL;break;
-
-        case cJL_JPBRANCH_B2:   JPTYPE("cJL_JPBRANCH_B2"); POP2;NUMJPSB;break;
-        case cJL_JPBRANCH_B3:   JPTYPE("cJL_JPBRANCH_B3"); POP3;NUMJPSB;break;
-#ifdef JU_64BIT
-        case cJL_JPBRANCH_B4:   JPTYPE("cJL_JPBRANCH_B4"); POP4;NUMJPSB;break;
-        case cJL_JPBRANCH_B5:   JPTYPE("cJL_JPBRANCH_B5"); POP5;NUMJPSB;break;
-        case cJL_JPBRANCH_B6:   JPTYPE("cJL_JPBRANCH_B6"); POP6;NUMJPSB;break;
-        case cJL_JPBRANCH_B7:   JPTYPE("cJL_JPBRANCH_B7"); POP7;NUMJPSB;break;
-#endif
-        case cJL_JPBRANCH_B:    JPTYPE("cJL_JPBRANCH_B");       NUMJPSB;break;
-
-        case cJL_JPBRANCH_U2:   JPTYPE("cJL_JPBRANCH_U2"); POP2;        break;
-        case cJL_JPBRANCH_U3:   JPTYPE("cJL_JPBRANCH_U3"); POP3;        break;
-#ifdef JU_64BIT
-        case cJL_JPBRANCH_U4:   JPTYPE("cJL_JPBRANCH_U4"); POP4;        break;
-        case cJL_JPBRANCH_U5:   JPTYPE("cJL_JPBRANCH_U5"); POP5;        break;
-        case cJL_JPBRANCH_U6:   JPTYPE("cJL_JPBRANCH_U6"); POP6;        break;
-        case cJL_JPBRANCH_U7:   JPTYPE("cJL_JPBRANCH_U7"); POP7;        break;
-#endif
-        case cJL_JPBRANCH_U:    JPTYPE("cJL_JPBRANCH_U");               break;
-
-        case cJL_JPLEAF1:       JPTYPE("cJL_JPLEAF1"); POP1;            break;
-        case cJL_JPLEAF2:       JPTYPE("cJL_JPLEAF2"); POP2;            break;
-        case cJL_JPLEAF3:       JPTYPE("cJL_JPLEAF3"); POP3;            break;
-#ifdef JU_64BIT
-        case cJL_JPLEAF4:       JPTYPE("cJL_JPLEAF4"); POP4;            break;
-        case cJL_JPLEAF5:       JPTYPE("cJL_JPLEAF5"); POP5;            break;
-        case cJL_JPLEAF6:       JPTYPE("cJL_JPLEAF6"); POP6;            break;
-        case cJL_JPLEAF7:       JPTYPE("cJL_JPLEAF7"); POP7;            break;
-#endif
-
-        case cJL_JPLEAF_B1:     JPTYPE("cJL_JPLEAF_B1"); POP1;  break;
-
-        case cJL_JPIMMED_1_01:  JPTYPE("cJL_JPIMMED_1_01"); POP_1;      break;
-        case cJL_JPIMMED_2_01:  JPTYPE("cJL_JPIMMED_2_01"); POP_1;      break;
-        case cJL_JPIMMED_3_01:  JPTYPE("cJL_JPIMMED_3_01"); POP_1;      break;
-#ifdef JU_64BIT
-        case cJL_JPIMMED_4_01:  JPTYPE("cJL_JPIMMED_4_01"); POP_1;      break;
-        case cJL_JPIMMED_5_01:  JPTYPE("cJL_JPIMMED_5_01"); POP_1;      break;
-        case cJL_JPIMMED_6_01:  JPTYPE("cJL_JPIMMED_6_01"); POP_1;      break;
-        case cJL_JPIMMED_7_01:  JPTYPE("cJL_JPIMMED_7_01"); POP_1;      break;
-#endif
-
-        case cJL_JPIMMED_1_02:  JPTYPE("cJL_JPIMMED_1_02"); POP_2;      break;
-        case cJL_JPIMMED_1_03:  JPTYPE("cJL_JPIMMED_1_03"); POP_3;      break;
-#ifdef JU_64BIT
-        case cJL_JPIMMED_1_04:  JPTYPE("cJL_JPIMMED_1_04"); POP_4;      break;
-        case cJL_JPIMMED_1_05:  JPTYPE("cJL_JPIMMED_1_05"); POP_5;      break;
-        case cJL_JPIMMED_1_06:  JPTYPE("cJL_JPIMMED_1_06"); POP_6;      break;
-        case cJL_JPIMMED_1_07:  JPTYPE("cJL_JPIMMED_1_07"); POP_7;      break;
-        case cJL_JPIMMED_2_02:  JPTYPE("cJL_JPIMMED_2_02"); POP_2;      break;
-        case cJL_JPIMMED_2_03:  JPTYPE("cJL_JPIMMED_2_03"); POP_3;      break;
-        case cJL_JPIMMED_3_02:  JPTYPE("cJL_JPIMMED_3_02"); POP_2;      break;
-#endif
-        case cJL_JPIMMED_CAP:   JPTYPE("cJL_JPIMMED_CAP");      OOPS;
-
-#endif // JUDYL
-
-        default:  printf("Unknown Type = %d", JU_JPTYPE(Pjp));          OOPS;
-        }
-
-        if (j__udyIndex)        printf("Index = 0x%lx", j__udyIndex);
-        if (j__udyPopulation)   printf("Pop = %lu",     j__udyPopulation);
-
-        printf("line = %d\n", Line);
-
-} // JudyPrintJP()
diff --git a/libs/klib/judy/JudyPrivate.h b/libs/klib/judy/JudyPrivate.h
deleted file mode 100644
index 0d0c5f3..0000000
--- a/libs/klib/judy/JudyPrivate.h
+++ /dev/null
@@ -1,1610 +0,0 @@
-#ifndef _JUDYPRIVATE_INCLUDED
-#define _JUDYPRIVATE_INCLUDED
-// _________________
-//
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Header file for all Judy sources, for global but private (non-exported)
-// declarations.
-
-#include "Judy.h"
-
-// ****************************************************************************
-// A VERY BRIEF EXPLANATION OF A JUDY ARRAY
-//
-// A Judy array is, effectively, a digital tree (or Trie) with 256 element
-// branches (nodes), and with "compression tricks" applied to low-population
-// branches or leaves to save a lot of memory at the cost of relatively little
-// CPU time or cache fills.
-//
-// In the actual implementation, a Judy array is level-less, and traversing the
-// "tree" actually means following the states in a state machine (SM) as
-// directed by the Index.  A Judy array is referred to here as an "SM", rather
-// than as a "tree"; having "states", rather than "levels".
-//
-// Each branch or leaf in the SM decodes a portion ("digit") of the original
-// Index; with 256-way branches there are 8 bits per digit.  There are 3 kinds
-// of branches, called:  Linear, Bitmap and Uncompressed, of which the first 2
-// are compressed to contain no NULL entries.
-//
-// An Uncompressed branch has a 1.0 cache line fill cost to decode 8 bits of
-// (digit, part of an Index), but it might contain many NULL entries, and is
-// therefore inefficient with memory if lightly populated.
-//
-// A Linear branch has a ~1.75 cache line fill cost when at maximum population.
-// A Bitmap branch has ~2.0 cache line fills.  Linear and Bitmap branches are
-// converted to Uncompressed branches when the additional memory can be
-// amortized with larger populations.  Higher-state branches have higher
-// priority to be converted.
-//
-// Linear branches can hold 28 elements (based on detailed analysis) -- thus 28
-// expanses.  A Linear branch is converted to a Bitmap branch when the 29th
-// expanse is required.
-//
-// A Bitmap branch could hold 256 expanses, but is forced to convert to an
-// Uncompressed branch when 185 expanses are required.  Hopefully, it is
-// converted before that because of population growth (again, based on detailed
-// analysis and heuristics in the code).
-//
-// A path through the SM terminates to a leaf when the Index (or key)
-// population in the expanse below a pointer will fit into 1 or 2 cache lines
-// (~31..255 Indexes).  A maximum-population Leaf has ~1.5 cache line fill
-// cost.
-//
-// Leaves are sorted arrays of Indexes, where the Index Sizes (IS) are:  0, 1,
-// 8, 16, 24, 32, [40, 48, 56, 64] bits.  The IS depends on the "density"
-// (population/expanse) of the values in the Leaf.  Zero bits are possible if
-// population == expanse in the SM (that is, a full small expanse).
-//
-// Elements of a branches are called Judy Pointers (JPs).  Each JP object
-// points to the next object in the SM, plus, a JP can decode an additional
-// 2[6] bytes of an Index, but at the cost of "narrowing" the expanse
-// represented by the next object in the SM.  A "narrow" JP (one which has
-// decode bytes/digits) is a way of skipping states in the SM.
-//
-// Although counterintuitive, we think a Judy SM is optimal when the Leaves are
-// stored at MINIMUM compression (narrowing, or use of Decode bytes).  If more
-// aggressive compression was used, decompression of a leaf be required to
-// insert an index.  Additional compression would save a little memory but not
-// help performance significantly.
-
-
-#ifdef A_PICTURE_IS_WORTH_1000_WORDS
-*******************************************************************************
-
-JUDY 32-BIT STATE MACHINE (SM) EXAMPLE, FOR INDEX = 0x02040103
-
-The Index used in this example is purposely chosen to allow small, simple
-examples below; each 1-byte "digit" from the Index has a small numeric value
-that fits in one column.  In the drawing below:
-
-   JRP  == Judy Root Pointer;
-
-    C   == 1 byte of a 1..3 byte Population (count of Indexes) below this
-           pointer.  Since this is shared with the Decode field, the combined
-           sizes must be 3[7], that is, 1 word less 1 byte for the JP Type.
-
-   The 1-byte field jp_Type is represented as:
-
-   1..3 == Number of bytes in the population (Pop0) word of the Branch or Leaf
-           below the pointer (note:  1..7 on 64-bit); indicates:
-           - number of bytes in Decode field == 3 - this number;
-           - number of bytes remaining to decode.
-           Note:  The maximum is 3, not 4, because the 1st byte of the Index is
-           always decoded digitally in the top branch.
-   -B-  == JP points to a Branch (there are many kinds of Branches).
-   -L-  == JP points to a Leaf (there are many kinds of Leaves).
-
-   (2)  == Digit of Index decoded by position offset in branch (really
-           0..0xff).
-
-    4*  == Digit of Index necessary for decoding a "narrow" pointer, in a
-           Decode field; replaces 1 missing branch (really 0..0xff).
-
-    4+  == Digit of Index NOT necessary for decoding a "narrow" pointer, but
-           used for fast traversal of the SM by Judy1Test() and JudyLGet()
-           (see the code) (really 0..0xff).
-
-    0   == Byte in a JPs Pop0 field that is always ignored, because a leaf
-           can never contain more than 256 Indexes (Pop0 <= 255).
-
-    +-----  == A Branch or Leaf; drawn open-ended to remind you that it could
-    |          have up to 256 columns.
-    +-----
-
-    |
-    |   == Pointer to next Branch or Leaf.
-    V
-
-    |
-    O   == A state is skipped by using a "narrow" pointer.
-    |
-
-    < 1 > == Digit (Index) shown as an example is not necessarily in the
-             position shown; is sorted in order with neighbor Indexes.
-             (Really 0..0xff.)
-
-Note that this example shows every possibly topology to reach a leaf in a
-32-bit Judy SM, although this is a very subtle point!
-
-                                                                          STATE or`
-                                                                          LEVEL
-     +---+    +---+    +---+    +---+    +---+    +---+    +---+    +---+
-     |RJP|    |RJP|    |RJP|    |RJP|    |RJP|    |RJP|    |RJP|    |RJP|
-     L---+    B---+    B---+    B---+    B---+    B---+    B---+    B---+
-     |        |        |        |        |        |        |        |
-     |        |        |        |        |        |        |        |
-     V        V (2)    V (2)    V (2)    V (2)    V (2)    V (2)    V (2)
-     +------  +------  +------  +------  +------  +------  +------  +------
-Four |< 2 >   |  0     |  4*    |  C     |  4*    |  4*    |  C     |  C
-byte |< 4 >   |  0     |  0     |  C     |  1*    |  C     |  C     |  C     4
-Index|< 1 >   |  C     |  C     |  C     |  C     |  C     |  C     |  C
-Leaf |< 3 >   |  3     |  2     |  3     |  1     |  2     |  3     |  3
-     +------  +--L---  +--L---  +--B---  +--L---  +--B---  +--B---  +--B---
-                 |        |        |        |        |        |        |
-                /         |       /         |        |       /        /
-               /          |      /          |        |      /        /
-              |           |     |           |        |     |        |
-              V           |     V   (4)     |        |     V   (4)  V   (4)
-              +------     |     +------     |        |     +------  +------
-    Three     |< 4 >      |     |    4+     |        |     |    4+  |    4+
-    byte Index|< 1 >      O     |    0      O        O     |    1*  |    C   3
-    Leaf      |< 3 >      |     |    C      |        |     |    C   |    C
-              +------     |     |    2      |        |     |    1   |    2
-                         /      +----L-     |        |     +----L-  +----B-
-                        /            |      |        |          |        |
-                       |            /       |       /          /        /
-                       |           /        |      /          /        /
-                       |          /         |     |          /        /
-                       |         /          |     |         /        /
-                       |        |           |     |        |        |
-                       V        V           |     V(1)     |        V(1)
-                       +------  +------     |     +------  |        +------
-          Two byte     |< 1 >   |< 1 >      |     | 4+     |        | 4+
-          Index Leaf   |< 3 >   |< 3 >      O     | 1+     O        | 1+     2
-                       +------  +------    /      | C      |        | C
-                                          /       | 1      |        | 1
-                                         |        +-L----  |        +-L----
-                                         |          |      |          |
-                                         |         /       |         /
-                                         |        |        |        |
-                                         V        V        V        V
-                                         +------  +------  +------  +------
-                    One byte Index Leaf  |< 3 >   |< 3 >   |< 3 >   |< 3 >   1
-                                         +------  +------  +------  +------
-
-
-#endif // A_PICTURE_IS_WORTH_1000_WORDS
-
-
-// ****************************************************************************
-// MISCELLANEOUS GLOBALS:
-//
-// PLATFORM-SPECIFIC CONVENIENCE MACROS:
-//
-// These are derived from context (set by cc or in system header files) or
-// based on JU_<PLATFORM> macros from make_includes/platform.*.mk.  We decided
-// on 011018 that any macro reliably derivable from context (cc or headers) for
-// ALL platforms supported by Judy is based on that derivation, but ANY
-// exception means to stop using the external macro completely and derive from
-// JU_<PLATFORM> instead.
-
-// Other miscellaneous stuff:
-
-#ifndef _BOOL_T
-#define _BOOL_T
-typedef int bool_t;
-#endif
-
-#define FUNCTION                // null; easy to find functions.
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifdef TRACE            // turn on all other tracing in the code:
-#define TRACEJP  1      // JP traversals in JudyIns.c and JudyDel.c.
-#define TRACEJPR 1      // JP traversals in retrieval code, JudyGet.c.
-#define TRACECF  1      // cache fills in JudyGet.c.
-#define TRACEMI  1      // malloc calls in JudyMallocIF.c.
-#define TRACEMF  1      // malloc calls at a lower level in JudyMalloc.c.
-#endif
-
-#ifndef inline
-    #define inline __inline__
-#endif
-
-// SUPPORT FOR DEBUG-ONLY CODE:
-//
-// By convention, use -DDEBUG to enable both debug-only code AND assertions in
-// the Judy sources.
-//
-// Invert the sense of assertions, so they are off unless explicitly requested,
-// in a uniform way.
-//
-// Note:  It is NOT appropriate to put this in Judy.h; it would mess up
-// application code.
-
-#ifndef DEBUG
-#define NDEBUG 1                // must be 1 for "#if".
-#endif
-
-// Shorthand notations to avoid #ifdefs for single-line conditional statements:
-//
-// Warning:  These cannot be used around compiler directives, such as
-// "#include", nor in the case where Code contains a comma other than nested
-// within parentheses or quotes.
-
-#define DBGCODE(Code)  /* nothing */
-
-#ifdef JUDY1
-#define JUDY1CODE(Code) Code
-#define JUDYLCODE(Code) // null.
-#endif
-
-#ifdef JUDYL
-#define JUDYLCODE(Code) Code
-#define JUDY1CODE(Code) // null.
-#endif
-
-#include <assert.h>
-
-// ****************************************************************************
-// FUNDAMENTAL CONSTANTS FOR MACHINE
-// ****************************************************************************
-
-// Machine (CPU) cache line size:
-//
-// NOTE:  A leaf size of 2 cache lines maximum is the target (optimal) for
-// Judy.  Its hard to obtain a machines cache line size at compile time, but
-// if the machine has an unexpected cache line size, its not devastating if
-// the following constants end up causing leaves that are 1 cache line in size,
-// or even 4 cache lines in size.  The assumed 32-bit system has 16-word =
-// 64-byte cache lines, and the assumed 64-bit system has 16-word = 128-byte
-// cache lines.
-
-#ifdef JU_64BIT
-#define cJU_BYTESPERCL 128              // cache line size in bytes.
-#else
-#define cJU_BYTESPERCL  64              // cache line size in bytes.
-#endif
-
-// Bits Per Byte:
-
-#define cJU_BITSPERBYTE 0x8
-
-// Bytes Per Word and Bits Per Word, latter assuming sizeof(byte) is 8 bits:
-//
-// Expect 32 [64] bits per word.
-
-#define cJU_BYTESPERWORD (sizeof(Word_t))
-#define cJU_BITSPERWORD  (sizeof(Word_t) * cJU_BITSPERBYTE)
-
-#define JU_BYTESTOWORDS(BYTES) \
-        (((BYTES) + cJU_BYTESPERWORD - 1) / cJU_BYTESPERWORD)
-
-// A word that is all-ones, normally equal to -1UL, but safer with ~0:
-
-#define cJU_ALLONES  (~ ( Word_t ) 0UL)
-
-// Note, these are forward references, but thats OK:
-
-#define cJU_FULLBITMAPB ((BITMAPB_t) cJU_ALLONES)
-#define cJU_FULLBITMAPL ((BITMAPL_t) cJU_ALLONES)
-
-
-// ****************************************************************************
-// MISCELLANEOUS JUDY-SPECIFIC DECLARATIONS
-// ****************************************************************************
-
-// ROOT STATE:
-//
-// State at the start of the Judy SM, based on 1 byte decoded per state; equal
-// to the number of bytes per Index to decode.
-
-#define cJU_ROOTSTATE (sizeof(Word_t))
-
-
-// SUBEXPANSES PER STATE:
-//
-// Number of subexpanses per state traversed, which is the number of JPs in a
-// branch (actual or theoretical) and the number of bits in a bitmap.
-
-#define cJU_SUBEXPPERSTATE  256
-
-
-// LEAF AND VALUE POINTERS:
-//
-// Some other basic object types are in declared in JudyPrivateBranch.h
-// (Pjbl_t, Pjbb_t, Pjbu_t, Pjp_t) or are Judy1/L-specific (Pjlb_t).  The
-// few remaining types are declared below.
-//
-// Note:  Leaf pointers are cast to different-sized objects depending on the
-// leafs level, but are at least addresses (not just numbers), so use void *
-// (Pvoid_t), not PWord_t or Word_t for them, except use Pjlw_t for whole-word
-// (top-level, root-level) leaves.  Value areas, however, are always whole
-// words.
-//
-// Furthermore, use Pjll_t only for generic leaf pointers (for various size
-// LeafLs).  Use Pjlw_t for LeafWs.  Use Pleaf (with type uint8_t *, uint16_t
-// *, etc) when the leaf index size is known.
-
-typedef PWord_t Pjlw_t;  // pointer to root-level leaf (whole-word indexes).
-typedef Pvoid_t Pjll_t;  // pointer to lower-level linear leaf.
-
-#ifdef JUDYL
-typedef PWord_t Pjv_t;   // pointer to JudyL value area.
-#endif
-
-
-// POINTER PREPARATION MACROS:
-//
-// These macros are used to strip malloc-namespace-type bits from a pointer +
-// malloc-type word (which references any Judy mallocd object that might be
-// obtained from other than a direct call of malloc()), prior to dereferencing
-// the pointer as an address.  The malloc-type bits allow Judy mallocd objects
-// to come from different "malloc() namespaces".
-//
-//    (root pointer)    (JRP, see above)
-//    jp.jp_Addr        generic pointer to next-level node, except when used
-//                      as a JudyL Immed01 value area
-//    JU_JBB_PJP        macro hides jbbs_Pjp (pointer to JP subarray)
-//    JL_JLB_PVALUE     macro hides jLlbs_PValue (pointer to value subarray)
-//
-// When setting one of these fields or passing an address to j__udyFree*(), the
-// "raw" memory address is used; otherwise the memory address must be passed
-// through one of the macros below before its dereferenced.
-//
-// Note:  After much study, the typecasts below appear in the macros rather
-// than at the point of use, which is both simpler and allows the compiler to
-// do type-checking.
-
-
-#define P_JLW(  ADDR) ((Pjlw_t) (ADDR))  // root leaf.
-#define P_JPM(  ADDR) ((Pjpm_t) (ADDR))  // root JPM.
-#define P_JBL(  ADDR) ((Pjbl_t) (ADDR))  // BranchL.
-#define P_JBB(  ADDR) ((Pjbb_t) (ADDR))  // BranchB.
-#define P_JBU(  ADDR) ((Pjbu_t) (ADDR))  // BranchU.
-#define P_JLL(  ADDR) ((Pjll_t) (ADDR))  // LeafL.
-#define P_JLB(  ADDR) ((Pjlb_t) (ADDR))  // LeafB1.
-#define P_JP(   ADDR) ((Pjp_t)  (ADDR))  // JP.
-
-#ifdef JUDYL
-#define P_JV(   ADDR) ((Pjv_t)  (ADDR))  // &value.
-#endif
-
-
-// LEAST BYTES:
-//
-// Mask for least bytes of a word, and a macro to perform this mask on an
-// Index.
-//
-// Note:  This macro has been problematic in the past to get right and to make
-// portable.  Its not OK on all systems to shift by the full word size.  This
-// macro should allow shifting by 1..N bytes, where N is the word size, but
-// should produce a compiler warning if the macro is called with Bytes == 0.
-//
-// Warning:  JU_LEASTBYTESMASK() is not a constant macro unless Bytes is a
-// constant; otherwise it is a variable shift, which is expensive on some
-// processors.
-
-#define JU_LEASTBYTESMASK(BYTES) \
-        (((Word_t)0x100 << (cJU_BITSPERBYTE * ((BYTES) - 1))) - 1)
-
-#define JU_LEASTBYTES(INDEX,BYTES)  ((INDEX) & JU_LEASTBYTESMASK(BYTES))
-
-
-// BITS IN EACH BITMAP SUBEXPANSE FOR BITMAP BRANCH AND LEAF:
-//
-// The bits per bitmap subexpanse times the number of subexpanses equals a
-// constant (cJU_SUBEXPPERSTATE).  You can also think of this as a compile-time
-// choice of "aspect ratio" for bitmap branches and leaves (which can be set
-// independently for each).
-//
-// A default aspect ratio is hardwired here if not overridden at compile time,
-// such as by "EXTCCOPTS=-DBITMAP_BRANCH16x16 make".
-
-#if (! (defined(BITMAP_BRANCH8x32) || defined(BITMAP_BRANCH16x16) || defined(BITMAP_BRANCH32x8)))
-#define BITMAP_BRANCH32x8 1     // 32 bits per subexpanse, 8 subexpanses.
-#endif
-
-#ifdef BITMAP_BRANCH8x32
-#define BITMAPB_t uint8_t
-#endif
-
-#ifdef BITMAP_BRANCH16x16
-#define BITMAPB_t uint16_t
-#endif
-
-#ifdef BITMAP_BRANCH32x8
-#define BITMAPB_t uint32_t
-#endif
-
-// Note:  For bitmap leaves, BITMAP_LEAF64x4 is only valid for 64 bit:
-//
-// Note:  Choice of aspect ratio mostly matters for JudyL bitmap leaves.  For
-// Judy1 the choice doesnt matter much -- the code generated for different
-// BITMAP_LEAF* values choices varies, but correctness and performance are the
-// same.
-
-#ifndef JU_64BIT
-
-#if (! (defined(BITMAP_LEAF8x32) || defined(BITMAP_LEAF16x16) || defined(BITMAP_LEAF32x8)))
-#define BITMAP_LEAF32x8         // 32 bits per subexpanse, 8 subexpanses.
-#endif
-
-#else // 32BIT
-
-#if (! (defined(BITMAP_LEAF8x32) || defined(BITMAP_LEAF16x16) || defined(BITMAP_LEAF32x8) || defined(BITMAP_LEAF64x4)))
-#define BITMAP_LEAF64x4         // 64 bits per subexpanse, 4 subexpanses.
-
-#endif
-#endif // JU_64BIT
-
-#ifdef BITMAP_LEAF8x32
-#define BITMAPL_t uint8_t
-#endif
-
-#ifdef BITMAP_LEAF16x16
-#define BITMAPL_t uint16_t
-#endif
-
-#ifdef BITMAP_LEAF32x8
-#define BITMAPL_t uint32_t
-#endif
-
-#ifdef BITMAP_LEAF64x4
-#define BITMAPL_t uint64_t
-#endif
-
-
-// EXPORTED DATA AND FUNCTIONS:
-
-#ifdef JUDY1
-extern const uint8_t j__1_BranchBJPPopToWords[];
-#endif
-
-#ifdef JUDYL
-extern const uint8_t j__L_BranchBJPPopToWords[];
-#endif
-
-// Fast LeafL search routine used for inlined code:
-
-#if (! defined(SEARCH_BINARY)) || (! defined(SEARCH_LINEAR))
-// default a binary search leaf method
-#define SEARCH_BINARY 1
-//#define SEARCH_LINEAR 1
-#endif
-
-#ifdef SEARCH_LINEAR
-
-#define SEARCHLEAFNATIVE(LEAFTYPE,ADDR,POP1,INDEX)              \
-    LEAFTYPE *P_leaf = (LEAFTYPE *)(ADDR);                      \
-    LEAFTYPE  I_ndex = (INDEX); /* with masking */              \
-    if (I_ndex > P_leaf[(POP1) - 1]) return(~(POP1));           \
-    while(I_ndex > *P_leaf) P_leaf++;                           \
-    if (I_ndex == *P_leaf) return(P_leaf - (LEAFTYPE *)(ADDR)); \
-    return(~(P_leaf - (LEAFTYPE *)(ADDR)));
-
-
-#define SEARCHLEAFNONNAT(ADDR,POP1,INDEX,LFBTS,COPYINDEX)       \
-{                                                               \
-    uint8_t *P_leaf, *P_leafEnd;                                \
-    Word_t   i_ndex;                                            \
-    Word_t   I_ndex = JU_LEASTBYTES((INDEX), (LFBTS));          \
-    Word_t   p_op1;                                             \
-                                                                \
-    P_leaf    = (uint8_t *)(ADDR);                              \
-    P_leafEnd = P_leaf + ((POP1) * (LFBTS));                    \
-                                                                \
-    do {                                                        \
-        JU_COPY3_PINDEX_TO_LONG(i_ndex, P_leaf);                \
-        if (I_ndex <= i_ndex) break;                            \
-        P_leaf += (LFBTS);                                      \
-    } while (P_leaf < P_leafEnd);                               \
-                                                                \
-    p_op1 = (P_leaf - (uint8_t *) (ADDR)) / (LFBTS);            \
-    if (I_ndex == i_ndex) return(p_op1);                        \
-    return(~p_op1);                                             \
-}
-#endif // SEARCH_LINEAR
-
-#ifdef SEARCH_BINARY
-
-#define SEARCHLEAFNATIVE(LEAFTYPE,ADDR,POP1,INDEX)              \
-    LEAFTYPE *P_leaf = (LEAFTYPE *)(ADDR);                      \
-    LEAFTYPE I_ndex = (LEAFTYPE)INDEX; /* truncate hi bits */   \
-    Word_t   l_ow   = cJU_ALLONES;                              \
-    Word_t   m_id;                                              \
-    Word_t   h_igh  = POP1;                                     \
-                                                                \
-    while ((h_igh - l_ow) > 1UL)                                \
-    {                                                           \
-        m_id = (h_igh + l_ow) / 2;                              \
-        if (P_leaf[m_id] > I_ndex)                              \
-            h_igh = m_id;                                       \
-        else                                                    \
-            l_ow = m_id;                                        \
-    }                                                           \
-    if (l_ow == cJU_ALLONES || P_leaf[l_ow] != I_ndex)          \
-        return(~h_igh);                                         \
-    return(l_ow)
-
-
-#define SEARCHLEAFNONNAT(ADDR,POP1,INDEX,LFBTS,COPYINDEX)       \
-    uint8_t *P_leaf = (uint8_t *)(ADDR);                        \
-    Word_t   l_ow   = cJU_ALLONES;                              \
-    Word_t   m_id;                                              \
-    Word_t   h_igh  = POP1;                                     \
-    Word_t   I_ndex = JU_LEASTBYTES((INDEX), (LFBTS));          \
-    Word_t   i_ndex;                                            \
-                                                                \
-    I_ndex = JU_LEASTBYTES((INDEX), (LFBTS));                   \
-                                                                \
-    while ((h_igh - l_ow) > 1UL)                                \
-    {                                                           \
-        m_id = (h_igh + l_ow) / 2;                              \
-        COPYINDEX(i_ndex, &P_leaf[m_id * (LFBTS)]);             \
-        if (i_ndex > I_ndex)                                    \
-            h_igh = m_id;                                       \
-        else                                                    \
-            l_ow = m_id;                                        \
-    }                                                           \
-    if (l_ow == cJU_ALLONES) return(~h_igh);                    \
-                                                                \
-    COPYINDEX(i_ndex, &P_leaf[l_ow * (LFBTS)]);                 \
-    if (i_ndex != I_ndex) return(~h_igh);                       \
-    return(l_ow)
-
-#endif // SEARCH_BINARY
-
-// Fast way to count bits set in 8..32[64]-bit int:
-//
-// For performance, j__udyCountBits*() are written to take advantage of
-// platform-specific features where available.
-//
-
-#ifdef JU_NOINLINE
-
-extern BITMAPB_t j__udyCountBitsB(BITMAPB_t word);
-extern BITMAPL_t j__udyCountBitsL(BITMAPL_t word);
-
-// Compiler supports inline
-
-#elif  defined(JU_HPUX_IPF)
-
-#define j__udyCountBitsB(WORD)  _Asm_popcnt(WORD)
-#define j__udyCountBitsL(WORD)  _Asm_popcnt(WORD)
-
-#elif defined(JU_LINUX_IPF)
-
-static inline BITMAPB_t j__udyCountBitsB(BITMAPB_t word)
-{
-        BITMAPB_t result;
-        __asm__ ("popcnt %0=%1" : "=r" (result) : "r" (word));
-        return(result);
-}
-
-static inline BITMAPL_t j__udyCountBitsL(BITMAPL_t word)
-{
-        BITMAPL_t result;
-        __asm__ ("popcnt %0=%1" : "=r" (result) : "r" (word));
-        return(result);
-}
-
-
-#else // No instructions available, use inline code
-
-// ****************************************************************************
-// __ J U D Y   C O U N T   B I T S   B
-//
-// Return the number of bits set in "Word", for a bitmap branch.
-//
-// Note:  Bitmap branches have maximum bitmap size = 32 bits.
-
-#ifdef JU_WIN
-static __inline BITMAPB_t j__udyCountBitsB(BITMAPB_t word)
-#else
-static inline BITMAPB_t j__udyCountBitsB(BITMAPB_t word)
-#endif 
-{
-        word = (word & 0x55555555) + ((word & 0xAAAAAAAA) >>  1);
-        word = (word & 0x33333333) + ((word & 0xCCCCCCCC) >>  2);
-        word = (word & 0x0F0F0F0F) + ((word & 0xF0F0F0F0) >>  4); // >= 8 bits.
-#if defined(BITMAP_BRANCH16x16) || defined(BITMAP_BRANCH32x8)
-        word = (word & 0x00FF00FF) + ((word & 0xFF00FF00) >>  8); // >= 16 bits.
-#endif
-
-#ifdef BITMAP_BRANCH32x8
-        word = (word & 0x0000FFFF) + ((word & 0xFFFF0000) >> 16); // >= 32 bits.
-#endif
-        return(word);
-
-} // j__udyCountBitsB()
-
-
-// ****************************************************************************
-// __ J U D Y   C O U N T   B I T S   L
-//
-// Return the number of bits set in "Word", for a bitmap leaf.
-//
-// Note:  Bitmap branches have maximum bitmap size = 32 bits.
-
-// Note:  Need both 32-bit and 64-bit versions of j__udyCountBitsL() because
-// bitmap leaves can have 64-bit bitmaps.
-
-#ifdef JU_WIN
-static __inline BITMAPL_t j__udyCountBitsL(BITMAPL_t word)
-#else
-static inline BITMAPL_t j__udyCountBitsL(BITMAPL_t word)
-#endif
-{
-#ifndef JU_64BIT
-
-        word = (word & 0x55555555) + ((word & 0xAAAAAAAA) >>  1);
-        word = (word & 0x33333333) + ((word & 0xCCCCCCCC) >>  2);
-        word = (word & 0x0F0F0F0F) + ((word & 0xF0F0F0F0) >>  4); // >= 8 bits.
-#if defined(BITMAP_LEAF16x16) || defined(BITMAP_LEAF32x8)
-        word = (word & 0x00FF00FF) + ((word & 0xFF00FF00) >>  8); // >= 16 bits.
-#endif
-#ifdef BITMAP_LEAF32x8
-        word = (word & 0x0000FFFF) + ((word & 0xFFFF0000) >> 16); // >= 32 bits.
-#endif
-
-#else // JU_64BIT
-
-        word = (word & 0x5555555555555555) + ((word & 0xAAAAAAAAAAAAAAAA) >> 1);
-        word = (word & 0x3333333333333333) + ((word & 0xCCCCCCCCCCCCCCCC) >> 2);
-        word = (word & 0x0F0F0F0F0F0F0F0F) + ((word & 0xF0F0F0F0F0F0F0F0) >> 4);
-#if defined(BITMAP_LEAF16x16) || defined(BITMAP_LEAF32x8) || defined(BITMAP_LEAF64x4)
-        word = (word & 0x00FF00FF00FF00FF) + ((word & 0xFF00FF00FF00FF00) >> 8);
-#endif
-#if defined(BITMAP_LEAF32x8) || defined(BITMAP_LEAF64x4)
-        word = (word & 0x0000FFFF0000FFFF) + ((word & 0xFFFF0000FFFF0000) >>16);
-#endif
-#ifdef BITMAP_LEAF64x4
-        word = (word & 0x00000000FFFFFFFF) + ((word & 0xFFFFFFFF00000000) >>32);
-#endif
-#endif // JU_64BIT
-
-        return(word);
-
-} // j__udyCountBitsL()
-
-#endif // Compiler supports inline
-
-// GET POP0:
-//
-// Get from jp_DcdPopO the Pop0 for various JP Types.
-//
-// Notes:
-//
-// - Different macros require different parameters...
-//
-// - There are no simple macros for cJU_BRANCH* Types because their
-//   populations must be added up and dont reside in an already-calculated
-//   place.  (TBD:  This is no longer true, now its in the JPM.)
-//
-// - cJU_JPIMM_POP0() is not defined because it would be redundant because the
-//   Pop1 is already encoded in each enum name.
-//
-// - A linear or bitmap leaf Pop0 cannot exceed cJU_SUBEXPPERSTATE - 1 (Pop0 =
-//   0..255), so use a simpler, faster macro for it than for other JP Types.
-//
-// - Avoid any complex calculations that would slow down the compiled code.
-//   Assume these macros are only called for the appropriate JP Types.
-//   Unfortunately theres no way to trigger an assertion here if the JP type
-//   is incorrect for the macro, because these are merely expressions, not
-//   statements.
-
-#define  JU_LEAFW_POP0(JRP)                  (*P_JLW(JRP))
-#define cJU_JPFULLPOPU1_POP0                 (cJU_SUBEXPPERSTATE - 1)
-
-// GET JP Type:
-// Since bit fields greater than 32 bits are not supported in some compilers
-// the jp_DcdPopO field is expanded to include the jp_Type in the high 8 bits
-// of the Word_t.
-// First the read macro:
-
-#define JU_JPTYPE(PJP)          ((PJP)->jp_Type)
-
-#define JU_JPLEAF_POP0(PJP)     ((PJP)->jp_DcdP0[sizeof(Word_t) - 2])
-
-#ifdef JU_64BIT
-
-#define JU_JPDCDPOP0(PJP)               \
-    ((Word_t)(PJP)->jp_DcdP0[0] << 48 | \
-     (Word_t)(PJP)->jp_DcdP0[1] << 40 | \
-     (Word_t)(PJP)->jp_DcdP0[2] << 32 | \
-     (Word_t)(PJP)->jp_DcdP0[3] << 24 | \
-     (Word_t)(PJP)->jp_DcdP0[4] << 16 | \
-     (Word_t)(PJP)->jp_DcdP0[5] <<  8 | \
-     (Word_t)(PJP)->jp_DcdP0[6])
-
-
-#define JU_JPSETADT(PJP,ADDR,DCDPOP0,TYPE)                      \
-{                                                               \
-    (PJP)->jp_Addr     = (ADDR);                                \
-    (PJP)->jp_DcdP0[0] = (uint8_t)((Word_t)(DCDPOP0) >> 48);    \
-    (PJP)->jp_DcdP0[1] = (uint8_t)((Word_t)(DCDPOP0) >> 40);    \
-    (PJP)->jp_DcdP0[2] = (uint8_t)((Word_t)(DCDPOP0) >> 32);    \
-    (PJP)->jp_DcdP0[3] = (uint8_t)((Word_t)(DCDPOP0) >> 24);    \
-    (PJP)->jp_DcdP0[4] = (uint8_t)((Word_t)(DCDPOP0) >> 16);    \
-    (PJP)->jp_DcdP0[5] = (uint8_t)((Word_t)(DCDPOP0) >>  8);    \
-    (PJP)->jp_DcdP0[6] = (uint8_t)((Word_t)(DCDPOP0));          \
-    (PJP)->jp_Type     = (TYPE);                                \
-}
-
-#else   // 32 Bit
-
-#define JU_JPDCDPOP0(PJP)               \
-    ((Word_t)(PJP)->jp_DcdP0[0] << 16 | \
-     (Word_t)(PJP)->jp_DcdP0[1] <<  8 | \
-     (Word_t)(PJP)->jp_DcdP0[2])
-
-
-#define JU_JPSETADT(PJP,ADDR,DCDPOP0,TYPE)                      \
-{                                                               \
-    (PJP)->jp_Addr     = (ADDR);                                \
-    (PJP)->jp_DcdP0[0] = (uint8_t)((Word_t)(DCDPOP0) >> 16);    \
-    (PJP)->jp_DcdP0[1] = (uint8_t)((Word_t)(DCDPOP0) >>  8);    \
-    (PJP)->jp_DcdP0[2] = (uint8_t)((Word_t)(DCDPOP0));          \
-    (PJP)->jp_Type     = (TYPE);                                \
-}
-
-#endif  // 32 Bit
-
-// NUMBER OF BITS IN A BRANCH OR LEAF BITMAP AND SUBEXPANSE:
-//
-// Note:  cJU_BITSPERBITMAP must be the same as the number of JPs in a branch.
-
-#define cJU_BITSPERBITMAP cJU_SUBEXPPERSTATE
-
-// Bitmaps are accessed in units of "subexpanses":
-
-#define cJU_BITSPERSUBEXPB  (sizeof(BITMAPB_t) * cJU_BITSPERBYTE)
-#define cJU_NUMSUBEXPB      (cJU_BITSPERBITMAP / cJU_BITSPERSUBEXPB)
-
-#define cJU_BITSPERSUBEXPL  (sizeof(BITMAPL_t) * cJU_BITSPERBYTE)
-#define cJU_NUMSUBEXPL      (cJU_BITSPERBITMAP / cJU_BITSPERSUBEXPL)
-
-
-// MASK FOR A SPECIFIED BIT IN A BITMAP:
-//
-// Warning:  If BitNum is a variable, this results in a variable shift that is
-// expensive, at least on some processors.  Use with caution.
-//
-// Warning:  BitNum must be less than cJU_BITSPERWORD, that is, 0 ..
-// cJU_BITSPERWORD - 1, to avoid a truncated shift on some machines.
-//
-// TBD:  Perhaps use an array[32] of masks instead of calculating them.
-
-#define JU_BITPOSMASKB(BITNUM) ((Word_t)1 << ((BITNUM) % cJU_BITSPERSUBEXPB))
-#define JU_BITPOSMASKL(BITNUM) ((Word_t)1 << ((BITNUM) % cJU_BITSPERSUBEXPL))
-
-
-// TEST/SET/CLEAR A BIT IN A BITMAP LEAF:
-//
-// Test if a byte-sized Digit (portion of Index) has a corresponding bit set in
-// a bitmap, or set a byte-sized Digits bit into a bitmap, by looking up the
-// correct subexpanse and then checking/setting the correct bit.
-//
-// Note:  Mask higher bits, if any, for the convenience of the user of this
-// macro, in case they pass a full Index, not just a digit.  If the caller has
-// a true 8-bit digit, make it of type uint8_t and the compiler should skip the
-// unnecessary mask step.
-
-#define JU_SUBEXPL(DIGIT) (((DIGIT) / cJU_BITSPERSUBEXPL) & (cJU_NUMSUBEXPL-1))
-
-#define JU_BITMAPTESTL(PJLB, INDEX)  \
-    (JU_JLB_BITMAP(PJLB, JU_SUBEXPL(INDEX)) &  JU_BITPOSMASKL(INDEX))
-
-#define JU_BITMAPSETL(PJLB, INDEX)   \
-    (JU_JLB_BITMAP(PJLB, JU_SUBEXPL(INDEX)) |= JU_BITPOSMASKL(INDEX))
-
-#define JU_BITMAPCLEARL(PJLB, INDEX) \
-    (JU_JLB_BITMAP(PJLB, JU_SUBEXPL(INDEX)) ^= JU_BITPOSMASKL(INDEX))
-
-
-// MAP BITMAP BIT OFFSET TO DIGIT:
-//
-// Given a digit variable to set, a bitmap branch or leaf subexpanse (base 0),
-// the bitmap (BITMAP*_t) for that subexpanse, and an offset (Nth set bit in
-// the bitmap, base 0), compute the digit (also base 0) corresponding to the
-// subexpanse and offset by counting all bits in the bitmap until offset+1 set
-// bits are seen.  Avoid expensive variable shifts.  Offset should be less than
-// the number of set bits in the bitmap; assert this.
-//
-// If theres a better way to do this, I dont know what it is.
-
-#define JU_BITMAPDIGITB(DIGIT,SUBEXP,BITMAP,OFFSET)             \
-        {                                                       \
-            BITMAPB_t bitmap = (BITMAP); int remain = (OFFSET); \
-            (DIGIT) = (SUBEXP) * cJU_BITSPERSUBEXPB;            \
-                                                                \
-            while ((remain -= (bitmap & 1)) >= 0)               \
-            {                                                   \
-                bitmap >>= 1; ++(DIGIT);                        \
-                assert((DIGIT) < ((SUBEXP) + 1) * cJU_BITSPERSUBEXPB); \
-            }                                                   \
-        }
-
-#define JU_BITMAPDIGITL(DIGIT,SUBEXP,BITMAP,OFFSET)             \
-        {                                                       \
-            BITMAPL_t bitmap = (BITMAP); int remain = (OFFSET); \
-            (DIGIT) = (SUBEXP) * cJU_BITSPERSUBEXPL;            \
-                                                                \
-            while ((remain -= (bitmap & 1)) >= 0)               \
-            {                                                   \
-                bitmap >>= 1; ++(DIGIT);                        \
-                assert((DIGIT) < ((SUBEXP) + 1) * cJU_BITSPERSUBEXPL); \
-            }                                                   \
-        }
-
-
-// MASKS FOR PORTIONS OF 32-BIT WORDS:
-//
-// These are useful for bitmap subexpanses.
-//
-// "LOWER"/"HIGHER" means bits representing lower/higher-valued Indexes.  The
-// exact order of bits in the word is explicit here but is hidden from the
-// caller.
-//
-// "EXC" means exclusive of the specified bit; "INC" means inclusive.
-//
-// In each case, BitPos is either "JU_BITPOSMASK*(BitNum)", or a variable saved
-// from an earlier call of that macro; either way, it must be a 32-bit word
-// with a single bit set.  In the first case, assume the compiler is smart
-// enough to optimize out common subexpressions.
-//
-// The expressions depend on unsigned decimal math that should be universal.
-
-#define JU_MASKLOWEREXC( BITPOS)  ((BITPOS) - 1)
-#define JU_MASKLOWERINC( BITPOS)  (JU_MASKLOWEREXC(BITPOS) | (BITPOS))
-#define JU_MASKHIGHERINC(BITPOS)  (-(BITPOS))
-#define JU_MASKHIGHEREXC(BITPOS)  (JU_MASKHIGHERINC(BITPOS) ^ (BITPOS))
-
-
-// ****************************************************************************
-// SUPPORT FOR NATIVE INDEX SIZES
-// ****************************************************************************
-//
-// Copy a series of generic objects (uint8_t, uint16_t, uint32_t, Word_t) from
-// one place to another.
-
-#define JU_COPYMEM(PDST,PSRC,POP1)                      \
-    {                                                   \
-        Word_t i_ndex = 0;                              \
-        assert((POP1) > 0);                             \
-        do { (PDST)[i_ndex] = (PSRC)[i_ndex]; } \
-        while (++i_ndex < (POP1));                      \
-    }
-
-
-// ****************************************************************************
-// SUPPORT FOR NON-NATIVE INDEX SIZES
-// ****************************************************************************
-//
-// Copy a 3-byte Index pointed by a uint8_t * to a Word_t:
-//
-#define JU_COPY3_PINDEX_TO_LONG(DESTLONG,PINDEX)        \
-    DESTLONG  = (Word_t)(PINDEX)[0] << 16;              \
-    DESTLONG += (Word_t)(PINDEX)[1] <<  8;              \
-    DESTLONG += (Word_t)(PINDEX)[2]
-
-// Copy a Word_t to a 3-byte Index pointed at by a uint8_t *:
-
-#define JU_COPY3_LONG_TO_PINDEX(PINDEX,SOURCELONG)      \
-    (PINDEX)[0] = (uint8_t)((SOURCELONG) >> 16);        \
-    (PINDEX)[1] = (uint8_t)((SOURCELONG) >>  8);        \
-    (PINDEX)[2] = (uint8_t)((SOURCELONG))
-
-#ifdef JU_64BIT
-
-// Copy a 5-byte Index pointed by a uint8_t * to a Word_t:
-//
-#define JU_COPY5_PINDEX_TO_LONG(DESTLONG,PINDEX)        \
-    DESTLONG  = (Word_t)(PINDEX)[0] << 32;              \
-    DESTLONG += (Word_t)(PINDEX)[1] << 24;              \
-    DESTLONG += (Word_t)(PINDEX)[2] << 16;              \
-    DESTLONG += (Word_t)(PINDEX)[3] <<  8;              \
-    DESTLONG += (Word_t)(PINDEX)[4]
-
-// Copy a Word_t to a 5-byte Index pointed at by a uint8_t *:
-
-#define JU_COPY5_LONG_TO_PINDEX(PINDEX,SOURCELONG)      \
-    (PINDEX)[0] = (uint8_t)((SOURCELONG) >> 32);        \
-    (PINDEX)[1] = (uint8_t)((SOURCELONG) >> 24);        \
-    (PINDEX)[2] = (uint8_t)((SOURCELONG) >> 16);        \
-    (PINDEX)[3] = (uint8_t)((SOURCELONG) >>  8);        \
-    (PINDEX)[4] = (uint8_t)((SOURCELONG))
-
-// Copy a 6-byte Index pointed by a uint8_t * to a Word_t:
-//
-#define JU_COPY6_PINDEX_TO_LONG(DESTLONG,PINDEX)        \
-    DESTLONG  = (Word_t)(PINDEX)[0] << 40;              \
-    DESTLONG += (Word_t)(PINDEX)[1] << 32;              \
-    DESTLONG += (Word_t)(PINDEX)[2] << 24;              \
-    DESTLONG += (Word_t)(PINDEX)[3] << 16;              \
-    DESTLONG += (Word_t)(PINDEX)[4] <<  8;              \
-    DESTLONG += (Word_t)(PINDEX)[5]
-
-// Copy a Word_t to a 6-byte Index pointed at by a uint8_t *:
-
-#define JU_COPY6_LONG_TO_PINDEX(PINDEX,SOURCELONG)      \
-    (PINDEX)[0] = (uint8_t)((SOURCELONG) >> 40);        \
-    (PINDEX)[1] = (uint8_t)((SOURCELONG) >> 32);        \
-    (PINDEX)[2] = (uint8_t)((SOURCELONG) >> 24);        \
-    (PINDEX)[3] = (uint8_t)((SOURCELONG) >> 16);        \
-    (PINDEX)[4] = (uint8_t)((SOURCELONG) >>  8);        \
-    (PINDEX)[5] = (uint8_t)((SOURCELONG))
-
-// Copy a 7-byte Index pointed by a uint8_t * to a Word_t:
-//
-#define JU_COPY7_PINDEX_TO_LONG(DESTLONG,PINDEX)        \
-    DESTLONG  = (Word_t)(PINDEX)[0] << 48;              \
-    DESTLONG += (Word_t)(PINDEX)[1] << 40;              \
-    DESTLONG += (Word_t)(PINDEX)[2] << 32;              \
-    DESTLONG += (Word_t)(PINDEX)[3] << 24;              \
-    DESTLONG += (Word_t)(PINDEX)[4] << 16;              \
-    DESTLONG += (Word_t)(PINDEX)[5] <<  8;              \
-    DESTLONG += (Word_t)(PINDEX)[6]
-
-// Copy a Word_t to a 7-byte Index pointed at by a uint8_t *:
-
-#define JU_COPY7_LONG_TO_PINDEX(PINDEX,SOURCELONG)      \
-    (PINDEX)[0] = (uint8_t)((SOURCELONG) >> 48);        \
-    (PINDEX)[1] = (uint8_t)((SOURCELONG) >> 40);        \
-    (PINDEX)[2] = (uint8_t)((SOURCELONG) >> 32);        \
-    (PINDEX)[3] = (uint8_t)((SOURCELONG) >> 24);        \
-    (PINDEX)[4] = (uint8_t)((SOURCELONG) >> 16);        \
-    (PINDEX)[5] = (uint8_t)((SOURCELONG) >>  8);        \
-    (PINDEX)[6] = (uint8_t)((SOURCELONG))
-
-#endif // JU_64BIT
-
-// ****************************************************************************
-// COMMON CODE FRAGMENTS (MACROS)
-// ****************************************************************************
-//
-// These code chunks are shared between various source files.
-
-
-// SET (REPLACE) ONE DIGIT IN AN INDEX:
-//
-// To avoid endian issues, use masking and ORing, which operates in a
-// big-endian register, rather than treating the Index as an array of bytes,
-// though that would be simpler, but would operate in endian-specific memory.
-//
-// TBD:  This contains two variable shifts, is that bad?
-
-#define JU_SETDIGIT(INDEX,DIGIT,STATE)                  \
-        (INDEX) = ((INDEX) & (~cJU_MASKATSTATE(STATE))) \
-                           | (((Word_t) (DIGIT))        \
-                              << (((STATE) - 1) * cJU_BITSPERBYTE))
-
-// Fast version for single LSB:
-
-#define JU_SETDIGIT1(INDEX,DIGIT) (INDEX) = ((INDEX) & ~0xff) | (DIGIT)
-
-
-// SET (REPLACE) "N" LEAST DIGITS IN AN INDEX:
-
-#define JU_SETDIGITS(INDEX,INDEX2,cSTATE) \
-        (INDEX) = ((INDEX ) & (~JU_LEASTBYTESMASK(cSTATE))) \
-                | ((INDEX2) & ( JU_LEASTBYTESMASK(cSTATE)))
-
-// COPY DECODE BYTES FROM JP TO INDEX:
-//
-// Modify Index digit(s) to match the bytes in jp_DcdPopO in case one or more
-// branches are skipped and the digits are significant.  Its probably faster
-// to just do this unconditionally than to check if its necessary.
-//
-// To avoid endian issues, use masking and ORing, which operates in a
-// big-endian register, rather than treating the Index as an array of bytes,
-// though that would be simpler, but would operate in endian-specific memory.
-//
-// WARNING:  Must not call JU_LEASTBYTESMASK (via cJU_DCDMASK) with Bytes =
-// cJU_ROOTSTATE or a bad mask is generated, but there are no Dcd bytes to copy
-// in this case anyway.  In fact there are no Dcd bytes unless State <
-// cJU_ROOTSTATE - 1, so dont call this macro except in those cases.
-//
-// TBD:  It would be nice to validate jp_DcdPopO against known digits to ensure
-// no corruption, but this is non-trivial.
-
-#define JU_SETDCD(INDEX,PJP,cSTATE)                             \
-    (INDEX) = ((INDEX) & ~cJU_DCDMASK(cSTATE))                  \
-                | (JU_JPDCDPOP0(PJP) & cJU_DCDMASK(cSTATE))
-
-// INSERT/DELETE AN INDEX IN-PLACE IN MEMORY:
-//
-// Given a pointer to an array of "even" (native), same-sized objects
-// (indexes), the current population of the array, an offset in the array, and
-// a new Index to insert, "shift up" the array elements (Indexes) above the
-// insertion point and insert the new Index.  Assume there is sufficient memory
-// to do this.
-//
-// In these macros, "i_offset" is an index offset, and "b_off" is a byte
-// offset for odd Index sizes.
-//
-// Note:  Endian issues only arise fro insertion, not deletion, and even for
-// insertion, they are transparent when native (even) objects are used, and
-// handled explicitly for odd (non-native) Index sizes.
-//
-// Note:  The following macros are tricky enough that there is some test code
-// for them appended to this file.
-
-#define JU_INSERTINPLACE(PARRAY,POP1,OFFSET,INDEX)              \
-        assert((long) (POP1) > 0);                              \
-        assert((Word_t) (OFFSET) <= (Word_t) (POP1));           \
-        {                                                       \
-            Word_t i_offset = (POP1);                           \
-                                                                \
-            while (i_offset-- > (OFFSET))                       \
-                (PARRAY)[i_offset + 1] = (PARRAY)[i_offset];    \
-                                                                \
-            (PARRAY)[OFFSET] = (INDEX);                         \
-        }
-
-
-// Variation for non-native Indexes, where cIS = Index Size
-// and PByte must point to a uint8_t (byte); shift byte-by-byte:
-//
-
-#define JU_INSERTINPLACE3(PBYTE,POP1,OFFSET,INDEX)              \
-{                                                               \
-    Word_t i_off = POP1;                                        \
-                                                                \
-    while (i_off-- > (OFFSET))                                  \
-    {                                                           \
-        Word_t  i_dx = i_off * 3;                               \
-        (PBYTE)[i_dx + 0 + 3] = (PBYTE)[i_dx + 0];              \
-        (PBYTE)[i_dx + 1 + 3] = (PBYTE)[i_dx + 1];              \
-        (PBYTE)[i_dx + 2 + 3] = (PBYTE)[i_dx + 2];              \
-    }                                                           \
-    JU_COPY3_LONG_TO_PINDEX(&((PBYTE)[(OFFSET) * 3]), INDEX);   \
-}
-
-#ifdef JU_64BIT
-
-#define JU_INSERTINPLACE5(PBYTE,POP1,OFFSET,INDEX)              \
-{                                                               \
-    Word_t i_off = POP1;                                        \
-                                                                \
-    while (i_off-- > (OFFSET))                                  \
-    {                                                           \
-        Word_t  i_dx = i_off * 5;                               \
-        (PBYTE)[i_dx + 0 + 5] = (PBYTE)[i_dx + 0];              \
-        (PBYTE)[i_dx + 1 + 5] = (PBYTE)[i_dx + 1];              \
-        (PBYTE)[i_dx + 2 + 5] = (PBYTE)[i_dx + 2];              \
-        (PBYTE)[i_dx + 3 + 5] = (PBYTE)[i_dx + 3];              \
-        (PBYTE)[i_dx + 4 + 5] = (PBYTE)[i_dx + 4];              \
-    }                                                           \
-    JU_COPY5_LONG_TO_PINDEX(&((PBYTE)[(OFFSET) * 5]), INDEX);   \
-}
-
-#define JU_INSERTINPLACE6(PBYTE,POP1,OFFSET,INDEX)              \
-{                                                               \
-    Word_t i_off = POP1;                                        \
-                                                                \
-    while (i_off-- > (OFFSET))                                  \
-    {                                                           \
-        Word_t  i_dx = i_off * 6;                               \
-        (PBYTE)[i_dx + 0 + 6] = (PBYTE)[i_dx + 0];              \
-        (PBYTE)[i_dx + 1 + 6] = (PBYTE)[i_dx + 1];              \
-        (PBYTE)[i_dx + 2 + 6] = (PBYTE)[i_dx + 2];              \
-        (PBYTE)[i_dx + 3 + 6] = (PBYTE)[i_dx + 3];              \
-        (PBYTE)[i_dx + 4 + 6] = (PBYTE)[i_dx + 4];              \
-        (PBYTE)[i_dx + 5 + 6] = (PBYTE)[i_dx + 5];              \
-    }                                                           \
-    JU_COPY6_LONG_TO_PINDEX(&((PBYTE)[(OFFSET) * 6]), INDEX);   \
-}
-
-#define JU_INSERTINPLACE7(PBYTE,POP1,OFFSET,INDEX)              \
-{                                                               \
-    Word_t i_off = POP1;                                        \
-                                                                \
-    while (i_off-- > (OFFSET))                                  \
-    {                                                           \
-        Word_t  i_dx = i_off * 7;                               \
-        (PBYTE)[i_dx + 0 + 7] = (PBYTE)[i_dx + 0];              \
-        (PBYTE)[i_dx + 1 + 7] = (PBYTE)[i_dx + 1];              \
-        (PBYTE)[i_dx + 2 + 7] = (PBYTE)[i_dx + 2];              \
-        (PBYTE)[i_dx + 3 + 7] = (PBYTE)[i_dx + 3];              \
-        (PBYTE)[i_dx + 4 + 7] = (PBYTE)[i_dx + 4];              \
-        (PBYTE)[i_dx + 5 + 7] = (PBYTE)[i_dx + 5];              \
-        (PBYTE)[i_dx + 6 + 7] = (PBYTE)[i_dx + 6];              \
-    }                                                           \
-    JU_COPY7_LONG_TO_PINDEX(&((PBYTE)[(OFFSET) * 7]), INDEX);   \
-}
-#endif // JU_64BIT
-
-// Counterparts to the above for deleting an Index:
-//
-// "Shift down" the array elements starting at the Index to be deleted.
-
-#define JU_DELETEINPLACE(PARRAY,POP1,OFFSET,IGNORE)             \
-        assert((long) (POP1) > 0);                              \
-        assert((Word_t) (OFFSET) < (Word_t) (POP1));            \
-        {                                                       \
-            Word_t i_offset = (OFFSET);                         \
-                                                                \
-            while (++i_offset < (POP1))                         \
-                (PARRAY)[i_offset - 1] = (PARRAY)[i_offset];    \
-        }
-
-// Variation for odd-byte-sized (non-native) Indexes, where cIS = Index Size
-// and PByte must point to a uint8_t (byte); copy byte-by-byte:
-//
-// Note:  If cIS == 1, JU_DELETEINPLACE_ODD == JU_DELETEINPLACE.
-//
-// Note:  There are no endian issues here because bytes are just shifted as-is,
-// not converted to/from an Index.
-
-#define JU_DELETEINPLACE_ODD(PBYTE,POP1,OFFSET,cIS)             \
-        assert((long) (POP1) > 0);                              \
-        assert((Word_t) (OFFSET) < (Word_t) (POP1));            \
-        {                                                       \
-            Word_t b_off = (((OFFSET) + 1) * (cIS)) - 1;        \
-                                                                \
-            while (++b_off < ((POP1) * (cIS)))                  \
-                (PBYTE)[b_off - (cIS)] = (PBYTE)[b_off];        \
-        }
-
-
-// INSERT/DELETE AN INDEX WHILE COPYING OTHERS:
-//
-// Copy PSource[] to PDest[], where PSource[] has Pop1 elements (Indexes),
-// inserting Index at PDest[Offset].  Unlike JU_*INPLACE*() above, these macros
-// are used when moving Indexes from one memory object to another.
-
-#define JU_INSERTCOPY(PDEST,PSOURCE,POP1,OFFSET,INDEX)          \
-        assert((long) (POP1) > 0);                              \
-        assert((Word_t) (OFFSET) <= (Word_t) (POP1));           \
-        {                                                       \
-            Word_t i_offset;                                    \
-                                                                \
-            for (i_offset = 0; i_offset < (OFFSET); ++i_offset) \
-                (PDEST)[i_offset] = (PSOURCE)[i_offset];        \
-                                                                \
-            (PDEST)[i_offset] = (INDEX);                        \
-                                                                \
-            for (/* null */; i_offset < (POP1); ++i_offset)     \
-                (PDEST)[i_offset + 1] = (PSOURCE)[i_offset];    \
-        }
-
-#define JU_INSERTCOPY3(PDEST,PSOURCE,POP1,OFFSET,INDEX)         \
-assert((long) (POP1) > 0);                                      \
-assert((Word_t) (OFFSET) <= (Word_t) (POP1));                   \
-{                                                               \
-    Word_t o_ff;                                                \
-                                                                \
-    for (o_ff = 0; o_ff < (OFFSET); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 3;                                \
-        (PDEST)[i_dx + 0] = (PSOURCE)[i_dx + 0];                \
-        (PDEST)[i_dx + 1] = (PSOURCE)[i_dx + 1];                \
-        (PDEST)[i_dx + 2] = (PSOURCE)[i_dx + 2];                \
-    }                                                           \
-    JU_COPY3_LONG_TO_PINDEX(&((PDEST)[(OFFSET) * 3]), INDEX);   \
-                                                                \
-    for (/* null */; o_ff < (POP1); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 3;                                \
-        (PDEST)[i_dx + 0 + 3] = (PSOURCE)[i_dx + 0];            \
-        (PDEST)[i_dx + 1 + 3] = (PSOURCE)[i_dx + 1];            \
-        (PDEST)[i_dx + 2 + 3] = (PSOURCE)[i_dx + 2];            \
-    }                                                           \
-}
-
-#ifdef JU_64BIT
-
-#define JU_INSERTCOPY5(PDEST,PSOURCE,POP1,OFFSET,INDEX)         \
-assert((long) (POP1) > 0);                                      \
-assert((Word_t) (OFFSET) <= (Word_t) (POP1));                   \
-{                                                               \
-    Word_t o_ff;                                                \
-                                                                \
-    for (o_ff = 0; o_ff < (OFFSET); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 5;                                \
-        (PDEST)[i_dx + 0] = (PSOURCE)[i_dx + 0];                \
-        (PDEST)[i_dx + 1] = (PSOURCE)[i_dx + 1];                \
-        (PDEST)[i_dx + 2] = (PSOURCE)[i_dx + 2];                \
-        (PDEST)[i_dx + 3] = (PSOURCE)[i_dx + 3];                \
-        (PDEST)[i_dx + 4] = (PSOURCE)[i_dx + 4];                \
-    }                                                           \
-    JU_COPY5_LONG_TO_PINDEX(&((PDEST)[(OFFSET) * 5]), INDEX);   \
-                                                                \
-    for (/* null */; o_ff < (POP1); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 5;                                \
-        (PDEST)[i_dx + 0 + 5] = (PSOURCE)[i_dx + 0];            \
-        (PDEST)[i_dx + 1 + 5] = (PSOURCE)[i_dx + 1];            \
-        (PDEST)[i_dx + 2 + 5] = (PSOURCE)[i_dx + 2];            \
-        (PDEST)[i_dx + 3 + 5] = (PSOURCE)[i_dx + 3];            \
-        (PDEST)[i_dx + 4 + 5] = (PSOURCE)[i_dx + 4];            \
-    }                                                           \
-}
-
-#define JU_INSERTCOPY6(PDEST,PSOURCE,POP1,OFFSET,INDEX)         \
-assert((long) (POP1) > 0);                                      \
-assert((Word_t) (OFFSET) <= (Word_t) (POP1));                   \
-{                                                               \
-    Word_t o_ff;                                                \
-                                                                \
-    for (o_ff = 0; o_ff < (OFFSET); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 6;                                \
-        (PDEST)[i_dx + 0] = (PSOURCE)[i_dx + 0];                \
-        (PDEST)[i_dx + 1] = (PSOURCE)[i_dx + 1];                \
-        (PDEST)[i_dx + 2] = (PSOURCE)[i_dx + 2];                \
-        (PDEST)[i_dx + 3] = (PSOURCE)[i_dx + 3];                \
-        (PDEST)[i_dx + 4] = (PSOURCE)[i_dx + 4];                \
-        (PDEST)[i_dx + 5] = (PSOURCE)[i_dx + 5];                \
-    }                                                           \
-    JU_COPY6_LONG_TO_PINDEX(&((PDEST)[(OFFSET) * 6]), INDEX);   \
-                                                                \
-    for (/* null */; o_ff < (POP1); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 6;                                \
-        (PDEST)[i_dx + 0 + 6] = (PSOURCE)[i_dx + 0];            \
-        (PDEST)[i_dx + 1 + 6] = (PSOURCE)[i_dx + 1];            \
-        (PDEST)[i_dx + 2 + 6] = (PSOURCE)[i_dx + 2];            \
-        (PDEST)[i_dx + 3 + 6] = (PSOURCE)[i_dx + 3];            \
-        (PDEST)[i_dx + 4 + 6] = (PSOURCE)[i_dx + 4];            \
-        (PDEST)[i_dx + 5 + 6] = (PSOURCE)[i_dx + 5];            \
-    }                                                           \
-}
-
-#define JU_INSERTCOPY7(PDEST,PSOURCE,POP1,OFFSET,INDEX)         \
-assert((long) (POP1) > 0);                                      \
-assert((Word_t) (OFFSET) <= (Word_t) (POP1));                   \
-{                                                               \
-    Word_t o_ff;                                                \
-                                                                \
-    for (o_ff = 0; o_ff < (OFFSET); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 7;                                \
-        (PDEST)[i_dx + 0] = (PSOURCE)[i_dx + 0];                \
-        (PDEST)[i_dx + 1] = (PSOURCE)[i_dx + 1];                \
-        (PDEST)[i_dx + 2] = (PSOURCE)[i_dx + 2];                \
-        (PDEST)[i_dx + 3] = (PSOURCE)[i_dx + 3];                \
-        (PDEST)[i_dx + 4] = (PSOURCE)[i_dx + 4];                \
-        (PDEST)[i_dx + 5] = (PSOURCE)[i_dx + 5];                \
-        (PDEST)[i_dx + 6] = (PSOURCE)[i_dx + 6];                \
-    }                                                           \
-    JU_COPY7_LONG_TO_PINDEX(&((PDEST)[(OFFSET) * 7]), INDEX);   \
-                                                                \
-    for (/* null */; o_ff < (POP1); o_ff++)                     \
-    {                                                           \
-        Word_t  i_dx = o_ff * 7;                                \
-        (PDEST)[i_dx + 0 + 7] = (PSOURCE)[i_dx + 0];            \
-        (PDEST)[i_dx + 1 + 7] = (PSOURCE)[i_dx + 1];            \
-        (PDEST)[i_dx + 2 + 7] = (PSOURCE)[i_dx + 2];            \
-        (PDEST)[i_dx + 3 + 7] = (PSOURCE)[i_dx + 3];            \
-        (PDEST)[i_dx + 4 + 7] = (PSOURCE)[i_dx + 4];            \
-        (PDEST)[i_dx + 5 + 7] = (PSOURCE)[i_dx + 5];            \
-        (PDEST)[i_dx + 6 + 7] = (PSOURCE)[i_dx + 6];            \
-    }                                                           \
-}
-
-#endif // JU_64BIT
-
-// Counterparts to the above for deleting an Index:
-
-#define JU_DELETECOPY(PDEST,PSOURCE,POP1,OFFSET,IGNORE)         \
-        assert((long) (POP1) > 0);                              \
-        assert((Word_t) (OFFSET) < (Word_t) (POP1));            \
-        {                                                       \
-            Word_t i_offset;                                    \
-                                                                \
-            for (i_offset = 0; i_offset < (OFFSET); ++i_offset) \
-                (PDEST)[i_offset] = (PSOURCE)[i_offset];        \
-                                                                \
-            for (++i_offset; i_offset < (POP1); ++i_offset)     \
-                (PDEST)[i_offset - 1] = (PSOURCE)[i_offset];    \
-        }
-
-// Variation for odd-byte-sized (non-native) Indexes, where cIS = Index Size;
-// copy byte-by-byte:
-//
-// Note:  There are no endian issues here because bytes are just shifted as-is,
-// not converted to/from an Index.
-//
-// Note:  If cIS == 1, JU_DELETECOPY_ODD == JU_DELETECOPY, at least in concept.
-
-#define JU_DELETECOPY_ODD(PDEST,PSOURCE,POP1,OFFSET,cIS)                \
-        assert((long) (POP1) > 0);                                      \
-        assert((Word_t) (OFFSET) < (Word_t) (POP1));                    \
-        {                                                               \
-            uint8_t *_Pdest   = (uint8_t *) (PDEST);                    \
-            uint8_t *_Psource = (uint8_t *) (PSOURCE);                  \
-            Word_t   b_off;                                             \
-                                                                        \
-            for (b_off = 0; b_off < ((OFFSET) * (cIS)); ++b_off)        \
-                *_Pdest++ = *_Psource++;                                \
-                                                                        \
-            _Psource += (cIS);                                          \
-                                                                        \
-            for (b_off += (cIS); b_off < ((POP1) * (cIS)); ++b_off)     \
-                *_Pdest++ = *_Psource++;                                \
-        }
-
-
-// GENERIC RETURN CODE HANDLING FOR JUDY1 (NO VALUE AREAS) AND JUDYL (VALUE
-// AREAS):
-//
-// This common code hides Judy1 versus JudyL details of how to return various
-// conditions, including a pointer to a value area for JudyL.
-//
-// First, define an internal variation of JERR called JERRI (I = int) to make
-// lint happy.  We accidentally shipped to 11.11 OEUR with all functions that
-// return int or Word_t using JERR, which is type Word_t, for errors.  Lint
-// complains about this for functions that return int.  So, internally use
-// JERRI for error returns from the int functions.  Experiments show that
-// callers which compare int Foo() to (Word_t) JERR (~0UL) are OK, since JERRI
-// sign-extends to match JERR.
-
-#define JERRI ((int) ~0)                // see above.
-
-#ifdef JUDY1
-
-#define JU_RET_FOUND    return(1)
-#define JU_RET_NOTFOUND return(0)
-
-// For Judy1, these all "fall through" to simply JU_RET_FOUND, since there is no
-// value area pointer to return:
-
-#define JU_RET_FOUND_LEAFW(PJLW,POP1,OFFSET)    JU_RET_FOUND
-
-#define JU_RET_FOUND_JPM(Pjpm)                  JU_RET_FOUND
-#define JU_RET_FOUND_PVALUE(Pjv,OFFSET)         JU_RET_FOUND
-#ifndef JU_64BIT
-#define JU_RET_FOUND_LEAF1(Pjll,POP1,OFFSET)    JU_RET_FOUND
-#endif
-#define JU_RET_FOUND_LEAF2(Pjll,POP1,OFFSET)    JU_RET_FOUND
-#define JU_RET_FOUND_LEAF3(Pjll,POP1,OFFSET)    JU_RET_FOUND
-#ifdef JU_64BIT
-#define JU_RET_FOUND_LEAF4(Pjll,POP1,OFFSET)    JU_RET_FOUND
-#define JU_RET_FOUND_LEAF5(Pjll,POP1,OFFSET)    JU_RET_FOUND
-#define JU_RET_FOUND_LEAF6(Pjll,POP1,OFFSET)    JU_RET_FOUND
-#define JU_RET_FOUND_LEAF7(Pjll,POP1,OFFSET)    JU_RET_FOUND
-#endif
-#define JU_RET_FOUND_IMM_01(Pjp)                JU_RET_FOUND
-#define JU_RET_FOUND_IMM(Pjp,OFFSET)            JU_RET_FOUND
-
-// Note:  No JudyL equivalent:
-
-#define JU_RET_FOUND_FULLPOPU1                   JU_RET_FOUND
-#define JU_RET_FOUND_LEAF_B1(PJLB,SUBEXP,OFFSET) JU_RET_FOUND
-
-#else // JUDYL
-
-//      JU_RET_FOUND            // see below; must NOT be defined for JudyL.
-#define JU_RET_NOTFOUND return((PPvoid_t) NULL)
-
-// For JudyL, the location of the value area depends on the JP type and other
-// factors:
-//
-// TBD:  The value areas should be accessed via data structures, here and in
-// Dougs code, not by hard-coded address calculations.
-//
-// This is useful in insert/delete code when the value area is returned from
-// lower levels in the JPM:
-
-#define JU_RET_FOUND_JPM(Pjpm)  return((PPvoid_t) ((Pjpm)->jpm_PValue))
-
-// This is useful in insert/delete code when the value area location is already
-// computed:
-
-#define JU_RET_FOUND_PVALUE(Pjv,OFFSET) return((PPvoid_t) ((Pjv) + OFFSET))
-
-#define JU_RET_FOUND_LEAFW(PJLW,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAFWVALUEAREA(PJLW, POP1) + (OFFSET)))
-
-#define JU_RET_FOUND_LEAF1(Pjll,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAF1VALUEAREA(Pjll, POP1) + (OFFSET)))
-#define JU_RET_FOUND_LEAF2(Pjll,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAF2VALUEAREA(Pjll, POP1) + (OFFSET)))
-#define JU_RET_FOUND_LEAF3(Pjll,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAF3VALUEAREA(Pjll, POP1) + (OFFSET)))
-#ifdef JU_64BIT
-#define JU_RET_FOUND_LEAF4(Pjll,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAF4VALUEAREA(Pjll, POP1) + (OFFSET)))
-#define JU_RET_FOUND_LEAF5(Pjll,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAF5VALUEAREA(Pjll, POP1) + (OFFSET)))
-#define JU_RET_FOUND_LEAF6(Pjll,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAF6VALUEAREA(Pjll, POP1) + (OFFSET)))
-#define JU_RET_FOUND_LEAF7(Pjll,POP1,OFFSET) \
-                return((PPvoid_t) (JL_LEAF7VALUEAREA(Pjll, POP1) + (OFFSET)))
-#endif
-
-// Note:  Here jp_Addr is a value area itself and not an address, so P_JV() is
-// not needed:
-
-#define JU_RET_FOUND_IMM_01(PJP)  return((PPvoid_t) (&((PJP)->jp_Addr)))
-
-// Note:  Here jp_Addr is a pointer to a separately-mallocd value area, so
-// P_JV() is required; likewise for JL_JLB_PVALUE:
-
-#define JU_RET_FOUND_IMM(PJP,OFFSET) \
-            return((PPvoid_t) (P_JV((PJP)->jp_Addr) + (OFFSET)))
-
-#define JU_RET_FOUND_LEAF_B1(PJLB,SUBEXP,OFFSET) \
-            return((PPvoid_t) (P_JV(JL_JLB_PVALUE(PJLB, SUBEXP)) + (OFFSET)))
-
-#endif // JUDYL
-
-
-// GENERIC ERROR HANDLING:
-//
-// This is complicated by variations in the needs of the callers of these
-// macros.  Only use JU_SET_ERRNO() for PJError, because it can be null; use
-// JU_SET_ERRNO_NONNULL() for Pjpm, which is never null, and also in other
-// cases where the pointer is known not to be null (to save dead branches).
-//
-// Note:  Most cases of JU_ERRNO_OVERRUN or JU_ERRNO_CORRUPT should result in
-// an assertion failure in debug code, so they are more likely to be caught, so
-// do that here in each macro.
-
-#define JU_SET_ERRNO(PJError, JErrno)                   \
-        {                                               \
-            assert((JErrno) != JU_ERRNO_OVERRUN);       \
-            assert((JErrno) != JU_ERRNO_CORRUPT);       \
-                                                        \
-            if (PJError != (PJError_t) NULL)            \
-            {                                           \
-                JU_ERRNO(PJError) = (JErrno);           \
-                JU_ERRID(PJError) = __LINE__;           \
-            }                                           \
-        }
-
-// Variation for callers who know already that PJError is non-null; and, it can
-// also be Pjpm (both PJError_t and Pjpm_t have je_* fields), so only assert it
-// for null, not cast to any specific pointer type:
-
-#define JU_SET_ERRNO_NONNULL(PJError, JErrno)           \
-        {                                               \
-            assert((JErrno) != JU_ERRNO_OVERRUN);       \
-            assert((JErrno) != JU_ERRNO_CORRUPT);       \
-            assert(PJError);                            \
-                                                        \
-            JU_ERRNO(PJError) = (JErrno);               \
-            JU_ERRID(PJError) = __LINE__;               \
-        }
-
-// Variation to copy error info from a (required) JPM to an (optional)
-// PJError_t:
-//
-// Note:  The assertions above about JU_ERRNO_OVERRUN and JU_ERRNO_CORRUPT
-// should have already popped, so they are not needed here.
-
-#define JU_COPY_ERRNO(PJError, Pjpm)                            \
-        {                                                       \
-            if (PJError)                                        \
-            {                                                   \
-                JU_ERRNO(PJError) = (uint8_t)JU_ERRNO(Pjpm);    \
-                JU_ERRID(PJError) = JU_ERRID(Pjpm);             \
-            }                                                   \
-        }
-
-// For JErrno parameter to previous macros upon return from Judy*Alloc*():
-//
-// The memory allocator returns an address of 0 for out of memory,
-// 1..sizeof(Word_t)-1 for corruption (an invalid pointer), otherwise a valid
-// pointer.
-
-#define JU_ALLOC_ERRNO(ADDR) \
-        (((void *) (ADDR) != (void *) NULL) ? JU_ERRNO_OVERRUN : JU_ERRNO_NOMEM)
-
-#define JU_CHECKALLOC(Type,Ptr,Retval)                  \
-        if ((Ptr) < (Type) sizeof(Word_t))              \
-        {                                               \
-            JU_SET_ERRNO(PJError, JU_ALLOC_ERRNO(Ptr)); \
-            return(Retval);                             \
-        }
-
-// Leaf search routines
-
-#ifdef JU_NOINLINE
-
-int j__udySearchLeaf1(Pjll_t Pjll, Word_t LeafPop1, Word_t Index);
-int j__udySearchLeaf2(Pjll_t Pjll, Word_t LeafPop1, Word_t Index);
-int j__udySearchLeaf3(Pjll_t Pjll, Word_t LeafPop1, Word_t Index);
-
-#ifdef JU_64BIT
-
-int j__udySearchLeaf4(Pjll_t Pjll, Word_t LeafPop1, Word_t Index);
-int j__udySearchLeaf5(Pjll_t Pjll, Word_t LeafPop1, Word_t Index);
-int j__udySearchLeaf6(Pjll_t Pjll, Word_t LeafPop1, Word_t Index);
-int j__udySearchLeaf7(Pjll_t Pjll, Word_t LeafPop1, Word_t Index);
-
-#endif // JU_64BIT
-
-int j__udySearchLeafW(Pjlw_t Pjlw, Word_t LeafPop1, Word_t Index);
-
-#else  // complier support for inline
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeaf1(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeaf1(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNATIVE(uint8_t,  Pjll, LeafPop1, Index); }
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeaf2(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeaf2(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNATIVE(uint16_t, Pjll, LeafPop1, Index); }
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeaf3(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeaf3(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNONNAT(Pjll, LeafPop1, Index, 3, JU_COPY3_PINDEX_TO_LONG); }
-
-#ifdef JU_64BIT
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeaf4(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeaf4(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNATIVE(uint32_t, Pjll, LeafPop1, Index); }
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeaf5(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeaf5(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNONNAT(Pjll, LeafPop1, Index, 5, JU_COPY5_PINDEX_TO_LONG); }
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeaf6(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeaf6(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNONNAT(Pjll, LeafPop1, Index, 6, JU_COPY6_PINDEX_TO_LONG); }
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeaf7(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeaf7(Pjll_t Pjll, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNONNAT(Pjll, LeafPop1, Index, 7, JU_COPY7_PINDEX_TO_LONG); }
-
-#endif // JU_64BIT
-
-#ifdef JU_WIN
-static __inline int j__udySearchLeafW(Pjlw_t Pjlw, Word_t LeafPop1, Word_t Index)
-#else
-static inline int j__udySearchLeafW(Pjlw_t Pjlw, Word_t LeafPop1, Word_t Index)
-#endif
-{ SEARCHLEAFNATIVE(Word_t, Pjlw, LeafPop1, Index); }
-
-#endif // compiler support for inline
-
-#endif // ! _JUDYPRIVATE_INCLUDED
diff --git a/libs/klib/judy/JudyPrivate1L.h b/libs/klib/judy/JudyPrivate1L.h
deleted file mode 100644
index 5b9591f..0000000
--- a/libs/klib/judy/JudyPrivate1L.h
+++ /dev/null
@@ -1,483 +0,0 @@
-#ifndef _JUDYPRIVATE1L_INCLUDED
-#define	_JUDYPRIVATE1L_INCLUDED
-// _________________
-//
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// ****************************************************************************
-// Declare common cJU_* names for JP Types that occur in both Judy1 and JudyL,
-// for use by code that ifdefs JUDY1 and JUDYL.  Only JP Types common to both
-// Judy1 and JudyL are #defined here with equivalent cJU_* names.  JP Types
-// unique to only Judy1 or JudyL are listed in comments, so the type lists
-// match the Judy1.h and JudyL.h files.
-//
-// This file also defines cJU_* for other JP-related constants and functions
-// that some shared JUDY1/JUDYL code finds handy.
-//
-// At least in principle this file should be included AFTER Judy1.h or JudyL.h.
-//
-// WARNING:  This file must be kept consistent with the enums in Judy1.h and
-// JudyL.h.
-//
-// TBD:  You might think, why not define common cJU_* enums in, say,
-// JudyPrivate.h, and then inherit them into superset enums in Judy1.h and
-// JudyL.h?  The problem is that the enum lists for each class (cJ1_* and
-// cJL_*) must be numerically "packed" into the correct order, for two reasons:
-// (1) allow the compiler to generate "tight" switch statements with no wasted
-// slots (although this is not very big), and (2) allow calculations using the
-// enum values, although this is also not an issue if the calculations are only
-// within each cJ*_JPIMMED_*_* class and the members are packed within the
-// class.
-
-#ifdef JUDY1
-
-#define	cJU_JRPNULL		cJ1_JRPNULL
-#define	cJU_JPNULL1		cJ1_JPNULL1
-#define	cJU_JPNULL2		cJ1_JPNULL2
-#define	cJU_JPNULL3		cJ1_JPNULL3
-#ifdef JU_64BIT
-#define	cJU_JPNULL4		cJ1_JPNULL4
-#define	cJU_JPNULL5		cJ1_JPNULL5
-#define	cJU_JPNULL6		cJ1_JPNULL6
-#define	cJU_JPNULL7		cJ1_JPNULL7
-#endif
-#define	cJU_JPNULLMAX		cJ1_JPNULLMAX
-#define	cJU_JPBRANCH_L2		cJ1_JPBRANCH_L2
-#define	cJU_JPBRANCH_L3		cJ1_JPBRANCH_L3
-#ifdef JU_64BIT
-#define	cJU_JPBRANCH_L4		cJ1_JPBRANCH_L4
-#define	cJU_JPBRANCH_L5		cJ1_JPBRANCH_L5
-#define	cJU_JPBRANCH_L6		cJ1_JPBRANCH_L6
-#define	cJU_JPBRANCH_L7		cJ1_JPBRANCH_L7
-#endif
-#define	cJU_JPBRANCH_L		cJ1_JPBRANCH_L
-#define	j__U_BranchBJPPopToWords j__1_BranchBJPPopToWords
-#define	cJU_JPBRANCH_B2		cJ1_JPBRANCH_B2
-#define	cJU_JPBRANCH_B3		cJ1_JPBRANCH_B3
-#ifdef JU_64BIT
-#define	cJU_JPBRANCH_B4		cJ1_JPBRANCH_B4
-#define	cJU_JPBRANCH_B5		cJ1_JPBRANCH_B5
-#define	cJU_JPBRANCH_B6		cJ1_JPBRANCH_B6
-#define	cJU_JPBRANCH_B7		cJ1_JPBRANCH_B7
-#endif
-#define	cJU_JPBRANCH_B		cJ1_JPBRANCH_B
-#define	cJU_JPBRANCH_U2		cJ1_JPBRANCH_U2
-#define	cJU_JPBRANCH_U3		cJ1_JPBRANCH_U3
-#ifdef JU_64BIT
-#define	cJU_JPBRANCH_U4		cJ1_JPBRANCH_U4
-#define	cJU_JPBRANCH_U5		cJ1_JPBRANCH_U5
-#define	cJU_JPBRANCH_U6		cJ1_JPBRANCH_U6
-#define	cJU_JPBRANCH_U7		cJ1_JPBRANCH_U7
-#endif
-#define	cJU_JPBRANCH_U		cJ1_JPBRANCH_U
-#ifndef JU_64BIT
-#define	cJU_JPLEAF1		cJ1_JPLEAF1
-#endif
-#define	cJU_JPLEAF2		cJ1_JPLEAF2
-#define	cJU_JPLEAF3		cJ1_JPLEAF3
-#ifdef JU_64BIT
-#define	cJU_JPLEAF4		cJ1_JPLEAF4
-#define	cJU_JPLEAF5		cJ1_JPLEAF5
-#define	cJU_JPLEAF6		cJ1_JPLEAF6
-#define	cJU_JPLEAF7		cJ1_JPLEAF7
-#endif
-#define	cJU_JPLEAF_B1		cJ1_JPLEAF_B1
-//				cJ1_JPFULLPOPU1
-#define	cJU_JPIMMED_1_01	cJ1_JPIMMED_1_01
-#define	cJU_JPIMMED_2_01	cJ1_JPIMMED_2_01
-#define	cJU_JPIMMED_3_01	cJ1_JPIMMED_3_01
-#ifdef JU_64BIT
-#define	cJU_JPIMMED_4_01	cJ1_JPIMMED_4_01
-#define	cJU_JPIMMED_5_01	cJ1_JPIMMED_5_01
-#define	cJU_JPIMMED_6_01	cJ1_JPIMMED_6_01
-#define	cJU_JPIMMED_7_01	cJ1_JPIMMED_7_01
-#endif
-#define	cJU_JPIMMED_1_02	cJ1_JPIMMED_1_02
-#define	cJU_JPIMMED_1_03	cJ1_JPIMMED_1_03
-#define	cJU_JPIMMED_1_04	cJ1_JPIMMED_1_04
-#define	cJU_JPIMMED_1_05	cJ1_JPIMMED_1_05
-#define	cJU_JPIMMED_1_06	cJ1_JPIMMED_1_06
-#define	cJU_JPIMMED_1_07	cJ1_JPIMMED_1_07
-#ifdef JU_64BIT
-//				cJ1_JPIMMED_1_08
-//				cJ1_JPIMMED_1_09
-//				cJ1_JPIMMED_1_10
-//				cJ1_JPIMMED_1_11
-//				cJ1_JPIMMED_1_12
-//				cJ1_JPIMMED_1_13
-//				cJ1_JPIMMED_1_14
-//				cJ1_JPIMMED_1_15
-#endif
-#define	cJU_JPIMMED_2_02	cJ1_JPIMMED_2_02
-#define	cJU_JPIMMED_2_03	cJ1_JPIMMED_2_03
-#ifdef JU_64BIT
-//				cJ1_JPIMMED_2_04
-//				cJ1_JPIMMED_2_05
-//				cJ1_JPIMMED_2_06
-//				cJ1_JPIMMED_2_07
-#endif
-#define	cJU_JPIMMED_3_02	cJ1_JPIMMED_3_02
-#ifdef JU_64BIT
-//				cJ1_JPIMMED_3_03
-//				cJ1_JPIMMED_3_04
-//				cJ1_JPIMMED_3_05
-//				cJ1_JPIMMED_4_02
-//				cJ1_JPIMMED_4_03
-//				cJ1_JPIMMED_5_02
-//				cJ1_JPIMMED_5_03
-//				cJ1_JPIMMED_6_02
-//				cJ1_JPIMMED_7_02
-#endif
-#define	cJU_JPIMMED_CAP		cJ1_JPIMMED_CAP
-
-#else // JUDYL ****************************************************************
-
-#define	cJU_JRPNULL		cJL_JRPNULL
-#define	cJU_JPNULL1		cJL_JPNULL1
-#define	cJU_JPNULL2		cJL_JPNULL2
-#define	cJU_JPNULL3		cJL_JPNULL3
-#ifdef JU_64BIT
-#define	cJU_JPNULL4		cJL_JPNULL4
-#define	cJU_JPNULL5		cJL_JPNULL5
-#define	cJU_JPNULL6		cJL_JPNULL6
-#define	cJU_JPNULL7		cJL_JPNULL7
-#endif
-#define	cJU_JPNULLMAX		cJL_JPNULLMAX
-#define	cJU_JPBRANCH_L2		cJL_JPBRANCH_L2
-#define	cJU_JPBRANCH_L3		cJL_JPBRANCH_L3
-#ifdef JU_64BIT
-#define	cJU_JPBRANCH_L4		cJL_JPBRANCH_L4
-#define	cJU_JPBRANCH_L5		cJL_JPBRANCH_L5
-#define	cJU_JPBRANCH_L6		cJL_JPBRANCH_L6
-#define	cJU_JPBRANCH_L7		cJL_JPBRANCH_L7
-#endif
-#define	cJU_JPBRANCH_L		cJL_JPBRANCH_L
-#define	j__U_BranchBJPPopToWords j__L_BranchBJPPopToWords
-#define	cJU_JPBRANCH_B2		cJL_JPBRANCH_B2
-#define	cJU_JPBRANCH_B3		cJL_JPBRANCH_B3
-#ifdef JU_64BIT
-#define	cJU_JPBRANCH_B4		cJL_JPBRANCH_B4
-#define	cJU_JPBRANCH_B5		cJL_JPBRANCH_B5
-#define	cJU_JPBRANCH_B6		cJL_JPBRANCH_B6
-#define	cJU_JPBRANCH_B7		cJL_JPBRANCH_B7
-#endif
-#define	cJU_JPBRANCH_B		cJL_JPBRANCH_B
-#define	cJU_JPBRANCH_U2		cJL_JPBRANCH_U2
-#define	cJU_JPBRANCH_U3		cJL_JPBRANCH_U3
-#ifdef JU_64BIT
-#define	cJU_JPBRANCH_U4		cJL_JPBRANCH_U4
-#define	cJU_JPBRANCH_U5		cJL_JPBRANCH_U5
-#define	cJU_JPBRANCH_U6		cJL_JPBRANCH_U6
-#define	cJU_JPBRANCH_U7		cJL_JPBRANCH_U7
-#endif
-#define	cJU_JPBRANCH_U		cJL_JPBRANCH_U
-#define	cJU_JPLEAF1		cJL_JPLEAF1
-#define	cJU_JPLEAF2		cJL_JPLEAF2
-#define	cJU_JPLEAF3		cJL_JPLEAF3
-#ifdef JU_64BIT
-#define	cJU_JPLEAF4		cJL_JPLEAF4
-#define	cJU_JPLEAF5		cJL_JPLEAF5
-#define	cJU_JPLEAF6		cJL_JPLEAF6
-#define	cJU_JPLEAF7		cJL_JPLEAF7
-#endif
-#define	cJU_JPLEAF_B1		cJL_JPLEAF_B1
-#define	cJU_JPIMMED_1_01	cJL_JPIMMED_1_01
-#define	cJU_JPIMMED_2_01	cJL_JPIMMED_2_01
-#define	cJU_JPIMMED_3_01	cJL_JPIMMED_3_01
-#ifdef JU_64BIT
-#define	cJU_JPIMMED_4_01	cJL_JPIMMED_4_01
-#define	cJU_JPIMMED_5_01	cJL_JPIMMED_5_01
-#define	cJU_JPIMMED_6_01	cJL_JPIMMED_6_01
-#define	cJU_JPIMMED_7_01	cJL_JPIMMED_7_01
-#endif
-#define	cJU_JPIMMED_1_02	cJL_JPIMMED_1_02
-#define	cJU_JPIMMED_1_03	cJL_JPIMMED_1_03
-#ifdef JU_64BIT
-#define	cJU_JPIMMED_1_04	cJL_JPIMMED_1_04
-#define	cJU_JPIMMED_1_05	cJL_JPIMMED_1_05
-#define	cJU_JPIMMED_1_06	cJL_JPIMMED_1_06
-#define	cJU_JPIMMED_1_07	cJL_JPIMMED_1_07
-#define	cJU_JPIMMED_2_02	cJL_JPIMMED_2_02
-#define	cJU_JPIMMED_2_03	cJL_JPIMMED_2_03
-#define	cJU_JPIMMED_3_02	cJL_JPIMMED_3_02
-#endif
-#define	cJU_JPIMMED_CAP		cJL_JPIMMED_CAP
-
-#endif // JUDYL
-
-
-// ****************************************************************************
-// cJU*_ other than JP types:
-
-#ifdef JUDY1
-
-#define	cJU_LEAFW_MAXPOP1	cJ1_LEAFW_MAXPOP1
-#ifndef JU_64BIT
-#define	cJU_LEAF1_MAXPOP1	cJ1_LEAF1_MAXPOP1
-#endif
-#define	cJU_LEAF2_MAXPOP1	cJ1_LEAF2_MAXPOP1
-#define	cJU_LEAF3_MAXPOP1	cJ1_LEAF3_MAXPOP1
-#ifdef JU_64BIT
-#define	cJU_LEAF4_MAXPOP1	cJ1_LEAF4_MAXPOP1
-#define	cJU_LEAF5_MAXPOP1	cJ1_LEAF5_MAXPOP1
-#define	cJU_LEAF6_MAXPOP1	cJ1_LEAF6_MAXPOP1
-#define	cJU_LEAF7_MAXPOP1	cJ1_LEAF7_MAXPOP1
-#endif
-#define	cJU_IMMED1_MAXPOP1	cJ1_IMMED1_MAXPOP1
-#define	cJU_IMMED2_MAXPOP1	cJ1_IMMED2_MAXPOP1
-#define	cJU_IMMED3_MAXPOP1	cJ1_IMMED3_MAXPOP1
-#ifdef JU_64BIT
-#define	cJU_IMMED4_MAXPOP1	cJ1_IMMED4_MAXPOP1
-#define	cJU_IMMED5_MAXPOP1	cJ1_IMMED5_MAXPOP1
-#define	cJU_IMMED6_MAXPOP1	cJ1_IMMED6_MAXPOP1
-#define	cJU_IMMED7_MAXPOP1	cJ1_IMMED7_MAXPOP1
-#endif
-
-#define	JU_LEAF1POPTOWORDS(Pop1)	J1_LEAF1POPTOWORDS(Pop1)
-#define	JU_LEAF2POPTOWORDS(Pop1)	J1_LEAF2POPTOWORDS(Pop1)
-#define	JU_LEAF3POPTOWORDS(Pop1)	J1_LEAF3POPTOWORDS(Pop1)
-#ifdef JU_64BIT
-#define	JU_LEAF4POPTOWORDS(Pop1)	J1_LEAF4POPTOWORDS(Pop1)
-#define	JU_LEAF5POPTOWORDS(Pop1)	J1_LEAF5POPTOWORDS(Pop1)
-#define	JU_LEAF6POPTOWORDS(Pop1)	J1_LEAF6POPTOWORDS(Pop1)
-#define	JU_LEAF7POPTOWORDS(Pop1)	J1_LEAF7POPTOWORDS(Pop1)
-#endif
-#define	JU_LEAFWPOPTOWORDS(Pop1)	J1_LEAFWPOPTOWORDS(Pop1)
-
-#ifndef JU_64BIT
-#define	JU_LEAF1GROWINPLACE(Pop1)	J1_LEAF1GROWINPLACE(Pop1)
-#endif
-#define	JU_LEAF2GROWINPLACE(Pop1)	J1_LEAF2GROWINPLACE(Pop1)
-#define	JU_LEAF3GROWINPLACE(Pop1)	J1_LEAF3GROWINPLACE(Pop1)
-#ifdef JU_64BIT
-#define	JU_LEAF4GROWINPLACE(Pop1)	J1_LEAF4GROWINPLACE(Pop1)
-#define	JU_LEAF5GROWINPLACE(Pop1)	J1_LEAF5GROWINPLACE(Pop1)
-#define	JU_LEAF6GROWINPLACE(Pop1)	J1_LEAF6GROWINPLACE(Pop1)
-#define	JU_LEAF7GROWINPLACE(Pop1)	J1_LEAF7GROWINPLACE(Pop1)
-#endif
-#define	JU_LEAFWGROWINPLACE(Pop1)	J1_LEAFWGROWINPLACE(Pop1)
-
-#define	j__udyCreateBranchL	j__udy1CreateBranchL
-#define	j__udyCreateBranchB	j__udy1CreateBranchB
-#define	j__udyCreateBranchU	j__udy1CreateBranchU
-#define	j__udyCascade1		j__udy1Cascade1
-#define	j__udyCascade2		j__udy1Cascade2
-#define	j__udyCascade3		j__udy1Cascade3
-#ifdef JU_64BIT
-#define	j__udyCascade4		j__udy1Cascade4
-#define	j__udyCascade5		j__udy1Cascade5
-#define	j__udyCascade6		j__udy1Cascade6
-#define	j__udyCascade7		j__udy1Cascade7
-#endif
-#define	j__udyCascadeL		j__udy1CascadeL
-#define	j__udyInsertBranch	j__udy1InsertBranch
-
-#define	j__udyBranchBToBranchL	j__udy1BranchBToBranchL
-#ifndef JU_64BIT
-#define	j__udyLeafB1ToLeaf1	j__udy1LeafB1ToLeaf1
-#endif
-#define	j__udyLeaf1ToLeaf2	j__udy1Leaf1ToLeaf2
-#define	j__udyLeaf2ToLeaf3	j__udy1Leaf2ToLeaf3
-#ifndef JU_64BIT
-#define	j__udyLeaf3ToLeafW	j__udy1Leaf3ToLeafW
-#else
-#define	j__udyLeaf3ToLeaf4	j__udy1Leaf3ToLeaf4
-#define	j__udyLeaf4ToLeaf5	j__udy1Leaf4ToLeaf5
-#define	j__udyLeaf5ToLeaf6	j__udy1Leaf5ToLeaf6
-#define	j__udyLeaf6ToLeaf7	j__udy1Leaf6ToLeaf7
-#define	j__udyLeaf7ToLeafW	j__udy1Leaf7ToLeafW
-#endif
-
-#define	jpm_t			j1pm_t
-#define	Pjpm_t			Pj1pm_t
-
-#define	jlb_t			j1lb_t
-#define	Pjlb_t			Pj1lb_t
-
-#define	JU_JLB_BITMAP		J1_JLB_BITMAP
-
-#define	j__udyAllocJPM		j__udy1AllocJ1PM
-#define	j__udyAllocJBL		j__udy1AllocJBL
-#define	j__udyAllocJBB		j__udy1AllocJBB
-#define	j__udyAllocJBBJP	j__udy1AllocJBBJP
-#define	j__udyAllocJBU		j__udy1AllocJBU
-#ifndef JU_64BIT
-#define	j__udyAllocJLL1		j__udy1AllocJLL1
-#endif
-#define	j__udyAllocJLL2		j__udy1AllocJLL2
-#define	j__udyAllocJLL3		j__udy1AllocJLL3
-#ifdef JU_64BIT
-#define	j__udyAllocJLL4		j__udy1AllocJLL4
-#define	j__udyAllocJLL5		j__udy1AllocJLL5
-#define	j__udyAllocJLL6		j__udy1AllocJLL6
-#define	j__udyAllocJLL7		j__udy1AllocJLL7
-#endif
-#define	j__udyAllocJLW		j__udy1AllocJLW
-#define	j__udyAllocJLB1		j__udy1AllocJLB1
-#define	j__udyFreeJPM		j__udy1FreeJ1PM
-#define	j__udyFreeJBL		j__udy1FreeJBL
-#define	j__udyFreeJBB		j__udy1FreeJBB
-#define	j__udyFreeJBBJP		j__udy1FreeJBBJP
-#define	j__udyFreeJBU		j__udy1FreeJBU
-#ifndef JU_64BIT
-#define	j__udyFreeJLL1		j__udy1FreeJLL1
-#endif
-#define	j__udyFreeJLL2		j__udy1FreeJLL2
-#define	j__udyFreeJLL3		j__udy1FreeJLL3
-#ifdef JU_64BIT
-#define	j__udyFreeJLL4		j__udy1FreeJLL4
-#define	j__udyFreeJLL5		j__udy1FreeJLL5
-#define	j__udyFreeJLL6		j__udy1FreeJLL6
-#define	j__udyFreeJLL7		j__udy1FreeJLL7
-#endif
-#define	j__udyFreeJLW		j__udy1FreeJLW
-#define	j__udyFreeJLB1		j__udy1FreeJLB1
-#define	j__udyFreeSM		j__udy1FreeSM
-
-#define	j__uMaxWords		j__u1MaxWords
-
-#ifdef DEBUG
-#define	JudyCheckPop		Judy1CheckPop
-#endif
-
-#else // JUDYL ****************************************************************
-
-#define	cJU_LEAFW_MAXPOP1	cJL_LEAFW_MAXPOP1
-#define	cJU_LEAF1_MAXPOP1	cJL_LEAF1_MAXPOP1
-#define	cJU_LEAF2_MAXPOP1	cJL_LEAF2_MAXPOP1
-#define	cJU_LEAF3_MAXPOP1	cJL_LEAF3_MAXPOP1
-#ifdef JU_64BIT
-#define	cJU_LEAF4_MAXPOP1	cJL_LEAF4_MAXPOP1
-#define	cJU_LEAF5_MAXPOP1	cJL_LEAF5_MAXPOP1
-#define	cJU_LEAF6_MAXPOP1	cJL_LEAF6_MAXPOP1
-#define	cJU_LEAF7_MAXPOP1	cJL_LEAF7_MAXPOP1
-#endif
-#define	cJU_IMMED1_MAXPOP1	cJL_IMMED1_MAXPOP1
-#define	cJU_IMMED2_MAXPOP1	cJL_IMMED2_MAXPOP1
-#define	cJU_IMMED3_MAXPOP1	cJL_IMMED3_MAXPOP1
-#ifdef JU_64BIT
-#define	cJU_IMMED4_MAXPOP1	cJL_IMMED4_MAXPOP1
-#define	cJU_IMMED5_MAXPOP1	cJL_IMMED5_MAXPOP1
-#define	cJU_IMMED6_MAXPOP1	cJL_IMMED6_MAXPOP1
-#define	cJU_IMMED7_MAXPOP1	cJL_IMMED7_MAXPOP1
-#endif
-
-#define	JU_LEAF1POPTOWORDS(Pop1)	JL_LEAF1POPTOWORDS(Pop1)
-#define	JU_LEAF2POPTOWORDS(Pop1)	JL_LEAF2POPTOWORDS(Pop1)
-#define	JU_LEAF3POPTOWORDS(Pop1)	JL_LEAF3POPTOWORDS(Pop1)
-#ifdef JU_64BIT
-#define	JU_LEAF4POPTOWORDS(Pop1)	JL_LEAF4POPTOWORDS(Pop1)
-#define	JU_LEAF5POPTOWORDS(Pop1)	JL_LEAF5POPTOWORDS(Pop1)
-#define	JU_LEAF6POPTOWORDS(Pop1)	JL_LEAF6POPTOWORDS(Pop1)
-#define	JU_LEAF7POPTOWORDS(Pop1)	JL_LEAF7POPTOWORDS(Pop1)
-#endif
-#define	JU_LEAFWPOPTOWORDS(Pop1)	JL_LEAFWPOPTOWORDS(Pop1)
-
-#define	JU_LEAF1GROWINPLACE(Pop1)	JL_LEAF1GROWINPLACE(Pop1)
-#define	JU_LEAF2GROWINPLACE(Pop1)	JL_LEAF2GROWINPLACE(Pop1)
-#define	JU_LEAF3GROWINPLACE(Pop1)	JL_LEAF3GROWINPLACE(Pop1)
-#ifdef JU_64BIT
-#define	JU_LEAF4GROWINPLACE(Pop1)	JL_LEAF4GROWINPLACE(Pop1)
-#define	JU_LEAF5GROWINPLACE(Pop1)	JL_LEAF5GROWINPLACE(Pop1)
-#define	JU_LEAF6GROWINPLACE(Pop1)	JL_LEAF6GROWINPLACE(Pop1)
-#define	JU_LEAF7GROWINPLACE(Pop1)	JL_LEAF7GROWINPLACE(Pop1)
-#endif
-#define	JU_LEAFWGROWINPLACE(Pop1)	JL_LEAFWGROWINPLACE(Pop1)
-
-#define	j__udyCreateBranchL	j__udyLCreateBranchL
-#define	j__udyCreateBranchB	j__udyLCreateBranchB
-#define	j__udyCreateBranchU	j__udyLCreateBranchU
-#define	j__udyCascade1		j__udyLCascade1
-#define	j__udyCascade2		j__udyLCascade2
-#define	j__udyCascade3		j__udyLCascade3
-#ifdef JU_64BIT
-#define	j__udyCascade4		j__udyLCascade4
-#define	j__udyCascade5		j__udyLCascade5
-#define	j__udyCascade6		j__udyLCascade6
-#define	j__udyCascade7		j__udyLCascade7
-#endif
-#define	j__udyCascadeL		j__udyLCascadeL
-#define	j__udyInsertBranch	j__udyLInsertBranch
-
-#define	j__udyBranchBToBranchL	j__udyLBranchBToBranchL
-#define	j__udyLeafB1ToLeaf1	j__udyLLeafB1ToLeaf1
-#define	j__udyLeaf1ToLeaf2	j__udyLLeaf1ToLeaf2
-#define	j__udyLeaf2ToLeaf3	j__udyLLeaf2ToLeaf3
-#ifndef JU_64BIT
-#define	j__udyLeaf3ToLeafW	j__udyLLeaf3ToLeafW
-#else
-#define	j__udyLeaf3ToLeaf4	j__udyLLeaf3ToLeaf4
-#define	j__udyLeaf4ToLeaf5	j__udyLLeaf4ToLeaf5
-#define	j__udyLeaf5ToLeaf6	j__udyLLeaf5ToLeaf6
-#define	j__udyLeaf6ToLeaf7	j__udyLLeaf6ToLeaf7
-#define	j__udyLeaf7ToLeafW	j__udyLLeaf7ToLeafW
-#endif
-
-#define	jpm_t			jLpm_t
-#define	Pjpm_t			PjLpm_t
-
-#define	jlb_t			jLlb_t
-#define	Pjlb_t			PjLlb_t
-
-#define	JU_JLB_BITMAP		JL_JLB_BITMAP
-
-#define	j__udyAllocJPM		j__udyLAllocJLPM
-#define	j__udyAllocJBL		j__udyLAllocJBL
-#define	j__udyAllocJBB		j__udyLAllocJBB
-#define	j__udyAllocJBBJP	j__udyLAllocJBBJP
-#define	j__udyAllocJBU		j__udyLAllocJBU
-#define	j__udyAllocJLL1		j__udyLAllocJLL1
-#define	j__udyAllocJLL2		j__udyLAllocJLL2
-#define	j__udyAllocJLL3		j__udyLAllocJLL3
-#ifdef JU_64BIT
-#define	j__udyAllocJLL4		j__udyLAllocJLL4
-#define	j__udyAllocJLL5		j__udyLAllocJLL5
-#define	j__udyAllocJLL6		j__udyLAllocJLL6
-#define	j__udyAllocJLL7		j__udyLAllocJLL7
-#endif
-#define	j__udyAllocJLW		j__udyLAllocJLW
-#define	j__udyAllocJLB1		j__udyLAllocJLB1
-//				j__udyLAllocJV
-#define	j__udyFreeJPM		j__udyLFreeJLPM
-#define	j__udyFreeJBL		j__udyLFreeJBL
-#define	j__udyFreeJBB		j__udyLFreeJBB
-#define	j__udyFreeJBBJP		j__udyLFreeJBBJP
-#define	j__udyFreeJBU		j__udyLFreeJBU
-#define	j__udyFreeJLL1		j__udyLFreeJLL1
-#define	j__udyFreeJLL2		j__udyLFreeJLL2
-#define	j__udyFreeJLL3		j__udyLFreeJLL3
-#ifdef JU_64BIT
-#define	j__udyFreeJLL4		j__udyLFreeJLL4
-#define	j__udyFreeJLL5		j__udyLFreeJLL5
-#define	j__udyFreeJLL6		j__udyLFreeJLL6
-#define	j__udyFreeJLL7		j__udyLFreeJLL7
-#endif
-#define	j__udyFreeJLW		j__udyLFreeJLW
-#define	j__udyFreeJLB1		j__udyLFreeJLB1
-#define	j__udyFreeSM		j__udyLFreeSM
-//				j__udyLFreeJV
-
-#define	j__uMaxWords		j__uLMaxWords
-
-#ifdef DEBUG
-#define	JudyCheckPop		JudyLCheckPop
-#endif
-
-#endif // JUDYL
-
-#endif // _JUDYPRIVATE1L_INCLUDED
diff --git a/libs/klib/judy/JudyPrivateBranch.h b/libs/klib/judy/JudyPrivateBranch.h
deleted file mode 100644
index 4e0dda4..0000000
--- a/libs/klib/judy/JudyPrivateBranch.h
+++ /dev/null
@@ -1,777 +0,0 @@
-#ifndef _JUDY_PRIVATE_BRANCH_INCLUDED
-#define _JUDY_PRIVATE_BRANCH_INCLUDED
-// _________________
-//
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// Header file for all Judy sources, for global but private (non-exported)
-// declarations specific to branch support.
-//
-// See also the "Judy Shop Manual" (try judy/doc/int/JudyShopManual.*).
-
-
-// ****************************************************************************
-// JUDY POINTER (JP) SUPPORT
-// ****************************************************************************
-//
-// This "rich pointer" object is pivotal to Judy execution.
-//
-// JP CONTAINING OTHER THAN IMMEDIATE INDEXES:
-//
-// If the JP points to a linear or bitmap leaf, jp_DcdPopO contains the
-// Population-1 in LSbs and Decode (Dcd) bytes in the MSBs.  (In practice the
-// Decode bits are masked off while accessing the Pop0 bits.)
-//
-// The Decode Size, the number of Dcd bytes available, is encoded in jpo_Type.
-// It can also be thought of as the number of states "skipped" in the SM, where
-// each state decodes 8 bits = 1 byte.
-//
-// TBD:  Dont need two structures, except possibly to force jp_Type to highest
-// address!
-//
-// Note:  The jpo_u union is not required by HP-UX or Linux but Win32 because
-// the cl.exe compiler otherwise refuses to pack a bitfield (DcdPopO) with
-// anything else, even with the -Zp option.  This is pretty ugly, but
-// fortunately portable, and its all hide-able by macros (see below).
-
-typedef struct J_UDY_POINTER_OTHERS      // JPO.
-        {
-            Word_t      j_po_Addr;       // first word:  Pjp_t, Word_t, etc.
-            union {
-//              Word_t  j_po_DcdPop0:cJU_BITSPERWORD-cJU_BITSPERBYTE;
-                uint8_t j_po_DcdP0[sizeof(Word_t) - 1];
-                uint8_t j_po_Bytes[sizeof(Word_t)];     // last byte = jp_Type.
-            } jpo_u;
-        } jpo_t;
-
-
-// JP CONTAINING IMMEDIATE INDEXES:
-//
-// j_pi_1Index[] plus j_pi_LIndex[] together hold as many N-byte (1..3-byte
-// [1..7-byte]) Indexes as will fit in sizeof(jpi_t) less 1 byte for j_pi_Type
-// (that is, 7..1 [15..1] Indexes).
-//
-// For Judy1, j_pi_1Index[] is used and j_pi_LIndex[] is not used.
-// For JudyL, j_pi_LIndex[] is used and j_pi_1Index[] is not used.
-//
-// Note:  Actually when Pop1 = 1, jpi_t is not used, and the least bytes of the
-// single Index are stored in j_po_DcdPopO, for both Judy1 and JudyL, so for
-// JudyL the j_po_Addr field can hold the target value.
-//
-// TBD:  Revise this structure to not overload j_po_DcdPopO this way?  The
-// current arrangement works, its just confusing.
-
-typedef struct _JUDY_POINTER_IMMED      // JPI.
-        {
-            uint8_t j_pi_1Index[sizeof(Word_t)];        // see above.
-            uint8_t j_pi_LIndex[sizeof(Word_t) - 1];    // see above.
-            uint8_t j_pi_Type;                  // JP type, 1 of cJ*_JPIMMED*.
-        } jpi_t;
-
-
-// UNION OF JP TYPES:
-//
-// A branch is an array of cJU_BRANCHUNUMJPS (256) of this object, or an
-// alternate data type such as:  A linear branch which is a list of 2..7 JPs,
-// or a bitmap branch which contains 8 lists of 0..32 JPs.  JPs reside only in
-// branches of a Judy SM.
-
-typedef union J_UDY_POINTER             // JP.
-        {
-            jpo_t j_po;                 // other than immediate indexes.
-            jpi_t j_pi;                 // immediate indexes.
-        } jp_t, *Pjp_t;
-
-// For coding convenience:
-//
-// Note, jp_Type has the same bits in jpo_t and jpi_t.
-
-#define jp_1Index  j_pi.j_pi_1Index     // for storing Indexes in first  word.
-#define jp_LIndex  j_pi.j_pi_LIndex     // for storing Indexes in second word.
-#define jp_Addr    j_po.j_po_Addr
-//#define       jp_DcdPop0 j_po.jpo_u.j_po_DcdPop0
-#define jp_Type    j_po.jpo_u.j_po_Bytes[sizeof(Word_t) - 1]
-#define jp_DcdP0   j_po.jpo_u.j_po_DcdP0
-
-
-// ****************************************************************************
-// JUDY POINTER (JP) -- RELATED MACROS AND CONSTANTS
-// ****************************************************************************
-
-// EXTRACT VALUES FROM JP:
-//
-// Masks for the bytes in the Dcd and Pop0 parts of jp_DcdPopO:
-//
-// cJU_DCDMASK() consists of a mask that excludes the (LSb) Pop0 bytes and
-// also, just to be safe, the top byte of the word, since jp_DcdPopO is 1 byte
-// less than a full word.
-//
-// Note:  These are constant macros (cJU) because cPopBytes should be a
-// constant.  Also note cPopBytes == state in the SM.
-
-#define cJU_POP0MASK(cPopBytes) JU_LEASTBYTESMASK(cPopBytes)
-
-#define cJU_DCDMASK(cPopBytes) \
-        ((cJU_ALLONES >> cJU_BITSPERBYTE) & (~cJU_POP0MASK(cPopBytes)))
-
-// Mask off the high byte from INDEX to it can be compared to DcdPopO:
-
-#define JU_TRIMTODCDSIZE(INDEX) ((cJU_ALLONES >> cJU_BITSPERBYTE) & (INDEX))
-
-// Get from jp_DcdPopO the Pop0 for various branch JP Types:
-//
-// Note:  There are no simple macros for cJU_BRANCH* Types because their
-// populations must be added up and dont reside in an already-calculated
-// place.
-
-#define JU_JPBRANCH_POP0(PJP,cPopBytes) \
-        (JU_JPDCDPOP0(PJP) & cJU_POP0MASK(cPopBytes))
-
-// METHOD FOR DETERMINING IF OBJECTS HAVE ROOM TO GROW:
-//
-// J__U_GROWCK() is a generic method to determine if an object can grow in
-// place, based on whether the next population size (one more) would use the
-// same space.
-
-#define J__U_GROWCK(POP1,MAXPOP1,POPTOWORDS) \
-        (((POP1) != (MAXPOP1)) && (POPTOWORDS[POP1] == POPTOWORDS[(POP1) + 1]))
-
-#define JU_BRANCHBJPGROWINPLACE(NumJPs) \
-        J__U_GROWCK(NumJPs, cJU_BITSPERSUBEXPB, j__U_BranchBJPPopToWords)
-
-
-// DETERMINE IF AN INDEX IS (NOT) IN A JPS EXPANSE:
-
-#define JU_DCDNOTMATCHINDEX(INDEX,PJP,POP0BYTES) \
-        (((INDEX) ^ JU_JPDCDPOP0(PJP)) & cJU_DCDMASK(POP0BYTES))
-
-
-// NUMBER OF JPs IN AN UNCOMPRESSED BRANCH:
-//
-// An uncompressed branch is simply an array of 256 Judy Pointers (JPs).  It is
-// a minimum cacheline fill object.  Define it here before its first needed.
-
-#define cJU_BRANCHUNUMJPS  cJU_SUBEXPPERSTATE
-
-
-// ****************************************************************************
-// JUDY BRANCH LINEAR (JBL) SUPPORT
-// ****************************************************************************
-//
-// A linear branch is a way of compressing empty expanses (null JPs) out of an
-// uncompressed 256-way branch, when the number of populated expanses is so
-// small that even a bitmap branch is excessive.
-//
-// The maximum number of JPs in a Judy linear branch:
-//
-// Note:  This number results in a 1-cacheline sized structure.  Previous
-// versions had a larger struct so a linear branch didnt become a bitmap
-// branch until the memory consumed was even, but for speed, its better to
-// switch "sooner" and keep a linear branch fast.
-
-#define cJU_BRANCHLMAXJPS 7
-
-
-// LINEAR BRANCH STRUCT:
-//
-// 1-byte count, followed by array of byte-sized expanses, followed by JPs.
-
-typedef struct J__UDY_BRANCH_LINEAR
-        {
-            uint8_t jbl_NumJPs;                     // num of JPs (Pjp_t), 1..N.
-            uint8_t jbl_Expanse[cJU_BRANCHLMAXJPS]; // 1..7 MSbs of pop exps.
-            jp_t    jbl_jp     [cJU_BRANCHLMAXJPS]; // JPs for populated exps.
-        } jbl_t, * Pjbl_t;
-
-
-// ****************************************************************************
-// JUDY BRANCH BITMAP (JBB) SUPPORT
-// ****************************************************************************
-//
-// A bitmap branch is a way of compressing empty expanses (null JPs) out of
-// uncompressed 256-way branch.  This costs 1 additional cache line fill, but
-// can save a lot of memory when it matters most, near the leaves, and
-// typically there will be only one at most in the path to any Index (leaf).
-//
-// The bitmap indicates which of the cJU_BRANCHUNUMJPS (256) JPs in the branch
-// are NOT null, that is, their expanses are populated.  The jbb_t also
-// contains N pointers to "mini" Judy branches ("subexpanses") of up to M JPs
-// each (see BITMAP_BRANCHMxN, for example, BITMAP_BRANCH32x8), where M x N =
-// cJU_BRANCHUNUMJPS.  These are dynamically allocated and never contain
-// cJ*_JPNULL* jp_Types.  An empty subexpanse is represented by no bit sets in
-// the corresponding subexpanse bitmap, in which case the corresponding
-// jbbs_Pjp pointers value is unused.
-//
-// Note that the number of valid JPs in each 1-of-N subexpanses is determined
-// by POPULATION rather than by EXPANSE -- the desired outcome to save memory
-// when near the leaves.  Note that the memory required for 185 JPs is about as
-// much as an uncompressed 256-way branch, therefore 184 is set as the maximum.
-// However, it is expected that a conversion to an uncompressed 256-way branch
-// will normally take place before this limit is reached for other reasons,
-// such as improving performance when the "wasted" memory is well amortized by
-// the population under the branch, preserving an acceptable overall
-// bytes/Index in the Judy array.
-//
-// The number of pointers to arrays of JPs in the Judy bitmap branch:
-//
-// Note:  The numbers below are the same in both 32 and 64 bit systems.
-
-#define cJU_BRANCHBMAXJPS  184          // maximum JPs for bitmap branches.
-
-// Convenience wrappers for referencing BranchB bitmaps or JP subarray
-// pointers:
-//
-// Note:  JU_JBB_PJP produces a "raw" memory address that must pass through
-// P_JP before use, except when freeing memory:
-
-#define JU_JBB_BITMAP(Pjbb, SubExp)  ((Pjbb)->jbb_jbbs[SubExp].jbbs_Bitmap)
-#define JU_JBB_PJP(   Pjbb, SubExp)  ((Pjbb)->jbb_jbbs[SubExp].jbbs_Pjp)
-
-#define JU_SUBEXPB(Digit) (((Digit) / cJU_BITSPERSUBEXPB) & (cJU_NUMSUBEXPB-1))
-
-#define JU_BITMAPTESTB(Pjbb, Index) \
-        (JU_JBB_BITMAP(Pjbb, JU_SUBEXPB(Index)) &  JU_BITPOSMASKB(Index))
-
-#define JU_BITMAPSETB(Pjbb, Index)  \
-        (JU_JBB_BITMAP(Pjbb, JU_SUBEXPB(Index)) |= JU_BITPOSMASKB(Index))
-
-// Note:  JU_BITMAPCLEARB is not defined because the code does it a faster way.
-
-typedef struct J__UDY_BRANCH_BITMAP_SUBEXPANSE
-        {
-            BITMAPB_t jbbs_Bitmap;
-            Pjp_t     jbbs_Pjp;
-
-        } jbbs_t;
-
-typedef struct J__UDY_BRANCH_BITMAP
-        {
-            jbbs_t jbb_jbbs   [cJU_NUMSUBEXPB];
-#ifdef SUBEXPCOUNTS
-            Word_t jbb_subPop1[cJU_NUMSUBEXPB];
-#endif
-        } jbb_t, * Pjbb_t;
-
-#define JU_BRANCHJP_NUMJPSTOWORDS(NumJPs) (j__U_BranchBJPPopToWords[NumJPs])
-
-#ifdef SUBEXPCOUNTS
-#define cJU_NUMSUBEXPU  16      // number of subexpanse counts.
-#endif
-
-
-// ****************************************************************************
-// JUDY BRANCH UNCOMPRESSED (JBU) SUPPORT
-// ****************************************************************************
-
-// Convenience wrapper for referencing BranchU JPs:
-//
-// Note:  This produces a non-"raw" address already passed through P_JBU().
-
-#define JU_JBU_PJP(Pjp,Index,Level) \
-        (&((P_JBU((Pjp)->jp_Addr))->jbu_jp[JU_DIGITATSTATE(Index, Level)]))
-#define JU_JBU_PJP0(Pjp) \
-        (&((P_JBU((Pjp)->jp_Addr))->jbu_jp[0]))
-
-typedef struct J__UDY_BRANCH_UNCOMPRESSED
-        {
-            jp_t   jbu_jp     [cJU_BRANCHUNUMJPS];  // JPs for populated exp.
-#ifdef SUBEXPCOUNTS
-            Word_t jbu_subPop1[cJU_NUMSUBEXPU];
-#endif
-        } jbu_t, * Pjbu_t;
-
-
-// ****************************************************************************
-// OTHER SUPPORT FOR JUDY STATE MACHINES (SMs)
-// ****************************************************************************
-
-// OBJECT SIZES IN WORDS:
-//
-// Word_ts per various JudyL structures that have constant sizes.
-// cJU_WORDSPERJP should always be 2; this is fundamental to the Judy
-// structures.
-
-#define cJU_WORDSPERJP (sizeof(jp_t)   / cJU_BYTESPERWORD)
-#define cJU_WORDSPERCL (cJU_BYTESPERCL / cJU_BYTESPERWORD)
-
-
-// OPPORTUNISTIC UNCOMPRESSION:
-//
-// Define populations at which a BranchL or BranchB must convert to BranchU.
-// Earlier conversion is possible with good memory efficiency -- see below.
-
-#ifndef NO_BRANCHU
-
-// Max population below BranchL, then convert to BranchU:
-
-#define JU_BRANCHL_MAX_POP      1000
-
-// Minimum global population increment before next conversion of a BranchB to a
-// BranchU:
-//
-// This is was done to allow malloc() to coalesce memory before the next big
-// (~512 words) allocation.
-
-#define JU_BTOU_POP_INCREMENT    300
-
-// Min/max population below BranchB, then convert to BranchU:
-
-#define JU_BRANCHB_MIN_POP       135
-#define JU_BRANCHB_MAX_POP       750
-
-#else // NO_BRANCHU
-
-// These are set up to have conservative conversion schedules to BranchU:
-
-#define JU_BRANCHL_MAX_POP      (-1UL)
-#define JU_BTOU_POP_INCREMENT      300
-#define JU_BRANCHB_MIN_POP        1000
-#define JU_BRANCHB_MAX_POP      (-1UL)
-
-#endif // NO_BRANCHU
-
-
-// MISCELLANEOUS MACROS:
-
-// Get N most significant bits from the shifted Index word:
-//
-// As Index words are decoded, they are shifted left so only relevant,
-// undecoded Index bits remain.
-
-#define JU_BITSFROMSFTIDX(SFTIDX, N)  ((SFTIDX) >> (cJU_BITSPERWORD - (N)))
-
-// TBD:  I have my doubts about the necessity of these macros (dlb):
-
-// Produce 1-digit mask at specified state:
-
-#define cJU_MASKATSTATE(State)  ((Word_t)0xff << (((State) - 1) * cJU_BITSPERBYTE))
-
-// Get byte (digit) from Index at the specified state, right justified:
-//
-// Note:  State must be 1..cJU_ROOTSTATE, and Digits must be 1..(cJU_ROOTSTATE
-// - 1), but theres no way to assert these within an expression.
-
-#define JU_DIGITATSTATE(Index,cState) \
-         ((uint8_t)((Index) >> (((cState) - 1) * cJU_BITSPERBYTE)))
-
-// Similarly, place byte (digit) at correct position for the specified state:
-//
-// Note:  Cast digit to a Word_t first so there are no complaints or problems
-// about shifting it more than 32 bits on a 64-bit system, say, when it is a
-// uint8_t from jbl_Expanse[].  (Believe it or not, the C standard says to
-// promote an unsigned char to a signed int; -Ac does not do this, but -Ae
-// does.)
-//
-// Also, to make lint happy, cast the whole result again because apparently
-// shifting a Word_t does not result in a Word_t!
-
-#define JU_DIGITTOSTATE(Digit,cState) \
-        ((Word_t) (((Word_t) (Digit)) << (((cState) - 1) * cJU_BITSPERBYTE)))
-
-#endif // ! _JUDY_PRIVATE_BRANCH_INCLUDED
-
-
-#ifdef TEST_INSDEL
-
-// ****************************************************************************
-// TEST CODE FOR INSERT/DELETE MACROS
-// ****************************************************************************
-//
-// To use this, compile a temporary *.c file containing:
-//
-//      #define DEBUG
-//      #define JUDY_ASSERT
-//      #define TEST_INSDEL
-//      #include "JudyPrivate.h"
-//      #include "JudyPrivateBranch.h"
-//
-// Use a command like this:  cc -Ae +DD64 -I. -I JudyCommon -o t t.c
-// For best results, include +DD64 on a 64-bit system.
-//
-// This test code exercises some tricky macros, but the output must be studied
-// manually to verify it.  Assume that for even-index testing, whole words
-// (Word_t) suffices.
-
-#include <stdio.h>
-
-#define INDEXES 3               // in each array.
-
-
-// ****************************************************************************
-// I N I T
-//
-// Set up variables for next test.  See usage.
-
-FUNCTION void Init (
-        int       base,
-        PWord_t   PeIndex,
-        PWord_t   PoIndex,
-        PWord_t   Peleaf,       // always whole words.
-#ifndef JU_64BIT
-        uint8_t * Poleaf3)
-#else
-        uint8_t * Poleaf3,
-        uint8_t * Poleaf5,
-        uint8_t * Poleaf6,
-        uint8_t * Poleaf7)
-#endif
-{
-        int offset;
-
-        *PeIndex = 99;
-
-        for (offset = 0; offset <= INDEXES; ++offset)
-            Peleaf[offset] = base + offset;
-
-        for (offset = 0; offset < (INDEXES + 1) * 3; ++offset)
-            Poleaf3[offset] = base + offset;
-
-#ifndef JU_64BIT
-        *PoIndex = (91 << 24) | (92 << 16) | (93 << 8) | 94;
-#else
-
-        *PoIndex = (91L << 56) | (92L << 48) | (93L << 40) | (94L << 32)
-                 | (95L << 24) | (96L << 16) | (97L <<  8) |  98L;
-
-        for (offset = 0; offset < (INDEXES + 1) * 5; ++offset)
-            Poleaf5[offset] = base + offset;
-
-        for (offset = 0; offset < (INDEXES + 1) * 6; ++offset)
-            Poleaf6[offset] = base + offset;
-
-        for (offset = 0; offset < (INDEXES + 1) * 7; ++offset)
-            Poleaf7[offset] = base + offset;
-#endif
-
-} // Init()
-
-
-// ****************************************************************************
-// P R I N T   L E A F
-//
-// Print the byte values in a leaf.
-
-FUNCTION void PrintLeaf (
-        char *    Label,        // for output.
-        int       IOffset,      // insertion offset in array.
-        int       Indsize,      // index size in bytes.
-        uint8_t * PLeaf)        // array of Index bytes.
-{
-        int       offset;       // in PLeaf.
-        int       byte;         // in one word.
-
-        (void) printf("%s %u: ", Label, IOffset);
-
-        for (offset = 0; offset <= INDEXES; ++offset)
-        {
-            for (byte = 0; byte < Indsize; ++byte)
-                (void) printf("%2d", PLeaf[(offset * Indsize) + byte]);
-
-            (void) printf(" ");
-        }
-
-        (void) printf("\n");
-
-} // PrintLeaf()
-
-
-// ****************************************************************************
-// M A I N
-//
-// Test program.
-
-FUNCTION main()
-{
-        Word_t  eIndex;                         // even, to insert.
-        Word_t  oIndex;                         // odd,  to insert.
-        Word_t  eleaf [ INDEXES + 1];           // even leaf, index size 4.
-        uint8_t oleaf3[(INDEXES + 1) * 3];      // odd leaf,  index size 3.
-#ifdef JU_64BIT
-        uint8_t oleaf5[(INDEXES + 1) * 5];      // odd leaf,  index size 5.
-        uint8_t oleaf6[(INDEXES + 1) * 6];      // odd leaf,  index size 6.
-        uint8_t oleaf7[(INDEXES + 1) * 7];      // odd leaf,  index size 7.
-#endif
-        Word_t  eleaf_2 [ INDEXES + 1];         // same, but second arrays:
-        uint8_t oleaf3_2[(INDEXES + 1) * 3];
-#ifdef JU_64BIT
-        uint8_t oleaf5_2[(INDEXES + 1) * 5];
-        uint8_t oleaf6_2[(INDEXES + 1) * 6];
-        uint8_t oleaf7_2[(INDEXES + 1) * 7];
-#endif
-        int     ioffset;                // index insertion offset.
-
-#ifndef JU_64BIT
-#define INIT        Init( 0, & eIndex, & oIndex, eleaf,   oleaf3)
-#define INIT2 INIT; Init(50, & eIndex, & oIndex, eleaf_2, oleaf3_2)
-#else
-#define INIT        Init( 0, & eIndex, & oIndex, eleaf,   oleaf3, \
-                         oleaf5,   oleaf6,   oleaf7)
-#define INIT2 INIT; Init(50, & eIndex, & oIndex, eleaf_2, oleaf3_2, \
-                         oleaf5_2, oleaf6_2, oleaf7_2)
-#endif
-
-#define WSIZE sizeof (Word_t)           // shorthand.
-
-#ifdef PRINTALL                 // to turn on "noisy" printouts.
-#define PRINTLEAF(Label,IOffset,Indsize,PLeaf) \
-        PrintLeaf(Label,IOffset,Indsize,PLeaf)
-#else
-#define PRINTLEAF(Label,IOffset,Indsize,PLeaf)  \
-        if (ioffset == 0)                       \
-        PrintLeaf(Label,IOffset,Indsize,PLeaf)
-#endif
-
-        (void) printf(
-"In each case, tests operate on an initial array of %d indexes.  Even-index\n"
-"tests set index values to 0,1,2...; odd-index tests set byte values to\n"
-"0,1,2...  Inserted indexes have a value of 99 or else byte values 91,92,...\n",
-                        INDEXES);
-
-        (void) puts("\nJU_INSERTINPLACE():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, WSIZE, (uint8_t *) eleaf);
-            JU_INSERTINPLACE(eleaf, INDEXES, ioffset, eIndex);
-            PrintLeaf("After ", ioffset, WSIZE, (uint8_t *) eleaf);
-        }
-
-        (void) puts("\nJU_INSERTINPLACE3():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 3, oleaf3);
-            JU_INSERTINPLACE3(oleaf3, INDEXES, ioffset, oIndex);
-            PrintLeaf("After ", ioffset, 3, oleaf3);
-        }
-
-#ifdef JU_64BIT
-        (void) puts("\nJU_INSERTINPLACE5():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 5, oleaf5);
-            JU_INSERTINPLACE5(oleaf5, INDEXES, ioffset, oIndex);
-            PrintLeaf("After ", ioffset, 5, oleaf5);
-        }
-
-        (void) puts("\nJU_INSERTINPLACE6():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 6, oleaf6);
-            JU_INSERTINPLACE6(oleaf6, INDEXES, ioffset, oIndex);
-            PrintLeaf("After ", ioffset, 6, oleaf6);
-        }
-
-        (void) puts("\nJU_INSERTINPLACE7():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 7, oleaf7);
-            JU_INSERTINPLACE7(oleaf7, INDEXES, ioffset, oIndex);
-            PrintLeaf("After ", ioffset, 7, oleaf7);
-        }
-#endif // JU_64BIT
-
-        (void) puts("\nJU_DELETEINPLACE():");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, WSIZE, (uint8_t *) eleaf);
-            JU_DELETEINPLACE(eleaf, INDEXES, ioffset);
-            PrintLeaf("After ", ioffset, WSIZE, (uint8_t *) eleaf);
-        }
-
-        (void) puts("\nJU_DELETEINPLACE_ODD(3):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 3, oleaf3);
-            JU_DELETEINPLACE_ODD(oleaf3, INDEXES, ioffset, 3);
-            PrintLeaf("After ", ioffset, 3, oleaf3);
-        }
-
-#ifdef JU_64BIT
-        (void) puts("\nJU_DELETEINPLACE_ODD(5):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 5, oleaf5);
-            JU_DELETEINPLACE_ODD(oleaf5, INDEXES, ioffset, 5);
-            PrintLeaf("After ", ioffset, 5, oleaf5);
-        }
-
-        (void) puts("\nJU_DELETEINPLACE_ODD(6):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 6, oleaf6);
-            JU_DELETEINPLACE_ODD(oleaf6, INDEXES, ioffset, 6);
-            PrintLeaf("After ", ioffset, 6, oleaf6);
-        }
-
-        (void) puts("\nJU_DELETEINPLACE_ODD(7):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT;
-            PRINTLEAF("Before", ioffset, 7, oleaf7);
-            JU_DELETEINPLACE_ODD(oleaf7, INDEXES, ioffset, 7);
-            PrintLeaf("After ", ioffset, 7, oleaf7);
-        }
-#endif // JU_64BIT
-
-        (void) puts("\nJU_INSERTCOPY():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, WSIZE, (uint8_t *) eleaf);
-            PRINTLEAF("Before, dest", ioffset, WSIZE, (uint8_t *) eleaf_2);
-            JU_INSERTCOPY(eleaf_2, eleaf, INDEXES, ioffset, eIndex);
-            PRINTLEAF("After,  src ", ioffset, WSIZE, (uint8_t *) eleaf);
-            PrintLeaf("After,  dest", ioffset, WSIZE, (uint8_t *) eleaf_2);
-        }
-
-        (void) puts("\nJU_INSERTCOPY3():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 3, oleaf3);
-            PRINTLEAF("Before, dest", ioffset, 3, oleaf3_2);
-            JU_INSERTCOPY3(oleaf3_2, oleaf3, INDEXES, ioffset, oIndex);
-            PRINTLEAF("After,  src ", ioffset, 3, oleaf3);
-            PrintLeaf("After,  dest", ioffset, 3, oleaf3_2);
-        }
-
-#ifdef JU_64BIT
-        (void) puts("\nJU_INSERTCOPY5():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 5, oleaf5);
-            PRINTLEAF("Before, dest", ioffset, 5, oleaf5_2);
-            JU_INSERTCOPY5(oleaf5_2, oleaf5, INDEXES, ioffset, oIndex);
-            PRINTLEAF("After,  src ", ioffset, 5, oleaf5);
-            PrintLeaf("After,  dest", ioffset, 5, oleaf5_2);
-        }
-
-        (void) puts("\nJU_INSERTCOPY6():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 6, oleaf6);
-            PRINTLEAF("Before, dest", ioffset, 6, oleaf6_2);
-            JU_INSERTCOPY6(oleaf6_2, oleaf6, INDEXES, ioffset, oIndex);
-            PRINTLEAF("After,  src ", ioffset, 6, oleaf6);
-            PrintLeaf("After,  dest", ioffset, 6, oleaf6_2);
-        }
-
-        (void) puts("\nJU_INSERTCOPY7():");
-
-        for (ioffset = 0; ioffset <= INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 7, oleaf7);
-            PRINTLEAF("Before, dest", ioffset, 7, oleaf7_2);
-            JU_INSERTCOPY7(oleaf7_2, oleaf7, INDEXES, ioffset, oIndex);
-            PRINTLEAF("After,  src ", ioffset, 7, oleaf7);
-            PrintLeaf("After,  dest", ioffset, 7, oleaf7_2);
-        }
-#endif // JU_64BIT
-
-        (void) puts("\nJU_DELETECOPY():");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, WSIZE, (uint8_t *) eleaf);
-            PRINTLEAF("Before, dest", ioffset, WSIZE, (uint8_t *) eleaf_2);
-            JU_DELETECOPY(eleaf_2, eleaf, INDEXES, ioffset, ignore);
-            PRINTLEAF("After,  src ", ioffset, WSIZE, (uint8_t *) eleaf);
-            PrintLeaf("After,  dest", ioffset, WSIZE, (uint8_t *) eleaf_2);
-        }
-
-        (void) puts("\nJU_DELETECOPY_ODD(3):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 3, oleaf3);
-            PRINTLEAF("Before, dest", ioffset, 3, oleaf3_2);
-            JU_DELETECOPY_ODD(oleaf3_2, oleaf3, INDEXES, ioffset, 3);
-            PRINTLEAF("After,  src ", ioffset, 3, oleaf3);
-            PrintLeaf("After,  dest", ioffset, 3, oleaf3_2);
-        }
-
-#ifdef JU_64BIT
-        (void) puts("\nJU_DELETECOPY_ODD(5):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 5, oleaf5);
-            PRINTLEAF("Before, dest", ioffset, 5, oleaf5_2);
-            JU_DELETECOPY_ODD(oleaf5_2, oleaf5, INDEXES, ioffset, 5);
-            PRINTLEAF("After,  src ", ioffset, 5, oleaf5);
-            PrintLeaf("After,  dest", ioffset, 5, oleaf5_2);
-        }
-
-        (void) puts("\nJU_DELETECOPY_ODD(6):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 6, oleaf6);
-            PRINTLEAF("Before, dest", ioffset, 6, oleaf6_2);
-            JU_DELETECOPY_ODD(oleaf6_2, oleaf6, INDEXES, ioffset, 6);
-            PRINTLEAF("After,  src ", ioffset, 6, oleaf6);
-            PrintLeaf("After,  dest", ioffset, 6, oleaf6_2);
-        }
-
-        (void) puts("\nJU_DELETECOPY_ODD(7):");
-
-        for (ioffset = 0; ioffset < INDEXES; ++ioffset)
-        {
-            INIT2;
-            PRINTLEAF("Before, src ", ioffset, 7, oleaf7);
-            PRINTLEAF("Before, dest", ioffset, 7, oleaf7_2);
-            JU_DELETECOPY_ODD(oleaf7_2, oleaf7, INDEXES, ioffset, 7);
-            PRINTLEAF("After,  src ", ioffset, 7, oleaf7);
-            PrintLeaf("After,  dest", ioffset, 7, oleaf7_2);
-        }
-#endif // JU_64BIT
-
-        return(0);
-
-} // main()
-
-#endif // TEST_INSDEL
diff --git a/libs/klib/judy/JudySL.c b/libs/klib/judy/JudySL.c
deleted file mode 100644
index 637782d..0000000
--- a/libs/klib/judy/JudySL.c
+++ /dev/null
@@ -1,1125 +0,0 @@
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-// JUDY FUNCTIONS FOR STRING INDEXES, where associated values are longs.  One
-// JudySL*() corresponds to each JudyL*() function (with exceptions).
-//
-// See the manual entry for details.
-//
-// METHOD:  Break up each null-terminated Index (string) into chunks of W
-// bytes, where W is the machines word size, with null-padding in the last
-// word if necessary.  Store strings as a tree of JudyL arrays, that is, array
-// of array of array...  where each level consumes W bytes (one word) as an
-// index to the JudyL array at that level.  Since strings can begin on
-// arbitrary byte boundaries, copy each chunk of W bytes from Index into a
-// word-aligned object before using it as a Judy index.
-//
-// The JudySL tree also supports "single-index shortcut leaves".  A simple
-// JudySL array (tree of JudyL arrays) would go as many levels deep as the
-// Index (string) is long, which wastes time and memory when an Index is unique
-// beyond a certain point.  When theres just one Index under a pointer, given
-// a reliable way to tell that the pointer is not a root pointer to another
-// JudyL array, it should save a lot of time to instead point to a "leaf"
-// object, similar to leaves in JudyL arrays.
-//
-// TBD:  Multi-index leaves, like those in JudyL, are also worth considering,
-// but their payback for JudySL is less certain.  Likewise, shortcut branches
-// are worth considering too.
-//
-// This code uses the Judy.h definitions and Doug Baskins convention of a "P"
-// prefix for pointers, except no "P" for the first level of char * (strings).
-
-// IMPORTS:
-
-#include <string.h>                     // for strcmp(), strlen(), strcpy()
-#include <Judy.h>
-
-#ifndef NDEDUG
-#define NDEBUG 1
-#endif
-#include <assert.h>
-
-//=======================================================================
-// Compile:
-//
-//    cc -O JudyHS.c -c
-//
-//    Notes:
-//    1) use -DJU_64BIT for 64 bit compiles (HP, Sun, IPF, Motorola/IBM? etc..)
-//    2) In gcc version 3.3.1 for a Centrino, -O2 is faster than -O
-//    3) In gcc version 3.3.2 for a Centrino, -O3 is faster than -O2
-//=======================================================================
-
-#define JU_SET_ERRNO(PJERROR, JERRNO)           \
-{                                               \
-    if (PJERROR != (PJError_t)NULL)             \
-    {                                           \
-        JU_ERRNO(PJERROR) = (JERRNO);           \
-        JU_ERRID(PJERROR) = __LINE__;           \
-    }                                           \
-}
-
-#define JU_SET_ERRNO_NONNULL(PJERROR, JERRNO)   \
-{                                               \
-    JU_ERRNO(PJERROR) = (JERRNO);               \
-    JU_ERRID(PJERROR) = __LINE__;               \
-}
-
-// SUPPORT FOR HANDLING WORDS:
-
-#define WORDSIZE     (sizeof (Word_t))  // bytes in word = JudyL index.
-#define WORDS(BYTES) (((BYTES) + WORDSIZE - 1) / WORDSIZE)      // round up.
-
-// To mark a pointer is to a "short cut leaf", set least bit
-
-#define IS_PSCL(PSCL)     (((Word_t) (PSCL)) & JLAP_INVALID)
-#define CLEAR_PSCL(PSCL)  ((Pscl_t)(((Word_t) (PSCL)) & (~JLAP_INVALID)))
-#define SET_PSCL(PSCL)    (((Word_t) (PSCL)) | JLAP_INVALID)
-
-// MISCELLANEOUS GLOBALS:
-
-// Get the Index (string) length in bytes, including the trailing \0, which
-// is an integral part of the string:
-
-// A string is "in the last word" if a previously-set byte count is at or below
-// the system word size, or in some cases if the last byte in the (null-padded)
-// word is null (assume big-endian, including in a register on a little-endian
-// machine):
-
-#define LASTWORD_BY_VALUE(WORD) (! ((WORD) & 0xffL))
-
-#ifdef JU_64BIT
-
-// copy from 1..7 bytes from string to Word_t and test if \0 bytes
-//
-#define        COPYSTRINGtoWORD(WORD,STR)               \
-{                                                       \
-    do                                                  \
-    {                                                   \
-        uint8_t chr;                                    \
-        WORD =      (Word_t)(STR)[0] << 56;             \
-        if (!(WORD)) break;                             \
-        if (!(chr  = (STR)[1])) break;                  \
-        WORD += ((Word_t)(chr) << 48);                  \
-        if (!(chr  = (STR)[2])) break;                  \
-        WORD += ((Word_t)(chr) << 40);                  \
-        if (!(chr  = (STR)[3])) break;                  \
-        WORD += ((Word_t)(chr) << 32);                  \
-        if (!(chr  = (STR)[4])) break;                  \
-        WORD += ((Word_t)(chr) << 24);                  \
-        if (!(chr  = (STR)[5])) break;                  \
-        WORD += ((Word_t)(chr) << 16);                  \
-        if (!(chr  = (STR)[6])) break;                  \
-        WORD += ((Word_t)(chr) << 8) + (STR)[7];        \
-    } while(0);                                         \
-}
-
-// copy Word_t from 1..8 bytes to string and test of \0 bytes
-//
-#define         COPYWORDtoSTRING(STR,WORD)                      \
-{                                                               \
-    do                                                          \
-    {                                                           \
-        if (!((STR)[0] = (uint8_t)((WORD) >> 56))) break;       \
-        if (!((STR)[1] = (uint8_t)((WORD) >> 48))) break;       \
-        if (!((STR)[2] = (uint8_t)((WORD) >> 40))) break;       \
-        if (!((STR)[3] = (uint8_t)((WORD) >> 32))) break;       \
-        if (!((STR)[4] = (uint8_t)((WORD) >> 24))) break;       \
-        if (!((STR)[5] = (uint8_t)((WORD) >> 16))) break;       \
-        if (!((STR)[6] = (uint8_t)((WORD) >>  8))) break;       \
-        (STR)[7]       = (uint8_t)(WORD);                       \
-    } while(0);                                                 \
-}
-
-#else  // JU_32BIT
-
-// copy from 1..4 bytes from string to Word_t and test if \0 bytes
-
-#define        COPYSTRINGtoWORD(WORD,STR)               \
-{                                                       \
-    do                                                  \
-    {                                                   \
-        uint8_t chr;                                    \
-        WORD =       (STR)[0] << 24;                    \
-        if (WORD == 0) break;                           \
-        if (!(chr  = (STR)[1])) break;                  \
-        WORD += (Word_t)(chr << 16);                    \
-        if (!(chr  = (STR)[2])) break;                  \
-        WORD += (Word_t)(chr << 8) + (STR)[3];          \
-    } while(0);                                         \
-}
-
-// copy Word_t from 1..4 bytes to string and test of \0 bytes
-
-#define        COPYWORDtoSTRING(STR,WORD)                       \
-{                                                               \
-    do                                                          \
-    {                                                           \
-        if (!((STR)[0] = (uint8_t)((WORD) >> 24))) break;       \
-        if (!((STR)[1] = (uint8_t)((WORD) >> 16))) break;       \
-        if (!((STR)[2] = (uint8_t)((WORD) >>  8))) break;       \
-        (STR)[3]       = (uint8_t)(WORD);                       \
-    } while(0);                                                 \
-}
-#endif // JU_32BIT
-
-
-// SUPPORT FOR SINGLE-INDEX SHORTCUT LEAVES:
-
-typedef struct SHORCUTLEAF
-{
-    Pvoid_t   scl_Pvalue;               // callers value area.
-    uint8_t   scl_Index[WORDSIZE];      // base Index string.
-} scl_t  , *Pscl_t;
-
-// overhead of the scl_Pvalue only, the scl_Index is calculate elsewhere
-
-#define STRUCTOVD       (sizeof(scl_t) - WORDSIZE)
-
-// How big to malloc a shortcut leaf; stringlen should already include the
-// trailing null char:
-
-#define SCLSIZE(LEN)  (((LEN) + STRUCTOVD + WORDSIZE - 1) / WORDSIZE)
-
-// string routines, may replace with your own
-//
-#define STRCMP(S1,S2)   strcmp((void *)(S1), (void *)(S2))
-#define STRCPY(S1,S2)   strcpy((void *)(S1), (void *)(S2))
-#define STRLEN(S1)      (strlen((void *)(S1)) + 1)
-
-
-// Index and value area for a shortcut leaf, depending on how it matches the
-// undecoded remainder of the Index, given a Pscl_t that includes type bits
-// that must be cleared:
-//
-// PSCLINDEX() and PSCLVALUE() are also useful when Pscl contains uncleared
-// TYPE bits.
-//
-// Note:  SCLCMP() cannot take advantage of knowing the Index length because
-// the scl_Index length is not pre-known when these macros are used.
-
-#define PSCLINDEX(PSCL)  ((CLEAR_PSCL(PSCL))->scl_Index)
-#define PSCLVALUE(PSCL)  ((CLEAR_PSCL(PSCL))->scl_Pvalue)
-
-#define SCLCMP(INDEX,PSCL) STRCMP(INDEX, PSCLINDEX(PSCL))
-
-#define PPSCLVALUE_EQ(INDEX,PSCL)                                       \
-    ((SCLCMP(INDEX, PSCL) == 0) ? &PSCLVALUE(PSCL) : (PPvoid_t)NULL)
-
-#define PPSCLVALUE_LT(INDEX,PSCL)                                       \
-    ((SCLCMP(INDEX, PSCL) < 0) ? &PSCLVALUE(PSCL) : (PPvoid_t)NULL)
-
-#define PPSCLVALUE_GT(INDEX,PSCL)                                       \
-    ((SCLCMP(INDEX, PSCL) > 0) ? &PSCLVALUE(PSCL) : (PPvoid_t)NULL)
-
-// Common in-lined code to append or free a shortcut leaf:
-//
-// See header comments about premature return().  Note that malloc() does not
-// pre-zero the memory, so ensure scl_Pvalue is zeroed, just like a value area
-// in a JudyL array.  Hope strcpy() is fast enough in this context.
-
-#define APPEND_SCL(PSCL,PPARRAY,INDEX,LEN,PJERROR)                      \
-{                                                                       \
-    if (((PSCL) = (Pscl_t) JudyMalloc(SCLSIZE(LEN))) == (Pscl_t)NULL)   \
-    {                                                                   \
-        JU_SET_ERRNO(PJERROR, JU_ERRNO_NOMEM);                          \
-        return (PPJERR);                                                \
-    }                                                                   \
-    *(PPARRAY) = (Pvoid_t)SET_PSCL(PSCL);                               \
-    ((PSCL)->scl_Pvalue) = (Pvoid_t)NULL;                               \
-    (void)STRCPY((PSCL)->scl_Index, INDEX);                             \
-}
-
-// "FORWARD" DECLARATIONS:
-
-static void JudySLModifyErrno(PJError_t PJError,
-                              Pcvoid_t PArray, Pcvoid_t PArrayOrig);
-static int JudySLDelSub(PPvoid_t PPArray, PPvoid_t PPArrayOrig,
-                        const uint8_t * Index, Word_t len, PJError_t PJError);
-static PPvoid_t JudySLPrevSub(Pcvoid_t PArray, uint8_t * Index, int orig,
-                              Word_t len, PJError_t PJError);
-static PPvoid_t JudySLNextSub(Pcvoid_t PArray, uint8_t * Index, int orig,
-                              Word_t len, PJError_t PJError);
-
-// ****************************************************************************
-// J U D Y   S L   M O D I F Y   E R R N O
-//
-// Common code for error translation:  When a caller passes an invalid JAP
-// ("not a JudyL pointer"), OR if the JudySL array is corrupted at a lower
-// level, various JudyL*() calls return JU_ERRNO_NOTJUDYL.  If the caller wants
-// detailed error info, convert this particular error to JU_ERRNO_NOTJUDYSL if
-// at the top of the tree, otherwise convert it to JU_ERRNO_CORRUPT, meaning
-// there was a corruption (the only one even detectable outside JudyL) in the
-// JudySL tree; but pass through any other errors unaltered.
-
-static void
-JudySLModifyErrno(PJError_t PJError,    // to modify if non-null.
-                  Pcvoid_t PArray,      // current JudyL array.
-                  Pcvoid_t PArrayOrig   // top-of-tree JudyL array.
-    )
-{                                       //  map this Judy errno.
-    if ((PJError != PJE0) && (JU_ERRNO(PJError) == JU_ERRNO_NOTJUDYL))
-    {
-        if (PArray == PArrayOrig)       // callers fault.
-        {
-            JU_SET_ERRNO_NONNULL(PJError, JU_ERRNO_NOTJUDYSL);
-        }
-        else                            // lower level.
-        {
-            JU_SET_ERRNO_NONNULL(PJError, JU_ERRNO_CORRUPT);
-        }
-    }
-}                                       // JudySLModifyErrno()
-
-// ****************************************************************************
-// J U D Y   S L   G E T
-//
-// See comments in file header and below.
-
-PPvoid_t
-JudySLGet(Pcvoid_t PArray, const uint8_t * Index, PJError_t PJError)
-{
-    const uint8_t *pos = Index;         // place in Index.
-    Word_t    indexword;                // buffer for aligned copy.
-    PPvoid_t  PPValue;                  // from JudyL array.
-
-// CHECK FOR CALLER ERROR (NULL POINTER):
-
-    if (Index == (uint8_t *) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (PPJERR);
-    }
-
-// SEARCH NEXT LEVEL JUDYL ARRAY IN TREE:
-//
-// Use or copy each word from the Index string and check for it in the next
-// level JudyL array in the array tree, but first watch for shortcut leaves.
-// Upon invalid Index or end of Index (string) in current word, return.
-
-    do                                  // until return.
-    {
-        if (IS_PSCL(PArray))            // a shortcut leaf.
-            return (PPSCLVALUE_EQ(pos, PArray));
-
-        COPYSTRINGtoWORD(indexword, pos);       // copy next 4[8] bytes.
-
-        JLG(PPValue, PArray, indexword);
-
-        if ((PPValue == (PPvoid_t) NULL) || LASTWORD_BY_VALUE(indexword))
-            return (PPValue);
-
-// CONTINUE TO NEXT LEVEL DOWN JUDYL ARRAY TREE:
-//
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated here as a dead-end (not a core
-// dump or assertion; see version 1.25).
-
-        pos += WORDSIZE;
-        PArray = *PPValue;              // each value -> next array.
-    } while(1);                         // forever
-//  NOTREACHED JudySLGet()
-}
-
-// ****************************************************************************
-// J U D Y   S L   I N S
-//
-// See also the comments in JudySLGet(), which is somewhat similar, though
-// simpler.
-//
-// Theory of operation:
-//
-// Upon encountering a null pointer in the tree of JudyL arrays, insert a
-// shortcut leaf -- including directly under a null root pointer for the first
-// Index in the JudySL array.
-//
-// Upon encountering a pre-existing shortcut leaf, if the old Index is equal to
-// the new one, return the old value area.  Otherwise, "carry down" the old
-// Index until the old and new Indexes diverge, at which point each Index
-// either terminates in the last JudyL array or a new shortcut leaf is inserted
-// under it for the Indexs remainder.
-//
-// TBD:  Running out of memory below the starting point causes a premature
-// return below (in several places) and leaves a dead-end in the JudySL tree.
-// Ideally the code here would back this out rather than wasting a little
-// memory, but in lieu of that, the get, delete, and search functions
-// understand dead-ends and handle them appropriately.
-
-PPvoid_t
-JudySLIns(PPvoid_t PPArray, const uint8_t * Index, PJError_t PJError)
-{
-    PPvoid_t  PPArrayOrig = PPArray;    // for error reporting.
-    const uint8_t *pos = Index;         // place in Index.
-    const uint8_t *pos2 = (uint8_t *) NULL;     // old Index (SCL being moved).
-    Word_t    len;                      // bytes remaining.
-
-// Note:  len2 is set when needed and only used when valid, but this is not
-// clear to gcc -Wall, so initialize it here to avoid a warning:
-
-    Word_t    len2 = 0;                 // for old Index (SCL being moved).
-    Word_t    scl2 = 0;                 // size in words of SCL
-    Word_t    indexword;                // buffer for aligned copy.
-    Word_t    indexword2;               // for old Index (SCL being moved).
-    PPvoid_t  PPValue;                  // from JudyL array.
-    PPvoid_t  PPValue2;                 // for old Index (SCL being moved).
-    Pscl_t    Pscl = (Pscl_t) NULL;     // shortcut leaf.
-    Pscl_t    Pscl2;                    // for old Index (SCL being moved).
-
-// CHECK FOR CALLER ERROR (NULL POINTERS):
-
-    if (PPArray == (PPvoid_t) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPPARRAY);
-        return (PPJERR);
-    }
-    if (Index == (uint8_t *) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (PPJERR);
-    }
-
-    len = STRLEN(Index);        // bytes remaining.
-
-// APPEND SHORTCUT LEAF:
-//
-// If PPArray, which is the root pointer to the first or next JudyL array in
-// the tree, points to null (no next JudyL array), AND there is no shortcut
-// leaf being carried down, append a shortcut leaf here for the new Index, no
-// matter how much of the Index string remains (one or more bytes, including
-// the trailing \0).
-
-    while (1)                           // until return.
-    {
-        if (*PPArray == (Pvoid_t)NULL)  // no next JudyL array.
-        {
-            if (Pscl == (Pscl_t) NULL)  // no SCL being carried down.
-            {
-                APPEND_SCL(Pscl, PPArray, pos, len, PJError);   // returns if error.
-                return (&(Pscl->scl_Pvalue));
-            }
-            // else do nothing here; see below.
-        }
-
-// CARRY DOWN PRE-EXISTING SHORTCUT LEAF:
-//
-// When PPArray points to a pre-existing shortcut leaf, if its Index is equal
-// to the Index to be inserted, meaning no insertion is required, return its
-// value area; otherwise, "move it aside" and "carry it down" -- replace it
-// (see below) with one or more levels of JudyL arrays.  Moving it aside
-// initially just means setting Pscl non-null, both as a flag and for later
-// use, and clearing the pointer to the SCL in the JudyL array.
-
-        else if (IS_PSCL(*PPArray))
-        {
-            assert(Pscl == (Pscl_t) NULL);      // no nested SCLs.
-
-            Pscl = CLEAR_PSCL(*PPArray);
-
-            pos2 = Pscl->scl_Index;     // note: pos2 is always word-aligned.
-            len2 = STRLEN(pos2);        // bytes remaining.
-
-//          first check if string is already inserted
-
-            if ((len == len2) && (STRCMP(pos, pos2) == 0))
-                return (&(Pscl->scl_Pvalue));
-
-            *PPArray = (Pvoid_t)NULL;   // disconnect SCL.
-
-            scl2 = SCLSIZE(len2);       // save for JudyFree
-
-            // continue with *PPArray now clear, and Pscl, pos2, len2 set.
-        }
-
-// CHECK IF OLD AND NEW INDEXES DIVERGE IN THE CURRENT INDEX WORD:
-//
-// If a shortcut leaf is being carried down and its remaining Index chars now
-// diverge from the remaining chars of the Index being inserted, that is, if
-// the next words of each Index differ, "plug in" the old Index here, in a new
-// JudyL array, before proceeding.
-//
-// Note:  Call JudyLIns() for the SCL Index word before calling it for the new
-// Index word, so PPValue remains correct for the latter.  (JudyLIns() return
-// values are not stable across multiple calls.)
-//
-// Note:  Although pos2 is word-aligned, and a Pscl_t is a whole number of
-// words in size, pos2 is not certain to be null-padded through a whole word,
-// so copy it first to an index word for later use.
-//
-// See header comments about premature return().
-
-        COPYSTRINGtoWORD(indexword, pos);       // copy next 4[8] bytes.
-
-        if (Pscl != (Pscl_t) NULL)
-        {
-            COPYSTRINGtoWORD(indexword2, pos2); // copy next 4[8] bytes.
-
-            if (indexword != indexword2)        // SCL and new Indexes diverge.
-            {
-                assert(*PPArray == (Pvoid_t)NULL);      // should be new JudyL array.
-
-// Note:  If JudyLIns() returns JU_ERRNO_NOTJUDYL here, *PPArray should not be
-// modified, so JudySLModifyErrno() can do the right thing.
-
-                if ((PPValue2 = JudyLIns(PPArray, indexword2, PJError))
-                    == PPJERR)
-                {
-                    JudySLModifyErrno(PJError, *PPArray, *PPArrayOrig);
-                    return (PPJERR);
-                }
-
-                assert(PPValue2 != (PPvoid_t) NULL);
-
-// If the old (SCL) Index terminates here, copy its value directly into the
-// JudyL value area; otherwise create a new shortcut leaf for it, under
-// *PPValue2 (skipping the word just inserted), and copy its value to the new
-// SCL:
-
-                if (len2 <= WORDSIZE)
-                {
-                    *((PWord_t)PPValue2) = (Word_t)(Pscl->scl_Pvalue);
-                }
-                else
-                {
-                    APPEND_SCL(Pscl2, PPValue2, pos2 + WORDSIZE,
-                               len2 - WORDSIZE, PJError);
-                    (Pscl2->scl_Pvalue) = Pscl->scl_Pvalue;
-                }
-//              old SCL no longer needed.
-
-                JudyFree((void *)Pscl, scl2);
-
-                Pscl = (Pscl_t) NULL;
-            }
-        }
-
-// APPEND NEXT LEVEL JUDYL ARRAY TO TREE:
-//
-// If a shortcut leaf was carried down and diverged at this level, the code
-// above already appended the new JudyL array, but the next word of the new
-// Index still must be inserted in it.
-//
-// See header comments about premature return().
-//
-// Note:  If JudyLIns() returns JU_ERRNO_NOTJUDYL here, *PPArray should not be
-// modified, so JudySLModifyErrno() can do the right thing.
-
-        if ((PPValue = JudyLIns(PPArray, indexword, PJError)) == PPJERR)
-        {
-            JudySLModifyErrno(PJError, *PPArray, *PPArrayOrig);
-            return (PPJERR);
-        }
-
-        assert(PPValue != (PPvoid_t) NULL);
-
-// CHECK IF NEW INDEX TERMINATES:
-//
-// Note that if it does, and an old SCL was being carried down, it must have
-// diverged by this point, and is already handled.
-
-        if (len <= WORDSIZE)
-        {
-            assert(Pscl == (Pscl_t) NULL);
-            return (PPValue);           // is value for whole Index string.
-        }
-
-        pos += WORDSIZE;
-        len -= WORDSIZE;
-        pos2 += WORDSIZE;               // useless unless Pscl is set.
-        len2 -= WORDSIZE;
-
-        PPArray = PPValue;              // each value -> next array.
-    }                                   // while.
-}                                       // NOTREACHED, JudySLIns()
-
-// ****************************************************************************
-// J U D Y   S L   D E L
-//
-// See the comments in JudySLGet(), which is somewhat similar.
-//
-// Unlike JudySLGet() and JudySLIns(), recurse downward through the tree of
-// JudyL arrays to find and delete the given Index, if present, and then on the
-// way back up, any of its parent arrays which ends up empty.
-//
-// TECHNICAL NOTES:
-//
-// Recursion seems bad, but this allows for an arbitrary-length Index.  Also, a
-// more clever iterative solution that used JudyLCount() (see below) would
-// still require a function call per tree level, so why not just recurse?
-//
-// An earlier version (1.20) used a fixed-size stack, which limited the Index
-// size.  We were going to replace this with using JudyLCount(), in order to
-// note and return to (read this carefully) the highest level JudyL array with
-// a count of 1, all of whose descendant JudyL arrays also have a count of 1,
-// and delete from that point downwards.  This solution would traverse the
-// array tree downward looking to see if the given Index is in the tree, then
-// if so, delete layers downwards starting below the last one that contains
-// other Indexes than the one being deleted.
-//
-// TBD:  To save time coding, and to very likely save time overall during
-// execution, this function does "lazy deletions", or putting it more nicely,
-// it allows "hysteresis" in the JudySL tree, when shortcut leafs are present.
-// It only removes the specified Index, and recursively any empty JudyL arrays
-// above it, without fully reversing the effects of JudySLIns().  This is
-// probably OK because any application that calls JudySLDel() is likely to call
-// JudySLIns() again with the same or a neighbor Index.
-
-int
-JudySLDel(PPvoid_t PPArray, const uint8_t * Index, PJError_t PJError)   // optional, for returning error info.
-{
-
-// Check for caller error (null pointer):
-
-    if (PPArray == (PPvoid_t) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPPARRAY);
-        return (JERR);
-    }
-    if (Index == (uint8_t *) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (JERR);
-    }
-
-// Do the deletion:
-
-    return (JudySLDelSub(PPArray, PPArray, Index, STRLEN(Index), PJError));
-
-}                                       // JudySLDel()
-
-// ****************************************************************************
-// J U D Y   S L   D E L   S U B
-//
-// This is the "engine" for JudySLDel() that expects aligned and len to already
-// be computed (only once).  See the header comments for JudySLDel().
-
-static int
-JudySLDelSub(PPvoid_t PPArray,          // in which to delete.
-             PPvoid_t PPArrayOrig,      // for error reporting.
-             const uint8_t * Index,     // to delete.
-             Word_t len,                // bytes remaining.
-             PJError_t PJError)         // optional, for returning error info.
-{
-    Word_t    indexword;                // next word to find.
-    PPvoid_t  PPValue;                  // from JudyL array.
-    int       retcode;                  // from lower-level call.
-
-    assert(PPArray != (PPvoid_t) NULL);
-    assert(Index != (uint8_t *) NULL);
-
-// DELETE SHORTCUT LEAF:
-//
-// As described above, this can leave an empty JudyL array, or one containing
-// only a single other Index word -- which could be, but is not, condensed into
-// a higher-level shortcut leaf.  More precisely, at this level it leaves a
-// temporary "dead end" in the JudySL tree, similar to when running out of
-// memory during JudySLIns(), and this is somewhat cleaned up by higher
-// recursions of the same function (see below); but remaining shortcut leaves
-// for other Indexes are not coalesced.
-
-    if (IS_PSCL(*PPArray))
-    {
-        Pscl_t    Pscll = CLEAR_PSCL(*PPArray);
-        Word_t    words;
-
-        if (STRCMP(Index, Pscll->scl_Index))
-            return (0);                 // incorrect index.
-
-        words = SCLSIZE(STRLEN(Pscll->scl_Index));
-        JudyFree((void *)Pscll, words);
-
-        *PPArray = (Pvoid_t)NULL;
-        return (1);                     // correct index deleted.
-    }
-
-// DELETE LAST INDEX WORD, FROM CURRENT JUDYL ARRAY:
-//
-// When at the end of the full Index, delete the last word, if present, from
-// the current JudyL array, and return the result all the way up.
-
-    COPYSTRINGtoWORD(indexword, Index); // copy next 4[8] bytes.
-
-    if (len <= WORDSIZE)
-    {
-        if ((retcode = JudyLDel(PPArray, indexword, PJError)) == JERR)
-        {
-            JudySLModifyErrno(PJError, *PPArray, *PPArrayOrig);
-            return (JERR);
-        }
-        return (retcode);
-    }
-
-// DELETE BELOW NON-LAST INDEX WORD IN CURRENT JUDYL ARRAY:
-//
-// If a word before the end of the full Index is present in the current JudyL
-// array, recurse through its value, which must be a pointer to another JudyL
-// array, to continue the deletion at the next level.  Return the JudyLGet()
-// return if the Indexs current word is not in the JudyL array, or if no
-// delete occurs below this level, both of which mean the whole Index is not
-// currently valid.
-//
-
-    JLG(PPValue, *PPArray, indexword);
-    if (PPValue == (PPvoid_t) NULL)
-        return (0);                     // Index not in JudySL array.
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated as a dead-end (not a core dump
-// or assertion; see version 1.25).
-    if ((retcode =
-         JudySLDelSub(PPValue, PPArrayOrig, Index + WORDSIZE,
-                      len - WORDSIZE, PJError)) != 1)
-    {
-        return (retcode);               // no lower-level delete, or error.
-    }
-
-// DELETE EMPTY JUDYL ARRAY:
-//
-// A delete occurred below in the tree.  If the child JudyL array became empty,
-// delete the current Index word from the current JudyL array, which could
-// empty the current array and null out *PPArray in turn (or pass through an
-// error).  Otherwise simply indicate that a deletion did occur.
-
-    if (*PPValue == (Pvoid_t)NULL)
-    {
-        if ((retcode = JudyLDel(PPArray, indexword, PJError)) == JERR)
-        {
-            JudySLModifyErrno(PJError, *PPArray, *PPArrayOrig);
-            return (JERR);
-        }
-
-        return (retcode);
-    }
-
-    return (1);
-}                                       // JudySLDelSub()
-
-// ****************************************************************************
-// J U D Y   S L   P R E V
-//
-// Recursively traverse the JudySL tree downward using JudyLGet() to look for
-// each successive index word from Index in the JudyL array at each level.  At
-// the last level for the Index (LASTWORD_BY_LEN()), use JudyLPrev() instead of
-// JudyLGet(), to exclude the initial Index.  If this doesnt result in finding
-// a previous Index, work back up the tree using JudyLPrev() at each higher
-// level to search for a previous index word.  Upon finding a previous index
-// word, descend again if/as necessary, this time inclusively, to find and
-// return the full previous Index.
-//
-// Also support shortcut leaves.
-//
-// Since this function is recursive and it also needs to know if its still
-// looking for the original Index (to exclude it at the LASTWORD_BY_LEN()
-// level) or for the remaining words of the previous Index (inclusive),
-// actually call a subroutine that takes an additional parameter.
-//
-// See also the technical notes in JudySLDel() regarding the use of recursion
-// rather than iteration.
-
-PPvoid_t
-JudySLPrev(Pcvoid_t PArray, uint8_t * Index, PJError_t PJError) // optional, for returning error info.
-{
-// Check for caller error (null pointer), or empty JudySL array:
-
-    if (Index == (uint8_t *) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (PPJERR);
-    }
-
-    if (PArray == (Pvoid_t)NULL)
-        return ((PPvoid_t) NULL);
-// Do the search:
-    return (JudySLPrevSub(PArray, Index, /* original = */ 1,
-                          STRLEN(Index), PJError));
-}                                       // JudySLPrev()
-
-// ****************************************************************************
-// J U D Y   S L   P R E V   S U B
-//
-// This is the "engine" for JudySLPrev() that knows whether its still looking
-// for the original Index (exclusive) or a neighbor index (inclusive), and that
-// expects aligned and len to already be computed (only once).  See the header
-// comments for JudySLPrev().
-
-static    PPvoid_t
-JudySLPrevSub(Pcvoid_t PArray, uint8_t * Index, int orig,
-              Word_t len,               // bytes remaining.
-              PJError_t PJError)        // optional, for returning error info.
-{
-    Word_t    indexword;                // next word to find.
-    PPvoid_t  PPValue;                  // from JudyL array.
-// ORIGINAL SEARCH:
-//
-// When at a shortcut leaf, copy its remaining Index (string) chars into Index
-// and return its value area if the current Index is after (greater than) the
-// SCLs index; otherwise return null.
-    if (orig)
-    {
-        if (IS_PSCL(PArray))
-        {
-            if ((PPValue = PPSCLVALUE_GT(Index, PArray)) != (PPvoid_t) NULL)
-                (void)STRCPY(Index, PSCLINDEX(PArray));
-            return (PPValue);
-        }
-
-// If the current Index word:
-// - is not the last word in Index (end of string),
-// - exists in the current JudyL array, and,
-// - a previous Index is found below it, return that Indexs value area.
-
-        COPYSTRINGtoWORD(indexword, Index);     // copy next 4[8] bytes.
-        if (len > WORDSIZE)             // not at end of Index.
-        {
-            JLG(PPValue, PArray, indexword);
-            if (PPValue != (PPvoid_t) NULL)
-            {
-
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated as a dead-end (not a core dump
-// or assertion; see version 1.25):
-
-                PPValue = JudySLPrevSub(*PPValue, Index + WORDSIZE,
-                                        /* original = */ 1,
-                                        len - WORDSIZE, PJError);
-                if (PPValue == PPJERR)
-                    return (PPJERR);    // propagate error.
-                if (PPValue != (PPvoid_t) NULL)
-                    return (PPValue);   // see above.
-            }
-        }
-
-// Search for previous index word:
-//
-// One of the above conditions is false.  Search the current JudyL array for
-// the Index word, if any, prior to the current index word.  If none is found,
-// return null; otherwise fall through to common later code.
-
-        if ((PPValue = JudyLPrev(PArray, &indexword, PJError)) == PPJERR)
-        {
-            JudySLModifyErrno(PJError, PArray, orig ? PArray : (Pvoid_t)NULL);
-            return (PPJERR);
-        }
-
-        if (PPValue == (PPvoid_t) NULL)
-            return ((PPvoid_t) NULL);   // no previous index word.
-    }                                   // if.
-
-// SUBSEQUENT SEARCH:
-//
-// A higher level search already excluded the initial Index, then found a
-// previous index word, and is now traversing down to determine the rest of the
-// Index and to obtain its value area.  If at a shortcut leaf, return its value
-// area.  Otherwise search the current JudyL array backward from the upper
-// limit for its last index word.  If no index word is found, return null --
-// should never happen unless the JudySL tree is corrupt; otherwise fall
-// through to common later code.
-
-    else
-    {
-        if (IS_PSCL(PArray))            // at shortcut leaf.
-        {
-            (void)STRCPY(Index, PSCLINDEX(PArray));
-            return (&PSCLVALUE(PArray));
-        }
-
-        indexword = ~0UL;
-        if ((PPValue = JudyLLast(PArray, &indexword, PJError)) == PPJERR)
-        {
-            JudySLModifyErrno(PJError, PArray, orig ? PArray : (Pvoid_t)NULL);
-            return (PPJERR);
-        }
-
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated as a dead-end (not a core dump
-// or assertion; see version 1.25):
-
-        if (PPValue == (PPvoid_t) NULL)
-            return ((PPvoid_t) NULL);   // no previous index word.
-    }
-
-// FOUND PREVIOUS INDEX WORD:
-//
-// A previous (if original) or last (if subsequent) index word was located in
-// the current JudyL array.  Store it into the callers Index (string).  Then
-// if the found (previous) Index ends here, return its value area; otherwise do
-// a subsequent search below this point, which should never fail unless the
-// JudySL tree is corrupt, but this is detected at a lower level by the above
-// assertion.
-//
-// Note:  Treat Index as unaligned, even if it is aligned, to avoid writing
-// past the end of allocated memory (in case its less than a whole number of
-// words).
-
-    COPYWORDtoSTRING(Index, indexword); // copy next 4[8] bytes.
-    if (LASTWORD_BY_VALUE(indexword))
-        return (PPValue);
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated as a dead-end (not a core dump
-// or assertion; see version 1.25):
-    return (JudySLPrevSub(*PPValue, Index + WORDSIZE, /* original = */ 0,
-                          len - WORDSIZE, PJError));
-}                                       // JudySLPrevSub()
-
-// ****************************************************************************
-// J U D Y   S L   N E X T
-//
-// See the comments in JudySLPrev(), which is very similar.
-//
-// TBD:  Could the two functions call a common engine function with various
-// subfunctions and other constants specified?
-
-PPvoid_t
-JudySLNext(Pcvoid_t PArray, uint8_t * Index, PJError_t PJError) // optional, for returning error info.
-{
-// Check for caller error (null pointer), or empty JudySL array:
-
-    if (Index == (uint8_t *) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (PPJERR);
-    }
-
-    if (PArray == (Pvoid_t)NULL)
-        return ((PPvoid_t) NULL);
-// Do the search:
-    return (JudySLNextSub(PArray, Index, /* original = */ 1,
-                          STRLEN(Index), PJError));
-}                                       // JudySLNext()
-
-// ****************************************************************************
-// J U D Y   S L   N E X T   S U B
-//
-// See the comments in JudySLPrevSub(), which is very similar.
-
-static    PPvoid_t
-JudySLNextSub(Pcvoid_t PArray, uint8_t * Index, int orig,
-              Word_t len,               // bytes remaining.
-              PJError_t PJError)        // optional, for returning error info.
-{
-    Word_t    indexword;                // next word to find.
-    PPvoid_t  PPValue;                  // from JudyL array.
-    if (orig)
-    {
-        if (IS_PSCL(PArray))
-        {
-            if ((PPValue = PPSCLVALUE_LT(Index, PArray)) != (PPvoid_t) NULL)
-                (void)STRCPY(Index, PSCLINDEX(PArray));
-            return (PPValue);
-        }
-
-        COPYSTRINGtoWORD(indexword, Index);     // copy next 4[8] bytes.
-
-        if (len > WORDSIZE)             // not at end of Index.
-        {
-            JLG(PPValue, PArray, indexword);
-            if (PPValue != (PPvoid_t) NULL)
-            {
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated as a dead-end (not a core dump
-// or assertion; see version 1.25):
-
-                PPValue = JudySLNextSub(*PPValue, Index + WORDSIZE,
-                                        /* original = */ 1,
-                                        len - WORDSIZE, PJError);
-                if (PPValue == PPJERR)
-                    return (PPJERR);    // propagate error.
-                if (PPValue != (PPvoid_t) NULL)
-                    return (PPValue);   // see above.
-            }
-        }
-
-        if ((PPValue = JudyLNext(PArray, &indexword, PJError)) == PPJERR)
-        {
-            JudySLModifyErrno(PJError, PArray, orig ? PArray : (Pvoid_t)NULL);
-            return (PPJERR);
-        }
-
-        if (PPValue == (PPvoid_t) NULL)
-            return ((PPvoid_t) NULL);   // no next index word.
-    }
-    else
-    {
-        if (IS_PSCL(PArray))            // at shortcut leaf.
-        {
-            (void)STRCPY(Index, PSCLINDEX(PArray));
-            return (&PSCLVALUE(PArray));
-        }
-
-        indexword = 0;
-        if ((PPValue = JudyLFirst(PArray, &indexword, PJError)) == PPJERR)
-        {
-            JudySLModifyErrno(PJError, PArray, orig ? PArray : (Pvoid_t)NULL);
-            return (PPJERR);
-        }
-
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated as a dead-end (not a core dump
-// or assertion; see version 1.25):
-
-        if (PPValue == (PPvoid_t) NULL)
-            return ((PPvoid_t) NULL);   // no next index word.
-    }
-
-    COPYWORDtoSTRING(Index, indexword); // copy next 4[8] bytes
-    if (LASTWORD_BY_VALUE(indexword))
-        return (PPValue);
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue; this is automatically treated as a dead-end (not a core dump
-// or assertion; see version 1.25):
-    return (JudySLNextSub(*PPValue, Index + WORDSIZE, /* original = */ 0,
-                          len - WORDSIZE, PJError));
-}                                       // JudySLNextSub()
-
-// ****************************************************************************
-// J U D Y   S L   F I R S T
-//
-// Like JudyLFirst(), do a JudySLGet(), then if necessary a JudySLNext().
-
-PPvoid_t
-JudySLFirst(Pcvoid_t PArray, uint8_t * Index, PJError_t PJError)        // optional, for returning error info.
-{
-    PPvoid_t  PPValue;                  // from JudyL array.
-    if (Index == (uint8_t *) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (PPJERR);
-    }
-
-    if ((PPValue = JudySLGet(PArray, Index, PJError)) == PPJERR)
-        return (PPJERR);                // propagate serious error.
-    if ((PPValue == (PPvoid_t) NULL)    // first try failed.
-        && ((PPValue = JudySLNext(PArray, Index, PJError)) == PPJERR))
-    {
-        return (PPJERR);                // propagate serious error.
-    }
-
-    return (PPValue);
-}                                       // JudySLFirst()
-
-// ****************************************************************************
-// J U D Y   S L   L A S T
-//
-// Like JudyLLast(), do a JudySLGet(), then if necessary a JudySLPrev().
-
-PPvoid_t
-JudySLLast(Pcvoid_t PArray, uint8_t * Index, PJError_t PJError) // optional, for returning error info.
-{
-    PPvoid_t  PPValue;                  // from JudyL array.
-    if (Index == (uint8_t *) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPINDEX);
-        return (PPJERR);
-    }
-
-    if ((PPValue = JudySLGet(PArray, Index, PJError)) == PPJERR)
-        return (PPJERR);                // propagate serious error.
-    if ((PPValue == (PPvoid_t) NULL)    // first try failed.
-        && ((PPValue = JudySLPrev(PArray, Index, PJError)) == PPJERR))
-    {
-        return (PPJERR);                // propagate serious error.
-    }
-
-    return (PPValue);
-}                                       // JudySLLast()
-
-// ****************************************************************************
-// J U D Y   S L   F R E E   A R R A Y
-//
-// Walk the JudySL tree of JudyL arrays to free each JudyL array, depth-first.
-// During the walk, ignore indexes (strings) that end in the current JudyL
-// array to be freed.  Just recurse through those indexes which do not end,
-// that is, those whose associated value areas point to subsidiary JudyL
-// arrays, except for those which point to shortcut leaves.  Return the total
-// bytes freed in all of the JudyL arrays at or below the current level.
-//
-// Like the JudyLFreeArray() and Judy1FreeArray() code, this is written
-// recursively, which is probably fast enough, to allow indexes (strings) of
-// arbitrary size.  If recursion turns out to be a problem, consider instead
-// doing some large, fixed number of iterative descents (like 100) using a
-// fixed-size "stack" (array), then recursing upon overflow (relatively
-// rarely).
-
-Word_t
-JudySLFreeArray(PPvoid_t PPArray, PJError_t PJError)    // optional, for returning error info.
-{
-    PPvoid_t  PPArrayOrig = PPArray;    // for error reporting.
-    Word_t    indexword = 0;            // word just found.
-    PPvoid_t  PPValue;                  // from Judy array.
-    Word_t    bytes_freed = 0;          // bytes freed at this level.
-    Word_t    bytes_total = 0;          // bytes freed at all levels.
-    if (PPArray == (PPvoid_t) NULL)
-    {
-        JU_SET_ERRNO(PJError, JU_ERRNO_NULLPPARRAY);
-        return (JERR);
-    }
-
-// FREE SHORTCUT LEAF:
-
-    if (IS_PSCL(*PPArray))
-    {
-        Word_t    freewords;
-        Pscl_t    Pscl;
-
-        Pscl = CLEAR_PSCL(*PPArray);
-
-        freewords = SCLSIZE(STRLEN(Pscl->scl_Index));
-
-        JudyFree((void *)Pscl, freewords);
-
-        *PPArray = (Pvoid_t)NULL;
-
-        return (freewords * WORDSIZE);
-    }
-
-// FREE EACH SUB-ARRAY (DEPTH-FIRST):
-//
-// If a previous JudySLIns() ran out of memory partway down the tree, it left a
-// null *PPValue.  This is automatically treated correctly here as a dead-end.
-//
-// An Index (string) ends in the current word iff the last byte of the
-// (null-padded) word is null.
-
-    for (PPValue = JudyLFirst(*PPArray, &indexword, PJError);
-         (PPValue != (PPvoid_t) NULL) && (PPValue != PPJERR);
-         PPValue = JudyLNext(*PPArray, &indexword, PJError))
-    {
-        if (!LASTWORD_BY_VALUE(indexword))
-        {
-            if ((bytes_freed = JudySLFreeArray(PPValue, PJError)) == JERR)
-                return (JERR);          // propagate serious error.
-            bytes_total += bytes_freed;
-        }
-    }
-
-// Check for a serious error in a JudyL*() call:
-
-    if (PPValue == PPJERR)
-    {
-        JudySLModifyErrno(PJError, *PPArray, *PPArrayOrig);
-        return (JERR);
-    }
-
-// Now free the current array, which also nulls the pointer:
-//
-// Note:  *PPArray can be null here for a totally null JudySL array =>
-// JudyLFreeArray() returns zero.
-
-    if ((bytes_freed = JudyLFreeArray(PPArray, PJError)) == JERR)
-    {
-        JudySLModifyErrno(PJError, *PPArray, *PPArrayOrig);
-        return (JERR);
-    }
-    return (bytes_total + bytes_freed);
-}                                       // JudySLFreeArray()
diff --git a/libs/klib/judy/JudyTablesGen.c b/libs/klib/judy/JudyTablesGen.c
deleted file mode 100644
index a5fcb85..0000000
--- a/libs/klib/judy/JudyTablesGen.c
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-// _________________
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error:  One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#define	TERMINATOR 999		// terminator for Alloc tables
-
-#define BPW sizeof(Word_t)	// define bytes per word
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-    
-FILE *fd;
-
-// Definitions come from header files Judy1.h and JudyL.h:
-
-int AllocSizes[] = ALLOCSIZES;
-
-#define	ROUNDUP(BYTES,BPW,OFFSETW) \
-	((((BYTES) + (BPW) - 1) / (BPW)) + (OFFSETW))
-
-
-// ****************************************************************************
-// G E N   T A B L E
-//
-// Note:  "const" is required for newer compilers.
-
-FUNCTION void GenTable(
-    const char * TableName,	// name of table string
-    const char * TableSize,	// dimentioned size string
-    int		 IndexBytes,	// bytes per Index
-    int		 LeafSize,	// number elements in object
-    int		 ValueBytes,	// bytes per Value
-    int		 OffsetWords)	// 1 for LEAFW
-{
-    int *	 PAllocSizes = AllocSizes;
-    int		 OWord;
-    int		 CurWord;
-    int		 IWord;
-    int		 ii;
-    int		 BytesOfIndex;
-    int		 BytesOfObject;
-    int		 Index;
-    int		 LastWords;
-    int		 Words [1000] = { 0 };
-    int		 Offset[1000] = { 0 };
-    int		 MaxWords;
-
-    MaxWords  =	ROUNDUP((IndexBytes + ValueBytes) * LeafSize, BPW, OffsetWords);
-    Words[0]  = 0;
-    Offset[0] = 0;
-    CurWord   = TERMINATOR;
-
-// Walk through all number of Indexes in table:
-
-    for (Index = 1; /* null */; ++Index)
-    {
-
-// Calculate byte required for next size:
-
-	BytesOfIndex  = IndexBytes * Index;
-	BytesOfObject = (IndexBytes + ValueBytes) * Index;
-
-// Round up and calculate words required for next size:
-
-        OWord =	ROUNDUP(BytesOfObject, BPW, OffsetWords);
-        IWord =	ROUNDUP(BytesOfIndex,  BPW, OffsetWords);
-
-// Root-level leaves of population of 1 and 2 do not have the 1 word offset:
-
-// Save minimum value of offset:
-
-        Offset[Index] = IWord;
-
-// Round up to next available size of words:
-
-	while (OWord > *PAllocSizes) PAllocSizes++;
-
-        if (Index == LeafSize)
-        {
-	    CurWord = Words[Index] = OWord;
-            break;
-        }
-//      end of available sizes ?
-
-	if (*PAllocSizes == TERMINATOR)
-        {
-            fprintf(stderr, "BUG, in %sPopToWords, sizes not big enough for object\n", TableName);
-	    exit(1);
-        }
-
-// Save words required and last word:
-
-        if (*PAllocSizes < MaxWords) { CurWord = Words[Index] = *PAllocSizes; }
-        else                         { CurWord = Words[Index] = MaxWords; }
-
-    } // for each index
-
-    LastWords = TERMINATOR;
-
-// Round up to largest size in each group of malloc sizes:
-
-    for (ii = LeafSize; ii > 0; ii--)
-    {
-        if (LastWords > (Words[ii] - ii)) LastWords = Offset[ii];
-        else                              Offset[ii] = LastWords;
-    }
-
-// Print the PopToWords[] table:
-
-    fprintf(fd,"\n//\tobject uses %d words\n", CurWord);
-    fprintf(fd,"//\t%s = %d\n", TableSize, LeafSize);
-
-    fprintf(fd,"const uint8_t\n");
-    fprintf(fd,"%sPopToWords[%s + 1] =\n", TableName, TableSize);
-    fprintf(fd,"{\n\t 0,");
-
-    for (ii = 1; ii <= LeafSize; ii++)
-    {
-
-// 8 columns per line, starting with 1:
-
-	if ((ii % 8) == 1) fprintf(fd,"\n\t");
-
-	fprintf(fd,"%2d", Words[ii]);
-
-// If not last number place comma:
-
-	if (ii != LeafSize) fprintf(fd,", ");
-    }
-    fprintf(fd,"\n};\n");
-
-// Print the Offset table if needed:
-
-    if (! ValueBytes) return;
-
-    fprintf(fd,"const uint8_t\n");
-    fprintf(fd,"%sOffset[%s + 1] =\n", TableName, TableSize);
-    fprintf(fd,"{\n");
-    fprintf(fd,"\t 0,");
-
-    for (ii = 1; ii <= LeafSize; ii++)
-    {
-        if ((ii % 8) == 1) fprintf(fd,"\n\t");
-
-	fprintf(fd,"%2d", Offset[ii]);
-
-	if (ii != LeafSize) fprintf(fd,", ");
-    }
-    fprintf(fd,"\n};\n");
-
-} // GenTable()
-
-
-// ****************************************************************************
-// M A I N
-
-#ifdef JU_WMAIN
-FUNCTION int wmain()
-#else
-FUNCTION int main()
-#endif
-{
-    int ii;
-
-#ifdef JUDY1
-    char *fname = "Judy1Tables.c";
-#else
-    char *fname = "JudyLTables.c";
-#endif
-
-    if ((fd = fopen(fname, "w")) == NULL){
-	perror("FATAL ERROR: could not write to Judy[1L]Tables.c file\n");
-	return (-1);
-    }
-
-
-    fprintf(fd,"// @(#) From generation tool: JudyTablesGen.c\n");
-    fprintf(fd,"//\n\n");
-
-
-// ================================ Judy1 =================================
-#ifdef JUDY1
-
-    fprintf(fd,"#include \"Judy1.h\"\n");
-
-    fprintf(fd,"// Leave the malloc() sizes readable in the binary (via "
-	   "strings(1)):\n");
-    fprintf(fd,"const char * Judy1MallocSizes = \"Judy1MallocSizes =");
-
-    for (ii = 0; AllocSizes[ii] != TERMINATOR; ii++)
-	fprintf(fd," %d,", AllocSizes[ii]);
-
-#ifndef JU_64BIT
-    fprintf(fd," Leaf1 = %d\";\n\n", cJ1_LEAF1_MAXPOP1);
-#else
-    fprintf(fd,"\";\n\n");			// no Leaf1 in this case.
-#endif
-
-// ================================ 32 bit ================================
-#ifndef JU_64BIT
-
-    GenTable("j__1_BranchBJP","cJU_BITSPERSUBEXPB", 8, cJU_BITSPERSUBEXPB,0,0);
-
-    GenTable("j__1_Leaf1", "cJ1_LEAF1_MAXPOP1", 1, cJ1_LEAF1_MAXPOP1, 0, 0);
-    GenTable("j__1_Leaf2", "cJ1_LEAF2_MAXPOP1", 2, cJ1_LEAF2_MAXPOP1, 0, 0);
-    GenTable("j__1_Leaf3", "cJ1_LEAF3_MAXPOP1", 3, cJ1_LEAF3_MAXPOP1, 0, 0);
-    GenTable("j__1_LeafW", "cJ1_LEAFW_MAXPOP1", 4, cJ1_LEAFW_MAXPOP1, 0, 1);
-
-#endif
-
-// ================================ 64 bit ================================
-#ifdef JU_64BIT
-    GenTable("j__1_BranchBJP","cJU_BITSPERSUBEXPB",16, cJU_BITSPERSUBEXPB,0,0);
-
-    GenTable("j__1_Leaf2", "cJ1_LEAF2_MAXPOP1", 2, cJ1_LEAF2_MAXPOP1, 0, 0);
-    GenTable("j__1_Leaf3", "cJ1_LEAF3_MAXPOP1", 3, cJ1_LEAF3_MAXPOP1, 0, 0);
-    GenTable("j__1_Leaf4", "cJ1_LEAF4_MAXPOP1", 4, cJ1_LEAF4_MAXPOP1, 0, 0);
-    GenTable("j__1_Leaf5", "cJ1_LEAF5_MAXPOP1", 5, cJ1_LEAF5_MAXPOP1, 0, 0);
-    GenTable("j__1_Leaf6", "cJ1_LEAF6_MAXPOP1", 6, cJ1_LEAF6_MAXPOP1, 0, 0);
-    GenTable("j__1_Leaf7", "cJ1_LEAF7_MAXPOP1", 7, cJ1_LEAF7_MAXPOP1, 0, 0);
-    GenTable("j__1_LeafW", "cJ1_LEAFW_MAXPOP1", 8, cJ1_LEAFW_MAXPOP1, 0, 1);
-#endif
-#endif // JUDY1
-
-
-// ================================ JudyL =================================
-#ifdef JUDYL
-
-    fprintf(fd,"#include \"JudyL.h\"\n");
-
-    fprintf(fd,"// Leave the malloc() sizes readable in the binary (via "
-	   "strings(1)):\n");
-    fprintf(fd,"const char * JudyLMallocSizes = \"JudyLMallocSizes =");
-
-    for (ii = 0; AllocSizes[ii] != TERMINATOR; ii++)
-	fprintf(fd," %d,", AllocSizes[ii]);
-
-    fprintf(fd," Leaf1 = %ld\";\n\n", (Word_t)cJL_LEAF1_MAXPOP1);
-
-#ifndef JU_64BIT
-// ================================ 32 bit ================================
-    GenTable("j__L_BranchBJP","cJU_BITSPERSUBEXPB", 8, cJU_BITSPERSUBEXPB, 0,0);
-
-    GenTable("j__L_Leaf1", "cJL_LEAF1_MAXPOP1",  1, cJL_LEAF1_MAXPOP1, BPW,0);
-    GenTable("j__L_Leaf2", "cJL_LEAF2_MAXPOP1",  2, cJL_LEAF2_MAXPOP1, BPW,0);
-    GenTable("j__L_Leaf3", "cJL_LEAF3_MAXPOP1",  3, cJL_LEAF3_MAXPOP1, BPW,0);
-    GenTable("j__L_LeafW", "cJL_LEAFW_MAXPOP1",  4, cJL_LEAFW_MAXPOP1, BPW,1);
-    GenTable("j__L_LeafV", "cJU_BITSPERSUBEXPL", 4, cJU_BITSPERSUBEXPL,  0,0);
-#endif // 32 BIT
-
-#ifdef JU_64BIT
-// ================================ 64 bit ================================
-    GenTable("j__L_BranchBJP","cJU_BITSPERSUBEXPB",16, cJU_BITSPERSUBEXPB, 0,0);
-
-    GenTable("j__L_Leaf1", "cJL_LEAF1_MAXPOP1",  1, cJL_LEAF1_MAXPOP1,  BPW,0);
-    GenTable("j__L_Leaf2", "cJL_LEAF2_MAXPOP1",  2, cJL_LEAF2_MAXPOP1,  BPW,0);
-    GenTable("j__L_Leaf3", "cJL_LEAF3_MAXPOP1",  3, cJL_LEAF3_MAXPOP1,  BPW,0);
-    GenTable("j__L_Leaf4", "cJL_LEAF4_MAXPOP1",  4, cJL_LEAF4_MAXPOP1,  BPW,0);
-    GenTable("j__L_Leaf5", "cJL_LEAF5_MAXPOP1",  5, cJL_LEAF5_MAXPOP1,  BPW,0);
-    GenTable("j__L_Leaf6", "cJL_LEAF6_MAXPOP1",  6, cJL_LEAF6_MAXPOP1,  BPW,0);
-    GenTable("j__L_Leaf7", "cJL_LEAF7_MAXPOP1",  7, cJL_LEAF7_MAXPOP1,  BPW,0);
-    GenTable("j__L_LeafW", "cJL_LEAFW_MAXPOP1",  8, cJL_LEAFW_MAXPOP1,  BPW,1);
-    GenTable("j__L_LeafV", "cJU_BITSPERSUBEXPL", 8, cJU_BITSPERSUBEXPL, 0,0);
-#endif // 64 BIT
-
-#endif // JUDYL
-    fclose(fd);
-
-    return(0);
-
-} // main()
diff --git a/libs/klib/judy/Makefile b/libs/klib/judy/Makefile
deleted file mode 100644
index 2d4d13a..0000000
--- a/libs/klib/judy/Makefile
+++ /dev/null
@@ -1,207 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: all
-
-TOP ?= $(shell ../../../build/abspath.sh ../../..)
-MODULE = libs/klib/judy
-
-INT_LIBS = \
-	libjudy
-
-EXT_LIBS = \
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-include $(TOP)/build/Makefile.env
-
-
-#-------------------------------------------------------------------------------
-# special rules
-#  for some reason these guys use the same source and load it up with
-#  ifdefs, so we have general rules to produce two sets of object files
-#  from a single set of sources
-#
-%.n.32.$(OBJX): %.c
-	$(CC) -o $@ $(OPT) $(CFLAGS) -DJU_32BIT $<
-%.n.64.$(OBJX): %.c
-	$(CC) -o $@ $(OPT) $(CFLAGS) -DJU_64BIT $<
-%.n.32.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) $(CFLAGS) -DJU_32BIT $<
-%.n.64.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) $(CFLAGS) -DJU_64BIT $<
-
-%.b.32.$(OBJX): %.c
-	$(CC) -o $@ $(OPT) $(CFLAGS) -DJUDY1 -DJU_32BIT $<
-%.b.64.$(OBJX): %.c
-	$(CC) -o $@ $(OPT) $(CFLAGS) -DJUDY1 -DJU_64BIT $<
-%.b.32.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) $(CFLAGS) -DJUDY1 -DJU_32BIT $<
-%.b.64.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) $(CFLAGS) -DJUDY1 -DJU_64BIT $<
-
-%.w.32.$(OBJX): %.c
-	$(CC) -o $@ $(OPT) $(CFLAGS) -DJUDYL -DJU_32BIT $<
-%.w.64.$(OBJX): %.c
-	$(CC) -o $@ $(OPT) $(CFLAGS) -DJUDYL -DJU_64BIT $<
-%.w.32.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) $(CFLAGS) -DJUDYL -DJU_32BIT $<
-%.w.64.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) $(CFLAGS) -DJUDYL -DJU_64BIT $<
-
-ifeq (win,$(OS))
-#JUDY_WIN = -DJU_WIN
-JUDY_WIN = -DJU_WMAIN -I$(TOP)/interfaces/cc/vc++
-endif
-
-#ifeq (dbg, $(BUILD))
-#DEBUG := -DDEBUG
-#endif
-
-CFLAGS = $(DEBUG) $(NO_ARRAY_BOUNDS_WARNING) $(DBG) $(CARCH) $(PROF) $(JUDY_WIN) -I$(SRCDIR) -I$(SRCDIR)/..
-
-VPATH += $(OBJDIR)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: makedirs
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(INT_LIBS): makedirs
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_LIBS): makedirs
-	@ $(MAKE_CMD) $(LIBDIR)/$@
-
-.PHONY: all std $(ALL_LIBS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
-	$(addprefix $(LIBDIR)/,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_LIBS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
-
-
-#-------------------------------------------------------------------------------
-# judy tables - whee!
-#
-JUDY_TABLES_SRC = \
-	JudyTablesGen
-
-JUDY_TABLES_BOBJ = \
-	$(addsuffix .b.$(BITS).$(OBJX),$(JUDY_TABLES_SRC))
-
-JUDY_TABLES_WOBJ = \
-	$(addsuffix .w.$(BITS).$(OBJX),$(JUDY_TABLES_SRC))
-
-$(OBJDIR)/Judy1TablesGen: $(JUDY_TABLES_BOBJ)
-	$(LD) --exe -o $@ $^
-
-$(OBJDIR)/JudyLTablesGen: $(JUDY_TABLES_WOBJ)
-	$(LD) --exe -o $@ $^
-
-$(OBJDIR)/Judy1Tables.c: $(OBJDIR)/Judy1TablesGen
-	$(RUN_REMOTELY) $^
-
-$(OBJDIR)/JudyLTables.c: $(OBJDIR)/JudyLTablesGen
-	$(RUN_REMOTELY) $^
-
-$(ILIBDIR)/judy-tables: \
-	$(OBJDIR)/JudyLTables.c \
-	$(OBJDIR)/Judy1Tables.c
-
-#-------------------------------------------------------------------------------
-# judy whee!
-#
-
-$(ILIBDIR)/libjudy: $(addprefix $(ILIBDIR)/libjudy.,$(LIBX))
-
-JUDY_NEUTRAL = \
-	JudyMalloc \
-	JudySL \
-	JudyHS
-
-JUDY_CMN = \
-	JudyGet \
-	JudyIns \
-	JudyInsArray \
-	JudyDel \
-	JudyCascade \
-	JudyCount \
-	JudyCreateBranch \
-	JudyDecascade \
-	JudyFirst \
-	JudyFreeArray \
-	JudyInsertBranch \
-	JudyMallocIF \
-	JudyMemActive \
-	JudyMemUsed \
-	JudyNext \
-	JudyNextEmpty \
-	JudyPrev \
-	JudyPrevEmpty \
-	JudyByCountWithDefs \
-	j__udyGet
-
-JUDY_WORD = \
-	JudyLTables
-
-JUDY_BIT = \
-	Judy1Tables
-
-JUDY_SRC = \
-	$(addsuffix .n,$(JUDY_NEUTRAL)) \
-	$(addsuffix .w,$(JUDY_CMN) $(JUDY_WORD)) \
-	$(addsuffix .b,$(JUDY_CMN) $(JUDY_BIT))
-
-JUDY_OBJ = \
-	$(addsuffix .$(BITS).$(LOBX),$(JUDY_SRC))
-
-$(ILIBDIR)/libjudy.$(LIBX): $(JUDY_OBJ)
-	$(LD) --slib -o $@ $^
-
-libjudy_tag:
-	@ true
diff --git a/libs/klib/judy/j__udyGet.c b/libs/klib/judy/j__udyGet.c
deleted file mode 100644
index 478c0f1..0000000
--- a/libs/klib/judy/j__udyGet.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define JUDYGETINLINE 1
-#include "JudyGet.c"
diff --git a/libs/klib/ksort.c b/libs/klib/ksort.c
deleted file mode 100644
index 88ff088..0000000
--- a/libs/klib/ksort.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/extern.h>
-#include <klib/sort.h>
-
-
-/*--------------------------------------------------------------------------
- * ksort
- *  qsort with a function data pointer
- */
-
-#define TSWAP( T, a, b )                                      \
-    do                                                        \
-    {                                                         \
-        T tmp = * ( const T* ) ( a );                         \
-        * ( T* ) ( a ) = * ( const T* ) ( b );                \
-        * ( T* ) ( b ) = tmp;                                 \
-    }                                                         \
-    while ( 0 )
-
-#define TCMP( T, a, b )                                       \
-    ( ( * ( const T* ) ( a ) < * ( const T* ) ( b ) ) ? -1 :  \
-      ( * ( const T* ) ( a ) > * ( const T* ) ( b ) ) )
-
-
-/* various custom ksort operations
- *  structures will generally want their own functions
- *  these fundamental types can be standardized
- */
-LIB_EXPORT void CC ksort_int32_t ( int32_t *pbase, size_t total_elems )
-{
-#define SWAP( a, b, off, size )  TSWAP ( int32_t, a, b )
-#define CMP( a, b )                                             \
-    ( * ( const int32_t* ) ( a ) - * ( const int32_t* ) ( b ) )
-
-    KSORT ( pbase, total_elems, sizeof * pbase, 0, sizeof * pbase );
-
-#undef SWAP
-#undef CMP
-}
-
-LIB_EXPORT void CC ksort_uint32_t ( uint32_t *pbase, size_t total_elems )
-{
-#define SWAP( a, b, off, size )  TSWAP ( uint32_t, a, b )
-#define CMP( a, b ) TCMP ( uint32_t, a, b )
-
-    KSORT ( pbase, total_elems, sizeof * pbase, 0, sizeof * pbase );
-
-#undef SWAP
-#undef CMP
-}
-
-LIB_EXPORT void CC ksort_int64_t ( int64_t *pbase, size_t total_elems )
-{
-#define SWAP( a, b, off, size )  TSWAP ( int64_t, a, b )
-#define CMP( a, b ) TCMP ( int64_t, a, b )
-
-    KSORT ( pbase, total_elems, sizeof * pbase, 0, sizeof * pbase );
-
-#undef SWAP
-#undef CMP
-}
-
-LIB_EXPORT void CC ksort_uint64_t ( uint64_t *pbase, size_t total_elems )
-{
-#define SWAP( a, b, off, size )  TSWAP ( uint64_t, a, b )
-#define CMP( a, b ) TCMP ( uint64_t, a, b )
-
-    KSORT ( pbase, total_elems, sizeof * pbase, 0, sizeof * pbase );
-
-#undef SWAP
-#undef CMP
-}
diff --git a/libs/klib/libklib.vers b/libs/klib/libklib.vers
index 0b1f1ed..23aa839 100644
--- a/libs/klib/libklib.vers
+++ b/libs/klib/libklib.vers
@@ -1 +1 @@
-1.2.13
+1.2.2
diff --git a/libs/klib/libklib.vers.h b/libs/klib/libklib.vers.h
new file mode 100644
index 0000000..2689092
--- /dev/null
+++ b/libs/klib/libklib.vers.h
@@ -0,0 +1 @@
+#define LIBKLIB_VERS 0x01020002
diff --git a/libs/klib/log.c b/libs/klib/log.c
index 28aa7ea..eb8571d 100644
--- a/libs/klib/log.c
+++ b/libs/klib/log.c
@@ -117,8 +117,7 @@ LIB_EXPORT const char ** CC KLogGetParamStrings ( void )
 LIB_EXPORT rc_t CC KLogLevelExplain ( KLogLevel lvl, char *buffer, size_t bsize, size_t *num_writ )
 {
     static const char undefined[] = "undefined";
-    size_t size;
-    uint32_t len;
+    size_t len;
     const char *t;
 
     /* catch unaccounted for or bad changes in log.h
@@ -139,7 +138,7 @@ LIB_EXPORT rc_t CC KLogLevelExplain ( KLogLevel lvl, char *buffer, size_t bsize,
         t = logLevelParamStrings[lvl];
     }
 
-    len = string_measure (t, &size);
+    len = strlen (t);
     if(len > bsize) {
         if (num_writ) {
             *num_writ = 0;
@@ -147,9 +146,9 @@ LIB_EXPORT rc_t CC KLogLevelExplain ( KLogLevel lvl, char *buffer, size_t bsize,
         return RC ( rcRuntime, rcLog, rcLogging, rcBuffer, rcInsufficient );
     }
     if(num_writ) {
-        *num_writ = len;
+        *num_writ = strlen (t);
     }
-    string_copy (buffer, bsize, t, len);
+    strncpy (buffer, t, bsize);
     return 0;
 }
 
@@ -158,7 +157,7 @@ rc_t CC KLogDefaultFormatter( void* self, KWrtHandler* writer,
                               size_t envc, const wrt_nvp_t envs[] )
 {
     rc_t rc = 0;
-    size_t num_writ, nsize, msize;
+    size_t num_writ, nsize;
     uint32_t mlen;
     char buffer[8192], *nbuffer;
     const char* msg, *rc_msg;
@@ -170,7 +169,7 @@ rc_t CC KLogDefaultFormatter( void* self, KWrtHandler* writer,
     msg = wrt_nvp_find_value(envc, envs, "message");
     rc_msg = wrt_nvp_find_value(envc, envs, "reason");
     if( msg != NULL ) {
-        const char* mend = msg + string_measure(msg, &msize);
+        const char* mend = msg + strlen(msg);
         /* strip trailing newlines */
         while( mend != msg && (*mend == '\n' || *mend == '\r') ) {
             --mend;
@@ -339,7 +338,6 @@ rc_t logsubstituteparams ( const char* msg, uint32_t argc, const wrt_nvp_t argv[
         if ( msg [ i ] == '$' && msg [ i + 1 ] == '(' )
         {
             const char *value;
-            size_t size;
 
             /* find param by name */
             const wrt_nvp_t *arg = wrt_nvp_find(argc, argv, &msg[ i + 2 ]);
@@ -359,7 +357,7 @@ rc_t logsubstituteparams ( const char* msg, uint32_t argc, const wrt_nvp_t argv[
             /* compensate for outer loop's increment */
             --sz;
             /* advance past param token */
-            i += string_measure(arg->name, &size) + 2;
+            i += strlen(arg->name) + 2;
             assert( msg[i] == ')' );
         }
     }
@@ -487,11 +485,11 @@ rc_t log_print( KFmtHandler* formatter, const KLogFmtFlags flags, KWrtHandler* w
 
     uint32_t envc = 0;
     wrt_nvp_t envs[20];
-    char ebuffer[2048];
+    const char ebuffer[2048];
     uint32_t argc = 0;
     wrt_nvp_t argv[32];
     char pbuffer[4096];
-    char abuffer[4096];
+    const char abuffer[4096];
     KFmtWriter fmtwrt;
     
     assert(formatter != NULL);
@@ -652,23 +650,19 @@ rc_t log_print( KFmtHandler* formatter, const KLogFmtFlags flags, KWrtHandler* w
     }
     if( rc != 0 ) {
         /* print reason for failure */
-        string_printf((char*)abuffer, sizeof(abuffer), &num_writ, "log failure: %R in '%s'", rc, msg);
+        rc = string_printf((char*)abuffer, sizeof(abuffer), &num_writ, "log failure: %R in '%s'", rc, msg);
         envs[envc].name = "message";
         envs[envc++].value = abuffer;
     }
-
     wrt_nvp_sort(envc, envs);
-
-    {
-        rc_t rc2 = fmtwrt(formatter->data, writer, argc, argv, envc, envs);
-        if( (rc2 == 0) && use_rc ) {
-            KLogLastErrorCodeSet(lvl, status);
-        }
-        if(nbuffer != abuffer) {
-            free(nbuffer);
-        }
-        return rc != 0 ? rc : rc2;
+    rc = fmtwrt(formatter->data, writer, argc, argv, envc, envs);
+    if( (rc == 0) && use_rc ) {
+        KLogLastErrorCodeSet(lvl, status);
+    }
+    if(nbuffer != abuffer) {
+        free(nbuffer);
     }
+    return rc;
 }
 
 /* LogMsg
diff --git a/libs/klib/pbstree-impl.c b/libs/klib/pbstree-impl.c
index c6ebf19..27d307d 100644
--- a/libs/klib/pbstree-impl.c
+++ b/libs/klib/pbstree-impl.c
@@ -503,46 +503,46 @@ bool CC PBSTreeImplDoUntil8 ( const PBSTree *self, bool reverse,
 
         end = GET32( pt -> data_size );
 
-        data_start = & pt -> data_idx . v8 [ num_nodes ];
+	data_start = & pt -> data_idx . v8 [ num_nodes ];
 	
-        if ( ! reverse )
-        {
-            for ( off = pt -> data_idx . v8 [ 0 ],
-                  id = 1; id < num_nodes; off = end, ++ id )
-            {
-                end = pt -> data_idx . v8 [ id ];
-                n . internal = pt;
-                n . id = id;
-                n . data . addr = & data_start [ off ];
-                n . data . size = end - off;
-                if ( ( * f ) ( & n, data ) )
-                    return true;
-            }
+	if ( ! reverse )
+	  {
+	    for ( off = pt -> data_idx . v8 [ 0 ],
+		    id = 1; id < num_nodes; off = end, ++ id )
+	      {
+		end = pt -> data_idx . v8 [ id ];
+		n . internal = pt;
+		n . id = id;
+		n . data . addr = & data_start [ off ];
+		n . data . size = end - off;
+		if ( ( * f ) ( & n, data ) )
+		  return 1;
+	      }
 	    
-            end = GET32( pt -> data_size );
-        }
+	    end = GET32( pt -> data_size );
+	  }
 
-        off = pt -> data_idx . v8 [ num_nodes - 1 ];
-        n . internal = pt;
-        n . id = num_nodes;
-        n . data . addr = & data_start [ off ];
-        n . data . size = end - off;
-        if ( ( * f ) ( & n, data ) )
-            return true;
+	off = pt -> data_idx . v8 [ num_nodes - 1 ];
+	n . internal = pt;
+	n . id = num_nodes;
+	n . data . addr = & data_start [ off ];
+	n . data . size = end - off;
+	if ( ( * f ) ( & n, data ) )
+	  return 1;
 
-        if ( reverse )
-        {
-            for ( end = off, id = num_nodes - 1; id > 0; end = off, -- id )
-            {
-                off = pt -> data_idx . v8 [ id - 1 ];
-                n . internal = pt;
-                n . id = id;
-                n . data . addr = & data_start [ off ];
-                n . data . size = end - off;
-                if ( ( * f ) ( & n, data ) )
-                    return true;
-            }
-        }
+	if ( reverse )
+	  {
+	    for ( end = off, id = num_nodes - 1; id > 0; end = off, -- id )
+	      {
+		off = pt -> data_idx . v8 [ id - 1 ];
+		n . internal = pt;
+		n . id = id;
+		n . data . addr = & data_start [ off ];
+		n . data . size = end - off;
+		if ( ( * f ) ( & n, data ) )
+		  return 1;
+	      }
+	  }
     }
 
     return 0;
@@ -563,47 +563,47 @@ bool CC PBSTreeImplDoUntil16 ( const PBSTree *self, bool reverse,
 
         end = GET32( pt -> data_size );
 
-        data_start = ( const uint8_t* )
-            & pt -> data_idx . v16 [ num_nodes ];
+	data_start = ( const uint8_t* )
+	  & pt -> data_idx . v16 [ num_nodes ];
             
-        if ( ! reverse )
-        {
-            for ( off = GET16( pt -> data_idx . v16 [ 0 ] ),
-                  id = 1; id < num_nodes; off = end, ++ id )
-            {
-                end = GET16( pt -> data_idx . v16 [ id ] );
-                n . internal = pt;
-                n . id = id;
-                n . data . addr = & data_start [ off ];
-                n . data . size = end - off;
-                if ( ( * f ) ( & n, data ) )
-                    return true;
-            }
+	if ( ! reverse )
+	  {
+	    for ( off = GET16( pt -> data_idx . v16 [ 0 ] ),
+		    id = 1; id < num_nodes; off = end, ++ id )
+	      {
+		end = GET16( pt -> data_idx . v16 [ id ] );
+		n . internal = pt;
+		n . id = id;
+		n . data . addr = & data_start [ off ];
+		n . data . size = end - off;
+		if ( ( * f ) ( & n, data ) )
+		  return 1;
+	      }
                 
-            end = GET32( pt -> data_size );
-        }
+	    end = GET32( pt -> data_size );
+	  }
 
-        off = GET16( pt -> data_idx . v16 [ num_nodes - 1 ] );
-        n . internal = pt;
-        n . id = num_nodes;
-        n . data . addr = & data_start [ off ];
-        n . data . size = end - off;
-        if ( ( * f ) ( & n, data ) )
-            return true;
+	off = GET16( pt -> data_idx . v16 [ num_nodes - 1 ] );
+	n . internal = pt;
+	n . id = num_nodes;
+	n . data . addr = & data_start [ off ];
+	n . data . size = end - off;
+	if ( ( * f ) ( & n, data ) )
+	  return 1;
             
-        if ( reverse )
-        {
-            for ( end = off, id = num_nodes - 1; id > 0; end = off, -- id )
-            {
-                off = GET16( pt -> data_idx . v16 [ id - 1 ] );
-                n . internal = pt;
-                n . id = id;
-                n . data . addr = & data_start [ off ];
-                n . data . size = end - off;
-                if ( ( * f ) ( & n, data ) )
-                    return true;
-            }
-        }
+	if ( reverse )
+	  {
+	    for ( end = off, id = num_nodes - 1; id > 0; end = off, -- id )
+	      {
+		off = GET16( pt -> data_idx . v16 [ id - 1 ] );
+		n . internal = pt;
+		n . id = id;
+		n . data . addr = & data_start [ off ];
+		n . data . size = end - off;
+		if ( ( * f ) ( & n, data ) )
+		  return 1;
+	      }
+	  }
     }
     return 0;
 }
@@ -623,47 +623,47 @@ bool CC PBSTreeImplDoUntil32 ( const PBSTree *self, bool reverse,
 
         end = GET32( pt -> data_size );
 
-        data_start = ( const uint8_t* )
-            & pt -> data_idx . v32 [ num_nodes ];
+	data_start = ( const uint8_t* )
+	  & pt -> data_idx . v32 [ num_nodes ];
             
-        if ( ! reverse )
-        {
-            for ( off = GET32( pt -> data_idx . v32 [ 0 ] ),
-                  id = 1; id < num_nodes; off = end, ++ id )
-            {
-                end = GET32( pt -> data_idx . v32 [ id ] );
-                n . internal = pt;
-                n . id = id;
-                n . data . addr = & data_start [ off ];
-                n . data . size = end - off;
-                if ( ( * f ) ( & n, data ) )
-                    return true;
-            }
+	if ( ! reverse )
+	  {
+	    for ( off = GET32( pt -> data_idx . v32 [ 0 ] ),
+		    id = 1; id < num_nodes; off = end, ++ id )
+	      {
+		end = GET32( pt -> data_idx . v32 [ id ] );
+		n . internal = pt;
+		n . id = id;
+		n . data . addr = & data_start [ off ];
+		n . data . size = end - off;
+		if ( ( * f ) ( & n, data ) )
+		  return 1;
+	      }
                 
-            end = GET32( pt -> data_size );
-        }
+	    end = GET32( pt -> data_size );
+	  }
             
-        off = GET32( pt -> data_idx . v32 [ num_nodes - 1 ] );
-        n . internal = pt;
-        n . id = num_nodes;
-        n . data . addr = & data_start [ off ];
-        n . data . size = end - off;
-        if ( ( * f ) ( & n, data ) )
-            return true;
+	off = GET32( pt -> data_idx . v32 [ num_nodes - 1 ] );
+	n . internal = pt;
+	n . id = num_nodes;
+	n . data . addr = & data_start [ off ];
+	n . data . size = end - off;
+	if ( ( * f ) ( & n, data ) )
+	  return 1;
             
-        if ( reverse )
-        {
-            for ( end = off, id = num_nodes - 1; id > 0; end = off, -- id )
-            {
-                off = GET32( pt -> data_idx . v32 [ id - 1 ] );
-                n . internal = pt;
-                n . id = id;
-                n . data . addr = & data_start [ off ];
-                n . data . size = end - off;
-                if ( ( * f ) ( & n, data ) )
-                    return true;
-            }
-        }
+	if ( reverse )
+	  {
+	    for ( end = off, id = num_nodes - 1; id > 0; end = off, -- id )
+	      {
+		off = GET32( pt -> data_idx . v32 [ id - 1 ] );
+		n . internal = pt;
+		n . id = id;
+		n . data . addr = & data_start [ off ];
+		n . data . size = end - off;
+		if ( ( * f ) ( & n, data ) )
+		  return 1;
+	      }
+	  }
     }
 
     return 0;
diff --git a/libs/klib/printf.c b/libs/klib/printf.c
index 017ab92..f1f92d5 100644
--- a/libs/klib/printf.c
+++ b/libs/klib/printf.c
@@ -41,58 +41,6 @@
 #include <stdio.h>
 #include <assert.h>
 
-/* the number of PrintFmt, PrintArg and String
-   elements to allocate in function-local storage */
-#define LOCAL_FMT_COUNT 64
-
-
-/* for testing purposes - temporarily define this guy */
-#define STDC_COMPATIBILITY 1
-
-/***********************************
- * OLD PRINTF CODE IS NOW INACTIVE *
- ***********************************/
-#define USE_OLD_PRINTF 0
-
-/***********************************
- * OUR OLD BUDDY                   *
- ***********************************/
-#if WINDOWS
-#undef snprintf
-#define snprintf _snprintf
-#endif
-
-/**************************************
- * NAMING TRICKS TO HAVE BOTH ON HAND *
- **************************************/
-#if USE_OLD_PRINTF
-#define old_string_vprintf string_vprintf
-#define old_string_printf string_printf
-#define old_vkfprintf vkfprintf
-#define old_kfprintf kfprintf
-#else
-#define new_string_vprintf string_vprintf
-#define new_string_printf string_printf
-#define new_vkfprintf vkfprintf
-#define new_kfprintf kfprintf
-#endif
-
-/************************************
- * BEHAVIORS SENSITIVE TO STDC MODE *
- ************************************/
-#if STDC_COMPATIBILITY
-#define NULL_STRING_TEXT "(null)"
-#else
-#define NULL_STRING_TEXT "NULL"
-#endif
-#define DOUSE_NUM_PREFIX_IF_ZERO              STDC_COMPATIBILITY
-#define KEEP_OCT_PREFIX_IF_ZERO               STDC_COMPATIBILITY
-#define OCTAL_PREFIX_COUNTS_TOWARD_PRECISION  STDC_COMPATIBILITY
-#define HEX_PREFIX_FOLLOWS_CASE               STDC_COMPATIBILITY
-/* Present in 2.3.3 (from SLES 9.3), absent in 2.5 (from CentOS 5.6) */
-#define EMULATE_SMALLINT_EXTENSION_BUG      ( STDC_COMPATIBILITY && defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 5) ) )
-#define ZERO_PAD_ONLY_NUMBERS               ( !STDC_COMPATIBILITY || defined(__GLIBC__) )
-
 #define USE_LIB_FLOAT 1
 
 static
@@ -147,7 +95,7 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
     char buff [ 256 ];
     char use_sign, padding;
     const char *hex_digits;
-    uint32_t i, j, len, digits, min_field_width, max_field_width, precision;
+    uint32_t i, j, len, min_field_width, max_field_width, precision;
     bool left_align, comma_separate, have_precision, byte_size, half_size, long_size;
     bool alternate, trim_trailing_zeros, date_time_zone;
 
@@ -201,8 +149,6 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             continue;
         }
 
-        digits = 0;
-
         /* process flags */
         use_sign = 0;
         left_align = comma_separate = alternate = false;
@@ -279,10 +225,6 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
         byte_size = half_size = long_size = date_time_zone = false;
         switch ( fmt [ sidx ] )
         {
-        case 't':
-            byte_size = true;
-            ++ sidx;
-            break;
         case 'h':
             /* this should not be necessary */
             if ( fmt [  ++ sidx ] != 'h' )
@@ -322,14 +264,12 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             else
                 i64 = va_arg ( args, int32_t );
 
-#if ! STDC_COMPATIBILITY
             /* detect zero */
             if ( i64 == 0 )
                 use_sign = 0;
-            else
-#endif
+
             /* detect negative */
-            if ( i64 < 0 )
+            else if ( i64 < 0 )
             {
                 use_sign = '-';
                 i64 = - i64;
@@ -341,22 +281,20 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
         make_signed_integer:
 #endif
             /* convert to numeral */
-            if ( comma_separate ) for ( -- i, j = 0; ; -- i, ++ j )
+            if ( comma_separate ) for ( -- i, j = 0; ; -- i )
             {
-                if ( j == 3 )
+                buff [ i ] =  ( i64 % 10 ) + '0';
+                if ( ( i64 /= 10 ) == 0 )
+                    break;
+                if ( ++ j == 3 )
                 {
                     buff [ -- i ] = ',';
                     j = 0;
                 }
-                buff [ i ] =  ( i64 % 10 ) + '0';
-                ++ digits;
-                if ( ( i64 /= 10 ) == 0 )
-                    break;
             }
-            else for ( -- i, digits = 0; ; -- i )
+            else for ( -- i; ; -- i )
             {
                 buff [ i ] =  ( i64 % 10 ) + '0';
-                ++ digits;
                 if ( ( i64 /= 10 ) == 0 )
                     break;
             }
@@ -392,11 +330,10 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
                     if ( didx < bsize )
                         dst [ didx ] = use_sign;
                     ++ didx;
-                    ++ len;
                 }
 
                 /* precision */
-                for ( ; digits < precision; ++ didx, ++ len, ++ digits )
+                for ( ; len < precision; ++ didx, ++ len )
                 {
                     if ( didx < bsize )
                         dst [ didx ] = '0';
@@ -410,7 +347,7 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
                 }
 
                 /* padding */
-                for ( ; len < min_field_width; ++ didx, ++ len )
+                for ( len += ( use_sign != 0 ); len < min_field_width; ++ didx, ++ len )
                 {
                     if ( didx < bsize )
                         dst [ didx ] = ' ';
@@ -419,32 +356,28 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             /* insert right-aligned */
             else
             {
-                /* remove sign from field width */
-                if ( use_sign != 0 && min_field_width != 0 )
-                    -- min_field_width;
-
                 /* zero padding means issue sign first */
                 if ( use_sign != 0 && padding == '0' )
                 {
                     if ( didx < bsize )
                         dst [ didx ] = use_sign;
                     ++ didx;
-                    use_sign = 0;
+                    ++ len;
                 }
 
-                /* adjust length for precision */
-                if ( precision > digits )
-                    len += precision - digits;
+                /* precision from length */
+                if ( precision < len )
+                    precision = len;
 
                 /* apply padding */
-                for ( ; len < min_field_width; ++ didx, -- min_field_width )
+                for ( ; precision < min_field_width; ++ didx, -- min_field_width )
                 {
                     if ( didx < bsize )
                         dst [ didx ] = padding;
                 }
 
                 /* sign */
-                if ( use_sign != 0 )
+                if ( use_sign != 0 && padding != '0' )
                 {
                     if ( didx < bsize )
                         dst [ didx ] = use_sign;
@@ -452,7 +385,7 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
                 }
 
                 /* precision */
-                for ( ; digits < precision; ++ didx, ++ digits )
+                for ( ; len < precision; ++ didx, ++ len )
                 {
                     if ( didx < bsize )
                         dst [ didx ] = '0';
@@ -483,25 +416,10 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             /* no sign */
             use_sign = 0;
 
-            i = sizeof buff - 1;
-
             /* convert to numeral */
-            if ( comma_separate ) for ( j = digits = 0; ; -- i, ++ j )
-            {
-                if ( j == 3 )
-                {
-                    buff [ -- i ] = ',';
-                    j = 0;
-                }
-                buff [ i ] =  ( u64 % 10 ) + '0';
-                ++ digits;
-                if ( ( u64 /= 10 ) == 0 )
-                    break;
-            }
-            else for ( digits = 0; ; -- i )
+            for ( i = sizeof buff - 1; ; -- i )
             {
                 buff [ i ] =  ( u64 % 10 ) + '0';
-                ++ digits;
                 if ( ( u64 /= 10 ) == 0 )
                     break;
             }
@@ -540,25 +458,10 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             /* no sign */
             use_sign = 0;
 
-            i = sizeof buff - 1;
-
             /* convert to numeral */
-            if ( comma_separate ) for ( j = digits = 0; ; -- i, ++ j )
-            {
-                if ( j == 3 )
-                {
-                    buff [ -- i ] = ',';
-                    j = 0;
-                }
-                buff [ i ] =  hex_digits [ u64 & 15 ];
-                ++ digits;
-                if ( ( u64 >>= 4 ) == 0 )
-                    break;
-            }
-            else for ( digits = 0; ; -- i )
+            for ( i = sizeof buff - 1; ; -- i )
             {
                 buff [ i ] =  hex_digits [ u64 & 15 ];
-                ++ digits;
                 if ( ( u64 >>= 4 ) == 0 )
                     break;
             }
@@ -586,36 +489,16 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             /* no sign */
             use_sign = 0;
 
-            i = sizeof buff - 1;
-
             /* convert to numeral */
-            if ( comma_separate ) for ( j = digits = 0; ; -- i, ++ j )
-            {
-                if ( j == 3 )
-                {
-                    buff [ -- i ] = ',';
-                    j = 0;
-                }
-                buff [ i ] =  ( u64 & 7 ) + '0';
-                ++ digits;
-                if ( ( u64 >>= 3 ) == 0 )
-                    break;
-            }
-            else for ( digits = 0; ; -- i )
+            for ( i = sizeof buff - 1; ; -- i )
             {
                 buff [ i ] =  ( u64 & 7 ) + '0';
-                ++ digits;
                 if ( ( u64 >>= 3 ) == 0 )
                     break;
             }
 
             if ( alternate )
-            {
                 buff [ -- i ] = '0';
-#if STDC_COMPATIBILITY
-                ++ digits;
-#endif
-            }
 
             goto insert_integer;
 
@@ -634,25 +517,10 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             /* no sign */
             use_sign = 0;
 
-            i = sizeof buff - 1;
-
             /* convert to numeral */
-            if ( comma_separate ) for ( j = digits = 0; ; -- i, ++ j )
-            {
-                if ( j == 3 )
-                {
-                    buff [ -- i ] = ',';
-                    j = 0;
-                }
-                buff [ i ] =  ( u64 & 1 ) + '0';
-                ++ digits;
-                if ( ( u64 >>= 1 ) == 0 )
-                    break;
-            }
-            else for ( i = sizeof buff - 1; ; -- i )
+            for ( i = sizeof buff - 1; ; -- i )
             {
                 buff [ i ] =  ( u64 & 1 ) + '0';
-                ++ digits;
                 if ( ( u64 >>= 1 ) == 0 )
                     break;
             }
@@ -875,10 +743,8 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             /* sign makes no sense */
             use_sign = 0;
 
-#if ZERO_PAD_ONLY_NUMBERS
             /* padding is always with spaces */
             padding = ' ';
-#endif
 
             /* other than that, we can treat it as an integer */
             goto insert_integer;
@@ -896,10 +762,6 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
             if ( ! have_precision )
                 precision = -1;
 
-#if ZERO_PAD_ONLY_NUMBERS
-            /* padding is always with spaces */
-            padding = ' ';
-#endif
             /* test for buffer flush */
             if ( flush != NULL && didx < bsize )
             {
@@ -925,7 +787,7 @@ rc_t string_flush_vprintf ( char *dst, size_t bsize, const KWrtHandler *flush,
                 for ( ; len < min_field_width; ++ didx, ++ len )
                 {
                     if ( didx < bsize )
-                        dst [ didx ] = padding;
+                        dst [ didx ] = ' ';
                 }
             }
 
@@ -1261,13 +1123,13 @@ rc_t CC string_flush_printf ( char *dst, size_t bsize,
     return rc;
 }
 
-LIB_EXPORT rc_t CC old_string_vprintf ( char *dst, size_t bsize,
+LIB_EXPORT rc_t CC string_vprintf ( char *dst, size_t bsize,
     size_t *num_writ, const char *fmt, va_list args )
 {
     return string_flush_vprintf ( dst, bsize, NULL, num_writ, fmt, args );
 }
 
-LIB_EXPORT rc_t CC old_string_printf ( char *dst, size_t bsize, size_t *num_writ, const char *fmt, ... )
+LIB_EXPORT rc_t CC string_printf ( char *dst, size_t bsize, size_t *num_writ, const char *fmt, ... )
 {
     rc_t rc;
 
@@ -1281,7 +1143,7 @@ LIB_EXPORT rc_t CC old_string_printf ( char *dst, size_t bsize, size_t *num_writ
     return rc;
 }
 
-LIB_EXPORT size_t CC old_vkfprintf ( const KWrtHandler *out,
+LIB_EXPORT size_t CC vkfprintf ( const KWrtHandler *out,
     size_t *num_writ, const char * fmt, va_list args )
 {
     rc_t rc;
@@ -1303,7 +1165,7 @@ LIB_EXPORT size_t CC old_vkfprintf ( const KWrtHandler *out,
     return rc;
 }
 
-LIB_EXPORT size_t CC old_kfprintf ( const KWrtHandler *out,
+LIB_EXPORT size_t CC kfprintf ( const KWrtHandler *out,
     size_t *num_writ, const char * fmt, ... )
 {
     rc_t rc;
@@ -1311,2142 +1173,7 @@ LIB_EXPORT size_t CC old_kfprintf ( const KWrtHandler *out,
     va_list args;
     va_start ( args, fmt );
 
-    rc = old_vkfprintf ( out, num_writ, fmt, args );
-        
-    va_end ( args );
-
-    return rc;
-}
-
-/****************************
- * NEW PRINTF IS NOW ACTIVE *
- ****************************/
-
-/* create_overflow
- *  create a buffer so large that it cannot overflow again
- *  copy in existing structures
- *  map self-referential pointers
- */
-static
-rc_t create_overflow ( KDataBuffer *overflow, const char *fmt_str,
-    String **strp, PrintFmt **fmtp, PrintArg **argp,
-    uint32_t str_idx, uint32_t fmt_idx, uint32_t arg_idx )
-{
-    /* measure the format string and infer that
-       we can never have more format items than
-       characters in the string... */
-    size_t fmt_str_size = strlen ( fmt_str );
-
-    /* our size will create a format and argument
-       for every byte. this should be a total overkill. */
-    size_t buff_size = ( sizeof ** strp + sizeof ** fmtp + sizeof **argp ) * fmt_str_size;
-
-    /* make the buffer */
-    rc_t rc = KDataBufferMakeBytes ( overflow, buff_size );
-    if ( rc == 0 )
-    {
-        /* capture pointers to stack structures */
-        const String *str = * strp;
-        const PrintFmt *fmt = * fmtp;
-        const PrintArg *args = * argp;
-
-        /* destination pointers */
-        String *dstr = overflow -> base;
-        PrintFmt *dfmt = ( void* ) ( dstr + fmt_str_size );
-        PrintArg *dargs = ( void* ) ( dfmt + fmt_str_size );
-
-        /* copy existing data */
-        memcpy ( dstr, str, str_idx * sizeof * dstr );
-        memcpy ( dfmt, fmt, fmt_idx * sizeof * dfmt );
-        memcpy ( dargs, args, arg_idx * sizeof * dargs );
-
-        /* if there are any pointers into "str", relocate them */
-        if ( str_idx != 0 )
-        {
-            uint32_t i, j;
-            for ( i = j = 0; i < fmt_idx && j < str_idx; ++ i )
-            {
-                switch ( dfmt [ i ] . type )
-                {
-                case sptString:
-                case sptUCS2String:
-                case sptUTF32String:
-                    if ( dargs [ i ] . S == & str [ j ] )
-                        dargs [ i ] . S = & dstr [ j ++ ];
-                    break;
-                }
-            }
-        }
-
-        /* replace pointers */
-        * strp = dstr;
-        * fmtp = dfmt;
-        * argp = dargs;
-   }
-
-    return rc;
-}
-
-
-/* parse_format_string
- *  parse format string and args into structured format
- */
-static
-rc_t parse_format_string ( const char *fmt_str, va_list vargs,
-    String **strp, PrintFmt **fmtp, PrintArg **argp, KDataBuffer *overflow )
-{
-    rc_t rc;
-    uint32_t i, str_idx, fmt_idx, arg_idx;
-
-    String *str = * strp;
-    PrintFmt *fmt = * fmtp;
-    PrintArg *args = * argp;
-
-    /* loop over format string */
-    for ( rc = 0, i = str_idx = fmt_idx = arg_idx = 0; fmt_str [ i ] != 0; ++ i )
-    {
-        bool alternate, numeric;
-        char size_modifier, time_modifier;
-        bool has_width, has_precision;
-        bool has_index, infinite_first;
-
-        /* loop to gather literal portions */
-        uint32_t start;
-        for ( start = i; ; ++ i )
-        {
-            /* run until we hit start of substitution token
-               or until we hit end of format string */
-            if ( fmt_str [ i ] != 0 && fmt_str [ i ] != '%' )
-                continue;
-
-            /* detect a literal string */
-            if ( i != start )
-            {
-                /* expand into overflow */
-                if ( fmt_idx == LOCAL_FMT_COUNT )
-                {
-                    rc = create_overflow ( overflow, fmt_str,
-                        strp, fmtp, argp, str_idx, fmt_idx, arg_idx );
-                    if ( rc != 0 )
-                        return rc;
-
-                    str = * strp;
-                    fmt = * fmtp;
-                    args = * argp;
-                }
-
-                /* create a text-literal format */
-                memset ( & fmt [ fmt_idx ], 0, sizeof fmt [ 0 ] );
-                fmt [ fmt_idx ] . u . l . text = & fmt_str [ start ];
-                fmt [ fmt_idx ] . u . l . size = i - start;
-                fmt [ fmt_idx ] . fmt = spfText;
-                fmt [ fmt_idx ] . type = sptLiteral;
-
-                /* increment counter */
-                ++ fmt_idx;
-            }
-
-            /* detect escape sequence */
-            if ( fmt_str [ i ] == 0 || fmt_str [ i + 1 ] != '%' )
-                break;
-
-            /* skip over escape */
-            start = ++ i;
-        }
-
-        /* done when NUL byte is seen */
-        if ( fmt_str [ i ] == 0 )
-            break;
-
-        /* detect overflow */
-        if ( fmt_idx == LOCAL_FMT_COUNT )
-        {
-            rc = create_overflow ( overflow, fmt_str,
-                strp, fmtp, argp, str_idx, fmt_idx, arg_idx );
-            if ( rc != 0 )
-                return rc;
-
-            str = * strp;
-            fmt = * fmtp;
-            args = * argp;
-        }
-
-        /* initial format
-         *  thousands_separate    = false
-         *  add_prefix            = false
-         *  force_decimal_point   = false
-         *  leave_trailing_zeros  = false
-         *  print_time            = false
-         *  print_date            = false
-         *  print_weekday         = false
-         *  print_timezone        = false
-         *  hour_24               = false
-         *  sign                  = 0
-         *  left_fill             = space
-         */
-        memset ( & fmt [ fmt_idx ], 0, sizeof fmt [ 0 ] );
-        fmt [ fmt_idx ] . left_fill = ' ';
-
-        /* scan flags */
-        alternate = false;
-        while ( 1 )
-        {
-            switch ( fmt_str [ ++ i ] )
-            {
-                /* plus and space modify application of sign
-                   to signed integer and floating point conversions.
-                   plus overrides space. */
-            case ' ':
-                if ( fmt [ fmt_idx ] . sign == 0 )
-            case '+':
-                    fmt [ fmt_idx ] . sign = fmt_str [ i ];
-                continue;
-
-                /* dash indicates left-alignment. indicate this
-                   by setting "left_fill" to NUL. */
-            case '-':
-                fmt [ fmt_idx ] . left_fill = 0;
-                continue;
-
-                /* zero indicates an alternate left-fill for
-                   numeric conversions. the zero is inserted before
-                   any sign character in { '+', '-' or ' ' }.
-                   since "left_fill" is also used to indicate
-                   alignment, only store when right aligning. */
-            case '0':
-                if ( fmt [ fmt_idx ] . left_fill != 0 )
-                    fmt [ fmt_idx ] . left_fill = '0';
-                continue;
-
-                /* hash indicates that the formatter should use an
-                   "alternate" approach. that approach is specific
-                   to the format. */
-            case '#':
-                alternate = true;
-                continue;
-
-                /* comma ( or apostrophe outside of US ) indicates
-                   that the integer portion of a numeral should use
-                   a comma as a thousands separator for legibility. */
-            case ',':
-            case '\'':
-                fmt [ fmt_idx ] . thousands_separate = 1;
-                continue;
-            }
-
-            /* we've hit a non-flag character */
-            break;
-        }
-
-        /* minimum field width */
-        has_width = false;
-        if ( isdigit ( fmt_str [ i ] ) )
-        {
-            /* literal */
-            has_width = true;
-            fmt [ fmt_idx ] . u . f . min_field_width = fmt_str [ i ] - '0';
-            while ( isdigit ( fmt_str [ ++ i ] ) )
-            {
-                fmt [ fmt_idx ] . u . f . min_field_width *= 10;
-                fmt [ fmt_idx ] . u . f . min_field_width += fmt_str [ i ] - '0';
-            }
-        }
-        else if ( fmt_str [ i ] == '*' )
-        {
-            /* external - we populate the structure directly
-               rather than marking the value as external */
-            has_width = true;
-            fmt [ fmt_idx ] . u . f . min_field_width = va_arg ( vargs, uint32_t );
-            ++ i;
-        }
-
-        /* precision */
-        has_precision = false;
-        if ( fmt_str [ i ] == '.' )
-        {
-            /* a single dot implies a precision value of 0 */
-            has_precision = true;
-
-            if ( isdigit ( fmt_str [ ++ i ] ) )
-            {
-                /* a literal precision */
-                fmt [ fmt_idx ] . u . f . precision = fmt_str [ i ] - '0';
-                while ( isdigit ( fmt_str [ ++ i ] ) )
-                {
-                    fmt [ fmt_idx ] . u . f . precision *= 10;
-                    fmt [ fmt_idx ] . u . f . precision += fmt_str [ i ] - '0';
-                }
-            }
-            else if ( fmt_str [ i ] == '*' )
-            {
-                /* external - again populate directly */
-                fmt [ fmt_idx ] . u . f . precision = va_arg ( vargs, uint32_t );
-                ++ i;
-            }
-            else if ( fmt_str [ i ] == '-' )
-            {
-                /* eat a negative precision - treat as 0 */
-                while ( isdigit ( fmt_str [ ++ i ] ) )
-                    ( void ) 0;
-            }
-        }
-
-        /* index - given when parameter is a vector */
-        has_index = infinite_first = false;
-        if ( fmt_str [ i ] == ':' )
-        {
-            bool has_start, has_len, has_end, end_is_stop;
-            has_start = has_len = has_end = end_is_stop = false;
-
-            /* parameter is taken as a vector,
-               with a default index starting at 0 */
-            has_index = true;
-
-            if ( isdigit ( fmt_str [ ++ i ] ) )
-            {
-                /* literal index */
-                fmt [ fmt_idx ] . u . f . start_idx = fmt_str [ i ] - '0';
-                while ( isdigit ( fmt_str [ ++ i ] ) )
-                {
-                    fmt [ fmt_idx ] . u . f . start_idx *= 10;
-                    fmt [ fmt_idx ] . u . f . start_idx += fmt_str [ i ] - '0';
-                }
-                has_start = true;
-            }
-            else switch ( fmt_str [ i ] )
-            {
-            case '*':
-                /* external index, captured directly */
-                fmt [ fmt_idx ] . u . f . start_idx = va_arg ( vargs, uint32_t );
-                ++ i;
-                has_start = true;
-                break;
-            case '$':
-                ++ i;
-                has_start = infinite_first = true;
-                break;
-            }
-
-            /* detect range */
-            switch ( fmt_str [ i ] )
-            {
-                /* given as start-stop */
-            case '-':
-                end_is_stop = true;
-
-                /* given as start/len */
-            case '/':
-
-                has_len = true;
-
-                if ( isdigit ( fmt_str [ ++ i ] ) )
-                {
-                    /* literal selection length or end */
-                    fmt [ fmt_idx ] . u . f . select_len = fmt_str [ i ] - '0';
-                    while ( isdigit ( fmt_str [ ++ i ] ) )
-                    {
-                        fmt [ fmt_idx ] . u . f . select_len *= 10;
-                        fmt [ fmt_idx ] . u . f . select_len += fmt_str [ i ] - '0';
-                    }
-                    has_end = true;
-                }
-                else switch ( fmt_str [ i ] )
-                {
-                case '*':
-                    /* external selection length or end */
-                    fmt [ fmt_idx ] . u . f . select_len = va_arg ( vargs, uint32_t );
-                    ++ i;
-                    has_end = true;
-                    break;
-                case '$':
-                    ++ i;
-                    end_is_stop = false;
-                    break;
-                case '-':
-                    /* negatives are garbage */
-                    while ( isdigit ( fmt_str [ ++ i ] ) )
-                        ( void ) 0;
-                    break;
-                default:
-                    end_is_stop = false;
-                }
-                break;
-            }
-
-            /* massage values */
-            if ( infinite_first )
-            {
-                /* having an infinite first forces length of 1 */
-                fmt [ fmt_idx ] . u . f . select_len = 1;
-            }
-            else if ( has_len )
-            {
-                /* if either a number or an external value was given */
-                if ( has_end && end_is_stop )
-                {
-                    /* end <= start is translated to length 1 */
-                    if ( fmt [ fmt_idx ] . u . f . select_len <= fmt [ fmt_idx ] . u . f . start_idx )
-                        fmt [ fmt_idx ] . u . f . select_len = 1;
-
-                    /* end > start is translated to stated length */
-                    else
-                        fmt [ fmt_idx ] . u . f . select_len -= fmt [ fmt_idx ] . u . f . start_idx - 1;
-                }
-            }
-            else if ( has_start )
-            {
-                /* with no end specified, selection length is 1 */
-                fmt [ fmt_idx ] . u . f . select_len = 1;
-            }
-        }
-
-        /* size - one of the greatest leg-irons in the C legacy,
-           guess at the parameter size so that va_arg can extract
-           it properly. rather than using predictable parameter sizes,
-           they are fuzzy. we have ( mostly ) kept them for tradition...
-           if no modifier is given, 32-bit is assumed for integer and
-           64-bit for floating point. */
-        size_modifier = time_modifier = 0;
-        switch ( fmt_str [ i ] )
-        {
-            /* "Tiny" modifier - like "hh" in C format */
-        case 't':
-            /* "Half" modifier - same as C format */
-        case 'h':
-            /* "Long" modifier - means 64-bit for integers, otherwise like C */
-        case 'l':
-            size_modifier = time_modifier = fmt_str [ i ++ ];
-            break;
-            /* "siZe" modifier - whatever the size of size_t is */
-        case 'z':
-            ++ i;
-            time_modifier = 'z';
-            if ( sizeof ( size_t ) == sizeof ( uint64_t ) )
-                size_modifier = 'l';
-            break;
-        }
-
-        /* output format
-           describes the formatting to apply on output
-           if precision has not been set, give it a default value */
-        numeric = false;
-        fmt [ fmt_idx ] . pointer_arg = has_index;
-        switch ( fmt_str [ i ] )
-        {
-            /* decimal signed integer */
-        case 'd':
-        case 'i':
-            fmt [ fmt_idx ] . radix = 10;
-            fmt [ fmt_idx ] . fmt = spfSignedInt;
-            numeric = true;
-            if ( ! has_precision )
-                fmt [ fmt_idx ] . u . f . precision = 1;
-            else if ( fmt [ fmt_idx ] . left_fill == '0' )
-                fmt [ fmt_idx ] . left_fill = ' ';
-            break;
-
-            /* decimal unsigned integer */
-        case 'u':
-            fmt [ fmt_idx ] . radix = 10;
-        unsigned_int:
-            fmt [ fmt_idx ] . fmt = spfUnsigned;
-            fmt [ fmt_idx ] . sign = 0;
-            numeric = true;
-            if ( ! has_precision )
-                fmt [ fmt_idx ] . u . f . precision = 1;
-            else if ( fmt [ fmt_idx ] . left_fill == '0' )
-                fmt [ fmt_idx ] . left_fill = ' ';
-            break;
-
-            /* hex unsigned integer */
-        case 'x':
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 16;
-            goto unsigned_int;
-
-            /* upper-case hex unsigned integer or pointer value */
-        case 'X':
-        case 'p':
-            fmt [ fmt_idx ] . upper_case_num = 1;
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 16;
-            goto unsigned_int;
-
-            /* octal unsigned integer */
-        case 'o':
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 8;
-            goto unsigned_int;
-
-            /* binary unsigned integer */
-        case 'b':
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 2;
-            goto unsigned_int;
-
-            /* decimal signed floating point */
-        case 'f':
-            fmt [ fmt_idx ] . fmt = spfStdFloat;
-        fmt_float:
-            fmt [ fmt_idx ] . radix = 10;
-            fmt [ fmt_idx ] . force_decimal_point = alternate;
-            numeric = true;
-            if ( ! has_precision )
-                fmt [ fmt_idx ] . u . f . precision = 6;
-            break;
-
-            /* scientific notation floating point */
-        case 'e':
-            fmt [ fmt_idx ] . fmt = spfSciFloat;
-            goto fmt_float;
-
-            /* "general" floating point */
-        case 'g':
-            fmt [ fmt_idx ] . leave_trailing_zeros = alternate;
-            fmt [ fmt_idx ] . fmt = spfGenFloat;
-            goto fmt_float;
-
-            /* character data */
-        case 's':
-        case 'S':
-            fmt [ fmt_idx ] . pointer_arg = 1;
-            if ( ! has_precision )
-            /* no break */
-        case 'c':
-                fmt [ fmt_idx ] . u . f . precision = -1;
-            fmt [ fmt_idx ] . fmt = spfText;
-            break;
-            
-            /* KSymbol* */
-        case 'N':
-            fmt [ fmt_idx ] . pointer_arg = 1;
-            fmt [ fmt_idx ] . fmt = spfSymbol;
-            break;
-
-            /* ver_t */
-        case 'V':
-            size_modifier = ( sizeof ( ver_t ) == sizeof ( uint32_t ) ) ? 0 : 'l';
-            fmt [ fmt_idx ] . min_vers_components = ! has_precision;
-            fmt [ fmt_idx ] . fmt = spfVersion;
-            break;
-
-            /* rc_t */
-        case 'R':
-            size_modifier = ( sizeof ( rc_t ) == sizeof ( uint32_t ) ) ? 0 : 'l';
-            fmt [ fmt_idx ] . explain_rc = alternate;
-            fmt [ fmt_idx ] . fmt = spfRC;
-            break;
-
-            /* KTime* */
-        case 'T':
-            fmt [ fmt_idx ] . pointer_arg = 1;
-            fmt [ fmt_idx ] . fmt = spfTime;
-            numeric = true;
-
-            /* here, the "size" modifier is interpreted
-               as a selector for the output format. perhaps
-               it could have been a precision thing, but... */
-            switch ( time_modifier )
-            {
-                /* by itself, 'T' implies print the time */
-            case 0:
-                fmt [ fmt_idx ] . print_time = 1;
-                break;
-
-                /* "half" 'T' means the date */
-            case 'h':
-                fmt [ fmt_idx ] . print_date = 1;
-                break;
-
-                /* "zone" 'T' means long date with time zone */
-            case 'z':
-                fmt [ fmt_idx ] . print_timezone = 1;
-                /* no break */
-
-                /* "long" 'T' means date and time */
-            case 'l':
-                fmt [ fmt_idx ] . print_time = 1;
-                fmt [ fmt_idx ] . print_date = 1;
-                fmt [ fmt_idx ] . print_weekday = 1;
-                break;
-            }
-            break;
-
-            /* OS-specific error code:
-               int on Unix-like systems
-               DWORD on Windows */
-        case '!':
-            size_modifier = 0;
-            fmt [ fmt_idx ] . fmt = spfOSErr;
-            break;
-
-#if SUPPORT_PERCENT_N
-            /* awful out parameter giving characters printed so far */
-        case 'n':
-            fmt [ fmt_idx ] . fmt = spfNone;
-            break;
-#endif
-        default:
-            return RC ( rcText, rcString, rcFormatting, rcFormat, rcUnrecognized );
-        }
-
-#if ZERO_PAD_ONLY_NUMBERS
-        /* handle zero padding for non-numeric cases */
-        if ( ! numeric && fmt [ fmt_idx ] . left_fill == '0' )
-            fmt [ fmt_idx ] . left_fill = ' ';
-#endif
-
-        /* argument format */
-        if ( has_index )
-        {
-            /* all arguments MUST be vectors. */
-            args [ arg_idx ] . p = va_arg ( vargs, const void* );
-
-            /* discriminate on vector type */
-            switch ( fmt_str [ i ] )
-            {
-                /* signed integer */
-            case 'd':
-            case 'i':
-            case '!':
-
-                if ( infinite_first )
-                    return RC ( rcText, rcString, rcFormatting, rcIndex, rcIncorrect );
-
-                /* select from 4 possibilities */
-                switch ( size_modifier )
-                {
-                case 0:
-                    fmt [ fmt_idx ] . type = sptSignedInt32Vect;
-                    break;
-                case 'l':
-                    fmt [ fmt_idx ] . type = sptSignedInt64Vect;
-                    break;
-                case 'h':
-                    fmt [ fmt_idx ] . type = sptSignedInt16Vect;
-                    break;
-                case 't':
-                    fmt [ fmt_idx ] . type = sptSignedInt8Vect;
-                    break;
-                }
-                break;
-
-                /* pointer value - cast to 32 or 64-bit unsigned integer */
-            case 'p':
-                size_modifier = ( sizeof ( void* ) == sizeof ( uint64_t ) ) ? 'l' : 0;
-                /* no break */
-
-                /* unsigned integer */
-            case 'u':
-            case 'x':
-            case 'X':
-            case 'o':
-            case 'b':
-            case 'V':
-            case 'R':
-
-                if ( infinite_first )
-                    return RC ( rcText, rcString, rcFormatting, rcIndex, rcIncorrect );
-
-                switch ( size_modifier )
-                {
-                case 0:
-                    fmt [ fmt_idx ] . type = sptUnsignedInt32Vect;
-                    break;
-                case 'l':
-                    fmt [ fmt_idx ] . type = sptUnsignedInt64Vect;
-                    break;
-                case 'h':
-                    fmt [ fmt_idx ] . type = sptUnsignedInt16Vect;
-                    break;
-                case 't':
-                    fmt [ fmt_idx ] . type = sptUnsignedInt8Vect;
-                    break;
-                }
-                break;
-
-                /* floating point */
-            case 'e':
-            case 'f':
-            case 'g':
-
-                if ( infinite_first )
-                    return RC ( rcText, rcString, rcFormatting, rcIndex, rcIncorrect );
-
-                switch ( size_modifier )
-                {
-                case 0:
-                    fmt [ fmt_idx ] . type = sptFloat64Vect;
-                    break;
-                case 'h':
-                    fmt [ fmt_idx ] . type = sptFloat32Vect;
-                    break;
-                case 'l':
-                    fmt [ fmt_idx ] . type = sptFloatLongVect;
-                    break;
-                }
-                break;
-
-                /* character array */
-            case 'c':
-
-                /* can't determine last */
-                if ( infinite_first )
-                    return RC ( rcText, rcString, rcFormatting, rcIndex, rcIncorrect );
-
-                /* length must be bounded */
-                if ( fmt [ fmt_idx ] . u . f . select_len == 0 )
-                    fmt [ fmt_idx ] . u . f . select_len = 1;
-
-                fmt [ fmt_idx ] . type = sptNulTermString;
-                break;
-
-            case 's':
-#if STDC_COMPATIBILITY
-                if ( args [ arg_idx ] . p == NULL ) {
-                    args [ arg_idx ] . p = NULL_STRING_TEXT;
-                }
-#endif
-                /* NUL-terminated string issues */
-                if ( args [ arg_idx ] . p != NULL && infinite_first )
-                {
-                    const char *cp = args [ arg_idx ] . p;
-
-                    /* handle selection of last element */
-                    size_t len = strlen ( cp );
-                    if ( len != 0 )
-                    {
-                        fmt [ fmt_idx ] . u . f . start_idx = len - 1;
-                        fmt [ fmt_idx ] . u . f . select_len = 1;
-                    }
-                }
-
-                fmt [ fmt_idx ] . type = sptNulTermString;
-                break;
-
-                /* character string */
-            case 'S':
-
-                /* if the index starts with last element */
-                if ( args [ arg_idx ] . p != NULL && infinite_first )
-                {
-                    const String *s = args [ arg_idx ] . p;
-                    if ( s -> size != 0 )
-                    {
-                        fmt [ fmt_idx ] . u . f . start_idx = s -> size - 1;
-                        fmt [ fmt_idx ] . u . f . select_len = 1;
-                    }
-                }
-
-                fmt [ fmt_idx ] . type = sptString;
-                break;
-
-                /* no other type supports vectors */
-            default:
-                return RC ( rcText, rcString, rcFormatting, rcFormat, rcIncorrect );
-            }
-        }
-        else
-        {
-            /* scalar or string arguments */
-            switch ( fmt_str [ i ] )
-            {
-                /* signed integer */
-            case 'd':
-            case 'i':
-            case '!':
-                fmt [ fmt_idx ] . type = sptSignedInt;
-                switch ( size_modifier )
-                {
-                case 0:
-                    args [ arg_idx ] . d = va_arg ( vargs, int32_t );
-                    break;
-                case 'l':
-                    args [ arg_idx ] . d = va_arg ( vargs, int64_t );
-                    break;
-#if EMULATE_SMALLINT_EXTENSION_BUG
-                case 'h':
-                case 't':
-                    args [ arg_idx ] . d = va_arg ( vargs, int );
-                    break;
-#else
-                case 'h':
-                    args [ arg_idx ] . d = ( int16_t ) va_arg ( vargs, int );
-                    break;
-                case 't':
-                    args [ arg_idx ] . d = ( int8_t ) va_arg ( vargs, int );
-                    break;
-#endif
-                }
-                break;
-
-                /* pointer cast to uint64_t */
-            case 'p':
-                size_modifier = ( sizeof ( void* ) == sizeof ( uint64_t ) ) ? 'l' : 0;
-                /* no break */
-
-                /* unsigned integer */
-            case 'u':
-            case 'x':
-            case 'X':
-            case 'o':
-            case 'b':
-            case 'V':
-            case 'R':
-                fmt [ fmt_idx ] . type = sptUnsignedInt;
-                switch ( size_modifier )
-                {
-                case 0:
-                    args [ arg_idx ] . u = va_arg ( vargs, uint32_t );
-                    break;
-                case 'l':
-                    args [ arg_idx ] . u = va_arg ( vargs, uint64_t );
-                    break;
-                case 'h':
-                    args [ arg_idx ] . u = ( uint16_t ) va_arg ( vargs, unsigned int );
-                    break;
-                case 't':
-                    args [ arg_idx ] . u = ( uint8_t ) va_arg ( vargs, unsigned int );
-                    break;
-                }
-                break;
-
-                /* floating point */
-            case 'e':
-            case 'f':
-            case 'g':
-                fmt [ fmt_idx ] . type = sptFloat;
-                switch ( size_modifier )
-                {
-                case 0:
-                case 'h':
-                    args [ arg_idx ] . f = va_arg ( vargs, double );
-                    break;
-                case 'l':
-                    args [ arg_idx ] . f = ( double ) va_arg ( vargs, long double );
-                    break;
-                default:
-                    return RC ( rcText, rcString, rcFormatting, rcFormat, rcIncorrect );
-                }
-                break;
-
-                /* single character */
-            case 'c':
-                fmt [ fmt_idx ] . type = sptChar;
-                args [ arg_idx ] . c = va_arg ( vargs, uint32_t );
-                break;
-
-                /* NUL-terminated string */
-            case 's':
-                fmt [ fmt_idx ] . type = sptNulTermString;
-                args [ arg_idx ] . s = va_arg ( vargs, const char* );
-                break;
-
-                /* String object */
-            case 'S':
-                fmt [ fmt_idx ] . type = sptString;
-                args [ arg_idx ] . S = va_arg ( vargs, const String* );
-                break;
-
-                /* KSymbol or KTime object */
-            case 'N':
-            case 'T':
-                fmt [ fmt_idx ] . type = sptPointer;
-                args [ arg_idx ] . p = va_arg ( vargs, const void* );
-                break;
-
-#if SUPPORT_PERCENT_N
-            case 'n':
-                fmt [ fmt_idx ] . type = sptBytesPrinted;
-                args [ arg_idx ] . n = va_arg ( vargs, uint32_t* );
-                break;
-#endif
-            }
-        }
-
-        /* account for format and argument */
-        ++ fmt_idx;
-        ++ arg_idx;
-    }
-
-    /* record final fmt */
-    if ( rc == 0 )
-    {
-        if ( fmt_idx == LOCAL_FMT_COUNT )
-        {
-            rc = create_overflow ( overflow, fmt_str,
-                strp, fmtp, argp, str_idx, fmt_idx, arg_idx );
-            if ( rc != 0 )
-                return rc;
-
-            fmt = * fmtp;
-        }
-
-        memset ( & fmt [ fmt_idx ], 0, sizeof fmt [ 0 ] );
-    }
-
-    return rc;
-}
-
-
-/* KBufferedWrtHandler
- *  combines buffer and possibly NULL handler
- *  handles flushing, counting, etc.
- */
-typedef struct KBufferedWrtHandler KBufferedWrtHandler;
-struct KBufferedWrtHandler
-{
-    const KWrtHandler *handler;
-    char *buff;
-    size_t bsize;
-    size_t cur;
-    size_t flushed;
-    bool overflow;
-};
-
-
-/* flush_buffer
- *  writes data to handler
- *  or NUL-terminates buffer
- */
-static
-rc_t flush_buffer ( KBufferedWrtHandler *out )
-{
-    const KWrtHandler *flush = out -> handler;
-    if ( out -> handler != NULL )
-    {
-        rc_t rc = 0;
-        size_t num_writ, flushed;
-
-/*        assert ( out -> cur != 0 ); */
-
-        for ( flushed = 0; flushed < out -> cur; flushed += num_writ )
-        {
-            rc = ( * flush -> writer ) ( flush -> data,
-                & out -> buff [ flushed ], out -> cur - flushed, & num_writ );
-            if ( rc != 0 )
-                break;
-            if ( num_writ == 0 )
-                break;
-        }
-
-        if ( flushed == 0 )
-            return rc;
-
-        out -> flushed += flushed;
-        if ( flushed < out -> cur )
-            memmove ( out -> buff, & out -> buff [ flushed ], out -> cur - flushed );
-        out -> cur -= flushed;
-
-        return 0;
-    }
-
-    /* NB - header file states that space for NUL byte
-       is REQUIRED, so this test will declare overflow
-       whenever there is not space for the NUL termination */
-    if ( out -> cur >= out -> bsize )
-        out -> overflow = true;
-    else
-        out -> buff [ out -> cur ] = 0;
-
-    return 0;
-}
-
-static
-rc_t write_buffer ( KBufferedWrtHandler *out, const char *data, size_t bytes )
-{
-    size_t total, num_writ;
-    for ( total = 0; total < bytes; out -> cur += num_writ, total += num_writ )
-    {
-        if ( ! out -> overflow && out -> cur == out -> bsize )
-        {
-            rc_t rc = flush_buffer ( out );
-            if ( rc != 0 )
-                return rc;
-        }
-        if ( out -> overflow )
-            num_writ = bytes - total;
-        else
-        {
-            num_writ = out -> bsize - out -> cur;
-            if ( total + num_writ > bytes )
-                num_writ = bytes - total;
-            memcpy ( & out -> buff [ out -> cur ], & data [ total ], num_writ );
-        }
-    }
-    return 0;
-}
-
-
-/* print_padding
- *  issue padding characters
- */
-static
-rc_t print_padding ( KBufferedWrtHandler *out, size_t count, char pad_char )
-{
-    size_t total, num_writ;
-    for ( total = 0; total < count; out -> cur += num_writ, total += num_writ )
-    {
-        if ( ! out -> overflow && out -> cur == out -> bsize )
-        {
-            rc_t rc = flush_buffer ( out );
-            if ( rc != 0 )
-                return rc;
-        }
-        if ( out -> overflow )
-            num_writ = count - total;
-        else
-        {
-            uint32_t i = out -> cur;
-            uint32_t lim = out -> cur + count - total;
-            if ( lim > out -> bsize )
-                lim = out -> bsize;
-            for ( num_writ = lim - i; i < lim; ++ i )
-                out -> buff [ i ] = pad_char;
-        }
-    }
-    return 0;
-}
-
-/* print_nul_term_string
- */
-static
-rc_t print_nul_term_string ( KBufferedWrtHandler *out, String *S, size_t precision )
-{
-    size_t total, num_writ;
-    const char *s = S -> addr;
-
-    for ( S -> len = 0, total = 0; total < precision && s [ 0 ] != 0;
-          s += num_writ, out -> cur += num_writ, total += num_writ )
-    {
-        char *buff;
-        size_t lim;
-
-        if ( ! out -> overflow && out -> cur == out -> bsize )
-        {
-            rc_t rc = flush_buffer ( out );
-            if ( rc != 0 )
-                return rc;
-        }
-
-        if ( out -> overflow )
-        {
-            lim = precision - total;
-
-            for ( num_writ = 0; num_writ < lim; ++ num_writ )
-            {
-                if ( s [ num_writ ] == 0 )
-                    break;
-
-                /* count characters as well as bytes */
-                if ( ( s [ num_writ ] & 0xC0 ) != 0x80 )
-                    ++ S -> len;
-            }
-        }
-        else
-        {
-            buff = out -> buff + out -> cur;
-            lim = out -> bsize - out -> cur;
-
-            if ( total + lim > precision )
-                lim = precision - total;
-
-            for ( num_writ = 0; num_writ < lim; ++ num_writ )
-            {
-                if ( s [ num_writ ] == 0 )
-                    break;
-
-                /* count characters as well as bytes */
-                if ( ( ( buff [ num_writ ] = s [ num_writ ] ) & 0xC0 ) != 0x80 )
-                    ++ S -> len;
-            }
-        }
-    }
-
-    S -> size = total;
-
-    return 0;
-}
-
-/* print_string
- */
-static
-rc_t print_string ( KBufferedWrtHandler *out, const String *s, size_t precision )
-{
-    /* TBD - this is only correct for ASCII */
-    if ( s -> size < precision )
-        precision = s -> size;
-
-    return write_buffer ( out, s -> addr, precision );
-}
-
-static
-rc_t print_symbol ( KBufferedWrtHandler *out, const KSymbol *sym )
-{
-    if ( sym -> dad != NULL )
-    {
-        rc_t rc = print_symbol ( out, sym -> dad );
-        if ( rc == 0 )
-            rc = print_padding ( out, 1, ':' );
-        if ( rc != 0 )
-            return rc;
-    }
-    return print_string ( out, & sym -> name, sym -> name . size );
-}
-
-static
-rc_t print_literal ( KBufferedWrtHandler *out, const char *text, size_t size )
-{
-    return write_buffer ( out, text, size );
-}
-
-
-/* structured_print_engine
- *  prints into a buffer
- *  if an output handler is provided, the buffer will be flushed to it as needed
- *  returns the number of BYTES written, but not the number of characters.
- */
-static const char* alnum_set [ 2 ] [ 2 ] =
-{
-    /* "normal" alpha-numeric ordering for rendering numerals */
-    {
-        "0123456789abcdefghijklmnopqrstuvwxyz",
-        "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-    },
-    /* "abnormal" alpha-numeric ordering used by SFF format */
-    {
-        "abcdefghijklmnopqrstuvwxyz0123456789",
-        "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-    }
-};
-
-static
-rc_t structured_print_engine ( KBufferedWrtHandler *out,
-    const PrintFmt *fmt, const PrintArg *args )
-{
-    rc_t rc;
-    uint32_t fmt_idx, arg_idx;
-
-    /* declare these here to stifle the compiler
-       they should most naturally be declared within the loop,
-       but since they are conditionally initialized by the switch,
-       the compiler warns they may be used before initialization.
-       rather than quiet the complaint within the loop, they have
-       been manually hoisted outside and initialized once. */
-    uint32_t i = 0;
-    int64_t i64 = 0;
-    uint64_t u64 = 0;
-    double f64 = 0;
-    const void *p = NULL;
-
-    /* most of the arguments are going to be pulled into "S" */
-    String S;
-    StringInit ( & S, NULL, 0, 0 );
-
-    /* mark no overflow */
-    out -> overflow = false;
-
-    /* loop across all format structures */
-    for ( rc = 0, out -> cur = out -> flushed = 0, fmt_idx = arg_idx = 0;
-          fmt [ fmt_idx ] . type != sptTerm; ++ fmt_idx )
-    {
-        /* copy entry - we're going to modify it */
-        PrintFmt f = fmt [ fmt_idx ];
-
-        /* ENGINE PARAMETERS */
-
-        /* padding to left side of field */
-        uint32_t left_pad;
-
-        /* sign character if not NUL */
-        char sign_char;
-
-        /* prefix for unsigned int */
-        char prefix [ 4 ];
-        uint32_t prefix_len;
-
-        /* true if performing comma separation */
-        bool comma_sep;
-
-        /* zero-fill, from either integer precision or min-field-width */
-        uint32_t zero_fill;
-
-        /* length of integer portion of numeral, prefix contribution */
-        uint32_t int_len, prefix_contribution;
-
-        /* string index, from index and text precision */
-        bool text_index;
-        uint64_t text_start, text_lim;
-
-        /* END ENGINE PARAMETERS */
-
-        int cvt_len;
-        uint32_t c, *n;
-
-        const KTime *tm;
-        const KSymbol *N;
-
-        char text [ 1024 ];
-        uint32_t dst_len;
-
-        char ffmt [ 16 ];
-        const char *to_numeral, *cfmt;
-
-        /* detect literal */
-        if ( f . type == sptLiteral )
-        {
-            rc = print_literal ( out, f . u . l . text, f . u . l . size );
-            if ( rc != 0 )
-                break;
-
-            continue;
-        }
-
-        /* gather external parameters */
-        if ( f . ext_field_width )
-             f . u . f . min_field_width = args [ arg_idx ++ ] . u;
-        if ( f . ext_precision )
-            f . u . f . precision = args [ arg_idx ++ ] . u;
-        if ( f . ext_start_index )
-            f . u . f . start_idx = args [ arg_idx ++ ] . u;
-        if ( f . ext_select_len )
-            f . u . f . select_len = args [ arg_idx ++ ] . u;
-        else if ( f . ext_stop_index )
-        {
-            f . u . f . select_len = args [ arg_idx ++ ] . u;
-            if ( f . u . f . select_len <= f . u . f . start_idx )
-                f . u . f . select_len = 1;
-            else
-                f . u . f . select_len -= f . u . f . start_idx - 1;
-        }
-
-        /* early initialization */
-        text_index = false;
-        text_start = 0;
-        text_lim = -1;
-
-        /* vector parameters may have NULL pointers under certain
-           circumstances, e.g. pre-calculated format with out-of-bounds
-           index coordinates, when this is detectable. */
-        if ( f . pointer_arg && args [ arg_idx ] . p == NULL )
-        {
-            if ( f . fmt == spfText )
-            {
-                CONST_STRING ( & S, NULL_STRING_TEXT );
-                f . type_cast = 0;
-                f . type = sptString;
-                if ( f . u . f . precision < S . len )
-#if STDC_COMPATIBILITY  &&  !defined(__GLIBC__)
-                    S . size = S . len = f . u . f . precision;
-#else
-                    StringInit ( & S, "", 0, 0 );
-#endif                    
-            }
-            else
-            {
-                memset ( & f, 0, sizeof f );
-                f . u . f . precision = 1;
-                f . radix = 10;
-                f . fmt = spfUnsigned;
-                f . type = sptUnsignedInt;
-                u64 = 0;
-            }
-        }
-
-        /* get source */
-        else switch ( f . type )
-        {
-            /* scalar or vector signed integer */
-        case sptSignedInt:
-            i64 = args [ arg_idx ] . d;
-            break;
-        case sptSignedInt8Vect:
-            i64 = args [ arg_idx ] . d8 [ f . u . f . start_idx ];
-            break;
-        case sptSignedInt16Vect:
-            i64 = args [ arg_idx ] . d16 [ f . u . f . start_idx ];
-            break;
-        case sptSignedInt32Vect:
-            i64 = args [ arg_idx ] . d32 [ f . u . f . start_idx ];
-            break;
-        case sptSignedInt64Vect:
-            i64 = args [ arg_idx ] . d64 [ f . u . f . start_idx ];
-            break;
-
-            /* scalar or vector unsigned integer */
-        case sptUnsignedInt:
-            u64 = args [ arg_idx ] . u;
-            break;
-        case sptUnsignedInt8Vect:
-            u64 = args [ arg_idx ] . u8 [ f . u . f . start_idx ];
-            break;
-        case sptUnsignedInt16Vect:
-            u64 = args [ arg_idx ] . u16 [ f . u . f . start_idx ];
-            break;
-        case sptUnsignedInt32Vect:
-            u64 = args [ arg_idx ] . u32 [ f . u . f . start_idx ];
-            break;
-        case sptUnsignedInt64Vect:
-            u64 = args [ arg_idx ] . u64 [ f . u . f . start_idx ];
-            break;
-
-            /* scalar or vector float */
-        case sptFloat:
-            f64 = args [ arg_idx ] . f;
-            break;
-        case sptFloat32Vect:
-            f64 = args [ arg_idx ] . f32 [ f . u . f . start_idx ];
-            break;
-        case sptFloat64Vect:
-            f64 = args [ arg_idx ] . f64 [ f . u . f . start_idx ];
-            break;
-        case sptFloatLongVect:
-            f64 = ( double ) args [ arg_idx ] . flong [ f . u . f . start_idx ];
-            break;
-
-            /* utf-8 character */
-        case sptChar:
-            c = args [ arg_idx ] . c;
-            cvt_len = utf32_utf8 ( text, & text [ sizeof text ], c );
-            if ( cvt_len < 0 )
-            {
-                text [ 0 ] = '?';
-                cvt_len = 1;
-            }
-            StringInit ( & S, text, cvt_len, 1 );
-            break;
-
-            /* NUL-terminated string */
-        case sptNulTermString:
-
-            /* special initialization to flag size/length unknown */
-            StringInit ( & S, args [ arg_idx ] . s, 0, -1 );
-
-            /* IF THE STRING IS INDEXED OR MAY NEED LEFT ALIGNMENT */
-            if ( f . u . f . start_idx != 0 || f . u . f . select_len != 0 ||
-                 ( f . u . f . min_field_width != 0 && f . left_fill ) )
-            {
-                /* precision limits upper bounds
-                   if the index range is more restrictive than precision,
-                   take this as precision for text case */
-                if ( f . u . f . select_len != 0 && f . u . f . select_len < f . u . f . precision )
-                    f . u . f . precision = f . u . f . select_len;
-
-                /* scan to start location */
-                for ( S . len = 0; S . len < f . u . f . start_idx; ++ S . size )
-                {
-                    /* if end of NUL-terminated string is reached before start,
-                       then create EMPTY string */
-                    if ( S . addr [ S . size ] == 0 )
-                    {
-                        f . u . f . start_idx = 0;
-                        f . u . f . select_len = 0;
-                        f . u . f . precision = 0;
-                        break;
-                    }
-                    /* walk across utf-8 multi-byte character */
-                    if ( ( S . addr [ S . size ] & 0xC0 ) != 0x80 )
-                        ++ S . len;
-                }
-
-                /* create sub-string
-                   limit scan to required precision for efficiency */
-                for ( S . addr += S . size, S . size = 0, S . len = 0;
-                      S . len < f . u . f . precision; ++ S . size )
-                {
-                    if ( S . addr [ S . size ] == 0 )
-                        break;
-                    if ( ( S . addr [ S . size ] & 0xC0 ) != 0x80 )
-                        ++ S . len;
-                }
-            }
-
-            /* precision limits text length */
-            if ( text_lim > f . u . f . precision )
-                text_lim = f . u . f . precision;
-
-            break;
-
-            /* String object */
-        case sptString:
-
-            /* the String may be indexed */
-            if ( f . u . f . start_idx != 0 || f . u . f . select_len != 0 )
-            {
-                text_index = true;
-                text_start = f . u . f . start_idx;
-                if ( f . u . f . select_len != 0 )
-                    text_lim = f . u . f . select_len;
-            }
-
-            /* precision limits text length */
-            if ( text_lim > f . u . f . precision )
-                text_lim = f . u . f . precision;
-
-            S = * args [ arg_idx ] . S;
-            break;
-
-            /* UCS-2 or UTF-32 String object */
-        case sptUCS2String:
-        case sptUTF32String:
-            return RC ( rcText, rcString, rcConverting, rcType, rcUnsupported );
-
-            /* an object pointer */
-        case sptPointer:
-            p = args [ arg_idx ] . p;
-            break;
-
-        case sptRowId:
-            i64 = args [ arg_idx ] . d;
-            break;
-        case sptRowLen:
-            u64 = args [ arg_idx ] . u;
-            break;
-
-#if SUPPORT_PERCENT_N
-        case sptBytesPrinted:
-            n = args [ arg_idx ] . n;
-            if ( n != NULL )
-                * n = out -> cur + out -> flushed;
-            ++ arg_idx;
-            continue;
-#endif
-        default:
-            return RC ( rcText, rcString, rcConverting, rcType, rcUnrecognized );
-        }
-
-        if ( f . type_cast ) switch ( f . type )
-        {
-        case sptSignedInt:
-        case sptSignedInt8Vect:
-        case sptSignedInt16Vect:
-        case sptSignedInt32Vect:
-        case sptSignedInt64Vect:
-            f64 = i64;
-            break;
-
-        case sptUnsignedInt:
-        case sptUnsignedInt8Vect:
-        case sptUnsignedInt16Vect:
-        case sptUnsignedInt32Vect:
-        case sptUnsignedInt64Vect:
-            f64 = u64;
-            break;
-
-        case sptFloat:
-        case sptFloat32Vect:
-        case sptFloat64Vect:
-        case sptFloatLongVect:
-            i64 = f64;
-            break;
-
-        case sptChar:
-        case sptNulTermString:
-        case sptString:
-            break;
-
-            /* UCS-2 or UTF-32 String object */
-        case sptUCS2String:
-        case sptUTF32String:
-        case sptPointer:
-            return RC ( rcText, rcString, rcConverting, rcType, rcUnsupported );
-
-        case sptRowId:
-            f64 = i64;
-            break;
-        case sptRowLen:
-            f64 = u64;
-            break;
-
-#if SUPPORT_PERCENT_N
-        case sptBytesPrinted:
-            break;
-#endif
-        default:
-            return RC ( rcText, rcString, rcConverting, rcType, rcUnrecognized );
-        }
-
-        /* advance arg count */
-        ++ arg_idx;
-
-        /* initialize engine params */
-        sign_char = 0;
-        comma_sep = false;
-        left_pad = prefix_len = prefix_contribution = zero_fill = 0;
-
-        /* format */
-        switch ( f . fmt )
-        {
-        case spfNone:
-        case spfText:
-            break;
-
-        case spfSignedInt:
-            if ( i64 < 0 )
-            {
-                sign_char = '-';
-                u64 = - i64;
-            }
-            else
-            {
-                sign_char = f . sign;
-                u64 = i64;
-            }
-            f . add_prefix = 0;
-            /* no break */
-        case spfUnsigned:
-            to_numeral = alnum_set [ f . reverse_alnum ] [ f . upper_case_num ];
-
-            if ( f . radix > 36 )
-                f . radix = 10;
-
-            i = sizeof text;
-#if _DEBUGGING
-            text [ -- i ] = 0;
-#endif
-            /* record if we are comma separating below */
-            comma_sep = f . thousands_separate;
-
-#if DOUSE_NUM_PREFIX_IF_ZERO
-            if ( u64 == 0 && f . add_prefix )
-            {
-#if KEEP_OCT_PREFIX_IF_ZERO
-                if ( f . u . f . precision == 0 && f . radix == 8 )
-                    f . u . f . precision = 1;
-#endif
-                f . add_prefix = 0;
-            }
-#endif
-            /* special case for value 0 and precision 0 */
-            if ( u64 != 0 || f . u . f . precision != 0 )
-            {
-                /* convert numeral */
-                do
-                    text [ -- i ] = to_numeral [ u64 % f . radix ];
-                while ( ( u64 /= f . radix ) != 0 );
-
-                /* add prefix to unsigned numeral */
-                if ( f . add_prefix )
-                {
-                    switch ( f . radix )
-                    {
-                    case 2:
-                        memcpy ( prefix, "0b", prefix_len = 2 );
-                        break;
-                    case 8:
-                        memcpy ( prefix, "0", prefix_len = prefix_contribution = 1 );
-#if OCTAL_PREFIX_COUNTS_TOWARD_PRECISION
-                        if ( f . add_prefix && f . u . f . precision != 0 )
-                            -- f . u . f . precision;
-#endif
-                        break;
-                    case 16:
-#if HEX_PREFIX_FOLLOWS_CASE
-                        if ( to_numeral [ 10 ] == 'A' )
-                            memcpy ( prefix, "0X", prefix_len = 2 );
-                        else
-#endif
-                            memcpy ( prefix, "0x", prefix_len = 2 );
-                        break;
-                    }
-                }
-            }
-
-            /* determine length in characters, also size in bytes */
-#if _DEBUGGING
-            int_len = sizeof text - i - 1;
-#else
-            int_len = sizeof text - i;
-#endif
-            /* create text string */
-            StringInit ( & S, & text [ i ], int_len, int_len );
-
-            /* zero-fill amount */
-            if ( f . u . f . precision > ( uint64_t ) int_len )
-                zero_fill = ( uint32_t ) ( f . u . f . precision - ( uint64_t ) int_len );
-            else if ( f . left_fill == '0' )
-            {
-                /* the known characters associated with integer */
-                dst_len = int_len + prefix_len + ( sign_char != 0 );
-                if ( comma_sep && int_len != 0 )
-                    dst_len += ( int_len + prefix_contribution - 1 ) / 3;
-                if ( ( uint64_t ) dst_len < f . u . f . min_field_width )
-                {
-                    /* determine the numeric width, including zero padding */
-                    dst_len = ( uint32_t ) f . u . f . min_field_width -
-                        prefix_len + prefix_contribution - ( sign_char != 0 );
-                    if ( comma_sep && int_len != 0 )
-                    {
-                        /* desired numeric-only portion of field is "dst_len"
-                           it will be extended not only by some number of '0's,
-                           but will be sprinkled with commas.
-
-                           if "x" were our number of numerals, then:
-                             x + ( x - 1 ) / 3 = dst_len
-                           with allowances for integer math. solving for x:
-                             x = ( 3 * dst_len + 3 ) / 4
-
-                           for example: given int_len = 1, value = 0:
-                             dst_len =  1 : x =  1
-                             dst_len =  2 : x =  2
-                             dst_len =  3 : x =  3
-                             dst_len =  4 : x =  3 [ requires special compensation ]
-                             dst_len =  5 : x =  4
-                             dst_len =  6 : x =  5
-                             dst_len =  7 : x =  6
-                             dst_len =  8 : x =  6 [ requires special compensation ]
-                                . . .
-                             dst_len = 19 : x = 15
-                             dst_len = 20 : x = 15
-                             dst_len = 21 : x = 16
-                             dst_len = 22 : x = 17
-                        */
-
-                        /* apply compensation for impossible width */
-                        if ( ( dst_len & 3 ) == 0 )
-                            ++ left_pad;
-
-                        /* dst_len now becomes the number of numerals */
-                        dst_len = ( dst_len * 3 + 3 ) >> 2;
-                    }
-
-                    /* number of zeros to add */
-                    zero_fill = dst_len - int_len;
-                    prefix_len -= prefix_contribution;
-                }
-            }
-
-            break;
-
-            /* TEMPORARY - cheat by calling through to runtime sprintf
-               this needs to be implemented to handle thousands separation */
-        case spfStdFloat:
-            c = 'f';
-        fmt_float:
-            sign_char = f . sign;
-            if ( f64 < 0 )
-            {
-                sign_char = '-';
-                f64 = - f64;
-            }
-
-            ffmt [ i = 0 ] = '%';
-            if ( f . force_decimal_point )
-                ffmt [ ++ i ] = '#';
-            if ( f . u . f . precision > 20 )
-                f . u . f . precision = 20;
-            sprintf ( & ffmt [ ++ i ], ".%u%c"
-                      , ( uint32_t ) f . u . f . precision
-                      , ( char ) c );
-            cvt_len = snprintf ( text, sizeof text, ffmt, f64 );
-            assert ( cvt_len >= 0 && ( size_t ) cvt_len < sizeof text );
-            StringInit ( & S, text, cvt_len, cvt_len );
-
-            /* record if we are comma separating below and capture length of integer portion */
-            int_len = 0;
-            comma_sep = f . thousands_separate;
-            /* if ( comma_sep ) */
-            {
-                for ( ; isdigit ( text [ int_len ] ); ++ int_len )
-                    ( void ) 0;
-            }
-
-            /* zero-fill amount */
-            if ( f . left_fill == '0' )
-            {
-                /* the known characters associated with numeral */
-                dst_len = cvt_len + ( sign_char != 0 );
-                if ( comma_sep && int_len != 0 )
-                    dst_len += ( int_len - 1 ) / 3;
-                if ( ( uint64_t ) dst_len < f . u . f . min_field_width )
-                {
-                    /* determine the integer width, including zero padding */
-                    dst_len = ( uint32_t ) f . u . f . min_field_width -
-                        cvt_len + int_len - ( sign_char != 0 );
-                    if ( comma_sep && int_len != 0 )
-                    {
-                        /* SEE COMMENTS IN INTEGER SECTION */
-
-                        /* apply compensation for impossible width */
-                        if ( ( dst_len & 3 ) == 0 )
-                            ++ left_pad;
-
-                        /* dst_len now becomes the number of numerals */
-                        dst_len = ( dst_len * 3 + 3 ) >> 2;
-                    }
-
-                    /* number of zeros to add */
-                    zero_fill = dst_len - int_len;
-                }
-            }
-            break;
-
-        case spfGenFloat:
-            c = 'g';
-            goto fmt_float;
-
-        case spfSciFloat:
-            c = 'e';
-            goto fmt_float;
-
-            /* version */
-        case spfVersion:
-
-            if ( f . min_vers_components )
-            {
-                if ( ( u64 & 0xFFFF ) != 0 )
-                    f . u . f . precision = 3;
-                else if ( ( u64 & 0xFF0000 ) != 0 )
-                    f . u . f . precision = 2;
-                else
-                    f . u . f . precision = 1;
-            }
-
-            switch ( f . u . f . precision )
-            {
-            case 0:
-                cfmt = "";
-                break;
-            case 1:
-                cfmt = "%u";
-                break;
-            case 2:
-                cfmt = "%u.%u";
-                break;
-            default:
-                cfmt = "%u.%u.%u";
-            }
-
-            dst_len = sprintf ( text, cfmt
-                                , VersionGetMajor ( ( uint32_t ) u64 )
-                                , VersionGetMinor ( ( uint32_t ) u64 )
-                                , VersionGetRelease ( ( uint32_t ) u64 )
-                );
-            StringInit ( & S, & text [ i ], dst_len, dst_len );
-            f . u . f . precision = dst_len;
-            break;
-
-        case spfSymbol:
-
-            /* calculate total size of symbol */
-            for ( N = p, S = N -> name, N = N -> dad; N != NULL; N = N -> dad )
-            {
-                S . len += N -> name . len + 1;
-                S . size += N -> name . size + 1;
-            }
-
-            /* mark need to recheck format */
-            S . addr = NULL;
-            break;
-
-
-        case spfTime:
-
-            tm = p;
-
-            dst_len = 0;
-            if ( f . print_date )
-            {
-                static char const *months [ 12 ] =
-                    { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
-                if ( f . print_weekday )
-                {
-                    static char const *weekdays [ 7 ] =
-                        { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
-                    dst_len = sprintf ( text, "%s %s %u %u"
-                                        , weekdays [ tm -> weekday ]
-                                        , months [ tm -> month ]
-                                        , tm -> day + 1
-                                        , tm -> year
-                        );
-                }
-                else
-                {
-                    dst_len = sprintf ( text, "%s %u %u"
-                                        , months [ tm -> month ]
-                                        , tm -> day + 1
-                                        , tm -> year
-                        );
-                }
-            }
-
-            if ( f . print_time )
-            {
-                if ( dst_len != 0 )
-                    text [ dst_len ++ ] = ' ';
-
-                if ( f . hour_24 )
-                {
-                    dst_len += sprintf ( & text [ dst_len ]
-                                         , f . left_fill == '0' ? "%02u:%02u:%02u" : "%u:%02u:%02u"
-                                         , tm -> hour
-                                         , tm -> minute
-                                         , tm -> second
-                        );
-                }
-                else
-                {
-                    dst_len += sprintf ( & text [ dst_len ]
-                                         , f . left_fill == '0' ? "%02u:%02u:%02u %cM" : "%u:%02u:%02u %cM"
-                                         , ( tm -> hour + 11 ) % 12 + 1
-                                         , tm -> minute
-                                         , tm -> second
-                                         , ( tm -> hour < 12 ) ? 'A' : 'P'
-                        );
-                }
-
-                if ( f . print_timezone )
-                {
-                    dst_len += sprintf ( & text [ dst_len ]
-                                         , " %+02d"
-                                         , tm -> tzoff / 60
-                        );
-                }
-            }
-
-            StringInit ( & S, text, dst_len, dst_len );
-            break;
-
-        case spfRC:
-            dst_len = KWrtFmt_rc_t ( text, sizeof text, f . explain_rc ? "#" : "", ( rc_t ) u64 );
-            StringInit ( & S, text, dst_len, dst_len );
-            break;
-
-        case spfOSErr:
-            dst_len = KWrtFmt_error_code ( text, sizeof text, ( int ) i64 );
-            StringInit ( & S, text, dst_len, dst_len );
-            break;
-
-        default:
-            return RC ( rcText, rcString, rcConverting, rcFormat, rcUnrecognized );
-        }
-
-        /* at this point, we have text in "S".
-           if the text pointer is NULL, it will need to be further processed.
-           if the text size is 0 but the length is not, then we may need to measure string.
-        */
-
-        /* apply index limitation */
-        if ( text_index )
-        {
-            assert ( S . addr != NULL );
-            assert ( S . size != 0 || S . len == 0 );
-            if ( StringSubstr ( & S, & S, text_start, text_lim ) == NULL )
-                StringInit ( & S, "", 0, 0 );
-        }
-
-        /* determine overall width of substitution so far */
-        dst_len = left_pad + ( sign_char != 0 ) + prefix_len + zero_fill + S . len;
-
-        /* if there are comma insertions, get those, too */
-        if ( comma_sep && ( int_len != 0 || zero_fill != 0 ) )
-            dst_len += ( int_len + zero_fill - 1 ) / 3;
-
-        /* calculate remaining left padding */
-        if ( f . left_fill != 0 && f . u . f . min_field_width > dst_len )
-        {
-            assert ( S . size != 0 || S . len == 0 );
-            left_pad += f . u . f . min_field_width - dst_len;
-            dst_len = ( uint32_t ) f . u . f . min_field_width;
-        }
-
-        /* left padding */
-        if ( left_pad != 0 )
-        {
-            rc = print_padding ( out, left_pad, f . left_fill );
-            if ( rc != 0 )
-                return rc;
-        }
-
-        /* output sign or prefix */
-        if ( sign_char != 0 )
-        {
-            rc = print_padding ( out, 1, sign_char );
-            if ( rc != 0 )
-                return rc;
-        }
-        else if ( prefix_len != 0 )
-        {
-            rc = write_buffer ( out, prefix, prefix_len );
-            if ( rc != 0 )
-                return rc;
-        }
-
-        /* output comma-separated numeral */
-        if ( comma_sep && ( zero_fill != 0 || int_len != 0 ) )
-        {
-            uint32_t pos = zero_fill + int_len;
-            uint32_t chunk = ( pos - 1 ) % 3 + 1;
-
-            for ( i = 0, pos -= chunk; chunk > 0; -- chunk )
-            {
-                if ( zero_fill != 0 )
-                {
-                    rc = print_padding ( out, 1, '0' );
-                    -- zero_fill;
-                }
-                else
-                {
-                    rc = print_padding ( out, 1, S . addr [ i ] );
-                    ++ i;
-                }
-                if ( rc != 0 )
-                    return rc;
-            }
-
-            assert ( pos % 3 == 0 );
-            for ( pos /= 3; pos != 0; -- pos )
-            {
-                rc = print_padding ( out, 1, ',' );
-                if ( rc != 0 )
-                    return rc;
-
-                if ( zero_fill != 0 )
-                {
-                    if ( zero_fill >= 3 )
-                    {
-                        rc = print_padding ( out, 3, '0' );
-                        zero_fill -= 3;
-                    }
-                    else
-                    {
-                        rc = print_padding ( out, zero_fill, '0' );
-                        if ( rc == 0 )
-                            rc = write_buffer ( out, S . addr, 3 - zero_fill );
-                        i += 3 - zero_fill;
-                        zero_fill = 0;
-                    }
-                }
-                else
-                {
-                    rc = write_buffer ( out, & S . addr [ i ], 3 );
-                    i += 3;
-                }
-
-                if ( rc != 0 )
-                    return rc;
-            }
-
-            rc = write_buffer ( out, & S . addr [ i ], S . len - i );
-            if ( rc != 0 )
-                return rc;
-        }
-
-        /* output numeral with zero fill */
-        else if ( zero_fill != 0 )
-        {
-            rc = print_padding ( out, zero_fill, '0' );
-            if ( rc == 0 )
-                rc = print_string ( out, & S, text_lim );
-        }
-
-        /* output NUL-terminated string */
-        else if ( S . size == 0 && S . len != 0 )
-        {
-            assert ( f . left_fill == 0 || f . u . f . min_field_width == 0 );
-            rc = print_nul_term_string ( out, & S, text_lim );
-            dst_len = S . len;
-        }
-
-        /* output KSymbol */
-        else if ( S . addr == NULL )
-        {
-            rc = print_symbol ( out, p );
-        }
-
-        /* output anything else in a String */
-        else
-        {
-            rc = print_string ( out, & S, text_lim );
-        }
-
-        /* recover from error */
-        if ( rc != 0 )
-            return rc;
-
-        /* apply right padding */
-        if ( f . u . f . min_field_width > dst_len )
-        {
-            rc = print_padding ( out, f . u . f . min_field_width - dst_len, ' ' );
-            if ( rc != 0 )
-                return rc;
-        }
-    }
-
-    rc = flush_buffer ( out );
-
-    if ( rc == 0 && out -> overflow )
-        rc = RC ( rcText, rcString, rcConverting, rcBuffer, rcInsufficient );
-
-    return rc;
-}
-
-
-/* structured_printf
- *  uses constant format descriptors and argument block
- *  prints to "out" handler
- */
-LIB_EXPORT rc_t CC structured_printf ( const KWrtHandler *handler,
-    size_t *num_writ, const PrintFmt *fmt, const PrintArg *args )
-{
-    if ( handler != NULL )
-    {
-        rc_t rc;
-        char buff [ 4096 ];
-
-        KBufferedWrtHandler out;
-        out . handler = handler;
-        out . buff = buff;
-        out . bsize = sizeof buff;
-
-        rc = structured_print_engine ( & out, fmt, args );
-
-        if ( num_writ != NULL )
-            * num_writ = out . cur + out . flushed;
-
-        return rc;
-    }
-
-    if ( num_writ != NULL )
-        * num_writ = 0;
-
-    return RC ( rcRuntime, rcString, rcConverting, rcFile, rcNull );
-}
-
-
-/* structured_sprintf
- *  uses constant format descriptors and argument block
- *  prints to UTF-8 character buffer "dst"
- */
-LIB_EXPORT rc_t CC structured_sprintf ( char *dst, size_t bsize,
-    size_t *num_writ, const PrintFmt *fmt, const PrintArg *args )
-{
-    if ( dst != NULL || bsize == 0 )
-    {
-        rc_t rc;
-
-        KBufferedWrtHandler out;
-        out . handler = NULL;
-        out . buff = dst;
-        out . bsize = bsize;
-
-        rc = structured_print_engine ( & out, fmt, args );
-
-        if ( num_writ != NULL )
-            * num_writ = out . cur + out . flushed;
-
-        return rc;
-    }
-
-    if ( num_writ != NULL )
-        * num_writ = 0;
-
-    return RC ( rcRuntime, rcString, rcConverting, rcBuffer, rcNull );
-}
-
-
-/* string_printf
- *  provides a facility similar to snprintf
- *
- *  "dst" [ OUT ] and "bsize" [ IN ] - output buffer for string
- *  will be NUL-terminated if possible
- *
- *  "num_writ" [ OUT, NULL OKAY ] - returns the number of non-NUL bytes
- *  written to "dst" or the required "bsize" to complete successfully,
- *  not including the NUL termination.
- *
- *  "fmt" [ IN ] and "args" [ IN, OPTIONAL ] - data to write
- *
- *  returns 0 if all bytes were successfully written and a NUL-byte was
- *  written into the buffer.
- *
- *  returns rcBuffer, rcInsufficient if the buffer was too small. in this
- *  case, it is possible that the only missing byte would be the NUL
- *  termination, and the output string may still be usable since "num_writ"
- *  indicates the actual number of text bytes.
- */
-LIB_EXPORT rc_t CC new_string_vprintf ( char *dst, size_t bsize,
-    size_t *num_writ, const char *fmt_str, va_list vargs )
-{
-    rc_t rc;
-
-    String str [ 64 ], * strp = str;
-    PrintFmt fmt [ 64 ], * fmtp = fmt;
-    PrintArg args [ 64 ], * argp = args;
-
-    KDataBuffer overflow;
-
-    size_t dummy;
-    if ( num_writ == NULL )
-        num_writ = & dummy;
-
-    * num_writ = 0;
-
-    rc = parse_format_string ( fmt_str, vargs,
-        & strp, & fmtp, & argp, & overflow );
-
-    if ( rc == 0 )
-        rc = structured_sprintf ( dst, bsize, num_writ, fmtp, argp );
-
-    if ( strp != str )
-        KDataBufferWhack ( & overflow );
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC new_string_printf ( char *dst, size_t bsize,
-    size_t *num_writ, const char *fmt, ... )
-{
-    rc_t rc;
-
-    va_list args;
-    va_start ( args, fmt );
-
-    rc = new_string_vprintf ( dst, bsize, num_writ, fmt, args );
-
-    va_end ( args );
-
-    return rc;
-}
-
-LIB_EXPORT size_t CC new_vkfprintf ( const KWrtHandler *out,
-    size_t *num_writ, const char *fmt_str, va_list vargs )
-{
-    rc_t rc;
-
-    String str [ 64 ], * strp = str;
-    PrintFmt fmt [ 64 ], * fmtp = fmt;
-    PrintArg args [ 64 ], * argp = args;
-
-    KDataBuffer overflow;
-
-    size_t dummy;
-    if ( num_writ == NULL )
-        num_writ = & dummy;
-
-    * num_writ = 0;
-
-    rc = parse_format_string ( fmt_str, vargs,
-        & strp, & fmtp, & argp, & overflow );
-
-    if ( rc == 0 )
-        rc = structured_printf ( out, num_writ, fmtp, argp );
-
-    if ( strp != str )
-        KDataBufferWhack ( & overflow );
-
-    return rc;
-}
-
-LIB_EXPORT size_t CC new_kfprintf ( const KWrtHandler *out,
-    size_t *num_writ, const char *fmt, ... )
-{
-    rc_t rc;
-
-    va_list args;
-    va_start ( args, fmt );
-
-    rc = new_vkfprintf ( out, num_writ, fmt, args );
+    rc = vkfprintf ( out, num_writ, fmt, args );
         
     va_end ( args );
 
diff --git a/libs/klib/qsort.c b/libs/klib/qsort.c
index 2945818..d00d0b6 100644
--- a/libs/klib/qsort.c
+++ b/libs/klib/qsort.c
@@ -122,8 +122,7 @@ LIB_EXPORT void CC ksort ( void *pbase, size_t total_elems, size_t size,
 
     const size_t max_thresh = MAX_THRESH * size;
 
-    /* NEW - NCBI ... avoid sorting a single element */
-    if (total_elems < 2)
+    if (total_elems == 0)
         /* Avoid lossage with unsigned arithmetic below.  */
         return;
 
@@ -252,36 +251,6 @@ LIB_EXPORT void CC ksort ( void *pbase, size_t total_elems, size_t size,
 
         /* Insertion sort, running from left-hand-side up to right-hand-side.  */
 
-#if 1
-        /* NEW - NCBI */
-        tmp_ptr = base_ptr + size;
-        for ( run_ptr = base_ptr + size + size; run_ptr <= end_ptr; tmp_ptr = run_ptr, run_ptr += size )
-        {
-            for ( ; tmp_ptr >= base_ptr; tmp_ptr -= size )
-            {
-                if ( ( * cmp ) ( run_ptr, tmp_ptr, data ) >= 0 )
-                    break;
-            }
-
-            tmp_ptr += size;
-            if ( tmp_ptr != run_ptr )
-            {
-                char *trav;
-
-                trav = run_ptr + size;
-                while (--trav >= run_ptr)
-                {
-                    char c = *trav;
-                    char *hi, *lo;
-
-                    for (hi = lo = trav; (lo -= size) >= tmp_ptr; hi = lo)
-                        *hi = *lo;
-                    *hi = c;
-                }
-            }
-        }
-
-#else
         run_ptr = base_ptr + size;
         while ((run_ptr += size) <= end_ptr)
         {
@@ -306,6 +275,5 @@ LIB_EXPORT void CC ksort ( void *pbase, size_t total_elems, size_t size,
                 }
             }
         }
-#endif
     }
 }
diff --git a/libs/klib/refcount.c b/libs/klib/refcount.c
index 55590d9..e6632f6 100644
--- a/libs/klib/refcount.c
+++ b/libs/klib/refcount.c
@@ -37,6 +37,7 @@
 #include <klib/refcount.h>
 #include <klib/log.h>
 #include <atomic32.h>
+#include <fmtdef.h>
 
 #include <limits.h>
 #include <stdlib.h>
diff --git a/libs/klib/report.c b/libs/klib/report.c
deleted file mode 100644
index 94d6078..0000000
--- a/libs/klib/report.c
+++ /dev/null
@@ -1,816 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <klib/extern.h> /* MUST BE FIRST */
-
-#include <kapp/args.h> /* OPTION_REPORT */
-
-#include <kfs/directory.h> /* KDirectoryNativeDir */
-
-#include <klib/report.h> /* ReportInit */
-#include <klib/namelist.h> /* KNamelistRelease */
-#include <klib/time.h> /* KTime */
-#include <klib/text.h> /* string_printf */
-#include <klib/printf.h> /* string_printf */
-#include <klib/log.h> /* LOGERR */
-#include <klib/out.h> /* OUTMSG */
-#include <klib/rc.h>
-#include <klib/klib-priv.h>
-#include <atomic.h> /* atomic_test_and_set_ptr */
-
-#include <stdarg.h> /* va_start */
-#include <stdio.h> /* sprintf */
-#include <stdlib.h> /* malloc */
-#include <string.h> /* memset */
-#include <limits.h> /* PATH_MAX */
-#include <assert.h>
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
-
-/*
- * An unrecoverable error happened.
- * We can help to solve it
- * by reporting information about known application execution environment.
- */
-
-static
-rc_t XMLLogger_Encode(const char* src, char *dst,
-    size_t dst_sz, size_t *num_writ)
-{
-    rc_t rc = 0;
-    if( src == NULL || dst == NULL || num_writ == NULL ) {
-        rc = RC(rcApp, rcArgv, rcParsing, rcParam, rcNull);
-    } else {
-        *num_writ = 0;
-        do {
-            size_t bytes;
-            const char* p;
-            switch(*src) {
-                case '\'':
-                    bytes = 6;
-                    p = "'";
-                    break;
-                case '"':
-                    bytes = 6;
-                    p = """;
-                    break;
-                case '&':
-                    bytes = 5;
-                    p = "&";
-                    break;
-                case '<':
-                    bytes = 4;
-                    p = "<";
-                    break;
-                case '>':
-                    bytes = 4;
-                    p = ">";
-                    break;
-                default:
-                    bytes = 1;
-                    p = src;
-                    break;
-            }
-            if( (*num_writ + bytes) > dst_sz ) {
-                rc = RC(rcApp, rcLog, rcEncoding, rcBuffer, rcInsufficient);
-                break;
-            } else {
-                memcpy(dst, p, bytes);
-                *num_writ = *num_writ + bytes;
-                dst += bytes;
-            }
-        } while(*src++ != '\0');
-        *num_writ = *num_writ - 1;
-    }
-    return rc;
-}
-
-typedef rc_t (CC ReportObj)(const ReportFuncs *f, uint32_t indent,
-                              const char *path, bool *wasDbOrTableSet);
-typedef rc_t (CC ReportSoftware)(const ReportFuncs *f, uint32_t indent,
-                          const char *argv_0, const char *date, ver_t tool_ver);
-typedef rc_t (CC Whack )(void);
-typedef struct Report {
-    rc_t ( CC * report_redirect ) ( KWrtHandler* handler,
-        const char* filename, bool* to_file, bool finalize );
-    rc_t ( CC * report_cwd ) ( const ReportFuncs *f, uint32_t indent );
-    rc_t ( CC * report_config ) ( const ReportFuncs *f, uint32_t indent );
-    ReportObj *report_vdb;
-    ReportSoftware *report_software;
-    Whack *whack_vdb;
-    char* volatile object; /* path: to free */
-    const char* date;
-    char** argv;
-    int argc;
-    KTime_t start;
-    ver_t tool_ver;
-    bool hasZombies;
-    bool silence;
-} Report;
-
-static rc_t ReportReplaceObjectPtr(Report* self, const char* path) {
-    char *copy, *prev_ptr, *cur_ptr;
-
-    assert(self);
-
-    copy = string_dup_measure(path, NULL);
-    if (copy == NULL)
-        return RC(rcExe, rcMemory, rcAllocating, rcMemory, rcExhausted);
-
-    cur_ptr = self -> object;
-    do
-    {
-        prev_ptr = cur_ptr;
-        cur_ptr = atomic_test_and_set_ptr ( ( void* volatile* ) & self -> object, copy, prev_ptr );
-    }
-    while ( cur_ptr != prev_ptr );
-
-    if ( cur_ptr != NULL )
-        free ( cur_ptr );
-
-    return 0;
-}
-
-static rc_t ReportFreeObject(Report* self) {
-    rc_t rc = 0;
-    char *prev_ptr, *cur_ptr;
-
-    assert(self);
-
-    cur_ptr = self -> object;
-    do
-    {
-        prev_ptr = cur_ptr;
-        cur_ptr = atomic_test_and_set_ptr ( ( void* volatile* ) & self -> object, NULL, prev_ptr );
-    }
-    while ( cur_ptr != prev_ptr );
-
-    if ( cur_ptr != NULL )
-        free(cur_ptr);
-
-    return rc;
-}
-
-static Report * volatile report_singleton;
-
-static rc_t ReportGet(Report** self)
-{
-    if ( report_singleton == NULL )
-        return RC ( rcRuntime, rcStorage, rcAccessing, rcSelf, rcNull );
-
-    * self = ( Report* ) report_singleton;
-    return 0;
-}
-static rc_t ReportRelease(void)
-{
-    rc_t rc = 0;
-    Report *prev_report, *cur_report;
-
-    cur_report = report_singleton;
-    do
-    {
-        prev_report = cur_report;
-        cur_report = atomic_test_and_set_ptr ( ( void* volatile* ) & report_singleton, NULL, prev_report );
-    }
-    while ( cur_report != prev_report );
-
-    if ( cur_report != NULL )
-    {
-
-        /* cleanup */
-        ReportFreeObject( cur_report );
-        if ( cur_report -> whack_vdb != NULL )
-            rc = ( * cur_report -> whack_vdb ) ();
-
-        if ( cur_report -> argv != NULL )
-        {
-            int i;
-            for ( i = 0; i < cur_report -> argc; ++ i )
-                free ( cur_report -> argv [ i ] );
-            free ( cur_report -> argv );
-            cur_report -> argv = NULL;
-        }
-
-        memset ( cur_report, 0, sizeof * cur_report );
-    }
-
-    return rc;
-}
-
-static void reportOpen1(uint32_t indent, const char* name) {
-    OUTMSG(("%*c%s>", indent + 1, '<', name));
-}
-
-static rc_t reportData1(const char* data) {
-    rc_t rc = 0;
-
-    char dummy[PATH_MAX * 2 + 1] = "";
-    const char* p = data;
-
-    assert(data);
-
-    if (data[0] == 0) {
-        return rc;
-    }
-
-    if (strpbrk(data, "'\"&<>")) {
-        size_t num_writ = 0;
-        rc = XMLLogger_Encode(data, dummy, sizeof dummy, &num_writ);
-        if (rc == 0)
-        {   p = dummy; }
-    }
-
-    OUTMSG(("%s", p));
-
-    return rc;
-}
-
-static void reportClose1(const char* name) { OUTMSG(("</%s>\n", name)); }
-
-static rc_t reportImpl(int indent, bool open, bool close, bool eol,
-    const char* name, const char* data, int count, va_list args)
-{
-    rc_t rc = 0;
-    int i = 0;
-
-    if (count < 0) {
-        eol = false;
-        count = -count;
-    }
-
-    OUTMSG(("%*c", eol ? ( indent + 1 ) : 1, '<'));
-    OUTMSG(("%s%s", ( ! open && close ) ? "/" : "", name));
-
-    for (i = 0; i < count; ++i) {
-        const char* name = va_arg(args, const char*);
-        int format = va_arg(args, int);
-        union {
-            const char* s;
-            int i;
-            int64_t i64;
-            KTime* t;
-            rc_t rc;
-            const uint8_t* digest;
-            uint64_t u64;
-            ver_t vers;
-        } u;
-        OUTMSG((" %s=\"", name));
-        u.i64 = 0;
-        switch(format) {
-            case 'M':
-                u.digest = va_arg(args, const uint8_t*);
-                {
-                    int i = 0;
-                    for (i = 0; i < 16; ++i)
-                    {  OUTMSG(("%02x", *(u.digest + i))); }
-                }
-                break;
-            case 'l':
-                u.i64 = va_arg(args, int64_t);
-                OUTMSG(("%ld", u.i64));
-                break;
-            case 'u':
-                u.u64 = va_arg(args, uint64_t);
-                OUTMSG(("%lu", u.u64));
-                break;
-            case 'R':
-                u.rc = va_arg(args, rc_t);
-                OUTMSG(("%R", u.rc));
-                break;
-            case 'T':
-                u.t = va_arg(args, KTime*);
-                OUTMSG(("%lT", u.t));
-                break;
-            case 's':
-                u.s = va_arg(args, const char*);
-                OUTMSG(("%s", u.s));
-                break;
-            case 'V':
-                u.vers = va_arg(args, ver_t);
-                OUTMSG(("%V", u.vers));
-                break;
-            case 'd':
-            default:
-                u.i = va_arg(args, int);
-                OUTMSG(("%d", u.i));
-                break;
-        }
-        OUTMSG(("\""));
-    }
-
-    if (data) {
-        OUTMSG((">"));
-        rc = reportData1(data);
-        if (close)
-        {   OUTMSG(("</%s", name)); }
-    }
-    else if (open && close)
-    {   OUTMSG(("/")); }
-
-    OUTMSG((">"));
-    if (eol)
-    {   OUTMSG(("\n")); }
-
-    return rc;
-}
-
-static void CC report(uint32_t indent, const char* name, uint32_t count, ...) {
-     va_list args;
-     va_start(args, count);
-     reportImpl(indent, true, true, true, name, NULL, count, args);
-     va_end(args);
-}
-
-static
-void CC reportData(uint32_t indent, const char* name, const char* data, uint32_t count, ...)
-{
-    va_list args;
-    va_start(args, count);
-    reportImpl(indent, true, true, true, name, data, count, args);
-    va_end(args);
-}
-
-static void CC reportOpen(uint32_t indent, const char* name, uint32_t count, ...) {
-    va_list args;
-    va_start(args, count);
-    reportImpl(indent, true, false, true, name, NULL, count, args);
-    va_end(args);
-}
-
-static void CC reportClose(uint32_t indent, const char* name)
-{   reportImpl(indent, false, true, true, name, NULL, 0, NULL); }
-
-static void CC reportError(uint32_t indent, rc_t rc, const char* function) {
-    report(indent, "Error", 2,
-         "rc"      , 'R', rc,
-         "function", 's', function);
-}
-
-static void CC reportErrorStrImpl(uint32_t indent, rc_t rc,
-    const char* function, const char* name, const char* val, bool eol)
-{
-    int sign = eol ? 1 : -1;
-    if (rc || function) {
-        report(indent, "Error", sign * 3,
-            "rc", 'R', rc,
-            "function", 's', function,
-            name, 's', val);
-    }
-    else {
-        report(indent, "Error", sign,
-            name, 's', val);
-    }
-}
-
-static void CC reportErrorStr(uint32_t indent, rc_t rc, const char* function,
-    const char* name, const char* val)
-{   reportErrorStrImpl(indent, rc, function, name, val, true); }
-
-static void CC reportErrorStrInt(uint32_t indent, rc_t rc, const char* function,
-    const char* names, const char* vals, const char* namei, uint32_t vali)
-{
-    report(indent, "Error", 4,
-        "rc"      , 'd', rc,
-        "function", 's', function,
-        names     , 's', vals,
-        namei     , 'd', vali);
-}
-
-static void CC reportError3Str(uint32_t indent, rc_t rc, const char* function,
-    const char* name, const char* v1, const char* v2, const char* v3,
-    bool eol)
-{
-    char* buffer = malloc(strlen(v1) + strlen(v2) + strlen(v3) + 1);
-    if (buffer) {
-        sprintf(buffer, "%s%s%s", v1, v2, v3);
-        reportErrorStrImpl(indent, rc, function, name, buffer, eol);
-        free(buffer);
-    }
-}
-
-static ReportFuncs report_funcs =
-{
-    report,
-    reportData,
-    reportData1,
-    reportOpen,
-    reportOpen1,
-    reportClose,
-    reportClose1,
-    reportError,
-    reportErrorStr,
-    reportErrorStrImpl,
-    reportErrorStrInt,
-    reportError3Str
-};
-
-static rc_t ReportRun(int indent, rc_t rc_in) {
-    rc_t rc = 0;
-
-    const char tag[] = "Run";
-
-    Report* self = NULL;
-    ReportGet(&self);
-    if (self == NULL) {
-        return rc;
-    }
-
-    reportOpen(indent, tag, 0);
-
-    {
-        KTime kt;
-        const char tag[] = "Date";
-        reportOpen(indent + 1, tag, 0);
-        KTimeLocal(&kt, self->start);
-        report(indent + 2, "Start", 1, "value", 'T', &kt);
-        KTimeLocal(&kt, KTimeStamp());
-        report(indent + 2, "End"  , 1, "value", 'T', &kt);
-        reportClose(indent + 1, tag);
-    }
-
-    {
-        const char* name = "HOME";
-        const char* val = getenv(name);
-        if (val == NULL) {
-            name = "USERPROFILE";
-            val = getenv(name);
-        }
-        if (val == NULL)
-        {   name = val = "not found"; }
-        report(indent + 1, "Home", 2, "name", 's', name, "value", 's', val);
-    }
-
-    if ( self -> report_cwd != NULL )
-        rc = ( * self -> report_cwd ) ( & report_funcs, indent + 1 );
-
-    {
-        const char tag[] = "CommandLine";
-        int i = 0;
-        reportOpen(indent + 1, tag, 1, "argc", 'd', self->argc);
-        for (i = 0; i < self->argc; ++i) {
-            if (self->argv && self->argv[i]) {
-                report(indent + 2, "Arg", 2, "index", 'd', i,
-                    "value", 's', self->argv[i]);
-            }
-        }
-        reportClose(indent + 1, tag);
-    }
-
-    report(indent + 1, "Result", 1, "rc", 'R', rc_in);
-
-    reportClose(indent, tag);
-
-    return rc;
-}
-
-
-/* Silence
- *  tell report to be silent at exit
- *  useful especially in response to ^C
- */
-LIB_EXPORT void CC ReportSilence ( void )
-{
-    Report* self = NULL;
-    ReportGet(&self);
-    if ( self != NULL )
-        self -> silence = true;
-}
-
-static rc_t reportToFileSet(const Report* self,
-    KWrtHandler* old_handler, const char* name, bool* to_file)
-{
-    rc_t rc = 0;
-    assert(self && to_file);
-    if (self->report_redirect) {
-        rc = (*self->report_redirect)(old_handler, name, to_file, false);
-    }
-    return rc;
-}
-
-static rc_t reportToStdErrSet(const Report* self, KWrtHandler* old_handler) {
-    rc_t rc = 0;
-    assert(self);
-    if (self->report_redirect) {
-        rc = (*self->report_redirect)(old_handler, NULL, NULL, false);
-    }
-    return rc;
-}
-
-/* Finalize:
- * If (rc_in != 0) then report environment information.
- * Then clean itself.
- */
-LIB_EXPORT rc_t CC ReportFinalize(rc_t rc_in) {
-    rc_t rc = 0;
-
-    const char* report_arg = NULL;
-
-    bool force =  rc_in != 0;
-
-    Report* self = NULL;
-    ReportGet(&self);
-
-    if (self == NULL) {
-        return rc;
-    }
-
-    if (GetRCTarget(rc_in) == rcArgv) {
-        force = false;
-    }
-    else {
-        bool wasDbOrTableSet = true;
-        if (self->report_vdb != NULL) {
-            (*self->report_vdb)(&report_funcs, 0, NULL, &wasDbOrTableSet);
-            if (!wasDbOrTableSet) {
-                force = false;
-            }
-        }
-    }
-
-    if (self->argv) {
-        int i = 0;
-        for (i = 1; i < self->argc; ++i) {
-            if (strcmp("--" OPTION_REPORT, self->argv[i]) == 0) {
-                if (i + 1 < self->argc) {
-                    report_arg = self->argv[i + 1];
-                }
-                break;
-            }
-        }
-    }
-
-    if (report_arg && strcmp("always", report_arg) == 0) {
-        force = true;
-        self -> silence = false;
-    }
-
-    if (!self -> silence) {
-        if (force) { 
-            if (report_arg && strcmp("never", report_arg) == 0) {
-                force = false;
-            }
-        }
-/*                              PLOGERR(klogErr, (klogErr,
-                               RC(rcApp, rcArgv, rcParsing, rcRange, rcInvalid),
-                               "report type '$(type)' is unrecognized",
-                               "type=%s", self->argv[i + 1]));*/
-
-        if (force) {
-            if (self->hasZombies) {
-                KOutHandlerSetStdErr();
-                if (self->object != NULL) {
-                    OUTMSG(("\nThe archive '%s' may be truncated: "
-                        "Please download it again.\n", self->object));
-                }
-                else {
-                    OUTMSG(("\nThe archive may be truncated: "
-                        "Please download it again.\n"));
-                }
-            }
-            else {
-                int indent = 0;
-                const char tag[] = "Report";
-
-                char path[PATH_MAX + 1] = "";
-                bool to_file = false;
-                KWrtHandler old_handler;
-                if (rc_in == 0) {
-                    reportToStdErrSet(self, &old_handler);
-                }
-                else {
-                    rc_t rc2 = 0;
-                    const char name[] = "ncbi_error_report.xml";
-                    const char* home = getenv("HOME");
-                    if (home == NULL) {
-                        home = getenv("USERPROFILE");
-                    }
-                    if (home) {
-                        size_t num_writ = 0;
-                        rc2 = string_printf
-                            (path, sizeof path, &num_writ, "%s/%s", home, name);
-                        assert(num_writ < sizeof path);
-                    }
-                    if (rc2 != 0 || home == NULL) {
-                        size_t num_writ = 0;
-                        rc2 = string_printf
-                            (path, sizeof path, &num_writ, "%s", name);
-                        assert(num_writ < sizeof path);
-                        assert(rc2 == 0);
-                    }
-                    reportToFileSet(self, &old_handler, path, &to_file);
-                }
-                if (!to_file && rc_in) {
-                    OUTMSG((
-"\n"
-"=============================================================\n"
-"An error occurred during processing.\n"
-"If the problem persists, you may consider sending the following XML document\n"
-"to 'sra at ncbi.nlm.nih.gov' for assistance.\n"
-"=============================================================\n\n"));
-                }
-
-                reportOpen(indent, tag, 0);
-
-                {
-                    rc_t rc2 = ReportRun(indent + 1, rc_in);
-                    if (rc == 0 && rc2 != 0)
-                    {   rc = rc2; }
-                }
-
-                if ( self -> report_config != NULL )
-                {
-                    rc_t rc2 = ( * self -> report_config ) ( & report_funcs, indent + 1);
-                    if (rc == 0 && rc2 != 0)
-                    {   rc = rc2; }
-                }
-
-                if (self -> report_vdb != NULL) {
-                    rc_t rc2 = (*self->report_vdb)
-                        (&report_funcs, indent + 1, self -> object, NULL);
-                    if (rc == 0 && rc2 != 0) {
-                        rc = rc2;
-                    }
-                }
-
-                if ( self -> report_software != NULL )
-                {
-                    const char *argv_0 = self -> argv ? self -> argv [ 0 ] : "";
-                    rc_t rc2 = ( * self -> report_software ) ( & report_funcs, indent + 1, argv_0, self -> date, self -> tool_ver );
-                    if (rc == 0 && rc2 != 0)
-                    {   rc = rc2; }
-                }
-
-                reportClose(indent, tag);
-                reportData1("\n");
-
-                if (to_file) {
-                    KOutHandlerSetStdErr();
-                    OUTMSG((
-"\n"
-"=============================================================\n"
-"An error occurred during processing.\n"
-"A report was generated into the file '%s'.\n"
-"If the problem persists, you may consider sending the file\n"
-"to 'sra at ncbi.nlm.nih.gov' for assistance.\n"
-"=============================================================\n\n", path));
-                }
-            }
-        }
-    }
-
-    ReportRelease();
-
-    return rc;
-}
-
-static
-char **copy_argv ( int argc, char **argv )
-{
-    char **argv2 = calloc ( argc, sizeof * argv2 );
-    if (argv2 != NULL) {
-        int i = 0;
-        for (i = 0; i < argc; ++i) {
-            argv2[i] = string_dup_measure(argv[i], NULL);
-        }
-    }
-    return argv2;
-}
-
-/* Init: initialize with common information */
-LIB_EXPORT void CC ReportInit(int argc, char* argv[], ver_t tool_version)
-{
-    static bool latch;
-    if ( ! latch )
-    {
-        /* comes pre-zeroed by runtime */
-        static Report self;
-
-        /* initialize with non-zero parameters */
-        self.start = KTimeStamp();
-        self.argc = argc;
-        self.argv = copy_argv ( argc, argv );
-        self.date = __DATE__;
-        self.tool_ver = tool_version;
-        self.silence = false;
-
-        /* export to the remainder of the source */
-        report_singleton = & self;
-
-        latch = true;
-    }
-}
-
-
-/* BuildDate
- *  set the build date of the tool
- *
- *  "date" [ IN ] - pre-processor __DATE__
- */
-LIB_EXPORT void CC ReportBuildDate ( const char *date )
-{
-    Report* self = NULL;
-    ReportGet(&self);
-    if ( self != NULL )
-        self -> date = date;
-}
-
-
-/* InitCWD
- */
-LIB_EXPORT void CC ReportInitKFS (
-    rc_t ( CC * report_cwd ) ( const ReportFuncs *f, uint32_t indent ),
-    rc_t ( CC * report_redirect ) ( KWrtHandler* handler,
-        const char* filename, bool* to_file, bool finalize ) )
-{
-    Report* self = NULL;
-    ReportGet(&self);
-    if ( self != NULL ) {
-        self -> report_redirect = report_redirect;
-        self -> report_cwd = report_cwd;
-    }
-}
-
-
-/* InitConfig
- */
-LIB_EXPORT const char* CC ReportInitConfig ( rc_t ( CC * report ) ( const ReportFuncs *f, uint32_t indent ) )
-{
-    Report* self = NULL;
-    ReportGet(&self);
-    if ( self != NULL )
-    {
-        self -> report_config = report;
-        return self -> argv [ 0 ];
-    }
-    return NULL;
-}
-
-/* InitVDB
- */
-LIB_EXPORT rc_t CC ReportInitVDB(
-    ReportObj *report_obj, ReportSoftware *report_software, Whack *whack)
-{
-    Report* self = NULL;
-    rc_t rc = ReportGet(&self);
-    if ( rc == 0 && self)
-    {
-        self -> report_vdb = report_obj;
-        self -> report_software = report_software;
-        self -> whack_vdb = whack;
-    }
-    return rc;
-}
-
-LIB_EXPORT rc_t CC ReportResetObject(const char* path)
-{
-    Report* self = NULL;
-
-    if ( path == NULL )
-        path = "NULL";
-    else if ( path [ 0 ] == 0 )
-        path = "EMPTY";
-
-    ReportGet(&self);
-    if (self == NULL) {
-        return 0;
-    }
-
-    return ReportReplaceObjectPtr(self, path);
-}
-
-LIB_EXPORT void CC ReportRecordZombieFile(void)
-{
-    Report* self = NULL;
-    ReportGet(&self);
-    if (self == NULL)
-    {   return; }
-    self->hasZombies = true;
-}
diff --git a/libs/klib/status.c b/libs/klib/status.c
index be03c98..d8d0d6f 100644
--- a/libs/klib/status.c
+++ b/libs/klib/status.c
@@ -135,8 +135,8 @@ rc_t CC sts_print(KFmtHandler* formatter, const KStsFmtFlags flags, KWrtHandler*
 
     uint32_t envc = 0;
     wrt_nvp_t envs[5];
-    char ebuffer[2048];
-    char mbuffer[2048];
+    const char ebuffer[2048];
+    const char mbuffer[2048];
     KFmtWriter fmtwrt;
 
     assert(formatter != NULL);
diff --git a/libs/klib/symtab.c b/libs/klib/symtab.c
index d30df64..7dc8897 100644
--- a/libs/klib/symtab.c
+++ b/libs/klib/symtab.c
@@ -103,7 +103,7 @@ LIB_EXPORT rc_t CC KSymbolMake ( KSymbol **symp,
             rc = KSymbolInit (sym, name, type, obj);
             if (rc == 0)
             {
-                * symp = sym;
+                * symp = NULL;
                 return 0;
             }
             free (sym);
diff --git a/libs/klib/token.c b/libs/klib/token.c
index 9e4f0f5..d8ec211 100644
--- a/libs/klib/token.c
+++ b/libs/klib/token.c
@@ -1236,6 +1236,7 @@ comment_restart:
 
 #if CHECK_TOKENIZER
 #include <stdio.h>
+#include <fmtdef.h>
 static
 void CC examine_src ( const KTokenSource *src, bool before )
 {
@@ -1258,12 +1259,12 @@ void CC examine_src ( const KTokenSource *src, bool before )
         }
         else
         {
-            fprintf ( stderr, "KTokenizerNext: bad src size ( %lu ) %s scan "
-                      "at file \"%.*s\" offset %lu\n"
-                      , ( long unsigned ) src -> str . size
+            fprintf ( stderr, "KTokenizerNext: bad src size ( %" LUSZ " ) %s scan "
+                      "at file \"%.*s\" offset %" LUSZ "\n"
+                      , src -> str . size
                       , stage
                       , ( int ) tt -> path . size, tt -> path . addr
-                      , ( long unsigned ) ( src -> str . addr - tt -> str . addr ) );
+                      , src -> str . addr - tt -> str . addr );
         }
     }
 
diff --git a/libs/klib/unix/systime.c b/libs/klib/unix/systime.c
index 09b9b90..1774fcf 100644
--- a/libs/klib/unix/systime.c
+++ b/libs/klib/unix/systime.c
@@ -64,11 +64,9 @@ void KTimeMake ( KTime *kt, struct tm const *t )
 {
     kt -> year = t -> tm_year + 1900;
     kt -> month = t -> tm_mon;
-    kt -> day = t -> tm_mday - 1;
+    kt -> day = t -> tm_mday;
     kt -> weekday = t -> tm_wday;
-#if !defined(__SunOS)  &&  !defined(__sun__)
     kt -> tzoff = ( int16_t ) ( t -> tm_gmtoff / 60 );
-#endif
     kt -> hour = ( uint8_t ) t -> tm_hour;
     kt -> minute = ( uint8_t ) t -> tm_min;
     kt -> second = ( uint8_t ) t -> tm_sec;
diff --git a/libs/klib/unpack.c b/libs/klib/unpack.c
index 73b343b..a49902b 100644
--- a/libs/klib/unpack.c
+++ b/libs/klib/unpack.c
@@ -75,167 +75,6 @@
 #define WRITE_UNPACKED8( out, dst, idx ) \
     ( ( uint64_t* ) ( dst ) ) [ idx ] = bswap_64 ( out )
 #endif
-uint8_t unpack_8_from_2_arr[256][4]={
-{0,0,0,0},{0,0,0,1},{0,0,0,2},{0,0,0,3},
-{0,0,1,0},{0,0,1,1},{0,0,1,2},{0,0,1,3},
-{0,0,2,0},{0,0,2,1},{0,0,2,2},{0,0,2,3},
-{0,0,3,0},{0,0,3,1},{0,0,3,2},{0,0,3,3},
-{0,1,0,0},{0,1,0,1},{0,1,0,2},{0,1,0,3},
-{0,1,1,0},{0,1,1,1},{0,1,1,2},{0,1,1,3},
-{0,1,2,0},{0,1,2,1},{0,1,2,2},{0,1,2,3},
-{0,1,3,0},{0,1,3,1},{0,1,3,2},{0,1,3,3},
-{0,2,0,0},{0,2,0,1},{0,2,0,2},{0,2,0,3},
-{0,2,1,0},{0,2,1,1},{0,2,1,2},{0,2,1,3},
-{0,2,2,0},{0,2,2,1},{0,2,2,2},{0,2,2,3},
-{0,2,3,0},{0,2,3,1},{0,2,3,2},{0,2,3,3},
-{0,3,0,0},{0,3,0,1},{0,3,0,2},{0,3,0,3},
-{0,3,1,0},{0,3,1,1},{0,3,1,2},{0,3,1,3},
-{0,3,2,0},{0,3,2,1},{0,3,2,2},{0,3,2,3},
-{0,3,3,0},{0,3,3,1},{0,3,3,2},{0,3,3,3},
-{1,0,0,0},{1,0,0,1},{1,0,0,2},{1,0,0,3},
-{1,0,1,0},{1,0,1,1},{1,0,1,2},{1,0,1,3},
-{1,0,2,0},{1,0,2,1},{1,0,2,2},{1,0,2,3},
-{1,0,3,0},{1,0,3,1},{1,0,3,2},{1,0,3,3},
-{1,1,0,0},{1,1,0,1},{1,1,0,2},{1,1,0,3},
-{1,1,1,0},{1,1,1,1},{1,1,1,2},{1,1,1,3},
-{1,1,2,0},{1,1,2,1},{1,1,2,2},{1,1,2,3},
-{1,1,3,0},{1,1,3,1},{1,1,3,2},{1,1,3,3},
-{1,2,0,0},{1,2,0,1},{1,2,0,2},{1,2,0,3},
-{1,2,1,0},{1,2,1,1},{1,2,1,2},{1,2,1,3},
-{1,2,2,0},{1,2,2,1},{1,2,2,2},{1,2,2,3},
-{1,2,3,0},{1,2,3,1},{1,2,3,2},{1,2,3,3},
-{1,3,0,0},{1,3,0,1},{1,3,0,2},{1,3,0,3},
-{1,3,1,0},{1,3,1,1},{1,3,1,2},{1,3,1,3},
-{1,3,2,0},{1,3,2,1},{1,3,2,2},{1,3,2,3},
-{1,3,3,0},{1,3,3,1},{1,3,3,2},{1,3,3,3},
-{2,0,0,0},{2,0,0,1},{2,0,0,2},{2,0,0,3},
-{2,0,1,0},{2,0,1,1},{2,0,1,2},{2,0,1,3},
-{2,0,2,0},{2,0,2,1},{2,0,2,2},{2,0,2,3},
-{2,0,3,0},{2,0,3,1},{2,0,3,2},{2,0,3,3},
-{2,1,0,0},{2,1,0,1},{2,1,0,2},{2,1,0,3},
-{2,1,1,0},{2,1,1,1},{2,1,1,2},{2,1,1,3},
-{2,1,2,0},{2,1,2,1},{2,1,2,2},{2,1,2,3},
-{2,1,3,0},{2,1,3,1},{2,1,3,2},{2,1,3,3},
-{2,2,0,0},{2,2,0,1},{2,2,0,2},{2,2,0,3},
-{2,2,1,0},{2,2,1,1},{2,2,1,2},{2,2,1,3},
-{2,2,2,0},{2,2,2,1},{2,2,2,2},{2,2,2,3},
-{2,2,3,0},{2,2,3,1},{2,2,3,2},{2,2,3,3},
-{2,3,0,0},{2,3,0,1},{2,3,0,2},{2,3,0,3},
-{2,3,1,0},{2,3,1,1},{2,3,1,2},{2,3,1,3},
-{2,3,2,0},{2,3,2,1},{2,3,2,2},{2,3,2,3},
-{2,3,3,0},{2,3,3,1},{2,3,3,2},{2,3,3,3},
-{3,0,0,0},{3,0,0,1},{3,0,0,2},{3,0,0,3},
-{3,0,1,0},{3,0,1,1},{3,0,1,2},{3,0,1,3},
-{3,0,2,0},{3,0,2,1},{3,0,2,2},{3,0,2,3},
-{3,0,3,0},{3,0,3,1},{3,0,3,2},{3,0,3,3},
-{3,1,0,0},{3,1,0,1},{3,1,0,2},{3,1,0,3},
-{3,1,1,0},{3,1,1,1},{3,1,1,2},{3,1,1,3},
-{3,1,2,0},{3,1,2,1},{3,1,2,2},{3,1,2,3},
-{3,1,3,0},{3,1,3,1},{3,1,3,2},{3,1,3,3},
-{3,2,0,0},{3,2,0,1},{3,2,0,2},{3,2,0,3},
-{3,2,1,0},{3,2,1,1},{3,2,1,2},{3,2,1,3},
-{3,2,2,0},{3,2,2,1},{3,2,2,2},{3,2,2,3},
-{3,2,3,0},{3,2,3,1},{3,2,3,2},{3,2,3,3},
-{3,3,0,0},{3,3,0,1},{3,3,0,2},{3,3,0,3},
-{3,3,1,0},{3,3,1,1},{3,3,1,2},{3,3,1,3},
-{3,3,2,0},{3,3,2,1},{3,3,2,2},{3,3,2,3},
-{3,3,3,0},{3,3,3,1},{3,3,3,2},{3,3,3,3},
-};
-uint8_t unpack_8_from_1_arr[256][8]={
-{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,1},{0,0,0,0,0,0,1,0},{0,0,0,0,0,0,1,1},
-{0,0,0,0,0,1,0,0},{0,0,0,0,0,1,0,1},{0,0,0,0,0,1,1,0},{0,0,0,0,0,1,1,1},
-{0,0,0,0,1,0,0,0},{0,0,0,0,1,0,0,1},{0,0,0,0,1,0,1,0},{0,0,0,0,1,0,1,1},
-{0,0,0,0,1,1,0,0},{0,0,0,0,1,1,0,1},{0,0,0,0,1,1,1,0},{0,0,0,0,1,1,1,1},
-{0,0,0,1,0,0,0,0},{0,0,0,1,0,0,0,1},{0,0,0,1,0,0,1,0},{0,0,0,1,0,0,1,1},
-{0,0,0,1,0,1,0,0},{0,0,0,1,0,1,0,1},{0,0,0,1,0,1,1,0},{0,0,0,1,0,1,1,1},
-{0,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,1},{0,0,0,1,1,0,1,0},{0,0,0,1,1,0,1,1},
-{0,0,0,1,1,1,0,0},{0,0,0,1,1,1,0,1},{0,0,0,1,1,1,1,0},{0,0,0,1,1,1,1,1},
-{0,0,1,0,0,0,0,0},{0,0,1,0,0,0,0,1},{0,0,1,0,0,0,1,0},{0,0,1,0,0,0,1,1},
-{0,0,1,0,0,1,0,0},{0,0,1,0,0,1,0,1},{0,0,1,0,0,1,1,0},{0,0,1,0,0,1,1,1},
-{0,0,1,0,1,0,0,0},{0,0,1,0,1,0,0,1},{0,0,1,0,1,0,1,0},{0,0,1,0,1,0,1,1},
-{0,0,1,0,1,1,0,0},{0,0,1,0,1,1,0,1},{0,0,1,0,1,1,1,0},{0,0,1,0,1,1,1,1},
-{0,0,1,1,0,0,0,0},{0,0,1,1,0,0,0,1},{0,0,1,1,0,0,1,0},{0,0,1,1,0,0,1,1},
-{0,0,1,1,0,1,0,0},{0,0,1,1,0,1,0,1},{0,0,1,1,0,1,1,0},{0,0,1,1,0,1,1,1},
-{0,0,1,1,1,0,0,0},{0,0,1,1,1,0,0,1},{0,0,1,1,1,0,1,0},{0,0,1,1,1,0,1,1},
-{0,0,1,1,1,1,0,0},{0,0,1,1,1,1,0,1},{0,0,1,1,1,1,1,0},{0,0,1,1,1,1,1,1},
-{0,1,0,0,0,0,0,0},{0,1,0,0,0,0,0,1},{0,1,0,0,0,0,1,0},{0,1,0,0,0,0,1,1},
-{0,1,0,0,0,1,0,0},{0,1,0,0,0,1,0,1},{0,1,0,0,0,1,1,0},{0,1,0,0,0,1,1,1},
-{0,1,0,0,1,0,0,0},{0,1,0,0,1,0,0,1},{0,1,0,0,1,0,1,0},{0,1,0,0,1,0,1,1},
-{0,1,0,0,1,1,0,0},{0,1,0,0,1,1,0,1},{0,1,0,0,1,1,1,0},{0,1,0,0,1,1,1,1},
-{0,1,0,1,0,0,0,0},{0,1,0,1,0,0,0,1},{0,1,0,1,0,0,1,0},{0,1,0,1,0,0,1,1},
-{0,1,0,1,0,1,0,0},{0,1,0,1,0,1,0,1},{0,1,0,1,0,1,1,0},{0,1,0,1,0,1,1,1},
-{0,1,0,1,1,0,0,0},{0,1,0,1,1,0,0,1},{0,1,0,1,1,0,1,0},{0,1,0,1,1,0,1,1},
-{0,1,0,1,1,1,0,0},{0,1,0,1,1,1,0,1},{0,1,0,1,1,1,1,0},{0,1,0,1,1,1,1,1},
-{0,1,1,0,0,0,0,0},{0,1,1,0,0,0,0,1},{0,1,1,0,0,0,1,0},{0,1,1,0,0,0,1,1},
-{0,1,1,0,0,1,0,0},{0,1,1,0,0,1,0,1},{0,1,1,0,0,1,1,0},{0,1,1,0,0,1,1,1},
-{0,1,1,0,1,0,0,0},{0,1,1,0,1,0,0,1},{0,1,1,0,1,0,1,0},{0,1,1,0,1,0,1,1},
-{0,1,1,0,1,1,0,0},{0,1,1,0,1,1,0,1},{0,1,1,0,1,1,1,0},{0,1,1,0,1,1,1,1},
-{0,1,1,1,0,0,0,0},{0,1,1,1,0,0,0,1},{0,1,1,1,0,0,1,0},{0,1,1,1,0,0,1,1},
-{0,1,1,1,0,1,0,0},{0,1,1,1,0,1,0,1},{0,1,1,1,0,1,1,0},{0,1,1,1,0,1,1,1},
-{0,1,1,1,1,0,0,0},{0,1,1,1,1,0,0,1},{0,1,1,1,1,0,1,0},{0,1,1,1,1,0,1,1},
-{0,1,1,1,1,1,0,0},{0,1,1,1,1,1,0,1},{0,1,1,1,1,1,1,0},{0,1,1,1,1,1,1,1},
-{1,0,0,0,0,0,0,0},{1,0,0,0,0,0,0,1},{1,0,0,0,0,0,1,0},{1,0,0,0,0,0,1,1},
-{1,0,0,0,0,1,0,0},{1,0,0,0,0,1,0,1},{1,0,0,0,0,1,1,0},{1,0,0,0,0,1,1,1},
-{1,0,0,0,1,0,0,0},{1,0,0,0,1,0,0,1},{1,0,0,0,1,0,1,0},{1,0,0,0,1,0,1,1},
-{1,0,0,0,1,1,0,0},{1,0,0,0,1,1,0,1},{1,0,0,0,1,1,1,0},{1,0,0,0,1,1,1,1},
-{1,0,0,1,0,0,0,0},{1,0,0,1,0,0,0,1},{1,0,0,1,0,0,1,0},{1,0,0,1,0,0,1,1},
-{1,0,0,1,0,1,0,0},{1,0,0,1,0,1,0,1},{1,0,0,1,0,1,1,0},{1,0,0,1,0,1,1,1},
-{1,0,0,1,1,0,0,0},{1,0,0,1,1,0,0,1},{1,0,0,1,1,0,1,0},{1,0,0,1,1,0,1,1},
-{1,0,0,1,1,1,0,0},{1,0,0,1,1,1,0,1},{1,0,0,1,1,1,1,0},{1,0,0,1,1,1,1,1},
-{1,0,1,0,0,0,0,0},{1,0,1,0,0,0,0,1},{1,0,1,0,0,0,1,0},{1,0,1,0,0,0,1,1},
-{1,0,1,0,0,1,0,0},{1,0,1,0,0,1,0,1},{1,0,1,0,0,1,1,0},{1,0,1,0,0,1,1,1},
-{1,0,1,0,1,0,0,0},{1,0,1,0,1,0,0,1},{1,0,1,0,1,0,1,0},{1,0,1,0,1,0,1,1},
-{1,0,1,0,1,1,0,0},{1,0,1,0,1,1,0,1},{1,0,1,0,1,1,1,0},{1,0,1,0,1,1,1,1},
-{1,0,1,1,0,0,0,0},{1,0,1,1,0,0,0,1},{1,0,1,1,0,0,1,0},{1,0,1,1,0,0,1,1},
-{1,0,1,1,0,1,0,0},{1,0,1,1,0,1,0,1},{1,0,1,1,0,1,1,0},{1,0,1,1,0,1,1,1},
-{1,0,1,1,1,0,0,0},{1,0,1,1,1,0,0,1},{1,0,1,1,1,0,1,0},{1,0,1,1,1,0,1,1},
-{1,0,1,1,1,1,0,0},{1,0,1,1,1,1,0,1},{1,0,1,1,1,1,1,0},{1,0,1,1,1,1,1,1},
-{1,1,0,0,0,0,0,0},{1,1,0,0,0,0,0,1},{1,1,0,0,0,0,1,0},{1,1,0,0,0,0,1,1},
-{1,1,0,0,0,1,0,0},{1,1,0,0,0,1,0,1},{1,1,0,0,0,1,1,0},{1,1,0,0,0,1,1,1},
-{1,1,0,0,1,0,0,0},{1,1,0,0,1,0,0,1},{1,1,0,0,1,0,1,0},{1,1,0,0,1,0,1,1},
-{1,1,0,0,1,1,0,0},{1,1,0,0,1,1,0,1},{1,1,0,0,1,1,1,0},{1,1,0,0,1,1,1,1},
-{1,1,0,1,0,0,0,0},{1,1,0,1,0,0,0,1},{1,1,0,1,0,0,1,0},{1,1,0,1,0,0,1,1},
-{1,1,0,1,0,1,0,0},{1,1,0,1,0,1,0,1},{1,1,0,1,0,1,1,0},{1,1,0,1,0,1,1,1},
-{1,1,0,1,1,0,0,0},{1,1,0,1,1,0,0,1},{1,1,0,1,1,0,1,0},{1,1,0,1,1,0,1,1},
-{1,1,0,1,1,1,0,0},{1,1,0,1,1,1,0,1},{1,1,0,1,1,1,1,0},{1,1,0,1,1,1,1,1},
-{1,1,1,0,0,0,0,0},{1,1,1,0,0,0,0,1},{1,1,1,0,0,0,1,0},{1,1,1,0,0,0,1,1},
-{1,1,1,0,0,1,0,0},{1,1,1,0,0,1,0,1},{1,1,1,0,0,1,1,0},{1,1,1,0,0,1,1,1},
-{1,1,1,0,1,0,0,0},{1,1,1,0,1,0,0,1},{1,1,1,0,1,0,1,0},{1,1,1,0,1,0,1,1},
-{1,1,1,0,1,1,0,0},{1,1,1,0,1,1,0,1},{1,1,1,0,1,1,1,0},{1,1,1,0,1,1,1,1},
-{1,1,1,1,0,0,0,0},{1,1,1,1,0,0,0,1},{1,1,1,1,0,0,1,0},{1,1,1,1,0,0,1,1},
-{1,1,1,1,0,1,0,0},{1,1,1,1,0,1,0,1},{1,1,1,1,0,1,1,0},{1,1,1,1,0,1,1,1},
-{1,1,1,1,1,0,0,0},{1,1,1,1,1,0,0,1},{1,1,1,1,1,0,1,0},{1,1,1,1,1,0,1,1},
-{1,1,1,1,1,1,0,0},{1,1,1,1,1,1,0,1},{1,1,1,1,1,1,1,0},{1,1,1,1,1,1,1,1},
-};
-
-static
-void CC Unpack8From2(uint8_t *dst,const uint8_t *src,int32_t count)
-{
-	if(count > 0){
-		int i;
-		for(i=0;i<count/4;i++,dst+=4,src++){
-			memcpy(dst,unpack_8_from_2_arr[*src],4);
-		}
-		for(i=0;i< (count&3);i++){
-			dst[i] = unpack_8_from_2_arr[*src][i];
-		}
-	}
-}
-static
-void CC Unpack8From1(uint8_t *dst,const uint8_t *src,int32_t count)
-{
-	if(count > 0){
-		int i;
-		for(i=0;i<count/8;i++,dst+=8,src++){
-			memcpy(dst,unpack_8_from_1_arr[*src],8);
-		}
-		for(i=0;i< (count&7);i++){
-			dst[i] = unpack_8_from_1_arr[*src][i];
-		}
-	}
-}
-
-
 
 
 /* Unpack8
@@ -248,23 +87,10 @@ void CC Unpack8 ( uint32_t packed, uint32_t count, void *dst,
     uint64_t out;
     uint32_t abits;
     uint64_t src_mask;
+
     /* keep track of trailing bits */
     uint32_t discard = (uint32_t)( ( 0 - ( ssize += src_off ) ) & 7 );
 
-
-    if(src_off == 0){
-	switch(packed){
-	 case 1:
-		Unpack8From1(dst,src,count);
-		return;
-	 case 2:
-		Unpack8From2(dst,src,count);
-		return;
-	}
-    }
-	
-
-
     /* convert to bytes */
     ssize = ( ssize + 7 ) >> 3;
 
diff --git a/libs/klib/vector_namelist.c b/libs/klib/vector_namelist.c
index 95dfdb8..75e6373 100644
--- a/libs/klib/vector_namelist.c
+++ b/libs/klib/vector_namelist.c
@@ -38,7 +38,6 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <ctype.h>
 #include <assert.h>
 
 /*--------------------------------------------------------------------------
@@ -243,59 +242,3 @@ LIB_EXPORT rc_t CC VNamelistRemove( VNamelist *self, const char* s )
     }
     return rc;
 }
-
-
-
-/* Reorder
- *  sort the names according to case sensitivity
- *  and UNICODE character code ordering
- *
- *  "case_insensitive" [ IN ] - when true, perform "tolower" on
- *   each character before compare
- */
-static
-int CC vect_string_cmp ( const void **a, const void **b, void *ignore )
-{
-    return strcmp ( * a, * b );
-}
-
-static
-int CC vect_string_cmp_case ( const void **a, const void **b, void *ignore )
-{
-    uint32_t i;
-
-    const char *ap = * a;
-    const char *bp = * b;
-
-    if ( ap == NULL )
-        return bp != NULL;
-    if ( bp == NULL )
-        return -1;
-
-    for ( i = 0; ; ++ i )
-    {
-        if ( ap [ i ] != bp [ i ] )
-        {
-            /* TBD - this should perform UTF-8 to UNICODE conversion
-               but for that, create a function in text module */
-            int diff = tolower ( ap [ i ] ) - tolower ( bp [ i ] );
-            if ( diff == 0 )
-                continue;
-
-            return diff;
-        }
-
-        if ( ap [ i ] == 0 )
-            break;
-    }
-
-    return 0;
-}
-
-LIB_EXPORT void CC VNamelistReorder ( VNamelist *self, bool case_insensitive )
-{
-    if ( self != NULL )
-    {
-        VectorReorder ( & self -> name_vector, case_insensitive ? vect_string_cmp_case : vect_string_cmp, NULL );
-    }
-}
diff --git a/libs/klib/vlen-encode.c b/libs/klib/vlen-encode.c
index f8e4349..9f5961b 100644
--- a/libs/klib/vlen-encode.c
+++ b/libs/klib/vlen-encode.c
@@ -31,7 +31,6 @@
 
 #include <byteswap.h>
 #include <endian.h>
-#include <string.h>
 
 LIB_EXPORT rc_t CC vlen_encode1(void *Dst, uint64_t dsize, uint64_t *psize, int64_t X) {
     int sgn = 0;
@@ -325,7 +324,7 @@ LIB_EXPORT rc_t CC vlen_decode ( int64_t *Y, uint64_t ycount,
 #endif
         XTYPE x;
         
-        memcpy (& x, src + i, sizeof x); /* may be misaligned */        
+        x = *(const XTYPE *)(src + i);
 #if __BYTE_ORDER == __BIG_ENDIAN
 #if XTYPE_SIZE == 32
         x = bswap_32(x);
diff --git a/libs/klib/win/syserrcode.c b/libs/klib/win/syserrcode.c
index 9176d92..fe85768 100644
--- a/libs/klib/win/syserrcode.c
+++ b/libs/klib/win/syserrcode.c
@@ -73,7 +73,7 @@ size_t KWrtFmt_error_code ( char * buffer, size_t buffer_size, uint32_t error_co
         {
             if (*pc == '\r')
             {
-                tbuffer_size = pc - tbuffer;
+                *pc = '\0';
                 break;
             }
         }
diff --git a/libs/klib/win/systime.c b/libs/klib/win/systime.c
old mode 100644
new mode 100755
diff --git a/libs/klib/win/syswriter.c b/libs/klib/win/syswriter.c
index b204afc..6440fbc 100644
--- a/libs/klib/win/syswriter.c
+++ b/libs/klib/win/syswriter.c
@@ -29,7 +29,6 @@
 #include <windows.h>
 #include <klib/writer.h>
 #include <klib/text.h>
-#include <klib/printf.h>
 #include "writer-priv.h"
 #include <stdio.h>
 #include <errno.h>
@@ -55,24 +54,10 @@ rc_t KWrtSysInit(void** h_stdout, void** h_stderr)
 LIB_EXPORT int CC snprintf ( char * buffer, size_t bufsize, const char * format, ... )
 {
     int ret;
-    size_t size;
-    rc_t rc;
     va_list args;
 
     va_start (args, format);
-    rc = string_vprintf ( buffer, bufsize, &size, format, args );
-    if ( rc == 0 )
-    {
-        ret = size;
-    }
-    else
-    {
-        if ( ( GetRCState( rc ) == rcInsufficient )&&( GetRCObject( rc ) == rcBuffer ) )
-            ret = size;
-        else
-            ret = -1;
-    }
-/*    ret = _vsnprintf (buffer, bufsize, format, args); */
+    ret = _vsnprintf (buffer, bufsize, format, args);
     va_end (args);
     return ret;
 }
diff --git a/libs/klib/writer.c b/libs/klib/writer.c
index 8bc592b..2e510fe 100644
--- a/libs/klib/writer.c
+++ b/libs/klib/writer.c
@@ -110,7 +110,7 @@ LIB_EXPORT rc_t CC KWrtInit( const char* appname, uint32_t vers )
 
         ext = string_chr(appname, progname_z, '.');
 
-        if( ext != NULL ) {
+        if( appname != NULL ) {
             wrt_app_length = ext - appname;
         } else {
             wrt_app_length = progname_z;
@@ -207,8 +207,8 @@ rc_t RCLiteral ( rc_t self, char *buffer, size_t bsize, size_t *num_writ )
 #endif
     return string_printf ( buffer, bsize, num_writ
 #if _DEBUGGING
-        , "rc = %s:%u:$s:%u.%u.%u.%u.%u"
-        , GetRCFilename(), GetRCLineno (), GetRCFunction ()
+        , "rc = %s:$s:%u:%u.%u.%u.%u.%u"
+        , GetRCFilename(), GetRCFunction (), GetRCLineno ()
 #else
         , "rc = %u.%u.%u.%u.%u"
 #endif
@@ -255,7 +255,7 @@ LIB_EXPORT rc_t CC RCExplain2 ( rc_t rc, char *buffer, size_t bsize, size_t *num
         const char *function = GetRCFunction ();
         if ( function != NULL )
         {
-            len = snprintf(buffer + total, bsize - total, "%s:%u:%s: ", GetRCFilename(), GetRCLineno (), function );
+            len = snprintf(buffer + total, bsize - total, "%s:%s:%u: ", GetRCFilename(), function, GetRCLineno () );
             if( len < 0 || ( total + len ) >= bsize ) {
                 return RCLiteral ( rc, buffer, bsize, num_writ );
             }
diff --git a/libs/kns/KCurlFile.c b/libs/kns/KCurlFile.c
deleted file mode 100644
index 18ff995..0000000
--- a/libs/kns/KCurlFile.c
+++ /dev/null
@@ -1,716 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/* NOTE: uses VFS not KNS extern.h */
-#include <vfs/extern.h>
-
-struct KCurlFile;
-#define KFILE_IMPL struct KCurlFile
-#include <kfs/impl.h>
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <kns/manager.h>
-
-#include "kns_mgr_priv.h"
-
-#include <sysalloc.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define HTTP_RESPONSE_CODE_0_VALID false
-
-/*--------------------------------------------------------------------------
- * KCurFile
- */
-
-typedef struct KCurlFile
-{
-    KFile dad;
-    uint64_t file_size;
-    struct KNSManager *kns_mgr;
-    CURL *curl_handle;
-    bool file_size_valid;
-    bool verbose;
-    bool is_ftp;
-    char url[ 1 ];
-} KCurlFile;
-
-
-typedef struct ReadContext
-{
-    CURL *curl_handle;
-    uint8_t * buffer;
-    size_t buffer_size;
-    size_t num_read;
-    bool curl_handle_prepared;
-} ReadContext;
-
-static
-const char *curly_errstr ( CURLcode code )
-{
-    switch ( ( int ) code )
-    {
-#define CURL_CASE( c ) \
-        case c: return # c
-#define CURL_CASE2( c, old ) \
-        case old: return # c "(" #old ")"
-
-        CURL_CASE ( CURLE_OK );
-        CURL_CASE ( CURLE_UNSUPPORTED_PROTOCOL );
-        CURL_CASE ( CURLE_FAILED_INIT );
-        CURL_CASE ( CURLE_URL_MALFORMAT );
-        CURL_CASE2 ( CURLE_OBSOLETE4, CURLE_URL_MALFORMAT_USER );
-        CURL_CASE ( CURLE_COULDNT_RESOLVE_PROXY );
-        CURL_CASE ( CURLE_COULDNT_RESOLVE_HOST );
-        CURL_CASE ( CURLE_COULDNT_CONNECT );
-        CURL_CASE ( CURLE_FTP_WEIRD_SERVER_REPLY );
-        CURL_CASE2 ( CURLE_REMOTE_ACCESS_DENIED, CURLE_FTP_ACCESS_DENIED );
-        CURL_CASE2 ( CURLE_OBSOLETE10, CURLE_FTP_USER_PASSWORD_INCORRECT );
-        CURL_CASE ( CURLE_FTP_WEIRD_PASS_REPLY );
-        CURL_CASE2 ( CURLE_OBSOLETE12, CURLE_FTP_WEIRD_USER_REPLY );
-        CURL_CASE ( CURLE_FTP_WEIRD_PASV_REPLY );
-        CURL_CASE ( CURLE_FTP_WEIRD_227_FORMAT );
-        CURL_CASE ( CURLE_FTP_CANT_GET_HOST );
-        CURL_CASE2 ( CURLE_OBSOLETE16, CURLE_FTP_CANT_RECONNECT );
-        CURL_CASE2 ( CURLE_FTP_COULDNT_SET_TYPE, CURLE_FTP_COULDNT_SET_BINARY );
-        CURL_CASE ( CURLE_PARTIAL_FILE );
-        CURL_CASE ( CURLE_FTP_COULDNT_RETR_FILE );
-        CURL_CASE2 ( CURLE_OBSOLETE20, CURLE_FTP_WRITE_ERROR );
-        CURL_CASE2 ( CURLE_QUOTE_ERROR, CURLE_FTP_QUOTE_ERROR );
-        CURL_CASE ( CURLE_HTTP_RETURNED_ERROR );
-        CURL_CASE ( CURLE_WRITE_ERROR );
-        CURL_CASE2 ( CURLE_OBSOLETE24, CURLE_MALFORMAT_USER );
-        CURL_CASE2 ( CURLE_UPLOAD_FAILED, CURLE_FTP_COULDNT_STOR_FILE );
-        CURL_CASE ( CURLE_READ_ERROR );
-        CURL_CASE ( CURLE_OUT_OF_MEMORY );
-        CURL_CASE ( CURLE_OPERATION_TIMEDOUT );
-        CURL_CASE2 ( CURLE_OBSOLETE29, CURLE_FTP_COULDNT_SET_ASCII );
-        CURL_CASE ( CURLE_FTP_PORT_FAILED );
-        CURL_CASE ( CURLE_FTP_COULDNT_USE_REST );
-        CURL_CASE2 ( CURLE_OBSOLETE32, CURLE_FTP_COULDNT_GET_SIZE );
-        CURL_CASE2 ( CURLE_RANGE_ERROR, CURLE_HTTP_RANGE_ERROR );
-        CURL_CASE ( CURLE_HTTP_POST_ERROR );
-        CURL_CASE ( CURLE_SSL_CONNECT_ERROR );
-        CURL_CASE ( CURLE_BAD_DOWNLOAD_RESUME );
-        CURL_CASE ( CURLE_FILE_COULDNT_READ_FILE );
-        CURL_CASE ( CURLE_LDAP_CANNOT_BIND );
-        CURL_CASE ( CURLE_LDAP_SEARCH_FAILED );
-        CURL_CASE2 ( CURLE_OBSOLETE40, CURLE_LIBRARY_NOT_FOUND );
-        CURL_CASE ( CURLE_FUNCTION_NOT_FOUND );
-        CURL_CASE ( CURLE_ABORTED_BY_CALLBACK );
-        CURL_CASE ( CURLE_BAD_FUNCTION_ARGUMENT );
-        CURL_CASE2 ( CURLE_OBSOLETE44, CURLE_BAD_CALLING_ORDER );
-        CURL_CASE ( CURLE_INTERFACE_FAILED );
-        CURL_CASE2 ( CURLE_OBSOLETE46, CURLE_BAD_PASSWORD_ENTERED );
-        CURL_CASE ( CURLE_TOO_MANY_REDIRECTS );
-        CURL_CASE ( CURLE_UNKNOWN_TELNET_OPTION );
-        CURL_CASE ( CURLE_TELNET_OPTION_SYNTAX );
-        CURL_CASE2 ( CURLE_OBSOLETE50, CURLE_OBSOLETE );
-        CURL_CASE2 ( CURLE_PEER_FAILED_VERIFICATION, CURLE_SSL_PEER_CERTIFICATE );
-        CURL_CASE ( CURLE_GOT_NOTHING );
-        CURL_CASE ( CURLE_SSL_ENGINE_NOTFOUND );
-        CURL_CASE ( CURLE_SSL_ENGINE_SETFAILED );
-        CURL_CASE ( CURLE_SEND_ERROR );
-        CURL_CASE ( CURLE_RECV_ERROR );
-        CURL_CASE2 ( CURLE_OBSOLETE57, CURLE_SHARE_IN_USE );
-        CURL_CASE ( CURLE_SSL_CERTPROBLEM );
-        CURL_CASE ( CURLE_SSL_CIPHER );
-        CURL_CASE ( CURLE_SSL_CACERT );
-        CURL_CASE ( CURLE_BAD_CONTENT_ENCODING );
-        CURL_CASE ( CURLE_LDAP_INVALID_URL );
-        CURL_CASE ( CURLE_FILESIZE_EXCEEDED );
-        CURL_CASE2 ( CURLE_USE_SSL_FAILED, CURLE_FTP_SSL_FAILED );
-        CURL_CASE ( CURLE_SEND_FAIL_REWIND );
-        CURL_CASE ( CURLE_SSL_ENGINE_INITFAILED );
-        CURL_CASE ( CURLE_LOGIN_DENIED );
-        CURL_CASE ( CURLE_TFTP_NOTFOUND );
-        CURL_CASE ( CURLE_TFTP_PERM );
-        CURL_CASE2 ( CURLE_REMOTE_DISK_FULL, CURLE_TFTP_DISKFULL );
-        CURL_CASE ( CURLE_TFTP_ILLEGAL );
-        CURL_CASE ( CURLE_TFTP_UNKNOWNID );
-        CURL_CASE2 ( CURLE_REMOTE_FILE_EXISTS, CURLE_TFTP_EXISTS );
-        CURL_CASE ( CURLE_TFTP_NOSUCHUSER );
-        CURL_CASE ( CURLE_CONV_FAILED );
-        CURL_CASE ( CURLE_CONV_REQD );
-        CURL_CASE2 ( CURLE_SSL_CACERT_BADFILE, 77 );
-        CURL_CASE2 ( CURLE_REMOTE_FILE_NOT_FOUND, 78 );
-        CURL_CASE2 ( CURLE_SSH, 79 );        
-        CURL_CASE2 ( CURLE_SSL_SHUTDOWN_FAILED, 80 );
-        CURL_CASE2 ( CURLE_AGAIN, 81 );
-        CURL_CASE ( CURLE_SSL_CRL_BADFILE );
-        CURL_CASE2 ( CURLE_SSL_ISSUER_ERROR, 83 );
-    }
-
-    return "<UNKNOWN>";
-}
-
-
-/* Destroy
- */
-static rc_t CC KCurlFileDestroy( KCurlFile *self )
-{
-    self->kns_mgr->curl_easy_cleanup_fkt( self->curl_handle );
-    KNSManagerRelease( self->kns_mgr );
-    free ( self );
-    return 0;
-}
-
-
-static struct KSysFile* KCurlFileGetSysFile( const KCurlFile *self, uint64_t *offset )
-{
-    * offset = 0;
-    return NULL;
-}
-
-
-static rc_t KCurlFileRandomAccess( const KCurlFile *self )
-{
-    return 0;
-}
-
-
-static size_t CC dummy_callback( void *ptr, size_t size, size_t nmemb, void *data )
-{
-    ( void )ptr;
-    ( void )data;
-    return (size_t)( size * nmemb );
-}
-
-
-static size_t CC KCurlFileCallback( void *ptr, size_t size, size_t nmemb, void *data )
-{
-    size_t given_bytes = size * nmemb; /* calculate the size given in ptr */
-    ReadContext *ctx = ( ReadContext * )data;
-    if ( ctx != NULL && ctx->buffer != NULL && ctx->buffer_size > 0 )
-    {
-        if ( ( ctx->num_read + given_bytes ) > ctx->buffer_size )
-        {
-            /* the caller-provided buffer IS NOT enough... */
-            size_t to_copy = ( ctx->buffer_size - ctx->num_read );
-            if ( to_copy > 0 )
-            {
-                /* the caller-provided buffer can hold a part of it... */
-                if ( ctx->buffer )
-                {
-                    memcpy( &( ctx->buffer[ ctx->num_read ] ), ptr, to_copy );
-                    ctx->num_read += to_copy;
-                }
-            }
-        }
-        else
-        {
-            /* the caller-provided buffer IS enough... */
-            if ( ctx->buffer )
-            {
-                memcpy( &( ctx->buffer[ ctx->num_read ] ), ptr, given_bytes );
-                ctx->num_read += given_bytes;
-            }
-        }
-    }
-    return given_bytes;
-}
-
-
-/* helper to set a curl-option which is a long int */
-static rc_t set_curl_long_option( struct KNSManager *kns_mgr, CURL *curl,
-                                  CURLoption option, long int value, const char *err_txt )
-{
-    rc_t rc = 0;
-    CURLcode rcc = kns_mgr->curl_easy_setopt_fkt( curl, option, value );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, "curl_easy_setopt( $(t), $(v) ) failed with curl-error $(e)", 
-                                  "t=%s,v=%d,e=%d", err_txt, value, rcc ) );
-    }
-    return rc;
-}
-
-
-/* helper to set a curl-option which is a void pointert */
-static rc_t set_curl_void_ptr( struct KNSManager *kns_mgr, CURL *curl,
-                               CURLoption option, void * value, const char *err_txt )
-{
-    rc_t rc = 0;
-    CURLcode rcc = kns_mgr->curl_easy_setopt_fkt( curl, option, value );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, "curl_easy_setopt( $(t) ... void * ptr ) failed with curl-error $(e)",
-                                  "t=%s,e=%d", err_txt, rcc ) );
-    }
-    return rc;
-}
-
-
-static rc_t perform( struct KNSManager *kns_mgr, CURL *curl, const char * action, uint64_t pos, size_t len )
-{
-    rc_t rc = 0;
-    CURLcode rcc = kns_mgr->curl_easy_perform_fkt( curl );
-    if ( rcc != CURLE_OK && rcc != CURLE_PARTIAL_FILE )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, 
-        "curl_easy_perform( $(a), $(b).$(c) ) failed with curl-error '$(d)' ($(e))",
-        "a=%s,b=%lu,c=%zu,d=%s,e=%d", action, pos, len, curly_errstr ( rcc ), rcc ) );
-    }
-    return rc;
-}
-
-
-static rc_t check_response_code( struct KNSManager *kns_mgr, CURL *curl,  const char * action )
-{
-    rc_t rc = 0;
-    long response_code;
-
-    CURLcode rcc = kns_mgr->curl_easy_getinfo_fkt( curl, CURLINFO_RESPONSE_CODE, &response_code );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcAccessing, rcFileDesc, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, 
-        "curl_easy_getinfo( $(a) ) failed with curl-error $(c)",
-        "a=%s,c=%d", action, rcc ) );
-    }
-    else
-    {
-        switch ( response_code )
-        {
-
-            case 0    : if ( !HTTP_RESPONSE_CODE_0_VALID )  /* no response code available */
-                        {
-                            rc = RC( rcFS, rcFile, rcAccessing, rcFileDesc, rcInvalid );
-                            (void)PLOGERR( klogErr, ( klogErr, rc, "invalid response-code $(c)", "c=%d", response_code ) );
-                        }
-                        break;
-
-            case 200  :          /* OK */
-            case 206  :          /* Partial Content */
-            case 416  : break;   /* Requested Range Not Satisfiable */
-
-            case 404  : rc = RC( rcFS, rcFile, rcAccessing, rcFileDesc, rcNotFound );
-                        break;
-
-            default   : rc = RC( rcFS, rcFile, rcAccessing, rcFileDesc, rcInvalid );
-                        (void)PLOGERR( klogErr, ( klogErr, rc, "invalid response-code $(c)", "c=%d", response_code ) );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t prepare_curl( const KCurlFile *cself, ReadContext *ctx )
-{
-    rc_t rc = 0;
-
-    if ( !ctx->curl_handle_prepared )
-    {
-        ctx->curl_handle = cself->kns_mgr->curl_easy_init_fkt();
-        if ( ctx->curl_handle == NULL )
-        {
-            rc = RC( rcFS, rcFile, rcConstructing, rcParam, rcNull );
-            LOGERR( klogErr, rc, "cannot init curl" );
-        }
-        else
-            ctx->curl_handle_prepared = true;
-    }
-
-    if ( rc == 0 && cself->verbose )
-        rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_VERBOSE, 1, "CURLOPT_VERBOSE" );
-
-    if ( rc == 0 )
-    {
-        CURLcode rcc = cself->kns_mgr->curl_easy_setopt_fkt( ctx->curl_handle, CURLOPT_WRITEFUNCTION, KCurlFileCallback );
-        if ( rcc != CURLE_OK )
-        {
-            rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-            (void)PLOGERR( klogErr, ( klogErr, rc, "curl_easy_setopt( $(t) ... ptr ) failed", "t=%s", "CURLOPT_WRITEFUNCTION" ) );
-        }
-    }
-
-    if ( rc == 0 )
-        rc = set_curl_void_ptr( cself->kns_mgr, ctx->curl_handle, CURLOPT_URL, ( void * )cself->url, "CURLOPT_URL" );
-
-    if ( rc == 0 )
-    {
-        ctx->buffer = NULL;
-        ctx->buffer_size = 0;
-        ctx->num_read = 0;
-    }
-    return rc;
-}
-
-
-static rc_t get_content_length( struct KNSManager *kns_mgr, CURL *curl, uint64_t *size )
-{
-    rc_t rc = 0;
-    double double_size;
-    CURLcode rcc = kns_mgr->curl_easy_getinfo_fkt( curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &double_size );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_getinfo( CURLINFO_CONTENT_LENGTH_DOWNLOAD ) failed" );
-    }
-    else
-    {
-        *size = double_size;
-    }
-    return rc;
-}
-
-
-static rc_t DiscoverFileSize_HTTP( const KCurlFile *cself, ReadContext *ctx, uint64_t *size )
-{
-    rc_t rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_HEADER, 1, "CURLOPT_HEADER" );
-
-    if ( rc == 0 )
-        rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_NOBODY, 1, "CURLOPT_NOBODY" );
-
-    if ( rc == 0 )
-        rc = set_curl_void_ptr( cself->kns_mgr, ctx->curl_handle, CURLOPT_WRITEDATA, ctx, "CURLOPT_WRITEDATA" );
-
-    if ( rc == 0 )
-        rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_FOLLOWLOCATION, 1, "CURLOPT_FOLLOWLOCATION" );
-
-    if ( rc == 0 )
-        rc = perform( cself->kns_mgr, ctx->curl_handle, "filesize http", 0, 0 );
-
-    if ( rc == 0 )
-        rc = check_response_code( cself->kns_mgr, ctx->curl_handle, "filesize http" );
-
-    if ( rc == 0 )
-        rc = get_content_length( cself->kns_mgr, ctx->curl_handle, size );
-
-    return rc;
-}
-
-static rc_t DiscoverFileSize_FTP( const KCurlFile *cself, ReadContext *ctx, uint64_t *size )
-{
-    rc_t rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_NOBODY, 1, "CURLOPT_NOBODY" );
-
-    if ( rc == 0 )
-        rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_FILETIME, 1, "CURLOPT_FILETIME" );
-
-    if ( rc == 0 )
-        rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_FOLLOWLOCATION, 1, "CURLOPT_FOLLOWLOCATION" );
-
-    if ( rc == 0 )
-    {
-        CURLcode rcc = cself->kns_mgr->curl_easy_setopt_fkt( ctx->curl_handle, CURLOPT_HEADERFUNCTION, dummy_callback );
-        if ( rcc != CURLE_OK )
-        {
-            rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-            (void)PLOGERR( klogErr, ( klogErr, rc, "curl_easy_setopt( $(t) ... ptr ) failed", "t=%s", "CURLOPT_HEADERFUNCTION" ) );
-        }
-    }
-
-    if ( rc == 0 )
-        rc = set_curl_long_option( cself->kns_mgr, ctx->curl_handle, CURLOPT_HEADER, 0, "CURLOPT_HEADER" );
-
-    if ( rc == 0 )
-        rc = perform( cself->kns_mgr, ctx->curl_handle, "filesize ftp", 0, 0 );
-
-    if ( rc == 0 )
-        rc = get_content_length( cself->kns_mgr, ctx->curl_handle, size );
-
-    return rc;
-}
-
-
-static rc_t KCurlFileDiscoverSize( const KCurlFile *cself, uint64_t *size )
-{
-    ReadContext ctx;
-    rc_t rc;
-
-    memset( &ctx, 0, sizeof ctx );
-    rc = prepare_curl( cself, &ctx );
-    if ( rc == 0 )
-    {
-        if ( cself->is_ftp )
-            rc = DiscoverFileSize_FTP( cself, &ctx, size );
-        else
-            rc = DiscoverFileSize_HTTP( cself, &ctx, size );
-
-        if ( rc == 0 )
-        {
-            KCurlFile *self = ( KCurlFile * )cself;
-
-            self->file_size = *size;
-            self->file_size_valid = true;
-    /*        OUTMSG(( ">>>>>>>>>>>>>> and the file size is: %lu\n", self->file_size )); */
-        }
-
-        if ( ctx.curl_handle_prepared )
-            cself->kns_mgr->curl_easy_cleanup_fkt( ctx.curl_handle );
-    }
-    return rc;
-}
-
-
-static rc_t KCurlFileSize( const KCurlFile *self, uint64_t *size )
-{
-    rc_t rc = 0;
-    if ( self->file_size_valid )
-        *size = self->file_size;
-    else
-        rc = KCurlFileDiscoverSize( self, size );
-    return rc;
-}
-
-
-static rc_t KCurlFileSetSize( KCurlFile *self, uint64_t size )
-{
-    return RC ( rcFS, rcFile, rcUpdating, rcFile, rcReadonly );
-}
-
-
-static rc_t KCurlFileRead( const KCurlFile *cself, uint64_t pos,
-                           void *buffer, size_t bsize, size_t *num_read )
-{
-    ReadContext ctx;
-    rc_t rc;
-
-    if ( cself->file_size_valid && cself->file_size > 0 )
-    {
-        /* we know the size of the remote file */
-        if ( pos >= cself->file_size )
-        {
-            /* the caller requested to read beyond the end of the file */
-            *num_read = 0;
-            return 0;
-        }
-        else if ( pos + bsize > cself->file_size )
-        {
-            /* the caller requested to start reading inside the file, but bsize reaches beyond the end of the file */
-            bsize = ( cself->file_size - pos );
-        }
-    }
-
-    ctx.curl_handle = cself->curl_handle;
-    ctx.curl_handle_prepared = true;
-    rc = prepare_curl( cself, &ctx );
-    if ( rc == 0 )
-    {
-        char s_range[ 64 ];
-        size_t s_range_writ;
-        uint64_t to = pos;
-        to += bsize;
-        to --;
-
-        /* perform range-read... */
-        rc = string_printf( s_range, sizeof s_range, &s_range_writ, "%lu-%lu", pos, to );
-        if ( rc == 0 )
-        {
-            ReadContext ctx;
-            CURLcode rcc;
-
-            ctx.buffer = buffer;
-            ctx.buffer_size = bsize;
-            ctx.num_read = 0;
-
-            rcc = cself->kns_mgr->curl_easy_setopt_fkt( cself->curl_handle, CURLOPT_WRITEDATA, (void *)&ctx );
-            if ( rcc != CURLE_OK )
-            {
-                rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
-                LOGERR( klogErr, rc, "curl_easy_setopt( CURLOPT_WRITEDATA ) failed" );
-            }
-
-            if ( rc == 0 )
-                rc = set_curl_long_option( cself->kns_mgr, cself->curl_handle, CURLOPT_CONNECTTIMEOUT, 10, "CURLOPT_CONNECTTIMEOUT" );
-            if ( rc == 0 )
-                rc = set_curl_long_option( cself->kns_mgr, cself->curl_handle, CURLOPT_TIMEOUT, 10, "CURLOPT_TIMEOUT" );
-            if ( rc == 0 )
-                rc = set_curl_long_option( cself->kns_mgr, cself->curl_handle, CURLOPT_FOLLOWLOCATION, 1, "CURLOPT_FOLLOWLOCATION" );
-
-            if ( rc == 0 )
-            {
-                rcc = cself->kns_mgr->curl_easy_setopt_fkt( cself->curl_handle, CURLOPT_RANGE, (void*)s_range );
-                if ( rcc != CURLE_OK )
-                {
-                    rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
-                    LOGERR( klogErr, rc, "curl_easy_setopt( CURLOPT_RANGE ) failed" );
-                }
-            }
-
-            if ( rc == 0 )
-                rc = perform( cself->kns_mgr, cself->curl_handle, "FileRead", pos, bsize );
-
-            if ( rc == 0 )
-            {
-                long response_code;
-                rcc = cself->kns_mgr->curl_easy_getinfo_fkt( cself->curl_handle, CURLINFO_RESPONSE_CODE, &response_code );
-                if ( rcc != CURLE_OK )
-                {
-                    rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
-                    LOGERR( klogErr, rc, "curl_easy_getinfo( RESPONSE_CODE ) failed" );
-                }
-                else
-                {
-                    if ( cself->is_ftp )
-                    {
-                        switch ( response_code )
-                        {
-                            case 0    : if ( !HTTP_RESPONSE_CODE_0_VALID )  /* no response code available */
-                                        {
-                                            rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
-                                            (void)PLOGERR( klogErr, ( klogErr, rc, "invalid response-code $(c)", "c=%d", response_code ) );
-                                        }
-                                        break;
-
-                            case 226  :
-                            case 213  :
-                            case 450  :          /* Transfer aborted */
-                            case 451  : break;
-
-                            default : rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
-                                      (void)PLOGERR( klogErr, ( klogErr, rc, "invalid response-code $(c)", "c=%d", response_code ) );
-                        }
-                    }
-                    else
-                    {
-                        switch ( response_code )
-                        {
-                            case 0    : if ( !HTTP_RESPONSE_CODE_0_VALID )  /* no response code available */
-                                        {
-                                            rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
-                                            (void)PLOGERR( klogErr, ( klogErr, rc, "invalid response-code $(c)", "c=%d", response_code ) );
-                                        }
-                                        break;
-
-                            case 416 :          /* Requested Range Not Satisfiable */
-                                       ctx.num_read = 0;
-                            case 200 :          /* OK */
-                            case 206 :          /* Partial Content */
-                                       break;
-
-                            case 404 : rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcNotFound );
-                                       break;
-
-                            default : rc = RC( rcFS, rcFile, rcReading, rcFileDesc, rcInvalid );
-                                      (void)PLOGERR( klogErr, ( klogErr, rc, "invalid response-code $(c)", "c=%d", response_code ) );
-                        }
-                    }
-                }
-            }
-            if ( rc == 0 )
-                *num_read = ctx.num_read;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t KCurlFileWrite( KCurlFile *self, uint64_t pos,
-                            const void *buffer, size_t size, size_t *num_writ )
-{
-    return RC ( rcFS, rcFile, rcUpdating, rcInterface, rcUnsupported );
-}
-
-
-static KFile_vt_v1 vtKCurlFile =
-{
-    /* version 1.0 */
-    1, 0,
-
-    /* start minor version 0 methods */
-    KCurlFileDestroy,
-    KCurlFileGetSysFile,
-    KCurlFileRandomAccess,
-    KCurlFileSize,
-    KCurlFileSetSize,
-    KCurlFileRead,
-    KCurlFileWrite
-    /* end minor version 0 methods */
-};
-
-
-LIB_EXPORT rc_t CC KCurlFileMake( const KFile **fp, const char * url, bool verbose )
-{
-    rc_t rc = 0;
-    KCurlFile *f;
-
-    if ( url == NULL || url[ 0 ] == 0 )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        PLOGERR( klogInt, ( klogInt, rc, "invalid url >$(URL)<", "URL=%s", url ) );
-    }
-    else
-    {
-        size_t url_len = string_size( url ) + 1;
-        f = calloc ( ( sizeof *f ) + url_len, 1 );
-        if ( f == NULL )
-        {
-            rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-            LOGERR( klogErr, rc, "out of memory" );
-        }
-        else
-        {
-            rc = KNSManagerMake( &f->kns_mgr );
-            if ( rc == 0 )
-            {
-                rc = KNSManagerAvail( f->kns_mgr );
-                if ( rc == 0 )
-                {
-                    rc = KFileInit( &f ->dad, (const union KFile_vt *)&vtKCurlFile, "KCurlFile", url, true, false );
-                    if ( rc == 0 )
-                    {
-                        ReadContext ctx;
-                        uint64_t file_size;
-
-                        memset( &ctx, 0, sizeof( ctx ) ); /* zero-out the content */
-
-                        string_copy( f->url, url_len, url, url_len );
-                        f->verbose = verbose;
-                        f->is_ftp = ( url_len >= 4 ) ? ( strcase_cmp ( f->url, url_len, "ftp:", 4, 4 ) == 0 ) : false;
-
-                        rc = KCurlFileDiscoverSize( f, &file_size );
-
-                        if ( rc == 0 )
-                        {
-                            rc = prepare_curl( f, &ctx );
-                            if ( rc == 0 )
-                            {
-                                f->curl_handle = ctx.curl_handle;
-                                *fp = & f -> dad;
-                                return rc;
-                            }
-                            else
-                            {
-                                KCurlFileDestroy( f );
-                                f = NULL;
-                            }
-                        }
-                    }
-                }
-            }
-            free( f );
-        }
-    }
-    return rc;
-}
diff --git a/libs/kns/KCurlRequest.c b/libs/kns/KCurlRequest.c
deleted file mode 100644
index 58b6a3c..0000000
--- a/libs/kns/KCurlRequest.c
+++ /dev/null
@@ -1,438 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kns/extern.h>
-
-#include <klib/refcount.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <klib/data-buffer.h>
-#include <kns/manager.h>
-#include <kns/KCurlRequest.h>
-
-#include "kns_mgr_priv.h"
-
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-
-static const char kcurlrequest_classname [] = "KCurlRequest";
-
-
-typedef struct KCurlRequest
-{
-    KRefcount refcount;
-    const struct KNSManager * kns_mgr;
-    CURL * curl_handle;
-    KDataBuffer fields;
-    uint64_t fields_chars;
-} KCurlRequest;
-
-
-static rc_t KCurlRequestSetUrl( struct KCurlRequest *self, const char * url )
-{
-    rc_t rc = 0;
-    CURLcode rcc = self->kns_mgr->curl_easy_setopt_fkt( self->curl_handle, CURLOPT_URL, (void *)url );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt( CURLOPT_URL ) failed" );
-    }
-    return rc;
-}
-
-
-static rc_t set_curl_long_option( struct KCurlRequest *self, CURLoption option, long int value, const char *err_txt )
-{
-    rc_t rc = 0;
-    CURLcode rcc = self->kns_mgr->curl_easy_setopt_fkt( self->curl_handle, option, value );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, "curl_easy_setopt( $(t), $(v) ) failed with curl-error $(e)", 
-                                  "t=%s,v=%d,e=%d", err_txt, value, rcc ) );
-    }
-    return rc;
-}
-
-
-static rc_t set_verbose( struct KCurlRequest *self )
-{
-    return set_curl_long_option( self, CURLOPT_VERBOSE, 1, "CURLOPT_VERBOSE" );
-}
-
-
-LIB_EXPORT rc_t CC KNSManagerMakeRequest( const struct KNSManager *kns_mgr, struct KCurlRequest **self, const char * url, bool verbose )
-{
-    rc_t rc = 0;
-    struct KCurlRequest *tmp = calloc ( sizeof *tmp, 1 );
-    if ( tmp == NULL )
-    {
-        rc = RC ( rcFS, rcFile, rcConstructing, rcMemory, rcExhausted );
-        LOGERR( klogErr, rc, "out of memory" );
-    }
-    else
-    {
-        rc = KNSManagerAvail( kns_mgr );
-        if ( rc == 0 )
-        {
-            tmp->kns_mgr = kns_mgr;
-            rc = KNSManagerAddRef ( kns_mgr );
-            if ( rc == 0 )
-            {
-                tmp->curl_handle = tmp->kns_mgr->curl_easy_init_fkt();
-                if ( tmp->curl_handle == NULL )
-                {
-                    rc = RC( rcFS, rcFile, rcConstructing, rcParam, rcNull );
-                    LOGERR( klogErr, rc, "cannot init curl" );
-                }
-                else
-                {
-                    rc = KCurlRequestSetUrl( tmp, url );
-                    if ( rc == 0 )
-                    {
-                        if ( verbose )
-                            rc = set_verbose( tmp );
-                        memset( &tmp->fields, 0, sizeof tmp->fields );
-                        tmp->fields.elem_bits = 8;
-                        if ( rc == 0 )
-                        {
-                            KRefcountInit( &tmp->refcount, 1, "KNS", "make", kcurlrequest_classname );
-                            *self = tmp;
-                            return rc;      /* !!!! */
-                        }
-                    }
-                }
-                KNSManagerRelease( kns_mgr );
-            }
-        }
-        free( tmp );
-    }
-    return rc;
-}
-
-
-static rc_t KCurlRequestDestroy( struct KCurlRequest *self )
-{
-    rc_t rc;
-    self->kns_mgr->curl_easy_cleanup_fkt( self->curl_handle );
-    rc = KNSManagerRelease( self->kns_mgr );
-    KDataBufferWhack( &self->fields );
-    free ( self );
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KCurlRequestAddRef ( const struct KCurlRequest *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd( &self->refcount, kcurlrequest_classname ) )
-        {
-        case krefOkay:
-            break;
-        case krefZero:
-            return RC( rcNS, rcFile, rcAttaching, rcRefcount, rcIncorrect);
-        case krefLimit:
-            return RC( rcNS, rcFile, rcAttaching, rcRefcount, rcExhausted);
-        case krefNegative:
-            return RC( rcNS, rcFile, rcAttaching, rcRefcount, rcInvalid);
-        default:
-            return RC( rcNS, rcFile, rcAttaching, rcRefcount, rcUnknown);
-        }
-    }
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC KCurlRequestRelease( const struct KCurlRequest *self )
-{
-    rc_t rc = 0;
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop( &self->refcount, kcurlrequest_classname ) )
-        {
-        case krefOkay:
-        case krefZero:
-            break;
-        case krefWhack:
-            rc = KCurlRequestDestroy( ( struct KCurlRequest * )self );
-            break;
-        case krefNegative:
-            return RC( rcNS, rcFile, rcAttaching, rcRefcount, rcInvalid );
-        default:
-            rc = RC( rcNS, rcFile, rcAttaching, rcRefcount, rcUnknown );
-            break;            
-        }
-    }
-    return rc;
-}
-
-
-static rc_t perform( const struct KNSManager *kns_mgr, CURL *curl, const char * action )
-{
-    rc_t rc = 0;
-    CURLcode rcc = kns_mgr->curl_easy_perform_fkt( curl );
-    if ( rcc != CURLE_OK && rcc != CURLE_PARTIAL_FILE )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, 
-        "curl_easy_perform( $(a) ) failed with curl-error $(c)",
-        "a=%s,b=%d", action, rcc ) );
-    }
-    return rc;
-}
-
-
-static rc_t check_response_code( const struct KNSManager *kns_mgr, CURL *curl,  const char * action )
-{
-    rc_t rc = 0;
-    long response_code;
-
-    CURLcode rcc = kns_mgr->curl_easy_getinfo_fkt( curl, CURLINFO_RESPONSE_CODE, &response_code );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, 
-        "curl_easy_getinfo( $(a) ) failed with curl-error $(c)",
-        "a=%s,c=%d", action, rcc ) );
-    }
-    else
-    {
-        switch ( response_code )
-        {
-            case 0   :          /* no response code available */
-            case 200 : break;   /* OK */
-
-            case 404 : rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcNotFound );
-                       break;
-
-            default : rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-                      (void)PLOGERR( klogErr, ( klogErr, rc, "invalid response-code $(c)", "c=%d", response_code ) );
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KCurlRequestAddSFields( struct KCurlRequest *self, const String * fields )
-{
-    rc_t rc = 0;
-
-    if ( self == NULL )
-        return RC( rcNS, rcFile, rcReading, rcSelf, rcNull );
-    if ( fields == NULL || fields->size == 0 )
-        return RC( rcNS, rcFile, rcReading, rcParam, rcNull );
-
-    if ( self->fields_chars == 0 )
-    {
-        rc = KDataBufferResize ( &self->fields, fields->size + 1 );
-        if ( rc == 0 )
-        {
-            memcpy( self->fields.base, fields->addr, fields->size );
-            ( (uint8_t *)self->fields.base)[ fields->size ] = 0;
-            self->fields_chars = fields->size;
-        }
-    }
-    else
-    {
-        rc = KDataBufferResize ( &self->fields, self->fields_chars + fields->size + 1 );
-        if ( rc == 0 )
-        {
-            ( (uint8_t *)self->fields.base)[ self->fields_chars ] = '&';
-            memcpy( &( ( (uint8_t *)self->fields.base)[ self->fields_chars + 1 ] ), fields->addr, fields->size );
-            self->fields_chars += ( fields->size + 1 );
-            ( (uint8_t *)self->fields.base)[ self->fields_chars ] = 0;
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KCurlRequestAddFields( struct KCurlRequest *self, const char * fields )
-{
-    String s;
-
-    if ( self == NULL )
-        return RC( rcNS, rcFile, rcReading, rcSelf, rcNull );
-    if ( fields == NULL || fields[ 0 ] == 0 )
-        return RC( rcNS, rcFile, rcReading, rcParam, rcNull );
-
-    StringInitCString( &s, fields );
-    return KCurlRequestAddSFields( self, &s );
-}
-
-
-LIB_EXPORT rc_t CC KCurlRequestAddSField( struct KCurlRequest *self, const String * name, const String * value )
-{
-    rc_t rc = 0;
-    size_t needed;
-
-    if ( self == NULL )
-        return RC( rcNS, rcFile, rcReading, rcSelf, rcNull );
-    if ( name == NULL || name->size == 0 || value == NULL || value->size == 0 )
-        return RC( rcNS, rcFile, rcReading, rcParam, rcNull );
-
-    needed = ( self->fields_chars + name->size + value->size + 3 );
-    rc = KDataBufferResize ( &self->fields, needed );
-    if ( rc == 0 )
-    {
-        size_t num_writ;
-        if ( self->fields_chars == 0 )
-        {
-            rc = string_printf ( ( char * )self->fields.base, needed, &num_writ, 
-                                 "%S=%S", name, value );
-        }
-        else
-        {
-            uint8_t * dst = ( uint8_t * )self->fields.base;
-            rc = string_printf ( ( char * )( &dst[ self->fields_chars ] ), needed - self->fields_chars, &num_writ, 
-                                 "&%S=%S", name, value );
-        }
-        if ( rc == 0 )
-            self->fields_chars += num_writ;
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KCurlRequestAddField( struct KCurlRequest *self, const char * name, const char * value )
-{
-    String s_name, s_value;
-
-    if ( self == NULL )
-        return RC( rcNS, rcFile, rcReading, rcSelf, rcNull );
-    if ( name == NULL || name[ 0 ] == 0 || value == NULL || value[ 0 ] == 0 )
-        return RC( rcNS, rcFile, rcReading, rcParam, rcNull );
-
-    StringInitCString( &s_name, name );
-    StringInitCString( &s_value, value );
-    return KCurlRequestAddSField( self, &s_name, &s_value );
-}
-
-
-static rc_t KCurlRequestSetFields( struct KCurlRequest *self )
-{
-    rc_t rc = 0;
-    CURLcode rcc = self->kns_mgr->curl_easy_setopt_fkt( self->curl_handle, CURLOPT_POSTFIELDS, (void *)(self->fields.base) );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt( CURLOPT_POSTFIELDS ) failed" );
-    }
-    return rc;
-}
-
-
-typedef struct ReadContext
-{
-    KDataBuffer * buffer;
-    size_t num_read;
-} ReadContext;
-
-
-static size_t CC KCurlFileCallback( void *ptr, size_t size, size_t nmemb, void *data )
-{
-    rc_t rc = 0;
-    size_t given_bytes = size * nmemb; /* calculate the size given in ptr */
-    ReadContext *ctx = ( ReadContext * )data;
-    if ( ctx != NULL && ctx->buffer != NULL )
-    {
-        rc = KDataBufferResize ( ctx->buffer, ctx->num_read + given_bytes + 2 );
-        if ( rc == 0 )
-        {
-            memcpy( &( ( (uint8_t *)ctx->buffer->base )[ ctx->num_read ] ), ptr, given_bytes );
-            ctx->num_read += given_bytes;
-        }
-    }
-    return given_bytes;
-}
-
-
-LIB_EXPORT rc_t CC KCurlRequestPerform( struct KCurlRequest *self, KDataBuffer * buffer )
-{
-    CURLcode rcc;
-    ReadContext ctx;
-    rc_t rc = 0;
-
-    if ( buffer == NULL )
-        return RC( rcNS, rcFile, rcReading, rcParam, rcNull );
-
-    memset ( buffer, 0, sizeof * buffer );
-
-    if ( self == NULL )
-        return RC( rcNS, rcFile, rcReading, rcSelf, rcNull );
-
-    rc = KDataBufferMakeBytes ( buffer, 0 );
-    if ( rc != 0 )
-        return rc;
-
-    ctx.buffer = buffer;
-    ctx.num_read = 0;
-
-    rcc = self->kns_mgr->curl_easy_setopt_fkt( self->curl_handle, CURLOPT_WRITEDATA, (void *)&ctx );
-    if ( rcc != CURLE_OK )
-    {
-        rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt( CURLOPT_WRITEDATA ) failed" );
-    }
-
-    if ( rc == 0 )
-    {
-        CURLcode rcc = self->kns_mgr->curl_easy_setopt_fkt( self->curl_handle, CURLOPT_WRITEFUNCTION, KCurlFileCallback );
-        if ( rcc != CURLE_OK )
-        {
-            rc = RC( rcFS, rcFile, rcConstructing, rcFileDesc, rcInvalid );
-            LOGERR( klogErr, rc, "curl_easy_setopt( CURLOPT_WRITEFUNCTION ) failed" );
-        }
-    }
-
-    if ( rc == 0 )
-        rc = set_curl_long_option( self, CURLOPT_FOLLOWLOCATION, 1, "CURLOPT_FOLLOWLOCATION" );
-
-    if ( rc == 0 )
-        rc = KCurlRequestSetFields( self );
-
-    if ( rc == 0 )
-        rc = perform( self->kns_mgr, self->curl_handle, "POST request" );
-
-    if ( rc == 0 )
-        rc = check_response_code( self->kns_mgr, self->curl_handle, "POST request" );
-
-    if ( rc == 0 )
-    {
-        buffer->elem_count = ctx.num_read;
-        ( ( uint8_t * )buffer->base )[ ctx.num_read ] = 0;
-    }
-
-    return rc;
-}
diff --git a/libs/kns/Makefile b/libs/kns/Makefile
deleted file mode 100644
index 5000851..0000000
--- a/libs/kns/Makefile
+++ /dev/null
@@ -1,125 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-default: all
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = libs/kns
-
-INT_LIBS = \
-
-EXT_LIBS = \
-	libkns \
-	libkurl
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-include $(TOP)/build/Makefile.env
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-
-# we are building it on all platforms now, because dependency on libcurl is removed
-all std: makedirs
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(INT_LIBS): makedirs
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_LIBS): makedirs
-	@ $(MAKE_CMD) $(LIBDIR)/$@
-
-.PHONY: all std $(ALL_LIBS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
-	$(addprefix $(LIBDIR)/,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# kns
-#
-$(LIBDIR)/libkns: $(addprefix $(LIBDIR)/libkns.,$(LIBEXT))
-
-KNS_SRC = \
-	kns_manager \
-	stream \
-	stream-from-files \
-	stream-from-streams \
-#	sysstream \
-
-KNS_OBJ = \
-	$(addsuffix .$(LOBX),$(KNS_SRC))
-
-KNS_LIB = \
-    -lkfs \
-	-dklib
-
-$(LIBDIR)/libkns.$(SHLX): $(KNS_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(KNS_LIB)
-
-$(LIBDIR)/libkns.$(LIBX): $(KNS_OBJ)
-	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(KNS_LIB)
-
-
-#-------------------------------------------------------------------------------
-# kurl
-#
-$(LIBDIR)/libkurl: $(addprefix $(LIBDIR)/libkurl.,$(LIBEXT))
-
-KURL_SRC = \
-	KCurlFile \
-	KCurlRequest \
-	url-fetcher \
-	url-fetcher-curl \
-	entrez-fetcher
-
-KURL_OBJ = \
-	$(addsuffix .$(LOBX),$(KURL_SRC))
-
-KURL_LIB = \
-	-skns \
-	-dkfs \
-	-dklib \
-	-dz
-
-$(LIBDIR)/libkurl.$(SHLX): $(KURL_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(KURL_LIB)
-
-$(LIBDIR)/libkurl.$(LIBX): $(KURL_OBJ)
-	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(KURL_LIB)
diff --git a/libs/kns/curlhdr/curl.h b/libs/kns/curlhdr/curl.h
deleted file mode 100644
index 1cfc7fa..0000000
--- a/libs/kns/curlhdr/curl.h
+++ /dev/null
@@ -1,1600 +0,0 @@
-#ifndef __CURL_CURL_H
-#define __CURL_CURL_H
-/***************************************************************************
- *                                  _   _ ____  _
- *  Project                     ___| | | |  _ \| |
- *                             / __| | | | |_) | |
- *                            | (__| |_| |  _ <| |___
- *                             \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel at haxx.se>, et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: curl.h,v 1.1 2012/11/09 17:54:52 rodarmer Exp $
- ***************************************************************************/
-
-/* If you have problems, all libcurl docs and details are found here:
-   http://curl.haxx.se/libcurl/
-*/
-
-#include "curlver.h" /* the libcurl version defines */
-
-#include <stdio.h>
-#include <limits.h>
-
-/* The include stuff here below is mainly for time_t! */
-#ifdef vms
-# include <types.h>
-# include <time.h>
-#else
-# include <sys/types.h>
-# include <time.h>
-#endif /* defined (vms) */
-
-typedef void CURL;
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/*
- * Decorate exportable functions for Win32 DLL linking.
- * This avoids using a .def file for building libcurl.dll.
- */
-#if (defined(WIN32) || defined(_WIN32)) && !defined(CURL_STATICLIB)
-#if defined(BUILDING_LIBCURL)
-#define CURL_EXTERN  __declspec(dllexport)
-#else
-#define CURL_EXTERN  __declspec(dllimport)
-#endif
-#else
-
-#ifdef CURL_HIDDEN_SYMBOLS
-/*
- * This definition is used to make external definitions visibile in the
- * shared library when symbols are hidden by default.  It makes no
- * difference when compiling applications whether this is set or not,
- * only when compiling the library.
- */
-#define CURL_EXTERN CURL_EXTERN_SYMBOL
-#else
-#define CURL_EXTERN
-#endif
-#endif
-
-/*
- * We want the typedef curl_off_t setup for large file support on all
- * platforms. We also provide a CURL_FORMAT_OFF_T define to use in *printf
- * format strings when outputting a variable of type curl_off_t.
- *
- * Note: "pocc -Ze" is MSVC compatibily mode and this sets _MSC_VER!
- */
-
-#if (defined(_MSC_VER) && !defined(__POCC__)) || (defined(__LCC__) && defined(WIN32))
-/* MSVC */
-#ifdef _WIN32_WCE
-  typedef long curl_off_t;
-#define CURL_FORMAT_OFF_T "%ld"
-#else
-  typedef signed __int64 curl_off_t;
-#define CURL_FORMAT_OFF_T "%I64d"
-#endif
-#else /* (_MSC_VER && !__POCC__) || (__LCC__ && WIN32) */
-#if (defined(__GNUC__) && defined(WIN32)) || defined(__WATCOMC__)
-/* gcc on windows or Watcom */
-  typedef long long curl_off_t;
-#define CURL_FORMAT_OFF_T "%I64d"
-#else /* GCC or Watcom on Windows  */
-
-/* "normal" POSIX approach, do note that this does not necessarily mean that
-   the type is >32 bits, see the SIZEOF_CURL_OFF_T define for that! */
-  typedef off_t curl_off_t;
-
-/* Check a range of defines to detect large file support. On Linux it seems
-   none of these are set by default, so if you don't explicitly switches on
-   large file support, this define will be made for "small file" support. */
-#ifndef _FILE_OFFSET_BITS
-#define _FILE_OFFSET_BITS 0 /* to prevent warnings in the check below */
-#define UNDEF_FILE_OFFSET_BITS
-#endif
-#ifndef FILESIZEBITS
-#define FILESIZEBITS 0 /* to prevent warnings in the check below */
-#define UNDEF_FILESIZEBITS
-#endif
-
-#if defined(_LARGE_FILES) || (_FILE_OFFSET_BITS > 32) || (FILESIZEBITS > 32) \
-   || defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE)
-  /* For now, we assume at least one of these to be set for large files to
-     work! */
-#define CURL_FORMAT_OFF_T "%lld"
-#else /* LARGE_FILE support */
-#define CURL_FORMAT_OFF_T "%ld"
-#endif
-#endif /* GCC or Watcom on Windows */
-#endif /* (_MSC_VER && !__POCC__) || (__LCC__ && WIN32) */
-
-#ifdef UNDEF_FILE_OFFSET_BITS
-/* this was defined above for our checks, undefine it again */
-#undef _FILE_OFFSET_BITS
-#endif
-
-#ifdef UNDEF_FILESIZEBITS
-/* this was defined above for our checks, undefine it again */
-#undef FILESIZEBITS
-#endif
-
-struct curl_httppost {
-  struct curl_httppost *next;       /* next entry in the list */
-  char *name;                       /* pointer to allocated name */
-  long namelength;                  /* length of name length */
-  char *contents;                   /* pointer to allocated data contents */
-  long contentslength;              /* length of contents field */
-  char *buffer;                     /* pointer to allocated buffer contents */
-  long bufferlength;                /* length of buffer field */
-  char *contenttype;                /* Content-Type */
-  struct curl_slist* contentheader; /* list of extra headers for this form */
-  struct curl_httppost *more;       /* if one field name has more than one
-                                       file, this link should link to following
-                                       files */
-  long flags;                       /* as defined below */
-#define HTTPPOST_FILENAME (1<<0)    /* specified content is a file name */
-#define HTTPPOST_READFILE (1<<1)    /* specified content is a file name */
-#define HTTPPOST_PTRNAME (1<<2)     /* name is only stored pointer
-                                       do not free in formfree */
-#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer
-                                       do not free in formfree */
-#define HTTPPOST_BUFFER (1<<4)      /* upload file from buffer */
-#define HTTPPOST_PTRBUFFER (1<<5)   /* upload file from pointer contents */
-
-  char *showfilename;               /* The file name to show. If not set, the
-                                       actual file name will be used (if this
-                                       is a file part) */
-};
-
-typedef int (*curl_progress_callback)(void *clientp,
-                                      double dltotal,
-                                      double dlnow,
-                                      double ultotal,
-                                      double ulnow);
-
-  /* Tests have proven that 20K is a very bad buffer size for uploads on
-     Windows, while 16K for some odd reason performed a lot better. */
-#define CURL_MAX_WRITE_SIZE 16384
-
-typedef size_t (*curl_write_callback)(char *buffer,
-                                      size_t size,
-                                      size_t nitems,
-                                      void *outstream);
-
-/* This is a return code for the read callback that, when returned, will
-   signal libcurl to immediately abort the current transfer. */
-#define CURL_READFUNC_ABORT 0x10000000
-typedef size_t (*curl_read_callback)(char *buffer,
-                                      size_t size,
-                                      size_t nitems,
-                                      void *instream);
-
-
-#ifndef CURL_NO_OLDIES
-  /* not used since 7.10.8, will be removed in a future release */
-typedef int (*curl_passwd_callback)(void *clientp,
-                                    const char *prompt,
-                                    char *buffer,
-                                    int buflen);
-#endif
-
-typedef enum {
-  CURLIOE_OK,            /* I/O operation successful */
-  CURLIOE_UNKNOWNCMD,    /* command was unknown to callback */
-  CURLIOE_FAILRESTART,   /* failed to restart the read */
-  CURLIOE_LAST           /* never use */
-} curlioerr;
-
-typedef enum  {
-  CURLIOCMD_NOP,         /* no operation */
-  CURLIOCMD_RESTARTREAD, /* restart the read stream from start */
-  CURLIOCMD_LAST         /* never use */
-} curliocmd;
-
-typedef curlioerr (*curl_ioctl_callback)(CURL *handle,
-                                         int cmd,
-                                         void *clientp);
-
-/*
- * The following typedef's are signatures of malloc, free, realloc, strdup and
- * calloc respectively.  Function pointers of these types can be passed to the
- * curl_global_init_mem() function to set user defined memory management
- * callback routines.
- */
-typedef void *(*curl_malloc_callback)(size_t size);
-typedef void (*curl_free_callback)(void *ptr);
-typedef void *(*curl_realloc_callback)(void *ptr, size_t size);
-typedef char *(*curl_strdup_callback)(const char *str);
-typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size);
-
-/* the kind of data that is passed to information_callback*/
-typedef enum {
-  CURLINFO_TEXT = 0,
-  CURLINFO_HEADER_IN,    /* 1 */
-  CURLINFO_HEADER_OUT,   /* 2 */
-  CURLINFO_DATA_IN,      /* 3 */
-  CURLINFO_DATA_OUT,     /* 4 */
-  CURLINFO_SSL_DATA_IN,  /* 5 */
-  CURLINFO_SSL_DATA_OUT, /* 6 */
-  CURLINFO_END
-} curl_infotype;
-
-typedef int (*curl_debug_callback)
-       (CURL *handle,      /* the handle/transfer this concerns */
-        curl_infotype type, /* what kind of data */
-        char *data,        /* points to the data */
-        size_t size,       /* size of the data pointed to */
-        void *userptr);    /* whatever the user please */
-
-/* All possible error codes from all sorts of curl functions. Future versions
-   may return other values, stay prepared.
-
-   Always add new return codes last. Never *EVER* remove any. The return
-   codes must remain the same!
- */
-
-typedef enum {
-  CURLE_OK = 0,
-  CURLE_UNSUPPORTED_PROTOCOL,    /* 1 */
-  CURLE_FAILED_INIT,             /* 2 */
-  CURLE_URL_MALFORMAT,           /* 3 */
-  CURLE_URL_MALFORMAT_USER,      /* 4 - NOT USED */
-  CURLE_COULDNT_RESOLVE_PROXY,   /* 5 */
-  CURLE_COULDNT_RESOLVE_HOST,    /* 6 */
-  CURLE_COULDNT_CONNECT,         /* 7 */
-  CURLE_FTP_WEIRD_SERVER_REPLY,  /* 8 */
-  CURLE_FTP_ACCESS_DENIED,       /* 9 a service was denied by the FTP server
-                                    due to lack of access - when login fails
-                                    this is not returned. */
-  CURLE_FTP_USER_PASSWORD_INCORRECT, /* 10 - NOT USED */
-  CURLE_FTP_WEIRD_PASS_REPLY,    /* 11 */
-  CURLE_FTP_WEIRD_USER_REPLY,    /* 12 */
-  CURLE_FTP_WEIRD_PASV_REPLY,    /* 13 */
-  CURLE_FTP_WEIRD_227_FORMAT,    /* 14 */
-  CURLE_FTP_CANT_GET_HOST,       /* 15 */
-  CURLE_FTP_CANT_RECONNECT,      /* 16 */
-  CURLE_FTP_COULDNT_SET_BINARY,  /* 17 */
-  CURLE_PARTIAL_FILE,            /* 18 */
-  CURLE_FTP_COULDNT_RETR_FILE,   /* 19 */
-  CURLE_FTP_WRITE_ERROR,         /* 20 */
-  CURLE_FTP_QUOTE_ERROR,         /* 21 */
-  CURLE_HTTP_RETURNED_ERROR,     /* 22 */
-  CURLE_WRITE_ERROR,             /* 23 */
-  CURLE_MALFORMAT_USER,          /* 24 - NOT USED */
-  CURLE_FTP_COULDNT_STOR_FILE,   /* 25 - failed FTP upload */
-  CURLE_READ_ERROR,              /* 26 - could open/read from file */
-  CURLE_OUT_OF_MEMORY,           /* 27 */
-  /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error
-           instead of a memory allocation error if CURL_DOES_CONVERSIONS
-           is defined
-  */
-  CURLE_OPERATION_TIMEOUTED,     /* 28 - the timeout time was reached */
-  CURLE_FTP_COULDNT_SET_ASCII,   /* 29 - TYPE A failed */
-  CURLE_FTP_PORT_FAILED,         /* 30 - FTP PORT operation failed */
-  CURLE_FTP_COULDNT_USE_REST,    /* 31 - the REST command failed */
-  CURLE_FTP_COULDNT_GET_SIZE,    /* 32 - the SIZE command failed */
-  CURLE_HTTP_RANGE_ERROR,        /* 33 - RANGE "command" didn't work */
-  CURLE_HTTP_POST_ERROR,         /* 34 */
-  CURLE_SSL_CONNECT_ERROR,       /* 35 - wrong when connecting with SSL */
-  CURLE_BAD_DOWNLOAD_RESUME,     /* 36 - couldn't resume download */
-  CURLE_FILE_COULDNT_READ_FILE,  /* 37 */
-  CURLE_LDAP_CANNOT_BIND,        /* 38 */
-  CURLE_LDAP_SEARCH_FAILED,      /* 39 */
-  CURLE_LIBRARY_NOT_FOUND,       /* 40 */
-  CURLE_FUNCTION_NOT_FOUND,      /* 41 */
-  CURLE_ABORTED_BY_CALLBACK,     /* 42 */
-  CURLE_BAD_FUNCTION_ARGUMENT,   /* 43 */
-  CURLE_BAD_CALLING_ORDER,       /* 44 - NOT USED */
-  CURLE_INTERFACE_FAILED,        /* 45 - CURLOPT_INTERFACE failed */
-  CURLE_BAD_PASSWORD_ENTERED,    /* 46 - NOT USED */
-  CURLE_TOO_MANY_REDIRECTS ,     /* 47 - catch endless re-direct loops */
-  CURLE_UNKNOWN_TELNET_OPTION,   /* 48 - User specified an unknown option */
-  CURLE_TELNET_OPTION_SYNTAX ,   /* 49 - Malformed telnet option */
-  CURLE_OBSOLETE,                /* 50 - NOT USED */
-  CURLE_SSL_PEER_CERTIFICATE,    /* 51 - peer's certificate wasn't ok */
-  CURLE_GOT_NOTHING,             /* 52 - when this is a specific error */
-  CURLE_SSL_ENGINE_NOTFOUND,     /* 53 - SSL crypto engine not found */
-  CURLE_SSL_ENGINE_SETFAILED,    /* 54 - can not set SSL crypto engine as
-                                    default */
-  CURLE_SEND_ERROR,              /* 55 - failed sending network data */
-  CURLE_RECV_ERROR,              /* 56 - failure in receiving network data */
-  CURLE_SHARE_IN_USE,            /* 57 - share is in use */
-  CURLE_SSL_CERTPROBLEM,         /* 58 - problem with the local certificate */
-  CURLE_SSL_CIPHER,              /* 59 - couldn't use specified cipher */
-  CURLE_SSL_CACERT,              /* 60 - problem with the CA cert (path?) */
-  CURLE_BAD_CONTENT_ENCODING,    /* 61 - Unrecognized transfer encoding */
-  CURLE_LDAP_INVALID_URL,        /* 62 - Invalid LDAP URL */
-  CURLE_FILESIZE_EXCEEDED,       /* 63 - Maximum file size exceeded */
-  CURLE_FTP_SSL_FAILED,          /* 64 - Requested FTP SSL level failed */
-  CURLE_SEND_FAIL_REWIND,        /* 65 - Sending the data requires a rewind
-                                    that failed */
-  CURLE_SSL_ENGINE_INITFAILED,   /* 66 - failed to initialise ENGINE */
-  CURLE_LOGIN_DENIED,            /* 67 - user, password or similar was not
-                                    accepted and we failed to login */
-  CURLE_TFTP_NOTFOUND,           /* 68 - file not found on server */
-  CURLE_TFTP_PERM,               /* 69 - permission problem on server */
-  CURLE_TFTP_DISKFULL,           /* 70 - out of disk space on server */
-  CURLE_TFTP_ILLEGAL,            /* 71 - Illegal TFTP operation */
-  CURLE_TFTP_UNKNOWNID,          /* 72 - Unknown transfer ID */
-  CURLE_TFTP_EXISTS,             /* 73 - File already exists */
-  CURLE_TFTP_NOSUCHUSER,         /* 74 - No such user */
-  CURLE_CONV_FAILED,             /* 75 - conversion failed */
-  CURLE_CONV_REQD,               /* 76 - caller must register conversion
-                                    callbacks using curl_easy_setopt options
-                                    CURLOPT_CONV_FROM_NETWORK_FUNCTION,
-                                    CURLOPT_CONV_TO_NETWORK_FUNCTION, and
-                                    CURLOPT_CONV_FROM_UTF8_FUNCTION */
-  CURLE_SSL_CRL_BADFILE = 82,    /* 82 - could not load CRL file, missing or
-                                    wrong format (Added in 7.19.0) */
-  CURL_LAST /* never use! */
-} CURLcode;
-
-/* This prototype applies to all conversion callbacks */
-typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length);
-
-typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl,    /* easy handle */
-                                          void *ssl_ctx, /* actually an
-                                                            OpenSSL SSL_CTX */
-                                          void *userptr);
-
-/* Make a spelling correction for the operation timed-out define */
-#define CURLE_OPERATION_TIMEDOUT CURLE_OPERATION_TIMEOUTED
-
-#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
-                          the obsolete stuff removed! */
-/* backwards compatibility with older names */
-#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR
-#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED
-#endif
-
-typedef enum {
-  CURLPROXY_HTTP = 0,
-  CURLPROXY_SOCKS4 = 4,
-  CURLPROXY_SOCKS5 = 5
-} curl_proxytype;
-
-#define CURLAUTH_NONE         0       /* nothing */
-#define CURLAUTH_BASIC        (1<<0)  /* Basic (default) */
-#define CURLAUTH_DIGEST       (1<<1)  /* Digest */
-#define CURLAUTH_GSSNEGOTIATE (1<<2)  /* GSS-Negotiate */
-#define CURLAUTH_NTLM         (1<<3)  /* NTLM */
-#define CURLAUTH_ANY ~0               /* all types set */
-#define CURLAUTH_ANYSAFE (~CURLAUTH_BASIC)
-
-#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
-                          the obsolete stuff removed! */
-/* this was the error code 50 in 7.7.3 and a few earlier versions, this
-   is no longer used by libcurl but is instead #defined here only to not
-   make programs break */
-#define CURLE_ALREADY_COMPLETE 99999
-
-/* These are just to make older programs not break: */
-#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE
-#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME
-#endif
-
-#define CURLGSSAPI_DELEGATION_NONE        0      /* no delegation (default) */
-#define CURLGSSAPI_DELEGATION_POLICY_FLAG (1<<0) /* if permitted by policy */
-#define CURLGSSAPI_DELEGATION_FLAG        (1<<1) /* delegate always */
-
-#define CURL_ERROR_SIZE 256
-
-/* parameter for the CURLOPT_FTP_SSL option */
-typedef enum {
-  CURLFTPSSL_NONE,    /* do not attempt to use SSL */
-  CURLFTPSSL_TRY,     /* try using SSL, proceed anyway otherwise */
-  CURLFTPSSL_CONTROL, /* SSL for the control connection or fail */
-  CURLFTPSSL_ALL,     /* SSL for all communication or fail */
-  CURLFTPSSL_LAST     /* not an option, never use */
-} curl_ftpssl;
-
-/* parameter for the CURLOPT_FTPSSLAUTH option */
-typedef enum {
-  CURLFTPAUTH_DEFAULT, /* let libcurl decide */
-  CURLFTPAUTH_SSL,     /* use "AUTH SSL" */
-  CURLFTPAUTH_TLS,     /* use "AUTH TLS" */
-  CURLFTPAUTH_LAST /* not an option, never use */
-} curl_ftpauth;
-
-/* parameter for the CURLOPT_FTP_FILEMETHOD option */
-typedef enum {
-  CURLFTPMETHOD_DEFAULT,   /* let libcurl pick */
-  CURLFTPMETHOD_MULTICWD,  /* single CWD operation for each path part */
-  CURLFTPMETHOD_NOCWD,     /* no CWD at all */
-  CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */
-  CURLFTPMETHOD_LAST       /* not an option, never use */
-} curl_ftpmethod;
-
-/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */
-#define CURLPROTO_HTTP   (1<<0)
-#define CURLPROTO_HTTPS  (1<<1)
-#define CURLPROTO_FTP    (1<<2)
-#define CURLPROTO_FTPS   (1<<3)
-#define CURLPROTO_TELNET (1<<6)
-#define CURLPROTO_LDAP   (1<<7)
-#define CURLPROTO_LDAPS  (1<<8)
-#define CURLPROTO_DICT   (1<<9)
-#define CURLPROTO_FILE   (1<<10)
-#define CURLPROTO_TFTP   (1<<11)
-#define CURLPROTO_ALL    (~0) /* enable everything */
-
-/* long may be 32 or 64 bits, but we should never depend on anything else
-   but 32 */
-#define CURLOPTTYPE_LONG          0
-#define CURLOPTTYPE_OBJECTPOINT   10000
-#define CURLOPTTYPE_FUNCTIONPOINT 20000
-#define CURLOPTTYPE_OFF_T         30000
-
-/* name is uppercase CURLOPT_<name>,
-   type is one of the defined CURLOPTTYPE_<type>
-   number is unique identifier */
-#ifdef CINIT
-#undef CINIT
-#endif
-/*
- * Figure out if we can use the ## operator, which is supported by ISO/ANSI C
- * and C++. Some compilers support it without setting __STDC__ or __cplusplus
- * so we need to carefully check for them too. We don't use configure-checks
- * for these since we want these headers to remain generic and working for all
- * platforms.
- */
-#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
-  defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
-  defined(__POCC__) || defined(__SALFORDC__)
-  /* This compiler is believed to have an ISO compatible preprocessor */
-#define CURL_ISOCPP
-#else
-  /* This compiler is believed NOT to have an ISO compatible preprocessor */
-#undef CURL_ISOCPP
-#endif
-
-#ifdef CURL_ISOCPP
-#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number
-#else
-/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
-#define LONG          CURLOPTTYPE_LONG
-#define OBJECTPOINT   CURLOPTTYPE_OBJECTPOINT
-#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT
-#define OFF_T         CURLOPTTYPE_OFF_T
-#define CINIT(name,type,number) CURLOPT_/**/name = type + number
-#endif
-
-/*
- * This macro-mania below setups the CURLOPT_[what] enum, to be used with
- * curl_easy_setopt(). The first argument in the CINIT() macro is the [what]
- * word.
- */
-
-typedef enum {
-  /* This is the FILE * or void * the regular output should be written to. */
-  CINIT(FILE, OBJECTPOINT, 1),
-
-  /* The full URL to get/put */
-  CINIT(URL,  OBJECTPOINT, 2),
-
-  /* Port number to connect to, if other than default. */
-  CINIT(PORT, LONG, 3),
-
-  /* Name of proxy to use. */
-  CINIT(PROXY, OBJECTPOINT, 4),
-
-  /* "name:password" to use when fetching. */
-  CINIT(USERPWD, OBJECTPOINT, 5),
-
-  /* "name:password" to use with proxy. */
-  CINIT(PROXYUSERPWD, OBJECTPOINT, 6),
-
-  /* Range to get, specified as an ASCII string. */
-  CINIT(RANGE, OBJECTPOINT, 7),
-
-  /* not used */
-
-  /* Specified file stream to upload from (use as input): */
-  CINIT(INFILE, OBJECTPOINT, 9),
-
-  /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE
-   * bytes big. If this is not used, error messages go to stderr instead: */
-  CINIT(ERRORBUFFER, OBJECTPOINT, 10),
-
-  /* Function that will be called to store the output (instead of fwrite). The
-   * parameters will use fwrite() syntax, make sure to follow them. */
-  CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11),
-
-  /* Function that will be called to read the input (instead of fread). The
-   * parameters will use fread() syntax, make sure to follow them. */
-  CINIT(READFUNCTION, FUNCTIONPOINT, 12),
-
-  /* Time-out the read operation after this amount of seconds */
-  CINIT(TIMEOUT, LONG, 13),
-
-  /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about
-   * how large the file being sent really is. That allows better error
-   * checking and better verifies that the upload was succcessful. -1 means
-   * unknown size.
-   *
-   * For large file support, there is also a _LARGE version of the key
-   * which takes an off_t type, allowing platforms with larger off_t
-   * sizes to handle larger files.  See below for INFILESIZE_LARGE.
-   */
-  CINIT(INFILESIZE, LONG, 14),
-
-  /* POST input fields. */
-  CINIT(POSTFIELDS, OBJECTPOINT, 15),
-
-  /* Set the referer page (needed by some CGIs) */
-  CINIT(REFERER, OBJECTPOINT, 16),
-
-  /* Set the FTP PORT string (interface name, named or numerical IP address)
-     Use i.e '-' to use default address. */
-  CINIT(FTPPORT, OBJECTPOINT, 17),
-
-  /* Set the User-Agent string (examined by some CGIs) */
-  CINIT(USERAGENT, OBJECTPOINT, 18),
-
-  /* If the download receives less than "low speed limit" bytes/second
-   * during "low speed time" seconds, the operations is aborted.
-   * You could i.e if you have a pretty high speed connection, abort if
-   * it is less than 2000 bytes/sec during 20 seconds.
-   */
-
-  /* Set the "low speed limit" */
-  CINIT(LOW_SPEED_LIMIT, LONG , 19),
-
-  /* Set the "low speed time" */
-  CINIT(LOW_SPEED_TIME, LONG, 20),
-
-  /* Set the continuation offset.
-   *
-   * Note there is also a _LARGE version of this key which uses
-   * off_t types, allowing for large file offsets on platforms which
-   * use larger-than-32-bit off_t's.  Look below for RESUME_FROM_LARGE.
-   */
-  CINIT(RESUME_FROM, LONG, 21),
-
-  /* Set cookie in request: */
-  CINIT(COOKIE, OBJECTPOINT, 22),
-
-  /* This points to a linked list of headers, struct curl_slist kind */
-  CINIT(HTTPHEADER, OBJECTPOINT, 23),
-
-  /* This points to a linked list of post entries, struct HttpPost */
-  CINIT(HTTPPOST, OBJECTPOINT, 24),
-
-  /* name of the file keeping your private SSL-certificate */
-  CINIT(SSLCERT, OBJECTPOINT, 25),
-
-  /* password for the SSL-private key, keep this for compatibility */
-  CINIT(SSLCERTPASSWD, OBJECTPOINT, 26),
-  /* password for the SSL private key */
-  CINIT(SSLKEYPASSWD, OBJECTPOINT, 26),
-
-  /* send TYPE parameter? */
-  CINIT(CRLF, LONG, 27),
-
-  /* send linked-list of QUOTE commands */
-  CINIT(QUOTE, OBJECTPOINT, 28),
-
-  /* send FILE * or void * to store headers to, if you use a callback it
-     is simply passed to the callback unmodified */
-  CINIT(WRITEHEADER, OBJECTPOINT, 29),
-
-  /* point to a file to read the initial cookies from, also enables
-     "cookie awareness" */
-  CINIT(COOKIEFILE, OBJECTPOINT, 31),
-
-  /* What version to specifly try to use.
-     See CURL_SSLVERSION defines below. */
-  CINIT(SSLVERSION, LONG, 32),
-
-  /* What kind of HTTP time condition to use, see defines */
-  CINIT(TIMECONDITION, LONG, 33),
-
-  /* Time to use with the above condition. Specified in number of seconds
-     since 1 Jan 1970 */
-  CINIT(TIMEVALUE, LONG, 34),
-
-  /* 35 = OBSOLETE */
-
-  /* Custom request, for customizing the get command like
-     HTTP: DELETE, TRACE and others
-     FTP: to use a different list command
-     */
-  CINIT(CUSTOMREQUEST, OBJECTPOINT, 36),
-
-  /* HTTP request, for odd commands like DELETE, TRACE and others */
-  CINIT(STDERR, OBJECTPOINT, 37),
-
-  /* 38 is not used */
-
-  /* send linked-list of post-transfer QUOTE commands */
-  CINIT(POSTQUOTE, OBJECTPOINT, 39),
-
-  /* Pass a pointer to string of the output using full variable-replacement
-     as described elsewhere. */
-  CINIT(WRITEINFO, OBJECTPOINT, 40),
-
-  CINIT(VERBOSE, LONG, 41),      /* talk a lot */
-  CINIT(HEADER, LONG, 42),       /* throw the header out too */
-  CINIT(NOPROGRESS, LONG, 43),   /* shut off the progress meter */
-  CINIT(NOBODY, LONG, 44),       /* use HEAD to get http document */
-  CINIT(FAILONERROR, LONG, 45),  /* no output on http error codes >= 300 */
-  CINIT(UPLOAD, LONG, 46),       /* this is an upload */
-  CINIT(POST, LONG, 47),         /* HTTP POST method */
-  CINIT(FTPLISTONLY, LONG, 48),  /* Use NLST when listing ftp dir */
-
-  CINIT(FTPAPPEND, LONG, 50),    /* Append instead of overwrite on upload! */
-
-  /* Specify whether to read the user+password from the .netrc or the URL.
-   * This must be one of the CURL_NETRC_* enums below. */
-  CINIT(NETRC, LONG, 51),
-
-  CINIT(FOLLOWLOCATION, LONG, 52),  /* use Location: Luke! */
-
-  CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */
-  CINIT(PUT, LONG, 54),          /* HTTP PUT */
-
-  /* 55 = OBSOLETE */
-
-  /* Function that will be called instead of the internal progress display
-   * function. This function should be defined as the curl_progress_callback
-   * prototype defines. */
-  CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56),
-
-  /* Data passed to the progress callback */
-  CINIT(PROGRESSDATA, OBJECTPOINT, 57),
-
-  /* We want the referer field set automatically when following locations */
-  CINIT(AUTOREFERER, LONG, 58),
-
-  /* Port of the proxy, can be set in the proxy string as well with:
-     "[host]:[port]" */
-  CINIT(PROXYPORT, LONG, 59),
-
-  /* size of the POST input data, if strlen() is not good to use */
-  CINIT(POSTFIELDSIZE, LONG, 60),
-
-  /* tunnel non-http operations through a HTTP proxy */
-  CINIT(HTTPPROXYTUNNEL, LONG, 61),
-
-  /* Set the interface string to use as outgoing network interface */
-  CINIT(INTERFACE, OBJECTPOINT, 62),
-
-  /* Set the krb4 security level, this also enables krb4 awareness.  This is a
-   * string, 'clear', 'safe', 'confidential' or 'private'.  If the string is
-   * set but doesn't match one of these, 'private' will be used.  */
-  CINIT(KRB4LEVEL, OBJECTPOINT, 63),
-
-  /* Set if we should verify the peer in ssl handshake, set 1 to verify. */
-  CINIT(SSL_VERIFYPEER, LONG, 64),
-
-  /* The CApath or CAfile used to validate the peer certificate
-     this option is used only if SSL_VERIFYPEER is true */
-  CINIT(CAINFO, OBJECTPOINT, 65),
-
-  /* 66 = OBSOLETE */
-  /* 67 = OBSOLETE */
-
-  /* Maximum number of http redirects to follow */
-  CINIT(MAXREDIRS, LONG, 68),
-
-  /* Pass a long set to 1 to get the date of the requested document (if
-     possible)! Pass a zero to shut it off. */
-  CINIT(FILETIME, LONG, 69),
-
-  /* This points to a linked list of telnet options */
-  CINIT(TELNETOPTIONS, OBJECTPOINT, 70),
-
-  /* Max amount of cached alive connections */
-  CINIT(MAXCONNECTS, LONG, 71),
-
-  /* What policy to use when closing connections when the cache is filled
-     up */
-  CINIT(CLOSEPOLICY, LONG, 72),
-
-  /* 73 = OBSOLETE */
-
-  /* Set to explicitly use a new connection for the upcoming transfer.
-     Do not use this unless you're absolutely sure of this, as it makes the
-     operation slower and is less friendly for the network. */
-  CINIT(FRESH_CONNECT, LONG, 74),
-
-  /* Set to explicitly forbid the upcoming transfer's connection to be re-used
-     when done. Do not use this unless you're absolutely sure of this, as it
-     makes the operation slower and is less friendly for the network. */
-  CINIT(FORBID_REUSE, LONG, 75),
-
-  /* Set to a file name that contains random data for libcurl to use to
-     seed the random engine when doing SSL connects. */
-  CINIT(RANDOM_FILE, OBJECTPOINT, 76),
-
-  /* Set to the Entropy Gathering Daemon socket pathname */
-  CINIT(EGDSOCKET, OBJECTPOINT, 77),
-
-  /* Time-out connect operations after this amount of seconds, if connects
-     are OK within this time, then fine... This only aborts the connect
-     phase. [Only works on unix-style/SIGALRM operating systems] */
-  CINIT(CONNECTTIMEOUT, LONG, 78),
-
-  /* Function that will be called to store headers (instead of fwrite). The
-   * parameters will use fwrite() syntax, make sure to follow them. */
-  CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79),
-
-  /* Set this to force the HTTP request to get back to GET. Only really usable
-     if POST, PUT or a custom request have been used first.
-   */
-  CINIT(HTTPGET, LONG, 80),
-
-  /* Set if we should verify the Common name from the peer certificate in ssl
-   * handshake, set 1 to check existence, 2 to ensure that it matches the
-   * provided hostname. */
-  CINIT(SSL_VERIFYHOST, LONG, 81),
-
-  /* Specify which file name to write all known cookies in after completed
-     operation. Set file name to "-" (dash) to make it go to stdout. */
-  CINIT(COOKIEJAR, OBJECTPOINT, 82),
-
-  /* Specify which SSL ciphers to use */
-  CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83),
-
-  /* Specify which HTTP version to use! This must be set to one of the
-     CURL_HTTP_VERSION* enums set below. */
-  CINIT(HTTP_VERSION, LONG, 84),
-
-  /* Specificly switch on or off the FTP engine's use of the EPSV command. By
-     default, that one will always be attempted before the more traditional
-     PASV command. */
-  CINIT(FTP_USE_EPSV, LONG, 85),
-
-  /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */
-  CINIT(SSLCERTTYPE, OBJECTPOINT, 86),
-
-  /* name of the file keeping your private SSL-key */
-  CINIT(SSLKEY, OBJECTPOINT, 87),
-
-  /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */
-  CINIT(SSLKEYTYPE, OBJECTPOINT, 88),
-
-  /* crypto engine for the SSL-sub system */
-  CINIT(SSLENGINE, OBJECTPOINT, 89),
-
-  /* set the crypto engine for the SSL-sub system as default
-     the param has no meaning...
-   */
-  CINIT(SSLENGINE_DEFAULT, LONG, 90),
-
-  /* Non-zero value means to use the global dns cache */
-  CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* To becomeO BSOLETE soon */
-
-  /* DNS cache timeout */
-  CINIT(DNS_CACHE_TIMEOUT, LONG, 92),
-
-  /* send linked-list of pre-transfer QUOTE commands (Wesley Laxton)*/
-  CINIT(PREQUOTE, OBJECTPOINT, 93),
-
-  /* set the debug function */
-  CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94),
-
-  /* set the data for the debug function */
-  CINIT(DEBUGDATA, OBJECTPOINT, 95),
-
-  /* mark this as start of a cookie session */
-  CINIT(COOKIESESSION, LONG, 96),
-
-  /* The CApath directory used to validate the peer certificate
-     this option is used only if SSL_VERIFYPEER is true */
-  CINIT(CAPATH, OBJECTPOINT, 97),
-
-  /* Instruct libcurl to use a smaller receive buffer */
-  CINIT(BUFFERSIZE, LONG, 98),
-
-  /* Instruct libcurl to not use any signal/alarm handlers, even when using
-     timeouts. This option is useful for multi-threaded applications.
-     See libcurl-the-guide for more background information. */
-  CINIT(NOSIGNAL, LONG, 99),
-
-  /* Provide a CURLShare for mutexing non-ts data */
-  CINIT(SHARE, OBJECTPOINT, 100),
-
-  /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default),
-     CURLPROXY_SOCKS4 and CURLPROXY_SOCKS5. */
-  CINIT(PROXYTYPE, LONG, 101),
-
-  /* Set the Accept-Encoding string. Use this to tell a server you would like
-     the response to be compressed. */
-  CINIT(ENCODING, OBJECTPOINT, 102),
-
-  /* Set pointer to private data */
-  CINIT(PRIVATE, OBJECTPOINT, 103),
-
-  /* Set aliases for HTTP 200 in the HTTP Response header */
-  CINIT(HTTP200ALIASES, OBJECTPOINT, 104),
-
-  /* Continue to send authentication (user+password) when following locations,
-     even when hostname changed. This can potentionally send off the name
-     and password to whatever host the server decides. */
-  CINIT(UNRESTRICTED_AUTH, LONG, 105),
-
-  /* Specificly switch on or off the FTP engine's use of the EPRT command ( it
-     also disables the LPRT attempt). By default, those ones will always be
-     attempted before the good old traditional PORT command. */
-  CINIT(FTP_USE_EPRT, LONG, 106),
-
-  /* Set this to a bitmask value to enable the particular authentications
-     methods you like. Use this in combination with CURLOPT_USERPWD.
-     Note that setting multiple bits may cause extra network round-trips. */
-  CINIT(HTTPAUTH, LONG, 107),
-
-  /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx
-     in second argument. The function must be matching the
-     curl_ssl_ctx_callback proto. */
-  CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108),
-
-  /* Set the userdata for the ssl context callback function's third
-     argument */
-  CINIT(SSL_CTX_DATA, OBJECTPOINT, 109),
-
-  /* FTP Option that causes missing dirs to be created on the remote server */
-  CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110),
-
-  /* Set this to a bitmask value to enable the particular authentications
-     methods you like. Use this in combination with CURLOPT_PROXYUSERPWD.
-     Note that setting multiple bits may cause extra network round-trips. */
-  CINIT(PROXYAUTH, LONG, 111),
-
-  /* FTP option that changes the timeout, in seconds, associated with
-     getting a response.  This is different from transfer timeout time and
-     essentially places a demand on the FTP server to acknowledge commands
-     in a timely manner. */
-  CINIT(FTP_RESPONSE_TIMEOUT, LONG , 112),
-
-  /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to
-     tell libcurl to resolve names to those IP versions only. This only has
-     affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */
-  CINIT(IPRESOLVE, LONG, 113),
-
-  /* Set this option to limit the size of a file that will be downloaded from
-     an HTTP or FTP server.
-
-     Note there is also _LARGE version which adds large file support for
-     platforms which have larger off_t sizes.  See MAXFILESIZE_LARGE below. */
-  CINIT(MAXFILESIZE, LONG, 114),
-
-  /* See the comment for INFILESIZE above, but in short, specifies
-   * the size of the file being uploaded.  -1 means unknown.
-   */
-  CINIT(INFILESIZE_LARGE, OFF_T, 115),
-
-  /* Sets the continuation offset.  There is also a LONG version of this;
-   * look above for RESUME_FROM.
-   */
-  CINIT(RESUME_FROM_LARGE, OFF_T, 116),
-
-  /* Sets the maximum size of data that will be downloaded from
-   * an HTTP or FTP server.  See MAXFILESIZE above for the LONG version.
-   */
-  CINIT(MAXFILESIZE_LARGE, OFF_T, 117),
-
-  /* Set this option to the file name of your .netrc file you want libcurl
-     to parse (using the CURLOPT_NETRC option). If not set, libcurl will do
-     a poor attempt to find the user's home directory and check for a .netrc
-     file in there. */
-  CINIT(NETRC_FILE, OBJECTPOINT, 118),
-
-  /* Enable SSL/TLS for FTP, pick one of:
-     CURLFTPSSL_TRY     - try using SSL, proceed anyway otherwise
-     CURLFTPSSL_CONTROL - SSL for the control connection or fail
-     CURLFTPSSL_ALL     - SSL for all communication or fail
-  */
-  CINIT(FTP_SSL, LONG, 119),
-
-  /* The _LARGE version of the standard POSTFIELDSIZE option */
-  CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120),
-
-  /* Enable/disable the TCP Nagle algorithm */
-  CINIT(TCP_NODELAY, LONG, 121),
-
-  /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
-
-  /* When doing 3rd party transfer, set the source user and password with
-     this */
-  CINIT(SOURCE_USERPWD, OBJECTPOINT, 123),
-
-  /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
-  /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
-  /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
-
-  /* When doing 3rd party transfer, set the source pre-quote linked list
-     of commands with this */
-  CINIT(SOURCE_PREQUOTE, OBJECTPOINT, 127),
-
-  /* When doing 3rd party transfer, set the source post-quote linked list
-     of commands with this */
-  CINIT(SOURCE_POSTQUOTE, OBJECTPOINT, 128),
-
-  /* When FTP over SSL/TLS is selected (with CURLOPT_FTP_SSL), this option
-     can be used to change libcurl's default action which is to first try
-     "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK
-     response has been received.
-
-     Available parameters are:
-     CURLFTPAUTH_DEFAULT - let libcurl decide
-     CURLFTPAUTH_SSL     - try "AUTH SSL" first, then TLS
-     CURLFTPAUTH_TLS     - try "AUTH TLS" first, then SSL
-  */
-  CINIT(FTPSSLAUTH, LONG, 129),
-
-  CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130),
-  CINIT(IOCTLDATA, OBJECTPOINT, 131),
-
-  /* To make a 3rd party transfer, set the source URL with this */
-  CINIT(SOURCE_URL, OBJECTPOINT, 132),
-
-  /* When doing 3rd party transfer, set the source quote linked list of
-     commands with this */
-  CINIT(SOURCE_QUOTE, OBJECTPOINT, 133),
-
-  /* zero terminated string for pass on to the FTP server when asked for
-     "account" info */
-  CINIT(FTP_ACCOUNT, OBJECTPOINT, 134),
-
-  /* feed cookies into cookie engine */
-  CINIT(COOKIELIST, OBJECTPOINT, 135),
-
-  /* ignore Content-Length */
-  CINIT(IGNORE_CONTENT_LENGTH, LONG, 136),
-
-  /* Set to non-zero to skip the IP address received in a 227 PASV FTP server
-     response. Typically used for FTP-SSL purposes but is not restricted to
-     that. libcurl will then instead use the same IP address it used for the
-     control connection. */
-  CINIT(FTP_SKIP_PASV_IP, LONG, 137),
-
-  /* Select "file method" to use when doing FTP, see the curl_ftpmethod
-     above. */
-  CINIT(FTP_FILEMETHOD, LONG, 138),
-
-  /* Local port number to bind the socket to */
-  CINIT(LOCALPORT, LONG, 139),
-
-  /* Number of ports to try, including the first one set with LOCALPORT.
-     Thus, setting it to 1 will make no additional attempts but the first.
-  */
-  CINIT(LOCALPORTRANGE, LONG, 140),
-
-  /* no transfer, set up connection and let application use the socket by
-     extracting it with CURLINFO_LASTSOCKET */
-  CINIT(CONNECT_ONLY, LONG, 141),
-
-  /* Function that will be called to convert from the
-     network encoding (instead of using the iconv calls in libcurl) */
-  CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142),
-
-  /* Function that will be called to convert to the
-     network encoding (instead of using the iconv calls in libcurl) */
-  CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143),
-
-  /* Function that will be called to convert from UTF8
-     (instead of using the iconv calls in libcurl)
-     Note that this is used only for SSL certificate processing */
-  CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144),
-
-  /* if the connection proceeds too quickly then need to slow it down */
-  /* limit-rate: maximum number of bytes per second to send or receive */
-  CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145),
-  CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146),
-
-  /* Pointer to command string to send if USER/PASS fails. */
-  CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147),
-
-  /* CRL file */
-  CINIT(CRLFILE, OBJECTPOINT, 169),
-
-  /* set the bitmask for the protocols that are allowed to be used for the
-     transfer, which thus helps the app which takes URLs from users or other
-     external inputs and want to restrict what protocol(s) to deal
-     with. Defaults to CURLPROTO_ALL. */
-  CINIT(PROTOCOLS, LONG, 181),
-
-  /* set the bitmask for the protocols that libcurl is allowed to follow to,
-     as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs
-     to be set in both bitmasks to be allowed to get redirected to. Defaults
-     to CURLPROTO_ALL & ~CURLPROTO_FILE. */
-  CINIT(REDIR_PROTOCOLS, LONG, 182),
-
-  /* allow GSSAPI credential delegation */
-  CINIT(GSSAPI_DELEGATION, LONG, 210),
-
-  CURLOPT_LASTENTRY /* the last unused */
-} CURLoption;
-
-  /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host
-     name resolves addresses using more than one IP protocol version, this
-     option might be handy to force libcurl to use a specific IP version. */
-#define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP
-                                     versions that your system allows */
-#define CURL_IPRESOLVE_V4       1 /* resolve to ipv4 addresses */
-#define CURL_IPRESOLVE_V6       2 /* resolve to ipv6 addresses */
-
-  /* three convenient "aliases" that follow the name scheme better */
-#define CURLOPT_WRITEDATA CURLOPT_FILE
-#define CURLOPT_READDATA  CURLOPT_INFILE
-#define CURLOPT_HEADERDATA CURLOPT_WRITEHEADER
-
-#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
-                          the obsolete stuff removed! */
-#define CURLOPT_HTTPREQUEST    -1
-#define CURLOPT_FTPASCII       CURLOPT_TRANSFERTEXT
-#define CURLOPT_MUTE           -2
-#define CURLOPT_PASSWDFUNCTION -3
-#define CURLOPT_PASSWDDATA     -4
-#define CURLOPT_CLOSEFUNCTION  -5
-
-#define CURLOPT_SOURCE_HOST    -6
-#define CURLOPT_SOURCE_PATH    -7
-#define CURLOPT_SOURCE_PORT    -8
-#define CURLOPT_PASV_HOST      -9
-
-#else
-/* This is set if CURL_NO_OLDIES is defined at compile-time */
-#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */
-#endif
-
-
-  /* These enums are for use with the CURLOPT_HTTP_VERSION option. */
-enum {
-  CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd
-                             like the library to choose the best possible
-                             for us! */
-  CURL_HTTP_VERSION_1_0,  /* please use HTTP 1.0 in the request */
-  CURL_HTTP_VERSION_1_1,  /* please use HTTP 1.1 in the request */
-
-  CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */
-};
-
-  /* These enums are for use with the CURLOPT_NETRC option. */
-enum CURL_NETRC_OPTION {
-  CURL_NETRC_IGNORED,     /* The .netrc will never be read.
-                           * This is the default. */
-  CURL_NETRC_OPTIONAL,    /* A user:password in the URL will be preferred
-                           * to one in the .netrc. */
-  CURL_NETRC_REQUIRED,    /* A user:password in the URL will be ignored.
-                           * Unless one is set programmatically, the .netrc
-                           * will be queried. */
-  CURL_NETRC_LAST
-};
-
-enum {
-  CURL_SSLVERSION_DEFAULT,
-  CURL_SSLVERSION_TLSv1,
-  CURL_SSLVERSION_SSLv2,
-  CURL_SSLVERSION_SSLv3,
-
-  CURL_SSLVERSION_LAST /* never use, keep last */
-};
-
-
-typedef enum {
-  CURL_TIMECOND_NONE,
-
-  CURL_TIMECOND_IFMODSINCE,
-  CURL_TIMECOND_IFUNMODSINCE,
-  CURL_TIMECOND_LASTMOD,
-
-  CURL_TIMECOND_LAST
-} curl_TimeCond;
-
-#ifdef __BEOS__
-#include <support/SupportDefs.h>
-#endif
-
-
-/* curl_strequal() and curl_strnequal() are subject for removal in a future
-   libcurl, see lib/README.curlx for details */
-CURL_EXTERN int (curl_strequal)(const char *s1, const char *s2);
-CURL_EXTERN int (curl_strnequal)(const char *s1, const char *s2, size_t n);
-
-/* name is uppercase CURLFORM_<name> */
-#ifdef CFINIT
-#undef CFINIT
-#endif
-
-#ifdef CURL_ISOCPP
-#define CFINIT(name) CURLFORM_ ## name
-#else
-/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
-#define CFINIT(name) CURLFORM_/**/name
-#endif
-
-typedef enum {
-  CFINIT(NOTHING),        /********* the first one is unused ************/
-
-  /*  */
-  CFINIT(COPYNAME),
-  CFINIT(PTRNAME),
-  CFINIT(NAMELENGTH),
-  CFINIT(COPYCONTENTS),
-  CFINIT(PTRCONTENTS),
-  CFINIT(CONTENTSLENGTH),
-  CFINIT(FILECONTENT),
-  CFINIT(ARRAY),
-  CFINIT(OBSOLETE),
-  CFINIT(FILE),
-
-  CFINIT(BUFFER),
-  CFINIT(BUFFERPTR),
-  CFINIT(BUFFERLENGTH),
-
-  CFINIT(CONTENTTYPE),
-  CFINIT(CONTENTHEADER),
-  CFINIT(FILENAME),
-  CFINIT(END),
-  CFINIT(OBSOLETE2),
-
-  CURLFORM_LASTENTRY /* the last unusued */
-} CURLformoption;
-
-#undef CFINIT /* done */
-
-/* structure to be used as parameter for CURLFORM_ARRAY */
-struct curl_forms {
-  CURLformoption option;
-  const char     *value;
-};
-
-/* use this for multipart formpost building */
-/* Returns code for curl_formadd()
- *
- * Returns:
- * CURL_FORMADD_OK             on success
- * CURL_FORMADD_MEMORY         if the FormInfo allocation fails
- * CURL_FORMADD_OPTION_TWICE   if one option is given twice for one Form
- * CURL_FORMADD_NULL           if a null pointer was given for a char
- * CURL_FORMADD_MEMORY         if the allocation of a FormInfo struct failed
- * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used
- * CURL_FORMADD_INCOMPLETE     if the some FormInfo is not complete (or error)
- * CURL_FORMADD_MEMORY         if a HttpPost struct cannot be allocated
- * CURL_FORMADD_MEMORY         if some allocation for string copying failed.
- * CURL_FORMADD_ILLEGAL_ARRAY  if an illegal option is used in an array
- *
- ***************************************************************************/
-typedef enum {
-  CURL_FORMADD_OK, /* first, no error */
-
-  CURL_FORMADD_MEMORY,
-  CURL_FORMADD_OPTION_TWICE,
-  CURL_FORMADD_NULL,
-  CURL_FORMADD_UNKNOWN_OPTION,
-  CURL_FORMADD_INCOMPLETE,
-  CURL_FORMADD_ILLEGAL_ARRAY,
-  CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */
-
-  CURL_FORMADD_LAST /* last */
-} CURLFORMcode;
-
-/*
- * NAME curl_formadd()
- *
- * DESCRIPTION
- *
- * Pretty advanved function for building multi-part formposts. Each invoke
- * adds one part that together construct a full post. Then use
- * CURLOPT_HTTPPOST to send it off to libcurl.
- */
-CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost,
-                                      struct curl_httppost **last_post,
-                                      ...);
-
-/*
- * callback function for curl_formget()
- * The void *arg pointer will be the one passed as second argument to curl_formget().
- * The character buffer passed to it must not be freed.
- * Should return the buffer length passed to it as the argument "len" on success.
- */
-typedef size_t (*curl_formget_callback)(void *arg, const char *buf, size_t len);
-
-/*
- * NAME curl_formget()
- *
- * DESCRIPTION
- *
- * Serialize a curl_httppost struct built with curl_formadd().
- * Accepts a void pointer as second argument which will be passed to
- * the curl_formget_callback function.
- * Returns 0 on success.
- */
-CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg,
-                             curl_formget_callback append);
-/*
- * NAME curl_formfree()
- *
- * DESCRIPTION
- *
- * Free a multipart formpost previously built with curl_formadd().
- */
-CURL_EXTERN void curl_formfree(struct curl_httppost *form);
-
-/*
- * NAME curl_getenv()
- *
- * DESCRIPTION
- *
- * Returns a malloc()'ed string that MUST be curl_free()ed after usage is
- * complete. DEPRECATED - see lib/README.curlx
- */
-CURL_EXTERN char *curl_getenv(const char *variable);
-
-/*
- * NAME curl_version()
- *
- * DESCRIPTION
- *
- * Returns a static ascii string of the libcurl version.
- */
-CURL_EXTERN char *curl_version(void);
-
-/*
- * NAME curl_easy_escape()
- *
- * DESCRIPTION
- *
- * Escapes URL strings (converts all letters consider illegal in URLs to their
- * %XX versions). This function returns a new allocated string or NULL if an
- * error occurred.
- */
-CURL_EXTERN char *curl_easy_escape(CURL *handle,
-                                   const char *string,
-                                   int length);
-
-/* the previous version: */
-CURL_EXTERN char *curl_escape(const char *string,
-                              int length);
-
-
-/*
- * NAME curl_easy_unescape()
- *
- * DESCRIPTION
- *
- * Unescapes URL encoding in strings (converts all %XX codes to their 8bit
- * versions). This function returns a new allocated string or NULL if an error
- * occurred.
- * Conversion Note: On non-ASCII platforms the ASCII %XX codes are
- * converted into the host encoding.
- */
-CURL_EXTERN char *curl_easy_unescape(CURL *handle,
-                                     const char *string,
-                                     int length,
-                                     int *outlength);
-
-/* the previous version */
-CURL_EXTERN char *curl_unescape(const char *string,
-                                int length);
-
-/*
- * NAME curl_free()
- *
- * DESCRIPTION
- *
- * Provided for de-allocation in the same translation unit that did the
- * allocation. Added in libcurl 7.10
- */
-CURL_EXTERN void curl_free(void *p);
-
-/*
- * NAME curl_global_init()
- *
- * DESCRIPTION
- *
- * curl_global_init() should be invoked exactly once for each application that
- * uses libcurl
- */
-CURL_EXTERN CURLcode curl_global_init(long flags);
-
-/*
- * NAME curl_global_init_mem()
- *
- * DESCRIPTION
- *
- * curl_global_init() or curl_global_init_mem() should be invoked exactly once
- * for each application that uses libcurl.  This function can be used to
- * initialize libcurl and set user defined memory management callback
- * functions.  Users can implement memory management routines to check for
- * memory leaks, check for mis-use of the curl library etc.  User registered
- * callback routines with be invoked by this library instead of the system
- * memory management routines like malloc, free etc.
- */
-CURL_EXTERN CURLcode curl_global_init_mem(long flags,
-                                          curl_malloc_callback m,
-                                          curl_free_callback f,
-                                          curl_realloc_callback r,
-                                          curl_strdup_callback s,
-                                          curl_calloc_callback c);
-
-/*
- * NAME curl_global_cleanup()
- *
- * DESCRIPTION
- *
- * curl_global_cleanup() should be invoked exactly once for each application
- * that uses libcurl
- */
-CURL_EXTERN void curl_global_cleanup(void);
-
-/* linked-list structure for the CURLOPT_QUOTE option (and other) */
-struct curl_slist {
-  char *data;
-  struct curl_slist *next;
-};
-
-/*
- * NAME curl_slist_append()
- *
- * DESCRIPTION
- *
- * Appends a string to a linked list. If no list exists, it will be created
- * first. Returns the new list, after appending.
- */
-CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *,
-                                                 const char *);
-
-/*
- * NAME curl_slist_free_all()
- *
- * DESCRIPTION
- *
- * free a previously built curl_slist.
- */
-CURL_EXTERN void curl_slist_free_all(struct curl_slist *);
-
-/*
- * NAME curl_getdate()
- *
- * DESCRIPTION
- *
- * Returns the time, in seconds since 1 Jan 1970 of the time string given in
- * the first argument. The time argument in the second parameter is unused
- * and should be set to NULL.
- */
-CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused);
-
-#define CURLINFO_STRING   0x100000
-#define CURLINFO_LONG     0x200000
-#define CURLINFO_DOUBLE   0x300000
-#define CURLINFO_SLIST    0x400000
-#define CURLINFO_MASK     0x0fffff
-#define CURLINFO_TYPEMASK 0xf00000
-
-typedef enum {
-  CURLINFO_NONE, /* first, never use this */
-  CURLINFO_EFFECTIVE_URL    = CURLINFO_STRING + 1,
-  CURLINFO_RESPONSE_CODE    = CURLINFO_LONG   + 2,
-  CURLINFO_TOTAL_TIME       = CURLINFO_DOUBLE + 3,
-  CURLINFO_NAMELOOKUP_TIME  = CURLINFO_DOUBLE + 4,
-  CURLINFO_CONNECT_TIME     = CURLINFO_DOUBLE + 5,
-  CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6,
-  CURLINFO_SIZE_UPLOAD      = CURLINFO_DOUBLE + 7,
-  CURLINFO_SIZE_DOWNLOAD    = CURLINFO_DOUBLE + 8,
-  CURLINFO_SPEED_DOWNLOAD   = CURLINFO_DOUBLE + 9,
-  CURLINFO_SPEED_UPLOAD     = CURLINFO_DOUBLE + 10,
-  CURLINFO_HEADER_SIZE      = CURLINFO_LONG   + 11,
-  CURLINFO_REQUEST_SIZE     = CURLINFO_LONG   + 12,
-  CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG   + 13,
-  CURLINFO_FILETIME         = CURLINFO_LONG   + 14,
-  CURLINFO_CONTENT_LENGTH_DOWNLOAD   = CURLINFO_DOUBLE + 15,
-  CURLINFO_CONTENT_LENGTH_UPLOAD     = CURLINFO_DOUBLE + 16,
-  CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17,
-  CURLINFO_CONTENT_TYPE     = CURLINFO_STRING + 18,
-  CURLINFO_REDIRECT_TIME    = CURLINFO_DOUBLE + 19,
-  CURLINFO_REDIRECT_COUNT   = CURLINFO_LONG   + 20,
-  CURLINFO_PRIVATE          = CURLINFO_STRING + 21,
-  CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG   + 22,
-  CURLINFO_HTTPAUTH_AVAIL   = CURLINFO_LONG   + 23,
-  CURLINFO_PROXYAUTH_AVAIL  = CURLINFO_LONG   + 24,
-  CURLINFO_OS_ERRNO         = CURLINFO_LONG   + 25,
-  CURLINFO_NUM_CONNECTS     = CURLINFO_LONG   + 26,
-  CURLINFO_SSL_ENGINES      = CURLINFO_SLIST  + 27,
-  CURLINFO_COOKIELIST       = CURLINFO_SLIST  + 28,
-  CURLINFO_LASTSOCKET       = CURLINFO_LONG   + 29,
-  CURLINFO_FTP_ENTRY_PATH   = CURLINFO_STRING + 30,
-  /* Fill in new entries below here! */
-
-  CURLINFO_LASTONE          = 30
-} CURLINFO;
-
-/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
-   CURLINFO_HTTP_CODE */
-#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE
-
-typedef enum {
-  CURLCLOSEPOLICY_NONE, /* first, never use this */
-
-  CURLCLOSEPOLICY_OLDEST,
-  CURLCLOSEPOLICY_LEAST_RECENTLY_USED,
-  CURLCLOSEPOLICY_LEAST_TRAFFIC,
-  CURLCLOSEPOLICY_SLOWEST,
-  CURLCLOSEPOLICY_CALLBACK,
-
-  CURLCLOSEPOLICY_LAST /* last, never use this */
-} curl_closepolicy;
-
-#define CURL_GLOBAL_SSL (1<<0)
-#define CURL_GLOBAL_WIN32 (1<<1)
-#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32)
-#define CURL_GLOBAL_NOTHING 0
-#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL
-
-
-/*****************************************************************************
- * Setup defines, protos etc for the sharing stuff.
- */
-
-/* Different data locks for a single share */
-typedef enum {
-  CURL_LOCK_DATA_NONE = 0,
-  /*  CURL_LOCK_DATA_SHARE is used internaly to say that
-   *  the locking is just made to change the internal state of the share
-   *  itself.
-   */
-  CURL_LOCK_DATA_SHARE,
-  CURL_LOCK_DATA_COOKIE,
-  CURL_LOCK_DATA_DNS,
-  CURL_LOCK_DATA_SSL_SESSION,
-  CURL_LOCK_DATA_CONNECT,
-  CURL_LOCK_DATA_LAST
-} curl_lock_data;
-
-/* Different lock access types */
-typedef enum {
-  CURL_LOCK_ACCESS_NONE = 0,   /* unspecified action */
-  CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */
-  CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */
-  CURL_LOCK_ACCESS_LAST        /* never use */
-} curl_lock_access;
-
-typedef void (*curl_lock_function)(CURL *handle,
-                                   curl_lock_data data,
-                                   curl_lock_access locktype,
-                                   void *userptr);
-typedef void (*curl_unlock_function)(CURL *handle,
-                                     curl_lock_data data,
-                                     void *userptr);
-
-typedef void CURLSH;
-
-typedef enum {
-  CURLSHE_OK,  /* all is fine */
-  CURLSHE_BAD_OPTION, /* 1 */
-  CURLSHE_IN_USE,     /* 2 */
-  CURLSHE_INVALID,    /* 3 */
-  CURLSHE_NOMEM,      /* out of memory */
-  CURLSHE_LAST /* never use */
-} CURLSHcode;
-
-typedef enum {
-  CURLSHOPT_NONE,  /* don't use */
-  CURLSHOPT_SHARE,   /* specify a data type to share */
-  CURLSHOPT_UNSHARE, /* specify shich data type to stop sharing */
-  CURLSHOPT_LOCKFUNC,   /* pass in a 'curl_lock_function' pointer */
-  CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */
-  CURLSHOPT_USERDATA,   /* pass in a user data pointer used in the lock/unlock
-                           callback functions */
-  CURLSHOPT_LAST  /* never use */
-} CURLSHoption;
-
-CURL_EXTERN CURLSH *curl_share_init(void);
-CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...);
-CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *);
-
-/****************************************************************************
- * Structures for querying information about the curl library at runtime.
- */
-
-typedef enum {
-  CURLVERSION_FIRST,
-  CURLVERSION_SECOND,
-  CURLVERSION_THIRD,
-  CURLVERSION_LAST /* never actually use this */
-} CURLversion;
-
-/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by
-   basicly all programs ever, that want to get version information. It is
-   meant to be a built-in version number for what kind of struct the caller
-   expects. If the struct ever changes, we redefine the NOW to another enum
-   from above. */
-#define CURLVERSION_NOW CURLVERSION_THIRD
-
-typedef struct {
-  CURLversion age;          /* age of the returned struct */
-  const char *version;      /* LIBCURL_VERSION */
-  unsigned int version_num; /* LIBCURL_VERSION_NUM */
-  const char *host;         /* OS/host/cpu/machine when configured */
-  int features;             /* bitmask, see defines below */
-  const char *ssl_version;  /* human readable string */
-  long ssl_version_num;     /* not used anymore, always 0 */
-  const char *libz_version; /* human readable string */
-  /* protocols is terminated by an entry with a NULL protoname */
-  const char * const *protocols;
-
-  /* The fields below this were added in CURLVERSION_SECOND */
-  const char *ares;
-  int ares_num;
-
-  /* This field was added in CURLVERSION_THIRD */
-  const char *libidn;
-
-  /* Same as '_libiconv_version' if built with HAVE_ICONV */
-  int iconv_ver_num;
-} curl_version_info_data;
-
-#define CURL_VERSION_IPV6      (1<<0)  /* IPv6-enabled */
-#define CURL_VERSION_KERBEROS4 (1<<1)  /* kerberos auth is supported */
-#define CURL_VERSION_SSL       (1<<2)  /* SSL options are present */
-#define CURL_VERSION_LIBZ      (1<<3)  /* libz features are present */
-#define CURL_VERSION_NTLM      (1<<4)  /* NTLM auth is supported */
-#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth support */
-#define CURL_VERSION_DEBUG     (1<<6)  /* built with debug capabilities */
-#define CURL_VERSION_ASYNCHDNS (1<<7)  /* asynchronous dns resolves */
-#define CURL_VERSION_SPNEGO    (1<<8)  /* SPNEGO auth */
-#define CURL_VERSION_LARGEFILE (1<<9)  /* supports files bigger than 2GB */
-#define CURL_VERSION_IDN       (1<<10) /* International Domain Names support */
-#define CURL_VERSION_SSPI      (1<<11) /* SSPI is supported */
-#define CURL_VERSION_CONV      (1<<12) /* character conversions are
-                                          supported */
-
-/*
- * NAME curl_version_info()
- *
- * DESCRIPTION
- *
- * This function returns a pointer to a static copy of the version info
- * struct. See above.
- */
-CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion);
-
-/*
- * NAME curl_easy_strerror()
- *
- * DESCRIPTION
- *
- * The curl_easy_strerror function may be used to turn a CURLcode value
- * into the equivalent human readable error string.  This is useful
- * for printing meaningful error messages.
- */
-CURL_EXTERN const char *curl_easy_strerror(CURLcode);
-
-/*
- * NAME curl_share_strerror()
- *
- * DESCRIPTION
- *
- * The curl_share_strerror function may be used to turn a CURLSHcode value
- * into the equivalent human readable error string.  This is useful
- * for printing meaningful error messages.
- */
-CURL_EXTERN const char *curl_share_strerror(CURLSHcode);
-
-#ifdef  __cplusplus
-}
-#endif
-
-/* unfortunately, the easy.h and multi.h include files need options and info
-  stuff before they can be included! */
-#include "easy.h" /* nothing in curl is fun without the easy stuff */
-#include "multi.h"
-
-#endif /* __CURL_CURL_H */
diff --git a/libs/kns/curlhdr/curlver.h b/libs/kns/curlhdr/curlver.h
deleted file mode 100644
index 46fc5d8..0000000
--- a/libs/kns/curlhdr/curlver.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef __CURL_CURLVER_H
-#define __CURL_CURLVER_H
-/***************************************************************************
- *                                  _   _ ____  _
- *  Project                     ___| | | |  _ \| |
- *                             / __| | | | |_) | |
- *                            | (__| |_| |  _ <| |___
- *                             \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel at haxx.se>, et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: curlver.h,v 1.1 2012/11/09 17:54:52 rodarmer Exp $
- ***************************************************************************/
-
-/* This header file contains nothing but libcurl version info, generated by
-   a script at release-time. This was made its own header file in 7.11.2 */
-
-/* This is the version number of the libcurl package from which this header
-   file origins: */
-#define LIBCURL_VERSION "7.15.5"
-
-/* The numeric version number is also available "in parts" by using these
-   defines: */
-#define LIBCURL_VERSION_MAJOR 7
-#define LIBCURL_VERSION_MINOR 15
-#define LIBCURL_VERSION_PATCH 5
-
-/* This is the numeric version of the libcurl version number, meant for easier
-   parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
-   always follow this syntax:
-
-         0xXXYYZZ
-
-   Where XX, YY and ZZ are the main version, release and patch numbers in
-   hexadecimal (using 8 bits each). All three numbers are always represented
-   using two digits.  1.2 would appear as "0x010200" while version 9.11.7
-   appears as "0x090b07".
-
-   This 6-digit (24 bits) hexadecimal number does not show pre-release number,
-   and it is always a greater number in a more recent release. It makes
-   comparisons with greater than and less than work.
-*/
-#define LIBCURL_VERSION_NUM 0x070f05
-
-#endif /* __CURL_CURLVER_H */
diff --git a/libs/kns/curlhdr/easy.h b/libs/kns/curlhdr/easy.h
deleted file mode 100644
index 2f96c9a..0000000
--- a/libs/kns/curlhdr/easy.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef __CURL_EASY_H
-#define __CURL_EASY_H
-/***************************************************************************
- *                                  _   _ ____  _
- *  Project                     ___| | | |  _ \| |
- *                             / __| | | | |_) | |
- *                            | (__| |_| |  _ <| |___
- *                             \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel at haxx.se>, et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: easy.h,v 1.1 2012/11/09 17:54:52 rodarmer Exp $
- ***************************************************************************/
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-CURL_EXTERN CURL *curl_easy_init(void);
-CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);
-CURL_EXTERN CURLcode curl_easy_perform(CURL *curl);
-CURL_EXTERN void curl_easy_cleanup(CURL *curl);
-
-/*
- * NAME curl_easy_getinfo()
- *
- * DESCRIPTION
- *
- * Request internal information from the curl session with this function.  The
- * third argument MUST be a pointer to a long, a pointer to a char * or a
- * pointer to a double (as the documentation describes elsewhere).  The data
- * pointed to will be filled in accordingly and can be relied upon only if the
- * function returns CURLE_OK.  This function is intended to get used *AFTER* a
- * performed transfer, all results from this function are undefined until the
- * transfer is completed.
- */
-CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...);
-
-
-/*
- * NAME curl_easy_duphandle()
- *
- * DESCRIPTION
- *
- * Creates a new curl session handle with the same options set for the handle
- * passed in. Duplicating a handle could only be a matter of cloning data and
- * options, internal state info and things like persistant connections cannot
- * be transfered. It is useful in multithreaded applications when you can run
- * curl_easy_duphandle() for each new thread to avoid a series of identical
- * curl_easy_setopt() invokes in every thread.
- */
-CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl);
-
-/*
- * NAME curl_easy_reset()
- *
- * DESCRIPTION
- *
- * Re-initializes a CURL handle to the default values. This puts back the
- * handle to the same state as it was in when it was just created.
- *
- * It does keep: live connections, the Session ID cache, the DNS cache and the
- * cookies.
- */
-CURL_EXTERN void curl_easy_reset(CURL *curl);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/libs/kns/curlhdr/multi.h b/libs/kns/curlhdr/multi.h
deleted file mode 100644
index bbddc13..0000000
--- a/libs/kns/curlhdr/multi.h
+++ /dev/null
@@ -1,344 +0,0 @@
-#ifndef __CURL_MULTI_H
-#define __CURL_MULTI_H
-/***************************************************************************
- *                                  _   _ ____  _
- *  Project                     ___| | | |  _ \| |
- *                             / __| | | | |_) | |
- *                            | (__| |_| |  _ <| |___
- *                             \___|\___/|_| \_\_____|
- *
- * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel at haxx.se>, et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- * $Id: multi.h,v 1.1 2012/11/09 17:54:52 rodarmer Exp $
- ***************************************************************************/
-/*
-  This is an "external" header file. Don't give away any internals here!
-
-  GOALS
-
-  o Enable a "pull" interface. The application that uses libcurl decides where
-    and when to ask libcurl to get/send data.
-
-  o Enable multiple simultaneous transfers in the same thread without making it
-    complicated for the application.
-
-  o Enable the application to select() on its own file descriptors and curl's
-    file descriptors simultaneous easily.
-
-*/
-#if defined(_WIN32) && !defined(WIN32)
-/* Chris Lewis mentioned that he doesn't get WIN32 defined, only _WIN32 so we
-   make this adjustment to catch this. */
-#define WIN32 1
-#endif
-
-#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) && \
-  !defined(__CYGWIN__) || defined(__MINGW32__)
-#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
-/* The check above prevents the winsock2 inclusion if winsock.h already was
-   included, since they can't co-exist without problems */
-#include <winsock2.h>
-#endif
-#else
-
-/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
-   libc5-based Linux systems. Only include it on system that are known to
-   require it! */
-#if defined(_AIX) || defined(NETWARE) || defined(__NetBSD__) || defined(_MINIX)
-#include <sys/select.h>
-#endif
-
-#ifndef _WIN32_WCE
-#include <sys/socket.h>
-#endif
-#include <sys/time.h>
-#include <sys/types.h>
-#endif
-
-/*
- * This header file should not really need to include "curl.h" since curl.h
- * itself includes this file and we expect user applications to do #include
- * <curl/curl.h> without the need for especially including multi.h.
- *
- * For some reason we added this include here at one point, and rather than to
- * break existing (wrongly written) libcurl applications, we leave it as-is
- * but with this warning attached.
- */
-#include "curl.h"
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-typedef void CURLM;
-
-#ifndef curl_socket_typedef
-/* Public socket typedef */
-#ifdef WIN32
-typedef SOCKET curl_socket_t;
-#define CURL_SOCKET_BAD INVALID_SOCKET
-#else
-typedef int curl_socket_t;
-#define CURL_SOCKET_BAD -1
-#endif
-#define curl_socket_typedef
-#endif /* curl_socket_typedef */
-
-typedef enum {
-  CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
-                                    curl_multi_socket*() soon */
-  CURLM_OK,
-  CURLM_BAD_HANDLE,      /* the passed-in handle is not a valid CURLM handle */
-  CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */
-  CURLM_OUT_OF_MEMORY,   /* if you ever get this, you're in deep sh*t */
-  CURLM_INTERNAL_ERROR,  /* this is a libcurl bug */
-  CURLM_BAD_SOCKET,      /* the passed in socket argument did not match */
-  CURLM_UNKNOWN_OPTION,  /* curl_multi_setopt() with unsupported option */
-  CURLM_LAST
-} CURLMcode;
-
-/* just to make code nicer when using curl_multi_socket() you can now check
-   for CURLM_CALL_MULTI_SOCKET too in the same style it works for
-   curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */
-#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM
-
-typedef enum {
-  CURLMSG_NONE, /* first, not used */
-  CURLMSG_DONE, /* This easy handle has completed. 'result' contains
-                   the CURLcode of the transfer */
-  CURLMSG_LAST /* last, not used */
-} CURLMSG;
-
-struct CURLMsg {
-  CURLMSG msg;       /* what this message means */
-  CURL *easy_handle; /* the handle it concerns */
-  union {
-    void *whatever;    /* message-specific data */
-    CURLcode result;   /* return code for transfer */
-  } data;
-};
-typedef struct CURLMsg CURLMsg;
-
-/*
- * Name:    curl_multi_init()
- *
- * Desc:    inititalize multi-style curl usage
- *
- * Returns: a new CURLM handle to use in all 'curl_multi' functions.
- */
-CURL_EXTERN CURLM *curl_multi_init(void);
-
-/*
- * Name:    curl_multi_add_handle()
- *
- * Desc:    add a standard curl handle to the multi stack
- *
- * Returns: CURLMcode type, general multi error code.
- */
-CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle,
-                                            CURL *curl_handle);
-
- /*
-  * Name:    curl_multi_remove_handle()
-  *
-  * Desc:    removes a curl handle from the multi stack again
-  *
-  * Returns: CURLMcode type, general multi error code.
-  */
-CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
-                                               CURL *curl_handle);
-
- /*
-  * Name:    curl_multi_fdset()
-  *
-  * Desc:    Ask curl for its fd_set sets. The app can use these to select() or
-  *          poll() on. We want curl_multi_perform() called as soon as one of
-  *          them are ready.
-  *
-  * Returns: CURLMcode type, general multi error code.
-  */
-CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle,
-                                       fd_set *read_fd_set,
-                                       fd_set *write_fd_set,
-                                       fd_set *exc_fd_set,
-                                       int *max_fd);
-
- /*
-  * Name:    curl_multi_perform()
-  *
-  * Desc:    When the app thinks there's data available for curl it calls this
-  *          function to read/write whatever there is right now. This returns
-  *          as soon as the reads and writes are done. This function does not
-  *          require that there actually is data available for reading or that
-  *          data can be written, it can be called just in case. It returns
-  *          the number of handles that still transfer data in the second
-  *          argument's integer-pointer.
-  *
-  * Returns: CURLMcode type, general multi error code. *NOTE* that this only
-  *          returns errors etc regarding the whole multi stack. There might
-  *          still have occurred problems on invidual transfers even when this
-  *          returns OK.
-  */
-CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle,
-                                         int *running_handles);
-
- /*
-  * Name:    curl_multi_cleanup()
-  *
-  * Desc:    Cleans up and removes a whole multi stack. It does not free or
-  *          touch any individual easy handles in any way. We need to define
-  *          in what state those handles will be if this function is called
-  *          in the middle of a transfer.
-  *
-  * Returns: CURLMcode type, general multi error code.
-  */
-CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
-
-/*
- * Name:    curl_multi_info_read()
- *
- * Desc:    Ask the multi handle if there's any messages/informationals from
- *          the individual transfers. Messages include informationals such as
- *          error code from the transfer or just the fact that a transfer is
- *          completed. More details on these should be written down as well.
- *
- *          Repeated calls to this function will return a new struct each
- *          time, until a special "end of msgs" struct is returned as a signal
- *          that there is no more to get at this point.
- *
- *          The data the returned pointer points to will not survive calling
- *          curl_multi_cleanup().
- *
- *          The 'CURLMsg' struct is meant to be very simple and only contain
- *          very basic informations. If more involved information is wanted,
- *          we will provide the particular "transfer handle" in that struct
- *          and that should/could/would be used in subsequent
- *          curl_easy_getinfo() calls (or similar). The point being that we
- *          must never expose complex structs to applications, as then we'll
- *          undoubtably get backwards compatibility problems in the future.
- *
- * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out
- *          of structs. It also writes the number of messages left in the
- *          queue (after this read) in the integer the second argument points
- *          to.
- */
-CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle,
-                                          int *msgs_in_queue);
-
-/*
- * Name:    curl_multi_strerror()
- *
- * Desc:    The curl_multi_strerror function may be used to turn a CURLMcode
- *          value into the equivalent human readable error string.  This is
- *          useful for printing meaningful error messages.
- *
- * Returns: A pointer to a zero-terminated error message.
- */
-CURL_EXTERN const char *curl_multi_strerror(CURLMcode);
-
-/*
- * Name:    curl_multi_socket() and
- *          curl_multi_socket_all()
- *
- * Desc:    An alternative version of curl_multi_perform() that allows the
- *          application to pass in one of the file descriptors that have been
- *          detected to have "action" on them and let libcurl perform.
- *          See man page for details.
- */
-#define CURL_POLL_NONE   0
-#define CURL_POLL_IN     1
-#define CURL_POLL_OUT    2
-#define CURL_POLL_INOUT  3
-#define CURL_POLL_REMOVE 4
-
-#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD
-
-typedef int (*curl_socket_callback)(CURL *easy,      /* easy handle */
-                                    curl_socket_t s, /* socket */
-                                    int what,        /* see above */
-                                    void *userp,     /* private callback
-                                                        pointer */
-                                    void *socketp);  /* private socket
-                                                        pointer */
-
-CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s,
-                                        int *running_handles);
-
-CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle,
-                                            int *running_handles);
-
-/*
- * Name:    curl_multi_timeout()
- *
- * Desc:    Returns the maximum number of milliseconds the app is allowed to
- *          wait before curl_multi_socket() or curl_multi_perform() must be
- *          called (to allow libcurl's timed events to take place).
- *
- * Returns: CURLM error code.
- */
-CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle,
-                                         long *milliseconds);
-
-#undef CINIT /* re-using the same name as in curl.h */
-
-#ifdef CURL_ISOCPP
-#define CINIT(name,type,number) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + number
-#else
-/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
-#define LONG          CURLOPTTYPE_LONG
-#define OBJECTPOINT   CURLOPTTYPE_OBJECTPOINT
-#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT
-#define OFF_T         CURLOPTTYPE_OFF_T
-#define CINIT(name,type,number) CURLMOPT_/**/name = type + number
-#endif
-
-typedef enum {
-  /* This is the socket callback function pointer */
-  CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1),
-
-  /* This is the argument passed to the socket callback */
-  CINIT(SOCKETDATA, OBJECTPOINT, 2),
-
-  CURLMOPT_LASTENTRY /* the last unused */
-} CURLMoption;
-
-
-/*
- * Name:    curl_multi_setopt()
- *
- * Desc:    Sets options for the multi handle.
- *
- * Returns: CURLM error code.
- */
-CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle,
-                                        CURLMoption option, ...);
-
-
-/*
- * Name:    curl_multi_assign()
- *
- * Desc:    This function sets an association in the multi handle between the
- *          given socket and a private pointer of the application. This is
- *          (only) useful for curl_multi_socket uses.
- *
- * Returns: CURLM error code.
- */
-CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle,
-                                        curl_socket_t sockfd, void *sockp);
-
-#ifdef __cplusplus
-} /* end of extern "C" */
-#endif
-
-#endif
diff --git a/libs/kns/curlhdr/types.h b/libs/kns/curlhdr/types.h
deleted file mode 100644
index d37d6ae..0000000
--- a/libs/kns/curlhdr/types.h
+++ /dev/null
@@ -1 +0,0 @@
-/* not used */
diff --git a/libs/kns/entrez-fetcher.c b/libs/kns/entrez-fetcher.c
deleted file mode 100644
index fb3f004..0000000
--- a/libs/kns/entrez-fetcher.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <klib/rc.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <klib/refcount.h>
-#include <kns/entrez-fetcher.h>
-#include <kns/url-fetcher.h>
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-#define URI_PARAM_LEN 70
-#define ENTREZ_FIRST_LINE_LEN 120
-#define ENTREZ_NEWLINE_DIV 80
-
-struct KEntrezFetcher
-{
-    KRefcount refcount;
-
-    KUrlFetcher * url_fetcher;
-    char * uri;
-};
-
-static const char classname[] = "KSraFetcher";
-
-rc_t KEntrezFetcherAddRef ( const KEntrezFetcher *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, classname ) )
-        {
-        case krefLimit:
-            return RC ( rcApp, rcFunction, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-rc_t KEntrezFetcherRelease ( const KEntrezFetcher *cself )
-{
-    KEntrezFetcher *self = ( KEntrezFetcher* ) cself;
-    if ( cself != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, classname ) )
-        {
-        case krefWhack:
-            {
-                KUrlFetcherRelease ( self -> url_fetcher );
-                if ( self -> uri ) free( self -> uri );
-                free( self );
-                return 0;
-            }
-        case krefLimit:
-            return RC ( rcApp, rcFunction, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-rc_t KEntrezFetcherSetupUri ( KEntrezFetcher *self, const char * uri )
-{
-    if ( uri == NULL || uri[0] == 0 )
-        return RC ( rcApp, rcFunction, rcAccessing, rcParam, rcNull );
-    if ( self == NULL )
-        return RC ( rcApp, rcFunction, rcAccessing, rcSelf, rcNull );
-
-    if ( self -> uri ) free( self -> uri );
-    self -> uri = string_dup_measure ( uri, NULL );
-    return 0;
-}
-
-
-/* composes the internal uri from the parameters and returns an estimated buffersize */
-rc_t KEntrezFetcherSetup ( KEntrezFetcher *self,
-    const char * server, const char * seq_id, 
-    const size_t max_seq_len, const uint64_t row_id, const size_t row_count,
-    size_t * buffsize )
-{
-    rc_t rc;
-    size_t uri_len;
-
-    if ( server == NULL || seq_id == NULL || buffsize == NULL )
-        return RC ( rcApp, rcFunction, rcAccessing, rcParam, rcNull );
-    if ( self == NULL )
-        return RC ( rcApp, rcFunction, rcAccessing, rcSelf, rcNull );
-
-    if ( self -> uri ) free( self -> uri );
-    uri_len = string_size( server ) + string_size( seq_id ) + URI_PARAM_LEN;
-    self -> uri = malloc( uri_len );
-    if ( self -> uri != NULL )
-    {
-        size_t num_written;
-        uint64_t seq_start, seq_stop;
-        
-        seq_start = max_seq_len * ( row_id - 1 ) + 1;
-        seq_stop = max_seq_len * ( row_id + row_count - 1 );
-        
-        if ( seq_stop <= seq_start )
-            return RC ( rcApp, rcFunction, rcAccessing, rcSelf, rcNull );
-            
-        *buffsize = ( seq_stop - seq_start );
-        *buffsize += ( *buffsize / ENTREZ_NEWLINE_DIV );
-        *buffsize += ENTREZ_FIRST_LINE_LEN;
-
-        rc = string_printf ( self->uri, uri_len, &num_written, 
-            "%s?db=nucleotide&id=%s&rettype=fasta&seq_start=%lu&seq_stop=%lu", 
-            server, seq_id, seq_start, seq_stop );
-    }
-    else
-        rc = RC( rcExe, rcString, rcAllocating, rcMemory, rcExhausted );
-    
-    return rc;
-}
-
-
-/* remove the first line, including it's line-feed */
-static void remove_first_line( char * s, size_t * len )
-{
-    char * p = string_chr ( s, *len, '\n' );
-    if ( p )
-    {
-        *len -= ( p - s ) + 1;
-        memmove( s, p + 1, *len );
-    }
-}
-
-
-/* filters out all char's c by using a filtered temp-buffer... */
-static void filter_char( char * s, size_t * len, const char c )
-{
-    size_t src, dst;
-
-    if ( s == NULL || len == NULL || *len == 0 )
-        return;
-
-    dst = 0;
-    for ( src = 0; src < *len; ++src )
-    {
-        char ch = s[ src ];
-        if ( ch != c )
-        {
-            if ( src != dst )
-                s[ dst ] = ch;
-            ++dst;
-        }
-    }
-    *len = dst;
-}
-
-
-rc_t KEntrezFetcherRead ( KEntrezFetcher *self,
-                          void *dst, size_t dst_size, size_t *num_read )
-{
-    rc_t rc;
-    
-    if ( dst == NULL || dst_size == 0 || num_read == NULL )
-        return RC ( rcApp, rcFunction, rcAccessing, rcParam, rcNull );
-    if ( self == NULL )
-        return RC ( rcApp, rcFunction, rcAccessing, rcSelf, rcNull );
-    if ( self -> url_fetcher == NULL || self -> uri == NULL )
-        return RC ( rcApp, rcFunction, rcAccessing, rcParam, rcNull );
-
-    rc = KUrlFetcherRead( self -> url_fetcher, self -> uri, dst, dst_size, num_read );
-    if ( rc == 0 )
-    {
-        remove_first_line( dst, num_read );
-        filter_char( dst, num_read, '\n' );
-    }
-    return rc;
-}
-
-
-rc_t KEntrezFetcherMake ( KEntrezFetcher **fetcher, KUrlFetcher * url_fetcher )
-{
-    rc_t rc;
-
-    if ( fetcher == NULL || url_fetcher == NULL )
-        rc = RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-    else
-    {
-        *fetcher = malloc( sizeof( *fetcher ) );
-        if ( *fetcher != NULL )
-        {
-            (*fetcher) -> url_fetcher = url_fetcher;
-            KUrlFetcherAddRef ( url_fetcher );
-            (*fetcher) -> uri = NULL;
-            rc = 0;
-        }
-        else
-            rc = RC( rcApp, rcFunction, rcListing, rcParam, rcNull );
-    }
-    return rc;
-}
diff --git a/libs/kns/kns_manager.c b/libs/kns/kns_manager.c
deleted file mode 100644
index c38fa47..0000000
--- a/libs/kns/kns_manager.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kns/extern.h>
-
-#include <klib/refcount.h>
-#include <klib/rc.h>
-#include <kfs/dyload.h>
-
-#include "kns_mgr_priv.h"
-
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-
-static const char knsmanager_classname [] = "KNSManager";
-static struct KNSManager * kns_mgr_singleton = NULL;
-static KDylib *lib_curl_handle = NULL;
-
-
-LIB_EXPORT rc_t CC KNSManagerAddRef ( const struct KNSManager *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd( &self->refcount, knsmanager_classname ) )
-        {
-        case krefOkay:
-            break;
-        case krefZero:
-            return RC( rcNS, rcMgr, rcAttaching, rcRefcount, rcIncorrect);
-        case krefLimit:
-            return RC( rcNS, rcMgr, rcAttaching, rcRefcount, rcExhausted);
-        case krefNegative:
-            return RC( rcNS, rcMgr, rcAttaching, rcRefcount, rcInvalid);
-        default:
-            return RC( rcNS, rcMgr, rcAttaching, rcRefcount, rcUnknown);
-        }
-    }
-    return 0;
-}
-
-
-static rc_t KNSManagerLoadLib( struct KNSManager *self )
-{
-    KDyld *dl;
-    /* make a dynamic-library loader */
-    rc_t rc = KDyldMake ( &dl );
-    if ( rc == 0 )
-    {
-        /* load the curl-library */
-        rc = KDyldLoadLib( dl, &lib_curl_handle, LPFX "curl" SHLX );
-        if ( rc == 0 )
-        {
-            KSymAddr *sym;
-
-            /* resolve symbols */
-
-            /* curl_easy_init() */
-            rc = KDylibSymbol( lib_curl_handle, &sym, "curl_easy_init" );
-            if ( rc == 0 )
-            {
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_easy_init_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* curl_easy_cleanup() */
-            if ( rc == 0 )
-            {
-                rc = KDylibSymbol( lib_curl_handle, &sym, "curl_easy_cleanup" );
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_easy_cleanup_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* curl_easy_setopt() */
-            if ( rc == 0 )
-            {
-                rc = KDylibSymbol( lib_curl_handle, &sym, "curl_easy_setopt" );
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_easy_setopt_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* curl_easy_perform() */
-            if ( rc == 0 )
-            {
-                rc = KDylibSymbol( lib_curl_handle, &sym, "curl_easy_perform" );
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_easy_perform_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* curl_easy_getinfo() */
-            if ( rc == 0 )
-            {
-                rc = KDylibSymbol( lib_curl_handle, &sym, "curl_easy_getinfo" );
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_easy_getinfo_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* curl_slist_append() */
-            if ( rc == 0 )
-            {
-                rc = KDylibSymbol( lib_curl_handle, &sym, "curl_slist_append" );
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_slist_append_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* curl_version() */
-            if ( rc == 0 )
-            {
-                rc = KDylibSymbol( lib_curl_handle, &sym, "curl_version" );
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_version_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* curl_slist_free_all() */
-            if ( rc == 0 )
-            {
-                rc = KDylibSymbol( lib_curl_handle, &sym, "curl_slist_free_all" );
-                KSymAddrAsFunc( sym, ( fptr_t* ) &(self->curl_slist_free_all_fkt) );
-                KSymAddrRelease( sym );
-            }
-
-            /* bail on error */
-            if ( rc != 0 )
-            {
-                KDylibRelease ( lib_curl_handle );
-                lib_curl_handle = NULL;
-                self->curl_easy_init_fkt = NULL;
-                self->curl_easy_cleanup_fkt = NULL;
-                self->curl_easy_setopt_fkt = NULL;
-                self->curl_easy_perform_fkt = NULL;
-                self->curl_slist_append_fkt = NULL;
-                self->curl_version_fkt = NULL;
-                self->curl_easy_getinfo_fkt = NULL;
-            }
-        }
-        KDyldRelease ( dl );
-    }
-
-    return rc;
-
-}
-
-
-LIB_EXPORT rc_t CC KNSManagerMake( struct KNSManager **self )
-{
-    rc_t rc = 0;
-
-    if ( self == NULL )
-        return RC( rcNS, rcMgr, rcConstructing, rcSelf, rcNull );
-
-    *self = kns_mgr_singleton;
-    if ( kns_mgr_singleton != NULL )
-    {
-        rc = KNSManagerAddRef( kns_mgr_singleton );
-        if ( rc != 0 )
-            *self = NULL;
-    }
-    else
-    {
-        struct KNSManager *tmp;
-        tmp = calloc( 1, sizeof * tmp );
-        if ( tmp == NULL )
-            rc = RC( rcNS, rcMgr, rcConstructing, rcMemory, rcExhausted );
-        else
-        {
-            tmp->create_rc = KNSManagerLoadLib( tmp );
-            KRefcountInit( &tmp->refcount, 1, "KNS", "make", knsmanager_classname );
-        }
-        *self = tmp;
-        kns_mgr_singleton = tmp;
-    }
-
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KNSManagerAvail( const struct KNSManager *self )
-{
-    if ( self == NULL )
-        return RC( rcNS, rcMgr, rcReading, rcSelf, rcNull );
-    return self->create_rc;
-}
-
-
-LIB_EXPORT rc_t CC KNSManagerCurlVersion( const struct KNSManager *self, const char ** version_string )
-{
-    if ( self == NULL )
-        return RC( rcNS, rcMgr, rcReading, rcSelf, rcNull );
-    if ( version_string == NULL )
-        return RC( rcNS, rcMgr, rcReading, rcParam, rcNull );
-    if ( self->create_rc != 0 )
-        return self->create_rc;
-    *version_string = self->curl_version_fkt();
-    return 0;
-}
-
-
-static rc_t KNSManagerDestroy( struct KNSManager *self )
-{
-    if ( self == NULL )
-        return RC( rcNS, rcFile, rcDestroying, rcSelf, rcNull );
-
-    KRefcountWhack( &self->refcount, knsmanager_classname );
-
-    free( self );
-    kns_mgr_singleton = NULL;
-    
-    KDylibRelease ( lib_curl_handle );
-    lib_curl_handle = NULL;
-    
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC KNSManagerRelease( const struct KNSManager *self )
-{
-    rc_t rc = 0;
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop( &self->refcount, knsmanager_classname ) )
-        {
-        case krefOkay:
-        case krefZero:
-            break;
-        case krefWhack:
-            rc = KNSManagerDestroy( ( struct KNSManager * )self );
-            break;
-        case krefNegative:
-            return RC( rcNS, rcMgr, rcAttaching, rcRefcount, rcInvalid );
-        default:
-            rc = RC( rcNS, rcMgr, rcAttaching, rcRefcount, rcUnknown );
-            break;            
-        }
-    }
-    return rc;
-}
diff --git a/libs/kns/kns_mgr_priv.h b/libs/kns/kns_mgr_priv.h
deleted file mode 100644
index eb52829..0000000
--- a/libs/kns/kns_mgr_priv.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_kns_mgr_priv_
-#define _h_kns_mgr_priv_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "curlhdr/curl.h"
-#include "curlhdr/easy.h"
-
-/* this is the hidden manager-struct: a refcount with some function-pointer's */
-struct KNSManager
-{
-    KRefcount refcount;
-
-    rc_t create_rc;
-
-    /* curl-easy-function-pointers... */
-    CURL*    ( CC * curl_easy_init_fkt )    ( void );
-    void     ( CC * curl_easy_cleanup_fkt ) ( CURL * handle );
-    CURLcode ( CC * curl_easy_setopt_fkt )  ( CURL *handle, CURLoption option, ... );
-    CURLcode ( CC * curl_easy_perform_fkt ) ( CURL * handle );
-    CURLcode ( CC * curl_easy_getinfo_fkt ) ( CURL *curl, CURLINFO info, ... );
-    char *   ( CC * curl_version_fkt )      ( void );
-    struct curl_slist* ( CC * curl_slist_append_fkt ) ( struct curl_slist * list, const char * string );
-    void ( CC * curl_slist_free_all_fkt ) ( struct curl_slist * list );
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libs/kns/libkurl.vers b/libs/kns/libkurl.vers
deleted file mode 100644
index 7ee7020..0000000
--- a/libs/kns/libkurl.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.0.10
diff --git a/libs/kns/stream-from-files.c b/libs/kns/stream-from-files.c
deleted file mode 100644
index 2ac4e0b..0000000
--- a/libs/kns/stream-from-files.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-
-typedef struct KStreamFromFiles KStreamFromFiles;
-#define KSTREAM_IMPL KStreamFromFiles
-
-#include <kns/extern.h>
-#include <kns/stream.h>
-#include <kns/impl.h>
-#include <kfs/file.h>
-#include <kfs/impl.h>
-#include <klib/rc.h>
-
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h>
-
-#include "stream-priv.h"
-
-
-/* the object structure for THIS implementation */
-struct  KStreamFromFiles
-{
-    /* THIS MUST COME FIRST */
-    KStream dad;
-
-    uint64_t in_pos;
-    uint64_t out_pos;
-
-    const KFile *in;
-    KFile *out;
-};
-
-
-/* the required methods */
-
-static
-rc_t CC KStreamFromFilesWhack ( KStreamFromFiles *self )
-{
-    KFileRelease ( self -> in );
-    KFileRelease ( self -> out );
-    free ( self );
-    return 0;
-}
-
-static
-rc_t CC KStreamFromFilesRead ( const KStreamFromFiles *cself,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc = KFileRead ( cself -> in, cself -> in_pos, buffer, bsize, num_read );
-    if ( rc == 0 )
-    {
-        KStreamFromFiles *self = ( KStreamFromFiles* ) cself;
-        self -> in_pos += * num_read;
-    }
-
-    return rc;
-}
-
-static
-rc_t CC KStreamFromFilesWrite ( KStreamFromFiles *self,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    rc_t rc = KFileWrite ( self -> out, self -> out_pos, buffer, size, num_writ );
-    if ( rc == 0 )
-        self -> out_pos += * num_writ;
-
-    return rc;
-}
-
-/* the vtable */
-static KStream_vt_v1 vtKStreamFromFiles =
-{
-    1, 0,
-    KStreamFromFilesWhack,
-    KStreamFromFilesRead,
-    KStreamFromFilesWrite
-};
-
-
-/* FromKFilePair
- *  create a KStream from a pair of KFiles
- *  maintains a "pos" marker for input and output files
- *
- *  "strm" [ OUT ] - resultant KStream
- *
- *  "read" [ IN, NULL OKAY ] - file to use for stream reading
- *
- *  "write" [ IN, NULL OKAY ] - file to use for stream writing
- *
- * NB - EITHER "read" or "write" may be NULL, but not both.
- */
-LIB_EXPORT rc_t CC KStreamFromKFilePair ( KStream **strm,
-    const KFile *read, KFile *write )
-{
-    rc_t rc;
-
-    if ( strm == NULL )
-        rc = RC ( rcNS, rcStream, rcConstructing, rcParam, rcNull );
-    else
-    {
-        bool can_read = ( read == NULL ) ? false : read -> read_enabled;
-        bool can_write = ( write == NULL ) ? false : write -> write_enabled;
-
-        if ( ! can_read && ! can_write )
-            rc = RC ( rcNS, rcStream, rcConstructing, rcFile, rcNoPerm );
-        else
-        {
-            KStreamFromFiles *sff = calloc ( 1, sizeof *sff );
-            if ( sff == NULL )
-                rc = RC ( rcNS, rcStream, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                rc = KStreamInit ( & sff -> dad, ( const KStream_vt* ) & vtKStreamFromFiles, 
-                                   "KStreamFromFilePair", "adapter", can_read, can_write );
-                if ( rc == 0 )
-                {
-                    rc = KFileAddRef ( read );
-                    if ( rc == 0 )
-                    {
-                        rc = KFileAddRef ( write );
-                        if ( rc ==  0 )
-                        {
-                            sff -> in = read;
-                            sff -> out = write;
-                            *strm = & sff -> dad;
-
-                            return 0;
-                        }
-
-                        KFileRelease ( read );
-                    }
-                }
-
-                free ( sff );
-            }
-        }
-
-        *strm = NULL;
-    }
-
-    return rc;
-}
diff --git a/libs/kns/stream-from-streams.c b/libs/kns/stream-from-streams.c
deleted file mode 100644
index a788403..0000000
--- a/libs/kns/stream-from-streams.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-
-typedef struct KStreamFromStreams KStreamFromStreams;
-#define KSTREAM_IMPL KStreamFromStreams
-
-#include <kns/extern.h>
-#include <kns/stream.h>
-#include <kns/impl.h>
-#include <klib/rc.h>
-
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h>
-
-#include "stream-priv.h"
-
-/* the object structure for THIS implementation */
-struct  KStreamFromStreams
-{
-    /* THIS MUST COME FIRST */
-    KStream dad;
-
-    const KStream *in;
-    KStream *out;
-};
-
-
-/* the required methods */
-
-static
-rc_t CC KStreamFromStreamsWhack ( KStreamFromStreams *self )
-{
-    KStreamRelease ( self -> in );
-    KStreamRelease ( self -> out );
-    free ( self );
-    return 0;
-}
-
-static
-rc_t CC KStreamFromStreamsRead ( const KStreamFromStreams *self,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    return KStreamRead ( self -> in, buffer, bsize, num_read );
-}
-
-static
-rc_t CC KStreamFromStreamsWrite ( KStreamFromStreams *self,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    return KStreamWrite ( self -> out, buffer, size, num_writ );
-}
-
-/* the vtable */
-static KStream_vt_v1 vtKStreamFromStreams =
-{
-    1, 0,
-    KStreamFromStreamsWhack,
-    KStreamFromStreamsRead,
-    KStreamFromStreamsWrite
-};
-
-
-/* FromKStreamPair
- *  create a KStream from a pair of KStreams
- *
- *  "strm" [ OUT ] - resultant KStream
- *
- *  "read" [ IN, NULL OKAY ] - stream to use for input
- *
- *  "write" [ IN, NULL OKAY ] - stream to use for output
- *
- * NB - EITHER "read" or "write" may be NULL, but not both.
- */
-LIB_EXPORT rc_t CC KStreamFromKStreamPair ( KStream **strm,
-    const KStream *read, KStream *write )
-{
-    rc_t rc;
-
-    if ( strm == NULL )
-        rc = RC ( rcNS, rcStream, rcConstructing, rcParam, rcNull );
-    else
-    {
-        bool can_read = ( read == NULL ) ? false : read -> read_enabled;
-        bool can_write = ( write == NULL ) ? false : write -> write_enabled;
-
-        if ( ! can_read && ! can_write )
-            rc = RC ( rcNS, rcStream, rcConstructing, rcStream, rcNoPerm );
-        else
-        {
-            KStreamFromStreams *sfs = calloc ( 1, sizeof *sfs );
-            if ( sfs == NULL )
-                rc = RC ( rcNS, rcStream, rcConstructing, rcMemory, rcExhausted );
-            else
-            {
-                rc = KStreamInit ( & sfs -> dad, ( const KStream_vt* ) & vtKStreamFromStreams, 
-                                   "KStreamFromStreamPair", "adapter", can_read, can_write );
-                if ( rc == 0 )
-                {
-                    rc = KStreamAddRef ( read );
-                    if ( rc == 0 )
-                    {
-                        rc = KStreamAddRef ( write );
-                        if ( rc ==  0 )
-                        {
-                            sfs -> in = read;
-                            sfs -> out = write;
-                            *strm = & sfs -> dad;
-
-                            return 0;
-                        }
-
-                        KStreamRelease ( read );
-                    }
-                }
-
-                free ( sfs );
-            }
-        }
-
-        *strm = NULL;
-    }
-
-    return rc;
-}
diff --git a/libs/kns/stream-priv.h b/libs/kns/stream-priv.h
deleted file mode 100644
index 0b6a4b0..0000000
--- a/libs/kns/stream-priv.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-
-/* VDB.v2 is end of life, and introducing new object types is
-   dangerous. For our purposes, just call a stream a file */
-#ifndef rcStream
-#define rcStream rcFile
-#endif
diff --git a/libs/kns/stream.c b/libs/kns/stream.c
deleted file mode 100644
index 2b67caf..0000000
--- a/libs/kns/stream.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kns/extern.h>
-#include <kns/impl.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include "stream-priv.h"
-
-
-/*--------------------------------------------------------------------------
- * KStream
- *  a file
- */
-
-/* Destroy
- *  destroy stream
- */
-static
-rc_t KStreamDestroy ( KStream *self )
-{
-    if ( self == NULL )
-        return RC ( rcNS, rcStream, rcDestroying, rcSelf, rcNull );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        return ( * self -> vt -> v1 . destroy ) ( self );
-    }
-
-    return RC ( rcNS, rcStream, rcDestroying, rcInterface, rcBadVersion );
-}
-
-/* AddRef
- *  creates a new reference
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC KStreamAddRef ( const KStream *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KStream" ) )
-        {
-        case krefLimit:
-            return RC ( rcNS, rcStream, rcAttaching, rcRange, rcExcessive );
-        case krefNegative:
-            return RC ( rcNS, rcStream, rcAttaching, rcSelf, rcInvalid );
-        default:
-            break;
-        }
-    }
-    return 0;
-}
-
-/* Release
- *  discard reference to file
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC KStreamRelease ( const KStream *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "KStream" ) )
-        {
-        case krefWhack:
-            return KStreamDestroy ( ( KStream* ) self );
-        case krefLimit:
-            return RC ( rcNS, rcStream, rcReleasing, rcRange, rcExcessive );
-        default:
-            break;
-        }
-    }
-
-    return 0;
-}
-
-/* Read
- *  read data from stream
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT ] - return parameter giving number of bytes
- *  actually read. when returned value is zero and return code is
- *  also zero, interpreted as end of stream.
- */
-LIB_EXPORT rc_t CC KStreamRead ( const KStream *self,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    if ( num_read == NULL )
-        return RC ( rcNS, rcStream, rcReading, rcParam, rcNull );
-
-    * num_read = 0;
-
-    if ( self == NULL )
-        return RC ( rcNS, rcStream, rcReading, rcSelf, rcNull );
-
-    if ( ! self -> read_enabled )
-        return RC ( rcNS, rcStream, rcReading, rcStream, rcNoPerm );
-
-    if ( buffer == NULL )
-        return RC ( rcNS, rcStream, rcReading, rcBuffer, rcNull );
-    if ( bsize == 0 )
-        return RC ( rcNS, rcStream, rcReading, rcBuffer, rcInsufficient );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        return ( * self -> vt -> v1 . read ) ( self, buffer, bsize, num_read );
-    }
-
-    return RC ( rcNS, rcStream, rcReading, rcInterface, rcBadVersion );
-}
-
-/* ReadAll
- *  read from stream until "bsize" bytes have been retrieved
- *  or until end-of-input
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT ] - return parameter giving number of bytes
- *  actually read. when returned value is zero and return code is
- *  also zero, interpreted as end of stream.
- */
-LIB_EXPORT rc_t CC KStreamReadAll ( const KStream *self,
-    void *buffer, size_t bsize, size_t *num_read )
-{
-    rc_t rc;
-    uint8_t *b;
-    size_t total, count;
-
-    if ( num_read == NULL )
-        return RC ( rcNS, rcStream, rcReading, rcParam, rcNull );
-
-    * num_read = 0;
-
-    if ( self == NULL )
-        return RC ( rcNS, rcStream, rcReading, rcSelf, rcNull );
-
-    if ( ! self -> read_enabled )
-        return RC ( rcNS, rcStream, rcReading, rcStream, rcNoPerm );
-
-    if ( buffer == NULL )
-        return RC ( rcNS, rcStream, rcReading, rcBuffer, rcNull );
-    if ( bsize == 0 )
-        return RC ( rcNS, rcStream, rcReading, rcBuffer, rcInsufficient );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        for ( rc = 0, b = buffer, total = 0; total < bsize; total += count )
-        {
-            count = 0;
-            rc = ( * self -> vt -> v1 . read ) ( self, b + total, bsize - total, & count );
-            if ( rc != 0 )
-                break;
-            if ( count == 0 )
-                break;
-        }
-        break;
-    default:
-        return RC ( rcNS, rcStream, rcReading, rcInterface, rcBadVersion );
-    }
-
-    if ( total != 0 )
-    {
-        * num_read = total;
-        return 0;
-    }
-
-    return rc;
-}
-
-/* Write
- *  send data to stream
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-LIB_EXPORT rc_t CC KStreamWrite ( KStream *self,
-    const void *buffer, size_t size, size_t *num_writ)
-{
-    size_t ignore;
-    if ( num_writ == NULL )
-        num_writ = & ignore;
-
-    * num_writ = 0;
-
-    if ( self == NULL )
-        return RC ( rcNS, rcStream, rcWriting, rcSelf, rcNull );
-
-    if ( ! self -> write_enabled )
-        return RC ( rcNS, rcStream, rcWriting, rcStream, rcNoPerm );
-
-    if ( size == 0 )
-        return 0;
-    if ( buffer == NULL )
-        return RC ( rcNS, rcStream, rcWriting, rcBuffer, rcNull );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        return ( * self -> vt -> v1 . write ) ( self, buffer, size, num_writ );
-    }
-
-    return RC ( rcNS, rcStream, rcWriting, rcInterface, rcBadVersion );
-}
-
-/* WriteAll
- *  write to stream until "size" bytes have been transferred
- *  or until no further progress can be made
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-LIB_EXPORT rc_t CC KStreamWriteAll ( KStream *self,
-    const void *buffer, size_t size, size_t *num_writ )
-{
-    rc_t rc;
-    const uint8_t *b;
-    size_t total, count;
-
-    size_t ignore;
-    if ( num_writ == NULL )
-        num_writ = & ignore;
-
-    * num_writ = 0;
-
-    if ( self == NULL )
-        return RC ( rcNS, rcStream, rcWriting, rcSelf, rcNull );
-
-    if ( ! self -> write_enabled )
-        return RC ( rcNS, rcStream, rcWriting, rcStream, rcNoPerm );
-
-    if ( size == 0 )
-        return 0;
-    if ( buffer == NULL )
-        return RC ( rcNS, rcStream, rcWriting, rcBuffer, rcNull );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        for ( rc = 0, b = buffer, total = 0; total < size; total += count )
-        {
-            count = 0;
-            rc = ( * self -> vt -> v1 . write ) ( self, b + total, size - total, & count );
-            if ( rc != 0 )
-                break;
-            if ( count == 0 )
-                break;
-        }
-        break;
-    default:
-        return RC ( rcNS, rcStream, rcWriting, rcInterface, rcBadVersion );
-    }
-
-    * num_writ = total;
-    if ( total == size )
-        return 0;
-    if ( rc == 0 )
-        return RC ( rcNS, rcStream, rcWriting, rcTransfer, rcIncomplete );
-    return rc;
-}
-
-
-/* Init
- *  initialize a newly allocated stream object
- */
-LIB_EXPORT rc_t CC KStreamInit ( KStream *self, const KStream_vt *vt,
-    const char *classname, const char *strname,
-    bool read_enabled, bool write_enabled )
-{
-    if ( self == NULL )
-        return RC ( rcNS, rcStream, rcConstructing, rcSelf, rcNull );
-    if ( vt == NULL )
-        return RC ( rcNS, rcStream, rcConstructing, rcInterface, rcNull );
-    switch ( vt -> v1 . maj )
-    {
-    case 0:
-        return RC ( rcNS, rcStream, rcConstructing, rcInterface, rcInvalid );
-
-    case 1:
-        switch ( vt -> v1 . min )
-        {
-            /* ADD NEW MINOR VERSION CASES HERE */
-        case 0:
-#if _DEBUGGING
-        if ( vt -> v1 . write == NULL         ||
-             vt -> v1 . read == NULL          ||
-             vt -> v1 . destroy == NULL )
-        return RC ( rcNS, rcStream, rcConstructing, rcInterface, rcNull );
-#endif
-            break;
-        default:
-            return RC ( rcNS, rcStream, rcConstructing, rcInterface, rcBadVersion );
-        }
-        break;
-
-    default:
-        return RC ( rcNS, rcStream, rcConstructing, rcInterface, rcBadVersion );
-    }
-
-    self -> vt = vt;
-    KRefcountInit ( & self -> refcount, 1, classname, "init", strname );
-    self -> read_enabled = ( uint8_t ) ( read_enabled != 0 );
-    self -> write_enabled = ( uint8_t ) ( write_enabled != 0 );
-
-    return 0;
-}
diff --git a/libs/kns/url-fetcher-curl.c b/libs/kns/url-fetcher-curl.c
deleted file mode 100644
index 12c7073..0000000
--- a/libs/kns/url-fetcher-curl.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kns/extern.h>
-#include <klib/rc.h>
-#include <kns/manager.h>
-#include <kns/url-fetcher.h>
-
-/* IMPORTANT define this before including the *-impl.h !!!! */
-#define KURL_FETCHER_IMPL KUrlFetcherCurl
-#include "url-fetcher-impl.h"
-
-#include "kns_mgr_priv.h"
-
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-/*
-#include <curl/curl.h>
-#include <curl/types.h>
-#include <curl/easy.h>
-*/
-
-/*--------------------------------------------------------------------------
- * KVectorNamelist ... a generic Namelist based on a Vector
- */
-struct KUrlFetcherCurl
-{
-    KUrlFetcher dad;
-
-    struct KNSManager *kns_mgr;
-    CURL *curl_handle;
-
-    /* this buffer is passed in from read() to the callback 
-       it is owned by the caller not this class */
-    char *buff;
-    size_t buffsize;
-    size_t in_buff;
-    
-    /* this is the spill-over buffer, used by the callback
-       if the caller-provided buffer is too small */
-    char *spill_over_buff;
-    size_t spill_over_buffsize;
-};
-
-/* implementation of the the virtual KUrlFetcher-Interface for curl */
-
-static
-rc_t CC KUrlFetcherCurlDestroy ( KUrlFetcherCurl *self )
-{
-    self->kns_mgr->curl_easy_cleanup_fkt( self -> curl_handle );
-    KNSManagerRelease( self->kns_mgr );
-
-    if ( self -> spill_over_buff != NULL )
-        free( self -> spill_over_buff );
-    free ( self );
-    return 0;
-}
-
-static
-size_t CC KUrlFetcherCurlCallback( void *ptr, size_t size, size_t nmemb, void *data )
-{
-    size_t given_bytes = size * nmemb; /* calculate the size given in ptr */
-    KUrlFetcherCurl *self = ( KUrlFetcherCurl * )data;
-    if ( self != NULL )
-    {
-        if ( ( self -> in_buff + given_bytes ) > self -> buffsize )
-        {
-            /* the caller-provided buffer IS NOT enough... */
-            size_t to_copy = ( self -> buffsize - self -> in_buff );
-            if ( to_copy > 0 )
-            {
-                /* the caller-provided buffer can hold a part of it... */
-                if ( self -> buff )
-                {
-                    memcpy( &( self -> buff [ self -> in_buff ] ), ptr, given_bytes );
-                    self -> in_buff += given_bytes;
-                }
-            }
-            else
-            {
-                /* the spill-over-buffer has to take care of the rest... */
-                size_t remaining = ( given_bytes - to_copy );
-                if ( self -> spill_over_buff == NULL )
-                    self -> spill_over_buff = malloc( remaining );
-                else
-                    self -> spill_over_buff = realloc( self -> spill_over_buff,
-                                                       self -> spill_over_buffsize + remaining );
-                if ( self -> spill_over_buff != NULL )
-                {
-                    memcpy( &( self -> spill_over_buff [ self -> spill_over_buffsize ] ), ptr, remaining );
-                    self -> spill_over_buffsize += remaining;
-                }
-            }
-        }
-        else
-        {
-            /* the caller-provided buffer IS enough... */
-            if ( self -> buff )
-            {
-                memcpy( &( self -> buff [ self -> in_buff ] ), ptr, given_bytes );
-                self -> in_buff += given_bytes;
-            }
-        }
-    }
-    return given_bytes;
-}
-
-
-static
-rc_t CC KUrlFetcherCurlRead( KUrlFetcherCurl *self, const char * uri,
-                          void *dst, size_t to_read, size_t *num_read )
-{
-    CURLcode rcc;
-
-    /* the virtual interface has already checked that self is not NULL */
-    if ( uri == NULL || dst == NULL || to_read == 0 )
-        return RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-
-    self -> buff = dst;
-    self -> buffsize = to_read;
-    self -> in_buff = 0;
-
-    if ( self -> spill_over_buff != NULL )
-        free( self -> spill_over_buff );
-    self -> spill_over_buff = NULL;
-    self -> spill_over_buffsize = 0;
-
-    if ( self -> curl_handle == NULL )
-        return RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-
-    rcc = self->kns_mgr->curl_easy_setopt_fkt( self -> curl_handle, CURLOPT_URL, uri );
-    if ( rcc != CURLE_OK )
-    {
-        if ( num_read ) *num_read = 0;
-        return RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rcc = self->kns_mgr->curl_easy_perform_fkt( self-> curl_handle );
-        if ( rcc != CURLE_OK )
-        {
-            if ( num_read ) *num_read = 0;
-            return RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-        }
-    }
-    
-    if ( num_read )
-        *num_read = self -> in_buff;
-
-    return 0;
-}
-
-static KUrlFetcher_vt_v1 sKUrlFetcherCurl_vt =
-{
-    1, 0,
-    KUrlFetcherCurlDestroy,
-    KUrlFetcherCurlRead,
-};
-
-LIB_EXPORT rc_t CC KUrlFetcherCurlMake( KUrlFetcher **fetcher, const bool verbose )
-{
-    rc_t rc;
-
-    if ( fetcher == NULL )
-        rc = RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-    else
-    {
-        KUrlFetcherCurl * tmp;
-        *fetcher = NULL;
-        tmp = malloc( sizeof( * tmp ) );
-        if ( tmp != NULL )
-        {
-            rc = KUrlFetcherInit ( &(tmp)->dad, (const KUrlFetcher_vt*)&sKUrlFetcherCurl_vt );
-            if ( rc != 0 )
-                free( tmp );
-            else
-            {
-                tmp -> buff = NULL;
-                tmp -> buffsize = 0;
-                tmp -> in_buff = 0;
-
-                tmp -> spill_over_buff = NULL;
-                tmp -> spill_over_buffsize = 0;
-
-                rc = KNSManagerMake( &tmp->kns_mgr );
-                if ( rc == 0 )
-                {
-                    tmp -> curl_handle = tmp -> kns_mgr -> curl_easy_init_fkt();
-                    if ( tmp -> curl_handle == NULL )
-                    {
-                        KNSManagerRelease( tmp->kns_mgr );
-                        free( tmp );
-                        rc = RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-                    }
-                    else
-                    {
-                        CURLcode rcc;
-                        
-                        if ( verbose )
-                            tmp -> kns_mgr -> curl_easy_setopt_fkt( tmp -> curl_handle, CURLOPT_VERBOSE , 1 );
-                        
-                        rcc = tmp -> kns_mgr -> curl_easy_setopt_fkt( tmp -> curl_handle, CURLOPT_WRITEFUNCTION, KUrlFetcherCurlCallback );
-                        if ( rcc != CURLE_OK )
-                        {
-                            KNSManagerRelease( tmp -> kns_mgr );
-                            free( tmp );
-                            rc = RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-                        }
-                        else
-                        {
-                            rcc = tmp -> kns_mgr -> curl_easy_setopt_fkt( tmp -> curl_handle, CURLOPT_WRITEDATA, (void *)tmp );
-                            if ( rcc != CURLE_OK )
-                            {
-                                KNSManagerRelease( tmp -> kns_mgr );
-                                free( tmp );
-                                rc = RC ( rcApp, rcFunction, rcConstructing, rcParam, rcNull );
-                            }
-                            else
-                                *fetcher = & tmp -> dad;
-                        }
-                    }
-                }
-            }
-        }
-        else
-            rc = RC( rcApp, rcFunction, rcListing, rcParam, rcNull );
-    }
-    return rc;
-}
diff --git a/libs/kns/url-fetcher-impl.h b/libs/kns/url-fetcher-impl.h
deleted file mode 100644
index 0965bfa..0000000
--- a/libs/kns/url-fetcher-impl.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/*--------------------------------------------------------------------------
- * this file contains the private parts (v-table) of a generic url-fetcher
-    the user has to provide 3 things to the fetcher:
-        (1) the url to fetch via vt->set_url()
-        (2) eventually a context pointer via vt->set_context()
-        (3) a callback function via vt->set_callback()
-    before the user can "start" the fetcher:
-        via vt->fetch()
- */
-
-#ifndef _h_url_fetcher_impl_
-#define _h_url_fetcher_impl_
-
-#ifndef _h_kns_extern_
-#include <kns/extern.h>
-#endif
-
-#ifndef _h_kfs_file_
-#include <kfs/file.h>
-#endif
-
-#ifndef _h_url_fetcher_
-#include <kns/url-fetcher.h>
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-typedef union KUrlFetcher_vt KUrlFetcher_vt;
-
-/*--------------------------------------------------------------------------
- * KUrl_fetcher
- *  a virtual url-fetcher
- */
-struct KUrlFetcher
-{
-    const KUrlFetcher_vt *vt;
-    KRefcount refcount;
-};
-
-
-#ifndef KURL_FETCHER_IMPL
-#define KURL_FETCHER_IMPL KUrlFetcher
-#endif
-
-
-typedef struct KUrlFetcher_vt_v1 KUrlFetcher_vt_v1;
-struct KUrlFetcher_vt_v1
-{
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t ( CC * destroy ) ( KURL_FETCHER_IMPL *self );
-    rc_t ( CC * read ) ( KURL_FETCHER_IMPL *self, const char * uri,
-                      void *dst, size_t to_read, size_t *num_read );
-    rc_t ( CC * get_size ) ( KURL_FETCHER_IMPL *self, size_t *num_size );
-    /* end minor version == 0 */
-};
-
-union KUrlFetcher_vt
-{
-    KUrlFetcher_vt_v1 v1;
-};
-
-/* Init
- */
-KNS_EXTERN rc_t CC KUrlFetcherInit ( KUrlFetcher *self, const KUrlFetcher_vt *vt );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libs/kns/url-fetcher.c b/libs/kns/url-fetcher.c
deleted file mode 100644
index ff9e16b..0000000
--- a/libs/kns/url-fetcher.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kns/extern.h>
-#include <klib/rc.h>
-#include <klib/text.h>
-#include "url-fetcher-impl.h"
-#include <sysalloc.h>
-
-#include <stdlib.h>
-
-/* to define the latest version of the url-fetcher in the vt */
-#define KURLFETCHER_LATEST 1
-
-static const char classname[] = "KUrlFetcher";
-
-/* AddRef
- *  creates a new reference
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC KUrlFetcherAddRef ( const KUrlFetcher *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, classname ) )
-        {
-        case krefLimit:
-            return RC ( rcApp, rcFunction, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-/* Release
- *  discard reference to list
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC KUrlFetcherRelease ( const KUrlFetcher *cself )
-{
-    KUrlFetcher *self = ( KUrlFetcher* ) cself;
-    if ( cself != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, classname ) )
-        {
-        case krefWhack:
-            {
-                rc_t rc;
-                switch ( self -> vt -> v1 . maj )
-                {
-                case 1:
-                    rc = ( * self -> vt -> v1 . destroy ) ( self );
-                    break;
-
-                default:
-                    rc = RC ( rcApp, rcFunction, rcReleasing, rcInterface, rcBadVersion );
-                }
-
-                if ( rc != 0 )
-                    KRefcountInit ( & self -> refcount, 1, classname, "failed-release", "orphan" );
-                return rc;
-            }
-        case krefLimit:
-            return RC ( rcApp, rcFunction, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-/* Read
- *  reads data from the internal buffer ...
- */
-LIB_EXPORT rc_t CC KUrlFetcherRead( KUrlFetcher *self, const char * uri,
-                      void *dst, size_t to_read, size_t *num_read )
-{
-    if ( self == NULL )
-        return RC ( rcApp, rcFunction, rcAccessing, rcSelf, rcNull );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        return ( * self -> vt -> v1 . read ) ( self, uri, dst, to_read, num_read );
-    }
-
-    return RC ( rcApp, rcFunction, rcAccessing, rcInterface, rcBadVersion );
-}
-
-
-/* Init
- *  polymorphic parent constructor
- */
-LIB_EXPORT rc_t CC KUrlFetcherInit ( KUrlFetcher *self, const KUrlFetcher_vt *vt )
-{
-    if ( self == NULL || vt == NULL )
-        return RC ( rcApp, rcFunction, rcConstructing, rcSelf, rcNull );
-
-    if ( vt -> v1 . maj == 0 )
-        return RC ( rcApp, rcFunction, rcConstructing, rcInterface, rcInvalid );
-
-    if ( vt -> v1 . maj > KURLFETCHER_LATEST )
-        return RC ( rcApp, rcFunction, rcConstructing, rcInterface, rcBadVersion );
-
-    self -> vt = vt;
-    KRefcountInit ( & self -> refcount, 1, classname, "initialized", "regular" );
-    return 0;
-}
diff --git a/libs/kproc/Makefile b/libs/kproc/Makefile
index 5234c2e..00d6281 100644
--- a/libs/kproc/Makefile
+++ b/libs/kproc/Makefile
@@ -28,26 +28,27 @@ default: std
 TOP ?= $(shell ../../build/abspath.sh ../..)
 MODULE = libs/kproc
 
+EXT_LIBS = \
+	libkproc \
+	libksproc \
+	libkq
+
 ALL_LIBS = \
 	$(INT_LIBS) \
 	$(EXT_LIBS)
 
 include $(TOP)/build/Makefile.env
 
-EXT_LIBS = \
-	libksproc \
-	libkproc
-
-ifneq (win,$(OS))
-EXT_LIBS += \
-	libkq
-endif
-
 #-------------------------------------------------------------------------------
 # outer targets
 #
+ifeq (win,$(OS))
+all std:
+	@ true
+else
 all std: makedirs
 	@ $(MAKE_CMD) $(TARGDIR)/std
+endif
 
 $(INT_LIBS): makedirs
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
@@ -86,38 +87,18 @@ tag: \
 #
 $(LIBDIR)/libkproc: $(addprefix $(LIBDIR)/libkproc.,$(LIBEXT))
 
-PROC_CMN = \
-	task \
-	procmgr
-
 PROC_SRC = \
-	$(PROC_CMN)
-
-ifneq (win,$(OS))
-PROC_SRC += \
 	systimeout \
 	syslock \
-	systhread \
 	syscond \
-	sem
-else
-PROC_SRC += \
-	systimeout \
-	syslock \
-	systhread \
-	syscond
-endif
+	sem \
+	systhread
 
 PROC_OBJ = \
 	$(addsuffix .$(LOBX),$(PROC_SRC))
 
-ifneq (win,$(OS))
 PROC_LIB = \
 	-dpthread
-else
-PROC_LIB = \
-	-dklib
-endif
 
 $(LIBDIR)/libkproc.$(SHLX): $(PROC_OBJ)
 	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(PROC_LIB)
@@ -135,7 +116,6 @@ libkproc_tag:
 $(LIBDIR)/libksproc: $(addprefix $(LIBDIR)/libksproc.,$(LIBEXT))
 
 SPROC_SRC = \
-	$(PROC_CMN) \
 	sttimeout \
 	stlock \
 	stcond \
@@ -146,14 +126,11 @@ SPROC_SRC = \
 SPROC_OBJ = \
 	$(addsuffix .$(LOBX),$(SPROC_SRC))
 
-SPROC_LIB = \
-	-dklib
-
 $(LIBDIR)/libksproc.$(SHLX): $(SPROC_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(SPROC_LIB)
+	$(LD) --dlib --vers $(SRCDIR) -o $@ $^
 
 $(LIBDIR)/libksproc.$(LIBX): $(SPROC_OBJ)
-	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(SPROC_LIB)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^
 
 libksproc_tag:
 	@ $(TOP)/build/tag-module.sh $(MODULE) libksproc $(SPROC_OBJ)
@@ -171,8 +148,8 @@ Q_OBJ = \
 	$(addsuffix .$(LOBX),$(Q_SRC))
 
 Q_LIB = \
-	-dkproc \
-	-dklib
+	-dklib \
+	-dkproc
 
 $(LIBDIR)/libkq.$(SHLX): $(Q_OBJ)
 	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(Q_LIB)
diff --git a/libs/kproc/bsd/syslock.c b/libs/kproc/bsd/syslock.c
index 5cfada0..ebd71e1 100644
--- a/libs/kproc/bsd/syslock.c
+++ b/libs/kproc/bsd/syslock.c
@@ -27,7 +27,6 @@
 #include <kproc/extern.h>
 #include "syslock-priv.h"
 #include "syscond-priv.h"
-#include <kproc/timeout.h>
 #include <kproc/lock.h>
 #include <kproc/cond.h>
 #include <os-native.h>
diff --git a/libs/kproc/libkproc.vers b/libs/kproc/libkproc.vers
index 66c4c22..ee90284 100644
--- a/libs/kproc/libkproc.vers
+++ b/libs/kproc/libkproc.vers
@@ -1 +1 @@
-1.0.9
+1.0.4
diff --git a/libs/kproc/libkq.vers b/libs/kproc/libkq.vers
index 238d6e8..ee90284 100644
--- a/libs/kproc/libkq.vers
+++ b/libs/kproc/libkq.vers
@@ -1 +1 @@
-1.0.7
+1.0.4
diff --git a/libs/kproc/libksproc.vers b/libs/kproc/libksproc.vers
index 238d6e8..ee90284 100644
--- a/libs/kproc/libksproc.vers
+++ b/libs/kproc/libksproc.vers
@@ -1 +1 @@
-1.0.7
+1.0.4
diff --git a/libs/kproc/linux/syslock.c b/libs/kproc/linux/syslock.c
index aa86628..27a841b 100644
--- a/libs/kproc/linux/syslock.c
+++ b/libs/kproc/linux/syslock.c
@@ -27,7 +27,6 @@
 #include <kproc/extern.h>
 #include "syslock-priv.h"
 #include <os-native.h>
-#include <kproc/timeout.h>
 #include <kproc/lock.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
diff --git a/libs/kproc/procmgr.c b/libs/kproc/procmgr.c
deleted file mode 100644
index c9cd221..0000000
--- a/libs/kproc/procmgr.c
+++ /dev/null
@@ -1,412 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kproc/extern.h>
-
-#include <kproc/procmgr.h>
-#include <kproc/task.h>
-#include <kproc/lock.h>
-#include <klib/refcount.h>
-#include <klib/rc.h>
-
-#define rcTask rcCmd
-
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-
-/*--------------------------------------------------------------------------
- * KCleanupTaskQueue
- */
-typedef struct KCleanupTaskQueue KCleanupTaskQueue;
-struct KCleanupTaskQueue
-{
-    uint64_t count;
-    uint64_t capacity;
-    uint64_t start;
-    KTask *q [ 1 ];
-};
-
-
-/*--------------------------------------------------------------------------
- * KProcMgr
- */
-struct KProcMgr
-{
-    KLock *cleanup_lock;
-    KCleanupTaskQueue *cleanup;
-    KRefcount refcount;
-};
-
-static KProcMgr * s_proc_mgr;
-
-
-/* Whack
- *  tear down proc mgr
- *  runs any outstanding cleanup tasks
- *  deletes the singleton object
- *  intended to be called from an "atexit()" or similar task
- */
-LIB_EXPORT rc_t CC KProcMgrWhack ( void )
-{
-    rc_t rc = 0;
-
-    KProcMgr *self = s_proc_mgr;
-    if ( s_proc_mgr != NULL )
-    {
-        s_proc_mgr = NULL;
-
-        rc = KLockAcquire ( self -> cleanup_lock );
-        if ( rc == 0 )
-        {
-            uint64_t i;
-
-            KCleanupTaskQueue *cleanup = self -> cleanup;
-            self -> cleanup = NULL;
-            KLockUnlock ( self -> cleanup_lock );
-
-            if ( cleanup != NULL )
-            {
-                for ( i = 0; i < cleanup -> count; ++ i )
-                {
-                    KTask *task = cleanup -> q [ i ];
-                    if ( task != NULL )
-                    {
-                        rc_t task_rc = KTaskExecute ( task );
-                        if ( rc == 0 )
-                            rc = task_rc;
-
-                        cleanup -> q [ i ] = NULL;
-                        KTaskRelease ( task );
-                    }
-                }
-
-                free ( cleanup );
-            }
-        }
-
-        KLockRelease ( self -> cleanup_lock );
-        free ( self );
-    }
-
-    return rc;
-}
-
-
-/* Init
- *  initialize the proc mgr
- *  creates the singleton object
- */
-LIB_EXPORT rc_t CC KProcMgrInit ( void )
-{
-    rc_t rc = 0;
-
-    if ( s_proc_mgr == NULL )
-    {
-        KProcMgr *mgr = malloc ( sizeof * s_proc_mgr );
-        if ( mgr == NULL )
-            rc = RC ( rcPS, rcMgr, rcInitializing, rcMemory, rcExhausted );
-        else
-        {
-            rc = KLockMake ( & mgr -> cleanup_lock );
-            if ( rc == 0 )
-            {
-                mgr -> cleanup = NULL;
-                KRefcountInit ( & mgr -> refcount, 0, "KProcMgr", "init", "process mgr" );
-
-                s_proc_mgr = mgr;
-                return 0;
-            }
-
-            free ( mgr );
-        }
-    }
-
-    return rc;
-}
-
-
-/* MakeSingleton
- *  make or access singleton process manager
- *  VDB-2 ONLY
- */
-LIB_EXPORT rc_t CC KProcMgrMakeSingleton ( KProcMgr ** mgrp )
-{
-    rc_t rc;
-
-    if ( mgrp == NULL )
-        rc = RC ( rcPS, rcMgr, rcConstructing, rcParam, rcNull );
-    else
-    {
-        * mgrp = s_proc_mgr;
-
-        if ( s_proc_mgr == NULL )
-            rc = RC ( rcPS, rcMgr, rcConstructing, rcMgr, rcNull );
-        else
-            rc = KProcMgrAddRef ( s_proc_mgr );
-    }
-
-    return rc;
-}
-
-
-/* AddRef
- * Release
- */
-LIB_EXPORT rc_t CC KProcMgrAddRef ( const KProcMgr *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KProcMgr" ) )
-        {
-        case krefLimit:
-            return RC ( rcPS, rcMgr, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KProcMgrRelease ( const KProcMgr *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "KProcMgr" ) )
-        {
-        case krefWhack:
-            return 0;
-        case krefLimit:
-            return RC ( rcPS, rcMgr, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-/* AddCleanupTask
- *  add a task to be performed at process exit time
- *
- *  "ticket" [ OUT ] - an id that can be used later to remove task
- *
- *  "task" [ IN ] - task object that will be executed at process
- *   exit, unless previously removed ( see RemoveCleanupTask ).
- *   NB - a new reference to "task" will be created
- */
-LIB_EXPORT rc_t CC KProcMgrAddCleanupTask ( KProcMgr *self, KTaskTicket *ticket, KTask *task )
-{
-    rc_t rc;
-
-    if ( ticket == NULL )
-        rc = RC ( rcPS, rcQueue, rcInserting, rcId, rcNull );
-    else
-    {
-        memset ( ticket, 0, sizeof * ticket );
-
-        if ( self == NULL )
-            rc = RC ( rcPS, rcQueue, rcInserting, rcSelf, rcNull );
-        else if ( self != s_proc_mgr )
-            rc = RC ( rcPS, rcQueue, rcInserting, rcSelf, rcIncorrect );
-        else if ( task == NULL )
-            rc = RC ( rcPS, rcQueue, rcInserting, rcTask, rcNull );
-        else
-        {
-            rc = KTaskAddRef ( task );
-            if ( rc == 0 )
-            {
-                rc = KLockAcquire ( self -> cleanup_lock );
-                if ( rc == 0 )
-                {
-                    const uint64_t extend = 1024;
-                    KCleanupTaskQueue *cleanup = self -> cleanup;
-
-                    /* on first insert, allocate queue */
-                    if ( self -> cleanup == NULL )
-                    {
-                        cleanup = malloc ( sizeof * cleanup - sizeof cleanup -> q
-                            + sizeof cleanup -> q [ 0 ] * extend );
-                        if ( cleanup == NULL )
-                            rc = RC ( rcPS, rcQueue, rcInserting, rcMemory, rcExhausted );
-                        else
-                        {
-                            cleanup -> count = 0;
-                            cleanup -> capacity = extend;
-                            cleanup -> start = 0;
-
-                            self -> cleanup = cleanup;
-                        }
-                    }
-
-                    /* if queue is full */
-                    else if ( cleanup -> count == cleanup -> capacity )
-                    {
-                        uint64_t empty;
-
-                        /* determine number of empty slots at start */
-                        for ( empty = 0; empty < cleanup -> count; ++ empty )
-                        {
-                            if ( cleanup -> q [ empty ] != NULL )
-                                break;
-                        }
-
-                        /* if none are empty, simply reallocate - probably bad... */
-                        if ( empty == 0 )
-                        {
-                            cleanup = realloc ( cleanup, sizeof * cleanup - sizeof cleanup -> q
-                                + sizeof cleanup -> q [ 0 ] * ( cleanup -> capacity + extend ) );
-                            if ( cleanup == NULL )
-                                rc = RC ( rcPS, rcQueue, rcInserting, rcMemory, rcExhausted );
-                            else
-                            {
-                                cleanup -> capacity += extend;
-                                self -> cleanup = cleanup;
-                            }
-                        }
-
-                        /* otherwise, rewrite to remove empty slots */
-                        else
-                        {
-                            uint64_t i;
-                            const KCleanupTaskQueue *orig = cleanup;
-
-                            /* only bother with resize if there are enough to recover */
-                            if ( empty >= 4096 )
-                            {
-                                cleanup = malloc ( sizeof * cleanup - sizeof cleanup -> q
-                                    + sizeof cleanup -> q [ 0 ] * ( orig -> capacity - empty + extend ) );
-                                if ( cleanup == NULL )
-                                    rc = RC ( rcPS, rcQueue, rcInserting, rcMemory, rcExhausted );
-                                else
-                                {
-                                    cleanup -> capacity = orig -> capacity - empty + extend;
-                                }
-                            }
-
-                            /* rewrite count to remove leading NULL entries */
-                            cleanup -> count = orig -> count - empty;
-
-                            /* accumulate NULL entries into the start offset */
-                            cleanup -> start = orig -> start + empty;
-
-                            /* copy the tasks */
-                            for ( i = 0; i < cleanup -> count; ++ i )
-                                cleanup -> q [ i ] = orig -> q [ empty + i ];
-
-                            if ( ( const KCleanupTaskQueue* ) cleanup != orig )
-                            {
-                                self -> cleanup = cleanup;
-                                free ( ( void* ) orig );
-                            }
-                        }
-                    }
-
-                    /* detect valid queue for insertion */
-                    if ( rc == 0 )
-                    {
-                        /* assert that there is space for a task */
-                        assert ( cleanup -> count < cleanup -> capacity );
-
-                        /* record reference to task */
-                        cleanup -> q [ cleanup -> count ] = task;
-
-                        /* fill out the ticket information */
-                        ticket -> info [ 0 ] =  cleanup -> start + cleanup -> count;
-                        ticket -> info [ 1 ] = ( size_t ) task;
-                        ticket -> info [ 0 ] ^= ( size_t ) self;
-                        ticket -> info [ 1 ] ^= ( size_t ) self;
-                        ticket -> info [ 0 ] ^= ( size_t ) task;
-
-                        /* account for insertion */
-                        ++ cleanup -> count;
-                    }
-
-                    KLockUnlock ( self -> cleanup_lock );
-                }
-
-                if ( rc != 0 )
-                    KTaskRelease ( task );
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* RemoveCleanupTask
- *  remove a task from exit queue
- *  releases reference to task object
- *  returns an rcNotFound code if task no longer exists
- */
-LIB_EXPORT rc_t CC KProcMgrRemoveCleanupTask ( KProcMgr *self, const KTaskTicket *ticket )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcPS, rcQueue, rcRemoving, rcSelf, rcNull );
-    else if ( self != s_proc_mgr )
-        rc = RC ( rcPS, rcQueue, rcRemoving, rcSelf, rcIncorrect );
-    else if ( ticket == NULL )
-        rc = RC ( rcPS, rcQueue, rcRemoving, rcId, rcNull );
-    else
-    {
-        /* recover task* and idx */
-        KTask *task = ( KTask* ) ( ( size_t ) ticket -> info [ 1 ] ^ ( size_t ) self );
-        uint64_t idx = ticket -> info [ 0 ] ^ ( size_t ) task;
-        idx ^= ( size_t ) self;
-
-        /* go into queue */
-        rc = KLockAcquire ( self -> cleanup_lock );
-        if ( rc == 0 )
-        {
-            KCleanupTaskQueue *cleanup = self -> cleanup;
-            if ( self -> cleanup == NULL )
-                rc = RC ( rcPS, rcQueue, rcRemoving, rcItem, rcNotFound );
-            else if ( idx < cleanup -> start )
-                rc = RC ( rcPS, rcQueue, rcRemoving, rcItem, rcNotFound );
-            else
-            {
-                idx -= cleanup -> start;
-                if ( idx >= cleanup -> count )
-                    rc = RC ( rcPS, rcQueue, rcRemoving, rcItem, rcNotFound );
-                else if ( cleanup -> q [ idx ] != task )
-                    rc = RC ( rcPS, rcQueue, rcRemoving, rcItem, rcNotFound );
-                else
-                {
-                    cleanup -> q [ idx ] = NULL;
-                }
-            }
-
-            KLockUnlock ( self -> cleanup_lock );
-        }
-
-        if ( rc == 0 )
-            KTaskRelease ( task );
-    }
-
-    return rc;
-}
diff --git a/libs/kproc/queue.c b/libs/kproc/queue.c
index 5b30d2e..bb2b0c7 100644
--- a/libs/kproc/queue.c
+++ b/libs/kproc/queue.c
@@ -26,10 +26,8 @@
 
 #include <kproc/q-extern.h>
 #include <kproc/queue.h>
-#include <kproc/timeout.h>
 #include <kproc/lock.h>
 #include <kproc/sem.h>
-#include <klib/out.h>
 #include <klib/rc.h>
 #include <atomic32.h>
 #include <os-native.h>
@@ -38,14 +36,6 @@
 #include <stdlib.h>
 #include <assert.h>
 
-#if _DEBUGGING && 0
-#define QMSG( msg, ... ) \
-    KOutMsg ( msg, __VA_ARGS__ )
-#else
-#define QMSG( msg, ... ) \
-    ( void ) 0
-#endif
-
 /*--------------------------------------------------------------------------
  * KQueue
  *  a simple thread-safe queue structure supporting push/pop operation
@@ -74,19 +64,13 @@ struct KQueue
 static
 rc_t KQueueWhack ( KQueue *self )
 {
-    rc_t rc;
-    QMSG ( "%s: releasing write semaphore\n", __func__ );
-    rc = KSemaphoreRelease ( self -> wc );
+    rc_t rc = KSemaphoreRelease ( self -> wc );
     if ( rc == 0 )
     {
-        QMSG ( "%s: releasing read semaphore\n", __func__ );
         KSemaphoreRelease ( self -> rc );
-        QMSG ( "%s: releasing write lock\n", __func__ );
         KLockRelease ( self -> wl );
-        QMSG ( "%s: releasing read lock\n", __func__ );
         KLockRelease ( self -> rl );
         free ( self );
-        QMSG ( "%s: done\n", __func__ );
     }
     return rc;
 }
@@ -157,11 +141,6 @@ LIB_EXPORT rc_t CC KQueueMake ( KQueue **qp, uint32_t capacity )
                             atomic32_set ( & q -> refcount, 1 );
                             q -> sealed = false;
 
-                            QMSG ( "%s: created queue with capacity %u, "
-                                   "bmask %#032b, imask %#032b.\n"
-                                   , __func__, q -> capacity, q -> bmask, q -> imask
-                                );
-
                             * qp = q;
                             return 0;
                         }
@@ -199,21 +178,14 @@ LIB_EXPORT rc_t CC KQueuePush ( KQueue *self, const void *item, timeout_t *tm )
     if ( self == NULL )
         return RC ( rcCont, rcQueue, rcInserting, rcSelf, rcNull );
     if ( self -> sealed )
-    {
-        QMSG ( "%s: failed to insert into queue due to seal\n", __func__ );
         return RC ( rcCont, rcQueue, rcInserting, rcQueue, rcReadonly );
-    }
     if ( item == NULL )
         return RC ( rcCont, rcQueue, rcInserting, rcTimeout, rcNull );
 
-    QMSG ( "%s: acquiring write lock ( %p )...\n", __func__, self -> wl );
     rc = KLockAcquire ( self -> wl );
-    QMSG ( "%s: ...done, rc = %R\n", __func__, rc );
     if ( rc == 0 )
     {
-        QMSG ( "%s: waiting on write semaphore...\n", __func__ );
         rc = KSemaphoreTimedWait ( self -> wc, self -> wl, tm );
-        QMSG ( "%s: ...done, rc = %R. unlocking write lock ( %p ).\n", __func__, rc, self -> wl );
         KLockUnlock ( self -> wl );
 
         if ( rc == 0 )
@@ -223,36 +195,24 @@ LIB_EXPORT rc_t CC KQueuePush ( KQueue *self, const void *item, timeout_t *tm )
             /* re-check the seal */
             if ( self -> sealed )
             {
-                QMSG ( "%s: queue has been sealed\n", __func__ );
-
                 /* not a disaster if semaphore not signaled */
-                QMSG ( "%s: acquiring write lock\n", __func__ );
                 if ( ! KLockAcquire ( self -> wl ) )
                 {
-                    QMSG ( "%s: signaling write semaphore\n", __func__ );
                     KSemaphoreSignal ( self -> wc );
-                    QMSG ( "%s: unlocking write lock\n", __func__ );
                     KLockUnlock ( self -> wl );
                 }
-
-                QMSG ( "%s: failed to insert into queue due to seal\n", __func__ );
                 return RC ( rcCont, rcQueue, rcInserting, rcQueue, rcReadonly );
             }
 
             /* insert item */
             w = self -> write & self -> imask;
-            QMSG ( "%s: write index is %u, masked against 0x%x\n", __func__, w, self -> imask );
             self -> buffer [ w & self -> bmask ] = ( void* ) item;
-            QMSG ( "%s: inserted item into buffer [ %u ], using mask 0x%x\n", __func__, w & self -> bmask, self -> bmask );
             self -> write = w + 1;
 
             /* let listeners know about item */
-            QMSG ( "%s: acquiring read lock ( %p )\n", __func__, self -> rl );
             if ( KLockAcquire ( self -> rl ) == 0 )
             {
-                QMSG ( "%s: signaling read semaphore\n", __func__ );
                 KSemaphoreSignal ( self -> rc );
-                QMSG ( "%s: unlocking read lock ( %p )\n", __func__, self -> rl );
                 KLockUnlock ( self -> rl );
             }
         }
@@ -286,13 +246,10 @@ LIB_EXPORT rc_t CC KQueuePop ( KQueue *self, void **item, timeout_t *tm )
             rc = RC ( rcCont, rcQueue, rcRemoving, rcSelf, rcNull );
         else
         {
-            QMSG ( "%s: acquiring read lock ( %p )\n", __func__, self -> rl );
             rc = KLockAcquire ( self -> rl );
             if ( rc == 0 )
             {
-                QMSG ( "%s: waiting on read semaphore...\n", __func__ );
                 rc = KSemaphoreTimedWait ( self -> rc, self -> rl, self -> sealed ? NULL : tm );
-                QMSG ( "%s: ...done, rc = %R. unlocking read lock. ( %p )\n", __func__, rc, self -> rl );
                 KLockUnlock ( self -> rl );
 
                 if ( rc == 0 )
@@ -300,35 +257,24 @@ LIB_EXPORT rc_t CC KQueuePop ( KQueue *self, void **item, timeout_t *tm )
                     uint32_t r, idx;
 
                     /* got an element */
-                    QMSG ( "%s: asserting  self -> read ( %u ) != self -> write ( %u )\n",
-                           __func__, self -> read, self -> write
-                        );
                     assert ( self -> read != self -> write );
 
                     /* read element */
                     r = self -> read & self -> imask;
-                    QMSG ( "%s: read index is %u, masked against 0x%x\n", __func__, r, self -> imask );
                     idx = r & self -> bmask;
                     * item = self -> buffer [ idx ];
-                    QMSG ( "%s: read item from buffer [ %u ], using mask 0x%x\n", __func__, idx, self -> bmask );
                     self -> buffer [ idx ] = NULL;
                     self -> read = r + 1;
 
                     /* let write know there's a free slot available */
-                    QMSG ( "%s: acquiring write lock ( %p )\n", __func__, self -> wl );
                     if ( KLockAcquire ( self -> wl ) == 0 )
                     {
-                        QMSG ( "%s: signaling write semaphore\n", __func__ );
                         KSemaphoreSignal ( self -> wc );
-                        QMSG ( "%s: unlocking write lock ( %p )\n", __func__, self -> wl );
                         KLockUnlock ( self -> wl );
                     }
                 }
-                else if ( self -> sealed && GetRCObject ( rc ) == rcTimeout )
-                {
+                else if ( self -> sealed && GetRCState ( rc ) == rcTimeout )
                     rc = RC ( rcCont, rcQueue, rcRemoving, rcData, rcDone );
-                    QMSG ( "%s: resetting rc to %R\n", __func__, rc );
-                }
             }
         }
     }
@@ -345,7 +291,6 @@ LIB_EXPORT rc_t CC KQueuePop ( KQueue *self, void **item, timeout_t *tm )
  */
 LIB_EXPORT bool CC KQueueSealed ( const KQueue *self )
 {
-    QMSG ( "%s called\n", __func__ );
     if ( self != NULL )
         return self -> sealed;
     return false;
@@ -355,44 +300,12 @@ LIB_EXPORT bool CC KQueueSealed ( const KQueue *self )
 /* Seal
  *  indicate that the queue has been closed off
  *  meaning there will be no further push operations
- *  if "writes" is true, and no further pop operations
- *  otherwise.
  */
 LIB_EXPORT rc_t CC KQueueSeal ( KQueue *self )
 {
-    rc_t rc = 0;
-
-    QMSG ( "%s called\n", __func__ );
-
     if ( self == NULL )
         return RC ( rcCont, rcQueue, rcFreezing, rcSelf, rcNull );
 
     self -> sealed = true;
-
-#if 0
-    QMSG ( "%s: acquiring write lock ( %p )\n", __func__, self -> wl );
-    rc = KLockAcquire ( self -> wl );
-    if ( rc == 0 )
-    {
-        QMSG ( "%s: canceling write semaphore...\n", __func__ );
-        rc = KSemaphoreCancel ( self -> wc );
-        QMSG ( "%s: ...done, rc = %R.\n", __func__, rc );
-        KLockUnlock ( self -> wl );
-
-        if ( rc == 0 )
-        {
-            QMSG ( "%s: acquiring read lock ( %p )\n", __func__, self -> rl );
-            rc = KLockAcquire ( self -> rl );
-            if ( rc == 0 )
-            {
-                QMSG ( "%s: canceling read semaphore...\n", __func__ );
-                rc = KSemaphoreCancel ( self -> rc );
-                QMSG ( "%s: ...done, rc = %R.\n", __func__, rc );
-                KLockUnlock ( self -> rl );
-            }
-        }
-    }
-#endif
-
-    return rc;
+    return 0;
 }
diff --git a/libs/kproc/sem.c b/libs/kproc/sem.c
index 822f8cb..84d52c7 100644
--- a/libs/kproc/sem.c
+++ b/libs/kproc/sem.c
@@ -28,21 +28,12 @@
 #include <kproc/extern.h>
 #include <kproc/sem.h>
 #include <kproc/cond.h>
-#include <klib/out.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
 #include <atomic32.h>
 
 #include <stdlib.h>
 
-#if _DEBUGGING && 0
-#define SMSG( msg, ... ) \
-    KOutMsg ( msg, __VA_ARGS__ )
-#else
-#define SMSG( msg, ... ) \
-    ( void ) 0
-#endif
-
 
 /*--------------------------------------------------------------------------
  * KSemaphore
@@ -50,12 +41,12 @@
  */
 struct KSemaphore
 {
-    volatile uint64_t avail;
-    volatile uint64_t requested;
-    volatile uint64_t min_requested;
-    KCondition* cond;
-    volatile uint32_t waiting;
-    volatile bool uniform;
+    uint64_t avail;
+    uint64_t requested;
+    uint64_t min_requested;
+    KCondition cond;
+    uint32_t waiting;
+    bool uniform;
 };
 
 
@@ -69,7 +60,7 @@ rc_t KSemaphoreWhack ( KSemaphore *self )
     if ( self -> waiting != 0 )
         return RC ( rcPS, rcSemaphore, rcDestroying, rcSemaphore, rcBusy );
 
-    rc = KConditionRelease ( self -> cond );
+    rc = KConditionDestroy ( & self -> cond );
     if ( rc != 0 )
         return ResetRCContext ( rc, rcPS, rcSemaphore, rcDestroying );
 
@@ -94,7 +85,7 @@ LIB_EXPORT rc_t CC KSemaphoreMake ( KSemaphore **semp, uint64_t count )
             rc = RC ( rcPS, rcSemaphore, rcConstructing, rcMemory, rcExhausted );
         else
         {
-            rc = KConditionMake( & sem -> cond );
+            rc = KConditionInit ( & sem -> cond );
             if ( rc == 0 )
             {
                 sem -> avail = count;
@@ -122,7 +113,7 @@ LIB_EXPORT rc_t CC KSemaphoreMake ( KSemaphore **semp, uint64_t count )
 LIB_EXPORT rc_t CC KSemaphoreAddRef ( const KSemaphore *cself )
 {
     if ( cself != NULL )
-        return KConditionAddRef ( cself -> cond );
+        return KConditionAddRef ( & cself -> cond );
     return 0;
 }
 
@@ -130,7 +121,7 @@ LIB_EXPORT rc_t CC KSemaphoreRelease ( const KSemaphore *cself )
 {
     if ( cself != NULL )
     {
-        if ( KConditionDropRef ( cself -> cond ) )
+        if ( KConditionDropRef ( & cself -> cond ) )
             return KSemaphoreWhack ( ( KSemaphore* ) cself );
     }
     return 0;
@@ -162,7 +153,7 @@ LIB_EXPORT rc_t CC KSemaphoreWait ( KSemaphore *self, struct KLock *lock )
 
         do
         {
-            rc_t rc = KConditionWait ( self -> cond, lock );
+            rc_t rc = KConditionWait ( & self -> cond, lock );
             if ( rc != 0 )
             {
                 -- self -> waiting;
@@ -194,73 +185,39 @@ LIB_EXPORT rc_t CC KSemaphoreTimedWait ( KSemaphore *self,
 
     if ( self -> avail == 0 )
     {
-        SMSG ( "%s[%p]: avail == 0\n", __func__, self );
         if ( tm == NULL )
-        {
-            SMSG ( "%s[%p]: non-blocking mode - return timeout exhausted\n", __func__, self );
             return RC ( rcPS, rcSemaphore, rcWaiting, rcTimeout, rcExhausted );
-        }
 
         if ( ++ self -> waiting == 1 )
         {
-            SMSG ( "%s[%p]: first waiter\n", __func__, self );
             self -> requested = self -> min_requested = 1;
             self -> uniform = true;
         }
         else if ( self -> requested != 1 )
         {
-            SMSG ( "%s[%p]: multiple waiters ( %u )\n", __func__, self, self -> waiting );
             self -> min_requested = 1;
             self -> uniform = false;
         }
 
         do
         {
-            rc_t rc;
-
-            SMSG ( "%s[%p]: wait on condition...\n", __func__, self );
-            rc = KConditionTimedWait ( self -> cond, lock, tm );
-            SMSG ( "%s[%p]:...done, rc = %R\n", __func__, self, rc );
+            rc_t rc = KConditionTimedWait ( & self -> cond, lock, tm );
             if ( rc != 0 )
             {
-                SMSG ( "%s[%p]: timed out - decrementing wait count\n", __func__, self );
                 -- self -> waiting;
                 return ResetRCContext ( rc, rcPS, rcSemaphore, rcWaiting );
             }
-
-            SMSG ( "%s[%p]: condition signaled - avail = %lu\n", __func__, self, self -> avail );
         }
         while ( self -> avail == 0 );
 
-        SMSG ( "%s[%p]: finished waiting\n", __func__, self );
         -- self -> waiting;
     }
 
-    SMSG ( "%s[%p]: decrementing count from %lu\n", __func__, self, self -> avail );
     -- self -> avail;
     return 0;
 }
 
 
-/* Cancel
- *  signal that the count will never increase
- */
-LIB_EXPORT rc_t CC KSemaphoreCancel ( KSemaphore *self )
-{
-    if ( self == NULL )
-        return RC ( rcPS, rcSemaphore, rcSignaling, rcSelf, rcNull );
-
-    if ( self -> waiting != 0 )
-    {
-        SMSG ( "%s[%p]: canceling %u waiters\n", __func__, self, self -> waiting );
-        return KConditionBroadcast ( self -> cond );
-    }
-
-    SMSG ( "%s[%p]: cancel request ( no waiters )\n", __func__, self );
-    return 0;
-}
-
-
 /* Signal
  *  signal that a count has become available
  */
@@ -277,8 +234,8 @@ LIB_EXPORT rc_t CC KSemaphoreSignal ( KSemaphore *self )
            - and only one request can be satisfied
            - then signal. otherwise, broadcast */
         if ( self -> uniform && self -> avail / self -> min_requested == 1 )
-            return KConditionSignal ( self -> cond );
-        return KConditionBroadcast ( self -> cond );
+            return KConditionSignal ( & self -> cond );
+        return KConditionBroadcast ( & self -> cond );
     }
 
     return 0;
@@ -315,7 +272,7 @@ LIB_EXPORT rc_t CC KSemaphoreAlloc ( KSemaphore *self,
 
         do
         {
-            rc_t rc = KConditionWait ( self -> cond, lock );
+            rc_t rc = KConditionWait ( & self -> cond, lock );
             if ( rc != 0 )
             {
                 -- self -> waiting;
@@ -367,7 +324,7 @@ LIB_EXPORT rc_t CC KSemaphoreTimedAlloc ( KSemaphore *self,
 
         do
         {
-            rc_t rc = KConditionTimedWait ( self -> cond, lock, tm );
+            rc_t rc = KConditionTimedWait ( & self -> cond, lock, tm );
             if ( rc != 0 )
             {
                 -- self -> waiting;
@@ -400,8 +357,8 @@ LIB_EXPORT rc_t CC KSemaphoreFree ( KSemaphore *self, uint64_t count )
            - and only one request can be satisfied
            - then signal. otherwise, broadcast */
         if ( self -> uniform && self -> avail / self -> min_requested == 1 )
-            return KConditionSignal ( self -> cond );
-        return KConditionBroadcast ( self -> cond );
+            return KConditionSignal ( & self -> cond );
+        return KConditionBroadcast ( & self -> cond );
     }
 
     return 0;
diff --git a/libs/kproc/sttimeout.c b/libs/kproc/sttimeout.c
index 47ba6cc..6ac1b3c 100644
--- a/libs/kproc/sttimeout.c
+++ b/libs/kproc/sttimeout.c
@@ -25,7 +25,6 @@
 */
 
 #include <kproc/extern.h>
-#include <kproc/timeout.h>
 #include <os-native.h>
 #include <klib/log.h>
 #include <klib/rc.h>
diff --git a/libs/kproc/task.c b/libs/kproc/task.c
deleted file mode 100644
index 61df4aa..0000000
--- a/libs/kproc/task.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kproc/extern.h>
-
-#include <kproc/task.h>
-#include <kproc/impl.h>
-#include <klib/rc.h>
-
-#define rcTask rcCmd
-
-
-/*--------------------------------------------------------------------------
- * KTask
- *  a deferred task abstraction
- *  specific task objects are constructed with required parameters
- *  and implement the Execute method to perform their operation
- */
-
-
-/* Whack
- */
-static
-rc_t KTaskWhack ( KTask * self )
-{
-    if ( self == NULL )
-        return RC ( rcPS, rcTask, rcDestroying, rcSelf, rcNull );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        return ( * self -> vt -> v1 . destroy ) ( self );
-    }
-
-    return RC ( rcPS, rcTask, rcDestroying, rcInterface, rcBadVersion );
-}
-
-
-/* AddRef
- * Release
- */
-LIB_EXPORT rc_t CC KTaskAddRef ( const KTask *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "KTask" ) )
-        {
-        case krefLimit:
-            return RC ( rcPS, rcTask, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KTaskRelease ( const KTask *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "KTask" ) )
-        {
-        case krefWhack:
-            return KTaskWhack ( ( KTask* ) self );
-        case krefLimit:
-            return RC ( rcPS, rcTask, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-/* Execute
- *  perform deferred operation
- */
-LIB_EXPORT rc_t CC KTaskExecute ( KTask *self )
-{
-    if ( self == NULL )
-        return RC ( rcPS, rcTask, rcExecuting, rcSelf, rcNull );
-
-    switch ( self -> vt -> v1 . maj )
-    {
-    case 1:
-        return ( * self -> vt -> v1 . execute ) ( self );
-    }
-
-    return RC ( rcPS, rcTask, rcExecuting, rcInterface, rcBadVersion );
-}
-
-
-/* Init
- *  initialize a newly allocated task object
- */
-LIB_EXPORT rc_t CC KTaskInit ( KTask *self, const KTask_vt *vt, const char *clsname, const char *name )
-{
-    if ( self == NULL )
-        return RC ( rcFS, rcTask, rcConstructing, rcSelf, rcNull );
-    if ( vt == NULL )
-        return RC ( rcFS, rcTask, rcConstructing, rcInterface, rcNull );
-    switch ( vt -> v1 . maj )
-    {
-    case 1:
-        switch ( vt -> v1 . min )
-        {
-            /* insert new minor versions in reverse order */
-        case 0:
-#if _DEBUGGING
-            if ( vt -> v1 . destroy == NULL ||
-                 vt -> v1 . execute == NULL )
-            return RC ( rcFS, rcTask, rcConstructing, rcInterface, rcNull );
-#endif
-            break;
-        default:
-            return RC ( rcFS, rcTask, rcConstructing, rcInterface, rcInvalid );
-        }
-        break;
-    default:
-        return RC ( rcFS, rcTask, rcConstructing, rcInterface, rcInvalid );
-    }
-
-    self -> vt = vt;
-    KRefcountInit ( & self -> refcount, 1, clsname, "init", name );
-    return 0;
-}
-
-
-/* Destroy
- *  destroy task
- */
-LIB_EXPORT rc_t CC KTaskDestroy ( KTask *self, const char *clsname )
-{
-    if ( self != NULL )
-        KRefcountWhack ( & self -> refcount, clsname );
-    return 0;
-}
diff --git a/libs/kproc/unix/syscond.c b/libs/kproc/unix/syscond.c
index cebf31a..ad1dc26 100644
--- a/libs/kproc/unix/syscond.c
+++ b/libs/kproc/unix/syscond.c
@@ -29,9 +29,7 @@
 
 #include <kproc/extern.h>
 #include <os-native.h>
-#include <kproc/timeout.h>
 #include <kproc/cond.h>
-#include <klib/out.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
 #include <atomic32.h>
@@ -40,14 +38,6 @@
 #include <errno.h>
 #include <assert.h>
 
-#if _DEBUGGING && 0
-#define CMSG( msg, ... ) \
-    KOutMsg ( msg, __VA_ARGS__ )
-#else
-#define CMSG( msg, ... ) \
-    ( void ) 0
-#endif
-
 
 /*--------------------------------------------------------------------------
  * KCondition
@@ -166,7 +156,7 @@ LIB_EXPORT rc_t CC KConditionRelease ( const KCondition *cself )
     KCondition *self = ( KCondition* ) cself;
     if ( cself != NULL )
     {
-        if ( atomic32_read_and_add ( & self -> refcount, -1 ) <= 1 )
+        if ( atomic32_dec_and_test ( & self -> refcount ) )
             return KConditionWhack ( self );
     }
     return 0;
@@ -218,50 +208,16 @@ LIB_EXPORT rc_t CC KConditionTimedWait ( KCondition *self, struct KLock *lock, t
     if ( tm == NULL )
         return RC ( rcPS, rcCondition, rcWaiting, rcTimeout, rcNull );
 
-    CMSG ( "%s[%p]: testing timeout structure\n", __func__, self );
     if ( ! tm -> prepared )
-    {
-        CMSG ( "%s[%p]: preparing timeout...\n", __func__, self );
         TimeoutPrepare ( tm );
-        CMSG ( "%s[%p]: ...done preparing timeout\n", __func__, self );
-    }
 
-#if 1
-    CMSG ( "%s[%p]: calling 'pthread_cond_timedwait ( cond = %p, mutex = %p, ts = %p )'...\n"
-           , __func__, self, & self -> cond, & lock -> mutex, & tm -> ts
-        );
     status = pthread_cond_timedwait ( & self -> cond, & lock -> mutex, & tm -> ts );
-#else
-    CMSG ( "%s[%p]: calling 'pthread_cond_wait ( cond = %p, mutex = %p )'...\n"
-           , __func__, self, & self -> cond, & lock -> mutex, & tm -> ts
-        );
-    status = pthread_cond_wait ( & self -> cond, & lock -> mutex );
-#endif
-    CMSG ( "%s[%p]: ...done, OS status = %!\n", __func__, self, status );
     switch ( status )
     {
     case 0:
         break;
     case ETIMEDOUT:
         return RC ( rcPS, rcCondition, rcWaiting, rcTimeout, rcExhausted );
-/*
-  The pthread_cond_timedwait() function shall fail if:
-
-  ETIMEDOUT
-  The time specified by abstime to pthread_cond_timedwait() has passed.
-
-  The pthread_cond_timedwait() and pthread_cond_wait() functions may fail if:
-
-  EINVAL The value specified by cond, mutex, or abstime is invalid.
-
-  EINVAL Different mutexes were supplied for concurrent pthread_cond_timedwait()
-  or pthread_cond_wait() operations on the same condition variable.
-
-  EPERM  The mutex was not owned by the current thread at the time of the call.
-
-  *** These functions shall not return an error code of [EINTR]. ***
-
- */
     case EINTR:
         return RC ( rcPS, rcCondition, rcWaiting, rcThread, rcInterrupted );
     default:
diff --git a/libs/kproc/unix/systimeout.c b/libs/kproc/unix/systimeout.c
index 9dbb97b..6be8361 100644
--- a/libs/kproc/unix/systimeout.c
+++ b/libs/kproc/unix/systimeout.c
@@ -25,7 +25,6 @@
 */
 
 #include <sysalloc.h>
-#include <kproc/timeout.h>
 #include <os-native.h>
 #include <klib/log.h>
 #include <klib/rc.h>
diff --git a/libs/kproc/win/syscond-priv.h b/libs/kproc/win/syscond-priv.h
index 509a913..32f58e3 100644
--- a/libs/kproc/win/syscond-priv.h
+++ b/libs/kproc/win/syscond-priv.h
@@ -41,7 +41,6 @@
 extern "C" {
 #endif
 
-
 /*--------------------------------------------------------------------------
  * KCondition
  *  a POSIX-style condition object
@@ -52,8 +51,13 @@ extern "C" {
  *  the former involves the potential to wait for a signal and the latter
  *  to generate a signal using the external lock for blocking.
  */
-struct KCondition;
-
+struct KCondition
+{
+#if 0
+    pthread_cond_t cond;
+#endif
+    atomic32_t refcount;
+};
 
 /* Init
  *  initialize an inline KCondition
diff --git a/libs/kproc/win/syscond.c b/libs/kproc/win/syscond.c
index 8777f2f..ad1dc26 100644
--- a/libs/kproc/win/syscond.c
+++ b/libs/kproc/win/syscond.c
@@ -24,13 +24,11 @@
 *
 */
 
-#include <kproc/extern.h>
-
 #include "syslock-priv.h"
 #include "syscond-priv.h"
 
+#include <kproc/extern.h>
 #include <os-native.h>
-#include <kproc/timeout.h>
 #include <kproc/cond.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
@@ -40,54 +38,6 @@
 #include <errno.h>
 #include <assert.h>
 
-#include <time.h> /* struct timespec */
-
-/* #include <stdio.h> */
-
-
-/*
-
-This Windows condition implementation is taken from 
-"Strategies for Implementing POSIX Condition Variables on Win32"
-by Douglas C. Schmidt
-( http://www.cs.wustl.edu/~schmidt/win32-cv-1.html ) :
-
-3.4. The SignalObjectAndWait Solution
-The implementation relies on the Windows NT 4.0 SignalObjectAndWait function,
-thus it is not available in Windows CE, Windows '95, or Windows NT 3.51.
-
-The code was taken from the article.
-
-The C++ source code for POSIX condition variable on Win32
-described in the article is freely available with the ACE framework
-at //www.cs.wustl.edu/~schmidt/ACE.html.
-It is possible that the latter is better.
-
-*/
-
-
-typedef struct
-{
-  int waiters_count_;
-  // Number of waiting threads.
-
-  CRITICAL_SECTION waiters_count_lock_;
-  // Serialize access to <waiters_count_>.
-
-  HANDLE sema_;
-  // Semaphore used to queue up threads waiting for the condition to
-  // become signaled. 
-
-  HANDLE waiters_done_;
-  // An auto-reset event used by the broadcast/signal thread to wait
-  // for all the waiting thread(s) to wake up and be released from the
-  // semaphore. 
-
-  size_t was_broadcast_;
-  // Keeps track of whether we were broadcasting or signaling.  This
-  // allows us to optimize the code if we're just signaling.
-} pthread_cond_t;
-
 
 /*--------------------------------------------------------------------------
  * KCondition
@@ -99,180 +49,11 @@ typedef struct
  *  the former involves the potential to wait for a signal and the latter
  *  to generate a signal using the external lock for blocking.
  */
-struct KCondition
-{
-    pthread_cond_t cond;
-
-    atomic32_t refcount;
-};
-
 
-typedef HANDLE pthread_mutex_t;
-typedef struct pthread_condattr_t { char dummy; } pthread_condattr_t;
-
-int 
-pthread_cond_init (pthread_cond_t *cv,
-                   const pthread_condattr_t *dummy)
-{
-  cv->waiters_count_ = 0;
-  cv->was_broadcast_ = 0;
-  cv->sema_ = CreateSemaphore (NULL,       // no security
-                                0,          // initially 0
-                                0x7fffffff, // max count
-                                NULL);      // unnamed 
-  InitializeCriticalSection (&cv->waiters_count_lock_);
-  cv->waiters_done_ = CreateEvent (NULL,  // no security
-                                   FALSE, // auto-reset
-                                   FALSE, // non-signaled initially
-                                   NULL); // unnamed
-  return 0;
-}
-
-int pthread_cond_destroy (pthread_cond_t *cv) {
-    CloseHandle(cv->sema_);
-    DeleteCriticalSection(&cv->waiters_count_lock_);
-    CloseHandle(cv->waiters_done_);
-    memset(cv, 0, sizeof *cv);
-    return 0;
-}
-
-#ifndef timespec
-typedef struct timespec
-  {
-    time_t tv_sec;            /* Seconds.  */
-    long int tv_nsec;           /* Nanoseconds.  */
-  } timespec;
-#endif
-
-int pthread_cond_waitImpl (pthread_cond_t *cv, 
-                   pthread_mutex_t *external_mutex,
-                   const struct timespec *abstime,
-                   bool infinite)
-{
-    int last_waiter;
-    DWORD dwMilliseconds = INFINITE;
-
-  // Avoid race conditions.
-  EnterCriticalSection (&cv->waiters_count_lock_);
-  cv->waiters_count_++;
-  LeaveCriticalSection (&cv->waiters_count_lock_);
-
-  // This call atomically releases the mutex and waits on the
-  // semaphore until <pthread_cond_signal> or <pthread_cond_broadcast>
-  // are called by another thread.
-  if (!infinite && abstime != NULL)
-  { dwMilliseconds = abstime->tv_sec * 1000 + abstime->tv_nsec / 1000000; }
-  SignalObjectAndWait (*external_mutex, cv->sema_, dwMilliseconds, FALSE);
-
-  // Reacquire lock to avoid race conditions.
-  EnterCriticalSection (&cv->waiters_count_lock_);
-
-  // We're no longer waiting...
-  cv->waiters_count_--;
-
-  // Check to see if we're the last waiter after <pthread_cond_broadcast>.
-  last_waiter = cv->was_broadcast_ && cv->waiters_count_ == 0;
-
-  LeaveCriticalSection (&cv->waiters_count_lock_);
-
-  // If we're the last waiter thread during this particular broadcast
-  // then let all the other threads proceed.
-  if (last_waiter)
-    // This call atomically signals the <waiters_done_> event and waits until
-    // it can acquire the <external_mutex>.
-    // This is required to ensure fairness.
-    SignalObjectAndWait (cv->waiters_done_, *external_mutex, INFINITE, FALSE);
-  else {
-    // Always regain the external mutex since that's the guarantee we
-    // give to our callers. 
-/*      fprintf(stderr, "%s: WaitForSingleObject...\n", __func__); */
-    WaitForSingleObject (*external_mutex, INFINITE);
-/*      fprintf(stderr, "... %s: WaitForSingleObject\n", __func__); */
-  }
-
-  return 0;
-}
-
-int pthread_cond_timedwait(pthread_cond_t *cv,
-              pthread_mutex_t *external_mutex,
-              const struct timespec *abstime)
-{
-  return pthread_cond_waitImpl(cv, external_mutex, abstime, false);
-}
-
-int
-pthread_cond_wait (pthread_cond_t *cv, 
-                   pthread_mutex_t *external_mutex)
-{
-  return pthread_cond_waitImpl(cv, external_mutex, NULL, true);
-}
-
-int
-pthread_cond_signal (pthread_cond_t *cv)
-{
-    int have_waiters;
-
-  EnterCriticalSection (&cv->waiters_count_lock_);
-  have_waiters = cv->waiters_count_ > 0;
-  LeaveCriticalSection (&cv->waiters_count_lock_);
-
-  // If there aren't any waiters, then this is a no-op.  
-  if (have_waiters)
-    ReleaseSemaphore (cv->sema_, 1, 0);
-
-  return 0;
-}
-
-int
-pthread_cond_broadcast (pthread_cond_t *cv)
-{
-  int have_waiters = 0;
-
-  // This is needed to ensure that <waiters_count_> and <was_broadcast_> are
-  // consistent relative to each other.
-  EnterCriticalSection (&cv->waiters_count_lock_);
-
-  if (cv->waiters_count_ > 0) {
-    // We are broadcasting, even if there is just one waiter...
-    // Record that we are broadcasting, which helps optimize
-    // <pthread_cond_wait> for the non-broadcast case.
-    cv->was_broadcast_ = 1;
-    have_waiters = 1;
-  }
-
-  if (have_waiters) {
-    // Wake up all the waiters atomically.
-    ReleaseSemaphore (cv->sema_, cv->waiters_count_, 0);
-
-    LeaveCriticalSection (&cv->waiters_count_lock_);
-
-    // Wait for all the awakened threads to acquire the counting
-    // semaphore. 
-    WaitForSingleObject (cv->waiters_done_, INFINITE);
-    // This assignment is okay, even without the <waiters_count_lock_> held 
-    // because no other waiter threads can wake up to access it.
-    cv->was_broadcast_ = 0;
-  }
-  else
-    LeaveCriticalSection (&cv->waiters_count_lock_);
-
-  return 0;
-}
-
-/*--------------------------------------------------------------------------
- * KCondition
- *  a POSIX-style condition object
- *  ( requires an external lock object )
- *
- *  usage: the user first acquires an external lock. then, depending upon
- *  the operation, will either test for a condition or establish it, where
- *  the former involves the potential to wait for a signal and the latter
- *  to generate a signal using the external lock for blocking.
- */
 
 /* Destroy
  */
-rc_t KConditionDestroy ( KCondition *self )
+LIB_EXPORT rc_t CC KConditionDestroy ( KCondition *self )
 {
     int status = pthread_cond_destroy ( & self -> cond );
     switch ( status )
@@ -302,7 +83,7 @@ rc_t KConditionWhack ( KCondition *self )
 
 /* Init
  */
-rc_t KConditionInit ( KCondition *self )
+LIB_EXPORT rc_t CC KConditionInit ( KCondition *self )
 {
     int status;
 
@@ -385,7 +166,7 @@ LIB_EXPORT rc_t CC KConditionRelease ( const KCondition *cself )
  *  manipulates reference counter
  *  returns true if last ref
  */
-int KConditionDropRef ( const KCondition *cself )
+LIB_EXPORT int CC KConditionDropRef ( const KCondition *cself )
 {
     assert ( cself != NULL );
     return atomic32_dec_and_test ( & ( ( KCondition* ) cself ) -> refcount );
@@ -419,7 +200,6 @@ LIB_EXPORT rc_t CC KConditionWait ( KCondition *self, struct KLock *lock )
 LIB_EXPORT rc_t CC KConditionTimedWait ( KCondition *self, struct KLock *lock, timeout_t *tm )
 {
     int status;
-    timespec ts;
 
     if ( self == NULL )
         return RC ( rcPS, rcCondition, rcWaiting, rcSelf, rcNull );
@@ -431,17 +211,13 @@ LIB_EXPORT rc_t CC KConditionTimedWait ( KCondition *self, struct KLock *lock, t
     if ( ! tm -> prepared )
         TimeoutPrepare ( tm );
 
-    memset(&ts, 0, sizeof ts);
-    ts.tv_sec = tm -> mS / 1000;
-    ts.tv_nsec = (tm -> mS - ts.tv_sec * 1000) * 1000000;
-
-    status = pthread_cond_timedwait ( & self -> cond, & lock -> mutex, & ts );
+    status = pthread_cond_timedwait ( & self -> cond, & lock -> mutex, & tm -> ts );
     switch ( status )
     {
     case 0:
         break;
-/*  case ETIMEDOUT:
-        return RC ( rcPS, rcCondition, rcWaiting, rcTimeout, rcExhausted ); */
+    case ETIMEDOUT:
+        return RC ( rcPS, rcCondition, rcWaiting, rcTimeout, rcExhausted );
     case EINTR:
         return RC ( rcPS, rcCondition, rcWaiting, rcThread, rcInterrupted );
     default:
diff --git a/libs/kproc/win/syslock.c b/libs/kproc/win/syslock.c
index 5159eef..c099270 100644
--- a/libs/kproc/win/syslock.c
+++ b/libs/kproc/win/syslock.c
@@ -27,7 +27,6 @@
 #include <kproc/extern.h>
 
 #include "syslock-priv.h"
-#include <kproc/timeout.h>
 #include <kproc/lock.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
@@ -111,7 +110,6 @@ LIB_EXPORT rc_t CC KLockAddRef ( const KLock *cself )
     return 0;
 }
 
-
 LIB_EXPORT rc_t CC KLockRelease ( const KLock *cself )
 {
     KLock *self = ( KLock* ) cself;
@@ -153,13 +151,12 @@ LIB_EXPORT rc_t CC KLockAcquire ( KLock *self )
     return RC ( rcPS, rcLock, rcLocking, rcNoObj, rcUnknown );
 }
 
-
 LIB_EXPORT rc_t CC KLockTimedAcquire ( KLock *self, timeout_t *tm )
 {
     if ( self == NULL )
         return RC ( rcPS, rcLock, rcLocking, rcSelf, rcNull );
 
-    switch ( WaitForSingleObject( self -> mutex, tm != NULL ? tm -> mS : 0 ) )
+    switch ( WaitForSingleObject ( self -> mutex, tm != NULL ? tm -> mS : 0 ) )
     {
     case WAIT_ABANDONED:
     case WAIT_OBJECT_0:
@@ -179,7 +176,6 @@ LIB_EXPORT rc_t CC KLockTimedAcquire ( KLock *self, timeout_t *tm )
     return RC ( rcPS, rcLock, rcLocking, rcNoObj, rcUnknown );
 }
 
-
 /* Unlock
  *  releases lock
  */
diff --git a/libs/krypto/Makefile b/libs/krypto/Makefile
deleted file mode 100644
index 27cb6c3..0000000
--- a/libs/krypto/Makefile
+++ /dev/null
@@ -1,336 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-default: all
-
-USE_GCC_IF_ICC = 1
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = libs/krypto
-
-INT_LIBS = 
-
-EXT_LIBS = \
-	libkrypto
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-include $(TOP)/build/Makefile.env
-
-ifeq ($(OS),linux)
-INT_LIBS += libkryptotest
-endif
-
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-# This differs from other sister Makefiles in needing three other symbols defined
-# VEC_SUPPORTED, VECREG_SUPPORTED and AESNI_SUPPORTED
-# The successive symbols are additive
-# In order they are the compiler supports  the vector 'container' type,
-# the preocessor has supported vector registers
-# the processor supports the Intel AES-NI instruction set
-#
-# The prerequisite call to make compiler-test will have tried to compile objects
-# that show such support if the objec can be made
-all std: makedirs compiler-test
-	@ $(MAKE_CMD) \
-		VEC_SUPPORTED=$(shell if test -f $(OBJDIR)/compile-test.vec.$(LOBX) ; then echo "true"; else echo "false" ; fi) \
-		VECREG_SUPPORTED=$(shell if test -f $(OBJDIR)/compile-test.vecreg.$(LOBX) ; then echo "true"; else echo "false" ; fi) \
-		AESNI_SUPPORTED=$(shell if test -f $(OBJDIR)/compile-test.aes-ni.$(LOBX) ; then echo "true"; else echo "false" ; fi) \
-		$(TARGDIR)/std || \
-	( echo "reattempting without AES-NI instructions"; \
-	  $(MAKE_CMD) \
-		VEC_SUPPORTED=$(shell if test -f $(OBJDIR)/compile-test.vec.$(LOBX) ; then echo "true"; else echo "false" ; fi) \
-		VECREG_SUPPORTED=$(shell if test -f $(OBJDIR)/compile-test.vecreg.$(LOBX) ; then echo "true"; else echo "false" ; fi) \
-		AESNI_SUPPORTED=false \
-		$(TARGDIR)/std ) || \
-	( echo "reattempting without vector register instructions"; \
-	  $(MAKE_CMD) \
-		VEC_SUPPORTED=$(shell if test -f $(OBJDIR)/compile-test.vec.$(LOBX) ; then echo "true"; else echo "false" ; fi) \
-		VECREG_SUPPORTED=false \
-		AESNI_SUPPORTED=false \
-		$(TARGDIR)/std ) || \
-	( echo "reattempting without vector instructions"; \
-	  $(MAKE_CMD) \
-		VEC_SUPPORTED=false \
-		VECREG_SUPPORTED=false \
-		AESNI_SUPPORTED=false \
-		$(TARGDIR)/std )
-
-$(INT_LIBS): makedirs
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_LIBS): makedirs
-	@ $(MAKE_CMD) $(LIBDIR)/$@
-
-.PHONY: all std $(ALL_LIBS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
-	$(addprefix $(LIBDIR)/,$(EXT_LIBS))
-#	@echo VEC_SUPPORTED $(VEC_SUPPORTED)
-#	@echo VECREG_SUPPORTED $(VECREG_SUPPORTED)
-#	@echo AESNI_SUPPORTED $(AESNI_SUPPORTED)
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_LIBS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
-
-
-#-------------------------------------------------------------------------------
-# compiler-test
-#
-.PHONY: compiler-test $(TARGDIR)/compiler-test
-
-# Silently try to compile three objects
-compiler-test : makedirs
-	@ $(MAKE_CMD) -i $(TARGDIR)/compiler-test >/dev/null 2>/dev/null
-
-
-COMPILE_TEST_SRC = \
-	compile-test.vec \
-	compile-test.vecreg \
-	compile-test.aes-ni
-
-COMPILE_TEST_OBJ = \
-	$(addsuffix .$(LOBX),$(COMPILE_TEST_SRC))
-
-$(TARGDIR)/compiler-test : $(COMPILE_TEST_OBJ)
-	@echo VEC_SUPPORTED $(VEC_SUPPORTED)
-	@echo VECREG_SUPPORTED $(VECREG_SUPPORTED)
-	@echo AESNI_SUPPORTED $(AESNI_SUPPORTED)
-
-#-------------------------------------------------------------------------------
-# define some additional compiler flags for special object file types
-# currently only gcc is supported and it turns out only with 4.4.0 and up
-# though other compilers could also be supported
-ifeq ($(COMP),gcc)
-CC_LISTING = -Wa,-ahlms=$(<D)/$(@F).list
-_CC_AES_NI  = -funsafe-math-optimizations -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -maes -Wa,-march=generic64+aes $(CC_LISTING)
-_CC_VECREG  = -funsafe-math-optimizations -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -Wa,-march=generic64+sse4 $(CC_LISTING)
-_CC_VEC     = $(CC_LISTING)
-else
-_CC_LISTING =
-_CC_AES_NI  =
-_CC_VECREG  =
-_CC_VEC     =
-endif
-
-ifeq ($(VEC_SUPPORTED),true)
-CC_VEC = $(_CC_VEC)
-else
-CC_VEC =
-endif
-
-ifeq ($(VECREG_SUPPORTED),true)
-CC_VECREG = $(_CC_VECREG)
-else
-CC_VECREG = 
-endif
-
-ifeq ($(AESNI_SUPPORTED),true)
-CC_AES_NI = $(_CC_AES_NI)
-else
-CC_AES_NI = 
-endif
-
-# Rules for making objects using compiler vectors
-compile-test.vec.pic.o : compile-test.c
-	@ echo +++++ Making $@ using its own rule
-	@ echo $@ $(_CC_VEC)
-	$(CC) -o $@ -fPIC $(OPT) -D_LIBRARY -DUSEVEC $(_CC_VEC) $<
-
-
-%.vec.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) -D_LIBRARY -DUSEVEC $(CC_VEC) $<
-
-
-# Rules for making objects using vectors in registers
-compile-test.vecreg.pic.o : compile-test.c
-	@ echo +++++ Making $@ using its own rule
-	@ echo $@ $(_CC_VECREG)
-	$(CC) -o $@ -fPIC $(OPT) -D_LIBRARY -DUSEVEC -DUSEVECREG $(_CC_VECREG) $<
-
-%.vecreg.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) -D_LIBRARY -DUSEVEC -DUSEVECREG $(CC_VECREG) $<
-
-
-# Rules for making objects using AES-NI extensions vectors in registers
-compile-test.aes-ni.pic.o : compile-test.c
-	@ echo +++++ Making $@ using its own rule
-	@ echo $@ $(_CC_AES_NI)
-	$(CC) -o $@ -fPIC $(OPT) -D_LIBRARY -DUSEVEC -DUSEVECREG -DUSEAESNI $(_CC_AES_NI) $<
-
-%.aes-ni.$(LOBX): %.c
-	$(CC) -o $@ -fPIC $(OPT) -D_LIBRARY -DUSEVEC -DUSEVECREG -DUSEAESNI $(CC_AES_NI) $<
-
-
-
-#-------------------------------------------------------------------------------
-# krypto
-#
-$(LIBDIR)/libkrypto: $(addprefix $(LIBDIR)/libkrypto.,$(LIBEXT))
-
-ALL_LIB_SRC = \
-	ciphermgr \
-	wgaencrypt \
-	encfile \
-	encfilev2 \
-	cipher \
-	aes_core \
-	aes-byte \
-	cipher-byte \
-	key \
-	reencfile
-
-LIB_SRC = \
-	no-null-ncbi
-
-TEST_LIB_SRC =  \
-	null-ncbi \
-	testcipher
-
-ifeq ($(VEC_SUPPORTED),true)
-ALL_LIB_SRC += \
-	cipher-vec.vec \
-	aes-ncbi.vec
-LIB_SRC += \
-	no-null-ncbi.vec
-TEST_LIB_SRC += \
-	null-ncbi.vec
-else
-ALL_LIB_SRC += \
-	cipher-no-vec.vec
-LIB_SRC += \
-	no-null-ncbi.vec
-TEST_LIB_SRC += \
-	no-null-ncbi.vec
-endif
-
-ifeq ($(VECREG_SUPPORTED),true)
-ALL_LIB_SRC += \
-	cipher-vec.vecreg \
-	aes-ncbi.vecreg
-LIB_SRC += \
-	no-null-ncbi.vecreg
-TEST_LIB_SRC += \
-	null-ncbi.vecreg
-else
-ALL_LIB_SRC += \
-	cipher-no-vec.vecreg
-LIB_SRC += \
-	no-null-ncbi.vecreg
-TEST_LIB_SRC += \
-	no-null-ncbi.vecreg
-endif
-
-ifeq ($(AESNI_SUPPORTED),true)
-ALL_LIB_SRC += \
-	cipher-vec.aes-ni \
-	aes-ncbi.aes-ni
-LIB_SRC += \
-	no-null-ncbi.aes-ni
-TEST_LIB_SRC += \
-	no-null-ncbi.aes-ni
-else
-ALL_LIB_SRC += \
-	cipher-no-vec.aes-ni
-LIB_SRC += \
-	no-null-ncbi.aes-ni
-TEST_LIB_SRC += \
-	no-null-ncbi.aes-ni
-endif
-
-
-KRYPTO_SRC = $(ALL_LIB_SRC) $(LIB_SRC)
-
-KRYPTO_OBJ = \
-	$(addsuffix .$(LOBX),$(KRYPTO_SRC))
-
-KRYPTO_LIB = \
-	-dkfg \
-	-dkfs \
-	-dkproc \
-	-dklib
-
-$(LIBDIR)/libkrypto.$(SHLX): $(KRYPTO_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(KRYPTO_LIB)
-
-$(LIBDIR)/libkrypto.$(LIBX): $(KRYPTO_OBJ)
-	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(KRYPTO_LIB)
-
-libkrypto_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libkrypto $(KRYPTO_OBJ)
-
-
-#-------------------------------------------------------------------------------
-# kryptotest
-#
-
-$(ILIBDIR)/libkryptotest: $(addprefix $(ILIBDIR)/libkryptotest.,$(ILIBEXT))
-
-
-KRYPTOTEST_SRC = $(ALL_LIB_SRC)	$(TEST_LIB_SRC)
-
-KRYPTOTEST_OBJ = \
-	$(addsuffix .$(LOBX),$(KRYPTOTEST_SRC))
-
-KRYPTOTEST_LIB = \
-	-dkfg \
-	-dkfs \
-	-dkproc \
-	-dklib
-
-
-$(ILIBDIR)/libkryptotest.$(SHLX): $(KRYPTOTEST_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(KRYPTOTEST_LIB)
-
-$(ILIBDIR)/libkryptotest.$(LIBX): $(KRYPTOTEST_OBJ)
-	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(KRYPTOTEST_LIB)
-
-libkryptotest_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libkryptotest $(KRYPTOTEST_OBJ)
-
-
-
diff --git a/libs/krypto/aes-byte.c b/libs/krypto/aes-byte.c
deleted file mode 100644
index 29e104b..0000000
--- a/libs/krypto/aes-byte.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-#include "aes-priv.h"
-#include "cipher-priv.h"
-
-#include <klib/rc.h>
-
-#include <string.h>
-#include <assert.h>
-
-
-/* instantiate for class functions that use the VT */
-#define BLOCKCIPHER_BYTE_IMPL KAESBlockCipherByte
-#include "blockcipher-impl.h"
-
-static const char KAESByteBlockCipherClassName[] = "KAESCipherByte";
-
-static
-void KAESBlockCipherByteDestroy (const KAESBlockCipherByte * self)
-{
-    /* we use a constant object */
-}
-
-
-static
-uint32_t KAESBlockCipherByteBlockSize ()
-{
-    return AES_BLOCK_SIZE;
-}
-
-
-/* ----------------------------------------------------------------------
- * KeySize
- *   How large is the stored key for this cipher?  Not the user key used
- *   to create this key (key schedule)
- *
- *   This is needed by KCipher to know how large the KCipher objecr is at
- *   allocation and to know how much of a buffer each decryption/encryption is
- */
-static
-uint32_t KAESBlockCipherByteKeySize ()
-{
-    return  (uint32_t)sizeof (AES_KEY);
-}
-
-
-/* ----------------------------------------------------------------------
- * SetEncryptKey
- *   The KCipher calls this to have the block cipher build an encryption
- *   key in the KCipher object
- *
- */
-static
-rc_t KAESBlockCipherByteSetEncryptKey (void * encrypt_key,
-                                       const char * user_key,
-                                       uint32_t user_key_size)
-{
-    int iii;
-    rc_t rc;
-
-    assert (encrypt_key);
-    assert (user_key);
-    assert (user_key_size != 0);
-
-    iii = AES_set_encrypt_key((const unsigned char *)user_key,
-                              (int)user_key_size * 8,
-                              encrypt_key);
-    if (iii == 0)
-        rc = 0;
-    else
-    {
-        switch (iii)
-        {
-        default: /* not in the code when this was written */
-            rc = RC (rcKrypto, rcCipher, rcUpdating, rcEncryptionKey, rcUnknown);
-            break;
-
-        case -1: /* bad parameters */
-            rc = RC (rcKrypto, rcCipher, rcUpdating, rcParam, rcInvalid);
-            break;
-
-        case -2: /* bad bit count */
-            rc = RC (rcKrypto, rcCipher, rcUpdating, rcParam, rcIncorrect);
-            break;
-        }
-        memset (encrypt_key, 0, sizeof (AES_KEY));
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * SetDecryptKey
- *   The KCipher calls this to have the block cipher build an decryption
- *   key in the KCipher object
- *
- */
-static
-rc_t KAESBlockCipherByteSetDecryptKey (void * decrypt_key,
-                                       const char * user_key,
-                                       uint32_t user_key_size)
-{
-    int iii;
-    rc_t rc;
-
-    assert (decrypt_key);
-    assert (user_key);
-    assert (user_key_size != 0);
-
-    iii = AES_set_decrypt_key((const unsigned char *)user_key, (int)user_key_size * 8,
-                              decrypt_key);
-    if (iii == 0)
-        rc = 0;
-    else
-    {
-        switch (iii)
-        {
-        default: /* not in the code when this was written */
-            rc = RC (rcKrypto, rcCipher, rcUpdating, rcEncryptionKey, rcUnknown);
-            break;
-
-        case -1: /* bad parameters */
-            rc = RC (rcKrypto, rcCipher, rcUpdating, rcParam, rcInvalid);
-            break;
-
-        case -2: /* bad bit count */
-            rc = RC (rcKrypto, rcCipher, rcUpdating, rcParam, rcIncorrect);
-            break;
-        }
-        memset (decrypt_key, 0, sizeof (AES_KEY));
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Encrypt
- *
- *   Perform an encryption of a single block.  Chained modes and stream
- *   cipher modes will call this multiple times.
- *
- */
-static
-void KAESBlockCipherByteEncrypt (const CipherBlock in,
-                                 CipherBlock out,
-                                 const void * key)
-{
-    assert (in);
-    assert (out);
-    assert (key);
-
-    AES_encrypt ((const uint8_t*)in, (uint8_t*)out, key);
-}
-
-
-/* ----------------------------------------------------------------------
- * Decrypt
- *
- *   Perform a decryption of a single block.  Chained modes and stream
- *   cipher modes will call this multiple times.
- *
- */
-static
-void KAESBlockCipherByteDecrypt (const CipherBlock in,
-                                 CipherBlock out,
-                                 const void * key)
-{
-    assert (in);
-    assert (out);
-    assert (key);
-
-    AES_decrypt ((const uint8_t*)in, (uint8_t*)out, key);
-}
-
-
-static const struct
-KBlockCipherByte_vt_v1 aes_vt = 
-{
-    /* .version */
-    { 1, 0 },
-
-    KAESBlockCipherByteDestroy,
-
-    KAESBlockCipherByteBlockSize,
-    KAESBlockCipherByteKeySize,
-
-    KAESBlockCipherByteSetEncryptKey,
-    KAESBlockCipherByteSetDecryptKey,
-
-    KAESBlockCipherByteEncrypt,
-    KAESBlockCipherByteDecrypt
-};
-
-
-rc_t KAESBlockCipherByteMake (KBlockCipherByte ** pobj)
-{
-    rc_t rc;
-
-    if (pobj == NULL)
-        rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-    {
-        rc = 0;
-        *pobj = (KBlockCipherByte*)&aes_vt;
-    }
-    return rc;
-}
-
-/* EOF */
-
diff --git a/libs/krypto/aes-ncbi-priv.h b/libs/krypto/aes-ncbi-priv.h
deleted file mode 100644
index 5738029..0000000
--- a/libs/krypto/aes-ncbi-priv.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#ifndef _h_krypto_aes_ncbi_priv_libs_
-#define _h_krypto_aes_ncbi_priv_libs_
-
-#include <klib/defs.h>
-#include <v128.h>
-
-#include "ncbi-priv.h"
-#include "cipher-impl.h"
-#include "blockcipher-impl.h"
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-
-/* ======================================================================
- * FIPS-197 2.1
- */
-#define AES_BLOCK_BITS (128)
-#define AES_BLOCK_BYTES (AES_BLOCK_BITS/8)
-
-
-/* ======================================================================
- * FIPS-197 3,4 - 3.5
- *
- * FIPS-197 defines Nk as number of 32-bit words in the user key
- */
-#define AES_Nk_128 (4)
-#define AES_Nk_192 (6)
-#define AES_Nk_256 (8)
-
-
-/*
- * FIPS-197 defines Nb as number of 32-bit words in the cipher block
- *
- * There is much odd naming in the document from the perspective of a software
- * engineer.
- */
-#define AES_Nb (4)
-#define AES_Nb_128 (AES_Nb)
-#define AES_Nb_192 (AES_Nb)
-#define AES_Nb_256 (AES_Nb)
-
-
-/* 
- * FIPS-197 defines Nr as the number of rounds for a cipher of a given original 
- * user key length.
- *
- * Another odd naming as it is really the zero based highest round offset
- * as 1 first round + Nr-1 middle rounds + 1 last round are performed for
- * each encrypt or decrypt block.  There are thus Nr + 1 round keys needed
- * in the encryption and decryption key schedules
- */
-#define AES_Nr_128 (10)
-#define AES_Nr_192 (12)
-#define AES_Nr_256 (14)
-#define AES_Nr_MAX (15)
-
-/* Most useful for testingg against Appendix A-C of the FIPS-197 document */
-#define DEBUG_OBJECT(msg) DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_OBJECT), msg)
-#define DEBUG_KEYEXP(msg) DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_KEYEXP), msg)
-#define DEBUG_CIPHER(msg) DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_CIPHER), msg)
-#define DEBUG_INVKEYEXP(msg) DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_INVKEYEXP), msg)
-#define DEBUG_INVCIPHER(msg) DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_INVCIPHER), msg)
-
-#define DEBUG_CIPHER_MVECTOR(M,v)                                   \
-    DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_CIPHER),                        \
-           ("%s:\t%0.8x %0.8x %0.8x %0.8x\n",M,                     \
-            v.columns[0],v.columns[1],v.columns[2],v.columns[3]))
-#define DEBUG_INVCIPHER_MVECTOR(M,v)                                \
-    DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_INVCIPHER),                     \
-           ("%s:\t%0.8x %0.8x %0.8x %0.8x\n",M,                     \
-            v.columns[0],v.columns[1],v.columns[2],v.columns[3]))
-
-#if _DEBUGGING
-#if 1
-#define DEBUG_CIPHER_VECTOR(M,V)                        \
-    {                                                   \
-        CipherVec_AES_u v; v.state = V;                 \
-        DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_CIPHER),        \
-               ("%s:\t%0.8x %0.8x %0.8x %0.8x\n", M,    \
-                bswap_32(v.columns[0]),                 \
-                bswap_32(v.columns[1]),                 \
-                bswap_32(v.columns[2]),                 \
-                bswap_32(v.columns[3])));               \
-            }
-#define DEBUG_INVCIPHER_VECTOR(M,V)                     \
-    {                                                   \
-        CipherVec_AES_u v; v.state = V;                 \
-        DBGMSG(DBG_AES,DBG_FLAG(DBG_AES_INVCIPHER),     \
-               ("%s:\t%0.8x %0.8x %0.8x %0.8x\n", M,    \
-                bswap_32(v.columns[0]),                 \
-                bswap_32(v.columns[1]),                 \
-                bswap_32(v.columns[2]),                 \
-                bswap_32(v.columns[3])));               \
-            }
-#else
-#define DEBUG_CIPHER_VECTOR(M,v)                              \
-    KOutMsg ( "%s:\t%0.8x %0.8x %0.8x %0.8x\n", M,            \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[0]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[1]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[2]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[3]))
-#define DEBUG_INVCIPHER_VECTOR(M,v)                           \
-    KOutMsg ( "%s:\t%0.8x %0.8x %0.8x %0.8x\n", M,            \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[0]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[1]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[2]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[3]))
-#endif
-#define DDEBUG_CIPHER_VECTOR(M,v)                             \
-    KOutMsg ( "%s:\t%0.8x %0.8x %0.8x %0.8x\n", M,            \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[0]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[1]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[2]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[3]))
-#define DDEBUG_INVCIPHER_VECTOR(M,v)                          \
-    KOutMsg ( "%s:\t%0.8x %0.8x %0.8x %0.8x\n", M,            \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[0]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[1]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[2]), \
-              bswap_32(((CipherVec_AES_u*)&(v))->columns[3]))
-
-#else
-#define DEBUG_CIPHER_VECTOR(M,V)
-#define DEBUG_INVCIPHER_VECTOR(M,V)
-#endif
-
-/* -----
- * 8 and 32 bit unsigned integers
- */
-typedef uint8_t  AESByte;
-typedef uint32_t AESWord;
-typedef union AESColumn AESColumn;
-union AESColumn
-{
-    AESWord word;
-    AESByte bytes [sizeof(AESWord)];
-};
-
-
-/* -----
- * 128 byte block in various forms
- */
-typedef AESByte AESBlock [AES_Nb*sizeof(AESWord)];
-
-typedef v128_u8_t  CipherVecByte;
-typedef v128_u32_t CipherVecWord;
-
-
-typedef struct AESKeySchedule  AESKeySchedule;
-struct AESKeySchedule
-{
-    CipherVec round_keys [AES_Nr_MAX];
-    uint32_t number_of_rounds;
-};
-
-/* ======================================================================
- * FIPS-197 3,4 - 3.5
- *
- * An AES State is the same size as the cipher block size.
- * They are eaither 4 columns of 32 bits or 16 individual bytes.
- * The columns can be accessed by their individual bytes s0
- * there are 4X32, 4X4X8 or 16X8 bits in a state.
- */
-typedef union
-{
-    CipherVec   state;
-    uint64_t    u64     [AES_Nb/2];
-    AESWord     columns [AES_Nb];
-    AESByte     bytes   [AES_Nb * sizeof (AESWord)];
-    AESByte     grid    [AES_Nb][sizeof (AESWord)];
-} CipherVec_AES_u;
-
-
-typedef union
-{
-    CipherVec   state;
-    v128_u32_t columns;
-} CipherVec_uu __attribute__ ((aligned(16)));
-
-/* 
- * KCipher with 128 bit alignment.
- */
-typedef struct CipherAes CipherAes;
-struct CipherAes
-{
-    KCipher dad;
-    AESKeySchedule e_key;
-    AESKeySchedule d_key;
-    CipherVec    e_ivec;
-    CipherVec    d_ivec;
-};
-
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_aes_ncbi_priv_libs_ */
-
-
diff --git a/libs/krypto/aes-ncbi.aes-ni.pic.o.list b/libs/krypto/aes-ncbi.aes-ni.pic.o.list
deleted file mode 100644
index 11d112b..0000000
--- a/libs/krypto/aes-ncbi.aes-ni.pic.o.list
+++ /dev/null
@@ -1,38295 +0,0 @@
-GAS LISTING /tmp/ccPaCTqg.s 			page 1
-
-
-   1              		.file	"aes-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 11140000 		.text
-   8      02007101 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.type	op_AESENC, @function
-  11              	op_AESENC:
-  12              	.LFB580:
-  13              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  25:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
-  26:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifndef _h_v128_
-  28:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #define _h_v128_
-  29:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #include <stdint.h>
-  31:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #include <x86intrin.h>
-  32:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  33:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __cplusplus
-  34:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** extern "C" {
-  35:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
-  36:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  37:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int8_t   v128_i8_t  __attribute__ ((vector_size (16),__may_alias__));
-  38:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint8_t  v128_u8_t  __attribute__ ((vector_size (16),__may_alias__));
-  39:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int16_t  v128_i16_t __attribute__ ((vector_size (16),__may_alias__));
-  40:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int32_t  v128_i32_t __attribute__ ((vector_size (16),__may_alias__));
-
GAS LISTING /tmp/ccPaCTqg.s 			page 2
-
-
-  41:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int64_t  v128_i64_t __attribute__ ((vector_size (16),__may_alias__));
-  42:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint16_t v128_u16_t __attribute__ ((vector_size (16),__may_alias__));
-  43:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint32_t v128_u32_t __attribute__ ((vector_size (16),__may_alias__));
-  44:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint64_t v128_u64_t __attribute__ ((vector_size (16),__may_alias__));
-  45:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef float    v128_f_t   __attribute__ ((vector_size (16),__may_alias__));
-  46:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef double   v128_d_t   __attribute__ ((vector_size (16),__may_alias__));
-  47:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  48:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* NOTE:
-  49:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * these types are to hide perceived flaws in the Intel/GCC code
-  50:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * don't use them outside of this file.  uint8_t, int8_t and int64_t all
-  51:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * fail to compile so the above types can't be used within this file in some 
-  52:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * places.
-  53:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  */
-  54:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef char          v128_c_t   __attribute__ ((vector_size (16),__may_alias__));
-  55:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef long long int v128_lli_t __attribute__ ((vector_size (16),__may_alias__));
-  56:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  57:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  58:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #if USE_VEC_REG
-  59:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  60:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* SSE
-  61:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movss
-  62:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movaps
-  63:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movups
-  64:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movlps
-  65:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movhps
-  66:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movlhps
-  67:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movhlps
-  68:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
-  69:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  70:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __MMX__
-  71:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* MMX
-  72:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_paddb (v8qi, v8qi)
-  73:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_paddw (v4hi, v4hi)
-  74:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_paddd (v2si, v2si)
-  75:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_psubb (v8qi, v8qi)
-  76:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psubw (v4hi, v4hi)
-  77:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psubd (v2si, v2si)
-  78:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_paddsb (v8qi, v8qi)
-  79:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_paddsw (v4hi, v4hi)
-  80:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_psubsb (v8qi, v8qi)
-  81:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psubsw (v4hi, v4hi)
-  82:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_paddusb (v8qi, v8qi)
-  83:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_paddusw (v4hi, v4hi)
-  84:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_psubusb (v8qi, v8qi)
-  85:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psubusw (v4hi, v4hi)
-  86:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmullw (v4hi, v4hi)
-  87:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmulhw (v4hi, v4hi)
-  88:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_pand (di, di)
-  89:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_pandn (di,di)
-  90:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_por (di, di)
-  91:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_pxor (di, di)
-  92:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pcmpeqb (v8qi, v8qi)
-  93:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pcmpeqw (v4hi, v4hi)
-  94:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pcmpeqd (v2si, v2si)
-  95:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pcmpgtb (v8qi, v8qi)
-  96:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pcmpgtw (v4hi, v4hi)
-  97:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pcmpgtd (v2si, v2si)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 3
-
-
-  98:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_punpckhbw (v8qi, v8qi)
-  99:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_punpckhwd (v4hi, v4hi)
- 100:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_punpckhdq (v2si, v2si)
- 101:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_punpcklbw (v8qi, v8qi)
- 102:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_punpcklwd (v4hi, v4hi)
- 103:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_punpckldq (v2si, v2si)
- 104:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_packsswb (v4hi, v4hi)
- 105:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_packssdw (v2si, v2si)
- 106:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_packuswb (v4hi, v4hi)
- 107:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      
- 108:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psllw (v4hi, v4hi)
- 109:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pslld (v2si, v2si)
- 110:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psllq (v1di, v1di)
- 111:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psrlw (v4hi, v4hi)
- 112:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psrld (v2si, v2si)
- 113:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psrlq (v1di, v1di)
- 114:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psraw (v4hi, v4hi)
- 115:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psrad (v2si, v2si)
- 116:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psllwi (v4hi, int)
- 117:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pslldi (v2si, int)
- 118:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psllqi (v1di, int)
- 119:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psrlwi (v4hi, int)
- 120:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psrldi (v2si, int)
- 121:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psrlqi (v1di, int)
- 122:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psrawi (v4hi, int)
- 123:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psradi (v2si, int)
- 124:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 125:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 126:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 127:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE__
- 128:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* SSE
- 129:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmulhuw (v4hi, v4hi)
- 130:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pavgb (v8qi, v8qi)
- 131:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pavgw (v4hi, v4hi)
- 132:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psadbw (v8qi, v8qi)
- 133:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pmaxub (v8qi, v8qi)
- 134:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmaxsw (v4hi, v4hi)
- 135:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pminub (v8qi, v8qi)
- 136:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pminsw (v4hi, v4hi)
- 137:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_pextrw (v4hi, int)
- 138:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pinsrw (v4hi, int, int)
- 139:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_pmovmskb (v8qi)
- 140:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_maskmovq (v8qi, v8qi, char *)
- 141:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_movntq (di *, di)
- 142:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_sfence (void)
- 143:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 144:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comieq (v4sf, v4sf)
- 145:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comineq (v4sf, v4sf)
- 146:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comilt (v4sf, v4sf)
- 147:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comile (v4sf, v4sf)
- 148:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comigt (v4sf, v4sf)
- 149:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comige (v4sf, v4sf)
- 150:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomieq (v4sf, v4sf)
- 151:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomineq (v4sf, v4sf)
- 152:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomilt (v4sf, v4sf)
- 153:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomile (v4sf, v4sf)
- 154:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomigt (v4sf, v4sf)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 4
-
-
- 155:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomige (v4sf, v4sf)
- 156:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_addps (v4sf, v4sf)
- 157:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_subps (v4sf, v4sf)
- 158:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_mulps (v4sf, v4sf)
- 159:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_divps (v4sf, v4sf)
- 160:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_addss (v4sf, v4sf)
- 161:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_subss (v4sf, v4sf)
- 162:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_mulss (v4sf, v4sf)
- 163:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_divss (v4sf, v4sf)
- 164:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpeqps (v4sf, v4sf)
- 165:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpltps (v4sf, v4sf)
- 166:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpleps (v4sf, v4sf)
- 167:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpgtps (v4sf, v4sf)
- 168:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpgeps (v4sf, v4sf)
- 169:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpunordps (v4sf, v4sf)
- 170:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpneqps (v4sf, v4sf)
- 171:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnltps (v4sf, v4sf)
- 172:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnleps (v4sf, v4sf)
- 173:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpngtps (v4sf, v4sf)
- 174:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpngeps (v4sf, v4sf)
- 175:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpordps (v4sf, v4sf)
- 176:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpeqss (v4sf, v4sf)
- 177:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpltss (v4sf, v4sf)
- 178:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpless (v4sf, v4sf)
- 179:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpunordss (v4sf, v4sf)
- 180:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpneqss (v4sf, v4sf)
- 181:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnlts (v4sf, v4sf)
- 182:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnless (v4sf, v4sf)
- 183:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpordss (v4sf, v4sf)
- 184:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_maxps (v4sf, v4sf)
- 185:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_maxss (v4sf, v4sf)
- 186:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_minps (v4sf, v4sf)
- 187:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_minss (v4sf, v4sf)
- 188:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_andps (v4sf, v4sf)
- 189:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_andnps (v4sf, v4sf)
- 190:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_orps (v4sf, v4sf)
- 191:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_xorps (v4sf, v4sf)
- 192:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_movss (v4sf, v4sf)
- 193:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_movhlps (v4sf, v4sf)
- 194:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_movlhps (v4sf, v4sf)
- 195:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_unpckhps (v4sf, v4sf)
- 196:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_unpcklps (v4sf, v4sf)
- 197:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_cvtpi2ps (v4sf, v2si)
- 198:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_cvtsi2ss (v4sf, int)
- 199:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_cvtps2pi (v4sf)
- 200:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_cvtss2si (v4sf)
- 201:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_cvttps2pi (v4sf)
- 202:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_cvttss2si (v4sf)
- 203:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rcpps (v4sf)
- 204:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rsqrtps (v4sf)
- 205:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_sqrtps (v4sf)
- 206:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rcpss (v4sf)
- 207:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rsqrtss (v4sf)
- 208:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_sqrtss (v4sf)
- 209:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_shufps (v4sf, v4sf, int)
- 210:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 211:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
-
GAS LISTING /tmp/ccPaCTqg.s 			page 5
-
-
- 212:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPS ( v128_u8_t vin1, v128_u8_t vin2, const int mask )
- 213:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 214:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 215:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 216:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPS (v128_u8_t vin1, v128_u8_t vin2, const int mask)
- 217:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 218:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufps ((v128_f_t)vin1, (v128_f_t)vin2, mask);
- 219:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 220:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 221:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  /*
- 222:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_movntps (float *, v4sf)
- 223:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_movmskps (v4sf)
- 224:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 225:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadaps (float *)
- 226:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movaps machine instruction as a load from memory. 
- 227:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storeaps (float *, v4sf)
- 228:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movaps machine instruction as a store to memory. 
- 229:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadups (float *)
- 230:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movups machine instruction as a load from memory. 
- 231:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storeups (float *, v4sf)
- 232:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movups machine instruction as a store to memory. 
- 233:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadsss (float *)
- 234:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movss machine instruction as a load from memory. 
- 235:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storess (float *, v4sf)
- 236:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movss machine instruction as a store to memory. 
- 237:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadhps (v4sf, const v2sf *)
- 238:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movhps machine instruction as a load from memory. 
- 239:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadlps (v4sf, const v2sf *)
- 240:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movlps machine instruction as a load from memory 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storehps (v2sf *, v4sf)
- 242:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movhps machine instruction as a store to memory. 
- 243:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storelps (v2sf *, v4sf)
- 244:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movlps machine instruction as a store to memory.
- 245:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 246:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 247:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 248:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE2__
- 249:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* sse2
- 250:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdeq (v2df, v2df)
- 251:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdlt (v2df, v2df)
- 252:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdle (v2df, v2df)
- 253:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdgt (v2df, v2df)
- 254:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdge (v2df, v2df)
- 255:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdneq (v2df, v2df)
- 256:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdeq (v2df, v2df)
- 257:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdlt (v2df, v2df)
- 258:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdle (v2df, v2df)
- 259:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdgt (v2df, v2df)
- 260:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdge (v2df, v2df)
- 261:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdneq (v2df, v2df)
- 262:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpeqpd (v2df, v2df)
- 263:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpltpd (v2df, v2df)
- 264:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmplepd (v2df, v2df)
- 265:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpgtpd (v2df, v2df)
- 266:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpgepd (v2df, v2df)
- 267:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpunordpd (v2df, v2df)
- 268:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpneqpd (v2df, v2df)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 6
-
-
- 269:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnltpd (v2df, v2df)
- 270:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnlepd (v2df, v2df)
- 271:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpngtpd (v2df, v2df)
- 272:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpngepd (v2df, v2df)
- 273:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpordpd (v2df, v2df)
- 274:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpeqsd (v2df, v2df)
- 275:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpltsd (v2df, v2df)
- 276:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmplesd (v2df, v2df)
- 277:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpunordsd (v2df, v2df)
- 278:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpneqsd (v2df, v2df)
- 279:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnltsd (v2df, v2df)
- 280:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnlesd (v2df, v2df)
- 281:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpordsd (v2df, v2df)
- 282:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_paddq (v2di, v2di)
- 283:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psubq (v2di, v2di)
- 284:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_addpd (v2df, v2df)
- 285:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_subpd (v2df, v2df)
- 286:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_mulpd (v2df, v2df)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_divpd (v2df, v2df)
- 288:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_addsd (v2df, v2df)
- 289:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_subsd (v2df, v2df)
- 290:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_mulsd (v2df, v2df)
- 291:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_divsd (v2df, v2df)
- 292:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_minpd (v2df, v2df)
- 293:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_maxpd (v2df, v2df)
- 294:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_minsd (v2df, v2df)
- 295:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_maxsd (v2df, v2df)
- 296:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_andpd (v2df, v2df)
- 297:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_andnpd (v2df, v2df)
- 298:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_orpd (v2df, v2df)
- 299:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_xorpd (v2df, v2df)
- 300:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_movsd (v2df, v2df)
- 301:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_unpckhpd (v2df, v2df)
- 302:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_unpcklpd (v2df, v2df)
- 303:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_paddb128 (v16qi, v16qi)
- 304:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_paddw128 (v8hi, v8hi)
- 305:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_paddd128 (v4si, v4si)
- 306:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_paddq128 (v2di, v2di)
- 307:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_psubb128 (v16qi, v16qi)
- 308:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psubw128 (v8hi, v8hi)
- 309:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psubd128 (v4si, v4si)
- 310:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psubq128 (v2di, v2di)
- 311:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmullw128 (v8hi, v8hi)
- 312:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmulhw128 (v8hi, v8hi)
- 313:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pand128 (v2di, v2di)
- 314:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pandn128 (v2di, v2di)
- 315:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_por128 (v2di, v2di)
- 316:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pxor128 (v2di, v2di)
- 317:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pavgb128 (v16qi, v16qi)
- 318:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pavgw128 (v8hi, v8hi)
- 319:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pcmpeqb128 (v16qi, v16qi)
- 320:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pcmpeqw128 (v8hi, v8hi)
- 321:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pcmpeqd128 (v4si, v4si)
- 322:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pcmpgtb128 (v16qi, v16qi)
- 323:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pcmpgtw128 (v8hi, v8hi)
- 324:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pcmpgtd128 (v4si, v4si)
- 325:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pmaxub128 (v16qi, v16qi)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 7
-
-
- 326:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmaxsw128 (v8hi, v8hi)
- 327:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pminub128 (v16qi, v16qi)
- 328:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pminsw128 (v8hi, v8hi)
- 329:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_punpckhbw128 (v16qi, v16qi)
- 330:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_punpckhwd128 (v8hi, v8hi)
- 331:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_punpckhdq128 (v4si, v4si)
- 332:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_punpckhqdq128 (v2di, v2di)
- 333:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_punpcklbw128 (v16qi, v16qi)
- 334:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_punpcklwd128 (v8hi, v8hi)
- 335:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_punpckldq128 (v4si, v4si)
- 336:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_punpcklqdq128 (v2di, v2di)
- 337:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_packsswb128 (v8hi, v8hi)
- 338:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_packssdw128 (v4si, v4si)
- 339:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_packuswb128 (v8hi, v8hi)
- 340:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmulhuw128 (v8hi, v8hi)
- 341:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_maskmovdqu (v16qi, v16qi)
- 342:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_loadupd (double *)
- 343:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_storeupd (double *, v2df)
- 344:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_loadhpd (v2df, double const *)
- 345:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_loadlpd (v2df, double const *)
- 346:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_movmskpd (v2df)
- 347:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pmovmskb128 (v16qi)
- 348:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_movnti (int *, int)
- 349:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_movntpd (double *, v2df)
- 350:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_movntdq (v2df *, v2df)
- 351:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pshufd (v4si, int)
- 352:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pshuflw (v8hi, int)
- 353:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pshufhw (v8hi, int)
- 354:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psadbw128 (v16qi, v16qi)
- 355:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_sqrtpd (v2df)
- 356:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_sqrtsd (v2df)
- 357:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_shufpd (v2df, v2df, int)
- 358:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 359:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 360:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPD (v128_u8_t vin1, v128_u8_t vin2, const int mask)
- 361:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 362:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 363:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 364:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPD (v128_u8_t vin1, v128_u8_t vin2, const int mask)
- 365:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 367:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 368:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 369:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 370:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtdq2pd (v4si)
- 371:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cvtdq2ps (v4si)
- 372:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvtpd2dq (v2df)
- 373:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_cvtpd2pi (v2df)
- 374:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cvtpd2ps (v2df)
- 375:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvttpd2dq (v2df)
- 376:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_cvttpd2pi (v2df)
- 377:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtpi2pd (v2si)
- 378:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_cvtsd2si (v2df)
- 379:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_cvttsd2si (v2df)
- 380:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      long long __builtin_ia32_cvtsd2si64 (v2df)
- 381:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      long long __builtin_ia32_cvttsd2si64 (v2df)
- 382:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvtps2dq (v4sf)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 8
-
-
- 383:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtps2pd (v4sf)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvttps2dq (v4sf)
- 385:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtsi2sd (v2df, int)
- 386:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtsi642sd (v2df, long long)
- 387:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cvtsd2ss (v4sf, v2df)
- 388:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtss2sd (v2df, v4sf)
- 389:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_clflush (const void *)
- 390:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_lfence (void)
- 391:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_mfence (void)
- 392:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_loaddqu (const char *)
- 393:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_storedqu (char *, v16qi)
- 394:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v1di __builtin_ia32_pmuludq (v2si, v2si)
- 395:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmuludq128 (v4si, v4si)
- 396:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psllw128 (v8hi, v8hi)
- 397:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pslld128 (v4si, v4si)
- 398:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psllq128 (v2di, v2di)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psrlw128 (v8hi, v8hi)
- 400:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psrld128 (v4si, v4si)
- 401:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psrlq128 (v2di, v2di)
- 402:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psraw128 (v8hi, v8hi)
- 403:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psrad128 (v4si, v4si)
- 404:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pslldqi128 (v2di, int)
- 405:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psllwi128 (v8hi, int)
- 406:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pslldi128 (v4si, int)
- 407:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 408:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 409:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 410:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSLLDI128 ( v128_u8_t vin, const int bit_count )
- 411:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 412:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 413:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 414:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSLLDI128 (v128_u8_t vin, const int bit_count)
- 415:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 417:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 418:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 419:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 420:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psllqi128 (v2di, int)
- 421:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psrldqi128 (v2di, int)
- 422:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psrlwi128 (v8hi, int)
- 423:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psrldi128 (v4si, int)
- 424:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 425:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 426:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 427:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSRLDI128 ( v128_u8_t vin, const int bit_count )
- 428:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 429:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 430:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 431:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSRLDI128 (v128_u8_t vin, const int bit_count)
- 432:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 434:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 435:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 436:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 437:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psrlqi128 (v2di, int)
- 438:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psrawi128 (v8hi, int)
- 439:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psradi128 (v4si, int)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 9
-
-
- 440:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmaddwd128 (v8hi, v8hi)
- 441:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_movq128 (v2di)
- 442:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 443:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 444:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFD128 ( v128_u8_t vin, const int mask )
- 445:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 446:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      
- 447:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 448:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFD128 (v128_u8_t vin, const int mask)
- 449:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 451:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 452:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 453:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 454:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE3__
- 455:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* sse3
- 456:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_addsubpd (v2df, v2df)
- 457:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_addsubps (v4sf, v4sf)
- 458:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_haddpd (v2df, v2df)
- 459:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_haddps (v4sf, v4sf)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_hsubpd (v2df, v2df)
- 461:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_hsubps (v4sf, v4sf)
- 462:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_lddqu (char const *)
- 463:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_monitor (void *, unsigned int, unsigned int)
- 464:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_movddup (v2df)
- 465:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_movshdup (v4sf)
- 466:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_movsldup (v4sf)
- 467:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_mwait (unsigned int, unsigned int)
- 468:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 469:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v2df __builtin_ia32_loadddup (double const *)
- 470:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 471:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 472:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 473:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 474:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 475:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSSE3__
- 476:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 477:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* ssse3
- 478:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  *
- 479:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * The following built-in functions are available when -mssse3 is used. All of
- 480:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * them generate the machine instruction that is part of the name with MMX
- 481:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * registers.
- 482:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  *
- 483:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * 
- 484:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_phaddd (v2si, v2si)
- 485:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phaddw (v4hi, v4hi)
- 486:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phaddsw (v4hi, v4hi)
- 487:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_phsubd (v2si, v2si)
- 488:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phsubw (v4hi, v4hi)
- 489:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phsubsw (v4hi, v4hi)
- 490:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_pmaddubsw (v8qi, v8qi)
- 491:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_pmulhrsw (v4hi, v4hi)
- 492:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8qi __builtin_ia32_pshufb (v8qi, v8qi)
- 493:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8qi __builtin_ia32_psignb (v8qi, v8qi)
- 494:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_psignd (v2si, v2si)
- 495:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_psignw (v4hi, v4hi)
- 496:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v1di __builtin_ia32_palignr (v1di, v1di, int)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 10
-
-
- 497:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8qi __builtin_ia32_pabsb (v8qi)
- 498:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_pabsd (v2si)
- 499:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_pabsw (v4hi)
- 500:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -mssse3 is used.
- 501:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** All of them generate the machine instruction that is part of the name
- 502:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** with SSE registers.
- 503:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 504:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_phaddd128 (v4si, v4si)
- 505:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phaddw128 (v8hi, v8hi)
- 506:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phaddsw128 (v8hi, v8hi)
- 507:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_phsubd128 (v4si, v4si)
- 508:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phsubw128 (v8hi, v8hi)
- 509:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phsubsw128 (v8hi, v8hi)
- 510:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmaddubsw128 (v16qi, v16qi)
- 511:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmulhrsw128 (v8hi, v8hi)
- 512:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** +    v16qi __builtin_ia32_pshufb128 (v16qi, v16qi)
- 513:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_psignb128 (v16qi, v16qi)
- 514:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psignd128 (v4si, v4si)
- 515:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psignw128 (v8hi, v8hi)
- 516:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_palignr128 (v2di, v2di, int)
- 517:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pabsb128 (v16qi)
- 518:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pabsd128 (v4si)
- 519:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pabsw128 (v8hi)
- 520:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  */
- 521:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 522:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 523:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFB128 (register v128_u8_t vin, register const v128_u8_t vtab)
- 524:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 525:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 527:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFB128 (register v128_u8_t vin, register const v128_u8_t vtab)
- 528:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 530:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 531:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 532:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 533:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE4_1__
- 534:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* sse4.1
- 535:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -msse4.1 is used.
- 536:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** All of them generate the machine instruction that is part of the name.
- 537:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 538:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_blendpd (v2df, v2df, const int)
- 539:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_blendps (v4sf, v4sf, const int)
- 540:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_blendvpd (v2df, v2df, v2df)
- 541:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_blendvps (v4sf, v4sf, v4sf)
- 542:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_dppd (v2df, v2df, const int)
- 543:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_dpps (v4sf, v4sf, const int)
- 544:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_insertps128 (v4sf, v4sf, const int)
- 545:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_movntdqa (v2di *);
- 546:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_mpsadbw128 (v16qi, v16qi, const int)
- 547:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_packusdw128 (v4si, v4si)
- 548:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pblendvb128 (v16qi, v16qi, v16qi)
- 549:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pblendw128 (v8hi, v8hi, const int)
- 550:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pcmpeqq (v2di, v2di)
- 551:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phminposuw128 (v8hi)
- 552:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pmaxsb128 (v16qi, v16qi)
- 553:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmaxsd128 (v4si, v4si)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 11
-
-
- 554:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmaxud128 (v4si, v4si)
- 555:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmaxuw128 (v8hi, v8hi)
- 556:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pminsb128 (v16qi, v16qi)
- 557:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pminsd128 (v4si, v4si)
- 558:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pminud128 (v4si, v4si)
- 559:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pminuw128 (v8hi, v8hi)
- 560:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovsxbd128 (v16qi)
- 561:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovsxbq128 (v16qi)
- 562:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmovsxbw128 (v16qi)
- 563:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovsxdq128 (v4si)
- 564:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovsxwd128 (v8hi)
- 565:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovsxwq128 (v8hi)
- 566:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovzxbd128 (v16qi)
- 567:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovzxbq128 (v16qi)
- 568:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmovzxbw128 (v16qi)
- 569:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovzxdq128 (v4si)
- 570:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovzxwd128 (v8hi)
- 571:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovzxwq128 (v8hi)
- 572:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmuldq128 (v4si, v4si)
- 573:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmulld128 (v4si, v4si)
- 574:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestc128 (v2di, v2di)
- 575:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestnzc128 (v2di, v2di)
- 576:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestz128 (v2di, v2di)
- 577:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_roundpd (v2df, const int)
- 578:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_roundps (v4sf, const int)
- 579:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_roundsd (v2df, v2df, const int)
- 580:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_roundss (v4sf, v4sf, const int)
- 581:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -msse4.1 is used.
- 582:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 583:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_vec_set_v4sf (v4sf, float, const int)
- 584:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the insertps machine instruction. 
- 585:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** int __builtin_ia32_vec_ext_v16qi (v16qi, const int)
- 586:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pextrb machine instruction. 
- 587:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v16qi __builtin_ia32_vec_set_v16qi (v16qi, int, const int)
- 588:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pinsrb machine instruction. 
- 589:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4si __builtin_ia32_vec_set_v4si (v4si, int, const int)
- 590:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pinsrd machine instruction. 
- 591:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 592:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 593:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PINSRUD (register v128_u8_t vin, uint32_t ii, const int off)
- 594:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 595:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 596:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PINSRUD (register v128_u8_t vin, uint32_t ii, const int off)
- 597:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 598:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_vec_set_v4si ((v128_i32_t)vin, ii, off);
- 599:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 600:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 601:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v2di __builtin_ia32_vec_set_v2di (v2di, long long, const int)
- 602:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pinsrq machine instruction in 64bit mode.
- 603:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are changed to generate new SSE4.1 instructions when -msse4.1 is u
- 604:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 605:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** float __builtin_ia32_vec_ext_v4sf (v4sf, const int)
- 606:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the extractps machine instruction. 
- 607:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** int __builtin_ia32_vec_ext_v4si (v4si, const int)
- 608:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pextrd machine instruction. 
- 609:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** long long __builtin_ia32_vec_ext_v2di (v2di, const int)
- 610:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pextrq machine instruction in 64bit mode.
-
GAS LISTING /tmp/ccPaCTqg.s 			page 12
-
-
- 611:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  */
- 612:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 614:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 615:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE4_2__
- 616:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 617:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* sse4.2
- 618:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -msse4.2 is used.
- 619:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** All of them generate the machine instruction that is part of the name.
- 620:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 621:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pcmpestrm128 (v16qi, int, v16qi, int, const int)
- 622:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpestri128 (v16qi, int, v16qi, int, const int)
- 623:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpestria128 (v16qi, int, v16qi, int, const int)
- 624:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpestric128 (v16qi, int, v16qi, int, const int)
- 625:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpestrio128 (v16qi, int, v16qi, int, const int)
- 626:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpestris128 (v16qi, int, v16qi, int, const int)
- 627:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpestriz128 (v16qi, int, v16qi, int, const int)
- 628:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pcmpistrm128 (v16qi, v16qi, const int)
- 629:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpistri128 (v16qi, v16qi, const int)
- 630:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpistria128 (v16qi, v16qi, const int)
- 631:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpistric128 (v16qi, v16qi, const int)
- 632:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpistrio128 (v16qi, v16qi, const int)
- 633:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpistris128 (v16qi, v16qi, const int)
- 634:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pcmpistriz128 (v16qi, v16qi, const int)
- 635:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pcmpgtq (v2di, v2di)
- 636:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -msse4.2 is used.
- 637:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 638:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** unsigned int __builtin_ia32_crc32qi (unsigned int, unsigned char)
- 639:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the crc32b machine instruction. 
- 640:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** unsigned int __builtin_ia32_crc32hi (unsigned int, unsigned short)
- 641:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the crc32w machine instruction. 
- 642:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** unsigned int __builtin_ia32_crc32si (unsigned int, unsigned int)
- 643:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the crc32l machine instruction. 
- 644:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** unsigned long long __builtin_ia32_crc32di (unsigned long long, unsigned long long)
- 645:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the crc32q machine instruction.
- 646:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are changed to generate new SSE4.2 instructions when -msse4.2 is u
- 647:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 648:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** int __builtin_popcount (unsigned int)
- 649:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the popcntl machine instruction. 
- 650:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** int __builtin_popcountl (unsigned long)
- 651:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the popcntl or popcntq machine instruction, depending on the size of unsigned long. 
- 652:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** int __builtin_popcountll (unsigned long long)
- 653:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the popcntq machine instruction.
- 654:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 655:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 656:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 657:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 658:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 659:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* avx
- 660:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -mavx is used.
- 661:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** All of them generate the machine instruction that is part of the name.
- 662:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 663:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_addpd256 (v4df,v4df)
- 664:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_addps256 (v8sf,v8sf)
- 665:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_addsubpd256 (v4df,v4df)
- 666:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_addsubps256 (v8sf,v8sf)
- 667:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_andnpd256 (v4df,v4df)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 13
-
-
- 668:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_andnps256 (v8sf,v8sf)
- 669:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_andpd256 (v4df,v4df)
- 670:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_andps256 (v8sf,v8sf)
- 671:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_blendpd256 (v4df,v4df,int)
- 672:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_blendps256 (v8sf,v8sf,int)
- 673:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_blendvpd256 (v4df,v4df,v4df)
- 674:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_blendvps256 (v8sf,v8sf,v8sf)
- 675:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmppd (v2df,v2df,int)
- 676:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_cmppd256 (v4df,v4df,int)
- 677:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cmpps (v4sf,v4sf,int)
- 678:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_cmpps256 (v8sf,v8sf,int)
- 679:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpsd (v2df,v2df,int)
- 680:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cmpss (v4sf,v4sf,int)
- 681:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_cvtdq2pd256 (v4si)
- 682:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_cvtdq2ps256 (v8si)
- 683:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvtpd2dq256 (v4df)
- 684:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cvtpd2ps256 (v4df)
- 685:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8si __builtin_ia32_cvtps2dq256 (v8sf)
- 686:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_cvtps2pd256 (v4sf)
- 687:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvttpd2dq256 (v4df)
- 688:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8si __builtin_ia32_cvttps2dq256 (v8sf)
- 689:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_divpd256 (v4df,v4df)
- 690:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_divps256 (v8sf,v8sf)
- 691:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_dpps256 (v8sf,v8sf,int)
- 692:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_haddpd256 (v4df,v4df)
- 693:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_haddps256 (v8sf,v8sf)
- 694:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_hsubpd256 (v4df,v4df)
- 695:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_hsubps256 (v8sf,v8sf)
- 696:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v32qi __builtin_ia32_lddqu256 (pcchar)
- 697:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v32qi __builtin_ia32_loaddqu256 (pcchar)
- 698:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_loadupd256 (pcdouble)
- 699:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_loadups256 (pcfloat)
- 700:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_maskloadpd (pcv2df,v2df)
- 701:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_maskloadpd256 (pcv4df,v4df)
- 702:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_maskloadps (pcv4sf,v4sf)
- 703:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_maskloadps256 (pcv8sf,v8sf)
- 704:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_maskstorepd (pv2df,v2df,v2df)
- 705:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_maskstorepd256 (pv4df,v4df,v4df)
- 706:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_maskstoreps (pv4sf,v4sf,v4sf)
- 707:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_maskstoreps256 (pv8sf,v8sf,v8sf)
- 708:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_maxpd256 (v4df,v4df)
- 709:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_maxps256 (v8sf,v8sf)
- 710:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_minpd256 (v4df,v4df)
- 711:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_minps256 (v8sf,v8sf)
- 712:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_movddup256 (v4df)
- 713:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_movmskpd256 (v4df)
- 714:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_movmskps256 (v8sf)
- 715:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_movshdup256 (v8sf)
- 716:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_movsldup256 (v8sf)
- 717:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_mulpd256 (v4df,v4df)
- 718:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_mulps256 (v8sf,v8sf)
- 719:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_orpd256 (v4df,v4df)
- 720:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_orps256 (v8sf,v8sf)
- 721:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_pd_pd256 (v4df)
- 722:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_pd256_pd (v2df)
- 723:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_ps_ps256 (v8sf)
- 724:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_ps256_ps (v4sf)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 14
-
-
- 725:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestc256 (v4di,v4di,ptest)
- 726:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestnzc256 (v4di,v4di,ptest)
- 727:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestz256 (v4di,v4di,ptest)
- 728:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_rcpps256 (v8sf)
- 729:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_roundpd256 (v4df,int)
- 730:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_roundps256 (v8sf,int)
- 731:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_rsqrtps_nr256 (v8sf)
- 732:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_rsqrtps256 (v8sf)
- 733:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_shufpd256 (v4df,v4df,int)
- 734:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_shufps256 (v8sf,v8sf,int)
- 735:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_si_si256 (v8si)
- 736:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8si __builtin_ia32_si256_si (v4si)
- 737:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_sqrtpd256 (v4df)
- 738:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_sqrtps_nr256 (v8sf)
- 739:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_sqrtps256 (v8sf)
- 740:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_storedqu256 (pchar,v32qi)
- 741:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_storeupd256 (pdouble,v4df)
- 742:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_storeups256 (pfloat,v8sf)
- 743:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_subpd256 (v4df,v4df)
- 744:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_subps256 (v8sf,v8sf)
- 745:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_unpckhpd256 (v4df,v4df)
- 746:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_unpckhps256 (v8sf,v8sf)
- 747:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_unpcklpd256 (v4df,v4df)
- 748:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_unpcklps256 (v8sf,v8sf)
- 749:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_vbroadcastf128_pd256 (pcv2df)
- 750:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_vbroadcastf128_ps256 (pcv4sf)
- 751:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_vbroadcastsd256 (pcdouble)
- 752:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_vbroadcastss (pcfloat)
- 753:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_vbroadcastss256 (pcfloat)
- 754:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_vextractf128_pd256 (v4df,int)
- 755:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_vextractf128_ps256 (v8sf,int)
- 756:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_vextractf128_si256 (v8si,int)
- 757:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_vinsertf128_pd256 (v4df,v2df,int)
- 758:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_vinsertf128_ps256 (v8sf,v4sf,int)
- 759:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8si __builtin_ia32_vinsertf128_si256 (v8si,v4si,int)
- 760:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_vperm2f128_pd256 (v4df,v4df,int)
- 761:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_vperm2f128_ps256 (v8sf,v8sf,int)
- 762:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8si __builtin_ia32_vperm2f128_si256 (v8si,v8si,int)
- 763:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_vpermil2pd (v2df,v2df,v2di,int)
- 764:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_vpermil2pd256 (v4df,v4df,v4di,int)
- 765:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_vpermil2ps (v4sf,v4sf,v4si,int)
- 766:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_vpermil2ps256 (v8sf,v8sf,v8si,int)
- 767:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_vpermilpd (v2df,int)
- 768:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_vpermilpd256 (v4df,int)
- 769:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_vpermilps (v4sf,int)
- 770:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_vpermilps256 (v8sf,int)
- 771:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_vpermilvarpd (v2df,v2di)
- 772:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_vpermilvarpd256 (v4df,v4di)
- 773:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_vpermilvarps (v4sf,v4si)
- 774:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_vpermilvarps256 (v8sf,v8si)
- 775:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestcpd (v2df,v2df,ptest)
- 776:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestcpd256 (v4df,v4df,ptest)
- 777:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestcps (v4sf,v4sf,ptest)
- 778:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestcps256 (v8sf,v8sf,ptest)
- 779:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestnzcpd (v2df,v2df,ptest)
- 780:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestnzcpd256 (v4df,v4df,ptest)
- 781:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestnzcps (v4sf,v4sf,ptest)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 15
-
-
- 782:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestnzcps256 (v8sf,v8sf,ptest)
- 783:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestzpd (v2df,v2df,ptest)
- 784:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestzpd256 (v4df,v4df,ptest)
- 785:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestzps (v4sf,v4sf,ptest)
- 786:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_vtestzps256 (v8sf,v8sf,ptest)
- 787:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_vzeroall (void)
- 788:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_vzeroupper (void)
- 789:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4df __builtin_ia32_xorpd256 (v4df,v4df)
- 790:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8sf __builtin_ia32_xorps256 (v8sf,v8sf)
- 791:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 792:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 793:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 794:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 795:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 796:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __AES__
- 797:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 798:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * AES-NI instruction set
- 799:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * includes PCMUL
- 800:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  */
- 801:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 802:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* AES-NI aes
- 803:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  */
- 804:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 805:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    
- 806:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* v2di __builtin_ia32_aesenc128 (v2di, v2di) */
- 807:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 808:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_AESENC (register v128_u8_t state, register const v128_u8_t round_key)
- 809:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
-  14              		.loc 1 809 0
-  15              		.cfi_startproc
-  16 0000 55       		pushq	%rbp
-  17              	.LCFI0:
-  18              		.cfi_def_cfa_offset 16
-  19 0001 4889E5   		movq	%rsp, %rbp
-  20              		.cfi_offset 6, -16
-  21              	.LCFI1:
-  22              		.cfi_def_cfa_register 6
- 810:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aesenc128 ((v128_lli_t)state,
-  23              		.loc 1 810 0
-  24 0004 660F38DC 		aesenc	%xmm1, %xmm0
-  24      C1
- 811:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                                                (v128_lli_t)round_key);
- 812:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
-  25              		.loc 1 812 0
-  26 0009 C9       		leave
-  27 000a C3       		ret
-  28              		.cfi_endproc
-  29              	.LFE580:
-  30              		.size	op_AESENC, .-op_AESENC
-  31              		.type	op_AESENCLAST, @function
-  32              	op_AESENCLAST:
-  33              	.LFB581:
- 813:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 814:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 815:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* v2di __builtin_ia32_aesenclast128 (v2di, v2di) */
- 816:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 817:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_AESENCLAST (register v128_u8_t state,
-
GAS LISTING /tmp/ccPaCTqg.s 			page 16
-
-
- 818:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                         register const v128_u8_t round_key)
- 819:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
-  34              		.loc 1 819 0
-  35              		.cfi_startproc
-  36 000b 55       		pushq	%rbp
-  37              	.LCFI2:
-  38              		.cfi_def_cfa_offset 16
-  39 000c 4889E5   		movq	%rsp, %rbp
-  40              		.cfi_offset 6, -16
-  41              	.LCFI3:
-  42              		.cfi_def_cfa_register 6
- 820:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aesenclast128 ((v128_lli_t)state,
-  43              		.loc 1 820 0
-  44 000f 660F38DD 		aesenclast	%xmm1, %xmm0
-  44      C1
- 821:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                                                    (v128_lli_t)round_key);
- 822:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
-  45              		.loc 1 822 0
-  46 0014 C9       		leave
-  47 0015 C3       		ret
-  48              		.cfi_endproc
-  49              	.LFE581:
-  50              		.size	op_AESENCLAST, .-op_AESENCLAST
-  51              		.type	op_AESDEC, @function
-  52              	op_AESDEC:
-  53              	.LFB582:
- 823:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 824:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 825:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* v2di __builtin_ia32_aesdec128 (v2di, v2di) */
- 826:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 827:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_AESDEC (register v128_u8_t state, register const v128_u8_t round_key)
- 828:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
-  54              		.loc 1 828 0
-  55              		.cfi_startproc
-  56 0016 55       		pushq	%rbp
-  57              	.LCFI4:
-  58              		.cfi_def_cfa_offset 16
-  59 0017 4889E5   		movq	%rsp, %rbp
-  60              		.cfi_offset 6, -16
-  61              	.LCFI5:
-  62              		.cfi_def_cfa_register 6
- 829:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aesdec128 ((v128_lli_t)state,
-  63              		.loc 1 829 0
-  64 001a 660F38DE 		aesdec	%xmm1, %xmm0
-  64      C1
- 830:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                                                (v128_lli_t)round_key);
- 831:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
-  65              		.loc 1 831 0
-  66 001f C9       		leave
-  67 0020 C3       		ret
-  68              		.cfi_endproc
-  69              	.LFE582:
-  70              		.size	op_AESDEC, .-op_AESDEC
-  71              		.type	op_AESDECLAST, @function
-  72              	op_AESDECLAST:
-  73              	.LFB583:
- 832:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 17
-
-
- 833:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 834:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* v2di __builtin_ia32_aesdeclast128 (v2di, v2di) */
- 835:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 836:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_AESDECLAST (register v128_u8_t state,
- 837:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                         register const v128_u8_t round_key)
- 838:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
-  74              		.loc 1 838 0
-  75              		.cfi_startproc
-  76 0021 55       		pushq	%rbp
-  77              	.LCFI6:
-  78              		.cfi_def_cfa_offset 16
-  79 0022 4889E5   		movq	%rsp, %rbp
-  80              		.cfi_offset 6, -16
-  81              	.LCFI7:
-  82              		.cfi_def_cfa_register 6
- 839:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aesdeclast128 ((v128_lli_t)state,
-  83              		.loc 1 839 0
-  84 0025 660F38DF 		aesdeclast	%xmm1, %xmm0
-  84      C1
- 840:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                                                    (v128_lli_t)round_key);
- 841:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
-  85              		.loc 1 841 0
-  86 002a C9       		leave
-  87 002b C3       		ret
-  88              		.cfi_endproc
-  89              	.LFE583:
-  90              		.size	op_AESDECLAST, .-op_AESDECLAST
-  91              		.type	op_AESIMC, @function
-  92              	op_AESIMC:
-  93              	.LFB585:
- 842:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 843:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 844:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* v2di __builtin_ia32_aeskeygenassist128 (v2di, const int) */
- 845:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 846:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_AESKEYGENASSIST (register const v128_u8_t round_key,
- 847:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                              const int rcon ) __attribute__ ((always_inline));
- 848:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 849:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_AESKEYGENASSIST (register const v128_u8_t round_key,
- 850:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                              const int rcon )
- 851:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 853:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****                                                          rcon);
- 854:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 855:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 856:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 857:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* v2di __builtin_ia32_aesimc128 (v2di) */
- 858:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 859:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_AESIMC (register const v128_u8_t round_key)
- 860:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
-  94              		.loc 1 860 0
-  95              		.cfi_startproc
-  96 002c 55       		pushq	%rbp
-  97              	.LCFI8:
-  98              		.cfi_def_cfa_offset 16
-  99 002d 4889E5   		movq	%rsp, %rbp
- 100              		.cfi_offset 6, -16
- 101              	.LCFI9:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 18
-
-
- 102              		.cfi_def_cfa_register 6
- 861:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aesimc128 ((v128_lli_t)round_key);
- 103              		.loc 1 861 0
- 104 0030 660F38DB 		aesimc	%xmm0, %xmm0
- 104      C0
- 862:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 105              		.loc 1 862 0
- 106 0035 C9       		leave
- 107 0036 C3       		ret
- 108              		.cfi_endproc
- 109              	.LFE585:
- 110              		.size	op_AESIMC, .-op_AESIMC
- 111              		.type	bswap_32, @function
- 112              	bswap_32:
- 113              	.LFB602:
- 114              		.file 2 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  25:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** */
-  26:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifndef _h_byteswap_
-  28:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #define _h_byteswap_
-  29:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifdef _BYTESWAP_H
-  31:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #warning "GNU byteswap.h being used"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #else
-  33:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #define _BYTESWAP_H	1234
-  34:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #include <stdint.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  37:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifdef __cplusplus
-  38:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** extern "C" {
-  39:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #endif
-  40:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  41:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /* perform single instruction byte swap */
-
GAS LISTING /tmp/ccPaCTqg.s 			page 19
-
-
-  42:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** static __inline__ uint16_t bswap_16 ( uint16_t i )
-  43:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** {
-  44:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     register uint16_t rtn;
-  45:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     __asm__
-  46:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     (
-  47:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         "rorw $8, %w0"
-  48:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "=r" ( rtn )
-  49:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "0" ( i )
-  50:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "cc"
-  51:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     );
-  52:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     return rtn;
-  53:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** }
-  54:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  55:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /* perform single instruction byte swap */
-  56:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** static __inline__ uint32_t bswap_32 ( uint32_t i )
-  57:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** {
- 115              		.loc 2 57 0
- 116              		.cfi_startproc
- 117 0037 55       		pushq	%rbp
- 118              	.LCFI10:
- 119              		.cfi_def_cfa_offset 16
- 120 0038 4889E5   		movq	%rsp, %rbp
- 121              		.cfi_offset 6, -16
- 122              	.LCFI11:
- 123              		.cfi_def_cfa_register 6
- 124 003b 53       		pushq	%rbx
- 125 003c 897DF4   		movl	%edi, -12(%rbp)
-  58:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     register uint32_t rtn;
-  59:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     __asm__
- 126              		.loc 2 59 0
- 127 003f 8B45F4   		movl	-12(%rbp), %eax
- 128 0042 89C3     		movl	%eax, %ebx
- 129              		.cfi_offset 3, -24
- 130              	#APP
- 131              	# 59 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h" 1
-  60              	    (
-  61:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         "bswap %0"
-  62:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "=r" ( rtn )
-  63:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "0" ( i )
-  64:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "cc"
-  65:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     );
-  66:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     return rtn;
- 132              		bswap %ebx
- 133              	# 0 "" 2
- 134              		.loc 2 66 0
- 135              	#NO_APP
- 136 0046 89D8     		movl	%ebx, %eax
-  67:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** }
- 137              		.loc 2 67 0
- 138 0048 5B       		popq	%rbx
- 139 0049 C9       		leave
- 140 004a C3       		ret
- 141              		.cfi_endproc
- 142              	.LFE602:
- 143              		.size	bswap_32, .-bswap_32
- 144              		.section	.rodata
- 145              		.align 16
-
GAS LISTING /tmp/ccPaCTqg.s 			page 20
-
-
- 146              		.type	vec_00, @object
- 147              		.size	vec_00, 16
- 148              	vec_00:
- 149 0000 00000000 		.zero	16
- 149      00000000 
- 149      00000000 
- 149      00000000 
- 150              		.align 16
- 151              		.type	vec_01, @object
- 152              		.size	vec_01, 16
- 153              	vec_01:
- 154 0010 01       		.byte	1
- 155 0011 01       		.byte	1
- 156 0012 01       		.byte	1
- 157 0013 01       		.byte	1
- 158 0014 01       		.byte	1
- 159 0015 01       		.byte	1
- 160 0016 01       		.byte	1
- 161 0017 01       		.byte	1
- 162 0018 01       		.byte	1
- 163 0019 01       		.byte	1
- 164 001a 01       		.byte	1
- 165 001b 01       		.byte	1
- 166 001c 01       		.byte	1
- 167 001d 01       		.byte	1
- 168 001e 01       		.byte	1
- 169 001f 01       		.byte	1
- 170              		.align 16
- 171              		.type	vec_0F, @object
- 172              		.size	vec_0F, 16
- 173              	vec_0F:
- 174 0020 0F       		.byte	15
- 175 0021 0F       		.byte	15
- 176 0022 0F       		.byte	15
- 177 0023 0F       		.byte	15
- 178 0024 0F       		.byte	15
- 179 0025 0F       		.byte	15
- 180 0026 0F       		.byte	15
- 181 0027 0F       		.byte	15
- 182 0028 0F       		.byte	15
- 183 0029 0F       		.byte	15
- 184 002a 0F       		.byte	15
- 185 002b 0F       		.byte	15
- 186 002c 0F       		.byte	15
- 187 002d 0F       		.byte	15
- 188 002e 0F       		.byte	15
- 189 002f 0F       		.byte	15
- 190              		.align 16
- 191              		.type	vec_10, @object
- 192              		.size	vec_10, 16
- 193              	vec_10:
- 194 0030 10       		.byte	16
- 195 0031 10       		.byte	16
- 196 0032 10       		.byte	16
- 197 0033 10       		.byte	16
- 198 0034 10       		.byte	16
- 199 0035 10       		.byte	16
-
GAS LISTING /tmp/ccPaCTqg.s 			page 21
-
-
- 200 0036 10       		.byte	16
- 201 0037 10       		.byte	16
- 202 0038 10       		.byte	16
- 203 0039 10       		.byte	16
- 204 003a 10       		.byte	16
- 205 003b 10       		.byte	16
- 206 003c 10       		.byte	16
- 207 003d 10       		.byte	16
- 208 003e 10       		.byte	16
- 209 003f 10       		.byte	16
- 210              		.align 32
- 211              		.type	KAESBlockCipherVecAesNiRijndaelSBox, @object
- 212              		.size	KAESBlockCipherVecAesNiRijndaelSBox, 256
- 213              	KAESBlockCipherVecAesNiRijndaelSBox:
- 214 0040 63       		.byte	99
- 215 0041 7C       		.byte	124
- 216 0042 77       		.byte	119
- 217 0043 7B       		.byte	123
- 218 0044 F2       		.byte	-14
- 219 0045 6B       		.byte	107
- 220 0046 6F       		.byte	111
- 221 0047 C5       		.byte	-59
- 222 0048 30       		.byte	48
- 223 0049 01       		.byte	1
- 224 004a 67       		.byte	103
- 225 004b 2B       		.byte	43
- 226 004c FE       		.byte	-2
- 227 004d D7       		.byte	-41
- 228 004e AB       		.byte	-85
- 229 004f 76       		.byte	118
- 230 0050 CA       		.byte	-54
- 231 0051 82       		.byte	-126
- 232 0052 C9       		.byte	-55
- 233 0053 7D       		.byte	125
- 234 0054 FA       		.byte	-6
- 235 0055 59       		.byte	89
- 236 0056 47       		.byte	71
- 237 0057 F0       		.byte	-16
- 238 0058 AD       		.byte	-83
- 239 0059 D4       		.byte	-44
- 240 005a A2       		.byte	-94
- 241 005b AF       		.byte	-81
- 242 005c 9C       		.byte	-100
- 243 005d A4       		.byte	-92
- 244 005e 72       		.byte	114
- 245 005f C0       		.byte	-64
- 246 0060 B7       		.byte	-73
- 247 0061 FD       		.byte	-3
- 248 0062 93       		.byte	-109
- 249 0063 26       		.byte	38
- 250 0064 36       		.byte	54
- 251 0065 3F       		.byte	63
- 252 0066 F7       		.byte	-9
- 253 0067 CC       		.byte	-52
- 254 0068 34       		.byte	52
- 255 0069 A5       		.byte	-91
- 256 006a E5       		.byte	-27
-
GAS LISTING /tmp/ccPaCTqg.s 			page 22
-
-
- 257 006b F1       		.byte	-15
- 258 006c 71       		.byte	113
- 259 006d D8       		.byte	-40
- 260 006e 31       		.byte	49
- 261 006f 15       		.byte	21
- 262 0070 04       		.byte	4
- 263 0071 C7       		.byte	-57
- 264 0072 23       		.byte	35
- 265 0073 C3       		.byte	-61
- 266 0074 18       		.byte	24
- 267 0075 96       		.byte	-106
- 268 0076 05       		.byte	5
- 269 0077 9A       		.byte	-102
- 270 0078 07       		.byte	7
- 271 0079 12       		.byte	18
- 272 007a 80       		.byte	-128
- 273 007b E2       		.byte	-30
- 274 007c EB       		.byte	-21
- 275 007d 27       		.byte	39
- 276 007e B2       		.byte	-78
- 277 007f 75       		.byte	117
- 278 0080 09       		.byte	9
- 279 0081 83       		.byte	-125
- 280 0082 2C       		.byte	44
- 281 0083 1A       		.byte	26
- 282 0084 1B       		.byte	27
- 283 0085 6E       		.byte	110
- 284 0086 5A       		.byte	90
- 285 0087 A0       		.byte	-96
- 286 0088 52       		.byte	82
- 287 0089 3B       		.byte	59
- 288 008a D6       		.byte	-42
- 289 008b B3       		.byte	-77
- 290 008c 29       		.byte	41
- 291 008d E3       		.byte	-29
- 292 008e 2F       		.byte	47
- 293 008f 84       		.byte	-124
- 294 0090 53       		.byte	83
- 295 0091 D1       		.byte	-47
- 296 0092 00       		.byte	0
- 297 0093 ED       		.byte	-19
- 298 0094 20       		.byte	32
- 299 0095 FC       		.byte	-4
- 300 0096 B1       		.byte	-79
- 301 0097 5B       		.byte	91
- 302 0098 6A       		.byte	106
- 303 0099 CB       		.byte	-53
- 304 009a BE       		.byte	-66
- 305 009b 39       		.byte	57
- 306 009c 4A       		.byte	74
- 307 009d 4C       		.byte	76
- 308 009e 58       		.byte	88
- 309 009f CF       		.byte	-49
- 310 00a0 D0       		.byte	-48
- 311 00a1 EF       		.byte	-17
- 312 00a2 AA       		.byte	-86
- 313 00a3 FB       		.byte	-5
-
GAS LISTING /tmp/ccPaCTqg.s 			page 23
-
-
- 314 00a4 43       		.byte	67
- 315 00a5 4D       		.byte	77
- 316 00a6 33       		.byte	51
- 317 00a7 85       		.byte	-123
- 318 00a8 45       		.byte	69
- 319 00a9 F9       		.byte	-7
- 320 00aa 02       		.byte	2
- 321 00ab 7F       		.byte	127
- 322 00ac 50       		.byte	80
- 323 00ad 3C       		.byte	60
- 324 00ae 9F       		.byte	-97
- 325 00af A8       		.byte	-88
- 326 00b0 51       		.byte	81
- 327 00b1 A3       		.byte	-93
- 328 00b2 40       		.byte	64
- 329 00b3 8F       		.byte	-113
- 330 00b4 92       		.byte	-110
- 331 00b5 9D       		.byte	-99
- 332 00b6 38       		.byte	56
- 333 00b7 F5       		.byte	-11
- 334 00b8 BC       		.byte	-68
- 335 00b9 B6       		.byte	-74
- 336 00ba DA       		.byte	-38
- 337 00bb 21       		.byte	33
- 338 00bc 10       		.byte	16
- 339 00bd FF       		.byte	-1
- 340 00be F3       		.byte	-13
- 341 00bf D2       		.byte	-46
- 342 00c0 CD       		.byte	-51
- 343 00c1 0C       		.byte	12
- 344 00c2 13       		.byte	19
- 345 00c3 EC       		.byte	-20
- 346 00c4 5F       		.byte	95
- 347 00c5 97       		.byte	-105
- 348 00c6 44       		.byte	68
- 349 00c7 17       		.byte	23
- 350 00c8 C4       		.byte	-60
- 351 00c9 A7       		.byte	-89
- 352 00ca 7E       		.byte	126
- 353 00cb 3D       		.byte	61
- 354 00cc 64       		.byte	100
- 355 00cd 5D       		.byte	93
- 356 00ce 19       		.byte	25
- 357 00cf 73       		.byte	115
- 358 00d0 60       		.byte	96
- 359 00d1 81       		.byte	-127
- 360 00d2 4F       		.byte	79
- 361 00d3 DC       		.byte	-36
- 362 00d4 22       		.byte	34
- 363 00d5 2A       		.byte	42
- 364 00d6 90       		.byte	-112
- 365 00d7 88       		.byte	-120
- 366 00d8 46       		.byte	70
- 367 00d9 EE       		.byte	-18
- 368 00da B8       		.byte	-72
- 369 00db 14       		.byte	20
- 370 00dc DE       		.byte	-34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 24
-
-
- 371 00dd 5E       		.byte	94
- 372 00de 0B       		.byte	11
- 373 00df DB       		.byte	-37
- 374 00e0 E0       		.byte	-32
- 375 00e1 32       		.byte	50
- 376 00e2 3A       		.byte	58
- 377 00e3 0A       		.byte	10
- 378 00e4 49       		.byte	73
- 379 00e5 06       		.byte	6
- 380 00e6 24       		.byte	36
- 381 00e7 5C       		.byte	92
- 382 00e8 C2       		.byte	-62
- 383 00e9 D3       		.byte	-45
- 384 00ea AC       		.byte	-84
- 385 00eb 62       		.byte	98
- 386 00ec 91       		.byte	-111
- 387 00ed 95       		.byte	-107
- 388 00ee E4       		.byte	-28
- 389 00ef 79       		.byte	121
- 390 00f0 E7       		.byte	-25
- 391 00f1 C8       		.byte	-56
- 392 00f2 37       		.byte	55
- 393 00f3 6D       		.byte	109
- 394 00f4 8D       		.byte	-115
- 395 00f5 D5       		.byte	-43
- 396 00f6 4E       		.byte	78
- 397 00f7 A9       		.byte	-87
- 398 00f8 6C       		.byte	108
- 399 00f9 56       		.byte	86
- 400 00fa F4       		.byte	-12
- 401 00fb EA       		.byte	-22
- 402 00fc 65       		.byte	101
- 403 00fd 7A       		.byte	122
- 404 00fe AE       		.byte	-82
- 405 00ff 08       		.byte	8
- 406 0100 BA       		.byte	-70
- 407 0101 78       		.byte	120
- 408 0102 25       		.byte	37
- 409 0103 2E       		.byte	46
- 410 0104 1C       		.byte	28
- 411 0105 A6       		.byte	-90
- 412 0106 B4       		.byte	-76
- 413 0107 C6       		.byte	-58
- 414 0108 E8       		.byte	-24
- 415 0109 DD       		.byte	-35
- 416 010a 74       		.byte	116
- 417 010b 1F       		.byte	31
- 418 010c 4B       		.byte	75
- 419 010d BD       		.byte	-67
- 420 010e 8B       		.byte	-117
- 421 010f 8A       		.byte	-118
- 422 0110 70       		.byte	112
- 423 0111 3E       		.byte	62
- 424 0112 B5       		.byte	-75
- 425 0113 66       		.byte	102
- 426 0114 48       		.byte	72
- 427 0115 03       		.byte	3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 25
-
-
- 428 0116 F6       		.byte	-10
- 429 0117 0E       		.byte	14
- 430 0118 61       		.byte	97
- 431 0119 35       		.byte	53
- 432 011a 57       		.byte	87
- 433 011b B9       		.byte	-71
- 434 011c 86       		.byte	-122
- 435 011d C1       		.byte	-63
- 436 011e 1D       		.byte	29
- 437 011f 9E       		.byte	-98
- 438 0120 E1       		.byte	-31
- 439 0121 F8       		.byte	-8
- 440 0122 98       		.byte	-104
- 441 0123 11       		.byte	17
- 442 0124 69       		.byte	105
- 443 0125 D9       		.byte	-39
- 444 0126 8E       		.byte	-114
- 445 0127 94       		.byte	-108
- 446 0128 9B       		.byte	-101
- 447 0129 1E       		.byte	30
- 448 012a 87       		.byte	-121
- 449 012b E9       		.byte	-23
- 450 012c CE       		.byte	-50
- 451 012d 55       		.byte	85
- 452 012e 28       		.byte	40
- 453 012f DF       		.byte	-33
- 454 0130 8C       		.byte	-116
- 455 0131 A1       		.byte	-95
- 456 0132 89       		.byte	-119
- 457 0133 0D       		.byte	13
- 458 0134 BF       		.byte	-65
- 459 0135 E6       		.byte	-26
- 460 0136 42       		.byte	66
- 461 0137 68       		.byte	104
- 462 0138 41       		.byte	65
- 463 0139 99       		.byte	-103
- 464 013a 2D       		.byte	45
- 465 013b 0F       		.byte	15
- 466 013c B0       		.byte	-80
- 467 013d 54       		.byte	84
- 468 013e BB       		.byte	-69
- 469 013f 16       		.byte	22
- 470              		.align 32
- 471              		.type	KAESBlockCipherVecAesNiRijndaelSBoxV, @object
- 472              		.size	KAESBlockCipherVecAesNiRijndaelSBoxV, 256
- 473              	KAESBlockCipherVecAesNiRijndaelSBoxV:
- 474 0140 63       		.byte	99
- 475 0141 7C       		.byte	124
- 476 0142 77       		.byte	119
- 477 0143 7B       		.byte	123
- 478 0144 F2       		.byte	-14
- 479 0145 6B       		.byte	107
- 480 0146 6F       		.byte	111
- 481 0147 C5       		.byte	-59
- 482 0148 30       		.byte	48
- 483 0149 01       		.byte	1
- 484 014a 67       		.byte	103
-
GAS LISTING /tmp/ccPaCTqg.s 			page 26
-
-
- 485 014b 2B       		.byte	43
- 486 014c FE       		.byte	-2
- 487 014d D7       		.byte	-41
- 488 014e AB       		.byte	-85
- 489 014f 76       		.byte	118
- 490 0150 CA       		.byte	-54
- 491 0151 82       		.byte	-126
- 492 0152 C9       		.byte	-55
- 493 0153 7D       		.byte	125
- 494 0154 FA       		.byte	-6
- 495 0155 59       		.byte	89
- 496 0156 47       		.byte	71
- 497 0157 F0       		.byte	-16
- 498 0158 AD       		.byte	-83
- 499 0159 D4       		.byte	-44
- 500 015a A2       		.byte	-94
- 501 015b AF       		.byte	-81
- 502 015c 9C       		.byte	-100
- 503 015d A4       		.byte	-92
- 504 015e 72       		.byte	114
- 505 015f C0       		.byte	-64
- 506 0160 B7       		.byte	-73
- 507 0161 FD       		.byte	-3
- 508 0162 93       		.byte	-109
- 509 0163 26       		.byte	38
- 510 0164 36       		.byte	54
- 511 0165 3F       		.byte	63
- 512 0166 F7       		.byte	-9
- 513 0167 CC       		.byte	-52
- 514 0168 34       		.byte	52
- 515 0169 A5       		.byte	-91
- 516 016a E5       		.byte	-27
- 517 016b F1       		.byte	-15
- 518 016c 71       		.byte	113
- 519 016d D8       		.byte	-40
- 520 016e 31       		.byte	49
- 521 016f 15       		.byte	21
- 522 0170 04       		.byte	4
- 523 0171 C7       		.byte	-57
- 524 0172 23       		.byte	35
- 525 0173 C3       		.byte	-61
- 526 0174 18       		.byte	24
- 527 0175 96       		.byte	-106
- 528 0176 05       		.byte	5
- 529 0177 9A       		.byte	-102
- 530 0178 07       		.byte	7
- 531 0179 12       		.byte	18
- 532 017a 80       		.byte	-128
- 533 017b E2       		.byte	-30
- 534 017c EB       		.byte	-21
- 535 017d 27       		.byte	39
- 536 017e B2       		.byte	-78
- 537 017f 75       		.byte	117
- 538 0180 09       		.byte	9
- 539 0181 83       		.byte	-125
- 540 0182 2C       		.byte	44
- 541 0183 1A       		.byte	26
-
GAS LISTING /tmp/ccPaCTqg.s 			page 27
-
-
- 542 0184 1B       		.byte	27
- 543 0185 6E       		.byte	110
- 544 0186 5A       		.byte	90
- 545 0187 A0       		.byte	-96
- 546 0188 52       		.byte	82
- 547 0189 3B       		.byte	59
- 548 018a D6       		.byte	-42
- 549 018b B3       		.byte	-77
- 550 018c 29       		.byte	41
- 551 018d E3       		.byte	-29
- 552 018e 2F       		.byte	47
- 553 018f 84       		.byte	-124
- 554 0190 53       		.byte	83
- 555 0191 D1       		.byte	-47
- 556 0192 00       		.byte	0
- 557 0193 ED       		.byte	-19
- 558 0194 20       		.byte	32
- 559 0195 FC       		.byte	-4
- 560 0196 B1       		.byte	-79
- 561 0197 5B       		.byte	91
- 562 0198 6A       		.byte	106
- 563 0199 CB       		.byte	-53
- 564 019a BE       		.byte	-66
- 565 019b 39       		.byte	57
- 566 019c 4A       		.byte	74
- 567 019d 4C       		.byte	76
- 568 019e 58       		.byte	88
- 569 019f CF       		.byte	-49
- 570 01a0 D0       		.byte	-48
- 571 01a1 EF       		.byte	-17
- 572 01a2 AA       		.byte	-86
- 573 01a3 FB       		.byte	-5
- 574 01a4 43       		.byte	67
- 575 01a5 4D       		.byte	77
- 576 01a6 33       		.byte	51
- 577 01a7 85       		.byte	-123
- 578 01a8 45       		.byte	69
- 579 01a9 F9       		.byte	-7
- 580 01aa 02       		.byte	2
- 581 01ab 7F       		.byte	127
- 582 01ac 50       		.byte	80
- 583 01ad 3C       		.byte	60
- 584 01ae 9F       		.byte	-97
- 585 01af A8       		.byte	-88
- 586 01b0 51       		.byte	81
- 587 01b1 A3       		.byte	-93
- 588 01b2 40       		.byte	64
- 589 01b3 8F       		.byte	-113
- 590 01b4 92       		.byte	-110
- 591 01b5 9D       		.byte	-99
- 592 01b6 38       		.byte	56
- 593 01b7 F5       		.byte	-11
- 594 01b8 BC       		.byte	-68
- 595 01b9 B6       		.byte	-74
- 596 01ba DA       		.byte	-38
- 597 01bb 21       		.byte	33
- 598 01bc 10       		.byte	16
-
GAS LISTING /tmp/ccPaCTqg.s 			page 28
-
-
- 599 01bd FF       		.byte	-1
- 600 01be F3       		.byte	-13
- 601 01bf D2       		.byte	-46
- 602 01c0 CD       		.byte	-51
- 603 01c1 0C       		.byte	12
- 604 01c2 13       		.byte	19
- 605 01c3 EC       		.byte	-20
- 606 01c4 5F       		.byte	95
- 607 01c5 97       		.byte	-105
- 608 01c6 44       		.byte	68
- 609 01c7 17       		.byte	23
- 610 01c8 C4       		.byte	-60
- 611 01c9 A7       		.byte	-89
- 612 01ca 7E       		.byte	126
- 613 01cb 3D       		.byte	61
- 614 01cc 64       		.byte	100
- 615 01cd 5D       		.byte	93
- 616 01ce 19       		.byte	25
- 617 01cf 73       		.byte	115
- 618 01d0 60       		.byte	96
- 619 01d1 81       		.byte	-127
- 620 01d2 4F       		.byte	79
- 621 01d3 DC       		.byte	-36
- 622 01d4 22       		.byte	34
- 623 01d5 2A       		.byte	42
- 624 01d6 90       		.byte	-112
- 625 01d7 88       		.byte	-120
- 626 01d8 46       		.byte	70
- 627 01d9 EE       		.byte	-18
- 628 01da B8       		.byte	-72
- 629 01db 14       		.byte	20
- 630 01dc DE       		.byte	-34
- 631 01dd 5E       		.byte	94
- 632 01de 0B       		.byte	11
- 633 01df DB       		.byte	-37
- 634 01e0 E0       		.byte	-32
- 635 01e1 32       		.byte	50
- 636 01e2 3A       		.byte	58
- 637 01e3 0A       		.byte	10
- 638 01e4 49       		.byte	73
- 639 01e5 06       		.byte	6
- 640 01e6 24       		.byte	36
- 641 01e7 5C       		.byte	92
- 642 01e8 C2       		.byte	-62
- 643 01e9 D3       		.byte	-45
- 644 01ea AC       		.byte	-84
- 645 01eb 62       		.byte	98
- 646 01ec 91       		.byte	-111
- 647 01ed 95       		.byte	-107
- 648 01ee E4       		.byte	-28
- 649 01ef 79       		.byte	121
- 650 01f0 E7       		.byte	-25
- 651 01f1 C8       		.byte	-56
- 652 01f2 37       		.byte	55
- 653 01f3 6D       		.byte	109
- 654 01f4 8D       		.byte	-115
- 655 01f5 D5       		.byte	-43
-
GAS LISTING /tmp/ccPaCTqg.s 			page 29
-
-
- 656 01f6 4E       		.byte	78
- 657 01f7 A9       		.byte	-87
- 658 01f8 6C       		.byte	108
- 659 01f9 56       		.byte	86
- 660 01fa F4       		.byte	-12
- 661 01fb EA       		.byte	-22
- 662 01fc 65       		.byte	101
- 663 01fd 7A       		.byte	122
- 664 01fe AE       		.byte	-82
- 665 01ff 08       		.byte	8
- 666 0200 BA       		.byte	-70
- 667 0201 78       		.byte	120
- 668 0202 25       		.byte	37
- 669 0203 2E       		.byte	46
- 670 0204 1C       		.byte	28
- 671 0205 A6       		.byte	-90
- 672 0206 B4       		.byte	-76
- 673 0207 C6       		.byte	-58
- 674 0208 E8       		.byte	-24
- 675 0209 DD       		.byte	-35
- 676 020a 74       		.byte	116
- 677 020b 1F       		.byte	31
- 678 020c 4B       		.byte	75
- 679 020d BD       		.byte	-67
- 680 020e 8B       		.byte	-117
- 681 020f 8A       		.byte	-118
- 682 0210 70       		.byte	112
- 683 0211 3E       		.byte	62
- 684 0212 B5       		.byte	-75
- 685 0213 66       		.byte	102
- 686 0214 48       		.byte	72
- 687 0215 03       		.byte	3
- 688 0216 F6       		.byte	-10
- 689 0217 0E       		.byte	14
- 690 0218 61       		.byte	97
- 691 0219 35       		.byte	53
- 692 021a 57       		.byte	87
- 693 021b B9       		.byte	-71
- 694 021c 86       		.byte	-122
- 695 021d C1       		.byte	-63
- 696 021e 1D       		.byte	29
- 697 021f 9E       		.byte	-98
- 698 0220 E1       		.byte	-31
- 699 0221 F8       		.byte	-8
- 700 0222 98       		.byte	-104
- 701 0223 11       		.byte	17
- 702 0224 69       		.byte	105
- 703 0225 D9       		.byte	-39
- 704 0226 8E       		.byte	-114
- 705 0227 94       		.byte	-108
- 706 0228 9B       		.byte	-101
- 707 0229 1E       		.byte	30
- 708 022a 87       		.byte	-121
- 709 022b E9       		.byte	-23
- 710 022c CE       		.byte	-50
- 711 022d 55       		.byte	85
- 712 022e 28       		.byte	40
-
GAS LISTING /tmp/ccPaCTqg.s 			page 30
-
-
- 713 022f DF       		.byte	-33
- 714 0230 8C       		.byte	-116
- 715 0231 A1       		.byte	-95
- 716 0232 89       		.byte	-119
- 717 0233 0D       		.byte	13
- 718 0234 BF       		.byte	-65
- 719 0235 E6       		.byte	-26
- 720 0236 42       		.byte	66
- 721 0237 68       		.byte	104
- 722 0238 41       		.byte	65
- 723 0239 99       		.byte	-103
- 724 023a 2D       		.byte	45
- 725 023b 0F       		.byte	15
- 726 023c B0       		.byte	-80
- 727 023d 54       		.byte	84
- 728 023e BB       		.byte	-69
- 729 023f 16       		.byte	22
- 730              		.align 32
- 731              		.type	KAESBlockCipherVecAesNiRijndaelInvSBoxV, @object
- 732              		.size	KAESBlockCipherVecAesNiRijndaelInvSBoxV, 256
- 733              	KAESBlockCipherVecAesNiRijndaelInvSBoxV:
- 734 0240 52       		.byte	82
- 735 0241 09       		.byte	9
- 736 0242 6A       		.byte	106
- 737 0243 D5       		.byte	-43
- 738 0244 30       		.byte	48
- 739 0245 36       		.byte	54
- 740 0246 A5       		.byte	-91
- 741 0247 38       		.byte	56
- 742 0248 BF       		.byte	-65
- 743 0249 40       		.byte	64
- 744 024a A3       		.byte	-93
- 745 024b 9E       		.byte	-98
- 746 024c 81       		.byte	-127
- 747 024d F3       		.byte	-13
- 748 024e D7       		.byte	-41
- 749 024f FB       		.byte	-5
- 750 0250 7C       		.byte	124
- 751 0251 E3       		.byte	-29
- 752 0252 39       		.byte	57
- 753 0253 82       		.byte	-126
- 754 0254 9B       		.byte	-101
- 755 0255 2F       		.byte	47
- 756 0256 FF       		.byte	-1
- 757 0257 87       		.byte	-121
- 758 0258 34       		.byte	52
- 759 0259 8E       		.byte	-114
- 760 025a 43       		.byte	67
- 761 025b 44       		.byte	68
- 762 025c C4       		.byte	-60
- 763 025d DE       		.byte	-34
- 764 025e E9       		.byte	-23
- 765 025f CB       		.byte	-53
- 766 0260 54       		.byte	84
- 767 0261 7B       		.byte	123
- 768 0262 94       		.byte	-108
- 769 0263 32       		.byte	50
-
GAS LISTING /tmp/ccPaCTqg.s 			page 31
-
-
- 770 0264 A6       		.byte	-90
- 771 0265 C2       		.byte	-62
- 772 0266 23       		.byte	35
- 773 0267 3D       		.byte	61
- 774 0268 EE       		.byte	-18
- 775 0269 4C       		.byte	76
- 776 026a 95       		.byte	-107
- 777 026b 0B       		.byte	11
- 778 026c 42       		.byte	66
- 779 026d FA       		.byte	-6
- 780 026e C3       		.byte	-61
- 781 026f 4E       		.byte	78
- 782 0270 08       		.byte	8
- 783 0271 2E       		.byte	46
- 784 0272 A1       		.byte	-95
- 785 0273 66       		.byte	102
- 786 0274 28       		.byte	40
- 787 0275 D9       		.byte	-39
- 788 0276 24       		.byte	36
- 789 0277 B2       		.byte	-78
- 790 0278 76       		.byte	118
- 791 0279 5B       		.byte	91
- 792 027a A2       		.byte	-94
- 793 027b 49       		.byte	73
- 794 027c 6D       		.byte	109
- 795 027d 8B       		.byte	-117
- 796 027e D1       		.byte	-47
- 797 027f 25       		.byte	37
- 798 0280 72       		.byte	114
- 799 0281 F8       		.byte	-8
- 800 0282 F6       		.byte	-10
- 801 0283 64       		.byte	100
- 802 0284 86       		.byte	-122
- 803 0285 68       		.byte	104
- 804 0286 98       		.byte	-104
- 805 0287 16       		.byte	22
- 806 0288 D4       		.byte	-44
- 807 0289 A4       		.byte	-92
- 808 028a 5C       		.byte	92
- 809 028b CC       		.byte	-52
- 810 028c 5D       		.byte	93
- 811 028d 65       		.byte	101
- 812 028e B6       		.byte	-74
- 813 028f 92       		.byte	-110
- 814 0290 6C       		.byte	108
- 815 0291 70       		.byte	112
- 816 0292 48       		.byte	72
- 817 0293 50       		.byte	80
- 818 0294 FD       		.byte	-3
- 819 0295 ED       		.byte	-19
- 820 0296 B9       		.byte	-71
- 821 0297 DA       		.byte	-38
- 822 0298 5E       		.byte	94
- 823 0299 15       		.byte	21
- 824 029a 46       		.byte	70
- 825 029b 57       		.byte	87
- 826 029c A7       		.byte	-89
-
GAS LISTING /tmp/ccPaCTqg.s 			page 32
-
-
- 827 029d 8D       		.byte	-115
- 828 029e 9D       		.byte	-99
- 829 029f 84       		.byte	-124
- 830 02a0 90       		.byte	-112
- 831 02a1 D8       		.byte	-40
- 832 02a2 AB       		.byte	-85
- 833 02a3 00       		.byte	0
- 834 02a4 8C       		.byte	-116
- 835 02a5 BC       		.byte	-68
- 836 02a6 D3       		.byte	-45
- 837 02a7 0A       		.byte	10
- 838 02a8 F7       		.byte	-9
- 839 02a9 E4       		.byte	-28
- 840 02aa 58       		.byte	88
- 841 02ab 05       		.byte	5
- 842 02ac B8       		.byte	-72
- 843 02ad B3       		.byte	-77
- 844 02ae 45       		.byte	69
- 845 02af 06       		.byte	6
- 846 02b0 D0       		.byte	-48
- 847 02b1 2C       		.byte	44
- 848 02b2 1E       		.byte	30
- 849 02b3 8F       		.byte	-113
- 850 02b4 CA       		.byte	-54
- 851 02b5 3F       		.byte	63
- 852 02b6 0F       		.byte	15
- 853 02b7 02       		.byte	2
- 854 02b8 C1       		.byte	-63
- 855 02b9 AF       		.byte	-81
- 856 02ba BD       		.byte	-67
- 857 02bb 03       		.byte	3
- 858 02bc 01       		.byte	1
- 859 02bd 13       		.byte	19
- 860 02be 8A       		.byte	-118
- 861 02bf 6B       		.byte	107
- 862 02c0 3A       		.byte	58
- 863 02c1 91       		.byte	-111
- 864 02c2 11       		.byte	17
- 865 02c3 41       		.byte	65
- 866 02c4 4F       		.byte	79
- 867 02c5 67       		.byte	103
- 868 02c6 DC       		.byte	-36
- 869 02c7 EA       		.byte	-22
- 870 02c8 97       		.byte	-105
- 871 02c9 F2       		.byte	-14
- 872 02ca CF       		.byte	-49
- 873 02cb CE       		.byte	-50
- 874 02cc F0       		.byte	-16
- 875 02cd B4       		.byte	-76
- 876 02ce E6       		.byte	-26
- 877 02cf 73       		.byte	115
- 878 02d0 96       		.byte	-106
- 879 02d1 AC       		.byte	-84
- 880 02d2 74       		.byte	116
- 881 02d3 22       		.byte	34
- 882 02d4 E7       		.byte	-25
- 883 02d5 AD       		.byte	-83
-
GAS LISTING /tmp/ccPaCTqg.s 			page 33
-
-
- 884 02d6 35       		.byte	53
- 885 02d7 85       		.byte	-123
- 886 02d8 E2       		.byte	-30
- 887 02d9 F9       		.byte	-7
- 888 02da 37       		.byte	55
- 889 02db E8       		.byte	-24
- 890 02dc 1C       		.byte	28
- 891 02dd 75       		.byte	117
- 892 02de DF       		.byte	-33
- 893 02df 6E       		.byte	110
- 894 02e0 47       		.byte	71
- 895 02e1 F1       		.byte	-15
- 896 02e2 1A       		.byte	26
- 897 02e3 71       		.byte	113
- 898 02e4 1D       		.byte	29
- 899 02e5 29       		.byte	41
- 900 02e6 C5       		.byte	-59
- 901 02e7 89       		.byte	-119
- 902 02e8 6F       		.byte	111
- 903 02e9 B7       		.byte	-73
- 904 02ea 62       		.byte	98
- 905 02eb 0E       		.byte	14
- 906 02ec AA       		.byte	-86
- 907 02ed 18       		.byte	24
- 908 02ee BE       		.byte	-66
- 909 02ef 1B       		.byte	27
- 910 02f0 FC       		.byte	-4
- 911 02f1 56       		.byte	86
- 912 02f2 3E       		.byte	62
- 913 02f3 4B       		.byte	75
- 914 02f4 C6       		.byte	-58
- 915 02f5 D2       		.byte	-46
- 916 02f6 79       		.byte	121
- 917 02f7 20       		.byte	32
- 918 02f8 9A       		.byte	-102
- 919 02f9 DB       		.byte	-37
- 920 02fa C0       		.byte	-64
- 921 02fb FE       		.byte	-2
- 922 02fc 78       		.byte	120
- 923 02fd CD       		.byte	-51
- 924 02fe 5A       		.byte	90
- 925 02ff F4       		.byte	-12
- 926 0300 1F       		.byte	31
- 927 0301 DD       		.byte	-35
- 928 0302 A8       		.byte	-88
- 929 0303 33       		.byte	51
- 930 0304 88       		.byte	-120
- 931 0305 07       		.byte	7
- 932 0306 C7       		.byte	-57
- 933 0307 31       		.byte	49
- 934 0308 B1       		.byte	-79
- 935 0309 12       		.byte	18
- 936 030a 10       		.byte	16
- 937 030b 59       		.byte	89
- 938 030c 27       		.byte	39
- 939 030d 80       		.byte	-128
- 940 030e EC       		.byte	-20
-
GAS LISTING /tmp/ccPaCTqg.s 			page 34
-
-
- 941 030f 5F       		.byte	95
- 942 0310 60       		.byte	96
- 943 0311 51       		.byte	81
- 944 0312 7F       		.byte	127
- 945 0313 A9       		.byte	-87
- 946 0314 19       		.byte	25
- 947 0315 B5       		.byte	-75
- 948 0316 4A       		.byte	74
- 949 0317 0D       		.byte	13
- 950 0318 2D       		.byte	45
- 951 0319 E5       		.byte	-27
- 952 031a 7A       		.byte	122
- 953 031b 9F       		.byte	-97
- 954 031c 93       		.byte	-109
- 955 031d C9       		.byte	-55
- 956 031e 9C       		.byte	-100
- 957 031f EF       		.byte	-17
- 958 0320 A0       		.byte	-96
- 959 0321 E0       		.byte	-32
- 960 0322 3B       		.byte	59
- 961 0323 4D       		.byte	77
- 962 0324 AE       		.byte	-82
- 963 0325 2A       		.byte	42
- 964 0326 F5       		.byte	-11
- 965 0327 B0       		.byte	-80
- 966 0328 C8       		.byte	-56
- 967 0329 EB       		.byte	-21
- 968 032a BB       		.byte	-69
- 969 032b 3C       		.byte	60
- 970 032c 83       		.byte	-125
- 971 032d 53       		.byte	83
- 972 032e 99       		.byte	-103
- 973 032f 61       		.byte	97
- 974 0330 17       		.byte	23
- 975 0331 2B       		.byte	43
- 976 0332 04       		.byte	4
- 977 0333 7E       		.byte	126
- 978 0334 BA       		.byte	-70
- 979 0335 77       		.byte	119
- 980 0336 D6       		.byte	-42
- 981 0337 26       		.byte	38
- 982 0338 E1       		.byte	-31
- 983 0339 69       		.byte	105
- 984 033a 14       		.byte	20
- 985 033b 63       		.byte	99
- 986 033c 55       		.byte	85
- 987 033d 21       		.byte	33
- 988 033e 0C       		.byte	12
- 989 033f 7D       		.byte	125
- 990              		.align 16
- 991              		.type	lo_filter, @object
- 992              		.size	lo_filter, 16
- 993              	lo_filter:
- 994 0340 00       		.byte	0
- 995 0341 FF       		.byte	-1
- 996 0342 FF       		.byte	-1
- 997 0343 FF       		.byte	-1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 35
-
-
- 998 0344 FF       		.byte	-1
- 999 0345 FF       		.byte	-1
- 1000 0346 FF       		.byte	-1
- 1001 0347 FF       		.byte	-1
- 1002 0348 FF       		.byte	-1
- 1003 0349 FF       		.byte	-1
- 1004 034a FF       		.byte	-1
- 1005 034b FF       		.byte	-1
- 1006 034c FF       		.byte	-1
- 1007 034d FF       		.byte	-1
- 1008 034e FF       		.byte	-1
- 1009 034f FF       		.byte	-1
- 1010              		.align 16
- 1011              		.type	FF_tab, @object
- 1012              		.size	FF_tab, 16
- 1013              	FF_tab:
- 1014 0350 00       		.byte	0
- 1015 0351 1B       		.byte	27
- 1016 0352 36       		.byte	54
- 1017 0353 2D       		.byte	45
- 1018 0354 6C       		.byte	108
- 1019 0355 77       		.byte	119
- 1020 0356 5A       		.byte	90
- 1021 0357 41       		.byte	65
- 1022 0358 00       		.byte	0
- 1023 0359 00       		.byte	0
- 1024 035a 00       		.byte	0
- 1025 035b 00       		.byte	0
- 1026 035c 00       		.byte	0
- 1027 035d 00       		.byte	0
- 1028 035e 00       		.byte	0
- 1029 035f 00       		.byte	0
- 1030              		.data
- 1031              		.type	KAESBlockCipherVecAesNiFFtable, @object
- 1032              		.size	KAESBlockCipherVecAesNiFFtable, 8
- 1033              	KAESBlockCipherVecAesNiFFtable:
- 1034 0000 00       		.byte	0
- 1035 0001 1B       		.byte	27
- 1036 0002 36       		.byte	54
- 1037 0003 2D       		.byte	45
- 1038 0004 6C       		.byte	108
- 1039 0005 77       		.byte	119
- 1040 0006 5A       		.byte	90
- 1041 0007 41       		.byte	65
- 1042              		.section	.rodata
- 1043              		.align 32
- 1044              		.type	KAESBlockCipherVecAesNiRcon, @object
- 1045              		.size	KAESBlockCipherVecAesNiRcon, 40
- 1046              	KAESBlockCipherVecAesNiRcon:
- 1047 0360 01000000 		.long	1
- 1048 0364 02000000 		.long	2
- 1049 0368 04000000 		.long	4
- 1050 036c 08000000 		.long	8
- 1051 0370 10000000 		.long	16
- 1052 0374 20000000 		.long	32
- 1053 0378 40000000 		.long	64
- 1054 037c 80000000 		.long	128
-
GAS LISTING /tmp/ccPaCTqg.s 			page 36
-
-
- 1055 0380 1B000000 		.long	27
- 1056 0384 36000000 		.long	54
- 1057              		.text
- 1058              		.type	KAESBlockCipherVecAesNiKeyExpansion128, @function
- 1059              	KAESBlockCipherVecAesNiKeyExpansion128:
- 1060              	.LFB656:
- 1061              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <krypto/extern.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "ncbi-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "aes-ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "cipher-priv.h"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "blockcipher-priv.h"
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/debug.h>
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/out.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/rc.h>
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <byteswap.h>
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <string.h>
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <stdint.h>
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <stdlib.h>
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <assert.h>
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <sysalloc.h>
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <cpuid.h>
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VECREG
-
GAS LISTING /tmp/ccPaCTqg.s 			page 37
-
-
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <v128.h>
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This implements the AES cipher as defined by FIPS-197 from NIST
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Notes on implmentation:
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Byte ordering in AES is not critical but unllike the original implmentation
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * bytes are not re-ordered to a big endian order upon reading them in and this
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * code will expect to run on an Intel/AMD type processor and might have issues
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * on some big endian processors.
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Many functions are written as static inline functions to
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * facilitate GCC type assembly language optimization on various processors
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This implements the Equivalent Inverse Cipher not the Inverse Cipher.  In
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * general functions will match those defined in the FIPS-197 document where they
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * do not get optimized away for Intel/AMD XMM registers and AES-NI instructions.
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * C-99 types are used for specific sized types.  An unaddornded unsigned type
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is used for many index type variables to allow the compiler choice in
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * size where size does not matter very much.  As these index variables do
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * not go above 16 any size would do but the compiler can choose the size most
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * suited for array subscripting.
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-  81:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_00 =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_01 =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_0F =  { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F };
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_10 =  { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 };
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * These functions implment the Advanced Encryption Standard AES as defined
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * in the FIPS (Federal Information Processing Standars Publication 197
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Of Nevember 26, 2001.
- 104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 38
-
-
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Read a blocks worth of bytes into an CipherVec
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector registers it is a single instruction, without them it
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is a memmove call
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateIn) (const void * ain)
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateIn) (const void * ain)
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec vec;
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         "movdqu (%[a]),%[s]" : [s] "=x" (vec) : [a] "D" (ain)
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         );
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Write a block's worth of bytes out from an CipherVec
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector registers it is a single instruction, without them it
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is a memmove call
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec rvec = vec;
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         "movdqu %[s],(%[a])" : : [s] "x" (rvec), [a] "D" (rout)
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         );
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (rout, &vec, sizeof (vec));
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 39
-
-
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] ^= u2.columns[ix];
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] &= u2.columns[ix];
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-
GAS LISTING /tmp/ccPaCTqg.s 			page 40
-
-
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] |= u2.columns[ix];
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
- 255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
- 259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 + v2;
- 263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] += u2.columns[ix];
- 274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-
GAS LISTING /tmp/ccPaCTqg.s 			page 41
-
-
- 279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
- 283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] -= u2.columns[ix];
- 302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
- 311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
- 315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 * v2;
- 319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] *= u2.columns[ix];
- 330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 42
-
-
- 336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
- 339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
- 343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] /= u2.columns[ix];
- 358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
- 366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFB128 (dest, mask);
- 374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u out, in, gate;
- 378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 43
-
-
- 393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
- 403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec sl_mask [9] = 
- 406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
- 407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- 409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
- 410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE },
- 411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
- 412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC },
- 413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
- 414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8 },
- 415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
- 416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0 },
- 417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
- 418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0 },
- 419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
- 420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0 },
- 421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 },
- 423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- 425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         };
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (k <= 8);
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("mask", sl_mask[k]); */
- 432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 1", vv); */
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 2", vv); */
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 3", vv); */
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u vv; /* state and key not countries :) */
- 442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv.state = v;
- 445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (v); ++ix)
- 447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("SLLBI %d %x ", k, vv.bytes[ix]);
- 449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         vv.bytes[ix] <<= k;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 44
-
-
- 450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("%x\n", vv.bytes[ix]);
- 451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv.state;
- 453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
- 464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec sr_mask [9] = 
- 467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
- 471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F },
- 472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
- 473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F },
- 474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
- 475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
- 476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
- 477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F },
- 478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
- 479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 },
- 480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 },
- 482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
- 484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- 486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         };
- 487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u vv; /* state and key not countries :) */
- 495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv.state = v;
- 498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (v); ++ix)
- 500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("SRLBI %d %x ", k, vv.bytes[ix]);
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         vv.bytes[ix] >>= k;
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("%x\n", vv.bytes[ix]);
- 504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv.state;
- 506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 45
-
-
- 507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
- 513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
- 517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.4
- 532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The AddRoundKey transformation is a sinple exclusive or of all 128 bits
- 534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * in the current block against a round key.  This operation is used in all
- 535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher and EqInvCipher rounds
- 536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector types it is a single operation that with vector registers is
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * a single op-code.
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
- 542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
- 546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(VecXor) (state, round_key);
- 548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.2
- 553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS 197 describes the state in column major format
- 555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * while C and assembly programmers tend to think in row major
- 556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The byte order is 0,1,2,3,,...F as shown in the first diagram.
- 557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  ShiftRows() is defined as leaving this state
- 559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- 561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 5 | 9 | D | 1 |
- 563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
-
GAS LISTING /tmp/ccPaCTqg.s 			page 46
-
-
- 564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- 565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | F | 3 | 7 | B |
- 567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
- 571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
- 575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec ShiftRowTable
- 578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     = {  0,  5, 10, 15,  4,  9, 14,  3,  8, 13,  2,  7, 12,  1,  6, 11 };
- 580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.3.1
- 588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * InvShiftRows() is defined as leaving this state
- 590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- 592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | D | 1 | 5 | 9 |
- 594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- 596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 7 | B | F | 3 |
- 598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
- 602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
- 607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVecByte InvShiftRowTable
- 609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         = {  0, 13, 10,  7,  4,  1, 14, 11,  8,  5,  2, 15, 12,  9,  6,  3 };
- 611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 3 | 7 | B | F |
- 620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
-
GAS LISTING /tmp/ccPaCTqg.s 			page 47
-
-
- 621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 0 | 4 | 8 | C |
- 622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | 1 | 5 | 9 | D |
- 624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 2 | 6 | A | E |
- 626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
- 630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
- 634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec ShiftRowTable
- 637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     = {  3,  0,  1,  2,  7,  4,  5,  6, 11,  8,  9, 10, 15, 12, 13, 14 };
- 639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 1 | 5 | B | D |
- 648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 2 | 6 | 8 | E |
- 650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | 3 | 7 | 9 | F |
- 652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 0 | 4 | 8 | C |
- 654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
- 658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
- 662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec ShiftRowTable
- 664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         = {  1,  2,  3,  0,  5,  6,  7,  4,  9, 10, 11,  8, 13, 14, 15, 12 };
- 666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.1
- 674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-
GAS LISTING /tmp/ccPaCTqg.s 			page 48
-
-
- 678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SubBytes replaces each byte in a state with a specific byte value from
- 679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * A Rijndael Substitution box
- 680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const 
- 682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(RijndaelSBox)[256] = 
- 683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E   
- 685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 0- */ 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 
- 686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 1- */ 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 
- 687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 2- */ 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 
- 688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 3- */ 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 
- 689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 4- */ 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 
- 690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 5- */ 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 
- 691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 6- */ 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 
- 692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 7- */ 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 
- 693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 8- */ 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 
- 694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 9- */ 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 
- 695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* A- */ 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 
- 696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* B- */ 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 
- 697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* C- */ 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 
- 698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* D- */ 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 
- 699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* E- */ 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 
- 700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* F- */ 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 
- 701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if 0
- 705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (u.bytes); ++ix)
- 718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u.bytes[ix] = AESBCMEMBER(RijndaelSBox)[u.bytes[ix]];
- 720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SubWord performs the same operation as SubBytes but on
- 728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the four bytes of a column and not a whole state
- 729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(SubWord) (AESWord w)
- 732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-
GAS LISTING /tmp/ccPaCTqg.s 			page 49
-
-
- 735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(SubWord) (AESWord w)
- 736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESColumn col;
- 738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if 0
- 747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * InvSubBytes replaces each byte in a state with a specific byte value from
- 749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * an Inversze Rijndael Substitution box.  That is InvSubBytes undoes SubBytes
- 750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const 
- 752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint8_t AESBCMEMBER(RijndaelInvSBox)[256] = 
- 753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E   
- 755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 0- */ 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 
- 756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 1- */ 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 
- 757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 2- */ 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 
- 758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 3- */ 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 
- 759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 4- */ 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 
- 760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 5- */ 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 
- 761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 6- */ 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 
- 762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 7- */ 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 
- 763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 8- */ 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 
- 764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 9- */ 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 
- 765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* A- */ 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 
- 766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* B- */ 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 
- 767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* C- */ 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 
- 768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* D- */ 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 
- 769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* E- */ 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 
- 770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* F- */ 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 
- 771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (u.bytes); ++ix)
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u.bytes[ix] = AESBCMEMBER(RijndaelInvSBox)[u.bytes[ix]];
- 787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 50
-
-
- 792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RijndaelSBoxV)[16] = 
- 794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F
- 796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x7
- 797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC
- 798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x1
- 799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x7
- 800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x8
- 801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xC
- 802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA
- 803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD
- 804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x7
- 805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xD
- 806:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x7
- 807:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x0
- 808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8
- 809:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9
- 810:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xD
- 811:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x1
- 812:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 813:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 814:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RijndaelInvSBoxV)[16] = 
- 816:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 817:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F
- 818:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xF
- 819:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xC
- 820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4
- 821:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x2
- 822:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x9
- 823:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x8
- 824:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x0
- 825:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6
- 826:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x7
- 827:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6
- 828:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1
- 829:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF
- 830:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5
- 831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xE
- 832:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x6
- 833:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7
- 834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 835:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 836:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 837:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 838:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec lo_filter = { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 839:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
- 840:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 841:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
- 843:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 844:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 845:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 846:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
- 847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 848:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec lo, hi, tmp, out;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 51
-
-
- 849:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 850:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 852:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 853:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("state", state); */
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 855:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("lo", lo); */
- 856:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 860:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 861:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 863:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 864:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 865:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 867:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 871:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 873:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 875:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("out", out); */
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 877:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("hi", hi); */
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 879:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("hi", hi); */
- 880:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 881:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("out", out); */
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 883:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 884:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 885:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 886:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 887:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 888:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 889:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 890:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 891:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 892:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 893:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelSBoxV));
- 894:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 895:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 896:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 897:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 898:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 899:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 900:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 901:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 902:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 903:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelInvSBoxV));
- 905:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-
GAS LISTING /tmp/ccPaCTqg.s 			page 52
-
-
- 906:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 907:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 908:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.3
- 910:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 911:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 912:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 913:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * there are no psllb or psrlb instructions so shift words not bytes
- 914:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * and then cut off bits that would have been zeroed if there were
- 915:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * such instructions
- 916:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 917:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * 
- 918:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 919:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const CipherVec FF_tab = 
- 920:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** { 0x00, 0x1B, 0x36, 0x2D, 0x6C, 0x77, 0x5A, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- 921:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 922:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 923:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
- 924:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 925:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
- 928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec sl, sr;
- 930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (bits <= 8);
- 932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 939:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(VecXor)(sl, sr);
- 940:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 941:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 942:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 943:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 944:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_02) (CipherVec state)
- 945:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 946:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 947:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 948:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_02) (register CipherVec state)
- 949:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 950:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 951:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 952:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 1);
- 953:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 954:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 956:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 959:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 960:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
- 961:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 962:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 53
-
-
- 963:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 964:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
- 965:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 966:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 967:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 968:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 2);
- 969:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 970:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 971:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 972:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 973:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 974:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 975:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 976:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
- 977:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 978:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 979:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 980:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
- 981:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 982:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 983:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 984:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 3);
- 985:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 986:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 987:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 988:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 989:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 990:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 991:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static AESByte AESBCMEMBER(FFtable)[] = { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41 };
- 992:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 993:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 995:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFtab) (uint8_t x)
- 996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 997:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 999:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFtab) (uint8_t x)
-1000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
-1002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1003:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1004:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1005:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1006:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul02) (AESByte b)
-1007:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1008:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1009:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1010:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul02) (AESByte b)
-1011:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
-1013:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1014:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1015:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1016:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1017:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul04) (AESByte b)
-1018:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 54
-
-
-1020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1021:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul04) (AESByte b)
-1022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
-1024:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1025:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1026:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1027:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1028:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul08) (AESByte b)
-1029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1030:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1032:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul08) (AESByte b)
-1033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
-1035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1036:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1038:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1039:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-1040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1041:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1043:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-1044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec c0, c1, c2, c3;
-1046:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(RotBytesLeft) (state);
-1048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c2 = AESBCMEMBER(RotBytesLeft) (c1);
-1049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c3 = AESBCMEMBER(RotBytesLeft) (c2);
-1050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(VecXor) (state, c1);
-1051:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1052:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1053:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1054:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(FF_mul_02) (c0);
-1055:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1056:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1057:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         CipherVec_AES_u tmp;
-1058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned ix;
-1059:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1060:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp.state = c0;
-1061:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof tmp; ++ix)
-1063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             tmp.bytes[ix] = AESBCMEMBER(FFmul02)(tmp.bytes[ix]);
-1064:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         c0 = tmp.state;
-1065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1066:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c2);
-1068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c3);
-1069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c0);
-1070:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return c1;
-1072:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* obsoleted 
-1073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in, out;
-1074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
-1075:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 55
-
-
-1077:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1078:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (out.bytes); ix += 4)
-1079:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1080:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s0 = in.bytes[ix + 0];
-1081:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s1 = in.bytes[ix + 1];
-1082:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s2 = in.bytes[ix + 2];
-1083:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s3 = in.bytes[ix + 3];
-1084:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1085:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1);
-1086:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2);
-1087:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3);
-1088:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0);
-1089:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1090:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1091:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1092:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1093:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1094:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1095:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-1096:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1098:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-1100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-1102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESIMC (state);
-1103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec r1, r2, r3, f2, f4, f8;
-1105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r1 = AESBCMEMBER(RotBytesLeft) (state);
-1107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r2 = AESBCMEMBER(RotBytesLeft) (r1);
-1108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r3 = AESBCMEMBER(RotBytesLeft) (r2);        
-1109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(VecXor) (state, r2);
-1111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(VecXor) (state, r1);
-1112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (r2, r3);
-1113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (f8, r1);
-1114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (f8, f2);
-1115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(FF_mul) (f2,1);
-1119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(FF_mul) (f4,2);
-1120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(FF_mul) (f8,3);
-1121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         CipherVec_AES_u fu2, fu4, fu8;
-1124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned ix;
-1125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu2.state = f2;
-1127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu4.state = f4;
-1128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu8.state = f8;
-1129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof fu2; ++ix)
-1131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
-1133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 56
-
-
-1134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
-1135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f2 = fu2.state;
-1137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f4 = fu4.state;
-1138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f8 = fu8.state;
-1139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f2);
-1143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f4);
-1144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f8);
-1145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-1149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in, out;
-1151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
-1152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (out.bytes); ix += AES_Nb)
-1156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s0 = in.bytes[ix + 0];
-1158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s1 = in.bytes[ix + 1];
-1159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s2 = in.bytes[ix + 2];
-1160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s3 = in.bytes[ix + 3];
-1161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord p, q;
-1162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         q =     AESBCMEMBER(FFmul08)(s0 ^ s1 ^ s2 ^ s3);
-1164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         p = q ^ AESBCMEMBER(FFmul04)(s0 ^ s2);
-1165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         q = q ^ AESBCMEMBER(FFmul04)(s1 ^ s3);
-1166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1) ^ p;
-1168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2) ^ q;
-1169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3) ^ p;
-1170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0) ^ q;
-1171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
-1179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.2
-1180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-1182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(Rcon)[] = {
-1183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x00000001, 0x00000002, 0x00000004, 0x00000008,
-1184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x00000010, 0x00000020, 0x00000040, 0x00000080,
-1185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x0000001B, 0x00000036
-1186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
-1187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(RotWord) (AESWord w)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 57
-
-
-1191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(RotWord) (AESWord w)
-1195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
-1197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-1202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-1206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-1208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * not portable to architectures which require aligned multibyte reads
-1209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * but as this only runs on Intel at this point it is fine for now
-1210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-1211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return *(AESWord*)pointer;
-1212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion) (CipherVec * r, const AESByte * key, unsigned Nr, unsigned Nk)
-1218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord * w = (AESWord*)r;
-1220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESWord * pRcon;
-1221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix, limit;
-1222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_KEYEXP(("%s (w (%p), key (%p), Nr (%u) Nk (%u))\n", __func__, w, key, Nr, Nk));
-1226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < Nk; ++ix)
-1228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("i (dec): %u\n", ix));
-1230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         temp = AESBCMEMBER(GetWord) (key+(ix*4));
-1231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         w[ix] = temp;
-1232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("kw[%i]: %0.8x\n", ix, temp));
-1233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     limit = AES_Nb * (Nr + 1);
-1236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     pRcon = AESBCMEMBER(Rcon);
-1237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_KEYEXP(("Nk (%u) Nr (%u) limit (%u)\n", Nk, Nr, limit));
-1238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         
-1239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (; ix < limit; ++ix)
-1240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("i (dec): %u %u\n", ix, limit));
-1243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* temp should already be set */
-1245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("temp: %0.8x\n", temp));
-1246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ((ix % Nk) == 0)
-1247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-
GAS LISTING /tmp/ccPaCTqg.s 			page 58
-
-
-1248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(RotWord)(temp);
-1249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after RotWord: %0.8x \n", temp));
-1250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(SubWord) (temp);
-1251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-1252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("Rcon [i/Nk]: %0.8x\n", *pRcon));
-1253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp ^= *pRcon++;
-1254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after XOR with Rcon: %0.8x \n", temp));
-1255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else if ((Nk > 6) && ((ix % Nk) == 4))
-1257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(SubWord) (temp);
-1259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-1260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("w[i-Nk]: %0.8x\n", w[ix-Nk]));
-1262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         temp ^= w [ix - Nk];
-1263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("kw[ix]: %0.8x\n", temp));
-1264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         w [ix] = temp;
-1265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-1271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-1275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-1294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-1298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF
-1301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 59
-
-
-1305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[2];
-1307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
-1308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = 0;
-1309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = 0;
-1310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-1317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-1321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 
-1324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-1333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W3:W3:W3:W3
-1344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-1347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-1351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0xFF);
-1354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 60
-
-
-1362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W2:W2:W2:W2
-1372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-1375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-1379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0xAA);
-1382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[2];
-1388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[2];
-1389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W2:W2:W2:W2
-1400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-1403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-1407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0x55);
-1410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[1];
-1415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[1];
-1417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-
GAS LISTING /tmp/ccPaCTqg.s 			page 61
-
-
-1419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W0:W0:W0
-1428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-1431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-1435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0x00);
-1438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[0];
-1443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[0];
-1444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:X0:X1
-1457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-1460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-1464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (w, x, 0x00);
-1467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u ww;
-1469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u xx;
-1470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
-1472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
-1473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
-1475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
-
GAS LISTING /tmp/ccPaCTqg.s 			page 62
-
-
-1476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
-1478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X2:X3:W0:W1
-1489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-1492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-1496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (w, x, 0x01);
-1499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u ww;
-1501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u xx;
-1502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
-1504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
-1505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[0] = ww.columns[2];
-1507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[1] = ww.columns[3];
-1508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
-1509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
-1510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
-1512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X2:X3:W0:W1
-1523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-1526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-1530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (v0, v1, 0x02);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 63
-
-
-1533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u t0;
-1535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u t1;
-1536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.state = v0;
-1538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t1.state = v1;
-1539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[2] = t0.columns[0];
-1541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[3] = t0.columns[1];
-1542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[0] = t1.columns[2];
-1543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[1] = t1.columns[3];
-1544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return t0.state;
-1546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W0^W1:W0^W1^W2:W0^W1^W2^W3
-1556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-1559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-1563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
-1566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-1572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] ^= temp.columns[0];
-1578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] ^= temp.columns[1];
-1579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] ^= temp.columns[2];
-1580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-1588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 64
-
-
-1590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-1592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_AESKEYGENASSIST (state, rcon);
-1595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in;
-1597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u out;
-1598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[0] = AESBCMEMBER(SubWord)(in.columns[1]);
-1604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[1] = AESBCMEMBER(RotWord)(out.columns[0]) ^ rconw;
-1605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[2] = AESBCMEMBER(SubWord)(in.columns[3]);
-1606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[3] = AESBCMEMBER(RotWord)(out.columns[2]) ^ rconw;
-1607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-1615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-1619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
-1623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn1) (tmp);
-1624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
-1634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-1643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 65
-
-
-1647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
-1651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn2) (tmp);
-1652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-1658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-1667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-1671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
-1675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn3) (tmp);
-1676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec vrcon;
-1679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp;
-1680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-1691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #elif USE_VEC && 1
-1695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp;
-1696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [3] = rcon;
-1699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
-1701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-1702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-1703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 66
-
-
-1704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, u.state);
-1705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-1706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-1707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-1708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-1709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-1718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
-1719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
-1720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion128) (CipherVec * round_keys, const AESByte * key)
-1731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 1062              		.loc 3 1731 0
- 1063              		.cfi_startproc
- 1064 004b 55       		pushq	%rbp
- 1065              	.LCFI12:
- 1066              		.cfi_def_cfa_offset 16
- 1067 004c 4889E5   		movq	%rsp, %rbp
- 1068              		.cfi_offset 6, -16
- 1069              	.LCFI13:
- 1070              		.cfi_def_cfa_register 6
- 1071 004f 4881EC68 		subq	$3944, %rsp
- 1071      0F0000
- 1072 0056 4889BD78 		movq	%rdi, -3720(%rbp)
- 1072      F1FFFF
- 1073 005d 4889B570 		movq	%rsi, -3728(%rbp)
- 1073      F1FFFF
- 1074              		.loc 3 1731 0
- 1075 0064 488B8570 		movq	-3728(%rbp), %rax
- 1075      F1FFFF
- 1076 006b 488985A0 		movq	%rax, -3680(%rbp)
- 1076      F1FFFF
- 1077              	.LBB284:
- 1078              	.LBB285:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 1079              		.loc 3 126 0
- 1080 0072 488B85A0 		movq	-3680(%rbp), %rax
- 1080      F1FFFF
- 1081 0079 4889C7   		movq	%rax, %rdi
- 1082              	#APP
- 1083              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 67
-
-
- 1084              		movdqu (%rdi),%xmm0
- 1085              	# 0 "" 2
- 1086              	#NO_APP
- 1087 0080 660F7F85 		movdqa	%xmm0, -4064(%rbp)
- 1087      20F0FFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 1088              		.loc 3 129 0
- 1089 0088 660F6F85 		movdqa	-4064(%rbp), %xmm0
- 1089      20F0FFFF 
- 1090              	.LBE285:
- 1091              	.LBE284:
-1732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec state;
-1733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec kgastate;
-1734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(StateIn) (key);
- 1092              		.loc 3 1735 0
- 1093 0090 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1093      80F1FFFF 
-1736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = state;
- 1094              		.loc 3 1736 0
- 1095 0098 488B8578 		movq	-3720(%rbp), %rax
- 1095      F1FFFF
- 1096 009f F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1096      80F1FFFF 
- 1097 00a7 F30F7F00 		movdqu	%xmm0, (%rax)
- 1098 00ab F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1098      80F1FFFF 
- 1099 00b3 F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 1099      B0F1FFFF 
- 1100              	.LBB286:
- 1101              	.LBB287:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 1102              		.loc 3 1673 0
- 1103 00bb F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 1103      B0F1FFFF 
- 1104 00c3 660F7F85 		movdqa	%xmm0, -4048(%rbp)
- 1104      30F0FFFF 
- 1105 00cb 660F6F85 		movdqa	-4048(%rbp), %xmm0
- 1105      30F0FFFF 
- 1106 00d3 F30F7F85 		movdqu	%xmm0, -3632(%rbp)
- 1106      D0F1FFFF 
- 1107              	.LBB288:
- 1108              	.LBB289:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 1109              		.loc 1 852 0
- 1110 00db F30F6F85 		movdqu	-3632(%rbp), %xmm0
- 1110      D0F1FFFF 
- 1111 00e3 660F3ADF 		aeskeygenassist	$1, %xmm0, %xmm0
- 1111      C001
- 1112              	.LBE289:
- 1113              	.LBE288:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 1114              		.loc 3 1674 0
- 1115 00e9 660F7F85 		movdqa	%xmm0, -4048(%rbp)
- 1115      30F0FFFF 
- 1116 00f1 660F6F85 		movdqa	-4048(%rbp), %xmm0
- 1116      30F0FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 68
-
-
- 1117 00f9 F30F7F85 		movdqu	%xmm0, -3616(%rbp)
- 1117      E0F1FFFF 
- 1118 0101 F30F6F85 		movdqu	-3616(%rbp), %xmm0
- 1118      E0F1FFFF 
- 1119 0109 F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 1119      00F2FFFF 
- 1120              	.LBB290:
- 1121              	.LBB291:
- 1122              	.LBB292:
- 1123              	.LBB293:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1124              		.loc 1 450 0
- 1125 0111 F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 1125      00F2FFFF 
- 1126 0119 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1126      FF
- 1127              	.LBE293:
- 1128              	.LBE292:
- 1129              	.LBE291:
- 1130              	.LBE290:
- 1131              	.LBE287:
- 1132              	.LBE286:
-1737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE128(rcon,offset) \
-1739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     kgastate = AESBCMEMBER(AesKeyGenAssistColumn3) (state, rcon); \
-1740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftXorColumns) (state); \
-1741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= kgastate; \
-1742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = state
-1743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x01,1);
- 1133              		.loc 3 1744 0
- 1134 011e F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 1134      90F1FFFF 
- 1135 0126 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1135      80F1FFFF 
- 1136 012e F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 1136      10F2FFFF 
- 1137              	.LBB294:
- 1138              	.LBB295:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1139              		.loc 3 1565 0
- 1140 0136 F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 1140      10F2FFFF 
- 1141 013e 660F7F85 		movdqa	%xmm0, -4032(%rbp)
- 1141      40F0FFFF 
- 1142 0146 660F6F85 		movdqa	-4032(%rbp), %xmm0
- 1142      40F0FFFF 
- 1143 014e F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 1143      20F2FFFF 
- 1144              	.LBB296:
- 1145              	.LBB297:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1146              		.loc 3 1278 0
- 1147 0156 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1147      00000000 
- 1148 015e F30F6F8D 		movdqu	-3552(%rbp), %xmm1
- 1148      20F2FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 69
-
-
- 1149 0166 F30F7F8D 		movdqu	%xmm1, -3520(%rbp)
- 1149      40F2FFFF 
- 1150 016e F30F7F85 		movdqu	%xmm0, -3536(%rbp)
- 1150      30F2FFFF 
- 1151 0176 F30F6F85 		movdqu	-3520(%rbp), %xmm0
- 1151      40F2FFFF 
- 1152 017e F30F7F85 		movdqu	%xmm0, -3488(%rbp)
- 1152      60F2FFFF 
- 1153 0186 F30F6F85 		movdqu	-3536(%rbp), %xmm0
- 1153      30F2FFFF 
- 1154 018e F30F7F85 		movdqu	%xmm0, -3504(%rbp)
- 1154      50F2FFFF 
- 1155              	.LBB298:
- 1156              	.LBB299:
- 1157              	.LBB300:
- 1158              	.LBB301:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1159              		.loc 1 529 0
- 1160 0196 F30F6F8D 		movdqu	-3504(%rbp), %xmm1
- 1160      50F2FFFF 
- 1161 019e F30F6F85 		movdqu	-3488(%rbp), %xmm0
- 1161      60F2FFFF 
- 1162 01a6 660F3800 		pshufb	%xmm1, %xmm0
- 1162      C1
- 1163              	.LBE301:
- 1164              	.LBE300:
- 1165              	.LBE299:
- 1166              	.LBE298:
- 1167              	.LBE297:
- 1168              	.LBE296:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1169              		.loc 3 1567 0
- 1170 01ab 660F7F85 		movdqa	%xmm0, -4032(%rbp)
- 1170      40F0FFFF 
- 1171 01b3 660F6F85 		movdqa	-4032(%rbp), %xmm0
- 1171      40F0FFFF 
- 1172 01bb 660FEF85 		pxor	-3568(%rbp), %xmm0
- 1172      10F2FFFF 
- 1173 01c3 F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 1173      10F2FFFF 
- 1174 01cb 660F6F85 		movdqa	-4032(%rbp), %xmm0
- 1174      40F0FFFF 
- 1175 01d3 F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 1175      70F2FFFF 
- 1176              	.LBB302:
- 1177              	.LBB303:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1178              		.loc 3 1278 0
- 1179 01db 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1179      00000000 
- 1180 01e3 F30F6F8D 		movdqu	-3472(%rbp), %xmm1
- 1180      70F2FFFF 
- 1181 01eb F30F7F8D 		movdqu	%xmm1, -3440(%rbp)
- 1181      90F2FFFF 
- 1182 01f3 F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 1182      80F2FFFF 
- 1183 01fb F30F6F85 		movdqu	-3440(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 70
-
-
- 1183      90F2FFFF 
- 1184 0203 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 1184      B0F2FFFF 
- 1185 020b F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 1185      80F2FFFF 
- 1186 0213 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 1186      A0F2FFFF 
- 1187              	.LBB304:
- 1188              	.LBB305:
- 1189              	.LBB306:
- 1190              	.LBB307:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1191              		.loc 1 529 0
- 1192 021b F30F6F8D 		movdqu	-3424(%rbp), %xmm1
- 1192      A0F2FFFF 
- 1193 0223 F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 1193      B0F2FFFF 
- 1194 022b 660F3800 		pshufb	%xmm1, %xmm0
- 1194      C1
- 1195              	.LBE307:
- 1196              	.LBE306:
- 1197              	.LBE305:
- 1198              	.LBE304:
- 1199              	.LBE303:
- 1200              	.LBE302:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1201              		.loc 3 1568 0
- 1202 0230 660F7F85 		movdqa	%xmm0, -4032(%rbp)
- 1202      40F0FFFF 
- 1203 0238 660F6F85 		movdqa	-4032(%rbp), %xmm0
- 1203      40F0FFFF 
- 1204 0240 660FEF85 		pxor	-3568(%rbp), %xmm0
- 1204      10F2FFFF 
- 1205 0248 F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 1205      10F2FFFF 
- 1206 0250 660F6F85 		movdqa	-4032(%rbp), %xmm0
- 1206      40F0FFFF 
- 1207 0258 F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 1207      C0F2FFFF 
- 1208              	.LBB308:
- 1209              	.LBB309:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1210              		.loc 3 1278 0
- 1211 0260 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1211      00000000 
- 1212 0268 F30F6F8D 		movdqu	-3392(%rbp), %xmm1
- 1212      C0F2FFFF 
- 1213 0270 F30F7F8D 		movdqu	%xmm1, -3360(%rbp)
- 1213      E0F2FFFF 
- 1214 0278 F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 1214      D0F2FFFF 
- 1215 0280 F30F6F85 		movdqu	-3360(%rbp), %xmm0
- 1215      E0F2FFFF 
- 1216 0288 F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 1216      00F3FFFF 
- 1217 0290 F30F6F85 		movdqu	-3376(%rbp), %xmm0
- 1217      D0F2FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 71
-
-
- 1218 0298 F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 1218      F0F2FFFF 
- 1219              	.LBB310:
- 1220              	.LBB311:
- 1221              	.LBB312:
- 1222              	.LBB313:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1223              		.loc 1 529 0
- 1224 02a0 F30F6F8D 		movdqu	-3344(%rbp), %xmm1
- 1224      F0F2FFFF 
- 1225 02a8 F30F6F85 		movdqu	-3328(%rbp), %xmm0
- 1225      00F3FFFF 
- 1226 02b0 660F3800 		pshufb	%xmm1, %xmm0
- 1226      C1
- 1227              	.LBE313:
- 1228              	.LBE312:
- 1229              	.LBE311:
- 1230              	.LBE310:
- 1231              	.LBE309:
- 1232              	.LBE308:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1233              		.loc 3 1569 0
- 1234 02b5 660F7F85 		movdqa	%xmm0, -4032(%rbp)
- 1234      40F0FFFF 
- 1235 02bd 660F6F85 		movdqa	-4032(%rbp), %xmm0
- 1235      40F0FFFF 
- 1236 02c5 660FEF85 		pxor	-3568(%rbp), %xmm0
- 1236      10F2FFFF 
- 1237 02cd F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 1237      10F2FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1238              		.loc 3 1571 0
- 1239 02d5 F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 1239      10F2FFFF 
- 1240              	.LBE295:
- 1241              	.LBE294:
- 1242              		.loc 3 1744 0
- 1243 02dd F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1243      80F1FFFF 
- 1244 02e5 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 1244      90F1FFFF 
- 1245 02ed F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 1245      80F1FFFF 
- 1246 02f5 660FEFC1 		pxor	%xmm1, %xmm0
- 1247 02f9 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1247      80F1FFFF 
- 1248 0301 488B8578 		movq	-3720(%rbp), %rax
- 1248      F1FFFF
- 1249 0308 4883C010 		addq	$16, %rax
- 1250 030c F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1250      80F1FFFF 
- 1251 0314 F30F7F00 		movdqu	%xmm0, (%rax)
- 1252 0318 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1252      80F1FFFF 
- 1253 0320 F30F7F85 		movdqu	%xmm0, -3296(%rbp)
- 1253      20F3FFFF 
- 1254              	.LBB314:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 72
-
-
- 1255              	.LBB315:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 1256              		.loc 3 1673 0
- 1257 0328 F30F6F85 		movdqu	-3296(%rbp), %xmm0
- 1257      20F3FFFF 
- 1258 0330 660F7F85 		movdqa	%xmm0, -4016(%rbp)
- 1258      50F0FFFF 
- 1259 0338 660F6F85 		movdqa	-4016(%rbp), %xmm0
- 1259      50F0FFFF 
- 1260 0340 F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 1260      40F3FFFF 
- 1261              	.LBB316:
- 1262              	.LBB317:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 1263              		.loc 1 852 0
- 1264 0348 F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 1264      40F3FFFF 
- 1265 0350 660F3ADF 		aeskeygenassist	$2, %xmm0, %xmm0
- 1265      C002
- 1266              	.LBE317:
- 1267              	.LBE316:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 1268              		.loc 3 1674 0
- 1269 0356 660F7F85 		movdqa	%xmm0, -4016(%rbp)
- 1269      50F0FFFF 
- 1270 035e 660F6F85 		movdqa	-4016(%rbp), %xmm0
- 1270      50F0FFFF 
- 1271 0366 F30F7F85 		movdqu	%xmm0, -3248(%rbp)
- 1271      50F3FFFF 
- 1272 036e F30F6F85 		movdqu	-3248(%rbp), %xmm0
- 1272      50F3FFFF 
- 1273 0376 F30F7F85 		movdqu	%xmm0, -3216(%rbp)
- 1273      70F3FFFF 
- 1274              	.LBB318:
- 1275              	.LBB319:
- 1276              	.LBB320:
- 1277              	.LBB321:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1278              		.loc 1 450 0
- 1279 037e F30F6F85 		movdqu	-3216(%rbp), %xmm0
- 1279      70F3FFFF 
- 1280 0386 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1280      FF
- 1281              	.LBE321:
- 1282              	.LBE320:
- 1283              	.LBE319:
- 1284              	.LBE318:
- 1285              	.LBE315:
- 1286              	.LBE314:
-1745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x02,2);
- 1287              		.loc 3 1745 0
- 1288 038b F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 1288      90F1FFFF 
- 1289 0393 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1289      80F1FFFF 
- 1290 039b F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 1290      80F3FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 73
-
-
- 1291              	.LBB322:
- 1292              	.LBB323:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1293              		.loc 3 1565 0
- 1294 03a3 F30F6F85 		movdqu	-3200(%rbp), %xmm0
- 1294      80F3FFFF 
- 1295 03ab 660F7F85 		movdqa	%xmm0, -4000(%rbp)
- 1295      60F0FFFF 
- 1296 03b3 660F6F85 		movdqa	-4000(%rbp), %xmm0
- 1296      60F0FFFF 
- 1297 03bb F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 1297      90F3FFFF 
- 1298              	.LBB324:
- 1299              	.LBB325:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1300              		.loc 3 1278 0
- 1301 03c3 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1301      00000000 
- 1302 03cb F30F6F8D 		movdqu	-3184(%rbp), %xmm1
- 1302      90F3FFFF 
- 1303 03d3 F30F7F8D 		movdqu	%xmm1, -3152(%rbp)
- 1303      B0F3FFFF 
- 1304 03db F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 1304      A0F3FFFF 
- 1305 03e3 F30F6F85 		movdqu	-3152(%rbp), %xmm0
- 1305      B0F3FFFF 
- 1306 03eb F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 1306      D0F3FFFF 
- 1307 03f3 F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 1307      A0F3FFFF 
- 1308 03fb F30F7F85 		movdqu	%xmm0, -3136(%rbp)
- 1308      C0F3FFFF 
- 1309              	.LBB326:
- 1310              	.LBB327:
- 1311              	.LBB328:
- 1312              	.LBB329:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1313              		.loc 1 529 0
- 1314 0403 F30F6F8D 		movdqu	-3136(%rbp), %xmm1
- 1314      C0F3FFFF 
- 1315 040b F30F6F85 		movdqu	-3120(%rbp), %xmm0
- 1315      D0F3FFFF 
- 1316 0413 660F3800 		pshufb	%xmm1, %xmm0
- 1316      C1
- 1317              	.LBE329:
- 1318              	.LBE328:
- 1319              	.LBE327:
- 1320              	.LBE326:
- 1321              	.LBE325:
- 1322              	.LBE324:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1323              		.loc 3 1567 0
- 1324 0418 660F7F85 		movdqa	%xmm0, -4000(%rbp)
- 1324      60F0FFFF 
- 1325 0420 660F6F85 		movdqa	-4000(%rbp), %xmm0
- 1325      60F0FFFF 
- 1326 0428 660FEF85 		pxor	-3200(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 74
-
-
- 1326      80F3FFFF 
- 1327 0430 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 1327      80F3FFFF 
- 1328 0438 660F6F85 		movdqa	-4000(%rbp), %xmm0
- 1328      60F0FFFF 
- 1329 0440 F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 1329      E0F3FFFF 
- 1330              	.LBB330:
- 1331              	.LBB331:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1332              		.loc 3 1278 0
- 1333 0448 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1333      00000000 
- 1334 0450 F30F6F8D 		movdqu	-3104(%rbp), %xmm1
- 1334      E0F3FFFF 
- 1335 0458 F30F7F8D 		movdqu	%xmm1, -3072(%rbp)
- 1335      00F4FFFF 
- 1336 0460 F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 1336      F0F3FFFF 
- 1337 0468 F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 1337      00F4FFFF 
- 1338 0470 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 1338      20F4FFFF 
- 1339 0478 F30F6F85 		movdqu	-3088(%rbp), %xmm0
- 1339      F0F3FFFF 
- 1340 0480 F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 1340      10F4FFFF 
- 1341              	.LBB332:
- 1342              	.LBB333:
- 1343              	.LBB334:
- 1344              	.LBB335:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1345              		.loc 1 529 0
- 1346 0488 F30F6F8D 		movdqu	-3056(%rbp), %xmm1
- 1346      10F4FFFF 
- 1347 0490 F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 1347      20F4FFFF 
- 1348 0498 660F3800 		pshufb	%xmm1, %xmm0
- 1348      C1
- 1349              	.LBE335:
- 1350              	.LBE334:
- 1351              	.LBE333:
- 1352              	.LBE332:
- 1353              	.LBE331:
- 1354              	.LBE330:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1355              		.loc 3 1568 0
- 1356 049d 660F7F85 		movdqa	%xmm0, -4000(%rbp)
- 1356      60F0FFFF 
- 1357 04a5 660F6F85 		movdqa	-4000(%rbp), %xmm0
- 1357      60F0FFFF 
- 1358 04ad 660FEF85 		pxor	-3200(%rbp), %xmm0
- 1358      80F3FFFF 
- 1359 04b5 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 1359      80F3FFFF 
- 1360 04bd 660F6F85 		movdqa	-4000(%rbp), %xmm0
- 1360      60F0FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 75
-
-
- 1361 04c5 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 1361      30F4FFFF 
- 1362              	.LBB336:
- 1363              	.LBB337:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1364              		.loc 3 1278 0
- 1365 04cd 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1365      00000000 
- 1366 04d5 F30F6F8D 		movdqu	-3024(%rbp), %xmm1
- 1366      30F4FFFF 
- 1367 04dd F30F7F8D 		movdqu	%xmm1, -2992(%rbp)
- 1367      50F4FFFF 
- 1368 04e5 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 1368      40F4FFFF 
- 1369 04ed F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 1369      50F4FFFF 
- 1370 04f5 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 1370      70F4FFFF 
- 1371 04fd F30F6F85 		movdqu	-3008(%rbp), %xmm0
- 1371      40F4FFFF 
- 1372 0505 F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 1372      60F4FFFF 
- 1373              	.LBB338:
- 1374              	.LBB339:
- 1375              	.LBB340:
- 1376              	.LBB341:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1377              		.loc 1 529 0
- 1378 050d F30F6F8D 		movdqu	-2976(%rbp), %xmm1
- 1378      60F4FFFF 
- 1379 0515 F30F6F85 		movdqu	-2960(%rbp), %xmm0
- 1379      70F4FFFF 
- 1380 051d 660F3800 		pshufb	%xmm1, %xmm0
- 1380      C1
- 1381              	.LBE341:
- 1382              	.LBE340:
- 1383              	.LBE339:
- 1384              	.LBE338:
- 1385              	.LBE337:
- 1386              	.LBE336:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1387              		.loc 3 1569 0
- 1388 0522 660F7F85 		movdqa	%xmm0, -4000(%rbp)
- 1388      60F0FFFF 
- 1389 052a 660F6F85 		movdqa	-4000(%rbp), %xmm0
- 1389      60F0FFFF 
- 1390 0532 660FEF85 		pxor	-3200(%rbp), %xmm0
- 1390      80F3FFFF 
- 1391 053a F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 1391      80F3FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1392              		.loc 3 1571 0
- 1393 0542 F30F6F85 		movdqu	-3200(%rbp), %xmm0
- 1393      80F3FFFF 
- 1394              	.LBE323:
- 1395              	.LBE322:
- 1396              		.loc 3 1745 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 76
-
-
- 1397 054a F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1397      80F1FFFF 
- 1398 0552 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 1398      90F1FFFF 
- 1399 055a F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 1399      80F1FFFF 
- 1400 0562 660FEFC1 		pxor	%xmm1, %xmm0
- 1401 0566 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1401      80F1FFFF 
- 1402 056e 488B8578 		movq	-3720(%rbp), %rax
- 1402      F1FFFF
- 1403 0575 4883C020 		addq	$32, %rax
- 1404 0579 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1404      80F1FFFF 
- 1405 0581 F30F7F00 		movdqu	%xmm0, (%rax)
- 1406 0585 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1406      80F1FFFF 
- 1407 058d F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 1407      90F4FFFF 
- 1408              	.LBB342:
- 1409              	.LBB343:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 1410              		.loc 3 1673 0
- 1411 0595 F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 1411      90F4FFFF 
- 1412 059d 660F7F85 		movdqa	%xmm0, -3984(%rbp)
- 1412      70F0FFFF 
- 1413 05a5 660F6F85 		movdqa	-3984(%rbp), %xmm0
- 1413      70F0FFFF 
- 1414 05ad F30F7F85 		movdqu	%xmm0, -2896(%rbp)
- 1414      B0F4FFFF 
- 1415              	.LBB344:
- 1416              	.LBB345:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 1417              		.loc 1 852 0
- 1418 05b5 F30F6F85 		movdqu	-2896(%rbp), %xmm0
- 1418      B0F4FFFF 
- 1419 05bd 660F3ADF 		aeskeygenassist	$4, %xmm0, %xmm0
- 1419      C004
- 1420              	.LBE345:
- 1421              	.LBE344:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 1422              		.loc 3 1674 0
- 1423 05c3 660F7F85 		movdqa	%xmm0, -3984(%rbp)
- 1423      70F0FFFF 
- 1424 05cb 660F6F85 		movdqa	-3984(%rbp), %xmm0
- 1424      70F0FFFF 
- 1425 05d3 F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 1425      C0F4FFFF 
- 1426 05db F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 1426      C0F4FFFF 
- 1427 05e3 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 1427      E0F4FFFF 
- 1428              	.LBB346:
- 1429              	.LBB347:
- 1430              	.LBB348:
- 1431              	.LBB349:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 77
-
-
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1432              		.loc 1 450 0
- 1433 05eb F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 1433      E0F4FFFF 
- 1434 05f3 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1434      FF
- 1435              	.LBE349:
- 1436              	.LBE348:
- 1437              	.LBE347:
- 1438              	.LBE346:
- 1439              	.LBE343:
- 1440              	.LBE342:
-1746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x04,3);
- 1441              		.loc 3 1746 0
- 1442 05f8 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 1442      90F1FFFF 
- 1443 0600 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1443      80F1FFFF 
- 1444 0608 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 1444      F0F4FFFF 
- 1445              	.LBB350:
- 1446              	.LBB351:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1447              		.loc 3 1565 0
- 1448 0610 F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 1448      F0F4FFFF 
- 1449 0618 660F7F85 		movdqa	%xmm0, -3968(%rbp)
- 1449      80F0FFFF 
- 1450 0620 660F6F85 		movdqa	-3968(%rbp), %xmm0
- 1450      80F0FFFF 
- 1451 0628 F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 1451      00F5FFFF 
- 1452              	.LBB352:
- 1453              	.LBB353:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1454              		.loc 3 1278 0
- 1455 0630 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1455      00000000 
- 1456 0638 F30F6F8D 		movdqu	-2816(%rbp), %xmm1
- 1456      00F5FFFF 
- 1457 0640 F30F7F8D 		movdqu	%xmm1, -2784(%rbp)
- 1457      20F5FFFF 
- 1458 0648 F30F7F85 		movdqu	%xmm0, -2800(%rbp)
- 1458      10F5FFFF 
- 1459 0650 F30F6F85 		movdqu	-2784(%rbp), %xmm0
- 1459      20F5FFFF 
- 1460 0658 F30F7F85 		movdqu	%xmm0, -2752(%rbp)
- 1460      40F5FFFF 
- 1461 0660 F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 1461      10F5FFFF 
- 1462 0668 F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 1462      30F5FFFF 
- 1463              	.LBB354:
- 1464              	.LBB355:
- 1465              	.LBB356:
- 1466              	.LBB357:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 78
-
-
- 1467              		.loc 1 529 0
- 1468 0670 F30F6F8D 		movdqu	-2768(%rbp), %xmm1
- 1468      30F5FFFF 
- 1469 0678 F30F6F85 		movdqu	-2752(%rbp), %xmm0
- 1469      40F5FFFF 
- 1470 0680 660F3800 		pshufb	%xmm1, %xmm0
- 1470      C1
- 1471              	.LBE357:
- 1472              	.LBE356:
- 1473              	.LBE355:
- 1474              	.LBE354:
- 1475              	.LBE353:
- 1476              	.LBE352:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1477              		.loc 3 1567 0
- 1478 0685 660F7F85 		movdqa	%xmm0, -3968(%rbp)
- 1478      80F0FFFF 
- 1479 068d 660F6F85 		movdqa	-3968(%rbp), %xmm0
- 1479      80F0FFFF 
- 1480 0695 660FEF85 		pxor	-2832(%rbp), %xmm0
- 1480      F0F4FFFF 
- 1481 069d F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 1481      F0F4FFFF 
- 1482 06a5 660F6F85 		movdqa	-3968(%rbp), %xmm0
- 1482      80F0FFFF 
- 1483 06ad F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 1483      50F5FFFF 
- 1484              	.LBB358:
- 1485              	.LBB359:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1486              		.loc 3 1278 0
- 1487 06b5 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1487      00000000 
- 1488 06bd F30F6F8D 		movdqu	-2736(%rbp), %xmm1
- 1488      50F5FFFF 
- 1489 06c5 F30F7F8D 		movdqu	%xmm1, -2704(%rbp)
- 1489      70F5FFFF 
- 1490 06cd F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 1490      60F5FFFF 
- 1491 06d5 F30F6F85 		movdqu	-2704(%rbp), %xmm0
- 1491      70F5FFFF 
- 1492 06dd F30F7F85 		movdqu	%xmm0, -2672(%rbp)
- 1492      90F5FFFF 
- 1493 06e5 F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 1493      60F5FFFF 
- 1494 06ed F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 1494      80F5FFFF 
- 1495              	.LBB360:
- 1496              	.LBB361:
- 1497              	.LBB362:
- 1498              	.LBB363:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1499              		.loc 1 529 0
- 1500 06f5 F30F6F8D 		movdqu	-2688(%rbp), %xmm1
- 1500      80F5FFFF 
- 1501 06fd F30F6F85 		movdqu	-2672(%rbp), %xmm0
- 1501      90F5FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 79
-
-
- 1502 0705 660F3800 		pshufb	%xmm1, %xmm0
- 1502      C1
- 1503              	.LBE363:
- 1504              	.LBE362:
- 1505              	.LBE361:
- 1506              	.LBE360:
- 1507              	.LBE359:
- 1508              	.LBE358:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1509              		.loc 3 1568 0
- 1510 070a 660F7F85 		movdqa	%xmm0, -3968(%rbp)
- 1510      80F0FFFF 
- 1511 0712 660F6F85 		movdqa	-3968(%rbp), %xmm0
- 1511      80F0FFFF 
- 1512 071a 660FEF85 		pxor	-2832(%rbp), %xmm0
- 1512      F0F4FFFF 
- 1513 0722 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 1513      F0F4FFFF 
- 1514 072a 660F6F85 		movdqa	-3968(%rbp), %xmm0
- 1514      80F0FFFF 
- 1515 0732 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 1515      A0F5FFFF 
- 1516              	.LBB364:
- 1517              	.LBB365:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1518              		.loc 3 1278 0
- 1519 073a 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1519      00000000 
- 1520 0742 F30F6F8D 		movdqu	-2656(%rbp), %xmm1
- 1520      A0F5FFFF 
- 1521 074a F30F7F8D 		movdqu	%xmm1, -2624(%rbp)
- 1521      C0F5FFFF 
- 1522 0752 F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 1522      B0F5FFFF 
- 1523 075a F30F6F85 		movdqu	-2624(%rbp), %xmm0
- 1523      C0F5FFFF 
- 1524 0762 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 1524      E0F5FFFF 
- 1525 076a F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 1525      B0F5FFFF 
- 1526 0772 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 1526      D0F5FFFF 
- 1527              	.LBB366:
- 1528              	.LBB367:
- 1529              	.LBB368:
- 1530              	.LBB369:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1531              		.loc 1 529 0
- 1532 077a F30F6F8D 		movdqu	-2608(%rbp), %xmm1
- 1532      D0F5FFFF 
- 1533 0782 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 1533      E0F5FFFF 
- 1534 078a 660F3800 		pshufb	%xmm1, %xmm0
- 1534      C1
- 1535              	.LBE369:
- 1536              	.LBE368:
- 1537              	.LBE367:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 80
-
-
- 1538              	.LBE366:
- 1539              	.LBE365:
- 1540              	.LBE364:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1541              		.loc 3 1569 0
- 1542 078f 660F7F85 		movdqa	%xmm0, -3968(%rbp)
- 1542      80F0FFFF 
- 1543 0797 660F6F85 		movdqa	-3968(%rbp), %xmm0
- 1543      80F0FFFF 
- 1544 079f 660FEF85 		pxor	-2832(%rbp), %xmm0
- 1544      F0F4FFFF 
- 1545 07a7 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 1545      F0F4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1546              		.loc 3 1571 0
- 1547 07af F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 1547      F0F4FFFF 
- 1548              	.LBE351:
- 1549              	.LBE350:
- 1550              		.loc 3 1746 0
- 1551 07b7 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1551      80F1FFFF 
- 1552 07bf F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 1552      90F1FFFF 
- 1553 07c7 F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 1553      80F1FFFF 
- 1554 07cf 660FEFC1 		pxor	%xmm1, %xmm0
- 1555 07d3 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1555      80F1FFFF 
- 1556 07db 488B8578 		movq	-3720(%rbp), %rax
- 1556      F1FFFF
- 1557 07e2 4883C030 		addq	$48, %rax
- 1558 07e6 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1558      80F1FFFF 
- 1559 07ee F30F7F00 		movdqu	%xmm0, (%rax)
- 1560 07f2 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1560      80F1FFFF 
- 1561 07fa F30F7F85 		movdqu	%xmm0, -2560(%rbp)
- 1561      00F6FFFF 
- 1562              	.LBB370:
- 1563              	.LBB371:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 1564              		.loc 3 1673 0
- 1565 0802 F30F6F85 		movdqu	-2560(%rbp), %xmm0
- 1565      00F6FFFF 
- 1566 080a 660F7F85 		movdqa	%xmm0, -3952(%rbp)
- 1566      90F0FFFF 
- 1567 0812 660F6F85 		movdqa	-3952(%rbp), %xmm0
- 1567      90F0FFFF 
- 1568 081a F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 1568      20F6FFFF 
- 1569              	.LBB372:
- 1570              	.LBB373:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 1571              		.loc 1 852 0
- 1572 0822 F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 1572      20F6FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 81
-
-
- 1573 082a 660F3ADF 		aeskeygenassist	$8, %xmm0, %xmm0
- 1573      C008
- 1574              	.LBE373:
- 1575              	.LBE372:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 1576              		.loc 3 1674 0
- 1577 0830 660F7F85 		movdqa	%xmm0, -3952(%rbp)
- 1577      90F0FFFF 
- 1578 0838 660F6F85 		movdqa	-3952(%rbp), %xmm0
- 1578      90F0FFFF 
- 1579 0840 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 1579      30F6FFFF 
- 1580 0848 F30F6F85 		movdqu	-2512(%rbp), %xmm0
- 1580      30F6FFFF 
- 1581 0850 F30F7F85 		movdqu	%xmm0, -2480(%rbp)
- 1581      50F6FFFF 
- 1582              	.LBB374:
- 1583              	.LBB375:
- 1584              	.LBB376:
- 1585              	.LBB377:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1586              		.loc 1 450 0
- 1587 0858 F30F6F85 		movdqu	-2480(%rbp), %xmm0
- 1587      50F6FFFF 
- 1588 0860 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1588      FF
- 1589              	.LBE377:
- 1590              	.LBE376:
- 1591              	.LBE375:
- 1592              	.LBE374:
- 1593              	.LBE371:
- 1594              	.LBE370:
-1747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x08,4);
- 1595              		.loc 3 1747 0
- 1596 0865 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 1596      90F1FFFF 
- 1597 086d F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1597      80F1FFFF 
- 1598 0875 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 1598      60F6FFFF 
- 1599              	.LBB378:
- 1600              	.LBB379:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1601              		.loc 3 1565 0
- 1602 087d F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 1602      60F6FFFF 
- 1603 0885 660F7F85 		movdqa	%xmm0, -3936(%rbp)
- 1603      A0F0FFFF 
- 1604 088d 660F6F85 		movdqa	-3936(%rbp), %xmm0
- 1604      A0F0FFFF 
- 1605 0895 F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 1605      70F6FFFF 
- 1606              	.LBB380:
- 1607              	.LBB381:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1608              		.loc 3 1278 0
- 1609 089d 660F6F05 		movdqa	mask.8002(%rip), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 82
-
-
- 1609      00000000 
- 1610 08a5 F30F6F8D 		movdqu	-2448(%rbp), %xmm1
- 1610      70F6FFFF 
- 1611 08ad F30F7F8D 		movdqu	%xmm1, -2416(%rbp)
- 1611      90F6FFFF 
- 1612 08b5 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 1612      80F6FFFF 
- 1613 08bd F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 1613      90F6FFFF 
- 1614 08c5 F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 1614      B0F6FFFF 
- 1615 08cd F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 1615      80F6FFFF 
- 1616 08d5 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 1616      A0F6FFFF 
- 1617              	.LBB382:
- 1618              	.LBB383:
- 1619              	.LBB384:
- 1620              	.LBB385:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1621              		.loc 1 529 0
- 1622 08dd F30F6F8D 		movdqu	-2400(%rbp), %xmm1
- 1622      A0F6FFFF 
- 1623 08e5 F30F6F85 		movdqu	-2384(%rbp), %xmm0
- 1623      B0F6FFFF 
- 1624 08ed 660F3800 		pshufb	%xmm1, %xmm0
- 1624      C1
- 1625              	.LBE385:
- 1626              	.LBE384:
- 1627              	.LBE383:
- 1628              	.LBE382:
- 1629              	.LBE381:
- 1630              	.LBE380:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1631              		.loc 3 1567 0
- 1632 08f2 660F7F85 		movdqa	%xmm0, -3936(%rbp)
- 1632      A0F0FFFF 
- 1633 08fa 660F6F85 		movdqa	-3936(%rbp), %xmm0
- 1633      A0F0FFFF 
- 1634 0902 660FEF85 		pxor	-2464(%rbp), %xmm0
- 1634      60F6FFFF 
- 1635 090a F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 1635      60F6FFFF 
- 1636 0912 660F6F85 		movdqa	-3936(%rbp), %xmm0
- 1636      A0F0FFFF 
- 1637 091a F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 1637      C0F6FFFF 
- 1638              	.LBB386:
- 1639              	.LBB387:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1640              		.loc 3 1278 0
- 1641 0922 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1641      00000000 
- 1642 092a F30F6F8D 		movdqu	-2368(%rbp), %xmm1
- 1642      C0F6FFFF 
- 1643 0932 F30F7F8D 		movdqu	%xmm1, -2336(%rbp)
- 1643      E0F6FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 83
-
-
- 1644 093a F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 1644      D0F6FFFF 
- 1645 0942 F30F6F85 		movdqu	-2336(%rbp), %xmm0
- 1645      E0F6FFFF 
- 1646 094a F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 1646      00F7FFFF 
- 1647 0952 F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 1647      D0F6FFFF 
- 1648 095a F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 1648      F0F6FFFF 
- 1649              	.LBB388:
- 1650              	.LBB389:
- 1651              	.LBB390:
- 1652              	.LBB391:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1653              		.loc 1 529 0
- 1654 0962 F30F6F8D 		movdqu	-2320(%rbp), %xmm1
- 1654      F0F6FFFF 
- 1655 096a F30F6F85 		movdqu	-2304(%rbp), %xmm0
- 1655      00F7FFFF 
- 1656 0972 660F3800 		pshufb	%xmm1, %xmm0
- 1656      C1
- 1657              	.LBE391:
- 1658              	.LBE390:
- 1659              	.LBE389:
- 1660              	.LBE388:
- 1661              	.LBE387:
- 1662              	.LBE386:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1663              		.loc 3 1568 0
- 1664 0977 660F7F85 		movdqa	%xmm0, -3936(%rbp)
- 1664      A0F0FFFF 
- 1665 097f 660F6F85 		movdqa	-3936(%rbp), %xmm0
- 1665      A0F0FFFF 
- 1666 0987 660FEF85 		pxor	-2464(%rbp), %xmm0
- 1666      60F6FFFF 
- 1667 098f F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 1667      60F6FFFF 
- 1668 0997 660F6F85 		movdqa	-3936(%rbp), %xmm0
- 1668      A0F0FFFF 
- 1669 099f F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 1669      10F7FFFF 
- 1670              	.LBB392:
- 1671              	.LBB393:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1672              		.loc 3 1278 0
- 1673 09a7 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1673      00000000 
- 1674 09af F30F6F8D 		movdqu	-2288(%rbp), %xmm1
- 1674      10F7FFFF 
- 1675 09b7 F30F7F8D 		movdqu	%xmm1, -2256(%rbp)
- 1675      30F7FFFF 
- 1676 09bf F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 1676      20F7FFFF 
- 1677 09c7 F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 1677      30F7FFFF 
- 1678 09cf F30F7F85 		movdqu	%xmm0, -2224(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 84
-
-
- 1678      50F7FFFF 
- 1679 09d7 F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 1679      20F7FFFF 
- 1680 09df F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 1680      40F7FFFF 
- 1681              	.LBB394:
- 1682              	.LBB395:
- 1683              	.LBB396:
- 1684              	.LBB397:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1685              		.loc 1 529 0
- 1686 09e7 F30F6F8D 		movdqu	-2240(%rbp), %xmm1
- 1686      40F7FFFF 
- 1687 09ef F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 1687      50F7FFFF 
- 1688 09f7 660F3800 		pshufb	%xmm1, %xmm0
- 1688      C1
- 1689              	.LBE397:
- 1690              	.LBE396:
- 1691              	.LBE395:
- 1692              	.LBE394:
- 1693              	.LBE393:
- 1694              	.LBE392:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1695              		.loc 3 1569 0
- 1696 09fc 660F7F85 		movdqa	%xmm0, -3936(%rbp)
- 1696      A0F0FFFF 
- 1697 0a04 660F6F85 		movdqa	-3936(%rbp), %xmm0
- 1697      A0F0FFFF 
- 1698 0a0c 660FEF85 		pxor	-2464(%rbp), %xmm0
- 1698      60F6FFFF 
- 1699 0a14 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 1699      60F6FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1700              		.loc 3 1571 0
- 1701 0a1c F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 1701      60F6FFFF 
- 1702              	.LBE379:
- 1703              	.LBE378:
- 1704              		.loc 3 1747 0
- 1705 0a24 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1705      80F1FFFF 
- 1706 0a2c F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 1706      90F1FFFF 
- 1707 0a34 F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 1707      80F1FFFF 
- 1708 0a3c 660FEFC1 		pxor	%xmm1, %xmm0
- 1709 0a40 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1709      80F1FFFF 
- 1710 0a48 488B8578 		movq	-3720(%rbp), %rax
- 1710      F1FFFF
- 1711 0a4f 4883C040 		addq	$64, %rax
- 1712 0a53 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1712      80F1FFFF 
- 1713 0a5b F30F7F00 		movdqu	%xmm0, (%rax)
- 1714 0a5f F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1714      80F1FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 85
-
-
- 1715 0a67 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 1715      70F7FFFF 
- 1716              	.LBB398:
- 1717              	.LBB399:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 1718              		.loc 3 1673 0
- 1719 0a6f F30F6F85 		movdqu	-2192(%rbp), %xmm0
- 1719      70F7FFFF 
- 1720 0a77 660F7F85 		movdqa	%xmm0, -3920(%rbp)
- 1720      B0F0FFFF 
- 1721 0a7f 660F6F85 		movdqa	-3920(%rbp), %xmm0
- 1721      B0F0FFFF 
- 1722 0a87 F30F7F85 		movdqu	%xmm0, -2160(%rbp)
- 1722      90F7FFFF 
- 1723              	.LBB400:
- 1724              	.LBB401:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 1725              		.loc 1 852 0
- 1726 0a8f F30F6F85 		movdqu	-2160(%rbp), %xmm0
- 1726      90F7FFFF 
- 1727 0a97 660F3ADF 		aeskeygenassist	$16, %xmm0, %xmm0
- 1727      C010
- 1728              	.LBE401:
- 1729              	.LBE400:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 1730              		.loc 3 1674 0
- 1731 0a9d 660F7F85 		movdqa	%xmm0, -3920(%rbp)
- 1731      B0F0FFFF 
- 1732 0aa5 660F6F85 		movdqa	-3920(%rbp), %xmm0
- 1732      B0F0FFFF 
- 1733 0aad F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 1733      A0F7FFFF 
- 1734 0ab5 F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 1734      A0F7FFFF 
- 1735 0abd F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 1735      C0F7FFFF 
- 1736              	.LBB402:
- 1737              	.LBB403:
- 1738              	.LBB404:
- 1739              	.LBB405:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1740              		.loc 1 450 0
- 1741 0ac5 F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 1741      C0F7FFFF 
- 1742 0acd 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1742      FF
- 1743              	.LBE405:
- 1744              	.LBE404:
- 1745              	.LBE403:
- 1746              	.LBE402:
- 1747              	.LBE399:
- 1748              	.LBE398:
-1748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x10,5);
- 1749              		.loc 3 1748 0
- 1750 0ad2 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 1750      90F1FFFF 
- 1751 0ada F30F6F85 		movdqu	-3712(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 86
-
-
- 1751      80F1FFFF 
- 1752 0ae2 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 1752      D0F7FFFF 
- 1753              	.LBB406:
- 1754              	.LBB407:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1755              		.loc 3 1565 0
- 1756 0aea F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 1756      D0F7FFFF 
- 1757 0af2 660F7F85 		movdqa	%xmm0, -3904(%rbp)
- 1757      C0F0FFFF 
- 1758 0afa 660F6F85 		movdqa	-3904(%rbp), %xmm0
- 1758      C0F0FFFF 
- 1759 0b02 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 1759      E0F7FFFF 
- 1760              	.LBB408:
- 1761              	.LBB409:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1762              		.loc 3 1278 0
- 1763 0b0a 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1763      00000000 
- 1764 0b12 F30F6F8D 		movdqu	-2080(%rbp), %xmm1
- 1764      E0F7FFFF 
- 1765 0b1a F30F7F8D 		movdqu	%xmm1, -2048(%rbp)
- 1765      00F8FFFF 
- 1766 0b22 F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 1766      F0F7FFFF 
- 1767 0b2a F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 1767      00F8FFFF 
- 1768 0b32 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 1768      20F8FFFF 
- 1769 0b3a F30F6F85 		movdqu	-2064(%rbp), %xmm0
- 1769      F0F7FFFF 
- 1770 0b42 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 1770      10F8FFFF 
- 1771              	.LBB410:
- 1772              	.LBB411:
- 1773              	.LBB412:
- 1774              	.LBB413:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1775              		.loc 1 529 0
- 1776 0b4a F30F6F8D 		movdqu	-2032(%rbp), %xmm1
- 1776      10F8FFFF 
- 1777 0b52 F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 1777      20F8FFFF 
- 1778 0b5a 660F3800 		pshufb	%xmm1, %xmm0
- 1778      C1
- 1779              	.LBE413:
- 1780              	.LBE412:
- 1781              	.LBE411:
- 1782              	.LBE410:
- 1783              	.LBE409:
- 1784              	.LBE408:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1785              		.loc 3 1567 0
- 1786 0b5f 660F7F85 		movdqa	%xmm0, -3904(%rbp)
- 1786      C0F0FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 87
-
-
- 1787 0b67 660F6F85 		movdqa	-3904(%rbp), %xmm0
- 1787      C0F0FFFF 
- 1788 0b6f 660FEF85 		pxor	-2096(%rbp), %xmm0
- 1788      D0F7FFFF 
- 1789 0b77 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 1789      D0F7FFFF 
- 1790 0b7f 660F6F85 		movdqa	-3904(%rbp), %xmm0
- 1790      C0F0FFFF 
- 1791 0b87 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 1791      30F8FFFF 
- 1792              	.LBB414:
- 1793              	.LBB415:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1794              		.loc 3 1278 0
- 1795 0b8f 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1795      00000000 
- 1796 0b97 F30F6F8D 		movdqu	-2000(%rbp), %xmm1
- 1796      30F8FFFF 
- 1797 0b9f F30F7F8D 		movdqu	%xmm1, -1968(%rbp)
- 1797      50F8FFFF 
- 1798 0ba7 F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 1798      40F8FFFF 
- 1799 0baf F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 1799      50F8FFFF 
- 1800 0bb7 F30F7F85 		movdqu	%xmm0, -1936(%rbp)
- 1800      70F8FFFF 
- 1801 0bbf F30F6F85 		movdqu	-1984(%rbp), %xmm0
- 1801      40F8FFFF 
- 1802 0bc7 F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 1802      60F8FFFF 
- 1803              	.LBB416:
- 1804              	.LBB417:
- 1805              	.LBB418:
- 1806              	.LBB419:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1807              		.loc 1 529 0
- 1808 0bcf F30F6F8D 		movdqu	-1952(%rbp), %xmm1
- 1808      60F8FFFF 
- 1809 0bd7 F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 1809      70F8FFFF 
- 1810 0bdf 660F3800 		pshufb	%xmm1, %xmm0
- 1810      C1
- 1811              	.LBE419:
- 1812              	.LBE418:
- 1813              	.LBE417:
- 1814              	.LBE416:
- 1815              	.LBE415:
- 1816              	.LBE414:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1817              		.loc 3 1568 0
- 1818 0be4 660F7F85 		movdqa	%xmm0, -3904(%rbp)
- 1818      C0F0FFFF 
- 1819 0bec 660F6F85 		movdqa	-3904(%rbp), %xmm0
- 1819      C0F0FFFF 
- 1820 0bf4 660FEF85 		pxor	-2096(%rbp), %xmm0
- 1820      D0F7FFFF 
- 1821 0bfc F30F7F85 		movdqu	%xmm0, -2096(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 88
-
-
- 1821      D0F7FFFF 
- 1822 0c04 660F6F85 		movdqa	-3904(%rbp), %xmm0
- 1822      C0F0FFFF 
- 1823 0c0c F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 1823      80F8FFFF 
- 1824              	.LBB420:
- 1825              	.LBB421:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1826              		.loc 3 1278 0
- 1827 0c14 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1827      00000000 
- 1828 0c1c F30F6F8D 		movdqu	-1920(%rbp), %xmm1
- 1828      80F8FFFF 
- 1829 0c24 F30F7F8D 		movdqu	%xmm1, -1888(%rbp)
- 1829      A0F8FFFF 
- 1830 0c2c F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 1830      90F8FFFF 
- 1831 0c34 F30F6F85 		movdqu	-1888(%rbp), %xmm0
- 1831      A0F8FFFF 
- 1832 0c3c F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 1832      C0F8FFFF 
- 1833 0c44 F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 1833      90F8FFFF 
- 1834 0c4c F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 1834      B0F8FFFF 
- 1835              	.LBB422:
- 1836              	.LBB423:
- 1837              	.LBB424:
- 1838              	.LBB425:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1839              		.loc 1 529 0
- 1840 0c54 F30F6F8D 		movdqu	-1872(%rbp), %xmm1
- 1840      B0F8FFFF 
- 1841 0c5c F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 1841      C0F8FFFF 
- 1842 0c64 660F3800 		pshufb	%xmm1, %xmm0
- 1842      C1
- 1843              	.LBE425:
- 1844              	.LBE424:
- 1845              	.LBE423:
- 1846              	.LBE422:
- 1847              	.LBE421:
- 1848              	.LBE420:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1849              		.loc 3 1569 0
- 1850 0c69 660F7F85 		movdqa	%xmm0, -3904(%rbp)
- 1850      C0F0FFFF 
- 1851 0c71 660F6F85 		movdqa	-3904(%rbp), %xmm0
- 1851      C0F0FFFF 
- 1852 0c79 660FEF85 		pxor	-2096(%rbp), %xmm0
- 1852      D0F7FFFF 
- 1853 0c81 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 1853      D0F7FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1854              		.loc 3 1571 0
- 1855 0c89 F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 1855      D0F7FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 89
-
-
- 1856              	.LBE407:
- 1857              	.LBE406:
- 1858              		.loc 3 1748 0
- 1859 0c91 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1859      80F1FFFF 
- 1860 0c99 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 1860      90F1FFFF 
- 1861 0ca1 F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 1861      80F1FFFF 
- 1862 0ca9 660FEFC1 		pxor	%xmm1, %xmm0
- 1863 0cad F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 1863      80F1FFFF 
- 1864 0cb5 488B8578 		movq	-3720(%rbp), %rax
- 1864      F1FFFF
- 1865 0cbc 4883C050 		addq	$80, %rax
- 1866 0cc0 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1866      80F1FFFF 
- 1867 0cc8 F30F7F00 		movdqu	%xmm0, (%rax)
- 1868 0ccc F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1868      80F1FFFF 
- 1869 0cd4 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 1869      E0F8FFFF 
- 1870              	.LBB426:
- 1871              	.LBB427:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 1872              		.loc 3 1673 0
- 1873 0cdc F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 1873      E0F8FFFF 
- 1874 0ce4 660F7F85 		movdqa	%xmm0, -3888(%rbp)
- 1874      D0F0FFFF 
- 1875 0cec 660F6F85 		movdqa	-3888(%rbp), %xmm0
- 1875      D0F0FFFF 
- 1876 0cf4 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 1876      00F9FFFF 
- 1877              	.LBB428:
- 1878              	.LBB429:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 1879              		.loc 1 852 0
- 1880 0cfc F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 1880      00F9FFFF 
- 1881 0d04 660F3ADF 		aeskeygenassist	$32, %xmm0, %xmm0
- 1881      C020
- 1882              	.LBE429:
- 1883              	.LBE428:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 1884              		.loc 3 1674 0
- 1885 0d0a 660F7F85 		movdqa	%xmm0, -3888(%rbp)
- 1885      D0F0FFFF 
- 1886 0d12 660F6F85 		movdqa	-3888(%rbp), %xmm0
- 1886      D0F0FFFF 
- 1887 0d1a F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 1887      10F9FFFF 
- 1888 0d22 F30F6F85 		movdqu	-1776(%rbp), %xmm0
- 1888      10F9FFFF 
- 1889 0d2a F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 1889      30F9FFFF 
- 1890              	.LBB430:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 90
-
-
- 1891              	.LBB431:
- 1892              	.LBB432:
- 1893              	.LBB433:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1894              		.loc 1 450 0
- 1895 0d32 F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 1895      30F9FFFF 
- 1896 0d3a 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1896      FF
- 1897              	.LBE433:
- 1898              	.LBE432:
- 1899              	.LBE431:
- 1900              	.LBE430:
- 1901              	.LBE427:
- 1902              	.LBE426:
-1749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x20,6);
- 1903              		.loc 3 1749 0
- 1904 0d3f F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 1904      90F1FFFF 
- 1905 0d47 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 1905      80F1FFFF 
- 1906 0d4f F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 1906      40F9FFFF 
- 1907              	.LBB434:
- 1908              	.LBB435:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1909              		.loc 3 1565 0
- 1910 0d57 F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 1910      40F9FFFF 
- 1911 0d5f 660F7F85 		movdqa	%xmm0, -3872(%rbp)
- 1911      E0F0FFFF 
- 1912 0d67 660F6F85 		movdqa	-3872(%rbp), %xmm0
- 1912      E0F0FFFF 
- 1913 0d6f F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 1913      50F9FFFF 
- 1914              	.LBB436:
- 1915              	.LBB437:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1916              		.loc 3 1278 0
- 1917 0d77 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1917      00000000 
- 1918 0d7f F30F6F8D 		movdqu	-1712(%rbp), %xmm1
- 1918      50F9FFFF 
- 1919 0d87 F30F7F8D 		movdqu	%xmm1, -1680(%rbp)
- 1919      70F9FFFF 
- 1920 0d8f F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 1920      60F9FFFF 
- 1921 0d97 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 1921      70F9FFFF 
- 1922 0d9f F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 1922      90F9FFFF 
- 1923 0da7 F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 1923      60F9FFFF 
- 1924 0daf F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 1924      80F9FFFF 
- 1925              	.LBB438:
- 1926              	.LBB439:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 91
-
-
- 1927              	.LBB440:
- 1928              	.LBB441:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1929              		.loc 1 529 0
- 1930 0db7 F30F6F8D 		movdqu	-1664(%rbp), %xmm1
- 1930      80F9FFFF 
- 1931 0dbf F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 1931      90F9FFFF 
- 1932 0dc7 660F3800 		pshufb	%xmm1, %xmm0
- 1932      C1
- 1933              	.LBE441:
- 1934              	.LBE440:
- 1935              	.LBE439:
- 1936              	.LBE438:
- 1937              	.LBE437:
- 1938              	.LBE436:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1939              		.loc 3 1567 0
- 1940 0dcc 660F7F85 		movdqa	%xmm0, -3872(%rbp)
- 1940      E0F0FFFF 
- 1941 0dd4 660F6F85 		movdqa	-3872(%rbp), %xmm0
- 1941      E0F0FFFF 
- 1942 0ddc 660FEF85 		pxor	-1728(%rbp), %xmm0
- 1942      40F9FFFF 
- 1943 0de4 F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 1943      40F9FFFF 
- 1944 0dec 660F6F85 		movdqa	-3872(%rbp), %xmm0
- 1944      E0F0FFFF 
- 1945 0df4 F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 1945      A0F9FFFF 
- 1946              	.LBB442:
- 1947              	.LBB443:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1948              		.loc 3 1278 0
- 1949 0dfc 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1949      00000000 
- 1950 0e04 F30F6F8D 		movdqu	-1632(%rbp), %xmm1
- 1950      A0F9FFFF 
- 1951 0e0c F30F7F8D 		movdqu	%xmm1, -1600(%rbp)
- 1951      C0F9FFFF 
- 1952 0e14 F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 1952      B0F9FFFF 
- 1953 0e1c F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 1953      C0F9FFFF 
- 1954 0e24 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 1954      E0F9FFFF 
- 1955 0e2c F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 1955      B0F9FFFF 
- 1956 0e34 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 1956      D0F9FFFF 
- 1957              	.LBB444:
- 1958              	.LBB445:
- 1959              	.LBB446:
- 1960              	.LBB447:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1961              		.loc 1 529 0
- 1962 0e3c F30F6F8D 		movdqu	-1584(%rbp), %xmm1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 92
-
-
- 1962      D0F9FFFF 
- 1963 0e44 F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 1963      E0F9FFFF 
- 1964 0e4c 660F3800 		pshufb	%xmm1, %xmm0
- 1964      C1
- 1965              	.LBE447:
- 1966              	.LBE446:
- 1967              	.LBE445:
- 1968              	.LBE444:
- 1969              	.LBE443:
- 1970              	.LBE442:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1971              		.loc 3 1568 0
- 1972 0e51 660F7F85 		movdqa	%xmm0, -3872(%rbp)
- 1972      E0F0FFFF 
- 1973 0e59 660F6F85 		movdqa	-3872(%rbp), %xmm0
- 1973      E0F0FFFF 
- 1974 0e61 660FEF85 		pxor	-1728(%rbp), %xmm0
- 1974      40F9FFFF 
- 1975 0e69 F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 1975      40F9FFFF 
- 1976 0e71 660F6F85 		movdqa	-3872(%rbp), %xmm0
- 1976      E0F0FFFF 
- 1977 0e79 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 1977      F0F9FFFF 
- 1978              	.LBB448:
- 1979              	.LBB449:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1980              		.loc 3 1278 0
- 1981 0e81 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 1981      00000000 
- 1982 0e89 F30F6F8D 		movdqu	-1552(%rbp), %xmm1
- 1982      F0F9FFFF 
- 1983 0e91 F30F7F8D 		movdqu	%xmm1, -1520(%rbp)
- 1983      10FAFFFF 
- 1984 0e99 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 1984      00FAFFFF 
- 1985 0ea1 F30F6F85 		movdqu	-1520(%rbp), %xmm0
- 1985      10FAFFFF 
- 1986 0ea9 F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 1986      30FAFFFF 
- 1987 0eb1 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 1987      00FAFFFF 
- 1988 0eb9 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 1988      20FAFFFF 
- 1989              	.LBB450:
- 1990              	.LBB451:
- 1991              	.LBB452:
- 1992              	.LBB453:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1993              		.loc 1 529 0
- 1994 0ec1 F30F6F8D 		movdqu	-1504(%rbp), %xmm1
- 1994      20FAFFFF 
- 1995 0ec9 F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 1995      30FAFFFF 
- 1996 0ed1 660F3800 		pshufb	%xmm1, %xmm0
- 1996      C1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 93
-
-
- 1997              	.LBE453:
- 1998              	.LBE452:
- 1999              	.LBE451:
- 2000              	.LBE450:
- 2001              	.LBE449:
- 2002              	.LBE448:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2003              		.loc 3 1569 0
- 2004 0ed6 660F7F85 		movdqa	%xmm0, -3872(%rbp)
- 2004      E0F0FFFF 
- 2005 0ede 660F6F85 		movdqa	-3872(%rbp), %xmm0
- 2005      E0F0FFFF 
- 2006 0ee6 660FEF85 		pxor	-1728(%rbp), %xmm0
- 2006      40F9FFFF 
- 2007 0eee F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 2007      40F9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2008              		.loc 3 1571 0
- 2009 0ef6 F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 2009      40F9FFFF 
- 2010              	.LBE435:
- 2011              	.LBE434:
- 2012              		.loc 3 1749 0
- 2013 0efe F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2013      80F1FFFF 
- 2014 0f06 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 2014      90F1FFFF 
- 2015 0f0e F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 2015      80F1FFFF 
- 2016 0f16 660FEFC1 		pxor	%xmm1, %xmm0
- 2017 0f1a F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2017      80F1FFFF 
- 2018 0f22 488B8578 		movq	-3720(%rbp), %rax
- 2018      F1FFFF
- 2019 0f29 4883C060 		addq	$96, %rax
- 2020 0f2d F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2020      80F1FFFF 
- 2021 0f35 F30F7F00 		movdqu	%xmm0, (%rax)
- 2022 0f39 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2022      80F1FFFF 
- 2023 0f41 F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 2023      50FAFFFF 
- 2024              	.LBB454:
- 2025              	.LBB455:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 2026              		.loc 3 1673 0
- 2027 0f49 F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 2027      50FAFFFF 
- 2028 0f51 660F7F85 		movdqa	%xmm0, -3856(%rbp)
- 2028      F0F0FFFF 
- 2029 0f59 660F6F85 		movdqa	-3856(%rbp), %xmm0
- 2029      F0F0FFFF 
- 2030 0f61 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 2030      70FAFFFF 
- 2031              	.LBB456:
- 2032              	.LBB457:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
-
GAS LISTING /tmp/ccPaCTqg.s 			page 94
-
-
- 2033              		.loc 1 852 0
- 2034 0f69 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 2034      70FAFFFF 
- 2035 0f71 660F3ADF 		aeskeygenassist	$64, %xmm0, %xmm0
- 2035      C040
- 2036              	.LBE457:
- 2037              	.LBE456:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 2038              		.loc 3 1674 0
- 2039 0f77 660F7F85 		movdqa	%xmm0, -3856(%rbp)
- 2039      F0F0FFFF 
- 2040 0f7f 660F6F85 		movdqa	-3856(%rbp), %xmm0
- 2040      F0F0FFFF 
- 2041 0f87 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 2041      80FAFFFF 
- 2042 0f8f F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 2042      80FAFFFF 
- 2043 0f97 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 2043      A0FAFFFF 
- 2044              	.LBB458:
- 2045              	.LBB459:
- 2046              	.LBB460:
- 2047              	.LBB461:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 2048              		.loc 1 450 0
- 2049 0f9f F30F6F85 		movdqu	-1376(%rbp), %xmm0
- 2049      A0FAFFFF 
- 2050 0fa7 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 2050      FF
- 2051              	.LBE461:
- 2052              	.LBE460:
- 2053              	.LBE459:
- 2054              	.LBE458:
- 2055              	.LBE455:
- 2056              	.LBE454:
-1750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x40,7);
- 2057              		.loc 3 1750 0
- 2058 0fac F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 2058      90F1FFFF 
- 2059 0fb4 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2059      80F1FFFF 
- 2060 0fbc F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 2060      B0FAFFFF 
- 2061              	.LBB462:
- 2062              	.LBB463:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2063              		.loc 3 1565 0
- 2064 0fc4 F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 2064      B0FAFFFF 
- 2065 0fcc 660F7F85 		movdqa	%xmm0, -3840(%rbp)
- 2065      00F1FFFF 
- 2066 0fd4 660F6F85 		movdqa	-3840(%rbp), %xmm0
- 2066      00F1FFFF 
- 2067 0fdc F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 2067      C0FAFFFF 
- 2068              	.LBB464:
- 2069              	.LBB465:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 95
-
-
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2070              		.loc 3 1278 0
- 2071 0fe4 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2071      00000000 
- 2072 0fec F30F6F8D 		movdqu	-1344(%rbp), %xmm1
- 2072      C0FAFFFF 
- 2073 0ff4 F30F7F8D 		movdqu	%xmm1, -1312(%rbp)
- 2073      E0FAFFFF 
- 2074 0ffc F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 2074      D0FAFFFF 
- 2075 1004 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 2075      E0FAFFFF 
- 2076 100c F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 2076      00FBFFFF 
- 2077 1014 F30F6F85 		movdqu	-1328(%rbp), %xmm0
- 2077      D0FAFFFF 
- 2078 101c F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 2078      F0FAFFFF 
- 2079              	.LBB466:
- 2080              	.LBB467:
- 2081              	.LBB468:
- 2082              	.LBB469:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2083              		.loc 1 529 0
- 2084 1024 F30F6F8D 		movdqu	-1296(%rbp), %xmm1
- 2084      F0FAFFFF 
- 2085 102c F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 2085      00FBFFFF 
- 2086 1034 660F3800 		pshufb	%xmm1, %xmm0
- 2086      C1
- 2087              	.LBE469:
- 2088              	.LBE468:
- 2089              	.LBE467:
- 2090              	.LBE466:
- 2091              	.LBE465:
- 2092              	.LBE464:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2093              		.loc 3 1567 0
- 2094 1039 660F7F85 		movdqa	%xmm0, -3840(%rbp)
- 2094      00F1FFFF 
- 2095 1041 660F6F85 		movdqa	-3840(%rbp), %xmm0
- 2095      00F1FFFF 
- 2096 1049 660FEF85 		pxor	-1360(%rbp), %xmm0
- 2096      B0FAFFFF 
- 2097 1051 F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 2097      B0FAFFFF 
- 2098 1059 660F6F85 		movdqa	-3840(%rbp), %xmm0
- 2098      00F1FFFF 
- 2099 1061 F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 2099      10FBFFFF 
- 2100              	.LBB470:
- 2101              	.LBB471:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2102              		.loc 3 1278 0
- 2103 1069 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2103      00000000 
- 2104 1071 F30F6F8D 		movdqu	-1264(%rbp), %xmm1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 96
-
-
- 2104      10FBFFFF 
- 2105 1079 F30F7F8D 		movdqu	%xmm1, -1232(%rbp)
- 2105      30FBFFFF 
- 2106 1081 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 2106      20FBFFFF 
- 2107 1089 F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 2107      30FBFFFF 
- 2108 1091 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 2108      50FBFFFF 
- 2109 1099 F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 2109      20FBFFFF 
- 2110 10a1 F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 2110      40FBFFFF 
- 2111              	.LBB472:
- 2112              	.LBB473:
- 2113              	.LBB474:
- 2114              	.LBB475:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2115              		.loc 1 529 0
- 2116 10a9 F30F6F8D 		movdqu	-1216(%rbp), %xmm1
- 2116      40FBFFFF 
- 2117 10b1 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 2117      50FBFFFF 
- 2118 10b9 660F3800 		pshufb	%xmm1, %xmm0
- 2118      C1
- 2119              	.LBE475:
- 2120              	.LBE474:
- 2121              	.LBE473:
- 2122              	.LBE472:
- 2123              	.LBE471:
- 2124              	.LBE470:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2125              		.loc 3 1568 0
- 2126 10be 660F7F85 		movdqa	%xmm0, -3840(%rbp)
- 2126      00F1FFFF 
- 2127 10c6 660F6F85 		movdqa	-3840(%rbp), %xmm0
- 2127      00F1FFFF 
- 2128 10ce 660FEF85 		pxor	-1360(%rbp), %xmm0
- 2128      B0FAFFFF 
- 2129 10d6 F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 2129      B0FAFFFF 
- 2130 10de 660F6F85 		movdqa	-3840(%rbp), %xmm0
- 2130      00F1FFFF 
- 2131 10e6 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 2131      60FBFFFF 
- 2132              	.LBB476:
- 2133              	.LBB477:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2134              		.loc 3 1278 0
- 2135 10ee 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2135      00000000 
- 2136 10f6 F30F6F8D 		movdqu	-1184(%rbp), %xmm1
- 2136      60FBFFFF 
- 2137 10fe F30F7F8D 		movdqu	%xmm1, -1152(%rbp)
- 2137      80FBFFFF 
- 2138 1106 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 2138      70FBFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 97
-
-
- 2139 110e F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 2139      80FBFFFF 
- 2140 1116 F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 2140      A0FBFFFF 
- 2141 111e F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 2141      70FBFFFF 
- 2142 1126 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 2142      90FBFFFF 
- 2143              	.LBB478:
- 2144              	.LBB479:
- 2145              	.LBB480:
- 2146              	.LBB481:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2147              		.loc 1 529 0
- 2148 112e F30F6F8D 		movdqu	-1136(%rbp), %xmm1
- 2148      90FBFFFF 
- 2149 1136 F30F6F85 		movdqu	-1120(%rbp), %xmm0
- 2149      A0FBFFFF 
- 2150 113e 660F3800 		pshufb	%xmm1, %xmm0
- 2150      C1
- 2151              	.LBE481:
- 2152              	.LBE480:
- 2153              	.LBE479:
- 2154              	.LBE478:
- 2155              	.LBE477:
- 2156              	.LBE476:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2157              		.loc 3 1569 0
- 2158 1143 660F7F85 		movdqa	%xmm0, -3840(%rbp)
- 2158      00F1FFFF 
- 2159 114b 660F6F85 		movdqa	-3840(%rbp), %xmm0
- 2159      00F1FFFF 
- 2160 1153 660FEF85 		pxor	-1360(%rbp), %xmm0
- 2160      B0FAFFFF 
- 2161 115b F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 2161      B0FAFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2162              		.loc 3 1571 0
- 2163 1163 F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 2163      B0FAFFFF 
- 2164              	.LBE463:
- 2165              	.LBE462:
- 2166              		.loc 3 1750 0
- 2167 116b F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2167      80F1FFFF 
- 2168 1173 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 2168      90F1FFFF 
- 2169 117b F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 2169      80F1FFFF 
- 2170 1183 660FEFC1 		pxor	%xmm1, %xmm0
- 2171 1187 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2171      80F1FFFF 
- 2172 118f 488B8578 		movq	-3720(%rbp), %rax
- 2172      F1FFFF
- 2173 1196 4883C070 		addq	$112, %rax
- 2174 119a F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2174      80F1FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 98
-
-
- 2175 11a2 F30F7F00 		movdqu	%xmm0, (%rax)
- 2176 11a6 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2176      80F1FFFF 
- 2177 11ae F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 2177      C0FBFFFF 
- 2178              	.LBB482:
- 2179              	.LBB483:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 2180              		.loc 3 1673 0
- 2181 11b6 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 2181      C0FBFFFF 
- 2182 11be 660F7F85 		movdqa	%xmm0, -3824(%rbp)
- 2182      10F1FFFF 
- 2183 11c6 660F6F85 		movdqa	-3824(%rbp), %xmm0
- 2183      10F1FFFF 
- 2184 11ce F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 2184      E0FBFFFF 
- 2185              	.LBB484:
- 2186              	.LBB485:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 2187              		.loc 1 852 0
- 2188 11d6 F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 2188      E0FBFFFF 
- 2189 11de 660F3ADF 		aeskeygenassist	$128, %xmm0, %xmm0
- 2189      C080
- 2190              	.LBE485:
- 2191              	.LBE484:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 2192              		.loc 3 1674 0
- 2193 11e4 660F7F85 		movdqa	%xmm0, -3824(%rbp)
- 2193      10F1FFFF 
- 2194 11ec 660F6F85 		movdqa	-3824(%rbp), %xmm0
- 2194      10F1FFFF 
- 2195 11f4 F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 2195      F0FBFFFF 
- 2196 11fc F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 2196      F0FBFFFF 
- 2197 1204 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 2197      10FCFFFF 
- 2198              	.LBB486:
- 2199              	.LBB487:
- 2200              	.LBB488:
- 2201              	.LBB489:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 2202              		.loc 1 450 0
- 2203 120c F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 2203      10FCFFFF 
- 2204 1214 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 2204      FF
- 2205              	.LBE489:
- 2206              	.LBE488:
- 2207              	.LBE487:
- 2208              	.LBE486:
- 2209              	.LBE483:
- 2210              	.LBE482:
-1751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x80,8);
- 2211              		.loc 3 1751 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 99
-
-
- 2212 1219 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 2212      90F1FFFF 
- 2213 1221 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2213      80F1FFFF 
- 2214 1229 F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 2214      20FCFFFF 
- 2215              	.LBB490:
- 2216              	.LBB491:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2217              		.loc 3 1565 0
- 2218 1231 F30F6F85 		movdqu	-992(%rbp), %xmm0
- 2218      20FCFFFF 
- 2219 1239 660F7F85 		movdqa	%xmm0, -3808(%rbp)
- 2219      20F1FFFF 
- 2220 1241 660F6F85 		movdqa	-3808(%rbp), %xmm0
- 2220      20F1FFFF 
- 2221 1249 F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 2221      30FCFFFF 
- 2222              	.LBB492:
- 2223              	.LBB493:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2224              		.loc 3 1278 0
- 2225 1251 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2225      00000000 
- 2226 1259 F30F6F8D 		movdqu	-976(%rbp), %xmm1
- 2226      30FCFFFF 
- 2227 1261 F30F7F8D 		movdqu	%xmm1, -944(%rbp)
- 2227      50FCFFFF 
- 2228 1269 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 2228      40FCFFFF 
- 2229 1271 F30F6F85 		movdqu	-944(%rbp), %xmm0
- 2229      50FCFFFF 
- 2230 1279 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 2230      70FCFFFF 
- 2231 1281 F30F6F85 		movdqu	-960(%rbp), %xmm0
- 2231      40FCFFFF 
- 2232 1289 F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 2232      60FCFFFF 
- 2233              	.LBB494:
- 2234              	.LBB495:
- 2235              	.LBB496:
- 2236              	.LBB497:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2237              		.loc 1 529 0
- 2238 1291 F30F6F8D 		movdqu	-928(%rbp), %xmm1
- 2238      60FCFFFF 
- 2239 1299 F30F6F85 		movdqu	-912(%rbp), %xmm0
- 2239      70FCFFFF 
- 2240 12a1 660F3800 		pshufb	%xmm1, %xmm0
- 2240      C1
- 2241              	.LBE497:
- 2242              	.LBE496:
- 2243              	.LBE495:
- 2244              	.LBE494:
- 2245              	.LBE493:
- 2246              	.LBE492:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 100
-
-
- 2247              		.loc 3 1567 0
- 2248 12a6 660F7F85 		movdqa	%xmm0, -3808(%rbp)
- 2248      20F1FFFF 
- 2249 12ae 660F6F85 		movdqa	-3808(%rbp), %xmm0
- 2249      20F1FFFF 
- 2250 12b6 660FEF85 		pxor	-992(%rbp), %xmm0
- 2250      20FCFFFF 
- 2251 12be F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 2251      20FCFFFF 
- 2252 12c6 660F6F85 		movdqa	-3808(%rbp), %xmm0
- 2252      20F1FFFF 
- 2253 12ce F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 2253      80FCFFFF 
- 2254              	.LBB498:
- 2255              	.LBB499:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2256              		.loc 3 1278 0
- 2257 12d6 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2257      00000000 
- 2258 12de F30F6F8D 		movdqu	-896(%rbp), %xmm1
- 2258      80FCFFFF 
- 2259 12e6 F30F7F8D 		movdqu	%xmm1, -864(%rbp)
- 2259      A0FCFFFF 
- 2260 12ee F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 2260      90FCFFFF 
- 2261 12f6 F30F6F85 		movdqu	-864(%rbp), %xmm0
- 2261      A0FCFFFF 
- 2262 12fe F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 2262      C0FCFFFF 
- 2263 1306 F30F6F85 		movdqu	-880(%rbp), %xmm0
- 2263      90FCFFFF 
- 2264 130e F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 2264      B0FCFFFF 
- 2265              	.LBB500:
- 2266              	.LBB501:
- 2267              	.LBB502:
- 2268              	.LBB503:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2269              		.loc 1 529 0
- 2270 1316 F30F6F8D 		movdqu	-848(%rbp), %xmm1
- 2270      B0FCFFFF 
- 2271 131e F30F6F85 		movdqu	-832(%rbp), %xmm0
- 2271      C0FCFFFF 
- 2272 1326 660F3800 		pshufb	%xmm1, %xmm0
- 2272      C1
- 2273              	.LBE503:
- 2274              	.LBE502:
- 2275              	.LBE501:
- 2276              	.LBE500:
- 2277              	.LBE499:
- 2278              	.LBE498:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2279              		.loc 3 1568 0
- 2280 132b 660F7F85 		movdqa	%xmm0, -3808(%rbp)
- 2280      20F1FFFF 
- 2281 1333 660F6F85 		movdqa	-3808(%rbp), %xmm0
- 2281      20F1FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 101
-
-
- 2282 133b 660FEF85 		pxor	-992(%rbp), %xmm0
- 2282      20FCFFFF 
- 2283 1343 F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 2283      20FCFFFF 
- 2284 134b 660F6F85 		movdqa	-3808(%rbp), %xmm0
- 2284      20F1FFFF 
- 2285 1353 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 2285      D0FCFFFF 
- 2286              	.LBB504:
- 2287              	.LBB505:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2288              		.loc 3 1278 0
- 2289 135b 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2289      00000000 
- 2290 1363 F30F6F8D 		movdqu	-816(%rbp), %xmm1
- 2290      D0FCFFFF 
- 2291 136b F30F7F8D 		movdqu	%xmm1, -784(%rbp)
- 2291      F0FCFFFF 
- 2292 1373 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 2292      E0FCFFFF 
- 2293 137b F30F6F85 		movdqu	-784(%rbp), %xmm0
- 2293      F0FCFFFF 
- 2294 1383 F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 2294      10FDFFFF 
- 2295 138b F30F6F85 		movdqu	-800(%rbp), %xmm0
- 2295      E0FCFFFF 
- 2296 1393 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 2296      00FDFFFF 
- 2297              	.LBB506:
- 2298              	.LBB507:
- 2299              	.LBB508:
- 2300              	.LBB509:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2301              		.loc 1 529 0
- 2302 139b F30F6F8D 		movdqu	-768(%rbp), %xmm1
- 2302      00FDFFFF 
- 2303 13a3 F30F6F85 		movdqu	-752(%rbp), %xmm0
- 2303      10FDFFFF 
- 2304 13ab 660F3800 		pshufb	%xmm1, %xmm0
- 2304      C1
- 2305              	.LBE509:
- 2306              	.LBE508:
- 2307              	.LBE507:
- 2308              	.LBE506:
- 2309              	.LBE505:
- 2310              	.LBE504:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2311              		.loc 3 1569 0
- 2312 13b0 660F7F85 		movdqa	%xmm0, -3808(%rbp)
- 2312      20F1FFFF 
- 2313 13b8 660F6F85 		movdqa	-3808(%rbp), %xmm0
- 2313      20F1FFFF 
- 2314 13c0 660FEF85 		pxor	-992(%rbp), %xmm0
- 2314      20FCFFFF 
- 2315 13c8 F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 2315      20FCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 102
-
-
- 2316              		.loc 3 1571 0
- 2317 13d0 F30F6F85 		movdqu	-992(%rbp), %xmm0
- 2317      20FCFFFF 
- 2318              	.LBE491:
- 2319              	.LBE490:
- 2320              		.loc 3 1751 0
- 2321 13d8 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2321      80F1FFFF 
- 2322 13e0 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 2322      90F1FFFF 
- 2323 13e8 F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 2323      80F1FFFF 
- 2324 13f0 660FEFC1 		pxor	%xmm1, %xmm0
- 2325 13f4 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2325      80F1FFFF 
- 2326 13fc 488B8578 		movq	-3720(%rbp), %rax
- 2326      F1FFFF
- 2327 1403 4883E880 		subq	$-128, %rax
- 2328 1407 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2328      80F1FFFF 
- 2329 140f F30F7F00 		movdqu	%xmm0, (%rax)
- 2330 1413 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2330      80F1FFFF 
- 2331 141b F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 2331      30FDFFFF 
- 2332              	.LBB510:
- 2333              	.LBB511:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 2334              		.loc 3 1673 0
- 2335 1423 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 2335      30FDFFFF 
- 2336 142b 660F7F85 		movdqa	%xmm0, -3792(%rbp)
- 2336      30F1FFFF 
- 2337 1433 660F6F85 		movdqa	-3792(%rbp), %xmm0
- 2337      30F1FFFF 
- 2338 143b F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 2338      50FDFFFF 
- 2339              	.LBB512:
- 2340              	.LBB513:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 2341              		.loc 1 852 0
- 2342 1443 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 2342      50FDFFFF 
- 2343 144b 660F3ADF 		aeskeygenassist	$27, %xmm0, %xmm0
- 2343      C01B
- 2344              	.LBE513:
- 2345              	.LBE512:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 2346              		.loc 3 1674 0
- 2347 1451 660F7F85 		movdqa	%xmm0, -3792(%rbp)
- 2347      30F1FFFF 
- 2348 1459 660F6F85 		movdqa	-3792(%rbp), %xmm0
- 2348      30F1FFFF 
- 2349 1461 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 2349      60FDFFFF 
- 2350 1469 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 2350      60FDFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 103
-
-
- 2351 1471 F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 2351      80FDFFFF 
- 2352              	.LBB514:
- 2353              	.LBB515:
- 2354              	.LBB516:
- 2355              	.LBB517:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 2356              		.loc 1 450 0
- 2357 1479 F30F6F85 		movdqu	-640(%rbp), %xmm0
- 2357      80FDFFFF 
- 2358 1481 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 2358      FF
- 2359              	.LBE517:
- 2360              	.LBE516:
- 2361              	.LBE515:
- 2362              	.LBE514:
- 2363              	.LBE511:
- 2364              	.LBE510:
-1752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x1B,9);
- 2365              		.loc 3 1752 0
- 2366 1486 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 2366      90F1FFFF 
- 2367 148e F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2367      80F1FFFF 
- 2368 1496 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 2368      90FDFFFF 
- 2369              	.LBB518:
- 2370              	.LBB519:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2371              		.loc 3 1565 0
- 2372 149e F30F6F85 		movdqu	-624(%rbp), %xmm0
- 2372      90FDFFFF 
- 2373 14a6 660F7F85 		movdqa	%xmm0, -3776(%rbp)
- 2373      40F1FFFF 
- 2374 14ae 660F6F85 		movdqa	-3776(%rbp), %xmm0
- 2374      40F1FFFF 
- 2375 14b6 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 2375      A0FDFFFF 
- 2376              	.LBB520:
- 2377              	.LBB521:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2378              		.loc 3 1278 0
- 2379 14be 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2379      00000000 
- 2380 14c6 F30F6F8D 		movdqu	-608(%rbp), %xmm1
- 2380      A0FDFFFF 
- 2381 14ce F30F7F8D 		movdqu	%xmm1, -576(%rbp)
- 2381      C0FDFFFF 
- 2382 14d6 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 2382      B0FDFFFF 
- 2383 14de F30F6F85 		movdqu	-576(%rbp), %xmm0
- 2383      C0FDFFFF 
- 2384 14e6 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 2384      E0FDFFFF 
- 2385 14ee F30F6F85 		movdqu	-592(%rbp), %xmm0
- 2385      B0FDFFFF 
- 2386 14f6 F30F7F85 		movdqu	%xmm0, -560(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 104
-
-
- 2386      D0FDFFFF 
- 2387              	.LBB522:
- 2388              	.LBB523:
- 2389              	.LBB524:
- 2390              	.LBB525:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2391              		.loc 1 529 0
- 2392 14fe F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 2392      D0FDFFFF 
- 2393 1506 F30F6F85 		movdqu	-544(%rbp), %xmm0
- 2393      E0FDFFFF 
- 2394 150e 660F3800 		pshufb	%xmm1, %xmm0
- 2394      C1
- 2395              	.LBE525:
- 2396              	.LBE524:
- 2397              	.LBE523:
- 2398              	.LBE522:
- 2399              	.LBE521:
- 2400              	.LBE520:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2401              		.loc 3 1567 0
- 2402 1513 660F7F85 		movdqa	%xmm0, -3776(%rbp)
- 2402      40F1FFFF 
- 2403 151b 660F6F85 		movdqa	-3776(%rbp), %xmm0
- 2403      40F1FFFF 
- 2404 1523 660FEF85 		pxor	-624(%rbp), %xmm0
- 2404      90FDFFFF 
- 2405 152b F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 2405      90FDFFFF 
- 2406 1533 660F6F85 		movdqa	-3776(%rbp), %xmm0
- 2406      40F1FFFF 
- 2407 153b F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 2407      F0FDFFFF 
- 2408              	.LBB526:
- 2409              	.LBB527:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2410              		.loc 3 1278 0
- 2411 1543 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2411      00000000 
- 2412 154b F30F6F8D 		movdqu	-528(%rbp), %xmm1
- 2412      F0FDFFFF 
- 2413 1553 F30F7F8D 		movdqu	%xmm1, -496(%rbp)
- 2413      10FEFFFF 
- 2414 155b F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 2414      00FEFFFF 
- 2415 1563 F30F6F85 		movdqu	-496(%rbp), %xmm0
- 2415      10FEFFFF 
- 2416 156b F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 2416      30FEFFFF 
- 2417 1573 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 2417      00FEFFFF 
- 2418 157b F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 2418      20FEFFFF 
- 2419              	.LBB528:
- 2420              	.LBB529:
- 2421              	.LBB530:
- 2422              	.LBB531:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 105
-
-
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2423              		.loc 1 529 0
- 2424 1583 F30F6F8D 		movdqu	-480(%rbp), %xmm1
- 2424      20FEFFFF 
- 2425 158b F30F6F85 		movdqu	-464(%rbp), %xmm0
- 2425      30FEFFFF 
- 2426 1593 660F3800 		pshufb	%xmm1, %xmm0
- 2426      C1
- 2427              	.LBE531:
- 2428              	.LBE530:
- 2429              	.LBE529:
- 2430              	.LBE528:
- 2431              	.LBE527:
- 2432              	.LBE526:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2433              		.loc 3 1568 0
- 2434 1598 660F7F85 		movdqa	%xmm0, -3776(%rbp)
- 2434      40F1FFFF 
- 2435 15a0 660F6F85 		movdqa	-3776(%rbp), %xmm0
- 2435      40F1FFFF 
- 2436 15a8 660FEF85 		pxor	-624(%rbp), %xmm0
- 2436      90FDFFFF 
- 2437 15b0 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 2437      90FDFFFF 
- 2438 15b8 660F6F85 		movdqa	-3776(%rbp), %xmm0
- 2438      40F1FFFF 
- 2439 15c0 F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 2439      40FEFFFF 
- 2440              	.LBB532:
- 2441              	.LBB533:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2442              		.loc 3 1278 0
- 2443 15c8 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2443      00000000 
- 2444 15d0 F30F6F8D 		movdqu	-448(%rbp), %xmm1
- 2444      40FEFFFF 
- 2445 15d8 F30F7F8D 		movdqu	%xmm1, -416(%rbp)
- 2445      60FEFFFF 
- 2446 15e0 F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 2446      50FEFFFF 
- 2447 15e8 F30F6F85 		movdqu	-416(%rbp), %xmm0
- 2447      60FEFFFF 
- 2448 15f0 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 2448      80FEFFFF 
- 2449 15f8 F30F6F85 		movdqu	-432(%rbp), %xmm0
- 2449      50FEFFFF 
- 2450 1600 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 2450      70FEFFFF 
- 2451              	.LBB534:
- 2452              	.LBB535:
- 2453              	.LBB536:
- 2454              	.LBB537:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2455              		.loc 1 529 0
- 2456 1608 F30F6F8D 		movdqu	-400(%rbp), %xmm1
- 2456      70FEFFFF 
- 2457 1610 F30F6F85 		movdqu	-384(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 106
-
-
- 2457      80FEFFFF 
- 2458 1618 660F3800 		pshufb	%xmm1, %xmm0
- 2458      C1
- 2459              	.LBE537:
- 2460              	.LBE536:
- 2461              	.LBE535:
- 2462              	.LBE534:
- 2463              	.LBE533:
- 2464              	.LBE532:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2465              		.loc 3 1569 0
- 2466 161d 660F7F85 		movdqa	%xmm0, -3776(%rbp)
- 2466      40F1FFFF 
- 2467 1625 660F6F85 		movdqa	-3776(%rbp), %xmm0
- 2467      40F1FFFF 
- 2468 162d 660FEF85 		pxor	-624(%rbp), %xmm0
- 2468      90FDFFFF 
- 2469 1635 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 2469      90FDFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2470              		.loc 3 1571 0
- 2471 163d F30F6F85 		movdqu	-624(%rbp), %xmm0
- 2471      90FDFFFF 
- 2472              	.LBE519:
- 2473              	.LBE518:
- 2474              		.loc 3 1752 0
- 2475 1645 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2475      80F1FFFF 
- 2476 164d F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 2476      90F1FFFF 
- 2477 1655 F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 2477      80F1FFFF 
- 2478 165d 660FEFC1 		pxor	%xmm1, %xmm0
- 2479 1661 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2479      80F1FFFF 
- 2480 1669 488B8578 		movq	-3720(%rbp), %rax
- 2480      F1FFFF
- 2481 1670 48059000 		addq	$144, %rax
- 2481      0000
- 2482 1676 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2482      80F1FFFF 
- 2483 167e F30F7F00 		movdqu	%xmm0, (%rax)
- 2484 1682 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2484      80F1FFFF 
- 2485 168a F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 2485      A0FEFFFF 
- 2486              	.LBB538:
- 2487              	.LBB539:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 2488              		.loc 3 1673 0
- 2489 1692 F30F6F85 		movdqu	-352(%rbp), %xmm0
- 2489      A0FEFFFF 
- 2490 169a 660F7F85 		movdqa	%xmm0, -3760(%rbp)
- 2490      50F1FFFF 
- 2491 16a2 660F6F85 		movdqa	-3760(%rbp), %xmm0
- 2491      50F1FFFF 
- 2492 16aa F30F7F85 		movdqu	%xmm0, -320(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 107
-
-
- 2492      C0FEFFFF 
- 2493              	.LBB540:
- 2494              	.LBB541:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 2495              		.loc 1 852 0
- 2496 16b2 F30F6F85 		movdqu	-320(%rbp), %xmm0
- 2496      C0FEFFFF 
- 2497 16ba 660F3ADF 		aeskeygenassist	$54, %xmm0, %xmm0
- 2497      C036
- 2498              	.LBE541:
- 2499              	.LBE540:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 2500              		.loc 3 1674 0
- 2501 16c0 660F7F85 		movdqa	%xmm0, -3760(%rbp)
- 2501      50F1FFFF 
- 2502 16c8 660F6F85 		movdqa	-3760(%rbp), %xmm0
- 2502      50F1FFFF 
- 2503 16d0 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 2503      D0FEFFFF 
- 2504 16d8 F30F6F85 		movdqu	-304(%rbp), %xmm0
- 2504      D0FEFFFF 
- 2505 16e0 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 2505      F0FEFFFF 
- 2506              	.LBB542:
- 2507              	.LBB543:
- 2508              	.LBB544:
- 2509              	.LBB545:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 2510              		.loc 1 450 0
- 2511 16e8 F30F6F85 		movdqu	-272(%rbp), %xmm0
- 2511      F0FEFFFF 
- 2512 16f0 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 2512      FF
- 2513              	.LBE545:
- 2514              	.LBE544:
- 2515              	.LBE543:
- 2516              	.LBE542:
- 2517              	.LBE539:
- 2518              	.LBE538:
-1753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x36,10);
- 2519              		.loc 3 1753 0
- 2520 16f5 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 2520      90F1FFFF 
- 2521 16fd F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2521      80F1FFFF 
- 2522 1705 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 2522      00FFFFFF 
- 2523              	.LBB546:
- 2524              	.LBB547:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2525              		.loc 3 1565 0
- 2526 170d F30F6F85 		movdqu	-256(%rbp), %xmm0
- 2526      00FFFFFF 
- 2527 1715 660F7F85 		movdqa	%xmm0, -3744(%rbp)
- 2527      60F1FFFF 
- 2528 171d 660F6F85 		movdqa	-3744(%rbp), %xmm0
- 2528      60F1FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 108
-
-
- 2529 1725 F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 2529      10FFFFFF 
- 2530              	.LBB548:
- 2531              	.LBB549:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2532              		.loc 3 1278 0
- 2533 172d 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2533      00000000 
- 2534 1735 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 2534      10FFFFFF 
- 2535 173d F30F7F8D 		movdqu	%xmm1, -208(%rbp)
- 2535      30FFFFFF 
- 2536 1745 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 2536      20FFFFFF 
- 2537 174d F30F6F85 		movdqu	-208(%rbp), %xmm0
- 2537      30FFFFFF 
- 2538 1755 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 2538      50FFFFFF 
- 2539 175d F30F6F85 		movdqu	-224(%rbp), %xmm0
- 2539      20FFFFFF 
- 2540 1765 F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 2540      40FFFFFF 
- 2541              	.LBB550:
- 2542              	.LBB551:
- 2543              	.LBB552:
- 2544              	.LBB553:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2545              		.loc 1 529 0
- 2546 176d F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 2546      40FFFFFF 
- 2547 1775 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 2547      50FFFFFF 
- 2548 177d 660F3800 		pshufb	%xmm1, %xmm0
- 2548      C1
- 2549              	.LBE553:
- 2550              	.LBE552:
- 2551              	.LBE551:
- 2552              	.LBE550:
- 2553              	.LBE549:
- 2554              	.LBE548:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2555              		.loc 3 1567 0
- 2556 1782 660F7F85 		movdqa	%xmm0, -3744(%rbp)
- 2556      60F1FFFF 
- 2557 178a 660F6F85 		movdqa	-3744(%rbp), %xmm0
- 2557      60F1FFFF 
- 2558 1792 660FEF85 		pxor	-256(%rbp), %xmm0
- 2558      00FFFFFF 
- 2559 179a F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 2559      00FFFFFF 
- 2560 17a2 660F6F85 		movdqa	-3744(%rbp), %xmm0
- 2560      60F1FFFF 
- 2561 17aa F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 2561      60FFFFFF 
- 2562              	.LBB554:
- 2563              	.LBB555:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 109
-
-
- 2564              		.loc 3 1278 0
- 2565 17b2 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2565      00000000 
- 2566 17ba F30F6F8D 		movdqu	-160(%rbp), %xmm1
- 2566      60FFFFFF 
- 2567 17c2 F30F7F4D 		movdqu	%xmm1, -128(%rbp)
- 2567      80
- 2568 17c7 F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 2568      70FFFFFF 
- 2569 17cf F30F6F45 		movdqu	-128(%rbp), %xmm0
- 2569      80
- 2570 17d4 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 2570      A0
- 2571 17d9 F30F6F85 		movdqu	-144(%rbp), %xmm0
- 2571      70FFFFFF 
- 2572 17e1 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 2572      90
- 2573              	.LBB556:
- 2574              	.LBB557:
- 2575              	.LBB558:
- 2576              	.LBB559:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2577              		.loc 1 529 0
- 2578 17e6 F30F6F4D 		movdqu	-112(%rbp), %xmm1
- 2578      90
- 2579 17eb F30F6F45 		movdqu	-96(%rbp), %xmm0
- 2579      A0
- 2580 17f0 660F3800 		pshufb	%xmm1, %xmm0
- 2580      C1
- 2581              	.LBE559:
- 2582              	.LBE558:
- 2583              	.LBE557:
- 2584              	.LBE556:
- 2585              	.LBE555:
- 2586              	.LBE554:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2587              		.loc 3 1568 0
- 2588 17f5 660F7F85 		movdqa	%xmm0, -3744(%rbp)
- 2588      60F1FFFF 
- 2589 17fd 660F6F85 		movdqa	-3744(%rbp), %xmm0
- 2589      60F1FFFF 
- 2590 1805 660FEF85 		pxor	-256(%rbp), %xmm0
- 2590      00FFFFFF 
- 2591 180d F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 2591      00FFFFFF 
- 2592 1815 660F6F85 		movdqa	-3744(%rbp), %xmm0
- 2592      60F1FFFF 
- 2593 181d F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 2593      B0
- 2594              	.LBB560:
- 2595              	.LBB561:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2596              		.loc 3 1278 0
- 2597 1822 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2597      00000000 
- 2598 182a F30F6F4D 		movdqu	-80(%rbp), %xmm1
- 2598      B0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 110
-
-
- 2599 182f F30F7F4D 		movdqu	%xmm1, -48(%rbp)
- 2599      D0
- 2600 1834 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 2600      C0
- 2601 1839 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 2601      D0
- 2602 183e F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 2602      F0
- 2603 1843 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 2603      C0
- 2604 1848 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 2604      E0
- 2605              	.LBB562:
- 2606              	.LBB563:
- 2607              	.LBB564:
- 2608              	.LBB565:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2609              		.loc 1 529 0
- 2610 184d F30F6F4D 		movdqu	-32(%rbp), %xmm1
- 2610      E0
- 2611 1852 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 2611      F0
- 2612 1857 660F3800 		pshufb	%xmm1, %xmm0
- 2612      C1
- 2613              	.LBE565:
- 2614              	.LBE564:
- 2615              	.LBE563:
- 2616              	.LBE562:
- 2617              	.LBE561:
- 2618              	.LBE560:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2619              		.loc 3 1569 0
- 2620 185c 660F7F85 		movdqa	%xmm0, -3744(%rbp)
- 2620      60F1FFFF 
- 2621 1864 660F6F85 		movdqa	-3744(%rbp), %xmm0
- 2621      60F1FFFF 
- 2622 186c 660FEF85 		pxor	-256(%rbp), %xmm0
- 2622      00FFFFFF 
- 2623 1874 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 2623      00FFFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2624              		.loc 3 1571 0
- 2625 187c F30F6F85 		movdqu	-256(%rbp), %xmm0
- 2625      00FFFFFF 
- 2626              	.LBE547:
- 2627              	.LBE546:
- 2628              		.loc 3 1753 0
- 2629 1884 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2629      80F1FFFF 
- 2630 188c F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 2630      90F1FFFF 
- 2631 1894 F30F6F8D 		movdqu	-3712(%rbp), %xmm1
- 2631      80F1FFFF 
- 2632 189c 660FEFC1 		pxor	%xmm1, %xmm0
- 2633 18a0 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 2633      80F1FFFF 
- 2634 18a8 488B8578 		movq	-3720(%rbp), %rax
-
GAS LISTING /tmp/ccPaCTqg.s 			page 111
-
-
- 2634      F1FFFF
- 2635 18af 4805A000 		addq	$160, %rax
- 2635      0000
- 2636 18b5 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 2636      80F1FFFF 
- 2637 18bd F30F7F00 		movdqu	%xmm0, (%rax)
-1754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 2638              		.loc 3 1754 0
- 2639 18c1 C9       		leave
- 2640 18c2 C3       		ret
- 2641              		.cfi_endproc
- 2642              	.LFE656:
- 2643              		.size	KAESBlockCipherVecAesNiKeyExpansion128, .-KAESBlockCipherVecAesNiKeyExpansion128
- 2644              		.type	KAESBlockCipherVecAesNiKeyExpansion192, @function
- 2645              	KAESBlockCipherVecAesNiKeyExpansion192:
- 2646              	.LFB657:
-1755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion128) (CipherVec * w, const AESByte * key)
-1758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     OUTMSG(("\n\n\n%s: Not my code\n\n\n",__func__));
-1760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_128, AES_Nk_128);
-1761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion192) (CipherVec * round_keys, const AESByte * key)
-1768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 2647              		.loc 3 1768 0
- 2648              		.cfi_startproc
- 2649 18c3 55       		pushq	%rbp
- 2650              	.LCFI14:
- 2651              		.cfi_def_cfa_offset 16
- 2652 18c4 4889E5   		movq	%rsp, %rbp
- 2653              		.cfi_offset 6, -16
- 2654              	.LCFI15:
- 2655              		.cfi_def_cfa_register 6
- 2656 18c7 4881EC38 		subq	$6200, %rsp
- 2656      180000
- 2657 18ce 4889BD48 		movq	%rdi, -5816(%rbp)
- 2657      E9FFFF
- 2658 18d5 4889B540 		movq	%rsi, -5824(%rbp)
- 2658      E9FFFF
- 2659              		.loc 3 1768 0
- 2660 18dc 488B8540 		movq	-5824(%rbp), %rax
- 2660      E9FFFF
- 2661 18e3 48898550 		movq	%rax, -5808(%rbp)
- 2661      E9FFFF
- 2662              	.LBB1000:
- 2663              	.LBB1001:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 2664              		.loc 3 126 0
- 2665 18ea 488B8550 		movq	-5808(%rbp), %rax
- 2665      E9FFFF
- 2666 18f1 4889C7   		movq	%rax, %rdi
-
GAS LISTING /tmp/ccPaCTqg.s 			page 112
-
-
- 2667              	#APP
- 2668              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 2669              		movdqu (%rdi),%xmm0
- 2670              	# 0 "" 2
- 2671              	#NO_APP
- 2672 18f8 660F7F85 		movdqa	%xmm0, -6224(%rbp)
- 2672      B0E7FFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 2673              		.loc 3 129 0
- 2674 1900 660F6F85 		movdqa	-6224(%rbp), %xmm0
- 2674      B0E7FFFF 
- 2675              	.LBE1001:
- 2676              	.LBE1000:
-1769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* work on three blocks at a time which is two Nr worth
-1770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * we'll build it with 6 words in v0:v1 and 6 words in w0:w1
-1771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * but move them them into v0:v1:v2 before writing them to
-1772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * the key schedule
-1773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-1774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec v0, v1, v2, v3, v4;
-1776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec k;          /* we'll only need one of the key gen assist blocks at a time */
-1777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 0 */
-1779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(StateIn) (key);              /* k0    : k1    : k2     : k3           */
- 2677              		.loc 3 1779 0
- 2678 1908 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 2678      50E7FFFF 
-1780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateIn) (key+8);            /* k2    : k3    : k4     : k5           */
- 2679              		.loc 3 1780 0
- 2680 1910 488B8540 		movq	-5824(%rbp), %rax
- 2680      E9FFFF
- 2681 1917 4883C008 		addq	$8, %rax
- 2682 191b 48898558 		movq	%rax, -5800(%rbp)
- 2682      E9FFFF
- 2683              	.LBB1002:
- 2684              	.LBB1003:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 2685              		.loc 3 126 0
- 2686 1922 488B8558 		movq	-5800(%rbp), %rax
- 2686      E9FFFF
- 2687 1929 4889C7   		movq	%rax, %rdi
- 2688              	#APP
- 2689              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 2690              		movdqu (%rdi),%xmm0
- 2691              	# 0 "" 2
- 2692              	#NO_APP
- 2693 1930 660F7F85 		movdqa	%xmm0, -6208(%rbp)
- 2693      C0E7FFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 2694              		.loc 3 129 0
- 2695 1938 660F6F85 		movdqa	-6208(%rbp), %xmm0
- 2695      C0E7FFFF 
- 2696              	.LBE1003:
- 2697              	.LBE1002:
- 2698              		.loc 3 1780 0
- 2699 1940 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 2699      60E7FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 113
-
-
- 2700 1948 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 2700      60E7FFFF 
- 2701 1950 F30F7F95 		movdqu	%xmm2, -5792(%rbp)
- 2701      60E9FFFF 
- 2702              	.LBB1004:
- 2703              	.LBB1005:
-1301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2704              		.loc 3 1301 0
- 2705 1958 660F6F05 		movdqa	mask.8011(%rip), %xmm0
- 2705      00000000 
- 2706 1960 F30F6F8D 		movdqu	-5792(%rbp), %xmm1
- 2706      60E9FFFF 
- 2707 1968 F30F7F8D 		movdqu	%xmm1, -5760(%rbp)
- 2707      80E9FFFF 
- 2708 1970 F30F7F85 		movdqu	%xmm0, -5776(%rbp)
- 2708      70E9FFFF 
- 2709 1978 F30F6F85 		movdqu	-5760(%rbp), %xmm0
- 2709      80E9FFFF 
- 2710 1980 F30F7F85 		movdqu	%xmm0, -5728(%rbp)
- 2710      A0E9FFFF 
- 2711 1988 F30F6F85 		movdqu	-5776(%rbp), %xmm0
- 2711      70E9FFFF 
- 2712 1990 F30F7F85 		movdqu	%xmm0, -5744(%rbp)
- 2712      90E9FFFF 
- 2713              	.LBB1006:
- 2714              	.LBB1007:
- 2715              	.LBB1008:
- 2716              	.LBB1009:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2717              		.loc 1 529 0
- 2718 1998 F30F6F8D 		movdqu	-5744(%rbp), %xmm1
- 2718      90E9FFFF 
- 2719 19a0 F30F6F85 		movdqu	-5728(%rbp), %xmm0
- 2719      A0E9FFFF 
- 2720 19a8 660F3800 		pshufb	%xmm1, %xmm0
- 2720      C1
- 2721              	.LBE1009:
- 2722              	.LBE1008:
- 2723              	.LBE1007:
- 2724              	.LBE1006:
- 2725              	.LBE1005:
- 2726              	.LBE1004:
-1781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateShiftRight64) (v1);     /* k4    : k5    : 0      : 0            */
- 2727              		.loc 3 1781 0
- 2728 19ad 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 2728      60E7FFFF 
-1782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* K0:K1:K2:K3 */
- 2729              		.loc 3 1783 0
- 2730 19b5 488B8548 		movq	-5816(%rbp), %rax
- 2730      E9FFFF
- 2731 19bc 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 2731      50E7FFFF 
- 2732 19c4 660F7F00 		movdqa	%xmm0, (%rax)
-1784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 */
-1786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-
GAS LISTING /tmp/ccPaCTqg.s 			page 114
-
-
-1787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 2733              		.loc 3 1788 0
- 2734 19c8 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 2734      60E7FFFF 
- 2735 19d0 660F7F95 		movdqa	%xmm2, -6240(%rbp)
- 2735      A0E7FFFF 
- 2736 19d8 660F6F85 		movdqa	-6240(%rbp), %xmm0
- 2736      A0E7FFFF 
- 2737 19e0 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 2737      C0E9FFFF 
- 2738              	.LBB1010:
- 2739              	.LBB1011:
-1621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 2740              		.loc 3 1621 0
- 2741 19e8 F30F6F95 		movdqu	-5696(%rbp), %xmm2
- 2741      C0E9FFFF 
- 2742 19f0 660F7F95 		movdqa	%xmm2, -6192(%rbp)
- 2742      D0E7FFFF 
- 2743 19f8 660F6F85 		movdqa	-6192(%rbp), %xmm0
- 2743      D0E7FFFF 
- 2744 1a00 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 2744      E0E9FFFF 
- 2745              	.LBB1012:
- 2746              	.LBB1013:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 2747              		.loc 1 852 0
- 2748 1a08 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 2748      E0E9FFFF 
- 2749 1a10 660F3ADF 		aeskeygenassist	$1, %xmm0, %xmm0
- 2749      C001
- 2750              	.LBE1013:
- 2751              	.LBE1012:
-1622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 2752              		.loc 3 1622 0
- 2753 1a16 660F7F85 		movdqa	%xmm0, -6192(%rbp)
- 2753      D0E7FFFF 
- 2754 1a1e 660F6F95 		movdqa	-6192(%rbp), %xmm2
- 2754      D0E7FFFF 
- 2755 1a26 F30F7F95 		movdqu	%xmm2, -5648(%rbp)
- 2755      F0E9FFFF 
- 2756 1a2e F30F6F85 		movdqu	-5648(%rbp), %xmm0
- 2756      F0E9FFFF 
- 2757 1a36 F30F7F85 		movdqu	%xmm0, -5616(%rbp)
- 2757      10EAFFFF 
- 2758              	.LBB1014:
- 2759              	.LBB1015:
- 2760              	.LBB1016:
- 2761              	.LBB1017:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 2762              		.loc 1 450 0
- 2763 1a3e F30F6F85 		movdqu	-5616(%rbp), %xmm0
- 2763      10EAFFFF 
- 2764 1a46 660F70C0 		pshufd	$85, %xmm0, %xmm0
- 2764      55
- 2765              	.LBE1017:
- 2766              	.LBE1016:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 115
-
-
- 2767              	.LBE1015:
- 2768              	.LBE1014:
- 2769              	.LBE1011:
- 2770              	.LBE1010:
- 2771              		.loc 3 1788 0
- 2772 1a4b 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 2772      A0E7FFFF 
- 2773 1a53 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 2773      50E7FFFF 
- 2774 1a5b F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 2774      20EAFFFF 
- 2775              	.LBB1018:
- 2776              	.LBB1019:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2777              		.loc 3 1565 0
- 2778 1a63 F30F6F95 		movdqu	-5600(%rbp), %xmm2
- 2778      20EAFFFF 
- 2779 1a6b 660F7F95 		movdqa	%xmm2, -6176(%rbp)
- 2779      E0E7FFFF 
- 2780 1a73 660F6F85 		movdqa	-6176(%rbp), %xmm0
- 2780      E0E7FFFF 
- 2781 1a7b F30F7F85 		movdqu	%xmm0, -5584(%rbp)
- 2781      30EAFFFF 
- 2782              	.LBB1020:
- 2783              	.LBB1021:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2784              		.loc 3 1278 0
- 2785 1a83 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2785      00000000 
- 2786 1a8b F30F6F8D 		movdqu	-5584(%rbp), %xmm1
- 2786      30EAFFFF 
- 2787 1a93 F30F7F8D 		movdqu	%xmm1, -5552(%rbp)
- 2787      50EAFFFF 
- 2788 1a9b F30F7F85 		movdqu	%xmm0, -5568(%rbp)
- 2788      40EAFFFF 
- 2789 1aa3 F30F6F85 		movdqu	-5552(%rbp), %xmm0
- 2789      50EAFFFF 
- 2790 1aab F30F7F85 		movdqu	%xmm0, -5520(%rbp)
- 2790      70EAFFFF 
- 2791 1ab3 F30F6F85 		movdqu	-5568(%rbp), %xmm0
- 2791      40EAFFFF 
- 2792 1abb F30F7F85 		movdqu	%xmm0, -5536(%rbp)
- 2792      60EAFFFF 
- 2793              	.LBB1022:
- 2794              	.LBB1023:
- 2795              	.LBB1024:
- 2796              	.LBB1025:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2797              		.loc 1 529 0
- 2798 1ac3 F30F6F8D 		movdqu	-5536(%rbp), %xmm1
- 2798      60EAFFFF 
- 2799 1acb F30F6F85 		movdqu	-5520(%rbp), %xmm0
- 2799      70EAFFFF 
- 2800 1ad3 660F3800 		pshufb	%xmm1, %xmm0
- 2800      C1
- 2801              	.LBE1025:
- 2802              	.LBE1024:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 116
-
-
- 2803              	.LBE1023:
- 2804              	.LBE1022:
- 2805              	.LBE1021:
- 2806              	.LBE1020:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2807              		.loc 3 1567 0
- 2808 1ad8 660F7F85 		movdqa	%xmm0, -6176(%rbp)
- 2808      E0E7FFFF 
- 2809 1ae0 660F6F85 		movdqa	-6176(%rbp), %xmm0
- 2809      E0E7FFFF 
- 2810 1ae8 660FEF85 		pxor	-5600(%rbp), %xmm0
- 2810      20EAFFFF 
- 2811 1af0 F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 2811      20EAFFFF 
- 2812 1af8 660F6F95 		movdqa	-6176(%rbp), %xmm2
- 2812      E0E7FFFF 
- 2813 1b00 F30F7F95 		movdqu	%xmm2, -5504(%rbp)
- 2813      80EAFFFF 
- 2814              	.LBB1026:
- 2815              	.LBB1027:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2816              		.loc 3 1278 0
- 2817 1b08 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2817      00000000 
- 2818 1b10 F30F6F8D 		movdqu	-5504(%rbp), %xmm1
- 2818      80EAFFFF 
- 2819 1b18 F30F7F8D 		movdqu	%xmm1, -5472(%rbp)
- 2819      A0EAFFFF 
- 2820 1b20 F30F7F85 		movdqu	%xmm0, -5488(%rbp)
- 2820      90EAFFFF 
- 2821 1b28 F30F6F85 		movdqu	-5472(%rbp), %xmm0
- 2821      A0EAFFFF 
- 2822 1b30 F30F7F85 		movdqu	%xmm0, -5440(%rbp)
- 2822      C0EAFFFF 
- 2823 1b38 F30F6F85 		movdqu	-5488(%rbp), %xmm0
- 2823      90EAFFFF 
- 2824 1b40 F30F7F85 		movdqu	%xmm0, -5456(%rbp)
- 2824      B0EAFFFF 
- 2825              	.LBB1028:
- 2826              	.LBB1029:
- 2827              	.LBB1030:
- 2828              	.LBB1031:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2829              		.loc 1 529 0
- 2830 1b48 F30F6F8D 		movdqu	-5456(%rbp), %xmm1
- 2830      B0EAFFFF 
- 2831 1b50 F30F6F85 		movdqu	-5440(%rbp), %xmm0
- 2831      C0EAFFFF 
- 2832 1b58 660F3800 		pshufb	%xmm1, %xmm0
- 2832      C1
- 2833              	.LBE1031:
- 2834              	.LBE1030:
- 2835              	.LBE1029:
- 2836              	.LBE1028:
- 2837              	.LBE1027:
- 2838              	.LBE1026:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 117
-
-
- 2839              		.loc 3 1568 0
- 2840 1b5d 660F7F85 		movdqa	%xmm0, -6176(%rbp)
- 2840      E0E7FFFF 
- 2841 1b65 660F6F85 		movdqa	-6176(%rbp), %xmm0
- 2841      E0E7FFFF 
- 2842 1b6d 660FEF85 		pxor	-5600(%rbp), %xmm0
- 2842      20EAFFFF 
- 2843 1b75 F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 2843      20EAFFFF 
- 2844 1b7d 660F6F85 		movdqa	-6176(%rbp), %xmm0
- 2844      E0E7FFFF 
- 2845 1b85 F30F7F85 		movdqu	%xmm0, -5424(%rbp)
- 2845      D0EAFFFF 
- 2846              	.LBB1032:
- 2847              	.LBB1033:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2848              		.loc 3 1278 0
- 2849 1b8d 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2849      00000000 
- 2850 1b95 F30F6F8D 		movdqu	-5424(%rbp), %xmm1
- 2850      D0EAFFFF 
- 2851 1b9d F30F7F8D 		movdqu	%xmm1, -5392(%rbp)
- 2851      F0EAFFFF 
- 2852 1ba5 F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 2852      E0EAFFFF 
- 2853 1bad F30F6F85 		movdqu	-5392(%rbp), %xmm0
- 2853      F0EAFFFF 
- 2854 1bb5 F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 2854      10EBFFFF 
- 2855 1bbd F30F6F85 		movdqu	-5408(%rbp), %xmm0
- 2855      E0EAFFFF 
- 2856 1bc5 F30F7F85 		movdqu	%xmm0, -5376(%rbp)
- 2856      00EBFFFF 
- 2857              	.LBB1034:
- 2858              	.LBB1035:
- 2859              	.LBB1036:
- 2860              	.LBB1037:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2861              		.loc 1 529 0
- 2862 1bcd F30F6F8D 		movdqu	-5376(%rbp), %xmm1
- 2862      00EBFFFF 
- 2863 1bd5 F30F6F85 		movdqu	-5360(%rbp), %xmm0
- 2863      10EBFFFF 
- 2864 1bdd 660F3800 		pshufb	%xmm1, %xmm0
- 2864      C1
- 2865              	.LBE1037:
- 2866              	.LBE1036:
- 2867              	.LBE1035:
- 2868              	.LBE1034:
- 2869              	.LBE1033:
- 2870              	.LBE1032:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2871              		.loc 3 1569 0
- 2872 1be2 660F7F85 		movdqa	%xmm0, -6176(%rbp)
- 2872      E0E7FFFF 
- 2873 1bea 660F6F85 		movdqa	-6176(%rbp), %xmm0
- 2873      E0E7FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 118
-
-
- 2874 1bf2 660FEF85 		pxor	-5600(%rbp), %xmm0
- 2874      20EAFFFF 
- 2875 1bfa F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 2875      20EAFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2876              		.loc 3 1571 0
- 2877 1c02 F30F6F85 		movdqu	-5600(%rbp), %xmm0
- 2877      20EAFFFF 
- 2878              	.LBE1019:
- 2879              	.LBE1018:
-1789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1, 0x01);                            /* F(k5) : F(k5) : F(k5)  : F(k5)        */
-1790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k0    : k0^k1 :k0^k1^k2:k0^k1^k2^k3   */
- 2880              		.loc 3 1790 0
- 2881 1c0a 660F7F85 		movdqa	%xmm0, -6272(%rbp)
- 2881      80E7FFFF 
-1791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k6    : k7    : k8     : k9           */
- 2882              		.loc 3 1791 0
- 2883 1c12 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 2883      80E7FFFF 
- 2884 1c1a 660FEF95 		pxor	-6240(%rbp), %xmm2
- 2884      A0E7FFFF 
- 2885 1c22 660F7F95 		movdqa	%xmm2, -6272(%rbp)
- 2885      80E7FFFF 
- 2886 1c2a 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 2886      60E7FFFF 
- 2887 1c32 F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 2887      20EBFFFF 
- 2888              	.LBB1038:
- 2889              	.LBB1039:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2890              		.loc 3 1565 0
- 2891 1c3a F30F6F95 		movdqu	-5344(%rbp), %xmm2
- 2891      20EBFFFF 
- 2892 1c42 660F7F95 		movdqa	%xmm2, -6160(%rbp)
- 2892      F0E7FFFF 
- 2893 1c4a 660F6F85 		movdqa	-6160(%rbp), %xmm0
- 2893      F0E7FFFF 
- 2894 1c52 F30F7F85 		movdqu	%xmm0, -5328(%rbp)
- 2894      30EBFFFF 
- 2895              	.LBB1040:
- 2896              	.LBB1041:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2897              		.loc 3 1278 0
- 2898 1c5a 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2898      00000000 
- 2899 1c62 F30F6F8D 		movdqu	-5328(%rbp), %xmm1
- 2899      30EBFFFF 
- 2900 1c6a F30F7F8D 		movdqu	%xmm1, -5296(%rbp)
- 2900      50EBFFFF 
- 2901 1c72 F30F7F85 		movdqu	%xmm0, -5312(%rbp)
- 2901      40EBFFFF 
- 2902 1c7a F30F6F85 		movdqu	-5296(%rbp), %xmm0
- 2902      50EBFFFF 
- 2903 1c82 F30F7F85 		movdqu	%xmm0, -5264(%rbp)
- 2903      70EBFFFF 
- 2904 1c8a F30F6F85 		movdqu	-5312(%rbp), %xmm0
- 2904      40EBFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 119
-
-
- 2905 1c92 F30F7F85 		movdqu	%xmm0, -5280(%rbp)
- 2905      60EBFFFF 
- 2906              	.LBB1042:
- 2907              	.LBB1043:
- 2908              	.LBB1044:
- 2909              	.LBB1045:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2910              		.loc 1 529 0
- 2911 1c9a F30F6F8D 		movdqu	-5280(%rbp), %xmm1
- 2911      60EBFFFF 
- 2912 1ca2 F30F6F85 		movdqu	-5264(%rbp), %xmm0
- 2912      70EBFFFF 
- 2913 1caa 660F3800 		pshufb	%xmm1, %xmm0
- 2913      C1
- 2914              	.LBE1045:
- 2915              	.LBE1044:
- 2916              	.LBE1043:
- 2917              	.LBE1042:
- 2918              	.LBE1041:
- 2919              	.LBE1040:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2920              		.loc 3 1567 0
- 2921 1caf 660F7F85 		movdqa	%xmm0, -6160(%rbp)
- 2921      F0E7FFFF 
- 2922 1cb7 660F6F85 		movdqa	-6160(%rbp), %xmm0
- 2922      F0E7FFFF 
- 2923 1cbf 660FEF85 		pxor	-5344(%rbp), %xmm0
- 2923      20EBFFFF 
- 2924 1cc7 F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 2924      20EBFFFF 
- 2925 1ccf 660F6F95 		movdqa	-6160(%rbp), %xmm2
- 2925      F0E7FFFF 
- 2926 1cd7 F30F7F95 		movdqu	%xmm2, -5248(%rbp)
- 2926      80EBFFFF 
- 2927              	.LBB1046:
- 2928              	.LBB1047:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2929              		.loc 3 1278 0
- 2930 1cdf 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2930      00000000 
- 2931 1ce7 F30F6F8D 		movdqu	-5248(%rbp), %xmm1
- 2931      80EBFFFF 
- 2932 1cef F30F7F8D 		movdqu	%xmm1, -5216(%rbp)
- 2932      A0EBFFFF 
- 2933 1cf7 F30F7F85 		movdqu	%xmm0, -5232(%rbp)
- 2933      90EBFFFF 
- 2934 1cff F30F6F85 		movdqu	-5216(%rbp), %xmm0
- 2934      A0EBFFFF 
- 2935 1d07 F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 2935      C0EBFFFF 
- 2936 1d0f F30F6F85 		movdqu	-5232(%rbp), %xmm0
- 2936      90EBFFFF 
- 2937 1d17 F30F7F85 		movdqu	%xmm0, -5200(%rbp)
- 2937      B0EBFFFF 
- 2938              	.LBB1048:
- 2939              	.LBB1049:
- 2940              	.LBB1050:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 120
-
-
- 2941              	.LBB1051:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2942              		.loc 1 529 0
- 2943 1d1f F30F6F8D 		movdqu	-5200(%rbp), %xmm1
- 2943      B0EBFFFF 
- 2944 1d27 F30F6F85 		movdqu	-5184(%rbp), %xmm0
- 2944      C0EBFFFF 
- 2945 1d2f 660F3800 		pshufb	%xmm1, %xmm0
- 2945      C1
- 2946              	.LBE1051:
- 2947              	.LBE1050:
- 2948              	.LBE1049:
- 2949              	.LBE1048:
- 2950              	.LBE1047:
- 2951              	.LBE1046:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2952              		.loc 3 1568 0
- 2953 1d34 660F7F85 		movdqa	%xmm0, -6160(%rbp)
- 2953      F0E7FFFF 
- 2954 1d3c 660F6F85 		movdqa	-6160(%rbp), %xmm0
- 2954      F0E7FFFF 
- 2955 1d44 660FEF85 		pxor	-5344(%rbp), %xmm0
- 2955      20EBFFFF 
- 2956 1d4c F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 2956      20EBFFFF 
- 2957 1d54 660F6F85 		movdqa	-6160(%rbp), %xmm0
- 2957      F0E7FFFF 
- 2958 1d5c F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 2958      D0EBFFFF 
- 2959              	.LBB1052:
- 2960              	.LBB1053:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2961              		.loc 3 1278 0
- 2962 1d64 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 2962      00000000 
- 2963 1d6c F30F6F8D 		movdqu	-5168(%rbp), %xmm1
- 2963      D0EBFFFF 
- 2964 1d74 F30F7F8D 		movdqu	%xmm1, -5136(%rbp)
- 2964      F0EBFFFF 
- 2965 1d7c F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 2965      E0EBFFFF 
- 2966 1d84 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 2966      F0EBFFFF 
- 2967 1d8c F30F7F85 		movdqu	%xmm0, -5104(%rbp)
- 2967      10ECFFFF 
- 2968 1d94 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 2968      E0EBFFFF 
- 2969 1d9c F30F7F85 		movdqu	%xmm0, -5120(%rbp)
- 2969      00ECFFFF 
- 2970              	.LBB1054:
- 2971              	.LBB1055:
- 2972              	.LBB1056:
- 2973              	.LBB1057:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2974              		.loc 1 529 0
- 2975 1da4 F30F6F8D 		movdqu	-5120(%rbp), %xmm1
- 2975      00ECFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 121
-
-
- 2976 1dac F30F6F85 		movdqu	-5104(%rbp), %xmm0
- 2976      10ECFFFF 
- 2977 1db4 660F3800 		pshufb	%xmm1, %xmm0
- 2977      C1
- 2978              	.LBE1057:
- 2979              	.LBE1056:
- 2980              	.LBE1055:
- 2981              	.LBE1054:
- 2982              	.LBE1053:
- 2983              	.LBE1052:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2984              		.loc 3 1569 0
- 2985 1db9 660F7F85 		movdqa	%xmm0, -6160(%rbp)
- 2985      F0E7FFFF 
- 2986 1dc1 660F6F85 		movdqa	-6160(%rbp), %xmm0
- 2986      F0E7FFFF 
- 2987 1dc9 660FEF85 		pxor	-5344(%rbp), %xmm0
- 2987      20EBFFFF 
- 2988 1dd1 F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 2988      20EBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2989              		.loc 3 1571 0
- 2990 1dd9 F30F6F85 		movdqu	-5344(%rbp), %xmm0
- 2990      20EBFFFF 
- 2991              	.LBE1039:
- 2992              	.LBE1038:
-1792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k4    : k4^k5 : k4^k5  : k4^k5        */
- 2993              		.loc 3 1792 0
- 2994 1de1 660F7F85 		movdqa	%xmm0, -6256(%rbp)
- 2994      90E7FFFF 
-1793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k9    : k9    : k9     : k9           */
- 2995              		.loc 3 1793 0
- 2996 1de9 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 2996      80E7FFFF 
- 2997 1df1 660F7F95 		movdqa	%xmm2, -6240(%rbp)
- 2997      A0E7FFFF 
- 2998 1df9 660F6F85 		movdqa	-6240(%rbp), %xmm0
- 2998      A0E7FFFF 
- 2999 1e01 F30F7F85 		movdqu	%xmm0, -5088(%rbp)
- 2999      20ECFFFF 
- 3000 1e09 F30F6F85 		movdqu	-5088(%rbp), %xmm0
- 3000      20ECFFFF 
- 3001 1e11 F30F7F85 		movdqu	%xmm0, -5056(%rbp)
- 3001      40ECFFFF 
- 3002              	.LBB1058:
- 3003              	.LBB1059:
- 3004              	.LBB1060:
- 3005              	.LBB1061:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3006              		.loc 1 450 0
- 3007 1e19 F30F6F85 		movdqu	-5056(%rbp), %xmm0
- 3007      40ECFFFF 
- 3008 1e21 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 3008      FF
- 3009              	.LBE1061:
- 3010              	.LBE1060:
- 3011              	.LBE1059:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 122
-
-
- 3012              	.LBE1058:
- 3013              		.loc 3 1793 0
- 3014 1e26 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3014      A0E7FFFF 
-1794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k10   : k11   : k10    : k11          */
- 3015              		.loc 3 1794 0
- 3016 1e2e 660F6F95 		movdqa	-6256(%rbp), %xmm2
- 3016      90E7FFFF 
- 3017 1e36 660FEF95 		pxor	-6240(%rbp), %xmm2
- 3017      A0E7FFFF 
- 3018 1e3e 660F7F95 		movdqa	%xmm2, -6256(%rbp)
- 3018      90E7FFFF 
- 3019 1e46 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 3019      60E7FFFF 
- 3020 1e4e F30F7F85 		movdqu	%xmm0, -5024(%rbp)
- 3020      60ECFFFF 
- 3021 1e56 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 3021      80E7FFFF 
- 3022 1e5e F30F7F95 		movdqu	%xmm2, -5040(%rbp)
- 3022      50ECFFFF 
- 3023 1e66 F30F6F85 		movdqu	-5024(%rbp), %xmm0
- 3023      60ECFFFF 
- 3024 1e6e F30F7F85 		movdqu	%xmm0, -4976(%rbp)
- 3024      90ECFFFF 
- 3025 1e76 F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 3025      50ECFFFF 
- 3026 1e7e F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 3026      80ECFFFF 
- 3027              	.LBB1062:
- 3028              	.LBB1063:
- 3029              	.LBB1064:
- 3030              	.LBB1065:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 3031              		.loc 1 366 0
- 3032 1e86 F20F1085 		movsd	-4992(%rbp), %xmm0
- 3032      80ECFFFF 
- 3033 1e8e 660F1685 		movhpd	-4984(%rbp), %xmm0
- 3033      88ECFFFF 
- 3034 1e96 F20F108D 		movsd	-4976(%rbp), %xmm1
- 3034      90ECFFFF 
- 3035 1e9e 660F168D 		movhpd	-4968(%rbp), %xmm1
- 3035      98ECFFFF 
- 3036 1ea6 660F28D1 		movapd	%xmm1, %xmm2
- 3037 1eaa 660F14D0 		unpcklpd	%xmm0, %xmm2
- 3038 1eae 660F28C2 		movapd	%xmm2, %xmm0
- 3039              	.LBE1065:
- 3040              	.LBE1064:
- 3041              	.LBE1063:
- 3042              	.LBE1062:
-1795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k4    : k5    : k6     : k7           */
- 3043              		.loc 3 1795 0
- 3044 1eb2 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 3044      60E7FFFF 
-1796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* K4:K5:K6:K7 */
- 3045              		.loc 3 1796 0
- 3046 1eba 488B8548 		movq	-5816(%rbp), %rax
- 3046      E9FFFF
-
GAS LISTING /tmp/ccPaCTqg.s 			page 123
-
-
- 3047 1ec1 4883C010 		addq	$16, %rax
- 3048 1ec5 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 3048      60E7FFFF 
- 3049 1ecd 660F7F00 		movdqa	%xmm0, (%rax)
- 3050 1ed1 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 3050      80E7FFFF 
- 3051 1ed9 F30F7F95 		movdqu	%xmm2, -4944(%rbp)
- 3051      B0ECFFFF 
- 3052 1ee1 660F6F85 		movdqa	-6256(%rbp), %xmm0
- 3052      90E7FFFF 
- 3053 1ee9 F30F7F85 		movdqu	%xmm0, -4960(%rbp)
- 3053      A0ECFFFF 
- 3054 1ef1 F30F6F85 		movdqu	-4944(%rbp), %xmm0
- 3054      B0ECFFFF 
- 3055 1ef9 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 3055      E0ECFFFF 
- 3056 1f01 F30F6F85 		movdqu	-4960(%rbp), %xmm0
- 3056      A0ECFFFF 
- 3057 1f09 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 3057      D0ECFFFF 
- 3058              	.LBB1066:
- 3059              	.LBB1067:
- 3060              	.LBB1068:
- 3061              	.LBB1069:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 3062              		.loc 1 366 0
- 3063 1f11 F20F108D 		movsd	-4912(%rbp), %xmm1
- 3063      D0ECFFFF 
- 3064 1f19 660F168D 		movhpd	-4904(%rbp), %xmm1
- 3064      D8ECFFFF 
- 3065 1f21 F20F1085 		movsd	-4896(%rbp), %xmm0
- 3065      E0ECFFFF 
- 3066 1f29 660F1685 		movhpd	-4888(%rbp), %xmm0
- 3066      E8ECFFFF 
- 3067 1f31 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 3067      01
- 3068              	.LBE1069:
- 3069              	.LBE1068:
- 3070              	.LBE1067:
- 3071              	.LBE1066:
-1797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k8    : k9    : k10    : k11          */
- 3072              		.loc 3 1798 0
- 3073 1f36 660F7F85 		movdqa	%xmm0, -6288(%rbp)
- 3073      70E7FFFF 
-1799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[2] = v2; /* K8:K9:K10:K11 */
- 3074              		.loc 3 1799 0
- 3075 1f3e 488B8548 		movq	-5816(%rbp), %rax
- 3075      E9FFFF
- 3076 1f45 4883C020 		addq	$32, %rax
- 3077 1f49 660F6F95 		movdqa	-6288(%rbp), %xmm2
- 3077      70E7FFFF 
- 3078 1f51 660F7F10 		movdqa	%xmm2, (%rax)
- 3079 1f55 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 3079      80E7FFFF 
- 3080 1f5d F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 3080      F0ECFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 124
-
-
- 3081              	.LBB1070:
- 3082              	.LBB1071:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3083              		.loc 3 1565 0
- 3084 1f65 F30F6F95 		movdqu	-4880(%rbp), %xmm2
- 3084      F0ECFFFF 
- 3085 1f6d 660F7F95 		movdqa	%xmm2, -6144(%rbp)
- 3085      00E8FFFF 
- 3086 1f75 660F6F85 		movdqa	-6144(%rbp), %xmm0
- 3086      00E8FFFF 
- 3087 1f7d F30F7F85 		movdqu	%xmm0, -4864(%rbp)
- 3087      00EDFFFF 
- 3088              	.LBB1072:
- 3089              	.LBB1073:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3090              		.loc 3 1278 0
- 3091 1f85 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3091      00000000 
- 3092 1f8d F30F6F8D 		movdqu	-4864(%rbp), %xmm1
- 3092      00EDFFFF 
- 3093 1f95 F30F7F8D 		movdqu	%xmm1, -4832(%rbp)
- 3093      20EDFFFF 
- 3094 1f9d F30F7F85 		movdqu	%xmm0, -4848(%rbp)
- 3094      10EDFFFF 
- 3095 1fa5 F30F6F85 		movdqu	-4832(%rbp), %xmm0
- 3095      20EDFFFF 
- 3096 1fad F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 3096      40EDFFFF 
- 3097 1fb5 F30F6F85 		movdqu	-4848(%rbp), %xmm0
- 3097      10EDFFFF 
- 3098 1fbd F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 3098      30EDFFFF 
- 3099              	.LBB1074:
- 3100              	.LBB1075:
- 3101              	.LBB1076:
- 3102              	.LBB1077:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3103              		.loc 1 529 0
- 3104 1fc5 F30F6F8D 		movdqu	-4816(%rbp), %xmm1
- 3104      30EDFFFF 
- 3105 1fcd F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 3105      40EDFFFF 
- 3106 1fd5 660F3800 		pshufb	%xmm1, %xmm0
- 3106      C1
- 3107              	.LBE1077:
- 3108              	.LBE1076:
- 3109              	.LBE1075:
- 3110              	.LBE1074:
- 3111              	.LBE1073:
- 3112              	.LBE1072:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3113              		.loc 3 1567 0
- 3114 1fda 660F7F85 		movdqa	%xmm0, -6144(%rbp)
- 3114      00E8FFFF 
- 3115 1fe2 660F6F85 		movdqa	-6144(%rbp), %xmm0
- 3115      00E8FFFF 
- 3116 1fea 660FEF85 		pxor	-4880(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 125
-
-
- 3116      F0ECFFFF 
- 3117 1ff2 F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 3117      F0ECFFFF 
- 3118 1ffa 660F6F95 		movdqa	-6144(%rbp), %xmm2
- 3118      00E8FFFF 
- 3119 2002 F30F7F95 		movdqu	%xmm2, -4784(%rbp)
- 3119      50EDFFFF 
- 3120              	.LBB1078:
- 3121              	.LBB1079:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3122              		.loc 3 1278 0
- 3123 200a 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3123      00000000 
- 3124 2012 F30F6F8D 		movdqu	-4784(%rbp), %xmm1
- 3124      50EDFFFF 
- 3125 201a F30F7F8D 		movdqu	%xmm1, -4752(%rbp)
- 3125      70EDFFFF 
- 3126 2022 F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 3126      60EDFFFF 
- 3127 202a F30F6F85 		movdqu	-4752(%rbp), %xmm0
- 3127      70EDFFFF 
- 3128 2032 F30F7F85 		movdqu	%xmm0, -4720(%rbp)
- 3128      90EDFFFF 
- 3129 203a F30F6F85 		movdqu	-4768(%rbp), %xmm0
- 3129      60EDFFFF 
- 3130 2042 F30F7F85 		movdqu	%xmm0, -4736(%rbp)
- 3130      80EDFFFF 
- 3131              	.LBB1080:
- 3132              	.LBB1081:
- 3133              	.LBB1082:
- 3134              	.LBB1083:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3135              		.loc 1 529 0
- 3136 204a F30F6F8D 		movdqu	-4736(%rbp), %xmm1
- 3136      80EDFFFF 
- 3137 2052 F30F6F85 		movdqu	-4720(%rbp), %xmm0
- 3137      90EDFFFF 
- 3138 205a 660F3800 		pshufb	%xmm1, %xmm0
- 3138      C1
- 3139              	.LBE1083:
- 3140              	.LBE1082:
- 3141              	.LBE1081:
- 3142              	.LBE1080:
- 3143              	.LBE1079:
- 3144              	.LBE1078:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3145              		.loc 3 1568 0
- 3146 205f 660F7F85 		movdqa	%xmm0, -6144(%rbp)
- 3146      00E8FFFF 
- 3147 2067 660F6F85 		movdqa	-6144(%rbp), %xmm0
- 3147      00E8FFFF 
- 3148 206f 660FEF85 		pxor	-4880(%rbp), %xmm0
- 3148      F0ECFFFF 
- 3149 2077 F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 3149      F0ECFFFF 
- 3150 207f 660F6F85 		movdqa	-6144(%rbp), %xmm0
- 3150      00E8FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 126
-
-
- 3151 2087 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 3151      A0EDFFFF 
- 3152              	.LBB1084:
- 3153              	.LBB1085:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3154              		.loc 3 1278 0
- 3155 208f 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3155      00000000 
- 3156 2097 F30F6F8D 		movdqu	-4704(%rbp), %xmm1
- 3156      A0EDFFFF 
- 3157 209f F30F7F8D 		movdqu	%xmm1, -4672(%rbp)
- 3157      C0EDFFFF 
- 3158 20a7 F30F7F85 		movdqu	%xmm0, -4688(%rbp)
- 3158      B0EDFFFF 
- 3159 20af F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 3159      C0EDFFFF 
- 3160 20b7 F30F7F85 		movdqu	%xmm0, -4640(%rbp)
- 3160      E0EDFFFF 
- 3161 20bf F30F6F85 		movdqu	-4688(%rbp), %xmm0
- 3161      B0EDFFFF 
- 3162 20c7 F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 3162      D0EDFFFF 
- 3163              	.LBB1086:
- 3164              	.LBB1087:
- 3165              	.LBB1088:
- 3166              	.LBB1089:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3167              		.loc 1 529 0
- 3168 20cf F30F6F8D 		movdqu	-4656(%rbp), %xmm1
- 3168      D0EDFFFF 
- 3169 20d7 F30F6F85 		movdqu	-4640(%rbp), %xmm0
- 3169      E0EDFFFF 
- 3170 20df 660F3800 		pshufb	%xmm1, %xmm0
- 3170      C1
- 3171              	.LBE1089:
- 3172              	.LBE1088:
- 3173              	.LBE1087:
- 3174              	.LBE1086:
- 3175              	.LBE1085:
- 3176              	.LBE1084:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3177              		.loc 3 1569 0
- 3178 20e4 660F7F85 		movdqa	%xmm0, -6144(%rbp)
- 3178      00E8FFFF 
- 3179 20ec 660F6F85 		movdqa	-6144(%rbp), %xmm0
- 3179      00E8FFFF 
- 3180 20f4 660FEF85 		pxor	-4880(%rbp), %xmm0
- 3180      F0ECFFFF 
- 3181 20fc F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 3181      F0ECFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3182              		.loc 3 1571 0
- 3183 2104 F30F6F85 		movdqu	-4880(%rbp), %xmm0
- 3183      F0ECFFFF 
- 3184              	.LBE1071:
- 3185              	.LBE1070:
-1800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 127
-
-
-1801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k6    : k6^k7 :k6^k7^k8:k6^k7^k8^k9   */
- 3186              		.loc 3 1802 0
- 3187 210c 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 3187      50E7FFFF 
- 3188 2114 660F6F95 		movdqa	-6256(%rbp), %xmm2
- 3188      90E7FFFF 
- 3189 211c F30F7F95 		movdqu	%xmm2, -4624(%rbp)
- 3189      F0EDFFFF 
- 3190              	.LBB1090:
- 3191              	.LBB1091:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3192              		.loc 3 1565 0
- 3193 2124 F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 3193      F0EDFFFF 
- 3194 212c 660F7F85 		movdqa	%xmm0, -6128(%rbp)
- 3194      10E8FFFF 
- 3195 2134 660F6F95 		movdqa	-6128(%rbp), %xmm2
- 3195      10E8FFFF 
- 3196 213c F30F7F95 		movdqu	%xmm2, -4608(%rbp)
- 3196      00EEFFFF 
- 3197              	.LBB1092:
- 3198              	.LBB1093:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3199              		.loc 3 1278 0
- 3200 2144 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3200      00000000 
- 3201 214c F30F6F8D 		movdqu	-4608(%rbp), %xmm1
- 3201      00EEFFFF 
- 3202 2154 F30F7F8D 		movdqu	%xmm1, -4576(%rbp)
- 3202      20EEFFFF 
- 3203 215c F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 3203      10EEFFFF 
- 3204 2164 F30F6F85 		movdqu	-4576(%rbp), %xmm0
- 3204      20EEFFFF 
- 3205 216c F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 3205      40EEFFFF 
- 3206 2174 F30F6F85 		movdqu	-4592(%rbp), %xmm0
- 3206      10EEFFFF 
- 3207 217c F30F7F85 		movdqu	%xmm0, -4560(%rbp)
- 3207      30EEFFFF 
- 3208              	.LBB1094:
- 3209              	.LBB1095:
- 3210              	.LBB1096:
- 3211              	.LBB1097:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3212              		.loc 1 529 0
- 3213 2184 F30F6F8D 		movdqu	-4560(%rbp), %xmm1
- 3213      30EEFFFF 
- 3214 218c F30F6F85 		movdqu	-4544(%rbp), %xmm0
- 3214      40EEFFFF 
- 3215 2194 660F3800 		pshufb	%xmm1, %xmm0
- 3215      C1
- 3216              	.LBE1097:
- 3217              	.LBE1096:
- 3218              	.LBE1095:
- 3219              	.LBE1094:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 128
-
-
- 3220              	.LBE1093:
- 3221              	.LBE1092:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3222              		.loc 3 1567 0
- 3223 2199 660F7F85 		movdqa	%xmm0, -6128(%rbp)
- 3223      10E8FFFF 
- 3224 21a1 660F6F85 		movdqa	-6128(%rbp), %xmm0
- 3224      10E8FFFF 
- 3225 21a9 660FEF85 		pxor	-4624(%rbp), %xmm0
- 3225      F0EDFFFF 
- 3226 21b1 F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 3226      F0EDFFFF 
- 3227 21b9 660F6F85 		movdqa	-6128(%rbp), %xmm0
- 3227      10E8FFFF 
- 3228 21c1 F30F7F85 		movdqu	%xmm0, -4528(%rbp)
- 3228      50EEFFFF 
- 3229              	.LBB1098:
- 3230              	.LBB1099:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3231              		.loc 3 1278 0
- 3232 21c9 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3232      00000000 
- 3233 21d1 F30F6F8D 		movdqu	-4528(%rbp), %xmm1
- 3233      50EEFFFF 
- 3234 21d9 F30F7F8D 		movdqu	%xmm1, -4496(%rbp)
- 3234      70EEFFFF 
- 3235 21e1 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 3235      60EEFFFF 
- 3236 21e9 F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 3236      70EEFFFF 
- 3237 21f1 F30F7F85 		movdqu	%xmm0, -4464(%rbp)
- 3237      90EEFFFF 
- 3238 21f9 F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 3238      60EEFFFF 
- 3239 2201 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 3239      80EEFFFF 
- 3240              	.LBB1100:
- 3241              	.LBB1101:
- 3242              	.LBB1102:
- 3243              	.LBB1103:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3244              		.loc 1 529 0
- 3245 2209 F30F6F8D 		movdqu	-4480(%rbp), %xmm1
- 3245      80EEFFFF 
- 3246 2211 F30F6F85 		movdqu	-4464(%rbp), %xmm0
- 3246      90EEFFFF 
- 3247 2219 660F3800 		pshufb	%xmm1, %xmm0
- 3247      C1
- 3248              	.LBE1103:
- 3249              	.LBE1102:
- 3250              	.LBE1101:
- 3251              	.LBE1100:
- 3252              	.LBE1099:
- 3253              	.LBE1098:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3254              		.loc 3 1568 0
- 3255 221e 660F7F85 		movdqa	%xmm0, -6128(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 129
-
-
- 3255      10E8FFFF 
- 3256 2226 660F6F85 		movdqa	-6128(%rbp), %xmm0
- 3256      10E8FFFF 
- 3257 222e 660FEF85 		pxor	-4624(%rbp), %xmm0
- 3257      F0EDFFFF 
- 3258 2236 F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 3258      F0EDFFFF 
- 3259 223e 660F6F95 		movdqa	-6128(%rbp), %xmm2
- 3259      10E8FFFF 
- 3260 2246 F30F7F95 		movdqu	%xmm2, -4448(%rbp)
- 3260      A0EEFFFF 
- 3261              	.LBB1104:
- 3262              	.LBB1105:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3263              		.loc 3 1278 0
- 3264 224e 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3264      00000000 
- 3265 2256 F30F6F8D 		movdqu	-4448(%rbp), %xmm1
- 3265      A0EEFFFF 
- 3266 225e F30F7F8D 		movdqu	%xmm1, -4416(%rbp)
- 3266      C0EEFFFF 
- 3267 2266 F30F7F85 		movdqu	%xmm0, -4432(%rbp)
- 3267      B0EEFFFF 
- 3268 226e F30F6F85 		movdqu	-4416(%rbp), %xmm0
- 3268      C0EEFFFF 
- 3269 2276 F30F7F85 		movdqu	%xmm0, -4384(%rbp)
- 3269      E0EEFFFF 
- 3270 227e F30F6F85 		movdqu	-4432(%rbp), %xmm0
- 3270      B0EEFFFF 
- 3271 2286 F30F7F85 		movdqu	%xmm0, -4400(%rbp)
- 3271      D0EEFFFF 
- 3272              	.LBB1106:
- 3273              	.LBB1107:
- 3274              	.LBB1108:
- 3275              	.LBB1109:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3276              		.loc 1 529 0
- 3277 228e F30F6F8D 		movdqu	-4400(%rbp), %xmm1
- 3277      D0EEFFFF 
- 3278 2296 F30F6F85 		movdqu	-4384(%rbp), %xmm0
- 3278      E0EEFFFF 
- 3279 229e 660F3800 		pshufb	%xmm1, %xmm0
- 3279      C1
- 3280              	.LBE1109:
- 3281              	.LBE1108:
- 3282              	.LBE1107:
- 3283              	.LBE1106:
- 3284              	.LBE1105:
- 3285              	.LBE1104:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3286              		.loc 3 1569 0
- 3287 22a3 660F7F85 		movdqa	%xmm0, -6128(%rbp)
- 3287      10E8FFFF 
- 3288 22ab 660F6F85 		movdqa	-6128(%rbp), %xmm0
- 3288      10E8FFFF 
- 3289 22b3 660FEF85 		pxor	-4624(%rbp), %xmm0
- 3289      F0EDFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 130
-
-
- 3290 22bb F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 3290      F0EDFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3291              		.loc 3 1571 0
- 3292 22c3 F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 3292      F0EDFFFF 
- 3293              	.LBE1091:
- 3294              	.LBE1090:
-1803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k10   :k10^k11: k10^k11: k10^k11      */
- 3295              		.loc 3 1803 0
- 3296 22cb 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 3296      60E7FFFF 
-1804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 3297              		.loc 3 1804 0
- 3298 22d3 660F6F85 		movdqa	-6288(%rbp), %xmm0
- 3298      70E7FFFF 
- 3299 22db 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3299      A0E7FFFF 
- 3300 22e3 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 3300      A0E7FFFF 
- 3301 22eb F30F7F95 		movdqu	%xmm2, -4352(%rbp)
- 3301      00EFFFFF 
- 3302              	.LBB1110:
- 3303              	.LBB1111:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 3304              		.loc 3 1673 0
- 3305 22f3 F30F6F85 		movdqu	-4352(%rbp), %xmm0
- 3305      00EFFFFF 
- 3306 22fb 660F7F85 		movdqa	%xmm0, -6112(%rbp)
- 3306      20E8FFFF 
- 3307 2303 660F6F95 		movdqa	-6112(%rbp), %xmm2
- 3307      20E8FFFF 
- 3308 230b F30F7F95 		movdqu	%xmm2, -4320(%rbp)
- 3308      20EFFFFF 
- 3309              	.LBB1112:
- 3310              	.LBB1113:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 3311              		.loc 1 852 0
- 3312 2313 F30F6F85 		movdqu	-4320(%rbp), %xmm0
- 3312      20EFFFFF 
- 3313 231b 660F3ADF 		aeskeygenassist	$2, %xmm0, %xmm0
- 3313      C002
- 3314              	.LBE1113:
- 3315              	.LBE1112:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 3316              		.loc 3 1674 0
- 3317 2321 660F7F85 		movdqa	%xmm0, -6112(%rbp)
- 3317      20E8FFFF 
- 3318 2329 660F6F85 		movdqa	-6112(%rbp), %xmm0
- 3318      20E8FFFF 
- 3319 2331 F30F7F85 		movdqu	%xmm0, -4304(%rbp)
- 3319      30EFFFFF 
- 3320 2339 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 3320      30EFFFFF 
- 3321 2341 F30F7F85 		movdqu	%xmm0, -4272(%rbp)
- 3321      50EFFFFF 
- 3322              	.LBB1114:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 131
-
-
- 3323              	.LBB1115:
- 3324              	.LBB1116:
- 3325              	.LBB1117:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3326              		.loc 1 450 0
- 3327 2349 F30F6F85 		movdqu	-4272(%rbp), %xmm0
- 3327      50EFFFFF 
- 3328 2351 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 3328      FF
- 3329              	.LBE1117:
- 3330              	.LBE1116:
- 3331              	.LBE1115:
- 3332              	.LBE1114:
- 3333              	.LBE1111:
- 3334              	.LBE1110:
- 3335              		.loc 3 1804 0
- 3336 2356 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3336      A0E7FFFF 
-1805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x02);                             /* F(k11): F(k11): F(k11) : F(k11)       */
-1806:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k12   : k13   : k14    : k15          */
- 3337              		.loc 3 1806 0
- 3338 235e 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 3338      50E7FFFF 
- 3339 2366 660FEF95 		pxor	-6240(%rbp), %xmm2
- 3339      A0E7FFFF 
- 3340 236e 660F7F95 		movdqa	%xmm2, -6320(%rbp)
- 3340      50E7FFFF 
-1807:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[3] = v0; /* K12:K13:K14:K15 */
- 3341              		.loc 3 1807 0
- 3342 2376 488B8548 		movq	-5816(%rbp), %rax
- 3342      E9FFFF
- 3343 237d 4883C030 		addq	$48, %rax
- 3344 2381 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 3344      50E7FFFF 
- 3345 2389 660F7F00 		movdqa	%xmm0, (%rax)
-1808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k15   : k15   : k15    : k15          */
- 3346              		.loc 3 1808 0
- 3347 238d 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 3347      50E7FFFF 
- 3348 2395 660F7F95 		movdqa	%xmm2, -6240(%rbp)
- 3348      A0E7FFFF 
- 3349 239d 660F6F85 		movdqa	-6240(%rbp), %xmm0
- 3349      A0E7FFFF 
- 3350 23a5 F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 3350      60EFFFFF 
- 3351 23ad F30F6F85 		movdqu	-4256(%rbp), %xmm0
- 3351      60EFFFFF 
- 3352 23b5 F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 3352      80EFFFFF 
- 3353              	.LBB1118:
- 3354              	.LBB1119:
- 3355              	.LBB1120:
- 3356              	.LBB1121:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3357              		.loc 1 450 0
- 3358 23bd F30F6F85 		movdqu	-4224(%rbp), %xmm0
- 3358      80EFFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 132
-
-
- 3359 23c5 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 3359      FF
- 3360              	.LBE1121:
- 3361              	.LBE1120:
- 3362              	.LBE1119:
- 3363              	.LBE1118:
- 3364              		.loc 3 1808 0
- 3365 23ca 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3365      A0E7FFFF 
-1809:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k16   : k17   : k16    : k17          */
- 3366              		.loc 3 1809 0
- 3367 23d2 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 3367      60E7FFFF 
- 3368 23da 660FEF95 		pxor	-6240(%rbp), %xmm2
- 3368      A0E7FFFF 
- 3369 23e2 660F7F95 		movdqa	%xmm2, -6304(%rbp)
- 3369      60E7FFFF 
-1810:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1811:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1812:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 */
-1813:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1814:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 3370              		.loc 3 1815 0
- 3371 23ea 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 3371      60E7FFFF 
- 3372 23f2 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3372      A0E7FFFF 
- 3373 23fa 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 3373      A0E7FFFF 
- 3374 2402 F30F7F95 		movdqu	%xmm2, -4192(%rbp)
- 3374      A0EFFFFF 
- 3375              	.LBB1122:
- 3376              	.LBB1123:
-1621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 3377              		.loc 3 1621 0
- 3378 240a F30F6F85 		movdqu	-4192(%rbp), %xmm0
- 3378      A0EFFFFF 
- 3379 2412 660F7F85 		movdqa	%xmm0, -6096(%rbp)
- 3379      30E8FFFF 
- 3380 241a 660F6F95 		movdqa	-6096(%rbp), %xmm2
- 3380      30E8FFFF 
- 3381 2422 F30F7F95 		movdqu	%xmm2, -4160(%rbp)
- 3381      C0EFFFFF 
- 3382              	.LBB1124:
- 3383              	.LBB1125:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 3384              		.loc 1 852 0
- 3385 242a F30F6F85 		movdqu	-4160(%rbp), %xmm0
- 3385      C0EFFFFF 
- 3386 2432 660F3ADF 		aeskeygenassist	$4, %xmm0, %xmm0
- 3386      C004
- 3387              	.LBE1125:
- 3388              	.LBE1124:
-1622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 3389              		.loc 3 1622 0
- 3390 2438 660F7F85 		movdqa	%xmm0, -6096(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 133
-
-
- 3390      30E8FFFF 
- 3391 2440 660F6F85 		movdqa	-6096(%rbp), %xmm0
- 3391      30E8FFFF 
- 3392 2448 F30F7F85 		movdqu	%xmm0, -4144(%rbp)
- 3392      D0EFFFFF 
- 3393 2450 F30F6F85 		movdqu	-4144(%rbp), %xmm0
- 3393      D0EFFFFF 
- 3394 2458 F30F7F85 		movdqu	%xmm0, -4112(%rbp)
- 3394      F0EFFFFF 
- 3395              	.LBB1126:
- 3396              	.LBB1127:
- 3397              	.LBB1128:
- 3398              	.LBB1129:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3399              		.loc 1 450 0
- 3400 2460 F30F6F85 		movdqu	-4112(%rbp), %xmm0
- 3400      F0EFFFFF 
- 3401 2468 660F70C0 		pshufd	$85, %xmm0, %xmm0
- 3401      55
- 3402              	.LBE1129:
- 3403              	.LBE1128:
- 3404              	.LBE1127:
- 3405              	.LBE1126:
- 3406              	.LBE1123:
- 3407              	.LBE1122:
- 3408              		.loc 3 1815 0
- 3409 246d 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3409      A0E7FFFF 
- 3410 2475 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 3410      50E7FFFF 
- 3411 247d F30F7F95 		movdqu	%xmm2, -4096(%rbp)
- 3411      00F0FFFF 
- 3412              	.LBB1130:
- 3413              	.LBB1131:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3414              		.loc 3 1565 0
- 3415 2485 F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 3415      00F0FFFF 
- 3416 248d 660F7F85 		movdqa	%xmm0, -6080(%rbp)
- 3416      40E8FFFF 
- 3417 2495 660F6F95 		movdqa	-6080(%rbp), %xmm2
- 3417      40E8FFFF 
- 3418 249d F30F7F95 		movdqu	%xmm2, -4080(%rbp)
- 3418      10F0FFFF 
- 3419              	.LBB1132:
- 3420              	.LBB1133:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3421              		.loc 3 1278 0
- 3422 24a5 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3422      00000000 
- 3423 24ad F30F6F8D 		movdqu	-4080(%rbp), %xmm1
- 3423      10F0FFFF 
- 3424 24b5 F30F7F8D 		movdqu	%xmm1, -4048(%rbp)
- 3424      30F0FFFF 
- 3425 24bd F30F7F85 		movdqu	%xmm0, -4064(%rbp)
- 3425      20F0FFFF 
- 3426 24c5 F30F6F85 		movdqu	-4048(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 134
-
-
- 3426      30F0FFFF 
- 3427 24cd F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 3427      50F0FFFF 
- 3428 24d5 F30F6F85 		movdqu	-4064(%rbp), %xmm0
- 3428      20F0FFFF 
- 3429 24dd F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 3429      40F0FFFF 
- 3430              	.LBB1134:
- 3431              	.LBB1135:
- 3432              	.LBB1136:
- 3433              	.LBB1137:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3434              		.loc 1 529 0
- 3435 24e5 F30F6F8D 		movdqu	-4032(%rbp), %xmm1
- 3435      40F0FFFF 
- 3436 24ed F30F6F85 		movdqu	-4016(%rbp), %xmm0
- 3436      50F0FFFF 
- 3437 24f5 660F3800 		pshufb	%xmm1, %xmm0
- 3437      C1
- 3438              	.LBE1137:
- 3439              	.LBE1136:
- 3440              	.LBE1135:
- 3441              	.LBE1134:
- 3442              	.LBE1133:
- 3443              	.LBE1132:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3444              		.loc 3 1567 0
- 3445 24fa 660F7F85 		movdqa	%xmm0, -6080(%rbp)
- 3445      40E8FFFF 
- 3446 2502 660F6F85 		movdqa	-6080(%rbp), %xmm0
- 3446      40E8FFFF 
- 3447 250a 660FEF85 		pxor	-4096(%rbp), %xmm0
- 3447      00F0FFFF 
- 3448 2512 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 3448      00F0FFFF 
- 3449 251a 660F6F85 		movdqa	-6080(%rbp), %xmm0
- 3449      40E8FFFF 
- 3450 2522 F30F7F85 		movdqu	%xmm0, -4000(%rbp)
- 3450      60F0FFFF 
- 3451              	.LBB1138:
- 3452              	.LBB1139:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3453              		.loc 3 1278 0
- 3454 252a 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3454      00000000 
- 3455 2532 F30F6F8D 		movdqu	-4000(%rbp), %xmm1
- 3455      60F0FFFF 
- 3456 253a F30F7F8D 		movdqu	%xmm1, -3968(%rbp)
- 3456      80F0FFFF 
- 3457 2542 F30F7F85 		movdqu	%xmm0, -3984(%rbp)
- 3457      70F0FFFF 
- 3458 254a F30F6F85 		movdqu	-3968(%rbp), %xmm0
- 3458      80F0FFFF 
- 3459 2552 F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 3459      A0F0FFFF 
- 3460 255a F30F6F85 		movdqu	-3984(%rbp), %xmm0
- 3460      70F0FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 135
-
-
- 3461 2562 F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 3461      90F0FFFF 
- 3462              	.LBB1140:
- 3463              	.LBB1141:
- 3464              	.LBB1142:
- 3465              	.LBB1143:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3466              		.loc 1 529 0
- 3467 256a F30F6F8D 		movdqu	-3952(%rbp), %xmm1
- 3467      90F0FFFF 
- 3468 2572 F30F6F85 		movdqu	-3936(%rbp), %xmm0
- 3468      A0F0FFFF 
- 3469 257a 660F3800 		pshufb	%xmm1, %xmm0
- 3469      C1
- 3470              	.LBE1143:
- 3471              	.LBE1142:
- 3472              	.LBE1141:
- 3473              	.LBE1140:
- 3474              	.LBE1139:
- 3475              	.LBE1138:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3476              		.loc 3 1568 0
- 3477 257f 660F7F85 		movdqa	%xmm0, -6080(%rbp)
- 3477      40E8FFFF 
- 3478 2587 660F6F85 		movdqa	-6080(%rbp), %xmm0
- 3478      40E8FFFF 
- 3479 258f 660FEF85 		pxor	-4096(%rbp), %xmm0
- 3479      00F0FFFF 
- 3480 2597 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 3480      00F0FFFF 
- 3481 259f 660F6F95 		movdqa	-6080(%rbp), %xmm2
- 3481      40E8FFFF 
- 3482 25a7 F30F7F95 		movdqu	%xmm2, -3920(%rbp)
- 3482      B0F0FFFF 
- 3483              	.LBB1144:
- 3484              	.LBB1145:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3485              		.loc 3 1278 0
- 3486 25af 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3486      00000000 
- 3487 25b7 F30F6F8D 		movdqu	-3920(%rbp), %xmm1
- 3487      B0F0FFFF 
- 3488 25bf F30F7F8D 		movdqu	%xmm1, -3888(%rbp)
- 3488      D0F0FFFF 
- 3489 25c7 F30F7F85 		movdqu	%xmm0, -3904(%rbp)
- 3489      C0F0FFFF 
- 3490 25cf F30F6F85 		movdqu	-3888(%rbp), %xmm0
- 3490      D0F0FFFF 
- 3491 25d7 F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 3491      F0F0FFFF 
- 3492 25df F30F6F85 		movdqu	-3904(%rbp), %xmm0
- 3492      C0F0FFFF 
- 3493 25e7 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 3493      E0F0FFFF 
- 3494              	.LBB1146:
- 3495              	.LBB1147:
- 3496              	.LBB1148:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 136
-
-
- 3497              	.LBB1149:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3498              		.loc 1 529 0
- 3499 25ef F30F6F8D 		movdqu	-3872(%rbp), %xmm1
- 3499      E0F0FFFF 
- 3500 25f7 F30F6F85 		movdqu	-3856(%rbp), %xmm0
- 3500      F0F0FFFF 
- 3501 25ff 660F3800 		pshufb	%xmm1, %xmm0
- 3501      C1
- 3502              	.LBE1149:
- 3503              	.LBE1148:
- 3504              	.LBE1147:
- 3505              	.LBE1146:
- 3506              	.LBE1145:
- 3507              	.LBE1144:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3508              		.loc 3 1569 0
- 3509 2604 660F7F85 		movdqa	%xmm0, -6080(%rbp)
- 3509      40E8FFFF 
- 3510 260c 660F6F85 		movdqa	-6080(%rbp), %xmm0
- 3510      40E8FFFF 
- 3511 2614 660FEF85 		pxor	-4096(%rbp), %xmm0
- 3511      00F0FFFF 
- 3512 261c F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 3512      00F0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3513              		.loc 3 1571 0
- 3514 2624 F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 3514      00F0FFFF 
- 3515              	.LBE1131:
- 3516              	.LBE1130:
-1816:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x04);                             /* F(k17): F(k17): F(k17) : F(k17)       */
-1817:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k12   :k12^k13:k12^k13^k14:k12^k13^k14^k15 */
- 3517              		.loc 3 1817 0
- 3518 262c 660F7F85 		movdqa	%xmm0, -6272(%rbp)
- 3518      80E7FFFF 
-1818:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k18   : k19   : k20    : k21          */
- 3519              		.loc 3 1818 0
- 3520 2634 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 3520      80E7FFFF 
- 3521 263c 660FEF85 		pxor	-6240(%rbp), %xmm0
- 3521      A0E7FFFF 
- 3522 2644 660F7F85 		movdqa	%xmm0, -6272(%rbp)
- 3522      80E7FFFF 
- 3523 264c 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 3523      60E7FFFF 
- 3524 2654 F30F7F95 		movdqu	%xmm2, -3840(%rbp)
- 3524      00F1FFFF 
- 3525              	.LBB1150:
- 3526              	.LBB1151:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3527              		.loc 3 1565 0
- 3528 265c F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 3528      00F1FFFF 
- 3529 2664 660F7F85 		movdqa	%xmm0, -6064(%rbp)
- 3529      50E8FFFF 
- 3530 266c 660F6F95 		movdqa	-6064(%rbp), %xmm2
-
GAS LISTING /tmp/ccPaCTqg.s 			page 137
-
-
- 3530      50E8FFFF 
- 3531 2674 F30F7F95 		movdqu	%xmm2, -3824(%rbp)
- 3531      10F1FFFF 
- 3532              	.LBB1152:
- 3533              	.LBB1153:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3534              		.loc 3 1278 0
- 3535 267c 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3535      00000000 
- 3536 2684 F30F6F8D 		movdqu	-3824(%rbp), %xmm1
- 3536      10F1FFFF 
- 3537 268c F30F7F8D 		movdqu	%xmm1, -3792(%rbp)
- 3537      30F1FFFF 
- 3538 2694 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 3538      20F1FFFF 
- 3539 269c F30F6F85 		movdqu	-3792(%rbp), %xmm0
- 3539      30F1FFFF 
- 3540 26a4 F30F7F85 		movdqu	%xmm0, -3760(%rbp)
- 3540      50F1FFFF 
- 3541 26ac F30F6F85 		movdqu	-3808(%rbp), %xmm0
- 3541      20F1FFFF 
- 3542 26b4 F30F7F85 		movdqu	%xmm0, -3776(%rbp)
- 3542      40F1FFFF 
- 3543              	.LBB1154:
- 3544              	.LBB1155:
- 3545              	.LBB1156:
- 3546              	.LBB1157:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3547              		.loc 1 529 0
- 3548 26bc F30F6F8D 		movdqu	-3776(%rbp), %xmm1
- 3548      40F1FFFF 
- 3549 26c4 F30F6F85 		movdqu	-3760(%rbp), %xmm0
- 3549      50F1FFFF 
- 3550 26cc 660F3800 		pshufb	%xmm1, %xmm0
- 3550      C1
- 3551              	.LBE1157:
- 3552              	.LBE1156:
- 3553              	.LBE1155:
- 3554              	.LBE1154:
- 3555              	.LBE1153:
- 3556              	.LBE1152:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3557              		.loc 3 1567 0
- 3558 26d1 660F7F85 		movdqa	%xmm0, -6064(%rbp)
- 3558      50E8FFFF 
- 3559 26d9 660F6F85 		movdqa	-6064(%rbp), %xmm0
- 3559      50E8FFFF 
- 3560 26e1 660FEF85 		pxor	-3840(%rbp), %xmm0
- 3560      00F1FFFF 
- 3561 26e9 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 3561      00F1FFFF 
- 3562 26f1 660F6F85 		movdqa	-6064(%rbp), %xmm0
- 3562      50E8FFFF 
- 3563 26f9 F30F7F85 		movdqu	%xmm0, -3744(%rbp)
- 3563      60F1FFFF 
- 3564              	.LBB1158:
- 3565              	.LBB1159:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 138
-
-
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3566              		.loc 3 1278 0
- 3567 2701 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3567      00000000 
- 3568 2709 F30F6F8D 		movdqu	-3744(%rbp), %xmm1
- 3568      60F1FFFF 
- 3569 2711 F30F7F8D 		movdqu	%xmm1, -3712(%rbp)
- 3569      80F1FFFF 
- 3570 2719 F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 3570      70F1FFFF 
- 3571 2721 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 3571      80F1FFFF 
- 3572 2729 F30F7F85 		movdqu	%xmm0, -3680(%rbp)
- 3572      A0F1FFFF 
- 3573 2731 F30F6F85 		movdqu	-3728(%rbp), %xmm0
- 3573      70F1FFFF 
- 3574 2739 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 3574      90F1FFFF 
- 3575              	.LBB1160:
- 3576              	.LBB1161:
- 3577              	.LBB1162:
- 3578              	.LBB1163:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3579              		.loc 1 529 0
- 3580 2741 F30F6F8D 		movdqu	-3696(%rbp), %xmm1
- 3580      90F1FFFF 
- 3581 2749 F30F6F85 		movdqu	-3680(%rbp), %xmm0
- 3581      A0F1FFFF 
- 3582 2751 660F3800 		pshufb	%xmm1, %xmm0
- 3582      C1
- 3583              	.LBE1163:
- 3584              	.LBE1162:
- 3585              	.LBE1161:
- 3586              	.LBE1160:
- 3587              	.LBE1159:
- 3588              	.LBE1158:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3589              		.loc 3 1568 0
- 3590 2756 660F7F85 		movdqa	%xmm0, -6064(%rbp)
- 3590      50E8FFFF 
- 3591 275e 660F6F85 		movdqa	-6064(%rbp), %xmm0
- 3591      50E8FFFF 
- 3592 2766 660FEF85 		pxor	-3840(%rbp), %xmm0
- 3592      00F1FFFF 
- 3593 276e F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 3593      00F1FFFF 
- 3594 2776 660F6F95 		movdqa	-6064(%rbp), %xmm2
- 3594      50E8FFFF 
- 3595 277e F30F7F95 		movdqu	%xmm2, -3664(%rbp)
- 3595      B0F1FFFF 
- 3596              	.LBB1164:
- 3597              	.LBB1165:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3598              		.loc 3 1278 0
- 3599 2786 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3599      00000000 
- 3600 278e F30F6F8D 		movdqu	-3664(%rbp), %xmm1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 139
-
-
- 3600      B0F1FFFF 
- 3601 2796 F30F7F8D 		movdqu	%xmm1, -3632(%rbp)
- 3601      D0F1FFFF 
- 3602 279e F30F7F85 		movdqu	%xmm0, -3648(%rbp)
- 3602      C0F1FFFF 
- 3603 27a6 F30F6F85 		movdqu	-3632(%rbp), %xmm0
- 3603      D0F1FFFF 
- 3604 27ae F30F7F85 		movdqu	%xmm0, -3600(%rbp)
- 3604      F0F1FFFF 
- 3605 27b6 F30F6F85 		movdqu	-3648(%rbp), %xmm0
- 3605      C0F1FFFF 
- 3606 27be F30F7F85 		movdqu	%xmm0, -3616(%rbp)
- 3606      E0F1FFFF 
- 3607              	.LBB1166:
- 3608              	.LBB1167:
- 3609              	.LBB1168:
- 3610              	.LBB1169:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3611              		.loc 1 529 0
- 3612 27c6 F30F6F8D 		movdqu	-3616(%rbp), %xmm1
- 3612      E0F1FFFF 
- 3613 27ce F30F6F85 		movdqu	-3600(%rbp), %xmm0
- 3613      F0F1FFFF 
- 3614 27d6 660F3800 		pshufb	%xmm1, %xmm0
- 3614      C1
- 3615              	.LBE1169:
- 3616              	.LBE1168:
- 3617              	.LBE1167:
- 3618              	.LBE1166:
- 3619              	.LBE1165:
- 3620              	.LBE1164:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3621              		.loc 3 1569 0
- 3622 27db 660F7F85 		movdqa	%xmm0, -6064(%rbp)
- 3622      50E8FFFF 
- 3623 27e3 660F6F85 		movdqa	-6064(%rbp), %xmm0
- 3623      50E8FFFF 
- 3624 27eb 660FEF85 		pxor	-3840(%rbp), %xmm0
- 3624      00F1FFFF 
- 3625 27f3 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 3625      00F1FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3626              		.loc 3 1571 0
- 3627 27fb F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 3627      00F1FFFF 
- 3628              	.LBE1151:
- 3629              	.LBE1150:
-1819:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k16   :k16^k17: k17    : 0            */
- 3630              		.loc 3 1819 0
- 3631 2803 660F7F85 		movdqa	%xmm0, -6256(%rbp)
- 3631      90E7FFFF 
-1820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k21   : k21   : k21    : k21          */
- 3632              		.loc 3 1820 0
- 3633 280b 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 3633      80E7FFFF 
- 3634 2813 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3634      A0E7FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 140
-
-
- 3635 281b 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 3635      A0E7FFFF 
- 3636 2823 F30F7F95 		movdqu	%xmm2, -3584(%rbp)
- 3636      00F2FFFF 
- 3637 282b F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 3637      00F2FFFF 
- 3638 2833 F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 3638      20F2FFFF 
- 3639              	.LBB1170:
- 3640              	.LBB1171:
- 3641              	.LBB1172:
- 3642              	.LBB1173:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3643              		.loc 1 450 0
- 3644 283b F30F6F85 		movdqu	-3552(%rbp), %xmm0
- 3644      20F2FFFF 
- 3645 2843 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 3645      FF
- 3646              	.LBE1173:
- 3647              	.LBE1172:
- 3648              	.LBE1171:
- 3649              	.LBE1170:
- 3650              		.loc 3 1820 0
- 3651 2848 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3651      A0E7FFFF 
-1821:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k22   : k23   : x      : x            */
- 3652              		.loc 3 1821 0
- 3653 2850 660F6F85 		movdqa	-6256(%rbp), %xmm0
- 3653      90E7FFFF 
- 3654 2858 660FEF85 		pxor	-6240(%rbp), %xmm0
- 3654      A0E7FFFF 
- 3655 2860 660F7F85 		movdqa	%xmm0, -6256(%rbp)
- 3655      90E7FFFF 
- 3656 2868 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 3656      60E7FFFF 
- 3657 2870 F30F7F95 		movdqu	%xmm2, -3520(%rbp)
- 3657      40F2FFFF 
- 3658 2878 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 3658      80E7FFFF 
- 3659 2880 F30F7F85 		movdqu	%xmm0, -3536(%rbp)
- 3659      30F2FFFF 
- 3660 2888 F30F6F85 		movdqu	-3520(%rbp), %xmm0
- 3660      40F2FFFF 
- 3661 2890 F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 3661      70F2FFFF 
- 3662 2898 F30F6F85 		movdqu	-3536(%rbp), %xmm0
- 3662      30F2FFFF 
- 3663 28a0 F30F7F85 		movdqu	%xmm0, -3488(%rbp)
- 3663      60F2FFFF 
- 3664              	.LBB1174:
- 3665              	.LBB1175:
- 3666              	.LBB1176:
- 3667              	.LBB1177:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 3668              		.loc 1 366 0
- 3669 28a8 F20F1085 		movsd	-3488(%rbp), %xmm0
- 3669      60F2FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 141
-
-
- 3670 28b0 660F1685 		movhpd	-3480(%rbp), %xmm0
- 3670      68F2FFFF 
- 3671 28b8 F20F108D 		movsd	-3472(%rbp), %xmm1
- 3671      70F2FFFF 
- 3672 28c0 660F168D 		movhpd	-3464(%rbp), %xmm1
- 3672      78F2FFFF 
- 3673 28c8 660F28D1 		movapd	%xmm1, %xmm2
- 3674 28cc 660F14D0 		unpcklpd	%xmm0, %xmm2
- 3675 28d0 660F28C2 		movapd	%xmm2, %xmm0
- 3676              	.LBE1177:
- 3677              	.LBE1176:
- 3678              	.LBE1175:
- 3679              	.LBE1174:
-1822:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k16   : k17   : k18    : k19          */
- 3680              		.loc 3 1822 0
- 3681 28d4 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 3681      60E7FFFF 
-1823:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[4] = v1; /* K16:K17:K18:K19 */
- 3682              		.loc 3 1823 0
- 3683 28dc 488B8548 		movq	-5816(%rbp), %rax
- 3683      E9FFFF
- 3684 28e3 4883C040 		addq	$64, %rax
- 3685 28e7 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 3685      60E7FFFF 
- 3686 28ef 660F7F00 		movdqa	%xmm0, (%rax)
- 3687 28f3 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 3687      80E7FFFF 
- 3688 28fb F30F7F95 		movdqu	%xmm2, -3440(%rbp)
- 3688      90F2FFFF 
- 3689 2903 660F6F85 		movdqa	-6256(%rbp), %xmm0
- 3689      90E7FFFF 
- 3690 290b F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 3690      80F2FFFF 
- 3691 2913 F30F6F85 		movdqu	-3440(%rbp), %xmm0
- 3691      90F2FFFF 
- 3692 291b F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 3692      C0F2FFFF 
- 3693 2923 F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 3693      80F2FFFF 
- 3694 292b F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 3694      B0F2FFFF 
- 3695              	.LBB1178:
- 3696              	.LBB1179:
- 3697              	.LBB1180:
- 3698              	.LBB1181:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 3699              		.loc 1 366 0
- 3700 2933 F20F108D 		movsd	-3408(%rbp), %xmm1
- 3700      B0F2FFFF 
- 3701 293b 660F168D 		movhpd	-3400(%rbp), %xmm1
- 3701      B8F2FFFF 
- 3702 2943 F20F1085 		movsd	-3392(%rbp), %xmm0
- 3702      C0F2FFFF 
- 3703 294b 660F1685 		movhpd	-3384(%rbp), %xmm0
- 3703      C8F2FFFF 
- 3704 2953 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 3704      01
-
GAS LISTING /tmp/ccPaCTqg.s 			page 142
-
-
- 3705              	.LBE1181:
- 3706              	.LBE1180:
- 3707              	.LBE1179:
- 3708              	.LBE1178:
-1824:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1825:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k20   : k21   : k22    : k23          */
- 3709              		.loc 3 1825 0
- 3710 2958 660F7F85 		movdqa	%xmm0, -6288(%rbp)
- 3710      70E7FFFF 
-1826:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[5] = v2; /* K20:K21:K22:K23 */
- 3711              		.loc 3 1826 0
- 3712 2960 488B8548 		movq	-5816(%rbp), %rax
- 3712      E9FFFF
- 3713 2967 4883C050 		addq	$80, %rax
- 3714 296b 660F6F95 		movdqa	-6288(%rbp), %xmm2
- 3714      70E7FFFF 
- 3715 2973 660F7F10 		movdqa	%xmm2, (%rax)
- 3716 2977 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 3716      80E7FFFF 
- 3717 297f F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 3717      D0F2FFFF 
- 3718              	.LBB1182:
- 3719              	.LBB1183:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3720              		.loc 3 1565 0
- 3721 2987 F30F6F95 		movdqu	-3376(%rbp), %xmm2
- 3721      D0F2FFFF 
- 3722 298f 660F7F95 		movdqa	%xmm2, -6048(%rbp)
- 3722      60E8FFFF 
- 3723 2997 660F6F85 		movdqa	-6048(%rbp), %xmm0
- 3723      60E8FFFF 
- 3724 299f F30F7F85 		movdqu	%xmm0, -3360(%rbp)
- 3724      E0F2FFFF 
- 3725              	.LBB1184:
- 3726              	.LBB1185:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3727              		.loc 3 1278 0
- 3728 29a7 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3728      00000000 
- 3729 29af F30F6F8D 		movdqu	-3360(%rbp), %xmm1
- 3729      E0F2FFFF 
- 3730 29b7 F30F7F8D 		movdqu	%xmm1, -3328(%rbp)
- 3730      00F3FFFF 
- 3731 29bf F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 3731      F0F2FFFF 
- 3732 29c7 F30F6F85 		movdqu	-3328(%rbp), %xmm0
- 3732      00F3FFFF 
- 3733 29cf F30F7F85 		movdqu	%xmm0, -3296(%rbp)
- 3733      20F3FFFF 
- 3734 29d7 F30F6F85 		movdqu	-3344(%rbp), %xmm0
- 3734      F0F2FFFF 
- 3735 29df F30F7F85 		movdqu	%xmm0, -3312(%rbp)
- 3735      10F3FFFF 
- 3736              	.LBB1186:
- 3737              	.LBB1187:
- 3738              	.LBB1188:
- 3739              	.LBB1189:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 143
-
-
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3740              		.loc 1 529 0
- 3741 29e7 F30F6F8D 		movdqu	-3312(%rbp), %xmm1
- 3741      10F3FFFF 
- 3742 29ef F30F6F85 		movdqu	-3296(%rbp), %xmm0
- 3742      20F3FFFF 
- 3743 29f7 660F3800 		pshufb	%xmm1, %xmm0
- 3743      C1
- 3744              	.LBE1189:
- 3745              	.LBE1188:
- 3746              	.LBE1187:
- 3747              	.LBE1186:
- 3748              	.LBE1185:
- 3749              	.LBE1184:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3750              		.loc 3 1567 0
- 3751 29fc 660F7F85 		movdqa	%xmm0, -6048(%rbp)
- 3751      60E8FFFF 
- 3752 2a04 660F6F85 		movdqa	-6048(%rbp), %xmm0
- 3752      60E8FFFF 
- 3753 2a0c 660FEF85 		pxor	-3376(%rbp), %xmm0
- 3753      D0F2FFFF 
- 3754 2a14 F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 3754      D0F2FFFF 
- 3755 2a1c 660F6F95 		movdqa	-6048(%rbp), %xmm2
- 3755      60E8FFFF 
- 3756 2a24 F30F7F95 		movdqu	%xmm2, -3280(%rbp)
- 3756      30F3FFFF 
- 3757              	.LBB1190:
- 3758              	.LBB1191:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3759              		.loc 3 1278 0
- 3760 2a2c 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3760      00000000 
- 3761 2a34 F30F6F8D 		movdqu	-3280(%rbp), %xmm1
- 3761      30F3FFFF 
- 3762 2a3c F30F7F8D 		movdqu	%xmm1, -3248(%rbp)
- 3762      50F3FFFF 
- 3763 2a44 F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 3763      40F3FFFF 
- 3764 2a4c F30F6F85 		movdqu	-3248(%rbp), %xmm0
- 3764      50F3FFFF 
- 3765 2a54 F30F7F85 		movdqu	%xmm0, -3216(%rbp)
- 3765      70F3FFFF 
- 3766 2a5c F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 3766      40F3FFFF 
- 3767 2a64 F30F7F85 		movdqu	%xmm0, -3232(%rbp)
- 3767      60F3FFFF 
- 3768              	.LBB1192:
- 3769              	.LBB1193:
- 3770              	.LBB1194:
- 3771              	.LBB1195:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3772              		.loc 1 529 0
- 3773 2a6c F30F6F8D 		movdqu	-3232(%rbp), %xmm1
- 3773      60F3FFFF 
- 3774 2a74 F30F6F85 		movdqu	-3216(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 144
-
-
- 3774      70F3FFFF 
- 3775 2a7c 660F3800 		pshufb	%xmm1, %xmm0
- 3775      C1
- 3776              	.LBE1195:
- 3777              	.LBE1194:
- 3778              	.LBE1193:
- 3779              	.LBE1192:
- 3780              	.LBE1191:
- 3781              	.LBE1190:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3782              		.loc 3 1568 0
- 3783 2a81 660F7F85 		movdqa	%xmm0, -6048(%rbp)
- 3783      60E8FFFF 
- 3784 2a89 660F6F85 		movdqa	-6048(%rbp), %xmm0
- 3784      60E8FFFF 
- 3785 2a91 660FEF85 		pxor	-3376(%rbp), %xmm0
- 3785      D0F2FFFF 
- 3786 2a99 F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 3786      D0F2FFFF 
- 3787 2aa1 660F6F85 		movdqa	-6048(%rbp), %xmm0
- 3787      60E8FFFF 
- 3788 2aa9 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 3788      80F3FFFF 
- 3789              	.LBB1196:
- 3790              	.LBB1197:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3791              		.loc 3 1278 0
- 3792 2ab1 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3792      00000000 
- 3793 2ab9 F30F6F8D 		movdqu	-3200(%rbp), %xmm1
- 3793      80F3FFFF 
- 3794 2ac1 F30F7F8D 		movdqu	%xmm1, -3168(%rbp)
- 3794      A0F3FFFF 
- 3795 2ac9 F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 3795      90F3FFFF 
- 3796 2ad1 F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 3796      A0F3FFFF 
- 3797 2ad9 F30F7F85 		movdqu	%xmm0, -3136(%rbp)
- 3797      C0F3FFFF 
- 3798 2ae1 F30F6F85 		movdqu	-3184(%rbp), %xmm0
- 3798      90F3FFFF 
- 3799 2ae9 F30F7F85 		movdqu	%xmm0, -3152(%rbp)
- 3799      B0F3FFFF 
- 3800              	.LBB1198:
- 3801              	.LBB1199:
- 3802              	.LBB1200:
- 3803              	.LBB1201:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3804              		.loc 1 529 0
- 3805 2af1 F30F6F8D 		movdqu	-3152(%rbp), %xmm1
- 3805      B0F3FFFF 
- 3806 2af9 F30F6F85 		movdqu	-3136(%rbp), %xmm0
- 3806      C0F3FFFF 
- 3807 2b01 660F3800 		pshufb	%xmm1, %xmm0
- 3807      C1
- 3808              	.LBE1201:
- 3809              	.LBE1200:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 145
-
-
- 3810              	.LBE1199:
- 3811              	.LBE1198:
- 3812              	.LBE1197:
- 3813              	.LBE1196:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3814              		.loc 3 1569 0
- 3815 2b06 660F7F85 		movdqa	%xmm0, -6048(%rbp)
- 3815      60E8FFFF 
- 3816 2b0e 660F6F85 		movdqa	-6048(%rbp), %xmm0
- 3816      60E8FFFF 
- 3817 2b16 660FEF85 		pxor	-3376(%rbp), %xmm0
- 3817      D0F2FFFF 
- 3818 2b1e F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 3818      D0F2FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3819              		.loc 3 1571 0
- 3820 2b26 F30F6F85 		movdqu	-3376(%rbp), %xmm0
- 3820      D0F2FFFF 
- 3821              	.LBE1183:
- 3822              	.LBE1182:
-1827:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1828:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1829:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k18   :k18^k19:k18^k19^k20:k18^k19^k20^k21 */
- 3823              		.loc 3 1829 0
- 3824 2b2e 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 3824      50E7FFFF 
- 3825 2b36 660F6F95 		movdqa	-6256(%rbp), %xmm2
- 3825      90E7FFFF 
- 3826 2b3e F30F7F95 		movdqu	%xmm2, -3120(%rbp)
- 3826      D0F3FFFF 
- 3827              	.LBB1202:
- 3828              	.LBB1203:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3829              		.loc 3 1565 0
- 3830 2b46 F30F6F85 		movdqu	-3120(%rbp), %xmm0
- 3830      D0F3FFFF 
- 3831 2b4e 660F7F85 		movdqa	%xmm0, -6032(%rbp)
- 3831      70E8FFFF 
- 3832 2b56 660F6F95 		movdqa	-6032(%rbp), %xmm2
- 3832      70E8FFFF 
- 3833 2b5e F30F7F95 		movdqu	%xmm2, -3104(%rbp)
- 3833      E0F3FFFF 
- 3834              	.LBB1204:
- 3835              	.LBB1205:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3836              		.loc 3 1278 0
- 3837 2b66 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3837      00000000 
- 3838 2b6e F30F6F8D 		movdqu	-3104(%rbp), %xmm1
- 3838      E0F3FFFF 
- 3839 2b76 F30F7F8D 		movdqu	%xmm1, -3072(%rbp)
- 3839      00F4FFFF 
- 3840 2b7e F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 3840      F0F3FFFF 
- 3841 2b86 F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 3841      00F4FFFF 
- 3842 2b8e F30F7F85 		movdqu	%xmm0, -3040(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 146
-
-
- 3842      20F4FFFF 
- 3843 2b96 F30F6F85 		movdqu	-3088(%rbp), %xmm0
- 3843      F0F3FFFF 
- 3844 2b9e F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 3844      10F4FFFF 
- 3845              	.LBB1206:
- 3846              	.LBB1207:
- 3847              	.LBB1208:
- 3848              	.LBB1209:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3849              		.loc 1 529 0
- 3850 2ba6 F30F6F8D 		movdqu	-3056(%rbp), %xmm1
- 3850      10F4FFFF 
- 3851 2bae F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 3851      20F4FFFF 
- 3852 2bb6 660F3800 		pshufb	%xmm1, %xmm0
- 3852      C1
- 3853              	.LBE1209:
- 3854              	.LBE1208:
- 3855              	.LBE1207:
- 3856              	.LBE1206:
- 3857              	.LBE1205:
- 3858              	.LBE1204:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3859              		.loc 3 1567 0
- 3860 2bbb 660F7F85 		movdqa	%xmm0, -6032(%rbp)
- 3860      70E8FFFF 
- 3861 2bc3 660F6F85 		movdqa	-6032(%rbp), %xmm0
- 3861      70E8FFFF 
- 3862 2bcb 660FEF85 		pxor	-3120(%rbp), %xmm0
- 3862      D0F3FFFF 
- 3863 2bd3 F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 3863      D0F3FFFF 
- 3864 2bdb 660F6F85 		movdqa	-6032(%rbp), %xmm0
- 3864      70E8FFFF 
- 3865 2be3 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 3865      30F4FFFF 
- 3866              	.LBB1210:
- 3867              	.LBB1211:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3868              		.loc 3 1278 0
- 3869 2beb 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3869      00000000 
- 3870 2bf3 F30F6F8D 		movdqu	-3024(%rbp), %xmm1
- 3870      30F4FFFF 
- 3871 2bfb F30F7F8D 		movdqu	%xmm1, -2992(%rbp)
- 3871      50F4FFFF 
- 3872 2c03 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 3872      40F4FFFF 
- 3873 2c0b F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 3873      50F4FFFF 
- 3874 2c13 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 3874      70F4FFFF 
- 3875 2c1b F30F6F85 		movdqu	-3008(%rbp), %xmm0
- 3875      40F4FFFF 
- 3876 2c23 F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 3876      60F4FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 147
-
-
- 3877              	.LBB1212:
- 3878              	.LBB1213:
- 3879              	.LBB1214:
- 3880              	.LBB1215:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3881              		.loc 1 529 0
- 3882 2c2b F30F6F8D 		movdqu	-2976(%rbp), %xmm1
- 3882      60F4FFFF 
- 3883 2c33 F30F6F85 		movdqu	-2960(%rbp), %xmm0
- 3883      70F4FFFF 
- 3884 2c3b 660F3800 		pshufb	%xmm1, %xmm0
- 3884      C1
- 3885              	.LBE1215:
- 3886              	.LBE1214:
- 3887              	.LBE1213:
- 3888              	.LBE1212:
- 3889              	.LBE1211:
- 3890              	.LBE1210:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3891              		.loc 3 1568 0
- 3892 2c40 660F7F85 		movdqa	%xmm0, -6032(%rbp)
- 3892      70E8FFFF 
- 3893 2c48 660F6F85 		movdqa	-6032(%rbp), %xmm0
- 3893      70E8FFFF 
- 3894 2c50 660FEF85 		pxor	-3120(%rbp), %xmm0
- 3894      D0F3FFFF 
- 3895 2c58 F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 3895      D0F3FFFF 
- 3896 2c60 660F6F95 		movdqa	-6032(%rbp), %xmm2
- 3896      70E8FFFF 
- 3897 2c68 F30F7F95 		movdqu	%xmm2, -2944(%rbp)
- 3897      80F4FFFF 
- 3898              	.LBB1216:
- 3899              	.LBB1217:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3900              		.loc 3 1278 0
- 3901 2c70 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 3901      00000000 
- 3902 2c78 F30F6F8D 		movdqu	-2944(%rbp), %xmm1
- 3902      80F4FFFF 
- 3903 2c80 F30F7F8D 		movdqu	%xmm1, -2912(%rbp)
- 3903      A0F4FFFF 
- 3904 2c88 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 3904      90F4FFFF 
- 3905 2c90 F30F6F85 		movdqu	-2912(%rbp), %xmm0
- 3905      A0F4FFFF 
- 3906 2c98 F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 3906      C0F4FFFF 
- 3907 2ca0 F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 3907      90F4FFFF 
- 3908 2ca8 F30F7F85 		movdqu	%xmm0, -2896(%rbp)
- 3908      B0F4FFFF 
- 3909              	.LBB1218:
- 3910              	.LBB1219:
- 3911              	.LBB1220:
- 3912              	.LBB1221:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 148
-
-
- 3913              		.loc 1 529 0
- 3914 2cb0 F30F6F8D 		movdqu	-2896(%rbp), %xmm1
- 3914      B0F4FFFF 
- 3915 2cb8 F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 3915      C0F4FFFF 
- 3916 2cc0 660F3800 		pshufb	%xmm1, %xmm0
- 3916      C1
- 3917              	.LBE1221:
- 3918              	.LBE1220:
- 3919              	.LBE1219:
- 3920              	.LBE1218:
- 3921              	.LBE1217:
- 3922              	.LBE1216:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3923              		.loc 3 1569 0
- 3924 2cc5 660F7F85 		movdqa	%xmm0, -6032(%rbp)
- 3924      70E8FFFF 
- 3925 2ccd 660F6F85 		movdqa	-6032(%rbp), %xmm0
- 3925      70E8FFFF 
- 3926 2cd5 660FEF85 		pxor	-3120(%rbp), %xmm0
- 3926      D0F3FFFF 
- 3927 2cdd F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 3927      D0F3FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3928              		.loc 3 1571 0
- 3929 2ce5 F30F6F85 		movdqu	-3120(%rbp), %xmm0
- 3929      D0F3FFFF 
- 3930              	.LBE1203:
- 3931              	.LBE1202:
-1830:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k22   :k22^k23: k23    : 0            */
- 3932              		.loc 3 1830 0
- 3933 2ced 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 3933      60E7FFFF 
-1831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 3934              		.loc 3 1831 0
- 3935 2cf5 660F6F85 		movdqa	-6288(%rbp), %xmm0
- 3935      70E7FFFF 
- 3936 2cfd 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3936      A0E7FFFF 
- 3937 2d05 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 3937      A0E7FFFF 
- 3938 2d0d F30F7F95 		movdqu	%xmm2, -2848(%rbp)
- 3938      E0F4FFFF 
- 3939              	.LBB1222:
- 3940              	.LBB1223:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 3941              		.loc 3 1673 0
- 3942 2d15 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 3942      E0F4FFFF 
- 3943 2d1d 660F7F85 		movdqa	%xmm0, -6016(%rbp)
- 3943      80E8FFFF 
- 3944 2d25 660F6F95 		movdqa	-6016(%rbp), %xmm2
- 3944      80E8FFFF 
- 3945 2d2d F30F7F95 		movdqu	%xmm2, -2816(%rbp)
- 3945      00F5FFFF 
- 3946              	.LBB1224:
- 3947              	.LBB1225:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 149
-
-
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 3948              		.loc 1 852 0
- 3949 2d35 F30F6F85 		movdqu	-2816(%rbp), %xmm0
- 3949      00F5FFFF 
- 3950 2d3d 660F3ADF 		aeskeygenassist	$8, %xmm0, %xmm0
- 3950      C008
- 3951              	.LBE1225:
- 3952              	.LBE1224:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 3953              		.loc 3 1674 0
- 3954 2d43 660F7F85 		movdqa	%xmm0, -6016(%rbp)
- 3954      80E8FFFF 
- 3955 2d4b 660F6F85 		movdqa	-6016(%rbp), %xmm0
- 3955      80E8FFFF 
- 3956 2d53 F30F7F85 		movdqu	%xmm0, -2800(%rbp)
- 3956      10F5FFFF 
- 3957 2d5b F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 3957      10F5FFFF 
- 3958 2d63 F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 3958      30F5FFFF 
- 3959              	.LBB1226:
- 3960              	.LBB1227:
- 3961              	.LBB1228:
- 3962              	.LBB1229:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3963              		.loc 1 450 0
- 3964 2d6b F30F6F85 		movdqu	-2768(%rbp), %xmm0
- 3964      30F5FFFF 
- 3965 2d73 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 3965      FF
- 3966              	.LBE1229:
- 3967              	.LBE1228:
- 3968              	.LBE1227:
- 3969              	.LBE1226:
- 3970              	.LBE1223:
- 3971              	.LBE1222:
- 3972              		.loc 3 1831 0
- 3973 2d78 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3973      A0E7FFFF 
-1832:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x08);                             /* F(k23): F(k23): F(k23) : F(k23)       */
-1833:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k24   : k25   : k26    : k27          */
- 3974              		.loc 3 1833 0
- 3975 2d80 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 3975      50E7FFFF 
- 3976 2d88 660FEF95 		pxor	-6240(%rbp), %xmm2
- 3976      A0E7FFFF 
- 3977 2d90 660F7F95 		movdqa	%xmm2, -6320(%rbp)
- 3977      50E7FFFF 
-1834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k27   : k27   : k27    : k27          */
- 3978              		.loc 3 1834 0
- 3979 2d98 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 3979      50E7FFFF 
- 3980 2da0 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3980      A0E7FFFF 
- 3981 2da8 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 3981      A0E7FFFF 
- 3982 2db0 F30F7F95 		movdqu	%xmm2, -2752(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 150
-
-
- 3982      40F5FFFF 
- 3983 2db8 F30F6F85 		movdqu	-2752(%rbp), %xmm0
- 3983      40F5FFFF 
- 3984 2dc0 F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 3984      60F5FFFF 
- 3985              	.LBB1230:
- 3986              	.LBB1231:
- 3987              	.LBB1232:
- 3988              	.LBB1233:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3989              		.loc 1 450 0
- 3990 2dc8 F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 3990      60F5FFFF 
- 3991 2dd0 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 3991      FF
- 3992              	.LBE1233:
- 3993              	.LBE1232:
- 3994              	.LBE1231:
- 3995              	.LBE1230:
- 3996              		.loc 3 1834 0
- 3997 2dd5 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 3997      A0E7FFFF 
-1835:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k28   : k29   : x      : x            */
- 3998              		.loc 3 1835 0
- 3999 2ddd 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 3999      60E7FFFF 
- 4000 2de5 660FEF85 		pxor	-6240(%rbp), %xmm0
- 4000      A0E7FFFF 
- 4001 2ded 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 4001      60E7FFFF 
-1836:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1837:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[6] = v0; /* K24:K25:K26:K27 */
- 4002              		.loc 3 1837 0
- 4003 2df5 488B8548 		movq	-5816(%rbp), %rax
- 4003      E9FFFF
- 4004 2dfc 4883C060 		addq	$96, %rax
- 4005 2e00 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 4005      50E7FFFF 
- 4006 2e08 660F7F10 		movdqa	%xmm2, (%rax)
-1838:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1839:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 4-15 = 28-39 */
-1840:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1841:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 4007              		.loc 3 1842 0
- 4008 2e0c 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 4008      60E7FFFF 
- 4009 2e14 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4009      A0E7FFFF 
- 4010 2e1c 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 4010      A0E7FFFF 
- 4011 2e24 F30F7F95 		movdqu	%xmm2, -2688(%rbp)
- 4011      80F5FFFF 
- 4012              	.LBB1234:
- 4013              	.LBB1235:
-1621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 4014              		.loc 3 1621 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 151
-
-
- 4015 2e2c F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 4015      80F5FFFF 
- 4016 2e34 660F7F85 		movdqa	%xmm0, -6000(%rbp)
- 4016      90E8FFFF 
- 4017 2e3c 660F6F95 		movdqa	-6000(%rbp), %xmm2
- 4017      90E8FFFF 
- 4018 2e44 F30F7F95 		movdqu	%xmm2, -2656(%rbp)
- 4018      A0F5FFFF 
- 4019              	.LBB1236:
- 4020              	.LBB1237:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 4021              		.loc 1 852 0
- 4022 2e4c F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 4022      A0F5FFFF 
- 4023 2e54 660F3ADF 		aeskeygenassist	$16, %xmm0, %xmm0
- 4023      C010
- 4024              	.LBE1237:
- 4025              	.LBE1236:
-1622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 4026              		.loc 3 1622 0
- 4027 2e5a 660F7F85 		movdqa	%xmm0, -6000(%rbp)
- 4027      90E8FFFF 
- 4028 2e62 660F6F85 		movdqa	-6000(%rbp), %xmm0
- 4028      90E8FFFF 
- 4029 2e6a F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 4029      B0F5FFFF 
- 4030 2e72 F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 4030      B0F5FFFF 
- 4031 2e7a F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 4031      D0F5FFFF 
- 4032              	.LBB1238:
- 4033              	.LBB1239:
- 4034              	.LBB1240:
- 4035              	.LBB1241:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4036              		.loc 1 450 0
- 4037 2e82 F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 4037      D0F5FFFF 
- 4038 2e8a 660F70C0 		pshufd	$85, %xmm0, %xmm0
- 4038      55
- 4039              	.LBE1241:
- 4040              	.LBE1240:
- 4041              	.LBE1239:
- 4042              	.LBE1238:
- 4043              	.LBE1235:
- 4044              	.LBE1234:
- 4045              		.loc 3 1842 0
- 4046 2e8f 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4046      A0E7FFFF 
- 4047 2e97 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 4047      50E7FFFF 
- 4048 2e9f F30F7F95 		movdqu	%xmm2, -2592(%rbp)
- 4048      E0F5FFFF 
- 4049              	.LBB1242:
- 4050              	.LBB1243:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4051              		.loc 3 1565 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 152
-
-
- 4052 2ea7 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 4052      E0F5FFFF 
- 4053 2eaf 660F7F85 		movdqa	%xmm0, -5984(%rbp)
- 4053      A0E8FFFF 
- 4054 2eb7 660F6F95 		movdqa	-5984(%rbp), %xmm2
- 4054      A0E8FFFF 
- 4055 2ebf F30F7F95 		movdqu	%xmm2, -2576(%rbp)
- 4055      F0F5FFFF 
- 4056              	.LBB1244:
- 4057              	.LBB1245:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4058              		.loc 3 1278 0
- 4059 2ec7 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4059      00000000 
- 4060 2ecf F30F6F8D 		movdqu	-2576(%rbp), %xmm1
- 4060      F0F5FFFF 
- 4061 2ed7 F30F7F8D 		movdqu	%xmm1, -2544(%rbp)
- 4061      10F6FFFF 
- 4062 2edf F30F7F85 		movdqu	%xmm0, -2560(%rbp)
- 4062      00F6FFFF 
- 4063 2ee7 F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 4063      10F6FFFF 
- 4064 2eef F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 4064      30F6FFFF 
- 4065 2ef7 F30F6F85 		movdqu	-2560(%rbp), %xmm0
- 4065      00F6FFFF 
- 4066 2eff F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 4066      20F6FFFF 
- 4067              	.LBB1246:
- 4068              	.LBB1247:
- 4069              	.LBB1248:
- 4070              	.LBB1249:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4071              		.loc 1 529 0
- 4072 2f07 F30F6F8D 		movdqu	-2528(%rbp), %xmm1
- 4072      20F6FFFF 
- 4073 2f0f F30F6F85 		movdqu	-2512(%rbp), %xmm0
- 4073      30F6FFFF 
- 4074 2f17 660F3800 		pshufb	%xmm1, %xmm0
- 4074      C1
- 4075              	.LBE1249:
- 4076              	.LBE1248:
- 4077              	.LBE1247:
- 4078              	.LBE1246:
- 4079              	.LBE1245:
- 4080              	.LBE1244:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4081              		.loc 3 1567 0
- 4082 2f1c 660F7F85 		movdqa	%xmm0, -5984(%rbp)
- 4082      A0E8FFFF 
- 4083 2f24 660F6F85 		movdqa	-5984(%rbp), %xmm0
- 4083      A0E8FFFF 
- 4084 2f2c 660FEF85 		pxor	-2592(%rbp), %xmm0
- 4084      E0F5FFFF 
- 4085 2f34 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 4085      E0F5FFFF 
- 4086 2f3c 660F6F85 		movdqa	-5984(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 153
-
-
- 4086      A0E8FFFF 
- 4087 2f44 F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 4087      40F6FFFF 
- 4088              	.LBB1250:
- 4089              	.LBB1251:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4090              		.loc 3 1278 0
- 4091 2f4c 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4091      00000000 
- 4092 2f54 F30F6F8D 		movdqu	-2496(%rbp), %xmm1
- 4092      40F6FFFF 
- 4093 2f5c F30F7F8D 		movdqu	%xmm1, -2464(%rbp)
- 4093      60F6FFFF 
- 4094 2f64 F30F7F85 		movdqu	%xmm0, -2480(%rbp)
- 4094      50F6FFFF 
- 4095 2f6c F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 4095      60F6FFFF 
- 4096 2f74 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 4096      80F6FFFF 
- 4097 2f7c F30F6F85 		movdqu	-2480(%rbp), %xmm0
- 4097      50F6FFFF 
- 4098 2f84 F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 4098      70F6FFFF 
- 4099              	.LBB1252:
- 4100              	.LBB1253:
- 4101              	.LBB1254:
- 4102              	.LBB1255:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4103              		.loc 1 529 0
- 4104 2f8c F30F6F8D 		movdqu	-2448(%rbp), %xmm1
- 4104      70F6FFFF 
- 4105 2f94 F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 4105      80F6FFFF 
- 4106 2f9c 660F3800 		pshufb	%xmm1, %xmm0
- 4106      C1
- 4107              	.LBE1255:
- 4108              	.LBE1254:
- 4109              	.LBE1253:
- 4110              	.LBE1252:
- 4111              	.LBE1251:
- 4112              	.LBE1250:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4113              		.loc 3 1568 0
- 4114 2fa1 660F7F85 		movdqa	%xmm0, -5984(%rbp)
- 4114      A0E8FFFF 
- 4115 2fa9 660F6F85 		movdqa	-5984(%rbp), %xmm0
- 4115      A0E8FFFF 
- 4116 2fb1 660FEF85 		pxor	-2592(%rbp), %xmm0
- 4116      E0F5FFFF 
- 4117 2fb9 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 4117      E0F5FFFF 
- 4118 2fc1 660F6F95 		movdqa	-5984(%rbp), %xmm2
- 4118      A0E8FFFF 
- 4119 2fc9 F30F7F95 		movdqu	%xmm2, -2416(%rbp)
- 4119      90F6FFFF 
- 4120              	.LBB1256:
- 4121              	.LBB1257:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 154
-
-
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4122              		.loc 3 1278 0
- 4123 2fd1 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4123      00000000 
- 4124 2fd9 F30F6F8D 		movdqu	-2416(%rbp), %xmm1
- 4124      90F6FFFF 
- 4125 2fe1 F30F7F8D 		movdqu	%xmm1, -2384(%rbp)
- 4125      B0F6FFFF 
- 4126 2fe9 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 4126      A0F6FFFF 
- 4127 2ff1 F30F6F85 		movdqu	-2384(%rbp), %xmm0
- 4127      B0F6FFFF 
- 4128 2ff9 F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 4128      D0F6FFFF 
- 4129 3001 F30F6F85 		movdqu	-2400(%rbp), %xmm0
- 4129      A0F6FFFF 
- 4130 3009 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 4130      C0F6FFFF 
- 4131              	.LBB1258:
- 4132              	.LBB1259:
- 4133              	.LBB1260:
- 4134              	.LBB1261:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4135              		.loc 1 529 0
- 4136 3011 F30F6F8D 		movdqu	-2368(%rbp), %xmm1
- 4136      C0F6FFFF 
- 4137 3019 F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 4137      D0F6FFFF 
- 4138 3021 660F3800 		pshufb	%xmm1, %xmm0
- 4138      C1
- 4139              	.LBE1261:
- 4140              	.LBE1260:
- 4141              	.LBE1259:
- 4142              	.LBE1258:
- 4143              	.LBE1257:
- 4144              	.LBE1256:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4145              		.loc 3 1569 0
- 4146 3026 660F7F85 		movdqa	%xmm0, -5984(%rbp)
- 4146      A0E8FFFF 
- 4147 302e 660F6F85 		movdqa	-5984(%rbp), %xmm0
- 4147      A0E8FFFF 
- 4148 3036 660FEF85 		pxor	-2592(%rbp), %xmm0
- 4148      E0F5FFFF 
- 4149 303e F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 4149      E0F5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4150              		.loc 3 1571 0
- 4151 3046 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 4151      E0F5FFFF 
- 4152              	.LBE1243:
- 4153              	.LBE1242:
-1843:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x10);                             /* F(k29): F(k29): F(k29) : F(k29)       */
-1844:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k24   :k24^k25:k24^k25^k26:k24^k25^k26^k27 */
- 4154              		.loc 3 1844 0
- 4155 304e 660F7F85 		movdqa	%xmm0, -6272(%rbp)
- 4155      80E7FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 155
-
-
-1845:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k30   : k31   : k32    : k33          */
- 4156              		.loc 3 1845 0
- 4157 3056 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 4157      80E7FFFF 
- 4158 305e 660FEF85 		pxor	-6240(%rbp), %xmm0
- 4158      A0E7FFFF 
- 4159 3066 660F7F85 		movdqa	%xmm0, -6272(%rbp)
- 4159      80E7FFFF 
- 4160 306e 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 4160      60E7FFFF 
- 4161 3076 F30F7F95 		movdqu	%xmm2, -2336(%rbp)
- 4161      E0F6FFFF 
- 4162              	.LBB1262:
- 4163              	.LBB1263:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4164              		.loc 3 1565 0
- 4165 307e F30F6F85 		movdqu	-2336(%rbp), %xmm0
- 4165      E0F6FFFF 
- 4166 3086 660F7F85 		movdqa	%xmm0, -5968(%rbp)
- 4166      B0E8FFFF 
- 4167 308e 660F6F95 		movdqa	-5968(%rbp), %xmm2
- 4167      B0E8FFFF 
- 4168 3096 F30F7F95 		movdqu	%xmm2, -2320(%rbp)
- 4168      F0F6FFFF 
- 4169              	.LBB1264:
- 4170              	.LBB1265:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4171              		.loc 3 1278 0
- 4172 309e 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4172      00000000 
- 4173 30a6 F30F6F8D 		movdqu	-2320(%rbp), %xmm1
- 4173      F0F6FFFF 
- 4174 30ae F30F7F8D 		movdqu	%xmm1, -2288(%rbp)
- 4174      10F7FFFF 
- 4175 30b6 F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 4175      00F7FFFF 
- 4176 30be F30F6F85 		movdqu	-2288(%rbp), %xmm0
- 4176      10F7FFFF 
- 4177 30c6 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 4177      30F7FFFF 
- 4178 30ce F30F6F85 		movdqu	-2304(%rbp), %xmm0
- 4178      00F7FFFF 
- 4179 30d6 F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 4179      20F7FFFF 
- 4180              	.LBB1266:
- 4181              	.LBB1267:
- 4182              	.LBB1268:
- 4183              	.LBB1269:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4184              		.loc 1 529 0
- 4185 30de F30F6F8D 		movdqu	-2272(%rbp), %xmm1
- 4185      20F7FFFF 
- 4186 30e6 F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 4186      30F7FFFF 
- 4187 30ee 660F3800 		pshufb	%xmm1, %xmm0
- 4187      C1
- 4188              	.LBE1269:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 156
-
-
- 4189              	.LBE1268:
- 4190              	.LBE1267:
- 4191              	.LBE1266:
- 4192              	.LBE1265:
- 4193              	.LBE1264:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4194              		.loc 3 1567 0
- 4195 30f3 660F7F85 		movdqa	%xmm0, -5968(%rbp)
- 4195      B0E8FFFF 
- 4196 30fb 660F6F85 		movdqa	-5968(%rbp), %xmm0
- 4196      B0E8FFFF 
- 4197 3103 660FEF85 		pxor	-2336(%rbp), %xmm0
- 4197      E0F6FFFF 
- 4198 310b F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 4198      E0F6FFFF 
- 4199 3113 660F6F85 		movdqa	-5968(%rbp), %xmm0
- 4199      B0E8FFFF 
- 4200 311b F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 4200      40F7FFFF 
- 4201              	.LBB1270:
- 4202              	.LBB1271:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4203              		.loc 3 1278 0
- 4204 3123 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4204      00000000 
- 4205 312b F30F6F8D 		movdqu	-2240(%rbp), %xmm1
- 4205      40F7FFFF 
- 4206 3133 F30F7F8D 		movdqu	%xmm1, -2208(%rbp)
- 4206      60F7FFFF 
- 4207 313b F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 4207      50F7FFFF 
- 4208 3143 F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 4208      60F7FFFF 
- 4209 314b F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 4209      80F7FFFF 
- 4210 3153 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 4210      50F7FFFF 
- 4211 315b F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 4211      70F7FFFF 
- 4212              	.LBB1272:
- 4213              	.LBB1273:
- 4214              	.LBB1274:
- 4215              	.LBB1275:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4216              		.loc 1 529 0
- 4217 3163 F30F6F8D 		movdqu	-2192(%rbp), %xmm1
- 4217      70F7FFFF 
- 4218 316b F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 4218      80F7FFFF 
- 4219 3173 660F3800 		pshufb	%xmm1, %xmm0
- 4219      C1
- 4220              	.LBE1275:
- 4221              	.LBE1274:
- 4222              	.LBE1273:
- 4223              	.LBE1272:
- 4224              	.LBE1271:
- 4225              	.LBE1270:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 157
-
-
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4226              		.loc 3 1568 0
- 4227 3178 660F7F85 		movdqa	%xmm0, -5968(%rbp)
- 4227      B0E8FFFF 
- 4228 3180 660F6F85 		movdqa	-5968(%rbp), %xmm0
- 4228      B0E8FFFF 
- 4229 3188 660FEF85 		pxor	-2336(%rbp), %xmm0
- 4229      E0F6FFFF 
- 4230 3190 F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 4230      E0F6FFFF 
- 4231 3198 660F6F95 		movdqa	-5968(%rbp), %xmm2
- 4231      B0E8FFFF 
- 4232 31a0 F30F7F95 		movdqu	%xmm2, -2160(%rbp)
- 4232      90F7FFFF 
- 4233              	.LBB1276:
- 4234              	.LBB1277:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4235              		.loc 3 1278 0
- 4236 31a8 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4236      00000000 
- 4237 31b0 F30F6F8D 		movdqu	-2160(%rbp), %xmm1
- 4237      90F7FFFF 
- 4238 31b8 F30F7F8D 		movdqu	%xmm1, -2128(%rbp)
- 4238      B0F7FFFF 
- 4239 31c0 F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 4239      A0F7FFFF 
- 4240 31c8 F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 4240      B0F7FFFF 
- 4241 31d0 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 4241      D0F7FFFF 
- 4242 31d8 F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 4242      A0F7FFFF 
- 4243 31e0 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 4243      C0F7FFFF 
- 4244              	.LBB1278:
- 4245              	.LBB1279:
- 4246              	.LBB1280:
- 4247              	.LBB1281:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4248              		.loc 1 529 0
- 4249 31e8 F30F6F8D 		movdqu	-2112(%rbp), %xmm1
- 4249      C0F7FFFF 
- 4250 31f0 F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 4250      D0F7FFFF 
- 4251 31f8 660F3800 		pshufb	%xmm1, %xmm0
- 4251      C1
- 4252              	.LBE1281:
- 4253              	.LBE1280:
- 4254              	.LBE1279:
- 4255              	.LBE1278:
- 4256              	.LBE1277:
- 4257              	.LBE1276:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4258              		.loc 3 1569 0
- 4259 31fd 660F7F85 		movdqa	%xmm0, -5968(%rbp)
- 4259      B0E8FFFF 
- 4260 3205 660F6F85 		movdqa	-5968(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 158
-
-
- 4260      B0E8FFFF 
- 4261 320d 660FEF85 		pxor	-2336(%rbp), %xmm0
- 4261      E0F6FFFF 
- 4262 3215 F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 4262      E0F6FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4263              		.loc 3 1571 0
- 4264 321d F30F6F85 		movdqu	-2336(%rbp), %xmm0
- 4264      E0F6FFFF 
- 4265              	.LBE1263:
- 4266              	.LBE1262:
-1846:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k26   :k28^k29: k29    : 0            */
- 4267              		.loc 3 1846 0
- 4268 3225 660F7F85 		movdqa	%xmm0, -6256(%rbp)
- 4268      90E7FFFF 
-1847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k33   : k33   : k33    : k33          */
- 4269              		.loc 3 1847 0
- 4270 322d 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 4270      80E7FFFF 
- 4271 3235 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4271      A0E7FFFF 
- 4272 323d 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 4272      A0E7FFFF 
- 4273 3245 F30F7F95 		movdqu	%xmm2, -2080(%rbp)
- 4273      E0F7FFFF 
- 4274 324d F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 4274      E0F7FFFF 
- 4275 3255 F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 4275      00F8FFFF 
- 4276              	.LBB1282:
- 4277              	.LBB1283:
- 4278              	.LBB1284:
- 4279              	.LBB1285:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4280              		.loc 1 450 0
- 4281 325d F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 4281      00F8FFFF 
- 4282 3265 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 4282      FF
- 4283              	.LBE1285:
- 4284              	.LBE1284:
- 4285              	.LBE1283:
- 4286              	.LBE1282:
- 4287              		.loc 3 1847 0
- 4288 326a 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4288      A0E7FFFF 
-1848:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k34   : k35   : x      : x            */
- 4289              		.loc 3 1848 0
- 4290 3272 660F6F85 		movdqa	-6256(%rbp), %xmm0
- 4290      90E7FFFF 
- 4291 327a 660FEF85 		pxor	-6240(%rbp), %xmm0
- 4291      A0E7FFFF 
- 4292 3282 660F7F85 		movdqa	%xmm0, -6256(%rbp)
- 4292      90E7FFFF 
- 4293 328a 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 4293      60E7FFFF 
- 4294 3292 F30F7F95 		movdqu	%xmm2, -2016(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 159
-
-
- 4294      20F8FFFF 
- 4295 329a 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 4295      80E7FFFF 
- 4296 32a2 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 4296      10F8FFFF 
- 4297 32aa F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 4297      20F8FFFF 
- 4298 32b2 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 4298      50F8FFFF 
- 4299 32ba F30F6F85 		movdqu	-2032(%rbp), %xmm0
- 4299      10F8FFFF 
- 4300 32c2 F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 4300      40F8FFFF 
- 4301              	.LBB1286:
- 4302              	.LBB1287:
- 4303              	.LBB1288:
- 4304              	.LBB1289:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 4305              		.loc 1 366 0
- 4306 32ca F20F1085 		movsd	-1984(%rbp), %xmm0
- 4306      40F8FFFF 
- 4307 32d2 660F1685 		movhpd	-1976(%rbp), %xmm0
- 4307      48F8FFFF 
- 4308 32da F20F108D 		movsd	-1968(%rbp), %xmm1
- 4308      50F8FFFF 
- 4309 32e2 660F168D 		movhpd	-1960(%rbp), %xmm1
- 4309      58F8FFFF 
- 4310 32ea 660F28D1 		movapd	%xmm1, %xmm2
- 4311 32ee 660F14D0 		unpcklpd	%xmm0, %xmm2
- 4312 32f2 660F28C2 		movapd	%xmm2, %xmm0
- 4313              	.LBE1289:
- 4314              	.LBE1288:
- 4315              	.LBE1287:
- 4316              	.LBE1286:
-1849:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k28   : k29   : k30    : k31          */
- 4317              		.loc 3 1849 0
- 4318 32f6 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 4318      60E7FFFF 
-1850:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[7] = v1; /* K28:K29:K30:K31 */
- 4319              		.loc 3 1851 0
- 4320 32fe 488B8548 		movq	-5816(%rbp), %rax
- 4320      E9FFFF
- 4321 3305 4883C070 		addq	$112, %rax
- 4322 3309 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 4322      60E7FFFF 
- 4323 3311 660F7F00 		movdqa	%xmm0, (%rax)
- 4324 3315 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 4324      80E7FFFF 
- 4325 331d F30F7F95 		movdqu	%xmm2, -1936(%rbp)
- 4325      70F8FFFF 
- 4326 3325 660F6F85 		movdqa	-6256(%rbp), %xmm0
- 4326      90E7FFFF 
- 4327 332d F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 4327      60F8FFFF 
- 4328 3335 F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 4328      70F8FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 160
-
-
- 4329 333d F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 4329      A0F8FFFF 
- 4330 3345 F30F6F85 		movdqu	-1952(%rbp), %xmm0
- 4330      60F8FFFF 
- 4331 334d F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 4331      90F8FFFF 
- 4332              	.LBB1290:
- 4333              	.LBB1291:
- 4334              	.LBB1292:
- 4335              	.LBB1293:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 4336              		.loc 1 366 0
- 4337 3355 F20F108D 		movsd	-1904(%rbp), %xmm1
- 4337      90F8FFFF 
- 4338 335d 660F168D 		movhpd	-1896(%rbp), %xmm1
- 4338      98F8FFFF 
- 4339 3365 F20F1085 		movsd	-1888(%rbp), %xmm0
- 4339      A0F8FFFF 
- 4340 336d 660F1685 		movhpd	-1880(%rbp), %xmm0
- 4340      A8F8FFFF 
- 4341 3375 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 4341      01
- 4342              	.LBE1293:
- 4343              	.LBE1292:
- 4344              	.LBE1291:
- 4345              	.LBE1290:
-1852:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1853:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k32   : k33   : k34    : k35          */
- 4346              		.loc 3 1853 0
- 4347 337a 660F7F85 		movdqa	%xmm0, -6288(%rbp)
- 4347      70E7FFFF 
-1854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[8] = v2; /* K32:K33:K34:K35 */
- 4348              		.loc 3 1854 0
- 4349 3382 488B8548 		movq	-5816(%rbp), %rax
- 4349      E9FFFF
- 4350 3389 4883E880 		subq	$-128, %rax
- 4351 338d 660F6F95 		movdqa	-6288(%rbp), %xmm2
- 4351      70E7FFFF 
- 4352 3395 660F7F10 		movdqa	%xmm2, (%rax)
- 4353 3399 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 4353      80E7FFFF 
- 4354 33a1 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 4354      B0F8FFFF 
- 4355              	.LBB1294:
- 4356              	.LBB1295:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4357              		.loc 3 1565 0
- 4358 33a9 F30F6F95 		movdqu	-1872(%rbp), %xmm2
- 4358      B0F8FFFF 
- 4359 33b1 660F7F95 		movdqa	%xmm2, -5952(%rbp)
- 4359      C0E8FFFF 
- 4360 33b9 660F6F85 		movdqa	-5952(%rbp), %xmm0
- 4360      C0E8FFFF 
- 4361 33c1 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 4361      C0F8FFFF 
- 4362              	.LBB1296:
- 4363              	.LBB1297:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 161
-
-
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4364              		.loc 3 1278 0
- 4365 33c9 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4365      00000000 
- 4366 33d1 F30F6F8D 		movdqu	-1856(%rbp), %xmm1
- 4366      C0F8FFFF 
- 4367 33d9 F30F7F8D 		movdqu	%xmm1, -1824(%rbp)
- 4367      E0F8FFFF 
- 4368 33e1 F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 4368      D0F8FFFF 
- 4369 33e9 F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 4369      E0F8FFFF 
- 4370 33f1 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 4370      00F9FFFF 
- 4371 33f9 F30F6F85 		movdqu	-1840(%rbp), %xmm0
- 4371      D0F8FFFF 
- 4372 3401 F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 4372      F0F8FFFF 
- 4373              	.LBB1298:
- 4374              	.LBB1299:
- 4375              	.LBB1300:
- 4376              	.LBB1301:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4377              		.loc 1 529 0
- 4378 3409 F30F6F8D 		movdqu	-1808(%rbp), %xmm1
- 4378      F0F8FFFF 
- 4379 3411 F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 4379      00F9FFFF 
- 4380 3419 660F3800 		pshufb	%xmm1, %xmm0
- 4380      C1
- 4381              	.LBE1301:
- 4382              	.LBE1300:
- 4383              	.LBE1299:
- 4384              	.LBE1298:
- 4385              	.LBE1297:
- 4386              	.LBE1296:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4387              		.loc 3 1567 0
- 4388 341e 660F7F85 		movdqa	%xmm0, -5952(%rbp)
- 4388      C0E8FFFF 
- 4389 3426 660F6F85 		movdqa	-5952(%rbp), %xmm0
- 4389      C0E8FFFF 
- 4390 342e 660FEF85 		pxor	-1872(%rbp), %xmm0
- 4390      B0F8FFFF 
- 4391 3436 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 4391      B0F8FFFF 
- 4392 343e 660F6F95 		movdqa	-5952(%rbp), %xmm2
- 4392      C0E8FFFF 
- 4393 3446 F30F7F95 		movdqu	%xmm2, -1776(%rbp)
- 4393      10F9FFFF 
- 4394              	.LBB1302:
- 4395              	.LBB1303:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4396              		.loc 3 1278 0
- 4397 344e 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4397      00000000 
- 4398 3456 F30F6F8D 		movdqu	-1776(%rbp), %xmm1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 162
-
-
- 4398      10F9FFFF 
- 4399 345e F30F7F8D 		movdqu	%xmm1, -1744(%rbp)
- 4399      30F9FFFF 
- 4400 3466 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 4400      20F9FFFF 
- 4401 346e F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 4401      30F9FFFF 
- 4402 3476 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 4402      50F9FFFF 
- 4403 347e F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 4403      20F9FFFF 
- 4404 3486 F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 4404      40F9FFFF 
- 4405              	.LBB1304:
- 4406              	.LBB1305:
- 4407              	.LBB1306:
- 4408              	.LBB1307:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4409              		.loc 1 529 0
- 4410 348e F30F6F8D 		movdqu	-1728(%rbp), %xmm1
- 4410      40F9FFFF 
- 4411 3496 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 4411      50F9FFFF 
- 4412 349e 660F3800 		pshufb	%xmm1, %xmm0
- 4412      C1
- 4413              	.LBE1307:
- 4414              	.LBE1306:
- 4415              	.LBE1305:
- 4416              	.LBE1304:
- 4417              	.LBE1303:
- 4418              	.LBE1302:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4419              		.loc 3 1568 0
- 4420 34a3 660F7F85 		movdqa	%xmm0, -5952(%rbp)
- 4420      C0E8FFFF 
- 4421 34ab 660F6F85 		movdqa	-5952(%rbp), %xmm0
- 4421      C0E8FFFF 
- 4422 34b3 660FEF85 		pxor	-1872(%rbp), %xmm0
- 4422      B0F8FFFF 
- 4423 34bb F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 4423      B0F8FFFF 
- 4424 34c3 660F6F85 		movdqa	-5952(%rbp), %xmm0
- 4424      C0E8FFFF 
- 4425 34cb F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 4425      60F9FFFF 
- 4426              	.LBB1308:
- 4427              	.LBB1309:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4428              		.loc 3 1278 0
- 4429 34d3 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4429      00000000 
- 4430 34db F30F6F8D 		movdqu	-1696(%rbp), %xmm1
- 4430      60F9FFFF 
- 4431 34e3 F30F7F8D 		movdqu	%xmm1, -1664(%rbp)
- 4431      80F9FFFF 
- 4432 34eb F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 4432      70F9FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 163
-
-
- 4433 34f3 F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 4433      80F9FFFF 
- 4434 34fb F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 4434      A0F9FFFF 
- 4435 3503 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 4435      70F9FFFF 
- 4436 350b F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 4436      90F9FFFF 
- 4437              	.LBB1310:
- 4438              	.LBB1311:
- 4439              	.LBB1312:
- 4440              	.LBB1313:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4441              		.loc 1 529 0
- 4442 3513 F30F6F8D 		movdqu	-1648(%rbp), %xmm1
- 4442      90F9FFFF 
- 4443 351b F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 4443      A0F9FFFF 
- 4444 3523 660F3800 		pshufb	%xmm1, %xmm0
- 4444      C1
- 4445              	.LBE1313:
- 4446              	.LBE1312:
- 4447              	.LBE1311:
- 4448              	.LBE1310:
- 4449              	.LBE1309:
- 4450              	.LBE1308:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4451              		.loc 3 1569 0
- 4452 3528 660F7F85 		movdqa	%xmm0, -5952(%rbp)
- 4452      C0E8FFFF 
- 4453 3530 660F6F85 		movdqa	-5952(%rbp), %xmm0
- 4453      C0E8FFFF 
- 4454 3538 660FEF85 		pxor	-1872(%rbp), %xmm0
- 4454      B0F8FFFF 
- 4455 3540 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 4455      B0F8FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4456              		.loc 3 1571 0
- 4457 3548 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 4457      B0F8FFFF 
- 4458              	.LBE1295:
- 4459              	.LBE1294:
-1855:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1856:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k30   :k30^k31:k30^k31^k32:k30^k31^k32^k33 */
- 4460              		.loc 3 1856 0
- 4461 3550 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 4461      50E7FFFF 
- 4462 3558 660F6F95 		movdqa	-6256(%rbp), %xmm2
- 4462      90E7FFFF 
- 4463 3560 F30F7F95 		movdqu	%xmm2, -1616(%rbp)
- 4463      B0F9FFFF 
- 4464              	.LBB1314:
- 4465              	.LBB1315:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4466              		.loc 3 1565 0
- 4467 3568 F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 4467      B0F9FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 164
-
-
- 4468 3570 660F7F85 		movdqa	%xmm0, -5936(%rbp)
- 4468      D0E8FFFF 
- 4469 3578 660F6F95 		movdqa	-5936(%rbp), %xmm2
- 4469      D0E8FFFF 
- 4470 3580 F30F7F95 		movdqu	%xmm2, -1600(%rbp)
- 4470      C0F9FFFF 
- 4471              	.LBB1316:
- 4472              	.LBB1317:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4473              		.loc 3 1278 0
- 4474 3588 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4474      00000000 
- 4475 3590 F30F6F8D 		movdqu	-1600(%rbp), %xmm1
- 4475      C0F9FFFF 
- 4476 3598 F30F7F8D 		movdqu	%xmm1, -1568(%rbp)
- 4476      E0F9FFFF 
- 4477 35a0 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 4477      D0F9FFFF 
- 4478 35a8 F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 4478      E0F9FFFF 
- 4479 35b0 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 4479      00FAFFFF 
- 4480 35b8 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 4480      D0F9FFFF 
- 4481 35c0 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 4481      F0F9FFFF 
- 4482              	.LBB1318:
- 4483              	.LBB1319:
- 4484              	.LBB1320:
- 4485              	.LBB1321:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4486              		.loc 1 529 0
- 4487 35c8 F30F6F8D 		movdqu	-1552(%rbp), %xmm1
- 4487      F0F9FFFF 
- 4488 35d0 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 4488      00FAFFFF 
- 4489 35d8 660F3800 		pshufb	%xmm1, %xmm0
- 4489      C1
- 4490              	.LBE1321:
- 4491              	.LBE1320:
- 4492              	.LBE1319:
- 4493              	.LBE1318:
- 4494              	.LBE1317:
- 4495              	.LBE1316:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4496              		.loc 3 1567 0
- 4497 35dd 660F7F85 		movdqa	%xmm0, -5936(%rbp)
- 4497      D0E8FFFF 
- 4498 35e5 660F6F85 		movdqa	-5936(%rbp), %xmm0
- 4498      D0E8FFFF 
- 4499 35ed 660FEF85 		pxor	-1616(%rbp), %xmm0
- 4499      B0F9FFFF 
- 4500 35f5 F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 4500      B0F9FFFF 
- 4501 35fd 660F6F85 		movdqa	-5936(%rbp), %xmm0
- 4501      D0E8FFFF 
- 4502 3605 F30F7F85 		movdqu	%xmm0, -1520(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 165
-
-
- 4502      10FAFFFF 
- 4503              	.LBB1322:
- 4504              	.LBB1323:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4505              		.loc 3 1278 0
- 4506 360d 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4506      00000000 
- 4507 3615 F30F6F8D 		movdqu	-1520(%rbp), %xmm1
- 4507      10FAFFFF 
- 4508 361d F30F7F8D 		movdqu	%xmm1, -1488(%rbp)
- 4508      30FAFFFF 
- 4509 3625 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 4509      20FAFFFF 
- 4510 362d F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 4510      30FAFFFF 
- 4511 3635 F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 4511      50FAFFFF 
- 4512 363d F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 4512      20FAFFFF 
- 4513 3645 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 4513      40FAFFFF 
- 4514              	.LBB1324:
- 4515              	.LBB1325:
- 4516              	.LBB1326:
- 4517              	.LBB1327:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4518              		.loc 1 529 0
- 4519 364d F30F6F8D 		movdqu	-1472(%rbp), %xmm1
- 4519      40FAFFFF 
- 4520 3655 F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 4520      50FAFFFF 
- 4521 365d 660F3800 		pshufb	%xmm1, %xmm0
- 4521      C1
- 4522              	.LBE1327:
- 4523              	.LBE1326:
- 4524              	.LBE1325:
- 4525              	.LBE1324:
- 4526              	.LBE1323:
- 4527              	.LBE1322:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4528              		.loc 3 1568 0
- 4529 3662 660F7F85 		movdqa	%xmm0, -5936(%rbp)
- 4529      D0E8FFFF 
- 4530 366a 660F6F85 		movdqa	-5936(%rbp), %xmm0
- 4530      D0E8FFFF 
- 4531 3672 660FEF85 		pxor	-1616(%rbp), %xmm0
- 4531      B0F9FFFF 
- 4532 367a F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 4532      B0F9FFFF 
- 4533 3682 660F6F95 		movdqa	-5936(%rbp), %xmm2
- 4533      D0E8FFFF 
- 4534 368a F30F7F95 		movdqu	%xmm2, -1440(%rbp)
- 4534      60FAFFFF 
- 4535              	.LBB1328:
- 4536              	.LBB1329:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4537              		.loc 3 1278 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 166
-
-
- 4538 3692 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4538      00000000 
- 4539 369a F30F6F8D 		movdqu	-1440(%rbp), %xmm1
- 4539      60FAFFFF 
- 4540 36a2 F30F7F8D 		movdqu	%xmm1, -1408(%rbp)
- 4540      80FAFFFF 
- 4541 36aa F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 4541      70FAFFFF 
- 4542 36b2 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 4542      80FAFFFF 
- 4543 36ba F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 4543      A0FAFFFF 
- 4544 36c2 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 4544      70FAFFFF 
- 4545 36ca F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 4545      90FAFFFF 
- 4546              	.LBB1330:
- 4547              	.LBB1331:
- 4548              	.LBB1332:
- 4549              	.LBB1333:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4550              		.loc 1 529 0
- 4551 36d2 F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 4551      90FAFFFF 
- 4552 36da F30F6F85 		movdqu	-1376(%rbp), %xmm0
- 4552      A0FAFFFF 
- 4553 36e2 660F3800 		pshufb	%xmm1, %xmm0
- 4553      C1
- 4554              	.LBE1333:
- 4555              	.LBE1332:
- 4556              	.LBE1331:
- 4557              	.LBE1330:
- 4558              	.LBE1329:
- 4559              	.LBE1328:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4560              		.loc 3 1569 0
- 4561 36e7 660F7F85 		movdqa	%xmm0, -5936(%rbp)
- 4561      D0E8FFFF 
- 4562 36ef 660F6F85 		movdqa	-5936(%rbp), %xmm0
- 4562      D0E8FFFF 
- 4563 36f7 660FEF85 		pxor	-1616(%rbp), %xmm0
- 4563      B0F9FFFF 
- 4564 36ff F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 4564      B0F9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4565              		.loc 3 1571 0
- 4566 3707 F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 4566      B0F9FFFF 
- 4567              	.LBE1315:
- 4568              	.LBE1314:
-1857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k26   :k26^k27: k27    : 0            */
- 4569              		.loc 3 1857 0
- 4570 370f 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 4570      60E7FFFF 
-1858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 4571              		.loc 3 1858 0
- 4572 3717 660F6F85 		movdqa	-6288(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 167
-
-
- 4572      70E7FFFF 
- 4573 371f 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4573      A0E7FFFF 
- 4574 3727 660F6F95 		movdqa	-6240(%rbp), %xmm2
- 4574      A0E7FFFF 
- 4575 372f F30F7F95 		movdqu	%xmm2, -1344(%rbp)
- 4575      C0FAFFFF 
- 4576              	.LBB1334:
- 4577              	.LBB1335:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 4578              		.loc 3 1673 0
- 4579 3737 F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 4579      C0FAFFFF 
- 4580 373f 660F7F85 		movdqa	%xmm0, -5920(%rbp)
- 4580      E0E8FFFF 
- 4581 3747 660F6F95 		movdqa	-5920(%rbp), %xmm2
- 4581      E0E8FFFF 
- 4582 374f F30F7F95 		movdqu	%xmm2, -1312(%rbp)
- 4582      E0FAFFFF 
- 4583              	.LBB1336:
- 4584              	.LBB1337:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 4585              		.loc 1 852 0
- 4586 3757 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 4586      E0FAFFFF 
- 4587 375f 660F3ADF 		aeskeygenassist	$32, %xmm0, %xmm0
- 4587      C020
- 4588              	.LBE1337:
- 4589              	.LBE1336:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 4590              		.loc 3 1674 0
- 4591 3765 660F7F85 		movdqa	%xmm0, -5920(%rbp)
- 4591      E0E8FFFF 
- 4592 376d 660F6F85 		movdqa	-5920(%rbp), %xmm0
- 4592      E0E8FFFF 
- 4593 3775 F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 4593      F0FAFFFF 
- 4594 377d F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 4594      F0FAFFFF 
- 4595 3785 F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 4595      10FBFFFF 
- 4596              	.LBB1338:
- 4597              	.LBB1339:
- 4598              	.LBB1340:
- 4599              	.LBB1341:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4600              		.loc 1 450 0
- 4601 378d F30F6F85 		movdqu	-1264(%rbp), %xmm0
- 4601      10FBFFFF 
- 4602 3795 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 4602      FF
- 4603              	.LBE1341:
- 4604              	.LBE1340:
- 4605              	.LBE1339:
- 4606              	.LBE1338:
- 4607              	.LBE1335:
- 4608              	.LBE1334:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 168
-
-
- 4609              		.loc 3 1858 0
- 4610 379a 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4610      A0E7FFFF 
-1859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x20);                             /* F(k35): F(k35): F(k35) : F(k35)       */
-1860:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k36   : k37   : k38    : k39          */
- 4611              		.loc 3 1860 0
- 4612 37a2 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 4612      50E7FFFF 
- 4613 37aa 660FEF95 		pxor	-6240(%rbp), %xmm2
- 4613      A0E7FFFF 
- 4614 37b2 660F7F95 		movdqa	%xmm2, -6320(%rbp)
- 4614      50E7FFFF 
- 4615 37ba 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 4615      50E7FFFF 
- 4616 37c2 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 4616      20FBFFFF 
- 4617 37ca F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 4617      20FBFFFF 
- 4618 37d2 F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 4618      40FBFFFF 
- 4619              	.LBB1342:
- 4620              	.LBB1343:
- 4621              	.LBB1344:
- 4622              	.LBB1345:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4623              		.loc 1 450 0
- 4624 37da F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 4624      40FBFFFF 
- 4625 37e2 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 4625      FF
- 4626              	.LBE1345:
- 4627              	.LBE1344:
- 4628              	.LBE1343:
- 4629              	.LBE1342:
-1861:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (v0);       /* k39   : k39   : k39    : k39          */
- 4630              		.loc 3 1861 0
- 4631 37e7 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4631      A0E7FFFF 
-1862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k40   : k41   : x      : x            */
- 4632              		.loc 3 1862 0
- 4633 37ef 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 4633      60E7FFFF 
- 4634 37f7 660FEF95 		pxor	-6240(%rbp), %xmm2
- 4634      A0E7FFFF 
- 4635 37ff 660F7F95 		movdqa	%xmm2, -6304(%rbp)
- 4635      60E7FFFF 
-1863:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1864:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[9] = v0; /* K36:K37:K38:K39 */
- 4636              		.loc 3 1864 0
- 4637 3807 488B8548 		movq	-5816(%rbp), %rax
- 4637      E9FFFF
- 4638 380e 48059000 		addq	$144, %rax
- 4638      0000
- 4639 3814 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 4639      50E7FFFF 
- 4640 381c 660F7F00 		movdqa	%xmm0, (%rax)
-1865:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 169
-
-
-1866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 4-15 = 40-55 but we only need through 51 so we change from pattern 2 to pattern 3 */
-1867:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 4641              		.loc 3 1869 0
- 4642 3820 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 4642      60E7FFFF 
- 4643 3828 660F7F95 		movdqa	%xmm2, -6240(%rbp)
- 4643      A0E7FFFF 
- 4644 3830 660F6F85 		movdqa	-6240(%rbp), %xmm0
- 4644      A0E7FFFF 
- 4645 3838 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 4645      60FBFFFF 
- 4646              	.LBB1346:
- 4647              	.LBB1347:
-1621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 4648              		.loc 3 1621 0
- 4649 3840 F30F6F95 		movdqu	-1184(%rbp), %xmm2
- 4649      60FBFFFF 
- 4650 3848 660F7F95 		movdqa	%xmm2, -5904(%rbp)
- 4650      F0E8FFFF 
- 4651 3850 660F6F85 		movdqa	-5904(%rbp), %xmm0
- 4651      F0E8FFFF 
- 4652 3858 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 4652      80FBFFFF 
- 4653              	.LBB1348:
- 4654              	.LBB1349:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 4655              		.loc 1 852 0
- 4656 3860 F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 4656      80FBFFFF 
- 4657 3868 660F3ADF 		aeskeygenassist	$64, %xmm0, %xmm0
- 4657      C040
- 4658              	.LBE1349:
- 4659              	.LBE1348:
-1622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 4660              		.loc 3 1622 0
- 4661 386e 660F7F85 		movdqa	%xmm0, -5904(%rbp)
- 4661      F0E8FFFF 
- 4662 3876 660F6F95 		movdqa	-5904(%rbp), %xmm2
- 4662      F0E8FFFF 
- 4663 387e F30F7F95 		movdqu	%xmm2, -1136(%rbp)
- 4663      90FBFFFF 
- 4664 3886 F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 4664      90FBFFFF 
- 4665 388e F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 4665      B0FBFFFF 
- 4666              	.LBB1350:
- 4667              	.LBB1351:
- 4668              	.LBB1352:
- 4669              	.LBB1353:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4670              		.loc 1 450 0
- 4671 3896 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 4671      B0FBFFFF 
- 4672 389e 660F70C0 		pshufd	$85, %xmm0, %xmm0
- 4672      55
-
GAS LISTING /tmp/ccPaCTqg.s 			page 170
-
-
- 4673              	.LBE1353:
- 4674              	.LBE1352:
- 4675              	.LBE1351:
- 4676              	.LBE1350:
- 4677              	.LBE1347:
- 4678              	.LBE1346:
- 4679              		.loc 3 1869 0
- 4680 38a3 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4680      A0E7FFFF 
- 4681 38ab 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 4681      50E7FFFF 
- 4682 38b3 F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 4682      C0FBFFFF 
- 4683              	.LBB1354:
- 4684              	.LBB1355:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4685              		.loc 3 1565 0
- 4686 38bb F30F6F95 		movdqu	-1088(%rbp), %xmm2
- 4686      C0FBFFFF 
- 4687 38c3 660F7F95 		movdqa	%xmm2, -5888(%rbp)
- 4687      00E9FFFF 
- 4688 38cb 660F6F85 		movdqa	-5888(%rbp), %xmm0
- 4688      00E9FFFF 
- 4689 38d3 F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 4689      D0FBFFFF 
- 4690              	.LBB1356:
- 4691              	.LBB1357:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4692              		.loc 3 1278 0
- 4693 38db 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4693      00000000 
- 4694 38e3 F30F6F8D 		movdqu	-1072(%rbp), %xmm1
- 4694      D0FBFFFF 
- 4695 38eb F30F7F8D 		movdqu	%xmm1, -1040(%rbp)
- 4695      F0FBFFFF 
- 4696 38f3 F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 4696      E0FBFFFF 
- 4697 38fb F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 4697      F0FBFFFF 
- 4698 3903 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 4698      10FCFFFF 
- 4699 390b F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 4699      E0FBFFFF 
- 4700 3913 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 4700      00FCFFFF 
- 4701              	.LBB1358:
- 4702              	.LBB1359:
- 4703              	.LBB1360:
- 4704              	.LBB1361:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4705              		.loc 1 529 0
- 4706 391b F30F6F8D 		movdqu	-1024(%rbp), %xmm1
- 4706      00FCFFFF 
- 4707 3923 F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 4707      10FCFFFF 
- 4708 392b 660F3800 		pshufb	%xmm1, %xmm0
- 4708      C1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 171
-
-
- 4709              	.LBE1361:
- 4710              	.LBE1360:
- 4711              	.LBE1359:
- 4712              	.LBE1358:
- 4713              	.LBE1357:
- 4714              	.LBE1356:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4715              		.loc 3 1567 0
- 4716 3930 660F7F85 		movdqa	%xmm0, -5888(%rbp)
- 4716      00E9FFFF 
- 4717 3938 660F6F85 		movdqa	-5888(%rbp), %xmm0
- 4717      00E9FFFF 
- 4718 3940 660FEF85 		pxor	-1088(%rbp), %xmm0
- 4718      C0FBFFFF 
- 4719 3948 F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 4719      C0FBFFFF 
- 4720 3950 660F6F95 		movdqa	-5888(%rbp), %xmm2
- 4720      00E9FFFF 
- 4721 3958 F30F7F95 		movdqu	%xmm2, -992(%rbp)
- 4721      20FCFFFF 
- 4722              	.LBB1362:
- 4723              	.LBB1363:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4724              		.loc 3 1278 0
- 4725 3960 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4725      00000000 
- 4726 3968 F30F6F8D 		movdqu	-992(%rbp), %xmm1
- 4726      20FCFFFF 
- 4727 3970 F30F7F8D 		movdqu	%xmm1, -960(%rbp)
- 4727      40FCFFFF 
- 4728 3978 F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 4728      30FCFFFF 
- 4729 3980 F30F6F85 		movdqu	-960(%rbp), %xmm0
- 4729      40FCFFFF 
- 4730 3988 F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 4730      60FCFFFF 
- 4731 3990 F30F6F85 		movdqu	-976(%rbp), %xmm0
- 4731      30FCFFFF 
- 4732 3998 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 4732      50FCFFFF 
- 4733              	.LBB1364:
- 4734              	.LBB1365:
- 4735              	.LBB1366:
- 4736              	.LBB1367:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4737              		.loc 1 529 0
- 4738 39a0 F30F6F8D 		movdqu	-944(%rbp), %xmm1
- 4738      50FCFFFF 
- 4739 39a8 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 4739      60FCFFFF 
- 4740 39b0 660F3800 		pshufb	%xmm1, %xmm0
- 4740      C1
- 4741              	.LBE1367:
- 4742              	.LBE1366:
- 4743              	.LBE1365:
- 4744              	.LBE1364:
- 4745              	.LBE1363:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 172
-
-
- 4746              	.LBE1362:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4747              		.loc 3 1568 0
- 4748 39b5 660F7F85 		movdqa	%xmm0, -5888(%rbp)
- 4748      00E9FFFF 
- 4749 39bd 660F6F85 		movdqa	-5888(%rbp), %xmm0
- 4749      00E9FFFF 
- 4750 39c5 660FEF85 		pxor	-1088(%rbp), %xmm0
- 4750      C0FBFFFF 
- 4751 39cd F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 4751      C0FBFFFF 
- 4752 39d5 660F6F85 		movdqa	-5888(%rbp), %xmm0
- 4752      00E9FFFF 
- 4753 39dd F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 4753      70FCFFFF 
- 4754              	.LBB1368:
- 4755              	.LBB1369:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4756              		.loc 3 1278 0
- 4757 39e5 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4757      00000000 
- 4758 39ed F30F6F8D 		movdqu	-912(%rbp), %xmm1
- 4758      70FCFFFF 
- 4759 39f5 F30F7F8D 		movdqu	%xmm1, -880(%rbp)
- 4759      90FCFFFF 
- 4760 39fd F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 4760      80FCFFFF 
- 4761 3a05 F30F6F85 		movdqu	-880(%rbp), %xmm0
- 4761      90FCFFFF 
- 4762 3a0d F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 4762      B0FCFFFF 
- 4763 3a15 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 4763      80FCFFFF 
- 4764 3a1d F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 4764      A0FCFFFF 
- 4765              	.LBB1370:
- 4766              	.LBB1371:
- 4767              	.LBB1372:
- 4768              	.LBB1373:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4769              		.loc 1 529 0
- 4770 3a25 F30F6F8D 		movdqu	-864(%rbp), %xmm1
- 4770      A0FCFFFF 
- 4771 3a2d F30F6F85 		movdqu	-848(%rbp), %xmm0
- 4771      B0FCFFFF 
- 4772 3a35 660F3800 		pshufb	%xmm1, %xmm0
- 4772      C1
- 4773              	.LBE1373:
- 4774              	.LBE1372:
- 4775              	.LBE1371:
- 4776              	.LBE1370:
- 4777              	.LBE1369:
- 4778              	.LBE1368:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4779              		.loc 3 1569 0
- 4780 3a3a 660F7F85 		movdqa	%xmm0, -5888(%rbp)
- 4780      00E9FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 173
-
-
- 4781 3a42 660F6F85 		movdqa	-5888(%rbp), %xmm0
- 4781      00E9FFFF 
- 4782 3a4a 660FEF85 		pxor	-1088(%rbp), %xmm0
- 4782      C0FBFFFF 
- 4783 3a52 F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 4783      C0FBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4784              		.loc 3 1571 0
- 4785 3a5a F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 4785      C0FBFFFF 
- 4786              	.LBE1355:
- 4787              	.LBE1354:
-1870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x40);                             /* F(k41): F(k41): F(k41) : F(k41)       */
-1871:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k36   :k36^k37:k36^k37^k38:k36^k37^k38^k39 */
- 4788              		.loc 3 1871 0
- 4789 3a62 660F7F85 		movdqa	%xmm0, -6272(%rbp)
- 4789      80E7FFFF 
- 4790 3a6a 660F6F95 		movdqa	-6304(%rbp), %xmm2
- 4790      60E7FFFF 
- 4791 3a72 F30F7F95 		movdqu	%xmm2, -832(%rbp)
- 4791      C0FCFFFF 
- 4792              	.LBB1374:
- 4793              	.LBB1375:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4794              		.loc 3 1565 0
- 4795 3a7a F30F6F85 		movdqu	-832(%rbp), %xmm0
- 4795      C0FCFFFF 
- 4796 3a82 660F7F85 		movdqa	%xmm0, -5872(%rbp)
- 4796      10E9FFFF 
- 4797 3a8a 660F6F95 		movdqa	-5872(%rbp), %xmm2
- 4797      10E9FFFF 
- 4798 3a92 F30F7F95 		movdqu	%xmm2, -816(%rbp)
- 4798      D0FCFFFF 
- 4799              	.LBB1376:
- 4800              	.LBB1377:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4801              		.loc 3 1278 0
- 4802 3a9a 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4802      00000000 
- 4803 3aa2 F30F6F8D 		movdqu	-816(%rbp), %xmm1
- 4803      D0FCFFFF 
- 4804 3aaa F30F7F8D 		movdqu	%xmm1, -784(%rbp)
- 4804      F0FCFFFF 
- 4805 3ab2 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 4805      E0FCFFFF 
- 4806 3aba F30F6F85 		movdqu	-784(%rbp), %xmm0
- 4806      F0FCFFFF 
- 4807 3ac2 F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 4807      10FDFFFF 
- 4808 3aca F30F6F85 		movdqu	-800(%rbp), %xmm0
- 4808      E0FCFFFF 
- 4809 3ad2 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 4809      00FDFFFF 
- 4810              	.LBB1378:
- 4811              	.LBB1379:
- 4812              	.LBB1380:
- 4813              	.LBB1381:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 174
-
-
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4814              		.loc 1 529 0
- 4815 3ada F30F6F8D 		movdqu	-768(%rbp), %xmm1
- 4815      00FDFFFF 
- 4816 3ae2 F30F6F85 		movdqu	-752(%rbp), %xmm0
- 4816      10FDFFFF 
- 4817 3aea 660F3800 		pshufb	%xmm1, %xmm0
- 4817      C1
- 4818              	.LBE1381:
- 4819              	.LBE1380:
- 4820              	.LBE1379:
- 4821              	.LBE1378:
- 4822              	.LBE1377:
- 4823              	.LBE1376:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4824              		.loc 3 1567 0
- 4825 3aef 660F7F85 		movdqa	%xmm0, -5872(%rbp)
- 4825      10E9FFFF 
- 4826 3af7 660F6F85 		movdqa	-5872(%rbp), %xmm0
- 4826      10E9FFFF 
- 4827 3aff 660FEF85 		pxor	-832(%rbp), %xmm0
- 4827      C0FCFFFF 
- 4828 3b07 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 4828      C0FCFFFF 
- 4829 3b0f 660F6F85 		movdqa	-5872(%rbp), %xmm0
- 4829      10E9FFFF 
- 4830 3b17 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 4830      20FDFFFF 
- 4831              	.LBB1382:
- 4832              	.LBB1383:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4833              		.loc 3 1278 0
- 4834 3b1f 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4834      00000000 
- 4835 3b27 F30F6F8D 		movdqu	-736(%rbp), %xmm1
- 4835      20FDFFFF 
- 4836 3b2f F30F7F8D 		movdqu	%xmm1, -704(%rbp)
- 4836      40FDFFFF 
- 4837 3b37 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 4837      30FDFFFF 
- 4838 3b3f F30F6F85 		movdqu	-704(%rbp), %xmm0
- 4838      40FDFFFF 
- 4839 3b47 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 4839      60FDFFFF 
- 4840 3b4f F30F6F85 		movdqu	-720(%rbp), %xmm0
- 4840      30FDFFFF 
- 4841 3b57 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 4841      50FDFFFF 
- 4842              	.LBB1384:
- 4843              	.LBB1385:
- 4844              	.LBB1386:
- 4845              	.LBB1387:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4846              		.loc 1 529 0
- 4847 3b5f F30F6F8D 		movdqu	-688(%rbp), %xmm1
- 4847      50FDFFFF 
- 4848 3b67 F30F6F85 		movdqu	-672(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 175
-
-
- 4848      60FDFFFF 
- 4849 3b6f 660F3800 		pshufb	%xmm1, %xmm0
- 4849      C1
- 4850              	.LBE1387:
- 4851              	.LBE1386:
- 4852              	.LBE1385:
- 4853              	.LBE1384:
- 4854              	.LBE1383:
- 4855              	.LBE1382:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4856              		.loc 3 1568 0
- 4857 3b74 660F7F85 		movdqa	%xmm0, -5872(%rbp)
- 4857      10E9FFFF 
- 4858 3b7c 660F6F85 		movdqa	-5872(%rbp), %xmm0
- 4858      10E9FFFF 
- 4859 3b84 660FEF85 		pxor	-832(%rbp), %xmm0
- 4859      C0FCFFFF 
- 4860 3b8c F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 4860      C0FCFFFF 
- 4861 3b94 660F6F95 		movdqa	-5872(%rbp), %xmm2
- 4861      10E9FFFF 
- 4862 3b9c F30F7F95 		movdqu	%xmm2, -656(%rbp)
- 4862      70FDFFFF 
- 4863              	.LBB1388:
- 4864              	.LBB1389:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4865              		.loc 3 1278 0
- 4866 3ba4 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4866      00000000 
- 4867 3bac F30F6F8D 		movdqu	-656(%rbp), %xmm1
- 4867      70FDFFFF 
- 4868 3bb4 F30F7F8D 		movdqu	%xmm1, -624(%rbp)
- 4868      90FDFFFF 
- 4869 3bbc F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 4869      80FDFFFF 
- 4870 3bc4 F30F6F85 		movdqu	-624(%rbp), %xmm0
- 4870      90FDFFFF 
- 4871 3bcc F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 4871      B0FDFFFF 
- 4872 3bd4 F30F6F85 		movdqu	-640(%rbp), %xmm0
- 4872      80FDFFFF 
- 4873 3bdc F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 4873      A0FDFFFF 
- 4874              	.LBB1390:
- 4875              	.LBB1391:
- 4876              	.LBB1392:
- 4877              	.LBB1393:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4878              		.loc 1 529 0
- 4879 3be4 F30F6F8D 		movdqu	-608(%rbp), %xmm1
- 4879      A0FDFFFF 
- 4880 3bec F30F6F85 		movdqu	-592(%rbp), %xmm0
- 4880      B0FDFFFF 
- 4881 3bf4 660F3800 		pshufb	%xmm1, %xmm0
- 4881      C1
- 4882              	.LBE1393:
- 4883              	.LBE1392:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 176
-
-
- 4884              	.LBE1391:
- 4885              	.LBE1390:
- 4886              	.LBE1389:
- 4887              	.LBE1388:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4888              		.loc 3 1569 0
- 4889 3bf9 660F7F85 		movdqa	%xmm0, -5872(%rbp)
- 4889      10E9FFFF 
- 4890 3c01 660F6F85 		movdqa	-5872(%rbp), %xmm0
- 4890      10E9FFFF 
- 4891 3c09 660FEF85 		pxor	-832(%rbp), %xmm0
- 4891      C0FCFFFF 
- 4892 3c11 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 4892      C0FCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4893              		.loc 3 1571 0
- 4894 3c19 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 4894      C0FCFFFF 
- 4895              	.LBE1375:
- 4896              	.LBE1374:
-1872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k40   :k40^k41: x   5  : x            */
- 4897              		.loc 3 1872 0
- 4898 3c21 660F7F85 		movdqa	%xmm0, -6256(%rbp)
- 4898      90E7FFFF 
-1873:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k42   : k43   : k44    : k45          */
- 4899              		.loc 3 1873 0
- 4900 3c29 660F6F85 		movdqa	-6272(%rbp), %xmm0
- 4900      80E7FFFF 
- 4901 3c31 660FEF85 		pxor	-6240(%rbp), %xmm0
- 4901      A0E7FFFF 
- 4902 3c39 660F7F85 		movdqa	%xmm0, -6272(%rbp)
- 4902      80E7FFFF 
-1874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k45   : k45   : k45    : k45          */
- 4903              		.loc 3 1874 0
- 4904 3c41 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 4904      80E7FFFF 
- 4905 3c49 660F7F95 		movdqa	%xmm2, -6240(%rbp)
- 4905      A0E7FFFF 
- 4906 3c51 660F6F85 		movdqa	-6240(%rbp), %xmm0
- 4906      A0E7FFFF 
- 4907 3c59 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 4907      C0FDFFFF 
- 4908 3c61 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 4908      C0FDFFFF 
- 4909 3c69 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 4909      E0FDFFFF 
- 4910              	.LBB1394:
- 4911              	.LBB1395:
- 4912              	.LBB1396:
- 4913              	.LBB1397:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4914              		.loc 1 450 0
- 4915 3c71 F30F6F85 		movdqu	-544(%rbp), %xmm0
- 4915      E0FDFFFF 
- 4916 3c79 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 4916      FF
- 4917              	.LBE1397:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 177
-
-
- 4918              	.LBE1396:
- 4919              	.LBE1395:
- 4920              	.LBE1394:
- 4921              		.loc 3 1874 0
- 4922 3c7e 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 4922      A0E7FFFF 
-1875:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k46   : k47   : x      : x            */
- 4923              		.loc 3 1875 0
- 4924 3c86 660F6F95 		movdqa	-6256(%rbp), %xmm2
- 4924      90E7FFFF 
- 4925 3c8e 660FEF95 		pxor	-6240(%rbp), %xmm2
- 4925      A0E7FFFF 
- 4926 3c96 660F7F95 		movdqa	%xmm2, -6256(%rbp)
- 4926      90E7FFFF 
- 4927 3c9e 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 4927      60E7FFFF 
- 4928 3ca6 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 4928      00FEFFFF 
- 4929 3cae 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 4929      80E7FFFF 
- 4930 3cb6 F30F7F95 		movdqu	%xmm2, -528(%rbp)
- 4930      F0FDFFFF 
- 4931 3cbe F30F6F85 		movdqu	-512(%rbp), %xmm0
- 4931      00FEFFFF 
- 4932 3cc6 F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 4932      30FEFFFF 
- 4933 3cce F30F6F85 		movdqu	-528(%rbp), %xmm0
- 4933      F0FDFFFF 
- 4934 3cd6 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 4934      20FEFFFF 
- 4935              	.LBB1398:
- 4936              	.LBB1399:
- 4937              	.LBB1400:
- 4938              	.LBB1401:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 4939              		.loc 1 366 0
- 4940 3cde F20F1085 		movsd	-480(%rbp), %xmm0
- 4940      20FEFFFF 
- 4941 3ce6 660F1685 		movhpd	-472(%rbp), %xmm0
- 4941      28FEFFFF 
- 4942 3cee F20F108D 		movsd	-464(%rbp), %xmm1
- 4942      30FEFFFF 
- 4943 3cf6 660F168D 		movhpd	-456(%rbp), %xmm1
- 4943      38FEFFFF 
- 4944 3cfe 660F28D1 		movapd	%xmm1, %xmm2
- 4945 3d02 660F14D0 		unpcklpd	%xmm0, %xmm2
- 4946 3d06 660F28C2 		movapd	%xmm2, %xmm0
- 4947              	.LBE1401:
- 4948              	.LBE1400:
- 4949              	.LBE1399:
- 4950              	.LBE1398:
-1876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k40   : k41   : k42    : k43          */
- 4951              		.loc 3 1876 0
- 4952 3d0a 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 4952      60E7FFFF 
-1877:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[10] = v1; /* K40:K41:K42:K43 */
- 4953              		.loc 3 1877 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 178
-
-
- 4954 3d12 488B8548 		movq	-5816(%rbp), %rax
- 4954      E9FFFF
- 4955 3d19 4805A000 		addq	$160, %rax
- 4955      0000
- 4956 3d1f 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 4956      60E7FFFF 
- 4957 3d27 660F7F00 		movdqa	%xmm0, (%rax)
- 4958 3d2b 660F6F95 		movdqa	-6272(%rbp), %xmm2
- 4958      80E7FFFF 
- 4959 3d33 F30F7F95 		movdqu	%xmm2, -432(%rbp)
- 4959      50FEFFFF 
- 4960 3d3b 660F6F85 		movdqa	-6256(%rbp), %xmm0
- 4960      90E7FFFF 
- 4961 3d43 F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 4961      40FEFFFF 
- 4962 3d4b F30F6F85 		movdqu	-432(%rbp), %xmm0
- 4962      50FEFFFF 
- 4963 3d53 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 4963      80FEFFFF 
- 4964 3d5b F30F6F85 		movdqu	-448(%rbp), %xmm0
- 4964      40FEFFFF 
- 4965 3d63 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 4965      70FEFFFF 
- 4966              	.LBB1402:
- 4967              	.LBB1403:
- 4968              	.LBB1404:
- 4969              	.LBB1405:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 4970              		.loc 1 366 0
- 4971 3d6b F20F108D 		movsd	-400(%rbp), %xmm1
- 4971      70FEFFFF 
- 4972 3d73 660F168D 		movhpd	-392(%rbp), %xmm1
- 4972      78FEFFFF 
- 4973 3d7b F20F1085 		movsd	-384(%rbp), %xmm0
- 4973      80FEFFFF 
- 4974 3d83 660F1685 		movhpd	-376(%rbp), %xmm0
- 4974      88FEFFFF 
- 4975 3d8b 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 4975      01
- 4976              	.LBE1405:
- 4977              	.LBE1404:
- 4978              	.LBE1403:
- 4979              	.LBE1402:
-1878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k44   : k45   : k46    : k47          */
- 4980              		.loc 3 1878 0
- 4981 3d90 660F7F85 		movdqa	%xmm0, -6288(%rbp)
- 4981      70E7FFFF 
-1879:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[11] = v2; /* K44:K45:K46:K47 */
- 4982              		.loc 3 1879 0
- 4983 3d98 488B8548 		movq	-5816(%rbp), %rax
- 4983      E9FFFF
- 4984 3d9f 4805B000 		addq	$176, %rax
- 4984      0000
- 4985 3da5 660F6F95 		movdqa	-6288(%rbp), %xmm2
- 4985      70E7FFFF 
- 4986 3dad 660F7F10 		movdqa	%xmm2, (%rax)
- 4987 3db1 660F6F85 		movdqa	-6272(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 179
-
-
- 4987      80E7FFFF 
- 4988 3db9 F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 4988      90FEFFFF 
- 4989              	.LBB1406:
- 4990              	.LBB1407:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4991              		.loc 3 1565 0
- 4992 3dc1 F30F6F95 		movdqu	-368(%rbp), %xmm2
- 4992      90FEFFFF 
- 4993 3dc9 660F7F95 		movdqa	%xmm2, -5856(%rbp)
- 4993      20E9FFFF 
- 4994 3dd1 660F6F85 		movdqa	-5856(%rbp), %xmm0
- 4994      20E9FFFF 
- 4995 3dd9 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 4995      A0FEFFFF 
- 4996              	.LBB1408:
- 4997              	.LBB1409:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4998              		.loc 3 1278 0
- 4999 3de1 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 4999      00000000 
- 5000 3de9 F30F6F8D 		movdqu	-352(%rbp), %xmm1
- 5000      A0FEFFFF 
- 5001 3df1 F30F7F8D 		movdqu	%xmm1, -320(%rbp)
- 5001      C0FEFFFF 
- 5002 3df9 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 5002      B0FEFFFF 
- 5003 3e01 F30F6F85 		movdqu	-320(%rbp), %xmm0
- 5003      C0FEFFFF 
- 5004 3e09 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 5004      E0FEFFFF 
- 5005 3e11 F30F6F85 		movdqu	-336(%rbp), %xmm0
- 5005      B0FEFFFF 
- 5006 3e19 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 5006      D0FEFFFF 
- 5007              	.LBB1410:
- 5008              	.LBB1411:
- 5009              	.LBB1412:
- 5010              	.LBB1413:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5011              		.loc 1 529 0
- 5012 3e21 F30F6F8D 		movdqu	-304(%rbp), %xmm1
- 5012      D0FEFFFF 
- 5013 3e29 F30F6F85 		movdqu	-288(%rbp), %xmm0
- 5013      E0FEFFFF 
- 5014 3e31 660F3800 		pshufb	%xmm1, %xmm0
- 5014      C1
- 5015              	.LBE1413:
- 5016              	.LBE1412:
- 5017              	.LBE1411:
- 5018              	.LBE1410:
- 5019              	.LBE1409:
- 5020              	.LBE1408:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5021              		.loc 3 1567 0
- 5022 3e36 660F7F85 		movdqa	%xmm0, -5856(%rbp)
- 5022      20E9FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 180
-
-
- 5023 3e3e 660F6F85 		movdqa	-5856(%rbp), %xmm0
- 5023      20E9FFFF 
- 5024 3e46 660FEF85 		pxor	-368(%rbp), %xmm0
- 5024      90FEFFFF 
- 5025 3e4e F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 5025      90FEFFFF 
- 5026 3e56 660F6F95 		movdqa	-5856(%rbp), %xmm2
- 5026      20E9FFFF 
- 5027 3e5e F30F7F95 		movdqu	%xmm2, -272(%rbp)
- 5027      F0FEFFFF 
- 5028              	.LBB1414:
- 5029              	.LBB1415:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5030              		.loc 3 1278 0
- 5031 3e66 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5031      00000000 
- 5032 3e6e F30F6F8D 		movdqu	-272(%rbp), %xmm1
- 5032      F0FEFFFF 
- 5033 3e76 F30F7F8D 		movdqu	%xmm1, -240(%rbp)
- 5033      10FFFFFF 
- 5034 3e7e F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 5034      00FFFFFF 
- 5035 3e86 F30F6F85 		movdqu	-240(%rbp), %xmm0
- 5035      10FFFFFF 
- 5036 3e8e F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 5036      30FFFFFF 
- 5037 3e96 F30F6F85 		movdqu	-256(%rbp), %xmm0
- 5037      00FFFFFF 
- 5038 3e9e F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 5038      20FFFFFF 
- 5039              	.LBB1416:
- 5040              	.LBB1417:
- 5041              	.LBB1418:
- 5042              	.LBB1419:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5043              		.loc 1 529 0
- 5044 3ea6 F30F6F8D 		movdqu	-224(%rbp), %xmm1
- 5044      20FFFFFF 
- 5045 3eae F30F6F85 		movdqu	-208(%rbp), %xmm0
- 5045      30FFFFFF 
- 5046 3eb6 660F3800 		pshufb	%xmm1, %xmm0
- 5046      C1
- 5047              	.LBE1419:
- 5048              	.LBE1418:
- 5049              	.LBE1417:
- 5050              	.LBE1416:
- 5051              	.LBE1415:
- 5052              	.LBE1414:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5053              		.loc 3 1568 0
- 5054 3ebb 660F7F85 		movdqa	%xmm0, -5856(%rbp)
- 5054      20E9FFFF 
- 5055 3ec3 660F6F85 		movdqa	-5856(%rbp), %xmm0
- 5055      20E9FFFF 
- 5056 3ecb 660FEF85 		pxor	-368(%rbp), %xmm0
- 5056      90FEFFFF 
- 5057 3ed3 F30F7F85 		movdqu	%xmm0, -368(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 181
-
-
- 5057      90FEFFFF 
- 5058 3edb 660F6F85 		movdqa	-5856(%rbp), %xmm0
- 5058      20E9FFFF 
- 5059 3ee3 F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 5059      40FFFFFF 
- 5060              	.LBB1420:
- 5061              	.LBB1421:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5062              		.loc 3 1278 0
- 5063 3eeb 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5063      00000000 
- 5064 3ef3 F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 5064      40FFFFFF 
- 5065 3efb F30F7F8D 		movdqu	%xmm1, -160(%rbp)
- 5065      60FFFFFF 
- 5066 3f03 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 5066      50FFFFFF 
- 5067 3f0b F30F6F85 		movdqu	-160(%rbp), %xmm0
- 5067      60FFFFFF 
- 5068 3f13 F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 5068      80
- 5069 3f18 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 5069      50FFFFFF 
- 5070 3f20 F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 5070      70FFFFFF 
- 5071              	.LBB1422:
- 5072              	.LBB1423:
- 5073              	.LBB1424:
- 5074              	.LBB1425:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5075              		.loc 1 529 0
- 5076 3f28 F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 5076      70FFFFFF 
- 5077 3f30 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 5077      80
- 5078 3f35 660F3800 		pshufb	%xmm1, %xmm0
- 5078      C1
- 5079              	.LBE1425:
- 5080              	.LBE1424:
- 5081              	.LBE1423:
- 5082              	.LBE1422:
- 5083              	.LBE1421:
- 5084              	.LBE1420:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5085              		.loc 3 1569 0
- 5086 3f3a 660F7F85 		movdqa	%xmm0, -5856(%rbp)
- 5086      20E9FFFF 
- 5087 3f42 660F6F85 		movdqa	-5856(%rbp), %xmm0
- 5087      20E9FFFF 
- 5088 3f4a 660FEF85 		pxor	-368(%rbp), %xmm0
- 5088      90FEFFFF 
- 5089 3f52 F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 5089      90FEFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5090              		.loc 3 1571 0
- 5091 3f5a F30F6F85 		movdqu	-368(%rbp), %xmm0
- 5091      90FEFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 182
-
-
- 5092              	.LBE1407:
- 5093              	.LBE1406:
-1880:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1881:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 3 */
-1882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k42   :k42^k43:k42^k43^k44:k42^k43^k44^k45  *
- 5094              		.loc 3 1882 0
- 5095 3f62 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 5095      50E7FFFF 
- 5096 3f6a 660F6F95 		movdqa	-6288(%rbp), %xmm2
- 5096      70E7FFFF 
- 5097 3f72 F30F7F55 		movdqu	%xmm2, -96(%rbp)
- 5097      A0
- 5098              	.LBB1426:
- 5099              	.LBB1427:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 5100              		.loc 3 1673 0
- 5101 3f77 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 5101      A0
- 5102 3f7c 660F7F85 		movdqa	%xmm0, -5840(%rbp)
- 5102      30E9FFFF 
- 5103 3f84 660F6F95 		movdqa	-5840(%rbp), %xmm2
- 5103      30E9FFFF 
- 5104 3f8c F30F7F55 		movdqu	%xmm2, -64(%rbp)
- 5104      C0
- 5105              	.LBB1428:
- 5106              	.LBB1429:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 5107              		.loc 1 852 0
- 5108 3f91 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 5108      C0
- 5109 3f96 660F3ADF 		aeskeygenassist	$128, %xmm0, %xmm0
- 5109      C080
- 5110              	.LBE1429:
- 5111              	.LBE1428:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 5112              		.loc 3 1674 0
- 5113 3f9c 660F7F85 		movdqa	%xmm0, -5840(%rbp)
- 5113      30E9FFFF 
- 5114 3fa4 660F6F85 		movdqa	-5840(%rbp), %xmm0
- 5114      30E9FFFF 
- 5115 3fac F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 5115      D0
- 5116 3fb1 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 5116      D0
- 5117 3fb6 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 5117      F0
- 5118              	.LBB1430:
- 5119              	.LBB1431:
- 5120              	.LBB1432:
- 5121              	.LBB1433:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5122              		.loc 1 450 0
- 5123 3fbb F30F6F45 		movdqu	-16(%rbp), %xmm0
- 5123      F0
- 5124 3fc0 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 5124      FF
- 5125              	.LBE1433:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 183
-
-
- 5126              	.LBE1432:
- 5127              	.LBE1431:
- 5128              	.LBE1430:
- 5129              	.LBE1427:
- 5130              	.LBE1426:
-1883:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 5131              		.loc 3 1883 0
- 5132 3fc5 660F7F85 		movdqa	%xmm0, -6240(%rbp)
- 5132      A0E7FFFF 
-1884:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        (v2,0x80);  /* F(k47): F(k47): F(k47) : F(k47)       */
-1885:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k48   : k49   : k50    : k51          */
- 5133              		.loc 3 1885 0
- 5134 3fcd 660F6F95 		movdqa	-6320(%rbp), %xmm2
- 5134      50E7FFFF 
- 5135 3fd5 660FEF95 		pxor	-6240(%rbp), %xmm2
- 5135      A0E7FFFF 
- 5136 3fdd 660F7F95 		movdqa	%xmm2, -6320(%rbp)
- 5136      50E7FFFF 
-1886:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[12] = v0;                           /* K48:K49:K50:K51 */
- 5137              		.loc 3 1886 0
- 5138 3fe5 488B8548 		movq	-5816(%rbp), %rax
- 5138      E9FFFF
- 5139 3fec 4805C000 		addq	$192, %rax
- 5139      0000
- 5140 3ff2 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 5140      50E7FFFF 
- 5141 3ffa 660F7F00 		movdqa	%xmm0, (%rax)
-1887:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 5142              		.loc 3 1887 0
- 5143 3ffe C9       		leave
- 5144 3fff C3       		ret
- 5145              		.cfi_endproc
- 5146              	.LFE657:
- 5147              		.size	KAESBlockCipherVecAesNiKeyExpansion192, .-KAESBlockCipherVecAesNiKeyExpansion192
- 5148              		.type	KAESBlockCipherVecAesNiKeyExpansion256, @function
- 5149              	KAESBlockCipherVecAesNiKeyExpansion256:
- 5150              	.LFB658:
-1888:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1889:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1890:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion192) (CipherVec * w, const AESByte * key)
-1891:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1892:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_192, AES_Nk_192);
-1893:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1894:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1895:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1896:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1897:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1898:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1899:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----- */
-1900:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1901:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC || 1
-1902:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1903:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion256) (CipherVec * round_keys, const AESByte * key)
-1904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 5151              		.loc 3 1904 0
- 5152              		.cfi_startproc
- 5153 4000 55       		pushq	%rbp
-
GAS LISTING /tmp/ccPaCTqg.s 			page 184
-
-
- 5154              	.LCFI16:
- 5155              		.cfi_def_cfa_offset 16
- 5156 4001 4889E5   		movq	%rsp, %rbp
- 5157              		.cfi_offset 6, -16
- 5158              	.LCFI17:
- 5159              		.cfi_def_cfa_register 6
- 5160 4004 4881EC88 		subq	$5512, %rsp
- 5160      150000
- 5161 400b 4889BDC8 		movq	%rdi, -5176(%rbp)
- 5161      EBFFFF
- 5162 4012 4889B5C0 		movq	%rsi, -5184(%rbp)
- 5162      EBFFFF
- 5163              		.loc 3 1904 0
- 5164 4019 488B85C0 		movq	-5184(%rbp), %rax
- 5164      EBFFFF
- 5165 4020 48898508 		movq	%rax, -5112(%rbp)
- 5165      ECFFFF
- 5166              	.LBB1828:
- 5167              	.LBB1829:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 5168              		.loc 3 126 0
- 5169 4027 488B8508 		movq	-5112(%rbp), %rax
- 5169      ECFFFF
- 5170 402e 4889C7   		movq	%rax, %rdi
- 5171              	#APP
- 5172              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 5173              		movdqu (%rdi),%xmm0
- 5174              	# 0 "" 2
- 5175              	#NO_APP
- 5176 4035 660F7F85 		movdqa	%xmm0, -5632(%rbp)
- 5176      00EAFFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 5177              		.loc 3 129 0
- 5178 403d 660F6F85 		movdqa	-5632(%rbp), %xmm0
- 5178      00EAFFFF 
- 5179              	.LBE1829:
- 5180              	.LBE1828:
-1905:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec v0, v1;
-1906:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec k;
-1907:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1908:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 = AESBCMEMBER (StateIn) (key);
- 5181              		.loc 3 1908 0
- 5182 4045 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 5182      D0EBFFFF 
-1909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 = AESBCMEMBER (StateIn) (key + sizeof v0);
- 5183              		.loc 3 1909 0
- 5184 404d 488B85C0 		movq	-5184(%rbp), %rax
- 5184      EBFFFF
- 5185 4054 4883C010 		addq	$16, %rax
- 5186 4058 48898510 		movq	%rax, -5104(%rbp)
- 5186      ECFFFF
- 5187              	.LBB1830:
- 5188              	.LBB1831:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 5189              		.loc 3 126 0
- 5190 405f 488B8510 		movq	-5104(%rbp), %rax
- 5190      ECFFFF
-
GAS LISTING /tmp/ccPaCTqg.s 			page 185
-
-
- 5191 4066 4889C7   		movq	%rax, %rdi
- 5192              	#APP
- 5193              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 5194              		movdqu (%rdi),%xmm0
- 5195              	# 0 "" 2
- 5196              	#NO_APP
- 5197 406d 660F7F85 		movdqa	%xmm0, -5616(%rbp)
- 5197      10EAFFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 5198              		.loc 3 129 0
- 5199 4075 660F6F85 		movdqa	-5616(%rbp), %xmm0
- 5199      10EAFFFF 
- 5200              	.LBE1831:
- 5201              	.LBE1830:
- 5202              		.loc 3 1909 0
- 5203 407d F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 5203      E0EBFFFF 
-1910:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1911:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* k0  : k1  : k2  : k3  */
- 5204              		.loc 3 1911 0
- 5205 4085 488B85C8 		movq	-5176(%rbp), %rax
- 5205      EBFFFF
- 5206 408c F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5206      D0EBFFFF 
- 5207 4094 F30F7F00 		movdqu	%xmm0, (%rax)
-1912:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* k4  : k5  : k6  : k7  */
- 5208              		.loc 3 1912 0
- 5209 4098 488B85C8 		movq	-5176(%rbp), %rax
- 5209      EBFFFF
- 5210 409f 4883C010 		addq	$16, %rax
- 5211 40a3 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5211      E0EBFFFF 
- 5212 40ab F30F7F00 		movdqu	%xmm0, (%rax)
- 5213 40af F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5213      E0EBFFFF 
- 5214 40b7 F30F7F85 		movdqu	%xmm0, -5088(%rbp)
- 5214      20ECFFFF 
- 5215              	.LBB1832:
- 5216              	.LBB1833:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 5217              		.loc 3 1673 0
- 5218 40bf F30F6F85 		movdqu	-5088(%rbp), %xmm0
- 5218      20ECFFFF 
- 5219 40c7 660F7F85 		movdqa	%xmm0, -5600(%rbp)
- 5219      20EAFFFF 
- 5220 40cf 660F6F85 		movdqa	-5600(%rbp), %xmm0
- 5220      20EAFFFF 
- 5221 40d7 F30F7F85 		movdqu	%xmm0, -5056(%rbp)
- 5221      40ECFFFF 
- 5222              	.LBB1834:
- 5223              	.LBB1835:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 5224              		.loc 1 852 0
- 5225 40df F30F6F85 		movdqu	-5056(%rbp), %xmm0
- 5225      40ECFFFF 
- 5226 40e7 660F3ADF 		aeskeygenassist	$1, %xmm0, %xmm0
- 5226      C001
-
GAS LISTING /tmp/ccPaCTqg.s 			page 186
-
-
- 5227              	.LBE1835:
- 5228              	.LBE1834:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 5229              		.loc 3 1674 0
- 5230 40ed 660F7F85 		movdqa	%xmm0, -5600(%rbp)
- 5230      20EAFFFF 
- 5231 40f5 660F6F85 		movdqa	-5600(%rbp), %xmm0
- 5231      20EAFFFF 
- 5232 40fd F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 5232      50ECFFFF 
- 5233 4105 F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 5233      50ECFFFF 
- 5234 410d F30F7F85 		movdqu	%xmm0, -5008(%rbp)
- 5234      70ECFFFF 
- 5235              	.LBB1836:
- 5236              	.LBB1837:
- 5237              	.LBB1838:
- 5238              	.LBB1839:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5239              		.loc 1 450 0
- 5240 4115 F30F6F85 		movdqu	-5008(%rbp), %xmm0
- 5240      70ECFFFF 
- 5241 411d 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 5241      FF
- 5242              	.LBE1839:
- 5243              	.LBE1838:
- 5244              	.LBE1837:
- 5245              	.LBE1836:
- 5246              	.LBE1833:
- 5247              	.LBE1832:
-1913:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1914:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE256_1(offset,rcon)                            \
-1915:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)(v1,rcon); \
-1916:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v0);            \
-1917:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(VecXor) (v0, k);                  \
-1918:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = v0
-1919:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1920:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE256_2(offset) \
-1921:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn2)(v0);      \
-1922:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v1);            \
-1923:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(VecXor) (v1, k);                  \
-1924:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = v1
-1925:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(2,0x01);    /* k8  : k9  : k10 : k11 */
- 5248              		.loc 3 1926 0
- 5249 4122 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 5249      F0EBFFFF 
- 5250 412a F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5250      D0EBFFFF 
- 5251 4132 F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 5251      80ECFFFF 
- 5252              	.LBB1840:
- 5253              	.LBB1841:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5254              		.loc 3 1565 0
- 5255 413a F30F6F85 		movdqu	-4992(%rbp), %xmm0
- 5255      80ECFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 187
-
-
- 5256 4142 660F7F85 		movdqa	%xmm0, -5584(%rbp)
- 5256      30EAFFFF 
- 5257 414a 660F6F85 		movdqa	-5584(%rbp), %xmm0
- 5257      30EAFFFF 
- 5258 4152 F30F7F85 		movdqu	%xmm0, -4976(%rbp)
- 5258      90ECFFFF 
- 5259              	.LBB1842:
- 5260              	.LBB1843:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5261              		.loc 3 1278 0
- 5262 415a 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5262      00000000 
- 5263 4162 F30F6F8D 		movdqu	-4976(%rbp), %xmm1
- 5263      90ECFFFF 
- 5264 416a F30F7F8D 		movdqu	%xmm1, -4944(%rbp)
- 5264      B0ECFFFF 
- 5265 4172 F30F7F85 		movdqu	%xmm0, -4960(%rbp)
- 5265      A0ECFFFF 
- 5266 417a F30F6F85 		movdqu	-4944(%rbp), %xmm0
- 5266      B0ECFFFF 
- 5267 4182 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 5267      D0ECFFFF 
- 5268 418a F30F6F85 		movdqu	-4960(%rbp), %xmm0
- 5268      A0ECFFFF 
- 5269 4192 F30F7F85 		movdqu	%xmm0, -4928(%rbp)
- 5269      C0ECFFFF 
- 5270              	.LBB1844:
- 5271              	.LBB1845:
- 5272              	.LBB1846:
- 5273              	.LBB1847:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5274              		.loc 1 529 0
- 5275 419a F30F6F8D 		movdqu	-4928(%rbp), %xmm1
- 5275      C0ECFFFF 
- 5276 41a2 F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 5276      D0ECFFFF 
- 5277 41aa 660F3800 		pshufb	%xmm1, %xmm0
- 5277      C1
- 5278              	.LBE1847:
- 5279              	.LBE1846:
- 5280              	.LBE1845:
- 5281              	.LBE1844:
- 5282              	.LBE1843:
- 5283              	.LBE1842:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5284              		.loc 3 1567 0
- 5285 41af 660F7F85 		movdqa	%xmm0, -5584(%rbp)
- 5285      30EAFFFF 
- 5286 41b7 660F6F85 		movdqa	-5584(%rbp), %xmm0
- 5286      30EAFFFF 
- 5287 41bf 660FEF85 		pxor	-4992(%rbp), %xmm0
- 5287      80ECFFFF 
- 5288 41c7 F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 5288      80ECFFFF 
- 5289 41cf 660F6F85 		movdqa	-5584(%rbp), %xmm0
- 5289      30EAFFFF 
- 5290 41d7 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 188
-
-
- 5290      E0ECFFFF 
- 5291              	.LBB1848:
- 5292              	.LBB1849:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5293              		.loc 3 1278 0
- 5294 41df 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5294      00000000 
- 5295 41e7 F30F6F8D 		movdqu	-4896(%rbp), %xmm1
- 5295      E0ECFFFF 
- 5296 41ef F30F7F8D 		movdqu	%xmm1, -4864(%rbp)
- 5296      00EDFFFF 
- 5297 41f7 F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 5297      F0ECFFFF 
- 5298 41ff F30F6F85 		movdqu	-4864(%rbp), %xmm0
- 5298      00EDFFFF 
- 5299 4207 F30F7F85 		movdqu	%xmm0, -4832(%rbp)
- 5299      20EDFFFF 
- 5300 420f F30F6F85 		movdqu	-4880(%rbp), %xmm0
- 5300      F0ECFFFF 
- 5301 4217 F30F7F85 		movdqu	%xmm0, -4848(%rbp)
- 5301      10EDFFFF 
- 5302              	.LBB1850:
- 5303              	.LBB1851:
- 5304              	.LBB1852:
- 5305              	.LBB1853:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5306              		.loc 1 529 0
- 5307 421f F30F6F8D 		movdqu	-4848(%rbp), %xmm1
- 5307      10EDFFFF 
- 5308 4227 F30F6F85 		movdqu	-4832(%rbp), %xmm0
- 5308      20EDFFFF 
- 5309 422f 660F3800 		pshufb	%xmm1, %xmm0
- 5309      C1
- 5310              	.LBE1853:
- 5311              	.LBE1852:
- 5312              	.LBE1851:
- 5313              	.LBE1850:
- 5314              	.LBE1849:
- 5315              	.LBE1848:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5316              		.loc 3 1568 0
- 5317 4234 660F7F85 		movdqa	%xmm0, -5584(%rbp)
- 5317      30EAFFFF 
- 5318 423c 660F6F85 		movdqa	-5584(%rbp), %xmm0
- 5318      30EAFFFF 
- 5319 4244 660FEF85 		pxor	-4992(%rbp), %xmm0
- 5319      80ECFFFF 
- 5320 424c F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 5320      80ECFFFF 
- 5321 4254 660F6F85 		movdqa	-5584(%rbp), %xmm0
- 5321      30EAFFFF 
- 5322 425c F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 5322      30EDFFFF 
- 5323              	.LBB1854:
- 5324              	.LBB1855:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5325              		.loc 3 1278 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 189
-
-
- 5326 4264 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5326      00000000 
- 5327 426c F30F6F8D 		movdqu	-4816(%rbp), %xmm1
- 5327      30EDFFFF 
- 5328 4274 F30F7F8D 		movdqu	%xmm1, -4784(%rbp)
- 5328      50EDFFFF 
- 5329 427c F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 5329      40EDFFFF 
- 5330 4284 F30F6F85 		movdqu	-4784(%rbp), %xmm0
- 5330      50EDFFFF 
- 5331 428c F30F7F85 		movdqu	%xmm0, -4752(%rbp)
- 5331      70EDFFFF 
- 5332 4294 F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 5332      40EDFFFF 
- 5333 429c F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 5333      60EDFFFF 
- 5334              	.LBB1856:
- 5335              	.LBB1857:
- 5336              	.LBB1858:
- 5337              	.LBB1859:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5338              		.loc 1 529 0
- 5339 42a4 F30F6F8D 		movdqu	-4768(%rbp), %xmm1
- 5339      60EDFFFF 
- 5340 42ac F30F6F85 		movdqu	-4752(%rbp), %xmm0
- 5340      70EDFFFF 
- 5341 42b4 660F3800 		pshufb	%xmm1, %xmm0
- 5341      C1
- 5342              	.LBE1859:
- 5343              	.LBE1858:
- 5344              	.LBE1857:
- 5345              	.LBE1856:
- 5346              	.LBE1855:
- 5347              	.LBE1854:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5348              		.loc 3 1569 0
- 5349 42b9 660F7F85 		movdqa	%xmm0, -5584(%rbp)
- 5349      30EAFFFF 
- 5350 42c1 660F6F85 		movdqa	-5584(%rbp), %xmm0
- 5350      30EAFFFF 
- 5351 42c9 660FEF85 		pxor	-4992(%rbp), %xmm0
- 5351      80ECFFFF 
- 5352 42d1 F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 5352      80ECFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5353              		.loc 3 1571 0
- 5354 42d9 F30F6F85 		movdqu	-4992(%rbp), %xmm0
- 5354      80ECFFFF 
- 5355              	.LBE1841:
- 5356              	.LBE1840:
- 5357              		.loc 3 1926 0
- 5358 42e1 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 5358      D0EBFFFF 
- 5359 42e9 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5359      D0EBFFFF 
- 5360 42f1 F30F7F85 		movdqu	%xmm0, -4720(%rbp)
- 5360      90EDFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 190
-
-
- 5361 42f9 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 5361      F0EBFFFF 
- 5362 4301 F30F7F85 		movdqu	%xmm0, -4736(%rbp)
- 5362      80EDFFFF 
- 5363              	.LBB1860:
- 5364              	.LBB1861:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 5365              		.loc 3 178 0
- 5366 4309 F30F6F85 		movdqu	-4736(%rbp), %xmm0
- 5366      80EDFFFF 
- 5367 4311 F30F6F8D 		movdqu	-4720(%rbp), %xmm1
- 5367      90EDFFFF 
- 5368 4319 660FEFC1 		pxor	%xmm1, %xmm0
- 5369              	.LBE1861:
- 5370              	.LBE1860:
- 5371              		.loc 3 1926 0
- 5372 431d F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 5372      D0EBFFFF 
- 5373 4325 488B85C8 		movq	-5176(%rbp), %rax
- 5373      EBFFFF
- 5374 432c 4883C020 		addq	$32, %rax
- 5375 4330 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5375      D0EBFFFF 
- 5376 4338 F30F7F00 		movdqu	%xmm0, (%rax)
- 5377 433c F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5377      D0EBFFFF 
- 5378 4344 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 5378      A0EDFFFF 
- 5379              	.LBB1862:
- 5380              	.LBB1863:
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 5381              		.loc 3 1649 0
- 5382 434c F30F6F85 		movdqu	-4704(%rbp), %xmm0
- 5382      A0EDFFFF 
- 5383 4354 660F7F85 		movdqa	%xmm0, -5568(%rbp)
- 5383      40EAFFFF 
- 5384 435c 660F6F85 		movdqa	-5568(%rbp), %xmm0
- 5384      40EAFFFF 
- 5385 4364 F30F7F85 		movdqu	%xmm0, -4672(%rbp)
- 5385      C0EDFFFF 
- 5386              	.LBB1864:
- 5387              	.LBB1865:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 5388              		.loc 1 852 0
- 5389 436c F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 5389      C0EDFFFF 
- 5390 4374 660F3ADF 		aeskeygenassist	$0, %xmm0, %xmm0
- 5390      C000
- 5391              	.LBE1865:
- 5392              	.LBE1864:
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
- 5393              		.loc 3 1650 0
- 5394 437a 660F7F85 		movdqa	%xmm0, -5568(%rbp)
- 5394      40EAFFFF 
- 5395 4382 660F6F85 		movdqa	-5568(%rbp), %xmm0
- 5395      40EAFFFF 
- 5396 438a F30F7F85 		movdqu	%xmm0, -4656(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 191
-
-
- 5396      D0EDFFFF 
- 5397 4392 F30F6F85 		movdqu	-4656(%rbp), %xmm0
- 5397      D0EDFFFF 
- 5398 439a F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 5398      F0EDFFFF 
- 5399              	.LBB1866:
- 5400              	.LBB1867:
- 5401              	.LBB1868:
- 5402              	.LBB1869:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5403              		.loc 1 450 0
- 5404 43a2 F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 5404      F0EDFFFF 
- 5405 43aa 660F70C0 		pshufd	$170, %xmm0, %xmm0
- 5405      AA
- 5406              	.LBE1869:
- 5407              	.LBE1868:
- 5408              	.LBE1867:
- 5409              	.LBE1866:
- 5410              	.LBE1863:
- 5411              	.LBE1862:
-1927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(3);         /* k12 : k13 : k14 : k15 */
- 5412              		.loc 3 1927 0
- 5413 43af F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 5413      F0EBFFFF 
- 5414 43b7 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5414      E0EBFFFF 
- 5415 43bf F30F7F85 		movdqu	%xmm0, -4608(%rbp)
- 5415      00EEFFFF 
- 5416              	.LBB1870:
- 5417              	.LBB1871:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5418              		.loc 3 1565 0
- 5419 43c7 F30F6F85 		movdqu	-4608(%rbp), %xmm0
- 5419      00EEFFFF 
- 5420 43cf 660F7F85 		movdqa	%xmm0, -5552(%rbp)
- 5420      50EAFFFF 
- 5421 43d7 660F6F85 		movdqa	-5552(%rbp), %xmm0
- 5421      50EAFFFF 
- 5422 43df F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 5422      10EEFFFF 
- 5423              	.LBB1872:
- 5424              	.LBB1873:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5425              		.loc 3 1278 0
- 5426 43e7 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5426      00000000 
- 5427 43ef F30F6F8D 		movdqu	-4592(%rbp), %xmm1
- 5427      10EEFFFF 
- 5428 43f7 F30F7F8D 		movdqu	%xmm1, -4560(%rbp)
- 5428      30EEFFFF 
- 5429 43ff F30F7F85 		movdqu	%xmm0, -4576(%rbp)
- 5429      20EEFFFF 
- 5430 4407 F30F6F85 		movdqu	-4560(%rbp), %xmm0
- 5430      30EEFFFF 
- 5431 440f F30F7F85 		movdqu	%xmm0, -4528(%rbp)
- 5431      50EEFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 192
-
-
- 5432 4417 F30F6F85 		movdqu	-4576(%rbp), %xmm0
- 5432      20EEFFFF 
- 5433 441f F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 5433      40EEFFFF 
- 5434              	.LBB1874:
- 5435              	.LBB1875:
- 5436              	.LBB1876:
- 5437              	.LBB1877:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5438              		.loc 1 529 0
- 5439 4427 F30F6F8D 		movdqu	-4544(%rbp), %xmm1
- 5439      40EEFFFF 
- 5440 442f F30F6F85 		movdqu	-4528(%rbp), %xmm0
- 5440      50EEFFFF 
- 5441 4437 660F3800 		pshufb	%xmm1, %xmm0
- 5441      C1
- 5442              	.LBE1877:
- 5443              	.LBE1876:
- 5444              	.LBE1875:
- 5445              	.LBE1874:
- 5446              	.LBE1873:
- 5447              	.LBE1872:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5448              		.loc 3 1567 0
- 5449 443c 660F7F85 		movdqa	%xmm0, -5552(%rbp)
- 5449      50EAFFFF 
- 5450 4444 660F6F85 		movdqa	-5552(%rbp), %xmm0
- 5450      50EAFFFF 
- 5451 444c 660FEF85 		pxor	-4608(%rbp), %xmm0
- 5451      00EEFFFF 
- 5452 4454 F30F7F85 		movdqu	%xmm0, -4608(%rbp)
- 5452      00EEFFFF 
- 5453 445c 660F6F85 		movdqa	-5552(%rbp), %xmm0
- 5453      50EAFFFF 
- 5454 4464 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 5454      60EEFFFF 
- 5455              	.LBB1878:
- 5456              	.LBB1879:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5457              		.loc 3 1278 0
- 5458 446c 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5458      00000000 
- 5459 4474 F30F6F8D 		movdqu	-4512(%rbp), %xmm1
- 5459      60EEFFFF 
- 5460 447c F30F7F8D 		movdqu	%xmm1, -4480(%rbp)
- 5460      80EEFFFF 
- 5461 4484 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 5461      70EEFFFF 
- 5462 448c F30F6F85 		movdqu	-4480(%rbp), %xmm0
- 5462      80EEFFFF 
- 5463 4494 F30F7F85 		movdqu	%xmm0, -4448(%rbp)
- 5463      A0EEFFFF 
- 5464 449c F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 5464      70EEFFFF 
- 5465 44a4 F30F7F85 		movdqu	%xmm0, -4464(%rbp)
- 5465      90EEFFFF 
- 5466              	.LBB1880:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 193
-
-
- 5467              	.LBB1881:
- 5468              	.LBB1882:
- 5469              	.LBB1883:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5470              		.loc 1 529 0
- 5471 44ac F30F6F8D 		movdqu	-4464(%rbp), %xmm1
- 5471      90EEFFFF 
- 5472 44b4 F30F6F85 		movdqu	-4448(%rbp), %xmm0
- 5472      A0EEFFFF 
- 5473 44bc 660F3800 		pshufb	%xmm1, %xmm0
- 5473      C1
- 5474              	.LBE1883:
- 5475              	.LBE1882:
- 5476              	.LBE1881:
- 5477              	.LBE1880:
- 5478              	.LBE1879:
- 5479              	.LBE1878:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5480              		.loc 3 1568 0
- 5481 44c1 660F7F85 		movdqa	%xmm0, -5552(%rbp)
- 5481      50EAFFFF 
- 5482 44c9 660F6F85 		movdqa	-5552(%rbp), %xmm0
- 5482      50EAFFFF 
- 5483 44d1 660FEF85 		pxor	-4608(%rbp), %xmm0
- 5483      00EEFFFF 
- 5484 44d9 F30F7F85 		movdqu	%xmm0, -4608(%rbp)
- 5484      00EEFFFF 
- 5485 44e1 660F6F85 		movdqa	-5552(%rbp), %xmm0
- 5485      50EAFFFF 
- 5486 44e9 F30F7F85 		movdqu	%xmm0, -4432(%rbp)
- 5486      B0EEFFFF 
- 5487              	.LBB1884:
- 5488              	.LBB1885:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5489              		.loc 3 1278 0
- 5490 44f1 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5490      00000000 
- 5491 44f9 F30F6F8D 		movdqu	-4432(%rbp), %xmm1
- 5491      B0EEFFFF 
- 5492 4501 F30F7F8D 		movdqu	%xmm1, -4400(%rbp)
- 5492      D0EEFFFF 
- 5493 4509 F30F7F85 		movdqu	%xmm0, -4416(%rbp)
- 5493      C0EEFFFF 
- 5494 4511 F30F6F85 		movdqu	-4400(%rbp), %xmm0
- 5494      D0EEFFFF 
- 5495 4519 F30F7F85 		movdqu	%xmm0, -4368(%rbp)
- 5495      F0EEFFFF 
- 5496 4521 F30F6F85 		movdqu	-4416(%rbp), %xmm0
- 5496      C0EEFFFF 
- 5497 4529 F30F7F85 		movdqu	%xmm0, -4384(%rbp)
- 5497      E0EEFFFF 
- 5498              	.LBB1886:
- 5499              	.LBB1887:
- 5500              	.LBB1888:
- 5501              	.LBB1889:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5502              		.loc 1 529 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 194
-
-
- 5503 4531 F30F6F8D 		movdqu	-4384(%rbp), %xmm1
- 5503      E0EEFFFF 
- 5504 4539 F30F6F85 		movdqu	-4368(%rbp), %xmm0
- 5504      F0EEFFFF 
- 5505 4541 660F3800 		pshufb	%xmm1, %xmm0
- 5505      C1
- 5506              	.LBE1889:
- 5507              	.LBE1888:
- 5508              	.LBE1887:
- 5509              	.LBE1886:
- 5510              	.LBE1885:
- 5511              	.LBE1884:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5512              		.loc 3 1569 0
- 5513 4546 660F7F85 		movdqa	%xmm0, -5552(%rbp)
- 5513      50EAFFFF 
- 5514 454e 660F6F85 		movdqa	-5552(%rbp), %xmm0
- 5514      50EAFFFF 
- 5515 4556 660FEF85 		pxor	-4608(%rbp), %xmm0
- 5515      00EEFFFF 
- 5516 455e F30F7F85 		movdqu	%xmm0, -4608(%rbp)
- 5516      00EEFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5517              		.loc 3 1571 0
- 5518 4566 F30F6F85 		movdqu	-4608(%rbp), %xmm0
- 5518      00EEFFFF 
- 5519              	.LBE1871:
- 5520              	.LBE1870:
- 5521              		.loc 3 1927 0
- 5522 456e F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 5522      E0EBFFFF 
- 5523 4576 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5523      E0EBFFFF 
- 5524 457e F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 5524      10EFFFFF 
- 5525 4586 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 5525      F0EBFFFF 
- 5526 458e F30F7F85 		movdqu	%xmm0, -4352(%rbp)
- 5526      00EFFFFF 
- 5527              	.LBB1890:
- 5528              	.LBB1891:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 5529              		.loc 3 178 0
- 5530 4596 F30F6F85 		movdqu	-4352(%rbp), %xmm0
- 5530      00EFFFFF 
- 5531 459e F30F6F8D 		movdqu	-4336(%rbp), %xmm1
- 5531      10EFFFFF 
- 5532 45a6 660FEFC1 		pxor	%xmm1, %xmm0
- 5533              	.LBE1891:
- 5534              	.LBE1890:
- 5535              		.loc 3 1927 0
- 5536 45aa F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 5536      E0EBFFFF 
- 5537 45b2 488B85C8 		movq	-5176(%rbp), %rax
- 5537      EBFFFF
- 5538 45b9 4883C030 		addq	$48, %rax
- 5539 45bd F30F6F85 		movdqu	-5152(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 195
-
-
- 5539      E0EBFFFF 
- 5540 45c5 F30F7F00 		movdqu	%xmm0, (%rax)
- 5541 45c9 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5541      E0EBFFFF 
- 5542 45d1 F30F7F85 		movdqu	%xmm0, -4304(%rbp)
- 5542      30EFFFFF 
- 5543              	.LBB1892:
- 5544              	.LBB1893:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 5545              		.loc 3 1673 0
- 5546 45d9 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 5546      30EFFFFF 
- 5547 45e1 660F7F85 		movdqa	%xmm0, -5536(%rbp)
- 5547      60EAFFFF 
- 5548 45e9 660F6F85 		movdqa	-5536(%rbp), %xmm0
- 5548      60EAFFFF 
- 5549 45f1 F30F7F85 		movdqu	%xmm0, -4272(%rbp)
- 5549      50EFFFFF 
- 5550              	.LBB1894:
- 5551              	.LBB1895:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 5552              		.loc 1 852 0
- 5553 45f9 F30F6F85 		movdqu	-4272(%rbp), %xmm0
- 5553      50EFFFFF 
- 5554 4601 660F3ADF 		aeskeygenassist	$2, %xmm0, %xmm0
- 5554      C002
- 5555              	.LBE1895:
- 5556              	.LBE1894:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 5557              		.loc 3 1674 0
- 5558 4607 660F7F85 		movdqa	%xmm0, -5536(%rbp)
- 5558      60EAFFFF 
- 5559 460f 660F6F85 		movdqa	-5536(%rbp), %xmm0
- 5559      60EAFFFF 
- 5560 4617 F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 5560      60EFFFFF 
- 5561 461f F30F6F85 		movdqu	-4256(%rbp), %xmm0
- 5561      60EFFFFF 
- 5562 4627 F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 5562      80EFFFFF 
- 5563              	.LBB1896:
- 5564              	.LBB1897:
- 5565              	.LBB1898:
- 5566              	.LBB1899:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5567              		.loc 1 450 0
- 5568 462f F30F6F85 		movdqu	-4224(%rbp), %xmm0
- 5568      80EFFFFF 
- 5569 4637 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 5569      FF
- 5570              	.LBE1899:
- 5571              	.LBE1898:
- 5572              	.LBE1897:
- 5573              	.LBE1896:
- 5574              	.LBE1893:
- 5575              	.LBE1892:
-1928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(4,0x02);    /* k16 : k17 : k18 : k19 */
-
GAS LISTING /tmp/ccPaCTqg.s 			page 196
-
-
- 5576              		.loc 3 1928 0
- 5577 463c F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 5577      F0EBFFFF 
- 5578 4644 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5578      D0EBFFFF 
- 5579 464c F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 5579      90EFFFFF 
- 5580              	.LBB1900:
- 5581              	.LBB1901:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5582              		.loc 3 1565 0
- 5583 4654 F30F6F85 		movdqu	-4208(%rbp), %xmm0
- 5583      90EFFFFF 
- 5584 465c 660F7F85 		movdqa	%xmm0, -5520(%rbp)
- 5584      70EAFFFF 
- 5585 4664 660F6F85 		movdqa	-5520(%rbp), %xmm0
- 5585      70EAFFFF 
- 5586 466c F30F7F85 		movdqu	%xmm0, -4192(%rbp)
- 5586      A0EFFFFF 
- 5587              	.LBB1902:
- 5588              	.LBB1903:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5589              		.loc 3 1278 0
- 5590 4674 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5590      00000000 
- 5591 467c F30F6F8D 		movdqu	-4192(%rbp), %xmm1
- 5591      A0EFFFFF 
- 5592 4684 F30F7F8D 		movdqu	%xmm1, -4160(%rbp)
- 5592      C0EFFFFF 
- 5593 468c F30F7F85 		movdqu	%xmm0, -4176(%rbp)
- 5593      B0EFFFFF 
- 5594 4694 F30F6F85 		movdqu	-4160(%rbp), %xmm0
- 5594      C0EFFFFF 
- 5595 469c F30F7F85 		movdqu	%xmm0, -4128(%rbp)
- 5595      E0EFFFFF 
- 5596 46a4 F30F6F85 		movdqu	-4176(%rbp), %xmm0
- 5596      B0EFFFFF 
- 5597 46ac F30F7F85 		movdqu	%xmm0, -4144(%rbp)
- 5597      D0EFFFFF 
- 5598              	.LBB1904:
- 5599              	.LBB1905:
- 5600              	.LBB1906:
- 5601              	.LBB1907:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5602              		.loc 1 529 0
- 5603 46b4 F30F6F8D 		movdqu	-4144(%rbp), %xmm1
- 5603      D0EFFFFF 
- 5604 46bc F30F6F85 		movdqu	-4128(%rbp), %xmm0
- 5604      E0EFFFFF 
- 5605 46c4 660F3800 		pshufb	%xmm1, %xmm0
- 5605      C1
- 5606              	.LBE1907:
- 5607              	.LBE1906:
- 5608              	.LBE1905:
- 5609              	.LBE1904:
- 5610              	.LBE1903:
- 5611              	.LBE1902:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 197
-
-
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5612              		.loc 3 1567 0
- 5613 46c9 660F7F85 		movdqa	%xmm0, -5520(%rbp)
- 5613      70EAFFFF 
- 5614 46d1 660F6F85 		movdqa	-5520(%rbp), %xmm0
- 5614      70EAFFFF 
- 5615 46d9 660FEF85 		pxor	-4208(%rbp), %xmm0
- 5615      90EFFFFF 
- 5616 46e1 F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 5616      90EFFFFF 
- 5617 46e9 660F6F85 		movdqa	-5520(%rbp), %xmm0
- 5617      70EAFFFF 
- 5618 46f1 F30F7F85 		movdqu	%xmm0, -4112(%rbp)
- 5618      F0EFFFFF 
- 5619              	.LBB1908:
- 5620              	.LBB1909:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5621              		.loc 3 1278 0
- 5622 46f9 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5622      00000000 
- 5623 4701 F30F6F8D 		movdqu	-4112(%rbp), %xmm1
- 5623      F0EFFFFF 
- 5624 4709 F30F7F8D 		movdqu	%xmm1, -4080(%rbp)
- 5624      10F0FFFF 
- 5625 4711 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 5625      00F0FFFF 
- 5626 4719 F30F6F85 		movdqu	-4080(%rbp), %xmm0
- 5626      10F0FFFF 
- 5627 4721 F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 5627      30F0FFFF 
- 5628 4729 F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 5628      00F0FFFF 
- 5629 4731 F30F7F85 		movdqu	%xmm0, -4064(%rbp)
- 5629      20F0FFFF 
- 5630              	.LBB1910:
- 5631              	.LBB1911:
- 5632              	.LBB1912:
- 5633              	.LBB1913:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5634              		.loc 1 529 0
- 5635 4739 F30F6F8D 		movdqu	-4064(%rbp), %xmm1
- 5635      20F0FFFF 
- 5636 4741 F30F6F85 		movdqu	-4048(%rbp), %xmm0
- 5636      30F0FFFF 
- 5637 4749 660F3800 		pshufb	%xmm1, %xmm0
- 5637      C1
- 5638              	.LBE1913:
- 5639              	.LBE1912:
- 5640              	.LBE1911:
- 5641              	.LBE1910:
- 5642              	.LBE1909:
- 5643              	.LBE1908:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5644              		.loc 3 1568 0
- 5645 474e 660F7F85 		movdqa	%xmm0, -5520(%rbp)
- 5645      70EAFFFF 
- 5646 4756 660F6F85 		movdqa	-5520(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 198
-
-
- 5646      70EAFFFF 
- 5647 475e 660FEF85 		pxor	-4208(%rbp), %xmm0
- 5647      90EFFFFF 
- 5648 4766 F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 5648      90EFFFFF 
- 5649 476e 660F6F85 		movdqa	-5520(%rbp), %xmm0
- 5649      70EAFFFF 
- 5650 4776 F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 5650      40F0FFFF 
- 5651              	.LBB1914:
- 5652              	.LBB1915:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5653              		.loc 3 1278 0
- 5654 477e 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5654      00000000 
- 5655 4786 F30F6F8D 		movdqu	-4032(%rbp), %xmm1
- 5655      40F0FFFF 
- 5656 478e F30F7F8D 		movdqu	%xmm1, -4000(%rbp)
- 5656      60F0FFFF 
- 5657 4796 F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 5657      50F0FFFF 
- 5658 479e F30F6F85 		movdqu	-4000(%rbp), %xmm0
- 5658      60F0FFFF 
- 5659 47a6 F30F7F85 		movdqu	%xmm0, -3968(%rbp)
- 5659      80F0FFFF 
- 5660 47ae F30F6F85 		movdqu	-4016(%rbp), %xmm0
- 5660      50F0FFFF 
- 5661 47b6 F30F7F85 		movdqu	%xmm0, -3984(%rbp)
- 5661      70F0FFFF 
- 5662              	.LBB1916:
- 5663              	.LBB1917:
- 5664              	.LBB1918:
- 5665              	.LBB1919:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5666              		.loc 1 529 0
- 5667 47be F30F6F8D 		movdqu	-3984(%rbp), %xmm1
- 5667      70F0FFFF 
- 5668 47c6 F30F6F85 		movdqu	-3968(%rbp), %xmm0
- 5668      80F0FFFF 
- 5669 47ce 660F3800 		pshufb	%xmm1, %xmm0
- 5669      C1
- 5670              	.LBE1919:
- 5671              	.LBE1918:
- 5672              	.LBE1917:
- 5673              	.LBE1916:
- 5674              	.LBE1915:
- 5675              	.LBE1914:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5676              		.loc 3 1569 0
- 5677 47d3 660F7F85 		movdqa	%xmm0, -5520(%rbp)
- 5677      70EAFFFF 
- 5678 47db 660F6F85 		movdqa	-5520(%rbp), %xmm0
- 5678      70EAFFFF 
- 5679 47e3 660FEF85 		pxor	-4208(%rbp), %xmm0
- 5679      90EFFFFF 
- 5680 47eb F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 5680      90EFFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 199
-
-
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5681              		.loc 3 1571 0
- 5682 47f3 F30F6F85 		movdqu	-4208(%rbp), %xmm0
- 5682      90EFFFFF 
- 5683              	.LBE1901:
- 5684              	.LBE1900:
- 5685              		.loc 3 1928 0
- 5686 47fb F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 5686      D0EBFFFF 
- 5687 4803 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5687      D0EBFFFF 
- 5688 480b F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 5688      A0F0FFFF 
- 5689 4813 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 5689      F0EBFFFF 
- 5690 481b F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 5690      90F0FFFF 
- 5691              	.LBB1920:
- 5692              	.LBB1921:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 5693              		.loc 3 178 0
- 5694 4823 F30F6F85 		movdqu	-3952(%rbp), %xmm0
- 5694      90F0FFFF 
- 5695 482b F30F6F8D 		movdqu	-3936(%rbp), %xmm1
- 5695      A0F0FFFF 
- 5696 4833 660FEFC1 		pxor	%xmm1, %xmm0
- 5697              	.LBE1921:
- 5698              	.LBE1920:
- 5699              		.loc 3 1928 0
- 5700 4837 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 5700      D0EBFFFF 
- 5701 483f 488B85C8 		movq	-5176(%rbp), %rax
- 5701      EBFFFF
- 5702 4846 4883C040 		addq	$64, %rax
- 5703 484a F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5703      D0EBFFFF 
- 5704 4852 F30F7F00 		movdqu	%xmm0, (%rax)
- 5705 4856 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5705      D0EBFFFF 
- 5706 485e F30F7F85 		movdqu	%xmm0, -3920(%rbp)
- 5706      B0F0FFFF 
- 5707              	.LBB1922:
- 5708              	.LBB1923:
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 5709              		.loc 3 1649 0
- 5710 4866 F30F6F85 		movdqu	-3920(%rbp), %xmm0
- 5710      B0F0FFFF 
- 5711 486e 660F7F85 		movdqa	%xmm0, -5504(%rbp)
- 5711      80EAFFFF 
- 5712 4876 660F6F85 		movdqa	-5504(%rbp), %xmm0
- 5712      80EAFFFF 
- 5713 487e F30F7F85 		movdqu	%xmm0, -3888(%rbp)
- 5713      D0F0FFFF 
- 5714              	.LBB1924:
- 5715              	.LBB1925:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 5716              		.loc 1 852 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 200
-
-
- 5717 4886 F30F6F85 		movdqu	-3888(%rbp), %xmm0
- 5717      D0F0FFFF 
- 5718 488e 660F3ADF 		aeskeygenassist	$0, %xmm0, %xmm0
- 5718      C000
- 5719              	.LBE1925:
- 5720              	.LBE1924:
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
- 5721              		.loc 3 1650 0
- 5722 4894 660F7F85 		movdqa	%xmm0, -5504(%rbp)
- 5722      80EAFFFF 
- 5723 489c 660F6F85 		movdqa	-5504(%rbp), %xmm0
- 5723      80EAFFFF 
- 5724 48a4 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 5724      E0F0FFFF 
- 5725 48ac F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 5725      E0F0FFFF 
- 5726 48b4 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 5726      00F1FFFF 
- 5727              	.LBB1926:
- 5728              	.LBB1927:
- 5729              	.LBB1928:
- 5730              	.LBB1929:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5731              		.loc 1 450 0
- 5732 48bc F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 5732      00F1FFFF 
- 5733 48c4 660F70C0 		pshufd	$170, %xmm0, %xmm0
- 5733      AA
- 5734              	.LBE1929:
- 5735              	.LBE1928:
- 5736              	.LBE1927:
- 5737              	.LBE1926:
- 5738              	.LBE1923:
- 5739              	.LBE1922:
-1929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(5);         /* k20 : k21 : k22 : k23 */
- 5740              		.loc 3 1929 0
- 5741 48c9 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 5741      F0EBFFFF 
- 5742 48d1 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5742      E0EBFFFF 
- 5743 48d9 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 5743      10F1FFFF 
- 5744              	.LBB1930:
- 5745              	.LBB1931:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5746              		.loc 3 1565 0
- 5747 48e1 F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 5747      10F1FFFF 
- 5748 48e9 660F7F85 		movdqa	%xmm0, -5488(%rbp)
- 5748      90EAFFFF 
- 5749 48f1 660F6F85 		movdqa	-5488(%rbp), %xmm0
- 5749      90EAFFFF 
- 5750 48f9 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 5750      20F1FFFF 
- 5751              	.LBB1932:
- 5752              	.LBB1933:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 201
-
-
- 5753              		.loc 3 1278 0
- 5754 4901 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5754      00000000 
- 5755 4909 F30F6F8D 		movdqu	-3808(%rbp), %xmm1
- 5755      20F1FFFF 
- 5756 4911 F30F7F8D 		movdqu	%xmm1, -3776(%rbp)
- 5756      40F1FFFF 
- 5757 4919 F30F7F85 		movdqu	%xmm0, -3792(%rbp)
- 5757      30F1FFFF 
- 5758 4921 F30F6F85 		movdqu	-3776(%rbp), %xmm0
- 5758      40F1FFFF 
- 5759 4929 F30F7F85 		movdqu	%xmm0, -3744(%rbp)
- 5759      60F1FFFF 
- 5760 4931 F30F6F85 		movdqu	-3792(%rbp), %xmm0
- 5760      30F1FFFF 
- 5761 4939 F30F7F85 		movdqu	%xmm0, -3760(%rbp)
- 5761      50F1FFFF 
- 5762              	.LBB1934:
- 5763              	.LBB1935:
- 5764              	.LBB1936:
- 5765              	.LBB1937:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5766              		.loc 1 529 0
- 5767 4941 F30F6F8D 		movdqu	-3760(%rbp), %xmm1
- 5767      50F1FFFF 
- 5768 4949 F30F6F85 		movdqu	-3744(%rbp), %xmm0
- 5768      60F1FFFF 
- 5769 4951 660F3800 		pshufb	%xmm1, %xmm0
- 5769      C1
- 5770              	.LBE1937:
- 5771              	.LBE1936:
- 5772              	.LBE1935:
- 5773              	.LBE1934:
- 5774              	.LBE1933:
- 5775              	.LBE1932:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5776              		.loc 3 1567 0
- 5777 4956 660F7F85 		movdqa	%xmm0, -5488(%rbp)
- 5777      90EAFFFF 
- 5778 495e 660F6F85 		movdqa	-5488(%rbp), %xmm0
- 5778      90EAFFFF 
- 5779 4966 660FEF85 		pxor	-3824(%rbp), %xmm0
- 5779      10F1FFFF 
- 5780 496e F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 5780      10F1FFFF 
- 5781 4976 660F6F85 		movdqa	-5488(%rbp), %xmm0
- 5781      90EAFFFF 
- 5782 497e F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 5782      70F1FFFF 
- 5783              	.LBB1938:
- 5784              	.LBB1939:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5785              		.loc 3 1278 0
- 5786 4986 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5786      00000000 
- 5787 498e F30F6F8D 		movdqu	-3728(%rbp), %xmm1
- 5787      70F1FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 202
-
-
- 5788 4996 F30F7F8D 		movdqu	%xmm1, -3696(%rbp)
- 5788      90F1FFFF 
- 5789 499e F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 5789      80F1FFFF 
- 5790 49a6 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 5790      90F1FFFF 
- 5791 49ae F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 5791      B0F1FFFF 
- 5792 49b6 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 5792      80F1FFFF 
- 5793 49be F30F7F85 		movdqu	%xmm0, -3680(%rbp)
- 5793      A0F1FFFF 
- 5794              	.LBB1940:
- 5795              	.LBB1941:
- 5796              	.LBB1942:
- 5797              	.LBB1943:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5798              		.loc 1 529 0
- 5799 49c6 F30F6F8D 		movdqu	-3680(%rbp), %xmm1
- 5799      A0F1FFFF 
- 5800 49ce F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 5800      B0F1FFFF 
- 5801 49d6 660F3800 		pshufb	%xmm1, %xmm0
- 5801      C1
- 5802              	.LBE1943:
- 5803              	.LBE1942:
- 5804              	.LBE1941:
- 5805              	.LBE1940:
- 5806              	.LBE1939:
- 5807              	.LBE1938:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5808              		.loc 3 1568 0
- 5809 49db 660F7F85 		movdqa	%xmm0, -5488(%rbp)
- 5809      90EAFFFF 
- 5810 49e3 660F6F85 		movdqa	-5488(%rbp), %xmm0
- 5810      90EAFFFF 
- 5811 49eb 660FEF85 		pxor	-3824(%rbp), %xmm0
- 5811      10F1FFFF 
- 5812 49f3 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 5812      10F1FFFF 
- 5813 49fb 660F6F85 		movdqa	-5488(%rbp), %xmm0
- 5813      90EAFFFF 
- 5814 4a03 F30F7F85 		movdqu	%xmm0, -3648(%rbp)
- 5814      C0F1FFFF 
- 5815              	.LBB1944:
- 5816              	.LBB1945:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5817              		.loc 3 1278 0
- 5818 4a0b 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5818      00000000 
- 5819 4a13 F30F6F8D 		movdqu	-3648(%rbp), %xmm1
- 5819      C0F1FFFF 
- 5820 4a1b F30F7F8D 		movdqu	%xmm1, -3616(%rbp)
- 5820      E0F1FFFF 
- 5821 4a23 F30F7F85 		movdqu	%xmm0, -3632(%rbp)
- 5821      D0F1FFFF 
- 5822 4a2b F30F6F85 		movdqu	-3616(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 203
-
-
- 5822      E0F1FFFF 
- 5823 4a33 F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 5823      00F2FFFF 
- 5824 4a3b F30F6F85 		movdqu	-3632(%rbp), %xmm0
- 5824      D0F1FFFF 
- 5825 4a43 F30F7F85 		movdqu	%xmm0, -3600(%rbp)
- 5825      F0F1FFFF 
- 5826              	.LBB1946:
- 5827              	.LBB1947:
- 5828              	.LBB1948:
- 5829              	.LBB1949:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5830              		.loc 1 529 0
- 5831 4a4b F30F6F8D 		movdqu	-3600(%rbp), %xmm1
- 5831      F0F1FFFF 
- 5832 4a53 F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 5832      00F2FFFF 
- 5833 4a5b 660F3800 		pshufb	%xmm1, %xmm0
- 5833      C1
- 5834              	.LBE1949:
- 5835              	.LBE1948:
- 5836              	.LBE1947:
- 5837              	.LBE1946:
- 5838              	.LBE1945:
- 5839              	.LBE1944:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5840              		.loc 3 1569 0
- 5841 4a60 660F7F85 		movdqa	%xmm0, -5488(%rbp)
- 5841      90EAFFFF 
- 5842 4a68 660F6F85 		movdqa	-5488(%rbp), %xmm0
- 5842      90EAFFFF 
- 5843 4a70 660FEF85 		pxor	-3824(%rbp), %xmm0
- 5843      10F1FFFF 
- 5844 4a78 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 5844      10F1FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5845              		.loc 3 1571 0
- 5846 4a80 F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 5846      10F1FFFF 
- 5847              	.LBE1931:
- 5848              	.LBE1930:
- 5849              		.loc 3 1929 0
- 5850 4a88 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 5850      E0EBFFFF 
- 5851 4a90 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5851      E0EBFFFF 
- 5852 4a98 F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 5852      20F2FFFF 
- 5853 4aa0 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 5853      F0EBFFFF 
- 5854 4aa8 F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 5854      10F2FFFF 
- 5855              	.LBB1950:
- 5856              	.LBB1951:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 5857              		.loc 3 178 0
- 5858 4ab0 F30F6F85 		movdqu	-3568(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 204
-
-
- 5858      10F2FFFF 
- 5859 4ab8 F30F6F8D 		movdqu	-3552(%rbp), %xmm1
- 5859      20F2FFFF 
- 5860 4ac0 660FEFC1 		pxor	%xmm1, %xmm0
- 5861              	.LBE1951:
- 5862              	.LBE1950:
- 5863              		.loc 3 1929 0
- 5864 4ac4 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 5864      E0EBFFFF 
- 5865 4acc 488B85C8 		movq	-5176(%rbp), %rax
- 5865      EBFFFF
- 5866 4ad3 4883C050 		addq	$80, %rax
- 5867 4ad7 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5867      E0EBFFFF 
- 5868 4adf F30F7F00 		movdqu	%xmm0, (%rax)
- 5869 4ae3 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 5869      E0EBFFFF 
- 5870 4aeb F30F7F85 		movdqu	%xmm0, -3520(%rbp)
- 5870      40F2FFFF 
- 5871              	.LBB1952:
- 5872              	.LBB1953:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 5873              		.loc 3 1673 0
- 5874 4af3 F30F6F85 		movdqu	-3520(%rbp), %xmm0
- 5874      40F2FFFF 
- 5875 4afb 660F7F85 		movdqa	%xmm0, -5472(%rbp)
- 5875      A0EAFFFF 
- 5876 4b03 660F6F85 		movdqa	-5472(%rbp), %xmm0
- 5876      A0EAFFFF 
- 5877 4b0b F30F7F85 		movdqu	%xmm0, -3488(%rbp)
- 5877      60F2FFFF 
- 5878              	.LBB1954:
- 5879              	.LBB1955:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 5880              		.loc 1 852 0
- 5881 4b13 F30F6F85 		movdqu	-3488(%rbp), %xmm0
- 5881      60F2FFFF 
- 5882 4b1b 660F3ADF 		aeskeygenassist	$4, %xmm0, %xmm0
- 5882      C004
- 5883              	.LBE1955:
- 5884              	.LBE1954:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 5885              		.loc 3 1674 0
- 5886 4b21 660F7F85 		movdqa	%xmm0, -5472(%rbp)
- 5886      A0EAFFFF 
- 5887 4b29 660F6F85 		movdqa	-5472(%rbp), %xmm0
- 5887      A0EAFFFF 
- 5888 4b31 F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 5888      70F2FFFF 
- 5889 4b39 F30F6F85 		movdqu	-3472(%rbp), %xmm0
- 5889      70F2FFFF 
- 5890 4b41 F30F7F85 		movdqu	%xmm0, -3440(%rbp)
- 5890      90F2FFFF 
- 5891              	.LBB1956:
- 5892              	.LBB1957:
- 5893              	.LBB1958:
- 5894              	.LBB1959:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 205
-
-
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5895              		.loc 1 450 0
- 5896 4b49 F30F6F85 		movdqu	-3440(%rbp), %xmm0
- 5896      90F2FFFF 
- 5897 4b51 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 5897      FF
- 5898              	.LBE1959:
- 5899              	.LBE1958:
- 5900              	.LBE1957:
- 5901              	.LBE1956:
- 5902              	.LBE1953:
- 5903              	.LBE1952:
-1930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(6,0x04);    /* k24 : k25 : k26 : k27 */
- 5904              		.loc 3 1930 0
- 5905 4b56 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 5905      F0EBFFFF 
- 5906 4b5e F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 5906      D0EBFFFF 
- 5907 4b66 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 5907      A0F2FFFF 
- 5908              	.LBB1960:
- 5909              	.LBB1961:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5910              		.loc 3 1565 0
- 5911 4b6e F30F6F85 		movdqu	-3424(%rbp), %xmm0
- 5911      A0F2FFFF 
- 5912 4b76 660F7F85 		movdqa	%xmm0, -5456(%rbp)
- 5912      B0EAFFFF 
- 5913 4b7e 660F6F85 		movdqa	-5456(%rbp), %xmm0
- 5913      B0EAFFFF 
- 5914 4b86 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 5914      B0F2FFFF 
- 5915              	.LBB1962:
- 5916              	.LBB1963:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5917              		.loc 3 1278 0
- 5918 4b8e 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5918      00000000 
- 5919 4b96 F30F6F8D 		movdqu	-3408(%rbp), %xmm1
- 5919      B0F2FFFF 
- 5920 4b9e F30F7F8D 		movdqu	%xmm1, -3376(%rbp)
- 5920      D0F2FFFF 
- 5921 4ba6 F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 5921      C0F2FFFF 
- 5922 4bae F30F6F85 		movdqu	-3376(%rbp), %xmm0
- 5922      D0F2FFFF 
- 5923 4bb6 F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 5923      F0F2FFFF 
- 5924 4bbe F30F6F85 		movdqu	-3392(%rbp), %xmm0
- 5924      C0F2FFFF 
- 5925 4bc6 F30F7F85 		movdqu	%xmm0, -3360(%rbp)
- 5925      E0F2FFFF 
- 5926              	.LBB1964:
- 5927              	.LBB1965:
- 5928              	.LBB1966:
- 5929              	.LBB1967:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 206
-
-
- 5930              		.loc 1 529 0
- 5931 4bce F30F6F8D 		movdqu	-3360(%rbp), %xmm1
- 5931      E0F2FFFF 
- 5932 4bd6 F30F6F85 		movdqu	-3344(%rbp), %xmm0
- 5932      F0F2FFFF 
- 5933 4bde 660F3800 		pshufb	%xmm1, %xmm0
- 5933      C1
- 5934              	.LBE1967:
- 5935              	.LBE1966:
- 5936              	.LBE1965:
- 5937              	.LBE1964:
- 5938              	.LBE1963:
- 5939              	.LBE1962:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5940              		.loc 3 1567 0
- 5941 4be3 660F7F85 		movdqa	%xmm0, -5456(%rbp)
- 5941      B0EAFFFF 
- 5942 4beb 660F6F85 		movdqa	-5456(%rbp), %xmm0
- 5942      B0EAFFFF 
- 5943 4bf3 660FEF85 		pxor	-3424(%rbp), %xmm0
- 5943      A0F2FFFF 
- 5944 4bfb F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 5944      A0F2FFFF 
- 5945 4c03 660F6F85 		movdqa	-5456(%rbp), %xmm0
- 5945      B0EAFFFF 
- 5946 4c0b F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 5946      00F3FFFF 
- 5947              	.LBB1968:
- 5948              	.LBB1969:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5949              		.loc 3 1278 0
- 5950 4c13 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5950      00000000 
- 5951 4c1b F30F6F8D 		movdqu	-3328(%rbp), %xmm1
- 5951      00F3FFFF 
- 5952 4c23 F30F7F8D 		movdqu	%xmm1, -3296(%rbp)
- 5952      20F3FFFF 
- 5953 4c2b F30F7F85 		movdqu	%xmm0, -3312(%rbp)
- 5953      10F3FFFF 
- 5954 4c33 F30F6F85 		movdqu	-3296(%rbp), %xmm0
- 5954      20F3FFFF 
- 5955 4c3b F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 5955      40F3FFFF 
- 5956 4c43 F30F6F85 		movdqu	-3312(%rbp), %xmm0
- 5956      10F3FFFF 
- 5957 4c4b F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 5957      30F3FFFF 
- 5958              	.LBB1970:
- 5959              	.LBB1971:
- 5960              	.LBB1972:
- 5961              	.LBB1973:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5962              		.loc 1 529 0
- 5963 4c53 F30F6F8D 		movdqu	-3280(%rbp), %xmm1
- 5963      30F3FFFF 
- 5964 4c5b F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 5964      40F3FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 207
-
-
- 5965 4c63 660F3800 		pshufb	%xmm1, %xmm0
- 5965      C1
- 5966              	.LBE1973:
- 5967              	.LBE1972:
- 5968              	.LBE1971:
- 5969              	.LBE1970:
- 5970              	.LBE1969:
- 5971              	.LBE1968:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5972              		.loc 3 1568 0
- 5973 4c68 660F7F85 		movdqa	%xmm0, -5456(%rbp)
- 5973      B0EAFFFF 
- 5974 4c70 660F6F85 		movdqa	-5456(%rbp), %xmm0
- 5974      B0EAFFFF 
- 5975 4c78 660FEF85 		pxor	-3424(%rbp), %xmm0
- 5975      A0F2FFFF 
- 5976 4c80 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 5976      A0F2FFFF 
- 5977 4c88 660F6F85 		movdqa	-5456(%rbp), %xmm0
- 5977      B0EAFFFF 
- 5978 4c90 F30F7F85 		movdqu	%xmm0, -3248(%rbp)
- 5978      50F3FFFF 
- 5979              	.LBB1974:
- 5980              	.LBB1975:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5981              		.loc 3 1278 0
- 5982 4c98 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 5982      00000000 
- 5983 4ca0 F30F6F8D 		movdqu	-3248(%rbp), %xmm1
- 5983      50F3FFFF 
- 5984 4ca8 F30F7F8D 		movdqu	%xmm1, -3216(%rbp)
- 5984      70F3FFFF 
- 5985 4cb0 F30F7F85 		movdqu	%xmm0, -3232(%rbp)
- 5985      60F3FFFF 
- 5986 4cb8 F30F6F85 		movdqu	-3216(%rbp), %xmm0
- 5986      70F3FFFF 
- 5987 4cc0 F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 5987      90F3FFFF 
- 5988 4cc8 F30F6F85 		movdqu	-3232(%rbp), %xmm0
- 5988      60F3FFFF 
- 5989 4cd0 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 5989      80F3FFFF 
- 5990              	.LBB1976:
- 5991              	.LBB1977:
- 5992              	.LBB1978:
- 5993              	.LBB1979:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5994              		.loc 1 529 0
- 5995 4cd8 F30F6F8D 		movdqu	-3200(%rbp), %xmm1
- 5995      80F3FFFF 
- 5996 4ce0 F30F6F85 		movdqu	-3184(%rbp), %xmm0
- 5996      90F3FFFF 
- 5997 4ce8 660F3800 		pshufb	%xmm1, %xmm0
- 5997      C1
- 5998              	.LBE1979:
- 5999              	.LBE1978:
- 6000              	.LBE1977:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 208
-
-
- 6001              	.LBE1976:
- 6002              	.LBE1975:
- 6003              	.LBE1974:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6004              		.loc 3 1569 0
- 6005 4ced 660F7F85 		movdqa	%xmm0, -5456(%rbp)
- 6005      B0EAFFFF 
- 6006 4cf5 660F6F85 		movdqa	-5456(%rbp), %xmm0
- 6006      B0EAFFFF 
- 6007 4cfd 660FEF85 		pxor	-3424(%rbp), %xmm0
- 6007      A0F2FFFF 
- 6008 4d05 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 6008      A0F2FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6009              		.loc 3 1571 0
- 6010 4d0d F30F6F85 		movdqu	-3424(%rbp), %xmm0
- 6010      A0F2FFFF 
- 6011              	.LBE1961:
- 6012              	.LBE1960:
- 6013              		.loc 3 1930 0
- 6014 4d15 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 6014      D0EBFFFF 
- 6015 4d1d F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6015      D0EBFFFF 
- 6016 4d25 F30F7F85 		movdqu	%xmm0, -3152(%rbp)
- 6016      B0F3FFFF 
- 6017 4d2d F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 6017      F0EBFFFF 
- 6018 4d35 F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 6018      A0F3FFFF 
- 6019              	.LBB1980:
- 6020              	.LBB1981:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6021              		.loc 3 178 0
- 6022 4d3d F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 6022      A0F3FFFF 
- 6023 4d45 F30F6F8D 		movdqu	-3152(%rbp), %xmm1
- 6023      B0F3FFFF 
- 6024 4d4d 660FEFC1 		pxor	%xmm1, %xmm0
- 6025              	.LBE1981:
- 6026              	.LBE1980:
- 6027              		.loc 3 1930 0
- 6028 4d51 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 6028      D0EBFFFF 
- 6029 4d59 488B85C8 		movq	-5176(%rbp), %rax
- 6029      EBFFFF
- 6030 4d60 4883C060 		addq	$96, %rax
- 6031 4d64 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6031      D0EBFFFF 
- 6032 4d6c F30F7F00 		movdqu	%xmm0, (%rax)
- 6033 4d70 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6033      D0EBFFFF 
- 6034 4d78 F30F7F85 		movdqu	%xmm0, -3136(%rbp)
- 6034      C0F3FFFF 
- 6035              	.LBB1982:
- 6036              	.LBB1983:
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 209
-
-
- 6037              		.loc 3 1649 0
- 6038 4d80 F30F6F85 		movdqu	-3136(%rbp), %xmm0
- 6038      C0F3FFFF 
- 6039 4d88 660F7F85 		movdqa	%xmm0, -5440(%rbp)
- 6039      C0EAFFFF 
- 6040 4d90 660F6F85 		movdqa	-5440(%rbp), %xmm0
- 6040      C0EAFFFF 
- 6041 4d98 F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 6041      E0F3FFFF 
- 6042              	.LBB1984:
- 6043              	.LBB1985:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 6044              		.loc 1 852 0
- 6045 4da0 F30F6F85 		movdqu	-3104(%rbp), %xmm0
- 6045      E0F3FFFF 
- 6046 4da8 660F3ADF 		aeskeygenassist	$0, %xmm0, %xmm0
- 6046      C000
- 6047              	.LBE1985:
- 6048              	.LBE1984:
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
- 6049              		.loc 3 1650 0
- 6050 4dae 660F7F85 		movdqa	%xmm0, -5440(%rbp)
- 6050      C0EAFFFF 
- 6051 4db6 660F6F85 		movdqa	-5440(%rbp), %xmm0
- 6051      C0EAFFFF 
- 6052 4dbe F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 6052      F0F3FFFF 
- 6053 4dc6 F30F6F85 		movdqu	-3088(%rbp), %xmm0
- 6053      F0F3FFFF 
- 6054 4dce F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 6054      10F4FFFF 
- 6055              	.LBB1986:
- 6056              	.LBB1987:
- 6057              	.LBB1988:
- 6058              	.LBB1989:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6059              		.loc 1 450 0
- 6060 4dd6 F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 6060      10F4FFFF 
- 6061 4dde 660F70C0 		pshufd	$170, %xmm0, %xmm0
- 6061      AA
- 6062              	.LBE1989:
- 6063              	.LBE1988:
- 6064              	.LBE1987:
- 6065              	.LBE1986:
- 6066              	.LBE1983:
- 6067              	.LBE1982:
-1931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(7);         /* k28 : k29 : k30 : k31 */
- 6068              		.loc 3 1931 0
- 6069 4de3 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 6069      F0EBFFFF 
- 6070 4deb F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6070      E0EBFFFF 
- 6071 4df3 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 6071      20F4FFFF 
- 6072              	.LBB1990:
- 6073              	.LBB1991:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 210
-
-
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6074              		.loc 3 1565 0
- 6075 4dfb F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 6075      20F4FFFF 
- 6076 4e03 660F7F85 		movdqa	%xmm0, -5424(%rbp)
- 6076      D0EAFFFF 
- 6077 4e0b 660F6F85 		movdqa	-5424(%rbp), %xmm0
- 6077      D0EAFFFF 
- 6078 4e13 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 6078      30F4FFFF 
- 6079              	.LBB1992:
- 6080              	.LBB1993:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6081              		.loc 3 1278 0
- 6082 4e1b 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6082      00000000 
- 6083 4e23 F30F6F8D 		movdqu	-3024(%rbp), %xmm1
- 6083      30F4FFFF 
- 6084 4e2b F30F7F8D 		movdqu	%xmm1, -2992(%rbp)
- 6084      50F4FFFF 
- 6085 4e33 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 6085      40F4FFFF 
- 6086 4e3b F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 6086      50F4FFFF 
- 6087 4e43 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 6087      70F4FFFF 
- 6088 4e4b F30F6F85 		movdqu	-3008(%rbp), %xmm0
- 6088      40F4FFFF 
- 6089 4e53 F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 6089      60F4FFFF 
- 6090              	.LBB1994:
- 6091              	.LBB1995:
- 6092              	.LBB1996:
- 6093              	.LBB1997:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6094              		.loc 1 529 0
- 6095 4e5b F30F6F8D 		movdqu	-2976(%rbp), %xmm1
- 6095      60F4FFFF 
- 6096 4e63 F30F6F85 		movdqu	-2960(%rbp), %xmm0
- 6096      70F4FFFF 
- 6097 4e6b 660F3800 		pshufb	%xmm1, %xmm0
- 6097      C1
- 6098              	.LBE1997:
- 6099              	.LBE1996:
- 6100              	.LBE1995:
- 6101              	.LBE1994:
- 6102              	.LBE1993:
- 6103              	.LBE1992:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6104              		.loc 3 1567 0
- 6105 4e70 660F7F85 		movdqa	%xmm0, -5424(%rbp)
- 6105      D0EAFFFF 
- 6106 4e78 660F6F85 		movdqa	-5424(%rbp), %xmm0
- 6106      D0EAFFFF 
- 6107 4e80 660FEF85 		pxor	-3040(%rbp), %xmm0
- 6107      20F4FFFF 
- 6108 4e88 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 211
-
-
- 6108      20F4FFFF 
- 6109 4e90 660F6F85 		movdqa	-5424(%rbp), %xmm0
- 6109      D0EAFFFF 
- 6110 4e98 F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 6110      80F4FFFF 
- 6111              	.LBB1998:
- 6112              	.LBB1999:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6113              		.loc 3 1278 0
- 6114 4ea0 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6114      00000000 
- 6115 4ea8 F30F6F8D 		movdqu	-2944(%rbp), %xmm1
- 6115      80F4FFFF 
- 6116 4eb0 F30F7F8D 		movdqu	%xmm1, -2912(%rbp)
- 6116      A0F4FFFF 
- 6117 4eb8 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 6117      90F4FFFF 
- 6118 4ec0 F30F6F85 		movdqu	-2912(%rbp), %xmm0
- 6118      A0F4FFFF 
- 6119 4ec8 F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 6119      C0F4FFFF 
- 6120 4ed0 F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 6120      90F4FFFF 
- 6121 4ed8 F30F7F85 		movdqu	%xmm0, -2896(%rbp)
- 6121      B0F4FFFF 
- 6122              	.LBB2000:
- 6123              	.LBB2001:
- 6124              	.LBB2002:
- 6125              	.LBB2003:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6126              		.loc 1 529 0
- 6127 4ee0 F30F6F8D 		movdqu	-2896(%rbp), %xmm1
- 6127      B0F4FFFF 
- 6128 4ee8 F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 6128      C0F4FFFF 
- 6129 4ef0 660F3800 		pshufb	%xmm1, %xmm0
- 6129      C1
- 6130              	.LBE2003:
- 6131              	.LBE2002:
- 6132              	.LBE2001:
- 6133              	.LBE2000:
- 6134              	.LBE1999:
- 6135              	.LBE1998:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6136              		.loc 3 1568 0
- 6137 4ef5 660F7F85 		movdqa	%xmm0, -5424(%rbp)
- 6137      D0EAFFFF 
- 6138 4efd 660F6F85 		movdqa	-5424(%rbp), %xmm0
- 6138      D0EAFFFF 
- 6139 4f05 660FEF85 		pxor	-3040(%rbp), %xmm0
- 6139      20F4FFFF 
- 6140 4f0d F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 6140      20F4FFFF 
- 6141 4f15 660F6F85 		movdqa	-5424(%rbp), %xmm0
- 6141      D0EAFFFF 
- 6142 4f1d F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 6142      D0F4FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 212
-
-
- 6143              	.LBB2004:
- 6144              	.LBB2005:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6145              		.loc 3 1278 0
- 6146 4f25 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6146      00000000 
- 6147 4f2d F30F6F8D 		movdqu	-2864(%rbp), %xmm1
- 6147      D0F4FFFF 
- 6148 4f35 F30F7F8D 		movdqu	%xmm1, -2832(%rbp)
- 6148      F0F4FFFF 
- 6149 4f3d F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 6149      E0F4FFFF 
- 6150 4f45 F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 6150      F0F4FFFF 
- 6151 4f4d F30F7F85 		movdqu	%xmm0, -2800(%rbp)
- 6151      10F5FFFF 
- 6152 4f55 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 6152      E0F4FFFF 
- 6153 4f5d F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 6153      00F5FFFF 
- 6154              	.LBB2006:
- 6155              	.LBB2007:
- 6156              	.LBB2008:
- 6157              	.LBB2009:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6158              		.loc 1 529 0
- 6159 4f65 F30F6F8D 		movdqu	-2816(%rbp), %xmm1
- 6159      00F5FFFF 
- 6160 4f6d F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 6160      10F5FFFF 
- 6161 4f75 660F3800 		pshufb	%xmm1, %xmm0
- 6161      C1
- 6162              	.LBE2009:
- 6163              	.LBE2008:
- 6164              	.LBE2007:
- 6165              	.LBE2006:
- 6166              	.LBE2005:
- 6167              	.LBE2004:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6168              		.loc 3 1569 0
- 6169 4f7a 660F7F85 		movdqa	%xmm0, -5424(%rbp)
- 6169      D0EAFFFF 
- 6170 4f82 660F6F85 		movdqa	-5424(%rbp), %xmm0
- 6170      D0EAFFFF 
- 6171 4f8a 660FEF85 		pxor	-3040(%rbp), %xmm0
- 6171      20F4FFFF 
- 6172 4f92 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 6172      20F4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6173              		.loc 3 1571 0
- 6174 4f9a F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 6174      20F4FFFF 
- 6175              	.LBE1991:
- 6176              	.LBE1990:
- 6177              		.loc 3 1931 0
- 6178 4fa2 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 6178      E0EBFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 213
-
-
- 6179 4faa F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6179      E0EBFFFF 
- 6180 4fb2 F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 6180      30F5FFFF 
- 6181 4fba F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 6181      F0EBFFFF 
- 6182 4fc2 F30F7F85 		movdqu	%xmm0, -2784(%rbp)
- 6182      20F5FFFF 
- 6183              	.LBB2010:
- 6184              	.LBB2011:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6185              		.loc 3 178 0
- 6186 4fca F30F6F85 		movdqu	-2784(%rbp), %xmm0
- 6186      20F5FFFF 
- 6187 4fd2 F30F6F8D 		movdqu	-2768(%rbp), %xmm1
- 6187      30F5FFFF 
- 6188 4fda 660FEFC1 		pxor	%xmm1, %xmm0
- 6189              	.LBE2011:
- 6190              	.LBE2010:
- 6191              		.loc 3 1931 0
- 6192 4fde F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 6192      E0EBFFFF 
- 6193 4fe6 488B85C8 		movq	-5176(%rbp), %rax
- 6193      EBFFFF
- 6194 4fed 4883C070 		addq	$112, %rax
- 6195 4ff1 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6195      E0EBFFFF 
- 6196 4ff9 F30F7F00 		movdqu	%xmm0, (%rax)
- 6197 4ffd F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6197      E0EBFFFF 
- 6198 5005 F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 6198      50F5FFFF 
- 6199              	.LBB2012:
- 6200              	.LBB2013:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 6201              		.loc 3 1673 0
- 6202 500d F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 6202      50F5FFFF 
- 6203 5015 660F7F85 		movdqa	%xmm0, -5408(%rbp)
- 6203      E0EAFFFF 
- 6204 501d 660F6F85 		movdqa	-5408(%rbp), %xmm0
- 6204      E0EAFFFF 
- 6205 5025 F30F7F85 		movdqu	%xmm0, -2704(%rbp)
- 6205      70F5FFFF 
- 6206              	.LBB2014:
- 6207              	.LBB2015:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 6208              		.loc 1 852 0
- 6209 502d F30F6F85 		movdqu	-2704(%rbp), %xmm0
- 6209      70F5FFFF 
- 6210 5035 660F3ADF 		aeskeygenassist	$8, %xmm0, %xmm0
- 6210      C008
- 6211              	.LBE2015:
- 6212              	.LBE2014:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 6213              		.loc 3 1674 0
- 6214 503b 660F7F85 		movdqa	%xmm0, -5408(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 214
-
-
- 6214      E0EAFFFF 
- 6215 5043 660F6F85 		movdqa	-5408(%rbp), %xmm0
- 6215      E0EAFFFF 
- 6216 504b F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 6216      80F5FFFF 
- 6217 5053 F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 6217      80F5FFFF 
- 6218 505b F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 6218      A0F5FFFF 
- 6219              	.LBB2016:
- 6220              	.LBB2017:
- 6221              	.LBB2018:
- 6222              	.LBB2019:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6223              		.loc 1 450 0
- 6224 5063 F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 6224      A0F5FFFF 
- 6225 506b 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 6225      FF
- 6226              	.LBE2019:
- 6227              	.LBE2018:
- 6228              	.LBE2017:
- 6229              	.LBE2016:
- 6230              	.LBE2013:
- 6231              	.LBE2012:
-1932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(8,0x08);    /* k32 : k33 : k34 : k35 */
- 6232              		.loc 3 1932 0
- 6233 5070 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 6233      F0EBFFFF 
- 6234 5078 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6234      D0EBFFFF 
- 6235 5080 F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 6235      B0F5FFFF 
- 6236              	.LBB2020:
- 6237              	.LBB2021:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6238              		.loc 3 1565 0
- 6239 5088 F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 6239      B0F5FFFF 
- 6240 5090 660F7F85 		movdqa	%xmm0, -5392(%rbp)
- 6240      F0EAFFFF 
- 6241 5098 660F6F85 		movdqa	-5392(%rbp), %xmm0
- 6241      F0EAFFFF 
- 6242 50a0 F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 6242      C0F5FFFF 
- 6243              	.LBB2022:
- 6244              	.LBB2023:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6245              		.loc 3 1278 0
- 6246 50a8 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6246      00000000 
- 6247 50b0 F30F6F8D 		movdqu	-2624(%rbp), %xmm1
- 6247      C0F5FFFF 
- 6248 50b8 F30F7F8D 		movdqu	%xmm1, -2592(%rbp)
- 6248      E0F5FFFF 
- 6249 50c0 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 6249      D0F5FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 215
-
-
- 6250 50c8 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 6250      E0F5FFFF 
- 6251 50d0 F30F7F85 		movdqu	%xmm0, -2560(%rbp)
- 6251      00F6FFFF 
- 6252 50d8 F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 6252      D0F5FFFF 
- 6253 50e0 F30F7F85 		movdqu	%xmm0, -2576(%rbp)
- 6253      F0F5FFFF 
- 6254              	.LBB2024:
- 6255              	.LBB2025:
- 6256              	.LBB2026:
- 6257              	.LBB2027:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6258              		.loc 1 529 0
- 6259 50e8 F30F6F8D 		movdqu	-2576(%rbp), %xmm1
- 6259      F0F5FFFF 
- 6260 50f0 F30F6F85 		movdqu	-2560(%rbp), %xmm0
- 6260      00F6FFFF 
- 6261 50f8 660F3800 		pshufb	%xmm1, %xmm0
- 6261      C1
- 6262              	.LBE2027:
- 6263              	.LBE2026:
- 6264              	.LBE2025:
- 6265              	.LBE2024:
- 6266              	.LBE2023:
- 6267              	.LBE2022:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6268              		.loc 3 1567 0
- 6269 50fd 660F7F85 		movdqa	%xmm0, -5392(%rbp)
- 6269      F0EAFFFF 
- 6270 5105 660F6F85 		movdqa	-5392(%rbp), %xmm0
- 6270      F0EAFFFF 
- 6271 510d 660FEF85 		pxor	-2640(%rbp), %xmm0
- 6271      B0F5FFFF 
- 6272 5115 F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 6272      B0F5FFFF 
- 6273 511d 660F6F85 		movdqa	-5392(%rbp), %xmm0
- 6273      F0EAFFFF 
- 6274 5125 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 6274      10F6FFFF 
- 6275              	.LBB2028:
- 6276              	.LBB2029:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6277              		.loc 3 1278 0
- 6278 512d 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6278      00000000 
- 6279 5135 F30F6F8D 		movdqu	-2544(%rbp), %xmm1
- 6279      10F6FFFF 
- 6280 513d F30F7F8D 		movdqu	%xmm1, -2512(%rbp)
- 6280      30F6FFFF 
- 6281 5145 F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 6281      20F6FFFF 
- 6282 514d F30F6F85 		movdqu	-2512(%rbp), %xmm0
- 6282      30F6FFFF 
- 6283 5155 F30F7F85 		movdqu	%xmm0, -2480(%rbp)
- 6283      50F6FFFF 
- 6284 515d F30F6F85 		movdqu	-2528(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 216
-
-
- 6284      20F6FFFF 
- 6285 5165 F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 6285      40F6FFFF 
- 6286              	.LBB2030:
- 6287              	.LBB2031:
- 6288              	.LBB2032:
- 6289              	.LBB2033:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6290              		.loc 1 529 0
- 6291 516d F30F6F8D 		movdqu	-2496(%rbp), %xmm1
- 6291      40F6FFFF 
- 6292 5175 F30F6F85 		movdqu	-2480(%rbp), %xmm0
- 6292      50F6FFFF 
- 6293 517d 660F3800 		pshufb	%xmm1, %xmm0
- 6293      C1
- 6294              	.LBE2033:
- 6295              	.LBE2032:
- 6296              	.LBE2031:
- 6297              	.LBE2030:
- 6298              	.LBE2029:
- 6299              	.LBE2028:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6300              		.loc 3 1568 0
- 6301 5182 660F7F85 		movdqa	%xmm0, -5392(%rbp)
- 6301      F0EAFFFF 
- 6302 518a 660F6F85 		movdqa	-5392(%rbp), %xmm0
- 6302      F0EAFFFF 
- 6303 5192 660FEF85 		pxor	-2640(%rbp), %xmm0
- 6303      B0F5FFFF 
- 6304 519a F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 6304      B0F5FFFF 
- 6305 51a2 660F6F85 		movdqa	-5392(%rbp), %xmm0
- 6305      F0EAFFFF 
- 6306 51aa F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 6306      60F6FFFF 
- 6307              	.LBB2034:
- 6308              	.LBB2035:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6309              		.loc 3 1278 0
- 6310 51b2 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6310      00000000 
- 6311 51ba F30F6F8D 		movdqu	-2464(%rbp), %xmm1
- 6311      60F6FFFF 
- 6312 51c2 F30F7F8D 		movdqu	%xmm1, -2432(%rbp)
- 6312      80F6FFFF 
- 6313 51ca F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 6313      70F6FFFF 
- 6314 51d2 F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 6314      80F6FFFF 
- 6315 51da F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 6315      A0F6FFFF 
- 6316 51e2 F30F6F85 		movdqu	-2448(%rbp), %xmm0
- 6316      70F6FFFF 
- 6317 51ea F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 6317      90F6FFFF 
- 6318              	.LBB2036:
- 6319              	.LBB2037:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 217
-
-
- 6320              	.LBB2038:
- 6321              	.LBB2039:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6322              		.loc 1 529 0
- 6323 51f2 F30F6F8D 		movdqu	-2416(%rbp), %xmm1
- 6323      90F6FFFF 
- 6324 51fa F30F6F85 		movdqu	-2400(%rbp), %xmm0
- 6324      A0F6FFFF 
- 6325 5202 660F3800 		pshufb	%xmm1, %xmm0
- 6325      C1
- 6326              	.LBE2039:
- 6327              	.LBE2038:
- 6328              	.LBE2037:
- 6329              	.LBE2036:
- 6330              	.LBE2035:
- 6331              	.LBE2034:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6332              		.loc 3 1569 0
- 6333 5207 660F7F85 		movdqa	%xmm0, -5392(%rbp)
- 6333      F0EAFFFF 
- 6334 520f 660F6F85 		movdqa	-5392(%rbp), %xmm0
- 6334      F0EAFFFF 
- 6335 5217 660FEF85 		pxor	-2640(%rbp), %xmm0
- 6335      B0F5FFFF 
- 6336 521f F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 6336      B0F5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6337              		.loc 3 1571 0
- 6338 5227 F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 6338      B0F5FFFF 
- 6339              	.LBE2021:
- 6340              	.LBE2020:
- 6341              		.loc 3 1932 0
- 6342 522f F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 6342      D0EBFFFF 
- 6343 5237 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6343      D0EBFFFF 
- 6344 523f F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 6344      C0F6FFFF 
- 6345 5247 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 6345      F0EBFFFF 
- 6346 524f F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 6346      B0F6FFFF 
- 6347              	.LBB2040:
- 6348              	.LBB2041:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6349              		.loc 3 178 0
- 6350 5257 F30F6F85 		movdqu	-2384(%rbp), %xmm0
- 6350      B0F6FFFF 
- 6351 525f F30F6F8D 		movdqu	-2368(%rbp), %xmm1
- 6351      C0F6FFFF 
- 6352 5267 660FEFC1 		pxor	%xmm1, %xmm0
- 6353              	.LBE2041:
- 6354              	.LBE2040:
- 6355              		.loc 3 1932 0
- 6356 526b F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 6356      D0EBFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 218
-
-
- 6357 5273 488B85C8 		movq	-5176(%rbp), %rax
- 6357      EBFFFF
- 6358 527a 4883E880 		subq	$-128, %rax
- 6359 527e F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6359      D0EBFFFF 
- 6360 5286 F30F7F00 		movdqu	%xmm0, (%rax)
- 6361 528a F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6361      D0EBFFFF 
- 6362 5292 F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 6362      D0F6FFFF 
- 6363              	.LBB2042:
- 6364              	.LBB2043:
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 6365              		.loc 3 1649 0
- 6366 529a F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 6366      D0F6FFFF 
- 6367 52a2 660F7F85 		movdqa	%xmm0, -5376(%rbp)
- 6367      00EBFFFF 
- 6368 52aa 660F6F85 		movdqa	-5376(%rbp), %xmm0
- 6368      00EBFFFF 
- 6369 52b2 F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 6369      F0F6FFFF 
- 6370              	.LBB2044:
- 6371              	.LBB2045:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 6372              		.loc 1 852 0
- 6373 52ba F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 6373      F0F6FFFF 
- 6374 52c2 660F3ADF 		aeskeygenassist	$0, %xmm0, %xmm0
- 6374      C000
- 6375              	.LBE2045:
- 6376              	.LBE2044:
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
- 6377              		.loc 3 1650 0
- 6378 52c8 660F7F85 		movdqa	%xmm0, -5376(%rbp)
- 6378      00EBFFFF 
- 6379 52d0 660F6F85 		movdqa	-5376(%rbp), %xmm0
- 6379      00EBFFFF 
- 6380 52d8 F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 6380      00F7FFFF 
- 6381 52e0 F30F6F85 		movdqu	-2304(%rbp), %xmm0
- 6381      00F7FFFF 
- 6382 52e8 F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 6382      20F7FFFF 
- 6383              	.LBB2046:
- 6384              	.LBB2047:
- 6385              	.LBB2048:
- 6386              	.LBB2049:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6387              		.loc 1 450 0
- 6388 52f0 F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 6388      20F7FFFF 
- 6389 52f8 660F70C0 		pshufd	$170, %xmm0, %xmm0
- 6389      AA
- 6390              	.LBE2049:
- 6391              	.LBE2048:
- 6392              	.LBE2047:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 219
-
-
- 6393              	.LBE2046:
- 6394              	.LBE2043:
- 6395              	.LBE2042:
-1933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(9);         /* k36 : k37 : k38 : k39 */
- 6396              		.loc 3 1933 0
- 6397 52fd F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 6397      F0EBFFFF 
- 6398 5305 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6398      E0EBFFFF 
- 6399 530d F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 6399      30F7FFFF 
- 6400              	.LBB2050:
- 6401              	.LBB2051:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6402              		.loc 3 1565 0
- 6403 5315 F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 6403      30F7FFFF 
- 6404 531d 660F7F85 		movdqa	%xmm0, -5360(%rbp)
- 6404      10EBFFFF 
- 6405 5325 660F6F85 		movdqa	-5360(%rbp), %xmm0
- 6405      10EBFFFF 
- 6406 532d F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 6406      40F7FFFF 
- 6407              	.LBB2052:
- 6408              	.LBB2053:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6409              		.loc 3 1278 0
- 6410 5335 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6410      00000000 
- 6411 533d F30F6F8D 		movdqu	-2240(%rbp), %xmm1
- 6411      40F7FFFF 
- 6412 5345 F30F7F8D 		movdqu	%xmm1, -2208(%rbp)
- 6412      60F7FFFF 
- 6413 534d F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 6413      50F7FFFF 
- 6414 5355 F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 6414      60F7FFFF 
- 6415 535d F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 6415      80F7FFFF 
- 6416 5365 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 6416      50F7FFFF 
- 6417 536d F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 6417      70F7FFFF 
- 6418              	.LBB2054:
- 6419              	.LBB2055:
- 6420              	.LBB2056:
- 6421              	.LBB2057:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6422              		.loc 1 529 0
- 6423 5375 F30F6F8D 		movdqu	-2192(%rbp), %xmm1
- 6423      70F7FFFF 
- 6424 537d F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 6424      80F7FFFF 
- 6425 5385 660F3800 		pshufb	%xmm1, %xmm0
- 6425      C1
- 6426              	.LBE2057:
- 6427              	.LBE2056:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 220
-
-
- 6428              	.LBE2055:
- 6429              	.LBE2054:
- 6430              	.LBE2053:
- 6431              	.LBE2052:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6432              		.loc 3 1567 0
- 6433 538a 660F7F85 		movdqa	%xmm0, -5360(%rbp)
- 6433      10EBFFFF 
- 6434 5392 660F6F85 		movdqa	-5360(%rbp), %xmm0
- 6434      10EBFFFF 
- 6435 539a 660FEF85 		pxor	-2256(%rbp), %xmm0
- 6435      30F7FFFF 
- 6436 53a2 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 6436      30F7FFFF 
- 6437 53aa 660F6F85 		movdqa	-5360(%rbp), %xmm0
- 6437      10EBFFFF 
- 6438 53b2 F30F7F85 		movdqu	%xmm0, -2160(%rbp)
- 6438      90F7FFFF 
- 6439              	.LBB2058:
- 6440              	.LBB2059:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6441              		.loc 3 1278 0
- 6442 53ba 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6442      00000000 
- 6443 53c2 F30F6F8D 		movdqu	-2160(%rbp), %xmm1
- 6443      90F7FFFF 
- 6444 53ca F30F7F8D 		movdqu	%xmm1, -2128(%rbp)
- 6444      B0F7FFFF 
- 6445 53d2 F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 6445      A0F7FFFF 
- 6446 53da F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 6446      B0F7FFFF 
- 6447 53e2 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 6447      D0F7FFFF 
- 6448 53ea F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 6448      A0F7FFFF 
- 6449 53f2 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 6449      C0F7FFFF 
- 6450              	.LBB2060:
- 6451              	.LBB2061:
- 6452              	.LBB2062:
- 6453              	.LBB2063:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6454              		.loc 1 529 0
- 6455 53fa F30F6F8D 		movdqu	-2112(%rbp), %xmm1
- 6455      C0F7FFFF 
- 6456 5402 F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 6456      D0F7FFFF 
- 6457 540a 660F3800 		pshufb	%xmm1, %xmm0
- 6457      C1
- 6458              	.LBE2063:
- 6459              	.LBE2062:
- 6460              	.LBE2061:
- 6461              	.LBE2060:
- 6462              	.LBE2059:
- 6463              	.LBE2058:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 221
-
-
- 6464              		.loc 3 1568 0
- 6465 540f 660F7F85 		movdqa	%xmm0, -5360(%rbp)
- 6465      10EBFFFF 
- 6466 5417 660F6F85 		movdqa	-5360(%rbp), %xmm0
- 6466      10EBFFFF 
- 6467 541f 660FEF85 		pxor	-2256(%rbp), %xmm0
- 6467      30F7FFFF 
- 6468 5427 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 6468      30F7FFFF 
- 6469 542f 660F6F85 		movdqa	-5360(%rbp), %xmm0
- 6469      10EBFFFF 
- 6470 5437 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 6470      E0F7FFFF 
- 6471              	.LBB2064:
- 6472              	.LBB2065:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6473              		.loc 3 1278 0
- 6474 543f 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6474      00000000 
- 6475 5447 F30F6F8D 		movdqu	-2080(%rbp), %xmm1
- 6475      E0F7FFFF 
- 6476 544f F30F7F8D 		movdqu	%xmm1, -2048(%rbp)
- 6476      00F8FFFF 
- 6477 5457 F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 6477      F0F7FFFF 
- 6478 545f F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 6478      00F8FFFF 
- 6479 5467 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 6479      20F8FFFF 
- 6480 546f F30F6F85 		movdqu	-2064(%rbp), %xmm0
- 6480      F0F7FFFF 
- 6481 5477 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 6481      10F8FFFF 
- 6482              	.LBB2066:
- 6483              	.LBB2067:
- 6484              	.LBB2068:
- 6485              	.LBB2069:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6486              		.loc 1 529 0
- 6487 547f F30F6F8D 		movdqu	-2032(%rbp), %xmm1
- 6487      10F8FFFF 
- 6488 5487 F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 6488      20F8FFFF 
- 6489 548f 660F3800 		pshufb	%xmm1, %xmm0
- 6489      C1
- 6490              	.LBE2069:
- 6491              	.LBE2068:
- 6492              	.LBE2067:
- 6493              	.LBE2066:
- 6494              	.LBE2065:
- 6495              	.LBE2064:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6496              		.loc 3 1569 0
- 6497 5494 660F7F85 		movdqa	%xmm0, -5360(%rbp)
- 6497      10EBFFFF 
- 6498 549c 660F6F85 		movdqa	-5360(%rbp), %xmm0
- 6498      10EBFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 222
-
-
- 6499 54a4 660FEF85 		pxor	-2256(%rbp), %xmm0
- 6499      30F7FFFF 
- 6500 54ac F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 6500      30F7FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6501              		.loc 3 1571 0
- 6502 54b4 F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 6502      30F7FFFF 
- 6503              	.LBE2051:
- 6504              	.LBE2050:
- 6505              		.loc 3 1933 0
- 6506 54bc F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 6506      E0EBFFFF 
- 6507 54c4 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6507      E0EBFFFF 
- 6508 54cc F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 6508      40F8FFFF 
- 6509 54d4 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 6509      F0EBFFFF 
- 6510 54dc F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 6510      30F8FFFF 
- 6511              	.LBB2070:
- 6512              	.LBB2071:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6513              		.loc 3 178 0
- 6514 54e4 F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 6514      30F8FFFF 
- 6515 54ec F30F6F8D 		movdqu	-1984(%rbp), %xmm1
- 6515      40F8FFFF 
- 6516 54f4 660FEFC1 		pxor	%xmm1, %xmm0
- 6517              	.LBE2071:
- 6518              	.LBE2070:
- 6519              		.loc 3 1933 0
- 6520 54f8 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 6520      E0EBFFFF 
- 6521 5500 488B85C8 		movq	-5176(%rbp), %rax
- 6521      EBFFFF
- 6522 5507 48059000 		addq	$144, %rax
- 6522      0000
- 6523 550d F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6523      E0EBFFFF 
- 6524 5515 F30F7F00 		movdqu	%xmm0, (%rax)
- 6525 5519 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6525      E0EBFFFF 
- 6526 5521 F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 6526      60F8FFFF 
- 6527              	.LBB2072:
- 6528              	.LBB2073:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 6529              		.loc 3 1673 0
- 6530 5529 F30F6F85 		movdqu	-1952(%rbp), %xmm0
- 6530      60F8FFFF 
- 6531 5531 660F7F85 		movdqa	%xmm0, -5344(%rbp)
- 6531      20EBFFFF 
- 6532 5539 660F6F85 		movdqa	-5344(%rbp), %xmm0
- 6532      20EBFFFF 
- 6533 5541 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 223
-
-
- 6533      80F8FFFF 
- 6534              	.LBB2074:
- 6535              	.LBB2075:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 6536              		.loc 1 852 0
- 6537 5549 F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 6537      80F8FFFF 
- 6538 5551 660F3ADF 		aeskeygenassist	$16, %xmm0, %xmm0
- 6538      C010
- 6539              	.LBE2075:
- 6540              	.LBE2074:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 6541              		.loc 3 1674 0
- 6542 5557 660F7F85 		movdqa	%xmm0, -5344(%rbp)
- 6542      20EBFFFF 
- 6543 555f 660F6F85 		movdqa	-5344(%rbp), %xmm0
- 6543      20EBFFFF 
- 6544 5567 F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 6544      90F8FFFF 
- 6545 556f F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 6545      90F8FFFF 
- 6546 5577 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 6546      B0F8FFFF 
- 6547              	.LBB2076:
- 6548              	.LBB2077:
- 6549              	.LBB2078:
- 6550              	.LBB2079:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6551              		.loc 1 450 0
- 6552 557f F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 6552      B0F8FFFF 
- 6553 5587 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 6553      FF
- 6554              	.LBE2079:
- 6555              	.LBE2078:
- 6556              	.LBE2077:
- 6557              	.LBE2076:
- 6558              	.LBE2073:
- 6559              	.LBE2072:
-1934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(10,0x10);   /* k40 : k41 : k42 : k43 */
- 6560              		.loc 3 1934 0
- 6561 558c F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 6561      F0EBFFFF 
- 6562 5594 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6562      D0EBFFFF 
- 6563 559c F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 6563      C0F8FFFF 
- 6564              	.LBB2080:
- 6565              	.LBB2081:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6566              		.loc 3 1565 0
- 6567 55a4 F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 6567      C0F8FFFF 
- 6568 55ac 660F7F85 		movdqa	%xmm0, -5328(%rbp)
- 6568      30EBFFFF 
- 6569 55b4 660F6F85 		movdqa	-5328(%rbp), %xmm0
- 6569      30EBFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 224
-
-
- 6570 55bc F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 6570      D0F8FFFF 
- 6571              	.LBB2082:
- 6572              	.LBB2083:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6573              		.loc 3 1278 0
- 6574 55c4 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6574      00000000 
- 6575 55cc F30F6F8D 		movdqu	-1840(%rbp), %xmm1
- 6575      D0F8FFFF 
- 6576 55d4 F30F7F8D 		movdqu	%xmm1, -1808(%rbp)
- 6576      F0F8FFFF 
- 6577 55dc F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 6577      E0F8FFFF 
- 6578 55e4 F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 6578      F0F8FFFF 
- 6579 55ec F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 6579      10F9FFFF 
- 6580 55f4 F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 6580      E0F8FFFF 
- 6581 55fc F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 6581      00F9FFFF 
- 6582              	.LBB2084:
- 6583              	.LBB2085:
- 6584              	.LBB2086:
- 6585              	.LBB2087:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6586              		.loc 1 529 0
- 6587 5604 F30F6F8D 		movdqu	-1792(%rbp), %xmm1
- 6587      00F9FFFF 
- 6588 560c F30F6F85 		movdqu	-1776(%rbp), %xmm0
- 6588      10F9FFFF 
- 6589 5614 660F3800 		pshufb	%xmm1, %xmm0
- 6589      C1
- 6590              	.LBE2087:
- 6591              	.LBE2086:
- 6592              	.LBE2085:
- 6593              	.LBE2084:
- 6594              	.LBE2083:
- 6595              	.LBE2082:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6596              		.loc 3 1567 0
- 6597 5619 660F7F85 		movdqa	%xmm0, -5328(%rbp)
- 6597      30EBFFFF 
- 6598 5621 660F6F85 		movdqa	-5328(%rbp), %xmm0
- 6598      30EBFFFF 
- 6599 5629 660FEF85 		pxor	-1856(%rbp), %xmm0
- 6599      C0F8FFFF 
- 6600 5631 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 6600      C0F8FFFF 
- 6601 5639 660F6F85 		movdqa	-5328(%rbp), %xmm0
- 6601      30EBFFFF 
- 6602 5641 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 6602      20F9FFFF 
- 6603              	.LBB2088:
- 6604              	.LBB2089:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 225
-
-
- 6605              		.loc 3 1278 0
- 6606 5649 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6606      00000000 
- 6607 5651 F30F6F8D 		movdqu	-1760(%rbp), %xmm1
- 6607      20F9FFFF 
- 6608 5659 F30F7F8D 		movdqu	%xmm1, -1728(%rbp)
- 6608      40F9FFFF 
- 6609 5661 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 6609      30F9FFFF 
- 6610 5669 F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 6610      40F9FFFF 
- 6611 5671 F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 6611      60F9FFFF 
- 6612 5679 F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 6612      30F9FFFF 
- 6613 5681 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 6613      50F9FFFF 
- 6614              	.LBB2090:
- 6615              	.LBB2091:
- 6616              	.LBB2092:
- 6617              	.LBB2093:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6618              		.loc 1 529 0
- 6619 5689 F30F6F8D 		movdqu	-1712(%rbp), %xmm1
- 6619      50F9FFFF 
- 6620 5691 F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 6620      60F9FFFF 
- 6621 5699 660F3800 		pshufb	%xmm1, %xmm0
- 6621      C1
- 6622              	.LBE2093:
- 6623              	.LBE2092:
- 6624              	.LBE2091:
- 6625              	.LBE2090:
- 6626              	.LBE2089:
- 6627              	.LBE2088:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6628              		.loc 3 1568 0
- 6629 569e 660F7F85 		movdqa	%xmm0, -5328(%rbp)
- 6629      30EBFFFF 
- 6630 56a6 660F6F85 		movdqa	-5328(%rbp), %xmm0
- 6630      30EBFFFF 
- 6631 56ae 660FEF85 		pxor	-1856(%rbp), %xmm0
- 6631      C0F8FFFF 
- 6632 56b6 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 6632      C0F8FFFF 
- 6633 56be 660F6F85 		movdqa	-5328(%rbp), %xmm0
- 6633      30EBFFFF 
- 6634 56c6 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 6634      70F9FFFF 
- 6635              	.LBB2094:
- 6636              	.LBB2095:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6637              		.loc 3 1278 0
- 6638 56ce 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6638      00000000 
- 6639 56d6 F30F6F8D 		movdqu	-1680(%rbp), %xmm1
- 6639      70F9FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 226
-
-
- 6640 56de F30F7F8D 		movdqu	%xmm1, -1648(%rbp)
- 6640      90F9FFFF 
- 6641 56e6 F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 6641      80F9FFFF 
- 6642 56ee F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 6642      90F9FFFF 
- 6643 56f6 F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 6643      B0F9FFFF 
- 6644 56fe F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 6644      80F9FFFF 
- 6645 5706 F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 6645      A0F9FFFF 
- 6646              	.LBB2096:
- 6647              	.LBB2097:
- 6648              	.LBB2098:
- 6649              	.LBB2099:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6650              		.loc 1 529 0
- 6651 570e F30F6F8D 		movdqu	-1632(%rbp), %xmm1
- 6651      A0F9FFFF 
- 6652 5716 F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 6652      B0F9FFFF 
- 6653 571e 660F3800 		pshufb	%xmm1, %xmm0
- 6653      C1
- 6654              	.LBE2099:
- 6655              	.LBE2098:
- 6656              	.LBE2097:
- 6657              	.LBE2096:
- 6658              	.LBE2095:
- 6659              	.LBE2094:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6660              		.loc 3 1569 0
- 6661 5723 660F7F85 		movdqa	%xmm0, -5328(%rbp)
- 6661      30EBFFFF 
- 6662 572b 660F6F85 		movdqa	-5328(%rbp), %xmm0
- 6662      30EBFFFF 
- 6663 5733 660FEF85 		pxor	-1856(%rbp), %xmm0
- 6663      C0F8FFFF 
- 6664 573b F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 6664      C0F8FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6665              		.loc 3 1571 0
- 6666 5743 F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 6666      C0F8FFFF 
- 6667              	.LBE2081:
- 6668              	.LBE2080:
- 6669              		.loc 3 1934 0
- 6670 574b F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 6670      D0EBFFFF 
- 6671 5753 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6671      D0EBFFFF 
- 6672 575b F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 6672      D0F9FFFF 
- 6673 5763 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 6673      F0EBFFFF 
- 6674 576b F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 6674      C0F9FFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 227
-
-
- 6675              	.LBB2100:
- 6676              	.LBB2101:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6677              		.loc 3 178 0
- 6678 5773 F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 6678      C0F9FFFF 
- 6679 577b F30F6F8D 		movdqu	-1584(%rbp), %xmm1
- 6679      D0F9FFFF 
- 6680 5783 660FEFC1 		pxor	%xmm1, %xmm0
- 6681              	.LBE2101:
- 6682              	.LBE2100:
- 6683              		.loc 3 1934 0
- 6684 5787 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 6684      D0EBFFFF 
- 6685 578f 488B85C8 		movq	-5176(%rbp), %rax
- 6685      EBFFFF
- 6686 5796 4805A000 		addq	$160, %rax
- 6686      0000
- 6687 579c F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6687      D0EBFFFF 
- 6688 57a4 F30F7F00 		movdqu	%xmm0, (%rax)
- 6689 57a8 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6689      D0EBFFFF 
- 6690 57b0 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 6690      E0F9FFFF 
- 6691              	.LBB2102:
- 6692              	.LBB2103:
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 6693              		.loc 3 1649 0
- 6694 57b8 F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 6694      E0F9FFFF 
- 6695 57c0 660F7F85 		movdqa	%xmm0, -5312(%rbp)
- 6695      40EBFFFF 
- 6696 57c8 660F6F85 		movdqa	-5312(%rbp), %xmm0
- 6696      40EBFFFF 
- 6697 57d0 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 6697      00FAFFFF 
- 6698              	.LBB2104:
- 6699              	.LBB2105:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 6700              		.loc 1 852 0
- 6701 57d8 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 6701      00FAFFFF 
- 6702 57e0 660F3ADF 		aeskeygenassist	$0, %xmm0, %xmm0
- 6702      C000
- 6703              	.LBE2105:
- 6704              	.LBE2104:
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
- 6705              		.loc 3 1650 0
- 6706 57e6 660F7F85 		movdqa	%xmm0, -5312(%rbp)
- 6706      40EBFFFF 
- 6707 57ee 660F6F85 		movdqa	-5312(%rbp), %xmm0
- 6707      40EBFFFF 
- 6708 57f6 F30F7F85 		movdqu	%xmm0, -1520(%rbp)
- 6708      10FAFFFF 
- 6709 57fe F30F6F85 		movdqu	-1520(%rbp), %xmm0
- 6709      10FAFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 228
-
-
- 6710 5806 F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 6710      30FAFFFF 
- 6711              	.LBB2106:
- 6712              	.LBB2107:
- 6713              	.LBB2108:
- 6714              	.LBB2109:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6715              		.loc 1 450 0
- 6716 580e F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 6716      30FAFFFF 
- 6717 5816 660F70C0 		pshufd	$170, %xmm0, %xmm0
- 6717      AA
- 6718              	.LBE2109:
- 6719              	.LBE2108:
- 6720              	.LBE2107:
- 6721              	.LBE2106:
- 6722              	.LBE2103:
- 6723              	.LBE2102:
-1935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(11);        /* k44 : k45 : k46 : k47 */
- 6724              		.loc 3 1935 0
- 6725 581b F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 6725      F0EBFFFF 
- 6726 5823 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6726      E0EBFFFF 
- 6727 582b F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 6727      40FAFFFF 
- 6728              	.LBB2110:
- 6729              	.LBB2111:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6730              		.loc 3 1565 0
- 6731 5833 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 6731      40FAFFFF 
- 6732 583b 660F7F85 		movdqa	%xmm0, -5296(%rbp)
- 6732      50EBFFFF 
- 6733 5843 660F6F85 		movdqa	-5296(%rbp), %xmm0
- 6733      50EBFFFF 
- 6734 584b F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 6734      50FAFFFF 
- 6735              	.LBB2112:
- 6736              	.LBB2113:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6737              		.loc 3 1278 0
- 6738 5853 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6738      00000000 
- 6739 585b F30F6F8D 		movdqu	-1456(%rbp), %xmm1
- 6739      50FAFFFF 
- 6740 5863 F30F7F8D 		movdqu	%xmm1, -1424(%rbp)
- 6740      70FAFFFF 
- 6741 586b F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 6741      60FAFFFF 
- 6742 5873 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 6742      70FAFFFF 
- 6743 587b F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 6743      90FAFFFF 
- 6744 5883 F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 6744      60FAFFFF 
- 6745 588b F30F7F85 		movdqu	%xmm0, -1408(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 229
-
-
- 6745      80FAFFFF 
- 6746              	.LBB2114:
- 6747              	.LBB2115:
- 6748              	.LBB2116:
- 6749              	.LBB2117:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6750              		.loc 1 529 0
- 6751 5893 F30F6F8D 		movdqu	-1408(%rbp), %xmm1
- 6751      80FAFFFF 
- 6752 589b F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 6752      90FAFFFF 
- 6753 58a3 660F3800 		pshufb	%xmm1, %xmm0
- 6753      C1
- 6754              	.LBE2117:
- 6755              	.LBE2116:
- 6756              	.LBE2115:
- 6757              	.LBE2114:
- 6758              	.LBE2113:
- 6759              	.LBE2112:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6760              		.loc 3 1567 0
- 6761 58a8 660F7F85 		movdqa	%xmm0, -5296(%rbp)
- 6761      50EBFFFF 
- 6762 58b0 660F6F85 		movdqa	-5296(%rbp), %xmm0
- 6762      50EBFFFF 
- 6763 58b8 660FEF85 		pxor	-1472(%rbp), %xmm0
- 6763      40FAFFFF 
- 6764 58c0 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 6764      40FAFFFF 
- 6765 58c8 660F6F85 		movdqa	-5296(%rbp), %xmm0
- 6765      50EBFFFF 
- 6766 58d0 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 6766      A0FAFFFF 
- 6767              	.LBB2118:
- 6768              	.LBB2119:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6769              		.loc 3 1278 0
- 6770 58d8 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6770      00000000 
- 6771 58e0 F30F6F8D 		movdqu	-1376(%rbp), %xmm1
- 6771      A0FAFFFF 
- 6772 58e8 F30F7F8D 		movdqu	%xmm1, -1344(%rbp)
- 6772      C0FAFFFF 
- 6773 58f0 F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 6773      B0FAFFFF 
- 6774 58f8 F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 6774      C0FAFFFF 
- 6775 5900 F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 6775      E0FAFFFF 
- 6776 5908 F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 6776      B0FAFFFF 
- 6777 5910 F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 6777      D0FAFFFF 
- 6778              	.LBB2120:
- 6779              	.LBB2121:
- 6780              	.LBB2122:
- 6781              	.LBB2123:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 230
-
-
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6782              		.loc 1 529 0
- 6783 5918 F30F6F8D 		movdqu	-1328(%rbp), %xmm1
- 6783      D0FAFFFF 
- 6784 5920 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 6784      E0FAFFFF 
- 6785 5928 660F3800 		pshufb	%xmm1, %xmm0
- 6785      C1
- 6786              	.LBE2123:
- 6787              	.LBE2122:
- 6788              	.LBE2121:
- 6789              	.LBE2120:
- 6790              	.LBE2119:
- 6791              	.LBE2118:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6792              		.loc 3 1568 0
- 6793 592d 660F7F85 		movdqa	%xmm0, -5296(%rbp)
- 6793      50EBFFFF 
- 6794 5935 660F6F85 		movdqa	-5296(%rbp), %xmm0
- 6794      50EBFFFF 
- 6795 593d 660FEF85 		pxor	-1472(%rbp), %xmm0
- 6795      40FAFFFF 
- 6796 5945 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 6796      40FAFFFF 
- 6797 594d 660F6F85 		movdqa	-5296(%rbp), %xmm0
- 6797      50EBFFFF 
- 6798 5955 F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 6798      F0FAFFFF 
- 6799              	.LBB2124:
- 6800              	.LBB2125:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6801              		.loc 3 1278 0
- 6802 595d 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6802      00000000 
- 6803 5965 F30F6F8D 		movdqu	-1296(%rbp), %xmm1
- 6803      F0FAFFFF 
- 6804 596d F30F7F8D 		movdqu	%xmm1, -1264(%rbp)
- 6804      10FBFFFF 
- 6805 5975 F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 6805      00FBFFFF 
- 6806 597d F30F6F85 		movdqu	-1264(%rbp), %xmm0
- 6806      10FBFFFF 
- 6807 5985 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 6807      30FBFFFF 
- 6808 598d F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 6808      00FBFFFF 
- 6809 5995 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 6809      20FBFFFF 
- 6810              	.LBB2126:
- 6811              	.LBB2127:
- 6812              	.LBB2128:
- 6813              	.LBB2129:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6814              		.loc 1 529 0
- 6815 599d F30F6F8D 		movdqu	-1248(%rbp), %xmm1
- 6815      20FBFFFF 
- 6816 59a5 F30F6F85 		movdqu	-1232(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 231
-
-
- 6816      30FBFFFF 
- 6817 59ad 660F3800 		pshufb	%xmm1, %xmm0
- 6817      C1
- 6818              	.LBE2129:
- 6819              	.LBE2128:
- 6820              	.LBE2127:
- 6821              	.LBE2126:
- 6822              	.LBE2125:
- 6823              	.LBE2124:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6824              		.loc 3 1569 0
- 6825 59b2 660F7F85 		movdqa	%xmm0, -5296(%rbp)
- 6825      50EBFFFF 
- 6826 59ba 660F6F85 		movdqa	-5296(%rbp), %xmm0
- 6826      50EBFFFF 
- 6827 59c2 660FEF85 		pxor	-1472(%rbp), %xmm0
- 6827      40FAFFFF 
- 6828 59ca F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 6828      40FAFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6829              		.loc 3 1571 0
- 6830 59d2 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 6830      40FAFFFF 
- 6831              	.LBE2111:
- 6832              	.LBE2110:
- 6833              		.loc 3 1935 0
- 6834 59da F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 6834      E0EBFFFF 
- 6835 59e2 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6835      E0EBFFFF 
- 6836 59ea F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 6836      50FBFFFF 
- 6837 59f2 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 6837      F0EBFFFF 
- 6838 59fa F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 6838      40FBFFFF 
- 6839              	.LBB2130:
- 6840              	.LBB2131:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6841              		.loc 3 178 0
- 6842 5a02 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 6842      40FBFFFF 
- 6843 5a0a F30F6F8D 		movdqu	-1200(%rbp), %xmm1
- 6843      50FBFFFF 
- 6844 5a12 660FEFC1 		pxor	%xmm1, %xmm0
- 6845              	.LBE2131:
- 6846              	.LBE2130:
- 6847              		.loc 3 1935 0
- 6848 5a16 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 6848      E0EBFFFF 
- 6849 5a1e 488B85C8 		movq	-5176(%rbp), %rax
- 6849      EBFFFF
- 6850 5a25 4805B000 		addq	$176, %rax
- 6850      0000
- 6851 5a2b F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6851      E0EBFFFF 
- 6852 5a33 F30F7F00 		movdqu	%xmm0, (%rax)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 232
-
-
- 6853 5a37 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 6853      E0EBFFFF 
- 6854 5a3f F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 6854      70FBFFFF 
- 6855              	.LBB2132:
- 6856              	.LBB2133:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 6857              		.loc 3 1673 0
- 6858 5a47 F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 6858      70FBFFFF 
- 6859 5a4f 660F7F85 		movdqa	%xmm0, -5280(%rbp)
- 6859      60EBFFFF 
- 6860 5a57 660F6F85 		movdqa	-5280(%rbp), %xmm0
- 6860      60EBFFFF 
- 6861 5a5f F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 6861      90FBFFFF 
- 6862              	.LBB2134:
- 6863              	.LBB2135:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 6864              		.loc 1 852 0
- 6865 5a67 F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 6865      90FBFFFF 
- 6866 5a6f 660F3ADF 		aeskeygenassist	$32, %xmm0, %xmm0
- 6866      C020
- 6867              	.LBE2135:
- 6868              	.LBE2134:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 6869              		.loc 3 1674 0
- 6870 5a75 660F7F85 		movdqa	%xmm0, -5280(%rbp)
- 6870      60EBFFFF 
- 6871 5a7d 660F6F85 		movdqa	-5280(%rbp), %xmm0
- 6871      60EBFFFF 
- 6872 5a85 F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 6872      A0FBFFFF 
- 6873 5a8d F30F6F85 		movdqu	-1120(%rbp), %xmm0
- 6873      A0FBFFFF 
- 6874 5a95 F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 6874      C0FBFFFF 
- 6875              	.LBB2136:
- 6876              	.LBB2137:
- 6877              	.LBB2138:
- 6878              	.LBB2139:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6879              		.loc 1 450 0
- 6880 5a9d F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 6880      C0FBFFFF 
- 6881 5aa5 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 6881      FF
- 6882              	.LBE2139:
- 6883              	.LBE2138:
- 6884              	.LBE2137:
- 6885              	.LBE2136:
- 6886              	.LBE2133:
- 6887              	.LBE2132:
-1936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(12,0x20);   /* k48 : k49 : k50 : k51 */
- 6888              		.loc 3 1936 0
- 6889 5aaa F30F7F85 		movdqu	%xmm0, -5136(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 233
-
-
- 6889      F0EBFFFF 
- 6890 5ab2 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6890      D0EBFFFF 
- 6891 5aba F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 6891      D0FBFFFF 
- 6892              	.LBB2140:
- 6893              	.LBB2141:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6894              		.loc 3 1565 0
- 6895 5ac2 F30F6F85 		movdqu	-1072(%rbp), %xmm0
- 6895      D0FBFFFF 
- 6896 5aca 660F7F85 		movdqa	%xmm0, -5264(%rbp)
- 6896      70EBFFFF 
- 6897 5ad2 660F6F85 		movdqa	-5264(%rbp), %xmm0
- 6897      70EBFFFF 
- 6898 5ada F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 6898      E0FBFFFF 
- 6899              	.LBB2142:
- 6900              	.LBB2143:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6901              		.loc 3 1278 0
- 6902 5ae2 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6902      00000000 
- 6903 5aea F30F6F8D 		movdqu	-1056(%rbp), %xmm1
- 6903      E0FBFFFF 
- 6904 5af2 F30F7F8D 		movdqu	%xmm1, -1024(%rbp)
- 6904      00FCFFFF 
- 6905 5afa F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 6905      F0FBFFFF 
- 6906 5b02 F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 6906      00FCFFFF 
- 6907 5b0a F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 6907      20FCFFFF 
- 6908 5b12 F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 6908      F0FBFFFF 
- 6909 5b1a F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 6909      10FCFFFF 
- 6910              	.LBB2144:
- 6911              	.LBB2145:
- 6912              	.LBB2146:
- 6913              	.LBB2147:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6914              		.loc 1 529 0
- 6915 5b22 F30F6F8D 		movdqu	-1008(%rbp), %xmm1
- 6915      10FCFFFF 
- 6916 5b2a F30F6F85 		movdqu	-992(%rbp), %xmm0
- 6916      20FCFFFF 
- 6917 5b32 660F3800 		pshufb	%xmm1, %xmm0
- 6917      C1
- 6918              	.LBE2147:
- 6919              	.LBE2146:
- 6920              	.LBE2145:
- 6921              	.LBE2144:
- 6922              	.LBE2143:
- 6923              	.LBE2142:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6924              		.loc 3 1567 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 234
-
-
- 6925 5b37 660F7F85 		movdqa	%xmm0, -5264(%rbp)
- 6925      70EBFFFF 
- 6926 5b3f 660F6F85 		movdqa	-5264(%rbp), %xmm0
- 6926      70EBFFFF 
- 6927 5b47 660FEF85 		pxor	-1072(%rbp), %xmm0
- 6927      D0FBFFFF 
- 6928 5b4f F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 6928      D0FBFFFF 
- 6929 5b57 660F6F85 		movdqa	-5264(%rbp), %xmm0
- 6929      70EBFFFF 
- 6930 5b5f F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 6930      30FCFFFF 
- 6931              	.LBB2148:
- 6932              	.LBB2149:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6933              		.loc 3 1278 0
- 6934 5b67 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6934      00000000 
- 6935 5b6f F30F6F8D 		movdqu	-976(%rbp), %xmm1
- 6935      30FCFFFF 
- 6936 5b77 F30F7F8D 		movdqu	%xmm1, -944(%rbp)
- 6936      50FCFFFF 
- 6937 5b7f F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 6937      40FCFFFF 
- 6938 5b87 F30F6F85 		movdqu	-944(%rbp), %xmm0
- 6938      50FCFFFF 
- 6939 5b8f F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 6939      70FCFFFF 
- 6940 5b97 F30F6F85 		movdqu	-960(%rbp), %xmm0
- 6940      40FCFFFF 
- 6941 5b9f F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 6941      60FCFFFF 
- 6942              	.LBB2150:
- 6943              	.LBB2151:
- 6944              	.LBB2152:
- 6945              	.LBB2153:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6946              		.loc 1 529 0
- 6947 5ba7 F30F6F8D 		movdqu	-928(%rbp), %xmm1
- 6947      60FCFFFF 
- 6948 5baf F30F6F85 		movdqu	-912(%rbp), %xmm0
- 6948      70FCFFFF 
- 6949 5bb7 660F3800 		pshufb	%xmm1, %xmm0
- 6949      C1
- 6950              	.LBE2153:
- 6951              	.LBE2152:
- 6952              	.LBE2151:
- 6953              	.LBE2150:
- 6954              	.LBE2149:
- 6955              	.LBE2148:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6956              		.loc 3 1568 0
- 6957 5bbc 660F7F85 		movdqa	%xmm0, -5264(%rbp)
- 6957      70EBFFFF 
- 6958 5bc4 660F6F85 		movdqa	-5264(%rbp), %xmm0
- 6958      70EBFFFF 
- 6959 5bcc 660FEF85 		pxor	-1072(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 235
-
-
- 6959      D0FBFFFF 
- 6960 5bd4 F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 6960      D0FBFFFF 
- 6961 5bdc 660F6F85 		movdqa	-5264(%rbp), %xmm0
- 6961      70EBFFFF 
- 6962 5be4 F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 6962      80FCFFFF 
- 6963              	.LBB2154:
- 6964              	.LBB2155:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6965              		.loc 3 1278 0
- 6966 5bec 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 6966      00000000 
- 6967 5bf4 F30F6F8D 		movdqu	-896(%rbp), %xmm1
- 6967      80FCFFFF 
- 6968 5bfc F30F7F8D 		movdqu	%xmm1, -864(%rbp)
- 6968      A0FCFFFF 
- 6969 5c04 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 6969      90FCFFFF 
- 6970 5c0c F30F6F85 		movdqu	-864(%rbp), %xmm0
- 6970      A0FCFFFF 
- 6971 5c14 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 6971      C0FCFFFF 
- 6972 5c1c F30F6F85 		movdqu	-880(%rbp), %xmm0
- 6972      90FCFFFF 
- 6973 5c24 F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 6973      B0FCFFFF 
- 6974              	.LBB2156:
- 6975              	.LBB2157:
- 6976              	.LBB2158:
- 6977              	.LBB2159:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6978              		.loc 1 529 0
- 6979 5c2c F30F6F8D 		movdqu	-848(%rbp), %xmm1
- 6979      B0FCFFFF 
- 6980 5c34 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 6980      C0FCFFFF 
- 6981 5c3c 660F3800 		pshufb	%xmm1, %xmm0
- 6981      C1
- 6982              	.LBE2159:
- 6983              	.LBE2158:
- 6984              	.LBE2157:
- 6985              	.LBE2156:
- 6986              	.LBE2155:
- 6987              	.LBE2154:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6988              		.loc 3 1569 0
- 6989 5c41 660F7F85 		movdqa	%xmm0, -5264(%rbp)
- 6989      70EBFFFF 
- 6990 5c49 660F6F85 		movdqa	-5264(%rbp), %xmm0
- 6990      70EBFFFF 
- 6991 5c51 660FEF85 		pxor	-1072(%rbp), %xmm0
- 6991      D0FBFFFF 
- 6992 5c59 F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 6992      D0FBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6993              		.loc 3 1571 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 236
-
-
- 6994 5c61 F30F6F85 		movdqu	-1072(%rbp), %xmm0
- 6994      D0FBFFFF 
- 6995              	.LBE2141:
- 6996              	.LBE2140:
- 6997              		.loc 3 1936 0
- 6998 5c69 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 6998      D0EBFFFF 
- 6999 5c71 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 6999      D0EBFFFF 
- 7000 5c79 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 7000      E0FCFFFF 
- 7001 5c81 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 7001      F0EBFFFF 
- 7002 5c89 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 7002      D0FCFFFF 
- 7003              	.LBB2160:
- 7004              	.LBB2161:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 7005              		.loc 3 178 0
- 7006 5c91 F30F6F85 		movdqu	-816(%rbp), %xmm0
- 7006      D0FCFFFF 
- 7007 5c99 F30F6F8D 		movdqu	-800(%rbp), %xmm1
- 7007      E0FCFFFF 
- 7008 5ca1 660FEFC1 		pxor	%xmm1, %xmm0
- 7009              	.LBE2161:
- 7010              	.LBE2160:
- 7011              		.loc 3 1936 0
- 7012 5ca5 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 7012      D0EBFFFF 
- 7013 5cad 488B85C8 		movq	-5176(%rbp), %rax
- 7013      EBFFFF
- 7014 5cb4 4805C000 		addq	$192, %rax
- 7014      0000
- 7015 5cba F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 7015      D0EBFFFF 
- 7016 5cc2 F30F7F00 		movdqu	%xmm0, (%rax)
- 7017 5cc6 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 7017      D0EBFFFF 
- 7018 5cce F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 7018      F0FCFFFF 
- 7019              	.LBB2162:
- 7020              	.LBB2163:
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 7021              		.loc 3 1649 0
- 7022 5cd6 F30F6F85 		movdqu	-784(%rbp), %xmm0
- 7022      F0FCFFFF 
- 7023 5cde 660F7F85 		movdqa	%xmm0, -5248(%rbp)
- 7023      80EBFFFF 
- 7024 5ce6 660F6F85 		movdqa	-5248(%rbp), %xmm0
- 7024      80EBFFFF 
- 7025 5cee F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 7025      10FDFFFF 
- 7026              	.LBB2164:
- 7027              	.LBB2165:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 7028              		.loc 1 852 0
- 7029 5cf6 F30F6F85 		movdqu	-752(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 237
-
-
- 7029      10FDFFFF 
- 7030 5cfe 660F3ADF 		aeskeygenassist	$0, %xmm0, %xmm0
- 7030      C000
- 7031              	.LBE2165:
- 7032              	.LBE2164:
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
- 7033              		.loc 3 1650 0
- 7034 5d04 660F7F85 		movdqa	%xmm0, -5248(%rbp)
- 7034      80EBFFFF 
- 7035 5d0c 660F6F85 		movdqa	-5248(%rbp), %xmm0
- 7035      80EBFFFF 
- 7036 5d14 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 7036      20FDFFFF 
- 7037 5d1c F30F6F85 		movdqu	-736(%rbp), %xmm0
- 7037      20FDFFFF 
- 7038 5d24 F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 7038      40FDFFFF 
- 7039              	.LBB2166:
- 7040              	.LBB2167:
- 7041              	.LBB2168:
- 7042              	.LBB2169:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 7043              		.loc 1 450 0
- 7044 5d2c F30F6F85 		movdqu	-704(%rbp), %xmm0
- 7044      40FDFFFF 
- 7045 5d34 660F70C0 		pshufd	$170, %xmm0, %xmm0
- 7045      AA
- 7046              	.LBE2169:
- 7047              	.LBE2168:
- 7048              	.LBE2167:
- 7049              	.LBE2166:
- 7050              	.LBE2163:
- 7051              	.LBE2162:
-1937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(13);        /* k52 : k53 : k54 : k55 */
- 7052              		.loc 3 1937 0
- 7053 5d39 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 7053      F0EBFFFF 
- 7054 5d41 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 7054      E0EBFFFF 
- 7055 5d49 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 7055      50FDFFFF 
- 7056              	.LBB2170:
- 7057              	.LBB2171:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7058              		.loc 3 1565 0
- 7059 5d51 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 7059      50FDFFFF 
- 7060 5d59 660F7F85 		movdqa	%xmm0, -5232(%rbp)
- 7060      90EBFFFF 
- 7061 5d61 660F6F85 		movdqa	-5232(%rbp), %xmm0
- 7061      90EBFFFF 
- 7062 5d69 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 7062      60FDFFFF 
- 7063              	.LBB2172:
- 7064              	.LBB2173:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7065              		.loc 3 1278 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 238
-
-
- 7066 5d71 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 7066      00000000 
- 7067 5d79 F30F6F8D 		movdqu	-672(%rbp), %xmm1
- 7067      60FDFFFF 
- 7068 5d81 F30F7F8D 		movdqu	%xmm1, -640(%rbp)
- 7068      80FDFFFF 
- 7069 5d89 F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 7069      70FDFFFF 
- 7070 5d91 F30F6F85 		movdqu	-640(%rbp), %xmm0
- 7070      80FDFFFF 
- 7071 5d99 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 7071      A0FDFFFF 
- 7072 5da1 F30F6F85 		movdqu	-656(%rbp), %xmm0
- 7072      70FDFFFF 
- 7073 5da9 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 7073      90FDFFFF 
- 7074              	.LBB2174:
- 7075              	.LBB2175:
- 7076              	.LBB2176:
- 7077              	.LBB2177:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7078              		.loc 1 529 0
- 7079 5db1 F30F6F8D 		movdqu	-624(%rbp), %xmm1
- 7079      90FDFFFF 
- 7080 5db9 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 7080      A0FDFFFF 
- 7081 5dc1 660F3800 		pshufb	%xmm1, %xmm0
- 7081      C1
- 7082              	.LBE2177:
- 7083              	.LBE2176:
- 7084              	.LBE2175:
- 7085              	.LBE2174:
- 7086              	.LBE2173:
- 7087              	.LBE2172:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7088              		.loc 3 1567 0
- 7089 5dc6 660F7F85 		movdqa	%xmm0, -5232(%rbp)
- 7089      90EBFFFF 
- 7090 5dce 660F6F85 		movdqa	-5232(%rbp), %xmm0
- 7090      90EBFFFF 
- 7091 5dd6 660FEF85 		pxor	-688(%rbp), %xmm0
- 7091      50FDFFFF 
- 7092 5dde F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 7092      50FDFFFF 
- 7093 5de6 660F6F85 		movdqa	-5232(%rbp), %xmm0
- 7093      90EBFFFF 
- 7094 5dee F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 7094      B0FDFFFF 
- 7095              	.LBB2178:
- 7096              	.LBB2179:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7097              		.loc 3 1278 0
- 7098 5df6 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 7098      00000000 
- 7099 5dfe F30F6F8D 		movdqu	-592(%rbp), %xmm1
- 7099      B0FDFFFF 
- 7100 5e06 F30F7F8D 		movdqu	%xmm1, -560(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 239
-
-
- 7100      D0FDFFFF 
- 7101 5e0e F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 7101      C0FDFFFF 
- 7102 5e16 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 7102      D0FDFFFF 
- 7103 5e1e F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 7103      F0FDFFFF 
- 7104 5e26 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 7104      C0FDFFFF 
- 7105 5e2e F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 7105      E0FDFFFF 
- 7106              	.LBB2180:
- 7107              	.LBB2181:
- 7108              	.LBB2182:
- 7109              	.LBB2183:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7110              		.loc 1 529 0
- 7111 5e36 F30F6F8D 		movdqu	-544(%rbp), %xmm1
- 7111      E0FDFFFF 
- 7112 5e3e F30F6F85 		movdqu	-528(%rbp), %xmm0
- 7112      F0FDFFFF 
- 7113 5e46 660F3800 		pshufb	%xmm1, %xmm0
- 7113      C1
- 7114              	.LBE2183:
- 7115              	.LBE2182:
- 7116              	.LBE2181:
- 7117              	.LBE2180:
- 7118              	.LBE2179:
- 7119              	.LBE2178:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7120              		.loc 3 1568 0
- 7121 5e4b 660F7F85 		movdqa	%xmm0, -5232(%rbp)
- 7121      90EBFFFF 
- 7122 5e53 660F6F85 		movdqa	-5232(%rbp), %xmm0
- 7122      90EBFFFF 
- 7123 5e5b 660FEF85 		pxor	-688(%rbp), %xmm0
- 7123      50FDFFFF 
- 7124 5e63 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 7124      50FDFFFF 
- 7125 5e6b 660F6F85 		movdqa	-5232(%rbp), %xmm0
- 7125      90EBFFFF 
- 7126 5e73 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 7126      00FEFFFF 
- 7127              	.LBB2184:
- 7128              	.LBB2185:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7129              		.loc 3 1278 0
- 7130 5e7b 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 7130      00000000 
- 7131 5e83 F30F6F8D 		movdqu	-512(%rbp), %xmm1
- 7131      00FEFFFF 
- 7132 5e8b F30F7F8D 		movdqu	%xmm1, -480(%rbp)
- 7132      20FEFFFF 
- 7133 5e93 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 7133      10FEFFFF 
- 7134 5e9b F30F6F85 		movdqu	-480(%rbp), %xmm0
- 7134      20FEFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 240
-
-
- 7135 5ea3 F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 7135      40FEFFFF 
- 7136 5eab F30F6F85 		movdqu	-496(%rbp), %xmm0
- 7136      10FEFFFF 
- 7137 5eb3 F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 7137      30FEFFFF 
- 7138              	.LBB2186:
- 7139              	.LBB2187:
- 7140              	.LBB2188:
- 7141              	.LBB2189:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7142              		.loc 1 529 0
- 7143 5ebb F30F6F8D 		movdqu	-464(%rbp), %xmm1
- 7143      30FEFFFF 
- 7144 5ec3 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 7144      40FEFFFF 
- 7145 5ecb 660F3800 		pshufb	%xmm1, %xmm0
- 7145      C1
- 7146              	.LBE2189:
- 7147              	.LBE2188:
- 7148              	.LBE2187:
- 7149              	.LBE2186:
- 7150              	.LBE2185:
- 7151              	.LBE2184:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7152              		.loc 3 1569 0
- 7153 5ed0 660F7F85 		movdqa	%xmm0, -5232(%rbp)
- 7153      90EBFFFF 
- 7154 5ed8 660F6F85 		movdqa	-5232(%rbp), %xmm0
- 7154      90EBFFFF 
- 7155 5ee0 660FEF85 		pxor	-688(%rbp), %xmm0
- 7155      50FDFFFF 
- 7156 5ee8 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 7156      50FDFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7157              		.loc 3 1571 0
- 7158 5ef0 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 7158      50FDFFFF 
- 7159              	.LBE2171:
- 7160              	.LBE2170:
- 7161              		.loc 3 1937 0
- 7162 5ef8 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 7162      E0EBFFFF 
- 7163 5f00 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 7163      E0EBFFFF 
- 7164 5f08 F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 7164      60FEFFFF 
- 7165 5f10 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 7165      F0EBFFFF 
- 7166 5f18 F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 7166      50FEFFFF 
- 7167              	.LBB2190:
- 7168              	.LBB2191:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 7169              		.loc 3 178 0
- 7170 5f20 F30F6F85 		movdqu	-432(%rbp), %xmm0
- 7170      50FEFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 241
-
-
- 7171 5f28 F30F6F8D 		movdqu	-416(%rbp), %xmm1
- 7171      60FEFFFF 
- 7172 5f30 660FEFC1 		pxor	%xmm1, %xmm0
- 7173              	.LBE2191:
- 7174              	.LBE2190:
- 7175              		.loc 3 1937 0
- 7176 5f34 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 7176      E0EBFFFF 
- 7177 5f3c 488B85C8 		movq	-5176(%rbp), %rax
- 7177      EBFFFF
- 7178 5f43 4805D000 		addq	$208, %rax
- 7178      0000
- 7179 5f49 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 7179      E0EBFFFF 
- 7180 5f51 F30F7F00 		movdqu	%xmm0, (%rax)
- 7181 5f55 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 7181      E0EBFFFF 
- 7182 5f5d F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 7182      80FEFFFF 
- 7183              	.LBB2192:
- 7184              	.LBB2193:
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
- 7185              		.loc 3 1673 0
- 7186 5f65 F30F6F85 		movdqu	-384(%rbp), %xmm0
- 7186      80FEFFFF 
- 7187 5f6d 660F7F85 		movdqa	%xmm0, -5216(%rbp)
- 7187      A0EBFFFF 
- 7188 5f75 660F6F85 		movdqa	-5216(%rbp), %xmm0
- 7188      A0EBFFFF 
- 7189 5f7d F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 7189      A0FEFFFF 
- 7190              	.LBB2194:
- 7191              	.LBB2195:
- 852:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_aeskeygenassist128 ((v128_lli_t)round_key,
- 7192              		.loc 1 852 0
- 7193 5f85 F30F6F85 		movdqu	-352(%rbp), %xmm0
- 7193      A0FEFFFF 
- 7194 5f8d 660F3ADF 		aeskeygenassist	$64, %xmm0, %xmm0
- 7194      C040
- 7195              	.LBE2195:
- 7196              	.LBE2194:
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
- 7197              		.loc 3 1674 0
- 7198 5f93 660F7F85 		movdqa	%xmm0, -5216(%rbp)
- 7198      A0EBFFFF 
- 7199 5f9b 660F6F85 		movdqa	-5216(%rbp), %xmm0
- 7199      A0EBFFFF 
- 7200 5fa3 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 7200      B0FEFFFF 
- 7201 5fab F30F6F85 		movdqu	-336(%rbp), %xmm0
- 7201      B0FEFFFF 
- 7202 5fb3 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 7202      D0FEFFFF 
- 7203              	.LBB2196:
- 7204              	.LBB2197:
- 7205              	.LBB2198:
- 7206              	.LBB2199:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 242
-
-
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 7207              		.loc 1 450 0
- 7208 5fbb F30F6F85 		movdqu	-304(%rbp), %xmm0
- 7208      D0FEFFFF 
- 7209 5fc3 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 7209      FF
- 7210              	.LBE2199:
- 7211              	.LBE2198:
- 7212              	.LBE2197:
- 7213              	.LBE2196:
- 7214              	.LBE2193:
- 7215              	.LBE2192:
-1938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(14,0x40);   /* k56 : k57 : k58 : k59 */
- 7216              		.loc 3 1938 0
- 7217 5fc8 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 7217      F0EBFFFF 
- 7218 5fd0 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 7218      D0EBFFFF 
- 7219 5fd8 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 7219      E0FEFFFF 
- 7220              	.LBB2200:
- 7221              	.LBB2201:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7222              		.loc 3 1565 0
- 7223 5fe0 F30F6F85 		movdqu	-288(%rbp), %xmm0
- 7223      E0FEFFFF 
- 7224 5fe8 660F7F85 		movdqa	%xmm0, -5200(%rbp)
- 7224      B0EBFFFF 
- 7225 5ff0 660F6F85 		movdqa	-5200(%rbp), %xmm0
- 7225      B0EBFFFF 
- 7226 5ff8 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 7226      F0FEFFFF 
- 7227              	.LBB2202:
- 7228              	.LBB2203:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7229              		.loc 3 1278 0
- 7230 6000 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 7230      00000000 
- 7231 6008 F30F6F8D 		movdqu	-272(%rbp), %xmm1
- 7231      F0FEFFFF 
- 7232 6010 F30F7F8D 		movdqu	%xmm1, -240(%rbp)
- 7232      10FFFFFF 
- 7233 6018 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 7233      00FFFFFF 
- 7234 6020 F30F6F85 		movdqu	-240(%rbp), %xmm0
- 7234      10FFFFFF 
- 7235 6028 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 7235      30FFFFFF 
- 7236 6030 F30F6F85 		movdqu	-256(%rbp), %xmm0
- 7236      00FFFFFF 
- 7237 6038 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 7237      20FFFFFF 
- 7238              	.LBB2204:
- 7239              	.LBB2205:
- 7240              	.LBB2206:
- 7241              	.LBB2207:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 243
-
-
- 7242              		.loc 1 529 0
- 7243 6040 F30F6F8D 		movdqu	-224(%rbp), %xmm1
- 7243      20FFFFFF 
- 7244 6048 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 7244      30FFFFFF 
- 7245 6050 660F3800 		pshufb	%xmm1, %xmm0
- 7245      C1
- 7246              	.LBE2207:
- 7247              	.LBE2206:
- 7248              	.LBE2205:
- 7249              	.LBE2204:
- 7250              	.LBE2203:
- 7251              	.LBE2202:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7252              		.loc 3 1567 0
- 7253 6055 660F7F85 		movdqa	%xmm0, -5200(%rbp)
- 7253      B0EBFFFF 
- 7254 605d 660F6F85 		movdqa	-5200(%rbp), %xmm0
- 7254      B0EBFFFF 
- 7255 6065 660FEF85 		pxor	-288(%rbp), %xmm0
- 7255      E0FEFFFF 
- 7256 606d F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 7256      E0FEFFFF 
- 7257 6075 660F6F85 		movdqa	-5200(%rbp), %xmm0
- 7257      B0EBFFFF 
- 7258 607d F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 7258      40FFFFFF 
- 7259              	.LBB2208:
- 7260              	.LBB2209:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7261              		.loc 3 1278 0
- 7262 6085 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 7262      00000000 
- 7263 608d F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 7263      40FFFFFF 
- 7264 6095 F30F7F8D 		movdqu	%xmm1, -160(%rbp)
- 7264      60FFFFFF 
- 7265 609d F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 7265      50FFFFFF 
- 7266 60a5 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 7266      60FFFFFF 
- 7267 60ad F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 7267      80
- 7268 60b2 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 7268      50FFFFFF 
- 7269 60ba F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 7269      70FFFFFF 
- 7270              	.LBB2210:
- 7271              	.LBB2211:
- 7272              	.LBB2212:
- 7273              	.LBB2213:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7274              		.loc 1 529 0
- 7275 60c2 F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 7275      70FFFFFF 
- 7276 60ca F30F6F45 		movdqu	-128(%rbp), %xmm0
- 7276      80
-
GAS LISTING /tmp/ccPaCTqg.s 			page 244
-
-
- 7277 60cf 660F3800 		pshufb	%xmm1, %xmm0
- 7277      C1
- 7278              	.LBE2213:
- 7279              	.LBE2212:
- 7280              	.LBE2211:
- 7281              	.LBE2210:
- 7282              	.LBE2209:
- 7283              	.LBE2208:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7284              		.loc 3 1568 0
- 7285 60d4 660F7F85 		movdqa	%xmm0, -5200(%rbp)
- 7285      B0EBFFFF 
- 7286 60dc 660F6F85 		movdqa	-5200(%rbp), %xmm0
- 7286      B0EBFFFF 
- 7287 60e4 660FEF85 		pxor	-288(%rbp), %xmm0
- 7287      E0FEFFFF 
- 7288 60ec F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 7288      E0FEFFFF 
- 7289 60f4 660F6F85 		movdqa	-5200(%rbp), %xmm0
- 7289      B0EBFFFF 
- 7290 60fc F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 7290      90
- 7291              	.LBB2214:
- 7292              	.LBB2215:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7293              		.loc 3 1278 0
- 7294 6101 660F6F05 		movdqa	mask.8002(%rip), %xmm0
- 7294      00000000 
- 7295 6109 F30F6F4D 		movdqu	-112(%rbp), %xmm1
- 7295      90
- 7296 610e F30F7F4D 		movdqu	%xmm1, -80(%rbp)
- 7296      B0
- 7297 6113 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 7297      A0
- 7298 6118 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 7298      B0
- 7299 611d F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 7299      D0
- 7300 6122 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 7300      A0
- 7301 6127 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 7301      C0
- 7302              	.LBB2216:
- 7303              	.LBB2217:
- 7304              	.LBB2218:
- 7305              	.LBB2219:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7306              		.loc 1 529 0
- 7307 612c F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 7307      C0
- 7308 6131 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 7308      D0
- 7309 6136 660F3800 		pshufb	%xmm1, %xmm0
- 7309      C1
- 7310              	.LBE2219:
- 7311              	.LBE2218:
- 7312              	.LBE2217:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 245
-
-
- 7313              	.LBE2216:
- 7314              	.LBE2215:
- 7315              	.LBE2214:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7316              		.loc 3 1569 0
- 7317 613b 660F7F85 		movdqa	%xmm0, -5200(%rbp)
- 7317      B0EBFFFF 
- 7318 6143 660F6F85 		movdqa	-5200(%rbp), %xmm0
- 7318      B0EBFFFF 
- 7319 614b 660FEF85 		pxor	-288(%rbp), %xmm0
- 7319      E0FEFFFF 
- 7320 6153 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 7320      E0FEFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7321              		.loc 3 1571 0
- 7322 615b F30F6F85 		movdqu	-288(%rbp), %xmm0
- 7322      E0FEFFFF 
- 7323              	.LBE2201:
- 7324              	.LBE2200:
- 7325              		.loc 3 1938 0
- 7326 6163 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 7326      D0EBFFFF 
- 7327 616b F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 7327      D0EBFFFF 
- 7328 6173 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 7328      F0
- 7329 6178 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 7329      F0EBFFFF 
- 7330 6180 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 7330      E0
- 7331              	.LBB2220:
- 7332              	.LBB2221:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 7333              		.loc 3 178 0
- 7334 6185 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 7334      E0
- 7335 618a F30F6F4D 		movdqu	-16(%rbp), %xmm1
- 7335      F0
- 7336 618f 660FEFC1 		pxor	%xmm1, %xmm0
- 7337              	.LBE2221:
- 7338              	.LBE2220:
- 7339              		.loc 3 1938 0
- 7340 6193 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 7340      D0EBFFFF 
- 7341 619b 488B85C8 		movq	-5176(%rbp), %rax
- 7341      EBFFFF
- 7342 61a2 4805E000 		addq	$224, %rax
- 7342      0000
- 7343 61a8 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 7343      D0EBFFFF 
- 7344 61b0 F30F7F00 		movdqu	%xmm0, (%rax)
-1939:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 7345              		.loc 3 1939 0
- 7346 61b4 C9       		leave
- 7347 61b5 C3       		ret
- 7348              		.cfi_endproc
- 7349              	.LFE658:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 246
-
-
- 7350              		.size	KAESBlockCipherVecAesNiKeyExpansion256, .-KAESBlockCipherVecAesNiKeyExpansion256
- 7351              		.type	KAESBlockCipherVecAesNiEqInvKeyExpansion, @function
- 7352              	KAESBlockCipherVecAesNiEqInvKeyExpansion:
- 7353              	.LFB659:
-1940:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1941:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1942:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion256) (CipherVec * w, const AESByte * key)
-1943:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1944:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_256, AES_Nk_256);
-1945:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1946:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1947:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1948:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1949:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1950:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion) (CipherVec * r, const CipherVec * dr, unsigned Nr)
-1951:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 7354              		.loc 3 1951 0
- 7355              		.cfi_startproc
- 7356 61b6 55       		pushq	%rbp
- 7357              	.LCFI18:
- 7358              		.cfi_def_cfa_offset 16
- 7359 61b7 4889E5   		movq	%rsp, %rbp
- 7360              		.cfi_offset 6, -16
- 7361              	.LCFI19:
- 7362              		.cfi_def_cfa_register 6
- 7363 61ba 53       		pushq	%rbx
- 7364 61bb 4883EC48 		subq	$72, %rsp
- 7365 61bf 48897DC8 		movq	%rdi, -56(%rbp)
- 7366 61c3 488975C0 		movq	%rsi, -64(%rbp)
- 7367 61c7 8955BC   		movl	%edx, -68(%rbp)
-1952:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix, jx;
-1953:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1954:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     jx = Nr;
- 7368              		.loc 3 1954 0
- 7369 61ca 8B45BC   		movl	-68(%rbp), %eax
- 7370 61cd 8945DC   		movl	%eax, -36(%rbp)
-1955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ix = 0;
- 7371              		.loc 3 1955 0
- 7372 61d0 C745D800 		movl	$0, -40(%rbp)
- 7372      000000
-1956:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix++] = dr[jx--];
- 7373              		.loc 3 1956 0
- 7374 61d7 8B45D8   		mov	-40(%rbp), %eax
- 7375 61da 48C1E004 		salq	$4, %rax
- 7376 61de 480345C8 		addq	-56(%rbp), %rax
- 7377 61e2 8B55DC   		mov	-36(%rbp), %edx
- 7378 61e5 48C1E204 		salq	$4, %rdx
- 7379 61e9 480355C0 		addq	-64(%rbp), %rdx
- 7380 61ed 660F6F02 		movdqa	(%rdx), %xmm0
- 7381 61f1 660F7F00 		movdqa	%xmm0, (%rax)
- 7382 61f5 8345D801 		addl	$1, -40(%rbp)
- 7383 61f9 836DDC01 		subl	$1, -36(%rbp)
-1957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     while (jx)
- 7384              		.loc 3 1957 0
- 7385 61fd EB42     		jmp	.L20
- 7386              		.cfi_offset 3, -24
- 7387              	.L21:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 247
-
-
-1958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         r[ix++] = AESBCMEMBER(InvMixColumns)(dr[jx--]);
- 7388              		.loc 3 1958 0
- 7389 61ff 8B45D8   		mov	-40(%rbp), %eax
- 7390 6202 48C1E004 		salq	$4, %rax
- 7391 6206 4889C3   		movq	%rax, %rbx
- 7392 6209 48035DC8 		addq	-56(%rbp), %rbx
- 7393 620d 8B45DC   		mov	-36(%rbp), %eax
- 7394 6210 48C1E004 		salq	$4, %rax
- 7395 6214 480345C0 		addq	-64(%rbp), %rax
- 7396 6218 660F6F00 		movdqa	(%rax), %xmm0
- 7397 621c 836DDC01 		subl	$1, -36(%rbp)
- 7398 6220 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 7398      E0
- 7399              	.LBB2224:
- 7400              	.LBB2225:
-1102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESIMC (state);
- 7401              		.loc 3 1102 0
- 7402 6225 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 7402      E0
- 7403 622a E8FD9DFF 		call	op_AESIMC
- 7403      FF
- 7404 622f F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 7404      E0
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7405              		.loc 3 1148 0
- 7406 6234 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 7406      E0
- 7407              	.LBE2225:
- 7408              	.LBE2224:
- 7409              		.loc 3 1958 0
- 7410 6239 660F7F03 		movdqa	%xmm0, (%rbx)
- 7411 623d 8345D801 		addl	$1, -40(%rbp)
- 7412              	.L20:
-1957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     while (jx)
- 7413              		.loc 3 1957 0
- 7414 6241 837DDC00 		cmpl	$0, -36(%rbp)
- 7415 6245 75B8     		jne	.L21
-1959:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix] = dr[jx];
- 7416              		.loc 3 1959 0
- 7417 6247 8B45D8   		mov	-40(%rbp), %eax
- 7418 624a 48C1E004 		salq	$4, %rax
- 7419 624e 480345C8 		addq	-56(%rbp), %rax
- 7420 6252 8B55DC   		mov	-36(%rbp), %edx
- 7421 6255 48C1E204 		salq	$4, %rdx
- 7422 6259 480355C0 		addq	-64(%rbp), %rdx
- 7423 625d 660F6F02 		movdqa	(%rdx), %xmm0
- 7424 6261 660F7F00 		movdqa	%xmm0, (%rax)
-1960:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 7425              		.loc 3 1960 0
- 7426 6265 4883C448 		addq	$72, %rsp
- 7427 6269 5B       		popq	%rbx
- 7428 626a C9       		leave
- 7429 626b C3       		ret
- 7430              		.cfi_endproc
- 7431              	.LFE659:
- 7432              		.size	KAESBlockCipherVecAesNiEqInvKeyExpansion, .-KAESBlockCipherVecAesNiEqInvKeyExpansion
- 7433              		.type	KAESBlockCipherVecAesNiEqInvKeyExpansion128, @function
-
GAS LISTING /tmp/ccPaCTqg.s 			page 248
-
-
- 7434              	KAESBlockCipherVecAesNiEqInvKeyExpansion128:
- 7435              	.LFB660:
-1961:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1962:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1963:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1964:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion128) (CipherVec * w, const CipherVec * kw)
-1965:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 7436              		.loc 3 1965 0
- 7437              		.cfi_startproc
- 7438 626c 55       		pushq	%rbp
- 7439              	.LCFI20:
- 7440              		.cfi_def_cfa_offset 16
- 7441 626d 4889E5   		movq	%rsp, %rbp
- 7442              		.cfi_offset 6, -16
- 7443              	.LCFI21:
- 7444              		.cfi_def_cfa_register 6
- 7445 6270 4883EC10 		subq	$16, %rsp
- 7446 6274 48897DF8 		movq	%rdi, -8(%rbp)
- 7447 6278 488975F0 		movq	%rsi, -16(%rbp)
-1966:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_128);
- 7448              		.loc 3 1966 0
- 7449 627c 488B4DF0 		movq	-16(%rbp), %rcx
- 7450 6280 488B45F8 		movq	-8(%rbp), %rax
- 7451 6284 BA0A0000 		movl	$10, %edx
- 7451      00
- 7452 6289 4889CE   		movq	%rcx, %rsi
- 7453 628c 4889C7   		movq	%rax, %rdi
- 7454 628f E822FFFF 		call	KAESBlockCipherVecAesNiEqInvKeyExpansion
- 7454      FF
-1967:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 7455              		.loc 3 1967 0
- 7456 6294 C9       		leave
- 7457 6295 C3       		ret
- 7458              		.cfi_endproc
- 7459              	.LFE660:
- 7460              		.size	KAESBlockCipherVecAesNiEqInvKeyExpansion128, .-KAESBlockCipherVecAesNiEqInvKeyExpansion128
- 7461              		.type	KAESBlockCipherVecAesNiEqInvKeyExpansion192, @function
- 7462              	KAESBlockCipherVecAesNiEqInvKeyExpansion192:
- 7463              	.LFB661:
-1968:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1969:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1970:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1971:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion192) (CipherVec * w, const CipherVec * kw)
-1972:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 7464              		.loc 3 1972 0
- 7465              		.cfi_startproc
- 7466 6296 55       		pushq	%rbp
- 7467              	.LCFI22:
- 7468              		.cfi_def_cfa_offset 16
- 7469 6297 4889E5   		movq	%rsp, %rbp
- 7470              		.cfi_offset 6, -16
- 7471              	.LCFI23:
- 7472              		.cfi_def_cfa_register 6
- 7473 629a 4883EC10 		subq	$16, %rsp
- 7474 629e 48897DF8 		movq	%rdi, -8(%rbp)
- 7475 62a2 488975F0 		movq	%rsi, -16(%rbp)
-1973:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_192);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 249
-
-
- 7476              		.loc 3 1973 0
- 7477 62a6 488B4DF0 		movq	-16(%rbp), %rcx
- 7478 62aa 488B45F8 		movq	-8(%rbp), %rax
- 7479 62ae BA0C0000 		movl	$12, %edx
- 7479      00
- 7480 62b3 4889CE   		movq	%rcx, %rsi
- 7481 62b6 4889C7   		movq	%rax, %rdi
- 7482 62b9 E8F8FEFF 		call	KAESBlockCipherVecAesNiEqInvKeyExpansion
- 7482      FF
-1974:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 7483              		.loc 3 1974 0
- 7484 62be C9       		leave
- 7485 62bf C3       		ret
- 7486              		.cfi_endproc
- 7487              	.LFE661:
- 7488              		.size	KAESBlockCipherVecAesNiEqInvKeyExpansion192, .-KAESBlockCipherVecAesNiEqInvKeyExpansion192
- 7489              		.type	KAESBlockCipherVecAesNiEqInvKeyExpansion256, @function
- 7490              	KAESBlockCipherVecAesNiEqInvKeyExpansion256:
- 7491              	.LFB662:
-1975:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1976:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1977:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1978:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion256) (CipherVec * w, const CipherVec * kw)
-1979:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 7492              		.loc 3 1979 0
- 7493              		.cfi_startproc
- 7494 62c0 55       		pushq	%rbp
- 7495              	.LCFI24:
- 7496              		.cfi_def_cfa_offset 16
- 7497 62c1 4889E5   		movq	%rsp, %rbp
- 7498              		.cfi_offset 6, -16
- 7499              	.LCFI25:
- 7500              		.cfi_def_cfa_register 6
- 7501 62c4 4883EC10 		subq	$16, %rsp
- 7502 62c8 48897DF8 		movq	%rdi, -8(%rbp)
- 7503 62cc 488975F0 		movq	%rsi, -16(%rbp)
-1980:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_256);
- 7504              		.loc 3 1980 0
- 7505 62d0 488B4DF0 		movq	-16(%rbp), %rcx
- 7506 62d4 488B45F8 		movq	-8(%rbp), %rax
- 7507 62d8 BA0E0000 		movl	$14, %edx
- 7507      00
- 7508 62dd 4889CE   		movq	%rcx, %rsi
- 7509 62e0 4889C7   		movq	%rax, %rdi
- 7510 62e3 E8CEFEFF 		call	KAESBlockCipherVecAesNiEqInvKeyExpansion
- 7510      FF
-1981:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 7511              		.loc 3 1981 0
- 7512 62e8 C9       		leave
- 7513 62e9 C3       		ret
- 7514              		.cfi_endproc
- 7515              	.LFE662:
- 7516              		.size	KAESBlockCipherVecAesNiEqInvKeyExpansion256, .-KAESBlockCipherVecAesNiEqInvKeyExpansion256
- 7517              		.section	.rodata
- 7518              	.LC0:
- 7519 0388 53746172 		.string	"Start of Round"
- 7519      74206F66 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 250
-
-
- 7519      20526F75 
- 7519      6E6400
- 7520              	.LC1:
- 7521 0397 25733A09 		.string	"%s:\t%0.8x %0.8x %0.8x %0.8x\n"
- 7521      25302E38 
- 7521      78202530 
- 7521      2E387820 
- 7521      25302E38 
- 7522              	.LC2:
- 7523 03b4 526F756E 		.string	"Round Key"
- 7523      64204B65 
- 7523      7900
- 7524              	.LC3:
- 7525 03be 456E6420 		.string	"End 1st Round"
- 7525      31737420 
- 7525      526F756E 
- 7525      6400
- 7526              	.LC4:
- 7527 03cc 456E6420 		.string	"End of Round"
- 7527      6F662052 
- 7527      6F756E64 
- 7527      00
- 7528              		.text
- 7529              		.type	KAESBlockCipherVecAesNiCipher, @function
- 7530              	KAESBlockCipherVecAesNiCipher:
- 7531              	.LFB666:
-1982:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1983:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1984:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1985:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher First Round
-1986:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1987:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1988:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-1989:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1990:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1991:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1992:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-1993:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
-1995:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-1997:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-1999:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End 1st Round", state);
-2001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2003:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2004:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2005:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2006:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2007:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-2008:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     register const CipherVec round_keys)
-2009:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2010:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2011:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-
GAS LISTING /tmp/ccPaCTqg.s 			page 251
-
-
-2013:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     register const CipherVec round_keys)
-2014:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2015:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2016:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mstate;
-2017:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mround_keys;
-2018:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
-2021:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", mstate);
-2023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2024:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2025:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2026:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2027:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENC (state, round_keys);
-2028:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
-2030:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
-2032:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
-2034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-2036:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(MixColumns) (state);
-2038:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2039:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* ommited n on purpose */
-2040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After MixColum", state);
-2041:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2043:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-2045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
-2046:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2051:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2052:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-2053:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2054:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2055:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2056:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-2057:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
-2059:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2060:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2061:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENCLAST (state, round_keys);
-2062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
-2064:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
-2066:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
-2068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-
GAS LISTING /tmp/ccPaCTqg.s 			page 252
-
-
-2070:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2072:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-2074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
-2075:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2077:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2078:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2079:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2080:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2081:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher
-2082:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2083:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2084:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * 
-2085:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** This implementation as stated
-2086:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * above for simplifaction broke out the three types of rounds into
-2087:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * first round, middle rounds, and last round.  This approach was taken
-2088:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for ease of coding for optimization using smaller bytes of code
-2089:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * but inlining of the functions for efficiency
-2090:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2091:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2092:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Cipher) (CipherVec state, const CipherVec * key,
-2093:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                             unsigned Nr)
-2094:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 7532              		.loc 3 2094 0
- 7533              		.cfi_startproc
- 7534 62ea 55       		pushq	%rbp
- 7535              	.LCFI26:
- 7536              		.cfi_def_cfa_offset 16
- 7537 62eb 4889E5   		movq	%rsp, %rbp
- 7538              		.cfi_offset 6, -16
- 7539              	.LCFI27:
- 7540              		.cfi_def_cfa_register 6
- 7541 62ee 4155     		pushq	%r13
- 7542 62f0 4154     		pushq	%r12
- 7543 62f2 53       		pushq	%rbx
- 7544 62f3 4881EC88 		subq	$392, %rsp
- 7544      010000
- 7545 62fa 660F7F85 		movdqa	%xmm0, -400(%rbp)
- 7545      70FEFFFF 
- 7546 6302 4889BD68 		movq	%rdi, -408(%rbp)
- 7546      FEFFFF
- 7547 6309 89B564FE 		movl	%esi, -412(%rbp)
- 7547      FFFF
-2095:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
- 7548              		.loc 3 2095 0
- 7549 630f C7851CFF 		movl	$0, -228(%rbp)
- 7549      FFFF0000 
- 7549      0000
-2096:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(FirstRound) (state, key[ix++]);
- 7550              		.loc 3 2097 0
- 7551 6319 8B851CFF 		mov	-228(%rbp), %eax
- 7551      FFFF
- 7552 631f 48C1E004 		salq	$4, %rax
- 7553 6323 48038568 		addq	-408(%rbp), %rax
-
GAS LISTING /tmp/ccPaCTqg.s 			page 253
-
-
- 7553      FEFFFF
- 7554 632a 660F6F00 		movdqa	(%rax), %xmm0
- 7555 632e 83851CFF 		addl	$1, -228(%rbp)
- 7555      FFFF01
- 7556 6335 660F6F8D 		movdqa	-400(%rbp), %xmm1
- 7556      70FEFFFF 
- 7557 633d F30F7F8D 		movdqu	%xmm1, -208(%rbp)
- 7557      30FFFFFF 
- 7558 6345 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 7558      20FFFFFF 
- 7559              	.LBB2245:
- 7560              	.LBB2246:
- 7561              	.LBB2247:
-1994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
- 7562              		.loc 3 1994 0
- 7563 634d F30F6F85 		movdqu	-208(%rbp), %xmm0
- 7563      30FFFFFF 
- 7564 6355 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 7564      A0FEFFFF 
- 7565              		.cfi_offset 3, -40
- 7566              		.cfi_offset 12, -32
- 7567              		.cfi_offset 13, -24
- 7568 635d E8000000 		call	KDbgWriterGet at PLT
- 7568      00
- 7569 6362 4885C0   		testq	%rax, %rax
- 7570 6365 7479     		je	.L31
- 7571 6367 BF010000 		movl	$1, %edi
- 7571      00
- 7572 636c E8000000 		call	KDbgCondToFlag at PLT
- 7572      00
- 7573 6371 4889C6   		movq	%rax, %rsi
- 7574 6374 BF100000 		movl	$16, %edi
- 7574      00
- 7575 6379 E8000000 		call	KDbgTestModConds at PLT
- 7575      00
- 7576 637e 84C0     		testb	%al, %al
- 7577 6380 745E     		je	.L31
- 7578 6382 8B85ACFE 		movl	-340(%rbp), %eax
- 7578      FFFF
- 7579 6388 89C7     		movl	%eax, %edi
- 7580 638a E8A89CFF 		call	bswap_32
- 7580      FF
- 7581 638f 4189C5   		movl	%eax, %r13d
- 7582 6392 8B85A8FE 		movl	-344(%rbp), %eax
- 7582      FFFF
- 7583 6398 89C7     		movl	%eax, %edi
- 7584 639a E8989CFF 		call	bswap_32
- 7584      FF
- 7585 639f 4189C4   		movl	%eax, %r12d
- 7586 63a2 8B85A4FE 		movl	-348(%rbp), %eax
- 7586      FFFF
- 7587 63a8 89C7     		movl	%eax, %edi
- 7588 63aa E8889CFF 		call	bswap_32
- 7588      FF
- 7589 63af 89C3     		movl	%eax, %ebx
- 7590 63b1 8B85A0FE 		movl	-352(%rbp), %eax
- 7590      FFFF
-
GAS LISTING /tmp/ccPaCTqg.s 			page 254
-
-
- 7591 63b7 89C7     		movl	%eax, %edi
- 7592 63b9 E8799CFF 		call	bswap_32
- 7592      FF
- 7593 63be 4589E9   		movl	%r13d, %r9d
- 7594 63c1 4589E0   		movl	%r12d, %r8d
- 7595 63c4 89D9     		movl	%ebx, %ecx
- 7596 63c6 89C2     		movl	%eax, %edx
- 7597 63c8 488D3500 		leaq	.LC0(%rip), %rsi
- 7597      000000
- 7598 63cf 488D3D00 		leaq	.LC1(%rip), %rdi
- 7598      000000
- 7599 63d6 B8000000 		movl	$0, %eax
- 7599      00
- 7600 63db E8000000 		call	KDbgMsg at PLT
- 7600      00
- 7601              	.L31:
- 7602              	.LBE2247:
- 7603              	.LBB2248:
-1996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 7604              		.loc 3 1996 0
- 7605 63e0 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 7605      20FFFFFF 
- 7606 63e8 F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 7606      90FEFFFF 
- 7607 63f0 E8000000 		call	KDbgWriterGet at PLT
- 7607      00
- 7608 63f5 4885C0   		testq	%rax, %rax
- 7609 63f8 7479     		je	.L33
- 7610 63fa BF010000 		movl	$1, %edi
- 7610      00
- 7611 63ff E8000000 		call	KDbgCondToFlag at PLT
- 7611      00
- 7612 6404 4889C6   		movq	%rax, %rsi
- 7613 6407 BF100000 		movl	$16, %edi
- 7613      00
- 7614 640c E8000000 		call	KDbgTestModConds at PLT
- 7614      00
- 7615 6411 84C0     		testb	%al, %al
- 7616 6413 745E     		je	.L33
- 7617 6415 8B859CFE 		movl	-356(%rbp), %eax
- 7617      FFFF
- 7618 641b 89C7     		movl	%eax, %edi
- 7619 641d E8159CFF 		call	bswap_32
- 7619      FF
- 7620 6422 4189C5   		movl	%eax, %r13d
- 7621 6425 8B8598FE 		movl	-360(%rbp), %eax
- 7621      FFFF
- 7622 642b 89C7     		movl	%eax, %edi
- 7623 642d E8059CFF 		call	bswap_32
- 7623      FF
- 7624 6432 4189C4   		movl	%eax, %r12d
- 7625 6435 8B8594FE 		movl	-364(%rbp), %eax
- 7625      FFFF
- 7626 643b 89C7     		movl	%eax, %edi
- 7627 643d E8F59BFF 		call	bswap_32
- 7627      FF
- 7628 6442 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccPaCTqg.s 			page 255
-
-
- 7629 6444 8B8590FE 		movl	-368(%rbp), %eax
- 7629      FFFF
- 7630 644a 89C7     		movl	%eax, %edi
- 7631 644c E8E69BFF 		call	bswap_32
- 7631      FF
- 7632 6451 4589E9   		movl	%r13d, %r9d
- 7633 6454 4589E0   		movl	%r12d, %r8d
- 7634 6457 89D9     		movl	%ebx, %ecx
- 7635 6459 89C2     		movl	%eax, %edx
- 7636 645b 488D3500 		leaq	.LC2(%rip), %rsi
- 7636      000000
- 7637 6462 488D3D00 		leaq	.LC1(%rip), %rdi
- 7637      000000
- 7638 6469 B8000000 		movl	$0, %eax
- 7638      00
- 7639 646e E8000000 		call	KDbgMsg at PLT
- 7639      00
- 7640              	.L33:
- 7641 6473 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 7641      30FFFFFF 
- 7642 647b F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 7642      50FFFFFF 
- 7643 6483 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 7643      20FFFFFF 
- 7644 648b F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 7644      40FFFFFF 
- 7645 6493 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 7645      50FFFFFF 
- 7646 649b F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 7646      70FFFFFF 
- 7647 64a3 F30F6F85 		movdqu	-192(%rbp), %xmm0
- 7647      40FFFFFF 
- 7648 64ab F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 7648      60FFFFFF 
- 7649              	.LBE2248:
- 7650              	.LBB2249:
- 7651              	.LBB2250:
- 7652              	.LBB2251:
- 7653              	.LBB2252:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 7654              		.loc 3 178 0
- 7655 64b3 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 7655      60FFFFFF 
- 7656 64bb F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 7656      70FFFFFF 
- 7657 64c3 660FEFC1 		pxor	%xmm1, %xmm0
- 7658              	.LBE2252:
- 7659              	.LBE2251:
- 7660              	.LBE2250:
- 7661              	.LBE2249:
-1998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 7662              		.loc 3 1998 0
- 7663 64c7 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 7663      30FFFFFF 
- 7664              	.LBB2253:
-2000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End 1st Round", state);
- 7665              		.loc 3 2000 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 256
-
-
- 7666 64cf F30F6F85 		movdqu	-208(%rbp), %xmm0
- 7666      30FFFFFF 
- 7667 64d7 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 7667      80FEFFFF 
- 7668 64df E8000000 		call	KDbgWriterGet at PLT
- 7668      00
- 7669 64e4 4885C0   		testq	%rax, %rax
- 7670 64e7 7479     		je	.L35
- 7671 64e9 BF010000 		movl	$1, %edi
- 7671      00
- 7672 64ee E8000000 		call	KDbgCondToFlag at PLT
- 7672      00
- 7673 64f3 4889C6   		movq	%rax, %rsi
- 7674 64f6 BF100000 		movl	$16, %edi
- 7674      00
- 7675 64fb E8000000 		call	KDbgTestModConds at PLT
- 7675      00
- 7676 6500 84C0     		testb	%al, %al
- 7677 6502 745E     		je	.L35
- 7678 6504 8B858CFE 		movl	-372(%rbp), %eax
- 7678      FFFF
- 7679 650a 89C7     		movl	%eax, %edi
- 7680 650c E8269BFF 		call	bswap_32
- 7680      FF
- 7681 6511 4189C5   		movl	%eax, %r13d
- 7682 6514 8B8588FE 		movl	-376(%rbp), %eax
- 7682      FFFF
- 7683 651a 89C7     		movl	%eax, %edi
- 7684 651c E8169BFF 		call	bswap_32
- 7684      FF
- 7685 6521 4189C4   		movl	%eax, %r12d
- 7686 6524 8B8584FE 		movl	-380(%rbp), %eax
- 7686      FFFF
- 7687 652a 89C7     		movl	%eax, %edi
- 7688 652c E8069BFF 		call	bswap_32
- 7688      FF
- 7689 6531 89C3     		movl	%eax, %ebx
- 7690 6533 8B8580FE 		movl	-384(%rbp), %eax
- 7690      FFFF
- 7691 6539 89C7     		movl	%eax, %edi
- 7692 653b E8F79AFF 		call	bswap_32
- 7692      FF
- 7693 6540 4589E9   		movl	%r13d, %r9d
- 7694 6543 4589E0   		movl	%r12d, %r8d
- 7695 6546 89D9     		movl	%ebx, %ecx
- 7696 6548 89C2     		movl	%eax, %edx
- 7697 654a 488D3500 		leaq	.LC3(%rip), %rsi
- 7697      000000
- 7698 6551 488D3D00 		leaq	.LC1(%rip), %rdi
- 7698      000000
- 7699 6558 B8000000 		movl	$0, %eax
- 7699      00
- 7700 655d E8000000 		call	KDbgMsg at PLT
- 7700      00
- 7701              	.L35:
- 7702              	.LBE2253:
-2002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 257
-
-
- 7703              		.loc 3 2002 0
- 7704 6562 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 7704      30FFFFFF 
- 7705              	.LBE2246:
- 7706              	.LBE2245:
- 7707              		.loc 3 2097 0
- 7708 656a 660F7F85 		movdqa	%xmm0, -400(%rbp)
- 7708      70FEFFFF 
-2098:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 7709              		.loc 3 2099 0
- 7710 6572 E9130200 		jmp	.L36
- 7710      00
- 7711              	.L43:
-2100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(MiddleRound) (state, key[ix] );
- 7712              		.loc 3 2100 0
- 7713 6577 8B851CFF 		mov	-228(%rbp), %eax
- 7713      FFFF
- 7714 657d 48C1E004 		salq	$4, %rax
- 7715 6581 48038568 		addq	-408(%rbp), %rax
- 7715      FEFFFF
- 7716 6588 660F6F00 		movdqa	(%rax), %xmm0
- 7717 658c 660F6F8D 		movdqa	-400(%rbp), %xmm1
- 7717      70FEFFFF 
- 7718 6594 F30F7F4D 		movdqu	%xmm1, -112(%rbp)
- 7718      90
- 7719 6599 F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 7719      80
- 7720              	.LBB2254:
- 7721              	.LBB2255:
-2019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 7722              		.loc 3 2019 0
- 7723 659e F30F6F45 		movdqu	-112(%rbp), %xmm0
- 7723      90
- 7724 65a3 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 7724      B0
-2020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
- 7725              		.loc 3 2020 0
- 7726 65a8 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 7726      80
- 7727 65ad F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 7727      A0
- 7728              	.LBB2256:
-2022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", mstate);
- 7729              		.loc 3 2022 0
- 7730 65b2 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 7730      B0
- 7731 65b7 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 7731      D0FEFFFF 
- 7732 65bf E8000000 		call	KDbgWriterGet at PLT
- 7732      00
- 7733 65c4 4885C0   		testq	%rax, %rax
- 7734 65c7 7479     		je	.L38
- 7735 65c9 BF010000 		movl	$1, %edi
- 7735      00
- 7736 65ce E8000000 		call	KDbgCondToFlag at PLT
- 7736      00
-
GAS LISTING /tmp/ccPaCTqg.s 			page 258
-
-
- 7737 65d3 4889C6   		movq	%rax, %rsi
- 7738 65d6 BF100000 		movl	$16, %edi
- 7738      00
- 7739 65db E8000000 		call	KDbgTestModConds at PLT
- 7739      00
- 7740 65e0 84C0     		testb	%al, %al
- 7741 65e2 745E     		je	.L38
- 7742 65e4 8B85DCFE 		movl	-292(%rbp), %eax
- 7742      FFFF
- 7743 65ea 89C7     		movl	%eax, %edi
- 7744 65ec E8469AFF 		call	bswap_32
- 7744      FF
- 7745 65f1 4189C5   		movl	%eax, %r13d
- 7746 65f4 8B85D8FE 		movl	-296(%rbp), %eax
- 7746      FFFF
- 7747 65fa 89C7     		movl	%eax, %edi
- 7748 65fc E8369AFF 		call	bswap_32
- 7748      FF
- 7749 6601 4189C4   		movl	%eax, %r12d
- 7750 6604 8B85D4FE 		movl	-300(%rbp), %eax
- 7750      FFFF
- 7751 660a 89C7     		movl	%eax, %edi
- 7752 660c E8269AFF 		call	bswap_32
- 7752      FF
- 7753 6611 89C3     		movl	%eax, %ebx
- 7754 6613 8B85D0FE 		movl	-304(%rbp), %eax
- 7754      FFFF
- 7755 6619 89C7     		movl	%eax, %edi
- 7756 661b E8179AFF 		call	bswap_32
- 7756      FF
- 7757 6620 4589E9   		movl	%r13d, %r9d
- 7758 6623 4589E0   		movl	%r12d, %r8d
- 7759 6626 89D9     		movl	%ebx, %ecx
- 7760 6628 89C2     		movl	%eax, %edx
- 7761 662a 488D3500 		leaq	.LC0(%rip), %rsi
- 7761      000000
- 7762 6631 488D3D00 		leaq	.LC1(%rip), %rdi
- 7762      000000
- 7763 6638 B8000000 		movl	$0, %eax
- 7763      00
- 7764 663d E8000000 		call	KDbgMsg at PLT
- 7764      00
- 7765              	.L38:
- 7766              	.LBE2256:
-2027:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENC (state, round_keys);
- 7767              		.loc 3 2027 0
- 7768 6642 F30F6F4D 		movdqu	-128(%rbp), %xmm1
- 7768      80
- 7769 6647 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 7769      90
- 7770 664c E8AF99FF 		call	op_AESENC
- 7770      FF
- 7771 6651 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 7771      90
- 7772              	.LBB2257:
-2044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 7773              		.loc 3 2044 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 259
-
-
- 7774 6656 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 7774      80
- 7775 665b F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 7775      C0FEFFFF 
- 7776 6663 E8000000 		call	KDbgWriterGet at PLT
- 7776      00
- 7777 6668 4885C0   		testq	%rax, %rax
- 7778 666b 7479     		je	.L40
- 7779 666d BF010000 		movl	$1, %edi
- 7779      00
- 7780 6672 E8000000 		call	KDbgCondToFlag at PLT
- 7780      00
- 7781 6677 4889C6   		movq	%rax, %rsi
- 7782 667a BF100000 		movl	$16, %edi
- 7782      00
- 7783 667f E8000000 		call	KDbgTestModConds at PLT
- 7783      00
- 7784 6684 84C0     		testb	%al, %al
- 7785 6686 745E     		je	.L40
- 7786 6688 8B85CCFE 		movl	-308(%rbp), %eax
- 7786      FFFF
- 7787 668e 89C7     		movl	%eax, %edi
- 7788 6690 E8A299FF 		call	bswap_32
- 7788      FF
- 7789 6695 4189C5   		movl	%eax, %r13d
- 7790 6698 8B85C8FE 		movl	-312(%rbp), %eax
- 7790      FFFF
- 7791 669e 89C7     		movl	%eax, %edi
- 7792 66a0 E89299FF 		call	bswap_32
- 7792      FF
- 7793 66a5 4189C4   		movl	%eax, %r12d
- 7794 66a8 8B85C4FE 		movl	-316(%rbp), %eax
- 7794      FFFF
- 7795 66ae 89C7     		movl	%eax, %edi
- 7796 66b0 E88299FF 		call	bswap_32
- 7796      FF
- 7797 66b5 89C3     		movl	%eax, %ebx
- 7798 66b7 8B85C0FE 		movl	-320(%rbp), %eax
- 7798      FFFF
- 7799 66bd 89C7     		movl	%eax, %edi
- 7800 66bf E87399FF 		call	bswap_32
- 7800      FF
- 7801 66c4 4589E9   		movl	%r13d, %r9d
- 7802 66c7 4589E0   		movl	%r12d, %r8d
- 7803 66ca 89D9     		movl	%ebx, %ecx
- 7804 66cc 89C2     		movl	%eax, %edx
- 7805 66ce 488D3500 		leaq	.LC2(%rip), %rsi
- 7805      000000
- 7806 66d5 488D3D00 		leaq	.LC1(%rip), %rdi
- 7806      000000
- 7807 66dc B8000000 		movl	$0, %eax
- 7807      00
- 7808 66e1 E8000000 		call	KDbgMsg at PLT
- 7808      00
- 7809              	.L40:
- 7810              	.LBE2257:
- 7811              	.LBB2258:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 260
-
-
-2045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
- 7812              		.loc 3 2045 0
- 7813 66e6 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 7813      90
- 7814 66eb F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 7814      B0FEFFFF 
- 7815 66f3 E8000000 		call	KDbgWriterGet at PLT
- 7815      00
- 7816 66f8 4885C0   		testq	%rax, %rax
- 7817 66fb 7479     		je	.L42
- 7818 66fd BF010000 		movl	$1, %edi
- 7818      00
- 7819 6702 E8000000 		call	KDbgCondToFlag at PLT
- 7819      00
- 7820 6707 4889C6   		movq	%rax, %rsi
- 7821 670a BF100000 		movl	$16, %edi
- 7821      00
- 7822 670f E8000000 		call	KDbgTestModConds at PLT
- 7822      00
- 7823 6714 84C0     		testb	%al, %al
- 7824 6716 745E     		je	.L42
- 7825 6718 8B85BCFE 		movl	-324(%rbp), %eax
- 7825      FFFF
- 7826 671e 89C7     		movl	%eax, %edi
- 7827 6720 E81299FF 		call	bswap_32
- 7827      FF
- 7828 6725 4189C5   		movl	%eax, %r13d
- 7829 6728 8B85B8FE 		movl	-328(%rbp), %eax
- 7829      FFFF
- 7830 672e 89C7     		movl	%eax, %edi
- 7831 6730 E80299FF 		call	bswap_32
- 7831      FF
- 7832 6735 4189C4   		movl	%eax, %r12d
- 7833 6738 8B85B4FE 		movl	-332(%rbp), %eax
- 7833      FFFF
- 7834 673e 89C7     		movl	%eax, %edi
- 7835 6740 E8F298FF 		call	bswap_32
- 7835      FF
- 7836 6745 89C3     		movl	%eax, %ebx
- 7837 6747 8B85B0FE 		movl	-336(%rbp), %eax
- 7837      FFFF
- 7838 674d 89C7     		movl	%eax, %edi
- 7839 674f E8E398FF 		call	bswap_32
- 7839      FF
- 7840 6754 4589E9   		movl	%r13d, %r9d
- 7841 6757 4589E0   		movl	%r12d, %r8d
- 7842 675a 89D9     		movl	%ebx, %ecx
- 7843 675c 89C2     		movl	%eax, %edx
- 7844 675e 488D3500 		leaq	.LC4(%rip), %rsi
- 7844      000000
- 7845 6765 488D3D00 		leaq	.LC1(%rip), %rdi
- 7845      000000
- 7846 676c B8000000 		movl	$0, %eax
- 7846      00
- 7847 6771 E8000000 		call	KDbgMsg at PLT
- 7847      00
- 7848              	.L42:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 261
-
-
- 7849              	.LBE2258:
-2047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7850              		.loc 3 2047 0
- 7851 6776 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 7851      90
- 7852              	.LBE2255:
- 7853              	.LBE2254:
- 7854              		.loc 3 2100 0
- 7855 677b 660F7F85 		movdqa	%xmm0, -400(%rbp)
- 7855      70FEFFFF 
-2099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 7856              		.loc 3 2099 0
- 7857 6783 83851CFF 		addl	$1, -228(%rbp)
- 7857      FFFF01
- 7858              	.L36:
- 7859 678a 8B851CFF 		movl	-228(%rbp), %eax
- 7859      FFFF
- 7860 6790 3B8564FE 		cmpl	-412(%rbp), %eax
- 7860      FFFF
- 7861 6796 0F82DBFD 		jb	.L43
- 7861      FFFF
-2101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(LastRound) (state, key[ix]);
- 7862              		.loc 3 2102 0
- 7863 679c 8B851CFF 		mov	-228(%rbp), %eax
- 7863      FFFF
- 7864 67a2 48C1E004 		salq	$4, %rax
- 7865 67a6 48038568 		addq	-408(%rbp), %rax
- 7865      FEFFFF
- 7866 67ad 660F6F00 		movdqa	(%rax), %xmm0
- 7867 67b1 660F6F8D 		movdqa	-400(%rbp), %xmm1
- 7867      70FEFFFF 
- 7868 67b9 F30F7F4D 		movdqu	%xmm1, -48(%rbp)
- 7868      D0
- 7869 67be F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 7869      C0
- 7870              	.LBB2259:
- 7871              	.LBB2260:
- 7872              	.LBB2261:
-2058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
- 7873              		.loc 3 2058 0
- 7874 67c3 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 7874      D0
- 7875 67c8 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 7875      00FFFFFF 
- 7876 67d0 E8000000 		call	KDbgWriterGet at PLT
- 7876      00
- 7877 67d5 4885C0   		testq	%rax, %rax
- 7878 67d8 7479     		je	.L45
- 7879 67da BF010000 		movl	$1, %edi
- 7879      00
- 7880 67df E8000000 		call	KDbgCondToFlag at PLT
- 7880      00
- 7881 67e4 4889C6   		movq	%rax, %rsi
- 7882 67e7 BF100000 		movl	$16, %edi
- 7882      00
- 7883 67ec E8000000 		call	KDbgTestModConds at PLT
-
GAS LISTING /tmp/ccPaCTqg.s 			page 262
-
-
- 7883      00
- 7884 67f1 84C0     		testb	%al, %al
- 7885 67f3 745E     		je	.L45
- 7886 67f5 8B850CFF 		movl	-244(%rbp), %eax
- 7886      FFFF
- 7887 67fb 89C7     		movl	%eax, %edi
- 7888 67fd E83598FF 		call	bswap_32
- 7888      FF
- 7889 6802 4189C5   		movl	%eax, %r13d
- 7890 6805 8B8508FF 		movl	-248(%rbp), %eax
- 7890      FFFF
- 7891 680b 89C7     		movl	%eax, %edi
- 7892 680d E82598FF 		call	bswap_32
- 7892      FF
- 7893 6812 4189C4   		movl	%eax, %r12d
- 7894 6815 8B8504FF 		movl	-252(%rbp), %eax
- 7894      FFFF
- 7895 681b 89C7     		movl	%eax, %edi
- 7896 681d E81598FF 		call	bswap_32
- 7896      FF
- 7897 6822 89C3     		movl	%eax, %ebx
- 7898 6824 8B8500FF 		movl	-256(%rbp), %eax
- 7898      FFFF
- 7899 682a 89C7     		movl	%eax, %edi
- 7900 682c E80698FF 		call	bswap_32
- 7900      FF
- 7901 6831 4589E9   		movl	%r13d, %r9d
- 7902 6834 4589E0   		movl	%r12d, %r8d
- 7903 6837 89D9     		movl	%ebx, %ecx
- 7904 6839 89C2     		movl	%eax, %edx
- 7905 683b 488D3500 		leaq	.LC0(%rip), %rsi
- 7905      000000
- 7906 6842 488D3D00 		leaq	.LC1(%rip), %rdi
- 7906      000000
- 7907 6849 B8000000 		movl	$0, %eax
- 7907      00
- 7908 684e E8000000 		call	KDbgMsg at PLT
- 7908      00
- 7909              	.L45:
- 7910              	.LBE2261:
-2061:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENCLAST (state, round_keys);
- 7911              		.loc 3 2061 0
- 7912 6853 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 7912      C0
- 7913 6858 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 7913      D0
- 7914 685d E8A997FF 		call	op_AESENCLAST
- 7914      FF
- 7915 6862 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 7915      D0
- 7916              	.LBB2262:
-2073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 7917              		.loc 3 2073 0
- 7918 6867 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 7918      C0
- 7919 686c F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 7919      F0FEFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 263
-
-
- 7920 6874 E8000000 		call	KDbgWriterGet at PLT
- 7920      00
- 7921 6879 4885C0   		testq	%rax, %rax
- 7922 687c 7479     		je	.L47
- 7923 687e BF010000 		movl	$1, %edi
- 7923      00
- 7924 6883 E8000000 		call	KDbgCondToFlag at PLT
- 7924      00
- 7925 6888 4889C6   		movq	%rax, %rsi
- 7926 688b BF100000 		movl	$16, %edi
- 7926      00
- 7927 6890 E8000000 		call	KDbgTestModConds at PLT
- 7927      00
- 7928 6895 84C0     		testb	%al, %al
- 7929 6897 745E     		je	.L47
- 7930 6899 8B85FCFE 		movl	-260(%rbp), %eax
- 7930      FFFF
- 7931 689f 89C7     		movl	%eax, %edi
- 7932 68a1 E89197FF 		call	bswap_32
- 7932      FF
- 7933 68a6 4189C5   		movl	%eax, %r13d
- 7934 68a9 8B85F8FE 		movl	-264(%rbp), %eax
- 7934      FFFF
- 7935 68af 89C7     		movl	%eax, %edi
- 7936 68b1 E88197FF 		call	bswap_32
- 7936      FF
- 7937 68b6 4189C4   		movl	%eax, %r12d
- 7938 68b9 8B85F4FE 		movl	-268(%rbp), %eax
- 7938      FFFF
- 7939 68bf 89C7     		movl	%eax, %edi
- 7940 68c1 E87197FF 		call	bswap_32
- 7940      FF
- 7941 68c6 89C3     		movl	%eax, %ebx
- 7942 68c8 8B85F0FE 		movl	-272(%rbp), %eax
- 7942      FFFF
- 7943 68ce 89C7     		movl	%eax, %edi
- 7944 68d0 E86297FF 		call	bswap_32
- 7944      FF
- 7945 68d5 4589E9   		movl	%r13d, %r9d
- 7946 68d8 4589E0   		movl	%r12d, %r8d
- 7947 68db 89D9     		movl	%ebx, %ecx
- 7948 68dd 89C2     		movl	%eax, %edx
- 7949 68df 488D3500 		leaq	.LC2(%rip), %rsi
- 7949      000000
- 7950 68e6 488D3D00 		leaq	.LC1(%rip), %rdi
- 7950      000000
- 7951 68ed B8000000 		movl	$0, %eax
- 7951      00
- 7952 68f2 E8000000 		call	KDbgMsg at PLT
- 7952      00
- 7953              	.L47:
- 7954              	.LBE2262:
- 7955              	.LBB2263:
-2074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
- 7956              		.loc 3 2074 0
- 7957 68f7 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 7957      D0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 264
-
-
- 7958 68fc F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 7958      E0FEFFFF 
- 7959 6904 E8000000 		call	KDbgWriterGet at PLT
- 7959      00
- 7960 6909 4885C0   		testq	%rax, %rax
- 7961 690c 7479     		je	.L49
- 7962 690e BF010000 		movl	$1, %edi
- 7962      00
- 7963 6913 E8000000 		call	KDbgCondToFlag at PLT
- 7963      00
- 7964 6918 4889C6   		movq	%rax, %rsi
- 7965 691b BF100000 		movl	$16, %edi
- 7965      00
- 7966 6920 E8000000 		call	KDbgTestModConds at PLT
- 7966      00
- 7967 6925 84C0     		testb	%al, %al
- 7968 6927 745E     		je	.L49
- 7969 6929 8B85ECFE 		movl	-276(%rbp), %eax
- 7969      FFFF
- 7970 692f 89C7     		movl	%eax, %edi
- 7971 6931 E80197FF 		call	bswap_32
- 7971      FF
- 7972 6936 4189C5   		movl	%eax, %r13d
- 7973 6939 8B85E8FE 		movl	-280(%rbp), %eax
- 7973      FFFF
- 7974 693f 89C7     		movl	%eax, %edi
- 7975 6941 E8F196FF 		call	bswap_32
- 7975      FF
- 7976 6946 4189C4   		movl	%eax, %r12d
- 7977 6949 8B85E4FE 		movl	-284(%rbp), %eax
- 7977      FFFF
- 7978 694f 89C7     		movl	%eax, %edi
- 7979 6951 E8E196FF 		call	bswap_32
- 7979      FF
- 7980 6956 89C3     		movl	%eax, %ebx
- 7981 6958 8B85E0FE 		movl	-288(%rbp), %eax
- 7981      FFFF
- 7982 695e 89C7     		movl	%eax, %edi
- 7983 6960 E8D296FF 		call	bswap_32
- 7983      FF
- 7984 6965 4589E9   		movl	%r13d, %r9d
- 7985 6968 4589E0   		movl	%r12d, %r8d
- 7986 696b 89D9     		movl	%ebx, %ecx
- 7987 696d 89C2     		movl	%eax, %edx
- 7988 696f 488D3500 		leaq	.LC4(%rip), %rsi
- 7988      000000
- 7989 6976 488D3D00 		leaq	.LC1(%rip), %rdi
- 7989      000000
- 7990 697d B8000000 		movl	$0, %eax
- 7990      00
- 7991 6982 E8000000 		call	KDbgMsg at PLT
- 7991      00
- 7992              	.L49:
- 7993              	.LBE2263:
-2076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7994              		.loc 3 2076 0
- 7995 6987 F30F6F45 		movdqu	-48(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 265
-
-
- 7995      D0
- 7996              	.LBE2260:
- 7997              	.LBE2259:
-2103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 7998              		.loc 3 2103 0
- 7999 698c 4881C488 		addq	$392, %rsp
- 7999      010000
- 8000 6993 5B       		popq	%rbx
- 8001 6994 415C     		popq	%r12
- 8002 6996 415D     		popq	%r13
- 8003 6998 C9       		leave
- 8004 6999 C3       		ret
- 8005              		.cfi_endproc
- 8006              	.LFE666:
- 8007              		.size	KAESBlockCipherVecAesNiCipher, .-KAESBlockCipherVecAesNiCipher
- 8008              		.type	KAESBlockCipherVecAesNiEqInvCipher, @function
- 8009              	KAESBlockCipherVecAesNiEqInvCipher:
- 8010              	.LFB670:
-2104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 
-2107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Section 5.1 of FIPS 197
-2108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This set of routines implements our structured wrapping of the 
-2110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   FIPS-197 Section 5.3.5 Equivalent Inverse Cipher.  In particular
-2111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   figure 15 Pseudo Code for the Equivalent Inverse Cipher.
-2112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The FIPS pseudocode has a single function which we have broken out 
-2114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   into three kinds of rounds - first round, middle rounds and last
-2115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   round as we have also done with the cipher rountine.
-2116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The EqInvCipher operates on whole cipher blocks so the Byte and Block
-2118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   code is the same here until subroutines of the round functions are
-2119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   called.  
-2120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 
-2123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * First round of equivalent inverse cipher is merely an XOR against the
-2124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * round key.
-2125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-2128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-2132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-2134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(AddRoundKey) (state, round_keys);
-2136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-2138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
-2139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 266
-
-
-2143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * middle rounds of the equivalent inverse cipher perform four steps
-2145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvSubBytes (inverse substitute bytes
-2146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvShiftRows (inverse shift rows
-2147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvMixColumns (inverse mix columns)
-2148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   AddRoundKey   (xor against the round key)
-2149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the AES-NI instruction set from until implments all four steps with 
-2151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * a single instruction
-2152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-2156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                          register CipherVec round_keys)
-2157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-2161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                          register CipherVec round_keys)
-2162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mstate;
-2165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mround_keys;
-2166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
-2169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", mstate);
-2172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* 
-2174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * AES-NI implmentation
-2175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDEC (state, round_keys);
-2179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else /* #if USE_AES_NI */
-2181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * All other implementations
-2184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
-2186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", mstate);
-2191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
-2194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", mstate);
-2199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-
GAS LISTING /tmp/ccPaCTqg.s 			page 267
-
-
-2200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvMixColumns) (state);
-2202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvMixCo", mstate);
-2207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", mround_keys);
-2216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", mstate);
-2218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif /* #if USE_AES_NI */
-2219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The final round of the equivalent inverse cipher is the same as 
-2226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the middle rounds with the ommission of the InvMixColumns step.
-2227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-2230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        register CipherVec round_keys)
-2231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-2235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        register CipherVec round_keys)
-2236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-2238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDECLAST (state, round_keys);
-2241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
-2244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", state);
-2246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
-2248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", state);
-2250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-2254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
-2255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 268
-
-
-2257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The EqInvCipher functions (is defined in Figure 15 'Pseudo Code for
-2262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for the Equivalent Inverse Cipher.  This implementation as stated
-2263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * above for simplifaction broke out the three types of rounds into
-2264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * first round, middle rounds, and last round.  This approach was taken
-2265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for ease of coding for optimization using smaller bytes of code
-2266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * but inlining of the functions for efficiency
-2267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static /*__inline__*/
-2269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvCipher) (CipherVec state, const CipherVec * key,
-2270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     unsigned Nr)
-2271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8011              		.loc 3 2271 0
- 8012              		.cfi_startproc
- 8013 699a 55       		pushq	%rbp
- 8014              	.LCFI28:
- 8015              		.cfi_def_cfa_offset 16
- 8016 699b 4889E5   		movq	%rsp, %rbp
- 8017              		.cfi_offset 6, -16
- 8018              	.LCFI29:
- 8019              		.cfi_def_cfa_register 6
- 8020 699e 4155     		pushq	%r13
- 8021 69a0 4154     		pushq	%r12
- 8022 69a2 53       		pushq	%rbx
- 8023 69a3 4881EC88 		subq	$392, %rsp
- 8023      010000
- 8024 69aa 660F7F85 		movdqa	%xmm0, -400(%rbp)
- 8024      70FEFFFF 
- 8025 69b2 4889BD68 		movq	%rdi, -408(%rbp)
- 8025      FEFFFF
- 8026 69b9 89B564FE 		movl	%esi, -412(%rbp)
- 8026      FFFF
-2272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
- 8027              		.loc 3 2272 0
- 8028 69bf C7851CFF 		movl	$0, -228(%rbp)
- 8028      FFFF0000 
- 8028      0000
-2273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(EqInvFirstRound) (state, key[ix++]);
- 8029              		.loc 3 2274 0
- 8030 69c9 8B851CFF 		mov	-228(%rbp), %eax
- 8030      FFFF
- 8031 69cf 48C1E004 		salq	$4, %rax
- 8032 69d3 48038568 		addq	-408(%rbp), %rax
- 8032      FEFFFF
- 8033 69da 660F6F00 		movdqa	(%rax), %xmm0
- 8034 69de 83851CFF 		addl	$1, -228(%rbp)
- 8034      FFFF01
- 8035 69e5 660F6F8D 		movdqa	-400(%rbp), %xmm1
- 8035      70FEFFFF 
- 8036 69ed F30F7F8D 		movdqu	%xmm1, -208(%rbp)
- 8036      30FFFFFF 
- 8037 69f5 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 8037      20FFFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 269
-
-
- 8038              	.LBB2283:
- 8039              	.LBB2284:
- 8040              	.LBB2285:
-2133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
- 8041              		.loc 3 2133 0
- 8042 69fd F30F6F85 		movdqu	-208(%rbp), %xmm0
- 8042      30FFFFFF 
- 8043 6a05 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 8043      A0FEFFFF 
- 8044              		.cfi_offset 3, -40
- 8045              		.cfi_offset 12, -32
- 8046              		.cfi_offset 13, -24
- 8047 6a0d E8000000 		call	KDbgWriterGet at PLT
- 8047      00
- 8048 6a12 4885C0   		testq	%rax, %rax
- 8049 6a15 7479     		je	.L53
- 8050 6a17 BF030000 		movl	$3, %edi
- 8050      00
- 8051 6a1c E8000000 		call	KDbgCondToFlag at PLT
- 8051      00
- 8052 6a21 4889C6   		movq	%rax, %rsi
- 8053 6a24 BF100000 		movl	$16, %edi
- 8053      00
- 8054 6a29 E8000000 		call	KDbgTestModConds at PLT
- 8054      00
- 8055 6a2e 84C0     		testb	%al, %al
- 8056 6a30 745E     		je	.L53
- 8057 6a32 8B85ACFE 		movl	-340(%rbp), %eax
- 8057      FFFF
- 8058 6a38 89C7     		movl	%eax, %edi
- 8059 6a3a E8F895FF 		call	bswap_32
- 8059      FF
- 8060 6a3f 4189C5   		movl	%eax, %r13d
- 8061 6a42 8B85A8FE 		movl	-344(%rbp), %eax
- 8061      FFFF
- 8062 6a48 89C7     		movl	%eax, %edi
- 8063 6a4a E8E895FF 		call	bswap_32
- 8063      FF
- 8064 6a4f 4189C4   		movl	%eax, %r12d
- 8065 6a52 8B85A4FE 		movl	-348(%rbp), %eax
- 8065      FFFF
- 8066 6a58 89C7     		movl	%eax, %edi
- 8067 6a5a E8D895FF 		call	bswap_32
- 8067      FF
- 8068 6a5f 89C3     		movl	%eax, %ebx
- 8069 6a61 8B85A0FE 		movl	-352(%rbp), %eax
- 8069      FFFF
- 8070 6a67 89C7     		movl	%eax, %edi
- 8071 6a69 E8C995FF 		call	bswap_32
- 8071      FF
- 8072 6a6e 4589E9   		movl	%r13d, %r9d
- 8073 6a71 4589E0   		movl	%r12d, %r8d
- 8074 6a74 89D9     		movl	%ebx, %ecx
- 8075 6a76 89C2     		movl	%eax, %edx
- 8076 6a78 488D3500 		leaq	.LC0(%rip), %rsi
- 8076      000000
- 8077 6a7f 488D3D00 		leaq	.LC1(%rip), %rdi
-
GAS LISTING /tmp/ccPaCTqg.s 			page 270
-
-
- 8077      000000
- 8078 6a86 B8000000 		movl	$0, %eax
- 8078      00
- 8079 6a8b E8000000 		call	KDbgMsg at PLT
- 8079      00
- 8080              	.L53:
- 8081 6a90 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 8081      30FFFFFF 
- 8082 6a98 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 8082      50FFFFFF 
- 8083 6aa0 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 8083      20FFFFFF 
- 8084 6aa8 F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 8084      40FFFFFF 
- 8085 6ab0 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 8085      50FFFFFF 
- 8086 6ab8 F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 8086      70FFFFFF 
- 8087 6ac0 F30F6F85 		movdqu	-192(%rbp), %xmm0
- 8087      40FFFFFF 
- 8088 6ac8 F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 8088      60FFFFFF 
- 8089              	.LBE2285:
- 8090              	.LBB2286:
- 8091              	.LBB2287:
- 8092              	.LBB2288:
- 8093              	.LBB2289:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 8094              		.loc 3 178 0
- 8095 6ad0 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 8095      60FFFFFF 
- 8096 6ad8 F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 8096      70FFFFFF 
- 8097 6ae0 660FEFC1 		pxor	%xmm1, %xmm0
- 8098              	.LBE2289:
- 8099              	.LBE2288:
- 8100              	.LBE2287:
- 8101              	.LBE2286:
-2135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(AddRoundKey) (state, round_keys);
- 8102              		.loc 3 2135 0
- 8103 6ae4 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 8103      30FFFFFF 
- 8104              	.LBB2290:
-2137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
- 8105              		.loc 3 2137 0
- 8106 6aec F30F6F85 		movdqu	-224(%rbp), %xmm0
- 8106      20FFFFFF 
- 8107 6af4 F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 8107      90FEFFFF 
- 8108 6afc E8000000 		call	KDbgWriterGet at PLT
- 8108      00
- 8109 6b01 4885C0   		testq	%rax, %rax
- 8110 6b04 7479     		je	.L55
- 8111 6b06 BF030000 		movl	$3, %edi
- 8111      00
- 8112 6b0b E8000000 		call	KDbgCondToFlag at PLT
- 8112      00
-
GAS LISTING /tmp/ccPaCTqg.s 			page 271
-
-
- 8113 6b10 4889C6   		movq	%rax, %rsi
- 8114 6b13 BF100000 		movl	$16, %edi
- 8114      00
- 8115 6b18 E8000000 		call	KDbgTestModConds at PLT
- 8115      00
- 8116 6b1d 84C0     		testb	%al, %al
- 8117 6b1f 745E     		je	.L55
- 8118 6b21 8B859CFE 		movl	-356(%rbp), %eax
- 8118      FFFF
- 8119 6b27 89C7     		movl	%eax, %edi
- 8120 6b29 E80995FF 		call	bswap_32
- 8120      FF
- 8121 6b2e 4189C5   		movl	%eax, %r13d
- 8122 6b31 8B8598FE 		movl	-360(%rbp), %eax
- 8122      FFFF
- 8123 6b37 89C7     		movl	%eax, %edi
- 8124 6b39 E8F994FF 		call	bswap_32
- 8124      FF
- 8125 6b3e 4189C4   		movl	%eax, %r12d
- 8126 6b41 8B8594FE 		movl	-364(%rbp), %eax
- 8126      FFFF
- 8127 6b47 89C7     		movl	%eax, %edi
- 8128 6b49 E8E994FF 		call	bswap_32
- 8128      FF
- 8129 6b4e 89C3     		movl	%eax, %ebx
- 8130 6b50 8B8590FE 		movl	-368(%rbp), %eax
- 8130      FFFF
- 8131 6b56 89C7     		movl	%eax, %edi
- 8132 6b58 E8DA94FF 		call	bswap_32
- 8132      FF
- 8133 6b5d 4589E9   		movl	%r13d, %r9d
- 8134 6b60 4589E0   		movl	%r12d, %r8d
- 8135 6b63 89D9     		movl	%ebx, %ecx
- 8136 6b65 89C2     		movl	%eax, %edx
- 8137 6b67 488D3500 		leaq	.LC2(%rip), %rsi
- 8137      000000
- 8138 6b6e 488D3D00 		leaq	.LC1(%rip), %rdi
- 8138      000000
- 8139 6b75 B8000000 		movl	$0, %eax
- 8139      00
- 8140 6b7a E8000000 		call	KDbgMsg at PLT
- 8140      00
- 8141              	.L55:
- 8142              	.LBE2290:
- 8143              	.LBB2291:
-2138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
- 8144              		.loc 3 2138 0
- 8145 6b7f F30F6F85 		movdqu	-208(%rbp), %xmm0
- 8145      30FFFFFF 
- 8146 6b87 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 8146      80FEFFFF 
- 8147 6b8f E8000000 		call	KDbgWriterGet at PLT
- 8147      00
- 8148 6b94 4885C0   		testq	%rax, %rax
- 8149 6b97 7479     		je	.L57
- 8150 6b99 BF030000 		movl	$3, %edi
- 8150      00
-
GAS LISTING /tmp/ccPaCTqg.s 			page 272
-
-
- 8151 6b9e E8000000 		call	KDbgCondToFlag at PLT
- 8151      00
- 8152 6ba3 4889C6   		movq	%rax, %rsi
- 8153 6ba6 BF100000 		movl	$16, %edi
- 8153      00
- 8154 6bab E8000000 		call	KDbgTestModConds at PLT
- 8154      00
- 8155 6bb0 84C0     		testb	%al, %al
- 8156 6bb2 745E     		je	.L57
- 8157 6bb4 8B858CFE 		movl	-372(%rbp), %eax
- 8157      FFFF
- 8158 6bba 89C7     		movl	%eax, %edi
- 8159 6bbc E87694FF 		call	bswap_32
- 8159      FF
- 8160 6bc1 4189C5   		movl	%eax, %r13d
- 8161 6bc4 8B8588FE 		movl	-376(%rbp), %eax
- 8161      FFFF
- 8162 6bca 89C7     		movl	%eax, %edi
- 8163 6bcc E86694FF 		call	bswap_32
- 8163      FF
- 8164 6bd1 4189C4   		movl	%eax, %r12d
- 8165 6bd4 8B8584FE 		movl	-380(%rbp), %eax
- 8165      FFFF
- 8166 6bda 89C7     		movl	%eax, %edi
- 8167 6bdc E85694FF 		call	bswap_32
- 8167      FF
- 8168 6be1 89C3     		movl	%eax, %ebx
- 8169 6be3 8B8580FE 		movl	-384(%rbp), %eax
- 8169      FFFF
- 8170 6be9 89C7     		movl	%eax, %edi
- 8171 6beb E84794FF 		call	bswap_32
- 8171      FF
- 8172 6bf0 4589E9   		movl	%r13d, %r9d
- 8173 6bf3 4589E0   		movl	%r12d, %r8d
- 8174 6bf6 89D9     		movl	%ebx, %ecx
- 8175 6bf8 89C2     		movl	%eax, %edx
- 8176 6bfa 488D3500 		leaq	.LC4(%rip), %rsi
- 8176      000000
- 8177 6c01 488D3D00 		leaq	.LC1(%rip), %rdi
- 8177      000000
- 8178 6c08 B8000000 		movl	$0, %eax
- 8178      00
- 8179 6c0d E8000000 		call	KDbgMsg at PLT
- 8179      00
- 8180              	.L57:
- 8181              	.LBE2291:
-2139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8182              		.loc 3 2139 0
- 8183 6c12 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 8183      30FFFFFF 
- 8184              	.LBE2284:
- 8185              	.LBE2283:
- 8186              		.loc 3 2274 0
- 8187 6c1a 660F7F85 		movdqa	%xmm0, -400(%rbp)
- 8187      70FEFFFF 
-2275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 273
-
-
- 8188              		.loc 3 2276 0
- 8189 6c22 E91D0200 		jmp	.L58
- 8189      00
- 8190              	.L65:
-2277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvMiddleRound) (state, key[ix] );
- 8191              		.loc 3 2277 0
- 8192 6c27 8B851CFF 		mov	-228(%rbp), %eax
- 8192      FFFF
- 8193 6c2d 48C1E004 		salq	$4, %rax
- 8194 6c31 48038568 		addq	-408(%rbp), %rax
- 8194      FEFFFF
- 8195 6c38 660F6F00 		movdqa	(%rax), %xmm0
- 8196 6c3c 660F6F8D 		movdqa	-400(%rbp), %xmm1
- 8196      70FEFFFF 
- 8197 6c44 F30F7F4D 		movdqu	%xmm1, -112(%rbp)
- 8197      90
- 8198 6c49 F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 8198      80
- 8199              	.LBB2292:
- 8200              	.LBB2293:
-2167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 8201              		.loc 3 2167 0
- 8202 6c4e F30F6F45 		movdqu	-112(%rbp), %xmm0
- 8202      90
- 8203 6c53 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 8203      B0
-2168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
- 8204              		.loc 3 2168 0
- 8205 6c58 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 8205      80
- 8206 6c5d F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 8206      A0
- 8207              	.LBB2294:
-2171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", mstate);
- 8208              		.loc 3 2171 0
- 8209 6c62 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 8209      B0
- 8210 6c67 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 8210      D0FEFFFF 
- 8211 6c6f E8000000 		call	KDbgWriterGet at PLT
- 8211      00
- 8212 6c74 4885C0   		testq	%rax, %rax
- 8213 6c77 7479     		je	.L60
- 8214 6c79 BF030000 		movl	$3, %edi
- 8214      00
- 8215 6c7e E8000000 		call	KDbgCondToFlag at PLT
- 8215      00
- 8216 6c83 4889C6   		movq	%rax, %rsi
- 8217 6c86 BF100000 		movl	$16, %edi
- 8217      00
- 8218 6c8b E8000000 		call	KDbgTestModConds at PLT
- 8218      00
- 8219 6c90 84C0     		testb	%al, %al
- 8220 6c92 745E     		je	.L60
- 8221 6c94 8B85DCFE 		movl	-292(%rbp), %eax
- 8221      FFFF
- 8222 6c9a 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccPaCTqg.s 			page 274
-
-
- 8223 6c9c E89693FF 		call	bswap_32
- 8223      FF
- 8224 6ca1 4189C5   		movl	%eax, %r13d
- 8225 6ca4 8B85D8FE 		movl	-296(%rbp), %eax
- 8225      FFFF
- 8226 6caa 89C7     		movl	%eax, %edi
- 8227 6cac E88693FF 		call	bswap_32
- 8227      FF
- 8228 6cb1 4189C4   		movl	%eax, %r12d
- 8229 6cb4 8B85D4FE 		movl	-300(%rbp), %eax
- 8229      FFFF
- 8230 6cba 89C7     		movl	%eax, %edi
- 8231 6cbc E87693FF 		call	bswap_32
- 8231      FF
- 8232 6cc1 89C3     		movl	%eax, %ebx
- 8233 6cc3 8B85D0FE 		movl	-304(%rbp), %eax
- 8233      FFFF
- 8234 6cc9 89C7     		movl	%eax, %edi
- 8235 6ccb E86793FF 		call	bswap_32
- 8235      FF
- 8236 6cd0 4589E9   		movl	%r13d, %r9d
- 8237 6cd3 4589E0   		movl	%r12d, %r8d
- 8238 6cd6 89D9     		movl	%ebx, %ecx
- 8239 6cd8 89C2     		movl	%eax, %edx
- 8240 6cda 488D3500 		leaq	.LC0(%rip), %rsi
- 8240      000000
- 8241 6ce1 488D3D00 		leaq	.LC1(%rip), %rdi
- 8241      000000
- 8242 6ce8 B8000000 		movl	$0, %eax
- 8242      00
- 8243 6ced E8000000 		call	KDbgMsg at PLT
- 8243      00
- 8244              	.L60:
- 8245              	.LBE2294:
-2178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDEC (state, round_keys);
- 8246              		.loc 3 2178 0
- 8247 6cf2 F30F6F4D 		movdqu	-128(%rbp), %xmm1
- 8247      80
- 8248 6cf7 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 8248      90
- 8249 6cfc E81593FF 		call	op_AESDEC
- 8249      FF
- 8250 6d01 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 8250      90
-2213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 8251              		.loc 3 2213 0
- 8252 6d06 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 8252      90
- 8253 6d0b F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 8253      B0
- 8254              	.LBB2295:
-2215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", mround_keys);
- 8255              		.loc 3 2215 0
- 8256 6d10 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 8256      A0
- 8257 6d15 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 8257      C0FEFFFF 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 275
-
-
- 8258 6d1d E8000000 		call	KDbgWriterGet at PLT
- 8258      00
- 8259 6d22 4885C0   		testq	%rax, %rax
- 8260 6d25 7479     		je	.L62
- 8261 6d27 BF030000 		movl	$3, %edi
- 8261      00
- 8262 6d2c E8000000 		call	KDbgCondToFlag at PLT
- 8262      00
- 8263 6d31 4889C6   		movq	%rax, %rsi
- 8264 6d34 BF100000 		movl	$16, %edi
- 8264      00
- 8265 6d39 E8000000 		call	KDbgTestModConds at PLT
- 8265      00
- 8266 6d3e 84C0     		testb	%al, %al
- 8267 6d40 745E     		je	.L62
- 8268 6d42 8B85CCFE 		movl	-308(%rbp), %eax
- 8268      FFFF
- 8269 6d48 89C7     		movl	%eax, %edi
- 8270 6d4a E8E892FF 		call	bswap_32
- 8270      FF
- 8271 6d4f 4189C5   		movl	%eax, %r13d
- 8272 6d52 8B85C8FE 		movl	-312(%rbp), %eax
- 8272      FFFF
- 8273 6d58 89C7     		movl	%eax, %edi
- 8274 6d5a E8D892FF 		call	bswap_32
- 8274      FF
- 8275 6d5f 4189C4   		movl	%eax, %r12d
- 8276 6d62 8B85C4FE 		movl	-316(%rbp), %eax
- 8276      FFFF
- 8277 6d68 89C7     		movl	%eax, %edi
- 8278 6d6a E8C892FF 		call	bswap_32
- 8278      FF
- 8279 6d6f 89C3     		movl	%eax, %ebx
- 8280 6d71 8B85C0FE 		movl	-320(%rbp), %eax
- 8280      FFFF
- 8281 6d77 89C7     		movl	%eax, %edi
- 8282 6d79 E8B992FF 		call	bswap_32
- 8282      FF
- 8283 6d7e 4589E9   		movl	%r13d, %r9d
- 8284 6d81 4589E0   		movl	%r12d, %r8d
- 8285 6d84 89D9     		movl	%ebx, %ecx
- 8286 6d86 89C2     		movl	%eax, %edx
- 8287 6d88 488D3500 		leaq	.LC2(%rip), %rsi
- 8287      000000
- 8288 6d8f 488D3D00 		leaq	.LC1(%rip), %rdi
- 8288      000000
- 8289 6d96 B8000000 		movl	$0, %eax
- 8289      00
- 8290 6d9b E8000000 		call	KDbgMsg at PLT
- 8290      00
- 8291              	.L62:
- 8292              	.LBE2295:
- 8293              	.LBB2296:
-2217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", mstate);
- 8294              		.loc 3 2217 0
- 8295 6da0 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 8295      B0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 276
-
-
- 8296 6da5 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 8296      B0FEFFFF 
- 8297 6dad E8000000 		call	KDbgWriterGet at PLT
- 8297      00
- 8298 6db2 4885C0   		testq	%rax, %rax
- 8299 6db5 7479     		je	.L64
- 8300 6db7 BF030000 		movl	$3, %edi
- 8300      00
- 8301 6dbc E8000000 		call	KDbgCondToFlag at PLT
- 8301      00
- 8302 6dc1 4889C6   		movq	%rax, %rsi
- 8303 6dc4 BF100000 		movl	$16, %edi
- 8303      00
- 8304 6dc9 E8000000 		call	KDbgTestModConds at PLT
- 8304      00
- 8305 6dce 84C0     		testb	%al, %al
- 8306 6dd0 745E     		je	.L64
- 8307 6dd2 8B85BCFE 		movl	-324(%rbp), %eax
- 8307      FFFF
- 8308 6dd8 89C7     		movl	%eax, %edi
- 8309 6dda E85892FF 		call	bswap_32
- 8309      FF
- 8310 6ddf 4189C5   		movl	%eax, %r13d
- 8311 6de2 8B85B8FE 		movl	-328(%rbp), %eax
- 8311      FFFF
- 8312 6de8 89C7     		movl	%eax, %edi
- 8313 6dea E84892FF 		call	bswap_32
- 8313      FF
- 8314 6def 4189C4   		movl	%eax, %r12d
- 8315 6df2 8B85B4FE 		movl	-332(%rbp), %eax
- 8315      FFFF
- 8316 6df8 89C7     		movl	%eax, %edi
- 8317 6dfa E83892FF 		call	bswap_32
- 8317      FF
- 8318 6dff 89C3     		movl	%eax, %ebx
- 8319 6e01 8B85B0FE 		movl	-336(%rbp), %eax
- 8319      FFFF
- 8320 6e07 89C7     		movl	%eax, %edi
- 8321 6e09 E82992FF 		call	bswap_32
- 8321      FF
- 8322 6e0e 4589E9   		movl	%r13d, %r9d
- 8323 6e11 4589E0   		movl	%r12d, %r8d
- 8324 6e14 89D9     		movl	%ebx, %ecx
- 8325 6e16 89C2     		movl	%eax, %edx
- 8326 6e18 488D3500 		leaq	.LC4(%rip), %rsi
- 8326      000000
- 8327 6e1f 488D3D00 		leaq	.LC1(%rip), %rdi
- 8327      000000
- 8328 6e26 B8000000 		movl	$0, %eax
- 8328      00
- 8329 6e2b E8000000 		call	KDbgMsg at PLT
- 8329      00
- 8330              	.L64:
- 8331              	.LBE2296:
-2220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8332              		.loc 3 2220 0
- 8333 6e30 F30F6F45 		movdqu	-112(%rbp), %xmm0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 277
-
-
- 8333      90
- 8334              	.LBE2293:
- 8335              	.LBE2292:
- 8336              		.loc 3 2277 0
- 8337 6e35 660F7F85 		movdqa	%xmm0, -400(%rbp)
- 8337      70FEFFFF 
-2276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 8338              		.loc 3 2276 0
- 8339 6e3d 83851CFF 		addl	$1, -228(%rbp)
- 8339      FFFF01
- 8340              	.L58:
- 8341 6e44 8B851CFF 		movl	-228(%rbp), %eax
- 8341      FFFF
- 8342 6e4a 3B8564FE 		cmpl	-412(%rbp), %eax
- 8342      FFFF
- 8343 6e50 0F82D1FD 		jb	.L65
- 8343      FFFF
-2278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(EqInvLastRound) (state, key[ix]);
- 8344              		.loc 3 2279 0
- 8345 6e56 8B851CFF 		mov	-228(%rbp), %eax
- 8345      FFFF
- 8346 6e5c 48C1E004 		salq	$4, %rax
- 8347 6e60 48038568 		addq	-408(%rbp), %rax
- 8347      FEFFFF
- 8348 6e67 660F6F00 		movdqa	(%rax), %xmm0
- 8349 6e6b 660F6F8D 		movdqa	-400(%rbp), %xmm1
- 8349      70FEFFFF 
- 8350 6e73 F30F7F4D 		movdqu	%xmm1, -48(%rbp)
- 8350      D0
- 8351 6e78 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 8351      C0
- 8352              	.LBB2297:
- 8353              	.LBB2298:
- 8354              	.LBB2299:
-2237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
- 8355              		.loc 3 2237 0
- 8356 6e7d F30F6F45 		movdqu	-48(%rbp), %xmm0
- 8356      D0
- 8357 6e82 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 8357      00FFFFFF 
- 8358 6e8a E8000000 		call	KDbgWriterGet at PLT
- 8358      00
- 8359 6e8f 4885C0   		testq	%rax, %rax
- 8360 6e92 7479     		je	.L67
- 8361 6e94 BF030000 		movl	$3, %edi
- 8361      00
- 8362 6e99 E8000000 		call	KDbgCondToFlag at PLT
- 8362      00
- 8363 6e9e 4889C6   		movq	%rax, %rsi
- 8364 6ea1 BF100000 		movl	$16, %edi
- 8364      00
- 8365 6ea6 E8000000 		call	KDbgTestModConds at PLT
- 8365      00
- 8366 6eab 84C0     		testb	%al, %al
- 8367 6ead 745E     		je	.L67
- 8368 6eaf 8B850CFF 		movl	-244(%rbp), %eax
-
GAS LISTING /tmp/ccPaCTqg.s 			page 278
-
-
- 8368      FFFF
- 8369 6eb5 89C7     		movl	%eax, %edi
- 8370 6eb7 E87B91FF 		call	bswap_32
- 8370      FF
- 8371 6ebc 4189C5   		movl	%eax, %r13d
- 8372 6ebf 8B8508FF 		movl	-248(%rbp), %eax
- 8372      FFFF
- 8373 6ec5 89C7     		movl	%eax, %edi
- 8374 6ec7 E86B91FF 		call	bswap_32
- 8374      FF
- 8375 6ecc 4189C4   		movl	%eax, %r12d
- 8376 6ecf 8B8504FF 		movl	-252(%rbp), %eax
- 8376      FFFF
- 8377 6ed5 89C7     		movl	%eax, %edi
- 8378 6ed7 E85B91FF 		call	bswap_32
- 8378      FF
- 8379 6edc 89C3     		movl	%eax, %ebx
- 8380 6ede 8B8500FF 		movl	-256(%rbp), %eax
- 8380      FFFF
- 8381 6ee4 89C7     		movl	%eax, %edi
- 8382 6ee6 E84C91FF 		call	bswap_32
- 8382      FF
- 8383 6eeb 4589E9   		movl	%r13d, %r9d
- 8384 6eee 4589E0   		movl	%r12d, %r8d
- 8385 6ef1 89D9     		movl	%ebx, %ecx
- 8386 6ef3 89C2     		movl	%eax, %edx
- 8387 6ef5 488D3500 		leaq	.LC0(%rip), %rsi
- 8387      000000
- 8388 6efc 488D3D00 		leaq	.LC1(%rip), %rdi
- 8388      000000
- 8389 6f03 B8000000 		movl	$0, %eax
- 8389      00
- 8390 6f08 E8000000 		call	KDbgMsg at PLT
- 8390      00
- 8391              	.L67:
- 8392              	.LBE2299:
-2240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDECLAST (state, round_keys);
- 8393              		.loc 3 2240 0
- 8394 6f0d F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 8394      C0
- 8395 6f12 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 8395      D0
- 8396 6f17 E80591FF 		call	op_AESDECLAST
- 8396      FF
- 8397 6f1c F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 8397      D0
- 8398              	.LBB2300:
-2253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
- 8399              		.loc 3 2253 0
- 8400 6f21 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 8400      C0
- 8401 6f26 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 8401      F0FEFFFF 
- 8402 6f2e E8000000 		call	KDbgWriterGet at PLT
- 8402      00
- 8403 6f33 4885C0   		testq	%rax, %rax
- 8404 6f36 7479     		je	.L69
-
GAS LISTING /tmp/ccPaCTqg.s 			page 279
-
-
- 8405 6f38 BF030000 		movl	$3, %edi
- 8405      00
- 8406 6f3d E8000000 		call	KDbgCondToFlag at PLT
- 8406      00
- 8407 6f42 4889C6   		movq	%rax, %rsi
- 8408 6f45 BF100000 		movl	$16, %edi
- 8408      00
- 8409 6f4a E8000000 		call	KDbgTestModConds at PLT
- 8409      00
- 8410 6f4f 84C0     		testb	%al, %al
- 8411 6f51 745E     		je	.L69
- 8412 6f53 8B85FCFE 		movl	-260(%rbp), %eax
- 8412      FFFF
- 8413 6f59 89C7     		movl	%eax, %edi
- 8414 6f5b E8D790FF 		call	bswap_32
- 8414      FF
- 8415 6f60 4189C5   		movl	%eax, %r13d
- 8416 6f63 8B85F8FE 		movl	-264(%rbp), %eax
- 8416      FFFF
- 8417 6f69 89C7     		movl	%eax, %edi
- 8418 6f6b E8C790FF 		call	bswap_32
- 8418      FF
- 8419 6f70 4189C4   		movl	%eax, %r12d
- 8420 6f73 8B85F4FE 		movl	-268(%rbp), %eax
- 8420      FFFF
- 8421 6f79 89C7     		movl	%eax, %edi
- 8422 6f7b E8B790FF 		call	bswap_32
- 8422      FF
- 8423 6f80 89C3     		movl	%eax, %ebx
- 8424 6f82 8B85F0FE 		movl	-272(%rbp), %eax
- 8424      FFFF
- 8425 6f88 89C7     		movl	%eax, %edi
- 8426 6f8a E8A890FF 		call	bswap_32
- 8426      FF
- 8427 6f8f 4589E9   		movl	%r13d, %r9d
- 8428 6f92 4589E0   		movl	%r12d, %r8d
- 8429 6f95 89D9     		movl	%ebx, %ecx
- 8430 6f97 89C2     		movl	%eax, %edx
- 8431 6f99 488D3500 		leaq	.LC2(%rip), %rsi
- 8431      000000
- 8432 6fa0 488D3D00 		leaq	.LC1(%rip), %rdi
- 8432      000000
- 8433 6fa7 B8000000 		movl	$0, %eax
- 8433      00
- 8434 6fac E8000000 		call	KDbgMsg at PLT
- 8434      00
- 8435              	.L69:
- 8436              	.LBE2300:
- 8437              	.LBB2301:
-2254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
- 8438              		.loc 3 2254 0
- 8439 6fb1 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 8439      D0
- 8440 6fb6 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 8440      E0FEFFFF 
- 8441 6fbe E8000000 		call	KDbgWriterGet at PLT
- 8441      00
-
GAS LISTING /tmp/ccPaCTqg.s 			page 280
-
-
- 8442 6fc3 4885C0   		testq	%rax, %rax
- 8443 6fc6 7479     		je	.L71
- 8444 6fc8 BF030000 		movl	$3, %edi
- 8444      00
- 8445 6fcd E8000000 		call	KDbgCondToFlag at PLT
- 8445      00
- 8446 6fd2 4889C6   		movq	%rax, %rsi
- 8447 6fd5 BF100000 		movl	$16, %edi
- 8447      00
- 8448 6fda E8000000 		call	KDbgTestModConds at PLT
- 8448      00
- 8449 6fdf 84C0     		testb	%al, %al
- 8450 6fe1 745E     		je	.L71
- 8451 6fe3 8B85ECFE 		movl	-276(%rbp), %eax
- 8451      FFFF
- 8452 6fe9 89C7     		movl	%eax, %edi
- 8453 6feb E84790FF 		call	bswap_32
- 8453      FF
- 8454 6ff0 4189C5   		movl	%eax, %r13d
- 8455 6ff3 8B85E8FE 		movl	-280(%rbp), %eax
- 8455      FFFF
- 8456 6ff9 89C7     		movl	%eax, %edi
- 8457 6ffb E83790FF 		call	bswap_32
- 8457      FF
- 8458 7000 4189C4   		movl	%eax, %r12d
- 8459 7003 8B85E4FE 		movl	-284(%rbp), %eax
- 8459      FFFF
- 8460 7009 89C7     		movl	%eax, %edi
- 8461 700b E82790FF 		call	bswap_32
- 8461      FF
- 8462 7010 89C3     		movl	%eax, %ebx
- 8463 7012 8B85E0FE 		movl	-288(%rbp), %eax
- 8463      FFFF
- 8464 7018 89C7     		movl	%eax, %edi
- 8465 701a E81890FF 		call	bswap_32
- 8465      FF
- 8466 701f 4589E9   		movl	%r13d, %r9d
- 8467 7022 4589E0   		movl	%r12d, %r8d
- 8468 7025 89D9     		movl	%ebx, %ecx
- 8469 7027 89C2     		movl	%eax, %edx
- 8470 7029 488D3500 		leaq	.LC4(%rip), %rsi
- 8470      000000
- 8471 7030 488D3D00 		leaq	.LC1(%rip), %rdi
- 8471      000000
- 8472 7037 B8000000 		movl	$0, %eax
- 8472      00
- 8473 703c E8000000 		call	KDbgMsg at PLT
- 8473      00
- 8474              	.L71:
- 8475              	.LBE2301:
-2256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8476              		.loc 3 2256 0
- 8477 7041 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 8477      D0
- 8478              	.LBE2298:
- 8479              	.LBE2297:
-2280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-
GAS LISTING /tmp/ccPaCTqg.s 			page 281
-
-
- 8480              		.loc 3 2280 0
- 8481 7046 4881C488 		addq	$392, %rsp
- 8481      010000
- 8482 704d 5B       		popq	%rbx
- 8483 704e 415C     		popq	%r12
- 8484 7050 415D     		popq	%r13
- 8485 7052 C9       		leave
- 8486 7053 C3       		ret
- 8487              		.cfi_endproc
- 8488              	.LFE670:
- 8489              		.size	KAESBlockCipherVecAesNiEqInvCipher, .-KAESBlockCipherVecAesNiEqInvCipher
- 8490              		.section	.rodata
- 8491              		.type	KAESBlockCipherVecAesNiaes_ncbi_name, @object
- 8492              		.size	KAESBlockCipherVecAesNiaes_ncbi_name, 10
- 8493              	KAESBlockCipherVecAesNiaes_ncbi_name:
- 8494 03d9 4145535F 		.string	"AES_CLASS"
- 8494      434C4153 
- 8494      5300
- 8495              		.text
- 8496              		.type	KAESBlockCipherVecAesNiDestroy, @function
- 8497              	KAESBlockCipherVecAesNiDestroy:
- 8498              	.LFB671:
-2281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
-2284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This section of the file is the use of the cipher defined above within
-2285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * our BlockCipherObject.
-2286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * These are the functions that will be directly referenced in the vector
-2288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * table for the block cipher.  These are not specifically derived from
-2289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the FIPS-197 document.
-2290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "blockcipher-impl.h"
-2292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** typedef struct AES_CLASS AES_CLASS;
-2294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const char AESBCMEMBER(aes_ncbi_name) [] = CLASS_STRING(AES_CLASS);
-2296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Destroy
-2300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-2301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   to create this key (key schedule)
-2302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-2304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-2305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(Destroy) (const BLOCKCIPHER_VEC_IMPL * self)
-2308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8499              		.loc 3 2308 0
- 8500              		.cfi_startproc
- 8501 7054 55       		pushq	%rbp
- 8502              	.LCFI30:
- 8503              		.cfi_def_cfa_offset 16
- 8504 7055 4889E5   		movq	%rsp, %rbp
- 8505              		.cfi_offset 6, -16
-
GAS LISTING /tmp/ccPaCTqg.s 			page 282
-
-
- 8506              	.LCFI31:
- 8507              		.cfi_def_cfa_register 6
- 8508 7058 48897DF8 		movq	%rdi, -8(%rbp)
-2309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* we use a constant object so do nothing */
-2310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8509              		.loc 3 2310 0
- 8510 705c C9       		leave
- 8511 705d C3       		ret
- 8512              		.cfi_endproc
- 8513              	.LFE671:
- 8514              		.size	KAESBlockCipherVecAesNiDestroy, .-KAESBlockCipherVecAesNiDestroy
- 8515              		.type	KAESBlockCipherVecAesNiBlockSize, @function
- 8516              	KAESBlockCipherVecAesNiBlockSize:
- 8517              	.LFB672:
-2311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * BlockSize
-2315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint32_t AESBCMEMBER(BlockSize) ()
-2318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8518              		.loc 3 2318 0
- 8519              		.cfi_startproc
- 8520 705e 55       		pushq	%rbp
- 8521              	.LCFI32:
- 8522              		.cfi_def_cfa_offset 16
- 8523 705f 4889E5   		movq	%rsp, %rbp
- 8524              		.cfi_offset 6, -16
- 8525              	.LCFI33:
- 8526              		.cfi_def_cfa_register 6
-2319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESBlock);
- 8527              		.loc 3 2319 0
- 8528 7062 B8100000 		movl	$16, %eax
- 8528      00
-2320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8529              		.loc 3 2320 0
- 8530 7067 C9       		leave
- 8531 7068 C3       		ret
- 8532              		.cfi_endproc
- 8533              	.LFE672:
- 8534              		.size	KAESBlockCipherVecAesNiBlockSize, .-KAESBlockCipherVecAesNiBlockSize
- 8535              		.type	KAESBlockCipherVecAesNiKeySize, @function
- 8536              	KAESBlockCipherVecAesNiKeySize:
- 8537              	.LFB673:
-2321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * KeySize
-2325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-2326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   to create this key (key schedule)
-2327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-2329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-2330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint32_t AESBCMEMBER(KeySize) ()
-
GAS LISTING /tmp/ccPaCTqg.s 			page 283
-
-
-2333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8538              		.loc 3 2333 0
- 8539              		.cfi_startproc
- 8540 7069 55       		pushq	%rbp
- 8541              	.LCFI34:
- 8542              		.cfi_def_cfa_offset 16
- 8543 706a 4889E5   		movq	%rsp, %rbp
- 8544              		.cfi_offset 6, -16
- 8545              	.LCFI35:
- 8546              		.cfi_def_cfa_register 6
-2334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESKeySchedule);
- 8547              		.loc 3 2334 0
- 8548 706d B8000100 		movl	$256, %eax
- 8548      00
-2335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8549              		.loc 3 2335 0
- 8550 7072 C9       		leave
- 8551 7073 C3       		ret
- 8552              		.cfi_endproc
- 8553              	.LFE673:
- 8554              		.size	KAESBlockCipherVecAesNiKeySize, .-KAESBlockCipherVecAesNiKeySize
- 8555              		.section	.rodata
- 8556 03e3 00000000 		.align 8
- 8556      00
- 8557              	.LC5:
- 8558 03e8 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
- 8558      652F726F 
- 8558      6461726D 
- 8558      65722F73 
- 8558      72615F73 
- 8559              		.text
- 8560              		.type	KAESBlockCipherVecAesNiSetEncryptKey, @function
- 8561              	KAESBlockCipherVecAesNiSetEncryptKey:
- 8562              	.LFB674:
-2336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SetEncryptKey
-2340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The KCipher calls this to have the block cipher build an encryption
-2341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   key in the KCipher object
-2342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(SetEncryptKey) (void * encrypt_key, const char * user_key,
-2346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  uint32_t user_key_size)
-2347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8563              		.loc 3 2347 0
- 8564              		.cfi_startproc
- 8565 7074 55       		pushq	%rbp
- 8566              	.LCFI36:
- 8567              		.cfi_def_cfa_offset 16
- 8568 7075 4889E5   		movq	%rsp, %rbp
- 8569              		.cfi_offset 6, -16
- 8570              	.LCFI37:
- 8571              		.cfi_def_cfa_register 6
- 8572 7078 4883EC30 		subq	$48, %rsp
- 8573 707c 48897DE8 		movq	%rdi, -24(%rbp)
-
GAS LISTING /tmp/ccPaCTqg.s 			page 284
-
-
- 8574 7080 488975E0 		movq	%rsi, -32(%rbp)
- 8575 7084 8955DC   		movl	%edx, -36(%rbp)
-2348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESKeySchedule * key;
-2350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = 0;
- 8576              		.loc 3 2351 0
- 8577 7087 C745F400 		movl	$0, -12(%rbp)
- 8577      000000
-2352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     key = encrypt_key;
- 8578              		.loc 3 2352 0
- 8579 708e 488B45E8 		movq	-24(%rbp), %rax
- 8580 7092 488945F8 		movq	%rax, -8(%rbp)
-2353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (user_key_size)
- 8581              		.loc 3 2354 0
- 8582 7096 8B45DC   		movl	-36(%rbp), %eax
- 8583 7099 83F818   		cmpl	$24, %eax
- 8584 709c 7430     		je	.L82
- 8585 709e 83F820   		cmpl	$32, %eax
- 8586 70a1 744E     		je	.L83
- 8587 70a3 83F810   		cmpl	$16, %eax
- 8588 70a6 756C     		jne	.L86
- 8589              	.L81:
-2355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_128 * sizeof (AESWord):
-2357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_128;
- 8590              		.loc 3 2357 0
- 8591 70a8 488B45F8 		movq	-8(%rbp), %rax
- 8592 70ac C780F000 		movl	$10, 240(%rax)
- 8592      00000A00 
- 8592      0000
-2358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion128) (key->round_keys, (AESByte*)user_key);
- 8593              		.loc 3 2358 0
- 8594 70b6 488B55E0 		movq	-32(%rbp), %rdx
- 8595 70ba 488B45F8 		movq	-8(%rbp), %rax
- 8596 70be 4889D6   		movq	%rdx, %rsi
- 8597 70c1 4889C7   		movq	%rax, %rdi
- 8598 70c4 E8828FFF 		call	KAESBlockCipherVecAesNiKeyExpansion128
- 8598      FF
-2359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8599              		.loc 3 2359 0
- 8600 70c9 E98A0000 		jmp	.L84
- 8600      00
- 8601              	.L82:
-2360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_192 * sizeof (AESWord):
-2362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_192;
- 8602              		.loc 3 2362 0
- 8603 70ce 488B45F8 		movq	-8(%rbp), %rax
- 8604 70d2 C780F000 		movl	$12, 240(%rax)
- 8604      00000C00 
- 8604      0000
-2363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion192) (key->round_keys, (AESByte*)user_key);
- 8605              		.loc 3 2363 0
- 8606 70dc 488B55E0 		movq	-32(%rbp), %rdx
- 8607 70e0 488B45F8 		movq	-8(%rbp), %rax
-
GAS LISTING /tmp/ccPaCTqg.s 			page 285
-
-
- 8608 70e4 4889D6   		movq	%rdx, %rsi
- 8609 70e7 4889C7   		movq	%rax, %rdi
- 8610 70ea E8D4A7FF 		call	KAESBlockCipherVecAesNiKeyExpansion192
- 8610      FF
-2364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8611              		.loc 3 2364 0
- 8612 70ef EB67     		jmp	.L84
- 8613              	.L83:
-2365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_256 * sizeof (AESWord):
-2367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_256;
- 8614              		.loc 3 2367 0
- 8615 70f1 488B45F8 		movq	-8(%rbp), %rax
- 8616 70f5 C780F000 		movl	$14, 240(%rax)
- 8616      00000E00 
- 8616      0000
-2368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion256) (key->round_keys, (AESByte*)user_key);
- 8617              		.loc 3 2368 0
- 8618 70ff 488B55E0 		movq	-32(%rbp), %rdx
- 8619 7103 488B45F8 		movq	-8(%rbp), %rax
- 8620 7107 4889D6   		movq	%rdx, %rsi
- 8621 710a 4889C7   		movq	%rax, %rdi
- 8622 710d E8EECEFF 		call	KAESBlockCipherVecAesNiKeyExpansion256
- 8622      FF
-2369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8623              		.loc 3 2369 0
- 8624 7112 EB44     		jmp	.L84
- 8625              	.L86:
-2370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = 0;
- 8626              		.loc 3 2372 0
- 8627 7114 488B45F8 		movq	-8(%rbp), %rax
- 8628 7118 C780F000 		movl	$0, 240(%rax)
- 8628      00000000 
- 8628      0000
-2373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         memset (key, 0, sizeof (*key));
- 8629              		.loc 3 2373 0
- 8630 7122 488B45F8 		movq	-8(%rbp), %rax
- 8631 7126 BA000100 		movl	$256, %edx
- 8631      00
- 8632 712b BE000000 		movl	$0, %esi
- 8632      00
- 8633 7130 4889C7   		movq	%rax, %rdi
- 8634 7133 E8000000 		call	memset at PLT
- 8634      00
-2374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcUpdating, rcParam, rcInvalid);
- 8635              		.loc 3 2374 0
- 8636 7138 B9460900 		movl	$2374, %ecx
- 8636      00
- 8637 713d 488D1500 		leaq	__func__.8794(%rip), %rdx
- 8637      000000
- 8638 7144 488D3500 		leaq	.LC5(%rip), %rsi
- 8638      000000
- 8639 714b BFCA8F04 		movl	$-2029744182, %edi
- 8639      87
- 8640 7150 E8000000 		call	SetRCFileFuncLine at PLT
-
GAS LISTING /tmp/ccPaCTqg.s 			page 286
-
-
- 8640      00
- 8641 7155 8945F4   		movl	%eax, -12(%rbp)
- 8642              	.L84:
-2375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 8643              		.loc 3 2377 0
- 8644 7158 8B45F4   		movl	-12(%rbp), %eax
-2378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8645              		.loc 3 2378 0
- 8646 715b C9       		leave
- 8647 715c C3       		ret
- 8648              		.cfi_endproc
- 8649              	.LFE674:
- 8650              		.size	KAESBlockCipherVecAesNiSetEncryptKey, .-KAESBlockCipherVecAesNiSetEncryptKey
- 8651              		.type	KAESBlockCipherVecAesNiSetDecryptKey, @function
- 8652              	KAESBlockCipherVecAesNiSetDecryptKey:
- 8653              	.LFB675:
-2379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SetDecryptKey
-2383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The KCipher calls this to have the block cipher build an decryption
-2384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   key in the KCipher object
-2385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(SetDecryptKey) (void * decrypt_key,
-2389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  const char * user_key,
-2390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  uint32_t user_key_size)
-2391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8654              		.loc 3 2391 0
- 8655              		.cfi_startproc
- 8656 715d 55       		pushq	%rbp
- 8657              	.LCFI38:
- 8658              		.cfi_def_cfa_offset 16
- 8659 715e 4889E5   		movq	%rsp, %rbp
- 8660              		.cfi_offset 6, -16
- 8661              	.LCFI39:
- 8662              		.cfi_def_cfa_register 6
- 8663 7161 4881EC30 		subq	$304, %rsp
- 8663      010000
- 8664 7168 4889BDE8 		movq	%rdi, -280(%rbp)
- 8664      FEFFFF
- 8665 716f 4889B5E0 		movq	%rsi, -288(%rbp)
- 8665      FEFFFF
- 8666 7176 8995DCFE 		movl	%edx, -292(%rbp)
- 8666      FFFF
-2392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESKeySchedule encrypt_key;
-2393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = AESBCMEMBER(SetEncryptKey) (&encrypt_key, user_key, user_key_size);
- 8667              		.loc 3 2395 0
- 8668 717c 8B95DCFE 		movl	-292(%rbp), %edx
- 8668      FFFF
- 8669 7182 488B8DE0 		movq	-288(%rbp), %rcx
- 8669      FEFFFF
-
GAS LISTING /tmp/ccPaCTqg.s 			page 287
-
-
- 8670 7189 488D85F0 		leaq	-272(%rbp), %rax
- 8670      FEFFFF
- 8671 7190 4889CE   		movq	%rcx, %rsi
- 8672 7193 4889C7   		movq	%rax, %rdi
- 8673 7196 E8D9FEFF 		call	KAESBlockCipherVecAesNiSetEncryptKey
- 8673      FF
- 8674 719b 8945F4   		movl	%eax, -12(%rbp)
-2396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (rc == 0)
- 8675              		.loc 3 2396 0
- 8676 719e 837DF400 		cmpl	$0, -12(%rbp)
- 8677 71a2 7577     		jne	.L88
- 8678              	.LBB2302:
-2397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESKeySchedule * key;
-2399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key = decrypt_key;
- 8679              		.loc 3 2400 0
- 8680 71a4 488B85E8 		movq	-280(%rbp), %rax
- 8680      FEFFFF
- 8681 71ab 488945F8 		movq	%rax, -8(%rbp)
-2401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         switch (key->number_of_rounds = encrypt_key.number_of_rounds)
- 8682              		.loc 3 2402 0
- 8683 71af 8B55E0   		movl	-32(%rbp), %edx
- 8684 71b2 488B45F8 		movq	-8(%rbp), %rax
- 8685 71b6 8990F000 		movl	%edx, 240(%rax)
- 8685      0000
- 8686 71bc 488B45F8 		movq	-8(%rbp), %rax
- 8687 71c0 8B80F000 		movl	240(%rax), %eax
- 8687      0000
- 8688 71c6 83F80C   		cmpl	$12, %eax
- 8689 71c9 7422     		je	.L90
- 8690 71cb 83F80E   		cmpl	$14, %eax
- 8691 71ce 7435     		je	.L91
- 8692 71d0 83F80A   		cmpl	$10, %eax
- 8693 71d3 7546     		jne	.L88
- 8694              	.L89:
-2403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-2404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_128:
-2405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion128) (key->round_keys,
- 8695              		.loc 3 2405 0
- 8696 71d5 488B45F8 		movq	-8(%rbp), %rax
- 8697 71d9 488D95F0 		leaq	-272(%rbp), %rdx
- 8697      FEFFFF
- 8698 71e0 4889D6   		movq	%rdx, %rsi
- 8699 71e3 4889C7   		movq	%rax, %rdi
- 8700 71e6 E881F0FF 		call	KAESBlockCipherVecAesNiEqInvKeyExpansion128
- 8700      FF
-2406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
- 8701              		.loc 3 2407 0
- 8702 71eb EB2E     		jmp	.L88
- 8703              	.L90:
-2408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_192:
-2410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion192) (key->round_keys,
- 8704              		.loc 3 2410 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 288
-
-
- 8705 71ed 488B45F8 		movq	-8(%rbp), %rax
- 8706 71f1 488D95F0 		leaq	-272(%rbp), %rdx
- 8706      FEFFFF
- 8707 71f8 4889D6   		movq	%rdx, %rsi
- 8708 71fb 4889C7   		movq	%rax, %rdi
- 8709 71fe E893F0FF 		call	KAESBlockCipherVecAesNiEqInvKeyExpansion192
- 8709      FF
-2411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
- 8710              		.loc 3 2412 0
- 8711 7203 EB16     		jmp	.L88
- 8712              	.L91:
-2413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_256:
-2415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion256) (key->round_keys,
- 8713              		.loc 3 2415 0
- 8714 7205 488B45F8 		movq	-8(%rbp), %rax
- 8715 7209 488D95F0 		leaq	-272(%rbp), %rdx
- 8715      FEFFFF
- 8716 7210 4889D6   		movq	%rdx, %rsi
- 8717 7213 4889C7   		movq	%rax, %rdi
- 8718 7216 E8A5F0FF 		call	KAESBlockCipherVecAesNiEqInvKeyExpansion256
- 8718      FF
- 8719              	.L88:
- 8720              	.LBE2302:
-2416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
-2418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-2419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 8721              		.loc 3 2420 0
- 8722 721b 8B45F4   		movl	-12(%rbp), %eax
-2421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8723              		.loc 3 2421 0
- 8724 721e C9       		leave
- 8725 721f C3       		ret
- 8726              		.cfi_endproc
- 8727              	.LFE675:
- 8728              		.size	KAESBlockCipherVecAesNiSetDecryptKey, .-KAESBlockCipherVecAesNiSetDecryptKey
- 8729              		.section	.rodata
- 8730              	.LC6:
- 8731 041e 6B657900 		.string	"key"
- 8732              		.text
- 8733              		.type	KAESBlockCipherVecAesNiEncrypt, @function
- 8734              	KAESBlockCipherVecAesNiEncrypt:
- 8735              	.LFB676:
-2422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Encrypt
-2426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Perform an encryption of a single block.  Chained modes and stream
-2428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   cipher modes will call this multiple times.
-2429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Encrypt) (CipherVec state,
-
GAS LISTING /tmp/ccPaCTqg.s 			page 289
-
-
-2433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                 const void * encrypt_key)
-2434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8736              		.loc 3 2434 0
- 8737              		.cfi_startproc
- 8738 7220 55       		pushq	%rbp
- 8739              	.LCFI40:
- 8740              		.cfi_def_cfa_offset 16
- 8741 7221 4889E5   		movq	%rsp, %rbp
- 8742              		.cfi_offset 6, -16
- 8743              	.LCFI41:
- 8744              		.cfi_def_cfa_register 6
- 8745 7224 4883EC30 		subq	$48, %rsp
- 8746 7228 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8746      E0
- 8747 722d 48897DD8 		movq	%rdi, -40(%rbp)
-2435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = encrypt_key;
- 8748              		.loc 3 2435 0
- 8749 7231 488B45D8 		movq	-40(%rbp), %rax
- 8750 7235 488945F8 		movq	%rax, -8(%rbp)
-2436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
- 8751              		.loc 3 2436 0
- 8752 7239 48837DF8 		cmpq	$0, -8(%rbp)
- 8752      00
- 8753 723e 751F     		jne	.L94
- 8754 7240 488D0D00 		leaq	__PRETTY_FUNCTION__.8830(%rip), %rcx
- 8754      000000
- 8755 7247 BA840900 		movl	$2436, %edx
- 8755      00
- 8756 724c 488D3500 		leaq	.LC5(%rip), %rsi
- 8756      000000
- 8757 7253 488D3D00 		leaq	.LC6(%rip), %rdi
- 8757      000000
- 8758 725a E8000000 		call	__assert_fail at PLT
- 8758      00
- 8759              	.L94:
-2437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
- 8760              		.loc 3 2438 0
- 8761 725f 488B45F8 		movq	-8(%rbp), %rax
- 8762 7263 8B80F000 		movl	240(%rax), %eax
- 8762      0000
- 8763 7269 83F80C   		cmpl	$12, %eax
- 8764 726c 7436     		je	.L97
- 8765 726e 83F80E   		cmpl	$14, %eax
- 8766 7271 744E     		je	.L98
- 8767 7273 83F80A   		cmpl	$10, %eax
- 8768 7276 740F     		je	.L96
-2439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00;
- 8769              		.loc 3 2441 0
- 8770 7278 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 8770      00000000 
- 8771 7280 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8771      E0
-2442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8772              		.loc 3 2442 0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 290
-
-
- 8773 7285 EB55     		jmp	.L99
- 8774              	.L96:
-2443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_128:
-2445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_128);
- 8775              		.loc 3 2445 0
- 8776 7287 488B45F8 		movq	-8(%rbp), %rax
- 8777 728b 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8777      E0
- 8778 7290 BE0A0000 		movl	$10, %esi
- 8778      00
- 8779 7295 4889C7   		movq	%rax, %rdi
- 8780 7298 E84DF0FF 		call	KAESBlockCipherVecAesNiCipher
- 8780      FF
- 8781 729d 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8781      E0
-2446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8782              		.loc 3 2446 0
- 8783 72a2 EB38     		jmp	.L99
- 8784              	.L97:
-2447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_192:
-2449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_192);
- 8785              		.loc 3 2449 0
- 8786 72a4 488B45F8 		movq	-8(%rbp), %rax
- 8787 72a8 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8787      E0
- 8788 72ad BE0C0000 		movl	$12, %esi
- 8788      00
- 8789 72b2 4889C7   		movq	%rax, %rdi
- 8790 72b5 E830F0FF 		call	KAESBlockCipherVecAesNiCipher
- 8790      FF
- 8791 72ba 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8791      E0
-2450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8792              		.loc 3 2450 0
- 8793 72bf EB1B     		jmp	.L99
- 8794              	.L98:
-2451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_256:
-2453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_256);
- 8795              		.loc 3 2453 0
- 8796 72c1 488B45F8 		movq	-8(%rbp), %rax
- 8797 72c5 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8797      E0
- 8798 72ca BE0E0000 		movl	$14, %esi
- 8798      00
- 8799 72cf 4889C7   		movq	%rax, %rdi
- 8800 72d2 E813F0FF 		call	KAESBlockCipherVecAesNiCipher
- 8800      FF
- 8801 72d7 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8801      E0
- 8802              	.L99:
-2454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-
GAS LISTING /tmp/ccPaCTqg.s 			page 291
-
-
- 8803              		.loc 3 2457 0
- 8804 72dc 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8804      E0
-2458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8805              		.loc 3 2458 0
- 8806 72e1 C9       		leave
- 8807 72e2 C3       		ret
- 8808              		.cfi_endproc
- 8809              	.LFE676:
- 8810              		.size	KAESBlockCipherVecAesNiEncrypt, .-KAESBlockCipherVecAesNiEncrypt
- 8811              		.type	KAESBlockCipherVecAesNiDecrypt, @function
- 8812              	KAESBlockCipherVecAesNiDecrypt:
- 8813              	.LFB677:
-2459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Decrypt
-2463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Perform a decryption of a single block.  Chained modes and stream
-2465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   cipher modes will call this multiple times.
-2466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Decrypt) (CipherVec state,
-2469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                 const void * decrypt_key)
-2470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8814              		.loc 3 2470 0
- 8815              		.cfi_startproc
- 8816 72e3 55       		pushq	%rbp
- 8817              	.LCFI42:
- 8818              		.cfi_def_cfa_offset 16
- 8819 72e4 4889E5   		movq	%rsp, %rbp
- 8820              		.cfi_offset 6, -16
- 8821              	.LCFI43:
- 8822              		.cfi_def_cfa_register 6
- 8823 72e7 4883EC30 		subq	$48, %rsp
- 8824 72eb 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8824      E0
- 8825 72f0 48897DD8 		movq	%rdi, -40(%rbp)
-2471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = decrypt_key;
- 8826              		.loc 3 2471 0
- 8827 72f4 488B45D8 		movq	-40(%rbp), %rax
- 8828 72f8 488945F8 		movq	%rax, -8(%rbp)
-2472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
- 8829              		.loc 3 2473 0
- 8830 72fc 48837DF8 		cmpq	$0, -8(%rbp)
- 8830      00
- 8831 7301 751F     		jne	.L102
- 8832 7303 488D0D00 		leaq	__PRETTY_FUNCTION__.8851(%rip), %rcx
- 8832      000000
- 8833 730a BAA90900 		movl	$2473, %edx
- 8833      00
- 8834 730f 488D3500 		leaq	.LC5(%rip), %rsi
- 8834      000000
- 8835 7316 488D3D00 		leaq	.LC6(%rip), %rdi
- 8835      000000
- 8836 731d E8000000 		call	__assert_fail at PLT
-
GAS LISTING /tmp/ccPaCTqg.s 			page 292
-
-
- 8836      00
- 8837              	.L102:
-2474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
- 8838              		.loc 3 2475 0
- 8839 7322 488B45F8 		movq	-8(%rbp), %rax
- 8840 7326 8B80F000 		movl	240(%rax), %eax
- 8840      0000
- 8841 732c 83F80C   		cmpl	$12, %eax
- 8842 732f 7436     		je	.L105
- 8843 7331 83F80E   		cmpl	$14, %eax
- 8844 7334 744E     		je	.L106
- 8845 7336 83F80A   		cmpl	$10, %eax
- 8846 7339 740F     		je	.L104
-2476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00; /* for an illegal cipher key schedule just write zeroes */
- 8847              		.loc 3 2478 0
- 8848 733b 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 8848      00000000 
- 8849 7343 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8849      E0
-2479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8850              		.loc 3 2479 0
- 8851 7348 EB55     		jmp	.L107
- 8852              	.L104:
-2480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_128:
-2482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 8853              		.loc 3 2482 0
- 8854 734a 488B45F8 		movq	-8(%rbp), %rax
- 8855 734e 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8855      E0
- 8856 7353 BE0A0000 		movl	$10, %esi
- 8856      00
- 8857 7358 4889C7   		movq	%rax, %rdi
- 8858 735b E83AF6FF 		call	KAESBlockCipherVecAesNiEqInvCipher
- 8858      FF
- 8859 7360 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8859      E0
-2483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_128);
-2484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8860              		.loc 3 2484 0
- 8861 7365 EB38     		jmp	.L107
- 8862              	.L105:
-2485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_192:
-2487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 8863              		.loc 3 2487 0
- 8864 7367 488B45F8 		movq	-8(%rbp), %rax
- 8865 736b 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8865      E0
- 8866 7370 BE0C0000 		movl	$12, %esi
- 8866      00
- 8867 7375 4889C7   		movq	%rax, %rdi
- 8868 7378 E81DF6FF 		call	KAESBlockCipherVecAesNiEqInvCipher
- 8868      FF
-
GAS LISTING /tmp/ccPaCTqg.s 			page 293
-
-
- 8869 737d 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8869      E0
-2488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_192);
-2489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 8870              		.loc 3 2489 0
- 8871 7382 EB1B     		jmp	.L107
- 8872              	.L106:
-2490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_256:
-2492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 8873              		.loc 3 2492 0
- 8874 7384 488B45F8 		movq	-8(%rbp), %rax
- 8875 7388 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8875      E0
- 8876 738d BE0E0000 		movl	$14, %esi
- 8876      00
- 8877 7392 4889C7   		movq	%rax, %rdi
- 8878 7395 E800F6FF 		call	KAESBlockCipherVecAesNiEqInvCipher
- 8878      FF
- 8879 739a 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 8879      E0
- 8880              	.L107:
-2493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_256);
-2494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8881              		.loc 3 2497 0
- 8882 739f 660F6F45 		movdqa	-32(%rbp), %xmm0
- 8882      E0
-2498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8883              		.loc 3 2498 0
- 8884 73a4 C9       		leave
- 8885 73a5 C3       		ret
- 8886              		.cfi_endproc
- 8887              	.LFE677:
- 8888              		.size	KAESBlockCipherVecAesNiDecrypt, .-KAESBlockCipherVecAesNiDecrypt
- 8889              		.section	.rodata
- 8890 0422 00000000 		.align 8
- 8890      0000
- 8891              	.LC7:
- 8892 0428 25733A20 		.string	"%s: level %x a %x, b %x c %x d %x\n"
- 8892      6C657665 
- 8892      6C202578 
- 8892      20612025 
- 8892      782C2062 
- 8893              	.LC8:
- 8894 044b 25733A20 		.string	"%s: failed no AES\n"
- 8894      6661696C 
- 8894      6564206E 
- 8894      6F204145 
- 8894      530A00
- 8895              	.LC9:
- 8896 045e 25733A20 		.string	"%s: failed no SSSE3\n"
- 8896      6661696C 
- 8896      6564206E 
- 8896      6F205353 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 294
-
-
- 8896      5345330A 
- 8897              	.LC10:
- 8898 0473 25733A20 		.string	"%s: failed no SSE3\n"
- 8898      6661696C 
- 8898      6564206E 
- 8898      6F205353 
- 8898      45330A00 
- 8899              	.LC11:
- 8900 0487 25733A20 		.string	"%s: failed no SSE2\n"
- 8900      6661696C 
- 8900      6564206E 
- 8900      6F205353 
- 8900      45320A00 
- 8901              	.LC12:
- 8902 049b 25733A20 		.string	"%s: failed no SSE\n"
- 8902      6661696C 
- 8902      6564206E 
- 8902      6F205353 
- 8902      450A00
- 8903              	.LC13:
- 8904 04ae 25733A20 		.string	"%s: passed\n"
- 8904      70617373 
- 8904      65640A00 
- 8905              		.text
- 8906              		.type	KAESBlockCipherVecAesNiProcessorSupport, @function
- 8907              	KAESBlockCipherVecAesNiProcessorSupport:
- 8908              	.LFB678:
-2499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * MakeProcessorSupport
-2503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Run-time check for support of this particular AES implmentation by
-2505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * checking the flags given via the cpuid instruction.
-2506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** bool AESBCMEMBER(ProcessorSupport) ()
-2509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8909              		.loc 3 2509 0
- 8910              		.cfi_startproc
- 8911 73a6 55       		pushq	%rbp
- 8912              	.LCFI44:
- 8913              		.cfi_def_cfa_offset 16
- 8914 73a7 4889E5   		movq	%rsp, %rbp
- 8915              		.cfi_offset 6, -16
- 8916              	.LCFI45:
- 8917              		.cfi_def_cfa_register 6
- 8918 73aa 53       		pushq	%rbx
- 8919 73ab 4883EC38 		subq	$56, %rsp
-2510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     uint32_t level = 1, a, b, c, d;
- 8920              		.loc 3 2510 0
- 8921 73af C745D801 		movl	$1, -40(%rbp)
- 8921      000000
-2511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     bool ret = true;
- 8922              		.loc 3 2511 0
- 8923 73b6 C645EF01 		movb	$1, -17(%rbp)
-2512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 295
-
-
-2513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __cpuid (level, a, b, c, d);
- 8924              		.loc 3 2513 0
- 8925 73ba 8B45D8   		movl	-40(%rbp), %eax
- 8926              	#APP
- 8927              	# 2513 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 2514              	
- 2515              	    DEBUG_OBJECT(("%s: level %x a %x, b %x c %x d %x\n",__func__, level, a,b,c,d));
- 8928              		cpuid
- 8929              		
- 8930              	# 0 "" 2
- 8931              	#NO_APP
- 8932 73bf 8945DC   		movl	%eax, -36(%rbp)
- 8933 73c2 895DE0   		movl	%ebx, -32(%rbp)
- 8934 73c5 894DE4   		movl	%ecx, -28(%rbp)
- 8935 73c8 8955E8   		movl	%edx, -24(%rbp)
- 8936              		.loc 3 2515 0
- 8937              		.cfi_offset 3, -24
- 8938 73cb E8000000 		call	KDbgWriterGet at PLT
- 8938      00
- 8939 73d0 4885C0   		testq	%rax, %rax
- 8940 73d3 744F     		je	.L111
- 8941 73d5 BF040000 		movl	$4, %edi
- 8941      00
- 8942 73da E8000000 		call	KDbgCondToFlag at PLT
- 8942      00
- 8943 73df 4889C6   		movq	%rax, %rsi
- 8944 73e2 BF100000 		movl	$16, %edi
- 8944      00
- 8945 73e7 E8000000 		call	KDbgTestModConds at PLT
- 8945      00
- 8946 73ec 84C0     		testb	%al, %al
- 8947 73ee 7434     		je	.L111
- 8948 73f0 8B75E4   		movl	-28(%rbp), %esi
- 8949 73f3 8B5DE0   		movl	-32(%rbp), %ebx
- 8950 73f6 8B55DC   		movl	-36(%rbp), %edx
- 8951 73f9 8B45D8   		movl	-40(%rbp), %eax
- 8952 73fc 8B4DE8   		movl	-24(%rbp), %ecx
- 8953 73ff 890C24   		movl	%ecx, (%rsp)
- 8954 7402 4189F1   		movl	%esi, %r9d
- 8955 7405 4189D8   		movl	%ebx, %r8d
- 8956 7408 89D1     		movl	%edx, %ecx
- 8957 740a 89C2     		movl	%eax, %edx
- 8958 740c 488D3500 		leaq	__func__.8875(%rip), %rsi
- 8958      000000
- 8959 7413 488D3D00 		leaq	.LC7(%rip), %rdi
- 8959      000000
- 8960 741a B8000000 		movl	$0, %eax
- 8960      00
- 8961 741f E8000000 		call	KDbgMsg at PLT
- 8961      00
- 8962              	.L111:
-2516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * Only one flag tells whether the AES-NI instructions
-2520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * are implmented in this CPU
-2521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-
GAS LISTING /tmp/ccPaCTqg.s 			page 296
-
-
-2522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if ( ! (c & bit_AES))
- 8963              		.loc 3 2522 0
- 8964 7424 8B45E4   		movl	-28(%rbp), %eax
- 8965 7427 25000000 		andl	$33554432, %eax
- 8965      02
- 8966 742c 85C0     		testl	%eax, %eax
- 8967 742e 7546     		jne	.L112
-2523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no AES\n",__func__));
- 8968              		.loc 3 2524 0
- 8969 7430 E8000000 		call	KDbgWriterGet at PLT
- 8969      00
- 8970 7435 4885C0   		testq	%rax, %rax
- 8971 7438 7433     		je	.L114
- 8972 743a BF040000 		movl	$4, %edi
- 8972      00
- 8973 743f E8000000 		call	KDbgCondToFlag at PLT
- 8973      00
- 8974 7444 4889C6   		movq	%rax, %rsi
- 8975 7447 BF100000 		movl	$16, %edi
- 8975      00
- 8976 744c E8000000 		call	KDbgTestModConds at PLT
- 8976      00
- 8977 7451 84C0     		testb	%al, %al
- 8978 7453 7418     		je	.L114
- 8979 7455 488D3500 		leaq	__func__.8875(%rip), %rsi
- 8979      000000
- 8980 745c 488D3D00 		leaq	.LC8(%rip), %rdi
- 8980      000000
- 8981 7463 B8000000 		movl	$0, %eax
- 8981      00
- 8982 7468 E8000000 		call	KDbgMsg at PLT
- 8982      00
- 8983              	.L114:
-2525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 8984              		.loc 3 2525 0
- 8985 746d C645EF00 		movb	$0, -17(%rbp)
- 8986 7471 E9900100 		jmp	.L115
- 8986      00
- 8987              	.L112:
-2526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     } else
-2527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-2530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * Several flags indicate different levels of SSE
-2532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * instruction implmentation
-2533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      *
-2534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * we require SSE4.1
-2535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      *
-2536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * that dates from 2006 so is most likely good enough
-2537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* if ( ! (c & (bit_SSE4_2))
-2539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-2541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-
GAS LISTING /tmp/ccPaCTqg.s 			page 297
-
-
-2543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else */
-2545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ( ! (c & bit_SSE4_1))
- 8988              		.loc 3 2545 0
- 8989 7476 8B45E4   		movl	-28(%rbp), %eax
- 8990 7479 25000008 		andl	$524288, %eax
- 8990      00
- 8991 747e 85C0     		testl	%eax, %eax
- 8992 7480 7546     		jne	.L116
-2546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
- 8993              		.loc 3 2547 0
- 8994 7482 E8000000 		call	KDbgWriterGet at PLT
- 8994      00
- 8995 7487 4885C0   		testq	%rax, %rax
- 8996 748a 7433     		je	.L118
- 8997 748c BF040000 		movl	$4, %edi
- 8997      00
- 8998 7491 E8000000 		call	KDbgCondToFlag at PLT
- 8998      00
- 8999 7496 4889C6   		movq	%rax, %rsi
- 9000 7499 BF100000 		movl	$16, %edi
- 9000      00
- 9001 749e E8000000 		call	KDbgTestModConds at PLT
- 9001      00
- 9002 74a3 84C0     		testb	%al, %al
- 9003 74a5 7418     		je	.L118
- 9004 74a7 488D3500 		leaq	__func__.8875(%rip), %rsi
- 9004      000000
- 9005 74ae 488D3D00 		leaq	.LC9(%rip), %rdi
- 9005      000000
- 9006 74b5 B8000000 		movl	$0, %eax
- 9006      00
- 9007 74ba E8000000 		call	KDbgMsg at PLT
- 9007      00
- 9008              	.L118:
-2548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 9009              		.loc 3 2548 0
- 9010 74bf C645EF00 		movb	$0, -17(%rbp)
- 9011 74c3 E93E0100 		jmp	.L115
- 9011      00
- 9012              	.L116:
-2549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (c & bit_SSSE3))
- 9013              		.loc 3 2551 0
- 9014 74c8 8B45E4   		movl	-28(%rbp), %eax
- 9015 74cb 25000200 		andl	$512, %eax
- 9015      00
- 9016 74d0 85C0     		testl	%eax, %eax
- 9017 74d2 7546     		jne	.L119
-2552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
- 9018              		.loc 3 2553 0
- 9019 74d4 E8000000 		call	KDbgWriterGet at PLT
- 9019      00
- 9020 74d9 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccPaCTqg.s 			page 298
-
-
- 9021 74dc 7433     		je	.L121
- 9022 74de BF040000 		movl	$4, %edi
- 9022      00
- 9023 74e3 E8000000 		call	KDbgCondToFlag at PLT
- 9023      00
- 9024 74e8 4889C6   		movq	%rax, %rsi
- 9025 74eb BF100000 		movl	$16, %edi
- 9025      00
- 9026 74f0 E8000000 		call	KDbgTestModConds at PLT
- 9026      00
- 9027 74f5 84C0     		testb	%al, %al
- 9028 74f7 7418     		je	.L121
- 9029 74f9 488D3500 		leaq	__func__.8875(%rip), %rsi
- 9029      000000
- 9030 7500 488D3D00 		leaq	.LC9(%rip), %rdi
- 9030      000000
- 9031 7507 B8000000 		movl	$0, %eax
- 9031      00
- 9032 750c E8000000 		call	KDbgMsg at PLT
- 9032      00
- 9033              	.L121:
-2554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 9034              		.loc 3 2554 0
- 9035 7511 C645EF00 		movb	$0, -17(%rbp)
- 9036 7515 E9EC0000 		jmp	.L115
- 9036      00
- 9037              	.L119:
-2555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (c & bit_SSE3))
- 9038              		.loc 3 2557 0
- 9039 751a 8B45E4   		movl	-28(%rbp), %eax
- 9040 751d 83E001   		andl	$1, %eax
- 9041 7520 85C0     		testl	%eax, %eax
- 9042 7522 7546     		jne	.L122
-2558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE3\n",__func__));
- 9043              		.loc 3 2559 0
- 9044 7524 E8000000 		call	KDbgWriterGet at PLT
- 9044      00
- 9045 7529 4885C0   		testq	%rax, %rax
- 9046 752c 7433     		je	.L124
- 9047 752e BF040000 		movl	$4, %edi
- 9047      00
- 9048 7533 E8000000 		call	KDbgCondToFlag at PLT
- 9048      00
- 9049 7538 4889C6   		movq	%rax, %rsi
- 9050 753b BF100000 		movl	$16, %edi
- 9050      00
- 9051 7540 E8000000 		call	KDbgTestModConds at PLT
- 9051      00
- 9052 7545 84C0     		testb	%al, %al
- 9053 7547 7418     		je	.L124
- 9054 7549 488D3500 		leaq	__func__.8875(%rip), %rsi
- 9054      000000
- 9055 7550 488D3D00 		leaq	.LC10(%rip), %rdi
- 9055      000000
-
GAS LISTING /tmp/ccPaCTqg.s 			page 299
-
-
- 9056 7557 B8000000 		movl	$0, %eax
- 9056      00
- 9057 755c E8000000 		call	KDbgMsg at PLT
- 9057      00
- 9058              	.L124:
-2560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 9059              		.loc 3 2560 0
- 9060 7561 C645EF00 		movb	$0, -17(%rbp)
- 9061 7565 E99C0000 		jmp	.L115
- 9061      00
- 9062              	.L122:
-2561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (d & bit_SSE2))
- 9063              		.loc 3 2563 0
- 9064 756a 8B45E8   		movl	-24(%rbp), %eax
- 9065 756d 25000000 		andl	$67108864, %eax
- 9065      04
- 9066 7572 85C0     		testl	%eax, %eax
- 9067 7574 7543     		jne	.L125
-2564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE2\n",__func__));
- 9068              		.loc 3 2565 0
- 9069 7576 E8000000 		call	KDbgWriterGet at PLT
- 9069      00
- 9070 757b 4885C0   		testq	%rax, %rax
- 9071 757e 7433     		je	.L127
- 9072 7580 BF040000 		movl	$4, %edi
- 9072      00
- 9073 7585 E8000000 		call	KDbgCondToFlag at PLT
- 9073      00
- 9074 758a 4889C6   		movq	%rax, %rsi
- 9075 758d BF100000 		movl	$16, %edi
- 9075      00
- 9076 7592 E8000000 		call	KDbgTestModConds at PLT
- 9076      00
- 9077 7597 84C0     		testb	%al, %al
- 9078 7599 7418     		je	.L127
- 9079 759b 488D3500 		leaq	__func__.8875(%rip), %rsi
- 9079      000000
- 9080 75a2 488D3D00 		leaq	.LC11(%rip), %rdi
- 9080      000000
- 9081 75a9 B8000000 		movl	$0, %eax
- 9081      00
- 9082 75ae E8000000 		call	KDbgMsg at PLT
- 9082      00
- 9083              	.L127:
-2566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 9084              		.loc 3 2566 0
- 9085 75b3 C645EF00 		movb	$0, -17(%rbp)
- 9086 75b7 EB4D     		jmp	.L115
- 9087              	.L125:
-2567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (d & bit_SSE))
- 9088              		.loc 3 2569 0
- 9089 75b9 8B45E8   		movl	-24(%rbp), %eax
-
GAS LISTING /tmp/ccPaCTqg.s 			page 300
-
-
- 9090 75bc 25000000 		andl	$33554432, %eax
- 9090      02
- 9091 75c1 85C0     		testl	%eax, %eax
- 9092 75c3 7541     		jne	.L115
-2570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE\n",__func__));
- 9093              		.loc 3 2571 0
- 9094 75c5 E8000000 		call	KDbgWriterGet at PLT
- 9094      00
- 9095 75ca 4885C0   		testq	%rax, %rax
- 9096 75cd 7433     		je	.L129
- 9097 75cf BF040000 		movl	$4, %edi
- 9097      00
- 9098 75d4 E8000000 		call	KDbgCondToFlag at PLT
- 9098      00
- 9099 75d9 4889C6   		movq	%rax, %rsi
- 9100 75dc BF100000 		movl	$16, %edi
- 9100      00
- 9101 75e1 E8000000 		call	KDbgTestModConds at PLT
- 9101      00
- 9102 75e6 84C0     		testb	%al, %al
- 9103 75e8 7418     		je	.L129
- 9104 75ea 488D3500 		leaq	__func__.8875(%rip), %rsi
- 9104      000000
- 9105 75f1 488D3D00 		leaq	.LC12(%rip), %rdi
- 9105      000000
- 9106 75f8 B8000000 		movl	$0, %eax
- 9106      00
- 9107 75fd E8000000 		call	KDbgMsg at PLT
- 9107      00
- 9108              	.L129:
-2572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 9109              		.loc 3 2572 0
- 9110 7602 C645EF00 		movb	$0, -17(%rbp)
- 9111              	.L115:
-2573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: passed\n",__func__));
- 9112              		.loc 3 2575 0
- 9113 7606 E8000000 		call	KDbgWriterGet at PLT
- 9113      00
- 9114 760b 4885C0   		testq	%rax, %rax
- 9115 760e 7433     		je	.L131
- 9116 7610 BF040000 		movl	$4, %edi
- 9116      00
- 9117 7615 E8000000 		call	KDbgCondToFlag at PLT
- 9117      00
- 9118 761a 4889C6   		movq	%rax, %rsi
- 9119 761d BF100000 		movl	$16, %edi
- 9119      00
- 9120 7622 E8000000 		call	KDbgTestModConds at PLT
- 9120      00
- 9121 7627 84C0     		testb	%al, %al
- 9122 7629 7418     		je	.L131
- 9123 762b 488D3500 		leaq	__func__.8875(%rip), %rsi
- 9123      000000
- 9124 7632 488D3D00 		leaq	.LC13(%rip), %rdi
-
GAS LISTING /tmp/ccPaCTqg.s 			page 301
-
-
- 9124      000000
- 9125 7639 B8000000 		movl	$0, %eax
- 9125      00
- 9126 763e E8000000 		call	KDbgMsg at PLT
- 9126      00
- 9127              	.L131:
-2576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ret;
- 9128              		.loc 3 2576 0
- 9129 7643 0FB645EF 		movzbl	-17(%rbp), %eax
-2577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 9130              		.loc 3 2577 0
- 9131 7647 4883C438 		addq	$56, %rsp
- 9132 764b 5B       		popq	%rbx
- 9133 764c C9       		leave
- 9134 764d C3       		ret
- 9135              		.cfi_endproc
- 9136              	.LFE678:
- 9137              		.size	KAESBlockCipherVecAesNiProcessorSupport, .-KAESBlockCipherVecAesNiProcessorSupport
- 9138              		.section	.data.rel.ro.local,"aw", at progbits
- 9139              		.align 32
- 9140              		.type	KAESBlockCipherVecAesNi_vt_, @object
- 9141              		.size	KAESBlockCipherVecAesNi_vt_, 64
- 9142              	KAESBlockCipherVecAesNi_vt_:
- 9143 0000 01000000 		.long	1
- 9144 0004 01000000 		.long	1
- 9145 0008 00000000 		.quad	KAESBlockCipherVecAesNiDestroy
- 9145      00000000 
- 9146 0010 00000000 		.quad	KAESBlockCipherVecAesNiBlockSize
- 9146      00000000 
- 9147 0018 00000000 		.quad	KAESBlockCipherVecAesNiKeySize
- 9147      00000000 
- 9148 0020 00000000 		.quad	KAESBlockCipherVecAesNiSetEncryptKey
- 9148      00000000 
- 9149 0028 00000000 		.quad	KAESBlockCipherVecAesNiSetDecryptKey
- 9149      00000000 
- 9150 0030 00000000 		.quad	KAESBlockCipherVecAesNiEncrypt
- 9150      00000000 
- 9151 0038 00000000 		.quad	KAESBlockCipherVecAesNiDecrypt
- 9151      00000000 
- 9152              		.section	.rodata
- 9153              	.LC14:
- 9154 04ba 25733A20 		.string	"%s: %p\n"
- 9154      25700A00 
- 9155              		.text
- 9156              	.globl KAESBlockCipherVecAesNiMake
- 9157              		.type	KAESBlockCipherVecAesNiMake, @function
- 9158              	KAESBlockCipherVecAesNiMake:
- 9159              	.LFB679:
-2578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Init
-2582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Initialize the fields of this object.  The derived class will call this
-2584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   during it's initialization.
-2585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * self      object to initialze
-
GAS LISTING /tmp/ccPaCTqg.s 			page 302
-
-
-2587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * vt        the virtual table of the derived class
-2588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * mgr       the cipher manager that is the construction factory block cipher
-2589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           objects hold references to the manager while the manager merely
-2590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           points at the block ciphers when all block ciphers are destroyed
-2591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           the manager loses its references and it too can be destroyed if not
-2592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           held elsewhere
-2593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * name      ASCIZ c-string the name of this class
-2594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-2596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** KBlockCipherVec_vt_v1 AESBCMEMBER(_vt_) = 
-2597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 1, 1 },
-2599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Destroy),
-2601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(BlockSize),
-2602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeySize),
-2603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(SetEncryptKey),
-2604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(SetDecryptKey),
-2605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Encrypt),
-2606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Decrypt)
-2607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
-2608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Make
-2612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Create a new AES Block Cipher object.
-2614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The processor is checked to see if this particular version is supported on
-2615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * this particular CPU.
-2616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(Make) (KBlockCipher ** new_obj)
-2618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 9160              		.loc 3 2618 0
- 9161              		.cfi_startproc
- 9162 764e 55       		pushq	%rbp
- 9163              	.LCFI46:
- 9164              		.cfi_def_cfa_offset 16
- 9165 764f 4889E5   		movq	%rsp, %rbp
- 9166              		.cfi_offset 6, -16
- 9167              	.LCFI47:
- 9168              		.cfi_def_cfa_register 6
- 9169 7652 4883EC20 		subq	$32, %rsp
- 9170 7656 48897DE8 		movq	%rdi, -24(%rbp)
-2619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: %p\n",__func__,new_obj));
- 9171              		.loc 3 2621 0
- 9172 765a E8000000 		call	KDbgWriterGet at PLT
- 9172      00
- 9173 765f 4885C0   		testq	%rax, %rax
- 9174 7662 743A     		je	.L135
- 9175 7664 BF040000 		movl	$4, %edi
- 9175      00
- 9176 7669 E8000000 		call	KDbgCondToFlag at PLT
- 9176      00
- 9177 766e 4889C6   		movq	%rax, %rsi
- 9178 7671 BF100000 		movl	$16, %edi
-
GAS LISTING /tmp/ccPaCTqg.s 			page 303
-
-
- 9178      00
- 9179 7676 E8000000 		call	KDbgTestModConds at PLT
- 9179      00
- 9180 767b 84C0     		testb	%al, %al
- 9181 767d 741F     		je	.L135
- 9182 767f 488B45E8 		movq	-24(%rbp), %rax
- 9183 7683 4889C2   		movq	%rax, %rdx
- 9184 7686 488D3500 		leaq	__func__.8978(%rip), %rsi
- 9184      000000
- 9185 768d 488D3D00 		leaq	.LC14(%rip), %rdi
- 9185      000000
- 9186 7694 B8000000 		movl	$0, %eax
- 9186      00
- 9187 7699 E8000000 		call	KDbgMsg at PLT
- 9187      00
- 9188              	.L135:
-2622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* Check parameter first */
-2624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (new_obj == NULL)
- 9189              		.loc 3 2624 0
- 9190 769e 48837DE8 		cmpq	$0, -24(%rbp)
- 9190      00
- 9191 76a3 7522     		jne	.L136
-2625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
- 9192              		.loc 3 2625 0
- 9193 76a5 B9410A00 		movl	$2625, %ecx
- 9193      00
- 9194 76aa 488D1500 		leaq	__func__.8978(%rip), %rdx
- 9194      000000
- 9195 76b1 488D3500 		leaq	.LC5(%rip), %rsi
- 9195      000000
- 9196 76b8 BF878F00 		movl	$-2030006393, %edi
- 9196      87
- 9197 76bd E8000000 		call	SetRCFileFuncLine at PLT
- 9197      00
- 9198 76c2 8945FC   		movl	%eax, -4(%rbp)
- 9199 76c5 EB53     		jmp	.L137
- 9200              	.L136:
-2626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else
-2628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         *new_obj = NULL;
- 9201              		.loc 3 2629 0
- 9202 76c7 488B45E8 		movq	-24(%rbp), %rax
- 9203 76cb 48C70000 		movq	$0, (%rax)
- 9203      000000
-2630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* check for processor support of this flavor */
-2632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ( ! AESBCMEMBER(ProcessorSupport)())
- 9204              		.loc 3 2632 0
- 9205 76d2 B8000000 		movl	$0, %eax
- 9205      00
- 9206 76d7 E8CAFCFF 		call	KAESBlockCipherVecAesNiProcessorSupport
- 9206      FF
- 9207 76dc 83F001   		xorl	$1, %eax
- 9208 76df 84C0     		testb	%al, %al
- 9209 76e1 7422     		je	.L138
-
GAS LISTING /tmp/ccPaCTqg.s 			page 304
-
-
-2633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
- 9210              		.loc 3 2633 0
- 9211 76e3 B9490A00 		movl	$2633, %ecx
- 9211      00
- 9212 76e8 488D1500 		leaq	__func__.8978(%rip), %rdx
- 9212      000000
- 9213 76ef 488D3500 		leaq	.LC5(%rip), %rsi
- 9213      000000
- 9214 76f6 BF038500 		movl	$-2030009085, %edi
- 9214      87
- 9215 76fb E8000000 		call	SetRCFileFuncLine at PLT
- 9215      00
- 9216 7700 8945FC   		movl	%eax, -4(%rbp)
- 9217 7703 EB15     		jmp	.L137
- 9218              	.L138:
-2634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else
-2636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-2637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = 0;
- 9219              		.loc 3 2637 0
- 9220 7705 C745FC00 		movl	$0, -4(%rbp)
- 9220      000000
-2638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             *new_obj = (KBlockCipher*)&(AESBCMEMBER(_vt_));
- 9221              		.loc 3 2638 0
- 9222 770c 488D1500 		leaq	KAESBlockCipherVecAesNi_vt_(%rip), %rdx
- 9222      000000
- 9223 7713 488B45E8 		movq	-24(%rbp), %rax
- 9224 7717 488910   		movq	%rdx, (%rax)
- 9225              	.L137:
-2639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-2640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 9226              		.loc 3 2641 0
- 9227 771a 8B45FC   		movl	-4(%rbp), %eax
-2642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 9228              		.loc 3 2642 0
- 9229 771d C9       		leave
- 9230 771e C3       		ret
- 9231              		.cfi_endproc
- 9232              	.LFE679:
- 9233              		.size	KAESBlockCipherVecAesNiMake, .-KAESBlockCipherVecAesNiMake
- 9234              		.section	.rodata
- 9235 04c2 00000000 		.align 16
- 9235      00000000 
- 9235      00000000 
- 9235      0000
- 9236              		.type	__func__.8978, @object
- 9237              		.size	__func__.8978, 28
- 9238              	__func__.8978:
- 9239 04d0 4B414553 		.string	"KAESBlockCipherVecAesNiMake"
- 9239      426C6F63 
- 9239      6B436970 
- 9239      68657256 
- 9239      65634165 
- 9240 04ec 00000000 		.align 16
- 9241              		.type	__PRETTY_FUNCTION__.8979, @object
- 9242              		.size	__PRETTY_FUNCTION__.8979, 28
-
GAS LISTING /tmp/ccPaCTqg.s 			page 305
-
-
- 9243              	__PRETTY_FUNCTION__.8979:
- 9244 04f0 4B414553 		.string	"KAESBlockCipherVecAesNiMake"
- 9244      426C6F63 
- 9244      6B436970 
- 9244      68657256 
- 9244      65634165 
- 9245 050c 00000000 		.align 32
- 9245      00000000 
- 9245      00000000 
- 9245      00000000 
- 9245      00000000 
- 9246              		.type	__func__.8875, @object
- 9247              		.size	__func__.8875, 40
- 9248              	__func__.8875:
- 9249 0520 4B414553 		.string	"KAESBlockCipherVecAesNiProcessorSupport"
- 9249      426C6F63 
- 9249      6B436970 
- 9249      68657256 
- 9249      65634165 
- 9250 0548 00000000 		.align 16
- 9250      00000000 
- 9251              		.type	__PRETTY_FUNCTION__.8851, @object
- 9252              		.size	__PRETTY_FUNCTION__.8851, 31
- 9253              	__PRETTY_FUNCTION__.8851:
- 9254 0550 4B414553 		.string	"KAESBlockCipherVecAesNiDecrypt"
- 9254      426C6F63 
- 9254      6B436970 
- 9254      68657256 
- 9254      65634165 
- 9255 056f 00       		.align 16
- 9256              		.type	__PRETTY_FUNCTION__.8830, @object
- 9257              		.size	__PRETTY_FUNCTION__.8830, 31
- 9258              	__PRETTY_FUNCTION__.8830:
- 9259 0570 4B414553 		.string	"KAESBlockCipherVecAesNiEncrypt"
- 9259      426C6F63 
- 9259      6B436970 
- 9259      68657256 
- 9259      65634165 
- 9260 058f 00000000 		.align 32
- 9260      00000000 
- 9260      00000000 
- 9260      00000000 
- 9260      00
- 9261              		.type	__func__.8794, @object
- 9262              		.size	__func__.8794, 37
- 9263              	__func__.8794:
- 9264 05a0 4B414553 		.string	"KAESBlockCipherVecAesNiSetEncryptKey"
- 9264      426C6F63 
- 9264      6B436970 
- 9264      68657256 
- 9264      65634165 
- 9265 05c5 00000000 		.align 32
- 9265      00000000 
- 9265      00000000 
- 9265      00000000 
- 9265      00000000 
- 9266              		.type	__PRETTY_FUNCTION__.8793, @object
-
GAS LISTING /tmp/ccPaCTqg.s 			page 306
-
-
- 9267              		.size	__PRETTY_FUNCTION__.8793, 37
- 9268              	__PRETTY_FUNCTION__.8793:
- 9269 05e0 4B414553 		.string	"KAESBlockCipherVecAesNiSetEncryptKey"
- 9269      426C6F63 
- 9269      6B436970 
- 9269      68657256 
- 9269      65634165 
- 9270 0605 00000000 		.align 16
- 9270      00000000 
- 9270      000000
- 9271              		.type	mask.8002, @object
- 9272              		.size	mask.8002, 16
- 9273              	mask.8002:
- 9274 0610 FF       		.byte	-1
- 9275 0611 FF       		.byte	-1
- 9276 0612 FF       		.byte	-1
- 9277 0613 FF       		.byte	-1
- 9278 0614 00       		.byte	0
- 9279 0615 01       		.byte	1
- 9280 0616 02       		.byte	2
- 9281 0617 03       		.byte	3
- 9282 0618 04       		.byte	4
- 9283 0619 05       		.byte	5
- 9284 061a 06       		.byte	6
- 9285 061b 07       		.byte	7
- 9286 061c 08       		.byte	8
- 9287 061d 09       		.byte	9
- 9288 061e 0A       		.byte	10
- 9289 061f 0B       		.byte	11
- 9290              		.align 16
- 9291              		.type	mask.8011, @object
- 9292              		.size	mask.8011, 16
- 9293              	mask.8011:
- 9294 0620 08       		.byte	8
- 9295 0621 09       		.byte	9
- 9296 0622 0A       		.byte	10
- 9297 0623 0B       		.byte	11
- 9298 0624 0C       		.byte	12
- 9299 0625 0D       		.byte	13
- 9300 0626 0E       		.byte	14
- 9301 0627 0F       		.byte	15
- 9302 0628 FF       		.byte	-1
- 9303 0629 FF       		.byte	-1
- 9304 062a FF       		.byte	-1
- 9305 062b FF       		.byte	-1
- 9306 062c FF       		.byte	-1
- 9307 062d FF       		.byte	-1
- 9308 062e FF       		.byte	-1
- 9309 062f FF       		.byte	-1
- 9310              		.text
- 9311              	.Letext0:
- 9312              		.section	.debug_loc,"", at progbits
- 9313              	.Ldebug_loc0:
- 9314              	.LLST0:
- 9315 0000 00000000 		.quad	.LFB580-.Ltext0
- 9315      00000000 
- 9316 0008 01000000 		.quad	.LCFI0-.Ltext0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 307
-
-
- 9316      00000000 
- 9317 0010 0200     		.value	0x2
- 9318 0012 77       		.byte	0x77
- 9319 0013 08       		.sleb128 8
- 9320 0014 01000000 		.quad	.LCFI0-.Ltext0
- 9320      00000000 
- 9321 001c 04000000 		.quad	.LCFI1-.Ltext0
- 9321      00000000 
- 9322 0024 0200     		.value	0x2
- 9323 0026 77       		.byte	0x77
- 9324 0027 10       		.sleb128 16
- 9325 0028 04000000 		.quad	.LCFI1-.Ltext0
- 9325      00000000 
- 9326 0030 0B000000 		.quad	.LFE580-.Ltext0
- 9326      00000000 
- 9327 0038 0200     		.value	0x2
- 9328 003a 76       		.byte	0x76
- 9329 003b 10       		.sleb128 16
- 9330 003c 00000000 		.quad	0x0
- 9330      00000000 
- 9331 0044 00000000 		.quad	0x0
- 9331      00000000 
- 9332              	.LLST1:
- 9333 004c 0B000000 		.quad	.LFB581-.Ltext0
- 9333      00000000 
- 9334 0054 0C000000 		.quad	.LCFI2-.Ltext0
- 9334      00000000 
- 9335 005c 0200     		.value	0x2
- 9336 005e 77       		.byte	0x77
- 9337 005f 08       		.sleb128 8
- 9338 0060 0C000000 		.quad	.LCFI2-.Ltext0
- 9338      00000000 
- 9339 0068 0F000000 		.quad	.LCFI3-.Ltext0
- 9339      00000000 
- 9340 0070 0200     		.value	0x2
- 9341 0072 77       		.byte	0x77
- 9342 0073 10       		.sleb128 16
- 9343 0074 0F000000 		.quad	.LCFI3-.Ltext0
- 9343      00000000 
- 9344 007c 16000000 		.quad	.LFE581-.Ltext0
- 9344      00000000 
- 9345 0084 0200     		.value	0x2
- 9346 0086 76       		.byte	0x76
- 9347 0087 10       		.sleb128 16
- 9348 0088 00000000 		.quad	0x0
- 9348      00000000 
- 9349 0090 00000000 		.quad	0x0
- 9349      00000000 
- 9350              	.LLST2:
- 9351 0098 16000000 		.quad	.LFB582-.Ltext0
- 9351      00000000 
- 9352 00a0 17000000 		.quad	.LCFI4-.Ltext0
- 9352      00000000 
- 9353 00a8 0200     		.value	0x2
- 9354 00aa 77       		.byte	0x77
- 9355 00ab 08       		.sleb128 8
- 9356 00ac 17000000 		.quad	.LCFI4-.Ltext0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 308
-
-
- 9356      00000000 
- 9357 00b4 1A000000 		.quad	.LCFI5-.Ltext0
- 9357      00000000 
- 9358 00bc 0200     		.value	0x2
- 9359 00be 77       		.byte	0x77
- 9360 00bf 10       		.sleb128 16
- 9361 00c0 1A000000 		.quad	.LCFI5-.Ltext0
- 9361      00000000 
- 9362 00c8 21000000 		.quad	.LFE582-.Ltext0
- 9362      00000000 
- 9363 00d0 0200     		.value	0x2
- 9364 00d2 76       		.byte	0x76
- 9365 00d3 10       		.sleb128 16
- 9366 00d4 00000000 		.quad	0x0
- 9366      00000000 
- 9367 00dc 00000000 		.quad	0x0
- 9367      00000000 
- 9368              	.LLST3:
- 9369 00e4 21000000 		.quad	.LFB583-.Ltext0
- 9369      00000000 
- 9370 00ec 22000000 		.quad	.LCFI6-.Ltext0
- 9370      00000000 
- 9371 00f4 0200     		.value	0x2
- 9372 00f6 77       		.byte	0x77
- 9373 00f7 08       		.sleb128 8
- 9374 00f8 22000000 		.quad	.LCFI6-.Ltext0
- 9374      00000000 
- 9375 0100 25000000 		.quad	.LCFI7-.Ltext0
- 9375      00000000 
- 9376 0108 0200     		.value	0x2
- 9377 010a 77       		.byte	0x77
- 9378 010b 10       		.sleb128 16
- 9379 010c 25000000 		.quad	.LCFI7-.Ltext0
- 9379      00000000 
- 9380 0114 2C000000 		.quad	.LFE583-.Ltext0
- 9380      00000000 
- 9381 011c 0200     		.value	0x2
- 9382 011e 76       		.byte	0x76
- 9383 011f 10       		.sleb128 16
- 9384 0120 00000000 		.quad	0x0
- 9384      00000000 
- 9385 0128 00000000 		.quad	0x0
- 9385      00000000 
- 9386              	.LLST4:
- 9387 0130 2C000000 		.quad	.LFB585-.Ltext0
- 9387      00000000 
- 9388 0138 2D000000 		.quad	.LCFI8-.Ltext0
- 9388      00000000 
- 9389 0140 0200     		.value	0x2
- 9390 0142 77       		.byte	0x77
- 9391 0143 08       		.sleb128 8
- 9392 0144 2D000000 		.quad	.LCFI8-.Ltext0
- 9392      00000000 
- 9393 014c 30000000 		.quad	.LCFI9-.Ltext0
- 9393      00000000 
- 9394 0154 0200     		.value	0x2
- 9395 0156 77       		.byte	0x77
-
GAS LISTING /tmp/ccPaCTqg.s 			page 309
-
-
- 9396 0157 10       		.sleb128 16
- 9397 0158 30000000 		.quad	.LCFI9-.Ltext0
- 9397      00000000 
- 9398 0160 37000000 		.quad	.LFE585-.Ltext0
- 9398      00000000 
- 9399 0168 0200     		.value	0x2
- 9400 016a 76       		.byte	0x76
- 9401 016b 10       		.sleb128 16
- 9402 016c 00000000 		.quad	0x0
- 9402      00000000 
- 9403 0174 00000000 		.quad	0x0
- 9403      00000000 
- 9404              	.LLST5:
- 9405 017c 37000000 		.quad	.LFB602-.Ltext0
- 9405      00000000 
- 9406 0184 38000000 		.quad	.LCFI10-.Ltext0
- 9406      00000000 
- 9407 018c 0200     		.value	0x2
- 9408 018e 77       		.byte	0x77
- 9409 018f 08       		.sleb128 8
- 9410 0190 38000000 		.quad	.LCFI10-.Ltext0
- 9410      00000000 
- 9411 0198 3B000000 		.quad	.LCFI11-.Ltext0
- 9411      00000000 
- 9412 01a0 0200     		.value	0x2
- 9413 01a2 77       		.byte	0x77
- 9414 01a3 10       		.sleb128 16
- 9415 01a4 3B000000 		.quad	.LCFI11-.Ltext0
- 9415      00000000 
- 9416 01ac 4B000000 		.quad	.LFE602-.Ltext0
- 9416      00000000 
- 9417 01b4 0200     		.value	0x2
- 9418 01b6 76       		.byte	0x76
- 9419 01b7 10       		.sleb128 16
- 9420 01b8 00000000 		.quad	0x0
- 9420      00000000 
- 9421 01c0 00000000 		.quad	0x0
- 9421      00000000 
- 9422              	.LLST6:
- 9423 01c8 4B000000 		.quad	.LFB656-.Ltext0
- 9423      00000000 
- 9424 01d0 4C000000 		.quad	.LCFI12-.Ltext0
- 9424      00000000 
- 9425 01d8 0200     		.value	0x2
- 9426 01da 77       		.byte	0x77
- 9427 01db 08       		.sleb128 8
- 9428 01dc 4C000000 		.quad	.LCFI12-.Ltext0
- 9428      00000000 
- 9429 01e4 4F000000 		.quad	.LCFI13-.Ltext0
- 9429      00000000 
- 9430 01ec 0200     		.value	0x2
- 9431 01ee 77       		.byte	0x77
- 9432 01ef 10       		.sleb128 16
- 9433 01f0 4F000000 		.quad	.LCFI13-.Ltext0
- 9433      00000000 
- 9434 01f8 C3180000 		.quad	.LFE656-.Ltext0
- 9434      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 310
-
-
- 9435 0200 0200     		.value	0x2
- 9436 0202 76       		.byte	0x76
- 9437 0203 10       		.sleb128 16
- 9438 0204 00000000 		.quad	0x0
- 9438      00000000 
- 9439 020c 00000000 		.quad	0x0
- 9439      00000000 
- 9440              	.LLST7:
- 9441 0214 C3180000 		.quad	.LFB657-.Ltext0
- 9441      00000000 
- 9442 021c C4180000 		.quad	.LCFI14-.Ltext0
- 9442      00000000 
- 9443 0224 0200     		.value	0x2
- 9444 0226 77       		.byte	0x77
- 9445 0227 08       		.sleb128 8
- 9446 0228 C4180000 		.quad	.LCFI14-.Ltext0
- 9446      00000000 
- 9447 0230 C7180000 		.quad	.LCFI15-.Ltext0
- 9447      00000000 
- 9448 0238 0200     		.value	0x2
- 9449 023a 77       		.byte	0x77
- 9450 023b 10       		.sleb128 16
- 9451 023c C7180000 		.quad	.LCFI15-.Ltext0
- 9451      00000000 
- 9452 0244 00400000 		.quad	.LFE657-.Ltext0
- 9452      00000000 
- 9453 024c 0200     		.value	0x2
- 9454 024e 76       		.byte	0x76
- 9455 024f 10       		.sleb128 16
- 9456 0250 00000000 		.quad	0x0
- 9456      00000000 
- 9457 0258 00000000 		.quad	0x0
- 9457      00000000 
- 9458              	.LLST8:
- 9459 0260 00400000 		.quad	.LFB658-.Ltext0
- 9459      00000000 
- 9460 0268 01400000 		.quad	.LCFI16-.Ltext0
- 9460      00000000 
- 9461 0270 0200     		.value	0x2
- 9462 0272 77       		.byte	0x77
- 9463 0273 08       		.sleb128 8
- 9464 0274 01400000 		.quad	.LCFI16-.Ltext0
- 9464      00000000 
- 9465 027c 04400000 		.quad	.LCFI17-.Ltext0
- 9465      00000000 
- 9466 0284 0200     		.value	0x2
- 9467 0286 77       		.byte	0x77
- 9468 0287 10       		.sleb128 16
- 9469 0288 04400000 		.quad	.LCFI17-.Ltext0
- 9469      00000000 
- 9470 0290 B6610000 		.quad	.LFE658-.Ltext0
- 9470      00000000 
- 9471 0298 0200     		.value	0x2
- 9472 029a 76       		.byte	0x76
- 9473 029b 10       		.sleb128 16
- 9474 029c 00000000 		.quad	0x0
- 9474      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 311
-
-
- 9475 02a4 00000000 		.quad	0x0
- 9475      00000000 
- 9476              	.LLST9:
- 9477 02ac B6610000 		.quad	.LFB659-.Ltext0
- 9477      00000000 
- 9478 02b4 B7610000 		.quad	.LCFI18-.Ltext0
- 9478      00000000 
- 9479 02bc 0200     		.value	0x2
- 9480 02be 77       		.byte	0x77
- 9481 02bf 08       		.sleb128 8
- 9482 02c0 B7610000 		.quad	.LCFI18-.Ltext0
- 9482      00000000 
- 9483 02c8 BA610000 		.quad	.LCFI19-.Ltext0
- 9483      00000000 
- 9484 02d0 0200     		.value	0x2
- 9485 02d2 77       		.byte	0x77
- 9486 02d3 10       		.sleb128 16
- 9487 02d4 BA610000 		.quad	.LCFI19-.Ltext0
- 9487      00000000 
- 9488 02dc 6C620000 		.quad	.LFE659-.Ltext0
- 9488      00000000 
- 9489 02e4 0200     		.value	0x2
- 9490 02e6 76       		.byte	0x76
- 9491 02e7 10       		.sleb128 16
- 9492 02e8 00000000 		.quad	0x0
- 9492      00000000 
- 9493 02f0 00000000 		.quad	0x0
- 9493      00000000 
- 9494              	.LLST10:
- 9495 02f8 6C620000 		.quad	.LFB660-.Ltext0
- 9495      00000000 
- 9496 0300 6D620000 		.quad	.LCFI20-.Ltext0
- 9496      00000000 
- 9497 0308 0200     		.value	0x2
- 9498 030a 77       		.byte	0x77
- 9499 030b 08       		.sleb128 8
- 9500 030c 6D620000 		.quad	.LCFI20-.Ltext0
- 9500      00000000 
- 9501 0314 70620000 		.quad	.LCFI21-.Ltext0
- 9501      00000000 
- 9502 031c 0200     		.value	0x2
- 9503 031e 77       		.byte	0x77
- 9504 031f 10       		.sleb128 16
- 9505 0320 70620000 		.quad	.LCFI21-.Ltext0
- 9505      00000000 
- 9506 0328 96620000 		.quad	.LFE660-.Ltext0
- 9506      00000000 
- 9507 0330 0200     		.value	0x2
- 9508 0332 76       		.byte	0x76
- 9509 0333 10       		.sleb128 16
- 9510 0334 00000000 		.quad	0x0
- 9510      00000000 
- 9511 033c 00000000 		.quad	0x0
- 9511      00000000 
- 9512              	.LLST11:
- 9513 0344 96620000 		.quad	.LFB661-.Ltext0
- 9513      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 312
-
-
- 9514 034c 97620000 		.quad	.LCFI22-.Ltext0
- 9514      00000000 
- 9515 0354 0200     		.value	0x2
- 9516 0356 77       		.byte	0x77
- 9517 0357 08       		.sleb128 8
- 9518 0358 97620000 		.quad	.LCFI22-.Ltext0
- 9518      00000000 
- 9519 0360 9A620000 		.quad	.LCFI23-.Ltext0
- 9519      00000000 
- 9520 0368 0200     		.value	0x2
- 9521 036a 77       		.byte	0x77
- 9522 036b 10       		.sleb128 16
- 9523 036c 9A620000 		.quad	.LCFI23-.Ltext0
- 9523      00000000 
- 9524 0374 C0620000 		.quad	.LFE661-.Ltext0
- 9524      00000000 
- 9525 037c 0200     		.value	0x2
- 9526 037e 76       		.byte	0x76
- 9527 037f 10       		.sleb128 16
- 9528 0380 00000000 		.quad	0x0
- 9528      00000000 
- 9529 0388 00000000 		.quad	0x0
- 9529      00000000 
- 9530              	.LLST12:
- 9531 0390 C0620000 		.quad	.LFB662-.Ltext0
- 9531      00000000 
- 9532 0398 C1620000 		.quad	.LCFI24-.Ltext0
- 9532      00000000 
- 9533 03a0 0200     		.value	0x2
- 9534 03a2 77       		.byte	0x77
- 9535 03a3 08       		.sleb128 8
- 9536 03a4 C1620000 		.quad	.LCFI24-.Ltext0
- 9536      00000000 
- 9537 03ac C4620000 		.quad	.LCFI25-.Ltext0
- 9537      00000000 
- 9538 03b4 0200     		.value	0x2
- 9539 03b6 77       		.byte	0x77
- 9540 03b7 10       		.sleb128 16
- 9541 03b8 C4620000 		.quad	.LCFI25-.Ltext0
- 9541      00000000 
- 9542 03c0 EA620000 		.quad	.LFE662-.Ltext0
- 9542      00000000 
- 9543 03c8 0200     		.value	0x2
- 9544 03ca 76       		.byte	0x76
- 9545 03cb 10       		.sleb128 16
- 9546 03cc 00000000 		.quad	0x0
- 9546      00000000 
- 9547 03d4 00000000 		.quad	0x0
- 9547      00000000 
- 9548              	.LLST13:
- 9549 03dc EA620000 		.quad	.LFB666-.Ltext0
- 9549      00000000 
- 9550 03e4 EB620000 		.quad	.LCFI26-.Ltext0
- 9550      00000000 
- 9551 03ec 0200     		.value	0x2
- 9552 03ee 77       		.byte	0x77
- 9553 03ef 08       		.sleb128 8
-
GAS LISTING /tmp/ccPaCTqg.s 			page 313
-
-
- 9554 03f0 EB620000 		.quad	.LCFI26-.Ltext0
- 9554      00000000 
- 9555 03f8 EE620000 		.quad	.LCFI27-.Ltext0
- 9555      00000000 
- 9556 0400 0200     		.value	0x2
- 9557 0402 77       		.byte	0x77
- 9558 0403 10       		.sleb128 16
- 9559 0404 EE620000 		.quad	.LCFI27-.Ltext0
- 9559      00000000 
- 9560 040c 9A690000 		.quad	.LFE666-.Ltext0
- 9560      00000000 
- 9561 0414 0200     		.value	0x2
- 9562 0416 76       		.byte	0x76
- 9563 0417 10       		.sleb128 16
- 9564 0418 00000000 		.quad	0x0
- 9564      00000000 
- 9565 0420 00000000 		.quad	0x0
- 9565      00000000 
- 9566              	.LLST14:
- 9567 0428 9A690000 		.quad	.LFB670-.Ltext0
- 9567      00000000 
- 9568 0430 9B690000 		.quad	.LCFI28-.Ltext0
- 9568      00000000 
- 9569 0438 0200     		.value	0x2
- 9570 043a 77       		.byte	0x77
- 9571 043b 08       		.sleb128 8
- 9572 043c 9B690000 		.quad	.LCFI28-.Ltext0
- 9572      00000000 
- 9573 0444 9E690000 		.quad	.LCFI29-.Ltext0
- 9573      00000000 
- 9574 044c 0200     		.value	0x2
- 9575 044e 77       		.byte	0x77
- 9576 044f 10       		.sleb128 16
- 9577 0450 9E690000 		.quad	.LCFI29-.Ltext0
- 9577      00000000 
- 9578 0458 54700000 		.quad	.LFE670-.Ltext0
- 9578      00000000 
- 9579 0460 0200     		.value	0x2
- 9580 0462 76       		.byte	0x76
- 9581 0463 10       		.sleb128 16
- 9582 0464 00000000 		.quad	0x0
- 9582      00000000 
- 9583 046c 00000000 		.quad	0x0
- 9583      00000000 
- 9584              	.LLST15:
- 9585 0474 54700000 		.quad	.LFB671-.Ltext0
- 9585      00000000 
- 9586 047c 55700000 		.quad	.LCFI30-.Ltext0
- 9586      00000000 
- 9587 0484 0200     		.value	0x2
- 9588 0486 77       		.byte	0x77
- 9589 0487 08       		.sleb128 8
- 9590 0488 55700000 		.quad	.LCFI30-.Ltext0
- 9590      00000000 
- 9591 0490 58700000 		.quad	.LCFI31-.Ltext0
- 9591      00000000 
- 9592 0498 0200     		.value	0x2
-
GAS LISTING /tmp/ccPaCTqg.s 			page 314
-
-
- 9593 049a 77       		.byte	0x77
- 9594 049b 10       		.sleb128 16
- 9595 049c 58700000 		.quad	.LCFI31-.Ltext0
- 9595      00000000 
- 9596 04a4 5E700000 		.quad	.LFE671-.Ltext0
- 9596      00000000 
- 9597 04ac 0200     		.value	0x2
- 9598 04ae 76       		.byte	0x76
- 9599 04af 10       		.sleb128 16
- 9600 04b0 00000000 		.quad	0x0
- 9600      00000000 
- 9601 04b8 00000000 		.quad	0x0
- 9601      00000000 
- 9602              	.LLST16:
- 9603 04c0 5E700000 		.quad	.LFB672-.Ltext0
- 9603      00000000 
- 9604 04c8 5F700000 		.quad	.LCFI32-.Ltext0
- 9604      00000000 
- 9605 04d0 0200     		.value	0x2
- 9606 04d2 77       		.byte	0x77
- 9607 04d3 08       		.sleb128 8
- 9608 04d4 5F700000 		.quad	.LCFI32-.Ltext0
- 9608      00000000 
- 9609 04dc 62700000 		.quad	.LCFI33-.Ltext0
- 9609      00000000 
- 9610 04e4 0200     		.value	0x2
- 9611 04e6 77       		.byte	0x77
- 9612 04e7 10       		.sleb128 16
- 9613 04e8 62700000 		.quad	.LCFI33-.Ltext0
- 9613      00000000 
- 9614 04f0 69700000 		.quad	.LFE672-.Ltext0
- 9614      00000000 
- 9615 04f8 0200     		.value	0x2
- 9616 04fa 76       		.byte	0x76
- 9617 04fb 10       		.sleb128 16
- 9618 04fc 00000000 		.quad	0x0
- 9618      00000000 
- 9619 0504 00000000 		.quad	0x0
- 9619      00000000 
- 9620              	.LLST17:
- 9621 050c 69700000 		.quad	.LFB673-.Ltext0
- 9621      00000000 
- 9622 0514 6A700000 		.quad	.LCFI34-.Ltext0
- 9622      00000000 
- 9623 051c 0200     		.value	0x2
- 9624 051e 77       		.byte	0x77
- 9625 051f 08       		.sleb128 8
- 9626 0520 6A700000 		.quad	.LCFI34-.Ltext0
- 9626      00000000 
- 9627 0528 6D700000 		.quad	.LCFI35-.Ltext0
- 9627      00000000 
- 9628 0530 0200     		.value	0x2
- 9629 0532 77       		.byte	0x77
- 9630 0533 10       		.sleb128 16
- 9631 0534 6D700000 		.quad	.LCFI35-.Ltext0
- 9631      00000000 
- 9632 053c 74700000 		.quad	.LFE673-.Ltext0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 315
-
-
- 9632      00000000 
- 9633 0544 0200     		.value	0x2
- 9634 0546 76       		.byte	0x76
- 9635 0547 10       		.sleb128 16
- 9636 0548 00000000 		.quad	0x0
- 9636      00000000 
- 9637 0550 00000000 		.quad	0x0
- 9637      00000000 
- 9638              	.LLST18:
- 9639 0558 74700000 		.quad	.LFB674-.Ltext0
- 9639      00000000 
- 9640 0560 75700000 		.quad	.LCFI36-.Ltext0
- 9640      00000000 
- 9641 0568 0200     		.value	0x2
- 9642 056a 77       		.byte	0x77
- 9643 056b 08       		.sleb128 8
- 9644 056c 75700000 		.quad	.LCFI36-.Ltext0
- 9644      00000000 
- 9645 0574 78700000 		.quad	.LCFI37-.Ltext0
- 9645      00000000 
- 9646 057c 0200     		.value	0x2
- 9647 057e 77       		.byte	0x77
- 9648 057f 10       		.sleb128 16
- 9649 0580 78700000 		.quad	.LCFI37-.Ltext0
- 9649      00000000 
- 9650 0588 5D710000 		.quad	.LFE674-.Ltext0
- 9650      00000000 
- 9651 0590 0200     		.value	0x2
- 9652 0592 76       		.byte	0x76
- 9653 0593 10       		.sleb128 16
- 9654 0594 00000000 		.quad	0x0
- 9654      00000000 
- 9655 059c 00000000 		.quad	0x0
- 9655      00000000 
- 9656              	.LLST19:
- 9657 05a4 5D710000 		.quad	.LFB675-.Ltext0
- 9657      00000000 
- 9658 05ac 5E710000 		.quad	.LCFI38-.Ltext0
- 9658      00000000 
- 9659 05b4 0200     		.value	0x2
- 9660 05b6 77       		.byte	0x77
- 9661 05b7 08       		.sleb128 8
- 9662 05b8 5E710000 		.quad	.LCFI38-.Ltext0
- 9662      00000000 
- 9663 05c0 61710000 		.quad	.LCFI39-.Ltext0
- 9663      00000000 
- 9664 05c8 0200     		.value	0x2
- 9665 05ca 77       		.byte	0x77
- 9666 05cb 10       		.sleb128 16
- 9667 05cc 61710000 		.quad	.LCFI39-.Ltext0
- 9667      00000000 
- 9668 05d4 20720000 		.quad	.LFE675-.Ltext0
- 9668      00000000 
- 9669 05dc 0200     		.value	0x2
- 9670 05de 76       		.byte	0x76
- 9671 05df 10       		.sleb128 16
- 9672 05e0 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 316
-
-
- 9672      00000000 
- 9673 05e8 00000000 		.quad	0x0
- 9673      00000000 
- 9674              	.LLST20:
- 9675 05f0 20720000 		.quad	.LFB676-.Ltext0
- 9675      00000000 
- 9676 05f8 21720000 		.quad	.LCFI40-.Ltext0
- 9676      00000000 
- 9677 0600 0200     		.value	0x2
- 9678 0602 77       		.byte	0x77
- 9679 0603 08       		.sleb128 8
- 9680 0604 21720000 		.quad	.LCFI40-.Ltext0
- 9680      00000000 
- 9681 060c 24720000 		.quad	.LCFI41-.Ltext0
- 9681      00000000 
- 9682 0614 0200     		.value	0x2
- 9683 0616 77       		.byte	0x77
- 9684 0617 10       		.sleb128 16
- 9685 0618 24720000 		.quad	.LCFI41-.Ltext0
- 9685      00000000 
- 9686 0620 E3720000 		.quad	.LFE676-.Ltext0
- 9686      00000000 
- 9687 0628 0200     		.value	0x2
- 9688 062a 76       		.byte	0x76
- 9689 062b 10       		.sleb128 16
- 9690 062c 00000000 		.quad	0x0
- 9690      00000000 
- 9691 0634 00000000 		.quad	0x0
- 9691      00000000 
- 9692              	.LLST21:
- 9693 063c E3720000 		.quad	.LFB677-.Ltext0
- 9693      00000000 
- 9694 0644 E4720000 		.quad	.LCFI42-.Ltext0
- 9694      00000000 
- 9695 064c 0200     		.value	0x2
- 9696 064e 77       		.byte	0x77
- 9697 064f 08       		.sleb128 8
- 9698 0650 E4720000 		.quad	.LCFI42-.Ltext0
- 9698      00000000 
- 9699 0658 E7720000 		.quad	.LCFI43-.Ltext0
- 9699      00000000 
- 9700 0660 0200     		.value	0x2
- 9701 0662 77       		.byte	0x77
- 9702 0663 10       		.sleb128 16
- 9703 0664 E7720000 		.quad	.LCFI43-.Ltext0
- 9703      00000000 
- 9704 066c A6730000 		.quad	.LFE677-.Ltext0
- 9704      00000000 
- 9705 0674 0200     		.value	0x2
- 9706 0676 76       		.byte	0x76
- 9707 0677 10       		.sleb128 16
- 9708 0678 00000000 		.quad	0x0
- 9708      00000000 
- 9709 0680 00000000 		.quad	0x0
- 9709      00000000 
- 9710              	.LLST22:
- 9711 0688 A6730000 		.quad	.LFB678-.Ltext0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 317
-
-
- 9711      00000000 
- 9712 0690 A7730000 		.quad	.LCFI44-.Ltext0
- 9712      00000000 
- 9713 0698 0200     		.value	0x2
- 9714 069a 77       		.byte	0x77
- 9715 069b 08       		.sleb128 8
- 9716 069c A7730000 		.quad	.LCFI44-.Ltext0
- 9716      00000000 
- 9717 06a4 AA730000 		.quad	.LCFI45-.Ltext0
- 9717      00000000 
- 9718 06ac 0200     		.value	0x2
- 9719 06ae 77       		.byte	0x77
- 9720 06af 10       		.sleb128 16
- 9721 06b0 AA730000 		.quad	.LCFI45-.Ltext0
- 9721      00000000 
- 9722 06b8 4E760000 		.quad	.LFE678-.Ltext0
- 9722      00000000 
- 9723 06c0 0200     		.value	0x2
- 9724 06c2 76       		.byte	0x76
- 9725 06c3 10       		.sleb128 16
- 9726 06c4 00000000 		.quad	0x0
- 9726      00000000 
- 9727 06cc 00000000 		.quad	0x0
- 9727      00000000 
- 9728              	.LLST23:
- 9729 06d4 4E760000 		.quad	.LFB679-.Ltext0
- 9729      00000000 
- 9730 06dc 4F760000 		.quad	.LCFI46-.Ltext0
- 9730      00000000 
- 9731 06e4 0200     		.value	0x2
- 9732 06e6 77       		.byte	0x77
- 9733 06e7 08       		.sleb128 8
- 9734 06e8 4F760000 		.quad	.LCFI46-.Ltext0
- 9734      00000000 
- 9735 06f0 52760000 		.quad	.LCFI47-.Ltext0
- 9735      00000000 
- 9736 06f8 0200     		.value	0x2
- 9737 06fa 77       		.byte	0x77
- 9738 06fb 10       		.sleb128 16
- 9739 06fc 52760000 		.quad	.LCFI47-.Ltext0
- 9739      00000000 
- 9740 0704 1F770000 		.quad	.LFE679-.Ltext0
- 9740      00000000 
- 9741 070c 0200     		.value	0x2
- 9742 070e 76       		.byte	0x76
- 9743 070f 10       		.sleb128 16
- 9744 0710 00000000 		.quad	0x0
- 9744      00000000 
- 9745 0718 00000000 		.quad	0x0
- 9745      00000000 
- 9746              		.file 4 "/usr/include/stdint.h"
- 9747              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
- 9748              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
- 9749              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 9750              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi-priv.h"
- 9751              		.file 9 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 9752              		.file 10 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 318
-
-
- 9753              		.section	.debug_info
- 9754 0000 A48F0000 		.long	0x8fa4
- 9755 0004 0200     		.value	0x2
- 9756 0006 00000000 		.long	.Ldebug_abbrev0
- 9757 000a 08       		.byte	0x8
- 9758 000b 01       		.uleb128 0x1
- 9759 000c 00000000 		.long	.LASF399
- 9760 0010 01       		.byte	0x1
- 9761 0011 00000000 		.long	.LASF400
- 9762 0015 00000000 		.long	.LASF401
- 9763 0019 00000000 		.quad	.Ltext0
- 9763      00000000 
- 9764 0021 00000000 		.quad	.Letext0
- 9764      00000000 
- 9765 0029 00000000 		.long	.Ldebug_line0
- 9766 002d 02       		.uleb128 0x2
- 9767 002e 01       		.byte	0x1
- 9768 002f 06       		.byte	0x6
- 9769 0030 00000000 		.long	.LASF0
- 9770 0034 02       		.uleb128 0x2
- 9771 0035 02       		.byte	0x2
- 9772 0036 05       		.byte	0x5
- 9773 0037 00000000 		.long	.LASF1
- 9774 003b 03       		.uleb128 0x3
- 9775 003c 00000000 		.long	.LASF3
- 9776 0040 04       		.byte	0x4
- 9777 0041 27       		.byte	0x27
- 9778 0042 46000000 		.long	0x46
- 9779 0046 04       		.uleb128 0x4
- 9780 0047 04       		.byte	0x4
- 9781 0048 05       		.byte	0x5
- 9782 0049 696E7400 		.string	"int"
- 9783 004d 02       		.uleb128 0x2
- 9784 004e 08       		.byte	0x8
- 9785 004f 05       		.byte	0x5
- 9786 0050 00000000 		.long	.LASF2
- 9787 0054 03       		.uleb128 0x3
- 9788 0055 00000000 		.long	.LASF4
- 9789 0059 04       		.byte	0x4
- 9790 005a 31       		.byte	0x31
- 9791 005b 5F000000 		.long	0x5f
- 9792 005f 02       		.uleb128 0x2
- 9793 0060 01       		.byte	0x1
- 9794 0061 08       		.byte	0x8
- 9795 0062 00000000 		.long	.LASF5
- 9796 0066 02       		.uleb128 0x2
- 9797 0067 02       		.byte	0x2
- 9798 0068 07       		.byte	0x7
- 9799 0069 00000000 		.long	.LASF6
- 9800 006d 03       		.uleb128 0x3
- 9801 006e 00000000 		.long	.LASF7
- 9802 0072 04       		.byte	0x4
- 9803 0073 34       		.byte	0x34
- 9804 0074 78000000 		.long	0x78
- 9805 0078 02       		.uleb128 0x2
- 9806 0079 04       		.byte	0x4
- 9807 007a 07       		.byte	0x7
-
GAS LISTING /tmp/ccPaCTqg.s 			page 319
-
-
- 9808 007b 00000000 		.long	.LASF8
- 9809 007f 03       		.uleb128 0x3
- 9810 0080 00000000 		.long	.LASF9
- 9811 0084 04       		.byte	0x4
- 9812 0085 38       		.byte	0x38
- 9813 0086 8A000000 		.long	0x8a
- 9814 008a 02       		.uleb128 0x2
- 9815 008b 08       		.byte	0x8
- 9816 008c 07       		.byte	0x7
- 9817 008d 00000000 		.long	.LASF10
- 9818 0091 03       		.uleb128 0x3
- 9819 0092 00000000 		.long	.LASF11
- 9820 0096 05       		.byte	0x5
- 9821 0097 30       		.byte	0x30
- 9822 0098 6D000000 		.long	0x6d
- 9823 009c 05       		.uleb128 0x5
- 9824 009d 08       		.byte	0x8
- 9825 009e 07       		.byte	0x7
- 9826 009f 02       		.uleb128 0x2
- 9827 00a0 01       		.byte	0x1
- 9828 00a1 06       		.byte	0x6
- 9829 00a2 00000000 		.long	.LASF12
- 9830 00a6 02       		.uleb128 0x2
- 9831 00a7 08       		.byte	0x8
- 9832 00a8 05       		.byte	0x5
- 9833 00a9 00000000 		.long	.LASF13
- 9834 00ad 02       		.uleb128 0x2
- 9835 00ae 04       		.byte	0x4
- 9836 00af 04       		.byte	0x4
- 9837 00b0 00000000 		.long	.LASF14
- 9838 00b4 06       		.uleb128 0x6
- 9839 00b5 46000000 		.long	0x46
- 9840 00b9 07       		.uleb128 0x7
- 9841 00ba 08       		.byte	0x8
- 9842 00bb BF000000 		.long	0xbf
- 9843 00bf 06       		.uleb128 0x6
- 9844 00c0 9F000000 		.long	0x9f
- 9845 00c4 08       		.uleb128 0x8
- 9846 00c5 08       		.byte	0x8
- 9847 00c6 07       		.uleb128 0x7
- 9848 00c7 08       		.byte	0x8
- 9849 00c8 9F000000 		.long	0x9f
- 9850 00cc 09       		.uleb128 0x9
- 9851 00cd 9F000000 		.long	0x9f
- 9852 00d1 DC000000 		.long	0xdc
- 9853 00d5 0A       		.uleb128 0xa
- 9854 00d6 9C000000 		.long	0x9c
- 9855 00da 27       		.byte	0x27
- 9856 00db 00       		.byte	0x0
- 9857 00dc 02       		.uleb128 0x2
- 9858 00dd 08       		.byte	0x8
- 9859 00de 07       		.byte	0x7
- 9860 00df 00000000 		.long	.LASF15
- 9861 00e3 07       		.uleb128 0x7
- 9862 00e4 08       		.byte	0x8
- 9863 00e5 E9000000 		.long	0xe9
- 9864 00e9 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 320
-
-
- 9865 00ea 02       		.uleb128 0x2
- 9866 00eb 08       		.byte	0x8
- 9867 00ec 04       		.byte	0x4
- 9868 00ed 00000000 		.long	.LASF16
- 9869 00f1 0C       		.uleb128 0xc
- 9870 00f2 01       		.byte	0x1
- 9871 00f3 A6000000 		.long	0xa6
- 9872 00f7 0C       		.uleb128 0xc
- 9873 00f8 01       		.byte	0x1
- 9874 00f9 EA000000 		.long	0xea
- 9875 00fd 03       		.uleb128 0x3
- 9876 00fe 00000000 		.long	.LASF17
- 9877 0102 01       		.byte	0x1
- 9878 0103 26       		.byte	0x26
- 9879 0104 08010000 		.long	0x108
- 9880 0108 0C       		.uleb128 0xc
- 9881 0109 01       		.byte	0x1
- 9882 010a 54000000 		.long	0x54
- 9883 010e 0C       		.uleb128 0xc
- 9884 010f 01       		.byte	0x1
- 9885 0110 3B000000 		.long	0x3b
- 9886 0114 0C       		.uleb128 0xc
- 9887 0115 01       		.byte	0x1
- 9888 0116 9F000000 		.long	0x9f
- 9889 011a 0D       		.uleb128 0xd
- 9890 011b 04       		.byte	0x4
- 9891 011c 06       		.byte	0x6
- 9892 011d D6       		.byte	0xd6
- 9893 011e 9B010000 		.long	0x19b
- 9894 0122 0E       		.uleb128 0xe
- 9895 0123 00000000 		.long	.LASF18
- 9896 0127 7F       		.sleb128 -1
- 9897 0128 0E       		.uleb128 0xe
- 9898 0129 00000000 		.long	.LASF19
- 9899 012d 00       		.sleb128 0
- 9900 012e 0E       		.uleb128 0xe
- 9901 012f 00000000 		.long	.LASF20
- 9902 0133 01       		.sleb128 1
- 9903 0134 0E       		.uleb128 0xe
- 9904 0135 00000000 		.long	.LASF21
- 9905 0139 02       		.sleb128 2
- 9906 013a 0E       		.uleb128 0xe
- 9907 013b 00000000 		.long	.LASF22
- 9908 013f 03       		.sleb128 3
- 9909 0140 0E       		.uleb128 0xe
- 9910 0141 00000000 		.long	.LASF23
- 9911 0145 04       		.sleb128 4
- 9912 0146 0E       		.uleb128 0xe
- 9913 0147 00000000 		.long	.LASF24
- 9914 014b 05       		.sleb128 5
- 9915 014c 0E       		.uleb128 0xe
- 9916 014d 00000000 		.long	.LASF25
- 9917 0151 06       		.sleb128 6
- 9918 0152 0E       		.uleb128 0xe
- 9919 0153 00000000 		.long	.LASF26
- 9920 0157 07       		.sleb128 7
- 9921 0158 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 321
-
-
- 9922 0159 00000000 		.long	.LASF27
- 9923 015d 08       		.sleb128 8
- 9924 015e 0E       		.uleb128 0xe
- 9925 015f 00000000 		.long	.LASF28
- 9926 0163 09       		.sleb128 9
- 9927 0164 0E       		.uleb128 0xe
- 9928 0165 00000000 		.long	.LASF29
- 9929 0169 0A       		.sleb128 10
- 9930 016a 0E       		.uleb128 0xe
- 9931 016b 00000000 		.long	.LASF30
- 9932 016f 0B       		.sleb128 11
- 9933 0170 0E       		.uleb128 0xe
- 9934 0171 00000000 		.long	.LASF31
- 9935 0175 0C       		.sleb128 12
- 9936 0176 0E       		.uleb128 0xe
- 9937 0177 00000000 		.long	.LASF32
- 9938 017b 0D       		.sleb128 13
- 9939 017c 0E       		.uleb128 0xe
- 9940 017d 00000000 		.long	.LASF33
- 9941 0181 0E       		.sleb128 14
- 9942 0182 0E       		.uleb128 0xe
- 9943 0183 00000000 		.long	.LASF34
- 9944 0187 0F       		.sleb128 15
- 9945 0188 0E       		.uleb128 0xe
- 9946 0189 00000000 		.long	.LASF35
- 9947 018d 10       		.sleb128 16
- 9948 018e 0E       		.uleb128 0xe
- 9949 018f 00000000 		.long	.LASF36
- 9950 0193 11       		.sleb128 17
- 9951 0194 0E       		.uleb128 0xe
- 9952 0195 00000000 		.long	.LASF37
- 9953 0199 12       		.sleb128 18
- 9954 019a 00       		.byte	0x0
- 9955 019b 0F       		.uleb128 0xf
- 9956 019c 04       		.byte	0x4
- 9957 019d 06       		.byte	0x6
- 9958 019e 6701     		.value	0x167
- 9959 01a0 C9010000 		.long	0x1c9
- 9960 01a4 0E       		.uleb128 0xe
- 9961 01a5 00000000 		.long	.LASF38
- 9962 01a9 00       		.sleb128 0
- 9963 01aa 0E       		.uleb128 0xe
- 9964 01ab 00000000 		.long	.LASF39
- 9965 01af 01       		.sleb128 1
- 9966 01b0 0E       		.uleb128 0xe
- 9967 01b1 00000000 		.long	.LASF40
- 9968 01b5 02       		.sleb128 2
- 9969 01b6 0E       		.uleb128 0xe
- 9970 01b7 00000000 		.long	.LASF41
- 9971 01bb 03       		.sleb128 3
- 9972 01bc 0E       		.uleb128 0xe
- 9973 01bd 00000000 		.long	.LASF42
- 9974 01c1 04       		.sleb128 4
- 9975 01c2 0E       		.uleb128 0xe
- 9976 01c3 00000000 		.long	.LASF43
- 9977 01c7 05       		.sleb128 5
- 9978 01c8 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 322
-
-
- 9979 01c9 03       		.uleb128 0x3
- 9980 01ca 00000000 		.long	.LASF44
- 9981 01ce 07       		.byte	0x7
- 9982 01cf 3B       		.byte	0x3b
- 9983 01d0 FD000000 		.long	0xfd
- 9984 01d4 03       		.uleb128 0x3
- 9985 01d5 00000000 		.long	.LASF45
- 9986 01d9 07       		.byte	0x7
- 9987 01da 43       		.byte	0x43
- 9988 01db DF010000 		.long	0x1df
- 9989 01df 10       		.uleb128 0x10
- 9990 01e0 00000000 		.long	.LASF45
- 9991 01e4 08       		.byte	0x8
- 9992 01e5 07       		.byte	0x7
- 9993 01e6 43       		.byte	0x43
- 9994 01e7 08020000 		.long	0x208
- 9995 01eb 11       		.uleb128 0x11
- 9996 01ec 6D616A00 		.string	"maj"
- 9997 01f0 07       		.byte	0x7
- 9998 01f1 46       		.byte	0x46
- 9999 01f2 6D000000 		.long	0x6d
- 10000 01f6 02       		.byte	0x2
- 10001 01f7 23       		.byte	0x23
- 10002 01f8 00       		.uleb128 0x0
- 10003 01f9 11       		.uleb128 0x11
- 10004 01fa 6D696E00 		.string	"min"
- 10005 01fe 07       		.byte	0x7
- 10006 01ff 47       		.byte	0x47
- 10007 0200 6D000000 		.long	0x6d
- 10008 0204 02       		.byte	0x2
- 10009 0205 23       		.byte	0x23
- 10010 0206 04       		.uleb128 0x4
- 10011 0207 00       		.byte	0x0
- 10012 0208 03       		.uleb128 0x3
- 10013 0209 00000000 		.long	.LASF46
- 10014 020d 07       		.byte	0x7
- 10015 020e 52       		.byte	0x52
- 10016 020f 13020000 		.long	0x213
- 10017 0213 10       		.uleb128 0x10
- 10018 0214 00000000 		.long	.LASF46
- 10019 0218 40       		.byte	0x40
- 10020 0219 07       		.byte	0x7
- 10021 021a 52       		.byte	0x52
- 10022 021b 90020000 		.long	0x290
- 10023 021f 12       		.uleb128 0x12
- 10024 0220 00000000 		.long	.LASF47
- 10025 0224 07       		.byte	0x7
- 10026 0225 5E       		.byte	0x5e
- 10027 0226 D4010000 		.long	0x1d4
- 10028 022a 02       		.byte	0x2
- 10029 022b 23       		.byte	0x23
- 10030 022c 00       		.uleb128 0x0
- 10031 022d 12       		.uleb128 0x12
- 10032 022e 00000000 		.long	.LASF48
- 10033 0232 07       		.byte	0x7
- 10034 0233 63       		.byte	0x63
- 10035 0234 D4020000 		.long	0x2d4
-
GAS LISTING /tmp/ccPaCTqg.s 			page 323
-
-
- 10036 0238 02       		.byte	0x2
- 10037 0239 23       		.byte	0x23
- 10038 023a 08       		.uleb128 0x8
- 10039 023b 12       		.uleb128 0x12
- 10040 023c 00000000 		.long	.LASF49
- 10041 0240 07       		.byte	0x7
- 10042 0241 65       		.byte	0x65
- 10043 0242 E5020000 		.long	0x2e5
- 10044 0246 02       		.byte	0x2
- 10045 0247 23       		.byte	0x23
- 10046 0248 10       		.uleb128 0x10
- 10047 0249 12       		.uleb128 0x12
- 10048 024a 00000000 		.long	.LASF50
- 10049 024e 07       		.byte	0x7
- 10050 024f 67       		.byte	0x67
- 10051 0250 E5020000 		.long	0x2e5
- 10052 0254 02       		.byte	0x2
- 10053 0255 23       		.byte	0x23
- 10054 0256 18       		.uleb128 0x18
- 10055 0257 12       		.uleb128 0x12
- 10056 0258 00000000 		.long	.LASF51
- 10057 025c 07       		.byte	0x7
- 10058 025d 69       		.byte	0x69
- 10059 025e 05030000 		.long	0x305
- 10060 0262 02       		.byte	0x2
- 10061 0263 23       		.byte	0x23
- 10062 0264 20       		.uleb128 0x20
- 10063 0265 12       		.uleb128 0x12
- 10064 0266 00000000 		.long	.LASF52
- 10065 026a 07       		.byte	0x7
- 10066 026b 6D       		.byte	0x6d
- 10067 026c 05030000 		.long	0x305
- 10068 0270 02       		.byte	0x2
- 10069 0271 23       		.byte	0x23
- 10070 0272 28       		.uleb128 0x28
- 10071 0273 12       		.uleb128 0x12
- 10072 0274 00000000 		.long	.LASF53
- 10073 0278 07       		.byte	0x7
- 10074 0279 71       		.byte	0x71
- 10075 027a 21030000 		.long	0x321
- 10076 027e 02       		.byte	0x2
- 10077 027f 23       		.byte	0x23
- 10078 0280 30       		.uleb128 0x30
- 10079 0281 12       		.uleb128 0x12
- 10080 0282 00000000 		.long	.LASF54
- 10081 0286 07       		.byte	0x7
- 10082 0287 75       		.byte	0x75
- 10083 0288 21030000 		.long	0x321
- 10084 028c 02       		.byte	0x2
- 10085 028d 23       		.byte	0x23
- 10086 028e 38       		.uleb128 0x38
- 10087 028f 00       		.byte	0x0
- 10088 0290 03       		.uleb128 0x3
- 10089 0291 00000000 		.long	.LASF55
- 10090 0295 07       		.byte	0x7
- 10091 0296 53       		.byte	0x53
- 10092 0297 9B020000 		.long	0x29b
-
GAS LISTING /tmp/ccPaCTqg.s 			page 324
-
-
- 10093 029b 13       		.uleb128 0x13
- 10094 029c 00000000 		.long	.LASF55
- 10095 02a0 40       		.byte	0x40
- 10096 02a1 07       		.byte	0x7
- 10097 02a2 53       		.byte	0x53
- 10098 02a3 BD020000 		.long	0x2bd
- 10099 02a7 14       		.uleb128 0x14
- 10100 02a8 00000000 		.long	.LASF47
- 10101 02ac 07       		.byte	0x7
- 10102 02ad 7F       		.byte	0x7f
- 10103 02ae D4010000 		.long	0x1d4
- 10104 02b2 15       		.uleb128 0x15
- 10105 02b3 763100   		.string	"v1"
- 10106 02b6 07       		.byte	0x7
- 10107 02b7 80       		.byte	0x80
- 10108 02b8 08020000 		.long	0x208
- 10109 02bc 00       		.byte	0x0
- 10110 02bd 16       		.uleb128 0x16
- 10111 02be 01       		.byte	0x1
- 10112 02bf C9020000 		.long	0x2c9
- 10113 02c3 17       		.uleb128 0x17
- 10114 02c4 C9020000 		.long	0x2c9
- 10115 02c8 00       		.byte	0x0
- 10116 02c9 07       		.uleb128 0x7
- 10117 02ca 08       		.byte	0x8
- 10118 02cb CF020000 		.long	0x2cf
- 10119 02cf 06       		.uleb128 0x6
- 10120 02d0 90020000 		.long	0x290
- 10121 02d4 07       		.uleb128 0x7
- 10122 02d5 08       		.byte	0x8
- 10123 02d6 BD020000 		.long	0x2bd
- 10124 02da 18       		.uleb128 0x18
- 10125 02db 6D000000 		.long	0x6d
- 10126 02df E5020000 		.long	0x2e5
- 10127 02e3 19       		.uleb128 0x19
- 10128 02e4 00       		.byte	0x0
- 10129 02e5 07       		.uleb128 0x7
- 10130 02e6 08       		.byte	0x8
- 10131 02e7 DA020000 		.long	0x2da
- 10132 02eb 1A       		.uleb128 0x1a
- 10133 02ec 01       		.byte	0x1
- 10134 02ed 91000000 		.long	0x91
- 10135 02f1 05030000 		.long	0x305
- 10136 02f5 17       		.uleb128 0x17
- 10137 02f6 C4000000 		.long	0xc4
- 10138 02fa 17       		.uleb128 0x17
- 10139 02fb B9000000 		.long	0xb9
- 10140 02ff 17       		.uleb128 0x17
- 10141 0300 6D000000 		.long	0x6d
- 10142 0304 00       		.byte	0x0
- 10143 0305 07       		.uleb128 0x7
- 10144 0306 08       		.byte	0x8
- 10145 0307 EB020000 		.long	0x2eb
- 10146 030b 16       		.uleb128 0x16
- 10147 030c 01       		.byte	0x1
- 10148 030d 21030000 		.long	0x321
- 10149 0311 17       		.uleb128 0x17
-
GAS LISTING /tmp/ccPaCTqg.s 			page 325
-
-
- 10150 0312 B9000000 		.long	0xb9
- 10151 0316 17       		.uleb128 0x17
- 10152 0317 C6000000 		.long	0xc6
- 10153 031b 17       		.uleb128 0x17
- 10154 031c E3000000 		.long	0xe3
- 10155 0320 00       		.byte	0x0
- 10156 0321 07       		.uleb128 0x7
- 10157 0322 08       		.byte	0x8
- 10158 0323 0B030000 		.long	0x30b
- 10159 0327 03       		.uleb128 0x3
- 10160 0328 00000000 		.long	.LASF56
- 10161 032c 07       		.byte	0x7
- 10162 032d 84       		.byte	0x84
- 10163 032e 32030000 		.long	0x332
- 10164 0332 10       		.uleb128 0x10
- 10165 0333 00000000 		.long	.LASF56
- 10166 0337 40       		.byte	0x40
- 10167 0338 07       		.byte	0x7
- 10168 0339 84       		.byte	0x84
- 10169 033a AF030000 		.long	0x3af
- 10170 033e 12       		.uleb128 0x12
- 10171 033f 00000000 		.long	.LASF47
- 10172 0343 07       		.byte	0x7
- 10173 0344 90       		.byte	0x90
- 10174 0345 D4010000 		.long	0x1d4
- 10175 0349 02       		.byte	0x2
- 10176 034a 23       		.byte	0x23
- 10177 034b 00       		.uleb128 0x0
- 10178 034c 12       		.uleb128 0x12
- 10179 034d 00000000 		.long	.LASF48
- 10180 0351 07       		.byte	0x7
- 10181 0352 95       		.byte	0x95
- 10182 0353 F3030000 		.long	0x3f3
- 10183 0357 02       		.byte	0x2
- 10184 0358 23       		.byte	0x23
- 10185 0359 08       		.uleb128 0x8
- 10186 035a 12       		.uleb128 0x12
- 10187 035b 00000000 		.long	.LASF49
- 10188 035f 07       		.byte	0x7
- 10189 0360 97       		.byte	0x97
- 10190 0361 E5020000 		.long	0x2e5
- 10191 0365 02       		.byte	0x2
- 10192 0366 23       		.byte	0x23
- 10193 0367 10       		.uleb128 0x10
- 10194 0368 12       		.uleb128 0x12
- 10195 0369 00000000 		.long	.LASF50
- 10196 036d 07       		.byte	0x7
- 10197 036e 99       		.byte	0x99
- 10198 036f E5020000 		.long	0x2e5
- 10199 0373 02       		.byte	0x2
- 10200 0374 23       		.byte	0x23
- 10201 0375 18       		.uleb128 0x18
- 10202 0376 12       		.uleb128 0x12
- 10203 0377 00000000 		.long	.LASF51
- 10204 037b 07       		.byte	0x7
- 10205 037c 9B       		.byte	0x9b
- 10206 037d 05030000 		.long	0x305
-
GAS LISTING /tmp/ccPaCTqg.s 			page 326
-
-
- 10207 0381 02       		.byte	0x2
- 10208 0382 23       		.byte	0x23
- 10209 0383 20       		.uleb128 0x20
- 10210 0384 12       		.uleb128 0x12
- 10211 0385 00000000 		.long	.LASF52
- 10212 0389 07       		.byte	0x7
- 10213 038a 9F       		.byte	0x9f
- 10214 038b 05030000 		.long	0x305
- 10215 038f 02       		.byte	0x2
- 10216 0390 23       		.byte	0x23
- 10217 0391 28       		.uleb128 0x28
- 10218 0392 12       		.uleb128 0x12
- 10219 0393 00000000 		.long	.LASF53
- 10220 0397 07       		.byte	0x7
- 10221 0398 A3       		.byte	0xa3
- 10222 0399 0E040000 		.long	0x40e
- 10223 039d 02       		.byte	0x2
- 10224 039e 23       		.byte	0x23
- 10225 039f 30       		.uleb128 0x30
- 10226 03a0 12       		.uleb128 0x12
- 10227 03a1 00000000 		.long	.LASF54
- 10228 03a5 07       		.byte	0x7
- 10229 03a6 A6       		.byte	0xa6
- 10230 03a7 0E040000 		.long	0x40e
- 10231 03ab 02       		.byte	0x2
- 10232 03ac 23       		.byte	0x23
- 10233 03ad 38       		.uleb128 0x38
- 10234 03ae 00       		.byte	0x0
- 10235 03af 03       		.uleb128 0x3
- 10236 03b0 00000000 		.long	.LASF57
- 10237 03b4 07       		.byte	0x7
- 10238 03b5 85       		.byte	0x85
- 10239 03b6 BA030000 		.long	0x3ba
- 10240 03ba 13       		.uleb128 0x13
- 10241 03bb 00000000 		.long	.LASF57
- 10242 03bf 40       		.byte	0x40
- 10243 03c0 07       		.byte	0x7
- 10244 03c1 85       		.byte	0x85
- 10245 03c2 DC030000 		.long	0x3dc
- 10246 03c6 14       		.uleb128 0x14
- 10247 03c7 00000000 		.long	.LASF47
- 10248 03cb 07       		.byte	0x7
- 10249 03cc AF       		.byte	0xaf
- 10250 03cd D4010000 		.long	0x1d4
- 10251 03d1 15       		.uleb128 0x15
- 10252 03d2 763100   		.string	"v1"
- 10253 03d5 07       		.byte	0x7
- 10254 03d6 B0       		.byte	0xb0
- 10255 03d7 27030000 		.long	0x327
- 10256 03db 00       		.byte	0x0
- 10257 03dc 16       		.uleb128 0x16
- 10258 03dd 01       		.byte	0x1
- 10259 03de E8030000 		.long	0x3e8
- 10260 03e2 17       		.uleb128 0x17
- 10261 03e3 E8030000 		.long	0x3e8
- 10262 03e7 00       		.byte	0x0
- 10263 03e8 07       		.uleb128 0x7
-
GAS LISTING /tmp/ccPaCTqg.s 			page 327
-
-
- 10264 03e9 08       		.byte	0x8
- 10265 03ea EE030000 		.long	0x3ee
- 10266 03ee 06       		.uleb128 0x6
- 10267 03ef AF030000 		.long	0x3af
- 10268 03f3 07       		.uleb128 0x7
- 10269 03f4 08       		.byte	0x8
- 10270 03f5 DC030000 		.long	0x3dc
- 10271 03f9 1A       		.uleb128 0x1a
- 10272 03fa 01       		.byte	0x1
- 10273 03fb C9010000 		.long	0x1c9
- 10274 03ff 0E040000 		.long	0x40e
- 10275 0403 17       		.uleb128 0x17
- 10276 0404 C9010000 		.long	0x1c9
- 10277 0408 17       		.uleb128 0x17
- 10278 0409 E3000000 		.long	0xe3
- 10279 040d 00       		.byte	0x0
- 10280 040e 07       		.uleb128 0x7
- 10281 040f 08       		.byte	0x8
- 10282 0410 F9030000 		.long	0x3f9
- 10283 0414 03       		.uleb128 0x3
- 10284 0415 00000000 		.long	.LASF58
- 10285 0419 08       		.byte	0x8
- 10286 041a 9D       		.byte	0x9d
- 10287 041b 54000000 		.long	0x54
- 10288 041f 03       		.uleb128 0x3
- 10289 0420 00000000 		.long	.LASF59
- 10290 0424 08       		.byte	0x8
- 10291 0425 9E       		.byte	0x9e
- 10292 0426 6D000000 		.long	0x6d
- 10293 042a 09       		.uleb128 0x9
- 10294 042b 14040000 		.long	0x414
- 10295 042f 3A040000 		.long	0x43a
- 10296 0433 0A       		.uleb128 0xa
- 10297 0434 9C000000 		.long	0x9c
- 10298 0438 0F       		.byte	0xf
- 10299 0439 00       		.byte	0x0
- 10300 043a 03       		.uleb128 0x3
- 10301 043b 00000000 		.long	.LASF60
- 10302 043f 08       		.byte	0x8
- 10303 0440 B0       		.byte	0xb0
- 10304 0441 45040000 		.long	0x445
- 10305 0445 1B       		.uleb128 0x1b
- 10306 0446 00000000 		.long	.LASF60
- 10307 044a 0001     		.value	0x100
- 10308 044c 08       		.byte	0x8
- 10309 044d B0       		.byte	0xb0
- 10310 044e 70040000 		.long	0x470
- 10311 0452 12       		.uleb128 0x12
- 10312 0453 00000000 		.long	.LASF61
- 10313 0457 08       		.byte	0x8
- 10314 0458 B3       		.byte	0xb3
- 10315 0459 70040000 		.long	0x470
- 10316 045d 02       		.byte	0x2
- 10317 045e 23       		.byte	0x23
- 10318 045f 00       		.uleb128 0x0
- 10319 0460 12       		.uleb128 0x12
- 10320 0461 00000000 		.long	.LASF62
-
GAS LISTING /tmp/ccPaCTqg.s 			page 328
-
-
- 10321 0465 08       		.byte	0x8
- 10322 0466 B4       		.byte	0xb4
- 10323 0467 6D000000 		.long	0x6d
- 10324 046b 03       		.byte	0x3
- 10325 046c 23       		.byte	0x23
- 10326 046d F001     		.uleb128 0xf0
- 10327 046f 00       		.byte	0x0
- 10328 0470 09       		.uleb128 0x9
- 10329 0471 C9010000 		.long	0x1c9
- 10330 0475 80040000 		.long	0x480
- 10331 0479 0A       		.uleb128 0xa
- 10332 047a 9C000000 		.long	0x9c
- 10333 047e 0E       		.byte	0xe
- 10334 047f 00       		.byte	0x0
- 10335 0480 1C       		.uleb128 0x1c
- 10336 0481 10       		.byte	0x10
- 10337 0482 08       		.byte	0x8
- 10338 0483 C0       		.byte	0xc0
- 10339 0484 C0040000 		.long	0x4c0
- 10340 0488 14       		.uleb128 0x14
- 10341 0489 00000000 		.long	.LASF63
- 10342 048d 08       		.byte	0x8
- 10343 048e C1       		.byte	0xc1
- 10344 048f C9010000 		.long	0x1c9
- 10345 0493 15       		.uleb128 0x15
- 10346 0494 75363400 		.string	"u64"
- 10347 0498 08       		.byte	0x8
- 10348 0499 C2       		.byte	0xc2
- 10349 049a C0040000 		.long	0x4c0
- 10350 049e 14       		.uleb128 0x14
- 10351 049f 00000000 		.long	.LASF64
- 10352 04a3 08       		.byte	0x8
- 10353 04a4 C3       		.byte	0xc3
- 10354 04a5 D0040000 		.long	0x4d0
- 10355 04a9 14       		.uleb128 0x14
- 10356 04aa 00000000 		.long	.LASF65
- 10357 04ae 08       		.byte	0x8
- 10358 04af C4       		.byte	0xc4
- 10359 04b0 2A040000 		.long	0x42a
- 10360 04b4 14       		.uleb128 0x14
- 10361 04b5 00000000 		.long	.LASF66
- 10362 04b9 08       		.byte	0x8
- 10363 04ba C5       		.byte	0xc5
- 10364 04bb E0040000 		.long	0x4e0
- 10365 04bf 00       		.byte	0x0
- 10366 04c0 09       		.uleb128 0x9
- 10367 04c1 7F000000 		.long	0x7f
- 10368 04c5 D0040000 		.long	0x4d0
- 10369 04c9 0A       		.uleb128 0xa
- 10370 04ca 9C000000 		.long	0x9c
- 10371 04ce 01       		.byte	0x1
- 10372 04cf 00       		.byte	0x0
- 10373 04d0 09       		.uleb128 0x9
- 10374 04d1 1F040000 		.long	0x41f
- 10375 04d5 E0040000 		.long	0x4e0
- 10376 04d9 0A       		.uleb128 0xa
- 10377 04da 9C000000 		.long	0x9c
-
GAS LISTING /tmp/ccPaCTqg.s 			page 329
-
-
- 10378 04de 03       		.byte	0x3
- 10379 04df 00       		.byte	0x0
- 10380 04e0 09       		.uleb128 0x9
- 10381 04e1 14040000 		.long	0x414
- 10382 04e5 F6040000 		.long	0x4f6
- 10383 04e9 0A       		.uleb128 0xa
- 10384 04ea 9C000000 		.long	0x9c
- 10385 04ee 03       		.byte	0x3
- 10386 04ef 0A       		.uleb128 0xa
- 10387 04f0 9C000000 		.long	0x9c
- 10388 04f4 03       		.byte	0x3
- 10389 04f5 00       		.byte	0x0
- 10390 04f6 03       		.uleb128 0x3
- 10391 04f7 00000000 		.long	.LASF67
- 10392 04fb 08       		.byte	0x8
- 10393 04fc C6       		.byte	0xc6
- 10394 04fd 80040000 		.long	0x480
- 10395 0501 03       		.uleb128 0x3
- 10396 0502 00000000 		.long	.LASF68
- 10397 0506 09       		.byte	0x9
- 10398 0507 40       		.byte	0x40
- 10399 0508 0C050000 		.long	0x50c
- 10400 050c 13       		.uleb128 0x13
- 10401 050d 00000000 		.long	.LASF68
- 10402 0511 40       		.byte	0x40
- 10403 0512 09       		.byte	0x9
- 10404 0513 40       		.byte	0x40
- 10405 0514 2F050000 		.long	0x52f
- 10406 0518 14       		.uleb128 0x14
- 10407 0519 00000000 		.long	.LASF69
- 10408 051d 09       		.byte	0x9
- 10409 051e 43       		.byte	0x43
- 10410 051f 90020000 		.long	0x290
- 10411 0523 15       		.uleb128 0x15
- 10412 0524 76656300 		.string	"vec"
- 10413 0528 09       		.byte	0x9
- 10414 0529 44       		.byte	0x44
- 10415 052a AF030000 		.long	0x3af
- 10416 052e 00       		.byte	0x0
- 10417 052f 1D       		.uleb128 0x1d
- 10418 0530 00000000 		.long	.LASF92
- 10419 0534 04       		.byte	0x4
- 10420 0535 0A       		.byte	0xa
- 10421 0536 5A       		.byte	0x5a
- 10422 0537 C0050000 		.long	0x5c0
- 10423 053b 0E       		.uleb128 0xe
- 10424 053c 00000000 		.long	.LASF70
- 10425 0540 00       		.sleb128 0
- 10426 0541 0E       		.uleb128 0xe
- 10427 0542 00000000 		.long	.LASF71
- 10428 0546 01       		.sleb128 1
- 10429 0547 0E       		.uleb128 0xe
- 10430 0548 00000000 		.long	.LASF72
- 10431 054c 02       		.sleb128 2
- 10432 054d 0E       		.uleb128 0xe
- 10433 054e 00000000 		.long	.LASF73
- 10434 0552 03       		.sleb128 3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 330
-
-
- 10435 0553 0E       		.uleb128 0xe
- 10436 0554 00000000 		.long	.LASF74
- 10437 0558 04       		.sleb128 4
- 10438 0559 0E       		.uleb128 0xe
- 10439 055a 00000000 		.long	.LASF75
- 10440 055e 05       		.sleb128 5
- 10441 055f 0E       		.uleb128 0xe
- 10442 0560 00000000 		.long	.LASF76
- 10443 0564 06       		.sleb128 6
- 10444 0565 0E       		.uleb128 0xe
- 10445 0566 00000000 		.long	.LASF77
- 10446 056a 07       		.sleb128 7
- 10447 056b 0E       		.uleb128 0xe
- 10448 056c 00000000 		.long	.LASF78
- 10449 0570 08       		.sleb128 8
- 10450 0571 0E       		.uleb128 0xe
- 10451 0572 00000000 		.long	.LASF79
- 10452 0576 09       		.sleb128 9
- 10453 0577 0E       		.uleb128 0xe
- 10454 0578 00000000 		.long	.LASF80
- 10455 057c 0A       		.sleb128 10
- 10456 057d 0E       		.uleb128 0xe
- 10457 057e 00000000 		.long	.LASF81
- 10458 0582 0B       		.sleb128 11
- 10459 0583 0E       		.uleb128 0xe
- 10460 0584 00000000 		.long	.LASF82
- 10461 0588 0C       		.sleb128 12
- 10462 0589 0E       		.uleb128 0xe
- 10463 058a 00000000 		.long	.LASF83
- 10464 058e 0D       		.sleb128 13
- 10465 058f 0E       		.uleb128 0xe
- 10466 0590 00000000 		.long	.LASF84
- 10467 0594 0E       		.sleb128 14
- 10468 0595 0E       		.uleb128 0xe
- 10469 0596 00000000 		.long	.LASF85
- 10470 059a 0E       		.sleb128 14
- 10471 059b 0E       		.uleb128 0xe
- 10472 059c 00000000 		.long	.LASF86
- 10473 05a0 0F       		.sleb128 15
- 10474 05a1 0E       		.uleb128 0xe
- 10475 05a2 00000000 		.long	.LASF87
- 10476 05a6 10       		.sleb128 16
- 10477 05a7 0E       		.uleb128 0xe
- 10478 05a8 00000000 		.long	.LASF88
- 10479 05ac 11       		.sleb128 17
- 10480 05ad 0E       		.uleb128 0xe
- 10481 05ae 00000000 		.long	.LASF89
- 10482 05b2 12       		.sleb128 18
- 10483 05b3 0E       		.uleb128 0xe
- 10484 05b4 00000000 		.long	.LASF90
- 10485 05b8 13       		.sleb128 19
- 10486 05b9 0E       		.uleb128 0xe
- 10487 05ba 00000000 		.long	.LASF91
- 10488 05be 14       		.sleb128 20
- 10489 05bf 00       		.byte	0x0
- 10490 05c0 1D       		.uleb128 0x1d
- 10491 05c1 00000000 		.long	.LASF93
-
GAS LISTING /tmp/ccPaCTqg.s 			page 331
-
-
- 10492 05c5 04       		.byte	0x4
- 10493 05c6 0A       		.byte	0xa
- 10494 05c7 77       		.byte	0x77
- 10495 05c8 47070000 		.long	0x747
- 10496 05cc 0E       		.uleb128 0xe
- 10497 05cd 00000000 		.long	.LASF94
- 10498 05d1 00       		.sleb128 0
- 10499 05d2 0E       		.uleb128 0xe
- 10500 05d3 00000000 		.long	.LASF95
- 10501 05d7 01       		.sleb128 1
- 10502 05d8 0E       		.uleb128 0xe
- 10503 05d9 00000000 		.long	.LASF96
- 10504 05dd 02       		.sleb128 2
- 10505 05de 0E       		.uleb128 0xe
- 10506 05df 00000000 		.long	.LASF97
- 10507 05e3 03       		.sleb128 3
- 10508 05e4 0E       		.uleb128 0xe
- 10509 05e5 00000000 		.long	.LASF98
- 10510 05e9 04       		.sleb128 4
- 10511 05ea 0E       		.uleb128 0xe
- 10512 05eb 00000000 		.long	.LASF99
- 10513 05ef 05       		.sleb128 5
- 10514 05f0 0E       		.uleb128 0xe
- 10515 05f1 00000000 		.long	.LASF100
- 10516 05f5 06       		.sleb128 6
- 10517 05f6 0E       		.uleb128 0xe
- 10518 05f7 00000000 		.long	.LASF101
- 10519 05fb 07       		.sleb128 7
- 10520 05fc 0E       		.uleb128 0xe
- 10521 05fd 00000000 		.long	.LASF102
- 10522 0601 08       		.sleb128 8
- 10523 0602 0E       		.uleb128 0xe
- 10524 0603 00000000 		.long	.LASF103
- 10525 0607 09       		.sleb128 9
- 10526 0608 0E       		.uleb128 0xe
- 10527 0609 00000000 		.long	.LASF104
- 10528 060d 0A       		.sleb128 10
- 10529 060e 0E       		.uleb128 0xe
- 10530 060f 00000000 		.long	.LASF105
- 10531 0613 0B       		.sleb128 11
- 10532 0614 0E       		.uleb128 0xe
- 10533 0615 00000000 		.long	.LASF106
- 10534 0619 0C       		.sleb128 12
- 10535 061a 0E       		.uleb128 0xe
- 10536 061b 00000000 		.long	.LASF107
- 10537 061f 0D       		.sleb128 13
- 10538 0620 0E       		.uleb128 0xe
- 10539 0621 00000000 		.long	.LASF108
- 10540 0625 0E       		.sleb128 14
- 10541 0626 0E       		.uleb128 0xe
- 10542 0627 00000000 		.long	.LASF109
- 10543 062b 0F       		.sleb128 15
- 10544 062c 0E       		.uleb128 0xe
- 10545 062d 00000000 		.long	.LASF110
- 10546 0631 10       		.sleb128 16
- 10547 0632 0E       		.uleb128 0xe
- 10548 0633 00000000 		.long	.LASF111
-
GAS LISTING /tmp/ccPaCTqg.s 			page 332
-
-
- 10549 0637 11       		.sleb128 17
- 10550 0638 0E       		.uleb128 0xe
- 10551 0639 00000000 		.long	.LASF112
- 10552 063d 12       		.sleb128 18
- 10553 063e 0E       		.uleb128 0xe
- 10554 063f 00000000 		.long	.LASF113
- 10555 0643 13       		.sleb128 19
- 10556 0644 0E       		.uleb128 0xe
- 10557 0645 00000000 		.long	.LASF114
- 10558 0649 14       		.sleb128 20
- 10559 064a 0E       		.uleb128 0xe
- 10560 064b 00000000 		.long	.LASF115
- 10561 064f 15       		.sleb128 21
- 10562 0650 0E       		.uleb128 0xe
- 10563 0651 00000000 		.long	.LASF116
- 10564 0655 16       		.sleb128 22
- 10565 0656 0E       		.uleb128 0xe
- 10566 0657 00000000 		.long	.LASF117
- 10567 065b 17       		.sleb128 23
- 10568 065c 0E       		.uleb128 0xe
- 10569 065d 00000000 		.long	.LASF118
- 10570 0661 18       		.sleb128 24
- 10571 0662 0E       		.uleb128 0xe
- 10572 0663 00000000 		.long	.LASF119
- 10573 0667 19       		.sleb128 25
- 10574 0668 0E       		.uleb128 0xe
- 10575 0669 00000000 		.long	.LASF120
- 10576 066d 1A       		.sleb128 26
- 10577 066e 0E       		.uleb128 0xe
- 10578 066f 00000000 		.long	.LASF121
- 10579 0673 1B       		.sleb128 27
- 10580 0674 0E       		.uleb128 0xe
- 10581 0675 00000000 		.long	.LASF122
- 10582 0679 1C       		.sleb128 28
- 10583 067a 0E       		.uleb128 0xe
- 10584 067b 00000000 		.long	.LASF123
- 10585 067f 1D       		.sleb128 29
- 10586 0680 0E       		.uleb128 0xe
- 10587 0681 00000000 		.long	.LASF124
- 10588 0685 1E       		.sleb128 30
- 10589 0686 0E       		.uleb128 0xe
- 10590 0687 00000000 		.long	.LASF125
- 10591 068b 1F       		.sleb128 31
- 10592 068c 0E       		.uleb128 0xe
- 10593 068d 00000000 		.long	.LASF126
- 10594 0691 20       		.sleb128 32
- 10595 0692 0E       		.uleb128 0xe
- 10596 0693 00000000 		.long	.LASF127
- 10597 0697 21       		.sleb128 33
- 10598 0698 0E       		.uleb128 0xe
- 10599 0699 00000000 		.long	.LASF128
- 10600 069d 22       		.sleb128 34
- 10601 069e 0E       		.uleb128 0xe
- 10602 069f 00000000 		.long	.LASF129
- 10603 06a3 23       		.sleb128 35
- 10604 06a4 0E       		.uleb128 0xe
- 10605 06a5 00000000 		.long	.LASF130
-
GAS LISTING /tmp/ccPaCTqg.s 			page 333
-
-
- 10606 06a9 24       		.sleb128 36
- 10607 06aa 0E       		.uleb128 0xe
- 10608 06ab 00000000 		.long	.LASF131
- 10609 06af 25       		.sleb128 37
- 10610 06b0 0E       		.uleb128 0xe
- 10611 06b1 00000000 		.long	.LASF132
- 10612 06b5 26       		.sleb128 38
- 10613 06b6 0E       		.uleb128 0xe
- 10614 06b7 00000000 		.long	.LASF133
- 10615 06bb 27       		.sleb128 39
- 10616 06bc 0E       		.uleb128 0xe
- 10617 06bd 00000000 		.long	.LASF134
- 10618 06c1 28       		.sleb128 40
- 10619 06c2 0E       		.uleb128 0xe
- 10620 06c3 00000000 		.long	.LASF135
- 10621 06c7 29       		.sleb128 41
- 10622 06c8 0E       		.uleb128 0xe
- 10623 06c9 00000000 		.long	.LASF136
- 10624 06cd 2A       		.sleb128 42
- 10625 06ce 0E       		.uleb128 0xe
- 10626 06cf 00000000 		.long	.LASF137
- 10627 06d3 2B       		.sleb128 43
- 10628 06d4 0E       		.uleb128 0xe
- 10629 06d5 00000000 		.long	.LASF138
- 10630 06d9 2C       		.sleb128 44
- 10631 06da 0E       		.uleb128 0xe
- 10632 06db 00000000 		.long	.LASF139
- 10633 06df 2D       		.sleb128 45
- 10634 06e0 0E       		.uleb128 0xe
- 10635 06e1 00000000 		.long	.LASF140
- 10636 06e5 2E       		.sleb128 46
- 10637 06e6 0E       		.uleb128 0xe
- 10638 06e7 00000000 		.long	.LASF141
- 10639 06eb 2F       		.sleb128 47
- 10640 06ec 0E       		.uleb128 0xe
- 10641 06ed 00000000 		.long	.LASF142
- 10642 06f1 30       		.sleb128 48
- 10643 06f2 0E       		.uleb128 0xe
- 10644 06f3 00000000 		.long	.LASF143
- 10645 06f7 31       		.sleb128 49
- 10646 06f8 0E       		.uleb128 0xe
- 10647 06f9 00000000 		.long	.LASF144
- 10648 06fd 32       		.sleb128 50
- 10649 06fe 0E       		.uleb128 0xe
- 10650 06ff 00000000 		.long	.LASF145
- 10651 0703 33       		.sleb128 51
- 10652 0704 0E       		.uleb128 0xe
- 10653 0705 00000000 		.long	.LASF146
- 10654 0709 34       		.sleb128 52
- 10655 070a 0E       		.uleb128 0xe
- 10656 070b 00000000 		.long	.LASF147
- 10657 070f 35       		.sleb128 53
- 10658 0710 0E       		.uleb128 0xe
- 10659 0711 00000000 		.long	.LASF148
- 10660 0715 36       		.sleb128 54
- 10661 0716 0E       		.uleb128 0xe
- 10662 0717 00000000 		.long	.LASF149
-
GAS LISTING /tmp/ccPaCTqg.s 			page 334
-
-
- 10663 071b 36       		.sleb128 54
- 10664 071c 0E       		.uleb128 0xe
- 10665 071d 00000000 		.long	.LASF150
- 10666 0721 37       		.sleb128 55
- 10667 0722 0E       		.uleb128 0xe
- 10668 0723 00000000 		.long	.LASF151
- 10669 0727 38       		.sleb128 56
- 10670 0728 0E       		.uleb128 0xe
- 10671 0729 00000000 		.long	.LASF152
- 10672 072d 39       		.sleb128 57
- 10673 072e 0E       		.uleb128 0xe
- 10674 072f 00000000 		.long	.LASF153
- 10675 0733 3A       		.sleb128 58
- 10676 0734 0E       		.uleb128 0xe
- 10677 0735 00000000 		.long	.LASF154
- 10678 0739 3B       		.sleb128 59
- 10679 073a 0E       		.uleb128 0xe
- 10680 073b 00000000 		.long	.LASF155
- 10681 073f 3C       		.sleb128 60
- 10682 0740 0E       		.uleb128 0xe
- 10683 0741 00000000 		.long	.LASF156
- 10684 0745 3D       		.sleb128 61
- 10685 0746 00       		.byte	0x0
- 10686 0747 1D       		.uleb128 0x1d
- 10687 0748 00000000 		.long	.LASF157
- 10688 074c 04       		.byte	0x4
- 10689 074d 0A       		.byte	0xa
- 10690 074e BD       		.byte	0xbd
- 10691 074f FD080000 		.long	0x8fd
- 10692 0753 0E       		.uleb128 0xe
- 10693 0754 00000000 		.long	.LASF158
- 10694 0758 00       		.sleb128 0
- 10695 0759 0E       		.uleb128 0xe
- 10696 075a 00000000 		.long	.LASF159
- 10697 075e 01       		.sleb128 1
- 10698 075f 0E       		.uleb128 0xe
- 10699 0760 00000000 		.long	.LASF160
- 10700 0764 02       		.sleb128 2
- 10701 0765 0E       		.uleb128 0xe
- 10702 0766 00000000 		.long	.LASF161
- 10703 076a 03       		.sleb128 3
- 10704 076b 0E       		.uleb128 0xe
- 10705 076c 00000000 		.long	.LASF162
- 10706 0770 04       		.sleb128 4
- 10707 0771 0E       		.uleb128 0xe
- 10708 0772 00000000 		.long	.LASF163
- 10709 0776 05       		.sleb128 5
- 10710 0777 0E       		.uleb128 0xe
- 10711 0778 00000000 		.long	.LASF164
- 10712 077c 06       		.sleb128 6
- 10713 077d 0E       		.uleb128 0xe
- 10714 077e 00000000 		.long	.LASF165
- 10715 0782 07       		.sleb128 7
- 10716 0783 0E       		.uleb128 0xe
- 10717 0784 00000000 		.long	.LASF166
- 10718 0788 08       		.sleb128 8
- 10719 0789 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 335
-
-
- 10720 078a 00000000 		.long	.LASF167
- 10721 078e 09       		.sleb128 9
- 10722 078f 0E       		.uleb128 0xe
- 10723 0790 00000000 		.long	.LASF168
- 10724 0794 0A       		.sleb128 10
- 10725 0795 0E       		.uleb128 0xe
- 10726 0796 00000000 		.long	.LASF169
- 10727 079a 0B       		.sleb128 11
- 10728 079b 0E       		.uleb128 0xe
- 10729 079c 00000000 		.long	.LASF170
- 10730 07a0 0C       		.sleb128 12
- 10731 07a1 0E       		.uleb128 0xe
- 10732 07a2 00000000 		.long	.LASF171
- 10733 07a6 0D       		.sleb128 13
- 10734 07a7 0E       		.uleb128 0xe
- 10735 07a8 00000000 		.long	.LASF172
- 10736 07ac 0E       		.sleb128 14
- 10737 07ad 0E       		.uleb128 0xe
- 10738 07ae 00000000 		.long	.LASF173
- 10739 07b2 0F       		.sleb128 15
- 10740 07b3 0E       		.uleb128 0xe
- 10741 07b4 00000000 		.long	.LASF174
- 10742 07b8 10       		.sleb128 16
- 10743 07b9 0E       		.uleb128 0xe
- 10744 07ba 00000000 		.long	.LASF175
- 10745 07be 11       		.sleb128 17
- 10746 07bf 0E       		.uleb128 0xe
- 10747 07c0 00000000 		.long	.LASF176
- 10748 07c4 12       		.sleb128 18
- 10749 07c5 0E       		.uleb128 0xe
- 10750 07c6 00000000 		.long	.LASF177
- 10751 07ca 13       		.sleb128 19
- 10752 07cb 0E       		.uleb128 0xe
- 10753 07cc 00000000 		.long	.LASF178
- 10754 07d0 14       		.sleb128 20
- 10755 07d1 0E       		.uleb128 0xe
- 10756 07d2 00000000 		.long	.LASF179
- 10757 07d6 15       		.sleb128 21
- 10758 07d7 0E       		.uleb128 0xe
- 10759 07d8 00000000 		.long	.LASF180
- 10760 07dc 16       		.sleb128 22
- 10761 07dd 0E       		.uleb128 0xe
- 10762 07de 00000000 		.long	.LASF181
- 10763 07e2 17       		.sleb128 23
- 10764 07e3 0E       		.uleb128 0xe
- 10765 07e4 00000000 		.long	.LASF182
- 10766 07e8 18       		.sleb128 24
- 10767 07e9 0E       		.uleb128 0xe
- 10768 07ea 00000000 		.long	.LASF183
- 10769 07ee 19       		.sleb128 25
- 10770 07ef 0E       		.uleb128 0xe
- 10771 07f0 00000000 		.long	.LASF184
- 10772 07f4 1A       		.sleb128 26
- 10773 07f5 0E       		.uleb128 0xe
- 10774 07f6 00000000 		.long	.LASF185
- 10775 07fa 1B       		.sleb128 27
- 10776 07fb 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 336
-
-
- 10777 07fc 00000000 		.long	.LASF186
- 10778 0800 1C       		.sleb128 28
- 10779 0801 0E       		.uleb128 0xe
- 10780 0802 00000000 		.long	.LASF187
- 10781 0806 1D       		.sleb128 29
- 10782 0807 0E       		.uleb128 0xe
- 10783 0808 00000000 		.long	.LASF188
- 10784 080c 1E       		.sleb128 30
- 10785 080d 0E       		.uleb128 0xe
- 10786 080e 00000000 		.long	.LASF189
- 10787 0812 1F       		.sleb128 31
- 10788 0813 0E       		.uleb128 0xe
- 10789 0814 00000000 		.long	.LASF190
- 10790 0818 20       		.sleb128 32
- 10791 0819 0E       		.uleb128 0xe
- 10792 081a 00000000 		.long	.LASF191
- 10793 081e 21       		.sleb128 33
- 10794 081f 0E       		.uleb128 0xe
- 10795 0820 00000000 		.long	.LASF192
- 10796 0824 22       		.sleb128 34
- 10797 0825 0E       		.uleb128 0xe
- 10798 0826 00000000 		.long	.LASF193
- 10799 082a 23       		.sleb128 35
- 10800 082b 0E       		.uleb128 0xe
- 10801 082c 00000000 		.long	.LASF194
- 10802 0830 24       		.sleb128 36
- 10803 0831 0E       		.uleb128 0xe
- 10804 0832 00000000 		.long	.LASF195
- 10805 0836 25       		.sleb128 37
- 10806 0837 0E       		.uleb128 0xe
- 10807 0838 00000000 		.long	.LASF196
- 10808 083c 26       		.sleb128 38
- 10809 083d 0E       		.uleb128 0xe
- 10810 083e 00000000 		.long	.LASF197
- 10811 0842 27       		.sleb128 39
- 10812 0843 0E       		.uleb128 0xe
- 10813 0844 00000000 		.long	.LASF198
- 10814 0848 28       		.sleb128 40
- 10815 0849 0E       		.uleb128 0xe
- 10816 084a 00000000 		.long	.LASF199
- 10817 084e 29       		.sleb128 41
- 10818 084f 0E       		.uleb128 0xe
- 10819 0850 00000000 		.long	.LASF200
- 10820 0854 2A       		.sleb128 42
- 10821 0855 0E       		.uleb128 0xe
- 10822 0856 00000000 		.long	.LASF201
- 10823 085a 2B       		.sleb128 43
- 10824 085b 0E       		.uleb128 0xe
- 10825 085c 00000000 		.long	.LASF202
- 10826 0860 2C       		.sleb128 44
- 10827 0861 0E       		.uleb128 0xe
- 10828 0862 00000000 		.long	.LASF203
- 10829 0866 2D       		.sleb128 45
- 10830 0867 0E       		.uleb128 0xe
- 10831 0868 00000000 		.long	.LASF204
- 10832 086c 2E       		.sleb128 46
- 10833 086d 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 337
-
-
- 10834 086e 00000000 		.long	.LASF205
- 10835 0872 2F       		.sleb128 47
- 10836 0873 0E       		.uleb128 0xe
- 10837 0874 00000000 		.long	.LASF206
- 10838 0878 30       		.sleb128 48
- 10839 0879 0E       		.uleb128 0xe
- 10840 087a 00000000 		.long	.LASF207
- 10841 087e 31       		.sleb128 49
- 10842 087f 0E       		.uleb128 0xe
- 10843 0880 00000000 		.long	.LASF208
- 10844 0884 32       		.sleb128 50
- 10845 0885 0E       		.uleb128 0xe
- 10846 0886 00000000 		.long	.LASF209
- 10847 088a 33       		.sleb128 51
- 10848 088b 0E       		.uleb128 0xe
- 10849 088c 00000000 		.long	.LASF210
- 10850 0890 34       		.sleb128 52
- 10851 0891 0E       		.uleb128 0xe
- 10852 0892 00000000 		.long	.LASF211
- 10853 0896 35       		.sleb128 53
- 10854 0897 0E       		.uleb128 0xe
- 10855 0898 00000000 		.long	.LASF212
- 10856 089c 36       		.sleb128 54
- 10857 089d 0E       		.uleb128 0xe
- 10858 089e 00000000 		.long	.LASF213
- 10859 08a2 37       		.sleb128 55
- 10860 08a3 0E       		.uleb128 0xe
- 10861 08a4 00000000 		.long	.LASF214
- 10862 08a8 38       		.sleb128 56
- 10863 08a9 0E       		.uleb128 0xe
- 10864 08aa 00000000 		.long	.LASF215
- 10865 08ae 39       		.sleb128 57
- 10866 08af 0E       		.uleb128 0xe
- 10867 08b0 00000000 		.long	.LASF216
- 10868 08b4 3A       		.sleb128 58
- 10869 08b5 0E       		.uleb128 0xe
- 10870 08b6 00000000 		.long	.LASF217
- 10871 08ba 3A       		.sleb128 58
- 10872 08bb 0E       		.uleb128 0xe
- 10873 08bc 00000000 		.long	.LASF218
- 10874 08c0 3B       		.sleb128 59
- 10875 08c1 0E       		.uleb128 0xe
- 10876 08c2 00000000 		.long	.LASF219
- 10877 08c6 3C       		.sleb128 60
- 10878 08c7 0E       		.uleb128 0xe
- 10879 08c8 00000000 		.long	.LASF220
- 10880 08cc 3D       		.sleb128 61
- 10881 08cd 0E       		.uleb128 0xe
- 10882 08ce 00000000 		.long	.LASF221
- 10883 08d2 3E       		.sleb128 62
- 10884 08d3 0E       		.uleb128 0xe
- 10885 08d4 00000000 		.long	.LASF222
- 10886 08d8 3F       		.sleb128 63
- 10887 08d9 0E       		.uleb128 0xe
- 10888 08da 00000000 		.long	.LASF223
- 10889 08de C000     		.sleb128 64
- 10890 08e0 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 338
-
-
- 10891 08e1 00000000 		.long	.LASF224
- 10892 08e5 C100     		.sleb128 65
- 10893 08e7 0E       		.uleb128 0xe
- 10894 08e8 00000000 		.long	.LASF225
- 10895 08ec C200     		.sleb128 66
- 10896 08ee 0E       		.uleb128 0xe
- 10897 08ef 00000000 		.long	.LASF226
- 10898 08f3 C300     		.sleb128 67
- 10899 08f5 0E       		.uleb128 0xe
- 10900 08f6 00000000 		.long	.LASF227
- 10901 08fa C400     		.sleb128 68
- 10902 08fc 00       		.byte	0x0
- 10903 08fd 1E       		.uleb128 0x1e
- 10904 08fe 00000000 		.long	.LASF228
- 10905 0902 04       		.byte	0x4
- 10906 0903 0A       		.byte	0xa
- 10907 0904 0A01     		.value	0x10a
- 10908 0906 FC090000 		.long	0x9fc
- 10909 090a 0E       		.uleb128 0xe
- 10910 090b 00000000 		.long	.LASF229
- 10911 090f 00       		.sleb128 0
- 10912 0910 0E       		.uleb128 0xe
- 10913 0911 00000000 		.long	.LASF230
- 10914 0915 3D       		.sleb128 61
- 10915 0916 0E       		.uleb128 0xe
- 10916 0917 00000000 		.long	.LASF231
- 10917 091b 3E       		.sleb128 62
- 10918 091c 0E       		.uleb128 0xe
- 10919 091d 00000000 		.long	.LASF232
- 10920 0921 3F       		.sleb128 63
- 10921 0922 0E       		.uleb128 0xe
- 10922 0923 00000000 		.long	.LASF233
- 10923 0927 C000     		.sleb128 64
- 10924 0929 0E       		.uleb128 0xe
- 10925 092a 00000000 		.long	.LASF234
- 10926 092e C100     		.sleb128 65
- 10927 0930 0E       		.uleb128 0xe
- 10928 0931 00000000 		.long	.LASF235
- 10929 0935 C200     		.sleb128 66
- 10930 0937 0E       		.uleb128 0xe
- 10931 0938 00000000 		.long	.LASF236
- 10932 093c C300     		.sleb128 67
- 10933 093e 0E       		.uleb128 0xe
- 10934 093f 00000000 		.long	.LASF237
- 10935 0943 C400     		.sleb128 68
- 10936 0945 0E       		.uleb128 0xe
- 10937 0946 00000000 		.long	.LASF238
- 10938 094a C500     		.sleb128 69
- 10939 094c 0E       		.uleb128 0xe
- 10940 094d 00000000 		.long	.LASF239
- 10941 0951 C600     		.sleb128 70
- 10942 0953 0E       		.uleb128 0xe
- 10943 0954 00000000 		.long	.LASF240
- 10944 0958 C700     		.sleb128 71
- 10945 095a 0E       		.uleb128 0xe
- 10946 095b 00000000 		.long	.LASF241
- 10947 095f C800     		.sleb128 72
-
GAS LISTING /tmp/ccPaCTqg.s 			page 339
-
-
- 10948 0961 0E       		.uleb128 0xe
- 10949 0962 00000000 		.long	.LASF242
- 10950 0966 C900     		.sleb128 73
- 10951 0968 0E       		.uleb128 0xe
- 10952 0969 00000000 		.long	.LASF243
- 10953 096d CA00     		.sleb128 74
- 10954 096f 0E       		.uleb128 0xe
- 10955 0970 00000000 		.long	.LASF244
- 10956 0974 CB00     		.sleb128 75
- 10957 0976 0E       		.uleb128 0xe
- 10958 0977 00000000 		.long	.LASF245
- 10959 097b CC00     		.sleb128 76
- 10960 097d 0E       		.uleb128 0xe
- 10961 097e 00000000 		.long	.LASF246
- 10962 0982 CD00     		.sleb128 77
- 10963 0984 0E       		.uleb128 0xe
- 10964 0985 00000000 		.long	.LASF247
- 10965 0989 CE00     		.sleb128 78
- 10966 098b 0E       		.uleb128 0xe
- 10967 098c 00000000 		.long	.LASF248
- 10968 0990 CF00     		.sleb128 79
- 10969 0992 0E       		.uleb128 0xe
- 10970 0993 00000000 		.long	.LASF249
- 10971 0997 D000     		.sleb128 80
- 10972 0999 0E       		.uleb128 0xe
- 10973 099a 00000000 		.long	.LASF250
- 10974 099e D100     		.sleb128 81
- 10975 09a0 0E       		.uleb128 0xe
- 10976 09a1 00000000 		.long	.LASF251
- 10977 09a5 D100     		.sleb128 81
- 10978 09a7 0E       		.uleb128 0xe
- 10979 09a8 00000000 		.long	.LASF252
- 10980 09ac D200     		.sleb128 82
- 10981 09ae 0E       		.uleb128 0xe
- 10982 09af 00000000 		.long	.LASF253
- 10983 09b3 D300     		.sleb128 83
- 10984 09b5 0E       		.uleb128 0xe
- 10985 09b6 00000000 		.long	.LASF254
- 10986 09ba D400     		.sleb128 84
- 10987 09bc 0E       		.uleb128 0xe
- 10988 09bd 00000000 		.long	.LASF255
- 10989 09c1 D500     		.sleb128 85
- 10990 09c3 0E       		.uleb128 0xe
- 10991 09c4 00000000 		.long	.LASF256
- 10992 09c8 D600     		.sleb128 86
- 10993 09ca 0E       		.uleb128 0xe
- 10994 09cb 00000000 		.long	.LASF257
- 10995 09cf D700     		.sleb128 87
- 10996 09d1 0E       		.uleb128 0xe
- 10997 09d2 00000000 		.long	.LASF258
- 10998 09d6 D800     		.sleb128 88
- 10999 09d8 0E       		.uleb128 0xe
- 11000 09d9 00000000 		.long	.LASF259
- 11001 09dd D900     		.sleb128 89
- 11002 09df 0E       		.uleb128 0xe
- 11003 09e0 00000000 		.long	.LASF260
- 11004 09e4 DA00     		.sleb128 90
-
GAS LISTING /tmp/ccPaCTqg.s 			page 340
-
-
- 11005 09e6 0E       		.uleb128 0xe
- 11006 09e7 00000000 		.long	.LASF261
- 11007 09eb DB00     		.sleb128 91
- 11008 09ed 0E       		.uleb128 0xe
- 11009 09ee 00000000 		.long	.LASF262
- 11010 09f2 DC00     		.sleb128 92
- 11011 09f4 0E       		.uleb128 0xe
- 11012 09f5 00000000 		.long	.LASF263
- 11013 09f9 DD00     		.sleb128 93
- 11014 09fb 00       		.byte	0x0
- 11015 09fc 1E       		.uleb128 0x1e
- 11016 09fd 00000000 		.long	.LASF264
- 11017 0a01 04       		.byte	0x4
- 11018 0a02 0A       		.byte	0xa
- 11019 0a03 3401     		.value	0x134
- 11020 0a05 3C0B0000 		.long	0xb3c
- 11021 0a09 0E       		.uleb128 0xe
- 11022 0a0a 00000000 		.long	.LASF265
- 11023 0a0e 00       		.sleb128 0
- 11024 0a0f 0E       		.uleb128 0xe
- 11025 0a10 00000000 		.long	.LASF266
- 11026 0a14 01       		.sleb128 1
- 11027 0a15 0E       		.uleb128 0xe
- 11028 0a16 00000000 		.long	.LASF267
- 11029 0a1a 02       		.sleb128 2
- 11030 0a1b 0E       		.uleb128 0xe
- 11031 0a1c 00000000 		.long	.LASF268
- 11032 0a20 03       		.sleb128 3
- 11033 0a21 0E       		.uleb128 0xe
- 11034 0a22 00000000 		.long	.LASF269
- 11035 0a26 04       		.sleb128 4
- 11036 0a27 0E       		.uleb128 0xe
- 11037 0a28 00000000 		.long	.LASF270
- 11038 0a2c 05       		.sleb128 5
- 11039 0a2d 0E       		.uleb128 0xe
- 11040 0a2e 00000000 		.long	.LASF271
- 11041 0a32 06       		.sleb128 6
- 11042 0a33 0E       		.uleb128 0xe
- 11043 0a34 00000000 		.long	.LASF272
- 11044 0a38 07       		.sleb128 7
- 11045 0a39 0E       		.uleb128 0xe
- 11046 0a3a 00000000 		.long	.LASF273
- 11047 0a3e 08       		.sleb128 8
- 11048 0a3f 0E       		.uleb128 0xe
- 11049 0a40 00000000 		.long	.LASF274
- 11050 0a44 09       		.sleb128 9
- 11051 0a45 0E       		.uleb128 0xe
- 11052 0a46 00000000 		.long	.LASF275
- 11053 0a4a 0A       		.sleb128 10
- 11054 0a4b 0E       		.uleb128 0xe
- 11055 0a4c 00000000 		.long	.LASF276
- 11056 0a50 0B       		.sleb128 11
- 11057 0a51 0E       		.uleb128 0xe
- 11058 0a52 00000000 		.long	.LASF277
- 11059 0a56 0C       		.sleb128 12
- 11060 0a57 0E       		.uleb128 0xe
- 11061 0a58 00000000 		.long	.LASF278
-
GAS LISTING /tmp/ccPaCTqg.s 			page 341
-
-
- 11062 0a5c 0D       		.sleb128 13
- 11063 0a5d 0E       		.uleb128 0xe
- 11064 0a5e 00000000 		.long	.LASF279
- 11065 0a62 0E       		.sleb128 14
- 11066 0a63 0E       		.uleb128 0xe
- 11067 0a64 00000000 		.long	.LASF280
- 11068 0a68 0F       		.sleb128 15
- 11069 0a69 0E       		.uleb128 0xe
- 11070 0a6a 00000000 		.long	.LASF281
- 11071 0a6e 10       		.sleb128 16
- 11072 0a6f 0E       		.uleb128 0xe
- 11073 0a70 00000000 		.long	.LASF282
- 11074 0a74 11       		.sleb128 17
- 11075 0a75 0E       		.uleb128 0xe
- 11076 0a76 00000000 		.long	.LASF283
- 11077 0a7a 12       		.sleb128 18
- 11078 0a7b 0E       		.uleb128 0xe
- 11079 0a7c 00000000 		.long	.LASF284
- 11080 0a80 13       		.sleb128 19
- 11081 0a81 0E       		.uleb128 0xe
- 11082 0a82 00000000 		.long	.LASF285
- 11083 0a86 14       		.sleb128 20
- 11084 0a87 0E       		.uleb128 0xe
- 11085 0a88 00000000 		.long	.LASF286
- 11086 0a8c 15       		.sleb128 21
- 11087 0a8d 0E       		.uleb128 0xe
- 11088 0a8e 00000000 		.long	.LASF287
- 11089 0a92 16       		.sleb128 22
- 11090 0a93 0E       		.uleb128 0xe
- 11091 0a94 00000000 		.long	.LASF288
- 11092 0a98 17       		.sleb128 23
- 11093 0a99 0E       		.uleb128 0xe
- 11094 0a9a 00000000 		.long	.LASF289
- 11095 0a9e 18       		.sleb128 24
- 11096 0a9f 0E       		.uleb128 0xe
- 11097 0aa0 00000000 		.long	.LASF290
- 11098 0aa4 19       		.sleb128 25
- 11099 0aa5 0E       		.uleb128 0xe
- 11100 0aa6 00000000 		.long	.LASF291
- 11101 0aaa 1A       		.sleb128 26
- 11102 0aab 0E       		.uleb128 0xe
- 11103 0aac 00000000 		.long	.LASF292
- 11104 0ab0 1B       		.sleb128 27
- 11105 0ab1 0E       		.uleb128 0xe
- 11106 0ab2 00000000 		.long	.LASF293
- 11107 0ab6 1C       		.sleb128 28
- 11108 0ab7 0E       		.uleb128 0xe
- 11109 0ab8 00000000 		.long	.LASF294
- 11110 0abc 1D       		.sleb128 29
- 11111 0abd 0E       		.uleb128 0xe
- 11112 0abe 00000000 		.long	.LASF295
- 11113 0ac2 1E       		.sleb128 30
- 11114 0ac3 0E       		.uleb128 0xe
- 11115 0ac4 00000000 		.long	.LASF296
- 11116 0ac8 1F       		.sleb128 31
- 11117 0ac9 0E       		.uleb128 0xe
- 11118 0aca 00000000 		.long	.LASF297
-
GAS LISTING /tmp/ccPaCTqg.s 			page 342
-
-
- 11119 0ace 20       		.sleb128 32
- 11120 0acf 0E       		.uleb128 0xe
- 11121 0ad0 00000000 		.long	.LASF298
- 11122 0ad4 21       		.sleb128 33
- 11123 0ad5 0E       		.uleb128 0xe
- 11124 0ad6 00000000 		.long	.LASF299
- 11125 0ada 22       		.sleb128 34
- 11126 0adb 0E       		.uleb128 0xe
- 11127 0adc 00000000 		.long	.LASF300
- 11128 0ae0 23       		.sleb128 35
- 11129 0ae1 0E       		.uleb128 0xe
- 11130 0ae2 00000000 		.long	.LASF301
- 11131 0ae6 24       		.sleb128 36
- 11132 0ae7 0E       		.uleb128 0xe
- 11133 0ae8 00000000 		.long	.LASF302
- 11134 0aec 25       		.sleb128 37
- 11135 0aed 0E       		.uleb128 0xe
- 11136 0aee 00000000 		.long	.LASF303
- 11137 0af2 26       		.sleb128 38
- 11138 0af3 0E       		.uleb128 0xe
- 11139 0af4 00000000 		.long	.LASF304
- 11140 0af8 27       		.sleb128 39
- 11141 0af9 0E       		.uleb128 0xe
- 11142 0afa 00000000 		.long	.LASF305
- 11143 0afe 28       		.sleb128 40
- 11144 0aff 0E       		.uleb128 0xe
- 11145 0b00 00000000 		.long	.LASF306
- 11146 0b04 29       		.sleb128 41
- 11147 0b05 0E       		.uleb128 0xe
- 11148 0b06 00000000 		.long	.LASF307
- 11149 0b0a 29       		.sleb128 41
- 11150 0b0b 0E       		.uleb128 0xe
- 11151 0b0c 00000000 		.long	.LASF308
- 11152 0b10 2A       		.sleb128 42
- 11153 0b11 0E       		.uleb128 0xe
- 11154 0b12 00000000 		.long	.LASF309
- 11155 0b16 2B       		.sleb128 43
- 11156 0b17 0E       		.uleb128 0xe
- 11157 0b18 00000000 		.long	.LASF310
- 11158 0b1c 2C       		.sleb128 44
- 11159 0b1d 0E       		.uleb128 0xe
- 11160 0b1e 00000000 		.long	.LASF311
- 11161 0b22 2D       		.sleb128 45
- 11162 0b23 0E       		.uleb128 0xe
- 11163 0b24 00000000 		.long	.LASF312
- 11164 0b28 2E       		.sleb128 46
- 11165 0b29 0E       		.uleb128 0xe
- 11166 0b2a 00000000 		.long	.LASF313
- 11167 0b2e 2F       		.sleb128 47
- 11168 0b2f 0E       		.uleb128 0xe
- 11169 0b30 00000000 		.long	.LASF314
- 11170 0b34 30       		.sleb128 48
- 11171 0b35 0E       		.uleb128 0xe
- 11172 0b36 00000000 		.long	.LASF315
- 11173 0b3a 31       		.sleb128 49
- 11174 0b3b 00       		.byte	0x0
- 11175 0b3c 1F       		.uleb128 0x1f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 343
-
-
- 11176 0b3d 00000000 		.long	.LASF317
- 11177 0b41 01       		.byte	0x1
- 11178 0b42 2803     		.value	0x328
- 11179 0b44 01       		.byte	0x1
- 11180 0b45 FD000000 		.long	0xfd
- 11181 0b49 00000000 		.quad	.LFB580
- 11181      00000000 
- 11182 0b51 00000000 		.quad	.LFE580
- 11182      00000000 
- 11183 0b59 00000000 		.long	.LLST0
- 11184 0b5d 7E0B0000 		.long	0xb7e
- 11185 0b61 20       		.uleb128 0x20
- 11186 0b62 00000000 		.long	.LASF63
- 11187 0b66 01       		.byte	0x1
- 11188 0b67 2803     		.value	0x328
- 11189 0b69 FD000000 		.long	0xfd
- 11190 0b6d 01       		.byte	0x1
- 11191 0b6e 61       		.byte	0x61
- 11192 0b6f 20       		.uleb128 0x20
- 11193 0b70 00000000 		.long	.LASF316
- 11194 0b74 01       		.byte	0x1
- 11195 0b75 2803     		.value	0x328
- 11196 0b77 7E0B0000 		.long	0xb7e
- 11197 0b7b 01       		.byte	0x1
- 11198 0b7c 62       		.byte	0x62
- 11199 0b7d 00       		.byte	0x0
- 11200 0b7e 06       		.uleb128 0x6
- 11201 0b7f FD000000 		.long	0xfd
- 11202 0b83 1F       		.uleb128 0x1f
- 11203 0b84 00000000 		.long	.LASF318
- 11204 0b88 01       		.byte	0x1
- 11205 0b89 3103     		.value	0x331
- 11206 0b8b 01       		.byte	0x1
- 11207 0b8c FD000000 		.long	0xfd
- 11208 0b90 00000000 		.quad	.LFB581
- 11208      00000000 
- 11209 0b98 00000000 		.quad	.LFE581
- 11209      00000000 
- 11210 0ba0 00000000 		.long	.LLST1
- 11211 0ba4 C50B0000 		.long	0xbc5
- 11212 0ba8 20       		.uleb128 0x20
- 11213 0ba9 00000000 		.long	.LASF63
- 11214 0bad 01       		.byte	0x1
- 11215 0bae 3103     		.value	0x331
- 11216 0bb0 FD000000 		.long	0xfd
- 11217 0bb4 01       		.byte	0x1
- 11218 0bb5 61       		.byte	0x61
- 11219 0bb6 20       		.uleb128 0x20
- 11220 0bb7 00000000 		.long	.LASF316
- 11221 0bbb 01       		.byte	0x1
- 11222 0bbc 3203     		.value	0x332
- 11223 0bbe 7E0B0000 		.long	0xb7e
- 11224 0bc2 01       		.byte	0x1
- 11225 0bc3 62       		.byte	0x62
- 11226 0bc4 00       		.byte	0x0
- 11227 0bc5 1F       		.uleb128 0x1f
- 11228 0bc6 00000000 		.long	.LASF319
-
GAS LISTING /tmp/ccPaCTqg.s 			page 344
-
-
- 11229 0bca 01       		.byte	0x1
- 11230 0bcb 3B03     		.value	0x33b
- 11231 0bcd 01       		.byte	0x1
- 11232 0bce FD000000 		.long	0xfd
- 11233 0bd2 00000000 		.quad	.LFB582
- 11233      00000000 
- 11234 0bda 00000000 		.quad	.LFE582
- 11234      00000000 
- 11235 0be2 00000000 		.long	.LLST2
- 11236 0be6 070C0000 		.long	0xc07
- 11237 0bea 20       		.uleb128 0x20
- 11238 0beb 00000000 		.long	.LASF63
- 11239 0bef 01       		.byte	0x1
- 11240 0bf0 3B03     		.value	0x33b
- 11241 0bf2 FD000000 		.long	0xfd
- 11242 0bf6 01       		.byte	0x1
- 11243 0bf7 61       		.byte	0x61
- 11244 0bf8 20       		.uleb128 0x20
- 11245 0bf9 00000000 		.long	.LASF316
- 11246 0bfd 01       		.byte	0x1
- 11247 0bfe 3B03     		.value	0x33b
- 11248 0c00 7E0B0000 		.long	0xb7e
- 11249 0c04 01       		.byte	0x1
- 11250 0c05 62       		.byte	0x62
- 11251 0c06 00       		.byte	0x0
- 11252 0c07 1F       		.uleb128 0x1f
- 11253 0c08 00000000 		.long	.LASF320
- 11254 0c0c 01       		.byte	0x1
- 11255 0c0d 4403     		.value	0x344
- 11256 0c0f 01       		.byte	0x1
- 11257 0c10 FD000000 		.long	0xfd
- 11258 0c14 00000000 		.quad	.LFB583
- 11258      00000000 
- 11259 0c1c 00000000 		.quad	.LFE583
- 11259      00000000 
- 11260 0c24 00000000 		.long	.LLST3
- 11261 0c28 490C0000 		.long	0xc49
- 11262 0c2c 20       		.uleb128 0x20
- 11263 0c2d 00000000 		.long	.LASF63
- 11264 0c31 01       		.byte	0x1
- 11265 0c32 4403     		.value	0x344
- 11266 0c34 FD000000 		.long	0xfd
- 11267 0c38 01       		.byte	0x1
- 11268 0c39 61       		.byte	0x61
- 11269 0c3a 20       		.uleb128 0x20
- 11270 0c3b 00000000 		.long	.LASF316
- 11271 0c3f 01       		.byte	0x1
- 11272 0c40 4503     		.value	0x345
- 11273 0c42 7E0B0000 		.long	0xb7e
- 11274 0c46 01       		.byte	0x1
- 11275 0c47 62       		.byte	0x62
- 11276 0c48 00       		.byte	0x0
- 11277 0c49 1F       		.uleb128 0x1f
- 11278 0c4a 00000000 		.long	.LASF321
- 11279 0c4e 01       		.byte	0x1
- 11280 0c4f 5B03     		.value	0x35b
- 11281 0c51 01       		.byte	0x1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 345
-
-
- 11282 0c52 FD000000 		.long	0xfd
- 11283 0c56 00000000 		.quad	.LFB585
- 11283      00000000 
- 11284 0c5e 00000000 		.quad	.LFE585
- 11284      00000000 
- 11285 0c66 00000000 		.long	.LLST4
- 11286 0c6a 7D0C0000 		.long	0xc7d
- 11287 0c6e 20       		.uleb128 0x20
- 11288 0c6f 00000000 		.long	.LASF316
- 11289 0c73 01       		.byte	0x1
- 11290 0c74 5B03     		.value	0x35b
- 11291 0c76 7E0B0000 		.long	0xb7e
- 11292 0c7a 01       		.byte	0x1
- 11293 0c7b 61       		.byte	0x61
- 11294 0c7c 00       		.byte	0x0
- 11295 0c7d 21       		.uleb128 0x21
- 11296 0c7e 00000000 		.long	.LASF322
- 11297 0c82 02       		.byte	0x2
- 11298 0c83 38       		.byte	0x38
- 11299 0c84 01       		.byte	0x1
- 11300 0c85 6D000000 		.long	0x6d
- 11301 0c89 00000000 		.quad	.LFB602
- 11301      00000000 
- 11302 0c91 00000000 		.quad	.LFE602
- 11302      00000000 
- 11303 0c99 00000000 		.long	.LLST5
- 11304 0c9d BB0C0000 		.long	0xcbb
- 11305 0ca1 22       		.uleb128 0x22
- 11306 0ca2 6900     		.string	"i"
- 11307 0ca4 02       		.byte	0x2
- 11308 0ca5 38       		.byte	0x38
- 11309 0ca6 6D000000 		.long	0x6d
- 11310 0caa 02       		.byte	0x2
- 11311 0cab 91       		.byte	0x91
- 11312 0cac 64       		.sleb128 -28
- 11313 0cad 23       		.uleb128 0x23
- 11314 0cae 72746E00 		.string	"rtn"
- 11315 0cb2 02       		.byte	0x2
- 11316 0cb3 3A       		.byte	0x3a
- 11317 0cb4 6D000000 		.long	0x6d
- 11318 0cb8 01       		.byte	0x1
- 11319 0cb9 53       		.byte	0x53
- 11320 0cba 00       		.byte	0x0
- 11321 0cbb 24       		.uleb128 0x24
- 11322 0cbc 00000000 		.long	.LASF323
- 11323 0cc0 03       		.byte	0x3
- 11324 0cc1 79       		.byte	0x79
- 11325 0cc2 01       		.byte	0x1
- 11326 0cc3 C9010000 		.long	0x1c9
- 11327 0cc7 03       		.byte	0x3
- 11328 0cc8 E30C0000 		.long	0xce3
- 11329 0ccc 25       		.uleb128 0x25
- 11330 0ccd 61696E00 		.string	"ain"
- 11331 0cd1 03       		.byte	0x3
- 11332 0cd2 79       		.byte	0x79
- 11333 0cd3 E3000000 		.long	0xe3
- 11334 0cd7 26       		.uleb128 0x26
-
GAS LISTING /tmp/ccPaCTqg.s 			page 346
-
-
- 11335 0cd8 76656300 		.string	"vec"
- 11336 0cdc 03       		.byte	0x3
- 11337 0cdd 7D       		.byte	0x7d
- 11338 0cde C9010000 		.long	0x1c9
- 11339 0ce2 00       		.byte	0x0
- 11340 0ce3 27       		.uleb128 0x27
- 11341 0ce4 00000000 		.long	.LASF324
- 11342 0ce8 03       		.byte	0x3
- 11343 0ce9 8606     		.value	0x686
- 11344 0ceb 01       		.byte	0x1
- 11345 0cec C9010000 		.long	0x1c9
- 11346 0cf0 03       		.byte	0x3
- 11347 0cf1 1A0D0000 		.long	0xd1a
- 11348 0cf5 28       		.uleb128 0x28
- 11349 0cf6 00000000 		.long	.LASF63
- 11350 0cfa 03       		.byte	0x3
- 11351 0cfb 8606     		.value	0x686
- 11352 0cfd C9010000 		.long	0x1c9
- 11353 0d01 28       		.uleb128 0x28
- 11354 0d02 00000000 		.long	.LASF325
- 11355 0d06 03       		.byte	0x3
- 11356 0d07 8606     		.value	0x686
- 11357 0d09 B4000000 		.long	0xb4
- 11358 0d0d 29       		.uleb128 0x29
- 11359 0d0e 746D7000 		.string	"tmp"
- 11360 0d12 03       		.byte	0x3
- 11361 0d13 8906     		.value	0x689
- 11362 0d15 C9010000 		.long	0x1c9
- 11363 0d19 00       		.byte	0x0
- 11364 0d1a 27       		.uleb128 0x27
- 11365 0d1b 00000000 		.long	.LASF326
- 11366 0d1f 01       		.byte	0x1
- 11367 0d20 5103     		.value	0x351
- 11368 0d22 01       		.byte	0x1
- 11369 0d23 FD000000 		.long	0xfd
- 11370 0d27 03       		.byte	0x3
- 11371 0d28 450D0000 		.long	0xd45
- 11372 0d2c 28       		.uleb128 0x28
- 11373 0d2d 00000000 		.long	.LASF316
- 11374 0d31 01       		.byte	0x1
- 11375 0d32 5103     		.value	0x351
- 11376 0d34 7E0B0000 		.long	0xb7e
- 11377 0d38 28       		.uleb128 0x28
- 11378 0d39 00000000 		.long	.LASF325
- 11379 0d3d 01       		.byte	0x1
- 11380 0d3e 5203     		.value	0x352
- 11381 0d40 B4000000 		.long	0xb4
- 11382 0d44 00       		.byte	0x0
- 11383 0d45 27       		.uleb128 0x27
- 11384 0d46 00000000 		.long	.LASF327
- 11385 0d4a 03       		.byte	0x3
- 11386 0d4b 4605     		.value	0x546
- 11387 0d4d 01       		.byte	0x1
- 11388 0d4e C9010000 		.long	0x1c9
- 11389 0d52 03       		.byte	0x3
- 11390 0d53 640D0000 		.long	0xd64
- 11391 0d57 28       		.uleb128 0x28
-
GAS LISTING /tmp/ccPaCTqg.s 			page 347
-
-
- 11392 0d58 00000000 		.long	.LASF63
- 11393 0d5c 03       		.byte	0x3
- 11394 0d5d 4605     		.value	0x546
- 11395 0d5f C9010000 		.long	0x1c9
- 11396 0d63 00       		.byte	0x0
- 11397 0d64 27       		.uleb128 0x27
- 11398 0d65 00000000 		.long	.LASF328
- 11399 0d69 01       		.byte	0x1
- 11400 0d6a C001     		.value	0x1c0
- 11401 0d6c 01       		.byte	0x1
- 11402 0d6d FD000000 		.long	0xfd
- 11403 0d71 03       		.byte	0x3
- 11404 0d72 8F0D0000 		.long	0xd8f
- 11405 0d76 2A       		.uleb128 0x2a
- 11406 0d77 76696E00 		.string	"vin"
- 11407 0d7b 01       		.byte	0x1
- 11408 0d7c C001     		.value	0x1c0
- 11409 0d7e FD000000 		.long	0xfd
- 11410 0d82 28       		.uleb128 0x28
- 11411 0d83 00000000 		.long	.LASF329
- 11412 0d87 01       		.byte	0x1
- 11413 0d88 C001     		.value	0x1c0
- 11414 0d8a B4000000 		.long	0xb4
- 11415 0d8e 00       		.byte	0x0
- 11416 0d8f 27       		.uleb128 0x27
- 11417 0d90 00000000 		.long	.LASF330
- 11418 0d94 03       		.byte	0x3
- 11419 0d95 1A06     		.value	0x61a
- 11420 0d97 01       		.byte	0x1
- 11421 0d98 C9010000 		.long	0x1c9
- 11422 0d9c 03       		.byte	0x3
- 11423 0d9d BA0D0000 		.long	0xdba
- 11424 0da1 28       		.uleb128 0x28
- 11425 0da2 00000000 		.long	.LASF63
- 11426 0da6 03       		.byte	0x3
- 11427 0da7 1A06     		.value	0x61a
- 11428 0da9 C9010000 		.long	0x1c9
- 11429 0dad 2B       		.uleb128 0x2b
- 11430 0dae 00000000 		.long	.LASF331
- 11431 0db2 03       		.byte	0x3
- 11432 0db3 1D06     		.value	0x61d
- 11433 0db5 C9010000 		.long	0x1c9
- 11434 0db9 00       		.byte	0x0
- 11435 0dba 27       		.uleb128 0x27
- 11436 0dbb 00000000 		.long	.LASF332
- 11437 0dbf 03       		.byte	0x3
- 11438 0dc0 FA04     		.value	0x4fa
- 11439 0dc2 01       		.byte	0x1
- 11440 0dc3 C9010000 		.long	0x1c9
- 11441 0dc7 03       		.byte	0x3
- 11442 0dc8 F60D0000 		.long	0xdf6
- 11443 0dcc 28       		.uleb128 0x28
- 11444 0dcd 00000000 		.long	.LASF63
- 11445 0dd1 03       		.byte	0x3
- 11446 0dd2 FA04     		.value	0x4fa
- 11447 0dd4 C9010000 		.long	0x1c9
- 11448 0dd8 2C       		.uleb128 0x2c
-
GAS LISTING /tmp/ccPaCTqg.s 			page 348
-
-
- 11449 0dd9 00000000 		.long	.LASF329
- 11450 0ddd 03       		.byte	0x3
- 11451 0dde FD04     		.value	0x4fd
- 11452 0de0 F60D0000 		.long	0xdf6
- 11453 0de4 10       		.byte	0x10
- 11454 0de5 FF       		.byte	0xff
- 11455 0de6 FF       		.byte	0xff
- 11456 0de7 FF       		.byte	0xff
- 11457 0de8 FF       		.byte	0xff
- 11458 0de9 00       		.byte	0x0
- 11459 0dea 01       		.byte	0x1
- 11460 0deb 02       		.byte	0x2
- 11461 0dec 03       		.byte	0x3
- 11462 0ded 04       		.byte	0x4
- 11463 0dee 05       		.byte	0x5
- 11464 0def 06       		.byte	0x6
- 11465 0df0 07       		.byte	0x7
- 11466 0df1 08       		.byte	0x8
- 11467 0df2 09       		.byte	0x9
- 11468 0df3 0A       		.byte	0xa
- 11469 0df4 0B       		.byte	0xb
- 11470 0df5 00       		.byte	0x0
- 11471 0df6 06       		.uleb128 0x6
- 11472 0df7 C9010000 		.long	0x1c9
- 11473 0dfb 27       		.uleb128 0x27
- 11474 0dfc 00000000 		.long	.LASF333
- 11475 0e00 03       		.byte	0x3
- 11476 0e01 7101     		.value	0x171
- 11477 0e03 01       		.byte	0x1
- 11478 0e04 C9010000 		.long	0x1c9
- 11479 0e08 03       		.byte	0x3
- 11480 0e09 260E0000 		.long	0xe26
- 11481 0e0d 28       		.uleb128 0x28
- 11482 0e0e 00000000 		.long	.LASF334
- 11483 0e12 03       		.byte	0x3
- 11484 0e13 7101     		.value	0x171
- 11485 0e15 C9010000 		.long	0x1c9
- 11486 0e19 28       		.uleb128 0x28
- 11487 0e1a 00000000 		.long	.LASF329
- 11488 0e1e 03       		.byte	0x3
- 11489 0e1f 7101     		.value	0x171
- 11490 0e21 C9010000 		.long	0x1c9
- 11491 0e25 00       		.byte	0x0
- 11492 0e26 27       		.uleb128 0x27
- 11493 0e27 00000000 		.long	.LASF335
- 11494 0e2b 01       		.byte	0x1
- 11495 0e2c 0F02     		.value	0x20f
- 11496 0e2e 01       		.byte	0x1
- 11497 0e2f FD000000 		.long	0xfd
- 11498 0e33 03       		.byte	0x3
- 11499 0e34 510E0000 		.long	0xe51
- 11500 0e38 2A       		.uleb128 0x2a
- 11501 0e39 76696E00 		.string	"vin"
- 11502 0e3d 01       		.byte	0x1
- 11503 0e3e 0F02     		.value	0x20f
- 11504 0e40 FD000000 		.long	0xfd
- 11505 0e44 28       		.uleb128 0x28
-
GAS LISTING /tmp/ccPaCTqg.s 			page 349
-
-
- 11506 0e45 00000000 		.long	.LASF336
- 11507 0e49 01       		.byte	0x1
- 11508 0e4a 0F02     		.value	0x20f
- 11509 0e4c 7E0B0000 		.long	0xb7e
- 11510 0e50 00       		.byte	0x0
- 11511 0e51 2D       		.uleb128 0x2d
- 11512 0e52 00000000 		.long	.LASF346
- 11513 0e56 03       		.byte	0x3
- 11514 0e57 C206     		.value	0x6c2
- 11515 0e59 01       		.byte	0x1
- 11516 0e5a 00000000 		.quad	.LFB656
- 11516      00000000 
- 11517 0e62 00000000 		.quad	.LFE656
- 11517      00000000 
- 11518 0e6a 00000000 		.long	.LLST6
- 11519 0e6e 712B0000 		.long	0x2b71
- 11520 0e72 20       		.uleb128 0x20
- 11521 0e73 00000000 		.long	.LASF61
- 11522 0e77 03       		.byte	0x3
- 11523 0e78 C206     		.value	0x6c2
- 11524 0e7a 712B0000 		.long	0x2b71
- 11525 0e7e 03       		.byte	0x3
- 11526 0e7f 91       		.byte	0x91
- 11527 0e80 E862     		.sleb128 -3736
- 11528 0e82 2E       		.uleb128 0x2e
- 11529 0e83 6B657900 		.string	"key"
- 11530 0e87 03       		.byte	0x3
- 11531 0e88 C206     		.value	0x6c2
- 11532 0e8a 772B0000 		.long	0x2b77
- 11533 0e8e 03       		.byte	0x3
- 11534 0e8f 91       		.byte	0x91
- 11535 0e90 E062     		.sleb128 -3744
- 11536 0e92 2F       		.uleb128 0x2f
- 11537 0e93 00000000 		.long	.LASF63
- 11538 0e97 03       		.byte	0x3
- 11539 0e98 C406     		.value	0x6c4
- 11540 0e9a C9010000 		.long	0x1c9
- 11541 0e9e 03       		.byte	0x3
- 11542 0e9f 91       		.byte	0x91
- 11543 0ea0 F062     		.sleb128 -3728
- 11544 0ea2 2F       		.uleb128 0x2f
- 11545 0ea3 00000000 		.long	.LASF337
- 11546 0ea7 03       		.byte	0x3
- 11547 0ea8 C506     		.value	0x6c5
- 11548 0eaa C9010000 		.long	0x1c9
- 11549 0eae 03       		.byte	0x3
- 11550 0eaf 91       		.byte	0x91
- 11551 0eb0 8063     		.sleb128 -3712
- 11552 0eb2 30       		.uleb128 0x30
- 11553 0eb3 BB0C0000 		.long	0xcbb
- 11554 0eb7 00000000 		.quad	.LBB284
- 11554      00000000 
- 11555 0ebf 00000000 		.quad	.LBE284
- 11555      00000000 
- 11556 0ec7 03       		.byte	0x3
- 11557 0ec8 C706     		.value	0x6c7
- 11558 0eca F30E0000 		.long	0xef3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 350
-
-
- 11559 0ece 31       		.uleb128 0x31
- 11560 0ecf CC0C0000 		.long	0xccc
- 11561 0ed3 03       		.byte	0x3
- 11562 0ed4 91       		.byte	0x91
- 11563 0ed5 9063     		.sleb128 -3696
- 11564 0ed7 32       		.uleb128 0x32
- 11565 0ed8 00000000 		.quad	.LBB285
- 11565      00000000 
- 11566 0ee0 00000000 		.quad	.LBE285
- 11566      00000000 
- 11567 0ee8 33       		.uleb128 0x33
- 11568 0ee9 D70C0000 		.long	0xcd7
- 11569 0eed 03       		.byte	0x3
- 11570 0eee 76       		.byte	0x76
- 11571 0eef A060     		.sleb128 -4064
- 11572 0ef1 00       		.byte	0x0
- 11573 0ef2 00       		.byte	0x0
- 11574 0ef3 30       		.uleb128 0x30
- 11575 0ef4 E30C0000 		.long	0xce3
- 11576 0ef8 00000000 		.quad	.LBB286
- 11576      00000000 
- 11577 0f00 00000000 		.quad	.LBE286
- 11577      00000000 
- 11578 0f08 03       		.byte	0x3
- 11579 0f09 D006     		.value	0x6d0
- 11580 0f0b B90F0000 		.long	0xfb9
- 11581 0f0f 31       		.uleb128 0x31
- 11582 0f10 010D0000 		.long	0xd01
- 11583 0f14 03       		.byte	0x3
- 11584 0f15 91       		.byte	0x91
- 11585 0f16 9C63     		.sleb128 -3684
- 11586 0f18 31       		.uleb128 0x31
- 11587 0f19 F50C0000 		.long	0xcf5
- 11588 0f1d 03       		.byte	0x3
- 11589 0f1e 91       		.byte	0x91
- 11590 0f1f A063     		.sleb128 -3680
- 11591 0f21 32       		.uleb128 0x32
- 11592 0f22 00000000 		.quad	.LBB287
- 11592      00000000 
- 11593 0f2a 00000000 		.quad	.LBE287
- 11593      00000000 
- 11594 0f32 33       		.uleb128 0x33
- 11595 0f33 0D0D0000 		.long	0xd0d
- 11596 0f37 03       		.byte	0x3
- 11597 0f38 76       		.byte	0x76
- 11598 0f39 B060     		.sleb128 -4048
- 11599 0f3b 30       		.uleb128 0x30
- 11600 0f3c 1A0D0000 		.long	0xd1a
- 11601 0f40 00000000 		.quad	.LBB288
- 11601      00000000 
- 11602 0f48 00000000 		.quad	.LBE288
- 11602      00000000 
- 11603 0f50 03       		.byte	0x3
- 11604 0f51 8A06     		.value	0x68a
- 11605 0f53 6A0F0000 		.long	0xf6a
- 11606 0f57 31       		.uleb128 0x31
- 11607 0f58 380D0000 		.long	0xd38
-
GAS LISTING /tmp/ccPaCTqg.s 			page 351
-
-
- 11608 0f5c 03       		.byte	0x3
- 11609 0f5d 91       		.byte	0x91
- 11610 0f5e BC63     		.sleb128 -3652
- 11611 0f60 31       		.uleb128 0x31
- 11612 0f61 2C0D0000 		.long	0xd2c
- 11613 0f65 03       		.byte	0x3
- 11614 0f66 91       		.byte	0x91
- 11615 0f67 C063     		.sleb128 -3648
- 11616 0f69 00       		.byte	0x0
- 11617 0f6a 34       		.uleb128 0x34
- 11618 0f6b 450D0000 		.long	0xd45
- 11619 0f6f 00000000 		.quad	.LBB290
- 11619      00000000 
- 11620 0f77 00000000 		.quad	.LBE290
- 11620      00000000 
- 11621 0f7f 03       		.byte	0x3
- 11622 0f80 8B06     		.value	0x68b
- 11623 0f82 31       		.uleb128 0x31
- 11624 0f83 570D0000 		.long	0xd57
- 11625 0f87 03       		.byte	0x3
- 11626 0f88 91       		.byte	0x91
- 11627 0f89 D063     		.sleb128 -3632
- 11628 0f8b 34       		.uleb128 0x34
- 11629 0f8c 640D0000 		.long	0xd64
- 11630 0f90 00000000 		.quad	.LBB292
- 11630      00000000 
- 11631 0f98 00000000 		.quad	.LBE292
- 11631      00000000 
- 11632 0fa0 03       		.byte	0x3
- 11633 0fa1 4905     		.value	0x549
- 11634 0fa3 31       		.uleb128 0x31
- 11635 0fa4 820D0000 		.long	0xd82
- 11636 0fa8 03       		.byte	0x3
- 11637 0fa9 91       		.byte	0x91
- 11638 0faa EC63     		.sleb128 -3604
- 11639 0fac 31       		.uleb128 0x31
- 11640 0fad 760D0000 		.long	0xd76
- 11641 0fb1 03       		.byte	0x3
- 11642 0fb2 91       		.byte	0x91
- 11643 0fb3 F063     		.sleb128 -3600
- 11644 0fb5 00       		.byte	0x0
- 11645 0fb6 00       		.byte	0x0
- 11646 0fb7 00       		.byte	0x0
- 11647 0fb8 00       		.byte	0x0
- 11648 0fb9 30       		.uleb128 0x30
- 11649 0fba 8F0D0000 		.long	0xd8f
- 11650 0fbe 00000000 		.quad	.LBB294
- 11650      00000000 
- 11651 0fc6 00000000 		.quad	.LBE294
- 11651      00000000 
- 11652 0fce 03       		.byte	0x3
- 11653 0fcf D006     		.value	0x6d0
- 11654 0fd1 CD110000 		.long	0x11cd
- 11655 0fd5 31       		.uleb128 0x31
- 11656 0fd6 A10D0000 		.long	0xda1
- 11657 0fda 03       		.byte	0x3
- 11658 0fdb 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 352
-
-
- 11659 0fdc 8064     		.sleb128 -3584
- 11660 0fde 32       		.uleb128 0x32
- 11661 0fdf 00000000 		.quad	.LBB295
- 11661      00000000 
- 11662 0fe7 00000000 		.quad	.LBE295
- 11662      00000000 
- 11663 0fef 33       		.uleb128 0x33
- 11664 0ff0 AD0D0000 		.long	0xdad
- 11665 0ff4 03       		.byte	0x3
- 11666 0ff5 76       		.byte	0x76
- 11667 0ff6 C060     		.sleb128 -4032
- 11668 0ff8 30       		.uleb128 0x30
- 11669 0ff9 BA0D0000 		.long	0xdba
- 11670 0ffd 00000000 		.quad	.LBB296
- 11670      00000000 
- 11671 1005 00000000 		.quad	.LBE296
- 11671      00000000 
- 11672 100d 03       		.byte	0x3
- 11673 100e 1F06     		.value	0x61f
- 11674 1010 95100000 		.long	0x1095
- 11675 1014 31       		.uleb128 0x31
- 11676 1015 CC0D0000 		.long	0xdcc
- 11677 1019 03       		.byte	0x3
- 11678 101a 91       		.byte	0x91
- 11679 101b 9064     		.sleb128 -3568
- 11680 101d 32       		.uleb128 0x32
- 11681 101e 00000000 		.quad	.LBB297
- 11681      00000000 
- 11682 1026 00000000 		.quad	.LBE297
- 11682      00000000 
- 11683 102e 33       		.uleb128 0x33
- 11684 102f D80D0000 		.long	0xdd8
- 11685 1033 09       		.byte	0x9
- 11686 1034 03       		.byte	0x3
- 11687 1035 00000000 		.quad	mask.8002
- 11687      00000000 
- 11688 103d 34       		.uleb128 0x34
- 11689 103e FB0D0000 		.long	0xdfb
- 11690 1042 00000000 		.quad	.LBB298
- 11690      00000000 
- 11691 104a 00000000 		.quad	.LBE298
- 11691      00000000 
- 11692 1052 03       		.byte	0x3
- 11693 1053 FE04     		.value	0x4fe
- 11694 1055 31       		.uleb128 0x31
- 11695 1056 190E0000 		.long	0xe19
- 11696 105a 03       		.byte	0x3
- 11697 105b 91       		.byte	0x91
- 11698 105c A064     		.sleb128 -3552
- 11699 105e 31       		.uleb128 0x31
- 11700 105f 0D0E0000 		.long	0xe0d
- 11701 1063 03       		.byte	0x3
- 11702 1064 91       		.byte	0x91
- 11703 1065 B064     		.sleb128 -3536
- 11704 1067 34       		.uleb128 0x34
- 11705 1068 260E0000 		.long	0xe26
- 11706 106c 00000000 		.quad	.LBB300
-
GAS LISTING /tmp/ccPaCTqg.s 			page 353
-
-
- 11706      00000000 
- 11707 1074 00000000 		.quad	.LBE300
- 11707      00000000 
- 11708 107c 03       		.byte	0x3
- 11709 107d 7501     		.value	0x175
- 11710 107f 31       		.uleb128 0x31
- 11711 1080 440E0000 		.long	0xe44
- 11712 1084 03       		.byte	0x3
- 11713 1085 91       		.byte	0x91
- 11714 1086 C064     		.sleb128 -3520
- 11715 1088 31       		.uleb128 0x31
- 11716 1089 380E0000 		.long	0xe38
- 11717 108d 03       		.byte	0x3
- 11718 108e 91       		.byte	0x91
- 11719 108f D064     		.sleb128 -3504
- 11720 1091 00       		.byte	0x0
- 11721 1092 00       		.byte	0x0
- 11722 1093 00       		.byte	0x0
- 11723 1094 00       		.byte	0x0
- 11724 1095 30       		.uleb128 0x30
- 11725 1096 BA0D0000 		.long	0xdba
- 11726 109a 00000000 		.quad	.LBB302
- 11726      00000000 
- 11727 10a2 00000000 		.quad	.LBE302
- 11727      00000000 
- 11728 10aa 03       		.byte	0x3
- 11729 10ab 2006     		.value	0x620
- 11730 10ad 32110000 		.long	0x1132
- 11731 10b1 31       		.uleb128 0x31
- 11732 10b2 CC0D0000 		.long	0xdcc
- 11733 10b6 03       		.byte	0x3
- 11734 10b7 91       		.byte	0x91
- 11735 10b8 E064     		.sleb128 -3488
- 11736 10ba 32       		.uleb128 0x32
- 11737 10bb 00000000 		.quad	.LBB303
- 11737      00000000 
- 11738 10c3 00000000 		.quad	.LBE303
- 11738      00000000 
- 11739 10cb 33       		.uleb128 0x33
- 11740 10cc D80D0000 		.long	0xdd8
- 11741 10d0 09       		.byte	0x9
- 11742 10d1 03       		.byte	0x3
- 11743 10d2 00000000 		.quad	mask.8002
- 11743      00000000 
- 11744 10da 34       		.uleb128 0x34
- 11745 10db FB0D0000 		.long	0xdfb
- 11746 10df 00000000 		.quad	.LBB304
- 11746      00000000 
- 11747 10e7 00000000 		.quad	.LBE304
- 11747      00000000 
- 11748 10ef 03       		.byte	0x3
- 11749 10f0 FE04     		.value	0x4fe
- 11750 10f2 31       		.uleb128 0x31
- 11751 10f3 190E0000 		.long	0xe19
- 11752 10f7 03       		.byte	0x3
- 11753 10f8 91       		.byte	0x91
- 11754 10f9 F064     		.sleb128 -3472
-
GAS LISTING /tmp/ccPaCTqg.s 			page 354
-
-
- 11755 10fb 31       		.uleb128 0x31
- 11756 10fc 0D0E0000 		.long	0xe0d
- 11757 1100 03       		.byte	0x3
- 11758 1101 91       		.byte	0x91
- 11759 1102 8065     		.sleb128 -3456
- 11760 1104 34       		.uleb128 0x34
- 11761 1105 260E0000 		.long	0xe26
- 11762 1109 00000000 		.quad	.LBB306
- 11762      00000000 
- 11763 1111 00000000 		.quad	.LBE306
- 11763      00000000 
- 11764 1119 03       		.byte	0x3
- 11765 111a 7501     		.value	0x175
- 11766 111c 31       		.uleb128 0x31
- 11767 111d 440E0000 		.long	0xe44
- 11768 1121 03       		.byte	0x3
- 11769 1122 91       		.byte	0x91
- 11770 1123 9065     		.sleb128 -3440
- 11771 1125 31       		.uleb128 0x31
- 11772 1126 380E0000 		.long	0xe38
- 11773 112a 03       		.byte	0x3
- 11774 112b 91       		.byte	0x91
- 11775 112c A065     		.sleb128 -3424
- 11776 112e 00       		.byte	0x0
- 11777 112f 00       		.byte	0x0
- 11778 1130 00       		.byte	0x0
- 11779 1131 00       		.byte	0x0
- 11780 1132 34       		.uleb128 0x34
- 11781 1133 BA0D0000 		.long	0xdba
- 11782 1137 00000000 		.quad	.LBB308
- 11782      00000000 
- 11783 113f 00000000 		.quad	.LBE308
- 11783      00000000 
- 11784 1147 03       		.byte	0x3
- 11785 1148 2106     		.value	0x621
- 11786 114a 31       		.uleb128 0x31
- 11787 114b CC0D0000 		.long	0xdcc
- 11788 114f 03       		.byte	0x3
- 11789 1150 91       		.byte	0x91
- 11790 1151 B065     		.sleb128 -3408
- 11791 1153 32       		.uleb128 0x32
- 11792 1154 00000000 		.quad	.LBB309
- 11792      00000000 
- 11793 115c 00000000 		.quad	.LBE309
- 11793      00000000 
- 11794 1164 33       		.uleb128 0x33
- 11795 1165 D80D0000 		.long	0xdd8
- 11796 1169 09       		.byte	0x9
- 11797 116a 03       		.byte	0x3
- 11798 116b 00000000 		.quad	mask.8002
- 11798      00000000 
- 11799 1173 34       		.uleb128 0x34
- 11800 1174 FB0D0000 		.long	0xdfb
- 11801 1178 00000000 		.quad	.LBB310
- 11801      00000000 
- 11802 1180 00000000 		.quad	.LBE310
- 11802      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 355
-
-
- 11803 1188 03       		.byte	0x3
- 11804 1189 FE04     		.value	0x4fe
- 11805 118b 31       		.uleb128 0x31
- 11806 118c 190E0000 		.long	0xe19
- 11807 1190 03       		.byte	0x3
- 11808 1191 91       		.byte	0x91
- 11809 1192 C065     		.sleb128 -3392
- 11810 1194 31       		.uleb128 0x31
- 11811 1195 0D0E0000 		.long	0xe0d
- 11812 1199 03       		.byte	0x3
- 11813 119a 91       		.byte	0x91
- 11814 119b D065     		.sleb128 -3376
- 11815 119d 34       		.uleb128 0x34
- 11816 119e 260E0000 		.long	0xe26
- 11817 11a2 00000000 		.quad	.LBB312
- 11817      00000000 
- 11818 11aa 00000000 		.quad	.LBE312
- 11818      00000000 
- 11819 11b2 03       		.byte	0x3
- 11820 11b3 7501     		.value	0x175
- 11821 11b5 31       		.uleb128 0x31
- 11822 11b6 440E0000 		.long	0xe44
- 11823 11ba 03       		.byte	0x3
- 11824 11bb 91       		.byte	0x91
- 11825 11bc E065     		.sleb128 -3360
- 11826 11be 31       		.uleb128 0x31
- 11827 11bf 380E0000 		.long	0xe38
- 11828 11c3 03       		.byte	0x3
- 11829 11c4 91       		.byte	0x91
- 11830 11c5 F065     		.sleb128 -3344
- 11831 11c7 00       		.byte	0x0
- 11832 11c8 00       		.byte	0x0
- 11833 11c9 00       		.byte	0x0
- 11834 11ca 00       		.byte	0x0
- 11835 11cb 00       		.byte	0x0
- 11836 11cc 00       		.byte	0x0
- 11837 11cd 30       		.uleb128 0x30
- 11838 11ce E30C0000 		.long	0xce3
- 11839 11d2 00000000 		.quad	.LBB314
- 11839      00000000 
- 11840 11da 00000000 		.quad	.LBE314
- 11840      00000000 
- 11841 11e2 03       		.byte	0x3
- 11842 11e3 D106     		.value	0x6d1
- 11843 11e5 93120000 		.long	0x1293
- 11844 11e9 31       		.uleb128 0x31
- 11845 11ea 010D0000 		.long	0xd01
- 11846 11ee 03       		.byte	0x3
- 11847 11ef 91       		.byte	0x91
- 11848 11f0 8C66     		.sleb128 -3316
- 11849 11f2 31       		.uleb128 0x31
- 11850 11f3 F50C0000 		.long	0xcf5
- 11851 11f7 03       		.byte	0x3
- 11852 11f8 91       		.byte	0x91
- 11853 11f9 9066     		.sleb128 -3312
- 11854 11fb 32       		.uleb128 0x32
- 11855 11fc 00000000 		.quad	.LBB315
-
GAS LISTING /tmp/ccPaCTqg.s 			page 356
-
-
- 11855      00000000 
- 11856 1204 00000000 		.quad	.LBE315
- 11856      00000000 
- 11857 120c 33       		.uleb128 0x33
- 11858 120d 0D0D0000 		.long	0xd0d
- 11859 1211 03       		.byte	0x3
- 11860 1212 76       		.byte	0x76
- 11861 1213 D060     		.sleb128 -4016
- 11862 1215 30       		.uleb128 0x30
- 11863 1216 1A0D0000 		.long	0xd1a
- 11864 121a 00000000 		.quad	.LBB316
- 11864      00000000 
- 11865 1222 00000000 		.quad	.LBE316
- 11865      00000000 
- 11866 122a 03       		.byte	0x3
- 11867 122b 8A06     		.value	0x68a
- 11868 122d 44120000 		.long	0x1244
- 11869 1231 31       		.uleb128 0x31
- 11870 1232 380D0000 		.long	0xd38
- 11871 1236 03       		.byte	0x3
- 11872 1237 91       		.byte	0x91
- 11873 1238 AC66     		.sleb128 -3284
- 11874 123a 31       		.uleb128 0x31
- 11875 123b 2C0D0000 		.long	0xd2c
- 11876 123f 03       		.byte	0x3
- 11877 1240 91       		.byte	0x91
- 11878 1241 B066     		.sleb128 -3280
- 11879 1243 00       		.byte	0x0
- 11880 1244 34       		.uleb128 0x34
- 11881 1245 450D0000 		.long	0xd45
- 11882 1249 00000000 		.quad	.LBB318
- 11882      00000000 
- 11883 1251 00000000 		.quad	.LBE318
- 11883      00000000 
- 11884 1259 03       		.byte	0x3
- 11885 125a 8B06     		.value	0x68b
- 11886 125c 31       		.uleb128 0x31
- 11887 125d 570D0000 		.long	0xd57
- 11888 1261 03       		.byte	0x3
- 11889 1262 91       		.byte	0x91
- 11890 1263 C066     		.sleb128 -3264
- 11891 1265 34       		.uleb128 0x34
- 11892 1266 640D0000 		.long	0xd64
- 11893 126a 00000000 		.quad	.LBB320
- 11893      00000000 
- 11894 1272 00000000 		.quad	.LBE320
- 11894      00000000 
- 11895 127a 03       		.byte	0x3
- 11896 127b 4905     		.value	0x549
- 11897 127d 31       		.uleb128 0x31
- 11898 127e 820D0000 		.long	0xd82
- 11899 1282 03       		.byte	0x3
- 11900 1283 91       		.byte	0x91
- 11901 1284 DC66     		.sleb128 -3236
- 11902 1286 31       		.uleb128 0x31
- 11903 1287 760D0000 		.long	0xd76
- 11904 128b 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 357
-
-
- 11905 128c 91       		.byte	0x91
- 11906 128d E066     		.sleb128 -3232
- 11907 128f 00       		.byte	0x0
- 11908 1290 00       		.byte	0x0
- 11909 1291 00       		.byte	0x0
- 11910 1292 00       		.byte	0x0
- 11911 1293 30       		.uleb128 0x30
- 11912 1294 8F0D0000 		.long	0xd8f
- 11913 1298 00000000 		.quad	.LBB322
- 11913      00000000 
- 11914 12a0 00000000 		.quad	.LBE322
- 11914      00000000 
- 11915 12a8 03       		.byte	0x3
- 11916 12a9 D106     		.value	0x6d1
- 11917 12ab A7140000 		.long	0x14a7
- 11918 12af 31       		.uleb128 0x31
- 11919 12b0 A10D0000 		.long	0xda1
- 11920 12b4 03       		.byte	0x3
- 11921 12b5 91       		.byte	0x91
- 11922 12b6 F066     		.sleb128 -3216
- 11923 12b8 32       		.uleb128 0x32
- 11924 12b9 00000000 		.quad	.LBB323
- 11924      00000000 
- 11925 12c1 00000000 		.quad	.LBE323
- 11925      00000000 
- 11926 12c9 33       		.uleb128 0x33
- 11927 12ca AD0D0000 		.long	0xdad
- 11928 12ce 03       		.byte	0x3
- 11929 12cf 76       		.byte	0x76
- 11930 12d0 E060     		.sleb128 -4000
- 11931 12d2 30       		.uleb128 0x30
- 11932 12d3 BA0D0000 		.long	0xdba
- 11933 12d7 00000000 		.quad	.LBB324
- 11933      00000000 
- 11934 12df 00000000 		.quad	.LBE324
- 11934      00000000 
- 11935 12e7 03       		.byte	0x3
- 11936 12e8 1F06     		.value	0x61f
- 11937 12ea 6F130000 		.long	0x136f
- 11938 12ee 31       		.uleb128 0x31
- 11939 12ef CC0D0000 		.long	0xdcc
- 11940 12f3 03       		.byte	0x3
- 11941 12f4 91       		.byte	0x91
- 11942 12f5 8067     		.sleb128 -3200
- 11943 12f7 32       		.uleb128 0x32
- 11944 12f8 00000000 		.quad	.LBB325
- 11944      00000000 
- 11945 1300 00000000 		.quad	.LBE325
- 11945      00000000 
- 11946 1308 33       		.uleb128 0x33
- 11947 1309 D80D0000 		.long	0xdd8
- 11948 130d 09       		.byte	0x9
- 11949 130e 03       		.byte	0x3
- 11950 130f 00000000 		.quad	mask.8002
- 11950      00000000 
- 11951 1317 34       		.uleb128 0x34
- 11952 1318 FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 358
-
-
- 11953 131c 00000000 		.quad	.LBB326
- 11953      00000000 
- 11954 1324 00000000 		.quad	.LBE326
- 11954      00000000 
- 11955 132c 03       		.byte	0x3
- 11956 132d FE04     		.value	0x4fe
- 11957 132f 31       		.uleb128 0x31
- 11958 1330 190E0000 		.long	0xe19
- 11959 1334 03       		.byte	0x3
- 11960 1335 91       		.byte	0x91
- 11961 1336 9067     		.sleb128 -3184
- 11962 1338 31       		.uleb128 0x31
- 11963 1339 0D0E0000 		.long	0xe0d
- 11964 133d 03       		.byte	0x3
- 11965 133e 91       		.byte	0x91
- 11966 133f A067     		.sleb128 -3168
- 11967 1341 34       		.uleb128 0x34
- 11968 1342 260E0000 		.long	0xe26
- 11969 1346 00000000 		.quad	.LBB328
- 11969      00000000 
- 11970 134e 00000000 		.quad	.LBE328
- 11970      00000000 
- 11971 1356 03       		.byte	0x3
- 11972 1357 7501     		.value	0x175
- 11973 1359 31       		.uleb128 0x31
- 11974 135a 440E0000 		.long	0xe44
- 11975 135e 03       		.byte	0x3
- 11976 135f 91       		.byte	0x91
- 11977 1360 B067     		.sleb128 -3152
- 11978 1362 31       		.uleb128 0x31
- 11979 1363 380E0000 		.long	0xe38
- 11980 1367 03       		.byte	0x3
- 11981 1368 91       		.byte	0x91
- 11982 1369 C067     		.sleb128 -3136
- 11983 136b 00       		.byte	0x0
- 11984 136c 00       		.byte	0x0
- 11985 136d 00       		.byte	0x0
- 11986 136e 00       		.byte	0x0
- 11987 136f 30       		.uleb128 0x30
- 11988 1370 BA0D0000 		.long	0xdba
- 11989 1374 00000000 		.quad	.LBB330
- 11989      00000000 
- 11990 137c 00000000 		.quad	.LBE330
- 11990      00000000 
- 11991 1384 03       		.byte	0x3
- 11992 1385 2006     		.value	0x620
- 11993 1387 0C140000 		.long	0x140c
- 11994 138b 31       		.uleb128 0x31
- 11995 138c CC0D0000 		.long	0xdcc
- 11996 1390 03       		.byte	0x3
- 11997 1391 91       		.byte	0x91
- 11998 1392 D067     		.sleb128 -3120
- 11999 1394 32       		.uleb128 0x32
- 12000 1395 00000000 		.quad	.LBB331
- 12000      00000000 
- 12001 139d 00000000 		.quad	.LBE331
- 12001      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 359
-
-
- 12002 13a5 33       		.uleb128 0x33
- 12003 13a6 D80D0000 		.long	0xdd8
- 12004 13aa 09       		.byte	0x9
- 12005 13ab 03       		.byte	0x3
- 12006 13ac 00000000 		.quad	mask.8002
- 12006      00000000 
- 12007 13b4 34       		.uleb128 0x34
- 12008 13b5 FB0D0000 		.long	0xdfb
- 12009 13b9 00000000 		.quad	.LBB332
- 12009      00000000 
- 12010 13c1 00000000 		.quad	.LBE332
- 12010      00000000 
- 12011 13c9 03       		.byte	0x3
- 12012 13ca FE04     		.value	0x4fe
- 12013 13cc 31       		.uleb128 0x31
- 12014 13cd 190E0000 		.long	0xe19
- 12015 13d1 03       		.byte	0x3
- 12016 13d2 91       		.byte	0x91
- 12017 13d3 E067     		.sleb128 -3104
- 12018 13d5 31       		.uleb128 0x31
- 12019 13d6 0D0E0000 		.long	0xe0d
- 12020 13da 03       		.byte	0x3
- 12021 13db 91       		.byte	0x91
- 12022 13dc F067     		.sleb128 -3088
- 12023 13de 34       		.uleb128 0x34
- 12024 13df 260E0000 		.long	0xe26
- 12025 13e3 00000000 		.quad	.LBB334
- 12025      00000000 
- 12026 13eb 00000000 		.quad	.LBE334
- 12026      00000000 
- 12027 13f3 03       		.byte	0x3
- 12028 13f4 7501     		.value	0x175
- 12029 13f6 31       		.uleb128 0x31
- 12030 13f7 440E0000 		.long	0xe44
- 12031 13fb 03       		.byte	0x3
- 12032 13fc 91       		.byte	0x91
- 12033 13fd 8068     		.sleb128 -3072
- 12034 13ff 31       		.uleb128 0x31
- 12035 1400 380E0000 		.long	0xe38
- 12036 1404 03       		.byte	0x3
- 12037 1405 91       		.byte	0x91
- 12038 1406 9068     		.sleb128 -3056
- 12039 1408 00       		.byte	0x0
- 12040 1409 00       		.byte	0x0
- 12041 140a 00       		.byte	0x0
- 12042 140b 00       		.byte	0x0
- 12043 140c 34       		.uleb128 0x34
- 12044 140d BA0D0000 		.long	0xdba
- 12045 1411 00000000 		.quad	.LBB336
- 12045      00000000 
- 12046 1419 00000000 		.quad	.LBE336
- 12046      00000000 
- 12047 1421 03       		.byte	0x3
- 12048 1422 2106     		.value	0x621
- 12049 1424 31       		.uleb128 0x31
- 12050 1425 CC0D0000 		.long	0xdcc
- 12051 1429 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 360
-
-
- 12052 142a 91       		.byte	0x91
- 12053 142b A068     		.sleb128 -3040
- 12054 142d 32       		.uleb128 0x32
- 12055 142e 00000000 		.quad	.LBB337
- 12055      00000000 
- 12056 1436 00000000 		.quad	.LBE337
- 12056      00000000 
- 12057 143e 33       		.uleb128 0x33
- 12058 143f D80D0000 		.long	0xdd8
- 12059 1443 09       		.byte	0x9
- 12060 1444 03       		.byte	0x3
- 12061 1445 00000000 		.quad	mask.8002
- 12061      00000000 
- 12062 144d 34       		.uleb128 0x34
- 12063 144e FB0D0000 		.long	0xdfb
- 12064 1452 00000000 		.quad	.LBB338
- 12064      00000000 
- 12065 145a 00000000 		.quad	.LBE338
- 12065      00000000 
- 12066 1462 03       		.byte	0x3
- 12067 1463 FE04     		.value	0x4fe
- 12068 1465 31       		.uleb128 0x31
- 12069 1466 190E0000 		.long	0xe19
- 12070 146a 03       		.byte	0x3
- 12071 146b 91       		.byte	0x91
- 12072 146c B068     		.sleb128 -3024
- 12073 146e 31       		.uleb128 0x31
- 12074 146f 0D0E0000 		.long	0xe0d
- 12075 1473 03       		.byte	0x3
- 12076 1474 91       		.byte	0x91
- 12077 1475 C068     		.sleb128 -3008
- 12078 1477 34       		.uleb128 0x34
- 12079 1478 260E0000 		.long	0xe26
- 12080 147c 00000000 		.quad	.LBB340
- 12080      00000000 
- 12081 1484 00000000 		.quad	.LBE340
- 12081      00000000 
- 12082 148c 03       		.byte	0x3
- 12083 148d 7501     		.value	0x175
- 12084 148f 31       		.uleb128 0x31
- 12085 1490 440E0000 		.long	0xe44
- 12086 1494 03       		.byte	0x3
- 12087 1495 91       		.byte	0x91
- 12088 1496 D068     		.sleb128 -2992
- 12089 1498 31       		.uleb128 0x31
- 12090 1499 380E0000 		.long	0xe38
- 12091 149d 03       		.byte	0x3
- 12092 149e 91       		.byte	0x91
- 12093 149f E068     		.sleb128 -2976
- 12094 14a1 00       		.byte	0x0
- 12095 14a2 00       		.byte	0x0
- 12096 14a3 00       		.byte	0x0
- 12097 14a4 00       		.byte	0x0
- 12098 14a5 00       		.byte	0x0
- 12099 14a6 00       		.byte	0x0
- 12100 14a7 30       		.uleb128 0x30
- 12101 14a8 E30C0000 		.long	0xce3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 361
-
-
- 12102 14ac 00000000 		.quad	.LBB342
- 12102      00000000 
- 12103 14b4 00000000 		.quad	.LBE342
- 12103      00000000 
- 12104 14bc 03       		.byte	0x3
- 12105 14bd D206     		.value	0x6d2
- 12106 14bf 6D150000 		.long	0x156d
- 12107 14c3 31       		.uleb128 0x31
- 12108 14c4 010D0000 		.long	0xd01
- 12109 14c8 03       		.byte	0x3
- 12110 14c9 91       		.byte	0x91
- 12111 14ca FC68     		.sleb128 -2948
- 12112 14cc 31       		.uleb128 0x31
- 12113 14cd F50C0000 		.long	0xcf5
- 12114 14d1 03       		.byte	0x3
- 12115 14d2 91       		.byte	0x91
- 12116 14d3 8069     		.sleb128 -2944
- 12117 14d5 32       		.uleb128 0x32
- 12118 14d6 00000000 		.quad	.LBB343
- 12118      00000000 
- 12119 14de 00000000 		.quad	.LBE343
- 12119      00000000 
- 12120 14e6 33       		.uleb128 0x33
- 12121 14e7 0D0D0000 		.long	0xd0d
- 12122 14eb 03       		.byte	0x3
- 12123 14ec 76       		.byte	0x76
- 12124 14ed F060     		.sleb128 -3984
- 12125 14ef 30       		.uleb128 0x30
- 12126 14f0 1A0D0000 		.long	0xd1a
- 12127 14f4 00000000 		.quad	.LBB344
- 12127      00000000 
- 12128 14fc 00000000 		.quad	.LBE344
- 12128      00000000 
- 12129 1504 03       		.byte	0x3
- 12130 1505 8A06     		.value	0x68a
- 12131 1507 1E150000 		.long	0x151e
- 12132 150b 31       		.uleb128 0x31
- 12133 150c 380D0000 		.long	0xd38
- 12134 1510 03       		.byte	0x3
- 12135 1511 91       		.byte	0x91
- 12136 1512 9C69     		.sleb128 -2916
- 12137 1514 31       		.uleb128 0x31
- 12138 1515 2C0D0000 		.long	0xd2c
- 12139 1519 03       		.byte	0x3
- 12140 151a 91       		.byte	0x91
- 12141 151b A069     		.sleb128 -2912
- 12142 151d 00       		.byte	0x0
- 12143 151e 34       		.uleb128 0x34
- 12144 151f 450D0000 		.long	0xd45
- 12145 1523 00000000 		.quad	.LBB346
- 12145      00000000 
- 12146 152b 00000000 		.quad	.LBE346
- 12146      00000000 
- 12147 1533 03       		.byte	0x3
- 12148 1534 8B06     		.value	0x68b
- 12149 1536 31       		.uleb128 0x31
- 12150 1537 570D0000 		.long	0xd57
-
GAS LISTING /tmp/ccPaCTqg.s 			page 362
-
-
- 12151 153b 03       		.byte	0x3
- 12152 153c 91       		.byte	0x91
- 12153 153d B069     		.sleb128 -2896
- 12154 153f 34       		.uleb128 0x34
- 12155 1540 640D0000 		.long	0xd64
- 12156 1544 00000000 		.quad	.LBB348
- 12156      00000000 
- 12157 154c 00000000 		.quad	.LBE348
- 12157      00000000 
- 12158 1554 03       		.byte	0x3
- 12159 1555 4905     		.value	0x549
- 12160 1557 31       		.uleb128 0x31
- 12161 1558 820D0000 		.long	0xd82
- 12162 155c 03       		.byte	0x3
- 12163 155d 91       		.byte	0x91
- 12164 155e CC69     		.sleb128 -2868
- 12165 1560 31       		.uleb128 0x31
- 12166 1561 760D0000 		.long	0xd76
- 12167 1565 03       		.byte	0x3
- 12168 1566 91       		.byte	0x91
- 12169 1567 D069     		.sleb128 -2864
- 12170 1569 00       		.byte	0x0
- 12171 156a 00       		.byte	0x0
- 12172 156b 00       		.byte	0x0
- 12173 156c 00       		.byte	0x0
- 12174 156d 30       		.uleb128 0x30
- 12175 156e 8F0D0000 		.long	0xd8f
- 12176 1572 00000000 		.quad	.LBB350
- 12176      00000000 
- 12177 157a 00000000 		.quad	.LBE350
- 12177      00000000 
- 12178 1582 03       		.byte	0x3
- 12179 1583 D206     		.value	0x6d2
- 12180 1585 81170000 		.long	0x1781
- 12181 1589 31       		.uleb128 0x31
- 12182 158a A10D0000 		.long	0xda1
- 12183 158e 03       		.byte	0x3
- 12184 158f 91       		.byte	0x91
- 12185 1590 E069     		.sleb128 -2848
- 12186 1592 32       		.uleb128 0x32
- 12187 1593 00000000 		.quad	.LBB351
- 12187      00000000 
- 12188 159b 00000000 		.quad	.LBE351
- 12188      00000000 
- 12189 15a3 33       		.uleb128 0x33
- 12190 15a4 AD0D0000 		.long	0xdad
- 12191 15a8 03       		.byte	0x3
- 12192 15a9 76       		.byte	0x76
- 12193 15aa 8061     		.sleb128 -3968
- 12194 15ac 30       		.uleb128 0x30
- 12195 15ad BA0D0000 		.long	0xdba
- 12196 15b1 00000000 		.quad	.LBB352
- 12196      00000000 
- 12197 15b9 00000000 		.quad	.LBE352
- 12197      00000000 
- 12198 15c1 03       		.byte	0x3
- 12199 15c2 1F06     		.value	0x61f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 363
-
-
- 12200 15c4 49160000 		.long	0x1649
- 12201 15c8 31       		.uleb128 0x31
- 12202 15c9 CC0D0000 		.long	0xdcc
- 12203 15cd 03       		.byte	0x3
- 12204 15ce 91       		.byte	0x91
- 12205 15cf F069     		.sleb128 -2832
- 12206 15d1 32       		.uleb128 0x32
- 12207 15d2 00000000 		.quad	.LBB353
- 12207      00000000 
- 12208 15da 00000000 		.quad	.LBE353
- 12208      00000000 
- 12209 15e2 33       		.uleb128 0x33
- 12210 15e3 D80D0000 		.long	0xdd8
- 12211 15e7 09       		.byte	0x9
- 12212 15e8 03       		.byte	0x3
- 12213 15e9 00000000 		.quad	mask.8002
- 12213      00000000 
- 12214 15f1 34       		.uleb128 0x34
- 12215 15f2 FB0D0000 		.long	0xdfb
- 12216 15f6 00000000 		.quad	.LBB354
- 12216      00000000 
- 12217 15fe 00000000 		.quad	.LBE354
- 12217      00000000 
- 12218 1606 03       		.byte	0x3
- 12219 1607 FE04     		.value	0x4fe
- 12220 1609 31       		.uleb128 0x31
- 12221 160a 190E0000 		.long	0xe19
- 12222 160e 03       		.byte	0x3
- 12223 160f 91       		.byte	0x91
- 12224 1610 806A     		.sleb128 -2816
- 12225 1612 31       		.uleb128 0x31
- 12226 1613 0D0E0000 		.long	0xe0d
- 12227 1617 03       		.byte	0x3
- 12228 1618 91       		.byte	0x91
- 12229 1619 906A     		.sleb128 -2800
- 12230 161b 34       		.uleb128 0x34
- 12231 161c 260E0000 		.long	0xe26
- 12232 1620 00000000 		.quad	.LBB356
- 12232      00000000 
- 12233 1628 00000000 		.quad	.LBE356
- 12233      00000000 
- 12234 1630 03       		.byte	0x3
- 12235 1631 7501     		.value	0x175
- 12236 1633 31       		.uleb128 0x31
- 12237 1634 440E0000 		.long	0xe44
- 12238 1638 03       		.byte	0x3
- 12239 1639 91       		.byte	0x91
- 12240 163a A06A     		.sleb128 -2784
- 12241 163c 31       		.uleb128 0x31
- 12242 163d 380E0000 		.long	0xe38
- 12243 1641 03       		.byte	0x3
- 12244 1642 91       		.byte	0x91
- 12245 1643 B06A     		.sleb128 -2768
- 12246 1645 00       		.byte	0x0
- 12247 1646 00       		.byte	0x0
- 12248 1647 00       		.byte	0x0
- 12249 1648 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 364
-
-
- 12250 1649 30       		.uleb128 0x30
- 12251 164a BA0D0000 		.long	0xdba
- 12252 164e 00000000 		.quad	.LBB358
- 12252      00000000 
- 12253 1656 00000000 		.quad	.LBE358
- 12253      00000000 
- 12254 165e 03       		.byte	0x3
- 12255 165f 2006     		.value	0x620
- 12256 1661 E6160000 		.long	0x16e6
- 12257 1665 31       		.uleb128 0x31
- 12258 1666 CC0D0000 		.long	0xdcc
- 12259 166a 03       		.byte	0x3
- 12260 166b 91       		.byte	0x91
- 12261 166c C06A     		.sleb128 -2752
- 12262 166e 32       		.uleb128 0x32
- 12263 166f 00000000 		.quad	.LBB359
- 12263      00000000 
- 12264 1677 00000000 		.quad	.LBE359
- 12264      00000000 
- 12265 167f 33       		.uleb128 0x33
- 12266 1680 D80D0000 		.long	0xdd8
- 12267 1684 09       		.byte	0x9
- 12268 1685 03       		.byte	0x3
- 12269 1686 00000000 		.quad	mask.8002
- 12269      00000000 
- 12270 168e 34       		.uleb128 0x34
- 12271 168f FB0D0000 		.long	0xdfb
- 12272 1693 00000000 		.quad	.LBB360
- 12272      00000000 
- 12273 169b 00000000 		.quad	.LBE360
- 12273      00000000 
- 12274 16a3 03       		.byte	0x3
- 12275 16a4 FE04     		.value	0x4fe
- 12276 16a6 31       		.uleb128 0x31
- 12277 16a7 190E0000 		.long	0xe19
- 12278 16ab 03       		.byte	0x3
- 12279 16ac 91       		.byte	0x91
- 12280 16ad D06A     		.sleb128 -2736
- 12281 16af 31       		.uleb128 0x31
- 12282 16b0 0D0E0000 		.long	0xe0d
- 12283 16b4 03       		.byte	0x3
- 12284 16b5 91       		.byte	0x91
- 12285 16b6 E06A     		.sleb128 -2720
- 12286 16b8 34       		.uleb128 0x34
- 12287 16b9 260E0000 		.long	0xe26
- 12288 16bd 00000000 		.quad	.LBB362
- 12288      00000000 
- 12289 16c5 00000000 		.quad	.LBE362
- 12289      00000000 
- 12290 16cd 03       		.byte	0x3
- 12291 16ce 7501     		.value	0x175
- 12292 16d0 31       		.uleb128 0x31
- 12293 16d1 440E0000 		.long	0xe44
- 12294 16d5 03       		.byte	0x3
- 12295 16d6 91       		.byte	0x91
- 12296 16d7 F06A     		.sleb128 -2704
- 12297 16d9 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 365
-
-
- 12298 16da 380E0000 		.long	0xe38
- 12299 16de 03       		.byte	0x3
- 12300 16df 91       		.byte	0x91
- 12301 16e0 806B     		.sleb128 -2688
- 12302 16e2 00       		.byte	0x0
- 12303 16e3 00       		.byte	0x0
- 12304 16e4 00       		.byte	0x0
- 12305 16e5 00       		.byte	0x0
- 12306 16e6 34       		.uleb128 0x34
- 12307 16e7 BA0D0000 		.long	0xdba
- 12308 16eb 00000000 		.quad	.LBB364
- 12308      00000000 
- 12309 16f3 00000000 		.quad	.LBE364
- 12309      00000000 
- 12310 16fb 03       		.byte	0x3
- 12311 16fc 2106     		.value	0x621
- 12312 16fe 31       		.uleb128 0x31
- 12313 16ff CC0D0000 		.long	0xdcc
- 12314 1703 03       		.byte	0x3
- 12315 1704 91       		.byte	0x91
- 12316 1705 906B     		.sleb128 -2672
- 12317 1707 32       		.uleb128 0x32
- 12318 1708 00000000 		.quad	.LBB365
- 12318      00000000 
- 12319 1710 00000000 		.quad	.LBE365
- 12319      00000000 
- 12320 1718 33       		.uleb128 0x33
- 12321 1719 D80D0000 		.long	0xdd8
- 12322 171d 09       		.byte	0x9
- 12323 171e 03       		.byte	0x3
- 12324 171f 00000000 		.quad	mask.8002
- 12324      00000000 
- 12325 1727 34       		.uleb128 0x34
- 12326 1728 FB0D0000 		.long	0xdfb
- 12327 172c 00000000 		.quad	.LBB366
- 12327      00000000 
- 12328 1734 00000000 		.quad	.LBE366
- 12328      00000000 
- 12329 173c 03       		.byte	0x3
- 12330 173d FE04     		.value	0x4fe
- 12331 173f 31       		.uleb128 0x31
- 12332 1740 190E0000 		.long	0xe19
- 12333 1744 03       		.byte	0x3
- 12334 1745 91       		.byte	0x91
- 12335 1746 A06B     		.sleb128 -2656
- 12336 1748 31       		.uleb128 0x31
- 12337 1749 0D0E0000 		.long	0xe0d
- 12338 174d 03       		.byte	0x3
- 12339 174e 91       		.byte	0x91
- 12340 174f B06B     		.sleb128 -2640
- 12341 1751 34       		.uleb128 0x34
- 12342 1752 260E0000 		.long	0xe26
- 12343 1756 00000000 		.quad	.LBB368
- 12343      00000000 
- 12344 175e 00000000 		.quad	.LBE368
- 12344      00000000 
- 12345 1766 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 366
-
-
- 12346 1767 7501     		.value	0x175
- 12347 1769 31       		.uleb128 0x31
- 12348 176a 440E0000 		.long	0xe44
- 12349 176e 03       		.byte	0x3
- 12350 176f 91       		.byte	0x91
- 12351 1770 C06B     		.sleb128 -2624
- 12352 1772 31       		.uleb128 0x31
- 12353 1773 380E0000 		.long	0xe38
- 12354 1777 03       		.byte	0x3
- 12355 1778 91       		.byte	0x91
- 12356 1779 D06B     		.sleb128 -2608
- 12357 177b 00       		.byte	0x0
- 12358 177c 00       		.byte	0x0
- 12359 177d 00       		.byte	0x0
- 12360 177e 00       		.byte	0x0
- 12361 177f 00       		.byte	0x0
- 12362 1780 00       		.byte	0x0
- 12363 1781 30       		.uleb128 0x30
- 12364 1782 E30C0000 		.long	0xce3
- 12365 1786 00000000 		.quad	.LBB370
- 12365      00000000 
- 12366 178e 00000000 		.quad	.LBE370
- 12366      00000000 
- 12367 1796 03       		.byte	0x3
- 12368 1797 D306     		.value	0x6d3
- 12369 1799 47180000 		.long	0x1847
- 12370 179d 31       		.uleb128 0x31
- 12371 179e 010D0000 		.long	0xd01
- 12372 17a2 03       		.byte	0x3
- 12373 17a3 91       		.byte	0x91
- 12374 17a4 EC6B     		.sleb128 -2580
- 12375 17a6 31       		.uleb128 0x31
- 12376 17a7 F50C0000 		.long	0xcf5
- 12377 17ab 03       		.byte	0x3
- 12378 17ac 91       		.byte	0x91
- 12379 17ad F06B     		.sleb128 -2576
- 12380 17af 32       		.uleb128 0x32
- 12381 17b0 00000000 		.quad	.LBB371
- 12381      00000000 
- 12382 17b8 00000000 		.quad	.LBE371
- 12382      00000000 
- 12383 17c0 33       		.uleb128 0x33
- 12384 17c1 0D0D0000 		.long	0xd0d
- 12385 17c5 03       		.byte	0x3
- 12386 17c6 76       		.byte	0x76
- 12387 17c7 9061     		.sleb128 -3952
- 12388 17c9 30       		.uleb128 0x30
- 12389 17ca 1A0D0000 		.long	0xd1a
- 12390 17ce 00000000 		.quad	.LBB372
- 12390      00000000 
- 12391 17d6 00000000 		.quad	.LBE372
- 12391      00000000 
- 12392 17de 03       		.byte	0x3
- 12393 17df 8A06     		.value	0x68a
- 12394 17e1 F8170000 		.long	0x17f8
- 12395 17e5 31       		.uleb128 0x31
- 12396 17e6 380D0000 		.long	0xd38
-
GAS LISTING /tmp/ccPaCTqg.s 			page 367
-
-
- 12397 17ea 03       		.byte	0x3
- 12398 17eb 91       		.byte	0x91
- 12399 17ec 8C6C     		.sleb128 -2548
- 12400 17ee 31       		.uleb128 0x31
- 12401 17ef 2C0D0000 		.long	0xd2c
- 12402 17f3 03       		.byte	0x3
- 12403 17f4 91       		.byte	0x91
- 12404 17f5 906C     		.sleb128 -2544
- 12405 17f7 00       		.byte	0x0
- 12406 17f8 34       		.uleb128 0x34
- 12407 17f9 450D0000 		.long	0xd45
- 12408 17fd 00000000 		.quad	.LBB374
- 12408      00000000 
- 12409 1805 00000000 		.quad	.LBE374
- 12409      00000000 
- 12410 180d 03       		.byte	0x3
- 12411 180e 8B06     		.value	0x68b
- 12412 1810 31       		.uleb128 0x31
- 12413 1811 570D0000 		.long	0xd57
- 12414 1815 03       		.byte	0x3
- 12415 1816 91       		.byte	0x91
- 12416 1817 A06C     		.sleb128 -2528
- 12417 1819 34       		.uleb128 0x34
- 12418 181a 640D0000 		.long	0xd64
- 12419 181e 00000000 		.quad	.LBB376
- 12419      00000000 
- 12420 1826 00000000 		.quad	.LBE376
- 12420      00000000 
- 12421 182e 03       		.byte	0x3
- 12422 182f 4905     		.value	0x549
- 12423 1831 31       		.uleb128 0x31
- 12424 1832 820D0000 		.long	0xd82
- 12425 1836 03       		.byte	0x3
- 12426 1837 91       		.byte	0x91
- 12427 1838 BC6C     		.sleb128 -2500
- 12428 183a 31       		.uleb128 0x31
- 12429 183b 760D0000 		.long	0xd76
- 12430 183f 03       		.byte	0x3
- 12431 1840 91       		.byte	0x91
- 12432 1841 C06C     		.sleb128 -2496
- 12433 1843 00       		.byte	0x0
- 12434 1844 00       		.byte	0x0
- 12435 1845 00       		.byte	0x0
- 12436 1846 00       		.byte	0x0
- 12437 1847 30       		.uleb128 0x30
- 12438 1848 8F0D0000 		.long	0xd8f
- 12439 184c 00000000 		.quad	.LBB378
- 12439      00000000 
- 12440 1854 00000000 		.quad	.LBE378
- 12440      00000000 
- 12441 185c 03       		.byte	0x3
- 12442 185d D306     		.value	0x6d3
- 12443 185f 5B1A0000 		.long	0x1a5b
- 12444 1863 31       		.uleb128 0x31
- 12445 1864 A10D0000 		.long	0xda1
- 12446 1868 03       		.byte	0x3
- 12447 1869 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 368
-
-
- 12448 186a D06C     		.sleb128 -2480
- 12449 186c 32       		.uleb128 0x32
- 12450 186d 00000000 		.quad	.LBB379
- 12450      00000000 
- 12451 1875 00000000 		.quad	.LBE379
- 12451      00000000 
- 12452 187d 33       		.uleb128 0x33
- 12453 187e AD0D0000 		.long	0xdad
- 12454 1882 03       		.byte	0x3
- 12455 1883 76       		.byte	0x76
- 12456 1884 A061     		.sleb128 -3936
- 12457 1886 30       		.uleb128 0x30
- 12458 1887 BA0D0000 		.long	0xdba
- 12459 188b 00000000 		.quad	.LBB380
- 12459      00000000 
- 12460 1893 00000000 		.quad	.LBE380
- 12460      00000000 
- 12461 189b 03       		.byte	0x3
- 12462 189c 1F06     		.value	0x61f
- 12463 189e 23190000 		.long	0x1923
- 12464 18a2 31       		.uleb128 0x31
- 12465 18a3 CC0D0000 		.long	0xdcc
- 12466 18a7 03       		.byte	0x3
- 12467 18a8 91       		.byte	0x91
- 12468 18a9 E06C     		.sleb128 -2464
- 12469 18ab 32       		.uleb128 0x32
- 12470 18ac 00000000 		.quad	.LBB381
- 12470      00000000 
- 12471 18b4 00000000 		.quad	.LBE381
- 12471      00000000 
- 12472 18bc 33       		.uleb128 0x33
- 12473 18bd D80D0000 		.long	0xdd8
- 12474 18c1 09       		.byte	0x9
- 12475 18c2 03       		.byte	0x3
- 12476 18c3 00000000 		.quad	mask.8002
- 12476      00000000 
- 12477 18cb 34       		.uleb128 0x34
- 12478 18cc FB0D0000 		.long	0xdfb
- 12479 18d0 00000000 		.quad	.LBB382
- 12479      00000000 
- 12480 18d8 00000000 		.quad	.LBE382
- 12480      00000000 
- 12481 18e0 03       		.byte	0x3
- 12482 18e1 FE04     		.value	0x4fe
- 12483 18e3 31       		.uleb128 0x31
- 12484 18e4 190E0000 		.long	0xe19
- 12485 18e8 03       		.byte	0x3
- 12486 18e9 91       		.byte	0x91
- 12487 18ea F06C     		.sleb128 -2448
- 12488 18ec 31       		.uleb128 0x31
- 12489 18ed 0D0E0000 		.long	0xe0d
- 12490 18f1 03       		.byte	0x3
- 12491 18f2 91       		.byte	0x91
- 12492 18f3 806D     		.sleb128 -2432
- 12493 18f5 34       		.uleb128 0x34
- 12494 18f6 260E0000 		.long	0xe26
- 12495 18fa 00000000 		.quad	.LBB384
-
GAS LISTING /tmp/ccPaCTqg.s 			page 369
-
-
- 12495      00000000 
- 12496 1902 00000000 		.quad	.LBE384
- 12496      00000000 
- 12497 190a 03       		.byte	0x3
- 12498 190b 7501     		.value	0x175
- 12499 190d 31       		.uleb128 0x31
- 12500 190e 440E0000 		.long	0xe44
- 12501 1912 03       		.byte	0x3
- 12502 1913 91       		.byte	0x91
- 12503 1914 906D     		.sleb128 -2416
- 12504 1916 31       		.uleb128 0x31
- 12505 1917 380E0000 		.long	0xe38
- 12506 191b 03       		.byte	0x3
- 12507 191c 91       		.byte	0x91
- 12508 191d A06D     		.sleb128 -2400
- 12509 191f 00       		.byte	0x0
- 12510 1920 00       		.byte	0x0
- 12511 1921 00       		.byte	0x0
- 12512 1922 00       		.byte	0x0
- 12513 1923 30       		.uleb128 0x30
- 12514 1924 BA0D0000 		.long	0xdba
- 12515 1928 00000000 		.quad	.LBB386
- 12515      00000000 
- 12516 1930 00000000 		.quad	.LBE386
- 12516      00000000 
- 12517 1938 03       		.byte	0x3
- 12518 1939 2006     		.value	0x620
- 12519 193b C0190000 		.long	0x19c0
- 12520 193f 31       		.uleb128 0x31
- 12521 1940 CC0D0000 		.long	0xdcc
- 12522 1944 03       		.byte	0x3
- 12523 1945 91       		.byte	0x91
- 12524 1946 B06D     		.sleb128 -2384
- 12525 1948 32       		.uleb128 0x32
- 12526 1949 00000000 		.quad	.LBB387
- 12526      00000000 
- 12527 1951 00000000 		.quad	.LBE387
- 12527      00000000 
- 12528 1959 33       		.uleb128 0x33
- 12529 195a D80D0000 		.long	0xdd8
- 12530 195e 09       		.byte	0x9
- 12531 195f 03       		.byte	0x3
- 12532 1960 00000000 		.quad	mask.8002
- 12532      00000000 
- 12533 1968 34       		.uleb128 0x34
- 12534 1969 FB0D0000 		.long	0xdfb
- 12535 196d 00000000 		.quad	.LBB388
- 12535      00000000 
- 12536 1975 00000000 		.quad	.LBE388
- 12536      00000000 
- 12537 197d 03       		.byte	0x3
- 12538 197e FE04     		.value	0x4fe
- 12539 1980 31       		.uleb128 0x31
- 12540 1981 190E0000 		.long	0xe19
- 12541 1985 03       		.byte	0x3
- 12542 1986 91       		.byte	0x91
- 12543 1987 C06D     		.sleb128 -2368
-
GAS LISTING /tmp/ccPaCTqg.s 			page 370
-
-
- 12544 1989 31       		.uleb128 0x31
- 12545 198a 0D0E0000 		.long	0xe0d
- 12546 198e 03       		.byte	0x3
- 12547 198f 91       		.byte	0x91
- 12548 1990 D06D     		.sleb128 -2352
- 12549 1992 34       		.uleb128 0x34
- 12550 1993 260E0000 		.long	0xe26
- 12551 1997 00000000 		.quad	.LBB390
- 12551      00000000 
- 12552 199f 00000000 		.quad	.LBE390
- 12552      00000000 
- 12553 19a7 03       		.byte	0x3
- 12554 19a8 7501     		.value	0x175
- 12555 19aa 31       		.uleb128 0x31
- 12556 19ab 440E0000 		.long	0xe44
- 12557 19af 03       		.byte	0x3
- 12558 19b0 91       		.byte	0x91
- 12559 19b1 E06D     		.sleb128 -2336
- 12560 19b3 31       		.uleb128 0x31
- 12561 19b4 380E0000 		.long	0xe38
- 12562 19b8 03       		.byte	0x3
- 12563 19b9 91       		.byte	0x91
- 12564 19ba F06D     		.sleb128 -2320
- 12565 19bc 00       		.byte	0x0
- 12566 19bd 00       		.byte	0x0
- 12567 19be 00       		.byte	0x0
- 12568 19bf 00       		.byte	0x0
- 12569 19c0 34       		.uleb128 0x34
- 12570 19c1 BA0D0000 		.long	0xdba
- 12571 19c5 00000000 		.quad	.LBB392
- 12571      00000000 
- 12572 19cd 00000000 		.quad	.LBE392
- 12572      00000000 
- 12573 19d5 03       		.byte	0x3
- 12574 19d6 2106     		.value	0x621
- 12575 19d8 31       		.uleb128 0x31
- 12576 19d9 CC0D0000 		.long	0xdcc
- 12577 19dd 03       		.byte	0x3
- 12578 19de 91       		.byte	0x91
- 12579 19df 806E     		.sleb128 -2304
- 12580 19e1 32       		.uleb128 0x32
- 12581 19e2 00000000 		.quad	.LBB393
- 12581      00000000 
- 12582 19ea 00000000 		.quad	.LBE393
- 12582      00000000 
- 12583 19f2 33       		.uleb128 0x33
- 12584 19f3 D80D0000 		.long	0xdd8
- 12585 19f7 09       		.byte	0x9
- 12586 19f8 03       		.byte	0x3
- 12587 19f9 00000000 		.quad	mask.8002
- 12587      00000000 
- 12588 1a01 34       		.uleb128 0x34
- 12589 1a02 FB0D0000 		.long	0xdfb
- 12590 1a06 00000000 		.quad	.LBB394
- 12590      00000000 
- 12591 1a0e 00000000 		.quad	.LBE394
- 12591      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 371
-
-
- 12592 1a16 03       		.byte	0x3
- 12593 1a17 FE04     		.value	0x4fe
- 12594 1a19 31       		.uleb128 0x31
- 12595 1a1a 190E0000 		.long	0xe19
- 12596 1a1e 03       		.byte	0x3
- 12597 1a1f 91       		.byte	0x91
- 12598 1a20 906E     		.sleb128 -2288
- 12599 1a22 31       		.uleb128 0x31
- 12600 1a23 0D0E0000 		.long	0xe0d
- 12601 1a27 03       		.byte	0x3
- 12602 1a28 91       		.byte	0x91
- 12603 1a29 A06E     		.sleb128 -2272
- 12604 1a2b 34       		.uleb128 0x34
- 12605 1a2c 260E0000 		.long	0xe26
- 12606 1a30 00000000 		.quad	.LBB396
- 12606      00000000 
- 12607 1a38 00000000 		.quad	.LBE396
- 12607      00000000 
- 12608 1a40 03       		.byte	0x3
- 12609 1a41 7501     		.value	0x175
- 12610 1a43 31       		.uleb128 0x31
- 12611 1a44 440E0000 		.long	0xe44
- 12612 1a48 03       		.byte	0x3
- 12613 1a49 91       		.byte	0x91
- 12614 1a4a B06E     		.sleb128 -2256
- 12615 1a4c 31       		.uleb128 0x31
- 12616 1a4d 380E0000 		.long	0xe38
- 12617 1a51 03       		.byte	0x3
- 12618 1a52 91       		.byte	0x91
- 12619 1a53 C06E     		.sleb128 -2240
- 12620 1a55 00       		.byte	0x0
- 12621 1a56 00       		.byte	0x0
- 12622 1a57 00       		.byte	0x0
- 12623 1a58 00       		.byte	0x0
- 12624 1a59 00       		.byte	0x0
- 12625 1a5a 00       		.byte	0x0
- 12626 1a5b 30       		.uleb128 0x30
- 12627 1a5c E30C0000 		.long	0xce3
- 12628 1a60 00000000 		.quad	.LBB398
- 12628      00000000 
- 12629 1a68 00000000 		.quad	.LBE398
- 12629      00000000 
- 12630 1a70 03       		.byte	0x3
- 12631 1a71 D406     		.value	0x6d4
- 12632 1a73 211B0000 		.long	0x1b21
- 12633 1a77 31       		.uleb128 0x31
- 12634 1a78 010D0000 		.long	0xd01
- 12635 1a7c 03       		.byte	0x3
- 12636 1a7d 91       		.byte	0x91
- 12637 1a7e DC6E     		.sleb128 -2212
- 12638 1a80 31       		.uleb128 0x31
- 12639 1a81 F50C0000 		.long	0xcf5
- 12640 1a85 03       		.byte	0x3
- 12641 1a86 91       		.byte	0x91
- 12642 1a87 E06E     		.sleb128 -2208
- 12643 1a89 32       		.uleb128 0x32
- 12644 1a8a 00000000 		.quad	.LBB399
-
GAS LISTING /tmp/ccPaCTqg.s 			page 372
-
-
- 12644      00000000 
- 12645 1a92 00000000 		.quad	.LBE399
- 12645      00000000 
- 12646 1a9a 33       		.uleb128 0x33
- 12647 1a9b 0D0D0000 		.long	0xd0d
- 12648 1a9f 03       		.byte	0x3
- 12649 1aa0 76       		.byte	0x76
- 12650 1aa1 B061     		.sleb128 -3920
- 12651 1aa3 30       		.uleb128 0x30
- 12652 1aa4 1A0D0000 		.long	0xd1a
- 12653 1aa8 00000000 		.quad	.LBB400
- 12653      00000000 
- 12654 1ab0 00000000 		.quad	.LBE400
- 12654      00000000 
- 12655 1ab8 03       		.byte	0x3
- 12656 1ab9 8A06     		.value	0x68a
- 12657 1abb D21A0000 		.long	0x1ad2
- 12658 1abf 31       		.uleb128 0x31
- 12659 1ac0 380D0000 		.long	0xd38
- 12660 1ac4 03       		.byte	0x3
- 12661 1ac5 91       		.byte	0x91
- 12662 1ac6 FC6E     		.sleb128 -2180
- 12663 1ac8 31       		.uleb128 0x31
- 12664 1ac9 2C0D0000 		.long	0xd2c
- 12665 1acd 03       		.byte	0x3
- 12666 1ace 91       		.byte	0x91
- 12667 1acf 806F     		.sleb128 -2176
- 12668 1ad1 00       		.byte	0x0
- 12669 1ad2 34       		.uleb128 0x34
- 12670 1ad3 450D0000 		.long	0xd45
- 12671 1ad7 00000000 		.quad	.LBB402
- 12671      00000000 
- 12672 1adf 00000000 		.quad	.LBE402
- 12672      00000000 
- 12673 1ae7 03       		.byte	0x3
- 12674 1ae8 8B06     		.value	0x68b
- 12675 1aea 31       		.uleb128 0x31
- 12676 1aeb 570D0000 		.long	0xd57
- 12677 1aef 03       		.byte	0x3
- 12678 1af0 91       		.byte	0x91
- 12679 1af1 906F     		.sleb128 -2160
- 12680 1af3 34       		.uleb128 0x34
- 12681 1af4 640D0000 		.long	0xd64
- 12682 1af8 00000000 		.quad	.LBB404
- 12682      00000000 
- 12683 1b00 00000000 		.quad	.LBE404
- 12683      00000000 
- 12684 1b08 03       		.byte	0x3
- 12685 1b09 4905     		.value	0x549
- 12686 1b0b 31       		.uleb128 0x31
- 12687 1b0c 820D0000 		.long	0xd82
- 12688 1b10 03       		.byte	0x3
- 12689 1b11 91       		.byte	0x91
- 12690 1b12 AC6F     		.sleb128 -2132
- 12691 1b14 31       		.uleb128 0x31
- 12692 1b15 760D0000 		.long	0xd76
- 12693 1b19 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 373
-
-
- 12694 1b1a 91       		.byte	0x91
- 12695 1b1b B06F     		.sleb128 -2128
- 12696 1b1d 00       		.byte	0x0
- 12697 1b1e 00       		.byte	0x0
- 12698 1b1f 00       		.byte	0x0
- 12699 1b20 00       		.byte	0x0
- 12700 1b21 30       		.uleb128 0x30
- 12701 1b22 8F0D0000 		.long	0xd8f
- 12702 1b26 00000000 		.quad	.LBB406
- 12702      00000000 
- 12703 1b2e 00000000 		.quad	.LBE406
- 12703      00000000 
- 12704 1b36 03       		.byte	0x3
- 12705 1b37 D406     		.value	0x6d4
- 12706 1b39 351D0000 		.long	0x1d35
- 12707 1b3d 31       		.uleb128 0x31
- 12708 1b3e A10D0000 		.long	0xda1
- 12709 1b42 03       		.byte	0x3
- 12710 1b43 91       		.byte	0x91
- 12711 1b44 C06F     		.sleb128 -2112
- 12712 1b46 32       		.uleb128 0x32
- 12713 1b47 00000000 		.quad	.LBB407
- 12713      00000000 
- 12714 1b4f 00000000 		.quad	.LBE407
- 12714      00000000 
- 12715 1b57 33       		.uleb128 0x33
- 12716 1b58 AD0D0000 		.long	0xdad
- 12717 1b5c 03       		.byte	0x3
- 12718 1b5d 76       		.byte	0x76
- 12719 1b5e C061     		.sleb128 -3904
- 12720 1b60 30       		.uleb128 0x30
- 12721 1b61 BA0D0000 		.long	0xdba
- 12722 1b65 00000000 		.quad	.LBB408
- 12722      00000000 
- 12723 1b6d 00000000 		.quad	.LBE408
- 12723      00000000 
- 12724 1b75 03       		.byte	0x3
- 12725 1b76 1F06     		.value	0x61f
- 12726 1b78 FD1B0000 		.long	0x1bfd
- 12727 1b7c 31       		.uleb128 0x31
- 12728 1b7d CC0D0000 		.long	0xdcc
- 12729 1b81 03       		.byte	0x3
- 12730 1b82 91       		.byte	0x91
- 12731 1b83 D06F     		.sleb128 -2096
- 12732 1b85 32       		.uleb128 0x32
- 12733 1b86 00000000 		.quad	.LBB409
- 12733      00000000 
- 12734 1b8e 00000000 		.quad	.LBE409
- 12734      00000000 
- 12735 1b96 33       		.uleb128 0x33
- 12736 1b97 D80D0000 		.long	0xdd8
- 12737 1b9b 09       		.byte	0x9
- 12738 1b9c 03       		.byte	0x3
- 12739 1b9d 00000000 		.quad	mask.8002
- 12739      00000000 
- 12740 1ba5 34       		.uleb128 0x34
- 12741 1ba6 FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 374
-
-
- 12742 1baa 00000000 		.quad	.LBB410
- 12742      00000000 
- 12743 1bb2 00000000 		.quad	.LBE410
- 12743      00000000 
- 12744 1bba 03       		.byte	0x3
- 12745 1bbb FE04     		.value	0x4fe
- 12746 1bbd 31       		.uleb128 0x31
- 12747 1bbe 190E0000 		.long	0xe19
- 12748 1bc2 03       		.byte	0x3
- 12749 1bc3 91       		.byte	0x91
- 12750 1bc4 E06F     		.sleb128 -2080
- 12751 1bc6 31       		.uleb128 0x31
- 12752 1bc7 0D0E0000 		.long	0xe0d
- 12753 1bcb 03       		.byte	0x3
- 12754 1bcc 91       		.byte	0x91
- 12755 1bcd F06F     		.sleb128 -2064
- 12756 1bcf 34       		.uleb128 0x34
- 12757 1bd0 260E0000 		.long	0xe26
- 12758 1bd4 00000000 		.quad	.LBB412
- 12758      00000000 
- 12759 1bdc 00000000 		.quad	.LBE412
- 12759      00000000 
- 12760 1be4 03       		.byte	0x3
- 12761 1be5 7501     		.value	0x175
- 12762 1be7 31       		.uleb128 0x31
- 12763 1be8 440E0000 		.long	0xe44
- 12764 1bec 03       		.byte	0x3
- 12765 1bed 91       		.byte	0x91
- 12766 1bee 8070     		.sleb128 -2048
- 12767 1bf0 31       		.uleb128 0x31
- 12768 1bf1 380E0000 		.long	0xe38
- 12769 1bf5 03       		.byte	0x3
- 12770 1bf6 91       		.byte	0x91
- 12771 1bf7 9070     		.sleb128 -2032
- 12772 1bf9 00       		.byte	0x0
- 12773 1bfa 00       		.byte	0x0
- 12774 1bfb 00       		.byte	0x0
- 12775 1bfc 00       		.byte	0x0
- 12776 1bfd 30       		.uleb128 0x30
- 12777 1bfe BA0D0000 		.long	0xdba
- 12778 1c02 00000000 		.quad	.LBB414
- 12778      00000000 
- 12779 1c0a 00000000 		.quad	.LBE414
- 12779      00000000 
- 12780 1c12 03       		.byte	0x3
- 12781 1c13 2006     		.value	0x620
- 12782 1c15 9A1C0000 		.long	0x1c9a
- 12783 1c19 31       		.uleb128 0x31
- 12784 1c1a CC0D0000 		.long	0xdcc
- 12785 1c1e 03       		.byte	0x3
- 12786 1c1f 91       		.byte	0x91
- 12787 1c20 A070     		.sleb128 -2016
- 12788 1c22 32       		.uleb128 0x32
- 12789 1c23 00000000 		.quad	.LBB415
- 12789      00000000 
- 12790 1c2b 00000000 		.quad	.LBE415
- 12790      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 375
-
-
- 12791 1c33 33       		.uleb128 0x33
- 12792 1c34 D80D0000 		.long	0xdd8
- 12793 1c38 09       		.byte	0x9
- 12794 1c39 03       		.byte	0x3
- 12795 1c3a 00000000 		.quad	mask.8002
- 12795      00000000 
- 12796 1c42 34       		.uleb128 0x34
- 12797 1c43 FB0D0000 		.long	0xdfb
- 12798 1c47 00000000 		.quad	.LBB416
- 12798      00000000 
- 12799 1c4f 00000000 		.quad	.LBE416
- 12799      00000000 
- 12800 1c57 03       		.byte	0x3
- 12801 1c58 FE04     		.value	0x4fe
- 12802 1c5a 31       		.uleb128 0x31
- 12803 1c5b 190E0000 		.long	0xe19
- 12804 1c5f 03       		.byte	0x3
- 12805 1c60 91       		.byte	0x91
- 12806 1c61 B070     		.sleb128 -2000
- 12807 1c63 31       		.uleb128 0x31
- 12808 1c64 0D0E0000 		.long	0xe0d
- 12809 1c68 03       		.byte	0x3
- 12810 1c69 91       		.byte	0x91
- 12811 1c6a C070     		.sleb128 -1984
- 12812 1c6c 34       		.uleb128 0x34
- 12813 1c6d 260E0000 		.long	0xe26
- 12814 1c71 00000000 		.quad	.LBB418
- 12814      00000000 
- 12815 1c79 00000000 		.quad	.LBE418
- 12815      00000000 
- 12816 1c81 03       		.byte	0x3
- 12817 1c82 7501     		.value	0x175
- 12818 1c84 31       		.uleb128 0x31
- 12819 1c85 440E0000 		.long	0xe44
- 12820 1c89 03       		.byte	0x3
- 12821 1c8a 91       		.byte	0x91
- 12822 1c8b D070     		.sleb128 -1968
- 12823 1c8d 31       		.uleb128 0x31
- 12824 1c8e 380E0000 		.long	0xe38
- 12825 1c92 03       		.byte	0x3
- 12826 1c93 91       		.byte	0x91
- 12827 1c94 E070     		.sleb128 -1952
- 12828 1c96 00       		.byte	0x0
- 12829 1c97 00       		.byte	0x0
- 12830 1c98 00       		.byte	0x0
- 12831 1c99 00       		.byte	0x0
- 12832 1c9a 34       		.uleb128 0x34
- 12833 1c9b BA0D0000 		.long	0xdba
- 12834 1c9f 00000000 		.quad	.LBB420
- 12834      00000000 
- 12835 1ca7 00000000 		.quad	.LBE420
- 12835      00000000 
- 12836 1caf 03       		.byte	0x3
- 12837 1cb0 2106     		.value	0x621
- 12838 1cb2 31       		.uleb128 0x31
- 12839 1cb3 CC0D0000 		.long	0xdcc
- 12840 1cb7 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 376
-
-
- 12841 1cb8 91       		.byte	0x91
- 12842 1cb9 F070     		.sleb128 -1936
- 12843 1cbb 32       		.uleb128 0x32
- 12844 1cbc 00000000 		.quad	.LBB421
- 12844      00000000 
- 12845 1cc4 00000000 		.quad	.LBE421
- 12845      00000000 
- 12846 1ccc 33       		.uleb128 0x33
- 12847 1ccd D80D0000 		.long	0xdd8
- 12848 1cd1 09       		.byte	0x9
- 12849 1cd2 03       		.byte	0x3
- 12850 1cd3 00000000 		.quad	mask.8002
- 12850      00000000 
- 12851 1cdb 34       		.uleb128 0x34
- 12852 1cdc FB0D0000 		.long	0xdfb
- 12853 1ce0 00000000 		.quad	.LBB422
- 12853      00000000 
- 12854 1ce8 00000000 		.quad	.LBE422
- 12854      00000000 
- 12855 1cf0 03       		.byte	0x3
- 12856 1cf1 FE04     		.value	0x4fe
- 12857 1cf3 31       		.uleb128 0x31
- 12858 1cf4 190E0000 		.long	0xe19
- 12859 1cf8 03       		.byte	0x3
- 12860 1cf9 91       		.byte	0x91
- 12861 1cfa 8071     		.sleb128 -1920
- 12862 1cfc 31       		.uleb128 0x31
- 12863 1cfd 0D0E0000 		.long	0xe0d
- 12864 1d01 03       		.byte	0x3
- 12865 1d02 91       		.byte	0x91
- 12866 1d03 9071     		.sleb128 -1904
- 12867 1d05 34       		.uleb128 0x34
- 12868 1d06 260E0000 		.long	0xe26
- 12869 1d0a 00000000 		.quad	.LBB424
- 12869      00000000 
- 12870 1d12 00000000 		.quad	.LBE424
- 12870      00000000 
- 12871 1d1a 03       		.byte	0x3
- 12872 1d1b 7501     		.value	0x175
- 12873 1d1d 31       		.uleb128 0x31
- 12874 1d1e 440E0000 		.long	0xe44
- 12875 1d22 03       		.byte	0x3
- 12876 1d23 91       		.byte	0x91
- 12877 1d24 A071     		.sleb128 -1888
- 12878 1d26 31       		.uleb128 0x31
- 12879 1d27 380E0000 		.long	0xe38
- 12880 1d2b 03       		.byte	0x3
- 12881 1d2c 91       		.byte	0x91
- 12882 1d2d B071     		.sleb128 -1872
- 12883 1d2f 00       		.byte	0x0
- 12884 1d30 00       		.byte	0x0
- 12885 1d31 00       		.byte	0x0
- 12886 1d32 00       		.byte	0x0
- 12887 1d33 00       		.byte	0x0
- 12888 1d34 00       		.byte	0x0
- 12889 1d35 30       		.uleb128 0x30
- 12890 1d36 E30C0000 		.long	0xce3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 377
-
-
- 12891 1d3a 00000000 		.quad	.LBB426
- 12891      00000000 
- 12892 1d42 00000000 		.quad	.LBE426
- 12892      00000000 
- 12893 1d4a 03       		.byte	0x3
- 12894 1d4b D506     		.value	0x6d5
- 12895 1d4d FB1D0000 		.long	0x1dfb
- 12896 1d51 31       		.uleb128 0x31
- 12897 1d52 010D0000 		.long	0xd01
- 12898 1d56 03       		.byte	0x3
- 12899 1d57 91       		.byte	0x91
- 12900 1d58 CC71     		.sleb128 -1844
- 12901 1d5a 31       		.uleb128 0x31
- 12902 1d5b F50C0000 		.long	0xcf5
- 12903 1d5f 03       		.byte	0x3
- 12904 1d60 91       		.byte	0x91
- 12905 1d61 D071     		.sleb128 -1840
- 12906 1d63 32       		.uleb128 0x32
- 12907 1d64 00000000 		.quad	.LBB427
- 12907      00000000 
- 12908 1d6c 00000000 		.quad	.LBE427
- 12908      00000000 
- 12909 1d74 33       		.uleb128 0x33
- 12910 1d75 0D0D0000 		.long	0xd0d
- 12911 1d79 03       		.byte	0x3
- 12912 1d7a 76       		.byte	0x76
- 12913 1d7b D061     		.sleb128 -3888
- 12914 1d7d 30       		.uleb128 0x30
- 12915 1d7e 1A0D0000 		.long	0xd1a
- 12916 1d82 00000000 		.quad	.LBB428
- 12916      00000000 
- 12917 1d8a 00000000 		.quad	.LBE428
- 12917      00000000 
- 12918 1d92 03       		.byte	0x3
- 12919 1d93 8A06     		.value	0x68a
- 12920 1d95 AC1D0000 		.long	0x1dac
- 12921 1d99 31       		.uleb128 0x31
- 12922 1d9a 380D0000 		.long	0xd38
- 12923 1d9e 03       		.byte	0x3
- 12924 1d9f 91       		.byte	0x91
- 12925 1da0 EC71     		.sleb128 -1812
- 12926 1da2 31       		.uleb128 0x31
- 12927 1da3 2C0D0000 		.long	0xd2c
- 12928 1da7 03       		.byte	0x3
- 12929 1da8 91       		.byte	0x91
- 12930 1da9 F071     		.sleb128 -1808
- 12931 1dab 00       		.byte	0x0
- 12932 1dac 34       		.uleb128 0x34
- 12933 1dad 450D0000 		.long	0xd45
- 12934 1db1 00000000 		.quad	.LBB430
- 12934      00000000 
- 12935 1db9 00000000 		.quad	.LBE430
- 12935      00000000 
- 12936 1dc1 03       		.byte	0x3
- 12937 1dc2 8B06     		.value	0x68b
- 12938 1dc4 31       		.uleb128 0x31
- 12939 1dc5 570D0000 		.long	0xd57
-
GAS LISTING /tmp/ccPaCTqg.s 			page 378
-
-
- 12940 1dc9 03       		.byte	0x3
- 12941 1dca 91       		.byte	0x91
- 12942 1dcb 8072     		.sleb128 -1792
- 12943 1dcd 34       		.uleb128 0x34
- 12944 1dce 640D0000 		.long	0xd64
- 12945 1dd2 00000000 		.quad	.LBB432
- 12945      00000000 
- 12946 1dda 00000000 		.quad	.LBE432
- 12946      00000000 
- 12947 1de2 03       		.byte	0x3
- 12948 1de3 4905     		.value	0x549
- 12949 1de5 31       		.uleb128 0x31
- 12950 1de6 820D0000 		.long	0xd82
- 12951 1dea 03       		.byte	0x3
- 12952 1deb 91       		.byte	0x91
- 12953 1dec 9C72     		.sleb128 -1764
- 12954 1dee 31       		.uleb128 0x31
- 12955 1def 760D0000 		.long	0xd76
- 12956 1df3 03       		.byte	0x3
- 12957 1df4 91       		.byte	0x91
- 12958 1df5 A072     		.sleb128 -1760
- 12959 1df7 00       		.byte	0x0
- 12960 1df8 00       		.byte	0x0
- 12961 1df9 00       		.byte	0x0
- 12962 1dfa 00       		.byte	0x0
- 12963 1dfb 30       		.uleb128 0x30
- 12964 1dfc 8F0D0000 		.long	0xd8f
- 12965 1e00 00000000 		.quad	.LBB434
- 12965      00000000 
- 12966 1e08 00000000 		.quad	.LBE434
- 12966      00000000 
- 12967 1e10 03       		.byte	0x3
- 12968 1e11 D506     		.value	0x6d5
- 12969 1e13 0F200000 		.long	0x200f
- 12970 1e17 31       		.uleb128 0x31
- 12971 1e18 A10D0000 		.long	0xda1
- 12972 1e1c 03       		.byte	0x3
- 12973 1e1d 91       		.byte	0x91
- 12974 1e1e B072     		.sleb128 -1744
- 12975 1e20 32       		.uleb128 0x32
- 12976 1e21 00000000 		.quad	.LBB435
- 12976      00000000 
- 12977 1e29 00000000 		.quad	.LBE435
- 12977      00000000 
- 12978 1e31 33       		.uleb128 0x33
- 12979 1e32 AD0D0000 		.long	0xdad
- 12980 1e36 03       		.byte	0x3
- 12981 1e37 76       		.byte	0x76
- 12982 1e38 E061     		.sleb128 -3872
- 12983 1e3a 30       		.uleb128 0x30
- 12984 1e3b BA0D0000 		.long	0xdba
- 12985 1e3f 00000000 		.quad	.LBB436
- 12985      00000000 
- 12986 1e47 00000000 		.quad	.LBE436
- 12986      00000000 
- 12987 1e4f 03       		.byte	0x3
- 12988 1e50 1F06     		.value	0x61f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 379
-
-
- 12989 1e52 D71E0000 		.long	0x1ed7
- 12990 1e56 31       		.uleb128 0x31
- 12991 1e57 CC0D0000 		.long	0xdcc
- 12992 1e5b 03       		.byte	0x3
- 12993 1e5c 91       		.byte	0x91
- 12994 1e5d C072     		.sleb128 -1728
- 12995 1e5f 32       		.uleb128 0x32
- 12996 1e60 00000000 		.quad	.LBB437
- 12996      00000000 
- 12997 1e68 00000000 		.quad	.LBE437
- 12997      00000000 
- 12998 1e70 33       		.uleb128 0x33
- 12999 1e71 D80D0000 		.long	0xdd8
- 13000 1e75 09       		.byte	0x9
- 13001 1e76 03       		.byte	0x3
- 13002 1e77 00000000 		.quad	mask.8002
- 13002      00000000 
- 13003 1e7f 34       		.uleb128 0x34
- 13004 1e80 FB0D0000 		.long	0xdfb
- 13005 1e84 00000000 		.quad	.LBB438
- 13005      00000000 
- 13006 1e8c 00000000 		.quad	.LBE438
- 13006      00000000 
- 13007 1e94 03       		.byte	0x3
- 13008 1e95 FE04     		.value	0x4fe
- 13009 1e97 31       		.uleb128 0x31
- 13010 1e98 190E0000 		.long	0xe19
- 13011 1e9c 03       		.byte	0x3
- 13012 1e9d 91       		.byte	0x91
- 13013 1e9e D072     		.sleb128 -1712
- 13014 1ea0 31       		.uleb128 0x31
- 13015 1ea1 0D0E0000 		.long	0xe0d
- 13016 1ea5 03       		.byte	0x3
- 13017 1ea6 91       		.byte	0x91
- 13018 1ea7 E072     		.sleb128 -1696
- 13019 1ea9 34       		.uleb128 0x34
- 13020 1eaa 260E0000 		.long	0xe26
- 13021 1eae 00000000 		.quad	.LBB440
- 13021      00000000 
- 13022 1eb6 00000000 		.quad	.LBE440
- 13022      00000000 
- 13023 1ebe 03       		.byte	0x3
- 13024 1ebf 7501     		.value	0x175
- 13025 1ec1 31       		.uleb128 0x31
- 13026 1ec2 440E0000 		.long	0xe44
- 13027 1ec6 03       		.byte	0x3
- 13028 1ec7 91       		.byte	0x91
- 13029 1ec8 F072     		.sleb128 -1680
- 13030 1eca 31       		.uleb128 0x31
- 13031 1ecb 380E0000 		.long	0xe38
- 13032 1ecf 03       		.byte	0x3
- 13033 1ed0 91       		.byte	0x91
- 13034 1ed1 8073     		.sleb128 -1664
- 13035 1ed3 00       		.byte	0x0
- 13036 1ed4 00       		.byte	0x0
- 13037 1ed5 00       		.byte	0x0
- 13038 1ed6 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 380
-
-
- 13039 1ed7 30       		.uleb128 0x30
- 13040 1ed8 BA0D0000 		.long	0xdba
- 13041 1edc 00000000 		.quad	.LBB442
- 13041      00000000 
- 13042 1ee4 00000000 		.quad	.LBE442
- 13042      00000000 
- 13043 1eec 03       		.byte	0x3
- 13044 1eed 2006     		.value	0x620
- 13045 1eef 741F0000 		.long	0x1f74
- 13046 1ef3 31       		.uleb128 0x31
- 13047 1ef4 CC0D0000 		.long	0xdcc
- 13048 1ef8 03       		.byte	0x3
- 13049 1ef9 91       		.byte	0x91
- 13050 1efa 9073     		.sleb128 -1648
- 13051 1efc 32       		.uleb128 0x32
- 13052 1efd 00000000 		.quad	.LBB443
- 13052      00000000 
- 13053 1f05 00000000 		.quad	.LBE443
- 13053      00000000 
- 13054 1f0d 33       		.uleb128 0x33
- 13055 1f0e D80D0000 		.long	0xdd8
- 13056 1f12 09       		.byte	0x9
- 13057 1f13 03       		.byte	0x3
- 13058 1f14 00000000 		.quad	mask.8002
- 13058      00000000 
- 13059 1f1c 34       		.uleb128 0x34
- 13060 1f1d FB0D0000 		.long	0xdfb
- 13061 1f21 00000000 		.quad	.LBB444
- 13061      00000000 
- 13062 1f29 00000000 		.quad	.LBE444
- 13062      00000000 
- 13063 1f31 03       		.byte	0x3
- 13064 1f32 FE04     		.value	0x4fe
- 13065 1f34 31       		.uleb128 0x31
- 13066 1f35 190E0000 		.long	0xe19
- 13067 1f39 03       		.byte	0x3
- 13068 1f3a 91       		.byte	0x91
- 13069 1f3b A073     		.sleb128 -1632
- 13070 1f3d 31       		.uleb128 0x31
- 13071 1f3e 0D0E0000 		.long	0xe0d
- 13072 1f42 03       		.byte	0x3
- 13073 1f43 91       		.byte	0x91
- 13074 1f44 B073     		.sleb128 -1616
- 13075 1f46 34       		.uleb128 0x34
- 13076 1f47 260E0000 		.long	0xe26
- 13077 1f4b 00000000 		.quad	.LBB446
- 13077      00000000 
- 13078 1f53 00000000 		.quad	.LBE446
- 13078      00000000 
- 13079 1f5b 03       		.byte	0x3
- 13080 1f5c 7501     		.value	0x175
- 13081 1f5e 31       		.uleb128 0x31
- 13082 1f5f 440E0000 		.long	0xe44
- 13083 1f63 03       		.byte	0x3
- 13084 1f64 91       		.byte	0x91
- 13085 1f65 C073     		.sleb128 -1600
- 13086 1f67 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 381
-
-
- 13087 1f68 380E0000 		.long	0xe38
- 13088 1f6c 03       		.byte	0x3
- 13089 1f6d 91       		.byte	0x91
- 13090 1f6e D073     		.sleb128 -1584
- 13091 1f70 00       		.byte	0x0
- 13092 1f71 00       		.byte	0x0
- 13093 1f72 00       		.byte	0x0
- 13094 1f73 00       		.byte	0x0
- 13095 1f74 34       		.uleb128 0x34
- 13096 1f75 BA0D0000 		.long	0xdba
- 13097 1f79 00000000 		.quad	.LBB448
- 13097      00000000 
- 13098 1f81 00000000 		.quad	.LBE448
- 13098      00000000 
- 13099 1f89 03       		.byte	0x3
- 13100 1f8a 2106     		.value	0x621
- 13101 1f8c 31       		.uleb128 0x31
- 13102 1f8d CC0D0000 		.long	0xdcc
- 13103 1f91 03       		.byte	0x3
- 13104 1f92 91       		.byte	0x91
- 13105 1f93 E073     		.sleb128 -1568
- 13106 1f95 32       		.uleb128 0x32
- 13107 1f96 00000000 		.quad	.LBB449
- 13107      00000000 
- 13108 1f9e 00000000 		.quad	.LBE449
- 13108      00000000 
- 13109 1fa6 33       		.uleb128 0x33
- 13110 1fa7 D80D0000 		.long	0xdd8
- 13111 1fab 09       		.byte	0x9
- 13112 1fac 03       		.byte	0x3
- 13113 1fad 00000000 		.quad	mask.8002
- 13113      00000000 
- 13114 1fb5 34       		.uleb128 0x34
- 13115 1fb6 FB0D0000 		.long	0xdfb
- 13116 1fba 00000000 		.quad	.LBB450
- 13116      00000000 
- 13117 1fc2 00000000 		.quad	.LBE450
- 13117      00000000 
- 13118 1fca 03       		.byte	0x3
- 13119 1fcb FE04     		.value	0x4fe
- 13120 1fcd 31       		.uleb128 0x31
- 13121 1fce 190E0000 		.long	0xe19
- 13122 1fd2 03       		.byte	0x3
- 13123 1fd3 91       		.byte	0x91
- 13124 1fd4 F073     		.sleb128 -1552
- 13125 1fd6 31       		.uleb128 0x31
- 13126 1fd7 0D0E0000 		.long	0xe0d
- 13127 1fdb 03       		.byte	0x3
- 13128 1fdc 91       		.byte	0x91
- 13129 1fdd 8074     		.sleb128 -1536
- 13130 1fdf 34       		.uleb128 0x34
- 13131 1fe0 260E0000 		.long	0xe26
- 13132 1fe4 00000000 		.quad	.LBB452
- 13132      00000000 
- 13133 1fec 00000000 		.quad	.LBE452
- 13133      00000000 
- 13134 1ff4 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 382
-
-
- 13135 1ff5 7501     		.value	0x175
- 13136 1ff7 31       		.uleb128 0x31
- 13137 1ff8 440E0000 		.long	0xe44
- 13138 1ffc 03       		.byte	0x3
- 13139 1ffd 91       		.byte	0x91
- 13140 1ffe 9074     		.sleb128 -1520
- 13141 2000 31       		.uleb128 0x31
- 13142 2001 380E0000 		.long	0xe38
- 13143 2005 03       		.byte	0x3
- 13144 2006 91       		.byte	0x91
- 13145 2007 A074     		.sleb128 -1504
- 13146 2009 00       		.byte	0x0
- 13147 200a 00       		.byte	0x0
- 13148 200b 00       		.byte	0x0
- 13149 200c 00       		.byte	0x0
- 13150 200d 00       		.byte	0x0
- 13151 200e 00       		.byte	0x0
- 13152 200f 30       		.uleb128 0x30
- 13153 2010 E30C0000 		.long	0xce3
- 13154 2014 00000000 		.quad	.LBB454
- 13154      00000000 
- 13155 201c 00000000 		.quad	.LBE454
- 13155      00000000 
- 13156 2024 03       		.byte	0x3
- 13157 2025 D606     		.value	0x6d6
- 13158 2027 D5200000 		.long	0x20d5
- 13159 202b 31       		.uleb128 0x31
- 13160 202c 010D0000 		.long	0xd01
- 13161 2030 03       		.byte	0x3
- 13162 2031 91       		.byte	0x91
- 13163 2032 BC74     		.sleb128 -1476
- 13164 2034 31       		.uleb128 0x31
- 13165 2035 F50C0000 		.long	0xcf5
- 13166 2039 03       		.byte	0x3
- 13167 203a 91       		.byte	0x91
- 13168 203b C074     		.sleb128 -1472
- 13169 203d 32       		.uleb128 0x32
- 13170 203e 00000000 		.quad	.LBB455
- 13170      00000000 
- 13171 2046 00000000 		.quad	.LBE455
- 13171      00000000 
- 13172 204e 33       		.uleb128 0x33
- 13173 204f 0D0D0000 		.long	0xd0d
- 13174 2053 03       		.byte	0x3
- 13175 2054 76       		.byte	0x76
- 13176 2055 F061     		.sleb128 -3856
- 13177 2057 30       		.uleb128 0x30
- 13178 2058 1A0D0000 		.long	0xd1a
- 13179 205c 00000000 		.quad	.LBB456
- 13179      00000000 
- 13180 2064 00000000 		.quad	.LBE456
- 13180      00000000 
- 13181 206c 03       		.byte	0x3
- 13182 206d 8A06     		.value	0x68a
- 13183 206f 86200000 		.long	0x2086
- 13184 2073 31       		.uleb128 0x31
- 13185 2074 380D0000 		.long	0xd38
-
GAS LISTING /tmp/ccPaCTqg.s 			page 383
-
-
- 13186 2078 03       		.byte	0x3
- 13187 2079 91       		.byte	0x91
- 13188 207a DC74     		.sleb128 -1444
- 13189 207c 31       		.uleb128 0x31
- 13190 207d 2C0D0000 		.long	0xd2c
- 13191 2081 03       		.byte	0x3
- 13192 2082 91       		.byte	0x91
- 13193 2083 E074     		.sleb128 -1440
- 13194 2085 00       		.byte	0x0
- 13195 2086 34       		.uleb128 0x34
- 13196 2087 450D0000 		.long	0xd45
- 13197 208b 00000000 		.quad	.LBB458
- 13197      00000000 
- 13198 2093 00000000 		.quad	.LBE458
- 13198      00000000 
- 13199 209b 03       		.byte	0x3
- 13200 209c 8B06     		.value	0x68b
- 13201 209e 31       		.uleb128 0x31
- 13202 209f 570D0000 		.long	0xd57
- 13203 20a3 03       		.byte	0x3
- 13204 20a4 91       		.byte	0x91
- 13205 20a5 F074     		.sleb128 -1424
- 13206 20a7 34       		.uleb128 0x34
- 13207 20a8 640D0000 		.long	0xd64
- 13208 20ac 00000000 		.quad	.LBB460
- 13208      00000000 
- 13209 20b4 00000000 		.quad	.LBE460
- 13209      00000000 
- 13210 20bc 03       		.byte	0x3
- 13211 20bd 4905     		.value	0x549
- 13212 20bf 31       		.uleb128 0x31
- 13213 20c0 820D0000 		.long	0xd82
- 13214 20c4 03       		.byte	0x3
- 13215 20c5 91       		.byte	0x91
- 13216 20c6 8C75     		.sleb128 -1396
- 13217 20c8 31       		.uleb128 0x31
- 13218 20c9 760D0000 		.long	0xd76
- 13219 20cd 03       		.byte	0x3
- 13220 20ce 91       		.byte	0x91
- 13221 20cf 9075     		.sleb128 -1392
- 13222 20d1 00       		.byte	0x0
- 13223 20d2 00       		.byte	0x0
- 13224 20d3 00       		.byte	0x0
- 13225 20d4 00       		.byte	0x0
- 13226 20d5 30       		.uleb128 0x30
- 13227 20d6 8F0D0000 		.long	0xd8f
- 13228 20da 00000000 		.quad	.LBB462
- 13228      00000000 
- 13229 20e2 00000000 		.quad	.LBE462
- 13229      00000000 
- 13230 20ea 03       		.byte	0x3
- 13231 20eb D606     		.value	0x6d6
- 13232 20ed E9220000 		.long	0x22e9
- 13233 20f1 31       		.uleb128 0x31
- 13234 20f2 A10D0000 		.long	0xda1
- 13235 20f6 03       		.byte	0x3
- 13236 20f7 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 384
-
-
- 13237 20f8 A075     		.sleb128 -1376
- 13238 20fa 32       		.uleb128 0x32
- 13239 20fb 00000000 		.quad	.LBB463
- 13239      00000000 
- 13240 2103 00000000 		.quad	.LBE463
- 13240      00000000 
- 13241 210b 33       		.uleb128 0x33
- 13242 210c AD0D0000 		.long	0xdad
- 13243 2110 03       		.byte	0x3
- 13244 2111 76       		.byte	0x76
- 13245 2112 8062     		.sleb128 -3840
- 13246 2114 30       		.uleb128 0x30
- 13247 2115 BA0D0000 		.long	0xdba
- 13248 2119 00000000 		.quad	.LBB464
- 13248      00000000 
- 13249 2121 00000000 		.quad	.LBE464
- 13249      00000000 
- 13250 2129 03       		.byte	0x3
- 13251 212a 1F06     		.value	0x61f
- 13252 212c B1210000 		.long	0x21b1
- 13253 2130 31       		.uleb128 0x31
- 13254 2131 CC0D0000 		.long	0xdcc
- 13255 2135 03       		.byte	0x3
- 13256 2136 91       		.byte	0x91
- 13257 2137 B075     		.sleb128 -1360
- 13258 2139 32       		.uleb128 0x32
- 13259 213a 00000000 		.quad	.LBB465
- 13259      00000000 
- 13260 2142 00000000 		.quad	.LBE465
- 13260      00000000 
- 13261 214a 33       		.uleb128 0x33
- 13262 214b D80D0000 		.long	0xdd8
- 13263 214f 09       		.byte	0x9
- 13264 2150 03       		.byte	0x3
- 13265 2151 00000000 		.quad	mask.8002
- 13265      00000000 
- 13266 2159 34       		.uleb128 0x34
- 13267 215a FB0D0000 		.long	0xdfb
- 13268 215e 00000000 		.quad	.LBB466
- 13268      00000000 
- 13269 2166 00000000 		.quad	.LBE466
- 13269      00000000 
- 13270 216e 03       		.byte	0x3
- 13271 216f FE04     		.value	0x4fe
- 13272 2171 31       		.uleb128 0x31
- 13273 2172 190E0000 		.long	0xe19
- 13274 2176 03       		.byte	0x3
- 13275 2177 91       		.byte	0x91
- 13276 2178 C075     		.sleb128 -1344
- 13277 217a 31       		.uleb128 0x31
- 13278 217b 0D0E0000 		.long	0xe0d
- 13279 217f 03       		.byte	0x3
- 13280 2180 91       		.byte	0x91
- 13281 2181 D075     		.sleb128 -1328
- 13282 2183 34       		.uleb128 0x34
- 13283 2184 260E0000 		.long	0xe26
- 13284 2188 00000000 		.quad	.LBB468
-
GAS LISTING /tmp/ccPaCTqg.s 			page 385
-
-
- 13284      00000000 
- 13285 2190 00000000 		.quad	.LBE468
- 13285      00000000 
- 13286 2198 03       		.byte	0x3
- 13287 2199 7501     		.value	0x175
- 13288 219b 31       		.uleb128 0x31
- 13289 219c 440E0000 		.long	0xe44
- 13290 21a0 03       		.byte	0x3
- 13291 21a1 91       		.byte	0x91
- 13292 21a2 E075     		.sleb128 -1312
- 13293 21a4 31       		.uleb128 0x31
- 13294 21a5 380E0000 		.long	0xe38
- 13295 21a9 03       		.byte	0x3
- 13296 21aa 91       		.byte	0x91
- 13297 21ab F075     		.sleb128 -1296
- 13298 21ad 00       		.byte	0x0
- 13299 21ae 00       		.byte	0x0
- 13300 21af 00       		.byte	0x0
- 13301 21b0 00       		.byte	0x0
- 13302 21b1 30       		.uleb128 0x30
- 13303 21b2 BA0D0000 		.long	0xdba
- 13304 21b6 00000000 		.quad	.LBB470
- 13304      00000000 
- 13305 21be 00000000 		.quad	.LBE470
- 13305      00000000 
- 13306 21c6 03       		.byte	0x3
- 13307 21c7 2006     		.value	0x620
- 13308 21c9 4E220000 		.long	0x224e
- 13309 21cd 31       		.uleb128 0x31
- 13310 21ce CC0D0000 		.long	0xdcc
- 13311 21d2 03       		.byte	0x3
- 13312 21d3 91       		.byte	0x91
- 13313 21d4 8076     		.sleb128 -1280
- 13314 21d6 32       		.uleb128 0x32
- 13315 21d7 00000000 		.quad	.LBB471
- 13315      00000000 
- 13316 21df 00000000 		.quad	.LBE471
- 13316      00000000 
- 13317 21e7 33       		.uleb128 0x33
- 13318 21e8 D80D0000 		.long	0xdd8
- 13319 21ec 09       		.byte	0x9
- 13320 21ed 03       		.byte	0x3
- 13321 21ee 00000000 		.quad	mask.8002
- 13321      00000000 
- 13322 21f6 34       		.uleb128 0x34
- 13323 21f7 FB0D0000 		.long	0xdfb
- 13324 21fb 00000000 		.quad	.LBB472
- 13324      00000000 
- 13325 2203 00000000 		.quad	.LBE472
- 13325      00000000 
- 13326 220b 03       		.byte	0x3
- 13327 220c FE04     		.value	0x4fe
- 13328 220e 31       		.uleb128 0x31
- 13329 220f 190E0000 		.long	0xe19
- 13330 2213 03       		.byte	0x3
- 13331 2214 91       		.byte	0x91
- 13332 2215 9076     		.sleb128 -1264
-
GAS LISTING /tmp/ccPaCTqg.s 			page 386
-
-
- 13333 2217 31       		.uleb128 0x31
- 13334 2218 0D0E0000 		.long	0xe0d
- 13335 221c 03       		.byte	0x3
- 13336 221d 91       		.byte	0x91
- 13337 221e A076     		.sleb128 -1248
- 13338 2220 34       		.uleb128 0x34
- 13339 2221 260E0000 		.long	0xe26
- 13340 2225 00000000 		.quad	.LBB474
- 13340      00000000 
- 13341 222d 00000000 		.quad	.LBE474
- 13341      00000000 
- 13342 2235 03       		.byte	0x3
- 13343 2236 7501     		.value	0x175
- 13344 2238 31       		.uleb128 0x31
- 13345 2239 440E0000 		.long	0xe44
- 13346 223d 03       		.byte	0x3
- 13347 223e 91       		.byte	0x91
- 13348 223f B076     		.sleb128 -1232
- 13349 2241 31       		.uleb128 0x31
- 13350 2242 380E0000 		.long	0xe38
- 13351 2246 03       		.byte	0x3
- 13352 2247 91       		.byte	0x91
- 13353 2248 C076     		.sleb128 -1216
- 13354 224a 00       		.byte	0x0
- 13355 224b 00       		.byte	0x0
- 13356 224c 00       		.byte	0x0
- 13357 224d 00       		.byte	0x0
- 13358 224e 34       		.uleb128 0x34
- 13359 224f BA0D0000 		.long	0xdba
- 13360 2253 00000000 		.quad	.LBB476
- 13360      00000000 
- 13361 225b 00000000 		.quad	.LBE476
- 13361      00000000 
- 13362 2263 03       		.byte	0x3
- 13363 2264 2106     		.value	0x621
- 13364 2266 31       		.uleb128 0x31
- 13365 2267 CC0D0000 		.long	0xdcc
- 13366 226b 03       		.byte	0x3
- 13367 226c 91       		.byte	0x91
- 13368 226d D076     		.sleb128 -1200
- 13369 226f 32       		.uleb128 0x32
- 13370 2270 00000000 		.quad	.LBB477
- 13370      00000000 
- 13371 2278 00000000 		.quad	.LBE477
- 13371      00000000 
- 13372 2280 33       		.uleb128 0x33
- 13373 2281 D80D0000 		.long	0xdd8
- 13374 2285 09       		.byte	0x9
- 13375 2286 03       		.byte	0x3
- 13376 2287 00000000 		.quad	mask.8002
- 13376      00000000 
- 13377 228f 34       		.uleb128 0x34
- 13378 2290 FB0D0000 		.long	0xdfb
- 13379 2294 00000000 		.quad	.LBB478
- 13379      00000000 
- 13380 229c 00000000 		.quad	.LBE478
- 13380      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 387
-
-
- 13381 22a4 03       		.byte	0x3
- 13382 22a5 FE04     		.value	0x4fe
- 13383 22a7 31       		.uleb128 0x31
- 13384 22a8 190E0000 		.long	0xe19
- 13385 22ac 03       		.byte	0x3
- 13386 22ad 91       		.byte	0x91
- 13387 22ae E076     		.sleb128 -1184
- 13388 22b0 31       		.uleb128 0x31
- 13389 22b1 0D0E0000 		.long	0xe0d
- 13390 22b5 03       		.byte	0x3
- 13391 22b6 91       		.byte	0x91
- 13392 22b7 F076     		.sleb128 -1168
- 13393 22b9 34       		.uleb128 0x34
- 13394 22ba 260E0000 		.long	0xe26
- 13395 22be 00000000 		.quad	.LBB480
- 13395      00000000 
- 13396 22c6 00000000 		.quad	.LBE480
- 13396      00000000 
- 13397 22ce 03       		.byte	0x3
- 13398 22cf 7501     		.value	0x175
- 13399 22d1 31       		.uleb128 0x31
- 13400 22d2 440E0000 		.long	0xe44
- 13401 22d6 03       		.byte	0x3
- 13402 22d7 91       		.byte	0x91
- 13403 22d8 8077     		.sleb128 -1152
- 13404 22da 31       		.uleb128 0x31
- 13405 22db 380E0000 		.long	0xe38
- 13406 22df 03       		.byte	0x3
- 13407 22e0 91       		.byte	0x91
- 13408 22e1 9077     		.sleb128 -1136
- 13409 22e3 00       		.byte	0x0
- 13410 22e4 00       		.byte	0x0
- 13411 22e5 00       		.byte	0x0
- 13412 22e6 00       		.byte	0x0
- 13413 22e7 00       		.byte	0x0
- 13414 22e8 00       		.byte	0x0
- 13415 22e9 30       		.uleb128 0x30
- 13416 22ea E30C0000 		.long	0xce3
- 13417 22ee 00000000 		.quad	.LBB482
- 13417      00000000 
- 13418 22f6 00000000 		.quad	.LBE482
- 13418      00000000 
- 13419 22fe 03       		.byte	0x3
- 13420 22ff D706     		.value	0x6d7
- 13421 2301 AF230000 		.long	0x23af
- 13422 2305 31       		.uleb128 0x31
- 13423 2306 010D0000 		.long	0xd01
- 13424 230a 03       		.byte	0x3
- 13425 230b 91       		.byte	0x91
- 13426 230c AC77     		.sleb128 -1108
- 13427 230e 31       		.uleb128 0x31
- 13428 230f F50C0000 		.long	0xcf5
- 13429 2313 03       		.byte	0x3
- 13430 2314 91       		.byte	0x91
- 13431 2315 B077     		.sleb128 -1104
- 13432 2317 32       		.uleb128 0x32
- 13433 2318 00000000 		.quad	.LBB483
-
GAS LISTING /tmp/ccPaCTqg.s 			page 388
-
-
- 13433      00000000 
- 13434 2320 00000000 		.quad	.LBE483
- 13434      00000000 
- 13435 2328 33       		.uleb128 0x33
- 13436 2329 0D0D0000 		.long	0xd0d
- 13437 232d 03       		.byte	0x3
- 13438 232e 76       		.byte	0x76
- 13439 232f 9062     		.sleb128 -3824
- 13440 2331 30       		.uleb128 0x30
- 13441 2332 1A0D0000 		.long	0xd1a
- 13442 2336 00000000 		.quad	.LBB484
- 13442      00000000 
- 13443 233e 00000000 		.quad	.LBE484
- 13443      00000000 
- 13444 2346 03       		.byte	0x3
- 13445 2347 8A06     		.value	0x68a
- 13446 2349 60230000 		.long	0x2360
- 13447 234d 31       		.uleb128 0x31
- 13448 234e 380D0000 		.long	0xd38
- 13449 2352 03       		.byte	0x3
- 13450 2353 91       		.byte	0x91
- 13451 2354 CC77     		.sleb128 -1076
- 13452 2356 31       		.uleb128 0x31
- 13453 2357 2C0D0000 		.long	0xd2c
- 13454 235b 03       		.byte	0x3
- 13455 235c 91       		.byte	0x91
- 13456 235d D077     		.sleb128 -1072
- 13457 235f 00       		.byte	0x0
- 13458 2360 34       		.uleb128 0x34
- 13459 2361 450D0000 		.long	0xd45
- 13460 2365 00000000 		.quad	.LBB486
- 13460      00000000 
- 13461 236d 00000000 		.quad	.LBE486
- 13461      00000000 
- 13462 2375 03       		.byte	0x3
- 13463 2376 8B06     		.value	0x68b
- 13464 2378 31       		.uleb128 0x31
- 13465 2379 570D0000 		.long	0xd57
- 13466 237d 03       		.byte	0x3
- 13467 237e 91       		.byte	0x91
- 13468 237f E077     		.sleb128 -1056
- 13469 2381 34       		.uleb128 0x34
- 13470 2382 640D0000 		.long	0xd64
- 13471 2386 00000000 		.quad	.LBB488
- 13471      00000000 
- 13472 238e 00000000 		.quad	.LBE488
- 13472      00000000 
- 13473 2396 03       		.byte	0x3
- 13474 2397 4905     		.value	0x549
- 13475 2399 31       		.uleb128 0x31
- 13476 239a 820D0000 		.long	0xd82
- 13477 239e 03       		.byte	0x3
- 13478 239f 91       		.byte	0x91
- 13479 23a0 FC77     		.sleb128 -1028
- 13480 23a2 31       		.uleb128 0x31
- 13481 23a3 760D0000 		.long	0xd76
- 13482 23a7 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 389
-
-
- 13483 23a8 91       		.byte	0x91
- 13484 23a9 8078     		.sleb128 -1024
- 13485 23ab 00       		.byte	0x0
- 13486 23ac 00       		.byte	0x0
- 13487 23ad 00       		.byte	0x0
- 13488 23ae 00       		.byte	0x0
- 13489 23af 30       		.uleb128 0x30
- 13490 23b0 8F0D0000 		.long	0xd8f
- 13491 23b4 00000000 		.quad	.LBB490
- 13491      00000000 
- 13492 23bc 00000000 		.quad	.LBE490
- 13492      00000000 
- 13493 23c4 03       		.byte	0x3
- 13494 23c5 D706     		.value	0x6d7
- 13495 23c7 C3250000 		.long	0x25c3
- 13496 23cb 31       		.uleb128 0x31
- 13497 23cc A10D0000 		.long	0xda1
- 13498 23d0 03       		.byte	0x3
- 13499 23d1 91       		.byte	0x91
- 13500 23d2 9078     		.sleb128 -1008
- 13501 23d4 32       		.uleb128 0x32
- 13502 23d5 00000000 		.quad	.LBB491
- 13502      00000000 
- 13503 23dd 00000000 		.quad	.LBE491
- 13503      00000000 
- 13504 23e5 33       		.uleb128 0x33
- 13505 23e6 AD0D0000 		.long	0xdad
- 13506 23ea 03       		.byte	0x3
- 13507 23eb 76       		.byte	0x76
- 13508 23ec A062     		.sleb128 -3808
- 13509 23ee 30       		.uleb128 0x30
- 13510 23ef BA0D0000 		.long	0xdba
- 13511 23f3 00000000 		.quad	.LBB492
- 13511      00000000 
- 13512 23fb 00000000 		.quad	.LBE492
- 13512      00000000 
- 13513 2403 03       		.byte	0x3
- 13514 2404 1F06     		.value	0x61f
- 13515 2406 8B240000 		.long	0x248b
- 13516 240a 31       		.uleb128 0x31
- 13517 240b CC0D0000 		.long	0xdcc
- 13518 240f 03       		.byte	0x3
- 13519 2410 91       		.byte	0x91
- 13520 2411 A078     		.sleb128 -992
- 13521 2413 32       		.uleb128 0x32
- 13522 2414 00000000 		.quad	.LBB493
- 13522      00000000 
- 13523 241c 00000000 		.quad	.LBE493
- 13523      00000000 
- 13524 2424 33       		.uleb128 0x33
- 13525 2425 D80D0000 		.long	0xdd8
- 13526 2429 09       		.byte	0x9
- 13527 242a 03       		.byte	0x3
- 13528 242b 00000000 		.quad	mask.8002
- 13528      00000000 
- 13529 2433 34       		.uleb128 0x34
- 13530 2434 FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 390
-
-
- 13531 2438 00000000 		.quad	.LBB494
- 13531      00000000 
- 13532 2440 00000000 		.quad	.LBE494
- 13532      00000000 
- 13533 2448 03       		.byte	0x3
- 13534 2449 FE04     		.value	0x4fe
- 13535 244b 31       		.uleb128 0x31
- 13536 244c 190E0000 		.long	0xe19
- 13537 2450 03       		.byte	0x3
- 13538 2451 91       		.byte	0x91
- 13539 2452 B078     		.sleb128 -976
- 13540 2454 31       		.uleb128 0x31
- 13541 2455 0D0E0000 		.long	0xe0d
- 13542 2459 03       		.byte	0x3
- 13543 245a 91       		.byte	0x91
- 13544 245b C078     		.sleb128 -960
- 13545 245d 34       		.uleb128 0x34
- 13546 245e 260E0000 		.long	0xe26
- 13547 2462 00000000 		.quad	.LBB496
- 13547      00000000 
- 13548 246a 00000000 		.quad	.LBE496
- 13548      00000000 
- 13549 2472 03       		.byte	0x3
- 13550 2473 7501     		.value	0x175
- 13551 2475 31       		.uleb128 0x31
- 13552 2476 440E0000 		.long	0xe44
- 13553 247a 03       		.byte	0x3
- 13554 247b 91       		.byte	0x91
- 13555 247c D078     		.sleb128 -944
- 13556 247e 31       		.uleb128 0x31
- 13557 247f 380E0000 		.long	0xe38
- 13558 2483 03       		.byte	0x3
- 13559 2484 91       		.byte	0x91
- 13560 2485 E078     		.sleb128 -928
- 13561 2487 00       		.byte	0x0
- 13562 2488 00       		.byte	0x0
- 13563 2489 00       		.byte	0x0
- 13564 248a 00       		.byte	0x0
- 13565 248b 30       		.uleb128 0x30
- 13566 248c BA0D0000 		.long	0xdba
- 13567 2490 00000000 		.quad	.LBB498
- 13567      00000000 
- 13568 2498 00000000 		.quad	.LBE498
- 13568      00000000 
- 13569 24a0 03       		.byte	0x3
- 13570 24a1 2006     		.value	0x620
- 13571 24a3 28250000 		.long	0x2528
- 13572 24a7 31       		.uleb128 0x31
- 13573 24a8 CC0D0000 		.long	0xdcc
- 13574 24ac 03       		.byte	0x3
- 13575 24ad 91       		.byte	0x91
- 13576 24ae F078     		.sleb128 -912
- 13577 24b0 32       		.uleb128 0x32
- 13578 24b1 00000000 		.quad	.LBB499
- 13578      00000000 
- 13579 24b9 00000000 		.quad	.LBE499
- 13579      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 391
-
-
- 13580 24c1 33       		.uleb128 0x33
- 13581 24c2 D80D0000 		.long	0xdd8
- 13582 24c6 09       		.byte	0x9
- 13583 24c7 03       		.byte	0x3
- 13584 24c8 00000000 		.quad	mask.8002
- 13584      00000000 
- 13585 24d0 34       		.uleb128 0x34
- 13586 24d1 FB0D0000 		.long	0xdfb
- 13587 24d5 00000000 		.quad	.LBB500
- 13587      00000000 
- 13588 24dd 00000000 		.quad	.LBE500
- 13588      00000000 
- 13589 24e5 03       		.byte	0x3
- 13590 24e6 FE04     		.value	0x4fe
- 13591 24e8 31       		.uleb128 0x31
- 13592 24e9 190E0000 		.long	0xe19
- 13593 24ed 03       		.byte	0x3
- 13594 24ee 91       		.byte	0x91
- 13595 24ef 8079     		.sleb128 -896
- 13596 24f1 31       		.uleb128 0x31
- 13597 24f2 0D0E0000 		.long	0xe0d
- 13598 24f6 03       		.byte	0x3
- 13599 24f7 91       		.byte	0x91
- 13600 24f8 9079     		.sleb128 -880
- 13601 24fa 34       		.uleb128 0x34
- 13602 24fb 260E0000 		.long	0xe26
- 13603 24ff 00000000 		.quad	.LBB502
- 13603      00000000 
- 13604 2507 00000000 		.quad	.LBE502
- 13604      00000000 
- 13605 250f 03       		.byte	0x3
- 13606 2510 7501     		.value	0x175
- 13607 2512 31       		.uleb128 0x31
- 13608 2513 440E0000 		.long	0xe44
- 13609 2517 03       		.byte	0x3
- 13610 2518 91       		.byte	0x91
- 13611 2519 A079     		.sleb128 -864
- 13612 251b 31       		.uleb128 0x31
- 13613 251c 380E0000 		.long	0xe38
- 13614 2520 03       		.byte	0x3
- 13615 2521 91       		.byte	0x91
- 13616 2522 B079     		.sleb128 -848
- 13617 2524 00       		.byte	0x0
- 13618 2525 00       		.byte	0x0
- 13619 2526 00       		.byte	0x0
- 13620 2527 00       		.byte	0x0
- 13621 2528 34       		.uleb128 0x34
- 13622 2529 BA0D0000 		.long	0xdba
- 13623 252d 00000000 		.quad	.LBB504
- 13623      00000000 
- 13624 2535 00000000 		.quad	.LBE504
- 13624      00000000 
- 13625 253d 03       		.byte	0x3
- 13626 253e 2106     		.value	0x621
- 13627 2540 31       		.uleb128 0x31
- 13628 2541 CC0D0000 		.long	0xdcc
- 13629 2545 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 392
-
-
- 13630 2546 91       		.byte	0x91
- 13631 2547 C079     		.sleb128 -832
- 13632 2549 32       		.uleb128 0x32
- 13633 254a 00000000 		.quad	.LBB505
- 13633      00000000 
- 13634 2552 00000000 		.quad	.LBE505
- 13634      00000000 
- 13635 255a 33       		.uleb128 0x33
- 13636 255b D80D0000 		.long	0xdd8
- 13637 255f 09       		.byte	0x9
- 13638 2560 03       		.byte	0x3
- 13639 2561 00000000 		.quad	mask.8002
- 13639      00000000 
- 13640 2569 34       		.uleb128 0x34
- 13641 256a FB0D0000 		.long	0xdfb
- 13642 256e 00000000 		.quad	.LBB506
- 13642      00000000 
- 13643 2576 00000000 		.quad	.LBE506
- 13643      00000000 
- 13644 257e 03       		.byte	0x3
- 13645 257f FE04     		.value	0x4fe
- 13646 2581 31       		.uleb128 0x31
- 13647 2582 190E0000 		.long	0xe19
- 13648 2586 03       		.byte	0x3
- 13649 2587 91       		.byte	0x91
- 13650 2588 D079     		.sleb128 -816
- 13651 258a 31       		.uleb128 0x31
- 13652 258b 0D0E0000 		.long	0xe0d
- 13653 258f 03       		.byte	0x3
- 13654 2590 91       		.byte	0x91
- 13655 2591 E079     		.sleb128 -800
- 13656 2593 34       		.uleb128 0x34
- 13657 2594 260E0000 		.long	0xe26
- 13658 2598 00000000 		.quad	.LBB508
- 13658      00000000 
- 13659 25a0 00000000 		.quad	.LBE508
- 13659      00000000 
- 13660 25a8 03       		.byte	0x3
- 13661 25a9 7501     		.value	0x175
- 13662 25ab 31       		.uleb128 0x31
- 13663 25ac 440E0000 		.long	0xe44
- 13664 25b0 03       		.byte	0x3
- 13665 25b1 91       		.byte	0x91
- 13666 25b2 F079     		.sleb128 -784
- 13667 25b4 31       		.uleb128 0x31
- 13668 25b5 380E0000 		.long	0xe38
- 13669 25b9 03       		.byte	0x3
- 13670 25ba 91       		.byte	0x91
- 13671 25bb 807A     		.sleb128 -768
- 13672 25bd 00       		.byte	0x0
- 13673 25be 00       		.byte	0x0
- 13674 25bf 00       		.byte	0x0
- 13675 25c0 00       		.byte	0x0
- 13676 25c1 00       		.byte	0x0
- 13677 25c2 00       		.byte	0x0
- 13678 25c3 30       		.uleb128 0x30
- 13679 25c4 E30C0000 		.long	0xce3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 393
-
-
- 13680 25c8 00000000 		.quad	.LBB510
- 13680      00000000 
- 13681 25d0 00000000 		.quad	.LBE510
- 13681      00000000 
- 13682 25d8 03       		.byte	0x3
- 13683 25d9 D806     		.value	0x6d8
- 13684 25db 89260000 		.long	0x2689
- 13685 25df 31       		.uleb128 0x31
- 13686 25e0 010D0000 		.long	0xd01
- 13687 25e4 03       		.byte	0x3
- 13688 25e5 91       		.byte	0x91
- 13689 25e6 9C7A     		.sleb128 -740
- 13690 25e8 31       		.uleb128 0x31
- 13691 25e9 F50C0000 		.long	0xcf5
- 13692 25ed 03       		.byte	0x3
- 13693 25ee 91       		.byte	0x91
- 13694 25ef A07A     		.sleb128 -736
- 13695 25f1 32       		.uleb128 0x32
- 13696 25f2 00000000 		.quad	.LBB511
- 13696      00000000 
- 13697 25fa 00000000 		.quad	.LBE511
- 13697      00000000 
- 13698 2602 33       		.uleb128 0x33
- 13699 2603 0D0D0000 		.long	0xd0d
- 13700 2607 03       		.byte	0x3
- 13701 2608 76       		.byte	0x76
- 13702 2609 B062     		.sleb128 -3792
- 13703 260b 30       		.uleb128 0x30
- 13704 260c 1A0D0000 		.long	0xd1a
- 13705 2610 00000000 		.quad	.LBB512
- 13705      00000000 
- 13706 2618 00000000 		.quad	.LBE512
- 13706      00000000 
- 13707 2620 03       		.byte	0x3
- 13708 2621 8A06     		.value	0x68a
- 13709 2623 3A260000 		.long	0x263a
- 13710 2627 31       		.uleb128 0x31
- 13711 2628 380D0000 		.long	0xd38
- 13712 262c 03       		.byte	0x3
- 13713 262d 91       		.byte	0x91
- 13714 262e BC7A     		.sleb128 -708
- 13715 2630 31       		.uleb128 0x31
- 13716 2631 2C0D0000 		.long	0xd2c
- 13717 2635 03       		.byte	0x3
- 13718 2636 91       		.byte	0x91
- 13719 2637 C07A     		.sleb128 -704
- 13720 2639 00       		.byte	0x0
- 13721 263a 34       		.uleb128 0x34
- 13722 263b 450D0000 		.long	0xd45
- 13723 263f 00000000 		.quad	.LBB514
- 13723      00000000 
- 13724 2647 00000000 		.quad	.LBE514
- 13724      00000000 
- 13725 264f 03       		.byte	0x3
- 13726 2650 8B06     		.value	0x68b
- 13727 2652 31       		.uleb128 0x31
- 13728 2653 570D0000 		.long	0xd57
-
GAS LISTING /tmp/ccPaCTqg.s 			page 394
-
-
- 13729 2657 03       		.byte	0x3
- 13730 2658 91       		.byte	0x91
- 13731 2659 D07A     		.sleb128 -688
- 13732 265b 34       		.uleb128 0x34
- 13733 265c 640D0000 		.long	0xd64
- 13734 2660 00000000 		.quad	.LBB516
- 13734      00000000 
- 13735 2668 00000000 		.quad	.LBE516
- 13735      00000000 
- 13736 2670 03       		.byte	0x3
- 13737 2671 4905     		.value	0x549
- 13738 2673 31       		.uleb128 0x31
- 13739 2674 820D0000 		.long	0xd82
- 13740 2678 03       		.byte	0x3
- 13741 2679 91       		.byte	0x91
- 13742 267a EC7A     		.sleb128 -660
- 13743 267c 31       		.uleb128 0x31
- 13744 267d 760D0000 		.long	0xd76
- 13745 2681 03       		.byte	0x3
- 13746 2682 91       		.byte	0x91
- 13747 2683 F07A     		.sleb128 -656
- 13748 2685 00       		.byte	0x0
- 13749 2686 00       		.byte	0x0
- 13750 2687 00       		.byte	0x0
- 13751 2688 00       		.byte	0x0
- 13752 2689 30       		.uleb128 0x30
- 13753 268a 8F0D0000 		.long	0xd8f
- 13754 268e 00000000 		.quad	.LBB518
- 13754      00000000 
- 13755 2696 00000000 		.quad	.LBE518
- 13755      00000000 
- 13756 269e 03       		.byte	0x3
- 13757 269f D806     		.value	0x6d8
- 13758 26a1 9D280000 		.long	0x289d
- 13759 26a5 31       		.uleb128 0x31
- 13760 26a6 A10D0000 		.long	0xda1
- 13761 26aa 03       		.byte	0x3
- 13762 26ab 91       		.byte	0x91
- 13763 26ac 807B     		.sleb128 -640
- 13764 26ae 32       		.uleb128 0x32
- 13765 26af 00000000 		.quad	.LBB519
- 13765      00000000 
- 13766 26b7 00000000 		.quad	.LBE519
- 13766      00000000 
- 13767 26bf 33       		.uleb128 0x33
- 13768 26c0 AD0D0000 		.long	0xdad
- 13769 26c4 03       		.byte	0x3
- 13770 26c5 76       		.byte	0x76
- 13771 26c6 C062     		.sleb128 -3776
- 13772 26c8 30       		.uleb128 0x30
- 13773 26c9 BA0D0000 		.long	0xdba
- 13774 26cd 00000000 		.quad	.LBB520
- 13774      00000000 
- 13775 26d5 00000000 		.quad	.LBE520
- 13775      00000000 
- 13776 26dd 03       		.byte	0x3
- 13777 26de 1F06     		.value	0x61f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 395
-
-
- 13778 26e0 65270000 		.long	0x2765
- 13779 26e4 31       		.uleb128 0x31
- 13780 26e5 CC0D0000 		.long	0xdcc
- 13781 26e9 03       		.byte	0x3
- 13782 26ea 91       		.byte	0x91
- 13783 26eb 907B     		.sleb128 -624
- 13784 26ed 32       		.uleb128 0x32
- 13785 26ee 00000000 		.quad	.LBB521
- 13785      00000000 
- 13786 26f6 00000000 		.quad	.LBE521
- 13786      00000000 
- 13787 26fe 33       		.uleb128 0x33
- 13788 26ff D80D0000 		.long	0xdd8
- 13789 2703 09       		.byte	0x9
- 13790 2704 03       		.byte	0x3
- 13791 2705 00000000 		.quad	mask.8002
- 13791      00000000 
- 13792 270d 34       		.uleb128 0x34
- 13793 270e FB0D0000 		.long	0xdfb
- 13794 2712 00000000 		.quad	.LBB522
- 13794      00000000 
- 13795 271a 00000000 		.quad	.LBE522
- 13795      00000000 
- 13796 2722 03       		.byte	0x3
- 13797 2723 FE04     		.value	0x4fe
- 13798 2725 31       		.uleb128 0x31
- 13799 2726 190E0000 		.long	0xe19
- 13800 272a 03       		.byte	0x3
- 13801 272b 91       		.byte	0x91
- 13802 272c A07B     		.sleb128 -608
- 13803 272e 31       		.uleb128 0x31
- 13804 272f 0D0E0000 		.long	0xe0d
- 13805 2733 03       		.byte	0x3
- 13806 2734 91       		.byte	0x91
- 13807 2735 B07B     		.sleb128 -592
- 13808 2737 34       		.uleb128 0x34
- 13809 2738 260E0000 		.long	0xe26
- 13810 273c 00000000 		.quad	.LBB524
- 13810      00000000 
- 13811 2744 00000000 		.quad	.LBE524
- 13811      00000000 
- 13812 274c 03       		.byte	0x3
- 13813 274d 7501     		.value	0x175
- 13814 274f 31       		.uleb128 0x31
- 13815 2750 440E0000 		.long	0xe44
- 13816 2754 03       		.byte	0x3
- 13817 2755 91       		.byte	0x91
- 13818 2756 C07B     		.sleb128 -576
- 13819 2758 31       		.uleb128 0x31
- 13820 2759 380E0000 		.long	0xe38
- 13821 275d 03       		.byte	0x3
- 13822 275e 91       		.byte	0x91
- 13823 275f D07B     		.sleb128 -560
- 13824 2761 00       		.byte	0x0
- 13825 2762 00       		.byte	0x0
- 13826 2763 00       		.byte	0x0
- 13827 2764 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 396
-
-
- 13828 2765 30       		.uleb128 0x30
- 13829 2766 BA0D0000 		.long	0xdba
- 13830 276a 00000000 		.quad	.LBB526
- 13830      00000000 
- 13831 2772 00000000 		.quad	.LBE526
- 13831      00000000 
- 13832 277a 03       		.byte	0x3
- 13833 277b 2006     		.value	0x620
- 13834 277d 02280000 		.long	0x2802
- 13835 2781 31       		.uleb128 0x31
- 13836 2782 CC0D0000 		.long	0xdcc
- 13837 2786 03       		.byte	0x3
- 13838 2787 91       		.byte	0x91
- 13839 2788 E07B     		.sleb128 -544
- 13840 278a 32       		.uleb128 0x32
- 13841 278b 00000000 		.quad	.LBB527
- 13841      00000000 
- 13842 2793 00000000 		.quad	.LBE527
- 13842      00000000 
- 13843 279b 33       		.uleb128 0x33
- 13844 279c D80D0000 		.long	0xdd8
- 13845 27a0 09       		.byte	0x9
- 13846 27a1 03       		.byte	0x3
- 13847 27a2 00000000 		.quad	mask.8002
- 13847      00000000 
- 13848 27aa 34       		.uleb128 0x34
- 13849 27ab FB0D0000 		.long	0xdfb
- 13850 27af 00000000 		.quad	.LBB528
- 13850      00000000 
- 13851 27b7 00000000 		.quad	.LBE528
- 13851      00000000 
- 13852 27bf 03       		.byte	0x3
- 13853 27c0 FE04     		.value	0x4fe
- 13854 27c2 31       		.uleb128 0x31
- 13855 27c3 190E0000 		.long	0xe19
- 13856 27c7 03       		.byte	0x3
- 13857 27c8 91       		.byte	0x91
- 13858 27c9 F07B     		.sleb128 -528
- 13859 27cb 31       		.uleb128 0x31
- 13860 27cc 0D0E0000 		.long	0xe0d
- 13861 27d0 03       		.byte	0x3
- 13862 27d1 91       		.byte	0x91
- 13863 27d2 807C     		.sleb128 -512
- 13864 27d4 34       		.uleb128 0x34
- 13865 27d5 260E0000 		.long	0xe26
- 13866 27d9 00000000 		.quad	.LBB530
- 13866      00000000 
- 13867 27e1 00000000 		.quad	.LBE530
- 13867      00000000 
- 13868 27e9 03       		.byte	0x3
- 13869 27ea 7501     		.value	0x175
- 13870 27ec 31       		.uleb128 0x31
- 13871 27ed 440E0000 		.long	0xe44
- 13872 27f1 03       		.byte	0x3
- 13873 27f2 91       		.byte	0x91
- 13874 27f3 907C     		.sleb128 -496
- 13875 27f5 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 397
-
-
- 13876 27f6 380E0000 		.long	0xe38
- 13877 27fa 03       		.byte	0x3
- 13878 27fb 91       		.byte	0x91
- 13879 27fc A07C     		.sleb128 -480
- 13880 27fe 00       		.byte	0x0
- 13881 27ff 00       		.byte	0x0
- 13882 2800 00       		.byte	0x0
- 13883 2801 00       		.byte	0x0
- 13884 2802 34       		.uleb128 0x34
- 13885 2803 BA0D0000 		.long	0xdba
- 13886 2807 00000000 		.quad	.LBB532
- 13886      00000000 
- 13887 280f 00000000 		.quad	.LBE532
- 13887      00000000 
- 13888 2817 03       		.byte	0x3
- 13889 2818 2106     		.value	0x621
- 13890 281a 31       		.uleb128 0x31
- 13891 281b CC0D0000 		.long	0xdcc
- 13892 281f 03       		.byte	0x3
- 13893 2820 91       		.byte	0x91
- 13894 2821 B07C     		.sleb128 -464
- 13895 2823 32       		.uleb128 0x32
- 13896 2824 00000000 		.quad	.LBB533
- 13896      00000000 
- 13897 282c 00000000 		.quad	.LBE533
- 13897      00000000 
- 13898 2834 33       		.uleb128 0x33
- 13899 2835 D80D0000 		.long	0xdd8
- 13900 2839 09       		.byte	0x9
- 13901 283a 03       		.byte	0x3
- 13902 283b 00000000 		.quad	mask.8002
- 13902      00000000 
- 13903 2843 34       		.uleb128 0x34
- 13904 2844 FB0D0000 		.long	0xdfb
- 13905 2848 00000000 		.quad	.LBB534
- 13905      00000000 
- 13906 2850 00000000 		.quad	.LBE534
- 13906      00000000 
- 13907 2858 03       		.byte	0x3
- 13908 2859 FE04     		.value	0x4fe
- 13909 285b 31       		.uleb128 0x31
- 13910 285c 190E0000 		.long	0xe19
- 13911 2860 03       		.byte	0x3
- 13912 2861 91       		.byte	0x91
- 13913 2862 C07C     		.sleb128 -448
- 13914 2864 31       		.uleb128 0x31
- 13915 2865 0D0E0000 		.long	0xe0d
- 13916 2869 03       		.byte	0x3
- 13917 286a 91       		.byte	0x91
- 13918 286b D07C     		.sleb128 -432
- 13919 286d 34       		.uleb128 0x34
- 13920 286e 260E0000 		.long	0xe26
- 13921 2872 00000000 		.quad	.LBB536
- 13921      00000000 
- 13922 287a 00000000 		.quad	.LBE536
- 13922      00000000 
- 13923 2882 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 398
-
-
- 13924 2883 7501     		.value	0x175
- 13925 2885 31       		.uleb128 0x31
- 13926 2886 440E0000 		.long	0xe44
- 13927 288a 03       		.byte	0x3
- 13928 288b 91       		.byte	0x91
- 13929 288c E07C     		.sleb128 -416
- 13930 288e 31       		.uleb128 0x31
- 13931 288f 380E0000 		.long	0xe38
- 13932 2893 03       		.byte	0x3
- 13933 2894 91       		.byte	0x91
- 13934 2895 F07C     		.sleb128 -400
- 13935 2897 00       		.byte	0x0
- 13936 2898 00       		.byte	0x0
- 13937 2899 00       		.byte	0x0
- 13938 289a 00       		.byte	0x0
- 13939 289b 00       		.byte	0x0
- 13940 289c 00       		.byte	0x0
- 13941 289d 30       		.uleb128 0x30
- 13942 289e E30C0000 		.long	0xce3
- 13943 28a2 00000000 		.quad	.LBB538
- 13943      00000000 
- 13944 28aa 00000000 		.quad	.LBE538
- 13944      00000000 
- 13945 28b2 03       		.byte	0x3
- 13946 28b3 D906     		.value	0x6d9
- 13947 28b5 63290000 		.long	0x2963
- 13948 28b9 31       		.uleb128 0x31
- 13949 28ba 010D0000 		.long	0xd01
- 13950 28be 03       		.byte	0x3
- 13951 28bf 91       		.byte	0x91
- 13952 28c0 8C7D     		.sleb128 -372
- 13953 28c2 31       		.uleb128 0x31
- 13954 28c3 F50C0000 		.long	0xcf5
- 13955 28c7 03       		.byte	0x3
- 13956 28c8 91       		.byte	0x91
- 13957 28c9 907D     		.sleb128 -368
- 13958 28cb 32       		.uleb128 0x32
- 13959 28cc 00000000 		.quad	.LBB539
- 13959      00000000 
- 13960 28d4 00000000 		.quad	.LBE539
- 13960      00000000 
- 13961 28dc 33       		.uleb128 0x33
- 13962 28dd 0D0D0000 		.long	0xd0d
- 13963 28e1 03       		.byte	0x3
- 13964 28e2 76       		.byte	0x76
- 13965 28e3 D062     		.sleb128 -3760
- 13966 28e5 30       		.uleb128 0x30
- 13967 28e6 1A0D0000 		.long	0xd1a
- 13968 28ea 00000000 		.quad	.LBB540
- 13968      00000000 
- 13969 28f2 00000000 		.quad	.LBE540
- 13969      00000000 
- 13970 28fa 03       		.byte	0x3
- 13971 28fb 8A06     		.value	0x68a
- 13972 28fd 14290000 		.long	0x2914
- 13973 2901 31       		.uleb128 0x31
- 13974 2902 380D0000 		.long	0xd38
-
GAS LISTING /tmp/ccPaCTqg.s 			page 399
-
-
- 13975 2906 03       		.byte	0x3
- 13976 2907 91       		.byte	0x91
- 13977 2908 AC7D     		.sleb128 -340
- 13978 290a 31       		.uleb128 0x31
- 13979 290b 2C0D0000 		.long	0xd2c
- 13980 290f 03       		.byte	0x3
- 13981 2910 91       		.byte	0x91
- 13982 2911 B07D     		.sleb128 -336
- 13983 2913 00       		.byte	0x0
- 13984 2914 34       		.uleb128 0x34
- 13985 2915 450D0000 		.long	0xd45
- 13986 2919 00000000 		.quad	.LBB542
- 13986      00000000 
- 13987 2921 00000000 		.quad	.LBE542
- 13987      00000000 
- 13988 2929 03       		.byte	0x3
- 13989 292a 8B06     		.value	0x68b
- 13990 292c 31       		.uleb128 0x31
- 13991 292d 570D0000 		.long	0xd57
- 13992 2931 03       		.byte	0x3
- 13993 2932 91       		.byte	0x91
- 13994 2933 C07D     		.sleb128 -320
- 13995 2935 34       		.uleb128 0x34
- 13996 2936 640D0000 		.long	0xd64
- 13997 293a 00000000 		.quad	.LBB544
- 13997      00000000 
- 13998 2942 00000000 		.quad	.LBE544
- 13998      00000000 
- 13999 294a 03       		.byte	0x3
- 14000 294b 4905     		.value	0x549
- 14001 294d 31       		.uleb128 0x31
- 14002 294e 820D0000 		.long	0xd82
- 14003 2952 03       		.byte	0x3
- 14004 2953 91       		.byte	0x91
- 14005 2954 DC7D     		.sleb128 -292
- 14006 2956 31       		.uleb128 0x31
- 14007 2957 760D0000 		.long	0xd76
- 14008 295b 03       		.byte	0x3
- 14009 295c 91       		.byte	0x91
- 14010 295d E07D     		.sleb128 -288
- 14011 295f 00       		.byte	0x0
- 14012 2960 00       		.byte	0x0
- 14013 2961 00       		.byte	0x0
- 14014 2962 00       		.byte	0x0
- 14015 2963 34       		.uleb128 0x34
- 14016 2964 8F0D0000 		.long	0xd8f
- 14017 2968 00000000 		.quad	.LBB546
- 14017      00000000 
- 14018 2970 00000000 		.quad	.LBE546
- 14018      00000000 
- 14019 2978 03       		.byte	0x3
- 14020 2979 D906     		.value	0x6d9
- 14021 297b 31       		.uleb128 0x31
- 14022 297c A10D0000 		.long	0xda1
- 14023 2980 03       		.byte	0x3
- 14024 2981 91       		.byte	0x91
- 14025 2982 F07D     		.sleb128 -272
-
GAS LISTING /tmp/ccPaCTqg.s 			page 400
-
-
- 14026 2984 32       		.uleb128 0x32
- 14027 2985 00000000 		.quad	.LBB547
- 14027      00000000 
- 14028 298d 00000000 		.quad	.LBE547
- 14028      00000000 
- 14029 2995 33       		.uleb128 0x33
- 14030 2996 AD0D0000 		.long	0xdad
- 14031 299a 03       		.byte	0x3
- 14032 299b 76       		.byte	0x76
- 14033 299c E062     		.sleb128 -3744
- 14034 299e 30       		.uleb128 0x30
- 14035 299f BA0D0000 		.long	0xdba
- 14036 29a3 00000000 		.quad	.LBB548
- 14036      00000000 
- 14037 29ab 00000000 		.quad	.LBE548
- 14037      00000000 
- 14038 29b3 03       		.byte	0x3
- 14039 29b4 1F06     		.value	0x61f
- 14040 29b6 3B2A0000 		.long	0x2a3b
- 14041 29ba 31       		.uleb128 0x31
- 14042 29bb CC0D0000 		.long	0xdcc
- 14043 29bf 03       		.byte	0x3
- 14044 29c0 91       		.byte	0x91
- 14045 29c1 807E     		.sleb128 -256
- 14046 29c3 32       		.uleb128 0x32
- 14047 29c4 00000000 		.quad	.LBB549
- 14047      00000000 
- 14048 29cc 00000000 		.quad	.LBE549
- 14048      00000000 
- 14049 29d4 33       		.uleb128 0x33
- 14050 29d5 D80D0000 		.long	0xdd8
- 14051 29d9 09       		.byte	0x9
- 14052 29da 03       		.byte	0x3
- 14053 29db 00000000 		.quad	mask.8002
- 14053      00000000 
- 14054 29e3 34       		.uleb128 0x34
- 14055 29e4 FB0D0000 		.long	0xdfb
- 14056 29e8 00000000 		.quad	.LBB550
- 14056      00000000 
- 14057 29f0 00000000 		.quad	.LBE550
- 14057      00000000 
- 14058 29f8 03       		.byte	0x3
- 14059 29f9 FE04     		.value	0x4fe
- 14060 29fb 31       		.uleb128 0x31
- 14061 29fc 190E0000 		.long	0xe19
- 14062 2a00 03       		.byte	0x3
- 14063 2a01 91       		.byte	0x91
- 14064 2a02 907E     		.sleb128 -240
- 14065 2a04 31       		.uleb128 0x31
- 14066 2a05 0D0E0000 		.long	0xe0d
- 14067 2a09 03       		.byte	0x3
- 14068 2a0a 91       		.byte	0x91
- 14069 2a0b A07E     		.sleb128 -224
- 14070 2a0d 34       		.uleb128 0x34
- 14071 2a0e 260E0000 		.long	0xe26
- 14072 2a12 00000000 		.quad	.LBB552
- 14072      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 401
-
-
- 14073 2a1a 00000000 		.quad	.LBE552
- 14073      00000000 
- 14074 2a22 03       		.byte	0x3
- 14075 2a23 7501     		.value	0x175
- 14076 2a25 31       		.uleb128 0x31
- 14077 2a26 440E0000 		.long	0xe44
- 14078 2a2a 03       		.byte	0x3
- 14079 2a2b 91       		.byte	0x91
- 14080 2a2c B07E     		.sleb128 -208
- 14081 2a2e 31       		.uleb128 0x31
- 14082 2a2f 380E0000 		.long	0xe38
- 14083 2a33 03       		.byte	0x3
- 14084 2a34 91       		.byte	0x91
- 14085 2a35 C07E     		.sleb128 -192
- 14086 2a37 00       		.byte	0x0
- 14087 2a38 00       		.byte	0x0
- 14088 2a39 00       		.byte	0x0
- 14089 2a3a 00       		.byte	0x0
- 14090 2a3b 30       		.uleb128 0x30
- 14091 2a3c BA0D0000 		.long	0xdba
- 14092 2a40 00000000 		.quad	.LBB554
- 14092      00000000 
- 14093 2a48 00000000 		.quad	.LBE554
- 14093      00000000 
- 14094 2a50 03       		.byte	0x3
- 14095 2a51 2006     		.value	0x620
- 14096 2a53 D82A0000 		.long	0x2ad8
- 14097 2a57 31       		.uleb128 0x31
- 14098 2a58 CC0D0000 		.long	0xdcc
- 14099 2a5c 03       		.byte	0x3
- 14100 2a5d 91       		.byte	0x91
- 14101 2a5e D07E     		.sleb128 -176
- 14102 2a60 32       		.uleb128 0x32
- 14103 2a61 00000000 		.quad	.LBB555
- 14103      00000000 
- 14104 2a69 00000000 		.quad	.LBE555
- 14104      00000000 
- 14105 2a71 33       		.uleb128 0x33
- 14106 2a72 D80D0000 		.long	0xdd8
- 14107 2a76 09       		.byte	0x9
- 14108 2a77 03       		.byte	0x3
- 14109 2a78 00000000 		.quad	mask.8002
- 14109      00000000 
- 14110 2a80 34       		.uleb128 0x34
- 14111 2a81 FB0D0000 		.long	0xdfb
- 14112 2a85 00000000 		.quad	.LBB556
- 14112      00000000 
- 14113 2a8d 00000000 		.quad	.LBE556
- 14113      00000000 
- 14114 2a95 03       		.byte	0x3
- 14115 2a96 FE04     		.value	0x4fe
- 14116 2a98 31       		.uleb128 0x31
- 14117 2a99 190E0000 		.long	0xe19
- 14118 2a9d 03       		.byte	0x3
- 14119 2a9e 91       		.byte	0x91
- 14120 2a9f E07E     		.sleb128 -160
- 14121 2aa1 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 402
-
-
- 14122 2aa2 0D0E0000 		.long	0xe0d
- 14123 2aa6 03       		.byte	0x3
- 14124 2aa7 91       		.byte	0x91
- 14125 2aa8 F07E     		.sleb128 -144
- 14126 2aaa 34       		.uleb128 0x34
- 14127 2aab 260E0000 		.long	0xe26
- 14128 2aaf 00000000 		.quad	.LBB558
- 14128      00000000 
- 14129 2ab7 00000000 		.quad	.LBE558
- 14129      00000000 
- 14130 2abf 03       		.byte	0x3
- 14131 2ac0 7501     		.value	0x175
- 14132 2ac2 31       		.uleb128 0x31
- 14133 2ac3 440E0000 		.long	0xe44
- 14134 2ac7 03       		.byte	0x3
- 14135 2ac8 91       		.byte	0x91
- 14136 2ac9 807F     		.sleb128 -128
- 14137 2acb 31       		.uleb128 0x31
- 14138 2acc 380E0000 		.long	0xe38
- 14139 2ad0 03       		.byte	0x3
- 14140 2ad1 91       		.byte	0x91
- 14141 2ad2 907F     		.sleb128 -112
- 14142 2ad4 00       		.byte	0x0
- 14143 2ad5 00       		.byte	0x0
- 14144 2ad6 00       		.byte	0x0
- 14145 2ad7 00       		.byte	0x0
- 14146 2ad8 34       		.uleb128 0x34
- 14147 2ad9 BA0D0000 		.long	0xdba
- 14148 2add 00000000 		.quad	.LBB560
- 14148      00000000 
- 14149 2ae5 00000000 		.quad	.LBE560
- 14149      00000000 
- 14150 2aed 03       		.byte	0x3
- 14151 2aee 2106     		.value	0x621
- 14152 2af0 31       		.uleb128 0x31
- 14153 2af1 CC0D0000 		.long	0xdcc
- 14154 2af5 03       		.byte	0x3
- 14155 2af6 91       		.byte	0x91
- 14156 2af7 A07F     		.sleb128 -96
- 14157 2af9 32       		.uleb128 0x32
- 14158 2afa 00000000 		.quad	.LBB561
- 14158      00000000 
- 14159 2b02 00000000 		.quad	.LBE561
- 14159      00000000 
- 14160 2b0a 33       		.uleb128 0x33
- 14161 2b0b D80D0000 		.long	0xdd8
- 14162 2b0f 09       		.byte	0x9
- 14163 2b10 03       		.byte	0x3
- 14164 2b11 00000000 		.quad	mask.8002
- 14164      00000000 
- 14165 2b19 34       		.uleb128 0x34
- 14166 2b1a FB0D0000 		.long	0xdfb
- 14167 2b1e 00000000 		.quad	.LBB562
- 14167      00000000 
- 14168 2b26 00000000 		.quad	.LBE562
- 14168      00000000 
- 14169 2b2e 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 403
-
-
- 14170 2b2f FE04     		.value	0x4fe
- 14171 2b31 31       		.uleb128 0x31
- 14172 2b32 190E0000 		.long	0xe19
- 14173 2b36 03       		.byte	0x3
- 14174 2b37 91       		.byte	0x91
- 14175 2b38 B07F     		.sleb128 -80
- 14176 2b3a 31       		.uleb128 0x31
- 14177 2b3b 0D0E0000 		.long	0xe0d
- 14178 2b3f 02       		.byte	0x2
- 14179 2b40 91       		.byte	0x91
- 14180 2b41 40       		.sleb128 -64
- 14181 2b42 34       		.uleb128 0x34
- 14182 2b43 260E0000 		.long	0xe26
- 14183 2b47 00000000 		.quad	.LBB564
- 14183      00000000 
- 14184 2b4f 00000000 		.quad	.LBE564
- 14184      00000000 
- 14185 2b57 03       		.byte	0x3
- 14186 2b58 7501     		.value	0x175
- 14187 2b5a 31       		.uleb128 0x31
- 14188 2b5b 440E0000 		.long	0xe44
- 14189 2b5f 02       		.byte	0x2
- 14190 2b60 91       		.byte	0x91
- 14191 2b61 50       		.sleb128 -48
- 14192 2b62 31       		.uleb128 0x31
- 14193 2b63 380E0000 		.long	0xe38
- 14194 2b67 02       		.byte	0x2
- 14195 2b68 91       		.byte	0x91
- 14196 2b69 60       		.sleb128 -32
- 14197 2b6a 00       		.byte	0x0
- 14198 2b6b 00       		.byte	0x0
- 14199 2b6c 00       		.byte	0x0
- 14200 2b6d 00       		.byte	0x0
- 14201 2b6e 00       		.byte	0x0
- 14202 2b6f 00       		.byte	0x0
- 14203 2b70 00       		.byte	0x0
- 14204 2b71 07       		.uleb128 0x7
- 14205 2b72 08       		.byte	0x8
- 14206 2b73 C9010000 		.long	0x1c9
- 14207 2b77 07       		.uleb128 0x7
- 14208 2b78 08       		.byte	0x8
- 14209 2b79 7D2B0000 		.long	0x2b7d
- 14210 2b7d 06       		.uleb128 0x6
- 14211 2b7e 14040000 		.long	0x414
- 14212 2b82 27       		.uleb128 0x27
- 14213 2b83 00000000 		.long	.LASF338
- 14214 2b87 03       		.byte	0x3
- 14215 2b88 1105     		.value	0x511
- 14216 2b8a 01       		.byte	0x1
- 14217 2b8b C9010000 		.long	0x1c9
- 14218 2b8f 03       		.byte	0x3
- 14219 2b90 BE2B0000 		.long	0x2bbe
- 14220 2b94 28       		.uleb128 0x28
- 14221 2b95 00000000 		.long	.LASF63
- 14222 2b99 03       		.byte	0x3
- 14223 2b9a 1105     		.value	0x511
- 14224 2b9c C9010000 		.long	0x1c9
-
GAS LISTING /tmp/ccPaCTqg.s 			page 404
-
-
- 14225 2ba0 2C       		.uleb128 0x2c
- 14226 2ba1 00000000 		.long	.LASF329
- 14227 2ba5 03       		.byte	0x3
- 14228 2ba6 1405     		.value	0x514
- 14229 2ba8 F60D0000 		.long	0xdf6
- 14230 2bac 10       		.byte	0x10
- 14231 2bad 08       		.byte	0x8
- 14232 2bae 09       		.byte	0x9
- 14233 2baf 0A       		.byte	0xa
- 14234 2bb0 0B       		.byte	0xb
- 14235 2bb1 0C       		.byte	0xc
- 14236 2bb2 0D       		.byte	0xd
- 14237 2bb3 0E       		.byte	0xe
- 14238 2bb4 0F       		.byte	0xf
- 14239 2bb5 FF       		.byte	0xff
- 14240 2bb6 FF       		.byte	0xff
- 14241 2bb7 FF       		.byte	0xff
- 14242 2bb8 FF       		.byte	0xff
- 14243 2bb9 FF       		.byte	0xff
- 14244 2bba FF       		.byte	0xff
- 14245 2bbb FF       		.byte	0xff
- 14246 2bbc FF       		.byte	0xff
- 14247 2bbd 00       		.byte	0x0
- 14248 2bbe 27       		.uleb128 0x27
- 14249 2bbf 00000000 		.long	.LASF339
- 14250 2bc3 03       		.byte	0x3
- 14251 2bc4 5206     		.value	0x652
- 14252 2bc6 01       		.byte	0x1
- 14253 2bc7 C9010000 		.long	0x1c9
- 14254 2bcb 03       		.byte	0x3
- 14255 2bcc F52B0000 		.long	0x2bf5
- 14256 2bd0 28       		.uleb128 0x28
- 14257 2bd1 00000000 		.long	.LASF63
- 14258 2bd5 03       		.byte	0x3
- 14259 2bd6 5206     		.value	0x652
- 14260 2bd8 C9010000 		.long	0x1c9
- 14261 2bdc 28       		.uleb128 0x28
- 14262 2bdd 00000000 		.long	.LASF325
- 14263 2be1 03       		.byte	0x3
- 14264 2be2 5206     		.value	0x652
- 14265 2be4 B4000000 		.long	0xb4
- 14266 2be8 29       		.uleb128 0x29
- 14267 2be9 746D7000 		.string	"tmp"
- 14268 2bed 03       		.byte	0x3
- 14269 2bee 5506     		.value	0x655
- 14270 2bf0 C9010000 		.long	0x1c9
- 14271 2bf4 00       		.byte	0x0
- 14272 2bf5 27       		.uleb128 0x27
- 14273 2bf6 00000000 		.long	.LASF340
- 14274 2bfa 03       		.byte	0x3
- 14275 2bfb 7E05     		.value	0x57e
- 14276 2bfd 01       		.byte	0x1
- 14277 2bfe C9010000 		.long	0x1c9
- 14278 2c02 03       		.byte	0x3
- 14279 2c03 142C0000 		.long	0x2c14
- 14280 2c07 28       		.uleb128 0x28
- 14281 2c08 00000000 		.long	.LASF63
-
GAS LISTING /tmp/ccPaCTqg.s 			page 405
-
-
- 14282 2c0c 03       		.byte	0x3
- 14283 2c0d 7E05     		.value	0x57e
- 14284 2c0f C9010000 		.long	0x1c9
- 14285 2c13 00       		.byte	0x0
- 14286 2c14 27       		.uleb128 0x27
- 14287 2c15 00000000 		.long	.LASF341
- 14288 2c19 03       		.byte	0x3
- 14289 2c1a B705     		.value	0x5b7
- 14290 2c1c 01       		.byte	0x1
- 14291 2c1d C9010000 		.long	0x1c9
- 14292 2c21 03       		.byte	0x3
- 14293 2c22 3B2C0000 		.long	0x2c3b
- 14294 2c26 2A       		.uleb128 0x2a
- 14295 2c27 7700     		.string	"w"
- 14296 2c29 03       		.byte	0x3
- 14297 2c2a B705     		.value	0x5b7
- 14298 2c2c C9010000 		.long	0x1c9
- 14299 2c30 2A       		.uleb128 0x2a
- 14300 2c31 7800     		.string	"x"
- 14301 2c33 03       		.byte	0x3
- 14302 2c34 B705     		.value	0x5b7
- 14303 2c36 C9010000 		.long	0x1c9
- 14304 2c3a 00       		.byte	0x0
- 14305 2c3b 27       		.uleb128 0x27
- 14306 2c3c 00000000 		.long	.LASF342
- 14307 2c40 01       		.byte	0x1
- 14308 2c41 6C01     		.value	0x16c
- 14309 2c43 01       		.byte	0x1
- 14310 2c44 FD000000 		.long	0xfd
- 14311 2c48 03       		.byte	0x3
- 14312 2c49 722C0000 		.long	0x2c72
- 14313 2c4d 28       		.uleb128 0x28
- 14314 2c4e 00000000 		.long	.LASF343
- 14315 2c52 01       		.byte	0x1
- 14316 2c53 6C01     		.value	0x16c
- 14317 2c55 FD000000 		.long	0xfd
- 14318 2c59 28       		.uleb128 0x28
- 14319 2c5a 00000000 		.long	.LASF344
- 14320 2c5e 01       		.byte	0x1
- 14321 2c5f 6C01     		.value	0x16c
- 14322 2c61 FD000000 		.long	0xfd
- 14323 2c65 28       		.uleb128 0x28
- 14324 2c66 00000000 		.long	.LASF329
- 14325 2c6a 01       		.byte	0x1
- 14326 2c6b 6C01     		.value	0x16c
- 14327 2c6d B4000000 		.long	0xb4
- 14328 2c71 00       		.byte	0x0
- 14329 2c72 27       		.uleb128 0x27
- 14330 2c73 00000000 		.long	.LASF345
- 14331 2c77 03       		.byte	0x3
- 14332 2c78 D705     		.value	0x5d7
- 14333 2c7a 01       		.byte	0x1
- 14334 2c7b C9010000 		.long	0x1c9
- 14335 2c7f 03       		.byte	0x3
- 14336 2c80 992C0000 		.long	0x2c99
- 14337 2c84 2A       		.uleb128 0x2a
- 14338 2c85 7700     		.string	"w"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 406
-
-
- 14339 2c87 03       		.byte	0x3
- 14340 2c88 D705     		.value	0x5d7
- 14341 2c8a C9010000 		.long	0x1c9
- 14342 2c8e 2A       		.uleb128 0x2a
- 14343 2c8f 7800     		.string	"x"
- 14344 2c91 03       		.byte	0x3
- 14345 2c92 D705     		.value	0x5d7
- 14346 2c94 C9010000 		.long	0x1c9
- 14347 2c98 00       		.byte	0x0
- 14348 2c99 2D       		.uleb128 0x2d
- 14349 2c9a 00000000 		.long	.LASF347
- 14350 2c9e 03       		.byte	0x3
- 14351 2c9f E706     		.value	0x6e7
- 14352 2ca1 01       		.byte	0x1
- 14353 2ca2 00000000 		.quad	.LFB657
- 14353      00000000 
- 14354 2caa 00000000 		.quad	.LFE657
- 14354      00000000 
- 14355 2cb2 00000000 		.long	.LLST7
- 14356 2cb6 F7580000 		.long	0x58f7
- 14357 2cba 20       		.uleb128 0x20
- 14358 2cbb 00000000 		.long	.LASF61
- 14359 2cbf 03       		.byte	0x3
- 14360 2cc0 E706     		.value	0x6e7
- 14361 2cc2 712B0000 		.long	0x2b71
- 14362 2cc6 03       		.byte	0x3
- 14363 2cc7 91       		.byte	0x91
- 14364 2cc8 B852     		.sleb128 -5832
- 14365 2cca 2E       		.uleb128 0x2e
- 14366 2ccb 6B657900 		.string	"key"
- 14367 2ccf 03       		.byte	0x3
- 14368 2cd0 E706     		.value	0x6e7
- 14369 2cd2 772B0000 		.long	0x2b77
- 14370 2cd6 03       		.byte	0x3
- 14371 2cd7 91       		.byte	0x91
- 14372 2cd8 B052     		.sleb128 -5840
- 14373 2cda 35       		.uleb128 0x35
- 14374 2cdb 763000   		.string	"v0"
- 14375 2cde 03       		.byte	0x3
- 14376 2cdf EF06     		.value	0x6ef
- 14377 2ce1 C9010000 		.long	0x1c9
- 14378 2ce5 03       		.byte	0x3
- 14379 2ce6 76       		.byte	0x76
- 14380 2ce7 D04E     		.sleb128 -6320
- 14381 2ce9 35       		.uleb128 0x35
- 14382 2cea 763100   		.string	"v1"
- 14383 2ced 03       		.byte	0x3
- 14384 2cee EF06     		.value	0x6ef
- 14385 2cf0 C9010000 		.long	0x1c9
- 14386 2cf4 03       		.byte	0x3
- 14387 2cf5 76       		.byte	0x76
- 14388 2cf6 E04E     		.sleb128 -6304
- 14389 2cf8 35       		.uleb128 0x35
- 14390 2cf9 763200   		.string	"v2"
- 14391 2cfc 03       		.byte	0x3
- 14392 2cfd EF06     		.value	0x6ef
- 14393 2cff C9010000 		.long	0x1c9
-
GAS LISTING /tmp/ccPaCTqg.s 			page 407
-
-
- 14394 2d03 03       		.byte	0x3
- 14395 2d04 76       		.byte	0x76
- 14396 2d05 F04E     		.sleb128 -6288
- 14397 2d07 35       		.uleb128 0x35
- 14398 2d08 763300   		.string	"v3"
- 14399 2d0b 03       		.byte	0x3
- 14400 2d0c EF06     		.value	0x6ef
- 14401 2d0e C9010000 		.long	0x1c9
- 14402 2d12 03       		.byte	0x3
- 14403 2d13 76       		.byte	0x76
- 14404 2d14 804F     		.sleb128 -6272
- 14405 2d16 35       		.uleb128 0x35
- 14406 2d17 763400   		.string	"v4"
- 14407 2d1a 03       		.byte	0x3
- 14408 2d1b EF06     		.value	0x6ef
- 14409 2d1d C9010000 		.long	0x1c9
- 14410 2d21 03       		.byte	0x3
- 14411 2d22 76       		.byte	0x76
- 14412 2d23 904F     		.sleb128 -6256
- 14413 2d25 35       		.uleb128 0x35
- 14414 2d26 6B00     		.string	"k"
- 14415 2d28 03       		.byte	0x3
- 14416 2d29 F006     		.value	0x6f0
- 14417 2d2b C9010000 		.long	0x1c9
- 14418 2d2f 03       		.byte	0x3
- 14419 2d30 76       		.byte	0x76
- 14420 2d31 A04F     		.sleb128 -6240
- 14421 2d33 30       		.uleb128 0x30
- 14422 2d34 BB0C0000 		.long	0xcbb
- 14423 2d38 00000000 		.quad	.LBB1000
- 14423      00000000 
- 14424 2d40 00000000 		.quad	.LBE1000
- 14424      00000000 
- 14425 2d48 03       		.byte	0x3
- 14426 2d49 F306     		.value	0x6f3
- 14427 2d4b 742D0000 		.long	0x2d74
- 14428 2d4f 31       		.uleb128 0x31
- 14429 2d50 CC0C0000 		.long	0xccc
- 14430 2d54 03       		.byte	0x3
- 14431 2d55 91       		.byte	0x91
- 14432 2d56 C052     		.sleb128 -5824
- 14433 2d58 32       		.uleb128 0x32
- 14434 2d59 00000000 		.quad	.LBB1001
- 14434      00000000 
- 14435 2d61 00000000 		.quad	.LBE1001
- 14435      00000000 
- 14436 2d69 33       		.uleb128 0x33
- 14437 2d6a D70C0000 		.long	0xcd7
- 14438 2d6e 03       		.byte	0x3
- 14439 2d6f 76       		.byte	0x76
- 14440 2d70 B04F     		.sleb128 -6224
- 14441 2d72 00       		.byte	0x0
- 14442 2d73 00       		.byte	0x0
- 14443 2d74 30       		.uleb128 0x30
- 14444 2d75 BB0C0000 		.long	0xcbb
- 14445 2d79 00000000 		.quad	.LBB1002
- 14445      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 408
-
-
- 14446 2d81 00000000 		.quad	.LBE1002
- 14446      00000000 
- 14447 2d89 03       		.byte	0x3
- 14448 2d8a F406     		.value	0x6f4
- 14449 2d8c B52D0000 		.long	0x2db5
- 14450 2d90 31       		.uleb128 0x31
- 14451 2d91 CC0C0000 		.long	0xccc
- 14452 2d95 03       		.byte	0x3
- 14453 2d96 91       		.byte	0x91
- 14454 2d97 C852     		.sleb128 -5816
- 14455 2d99 32       		.uleb128 0x32
- 14456 2d9a 00000000 		.quad	.LBB1003
- 14456      00000000 
- 14457 2da2 00000000 		.quad	.LBE1003
- 14457      00000000 
- 14458 2daa 33       		.uleb128 0x33
- 14459 2dab D70C0000 		.long	0xcd7
- 14460 2daf 03       		.byte	0x3
- 14461 2db0 76       		.byte	0x76
- 14462 2db1 C04F     		.sleb128 -6208
- 14463 2db3 00       		.byte	0x0
- 14464 2db4 00       		.byte	0x0
- 14465 2db5 30       		.uleb128 0x30
- 14466 2db6 822B0000 		.long	0x2b82
- 14467 2dba 00000000 		.quad	.LBB1004
- 14467      00000000 
- 14468 2dc2 00000000 		.quad	.LBE1004
- 14468      00000000 
- 14469 2dca 03       		.byte	0x3
- 14470 2dcb F506     		.value	0x6f5
- 14471 2dcd 522E0000 		.long	0x2e52
- 14472 2dd1 31       		.uleb128 0x31
- 14473 2dd2 942B0000 		.long	0x2b94
- 14474 2dd6 03       		.byte	0x3
- 14475 2dd7 91       		.byte	0x91
- 14476 2dd8 D052     		.sleb128 -5808
- 14477 2dda 32       		.uleb128 0x32
- 14478 2ddb 00000000 		.quad	.LBB1005
- 14478      00000000 
- 14479 2de3 00000000 		.quad	.LBE1005
- 14479      00000000 
- 14480 2deb 33       		.uleb128 0x33
- 14481 2dec A02B0000 		.long	0x2ba0
- 14482 2df0 09       		.byte	0x9
- 14483 2df1 03       		.byte	0x3
- 14484 2df2 00000000 		.quad	mask.8011
- 14484      00000000 
- 14485 2dfa 34       		.uleb128 0x34
- 14486 2dfb FB0D0000 		.long	0xdfb
- 14487 2dff 00000000 		.quad	.LBB1006
- 14487      00000000 
- 14488 2e07 00000000 		.quad	.LBE1006
- 14488      00000000 
- 14489 2e0f 03       		.byte	0x3
- 14490 2e10 1505     		.value	0x515
- 14491 2e12 31       		.uleb128 0x31
- 14492 2e13 190E0000 		.long	0xe19
-
GAS LISTING /tmp/ccPaCTqg.s 			page 409
-
-
- 14493 2e17 03       		.byte	0x3
- 14494 2e18 91       		.byte	0x91
- 14495 2e19 E052     		.sleb128 -5792
- 14496 2e1b 31       		.uleb128 0x31
- 14497 2e1c 0D0E0000 		.long	0xe0d
- 14498 2e20 03       		.byte	0x3
- 14499 2e21 91       		.byte	0x91
- 14500 2e22 F052     		.sleb128 -5776
- 14501 2e24 34       		.uleb128 0x34
- 14502 2e25 260E0000 		.long	0xe26
- 14503 2e29 00000000 		.quad	.LBB1008
- 14503      00000000 
- 14504 2e31 00000000 		.quad	.LBE1008
- 14504      00000000 
- 14505 2e39 03       		.byte	0x3
- 14506 2e3a 7501     		.value	0x175
- 14507 2e3c 31       		.uleb128 0x31
- 14508 2e3d 440E0000 		.long	0xe44
- 14509 2e41 03       		.byte	0x3
- 14510 2e42 91       		.byte	0x91
- 14511 2e43 8053     		.sleb128 -5760
- 14512 2e45 31       		.uleb128 0x31
- 14513 2e46 380E0000 		.long	0xe38
- 14514 2e4a 03       		.byte	0x3
- 14515 2e4b 91       		.byte	0x91
- 14516 2e4c 9053     		.sleb128 -5744
- 14517 2e4e 00       		.byte	0x0
- 14518 2e4f 00       		.byte	0x0
- 14519 2e50 00       		.byte	0x0
- 14520 2e51 00       		.byte	0x0
- 14521 2e52 30       		.uleb128 0x30
- 14522 2e53 BE2B0000 		.long	0x2bbe
- 14523 2e57 00000000 		.quad	.LBB1010
- 14523      00000000 
- 14524 2e5f 00000000 		.quad	.LBE1010
- 14524      00000000 
- 14525 2e67 03       		.byte	0x3
- 14526 2e68 FC06     		.value	0x6fc
- 14527 2e6a 182F0000 		.long	0x2f18
- 14528 2e6e 31       		.uleb128 0x31
- 14529 2e6f DC2B0000 		.long	0x2bdc
- 14530 2e73 03       		.byte	0x3
- 14531 2e74 91       		.byte	0x91
- 14532 2e75 AC53     		.sleb128 -5716
- 14533 2e77 31       		.uleb128 0x31
- 14534 2e78 D02B0000 		.long	0x2bd0
- 14535 2e7c 03       		.byte	0x3
- 14536 2e7d 91       		.byte	0x91
- 14537 2e7e B053     		.sleb128 -5712
- 14538 2e80 32       		.uleb128 0x32
- 14539 2e81 00000000 		.quad	.LBB1011
- 14539      00000000 
- 14540 2e89 00000000 		.quad	.LBE1011
- 14540      00000000 
- 14541 2e91 33       		.uleb128 0x33
- 14542 2e92 E82B0000 		.long	0x2be8
- 14543 2e96 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 410
-
-
- 14544 2e97 76       		.byte	0x76
- 14545 2e98 D04F     		.sleb128 -6192
- 14546 2e9a 30       		.uleb128 0x30
- 14547 2e9b 1A0D0000 		.long	0xd1a
- 14548 2e9f 00000000 		.quad	.LBB1012
- 14548      00000000 
- 14549 2ea7 00000000 		.quad	.LBE1012
- 14549      00000000 
- 14550 2eaf 03       		.byte	0x3
- 14551 2eb0 5606     		.value	0x656
- 14552 2eb2 C92E0000 		.long	0x2ec9
- 14553 2eb6 31       		.uleb128 0x31
- 14554 2eb7 380D0000 		.long	0xd38
- 14555 2ebb 03       		.byte	0x3
- 14556 2ebc 91       		.byte	0x91
- 14557 2ebd CC53     		.sleb128 -5684
- 14558 2ebf 31       		.uleb128 0x31
- 14559 2ec0 2C0D0000 		.long	0xd2c
- 14560 2ec4 03       		.byte	0x3
- 14561 2ec5 91       		.byte	0x91
- 14562 2ec6 D053     		.sleb128 -5680
- 14563 2ec8 00       		.byte	0x0
- 14564 2ec9 34       		.uleb128 0x34
- 14565 2eca F52B0000 		.long	0x2bf5
- 14566 2ece 00000000 		.quad	.LBB1014
- 14566      00000000 
- 14567 2ed6 00000000 		.quad	.LBE1014
- 14567      00000000 
- 14568 2ede 03       		.byte	0x3
- 14569 2edf 5706     		.value	0x657
- 14570 2ee1 31       		.uleb128 0x31
- 14571 2ee2 072C0000 		.long	0x2c07
- 14572 2ee6 03       		.byte	0x3
- 14573 2ee7 91       		.byte	0x91
- 14574 2ee8 E053     		.sleb128 -5664
- 14575 2eea 34       		.uleb128 0x34
- 14576 2eeb 640D0000 		.long	0xd64
- 14577 2eef 00000000 		.quad	.LBB1016
- 14577      00000000 
- 14578 2ef7 00000000 		.quad	.LBE1016
- 14578      00000000 
- 14579 2eff 03       		.byte	0x3
- 14580 2f00 8105     		.value	0x581
- 14581 2f02 31       		.uleb128 0x31
- 14582 2f03 820D0000 		.long	0xd82
- 14583 2f07 03       		.byte	0x3
- 14584 2f08 91       		.byte	0x91
- 14585 2f09 FC53     		.sleb128 -5636
- 14586 2f0b 31       		.uleb128 0x31
- 14587 2f0c 760D0000 		.long	0xd76
- 14588 2f10 03       		.byte	0x3
- 14589 2f11 91       		.byte	0x91
- 14590 2f12 8054     		.sleb128 -5632
- 14591 2f14 00       		.byte	0x0
- 14592 2f15 00       		.byte	0x0
- 14593 2f16 00       		.byte	0x0
- 14594 2f17 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 411
-
-
- 14595 2f18 30       		.uleb128 0x30
- 14596 2f19 8F0D0000 		.long	0xd8f
- 14597 2f1d 00000000 		.quad	.LBB1018
- 14597      00000000 
- 14598 2f25 00000000 		.quad	.LBE1018
- 14598      00000000 
- 14599 2f2d 03       		.byte	0x3
- 14600 2f2e FE06     		.value	0x6fe
- 14601 2f30 2C310000 		.long	0x312c
- 14602 2f34 31       		.uleb128 0x31
- 14603 2f35 A10D0000 		.long	0xda1
- 14604 2f39 03       		.byte	0x3
- 14605 2f3a 91       		.byte	0x91
- 14606 2f3b 9054     		.sleb128 -5616
- 14607 2f3d 32       		.uleb128 0x32
- 14608 2f3e 00000000 		.quad	.LBB1019
- 14608      00000000 
- 14609 2f46 00000000 		.quad	.LBE1019
- 14609      00000000 
- 14610 2f4e 33       		.uleb128 0x33
- 14611 2f4f AD0D0000 		.long	0xdad
- 14612 2f53 03       		.byte	0x3
- 14613 2f54 76       		.byte	0x76
- 14614 2f55 E04F     		.sleb128 -6176
- 14615 2f57 30       		.uleb128 0x30
- 14616 2f58 BA0D0000 		.long	0xdba
- 14617 2f5c 00000000 		.quad	.LBB1020
- 14617      00000000 
- 14618 2f64 00000000 		.quad	.LBE1020
- 14618      00000000 
- 14619 2f6c 03       		.byte	0x3
- 14620 2f6d 1F06     		.value	0x61f
- 14621 2f6f F42F0000 		.long	0x2ff4
- 14622 2f73 31       		.uleb128 0x31
- 14623 2f74 CC0D0000 		.long	0xdcc
- 14624 2f78 03       		.byte	0x3
- 14625 2f79 91       		.byte	0x91
- 14626 2f7a A054     		.sleb128 -5600
- 14627 2f7c 32       		.uleb128 0x32
- 14628 2f7d 00000000 		.quad	.LBB1021
- 14628      00000000 
- 14629 2f85 00000000 		.quad	.LBE1021
- 14629      00000000 
- 14630 2f8d 33       		.uleb128 0x33
- 14631 2f8e D80D0000 		.long	0xdd8
- 14632 2f92 09       		.byte	0x9
- 14633 2f93 03       		.byte	0x3
- 14634 2f94 00000000 		.quad	mask.8002
- 14634      00000000 
- 14635 2f9c 34       		.uleb128 0x34
- 14636 2f9d FB0D0000 		.long	0xdfb
- 14637 2fa1 00000000 		.quad	.LBB1022
- 14637      00000000 
- 14638 2fa9 00000000 		.quad	.LBE1022
- 14638      00000000 
- 14639 2fb1 03       		.byte	0x3
- 14640 2fb2 FE04     		.value	0x4fe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 412
-
-
- 14641 2fb4 31       		.uleb128 0x31
- 14642 2fb5 190E0000 		.long	0xe19
- 14643 2fb9 03       		.byte	0x3
- 14644 2fba 91       		.byte	0x91
- 14645 2fbb B054     		.sleb128 -5584
- 14646 2fbd 31       		.uleb128 0x31
- 14647 2fbe 0D0E0000 		.long	0xe0d
- 14648 2fc2 03       		.byte	0x3
- 14649 2fc3 91       		.byte	0x91
- 14650 2fc4 C054     		.sleb128 -5568
- 14651 2fc6 34       		.uleb128 0x34
- 14652 2fc7 260E0000 		.long	0xe26
- 14653 2fcb 00000000 		.quad	.LBB1024
- 14653      00000000 
- 14654 2fd3 00000000 		.quad	.LBE1024
- 14654      00000000 
- 14655 2fdb 03       		.byte	0x3
- 14656 2fdc 7501     		.value	0x175
- 14657 2fde 31       		.uleb128 0x31
- 14658 2fdf 440E0000 		.long	0xe44
- 14659 2fe3 03       		.byte	0x3
- 14660 2fe4 91       		.byte	0x91
- 14661 2fe5 D054     		.sleb128 -5552
- 14662 2fe7 31       		.uleb128 0x31
- 14663 2fe8 380E0000 		.long	0xe38
- 14664 2fec 03       		.byte	0x3
- 14665 2fed 91       		.byte	0x91
- 14666 2fee E054     		.sleb128 -5536
- 14667 2ff0 00       		.byte	0x0
- 14668 2ff1 00       		.byte	0x0
- 14669 2ff2 00       		.byte	0x0
- 14670 2ff3 00       		.byte	0x0
- 14671 2ff4 30       		.uleb128 0x30
- 14672 2ff5 BA0D0000 		.long	0xdba
- 14673 2ff9 00000000 		.quad	.LBB1026
- 14673      00000000 
- 14674 3001 00000000 		.quad	.LBE1026
- 14674      00000000 
- 14675 3009 03       		.byte	0x3
- 14676 300a 2006     		.value	0x620
- 14677 300c 91300000 		.long	0x3091
- 14678 3010 31       		.uleb128 0x31
- 14679 3011 CC0D0000 		.long	0xdcc
- 14680 3015 03       		.byte	0x3
- 14681 3016 91       		.byte	0x91
- 14682 3017 F054     		.sleb128 -5520
- 14683 3019 32       		.uleb128 0x32
- 14684 301a 00000000 		.quad	.LBB1027
- 14684      00000000 
- 14685 3022 00000000 		.quad	.LBE1027
- 14685      00000000 
- 14686 302a 33       		.uleb128 0x33
- 14687 302b D80D0000 		.long	0xdd8
- 14688 302f 09       		.byte	0x9
- 14689 3030 03       		.byte	0x3
- 14690 3031 00000000 		.quad	mask.8002
- 14690      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 413
-
-
- 14691 3039 34       		.uleb128 0x34
- 14692 303a FB0D0000 		.long	0xdfb
- 14693 303e 00000000 		.quad	.LBB1028
- 14693      00000000 
- 14694 3046 00000000 		.quad	.LBE1028
- 14694      00000000 
- 14695 304e 03       		.byte	0x3
- 14696 304f FE04     		.value	0x4fe
- 14697 3051 31       		.uleb128 0x31
- 14698 3052 190E0000 		.long	0xe19
- 14699 3056 03       		.byte	0x3
- 14700 3057 91       		.byte	0x91
- 14701 3058 8055     		.sleb128 -5504
- 14702 305a 31       		.uleb128 0x31
- 14703 305b 0D0E0000 		.long	0xe0d
- 14704 305f 03       		.byte	0x3
- 14705 3060 91       		.byte	0x91
- 14706 3061 9055     		.sleb128 -5488
- 14707 3063 34       		.uleb128 0x34
- 14708 3064 260E0000 		.long	0xe26
- 14709 3068 00000000 		.quad	.LBB1030
- 14709      00000000 
- 14710 3070 00000000 		.quad	.LBE1030
- 14710      00000000 
- 14711 3078 03       		.byte	0x3
- 14712 3079 7501     		.value	0x175
- 14713 307b 31       		.uleb128 0x31
- 14714 307c 440E0000 		.long	0xe44
- 14715 3080 03       		.byte	0x3
- 14716 3081 91       		.byte	0x91
- 14717 3082 A055     		.sleb128 -5472
- 14718 3084 31       		.uleb128 0x31
- 14719 3085 380E0000 		.long	0xe38
- 14720 3089 03       		.byte	0x3
- 14721 308a 91       		.byte	0x91
- 14722 308b B055     		.sleb128 -5456
- 14723 308d 00       		.byte	0x0
- 14724 308e 00       		.byte	0x0
- 14725 308f 00       		.byte	0x0
- 14726 3090 00       		.byte	0x0
- 14727 3091 34       		.uleb128 0x34
- 14728 3092 BA0D0000 		.long	0xdba
- 14729 3096 00000000 		.quad	.LBB1032
- 14729      00000000 
- 14730 309e 00000000 		.quad	.LBE1032
- 14730      00000000 
- 14731 30a6 03       		.byte	0x3
- 14732 30a7 2106     		.value	0x621
- 14733 30a9 31       		.uleb128 0x31
- 14734 30aa CC0D0000 		.long	0xdcc
- 14735 30ae 03       		.byte	0x3
- 14736 30af 91       		.byte	0x91
- 14737 30b0 C055     		.sleb128 -5440
- 14738 30b2 32       		.uleb128 0x32
- 14739 30b3 00000000 		.quad	.LBB1033
- 14739      00000000 
- 14740 30bb 00000000 		.quad	.LBE1033
-
GAS LISTING /tmp/ccPaCTqg.s 			page 414
-
-
- 14740      00000000 
- 14741 30c3 33       		.uleb128 0x33
- 14742 30c4 D80D0000 		.long	0xdd8
- 14743 30c8 09       		.byte	0x9
- 14744 30c9 03       		.byte	0x3
- 14745 30ca 00000000 		.quad	mask.8002
- 14745      00000000 
- 14746 30d2 34       		.uleb128 0x34
- 14747 30d3 FB0D0000 		.long	0xdfb
- 14748 30d7 00000000 		.quad	.LBB1034
- 14748      00000000 
- 14749 30df 00000000 		.quad	.LBE1034
- 14749      00000000 
- 14750 30e7 03       		.byte	0x3
- 14751 30e8 FE04     		.value	0x4fe
- 14752 30ea 31       		.uleb128 0x31
- 14753 30eb 190E0000 		.long	0xe19
- 14754 30ef 03       		.byte	0x3
- 14755 30f0 91       		.byte	0x91
- 14756 30f1 D055     		.sleb128 -5424
- 14757 30f3 31       		.uleb128 0x31
- 14758 30f4 0D0E0000 		.long	0xe0d
- 14759 30f8 03       		.byte	0x3
- 14760 30f9 91       		.byte	0x91
- 14761 30fa E055     		.sleb128 -5408
- 14762 30fc 34       		.uleb128 0x34
- 14763 30fd 260E0000 		.long	0xe26
- 14764 3101 00000000 		.quad	.LBB1036
- 14764      00000000 
- 14765 3109 00000000 		.quad	.LBE1036
- 14765      00000000 
- 14766 3111 03       		.byte	0x3
- 14767 3112 7501     		.value	0x175
- 14768 3114 31       		.uleb128 0x31
- 14769 3115 440E0000 		.long	0xe44
- 14770 3119 03       		.byte	0x3
- 14771 311a 91       		.byte	0x91
- 14772 311b F055     		.sleb128 -5392
- 14773 311d 31       		.uleb128 0x31
- 14774 311e 380E0000 		.long	0xe38
- 14775 3122 03       		.byte	0x3
- 14776 3123 91       		.byte	0x91
- 14777 3124 8056     		.sleb128 -5376
- 14778 3126 00       		.byte	0x0
- 14779 3127 00       		.byte	0x0
- 14780 3128 00       		.byte	0x0
- 14781 3129 00       		.byte	0x0
- 14782 312a 00       		.byte	0x0
- 14783 312b 00       		.byte	0x0
- 14784 312c 30       		.uleb128 0x30
- 14785 312d 8F0D0000 		.long	0xd8f
- 14786 3131 00000000 		.quad	.LBB1038
- 14786      00000000 
- 14787 3139 00000000 		.quad	.LBE1038
- 14787      00000000 
- 14788 3141 03       		.byte	0x3
- 14789 3142 0007     		.value	0x700
-
GAS LISTING /tmp/ccPaCTqg.s 			page 415
-
-
- 14790 3144 40330000 		.long	0x3340
- 14791 3148 31       		.uleb128 0x31
- 14792 3149 A10D0000 		.long	0xda1
- 14793 314d 03       		.byte	0x3
- 14794 314e 91       		.byte	0x91
- 14795 314f 9056     		.sleb128 -5360
- 14796 3151 32       		.uleb128 0x32
- 14797 3152 00000000 		.quad	.LBB1039
- 14797      00000000 
- 14798 315a 00000000 		.quad	.LBE1039
- 14798      00000000 
- 14799 3162 33       		.uleb128 0x33
- 14800 3163 AD0D0000 		.long	0xdad
- 14801 3167 03       		.byte	0x3
- 14802 3168 76       		.byte	0x76
- 14803 3169 F04F     		.sleb128 -6160
- 14804 316b 30       		.uleb128 0x30
- 14805 316c BA0D0000 		.long	0xdba
- 14806 3170 00000000 		.quad	.LBB1040
- 14806      00000000 
- 14807 3178 00000000 		.quad	.LBE1040
- 14807      00000000 
- 14808 3180 03       		.byte	0x3
- 14809 3181 1F06     		.value	0x61f
- 14810 3183 08320000 		.long	0x3208
- 14811 3187 31       		.uleb128 0x31
- 14812 3188 CC0D0000 		.long	0xdcc
- 14813 318c 03       		.byte	0x3
- 14814 318d 91       		.byte	0x91
- 14815 318e A056     		.sleb128 -5344
- 14816 3190 32       		.uleb128 0x32
- 14817 3191 00000000 		.quad	.LBB1041
- 14817      00000000 
- 14818 3199 00000000 		.quad	.LBE1041
- 14818      00000000 
- 14819 31a1 33       		.uleb128 0x33
- 14820 31a2 D80D0000 		.long	0xdd8
- 14821 31a6 09       		.byte	0x9
- 14822 31a7 03       		.byte	0x3
- 14823 31a8 00000000 		.quad	mask.8002
- 14823      00000000 
- 14824 31b0 34       		.uleb128 0x34
- 14825 31b1 FB0D0000 		.long	0xdfb
- 14826 31b5 00000000 		.quad	.LBB1042
- 14826      00000000 
- 14827 31bd 00000000 		.quad	.LBE1042
- 14827      00000000 
- 14828 31c5 03       		.byte	0x3
- 14829 31c6 FE04     		.value	0x4fe
- 14830 31c8 31       		.uleb128 0x31
- 14831 31c9 190E0000 		.long	0xe19
- 14832 31cd 03       		.byte	0x3
- 14833 31ce 91       		.byte	0x91
- 14834 31cf B056     		.sleb128 -5328
- 14835 31d1 31       		.uleb128 0x31
- 14836 31d2 0D0E0000 		.long	0xe0d
- 14837 31d6 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 416
-
-
- 14838 31d7 91       		.byte	0x91
- 14839 31d8 C056     		.sleb128 -5312
- 14840 31da 34       		.uleb128 0x34
- 14841 31db 260E0000 		.long	0xe26
- 14842 31df 00000000 		.quad	.LBB1044
- 14842      00000000 
- 14843 31e7 00000000 		.quad	.LBE1044
- 14843      00000000 
- 14844 31ef 03       		.byte	0x3
- 14845 31f0 7501     		.value	0x175
- 14846 31f2 31       		.uleb128 0x31
- 14847 31f3 440E0000 		.long	0xe44
- 14848 31f7 03       		.byte	0x3
- 14849 31f8 91       		.byte	0x91
- 14850 31f9 D056     		.sleb128 -5296
- 14851 31fb 31       		.uleb128 0x31
- 14852 31fc 380E0000 		.long	0xe38
- 14853 3200 03       		.byte	0x3
- 14854 3201 91       		.byte	0x91
- 14855 3202 E056     		.sleb128 -5280
- 14856 3204 00       		.byte	0x0
- 14857 3205 00       		.byte	0x0
- 14858 3206 00       		.byte	0x0
- 14859 3207 00       		.byte	0x0
- 14860 3208 30       		.uleb128 0x30
- 14861 3209 BA0D0000 		.long	0xdba
- 14862 320d 00000000 		.quad	.LBB1046
- 14862      00000000 
- 14863 3215 00000000 		.quad	.LBE1046
- 14863      00000000 
- 14864 321d 03       		.byte	0x3
- 14865 321e 2006     		.value	0x620
- 14866 3220 A5320000 		.long	0x32a5
- 14867 3224 31       		.uleb128 0x31
- 14868 3225 CC0D0000 		.long	0xdcc
- 14869 3229 03       		.byte	0x3
- 14870 322a 91       		.byte	0x91
- 14871 322b F056     		.sleb128 -5264
- 14872 322d 32       		.uleb128 0x32
- 14873 322e 00000000 		.quad	.LBB1047
- 14873      00000000 
- 14874 3236 00000000 		.quad	.LBE1047
- 14874      00000000 
- 14875 323e 33       		.uleb128 0x33
- 14876 323f D80D0000 		.long	0xdd8
- 14877 3243 09       		.byte	0x9
- 14878 3244 03       		.byte	0x3
- 14879 3245 00000000 		.quad	mask.8002
- 14879      00000000 
- 14880 324d 34       		.uleb128 0x34
- 14881 324e FB0D0000 		.long	0xdfb
- 14882 3252 00000000 		.quad	.LBB1048
- 14882      00000000 
- 14883 325a 00000000 		.quad	.LBE1048
- 14883      00000000 
- 14884 3262 03       		.byte	0x3
- 14885 3263 FE04     		.value	0x4fe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 417
-
-
- 14886 3265 31       		.uleb128 0x31
- 14887 3266 190E0000 		.long	0xe19
- 14888 326a 03       		.byte	0x3
- 14889 326b 91       		.byte	0x91
- 14890 326c 8057     		.sleb128 -5248
- 14891 326e 31       		.uleb128 0x31
- 14892 326f 0D0E0000 		.long	0xe0d
- 14893 3273 03       		.byte	0x3
- 14894 3274 91       		.byte	0x91
- 14895 3275 9057     		.sleb128 -5232
- 14896 3277 34       		.uleb128 0x34
- 14897 3278 260E0000 		.long	0xe26
- 14898 327c 00000000 		.quad	.LBB1050
- 14898      00000000 
- 14899 3284 00000000 		.quad	.LBE1050
- 14899      00000000 
- 14900 328c 03       		.byte	0x3
- 14901 328d 7501     		.value	0x175
- 14902 328f 31       		.uleb128 0x31
- 14903 3290 440E0000 		.long	0xe44
- 14904 3294 03       		.byte	0x3
- 14905 3295 91       		.byte	0x91
- 14906 3296 A057     		.sleb128 -5216
- 14907 3298 31       		.uleb128 0x31
- 14908 3299 380E0000 		.long	0xe38
- 14909 329d 03       		.byte	0x3
- 14910 329e 91       		.byte	0x91
- 14911 329f B057     		.sleb128 -5200
- 14912 32a1 00       		.byte	0x0
- 14913 32a2 00       		.byte	0x0
- 14914 32a3 00       		.byte	0x0
- 14915 32a4 00       		.byte	0x0
- 14916 32a5 34       		.uleb128 0x34
- 14917 32a6 BA0D0000 		.long	0xdba
- 14918 32aa 00000000 		.quad	.LBB1052
- 14918      00000000 
- 14919 32b2 00000000 		.quad	.LBE1052
- 14919      00000000 
- 14920 32ba 03       		.byte	0x3
- 14921 32bb 2106     		.value	0x621
- 14922 32bd 31       		.uleb128 0x31
- 14923 32be CC0D0000 		.long	0xdcc
- 14924 32c2 03       		.byte	0x3
- 14925 32c3 91       		.byte	0x91
- 14926 32c4 C057     		.sleb128 -5184
- 14927 32c6 32       		.uleb128 0x32
- 14928 32c7 00000000 		.quad	.LBB1053
- 14928      00000000 
- 14929 32cf 00000000 		.quad	.LBE1053
- 14929      00000000 
- 14930 32d7 33       		.uleb128 0x33
- 14931 32d8 D80D0000 		.long	0xdd8
- 14932 32dc 09       		.byte	0x9
- 14933 32dd 03       		.byte	0x3
- 14934 32de 00000000 		.quad	mask.8002
- 14934      00000000 
- 14935 32e6 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 418
-
-
- 14936 32e7 FB0D0000 		.long	0xdfb
- 14937 32eb 00000000 		.quad	.LBB1054
- 14937      00000000 
- 14938 32f3 00000000 		.quad	.LBE1054
- 14938      00000000 
- 14939 32fb 03       		.byte	0x3
- 14940 32fc FE04     		.value	0x4fe
- 14941 32fe 31       		.uleb128 0x31
- 14942 32ff 190E0000 		.long	0xe19
- 14943 3303 03       		.byte	0x3
- 14944 3304 91       		.byte	0x91
- 14945 3305 D057     		.sleb128 -5168
- 14946 3307 31       		.uleb128 0x31
- 14947 3308 0D0E0000 		.long	0xe0d
- 14948 330c 03       		.byte	0x3
- 14949 330d 91       		.byte	0x91
- 14950 330e E057     		.sleb128 -5152
- 14951 3310 34       		.uleb128 0x34
- 14952 3311 260E0000 		.long	0xe26
- 14953 3315 00000000 		.quad	.LBB1056
- 14953      00000000 
- 14954 331d 00000000 		.quad	.LBE1056
- 14954      00000000 
- 14955 3325 03       		.byte	0x3
- 14956 3326 7501     		.value	0x175
- 14957 3328 31       		.uleb128 0x31
- 14958 3329 440E0000 		.long	0xe44
- 14959 332d 03       		.byte	0x3
- 14960 332e 91       		.byte	0x91
- 14961 332f F057     		.sleb128 -5136
- 14962 3331 31       		.uleb128 0x31
- 14963 3332 380E0000 		.long	0xe38
- 14964 3336 03       		.byte	0x3
- 14965 3337 91       		.byte	0x91
- 14966 3338 8058     		.sleb128 -5120
- 14967 333a 00       		.byte	0x0
- 14968 333b 00       		.byte	0x0
- 14969 333c 00       		.byte	0x0
- 14970 333d 00       		.byte	0x0
- 14971 333e 00       		.byte	0x0
- 14972 333f 00       		.byte	0x0
- 14973 3340 30       		.uleb128 0x30
- 14974 3341 450D0000 		.long	0xd45
- 14975 3345 00000000 		.quad	.LBB1058
- 14975      00000000 
- 14976 334d 00000000 		.quad	.LBE1058
- 14976      00000000 
- 14977 3355 03       		.byte	0x3
- 14978 3356 0107     		.value	0x701
- 14979 3358 91330000 		.long	0x3391
- 14980 335c 31       		.uleb128 0x31
- 14981 335d 570D0000 		.long	0xd57
- 14982 3361 03       		.byte	0x3
- 14983 3362 91       		.byte	0x91
- 14984 3363 9058     		.sleb128 -5104
- 14985 3365 34       		.uleb128 0x34
- 14986 3366 640D0000 		.long	0xd64
-
GAS LISTING /tmp/ccPaCTqg.s 			page 419
-
-
- 14987 336a 00000000 		.quad	.LBB1060
- 14987      00000000 
- 14988 3372 00000000 		.quad	.LBE1060
- 14988      00000000 
- 14989 337a 03       		.byte	0x3
- 14990 337b 4905     		.value	0x549
- 14991 337d 31       		.uleb128 0x31
- 14992 337e 820D0000 		.long	0xd82
- 14993 3382 03       		.byte	0x3
- 14994 3383 91       		.byte	0x91
- 14995 3384 AC58     		.sleb128 -5076
- 14996 3386 31       		.uleb128 0x31
- 14997 3387 760D0000 		.long	0xd76
- 14998 338b 03       		.byte	0x3
- 14999 338c 91       		.byte	0x91
- 15000 338d B058     		.sleb128 -5072
- 15001 338f 00       		.byte	0x0
- 15002 3390 00       		.byte	0x0
- 15003 3391 30       		.uleb128 0x30
- 15004 3392 142C0000 		.long	0x2c14
- 15005 3396 00000000 		.quad	.LBB1062
- 15005      00000000 
- 15006 339e 00000000 		.quad	.LBE1062
- 15006      00000000 
- 15007 33a6 03       		.byte	0x3
- 15008 33a7 0307     		.value	0x703
- 15009 33a9 F4330000 		.long	0x33f4
- 15010 33ad 31       		.uleb128 0x31
- 15011 33ae 302C0000 		.long	0x2c30
- 15012 33b2 03       		.byte	0x3
- 15013 33b3 91       		.byte	0x91
- 15014 33b4 C058     		.sleb128 -5056
- 15015 33b6 31       		.uleb128 0x31
- 15016 33b7 262C0000 		.long	0x2c26
- 15017 33bb 03       		.byte	0x3
- 15018 33bc 91       		.byte	0x91
- 15019 33bd D058     		.sleb128 -5040
- 15020 33bf 34       		.uleb128 0x34
- 15021 33c0 3B2C0000 		.long	0x2c3b
- 15022 33c4 00000000 		.quad	.LBB1064
- 15022      00000000 
- 15023 33cc 00000000 		.quad	.LBE1064
- 15023      00000000 
- 15024 33d4 03       		.byte	0x3
- 15025 33d5 BA05     		.value	0x5ba
- 15026 33d7 31       		.uleb128 0x31
- 15027 33d8 652C0000 		.long	0x2c65
- 15028 33dc 03       		.byte	0x3
- 15029 33dd 91       		.byte	0x91
- 15030 33de EC58     		.sleb128 -5012
- 15031 33e0 31       		.uleb128 0x31
- 15032 33e1 592C0000 		.long	0x2c59
- 15033 33e5 03       		.byte	0x3
- 15034 33e6 91       		.byte	0x91
- 15035 33e7 F058     		.sleb128 -5008
- 15036 33e9 31       		.uleb128 0x31
- 15037 33ea 4D2C0000 		.long	0x2c4d
-
GAS LISTING /tmp/ccPaCTqg.s 			page 420
-
-
- 15038 33ee 03       		.byte	0x3
- 15039 33ef 91       		.byte	0x91
- 15040 33f0 8059     		.sleb128 -4992
- 15041 33f2 00       		.byte	0x0
- 15042 33f3 00       		.byte	0x0
- 15043 33f4 30       		.uleb128 0x30
- 15044 33f5 722C0000 		.long	0x2c72
- 15045 33f9 00000000 		.quad	.LBB1066
- 15045      00000000 
- 15046 3401 00000000 		.quad	.LBE1066
- 15046      00000000 
- 15047 3409 03       		.byte	0x3
- 15048 340a 0607     		.value	0x706
- 15049 340c 57340000 		.long	0x3457
- 15050 3410 31       		.uleb128 0x31
- 15051 3411 8E2C0000 		.long	0x2c8e
- 15052 3415 03       		.byte	0x3
- 15053 3416 91       		.byte	0x91
- 15054 3417 9059     		.sleb128 -4976
- 15055 3419 31       		.uleb128 0x31
- 15056 341a 842C0000 		.long	0x2c84
- 15057 341e 03       		.byte	0x3
- 15058 341f 91       		.byte	0x91
- 15059 3420 A059     		.sleb128 -4960
- 15060 3422 34       		.uleb128 0x34
- 15061 3423 3B2C0000 		.long	0x2c3b
- 15062 3427 00000000 		.quad	.LBB1068
- 15062      00000000 
- 15063 342f 00000000 		.quad	.LBE1068
- 15063      00000000 
- 15064 3437 03       		.byte	0x3
- 15065 3438 DA05     		.value	0x5da
- 15066 343a 31       		.uleb128 0x31
- 15067 343b 652C0000 		.long	0x2c65
- 15068 343f 03       		.byte	0x3
- 15069 3440 91       		.byte	0x91
- 15070 3441 BC59     		.sleb128 -4932
- 15071 3443 31       		.uleb128 0x31
- 15072 3444 592C0000 		.long	0x2c59
- 15073 3448 03       		.byte	0x3
- 15074 3449 91       		.byte	0x91
- 15075 344a C059     		.sleb128 -4928
- 15076 344c 31       		.uleb128 0x31
- 15077 344d 4D2C0000 		.long	0x2c4d
- 15078 3451 03       		.byte	0x3
- 15079 3452 91       		.byte	0x91
- 15080 3453 D059     		.sleb128 -4912
- 15081 3455 00       		.byte	0x0
- 15082 3456 00       		.byte	0x0
- 15083 3457 30       		.uleb128 0x30
- 15084 3458 8F0D0000 		.long	0xd8f
- 15085 345c 00000000 		.quad	.LBB1070
- 15085      00000000 
- 15086 3464 00000000 		.quad	.LBE1070
- 15086      00000000 
- 15087 346c 03       		.byte	0x3
- 15088 346d 0A07     		.value	0x70a
-
GAS LISTING /tmp/ccPaCTqg.s 			page 421
-
-
- 15089 346f 6B360000 		.long	0x366b
- 15090 3473 31       		.uleb128 0x31
- 15091 3474 A10D0000 		.long	0xda1
- 15092 3478 03       		.byte	0x3
- 15093 3479 91       		.byte	0x91
- 15094 347a E059     		.sleb128 -4896
- 15095 347c 32       		.uleb128 0x32
- 15096 347d 00000000 		.quad	.LBB1071
- 15096      00000000 
- 15097 3485 00000000 		.quad	.LBE1071
- 15097      00000000 
- 15098 348d 33       		.uleb128 0x33
- 15099 348e AD0D0000 		.long	0xdad
- 15100 3492 03       		.byte	0x3
- 15101 3493 76       		.byte	0x76
- 15102 3494 8050     		.sleb128 -6144
- 15103 3496 30       		.uleb128 0x30
- 15104 3497 BA0D0000 		.long	0xdba
- 15105 349b 00000000 		.quad	.LBB1072
- 15105      00000000 
- 15106 34a3 00000000 		.quad	.LBE1072
- 15106      00000000 
- 15107 34ab 03       		.byte	0x3
- 15108 34ac 1F06     		.value	0x61f
- 15109 34ae 33350000 		.long	0x3533
- 15110 34b2 31       		.uleb128 0x31
- 15111 34b3 CC0D0000 		.long	0xdcc
- 15112 34b7 03       		.byte	0x3
- 15113 34b8 91       		.byte	0x91
- 15114 34b9 F059     		.sleb128 -4880
- 15115 34bb 32       		.uleb128 0x32
- 15116 34bc 00000000 		.quad	.LBB1073
- 15116      00000000 
- 15117 34c4 00000000 		.quad	.LBE1073
- 15117      00000000 
- 15118 34cc 33       		.uleb128 0x33
- 15119 34cd D80D0000 		.long	0xdd8
- 15120 34d1 09       		.byte	0x9
- 15121 34d2 03       		.byte	0x3
- 15122 34d3 00000000 		.quad	mask.8002
- 15122      00000000 
- 15123 34db 34       		.uleb128 0x34
- 15124 34dc FB0D0000 		.long	0xdfb
- 15125 34e0 00000000 		.quad	.LBB1074
- 15125      00000000 
- 15126 34e8 00000000 		.quad	.LBE1074
- 15126      00000000 
- 15127 34f0 03       		.byte	0x3
- 15128 34f1 FE04     		.value	0x4fe
- 15129 34f3 31       		.uleb128 0x31
- 15130 34f4 190E0000 		.long	0xe19
- 15131 34f8 03       		.byte	0x3
- 15132 34f9 91       		.byte	0x91
- 15133 34fa 805A     		.sleb128 -4864
- 15134 34fc 31       		.uleb128 0x31
- 15135 34fd 0D0E0000 		.long	0xe0d
- 15136 3501 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 422
-
-
- 15137 3502 91       		.byte	0x91
- 15138 3503 905A     		.sleb128 -4848
- 15139 3505 34       		.uleb128 0x34
- 15140 3506 260E0000 		.long	0xe26
- 15141 350a 00000000 		.quad	.LBB1076
- 15141      00000000 
- 15142 3512 00000000 		.quad	.LBE1076
- 15142      00000000 
- 15143 351a 03       		.byte	0x3
- 15144 351b 7501     		.value	0x175
- 15145 351d 31       		.uleb128 0x31
- 15146 351e 440E0000 		.long	0xe44
- 15147 3522 03       		.byte	0x3
- 15148 3523 91       		.byte	0x91
- 15149 3524 A05A     		.sleb128 -4832
- 15150 3526 31       		.uleb128 0x31
- 15151 3527 380E0000 		.long	0xe38
- 15152 352b 03       		.byte	0x3
- 15153 352c 91       		.byte	0x91
- 15154 352d B05A     		.sleb128 -4816
- 15155 352f 00       		.byte	0x0
- 15156 3530 00       		.byte	0x0
- 15157 3531 00       		.byte	0x0
- 15158 3532 00       		.byte	0x0
- 15159 3533 30       		.uleb128 0x30
- 15160 3534 BA0D0000 		.long	0xdba
- 15161 3538 00000000 		.quad	.LBB1078
- 15161      00000000 
- 15162 3540 00000000 		.quad	.LBE1078
- 15162      00000000 
- 15163 3548 03       		.byte	0x3
- 15164 3549 2006     		.value	0x620
- 15165 354b D0350000 		.long	0x35d0
- 15166 354f 31       		.uleb128 0x31
- 15167 3550 CC0D0000 		.long	0xdcc
- 15168 3554 03       		.byte	0x3
- 15169 3555 91       		.byte	0x91
- 15170 3556 C05A     		.sleb128 -4800
- 15171 3558 32       		.uleb128 0x32
- 15172 3559 00000000 		.quad	.LBB1079
- 15172      00000000 
- 15173 3561 00000000 		.quad	.LBE1079
- 15173      00000000 
- 15174 3569 33       		.uleb128 0x33
- 15175 356a D80D0000 		.long	0xdd8
- 15176 356e 09       		.byte	0x9
- 15177 356f 03       		.byte	0x3
- 15178 3570 00000000 		.quad	mask.8002
- 15178      00000000 
- 15179 3578 34       		.uleb128 0x34
- 15180 3579 FB0D0000 		.long	0xdfb
- 15181 357d 00000000 		.quad	.LBB1080
- 15181      00000000 
- 15182 3585 00000000 		.quad	.LBE1080
- 15182      00000000 
- 15183 358d 03       		.byte	0x3
- 15184 358e FE04     		.value	0x4fe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 423
-
-
- 15185 3590 31       		.uleb128 0x31
- 15186 3591 190E0000 		.long	0xe19
- 15187 3595 03       		.byte	0x3
- 15188 3596 91       		.byte	0x91
- 15189 3597 D05A     		.sleb128 -4784
- 15190 3599 31       		.uleb128 0x31
- 15191 359a 0D0E0000 		.long	0xe0d
- 15192 359e 03       		.byte	0x3
- 15193 359f 91       		.byte	0x91
- 15194 35a0 E05A     		.sleb128 -4768
- 15195 35a2 34       		.uleb128 0x34
- 15196 35a3 260E0000 		.long	0xe26
- 15197 35a7 00000000 		.quad	.LBB1082
- 15197      00000000 
- 15198 35af 00000000 		.quad	.LBE1082
- 15198      00000000 
- 15199 35b7 03       		.byte	0x3
- 15200 35b8 7501     		.value	0x175
- 15201 35ba 31       		.uleb128 0x31
- 15202 35bb 440E0000 		.long	0xe44
- 15203 35bf 03       		.byte	0x3
- 15204 35c0 91       		.byte	0x91
- 15205 35c1 F05A     		.sleb128 -4752
- 15206 35c3 31       		.uleb128 0x31
- 15207 35c4 380E0000 		.long	0xe38
- 15208 35c8 03       		.byte	0x3
- 15209 35c9 91       		.byte	0x91
- 15210 35ca 805B     		.sleb128 -4736
- 15211 35cc 00       		.byte	0x0
- 15212 35cd 00       		.byte	0x0
- 15213 35ce 00       		.byte	0x0
- 15214 35cf 00       		.byte	0x0
- 15215 35d0 34       		.uleb128 0x34
- 15216 35d1 BA0D0000 		.long	0xdba
- 15217 35d5 00000000 		.quad	.LBB1084
- 15217      00000000 
- 15218 35dd 00000000 		.quad	.LBE1084
- 15218      00000000 
- 15219 35e5 03       		.byte	0x3
- 15220 35e6 2106     		.value	0x621
- 15221 35e8 31       		.uleb128 0x31
- 15222 35e9 CC0D0000 		.long	0xdcc
- 15223 35ed 03       		.byte	0x3
- 15224 35ee 91       		.byte	0x91
- 15225 35ef 905B     		.sleb128 -4720
- 15226 35f1 32       		.uleb128 0x32
- 15227 35f2 00000000 		.quad	.LBB1085
- 15227      00000000 
- 15228 35fa 00000000 		.quad	.LBE1085
- 15228      00000000 
- 15229 3602 33       		.uleb128 0x33
- 15230 3603 D80D0000 		.long	0xdd8
- 15231 3607 09       		.byte	0x9
- 15232 3608 03       		.byte	0x3
- 15233 3609 00000000 		.quad	mask.8002
- 15233      00000000 
- 15234 3611 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 424
-
-
- 15235 3612 FB0D0000 		.long	0xdfb
- 15236 3616 00000000 		.quad	.LBB1086
- 15236      00000000 
- 15237 361e 00000000 		.quad	.LBE1086
- 15237      00000000 
- 15238 3626 03       		.byte	0x3
- 15239 3627 FE04     		.value	0x4fe
- 15240 3629 31       		.uleb128 0x31
- 15241 362a 190E0000 		.long	0xe19
- 15242 362e 03       		.byte	0x3
- 15243 362f 91       		.byte	0x91
- 15244 3630 A05B     		.sleb128 -4704
- 15245 3632 31       		.uleb128 0x31
- 15246 3633 0D0E0000 		.long	0xe0d
- 15247 3637 03       		.byte	0x3
- 15248 3638 91       		.byte	0x91
- 15249 3639 B05B     		.sleb128 -4688
- 15250 363b 34       		.uleb128 0x34
- 15251 363c 260E0000 		.long	0xe26
- 15252 3640 00000000 		.quad	.LBB1088
- 15252      00000000 
- 15253 3648 00000000 		.quad	.LBE1088
- 15253      00000000 
- 15254 3650 03       		.byte	0x3
- 15255 3651 7501     		.value	0x175
- 15256 3653 31       		.uleb128 0x31
- 15257 3654 440E0000 		.long	0xe44
- 15258 3658 03       		.byte	0x3
- 15259 3659 91       		.byte	0x91
- 15260 365a C05B     		.sleb128 -4672
- 15261 365c 31       		.uleb128 0x31
- 15262 365d 380E0000 		.long	0xe38
- 15263 3661 03       		.byte	0x3
- 15264 3662 91       		.byte	0x91
- 15265 3663 D05B     		.sleb128 -4656
- 15266 3665 00       		.byte	0x0
- 15267 3666 00       		.byte	0x0
- 15268 3667 00       		.byte	0x0
- 15269 3668 00       		.byte	0x0
- 15270 3669 00       		.byte	0x0
- 15271 366a 00       		.byte	0x0
- 15272 366b 30       		.uleb128 0x30
- 15273 366c 8F0D0000 		.long	0xd8f
- 15274 3670 00000000 		.quad	.LBB1090
- 15274      00000000 
- 15275 3678 00000000 		.quad	.LBE1090
- 15275      00000000 
- 15276 3680 03       		.byte	0x3
- 15277 3681 0B07     		.value	0x70b
- 15278 3683 7F380000 		.long	0x387f
- 15279 3687 31       		.uleb128 0x31
- 15280 3688 A10D0000 		.long	0xda1
- 15281 368c 03       		.byte	0x3
- 15282 368d 91       		.byte	0x91
- 15283 368e E05B     		.sleb128 -4640
- 15284 3690 32       		.uleb128 0x32
- 15285 3691 00000000 		.quad	.LBB1091
-
GAS LISTING /tmp/ccPaCTqg.s 			page 425
-
-
- 15285      00000000 
- 15286 3699 00000000 		.quad	.LBE1091
- 15286      00000000 
- 15287 36a1 33       		.uleb128 0x33
- 15288 36a2 AD0D0000 		.long	0xdad
- 15289 36a6 03       		.byte	0x3
- 15290 36a7 76       		.byte	0x76
- 15291 36a8 9050     		.sleb128 -6128
- 15292 36aa 30       		.uleb128 0x30
- 15293 36ab BA0D0000 		.long	0xdba
- 15294 36af 00000000 		.quad	.LBB1092
- 15294      00000000 
- 15295 36b7 00000000 		.quad	.LBE1092
- 15295      00000000 
- 15296 36bf 03       		.byte	0x3
- 15297 36c0 1F06     		.value	0x61f
- 15298 36c2 47370000 		.long	0x3747
- 15299 36c6 31       		.uleb128 0x31
- 15300 36c7 CC0D0000 		.long	0xdcc
- 15301 36cb 03       		.byte	0x3
- 15302 36cc 91       		.byte	0x91
- 15303 36cd F05B     		.sleb128 -4624
- 15304 36cf 32       		.uleb128 0x32
- 15305 36d0 00000000 		.quad	.LBB1093
- 15305      00000000 
- 15306 36d8 00000000 		.quad	.LBE1093
- 15306      00000000 
- 15307 36e0 33       		.uleb128 0x33
- 15308 36e1 D80D0000 		.long	0xdd8
- 15309 36e5 09       		.byte	0x9
- 15310 36e6 03       		.byte	0x3
- 15311 36e7 00000000 		.quad	mask.8002
- 15311      00000000 
- 15312 36ef 34       		.uleb128 0x34
- 15313 36f0 FB0D0000 		.long	0xdfb
- 15314 36f4 00000000 		.quad	.LBB1094
- 15314      00000000 
- 15315 36fc 00000000 		.quad	.LBE1094
- 15315      00000000 
- 15316 3704 03       		.byte	0x3
- 15317 3705 FE04     		.value	0x4fe
- 15318 3707 31       		.uleb128 0x31
- 15319 3708 190E0000 		.long	0xe19
- 15320 370c 03       		.byte	0x3
- 15321 370d 91       		.byte	0x91
- 15322 370e 805C     		.sleb128 -4608
- 15323 3710 31       		.uleb128 0x31
- 15324 3711 0D0E0000 		.long	0xe0d
- 15325 3715 03       		.byte	0x3
- 15326 3716 91       		.byte	0x91
- 15327 3717 905C     		.sleb128 -4592
- 15328 3719 34       		.uleb128 0x34
- 15329 371a 260E0000 		.long	0xe26
- 15330 371e 00000000 		.quad	.LBB1096
- 15330      00000000 
- 15331 3726 00000000 		.quad	.LBE1096
- 15331      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 426
-
-
- 15332 372e 03       		.byte	0x3
- 15333 372f 7501     		.value	0x175
- 15334 3731 31       		.uleb128 0x31
- 15335 3732 440E0000 		.long	0xe44
- 15336 3736 03       		.byte	0x3
- 15337 3737 91       		.byte	0x91
- 15338 3738 A05C     		.sleb128 -4576
- 15339 373a 31       		.uleb128 0x31
- 15340 373b 380E0000 		.long	0xe38
- 15341 373f 03       		.byte	0x3
- 15342 3740 91       		.byte	0x91
- 15343 3741 B05C     		.sleb128 -4560
- 15344 3743 00       		.byte	0x0
- 15345 3744 00       		.byte	0x0
- 15346 3745 00       		.byte	0x0
- 15347 3746 00       		.byte	0x0
- 15348 3747 30       		.uleb128 0x30
- 15349 3748 BA0D0000 		.long	0xdba
- 15350 374c 00000000 		.quad	.LBB1098
- 15350      00000000 
- 15351 3754 00000000 		.quad	.LBE1098
- 15351      00000000 
- 15352 375c 03       		.byte	0x3
- 15353 375d 2006     		.value	0x620
- 15354 375f E4370000 		.long	0x37e4
- 15355 3763 31       		.uleb128 0x31
- 15356 3764 CC0D0000 		.long	0xdcc
- 15357 3768 03       		.byte	0x3
- 15358 3769 91       		.byte	0x91
- 15359 376a C05C     		.sleb128 -4544
- 15360 376c 32       		.uleb128 0x32
- 15361 376d 00000000 		.quad	.LBB1099
- 15361      00000000 
- 15362 3775 00000000 		.quad	.LBE1099
- 15362      00000000 
- 15363 377d 33       		.uleb128 0x33
- 15364 377e D80D0000 		.long	0xdd8
- 15365 3782 09       		.byte	0x9
- 15366 3783 03       		.byte	0x3
- 15367 3784 00000000 		.quad	mask.8002
- 15367      00000000 
- 15368 378c 34       		.uleb128 0x34
- 15369 378d FB0D0000 		.long	0xdfb
- 15370 3791 00000000 		.quad	.LBB1100
- 15370      00000000 
- 15371 3799 00000000 		.quad	.LBE1100
- 15371      00000000 
- 15372 37a1 03       		.byte	0x3
- 15373 37a2 FE04     		.value	0x4fe
- 15374 37a4 31       		.uleb128 0x31
- 15375 37a5 190E0000 		.long	0xe19
- 15376 37a9 03       		.byte	0x3
- 15377 37aa 91       		.byte	0x91
- 15378 37ab D05C     		.sleb128 -4528
- 15379 37ad 31       		.uleb128 0x31
- 15380 37ae 0D0E0000 		.long	0xe0d
- 15381 37b2 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 427
-
-
- 15382 37b3 91       		.byte	0x91
- 15383 37b4 E05C     		.sleb128 -4512
- 15384 37b6 34       		.uleb128 0x34
- 15385 37b7 260E0000 		.long	0xe26
- 15386 37bb 00000000 		.quad	.LBB1102
- 15386      00000000 
- 15387 37c3 00000000 		.quad	.LBE1102
- 15387      00000000 
- 15388 37cb 03       		.byte	0x3
- 15389 37cc 7501     		.value	0x175
- 15390 37ce 31       		.uleb128 0x31
- 15391 37cf 440E0000 		.long	0xe44
- 15392 37d3 03       		.byte	0x3
- 15393 37d4 91       		.byte	0x91
- 15394 37d5 F05C     		.sleb128 -4496
- 15395 37d7 31       		.uleb128 0x31
- 15396 37d8 380E0000 		.long	0xe38
- 15397 37dc 03       		.byte	0x3
- 15398 37dd 91       		.byte	0x91
- 15399 37de 805D     		.sleb128 -4480
- 15400 37e0 00       		.byte	0x0
- 15401 37e1 00       		.byte	0x0
- 15402 37e2 00       		.byte	0x0
- 15403 37e3 00       		.byte	0x0
- 15404 37e4 34       		.uleb128 0x34
- 15405 37e5 BA0D0000 		.long	0xdba
- 15406 37e9 00000000 		.quad	.LBB1104
- 15406      00000000 
- 15407 37f1 00000000 		.quad	.LBE1104
- 15407      00000000 
- 15408 37f9 03       		.byte	0x3
- 15409 37fa 2106     		.value	0x621
- 15410 37fc 31       		.uleb128 0x31
- 15411 37fd CC0D0000 		.long	0xdcc
- 15412 3801 03       		.byte	0x3
- 15413 3802 91       		.byte	0x91
- 15414 3803 905D     		.sleb128 -4464
- 15415 3805 32       		.uleb128 0x32
- 15416 3806 00000000 		.quad	.LBB1105
- 15416      00000000 
- 15417 380e 00000000 		.quad	.LBE1105
- 15417      00000000 
- 15418 3816 33       		.uleb128 0x33
- 15419 3817 D80D0000 		.long	0xdd8
- 15420 381b 09       		.byte	0x9
- 15421 381c 03       		.byte	0x3
- 15422 381d 00000000 		.quad	mask.8002
- 15422      00000000 
- 15423 3825 34       		.uleb128 0x34
- 15424 3826 FB0D0000 		.long	0xdfb
- 15425 382a 00000000 		.quad	.LBB1106
- 15425      00000000 
- 15426 3832 00000000 		.quad	.LBE1106
- 15426      00000000 
- 15427 383a 03       		.byte	0x3
- 15428 383b FE04     		.value	0x4fe
- 15429 383d 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 428
-
-
- 15430 383e 190E0000 		.long	0xe19
- 15431 3842 03       		.byte	0x3
- 15432 3843 91       		.byte	0x91
- 15433 3844 A05D     		.sleb128 -4448
- 15434 3846 31       		.uleb128 0x31
- 15435 3847 0D0E0000 		.long	0xe0d
- 15436 384b 03       		.byte	0x3
- 15437 384c 91       		.byte	0x91
- 15438 384d B05D     		.sleb128 -4432
- 15439 384f 34       		.uleb128 0x34
- 15440 3850 260E0000 		.long	0xe26
- 15441 3854 00000000 		.quad	.LBB1108
- 15441      00000000 
- 15442 385c 00000000 		.quad	.LBE1108
- 15442      00000000 
- 15443 3864 03       		.byte	0x3
- 15444 3865 7501     		.value	0x175
- 15445 3867 31       		.uleb128 0x31
- 15446 3868 440E0000 		.long	0xe44
- 15447 386c 03       		.byte	0x3
- 15448 386d 91       		.byte	0x91
- 15449 386e C05D     		.sleb128 -4416
- 15450 3870 31       		.uleb128 0x31
- 15451 3871 380E0000 		.long	0xe38
- 15452 3875 03       		.byte	0x3
- 15453 3876 91       		.byte	0x91
- 15454 3877 D05D     		.sleb128 -4400
- 15455 3879 00       		.byte	0x0
- 15456 387a 00       		.byte	0x0
- 15457 387b 00       		.byte	0x0
- 15458 387c 00       		.byte	0x0
- 15459 387d 00       		.byte	0x0
- 15460 387e 00       		.byte	0x0
- 15461 387f 30       		.uleb128 0x30
- 15462 3880 E30C0000 		.long	0xce3
- 15463 3884 00000000 		.quad	.LBB1110
- 15463      00000000 
- 15464 388c 00000000 		.quad	.LBE1110
- 15464      00000000 
- 15465 3894 03       		.byte	0x3
- 15466 3895 0C07     		.value	0x70c
- 15467 3897 45390000 		.long	0x3945
- 15468 389b 31       		.uleb128 0x31
- 15469 389c 010D0000 		.long	0xd01
- 15470 38a0 03       		.byte	0x3
- 15471 38a1 91       		.byte	0x91
- 15472 38a2 EC5D     		.sleb128 -4372
- 15473 38a4 31       		.uleb128 0x31
- 15474 38a5 F50C0000 		.long	0xcf5
- 15475 38a9 03       		.byte	0x3
- 15476 38aa 91       		.byte	0x91
- 15477 38ab F05D     		.sleb128 -4368
- 15478 38ad 32       		.uleb128 0x32
- 15479 38ae 00000000 		.quad	.LBB1111
- 15479      00000000 
- 15480 38b6 00000000 		.quad	.LBE1111
- 15480      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 429
-
-
- 15481 38be 33       		.uleb128 0x33
- 15482 38bf 0D0D0000 		.long	0xd0d
- 15483 38c3 03       		.byte	0x3
- 15484 38c4 76       		.byte	0x76
- 15485 38c5 A050     		.sleb128 -6112
- 15486 38c7 30       		.uleb128 0x30
- 15487 38c8 1A0D0000 		.long	0xd1a
- 15488 38cc 00000000 		.quad	.LBB1112
- 15488      00000000 
- 15489 38d4 00000000 		.quad	.LBE1112
- 15489      00000000 
- 15490 38dc 03       		.byte	0x3
- 15491 38dd 8A06     		.value	0x68a
- 15492 38df F6380000 		.long	0x38f6
- 15493 38e3 31       		.uleb128 0x31
- 15494 38e4 380D0000 		.long	0xd38
- 15495 38e8 03       		.byte	0x3
- 15496 38e9 91       		.byte	0x91
- 15497 38ea 8C5E     		.sleb128 -4340
- 15498 38ec 31       		.uleb128 0x31
- 15499 38ed 2C0D0000 		.long	0xd2c
- 15500 38f1 03       		.byte	0x3
- 15501 38f2 91       		.byte	0x91
- 15502 38f3 905E     		.sleb128 -4336
- 15503 38f5 00       		.byte	0x0
- 15504 38f6 34       		.uleb128 0x34
- 15505 38f7 450D0000 		.long	0xd45
- 15506 38fb 00000000 		.quad	.LBB1114
- 15506      00000000 
- 15507 3903 00000000 		.quad	.LBE1114
- 15507      00000000 
- 15508 390b 03       		.byte	0x3
- 15509 390c 8B06     		.value	0x68b
- 15510 390e 31       		.uleb128 0x31
- 15511 390f 570D0000 		.long	0xd57
- 15512 3913 03       		.byte	0x3
- 15513 3914 91       		.byte	0x91
- 15514 3915 A05E     		.sleb128 -4320
- 15515 3917 34       		.uleb128 0x34
- 15516 3918 640D0000 		.long	0xd64
- 15517 391c 00000000 		.quad	.LBB1116
- 15517      00000000 
- 15518 3924 00000000 		.quad	.LBE1116
- 15518      00000000 
- 15519 392c 03       		.byte	0x3
- 15520 392d 4905     		.value	0x549
- 15521 392f 31       		.uleb128 0x31
- 15522 3930 820D0000 		.long	0xd82
- 15523 3934 03       		.byte	0x3
- 15524 3935 91       		.byte	0x91
- 15525 3936 BC5E     		.sleb128 -4292
- 15526 3938 31       		.uleb128 0x31
- 15527 3939 760D0000 		.long	0xd76
- 15528 393d 03       		.byte	0x3
- 15529 393e 91       		.byte	0x91
- 15530 393f C05E     		.sleb128 -4288
- 15531 3941 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 430
-
-
- 15532 3942 00       		.byte	0x0
- 15533 3943 00       		.byte	0x0
- 15534 3944 00       		.byte	0x0
- 15535 3945 30       		.uleb128 0x30
- 15536 3946 450D0000 		.long	0xd45
- 15537 394a 00000000 		.quad	.LBB1118
- 15537      00000000 
- 15538 3952 00000000 		.quad	.LBE1118
- 15538      00000000 
- 15539 395a 03       		.byte	0x3
- 15540 395b 1007     		.value	0x710
- 15541 395d 96390000 		.long	0x3996
- 15542 3961 31       		.uleb128 0x31
- 15543 3962 570D0000 		.long	0xd57
- 15544 3966 03       		.byte	0x3
- 15545 3967 91       		.byte	0x91
- 15546 3968 D05E     		.sleb128 -4272
- 15547 396a 34       		.uleb128 0x34
- 15548 396b 640D0000 		.long	0xd64
- 15549 396f 00000000 		.quad	.LBB1120
- 15549      00000000 
- 15550 3977 00000000 		.quad	.LBE1120
- 15550      00000000 
- 15551 397f 03       		.byte	0x3
- 15552 3980 4905     		.value	0x549
- 15553 3982 31       		.uleb128 0x31
- 15554 3983 820D0000 		.long	0xd82
- 15555 3987 03       		.byte	0x3
- 15556 3988 91       		.byte	0x91
- 15557 3989 EC5E     		.sleb128 -4244
- 15558 398b 31       		.uleb128 0x31
- 15559 398c 760D0000 		.long	0xd76
- 15560 3990 03       		.byte	0x3
- 15561 3991 91       		.byte	0x91
- 15562 3992 F05E     		.sleb128 -4240
- 15563 3994 00       		.byte	0x0
- 15564 3995 00       		.byte	0x0
- 15565 3996 30       		.uleb128 0x30
- 15566 3997 BE2B0000 		.long	0x2bbe
- 15567 399b 00000000 		.quad	.LBB1122
- 15567      00000000 
- 15568 39a3 00000000 		.quad	.LBE1122
- 15568      00000000 
- 15569 39ab 03       		.byte	0x3
- 15570 39ac 1707     		.value	0x717
- 15571 39ae 5C3A0000 		.long	0x3a5c
- 15572 39b2 31       		.uleb128 0x31
- 15573 39b3 DC2B0000 		.long	0x2bdc
- 15574 39b7 03       		.byte	0x3
- 15575 39b8 91       		.byte	0x91
- 15576 39b9 8C5F     		.sleb128 -4212
- 15577 39bb 31       		.uleb128 0x31
- 15578 39bc D02B0000 		.long	0x2bd0
- 15579 39c0 03       		.byte	0x3
- 15580 39c1 91       		.byte	0x91
- 15581 39c2 905F     		.sleb128 -4208
- 15582 39c4 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccPaCTqg.s 			page 431
-
-
- 15583 39c5 00000000 		.quad	.LBB1123
- 15583      00000000 
- 15584 39cd 00000000 		.quad	.LBE1123
- 15584      00000000 
- 15585 39d5 33       		.uleb128 0x33
- 15586 39d6 E82B0000 		.long	0x2be8
- 15587 39da 03       		.byte	0x3
- 15588 39db 76       		.byte	0x76
- 15589 39dc B050     		.sleb128 -6096
- 15590 39de 30       		.uleb128 0x30
- 15591 39df 1A0D0000 		.long	0xd1a
- 15592 39e3 00000000 		.quad	.LBB1124
- 15592      00000000 
- 15593 39eb 00000000 		.quad	.LBE1124
- 15593      00000000 
- 15594 39f3 03       		.byte	0x3
- 15595 39f4 5606     		.value	0x656
- 15596 39f6 0D3A0000 		.long	0x3a0d
- 15597 39fa 31       		.uleb128 0x31
- 15598 39fb 380D0000 		.long	0xd38
- 15599 39ff 03       		.byte	0x3
- 15600 3a00 91       		.byte	0x91
- 15601 3a01 AC5F     		.sleb128 -4180
- 15602 3a03 31       		.uleb128 0x31
- 15603 3a04 2C0D0000 		.long	0xd2c
- 15604 3a08 03       		.byte	0x3
- 15605 3a09 91       		.byte	0x91
- 15606 3a0a B05F     		.sleb128 -4176
- 15607 3a0c 00       		.byte	0x0
- 15608 3a0d 34       		.uleb128 0x34
- 15609 3a0e F52B0000 		.long	0x2bf5
- 15610 3a12 00000000 		.quad	.LBB1126
- 15610      00000000 
- 15611 3a1a 00000000 		.quad	.LBE1126
- 15611      00000000 
- 15612 3a22 03       		.byte	0x3
- 15613 3a23 5706     		.value	0x657
- 15614 3a25 31       		.uleb128 0x31
- 15615 3a26 072C0000 		.long	0x2c07
- 15616 3a2a 03       		.byte	0x3
- 15617 3a2b 91       		.byte	0x91
- 15618 3a2c C05F     		.sleb128 -4160
- 15619 3a2e 34       		.uleb128 0x34
- 15620 3a2f 640D0000 		.long	0xd64
- 15621 3a33 00000000 		.quad	.LBB1128
- 15621      00000000 
- 15622 3a3b 00000000 		.quad	.LBE1128
- 15622      00000000 
- 15623 3a43 03       		.byte	0x3
- 15624 3a44 8105     		.value	0x581
- 15625 3a46 31       		.uleb128 0x31
- 15626 3a47 820D0000 		.long	0xd82
- 15627 3a4b 03       		.byte	0x3
- 15628 3a4c 91       		.byte	0x91
- 15629 3a4d DC5F     		.sleb128 -4132
- 15630 3a4f 31       		.uleb128 0x31
- 15631 3a50 760D0000 		.long	0xd76
-
GAS LISTING /tmp/ccPaCTqg.s 			page 432
-
-
- 15632 3a54 03       		.byte	0x3
- 15633 3a55 91       		.byte	0x91
- 15634 3a56 E05F     		.sleb128 -4128
- 15635 3a58 00       		.byte	0x0
- 15636 3a59 00       		.byte	0x0
- 15637 3a5a 00       		.byte	0x0
- 15638 3a5b 00       		.byte	0x0
- 15639 3a5c 30       		.uleb128 0x30
- 15640 3a5d 8F0D0000 		.long	0xd8f
- 15641 3a61 00000000 		.quad	.LBB1130
- 15641      00000000 
- 15642 3a69 00000000 		.quad	.LBE1130
- 15642      00000000 
- 15643 3a71 03       		.byte	0x3
- 15644 3a72 1907     		.value	0x719
- 15645 3a74 703C0000 		.long	0x3c70
- 15646 3a78 31       		.uleb128 0x31
- 15647 3a79 A10D0000 		.long	0xda1
- 15648 3a7d 03       		.byte	0x3
- 15649 3a7e 91       		.byte	0x91
- 15650 3a7f F05F     		.sleb128 -4112
- 15651 3a81 32       		.uleb128 0x32
- 15652 3a82 00000000 		.quad	.LBB1131
- 15652      00000000 
- 15653 3a8a 00000000 		.quad	.LBE1131
- 15653      00000000 
- 15654 3a92 33       		.uleb128 0x33
- 15655 3a93 AD0D0000 		.long	0xdad
- 15656 3a97 03       		.byte	0x3
- 15657 3a98 76       		.byte	0x76
- 15658 3a99 C050     		.sleb128 -6080
- 15659 3a9b 30       		.uleb128 0x30
- 15660 3a9c BA0D0000 		.long	0xdba
- 15661 3aa0 00000000 		.quad	.LBB1132
- 15661      00000000 
- 15662 3aa8 00000000 		.quad	.LBE1132
- 15662      00000000 
- 15663 3ab0 03       		.byte	0x3
- 15664 3ab1 1F06     		.value	0x61f
- 15665 3ab3 383B0000 		.long	0x3b38
- 15666 3ab7 31       		.uleb128 0x31
- 15667 3ab8 CC0D0000 		.long	0xdcc
- 15668 3abc 03       		.byte	0x3
- 15669 3abd 91       		.byte	0x91
- 15670 3abe 8060     		.sleb128 -4096
- 15671 3ac0 32       		.uleb128 0x32
- 15672 3ac1 00000000 		.quad	.LBB1133
- 15672      00000000 
- 15673 3ac9 00000000 		.quad	.LBE1133
- 15673      00000000 
- 15674 3ad1 33       		.uleb128 0x33
- 15675 3ad2 D80D0000 		.long	0xdd8
- 15676 3ad6 09       		.byte	0x9
- 15677 3ad7 03       		.byte	0x3
- 15678 3ad8 00000000 		.quad	mask.8002
- 15678      00000000 
- 15679 3ae0 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 433
-
-
- 15680 3ae1 FB0D0000 		.long	0xdfb
- 15681 3ae5 00000000 		.quad	.LBB1134
- 15681      00000000 
- 15682 3aed 00000000 		.quad	.LBE1134
- 15682      00000000 
- 15683 3af5 03       		.byte	0x3
- 15684 3af6 FE04     		.value	0x4fe
- 15685 3af8 31       		.uleb128 0x31
- 15686 3af9 190E0000 		.long	0xe19
- 15687 3afd 03       		.byte	0x3
- 15688 3afe 91       		.byte	0x91
- 15689 3aff 9060     		.sleb128 -4080
- 15690 3b01 31       		.uleb128 0x31
- 15691 3b02 0D0E0000 		.long	0xe0d
- 15692 3b06 03       		.byte	0x3
- 15693 3b07 91       		.byte	0x91
- 15694 3b08 A060     		.sleb128 -4064
- 15695 3b0a 34       		.uleb128 0x34
- 15696 3b0b 260E0000 		.long	0xe26
- 15697 3b0f 00000000 		.quad	.LBB1136
- 15697      00000000 
- 15698 3b17 00000000 		.quad	.LBE1136
- 15698      00000000 
- 15699 3b1f 03       		.byte	0x3
- 15700 3b20 7501     		.value	0x175
- 15701 3b22 31       		.uleb128 0x31
- 15702 3b23 440E0000 		.long	0xe44
- 15703 3b27 03       		.byte	0x3
- 15704 3b28 91       		.byte	0x91
- 15705 3b29 B060     		.sleb128 -4048
- 15706 3b2b 31       		.uleb128 0x31
- 15707 3b2c 380E0000 		.long	0xe38
- 15708 3b30 03       		.byte	0x3
- 15709 3b31 91       		.byte	0x91
- 15710 3b32 C060     		.sleb128 -4032
- 15711 3b34 00       		.byte	0x0
- 15712 3b35 00       		.byte	0x0
- 15713 3b36 00       		.byte	0x0
- 15714 3b37 00       		.byte	0x0
- 15715 3b38 30       		.uleb128 0x30
- 15716 3b39 BA0D0000 		.long	0xdba
- 15717 3b3d 00000000 		.quad	.LBB1138
- 15717      00000000 
- 15718 3b45 00000000 		.quad	.LBE1138
- 15718      00000000 
- 15719 3b4d 03       		.byte	0x3
- 15720 3b4e 2006     		.value	0x620
- 15721 3b50 D53B0000 		.long	0x3bd5
- 15722 3b54 31       		.uleb128 0x31
- 15723 3b55 CC0D0000 		.long	0xdcc
- 15724 3b59 03       		.byte	0x3
- 15725 3b5a 91       		.byte	0x91
- 15726 3b5b D060     		.sleb128 -4016
- 15727 3b5d 32       		.uleb128 0x32
- 15728 3b5e 00000000 		.quad	.LBB1139
- 15728      00000000 
- 15729 3b66 00000000 		.quad	.LBE1139
-
GAS LISTING /tmp/ccPaCTqg.s 			page 434
-
-
- 15729      00000000 
- 15730 3b6e 33       		.uleb128 0x33
- 15731 3b6f D80D0000 		.long	0xdd8
- 15732 3b73 09       		.byte	0x9
- 15733 3b74 03       		.byte	0x3
- 15734 3b75 00000000 		.quad	mask.8002
- 15734      00000000 
- 15735 3b7d 34       		.uleb128 0x34
- 15736 3b7e FB0D0000 		.long	0xdfb
- 15737 3b82 00000000 		.quad	.LBB1140
- 15737      00000000 
- 15738 3b8a 00000000 		.quad	.LBE1140
- 15738      00000000 
- 15739 3b92 03       		.byte	0x3
- 15740 3b93 FE04     		.value	0x4fe
- 15741 3b95 31       		.uleb128 0x31
- 15742 3b96 190E0000 		.long	0xe19
- 15743 3b9a 03       		.byte	0x3
- 15744 3b9b 91       		.byte	0x91
- 15745 3b9c E060     		.sleb128 -4000
- 15746 3b9e 31       		.uleb128 0x31
- 15747 3b9f 0D0E0000 		.long	0xe0d
- 15748 3ba3 03       		.byte	0x3
- 15749 3ba4 91       		.byte	0x91
- 15750 3ba5 F060     		.sleb128 -3984
- 15751 3ba7 34       		.uleb128 0x34
- 15752 3ba8 260E0000 		.long	0xe26
- 15753 3bac 00000000 		.quad	.LBB1142
- 15753      00000000 
- 15754 3bb4 00000000 		.quad	.LBE1142
- 15754      00000000 
- 15755 3bbc 03       		.byte	0x3
- 15756 3bbd 7501     		.value	0x175
- 15757 3bbf 31       		.uleb128 0x31
- 15758 3bc0 440E0000 		.long	0xe44
- 15759 3bc4 03       		.byte	0x3
- 15760 3bc5 91       		.byte	0x91
- 15761 3bc6 8061     		.sleb128 -3968
- 15762 3bc8 31       		.uleb128 0x31
- 15763 3bc9 380E0000 		.long	0xe38
- 15764 3bcd 03       		.byte	0x3
- 15765 3bce 91       		.byte	0x91
- 15766 3bcf 9061     		.sleb128 -3952
- 15767 3bd1 00       		.byte	0x0
- 15768 3bd2 00       		.byte	0x0
- 15769 3bd3 00       		.byte	0x0
- 15770 3bd4 00       		.byte	0x0
- 15771 3bd5 34       		.uleb128 0x34
- 15772 3bd6 BA0D0000 		.long	0xdba
- 15773 3bda 00000000 		.quad	.LBB1144
- 15773      00000000 
- 15774 3be2 00000000 		.quad	.LBE1144
- 15774      00000000 
- 15775 3bea 03       		.byte	0x3
- 15776 3beb 2106     		.value	0x621
- 15777 3bed 31       		.uleb128 0x31
- 15778 3bee CC0D0000 		.long	0xdcc
-
GAS LISTING /tmp/ccPaCTqg.s 			page 435
-
-
- 15779 3bf2 03       		.byte	0x3
- 15780 3bf3 91       		.byte	0x91
- 15781 3bf4 A061     		.sleb128 -3936
- 15782 3bf6 32       		.uleb128 0x32
- 15783 3bf7 00000000 		.quad	.LBB1145
- 15783      00000000 
- 15784 3bff 00000000 		.quad	.LBE1145
- 15784      00000000 
- 15785 3c07 33       		.uleb128 0x33
- 15786 3c08 D80D0000 		.long	0xdd8
- 15787 3c0c 09       		.byte	0x9
- 15788 3c0d 03       		.byte	0x3
- 15789 3c0e 00000000 		.quad	mask.8002
- 15789      00000000 
- 15790 3c16 34       		.uleb128 0x34
- 15791 3c17 FB0D0000 		.long	0xdfb
- 15792 3c1b 00000000 		.quad	.LBB1146
- 15792      00000000 
- 15793 3c23 00000000 		.quad	.LBE1146
- 15793      00000000 
- 15794 3c2b 03       		.byte	0x3
- 15795 3c2c FE04     		.value	0x4fe
- 15796 3c2e 31       		.uleb128 0x31
- 15797 3c2f 190E0000 		.long	0xe19
- 15798 3c33 03       		.byte	0x3
- 15799 3c34 91       		.byte	0x91
- 15800 3c35 B061     		.sleb128 -3920
- 15801 3c37 31       		.uleb128 0x31
- 15802 3c38 0D0E0000 		.long	0xe0d
- 15803 3c3c 03       		.byte	0x3
- 15804 3c3d 91       		.byte	0x91
- 15805 3c3e C061     		.sleb128 -3904
- 15806 3c40 34       		.uleb128 0x34
- 15807 3c41 260E0000 		.long	0xe26
- 15808 3c45 00000000 		.quad	.LBB1148
- 15808      00000000 
- 15809 3c4d 00000000 		.quad	.LBE1148
- 15809      00000000 
- 15810 3c55 03       		.byte	0x3
- 15811 3c56 7501     		.value	0x175
- 15812 3c58 31       		.uleb128 0x31
- 15813 3c59 440E0000 		.long	0xe44
- 15814 3c5d 03       		.byte	0x3
- 15815 3c5e 91       		.byte	0x91
- 15816 3c5f D061     		.sleb128 -3888
- 15817 3c61 31       		.uleb128 0x31
- 15818 3c62 380E0000 		.long	0xe38
- 15819 3c66 03       		.byte	0x3
- 15820 3c67 91       		.byte	0x91
- 15821 3c68 E061     		.sleb128 -3872
- 15822 3c6a 00       		.byte	0x0
- 15823 3c6b 00       		.byte	0x0
- 15824 3c6c 00       		.byte	0x0
- 15825 3c6d 00       		.byte	0x0
- 15826 3c6e 00       		.byte	0x0
- 15827 3c6f 00       		.byte	0x0
- 15828 3c70 30       		.uleb128 0x30
-
GAS LISTING /tmp/ccPaCTqg.s 			page 436
-
-
- 15829 3c71 8F0D0000 		.long	0xd8f
- 15830 3c75 00000000 		.quad	.LBB1150
- 15830      00000000 
- 15831 3c7d 00000000 		.quad	.LBE1150
- 15831      00000000 
- 15832 3c85 03       		.byte	0x3
- 15833 3c86 1B07     		.value	0x71b
- 15834 3c88 843E0000 		.long	0x3e84
- 15835 3c8c 31       		.uleb128 0x31
- 15836 3c8d A10D0000 		.long	0xda1
- 15837 3c91 03       		.byte	0x3
- 15838 3c92 91       		.byte	0x91
- 15839 3c93 F061     		.sleb128 -3856
- 15840 3c95 32       		.uleb128 0x32
- 15841 3c96 00000000 		.quad	.LBB1151
- 15841      00000000 
- 15842 3c9e 00000000 		.quad	.LBE1151
- 15842      00000000 
- 15843 3ca6 33       		.uleb128 0x33
- 15844 3ca7 AD0D0000 		.long	0xdad
- 15845 3cab 03       		.byte	0x3
- 15846 3cac 76       		.byte	0x76
- 15847 3cad D050     		.sleb128 -6064
- 15848 3caf 30       		.uleb128 0x30
- 15849 3cb0 BA0D0000 		.long	0xdba
- 15850 3cb4 00000000 		.quad	.LBB1152
- 15850      00000000 
- 15851 3cbc 00000000 		.quad	.LBE1152
- 15851      00000000 
- 15852 3cc4 03       		.byte	0x3
- 15853 3cc5 1F06     		.value	0x61f
- 15854 3cc7 4C3D0000 		.long	0x3d4c
- 15855 3ccb 31       		.uleb128 0x31
- 15856 3ccc CC0D0000 		.long	0xdcc
- 15857 3cd0 03       		.byte	0x3
- 15858 3cd1 91       		.byte	0x91
- 15859 3cd2 8062     		.sleb128 -3840
- 15860 3cd4 32       		.uleb128 0x32
- 15861 3cd5 00000000 		.quad	.LBB1153
- 15861      00000000 
- 15862 3cdd 00000000 		.quad	.LBE1153
- 15862      00000000 
- 15863 3ce5 33       		.uleb128 0x33
- 15864 3ce6 D80D0000 		.long	0xdd8
- 15865 3cea 09       		.byte	0x9
- 15866 3ceb 03       		.byte	0x3
- 15867 3cec 00000000 		.quad	mask.8002
- 15867      00000000 
- 15868 3cf4 34       		.uleb128 0x34
- 15869 3cf5 FB0D0000 		.long	0xdfb
- 15870 3cf9 00000000 		.quad	.LBB1154
- 15870      00000000 
- 15871 3d01 00000000 		.quad	.LBE1154
- 15871      00000000 
- 15872 3d09 03       		.byte	0x3
- 15873 3d0a FE04     		.value	0x4fe
- 15874 3d0c 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 437
-
-
- 15875 3d0d 190E0000 		.long	0xe19
- 15876 3d11 03       		.byte	0x3
- 15877 3d12 91       		.byte	0x91
- 15878 3d13 9062     		.sleb128 -3824
- 15879 3d15 31       		.uleb128 0x31
- 15880 3d16 0D0E0000 		.long	0xe0d
- 15881 3d1a 03       		.byte	0x3
- 15882 3d1b 91       		.byte	0x91
- 15883 3d1c A062     		.sleb128 -3808
- 15884 3d1e 34       		.uleb128 0x34
- 15885 3d1f 260E0000 		.long	0xe26
- 15886 3d23 00000000 		.quad	.LBB1156
- 15886      00000000 
- 15887 3d2b 00000000 		.quad	.LBE1156
- 15887      00000000 
- 15888 3d33 03       		.byte	0x3
- 15889 3d34 7501     		.value	0x175
- 15890 3d36 31       		.uleb128 0x31
- 15891 3d37 440E0000 		.long	0xe44
- 15892 3d3b 03       		.byte	0x3
- 15893 3d3c 91       		.byte	0x91
- 15894 3d3d B062     		.sleb128 -3792
- 15895 3d3f 31       		.uleb128 0x31
- 15896 3d40 380E0000 		.long	0xe38
- 15897 3d44 03       		.byte	0x3
- 15898 3d45 91       		.byte	0x91
- 15899 3d46 C062     		.sleb128 -3776
- 15900 3d48 00       		.byte	0x0
- 15901 3d49 00       		.byte	0x0
- 15902 3d4a 00       		.byte	0x0
- 15903 3d4b 00       		.byte	0x0
- 15904 3d4c 30       		.uleb128 0x30
- 15905 3d4d BA0D0000 		.long	0xdba
- 15906 3d51 00000000 		.quad	.LBB1158
- 15906      00000000 
- 15907 3d59 00000000 		.quad	.LBE1158
- 15907      00000000 
- 15908 3d61 03       		.byte	0x3
- 15909 3d62 2006     		.value	0x620
- 15910 3d64 E93D0000 		.long	0x3de9
- 15911 3d68 31       		.uleb128 0x31
- 15912 3d69 CC0D0000 		.long	0xdcc
- 15913 3d6d 03       		.byte	0x3
- 15914 3d6e 91       		.byte	0x91
- 15915 3d6f D062     		.sleb128 -3760
- 15916 3d71 32       		.uleb128 0x32
- 15917 3d72 00000000 		.quad	.LBB1159
- 15917      00000000 
- 15918 3d7a 00000000 		.quad	.LBE1159
- 15918      00000000 
- 15919 3d82 33       		.uleb128 0x33
- 15920 3d83 D80D0000 		.long	0xdd8
- 15921 3d87 09       		.byte	0x9
- 15922 3d88 03       		.byte	0x3
- 15923 3d89 00000000 		.quad	mask.8002
- 15923      00000000 
- 15924 3d91 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 438
-
-
- 15925 3d92 FB0D0000 		.long	0xdfb
- 15926 3d96 00000000 		.quad	.LBB1160
- 15926      00000000 
- 15927 3d9e 00000000 		.quad	.LBE1160
- 15927      00000000 
- 15928 3da6 03       		.byte	0x3
- 15929 3da7 FE04     		.value	0x4fe
- 15930 3da9 31       		.uleb128 0x31
- 15931 3daa 190E0000 		.long	0xe19
- 15932 3dae 03       		.byte	0x3
- 15933 3daf 91       		.byte	0x91
- 15934 3db0 E062     		.sleb128 -3744
- 15935 3db2 31       		.uleb128 0x31
- 15936 3db3 0D0E0000 		.long	0xe0d
- 15937 3db7 03       		.byte	0x3
- 15938 3db8 91       		.byte	0x91
- 15939 3db9 F062     		.sleb128 -3728
- 15940 3dbb 34       		.uleb128 0x34
- 15941 3dbc 260E0000 		.long	0xe26
- 15942 3dc0 00000000 		.quad	.LBB1162
- 15942      00000000 
- 15943 3dc8 00000000 		.quad	.LBE1162
- 15943      00000000 
- 15944 3dd0 03       		.byte	0x3
- 15945 3dd1 7501     		.value	0x175
- 15946 3dd3 31       		.uleb128 0x31
- 15947 3dd4 440E0000 		.long	0xe44
- 15948 3dd8 03       		.byte	0x3
- 15949 3dd9 91       		.byte	0x91
- 15950 3dda 8063     		.sleb128 -3712
- 15951 3ddc 31       		.uleb128 0x31
- 15952 3ddd 380E0000 		.long	0xe38
- 15953 3de1 03       		.byte	0x3
- 15954 3de2 91       		.byte	0x91
- 15955 3de3 9063     		.sleb128 -3696
- 15956 3de5 00       		.byte	0x0
- 15957 3de6 00       		.byte	0x0
- 15958 3de7 00       		.byte	0x0
- 15959 3de8 00       		.byte	0x0
- 15960 3de9 34       		.uleb128 0x34
- 15961 3dea BA0D0000 		.long	0xdba
- 15962 3dee 00000000 		.quad	.LBB1164
- 15962      00000000 
- 15963 3df6 00000000 		.quad	.LBE1164
- 15963      00000000 
- 15964 3dfe 03       		.byte	0x3
- 15965 3dff 2106     		.value	0x621
- 15966 3e01 31       		.uleb128 0x31
- 15967 3e02 CC0D0000 		.long	0xdcc
- 15968 3e06 03       		.byte	0x3
- 15969 3e07 91       		.byte	0x91
- 15970 3e08 A063     		.sleb128 -3680
- 15971 3e0a 32       		.uleb128 0x32
- 15972 3e0b 00000000 		.quad	.LBB1165
- 15972      00000000 
- 15973 3e13 00000000 		.quad	.LBE1165
- 15973      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 439
-
-
- 15974 3e1b 33       		.uleb128 0x33
- 15975 3e1c D80D0000 		.long	0xdd8
- 15976 3e20 09       		.byte	0x9
- 15977 3e21 03       		.byte	0x3
- 15978 3e22 00000000 		.quad	mask.8002
- 15978      00000000 
- 15979 3e2a 34       		.uleb128 0x34
- 15980 3e2b FB0D0000 		.long	0xdfb
- 15981 3e2f 00000000 		.quad	.LBB1166
- 15981      00000000 
- 15982 3e37 00000000 		.quad	.LBE1166
- 15982      00000000 
- 15983 3e3f 03       		.byte	0x3
- 15984 3e40 FE04     		.value	0x4fe
- 15985 3e42 31       		.uleb128 0x31
- 15986 3e43 190E0000 		.long	0xe19
- 15987 3e47 03       		.byte	0x3
- 15988 3e48 91       		.byte	0x91
- 15989 3e49 B063     		.sleb128 -3664
- 15990 3e4b 31       		.uleb128 0x31
- 15991 3e4c 0D0E0000 		.long	0xe0d
- 15992 3e50 03       		.byte	0x3
- 15993 3e51 91       		.byte	0x91
- 15994 3e52 C063     		.sleb128 -3648
- 15995 3e54 34       		.uleb128 0x34
- 15996 3e55 260E0000 		.long	0xe26
- 15997 3e59 00000000 		.quad	.LBB1168
- 15997      00000000 
- 15998 3e61 00000000 		.quad	.LBE1168
- 15998      00000000 
- 15999 3e69 03       		.byte	0x3
- 16000 3e6a 7501     		.value	0x175
- 16001 3e6c 31       		.uleb128 0x31
- 16002 3e6d 440E0000 		.long	0xe44
- 16003 3e71 03       		.byte	0x3
- 16004 3e72 91       		.byte	0x91
- 16005 3e73 D063     		.sleb128 -3632
- 16006 3e75 31       		.uleb128 0x31
- 16007 3e76 380E0000 		.long	0xe38
- 16008 3e7a 03       		.byte	0x3
- 16009 3e7b 91       		.byte	0x91
- 16010 3e7c E063     		.sleb128 -3616
- 16011 3e7e 00       		.byte	0x0
- 16012 3e7f 00       		.byte	0x0
- 16013 3e80 00       		.byte	0x0
- 16014 3e81 00       		.byte	0x0
- 16015 3e82 00       		.byte	0x0
- 16016 3e83 00       		.byte	0x0
- 16017 3e84 30       		.uleb128 0x30
- 16018 3e85 450D0000 		.long	0xd45
- 16019 3e89 00000000 		.quad	.LBB1170
- 16019      00000000 
- 16020 3e91 00000000 		.quad	.LBE1170
- 16020      00000000 
- 16021 3e99 03       		.byte	0x3
- 16022 3e9a 1C07     		.value	0x71c
- 16023 3e9c D53E0000 		.long	0x3ed5
-
GAS LISTING /tmp/ccPaCTqg.s 			page 440
-
-
- 16024 3ea0 31       		.uleb128 0x31
- 16025 3ea1 570D0000 		.long	0xd57
- 16026 3ea5 03       		.byte	0x3
- 16027 3ea6 91       		.byte	0x91
- 16028 3ea7 F063     		.sleb128 -3600
- 16029 3ea9 34       		.uleb128 0x34
- 16030 3eaa 640D0000 		.long	0xd64
- 16031 3eae 00000000 		.quad	.LBB1172
- 16031      00000000 
- 16032 3eb6 00000000 		.quad	.LBE1172
- 16032      00000000 
- 16033 3ebe 03       		.byte	0x3
- 16034 3ebf 4905     		.value	0x549
- 16035 3ec1 31       		.uleb128 0x31
- 16036 3ec2 820D0000 		.long	0xd82
- 16037 3ec6 03       		.byte	0x3
- 16038 3ec7 91       		.byte	0x91
- 16039 3ec8 8C64     		.sleb128 -3572
- 16040 3eca 31       		.uleb128 0x31
- 16041 3ecb 760D0000 		.long	0xd76
- 16042 3ecf 03       		.byte	0x3
- 16043 3ed0 91       		.byte	0x91
- 16044 3ed1 9064     		.sleb128 -3568
- 16045 3ed3 00       		.byte	0x0
- 16046 3ed4 00       		.byte	0x0
- 16047 3ed5 30       		.uleb128 0x30
- 16048 3ed6 142C0000 		.long	0x2c14
- 16049 3eda 00000000 		.quad	.LBB1174
- 16049      00000000 
- 16050 3ee2 00000000 		.quad	.LBE1174
- 16050      00000000 
- 16051 3eea 03       		.byte	0x3
- 16052 3eeb 1E07     		.value	0x71e
- 16053 3eed 383F0000 		.long	0x3f38
- 16054 3ef1 31       		.uleb128 0x31
- 16055 3ef2 302C0000 		.long	0x2c30
- 16056 3ef6 03       		.byte	0x3
- 16057 3ef7 91       		.byte	0x91
- 16058 3ef8 A064     		.sleb128 -3552
- 16059 3efa 31       		.uleb128 0x31
- 16060 3efb 262C0000 		.long	0x2c26
- 16061 3eff 03       		.byte	0x3
- 16062 3f00 91       		.byte	0x91
- 16063 3f01 B064     		.sleb128 -3536
- 16064 3f03 34       		.uleb128 0x34
- 16065 3f04 3B2C0000 		.long	0x2c3b
- 16066 3f08 00000000 		.quad	.LBB1176
- 16066      00000000 
- 16067 3f10 00000000 		.quad	.LBE1176
- 16067      00000000 
- 16068 3f18 03       		.byte	0x3
- 16069 3f19 BA05     		.value	0x5ba
- 16070 3f1b 31       		.uleb128 0x31
- 16071 3f1c 652C0000 		.long	0x2c65
- 16072 3f20 03       		.byte	0x3
- 16073 3f21 91       		.byte	0x91
- 16074 3f22 CC64     		.sleb128 -3508
-
GAS LISTING /tmp/ccPaCTqg.s 			page 441
-
-
- 16075 3f24 31       		.uleb128 0x31
- 16076 3f25 592C0000 		.long	0x2c59
- 16077 3f29 03       		.byte	0x3
- 16078 3f2a 91       		.byte	0x91
- 16079 3f2b D064     		.sleb128 -3504
- 16080 3f2d 31       		.uleb128 0x31
- 16081 3f2e 4D2C0000 		.long	0x2c4d
- 16082 3f32 03       		.byte	0x3
- 16083 3f33 91       		.byte	0x91
- 16084 3f34 E064     		.sleb128 -3488
- 16085 3f36 00       		.byte	0x0
- 16086 3f37 00       		.byte	0x0
- 16087 3f38 30       		.uleb128 0x30
- 16088 3f39 722C0000 		.long	0x2c72
- 16089 3f3d 00000000 		.quad	.LBB1178
- 16089      00000000 
- 16090 3f45 00000000 		.quad	.LBE1178
- 16090      00000000 
- 16091 3f4d 03       		.byte	0x3
- 16092 3f4e 2107     		.value	0x721
- 16093 3f50 9B3F0000 		.long	0x3f9b
- 16094 3f54 31       		.uleb128 0x31
- 16095 3f55 8E2C0000 		.long	0x2c8e
- 16096 3f59 03       		.byte	0x3
- 16097 3f5a 91       		.byte	0x91
- 16098 3f5b F064     		.sleb128 -3472
- 16099 3f5d 31       		.uleb128 0x31
- 16100 3f5e 842C0000 		.long	0x2c84
- 16101 3f62 03       		.byte	0x3
- 16102 3f63 91       		.byte	0x91
- 16103 3f64 8065     		.sleb128 -3456
- 16104 3f66 34       		.uleb128 0x34
- 16105 3f67 3B2C0000 		.long	0x2c3b
- 16106 3f6b 00000000 		.quad	.LBB1180
- 16106      00000000 
- 16107 3f73 00000000 		.quad	.LBE1180
- 16107      00000000 
- 16108 3f7b 03       		.byte	0x3
- 16109 3f7c DA05     		.value	0x5da
- 16110 3f7e 31       		.uleb128 0x31
- 16111 3f7f 652C0000 		.long	0x2c65
- 16112 3f83 03       		.byte	0x3
- 16113 3f84 91       		.byte	0x91
- 16114 3f85 9C65     		.sleb128 -3428
- 16115 3f87 31       		.uleb128 0x31
- 16116 3f88 592C0000 		.long	0x2c59
- 16117 3f8c 03       		.byte	0x3
- 16118 3f8d 91       		.byte	0x91
- 16119 3f8e A065     		.sleb128 -3424
- 16120 3f90 31       		.uleb128 0x31
- 16121 3f91 4D2C0000 		.long	0x2c4d
- 16122 3f95 03       		.byte	0x3
- 16123 3f96 91       		.byte	0x91
- 16124 3f97 B065     		.sleb128 -3408
- 16125 3f99 00       		.byte	0x0
- 16126 3f9a 00       		.byte	0x0
- 16127 3f9b 30       		.uleb128 0x30
-
GAS LISTING /tmp/ccPaCTqg.s 			page 442
-
-
- 16128 3f9c 8F0D0000 		.long	0xd8f
- 16129 3fa0 00000000 		.quad	.LBB1182
- 16129      00000000 
- 16130 3fa8 00000000 		.quad	.LBE1182
- 16130      00000000 
- 16131 3fb0 03       		.byte	0x3
- 16132 3fb1 2507     		.value	0x725
- 16133 3fb3 AF410000 		.long	0x41af
- 16134 3fb7 31       		.uleb128 0x31
- 16135 3fb8 A10D0000 		.long	0xda1
- 16136 3fbc 03       		.byte	0x3
- 16137 3fbd 91       		.byte	0x91
- 16138 3fbe C065     		.sleb128 -3392
- 16139 3fc0 32       		.uleb128 0x32
- 16140 3fc1 00000000 		.quad	.LBB1183
- 16140      00000000 
- 16141 3fc9 00000000 		.quad	.LBE1183
- 16141      00000000 
- 16142 3fd1 33       		.uleb128 0x33
- 16143 3fd2 AD0D0000 		.long	0xdad
- 16144 3fd6 03       		.byte	0x3
- 16145 3fd7 76       		.byte	0x76
- 16146 3fd8 E050     		.sleb128 -6048
- 16147 3fda 30       		.uleb128 0x30
- 16148 3fdb BA0D0000 		.long	0xdba
- 16149 3fdf 00000000 		.quad	.LBB1184
- 16149      00000000 
- 16150 3fe7 00000000 		.quad	.LBE1184
- 16150      00000000 
- 16151 3fef 03       		.byte	0x3
- 16152 3ff0 1F06     		.value	0x61f
- 16153 3ff2 77400000 		.long	0x4077
- 16154 3ff6 31       		.uleb128 0x31
- 16155 3ff7 CC0D0000 		.long	0xdcc
- 16156 3ffb 03       		.byte	0x3
- 16157 3ffc 91       		.byte	0x91
- 16158 3ffd D065     		.sleb128 -3376
- 16159 3fff 32       		.uleb128 0x32
- 16160 4000 00000000 		.quad	.LBB1185
- 16160      00000000 
- 16161 4008 00000000 		.quad	.LBE1185
- 16161      00000000 
- 16162 4010 33       		.uleb128 0x33
- 16163 4011 D80D0000 		.long	0xdd8
- 16164 4015 09       		.byte	0x9
- 16165 4016 03       		.byte	0x3
- 16166 4017 00000000 		.quad	mask.8002
- 16166      00000000 
- 16167 401f 34       		.uleb128 0x34
- 16168 4020 FB0D0000 		.long	0xdfb
- 16169 4024 00000000 		.quad	.LBB1186
- 16169      00000000 
- 16170 402c 00000000 		.quad	.LBE1186
- 16170      00000000 
- 16171 4034 03       		.byte	0x3
- 16172 4035 FE04     		.value	0x4fe
- 16173 4037 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 443
-
-
- 16174 4038 190E0000 		.long	0xe19
- 16175 403c 03       		.byte	0x3
- 16176 403d 91       		.byte	0x91
- 16177 403e E065     		.sleb128 -3360
- 16178 4040 31       		.uleb128 0x31
- 16179 4041 0D0E0000 		.long	0xe0d
- 16180 4045 03       		.byte	0x3
- 16181 4046 91       		.byte	0x91
- 16182 4047 F065     		.sleb128 -3344
- 16183 4049 34       		.uleb128 0x34
- 16184 404a 260E0000 		.long	0xe26
- 16185 404e 00000000 		.quad	.LBB1188
- 16185      00000000 
- 16186 4056 00000000 		.quad	.LBE1188
- 16186      00000000 
- 16187 405e 03       		.byte	0x3
- 16188 405f 7501     		.value	0x175
- 16189 4061 31       		.uleb128 0x31
- 16190 4062 440E0000 		.long	0xe44
- 16191 4066 03       		.byte	0x3
- 16192 4067 91       		.byte	0x91
- 16193 4068 8066     		.sleb128 -3328
- 16194 406a 31       		.uleb128 0x31
- 16195 406b 380E0000 		.long	0xe38
- 16196 406f 03       		.byte	0x3
- 16197 4070 91       		.byte	0x91
- 16198 4071 9066     		.sleb128 -3312
- 16199 4073 00       		.byte	0x0
- 16200 4074 00       		.byte	0x0
- 16201 4075 00       		.byte	0x0
- 16202 4076 00       		.byte	0x0
- 16203 4077 30       		.uleb128 0x30
- 16204 4078 BA0D0000 		.long	0xdba
- 16205 407c 00000000 		.quad	.LBB1190
- 16205      00000000 
- 16206 4084 00000000 		.quad	.LBE1190
- 16206      00000000 
- 16207 408c 03       		.byte	0x3
- 16208 408d 2006     		.value	0x620
- 16209 408f 14410000 		.long	0x4114
- 16210 4093 31       		.uleb128 0x31
- 16211 4094 CC0D0000 		.long	0xdcc
- 16212 4098 03       		.byte	0x3
- 16213 4099 91       		.byte	0x91
- 16214 409a A066     		.sleb128 -3296
- 16215 409c 32       		.uleb128 0x32
- 16216 409d 00000000 		.quad	.LBB1191
- 16216      00000000 
- 16217 40a5 00000000 		.quad	.LBE1191
- 16217      00000000 
- 16218 40ad 33       		.uleb128 0x33
- 16219 40ae D80D0000 		.long	0xdd8
- 16220 40b2 09       		.byte	0x9
- 16221 40b3 03       		.byte	0x3
- 16222 40b4 00000000 		.quad	mask.8002
- 16222      00000000 
- 16223 40bc 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 444
-
-
- 16224 40bd FB0D0000 		.long	0xdfb
- 16225 40c1 00000000 		.quad	.LBB1192
- 16225      00000000 
- 16226 40c9 00000000 		.quad	.LBE1192
- 16226      00000000 
- 16227 40d1 03       		.byte	0x3
- 16228 40d2 FE04     		.value	0x4fe
- 16229 40d4 31       		.uleb128 0x31
- 16230 40d5 190E0000 		.long	0xe19
- 16231 40d9 03       		.byte	0x3
- 16232 40da 91       		.byte	0x91
- 16233 40db B066     		.sleb128 -3280
- 16234 40dd 31       		.uleb128 0x31
- 16235 40de 0D0E0000 		.long	0xe0d
- 16236 40e2 03       		.byte	0x3
- 16237 40e3 91       		.byte	0x91
- 16238 40e4 C066     		.sleb128 -3264
- 16239 40e6 34       		.uleb128 0x34
- 16240 40e7 260E0000 		.long	0xe26
- 16241 40eb 00000000 		.quad	.LBB1194
- 16241      00000000 
- 16242 40f3 00000000 		.quad	.LBE1194
- 16242      00000000 
- 16243 40fb 03       		.byte	0x3
- 16244 40fc 7501     		.value	0x175
- 16245 40fe 31       		.uleb128 0x31
- 16246 40ff 440E0000 		.long	0xe44
- 16247 4103 03       		.byte	0x3
- 16248 4104 91       		.byte	0x91
- 16249 4105 D066     		.sleb128 -3248
- 16250 4107 31       		.uleb128 0x31
- 16251 4108 380E0000 		.long	0xe38
- 16252 410c 03       		.byte	0x3
- 16253 410d 91       		.byte	0x91
- 16254 410e E066     		.sleb128 -3232
- 16255 4110 00       		.byte	0x0
- 16256 4111 00       		.byte	0x0
- 16257 4112 00       		.byte	0x0
- 16258 4113 00       		.byte	0x0
- 16259 4114 34       		.uleb128 0x34
- 16260 4115 BA0D0000 		.long	0xdba
- 16261 4119 00000000 		.quad	.LBB1196
- 16261      00000000 
- 16262 4121 00000000 		.quad	.LBE1196
- 16262      00000000 
- 16263 4129 03       		.byte	0x3
- 16264 412a 2106     		.value	0x621
- 16265 412c 31       		.uleb128 0x31
- 16266 412d CC0D0000 		.long	0xdcc
- 16267 4131 03       		.byte	0x3
- 16268 4132 91       		.byte	0x91
- 16269 4133 F066     		.sleb128 -3216
- 16270 4135 32       		.uleb128 0x32
- 16271 4136 00000000 		.quad	.LBB1197
- 16271      00000000 
- 16272 413e 00000000 		.quad	.LBE1197
- 16272      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 445
-
-
- 16273 4146 33       		.uleb128 0x33
- 16274 4147 D80D0000 		.long	0xdd8
- 16275 414b 09       		.byte	0x9
- 16276 414c 03       		.byte	0x3
- 16277 414d 00000000 		.quad	mask.8002
- 16277      00000000 
- 16278 4155 34       		.uleb128 0x34
- 16279 4156 FB0D0000 		.long	0xdfb
- 16280 415a 00000000 		.quad	.LBB1198
- 16280      00000000 
- 16281 4162 00000000 		.quad	.LBE1198
- 16281      00000000 
- 16282 416a 03       		.byte	0x3
- 16283 416b FE04     		.value	0x4fe
- 16284 416d 31       		.uleb128 0x31
- 16285 416e 190E0000 		.long	0xe19
- 16286 4172 03       		.byte	0x3
- 16287 4173 91       		.byte	0x91
- 16288 4174 8067     		.sleb128 -3200
- 16289 4176 31       		.uleb128 0x31
- 16290 4177 0D0E0000 		.long	0xe0d
- 16291 417b 03       		.byte	0x3
- 16292 417c 91       		.byte	0x91
- 16293 417d 9067     		.sleb128 -3184
- 16294 417f 34       		.uleb128 0x34
- 16295 4180 260E0000 		.long	0xe26
- 16296 4184 00000000 		.quad	.LBB1200
- 16296      00000000 
- 16297 418c 00000000 		.quad	.LBE1200
- 16297      00000000 
- 16298 4194 03       		.byte	0x3
- 16299 4195 7501     		.value	0x175
- 16300 4197 31       		.uleb128 0x31
- 16301 4198 440E0000 		.long	0xe44
- 16302 419c 03       		.byte	0x3
- 16303 419d 91       		.byte	0x91
- 16304 419e A067     		.sleb128 -3168
- 16305 41a0 31       		.uleb128 0x31
- 16306 41a1 380E0000 		.long	0xe38
- 16307 41a5 03       		.byte	0x3
- 16308 41a6 91       		.byte	0x91
- 16309 41a7 B067     		.sleb128 -3152
- 16310 41a9 00       		.byte	0x0
- 16311 41aa 00       		.byte	0x0
- 16312 41ab 00       		.byte	0x0
- 16313 41ac 00       		.byte	0x0
- 16314 41ad 00       		.byte	0x0
- 16315 41ae 00       		.byte	0x0
- 16316 41af 30       		.uleb128 0x30
- 16317 41b0 8F0D0000 		.long	0xd8f
- 16318 41b4 00000000 		.quad	.LBB1202
- 16318      00000000 
- 16319 41bc 00000000 		.quad	.LBE1202
- 16319      00000000 
- 16320 41c4 03       		.byte	0x3
- 16321 41c5 2607     		.value	0x726
- 16322 41c7 C3430000 		.long	0x43c3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 446
-
-
- 16323 41cb 31       		.uleb128 0x31
- 16324 41cc A10D0000 		.long	0xda1
- 16325 41d0 03       		.byte	0x3
- 16326 41d1 91       		.byte	0x91
- 16327 41d2 C067     		.sleb128 -3136
- 16328 41d4 32       		.uleb128 0x32
- 16329 41d5 00000000 		.quad	.LBB1203
- 16329      00000000 
- 16330 41dd 00000000 		.quad	.LBE1203
- 16330      00000000 
- 16331 41e5 33       		.uleb128 0x33
- 16332 41e6 AD0D0000 		.long	0xdad
- 16333 41ea 03       		.byte	0x3
- 16334 41eb 76       		.byte	0x76
- 16335 41ec F050     		.sleb128 -6032
- 16336 41ee 30       		.uleb128 0x30
- 16337 41ef BA0D0000 		.long	0xdba
- 16338 41f3 00000000 		.quad	.LBB1204
- 16338      00000000 
- 16339 41fb 00000000 		.quad	.LBE1204
- 16339      00000000 
- 16340 4203 03       		.byte	0x3
- 16341 4204 1F06     		.value	0x61f
- 16342 4206 8B420000 		.long	0x428b
- 16343 420a 31       		.uleb128 0x31
- 16344 420b CC0D0000 		.long	0xdcc
- 16345 420f 03       		.byte	0x3
- 16346 4210 91       		.byte	0x91
- 16347 4211 D067     		.sleb128 -3120
- 16348 4213 32       		.uleb128 0x32
- 16349 4214 00000000 		.quad	.LBB1205
- 16349      00000000 
- 16350 421c 00000000 		.quad	.LBE1205
- 16350      00000000 
- 16351 4224 33       		.uleb128 0x33
- 16352 4225 D80D0000 		.long	0xdd8
- 16353 4229 09       		.byte	0x9
- 16354 422a 03       		.byte	0x3
- 16355 422b 00000000 		.quad	mask.8002
- 16355      00000000 
- 16356 4233 34       		.uleb128 0x34
- 16357 4234 FB0D0000 		.long	0xdfb
- 16358 4238 00000000 		.quad	.LBB1206
- 16358      00000000 
- 16359 4240 00000000 		.quad	.LBE1206
- 16359      00000000 
- 16360 4248 03       		.byte	0x3
- 16361 4249 FE04     		.value	0x4fe
- 16362 424b 31       		.uleb128 0x31
- 16363 424c 190E0000 		.long	0xe19
- 16364 4250 03       		.byte	0x3
- 16365 4251 91       		.byte	0x91
- 16366 4252 E067     		.sleb128 -3104
- 16367 4254 31       		.uleb128 0x31
- 16368 4255 0D0E0000 		.long	0xe0d
- 16369 4259 03       		.byte	0x3
- 16370 425a 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 447
-
-
- 16371 425b F067     		.sleb128 -3088
- 16372 425d 34       		.uleb128 0x34
- 16373 425e 260E0000 		.long	0xe26
- 16374 4262 00000000 		.quad	.LBB1208
- 16374      00000000 
- 16375 426a 00000000 		.quad	.LBE1208
- 16375      00000000 
- 16376 4272 03       		.byte	0x3
- 16377 4273 7501     		.value	0x175
- 16378 4275 31       		.uleb128 0x31
- 16379 4276 440E0000 		.long	0xe44
- 16380 427a 03       		.byte	0x3
- 16381 427b 91       		.byte	0x91
- 16382 427c 8068     		.sleb128 -3072
- 16383 427e 31       		.uleb128 0x31
- 16384 427f 380E0000 		.long	0xe38
- 16385 4283 03       		.byte	0x3
- 16386 4284 91       		.byte	0x91
- 16387 4285 9068     		.sleb128 -3056
- 16388 4287 00       		.byte	0x0
- 16389 4288 00       		.byte	0x0
- 16390 4289 00       		.byte	0x0
- 16391 428a 00       		.byte	0x0
- 16392 428b 30       		.uleb128 0x30
- 16393 428c BA0D0000 		.long	0xdba
- 16394 4290 00000000 		.quad	.LBB1210
- 16394      00000000 
- 16395 4298 00000000 		.quad	.LBE1210
- 16395      00000000 
- 16396 42a0 03       		.byte	0x3
- 16397 42a1 2006     		.value	0x620
- 16398 42a3 28430000 		.long	0x4328
- 16399 42a7 31       		.uleb128 0x31
- 16400 42a8 CC0D0000 		.long	0xdcc
- 16401 42ac 03       		.byte	0x3
- 16402 42ad 91       		.byte	0x91
- 16403 42ae A068     		.sleb128 -3040
- 16404 42b0 32       		.uleb128 0x32
- 16405 42b1 00000000 		.quad	.LBB1211
- 16405      00000000 
- 16406 42b9 00000000 		.quad	.LBE1211
- 16406      00000000 
- 16407 42c1 33       		.uleb128 0x33
- 16408 42c2 D80D0000 		.long	0xdd8
- 16409 42c6 09       		.byte	0x9
- 16410 42c7 03       		.byte	0x3
- 16411 42c8 00000000 		.quad	mask.8002
- 16411      00000000 
- 16412 42d0 34       		.uleb128 0x34
- 16413 42d1 FB0D0000 		.long	0xdfb
- 16414 42d5 00000000 		.quad	.LBB1212
- 16414      00000000 
- 16415 42dd 00000000 		.quad	.LBE1212
- 16415      00000000 
- 16416 42e5 03       		.byte	0x3
- 16417 42e6 FE04     		.value	0x4fe
- 16418 42e8 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 448
-
-
- 16419 42e9 190E0000 		.long	0xe19
- 16420 42ed 03       		.byte	0x3
- 16421 42ee 91       		.byte	0x91
- 16422 42ef B068     		.sleb128 -3024
- 16423 42f1 31       		.uleb128 0x31
- 16424 42f2 0D0E0000 		.long	0xe0d
- 16425 42f6 03       		.byte	0x3
- 16426 42f7 91       		.byte	0x91
- 16427 42f8 C068     		.sleb128 -3008
- 16428 42fa 34       		.uleb128 0x34
- 16429 42fb 260E0000 		.long	0xe26
- 16430 42ff 00000000 		.quad	.LBB1214
- 16430      00000000 
- 16431 4307 00000000 		.quad	.LBE1214
- 16431      00000000 
- 16432 430f 03       		.byte	0x3
- 16433 4310 7501     		.value	0x175
- 16434 4312 31       		.uleb128 0x31
- 16435 4313 440E0000 		.long	0xe44
- 16436 4317 03       		.byte	0x3
- 16437 4318 91       		.byte	0x91
- 16438 4319 D068     		.sleb128 -2992
- 16439 431b 31       		.uleb128 0x31
- 16440 431c 380E0000 		.long	0xe38
- 16441 4320 03       		.byte	0x3
- 16442 4321 91       		.byte	0x91
- 16443 4322 E068     		.sleb128 -2976
- 16444 4324 00       		.byte	0x0
- 16445 4325 00       		.byte	0x0
- 16446 4326 00       		.byte	0x0
- 16447 4327 00       		.byte	0x0
- 16448 4328 34       		.uleb128 0x34
- 16449 4329 BA0D0000 		.long	0xdba
- 16450 432d 00000000 		.quad	.LBB1216
- 16450      00000000 
- 16451 4335 00000000 		.quad	.LBE1216
- 16451      00000000 
- 16452 433d 03       		.byte	0x3
- 16453 433e 2106     		.value	0x621
- 16454 4340 31       		.uleb128 0x31
- 16455 4341 CC0D0000 		.long	0xdcc
- 16456 4345 03       		.byte	0x3
- 16457 4346 91       		.byte	0x91
- 16458 4347 F068     		.sleb128 -2960
- 16459 4349 32       		.uleb128 0x32
- 16460 434a 00000000 		.quad	.LBB1217
- 16460      00000000 
- 16461 4352 00000000 		.quad	.LBE1217
- 16461      00000000 
- 16462 435a 33       		.uleb128 0x33
- 16463 435b D80D0000 		.long	0xdd8
- 16464 435f 09       		.byte	0x9
- 16465 4360 03       		.byte	0x3
- 16466 4361 00000000 		.quad	mask.8002
- 16466      00000000 
- 16467 4369 34       		.uleb128 0x34
- 16468 436a FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 449
-
-
- 16469 436e 00000000 		.quad	.LBB1218
- 16469      00000000 
- 16470 4376 00000000 		.quad	.LBE1218
- 16470      00000000 
- 16471 437e 03       		.byte	0x3
- 16472 437f FE04     		.value	0x4fe
- 16473 4381 31       		.uleb128 0x31
- 16474 4382 190E0000 		.long	0xe19
- 16475 4386 03       		.byte	0x3
- 16476 4387 91       		.byte	0x91
- 16477 4388 8069     		.sleb128 -2944
- 16478 438a 31       		.uleb128 0x31
- 16479 438b 0D0E0000 		.long	0xe0d
- 16480 438f 03       		.byte	0x3
- 16481 4390 91       		.byte	0x91
- 16482 4391 9069     		.sleb128 -2928
- 16483 4393 34       		.uleb128 0x34
- 16484 4394 260E0000 		.long	0xe26
- 16485 4398 00000000 		.quad	.LBB1220
- 16485      00000000 
- 16486 43a0 00000000 		.quad	.LBE1220
- 16486      00000000 
- 16487 43a8 03       		.byte	0x3
- 16488 43a9 7501     		.value	0x175
- 16489 43ab 31       		.uleb128 0x31
- 16490 43ac 440E0000 		.long	0xe44
- 16491 43b0 03       		.byte	0x3
- 16492 43b1 91       		.byte	0x91
- 16493 43b2 A069     		.sleb128 -2912
- 16494 43b4 31       		.uleb128 0x31
- 16495 43b5 380E0000 		.long	0xe38
- 16496 43b9 03       		.byte	0x3
- 16497 43ba 91       		.byte	0x91
- 16498 43bb B069     		.sleb128 -2896
- 16499 43bd 00       		.byte	0x0
- 16500 43be 00       		.byte	0x0
- 16501 43bf 00       		.byte	0x0
- 16502 43c0 00       		.byte	0x0
- 16503 43c1 00       		.byte	0x0
- 16504 43c2 00       		.byte	0x0
- 16505 43c3 30       		.uleb128 0x30
- 16506 43c4 E30C0000 		.long	0xce3
- 16507 43c8 00000000 		.quad	.LBB1222
- 16507      00000000 
- 16508 43d0 00000000 		.quad	.LBE1222
- 16508      00000000 
- 16509 43d8 03       		.byte	0x3
- 16510 43d9 2707     		.value	0x727
- 16511 43db 89440000 		.long	0x4489
- 16512 43df 31       		.uleb128 0x31
- 16513 43e0 010D0000 		.long	0xd01
- 16514 43e4 03       		.byte	0x3
- 16515 43e5 91       		.byte	0x91
- 16516 43e6 CC69     		.sleb128 -2868
- 16517 43e8 31       		.uleb128 0x31
- 16518 43e9 F50C0000 		.long	0xcf5
- 16519 43ed 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 450
-
-
- 16520 43ee 91       		.byte	0x91
- 16521 43ef D069     		.sleb128 -2864
- 16522 43f1 32       		.uleb128 0x32
- 16523 43f2 00000000 		.quad	.LBB1223
- 16523      00000000 
- 16524 43fa 00000000 		.quad	.LBE1223
- 16524      00000000 
- 16525 4402 33       		.uleb128 0x33
- 16526 4403 0D0D0000 		.long	0xd0d
- 16527 4407 03       		.byte	0x3
- 16528 4408 76       		.byte	0x76
- 16529 4409 8051     		.sleb128 -6016
- 16530 440b 30       		.uleb128 0x30
- 16531 440c 1A0D0000 		.long	0xd1a
- 16532 4410 00000000 		.quad	.LBB1224
- 16532      00000000 
- 16533 4418 00000000 		.quad	.LBE1224
- 16533      00000000 
- 16534 4420 03       		.byte	0x3
- 16535 4421 8A06     		.value	0x68a
- 16536 4423 3A440000 		.long	0x443a
- 16537 4427 31       		.uleb128 0x31
- 16538 4428 380D0000 		.long	0xd38
- 16539 442c 03       		.byte	0x3
- 16540 442d 91       		.byte	0x91
- 16541 442e EC69     		.sleb128 -2836
- 16542 4430 31       		.uleb128 0x31
- 16543 4431 2C0D0000 		.long	0xd2c
- 16544 4435 03       		.byte	0x3
- 16545 4436 91       		.byte	0x91
- 16546 4437 F069     		.sleb128 -2832
- 16547 4439 00       		.byte	0x0
- 16548 443a 34       		.uleb128 0x34
- 16549 443b 450D0000 		.long	0xd45
- 16550 443f 00000000 		.quad	.LBB1226
- 16550      00000000 
- 16551 4447 00000000 		.quad	.LBE1226
- 16551      00000000 
- 16552 444f 03       		.byte	0x3
- 16553 4450 8B06     		.value	0x68b
- 16554 4452 31       		.uleb128 0x31
- 16555 4453 570D0000 		.long	0xd57
- 16556 4457 03       		.byte	0x3
- 16557 4458 91       		.byte	0x91
- 16558 4459 806A     		.sleb128 -2816
- 16559 445b 34       		.uleb128 0x34
- 16560 445c 640D0000 		.long	0xd64
- 16561 4460 00000000 		.quad	.LBB1228
- 16561      00000000 
- 16562 4468 00000000 		.quad	.LBE1228
- 16562      00000000 
- 16563 4470 03       		.byte	0x3
- 16564 4471 4905     		.value	0x549
- 16565 4473 31       		.uleb128 0x31
- 16566 4474 820D0000 		.long	0xd82
- 16567 4478 03       		.byte	0x3
- 16568 4479 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 451
-
-
- 16569 447a 9C6A     		.sleb128 -2788
- 16570 447c 31       		.uleb128 0x31
- 16571 447d 760D0000 		.long	0xd76
- 16572 4481 03       		.byte	0x3
- 16573 4482 91       		.byte	0x91
- 16574 4483 A06A     		.sleb128 -2784
- 16575 4485 00       		.byte	0x0
- 16576 4486 00       		.byte	0x0
- 16577 4487 00       		.byte	0x0
- 16578 4488 00       		.byte	0x0
- 16579 4489 30       		.uleb128 0x30
- 16580 448a 450D0000 		.long	0xd45
- 16581 448e 00000000 		.quad	.LBB1230
- 16581      00000000 
- 16582 4496 00000000 		.quad	.LBE1230
- 16582      00000000 
- 16583 449e 03       		.byte	0x3
- 16584 449f 2A07     		.value	0x72a
- 16585 44a1 DA440000 		.long	0x44da
- 16586 44a5 31       		.uleb128 0x31
- 16587 44a6 570D0000 		.long	0xd57
- 16588 44aa 03       		.byte	0x3
- 16589 44ab 91       		.byte	0x91
- 16590 44ac B06A     		.sleb128 -2768
- 16591 44ae 34       		.uleb128 0x34
- 16592 44af 640D0000 		.long	0xd64
- 16593 44b3 00000000 		.quad	.LBB1232
- 16593      00000000 
- 16594 44bb 00000000 		.quad	.LBE1232
- 16594      00000000 
- 16595 44c3 03       		.byte	0x3
- 16596 44c4 4905     		.value	0x549
- 16597 44c6 31       		.uleb128 0x31
- 16598 44c7 820D0000 		.long	0xd82
- 16599 44cb 03       		.byte	0x3
- 16600 44cc 91       		.byte	0x91
- 16601 44cd CC6A     		.sleb128 -2740
- 16602 44cf 31       		.uleb128 0x31
- 16603 44d0 760D0000 		.long	0xd76
- 16604 44d4 03       		.byte	0x3
- 16605 44d5 91       		.byte	0x91
- 16606 44d6 D06A     		.sleb128 -2736
- 16607 44d8 00       		.byte	0x0
- 16608 44d9 00       		.byte	0x0
- 16609 44da 30       		.uleb128 0x30
- 16610 44db BE2B0000 		.long	0x2bbe
- 16611 44df 00000000 		.quad	.LBB1234
- 16611      00000000 
- 16612 44e7 00000000 		.quad	.LBE1234
- 16612      00000000 
- 16613 44ef 03       		.byte	0x3
- 16614 44f0 3207     		.value	0x732
- 16615 44f2 A0450000 		.long	0x45a0
- 16616 44f6 31       		.uleb128 0x31
- 16617 44f7 DC2B0000 		.long	0x2bdc
- 16618 44fb 03       		.byte	0x3
- 16619 44fc 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 452
-
-
- 16620 44fd EC6A     		.sleb128 -2708
- 16621 44ff 31       		.uleb128 0x31
- 16622 4500 D02B0000 		.long	0x2bd0
- 16623 4504 03       		.byte	0x3
- 16624 4505 91       		.byte	0x91
- 16625 4506 F06A     		.sleb128 -2704
- 16626 4508 32       		.uleb128 0x32
- 16627 4509 00000000 		.quad	.LBB1235
- 16627      00000000 
- 16628 4511 00000000 		.quad	.LBE1235
- 16628      00000000 
- 16629 4519 33       		.uleb128 0x33
- 16630 451a E82B0000 		.long	0x2be8
- 16631 451e 03       		.byte	0x3
- 16632 451f 76       		.byte	0x76
- 16633 4520 9051     		.sleb128 -6000
- 16634 4522 30       		.uleb128 0x30
- 16635 4523 1A0D0000 		.long	0xd1a
- 16636 4527 00000000 		.quad	.LBB1236
- 16636      00000000 
- 16637 452f 00000000 		.quad	.LBE1236
- 16637      00000000 
- 16638 4537 03       		.byte	0x3
- 16639 4538 5606     		.value	0x656
- 16640 453a 51450000 		.long	0x4551
- 16641 453e 31       		.uleb128 0x31
- 16642 453f 380D0000 		.long	0xd38
- 16643 4543 03       		.byte	0x3
- 16644 4544 91       		.byte	0x91
- 16645 4545 8C6B     		.sleb128 -2676
- 16646 4547 31       		.uleb128 0x31
- 16647 4548 2C0D0000 		.long	0xd2c
- 16648 454c 03       		.byte	0x3
- 16649 454d 91       		.byte	0x91
- 16650 454e 906B     		.sleb128 -2672
- 16651 4550 00       		.byte	0x0
- 16652 4551 34       		.uleb128 0x34
- 16653 4552 F52B0000 		.long	0x2bf5
- 16654 4556 00000000 		.quad	.LBB1238
- 16654      00000000 
- 16655 455e 00000000 		.quad	.LBE1238
- 16655      00000000 
- 16656 4566 03       		.byte	0x3
- 16657 4567 5706     		.value	0x657
- 16658 4569 31       		.uleb128 0x31
- 16659 456a 072C0000 		.long	0x2c07
- 16660 456e 03       		.byte	0x3
- 16661 456f 91       		.byte	0x91
- 16662 4570 A06B     		.sleb128 -2656
- 16663 4572 34       		.uleb128 0x34
- 16664 4573 640D0000 		.long	0xd64
- 16665 4577 00000000 		.quad	.LBB1240
- 16665      00000000 
- 16666 457f 00000000 		.quad	.LBE1240
- 16666      00000000 
- 16667 4587 03       		.byte	0x3
- 16668 4588 8105     		.value	0x581
-
GAS LISTING /tmp/ccPaCTqg.s 			page 453
-
-
- 16669 458a 31       		.uleb128 0x31
- 16670 458b 820D0000 		.long	0xd82
- 16671 458f 03       		.byte	0x3
- 16672 4590 91       		.byte	0x91
- 16673 4591 BC6B     		.sleb128 -2628
- 16674 4593 31       		.uleb128 0x31
- 16675 4594 760D0000 		.long	0xd76
- 16676 4598 03       		.byte	0x3
- 16677 4599 91       		.byte	0x91
- 16678 459a C06B     		.sleb128 -2624
- 16679 459c 00       		.byte	0x0
- 16680 459d 00       		.byte	0x0
- 16681 459e 00       		.byte	0x0
- 16682 459f 00       		.byte	0x0
- 16683 45a0 30       		.uleb128 0x30
- 16684 45a1 8F0D0000 		.long	0xd8f
- 16685 45a5 00000000 		.quad	.LBB1242
- 16685      00000000 
- 16686 45ad 00000000 		.quad	.LBE1242
- 16686      00000000 
- 16687 45b5 03       		.byte	0x3
- 16688 45b6 3407     		.value	0x734
- 16689 45b8 B4470000 		.long	0x47b4
- 16690 45bc 31       		.uleb128 0x31
- 16691 45bd A10D0000 		.long	0xda1
- 16692 45c1 03       		.byte	0x3
- 16693 45c2 91       		.byte	0x91
- 16694 45c3 D06B     		.sleb128 -2608
- 16695 45c5 32       		.uleb128 0x32
- 16696 45c6 00000000 		.quad	.LBB1243
- 16696      00000000 
- 16697 45ce 00000000 		.quad	.LBE1243
- 16697      00000000 
- 16698 45d6 33       		.uleb128 0x33
- 16699 45d7 AD0D0000 		.long	0xdad
- 16700 45db 03       		.byte	0x3
- 16701 45dc 76       		.byte	0x76
- 16702 45dd A051     		.sleb128 -5984
- 16703 45df 30       		.uleb128 0x30
- 16704 45e0 BA0D0000 		.long	0xdba
- 16705 45e4 00000000 		.quad	.LBB1244
- 16705      00000000 
- 16706 45ec 00000000 		.quad	.LBE1244
- 16706      00000000 
- 16707 45f4 03       		.byte	0x3
- 16708 45f5 1F06     		.value	0x61f
- 16709 45f7 7C460000 		.long	0x467c
- 16710 45fb 31       		.uleb128 0x31
- 16711 45fc CC0D0000 		.long	0xdcc
- 16712 4600 03       		.byte	0x3
- 16713 4601 91       		.byte	0x91
- 16714 4602 E06B     		.sleb128 -2592
- 16715 4604 32       		.uleb128 0x32
- 16716 4605 00000000 		.quad	.LBB1245
- 16716      00000000 
- 16717 460d 00000000 		.quad	.LBE1245
- 16717      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 454
-
-
- 16718 4615 33       		.uleb128 0x33
- 16719 4616 D80D0000 		.long	0xdd8
- 16720 461a 09       		.byte	0x9
- 16721 461b 03       		.byte	0x3
- 16722 461c 00000000 		.quad	mask.8002
- 16722      00000000 
- 16723 4624 34       		.uleb128 0x34
- 16724 4625 FB0D0000 		.long	0xdfb
- 16725 4629 00000000 		.quad	.LBB1246
- 16725      00000000 
- 16726 4631 00000000 		.quad	.LBE1246
- 16726      00000000 
- 16727 4639 03       		.byte	0x3
- 16728 463a FE04     		.value	0x4fe
- 16729 463c 31       		.uleb128 0x31
- 16730 463d 190E0000 		.long	0xe19
- 16731 4641 03       		.byte	0x3
- 16732 4642 91       		.byte	0x91
- 16733 4643 F06B     		.sleb128 -2576
- 16734 4645 31       		.uleb128 0x31
- 16735 4646 0D0E0000 		.long	0xe0d
- 16736 464a 03       		.byte	0x3
- 16737 464b 91       		.byte	0x91
- 16738 464c 806C     		.sleb128 -2560
- 16739 464e 34       		.uleb128 0x34
- 16740 464f 260E0000 		.long	0xe26
- 16741 4653 00000000 		.quad	.LBB1248
- 16741      00000000 
- 16742 465b 00000000 		.quad	.LBE1248
- 16742      00000000 
- 16743 4663 03       		.byte	0x3
- 16744 4664 7501     		.value	0x175
- 16745 4666 31       		.uleb128 0x31
- 16746 4667 440E0000 		.long	0xe44
- 16747 466b 03       		.byte	0x3
- 16748 466c 91       		.byte	0x91
- 16749 466d 906C     		.sleb128 -2544
- 16750 466f 31       		.uleb128 0x31
- 16751 4670 380E0000 		.long	0xe38
- 16752 4674 03       		.byte	0x3
- 16753 4675 91       		.byte	0x91
- 16754 4676 A06C     		.sleb128 -2528
- 16755 4678 00       		.byte	0x0
- 16756 4679 00       		.byte	0x0
- 16757 467a 00       		.byte	0x0
- 16758 467b 00       		.byte	0x0
- 16759 467c 30       		.uleb128 0x30
- 16760 467d BA0D0000 		.long	0xdba
- 16761 4681 00000000 		.quad	.LBB1250
- 16761      00000000 
- 16762 4689 00000000 		.quad	.LBE1250
- 16762      00000000 
- 16763 4691 03       		.byte	0x3
- 16764 4692 2006     		.value	0x620
- 16765 4694 19470000 		.long	0x4719
- 16766 4698 31       		.uleb128 0x31
- 16767 4699 CC0D0000 		.long	0xdcc
-
GAS LISTING /tmp/ccPaCTqg.s 			page 455
-
-
- 16768 469d 03       		.byte	0x3
- 16769 469e 91       		.byte	0x91
- 16770 469f B06C     		.sleb128 -2512
- 16771 46a1 32       		.uleb128 0x32
- 16772 46a2 00000000 		.quad	.LBB1251
- 16772      00000000 
- 16773 46aa 00000000 		.quad	.LBE1251
- 16773      00000000 
- 16774 46b2 33       		.uleb128 0x33
- 16775 46b3 D80D0000 		.long	0xdd8
- 16776 46b7 09       		.byte	0x9
- 16777 46b8 03       		.byte	0x3
- 16778 46b9 00000000 		.quad	mask.8002
- 16778      00000000 
- 16779 46c1 34       		.uleb128 0x34
- 16780 46c2 FB0D0000 		.long	0xdfb
- 16781 46c6 00000000 		.quad	.LBB1252
- 16781      00000000 
- 16782 46ce 00000000 		.quad	.LBE1252
- 16782      00000000 
- 16783 46d6 03       		.byte	0x3
- 16784 46d7 FE04     		.value	0x4fe
- 16785 46d9 31       		.uleb128 0x31
- 16786 46da 190E0000 		.long	0xe19
- 16787 46de 03       		.byte	0x3
- 16788 46df 91       		.byte	0x91
- 16789 46e0 C06C     		.sleb128 -2496
- 16790 46e2 31       		.uleb128 0x31
- 16791 46e3 0D0E0000 		.long	0xe0d
- 16792 46e7 03       		.byte	0x3
- 16793 46e8 91       		.byte	0x91
- 16794 46e9 D06C     		.sleb128 -2480
- 16795 46eb 34       		.uleb128 0x34
- 16796 46ec 260E0000 		.long	0xe26
- 16797 46f0 00000000 		.quad	.LBB1254
- 16797      00000000 
- 16798 46f8 00000000 		.quad	.LBE1254
- 16798      00000000 
- 16799 4700 03       		.byte	0x3
- 16800 4701 7501     		.value	0x175
- 16801 4703 31       		.uleb128 0x31
- 16802 4704 440E0000 		.long	0xe44
- 16803 4708 03       		.byte	0x3
- 16804 4709 91       		.byte	0x91
- 16805 470a E06C     		.sleb128 -2464
- 16806 470c 31       		.uleb128 0x31
- 16807 470d 380E0000 		.long	0xe38
- 16808 4711 03       		.byte	0x3
- 16809 4712 91       		.byte	0x91
- 16810 4713 F06C     		.sleb128 -2448
- 16811 4715 00       		.byte	0x0
- 16812 4716 00       		.byte	0x0
- 16813 4717 00       		.byte	0x0
- 16814 4718 00       		.byte	0x0
- 16815 4719 34       		.uleb128 0x34
- 16816 471a BA0D0000 		.long	0xdba
- 16817 471e 00000000 		.quad	.LBB1256
-
GAS LISTING /tmp/ccPaCTqg.s 			page 456
-
-
- 16817      00000000 
- 16818 4726 00000000 		.quad	.LBE1256
- 16818      00000000 
- 16819 472e 03       		.byte	0x3
- 16820 472f 2106     		.value	0x621
- 16821 4731 31       		.uleb128 0x31
- 16822 4732 CC0D0000 		.long	0xdcc
- 16823 4736 03       		.byte	0x3
- 16824 4737 91       		.byte	0x91
- 16825 4738 806D     		.sleb128 -2432
- 16826 473a 32       		.uleb128 0x32
- 16827 473b 00000000 		.quad	.LBB1257
- 16827      00000000 
- 16828 4743 00000000 		.quad	.LBE1257
- 16828      00000000 
- 16829 474b 33       		.uleb128 0x33
- 16830 474c D80D0000 		.long	0xdd8
- 16831 4750 09       		.byte	0x9
- 16832 4751 03       		.byte	0x3
- 16833 4752 00000000 		.quad	mask.8002
- 16833      00000000 
- 16834 475a 34       		.uleb128 0x34
- 16835 475b FB0D0000 		.long	0xdfb
- 16836 475f 00000000 		.quad	.LBB1258
- 16836      00000000 
- 16837 4767 00000000 		.quad	.LBE1258
- 16837      00000000 
- 16838 476f 03       		.byte	0x3
- 16839 4770 FE04     		.value	0x4fe
- 16840 4772 31       		.uleb128 0x31
- 16841 4773 190E0000 		.long	0xe19
- 16842 4777 03       		.byte	0x3
- 16843 4778 91       		.byte	0x91
- 16844 4779 906D     		.sleb128 -2416
- 16845 477b 31       		.uleb128 0x31
- 16846 477c 0D0E0000 		.long	0xe0d
- 16847 4780 03       		.byte	0x3
- 16848 4781 91       		.byte	0x91
- 16849 4782 A06D     		.sleb128 -2400
- 16850 4784 34       		.uleb128 0x34
- 16851 4785 260E0000 		.long	0xe26
- 16852 4789 00000000 		.quad	.LBB1260
- 16852      00000000 
- 16853 4791 00000000 		.quad	.LBE1260
- 16853      00000000 
- 16854 4799 03       		.byte	0x3
- 16855 479a 7501     		.value	0x175
- 16856 479c 31       		.uleb128 0x31
- 16857 479d 440E0000 		.long	0xe44
- 16858 47a1 03       		.byte	0x3
- 16859 47a2 91       		.byte	0x91
- 16860 47a3 B06D     		.sleb128 -2384
- 16861 47a5 31       		.uleb128 0x31
- 16862 47a6 380E0000 		.long	0xe38
- 16863 47aa 03       		.byte	0x3
- 16864 47ab 91       		.byte	0x91
- 16865 47ac C06D     		.sleb128 -2368
-
GAS LISTING /tmp/ccPaCTqg.s 			page 457
-
-
- 16866 47ae 00       		.byte	0x0
- 16867 47af 00       		.byte	0x0
- 16868 47b0 00       		.byte	0x0
- 16869 47b1 00       		.byte	0x0
- 16870 47b2 00       		.byte	0x0
- 16871 47b3 00       		.byte	0x0
- 16872 47b4 30       		.uleb128 0x30
- 16873 47b5 8F0D0000 		.long	0xd8f
- 16874 47b9 00000000 		.quad	.LBB1262
- 16874      00000000 
- 16875 47c1 00000000 		.quad	.LBE1262
- 16875      00000000 
- 16876 47c9 03       		.byte	0x3
- 16877 47ca 3607     		.value	0x736
- 16878 47cc C8490000 		.long	0x49c8
- 16879 47d0 31       		.uleb128 0x31
- 16880 47d1 A10D0000 		.long	0xda1
- 16881 47d5 03       		.byte	0x3
- 16882 47d6 91       		.byte	0x91
- 16883 47d7 D06D     		.sleb128 -2352
- 16884 47d9 32       		.uleb128 0x32
- 16885 47da 00000000 		.quad	.LBB1263
- 16885      00000000 
- 16886 47e2 00000000 		.quad	.LBE1263
- 16886      00000000 
- 16887 47ea 33       		.uleb128 0x33
- 16888 47eb AD0D0000 		.long	0xdad
- 16889 47ef 03       		.byte	0x3
- 16890 47f0 76       		.byte	0x76
- 16891 47f1 B051     		.sleb128 -5968
- 16892 47f3 30       		.uleb128 0x30
- 16893 47f4 BA0D0000 		.long	0xdba
- 16894 47f8 00000000 		.quad	.LBB1264
- 16894      00000000 
- 16895 4800 00000000 		.quad	.LBE1264
- 16895      00000000 
- 16896 4808 03       		.byte	0x3
- 16897 4809 1F06     		.value	0x61f
- 16898 480b 90480000 		.long	0x4890
- 16899 480f 31       		.uleb128 0x31
- 16900 4810 CC0D0000 		.long	0xdcc
- 16901 4814 03       		.byte	0x3
- 16902 4815 91       		.byte	0x91
- 16903 4816 E06D     		.sleb128 -2336
- 16904 4818 32       		.uleb128 0x32
- 16905 4819 00000000 		.quad	.LBB1265
- 16905      00000000 
- 16906 4821 00000000 		.quad	.LBE1265
- 16906      00000000 
- 16907 4829 33       		.uleb128 0x33
- 16908 482a D80D0000 		.long	0xdd8
- 16909 482e 09       		.byte	0x9
- 16910 482f 03       		.byte	0x3
- 16911 4830 00000000 		.quad	mask.8002
- 16911      00000000 
- 16912 4838 34       		.uleb128 0x34
- 16913 4839 FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 458
-
-
- 16914 483d 00000000 		.quad	.LBB1266
- 16914      00000000 
- 16915 4845 00000000 		.quad	.LBE1266
- 16915      00000000 
- 16916 484d 03       		.byte	0x3
- 16917 484e FE04     		.value	0x4fe
- 16918 4850 31       		.uleb128 0x31
- 16919 4851 190E0000 		.long	0xe19
- 16920 4855 03       		.byte	0x3
- 16921 4856 91       		.byte	0x91
- 16922 4857 F06D     		.sleb128 -2320
- 16923 4859 31       		.uleb128 0x31
- 16924 485a 0D0E0000 		.long	0xe0d
- 16925 485e 03       		.byte	0x3
- 16926 485f 91       		.byte	0x91
- 16927 4860 806E     		.sleb128 -2304
- 16928 4862 34       		.uleb128 0x34
- 16929 4863 260E0000 		.long	0xe26
- 16930 4867 00000000 		.quad	.LBB1268
- 16930      00000000 
- 16931 486f 00000000 		.quad	.LBE1268
- 16931      00000000 
- 16932 4877 03       		.byte	0x3
- 16933 4878 7501     		.value	0x175
- 16934 487a 31       		.uleb128 0x31
- 16935 487b 440E0000 		.long	0xe44
- 16936 487f 03       		.byte	0x3
- 16937 4880 91       		.byte	0x91
- 16938 4881 906E     		.sleb128 -2288
- 16939 4883 31       		.uleb128 0x31
- 16940 4884 380E0000 		.long	0xe38
- 16941 4888 03       		.byte	0x3
- 16942 4889 91       		.byte	0x91
- 16943 488a A06E     		.sleb128 -2272
- 16944 488c 00       		.byte	0x0
- 16945 488d 00       		.byte	0x0
- 16946 488e 00       		.byte	0x0
- 16947 488f 00       		.byte	0x0
- 16948 4890 30       		.uleb128 0x30
- 16949 4891 BA0D0000 		.long	0xdba
- 16950 4895 00000000 		.quad	.LBB1270
- 16950      00000000 
- 16951 489d 00000000 		.quad	.LBE1270
- 16951      00000000 
- 16952 48a5 03       		.byte	0x3
- 16953 48a6 2006     		.value	0x620
- 16954 48a8 2D490000 		.long	0x492d
- 16955 48ac 31       		.uleb128 0x31
- 16956 48ad CC0D0000 		.long	0xdcc
- 16957 48b1 03       		.byte	0x3
- 16958 48b2 91       		.byte	0x91
- 16959 48b3 B06E     		.sleb128 -2256
- 16960 48b5 32       		.uleb128 0x32
- 16961 48b6 00000000 		.quad	.LBB1271
- 16961      00000000 
- 16962 48be 00000000 		.quad	.LBE1271
- 16962      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 459
-
-
- 16963 48c6 33       		.uleb128 0x33
- 16964 48c7 D80D0000 		.long	0xdd8
- 16965 48cb 09       		.byte	0x9
- 16966 48cc 03       		.byte	0x3
- 16967 48cd 00000000 		.quad	mask.8002
- 16967      00000000 
- 16968 48d5 34       		.uleb128 0x34
- 16969 48d6 FB0D0000 		.long	0xdfb
- 16970 48da 00000000 		.quad	.LBB1272
- 16970      00000000 
- 16971 48e2 00000000 		.quad	.LBE1272
- 16971      00000000 
- 16972 48ea 03       		.byte	0x3
- 16973 48eb FE04     		.value	0x4fe
- 16974 48ed 31       		.uleb128 0x31
- 16975 48ee 190E0000 		.long	0xe19
- 16976 48f2 03       		.byte	0x3
- 16977 48f3 91       		.byte	0x91
- 16978 48f4 C06E     		.sleb128 -2240
- 16979 48f6 31       		.uleb128 0x31
- 16980 48f7 0D0E0000 		.long	0xe0d
- 16981 48fb 03       		.byte	0x3
- 16982 48fc 91       		.byte	0x91
- 16983 48fd D06E     		.sleb128 -2224
- 16984 48ff 34       		.uleb128 0x34
- 16985 4900 260E0000 		.long	0xe26
- 16986 4904 00000000 		.quad	.LBB1274
- 16986      00000000 
- 16987 490c 00000000 		.quad	.LBE1274
- 16987      00000000 
- 16988 4914 03       		.byte	0x3
- 16989 4915 7501     		.value	0x175
- 16990 4917 31       		.uleb128 0x31
- 16991 4918 440E0000 		.long	0xe44
- 16992 491c 03       		.byte	0x3
- 16993 491d 91       		.byte	0x91
- 16994 491e E06E     		.sleb128 -2208
- 16995 4920 31       		.uleb128 0x31
- 16996 4921 380E0000 		.long	0xe38
- 16997 4925 03       		.byte	0x3
- 16998 4926 91       		.byte	0x91
- 16999 4927 F06E     		.sleb128 -2192
- 17000 4929 00       		.byte	0x0
- 17001 492a 00       		.byte	0x0
- 17002 492b 00       		.byte	0x0
- 17003 492c 00       		.byte	0x0
- 17004 492d 34       		.uleb128 0x34
- 17005 492e BA0D0000 		.long	0xdba
- 17006 4932 00000000 		.quad	.LBB1276
- 17006      00000000 
- 17007 493a 00000000 		.quad	.LBE1276
- 17007      00000000 
- 17008 4942 03       		.byte	0x3
- 17009 4943 2106     		.value	0x621
- 17010 4945 31       		.uleb128 0x31
- 17011 4946 CC0D0000 		.long	0xdcc
- 17012 494a 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 460
-
-
- 17013 494b 91       		.byte	0x91
- 17014 494c 806F     		.sleb128 -2176
- 17015 494e 32       		.uleb128 0x32
- 17016 494f 00000000 		.quad	.LBB1277
- 17016      00000000 
- 17017 4957 00000000 		.quad	.LBE1277
- 17017      00000000 
- 17018 495f 33       		.uleb128 0x33
- 17019 4960 D80D0000 		.long	0xdd8
- 17020 4964 09       		.byte	0x9
- 17021 4965 03       		.byte	0x3
- 17022 4966 00000000 		.quad	mask.8002
- 17022      00000000 
- 17023 496e 34       		.uleb128 0x34
- 17024 496f FB0D0000 		.long	0xdfb
- 17025 4973 00000000 		.quad	.LBB1278
- 17025      00000000 
- 17026 497b 00000000 		.quad	.LBE1278
- 17026      00000000 
- 17027 4983 03       		.byte	0x3
- 17028 4984 FE04     		.value	0x4fe
- 17029 4986 31       		.uleb128 0x31
- 17030 4987 190E0000 		.long	0xe19
- 17031 498b 03       		.byte	0x3
- 17032 498c 91       		.byte	0x91
- 17033 498d 906F     		.sleb128 -2160
- 17034 498f 31       		.uleb128 0x31
- 17035 4990 0D0E0000 		.long	0xe0d
- 17036 4994 03       		.byte	0x3
- 17037 4995 91       		.byte	0x91
- 17038 4996 A06F     		.sleb128 -2144
- 17039 4998 34       		.uleb128 0x34
- 17040 4999 260E0000 		.long	0xe26
- 17041 499d 00000000 		.quad	.LBB1280
- 17041      00000000 
- 17042 49a5 00000000 		.quad	.LBE1280
- 17042      00000000 
- 17043 49ad 03       		.byte	0x3
- 17044 49ae 7501     		.value	0x175
- 17045 49b0 31       		.uleb128 0x31
- 17046 49b1 440E0000 		.long	0xe44
- 17047 49b5 03       		.byte	0x3
- 17048 49b6 91       		.byte	0x91
- 17049 49b7 B06F     		.sleb128 -2128
- 17050 49b9 31       		.uleb128 0x31
- 17051 49ba 380E0000 		.long	0xe38
- 17052 49be 03       		.byte	0x3
- 17053 49bf 91       		.byte	0x91
- 17054 49c0 C06F     		.sleb128 -2112
- 17055 49c2 00       		.byte	0x0
- 17056 49c3 00       		.byte	0x0
- 17057 49c4 00       		.byte	0x0
- 17058 49c5 00       		.byte	0x0
- 17059 49c6 00       		.byte	0x0
- 17060 49c7 00       		.byte	0x0
- 17061 49c8 30       		.uleb128 0x30
- 17062 49c9 450D0000 		.long	0xd45
-
GAS LISTING /tmp/ccPaCTqg.s 			page 461
-
-
- 17063 49cd 00000000 		.quad	.LBB1282
- 17063      00000000 
- 17064 49d5 00000000 		.quad	.LBE1282
- 17064      00000000 
- 17065 49dd 03       		.byte	0x3
- 17066 49de 3707     		.value	0x737
- 17067 49e0 194A0000 		.long	0x4a19
- 17068 49e4 31       		.uleb128 0x31
- 17069 49e5 570D0000 		.long	0xd57
- 17070 49e9 03       		.byte	0x3
- 17071 49ea 91       		.byte	0x91
- 17072 49eb D06F     		.sleb128 -2096
- 17073 49ed 34       		.uleb128 0x34
- 17074 49ee 640D0000 		.long	0xd64
- 17075 49f2 00000000 		.quad	.LBB1284
- 17075      00000000 
- 17076 49fa 00000000 		.quad	.LBE1284
- 17076      00000000 
- 17077 4a02 03       		.byte	0x3
- 17078 4a03 4905     		.value	0x549
- 17079 4a05 31       		.uleb128 0x31
- 17080 4a06 820D0000 		.long	0xd82
- 17081 4a0a 03       		.byte	0x3
- 17082 4a0b 91       		.byte	0x91
- 17083 4a0c EC6F     		.sleb128 -2068
- 17084 4a0e 31       		.uleb128 0x31
- 17085 4a0f 760D0000 		.long	0xd76
- 17086 4a13 03       		.byte	0x3
- 17087 4a14 91       		.byte	0x91
- 17088 4a15 F06F     		.sleb128 -2064
- 17089 4a17 00       		.byte	0x0
- 17090 4a18 00       		.byte	0x0
- 17091 4a19 30       		.uleb128 0x30
- 17092 4a1a 142C0000 		.long	0x2c14
- 17093 4a1e 00000000 		.quad	.LBB1286
- 17093      00000000 
- 17094 4a26 00000000 		.quad	.LBE1286
- 17094      00000000 
- 17095 4a2e 03       		.byte	0x3
- 17096 4a2f 3907     		.value	0x739
- 17097 4a31 7C4A0000 		.long	0x4a7c
- 17098 4a35 31       		.uleb128 0x31
- 17099 4a36 302C0000 		.long	0x2c30
- 17100 4a3a 03       		.byte	0x3
- 17101 4a3b 91       		.byte	0x91
- 17102 4a3c 8070     		.sleb128 -2048
- 17103 4a3e 31       		.uleb128 0x31
- 17104 4a3f 262C0000 		.long	0x2c26
- 17105 4a43 03       		.byte	0x3
- 17106 4a44 91       		.byte	0x91
- 17107 4a45 9070     		.sleb128 -2032
- 17108 4a47 34       		.uleb128 0x34
- 17109 4a48 3B2C0000 		.long	0x2c3b
- 17110 4a4c 00000000 		.quad	.LBB1288
- 17110      00000000 
- 17111 4a54 00000000 		.quad	.LBE1288
- 17111      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 462
-
-
- 17112 4a5c 03       		.byte	0x3
- 17113 4a5d BA05     		.value	0x5ba
- 17114 4a5f 31       		.uleb128 0x31
- 17115 4a60 652C0000 		.long	0x2c65
- 17116 4a64 03       		.byte	0x3
- 17117 4a65 91       		.byte	0x91
- 17118 4a66 AC70     		.sleb128 -2004
- 17119 4a68 31       		.uleb128 0x31
- 17120 4a69 592C0000 		.long	0x2c59
- 17121 4a6d 03       		.byte	0x3
- 17122 4a6e 91       		.byte	0x91
- 17123 4a6f B070     		.sleb128 -2000
- 17124 4a71 31       		.uleb128 0x31
- 17125 4a72 4D2C0000 		.long	0x2c4d
- 17126 4a76 03       		.byte	0x3
- 17127 4a77 91       		.byte	0x91
- 17128 4a78 C070     		.sleb128 -1984
- 17129 4a7a 00       		.byte	0x0
- 17130 4a7b 00       		.byte	0x0
- 17131 4a7c 30       		.uleb128 0x30
- 17132 4a7d 722C0000 		.long	0x2c72
- 17133 4a81 00000000 		.quad	.LBB1290
- 17133      00000000 
- 17134 4a89 00000000 		.quad	.LBE1290
- 17134      00000000 
- 17135 4a91 03       		.byte	0x3
- 17136 4a92 3D07     		.value	0x73d
- 17137 4a94 DF4A0000 		.long	0x4adf
- 17138 4a98 31       		.uleb128 0x31
- 17139 4a99 8E2C0000 		.long	0x2c8e
- 17140 4a9d 03       		.byte	0x3
- 17141 4a9e 91       		.byte	0x91
- 17142 4a9f D070     		.sleb128 -1968
- 17143 4aa1 31       		.uleb128 0x31
- 17144 4aa2 842C0000 		.long	0x2c84
- 17145 4aa6 03       		.byte	0x3
- 17146 4aa7 91       		.byte	0x91
- 17147 4aa8 E070     		.sleb128 -1952
- 17148 4aaa 34       		.uleb128 0x34
- 17149 4aab 3B2C0000 		.long	0x2c3b
- 17150 4aaf 00000000 		.quad	.LBB1292
- 17150      00000000 
- 17151 4ab7 00000000 		.quad	.LBE1292
- 17151      00000000 
- 17152 4abf 03       		.byte	0x3
- 17153 4ac0 DA05     		.value	0x5da
- 17154 4ac2 31       		.uleb128 0x31
- 17155 4ac3 652C0000 		.long	0x2c65
- 17156 4ac7 03       		.byte	0x3
- 17157 4ac8 91       		.byte	0x91
- 17158 4ac9 FC70     		.sleb128 -1924
- 17159 4acb 31       		.uleb128 0x31
- 17160 4acc 592C0000 		.long	0x2c59
- 17161 4ad0 03       		.byte	0x3
- 17162 4ad1 91       		.byte	0x91
- 17163 4ad2 8071     		.sleb128 -1920
- 17164 4ad4 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 463
-
-
- 17165 4ad5 4D2C0000 		.long	0x2c4d
- 17166 4ad9 03       		.byte	0x3
- 17167 4ada 91       		.byte	0x91
- 17168 4adb 9071     		.sleb128 -1904
- 17169 4add 00       		.byte	0x0
- 17170 4ade 00       		.byte	0x0
- 17171 4adf 30       		.uleb128 0x30
- 17172 4ae0 8F0D0000 		.long	0xd8f
- 17173 4ae4 00000000 		.quad	.LBB1294
- 17173      00000000 
- 17174 4aec 00000000 		.quad	.LBE1294
- 17174      00000000 
- 17175 4af4 03       		.byte	0x3
- 17176 4af5 4007     		.value	0x740
- 17177 4af7 F34C0000 		.long	0x4cf3
- 17178 4afb 31       		.uleb128 0x31
- 17179 4afc A10D0000 		.long	0xda1
- 17180 4b00 03       		.byte	0x3
- 17181 4b01 91       		.byte	0x91
- 17182 4b02 A071     		.sleb128 -1888
- 17183 4b04 32       		.uleb128 0x32
- 17184 4b05 00000000 		.quad	.LBB1295
- 17184      00000000 
- 17185 4b0d 00000000 		.quad	.LBE1295
- 17185      00000000 
- 17186 4b15 33       		.uleb128 0x33
- 17187 4b16 AD0D0000 		.long	0xdad
- 17188 4b1a 03       		.byte	0x3
- 17189 4b1b 76       		.byte	0x76
- 17190 4b1c C051     		.sleb128 -5952
- 17191 4b1e 30       		.uleb128 0x30
- 17192 4b1f BA0D0000 		.long	0xdba
- 17193 4b23 00000000 		.quad	.LBB1296
- 17193      00000000 
- 17194 4b2b 00000000 		.quad	.LBE1296
- 17194      00000000 
- 17195 4b33 03       		.byte	0x3
- 17196 4b34 1F06     		.value	0x61f
- 17197 4b36 BB4B0000 		.long	0x4bbb
- 17198 4b3a 31       		.uleb128 0x31
- 17199 4b3b CC0D0000 		.long	0xdcc
- 17200 4b3f 03       		.byte	0x3
- 17201 4b40 91       		.byte	0x91
- 17202 4b41 B071     		.sleb128 -1872
- 17203 4b43 32       		.uleb128 0x32
- 17204 4b44 00000000 		.quad	.LBB1297
- 17204      00000000 
- 17205 4b4c 00000000 		.quad	.LBE1297
- 17205      00000000 
- 17206 4b54 33       		.uleb128 0x33
- 17207 4b55 D80D0000 		.long	0xdd8
- 17208 4b59 09       		.byte	0x9
- 17209 4b5a 03       		.byte	0x3
- 17210 4b5b 00000000 		.quad	mask.8002
- 17210      00000000 
- 17211 4b63 34       		.uleb128 0x34
- 17212 4b64 FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 464
-
-
- 17213 4b68 00000000 		.quad	.LBB1298
- 17213      00000000 
- 17214 4b70 00000000 		.quad	.LBE1298
- 17214      00000000 
- 17215 4b78 03       		.byte	0x3
- 17216 4b79 FE04     		.value	0x4fe
- 17217 4b7b 31       		.uleb128 0x31
- 17218 4b7c 190E0000 		.long	0xe19
- 17219 4b80 03       		.byte	0x3
- 17220 4b81 91       		.byte	0x91
- 17221 4b82 C071     		.sleb128 -1856
- 17222 4b84 31       		.uleb128 0x31
- 17223 4b85 0D0E0000 		.long	0xe0d
- 17224 4b89 03       		.byte	0x3
- 17225 4b8a 91       		.byte	0x91
- 17226 4b8b D071     		.sleb128 -1840
- 17227 4b8d 34       		.uleb128 0x34
- 17228 4b8e 260E0000 		.long	0xe26
- 17229 4b92 00000000 		.quad	.LBB1300
- 17229      00000000 
- 17230 4b9a 00000000 		.quad	.LBE1300
- 17230      00000000 
- 17231 4ba2 03       		.byte	0x3
- 17232 4ba3 7501     		.value	0x175
- 17233 4ba5 31       		.uleb128 0x31
- 17234 4ba6 440E0000 		.long	0xe44
- 17235 4baa 03       		.byte	0x3
- 17236 4bab 91       		.byte	0x91
- 17237 4bac E071     		.sleb128 -1824
- 17238 4bae 31       		.uleb128 0x31
- 17239 4baf 380E0000 		.long	0xe38
- 17240 4bb3 03       		.byte	0x3
- 17241 4bb4 91       		.byte	0x91
- 17242 4bb5 F071     		.sleb128 -1808
- 17243 4bb7 00       		.byte	0x0
- 17244 4bb8 00       		.byte	0x0
- 17245 4bb9 00       		.byte	0x0
- 17246 4bba 00       		.byte	0x0
- 17247 4bbb 30       		.uleb128 0x30
- 17248 4bbc BA0D0000 		.long	0xdba
- 17249 4bc0 00000000 		.quad	.LBB1302
- 17249      00000000 
- 17250 4bc8 00000000 		.quad	.LBE1302
- 17250      00000000 
- 17251 4bd0 03       		.byte	0x3
- 17252 4bd1 2006     		.value	0x620
- 17253 4bd3 584C0000 		.long	0x4c58
- 17254 4bd7 31       		.uleb128 0x31
- 17255 4bd8 CC0D0000 		.long	0xdcc
- 17256 4bdc 03       		.byte	0x3
- 17257 4bdd 91       		.byte	0x91
- 17258 4bde 8072     		.sleb128 -1792
- 17259 4be0 32       		.uleb128 0x32
- 17260 4be1 00000000 		.quad	.LBB1303
- 17260      00000000 
- 17261 4be9 00000000 		.quad	.LBE1303
- 17261      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 465
-
-
- 17262 4bf1 33       		.uleb128 0x33
- 17263 4bf2 D80D0000 		.long	0xdd8
- 17264 4bf6 09       		.byte	0x9
- 17265 4bf7 03       		.byte	0x3
- 17266 4bf8 00000000 		.quad	mask.8002
- 17266      00000000 
- 17267 4c00 34       		.uleb128 0x34
- 17268 4c01 FB0D0000 		.long	0xdfb
- 17269 4c05 00000000 		.quad	.LBB1304
- 17269      00000000 
- 17270 4c0d 00000000 		.quad	.LBE1304
- 17270      00000000 
- 17271 4c15 03       		.byte	0x3
- 17272 4c16 FE04     		.value	0x4fe
- 17273 4c18 31       		.uleb128 0x31
- 17274 4c19 190E0000 		.long	0xe19
- 17275 4c1d 03       		.byte	0x3
- 17276 4c1e 91       		.byte	0x91
- 17277 4c1f 9072     		.sleb128 -1776
- 17278 4c21 31       		.uleb128 0x31
- 17279 4c22 0D0E0000 		.long	0xe0d
- 17280 4c26 03       		.byte	0x3
- 17281 4c27 91       		.byte	0x91
- 17282 4c28 A072     		.sleb128 -1760
- 17283 4c2a 34       		.uleb128 0x34
- 17284 4c2b 260E0000 		.long	0xe26
- 17285 4c2f 00000000 		.quad	.LBB1306
- 17285      00000000 
- 17286 4c37 00000000 		.quad	.LBE1306
- 17286      00000000 
- 17287 4c3f 03       		.byte	0x3
- 17288 4c40 7501     		.value	0x175
- 17289 4c42 31       		.uleb128 0x31
- 17290 4c43 440E0000 		.long	0xe44
- 17291 4c47 03       		.byte	0x3
- 17292 4c48 91       		.byte	0x91
- 17293 4c49 B072     		.sleb128 -1744
- 17294 4c4b 31       		.uleb128 0x31
- 17295 4c4c 380E0000 		.long	0xe38
- 17296 4c50 03       		.byte	0x3
- 17297 4c51 91       		.byte	0x91
- 17298 4c52 C072     		.sleb128 -1728
- 17299 4c54 00       		.byte	0x0
- 17300 4c55 00       		.byte	0x0
- 17301 4c56 00       		.byte	0x0
- 17302 4c57 00       		.byte	0x0
- 17303 4c58 34       		.uleb128 0x34
- 17304 4c59 BA0D0000 		.long	0xdba
- 17305 4c5d 00000000 		.quad	.LBB1308
- 17305      00000000 
- 17306 4c65 00000000 		.quad	.LBE1308
- 17306      00000000 
- 17307 4c6d 03       		.byte	0x3
- 17308 4c6e 2106     		.value	0x621
- 17309 4c70 31       		.uleb128 0x31
- 17310 4c71 CC0D0000 		.long	0xdcc
- 17311 4c75 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 466
-
-
- 17312 4c76 91       		.byte	0x91
- 17313 4c77 D072     		.sleb128 -1712
- 17314 4c79 32       		.uleb128 0x32
- 17315 4c7a 00000000 		.quad	.LBB1309
- 17315      00000000 
- 17316 4c82 00000000 		.quad	.LBE1309
- 17316      00000000 
- 17317 4c8a 33       		.uleb128 0x33
- 17318 4c8b D80D0000 		.long	0xdd8
- 17319 4c8f 09       		.byte	0x9
- 17320 4c90 03       		.byte	0x3
- 17321 4c91 00000000 		.quad	mask.8002
- 17321      00000000 
- 17322 4c99 34       		.uleb128 0x34
- 17323 4c9a FB0D0000 		.long	0xdfb
- 17324 4c9e 00000000 		.quad	.LBB1310
- 17324      00000000 
- 17325 4ca6 00000000 		.quad	.LBE1310
- 17325      00000000 
- 17326 4cae 03       		.byte	0x3
- 17327 4caf FE04     		.value	0x4fe
- 17328 4cb1 31       		.uleb128 0x31
- 17329 4cb2 190E0000 		.long	0xe19
- 17330 4cb6 03       		.byte	0x3
- 17331 4cb7 91       		.byte	0x91
- 17332 4cb8 E072     		.sleb128 -1696
- 17333 4cba 31       		.uleb128 0x31
- 17334 4cbb 0D0E0000 		.long	0xe0d
- 17335 4cbf 03       		.byte	0x3
- 17336 4cc0 91       		.byte	0x91
- 17337 4cc1 F072     		.sleb128 -1680
- 17338 4cc3 34       		.uleb128 0x34
- 17339 4cc4 260E0000 		.long	0xe26
- 17340 4cc8 00000000 		.quad	.LBB1312
- 17340      00000000 
- 17341 4cd0 00000000 		.quad	.LBE1312
- 17341      00000000 
- 17342 4cd8 03       		.byte	0x3
- 17343 4cd9 7501     		.value	0x175
- 17344 4cdb 31       		.uleb128 0x31
- 17345 4cdc 440E0000 		.long	0xe44
- 17346 4ce0 03       		.byte	0x3
- 17347 4ce1 91       		.byte	0x91
- 17348 4ce2 8073     		.sleb128 -1664
- 17349 4ce4 31       		.uleb128 0x31
- 17350 4ce5 380E0000 		.long	0xe38
- 17351 4ce9 03       		.byte	0x3
- 17352 4cea 91       		.byte	0x91
- 17353 4ceb 9073     		.sleb128 -1648
- 17354 4ced 00       		.byte	0x0
- 17355 4cee 00       		.byte	0x0
- 17356 4cef 00       		.byte	0x0
- 17357 4cf0 00       		.byte	0x0
- 17358 4cf1 00       		.byte	0x0
- 17359 4cf2 00       		.byte	0x0
- 17360 4cf3 30       		.uleb128 0x30
- 17361 4cf4 8F0D0000 		.long	0xd8f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 467
-
-
- 17362 4cf8 00000000 		.quad	.LBB1314
- 17362      00000000 
- 17363 4d00 00000000 		.quad	.LBE1314
- 17363      00000000 
- 17364 4d08 03       		.byte	0x3
- 17365 4d09 4107     		.value	0x741
- 17366 4d0b 074F0000 		.long	0x4f07
- 17367 4d0f 31       		.uleb128 0x31
- 17368 4d10 A10D0000 		.long	0xda1
- 17369 4d14 03       		.byte	0x3
- 17370 4d15 91       		.byte	0x91
- 17371 4d16 A073     		.sleb128 -1632
- 17372 4d18 32       		.uleb128 0x32
- 17373 4d19 00000000 		.quad	.LBB1315
- 17373      00000000 
- 17374 4d21 00000000 		.quad	.LBE1315
- 17374      00000000 
- 17375 4d29 33       		.uleb128 0x33
- 17376 4d2a AD0D0000 		.long	0xdad
- 17377 4d2e 03       		.byte	0x3
- 17378 4d2f 76       		.byte	0x76
- 17379 4d30 D051     		.sleb128 -5936
- 17380 4d32 30       		.uleb128 0x30
- 17381 4d33 BA0D0000 		.long	0xdba
- 17382 4d37 00000000 		.quad	.LBB1316
- 17382      00000000 
- 17383 4d3f 00000000 		.quad	.LBE1316
- 17383      00000000 
- 17384 4d47 03       		.byte	0x3
- 17385 4d48 1F06     		.value	0x61f
- 17386 4d4a CF4D0000 		.long	0x4dcf
- 17387 4d4e 31       		.uleb128 0x31
- 17388 4d4f CC0D0000 		.long	0xdcc
- 17389 4d53 03       		.byte	0x3
- 17390 4d54 91       		.byte	0x91
- 17391 4d55 B073     		.sleb128 -1616
- 17392 4d57 32       		.uleb128 0x32
- 17393 4d58 00000000 		.quad	.LBB1317
- 17393      00000000 
- 17394 4d60 00000000 		.quad	.LBE1317
- 17394      00000000 
- 17395 4d68 33       		.uleb128 0x33
- 17396 4d69 D80D0000 		.long	0xdd8
- 17397 4d6d 09       		.byte	0x9
- 17398 4d6e 03       		.byte	0x3
- 17399 4d6f 00000000 		.quad	mask.8002
- 17399      00000000 
- 17400 4d77 34       		.uleb128 0x34
- 17401 4d78 FB0D0000 		.long	0xdfb
- 17402 4d7c 00000000 		.quad	.LBB1318
- 17402      00000000 
- 17403 4d84 00000000 		.quad	.LBE1318
- 17403      00000000 
- 17404 4d8c 03       		.byte	0x3
- 17405 4d8d FE04     		.value	0x4fe
- 17406 4d8f 31       		.uleb128 0x31
- 17407 4d90 190E0000 		.long	0xe19
-
GAS LISTING /tmp/ccPaCTqg.s 			page 468
-
-
- 17408 4d94 03       		.byte	0x3
- 17409 4d95 91       		.byte	0x91
- 17410 4d96 C073     		.sleb128 -1600
- 17411 4d98 31       		.uleb128 0x31
- 17412 4d99 0D0E0000 		.long	0xe0d
- 17413 4d9d 03       		.byte	0x3
- 17414 4d9e 91       		.byte	0x91
- 17415 4d9f D073     		.sleb128 -1584
- 17416 4da1 34       		.uleb128 0x34
- 17417 4da2 260E0000 		.long	0xe26
- 17418 4da6 00000000 		.quad	.LBB1320
- 17418      00000000 
- 17419 4dae 00000000 		.quad	.LBE1320
- 17419      00000000 
- 17420 4db6 03       		.byte	0x3
- 17421 4db7 7501     		.value	0x175
- 17422 4db9 31       		.uleb128 0x31
- 17423 4dba 440E0000 		.long	0xe44
- 17424 4dbe 03       		.byte	0x3
- 17425 4dbf 91       		.byte	0x91
- 17426 4dc0 E073     		.sleb128 -1568
- 17427 4dc2 31       		.uleb128 0x31
- 17428 4dc3 380E0000 		.long	0xe38
- 17429 4dc7 03       		.byte	0x3
- 17430 4dc8 91       		.byte	0x91
- 17431 4dc9 F073     		.sleb128 -1552
- 17432 4dcb 00       		.byte	0x0
- 17433 4dcc 00       		.byte	0x0
- 17434 4dcd 00       		.byte	0x0
- 17435 4dce 00       		.byte	0x0
- 17436 4dcf 30       		.uleb128 0x30
- 17437 4dd0 BA0D0000 		.long	0xdba
- 17438 4dd4 00000000 		.quad	.LBB1322
- 17438      00000000 
- 17439 4ddc 00000000 		.quad	.LBE1322
- 17439      00000000 
- 17440 4de4 03       		.byte	0x3
- 17441 4de5 2006     		.value	0x620
- 17442 4de7 6C4E0000 		.long	0x4e6c
- 17443 4deb 31       		.uleb128 0x31
- 17444 4dec CC0D0000 		.long	0xdcc
- 17445 4df0 03       		.byte	0x3
- 17446 4df1 91       		.byte	0x91
- 17447 4df2 8074     		.sleb128 -1536
- 17448 4df4 32       		.uleb128 0x32
- 17449 4df5 00000000 		.quad	.LBB1323
- 17449      00000000 
- 17450 4dfd 00000000 		.quad	.LBE1323
- 17450      00000000 
- 17451 4e05 33       		.uleb128 0x33
- 17452 4e06 D80D0000 		.long	0xdd8
- 17453 4e0a 09       		.byte	0x9
- 17454 4e0b 03       		.byte	0x3
- 17455 4e0c 00000000 		.quad	mask.8002
- 17455      00000000 
- 17456 4e14 34       		.uleb128 0x34
- 17457 4e15 FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 469
-
-
- 17458 4e19 00000000 		.quad	.LBB1324
- 17458      00000000 
- 17459 4e21 00000000 		.quad	.LBE1324
- 17459      00000000 
- 17460 4e29 03       		.byte	0x3
- 17461 4e2a FE04     		.value	0x4fe
- 17462 4e2c 31       		.uleb128 0x31
- 17463 4e2d 190E0000 		.long	0xe19
- 17464 4e31 03       		.byte	0x3
- 17465 4e32 91       		.byte	0x91
- 17466 4e33 9074     		.sleb128 -1520
- 17467 4e35 31       		.uleb128 0x31
- 17468 4e36 0D0E0000 		.long	0xe0d
- 17469 4e3a 03       		.byte	0x3
- 17470 4e3b 91       		.byte	0x91
- 17471 4e3c A074     		.sleb128 -1504
- 17472 4e3e 34       		.uleb128 0x34
- 17473 4e3f 260E0000 		.long	0xe26
- 17474 4e43 00000000 		.quad	.LBB1326
- 17474      00000000 
- 17475 4e4b 00000000 		.quad	.LBE1326
- 17475      00000000 
- 17476 4e53 03       		.byte	0x3
- 17477 4e54 7501     		.value	0x175
- 17478 4e56 31       		.uleb128 0x31
- 17479 4e57 440E0000 		.long	0xe44
- 17480 4e5b 03       		.byte	0x3
- 17481 4e5c 91       		.byte	0x91
- 17482 4e5d B074     		.sleb128 -1488
- 17483 4e5f 31       		.uleb128 0x31
- 17484 4e60 380E0000 		.long	0xe38
- 17485 4e64 03       		.byte	0x3
- 17486 4e65 91       		.byte	0x91
- 17487 4e66 C074     		.sleb128 -1472
- 17488 4e68 00       		.byte	0x0
- 17489 4e69 00       		.byte	0x0
- 17490 4e6a 00       		.byte	0x0
- 17491 4e6b 00       		.byte	0x0
- 17492 4e6c 34       		.uleb128 0x34
- 17493 4e6d BA0D0000 		.long	0xdba
- 17494 4e71 00000000 		.quad	.LBB1328
- 17494      00000000 
- 17495 4e79 00000000 		.quad	.LBE1328
- 17495      00000000 
- 17496 4e81 03       		.byte	0x3
- 17497 4e82 2106     		.value	0x621
- 17498 4e84 31       		.uleb128 0x31
- 17499 4e85 CC0D0000 		.long	0xdcc
- 17500 4e89 03       		.byte	0x3
- 17501 4e8a 91       		.byte	0x91
- 17502 4e8b D074     		.sleb128 -1456
- 17503 4e8d 32       		.uleb128 0x32
- 17504 4e8e 00000000 		.quad	.LBB1329
- 17504      00000000 
- 17505 4e96 00000000 		.quad	.LBE1329
- 17505      00000000 
- 17506 4e9e 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccPaCTqg.s 			page 470
-
-
- 17507 4e9f D80D0000 		.long	0xdd8
- 17508 4ea3 09       		.byte	0x9
- 17509 4ea4 03       		.byte	0x3
- 17510 4ea5 00000000 		.quad	mask.8002
- 17510      00000000 
- 17511 4ead 34       		.uleb128 0x34
- 17512 4eae FB0D0000 		.long	0xdfb
- 17513 4eb2 00000000 		.quad	.LBB1330
- 17513      00000000 
- 17514 4eba 00000000 		.quad	.LBE1330
- 17514      00000000 
- 17515 4ec2 03       		.byte	0x3
- 17516 4ec3 FE04     		.value	0x4fe
- 17517 4ec5 31       		.uleb128 0x31
- 17518 4ec6 190E0000 		.long	0xe19
- 17519 4eca 03       		.byte	0x3
- 17520 4ecb 91       		.byte	0x91
- 17521 4ecc E074     		.sleb128 -1440
- 17522 4ece 31       		.uleb128 0x31
- 17523 4ecf 0D0E0000 		.long	0xe0d
- 17524 4ed3 03       		.byte	0x3
- 17525 4ed4 91       		.byte	0x91
- 17526 4ed5 F074     		.sleb128 -1424
- 17527 4ed7 34       		.uleb128 0x34
- 17528 4ed8 260E0000 		.long	0xe26
- 17529 4edc 00000000 		.quad	.LBB1332
- 17529      00000000 
- 17530 4ee4 00000000 		.quad	.LBE1332
- 17530      00000000 
- 17531 4eec 03       		.byte	0x3
- 17532 4eed 7501     		.value	0x175
- 17533 4eef 31       		.uleb128 0x31
- 17534 4ef0 440E0000 		.long	0xe44
- 17535 4ef4 03       		.byte	0x3
- 17536 4ef5 91       		.byte	0x91
- 17537 4ef6 8075     		.sleb128 -1408
- 17538 4ef8 31       		.uleb128 0x31
- 17539 4ef9 380E0000 		.long	0xe38
- 17540 4efd 03       		.byte	0x3
- 17541 4efe 91       		.byte	0x91
- 17542 4eff 9075     		.sleb128 -1392
- 17543 4f01 00       		.byte	0x0
- 17544 4f02 00       		.byte	0x0
- 17545 4f03 00       		.byte	0x0
- 17546 4f04 00       		.byte	0x0
- 17547 4f05 00       		.byte	0x0
- 17548 4f06 00       		.byte	0x0
- 17549 4f07 30       		.uleb128 0x30
- 17550 4f08 E30C0000 		.long	0xce3
- 17551 4f0c 00000000 		.quad	.LBB1334
- 17551      00000000 
- 17552 4f14 00000000 		.quad	.LBE1334
- 17552      00000000 
- 17553 4f1c 03       		.byte	0x3
- 17554 4f1d 4207     		.value	0x742
- 17555 4f1f CD4F0000 		.long	0x4fcd
- 17556 4f23 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 471
-
-
- 17557 4f24 010D0000 		.long	0xd01
- 17558 4f28 03       		.byte	0x3
- 17559 4f29 91       		.byte	0x91
- 17560 4f2a AC75     		.sleb128 -1364
- 17561 4f2c 31       		.uleb128 0x31
- 17562 4f2d F50C0000 		.long	0xcf5
- 17563 4f31 03       		.byte	0x3
- 17564 4f32 91       		.byte	0x91
- 17565 4f33 B075     		.sleb128 -1360
- 17566 4f35 32       		.uleb128 0x32
- 17567 4f36 00000000 		.quad	.LBB1335
- 17567      00000000 
- 17568 4f3e 00000000 		.quad	.LBE1335
- 17568      00000000 
- 17569 4f46 33       		.uleb128 0x33
- 17570 4f47 0D0D0000 		.long	0xd0d
- 17571 4f4b 03       		.byte	0x3
- 17572 4f4c 76       		.byte	0x76
- 17573 4f4d E051     		.sleb128 -5920
- 17574 4f4f 30       		.uleb128 0x30
- 17575 4f50 1A0D0000 		.long	0xd1a
- 17576 4f54 00000000 		.quad	.LBB1336
- 17576      00000000 
- 17577 4f5c 00000000 		.quad	.LBE1336
- 17577      00000000 
- 17578 4f64 03       		.byte	0x3
- 17579 4f65 8A06     		.value	0x68a
- 17580 4f67 7E4F0000 		.long	0x4f7e
- 17581 4f6b 31       		.uleb128 0x31
- 17582 4f6c 380D0000 		.long	0xd38
- 17583 4f70 03       		.byte	0x3
- 17584 4f71 91       		.byte	0x91
- 17585 4f72 CC75     		.sleb128 -1332
- 17586 4f74 31       		.uleb128 0x31
- 17587 4f75 2C0D0000 		.long	0xd2c
- 17588 4f79 03       		.byte	0x3
- 17589 4f7a 91       		.byte	0x91
- 17590 4f7b D075     		.sleb128 -1328
- 17591 4f7d 00       		.byte	0x0
- 17592 4f7e 34       		.uleb128 0x34
- 17593 4f7f 450D0000 		.long	0xd45
- 17594 4f83 00000000 		.quad	.LBB1338
- 17594      00000000 
- 17595 4f8b 00000000 		.quad	.LBE1338
- 17595      00000000 
- 17596 4f93 03       		.byte	0x3
- 17597 4f94 8B06     		.value	0x68b
- 17598 4f96 31       		.uleb128 0x31
- 17599 4f97 570D0000 		.long	0xd57
- 17600 4f9b 03       		.byte	0x3
- 17601 4f9c 91       		.byte	0x91
- 17602 4f9d E075     		.sleb128 -1312
- 17603 4f9f 34       		.uleb128 0x34
- 17604 4fa0 640D0000 		.long	0xd64
- 17605 4fa4 00000000 		.quad	.LBB1340
- 17605      00000000 
- 17606 4fac 00000000 		.quad	.LBE1340
-
GAS LISTING /tmp/ccPaCTqg.s 			page 472
-
-
- 17606      00000000 
- 17607 4fb4 03       		.byte	0x3
- 17608 4fb5 4905     		.value	0x549
- 17609 4fb7 31       		.uleb128 0x31
- 17610 4fb8 820D0000 		.long	0xd82
- 17611 4fbc 03       		.byte	0x3
- 17612 4fbd 91       		.byte	0x91
- 17613 4fbe FC75     		.sleb128 -1284
- 17614 4fc0 31       		.uleb128 0x31
- 17615 4fc1 760D0000 		.long	0xd76
- 17616 4fc5 03       		.byte	0x3
- 17617 4fc6 91       		.byte	0x91
- 17618 4fc7 8076     		.sleb128 -1280
- 17619 4fc9 00       		.byte	0x0
- 17620 4fca 00       		.byte	0x0
- 17621 4fcb 00       		.byte	0x0
- 17622 4fcc 00       		.byte	0x0
- 17623 4fcd 30       		.uleb128 0x30
- 17624 4fce 450D0000 		.long	0xd45
- 17625 4fd2 00000000 		.quad	.LBB1342
- 17625      00000000 
- 17626 4fda 00000000 		.quad	.LBE1342
- 17626      00000000 
- 17627 4fe2 03       		.byte	0x3
- 17628 4fe3 4507     		.value	0x745
- 17629 4fe5 1E500000 		.long	0x501e
- 17630 4fe9 31       		.uleb128 0x31
- 17631 4fea 570D0000 		.long	0xd57
- 17632 4fee 03       		.byte	0x3
- 17633 4fef 91       		.byte	0x91
- 17634 4ff0 9076     		.sleb128 -1264
- 17635 4ff2 34       		.uleb128 0x34
- 17636 4ff3 640D0000 		.long	0xd64
- 17637 4ff7 00000000 		.quad	.LBB1344
- 17637      00000000 
- 17638 4fff 00000000 		.quad	.LBE1344
- 17638      00000000 
- 17639 5007 03       		.byte	0x3
- 17640 5008 4905     		.value	0x549
- 17641 500a 31       		.uleb128 0x31
- 17642 500b 820D0000 		.long	0xd82
- 17643 500f 03       		.byte	0x3
- 17644 5010 91       		.byte	0x91
- 17645 5011 AC76     		.sleb128 -1236
- 17646 5013 31       		.uleb128 0x31
- 17647 5014 760D0000 		.long	0xd76
- 17648 5018 03       		.byte	0x3
- 17649 5019 91       		.byte	0x91
- 17650 501a B076     		.sleb128 -1232
- 17651 501c 00       		.byte	0x0
- 17652 501d 00       		.byte	0x0
- 17653 501e 30       		.uleb128 0x30
- 17654 501f BE2B0000 		.long	0x2bbe
- 17655 5023 00000000 		.quad	.LBB1346
- 17655      00000000 
- 17656 502b 00000000 		.quad	.LBE1346
- 17656      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 473
-
-
- 17657 5033 03       		.byte	0x3
- 17658 5034 4D07     		.value	0x74d
- 17659 5036 E4500000 		.long	0x50e4
- 17660 503a 31       		.uleb128 0x31
- 17661 503b DC2B0000 		.long	0x2bdc
- 17662 503f 03       		.byte	0x3
- 17663 5040 91       		.byte	0x91
- 17664 5041 CC76     		.sleb128 -1204
- 17665 5043 31       		.uleb128 0x31
- 17666 5044 D02B0000 		.long	0x2bd0
- 17667 5048 03       		.byte	0x3
- 17668 5049 91       		.byte	0x91
- 17669 504a D076     		.sleb128 -1200
- 17670 504c 32       		.uleb128 0x32
- 17671 504d 00000000 		.quad	.LBB1347
- 17671      00000000 
- 17672 5055 00000000 		.quad	.LBE1347
- 17672      00000000 
- 17673 505d 33       		.uleb128 0x33
- 17674 505e E82B0000 		.long	0x2be8
- 17675 5062 03       		.byte	0x3
- 17676 5063 76       		.byte	0x76
- 17677 5064 F051     		.sleb128 -5904
- 17678 5066 30       		.uleb128 0x30
- 17679 5067 1A0D0000 		.long	0xd1a
- 17680 506b 00000000 		.quad	.LBB1348
- 17680      00000000 
- 17681 5073 00000000 		.quad	.LBE1348
- 17681      00000000 
- 17682 507b 03       		.byte	0x3
- 17683 507c 5606     		.value	0x656
- 17684 507e 95500000 		.long	0x5095
- 17685 5082 31       		.uleb128 0x31
- 17686 5083 380D0000 		.long	0xd38
- 17687 5087 03       		.byte	0x3
- 17688 5088 91       		.byte	0x91
- 17689 5089 EC76     		.sleb128 -1172
- 17690 508b 31       		.uleb128 0x31
- 17691 508c 2C0D0000 		.long	0xd2c
- 17692 5090 03       		.byte	0x3
- 17693 5091 91       		.byte	0x91
- 17694 5092 F076     		.sleb128 -1168
- 17695 5094 00       		.byte	0x0
- 17696 5095 34       		.uleb128 0x34
- 17697 5096 F52B0000 		.long	0x2bf5
- 17698 509a 00000000 		.quad	.LBB1350
- 17698      00000000 
- 17699 50a2 00000000 		.quad	.LBE1350
- 17699      00000000 
- 17700 50aa 03       		.byte	0x3
- 17701 50ab 5706     		.value	0x657
- 17702 50ad 31       		.uleb128 0x31
- 17703 50ae 072C0000 		.long	0x2c07
- 17704 50b2 03       		.byte	0x3
- 17705 50b3 91       		.byte	0x91
- 17706 50b4 8077     		.sleb128 -1152
- 17707 50b6 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 474
-
-
- 17708 50b7 640D0000 		.long	0xd64
- 17709 50bb 00000000 		.quad	.LBB1352
- 17709      00000000 
- 17710 50c3 00000000 		.quad	.LBE1352
- 17710      00000000 
- 17711 50cb 03       		.byte	0x3
- 17712 50cc 8105     		.value	0x581
- 17713 50ce 31       		.uleb128 0x31
- 17714 50cf 820D0000 		.long	0xd82
- 17715 50d3 03       		.byte	0x3
- 17716 50d4 91       		.byte	0x91
- 17717 50d5 9C77     		.sleb128 -1124
- 17718 50d7 31       		.uleb128 0x31
- 17719 50d8 760D0000 		.long	0xd76
- 17720 50dc 03       		.byte	0x3
- 17721 50dd 91       		.byte	0x91
- 17722 50de A077     		.sleb128 -1120
- 17723 50e0 00       		.byte	0x0
- 17724 50e1 00       		.byte	0x0
- 17725 50e2 00       		.byte	0x0
- 17726 50e3 00       		.byte	0x0
- 17727 50e4 30       		.uleb128 0x30
- 17728 50e5 8F0D0000 		.long	0xd8f
- 17729 50e9 00000000 		.quad	.LBB1354
- 17729      00000000 
- 17730 50f1 00000000 		.quad	.LBE1354
- 17730      00000000 
- 17731 50f9 03       		.byte	0x3
- 17732 50fa 4F07     		.value	0x74f
- 17733 50fc F8520000 		.long	0x52f8
- 17734 5100 31       		.uleb128 0x31
- 17735 5101 A10D0000 		.long	0xda1
- 17736 5105 03       		.byte	0x3
- 17737 5106 91       		.byte	0x91
- 17738 5107 B077     		.sleb128 -1104
- 17739 5109 32       		.uleb128 0x32
- 17740 510a 00000000 		.quad	.LBB1355
- 17740      00000000 
- 17741 5112 00000000 		.quad	.LBE1355
- 17741      00000000 
- 17742 511a 33       		.uleb128 0x33
- 17743 511b AD0D0000 		.long	0xdad
- 17744 511f 03       		.byte	0x3
- 17745 5120 76       		.byte	0x76
- 17746 5121 8052     		.sleb128 -5888
- 17747 5123 30       		.uleb128 0x30
- 17748 5124 BA0D0000 		.long	0xdba
- 17749 5128 00000000 		.quad	.LBB1356
- 17749      00000000 
- 17750 5130 00000000 		.quad	.LBE1356
- 17750      00000000 
- 17751 5138 03       		.byte	0x3
- 17752 5139 1F06     		.value	0x61f
- 17753 513b C0510000 		.long	0x51c0
- 17754 513f 31       		.uleb128 0x31
- 17755 5140 CC0D0000 		.long	0xdcc
- 17756 5144 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 475
-
-
- 17757 5145 91       		.byte	0x91
- 17758 5146 C077     		.sleb128 -1088
- 17759 5148 32       		.uleb128 0x32
- 17760 5149 00000000 		.quad	.LBB1357
- 17760      00000000 
- 17761 5151 00000000 		.quad	.LBE1357
- 17761      00000000 
- 17762 5159 33       		.uleb128 0x33
- 17763 515a D80D0000 		.long	0xdd8
- 17764 515e 09       		.byte	0x9
- 17765 515f 03       		.byte	0x3
- 17766 5160 00000000 		.quad	mask.8002
- 17766      00000000 
- 17767 5168 34       		.uleb128 0x34
- 17768 5169 FB0D0000 		.long	0xdfb
- 17769 516d 00000000 		.quad	.LBB1358
- 17769      00000000 
- 17770 5175 00000000 		.quad	.LBE1358
- 17770      00000000 
- 17771 517d 03       		.byte	0x3
- 17772 517e FE04     		.value	0x4fe
- 17773 5180 31       		.uleb128 0x31
- 17774 5181 190E0000 		.long	0xe19
- 17775 5185 03       		.byte	0x3
- 17776 5186 91       		.byte	0x91
- 17777 5187 D077     		.sleb128 -1072
- 17778 5189 31       		.uleb128 0x31
- 17779 518a 0D0E0000 		.long	0xe0d
- 17780 518e 03       		.byte	0x3
- 17781 518f 91       		.byte	0x91
- 17782 5190 E077     		.sleb128 -1056
- 17783 5192 34       		.uleb128 0x34
- 17784 5193 260E0000 		.long	0xe26
- 17785 5197 00000000 		.quad	.LBB1360
- 17785      00000000 
- 17786 519f 00000000 		.quad	.LBE1360
- 17786      00000000 
- 17787 51a7 03       		.byte	0x3
- 17788 51a8 7501     		.value	0x175
- 17789 51aa 31       		.uleb128 0x31
- 17790 51ab 440E0000 		.long	0xe44
- 17791 51af 03       		.byte	0x3
- 17792 51b0 91       		.byte	0x91
- 17793 51b1 F077     		.sleb128 -1040
- 17794 51b3 31       		.uleb128 0x31
- 17795 51b4 380E0000 		.long	0xe38
- 17796 51b8 03       		.byte	0x3
- 17797 51b9 91       		.byte	0x91
- 17798 51ba 8078     		.sleb128 -1024
- 17799 51bc 00       		.byte	0x0
- 17800 51bd 00       		.byte	0x0
- 17801 51be 00       		.byte	0x0
- 17802 51bf 00       		.byte	0x0
- 17803 51c0 30       		.uleb128 0x30
- 17804 51c1 BA0D0000 		.long	0xdba
- 17805 51c5 00000000 		.quad	.LBB1362
- 17805      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 476
-
-
- 17806 51cd 00000000 		.quad	.LBE1362
- 17806      00000000 
- 17807 51d5 03       		.byte	0x3
- 17808 51d6 2006     		.value	0x620
- 17809 51d8 5D520000 		.long	0x525d
- 17810 51dc 31       		.uleb128 0x31
- 17811 51dd CC0D0000 		.long	0xdcc
- 17812 51e1 03       		.byte	0x3
- 17813 51e2 91       		.byte	0x91
- 17814 51e3 9078     		.sleb128 -1008
- 17815 51e5 32       		.uleb128 0x32
- 17816 51e6 00000000 		.quad	.LBB1363
- 17816      00000000 
- 17817 51ee 00000000 		.quad	.LBE1363
- 17817      00000000 
- 17818 51f6 33       		.uleb128 0x33
- 17819 51f7 D80D0000 		.long	0xdd8
- 17820 51fb 09       		.byte	0x9
- 17821 51fc 03       		.byte	0x3
- 17822 51fd 00000000 		.quad	mask.8002
- 17822      00000000 
- 17823 5205 34       		.uleb128 0x34
- 17824 5206 FB0D0000 		.long	0xdfb
- 17825 520a 00000000 		.quad	.LBB1364
- 17825      00000000 
- 17826 5212 00000000 		.quad	.LBE1364
- 17826      00000000 
- 17827 521a 03       		.byte	0x3
- 17828 521b FE04     		.value	0x4fe
- 17829 521d 31       		.uleb128 0x31
- 17830 521e 190E0000 		.long	0xe19
- 17831 5222 03       		.byte	0x3
- 17832 5223 91       		.byte	0x91
- 17833 5224 A078     		.sleb128 -992
- 17834 5226 31       		.uleb128 0x31
- 17835 5227 0D0E0000 		.long	0xe0d
- 17836 522b 03       		.byte	0x3
- 17837 522c 91       		.byte	0x91
- 17838 522d B078     		.sleb128 -976
- 17839 522f 34       		.uleb128 0x34
- 17840 5230 260E0000 		.long	0xe26
- 17841 5234 00000000 		.quad	.LBB1366
- 17841      00000000 
- 17842 523c 00000000 		.quad	.LBE1366
- 17842      00000000 
- 17843 5244 03       		.byte	0x3
- 17844 5245 7501     		.value	0x175
- 17845 5247 31       		.uleb128 0x31
- 17846 5248 440E0000 		.long	0xe44
- 17847 524c 03       		.byte	0x3
- 17848 524d 91       		.byte	0x91
- 17849 524e C078     		.sleb128 -960
- 17850 5250 31       		.uleb128 0x31
- 17851 5251 380E0000 		.long	0xe38
- 17852 5255 03       		.byte	0x3
- 17853 5256 91       		.byte	0x91
- 17854 5257 D078     		.sleb128 -944
-
GAS LISTING /tmp/ccPaCTqg.s 			page 477
-
-
- 17855 5259 00       		.byte	0x0
- 17856 525a 00       		.byte	0x0
- 17857 525b 00       		.byte	0x0
- 17858 525c 00       		.byte	0x0
- 17859 525d 34       		.uleb128 0x34
- 17860 525e BA0D0000 		.long	0xdba
- 17861 5262 00000000 		.quad	.LBB1368
- 17861      00000000 
- 17862 526a 00000000 		.quad	.LBE1368
- 17862      00000000 
- 17863 5272 03       		.byte	0x3
- 17864 5273 2106     		.value	0x621
- 17865 5275 31       		.uleb128 0x31
- 17866 5276 CC0D0000 		.long	0xdcc
- 17867 527a 03       		.byte	0x3
- 17868 527b 91       		.byte	0x91
- 17869 527c E078     		.sleb128 -928
- 17870 527e 32       		.uleb128 0x32
- 17871 527f 00000000 		.quad	.LBB1369
- 17871      00000000 
- 17872 5287 00000000 		.quad	.LBE1369
- 17872      00000000 
- 17873 528f 33       		.uleb128 0x33
- 17874 5290 D80D0000 		.long	0xdd8
- 17875 5294 09       		.byte	0x9
- 17876 5295 03       		.byte	0x3
- 17877 5296 00000000 		.quad	mask.8002
- 17877      00000000 
- 17878 529e 34       		.uleb128 0x34
- 17879 529f FB0D0000 		.long	0xdfb
- 17880 52a3 00000000 		.quad	.LBB1370
- 17880      00000000 
- 17881 52ab 00000000 		.quad	.LBE1370
- 17881      00000000 
- 17882 52b3 03       		.byte	0x3
- 17883 52b4 FE04     		.value	0x4fe
- 17884 52b6 31       		.uleb128 0x31
- 17885 52b7 190E0000 		.long	0xe19
- 17886 52bb 03       		.byte	0x3
- 17887 52bc 91       		.byte	0x91
- 17888 52bd F078     		.sleb128 -912
- 17889 52bf 31       		.uleb128 0x31
- 17890 52c0 0D0E0000 		.long	0xe0d
- 17891 52c4 03       		.byte	0x3
- 17892 52c5 91       		.byte	0x91
- 17893 52c6 8079     		.sleb128 -896
- 17894 52c8 34       		.uleb128 0x34
- 17895 52c9 260E0000 		.long	0xe26
- 17896 52cd 00000000 		.quad	.LBB1372
- 17896      00000000 
- 17897 52d5 00000000 		.quad	.LBE1372
- 17897      00000000 
- 17898 52dd 03       		.byte	0x3
- 17899 52de 7501     		.value	0x175
- 17900 52e0 31       		.uleb128 0x31
- 17901 52e1 440E0000 		.long	0xe44
- 17902 52e5 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 478
-
-
- 17903 52e6 91       		.byte	0x91
- 17904 52e7 9079     		.sleb128 -880
- 17905 52e9 31       		.uleb128 0x31
- 17906 52ea 380E0000 		.long	0xe38
- 17907 52ee 03       		.byte	0x3
- 17908 52ef 91       		.byte	0x91
- 17909 52f0 A079     		.sleb128 -864
- 17910 52f2 00       		.byte	0x0
- 17911 52f3 00       		.byte	0x0
- 17912 52f4 00       		.byte	0x0
- 17913 52f5 00       		.byte	0x0
- 17914 52f6 00       		.byte	0x0
- 17915 52f7 00       		.byte	0x0
- 17916 52f8 30       		.uleb128 0x30
- 17917 52f9 8F0D0000 		.long	0xd8f
- 17918 52fd 00000000 		.quad	.LBB1374
- 17918      00000000 
- 17919 5305 00000000 		.quad	.LBE1374
- 17919      00000000 
- 17920 530d 03       		.byte	0x3
- 17921 530e 5007     		.value	0x750
- 17922 5310 0C550000 		.long	0x550c
- 17923 5314 31       		.uleb128 0x31
- 17924 5315 A10D0000 		.long	0xda1
- 17925 5319 03       		.byte	0x3
- 17926 531a 91       		.byte	0x91
- 17927 531b B079     		.sleb128 -848
- 17928 531d 32       		.uleb128 0x32
- 17929 531e 00000000 		.quad	.LBB1375
- 17929      00000000 
- 17930 5326 00000000 		.quad	.LBE1375
- 17930      00000000 
- 17931 532e 33       		.uleb128 0x33
- 17932 532f AD0D0000 		.long	0xdad
- 17933 5333 03       		.byte	0x3
- 17934 5334 76       		.byte	0x76
- 17935 5335 9052     		.sleb128 -5872
- 17936 5337 30       		.uleb128 0x30
- 17937 5338 BA0D0000 		.long	0xdba
- 17938 533c 00000000 		.quad	.LBB1376
- 17938      00000000 
- 17939 5344 00000000 		.quad	.LBE1376
- 17939      00000000 
- 17940 534c 03       		.byte	0x3
- 17941 534d 1F06     		.value	0x61f
- 17942 534f D4530000 		.long	0x53d4
- 17943 5353 31       		.uleb128 0x31
- 17944 5354 CC0D0000 		.long	0xdcc
- 17945 5358 03       		.byte	0x3
- 17946 5359 91       		.byte	0x91
- 17947 535a C079     		.sleb128 -832
- 17948 535c 32       		.uleb128 0x32
- 17949 535d 00000000 		.quad	.LBB1377
- 17949      00000000 
- 17950 5365 00000000 		.quad	.LBE1377
- 17950      00000000 
- 17951 536d 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccPaCTqg.s 			page 479
-
-
- 17952 536e D80D0000 		.long	0xdd8
- 17953 5372 09       		.byte	0x9
- 17954 5373 03       		.byte	0x3
- 17955 5374 00000000 		.quad	mask.8002
- 17955      00000000 
- 17956 537c 34       		.uleb128 0x34
- 17957 537d FB0D0000 		.long	0xdfb
- 17958 5381 00000000 		.quad	.LBB1378
- 17958      00000000 
- 17959 5389 00000000 		.quad	.LBE1378
- 17959      00000000 
- 17960 5391 03       		.byte	0x3
- 17961 5392 FE04     		.value	0x4fe
- 17962 5394 31       		.uleb128 0x31
- 17963 5395 190E0000 		.long	0xe19
- 17964 5399 03       		.byte	0x3
- 17965 539a 91       		.byte	0x91
- 17966 539b D079     		.sleb128 -816
- 17967 539d 31       		.uleb128 0x31
- 17968 539e 0D0E0000 		.long	0xe0d
- 17969 53a2 03       		.byte	0x3
- 17970 53a3 91       		.byte	0x91
- 17971 53a4 E079     		.sleb128 -800
- 17972 53a6 34       		.uleb128 0x34
- 17973 53a7 260E0000 		.long	0xe26
- 17974 53ab 00000000 		.quad	.LBB1380
- 17974      00000000 
- 17975 53b3 00000000 		.quad	.LBE1380
- 17975      00000000 
- 17976 53bb 03       		.byte	0x3
- 17977 53bc 7501     		.value	0x175
- 17978 53be 31       		.uleb128 0x31
- 17979 53bf 440E0000 		.long	0xe44
- 17980 53c3 03       		.byte	0x3
- 17981 53c4 91       		.byte	0x91
- 17982 53c5 F079     		.sleb128 -784
- 17983 53c7 31       		.uleb128 0x31
- 17984 53c8 380E0000 		.long	0xe38
- 17985 53cc 03       		.byte	0x3
- 17986 53cd 91       		.byte	0x91
- 17987 53ce 807A     		.sleb128 -768
- 17988 53d0 00       		.byte	0x0
- 17989 53d1 00       		.byte	0x0
- 17990 53d2 00       		.byte	0x0
- 17991 53d3 00       		.byte	0x0
- 17992 53d4 30       		.uleb128 0x30
- 17993 53d5 BA0D0000 		.long	0xdba
- 17994 53d9 00000000 		.quad	.LBB1382
- 17994      00000000 
- 17995 53e1 00000000 		.quad	.LBE1382
- 17995      00000000 
- 17996 53e9 03       		.byte	0x3
- 17997 53ea 2006     		.value	0x620
- 17998 53ec 71540000 		.long	0x5471
- 17999 53f0 31       		.uleb128 0x31
- 18000 53f1 CC0D0000 		.long	0xdcc
- 18001 53f5 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 480
-
-
- 18002 53f6 91       		.byte	0x91
- 18003 53f7 907A     		.sleb128 -752
- 18004 53f9 32       		.uleb128 0x32
- 18005 53fa 00000000 		.quad	.LBB1383
- 18005      00000000 
- 18006 5402 00000000 		.quad	.LBE1383
- 18006      00000000 
- 18007 540a 33       		.uleb128 0x33
- 18008 540b D80D0000 		.long	0xdd8
- 18009 540f 09       		.byte	0x9
- 18010 5410 03       		.byte	0x3
- 18011 5411 00000000 		.quad	mask.8002
- 18011      00000000 
- 18012 5419 34       		.uleb128 0x34
- 18013 541a FB0D0000 		.long	0xdfb
- 18014 541e 00000000 		.quad	.LBB1384
- 18014      00000000 
- 18015 5426 00000000 		.quad	.LBE1384
- 18015      00000000 
- 18016 542e 03       		.byte	0x3
- 18017 542f FE04     		.value	0x4fe
- 18018 5431 31       		.uleb128 0x31
- 18019 5432 190E0000 		.long	0xe19
- 18020 5436 03       		.byte	0x3
- 18021 5437 91       		.byte	0x91
- 18022 5438 A07A     		.sleb128 -736
- 18023 543a 31       		.uleb128 0x31
- 18024 543b 0D0E0000 		.long	0xe0d
- 18025 543f 03       		.byte	0x3
- 18026 5440 91       		.byte	0x91
- 18027 5441 B07A     		.sleb128 -720
- 18028 5443 34       		.uleb128 0x34
- 18029 5444 260E0000 		.long	0xe26
- 18030 5448 00000000 		.quad	.LBB1386
- 18030      00000000 
- 18031 5450 00000000 		.quad	.LBE1386
- 18031      00000000 
- 18032 5458 03       		.byte	0x3
- 18033 5459 7501     		.value	0x175
- 18034 545b 31       		.uleb128 0x31
- 18035 545c 440E0000 		.long	0xe44
- 18036 5460 03       		.byte	0x3
- 18037 5461 91       		.byte	0x91
- 18038 5462 C07A     		.sleb128 -704
- 18039 5464 31       		.uleb128 0x31
- 18040 5465 380E0000 		.long	0xe38
- 18041 5469 03       		.byte	0x3
- 18042 546a 91       		.byte	0x91
- 18043 546b D07A     		.sleb128 -688
- 18044 546d 00       		.byte	0x0
- 18045 546e 00       		.byte	0x0
- 18046 546f 00       		.byte	0x0
- 18047 5470 00       		.byte	0x0
- 18048 5471 34       		.uleb128 0x34
- 18049 5472 BA0D0000 		.long	0xdba
- 18050 5476 00000000 		.quad	.LBB1388
- 18050      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 481
-
-
- 18051 547e 00000000 		.quad	.LBE1388
- 18051      00000000 
- 18052 5486 03       		.byte	0x3
- 18053 5487 2106     		.value	0x621
- 18054 5489 31       		.uleb128 0x31
- 18055 548a CC0D0000 		.long	0xdcc
- 18056 548e 03       		.byte	0x3
- 18057 548f 91       		.byte	0x91
- 18058 5490 E07A     		.sleb128 -672
- 18059 5492 32       		.uleb128 0x32
- 18060 5493 00000000 		.quad	.LBB1389
- 18060      00000000 
- 18061 549b 00000000 		.quad	.LBE1389
- 18061      00000000 
- 18062 54a3 33       		.uleb128 0x33
- 18063 54a4 D80D0000 		.long	0xdd8
- 18064 54a8 09       		.byte	0x9
- 18065 54a9 03       		.byte	0x3
- 18066 54aa 00000000 		.quad	mask.8002
- 18066      00000000 
- 18067 54b2 34       		.uleb128 0x34
- 18068 54b3 FB0D0000 		.long	0xdfb
- 18069 54b7 00000000 		.quad	.LBB1390
- 18069      00000000 
- 18070 54bf 00000000 		.quad	.LBE1390
- 18070      00000000 
- 18071 54c7 03       		.byte	0x3
- 18072 54c8 FE04     		.value	0x4fe
- 18073 54ca 31       		.uleb128 0x31
- 18074 54cb 190E0000 		.long	0xe19
- 18075 54cf 03       		.byte	0x3
- 18076 54d0 91       		.byte	0x91
- 18077 54d1 F07A     		.sleb128 -656
- 18078 54d3 31       		.uleb128 0x31
- 18079 54d4 0D0E0000 		.long	0xe0d
- 18080 54d8 03       		.byte	0x3
- 18081 54d9 91       		.byte	0x91
- 18082 54da 807B     		.sleb128 -640
- 18083 54dc 34       		.uleb128 0x34
- 18084 54dd 260E0000 		.long	0xe26
- 18085 54e1 00000000 		.quad	.LBB1392
- 18085      00000000 
- 18086 54e9 00000000 		.quad	.LBE1392
- 18086      00000000 
- 18087 54f1 03       		.byte	0x3
- 18088 54f2 7501     		.value	0x175
- 18089 54f4 31       		.uleb128 0x31
- 18090 54f5 440E0000 		.long	0xe44
- 18091 54f9 03       		.byte	0x3
- 18092 54fa 91       		.byte	0x91
- 18093 54fb 907B     		.sleb128 -624
- 18094 54fd 31       		.uleb128 0x31
- 18095 54fe 380E0000 		.long	0xe38
- 18096 5502 03       		.byte	0x3
- 18097 5503 91       		.byte	0x91
- 18098 5504 A07B     		.sleb128 -608
- 18099 5506 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 482
-
-
- 18100 5507 00       		.byte	0x0
- 18101 5508 00       		.byte	0x0
- 18102 5509 00       		.byte	0x0
- 18103 550a 00       		.byte	0x0
- 18104 550b 00       		.byte	0x0
- 18105 550c 30       		.uleb128 0x30
- 18106 550d 450D0000 		.long	0xd45
- 18107 5511 00000000 		.quad	.LBB1394
- 18107      00000000 
- 18108 5519 00000000 		.quad	.LBE1394
- 18108      00000000 
- 18109 5521 03       		.byte	0x3
- 18110 5522 5207     		.value	0x752
- 18111 5524 5D550000 		.long	0x555d
- 18112 5528 31       		.uleb128 0x31
- 18113 5529 570D0000 		.long	0xd57
- 18114 552d 03       		.byte	0x3
- 18115 552e 91       		.byte	0x91
- 18116 552f B07B     		.sleb128 -592
- 18117 5531 34       		.uleb128 0x34
- 18118 5532 640D0000 		.long	0xd64
- 18119 5536 00000000 		.quad	.LBB1396
- 18119      00000000 
- 18120 553e 00000000 		.quad	.LBE1396
- 18120      00000000 
- 18121 5546 03       		.byte	0x3
- 18122 5547 4905     		.value	0x549
- 18123 5549 31       		.uleb128 0x31
- 18124 554a 820D0000 		.long	0xd82
- 18125 554e 03       		.byte	0x3
- 18126 554f 91       		.byte	0x91
- 18127 5550 CC7B     		.sleb128 -564
- 18128 5552 31       		.uleb128 0x31
- 18129 5553 760D0000 		.long	0xd76
- 18130 5557 03       		.byte	0x3
- 18131 5558 91       		.byte	0x91
- 18132 5559 D07B     		.sleb128 -560
- 18133 555b 00       		.byte	0x0
- 18134 555c 00       		.byte	0x0
- 18135 555d 30       		.uleb128 0x30
- 18136 555e 142C0000 		.long	0x2c14
- 18137 5562 00000000 		.quad	.LBB1398
- 18137      00000000 
- 18138 556a 00000000 		.quad	.LBE1398
- 18138      00000000 
- 18139 5572 03       		.byte	0x3
- 18140 5573 5407     		.value	0x754
- 18141 5575 C0550000 		.long	0x55c0
- 18142 5579 31       		.uleb128 0x31
- 18143 557a 302C0000 		.long	0x2c30
- 18144 557e 03       		.byte	0x3
- 18145 557f 91       		.byte	0x91
- 18146 5580 E07B     		.sleb128 -544
- 18147 5582 31       		.uleb128 0x31
- 18148 5583 262C0000 		.long	0x2c26
- 18149 5587 03       		.byte	0x3
- 18150 5588 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 483
-
-
- 18151 5589 F07B     		.sleb128 -528
- 18152 558b 34       		.uleb128 0x34
- 18153 558c 3B2C0000 		.long	0x2c3b
- 18154 5590 00000000 		.quad	.LBB1400
- 18154      00000000 
- 18155 5598 00000000 		.quad	.LBE1400
- 18155      00000000 
- 18156 55a0 03       		.byte	0x3
- 18157 55a1 BA05     		.value	0x5ba
- 18158 55a3 31       		.uleb128 0x31
- 18159 55a4 652C0000 		.long	0x2c65
- 18160 55a8 03       		.byte	0x3
- 18161 55a9 91       		.byte	0x91
- 18162 55aa 8C7C     		.sleb128 -500
- 18163 55ac 31       		.uleb128 0x31
- 18164 55ad 592C0000 		.long	0x2c59
- 18165 55b1 03       		.byte	0x3
- 18166 55b2 91       		.byte	0x91
- 18167 55b3 907C     		.sleb128 -496
- 18168 55b5 31       		.uleb128 0x31
- 18169 55b6 4D2C0000 		.long	0x2c4d
- 18170 55ba 03       		.byte	0x3
- 18171 55bb 91       		.byte	0x91
- 18172 55bc A07C     		.sleb128 -480
- 18173 55be 00       		.byte	0x0
- 18174 55bf 00       		.byte	0x0
- 18175 55c0 30       		.uleb128 0x30
- 18176 55c1 722C0000 		.long	0x2c72
- 18177 55c5 00000000 		.quad	.LBB1402
- 18177      00000000 
- 18178 55cd 00000000 		.quad	.LBE1402
- 18178      00000000 
- 18179 55d5 03       		.byte	0x3
- 18180 55d6 5607     		.value	0x756
- 18181 55d8 23560000 		.long	0x5623
- 18182 55dc 31       		.uleb128 0x31
- 18183 55dd 8E2C0000 		.long	0x2c8e
- 18184 55e1 03       		.byte	0x3
- 18185 55e2 91       		.byte	0x91
- 18186 55e3 B07C     		.sleb128 -464
- 18187 55e5 31       		.uleb128 0x31
- 18188 55e6 842C0000 		.long	0x2c84
- 18189 55ea 03       		.byte	0x3
- 18190 55eb 91       		.byte	0x91
- 18191 55ec C07C     		.sleb128 -448
- 18192 55ee 34       		.uleb128 0x34
- 18193 55ef 3B2C0000 		.long	0x2c3b
- 18194 55f3 00000000 		.quad	.LBB1404
- 18194      00000000 
- 18195 55fb 00000000 		.quad	.LBE1404
- 18195      00000000 
- 18196 5603 03       		.byte	0x3
- 18197 5604 DA05     		.value	0x5da
- 18198 5606 31       		.uleb128 0x31
- 18199 5607 652C0000 		.long	0x2c65
- 18200 560b 03       		.byte	0x3
- 18201 560c 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 484
-
-
- 18202 560d DC7C     		.sleb128 -420
- 18203 560f 31       		.uleb128 0x31
- 18204 5610 592C0000 		.long	0x2c59
- 18205 5614 03       		.byte	0x3
- 18206 5615 91       		.byte	0x91
- 18207 5616 E07C     		.sleb128 -416
- 18208 5618 31       		.uleb128 0x31
- 18209 5619 4D2C0000 		.long	0x2c4d
- 18210 561d 03       		.byte	0x3
- 18211 561e 91       		.byte	0x91
- 18212 561f F07C     		.sleb128 -400
- 18213 5621 00       		.byte	0x0
- 18214 5622 00       		.byte	0x0
- 18215 5623 30       		.uleb128 0x30
- 18216 5624 8F0D0000 		.long	0xd8f
- 18217 5628 00000000 		.quad	.LBB1406
- 18217      00000000 
- 18218 5630 00000000 		.quad	.LBE1406
- 18218      00000000 
- 18219 5638 03       		.byte	0x3
- 18220 5639 5A07     		.value	0x75a
- 18221 563b 37580000 		.long	0x5837
- 18222 563f 31       		.uleb128 0x31
- 18223 5640 A10D0000 		.long	0xda1
- 18224 5644 03       		.byte	0x3
- 18225 5645 91       		.byte	0x91
- 18226 5646 807D     		.sleb128 -384
- 18227 5648 32       		.uleb128 0x32
- 18228 5649 00000000 		.quad	.LBB1407
- 18228      00000000 
- 18229 5651 00000000 		.quad	.LBE1407
- 18229      00000000 
- 18230 5659 33       		.uleb128 0x33
- 18231 565a AD0D0000 		.long	0xdad
- 18232 565e 03       		.byte	0x3
- 18233 565f 76       		.byte	0x76
- 18234 5660 A052     		.sleb128 -5856
- 18235 5662 30       		.uleb128 0x30
- 18236 5663 BA0D0000 		.long	0xdba
- 18237 5667 00000000 		.quad	.LBB1408
- 18237      00000000 
- 18238 566f 00000000 		.quad	.LBE1408
- 18238      00000000 
- 18239 5677 03       		.byte	0x3
- 18240 5678 1F06     		.value	0x61f
- 18241 567a FF560000 		.long	0x56ff
- 18242 567e 31       		.uleb128 0x31
- 18243 567f CC0D0000 		.long	0xdcc
- 18244 5683 03       		.byte	0x3
- 18245 5684 91       		.byte	0x91
- 18246 5685 907D     		.sleb128 -368
- 18247 5687 32       		.uleb128 0x32
- 18248 5688 00000000 		.quad	.LBB1409
- 18248      00000000 
- 18249 5690 00000000 		.quad	.LBE1409
- 18249      00000000 
- 18250 5698 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccPaCTqg.s 			page 485
-
-
- 18251 5699 D80D0000 		.long	0xdd8
- 18252 569d 09       		.byte	0x9
- 18253 569e 03       		.byte	0x3
- 18254 569f 00000000 		.quad	mask.8002
- 18254      00000000 
- 18255 56a7 34       		.uleb128 0x34
- 18256 56a8 FB0D0000 		.long	0xdfb
- 18257 56ac 00000000 		.quad	.LBB1410
- 18257      00000000 
- 18258 56b4 00000000 		.quad	.LBE1410
- 18258      00000000 
- 18259 56bc 03       		.byte	0x3
- 18260 56bd FE04     		.value	0x4fe
- 18261 56bf 31       		.uleb128 0x31
- 18262 56c0 190E0000 		.long	0xe19
- 18263 56c4 03       		.byte	0x3
- 18264 56c5 91       		.byte	0x91
- 18265 56c6 A07D     		.sleb128 -352
- 18266 56c8 31       		.uleb128 0x31
- 18267 56c9 0D0E0000 		.long	0xe0d
- 18268 56cd 03       		.byte	0x3
- 18269 56ce 91       		.byte	0x91
- 18270 56cf B07D     		.sleb128 -336
- 18271 56d1 34       		.uleb128 0x34
- 18272 56d2 260E0000 		.long	0xe26
- 18273 56d6 00000000 		.quad	.LBB1412
- 18273      00000000 
- 18274 56de 00000000 		.quad	.LBE1412
- 18274      00000000 
- 18275 56e6 03       		.byte	0x3
- 18276 56e7 7501     		.value	0x175
- 18277 56e9 31       		.uleb128 0x31
- 18278 56ea 440E0000 		.long	0xe44
- 18279 56ee 03       		.byte	0x3
- 18280 56ef 91       		.byte	0x91
- 18281 56f0 C07D     		.sleb128 -320
- 18282 56f2 31       		.uleb128 0x31
- 18283 56f3 380E0000 		.long	0xe38
- 18284 56f7 03       		.byte	0x3
- 18285 56f8 91       		.byte	0x91
- 18286 56f9 D07D     		.sleb128 -304
- 18287 56fb 00       		.byte	0x0
- 18288 56fc 00       		.byte	0x0
- 18289 56fd 00       		.byte	0x0
- 18290 56fe 00       		.byte	0x0
- 18291 56ff 30       		.uleb128 0x30
- 18292 5700 BA0D0000 		.long	0xdba
- 18293 5704 00000000 		.quad	.LBB1414
- 18293      00000000 
- 18294 570c 00000000 		.quad	.LBE1414
- 18294      00000000 
- 18295 5714 03       		.byte	0x3
- 18296 5715 2006     		.value	0x620
- 18297 5717 9C570000 		.long	0x579c
- 18298 571b 31       		.uleb128 0x31
- 18299 571c CC0D0000 		.long	0xdcc
- 18300 5720 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 486
-
-
- 18301 5721 91       		.byte	0x91
- 18302 5722 E07D     		.sleb128 -288
- 18303 5724 32       		.uleb128 0x32
- 18304 5725 00000000 		.quad	.LBB1415
- 18304      00000000 
- 18305 572d 00000000 		.quad	.LBE1415
- 18305      00000000 
- 18306 5735 33       		.uleb128 0x33
- 18307 5736 D80D0000 		.long	0xdd8
- 18308 573a 09       		.byte	0x9
- 18309 573b 03       		.byte	0x3
- 18310 573c 00000000 		.quad	mask.8002
- 18310      00000000 
- 18311 5744 34       		.uleb128 0x34
- 18312 5745 FB0D0000 		.long	0xdfb
- 18313 5749 00000000 		.quad	.LBB1416
- 18313      00000000 
- 18314 5751 00000000 		.quad	.LBE1416
- 18314      00000000 
- 18315 5759 03       		.byte	0x3
- 18316 575a FE04     		.value	0x4fe
- 18317 575c 31       		.uleb128 0x31
- 18318 575d 190E0000 		.long	0xe19
- 18319 5761 03       		.byte	0x3
- 18320 5762 91       		.byte	0x91
- 18321 5763 F07D     		.sleb128 -272
- 18322 5765 31       		.uleb128 0x31
- 18323 5766 0D0E0000 		.long	0xe0d
- 18324 576a 03       		.byte	0x3
- 18325 576b 91       		.byte	0x91
- 18326 576c 807E     		.sleb128 -256
- 18327 576e 34       		.uleb128 0x34
- 18328 576f 260E0000 		.long	0xe26
- 18329 5773 00000000 		.quad	.LBB1418
- 18329      00000000 
- 18330 577b 00000000 		.quad	.LBE1418
- 18330      00000000 
- 18331 5783 03       		.byte	0x3
- 18332 5784 7501     		.value	0x175
- 18333 5786 31       		.uleb128 0x31
- 18334 5787 440E0000 		.long	0xe44
- 18335 578b 03       		.byte	0x3
- 18336 578c 91       		.byte	0x91
- 18337 578d 907E     		.sleb128 -240
- 18338 578f 31       		.uleb128 0x31
- 18339 5790 380E0000 		.long	0xe38
- 18340 5794 03       		.byte	0x3
- 18341 5795 91       		.byte	0x91
- 18342 5796 A07E     		.sleb128 -224
- 18343 5798 00       		.byte	0x0
- 18344 5799 00       		.byte	0x0
- 18345 579a 00       		.byte	0x0
- 18346 579b 00       		.byte	0x0
- 18347 579c 34       		.uleb128 0x34
- 18348 579d BA0D0000 		.long	0xdba
- 18349 57a1 00000000 		.quad	.LBB1420
- 18349      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 487
-
-
- 18350 57a9 00000000 		.quad	.LBE1420
- 18350      00000000 
- 18351 57b1 03       		.byte	0x3
- 18352 57b2 2106     		.value	0x621
- 18353 57b4 31       		.uleb128 0x31
- 18354 57b5 CC0D0000 		.long	0xdcc
- 18355 57b9 03       		.byte	0x3
- 18356 57ba 91       		.byte	0x91
- 18357 57bb B07E     		.sleb128 -208
- 18358 57bd 32       		.uleb128 0x32
- 18359 57be 00000000 		.quad	.LBB1421
- 18359      00000000 
- 18360 57c6 00000000 		.quad	.LBE1421
- 18360      00000000 
- 18361 57ce 33       		.uleb128 0x33
- 18362 57cf D80D0000 		.long	0xdd8
- 18363 57d3 09       		.byte	0x9
- 18364 57d4 03       		.byte	0x3
- 18365 57d5 00000000 		.quad	mask.8002
- 18365      00000000 
- 18366 57dd 34       		.uleb128 0x34
- 18367 57de FB0D0000 		.long	0xdfb
- 18368 57e2 00000000 		.quad	.LBB1422
- 18368      00000000 
- 18369 57ea 00000000 		.quad	.LBE1422
- 18369      00000000 
- 18370 57f2 03       		.byte	0x3
- 18371 57f3 FE04     		.value	0x4fe
- 18372 57f5 31       		.uleb128 0x31
- 18373 57f6 190E0000 		.long	0xe19
- 18374 57fa 03       		.byte	0x3
- 18375 57fb 91       		.byte	0x91
- 18376 57fc C07E     		.sleb128 -192
- 18377 57fe 31       		.uleb128 0x31
- 18378 57ff 0D0E0000 		.long	0xe0d
- 18379 5803 03       		.byte	0x3
- 18380 5804 91       		.byte	0x91
- 18381 5805 D07E     		.sleb128 -176
- 18382 5807 34       		.uleb128 0x34
- 18383 5808 260E0000 		.long	0xe26
- 18384 580c 00000000 		.quad	.LBB1424
- 18384      00000000 
- 18385 5814 00000000 		.quad	.LBE1424
- 18385      00000000 
- 18386 581c 03       		.byte	0x3
- 18387 581d 7501     		.value	0x175
- 18388 581f 31       		.uleb128 0x31
- 18389 5820 440E0000 		.long	0xe44
- 18390 5824 03       		.byte	0x3
- 18391 5825 91       		.byte	0x91
- 18392 5826 E07E     		.sleb128 -160
- 18393 5828 31       		.uleb128 0x31
- 18394 5829 380E0000 		.long	0xe38
- 18395 582d 03       		.byte	0x3
- 18396 582e 91       		.byte	0x91
- 18397 582f F07E     		.sleb128 -144
- 18398 5831 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 488
-
-
- 18399 5832 00       		.byte	0x0
- 18400 5833 00       		.byte	0x0
- 18401 5834 00       		.byte	0x0
- 18402 5835 00       		.byte	0x0
- 18403 5836 00       		.byte	0x0
- 18404 5837 34       		.uleb128 0x34
- 18405 5838 E30C0000 		.long	0xce3
- 18406 583c 00000000 		.quad	.LBB1426
- 18406      00000000 
- 18407 5844 00000000 		.quad	.LBE1426
- 18407      00000000 
- 18408 584c 03       		.byte	0x3
- 18409 584d 5B07     		.value	0x75b
- 18410 584f 31       		.uleb128 0x31
- 18411 5850 010D0000 		.long	0xd01
- 18412 5854 03       		.byte	0x3
- 18413 5855 91       		.byte	0x91
- 18414 5856 8C7F     		.sleb128 -116
- 18415 5858 31       		.uleb128 0x31
- 18416 5859 F50C0000 		.long	0xcf5
- 18417 585d 03       		.byte	0x3
- 18418 585e 91       		.byte	0x91
- 18419 585f 907F     		.sleb128 -112
- 18420 5861 32       		.uleb128 0x32
- 18421 5862 00000000 		.quad	.LBB1427
- 18421      00000000 
- 18422 586a 00000000 		.quad	.LBE1427
- 18422      00000000 
- 18423 5872 33       		.uleb128 0x33
- 18424 5873 0D0D0000 		.long	0xd0d
- 18425 5877 03       		.byte	0x3
- 18426 5878 76       		.byte	0x76
- 18427 5879 B052     		.sleb128 -5840
- 18428 587b 30       		.uleb128 0x30
- 18429 587c 1A0D0000 		.long	0xd1a
- 18430 5880 00000000 		.quad	.LBB1428
- 18430      00000000 
- 18431 5888 00000000 		.quad	.LBE1428
- 18431      00000000 
- 18432 5890 03       		.byte	0x3
- 18433 5891 8A06     		.value	0x68a
- 18434 5893 AA580000 		.long	0x58aa
- 18435 5897 31       		.uleb128 0x31
- 18436 5898 380D0000 		.long	0xd38
- 18437 589c 03       		.byte	0x3
- 18438 589d 91       		.byte	0x91
- 18439 589e AC7F     		.sleb128 -84
- 18440 58a0 31       		.uleb128 0x31
- 18441 58a1 2C0D0000 		.long	0xd2c
- 18442 58a5 03       		.byte	0x3
- 18443 58a6 91       		.byte	0x91
- 18444 58a7 B07F     		.sleb128 -80
- 18445 58a9 00       		.byte	0x0
- 18446 58aa 34       		.uleb128 0x34
- 18447 58ab 450D0000 		.long	0xd45
- 18448 58af 00000000 		.quad	.LBB1430
- 18448      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 489
-
-
- 18449 58b7 00000000 		.quad	.LBE1430
- 18449      00000000 
- 18450 58bf 03       		.byte	0x3
- 18451 58c0 8B06     		.value	0x68b
- 18452 58c2 31       		.uleb128 0x31
- 18453 58c3 570D0000 		.long	0xd57
- 18454 58c7 02       		.byte	0x2
- 18455 58c8 91       		.byte	0x91
- 18456 58c9 40       		.sleb128 -64
- 18457 58ca 34       		.uleb128 0x34
- 18458 58cb 640D0000 		.long	0xd64
- 18459 58cf 00000000 		.quad	.LBB1432
- 18459      00000000 
- 18460 58d7 00000000 		.quad	.LBE1432
- 18460      00000000 
- 18461 58df 03       		.byte	0x3
- 18462 58e0 4905     		.value	0x549
- 18463 58e2 31       		.uleb128 0x31
- 18464 58e3 820D0000 		.long	0xd82
- 18465 58e7 02       		.byte	0x2
- 18466 58e8 91       		.byte	0x91
- 18467 58e9 5C       		.sleb128 -36
- 18468 58ea 31       		.uleb128 0x31
- 18469 58eb 760D0000 		.long	0xd76
- 18470 58ef 02       		.byte	0x2
- 18471 58f0 91       		.byte	0x91
- 18472 58f1 60       		.sleb128 -32
- 18473 58f2 00       		.byte	0x0
- 18474 58f3 00       		.byte	0x0
- 18475 58f4 00       		.byte	0x0
- 18476 58f5 00       		.byte	0x0
- 18477 58f6 00       		.byte	0x0
- 18478 58f7 24       		.uleb128 0x24
- 18479 58f8 00000000 		.long	.LASF348
- 18480 58fc 03       		.byte	0x3
- 18481 58fd AE       		.byte	0xae
- 18482 58fe 01       		.byte	0x1
- 18483 58ff C9010000 		.long	0x1c9
- 18484 5903 03       		.byte	0x3
- 18485 5904 1D590000 		.long	0x591d
- 18486 5908 25       		.uleb128 0x25
- 18487 5909 763100   		.string	"v1"
- 18488 590c 03       		.byte	0x3
- 18489 590d AE       		.byte	0xae
- 18490 590e C9010000 		.long	0x1c9
- 18491 5912 25       		.uleb128 0x25
- 18492 5913 763200   		.string	"v2"
- 18493 5916 03       		.byte	0x3
- 18494 5917 AE       		.byte	0xae
- 18495 5918 C9010000 		.long	0x1c9
- 18496 591c 00       		.byte	0x0
- 18497 591d 27       		.uleb128 0x27
- 18498 591e 00000000 		.long	.LASF349
- 18499 5922 03       		.byte	0x3
- 18500 5923 6E06     		.value	0x66e
- 18501 5925 01       		.byte	0x1
- 18502 5926 C9010000 		.long	0x1c9
-
GAS LISTING /tmp/ccPaCTqg.s 			page 490
-
-
- 18503 592a 03       		.byte	0x3
- 18504 592b 48590000 		.long	0x5948
- 18505 592f 28       		.uleb128 0x28
- 18506 5930 00000000 		.long	.LASF63
- 18507 5934 03       		.byte	0x3
- 18508 5935 6E06     		.value	0x66e
- 18509 5937 C9010000 		.long	0x1c9
- 18510 593b 29       		.uleb128 0x29
- 18511 593c 746D7000 		.string	"tmp"
- 18512 5940 03       		.byte	0x3
- 18513 5941 7106     		.value	0x671
- 18514 5943 C9010000 		.long	0x1c9
- 18515 5947 00       		.byte	0x0
- 18516 5948 27       		.uleb128 0x27
- 18517 5949 00000000 		.long	.LASF350
- 18518 594d 03       		.byte	0x3
- 18519 594e 6205     		.value	0x562
- 18520 5950 01       		.byte	0x1
- 18521 5951 C9010000 		.long	0x1c9
- 18522 5955 03       		.byte	0x3
- 18523 5956 67590000 		.long	0x5967
- 18524 595a 28       		.uleb128 0x28
- 18525 595b 00000000 		.long	.LASF63
- 18526 595f 03       		.byte	0x3
- 18527 5960 6205     		.value	0x562
- 18528 5962 C9010000 		.long	0x1c9
- 18529 5966 00       		.byte	0x0
- 18530 5967 2D       		.uleb128 0x2d
- 18531 5968 00000000 		.long	.LASF351
- 18532 596c 03       		.byte	0x3
- 18533 596d 6F07     		.value	0x76f
- 18534 596f 01       		.byte	0x1
- 18535 5970 00000000 		.quad	.LFB658
- 18535      00000000 
- 18536 5978 00000000 		.quad	.LFE658
- 18536      00000000 
- 18537 5980 00000000 		.long	.LLST8
- 18538 5984 8F810000 		.long	0x818f
- 18539 5988 20       		.uleb128 0x20
- 18540 5989 00000000 		.long	.LASF61
- 18541 598d 03       		.byte	0x3
- 18542 598e 6F07     		.value	0x76f
- 18543 5990 712B0000 		.long	0x2b71
- 18544 5994 03       		.byte	0x3
- 18545 5995 91       		.byte	0x91
- 18546 5996 B857     		.sleb128 -5192
- 18547 5998 2E       		.uleb128 0x2e
- 18548 5999 6B657900 		.string	"key"
- 18549 599d 03       		.byte	0x3
- 18550 599e 6F07     		.value	0x76f
- 18551 59a0 772B0000 		.long	0x2b77
- 18552 59a4 03       		.byte	0x3
- 18553 59a5 91       		.byte	0x91
- 18554 59a6 B057     		.sleb128 -5200
- 18555 59a8 35       		.uleb128 0x35
- 18556 59a9 763000   		.string	"v0"
- 18557 59ac 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 491
-
-
- 18558 59ad 7107     		.value	0x771
- 18559 59af C9010000 		.long	0x1c9
- 18560 59b3 03       		.byte	0x3
- 18561 59b4 91       		.byte	0x91
- 18562 59b5 C057     		.sleb128 -5184
- 18563 59b7 35       		.uleb128 0x35
- 18564 59b8 763100   		.string	"v1"
- 18565 59bb 03       		.byte	0x3
- 18566 59bc 7107     		.value	0x771
- 18567 59be C9010000 		.long	0x1c9
- 18568 59c2 03       		.byte	0x3
- 18569 59c3 91       		.byte	0x91
- 18570 59c4 D057     		.sleb128 -5168
- 18571 59c6 35       		.uleb128 0x35
- 18572 59c7 6B00     		.string	"k"
- 18573 59c9 03       		.byte	0x3
- 18574 59ca 7207     		.value	0x772
- 18575 59cc C9010000 		.long	0x1c9
- 18576 59d0 03       		.byte	0x3
- 18577 59d1 91       		.byte	0x91
- 18578 59d2 E057     		.sleb128 -5152
- 18579 59d4 30       		.uleb128 0x30
- 18580 59d5 BB0C0000 		.long	0xcbb
- 18581 59d9 00000000 		.quad	.LBB1828
- 18581      00000000 
- 18582 59e1 00000000 		.quad	.LBE1828
- 18582      00000000 
- 18583 59e9 03       		.byte	0x3
- 18584 59ea 7407     		.value	0x774
- 18585 59ec 155A0000 		.long	0x5a15
- 18586 59f0 31       		.uleb128 0x31
- 18587 59f1 CC0C0000 		.long	0xccc
- 18588 59f5 03       		.byte	0x3
- 18589 59f6 91       		.byte	0x91
- 18590 59f7 F857     		.sleb128 -5128
- 18591 59f9 32       		.uleb128 0x32
- 18592 59fa 00000000 		.quad	.LBB1829
- 18592      00000000 
- 18593 5a02 00000000 		.quad	.LBE1829
- 18593      00000000 
- 18594 5a0a 33       		.uleb128 0x33
- 18595 5a0b D70C0000 		.long	0xcd7
- 18596 5a0f 03       		.byte	0x3
- 18597 5a10 76       		.byte	0x76
- 18598 5a11 8054     		.sleb128 -5632
- 18599 5a13 00       		.byte	0x0
- 18600 5a14 00       		.byte	0x0
- 18601 5a15 30       		.uleb128 0x30
- 18602 5a16 BB0C0000 		.long	0xcbb
- 18603 5a1a 00000000 		.quad	.LBB1830
- 18603      00000000 
- 18604 5a22 00000000 		.quad	.LBE1830
- 18604      00000000 
- 18605 5a2a 03       		.byte	0x3
- 18606 5a2b 7507     		.value	0x775
- 18607 5a2d 565A0000 		.long	0x5a56
- 18608 5a31 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 492
-
-
- 18609 5a32 CC0C0000 		.long	0xccc
- 18610 5a36 03       		.byte	0x3
- 18611 5a37 91       		.byte	0x91
- 18612 5a38 8058     		.sleb128 -5120
- 18613 5a3a 32       		.uleb128 0x32
- 18614 5a3b 00000000 		.quad	.LBB1831
- 18614      00000000 
- 18615 5a43 00000000 		.quad	.LBE1831
- 18615      00000000 
- 18616 5a4b 33       		.uleb128 0x33
- 18617 5a4c D70C0000 		.long	0xcd7
- 18618 5a50 03       		.byte	0x3
- 18619 5a51 76       		.byte	0x76
- 18620 5a52 9054     		.sleb128 -5616
- 18621 5a54 00       		.byte	0x0
- 18622 5a55 00       		.byte	0x0
- 18623 5a56 30       		.uleb128 0x30
- 18624 5a57 E30C0000 		.long	0xce3
- 18625 5a5b 00000000 		.quad	.LBB1832
- 18625      00000000 
- 18626 5a63 00000000 		.quad	.LBE1832
- 18626      00000000 
- 18627 5a6b 03       		.byte	0x3
- 18628 5a6c 8607     		.value	0x786
- 18629 5a6e 1C5B0000 		.long	0x5b1c
- 18630 5a72 31       		.uleb128 0x31
- 18631 5a73 010D0000 		.long	0xd01
- 18632 5a77 03       		.byte	0x3
- 18633 5a78 91       		.byte	0x91
- 18634 5a79 8C58     		.sleb128 -5108
- 18635 5a7b 31       		.uleb128 0x31
- 18636 5a7c F50C0000 		.long	0xcf5
- 18637 5a80 03       		.byte	0x3
- 18638 5a81 91       		.byte	0x91
- 18639 5a82 9058     		.sleb128 -5104
- 18640 5a84 32       		.uleb128 0x32
- 18641 5a85 00000000 		.quad	.LBB1833
- 18641      00000000 
- 18642 5a8d 00000000 		.quad	.LBE1833
- 18642      00000000 
- 18643 5a95 33       		.uleb128 0x33
- 18644 5a96 0D0D0000 		.long	0xd0d
- 18645 5a9a 03       		.byte	0x3
- 18646 5a9b 76       		.byte	0x76
- 18647 5a9c A054     		.sleb128 -5600
- 18648 5a9e 30       		.uleb128 0x30
- 18649 5a9f 1A0D0000 		.long	0xd1a
- 18650 5aa3 00000000 		.quad	.LBB1834
- 18650      00000000 
- 18651 5aab 00000000 		.quad	.LBE1834
- 18651      00000000 
- 18652 5ab3 03       		.byte	0x3
- 18653 5ab4 8A06     		.value	0x68a
- 18654 5ab6 CD5A0000 		.long	0x5acd
- 18655 5aba 31       		.uleb128 0x31
- 18656 5abb 380D0000 		.long	0xd38
- 18657 5abf 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 493
-
-
- 18658 5ac0 91       		.byte	0x91
- 18659 5ac1 AC58     		.sleb128 -5076
- 18660 5ac3 31       		.uleb128 0x31
- 18661 5ac4 2C0D0000 		.long	0xd2c
- 18662 5ac8 03       		.byte	0x3
- 18663 5ac9 91       		.byte	0x91
- 18664 5aca B058     		.sleb128 -5072
- 18665 5acc 00       		.byte	0x0
- 18666 5acd 34       		.uleb128 0x34
- 18667 5ace 450D0000 		.long	0xd45
- 18668 5ad2 00000000 		.quad	.LBB1836
- 18668      00000000 
- 18669 5ada 00000000 		.quad	.LBE1836
- 18669      00000000 
- 18670 5ae2 03       		.byte	0x3
- 18671 5ae3 8B06     		.value	0x68b
- 18672 5ae5 31       		.uleb128 0x31
- 18673 5ae6 570D0000 		.long	0xd57
- 18674 5aea 03       		.byte	0x3
- 18675 5aeb 91       		.byte	0x91
- 18676 5aec C058     		.sleb128 -5056
- 18677 5aee 34       		.uleb128 0x34
- 18678 5aef 640D0000 		.long	0xd64
- 18679 5af3 00000000 		.quad	.LBB1838
- 18679      00000000 
- 18680 5afb 00000000 		.quad	.LBE1838
- 18680      00000000 
- 18681 5b03 03       		.byte	0x3
- 18682 5b04 4905     		.value	0x549
- 18683 5b06 31       		.uleb128 0x31
- 18684 5b07 820D0000 		.long	0xd82
- 18685 5b0b 03       		.byte	0x3
- 18686 5b0c 91       		.byte	0x91
- 18687 5b0d DC58     		.sleb128 -5028
- 18688 5b0f 31       		.uleb128 0x31
- 18689 5b10 760D0000 		.long	0xd76
- 18690 5b14 03       		.byte	0x3
- 18691 5b15 91       		.byte	0x91
- 18692 5b16 E058     		.sleb128 -5024
- 18693 5b18 00       		.byte	0x0
- 18694 5b19 00       		.byte	0x0
- 18695 5b1a 00       		.byte	0x0
- 18696 5b1b 00       		.byte	0x0
- 18697 5b1c 30       		.uleb128 0x30
- 18698 5b1d 8F0D0000 		.long	0xd8f
- 18699 5b21 00000000 		.quad	.LBB1840
- 18699      00000000 
- 18700 5b29 00000000 		.quad	.LBE1840
- 18700      00000000 
- 18701 5b31 03       		.byte	0x3
- 18702 5b32 8607     		.value	0x786
- 18703 5b34 305D0000 		.long	0x5d30
- 18704 5b38 31       		.uleb128 0x31
- 18705 5b39 A10D0000 		.long	0xda1
- 18706 5b3d 03       		.byte	0x3
- 18707 5b3e 91       		.byte	0x91
- 18708 5b3f F058     		.sleb128 -5008
-
GAS LISTING /tmp/ccPaCTqg.s 			page 494
-
-
- 18709 5b41 32       		.uleb128 0x32
- 18710 5b42 00000000 		.quad	.LBB1841
- 18710      00000000 
- 18711 5b4a 00000000 		.quad	.LBE1841
- 18711      00000000 
- 18712 5b52 33       		.uleb128 0x33
- 18713 5b53 AD0D0000 		.long	0xdad
- 18714 5b57 03       		.byte	0x3
- 18715 5b58 76       		.byte	0x76
- 18716 5b59 B054     		.sleb128 -5584
- 18717 5b5b 30       		.uleb128 0x30
- 18718 5b5c BA0D0000 		.long	0xdba
- 18719 5b60 00000000 		.quad	.LBB1842
- 18719      00000000 
- 18720 5b68 00000000 		.quad	.LBE1842
- 18720      00000000 
- 18721 5b70 03       		.byte	0x3
- 18722 5b71 1F06     		.value	0x61f
- 18723 5b73 F85B0000 		.long	0x5bf8
- 18724 5b77 31       		.uleb128 0x31
- 18725 5b78 CC0D0000 		.long	0xdcc
- 18726 5b7c 03       		.byte	0x3
- 18727 5b7d 91       		.byte	0x91
- 18728 5b7e 8059     		.sleb128 -4992
- 18729 5b80 32       		.uleb128 0x32
- 18730 5b81 00000000 		.quad	.LBB1843
- 18730      00000000 
- 18731 5b89 00000000 		.quad	.LBE1843
- 18731      00000000 
- 18732 5b91 33       		.uleb128 0x33
- 18733 5b92 D80D0000 		.long	0xdd8
- 18734 5b96 09       		.byte	0x9
- 18735 5b97 03       		.byte	0x3
- 18736 5b98 00000000 		.quad	mask.8002
- 18736      00000000 
- 18737 5ba0 34       		.uleb128 0x34
- 18738 5ba1 FB0D0000 		.long	0xdfb
- 18739 5ba5 00000000 		.quad	.LBB1844
- 18739      00000000 
- 18740 5bad 00000000 		.quad	.LBE1844
- 18740      00000000 
- 18741 5bb5 03       		.byte	0x3
- 18742 5bb6 FE04     		.value	0x4fe
- 18743 5bb8 31       		.uleb128 0x31
- 18744 5bb9 190E0000 		.long	0xe19
- 18745 5bbd 03       		.byte	0x3
- 18746 5bbe 91       		.byte	0x91
- 18747 5bbf 9059     		.sleb128 -4976
- 18748 5bc1 31       		.uleb128 0x31
- 18749 5bc2 0D0E0000 		.long	0xe0d
- 18750 5bc6 03       		.byte	0x3
- 18751 5bc7 91       		.byte	0x91
- 18752 5bc8 A059     		.sleb128 -4960
- 18753 5bca 34       		.uleb128 0x34
- 18754 5bcb 260E0000 		.long	0xe26
- 18755 5bcf 00000000 		.quad	.LBB1846
- 18755      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 495
-
-
- 18756 5bd7 00000000 		.quad	.LBE1846
- 18756      00000000 
- 18757 5bdf 03       		.byte	0x3
- 18758 5be0 7501     		.value	0x175
- 18759 5be2 31       		.uleb128 0x31
- 18760 5be3 440E0000 		.long	0xe44
- 18761 5be7 03       		.byte	0x3
- 18762 5be8 91       		.byte	0x91
- 18763 5be9 B059     		.sleb128 -4944
- 18764 5beb 31       		.uleb128 0x31
- 18765 5bec 380E0000 		.long	0xe38
- 18766 5bf0 03       		.byte	0x3
- 18767 5bf1 91       		.byte	0x91
- 18768 5bf2 C059     		.sleb128 -4928
- 18769 5bf4 00       		.byte	0x0
- 18770 5bf5 00       		.byte	0x0
- 18771 5bf6 00       		.byte	0x0
- 18772 5bf7 00       		.byte	0x0
- 18773 5bf8 30       		.uleb128 0x30
- 18774 5bf9 BA0D0000 		.long	0xdba
- 18775 5bfd 00000000 		.quad	.LBB1848
- 18775      00000000 
- 18776 5c05 00000000 		.quad	.LBE1848
- 18776      00000000 
- 18777 5c0d 03       		.byte	0x3
- 18778 5c0e 2006     		.value	0x620
- 18779 5c10 955C0000 		.long	0x5c95
- 18780 5c14 31       		.uleb128 0x31
- 18781 5c15 CC0D0000 		.long	0xdcc
- 18782 5c19 03       		.byte	0x3
- 18783 5c1a 91       		.byte	0x91
- 18784 5c1b D059     		.sleb128 -4912
- 18785 5c1d 32       		.uleb128 0x32
- 18786 5c1e 00000000 		.quad	.LBB1849
- 18786      00000000 
- 18787 5c26 00000000 		.quad	.LBE1849
- 18787      00000000 
- 18788 5c2e 33       		.uleb128 0x33
- 18789 5c2f D80D0000 		.long	0xdd8
- 18790 5c33 09       		.byte	0x9
- 18791 5c34 03       		.byte	0x3
- 18792 5c35 00000000 		.quad	mask.8002
- 18792      00000000 
- 18793 5c3d 34       		.uleb128 0x34
- 18794 5c3e FB0D0000 		.long	0xdfb
- 18795 5c42 00000000 		.quad	.LBB1850
- 18795      00000000 
- 18796 5c4a 00000000 		.quad	.LBE1850
- 18796      00000000 
- 18797 5c52 03       		.byte	0x3
- 18798 5c53 FE04     		.value	0x4fe
- 18799 5c55 31       		.uleb128 0x31
- 18800 5c56 190E0000 		.long	0xe19
- 18801 5c5a 03       		.byte	0x3
- 18802 5c5b 91       		.byte	0x91
- 18803 5c5c E059     		.sleb128 -4896
- 18804 5c5e 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 496
-
-
- 18805 5c5f 0D0E0000 		.long	0xe0d
- 18806 5c63 03       		.byte	0x3
- 18807 5c64 91       		.byte	0x91
- 18808 5c65 F059     		.sleb128 -4880
- 18809 5c67 34       		.uleb128 0x34
- 18810 5c68 260E0000 		.long	0xe26
- 18811 5c6c 00000000 		.quad	.LBB1852
- 18811      00000000 
- 18812 5c74 00000000 		.quad	.LBE1852
- 18812      00000000 
- 18813 5c7c 03       		.byte	0x3
- 18814 5c7d 7501     		.value	0x175
- 18815 5c7f 31       		.uleb128 0x31
- 18816 5c80 440E0000 		.long	0xe44
- 18817 5c84 03       		.byte	0x3
- 18818 5c85 91       		.byte	0x91
- 18819 5c86 805A     		.sleb128 -4864
- 18820 5c88 31       		.uleb128 0x31
- 18821 5c89 380E0000 		.long	0xe38
- 18822 5c8d 03       		.byte	0x3
- 18823 5c8e 91       		.byte	0x91
- 18824 5c8f 905A     		.sleb128 -4848
- 18825 5c91 00       		.byte	0x0
- 18826 5c92 00       		.byte	0x0
- 18827 5c93 00       		.byte	0x0
- 18828 5c94 00       		.byte	0x0
- 18829 5c95 34       		.uleb128 0x34
- 18830 5c96 BA0D0000 		.long	0xdba
- 18831 5c9a 00000000 		.quad	.LBB1854
- 18831      00000000 
- 18832 5ca2 00000000 		.quad	.LBE1854
- 18832      00000000 
- 18833 5caa 03       		.byte	0x3
- 18834 5cab 2106     		.value	0x621
- 18835 5cad 31       		.uleb128 0x31
- 18836 5cae CC0D0000 		.long	0xdcc
- 18837 5cb2 03       		.byte	0x3
- 18838 5cb3 91       		.byte	0x91
- 18839 5cb4 A05A     		.sleb128 -4832
- 18840 5cb6 32       		.uleb128 0x32
- 18841 5cb7 00000000 		.quad	.LBB1855
- 18841      00000000 
- 18842 5cbf 00000000 		.quad	.LBE1855
- 18842      00000000 
- 18843 5cc7 33       		.uleb128 0x33
- 18844 5cc8 D80D0000 		.long	0xdd8
- 18845 5ccc 09       		.byte	0x9
- 18846 5ccd 03       		.byte	0x3
- 18847 5cce 00000000 		.quad	mask.8002
- 18847      00000000 
- 18848 5cd6 34       		.uleb128 0x34
- 18849 5cd7 FB0D0000 		.long	0xdfb
- 18850 5cdb 00000000 		.quad	.LBB1856
- 18850      00000000 
- 18851 5ce3 00000000 		.quad	.LBE1856
- 18851      00000000 
- 18852 5ceb 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 497
-
-
- 18853 5cec FE04     		.value	0x4fe
- 18854 5cee 31       		.uleb128 0x31
- 18855 5cef 190E0000 		.long	0xe19
- 18856 5cf3 03       		.byte	0x3
- 18857 5cf4 91       		.byte	0x91
- 18858 5cf5 B05A     		.sleb128 -4816
- 18859 5cf7 31       		.uleb128 0x31
- 18860 5cf8 0D0E0000 		.long	0xe0d
- 18861 5cfc 03       		.byte	0x3
- 18862 5cfd 91       		.byte	0x91
- 18863 5cfe C05A     		.sleb128 -4800
- 18864 5d00 34       		.uleb128 0x34
- 18865 5d01 260E0000 		.long	0xe26
- 18866 5d05 00000000 		.quad	.LBB1858
- 18866      00000000 
- 18867 5d0d 00000000 		.quad	.LBE1858
- 18867      00000000 
- 18868 5d15 03       		.byte	0x3
- 18869 5d16 7501     		.value	0x175
- 18870 5d18 31       		.uleb128 0x31
- 18871 5d19 440E0000 		.long	0xe44
- 18872 5d1d 03       		.byte	0x3
- 18873 5d1e 91       		.byte	0x91
- 18874 5d1f D05A     		.sleb128 -4784
- 18875 5d21 31       		.uleb128 0x31
- 18876 5d22 380E0000 		.long	0xe38
- 18877 5d26 03       		.byte	0x3
- 18878 5d27 91       		.byte	0x91
- 18879 5d28 E05A     		.sleb128 -4768
- 18880 5d2a 00       		.byte	0x0
- 18881 5d2b 00       		.byte	0x0
- 18882 5d2c 00       		.byte	0x0
- 18883 5d2d 00       		.byte	0x0
- 18884 5d2e 00       		.byte	0x0
- 18885 5d2f 00       		.byte	0x0
- 18886 5d30 30       		.uleb128 0x30
- 18887 5d31 F7580000 		.long	0x58f7
- 18888 5d35 00000000 		.quad	.LBB1860
- 18888      00000000 
- 18889 5d3d 00000000 		.quad	.LBE1860
- 18889      00000000 
- 18890 5d45 03       		.byte	0x3
- 18891 5d46 8607     		.value	0x786
- 18892 5d48 5F5D0000 		.long	0x5d5f
- 18893 5d4c 31       		.uleb128 0x31
- 18894 5d4d 12590000 		.long	0x5912
- 18895 5d51 03       		.byte	0x3
- 18896 5d52 91       		.byte	0x91
- 18897 5d53 F05A     		.sleb128 -4752
- 18898 5d55 31       		.uleb128 0x31
- 18899 5d56 08590000 		.long	0x5908
- 18900 5d5a 03       		.byte	0x3
- 18901 5d5b 91       		.byte	0x91
- 18902 5d5c 805B     		.sleb128 -4736
- 18903 5d5e 00       		.byte	0x0
- 18904 5d5f 30       		.uleb128 0x30
- 18905 5d60 1D590000 		.long	0x591d
-
GAS LISTING /tmp/ccPaCTqg.s 			page 498
-
-
- 18906 5d64 00000000 		.quad	.LBB1862
- 18906      00000000 
- 18907 5d6c 00000000 		.quad	.LBE1862
- 18907      00000000 
- 18908 5d74 03       		.byte	0x3
- 18909 5d75 8707     		.value	0x787
- 18910 5d77 1C5E0000 		.long	0x5e1c
- 18911 5d7b 31       		.uleb128 0x31
- 18912 5d7c 2F590000 		.long	0x592f
- 18913 5d80 03       		.byte	0x3
- 18914 5d81 91       		.byte	0x91
- 18915 5d82 905B     		.sleb128 -4720
- 18916 5d84 32       		.uleb128 0x32
- 18917 5d85 00000000 		.quad	.LBB1863
- 18917      00000000 
- 18918 5d8d 00000000 		.quad	.LBE1863
- 18918      00000000 
- 18919 5d95 33       		.uleb128 0x33
- 18920 5d96 3B590000 		.long	0x593b
- 18921 5d9a 03       		.byte	0x3
- 18922 5d9b 76       		.byte	0x76
- 18923 5d9c C054     		.sleb128 -5568
- 18924 5d9e 30       		.uleb128 0x30
- 18925 5d9f 1A0D0000 		.long	0xd1a
- 18926 5da3 00000000 		.quad	.LBB1864
- 18926      00000000 
- 18927 5dab 00000000 		.quad	.LBE1864
- 18927      00000000 
- 18928 5db3 03       		.byte	0x3
- 18929 5db4 7206     		.value	0x672
- 18930 5db6 CD5D0000 		.long	0x5dcd
- 18931 5dba 31       		.uleb128 0x31
- 18932 5dbb 380D0000 		.long	0xd38
- 18933 5dbf 03       		.byte	0x3
- 18934 5dc0 91       		.byte	0x91
- 18935 5dc1 AC5B     		.sleb128 -4692
- 18936 5dc3 31       		.uleb128 0x31
- 18937 5dc4 2C0D0000 		.long	0xd2c
- 18938 5dc8 03       		.byte	0x3
- 18939 5dc9 91       		.byte	0x91
- 18940 5dca B05B     		.sleb128 -4688
- 18941 5dcc 00       		.byte	0x0
- 18942 5dcd 34       		.uleb128 0x34
- 18943 5dce 48590000 		.long	0x5948
- 18944 5dd2 00000000 		.quad	.LBB1866
- 18944      00000000 
- 18945 5dda 00000000 		.quad	.LBE1866
- 18945      00000000 
- 18946 5de2 03       		.byte	0x3
- 18947 5de3 7306     		.value	0x673
- 18948 5de5 31       		.uleb128 0x31
- 18949 5de6 5A590000 		.long	0x595a
- 18950 5dea 03       		.byte	0x3
- 18951 5deb 91       		.byte	0x91
- 18952 5dec C05B     		.sleb128 -4672
- 18953 5dee 34       		.uleb128 0x34
- 18954 5def 640D0000 		.long	0xd64
-
GAS LISTING /tmp/ccPaCTqg.s 			page 499
-
-
- 18955 5df3 00000000 		.quad	.LBB1868
- 18955      00000000 
- 18956 5dfb 00000000 		.quad	.LBE1868
- 18956      00000000 
- 18957 5e03 03       		.byte	0x3
- 18958 5e04 6505     		.value	0x565
- 18959 5e06 31       		.uleb128 0x31
- 18960 5e07 820D0000 		.long	0xd82
- 18961 5e0b 03       		.byte	0x3
- 18962 5e0c 91       		.byte	0x91
- 18963 5e0d DC5B     		.sleb128 -4644
- 18964 5e0f 31       		.uleb128 0x31
- 18965 5e10 760D0000 		.long	0xd76
- 18966 5e14 03       		.byte	0x3
- 18967 5e15 91       		.byte	0x91
- 18968 5e16 E05B     		.sleb128 -4640
- 18969 5e18 00       		.byte	0x0
- 18970 5e19 00       		.byte	0x0
- 18971 5e1a 00       		.byte	0x0
- 18972 5e1b 00       		.byte	0x0
- 18973 5e1c 30       		.uleb128 0x30
- 18974 5e1d 8F0D0000 		.long	0xd8f
- 18975 5e21 00000000 		.quad	.LBB1870
- 18975      00000000 
- 18976 5e29 00000000 		.quad	.LBE1870
- 18976      00000000 
- 18977 5e31 03       		.byte	0x3
- 18978 5e32 8707     		.value	0x787
- 18979 5e34 30600000 		.long	0x6030
- 18980 5e38 31       		.uleb128 0x31
- 18981 5e39 A10D0000 		.long	0xda1
- 18982 5e3d 03       		.byte	0x3
- 18983 5e3e 91       		.byte	0x91
- 18984 5e3f F05B     		.sleb128 -4624
- 18985 5e41 32       		.uleb128 0x32
- 18986 5e42 00000000 		.quad	.LBB1871
- 18986      00000000 
- 18987 5e4a 00000000 		.quad	.LBE1871
- 18987      00000000 
- 18988 5e52 33       		.uleb128 0x33
- 18989 5e53 AD0D0000 		.long	0xdad
- 18990 5e57 03       		.byte	0x3
- 18991 5e58 76       		.byte	0x76
- 18992 5e59 D054     		.sleb128 -5552
- 18993 5e5b 30       		.uleb128 0x30
- 18994 5e5c BA0D0000 		.long	0xdba
- 18995 5e60 00000000 		.quad	.LBB1872
- 18995      00000000 
- 18996 5e68 00000000 		.quad	.LBE1872
- 18996      00000000 
- 18997 5e70 03       		.byte	0x3
- 18998 5e71 1F06     		.value	0x61f
- 18999 5e73 F85E0000 		.long	0x5ef8
- 19000 5e77 31       		.uleb128 0x31
- 19001 5e78 CC0D0000 		.long	0xdcc
- 19002 5e7c 03       		.byte	0x3
- 19003 5e7d 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 500
-
-
- 19004 5e7e 805C     		.sleb128 -4608
- 19005 5e80 32       		.uleb128 0x32
- 19006 5e81 00000000 		.quad	.LBB1873
- 19006      00000000 
- 19007 5e89 00000000 		.quad	.LBE1873
- 19007      00000000 
- 19008 5e91 33       		.uleb128 0x33
- 19009 5e92 D80D0000 		.long	0xdd8
- 19010 5e96 09       		.byte	0x9
- 19011 5e97 03       		.byte	0x3
- 19012 5e98 00000000 		.quad	mask.8002
- 19012      00000000 
- 19013 5ea0 34       		.uleb128 0x34
- 19014 5ea1 FB0D0000 		.long	0xdfb
- 19015 5ea5 00000000 		.quad	.LBB1874
- 19015      00000000 
- 19016 5ead 00000000 		.quad	.LBE1874
- 19016      00000000 
- 19017 5eb5 03       		.byte	0x3
- 19018 5eb6 FE04     		.value	0x4fe
- 19019 5eb8 31       		.uleb128 0x31
- 19020 5eb9 190E0000 		.long	0xe19
- 19021 5ebd 03       		.byte	0x3
- 19022 5ebe 91       		.byte	0x91
- 19023 5ebf 905C     		.sleb128 -4592
- 19024 5ec1 31       		.uleb128 0x31
- 19025 5ec2 0D0E0000 		.long	0xe0d
- 19026 5ec6 03       		.byte	0x3
- 19027 5ec7 91       		.byte	0x91
- 19028 5ec8 A05C     		.sleb128 -4576
- 19029 5eca 34       		.uleb128 0x34
- 19030 5ecb 260E0000 		.long	0xe26
- 19031 5ecf 00000000 		.quad	.LBB1876
- 19031      00000000 
- 19032 5ed7 00000000 		.quad	.LBE1876
- 19032      00000000 
- 19033 5edf 03       		.byte	0x3
- 19034 5ee0 7501     		.value	0x175
- 19035 5ee2 31       		.uleb128 0x31
- 19036 5ee3 440E0000 		.long	0xe44
- 19037 5ee7 03       		.byte	0x3
- 19038 5ee8 91       		.byte	0x91
- 19039 5ee9 B05C     		.sleb128 -4560
- 19040 5eeb 31       		.uleb128 0x31
- 19041 5eec 380E0000 		.long	0xe38
- 19042 5ef0 03       		.byte	0x3
- 19043 5ef1 91       		.byte	0x91
- 19044 5ef2 C05C     		.sleb128 -4544
- 19045 5ef4 00       		.byte	0x0
- 19046 5ef5 00       		.byte	0x0
- 19047 5ef6 00       		.byte	0x0
- 19048 5ef7 00       		.byte	0x0
- 19049 5ef8 30       		.uleb128 0x30
- 19050 5ef9 BA0D0000 		.long	0xdba
- 19051 5efd 00000000 		.quad	.LBB1878
- 19051      00000000 
- 19052 5f05 00000000 		.quad	.LBE1878
-
GAS LISTING /tmp/ccPaCTqg.s 			page 501
-
-
- 19052      00000000 
- 19053 5f0d 03       		.byte	0x3
- 19054 5f0e 2006     		.value	0x620
- 19055 5f10 955F0000 		.long	0x5f95
- 19056 5f14 31       		.uleb128 0x31
- 19057 5f15 CC0D0000 		.long	0xdcc
- 19058 5f19 03       		.byte	0x3
- 19059 5f1a 91       		.byte	0x91
- 19060 5f1b D05C     		.sleb128 -4528
- 19061 5f1d 32       		.uleb128 0x32
- 19062 5f1e 00000000 		.quad	.LBB1879
- 19062      00000000 
- 19063 5f26 00000000 		.quad	.LBE1879
- 19063      00000000 
- 19064 5f2e 33       		.uleb128 0x33
- 19065 5f2f D80D0000 		.long	0xdd8
- 19066 5f33 09       		.byte	0x9
- 19067 5f34 03       		.byte	0x3
- 19068 5f35 00000000 		.quad	mask.8002
- 19068      00000000 
- 19069 5f3d 34       		.uleb128 0x34
- 19070 5f3e FB0D0000 		.long	0xdfb
- 19071 5f42 00000000 		.quad	.LBB1880
- 19071      00000000 
- 19072 5f4a 00000000 		.quad	.LBE1880
- 19072      00000000 
- 19073 5f52 03       		.byte	0x3
- 19074 5f53 FE04     		.value	0x4fe
- 19075 5f55 31       		.uleb128 0x31
- 19076 5f56 190E0000 		.long	0xe19
- 19077 5f5a 03       		.byte	0x3
- 19078 5f5b 91       		.byte	0x91
- 19079 5f5c E05C     		.sleb128 -4512
- 19080 5f5e 31       		.uleb128 0x31
- 19081 5f5f 0D0E0000 		.long	0xe0d
- 19082 5f63 03       		.byte	0x3
- 19083 5f64 91       		.byte	0x91
- 19084 5f65 F05C     		.sleb128 -4496
- 19085 5f67 34       		.uleb128 0x34
- 19086 5f68 260E0000 		.long	0xe26
- 19087 5f6c 00000000 		.quad	.LBB1882
- 19087      00000000 
- 19088 5f74 00000000 		.quad	.LBE1882
- 19088      00000000 
- 19089 5f7c 03       		.byte	0x3
- 19090 5f7d 7501     		.value	0x175
- 19091 5f7f 31       		.uleb128 0x31
- 19092 5f80 440E0000 		.long	0xe44
- 19093 5f84 03       		.byte	0x3
- 19094 5f85 91       		.byte	0x91
- 19095 5f86 805D     		.sleb128 -4480
- 19096 5f88 31       		.uleb128 0x31
- 19097 5f89 380E0000 		.long	0xe38
- 19098 5f8d 03       		.byte	0x3
- 19099 5f8e 91       		.byte	0x91
- 19100 5f8f 905D     		.sleb128 -4464
- 19101 5f91 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 502
-
-
- 19102 5f92 00       		.byte	0x0
- 19103 5f93 00       		.byte	0x0
- 19104 5f94 00       		.byte	0x0
- 19105 5f95 34       		.uleb128 0x34
- 19106 5f96 BA0D0000 		.long	0xdba
- 19107 5f9a 00000000 		.quad	.LBB1884
- 19107      00000000 
- 19108 5fa2 00000000 		.quad	.LBE1884
- 19108      00000000 
- 19109 5faa 03       		.byte	0x3
- 19110 5fab 2106     		.value	0x621
- 19111 5fad 31       		.uleb128 0x31
- 19112 5fae CC0D0000 		.long	0xdcc
- 19113 5fb2 03       		.byte	0x3
- 19114 5fb3 91       		.byte	0x91
- 19115 5fb4 A05D     		.sleb128 -4448
- 19116 5fb6 32       		.uleb128 0x32
- 19117 5fb7 00000000 		.quad	.LBB1885
- 19117      00000000 
- 19118 5fbf 00000000 		.quad	.LBE1885
- 19118      00000000 
- 19119 5fc7 33       		.uleb128 0x33
- 19120 5fc8 D80D0000 		.long	0xdd8
- 19121 5fcc 09       		.byte	0x9
- 19122 5fcd 03       		.byte	0x3
- 19123 5fce 00000000 		.quad	mask.8002
- 19123      00000000 
- 19124 5fd6 34       		.uleb128 0x34
- 19125 5fd7 FB0D0000 		.long	0xdfb
- 19126 5fdb 00000000 		.quad	.LBB1886
- 19126      00000000 
- 19127 5fe3 00000000 		.quad	.LBE1886
- 19127      00000000 
- 19128 5feb 03       		.byte	0x3
- 19129 5fec FE04     		.value	0x4fe
- 19130 5fee 31       		.uleb128 0x31
- 19131 5fef 190E0000 		.long	0xe19
- 19132 5ff3 03       		.byte	0x3
- 19133 5ff4 91       		.byte	0x91
- 19134 5ff5 B05D     		.sleb128 -4432
- 19135 5ff7 31       		.uleb128 0x31
- 19136 5ff8 0D0E0000 		.long	0xe0d
- 19137 5ffc 03       		.byte	0x3
- 19138 5ffd 91       		.byte	0x91
- 19139 5ffe C05D     		.sleb128 -4416
- 19140 6000 34       		.uleb128 0x34
- 19141 6001 260E0000 		.long	0xe26
- 19142 6005 00000000 		.quad	.LBB1888
- 19142      00000000 
- 19143 600d 00000000 		.quad	.LBE1888
- 19143      00000000 
- 19144 6015 03       		.byte	0x3
- 19145 6016 7501     		.value	0x175
- 19146 6018 31       		.uleb128 0x31
- 19147 6019 440E0000 		.long	0xe44
- 19148 601d 03       		.byte	0x3
- 19149 601e 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 503
-
-
- 19150 601f D05D     		.sleb128 -4400
- 19151 6021 31       		.uleb128 0x31
- 19152 6022 380E0000 		.long	0xe38
- 19153 6026 03       		.byte	0x3
- 19154 6027 91       		.byte	0x91
- 19155 6028 E05D     		.sleb128 -4384
- 19156 602a 00       		.byte	0x0
- 19157 602b 00       		.byte	0x0
- 19158 602c 00       		.byte	0x0
- 19159 602d 00       		.byte	0x0
- 19160 602e 00       		.byte	0x0
- 19161 602f 00       		.byte	0x0
- 19162 6030 30       		.uleb128 0x30
- 19163 6031 F7580000 		.long	0x58f7
- 19164 6035 00000000 		.quad	.LBB1890
- 19164      00000000 
- 19165 603d 00000000 		.quad	.LBE1890
- 19165      00000000 
- 19166 6045 03       		.byte	0x3
- 19167 6046 8707     		.value	0x787
- 19168 6048 5F600000 		.long	0x605f
- 19169 604c 31       		.uleb128 0x31
- 19170 604d 12590000 		.long	0x5912
- 19171 6051 03       		.byte	0x3
- 19172 6052 91       		.byte	0x91
- 19173 6053 F05D     		.sleb128 -4368
- 19174 6055 31       		.uleb128 0x31
- 19175 6056 08590000 		.long	0x5908
- 19176 605a 03       		.byte	0x3
- 19177 605b 91       		.byte	0x91
- 19178 605c 805E     		.sleb128 -4352
- 19179 605e 00       		.byte	0x0
- 19180 605f 30       		.uleb128 0x30
- 19181 6060 E30C0000 		.long	0xce3
- 19182 6064 00000000 		.quad	.LBB1892
- 19182      00000000 
- 19183 606c 00000000 		.quad	.LBE1892
- 19183      00000000 
- 19184 6074 03       		.byte	0x3
- 19185 6075 8807     		.value	0x788
- 19186 6077 25610000 		.long	0x6125
- 19187 607b 31       		.uleb128 0x31
- 19188 607c 010D0000 		.long	0xd01
- 19189 6080 03       		.byte	0x3
- 19190 6081 91       		.byte	0x91
- 19191 6082 9C5E     		.sleb128 -4324
- 19192 6084 31       		.uleb128 0x31
- 19193 6085 F50C0000 		.long	0xcf5
- 19194 6089 03       		.byte	0x3
- 19195 608a 91       		.byte	0x91
- 19196 608b A05E     		.sleb128 -4320
- 19197 608d 32       		.uleb128 0x32
- 19198 608e 00000000 		.quad	.LBB1893
- 19198      00000000 
- 19199 6096 00000000 		.quad	.LBE1893
- 19199      00000000 
- 19200 609e 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccPaCTqg.s 			page 504
-
-
- 19201 609f 0D0D0000 		.long	0xd0d
- 19202 60a3 03       		.byte	0x3
- 19203 60a4 76       		.byte	0x76
- 19204 60a5 E054     		.sleb128 -5536
- 19205 60a7 30       		.uleb128 0x30
- 19206 60a8 1A0D0000 		.long	0xd1a
- 19207 60ac 00000000 		.quad	.LBB1894
- 19207      00000000 
- 19208 60b4 00000000 		.quad	.LBE1894
- 19208      00000000 
- 19209 60bc 03       		.byte	0x3
- 19210 60bd 8A06     		.value	0x68a
- 19211 60bf D6600000 		.long	0x60d6
- 19212 60c3 31       		.uleb128 0x31
- 19213 60c4 380D0000 		.long	0xd38
- 19214 60c8 03       		.byte	0x3
- 19215 60c9 91       		.byte	0x91
- 19216 60ca BC5E     		.sleb128 -4292
- 19217 60cc 31       		.uleb128 0x31
- 19218 60cd 2C0D0000 		.long	0xd2c
- 19219 60d1 03       		.byte	0x3
- 19220 60d2 91       		.byte	0x91
- 19221 60d3 C05E     		.sleb128 -4288
- 19222 60d5 00       		.byte	0x0
- 19223 60d6 34       		.uleb128 0x34
- 19224 60d7 450D0000 		.long	0xd45
- 19225 60db 00000000 		.quad	.LBB1896
- 19225      00000000 
- 19226 60e3 00000000 		.quad	.LBE1896
- 19226      00000000 
- 19227 60eb 03       		.byte	0x3
- 19228 60ec 8B06     		.value	0x68b
- 19229 60ee 31       		.uleb128 0x31
- 19230 60ef 570D0000 		.long	0xd57
- 19231 60f3 03       		.byte	0x3
- 19232 60f4 91       		.byte	0x91
- 19233 60f5 D05E     		.sleb128 -4272
- 19234 60f7 34       		.uleb128 0x34
- 19235 60f8 640D0000 		.long	0xd64
- 19236 60fc 00000000 		.quad	.LBB1898
- 19236      00000000 
- 19237 6104 00000000 		.quad	.LBE1898
- 19237      00000000 
- 19238 610c 03       		.byte	0x3
- 19239 610d 4905     		.value	0x549
- 19240 610f 31       		.uleb128 0x31
- 19241 6110 820D0000 		.long	0xd82
- 19242 6114 03       		.byte	0x3
- 19243 6115 91       		.byte	0x91
- 19244 6116 EC5E     		.sleb128 -4244
- 19245 6118 31       		.uleb128 0x31
- 19246 6119 760D0000 		.long	0xd76
- 19247 611d 03       		.byte	0x3
- 19248 611e 91       		.byte	0x91
- 19249 611f F05E     		.sleb128 -4240
- 19250 6121 00       		.byte	0x0
- 19251 6122 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 505
-
-
- 19252 6123 00       		.byte	0x0
- 19253 6124 00       		.byte	0x0
- 19254 6125 30       		.uleb128 0x30
- 19255 6126 8F0D0000 		.long	0xd8f
- 19256 612a 00000000 		.quad	.LBB1900
- 19256      00000000 
- 19257 6132 00000000 		.quad	.LBE1900
- 19257      00000000 
- 19258 613a 03       		.byte	0x3
- 19259 613b 8807     		.value	0x788
- 19260 613d 39630000 		.long	0x6339
- 19261 6141 31       		.uleb128 0x31
- 19262 6142 A10D0000 		.long	0xda1
- 19263 6146 03       		.byte	0x3
- 19264 6147 91       		.byte	0x91
- 19265 6148 805F     		.sleb128 -4224
- 19266 614a 32       		.uleb128 0x32
- 19267 614b 00000000 		.quad	.LBB1901
- 19267      00000000 
- 19268 6153 00000000 		.quad	.LBE1901
- 19268      00000000 
- 19269 615b 33       		.uleb128 0x33
- 19270 615c AD0D0000 		.long	0xdad
- 19271 6160 03       		.byte	0x3
- 19272 6161 76       		.byte	0x76
- 19273 6162 F054     		.sleb128 -5520
- 19274 6164 30       		.uleb128 0x30
- 19275 6165 BA0D0000 		.long	0xdba
- 19276 6169 00000000 		.quad	.LBB1902
- 19276      00000000 
- 19277 6171 00000000 		.quad	.LBE1902
- 19277      00000000 
- 19278 6179 03       		.byte	0x3
- 19279 617a 1F06     		.value	0x61f
- 19280 617c 01620000 		.long	0x6201
- 19281 6180 31       		.uleb128 0x31
- 19282 6181 CC0D0000 		.long	0xdcc
- 19283 6185 03       		.byte	0x3
- 19284 6186 91       		.byte	0x91
- 19285 6187 905F     		.sleb128 -4208
- 19286 6189 32       		.uleb128 0x32
- 19287 618a 00000000 		.quad	.LBB1903
- 19287      00000000 
- 19288 6192 00000000 		.quad	.LBE1903
- 19288      00000000 
- 19289 619a 33       		.uleb128 0x33
- 19290 619b D80D0000 		.long	0xdd8
- 19291 619f 09       		.byte	0x9
- 19292 61a0 03       		.byte	0x3
- 19293 61a1 00000000 		.quad	mask.8002
- 19293      00000000 
- 19294 61a9 34       		.uleb128 0x34
- 19295 61aa FB0D0000 		.long	0xdfb
- 19296 61ae 00000000 		.quad	.LBB1904
- 19296      00000000 
- 19297 61b6 00000000 		.quad	.LBE1904
- 19297      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 506
-
-
- 19298 61be 03       		.byte	0x3
- 19299 61bf FE04     		.value	0x4fe
- 19300 61c1 31       		.uleb128 0x31
- 19301 61c2 190E0000 		.long	0xe19
- 19302 61c6 03       		.byte	0x3
- 19303 61c7 91       		.byte	0x91
- 19304 61c8 A05F     		.sleb128 -4192
- 19305 61ca 31       		.uleb128 0x31
- 19306 61cb 0D0E0000 		.long	0xe0d
- 19307 61cf 03       		.byte	0x3
- 19308 61d0 91       		.byte	0x91
- 19309 61d1 B05F     		.sleb128 -4176
- 19310 61d3 34       		.uleb128 0x34
- 19311 61d4 260E0000 		.long	0xe26
- 19312 61d8 00000000 		.quad	.LBB1906
- 19312      00000000 
- 19313 61e0 00000000 		.quad	.LBE1906
- 19313      00000000 
- 19314 61e8 03       		.byte	0x3
- 19315 61e9 7501     		.value	0x175
- 19316 61eb 31       		.uleb128 0x31
- 19317 61ec 440E0000 		.long	0xe44
- 19318 61f0 03       		.byte	0x3
- 19319 61f1 91       		.byte	0x91
- 19320 61f2 C05F     		.sleb128 -4160
- 19321 61f4 31       		.uleb128 0x31
- 19322 61f5 380E0000 		.long	0xe38
- 19323 61f9 03       		.byte	0x3
- 19324 61fa 91       		.byte	0x91
- 19325 61fb D05F     		.sleb128 -4144
- 19326 61fd 00       		.byte	0x0
- 19327 61fe 00       		.byte	0x0
- 19328 61ff 00       		.byte	0x0
- 19329 6200 00       		.byte	0x0
- 19330 6201 30       		.uleb128 0x30
- 19331 6202 BA0D0000 		.long	0xdba
- 19332 6206 00000000 		.quad	.LBB1908
- 19332      00000000 
- 19333 620e 00000000 		.quad	.LBE1908
- 19333      00000000 
- 19334 6216 03       		.byte	0x3
- 19335 6217 2006     		.value	0x620
- 19336 6219 9E620000 		.long	0x629e
- 19337 621d 31       		.uleb128 0x31
- 19338 621e CC0D0000 		.long	0xdcc
- 19339 6222 03       		.byte	0x3
- 19340 6223 91       		.byte	0x91
- 19341 6224 E05F     		.sleb128 -4128
- 19342 6226 32       		.uleb128 0x32
- 19343 6227 00000000 		.quad	.LBB1909
- 19343      00000000 
- 19344 622f 00000000 		.quad	.LBE1909
- 19344      00000000 
- 19345 6237 33       		.uleb128 0x33
- 19346 6238 D80D0000 		.long	0xdd8
- 19347 623c 09       		.byte	0x9
- 19348 623d 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 507
-
-
- 19349 623e 00000000 		.quad	mask.8002
- 19349      00000000 
- 19350 6246 34       		.uleb128 0x34
- 19351 6247 FB0D0000 		.long	0xdfb
- 19352 624b 00000000 		.quad	.LBB1910
- 19352      00000000 
- 19353 6253 00000000 		.quad	.LBE1910
- 19353      00000000 
- 19354 625b 03       		.byte	0x3
- 19355 625c FE04     		.value	0x4fe
- 19356 625e 31       		.uleb128 0x31
- 19357 625f 190E0000 		.long	0xe19
- 19358 6263 03       		.byte	0x3
- 19359 6264 91       		.byte	0x91
- 19360 6265 F05F     		.sleb128 -4112
- 19361 6267 31       		.uleb128 0x31
- 19362 6268 0D0E0000 		.long	0xe0d
- 19363 626c 03       		.byte	0x3
- 19364 626d 91       		.byte	0x91
- 19365 626e 8060     		.sleb128 -4096
- 19366 6270 34       		.uleb128 0x34
- 19367 6271 260E0000 		.long	0xe26
- 19368 6275 00000000 		.quad	.LBB1912
- 19368      00000000 
- 19369 627d 00000000 		.quad	.LBE1912
- 19369      00000000 
- 19370 6285 03       		.byte	0x3
- 19371 6286 7501     		.value	0x175
- 19372 6288 31       		.uleb128 0x31
- 19373 6289 440E0000 		.long	0xe44
- 19374 628d 03       		.byte	0x3
- 19375 628e 91       		.byte	0x91
- 19376 628f 9060     		.sleb128 -4080
- 19377 6291 31       		.uleb128 0x31
- 19378 6292 380E0000 		.long	0xe38
- 19379 6296 03       		.byte	0x3
- 19380 6297 91       		.byte	0x91
- 19381 6298 A060     		.sleb128 -4064
- 19382 629a 00       		.byte	0x0
- 19383 629b 00       		.byte	0x0
- 19384 629c 00       		.byte	0x0
- 19385 629d 00       		.byte	0x0
- 19386 629e 34       		.uleb128 0x34
- 19387 629f BA0D0000 		.long	0xdba
- 19388 62a3 00000000 		.quad	.LBB1914
- 19388      00000000 
- 19389 62ab 00000000 		.quad	.LBE1914
- 19389      00000000 
- 19390 62b3 03       		.byte	0x3
- 19391 62b4 2106     		.value	0x621
- 19392 62b6 31       		.uleb128 0x31
- 19393 62b7 CC0D0000 		.long	0xdcc
- 19394 62bb 03       		.byte	0x3
- 19395 62bc 91       		.byte	0x91
- 19396 62bd B060     		.sleb128 -4048
- 19397 62bf 32       		.uleb128 0x32
- 19398 62c0 00000000 		.quad	.LBB1915
-
GAS LISTING /tmp/ccPaCTqg.s 			page 508
-
-
- 19398      00000000 
- 19399 62c8 00000000 		.quad	.LBE1915
- 19399      00000000 
- 19400 62d0 33       		.uleb128 0x33
- 19401 62d1 D80D0000 		.long	0xdd8
- 19402 62d5 09       		.byte	0x9
- 19403 62d6 03       		.byte	0x3
- 19404 62d7 00000000 		.quad	mask.8002
- 19404      00000000 
- 19405 62df 34       		.uleb128 0x34
- 19406 62e0 FB0D0000 		.long	0xdfb
- 19407 62e4 00000000 		.quad	.LBB1916
- 19407      00000000 
- 19408 62ec 00000000 		.quad	.LBE1916
- 19408      00000000 
- 19409 62f4 03       		.byte	0x3
- 19410 62f5 FE04     		.value	0x4fe
- 19411 62f7 31       		.uleb128 0x31
- 19412 62f8 190E0000 		.long	0xe19
- 19413 62fc 03       		.byte	0x3
- 19414 62fd 91       		.byte	0x91
- 19415 62fe C060     		.sleb128 -4032
- 19416 6300 31       		.uleb128 0x31
- 19417 6301 0D0E0000 		.long	0xe0d
- 19418 6305 03       		.byte	0x3
- 19419 6306 91       		.byte	0x91
- 19420 6307 D060     		.sleb128 -4016
- 19421 6309 34       		.uleb128 0x34
- 19422 630a 260E0000 		.long	0xe26
- 19423 630e 00000000 		.quad	.LBB1918
- 19423      00000000 
- 19424 6316 00000000 		.quad	.LBE1918
- 19424      00000000 
- 19425 631e 03       		.byte	0x3
- 19426 631f 7501     		.value	0x175
- 19427 6321 31       		.uleb128 0x31
- 19428 6322 440E0000 		.long	0xe44
- 19429 6326 03       		.byte	0x3
- 19430 6327 91       		.byte	0x91
- 19431 6328 E060     		.sleb128 -4000
- 19432 632a 31       		.uleb128 0x31
- 19433 632b 380E0000 		.long	0xe38
- 19434 632f 03       		.byte	0x3
- 19435 6330 91       		.byte	0x91
- 19436 6331 F060     		.sleb128 -3984
- 19437 6333 00       		.byte	0x0
- 19438 6334 00       		.byte	0x0
- 19439 6335 00       		.byte	0x0
- 19440 6336 00       		.byte	0x0
- 19441 6337 00       		.byte	0x0
- 19442 6338 00       		.byte	0x0
- 19443 6339 30       		.uleb128 0x30
- 19444 633a F7580000 		.long	0x58f7
- 19445 633e 00000000 		.quad	.LBB1920
- 19445      00000000 
- 19446 6346 00000000 		.quad	.LBE1920
- 19446      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 509
-
-
- 19447 634e 03       		.byte	0x3
- 19448 634f 8807     		.value	0x788
- 19449 6351 68630000 		.long	0x6368
- 19450 6355 31       		.uleb128 0x31
- 19451 6356 12590000 		.long	0x5912
- 19452 635a 03       		.byte	0x3
- 19453 635b 91       		.byte	0x91
- 19454 635c 8061     		.sleb128 -3968
- 19455 635e 31       		.uleb128 0x31
- 19456 635f 08590000 		.long	0x5908
- 19457 6363 03       		.byte	0x3
- 19458 6364 91       		.byte	0x91
- 19459 6365 9061     		.sleb128 -3952
- 19460 6367 00       		.byte	0x0
- 19461 6368 30       		.uleb128 0x30
- 19462 6369 1D590000 		.long	0x591d
- 19463 636d 00000000 		.quad	.LBB1922
- 19463      00000000 
- 19464 6375 00000000 		.quad	.LBE1922
- 19464      00000000 
- 19465 637d 03       		.byte	0x3
- 19466 637e 8907     		.value	0x789
- 19467 6380 25640000 		.long	0x6425
- 19468 6384 31       		.uleb128 0x31
- 19469 6385 2F590000 		.long	0x592f
- 19470 6389 03       		.byte	0x3
- 19471 638a 91       		.byte	0x91
- 19472 638b A061     		.sleb128 -3936
- 19473 638d 32       		.uleb128 0x32
- 19474 638e 00000000 		.quad	.LBB1923
- 19474      00000000 
- 19475 6396 00000000 		.quad	.LBE1923
- 19475      00000000 
- 19476 639e 33       		.uleb128 0x33
- 19477 639f 3B590000 		.long	0x593b
- 19478 63a3 03       		.byte	0x3
- 19479 63a4 76       		.byte	0x76
- 19480 63a5 8055     		.sleb128 -5504
- 19481 63a7 30       		.uleb128 0x30
- 19482 63a8 1A0D0000 		.long	0xd1a
- 19483 63ac 00000000 		.quad	.LBB1924
- 19483      00000000 
- 19484 63b4 00000000 		.quad	.LBE1924
- 19484      00000000 
- 19485 63bc 03       		.byte	0x3
- 19486 63bd 7206     		.value	0x672
- 19487 63bf D6630000 		.long	0x63d6
- 19488 63c3 31       		.uleb128 0x31
- 19489 63c4 380D0000 		.long	0xd38
- 19490 63c8 03       		.byte	0x3
- 19491 63c9 91       		.byte	0x91
- 19492 63ca BC61     		.sleb128 -3908
- 19493 63cc 31       		.uleb128 0x31
- 19494 63cd 2C0D0000 		.long	0xd2c
- 19495 63d1 03       		.byte	0x3
- 19496 63d2 91       		.byte	0x91
- 19497 63d3 C061     		.sleb128 -3904
-
GAS LISTING /tmp/ccPaCTqg.s 			page 510
-
-
- 19498 63d5 00       		.byte	0x0
- 19499 63d6 34       		.uleb128 0x34
- 19500 63d7 48590000 		.long	0x5948
- 19501 63db 00000000 		.quad	.LBB1926
- 19501      00000000 
- 19502 63e3 00000000 		.quad	.LBE1926
- 19502      00000000 
- 19503 63eb 03       		.byte	0x3
- 19504 63ec 7306     		.value	0x673
- 19505 63ee 31       		.uleb128 0x31
- 19506 63ef 5A590000 		.long	0x595a
- 19507 63f3 03       		.byte	0x3
- 19508 63f4 91       		.byte	0x91
- 19509 63f5 D061     		.sleb128 -3888
- 19510 63f7 34       		.uleb128 0x34
- 19511 63f8 640D0000 		.long	0xd64
- 19512 63fc 00000000 		.quad	.LBB1928
- 19512      00000000 
- 19513 6404 00000000 		.quad	.LBE1928
- 19513      00000000 
- 19514 640c 03       		.byte	0x3
- 19515 640d 6505     		.value	0x565
- 19516 640f 31       		.uleb128 0x31
- 19517 6410 820D0000 		.long	0xd82
- 19518 6414 03       		.byte	0x3
- 19519 6415 91       		.byte	0x91
- 19520 6416 EC61     		.sleb128 -3860
- 19521 6418 31       		.uleb128 0x31
- 19522 6419 760D0000 		.long	0xd76
- 19523 641d 03       		.byte	0x3
- 19524 641e 91       		.byte	0x91
- 19525 641f F061     		.sleb128 -3856
- 19526 6421 00       		.byte	0x0
- 19527 6422 00       		.byte	0x0
- 19528 6423 00       		.byte	0x0
- 19529 6424 00       		.byte	0x0
- 19530 6425 30       		.uleb128 0x30
- 19531 6426 8F0D0000 		.long	0xd8f
- 19532 642a 00000000 		.quad	.LBB1930
- 19532      00000000 
- 19533 6432 00000000 		.quad	.LBE1930
- 19533      00000000 
- 19534 643a 03       		.byte	0x3
- 19535 643b 8907     		.value	0x789
- 19536 643d 39660000 		.long	0x6639
- 19537 6441 31       		.uleb128 0x31
- 19538 6442 A10D0000 		.long	0xda1
- 19539 6446 03       		.byte	0x3
- 19540 6447 91       		.byte	0x91
- 19541 6448 8062     		.sleb128 -3840
- 19542 644a 32       		.uleb128 0x32
- 19543 644b 00000000 		.quad	.LBB1931
- 19543      00000000 
- 19544 6453 00000000 		.quad	.LBE1931
- 19544      00000000 
- 19545 645b 33       		.uleb128 0x33
- 19546 645c AD0D0000 		.long	0xdad
-
GAS LISTING /tmp/ccPaCTqg.s 			page 511
-
-
- 19547 6460 03       		.byte	0x3
- 19548 6461 76       		.byte	0x76
- 19549 6462 9055     		.sleb128 -5488
- 19550 6464 30       		.uleb128 0x30
- 19551 6465 BA0D0000 		.long	0xdba
- 19552 6469 00000000 		.quad	.LBB1932
- 19552      00000000 
- 19553 6471 00000000 		.quad	.LBE1932
- 19553      00000000 
- 19554 6479 03       		.byte	0x3
- 19555 647a 1F06     		.value	0x61f
- 19556 647c 01650000 		.long	0x6501
- 19557 6480 31       		.uleb128 0x31
- 19558 6481 CC0D0000 		.long	0xdcc
- 19559 6485 03       		.byte	0x3
- 19560 6486 91       		.byte	0x91
- 19561 6487 9062     		.sleb128 -3824
- 19562 6489 32       		.uleb128 0x32
- 19563 648a 00000000 		.quad	.LBB1933
- 19563      00000000 
- 19564 6492 00000000 		.quad	.LBE1933
- 19564      00000000 
- 19565 649a 33       		.uleb128 0x33
- 19566 649b D80D0000 		.long	0xdd8
- 19567 649f 09       		.byte	0x9
- 19568 64a0 03       		.byte	0x3
- 19569 64a1 00000000 		.quad	mask.8002
- 19569      00000000 
- 19570 64a9 34       		.uleb128 0x34
- 19571 64aa FB0D0000 		.long	0xdfb
- 19572 64ae 00000000 		.quad	.LBB1934
- 19572      00000000 
- 19573 64b6 00000000 		.quad	.LBE1934
- 19573      00000000 
- 19574 64be 03       		.byte	0x3
- 19575 64bf FE04     		.value	0x4fe
- 19576 64c1 31       		.uleb128 0x31
- 19577 64c2 190E0000 		.long	0xe19
- 19578 64c6 03       		.byte	0x3
- 19579 64c7 91       		.byte	0x91
- 19580 64c8 A062     		.sleb128 -3808
- 19581 64ca 31       		.uleb128 0x31
- 19582 64cb 0D0E0000 		.long	0xe0d
- 19583 64cf 03       		.byte	0x3
- 19584 64d0 91       		.byte	0x91
- 19585 64d1 B062     		.sleb128 -3792
- 19586 64d3 34       		.uleb128 0x34
- 19587 64d4 260E0000 		.long	0xe26
- 19588 64d8 00000000 		.quad	.LBB1936
- 19588      00000000 
- 19589 64e0 00000000 		.quad	.LBE1936
- 19589      00000000 
- 19590 64e8 03       		.byte	0x3
- 19591 64e9 7501     		.value	0x175
- 19592 64eb 31       		.uleb128 0x31
- 19593 64ec 440E0000 		.long	0xe44
- 19594 64f0 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 512
-
-
- 19595 64f1 91       		.byte	0x91
- 19596 64f2 C062     		.sleb128 -3776
- 19597 64f4 31       		.uleb128 0x31
- 19598 64f5 380E0000 		.long	0xe38
- 19599 64f9 03       		.byte	0x3
- 19600 64fa 91       		.byte	0x91
- 19601 64fb D062     		.sleb128 -3760
- 19602 64fd 00       		.byte	0x0
- 19603 64fe 00       		.byte	0x0
- 19604 64ff 00       		.byte	0x0
- 19605 6500 00       		.byte	0x0
- 19606 6501 30       		.uleb128 0x30
- 19607 6502 BA0D0000 		.long	0xdba
- 19608 6506 00000000 		.quad	.LBB1938
- 19608      00000000 
- 19609 650e 00000000 		.quad	.LBE1938
- 19609      00000000 
- 19610 6516 03       		.byte	0x3
- 19611 6517 2006     		.value	0x620
- 19612 6519 9E650000 		.long	0x659e
- 19613 651d 31       		.uleb128 0x31
- 19614 651e CC0D0000 		.long	0xdcc
- 19615 6522 03       		.byte	0x3
- 19616 6523 91       		.byte	0x91
- 19617 6524 E062     		.sleb128 -3744
- 19618 6526 32       		.uleb128 0x32
- 19619 6527 00000000 		.quad	.LBB1939
- 19619      00000000 
- 19620 652f 00000000 		.quad	.LBE1939
- 19620      00000000 
- 19621 6537 33       		.uleb128 0x33
- 19622 6538 D80D0000 		.long	0xdd8
- 19623 653c 09       		.byte	0x9
- 19624 653d 03       		.byte	0x3
- 19625 653e 00000000 		.quad	mask.8002
- 19625      00000000 
- 19626 6546 34       		.uleb128 0x34
- 19627 6547 FB0D0000 		.long	0xdfb
- 19628 654b 00000000 		.quad	.LBB1940
- 19628      00000000 
- 19629 6553 00000000 		.quad	.LBE1940
- 19629      00000000 
- 19630 655b 03       		.byte	0x3
- 19631 655c FE04     		.value	0x4fe
- 19632 655e 31       		.uleb128 0x31
- 19633 655f 190E0000 		.long	0xe19
- 19634 6563 03       		.byte	0x3
- 19635 6564 91       		.byte	0x91
- 19636 6565 F062     		.sleb128 -3728
- 19637 6567 31       		.uleb128 0x31
- 19638 6568 0D0E0000 		.long	0xe0d
- 19639 656c 03       		.byte	0x3
- 19640 656d 91       		.byte	0x91
- 19641 656e 8063     		.sleb128 -3712
- 19642 6570 34       		.uleb128 0x34
- 19643 6571 260E0000 		.long	0xe26
- 19644 6575 00000000 		.quad	.LBB1942
-
GAS LISTING /tmp/ccPaCTqg.s 			page 513
-
-
- 19644      00000000 
- 19645 657d 00000000 		.quad	.LBE1942
- 19645      00000000 
- 19646 6585 03       		.byte	0x3
- 19647 6586 7501     		.value	0x175
- 19648 6588 31       		.uleb128 0x31
- 19649 6589 440E0000 		.long	0xe44
- 19650 658d 03       		.byte	0x3
- 19651 658e 91       		.byte	0x91
- 19652 658f 9063     		.sleb128 -3696
- 19653 6591 31       		.uleb128 0x31
- 19654 6592 380E0000 		.long	0xe38
- 19655 6596 03       		.byte	0x3
- 19656 6597 91       		.byte	0x91
- 19657 6598 A063     		.sleb128 -3680
- 19658 659a 00       		.byte	0x0
- 19659 659b 00       		.byte	0x0
- 19660 659c 00       		.byte	0x0
- 19661 659d 00       		.byte	0x0
- 19662 659e 34       		.uleb128 0x34
- 19663 659f BA0D0000 		.long	0xdba
- 19664 65a3 00000000 		.quad	.LBB1944
- 19664      00000000 
- 19665 65ab 00000000 		.quad	.LBE1944
- 19665      00000000 
- 19666 65b3 03       		.byte	0x3
- 19667 65b4 2106     		.value	0x621
- 19668 65b6 31       		.uleb128 0x31
- 19669 65b7 CC0D0000 		.long	0xdcc
- 19670 65bb 03       		.byte	0x3
- 19671 65bc 91       		.byte	0x91
- 19672 65bd B063     		.sleb128 -3664
- 19673 65bf 32       		.uleb128 0x32
- 19674 65c0 00000000 		.quad	.LBB1945
- 19674      00000000 
- 19675 65c8 00000000 		.quad	.LBE1945
- 19675      00000000 
- 19676 65d0 33       		.uleb128 0x33
- 19677 65d1 D80D0000 		.long	0xdd8
- 19678 65d5 09       		.byte	0x9
- 19679 65d6 03       		.byte	0x3
- 19680 65d7 00000000 		.quad	mask.8002
- 19680      00000000 
- 19681 65df 34       		.uleb128 0x34
- 19682 65e0 FB0D0000 		.long	0xdfb
- 19683 65e4 00000000 		.quad	.LBB1946
- 19683      00000000 
- 19684 65ec 00000000 		.quad	.LBE1946
- 19684      00000000 
- 19685 65f4 03       		.byte	0x3
- 19686 65f5 FE04     		.value	0x4fe
- 19687 65f7 31       		.uleb128 0x31
- 19688 65f8 190E0000 		.long	0xe19
- 19689 65fc 03       		.byte	0x3
- 19690 65fd 91       		.byte	0x91
- 19691 65fe C063     		.sleb128 -3648
- 19692 6600 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 514
-
-
- 19693 6601 0D0E0000 		.long	0xe0d
- 19694 6605 03       		.byte	0x3
- 19695 6606 91       		.byte	0x91
- 19696 6607 D063     		.sleb128 -3632
- 19697 6609 34       		.uleb128 0x34
- 19698 660a 260E0000 		.long	0xe26
- 19699 660e 00000000 		.quad	.LBB1948
- 19699      00000000 
- 19700 6616 00000000 		.quad	.LBE1948
- 19700      00000000 
- 19701 661e 03       		.byte	0x3
- 19702 661f 7501     		.value	0x175
- 19703 6621 31       		.uleb128 0x31
- 19704 6622 440E0000 		.long	0xe44
- 19705 6626 03       		.byte	0x3
- 19706 6627 91       		.byte	0x91
- 19707 6628 E063     		.sleb128 -3616
- 19708 662a 31       		.uleb128 0x31
- 19709 662b 380E0000 		.long	0xe38
- 19710 662f 03       		.byte	0x3
- 19711 6630 91       		.byte	0x91
- 19712 6631 F063     		.sleb128 -3600
- 19713 6633 00       		.byte	0x0
- 19714 6634 00       		.byte	0x0
- 19715 6635 00       		.byte	0x0
- 19716 6636 00       		.byte	0x0
- 19717 6637 00       		.byte	0x0
- 19718 6638 00       		.byte	0x0
- 19719 6639 30       		.uleb128 0x30
- 19720 663a F7580000 		.long	0x58f7
- 19721 663e 00000000 		.quad	.LBB1950
- 19721      00000000 
- 19722 6646 00000000 		.quad	.LBE1950
- 19722      00000000 
- 19723 664e 03       		.byte	0x3
- 19724 664f 8907     		.value	0x789
- 19725 6651 68660000 		.long	0x6668
- 19726 6655 31       		.uleb128 0x31
- 19727 6656 12590000 		.long	0x5912
- 19728 665a 03       		.byte	0x3
- 19729 665b 91       		.byte	0x91
- 19730 665c 8064     		.sleb128 -3584
- 19731 665e 31       		.uleb128 0x31
- 19732 665f 08590000 		.long	0x5908
- 19733 6663 03       		.byte	0x3
- 19734 6664 91       		.byte	0x91
- 19735 6665 9064     		.sleb128 -3568
- 19736 6667 00       		.byte	0x0
- 19737 6668 30       		.uleb128 0x30
- 19738 6669 E30C0000 		.long	0xce3
- 19739 666d 00000000 		.quad	.LBB1952
- 19739      00000000 
- 19740 6675 00000000 		.quad	.LBE1952
- 19740      00000000 
- 19741 667d 03       		.byte	0x3
- 19742 667e 8A07     		.value	0x78a
- 19743 6680 2E670000 		.long	0x672e
-
GAS LISTING /tmp/ccPaCTqg.s 			page 515
-
-
- 19744 6684 31       		.uleb128 0x31
- 19745 6685 010D0000 		.long	0xd01
- 19746 6689 03       		.byte	0x3
- 19747 668a 91       		.byte	0x91
- 19748 668b AC64     		.sleb128 -3540
- 19749 668d 31       		.uleb128 0x31
- 19750 668e F50C0000 		.long	0xcf5
- 19751 6692 03       		.byte	0x3
- 19752 6693 91       		.byte	0x91
- 19753 6694 B064     		.sleb128 -3536
- 19754 6696 32       		.uleb128 0x32
- 19755 6697 00000000 		.quad	.LBB1953
- 19755      00000000 
- 19756 669f 00000000 		.quad	.LBE1953
- 19756      00000000 
- 19757 66a7 33       		.uleb128 0x33
- 19758 66a8 0D0D0000 		.long	0xd0d
- 19759 66ac 03       		.byte	0x3
- 19760 66ad 76       		.byte	0x76
- 19761 66ae A055     		.sleb128 -5472
- 19762 66b0 30       		.uleb128 0x30
- 19763 66b1 1A0D0000 		.long	0xd1a
- 19764 66b5 00000000 		.quad	.LBB1954
- 19764      00000000 
- 19765 66bd 00000000 		.quad	.LBE1954
- 19765      00000000 
- 19766 66c5 03       		.byte	0x3
- 19767 66c6 8A06     		.value	0x68a
- 19768 66c8 DF660000 		.long	0x66df
- 19769 66cc 31       		.uleb128 0x31
- 19770 66cd 380D0000 		.long	0xd38
- 19771 66d1 03       		.byte	0x3
- 19772 66d2 91       		.byte	0x91
- 19773 66d3 CC64     		.sleb128 -3508
- 19774 66d5 31       		.uleb128 0x31
- 19775 66d6 2C0D0000 		.long	0xd2c
- 19776 66da 03       		.byte	0x3
- 19777 66db 91       		.byte	0x91
- 19778 66dc D064     		.sleb128 -3504
- 19779 66de 00       		.byte	0x0
- 19780 66df 34       		.uleb128 0x34
- 19781 66e0 450D0000 		.long	0xd45
- 19782 66e4 00000000 		.quad	.LBB1956
- 19782      00000000 
- 19783 66ec 00000000 		.quad	.LBE1956
- 19783      00000000 
- 19784 66f4 03       		.byte	0x3
- 19785 66f5 8B06     		.value	0x68b
- 19786 66f7 31       		.uleb128 0x31
- 19787 66f8 570D0000 		.long	0xd57
- 19788 66fc 03       		.byte	0x3
- 19789 66fd 91       		.byte	0x91
- 19790 66fe E064     		.sleb128 -3488
- 19791 6700 34       		.uleb128 0x34
- 19792 6701 640D0000 		.long	0xd64
- 19793 6705 00000000 		.quad	.LBB1958
- 19793      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 516
-
-
- 19794 670d 00000000 		.quad	.LBE1958
- 19794      00000000 
- 19795 6715 03       		.byte	0x3
- 19796 6716 4905     		.value	0x549
- 19797 6718 31       		.uleb128 0x31
- 19798 6719 820D0000 		.long	0xd82
- 19799 671d 03       		.byte	0x3
- 19800 671e 91       		.byte	0x91
- 19801 671f FC64     		.sleb128 -3460
- 19802 6721 31       		.uleb128 0x31
- 19803 6722 760D0000 		.long	0xd76
- 19804 6726 03       		.byte	0x3
- 19805 6727 91       		.byte	0x91
- 19806 6728 8065     		.sleb128 -3456
- 19807 672a 00       		.byte	0x0
- 19808 672b 00       		.byte	0x0
- 19809 672c 00       		.byte	0x0
- 19810 672d 00       		.byte	0x0
- 19811 672e 30       		.uleb128 0x30
- 19812 672f 8F0D0000 		.long	0xd8f
- 19813 6733 00000000 		.quad	.LBB1960
- 19813      00000000 
- 19814 673b 00000000 		.quad	.LBE1960
- 19814      00000000 
- 19815 6743 03       		.byte	0x3
- 19816 6744 8A07     		.value	0x78a
- 19817 6746 42690000 		.long	0x6942
- 19818 674a 31       		.uleb128 0x31
- 19819 674b A10D0000 		.long	0xda1
- 19820 674f 03       		.byte	0x3
- 19821 6750 91       		.byte	0x91
- 19822 6751 9065     		.sleb128 -3440
- 19823 6753 32       		.uleb128 0x32
- 19824 6754 00000000 		.quad	.LBB1961
- 19824      00000000 
- 19825 675c 00000000 		.quad	.LBE1961
- 19825      00000000 
- 19826 6764 33       		.uleb128 0x33
- 19827 6765 AD0D0000 		.long	0xdad
- 19828 6769 03       		.byte	0x3
- 19829 676a 76       		.byte	0x76
- 19830 676b B055     		.sleb128 -5456
- 19831 676d 30       		.uleb128 0x30
- 19832 676e BA0D0000 		.long	0xdba
- 19833 6772 00000000 		.quad	.LBB1962
- 19833      00000000 
- 19834 677a 00000000 		.quad	.LBE1962
- 19834      00000000 
- 19835 6782 03       		.byte	0x3
- 19836 6783 1F06     		.value	0x61f
- 19837 6785 0A680000 		.long	0x680a
- 19838 6789 31       		.uleb128 0x31
- 19839 678a CC0D0000 		.long	0xdcc
- 19840 678e 03       		.byte	0x3
- 19841 678f 91       		.byte	0x91
- 19842 6790 A065     		.sleb128 -3424
- 19843 6792 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccPaCTqg.s 			page 517
-
-
- 19844 6793 00000000 		.quad	.LBB1963
- 19844      00000000 
- 19845 679b 00000000 		.quad	.LBE1963
- 19845      00000000 
- 19846 67a3 33       		.uleb128 0x33
- 19847 67a4 D80D0000 		.long	0xdd8
- 19848 67a8 09       		.byte	0x9
- 19849 67a9 03       		.byte	0x3
- 19850 67aa 00000000 		.quad	mask.8002
- 19850      00000000 
- 19851 67b2 34       		.uleb128 0x34
- 19852 67b3 FB0D0000 		.long	0xdfb
- 19853 67b7 00000000 		.quad	.LBB1964
- 19853      00000000 
- 19854 67bf 00000000 		.quad	.LBE1964
- 19854      00000000 
- 19855 67c7 03       		.byte	0x3
- 19856 67c8 FE04     		.value	0x4fe
- 19857 67ca 31       		.uleb128 0x31
- 19858 67cb 190E0000 		.long	0xe19
- 19859 67cf 03       		.byte	0x3
- 19860 67d0 91       		.byte	0x91
- 19861 67d1 B065     		.sleb128 -3408
- 19862 67d3 31       		.uleb128 0x31
- 19863 67d4 0D0E0000 		.long	0xe0d
- 19864 67d8 03       		.byte	0x3
- 19865 67d9 91       		.byte	0x91
- 19866 67da C065     		.sleb128 -3392
- 19867 67dc 34       		.uleb128 0x34
- 19868 67dd 260E0000 		.long	0xe26
- 19869 67e1 00000000 		.quad	.LBB1966
- 19869      00000000 
- 19870 67e9 00000000 		.quad	.LBE1966
- 19870      00000000 
- 19871 67f1 03       		.byte	0x3
- 19872 67f2 7501     		.value	0x175
- 19873 67f4 31       		.uleb128 0x31
- 19874 67f5 440E0000 		.long	0xe44
- 19875 67f9 03       		.byte	0x3
- 19876 67fa 91       		.byte	0x91
- 19877 67fb D065     		.sleb128 -3376
- 19878 67fd 31       		.uleb128 0x31
- 19879 67fe 380E0000 		.long	0xe38
- 19880 6802 03       		.byte	0x3
- 19881 6803 91       		.byte	0x91
- 19882 6804 E065     		.sleb128 -3360
- 19883 6806 00       		.byte	0x0
- 19884 6807 00       		.byte	0x0
- 19885 6808 00       		.byte	0x0
- 19886 6809 00       		.byte	0x0
- 19887 680a 30       		.uleb128 0x30
- 19888 680b BA0D0000 		.long	0xdba
- 19889 680f 00000000 		.quad	.LBB1968
- 19889      00000000 
- 19890 6817 00000000 		.quad	.LBE1968
- 19890      00000000 
- 19891 681f 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 518
-
-
- 19892 6820 2006     		.value	0x620
- 19893 6822 A7680000 		.long	0x68a7
- 19894 6826 31       		.uleb128 0x31
- 19895 6827 CC0D0000 		.long	0xdcc
- 19896 682b 03       		.byte	0x3
- 19897 682c 91       		.byte	0x91
- 19898 682d F065     		.sleb128 -3344
- 19899 682f 32       		.uleb128 0x32
- 19900 6830 00000000 		.quad	.LBB1969
- 19900      00000000 
- 19901 6838 00000000 		.quad	.LBE1969
- 19901      00000000 
- 19902 6840 33       		.uleb128 0x33
- 19903 6841 D80D0000 		.long	0xdd8
- 19904 6845 09       		.byte	0x9
- 19905 6846 03       		.byte	0x3
- 19906 6847 00000000 		.quad	mask.8002
- 19906      00000000 
- 19907 684f 34       		.uleb128 0x34
- 19908 6850 FB0D0000 		.long	0xdfb
- 19909 6854 00000000 		.quad	.LBB1970
- 19909      00000000 
- 19910 685c 00000000 		.quad	.LBE1970
- 19910      00000000 
- 19911 6864 03       		.byte	0x3
- 19912 6865 FE04     		.value	0x4fe
- 19913 6867 31       		.uleb128 0x31
- 19914 6868 190E0000 		.long	0xe19
- 19915 686c 03       		.byte	0x3
- 19916 686d 91       		.byte	0x91
- 19917 686e 8066     		.sleb128 -3328
- 19918 6870 31       		.uleb128 0x31
- 19919 6871 0D0E0000 		.long	0xe0d
- 19920 6875 03       		.byte	0x3
- 19921 6876 91       		.byte	0x91
- 19922 6877 9066     		.sleb128 -3312
- 19923 6879 34       		.uleb128 0x34
- 19924 687a 260E0000 		.long	0xe26
- 19925 687e 00000000 		.quad	.LBB1972
- 19925      00000000 
- 19926 6886 00000000 		.quad	.LBE1972
- 19926      00000000 
- 19927 688e 03       		.byte	0x3
- 19928 688f 7501     		.value	0x175
- 19929 6891 31       		.uleb128 0x31
- 19930 6892 440E0000 		.long	0xe44
- 19931 6896 03       		.byte	0x3
- 19932 6897 91       		.byte	0x91
- 19933 6898 A066     		.sleb128 -3296
- 19934 689a 31       		.uleb128 0x31
- 19935 689b 380E0000 		.long	0xe38
- 19936 689f 03       		.byte	0x3
- 19937 68a0 91       		.byte	0x91
- 19938 68a1 B066     		.sleb128 -3280
- 19939 68a3 00       		.byte	0x0
- 19940 68a4 00       		.byte	0x0
- 19941 68a5 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 519
-
-
- 19942 68a6 00       		.byte	0x0
- 19943 68a7 34       		.uleb128 0x34
- 19944 68a8 BA0D0000 		.long	0xdba
- 19945 68ac 00000000 		.quad	.LBB1974
- 19945      00000000 
- 19946 68b4 00000000 		.quad	.LBE1974
- 19946      00000000 
- 19947 68bc 03       		.byte	0x3
- 19948 68bd 2106     		.value	0x621
- 19949 68bf 31       		.uleb128 0x31
- 19950 68c0 CC0D0000 		.long	0xdcc
- 19951 68c4 03       		.byte	0x3
- 19952 68c5 91       		.byte	0x91
- 19953 68c6 C066     		.sleb128 -3264
- 19954 68c8 32       		.uleb128 0x32
- 19955 68c9 00000000 		.quad	.LBB1975
- 19955      00000000 
- 19956 68d1 00000000 		.quad	.LBE1975
- 19956      00000000 
- 19957 68d9 33       		.uleb128 0x33
- 19958 68da D80D0000 		.long	0xdd8
- 19959 68de 09       		.byte	0x9
- 19960 68df 03       		.byte	0x3
- 19961 68e0 00000000 		.quad	mask.8002
- 19961      00000000 
- 19962 68e8 34       		.uleb128 0x34
- 19963 68e9 FB0D0000 		.long	0xdfb
- 19964 68ed 00000000 		.quad	.LBB1976
- 19964      00000000 
- 19965 68f5 00000000 		.quad	.LBE1976
- 19965      00000000 
- 19966 68fd 03       		.byte	0x3
- 19967 68fe FE04     		.value	0x4fe
- 19968 6900 31       		.uleb128 0x31
- 19969 6901 190E0000 		.long	0xe19
- 19970 6905 03       		.byte	0x3
- 19971 6906 91       		.byte	0x91
- 19972 6907 D066     		.sleb128 -3248
- 19973 6909 31       		.uleb128 0x31
- 19974 690a 0D0E0000 		.long	0xe0d
- 19975 690e 03       		.byte	0x3
- 19976 690f 91       		.byte	0x91
- 19977 6910 E066     		.sleb128 -3232
- 19978 6912 34       		.uleb128 0x34
- 19979 6913 260E0000 		.long	0xe26
- 19980 6917 00000000 		.quad	.LBB1978
- 19980      00000000 
- 19981 691f 00000000 		.quad	.LBE1978
- 19981      00000000 
- 19982 6927 03       		.byte	0x3
- 19983 6928 7501     		.value	0x175
- 19984 692a 31       		.uleb128 0x31
- 19985 692b 440E0000 		.long	0xe44
- 19986 692f 03       		.byte	0x3
- 19987 6930 91       		.byte	0x91
- 19988 6931 F066     		.sleb128 -3216
- 19989 6933 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 520
-
-
- 19990 6934 380E0000 		.long	0xe38
- 19991 6938 03       		.byte	0x3
- 19992 6939 91       		.byte	0x91
- 19993 693a 8067     		.sleb128 -3200
- 19994 693c 00       		.byte	0x0
- 19995 693d 00       		.byte	0x0
- 19996 693e 00       		.byte	0x0
- 19997 693f 00       		.byte	0x0
- 19998 6940 00       		.byte	0x0
- 19999 6941 00       		.byte	0x0
- 20000 6942 30       		.uleb128 0x30
- 20001 6943 F7580000 		.long	0x58f7
- 20002 6947 00000000 		.quad	.LBB1980
- 20002      00000000 
- 20003 694f 00000000 		.quad	.LBE1980
- 20003      00000000 
- 20004 6957 03       		.byte	0x3
- 20005 6958 8A07     		.value	0x78a
- 20006 695a 71690000 		.long	0x6971
- 20007 695e 31       		.uleb128 0x31
- 20008 695f 12590000 		.long	0x5912
- 20009 6963 03       		.byte	0x3
- 20010 6964 91       		.byte	0x91
- 20011 6965 9067     		.sleb128 -3184
- 20012 6967 31       		.uleb128 0x31
- 20013 6968 08590000 		.long	0x5908
- 20014 696c 03       		.byte	0x3
- 20015 696d 91       		.byte	0x91
- 20016 696e A067     		.sleb128 -3168
- 20017 6970 00       		.byte	0x0
- 20018 6971 30       		.uleb128 0x30
- 20019 6972 1D590000 		.long	0x591d
- 20020 6976 00000000 		.quad	.LBB1982
- 20020      00000000 
- 20021 697e 00000000 		.quad	.LBE1982
- 20021      00000000 
- 20022 6986 03       		.byte	0x3
- 20023 6987 8B07     		.value	0x78b
- 20024 6989 2E6A0000 		.long	0x6a2e
- 20025 698d 31       		.uleb128 0x31
- 20026 698e 2F590000 		.long	0x592f
- 20027 6992 03       		.byte	0x3
- 20028 6993 91       		.byte	0x91
- 20029 6994 B067     		.sleb128 -3152
- 20030 6996 32       		.uleb128 0x32
- 20031 6997 00000000 		.quad	.LBB1983
- 20031      00000000 
- 20032 699f 00000000 		.quad	.LBE1983
- 20032      00000000 
- 20033 69a7 33       		.uleb128 0x33
- 20034 69a8 3B590000 		.long	0x593b
- 20035 69ac 03       		.byte	0x3
- 20036 69ad 76       		.byte	0x76
- 20037 69ae C055     		.sleb128 -5440
- 20038 69b0 30       		.uleb128 0x30
- 20039 69b1 1A0D0000 		.long	0xd1a
- 20040 69b5 00000000 		.quad	.LBB1984
-
GAS LISTING /tmp/ccPaCTqg.s 			page 521
-
-
- 20040      00000000 
- 20041 69bd 00000000 		.quad	.LBE1984
- 20041      00000000 
- 20042 69c5 03       		.byte	0x3
- 20043 69c6 7206     		.value	0x672
- 20044 69c8 DF690000 		.long	0x69df
- 20045 69cc 31       		.uleb128 0x31
- 20046 69cd 380D0000 		.long	0xd38
- 20047 69d1 03       		.byte	0x3
- 20048 69d2 91       		.byte	0x91
- 20049 69d3 CC67     		.sleb128 -3124
- 20050 69d5 31       		.uleb128 0x31
- 20051 69d6 2C0D0000 		.long	0xd2c
- 20052 69da 03       		.byte	0x3
- 20053 69db 91       		.byte	0x91
- 20054 69dc D067     		.sleb128 -3120
- 20055 69de 00       		.byte	0x0
- 20056 69df 34       		.uleb128 0x34
- 20057 69e0 48590000 		.long	0x5948
- 20058 69e4 00000000 		.quad	.LBB1986
- 20058      00000000 
- 20059 69ec 00000000 		.quad	.LBE1986
- 20059      00000000 
- 20060 69f4 03       		.byte	0x3
- 20061 69f5 7306     		.value	0x673
- 20062 69f7 31       		.uleb128 0x31
- 20063 69f8 5A590000 		.long	0x595a
- 20064 69fc 03       		.byte	0x3
- 20065 69fd 91       		.byte	0x91
- 20066 69fe E067     		.sleb128 -3104
- 20067 6a00 34       		.uleb128 0x34
- 20068 6a01 640D0000 		.long	0xd64
- 20069 6a05 00000000 		.quad	.LBB1988
- 20069      00000000 
- 20070 6a0d 00000000 		.quad	.LBE1988
- 20070      00000000 
- 20071 6a15 03       		.byte	0x3
- 20072 6a16 6505     		.value	0x565
- 20073 6a18 31       		.uleb128 0x31
- 20074 6a19 820D0000 		.long	0xd82
- 20075 6a1d 03       		.byte	0x3
- 20076 6a1e 91       		.byte	0x91
- 20077 6a1f FC67     		.sleb128 -3076
- 20078 6a21 31       		.uleb128 0x31
- 20079 6a22 760D0000 		.long	0xd76
- 20080 6a26 03       		.byte	0x3
- 20081 6a27 91       		.byte	0x91
- 20082 6a28 8068     		.sleb128 -3072
- 20083 6a2a 00       		.byte	0x0
- 20084 6a2b 00       		.byte	0x0
- 20085 6a2c 00       		.byte	0x0
- 20086 6a2d 00       		.byte	0x0
- 20087 6a2e 30       		.uleb128 0x30
- 20088 6a2f 8F0D0000 		.long	0xd8f
- 20089 6a33 00000000 		.quad	.LBB1990
- 20089      00000000 
- 20090 6a3b 00000000 		.quad	.LBE1990
-
GAS LISTING /tmp/ccPaCTqg.s 			page 522
-
-
- 20090      00000000 
- 20091 6a43 03       		.byte	0x3
- 20092 6a44 8B07     		.value	0x78b
- 20093 6a46 426C0000 		.long	0x6c42
- 20094 6a4a 31       		.uleb128 0x31
- 20095 6a4b A10D0000 		.long	0xda1
- 20096 6a4f 03       		.byte	0x3
- 20097 6a50 91       		.byte	0x91
- 20098 6a51 9068     		.sleb128 -3056
- 20099 6a53 32       		.uleb128 0x32
- 20100 6a54 00000000 		.quad	.LBB1991
- 20100      00000000 
- 20101 6a5c 00000000 		.quad	.LBE1991
- 20101      00000000 
- 20102 6a64 33       		.uleb128 0x33
- 20103 6a65 AD0D0000 		.long	0xdad
- 20104 6a69 03       		.byte	0x3
- 20105 6a6a 76       		.byte	0x76
- 20106 6a6b D055     		.sleb128 -5424
- 20107 6a6d 30       		.uleb128 0x30
- 20108 6a6e BA0D0000 		.long	0xdba
- 20109 6a72 00000000 		.quad	.LBB1992
- 20109      00000000 
- 20110 6a7a 00000000 		.quad	.LBE1992
- 20110      00000000 
- 20111 6a82 03       		.byte	0x3
- 20112 6a83 1F06     		.value	0x61f
- 20113 6a85 0A6B0000 		.long	0x6b0a
- 20114 6a89 31       		.uleb128 0x31
- 20115 6a8a CC0D0000 		.long	0xdcc
- 20116 6a8e 03       		.byte	0x3
- 20117 6a8f 91       		.byte	0x91
- 20118 6a90 A068     		.sleb128 -3040
- 20119 6a92 32       		.uleb128 0x32
- 20120 6a93 00000000 		.quad	.LBB1993
- 20120      00000000 
- 20121 6a9b 00000000 		.quad	.LBE1993
- 20121      00000000 
- 20122 6aa3 33       		.uleb128 0x33
- 20123 6aa4 D80D0000 		.long	0xdd8
- 20124 6aa8 09       		.byte	0x9
- 20125 6aa9 03       		.byte	0x3
- 20126 6aaa 00000000 		.quad	mask.8002
- 20126      00000000 
- 20127 6ab2 34       		.uleb128 0x34
- 20128 6ab3 FB0D0000 		.long	0xdfb
- 20129 6ab7 00000000 		.quad	.LBB1994
- 20129      00000000 
- 20130 6abf 00000000 		.quad	.LBE1994
- 20130      00000000 
- 20131 6ac7 03       		.byte	0x3
- 20132 6ac8 FE04     		.value	0x4fe
- 20133 6aca 31       		.uleb128 0x31
- 20134 6acb 190E0000 		.long	0xe19
- 20135 6acf 03       		.byte	0x3
- 20136 6ad0 91       		.byte	0x91
- 20137 6ad1 B068     		.sleb128 -3024
-
GAS LISTING /tmp/ccPaCTqg.s 			page 523
-
-
- 20138 6ad3 31       		.uleb128 0x31
- 20139 6ad4 0D0E0000 		.long	0xe0d
- 20140 6ad8 03       		.byte	0x3
- 20141 6ad9 91       		.byte	0x91
- 20142 6ada C068     		.sleb128 -3008
- 20143 6adc 34       		.uleb128 0x34
- 20144 6add 260E0000 		.long	0xe26
- 20145 6ae1 00000000 		.quad	.LBB1996
- 20145      00000000 
- 20146 6ae9 00000000 		.quad	.LBE1996
- 20146      00000000 
- 20147 6af1 03       		.byte	0x3
- 20148 6af2 7501     		.value	0x175
- 20149 6af4 31       		.uleb128 0x31
- 20150 6af5 440E0000 		.long	0xe44
- 20151 6af9 03       		.byte	0x3
- 20152 6afa 91       		.byte	0x91
- 20153 6afb D068     		.sleb128 -2992
- 20154 6afd 31       		.uleb128 0x31
- 20155 6afe 380E0000 		.long	0xe38
- 20156 6b02 03       		.byte	0x3
- 20157 6b03 91       		.byte	0x91
- 20158 6b04 E068     		.sleb128 -2976
- 20159 6b06 00       		.byte	0x0
- 20160 6b07 00       		.byte	0x0
- 20161 6b08 00       		.byte	0x0
- 20162 6b09 00       		.byte	0x0
- 20163 6b0a 30       		.uleb128 0x30
- 20164 6b0b BA0D0000 		.long	0xdba
- 20165 6b0f 00000000 		.quad	.LBB1998
- 20165      00000000 
- 20166 6b17 00000000 		.quad	.LBE1998
- 20166      00000000 
- 20167 6b1f 03       		.byte	0x3
- 20168 6b20 2006     		.value	0x620
- 20169 6b22 A76B0000 		.long	0x6ba7
- 20170 6b26 31       		.uleb128 0x31
- 20171 6b27 CC0D0000 		.long	0xdcc
- 20172 6b2b 03       		.byte	0x3
- 20173 6b2c 91       		.byte	0x91
- 20174 6b2d F068     		.sleb128 -2960
- 20175 6b2f 32       		.uleb128 0x32
- 20176 6b30 00000000 		.quad	.LBB1999
- 20176      00000000 
- 20177 6b38 00000000 		.quad	.LBE1999
- 20177      00000000 
- 20178 6b40 33       		.uleb128 0x33
- 20179 6b41 D80D0000 		.long	0xdd8
- 20180 6b45 09       		.byte	0x9
- 20181 6b46 03       		.byte	0x3
- 20182 6b47 00000000 		.quad	mask.8002
- 20182      00000000 
- 20183 6b4f 34       		.uleb128 0x34
- 20184 6b50 FB0D0000 		.long	0xdfb
- 20185 6b54 00000000 		.quad	.LBB2000
- 20185      00000000 
- 20186 6b5c 00000000 		.quad	.LBE2000
-
GAS LISTING /tmp/ccPaCTqg.s 			page 524
-
-
- 20186      00000000 
- 20187 6b64 03       		.byte	0x3
- 20188 6b65 FE04     		.value	0x4fe
- 20189 6b67 31       		.uleb128 0x31
- 20190 6b68 190E0000 		.long	0xe19
- 20191 6b6c 03       		.byte	0x3
- 20192 6b6d 91       		.byte	0x91
- 20193 6b6e 8069     		.sleb128 -2944
- 20194 6b70 31       		.uleb128 0x31
- 20195 6b71 0D0E0000 		.long	0xe0d
- 20196 6b75 03       		.byte	0x3
- 20197 6b76 91       		.byte	0x91
- 20198 6b77 9069     		.sleb128 -2928
- 20199 6b79 34       		.uleb128 0x34
- 20200 6b7a 260E0000 		.long	0xe26
- 20201 6b7e 00000000 		.quad	.LBB2002
- 20201      00000000 
- 20202 6b86 00000000 		.quad	.LBE2002
- 20202      00000000 
- 20203 6b8e 03       		.byte	0x3
- 20204 6b8f 7501     		.value	0x175
- 20205 6b91 31       		.uleb128 0x31
- 20206 6b92 440E0000 		.long	0xe44
- 20207 6b96 03       		.byte	0x3
- 20208 6b97 91       		.byte	0x91
- 20209 6b98 A069     		.sleb128 -2912
- 20210 6b9a 31       		.uleb128 0x31
- 20211 6b9b 380E0000 		.long	0xe38
- 20212 6b9f 03       		.byte	0x3
- 20213 6ba0 91       		.byte	0x91
- 20214 6ba1 B069     		.sleb128 -2896
- 20215 6ba3 00       		.byte	0x0
- 20216 6ba4 00       		.byte	0x0
- 20217 6ba5 00       		.byte	0x0
- 20218 6ba6 00       		.byte	0x0
- 20219 6ba7 34       		.uleb128 0x34
- 20220 6ba8 BA0D0000 		.long	0xdba
- 20221 6bac 00000000 		.quad	.LBB2004
- 20221      00000000 
- 20222 6bb4 00000000 		.quad	.LBE2004
- 20222      00000000 
- 20223 6bbc 03       		.byte	0x3
- 20224 6bbd 2106     		.value	0x621
- 20225 6bbf 31       		.uleb128 0x31
- 20226 6bc0 CC0D0000 		.long	0xdcc
- 20227 6bc4 03       		.byte	0x3
- 20228 6bc5 91       		.byte	0x91
- 20229 6bc6 C069     		.sleb128 -2880
- 20230 6bc8 32       		.uleb128 0x32
- 20231 6bc9 00000000 		.quad	.LBB2005
- 20231      00000000 
- 20232 6bd1 00000000 		.quad	.LBE2005
- 20232      00000000 
- 20233 6bd9 33       		.uleb128 0x33
- 20234 6bda D80D0000 		.long	0xdd8
- 20235 6bde 09       		.byte	0x9
- 20236 6bdf 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 525
-
-
- 20237 6be0 00000000 		.quad	mask.8002
- 20237      00000000 
- 20238 6be8 34       		.uleb128 0x34
- 20239 6be9 FB0D0000 		.long	0xdfb
- 20240 6bed 00000000 		.quad	.LBB2006
- 20240      00000000 
- 20241 6bf5 00000000 		.quad	.LBE2006
- 20241      00000000 
- 20242 6bfd 03       		.byte	0x3
- 20243 6bfe FE04     		.value	0x4fe
- 20244 6c00 31       		.uleb128 0x31
- 20245 6c01 190E0000 		.long	0xe19
- 20246 6c05 03       		.byte	0x3
- 20247 6c06 91       		.byte	0x91
- 20248 6c07 D069     		.sleb128 -2864
- 20249 6c09 31       		.uleb128 0x31
- 20250 6c0a 0D0E0000 		.long	0xe0d
- 20251 6c0e 03       		.byte	0x3
- 20252 6c0f 91       		.byte	0x91
- 20253 6c10 E069     		.sleb128 -2848
- 20254 6c12 34       		.uleb128 0x34
- 20255 6c13 260E0000 		.long	0xe26
- 20256 6c17 00000000 		.quad	.LBB2008
- 20256      00000000 
- 20257 6c1f 00000000 		.quad	.LBE2008
- 20257      00000000 
- 20258 6c27 03       		.byte	0x3
- 20259 6c28 7501     		.value	0x175
- 20260 6c2a 31       		.uleb128 0x31
- 20261 6c2b 440E0000 		.long	0xe44
- 20262 6c2f 03       		.byte	0x3
- 20263 6c30 91       		.byte	0x91
- 20264 6c31 F069     		.sleb128 -2832
- 20265 6c33 31       		.uleb128 0x31
- 20266 6c34 380E0000 		.long	0xe38
- 20267 6c38 03       		.byte	0x3
- 20268 6c39 91       		.byte	0x91
- 20269 6c3a 806A     		.sleb128 -2816
- 20270 6c3c 00       		.byte	0x0
- 20271 6c3d 00       		.byte	0x0
- 20272 6c3e 00       		.byte	0x0
- 20273 6c3f 00       		.byte	0x0
- 20274 6c40 00       		.byte	0x0
- 20275 6c41 00       		.byte	0x0
- 20276 6c42 30       		.uleb128 0x30
- 20277 6c43 F7580000 		.long	0x58f7
- 20278 6c47 00000000 		.quad	.LBB2010
- 20278      00000000 
- 20279 6c4f 00000000 		.quad	.LBE2010
- 20279      00000000 
- 20280 6c57 03       		.byte	0x3
- 20281 6c58 8B07     		.value	0x78b
- 20282 6c5a 716C0000 		.long	0x6c71
- 20283 6c5e 31       		.uleb128 0x31
- 20284 6c5f 12590000 		.long	0x5912
- 20285 6c63 03       		.byte	0x3
- 20286 6c64 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 526
-
-
- 20287 6c65 906A     		.sleb128 -2800
- 20288 6c67 31       		.uleb128 0x31
- 20289 6c68 08590000 		.long	0x5908
- 20290 6c6c 03       		.byte	0x3
- 20291 6c6d 91       		.byte	0x91
- 20292 6c6e A06A     		.sleb128 -2784
- 20293 6c70 00       		.byte	0x0
- 20294 6c71 30       		.uleb128 0x30
- 20295 6c72 E30C0000 		.long	0xce3
- 20296 6c76 00000000 		.quad	.LBB2012
- 20296      00000000 
- 20297 6c7e 00000000 		.quad	.LBE2012
- 20297      00000000 
- 20298 6c86 03       		.byte	0x3
- 20299 6c87 8C07     		.value	0x78c
- 20300 6c89 376D0000 		.long	0x6d37
- 20301 6c8d 31       		.uleb128 0x31
- 20302 6c8e 010D0000 		.long	0xd01
- 20303 6c92 03       		.byte	0x3
- 20304 6c93 91       		.byte	0x91
- 20305 6c94 BC6A     		.sleb128 -2756
- 20306 6c96 31       		.uleb128 0x31
- 20307 6c97 F50C0000 		.long	0xcf5
- 20308 6c9b 03       		.byte	0x3
- 20309 6c9c 91       		.byte	0x91
- 20310 6c9d C06A     		.sleb128 -2752
- 20311 6c9f 32       		.uleb128 0x32
- 20312 6ca0 00000000 		.quad	.LBB2013
- 20312      00000000 
- 20313 6ca8 00000000 		.quad	.LBE2013
- 20313      00000000 
- 20314 6cb0 33       		.uleb128 0x33
- 20315 6cb1 0D0D0000 		.long	0xd0d
- 20316 6cb5 03       		.byte	0x3
- 20317 6cb6 76       		.byte	0x76
- 20318 6cb7 E055     		.sleb128 -5408
- 20319 6cb9 30       		.uleb128 0x30
- 20320 6cba 1A0D0000 		.long	0xd1a
- 20321 6cbe 00000000 		.quad	.LBB2014
- 20321      00000000 
- 20322 6cc6 00000000 		.quad	.LBE2014
- 20322      00000000 
- 20323 6cce 03       		.byte	0x3
- 20324 6ccf 8A06     		.value	0x68a
- 20325 6cd1 E86C0000 		.long	0x6ce8
- 20326 6cd5 31       		.uleb128 0x31
- 20327 6cd6 380D0000 		.long	0xd38
- 20328 6cda 03       		.byte	0x3
- 20329 6cdb 91       		.byte	0x91
- 20330 6cdc DC6A     		.sleb128 -2724
- 20331 6cde 31       		.uleb128 0x31
- 20332 6cdf 2C0D0000 		.long	0xd2c
- 20333 6ce3 03       		.byte	0x3
- 20334 6ce4 91       		.byte	0x91
- 20335 6ce5 E06A     		.sleb128 -2720
- 20336 6ce7 00       		.byte	0x0
- 20337 6ce8 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 527
-
-
- 20338 6ce9 450D0000 		.long	0xd45
- 20339 6ced 00000000 		.quad	.LBB2016
- 20339      00000000 
- 20340 6cf5 00000000 		.quad	.LBE2016
- 20340      00000000 
- 20341 6cfd 03       		.byte	0x3
- 20342 6cfe 8B06     		.value	0x68b
- 20343 6d00 31       		.uleb128 0x31
- 20344 6d01 570D0000 		.long	0xd57
- 20345 6d05 03       		.byte	0x3
- 20346 6d06 91       		.byte	0x91
- 20347 6d07 F06A     		.sleb128 -2704
- 20348 6d09 34       		.uleb128 0x34
- 20349 6d0a 640D0000 		.long	0xd64
- 20350 6d0e 00000000 		.quad	.LBB2018
- 20350      00000000 
- 20351 6d16 00000000 		.quad	.LBE2018
- 20351      00000000 
- 20352 6d1e 03       		.byte	0x3
- 20353 6d1f 4905     		.value	0x549
- 20354 6d21 31       		.uleb128 0x31
- 20355 6d22 820D0000 		.long	0xd82
- 20356 6d26 03       		.byte	0x3
- 20357 6d27 91       		.byte	0x91
- 20358 6d28 8C6B     		.sleb128 -2676
- 20359 6d2a 31       		.uleb128 0x31
- 20360 6d2b 760D0000 		.long	0xd76
- 20361 6d2f 03       		.byte	0x3
- 20362 6d30 91       		.byte	0x91
- 20363 6d31 906B     		.sleb128 -2672
- 20364 6d33 00       		.byte	0x0
- 20365 6d34 00       		.byte	0x0
- 20366 6d35 00       		.byte	0x0
- 20367 6d36 00       		.byte	0x0
- 20368 6d37 30       		.uleb128 0x30
- 20369 6d38 8F0D0000 		.long	0xd8f
- 20370 6d3c 00000000 		.quad	.LBB2020
- 20370      00000000 
- 20371 6d44 00000000 		.quad	.LBE2020
- 20371      00000000 
- 20372 6d4c 03       		.byte	0x3
- 20373 6d4d 8C07     		.value	0x78c
- 20374 6d4f 4B6F0000 		.long	0x6f4b
- 20375 6d53 31       		.uleb128 0x31
- 20376 6d54 A10D0000 		.long	0xda1
- 20377 6d58 03       		.byte	0x3
- 20378 6d59 91       		.byte	0x91
- 20379 6d5a A06B     		.sleb128 -2656
- 20380 6d5c 32       		.uleb128 0x32
- 20381 6d5d 00000000 		.quad	.LBB2021
- 20381      00000000 
- 20382 6d65 00000000 		.quad	.LBE2021
- 20382      00000000 
- 20383 6d6d 33       		.uleb128 0x33
- 20384 6d6e AD0D0000 		.long	0xdad
- 20385 6d72 03       		.byte	0x3
- 20386 6d73 76       		.byte	0x76
-
GAS LISTING /tmp/ccPaCTqg.s 			page 528
-
-
- 20387 6d74 F055     		.sleb128 -5392
- 20388 6d76 30       		.uleb128 0x30
- 20389 6d77 BA0D0000 		.long	0xdba
- 20390 6d7b 00000000 		.quad	.LBB2022
- 20390      00000000 
- 20391 6d83 00000000 		.quad	.LBE2022
- 20391      00000000 
- 20392 6d8b 03       		.byte	0x3
- 20393 6d8c 1F06     		.value	0x61f
- 20394 6d8e 136E0000 		.long	0x6e13
- 20395 6d92 31       		.uleb128 0x31
- 20396 6d93 CC0D0000 		.long	0xdcc
- 20397 6d97 03       		.byte	0x3
- 20398 6d98 91       		.byte	0x91
- 20399 6d99 B06B     		.sleb128 -2640
- 20400 6d9b 32       		.uleb128 0x32
- 20401 6d9c 00000000 		.quad	.LBB2023
- 20401      00000000 
- 20402 6da4 00000000 		.quad	.LBE2023
- 20402      00000000 
- 20403 6dac 33       		.uleb128 0x33
- 20404 6dad D80D0000 		.long	0xdd8
- 20405 6db1 09       		.byte	0x9
- 20406 6db2 03       		.byte	0x3
- 20407 6db3 00000000 		.quad	mask.8002
- 20407      00000000 
- 20408 6dbb 34       		.uleb128 0x34
- 20409 6dbc FB0D0000 		.long	0xdfb
- 20410 6dc0 00000000 		.quad	.LBB2024
- 20410      00000000 
- 20411 6dc8 00000000 		.quad	.LBE2024
- 20411      00000000 
- 20412 6dd0 03       		.byte	0x3
- 20413 6dd1 FE04     		.value	0x4fe
- 20414 6dd3 31       		.uleb128 0x31
- 20415 6dd4 190E0000 		.long	0xe19
- 20416 6dd8 03       		.byte	0x3
- 20417 6dd9 91       		.byte	0x91
- 20418 6dda C06B     		.sleb128 -2624
- 20419 6ddc 31       		.uleb128 0x31
- 20420 6ddd 0D0E0000 		.long	0xe0d
- 20421 6de1 03       		.byte	0x3
- 20422 6de2 91       		.byte	0x91
- 20423 6de3 D06B     		.sleb128 -2608
- 20424 6de5 34       		.uleb128 0x34
- 20425 6de6 260E0000 		.long	0xe26
- 20426 6dea 00000000 		.quad	.LBB2026
- 20426      00000000 
- 20427 6df2 00000000 		.quad	.LBE2026
- 20427      00000000 
- 20428 6dfa 03       		.byte	0x3
- 20429 6dfb 7501     		.value	0x175
- 20430 6dfd 31       		.uleb128 0x31
- 20431 6dfe 440E0000 		.long	0xe44
- 20432 6e02 03       		.byte	0x3
- 20433 6e03 91       		.byte	0x91
- 20434 6e04 E06B     		.sleb128 -2592
-
GAS LISTING /tmp/ccPaCTqg.s 			page 529
-
-
- 20435 6e06 31       		.uleb128 0x31
- 20436 6e07 380E0000 		.long	0xe38
- 20437 6e0b 03       		.byte	0x3
- 20438 6e0c 91       		.byte	0x91
- 20439 6e0d F06B     		.sleb128 -2576
- 20440 6e0f 00       		.byte	0x0
- 20441 6e10 00       		.byte	0x0
- 20442 6e11 00       		.byte	0x0
- 20443 6e12 00       		.byte	0x0
- 20444 6e13 30       		.uleb128 0x30
- 20445 6e14 BA0D0000 		.long	0xdba
- 20446 6e18 00000000 		.quad	.LBB2028
- 20446      00000000 
- 20447 6e20 00000000 		.quad	.LBE2028
- 20447      00000000 
- 20448 6e28 03       		.byte	0x3
- 20449 6e29 2006     		.value	0x620
- 20450 6e2b B06E0000 		.long	0x6eb0
- 20451 6e2f 31       		.uleb128 0x31
- 20452 6e30 CC0D0000 		.long	0xdcc
- 20453 6e34 03       		.byte	0x3
- 20454 6e35 91       		.byte	0x91
- 20455 6e36 806C     		.sleb128 -2560
- 20456 6e38 32       		.uleb128 0x32
- 20457 6e39 00000000 		.quad	.LBB2029
- 20457      00000000 
- 20458 6e41 00000000 		.quad	.LBE2029
- 20458      00000000 
- 20459 6e49 33       		.uleb128 0x33
- 20460 6e4a D80D0000 		.long	0xdd8
- 20461 6e4e 09       		.byte	0x9
- 20462 6e4f 03       		.byte	0x3
- 20463 6e50 00000000 		.quad	mask.8002
- 20463      00000000 
- 20464 6e58 34       		.uleb128 0x34
- 20465 6e59 FB0D0000 		.long	0xdfb
- 20466 6e5d 00000000 		.quad	.LBB2030
- 20466      00000000 
- 20467 6e65 00000000 		.quad	.LBE2030
- 20467      00000000 
- 20468 6e6d 03       		.byte	0x3
- 20469 6e6e FE04     		.value	0x4fe
- 20470 6e70 31       		.uleb128 0x31
- 20471 6e71 190E0000 		.long	0xe19
- 20472 6e75 03       		.byte	0x3
- 20473 6e76 91       		.byte	0x91
- 20474 6e77 906C     		.sleb128 -2544
- 20475 6e79 31       		.uleb128 0x31
- 20476 6e7a 0D0E0000 		.long	0xe0d
- 20477 6e7e 03       		.byte	0x3
- 20478 6e7f 91       		.byte	0x91
- 20479 6e80 A06C     		.sleb128 -2528
- 20480 6e82 34       		.uleb128 0x34
- 20481 6e83 260E0000 		.long	0xe26
- 20482 6e87 00000000 		.quad	.LBB2032
- 20482      00000000 
- 20483 6e8f 00000000 		.quad	.LBE2032
-
GAS LISTING /tmp/ccPaCTqg.s 			page 530
-
-
- 20483      00000000 
- 20484 6e97 03       		.byte	0x3
- 20485 6e98 7501     		.value	0x175
- 20486 6e9a 31       		.uleb128 0x31
- 20487 6e9b 440E0000 		.long	0xe44
- 20488 6e9f 03       		.byte	0x3
- 20489 6ea0 91       		.byte	0x91
- 20490 6ea1 B06C     		.sleb128 -2512
- 20491 6ea3 31       		.uleb128 0x31
- 20492 6ea4 380E0000 		.long	0xe38
- 20493 6ea8 03       		.byte	0x3
- 20494 6ea9 91       		.byte	0x91
- 20495 6eaa C06C     		.sleb128 -2496
- 20496 6eac 00       		.byte	0x0
- 20497 6ead 00       		.byte	0x0
- 20498 6eae 00       		.byte	0x0
- 20499 6eaf 00       		.byte	0x0
- 20500 6eb0 34       		.uleb128 0x34
- 20501 6eb1 BA0D0000 		.long	0xdba
- 20502 6eb5 00000000 		.quad	.LBB2034
- 20502      00000000 
- 20503 6ebd 00000000 		.quad	.LBE2034
- 20503      00000000 
- 20504 6ec5 03       		.byte	0x3
- 20505 6ec6 2106     		.value	0x621
- 20506 6ec8 31       		.uleb128 0x31
- 20507 6ec9 CC0D0000 		.long	0xdcc
- 20508 6ecd 03       		.byte	0x3
- 20509 6ece 91       		.byte	0x91
- 20510 6ecf D06C     		.sleb128 -2480
- 20511 6ed1 32       		.uleb128 0x32
- 20512 6ed2 00000000 		.quad	.LBB2035
- 20512      00000000 
- 20513 6eda 00000000 		.quad	.LBE2035
- 20513      00000000 
- 20514 6ee2 33       		.uleb128 0x33
- 20515 6ee3 D80D0000 		.long	0xdd8
- 20516 6ee7 09       		.byte	0x9
- 20517 6ee8 03       		.byte	0x3
- 20518 6ee9 00000000 		.quad	mask.8002
- 20518      00000000 
- 20519 6ef1 34       		.uleb128 0x34
- 20520 6ef2 FB0D0000 		.long	0xdfb
- 20521 6ef6 00000000 		.quad	.LBB2036
- 20521      00000000 
- 20522 6efe 00000000 		.quad	.LBE2036
- 20522      00000000 
- 20523 6f06 03       		.byte	0x3
- 20524 6f07 FE04     		.value	0x4fe
- 20525 6f09 31       		.uleb128 0x31
- 20526 6f0a 190E0000 		.long	0xe19
- 20527 6f0e 03       		.byte	0x3
- 20528 6f0f 91       		.byte	0x91
- 20529 6f10 E06C     		.sleb128 -2464
- 20530 6f12 31       		.uleb128 0x31
- 20531 6f13 0D0E0000 		.long	0xe0d
- 20532 6f17 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 531
-
-
- 20533 6f18 91       		.byte	0x91
- 20534 6f19 F06C     		.sleb128 -2448
- 20535 6f1b 34       		.uleb128 0x34
- 20536 6f1c 260E0000 		.long	0xe26
- 20537 6f20 00000000 		.quad	.LBB2038
- 20537      00000000 
- 20538 6f28 00000000 		.quad	.LBE2038
- 20538      00000000 
- 20539 6f30 03       		.byte	0x3
- 20540 6f31 7501     		.value	0x175
- 20541 6f33 31       		.uleb128 0x31
- 20542 6f34 440E0000 		.long	0xe44
- 20543 6f38 03       		.byte	0x3
- 20544 6f39 91       		.byte	0x91
- 20545 6f3a 806D     		.sleb128 -2432
- 20546 6f3c 31       		.uleb128 0x31
- 20547 6f3d 380E0000 		.long	0xe38
- 20548 6f41 03       		.byte	0x3
- 20549 6f42 91       		.byte	0x91
- 20550 6f43 906D     		.sleb128 -2416
- 20551 6f45 00       		.byte	0x0
- 20552 6f46 00       		.byte	0x0
- 20553 6f47 00       		.byte	0x0
- 20554 6f48 00       		.byte	0x0
- 20555 6f49 00       		.byte	0x0
- 20556 6f4a 00       		.byte	0x0
- 20557 6f4b 30       		.uleb128 0x30
- 20558 6f4c F7580000 		.long	0x58f7
- 20559 6f50 00000000 		.quad	.LBB2040
- 20559      00000000 
- 20560 6f58 00000000 		.quad	.LBE2040
- 20560      00000000 
- 20561 6f60 03       		.byte	0x3
- 20562 6f61 8C07     		.value	0x78c
- 20563 6f63 7A6F0000 		.long	0x6f7a
- 20564 6f67 31       		.uleb128 0x31
- 20565 6f68 12590000 		.long	0x5912
- 20566 6f6c 03       		.byte	0x3
- 20567 6f6d 91       		.byte	0x91
- 20568 6f6e A06D     		.sleb128 -2400
- 20569 6f70 31       		.uleb128 0x31
- 20570 6f71 08590000 		.long	0x5908
- 20571 6f75 03       		.byte	0x3
- 20572 6f76 91       		.byte	0x91
- 20573 6f77 B06D     		.sleb128 -2384
- 20574 6f79 00       		.byte	0x0
- 20575 6f7a 30       		.uleb128 0x30
- 20576 6f7b 1D590000 		.long	0x591d
- 20577 6f7f 00000000 		.quad	.LBB2042
- 20577      00000000 
- 20578 6f87 00000000 		.quad	.LBE2042
- 20578      00000000 
- 20579 6f8f 03       		.byte	0x3
- 20580 6f90 8D07     		.value	0x78d
- 20581 6f92 37700000 		.long	0x7037
- 20582 6f96 31       		.uleb128 0x31
- 20583 6f97 2F590000 		.long	0x592f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 532
-
-
- 20584 6f9b 03       		.byte	0x3
- 20585 6f9c 91       		.byte	0x91
- 20586 6f9d C06D     		.sleb128 -2368
- 20587 6f9f 32       		.uleb128 0x32
- 20588 6fa0 00000000 		.quad	.LBB2043
- 20588      00000000 
- 20589 6fa8 00000000 		.quad	.LBE2043
- 20589      00000000 
- 20590 6fb0 33       		.uleb128 0x33
- 20591 6fb1 3B590000 		.long	0x593b
- 20592 6fb5 03       		.byte	0x3
- 20593 6fb6 76       		.byte	0x76
- 20594 6fb7 8056     		.sleb128 -5376
- 20595 6fb9 30       		.uleb128 0x30
- 20596 6fba 1A0D0000 		.long	0xd1a
- 20597 6fbe 00000000 		.quad	.LBB2044
- 20597      00000000 
- 20598 6fc6 00000000 		.quad	.LBE2044
- 20598      00000000 
- 20599 6fce 03       		.byte	0x3
- 20600 6fcf 7206     		.value	0x672
- 20601 6fd1 E86F0000 		.long	0x6fe8
- 20602 6fd5 31       		.uleb128 0x31
- 20603 6fd6 380D0000 		.long	0xd38
- 20604 6fda 03       		.byte	0x3
- 20605 6fdb 91       		.byte	0x91
- 20606 6fdc DC6D     		.sleb128 -2340
- 20607 6fde 31       		.uleb128 0x31
- 20608 6fdf 2C0D0000 		.long	0xd2c
- 20609 6fe3 03       		.byte	0x3
- 20610 6fe4 91       		.byte	0x91
- 20611 6fe5 E06D     		.sleb128 -2336
- 20612 6fe7 00       		.byte	0x0
- 20613 6fe8 34       		.uleb128 0x34
- 20614 6fe9 48590000 		.long	0x5948
- 20615 6fed 00000000 		.quad	.LBB2046
- 20615      00000000 
- 20616 6ff5 00000000 		.quad	.LBE2046
- 20616      00000000 
- 20617 6ffd 03       		.byte	0x3
- 20618 6ffe 7306     		.value	0x673
- 20619 7000 31       		.uleb128 0x31
- 20620 7001 5A590000 		.long	0x595a
- 20621 7005 03       		.byte	0x3
- 20622 7006 91       		.byte	0x91
- 20623 7007 F06D     		.sleb128 -2320
- 20624 7009 34       		.uleb128 0x34
- 20625 700a 640D0000 		.long	0xd64
- 20626 700e 00000000 		.quad	.LBB2048
- 20626      00000000 
- 20627 7016 00000000 		.quad	.LBE2048
- 20627      00000000 
- 20628 701e 03       		.byte	0x3
- 20629 701f 6505     		.value	0x565
- 20630 7021 31       		.uleb128 0x31
- 20631 7022 820D0000 		.long	0xd82
- 20632 7026 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 533
-
-
- 20633 7027 91       		.byte	0x91
- 20634 7028 8C6E     		.sleb128 -2292
- 20635 702a 31       		.uleb128 0x31
- 20636 702b 760D0000 		.long	0xd76
- 20637 702f 03       		.byte	0x3
- 20638 7030 91       		.byte	0x91
- 20639 7031 906E     		.sleb128 -2288
- 20640 7033 00       		.byte	0x0
- 20641 7034 00       		.byte	0x0
- 20642 7035 00       		.byte	0x0
- 20643 7036 00       		.byte	0x0
- 20644 7037 30       		.uleb128 0x30
- 20645 7038 8F0D0000 		.long	0xd8f
- 20646 703c 00000000 		.quad	.LBB2050
- 20646      00000000 
- 20647 7044 00000000 		.quad	.LBE2050
- 20647      00000000 
- 20648 704c 03       		.byte	0x3
- 20649 704d 8D07     		.value	0x78d
- 20650 704f 4B720000 		.long	0x724b
- 20651 7053 31       		.uleb128 0x31
- 20652 7054 A10D0000 		.long	0xda1
- 20653 7058 03       		.byte	0x3
- 20654 7059 91       		.byte	0x91
- 20655 705a A06E     		.sleb128 -2272
- 20656 705c 32       		.uleb128 0x32
- 20657 705d 00000000 		.quad	.LBB2051
- 20657      00000000 
- 20658 7065 00000000 		.quad	.LBE2051
- 20658      00000000 
- 20659 706d 33       		.uleb128 0x33
- 20660 706e AD0D0000 		.long	0xdad
- 20661 7072 03       		.byte	0x3
- 20662 7073 76       		.byte	0x76
- 20663 7074 9056     		.sleb128 -5360
- 20664 7076 30       		.uleb128 0x30
- 20665 7077 BA0D0000 		.long	0xdba
- 20666 707b 00000000 		.quad	.LBB2052
- 20666      00000000 
- 20667 7083 00000000 		.quad	.LBE2052
- 20667      00000000 
- 20668 708b 03       		.byte	0x3
- 20669 708c 1F06     		.value	0x61f
- 20670 708e 13710000 		.long	0x7113
- 20671 7092 31       		.uleb128 0x31
- 20672 7093 CC0D0000 		.long	0xdcc
- 20673 7097 03       		.byte	0x3
- 20674 7098 91       		.byte	0x91
- 20675 7099 B06E     		.sleb128 -2256
- 20676 709b 32       		.uleb128 0x32
- 20677 709c 00000000 		.quad	.LBB2053
- 20677      00000000 
- 20678 70a4 00000000 		.quad	.LBE2053
- 20678      00000000 
- 20679 70ac 33       		.uleb128 0x33
- 20680 70ad D80D0000 		.long	0xdd8
- 20681 70b1 09       		.byte	0x9
-
GAS LISTING /tmp/ccPaCTqg.s 			page 534
-
-
- 20682 70b2 03       		.byte	0x3
- 20683 70b3 00000000 		.quad	mask.8002
- 20683      00000000 
- 20684 70bb 34       		.uleb128 0x34
- 20685 70bc FB0D0000 		.long	0xdfb
- 20686 70c0 00000000 		.quad	.LBB2054
- 20686      00000000 
- 20687 70c8 00000000 		.quad	.LBE2054
- 20687      00000000 
- 20688 70d0 03       		.byte	0x3
- 20689 70d1 FE04     		.value	0x4fe
- 20690 70d3 31       		.uleb128 0x31
- 20691 70d4 190E0000 		.long	0xe19
- 20692 70d8 03       		.byte	0x3
- 20693 70d9 91       		.byte	0x91
- 20694 70da C06E     		.sleb128 -2240
- 20695 70dc 31       		.uleb128 0x31
- 20696 70dd 0D0E0000 		.long	0xe0d
- 20697 70e1 03       		.byte	0x3
- 20698 70e2 91       		.byte	0x91
- 20699 70e3 D06E     		.sleb128 -2224
- 20700 70e5 34       		.uleb128 0x34
- 20701 70e6 260E0000 		.long	0xe26
- 20702 70ea 00000000 		.quad	.LBB2056
- 20702      00000000 
- 20703 70f2 00000000 		.quad	.LBE2056
- 20703      00000000 
- 20704 70fa 03       		.byte	0x3
- 20705 70fb 7501     		.value	0x175
- 20706 70fd 31       		.uleb128 0x31
- 20707 70fe 440E0000 		.long	0xe44
- 20708 7102 03       		.byte	0x3
- 20709 7103 91       		.byte	0x91
- 20710 7104 E06E     		.sleb128 -2208
- 20711 7106 31       		.uleb128 0x31
- 20712 7107 380E0000 		.long	0xe38
- 20713 710b 03       		.byte	0x3
- 20714 710c 91       		.byte	0x91
- 20715 710d F06E     		.sleb128 -2192
- 20716 710f 00       		.byte	0x0
- 20717 7110 00       		.byte	0x0
- 20718 7111 00       		.byte	0x0
- 20719 7112 00       		.byte	0x0
- 20720 7113 30       		.uleb128 0x30
- 20721 7114 BA0D0000 		.long	0xdba
- 20722 7118 00000000 		.quad	.LBB2058
- 20722      00000000 
- 20723 7120 00000000 		.quad	.LBE2058
- 20723      00000000 
- 20724 7128 03       		.byte	0x3
- 20725 7129 2006     		.value	0x620
- 20726 712b B0710000 		.long	0x71b0
- 20727 712f 31       		.uleb128 0x31
- 20728 7130 CC0D0000 		.long	0xdcc
- 20729 7134 03       		.byte	0x3
- 20730 7135 91       		.byte	0x91
- 20731 7136 806F     		.sleb128 -2176
-
GAS LISTING /tmp/ccPaCTqg.s 			page 535
-
-
- 20732 7138 32       		.uleb128 0x32
- 20733 7139 00000000 		.quad	.LBB2059
- 20733      00000000 
- 20734 7141 00000000 		.quad	.LBE2059
- 20734      00000000 
- 20735 7149 33       		.uleb128 0x33
- 20736 714a D80D0000 		.long	0xdd8
- 20737 714e 09       		.byte	0x9
- 20738 714f 03       		.byte	0x3
- 20739 7150 00000000 		.quad	mask.8002
- 20739      00000000 
- 20740 7158 34       		.uleb128 0x34
- 20741 7159 FB0D0000 		.long	0xdfb
- 20742 715d 00000000 		.quad	.LBB2060
- 20742      00000000 
- 20743 7165 00000000 		.quad	.LBE2060
- 20743      00000000 
- 20744 716d 03       		.byte	0x3
- 20745 716e FE04     		.value	0x4fe
- 20746 7170 31       		.uleb128 0x31
- 20747 7171 190E0000 		.long	0xe19
- 20748 7175 03       		.byte	0x3
- 20749 7176 91       		.byte	0x91
- 20750 7177 906F     		.sleb128 -2160
- 20751 7179 31       		.uleb128 0x31
- 20752 717a 0D0E0000 		.long	0xe0d
- 20753 717e 03       		.byte	0x3
- 20754 717f 91       		.byte	0x91
- 20755 7180 A06F     		.sleb128 -2144
- 20756 7182 34       		.uleb128 0x34
- 20757 7183 260E0000 		.long	0xe26
- 20758 7187 00000000 		.quad	.LBB2062
- 20758      00000000 
- 20759 718f 00000000 		.quad	.LBE2062
- 20759      00000000 
- 20760 7197 03       		.byte	0x3
- 20761 7198 7501     		.value	0x175
- 20762 719a 31       		.uleb128 0x31
- 20763 719b 440E0000 		.long	0xe44
- 20764 719f 03       		.byte	0x3
- 20765 71a0 91       		.byte	0x91
- 20766 71a1 B06F     		.sleb128 -2128
- 20767 71a3 31       		.uleb128 0x31
- 20768 71a4 380E0000 		.long	0xe38
- 20769 71a8 03       		.byte	0x3
- 20770 71a9 91       		.byte	0x91
- 20771 71aa C06F     		.sleb128 -2112
- 20772 71ac 00       		.byte	0x0
- 20773 71ad 00       		.byte	0x0
- 20774 71ae 00       		.byte	0x0
- 20775 71af 00       		.byte	0x0
- 20776 71b0 34       		.uleb128 0x34
- 20777 71b1 BA0D0000 		.long	0xdba
- 20778 71b5 00000000 		.quad	.LBB2064
- 20778      00000000 
- 20779 71bd 00000000 		.quad	.LBE2064
- 20779      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 536
-
-
- 20780 71c5 03       		.byte	0x3
- 20781 71c6 2106     		.value	0x621
- 20782 71c8 31       		.uleb128 0x31
- 20783 71c9 CC0D0000 		.long	0xdcc
- 20784 71cd 03       		.byte	0x3
- 20785 71ce 91       		.byte	0x91
- 20786 71cf D06F     		.sleb128 -2096
- 20787 71d1 32       		.uleb128 0x32
- 20788 71d2 00000000 		.quad	.LBB2065
- 20788      00000000 
- 20789 71da 00000000 		.quad	.LBE2065
- 20789      00000000 
- 20790 71e2 33       		.uleb128 0x33
- 20791 71e3 D80D0000 		.long	0xdd8
- 20792 71e7 09       		.byte	0x9
- 20793 71e8 03       		.byte	0x3
- 20794 71e9 00000000 		.quad	mask.8002
- 20794      00000000 
- 20795 71f1 34       		.uleb128 0x34
- 20796 71f2 FB0D0000 		.long	0xdfb
- 20797 71f6 00000000 		.quad	.LBB2066
- 20797      00000000 
- 20798 71fe 00000000 		.quad	.LBE2066
- 20798      00000000 
- 20799 7206 03       		.byte	0x3
- 20800 7207 FE04     		.value	0x4fe
- 20801 7209 31       		.uleb128 0x31
- 20802 720a 190E0000 		.long	0xe19
- 20803 720e 03       		.byte	0x3
- 20804 720f 91       		.byte	0x91
- 20805 7210 E06F     		.sleb128 -2080
- 20806 7212 31       		.uleb128 0x31
- 20807 7213 0D0E0000 		.long	0xe0d
- 20808 7217 03       		.byte	0x3
- 20809 7218 91       		.byte	0x91
- 20810 7219 F06F     		.sleb128 -2064
- 20811 721b 34       		.uleb128 0x34
- 20812 721c 260E0000 		.long	0xe26
- 20813 7220 00000000 		.quad	.LBB2068
- 20813      00000000 
- 20814 7228 00000000 		.quad	.LBE2068
- 20814      00000000 
- 20815 7230 03       		.byte	0x3
- 20816 7231 7501     		.value	0x175
- 20817 7233 31       		.uleb128 0x31
- 20818 7234 440E0000 		.long	0xe44
- 20819 7238 03       		.byte	0x3
- 20820 7239 91       		.byte	0x91
- 20821 723a 8070     		.sleb128 -2048
- 20822 723c 31       		.uleb128 0x31
- 20823 723d 380E0000 		.long	0xe38
- 20824 7241 03       		.byte	0x3
- 20825 7242 91       		.byte	0x91
- 20826 7243 9070     		.sleb128 -2032
- 20827 7245 00       		.byte	0x0
- 20828 7246 00       		.byte	0x0
- 20829 7247 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 537
-
-
- 20830 7248 00       		.byte	0x0
- 20831 7249 00       		.byte	0x0
- 20832 724a 00       		.byte	0x0
- 20833 724b 30       		.uleb128 0x30
- 20834 724c F7580000 		.long	0x58f7
- 20835 7250 00000000 		.quad	.LBB2070
- 20835      00000000 
- 20836 7258 00000000 		.quad	.LBE2070
- 20836      00000000 
- 20837 7260 03       		.byte	0x3
- 20838 7261 8D07     		.value	0x78d
- 20839 7263 7A720000 		.long	0x727a
- 20840 7267 31       		.uleb128 0x31
- 20841 7268 12590000 		.long	0x5912
- 20842 726c 03       		.byte	0x3
- 20843 726d 91       		.byte	0x91
- 20844 726e A070     		.sleb128 -2016
- 20845 7270 31       		.uleb128 0x31
- 20846 7271 08590000 		.long	0x5908
- 20847 7275 03       		.byte	0x3
- 20848 7276 91       		.byte	0x91
- 20849 7277 B070     		.sleb128 -2000
- 20850 7279 00       		.byte	0x0
- 20851 727a 30       		.uleb128 0x30
- 20852 727b E30C0000 		.long	0xce3
- 20853 727f 00000000 		.quad	.LBB2072
- 20853      00000000 
- 20854 7287 00000000 		.quad	.LBE2072
- 20854      00000000 
- 20855 728f 03       		.byte	0x3
- 20856 7290 8E07     		.value	0x78e
- 20857 7292 40730000 		.long	0x7340
- 20858 7296 31       		.uleb128 0x31
- 20859 7297 010D0000 		.long	0xd01
- 20860 729b 03       		.byte	0x3
- 20861 729c 91       		.byte	0x91
- 20862 729d CC70     		.sleb128 -1972
- 20863 729f 31       		.uleb128 0x31
- 20864 72a0 F50C0000 		.long	0xcf5
- 20865 72a4 03       		.byte	0x3
- 20866 72a5 91       		.byte	0x91
- 20867 72a6 D070     		.sleb128 -1968
- 20868 72a8 32       		.uleb128 0x32
- 20869 72a9 00000000 		.quad	.LBB2073
- 20869      00000000 
- 20870 72b1 00000000 		.quad	.LBE2073
- 20870      00000000 
- 20871 72b9 33       		.uleb128 0x33
- 20872 72ba 0D0D0000 		.long	0xd0d
- 20873 72be 03       		.byte	0x3
- 20874 72bf 76       		.byte	0x76
- 20875 72c0 A056     		.sleb128 -5344
- 20876 72c2 30       		.uleb128 0x30
- 20877 72c3 1A0D0000 		.long	0xd1a
- 20878 72c7 00000000 		.quad	.LBB2074
- 20878      00000000 
- 20879 72cf 00000000 		.quad	.LBE2074
-
GAS LISTING /tmp/ccPaCTqg.s 			page 538
-
-
- 20879      00000000 
- 20880 72d7 03       		.byte	0x3
- 20881 72d8 8A06     		.value	0x68a
- 20882 72da F1720000 		.long	0x72f1
- 20883 72de 31       		.uleb128 0x31
- 20884 72df 380D0000 		.long	0xd38
- 20885 72e3 03       		.byte	0x3
- 20886 72e4 91       		.byte	0x91
- 20887 72e5 EC70     		.sleb128 -1940
- 20888 72e7 31       		.uleb128 0x31
- 20889 72e8 2C0D0000 		.long	0xd2c
- 20890 72ec 03       		.byte	0x3
- 20891 72ed 91       		.byte	0x91
- 20892 72ee F070     		.sleb128 -1936
- 20893 72f0 00       		.byte	0x0
- 20894 72f1 34       		.uleb128 0x34
- 20895 72f2 450D0000 		.long	0xd45
- 20896 72f6 00000000 		.quad	.LBB2076
- 20896      00000000 
- 20897 72fe 00000000 		.quad	.LBE2076
- 20897      00000000 
- 20898 7306 03       		.byte	0x3
- 20899 7307 8B06     		.value	0x68b
- 20900 7309 31       		.uleb128 0x31
- 20901 730a 570D0000 		.long	0xd57
- 20902 730e 03       		.byte	0x3
- 20903 730f 91       		.byte	0x91
- 20904 7310 8071     		.sleb128 -1920
- 20905 7312 34       		.uleb128 0x34
- 20906 7313 640D0000 		.long	0xd64
- 20907 7317 00000000 		.quad	.LBB2078
- 20907      00000000 
- 20908 731f 00000000 		.quad	.LBE2078
- 20908      00000000 
- 20909 7327 03       		.byte	0x3
- 20910 7328 4905     		.value	0x549
- 20911 732a 31       		.uleb128 0x31
- 20912 732b 820D0000 		.long	0xd82
- 20913 732f 03       		.byte	0x3
- 20914 7330 91       		.byte	0x91
- 20915 7331 9C71     		.sleb128 -1892
- 20916 7333 31       		.uleb128 0x31
- 20917 7334 760D0000 		.long	0xd76
- 20918 7338 03       		.byte	0x3
- 20919 7339 91       		.byte	0x91
- 20920 733a A071     		.sleb128 -1888
- 20921 733c 00       		.byte	0x0
- 20922 733d 00       		.byte	0x0
- 20923 733e 00       		.byte	0x0
- 20924 733f 00       		.byte	0x0
- 20925 7340 30       		.uleb128 0x30
- 20926 7341 8F0D0000 		.long	0xd8f
- 20927 7345 00000000 		.quad	.LBB2080
- 20927      00000000 
- 20928 734d 00000000 		.quad	.LBE2080
- 20928      00000000 
- 20929 7355 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 539
-
-
- 20930 7356 8E07     		.value	0x78e
- 20931 7358 54750000 		.long	0x7554
- 20932 735c 31       		.uleb128 0x31
- 20933 735d A10D0000 		.long	0xda1
- 20934 7361 03       		.byte	0x3
- 20935 7362 91       		.byte	0x91
- 20936 7363 B071     		.sleb128 -1872
- 20937 7365 32       		.uleb128 0x32
- 20938 7366 00000000 		.quad	.LBB2081
- 20938      00000000 
- 20939 736e 00000000 		.quad	.LBE2081
- 20939      00000000 
- 20940 7376 33       		.uleb128 0x33
- 20941 7377 AD0D0000 		.long	0xdad
- 20942 737b 03       		.byte	0x3
- 20943 737c 76       		.byte	0x76
- 20944 737d B056     		.sleb128 -5328
- 20945 737f 30       		.uleb128 0x30
- 20946 7380 BA0D0000 		.long	0xdba
- 20947 7384 00000000 		.quad	.LBB2082
- 20947      00000000 
- 20948 738c 00000000 		.quad	.LBE2082
- 20948      00000000 
- 20949 7394 03       		.byte	0x3
- 20950 7395 1F06     		.value	0x61f
- 20951 7397 1C740000 		.long	0x741c
- 20952 739b 31       		.uleb128 0x31
- 20953 739c CC0D0000 		.long	0xdcc
- 20954 73a0 03       		.byte	0x3
- 20955 73a1 91       		.byte	0x91
- 20956 73a2 C071     		.sleb128 -1856
- 20957 73a4 32       		.uleb128 0x32
- 20958 73a5 00000000 		.quad	.LBB2083
- 20958      00000000 
- 20959 73ad 00000000 		.quad	.LBE2083
- 20959      00000000 
- 20960 73b5 33       		.uleb128 0x33
- 20961 73b6 D80D0000 		.long	0xdd8
- 20962 73ba 09       		.byte	0x9
- 20963 73bb 03       		.byte	0x3
- 20964 73bc 00000000 		.quad	mask.8002
- 20964      00000000 
- 20965 73c4 34       		.uleb128 0x34
- 20966 73c5 FB0D0000 		.long	0xdfb
- 20967 73c9 00000000 		.quad	.LBB2084
- 20967      00000000 
- 20968 73d1 00000000 		.quad	.LBE2084
- 20968      00000000 
- 20969 73d9 03       		.byte	0x3
- 20970 73da FE04     		.value	0x4fe
- 20971 73dc 31       		.uleb128 0x31
- 20972 73dd 190E0000 		.long	0xe19
- 20973 73e1 03       		.byte	0x3
- 20974 73e2 91       		.byte	0x91
- 20975 73e3 D071     		.sleb128 -1840
- 20976 73e5 31       		.uleb128 0x31
- 20977 73e6 0D0E0000 		.long	0xe0d
-
GAS LISTING /tmp/ccPaCTqg.s 			page 540
-
-
- 20978 73ea 03       		.byte	0x3
- 20979 73eb 91       		.byte	0x91
- 20980 73ec E071     		.sleb128 -1824
- 20981 73ee 34       		.uleb128 0x34
- 20982 73ef 260E0000 		.long	0xe26
- 20983 73f3 00000000 		.quad	.LBB2086
- 20983      00000000 
- 20984 73fb 00000000 		.quad	.LBE2086
- 20984      00000000 
- 20985 7403 03       		.byte	0x3
- 20986 7404 7501     		.value	0x175
- 20987 7406 31       		.uleb128 0x31
- 20988 7407 440E0000 		.long	0xe44
- 20989 740b 03       		.byte	0x3
- 20990 740c 91       		.byte	0x91
- 20991 740d F071     		.sleb128 -1808
- 20992 740f 31       		.uleb128 0x31
- 20993 7410 380E0000 		.long	0xe38
- 20994 7414 03       		.byte	0x3
- 20995 7415 91       		.byte	0x91
- 20996 7416 8072     		.sleb128 -1792
- 20997 7418 00       		.byte	0x0
- 20998 7419 00       		.byte	0x0
- 20999 741a 00       		.byte	0x0
- 21000 741b 00       		.byte	0x0
- 21001 741c 30       		.uleb128 0x30
- 21002 741d BA0D0000 		.long	0xdba
- 21003 7421 00000000 		.quad	.LBB2088
- 21003      00000000 
- 21004 7429 00000000 		.quad	.LBE2088
- 21004      00000000 
- 21005 7431 03       		.byte	0x3
- 21006 7432 2006     		.value	0x620
- 21007 7434 B9740000 		.long	0x74b9
- 21008 7438 31       		.uleb128 0x31
- 21009 7439 CC0D0000 		.long	0xdcc
- 21010 743d 03       		.byte	0x3
- 21011 743e 91       		.byte	0x91
- 21012 743f 9072     		.sleb128 -1776
- 21013 7441 32       		.uleb128 0x32
- 21014 7442 00000000 		.quad	.LBB2089
- 21014      00000000 
- 21015 744a 00000000 		.quad	.LBE2089
- 21015      00000000 
- 21016 7452 33       		.uleb128 0x33
- 21017 7453 D80D0000 		.long	0xdd8
- 21018 7457 09       		.byte	0x9
- 21019 7458 03       		.byte	0x3
- 21020 7459 00000000 		.quad	mask.8002
- 21020      00000000 
- 21021 7461 34       		.uleb128 0x34
- 21022 7462 FB0D0000 		.long	0xdfb
- 21023 7466 00000000 		.quad	.LBB2090
- 21023      00000000 
- 21024 746e 00000000 		.quad	.LBE2090
- 21024      00000000 
- 21025 7476 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 541
-
-
- 21026 7477 FE04     		.value	0x4fe
- 21027 7479 31       		.uleb128 0x31
- 21028 747a 190E0000 		.long	0xe19
- 21029 747e 03       		.byte	0x3
- 21030 747f 91       		.byte	0x91
- 21031 7480 A072     		.sleb128 -1760
- 21032 7482 31       		.uleb128 0x31
- 21033 7483 0D0E0000 		.long	0xe0d
- 21034 7487 03       		.byte	0x3
- 21035 7488 91       		.byte	0x91
- 21036 7489 B072     		.sleb128 -1744
- 21037 748b 34       		.uleb128 0x34
- 21038 748c 260E0000 		.long	0xe26
- 21039 7490 00000000 		.quad	.LBB2092
- 21039      00000000 
- 21040 7498 00000000 		.quad	.LBE2092
- 21040      00000000 
- 21041 74a0 03       		.byte	0x3
- 21042 74a1 7501     		.value	0x175
- 21043 74a3 31       		.uleb128 0x31
- 21044 74a4 440E0000 		.long	0xe44
- 21045 74a8 03       		.byte	0x3
- 21046 74a9 91       		.byte	0x91
- 21047 74aa C072     		.sleb128 -1728
- 21048 74ac 31       		.uleb128 0x31
- 21049 74ad 380E0000 		.long	0xe38
- 21050 74b1 03       		.byte	0x3
- 21051 74b2 91       		.byte	0x91
- 21052 74b3 D072     		.sleb128 -1712
- 21053 74b5 00       		.byte	0x0
- 21054 74b6 00       		.byte	0x0
- 21055 74b7 00       		.byte	0x0
- 21056 74b8 00       		.byte	0x0
- 21057 74b9 34       		.uleb128 0x34
- 21058 74ba BA0D0000 		.long	0xdba
- 21059 74be 00000000 		.quad	.LBB2094
- 21059      00000000 
- 21060 74c6 00000000 		.quad	.LBE2094
- 21060      00000000 
- 21061 74ce 03       		.byte	0x3
- 21062 74cf 2106     		.value	0x621
- 21063 74d1 31       		.uleb128 0x31
- 21064 74d2 CC0D0000 		.long	0xdcc
- 21065 74d6 03       		.byte	0x3
- 21066 74d7 91       		.byte	0x91
- 21067 74d8 E072     		.sleb128 -1696
- 21068 74da 32       		.uleb128 0x32
- 21069 74db 00000000 		.quad	.LBB2095
- 21069      00000000 
- 21070 74e3 00000000 		.quad	.LBE2095
- 21070      00000000 
- 21071 74eb 33       		.uleb128 0x33
- 21072 74ec D80D0000 		.long	0xdd8
- 21073 74f0 09       		.byte	0x9
- 21074 74f1 03       		.byte	0x3
- 21075 74f2 00000000 		.quad	mask.8002
- 21075      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 542
-
-
- 21076 74fa 34       		.uleb128 0x34
- 21077 74fb FB0D0000 		.long	0xdfb
- 21078 74ff 00000000 		.quad	.LBB2096
- 21078      00000000 
- 21079 7507 00000000 		.quad	.LBE2096
- 21079      00000000 
- 21080 750f 03       		.byte	0x3
- 21081 7510 FE04     		.value	0x4fe
- 21082 7512 31       		.uleb128 0x31
- 21083 7513 190E0000 		.long	0xe19
- 21084 7517 03       		.byte	0x3
- 21085 7518 91       		.byte	0x91
- 21086 7519 F072     		.sleb128 -1680
- 21087 751b 31       		.uleb128 0x31
- 21088 751c 0D0E0000 		.long	0xe0d
- 21089 7520 03       		.byte	0x3
- 21090 7521 91       		.byte	0x91
- 21091 7522 8073     		.sleb128 -1664
- 21092 7524 34       		.uleb128 0x34
- 21093 7525 260E0000 		.long	0xe26
- 21094 7529 00000000 		.quad	.LBB2098
- 21094      00000000 
- 21095 7531 00000000 		.quad	.LBE2098
- 21095      00000000 
- 21096 7539 03       		.byte	0x3
- 21097 753a 7501     		.value	0x175
- 21098 753c 31       		.uleb128 0x31
- 21099 753d 440E0000 		.long	0xe44
- 21100 7541 03       		.byte	0x3
- 21101 7542 91       		.byte	0x91
- 21102 7543 9073     		.sleb128 -1648
- 21103 7545 31       		.uleb128 0x31
- 21104 7546 380E0000 		.long	0xe38
- 21105 754a 03       		.byte	0x3
- 21106 754b 91       		.byte	0x91
- 21107 754c A073     		.sleb128 -1632
- 21108 754e 00       		.byte	0x0
- 21109 754f 00       		.byte	0x0
- 21110 7550 00       		.byte	0x0
- 21111 7551 00       		.byte	0x0
- 21112 7552 00       		.byte	0x0
- 21113 7553 00       		.byte	0x0
- 21114 7554 30       		.uleb128 0x30
- 21115 7555 F7580000 		.long	0x58f7
- 21116 7559 00000000 		.quad	.LBB2100
- 21116      00000000 
- 21117 7561 00000000 		.quad	.LBE2100
- 21117      00000000 
- 21118 7569 03       		.byte	0x3
- 21119 756a 8E07     		.value	0x78e
- 21120 756c 83750000 		.long	0x7583
- 21121 7570 31       		.uleb128 0x31
- 21122 7571 12590000 		.long	0x5912
- 21123 7575 03       		.byte	0x3
- 21124 7576 91       		.byte	0x91
- 21125 7577 B073     		.sleb128 -1616
- 21126 7579 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 543
-
-
- 21127 757a 08590000 		.long	0x5908
- 21128 757e 03       		.byte	0x3
- 21129 757f 91       		.byte	0x91
- 21130 7580 C073     		.sleb128 -1600
- 21131 7582 00       		.byte	0x0
- 21132 7583 30       		.uleb128 0x30
- 21133 7584 1D590000 		.long	0x591d
- 21134 7588 00000000 		.quad	.LBB2102
- 21134      00000000 
- 21135 7590 00000000 		.quad	.LBE2102
- 21135      00000000 
- 21136 7598 03       		.byte	0x3
- 21137 7599 8F07     		.value	0x78f
- 21138 759b 40760000 		.long	0x7640
- 21139 759f 31       		.uleb128 0x31
- 21140 75a0 2F590000 		.long	0x592f
- 21141 75a4 03       		.byte	0x3
- 21142 75a5 91       		.byte	0x91
- 21143 75a6 D073     		.sleb128 -1584
- 21144 75a8 32       		.uleb128 0x32
- 21145 75a9 00000000 		.quad	.LBB2103
- 21145      00000000 
- 21146 75b1 00000000 		.quad	.LBE2103
- 21146      00000000 
- 21147 75b9 33       		.uleb128 0x33
- 21148 75ba 3B590000 		.long	0x593b
- 21149 75be 03       		.byte	0x3
- 21150 75bf 76       		.byte	0x76
- 21151 75c0 C056     		.sleb128 -5312
- 21152 75c2 30       		.uleb128 0x30
- 21153 75c3 1A0D0000 		.long	0xd1a
- 21154 75c7 00000000 		.quad	.LBB2104
- 21154      00000000 
- 21155 75cf 00000000 		.quad	.LBE2104
- 21155      00000000 
- 21156 75d7 03       		.byte	0x3
- 21157 75d8 7206     		.value	0x672
- 21158 75da F1750000 		.long	0x75f1
- 21159 75de 31       		.uleb128 0x31
- 21160 75df 380D0000 		.long	0xd38
- 21161 75e3 03       		.byte	0x3
- 21162 75e4 91       		.byte	0x91
- 21163 75e5 EC73     		.sleb128 -1556
- 21164 75e7 31       		.uleb128 0x31
- 21165 75e8 2C0D0000 		.long	0xd2c
- 21166 75ec 03       		.byte	0x3
- 21167 75ed 91       		.byte	0x91
- 21168 75ee F073     		.sleb128 -1552
- 21169 75f0 00       		.byte	0x0
- 21170 75f1 34       		.uleb128 0x34
- 21171 75f2 48590000 		.long	0x5948
- 21172 75f6 00000000 		.quad	.LBB2106
- 21172      00000000 
- 21173 75fe 00000000 		.quad	.LBE2106
- 21173      00000000 
- 21174 7606 03       		.byte	0x3
- 21175 7607 7306     		.value	0x673
-
GAS LISTING /tmp/ccPaCTqg.s 			page 544
-
-
- 21176 7609 31       		.uleb128 0x31
- 21177 760a 5A590000 		.long	0x595a
- 21178 760e 03       		.byte	0x3
- 21179 760f 91       		.byte	0x91
- 21180 7610 8074     		.sleb128 -1536
- 21181 7612 34       		.uleb128 0x34
- 21182 7613 640D0000 		.long	0xd64
- 21183 7617 00000000 		.quad	.LBB2108
- 21183      00000000 
- 21184 761f 00000000 		.quad	.LBE2108
- 21184      00000000 
- 21185 7627 03       		.byte	0x3
- 21186 7628 6505     		.value	0x565
- 21187 762a 31       		.uleb128 0x31
- 21188 762b 820D0000 		.long	0xd82
- 21189 762f 03       		.byte	0x3
- 21190 7630 91       		.byte	0x91
- 21191 7631 9C74     		.sleb128 -1508
- 21192 7633 31       		.uleb128 0x31
- 21193 7634 760D0000 		.long	0xd76
- 21194 7638 03       		.byte	0x3
- 21195 7639 91       		.byte	0x91
- 21196 763a A074     		.sleb128 -1504
- 21197 763c 00       		.byte	0x0
- 21198 763d 00       		.byte	0x0
- 21199 763e 00       		.byte	0x0
- 21200 763f 00       		.byte	0x0
- 21201 7640 30       		.uleb128 0x30
- 21202 7641 8F0D0000 		.long	0xd8f
- 21203 7645 00000000 		.quad	.LBB2110
- 21203      00000000 
- 21204 764d 00000000 		.quad	.LBE2110
- 21204      00000000 
- 21205 7655 03       		.byte	0x3
- 21206 7656 8F07     		.value	0x78f
- 21207 7658 54780000 		.long	0x7854
- 21208 765c 31       		.uleb128 0x31
- 21209 765d A10D0000 		.long	0xda1
- 21210 7661 03       		.byte	0x3
- 21211 7662 91       		.byte	0x91
- 21212 7663 B074     		.sleb128 -1488
- 21213 7665 32       		.uleb128 0x32
- 21214 7666 00000000 		.quad	.LBB2111
- 21214      00000000 
- 21215 766e 00000000 		.quad	.LBE2111
- 21215      00000000 
- 21216 7676 33       		.uleb128 0x33
- 21217 7677 AD0D0000 		.long	0xdad
- 21218 767b 03       		.byte	0x3
- 21219 767c 76       		.byte	0x76
- 21220 767d D056     		.sleb128 -5296
- 21221 767f 30       		.uleb128 0x30
- 21222 7680 BA0D0000 		.long	0xdba
- 21223 7684 00000000 		.quad	.LBB2112
- 21223      00000000 
- 21224 768c 00000000 		.quad	.LBE2112
- 21224      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 545
-
-
- 21225 7694 03       		.byte	0x3
- 21226 7695 1F06     		.value	0x61f
- 21227 7697 1C770000 		.long	0x771c
- 21228 769b 31       		.uleb128 0x31
- 21229 769c CC0D0000 		.long	0xdcc
- 21230 76a0 03       		.byte	0x3
- 21231 76a1 91       		.byte	0x91
- 21232 76a2 C074     		.sleb128 -1472
- 21233 76a4 32       		.uleb128 0x32
- 21234 76a5 00000000 		.quad	.LBB2113
- 21234      00000000 
- 21235 76ad 00000000 		.quad	.LBE2113
- 21235      00000000 
- 21236 76b5 33       		.uleb128 0x33
- 21237 76b6 D80D0000 		.long	0xdd8
- 21238 76ba 09       		.byte	0x9
- 21239 76bb 03       		.byte	0x3
- 21240 76bc 00000000 		.quad	mask.8002
- 21240      00000000 
- 21241 76c4 34       		.uleb128 0x34
- 21242 76c5 FB0D0000 		.long	0xdfb
- 21243 76c9 00000000 		.quad	.LBB2114
- 21243      00000000 
- 21244 76d1 00000000 		.quad	.LBE2114
- 21244      00000000 
- 21245 76d9 03       		.byte	0x3
- 21246 76da FE04     		.value	0x4fe
- 21247 76dc 31       		.uleb128 0x31
- 21248 76dd 190E0000 		.long	0xe19
- 21249 76e1 03       		.byte	0x3
- 21250 76e2 91       		.byte	0x91
- 21251 76e3 D074     		.sleb128 -1456
- 21252 76e5 31       		.uleb128 0x31
- 21253 76e6 0D0E0000 		.long	0xe0d
- 21254 76ea 03       		.byte	0x3
- 21255 76eb 91       		.byte	0x91
- 21256 76ec E074     		.sleb128 -1440
- 21257 76ee 34       		.uleb128 0x34
- 21258 76ef 260E0000 		.long	0xe26
- 21259 76f3 00000000 		.quad	.LBB2116
- 21259      00000000 
- 21260 76fb 00000000 		.quad	.LBE2116
- 21260      00000000 
- 21261 7703 03       		.byte	0x3
- 21262 7704 7501     		.value	0x175
- 21263 7706 31       		.uleb128 0x31
- 21264 7707 440E0000 		.long	0xe44
- 21265 770b 03       		.byte	0x3
- 21266 770c 91       		.byte	0x91
- 21267 770d F074     		.sleb128 -1424
- 21268 770f 31       		.uleb128 0x31
- 21269 7710 380E0000 		.long	0xe38
- 21270 7714 03       		.byte	0x3
- 21271 7715 91       		.byte	0x91
- 21272 7716 8075     		.sleb128 -1408
- 21273 7718 00       		.byte	0x0
- 21274 7719 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 546
-
-
- 21275 771a 00       		.byte	0x0
- 21276 771b 00       		.byte	0x0
- 21277 771c 30       		.uleb128 0x30
- 21278 771d BA0D0000 		.long	0xdba
- 21279 7721 00000000 		.quad	.LBB2118
- 21279      00000000 
- 21280 7729 00000000 		.quad	.LBE2118
- 21280      00000000 
- 21281 7731 03       		.byte	0x3
- 21282 7732 2006     		.value	0x620
- 21283 7734 B9770000 		.long	0x77b9
- 21284 7738 31       		.uleb128 0x31
- 21285 7739 CC0D0000 		.long	0xdcc
- 21286 773d 03       		.byte	0x3
- 21287 773e 91       		.byte	0x91
- 21288 773f 9075     		.sleb128 -1392
- 21289 7741 32       		.uleb128 0x32
- 21290 7742 00000000 		.quad	.LBB2119
- 21290      00000000 
- 21291 774a 00000000 		.quad	.LBE2119
- 21291      00000000 
- 21292 7752 33       		.uleb128 0x33
- 21293 7753 D80D0000 		.long	0xdd8
- 21294 7757 09       		.byte	0x9
- 21295 7758 03       		.byte	0x3
- 21296 7759 00000000 		.quad	mask.8002
- 21296      00000000 
- 21297 7761 34       		.uleb128 0x34
- 21298 7762 FB0D0000 		.long	0xdfb
- 21299 7766 00000000 		.quad	.LBB2120
- 21299      00000000 
- 21300 776e 00000000 		.quad	.LBE2120
- 21300      00000000 
- 21301 7776 03       		.byte	0x3
- 21302 7777 FE04     		.value	0x4fe
- 21303 7779 31       		.uleb128 0x31
- 21304 777a 190E0000 		.long	0xe19
- 21305 777e 03       		.byte	0x3
- 21306 777f 91       		.byte	0x91
- 21307 7780 A075     		.sleb128 -1376
- 21308 7782 31       		.uleb128 0x31
- 21309 7783 0D0E0000 		.long	0xe0d
- 21310 7787 03       		.byte	0x3
- 21311 7788 91       		.byte	0x91
- 21312 7789 B075     		.sleb128 -1360
- 21313 778b 34       		.uleb128 0x34
- 21314 778c 260E0000 		.long	0xe26
- 21315 7790 00000000 		.quad	.LBB2122
- 21315      00000000 
- 21316 7798 00000000 		.quad	.LBE2122
- 21316      00000000 
- 21317 77a0 03       		.byte	0x3
- 21318 77a1 7501     		.value	0x175
- 21319 77a3 31       		.uleb128 0x31
- 21320 77a4 440E0000 		.long	0xe44
- 21321 77a8 03       		.byte	0x3
- 21322 77a9 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 547
-
-
- 21323 77aa C075     		.sleb128 -1344
- 21324 77ac 31       		.uleb128 0x31
- 21325 77ad 380E0000 		.long	0xe38
- 21326 77b1 03       		.byte	0x3
- 21327 77b2 91       		.byte	0x91
- 21328 77b3 D075     		.sleb128 -1328
- 21329 77b5 00       		.byte	0x0
- 21330 77b6 00       		.byte	0x0
- 21331 77b7 00       		.byte	0x0
- 21332 77b8 00       		.byte	0x0
- 21333 77b9 34       		.uleb128 0x34
- 21334 77ba BA0D0000 		.long	0xdba
- 21335 77be 00000000 		.quad	.LBB2124
- 21335      00000000 
- 21336 77c6 00000000 		.quad	.LBE2124
- 21336      00000000 
- 21337 77ce 03       		.byte	0x3
- 21338 77cf 2106     		.value	0x621
- 21339 77d1 31       		.uleb128 0x31
- 21340 77d2 CC0D0000 		.long	0xdcc
- 21341 77d6 03       		.byte	0x3
- 21342 77d7 91       		.byte	0x91
- 21343 77d8 E075     		.sleb128 -1312
- 21344 77da 32       		.uleb128 0x32
- 21345 77db 00000000 		.quad	.LBB2125
- 21345      00000000 
- 21346 77e3 00000000 		.quad	.LBE2125
- 21346      00000000 
- 21347 77eb 33       		.uleb128 0x33
- 21348 77ec D80D0000 		.long	0xdd8
- 21349 77f0 09       		.byte	0x9
- 21350 77f1 03       		.byte	0x3
- 21351 77f2 00000000 		.quad	mask.8002
- 21351      00000000 
- 21352 77fa 34       		.uleb128 0x34
- 21353 77fb FB0D0000 		.long	0xdfb
- 21354 77ff 00000000 		.quad	.LBB2126
- 21354      00000000 
- 21355 7807 00000000 		.quad	.LBE2126
- 21355      00000000 
- 21356 780f 03       		.byte	0x3
- 21357 7810 FE04     		.value	0x4fe
- 21358 7812 31       		.uleb128 0x31
- 21359 7813 190E0000 		.long	0xe19
- 21360 7817 03       		.byte	0x3
- 21361 7818 91       		.byte	0x91
- 21362 7819 F075     		.sleb128 -1296
- 21363 781b 31       		.uleb128 0x31
- 21364 781c 0D0E0000 		.long	0xe0d
- 21365 7820 03       		.byte	0x3
- 21366 7821 91       		.byte	0x91
- 21367 7822 8076     		.sleb128 -1280
- 21368 7824 34       		.uleb128 0x34
- 21369 7825 260E0000 		.long	0xe26
- 21370 7829 00000000 		.quad	.LBB2128
- 21370      00000000 
- 21371 7831 00000000 		.quad	.LBE2128
-
GAS LISTING /tmp/ccPaCTqg.s 			page 548
-
-
- 21371      00000000 
- 21372 7839 03       		.byte	0x3
- 21373 783a 7501     		.value	0x175
- 21374 783c 31       		.uleb128 0x31
- 21375 783d 440E0000 		.long	0xe44
- 21376 7841 03       		.byte	0x3
- 21377 7842 91       		.byte	0x91
- 21378 7843 9076     		.sleb128 -1264
- 21379 7845 31       		.uleb128 0x31
- 21380 7846 380E0000 		.long	0xe38
- 21381 784a 03       		.byte	0x3
- 21382 784b 91       		.byte	0x91
- 21383 784c A076     		.sleb128 -1248
- 21384 784e 00       		.byte	0x0
- 21385 784f 00       		.byte	0x0
- 21386 7850 00       		.byte	0x0
- 21387 7851 00       		.byte	0x0
- 21388 7852 00       		.byte	0x0
- 21389 7853 00       		.byte	0x0
- 21390 7854 30       		.uleb128 0x30
- 21391 7855 F7580000 		.long	0x58f7
- 21392 7859 00000000 		.quad	.LBB2130
- 21392      00000000 
- 21393 7861 00000000 		.quad	.LBE2130
- 21393      00000000 
- 21394 7869 03       		.byte	0x3
- 21395 786a 8F07     		.value	0x78f
- 21396 786c 83780000 		.long	0x7883
- 21397 7870 31       		.uleb128 0x31
- 21398 7871 12590000 		.long	0x5912
- 21399 7875 03       		.byte	0x3
- 21400 7876 91       		.byte	0x91
- 21401 7877 B076     		.sleb128 -1232
- 21402 7879 31       		.uleb128 0x31
- 21403 787a 08590000 		.long	0x5908
- 21404 787e 03       		.byte	0x3
- 21405 787f 91       		.byte	0x91
- 21406 7880 C076     		.sleb128 -1216
- 21407 7882 00       		.byte	0x0
- 21408 7883 30       		.uleb128 0x30
- 21409 7884 E30C0000 		.long	0xce3
- 21410 7888 00000000 		.quad	.LBB2132
- 21410      00000000 
- 21411 7890 00000000 		.quad	.LBE2132
- 21411      00000000 
- 21412 7898 03       		.byte	0x3
- 21413 7899 9007     		.value	0x790
- 21414 789b 49790000 		.long	0x7949
- 21415 789f 31       		.uleb128 0x31
- 21416 78a0 010D0000 		.long	0xd01
- 21417 78a4 03       		.byte	0x3
- 21418 78a5 91       		.byte	0x91
- 21419 78a6 DC76     		.sleb128 -1188
- 21420 78a8 31       		.uleb128 0x31
- 21421 78a9 F50C0000 		.long	0xcf5
- 21422 78ad 03       		.byte	0x3
- 21423 78ae 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 549
-
-
- 21424 78af E076     		.sleb128 -1184
- 21425 78b1 32       		.uleb128 0x32
- 21426 78b2 00000000 		.quad	.LBB2133
- 21426      00000000 
- 21427 78ba 00000000 		.quad	.LBE2133
- 21427      00000000 
- 21428 78c2 33       		.uleb128 0x33
- 21429 78c3 0D0D0000 		.long	0xd0d
- 21430 78c7 03       		.byte	0x3
- 21431 78c8 76       		.byte	0x76
- 21432 78c9 E056     		.sleb128 -5280
- 21433 78cb 30       		.uleb128 0x30
- 21434 78cc 1A0D0000 		.long	0xd1a
- 21435 78d0 00000000 		.quad	.LBB2134
- 21435      00000000 
- 21436 78d8 00000000 		.quad	.LBE2134
- 21436      00000000 
- 21437 78e0 03       		.byte	0x3
- 21438 78e1 8A06     		.value	0x68a
- 21439 78e3 FA780000 		.long	0x78fa
- 21440 78e7 31       		.uleb128 0x31
- 21441 78e8 380D0000 		.long	0xd38
- 21442 78ec 03       		.byte	0x3
- 21443 78ed 91       		.byte	0x91
- 21444 78ee FC76     		.sleb128 -1156
- 21445 78f0 31       		.uleb128 0x31
- 21446 78f1 2C0D0000 		.long	0xd2c
- 21447 78f5 03       		.byte	0x3
- 21448 78f6 91       		.byte	0x91
- 21449 78f7 8077     		.sleb128 -1152
- 21450 78f9 00       		.byte	0x0
- 21451 78fa 34       		.uleb128 0x34
- 21452 78fb 450D0000 		.long	0xd45
- 21453 78ff 00000000 		.quad	.LBB2136
- 21453      00000000 
- 21454 7907 00000000 		.quad	.LBE2136
- 21454      00000000 
- 21455 790f 03       		.byte	0x3
- 21456 7910 8B06     		.value	0x68b
- 21457 7912 31       		.uleb128 0x31
- 21458 7913 570D0000 		.long	0xd57
- 21459 7917 03       		.byte	0x3
- 21460 7918 91       		.byte	0x91
- 21461 7919 9077     		.sleb128 -1136
- 21462 791b 34       		.uleb128 0x34
- 21463 791c 640D0000 		.long	0xd64
- 21464 7920 00000000 		.quad	.LBB2138
- 21464      00000000 
- 21465 7928 00000000 		.quad	.LBE2138
- 21465      00000000 
- 21466 7930 03       		.byte	0x3
- 21467 7931 4905     		.value	0x549
- 21468 7933 31       		.uleb128 0x31
- 21469 7934 820D0000 		.long	0xd82
- 21470 7938 03       		.byte	0x3
- 21471 7939 91       		.byte	0x91
- 21472 793a AC77     		.sleb128 -1108
-
GAS LISTING /tmp/ccPaCTqg.s 			page 550
-
-
- 21473 793c 31       		.uleb128 0x31
- 21474 793d 760D0000 		.long	0xd76
- 21475 7941 03       		.byte	0x3
- 21476 7942 91       		.byte	0x91
- 21477 7943 B077     		.sleb128 -1104
- 21478 7945 00       		.byte	0x0
- 21479 7946 00       		.byte	0x0
- 21480 7947 00       		.byte	0x0
- 21481 7948 00       		.byte	0x0
- 21482 7949 30       		.uleb128 0x30
- 21483 794a 8F0D0000 		.long	0xd8f
- 21484 794e 00000000 		.quad	.LBB2140
- 21484      00000000 
- 21485 7956 00000000 		.quad	.LBE2140
- 21485      00000000 
- 21486 795e 03       		.byte	0x3
- 21487 795f 9007     		.value	0x790
- 21488 7961 5D7B0000 		.long	0x7b5d
- 21489 7965 31       		.uleb128 0x31
- 21490 7966 A10D0000 		.long	0xda1
- 21491 796a 03       		.byte	0x3
- 21492 796b 91       		.byte	0x91
- 21493 796c C077     		.sleb128 -1088
- 21494 796e 32       		.uleb128 0x32
- 21495 796f 00000000 		.quad	.LBB2141
- 21495      00000000 
- 21496 7977 00000000 		.quad	.LBE2141
- 21496      00000000 
- 21497 797f 33       		.uleb128 0x33
- 21498 7980 AD0D0000 		.long	0xdad
- 21499 7984 03       		.byte	0x3
- 21500 7985 76       		.byte	0x76
- 21501 7986 F056     		.sleb128 -5264
- 21502 7988 30       		.uleb128 0x30
- 21503 7989 BA0D0000 		.long	0xdba
- 21504 798d 00000000 		.quad	.LBB2142
- 21504      00000000 
- 21505 7995 00000000 		.quad	.LBE2142
- 21505      00000000 
- 21506 799d 03       		.byte	0x3
- 21507 799e 1F06     		.value	0x61f
- 21508 79a0 257A0000 		.long	0x7a25
- 21509 79a4 31       		.uleb128 0x31
- 21510 79a5 CC0D0000 		.long	0xdcc
- 21511 79a9 03       		.byte	0x3
- 21512 79aa 91       		.byte	0x91
- 21513 79ab D077     		.sleb128 -1072
- 21514 79ad 32       		.uleb128 0x32
- 21515 79ae 00000000 		.quad	.LBB2143
- 21515      00000000 
- 21516 79b6 00000000 		.quad	.LBE2143
- 21516      00000000 
- 21517 79be 33       		.uleb128 0x33
- 21518 79bf D80D0000 		.long	0xdd8
- 21519 79c3 09       		.byte	0x9
- 21520 79c4 03       		.byte	0x3
- 21521 79c5 00000000 		.quad	mask.8002
-
GAS LISTING /tmp/ccPaCTqg.s 			page 551
-
-
- 21521      00000000 
- 21522 79cd 34       		.uleb128 0x34
- 21523 79ce FB0D0000 		.long	0xdfb
- 21524 79d2 00000000 		.quad	.LBB2144
- 21524      00000000 
- 21525 79da 00000000 		.quad	.LBE2144
- 21525      00000000 
- 21526 79e2 03       		.byte	0x3
- 21527 79e3 FE04     		.value	0x4fe
- 21528 79e5 31       		.uleb128 0x31
- 21529 79e6 190E0000 		.long	0xe19
- 21530 79ea 03       		.byte	0x3
- 21531 79eb 91       		.byte	0x91
- 21532 79ec E077     		.sleb128 -1056
- 21533 79ee 31       		.uleb128 0x31
- 21534 79ef 0D0E0000 		.long	0xe0d
- 21535 79f3 03       		.byte	0x3
- 21536 79f4 91       		.byte	0x91
- 21537 79f5 F077     		.sleb128 -1040
- 21538 79f7 34       		.uleb128 0x34
- 21539 79f8 260E0000 		.long	0xe26
- 21540 79fc 00000000 		.quad	.LBB2146
- 21540      00000000 
- 21541 7a04 00000000 		.quad	.LBE2146
- 21541      00000000 
- 21542 7a0c 03       		.byte	0x3
- 21543 7a0d 7501     		.value	0x175
- 21544 7a0f 31       		.uleb128 0x31
- 21545 7a10 440E0000 		.long	0xe44
- 21546 7a14 03       		.byte	0x3
- 21547 7a15 91       		.byte	0x91
- 21548 7a16 8078     		.sleb128 -1024
- 21549 7a18 31       		.uleb128 0x31
- 21550 7a19 380E0000 		.long	0xe38
- 21551 7a1d 03       		.byte	0x3
- 21552 7a1e 91       		.byte	0x91
- 21553 7a1f 9078     		.sleb128 -1008
- 21554 7a21 00       		.byte	0x0
- 21555 7a22 00       		.byte	0x0
- 21556 7a23 00       		.byte	0x0
- 21557 7a24 00       		.byte	0x0
- 21558 7a25 30       		.uleb128 0x30
- 21559 7a26 BA0D0000 		.long	0xdba
- 21560 7a2a 00000000 		.quad	.LBB2148
- 21560      00000000 
- 21561 7a32 00000000 		.quad	.LBE2148
- 21561      00000000 
- 21562 7a3a 03       		.byte	0x3
- 21563 7a3b 2006     		.value	0x620
- 21564 7a3d C27A0000 		.long	0x7ac2
- 21565 7a41 31       		.uleb128 0x31
- 21566 7a42 CC0D0000 		.long	0xdcc
- 21567 7a46 03       		.byte	0x3
- 21568 7a47 91       		.byte	0x91
- 21569 7a48 A078     		.sleb128 -992
- 21570 7a4a 32       		.uleb128 0x32
- 21571 7a4b 00000000 		.quad	.LBB2149
-
GAS LISTING /tmp/ccPaCTqg.s 			page 552
-
-
- 21571      00000000 
- 21572 7a53 00000000 		.quad	.LBE2149
- 21572      00000000 
- 21573 7a5b 33       		.uleb128 0x33
- 21574 7a5c D80D0000 		.long	0xdd8
- 21575 7a60 09       		.byte	0x9
- 21576 7a61 03       		.byte	0x3
- 21577 7a62 00000000 		.quad	mask.8002
- 21577      00000000 
- 21578 7a6a 34       		.uleb128 0x34
- 21579 7a6b FB0D0000 		.long	0xdfb
- 21580 7a6f 00000000 		.quad	.LBB2150
- 21580      00000000 
- 21581 7a77 00000000 		.quad	.LBE2150
- 21581      00000000 
- 21582 7a7f 03       		.byte	0x3
- 21583 7a80 FE04     		.value	0x4fe
- 21584 7a82 31       		.uleb128 0x31
- 21585 7a83 190E0000 		.long	0xe19
- 21586 7a87 03       		.byte	0x3
- 21587 7a88 91       		.byte	0x91
- 21588 7a89 B078     		.sleb128 -976
- 21589 7a8b 31       		.uleb128 0x31
- 21590 7a8c 0D0E0000 		.long	0xe0d
- 21591 7a90 03       		.byte	0x3
- 21592 7a91 91       		.byte	0x91
- 21593 7a92 C078     		.sleb128 -960
- 21594 7a94 34       		.uleb128 0x34
- 21595 7a95 260E0000 		.long	0xe26
- 21596 7a99 00000000 		.quad	.LBB2152
- 21596      00000000 
- 21597 7aa1 00000000 		.quad	.LBE2152
- 21597      00000000 
- 21598 7aa9 03       		.byte	0x3
- 21599 7aaa 7501     		.value	0x175
- 21600 7aac 31       		.uleb128 0x31
- 21601 7aad 440E0000 		.long	0xe44
- 21602 7ab1 03       		.byte	0x3
- 21603 7ab2 91       		.byte	0x91
- 21604 7ab3 D078     		.sleb128 -944
- 21605 7ab5 31       		.uleb128 0x31
- 21606 7ab6 380E0000 		.long	0xe38
- 21607 7aba 03       		.byte	0x3
- 21608 7abb 91       		.byte	0x91
- 21609 7abc E078     		.sleb128 -928
- 21610 7abe 00       		.byte	0x0
- 21611 7abf 00       		.byte	0x0
- 21612 7ac0 00       		.byte	0x0
- 21613 7ac1 00       		.byte	0x0
- 21614 7ac2 34       		.uleb128 0x34
- 21615 7ac3 BA0D0000 		.long	0xdba
- 21616 7ac7 00000000 		.quad	.LBB2154
- 21616      00000000 
- 21617 7acf 00000000 		.quad	.LBE2154
- 21617      00000000 
- 21618 7ad7 03       		.byte	0x3
- 21619 7ad8 2106     		.value	0x621
-
GAS LISTING /tmp/ccPaCTqg.s 			page 553
-
-
- 21620 7ada 31       		.uleb128 0x31
- 21621 7adb CC0D0000 		.long	0xdcc
- 21622 7adf 03       		.byte	0x3
- 21623 7ae0 91       		.byte	0x91
- 21624 7ae1 F078     		.sleb128 -912
- 21625 7ae3 32       		.uleb128 0x32
- 21626 7ae4 00000000 		.quad	.LBB2155
- 21626      00000000 
- 21627 7aec 00000000 		.quad	.LBE2155
- 21627      00000000 
- 21628 7af4 33       		.uleb128 0x33
- 21629 7af5 D80D0000 		.long	0xdd8
- 21630 7af9 09       		.byte	0x9
- 21631 7afa 03       		.byte	0x3
- 21632 7afb 00000000 		.quad	mask.8002
- 21632      00000000 
- 21633 7b03 34       		.uleb128 0x34
- 21634 7b04 FB0D0000 		.long	0xdfb
- 21635 7b08 00000000 		.quad	.LBB2156
- 21635      00000000 
- 21636 7b10 00000000 		.quad	.LBE2156
- 21636      00000000 
- 21637 7b18 03       		.byte	0x3
- 21638 7b19 FE04     		.value	0x4fe
- 21639 7b1b 31       		.uleb128 0x31
- 21640 7b1c 190E0000 		.long	0xe19
- 21641 7b20 03       		.byte	0x3
- 21642 7b21 91       		.byte	0x91
- 21643 7b22 8079     		.sleb128 -896
- 21644 7b24 31       		.uleb128 0x31
- 21645 7b25 0D0E0000 		.long	0xe0d
- 21646 7b29 03       		.byte	0x3
- 21647 7b2a 91       		.byte	0x91
- 21648 7b2b 9079     		.sleb128 -880
- 21649 7b2d 34       		.uleb128 0x34
- 21650 7b2e 260E0000 		.long	0xe26
- 21651 7b32 00000000 		.quad	.LBB2158
- 21651      00000000 
- 21652 7b3a 00000000 		.quad	.LBE2158
- 21652      00000000 
- 21653 7b42 03       		.byte	0x3
- 21654 7b43 7501     		.value	0x175
- 21655 7b45 31       		.uleb128 0x31
- 21656 7b46 440E0000 		.long	0xe44
- 21657 7b4a 03       		.byte	0x3
- 21658 7b4b 91       		.byte	0x91
- 21659 7b4c A079     		.sleb128 -864
- 21660 7b4e 31       		.uleb128 0x31
- 21661 7b4f 380E0000 		.long	0xe38
- 21662 7b53 03       		.byte	0x3
- 21663 7b54 91       		.byte	0x91
- 21664 7b55 B079     		.sleb128 -848
- 21665 7b57 00       		.byte	0x0
- 21666 7b58 00       		.byte	0x0
- 21667 7b59 00       		.byte	0x0
- 21668 7b5a 00       		.byte	0x0
- 21669 7b5b 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 554
-
-
- 21670 7b5c 00       		.byte	0x0
- 21671 7b5d 30       		.uleb128 0x30
- 21672 7b5e F7580000 		.long	0x58f7
- 21673 7b62 00000000 		.quad	.LBB2160
- 21673      00000000 
- 21674 7b6a 00000000 		.quad	.LBE2160
- 21674      00000000 
- 21675 7b72 03       		.byte	0x3
- 21676 7b73 9007     		.value	0x790
- 21677 7b75 8C7B0000 		.long	0x7b8c
- 21678 7b79 31       		.uleb128 0x31
- 21679 7b7a 12590000 		.long	0x5912
- 21680 7b7e 03       		.byte	0x3
- 21681 7b7f 91       		.byte	0x91
- 21682 7b80 C079     		.sleb128 -832
- 21683 7b82 31       		.uleb128 0x31
- 21684 7b83 08590000 		.long	0x5908
- 21685 7b87 03       		.byte	0x3
- 21686 7b88 91       		.byte	0x91
- 21687 7b89 D079     		.sleb128 -816
- 21688 7b8b 00       		.byte	0x0
- 21689 7b8c 30       		.uleb128 0x30
- 21690 7b8d 1D590000 		.long	0x591d
- 21691 7b91 00000000 		.quad	.LBB2162
- 21691      00000000 
- 21692 7b99 00000000 		.quad	.LBE2162
- 21692      00000000 
- 21693 7ba1 03       		.byte	0x3
- 21694 7ba2 9107     		.value	0x791
- 21695 7ba4 497C0000 		.long	0x7c49
- 21696 7ba8 31       		.uleb128 0x31
- 21697 7ba9 2F590000 		.long	0x592f
- 21698 7bad 03       		.byte	0x3
- 21699 7bae 91       		.byte	0x91
- 21700 7baf E079     		.sleb128 -800
- 21701 7bb1 32       		.uleb128 0x32
- 21702 7bb2 00000000 		.quad	.LBB2163
- 21702      00000000 
- 21703 7bba 00000000 		.quad	.LBE2163
- 21703      00000000 
- 21704 7bc2 33       		.uleb128 0x33
- 21705 7bc3 3B590000 		.long	0x593b
- 21706 7bc7 03       		.byte	0x3
- 21707 7bc8 76       		.byte	0x76
- 21708 7bc9 8057     		.sleb128 -5248
- 21709 7bcb 30       		.uleb128 0x30
- 21710 7bcc 1A0D0000 		.long	0xd1a
- 21711 7bd0 00000000 		.quad	.LBB2164
- 21711      00000000 
- 21712 7bd8 00000000 		.quad	.LBE2164
- 21712      00000000 
- 21713 7be0 03       		.byte	0x3
- 21714 7be1 7206     		.value	0x672
- 21715 7be3 FA7B0000 		.long	0x7bfa
- 21716 7be7 31       		.uleb128 0x31
- 21717 7be8 380D0000 		.long	0xd38
- 21718 7bec 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 555
-
-
- 21719 7bed 91       		.byte	0x91
- 21720 7bee FC79     		.sleb128 -772
- 21721 7bf0 31       		.uleb128 0x31
- 21722 7bf1 2C0D0000 		.long	0xd2c
- 21723 7bf5 03       		.byte	0x3
- 21724 7bf6 91       		.byte	0x91
- 21725 7bf7 807A     		.sleb128 -768
- 21726 7bf9 00       		.byte	0x0
- 21727 7bfa 34       		.uleb128 0x34
- 21728 7bfb 48590000 		.long	0x5948
- 21729 7bff 00000000 		.quad	.LBB2166
- 21729      00000000 
- 21730 7c07 00000000 		.quad	.LBE2166
- 21730      00000000 
- 21731 7c0f 03       		.byte	0x3
- 21732 7c10 7306     		.value	0x673
- 21733 7c12 31       		.uleb128 0x31
- 21734 7c13 5A590000 		.long	0x595a
- 21735 7c17 03       		.byte	0x3
- 21736 7c18 91       		.byte	0x91
- 21737 7c19 907A     		.sleb128 -752
- 21738 7c1b 34       		.uleb128 0x34
- 21739 7c1c 640D0000 		.long	0xd64
- 21740 7c20 00000000 		.quad	.LBB2168
- 21740      00000000 
- 21741 7c28 00000000 		.quad	.LBE2168
- 21741      00000000 
- 21742 7c30 03       		.byte	0x3
- 21743 7c31 6505     		.value	0x565
- 21744 7c33 31       		.uleb128 0x31
- 21745 7c34 820D0000 		.long	0xd82
- 21746 7c38 03       		.byte	0x3
- 21747 7c39 91       		.byte	0x91
- 21748 7c3a AC7A     		.sleb128 -724
- 21749 7c3c 31       		.uleb128 0x31
- 21750 7c3d 760D0000 		.long	0xd76
- 21751 7c41 03       		.byte	0x3
- 21752 7c42 91       		.byte	0x91
- 21753 7c43 B07A     		.sleb128 -720
- 21754 7c45 00       		.byte	0x0
- 21755 7c46 00       		.byte	0x0
- 21756 7c47 00       		.byte	0x0
- 21757 7c48 00       		.byte	0x0
- 21758 7c49 30       		.uleb128 0x30
- 21759 7c4a 8F0D0000 		.long	0xd8f
- 21760 7c4e 00000000 		.quad	.LBB2170
- 21760      00000000 
- 21761 7c56 00000000 		.quad	.LBE2170
- 21761      00000000 
- 21762 7c5e 03       		.byte	0x3
- 21763 7c5f 9107     		.value	0x791
- 21764 7c61 5D7E0000 		.long	0x7e5d
- 21765 7c65 31       		.uleb128 0x31
- 21766 7c66 A10D0000 		.long	0xda1
- 21767 7c6a 03       		.byte	0x3
- 21768 7c6b 91       		.byte	0x91
- 21769 7c6c C07A     		.sleb128 -704
-
GAS LISTING /tmp/ccPaCTqg.s 			page 556
-
-
- 21770 7c6e 32       		.uleb128 0x32
- 21771 7c6f 00000000 		.quad	.LBB2171
- 21771      00000000 
- 21772 7c77 00000000 		.quad	.LBE2171
- 21772      00000000 
- 21773 7c7f 33       		.uleb128 0x33
- 21774 7c80 AD0D0000 		.long	0xdad
- 21775 7c84 03       		.byte	0x3
- 21776 7c85 76       		.byte	0x76
- 21777 7c86 9057     		.sleb128 -5232
- 21778 7c88 30       		.uleb128 0x30
- 21779 7c89 BA0D0000 		.long	0xdba
- 21780 7c8d 00000000 		.quad	.LBB2172
- 21780      00000000 
- 21781 7c95 00000000 		.quad	.LBE2172
- 21781      00000000 
- 21782 7c9d 03       		.byte	0x3
- 21783 7c9e 1F06     		.value	0x61f
- 21784 7ca0 257D0000 		.long	0x7d25
- 21785 7ca4 31       		.uleb128 0x31
- 21786 7ca5 CC0D0000 		.long	0xdcc
- 21787 7ca9 03       		.byte	0x3
- 21788 7caa 91       		.byte	0x91
- 21789 7cab D07A     		.sleb128 -688
- 21790 7cad 32       		.uleb128 0x32
- 21791 7cae 00000000 		.quad	.LBB2173
- 21791      00000000 
- 21792 7cb6 00000000 		.quad	.LBE2173
- 21792      00000000 
- 21793 7cbe 33       		.uleb128 0x33
- 21794 7cbf D80D0000 		.long	0xdd8
- 21795 7cc3 09       		.byte	0x9
- 21796 7cc4 03       		.byte	0x3
- 21797 7cc5 00000000 		.quad	mask.8002
- 21797      00000000 
- 21798 7ccd 34       		.uleb128 0x34
- 21799 7cce FB0D0000 		.long	0xdfb
- 21800 7cd2 00000000 		.quad	.LBB2174
- 21800      00000000 
- 21801 7cda 00000000 		.quad	.LBE2174
- 21801      00000000 
- 21802 7ce2 03       		.byte	0x3
- 21803 7ce3 FE04     		.value	0x4fe
- 21804 7ce5 31       		.uleb128 0x31
- 21805 7ce6 190E0000 		.long	0xe19
- 21806 7cea 03       		.byte	0x3
- 21807 7ceb 91       		.byte	0x91
- 21808 7cec E07A     		.sleb128 -672
- 21809 7cee 31       		.uleb128 0x31
- 21810 7cef 0D0E0000 		.long	0xe0d
- 21811 7cf3 03       		.byte	0x3
- 21812 7cf4 91       		.byte	0x91
- 21813 7cf5 F07A     		.sleb128 -656
- 21814 7cf7 34       		.uleb128 0x34
- 21815 7cf8 260E0000 		.long	0xe26
- 21816 7cfc 00000000 		.quad	.LBB2176
- 21816      00000000 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 557
-
-
- 21817 7d04 00000000 		.quad	.LBE2176
- 21817      00000000 
- 21818 7d0c 03       		.byte	0x3
- 21819 7d0d 7501     		.value	0x175
- 21820 7d0f 31       		.uleb128 0x31
- 21821 7d10 440E0000 		.long	0xe44
- 21822 7d14 03       		.byte	0x3
- 21823 7d15 91       		.byte	0x91
- 21824 7d16 807B     		.sleb128 -640
- 21825 7d18 31       		.uleb128 0x31
- 21826 7d19 380E0000 		.long	0xe38
- 21827 7d1d 03       		.byte	0x3
- 21828 7d1e 91       		.byte	0x91
- 21829 7d1f 907B     		.sleb128 -624
- 21830 7d21 00       		.byte	0x0
- 21831 7d22 00       		.byte	0x0
- 21832 7d23 00       		.byte	0x0
- 21833 7d24 00       		.byte	0x0
- 21834 7d25 30       		.uleb128 0x30
- 21835 7d26 BA0D0000 		.long	0xdba
- 21836 7d2a 00000000 		.quad	.LBB2178
- 21836      00000000 
- 21837 7d32 00000000 		.quad	.LBE2178
- 21837      00000000 
- 21838 7d3a 03       		.byte	0x3
- 21839 7d3b 2006     		.value	0x620
- 21840 7d3d C27D0000 		.long	0x7dc2
- 21841 7d41 31       		.uleb128 0x31
- 21842 7d42 CC0D0000 		.long	0xdcc
- 21843 7d46 03       		.byte	0x3
- 21844 7d47 91       		.byte	0x91
- 21845 7d48 A07B     		.sleb128 -608
- 21846 7d4a 32       		.uleb128 0x32
- 21847 7d4b 00000000 		.quad	.LBB2179
- 21847      00000000 
- 21848 7d53 00000000 		.quad	.LBE2179
- 21848      00000000 
- 21849 7d5b 33       		.uleb128 0x33
- 21850 7d5c D80D0000 		.long	0xdd8
- 21851 7d60 09       		.byte	0x9
- 21852 7d61 03       		.byte	0x3
- 21853 7d62 00000000 		.quad	mask.8002
- 21853      00000000 
- 21854 7d6a 34       		.uleb128 0x34
- 21855 7d6b FB0D0000 		.long	0xdfb
- 21856 7d6f 00000000 		.quad	.LBB2180
- 21856      00000000 
- 21857 7d77 00000000 		.quad	.LBE2180
- 21857      00000000 
- 21858 7d7f 03       		.byte	0x3
- 21859 7d80 FE04     		.value	0x4fe
- 21860 7d82 31       		.uleb128 0x31
- 21861 7d83 190E0000 		.long	0xe19
- 21862 7d87 03       		.byte	0x3
- 21863 7d88 91       		.byte	0x91
- 21864 7d89 B07B     		.sleb128 -592
- 21865 7d8b 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 558
-
-
- 21866 7d8c 0D0E0000 		.long	0xe0d
- 21867 7d90 03       		.byte	0x3
- 21868 7d91 91       		.byte	0x91
- 21869 7d92 C07B     		.sleb128 -576
- 21870 7d94 34       		.uleb128 0x34
- 21871 7d95 260E0000 		.long	0xe26
- 21872 7d99 00000000 		.quad	.LBB2182
- 21872      00000000 
- 21873 7da1 00000000 		.quad	.LBE2182
- 21873      00000000 
- 21874 7da9 03       		.byte	0x3
- 21875 7daa 7501     		.value	0x175
- 21876 7dac 31       		.uleb128 0x31
- 21877 7dad 440E0000 		.long	0xe44
- 21878 7db1 03       		.byte	0x3
- 21879 7db2 91       		.byte	0x91
- 21880 7db3 D07B     		.sleb128 -560
- 21881 7db5 31       		.uleb128 0x31
- 21882 7db6 380E0000 		.long	0xe38
- 21883 7dba 03       		.byte	0x3
- 21884 7dbb 91       		.byte	0x91
- 21885 7dbc E07B     		.sleb128 -544
- 21886 7dbe 00       		.byte	0x0
- 21887 7dbf 00       		.byte	0x0
- 21888 7dc0 00       		.byte	0x0
- 21889 7dc1 00       		.byte	0x0
- 21890 7dc2 34       		.uleb128 0x34
- 21891 7dc3 BA0D0000 		.long	0xdba
- 21892 7dc7 00000000 		.quad	.LBB2184
- 21892      00000000 
- 21893 7dcf 00000000 		.quad	.LBE2184
- 21893      00000000 
- 21894 7dd7 03       		.byte	0x3
- 21895 7dd8 2106     		.value	0x621
- 21896 7dda 31       		.uleb128 0x31
- 21897 7ddb CC0D0000 		.long	0xdcc
- 21898 7ddf 03       		.byte	0x3
- 21899 7de0 91       		.byte	0x91
- 21900 7de1 F07B     		.sleb128 -528
- 21901 7de3 32       		.uleb128 0x32
- 21902 7de4 00000000 		.quad	.LBB2185
- 21902      00000000 
- 21903 7dec 00000000 		.quad	.LBE2185
- 21903      00000000 
- 21904 7df4 33       		.uleb128 0x33
- 21905 7df5 D80D0000 		.long	0xdd8
- 21906 7df9 09       		.byte	0x9
- 21907 7dfa 03       		.byte	0x3
- 21908 7dfb 00000000 		.quad	mask.8002
- 21908      00000000 
- 21909 7e03 34       		.uleb128 0x34
- 21910 7e04 FB0D0000 		.long	0xdfb
- 21911 7e08 00000000 		.quad	.LBB2186
- 21911      00000000 
- 21912 7e10 00000000 		.quad	.LBE2186
- 21912      00000000 
- 21913 7e18 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 559
-
-
- 21914 7e19 FE04     		.value	0x4fe
- 21915 7e1b 31       		.uleb128 0x31
- 21916 7e1c 190E0000 		.long	0xe19
- 21917 7e20 03       		.byte	0x3
- 21918 7e21 91       		.byte	0x91
- 21919 7e22 807C     		.sleb128 -512
- 21920 7e24 31       		.uleb128 0x31
- 21921 7e25 0D0E0000 		.long	0xe0d
- 21922 7e29 03       		.byte	0x3
- 21923 7e2a 91       		.byte	0x91
- 21924 7e2b 907C     		.sleb128 -496
- 21925 7e2d 34       		.uleb128 0x34
- 21926 7e2e 260E0000 		.long	0xe26
- 21927 7e32 00000000 		.quad	.LBB2188
- 21927      00000000 
- 21928 7e3a 00000000 		.quad	.LBE2188
- 21928      00000000 
- 21929 7e42 03       		.byte	0x3
- 21930 7e43 7501     		.value	0x175
- 21931 7e45 31       		.uleb128 0x31
- 21932 7e46 440E0000 		.long	0xe44
- 21933 7e4a 03       		.byte	0x3
- 21934 7e4b 91       		.byte	0x91
- 21935 7e4c A07C     		.sleb128 -480
- 21936 7e4e 31       		.uleb128 0x31
- 21937 7e4f 380E0000 		.long	0xe38
- 21938 7e53 03       		.byte	0x3
- 21939 7e54 91       		.byte	0x91
- 21940 7e55 B07C     		.sleb128 -464
- 21941 7e57 00       		.byte	0x0
- 21942 7e58 00       		.byte	0x0
- 21943 7e59 00       		.byte	0x0
- 21944 7e5a 00       		.byte	0x0
- 21945 7e5b 00       		.byte	0x0
- 21946 7e5c 00       		.byte	0x0
- 21947 7e5d 30       		.uleb128 0x30
- 21948 7e5e F7580000 		.long	0x58f7
- 21949 7e62 00000000 		.quad	.LBB2190
- 21949      00000000 
- 21950 7e6a 00000000 		.quad	.LBE2190
- 21950      00000000 
- 21951 7e72 03       		.byte	0x3
- 21952 7e73 9107     		.value	0x791
- 21953 7e75 8C7E0000 		.long	0x7e8c
- 21954 7e79 31       		.uleb128 0x31
- 21955 7e7a 12590000 		.long	0x5912
- 21956 7e7e 03       		.byte	0x3
- 21957 7e7f 91       		.byte	0x91
- 21958 7e80 C07C     		.sleb128 -448
- 21959 7e82 31       		.uleb128 0x31
- 21960 7e83 08590000 		.long	0x5908
- 21961 7e87 03       		.byte	0x3
- 21962 7e88 91       		.byte	0x91
- 21963 7e89 D07C     		.sleb128 -432
- 21964 7e8b 00       		.byte	0x0
- 21965 7e8c 30       		.uleb128 0x30
- 21966 7e8d E30C0000 		.long	0xce3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 560
-
-
- 21967 7e91 00000000 		.quad	.LBB2192
- 21967      00000000 
- 21968 7e99 00000000 		.quad	.LBE2192
- 21968      00000000 
- 21969 7ea1 03       		.byte	0x3
- 21970 7ea2 9207     		.value	0x792
- 21971 7ea4 527F0000 		.long	0x7f52
- 21972 7ea8 31       		.uleb128 0x31
- 21973 7ea9 010D0000 		.long	0xd01
- 21974 7ead 03       		.byte	0x3
- 21975 7eae 91       		.byte	0x91
- 21976 7eaf EC7C     		.sleb128 -404
- 21977 7eb1 31       		.uleb128 0x31
- 21978 7eb2 F50C0000 		.long	0xcf5
- 21979 7eb6 03       		.byte	0x3
- 21980 7eb7 91       		.byte	0x91
- 21981 7eb8 F07C     		.sleb128 -400
- 21982 7eba 32       		.uleb128 0x32
- 21983 7ebb 00000000 		.quad	.LBB2193
- 21983      00000000 
- 21984 7ec3 00000000 		.quad	.LBE2193
- 21984      00000000 
- 21985 7ecb 33       		.uleb128 0x33
- 21986 7ecc 0D0D0000 		.long	0xd0d
- 21987 7ed0 03       		.byte	0x3
- 21988 7ed1 76       		.byte	0x76
- 21989 7ed2 A057     		.sleb128 -5216
- 21990 7ed4 30       		.uleb128 0x30
- 21991 7ed5 1A0D0000 		.long	0xd1a
- 21992 7ed9 00000000 		.quad	.LBB2194
- 21992      00000000 
- 21993 7ee1 00000000 		.quad	.LBE2194
- 21993      00000000 
- 21994 7ee9 03       		.byte	0x3
- 21995 7eea 8A06     		.value	0x68a
- 21996 7eec 037F0000 		.long	0x7f03
- 21997 7ef0 31       		.uleb128 0x31
- 21998 7ef1 380D0000 		.long	0xd38
- 21999 7ef5 03       		.byte	0x3
- 22000 7ef6 91       		.byte	0x91
- 22001 7ef7 8C7D     		.sleb128 -372
- 22002 7ef9 31       		.uleb128 0x31
- 22003 7efa 2C0D0000 		.long	0xd2c
- 22004 7efe 03       		.byte	0x3
- 22005 7eff 91       		.byte	0x91
- 22006 7f00 907D     		.sleb128 -368
- 22007 7f02 00       		.byte	0x0
- 22008 7f03 34       		.uleb128 0x34
- 22009 7f04 450D0000 		.long	0xd45
- 22010 7f08 00000000 		.quad	.LBB2196
- 22010      00000000 
- 22011 7f10 00000000 		.quad	.LBE2196
- 22011      00000000 
- 22012 7f18 03       		.byte	0x3
- 22013 7f19 8B06     		.value	0x68b
- 22014 7f1b 31       		.uleb128 0x31
- 22015 7f1c 570D0000 		.long	0xd57
-
GAS LISTING /tmp/ccPaCTqg.s 			page 561
-
-
- 22016 7f20 03       		.byte	0x3
- 22017 7f21 91       		.byte	0x91
- 22018 7f22 A07D     		.sleb128 -352
- 22019 7f24 34       		.uleb128 0x34
- 22020 7f25 640D0000 		.long	0xd64
- 22021 7f29 00000000 		.quad	.LBB2198
- 22021      00000000 
- 22022 7f31 00000000 		.quad	.LBE2198
- 22022      00000000 
- 22023 7f39 03       		.byte	0x3
- 22024 7f3a 4905     		.value	0x549
- 22025 7f3c 31       		.uleb128 0x31
- 22026 7f3d 820D0000 		.long	0xd82
- 22027 7f41 03       		.byte	0x3
- 22028 7f42 91       		.byte	0x91
- 22029 7f43 BC7D     		.sleb128 -324
- 22030 7f45 31       		.uleb128 0x31
- 22031 7f46 760D0000 		.long	0xd76
- 22032 7f4a 03       		.byte	0x3
- 22033 7f4b 91       		.byte	0x91
- 22034 7f4c C07D     		.sleb128 -320
- 22035 7f4e 00       		.byte	0x0
- 22036 7f4f 00       		.byte	0x0
- 22037 7f50 00       		.byte	0x0
- 22038 7f51 00       		.byte	0x0
- 22039 7f52 30       		.uleb128 0x30
- 22040 7f53 8F0D0000 		.long	0xd8f
- 22041 7f57 00000000 		.quad	.LBB2200
- 22041      00000000 
- 22042 7f5f 00000000 		.quad	.LBE2200
- 22042      00000000 
- 22043 7f67 03       		.byte	0x3
- 22044 7f68 9207     		.value	0x792
- 22045 7f6a 65810000 		.long	0x8165
- 22046 7f6e 31       		.uleb128 0x31
- 22047 7f6f A10D0000 		.long	0xda1
- 22048 7f73 03       		.byte	0x3
- 22049 7f74 91       		.byte	0x91
- 22050 7f75 D07D     		.sleb128 -304
- 22051 7f77 32       		.uleb128 0x32
- 22052 7f78 00000000 		.quad	.LBB2201
- 22052      00000000 
- 22053 7f80 00000000 		.quad	.LBE2201
- 22053      00000000 
- 22054 7f88 33       		.uleb128 0x33
- 22055 7f89 AD0D0000 		.long	0xdad
- 22056 7f8d 03       		.byte	0x3
- 22057 7f8e 76       		.byte	0x76
- 22058 7f8f B057     		.sleb128 -5200
- 22059 7f91 30       		.uleb128 0x30
- 22060 7f92 BA0D0000 		.long	0xdba
- 22061 7f96 00000000 		.quad	.LBB2202
- 22061      00000000 
- 22062 7f9e 00000000 		.quad	.LBE2202
- 22062      00000000 
- 22063 7fa6 03       		.byte	0x3
- 22064 7fa7 1F06     		.value	0x61f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 562
-
-
- 22065 7fa9 2E800000 		.long	0x802e
- 22066 7fad 31       		.uleb128 0x31
- 22067 7fae CC0D0000 		.long	0xdcc
- 22068 7fb2 03       		.byte	0x3
- 22069 7fb3 91       		.byte	0x91
- 22070 7fb4 E07D     		.sleb128 -288
- 22071 7fb6 32       		.uleb128 0x32
- 22072 7fb7 00000000 		.quad	.LBB2203
- 22072      00000000 
- 22073 7fbf 00000000 		.quad	.LBE2203
- 22073      00000000 
- 22074 7fc7 33       		.uleb128 0x33
- 22075 7fc8 D80D0000 		.long	0xdd8
- 22076 7fcc 09       		.byte	0x9
- 22077 7fcd 03       		.byte	0x3
- 22078 7fce 00000000 		.quad	mask.8002
- 22078      00000000 
- 22079 7fd6 34       		.uleb128 0x34
- 22080 7fd7 FB0D0000 		.long	0xdfb
- 22081 7fdb 00000000 		.quad	.LBB2204
- 22081      00000000 
- 22082 7fe3 00000000 		.quad	.LBE2204
- 22082      00000000 
- 22083 7feb 03       		.byte	0x3
- 22084 7fec FE04     		.value	0x4fe
- 22085 7fee 31       		.uleb128 0x31
- 22086 7fef 190E0000 		.long	0xe19
- 22087 7ff3 03       		.byte	0x3
- 22088 7ff4 91       		.byte	0x91
- 22089 7ff5 F07D     		.sleb128 -272
- 22090 7ff7 31       		.uleb128 0x31
- 22091 7ff8 0D0E0000 		.long	0xe0d
- 22092 7ffc 03       		.byte	0x3
- 22093 7ffd 91       		.byte	0x91
- 22094 7ffe 807E     		.sleb128 -256
- 22095 8000 34       		.uleb128 0x34
- 22096 8001 260E0000 		.long	0xe26
- 22097 8005 00000000 		.quad	.LBB2206
- 22097      00000000 
- 22098 800d 00000000 		.quad	.LBE2206
- 22098      00000000 
- 22099 8015 03       		.byte	0x3
- 22100 8016 7501     		.value	0x175
- 22101 8018 31       		.uleb128 0x31
- 22102 8019 440E0000 		.long	0xe44
- 22103 801d 03       		.byte	0x3
- 22104 801e 91       		.byte	0x91
- 22105 801f 907E     		.sleb128 -240
- 22106 8021 31       		.uleb128 0x31
- 22107 8022 380E0000 		.long	0xe38
- 22108 8026 03       		.byte	0x3
- 22109 8027 91       		.byte	0x91
- 22110 8028 A07E     		.sleb128 -224
- 22111 802a 00       		.byte	0x0
- 22112 802b 00       		.byte	0x0
- 22113 802c 00       		.byte	0x0
- 22114 802d 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 563
-
-
- 22115 802e 30       		.uleb128 0x30
- 22116 802f BA0D0000 		.long	0xdba
- 22117 8033 00000000 		.quad	.LBB2208
- 22117      00000000 
- 22118 803b 00000000 		.quad	.LBE2208
- 22118      00000000 
- 22119 8043 03       		.byte	0x3
- 22120 8044 2006     		.value	0x620
- 22121 8046 CB800000 		.long	0x80cb
- 22122 804a 31       		.uleb128 0x31
- 22123 804b CC0D0000 		.long	0xdcc
- 22124 804f 03       		.byte	0x3
- 22125 8050 91       		.byte	0x91
- 22126 8051 B07E     		.sleb128 -208
- 22127 8053 32       		.uleb128 0x32
- 22128 8054 00000000 		.quad	.LBB2209
- 22128      00000000 
- 22129 805c 00000000 		.quad	.LBE2209
- 22129      00000000 
- 22130 8064 33       		.uleb128 0x33
- 22131 8065 D80D0000 		.long	0xdd8
- 22132 8069 09       		.byte	0x9
- 22133 806a 03       		.byte	0x3
- 22134 806b 00000000 		.quad	mask.8002
- 22134      00000000 
- 22135 8073 34       		.uleb128 0x34
- 22136 8074 FB0D0000 		.long	0xdfb
- 22137 8078 00000000 		.quad	.LBB2210
- 22137      00000000 
- 22138 8080 00000000 		.quad	.LBE2210
- 22138      00000000 
- 22139 8088 03       		.byte	0x3
- 22140 8089 FE04     		.value	0x4fe
- 22141 808b 31       		.uleb128 0x31
- 22142 808c 190E0000 		.long	0xe19
- 22143 8090 03       		.byte	0x3
- 22144 8091 91       		.byte	0x91
- 22145 8092 C07E     		.sleb128 -192
- 22146 8094 31       		.uleb128 0x31
- 22147 8095 0D0E0000 		.long	0xe0d
- 22148 8099 03       		.byte	0x3
- 22149 809a 91       		.byte	0x91
- 22150 809b D07E     		.sleb128 -176
- 22151 809d 34       		.uleb128 0x34
- 22152 809e 260E0000 		.long	0xe26
- 22153 80a2 00000000 		.quad	.LBB2212
- 22153      00000000 
- 22154 80aa 00000000 		.quad	.LBE2212
- 22154      00000000 
- 22155 80b2 03       		.byte	0x3
- 22156 80b3 7501     		.value	0x175
- 22157 80b5 31       		.uleb128 0x31
- 22158 80b6 440E0000 		.long	0xe44
- 22159 80ba 03       		.byte	0x3
- 22160 80bb 91       		.byte	0x91
- 22161 80bc E07E     		.sleb128 -160
- 22162 80be 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 564
-
-
- 22163 80bf 380E0000 		.long	0xe38
- 22164 80c3 03       		.byte	0x3
- 22165 80c4 91       		.byte	0x91
- 22166 80c5 F07E     		.sleb128 -144
- 22167 80c7 00       		.byte	0x0
- 22168 80c8 00       		.byte	0x0
- 22169 80c9 00       		.byte	0x0
- 22170 80ca 00       		.byte	0x0
- 22171 80cb 34       		.uleb128 0x34
- 22172 80cc BA0D0000 		.long	0xdba
- 22173 80d0 00000000 		.quad	.LBB2214
- 22173      00000000 
- 22174 80d8 00000000 		.quad	.LBE2214
- 22174      00000000 
- 22175 80e0 03       		.byte	0x3
- 22176 80e1 2106     		.value	0x621
- 22177 80e3 31       		.uleb128 0x31
- 22178 80e4 CC0D0000 		.long	0xdcc
- 22179 80e8 03       		.byte	0x3
- 22180 80e9 91       		.byte	0x91
- 22181 80ea 807F     		.sleb128 -128
- 22182 80ec 32       		.uleb128 0x32
- 22183 80ed 00000000 		.quad	.LBB2215
- 22183      00000000 
- 22184 80f5 00000000 		.quad	.LBE2215
- 22184      00000000 
- 22185 80fd 33       		.uleb128 0x33
- 22186 80fe D80D0000 		.long	0xdd8
- 22187 8102 09       		.byte	0x9
- 22188 8103 03       		.byte	0x3
- 22189 8104 00000000 		.quad	mask.8002
- 22189      00000000 
- 22190 810c 34       		.uleb128 0x34
- 22191 810d FB0D0000 		.long	0xdfb
- 22192 8111 00000000 		.quad	.LBB2216
- 22192      00000000 
- 22193 8119 00000000 		.quad	.LBE2216
- 22193      00000000 
- 22194 8121 03       		.byte	0x3
- 22195 8122 FE04     		.value	0x4fe
- 22196 8124 31       		.uleb128 0x31
- 22197 8125 190E0000 		.long	0xe19
- 22198 8129 03       		.byte	0x3
- 22199 812a 91       		.byte	0x91
- 22200 812b 907F     		.sleb128 -112
- 22201 812d 31       		.uleb128 0x31
- 22202 812e 0D0E0000 		.long	0xe0d
- 22203 8132 03       		.byte	0x3
- 22204 8133 91       		.byte	0x91
- 22205 8134 A07F     		.sleb128 -96
- 22206 8136 34       		.uleb128 0x34
- 22207 8137 260E0000 		.long	0xe26
- 22208 813b 00000000 		.quad	.LBB2218
- 22208      00000000 
- 22209 8143 00000000 		.quad	.LBE2218
- 22209      00000000 
- 22210 814b 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 565
-
-
- 22211 814c 7501     		.value	0x175
- 22212 814e 31       		.uleb128 0x31
- 22213 814f 440E0000 		.long	0xe44
- 22214 8153 03       		.byte	0x3
- 22215 8154 91       		.byte	0x91
- 22216 8155 B07F     		.sleb128 -80
- 22217 8157 31       		.uleb128 0x31
- 22218 8158 380E0000 		.long	0xe38
- 22219 815c 02       		.byte	0x2
- 22220 815d 91       		.byte	0x91
- 22221 815e 40       		.sleb128 -64
- 22222 815f 00       		.byte	0x0
- 22223 8160 00       		.byte	0x0
- 22224 8161 00       		.byte	0x0
- 22225 8162 00       		.byte	0x0
- 22226 8163 00       		.byte	0x0
- 22227 8164 00       		.byte	0x0
- 22228 8165 34       		.uleb128 0x34
- 22229 8166 F7580000 		.long	0x58f7
- 22230 816a 00000000 		.quad	.LBB2220
- 22230      00000000 
- 22231 8172 00000000 		.quad	.LBE2220
- 22231      00000000 
- 22232 817a 03       		.byte	0x3
- 22233 817b 9207     		.value	0x792
- 22234 817d 31       		.uleb128 0x31
- 22235 817e 12590000 		.long	0x5912
- 22236 8182 02       		.byte	0x2
- 22237 8183 91       		.byte	0x91
- 22238 8184 50       		.sleb128 -48
- 22239 8185 31       		.uleb128 0x31
- 22240 8186 08590000 		.long	0x5908
- 22241 818a 02       		.byte	0x2
- 22242 818b 91       		.byte	0x91
- 22243 818c 60       		.sleb128 -32
- 22244 818d 00       		.byte	0x0
- 22245 818e 00       		.byte	0x0
- 22246 818f 27       		.uleb128 0x27
- 22247 8190 00000000 		.long	.LASF352
- 22248 8194 03       		.byte	0x3
- 22249 8195 4B04     		.value	0x44b
- 22250 8197 01       		.byte	0x1
- 22251 8198 C9010000 		.long	0x1c9
- 22252 819c 03       		.byte	0x3
- 22253 819d AE810000 		.long	0x81ae
- 22254 81a1 28       		.uleb128 0x28
- 22255 81a2 00000000 		.long	.LASF63
- 22256 81a6 03       		.byte	0x3
- 22257 81a7 4B04     		.value	0x44b
- 22258 81a9 C9010000 		.long	0x1c9
- 22259 81ad 00       		.byte	0x0
- 22260 81ae 2D       		.uleb128 0x2d
- 22261 81af 00000000 		.long	.LASF353
- 22262 81b3 03       		.byte	0x3
- 22263 81b4 9E07     		.value	0x79e
- 22264 81b6 01       		.byte	0x1
- 22265 81b7 00000000 		.quad	.LFB659
-
GAS LISTING /tmp/ccPaCTqg.s 			page 566
-
-
- 22265      00000000 
- 22266 81bf 00000000 		.quad	.LFE659
- 22266      00000000 
- 22267 81c7 00000000 		.long	.LLST9
- 22268 81cb 39820000 		.long	0x8239
- 22269 81cf 2E       		.uleb128 0x2e
- 22270 81d0 7200     		.string	"r"
- 22271 81d2 03       		.byte	0x3
- 22272 81d3 9E07     		.value	0x79e
- 22273 81d5 712B0000 		.long	0x2b71
- 22274 81d9 03       		.byte	0x3
- 22275 81da 91       		.byte	0x91
- 22276 81db B87F     		.sleb128 -72
- 22277 81dd 2E       		.uleb128 0x2e
- 22278 81de 647200   		.string	"dr"
- 22279 81e1 03       		.byte	0x3
- 22280 81e2 9E07     		.value	0x79e
- 22281 81e4 39820000 		.long	0x8239
- 22282 81e8 03       		.byte	0x3
- 22283 81e9 91       		.byte	0x91
- 22284 81ea B07F     		.sleb128 -80
- 22285 81ec 2E       		.uleb128 0x2e
- 22286 81ed 4E7200   		.string	"Nr"
- 22287 81f0 03       		.byte	0x3
- 22288 81f1 9E07     		.value	0x79e
- 22289 81f3 78000000 		.long	0x78
- 22290 81f7 03       		.byte	0x3
- 22291 81f8 91       		.byte	0x91
- 22292 81f9 AC7F     		.sleb128 -84
- 22293 81fb 35       		.uleb128 0x35
- 22294 81fc 697800   		.string	"ix"
- 22295 81ff 03       		.byte	0x3
- 22296 8200 A007     		.value	0x7a0
- 22297 8202 78000000 		.long	0x78
- 22298 8206 02       		.byte	0x2
- 22299 8207 91       		.byte	0x91
- 22300 8208 48       		.sleb128 -56
- 22301 8209 35       		.uleb128 0x35
- 22302 820a 6A7800   		.string	"jx"
- 22303 820d 03       		.byte	0x3
- 22304 820e A007     		.value	0x7a0
- 22305 8210 78000000 		.long	0x78
- 22306 8214 02       		.byte	0x2
- 22307 8215 91       		.byte	0x91
- 22308 8216 4C       		.sleb128 -52
- 22309 8217 34       		.uleb128 0x34
- 22310 8218 8F810000 		.long	0x818f
- 22311 821c 00000000 		.quad	.LBB2224
- 22311      00000000 
- 22312 8224 00000000 		.quad	.LBE2224
- 22312      00000000 
- 22313 822c 03       		.byte	0x3
- 22314 822d A607     		.value	0x7a6
- 22315 822f 31       		.uleb128 0x31
- 22316 8230 A1810000 		.long	0x81a1
- 22317 8234 02       		.byte	0x2
- 22318 8235 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 567
-
-
- 22319 8236 50       		.sleb128 -48
- 22320 8237 00       		.byte	0x0
- 22321 8238 00       		.byte	0x0
- 22322 8239 07       		.uleb128 0x7
- 22323 823a 08       		.byte	0x8
- 22324 823b F60D0000 		.long	0xdf6
- 22325 823f 2D       		.uleb128 0x2d
- 22326 8240 00000000 		.long	.LASF354
- 22327 8244 03       		.byte	0x3
- 22328 8245 AC07     		.value	0x7ac
- 22329 8247 01       		.byte	0x1
- 22330 8248 00000000 		.quad	.LFB660
- 22330      00000000 
- 22331 8250 00000000 		.quad	.LFE660
- 22331      00000000 
- 22332 8258 00000000 		.long	.LLST10
- 22333 825c 7C820000 		.long	0x827c
- 22334 8260 2E       		.uleb128 0x2e
- 22335 8261 7700     		.string	"w"
- 22336 8263 03       		.byte	0x3
- 22337 8264 AC07     		.value	0x7ac
- 22338 8266 712B0000 		.long	0x2b71
- 22339 826a 02       		.byte	0x2
- 22340 826b 91       		.byte	0x91
- 22341 826c 68       		.sleb128 -24
- 22342 826d 2E       		.uleb128 0x2e
- 22343 826e 6B7700   		.string	"kw"
- 22344 8271 03       		.byte	0x3
- 22345 8272 AC07     		.value	0x7ac
- 22346 8274 39820000 		.long	0x8239
- 22347 8278 02       		.byte	0x2
- 22348 8279 91       		.byte	0x91
- 22349 827a 60       		.sleb128 -32
- 22350 827b 00       		.byte	0x0
- 22351 827c 2D       		.uleb128 0x2d
- 22352 827d 00000000 		.long	.LASF355
- 22353 8281 03       		.byte	0x3
- 22354 8282 B307     		.value	0x7b3
- 22355 8284 01       		.byte	0x1
- 22356 8285 00000000 		.quad	.LFB661
- 22356      00000000 
- 22357 828d 00000000 		.quad	.LFE661
- 22357      00000000 
- 22358 8295 00000000 		.long	.LLST11
- 22359 8299 B9820000 		.long	0x82b9
- 22360 829d 2E       		.uleb128 0x2e
- 22361 829e 7700     		.string	"w"
- 22362 82a0 03       		.byte	0x3
- 22363 82a1 B307     		.value	0x7b3
- 22364 82a3 712B0000 		.long	0x2b71
- 22365 82a7 02       		.byte	0x2
- 22366 82a8 91       		.byte	0x91
- 22367 82a9 68       		.sleb128 -24
- 22368 82aa 2E       		.uleb128 0x2e
- 22369 82ab 6B7700   		.string	"kw"
- 22370 82ae 03       		.byte	0x3
- 22371 82af B307     		.value	0x7b3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 568
-
-
- 22372 82b1 39820000 		.long	0x8239
- 22373 82b5 02       		.byte	0x2
- 22374 82b6 91       		.byte	0x91
- 22375 82b7 60       		.sleb128 -32
- 22376 82b8 00       		.byte	0x0
- 22377 82b9 2D       		.uleb128 0x2d
- 22378 82ba 00000000 		.long	.LASF356
- 22379 82be 03       		.byte	0x3
- 22380 82bf BA07     		.value	0x7ba
- 22381 82c1 01       		.byte	0x1
- 22382 82c2 00000000 		.quad	.LFB662
- 22382      00000000 
- 22383 82ca 00000000 		.quad	.LFE662
- 22383      00000000 
- 22384 82d2 00000000 		.long	.LLST12
- 22385 82d6 F6820000 		.long	0x82f6
- 22386 82da 2E       		.uleb128 0x2e
- 22387 82db 7700     		.string	"w"
- 22388 82dd 03       		.byte	0x3
- 22389 82de BA07     		.value	0x7ba
- 22390 82e0 712B0000 		.long	0x2b71
- 22391 82e4 02       		.byte	0x2
- 22392 82e5 91       		.byte	0x91
- 22393 82e6 68       		.sleb128 -24
- 22394 82e7 2E       		.uleb128 0x2e
- 22395 82e8 6B7700   		.string	"kw"
- 22396 82eb 03       		.byte	0x3
- 22397 82ec BA07     		.value	0x7ba
- 22398 82ee 39820000 		.long	0x8239
- 22399 82f2 02       		.byte	0x2
- 22400 82f3 91       		.byte	0x91
- 22401 82f4 60       		.sleb128 -32
- 22402 82f5 00       		.byte	0x0
- 22403 82f6 27       		.uleb128 0x27
- 22404 82f7 00000000 		.long	.LASF357
- 22405 82fb 03       		.byte	0x3
- 22406 82fc C807     		.value	0x7c8
- 22407 82fe 01       		.byte	0x1
- 22408 82ff C9010000 		.long	0x1c9
- 22409 8303 03       		.byte	0x3
- 22410 8304 4D830000 		.long	0x834d
- 22411 8308 28       		.uleb128 0x28
- 22412 8309 00000000 		.long	.LASF63
- 22413 830d 03       		.byte	0x3
- 22414 830e C807     		.value	0x7c8
- 22415 8310 C9010000 		.long	0x1c9
- 22416 8314 28       		.uleb128 0x28
- 22417 8315 00000000 		.long	.LASF61
- 22418 8319 03       		.byte	0x3
- 22419 831a C807     		.value	0x7c8
- 22420 831c F60D0000 		.long	0xdf6
- 22421 8320 36       		.uleb128 0x36
- 22422 8321 30830000 		.long	0x8330
- 22423 8325 29       		.uleb128 0x29
- 22424 8326 7600     		.string	"v"
- 22425 8328 03       		.byte	0x3
- 22426 8329 CA07     		.value	0x7ca
-
GAS LISTING /tmp/ccPaCTqg.s 			page 569
-
-
- 22427 832b F6040000 		.long	0x4f6
- 22428 832f 00       		.byte	0x0
- 22429 8330 36       		.uleb128 0x36
- 22430 8331 40830000 		.long	0x8340
- 22431 8335 29       		.uleb128 0x29
- 22432 8336 7600     		.string	"v"
- 22433 8338 03       		.byte	0x3
- 22434 8339 CC07     		.value	0x7cc
- 22435 833b F6040000 		.long	0x4f6
- 22436 833f 00       		.byte	0x0
- 22437 8340 37       		.uleb128 0x37
- 22438 8341 29       		.uleb128 0x29
- 22439 8342 7600     		.string	"v"
- 22440 8344 03       		.byte	0x3
- 22441 8345 D007     		.value	0x7d0
- 22442 8347 F6040000 		.long	0x4f6
- 22443 834b 00       		.byte	0x0
- 22444 834c 00       		.byte	0x0
- 22445 834d 27       		.uleb128 0x27
- 22446 834e 00000000 		.long	.LASF358
- 22447 8352 03       		.byte	0x3
- 22448 8353 2102     		.value	0x221
- 22449 8355 01       		.byte	0x1
- 22450 8356 C9010000 		.long	0x1c9
- 22451 835a 03       		.byte	0x3
- 22452 835b 78830000 		.long	0x8378
- 22453 835f 28       		.uleb128 0x28
- 22454 8360 00000000 		.long	.LASF63
- 22455 8364 03       		.byte	0x3
- 22456 8365 2102     		.value	0x221
- 22457 8367 C9010000 		.long	0x1c9
- 22458 836b 28       		.uleb128 0x28
- 22459 836c 00000000 		.long	.LASF316
- 22460 8370 03       		.byte	0x3
- 22461 8371 2102     		.value	0x221
- 22462 8373 C9010000 		.long	0x1c9
- 22463 8377 00       		.byte	0x0
- 22464 8378 27       		.uleb128 0x27
- 22465 8379 00000000 		.long	.LASF359
- 22466 837d 03       		.byte	0x3
- 22467 837e DC07     		.value	0x7dc
- 22468 8380 01       		.byte	0x1
- 22469 8381 C9010000 		.long	0x1c9
- 22470 8385 03       		.byte	0x3
- 22471 8386 E7830000 		.long	0x83e7
- 22472 838a 28       		.uleb128 0x28
- 22473 838b 00000000 		.long	.LASF63
- 22474 838f 03       		.byte	0x3
- 22475 8390 DC07     		.value	0x7dc
- 22476 8392 C9010000 		.long	0x1c9
- 22477 8396 28       		.uleb128 0x28
- 22478 8397 00000000 		.long	.LASF61
- 22479 839b 03       		.byte	0x3
- 22480 839c DD07     		.value	0x7dd
- 22481 839e F60D0000 		.long	0xdf6
- 22482 83a2 2B       		.uleb128 0x2b
- 22483 83a3 00000000 		.long	.LASF360
-
GAS LISTING /tmp/ccPaCTqg.s 			page 570
-
-
- 22484 83a7 03       		.byte	0x3
- 22485 83a8 E007     		.value	0x7e0
- 22486 83aa C9010000 		.long	0x1c9
- 22487 83ae 2B       		.uleb128 0x2b
- 22488 83af 00000000 		.long	.LASF361
- 22489 83b3 03       		.byte	0x3
- 22490 83b4 E107     		.value	0x7e1
- 22491 83b6 C9010000 		.long	0x1c9
- 22492 83ba 36       		.uleb128 0x36
- 22493 83bb CA830000 		.long	0x83ca
- 22494 83bf 29       		.uleb128 0x29
- 22495 83c0 7600     		.string	"v"
- 22496 83c2 03       		.byte	0x3
- 22497 83c3 E607     		.value	0x7e6
- 22498 83c5 F6040000 		.long	0x4f6
- 22499 83c9 00       		.byte	0x0
- 22500 83ca 36       		.uleb128 0x36
- 22501 83cb DA830000 		.long	0x83da
- 22502 83cf 29       		.uleb128 0x29
- 22503 83d0 7600     		.string	"v"
- 22504 83d2 03       		.byte	0x3
- 22505 83d3 FC07     		.value	0x7fc
- 22506 83d5 F6040000 		.long	0x4f6
- 22507 83d9 00       		.byte	0x0
- 22508 83da 37       		.uleb128 0x37
- 22509 83db 29       		.uleb128 0x29
- 22510 83dc 7600     		.string	"v"
- 22511 83de 03       		.byte	0x3
- 22512 83df FD07     		.value	0x7fd
- 22513 83e1 F6040000 		.long	0x4f6
- 22514 83e5 00       		.byte	0x0
- 22515 83e6 00       		.byte	0x0
- 22516 83e7 27       		.uleb128 0x27
- 22517 83e8 00000000 		.long	.LASF362
- 22518 83ec 03       		.byte	0x3
- 22519 83ed 0808     		.value	0x808
- 22520 83ef 01       		.byte	0x1
- 22521 83f0 C9010000 		.long	0x1c9
- 22522 83f4 03       		.byte	0x3
- 22523 83f5 3E840000 		.long	0x843e
- 22524 83f9 28       		.uleb128 0x28
- 22525 83fa 00000000 		.long	.LASF63
- 22526 83fe 03       		.byte	0x3
- 22527 83ff 0808     		.value	0x808
- 22528 8401 C9010000 		.long	0x1c9
- 22529 8405 28       		.uleb128 0x28
- 22530 8406 00000000 		.long	.LASF61
- 22531 840a 03       		.byte	0x3
- 22532 840b 0808     		.value	0x808
- 22533 840d C9010000 		.long	0x1c9
- 22534 8411 36       		.uleb128 0x36
- 22535 8412 21840000 		.long	0x8421
- 22536 8416 29       		.uleb128 0x29
- 22537 8417 7600     		.string	"v"
- 22538 8419 03       		.byte	0x3
- 22539 841a 0A08     		.value	0x80a
- 22540 841c F6040000 		.long	0x4f6
-
GAS LISTING /tmp/ccPaCTqg.s 			page 571
-
-
- 22541 8420 00       		.byte	0x0
- 22542 8421 36       		.uleb128 0x36
- 22543 8422 31840000 		.long	0x8431
- 22544 8426 29       		.uleb128 0x29
- 22545 8427 7600     		.string	"v"
- 22546 8429 03       		.byte	0x3
- 22547 842a 1908     		.value	0x819
- 22548 842c F6040000 		.long	0x4f6
- 22549 8430 00       		.byte	0x0
- 22550 8431 37       		.uleb128 0x37
- 22551 8432 29       		.uleb128 0x29
- 22552 8433 7600     		.string	"v"
- 22553 8435 03       		.byte	0x3
- 22554 8436 1A08     		.value	0x81a
- 22555 8438 F6040000 		.long	0x4f6
- 22556 843c 00       		.byte	0x0
- 22557 843d 00       		.byte	0x0
- 22558 843e 1F       		.uleb128 0x1f
- 22559 843f 00000000 		.long	.LASF363
- 22560 8443 03       		.byte	0x3
- 22561 8444 2C08     		.value	0x82c
- 22562 8446 01       		.byte	0x1
- 22563 8447 C9010000 		.long	0x1c9
- 22564 844b 00000000 		.quad	.LFB666
- 22564      00000000 
- 22565 8453 00000000 		.quad	.LFE666
- 22565      00000000 
- 22566 845b 00000000 		.long	.LLST13
- 22567 845f B3860000 		.long	0x86b3
- 22568 8463 20       		.uleb128 0x20
- 22569 8464 00000000 		.long	.LASF63
- 22570 8468 03       		.byte	0x3
- 22571 8469 2C08     		.value	0x82c
- 22572 846b C9010000 		.long	0x1c9
- 22573 846f 03       		.byte	0x3
- 22574 8470 91       		.byte	0x91
- 22575 8471 E07C     		.sleb128 -416
- 22576 8473 2E       		.uleb128 0x2e
- 22577 8474 6B657900 		.string	"key"
- 22578 8478 03       		.byte	0x3
- 22579 8479 2C08     		.value	0x82c
- 22580 847b 39820000 		.long	0x8239
- 22581 847f 03       		.byte	0x3
- 22582 8480 91       		.byte	0x91
- 22583 8481 D87C     		.sleb128 -424
- 22584 8483 2E       		.uleb128 0x2e
- 22585 8484 4E7200   		.string	"Nr"
- 22586 8487 03       		.byte	0x3
- 22587 8488 2D08     		.value	0x82d
- 22588 848a 78000000 		.long	0x78
- 22589 848e 03       		.byte	0x3
- 22590 848f 91       		.byte	0x91
- 22591 8490 D47C     		.sleb128 -428
- 22592 8492 35       		.uleb128 0x35
- 22593 8493 697800   		.string	"ix"
- 22594 8496 03       		.byte	0x3
- 22595 8497 2F08     		.value	0x82f
-
GAS LISTING /tmp/ccPaCTqg.s 			page 572
-
-
- 22596 8499 78000000 		.long	0x78
- 22597 849d 03       		.byte	0x3
- 22598 849e 91       		.byte	0x91
- 22599 849f 8C7E     		.sleb128 -244
- 22600 84a1 30       		.uleb128 0x30
- 22601 84a2 F6820000 		.long	0x82f6
- 22602 84a6 00000000 		.quad	.LBB2245
- 22602      00000000 
- 22603 84ae 00000000 		.quad	.LBE2245
- 22603      00000000 
- 22604 84b6 03       		.byte	0x3
- 22605 84b7 3108     		.value	0x831
- 22606 84b9 83850000 		.long	0x8583
- 22607 84bd 31       		.uleb128 0x31
- 22608 84be 14830000 		.long	0x8314
- 22609 84c2 03       		.byte	0x3
- 22610 84c3 91       		.byte	0x91
- 22611 84c4 907E     		.sleb128 -240
- 22612 84c6 31       		.uleb128 0x31
- 22613 84c7 08830000 		.long	0x8308
- 22614 84cb 03       		.byte	0x3
- 22615 84cc 91       		.byte	0x91
- 22616 84cd A07E     		.sleb128 -224
- 22617 84cf 38       		.uleb128 0x38
- 22618 84d0 00000000 		.quad	.LBB2247
- 22618      00000000 
- 22619 84d8 00000000 		.quad	.LBE2247
- 22619      00000000 
- 22620 84e0 EE840000 		.long	0x84ee
- 22621 84e4 33       		.uleb128 0x33
- 22622 84e5 25830000 		.long	0x8325
- 22623 84e9 03       		.byte	0x3
- 22624 84ea 91       		.byte	0x91
- 22625 84eb 907D     		.sleb128 -368
- 22626 84ed 00       		.byte	0x0
- 22627 84ee 38       		.uleb128 0x38
- 22628 84ef 00000000 		.quad	.LBB2248
- 22628      00000000 
- 22629 84f7 00000000 		.quad	.LBE2248
- 22629      00000000 
- 22630 84ff 0D850000 		.long	0x850d
- 22631 8503 33       		.uleb128 0x33
- 22632 8504 35830000 		.long	0x8335
- 22633 8508 03       		.byte	0x3
- 22634 8509 91       		.byte	0x91
- 22635 850a 807D     		.sleb128 -384
- 22636 850c 00       		.byte	0x0
- 22637 850d 30       		.uleb128 0x30
- 22638 850e 4D830000 		.long	0x834d
- 22639 8512 00000000 		.quad	.LBB2249
- 22639      00000000 
- 22640 851a 00000000 		.quad	.LBE2249
- 22640      00000000 
- 22641 8522 03       		.byte	0x3
- 22642 8523 CE07     		.value	0x7ce
- 22643 8525 67850000 		.long	0x8567
- 22644 8529 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 573
-
-
- 22645 852a 6B830000 		.long	0x836b
- 22646 852e 03       		.byte	0x3
- 22647 852f 91       		.byte	0x91
- 22648 8530 B07E     		.sleb128 -208
- 22649 8532 31       		.uleb128 0x31
- 22650 8533 5F830000 		.long	0x835f
- 22651 8537 03       		.byte	0x3
- 22652 8538 91       		.byte	0x91
- 22653 8539 C07E     		.sleb128 -192
- 22654 853b 34       		.uleb128 0x34
- 22655 853c F7580000 		.long	0x58f7
- 22656 8540 00000000 		.quad	.LBB2251
- 22656      00000000 
- 22657 8548 00000000 		.quad	.LBE2251
- 22657      00000000 
- 22658 8550 03       		.byte	0x3
- 22659 8551 2302     		.value	0x223
- 22660 8553 31       		.uleb128 0x31
- 22661 8554 12590000 		.long	0x5912
- 22662 8558 03       		.byte	0x3
- 22663 8559 91       		.byte	0x91
- 22664 855a D07E     		.sleb128 -176
- 22665 855c 31       		.uleb128 0x31
- 22666 855d 08590000 		.long	0x5908
- 22667 8561 03       		.byte	0x3
- 22668 8562 91       		.byte	0x91
- 22669 8563 E07E     		.sleb128 -160
- 22670 8565 00       		.byte	0x0
- 22671 8566 00       		.byte	0x0
- 22672 8567 32       		.uleb128 0x32
- 22673 8568 00000000 		.quad	.LBB2253
- 22673      00000000 
- 22674 8570 00000000 		.quad	.LBE2253
- 22674      00000000 
- 22675 8578 33       		.uleb128 0x33
- 22676 8579 41830000 		.long	0x8341
- 22677 857d 03       		.byte	0x3
- 22678 857e 91       		.byte	0x91
- 22679 857f F07C     		.sleb128 -400
- 22680 8581 00       		.byte	0x0
- 22681 8582 00       		.byte	0x0
- 22682 8583 30       		.uleb128 0x30
- 22683 8584 78830000 		.long	0x8378
- 22684 8588 00000000 		.quad	.LBB2254
- 22684      00000000 
- 22685 8590 00000000 		.quad	.LBE2254
- 22685      00000000 
- 22686 8598 03       		.byte	0x3
- 22687 8599 3408     		.value	0x834
- 22688 859b 2F860000 		.long	0x862f
- 22689 859f 31       		.uleb128 0x31
- 22690 85a0 96830000 		.long	0x8396
- 22691 85a4 03       		.byte	0x3
- 22692 85a5 91       		.byte	0x91
- 22693 85a6 F07E     		.sleb128 -144
- 22694 85a8 31       		.uleb128 0x31
- 22695 85a9 8A830000 		.long	0x838a
-
GAS LISTING /tmp/ccPaCTqg.s 			page 574
-
-
- 22696 85ad 03       		.byte	0x3
- 22697 85ae 91       		.byte	0x91
- 22698 85af 807F     		.sleb128 -128
- 22699 85b1 32       		.uleb128 0x32
- 22700 85b2 00000000 		.quad	.LBB2255
- 22700      00000000 
- 22701 85ba 00000000 		.quad	.LBE2255
- 22701      00000000 
- 22702 85c2 33       		.uleb128 0x33
- 22703 85c3 A2830000 		.long	0x83a2
- 22704 85c7 03       		.byte	0x3
- 22705 85c8 91       		.byte	0x91
- 22706 85c9 A07F     		.sleb128 -96
- 22707 85cb 33       		.uleb128 0x33
- 22708 85cc AE830000 		.long	0x83ae
- 22709 85d0 03       		.byte	0x3
- 22710 85d1 91       		.byte	0x91
- 22711 85d2 907F     		.sleb128 -112
- 22712 85d4 38       		.uleb128 0x38
- 22713 85d5 00000000 		.quad	.LBB2256
- 22713      00000000 
- 22714 85dd 00000000 		.quad	.LBE2256
- 22714      00000000 
- 22715 85e5 F3850000 		.long	0x85f3
- 22716 85e9 33       		.uleb128 0x33
- 22717 85ea BF830000 		.long	0x83bf
- 22718 85ee 03       		.byte	0x3
- 22719 85ef 91       		.byte	0x91
- 22720 85f0 C07D     		.sleb128 -320
- 22721 85f2 00       		.byte	0x0
- 22722 85f3 38       		.uleb128 0x38
- 22723 85f4 00000000 		.quad	.LBB2257
- 22723      00000000 
- 22724 85fc 00000000 		.quad	.LBE2257
- 22724      00000000 
- 22725 8604 12860000 		.long	0x8612
- 22726 8608 33       		.uleb128 0x33
- 22727 8609 CF830000 		.long	0x83cf
- 22728 860d 03       		.byte	0x3
- 22729 860e 91       		.byte	0x91
- 22730 860f B07D     		.sleb128 -336
- 22731 8611 00       		.byte	0x0
- 22732 8612 32       		.uleb128 0x32
- 22733 8613 00000000 		.quad	.LBB2258
- 22733      00000000 
- 22734 861b 00000000 		.quad	.LBE2258
- 22734      00000000 
- 22735 8623 33       		.uleb128 0x33
- 22736 8624 DB830000 		.long	0x83db
- 22737 8628 03       		.byte	0x3
- 22738 8629 91       		.byte	0x91
- 22739 862a A07D     		.sleb128 -352
- 22740 862c 00       		.byte	0x0
- 22741 862d 00       		.byte	0x0
- 22742 862e 00       		.byte	0x0
- 22743 862f 34       		.uleb128 0x34
- 22744 8630 E7830000 		.long	0x83e7
-
GAS LISTING /tmp/ccPaCTqg.s 			page 575
-
-
- 22745 8634 00000000 		.quad	.LBB2259
- 22745      00000000 
- 22746 863c 00000000 		.quad	.LBE2259
- 22746      00000000 
- 22747 8644 03       		.byte	0x3
- 22748 8645 3608     		.value	0x836
- 22749 8647 31       		.uleb128 0x31
- 22750 8648 05840000 		.long	0x8405
- 22751 864c 03       		.byte	0x3
- 22752 864d 91       		.byte	0x91
- 22753 864e B07F     		.sleb128 -80
- 22754 8650 31       		.uleb128 0x31
- 22755 8651 F9830000 		.long	0x83f9
- 22756 8655 02       		.byte	0x2
- 22757 8656 91       		.byte	0x91
- 22758 8657 40       		.sleb128 -64
- 22759 8658 38       		.uleb128 0x38
- 22760 8659 00000000 		.quad	.LBB2261
- 22760      00000000 
- 22761 8661 00000000 		.quad	.LBE2261
- 22761      00000000 
- 22762 8669 77860000 		.long	0x8677
- 22763 866d 33       		.uleb128 0x33
- 22764 866e 16840000 		.long	0x8416
- 22765 8672 03       		.byte	0x3
- 22766 8673 91       		.byte	0x91
- 22767 8674 F07D     		.sleb128 -272
- 22768 8676 00       		.byte	0x0
- 22769 8677 38       		.uleb128 0x38
- 22770 8678 00000000 		.quad	.LBB2262
- 22770      00000000 
- 22771 8680 00000000 		.quad	.LBE2262
- 22771      00000000 
- 22772 8688 96860000 		.long	0x8696
- 22773 868c 33       		.uleb128 0x33
- 22774 868d 26840000 		.long	0x8426
- 22775 8691 03       		.byte	0x3
- 22776 8692 91       		.byte	0x91
- 22777 8693 E07D     		.sleb128 -288
- 22778 8695 00       		.byte	0x0
- 22779 8696 32       		.uleb128 0x32
- 22780 8697 00000000 		.quad	.LBB2263
- 22780      00000000 
- 22781 869f 00000000 		.quad	.LBE2263
- 22781      00000000 
- 22782 86a7 33       		.uleb128 0x33
- 22783 86a8 32840000 		.long	0x8432
- 22784 86ac 03       		.byte	0x3
- 22785 86ad 91       		.byte	0x91
- 22786 86ae D07D     		.sleb128 -304
- 22787 86b0 00       		.byte	0x0
- 22788 86b1 00       		.byte	0x0
- 22789 86b2 00       		.byte	0x0
- 22790 86b3 27       		.uleb128 0x27
- 22791 86b4 00000000 		.long	.LASF364
- 22792 86b8 03       		.byte	0x3
- 22793 86b9 5308     		.value	0x853
-
GAS LISTING /tmp/ccPaCTqg.s 			page 576
-
-
- 22794 86bb 01       		.byte	0x1
- 22795 86bc C9010000 		.long	0x1c9
- 22796 86c0 03       		.byte	0x3
- 22797 86c1 0A870000 		.long	0x870a
- 22798 86c5 28       		.uleb128 0x28
- 22799 86c6 00000000 		.long	.LASF63
- 22800 86ca 03       		.byte	0x3
- 22801 86cb 5308     		.value	0x853
- 22802 86cd C9010000 		.long	0x1c9
- 22803 86d1 28       		.uleb128 0x28
- 22804 86d2 00000000 		.long	.LASF61
- 22805 86d6 03       		.byte	0x3
- 22806 86d7 5308     		.value	0x853
- 22807 86d9 C9010000 		.long	0x1c9
- 22808 86dd 36       		.uleb128 0x36
- 22809 86de ED860000 		.long	0x86ed
- 22810 86e2 29       		.uleb128 0x29
- 22811 86e3 7600     		.string	"v"
- 22812 86e5 03       		.byte	0x3
- 22813 86e6 5508     		.value	0x855
- 22814 86e8 F6040000 		.long	0x4f6
- 22815 86ec 00       		.byte	0x0
- 22816 86ed 36       		.uleb128 0x36
- 22817 86ee FD860000 		.long	0x86fd
- 22818 86f2 29       		.uleb128 0x29
- 22819 86f3 7600     		.string	"v"
- 22820 86f5 03       		.byte	0x3
- 22821 86f6 5908     		.value	0x859
- 22822 86f8 F6040000 		.long	0x4f6
- 22823 86fc 00       		.byte	0x0
- 22824 86fd 37       		.uleb128 0x37
- 22825 86fe 29       		.uleb128 0x29
- 22826 86ff 7600     		.string	"v"
- 22827 8701 03       		.byte	0x3
- 22828 8702 5A08     		.value	0x85a
- 22829 8704 F6040000 		.long	0x4f6
- 22830 8708 00       		.byte	0x0
- 22831 8709 00       		.byte	0x0
- 22832 870a 27       		.uleb128 0x27
- 22833 870b 00000000 		.long	.LASF365
- 22834 870f 03       		.byte	0x3
- 22835 8710 7008     		.value	0x870
- 22836 8712 01       		.byte	0x1
- 22837 8713 C9010000 		.long	0x1c9
- 22838 8717 03       		.byte	0x3
- 22839 8718 79870000 		.long	0x8779
- 22840 871c 28       		.uleb128 0x28
- 22841 871d 00000000 		.long	.LASF63
- 22842 8721 03       		.byte	0x3
- 22843 8722 7008     		.value	0x870
- 22844 8724 C9010000 		.long	0x1c9
- 22845 8728 28       		.uleb128 0x28
- 22846 8729 00000000 		.long	.LASF61
- 22847 872d 03       		.byte	0x3
- 22848 872e 7108     		.value	0x871
- 22849 8730 C9010000 		.long	0x1c9
- 22850 8734 2B       		.uleb128 0x2b
-
GAS LISTING /tmp/ccPaCTqg.s 			page 577
-
-
- 22851 8735 00000000 		.long	.LASF360
- 22852 8739 03       		.byte	0x3
- 22853 873a 7408     		.value	0x874
- 22854 873c C9010000 		.long	0x1c9
- 22855 8740 2B       		.uleb128 0x2b
- 22856 8741 00000000 		.long	.LASF361
- 22857 8745 03       		.byte	0x3
- 22858 8746 7508     		.value	0x875
- 22859 8748 C9010000 		.long	0x1c9
- 22860 874c 36       		.uleb128 0x36
- 22861 874d 5C870000 		.long	0x875c
- 22862 8751 29       		.uleb128 0x29
- 22863 8752 7600     		.string	"v"
- 22864 8754 03       		.byte	0x3
- 22865 8755 7B08     		.value	0x87b
- 22866 8757 F6040000 		.long	0x4f6
- 22867 875b 00       		.byte	0x0
- 22868 875c 36       		.uleb128 0x36
- 22869 875d 6C870000 		.long	0x876c
- 22870 8761 29       		.uleb128 0x29
- 22871 8762 7600     		.string	"v"
- 22872 8764 03       		.byte	0x3
- 22873 8765 A708     		.value	0x8a7
- 22874 8767 F6040000 		.long	0x4f6
- 22875 876b 00       		.byte	0x0
- 22876 876c 37       		.uleb128 0x37
- 22877 876d 29       		.uleb128 0x29
- 22878 876e 7600     		.string	"v"
- 22879 8770 03       		.byte	0x3
- 22880 8771 A908     		.value	0x8a9
- 22881 8773 F6040000 		.long	0x4f6
- 22882 8777 00       		.byte	0x0
- 22883 8778 00       		.byte	0x0
- 22884 8779 27       		.uleb128 0x27
- 22885 877a 00000000 		.long	.LASF366
- 22886 877e 03       		.byte	0x3
- 22887 877f BA08     		.value	0x8ba
- 22888 8781 01       		.byte	0x1
- 22889 8782 C9010000 		.long	0x1c9
- 22890 8786 03       		.byte	0x3
- 22891 8787 D0870000 		.long	0x87d0
- 22892 878b 28       		.uleb128 0x28
- 22893 878c 00000000 		.long	.LASF63
- 22894 8790 03       		.byte	0x3
- 22895 8791 BA08     		.value	0x8ba
- 22896 8793 C9010000 		.long	0x1c9
- 22897 8797 28       		.uleb128 0x28
- 22898 8798 00000000 		.long	.LASF61
- 22899 879c 03       		.byte	0x3
- 22900 879d BB08     		.value	0x8bb
- 22901 879f C9010000 		.long	0x1c9
- 22902 87a3 36       		.uleb128 0x36
- 22903 87a4 B3870000 		.long	0x87b3
- 22904 87a8 29       		.uleb128 0x29
- 22905 87a9 7600     		.string	"v"
- 22906 87ab 03       		.byte	0x3
- 22907 87ac BD08     		.value	0x8bd
-
GAS LISTING /tmp/ccPaCTqg.s 			page 578
-
-
- 22908 87ae F6040000 		.long	0x4f6
- 22909 87b2 00       		.byte	0x0
- 22910 87b3 36       		.uleb128 0x36
- 22911 87b4 C3870000 		.long	0x87c3
- 22912 87b8 29       		.uleb128 0x29
- 22913 87b9 7600     		.string	"v"
- 22914 87bb 03       		.byte	0x3
- 22915 87bc CD08     		.value	0x8cd
- 22916 87be F6040000 		.long	0x4f6
- 22917 87c2 00       		.byte	0x0
- 22918 87c3 37       		.uleb128 0x37
- 22919 87c4 29       		.uleb128 0x29
- 22920 87c5 7600     		.string	"v"
- 22921 87c7 03       		.byte	0x3
- 22922 87c8 CE08     		.value	0x8ce
- 22923 87ca F6040000 		.long	0x4f6
- 22924 87ce 00       		.byte	0x0
- 22925 87cf 00       		.byte	0x0
- 22926 87d0 1F       		.uleb128 0x1f
- 22927 87d1 00000000 		.long	.LASF367
- 22928 87d5 03       		.byte	0x3
- 22929 87d6 DD08     		.value	0x8dd
- 22930 87d8 01       		.byte	0x1
- 22931 87d9 C9010000 		.long	0x1c9
- 22932 87dd 00000000 		.quad	.LFB670
- 22932      00000000 
- 22933 87e5 00000000 		.quad	.LFE670
- 22933      00000000 
- 22934 87ed 00000000 		.long	.LLST14
- 22935 87f1 458A0000 		.long	0x8a45
- 22936 87f5 20       		.uleb128 0x20
- 22937 87f6 00000000 		.long	.LASF63
- 22938 87fa 03       		.byte	0x3
- 22939 87fb DD08     		.value	0x8dd
- 22940 87fd C9010000 		.long	0x1c9
- 22941 8801 03       		.byte	0x3
- 22942 8802 91       		.byte	0x91
- 22943 8803 E07C     		.sleb128 -416
- 22944 8805 2E       		.uleb128 0x2e
- 22945 8806 6B657900 		.string	"key"
- 22946 880a 03       		.byte	0x3
- 22947 880b DD08     		.value	0x8dd
- 22948 880d 39820000 		.long	0x8239
- 22949 8811 03       		.byte	0x3
- 22950 8812 91       		.byte	0x91
- 22951 8813 D87C     		.sleb128 -424
- 22952 8815 2E       		.uleb128 0x2e
- 22953 8816 4E7200   		.string	"Nr"
- 22954 8819 03       		.byte	0x3
- 22955 881a DE08     		.value	0x8de
- 22956 881c 78000000 		.long	0x78
- 22957 8820 03       		.byte	0x3
- 22958 8821 91       		.byte	0x91
- 22959 8822 D47C     		.sleb128 -428
- 22960 8824 35       		.uleb128 0x35
- 22961 8825 697800   		.string	"ix"
- 22962 8828 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 579
-
-
- 22963 8829 E008     		.value	0x8e0
- 22964 882b 78000000 		.long	0x78
- 22965 882f 03       		.byte	0x3
- 22966 8830 91       		.byte	0x91
- 22967 8831 8C7E     		.sleb128 -244
- 22968 8833 30       		.uleb128 0x30
- 22969 8834 B3860000 		.long	0x86b3
- 22970 8838 00000000 		.quad	.LBB2283
- 22970      00000000 
- 22971 8840 00000000 		.quad	.LBE2283
- 22971      00000000 
- 22972 8848 03       		.byte	0x3
- 22973 8849 E208     		.value	0x8e2
- 22974 884b 15890000 		.long	0x8915
- 22975 884f 31       		.uleb128 0x31
- 22976 8850 D1860000 		.long	0x86d1
- 22977 8854 03       		.byte	0x3
- 22978 8855 91       		.byte	0x91
- 22979 8856 907E     		.sleb128 -240
- 22980 8858 31       		.uleb128 0x31
- 22981 8859 C5860000 		.long	0x86c5
- 22982 885d 03       		.byte	0x3
- 22983 885e 91       		.byte	0x91
- 22984 885f A07E     		.sleb128 -224
- 22985 8861 38       		.uleb128 0x38
- 22986 8862 00000000 		.quad	.LBB2285
- 22986      00000000 
- 22987 886a 00000000 		.quad	.LBE2285
- 22987      00000000 
- 22988 8872 80880000 		.long	0x8880
- 22989 8876 33       		.uleb128 0x33
- 22990 8877 E2860000 		.long	0x86e2
- 22991 887b 03       		.byte	0x3
- 22992 887c 91       		.byte	0x91
- 22993 887d 907D     		.sleb128 -368
- 22994 887f 00       		.byte	0x0
- 22995 8880 30       		.uleb128 0x30
- 22996 8881 4D830000 		.long	0x834d
- 22997 8885 00000000 		.quad	.LBB2286
- 22997      00000000 
- 22998 888d 00000000 		.quad	.LBE2286
- 22998      00000000 
- 22999 8895 03       		.byte	0x3
- 23000 8896 5708     		.value	0x857
- 23001 8898 DA880000 		.long	0x88da
- 23002 889c 31       		.uleb128 0x31
- 23003 889d 6B830000 		.long	0x836b
- 23004 88a1 03       		.byte	0x3
- 23005 88a2 91       		.byte	0x91
- 23006 88a3 B07E     		.sleb128 -208
- 23007 88a5 31       		.uleb128 0x31
- 23008 88a6 5F830000 		.long	0x835f
- 23009 88aa 03       		.byte	0x3
- 23010 88ab 91       		.byte	0x91
- 23011 88ac C07E     		.sleb128 -192
- 23012 88ae 34       		.uleb128 0x34
- 23013 88af F7580000 		.long	0x58f7
-
GAS LISTING /tmp/ccPaCTqg.s 			page 580
-
-
- 23014 88b3 00000000 		.quad	.LBB2288
- 23014      00000000 
- 23015 88bb 00000000 		.quad	.LBE2288
- 23015      00000000 
- 23016 88c3 03       		.byte	0x3
- 23017 88c4 2302     		.value	0x223
- 23018 88c6 31       		.uleb128 0x31
- 23019 88c7 12590000 		.long	0x5912
- 23020 88cb 03       		.byte	0x3
- 23021 88cc 91       		.byte	0x91
- 23022 88cd D07E     		.sleb128 -176
- 23023 88cf 31       		.uleb128 0x31
- 23024 88d0 08590000 		.long	0x5908
- 23025 88d4 03       		.byte	0x3
- 23026 88d5 91       		.byte	0x91
- 23027 88d6 E07E     		.sleb128 -160
- 23028 88d8 00       		.byte	0x0
- 23029 88d9 00       		.byte	0x0
- 23030 88da 38       		.uleb128 0x38
- 23031 88db 00000000 		.quad	.LBB2290
- 23031      00000000 
- 23032 88e3 00000000 		.quad	.LBE2290
- 23032      00000000 
- 23033 88eb F9880000 		.long	0x88f9
- 23034 88ef 33       		.uleb128 0x33
- 23035 88f0 F2860000 		.long	0x86f2
- 23036 88f4 03       		.byte	0x3
- 23037 88f5 91       		.byte	0x91
- 23038 88f6 807D     		.sleb128 -384
- 23039 88f8 00       		.byte	0x0
- 23040 88f9 32       		.uleb128 0x32
- 23041 88fa 00000000 		.quad	.LBB2291
- 23041      00000000 
- 23042 8902 00000000 		.quad	.LBE2291
- 23042      00000000 
- 23043 890a 33       		.uleb128 0x33
- 23044 890b FE860000 		.long	0x86fe
- 23045 890f 03       		.byte	0x3
- 23046 8910 91       		.byte	0x91
- 23047 8911 F07C     		.sleb128 -400
- 23048 8913 00       		.byte	0x0
- 23049 8914 00       		.byte	0x0
- 23050 8915 30       		.uleb128 0x30
- 23051 8916 0A870000 		.long	0x870a
- 23052 891a 00000000 		.quad	.LBB2292
- 23052      00000000 
- 23053 8922 00000000 		.quad	.LBE2292
- 23053      00000000 
- 23054 892a 03       		.byte	0x3
- 23055 892b E508     		.value	0x8e5
- 23056 892d C1890000 		.long	0x89c1
- 23057 8931 31       		.uleb128 0x31
- 23058 8932 28870000 		.long	0x8728
- 23059 8936 03       		.byte	0x3
- 23060 8937 91       		.byte	0x91
- 23061 8938 F07E     		.sleb128 -144
- 23062 893a 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccPaCTqg.s 			page 581
-
-
- 23063 893b 1C870000 		.long	0x871c
- 23064 893f 03       		.byte	0x3
- 23065 8940 91       		.byte	0x91
- 23066 8941 807F     		.sleb128 -128
- 23067 8943 32       		.uleb128 0x32
- 23068 8944 00000000 		.quad	.LBB2293
- 23068      00000000 
- 23069 894c 00000000 		.quad	.LBE2293
- 23069      00000000 
- 23070 8954 33       		.uleb128 0x33
- 23071 8955 34870000 		.long	0x8734
- 23072 8959 03       		.byte	0x3
- 23073 895a 91       		.byte	0x91
- 23074 895b A07F     		.sleb128 -96
- 23075 895d 33       		.uleb128 0x33
- 23076 895e 40870000 		.long	0x8740
- 23077 8962 03       		.byte	0x3
- 23078 8963 91       		.byte	0x91
- 23079 8964 907F     		.sleb128 -112
- 23080 8966 38       		.uleb128 0x38
- 23081 8967 00000000 		.quad	.LBB2294
- 23081      00000000 
- 23082 896f 00000000 		.quad	.LBE2294
- 23082      00000000 
- 23083 8977 85890000 		.long	0x8985
- 23084 897b 33       		.uleb128 0x33
- 23085 897c 51870000 		.long	0x8751
- 23086 8980 03       		.byte	0x3
- 23087 8981 91       		.byte	0x91
- 23088 8982 C07D     		.sleb128 -320
- 23089 8984 00       		.byte	0x0
- 23090 8985 38       		.uleb128 0x38
- 23091 8986 00000000 		.quad	.LBB2295
- 23091      00000000 
- 23092 898e 00000000 		.quad	.LBE2295
- 23092      00000000 
- 23093 8996 A4890000 		.long	0x89a4
- 23094 899a 33       		.uleb128 0x33
- 23095 899b 61870000 		.long	0x8761
- 23096 899f 03       		.byte	0x3
- 23097 89a0 91       		.byte	0x91
- 23098 89a1 B07D     		.sleb128 -336
- 23099 89a3 00       		.byte	0x0
- 23100 89a4 32       		.uleb128 0x32
- 23101 89a5 00000000 		.quad	.LBB2296
- 23101      00000000 
- 23102 89ad 00000000 		.quad	.LBE2296
- 23102      00000000 
- 23103 89b5 33       		.uleb128 0x33
- 23104 89b6 6D870000 		.long	0x876d
- 23105 89ba 03       		.byte	0x3
- 23106 89bb 91       		.byte	0x91
- 23107 89bc A07D     		.sleb128 -352
- 23108 89be 00       		.byte	0x0
- 23109 89bf 00       		.byte	0x0
- 23110 89c0 00       		.byte	0x0
- 23111 89c1 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccPaCTqg.s 			page 582
-
-
- 23112 89c2 79870000 		.long	0x8779
- 23113 89c6 00000000 		.quad	.LBB2297
- 23113      00000000 
- 23114 89ce 00000000 		.quad	.LBE2297
- 23114      00000000 
- 23115 89d6 03       		.byte	0x3
- 23116 89d7 E708     		.value	0x8e7
- 23117 89d9 31       		.uleb128 0x31
- 23118 89da 97870000 		.long	0x8797
- 23119 89de 03       		.byte	0x3
- 23120 89df 91       		.byte	0x91
- 23121 89e0 B07F     		.sleb128 -80
- 23122 89e2 31       		.uleb128 0x31
- 23123 89e3 8B870000 		.long	0x878b
- 23124 89e7 02       		.byte	0x2
- 23125 89e8 91       		.byte	0x91
- 23126 89e9 40       		.sleb128 -64
- 23127 89ea 38       		.uleb128 0x38
- 23128 89eb 00000000 		.quad	.LBB2299
- 23128      00000000 
- 23129 89f3 00000000 		.quad	.LBE2299
- 23129      00000000 
- 23130 89fb 098A0000 		.long	0x8a09
- 23131 89ff 33       		.uleb128 0x33
- 23132 8a00 A8870000 		.long	0x87a8
- 23133 8a04 03       		.byte	0x3
- 23134 8a05 91       		.byte	0x91
- 23135 8a06 F07D     		.sleb128 -272
- 23136 8a08 00       		.byte	0x0
- 23137 8a09 38       		.uleb128 0x38
- 23138 8a0a 00000000 		.quad	.LBB2300
- 23138      00000000 
- 23139 8a12 00000000 		.quad	.LBE2300
- 23139      00000000 
- 23140 8a1a 288A0000 		.long	0x8a28
- 23141 8a1e 33       		.uleb128 0x33
- 23142 8a1f B8870000 		.long	0x87b8
- 23143 8a23 03       		.byte	0x3
- 23144 8a24 91       		.byte	0x91
- 23145 8a25 E07D     		.sleb128 -288
- 23146 8a27 00       		.byte	0x0
- 23147 8a28 32       		.uleb128 0x32
- 23148 8a29 00000000 		.quad	.LBB2301
- 23148      00000000 
- 23149 8a31 00000000 		.quad	.LBE2301
- 23149      00000000 
- 23150 8a39 33       		.uleb128 0x33
- 23151 8a3a C4870000 		.long	0x87c4
- 23152 8a3e 03       		.byte	0x3
- 23153 8a3f 91       		.byte	0x91
- 23154 8a40 D07D     		.sleb128 -304
- 23155 8a42 00       		.byte	0x0
- 23156 8a43 00       		.byte	0x0
- 23157 8a44 00       		.byte	0x0
- 23158 8a45 2D       		.uleb128 0x2d
- 23159 8a46 00000000 		.long	.LASF368
- 23160 8a4a 03       		.byte	0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 583
-
-
- 23161 8a4b 0309     		.value	0x903
- 23162 8a4d 01       		.byte	0x1
- 23163 8a4e 00000000 		.quad	.LFB671
- 23163      00000000 
- 23164 8a56 00000000 		.quad	.LFE671
- 23164      00000000 
- 23165 8a5e 00000000 		.long	.LLST15
- 23166 8a62 768A0000 		.long	0x8a76
- 23167 8a66 20       		.uleb128 0x20
- 23168 8a67 00000000 		.long	.LASF369
- 23169 8a6b 03       		.byte	0x3
- 23170 8a6c 0309     		.value	0x903
- 23171 8a6e E8030000 		.long	0x3e8
- 23172 8a72 02       		.byte	0x2
- 23173 8a73 91       		.byte	0x91
- 23174 8a74 68       		.sleb128 -24
- 23175 8a75 00       		.byte	0x0
- 23176 8a76 39       		.uleb128 0x39
- 23177 8a77 00000000 		.long	.LASF370
- 23178 8a7b 03       		.byte	0x3
- 23179 8a7c 0D09     		.value	0x90d
- 23180 8a7e 6D000000 		.long	0x6d
- 23181 8a82 00000000 		.quad	.LFB672
- 23181      00000000 
- 23182 8a8a 00000000 		.quad	.LFE672
- 23182      00000000 
- 23183 8a92 00000000 		.long	.LLST16
- 23184 8a96 39       		.uleb128 0x39
- 23185 8a97 00000000 		.long	.LASF371
- 23186 8a9b 03       		.byte	0x3
- 23187 8a9c 1C09     		.value	0x91c
- 23188 8a9e 6D000000 		.long	0x6d
- 23189 8aa2 00000000 		.quad	.LFB673
- 23189      00000000 
- 23190 8aaa 00000000 		.quad	.LFE673
- 23190      00000000 
- 23191 8ab2 00000000 		.long	.LLST17
- 23192 8ab6 1F       		.uleb128 0x1f
- 23193 8ab7 00000000 		.long	.LASF372
- 23194 8abb 03       		.byte	0x3
- 23195 8abc 2909     		.value	0x929
- 23196 8abe 01       		.byte	0x1
- 23197 8abf 91000000 		.long	0x91
- 23198 8ac3 00000000 		.quad	.LFB674
- 23198      00000000 
- 23199 8acb 00000000 		.quad	.LFE674
- 23199      00000000 
- 23200 8ad3 00000000 		.long	.LLST18
- 23201 8ad7 4E8B0000 		.long	0x8b4e
- 23202 8adb 20       		.uleb128 0x20
- 23203 8adc 00000000 		.long	.LASF373
- 23204 8ae0 03       		.byte	0x3
- 23205 8ae1 2909     		.value	0x929
- 23206 8ae3 C4000000 		.long	0xc4
- 23207 8ae7 02       		.byte	0x2
- 23208 8ae8 91       		.byte	0x91
- 23209 8ae9 58       		.sleb128 -40
-
GAS LISTING /tmp/ccPaCTqg.s 			page 584
-
-
- 23210 8aea 20       		.uleb128 0x20
- 23211 8aeb 00000000 		.long	.LASF374
- 23212 8aef 03       		.byte	0x3
- 23213 8af0 2909     		.value	0x929
- 23214 8af2 B9000000 		.long	0xb9
- 23215 8af6 02       		.byte	0x2
- 23216 8af7 91       		.byte	0x91
- 23217 8af8 50       		.sleb128 -48
- 23218 8af9 20       		.uleb128 0x20
- 23219 8afa 00000000 		.long	.LASF375
- 23220 8afe 03       		.byte	0x3
- 23221 8aff 2A09     		.value	0x92a
- 23222 8b01 6D000000 		.long	0x6d
- 23223 8b05 02       		.byte	0x2
- 23224 8b06 91       		.byte	0x91
- 23225 8b07 4C       		.sleb128 -52
- 23226 8b08 35       		.uleb128 0x35
- 23227 8b09 726300   		.string	"rc"
- 23228 8b0c 03       		.byte	0x3
- 23229 8b0d 2C09     		.value	0x92c
- 23230 8b0f 91000000 		.long	0x91
- 23231 8b13 02       		.byte	0x2
- 23232 8b14 91       		.byte	0x91
- 23233 8b15 64       		.sleb128 -28
- 23234 8b16 35       		.uleb128 0x35
- 23235 8b17 6B657900 		.string	"key"
- 23236 8b1b 03       		.byte	0x3
- 23237 8b1c 2D09     		.value	0x92d
- 23238 8b1e 4E8B0000 		.long	0x8b4e
- 23239 8b22 02       		.byte	0x2
- 23240 8b23 91       		.byte	0x91
- 23241 8b24 68       		.sleb128 -24
- 23242 8b25 3A       		.uleb128 0x3a
- 23243 8b26 00000000 		.long	.LASF376
- 23244 8b2a 648B0000 		.long	0x8b64
- 23245 8b2e 01       		.byte	0x1
- 23246 8b2f 09       		.byte	0x9
- 23247 8b30 03       		.byte	0x3
- 23248 8b31 00000000 		.quad	__PRETTY_FUNCTION__.8793
- 23248      00000000 
- 23249 8b39 3A       		.uleb128 0x3a
- 23250 8b3a 00000000 		.long	.LASF377
- 23251 8b3e 698B0000 		.long	0x8b69
- 23252 8b42 01       		.byte	0x1
- 23253 8b43 09       		.byte	0x9
- 23254 8b44 03       		.byte	0x3
- 23255 8b45 00000000 		.quad	__func__.8794
- 23255      00000000 
- 23256 8b4d 00       		.byte	0x0
- 23257 8b4e 07       		.uleb128 0x7
- 23258 8b4f 08       		.byte	0x8
- 23259 8b50 3A040000 		.long	0x43a
- 23260 8b54 09       		.uleb128 0x9
- 23261 8b55 9F000000 		.long	0x9f
- 23262 8b59 648B0000 		.long	0x8b64
- 23263 8b5d 0A       		.uleb128 0xa
- 23264 8b5e 9C000000 		.long	0x9c
-
GAS LISTING /tmp/ccPaCTqg.s 			page 585
-
-
- 23265 8b62 24       		.byte	0x24
- 23266 8b63 00       		.byte	0x0
- 23267 8b64 06       		.uleb128 0x6
- 23268 8b65 548B0000 		.long	0x8b54
- 23269 8b69 06       		.uleb128 0x6
- 23270 8b6a 548B0000 		.long	0x8b54
- 23271 8b6e 1F       		.uleb128 0x1f
- 23272 8b6f 00000000 		.long	.LASF378
- 23273 8b73 03       		.byte	0x3
- 23274 8b74 5409     		.value	0x954
- 23275 8b76 01       		.byte	0x1
- 23276 8b77 91000000 		.long	0x91
- 23277 8b7b 00000000 		.quad	.LFB675
- 23277      00000000 
- 23278 8b83 00000000 		.quad	.LFE675
- 23278      00000000 
- 23279 8b8b 00000000 		.long	.LLST19
- 23280 8b8f 038C0000 		.long	0x8c03
- 23281 8b93 20       		.uleb128 0x20
- 23282 8b94 00000000 		.long	.LASF379
- 23283 8b98 03       		.byte	0x3
- 23284 8b99 5409     		.value	0x954
- 23285 8b9b C4000000 		.long	0xc4
- 23286 8b9f 03       		.byte	0x3
- 23287 8ba0 91       		.byte	0x91
- 23288 8ba1 D87D     		.sleb128 -296
- 23289 8ba3 20       		.uleb128 0x20
- 23290 8ba4 00000000 		.long	.LASF374
- 23291 8ba8 03       		.byte	0x3
- 23292 8ba9 5509     		.value	0x955
- 23293 8bab B9000000 		.long	0xb9
- 23294 8baf 03       		.byte	0x3
- 23295 8bb0 91       		.byte	0x91
- 23296 8bb1 D07D     		.sleb128 -304
- 23297 8bb3 20       		.uleb128 0x20
- 23298 8bb4 00000000 		.long	.LASF375
- 23299 8bb8 03       		.byte	0x3
- 23300 8bb9 5609     		.value	0x956
- 23301 8bbb 6D000000 		.long	0x6d
- 23302 8bbf 03       		.byte	0x3
- 23303 8bc0 91       		.byte	0x91
- 23304 8bc1 CC7D     		.sleb128 -308
- 23305 8bc3 2F       		.uleb128 0x2f
- 23306 8bc4 00000000 		.long	.LASF373
- 23307 8bc8 03       		.byte	0x3
- 23308 8bc9 5809     		.value	0x958
- 23309 8bcb 3A040000 		.long	0x43a
- 23310 8bcf 03       		.byte	0x3
- 23311 8bd0 91       		.byte	0x91
- 23312 8bd1 E07D     		.sleb128 -288
- 23313 8bd3 35       		.uleb128 0x35
- 23314 8bd4 726300   		.string	"rc"
- 23315 8bd7 03       		.byte	0x3
- 23316 8bd8 5909     		.value	0x959
- 23317 8bda 91000000 		.long	0x91
- 23318 8bde 02       		.byte	0x2
- 23319 8bdf 91       		.byte	0x91
-
GAS LISTING /tmp/ccPaCTqg.s 			page 586
-
-
- 23320 8be0 64       		.sleb128 -28
- 23321 8be1 32       		.uleb128 0x32
- 23322 8be2 00000000 		.quad	.LBB2302
- 23322      00000000 
- 23323 8bea 00000000 		.quad	.LBE2302
- 23323      00000000 
- 23324 8bf2 35       		.uleb128 0x35
- 23325 8bf3 6B657900 		.string	"key"
- 23326 8bf7 03       		.byte	0x3
- 23327 8bf8 5E09     		.value	0x95e
- 23328 8bfa 4E8B0000 		.long	0x8b4e
- 23329 8bfe 02       		.byte	0x2
- 23330 8bff 91       		.byte	0x91
- 23331 8c00 68       		.sleb128 -24
- 23332 8c01 00       		.byte	0x0
- 23333 8c02 00       		.byte	0x0
- 23334 8c03 1F       		.uleb128 0x1f
- 23335 8c04 00000000 		.long	.LASF380
- 23336 8c08 03       		.byte	0x3
- 23337 8c09 8009     		.value	0x980
- 23338 8c0b 01       		.byte	0x1
- 23339 8c0c C9010000 		.long	0x1c9
- 23340 8c10 00000000 		.quad	.LFB676
- 23340      00000000 
- 23341 8c18 00000000 		.quad	.LFE676
- 23341      00000000 
- 23342 8c20 00000000 		.long	.LLST20
- 23343 8c24 6A8C0000 		.long	0x8c6a
- 23344 8c28 20       		.uleb128 0x20
- 23345 8c29 00000000 		.long	.LASF63
- 23346 8c2d 03       		.byte	0x3
- 23347 8c2e 8009     		.value	0x980
- 23348 8c30 C9010000 		.long	0x1c9
- 23349 8c34 02       		.byte	0x2
- 23350 8c35 91       		.byte	0x91
- 23351 8c36 50       		.sleb128 -48
- 23352 8c37 20       		.uleb128 0x20
- 23353 8c38 00000000 		.long	.LASF373
- 23354 8c3c 03       		.byte	0x3
- 23355 8c3d 8109     		.value	0x981
- 23356 8c3f E3000000 		.long	0xe3
- 23357 8c43 02       		.byte	0x2
- 23358 8c44 91       		.byte	0x91
- 23359 8c45 48       		.sleb128 -56
- 23360 8c46 35       		.uleb128 0x35
- 23361 8c47 6B657900 		.string	"key"
- 23362 8c4b 03       		.byte	0x3
- 23363 8c4c 8309     		.value	0x983
- 23364 8c4e 6A8C0000 		.long	0x8c6a
- 23365 8c52 02       		.byte	0x2
- 23366 8c53 91       		.byte	0x91
- 23367 8c54 68       		.sleb128 -24
- 23368 8c55 3A       		.uleb128 0x3a
- 23369 8c56 00000000 		.long	.LASF376
- 23370 8c5a 858C0000 		.long	0x8c85
- 23371 8c5e 01       		.byte	0x1
- 23372 8c5f 09       		.byte	0x9
-
GAS LISTING /tmp/ccPaCTqg.s 			page 587
-
-
- 23373 8c60 03       		.byte	0x3
- 23374 8c61 00000000 		.quad	__PRETTY_FUNCTION__.8830
- 23374      00000000 
- 23375 8c69 00       		.byte	0x0
- 23376 8c6a 07       		.uleb128 0x7
- 23377 8c6b 08       		.byte	0x8
- 23378 8c6c 708C0000 		.long	0x8c70
- 23379 8c70 06       		.uleb128 0x6
- 23380 8c71 3A040000 		.long	0x43a
- 23381 8c75 09       		.uleb128 0x9
- 23382 8c76 9F000000 		.long	0x9f
- 23383 8c7a 858C0000 		.long	0x8c85
- 23384 8c7e 0A       		.uleb128 0xa
- 23385 8c7f 9C000000 		.long	0x9c
- 23386 8c83 1E       		.byte	0x1e
- 23387 8c84 00       		.byte	0x0
- 23388 8c85 06       		.uleb128 0x6
- 23389 8c86 758C0000 		.long	0x8c75
- 23390 8c8a 1F       		.uleb128 0x1f
- 23391 8c8b 00000000 		.long	.LASF381
- 23392 8c8f 03       		.byte	0x3
- 23393 8c90 A409     		.value	0x9a4
- 23394 8c92 01       		.byte	0x1
- 23395 8c93 C9010000 		.long	0x1c9
- 23396 8c97 00000000 		.quad	.LFB677
- 23396      00000000 
- 23397 8c9f 00000000 		.quad	.LFE677
- 23397      00000000 
- 23398 8ca7 00000000 		.long	.LLST21
- 23399 8cab F18C0000 		.long	0x8cf1
- 23400 8caf 20       		.uleb128 0x20
- 23401 8cb0 00000000 		.long	.LASF63
- 23402 8cb4 03       		.byte	0x3
- 23403 8cb5 A409     		.value	0x9a4
- 23404 8cb7 C9010000 		.long	0x1c9
- 23405 8cbb 02       		.byte	0x2
- 23406 8cbc 91       		.byte	0x91
- 23407 8cbd 50       		.sleb128 -48
- 23408 8cbe 20       		.uleb128 0x20
- 23409 8cbf 00000000 		.long	.LASF379
- 23410 8cc3 03       		.byte	0x3
- 23411 8cc4 A509     		.value	0x9a5
- 23412 8cc6 E3000000 		.long	0xe3
- 23413 8cca 02       		.byte	0x2
- 23414 8ccb 91       		.byte	0x91
- 23415 8ccc 48       		.sleb128 -56
- 23416 8ccd 35       		.uleb128 0x35
- 23417 8cce 6B657900 		.string	"key"
- 23418 8cd2 03       		.byte	0x3
- 23419 8cd3 A709     		.value	0x9a7
- 23420 8cd5 6A8C0000 		.long	0x8c6a
- 23421 8cd9 02       		.byte	0x2
- 23422 8cda 91       		.byte	0x91
- 23423 8cdb 68       		.sleb128 -24
- 23424 8cdc 3A       		.uleb128 0x3a
- 23425 8cdd 00000000 		.long	.LASF376
- 23426 8ce1 F18C0000 		.long	0x8cf1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 588
-
-
- 23427 8ce5 01       		.byte	0x1
- 23428 8ce6 09       		.byte	0x9
- 23429 8ce7 03       		.byte	0x3
- 23430 8ce8 00000000 		.quad	__PRETTY_FUNCTION__.8851
- 23430      00000000 
- 23431 8cf0 00       		.byte	0x0
- 23432 8cf1 06       		.uleb128 0x6
- 23433 8cf2 758C0000 		.long	0x8c75
- 23434 8cf6 3B       		.uleb128 0x3b
- 23435 8cf7 00000000 		.long	.LASF382
- 23436 8cfb 03       		.byte	0x3
- 23437 8cfc CC09     		.value	0x9cc
- 23438 8cfe 818D0000 		.long	0x8d81
- 23439 8d02 00000000 		.quad	.LFB678
- 23439      00000000 
- 23440 8d0a 00000000 		.quad	.LFE678
- 23440      00000000 
- 23441 8d12 00000000 		.long	.LLST22
- 23442 8d16 818D0000 		.long	0x8d81
- 23443 8d1a 2F       		.uleb128 0x2f
- 23444 8d1b 00000000 		.long	.LASF383
- 23445 8d1f 03       		.byte	0x3
- 23446 8d20 CE09     		.value	0x9ce
- 23447 8d22 6D000000 		.long	0x6d
- 23448 8d26 02       		.byte	0x2
- 23449 8d27 91       		.byte	0x91
- 23450 8d28 48       		.sleb128 -56
- 23451 8d29 35       		.uleb128 0x35
- 23452 8d2a 6100     		.string	"a"
- 23453 8d2c 03       		.byte	0x3
- 23454 8d2d CE09     		.value	0x9ce
- 23455 8d2f 6D000000 		.long	0x6d
- 23456 8d33 02       		.byte	0x2
- 23457 8d34 91       		.byte	0x91
- 23458 8d35 4C       		.sleb128 -52
- 23459 8d36 35       		.uleb128 0x35
- 23460 8d37 6200     		.string	"b"
- 23461 8d39 03       		.byte	0x3
- 23462 8d3a CE09     		.value	0x9ce
- 23463 8d3c 6D000000 		.long	0x6d
- 23464 8d40 02       		.byte	0x2
- 23465 8d41 91       		.byte	0x91
- 23466 8d42 50       		.sleb128 -48
- 23467 8d43 35       		.uleb128 0x35
- 23468 8d44 6300     		.string	"c"
- 23469 8d46 03       		.byte	0x3
- 23470 8d47 CE09     		.value	0x9ce
- 23471 8d49 6D000000 		.long	0x6d
- 23472 8d4d 02       		.byte	0x2
- 23473 8d4e 91       		.byte	0x91
- 23474 8d4f 54       		.sleb128 -44
- 23475 8d50 35       		.uleb128 0x35
- 23476 8d51 6400     		.string	"d"
- 23477 8d53 03       		.byte	0x3
- 23478 8d54 CE09     		.value	0x9ce
- 23479 8d56 6D000000 		.long	0x6d
- 23480 8d5a 02       		.byte	0x2
-
GAS LISTING /tmp/ccPaCTqg.s 			page 589
-
-
- 23481 8d5b 91       		.byte	0x91
- 23482 8d5c 58       		.sleb128 -40
- 23483 8d5d 35       		.uleb128 0x35
- 23484 8d5e 72657400 		.string	"ret"
- 23485 8d62 03       		.byte	0x3
- 23486 8d63 CF09     		.value	0x9cf
- 23487 8d65 818D0000 		.long	0x8d81
- 23488 8d69 02       		.byte	0x2
- 23489 8d6a 91       		.byte	0x91
- 23490 8d6b 5F       		.sleb128 -33
- 23491 8d6c 3A       		.uleb128 0x3a
- 23492 8d6d 00000000 		.long	.LASF377
- 23493 8d71 888D0000 		.long	0x8d88
- 23494 8d75 01       		.byte	0x1
- 23495 8d76 09       		.byte	0x9
- 23496 8d77 03       		.byte	0x3
- 23497 8d78 00000000 		.quad	__func__.8875
- 23497      00000000 
- 23498 8d80 00       		.byte	0x0
- 23499 8d81 02       		.uleb128 0x2
- 23500 8d82 01       		.byte	0x1
- 23501 8d83 02       		.byte	0x2
- 23502 8d84 00000000 		.long	.LASF384
- 23503 8d88 06       		.uleb128 0x6
- 23504 8d89 CC000000 		.long	0xcc
- 23505 8d8d 3C       		.uleb128 0x3c
- 23506 8d8e 01       		.byte	0x1
- 23507 8d8f 00000000 		.long	.LASF402
- 23508 8d93 03       		.byte	0x3
- 23509 8d94 390A     		.value	0xa39
- 23510 8d96 01       		.byte	0x1
- 23511 8d97 91000000 		.long	0x91
- 23512 8d9b 00000000 		.quad	.LFB679
- 23512      00000000 
- 23513 8da3 00000000 		.quad	.LFE679
- 23513      00000000 
- 23514 8dab 00000000 		.long	.LLST23
- 23515 8daf F98D0000 		.long	0x8df9
- 23516 8db3 20       		.uleb128 0x20
- 23517 8db4 00000000 		.long	.LASF385
- 23518 8db8 03       		.byte	0x3
- 23519 8db9 390A     		.value	0xa39
- 23520 8dbb F98D0000 		.long	0x8df9
- 23521 8dbf 02       		.byte	0x2
- 23522 8dc0 91       		.byte	0x91
- 23523 8dc1 58       		.sleb128 -40
- 23524 8dc2 35       		.uleb128 0x35
- 23525 8dc3 726300   		.string	"rc"
- 23526 8dc6 03       		.byte	0x3
- 23527 8dc7 3B0A     		.value	0xa3b
- 23528 8dc9 91000000 		.long	0x91
- 23529 8dcd 02       		.byte	0x2
- 23530 8dce 91       		.byte	0x91
- 23531 8dcf 6C       		.sleb128 -20
- 23532 8dd0 3A       		.uleb128 0x3a
- 23533 8dd1 00000000 		.long	.LASF377
- 23534 8dd5 158E0000 		.long	0x8e15
-
GAS LISTING /tmp/ccPaCTqg.s 			page 590
-
-
- 23535 8dd9 01       		.byte	0x1
- 23536 8dda 09       		.byte	0x9
- 23537 8ddb 03       		.byte	0x3
- 23538 8ddc 00000000 		.quad	__func__.8978
- 23538      00000000 
- 23539 8de4 3A       		.uleb128 0x3a
- 23540 8de5 00000000 		.long	.LASF376
- 23541 8de9 1A8E0000 		.long	0x8e1a
- 23542 8ded 01       		.byte	0x1
- 23543 8dee 09       		.byte	0x9
- 23544 8def 03       		.byte	0x3
- 23545 8df0 00000000 		.quad	__PRETTY_FUNCTION__.8979
- 23545      00000000 
- 23546 8df8 00       		.byte	0x0
- 23547 8df9 07       		.uleb128 0x7
- 23548 8dfa 08       		.byte	0x8
- 23549 8dfb FF8D0000 		.long	0x8dff
- 23550 8dff 07       		.uleb128 0x7
- 23551 8e00 08       		.byte	0x8
- 23552 8e01 01050000 		.long	0x501
- 23553 8e05 09       		.uleb128 0x9
- 23554 8e06 9F000000 		.long	0x9f
- 23555 8e0a 158E0000 		.long	0x8e15
- 23556 8e0e 0A       		.uleb128 0xa
- 23557 8e0f 9C000000 		.long	0x9c
- 23558 8e13 1B       		.byte	0x1b
- 23559 8e14 00       		.byte	0x0
- 23560 8e15 06       		.uleb128 0x6
- 23561 8e16 058E0000 		.long	0x8e05
- 23562 8e1a 06       		.uleb128 0x6
- 23563 8e1b 058E0000 		.long	0x8e05
- 23564 8e1f 3D       		.uleb128 0x3d
- 23565 8e20 00000000 		.long	.LASF386
- 23566 8e24 03       		.byte	0x3
- 23567 8e25 53       		.byte	0x53
- 23568 8e26 F60D0000 		.long	0xdf6
- 23569 8e2a 09       		.byte	0x9
- 23570 8e2b 03       		.byte	0x3
- 23571 8e2c 00000000 		.quad	vec_00
- 23571      00000000 
- 23572 8e34 3D       		.uleb128 0x3d
- 23573 8e35 00000000 		.long	.LASF387
- 23574 8e39 03       		.byte	0x3
- 23575 8e3a 57       		.byte	0x57
- 23576 8e3b F60D0000 		.long	0xdf6
- 23577 8e3f 09       		.byte	0x9
- 23578 8e40 03       		.byte	0x3
- 23579 8e41 00000000 		.quad	vec_01
- 23579      00000000 
- 23580 8e49 3D       		.uleb128 0x3d
- 23581 8e4a 00000000 		.long	.LASF388
- 23582 8e4e 03       		.byte	0x3
- 23583 8e4f 5B       		.byte	0x5b
- 23584 8e50 F60D0000 		.long	0xdf6
- 23585 8e54 09       		.byte	0x9
- 23586 8e55 03       		.byte	0x3
- 23587 8e56 00000000 		.quad	vec_0F
-
GAS LISTING /tmp/ccPaCTqg.s 			page 591
-
-
- 23587      00000000 
- 23588 8e5e 3D       		.uleb128 0x3d
- 23589 8e5f 00000000 		.long	.LASF389
- 23590 8e63 03       		.byte	0x3
- 23591 8e64 5F       		.byte	0x5f
- 23592 8e65 F60D0000 		.long	0xdf6
- 23593 8e69 09       		.byte	0x9
- 23594 8e6a 03       		.byte	0x3
- 23595 8e6b 00000000 		.quad	vec_10
- 23595      00000000 
- 23596 8e73 09       		.uleb128 0x9
- 23597 8e74 14040000 		.long	0x414
- 23598 8e78 838E0000 		.long	0x8e83
- 23599 8e7c 0A       		.uleb128 0xa
- 23600 8e7d 9C000000 		.long	0x9c
- 23601 8e81 FF       		.byte	0xff
- 23602 8e82 00       		.byte	0x0
- 23603 8e83 2F       		.uleb128 0x2f
- 23604 8e84 00000000 		.long	.LASF390
- 23605 8e88 03       		.byte	0x3
- 23606 8e89 AA02     		.value	0x2aa
- 23607 8e8b 998E0000 		.long	0x8e99
- 23608 8e8f 09       		.byte	0x9
- 23609 8e90 03       		.byte	0x3
- 23610 8e91 00000000 		.quad	KAESBlockCipherVecAesNiRijndaelSBox
- 23610      00000000 
- 23611 8e99 06       		.uleb128 0x6
- 23612 8e9a 738E0000 		.long	0x8e73
- 23613 8e9e 09       		.uleb128 0x9
- 23614 8e9f C9010000 		.long	0x1c9
- 23615 8ea3 AE8E0000 		.long	0x8eae
- 23616 8ea7 0A       		.uleb128 0xa
- 23617 8ea8 9C000000 		.long	0x9c
- 23618 8eac 0F       		.byte	0xf
- 23619 8ead 00       		.byte	0x0
- 23620 8eae 2F       		.uleb128 0x2f
- 23621 8eaf 00000000 		.long	.LASF391
- 23622 8eb3 03       		.byte	0x3
- 23623 8eb4 1903     		.value	0x319
- 23624 8eb6 C48E0000 		.long	0x8ec4
- 23625 8eba 09       		.byte	0x9
- 23626 8ebb 03       		.byte	0x3
- 23627 8ebc 00000000 		.quad	KAESBlockCipherVecAesNiRijndaelSBoxV
- 23627      00000000 
- 23628 8ec4 06       		.uleb128 0x6
- 23629 8ec5 9E8E0000 		.long	0x8e9e
- 23630 8ec9 2F       		.uleb128 0x2f
- 23631 8eca 00000000 		.long	.LASF392
- 23632 8ece 03       		.byte	0x3
- 23633 8ecf 2F03     		.value	0x32f
- 23634 8ed1 DF8E0000 		.long	0x8edf
- 23635 8ed5 09       		.byte	0x9
- 23636 8ed6 03       		.byte	0x3
- 23637 8ed7 00000000 		.quad	KAESBlockCipherVecAesNiRijndaelInvSBoxV
- 23637      00000000 
- 23638 8edf 06       		.uleb128 0x6
- 23639 8ee0 9E8E0000 		.long	0x8e9e
-
GAS LISTING /tmp/ccPaCTqg.s 			page 592
-
-
- 23640 8ee4 2F       		.uleb128 0x2f
- 23641 8ee5 00000000 		.long	.LASF393
- 23642 8ee9 03       		.byte	0x3
- 23643 8eea 4603     		.value	0x346
- 23644 8eec F60D0000 		.long	0xdf6
- 23645 8ef0 09       		.byte	0x9
- 23646 8ef1 03       		.byte	0x3
- 23647 8ef2 00000000 		.quad	lo_filter
- 23647      00000000 
- 23648 8efa 2F       		.uleb128 0x2f
- 23649 8efb 00000000 		.long	.LASF394
- 23650 8eff 03       		.byte	0x3
- 23651 8f00 9703     		.value	0x397
- 23652 8f02 F60D0000 		.long	0xdf6
- 23653 8f06 09       		.byte	0x9
- 23654 8f07 03       		.byte	0x3
- 23655 8f08 00000000 		.quad	FF_tab
- 23655      00000000 
- 23656 8f10 09       		.uleb128 0x9
- 23657 8f11 14040000 		.long	0x414
- 23658 8f15 208F0000 		.long	0x8f20
- 23659 8f19 0A       		.uleb128 0xa
- 23660 8f1a 9C000000 		.long	0x9c
- 23661 8f1e 07       		.byte	0x7
- 23662 8f1f 00       		.byte	0x0
- 23663 8f20 2F       		.uleb128 0x2f
- 23664 8f21 00000000 		.long	.LASF395
- 23665 8f25 03       		.byte	0x3
- 23666 8f26 DF03     		.value	0x3df
- 23667 8f28 108F0000 		.long	0x8f10
- 23668 8f2c 09       		.byte	0x9
- 23669 8f2d 03       		.byte	0x3
- 23670 8f2e 00000000 		.quad	KAESBlockCipherVecAesNiFFtable
- 23670      00000000 
- 23671 8f36 09       		.uleb128 0x9
- 23672 8f37 1F040000 		.long	0x41f
- 23673 8f3b 468F0000 		.long	0x8f46
- 23674 8f3f 0A       		.uleb128 0xa
- 23675 8f40 9C000000 		.long	0x9c
- 23676 8f44 09       		.byte	0x9
- 23677 8f45 00       		.byte	0x0
- 23678 8f46 2F       		.uleb128 0x2f
- 23679 8f47 00000000 		.long	.LASF396
- 23680 8f4b 03       		.byte	0x3
- 23681 8f4c 9E04     		.value	0x49e
- 23682 8f4e 5C8F0000 		.long	0x8f5c
- 23683 8f52 09       		.byte	0x9
- 23684 8f53 03       		.byte	0x3
- 23685 8f54 00000000 		.quad	KAESBlockCipherVecAesNiRcon
- 23685      00000000 
- 23686 8f5c 06       		.uleb128 0x6
- 23687 8f5d 368F0000 		.long	0x8f36
- 23688 8f61 09       		.uleb128 0x9
- 23689 8f62 9F000000 		.long	0x9f
- 23690 8f66 718F0000 		.long	0x8f71
- 23691 8f6a 0A       		.uleb128 0xa
- 23692 8f6b 9C000000 		.long	0x9c
-
GAS LISTING /tmp/ccPaCTqg.s 			page 593
-
-
- 23693 8f6f 09       		.byte	0x9
- 23694 8f70 00       		.byte	0x0
- 23695 8f71 2F       		.uleb128 0x2f
- 23696 8f72 00000000 		.long	.LASF397
- 23697 8f76 03       		.byte	0x3
- 23698 8f77 F708     		.value	0x8f7
- 23699 8f79 878F0000 		.long	0x8f87
- 23700 8f7d 09       		.byte	0x9
- 23701 8f7e 03       		.byte	0x3
- 23702 8f7f 00000000 		.quad	KAESBlockCipherVecAesNiaes_ncbi_name
- 23702      00000000 
- 23703 8f87 06       		.uleb128 0x6
- 23704 8f88 618F0000 		.long	0x8f61
- 23705 8f8c 2F       		.uleb128 0x2f
- 23706 8f8d 00000000 		.long	.LASF398
- 23707 8f91 03       		.byte	0x3
- 23708 8f92 240A     		.value	0xa24
- 23709 8f94 A28F0000 		.long	0x8fa2
- 23710 8f98 09       		.byte	0x9
- 23711 8f99 03       		.byte	0x3
- 23712 8f9a 00000000 		.quad	KAESBlockCipherVecAesNi_vt_
- 23712      00000000 
- 23713 8fa2 06       		.uleb128 0x6
- 23714 8fa3 27030000 		.long	0x327
- 23715 8fa7 00       		.byte	0x0
- 23716              		.section	.debug_abbrev
- 23717 0000 01       		.uleb128 0x1
- 23718 0001 11       		.uleb128 0x11
- 23719 0002 01       		.byte	0x1
- 23720 0003 25       		.uleb128 0x25
- 23721 0004 0E       		.uleb128 0xe
- 23722 0005 13       		.uleb128 0x13
- 23723 0006 0B       		.uleb128 0xb
- 23724 0007 03       		.uleb128 0x3
- 23725 0008 0E       		.uleb128 0xe
- 23726 0009 1B       		.uleb128 0x1b
- 23727 000a 0E       		.uleb128 0xe
- 23728 000b 11       		.uleb128 0x11
- 23729 000c 01       		.uleb128 0x1
- 23730 000d 12       		.uleb128 0x12
- 23731 000e 01       		.uleb128 0x1
- 23732 000f 10       		.uleb128 0x10
- 23733 0010 06       		.uleb128 0x6
- 23734 0011 00       		.byte	0x0
- 23735 0012 00       		.byte	0x0
- 23736 0013 02       		.uleb128 0x2
- 23737 0014 24       		.uleb128 0x24
- 23738 0015 00       		.byte	0x0
- 23739 0016 0B       		.uleb128 0xb
- 23740 0017 0B       		.uleb128 0xb
- 23741 0018 3E       		.uleb128 0x3e
- 23742 0019 0B       		.uleb128 0xb
- 23743 001a 03       		.uleb128 0x3
- 23744 001b 0E       		.uleb128 0xe
- 23745 001c 00       		.byte	0x0
- 23746 001d 00       		.byte	0x0
- 23747 001e 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 594
-
-
- 23748 001f 16       		.uleb128 0x16
- 23749 0020 00       		.byte	0x0
- 23750 0021 03       		.uleb128 0x3
- 23751 0022 0E       		.uleb128 0xe
- 23752 0023 3A       		.uleb128 0x3a
- 23753 0024 0B       		.uleb128 0xb
- 23754 0025 3B       		.uleb128 0x3b
- 23755 0026 0B       		.uleb128 0xb
- 23756 0027 49       		.uleb128 0x49
- 23757 0028 13       		.uleb128 0x13
- 23758 0029 00       		.byte	0x0
- 23759 002a 00       		.byte	0x0
- 23760 002b 04       		.uleb128 0x4
- 23761 002c 24       		.uleb128 0x24
- 23762 002d 00       		.byte	0x0
- 23763 002e 0B       		.uleb128 0xb
- 23764 002f 0B       		.uleb128 0xb
- 23765 0030 3E       		.uleb128 0x3e
- 23766 0031 0B       		.uleb128 0xb
- 23767 0032 03       		.uleb128 0x3
- 23768 0033 08       		.uleb128 0x8
- 23769 0034 00       		.byte	0x0
- 23770 0035 00       		.byte	0x0
- 23771 0036 05       		.uleb128 0x5
- 23772 0037 24       		.uleb128 0x24
- 23773 0038 00       		.byte	0x0
- 23774 0039 0B       		.uleb128 0xb
- 23775 003a 0B       		.uleb128 0xb
- 23776 003b 3E       		.uleb128 0x3e
- 23777 003c 0B       		.uleb128 0xb
- 23778 003d 00       		.byte	0x0
- 23779 003e 00       		.byte	0x0
- 23780 003f 06       		.uleb128 0x6
- 23781 0040 26       		.uleb128 0x26
- 23782 0041 00       		.byte	0x0
- 23783 0042 49       		.uleb128 0x49
- 23784 0043 13       		.uleb128 0x13
- 23785 0044 00       		.byte	0x0
- 23786 0045 00       		.byte	0x0
- 23787 0046 07       		.uleb128 0x7
- 23788 0047 0F       		.uleb128 0xf
- 23789 0048 00       		.byte	0x0
- 23790 0049 0B       		.uleb128 0xb
- 23791 004a 0B       		.uleb128 0xb
- 23792 004b 49       		.uleb128 0x49
- 23793 004c 13       		.uleb128 0x13
- 23794 004d 00       		.byte	0x0
- 23795 004e 00       		.byte	0x0
- 23796 004f 08       		.uleb128 0x8
- 23797 0050 0F       		.uleb128 0xf
- 23798 0051 00       		.byte	0x0
- 23799 0052 0B       		.uleb128 0xb
- 23800 0053 0B       		.uleb128 0xb
- 23801 0054 00       		.byte	0x0
- 23802 0055 00       		.byte	0x0
- 23803 0056 09       		.uleb128 0x9
- 23804 0057 01       		.uleb128 0x1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 595
-
-
- 23805 0058 01       		.byte	0x1
- 23806 0059 49       		.uleb128 0x49
- 23807 005a 13       		.uleb128 0x13
- 23808 005b 01       		.uleb128 0x1
- 23809 005c 13       		.uleb128 0x13
- 23810 005d 00       		.byte	0x0
- 23811 005e 00       		.byte	0x0
- 23812 005f 0A       		.uleb128 0xa
- 23813 0060 21       		.uleb128 0x21
- 23814 0061 00       		.byte	0x0
- 23815 0062 49       		.uleb128 0x49
- 23816 0063 13       		.uleb128 0x13
- 23817 0064 2F       		.uleb128 0x2f
- 23818 0065 0B       		.uleb128 0xb
- 23819 0066 00       		.byte	0x0
- 23820 0067 00       		.byte	0x0
- 23821 0068 0B       		.uleb128 0xb
- 23822 0069 26       		.uleb128 0x26
- 23823 006a 00       		.byte	0x0
- 23824 006b 00       		.byte	0x0
- 23825 006c 00       		.byte	0x0
- 23826 006d 0C       		.uleb128 0xc
- 23827 006e 01       		.uleb128 0x1
- 23828 006f 00       		.byte	0x0
- 23829 0070 8742     		.uleb128 0x2107
- 23830 0072 0C       		.uleb128 0xc
- 23831 0073 49       		.uleb128 0x49
- 23832 0074 13       		.uleb128 0x13
- 23833 0075 00       		.byte	0x0
- 23834 0076 00       		.byte	0x0
- 23835 0077 0D       		.uleb128 0xd
- 23836 0078 04       		.uleb128 0x4
- 23837 0079 01       		.byte	0x1
- 23838 007a 0B       		.uleb128 0xb
- 23839 007b 0B       		.uleb128 0xb
- 23840 007c 3A       		.uleb128 0x3a
- 23841 007d 0B       		.uleb128 0xb
- 23842 007e 3B       		.uleb128 0x3b
- 23843 007f 0B       		.uleb128 0xb
- 23844 0080 01       		.uleb128 0x1
- 23845 0081 13       		.uleb128 0x13
- 23846 0082 00       		.byte	0x0
- 23847 0083 00       		.byte	0x0
- 23848 0084 0E       		.uleb128 0xe
- 23849 0085 28       		.uleb128 0x28
- 23850 0086 00       		.byte	0x0
- 23851 0087 03       		.uleb128 0x3
- 23852 0088 0E       		.uleb128 0xe
- 23853 0089 1C       		.uleb128 0x1c
- 23854 008a 0D       		.uleb128 0xd
- 23855 008b 00       		.byte	0x0
- 23856 008c 00       		.byte	0x0
- 23857 008d 0F       		.uleb128 0xf
- 23858 008e 04       		.uleb128 0x4
- 23859 008f 01       		.byte	0x1
- 23860 0090 0B       		.uleb128 0xb
- 23861 0091 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 596
-
-
- 23862 0092 3A       		.uleb128 0x3a
- 23863 0093 0B       		.uleb128 0xb
- 23864 0094 3B       		.uleb128 0x3b
- 23865 0095 05       		.uleb128 0x5
- 23866 0096 01       		.uleb128 0x1
- 23867 0097 13       		.uleb128 0x13
- 23868 0098 00       		.byte	0x0
- 23869 0099 00       		.byte	0x0
- 23870 009a 10       		.uleb128 0x10
- 23871 009b 13       		.uleb128 0x13
- 23872 009c 01       		.byte	0x1
- 23873 009d 03       		.uleb128 0x3
- 23874 009e 0E       		.uleb128 0xe
- 23875 009f 0B       		.uleb128 0xb
- 23876 00a0 0B       		.uleb128 0xb
- 23877 00a1 3A       		.uleb128 0x3a
- 23878 00a2 0B       		.uleb128 0xb
- 23879 00a3 3B       		.uleb128 0x3b
- 23880 00a4 0B       		.uleb128 0xb
- 23881 00a5 01       		.uleb128 0x1
- 23882 00a6 13       		.uleb128 0x13
- 23883 00a7 00       		.byte	0x0
- 23884 00a8 00       		.byte	0x0
- 23885 00a9 11       		.uleb128 0x11
- 23886 00aa 0D       		.uleb128 0xd
- 23887 00ab 00       		.byte	0x0
- 23888 00ac 03       		.uleb128 0x3
- 23889 00ad 08       		.uleb128 0x8
- 23890 00ae 3A       		.uleb128 0x3a
- 23891 00af 0B       		.uleb128 0xb
- 23892 00b0 3B       		.uleb128 0x3b
- 23893 00b1 0B       		.uleb128 0xb
- 23894 00b2 49       		.uleb128 0x49
- 23895 00b3 13       		.uleb128 0x13
- 23896 00b4 38       		.uleb128 0x38
- 23897 00b5 0A       		.uleb128 0xa
- 23898 00b6 00       		.byte	0x0
- 23899 00b7 00       		.byte	0x0
- 23900 00b8 12       		.uleb128 0x12
- 23901 00b9 0D       		.uleb128 0xd
- 23902 00ba 00       		.byte	0x0
- 23903 00bb 03       		.uleb128 0x3
- 23904 00bc 0E       		.uleb128 0xe
- 23905 00bd 3A       		.uleb128 0x3a
- 23906 00be 0B       		.uleb128 0xb
- 23907 00bf 3B       		.uleb128 0x3b
- 23908 00c0 0B       		.uleb128 0xb
- 23909 00c1 49       		.uleb128 0x49
- 23910 00c2 13       		.uleb128 0x13
- 23911 00c3 38       		.uleb128 0x38
- 23912 00c4 0A       		.uleb128 0xa
- 23913 00c5 00       		.byte	0x0
- 23914 00c6 00       		.byte	0x0
- 23915 00c7 13       		.uleb128 0x13
- 23916 00c8 17       		.uleb128 0x17
- 23917 00c9 01       		.byte	0x1
- 23918 00ca 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccPaCTqg.s 			page 597
-
-
- 23919 00cb 0E       		.uleb128 0xe
- 23920 00cc 0B       		.uleb128 0xb
- 23921 00cd 0B       		.uleb128 0xb
- 23922 00ce 3A       		.uleb128 0x3a
- 23923 00cf 0B       		.uleb128 0xb
- 23924 00d0 3B       		.uleb128 0x3b
- 23925 00d1 0B       		.uleb128 0xb
- 23926 00d2 01       		.uleb128 0x1
- 23927 00d3 13       		.uleb128 0x13
- 23928 00d4 00       		.byte	0x0
- 23929 00d5 00       		.byte	0x0
- 23930 00d6 14       		.uleb128 0x14
- 23931 00d7 0D       		.uleb128 0xd
- 23932 00d8 00       		.byte	0x0
- 23933 00d9 03       		.uleb128 0x3
- 23934 00da 0E       		.uleb128 0xe
- 23935 00db 3A       		.uleb128 0x3a
- 23936 00dc 0B       		.uleb128 0xb
- 23937 00dd 3B       		.uleb128 0x3b
- 23938 00de 0B       		.uleb128 0xb
- 23939 00df 49       		.uleb128 0x49
- 23940 00e0 13       		.uleb128 0x13
- 23941 00e1 00       		.byte	0x0
- 23942 00e2 00       		.byte	0x0
- 23943 00e3 15       		.uleb128 0x15
- 23944 00e4 0D       		.uleb128 0xd
- 23945 00e5 00       		.byte	0x0
- 23946 00e6 03       		.uleb128 0x3
- 23947 00e7 08       		.uleb128 0x8
- 23948 00e8 3A       		.uleb128 0x3a
- 23949 00e9 0B       		.uleb128 0xb
- 23950 00ea 3B       		.uleb128 0x3b
- 23951 00eb 0B       		.uleb128 0xb
- 23952 00ec 49       		.uleb128 0x49
- 23953 00ed 13       		.uleb128 0x13
- 23954 00ee 00       		.byte	0x0
- 23955 00ef 00       		.byte	0x0
- 23956 00f0 16       		.uleb128 0x16
- 23957 00f1 15       		.uleb128 0x15
- 23958 00f2 01       		.byte	0x1
- 23959 00f3 27       		.uleb128 0x27
- 23960 00f4 0C       		.uleb128 0xc
- 23961 00f5 01       		.uleb128 0x1
- 23962 00f6 13       		.uleb128 0x13
- 23963 00f7 00       		.byte	0x0
- 23964 00f8 00       		.byte	0x0
- 23965 00f9 17       		.uleb128 0x17
- 23966 00fa 05       		.uleb128 0x5
- 23967 00fb 00       		.byte	0x0
- 23968 00fc 49       		.uleb128 0x49
- 23969 00fd 13       		.uleb128 0x13
- 23970 00fe 00       		.byte	0x0
- 23971 00ff 00       		.byte	0x0
- 23972 0100 18       		.uleb128 0x18
- 23973 0101 15       		.uleb128 0x15
- 23974 0102 01       		.byte	0x1
- 23975 0103 49       		.uleb128 0x49
-
GAS LISTING /tmp/ccPaCTqg.s 			page 598
-
-
- 23976 0104 13       		.uleb128 0x13
- 23977 0105 01       		.uleb128 0x1
- 23978 0106 13       		.uleb128 0x13
- 23979 0107 00       		.byte	0x0
- 23980 0108 00       		.byte	0x0
- 23981 0109 19       		.uleb128 0x19
- 23982 010a 18       		.uleb128 0x18
- 23983 010b 00       		.byte	0x0
- 23984 010c 00       		.byte	0x0
- 23985 010d 00       		.byte	0x0
- 23986 010e 1A       		.uleb128 0x1a
- 23987 010f 15       		.uleb128 0x15
- 23988 0110 01       		.byte	0x1
- 23989 0111 27       		.uleb128 0x27
- 23990 0112 0C       		.uleb128 0xc
- 23991 0113 49       		.uleb128 0x49
- 23992 0114 13       		.uleb128 0x13
- 23993 0115 01       		.uleb128 0x1
- 23994 0116 13       		.uleb128 0x13
- 23995 0117 00       		.byte	0x0
- 23996 0118 00       		.byte	0x0
- 23997 0119 1B       		.uleb128 0x1b
- 23998 011a 13       		.uleb128 0x13
- 23999 011b 01       		.byte	0x1
- 24000 011c 03       		.uleb128 0x3
- 24001 011d 0E       		.uleb128 0xe
- 24002 011e 0B       		.uleb128 0xb
- 24003 011f 05       		.uleb128 0x5
- 24004 0120 3A       		.uleb128 0x3a
- 24005 0121 0B       		.uleb128 0xb
- 24006 0122 3B       		.uleb128 0x3b
- 24007 0123 0B       		.uleb128 0xb
- 24008 0124 01       		.uleb128 0x1
- 24009 0125 13       		.uleb128 0x13
- 24010 0126 00       		.byte	0x0
- 24011 0127 00       		.byte	0x0
- 24012 0128 1C       		.uleb128 0x1c
- 24013 0129 17       		.uleb128 0x17
- 24014 012a 01       		.byte	0x1
- 24015 012b 0B       		.uleb128 0xb
- 24016 012c 0B       		.uleb128 0xb
- 24017 012d 3A       		.uleb128 0x3a
- 24018 012e 0B       		.uleb128 0xb
- 24019 012f 3B       		.uleb128 0x3b
- 24020 0130 0B       		.uleb128 0xb
- 24021 0131 01       		.uleb128 0x1
- 24022 0132 13       		.uleb128 0x13
- 24023 0133 00       		.byte	0x0
- 24024 0134 00       		.byte	0x0
- 24025 0135 1D       		.uleb128 0x1d
- 24026 0136 04       		.uleb128 0x4
- 24027 0137 01       		.byte	0x1
- 24028 0138 03       		.uleb128 0x3
- 24029 0139 0E       		.uleb128 0xe
- 24030 013a 0B       		.uleb128 0xb
- 24031 013b 0B       		.uleb128 0xb
- 24032 013c 3A       		.uleb128 0x3a
-
GAS LISTING /tmp/ccPaCTqg.s 			page 599
-
-
- 24033 013d 0B       		.uleb128 0xb
- 24034 013e 3B       		.uleb128 0x3b
- 24035 013f 0B       		.uleb128 0xb
- 24036 0140 01       		.uleb128 0x1
- 24037 0141 13       		.uleb128 0x13
- 24038 0142 00       		.byte	0x0
- 24039 0143 00       		.byte	0x0
- 24040 0144 1E       		.uleb128 0x1e
- 24041 0145 04       		.uleb128 0x4
- 24042 0146 01       		.byte	0x1
- 24043 0147 03       		.uleb128 0x3
- 24044 0148 0E       		.uleb128 0xe
- 24045 0149 0B       		.uleb128 0xb
- 24046 014a 0B       		.uleb128 0xb
- 24047 014b 3A       		.uleb128 0x3a
- 24048 014c 0B       		.uleb128 0xb
- 24049 014d 3B       		.uleb128 0x3b
- 24050 014e 05       		.uleb128 0x5
- 24051 014f 01       		.uleb128 0x1
- 24052 0150 13       		.uleb128 0x13
- 24053 0151 00       		.byte	0x0
- 24054 0152 00       		.byte	0x0
- 24055 0153 1F       		.uleb128 0x1f
- 24056 0154 2E       		.uleb128 0x2e
- 24057 0155 01       		.byte	0x1
- 24058 0156 03       		.uleb128 0x3
- 24059 0157 0E       		.uleb128 0xe
- 24060 0158 3A       		.uleb128 0x3a
- 24061 0159 0B       		.uleb128 0xb
- 24062 015a 3B       		.uleb128 0x3b
- 24063 015b 05       		.uleb128 0x5
- 24064 015c 27       		.uleb128 0x27
- 24065 015d 0C       		.uleb128 0xc
- 24066 015e 49       		.uleb128 0x49
- 24067 015f 13       		.uleb128 0x13
- 24068 0160 11       		.uleb128 0x11
- 24069 0161 01       		.uleb128 0x1
- 24070 0162 12       		.uleb128 0x12
- 24071 0163 01       		.uleb128 0x1
- 24072 0164 40       		.uleb128 0x40
- 24073 0165 06       		.uleb128 0x6
- 24074 0166 01       		.uleb128 0x1
- 24075 0167 13       		.uleb128 0x13
- 24076 0168 00       		.byte	0x0
- 24077 0169 00       		.byte	0x0
- 24078 016a 20       		.uleb128 0x20
- 24079 016b 05       		.uleb128 0x5
- 24080 016c 00       		.byte	0x0
- 24081 016d 03       		.uleb128 0x3
- 24082 016e 0E       		.uleb128 0xe
- 24083 016f 3A       		.uleb128 0x3a
- 24084 0170 0B       		.uleb128 0xb
- 24085 0171 3B       		.uleb128 0x3b
- 24086 0172 05       		.uleb128 0x5
- 24087 0173 49       		.uleb128 0x49
- 24088 0174 13       		.uleb128 0x13
- 24089 0175 02       		.uleb128 0x2
-
GAS LISTING /tmp/ccPaCTqg.s 			page 600
-
-
- 24090 0176 0A       		.uleb128 0xa
- 24091 0177 00       		.byte	0x0
- 24092 0178 00       		.byte	0x0
- 24093 0179 21       		.uleb128 0x21
- 24094 017a 2E       		.uleb128 0x2e
- 24095 017b 01       		.byte	0x1
- 24096 017c 03       		.uleb128 0x3
- 24097 017d 0E       		.uleb128 0xe
- 24098 017e 3A       		.uleb128 0x3a
- 24099 017f 0B       		.uleb128 0xb
- 24100 0180 3B       		.uleb128 0x3b
- 24101 0181 0B       		.uleb128 0xb
- 24102 0182 27       		.uleb128 0x27
- 24103 0183 0C       		.uleb128 0xc
- 24104 0184 49       		.uleb128 0x49
- 24105 0185 13       		.uleb128 0x13
- 24106 0186 11       		.uleb128 0x11
- 24107 0187 01       		.uleb128 0x1
- 24108 0188 12       		.uleb128 0x12
- 24109 0189 01       		.uleb128 0x1
- 24110 018a 40       		.uleb128 0x40
- 24111 018b 06       		.uleb128 0x6
- 24112 018c 01       		.uleb128 0x1
- 24113 018d 13       		.uleb128 0x13
- 24114 018e 00       		.byte	0x0
- 24115 018f 00       		.byte	0x0
- 24116 0190 22       		.uleb128 0x22
- 24117 0191 05       		.uleb128 0x5
- 24118 0192 00       		.byte	0x0
- 24119 0193 03       		.uleb128 0x3
- 24120 0194 08       		.uleb128 0x8
- 24121 0195 3A       		.uleb128 0x3a
- 24122 0196 0B       		.uleb128 0xb
- 24123 0197 3B       		.uleb128 0x3b
- 24124 0198 0B       		.uleb128 0xb
- 24125 0199 49       		.uleb128 0x49
- 24126 019a 13       		.uleb128 0x13
- 24127 019b 02       		.uleb128 0x2
- 24128 019c 0A       		.uleb128 0xa
- 24129 019d 00       		.byte	0x0
- 24130 019e 00       		.byte	0x0
- 24131 019f 23       		.uleb128 0x23
- 24132 01a0 34       		.uleb128 0x34
- 24133 01a1 00       		.byte	0x0
- 24134 01a2 03       		.uleb128 0x3
- 24135 01a3 08       		.uleb128 0x8
- 24136 01a4 3A       		.uleb128 0x3a
- 24137 01a5 0B       		.uleb128 0xb
- 24138 01a6 3B       		.uleb128 0x3b
- 24139 01a7 0B       		.uleb128 0xb
- 24140 01a8 49       		.uleb128 0x49
- 24141 01a9 13       		.uleb128 0x13
- 24142 01aa 02       		.uleb128 0x2
- 24143 01ab 0A       		.uleb128 0xa
- 24144 01ac 00       		.byte	0x0
- 24145 01ad 00       		.byte	0x0
- 24146 01ae 24       		.uleb128 0x24
-
GAS LISTING /tmp/ccPaCTqg.s 			page 601
-
-
- 24147 01af 2E       		.uleb128 0x2e
- 24148 01b0 01       		.byte	0x1
- 24149 01b1 03       		.uleb128 0x3
- 24150 01b2 0E       		.uleb128 0xe
- 24151 01b3 3A       		.uleb128 0x3a
- 24152 01b4 0B       		.uleb128 0xb
- 24153 01b5 3B       		.uleb128 0x3b
- 24154 01b6 0B       		.uleb128 0xb
- 24155 01b7 27       		.uleb128 0x27
- 24156 01b8 0C       		.uleb128 0xc
- 24157 01b9 49       		.uleb128 0x49
- 24158 01ba 13       		.uleb128 0x13
- 24159 01bb 20       		.uleb128 0x20
- 24160 01bc 0B       		.uleb128 0xb
- 24161 01bd 01       		.uleb128 0x1
- 24162 01be 13       		.uleb128 0x13
- 24163 01bf 00       		.byte	0x0
- 24164 01c0 00       		.byte	0x0
- 24165 01c1 25       		.uleb128 0x25
- 24166 01c2 05       		.uleb128 0x5
- 24167 01c3 00       		.byte	0x0
- 24168 01c4 03       		.uleb128 0x3
- 24169 01c5 08       		.uleb128 0x8
- 24170 01c6 3A       		.uleb128 0x3a
- 24171 01c7 0B       		.uleb128 0xb
- 24172 01c8 3B       		.uleb128 0x3b
- 24173 01c9 0B       		.uleb128 0xb
- 24174 01ca 49       		.uleb128 0x49
- 24175 01cb 13       		.uleb128 0x13
- 24176 01cc 00       		.byte	0x0
- 24177 01cd 00       		.byte	0x0
- 24178 01ce 26       		.uleb128 0x26
- 24179 01cf 34       		.uleb128 0x34
- 24180 01d0 00       		.byte	0x0
- 24181 01d1 03       		.uleb128 0x3
- 24182 01d2 08       		.uleb128 0x8
- 24183 01d3 3A       		.uleb128 0x3a
- 24184 01d4 0B       		.uleb128 0xb
- 24185 01d5 3B       		.uleb128 0x3b
- 24186 01d6 0B       		.uleb128 0xb
- 24187 01d7 49       		.uleb128 0x49
- 24188 01d8 13       		.uleb128 0x13
- 24189 01d9 00       		.byte	0x0
- 24190 01da 00       		.byte	0x0
- 24191 01db 27       		.uleb128 0x27
- 24192 01dc 2E       		.uleb128 0x2e
- 24193 01dd 01       		.byte	0x1
- 24194 01de 03       		.uleb128 0x3
- 24195 01df 0E       		.uleb128 0xe
- 24196 01e0 3A       		.uleb128 0x3a
- 24197 01e1 0B       		.uleb128 0xb
- 24198 01e2 3B       		.uleb128 0x3b
- 24199 01e3 05       		.uleb128 0x5
- 24200 01e4 27       		.uleb128 0x27
- 24201 01e5 0C       		.uleb128 0xc
- 24202 01e6 49       		.uleb128 0x49
- 24203 01e7 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccPaCTqg.s 			page 602
-
-
- 24204 01e8 20       		.uleb128 0x20
- 24205 01e9 0B       		.uleb128 0xb
- 24206 01ea 01       		.uleb128 0x1
- 24207 01eb 13       		.uleb128 0x13
- 24208 01ec 00       		.byte	0x0
- 24209 01ed 00       		.byte	0x0
- 24210 01ee 28       		.uleb128 0x28
- 24211 01ef 05       		.uleb128 0x5
- 24212 01f0 00       		.byte	0x0
- 24213 01f1 03       		.uleb128 0x3
- 24214 01f2 0E       		.uleb128 0xe
- 24215 01f3 3A       		.uleb128 0x3a
- 24216 01f4 0B       		.uleb128 0xb
- 24217 01f5 3B       		.uleb128 0x3b
- 24218 01f6 05       		.uleb128 0x5
- 24219 01f7 49       		.uleb128 0x49
- 24220 01f8 13       		.uleb128 0x13
- 24221 01f9 00       		.byte	0x0
- 24222 01fa 00       		.byte	0x0
- 24223 01fb 29       		.uleb128 0x29
- 24224 01fc 34       		.uleb128 0x34
- 24225 01fd 00       		.byte	0x0
- 24226 01fe 03       		.uleb128 0x3
- 24227 01ff 08       		.uleb128 0x8
- 24228 0200 3A       		.uleb128 0x3a
- 24229 0201 0B       		.uleb128 0xb
- 24230 0202 3B       		.uleb128 0x3b
- 24231 0203 05       		.uleb128 0x5
- 24232 0204 49       		.uleb128 0x49
- 24233 0205 13       		.uleb128 0x13
- 24234 0206 00       		.byte	0x0
- 24235 0207 00       		.byte	0x0
- 24236 0208 2A       		.uleb128 0x2a
- 24237 0209 05       		.uleb128 0x5
- 24238 020a 00       		.byte	0x0
- 24239 020b 03       		.uleb128 0x3
- 24240 020c 08       		.uleb128 0x8
- 24241 020d 3A       		.uleb128 0x3a
- 24242 020e 0B       		.uleb128 0xb
- 24243 020f 3B       		.uleb128 0x3b
- 24244 0210 05       		.uleb128 0x5
- 24245 0211 49       		.uleb128 0x49
- 24246 0212 13       		.uleb128 0x13
- 24247 0213 00       		.byte	0x0
- 24248 0214 00       		.byte	0x0
- 24249 0215 2B       		.uleb128 0x2b
- 24250 0216 34       		.uleb128 0x34
- 24251 0217 00       		.byte	0x0
- 24252 0218 03       		.uleb128 0x3
- 24253 0219 0E       		.uleb128 0xe
- 24254 021a 3A       		.uleb128 0x3a
- 24255 021b 0B       		.uleb128 0xb
- 24256 021c 3B       		.uleb128 0x3b
- 24257 021d 05       		.uleb128 0x5
- 24258 021e 49       		.uleb128 0x49
- 24259 021f 13       		.uleb128 0x13
- 24260 0220 00       		.byte	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 603
-
-
- 24261 0221 00       		.byte	0x0
- 24262 0222 2C       		.uleb128 0x2c
- 24263 0223 34       		.uleb128 0x34
- 24264 0224 00       		.byte	0x0
- 24265 0225 03       		.uleb128 0x3
- 24266 0226 0E       		.uleb128 0xe
- 24267 0227 3A       		.uleb128 0x3a
- 24268 0228 0B       		.uleb128 0xb
- 24269 0229 3B       		.uleb128 0x3b
- 24270 022a 05       		.uleb128 0x5
- 24271 022b 49       		.uleb128 0x49
- 24272 022c 13       		.uleb128 0x13
- 24273 022d 1C       		.uleb128 0x1c
- 24274 022e 0A       		.uleb128 0xa
- 24275 022f 00       		.byte	0x0
- 24276 0230 00       		.byte	0x0
- 24277 0231 2D       		.uleb128 0x2d
- 24278 0232 2E       		.uleb128 0x2e
- 24279 0233 01       		.byte	0x1
- 24280 0234 03       		.uleb128 0x3
- 24281 0235 0E       		.uleb128 0xe
- 24282 0236 3A       		.uleb128 0x3a
- 24283 0237 0B       		.uleb128 0xb
- 24284 0238 3B       		.uleb128 0x3b
- 24285 0239 05       		.uleb128 0x5
- 24286 023a 27       		.uleb128 0x27
- 24287 023b 0C       		.uleb128 0xc
- 24288 023c 11       		.uleb128 0x11
- 24289 023d 01       		.uleb128 0x1
- 24290 023e 12       		.uleb128 0x12
- 24291 023f 01       		.uleb128 0x1
- 24292 0240 40       		.uleb128 0x40
- 24293 0241 06       		.uleb128 0x6
- 24294 0242 01       		.uleb128 0x1
- 24295 0243 13       		.uleb128 0x13
- 24296 0244 00       		.byte	0x0
- 24297 0245 00       		.byte	0x0
- 24298 0246 2E       		.uleb128 0x2e
- 24299 0247 05       		.uleb128 0x5
- 24300 0248 00       		.byte	0x0
- 24301 0249 03       		.uleb128 0x3
- 24302 024a 08       		.uleb128 0x8
- 24303 024b 3A       		.uleb128 0x3a
- 24304 024c 0B       		.uleb128 0xb
- 24305 024d 3B       		.uleb128 0x3b
- 24306 024e 05       		.uleb128 0x5
- 24307 024f 49       		.uleb128 0x49
- 24308 0250 13       		.uleb128 0x13
- 24309 0251 02       		.uleb128 0x2
- 24310 0252 0A       		.uleb128 0xa
- 24311 0253 00       		.byte	0x0
- 24312 0254 00       		.byte	0x0
- 24313 0255 2F       		.uleb128 0x2f
- 24314 0256 34       		.uleb128 0x34
- 24315 0257 00       		.byte	0x0
- 24316 0258 03       		.uleb128 0x3
- 24317 0259 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccPaCTqg.s 			page 604
-
-
- 24318 025a 3A       		.uleb128 0x3a
- 24319 025b 0B       		.uleb128 0xb
- 24320 025c 3B       		.uleb128 0x3b
- 24321 025d 05       		.uleb128 0x5
- 24322 025e 49       		.uleb128 0x49
- 24323 025f 13       		.uleb128 0x13
- 24324 0260 02       		.uleb128 0x2
- 24325 0261 0A       		.uleb128 0xa
- 24326 0262 00       		.byte	0x0
- 24327 0263 00       		.byte	0x0
- 24328 0264 30       		.uleb128 0x30
- 24329 0265 1D       		.uleb128 0x1d
- 24330 0266 01       		.byte	0x1
- 24331 0267 31       		.uleb128 0x31
- 24332 0268 13       		.uleb128 0x13
- 24333 0269 11       		.uleb128 0x11
- 24334 026a 01       		.uleb128 0x1
- 24335 026b 12       		.uleb128 0x12
- 24336 026c 01       		.uleb128 0x1
- 24337 026d 58       		.uleb128 0x58
- 24338 026e 0B       		.uleb128 0xb
- 24339 026f 59       		.uleb128 0x59
- 24340 0270 05       		.uleb128 0x5
- 24341 0271 01       		.uleb128 0x1
- 24342 0272 13       		.uleb128 0x13
- 24343 0273 00       		.byte	0x0
- 24344 0274 00       		.byte	0x0
- 24345 0275 31       		.uleb128 0x31
- 24346 0276 05       		.uleb128 0x5
- 24347 0277 00       		.byte	0x0
- 24348 0278 31       		.uleb128 0x31
- 24349 0279 13       		.uleb128 0x13
- 24350 027a 02       		.uleb128 0x2
- 24351 027b 0A       		.uleb128 0xa
- 24352 027c 00       		.byte	0x0
- 24353 027d 00       		.byte	0x0
- 24354 027e 32       		.uleb128 0x32
- 24355 027f 0B       		.uleb128 0xb
- 24356 0280 01       		.byte	0x1
- 24357 0281 11       		.uleb128 0x11
- 24358 0282 01       		.uleb128 0x1
- 24359 0283 12       		.uleb128 0x12
- 24360 0284 01       		.uleb128 0x1
- 24361 0285 00       		.byte	0x0
- 24362 0286 00       		.byte	0x0
- 24363 0287 33       		.uleb128 0x33
- 24364 0288 34       		.uleb128 0x34
- 24365 0289 00       		.byte	0x0
- 24366 028a 31       		.uleb128 0x31
- 24367 028b 13       		.uleb128 0x13
- 24368 028c 02       		.uleb128 0x2
- 24369 028d 0A       		.uleb128 0xa
- 24370 028e 00       		.byte	0x0
- 24371 028f 00       		.byte	0x0
- 24372 0290 34       		.uleb128 0x34
- 24373 0291 1D       		.uleb128 0x1d
- 24374 0292 01       		.byte	0x1
-
GAS LISTING /tmp/ccPaCTqg.s 			page 605
-
-
- 24375 0293 31       		.uleb128 0x31
- 24376 0294 13       		.uleb128 0x13
- 24377 0295 11       		.uleb128 0x11
- 24378 0296 01       		.uleb128 0x1
- 24379 0297 12       		.uleb128 0x12
- 24380 0298 01       		.uleb128 0x1
- 24381 0299 58       		.uleb128 0x58
- 24382 029a 0B       		.uleb128 0xb
- 24383 029b 59       		.uleb128 0x59
- 24384 029c 05       		.uleb128 0x5
- 24385 029d 00       		.byte	0x0
- 24386 029e 00       		.byte	0x0
- 24387 029f 35       		.uleb128 0x35
- 24388 02a0 34       		.uleb128 0x34
- 24389 02a1 00       		.byte	0x0
- 24390 02a2 03       		.uleb128 0x3
- 24391 02a3 08       		.uleb128 0x8
- 24392 02a4 3A       		.uleb128 0x3a
- 24393 02a5 0B       		.uleb128 0xb
- 24394 02a6 3B       		.uleb128 0x3b
- 24395 02a7 05       		.uleb128 0x5
- 24396 02a8 49       		.uleb128 0x49
- 24397 02a9 13       		.uleb128 0x13
- 24398 02aa 02       		.uleb128 0x2
- 24399 02ab 0A       		.uleb128 0xa
- 24400 02ac 00       		.byte	0x0
- 24401 02ad 00       		.byte	0x0
- 24402 02ae 36       		.uleb128 0x36
- 24403 02af 0B       		.uleb128 0xb
- 24404 02b0 01       		.byte	0x1
- 24405 02b1 01       		.uleb128 0x1
- 24406 02b2 13       		.uleb128 0x13
- 24407 02b3 00       		.byte	0x0
- 24408 02b4 00       		.byte	0x0
- 24409 02b5 37       		.uleb128 0x37
- 24410 02b6 0B       		.uleb128 0xb
- 24411 02b7 01       		.byte	0x1
- 24412 02b8 00       		.byte	0x0
- 24413 02b9 00       		.byte	0x0
- 24414 02ba 38       		.uleb128 0x38
- 24415 02bb 0B       		.uleb128 0xb
- 24416 02bc 01       		.byte	0x1
- 24417 02bd 11       		.uleb128 0x11
- 24418 02be 01       		.uleb128 0x1
- 24419 02bf 12       		.uleb128 0x12
- 24420 02c0 01       		.uleb128 0x1
- 24421 02c1 01       		.uleb128 0x1
- 24422 02c2 13       		.uleb128 0x13
- 24423 02c3 00       		.byte	0x0
- 24424 02c4 00       		.byte	0x0
- 24425 02c5 39       		.uleb128 0x39
- 24426 02c6 2E       		.uleb128 0x2e
- 24427 02c7 00       		.byte	0x0
- 24428 02c8 03       		.uleb128 0x3
- 24429 02c9 0E       		.uleb128 0xe
- 24430 02ca 3A       		.uleb128 0x3a
- 24431 02cb 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccPaCTqg.s 			page 606
-
-
- 24432 02cc 3B       		.uleb128 0x3b
- 24433 02cd 05       		.uleb128 0x5
- 24434 02ce 49       		.uleb128 0x49
- 24435 02cf 13       		.uleb128 0x13
- 24436 02d0 11       		.uleb128 0x11
- 24437 02d1 01       		.uleb128 0x1
- 24438 02d2 12       		.uleb128 0x12
- 24439 02d3 01       		.uleb128 0x1
- 24440 02d4 40       		.uleb128 0x40
- 24441 02d5 06       		.uleb128 0x6
- 24442 02d6 00       		.byte	0x0
- 24443 02d7 00       		.byte	0x0
- 24444 02d8 3A       		.uleb128 0x3a
- 24445 02d9 34       		.uleb128 0x34
- 24446 02da 00       		.byte	0x0
- 24447 02db 03       		.uleb128 0x3
- 24448 02dc 0E       		.uleb128 0xe
- 24449 02dd 49       		.uleb128 0x49
- 24450 02de 13       		.uleb128 0x13
- 24451 02df 34       		.uleb128 0x34
- 24452 02e0 0C       		.uleb128 0xc
- 24453 02e1 02       		.uleb128 0x2
- 24454 02e2 0A       		.uleb128 0xa
- 24455 02e3 00       		.byte	0x0
- 24456 02e4 00       		.byte	0x0
- 24457 02e5 3B       		.uleb128 0x3b
- 24458 02e6 2E       		.uleb128 0x2e
- 24459 02e7 01       		.byte	0x1
- 24460 02e8 03       		.uleb128 0x3
- 24461 02e9 0E       		.uleb128 0xe
- 24462 02ea 3A       		.uleb128 0x3a
- 24463 02eb 0B       		.uleb128 0xb
- 24464 02ec 3B       		.uleb128 0x3b
- 24465 02ed 05       		.uleb128 0x5
- 24466 02ee 49       		.uleb128 0x49
- 24467 02ef 13       		.uleb128 0x13
- 24468 02f0 11       		.uleb128 0x11
- 24469 02f1 01       		.uleb128 0x1
- 24470 02f2 12       		.uleb128 0x12
- 24471 02f3 01       		.uleb128 0x1
- 24472 02f4 40       		.uleb128 0x40
- 24473 02f5 06       		.uleb128 0x6
- 24474 02f6 01       		.uleb128 0x1
- 24475 02f7 13       		.uleb128 0x13
- 24476 02f8 00       		.byte	0x0
- 24477 02f9 00       		.byte	0x0
- 24478 02fa 3C       		.uleb128 0x3c
- 24479 02fb 2E       		.uleb128 0x2e
- 24480 02fc 01       		.byte	0x1
- 24481 02fd 3F       		.uleb128 0x3f
- 24482 02fe 0C       		.uleb128 0xc
- 24483 02ff 03       		.uleb128 0x3
- 24484 0300 0E       		.uleb128 0xe
- 24485 0301 3A       		.uleb128 0x3a
- 24486 0302 0B       		.uleb128 0xb
- 24487 0303 3B       		.uleb128 0x3b
- 24488 0304 05       		.uleb128 0x5
-
GAS LISTING /tmp/ccPaCTqg.s 			page 607
-
-
- 24489 0305 27       		.uleb128 0x27
- 24490 0306 0C       		.uleb128 0xc
- 24491 0307 49       		.uleb128 0x49
- 24492 0308 13       		.uleb128 0x13
- 24493 0309 11       		.uleb128 0x11
- 24494 030a 01       		.uleb128 0x1
- 24495 030b 12       		.uleb128 0x12
- 24496 030c 01       		.uleb128 0x1
- 24497 030d 40       		.uleb128 0x40
- 24498 030e 06       		.uleb128 0x6
- 24499 030f 01       		.uleb128 0x1
- 24500 0310 13       		.uleb128 0x13
- 24501 0311 00       		.byte	0x0
- 24502 0312 00       		.byte	0x0
- 24503 0313 3D       		.uleb128 0x3d
- 24504 0314 34       		.uleb128 0x34
- 24505 0315 00       		.byte	0x0
- 24506 0316 03       		.uleb128 0x3
- 24507 0317 0E       		.uleb128 0xe
- 24508 0318 3A       		.uleb128 0x3a
- 24509 0319 0B       		.uleb128 0xb
- 24510 031a 3B       		.uleb128 0x3b
- 24511 031b 0B       		.uleb128 0xb
- 24512 031c 49       		.uleb128 0x49
- 24513 031d 13       		.uleb128 0x13
- 24514 031e 02       		.uleb128 0x2
- 24515 031f 0A       		.uleb128 0xa
- 24516 0320 00       		.byte	0x0
- 24517 0321 00       		.byte	0x0
- 24518 0322 00       		.byte	0x0
- 24519              		.section	.debug_pubnames,"", at progbits
- 24520 0000 2E000000 		.long	0x2e
- 24521 0004 0200     		.value	0x2
- 24522 0006 00000000 		.long	.Ldebug_info0
- 24523 000a A88F0000 		.long	0x8fa8
- 24524 000e 8D8D0000 		.long	0x8d8d
- 24525 0012 4B414553 		.string	"KAESBlockCipherVecAesNiMake"
- 24525      426C6F63 
- 24525      6B436970 
- 24525      68657256 
- 24525      65634165 
- 24526 002e 00000000 		.long	0x0
- 24527              		.section	.debug_aranges,"", at progbits
- 24528 0000 2C000000 		.long	0x2c
- 24529 0004 0200     		.value	0x2
- 24530 0006 00000000 		.long	.Ldebug_info0
- 24531 000a 08       		.byte	0x8
- 24532 000b 00       		.byte	0x0
- 24533 000c 0000     		.value	0x0
- 24534 000e 0000     		.value	0x0
- 24535 0010 00000000 		.quad	.Ltext0
- 24535      00000000 
- 24536 0018 1F770000 		.quad	.Letext0-.Ltext0
- 24536      00000000 
- 24537 0020 00000000 		.quad	0x0
- 24537      00000000 
- 24538 0028 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccPaCTqg.s 			page 608
-
-
- 24538      00000000 
- 24539              		.section	.debug_str,"MS", at progbits,1
- 24540              	.LASF67:
- 24541 0000 43697068 		.string	"CipherVec_AES_u"
- 24541      65725665 
- 24541      635F4145 
- 24541      535F7500 
- 24542              	.LASF285:
- 24543 0010 7263496E 		.string	"rcInsufficient"
- 24543      73756666 
- 24543      69636965 
- 24543      6E7400
- 24544              	.LASF302:
- 24545 001f 72634475 		.string	"rcDuplicate"
- 24545      706C6963 
- 24545      61746500 
- 24546              	.LASF105:
- 24547 002b 7263436F 		.string	"rcCondition"
- 24547      6E646974 
- 24547      696F6E00 
- 24548              	.LASF219:
- 24549 0037 7263456E 		.string	"rcEncrypting"
- 24549      63727970 
- 24549      74696E67 
- 24549      00
- 24550              	.LASF178:
- 24551 0044 72634F70 		.string	"rcOpening"
- 24551      656E696E 
- 24551      6700
- 24552              	.LASF186:
- 24553 004e 72635065 		.string	"rcPersisting"
- 24553      72736973 
- 24553      74696E67 
- 24553      00
- 24554              	.LASF364:
- 24555 005b 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvFirstRound"
- 24555      426C6F63 
- 24555      6B436970 
- 24555      68657256 
- 24555      65634165 
- 24556              	.LASF224:
- 24557 0082 72635365 		.string	"rcSending"
- 24557      6E64696E 
- 24557      6700
- 24558              	.LASF218:
- 24559 008c 72634170 		.string	"rcAppending"
- 24559      70656E64 
- 24559      696E6700 
- 24560              	.LASF204:
- 24561 0098 72635369 		.string	"rcSignaling"
- 24561      676E616C 
- 24561      696E6700 
- 24562              	.LASF20:
- 24563 00a4 4442475F 		.string	"DBG_BLAST"
- 24563      424C4153 
- 24563      5400
- 24564              	.LASF260:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 609
-
-
- 24565 00ae 72635369 		.string	"rcSignalSet"
- 24565      676E616C 
- 24565      53657400 
- 24566              	.LASF206:
- 24567 00ba 72634174 		.string	"rcAttaching"
- 24567      74616368 
- 24567      696E6700 
- 24568              	.LASF138:
- 24569 00c6 72635461 		.string	"rcTable"
- 24569      626C6500 
- 24570              	.LASF393:
- 24571 00ce 6C6F5F66 		.string	"lo_filter"
- 24571      696C7465 
- 24571      7200
- 24572              	.LASF102:
- 24573 00d8 72634275 		.string	"rcBuffer"
- 24573      66666572 
- 24573      00
- 24574              	.LASF3:
- 24575 00e1 696E7433 		.string	"int32_t"
- 24575      325F7400 
- 24576              	.LASF234:
- 24577 00e9 72634D65 		.string	"rcMemory"
- 24577      6D6F7279 
- 24577      00
- 24578              	.LASF365:
- 24579 00f2 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvMiddleRound"
- 24579      426C6F63 
- 24579      6B436970 
- 24579      68657256 
- 24579      65634165 
- 24580              	.LASF167:
- 24581 011a 72634C6F 		.string	"rcLocking"
- 24581      636B696E 
- 24581      6700
- 24582              	.LASF202:
- 24583 0124 72635061 		.string	"rcParsing"
- 24583      7273696E 
- 24583      6700
- 24584              	.LASF231:
- 24585 012e 72635365 		.string	"rcSelf"
- 24585      6C6600
- 24586              	.LASF124:
- 24587 0135 72634D65 		.string	"rcMetadata"
- 24587      74616461 
- 24587      746100
- 24588              	.LASF247:
- 24589 0140 72634172 		.string	"rcArcHardLink"
- 24589      63486172 
- 24589      644C696E 
- 24589      6B00
- 24590              	.LASF73:
- 24591 014e 7263436F 		.string	"rcCont"
- 24591      6E7400
- 24592              	.LASF255:
- 24593 0155 72634368 		.string	"rcChecksum"
- 24593      65636B73 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 610
-
-
- 24593      756D00
- 24594              	.LASF377:
- 24595 0160 5F5F6675 		.string	"__func__"
- 24595      6E635F5F 
- 24595      00
- 24596              	.LASF299:
- 24597 0169 7263546F 		.string	"rcTooShort"
- 24597      6F53686F 
- 24597      727400
- 24598              	.LASF129:
- 24599 0174 72635061 		.string	"rcPagemap"
- 24599      67656D61 
- 24599      7000
- 24600              	.LASF354:
- 24601 017e 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvKeyExpansion128"
- 24601      426C6F63 
- 24601      6B436970 
- 24601      68657256 
- 24601      65634165 
- 24602              	.LASF81:
- 24603 01aa 72634170 		.string	"rcApp"
- 24603      7000
- 24604              	.LASF112:
- 24605 01b0 72634669 		.string	"rcFileDesc"
- 24605      6C654465 
- 24605      736300
- 24606              	.LASF251:
- 24607 01bb 72634974 		.string	"rcItem"
- 24607      656D00
- 24608              	.LASF143:
- 24609 01c2 72635472 		.string	"rcTrie"
- 24609      696500
- 24610              	.LASF84:
- 24611 01c9 72634C61 		.string	"rcLastModule_v1_0"
- 24611      73744D6F 
- 24611      64756C65 
- 24611      5F76315F 
- 24611      3000
- 24612              	.LASF63:
- 24613 01db 73746174 		.string	"state"
- 24613      6500
- 24614              	.LASF242:
- 24615 01e1 72634279 		.string	"rcByteOrder"
- 24615      74654F72 
- 24615      64657200 
- 24616              	.LASF60:
- 24617 01ed 4145534B 		.string	"AESKeySchedule"
- 24617      65795363 
- 24617      68656475 
- 24617      6C6500
- 24618              	.LASF61:
- 24619 01fc 726F756E 		.string	"round_keys"
- 24619      645F6B65 
- 24619      797300
- 24620              	.LASF160:
- 24621 0207 7263436F 		.string	"rcConstructing"
- 24621      6E737472 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 611
-
-
- 24621      75637469 
- 24621      6E6700
- 24622              	.LASF376:
- 24623 0216 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 24623      45545459 
- 24623      5F46554E 
- 24623      4354494F 
- 24623      4E5F5F00 
- 24624              	.LASF11:
- 24625 022a 72635F74 		.string	"rc_t"
- 24625      00
- 24626              	.LASF236:
- 24627 022f 7263466F 		.string	"rcFormat"
- 24627      726D6174 
- 24627      00
- 24628              	.LASF319:
- 24629 0238 6F705F41 		.string	"op_AESDEC"
- 24629      45534445 
- 24629      4300
- 24630              	.LASF294:
- 24631 0242 7263556E 		.string	"rcUnauthorized"
- 24631      61757468 
- 24631      6F72697A 
- 24631      656400
- 24632              	.LASF174:
- 24633 0251 72635265 		.string	"rcRemoving"
- 24633      6D6F7669 
- 24633      6E6700
- 24634              	.LASF87:
- 24635 025c 72634B72 		.string	"rcKrypto"
- 24635      7970746F 
- 24635      00
- 24636              	.LASF165:
- 24637 0265 72635669 		.string	"rcVisiting"
- 24637      73697469 
- 24637      6E6700
- 24638              	.LASF95:
- 24639 0270 72634172 		.string	"rcArc"
- 24639      6300
- 24640              	.LASF70:
- 24641 0276 72634578 		.string	"rcExe"
- 24641      6500
- 24642              	.LASF300:
- 24643 027c 7263546F 		.string	"rcTooLong"
- 24643      6F4C6F6E 
- 24643      6700
- 24644              	.LASF328:
- 24645 0286 6F705F50 		.string	"op_PSHUFD128"
- 24645      53485546 
- 24645      44313238 
- 24645      00
- 24646              	.LASF228:
- 24647 0293 52434F62 		.string	"RCObject"
- 24647      6A656374 
- 24647      00
- 24648              	.LASF391:
- 24649 029c 4B414553 		.string	"KAESBlockCipherVecAesNiRijndaelSBoxV"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 612
-
-
- 24649      426C6F63 
- 24649      6B436970 
- 24649      68657256 
- 24649      65634165 
- 24650              	.LASF238:
- 24651 02c1 7263496E 		.string	"rcInterface"
- 24651      74657266 
- 24651      61636500 
- 24652              	.LASF166:
- 24653 02cd 72635265 		.string	"rcResolving"
- 24653      736F6C76 
- 24653      696E6700 
- 24654              	.LASF108:
- 24655 02d9 72634469 		.string	"rcDirectory"
- 24655      72656374 
- 24655      6F727900 
- 24656              	.LASF2:
- 24657 02e5 6C6F6E67 		.string	"long int"
- 24657      20696E74 
- 24657      00
- 24658              	.LASF59:
- 24659 02ee 41455357 		.string	"AESWord"
- 24659      6F726400 
- 24660              	.LASF196:
- 24661 02f6 72635661 		.string	"rcValidating"
- 24661      6C696461 
- 24661      74696E67 
- 24661      00
- 24662              	.LASF98:
- 24663 0303 72634172 		.string	"rcArgv"
- 24663      677600
- 24664              	.LASF353:
- 24665 030a 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvKeyExpansion"
- 24665      426C6F63 
- 24665      6B436970 
- 24665      68657256 
- 24665      65634165 
- 24666              	.LASF74:
- 24667 0333 72634353 		.string	"rcCS"
- 24667      00
- 24668              	.LASF390:
- 24669 0338 4B414553 		.string	"KAESBlockCipherVecAesNiRijndaelSBox"
- 24669      426C6F63 
- 24669      6B436970 
- 24669      68657256 
- 24669      65634165 
- 24670              	.LASF155:
- 24671 035c 72635572 		.string	"rcUri"
- 24671      6900
- 24672              	.LASF177:
- 24673 0362 72634372 		.string	"rcCreating"
- 24673      65617469 
- 24673      6E6700
- 24674              	.LASF337:
- 24675 036d 6B676173 		.string	"kgastate"
- 24675      74617465 
- 24675      00
-
GAS LISTING /tmp/ccPaCTqg.s 			page 613
-
-
- 24676              	.LASF53:
- 24677 0376 656E6372 		.string	"encrypt"
- 24677      79707400 
- 24678              	.LASF17:
- 24679 037e 76313238 		.string	"v128_u8_t"
- 24679      5F75385F 
- 24679      7400
- 24680              	.LASF25:
- 24681 0388 4442475F 		.string	"DBG_XML"
- 24681      584D4C00 
- 24682              	.LASF331:
- 24683 0390 73686966 		.string	"shift"
- 24683      7400
- 24684              	.LASF37:
- 24685 0396 4442475F 		.string	"DBG_MOD_COUNT"
- 24685      4D4F445F 
- 24685      434F554E 
- 24685      5400
- 24686              	.LASF79:
- 24687 03a4 72634442 		.string	"rcDB"
- 24687      00
- 24688              	.LASF257:
- 24689 03a9 7263436F 		.string	"rcConnection"
- 24689      6E6E6563 
- 24689      74696F6E 
- 24689      00
- 24690              	.LASF125:
- 24691 03b6 72634D67 		.string	"rcMgr"
- 24691      7200
- 24692              	.LASF287:
- 24693 03bc 72635669 		.string	"rcViolated"
- 24693      6F6C6174 
- 24693      656400
- 24694              	.LASF220:
- 24695 03c7 72634465 		.string	"rcDecrypting"
- 24695      63727970 
- 24695      74696E67 
- 24695      00
- 24696              	.LASF380:
- 24697 03d4 4B414553 		.string	"KAESBlockCipherVecAesNiEncrypt"
- 24697      426C6F63 
- 24697      6B436970 
- 24697      68657256 
- 24697      65634165 
- 24698              	.LASF0:
- 24699 03f3 7369676E 		.string	"signed char"
- 24699      65642063 
- 24699      68617200 
- 24700              	.LASF4:
- 24701 03ff 75696E74 		.string	"uint8_t"
- 24701      385F7400 
- 24702              	.LASF103:
- 24703 0407 72634368 		.string	"rcChar"
- 24703      617200
- 24704              	.LASF88:
- 24705 040e 72635244 		.string	"rcRDBMS"
- 24705      424D5300 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 614
-
-
- 24706              	.LASF197:
- 24707 0416 72634578 		.string	"rcExecuting"
- 24707      65637574 
- 24707      696E6700 
- 24708              	.LASF330:
- 24709 0422 4B414553 		.string	"KAESBlockCipherVecAesNiShiftXorColumns"
- 24709      426C6F63 
- 24709      6B436970 
- 24709      68657256 
- 24709      65634165 
- 24710              	.LASF18:
- 24711 0449 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 24711      4D4F445F 
- 24711      4E4F545F 
- 24711      464F554E 
- 24711      4400
- 24712              	.LASF184:
- 24713 045b 72635265 		.string	"rcReverting"
- 24713      76657274 
- 24713      696E6700 
- 24714              	.LASF100:
- 24715 0467 72634261 		.string	"rcBarrier"
- 24715      72726965 
- 24715      7200
- 24716              	.LASF284:
- 24717 0471 72634578 		.string	"rcExhausted"
- 24717      68617573 
- 24717      74656400 
- 24718              	.LASF5:
- 24719 047d 756E7369 		.string	"unsigned char"
- 24719      676E6564 
- 24719      20636861 
- 24719      7200
- 24720              	.LASF157:
- 24721 048b 5243436F 		.string	"RCContext"
- 24721      6E746578 
- 24721      7400
- 24722              	.LASF120:
- 24723 0495 72634C6F 		.string	"rcLock"
- 24723      636B00
- 24724              	.LASF273:
- 24725 049c 72634261 		.string	"rcBadVersion"
- 24725      64566572 
- 24725      73696F6E 
- 24725      00
- 24726              	.LASF274:
- 24727 04a9 72634465 		.string	"rcDestroyed"
- 24727      7374726F 
- 24727      79656400 
- 24728              	.LASF137:
- 24729 04b5 72635374 		.string	"rcString"
- 24729      72696E67 
- 24729      00
- 24730              	.LASF99:
- 24731 04be 72634174 		.string	"rcAttr"
- 24731      747200
- 24732              	.LASF121:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 615
-
-
- 24733 04c5 72634C6F 		.string	"rcLog"
- 24733      6700
- 24734              	.LASF385:
- 24735 04cb 6E65775F 		.string	"new_obj"
- 24735      6F626A00 
- 24736              	.LASF21:
- 24737 04d3 4442475F 		.string	"DBG_KDB"
- 24737      4B444200 
- 24738              	.LASF225:
- 24739 04db 72635072 		.string	"rcProcessing"
- 24739      6F636573 
- 24739      73696E67 
- 24739      00
- 24740              	.LASF75:
- 24741 04e8 72634646 		.string	"rcFF"
- 24741      00
- 24742              	.LASF384:
- 24743 04ed 5F426F6F 		.string	"_Bool"
- 24743      6C00
- 24744              	.LASF76:
- 24745 04f3 72634653 		.string	"rcFS"
- 24745      00
- 24746              	.LASF65:
- 24747 04f8 62797465 		.string	"bytes"
- 24747      7300
- 24748              	.LASF372:
- 24749 04fe 4B414553 		.string	"KAESBlockCipherVecAesNiSetEncryptKey"
- 24749      426C6F63 
- 24749      6B436970 
- 24749      68657256 
- 24749      65634165 
- 24750              	.LASF163:
- 24751 0523 72634163 		.string	"rcAccessing"
- 24751      63657373 
- 24751      696E6700 
- 24752              	.LASF281:
- 24753 052f 7263496E 		.string	"rcInterrupted"
- 24753      74657272 
- 24753      75707465 
- 24753      6400
- 24754              	.LASF289:
- 24755 053d 72634E6F 		.string	"rcNotFound"
- 24755      74466F75 
- 24755      6E6400
- 24756              	.LASF12:
- 24757 0548 63686172 		.string	"char"
- 24757      00
- 24758              	.LASF371:
- 24759 054d 4B414553 		.string	"KAESBlockCipherVecAesNiKeySize"
- 24759      426C6F63 
- 24759      6B436970 
- 24759      68657256 
- 24759      65634165 
- 24760              	.LASF339:
- 24761 056c 4B414553 		.string	"KAESBlockCipherVecAesNiAesKeyGenAssistColumn1"
- 24761      426C6F63 
- 24761      6B436970 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 616
-
-
- 24761      68657256 
- 24761      65634165 
- 24762              	.LASF127:
- 24763 059a 72634E6F 		.string	"rcNode"
- 24763      646500
- 24764              	.LASF324:
- 24765 05a1 4B414553 		.string	"KAESBlockCipherVecAesNiAesKeyGenAssistColumn3"
- 24765      426C6F63 
- 24765      6B436970 
- 24765      68657256 
- 24765      65634165 
- 24766              	.LASF35:
- 24767 05cf 4442475F 		.string	"DBG_AES"
- 24767      41455300 
- 24768              	.LASF258:
- 24769 05d7 72634572 		.string	"rcError"
- 24769      726F7200 
- 24770              	.LASF344:
- 24771 05df 76696E32 		.string	"vin2"
- 24771      00
- 24772              	.LASF175:
- 24773 05e4 7263436C 		.string	"rcClearing"
- 24773      65617269 
- 24773      6E6700
- 24774              	.LASF233:
- 24775 05ef 72634F66 		.string	"rcOffset"
- 24775      66736574 
- 24775      00
- 24776              	.LASF179:
- 24777 05f8 7263436C 		.string	"rcClosing"
- 24777      6F73696E 
- 24777      6700
- 24778              	.LASF111:
- 24779 0602 72634669 		.string	"rcFile"
- 24779      6C6500
- 24780              	.LASF140:
- 24781 0609 72635469 		.string	"rcTimeout"
- 24781      6D656F75 
- 24781      7400
- 24782              	.LASF355:
- 24783 0613 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvKeyExpansion192"
- 24783      426C6F63 
- 24783      6B436970 
- 24783      68657256 
- 24783      65634165 
- 24784              	.LASF128:
- 24785 063f 72634E75 		.string	"rcNumeral"
- 24785      6D657261 
- 24785      6C00
- 24786              	.LASF205:
- 24787 0649 72635761 		.string	"rcWaiting"
- 24787      6974696E 
- 24787      6700
- 24788              	.LASF316:
- 24789 0653 726F756E 		.string	"round_key"
- 24789      645F6B65 
- 24789      7900
-
GAS LISTING /tmp/ccPaCTqg.s 			page 617
-
-
- 24790              	.LASF209:
- 24791 065d 72634650 		.string	"rcFPCoding"
- 24791      436F6469 
- 24791      6E6700
- 24792              	.LASF357:
- 24793 0668 4B414553 		.string	"KAESBlockCipherVecAesNiFirstRound"
- 24793      426C6F63 
- 24793      6B436970 
- 24793      68657256 
- 24793      65634165 
- 24794              	.LASF366:
- 24795 068a 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvLastRound"
- 24795      426C6F63 
- 24795      6B436970 
- 24795      68657256 
- 24795      65634165 
- 24796              	.LASF261:
- 24797 06b0 72635369 		.string	"rcSize"
- 24797      7A6500
- 24798              	.LASF246:
- 24799 06b7 72634469 		.string	"rcDirEntry"
- 24799      72456E74 
- 24799      727900
- 24800              	.LASF198:
- 24801 06c2 72634875 		.string	"rcHuffmanCoding"
- 24801      66666D61 
- 24801      6E436F64 
- 24801      696E6700 
- 24802              	.LASF30:
- 24803 06d2 4442475F 		.string	"DBG_KFG"
- 24803      4B464700 
- 24804              	.LASF64:
- 24805 06da 636F6C75 		.string	"columns"
- 24805      6D6E7300 
- 24806              	.LASF279:
- 24807 06e2 72634275 		.string	"rcBusy"
- 24807      737900
- 24808              	.LASF27:
- 24809 06e9 4442475F 		.string	"DBG_SRA"
- 24809      53524100 
- 24810              	.LASF237:
- 24811 06f1 72635472 		.string	"rcTransfer"
- 24811      616E7366 
- 24811      657200
- 24812              	.LASF24:
- 24813 06fc 4442475F 		.string	"DBG_KFS"
- 24813      4B465300 
- 24814              	.LASF367:
- 24815 0704 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvCipher"
- 24815      426C6F63 
- 24815      6B436970 
- 24815      68657256 
- 24815      65634165 
- 24816              	.LASF192:
- 24817 0727 72635061 		.string	"rcPacking"
- 24817      636B696E 
- 24817      6700
-
GAS LISTING /tmp/ccPaCTqg.s 			page 618
-
-
- 24818              	.LASF188:
- 24819 0731 7263436F 		.string	"rcCopying"
- 24819      7079696E 
- 24819      6700
- 24820              	.LASF333:
- 24821 073b 4B414553 		.string	"KAESBlockCipherVecAesNiPackShuffleBytes"
- 24821      426C6F63 
- 24821      6B436970 
- 24821      68657256 
- 24821      65634165 
- 24822              	.LASF335:
- 24823 0763 6F705F50 		.string	"op_PSHUFB128"
- 24823      53485546 
- 24823      42313238 
- 24823      00
- 24824              	.LASF195:
- 24825 0770 72634465 		.string	"rcDecoding"
- 24825      636F6469 
- 24825      6E6700
- 24826              	.LASF168:
- 24827 077b 7263556E 		.string	"rcUnlocking"
- 24827      6C6F636B 
- 24827      696E6700 
- 24828              	.LASF56:
- 24829 0787 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 24829      636B4369 
- 24829      70686572 
- 24829      5665635F 
- 24829      76745F76 
- 24830              	.LASF23:
- 24831 079d 4442475F 		.string	"DBG_LEGREF"
- 24831      4C454752 
- 24831      454600
- 24832              	.LASF169:
- 24833 07a8 72635265 		.string	"rcRenaming"
- 24833      6E616D69 
- 24833      6E6700
- 24834              	.LASF374:
- 24835 07b3 75736572 		.string	"user_key"
- 24835      5F6B6579 
- 24835      00
- 24836              	.LASF239:
- 24837 07bc 72634964 		.string	"rcId"
- 24837      00
- 24838              	.LASF152:
- 24839 07c1 7263436D 		.string	"rcCmd"
- 24839      6400
- 24840              	.LASF321:
- 24841 07c7 6F705F41 		.string	"op_AESIMC"
- 24841      4553494D 
- 24841      4300
- 24842              	.LASF33:
- 24843 07d1 4442475F 		.string	"DBG_LOADLIB"
- 24843      4C4F4144 
- 24843      4C494200 
- 24844              	.LASF291:
- 24845 07dd 7263556E 		.string	"rcUnlocked"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 619
-
-
- 24845      6C6F636B 
- 24845      656400
- 24846              	.LASF92:
- 24847 07e8 52434D6F 		.string	"RCModule"
- 24847      64756C65 
- 24847      00
- 24848              	.LASF253:
- 24849 07f1 7263456E 		.string	"rcEncryption"
- 24849      63727970 
- 24849      74696F6E 
- 24849      00
- 24850              	.LASF288:
- 24851 07fe 72634578 		.string	"rcExists"
- 24851      69737473 
- 24851      00
- 24852              	.LASF44:
- 24853 0807 43697068 		.string	"CipherVec"
- 24853      65725665 
- 24853      6300
- 24854              	.LASF307:
- 24855 0811 72634F70 		.string	"rcOpen"
- 24855      656E00
- 24856              	.LASF293:
- 24857 0818 72634465 		.string	"rcDeadlock"
- 24857      61646C6F 
- 24857      636B00
- 24858              	.LASF230:
- 24859 0823 72634C69 		.string	"rcLink"
- 24859      6E6B00
- 24860              	.LASF217:
- 24861 082a 7263466C 		.string	"rcFlushing"
- 24861      75736869 
- 24861      6E6700
- 24862              	.LASF265:
- 24863 0835 72634E6F 		.string	"rcNoErr"
- 24863      45727200 
- 24864              	.LASF386:
- 24865 083d 7665635F 		.string	"vec_00"
- 24865      303000
- 24866              	.LASF387:
- 24867 0844 7665635F 		.string	"vec_01"
- 24867      303100
- 24868              	.LASF244:
- 24869 084b 72635461 		.string	"rcTag"
- 24869      6700
- 24870              	.LASF29:
- 24871 0851 4442475F 		.string	"DBG_ALIGN"
- 24871      414C4947 
- 24871      4E00
- 24872              	.LASF208:
- 24873 085b 72634C6F 		.string	"rcLogging"
- 24873      6767696E 
- 24873      6700
- 24874              	.LASF301:
- 24875 0865 7263546F 		.string	"rcTooBig"
- 24875      6F426967 
- 24875      00
-
GAS LISTING /tmp/ccPaCTqg.s 			page 620
-
-
- 24876              	.LASF145:
- 24877 086e 72635665 		.string	"rcVector"
- 24877      63746F72 
- 24877      00
- 24878              	.LASF180:
- 24879 0877 72635265 		.string	"rcResizing"
- 24879      73697A69 
- 24879      6E6700
- 24880              	.LASF154:
- 24881 0882 72635175 		.string	"rcQuery"
- 24881      65727900 
- 24882              	.LASF10:
- 24883 088a 6C6F6E67 		.string	"long unsigned int"
- 24883      20756E73 
- 24883      69676E65 
- 24883      6420696E 
- 24883      7400
- 24884              	.LASF286:
- 24885 089c 72634578 		.string	"rcExcessive"
- 24885      63657373 
- 24885      69766500 
- 24886              	.LASF214:
- 24887 08a8 72634576 		.string	"rcEvaluating"
- 24887      616C7561 
- 24887      74696E67 
- 24887      00
- 24888              	.LASF151:
- 24889 08b5 7263526E 		.string	"rcRng"
- 24889      6700
- 24890              	.LASF159:
- 24891 08bb 72634361 		.string	"rcCasting"
- 24891      7374696E 
- 24891      6700
- 24892              	.LASF369:
- 24893 08c5 73656C66 		.string	"self"
- 24893      00
- 24894              	.LASF119:
- 24895 08ca 72634974 		.string	"rcIterator"
- 24895      65726174 
- 24895      6F7200
- 24896              	.LASF57:
- 24897 08d5 4B426C6F 		.string	"KBlockCipherVec"
- 24897      636B4369 
- 24897      70686572 
- 24897      56656300 
- 24898              	.LASF389:
- 24899 08e5 7665635F 		.string	"vec_10"
- 24899      313000
- 24900              	.LASF342:
- 24901 08ec 6F705F53 		.string	"op_SHUFPD"
- 24901      48554650 
- 24901      4400
- 24902              	.LASF397:
- 24903 08f6 4B414553 		.string	"KAESBlockCipherVecAesNiaes_ncbi_name"
- 24903      426C6F63 
- 24903      6B436970 
- 24903      68657256 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 621
-
-
- 24903      65634165 
- 24904              	.LASF136:
- 24905 091b 72635374 		.string	"rcStorage"
- 24905      6F726167 
- 24905      6500
- 24906              	.LASF378:
- 24907 0925 4B414553 		.string	"KAESBlockCipherVecAesNiSetDecryptKey"
- 24907      426C6F63 
- 24907      6B436970 
- 24907      68657256 
- 24907      65634165 
- 24908              	.LASF338:
- 24909 094a 4B414553 		.string	"KAESBlockCipherVecAesNiStateShiftRight64"
- 24909      426C6F63 
- 24909      6B436970 
- 24909      68657256 
- 24909      65634165 
- 24910              	.LASF303:
- 24911 0973 72634F75 		.string	"rcOutOfKDirectory"
- 24911      744F664B 
- 24911      44697265 
- 24911      63746F72 
- 24911      7900
- 24912              	.LASF248:
- 24913 0985 7263526F 		.string	"rcRow"
- 24913      7700
- 24914              	.LASF26:
- 24915 098b 4442475F 		.string	"DBG_VDB"
- 24915      56444200 
- 24916              	.LASF148:
- 24917 0993 72634C61 		.string	"rcLastTarget_v1_0"
- 24917      73745461 
- 24917      72676574 
- 24917      5F76315F 
- 24917      3000
- 24918              	.LASF156:
- 24919 09a5 72634C61 		.string	"rcLastTarget_v1_1"
- 24919      73745461 
- 24919      72676574 
- 24919      5F76315F 
- 24919      3100
- 24920              	.LASF135:
- 24921 09b7 72635365 		.string	"rcSemaphore"
- 24921      6D617068 
- 24921      6F726500 
- 24922              	.LASF318:
- 24923 09c3 6F705F41 		.string	"op_AESENCLAST"
- 24923      4553454E 
- 24923      434C4153 
- 24923      5400
- 24924              	.LASF280:
- 24925 09d1 7263496E 		.string	"rcIncomplete"
- 24925      636F6D70 
- 24925      6C657465 
- 24925      00
- 24926              	.LASF309:
- 24927 09de 72634E6F 		.string	"rcNotOpen"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 622
-
-
- 24927      744F7065 
- 24927      6E00
- 24928              	.LASF118:
- 24929 09e8 7263496E 		.string	"rcIndex"
- 24929      64657800 
- 24930              	.LASF28:
- 24931 09f0 4442475F 		.string	"DBG_XARC"
- 24931      58415243 
- 24931      00
- 24932              	.LASF399:
- 24933 09f9 474E5520 		.string	"GNU C 4.4.2"
- 24933      4320342E 
- 24933      342E3200 
- 24934              	.LASF71:
- 24935 0a05 72635275 		.string	"rcRuntime"
- 24935      6E74696D 
- 24935      6500
- 24936              	.LASF110:
- 24937 0a0f 7263586D 		.string	"rcXmlDoc"
- 24937      6C446F63 
- 24937      00
- 24938              	.LASF13:
- 24939 0a18 6C6F6E67 		.string	"long long int"
- 24939      206C6F6E 
- 24939      6720696E 
- 24939      7400
- 24940              	.LASF191:
- 24941 0a26 7263506F 		.string	"rcPositioning"
- 24941      73697469 
- 24941      6F6E696E 
- 24941      6700
- 24942              	.LASF359:
- 24943 0a34 4B414553 		.string	"KAESBlockCipherVecAesNiMiddleRound"
- 24943      426C6F63 
- 24943      6B436970 
- 24943      68657256 
- 24943      65634165 
- 24944              	.LASF132:
- 24945 0a57 72635175 		.string	"rcQueue"
- 24945      65756500 
- 24946              	.LASF207:
- 24947 0a5f 72634465 		.string	"rcDetaching"
- 24947      74616368 
- 24947      696E6700 
- 24948              	.LASF122:
- 24949 0a6b 72634D44 		.string	"rcMD5SumFmt"
- 24949      3553756D 
- 24949      466D7400 
- 24950              	.LASF173:
- 24951 0a77 7263496E 		.string	"rcInserting"
- 24951      73657274 
- 24951      696E6700 
- 24952              	.LASF221:
- 24953 0a83 7263436F 		.string	"rcComparing"
- 24953      6D706172 
- 24953      696E6700 
- 24954              	.LASF283:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 623
-
-
- 24955 0a8f 7263456D 		.string	"rcEmpty"
- 24955      70747900 
- 24956              	.LASF115:
- 24957 0a97 7263466F 		.string	"rcFormatter"
- 24957      726D6174 
- 24957      74657200 
- 24958              	.LASF361:
- 24959 0aa3 6D726F75 		.string	"mround_keys"
- 24959      6E645F6B 
- 24959      65797300 
- 24960              	.LASF16:
- 24961 0aaf 646F7562 		.string	"double"
- 24961      6C6500
- 24962              	.LASF200:
- 24963 0ab6 72635265 		.string	"rcRegistering"
- 24963      67697374 
- 24963      6572696E 
- 24963      6700
- 24964              	.LASF89:
- 24965 0ac4 72634E53 		.string	"rcNS"
- 24965      00
- 24966              	.LASF232:
- 24967 0ac9 72635061 		.string	"rcParam"
- 24967      72616D00 
- 24968              	.LASF93:
- 24969 0ad1 52435461 		.string	"RCTarget"
- 24969      72676574 
- 24969      00
- 24970              	.LASF326:
- 24971 0ada 6F705F41 		.string	"op_AESKEYGENASSIST"
- 24971      45534B45 
- 24971      5947454E 
- 24971      41535349 
- 24971      535400
- 24972              	.LASF42:
- 24973 0aed 4442475F 		.string	"DBG_AES_OBJECT"
- 24973      4145535F 
- 24973      4F424A45 
- 24973      435400
- 24974              	.LASF329:
- 24975 0afc 6D61736B 		.string	"mask"
- 24975      00
- 24976              	.LASF254:
- 24977 0b01 72634372 		.string	"rcCrc"
- 24977      6300
- 24978              	.LASF322:
- 24979 0b07 62737761 		.string	"bswap_32"
- 24979      705F3332 
- 24979      00
- 24980              	.LASF32:
- 24981 0b10 4442475F 		.string	"DBG_SEARCH"
- 24981      53454152 
- 24981      434800
- 24982              	.LASF82:
- 24983 0b1b 7263584D 		.string	"rcXML"
- 24983      4C00
- 24984              	.LASF34:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 624
-
-
- 24985 0b21 4442475F 		.string	"DBG_VFS"
- 24985      56465300 
- 24986              	.LASF38:
- 24987 0b29 4442475F 		.string	"DBG_AES_KEYEXP"
- 24987      4145535F 
- 24987      4B455945 
- 24987      585000
- 24988              	.LASF400:
- 24989 0b38 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
- 24989      652F726F 
- 24989      6461726D 
- 24989      65722F73 
- 24989      72615F73 
- 24990              	.LASF14:
- 24991 0b6e 666C6F61 		.string	"float"
- 24991      7400
- 24992              	.LASF176:
- 24993 0b74 72635570 		.string	"rcUpdating"
- 24993      64617469 
- 24993      6E6700
- 24994              	.LASF358:
- 24995 0b7f 4B414553 		.string	"KAESBlockCipherVecAesNiAddRoundKey"
- 24995      426C6F63 
- 24995      6B436970 
- 24995      68657256 
- 24995      65634165 
- 24996              	.LASF203:
- 24997 0ba2 7263436F 		.string	"rcConverting"
- 24997      6E766572 
- 24997      74696E67 
- 24997      00
- 24998              	.LASF189:
- 24999 0baf 7263436F 		.string	"rcConcatenating"
- 24999      6E636174 
- 24999      656E6174 
- 24999      696E6700 
- 25000              	.LASF68:
- 25001 0bbf 4B426C6F 		.string	"KBlockCipher"
- 25001      636B4369 
- 25001      70686572 
- 25001      00
- 25002              	.LASF146:
- 25003 0bcc 72634479 		.string	"rcDylib"
- 25003      6C696200 
- 25004              	.LASF295:
- 25005 0bd4 72635265 		.string	"rcReadonly"
- 25005      61646F6E 
- 25005      6C7900
- 25006              	.LASF340:
- 25007 0bdf 4B414553 		.string	"KAESBlockCipherVecAesNiStateDupColumn1"
- 25007      426C6F63 
- 25007      6B436970 
- 25007      68657256 
- 25007      65634165 
- 25008              	.LASF350:
- 25009 0c06 4B414553 		.string	"KAESBlockCipherVecAesNiStateDupColumn2"
- 25009      426C6F63 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 625
-
-
- 25009      6B436970 
- 25009      68657256 
- 25009      65634165 
- 25010              	.LASF327:
- 25011 0c2d 4B414553 		.string	"KAESBlockCipherVecAesNiStateDupColumn3"
- 25011      426C6F63 
- 25011      6B436970 
- 25011      68657256 
- 25011      65634165 
- 25012              	.LASF8:
- 25013 0c54 756E7369 		.string	"unsigned int"
- 25013      676E6564 
- 25013      20696E74 
- 25013      00
- 25014              	.LASF66:
- 25015 0c61 67726964 		.string	"grid"
- 25015      00
- 25016              	.LASF41:
- 25017 0c66 4442475F 		.string	"DBG_AES_INVCIPHER"
- 25017      4145535F 
- 25017      494E5643 
- 25017      49504845 
- 25017      5200
- 25018              	.LASF296:
- 25019 0c78 72635772 		.string	"rcWriteonly"
- 25019      6974656F 
- 25019      6E6C7900 
- 25020              	.LASF290:
- 25021 0c84 72634C6F 		.string	"rcLocked"
- 25021      636B6564 
- 25021      00
- 25022              	.LASF172:
- 25023 0c8d 72635072 		.string	"rcProjecting"
- 25023      6F6A6563 
- 25023      74696E67 
- 25023      00
- 25024              	.LASF77:
- 25025 0c9a 72635053 		.string	"rcPS"
- 25025      00
- 25026              	.LASF262:
- 25027 0c9f 72635265 		.string	"rcRefcount"
- 25027      66636F75 
- 25027      6E7400
- 25028              	.LASF97:
- 25029 0caa 7263546F 		.string	"rcTocEntry"
- 25029      63456E74 
- 25029      727900
- 25030              	.LASF252:
- 25031 0cb5 72634D6F 		.string	"rcMode"
- 25031      646500
- 25032              	.LASF311:
- 25033 0cbc 7263556E 		.string	"rcUnequal"
- 25033      65717561 
- 25033      6C00
- 25034              	.LASF292:
- 25035 0cc6 72634465 		.string	"rcDetached"
- 25035      74616368 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 626
-
-
- 25035      656400
- 25036              	.LASF317:
- 25037 0cd1 6F705F41 		.string	"op_AESENC"
- 25037      4553454E 
- 25037      4300
- 25038              	.LASF298:
- 25039 0cdb 7263496E 		.string	"rcInPlaceNotAllowed"
- 25039      506C6163 
- 25039      654E6F74 
- 25039      416C6C6F 
- 25039      77656400 
- 25040              	.LASF341:
- 25041 0cef 4B414553 		.string	"KAESBlockCipherVecAesNiStateMerge1"
- 25041      426C6F63 
- 25041      6B436970 
- 25041      68657256 
- 25041      65634165 
- 25042              	.LASF345:
- 25043 0d12 4B414553 		.string	"KAESBlockCipherVecAesNiStateMerge2"
- 25043      426C6F63 
- 25043      6B436970 
- 25043      68657256 
- 25043      65634165 
- 25044              	.LASF240:
- 25045 0d35 72635261 		.string	"rcRange"
- 25045      6E676500 
- 25046              	.LASF336:
- 25047 0d3d 76746162 		.string	"vtab"
- 25047      00
- 25048              	.LASF401:
- 25049 0d42 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 25049      652F726F 
- 25049      6461726D 
- 25049      65722F73 
- 25049      72615F73 
- 25050              	.LASF250:
- 25051 0d8a 72634C61 		.string	"rcLastObject_v1_0"
- 25051      73744F62 
- 25051      6A656374 
- 25051      5F76315F 
- 25051      3000
- 25052              	.LASF263:
- 25053 0d9c 72634C61 		.string	"rcLastObject_v1_1"
- 25053      73744F62 
- 25053      6A656374 
- 25053      5F76315F 
- 25053      3100
- 25054              	.LASF346:
- 25055 0dae 4B414553 		.string	"KAESBlockCipherVecAesNiKeyExpansion128"
- 25055      426C6F63 
- 25055      6B436970 
- 25055      68657256 
- 25055      65634165 
- 25056              	.LASF216:
- 25057 0dd5 72634C61 		.string	"rcLastContext_v1_0"
- 25057      7374436F 
- 25057      6E746578 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 627
-
-
- 25057      745F7631 
- 25057      5F3000
- 25058              	.LASF227:
- 25059 0de8 72634C61 		.string	"rcLastContext_v1_1"
- 25059      7374436F 
- 25059      6E746578 
- 25059      745F7631 
- 25059      5F3100
- 25060              	.LASF325:
- 25061 0dfb 72636F6E 		.string	"rcon"
- 25061      00
- 25062              	.LASF382:
- 25063 0e00 4B414553 		.string	"KAESBlockCipherVecAesNiProcessorSupport"
- 25063      426C6F63 
- 25063      6B436970 
- 25063      68657256 
- 25063      65634165 
- 25064              	.LASF123:
- 25065 0e28 72634D65 		.string	"rcMemMap"
- 25065      6D4D6170 
- 25065      00
- 25066              	.LASF58:
- 25067 0e31 41455342 		.string	"AESByte"
- 25067      79746500 
- 25068              	.LASF147:
- 25069 0e39 72634578 		.string	"rcExpression"
- 25069      70726573 
- 25069      73696F6E 
- 25069      00
- 25070              	.LASF193:
- 25071 0e46 7263556E 		.string	"rcUnpacking"
- 25071      7061636B 
- 25071      696E6700 
- 25072              	.LASF109:
- 25073 0e52 7263446F 		.string	"rcDoc"
- 25073      6300
- 25074              	.LASF19:
- 25075 0e58 4442475F 		.string	"DBG_APP"
- 25075      41505000 
- 25076              	.LASF210:
- 25077 0e60 72634D75 		.string	"rcMultiplexing"
- 25077      6C746970 
- 25077      6C657869 
- 25077      6E6700
- 25078              	.LASF212:
- 25079 0e6f 72635365 		.string	"rcSearching"
- 25079      61726368 
- 25079      696E6700 
- 25080              	.LASF394:
- 25081 0e7b 46465F74 		.string	"FF_tab"
- 25081      616200
- 25082              	.LASF312:
- 25083 0e82 72634661 		.string	"rcFailed"
- 25083      696C6564 
- 25083      00
- 25084              	.LASF381:
- 25085 0e8b 4B414553 		.string	"KAESBlockCipherVecAesNiDecrypt"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 628
-
-
- 25085      426C6F63 
- 25085      6B436970 
- 25085      68657256 
- 25085      65634165 
- 25086              	.LASF40:
- 25087 0eaa 4442475F 		.string	"DBG_AES_INVKEYEXP"
- 25087      4145535F 
- 25087      494E564B 
- 25087      45594558 
- 25087      5000
- 25088              	.LASF277:
- 25089 0ebc 7263496E 		.string	"rcIncorrect"
- 25089      636F7272 
- 25089      65637400 
- 25090              	.LASF116:
- 25091 0ec8 72634675 		.string	"rcFunctParam"
- 25091      6E637450 
- 25091      6172616D 
- 25091      00
- 25092              	.LASF226:
- 25093 0ed5 72634964 		.string	"rcIdentifying"
- 25093      656E7469 
- 25093      6679696E 
- 25093      6700
- 25094              	.LASF241:
- 25095 0ee3 7263436F 		.string	"rcConstraint"
- 25095      6E737472 
- 25095      61696E74 
- 25095      00
- 25096              	.LASF267:
- 25097 0ef0 7263556E 		.string	"rcUnknown"
- 25097      6B6E6F77 
- 25097      6E00
- 25098              	.LASF106:
- 25099 0efa 72634375 		.string	"rcCursor"
- 25099      72736F72 
- 25099      00
- 25100              	.LASF264:
- 25101 0f03 52435374 		.string	"RCState"
- 25101      61746500 
- 25102              	.LASF55:
- 25103 0f0b 4B426C6F 		.string	"KBlockCipherByte"
- 25103      636B4369 
- 25103      70686572 
- 25103      42797465 
- 25103      00
- 25104              	.LASF46:
- 25105 0f1c 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 25105      636B4369 
- 25105      70686572 
- 25105      42797465 
- 25105      5F76745F 
- 25106              	.LASF304:
- 25107 0f33 72634967 		.string	"rcIgnored"
- 25107      6E6F7265 
- 25107      6400
- 25108              	.LASF162:
-
GAS LISTING /tmp/ccPaCTqg.s 			page 629
-
-
- 25109 0f3d 72635265 		.string	"rcReleasing"
- 25109      6C656173 
- 25109      696E6700 
- 25110              	.LASF85:
- 25111 0f49 72634B46 		.string	"rcKFG"
- 25111      4700
- 25112              	.LASF243:
- 25113 0f4f 72634D65 		.string	"rcMessage"
- 25113      73736167 
- 25113      6500
- 25114              	.LASF190:
- 25115 0f59 7263466F 		.string	"rcFormatting"
- 25115      726D6174 
- 25115      74696E67 
- 25115      00
- 25116              	.LASF83:
- 25117 0f66 72635352 		.string	"rcSRA"
- 25117      4100
- 25118              	.LASF259:
- 25119 0f6c 7263456E 		.string	"rcEnvironment"
- 25119      7669726F 
- 25119      6E6D656E 
- 25119      7400
- 25120              	.LASF15:
- 25121 0f7a 6C6F6E67 		.string	"long long unsigned int"
- 25121      206C6F6E 
- 25121      6720756E 
- 25121      7369676E 
- 25121      65642069 
- 25122              	.LASF48:
- 25123 0f91 64657374 		.string	"destroy"
- 25123      726F7900 
- 25124              	.LASF141:
- 25125 0f99 7263546F 		.string	"rcToken"
- 25125      6B656E00 
- 25126              	.LASF201:
- 25127 0fa1 7263546F 		.string	"rcTokenizing"
- 25127      6B656E69 
- 25127      7A696E67 
- 25127      00
- 25128              	.LASF22:
- 25129 0fae 4442475F 		.string	"DBG_REF"
- 25129      52454600 
- 25130              	.LASF182:
- 25131 0fb6 72635772 		.string	"rcWriting"
- 25131      6974696E 
- 25131      6700
- 25132              	.LASF158:
- 25133 0fc0 7263416C 		.string	"rcAllocating"
- 25133      6C6F6361 
- 25133      74696E67 
- 25133      00
- 25134              	.LASF144:
- 25135 0fcd 72635479 		.string	"rcType"
- 25135      706500
- 25136              	.LASF245:
- 25137 0fd4 72635265 		.string	"rcResources"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 630
-
-
- 25137      736F7572 
- 25137      63657300 
- 25138              	.LASF126:
- 25139 0fe0 72634E61 		.string	"rcNamelist"
- 25139      6D656C69 
- 25139      737400
- 25140              	.LASF352:
- 25141 0feb 4B414553 		.string	"KAESBlockCipherVecAesNiInvMixColumns"
- 25141      426C6F63 
- 25141      6B436970 
- 25141      68657256 
- 25141      65634165 
- 25142              	.LASF402:
- 25143 1010 4B414553 		.string	"KAESBlockCipherVecAesNiMake"
- 25143      426C6F63 
- 25143      6B436970 
- 25143      68657256 
- 25143      65634165 
- 25144              	.LASF368:
- 25145 102c 4B414553 		.string	"KAESBlockCipherVecAesNiDestroy"
- 25145      426C6F63 
- 25145      6B436970 
- 25145      68657256 
- 25145      65634165 
- 25146              	.LASF310:
- 25147 104b 7263556E 		.string	"rcUndefined"
- 25147      64656669 
- 25147      6E656400 
- 25148              	.LASF278:
- 25149 1057 7263496E 		.string	"rcInconsistent"
- 25149      636F6E73 
- 25149      69737465 
- 25149      6E7400
- 25150              	.LASF223:
- 25151 1066 72635265 		.string	"rcRetrieving"
- 25151      74726965 
- 25151      76696E67 
- 25151      00
- 25152              	.LASF373:
- 25153 1073 656E6372 		.string	"encrypt_key"
- 25153      7970745F 
- 25153      6B657900 
- 25154              	.LASF395:
- 25155 107f 4B414553 		.string	"KAESBlockCipherVecAesNiFFtable"
- 25155      426C6F63 
- 25155      6B436970 
- 25155      68657256 
- 25155      65634165 
- 25156              	.LASF54:
- 25157 109e 64656372 		.string	"decrypt"
- 25157      79707400 
- 25158              	.LASF47:
- 25159 10a6 76657273 		.string	"version"
- 25159      696F6E00 
- 25160              	.LASF235:
- 25161 10ae 72634E61 		.string	"rcName"
- 25161      6D6500
-
GAS LISTING /tmp/ccPaCTqg.s 			page 631
-
-
- 25162              	.LASF272:
- 25163 10b5 72634E75 		.string	"rcNull"
- 25163      6C6C00
- 25164              	.LASF194:
- 25165 10bc 7263456E 		.string	"rcEncoding"
- 25165      636F6469 
- 25165      6E6700
- 25166              	.LASF113:
- 25167 10c7 72634669 		.string	"rcFileFormat"
- 25167      6C65466F 
- 25167      726D6174 
- 25167      00
- 25168              	.LASF150:
- 25169 10d4 7263456E 		.string	"rcEncryptionKey"
- 25169      63727970 
- 25169      74696F6E 
- 25169      4B657900 
- 25170              	.LASF215:
- 25171 10e4 7263496E 		.string	"rcInflating"
- 25171      666C6174 
- 25171      696E6700 
- 25172              	.LASF370:
- 25173 10f0 4B414553 		.string	"KAESBlockCipherVecAesNiBlockSize"
- 25173      426C6F63 
- 25173      6B436970 
- 25173      68657256 
- 25173      65634165 
- 25174              	.LASF297:
- 25175 1111 72634E6F 		.string	"rcNoPerm"
- 25175      5065726D 
- 25175      00
- 25176              	.LASF334:
- 25177 111a 64657374 		.string	"dest"
- 25177      00
- 25178              	.LASF185:
- 25179 111f 72635265 		.string	"rcResetting"
- 25179      73657474 
- 25179      696E6700 
- 25180              	.LASF49:
- 25181 112b 626C6F63 		.string	"block_size"
- 25181      6B5F7369 
- 25181      7A6500
- 25182              	.LASF133:
- 25183 1136 72635257 		.string	"rcRWLock"
- 25183      4C6F636B 
- 25183      00
- 25184              	.LASF164:
- 25185 113f 72634C69 		.string	"rcListing"
- 25185      7374696E 
- 25185      6700
- 25186              	.LASF388:
- 25187 1149 7665635F 		.string	"vec_0F"
- 25187      304600
- 25188              	.LASF114:
- 25189 1150 72634675 		.string	"rcFunction"
- 25189      6E637469 
- 25189      6F6E00
-
GAS LISTING /tmp/ccPaCTqg.s 			page 632
-
-
- 25190              	.LASF39:
- 25191 115b 4442475F 		.string	"DBG_AES_CIPHER"
- 25191      4145535F 
- 25191      43495048 
- 25191      455200
- 25192              	.LASF270:
- 25193 116a 7263556E 		.string	"rcUnrecognized"
- 25193      7265636F 
- 25193      676E697A 
- 25193      656400
- 25194              	.LASF62:
- 25195 1179 6E756D62 		.string	"number_of_rounds"
- 25195      65725F6F 
- 25195      665F726F 
- 25195      756E6473 
- 25195      00
- 25196              	.LASF343:
- 25197 118a 76696E31 		.string	"vin1"
- 25197      00
- 25198              	.LASF86:
- 25199 118f 7263416C 		.string	"rcAlign"
- 25199      69676E00 
- 25200              	.LASF356:
- 25201 1197 4B414553 		.string	"KAESBlockCipherVecAesNiEqInvKeyExpansion256"
- 25201      426C6F63 
- 25201      6B436970 
- 25201      68657256 
- 25201      65634165 
- 25202              	.LASF149:
- 25203 11c3 72635072 		.string	"rcProduction"
- 25203      6F647563 
- 25203      74696F6E 
- 25203      00
- 25204              	.LASF396:
- 25205 11d0 4B414553 		.string	"KAESBlockCipherVecAesNiRcon"
- 25205      426C6F63 
- 25205      6B436970 
- 25205      68657256 
- 25205      65634165 
- 25206              	.LASF91:
- 25207 11ec 72634C61 		.string	"rcLastModule_v1_1"
- 25207      73744D6F 
- 25207      64756C65 
- 25207      5F76315F 
- 25207      3100
- 25208              	.LASF139:
- 25209 11fe 72635468 		.string	"rcThread"
- 25209      72656164 
- 25209      00
- 25210              	.LASF348:
- 25211 1207 4B414553 		.string	"KAESBlockCipherVecAesNiVecXor"
- 25211      426C6F63 
- 25211      6B436970 
- 25211      68657256 
- 25211      65634165 
- 25212              	.LASF187:
- 25213 1225 72634672 		.string	"rcFreezing"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 633
-
-
- 25213      65657A69 
- 25213      6E6700
- 25214              	.LASF398:
- 25215 1230 4B414553 		.string	"KAESBlockCipherVecAesNi_vt_"
- 25215      426C6F63 
- 25215      6B436970 
- 25215      68657256 
- 25215      65634165 
- 25216              	.LASF52:
- 25217 124c 7365745F 		.string	"set_decrypt_key"
- 25217      64656372 
- 25217      7970745F 
- 25217      6B657900 
- 25218              	.LASF69:
- 25219 125c 62797465 		.string	"byte"
- 25219      00
- 25220              	.LASF45:
- 25221 1261 4B426C6F 		.string	"KBlockCipher_vt"
- 25221      636B4369 
- 25221      70686572 
- 25221      5F767400 
- 25222              	.LASF379:
- 25223 1271 64656372 		.string	"decrypt_key"
- 25223      7970745F 
- 25223      6B657900 
- 25224              	.LASF256:
- 25225 127d 72635365 		.string	"rcSeed"
- 25225      656400
- 25226              	.LASF213:
- 25227 1284 72634C6F 		.string	"rcLoading"
- 25227      6164696E 
- 25227      6700
- 25228              	.LASF1:
- 25229 128e 73686F72 		.string	"short int"
- 25229      7420696E 
- 25229      7400
- 25230              	.LASF9:
- 25231 1298 75696E74 		.string	"uint64_t"
- 25231      36345F74 
- 25231      00
- 25232              	.LASF306:
- 25233 12a1 72634C61 		.string	"rcLastState_v1_0"
- 25233      73745374 
- 25233      6174655F 
- 25233      76315F30 
- 25233      00
- 25234              	.LASF315:
- 25235 12b2 72634C61 		.string	"rcLastState_v1_1"
- 25235      73745374 
- 25235      6174655F 
- 25235      76315F31 
- 25235      00
- 25236              	.LASF80:
- 25237 12c3 72635644 		.string	"rcVDB"
- 25237      4200
- 25238              	.LASF347:
- 25239 12c9 4B414553 		.string	"KAESBlockCipherVecAesNiKeyExpansion192"
-
GAS LISTING /tmp/ccPaCTqg.s 			page 634
-
-
- 25239      426C6F63 
- 25239      6B436970 
- 25239      68657256 
- 25239      65634165 
- 25240              	.LASF51:
- 25241 12f0 7365745F 		.string	"set_encrypt_key"
- 25241      656E6372 
- 25241      7970745F 
- 25241      6B657900 
- 25242              	.LASF78:
- 25243 1300 72635846 		.string	"rcXF"
- 25243      00
- 25244              	.LASF161:
- 25245 1305 72634465 		.string	"rcDestroying"
- 25245      7374726F 
- 25245      79696E67 
- 25245      00
- 25246              	.LASF266:
- 25247 1312 7263446F 		.string	"rcDone"
- 25247      6E6500
- 25248              	.LASF96:
- 25249 1319 7263546F 		.string	"rcToc"
- 25249      6300
- 25250              	.LASF170:
- 25251 131f 7263416C 		.string	"rcAliasing"
- 25251      69617369 
- 25251      6E6700
- 25252              	.LASF131:
- 25253 132a 72635072 		.string	"rcProcess"
- 25253      6F636573 
- 25253      7300
- 25254              	.LASF229:
- 25255 1334 72634E6F 		.string	"rcNoObj"
- 25255      4F626A00 
- 25256              	.LASF268:
- 25257 133c 7263556E 		.string	"rcUnsupported"
- 25257      73757070 
- 25257      6F727465 
- 25257      6400
- 25258              	.LASF349:
- 25259 134a 4B414553 		.string	"KAESBlockCipherVecAesNiAesKeyGenAssistColumn2"
- 25259      426C6F63 
- 25259      6B436970 
- 25259      68657256 
- 25259      65634165 
- 25260              	.LASF104:
- 25261 1378 7263436F 		.string	"rcColumn"
- 25261      6C756D6E 
- 25261      00
- 25262              	.LASF269:
- 25263 1381 7263556E 		.string	"rcUnexpected"
- 25263      65787065 
- 25263      63746564 
- 25263      00
- 25264              	.LASF7:
- 25265 138e 75696E74 		.string	"uint32_t"
- 25265      33325F74 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 635
-
-
- 25265      00
- 25266              	.LASF90:
- 25267 1397 72635646 		.string	"rcVFS"
- 25267      5300
- 25268              	.LASF31:
- 25269 139d 4442475F 		.string	"DBG_KRYPTO"
- 25269      4B525950 
- 25269      544F00
- 25270              	.LASF43:
- 25271 13a8 4442475F 		.string	"DBG_AES_COUNT"
- 25271      4145535F 
- 25271      434F554E 
- 25271      5400
- 25272              	.LASF351:
- 25273 13b6 4B414553 		.string	"KAESBlockCipherVecAesNiKeyExpansion256"
- 25273      426C6F63 
- 25273      6B436970 
- 25273      68657256 
- 25273      65634165 
- 25274              	.LASF383:
- 25275 13dd 6C657665 		.string	"level"
- 25275      6C00
- 25276              	.LASF320:
- 25277 13e3 6F705F41 		.string	"op_AESDECLAST"
- 25277      45534445 
- 25277      434C4153 
- 25277      5400
- 25278              	.LASF314:
- 25279 13f1 72635772 		.string	"rcWrongType"
- 25279      6F6E6754 
- 25279      79706500 
- 25280              	.LASF249:
- 25281 13fd 72634C69 		.string	"rcLibrary"
- 25281      62726172 
- 25281      7900
- 25282              	.LASF282:
- 25283 1407 72634361 		.string	"rcCanceled"
- 25283      6E63656C 
- 25283      656400
- 25284              	.LASF153:
- 25285 1412 72634461 		.string	"rcData"
- 25285      746100
- 25286              	.LASF363:
- 25287 1419 4B414553 		.string	"KAESBlockCipherVecAesNiCipher"
- 25287      426C6F63 
- 25287      6B436970 
- 25287      68657256 
- 25287      65634165 
- 25288              	.LASF117:
- 25289 1437 72634865 		.string	"rcHeader"
- 25289      61646572 
- 25289      00
- 25290              	.LASF6:
- 25291 1440 73686F72 		.string	"short unsigned int"
- 25291      7420756E 
- 25291      7369676E 
- 25291      65642069 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 636
-
-
- 25291      6E7400
- 25292              	.LASF107:
- 25293 1453 72634461 		.string	"rcDatabase"
- 25293      74616261 
- 25293      736500
- 25294              	.LASF183:
- 25295 145e 7263436F 		.string	"rcCommitting"
- 25295      6D6D6974 
- 25295      74696E67 
- 25295      00
- 25296              	.LASF211:
- 25297 146b 7263436C 		.string	"rcClassifying"
- 25297      61737369 
- 25297      6679696E 
- 25297      6700
- 25298              	.LASF142:
- 25299 1479 72635472 		.string	"rcTree"
- 25299      656500
- 25300              	.LASF36:
- 25301 1480 4442475F 		.string	"DBG_ARGS"
- 25301      41524753 
- 25301      00
- 25302              	.LASF171:
- 25303 1489 72635365 		.string	"rcSelecting"
- 25303      6C656374 
- 25303      696E6700 
- 25304              	.LASF72:
- 25305 1495 72635465 		.string	"rcText"
- 25305      787400
- 25306              	.LASF308:
- 25307 149c 72634F75 		.string	"rcOutoforder"
- 25307      746F666F 
- 25307      72646572 
- 25307      00
- 25308              	.LASF275:
- 25309 14a9 7263496E 		.string	"rcInvalid"
- 25309      76616C69 
- 25309      6400
- 25310              	.LASF375:
- 25311 14b3 75736572 		.string	"user_key_size"
- 25311      5F6B6579 
- 25311      5F73697A 
- 25311      6500
- 25312              	.LASF332:
- 25313 14c1 4B414553 		.string	"KAESBlockCipherVecAesNiStateShiftLeft32"
- 25313      426C6F63 
- 25313      6B436970 
- 25313      68657256 
- 25313      65634165 
- 25314              	.LASF222:
- 25315 14e9 7263496E 		.string	"rcInitializing"
- 25315      69746961 
- 25315      6C697A69 
- 25315      6E6700
- 25316              	.LASF101:
- 25317 14f8 7263426C 		.string	"rcBlob"
- 25317      6F6200
-
GAS LISTING /tmp/ccPaCTqg.s 			page 637
-
-
- 25318              	.LASF360:
- 25319 14ff 6D737461 		.string	"mstate"
- 25319      746500
- 25320              	.LASF199:
- 25321 1506 72635265 		.string	"rcReindexing"
- 25321      696E6465 
- 25321      78696E67 
- 25321      00
- 25322              	.LASF94:
- 25323 1513 72634E6F 		.string	"rcNoTarg"
- 25323      54617267 
- 25323      00
- 25324              	.LASF362:
- 25325 151c 4B414553 		.string	"KAESBlockCipherVecAesNiLastRound"
- 25325      426C6F63 
- 25325      6B436970 
- 25325      68657256 
- 25325      65634165 
- 25326              	.LASF276:
- 25327 153d 7263436F 		.string	"rcCorrupt"
- 25327      72727570 
- 25327      7400
- 25328              	.LASF305:
- 25329 1547 72634F75 		.string	"rcOutofrange"
- 25329      746F6672 
- 25329      616E6765 
- 25329      00
- 25330              	.LASF134:
- 25331 1554 72635363 		.string	"rcSchema"
- 25331      68656D61 
- 25331      00
- 25332              	.LASF323:
- 25333 155d 4B414553 		.string	"KAESBlockCipherVecAesNiStateIn"
- 25333      426C6F63 
- 25333      6B436970 
- 25333      68657256 
- 25333      65634165 
- 25334              	.LASF130:
- 25335 157c 72635061 		.string	"rcPath"
- 25335      746800
- 25336              	.LASF181:
- 25337 1583 72635265 		.string	"rcReading"
- 25337      6164696E 
- 25337      6700
- 25338              	.LASF50:
- 25339 158d 6B65795F 		.string	"key_size"
- 25339      73697A65 
- 25339      00
- 25340              	.LASF313:
- 25341 1596 72634E6F 		.string	"rcNotAvailable"
- 25341      74417661 
- 25341      696C6162 
- 25341      6C6500
- 25342              	.LASF392:
- 25343 15a5 4B414553 		.string	"KAESBlockCipherVecAesNiRijndaelInvSBoxV"
- 25343      426C6F63 
- 25343      6B436970 
-
GAS LISTING /tmp/ccPaCTqg.s 			page 638
-
-
- 25343      68657256 
- 25343      65634165 
- 25344              	.LASF271:
- 25345 15cd 7263416D 		.string	"rcAmbiguous"
- 25345      62696775 
- 25345      6F757300 
- 25346              		.ident	"GCC: (GNU) 4.4.2"
- 25347              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccPaCTqg.s 			page 639
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 aes-ncbi.c
-     /tmp/ccPaCTqg.s:11     .text:0000000000000000 op_AESENC
-     /tmp/ccPaCTqg.s:32     .text:000000000000000b op_AESENCLAST
-     /tmp/ccPaCTqg.s:52     .text:0000000000000016 op_AESDEC
-     /tmp/ccPaCTqg.s:72     .text:0000000000000021 op_AESDECLAST
-     /tmp/ccPaCTqg.s:92     .text:000000000000002c op_AESIMC
-     /tmp/ccPaCTqg.s:112    .text:0000000000000037 bswap_32
-     /tmp/ccPaCTqg.s:148    .rodata:0000000000000000 vec_00
-     /tmp/ccPaCTqg.s:153    .rodata:0000000000000010 vec_01
-     /tmp/ccPaCTqg.s:173    .rodata:0000000000000020 vec_0F
-     /tmp/ccPaCTqg.s:193    .rodata:0000000000000030 vec_10
-     /tmp/ccPaCTqg.s:213    .rodata:0000000000000040 KAESBlockCipherVecAesNiRijndaelSBox
-     /tmp/ccPaCTqg.s:473    .rodata:0000000000000140 KAESBlockCipherVecAesNiRijndaelSBoxV
-     /tmp/ccPaCTqg.s:733    .rodata:0000000000000240 KAESBlockCipherVecAesNiRijndaelInvSBoxV
-     /tmp/ccPaCTqg.s:993    .rodata:0000000000000340 lo_filter
-     /tmp/ccPaCTqg.s:1013   .rodata:0000000000000350 FF_tab
-     /tmp/ccPaCTqg.s:1033   .data:0000000000000000 KAESBlockCipherVecAesNiFFtable
-     /tmp/ccPaCTqg.s:1046   .rodata:0000000000000360 KAESBlockCipherVecAesNiRcon
-     /tmp/ccPaCTqg.s:1059   .text:000000000000004b KAESBlockCipherVecAesNiKeyExpansion128
-     /tmp/ccPaCTqg.s:9273   .rodata:0000000000000610 mask.8002
-     /tmp/ccPaCTqg.s:2645   .text:00000000000018c3 KAESBlockCipherVecAesNiKeyExpansion192
-     /tmp/ccPaCTqg.s:9293   .rodata:0000000000000620 mask.8011
-     /tmp/ccPaCTqg.s:5149   .text:0000000000004000 KAESBlockCipherVecAesNiKeyExpansion256
-     /tmp/ccPaCTqg.s:7352   .text:00000000000061b6 KAESBlockCipherVecAesNiEqInvKeyExpansion
-     /tmp/ccPaCTqg.s:7434   .text:000000000000626c KAESBlockCipherVecAesNiEqInvKeyExpansion128
-     /tmp/ccPaCTqg.s:7462   .text:0000000000006296 KAESBlockCipherVecAesNiEqInvKeyExpansion192
-     /tmp/ccPaCTqg.s:7490   .text:00000000000062c0 KAESBlockCipherVecAesNiEqInvKeyExpansion256
-     /tmp/ccPaCTqg.s:7530   .text:00000000000062ea KAESBlockCipherVecAesNiCipher
-     /tmp/ccPaCTqg.s:8009   .text:000000000000699a KAESBlockCipherVecAesNiEqInvCipher
-     /tmp/ccPaCTqg.s:8493   .rodata:00000000000003d9 KAESBlockCipherVecAesNiaes_ncbi_name
-     /tmp/ccPaCTqg.s:8497   .text:0000000000007054 KAESBlockCipherVecAesNiDestroy
-     /tmp/ccPaCTqg.s:8516   .text:000000000000705e KAESBlockCipherVecAesNiBlockSize
-     /tmp/ccPaCTqg.s:8536   .text:0000000000007069 KAESBlockCipherVecAesNiKeySize
-     /tmp/ccPaCTqg.s:8561   .text:0000000000007074 KAESBlockCipherVecAesNiSetEncryptKey
-     /tmp/ccPaCTqg.s:9263   .rodata:00000000000005a0 __func__.8794
-     /tmp/ccPaCTqg.s:8652   .text:000000000000715d KAESBlockCipherVecAesNiSetDecryptKey
-     /tmp/ccPaCTqg.s:8734   .text:0000000000007220 KAESBlockCipherVecAesNiEncrypt
-     /tmp/ccPaCTqg.s:9258   .rodata:0000000000000570 __PRETTY_FUNCTION__.8830
-     /tmp/ccPaCTqg.s:8812   .text:00000000000072e3 KAESBlockCipherVecAesNiDecrypt
-     /tmp/ccPaCTqg.s:9253   .rodata:0000000000000550 __PRETTY_FUNCTION__.8851
-     /tmp/ccPaCTqg.s:8907   .text:00000000000073a6 KAESBlockCipherVecAesNiProcessorSupport
-     /tmp/ccPaCTqg.s:9248   .rodata:0000000000000520 __func__.8875
-     /tmp/ccPaCTqg.s:9142   .data.rel.ro.local:0000000000000000 KAESBlockCipherVecAesNi_vt_
-     /tmp/ccPaCTqg.s:9158   .text:000000000000764e KAESBlockCipherVecAesNiMake
-     /tmp/ccPaCTqg.s:9238   .rodata:00000000000004d0 __func__.8978
-     /tmp/ccPaCTqg.s:9243   .rodata:00000000000004f0 __PRETTY_FUNCTION__.8979
-     /tmp/ccPaCTqg.s:9268   .rodata:00000000000005e0 __PRETTY_FUNCTION__.8793
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-KDbgWriterGet
-KDbgCondToFlag
-KDbgTestModConds
-KDbgMsg
-memset
-SetRCFileFuncLine
-
GAS LISTING /tmp/ccPaCTqg.s 			page 640
-
-
-__assert_fail
diff --git a/libs/krypto/aes-ncbi.c b/libs/krypto/aes-ncbi.c
deleted file mode 100644
index 4215feb..0000000
--- a/libs/krypto/aes-ncbi.c
+++ /dev/null
@@ -1,2644 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-
-#include <krypto/extern.h>
-
-#include "ncbi-priv.h"
-#include "aes-ncbi-priv.h"
-#include "cipher-priv.h"
-#include "blockcipher-priv.h"
-
-#include <klib/debug.h>
-#include <klib/out.h>
-#include <klib/rc.h>
-
-
-#include <byteswap.h>
-#include <string.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <sysalloc.h>
-
-#if USE_VEC
-#include <cpuid.h>
-#endif
-
-#if USE_VECREG
-#include <v128.h>
-#endif
-
-/*
- * This implements the AES cipher as defined by FIPS-197 from NIST
- *  
- * Notes on implmentation:
- *
- * NOTE:
- * Byte ordering in AES is not critical but unllike the original implmentation
- * bytes are not re-ordered to a big endian order upon reading them in and this
- * code will expect to run on an Intel/AMD type processor and might have issues
- * on some big endian processors.
- *
- * NOTE:
- * Many functions are written as static inline functions to
- * facilitate GCC type assembly language optimization on various processors
- *
- * NOTE:
- * This implements the Equivalent Inverse Cipher not the Inverse Cipher.  In
- * general functions will match those defined in the FIPS-197 document where they
- * do not get optimized away for Intel/AMD XMM registers and AES-NI instructions.
- *
- * NOTE:
- * C-99 types are used for specific sized types.  An unaddornded unsigned type
- * is used for many index type variables to allow the compiler choice in
- * size where size does not matter very much.  As these index variables do
- * not go above 16 any size would do but the compiler can choose the size most
- * suited for array subscripting.
- */
-
-static const
-CipherVec vec_00 =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-                      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-
-static const
-CipherVec vec_01 =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-                      0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-
-static const
-CipherVec vec_0F =  { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-                      0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F };
-
-static const
-CipherVec vec_10 =  { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-                      0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 };
-
-
-
-/* ======================================================================
- * These functions implment the Advanced Encryption Standard AES as defined
- * in the FIPS (Federal Information Processing Standars Publication 197
- * Of Nevember 26, 2001.
- */
-
-/* ======================================================================
- * FIPS-197 5.1
- */
-
-/*
- * Read a blocks worth of bytes into an CipherVec
- *
- * With vector registers it is a single instruction, without them it
- * is a memmove call
- */
-static __inline__ 
-CipherVec AESBCMEMBER(StateIn) (const void * ain)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(StateIn) (const void * ain)
-{
-#if USE_VEC_REG
-
-    register CipherVec vec;
-    __asm__ (
-        "movdqu (%[a]),%[s]" : [s] "=x" (vec) : [a] "D" (ain)
-        );
-    return vec;
-
-#else
-
-    CipherVec_AES_u u;
-    memmove (&u.bytes, ain, sizeof (u));
-    return u.state;
-
-#endif
-}
-
-
-/*
- * Write a block's worth of bytes out from an CipherVec
- *
- * With vector registers it is a single instruction, without them it
- * is a memmove call
- */
-static __inline__
-void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
-    __attribute__ ((always_inline));
-
-static __inline__
-void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
-{
-#if USE_VEC_REG
-
-    register CipherVec rvec = vec;
-    __asm__ (
-        "movdqu %[s],(%[a])" : : [s] "x" (rvec), [a] "D" (rout)
-        );
-
-#else
-
-    memmove (rout, &vec, sizeof (vec));
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
-{
-#if USE_VEC
-
-    return v1 ^ v2;
-
-#else
-
-    CipherVec_AES_u u1, u2; /* state and key not countries :) */
-    unsigned ix;
-
-    u1.state = v1;
-    u2.state = v2;
-
-    for (ix = 0; ix < AES_Nb; ++ix)
-        u1.columns[ix] ^= u2.columns[ix];
-
-    return u1.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
-{
-#if USE_VEC
-
-    return v1 & v2;
-
-#else
-
-    CipherVec_AES_u u1, u2; /* state and key not countries :) */
-    unsigned ix;
-
-    u1.state = v1;
-    u2.state = v2;
-
-    for (ix = 0; ix < AES_Nb; ++ix)
-        u1.columns[ix] &= u2.columns[ix];
-
-    return u1.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
-{
-#if USE_VEC
-
-    return v1 | v2;
-
-#else
-
-    CipherVec_AES_u u1, u2; /* state and key not countries :) */
-    unsigned ix;
-
-    u1.state = v1;
-    u2.state = v2;
-
-    for (ix = 0; ix < AES_Nb; ++ix)
-        u1.columns[ix] |= u2.columns[ix];
-
-    return u1.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
-{
-#if USE_VEC
-
-    return v1 + v2;
-
-#else
-
-    CipherVec_AES_u u1, u2; /* state and key not countries :) */
-    unsigned ix;
-
-    u1.state = v1;
-    u2.state = v2;
-
-    for (ix = 0; ix < AES_Nb; ++ix)
-        u1.columns[ix] += u2.columns[ix];
-
-    return u1.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
-{
-#if USE_VEC
-
-    return v1 - v2;
-
-#else
-
-    CipherVec_AES_u u1, u2; /* state and key not countries :) */
-    unsigned ix;
-
-    u1.state = v1;
-    u2.state = v2;
-
-    for (ix = 0; ix < AES_Nb; ++ix)
-        u1.columns[ix] -= u2.columns[ix];
-
-    return u1.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
-{
-#if USE_VEC
-
-    return v1 * v2;
-
-#else
-
-    CipherVec_AES_u u1, u2; /* state and key not countries :) */
-    unsigned ix;
-
-    u1.state = v1;
-    u2.state = v2;
-
-    for (ix = 0; ix < AES_Nb; ++ix)
-        u1.columns[ix] *= u2.columns[ix];
-
-    return u1.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
-{
-#if USE_VEC
-
-    return v1 / v2;
-
-#else
-
-    CipherVec_AES_u u1, u2; /* state and key not countries :) */
-    unsigned ix;
-
-    u1.state = v1;
-    u2.state = v2;
-
-    for (ix = 0; ix < AES_Nb; ++ix)
-        u1.columns[ix] /= u2.columns[ix];
-
-    return u1.state;
-
-#endif
-}
-
-static __inline__ 
-CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
-{
-#if USE_VEC_REG
-
-    return op_PSHUFB128 (dest, mask);
-
-#else
-
-    CipherVec_AES_u out, in, gate;
-    unsigned ix;
-
-    in.state = dest;
-    gate.state = mask;
-
-    for (ix = 0; ix < sizeof dest; ++ix)
-    {
-        if (gate.bytes[ix] & 0x80)
-            out.bytes[ix] = 0;
-        else
-            out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
-    }
-
-    return out.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
-{
-#if USE_VEC_REG
-    static const CipherVec sl_mask [9] = 
-        {
-            { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-              0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
-            { 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
-              0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE },
-            { 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
-              0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC },
-            { 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
-              0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8 },
-            { 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
-              0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0 },
-            { 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
-              0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0 },
-            { 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
-              0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0 },
-            { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-              0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 },
-            { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
-        };
-    CipherVec vv = v;
-
-    assert (k <= 8);
-    
-
-/*     DEBUG_CIPHER_VECTOR ("mask", sl_mask[k]); */
-/*     DEBUG_CIPHER_VECTOR ("v 1", vv); */
-    vv = op_PSLLDI128 (vv, k);
-/*     DEBUG_CIPHER_VECTOR ("v 2", vv); */
-    vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
-/*     DEBUG_CIPHER_VECTOR ("v 3", vv); */
-    return vv;
-
-#else
-
-    CipherVec_AES_u vv; /* state and key not countries :) */
-    unsigned ix;
-
-    vv.state = v;
-
-    for (ix = 0; ix < sizeof (v); ++ix)
-    {
-        KOutMsg ("SLLBI %d %x ", k, vv.bytes[ix]);
-        vv.bytes[ix] <<= k;
-        KOutMsg ("%x\n", vv.bytes[ix]);
-    }
-    return vv.state;
-
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
-{
-#if USE_VEC_REG
-    static const CipherVec sr_mask [9] = 
-        {
-            { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-              0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
-            { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
-              0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F },
-            { 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
-              0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F },
-            { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
-              0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
-            { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-              0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F },
-            { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-              0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 },
-            { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-              0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 },
-            { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-              0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
-            { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
-        };
-
-    v = op_PSRLDI128 (v, k);
-    v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
-    return v;
-
-#else
-
-    CipherVec_AES_u vv; /* state and key not countries :) */
-    unsigned ix;
-
-    vv.state = v;
-
-    for (ix = 0; ix < sizeof (v); ++ix)
-    {
-        KOutMsg ("SRLBI %d %x ", k, vv.bytes[ix]);
-        vv.bytes[ix] >>= k;
-        KOutMsg ("%x\n", vv.bytes[ix]);
-    }
-    return vv.state;
-
-#endif
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
-{
-#if USE_VEC_REG
-    state = op_PINSRUD (state, column, which);
-#else
-    CipherVec_AES_u u;
-    u.state = state;
-    u.columns [which] = column;
-    state = u.state;
-#endif
-    return state;
-}
-
-
-/* ======================================================================
- * FIPS-197 5.1.4
- *
- * The AddRoundKey transformation is a sinple exclusive or of all 128 bits
- * in the current block against a round key.  This operation is used in all
- * Cipher and EqInvCipher rounds
- *
- * With vector types it is a single operation that with vector registers is
- * a single op-code.
- */
-static __inline__ 
-CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
-{
-    return AESBCMEMBER(VecXor) (state, round_key);
-}
-
-
-/* ======================================================================
- * FIPS-197 5.1.2
- *
- * FIPS 197 describes the state in column major format
- * while C and assembly programmers tend to think in row major
- * The byte order is 0,1,2,3,,...F as shown in the first diagram.
- *
- *  ShiftRows() is defined as leaving this state
- * +---+---+---+---+     +---+---+---+---+
- * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- * +---+---+---+---+     +---+---+---+---+
- * | 1 | 5 | 9 | D |     | 5 | 9 | D | 1 |
- * +---+---+---+---+     +---+---+---+---+
- * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- * +---+---+---+---+     +---+---+---+---+
- * | 3 | 7 | B | F |     | F | 3 | 7 | B |
- * +---+---+---+---+     +---+---+---+---+
- */
-static __inline__
-CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
-{
-static const
-    CipherVec ShiftRowTable
-    /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
-    = {  0,  5, 10, 15,  4,  9, 14,  3,  8, 13,  2,  7, 12,  1,  6, 11 };
-
-    state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
-    return state;
-}
-
-
-/* ======================================================================
- * FIPS-197 5.3.1
- *
- * InvShiftRows() is defined as leaving this state
- * +---+---+---+---+     +---+---+---+---+
- * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- * +---+---+---+---+     +---+---+---+---+
- * | 1 | 5 | 9 | D |     | D | 1 | 5 | 9 |
- * +---+---+---+---+     +---+---+---+---+
- * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- * +---+---+---+---+     +---+---+---+---+
- * | 3 | 7 | B | F |     | 7 | B | F | 3 |
- * +---+---+---+---+     +---+---+---+---+
- */
-static __inline__
-CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
-    __attribute__ ((always_inline));
-
-
-static __inline__
-CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
-{
-    static const CipherVecByte InvShiftRowTable
-        /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
-        = {  0, 13, 10,  7,  4,  1, 14, 11,  8,  5,  2, 15, 12,  9,  6,  3 };
-
-    state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
-    return state;
-}
-
-
-/* ======================================================================
- * +---+---+---+---+     +---+---+---+---+
- * | 0 | 4 | 8 | C |     | 3 | 7 | B | F |
- * +---+---+---+---+     +---+---+---+---+
- * | 1 | 5 | 9 | D |     | 0 | 4 | 8 | C |
- * +---+---+---+---+     +---+---+---+---+
- * | 2 | 6 | A | E |     | 1 | 5 | 9 | D |
- * +---+---+---+---+     +---+---+---+---+
- * | 3 | 7 | B | F |     | 2 | 6 | A | E |
- * +---+---+---+---+     +---+---+---+---+
- */
-static __inline__
-CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
-{
-static const
-    CipherVec ShiftRowTable
-    /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
-    = {  3,  0,  1,  2,  7,  4,  5,  6, 11,  8,  9, 10, 15, 12, 13, 14 };
-
-    state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
-    return state;
-}
-
-
-/* ======================================================================
- * +---+---+---+---+     +---+---+---+---+
- * | 0 | 4 | 8 | C |     | 1 | 5 | B | D |
- * +---+---+---+---+     +---+---+---+---+
- * | 1 | 5 | 9 | D |     | 2 | 6 | 8 | E |
- * +---+---+---+---+     +---+---+---+---+
- * | 2 | 6 | A | E |     | 3 | 7 | 9 | F |
- * +---+---+---+---+     +---+---+---+---+
- * | 3 | 7 | B | F |     | 0 | 4 | 8 | C |
- * +---+---+---+---+     +---+---+---+---+
- */
-static __inline__
-CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
-{
-    static const CipherVec ShiftRowTable
-        /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
-        = {  1,  2,  3,  0,  5,  6,  7,  4,  9, 10, 11,  8, 13, 14, 15, 12 };
-
-    state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
-    return state;
-}
-
-
-/* ======================================================================
- * FIPS-197 5.1.1
- */
-
-
-/*
- * SubBytes replaces each byte in a state with a specific byte value from
- * A Rijndael Substitution box
- */
-static const 
-AESByte AESBCMEMBER(RijndaelSBox)[256] = 
-{
-/*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F */
-/* 0- */ 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
-/* 1- */ 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
-/* 2- */ 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,
-/* 3- */ 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75,
-/* 4- */ 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84,
-/* 5- */ 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF,
-/* 6- */ 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8,
-/* 7- */ 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2,
-/* 8- */ 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73,
-/* 9- */ 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB,
-/* A- */ 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79,
-/* B- */ 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08,
-/* C- */ 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A,
-/* D- */ 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,
-/* E- */ 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,
-/* F- */ 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16
-};
-
-
-#if 0
-static __inline__
-CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
-{
-    CipherVec_AES_u u;
-    unsigned ix;
-
-    u.state = state;
-
-    for (ix = 0; ix < sizeof (u.bytes); ++ix)
-    {
-        u.bytes[ix] = AESBCMEMBER(RijndaelSBox)[u.bytes[ix]];
-    }
-
-    return u.state;
-}
-#endif
-
-/*
- * SubWord performs the same operation as SubBytes but on
- * the four bytes of a column and not a whole state
- */
-static __inline__
-AESWord AESBCMEMBER(SubWord) (AESWord w)
-    __attribute__ ((always_inline));
-
-static __inline__
-AESWord AESBCMEMBER(SubWord) (AESWord w)
-{
-    AESColumn col;
-    unsigned ix;
-
-    col.word = w;
-    for (ix = 0; ix < sizeof (col); ++ix)
-        col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
-    return col.word;
-}
-
-#if 0
-/*
- * InvSubBytes replaces each byte in a state with a specific byte value from
- * an Inversze Rijndael Substitution box.  That is InvSubBytes undoes SubBytes
- */
-static const 
-uint8_t AESBCMEMBER(RijndaelInvSBox)[256] = 
-{
-/*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F */
-/* 0- */ 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB,
-/* 1- */ 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB,
-/* 2- */ 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E,
-/* 3- */ 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25,
-/* 4- */ 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92,
-/* 5- */ 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84,
-/* 6- */ 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06,
-/* 7- */ 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B,
-/* 8- */ 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73,
-/* 9- */ 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E,
-/* A- */ 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B,
-/* B- */ 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4,
-/* C- */ 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F,
-/* D- */ 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF,
-/* E- */ 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61,
-/* F- */ 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D
-};
-
-
-static __inline__
-CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
-{
-    CipherVec_AES_u u;
-    unsigned ix;
-
-    u.state = state;
-    for (ix = 0; ix < sizeof (u.bytes); ++ix)
-        u.bytes[ix] = AESBCMEMBER(RijndaelInvSBox)[u.bytes[ix]];
-
-    return u.state;
-}
-#endif
-
-static const
-CipherVec AESBCMEMBER(RijndaelSBoxV)[16] = 
-{
-/*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F */
-    { 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76 },
-    { 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0 },
-    { 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15 },
-    { 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75 },
-    { 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84 },
-    { 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF },
-    { 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8 },
-    { 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2 },
-    { 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73 },
-    { 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB },
-    { 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79 },
-    { 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08 },
-    { 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A },
-    { 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E },
-    { 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF },
-    { 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 }
-};
-
-static const
-CipherVec AESBCMEMBER(RijndaelInvSBoxV)[16] = 
-{
-/*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F */
-    { 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB },
-    { 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB },
-    { 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E },
-    { 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25 },
-    { 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92 },
-    { 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84 },
-    { 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06 },
-    { 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B },
-    { 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73 },
-    { 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E },
-    { 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B },
-    { 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4 },
-    { 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F },
-    { 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF },
-    { 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61 },
-    { 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D }
-};
-
-
-static const
-CipherVec lo_filter = { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-                        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
-
-static __inline__
-CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
-{
-    CipherVec lo, hi, tmp, out;
-    unsigned ix;
-
-    out = vec_00;
-
-/*     DEBUG_CIPHER_VECTOR ("state", state); */
-    lo = AESBCMEMBER(VecAnd) (state, vec_0F);
-/*     DEBUG_CIPHER_VECTOR ("lo", lo); */
-#if USE_VEC_REG
-    hi = op_PSRLDI128 (state, 4);
-/*     DEBUG_CIPHER_VECTOR ("hi", hi); */
-    hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
-/*     DEBUG_CIPHER_VECTOR ("hi", hi); */
-#else
-    hi = AESBCMEMBER(VecDiv) (state, vec_10);
-/*     DEBUG_CIPHER_VECTOR ("hi", hi); */
-#endif
-
-    for (ix = 0; ix < sizeof (state); ++ix)
-    {
-        tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
-/*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
-        tmp = AESBCMEMBER(VecOr) (lo, tmp);
-/*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
-        tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
-/*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
-        out = AESBCMEMBER(VecOr) (out, tmp);
-/*         DEBUG_CIPHER_VECTOR ("out", out); */
-        hi  = AESBCMEMBER(VecSub) (hi, vec_01);
-/*         DEBUG_CIPHER_VECTOR ("hi", hi); */
-        hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
-/*         DEBUG_CIPHER_VECTOR ("hi", hi); */
-    }
-/*     DEBUG_CIPHER_VECTOR ("out", out); */
-    return out;
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
-{
-    return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelSBoxV));
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
-{
-    return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelInvSBoxV));
-}
-
-
-/* ======================================================================
- * FIPS-197 5.1.3
- */
-
-/*
- * there are no psllb or psrlb instructions so shift words not bytes
- * and then cut off bits that would have been zeroed if there were
- * such instructions
- *
- * 
- */
-static const CipherVec FF_tab = 
-{ 0x00, 0x1B, 0x36, 0x2D, 0x6C, 0x77, 0x5A, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
-{
-    CipherVec sl, sr;
-
-    assert (bits <= 8);
-
-    DEBUG_CIPHER_VECTOR ("state", state);
-    sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
-    DEBUG_CIPHER_VECTOR ("sr", sr);
-    sl = AESBCMEMBER(VecSLLBI) (state, bits);
-    DEBUG_CIPHER_VECTOR ("sl", sl);
-    sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
-    return AESBCMEMBER(VecXor)(sl, sr);
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul_02) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul_02) (register CipherVec state)
-{
-    DEBUG_CIPHER_VECTOR ("state", state);
-
-    state =  AESBCMEMBER(FF_mul) (state, 1);
-    DEBUG_CIPHER_VECTOR ("state", state);
-
-    return state;
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
-{
-    DEBUG_CIPHER_VECTOR ("state", state);
-
-    state =  AESBCMEMBER(FF_mul) (state, 2);
-    DEBUG_CIPHER_VECTOR ("state", state);
-
-    return state;
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
-{
-    DEBUG_CIPHER_VECTOR ("state", state);
-
-    state =  AESBCMEMBER(FF_mul) (state, 3);
-    DEBUG_CIPHER_VECTOR ("state", state);
-
-    return state;
-}
-
-
-static AESByte AESBCMEMBER(FFtable)[] = { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41 };
-
-
-static __inline__ 
-AESByte AESBCMEMBER(FFtab) (uint8_t x)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-AESByte AESBCMEMBER(FFtab) (uint8_t x)
-{
-    return AESBCMEMBER(FFtable)[x];
-}
-
-
-static __inline__ 
-AESByte AESBCMEMBER(FFmul02) (AESByte b)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-AESByte AESBCMEMBER(FFmul02) (AESByte b)
-{
-    return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
-}
-
-
-static __inline__ 
-AESByte AESBCMEMBER(FFmul04) (AESByte b)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-AESByte AESBCMEMBER(FFmul04) (AESByte b)
-{
-    return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
-}
-
-
-static __inline__ 
-AESByte AESBCMEMBER(FFmul08) (AESByte b)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-AESByte AESBCMEMBER(FFmul08) (AESByte b)
-{
-    return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-{
-    register CipherVec c0, c1, c2, c3;
-    
-    c1 = AESBCMEMBER(RotBytesLeft) (state);
-    c2 = AESBCMEMBER(RotBytesLeft) (c1);
-    c3 = AESBCMEMBER(RotBytesLeft) (c2);
-    c0 = AESBCMEMBER(VecXor) (state, c1);
-
-
-#if USE_VEC_REG
-    c0 = AESBCMEMBER(FF_mul_02) (c0);
-#else
-    {
-        CipherVec_AES_u tmp;
-        unsigned ix;
-
-        tmp.state = c0;
-    
-        for (ix = 0; ix < sizeof tmp; ++ix)
-            tmp.bytes[ix] = AESBCMEMBER(FFmul02)(tmp.bytes[ix]);
-        c0 = tmp.state;
-    }
-#endif
-    c1 = AESBCMEMBER(VecXor) (c1, c2);
-    c1 = AESBCMEMBER(VecXor) (c1, c3);
-    c1 = AESBCMEMBER(VecXor) (c1, c0);
-
-    return c1;
-/* obsoleted 
-    CipherVec_AES_u in, out;
-    unsigned ix;
-
-    in.state = state;
-
-    for (ix = 0; ix < sizeof (out.bytes); ix += 4)
-    {
-        unsigned const s0 = in.bytes[ix + 0];
-        unsigned const s1 = in.bytes[ix + 1];
-        unsigned const s2 = in.bytes[ix + 2];
-        unsigned const s3 = in.bytes[ix + 3];
-
-        out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1);
-        out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2);
-        out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3);
-        out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0);
-    }
-    return out.state;
-*/
-}
-
-static __inline__
-CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-{
-#if USE_AES_NI
-    state = op_AESIMC (state);
-#else
-    register CipherVec r1, r2, r3, f2, f4, f8;
-
-    r1 = AESBCMEMBER(RotBytesLeft) (state);
-    r2 = AESBCMEMBER(RotBytesLeft) (r1);
-    r3 = AESBCMEMBER(RotBytesLeft) (r2);        
-
-    f4 = AESBCMEMBER(VecXor) (state, r2);
-    f2 = AESBCMEMBER(VecXor) (state, r1);
-    f8 = AESBCMEMBER(VecXor) (r2, r3);
-    state = AESBCMEMBER(VecXor) (f8, r1);
-    f8 = AESBCMEMBER(VecXor) (f8, f2);
-
-
-#if USE_VEC_REG
-    f2 = AESBCMEMBER(FF_mul) (f2,1);
-    f4 = AESBCMEMBER(FF_mul) (f4,2);
-    f8 = AESBCMEMBER(FF_mul) (f8,3);
-#else
-    {
-        CipherVec_AES_u fu2, fu4, fu8;
-        unsigned ix;
-
-        fu2.state = f2;
-        fu4.state = f4;
-        fu8.state = f8;
-
-        for (ix = 0; ix < sizeof fu2; ++ix)
-        {
-            fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
-            fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
-            fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
-        }
-        f2 = fu2.state;
-        f4 = fu4.state;
-        f8 = fu8.state;
-    }
-#endif
-
-    state = AESBCMEMBER(VecXor) (state, f2);
-    state = AESBCMEMBER(VecXor) (state, f4);
-    state = AESBCMEMBER(VecXor) (state, f8);
-
-#endif
-
-    return state;
-/*
-    CipherVec_AES_u in, out;
-    unsigned ix;
-
-    in.state = state;
-
-    for (ix = 0; ix < sizeof (out.bytes); ix += AES_Nb)
-    {
-        AESWord s0 = in.bytes[ix + 0];
-        AESWord s1 = in.bytes[ix + 1];
-        AESWord s2 = in.bytes[ix + 2];
-        AESWord s3 = in.bytes[ix + 3];
-        AESWord p, q;
-
-        q =     AESBCMEMBER(FFmul08)(s0 ^ s1 ^ s2 ^ s3);
-        p = q ^ AESBCMEMBER(FFmul04)(s0 ^ s2);
-        q = q ^ AESBCMEMBER(FFmul04)(s1 ^ s3);
-
-        out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1) ^ p;
-        out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2) ^ q;
-        out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3) ^ p;
-        out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0) ^ q;
-    }
-
-    return out.state;
-*/
-}
-
-
-/* ======================================================================
- * FIPS-197 5.2
- */
-static const
-AESWord AESBCMEMBER(Rcon)[] = {
-    0x00000001, 0x00000002, 0x00000004, 0x00000008,
-    0x00000010, 0x00000020, 0x00000040, 0x00000080,
-    0x0000001B, 0x00000036
-};
-
-
-static __inline__
-AESWord AESBCMEMBER(RotWord) (AESWord w)
-    __attribute__ ((always_inline));
-
-static __inline__
-AESWord AESBCMEMBER(RotWord) (AESWord w)
-{
-    return (w >> 8) | (w << 24);
-}
-
-
-static __inline__
-AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-    __attribute__ ((always_inline));
-
-static __inline__
-AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-{
-    /*
-     * not portable to architectures which require aligned multibyte reads
-     * but as this only runs on Intel at this point it is fine for now
-     */
-    return *(AESWord*)pointer;
-}
-
-
-
-static __inline__
-void AESBCMEMBER(KeyExpansion) (CipherVec * r, const AESByte * key, unsigned Nr, unsigned Nk)
-{
-    AESWord * w = (AESWord*)r;
-    const AESWord * pRcon;
-    unsigned ix, limit;
-    AESWord temp;
-
-
-    DEBUG_KEYEXP(("%s (w (%p), key (%p), Nr (%u) Nk (%u))\n", __func__, w, key, Nr, Nk));
-
-    for (ix = 0; ix < Nk; ++ix)
-    {
-        DEBUG_KEYEXP(("i (dec): %u\n", ix));
-        temp = AESBCMEMBER(GetWord) (key+(ix*4));
-        w[ix] = temp;
-        DEBUG_KEYEXP(("kw[%i]: %0.8x\n", ix, temp));
-    }
-
-    limit = AES_Nb * (Nr + 1);
-    pRcon = AESBCMEMBER(Rcon);
-    DEBUG_KEYEXP(("Nk (%u) Nr (%u) limit (%u)\n", Nk, Nr, limit));
-        
-    for (; ix < limit; ++ix)
-    {
-
-        DEBUG_KEYEXP(("i (dec): %u %u\n", ix, limit));
-
-        /* temp should already be set */
-        DEBUG_KEYEXP(("temp: %0.8x\n", temp));
-        if ((ix % Nk) == 0)
-        {
-            temp = AESBCMEMBER(RotWord)(temp);
-            DEBUG_KEYEXP(("after RotWord: %0.8x \n", temp));
-            temp = AESBCMEMBER(SubWord) (temp);
-            DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-            DEBUG_KEYEXP(("Rcon [i/Nk]: %0.8x\n", *pRcon));
-            temp ^= *pRcon++;
-            DEBUG_KEYEXP(("after XOR with Rcon: %0.8x \n", temp));
-        }
-        else if ((Nk > 6) && ((ix % Nk) == 4))
-        {
-            temp = AESBCMEMBER(SubWord) (temp);
-            DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-        }
-        DEBUG_KEYEXP(("w[i-Nk]: %0.8x\n", w[ix-Nk]));
-        temp ^= w [ix - Nk];
-        DEBUG_KEYEXP(("kw[ix]: %0.8x\n", temp));
-        w [ix] = temp;
-    }
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-{
-#if (USE_VEC_REG)
-    static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
-    return AESBCMEMBER(PackShuffleBytes) (state, mask);
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-    temp.columns[3] = temp.columns[2];
-    temp.columns[2] = temp.columns[1];
-    temp.columns[1] = temp.columns[0];
-    temp.columns[0] = 0;
-    return temp.state;
-#endif
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-{
-#if (USE_VEC_REG)
-    static const CipherVec mask = { 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
-    return AESBCMEMBER(PackShuffleBytes) (state, mask);
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-    temp.columns[0] = temp.columns[2];
-    temp.columns[1] = temp.columns[3];
-    temp.columns[2] = 0;
-    temp.columns[3] = 0;
-    return temp.state;
-#endif
-}
-
-
-static __inline__
-CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-{
-#if (USE_VEC_REG)
-    static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7 };
-    return AESBCMEMBER(PackShuffleBytes) (state, mask);
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-    temp.columns[3] = temp.columns[2];
-    temp.columns[2] = temp.columns[1];
-    temp.columns[1] = temp.columns[0];
-    temp.columns[0] = 0;
-    return temp.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *
- * output vector in words
- *     W3:W3:W3:W3
- */
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-{
-#if (USE_VEC_REG)
-    return op_PSHUFD128 (state,0xFF);
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-    temp.columns[2] = temp.columns[3];
-    temp.columns[1] = temp.columns[3];
-    temp.columns[0] = temp.columns[3];
-    return temp.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *
- * output vector in words
- *     W2:W2:W2:W2
- */
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-{
-#if (USE_VEC_REG)
-    return op_PSHUFD128 (state,0xAA);
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-    temp.columns[3] = temp.columns[2];
-    temp.columns[1] = temp.columns[2];
-    temp.columns[0] = temp.columns[2];
-    return temp.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *
- * output vector in words
- *     W2:W2:W2:W2
- */
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-{
-#if (USE_VEC_REG)
-    return op_PSHUFD128 (state,0x55);
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-    temp.columns[3] = temp.columns[1];
-    temp.columns[2] = temp.columns[1];
-    temp.columns[0] = temp.columns[1];
-    return temp.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *
- * output vector in words
- *     W0:W0:W0:W0
- */
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-{
-#if (USE_VEC_REG)
-    return op_PSHUFD128 (state,0x00);
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-    temp.columns[3] = temp.columns[0];
-    temp.columns[2] = temp.columns[0];
-    temp.columns[1] = temp.columns[0];
-    return temp.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *     X0:X1:X2:X3
- *
- * output vector in words
- *     W0:W1:X0:X1
- */
-static __inline__
-CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-{
-#if USE_VEC_REG
-    return op_SHUFPD (w, x, 0x00);
-#else
-    CipherVec_AES_u ww;
-    CipherVec_AES_u xx;
-
-    ww.state = w;
-    xx.state = x;
-
-    ww.columns[2] = xx.columns[0];
-    ww.columns[3] = xx.columns[1];
-
-    return ww.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *     X0:X1:X2:X3
- *
- * output vector in words
- *     X2:X3:W0:W1
- */
-static __inline__
-CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-{
-#if USE_VEC_REG
-    return op_SHUFPD (w, x, 0x01);
-#else
-    CipherVec_AES_u ww;
-    CipherVec_AES_u xx;
-
-    ww.state = w;
-    xx.state = x;
-
-    ww.columns[0] = ww.columns[2];
-    ww.columns[1] = ww.columns[3];
-    ww.columns[2] = xx.columns[0];
-    ww.columns[3] = xx.columns[1];
-
-    return ww.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *     X0:X1:X2:X3
- *
- * output vector in words
- *     X2:X3:W0:W1
- */
-static __inline__
-CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-{
-#if USE_VEC_REG
-    return op_SHUFPD (v0, v1, 0x02);
-#else
-    CipherVec_AES_u t0;
-    CipherVec_AES_u t1;
-
-    t0.state = v0;
-    t1.state = v1;
-
-    t0.columns[2] = t0.columns[0];
-    t0.columns[3] = t0.columns[1];
-    t0.columns[0] = t1.columns[2];
-    t0.columns[1] = t1.columns[3];
-
-    return t0.state;
-#endif
-}
-
-
-/*
- * incoming vector in words
- *     W0:W1:W2:W3
- *
- * output vector in words
- *     W0:W0^W1:W0^W1^W2:W0^W1^W2^W3
- */
-static __inline__
-CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-{
-#if USE_VEC
-    register CipherVec shift = state;
-
-    state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-    state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-    state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-
-    return state;
-#else
-    CipherVec_AES_u temp;
-
-    temp.state = state;
-
-    temp.columns[1] ^= temp.columns[0];
-    temp.columns[2] ^= temp.columns[1];
-    temp.columns[3] ^= temp.columns[2];
-
-    return temp.state;
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-{
-#if (USE_AES_NI)
-    return op_AESKEYGENASSIST (state, rcon);
-#else
-    CipherVec_AES_u in;
-    CipherVec_AES_u out;
-    AESWord rconw;
-
-    rconw = (AESWord)(AESByte)rcon;
-    in.state = state;
-
-    out.columns[0] = AESBCMEMBER(SubWord)(in.columns[1]);
-    out.columns[1] = AESBCMEMBER(RotWord)(out.columns[0]) ^ rconw;
-    out.columns[2] = AESBCMEMBER(SubWord)(in.columns[3]);
-    out.columns[3] = AESBCMEMBER(RotWord)(out.columns[2]) ^ rconw;
-
-    return out.state;
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-{
-#if (USE_AES_NI)
-    register CipherVec tmp = state;
-    tmp = op_AESKEYGENASSIST (tmp, rcon);
-    return  AESBCMEMBER(StateDupColumn1) (tmp);
-#else
-    CipherVec_AES_u u;
-    AESWord rconw;
-    AESWord temp;
-
-    rconw = (AESWord)(AESByte)rcon;
-    u.state = state;
-    temp  = AESBCMEMBER(SubWord)(u.columns[1]);
-    temp  = AESBCMEMBER(RotWord)(temp);
-    temp ^= rconw;
-
-    u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-    return u.state;
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-{
-#if (USE_AES_NI)
-    register CipherVec tmp = state;
-    tmp = op_AESKEYGENASSIST (tmp, 0);
-    return  AESBCMEMBER(StateDupColumn2) (tmp);
-#else
-    CipherVec_AES_u u;
-    AESWord temp;
-
-    u.state = state;
-    temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-
-    u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-    return u.state;
-#endif
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-{
-#if (USE_AES_NI)
-    register CipherVec tmp = state;
-    tmp = op_AESKEYGENASSIST (tmp, rcon);
-    return  AESBCMEMBER(StateDupColumn3) (tmp);
-
-#else
-    register CipherVec vrcon;
-    register CipherVec tmp;
-
-    vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
-    tmp = AESBCMEMBER(SubBytes) (state);
-    DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-    tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-    DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-    tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
-    DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-    tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-    DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-    return tmp;
-
-#endif
-/*
-#elif USE_VEC && 1
-    register CipherVec tmp;
-    CipherVec_AES_u u;
-    
-    u.columns [3] = rcon;
-
-    tmp = AESBCMEMBER(SubBytes) (state);
-    DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-    tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-    DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-    tmp = AESBCMEMBER(VecXor)(tmp, u.state);
-    DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-    tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-    DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-    return tmp;
-
-#else
-    CipherVec_AES_u u;
-    AESWord rconw;
-    AESWord temp;
-
-    rconw = (AESWord)(AESByte)rcon;
-    u.state = state;
-    temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-    temp  = AESBCMEMBER(RotWord)(temp);
-    temp ^= rconw;
-
-    u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-    return u.state;
-#endif
-*/
-}
-
-
-#if USE_VEC
-static __inline__
-void AESBCMEMBER(KeyExpansion128) (CipherVec * round_keys, const AESByte * key)
-{
-    CipherVec state;
-    CipherVec kgastate;
-
-    state = AESBCMEMBER(StateIn) (key);
-    round_keys[0] = state;
-
-#define KE128(rcon,offset) \
-    kgastate = AESBCMEMBER(AesKeyGenAssistColumn3) (state, rcon); \
-    state = AESBCMEMBER(ShiftXorColumns) (state); \
-    state ^= kgastate; \
-    round_keys[offset] = state
-
-    KE128(0x01,1);
-    KE128(0x02,2);
-    KE128(0x04,3);
-    KE128(0x08,4);
-    KE128(0x10,5);
-    KE128(0x20,6);
-    KE128(0x40,7);
-    KE128(0x80,8);
-    KE128(0x1B,9);
-    KE128(0x36,10);
-}
-#else
-static __inline__
-void AESBCMEMBER(KeyExpansion128) (CipherVec * w, const AESByte * key)
-{
-    OUTMSG(("\n\n\n%s: Not my code\n\n\n",__func__));
-    AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_128, AES_Nk_128);
-}
-#endif
-
-
-#if USE_VEC
-static __inline__
-void AESBCMEMBER(KeyExpansion192) (CipherVec * round_keys, const AESByte * key)
-{
-    /* work on three blocks at a time which is two Nr worth
-     * we'll build it with 6 words in v0:v1 and 6 words in w0:w1
-     * but move them them into v0:v1:v2 before writing them to
-     * the key schedule
-     */
-
-    register CipherVec v0, v1, v2, v3, v4;
-    register CipherVec k;          /* we'll only need one of the key gen assist blocks at a time */
-
-/* pattern 0 */
-    v0  = AESBCMEMBER(StateIn) (key);              /* k0    : k1    : k2     : k3           */
-    v1  = AESBCMEMBER(StateIn) (key+8);            /* k2    : k3    : k4     : k5           */
-    v1  = AESBCMEMBER(StateShiftRight64) (v1);     /* k4    : k5    : 0      : 0            */
-
-    round_keys[0] = v0; /* K0:K1:K2:K3 */
-
-/* pattern 1 */
-/* start the working pattern with 6 ready words in v0:v1 */
-
-    k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-        (k = v1, 0x01);                            /* F(k5) : F(k5) : F(k5)  : F(k5)        */
-    v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k0    : k0^k1 :k0^k1^k2:k0^k1^k2^k3   */
-    v3 ^= k;                                       /* k6    : k7    : k8     : k9           */
-    v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k4    : k4^k5 : k4^k5  : k4^k5        */
-    k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k9    : k9    : k9     : k9           */
-    v4 ^= k;                                       /* k10   : k11   : k10    : k11          */
-    v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k4    : k5    : k6     : k7           */
-    round_keys[1] = v1; /* K4:K5:K6:K7 */
-
-    v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k8    : k9    : k10    : k11          */
-    round_keys[2] = v2; /* K8:K9:K10:K11 */
-
-/* pattern 2 */
-    v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k6    : k6^k7 :k6^k7^k8:k6^k7^k8^k9   */
-    v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k10   :k10^k11: k10^k11: k10^k11      */
-    k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-        (k = v2,0x02);                             /* F(k11): F(k11): F(k11) : F(k11)       */
-    v0 ^= k;                                       /* k12   : k13   : k14    : k15          */
-    round_keys[3] = v0; /* K12:K13:K14:K15 */
-    k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k15   : k15   : k15    : k15          */
-    v1 ^= k;                                       /* k16   : k17   : k16    : k17          */
-
-
-/* pattern 1 */
-/* start the working pattern with 6 ready words in v0:v1 */
-
-    k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-        (k = v1,0x04);                             /* F(k17): F(k17): F(k17) : F(k17)       */
-    v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k12   :k12^k13:k12^k13^k14:k12^k13^k14^k15 */
-    v3 ^= k;                                       /* k18   : k19   : k20    : k21          */
-    v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k16   :k16^k17: k17    : 0            */
-    k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k21   : k21   : k21    : k21          */
-    v4 ^= k;                                       /* k22   : k23   : x      : x            */
-    v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k16   : k17   : k18    : k19          */
-    round_keys[4] = v1; /* K16:K17:K18:K19 */
-
-    v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k20   : k21   : k22    : k23          */
-    round_keys[5] = v2; /* K20:K21:K22:K23 */
-
-/* pattern 2 */
-    v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k18   :k18^k19:k18^k19^k20:k18^k19^k20^k21 */
-    v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k22   :k22^k23: k23    : 0            */
-    k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-        (k = v2,0x08);                             /* F(k23): F(k23): F(k23) : F(k23)       */
-    v0 ^= k;                                       /* k24   : k25   : k26    : k27          */
-    k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k27   : k27   : k27    : k27          */
-    v1 ^= k;                                       /* k28   : k29   : x      : x            */
-
-    round_keys[6] = v0; /* K24:K25:K26:K27 */
-
-/* pattern 1 4-15 = 28-39 */
-/* start the working pattern with 6 ready words in v0:v1 */
-
-    k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-        (k = v1,0x10);                             /* F(k29): F(k29): F(k29) : F(k29)       */
-    v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k24   :k24^k25:k24^k25^k26:k24^k25^k26^k27 */
-    v3 ^= k;                                       /* k30   : k31   : k32    : k33          */
-    v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k26   :k28^k29: k29    : 0            */
-    k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k33   : k33   : k33    : k33          */
-    v4 ^= k;                                       /* k34   : k35   : x      : x            */
-    v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k28   : k29   : k30    : k31          */
-
-    round_keys[7] = v1; /* K28:K29:K30:K31 */
-
-    v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k32   : k33   : k34    : k35          */
-    round_keys[8] = v2; /* K32:K33:K34:K35 */
-/* pattern 2 */
-    v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k30   :k30^k31:k30^k31^k32:k30^k31^k32^k33 */
-    v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k26   :k26^k27: k27    : 0            */
-    k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-        (k = v2,0x20);                             /* F(k35): F(k35): F(k35) : F(k35)       */
-    v0 ^= k;                                       /* k36   : k37   : k38    : k39          */
-    k   = AESBCMEMBER(StateDupColumn3) (v0);       /* k39   : k39   : k39    : k39          */
-    v1 ^= k;                                       /* k40   : k41   : x      : x            */
-
-    round_keys[9] = v0; /* K36:K37:K38:K39 */
-
-/* pattern 1 4-15 = 40-55 but we only need through 51 so we change from pattern 2 to pattern 3 */
-/* start the working pattern with 6 ready words in v0:v1 */
-
-    k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-        (k = v1,0x40);                             /* F(k41): F(k41): F(k41) : F(k41)       */
-    v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k36   :k36^k37:k36^k37^k38:k36^k37^k38^k39 */
-    v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k40   :k40^k41: x   5  : x            */
-    v3 ^= k;                                       /* k42   : k43   : k44    : k45          */
-    k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k45   : k45   : k45    : k45          */
-    v4 ^= k;                                       /* k46   : k47   : x      : x            */
-    v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k40   : k41   : k42    : k43          */
-    round_keys[10] = v1; /* K40:K41:K42:K43 */
-    v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k44   : k45   : k46    : k47          */
-    round_keys[11] = v2; /* K44:K45:K46:K47 */
-
-/* pattern 3 */
-    v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k42   :k42^k43:k42^k43^k44:k42^k43^k44^k45  */
-    k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-                                       (v2,0x80);  /* F(k47): F(k47): F(k47) : F(k47)       */
-    v0 ^= k;                                       /* k48   : k49   : k50    : k51          */
-    round_keys[12] = v0;                           /* K48:K49:K50:K51 */
-}
-#else
-static __inline__
-void AESBCMEMBER(KeyExpansion192) (CipherVec * w, const AESByte * key)
-{
-    AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_192, AES_Nk_192);
-}
-#endif
-
-
-
-
-/* ----- */
-
-#if USE_VEC || 1
-static __inline__
-void AESBCMEMBER(KeyExpansion256) (CipherVec * round_keys, const AESByte * key)
-{
-    CipherVec v0, v1;
-    CipherVec k;
-
-    v0 = AESBCMEMBER (StateIn) (key);
-    v1 = AESBCMEMBER (StateIn) (key + sizeof v0);
-
-    round_keys[0] = v0; /* k0  : k1  : k2  : k3  */
-    round_keys[1] = v1; /* k4  : k5  : k6  : k7  */
-
-#define KE256_1(offset,rcon)                            \
-    k   = AESBCMEMBER(AesKeyGenAssistColumn3)(v1,rcon); \
-    v0  = AESBCMEMBER(ShiftXorColumns) (v0);            \
-    v0  = AESBCMEMBER(VecXor) (v0, k);                  \
-    round_keys[offset] = v0
-
-#define KE256_2(offset) \
-    k   = AESBCMEMBER(AesKeyGenAssistColumn2)(v0);      \
-    v1  = AESBCMEMBER(ShiftXorColumns) (v1);            \
-    v1  = AESBCMEMBER(VecXor) (v1, k);                  \
-    round_keys[offset] = v1
-
-    KE256_1(2,0x01);    /* k8  : k9  : k10 : k11 */
-    KE256_2(3);         /* k12 : k13 : k14 : k15 */
-    KE256_1(4,0x02);    /* k16 : k17 : k18 : k19 */
-    KE256_2(5);         /* k20 : k21 : k22 : k23 */
-    KE256_1(6,0x04);    /* k24 : k25 : k26 : k27 */
-    KE256_2(7);         /* k28 : k29 : k30 : k31 */
-    KE256_1(8,0x08);    /* k32 : k33 : k34 : k35 */
-    KE256_2(9);         /* k36 : k37 : k38 : k39 */
-    KE256_1(10,0x10);   /* k40 : k41 : k42 : k43 */
-    KE256_2(11);        /* k44 : k45 : k46 : k47 */
-    KE256_1(12,0x20);   /* k48 : k49 : k50 : k51 */
-    KE256_2(13);        /* k52 : k53 : k54 : k55 */
-    KE256_1(14,0x40);   /* k56 : k57 : k58 : k59 */
-}
-#else
-static __inline__
-void AESBCMEMBER(KeyExpansion256) (CipherVec * w, const AESByte * key)
-{
-    AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_256, AES_Nk_256);
-}
-#endif
-
-
-static __inline__
-void AESBCMEMBER(EqInvKeyExpansion) (CipherVec * r, const CipherVec * dr, unsigned Nr)
-{
-    unsigned ix, jx;
-
-    jx = Nr;
-    ix = 0;
-    r[ix++] = dr[jx--];
-    while (jx)
-        r[ix++] = AESBCMEMBER(InvMixColumns)(dr[jx--]);
-    r[ix] = dr[jx];
-}
-
-
-static __inline__
-void AESBCMEMBER(EqInvKeyExpansion128) (CipherVec * w, const CipherVec * kw)
-{
-    AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_128);
-}
-
-
-static __inline__
-void AESBCMEMBER(EqInvKeyExpansion192) (CipherVec * w, const CipherVec * kw)
-{
-    AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_192);
-}
-
-
-static __inline__
-void AESBCMEMBER(EqInvKeyExpansion256) (CipherVec * w, const CipherVec * kw)
-{
-    AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_256);
-}
-
-
-/*
- * Cipher First Round
- */
-static __inline__ 
-CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-{
-    DEBUG_CIPHER_VECTOR("Start of Round", state);
-
-    DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-
-    state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-
-    DEBUG_CIPHER_VECTOR("End 1st Round", state);
-
-    return state;
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-                                    register const CipherVec round_keys)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-                                    register const CipherVec round_keys)
-{
-#if _DEBUGGING
-    CipherVec mstate;
-    CipherVec mround_keys;
-
-    mstate = state;
-    mround_keys = round_keys;
-
-    DEBUG_CIPHER_VECTOR("Start of Round", mstate);
-
-#endif
-
-#if USE_AES_NI
-    state = op_AESENC (state, round_keys);
-#else
-    state = AESBCMEMBER(SubBytes) (state);
-
-    DEBUG_CIPHER_VECTOR("After SubBytes", state);
-
-    state = AESBCMEMBER(ShiftRows) (state);
-
-    DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-
-    state = AESBCMEMBER(MixColumns) (state);
-
-    /* ommited n on purpose */
-    DEBUG_CIPHER_VECTOR("After MixColum", state);
-
-    state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-#endif
-    DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-    DEBUG_CIPHER_VECTOR("End of Round", state);
-
-    return state;
-}
-
-
-static __inline__ 
-CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-    __attribute__ ((always_inline));
-
-static __inline__ 
-CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-{
-    DEBUG_CIPHER_VECTOR("Start of Round", state);
-
-#if USE_AES_NI
-    state = op_AESENCLAST (state, round_keys);
-#else
-    state = AESBCMEMBER(SubBytes) (state);
-
-    DEBUG_CIPHER_VECTOR("After SubBytes", state);
-
-    state = AESBCMEMBER(ShiftRows) (state);
-
-    DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-
-    state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-#endif
-    DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-    DEBUG_CIPHER_VECTOR("End of Round", state);
-
-    return state;
-}
-
-
-/* ----------------------------------------------------------------------
- * Cipher
- */
-/*
- * 
-This implementation as stated
- * above for simplifaction broke out the three types of rounds into
- * first round, middle rounds, and last round.  This approach was taken
- * for ease of coding for optimization using smaller bytes of code
- * but inlining of the functions for efficiency
- */
-static __inline__ 
-CipherVec AESBCMEMBER(Cipher) (CipherVec state, const CipherVec * key,
-                            unsigned Nr)
-{
-    unsigned ix = 0;
-
-    state = AESBCMEMBER(FirstRound) (state, key[ix++]);
-
-    for ( ; ix < Nr; ++ix)
-        state = AESBCMEMBER(MiddleRound) (state, key[ix] );
-
-    return AESBCMEMBER(LastRound) (state, key[ix]);
-}
-
-
-/* 
- * Section 5.1 of FIPS 197
- *
- *   This set of routines implements our structured wrapping of the 
- *   FIPS-197 Section 5.3.5 Equivalent Inverse Cipher.  In particular
- *   figure 15 Pseudo Code for the Equivalent Inverse Cipher.
- *
- *   The FIPS pseudocode has a single function which we have broken out 
- *   into three kinds of rounds - first round, middle rounds and last
- *   round as we have also done with the cipher rountine.
- *
- *   The EqInvCipher operates on whole cipher blocks so the Byte and Block
- *   code is the same here until subroutines of the round functions are
- *   called.  
- */
-
-/* 
- * First round of equivalent inverse cipher is merely an XOR against the
- * round key.
- */
-static __inline__
-CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-{
-    DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-
-    state =  AESBCMEMBER(AddRoundKey) (state, round_keys);
-
-    DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-    DEBUG_INVCIPHER_VECTOR("End of Round", state);
-    return state;
-}
-
-
-/*
- * middle rounds of the equivalent inverse cipher perform four steps
- *   InvSubBytes (inverse substitute bytes
- *   InvShiftRows (inverse shift rows
- *   InvMixColumns (inverse mix columns)
- *   AddRoundKey   (xor against the round key)
- *
- * the AES-NI instruction set from until implments all four steps with 
- * a single instruction
- */
-
-static __inline__
-CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-                                         register CipherVec round_keys)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-                                         register CipherVec round_keys)
-{
-#if _DEBUGGING
-    CipherVec mstate;
-    CipherVec mround_keys;
-
-    mstate = state;
-    mround_keys = round_keys;
-#endif
-
-    DEBUG_INVCIPHER_VECTOR("Start of Round", mstate);
-
-    /* 
-     * AES-NI implmentation
-     */
-#if USE_AES_NI
-
-    state = op_AESDEC (state, round_keys);
-
-#else /* #if USE_AES_NI */
-
-    /*
-     * All other implementations
-     */
-    state = AESBCMEMBER(InvSubBytes) (state);
-
-# if _DEBUGGING
-    mstate = state;
-
-    DEBUG_INVCIPHER_VECTOR("After InvSubBy", mstate);
-# endif
-
-    state = AESBCMEMBER(InvShiftRows) (state);
-
-# if _DEBUGGING
-    mstate = state;
-
-    DEBUG_INVCIPHER_VECTOR("After InvShift", mstate);
-# endif
-
-    state = AESBCMEMBER(InvMixColumns) (state);
-
-# if _DEBUGGING
-    mstate = state;
-
-    DEBUG_INVCIPHER_VECTOR("After InvMixCo", mstate);
-# endif
-
-    state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-#endif
-
-#if _DEBUGGING
-    mstate = state;
-
-    DEBUG_INVCIPHER_VECTOR("Round Key", mround_keys);
-
-    DEBUG_INVCIPHER_VECTOR("End of Round", mstate);
-#endif /* #if USE_AES_NI */
-
-    return state;
-}
-
-
-/*
- * The final round of the equivalent inverse cipher is the same as 
- * the middle rounds with the ommission of the InvMixColumns step.
- */
-static __inline__
-CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-                                       register CipherVec round_keys)
-    __attribute__ ((always_inline));
-
-static __inline__
-CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-                                       register CipherVec round_keys)
-{
-    DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-
-#if USE_AES_NI
-    state = op_AESDECLAST (state, round_keys);
-#else
-
-    state = AESBCMEMBER(InvSubBytes) (state);
-
-    DEBUG_INVCIPHER_VECTOR("After InvSubBy", state);
-
-    state = AESBCMEMBER(InvShiftRows) (state);
-
-    DEBUG_INVCIPHER_VECTOR("After InvShift", state);
-
-    state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-#endif
-    DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-    DEBUG_INVCIPHER_VECTOR("End of Round", state);
-
-    return state;
-}
-
-
-/*
- * The EqInvCipher functions (is defined in Figure 15 'Pseudo Code for
- * for the Equivalent Inverse Cipher.  This implementation as stated
- * above for simplifaction broke out the three types of rounds into
- * first round, middle rounds, and last round.  This approach was taken
- * for ease of coding for optimization using smaller bytes of code
- * but inlining of the functions for efficiency
- */
-static /*__inline__*/
-CipherVec AESBCMEMBER(EqInvCipher) (CipherVec state, const CipherVec * key,
-                                    unsigned Nr)
-{
-    unsigned ix = 0;
-
-    state = AESBCMEMBER(EqInvFirstRound) (state, key[ix++]);
-
-    for ( ; ix < Nr; ++ix)
-        state = AESBCMEMBER(EqInvMiddleRound) (state, key[ix] );
-
-    return AESBCMEMBER(EqInvLastRound) (state, key[ix]);
-}
-
-
-/* ======================================================================
- * This section of the file is the use of the cipher defined above within
- * our BlockCipherObject.
- *
- * These are the functions that will be directly referenced in the vector
- * table for the block cipher.  These are not specifically derived from
- * the FIPS-197 document.
- */
-#include "blockcipher-impl.h"
-
-typedef struct AES_CLASS AES_CLASS;
-
-static const char AESBCMEMBER(aes_ncbi_name) [] = CLASS_STRING(AES_CLASS);
-
-
-/* ----------------------------------------------------------------------
- * Destroy
- *   How large is the stored key for this cipher?  Not the user key used
- *   to create this key (key schedule)
- *
- *   This is needed by KCipher to know how large the KCipher objecr is at
- *   allocation and to know how much of a buffer each decryption/encryption is
- */
-static
-void AESBCMEMBER(Destroy) (const BLOCKCIPHER_VEC_IMPL * self)
-{
-    /* we use a constant object so do nothing */
-}
-
-
-/* ----------------------------------------------------------------------
- * BlockSize
- */
-static
-uint32_t AESBCMEMBER(BlockSize) ()
-{
-    return (uint32_t) sizeof (AESBlock);
-}
-
-
-/* ----------------------------------------------------------------------
- * KeySize
- *   How large is the stored key for this cipher?  Not the user key used
- *   to create this key (key schedule)
- *
- *   This is needed by KCipher to know how large the KCipher objecr is at
- *   allocation and to know how much of a buffer each decryption/encryption is
- */
-static
-uint32_t AESBCMEMBER(KeySize) ()
-{
-    return (uint32_t) sizeof (AESKeySchedule);
-}
-
-
-/* ----------------------------------------------------------------------
- * SetEncryptKey
- *   The KCipher calls this to have the block cipher build an encryption
- *   key in the KCipher object
- *
- */
-static
-rc_t AESBCMEMBER(SetEncryptKey) (void * encrypt_key, const char * user_key,
-                                 uint32_t user_key_size)
-{
-    rc_t rc;
-    AESKeySchedule * key;
-
-    rc = 0;
-    key = encrypt_key;
-
-    switch (user_key_size)
-    {
-    case AES_Nk_128 * sizeof (AESWord):
-        key->number_of_rounds = AES_Nr_128;
-        AESBCMEMBER(KeyExpansion128) (key->round_keys, (AESByte*)user_key);
-        break;
-
-    case AES_Nk_192 * sizeof (AESWord):
-        key->number_of_rounds = AES_Nr_192;
-        AESBCMEMBER(KeyExpansion192) (key->round_keys, (AESByte*)user_key);
-        break;
-
-    case AES_Nk_256 * sizeof (AESWord):
-        key->number_of_rounds = AES_Nr_256;
-        AESBCMEMBER(KeyExpansion256) (key->round_keys, (AESByte*)user_key);
-        break;
-
-    default:
-        key->number_of_rounds = 0;
-        memset (key, 0, sizeof (*key));
-        rc = RC (rcKrypto, rcBlockCipher, rcUpdating, rcParam, rcInvalid);
-        break;
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * SetDecryptKey
- *   The KCipher calls this to have the block cipher build an decryption
- *   key in the KCipher object
- *
- */
-static
-rc_t AESBCMEMBER(SetDecryptKey) (void * decrypt_key,
-                                 const char * user_key,
-                                 uint32_t user_key_size)
-{
-    AESKeySchedule encrypt_key;
-    rc_t rc;
-
-    rc = AESBCMEMBER(SetEncryptKey) (&encrypt_key, user_key, user_key_size);
-    if (rc == 0)
-    {
-        AESKeySchedule * key;
-
-        key = decrypt_key;
-
-        switch (key->number_of_rounds = encrypt_key.number_of_rounds)
-        {
-        case AES_Nr_128:
-            AESBCMEMBER(EqInvKeyExpansion128) (key->round_keys,
-                                               encrypt_key.round_keys);
-            break;
-
-        case AES_Nr_192:
-            AESBCMEMBER(EqInvKeyExpansion192) (key->round_keys,
-                                               encrypt_key.round_keys);
-            break;
-
-        case AES_Nr_256:
-            AESBCMEMBER(EqInvKeyExpansion256) (key->round_keys,
-                                               encrypt_key.round_keys);
-            break;
-        }
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Encrypt
- *
- *   Perform an encryption of a single block.  Chained modes and stream
- *   cipher modes will call this multiple times.
- *
- */
-static
-CipherVec AESBCMEMBER(Encrypt) (CipherVec state,
-                                const void * encrypt_key)
-{
-    const AESKeySchedule * key = encrypt_key;
-    assert (key);
-
-    switch (key->number_of_rounds)
-    {
-    default:
-        state = vec_00;
-        break;
-
-    case AES_Nr_128:
-        state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_128);
-        break;
-
-    case AES_Nr_192:
-        state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_192);
-        break;
-
-    case AES_Nr_256:
-        state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_256);
-        break;
-    }
-
-    return state;
-}
-
-
-/* ----------------------------------------------------------------------
- * Decrypt
- *
- *   Perform a decryption of a single block.  Chained modes and stream
- *   cipher modes will call this multiple times.
- */
-static
-CipherVec AESBCMEMBER(Decrypt) (CipherVec state,
-                                const void * decrypt_key)
-{
-    const AESKeySchedule * key = decrypt_key;
-
-    assert (key);
-
-    switch (key->number_of_rounds)
-    {
-    default:
-        state = vec_00; /* for an illegal cipher key schedule just write zeroes */
-        break;
-
-    case AES_Nr_128:
-        state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
-                                          AES_Nr_128);
-        break;
-
-    case AES_Nr_192:
-        state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
-                                          AES_Nr_192);
-        break;
-
-    case AES_Nr_256:
-        state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
-                                          AES_Nr_256);
-        break;
-    }
-
-    return state;
-}
-
-
-/* ----------------------------------------------------------------------
- * MakeProcessorSupport
- *
- * Run-time check for support of this particular AES implmentation by
- * checking the flags given via the cpuid instruction.
- */
-static __inline__
-bool AESBCMEMBER(ProcessorSupport) ()
-{
-    uint32_t level = 1, a, b, c, d;
-    bool ret = true;
-
-    __cpuid (level, a, b, c, d);
-
-    DEBUG_OBJECT(("%s: level %x a %x, b %x c %x d %x\n",__func__, level, a,b,c,d));
-
-#if USE_AES_NI
-    /*
-     * Only one flag tells whether the AES-NI instructions
-     * are implmented in this CPU
-     */
-    if ( ! (c & bit_AES))
-    {
-        DEBUG_OBJECT(("%s: failed no AES\n",__func__));
-        ret = false;
-    } else
-#endif
-
-#if USE_VEC_REG
-    /*
-     * Several flags indicate different levels of SSE
-     * instruction implmentation
-     *
-     * we require SSE4.1
-     *
-     * that dates from 2006 so is most likely good enough
-     */
-        /* if ( ! (c & (bit_SSE4_2))
-    {
-        DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-        ret = false;
-    }
-
-    else */
-        if ( ! (c & bit_SSE4_1))
-    {
-        DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-        ret = false;
-    }
-
-    else if ( ! (c & bit_SSSE3))
-    {
-        DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-        ret = false;
-    }
-
-    else if ( ! (c & bit_SSE3))
-    {
-        DEBUG_OBJECT(("%s: failed no SSE3\n",__func__));
-        ret = false;
-    }
-
-    else if ( ! (d & bit_SSE2))
-    {
-        DEBUG_OBJECT(("%s: failed no SSE2\n",__func__));
-        ret = false;
-    }
-
-    else if ( ! (d & bit_SSE))
-    {
-        DEBUG_OBJECT(("%s: failed no SSE\n",__func__));
-        ret = false;
-    }
-#endif
-    DEBUG_OBJECT(("%s: passed\n",__func__));
-    return ret;
-}
-
-
-/* ----------------------------------------------------------------------
- * Init
- *
- *   Initialize the fields of this object.  The derived class will call this
- *   during it's initialization.
- *
- * self      object to initialze
- * vt        the virtual table of the derived class
- * mgr       the cipher manager that is the construction factory block cipher
- *           objects hold references to the manager while the manager merely
- *           points at the block ciphers when all block ciphers are destroyed
- *           the manager loses its references and it too can be destroyed if not
- *           held elsewhere
- * name      ASCIZ c-string the name of this class
- */
-static const
-KBlockCipherVec_vt_v1 AESBCMEMBER(_vt_) = 
-{
-    { 1, 1 },
-
-    AESBCMEMBER(Destroy),
-    AESBCMEMBER(BlockSize),
-    AESBCMEMBER(KeySize),
-    AESBCMEMBER(SetEncryptKey),
-    AESBCMEMBER(SetDecryptKey),
-    AESBCMEMBER(Encrypt),
-    AESBCMEMBER(Decrypt)
-};
-
-
-/* ----------------------------------------------------------------------
- * Make
- *
- * Create a new AES Block Cipher object.
- * The processor is checked to see if this particular version is supported on
- * this particular CPU.
- */
-rc_t AESBCMEMBER(Make) (KBlockCipher ** new_obj)
-{
-    rc_t rc;
-
-    DEBUG_OBJECT(("%s: %p\n",__func__,new_obj));
-
-    /* Check parameter first */
-    if (new_obj == NULL)
-        rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-    {
-        *new_obj = NULL;
-
-        /* check for processor support of this flavor */
-        if ( ! AESBCMEMBER(ProcessorSupport)())
-            rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
-
-        else
-        {
-            rc = 0;
-            *new_obj = (KBlockCipher*)&(AESBCMEMBER(_vt_));
-        }
-    }
-    return rc;
-}
-
-/* end of file lib/krypto/aes-ncbi.c */
diff --git a/libs/krypto/aes-ncbi.vec.pic.o.list b/libs/krypto/aes-ncbi.vec.pic.o.list
deleted file mode 100644
index 243c606..0000000
--- a/libs/krypto/aes-ncbi.vec.pic.o.list
+++ /dev/null
@@ -1,74023 +0,0 @@
-GAS LISTING /tmp/ccMa7HLZ.s 			page 1
-
-
-   1              		.file	"aes-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 3B260000 		.text
-   8      02007101 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.type	bswap_32, @function
-  11              	bswap_32:
-  12              	.LFB509:
-  13              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  25:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** */
-  26:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifndef _h_byteswap_
-  28:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #define _h_byteswap_
-  29:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifdef _BYTESWAP_H
-  31:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #warning "GNU byteswap.h being used"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #else
-  33:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #define _BYTESWAP_H	1234
-  34:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #include <stdint.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  37:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifdef __cplusplus
-  38:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** extern "C" {
-  39:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #endif
-  40:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 2
-
-
-  41:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /* perform single instruction byte swap */
-  42:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** static __inline__ uint16_t bswap_16 ( uint16_t i )
-  43:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** {
-  44:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     register uint16_t rtn;
-  45:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     __asm__
-  46:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     (
-  47:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         "rorw $8, %w0"
-  48:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "=r" ( rtn )
-  49:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "0" ( i )
-  50:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "cc"
-  51:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     );
-  52:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     return rtn;
-  53:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** }
-  54:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  55:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /* perform single instruction byte swap */
-  56:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** static __inline__ uint32_t bswap_32 ( uint32_t i )
-  57:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** {
-  14              		.loc 1 57 0
-  15              		.cfi_startproc
-  16 0000 55       		pushq	%rbp
-  17              	.LCFI0:
-  18              		.cfi_def_cfa_offset 16
-  19 0001 4889E5   		movq	%rsp, %rbp
-  20              		.cfi_offset 6, -16
-  21              	.LCFI1:
-  22              		.cfi_def_cfa_register 6
-  23 0004 53       		pushq	%rbx
-  24 0005 897DF4   		movl	%edi, -12(%rbp)
-  58:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     register uint32_t rtn;
-  59:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     __asm__
-  25              		.loc 1 59 0
-  26 0008 8B45F4   		movl	-12(%rbp), %eax
-  27 000b 89C3     		movl	%eax, %ebx
-  28              		.cfi_offset 3, -24
-  29              	#APP
-  30              	# 59 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h" 1
-  60              	    (
-  61:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         "bswap %0"
-  62:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "=r" ( rtn )
-  63:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "0" ( i )
-  64:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "cc"
-  65:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     );
-  66:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     return rtn;
-  31              		bswap %ebx
-  32              	# 0 "" 2
-  33              		.loc 1 66 0
-  34              	#NO_APP
-  35 000f 89D8     		movl	%ebx, %eax
-  67:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** }
-  36              		.loc 1 67 0
-  37 0011 5B       		popq	%rbx
-  38 0012 C9       		leave
-  39 0013 C3       		ret
-  40              		.cfi_endproc
-  41              	.LFE509:
-  42              		.size	bswap_32, .-bswap_32
-  43              		.section	.rodata
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 3
-
-
-  44              		.align 16
-  45              		.type	vec_00, @object
-  46              		.size	vec_00, 16
-  47              	vec_00:
-  48 0000 00000000 		.zero	16
-  48      00000000 
-  48      00000000 
-  48      00000000 
-  49              		.align 16
-  50              		.type	vec_01, @object
-  51              		.size	vec_01, 16
-  52              	vec_01:
-  53 0010 01       		.byte	1
-  54 0011 01       		.byte	1
-  55 0012 01       		.byte	1
-  56 0013 01       		.byte	1
-  57 0014 01       		.byte	1
-  58 0015 01       		.byte	1
-  59 0016 01       		.byte	1
-  60 0017 01       		.byte	1
-  61 0018 01       		.byte	1
-  62 0019 01       		.byte	1
-  63 001a 01       		.byte	1
-  64 001b 01       		.byte	1
-  65 001c 01       		.byte	1
-  66 001d 01       		.byte	1
-  67 001e 01       		.byte	1
-  68 001f 01       		.byte	1
-  69              		.align 16
-  70              		.type	vec_0F, @object
-  71              		.size	vec_0F, 16
-  72              	vec_0F:
-  73 0020 0F       		.byte	15
-  74 0021 0F       		.byte	15
-  75 0022 0F       		.byte	15
-  76 0023 0F       		.byte	15
-  77 0024 0F       		.byte	15
-  78 0025 0F       		.byte	15
-  79 0026 0F       		.byte	15
-  80 0027 0F       		.byte	15
-  81 0028 0F       		.byte	15
-  82 0029 0F       		.byte	15
-  83 002a 0F       		.byte	15
-  84 002b 0F       		.byte	15
-  85 002c 0F       		.byte	15
-  86 002d 0F       		.byte	15
-  87 002e 0F       		.byte	15
-  88 002f 0F       		.byte	15
-  89              		.align 16
-  90              		.type	vec_10, @object
-  91              		.size	vec_10, 16
-  92              	vec_10:
-  93 0030 10       		.byte	16
-  94 0031 10       		.byte	16
-  95 0032 10       		.byte	16
-  96 0033 10       		.byte	16
-  97 0034 10       		.byte	16
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 4
-
-
-  98 0035 10       		.byte	16
-  99 0036 10       		.byte	16
- 100 0037 10       		.byte	16
- 101 0038 10       		.byte	16
- 102 0039 10       		.byte	16
- 103 003a 10       		.byte	16
- 104 003b 10       		.byte	16
- 105 003c 10       		.byte	16
- 106 003d 10       		.byte	16
- 107 003e 10       		.byte	16
- 108 003f 10       		.byte	16
- 109              		.align 32
- 110              		.type	KAESBlockCipherVecRijndaelSBox, @object
- 111              		.size	KAESBlockCipherVecRijndaelSBox, 256
- 112              	KAESBlockCipherVecRijndaelSBox:
- 113 0040 63       		.byte	99
- 114 0041 7C       		.byte	124
- 115 0042 77       		.byte	119
- 116 0043 7B       		.byte	123
- 117 0044 F2       		.byte	-14
- 118 0045 6B       		.byte	107
- 119 0046 6F       		.byte	111
- 120 0047 C5       		.byte	-59
- 121 0048 30       		.byte	48
- 122 0049 01       		.byte	1
- 123 004a 67       		.byte	103
- 124 004b 2B       		.byte	43
- 125 004c FE       		.byte	-2
- 126 004d D7       		.byte	-41
- 127 004e AB       		.byte	-85
- 128 004f 76       		.byte	118
- 129 0050 CA       		.byte	-54
- 130 0051 82       		.byte	-126
- 131 0052 C9       		.byte	-55
- 132 0053 7D       		.byte	125
- 133 0054 FA       		.byte	-6
- 134 0055 59       		.byte	89
- 135 0056 47       		.byte	71
- 136 0057 F0       		.byte	-16
- 137 0058 AD       		.byte	-83
- 138 0059 D4       		.byte	-44
- 139 005a A2       		.byte	-94
- 140 005b AF       		.byte	-81
- 141 005c 9C       		.byte	-100
- 142 005d A4       		.byte	-92
- 143 005e 72       		.byte	114
- 144 005f C0       		.byte	-64
- 145 0060 B7       		.byte	-73
- 146 0061 FD       		.byte	-3
- 147 0062 93       		.byte	-109
- 148 0063 26       		.byte	38
- 149 0064 36       		.byte	54
- 150 0065 3F       		.byte	63
- 151 0066 F7       		.byte	-9
- 152 0067 CC       		.byte	-52
- 153 0068 34       		.byte	52
- 154 0069 A5       		.byte	-91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 5
-
-
- 155 006a E5       		.byte	-27
- 156 006b F1       		.byte	-15
- 157 006c 71       		.byte	113
- 158 006d D8       		.byte	-40
- 159 006e 31       		.byte	49
- 160 006f 15       		.byte	21
- 161 0070 04       		.byte	4
- 162 0071 C7       		.byte	-57
- 163 0072 23       		.byte	35
- 164 0073 C3       		.byte	-61
- 165 0074 18       		.byte	24
- 166 0075 96       		.byte	-106
- 167 0076 05       		.byte	5
- 168 0077 9A       		.byte	-102
- 169 0078 07       		.byte	7
- 170 0079 12       		.byte	18
- 171 007a 80       		.byte	-128
- 172 007b E2       		.byte	-30
- 173 007c EB       		.byte	-21
- 174 007d 27       		.byte	39
- 175 007e B2       		.byte	-78
- 176 007f 75       		.byte	117
- 177 0080 09       		.byte	9
- 178 0081 83       		.byte	-125
- 179 0082 2C       		.byte	44
- 180 0083 1A       		.byte	26
- 181 0084 1B       		.byte	27
- 182 0085 6E       		.byte	110
- 183 0086 5A       		.byte	90
- 184 0087 A0       		.byte	-96
- 185 0088 52       		.byte	82
- 186 0089 3B       		.byte	59
- 187 008a D6       		.byte	-42
- 188 008b B3       		.byte	-77
- 189 008c 29       		.byte	41
- 190 008d E3       		.byte	-29
- 191 008e 2F       		.byte	47
- 192 008f 84       		.byte	-124
- 193 0090 53       		.byte	83
- 194 0091 D1       		.byte	-47
- 195 0092 00       		.byte	0
- 196 0093 ED       		.byte	-19
- 197 0094 20       		.byte	32
- 198 0095 FC       		.byte	-4
- 199 0096 B1       		.byte	-79
- 200 0097 5B       		.byte	91
- 201 0098 6A       		.byte	106
- 202 0099 CB       		.byte	-53
- 203 009a BE       		.byte	-66
- 204 009b 39       		.byte	57
- 205 009c 4A       		.byte	74
- 206 009d 4C       		.byte	76
- 207 009e 58       		.byte	88
- 208 009f CF       		.byte	-49
- 209 00a0 D0       		.byte	-48
- 210 00a1 EF       		.byte	-17
- 211 00a2 AA       		.byte	-86
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 6
-
-
- 212 00a3 FB       		.byte	-5
- 213 00a4 43       		.byte	67
- 214 00a5 4D       		.byte	77
- 215 00a6 33       		.byte	51
- 216 00a7 85       		.byte	-123
- 217 00a8 45       		.byte	69
- 218 00a9 F9       		.byte	-7
- 219 00aa 02       		.byte	2
- 220 00ab 7F       		.byte	127
- 221 00ac 50       		.byte	80
- 222 00ad 3C       		.byte	60
- 223 00ae 9F       		.byte	-97
- 224 00af A8       		.byte	-88
- 225 00b0 51       		.byte	81
- 226 00b1 A3       		.byte	-93
- 227 00b2 40       		.byte	64
- 228 00b3 8F       		.byte	-113
- 229 00b4 92       		.byte	-110
- 230 00b5 9D       		.byte	-99
- 231 00b6 38       		.byte	56
- 232 00b7 F5       		.byte	-11
- 233 00b8 BC       		.byte	-68
- 234 00b9 B6       		.byte	-74
- 235 00ba DA       		.byte	-38
- 236 00bb 21       		.byte	33
- 237 00bc 10       		.byte	16
- 238 00bd FF       		.byte	-1
- 239 00be F3       		.byte	-13
- 240 00bf D2       		.byte	-46
- 241 00c0 CD       		.byte	-51
- 242 00c1 0C       		.byte	12
- 243 00c2 13       		.byte	19
- 244 00c3 EC       		.byte	-20
- 245 00c4 5F       		.byte	95
- 246 00c5 97       		.byte	-105
- 247 00c6 44       		.byte	68
- 248 00c7 17       		.byte	23
- 249 00c8 C4       		.byte	-60
- 250 00c9 A7       		.byte	-89
- 251 00ca 7E       		.byte	126
- 252 00cb 3D       		.byte	61
- 253 00cc 64       		.byte	100
- 254 00cd 5D       		.byte	93
- 255 00ce 19       		.byte	25
- 256 00cf 73       		.byte	115
- 257 00d0 60       		.byte	96
- 258 00d1 81       		.byte	-127
- 259 00d2 4F       		.byte	79
- 260 00d3 DC       		.byte	-36
- 261 00d4 22       		.byte	34
- 262 00d5 2A       		.byte	42
- 263 00d6 90       		.byte	-112
- 264 00d7 88       		.byte	-120
- 265 00d8 46       		.byte	70
- 266 00d9 EE       		.byte	-18
- 267 00da B8       		.byte	-72
- 268 00db 14       		.byte	20
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 7
-
-
- 269 00dc DE       		.byte	-34
- 270 00dd 5E       		.byte	94
- 271 00de 0B       		.byte	11
- 272 00df DB       		.byte	-37
- 273 00e0 E0       		.byte	-32
- 274 00e1 32       		.byte	50
- 275 00e2 3A       		.byte	58
- 276 00e3 0A       		.byte	10
- 277 00e4 49       		.byte	73
- 278 00e5 06       		.byte	6
- 279 00e6 24       		.byte	36
- 280 00e7 5C       		.byte	92
- 281 00e8 C2       		.byte	-62
- 282 00e9 D3       		.byte	-45
- 283 00ea AC       		.byte	-84
- 284 00eb 62       		.byte	98
- 285 00ec 91       		.byte	-111
- 286 00ed 95       		.byte	-107
- 287 00ee E4       		.byte	-28
- 288 00ef 79       		.byte	121
- 289 00f0 E7       		.byte	-25
- 290 00f1 C8       		.byte	-56
- 291 00f2 37       		.byte	55
- 292 00f3 6D       		.byte	109
- 293 00f4 8D       		.byte	-115
- 294 00f5 D5       		.byte	-43
- 295 00f6 4E       		.byte	78
- 296 00f7 A9       		.byte	-87
- 297 00f8 6C       		.byte	108
- 298 00f9 56       		.byte	86
- 299 00fa F4       		.byte	-12
- 300 00fb EA       		.byte	-22
- 301 00fc 65       		.byte	101
- 302 00fd 7A       		.byte	122
- 303 00fe AE       		.byte	-82
- 304 00ff 08       		.byte	8
- 305 0100 BA       		.byte	-70
- 306 0101 78       		.byte	120
- 307 0102 25       		.byte	37
- 308 0103 2E       		.byte	46
- 309 0104 1C       		.byte	28
- 310 0105 A6       		.byte	-90
- 311 0106 B4       		.byte	-76
- 312 0107 C6       		.byte	-58
- 313 0108 E8       		.byte	-24
- 314 0109 DD       		.byte	-35
- 315 010a 74       		.byte	116
- 316 010b 1F       		.byte	31
- 317 010c 4B       		.byte	75
- 318 010d BD       		.byte	-67
- 319 010e 8B       		.byte	-117
- 320 010f 8A       		.byte	-118
- 321 0110 70       		.byte	112
- 322 0111 3E       		.byte	62
- 323 0112 B5       		.byte	-75
- 324 0113 66       		.byte	102
- 325 0114 48       		.byte	72
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 8
-
-
- 326 0115 03       		.byte	3
- 327 0116 F6       		.byte	-10
- 328 0117 0E       		.byte	14
- 329 0118 61       		.byte	97
- 330 0119 35       		.byte	53
- 331 011a 57       		.byte	87
- 332 011b B9       		.byte	-71
- 333 011c 86       		.byte	-122
- 334 011d C1       		.byte	-63
- 335 011e 1D       		.byte	29
- 336 011f 9E       		.byte	-98
- 337 0120 E1       		.byte	-31
- 338 0121 F8       		.byte	-8
- 339 0122 98       		.byte	-104
- 340 0123 11       		.byte	17
- 341 0124 69       		.byte	105
- 342 0125 D9       		.byte	-39
- 343 0126 8E       		.byte	-114
- 344 0127 94       		.byte	-108
- 345 0128 9B       		.byte	-101
- 346 0129 1E       		.byte	30
- 347 012a 87       		.byte	-121
- 348 012b E9       		.byte	-23
- 349 012c CE       		.byte	-50
- 350 012d 55       		.byte	85
- 351 012e 28       		.byte	40
- 352 012f DF       		.byte	-33
- 353 0130 8C       		.byte	-116
- 354 0131 A1       		.byte	-95
- 355 0132 89       		.byte	-119
- 356 0133 0D       		.byte	13
- 357 0134 BF       		.byte	-65
- 358 0135 E6       		.byte	-26
- 359 0136 42       		.byte	66
- 360 0137 68       		.byte	104
- 361 0138 41       		.byte	65
- 362 0139 99       		.byte	-103
- 363 013a 2D       		.byte	45
- 364 013b 0F       		.byte	15
- 365 013c B0       		.byte	-80
- 366 013d 54       		.byte	84
- 367 013e BB       		.byte	-69
- 368 013f 16       		.byte	22
- 369              		.align 32
- 370              		.type	KAESBlockCipherVecRijndaelSBoxV, @object
- 371              		.size	KAESBlockCipherVecRijndaelSBoxV, 256
- 372              	KAESBlockCipherVecRijndaelSBoxV:
- 373 0140 63       		.byte	99
- 374 0141 7C       		.byte	124
- 375 0142 77       		.byte	119
- 376 0143 7B       		.byte	123
- 377 0144 F2       		.byte	-14
- 378 0145 6B       		.byte	107
- 379 0146 6F       		.byte	111
- 380 0147 C5       		.byte	-59
- 381 0148 30       		.byte	48
- 382 0149 01       		.byte	1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 9
-
-
- 383 014a 67       		.byte	103
- 384 014b 2B       		.byte	43
- 385 014c FE       		.byte	-2
- 386 014d D7       		.byte	-41
- 387 014e AB       		.byte	-85
- 388 014f 76       		.byte	118
- 389 0150 CA       		.byte	-54
- 390 0151 82       		.byte	-126
- 391 0152 C9       		.byte	-55
- 392 0153 7D       		.byte	125
- 393 0154 FA       		.byte	-6
- 394 0155 59       		.byte	89
- 395 0156 47       		.byte	71
- 396 0157 F0       		.byte	-16
- 397 0158 AD       		.byte	-83
- 398 0159 D4       		.byte	-44
- 399 015a A2       		.byte	-94
- 400 015b AF       		.byte	-81
- 401 015c 9C       		.byte	-100
- 402 015d A4       		.byte	-92
- 403 015e 72       		.byte	114
- 404 015f C0       		.byte	-64
- 405 0160 B7       		.byte	-73
- 406 0161 FD       		.byte	-3
- 407 0162 93       		.byte	-109
- 408 0163 26       		.byte	38
- 409 0164 36       		.byte	54
- 410 0165 3F       		.byte	63
- 411 0166 F7       		.byte	-9
- 412 0167 CC       		.byte	-52
- 413 0168 34       		.byte	52
- 414 0169 A5       		.byte	-91
- 415 016a E5       		.byte	-27
- 416 016b F1       		.byte	-15
- 417 016c 71       		.byte	113
- 418 016d D8       		.byte	-40
- 419 016e 31       		.byte	49
- 420 016f 15       		.byte	21
- 421 0170 04       		.byte	4
- 422 0171 C7       		.byte	-57
- 423 0172 23       		.byte	35
- 424 0173 C3       		.byte	-61
- 425 0174 18       		.byte	24
- 426 0175 96       		.byte	-106
- 427 0176 05       		.byte	5
- 428 0177 9A       		.byte	-102
- 429 0178 07       		.byte	7
- 430 0179 12       		.byte	18
- 431 017a 80       		.byte	-128
- 432 017b E2       		.byte	-30
- 433 017c EB       		.byte	-21
- 434 017d 27       		.byte	39
- 435 017e B2       		.byte	-78
- 436 017f 75       		.byte	117
- 437 0180 09       		.byte	9
- 438 0181 83       		.byte	-125
- 439 0182 2C       		.byte	44
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 10
-
-
- 440 0183 1A       		.byte	26
- 441 0184 1B       		.byte	27
- 442 0185 6E       		.byte	110
- 443 0186 5A       		.byte	90
- 444 0187 A0       		.byte	-96
- 445 0188 52       		.byte	82
- 446 0189 3B       		.byte	59
- 447 018a D6       		.byte	-42
- 448 018b B3       		.byte	-77
- 449 018c 29       		.byte	41
- 450 018d E3       		.byte	-29
- 451 018e 2F       		.byte	47
- 452 018f 84       		.byte	-124
- 453 0190 53       		.byte	83
- 454 0191 D1       		.byte	-47
- 455 0192 00       		.byte	0
- 456 0193 ED       		.byte	-19
- 457 0194 20       		.byte	32
- 458 0195 FC       		.byte	-4
- 459 0196 B1       		.byte	-79
- 460 0197 5B       		.byte	91
- 461 0198 6A       		.byte	106
- 462 0199 CB       		.byte	-53
- 463 019a BE       		.byte	-66
- 464 019b 39       		.byte	57
- 465 019c 4A       		.byte	74
- 466 019d 4C       		.byte	76
- 467 019e 58       		.byte	88
- 468 019f CF       		.byte	-49
- 469 01a0 D0       		.byte	-48
- 470 01a1 EF       		.byte	-17
- 471 01a2 AA       		.byte	-86
- 472 01a3 FB       		.byte	-5
- 473 01a4 43       		.byte	67
- 474 01a5 4D       		.byte	77
- 475 01a6 33       		.byte	51
- 476 01a7 85       		.byte	-123
- 477 01a8 45       		.byte	69
- 478 01a9 F9       		.byte	-7
- 479 01aa 02       		.byte	2
- 480 01ab 7F       		.byte	127
- 481 01ac 50       		.byte	80
- 482 01ad 3C       		.byte	60
- 483 01ae 9F       		.byte	-97
- 484 01af A8       		.byte	-88
- 485 01b0 51       		.byte	81
- 486 01b1 A3       		.byte	-93
- 487 01b2 40       		.byte	64
- 488 01b3 8F       		.byte	-113
- 489 01b4 92       		.byte	-110
- 490 01b5 9D       		.byte	-99
- 491 01b6 38       		.byte	56
- 492 01b7 F5       		.byte	-11
- 493 01b8 BC       		.byte	-68
- 494 01b9 B6       		.byte	-74
- 495 01ba DA       		.byte	-38
- 496 01bb 21       		.byte	33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 11
-
-
- 497 01bc 10       		.byte	16
- 498 01bd FF       		.byte	-1
- 499 01be F3       		.byte	-13
- 500 01bf D2       		.byte	-46
- 501 01c0 CD       		.byte	-51
- 502 01c1 0C       		.byte	12
- 503 01c2 13       		.byte	19
- 504 01c3 EC       		.byte	-20
- 505 01c4 5F       		.byte	95
- 506 01c5 97       		.byte	-105
- 507 01c6 44       		.byte	68
- 508 01c7 17       		.byte	23
- 509 01c8 C4       		.byte	-60
- 510 01c9 A7       		.byte	-89
- 511 01ca 7E       		.byte	126
- 512 01cb 3D       		.byte	61
- 513 01cc 64       		.byte	100
- 514 01cd 5D       		.byte	93
- 515 01ce 19       		.byte	25
- 516 01cf 73       		.byte	115
- 517 01d0 60       		.byte	96
- 518 01d1 81       		.byte	-127
- 519 01d2 4F       		.byte	79
- 520 01d3 DC       		.byte	-36
- 521 01d4 22       		.byte	34
- 522 01d5 2A       		.byte	42
- 523 01d6 90       		.byte	-112
- 524 01d7 88       		.byte	-120
- 525 01d8 46       		.byte	70
- 526 01d9 EE       		.byte	-18
- 527 01da B8       		.byte	-72
- 528 01db 14       		.byte	20
- 529 01dc DE       		.byte	-34
- 530 01dd 5E       		.byte	94
- 531 01de 0B       		.byte	11
- 532 01df DB       		.byte	-37
- 533 01e0 E0       		.byte	-32
- 534 01e1 32       		.byte	50
- 535 01e2 3A       		.byte	58
- 536 01e3 0A       		.byte	10
- 537 01e4 49       		.byte	73
- 538 01e5 06       		.byte	6
- 539 01e6 24       		.byte	36
- 540 01e7 5C       		.byte	92
- 541 01e8 C2       		.byte	-62
- 542 01e9 D3       		.byte	-45
- 543 01ea AC       		.byte	-84
- 544 01eb 62       		.byte	98
- 545 01ec 91       		.byte	-111
- 546 01ed 95       		.byte	-107
- 547 01ee E4       		.byte	-28
- 548 01ef 79       		.byte	121
- 549 01f0 E7       		.byte	-25
- 550 01f1 C8       		.byte	-56
- 551 01f2 37       		.byte	55
- 552 01f3 6D       		.byte	109
- 553 01f4 8D       		.byte	-115
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 12
-
-
- 554 01f5 D5       		.byte	-43
- 555 01f6 4E       		.byte	78
- 556 01f7 A9       		.byte	-87
- 557 01f8 6C       		.byte	108
- 558 01f9 56       		.byte	86
- 559 01fa F4       		.byte	-12
- 560 01fb EA       		.byte	-22
- 561 01fc 65       		.byte	101
- 562 01fd 7A       		.byte	122
- 563 01fe AE       		.byte	-82
- 564 01ff 08       		.byte	8
- 565 0200 BA       		.byte	-70
- 566 0201 78       		.byte	120
- 567 0202 25       		.byte	37
- 568 0203 2E       		.byte	46
- 569 0204 1C       		.byte	28
- 570 0205 A6       		.byte	-90
- 571 0206 B4       		.byte	-76
- 572 0207 C6       		.byte	-58
- 573 0208 E8       		.byte	-24
- 574 0209 DD       		.byte	-35
- 575 020a 74       		.byte	116
- 576 020b 1F       		.byte	31
- 577 020c 4B       		.byte	75
- 578 020d BD       		.byte	-67
- 579 020e 8B       		.byte	-117
- 580 020f 8A       		.byte	-118
- 581 0210 70       		.byte	112
- 582 0211 3E       		.byte	62
- 583 0212 B5       		.byte	-75
- 584 0213 66       		.byte	102
- 585 0214 48       		.byte	72
- 586 0215 03       		.byte	3
- 587 0216 F6       		.byte	-10
- 588 0217 0E       		.byte	14
- 589 0218 61       		.byte	97
- 590 0219 35       		.byte	53
- 591 021a 57       		.byte	87
- 592 021b B9       		.byte	-71
- 593 021c 86       		.byte	-122
- 594 021d C1       		.byte	-63
- 595 021e 1D       		.byte	29
- 596 021f 9E       		.byte	-98
- 597 0220 E1       		.byte	-31
- 598 0221 F8       		.byte	-8
- 599 0222 98       		.byte	-104
- 600 0223 11       		.byte	17
- 601 0224 69       		.byte	105
- 602 0225 D9       		.byte	-39
- 603 0226 8E       		.byte	-114
- 604 0227 94       		.byte	-108
- 605 0228 9B       		.byte	-101
- 606 0229 1E       		.byte	30
- 607 022a 87       		.byte	-121
- 608 022b E9       		.byte	-23
- 609 022c CE       		.byte	-50
- 610 022d 55       		.byte	85
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 13
-
-
- 611 022e 28       		.byte	40
- 612 022f DF       		.byte	-33
- 613 0230 8C       		.byte	-116
- 614 0231 A1       		.byte	-95
- 615 0232 89       		.byte	-119
- 616 0233 0D       		.byte	13
- 617 0234 BF       		.byte	-65
- 618 0235 E6       		.byte	-26
- 619 0236 42       		.byte	66
- 620 0237 68       		.byte	104
- 621 0238 41       		.byte	65
- 622 0239 99       		.byte	-103
- 623 023a 2D       		.byte	45
- 624 023b 0F       		.byte	15
- 625 023c B0       		.byte	-80
- 626 023d 54       		.byte	84
- 627 023e BB       		.byte	-69
- 628 023f 16       		.byte	22
- 629              		.align 32
- 630              		.type	KAESBlockCipherVecRijndaelInvSBoxV, @object
- 631              		.size	KAESBlockCipherVecRijndaelInvSBoxV, 256
- 632              	KAESBlockCipherVecRijndaelInvSBoxV:
- 633 0240 52       		.byte	82
- 634 0241 09       		.byte	9
- 635 0242 6A       		.byte	106
- 636 0243 D5       		.byte	-43
- 637 0244 30       		.byte	48
- 638 0245 36       		.byte	54
- 639 0246 A5       		.byte	-91
- 640 0247 38       		.byte	56
- 641 0248 BF       		.byte	-65
- 642 0249 40       		.byte	64
- 643 024a A3       		.byte	-93
- 644 024b 9E       		.byte	-98
- 645 024c 81       		.byte	-127
- 646 024d F3       		.byte	-13
- 647 024e D7       		.byte	-41
- 648 024f FB       		.byte	-5
- 649 0250 7C       		.byte	124
- 650 0251 E3       		.byte	-29
- 651 0252 39       		.byte	57
- 652 0253 82       		.byte	-126
- 653 0254 9B       		.byte	-101
- 654 0255 2F       		.byte	47
- 655 0256 FF       		.byte	-1
- 656 0257 87       		.byte	-121
- 657 0258 34       		.byte	52
- 658 0259 8E       		.byte	-114
- 659 025a 43       		.byte	67
- 660 025b 44       		.byte	68
- 661 025c C4       		.byte	-60
- 662 025d DE       		.byte	-34
- 663 025e E9       		.byte	-23
- 664 025f CB       		.byte	-53
- 665 0260 54       		.byte	84
- 666 0261 7B       		.byte	123
- 667 0262 94       		.byte	-108
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 14
-
-
- 668 0263 32       		.byte	50
- 669 0264 A6       		.byte	-90
- 670 0265 C2       		.byte	-62
- 671 0266 23       		.byte	35
- 672 0267 3D       		.byte	61
- 673 0268 EE       		.byte	-18
- 674 0269 4C       		.byte	76
- 675 026a 95       		.byte	-107
- 676 026b 0B       		.byte	11
- 677 026c 42       		.byte	66
- 678 026d FA       		.byte	-6
- 679 026e C3       		.byte	-61
- 680 026f 4E       		.byte	78
- 681 0270 08       		.byte	8
- 682 0271 2E       		.byte	46
- 683 0272 A1       		.byte	-95
- 684 0273 66       		.byte	102
- 685 0274 28       		.byte	40
- 686 0275 D9       		.byte	-39
- 687 0276 24       		.byte	36
- 688 0277 B2       		.byte	-78
- 689 0278 76       		.byte	118
- 690 0279 5B       		.byte	91
- 691 027a A2       		.byte	-94
- 692 027b 49       		.byte	73
- 693 027c 6D       		.byte	109
- 694 027d 8B       		.byte	-117
- 695 027e D1       		.byte	-47
- 696 027f 25       		.byte	37
- 697 0280 72       		.byte	114
- 698 0281 F8       		.byte	-8
- 699 0282 F6       		.byte	-10
- 700 0283 64       		.byte	100
- 701 0284 86       		.byte	-122
- 702 0285 68       		.byte	104
- 703 0286 98       		.byte	-104
- 704 0287 16       		.byte	22
- 705 0288 D4       		.byte	-44
- 706 0289 A4       		.byte	-92
- 707 028a 5C       		.byte	92
- 708 028b CC       		.byte	-52
- 709 028c 5D       		.byte	93
- 710 028d 65       		.byte	101
- 711 028e B6       		.byte	-74
- 712 028f 92       		.byte	-110
- 713 0290 6C       		.byte	108
- 714 0291 70       		.byte	112
- 715 0292 48       		.byte	72
- 716 0293 50       		.byte	80
- 717 0294 FD       		.byte	-3
- 718 0295 ED       		.byte	-19
- 719 0296 B9       		.byte	-71
- 720 0297 DA       		.byte	-38
- 721 0298 5E       		.byte	94
- 722 0299 15       		.byte	21
- 723 029a 46       		.byte	70
- 724 029b 57       		.byte	87
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 15
-
-
- 725 029c A7       		.byte	-89
- 726 029d 8D       		.byte	-115
- 727 029e 9D       		.byte	-99
- 728 029f 84       		.byte	-124
- 729 02a0 90       		.byte	-112
- 730 02a1 D8       		.byte	-40
- 731 02a2 AB       		.byte	-85
- 732 02a3 00       		.byte	0
- 733 02a4 8C       		.byte	-116
- 734 02a5 BC       		.byte	-68
- 735 02a6 D3       		.byte	-45
- 736 02a7 0A       		.byte	10
- 737 02a8 F7       		.byte	-9
- 738 02a9 E4       		.byte	-28
- 739 02aa 58       		.byte	88
- 740 02ab 05       		.byte	5
- 741 02ac B8       		.byte	-72
- 742 02ad B3       		.byte	-77
- 743 02ae 45       		.byte	69
- 744 02af 06       		.byte	6
- 745 02b0 D0       		.byte	-48
- 746 02b1 2C       		.byte	44
- 747 02b2 1E       		.byte	30
- 748 02b3 8F       		.byte	-113
- 749 02b4 CA       		.byte	-54
- 750 02b5 3F       		.byte	63
- 751 02b6 0F       		.byte	15
- 752 02b7 02       		.byte	2
- 753 02b8 C1       		.byte	-63
- 754 02b9 AF       		.byte	-81
- 755 02ba BD       		.byte	-67
- 756 02bb 03       		.byte	3
- 757 02bc 01       		.byte	1
- 758 02bd 13       		.byte	19
- 759 02be 8A       		.byte	-118
- 760 02bf 6B       		.byte	107
- 761 02c0 3A       		.byte	58
- 762 02c1 91       		.byte	-111
- 763 02c2 11       		.byte	17
- 764 02c3 41       		.byte	65
- 765 02c4 4F       		.byte	79
- 766 02c5 67       		.byte	103
- 767 02c6 DC       		.byte	-36
- 768 02c7 EA       		.byte	-22
- 769 02c8 97       		.byte	-105
- 770 02c9 F2       		.byte	-14
- 771 02ca CF       		.byte	-49
- 772 02cb CE       		.byte	-50
- 773 02cc F0       		.byte	-16
- 774 02cd B4       		.byte	-76
- 775 02ce E6       		.byte	-26
- 776 02cf 73       		.byte	115
- 777 02d0 96       		.byte	-106
- 778 02d1 AC       		.byte	-84
- 779 02d2 74       		.byte	116
- 780 02d3 22       		.byte	34
- 781 02d4 E7       		.byte	-25
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 16
-
-
- 782 02d5 AD       		.byte	-83
- 783 02d6 35       		.byte	53
- 784 02d7 85       		.byte	-123
- 785 02d8 E2       		.byte	-30
- 786 02d9 F9       		.byte	-7
- 787 02da 37       		.byte	55
- 788 02db E8       		.byte	-24
- 789 02dc 1C       		.byte	28
- 790 02dd 75       		.byte	117
- 791 02de DF       		.byte	-33
- 792 02df 6E       		.byte	110
- 793 02e0 47       		.byte	71
- 794 02e1 F1       		.byte	-15
- 795 02e2 1A       		.byte	26
- 796 02e3 71       		.byte	113
- 797 02e4 1D       		.byte	29
- 798 02e5 29       		.byte	41
- 799 02e6 C5       		.byte	-59
- 800 02e7 89       		.byte	-119
- 801 02e8 6F       		.byte	111
- 802 02e9 B7       		.byte	-73
- 803 02ea 62       		.byte	98
- 804 02eb 0E       		.byte	14
- 805 02ec AA       		.byte	-86
- 806 02ed 18       		.byte	24
- 807 02ee BE       		.byte	-66
- 808 02ef 1B       		.byte	27
- 809 02f0 FC       		.byte	-4
- 810 02f1 56       		.byte	86
- 811 02f2 3E       		.byte	62
- 812 02f3 4B       		.byte	75
- 813 02f4 C6       		.byte	-58
- 814 02f5 D2       		.byte	-46
- 815 02f6 79       		.byte	121
- 816 02f7 20       		.byte	32
- 817 02f8 9A       		.byte	-102
- 818 02f9 DB       		.byte	-37
- 819 02fa C0       		.byte	-64
- 820 02fb FE       		.byte	-2
- 821 02fc 78       		.byte	120
- 822 02fd CD       		.byte	-51
- 823 02fe 5A       		.byte	90
- 824 02ff F4       		.byte	-12
- 825 0300 1F       		.byte	31
- 826 0301 DD       		.byte	-35
- 827 0302 A8       		.byte	-88
- 828 0303 33       		.byte	51
- 829 0304 88       		.byte	-120
- 830 0305 07       		.byte	7
- 831 0306 C7       		.byte	-57
- 832 0307 31       		.byte	49
- 833 0308 B1       		.byte	-79
- 834 0309 12       		.byte	18
- 835 030a 10       		.byte	16
- 836 030b 59       		.byte	89
- 837 030c 27       		.byte	39
- 838 030d 80       		.byte	-128
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 17
-
-
- 839 030e EC       		.byte	-20
- 840 030f 5F       		.byte	95
- 841 0310 60       		.byte	96
- 842 0311 51       		.byte	81
- 843 0312 7F       		.byte	127
- 844 0313 A9       		.byte	-87
- 845 0314 19       		.byte	25
- 846 0315 B5       		.byte	-75
- 847 0316 4A       		.byte	74
- 848 0317 0D       		.byte	13
- 849 0318 2D       		.byte	45
- 850 0319 E5       		.byte	-27
- 851 031a 7A       		.byte	122
- 852 031b 9F       		.byte	-97
- 853 031c 93       		.byte	-109
- 854 031d C9       		.byte	-55
- 855 031e 9C       		.byte	-100
- 856 031f EF       		.byte	-17
- 857 0320 A0       		.byte	-96
- 858 0321 E0       		.byte	-32
- 859 0322 3B       		.byte	59
- 860 0323 4D       		.byte	77
- 861 0324 AE       		.byte	-82
- 862 0325 2A       		.byte	42
- 863 0326 F5       		.byte	-11
- 864 0327 B0       		.byte	-80
- 865 0328 C8       		.byte	-56
- 866 0329 EB       		.byte	-21
- 867 032a BB       		.byte	-69
- 868 032b 3C       		.byte	60
- 869 032c 83       		.byte	-125
- 870 032d 53       		.byte	83
- 871 032e 99       		.byte	-103
- 872 032f 61       		.byte	97
- 873 0330 17       		.byte	23
- 874 0331 2B       		.byte	43
- 875 0332 04       		.byte	4
- 876 0333 7E       		.byte	126
- 877 0334 BA       		.byte	-70
- 878 0335 77       		.byte	119
- 879 0336 D6       		.byte	-42
- 880 0337 26       		.byte	38
- 881 0338 E1       		.byte	-31
- 882 0339 69       		.byte	105
- 883 033a 14       		.byte	20
- 884 033b 63       		.byte	99
- 885 033c 55       		.byte	85
- 886 033d 21       		.byte	33
- 887 033e 0C       		.byte	12
- 888 033f 7D       		.byte	125
- 889              		.align 16
- 890              		.type	lo_filter, @object
- 891              		.size	lo_filter, 16
- 892              	lo_filter:
- 893 0340 00       		.byte	0
- 894 0341 FF       		.byte	-1
- 895 0342 FF       		.byte	-1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 18
-
-
- 896 0343 FF       		.byte	-1
- 897 0344 FF       		.byte	-1
- 898 0345 FF       		.byte	-1
- 899 0346 FF       		.byte	-1
- 900 0347 FF       		.byte	-1
- 901 0348 FF       		.byte	-1
- 902 0349 FF       		.byte	-1
- 903 034a FF       		.byte	-1
- 904 034b FF       		.byte	-1
- 905 034c FF       		.byte	-1
- 906 034d FF       		.byte	-1
- 907 034e FF       		.byte	-1
- 908 034f FF       		.byte	-1
- 909              		.align 16
- 910              		.type	FF_tab, @object
- 911              		.size	FF_tab, 16
- 912              	FF_tab:
- 913 0350 00       		.byte	0
- 914 0351 1B       		.byte	27
- 915 0352 36       		.byte	54
- 916 0353 2D       		.byte	45
- 917 0354 6C       		.byte	108
- 918 0355 77       		.byte	119
- 919 0356 5A       		.byte	90
- 920 0357 41       		.byte	65
- 921 0358 00       		.byte	0
- 922 0359 00       		.byte	0
- 923 035a 00       		.byte	0
- 924 035b 00       		.byte	0
- 925 035c 00       		.byte	0
- 926 035d 00       		.byte	0
- 927 035e 00       		.byte	0
- 928 035f 00       		.byte	0
- 929              		.data
- 930              		.type	KAESBlockCipherVecFFtable, @object
- 931              		.size	KAESBlockCipherVecFFtable, 8
- 932              	KAESBlockCipherVecFFtable:
- 933 0000 00       		.byte	0
- 934 0001 1B       		.byte	27
- 935 0002 36       		.byte	54
- 936 0003 2D       		.byte	45
- 937 0004 6C       		.byte	108
- 938 0005 77       		.byte	119
- 939 0006 5A       		.byte	90
- 940 0007 41       		.byte	65
- 941              		.section	.rodata
- 942              		.align 32
- 943              		.type	KAESBlockCipherVecRcon, @object
- 944              		.size	KAESBlockCipherVecRcon, 40
- 945              	KAESBlockCipherVecRcon:
- 946 0360 01000000 		.long	1
- 947 0364 02000000 		.long	2
- 948 0368 04000000 		.long	4
- 949 036c 08000000 		.long	8
- 950 0370 10000000 		.long	16
- 951 0374 20000000 		.long	32
- 952 0378 40000000 		.long	64
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 19
-
-
- 953 037c 80000000 		.long	128
- 954 0380 1B000000 		.long	27
- 955 0384 36000000 		.long	54
- 956              	.LC0:
- 957 0388 53756242 		.string	"SubBytes"
- 957      79746573 
- 957      00
- 958              	.LC1:
- 959 0391 25733A09 		.string	"%s:\t%0.8x %0.8x %0.8x %0.8x\n"
- 959      25302E38 
- 959      78202530 
- 959      2E387820 
- 959      25302E38 
- 960              	.LC2:
- 961 03ae 526F7442 		.string	"RotBytesLeft"
- 961      79746573 
- 961      4C656674 
- 961      00
- 962              	.LC3:
- 963 03bb 56656358 		.string	"VecXor"
- 963      6F7200
- 964              	.LC4:
- 965 03c2 53746174 		.string	"StateDupColumn3"
- 965      65447570 
- 965      436F6C75 
- 965      6D6E3300 
- 966              		.text
- 967              		.type	KAESBlockCipherVecKeyExpansion128, @function
- 968              	KAESBlockCipherVecKeyExpansion128:
- 969              	.LFB563:
- 970              		.file 2 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 20
-
-
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <krypto/extern.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "ncbi-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "aes-ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "cipher-priv.h"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "blockcipher-priv.h"
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/debug.h>
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/out.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/rc.h>
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <byteswap.h>
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <string.h>
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <stdint.h>
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <stdlib.h>
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <assert.h>
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <sysalloc.h>
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <cpuid.h>
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VECREG
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <v128.h>
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This implements the AES cipher as defined by FIPS-197 from NIST
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Notes on implmentation:
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Byte ordering in AES is not critical but unllike the original implmentation
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * bytes are not re-ordered to a big endian order upon reading them in and this
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * code will expect to run on an Intel/AMD type processor and might have issues
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * on some big endian processors.
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Many functions are written as static inline functions to
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * facilitate GCC type assembly language optimization on various processors
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This implements the Equivalent Inverse Cipher not the Inverse Cipher.  In
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * general functions will match those defined in the FIPS-197 document where they
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * do not get optimized away for Intel/AMD XMM registers and AES-NI instructions.
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * C-99 types are used for specific sized types.  An unaddornded unsigned type
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is used for many index type variables to allow the compiler choice in
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * size where size does not matter very much.  As these index variables do
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * not go above 16 any size would do but the compiler can choose the size most
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * suited for array subscripting.
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-  81:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_00 =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 21
-
-
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_01 =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_0F =  { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F };
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_10 =  { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 };
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * These functions implment the Advanced Encryption Standard AES as defined
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * in the FIPS (Federal Information Processing Standars Publication 197
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Of Nevember 26, 2001.
- 104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Read a blocks worth of bytes into an CipherVec
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector registers it is a single instruction, without them it
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is a memmove call
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateIn) (const void * ain)
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateIn) (const void * ain)
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec vec;
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         "movdqu (%[a]),%[s]" : [s] "=x" (vec) : [a] "D" (ain)
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         );
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 22
-
-
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Write a block's worth of bytes out from an CipherVec
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector registers it is a single instruction, without them it
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is a memmove call
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec rvec = vec;
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         "movdqu %[s],(%[a])" : : [s] "x" (rvec), [a] "D" (rout)
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         );
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (rout, &vec, sizeof (vec));
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] ^= u2.columns[ix];
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 23
-
-
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] &= u2.columns[ix];
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] |= u2.columns[ix];
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 24
-
-
- 255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
- 259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 + v2;
- 263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] += u2.columns[ix];
- 274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
- 283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] -= u2.columns[ix];
- 302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
- 311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 25
-
-
- 312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
- 315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 * v2;
- 319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] *= u2.columns[ix];
- 330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
- 339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
- 343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] /= u2.columns[ix];
- 358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
- 366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 26
-
-
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFB128 (dest, mask);
- 374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u out, in, gate;
- 378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
- 403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec sl_mask [9] = 
- 406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
- 407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- 409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
- 410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE },
- 411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
- 412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC },
- 413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
- 414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8 },
- 415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
- 416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0 },
- 417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
- 418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0 },
- 419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
- 420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0 },
- 421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 },
- 423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- 425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         };
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 27
-
-
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (k <= 8);
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("mask", sl_mask[k]); */
- 432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 1", vv); */
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 2", vv); */
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 3", vv); */
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u vv; /* state and key not countries :) */
- 442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv.state = v;
- 445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (v); ++ix)
- 447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("SLLBI %d %x ", k, vv.bytes[ix]);
- 449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         vv.bytes[ix] <<= k;
- 450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("%x\n", vv.bytes[ix]);
- 451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv.state;
- 453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
- 464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec sr_mask [9] = 
- 467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
- 471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F },
- 472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
- 473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F },
- 474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
- 475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
- 476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
- 477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F },
- 478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
- 479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 },
- 480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 },
- 482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 28
-
-
- 483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
- 484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- 486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         };
- 487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u vv; /* state and key not countries :) */
- 495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv.state = v;
- 498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (v); ++ix)
- 500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("SRLBI %d %x ", k, vv.bytes[ix]);
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         vv.bytes[ix] >>= k;
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("%x\n", vv.bytes[ix]);
- 504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv.state;
- 506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
- 513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
- 517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.4
- 532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The AddRoundKey transformation is a sinple exclusive or of all 128 bits
- 534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * in the current block against a round key.  This operation is used in all
- 535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher and EqInvCipher rounds
- 536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector types it is a single operation that with vector registers is
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * a single op-code.
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 29
-
-
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
- 542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
- 546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(VecXor) (state, round_key);
- 548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.2
- 553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS 197 describes the state in column major format
- 555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * while C and assembly programmers tend to think in row major
- 556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The byte order is 0,1,2,3,,...F as shown in the first diagram.
- 557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  ShiftRows() is defined as leaving this state
- 559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- 561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 5 | 9 | D | 1 |
- 563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- 565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | F | 3 | 7 | B |
- 567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
- 571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
- 575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec ShiftRowTable
- 578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     = {  0,  5, 10, 15,  4,  9, 14,  3,  8, 13,  2,  7, 12,  1,  6, 11 };
- 580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.3.1
- 588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * InvShiftRows() is defined as leaving this state
- 590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- 592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | D | 1 | 5 | 9 |
- 594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- 596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 30
-
-
- 597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 7 | B | F | 3 |
- 598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
- 602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
- 607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVecByte InvShiftRowTable
- 609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         = {  0, 13, 10,  7,  4,  1, 14, 11,  8,  5,  2, 15, 12,  9,  6,  3 };
- 611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 3 | 7 | B | F |
- 620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 0 | 4 | 8 | C |
- 622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | 1 | 5 | 9 | D |
- 624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 2 | 6 | A | E |
- 626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
- 630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
- 634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec ShiftRowTable
- 637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     = {  3,  0,  1,  2,  7,  4,  5,  6, 11,  8,  9, 10, 15, 12, 13, 14 };
- 639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 1 | 5 | B | D |
- 648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 2 | 6 | 8 | E |
- 650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | 3 | 7 | 9 | F |
- 652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 0 | 4 | 8 | C |
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 31
-
-
- 654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
- 658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
- 662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec ShiftRowTable
- 664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         = {  1,  2,  3,  0,  5,  6,  7,  4,  9, 10, 11,  8, 13, 14, 15, 12 };
- 666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.1
- 674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SubBytes replaces each byte in a state with a specific byte value from
- 679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * A Rijndael Substitution box
- 680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const 
- 682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(RijndaelSBox)[256] = 
- 683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E   
- 685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 0- */ 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 
- 686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 1- */ 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 
- 687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 2- */ 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 
- 688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 3- */ 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 
- 689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 4- */ 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 
- 690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 5- */ 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 
- 691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 6- */ 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 
- 692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 7- */ 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 
- 693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 8- */ 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 
- 694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 9- */ 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 
- 695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* A- */ 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 
- 696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* B- */ 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 
- 697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* C- */ 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 
- 698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* D- */ 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 
- 699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* E- */ 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 
- 700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* F- */ 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 
- 701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if 0
- 705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 32
-
-
- 711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (u.bytes); ++ix)
- 718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u.bytes[ix] = AESBCMEMBER(RijndaelSBox)[u.bytes[ix]];
- 720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SubWord performs the same operation as SubBytes but on
- 728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the four bytes of a column and not a whole state
- 729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(SubWord) (AESWord w)
- 732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(SubWord) (AESWord w)
- 736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESColumn col;
- 738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if 0
- 747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * InvSubBytes replaces each byte in a state with a specific byte value from
- 749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * an Inversze Rijndael Substitution box.  That is InvSubBytes undoes SubBytes
- 750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const 
- 752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint8_t AESBCMEMBER(RijndaelInvSBox)[256] = 
- 753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E   
- 755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 0- */ 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 
- 756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 1- */ 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 
- 757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 2- */ 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 
- 758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 3- */ 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 
- 759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 4- */ 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 
- 760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 5- */ 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 
- 761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 6- */ 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 
- 762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 7- */ 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 
- 763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 8- */ 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 
- 764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 9- */ 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 
- 765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* A- */ 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 
- 766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* B- */ 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 
- 767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* C- */ 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 33
-
-
- 768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* D- */ 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 
- 769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* E- */ 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 
- 770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* F- */ 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 
- 771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (u.bytes); ++ix)
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u.bytes[ix] = AESBCMEMBER(RijndaelInvSBox)[u.bytes[ix]];
- 787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RijndaelSBoxV)[16] = 
- 794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F
- 796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x7
- 797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC
- 798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x1
- 799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x7
- 800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x8
- 801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xC
- 802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA
- 803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD
- 804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x7
- 805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xD
- 806:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x7
- 807:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x0
- 808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8
- 809:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9
- 810:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xD
- 811:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x1
- 812:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 813:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 814:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RijndaelInvSBoxV)[16] = 
- 816:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 817:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F
- 818:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xF
- 819:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xC
- 820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4
- 821:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x2
- 822:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x9
- 823:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x8
- 824:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 34
-
-
- 825:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6
- 826:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x7
- 827:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6
- 828:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1
- 829:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF
- 830:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5
- 831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xE
- 832:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x6
- 833:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7
- 834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 835:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 836:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 837:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 838:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec lo_filter = { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 839:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
- 840:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 841:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
- 843:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 844:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 845:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 846:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
- 847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 848:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec lo, hi, tmp, out;
- 849:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 850:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 852:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 853:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("state", state); */
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 855:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("lo", lo); */
- 856:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 860:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 861:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 863:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 864:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 865:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 867:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 871:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 873:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 875:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("out", out); */
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 877:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("hi", hi); */
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 879:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("hi", hi); */
- 880:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 881:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("out", out); */
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 35
-
-
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 883:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 884:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 885:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 886:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 887:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 888:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 889:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 890:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 891:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 892:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 893:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelSBoxV));
- 894:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 895:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 896:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 897:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 898:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 899:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 900:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 901:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 902:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 903:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelInvSBoxV));
- 905:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 906:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 907:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 908:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.3
- 910:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 911:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 912:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 913:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * there are no psllb or psrlb instructions so shift words not bytes
- 914:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * and then cut off bits that would have been zeroed if there were
- 915:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * such instructions
- 916:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 917:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * 
- 918:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 919:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const CipherVec FF_tab = 
- 920:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** { 0x00, 0x1B, 0x36, 0x2D, 0x6C, 0x77, 0x5A, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- 921:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 922:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 923:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
- 924:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 925:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
- 928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec sl, sr;
- 930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (bits <= 8);
- 932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 36
-
-
- 939:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(VecXor)(sl, sr);
- 940:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 941:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 942:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 943:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 944:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_02) (CipherVec state)
- 945:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 946:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 947:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 948:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_02) (register CipherVec state)
- 949:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 950:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 951:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 952:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 1);
- 953:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 954:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 956:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 959:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 960:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
- 961:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 962:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 963:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 964:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
- 965:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 966:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 967:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 968:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 2);
- 969:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 970:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 971:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 972:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 973:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 974:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 975:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 976:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
- 977:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 978:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 979:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 980:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
- 981:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 982:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 983:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 984:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 3);
- 985:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 986:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 987:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 988:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 989:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 990:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 991:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static AESByte AESBCMEMBER(FFtable)[] = { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41 };
- 992:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 993:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 995:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFtab) (uint8_t x)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 37
-
-
- 996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 997:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 999:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFtab) (uint8_t x)
-1000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
-1002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1003:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1004:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1005:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1006:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul02) (AESByte b)
-1007:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1008:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1009:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1010:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul02) (AESByte b)
-1011:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
-1013:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1014:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1015:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1016:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1017:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul04) (AESByte b)
-1018:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1021:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul04) (AESByte b)
-1022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
-1024:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1025:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1026:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1027:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1028:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul08) (AESByte b)
-1029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1030:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1032:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul08) (AESByte b)
-1033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
-1035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1036:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1038:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1039:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-1040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1041:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1043:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-1044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec c0, c1, c2, c3;
-1046:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(RotBytesLeft) (state);
-1048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c2 = AESBCMEMBER(RotBytesLeft) (c1);
-1049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c3 = AESBCMEMBER(RotBytesLeft) (c2);
-1050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(VecXor) (state, c1);
-1051:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1052:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 38
-
-
-1053:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1054:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(FF_mul_02) (c0);
-1055:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1056:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1057:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         CipherVec_AES_u tmp;
-1058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned ix;
-1059:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1060:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp.state = c0;
-1061:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof tmp; ++ix)
-1063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             tmp.bytes[ix] = AESBCMEMBER(FFmul02)(tmp.bytes[ix]);
-1064:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         c0 = tmp.state;
-1065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1066:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c2);
-1068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c3);
-1069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c0);
-1070:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return c1;
-1072:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* obsoleted 
-1073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in, out;
-1074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
-1075:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1077:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1078:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (out.bytes); ix += 4)
-1079:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1080:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s0 = in.bytes[ix + 0];
-1081:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s1 = in.bytes[ix + 1];
-1082:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s2 = in.bytes[ix + 2];
-1083:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s3 = in.bytes[ix + 3];
-1084:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1085:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1);
-1086:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2);
-1087:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3);
-1088:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0);
-1089:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1090:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1091:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1092:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1093:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1094:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1095:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-1096:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1098:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-1100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-1102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESIMC (state);
-1103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec r1, r2, r3, f2, f4, f8;
-1105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r1 = AESBCMEMBER(RotBytesLeft) (state);
-1107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r2 = AESBCMEMBER(RotBytesLeft) (r1);
-1108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r3 = AESBCMEMBER(RotBytesLeft) (r2);        
-1109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 39
-
-
-1110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(VecXor) (state, r2);
-1111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(VecXor) (state, r1);
-1112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (r2, r3);
-1113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (f8, r1);
-1114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (f8, f2);
-1115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(FF_mul) (f2,1);
-1119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(FF_mul) (f4,2);
-1120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(FF_mul) (f8,3);
-1121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         CipherVec_AES_u fu2, fu4, fu8;
-1124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned ix;
-1125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu2.state = f2;
-1127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu4.state = f4;
-1128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu8.state = f8;
-1129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof fu2; ++ix)
-1131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
-1133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
-1134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
-1135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f2 = fu2.state;
-1137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f4 = fu4.state;
-1138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f8 = fu8.state;
-1139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f2);
-1143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f4);
-1144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f8);
-1145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-1149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in, out;
-1151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
-1152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (out.bytes); ix += AES_Nb)
-1156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s0 = in.bytes[ix + 0];
-1158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s1 = in.bytes[ix + 1];
-1159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s2 = in.bytes[ix + 2];
-1160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s3 = in.bytes[ix + 3];
-1161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord p, q;
-1162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         q =     AESBCMEMBER(FFmul08)(s0 ^ s1 ^ s2 ^ s3);
-1164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         p = q ^ AESBCMEMBER(FFmul04)(s0 ^ s2);
-1165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         q = q ^ AESBCMEMBER(FFmul04)(s1 ^ s3);
-1166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 40
-
-
-1167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1) ^ p;
-1168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2) ^ q;
-1169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3) ^ p;
-1170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0) ^ q;
-1171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
-1179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.2
-1180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-1182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(Rcon)[] = {
-1183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x00000001, 0x00000002, 0x00000004, 0x00000008,
-1184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x00000010, 0x00000020, 0x00000040, 0x00000080,
-1185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x0000001B, 0x00000036
-1186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
-1187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(RotWord) (AESWord w)
-1191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(RotWord) (AESWord w)
-1195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
-1197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-1202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-1206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-1208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * not portable to architectures which require aligned multibyte reads
-1209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * but as this only runs on Intel at this point it is fine for now
-1210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-1211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return *(AESWord*)pointer;
-1212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion) (CipherVec * r, const AESByte * key, unsigned Nr, unsigned Nk)
-1218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord * w = (AESWord*)r;
-1220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESWord * pRcon;
-1221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix, limit;
-1222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 41
-
-
-1224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_KEYEXP(("%s (w (%p), key (%p), Nr (%u) Nk (%u))\n", __func__, w, key, Nr, Nk));
-1226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < Nk; ++ix)
-1228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("i (dec): %u\n", ix));
-1230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         temp = AESBCMEMBER(GetWord) (key+(ix*4));
-1231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         w[ix] = temp;
-1232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("kw[%i]: %0.8x\n", ix, temp));
-1233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     limit = AES_Nb * (Nr + 1);
-1236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     pRcon = AESBCMEMBER(Rcon);
-1237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_KEYEXP(("Nk (%u) Nr (%u) limit (%u)\n", Nk, Nr, limit));
-1238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         
-1239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (; ix < limit; ++ix)
-1240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("i (dec): %u %u\n", ix, limit));
-1243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* temp should already be set */
-1245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("temp: %0.8x\n", temp));
-1246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ((ix % Nk) == 0)
-1247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(RotWord)(temp);
-1249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after RotWord: %0.8x \n", temp));
-1250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(SubWord) (temp);
-1251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-1252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("Rcon [i/Nk]: %0.8x\n", *pRcon));
-1253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp ^= *pRcon++;
-1254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after XOR with Rcon: %0.8x \n", temp));
-1255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else if ((Nk > 6) && ((ix % Nk) == 4))
-1257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(SubWord) (temp);
-1259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-1260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("w[i-Nk]: %0.8x\n", w[ix-Nk]));
-1262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         temp ^= w [ix - Nk];
-1263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("kw[ix]: %0.8x\n", temp));
-1264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         w [ix] = temp;
-1265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-1271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-1275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 42
-
-
-1281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-1294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-1298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF
-1301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[2];
-1307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
-1308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = 0;
-1309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = 0;
-1310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-1317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-1321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 
-1324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-1333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 43
-
-
-1338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W3:W3:W3:W3
-1344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-1347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-1351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0xFF);
-1354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W2:W2:W2:W2
-1372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-1375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-1379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0xAA);
-1382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[2];
-1388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[2];
-1389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 44
-
-
-1395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W2:W2:W2:W2
-1400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-1403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-1407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0x55);
-1410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[1];
-1415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[1];
-1417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W0:W0:W0
-1428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-1431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-1435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0x00);
-1438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[0];
-1443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[0];
-1444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 45
-
-
-1452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:X0:X1
-1457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-1460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-1464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (w, x, 0x00);
-1467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u ww;
-1469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u xx;
-1470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
-1472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
-1473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
-1475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
-1476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
-1478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X2:X3:W0:W1
-1489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-1492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-1496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (w, x, 0x01);
-1499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u ww;
-1501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u xx;
-1502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
-1504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
-1505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[0] = ww.columns[2];
-1507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[1] = ww.columns[3];
-1508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 46
-
-
-1509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
-1510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
-1512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X2:X3:W0:W1
-1523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-1526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-1530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (v0, v1, 0x02);
-1533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u t0;
-1535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u t1;
-1536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.state = v0;
-1538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t1.state = v1;
-1539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[2] = t0.columns[0];
-1541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[3] = t0.columns[1];
-1542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[0] = t1.columns[2];
-1543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[1] = t1.columns[3];
-1544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return t0.state;
-1546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W0^W1:W0^W1^W2:W0^W1^W2^W3
-1556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-1559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-1563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 47
-
-
-1566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-1572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] ^= temp.columns[0];
-1578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] ^= temp.columns[1];
-1579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] ^= temp.columns[2];
-1580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-1588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-1592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_AESKEYGENASSIST (state, rcon);
-1595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in;
-1597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u out;
-1598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[0] = AESBCMEMBER(SubWord)(in.columns[1]);
-1604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[1] = AESBCMEMBER(RotWord)(out.columns[0]) ^ rconw;
-1605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[2] = AESBCMEMBER(SubWord)(in.columns[3]);
-1606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[3] = AESBCMEMBER(RotWord)(out.columns[2]) ^ rconw;
-1607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-1615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-1619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 48
-
-
-1623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn1) (tmp);
-1624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
-1634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-1643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-1647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
-1651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn2) (tmp);
-1652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-1658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-1667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-1671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
-1675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn3) (tmp);
-1676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec vrcon;
-1679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 49
-
-
-1680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-1691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #elif USE_VEC && 1
-1695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp;
-1696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [3] = rcon;
-1699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
-1701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-1702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-1703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-1704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, u.state);
-1705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-1706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-1707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-1708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-1709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-1718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
-1719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
-1720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion128) (CipherVec * round_keys, const AESByte * key)
-1731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 971              		.loc 2 1731 0
- 972              		.cfi_startproc
- 973 0014 55       		pushq	%rbp
- 974              	.LCFI2:
- 975              		.cfi_def_cfa_offset 16
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 50
-
-
- 976 0015 4889E5   		movq	%rsp, %rbp
- 977              		.cfi_offset 6, -16
- 978              	.LCFI3:
- 979              		.cfi_def_cfa_register 6
- 980 0018 4157     		pushq	%r15
- 981 001a 4156     		pushq	%r14
- 982 001c 4155     		pushq	%r13
- 983 001e 4154     		pushq	%r12
- 984 0020 53       		pushq	%rbx
- 985 0021 4881EC58 		subq	$10328, %rsp
- 985      280000
- 986 0028 4889BDB8 		movq	%rdi, -9544(%rbp)
- 986      DAFFFF
- 987 002f 4889B5B0 		movq	%rsi, -9552(%rbp)
- 987      DAFFFF
- 988              		.loc 2 1731 0
- 989 0036 488B85B0 		movq	-9552(%rbp), %rax
- 989      DAFFFF
- 990 003d 48898530 		movq	%rax, -6608(%rbp)
- 990      E6FFFF
- 991              	.LBB444:
- 992              	.LBB445:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 993              		.loc 2 134 0
- 994 0044 488B8D30 		movq	-6608(%rbp), %rcx
- 994      E6FFFF
- 995 004b 488D85C0 		leaq	-9536(%rbp), %rax
- 995      DAFFFF
- 996 0052 BA100000 		movl	$16, %edx
- 996      00
- 997 0057 4889CE   		movq	%rcx, %rsi
- 998 005a 4889C7   		movq	%rax, %rdi
- 999              		.cfi_offset 3, -56
- 1000              		.cfi_offset 12, -48
- 1001              		.cfi_offset 13, -40
- 1002              		.cfi_offset 14, -32
- 1003              		.cfi_offset 15, -24
- 1004 005d E8000000 		call	memmove at PLT
- 1004      00
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 1005              		.loc 2 135 0
- 1006 0062 F30F6F85 		movdqu	-9536(%rbp), %xmm0
- 1006      C0DAFFFF 
- 1007              	.LBE445:
- 1008              	.LBE444:
-1732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec state;
-1733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec kgastate;
-1734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(StateIn) (key);
- 1009              		.loc 2 1735 0
- 1010 006a F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 1010      10E6FFFF 
-1736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = state;
- 1011              		.loc 2 1736 0
- 1012 0072 488B85B8 		movq	-9544(%rbp), %rax
- 1012      DAFFFF
- 1013 0079 F30F6F85 		movdqu	-6640(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 51
-
-
- 1013      10E6FFFF 
- 1014 0081 F30F7F00 		movdqu	%xmm0, (%rax)
- 1015 0085 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 1015      10E6FFFF 
- 1016 008d F30F7F85 		movdqu	%xmm0, -6592(%rbp)
- 1016      40E6FFFF 
- 1017              	.LBB446:
- 1018              	.LBB447:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1019              		.loc 2 1681 0
- 1020 0095 B8010000 		movl	$1, %eax
- 1020      00
- 1021 009a 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1021      00000000 
- 1022 00a2 F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 1022      60E6FFFF 
- 1023 00aa 89855CE6 		movl	%eax, -6564(%rbp)
- 1023      FFFF
- 1024              	.LBB448:
- 1025              	.LBB449:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 1026              		.loc 2 522 0
- 1027 00b0 F30F6F85 		movdqu	-6560(%rbp), %xmm0
- 1027      60E6FFFF 
- 1028 00b8 F30F7F85 		movdqu	%xmm0, -9456(%rbp)
- 1028      10DBFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 1029              		.loc 2 523 0
- 1030 00c0 B8030000 		movl	$3, %eax
- 1030      00
- 1031 00c5 4898     		cltq
- 1032 00c7 8B955CE6 		movl	-6564(%rbp), %edx
- 1032      FFFF
- 1033 00cd 89948510 		movl	%edx, -9456(%rbp,%rax,4)
- 1033      DBFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 1034              		.loc 2 524 0
- 1035 00d4 F30F6F85 		movdqu	-9456(%rbp), %xmm0
- 1035      10DBFFFF 
- 1036 00dc F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 1036      60E6FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1037              		.loc 2 526 0
- 1038 00e4 F30F6F85 		movdqu	-6560(%rbp), %xmm0
- 1038      60E6FFFF 
- 1039              	.LBE449:
- 1040              	.LBE448:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1041              		.loc 2 1681 0
- 1042 00ec 660F7F85 		movdqa	%xmm0, -10176(%rbp)
- 1042      40D8FFFF 
- 1043 00f4 F30F6F85 		movdqu	-6592(%rbp), %xmm0
- 1043      40E6FFFF 
- 1044 00fc F30F7F85 		movdqu	%xmm0, -6544(%rbp)
- 1044      70E6FFFF 
- 1045 0104 F30F6F85 		movdqu	-6544(%rbp), %xmm0
- 1045      70E6FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 52
-
-
- 1046 010c F30F7F85 		movdqu	%xmm0, -6512(%rbp)
- 1046      90E6FFFF 
- 1047 0114 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 1047      000000
- 1048 011b 48898588 		movq	%rax, -6520(%rbp)
- 1048      E6FFFF
- 1049              	.LBB450:
- 1050              	.LBB451:
- 1051              	.LBB452:
- 1052              	.LBB453:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 1053              		.loc 2 851 0
- 1054 0122 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1054      00000000 
- 1055 012a F30F7F85 		movdqu	%xmm0, -6480(%rbp)
- 1055      B0E6FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1056              		.loc 2 854 0
- 1057 0132 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1057      00000000 
- 1058 013a F30F6F8D 		movdqu	-6512(%rbp), %xmm1
- 1058      90E6FFFF 
- 1059 0142 F30F7F8D 		movdqu	%xmm1, -6400(%rbp)
- 1059      00E7FFFF 
- 1060 014a F30F7F85 		movdqu	%xmm0, -6416(%rbp)
- 1060      F0E6FFFF 
- 1061              	.LBB454:
- 1062              	.LBB455:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1063              		.loc 2 206 0
- 1064 0152 F30F6F85 		movdqu	-6416(%rbp), %xmm0
- 1064      F0E6FFFF 
- 1065 015a F30F6F8D 		movdqu	-6400(%rbp), %xmm1
- 1065      00E7FFFF 
- 1066 0162 660FDBC1 		pand	%xmm1, %xmm0
- 1067              	.LBE455:
- 1068              	.LBE454:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1069              		.loc 2 854 0
- 1070 0166 F30F7F85 		movdqu	%xmm0, -6432(%rbp)
- 1070      E0E6FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 1071              		.loc 2 862 0
- 1072 016e 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 1072      00000000 
- 1073 0176 F30F6F8D 		movdqu	-6512(%rbp), %xmm1
- 1073      90E6FFFF 
- 1074 017e F30F7F8D 		movdqu	%xmm1, -6368(%rbp)
- 1074      20E7FFFF 
- 1075 0186 F30F7F85 		movdqu	%xmm0, -6384(%rbp)
- 1075      10E7FFFF 
- 1076              	.LBB456:
-1737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE128(rcon,offset) \
-1739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     kgastate = AESBCMEMBER(AesKeyGenAssistColumn3) (state, rcon); \
-1740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftXorColumns) (state); \
-1741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= kgastate; \
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 53
-
-
-1742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = state
-1743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x01,1);
-1745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x02,2);
-1746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x04,3);
-1747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x08,4);
-1748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x10,5);
-1749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x20,6);
-1750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x40,7);
-1751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x80,8);
-1752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x1B,9);
-1753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x36,10);
-1754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion128) (CipherVec * w, const AESByte * key)
-1758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     OUTMSG(("\n\n\n%s: Not my code\n\n\n",__func__));
-1760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_128, AES_Nk_128);
-1761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion192) (CipherVec * round_keys, const AESByte * key)
-1768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* work on three blocks at a time which is two Nr worth
-1770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * we'll build it with 6 words in v0:v1 and 6 words in w0:w1
-1771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * but move them them into v0:v1:v2 before writing them to
-1772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * the key schedule
-1773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-1774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec v0, v1, v2, v3, v4;
-1776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec k;          /* we'll only need one of the key gen assist blocks at a time */
-1777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 0 */
-1779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(StateIn) (key);              /* k0    : k1    : k2     : k3           */
-1780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateIn) (key+8);            /* k2    : k3    : k4     : k5           */
-1781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateShiftRight64) (v1);     /* k4    : k5    : 0      : 0            */
-1782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* K0:K1:K2:K3 */
-1784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 */
-1786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-1789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1, 0x01);                            /* F(k5) : F(k5) : F(k5)  : F(k5)        */
-1790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k0    : k0^k1 :k0^k1^k2:k0^k1^k2^k3   */
-1791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k6    : k7    : k8     : k9           */
-1792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k4    : k4^k5 : k4^k5  : k4^k5        */
-1793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k9    : k9    : k9     : k9           */
-1794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k10   : k11   : k10    : k11          */
-1795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k4    : k5    : k6     : k7           */
-1796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* K4:K5:K6:K7 */
-1797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k8    : k9    : k10    : k11          */
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 54
-
-
-1799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[2] = v2; /* K8:K9:K10:K11 */
-1800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k6    : k6^k7 :k6^k7^k8:k6^k7^k8^k9   */
-1803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k10   :k10^k11: k10^k11: k10^k11      */
-1804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-1805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x02);                             /* F(k11): F(k11): F(k11) : F(k11)       */
-1806:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k12   : k13   : k14    : k15          */
-1807:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[3] = v0; /* K12:K13:K14:K15 */
-1808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k15   : k15   : k15    : k15          */
-1809:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k16   : k17   : k16    : k17          */
-1810:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1811:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1812:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 */
-1813:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1814:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-1816:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x04);                             /* F(k17): F(k17): F(k17) : F(k17)       */
-1817:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k12   :k12^k13:k12^k13^k14:k12^k13^k14^k15 */
-1818:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k18   : k19   : k20    : k21          */
-1819:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k16   :k16^k17: k17    : 0            */
-1820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k21   : k21   : k21    : k21          */
-1821:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k22   : k23   : x      : x            */
-1822:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k16   : k17   : k18    : k19          */
-1823:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[4] = v1; /* K16:K17:K18:K19 */
-1824:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1825:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k20   : k21   : k22    : k23          */
-1826:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[5] = v2; /* K20:K21:K22:K23 */
-1827:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1828:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1829:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k18   :k18^k19:k18^k19^k20:k18^k19^k20^k21 */
-1830:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k22   :k22^k23: k23    : 0            */
-1831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-1832:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x08);                             /* F(k23): F(k23): F(k23) : F(k23)       */
-1833:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k24   : k25   : k26    : k27          */
-1834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k27   : k27   : k27    : k27          */
-1835:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k28   : k29   : x      : x            */
-1836:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1837:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[6] = v0; /* K24:K25:K26:K27 */
-1838:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1839:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 4-15 = 28-39 */
-1840:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1841:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-1843:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x10);                             /* F(k29): F(k29): F(k29) : F(k29)       */
-1844:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k24   :k24^k25:k24^k25^k26:k24^k25^k26^k27 */
-1845:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k30   : k31   : k32    : k33          */
-1846:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k26   :k28^k29: k29    : 0            */
-1847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k33   : k33   : k33    : k33          */
-1848:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k34   : k35   : x      : x            */
-1849:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k28   : k29   : k30    : k31          */
-1850:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[7] = v1; /* K28:K29:K30:K31 */
-1852:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1853:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k32   : k33   : k34    : k35          */
-1854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[8] = v2; /* K32:K33:K34:K35 */
-1855:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 55
-
-
-1856:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k30   :k30^k31:k30^k31^k32:k30^k31^k32^k33 */
-1857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k26   :k26^k27: k27    : 0            */
-1858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-1859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x20);                             /* F(k35): F(k35): F(k35) : F(k35)       */
-1860:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k36   : k37   : k38    : k39          */
-1861:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (v0);       /* k39   : k39   : k39    : k39          */
-1862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k40   : k41   : x      : x            */
-1863:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1864:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[9] = v0; /* K36:K37:K38:K39 */
-1865:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 4-15 = 40-55 but we only need through 51 so we change from pattern 2 to pattern 3 */
-1867:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
-1870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x40);                             /* F(k41): F(k41): F(k41) : F(k41)       */
-1871:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k36   :k36^k37:k36^k37^k38:k36^k37^k38^k39 */
-1872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k40   :k40^k41: x   5  : x            */
-1873:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k42   : k43   : k44    : k45          */
-1874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k45   : k45   : k45    : k45          */
-1875:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k46   : k47   : x      : x            */
-1876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k40   : k41   : k42    : k43          */
-1877:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[10] = v1; /* K40:K41:K42:K43 */
-1878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k44   : k45   : k46    : k47          */
-1879:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[11] = v2; /* K44:K45:K46:K47 */
-1880:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1881:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 3 */
-1882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k42   :k42^k43:k42^k43^k44:k42^k43^k44^k45  *
-1883:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-1884:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        (v2,0x80);  /* F(k47): F(k47): F(k47) : F(k47)       */
-1885:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k48   : k49   : k50    : k51          */
-1886:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[12] = v0;                           /* K48:K49:K50:K51 */
-1887:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1888:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1889:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1890:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion192) (CipherVec * w, const AESByte * key)
-1891:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1892:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_192, AES_Nk_192);
-1893:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1894:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1895:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1896:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1897:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1898:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1899:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----- */
-1900:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1901:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC || 1
-1902:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1903:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion256) (CipherVec * round_keys, const AESByte * key)
-1904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1905:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec v0, v1;
-1906:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec k;
-1907:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1908:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 = AESBCMEMBER (StateIn) (key);
-1909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 = AESBCMEMBER (StateIn) (key + sizeof v0);
-1910:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1911:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* k0  : k1  : k2  : k3  */
-1912:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* k4  : k5  : k6  : k7  */
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 56
-
-
-1913:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1914:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE256_1(offset,rcon)                            \
-1915:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)(v1,rcon); \
-1916:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v0);            \
-1917:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(VecXor) (v0, k);                  \
-1918:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = v0
-1919:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1920:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE256_2(offset) \
-1921:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn2)(v0);      \
-1922:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v1);            \
-1923:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(VecXor) (v1, k);                  \
-1924:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = v1
-1925:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(2,0x01);    /* k8  : k9  : k10 : k11 */
-1927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(3);         /* k12 : k13 : k14 : k15 */
-1928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(4,0x02);    /* k16 : k17 : k18 : k19 */
-1929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(5);         /* k20 : k21 : k22 : k23 */
-1930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(6,0x04);    /* k24 : k25 : k26 : k27 */
-1931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(7);         /* k28 : k29 : k30 : k31 */
-1932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(8,0x08);    /* k32 : k33 : k34 : k35 */
-1933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(9);         /* k36 : k37 : k38 : k39 */
-1934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(10,0x10);   /* k40 : k41 : k42 : k43 */
-1935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(11);        /* k44 : k45 : k46 : k47 */
-1936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(12,0x20);   /* k48 : k49 : k50 : k51 */
-1937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(13);        /* k52 : k53 : k54 : k55 */
-1938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(14,0x40);   /* k56 : k57 : k58 : k59 */
-1939:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1940:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1941:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1942:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion256) (CipherVec * w, const AESByte * key)
-1943:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1944:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_256, AES_Nk_256);
-1945:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1946:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1947:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1948:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1949:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1950:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion) (CipherVec * r, const CipherVec * dr, unsigned Nr)
-1951:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1952:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix, jx;
-1953:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1954:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     jx = Nr;
-1955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ix = 0;
-1956:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix++] = dr[jx--];
-1957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     while (jx)
-1958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         r[ix++] = AESBCMEMBER(InvMixColumns)(dr[jx--]);
-1959:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix] = dr[jx];
-1960:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1961:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1962:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1963:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1964:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion128) (CipherVec * w, const CipherVec * kw)
-1965:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1966:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_128);
-1967:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1968:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1969:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 57
-
-
-1970:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1971:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion192) (CipherVec * w, const CipherVec * kw)
-1972:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1973:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_192);
-1974:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1975:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1976:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1977:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1978:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion256) (CipherVec * w, const CipherVec * kw)
-1979:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1980:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_256);
-1981:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1982:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1983:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1984:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1985:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher First Round
-1986:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1987:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1988:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-1989:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1990:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1991:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1992:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-1993:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
-1995:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-1997:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-1999:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End 1st Round", state);
-2001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2003:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2004:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2005:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2006:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2007:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-2008:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     register const CipherVec round_keys)
-2009:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2010:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2011:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-2013:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     register const CipherVec round_keys)
-2014:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2015:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2016:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mstate;
-2017:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mround_keys;
-2018:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
-2021:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", mstate);
-2023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2024:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2025:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2026:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 58
-
-
-2027:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENC (state, round_keys);
-2028:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
-2030:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
-2032:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
-2034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-2036:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(MixColumns) (state);
-2038:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2039:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* ommited n on purpose */
-2040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After MixColum", state);
-2041:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2043:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-2045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
-2046:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2051:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2052:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-2053:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2054:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2055:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2056:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-2057:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
-2059:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2060:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2061:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENCLAST (state, round_keys);
-2062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
-2064:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
-2066:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
-2068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-2070:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2072:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-2074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
-2075:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2077:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2078:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2079:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2080:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2081:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher
-2082:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2083:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 59
-
-
-2084:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * 
-2085:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** This implementation as stated
-2086:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * above for simplifaction broke out the three types of rounds into
-2087:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * first round, middle rounds, and last round.  This approach was taken
-2088:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for ease of coding for optimization using smaller bytes of code
-2089:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * but inlining of the functions for efficiency
-2090:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2091:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2092:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Cipher) (CipherVec state, const CipherVec * key,
-2093:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                             unsigned Nr)
-2094:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2095:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
-2096:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(FirstRound) (state, key[ix++]);
-2098:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
-2100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(MiddleRound) (state, key[ix] );
-2101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(LastRound) (state, key[ix]);
-2103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 
-2107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Section 5.1 of FIPS 197
-2108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This set of routines implements our structured wrapping of the 
-2110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   FIPS-197 Section 5.3.5 Equivalent Inverse Cipher.  In particular
-2111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   figure 15 Pseudo Code for the Equivalent Inverse Cipher.
-2112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The FIPS pseudocode has a single function which we have broken out 
-2114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   into three kinds of rounds - first round, middle rounds and last
-2115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   round as we have also done with the cipher rountine.
-2116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The EqInvCipher operates on whole cipher blocks so the Byte and Block
-2118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   code is the same here until subroutines of the round functions are
-2119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   called.  
-2120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 
-2123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * First round of equivalent inverse cipher is merely an XOR against the
-2124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * round key.
-2125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-2128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-2132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-2134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(AddRoundKey) (state, round_keys);
-2136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-2138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
-2139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 60
-
-
-2141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * middle rounds of the equivalent inverse cipher perform four steps
-2145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvSubBytes (inverse substitute bytes
-2146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvShiftRows (inverse shift rows
-2147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvMixColumns (inverse mix columns)
-2148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   AddRoundKey   (xor against the round key)
-2149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the AES-NI instruction set from until implments all four steps with 
-2151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * a single instruction
-2152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-2156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                          register CipherVec round_keys)
-2157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-2161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                          register CipherVec round_keys)
-2162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mstate;
-2165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mround_keys;
-2166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
-2169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", mstate);
-2172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* 
-2174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * AES-NI implmentation
-2175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDEC (state, round_keys);
-2179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else /* #if USE_AES_NI */
-2181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * All other implementations
-2184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
-2186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", mstate);
-2191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
-2194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 61
-
-
-2198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", mstate);
-2199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvMixColumns) (state);
-2202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvMixCo", mstate);
-2207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", mround_keys);
-2216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", mstate);
-2218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif /* #if USE_AES_NI */
-2219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The final round of the equivalent inverse cipher is the same as 
-2226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the middle rounds with the ommission of the InvMixColumns step.
-2227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-2230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        register CipherVec round_keys)
-2231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-2235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        register CipherVec round_keys)
-2236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-2238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDECLAST (state, round_keys);
-2241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
-2244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", state);
-2246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
-2248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", state);
-2250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-2254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 62
-
-
-2255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The EqInvCipher functions (is defined in Figure 15 'Pseudo Code for
-2262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for the Equivalent Inverse Cipher.  This implementation as stated
-2263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * above for simplifaction broke out the three types of rounds into
-2264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * first round, middle rounds, and last round.  This approach was taken
-2265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for ease of coding for optimization using smaller bytes of code
-2266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * but inlining of the functions for efficiency
-2267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static /*__inline__*/
-2269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvCipher) (CipherVec state, const CipherVec * key,
-2270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     unsigned Nr)
-2271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
-2273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(EqInvFirstRound) (state, key[ix++]);
-2275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
-2277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvMiddleRound) (state, key[ix] );
-2278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(EqInvLastRound) (state, key[ix]);
-2280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
-2284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This section of the file is the use of the cipher defined above within
-2285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * our BlockCipherObject.
-2286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * These are the functions that will be directly referenced in the vector
-2288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * table for the block cipher.  These are not specifically derived from
-2289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the FIPS-197 document.
-2290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "blockcipher-impl.h"
-2292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** typedef struct AES_CLASS AES_CLASS;
-2294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const char AESBCMEMBER(aes_ncbi_name) [] = CLASS_STRING(AES_CLASS);
-2296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Destroy
-2300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-2301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   to create this key (key schedule)
-2302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-2304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-2305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(Destroy) (const BLOCKCIPHER_VEC_IMPL * self)
-2308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* we use a constant object so do nothing */
-2310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 63
-
-
-2312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * BlockSize
-2315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint32_t AESBCMEMBER(BlockSize) ()
-2318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESBlock);
-2320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * KeySize
-2325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-2326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   to create this key (key schedule)
-2327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-2329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-2330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint32_t AESBCMEMBER(KeySize) ()
-2333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESKeySchedule);
-2335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SetEncryptKey
-2340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The KCipher calls this to have the block cipher build an encryption
-2341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   key in the KCipher object
-2342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(SetEncryptKey) (void * encrypt_key, const char * user_key,
-2346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  uint32_t user_key_size)
-2347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESKeySchedule * key;
-2350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = 0;
-2352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     key = encrypt_key;
-2353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (user_key_size)
-2355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_128 * sizeof (AESWord):
-2357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_128;
-2358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion128) (key->round_keys, (AESByte*)user_key);
-2359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_192 * sizeof (AESWord):
-2362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_192;
-2363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion192) (key->round_keys, (AESByte*)user_key);
-2364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_256 * sizeof (AESWord):
-2367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_256;
-2368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion256) (key->round_keys, (AESByte*)user_key);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 64
-
-
-2369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = 0;
-2373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         memset (key, 0, sizeof (*key));
-2374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcUpdating, rcParam, rcInvalid);
-2375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
-2378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SetDecryptKey
-2383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The KCipher calls this to have the block cipher build an decryption
-2384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   key in the KCipher object
-2385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(SetDecryptKey) (void * decrypt_key,
-2389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  const char * user_key,
-2390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  uint32_t user_key_size)
-2391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESKeySchedule encrypt_key;
-2393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = AESBCMEMBER(SetEncryptKey) (&encrypt_key, user_key, user_key_size);
-2396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (rc == 0)
-2397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESKeySchedule * key;
-2399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key = decrypt_key;
-2401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         switch (key->number_of_rounds = encrypt_key.number_of_rounds)
-2403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-2404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_128:
-2405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion128) (key->round_keys,
-2406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
-2408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_192:
-2410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion192) (key->round_keys,
-2411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
-2413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_256:
-2415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion256) (key->round_keys,
-2416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
-2418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-2419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
-2421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Encrypt
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 65
-
-
-2426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Perform an encryption of a single block.  Chained modes and stream
-2428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   cipher modes will call this multiple times.
-2429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Encrypt) (CipherVec state,
-2433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                 const void * encrypt_key)
-2434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = encrypt_key;
-2436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
-2437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
-2439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00;
-2442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_128:
-2445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_128);
-2446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_192:
-2449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_192);
-2450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_256:
-2453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_256);
-2454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Decrypt
-2463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Perform a decryption of a single block.  Chained modes and stream
-2465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   cipher modes will call this multiple times.
-2466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Decrypt) (CipherVec state,
-2469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                 const void * decrypt_key)
-2470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = decrypt_key;
-2472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
-2474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
-2476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00; /* for an illegal cipher key schedule just write zeroes */
-2479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_128:
-2482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 66
-
-
-2483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_128);
-2484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_192:
-2487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
-2488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_192);
-2489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_256:
-2492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
-2493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_256);
-2494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * MakeProcessorSupport
-2503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Run-time check for support of this particular AES implmentation by
-2505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * checking the flags given via the cpuid instruction.
-2506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** bool AESBCMEMBER(ProcessorSupport) ()
-2509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     uint32_t level = 1, a, b, c, d;
-2511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     bool ret = true;
-2512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __cpuid (level, a, b, c, d);
-2514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: level %x a %x, b %x c %x d %x\n",__func__, level, a,b,c,d));
-2516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * Only one flag tells whether the AES-NI instructions
-2520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * are implmented in this CPU
-2521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if ( ! (c & bit_AES))
-2523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no AES\n",__func__));
-2525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     } else
-2527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-2530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * Several flags indicate different levels of SSE
-2532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * instruction implmentation
-2533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      *
-2534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * we require SSE4.1
-2535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      *
-2536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * that dates from 2006 so is most likely good enough
-2537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* if ( ! (c & (bit_SSE4_2))
-2539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 67
-
-
-2540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-2541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else */
-2545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ( ! (c & bit_SSE4_1))
-2546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-2548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (c & bit_SSSE3))
-2552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-2554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (c & bit_SSE3))
-2558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE3\n",__func__));
-2560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (d & bit_SSE2))
-2564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE2\n",__func__));
-2566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (d & bit_SSE))
-2570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE\n",__func__));
-2572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: passed\n",__func__));
-2576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ret;
-2577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Init
-2582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Initialize the fields of this object.  The derived class will call this
-2584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   during it's initialization.
-2585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * self      object to initialze
-2587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * vt        the virtual table of the derived class
-2588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * mgr       the cipher manager that is the construction factory block cipher
-2589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           objects hold references to the manager while the manager merely
-2590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           points at the block ciphers when all block ciphers are destroyed
-2591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           the manager loses its references and it too can be destroyed if not
-2592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           held elsewhere
-2593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * name      ASCIZ c-string the name of this class
-2594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-2596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** KBlockCipherVec_vt_v1 AESBCMEMBER(_vt_) = 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 68
-
-
-2597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 1, 1 },
-2599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Destroy),
-2601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(BlockSize),
-2602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeySize),
-2603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(SetEncryptKey),
-2604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(SetDecryptKey),
-2605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Encrypt),
-2606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Decrypt)
-2607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
-2608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Make
-2612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Create a new AES Block Cipher object.
-2614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The processor is checked to see if this particular version is supported on
-2615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * this particular CPU.
-2616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(Make) (KBlockCipher ** new_obj)
-2618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: %p\n",__func__,new_obj));
-2622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* Check parameter first */
-2624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (new_obj == NULL)
-2625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-2626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else
-2628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         *new_obj = NULL;
-2630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* check for processor support of this flavor */
-2632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ( ! AESBCMEMBER(ProcessorSupport)())
-2633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
-2634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else
-2636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-2637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = 0;
-2638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             *new_obj = (KBlockCipher*)&(AESBCMEMBER(_vt_));
-2639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-2640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
-2642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 1077              		.loc 2 2642 0
- 1078 018e 0FB68520 		movzbl	-6368(%rbp), %eax
- 1078      E7FFFF
- 1079 0195 0FB69510 		movzbl	-6384(%rbp), %edx
- 1079      E7FFFF
- 1080 019c 0FB6C0   		movzbl	%al, %eax
- 1081 019f 6689858E 		movw	%ax, -10354(%rbp)
- 1081      D7FFFF
- 1082 01a6 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1082      D7FFFF
- 1083 01ad F6F2     		divb	%dl
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 69
-
-
- 1084 01af 4189C7   		movl	%eax, %r15d
- 1085 01b2 0FB68521 		movzbl	-6367(%rbp), %eax
- 1085      E7FFFF
- 1086 01b9 0FB69511 		movzbl	-6383(%rbp), %edx
- 1086      E7FFFF
- 1087 01c0 0FB6C0   		movzbl	%al, %eax
- 1088 01c3 6689858E 		movw	%ax, -10354(%rbp)
- 1088      D7FFFF
- 1089 01ca 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1089      D7FFFF
- 1090 01d1 F6F2     		divb	%dl
- 1091 01d3 88855FD8 		movb	%al, -10145(%rbp)
- 1091      FFFF
- 1092 01d9 0FB68522 		movzbl	-6366(%rbp), %eax
- 1092      E7FFFF
- 1093 01e0 0FB69512 		movzbl	-6382(%rbp), %edx
- 1093      E7FFFF
- 1094 01e7 0FB6C0   		movzbl	%al, %eax
- 1095 01ea 6689858E 		movw	%ax, -10354(%rbp)
- 1095      D7FFFF
- 1096 01f1 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1096      D7FFFF
- 1097 01f8 F6F2     		divb	%dl
- 1098 01fa 88855ED8 		movb	%al, -10146(%rbp)
- 1098      FFFF
- 1099 0200 0FB68523 		movzbl	-6365(%rbp), %eax
- 1099      E7FFFF
- 1100 0207 0FB69513 		movzbl	-6381(%rbp), %edx
- 1100      E7FFFF
- 1101 020e 0FB6C0   		movzbl	%al, %eax
- 1102 0211 6689858E 		movw	%ax, -10354(%rbp)
- 1102      D7FFFF
- 1103 0218 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1103      D7FFFF
- 1104 021f F6F2     		divb	%dl
- 1105 0221 88855DD8 		movb	%al, -10147(%rbp)
- 1105      FFFF
- 1106 0227 0FB68524 		movzbl	-6364(%rbp), %eax
- 1106      E7FFFF
- 1107 022e 0FB69514 		movzbl	-6380(%rbp), %edx
- 1107      E7FFFF
- 1108 0235 0FB6C0   		movzbl	%al, %eax
- 1109 0238 6689858E 		movw	%ax, -10354(%rbp)
- 1109      D7FFFF
- 1110 023f 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1110      D7FFFF
- 1111 0246 F6F2     		divb	%dl
- 1112 0248 88855CD8 		movb	%al, -10148(%rbp)
- 1112      FFFF
- 1113 024e 0FB68525 		movzbl	-6363(%rbp), %eax
- 1113      E7FFFF
- 1114 0255 0FB69515 		movzbl	-6379(%rbp), %edx
- 1114      E7FFFF
- 1115 025c 0FB6C0   		movzbl	%al, %eax
- 1116 025f 6689858E 		movw	%ax, -10354(%rbp)
- 1116      D7FFFF
- 1117 0266 0FB7858E 		movzwl	-10354(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 70
-
-
- 1117      D7FFFF
- 1118 026d F6F2     		divb	%dl
- 1119 026f 4189C1   		movl	%eax, %r9d
- 1120 0272 0FB68526 		movzbl	-6362(%rbp), %eax
- 1120      E7FFFF
- 1121 0279 0FB69516 		movzbl	-6378(%rbp), %edx
- 1121      E7FFFF
- 1122 0280 0FB6C0   		movzbl	%al, %eax
- 1123 0283 6689858E 		movw	%ax, -10354(%rbp)
- 1123      D7FFFF
- 1124 028a 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1124      D7FFFF
- 1125 0291 F6F2     		divb	%dl
- 1126 0293 89C7     		movl	%eax, %edi
- 1127 0295 0FB68527 		movzbl	-6361(%rbp), %eax
- 1127      E7FFFF
- 1128 029c 0FB69517 		movzbl	-6377(%rbp), %edx
- 1128      E7FFFF
- 1129 02a3 0FB6C0   		movzbl	%al, %eax
- 1130 02a6 6689858E 		movw	%ax, -10354(%rbp)
- 1130      D7FFFF
- 1131 02ad 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1131      D7FFFF
- 1132 02b4 F6F2     		divb	%dl
- 1133 02b6 89C3     		movl	%eax, %ebx
- 1134 02b8 0FB68528 		movzbl	-6360(%rbp), %eax
- 1134      E7FFFF
- 1135 02bf 0FB69518 		movzbl	-6376(%rbp), %edx
- 1135      E7FFFF
- 1136 02c6 0FB6C0   		movzbl	%al, %eax
- 1137 02c9 6689858E 		movw	%ax, -10354(%rbp)
- 1137      D7FFFF
- 1138 02d0 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1138      D7FFFF
- 1139 02d7 F6F2     		divb	%dl
- 1140 02d9 4189C2   		movl	%eax, %r10d
- 1141 02dc 0FB68529 		movzbl	-6359(%rbp), %eax
- 1141      E7FFFF
- 1142 02e3 0FB69519 		movzbl	-6375(%rbp), %edx
- 1142      E7FFFF
- 1143 02ea 0FB6C0   		movzbl	%al, %eax
- 1144 02ed 6689858E 		movw	%ax, -10354(%rbp)
- 1144      D7FFFF
- 1145 02f4 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1145      D7FFFF
- 1146 02fb F6F2     		divb	%dl
- 1147 02fd 4189C3   		movl	%eax, %r11d
- 1148 0300 0FB6852A 		movzbl	-6358(%rbp), %eax
- 1148      E7FFFF
- 1149 0307 0FB6951A 		movzbl	-6374(%rbp), %edx
- 1149      E7FFFF
- 1150 030e 0FB6C0   		movzbl	%al, %eax
- 1151 0311 6689858E 		movw	%ax, -10354(%rbp)
- 1151      D7FFFF
- 1152 0318 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1152      D7FFFF
- 1153 031f F6F2     		divb	%dl
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 71
-
-
- 1154 0321 4189C4   		movl	%eax, %r12d
- 1155 0324 0FB6852B 		movzbl	-6357(%rbp), %eax
- 1155      E7FFFF
- 1156 032b 0FB6951B 		movzbl	-6373(%rbp), %edx
- 1156      E7FFFF
- 1157 0332 0FB6C0   		movzbl	%al, %eax
- 1158 0335 6689858E 		movw	%ax, -10354(%rbp)
- 1158      D7FFFF
- 1159 033c 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1159      D7FFFF
- 1160 0343 F6F2     		divb	%dl
- 1161 0345 4189C5   		movl	%eax, %r13d
- 1162 0348 0FB6852C 		movzbl	-6356(%rbp), %eax
- 1162      E7FFFF
- 1163 034f 0FB6951C 		movzbl	-6372(%rbp), %edx
- 1163      E7FFFF
- 1164 0356 0FB6C0   		movzbl	%al, %eax
- 1165 0359 6689858E 		movw	%ax, -10354(%rbp)
- 1165      D7FFFF
- 1166 0360 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1166      D7FFFF
- 1167 0367 F6F2     		divb	%dl
- 1168 0369 4189C6   		movl	%eax, %r14d
- 1169 036c 0FB6852D 		movzbl	-6355(%rbp), %eax
- 1169      E7FFFF
- 1170 0373 0FB6951D 		movzbl	-6371(%rbp), %edx
- 1170      E7FFFF
- 1171 037a 0FB6C0   		movzbl	%al, %eax
- 1172 037d 6689858E 		movw	%ax, -10354(%rbp)
- 1172      D7FFFF
- 1173 0384 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1173      D7FFFF
- 1174 038b F6F2     		divb	%dl
- 1175 038d 4189C0   		movl	%eax, %r8d
- 1176 0390 0FB6852E 		movzbl	-6354(%rbp), %eax
- 1176      E7FFFF
- 1177 0397 0FB6951E 		movzbl	-6370(%rbp), %edx
- 1177      E7FFFF
- 1178 039e 0FB6C0   		movzbl	%al, %eax
- 1179 03a1 6689858E 		movw	%ax, -10354(%rbp)
- 1179      D7FFFF
- 1180 03a8 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1180      D7FFFF
- 1181 03af F6F2     		divb	%dl
- 1182 03b1 89C6     		movl	%eax, %esi
- 1183 03b3 0FB6852F 		movzbl	-6353(%rbp), %eax
- 1183      E7FFFF
- 1184 03ba 0FB6951F 		movzbl	-6369(%rbp), %edx
- 1184      E7FFFF
- 1185 03c1 0FB6C0   		movzbl	%al, %eax
- 1186 03c4 6689858E 		movw	%ax, -10354(%rbp)
- 1186      D7FFFF
- 1187 03cb 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1187      D7FFFF
- 1188 03d2 F6F2     		divb	%dl
- 1189 03d4 89C1     		movl	%eax, %ecx
- 1190              	.LBB457:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 72
-
-
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 1191              		.loc 2 346 0
- 1192 03d6 0FB6D3   		movzbl	%bl, %edx
- 1193 03d9 400FB6C7 		movzbl	%dil, %eax
- 1194 03dd 48C1E208 		salq	$8, %rdx
- 1195 03e1 4809C2   		orq	%rax, %rdx
- 1196 03e4 410FB6C1 		movzbl	%r9b, %eax
- 1197 03e8 48C1E208 		salq	$8, %rdx
- 1198 03ec 4809C2   		orq	%rax, %rdx
- 1199 03ef 0FB6855C 		movzbl	-10148(%rbp), %eax
- 1199      D8FFFF
- 1200 03f6 48C1E208 		salq	$8, %rdx
- 1201 03fa 4809C2   		orq	%rax, %rdx
- 1202 03fd 0FB6855D 		movzbl	-10147(%rbp), %eax
- 1202      D8FFFF
- 1203 0404 48C1E208 		salq	$8, %rdx
- 1204 0408 4809C2   		orq	%rax, %rdx
- 1205 040b 0FB6855E 		movzbl	-10146(%rbp), %eax
- 1205      D8FFFF
- 1206 0412 48C1E208 		salq	$8, %rdx
- 1207 0416 4809C2   		orq	%rax, %rdx
- 1208 0419 0FB6855F 		movzbl	-10145(%rbp), %eax
- 1208      D8FFFF
- 1209 0420 48C1E208 		salq	$8, %rdx
- 1210 0424 4809C2   		orq	%rax, %rdx
- 1211 0427 410FB6C7 		movzbl	%r15b, %eax
- 1212 042b 48C1E208 		salq	$8, %rdx
- 1213 042f 4809C2   		orq	%rax, %rdx
- 1214 0432 0FB6C1   		movzbl	%cl, %eax
- 1215 0435 400FB6CE 		movzbl	%sil, %ecx
- 1216 0439 48C1E008 		salq	$8, %rax
- 1217 043d 4809C8   		orq	%rcx, %rax
- 1218 0440 410FB6C8 		movzbl	%r8b, %ecx
- 1219 0444 48C1E008 		salq	$8, %rax
- 1220 0448 4809C8   		orq	%rcx, %rax
- 1221 044b 410FB6CE 		movzbl	%r14b, %ecx
- 1222 044f 48C1E008 		salq	$8, %rax
- 1223 0453 4809C8   		orq	%rcx, %rax
- 1224 0456 410FB6CD 		movzbl	%r13b, %ecx
- 1225 045a 48C1E008 		salq	$8, %rax
- 1226 045e 4809C8   		orq	%rcx, %rax
- 1227 0461 410FB6CC 		movzbl	%r12b, %ecx
- 1228 0465 48C1E008 		salq	$8, %rax
- 1229 0469 4809C8   		orq	%rcx, %rax
- 1230 046c 410FB6CB 		movzbl	%r11b, %ecx
- 1231 0470 48C1E008 		salq	$8, %rax
- 1232 0474 4809C8   		orq	%rcx, %rax
- 1233 0477 410FB6CA 		movzbl	%r10b, %ecx
- 1234 047b 48C1E008 		salq	$8, %rax
- 1235 047f 4809C8   		orq	%rcx, %rax
- 1236 0482 48899520 		movq	%rdx, -10208(%rbp)
- 1236      D8FFFF
- 1237 0489 48898528 		movq	%rax, -10200(%rbp)
- 1237      D8FFFF
- 1238 0490 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 1238      20D8FFFF 
- 1239              	.LBE457:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 73
-
-
- 1240              	.LBE456:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 1241              		.loc 2 862 0
- 1242 0498 F30F7F85 		movdqu	%xmm0, -6448(%rbp)
- 1242      D0E6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 1243              		.loc 2 866 0
- 1244 04a0 C785ACE6 		movl	$0, -6484(%rbp)
- 1244      FFFF0000 
- 1244      0000
- 1245 04aa E9860200 		jmp	.L4
- 1245      00
- 1246              	.L13:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 1247              		.loc 2 868 0
- 1248 04af 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 1248      00000000 
- 1249 04b7 F30F7F85 		movdqu	%xmm0, -6336(%rbp)
- 1249      40E7FFFF 
- 1250 04bf F30F6F85 		movdqu	-6448(%rbp), %xmm0
- 1250      D0E6FFFF 
- 1251 04c7 F30F7F85 		movdqu	%xmm0, -6352(%rbp)
- 1251      30E7FFFF 
- 1252              	.LBB458:
- 1253              	.LBB459:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 1254              		.loc 2 380 0
- 1255 04cf F30F6F85 		movdqu	-6336(%rbp), %xmm0
- 1255      40E7FFFF 
- 1256 04d7 F30F7F85 		movdqu	%xmm0, -9424(%rbp)
- 1256      30DBFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 1257              		.loc 2 381 0
- 1258 04df F30F6F85 		movdqu	-6352(%rbp), %xmm0
- 1258      30E7FFFF 
- 1259 04e7 F30F7F85 		movdqu	%xmm0, -9440(%rbp)
- 1259      20DBFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 1260              		.loc 2 383 0
- 1261 04ef C7855CE7 		movl	$0, -6308(%rbp)
- 1261      FFFF0000 
- 1261      0000
- 1262 04f9 EB5C     		jmp	.L5
- 1263              	.L8:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 1264              		.loc 2 385 0
- 1265 04fb 8B855CE7 		movl	-6308(%rbp), %eax
- 1265      FFFF
- 1266 0501 89C0     		mov	%eax, %eax
- 1267 0503 0FB68405 		movzbl	-9440(%rbp,%rax), %eax
- 1267      20DBFFFF 
- 1268 050b 84C0     		testb	%al, %al
- 1269 050d 7912     		jns	.L6
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 1270              		.loc 2 386 0
- 1271 050f 8B855CE7 		movl	-6308(%rbp), %eax
- 1271      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 74
-
-
- 1272 0515 89C0     		mov	%eax, %eax
- 1273 0517 C6840540 		movb	$0, -9408(%rbp,%rax)
- 1273      DBFFFF00 
- 1274 051f EB2F     		jmp	.L7
- 1275              	.L6:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 1276              		.loc 2 388 0
- 1277 0521 8B8D5CE7 		movl	-6308(%rbp), %ecx
- 1277      FFFF
- 1278 0527 8B855CE7 		movl	-6308(%rbp), %eax
- 1278      FFFF
- 1279 052d 89C0     		mov	%eax, %eax
- 1280 052f 0FB68405 		movzbl	-9440(%rbp,%rax), %eax
- 1280      20DBFFFF 
- 1281 0537 0FB6C0   		movzbl	%al, %eax
- 1282 053a 83E00F   		andl	$15, %eax
- 1283 053d 4898     		cltq
- 1284 053f 0FB69405 		movzbl	-9424(%rbp,%rax), %edx
- 1284      30DBFFFF 
- 1285 0547 89C8     		mov	%ecx, %eax
- 1286 0549 88940540 		movb	%dl, -9408(%rbp,%rax)
- 1286      DBFFFF
- 1287              	.L7:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 1288              		.loc 2 383 0
- 1289 0550 83855CE7 		addl	$1, -6308(%rbp)
- 1289      FFFF01
- 1290              	.L5:
- 1291 0557 83BD5CE7 		cmpl	$15, -6308(%rbp)
- 1291      FFFF0F
- 1292 055e 769B     		jbe	.L8
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 1293              		.loc 2 391 0
- 1294 0560 F30F6F85 		movdqu	-9408(%rbp), %xmm0
- 1294      40DBFFFF 
- 1295              	.LBE459:
- 1296              	.LBE458:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 1297              		.loc 2 868 0
- 1298 0568 F30F7F85 		movdqu	%xmm0, -6464(%rbp)
- 1298      C0E6FFFF 
- 1299 0570 F30F6F85 		movdqu	-6432(%rbp), %xmm0
- 1299      E0E6FFFF 
- 1300 0578 F30F7F85 		movdqu	%xmm0, -6288(%rbp)
- 1300      70E7FFFF 
- 1301 0580 F30F6F85 		movdqu	-6464(%rbp), %xmm0
- 1301      C0E6FFFF 
- 1302 0588 F30F7F85 		movdqu	%xmm0, -6304(%rbp)
- 1302      60E7FFFF 
- 1303              	.LBB460:
- 1304              	.LBB461:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 1305              		.loc 2 234 0
- 1306 0590 F30F6F85 		movdqu	-6304(%rbp), %xmm0
- 1306      60E7FFFF 
- 1307 0598 F30F6F8D 		movdqu	-6288(%rbp), %xmm1
- 1307      70E7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 75
-
-
- 1308 05a0 660FEBC1 		por	%xmm1, %xmm0
- 1309              	.LBE461:
- 1310              	.LBE460:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 1311              		.loc 2 870 0
- 1312 05a4 F30F7F85 		movdqu	%xmm0, -6464(%rbp)
- 1312      C0E6FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 1313              		.loc 2 872 0
- 1314 05ac 8B85ACE6 		mov	-6484(%rbp), %eax
- 1314      FFFF
- 1315 05b2 48C1E004 		salq	$4, %rax
- 1316 05b6 48038588 		addq	-6520(%rbp), %rax
- 1316      E6FFFF
- 1317 05bd 660F6F00 		movdqa	(%rax), %xmm0
- 1318 05c1 F30F7F85 		movdqu	%xmm0, -6256(%rbp)
- 1318      90E7FFFF 
- 1319 05c9 F30F6F85 		movdqu	-6464(%rbp), %xmm0
- 1319      C0E6FFFF 
- 1320 05d1 F30F7F85 		movdqu	%xmm0, -6272(%rbp)
- 1320      80E7FFFF 
- 1321              	.LBB462:
- 1322              	.LBB463:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 1323              		.loc 2 380 0
- 1324 05d9 F30F6F85 		movdqu	-6256(%rbp), %xmm0
- 1324      90E7FFFF 
- 1325 05e1 F30F7F85 		movdqu	%xmm0, -9376(%rbp)
- 1325      60DBFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 1326              		.loc 2 381 0
- 1327 05e9 F30F6F85 		movdqu	-6272(%rbp), %xmm0
- 1327      80E7FFFF 
- 1328 05f1 F30F7F85 		movdqu	%xmm0, -9392(%rbp)
- 1328      50DBFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 1329              		.loc 2 383 0
- 1330 05f9 C785ACE7 		movl	$0, -6228(%rbp)
- 1330      FFFF0000 
- 1330      0000
- 1331 0603 EB5C     		jmp	.L9
- 1332              	.L12:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 1333              		.loc 2 385 0
- 1334 0605 8B85ACE7 		movl	-6228(%rbp), %eax
- 1334      FFFF
- 1335 060b 89C0     		mov	%eax, %eax
- 1336 060d 0FB68405 		movzbl	-9392(%rbp,%rax), %eax
- 1336      50DBFFFF 
- 1337 0615 84C0     		testb	%al, %al
- 1338 0617 7912     		jns	.L10
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 1339              		.loc 2 386 0
- 1340 0619 8B85ACE7 		movl	-6228(%rbp), %eax
- 1340      FFFF
- 1341 061f 89C0     		mov	%eax, %eax
- 1342 0621 C6840570 		movb	$0, -9360(%rbp,%rax)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 76
-
-
- 1342      DBFFFF00 
- 1343 0629 EB2F     		jmp	.L11
- 1344              	.L10:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 1345              		.loc 2 388 0
- 1346 062b 8B8DACE7 		movl	-6228(%rbp), %ecx
- 1346      FFFF
- 1347 0631 8B85ACE7 		movl	-6228(%rbp), %eax
- 1347      FFFF
- 1348 0637 89C0     		mov	%eax, %eax
- 1349 0639 0FB68405 		movzbl	-9392(%rbp,%rax), %eax
- 1349      50DBFFFF 
- 1350 0641 0FB6C0   		movzbl	%al, %eax
- 1351 0644 83E00F   		andl	$15, %eax
- 1352 0647 4898     		cltq
- 1353 0649 0FB69405 		movzbl	-9376(%rbp,%rax), %edx
- 1353      60DBFFFF 
- 1354 0651 89C8     		mov	%ecx, %eax
- 1355 0653 88940570 		movb	%dl, -9360(%rbp,%rax)
- 1355      DBFFFF
- 1356              	.L11:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 1357              		.loc 2 383 0
- 1358 065a 8385ACE7 		addl	$1, -6228(%rbp)
- 1358      FFFF01
- 1359              	.L9:
- 1360 0661 83BDACE7 		cmpl	$15, -6228(%rbp)
- 1360      FFFF0F
- 1361 0668 769B     		jbe	.L12
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 1362              		.loc 2 391 0
- 1363 066a F30F6F85 		movdqu	-9360(%rbp), %xmm0
- 1363      70DBFFFF 
- 1364              	.LBE463:
- 1365              	.LBE462:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 1366              		.loc 2 872 0
- 1367 0672 F30F7F85 		movdqu	%xmm0, -6464(%rbp)
- 1367      C0E6FFFF 
- 1368 067a F30F6F85 		movdqu	-6480(%rbp), %xmm0
- 1368      B0E6FFFF 
- 1369 0682 F30F7F85 		movdqu	%xmm0, -6208(%rbp)
- 1369      C0E7FFFF 
- 1370 068a F30F6F85 		movdqu	-6464(%rbp), %xmm0
- 1370      C0E6FFFF 
- 1371 0692 F30F7F85 		movdqu	%xmm0, -6224(%rbp)
- 1371      B0E7FFFF 
- 1372              	.LBB464:
- 1373              	.LBB465:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 1374              		.loc 2 234 0
- 1375 069a F30F6F85 		movdqu	-6224(%rbp), %xmm0
- 1375      B0E7FFFF 
- 1376 06a2 F30F6F8D 		movdqu	-6208(%rbp), %xmm1
- 1376      C0E7FFFF 
- 1377 06aa 660FEBC1 		por	%xmm1, %xmm0
- 1378              	.LBE465:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 77
-
-
- 1379              	.LBE464:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 1380              		.loc 2 874 0
- 1381 06ae F30F7F85 		movdqu	%xmm0, -6480(%rbp)
- 1381      B0E6FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 1382              		.loc 2 876 0
- 1383 06b6 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 1383      00000000 
- 1384 06be F30F6F8D 		movdqu	-6448(%rbp), %xmm1
- 1384      D0E6FFFF 
- 1385 06c6 F30F7F8D 		movdqu	%xmm1, -6176(%rbp)
- 1385      E0E7FFFF 
- 1386 06ce F30F7F85 		movdqu	%xmm0, -6192(%rbp)
- 1386      D0E7FFFF 
- 1387              	.LBB466:
- 1388              	.LBB467:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 1389              		.loc 2 290 0
- 1390 06d6 F30F6F8D 		movdqu	-6192(%rbp), %xmm1
- 1390      D0E7FFFF 
- 1391 06de F30F6F85 		movdqu	-6176(%rbp), %xmm0
- 1391      E0E7FFFF 
- 1392 06e6 660FF8C1 		psubb	%xmm1, %xmm0
- 1393              	.LBE467:
- 1394              	.LBE466:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 1395              		.loc 2 876 0
- 1396 06ea F30F7F85 		movdqu	%xmm0, -6448(%rbp)
- 1396      D0E6FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1397              		.loc 2 878 0
- 1398 06f2 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1398      00000000 
- 1399 06fa F30F6F8D 		movdqu	-6448(%rbp), %xmm1
- 1399      D0E6FFFF 
- 1400 0702 F30F7F8D 		movdqu	%xmm1, -6144(%rbp)
- 1400      00E8FFFF 
- 1401 070a F30F7F85 		movdqu	%xmm0, -6160(%rbp)
- 1401      F0E7FFFF 
- 1402              	.LBB468:
- 1403              	.LBB469:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1404              		.loc 2 206 0
- 1405 0712 F30F6F85 		movdqu	-6160(%rbp), %xmm0
- 1405      F0E7FFFF 
- 1406 071a F30F6F8D 		movdqu	-6144(%rbp), %xmm1
- 1406      00E8FFFF 
- 1407 0722 660FDBC1 		pand	%xmm1, %xmm0
- 1408              	.LBE469:
- 1409              	.LBE468:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1410              		.loc 2 878 0
- 1411 0726 F30F7F85 		movdqu	%xmm0, -6448(%rbp)
- 1411      D0E6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 1412              		.loc 2 866 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 78
-
-
- 1413 072e 8385ACE6 		addl	$1, -6484(%rbp)
- 1413      FFFF01
- 1414              	.L4:
- 1415 0735 83BDACE6 		cmpl	$15, -6484(%rbp)
- 1415      FFFF0F
- 1416 073c 0F866DFD 		jbe	.L13
- 1416      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 1417              		.loc 2 882 0
- 1418 0742 F30F6F85 		movdqu	-6480(%rbp), %xmm0
- 1418      B0E6FFFF 
- 1419              	.LBE453:
- 1420              	.LBE452:
- 1421              	.LBE451:
- 1422              	.LBE450:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 1423              		.loc 2 1682 0
- 1424 074a 660F7F85 		movdqa	%xmm0, -10192(%rbp)
- 1424      30D8FFFF 
- 1425              	.LBB470:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 1426              		.loc 2 1683 0
- 1427 0752 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1427      30D8FFFF 
- 1428 075a F30F7F85 		movdqu	%xmm0, -9472(%rbp)
- 1428      00DBFFFF 
- 1429 0762 E8000000 		call	KDbgWriterGet at PLT
- 1429      00
- 1430 0767 4885C0   		testq	%rax, %rax
- 1431 076a 7479     		je	.L15
- 1432 076c BF010000 		movl	$1, %edi
- 1432      00
- 1433 0771 E8000000 		call	KDbgCondToFlag at PLT
- 1433      00
- 1434 0776 4889C6   		movq	%rax, %rsi
- 1435 0779 BF100000 		movl	$16, %edi
- 1435      00
- 1436 077e E8000000 		call	KDbgTestModConds at PLT
- 1436      00
- 1437 0783 84C0     		testb	%al, %al
- 1438 0785 745E     		je	.L15
- 1439 0787 8B850CDB 		movl	-9460(%rbp), %eax
- 1439      FFFF
- 1440 078d 89C7     		movl	%eax, %edi
- 1441 078f E86CF8FF 		call	bswap_32
- 1441      FF
- 1442 0794 4189C5   		movl	%eax, %r13d
- 1443 0797 8B8508DB 		movl	-9464(%rbp), %eax
- 1443      FFFF
- 1444 079d 89C7     		movl	%eax, %edi
- 1445 079f E85CF8FF 		call	bswap_32
- 1445      FF
- 1446 07a4 4189C4   		movl	%eax, %r12d
- 1447 07a7 8B8504DB 		movl	-9468(%rbp), %eax
- 1447      FFFF
- 1448 07ad 89C7     		movl	%eax, %edi
- 1449 07af E84CF8FF 		call	bswap_32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 79
-
-
- 1449      FF
- 1450 07b4 89C3     		movl	%eax, %ebx
- 1451 07b6 8B8500DB 		movl	-9472(%rbp), %eax
- 1451      FFFF
- 1452 07bc 89C7     		movl	%eax, %edi
- 1453 07be E83DF8FF 		call	bswap_32
- 1453      FF
- 1454 07c3 4589E9   		movl	%r13d, %r9d
- 1455 07c6 4589E0   		movl	%r12d, %r8d
- 1456 07c9 89D9     		movl	%ebx, %ecx
- 1457 07cb 89C2     		movl	%eax, %edx
- 1458 07cd 488D3500 		leaq	.LC0(%rip), %rsi
- 1458      000000
- 1459 07d4 488D3D00 		leaq	.LC1(%rip), %rdi
- 1459      000000
- 1460 07db B8000000 		movl	$0, %eax
- 1460      00
- 1461 07e0 E8000000 		call	KDbgMsg at PLT
- 1461      00
- 1462              	.L15:
- 1463 07e5 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1463      30D8FFFF 
- 1464 07ed F30F7F85 		movdqu	%xmm0, -6128(%rbp)
- 1464      10E8FFFF 
- 1465              	.LBE470:
- 1466              	.LBB471:
- 1467              	.LBB472:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 1468              		.loc 2 667 0
- 1469 07f5 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 1469      00000000 
- 1470 07fd F30F6F8D 		movdqu	-6128(%rbp), %xmm1
- 1470      10E8FFFF 
- 1471 0805 F30F7F8D 		movdqu	%xmm1, -6096(%rbp)
- 1471      30E8FFFF 
- 1472 080d F30F7F85 		movdqu	%xmm0, -6112(%rbp)
- 1472      20E8FFFF 
- 1473              	.LBB473:
- 1474              	.LBB474:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 1475              		.loc 2 380 0
- 1476 0815 F30F6F85 		movdqu	-6096(%rbp), %xmm0
- 1476      30E8FFFF 
- 1477 081d F30F7F85 		movdqu	%xmm0, -9328(%rbp)
- 1477      90DBFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 1478              		.loc 2 381 0
- 1479 0825 F30F6F85 		movdqu	-6112(%rbp), %xmm0
- 1479      20E8FFFF 
- 1480 082d F30F7F85 		movdqu	%xmm0, -9344(%rbp)
- 1480      80DBFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 1481              		.loc 2 383 0
- 1482 0835 C7854CE8 		movl	$0, -6068(%rbp)
- 1482      FFFF0000 
- 1482      0000
- 1483 083f EB5C     		jmp	.L16
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 80
-
-
- 1484              	.L19:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 1485              		.loc 2 385 0
- 1486 0841 8B854CE8 		movl	-6068(%rbp), %eax
- 1486      FFFF
- 1487 0847 89C0     		mov	%eax, %eax
- 1488 0849 0FB68405 		movzbl	-9344(%rbp,%rax), %eax
- 1488      80DBFFFF 
- 1489 0851 84C0     		testb	%al, %al
- 1490 0853 7912     		jns	.L17
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 1491              		.loc 2 386 0
- 1492 0855 8B854CE8 		movl	-6068(%rbp), %eax
- 1492      FFFF
- 1493 085b 89C0     		mov	%eax, %eax
- 1494 085d C68405A0 		movb	$0, -9312(%rbp,%rax)
- 1494      DBFFFF00 
- 1495 0865 EB2F     		jmp	.L18
- 1496              	.L17:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 1497              		.loc 2 388 0
- 1498 0867 8B8D4CE8 		movl	-6068(%rbp), %ecx
- 1498      FFFF
- 1499 086d 8B854CE8 		movl	-6068(%rbp), %eax
- 1499      FFFF
- 1500 0873 89C0     		mov	%eax, %eax
- 1501 0875 0FB68405 		movzbl	-9344(%rbp,%rax), %eax
- 1501      80DBFFFF 
- 1502 087d 0FB6C0   		movzbl	%al, %eax
- 1503 0880 83E00F   		andl	$15, %eax
- 1504 0883 4898     		cltq
- 1505 0885 0FB69405 		movzbl	-9328(%rbp,%rax), %edx
- 1505      90DBFFFF 
- 1506 088d 89C8     		mov	%ecx, %eax
- 1507 088f 889405A0 		movb	%dl, -9312(%rbp,%rax)
- 1507      DBFFFF
- 1508              	.L18:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 1509              		.loc 2 383 0
- 1510 0896 83854CE8 		addl	$1, -6068(%rbp)
- 1510      FFFF01
- 1511              	.L16:
- 1512 089d 83BD4CE8 		cmpl	$15, -6068(%rbp)
- 1512      FFFF0F
- 1513 08a4 769B     		jbe	.L19
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 1514              		.loc 2 391 0
- 1515 08a6 F30F6F85 		movdqu	-9312(%rbp), %xmm0
- 1515      A0DBFFFF 
- 1516              	.LBE474:
- 1517              	.LBE473:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 1518              		.loc 2 667 0
- 1519 08ae F30F7F85 		movdqu	%xmm0, -6128(%rbp)
- 1519      10E8FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1520              		.loc 2 668 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 81
-
-
- 1521 08b6 F30F6F85 		movdqu	-6128(%rbp), %xmm0
- 1521      10E8FFFF 
- 1522              	.LBE472:
- 1523              	.LBE471:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 1524              		.loc 2 1684 0
- 1525 08be 660F7F85 		movdqa	%xmm0, -10192(%rbp)
- 1525      30D8FFFF 
- 1526              	.LBB475:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 1527              		.loc 2 1685 0
- 1528 08c6 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1528      30D8FFFF 
- 1529 08ce F30F7F85 		movdqu	%xmm0, -9488(%rbp)
- 1529      F0DAFFFF 
- 1530 08d6 E8000000 		call	KDbgWriterGet at PLT
- 1530      00
- 1531 08db 4885C0   		testq	%rax, %rax
- 1532 08de 7479     		je	.L21
- 1533 08e0 BF010000 		movl	$1, %edi
- 1533      00
- 1534 08e5 E8000000 		call	KDbgCondToFlag at PLT
- 1534      00
- 1535 08ea 4889C6   		movq	%rax, %rsi
- 1536 08ed BF100000 		movl	$16, %edi
- 1536      00
- 1537 08f2 E8000000 		call	KDbgTestModConds at PLT
- 1537      00
- 1538 08f7 84C0     		testb	%al, %al
- 1539 08f9 745E     		je	.L21
- 1540 08fb 8B85FCDA 		movl	-9476(%rbp), %eax
- 1540      FFFF
- 1541 0901 89C7     		movl	%eax, %edi
- 1542 0903 E8F8F6FF 		call	bswap_32
- 1542      FF
- 1543 0908 4189C5   		movl	%eax, %r13d
- 1544 090b 8B85F8DA 		movl	-9480(%rbp), %eax
- 1544      FFFF
- 1545 0911 89C7     		movl	%eax, %edi
- 1546 0913 E8E8F6FF 		call	bswap_32
- 1546      FF
- 1547 0918 4189C4   		movl	%eax, %r12d
- 1548 091b 8B85F4DA 		movl	-9484(%rbp), %eax
- 1548      FFFF
- 1549 0921 89C7     		movl	%eax, %edi
- 1550 0923 E8D8F6FF 		call	bswap_32
- 1550      FF
- 1551 0928 89C3     		movl	%eax, %ebx
- 1552 092a 8B85F0DA 		movl	-9488(%rbp), %eax
- 1552      FFFF
- 1553 0930 89C7     		movl	%eax, %edi
- 1554 0932 E8C9F6FF 		call	bswap_32
- 1554      FF
- 1555 0937 4589E9   		movl	%r13d, %r9d
- 1556 093a 4589E0   		movl	%r12d, %r8d
- 1557 093d 89D9     		movl	%ebx, %ecx
- 1558 093f 89C2     		movl	%eax, %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 82
-
-
- 1559 0941 488D3500 		leaq	.LC2(%rip), %rsi
- 1559      000000
- 1560 0948 488D3D00 		leaq	.LC1(%rip), %rdi
- 1560      000000
- 1561 094f B8000000 		movl	$0, %eax
- 1561      00
- 1562 0954 E8000000 		call	KDbgMsg at PLT
- 1562      00
- 1563              	.L21:
- 1564 0959 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1564      30D8FFFF 
- 1565 0961 F30F7F85 		movdqu	%xmm0, -6048(%rbp)
- 1565      60E8FFFF 
- 1566 0969 660F6F85 		movdqa	-10176(%rbp), %xmm0
- 1566      40D8FFFF 
- 1567 0971 F30F7F85 		movdqu	%xmm0, -6064(%rbp)
- 1567      50E8FFFF 
- 1568              	.LBE475:
- 1569              	.LBB476:
- 1570              	.LBB477:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 1571              		.loc 2 178 0
- 1572 0979 F30F6F85 		movdqu	-6064(%rbp), %xmm0
- 1572      50E8FFFF 
- 1573 0981 F30F6F8D 		movdqu	-6048(%rbp), %xmm1
- 1573      60E8FFFF 
- 1574 0989 660FEFC1 		pxor	%xmm1, %xmm0
- 1575              	.LBE477:
- 1576              	.LBE476:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 1577              		.loc 2 1686 0
- 1578 098d 660F7F85 		movdqa	%xmm0, -10192(%rbp)
- 1578      30D8FFFF 
- 1579              	.LBB478:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 1580              		.loc 2 1687 0
- 1581 0995 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1581      30D8FFFF 
- 1582 099d F30F7F85 		movdqu	%xmm0, -9504(%rbp)
- 1582      E0DAFFFF 
- 1583 09a5 E8000000 		call	KDbgWriterGet at PLT
- 1583      00
- 1584 09aa 4885C0   		testq	%rax, %rax
- 1585 09ad 7479     		je	.L23
- 1586 09af BF010000 		movl	$1, %edi
- 1586      00
- 1587 09b4 E8000000 		call	KDbgCondToFlag at PLT
- 1587      00
- 1588 09b9 4889C6   		movq	%rax, %rsi
- 1589 09bc BF100000 		movl	$16, %edi
- 1589      00
- 1590 09c1 E8000000 		call	KDbgTestModConds at PLT
- 1590      00
- 1591 09c6 84C0     		testb	%al, %al
- 1592 09c8 745E     		je	.L23
- 1593 09ca 8B85ECDA 		movl	-9492(%rbp), %eax
- 1593      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 83
-
-
- 1594 09d0 89C7     		movl	%eax, %edi
- 1595 09d2 E829F6FF 		call	bswap_32
- 1595      FF
- 1596 09d7 4189C5   		movl	%eax, %r13d
- 1597 09da 8B85E8DA 		movl	-9496(%rbp), %eax
- 1597      FFFF
- 1598 09e0 89C7     		movl	%eax, %edi
- 1599 09e2 E819F6FF 		call	bswap_32
- 1599      FF
- 1600 09e7 4189C4   		movl	%eax, %r12d
- 1601 09ea 8B85E4DA 		movl	-9500(%rbp), %eax
- 1601      FFFF
- 1602 09f0 89C7     		movl	%eax, %edi
- 1603 09f2 E809F6FF 		call	bswap_32
- 1603      FF
- 1604 09f7 89C3     		movl	%eax, %ebx
- 1605 09f9 8B85E0DA 		movl	-9504(%rbp), %eax
- 1605      FFFF
- 1606 09ff 89C7     		movl	%eax, %edi
- 1607 0a01 E8FAF5FF 		call	bswap_32
- 1607      FF
- 1608 0a06 4589E9   		movl	%r13d, %r9d
- 1609 0a09 4589E0   		movl	%r12d, %r8d
- 1610 0a0c 89D9     		movl	%ebx, %ecx
- 1611 0a0e 89C2     		movl	%eax, %edx
- 1612 0a10 488D3500 		leaq	.LC3(%rip), %rsi
- 1612      000000
- 1613 0a17 488D3D00 		leaq	.LC1(%rip), %rdi
- 1613      000000
- 1614 0a1e B8000000 		movl	$0, %eax
- 1614      00
- 1615 0a23 E8000000 		call	KDbgMsg at PLT
- 1615      00
- 1616              	.L23:
- 1617 0a28 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1617      30D8FFFF 
- 1618 0a30 F30F7F85 		movdqu	%xmm0, -6032(%rbp)
- 1618      70E8FFFF 
- 1619              	.LBE478:
- 1620              	.LBB479:
- 1621              	.LBB480:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 1622              		.loc 2 1357 0
- 1623 0a38 F30F6F85 		movdqu	-6032(%rbp), %xmm0
- 1623      70E8FFFF 
- 1624 0a40 F30F7F85 		movdqu	%xmm0, -9296(%rbp)
- 1624      B0DBFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 1625              		.loc 2 1358 0
- 1626 0a48 8B85BCDB 		movl	-9284(%rbp), %eax
- 1626      FFFF
- 1627 0a4e 8985B8DB 		movl	%eax, -9288(%rbp)
- 1627      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 1628              		.loc 2 1359 0
- 1629 0a54 8B85BCDB 		movl	-9284(%rbp), %eax
- 1629      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 84
-
-
- 1630 0a5a 8985B4DB 		movl	%eax, -9292(%rbp)
- 1630      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 1631              		.loc 2 1360 0
- 1632 0a60 8B85BCDB 		movl	-9284(%rbp), %eax
- 1632      FFFF
- 1633 0a66 8985B0DB 		movl	%eax, -9296(%rbp)
- 1633      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 1634              		.loc 2 1361 0
- 1635 0a6c F30F6F85 		movdqu	-9296(%rbp), %xmm0
- 1635      B0DBFFFF 
- 1636              	.LBE480:
- 1637              	.LBE479:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 1638              		.loc 2 1688 0
- 1639 0a74 660F7F85 		movdqa	%xmm0, -10192(%rbp)
- 1639      30D8FFFF 
- 1640              	.LBB481:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 1641              		.loc 2 1689 0
- 1642 0a7c 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1642      30D8FFFF 
- 1643 0a84 F30F7F85 		movdqu	%xmm0, -9520(%rbp)
- 1643      D0DAFFFF 
- 1644 0a8c E8000000 		call	KDbgWriterGet at PLT
- 1644      00
- 1645 0a91 4885C0   		testq	%rax, %rax
- 1646 0a94 7479     		je	.L25
- 1647 0a96 BF010000 		movl	$1, %edi
- 1647      00
- 1648 0a9b E8000000 		call	KDbgCondToFlag at PLT
- 1648      00
- 1649 0aa0 4889C6   		movq	%rax, %rsi
- 1650 0aa3 BF100000 		movl	$16, %edi
- 1650      00
- 1651 0aa8 E8000000 		call	KDbgTestModConds at PLT
- 1651      00
- 1652 0aad 84C0     		testb	%al, %al
- 1653 0aaf 745E     		je	.L25
- 1654 0ab1 8B85DCDA 		movl	-9508(%rbp), %eax
- 1654      FFFF
- 1655 0ab7 89C7     		movl	%eax, %edi
- 1656 0ab9 E842F5FF 		call	bswap_32
- 1656      FF
- 1657 0abe 4189C5   		movl	%eax, %r13d
- 1658 0ac1 8B85D8DA 		movl	-9512(%rbp), %eax
- 1658      FFFF
- 1659 0ac7 89C7     		movl	%eax, %edi
- 1660 0ac9 E832F5FF 		call	bswap_32
- 1660      FF
- 1661 0ace 4189C4   		movl	%eax, %r12d
- 1662 0ad1 8B85D4DA 		movl	-9516(%rbp), %eax
- 1662      FFFF
- 1663 0ad7 89C7     		movl	%eax, %edi
- 1664 0ad9 E822F5FF 		call	bswap_32
- 1664      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 85
-
-
- 1665 0ade 89C3     		movl	%eax, %ebx
- 1666 0ae0 8B85D0DA 		movl	-9520(%rbp), %eax
- 1666      FFFF
- 1667 0ae6 89C7     		movl	%eax, %edi
- 1668 0ae8 E813F5FF 		call	bswap_32
- 1668      FF
- 1669 0aed 4589E9   		movl	%r13d, %r9d
- 1670 0af0 4589E0   		movl	%r12d, %r8d
- 1671 0af3 89D9     		movl	%ebx, %ecx
- 1672 0af5 89C2     		movl	%eax, %edx
- 1673 0af7 488D3500 		leaq	.LC4(%rip), %rsi
- 1673      000000
- 1674 0afe 488D3D00 		leaq	.LC1(%rip), %rdi
- 1674      000000
- 1675 0b05 B8000000 		movl	$0, %eax
- 1675      00
- 1676 0b0a E8000000 		call	KDbgMsg at PLT
- 1676      00
- 1677              	.L25:
- 1678              	.LBE481:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 1679              		.loc 2 1690 0
- 1680 0b0f 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 1680      30D8FFFF 
- 1681              	.LBE447:
- 1682              	.LBE446:
-1744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x01,1);
- 1683              		.loc 2 1744 0
- 1684 0b17 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 1684      20E6FFFF 
- 1685 0b1f F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 1685      10E6FFFF 
- 1686 0b27 F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 1686      80E8FFFF 
- 1687              	.LBB482:
- 1688              	.LBB483:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1689              		.loc 2 1565 0
- 1690 0b2f F30F6F85 		movdqu	-6016(%rbp), %xmm0
- 1690      80E8FFFF 
- 1691 0b37 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 1691      60D8FFFF 
- 1692 0b3f 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 1692      60D8FFFF 
- 1693 0b47 F30F7F85 		movdqu	%xmm0, -6000(%rbp)
- 1693      90E8FFFF 
- 1694              	.LBB484:
- 1695              	.LBB485:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 1696              		.loc 2 1282 0
- 1697 0b4f F30F6F85 		movdqu	-6000(%rbp), %xmm0
- 1697      90E8FFFF 
- 1698 0b57 F30F7F85 		movdqu	%xmm0, -9280(%rbp)
- 1698      C0DBFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 1699              		.loc 2 1283 0
- 1700 0b5f 8B85C8DB 		movl	-9272(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 86
-
-
- 1700      FFFF
- 1701 0b65 8985CCDB 		movl	%eax, -9268(%rbp)
- 1701      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 1702              		.loc 2 1284 0
- 1703 0b6b 8B85C4DB 		movl	-9276(%rbp), %eax
- 1703      FFFF
- 1704 0b71 8985C8DB 		movl	%eax, -9272(%rbp)
- 1704      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 1705              		.loc 2 1285 0
- 1706 0b77 8B85C0DB 		movl	-9280(%rbp), %eax
- 1706      FFFF
- 1707 0b7d 8985C4DB 		movl	%eax, -9276(%rbp)
- 1707      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 1708              		.loc 2 1286 0
- 1709 0b83 C785C0DB 		movl	$0, -9280(%rbp)
- 1709      FFFF0000 
- 1709      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 1710              		.loc 2 1287 0
- 1711 0b8d F30F6F85 		movdqu	-9280(%rbp), %xmm0
- 1711      C0DBFFFF 
- 1712              	.LBE485:
- 1713              	.LBE484:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1714              		.loc 2 1567 0
- 1715 0b95 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 1715      60D8FFFF 
- 1716 0b9d 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 1716      60D8FFFF 
- 1717 0ba5 660FEF85 		pxor	-6016(%rbp), %xmm0
- 1717      80E8FFFF 
- 1718 0bad F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 1718      80E8FFFF 
- 1719 0bb5 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 1719      60D8FFFF 
- 1720 0bbd F30F7F85 		movdqu	%xmm0, -5984(%rbp)
- 1720      A0E8FFFF 
- 1721              	.LBB486:
- 1722              	.LBB487:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 1723              		.loc 2 1282 0
- 1724 0bc5 F30F6F85 		movdqu	-5984(%rbp), %xmm0
- 1724      A0E8FFFF 
- 1725 0bcd F30F7F85 		movdqu	%xmm0, -9264(%rbp)
- 1725      D0DBFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 1726              		.loc 2 1283 0
- 1727 0bd5 8B85D8DB 		movl	-9256(%rbp), %eax
- 1727      FFFF
- 1728 0bdb 8985DCDB 		movl	%eax, -9252(%rbp)
- 1728      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 1729              		.loc 2 1284 0
- 1730 0be1 8B85D4DB 		movl	-9260(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 87
-
-
- 1730      FFFF
- 1731 0be7 8985D8DB 		movl	%eax, -9256(%rbp)
- 1731      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 1732              		.loc 2 1285 0
- 1733 0bed 8B85D0DB 		movl	-9264(%rbp), %eax
- 1733      FFFF
- 1734 0bf3 8985D4DB 		movl	%eax, -9260(%rbp)
- 1734      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 1735              		.loc 2 1286 0
- 1736 0bf9 C785D0DB 		movl	$0, -9264(%rbp)
- 1736      FFFF0000 
- 1736      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 1737              		.loc 2 1287 0
- 1738 0c03 F30F6F85 		movdqu	-9264(%rbp), %xmm0
- 1738      D0DBFFFF 
- 1739              	.LBE487:
- 1740              	.LBE486:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1741              		.loc 2 1568 0
- 1742 0c0b 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 1742      60D8FFFF 
- 1743 0c13 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 1743      60D8FFFF 
- 1744 0c1b 660FEF85 		pxor	-6016(%rbp), %xmm0
- 1744      80E8FFFF 
- 1745 0c23 F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 1745      80E8FFFF 
- 1746 0c2b 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 1746      60D8FFFF 
- 1747 0c33 F30F7F85 		movdqu	%xmm0, -5968(%rbp)
- 1747      B0E8FFFF 
- 1748              	.LBB488:
- 1749              	.LBB489:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 1750              		.loc 2 1282 0
- 1751 0c3b F30F6F85 		movdqu	-5968(%rbp), %xmm0
- 1751      B0E8FFFF 
- 1752 0c43 F30F7F85 		movdqu	%xmm0, -9248(%rbp)
- 1752      E0DBFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 1753              		.loc 2 1283 0
- 1754 0c4b 8B85E8DB 		movl	-9240(%rbp), %eax
- 1754      FFFF
- 1755 0c51 8985ECDB 		movl	%eax, -9236(%rbp)
- 1755      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 1756              		.loc 2 1284 0
- 1757 0c57 8B85E4DB 		movl	-9244(%rbp), %eax
- 1757      FFFF
- 1758 0c5d 8985E8DB 		movl	%eax, -9240(%rbp)
- 1758      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 1759              		.loc 2 1285 0
- 1760 0c63 8B85E0DB 		movl	-9248(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 88
-
-
- 1760      FFFF
- 1761 0c69 8985E4DB 		movl	%eax, -9244(%rbp)
- 1761      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 1762              		.loc 2 1286 0
- 1763 0c6f C785E0DB 		movl	$0, -9248(%rbp)
- 1763      FFFF0000 
- 1763      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 1764              		.loc 2 1287 0
- 1765 0c79 F30F6F85 		movdqu	-9248(%rbp), %xmm0
- 1765      E0DBFFFF 
- 1766              	.LBE489:
- 1767              	.LBE488:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1768              		.loc 2 1569 0
- 1769 0c81 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 1769      60D8FFFF 
- 1770 0c89 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 1770      60D8FFFF 
- 1771 0c91 660FEF85 		pxor	-6016(%rbp), %xmm0
- 1771      80E8FFFF 
- 1772 0c99 F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 1772      80E8FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1773              		.loc 2 1571 0
- 1774 0ca1 F30F6F85 		movdqu	-6016(%rbp), %xmm0
- 1774      80E8FFFF 
- 1775              	.LBE483:
- 1776              	.LBE482:
-1744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x01,1);
- 1777              		.loc 2 1744 0
- 1778 0ca9 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 1778      10E6FFFF 
- 1779 0cb1 F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 1779      20E6FFFF 
- 1780 0cb9 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 1780      10E6FFFF 
- 1781 0cc1 660FEFC1 		pxor	%xmm1, %xmm0
- 1782 0cc5 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 1782      10E6FFFF 
- 1783 0ccd 488B85B8 		movq	-9544(%rbp), %rax
- 1783      DAFFFF
- 1784 0cd4 4883C010 		addq	$16, %rax
- 1785 0cd8 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 1785      10E6FFFF 
- 1786 0ce0 F30F7F00 		movdqu	%xmm0, (%rax)
- 1787 0ce4 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 1787      10E6FFFF 
- 1788 0cec F30F7F85 		movdqu	%xmm0, -5936(%rbp)
- 1788      D0E8FFFF 
- 1789              	.LBB490:
- 1790              	.LBB491:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1791              		.loc 2 1681 0
- 1792 0cf4 B8020000 		movl	$2, %eax
- 1792      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 89
-
-
- 1793 0cf9 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1793      00000000 
- 1794 0d01 F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 1794      F0E8FFFF 
- 1795 0d09 8985ECE8 		movl	%eax, -5908(%rbp)
- 1795      FFFF
- 1796              	.LBB492:
- 1797              	.LBB493:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 1798              		.loc 2 522 0
- 1799 0d0f F30F6F85 		movdqu	-5904(%rbp), %xmm0
- 1799      F0E8FFFF 
- 1800 0d17 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 1800      30DCFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 1801              		.loc 2 523 0
- 1802 0d1f B8030000 		movl	$3, %eax
- 1802      00
- 1803 0d24 4898     		cltq
- 1804 0d26 8B95ECE8 		movl	-5908(%rbp), %edx
- 1804      FFFF
- 1805 0d2c 89948530 		movl	%edx, -9168(%rbp,%rax,4)
- 1805      DCFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 1806              		.loc 2 524 0
- 1807 0d33 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 1807      30DCFFFF 
- 1808 0d3b F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 1808      F0E8FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1809              		.loc 2 526 0
- 1810 0d43 F30F6F85 		movdqu	-5904(%rbp), %xmm0
- 1810      F0E8FFFF 
- 1811              	.LBE493:
- 1812              	.LBE492:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1813              		.loc 2 1681 0
- 1814 0d4b 660F7F85 		movdqa	%xmm0, -10112(%rbp)
- 1814      80D8FFFF 
- 1815 0d53 F30F6F85 		movdqu	-5936(%rbp), %xmm0
- 1815      D0E8FFFF 
- 1816 0d5b F30F7F85 		movdqu	%xmm0, -5888(%rbp)
- 1816      00E9FFFF 
- 1817 0d63 F30F6F85 		movdqu	-5888(%rbp), %xmm0
- 1817      00E9FFFF 
- 1818 0d6b F30F7F85 		movdqu	%xmm0, -5856(%rbp)
- 1818      20E9FFFF 
- 1819 0d73 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 1819      000000
- 1820 0d7a 48898518 		movq	%rax, -5864(%rbp)
- 1820      E9FFFF
- 1821              	.LBB494:
- 1822              	.LBB495:
- 1823              	.LBB496:
- 1824              	.LBB497:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 1825              		.loc 2 851 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 90
-
-
- 1826 0d81 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1826      00000000 
- 1827 0d89 F30F7F85 		movdqu	%xmm0, -5824(%rbp)
- 1827      40E9FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1828              		.loc 2 854 0
- 1829 0d91 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1829      00000000 
- 1830 0d99 F30F6F8D 		movdqu	-5856(%rbp), %xmm1
- 1830      20E9FFFF 
- 1831 0da1 F30F7F8D 		movdqu	%xmm1, -5744(%rbp)
- 1831      90E9FFFF 
- 1832 0da9 F30F7F85 		movdqu	%xmm0, -5760(%rbp)
- 1832      80E9FFFF 
- 1833              	.LBB498:
- 1834              	.LBB499:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1835              		.loc 2 206 0
- 1836 0db1 F30F6F85 		movdqu	-5760(%rbp), %xmm0
- 1836      80E9FFFF 
- 1837 0db9 F30F6F8D 		movdqu	-5744(%rbp), %xmm1
- 1837      90E9FFFF 
- 1838 0dc1 660FDBC1 		pand	%xmm1, %xmm0
- 1839              	.LBE499:
- 1840              	.LBE498:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1841              		.loc 2 854 0
- 1842 0dc5 F30F7F85 		movdqu	%xmm0, -5776(%rbp)
- 1842      70E9FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 1843              		.loc 2 862 0
- 1844 0dcd 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 1844      00000000 
- 1845 0dd5 F30F6F8D 		movdqu	-5856(%rbp), %xmm1
- 1845      20E9FFFF 
- 1846 0ddd F30F7F8D 		movdqu	%xmm1, -5712(%rbp)
- 1846      B0E9FFFF 
- 1847 0de5 F30F7F85 		movdqu	%xmm0, -5728(%rbp)
- 1847      A0E9FFFF 
- 1848              	.LBB500:
- 1849              		.loc 2 2642 0
- 1850 0ded 0FB685B0 		movzbl	-5712(%rbp), %eax
- 1850      E9FFFF
- 1851 0df4 0FB695A0 		movzbl	-5728(%rbp), %edx
- 1851      E9FFFF
- 1852 0dfb 0FB6C0   		movzbl	%al, %eax
- 1853 0dfe 6689858E 		movw	%ax, -10354(%rbp)
- 1853      D7FFFF
- 1854 0e05 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1854      D7FFFF
- 1855 0e0c F6F2     		divb	%dl
- 1856 0e0e 4189C7   		movl	%eax, %r15d
- 1857 0e11 0FB685B1 		movzbl	-5711(%rbp), %eax
- 1857      E9FFFF
- 1858 0e18 0FB695A1 		movzbl	-5727(%rbp), %edx
- 1858      E9FFFF
- 1859 0e1f 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 91
-
-
- 1860 0e22 6689858E 		movw	%ax, -10354(%rbp)
- 1860      D7FFFF
- 1861 0e29 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1861      D7FFFF
- 1862 0e30 F6F2     		divb	%dl
- 1863 0e32 88859FD8 		movb	%al, -10081(%rbp)
- 1863      FFFF
- 1864 0e38 0FB685B2 		movzbl	-5710(%rbp), %eax
- 1864      E9FFFF
- 1865 0e3f 0FB695A2 		movzbl	-5726(%rbp), %edx
- 1865      E9FFFF
- 1866 0e46 0FB6C0   		movzbl	%al, %eax
- 1867 0e49 6689858E 		movw	%ax, -10354(%rbp)
- 1867      D7FFFF
- 1868 0e50 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1868      D7FFFF
- 1869 0e57 F6F2     		divb	%dl
- 1870 0e59 88859ED8 		movb	%al, -10082(%rbp)
- 1870      FFFF
- 1871 0e5f 0FB685B3 		movzbl	-5709(%rbp), %eax
- 1871      E9FFFF
- 1872 0e66 0FB695A3 		movzbl	-5725(%rbp), %edx
- 1872      E9FFFF
- 1873 0e6d 0FB6C0   		movzbl	%al, %eax
- 1874 0e70 6689858E 		movw	%ax, -10354(%rbp)
- 1874      D7FFFF
- 1875 0e77 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1875      D7FFFF
- 1876 0e7e F6F2     		divb	%dl
- 1877 0e80 88859DD8 		movb	%al, -10083(%rbp)
- 1877      FFFF
- 1878 0e86 0FB685B4 		movzbl	-5708(%rbp), %eax
- 1878      E9FFFF
- 1879 0e8d 0FB695A4 		movzbl	-5724(%rbp), %edx
- 1879      E9FFFF
- 1880 0e94 0FB6C0   		movzbl	%al, %eax
- 1881 0e97 6689858E 		movw	%ax, -10354(%rbp)
- 1881      D7FFFF
- 1882 0e9e 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1882      D7FFFF
- 1883 0ea5 F6F2     		divb	%dl
- 1884 0ea7 88859CD8 		movb	%al, -10084(%rbp)
- 1884      FFFF
- 1885 0ead 0FB685B5 		movzbl	-5707(%rbp), %eax
- 1885      E9FFFF
- 1886 0eb4 0FB695A5 		movzbl	-5723(%rbp), %edx
- 1886      E9FFFF
- 1887 0ebb 0FB6C0   		movzbl	%al, %eax
- 1888 0ebe 6689858E 		movw	%ax, -10354(%rbp)
- 1888      D7FFFF
- 1889 0ec5 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1889      D7FFFF
- 1890 0ecc F6F2     		divb	%dl
- 1891 0ece 4189C1   		movl	%eax, %r9d
- 1892 0ed1 0FB685B6 		movzbl	-5706(%rbp), %eax
- 1892      E9FFFF
- 1893 0ed8 0FB695A6 		movzbl	-5722(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 92
-
-
- 1893      E9FFFF
- 1894 0edf 0FB6C0   		movzbl	%al, %eax
- 1895 0ee2 6689858E 		movw	%ax, -10354(%rbp)
- 1895      D7FFFF
- 1896 0ee9 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1896      D7FFFF
- 1897 0ef0 F6F2     		divb	%dl
- 1898 0ef2 89C7     		movl	%eax, %edi
- 1899 0ef4 0FB685B7 		movzbl	-5705(%rbp), %eax
- 1899      E9FFFF
- 1900 0efb 0FB695A7 		movzbl	-5721(%rbp), %edx
- 1900      E9FFFF
- 1901 0f02 0FB6C0   		movzbl	%al, %eax
- 1902 0f05 6689858E 		movw	%ax, -10354(%rbp)
- 1902      D7FFFF
- 1903 0f0c 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1903      D7FFFF
- 1904 0f13 F6F2     		divb	%dl
- 1905 0f15 89C3     		movl	%eax, %ebx
- 1906 0f17 0FB685B8 		movzbl	-5704(%rbp), %eax
- 1906      E9FFFF
- 1907 0f1e 0FB695A8 		movzbl	-5720(%rbp), %edx
- 1907      E9FFFF
- 1908 0f25 0FB6C0   		movzbl	%al, %eax
- 1909 0f28 6689858E 		movw	%ax, -10354(%rbp)
- 1909      D7FFFF
- 1910 0f2f 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1910      D7FFFF
- 1911 0f36 F6F2     		divb	%dl
- 1912 0f38 4189C2   		movl	%eax, %r10d
- 1913 0f3b 0FB685B9 		movzbl	-5703(%rbp), %eax
- 1913      E9FFFF
- 1914 0f42 0FB695A9 		movzbl	-5719(%rbp), %edx
- 1914      E9FFFF
- 1915 0f49 0FB6C0   		movzbl	%al, %eax
- 1916 0f4c 6689858E 		movw	%ax, -10354(%rbp)
- 1916      D7FFFF
- 1917 0f53 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1917      D7FFFF
- 1918 0f5a F6F2     		divb	%dl
- 1919 0f5c 4189C3   		movl	%eax, %r11d
- 1920 0f5f 0FB685BA 		movzbl	-5702(%rbp), %eax
- 1920      E9FFFF
- 1921 0f66 0FB695AA 		movzbl	-5718(%rbp), %edx
- 1921      E9FFFF
- 1922 0f6d 0FB6C0   		movzbl	%al, %eax
- 1923 0f70 6689858E 		movw	%ax, -10354(%rbp)
- 1923      D7FFFF
- 1924 0f77 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1924      D7FFFF
- 1925 0f7e F6F2     		divb	%dl
- 1926 0f80 4189C4   		movl	%eax, %r12d
- 1927 0f83 0FB685BB 		movzbl	-5701(%rbp), %eax
- 1927      E9FFFF
- 1928 0f8a 0FB695AB 		movzbl	-5717(%rbp), %edx
- 1928      E9FFFF
- 1929 0f91 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 93
-
-
- 1930 0f94 6689858E 		movw	%ax, -10354(%rbp)
- 1930      D7FFFF
- 1931 0f9b 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1931      D7FFFF
- 1932 0fa2 F6F2     		divb	%dl
- 1933 0fa4 4189C5   		movl	%eax, %r13d
- 1934 0fa7 0FB685BC 		movzbl	-5700(%rbp), %eax
- 1934      E9FFFF
- 1935 0fae 0FB695AC 		movzbl	-5716(%rbp), %edx
- 1935      E9FFFF
- 1936 0fb5 0FB6C0   		movzbl	%al, %eax
- 1937 0fb8 6689858E 		movw	%ax, -10354(%rbp)
- 1937      D7FFFF
- 1938 0fbf 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1938      D7FFFF
- 1939 0fc6 F6F2     		divb	%dl
- 1940 0fc8 4189C6   		movl	%eax, %r14d
- 1941 0fcb 0FB685BD 		movzbl	-5699(%rbp), %eax
- 1941      E9FFFF
- 1942 0fd2 0FB695AD 		movzbl	-5715(%rbp), %edx
- 1942      E9FFFF
- 1943 0fd9 0FB6C0   		movzbl	%al, %eax
- 1944 0fdc 6689858E 		movw	%ax, -10354(%rbp)
- 1944      D7FFFF
- 1945 0fe3 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1945      D7FFFF
- 1946 0fea F6F2     		divb	%dl
- 1947 0fec 4189C0   		movl	%eax, %r8d
- 1948 0fef 0FB685BE 		movzbl	-5698(%rbp), %eax
- 1948      E9FFFF
- 1949 0ff6 0FB695AE 		movzbl	-5714(%rbp), %edx
- 1949      E9FFFF
- 1950 0ffd 0FB6C0   		movzbl	%al, %eax
- 1951 1000 6689858E 		movw	%ax, -10354(%rbp)
- 1951      D7FFFF
- 1952 1007 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1952      D7FFFF
- 1953 100e F6F2     		divb	%dl
- 1954 1010 89C6     		movl	%eax, %esi
- 1955 1012 0FB685BF 		movzbl	-5697(%rbp), %eax
- 1955      E9FFFF
- 1956 1019 0FB695AF 		movzbl	-5713(%rbp), %edx
- 1956      E9FFFF
- 1957 1020 0FB6C0   		movzbl	%al, %eax
- 1958 1023 6689858E 		movw	%ax, -10354(%rbp)
- 1958      D7FFFF
- 1959 102a 0FB7858E 		movzwl	-10354(%rbp), %eax
- 1959      D7FFFF
- 1960 1031 F6F2     		divb	%dl
- 1961 1033 89C1     		movl	%eax, %ecx
- 1962              	.LBB501:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 1963              		.loc 2 346 0
- 1964 1035 0FB6D3   		movzbl	%bl, %edx
- 1965 1038 400FB6C7 		movzbl	%dil, %eax
- 1966 103c 48C1E208 		salq	$8, %rdx
- 1967 1040 4809C2   		orq	%rax, %rdx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 94
-
-
- 1968 1043 410FB6C1 		movzbl	%r9b, %eax
- 1969 1047 48C1E208 		salq	$8, %rdx
- 1970 104b 4809C2   		orq	%rax, %rdx
- 1971 104e 0FB6859C 		movzbl	-10084(%rbp), %eax
- 1971      D8FFFF
- 1972 1055 48C1E208 		salq	$8, %rdx
- 1973 1059 4809C2   		orq	%rax, %rdx
- 1974 105c 0FB6859D 		movzbl	-10083(%rbp), %eax
- 1974      D8FFFF
- 1975 1063 48C1E208 		salq	$8, %rdx
- 1976 1067 4809C2   		orq	%rax, %rdx
- 1977 106a 0FB6859E 		movzbl	-10082(%rbp), %eax
- 1977      D8FFFF
- 1978 1071 48C1E208 		salq	$8, %rdx
- 1979 1075 4809C2   		orq	%rax, %rdx
- 1980 1078 0FB6859F 		movzbl	-10081(%rbp), %eax
- 1980      D8FFFF
- 1981 107f 48C1E208 		salq	$8, %rdx
- 1982 1083 4809C2   		orq	%rax, %rdx
- 1983 1086 410FB6C7 		movzbl	%r15b, %eax
- 1984 108a 48C1E208 		salq	$8, %rdx
- 1985 108e 4809C2   		orq	%rax, %rdx
- 1986 1091 0FB6C1   		movzbl	%cl, %eax
- 1987 1094 400FB6CE 		movzbl	%sil, %ecx
- 1988 1098 48C1E008 		salq	$8, %rax
- 1989 109c 4809C8   		orq	%rcx, %rax
- 1990 109f 410FB6C8 		movzbl	%r8b, %ecx
- 1991 10a3 48C1E008 		salq	$8, %rax
- 1992 10a7 4809C8   		orq	%rcx, %rax
- 1993 10aa 410FB6CE 		movzbl	%r14b, %ecx
- 1994 10ae 48C1E008 		salq	$8, %rax
- 1995 10b2 4809C8   		orq	%rcx, %rax
- 1996 10b5 410FB6CD 		movzbl	%r13b, %ecx
- 1997 10b9 48C1E008 		salq	$8, %rax
- 1998 10bd 4809C8   		orq	%rcx, %rax
- 1999 10c0 410FB6CC 		movzbl	%r12b, %ecx
- 2000 10c4 48C1E008 		salq	$8, %rax
- 2001 10c8 4809C8   		orq	%rcx, %rax
- 2002 10cb 410FB6CB 		movzbl	%r11b, %ecx
- 2003 10cf 48C1E008 		salq	$8, %rax
- 2004 10d3 4809C8   		orq	%rcx, %rax
- 2005 10d6 410FB6CA 		movzbl	%r10b, %ecx
- 2006 10da 48C1E008 		salq	$8, %rax
- 2007 10de 4809C8   		orq	%rcx, %rax
- 2008 10e1 48899510 		movq	%rdx, -10224(%rbp)
- 2008      D8FFFF
- 2009 10e8 48898518 		movq	%rax, -10216(%rbp)
- 2009      D8FFFF
- 2010 10ef 660F6F85 		movdqa	-10224(%rbp), %xmm0
- 2010      10D8FFFF 
- 2011              	.LBE501:
- 2012              	.LBE500:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 2013              		.loc 2 862 0
- 2014 10f7 F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 2014      60E9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 95
-
-
- 2015              		.loc 2 866 0
- 2016 10ff C7853CE9 		movl	$0, -5828(%rbp)
- 2016      FFFF0000 
- 2016      0000
- 2017 1109 E9860200 		jmp	.L26
- 2017      00
- 2018              	.L35:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2019              		.loc 2 868 0
- 2020 110e 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 2020      00000000 
- 2021 1116 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 2021      D0E9FFFF 
- 2022 111e F30F6F85 		movdqu	-5792(%rbp), %xmm0
- 2022      60E9FFFF 
- 2023 1126 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 2023      C0E9FFFF 
- 2024              	.LBB502:
- 2025              	.LBB503:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 2026              		.loc 2 380 0
- 2027 112e F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 2027      D0E9FFFF 
- 2028 1136 F30F7F85 		movdqu	%xmm0, -9136(%rbp)
- 2028      50DCFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 2029              		.loc 2 381 0
- 2030 113e F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 2030      C0E9FFFF 
- 2031 1146 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 2031      40DCFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2032              		.loc 2 383 0
- 2033 114e C785ECE9 		movl	$0, -5652(%rbp)
- 2033      FFFF0000 
- 2033      0000
- 2034 1158 EB5C     		jmp	.L27
- 2035              	.L30:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 2036              		.loc 2 385 0
- 2037 115a 8B85ECE9 		movl	-5652(%rbp), %eax
- 2037      FFFF
- 2038 1160 89C0     		mov	%eax, %eax
- 2039 1162 0FB68405 		movzbl	-9152(%rbp,%rax), %eax
- 2039      40DCFFFF 
- 2040 116a 84C0     		testb	%al, %al
- 2041 116c 7912     		jns	.L28
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 2042              		.loc 2 386 0
- 2043 116e 8B85ECE9 		movl	-5652(%rbp), %eax
- 2043      FFFF
- 2044 1174 89C0     		mov	%eax, %eax
- 2045 1176 C6840560 		movb	$0, -9120(%rbp,%rax)
- 2045      DCFFFF00 
- 2046 117e EB2F     		jmp	.L29
- 2047              	.L28:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 96
-
-
- 2048              		.loc 2 388 0
- 2049 1180 8B8DECE9 		movl	-5652(%rbp), %ecx
- 2049      FFFF
- 2050 1186 8B85ECE9 		movl	-5652(%rbp), %eax
- 2050      FFFF
- 2051 118c 89C0     		mov	%eax, %eax
- 2052 118e 0FB68405 		movzbl	-9152(%rbp,%rax), %eax
- 2052      40DCFFFF 
- 2053 1196 0FB6C0   		movzbl	%al, %eax
- 2054 1199 83E00F   		andl	$15, %eax
- 2055 119c 4898     		cltq
- 2056 119e 0FB69405 		movzbl	-9136(%rbp,%rax), %edx
- 2056      50DCFFFF 
- 2057 11a6 89C8     		mov	%ecx, %eax
- 2058 11a8 88940560 		movb	%dl, -9120(%rbp,%rax)
- 2058      DCFFFF
- 2059              	.L29:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2060              		.loc 2 383 0
- 2061 11af 8385ECE9 		addl	$1, -5652(%rbp)
- 2061      FFFF01
- 2062              	.L27:
- 2063 11b6 83BDECE9 		cmpl	$15, -5652(%rbp)
- 2063      FFFF0F
- 2064 11bd 769B     		jbe	.L30
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 2065              		.loc 2 391 0
- 2066 11bf F30F6F85 		movdqu	-9120(%rbp), %xmm0
- 2066      60DCFFFF 
- 2067              	.LBE503:
- 2068              	.LBE502:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2069              		.loc 2 868 0
- 2070 11c7 F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 2070      50E9FFFF 
- 2071 11cf F30F6F85 		movdqu	-5776(%rbp), %xmm0
- 2071      70E9FFFF 
- 2072 11d7 F30F7F85 		movdqu	%xmm0, -5632(%rbp)
- 2072      00EAFFFF 
- 2073 11df F30F6F85 		movdqu	-5808(%rbp), %xmm0
- 2073      50E9FFFF 
- 2074 11e7 F30F7F85 		movdqu	%xmm0, -5648(%rbp)
- 2074      F0E9FFFF 
- 2075              	.LBB504:
- 2076              	.LBB505:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2077              		.loc 2 234 0
- 2078 11ef F30F6F85 		movdqu	-5648(%rbp), %xmm0
- 2078      F0E9FFFF 
- 2079 11f7 F30F6F8D 		movdqu	-5632(%rbp), %xmm1
- 2079      00EAFFFF 
- 2080 11ff 660FEBC1 		por	%xmm1, %xmm0
- 2081              	.LBE505:
- 2082              	.LBE504:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 2083              		.loc 2 870 0
- 2084 1203 F30F7F85 		movdqu	%xmm0, -5808(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 97
-
-
- 2084      50E9FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2085              		.loc 2 872 0
- 2086 120b 8B853CE9 		mov	-5828(%rbp), %eax
- 2086      FFFF
- 2087 1211 48C1E004 		salq	$4, %rax
- 2088 1215 48038518 		addq	-5864(%rbp), %rax
- 2088      E9FFFF
- 2089 121c 660F6F00 		movdqa	(%rax), %xmm0
- 2090 1220 F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 2090      20EAFFFF 
- 2091 1228 F30F6F85 		movdqu	-5808(%rbp), %xmm0
- 2091      50E9FFFF 
- 2092 1230 F30F7F85 		movdqu	%xmm0, -5616(%rbp)
- 2092      10EAFFFF 
- 2093              	.LBB506:
- 2094              	.LBB507:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 2095              		.loc 2 380 0
- 2096 1238 F30F6F85 		movdqu	-5600(%rbp), %xmm0
- 2096      20EAFFFF 
- 2097 1240 F30F7F85 		movdqu	%xmm0, -9088(%rbp)
- 2097      80DCFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 2098              		.loc 2 381 0
- 2099 1248 F30F6F85 		movdqu	-5616(%rbp), %xmm0
- 2099      10EAFFFF 
- 2100 1250 F30F7F85 		movdqu	%xmm0, -9104(%rbp)
- 2100      70DCFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2101              		.loc 2 383 0
- 2102 1258 C7853CEA 		movl	$0, -5572(%rbp)
- 2102      FFFF0000 
- 2102      0000
- 2103 1262 EB5C     		jmp	.L31
- 2104              	.L34:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 2105              		.loc 2 385 0
- 2106 1264 8B853CEA 		movl	-5572(%rbp), %eax
- 2106      FFFF
- 2107 126a 89C0     		mov	%eax, %eax
- 2108 126c 0FB68405 		movzbl	-9104(%rbp,%rax), %eax
- 2108      70DCFFFF 
- 2109 1274 84C0     		testb	%al, %al
- 2110 1276 7912     		jns	.L32
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 2111              		.loc 2 386 0
- 2112 1278 8B853CEA 		movl	-5572(%rbp), %eax
- 2112      FFFF
- 2113 127e 89C0     		mov	%eax, %eax
- 2114 1280 C6840590 		movb	$0, -9072(%rbp,%rax)
- 2114      DCFFFF00 
- 2115 1288 EB2F     		jmp	.L33
- 2116              	.L32:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 2117              		.loc 2 388 0
- 2118 128a 8B8D3CEA 		movl	-5572(%rbp), %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 98
-
-
- 2118      FFFF
- 2119 1290 8B853CEA 		movl	-5572(%rbp), %eax
- 2119      FFFF
- 2120 1296 89C0     		mov	%eax, %eax
- 2121 1298 0FB68405 		movzbl	-9104(%rbp,%rax), %eax
- 2121      70DCFFFF 
- 2122 12a0 0FB6C0   		movzbl	%al, %eax
- 2123 12a3 83E00F   		andl	$15, %eax
- 2124 12a6 4898     		cltq
- 2125 12a8 0FB69405 		movzbl	-9088(%rbp,%rax), %edx
- 2125      80DCFFFF 
- 2126 12b0 89C8     		mov	%ecx, %eax
- 2127 12b2 88940590 		movb	%dl, -9072(%rbp,%rax)
- 2127      DCFFFF
- 2128              	.L33:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2129              		.loc 2 383 0
- 2130 12b9 83853CEA 		addl	$1, -5572(%rbp)
- 2130      FFFF01
- 2131              	.L31:
- 2132 12c0 83BD3CEA 		cmpl	$15, -5572(%rbp)
- 2132      FFFF0F
- 2133 12c7 769B     		jbe	.L34
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 2134              		.loc 2 391 0
- 2135 12c9 F30F6F85 		movdqu	-9072(%rbp), %xmm0
- 2135      90DCFFFF 
- 2136              	.LBE507:
- 2137              	.LBE506:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2138              		.loc 2 872 0
- 2139 12d1 F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 2139      50E9FFFF 
- 2140 12d9 F30F6F85 		movdqu	-5824(%rbp), %xmm0
- 2140      40E9FFFF 
- 2141 12e1 F30F7F85 		movdqu	%xmm0, -5552(%rbp)
- 2141      50EAFFFF 
- 2142 12e9 F30F6F85 		movdqu	-5808(%rbp), %xmm0
- 2142      50E9FFFF 
- 2143 12f1 F30F7F85 		movdqu	%xmm0, -5568(%rbp)
- 2143      40EAFFFF 
- 2144              	.LBB508:
- 2145              	.LBB509:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2146              		.loc 2 234 0
- 2147 12f9 F30F6F85 		movdqu	-5568(%rbp), %xmm0
- 2147      40EAFFFF 
- 2148 1301 F30F6F8D 		movdqu	-5552(%rbp), %xmm1
- 2148      50EAFFFF 
- 2149 1309 660FEBC1 		por	%xmm1, %xmm0
- 2150              	.LBE509:
- 2151              	.LBE508:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 2152              		.loc 2 874 0
- 2153 130d F30F7F85 		movdqu	%xmm0, -5824(%rbp)
- 2153      40E9FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 99
-
-
- 2154              		.loc 2 876 0
- 2155 1315 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 2155      00000000 
- 2156 131d F30F6F8D 		movdqu	-5792(%rbp), %xmm1
- 2156      60E9FFFF 
- 2157 1325 F30F7F8D 		movdqu	%xmm1, -5520(%rbp)
- 2157      70EAFFFF 
- 2158 132d F30F7F85 		movdqu	%xmm0, -5536(%rbp)
- 2158      60EAFFFF 
- 2159              	.LBB510:
- 2160              	.LBB511:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 2161              		.loc 2 290 0
- 2162 1335 F30F6F8D 		movdqu	-5536(%rbp), %xmm1
- 2162      60EAFFFF 
- 2163 133d F30F6F85 		movdqu	-5520(%rbp), %xmm0
- 2163      70EAFFFF 
- 2164 1345 660FF8C1 		psubb	%xmm1, %xmm0
- 2165              	.LBE511:
- 2166              	.LBE510:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 2167              		.loc 2 876 0
- 2168 1349 F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 2168      60E9FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2169              		.loc 2 878 0
- 2170 1351 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2170      00000000 
- 2171 1359 F30F6F8D 		movdqu	-5792(%rbp), %xmm1
- 2171      60E9FFFF 
- 2172 1361 F30F7F8D 		movdqu	%xmm1, -5488(%rbp)
- 2172      90EAFFFF 
- 2173 1369 F30F7F85 		movdqu	%xmm0, -5504(%rbp)
- 2173      80EAFFFF 
- 2174              	.LBB512:
- 2175              	.LBB513:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2176              		.loc 2 206 0
- 2177 1371 F30F6F85 		movdqu	-5504(%rbp), %xmm0
- 2177      80EAFFFF 
- 2178 1379 F30F6F8D 		movdqu	-5488(%rbp), %xmm1
- 2178      90EAFFFF 
- 2179 1381 660FDBC1 		pand	%xmm1, %xmm0
- 2180              	.LBE513:
- 2181              	.LBE512:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2182              		.loc 2 878 0
- 2183 1385 F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 2183      60E9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 2184              		.loc 2 866 0
- 2185 138d 83853CE9 		addl	$1, -5828(%rbp)
- 2185      FFFF01
- 2186              	.L26:
- 2187 1394 83BD3CE9 		cmpl	$15, -5828(%rbp)
- 2187      FFFF0F
- 2188 139b 0F866DFD 		jbe	.L35
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 100
-
-
- 2188      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 2189              		.loc 2 882 0
- 2190 13a1 F30F6F85 		movdqu	-5824(%rbp), %xmm0
- 2190      40E9FFFF 
- 2191              	.LBE497:
- 2192              	.LBE496:
- 2193              	.LBE495:
- 2194              	.LBE494:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 2195              		.loc 2 1682 0
- 2196 13a9 660F7F85 		movdqa	%xmm0, -10128(%rbp)
- 2196      70D8FFFF 
- 2197              	.LBB514:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 2198              		.loc 2 1683 0
- 2199 13b1 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2199      70D8FFFF 
- 2200 13b9 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 2200      20DCFFFF 
- 2201 13c1 E8000000 		call	KDbgWriterGet at PLT
- 2201      00
- 2202 13c6 4885C0   		testq	%rax, %rax
- 2203 13c9 7479     		je	.L37
- 2204 13cb BF010000 		movl	$1, %edi
- 2204      00
- 2205 13d0 E8000000 		call	KDbgCondToFlag at PLT
- 2205      00
- 2206 13d5 4889C6   		movq	%rax, %rsi
- 2207 13d8 BF100000 		movl	$16, %edi
- 2207      00
- 2208 13dd E8000000 		call	KDbgTestModConds at PLT
- 2208      00
- 2209 13e2 84C0     		testb	%al, %al
- 2210 13e4 745E     		je	.L37
- 2211 13e6 8B852CDC 		movl	-9172(%rbp), %eax
- 2211      FFFF
- 2212 13ec 89C7     		movl	%eax, %edi
- 2213 13ee E80DECFF 		call	bswap_32
- 2213      FF
- 2214 13f3 4189C5   		movl	%eax, %r13d
- 2215 13f6 8B8528DC 		movl	-9176(%rbp), %eax
- 2215      FFFF
- 2216 13fc 89C7     		movl	%eax, %edi
- 2217 13fe E8FDEBFF 		call	bswap_32
- 2217      FF
- 2218 1403 4189C4   		movl	%eax, %r12d
- 2219 1406 8B8524DC 		movl	-9180(%rbp), %eax
- 2219      FFFF
- 2220 140c 89C7     		movl	%eax, %edi
- 2221 140e E8EDEBFF 		call	bswap_32
- 2221      FF
- 2222 1413 89C3     		movl	%eax, %ebx
- 2223 1415 8B8520DC 		movl	-9184(%rbp), %eax
- 2223      FFFF
- 2224 141b 89C7     		movl	%eax, %edi
- 2225 141d E8DEEBFF 		call	bswap_32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 101
-
-
- 2225      FF
- 2226 1422 4589E9   		movl	%r13d, %r9d
- 2227 1425 4589E0   		movl	%r12d, %r8d
- 2228 1428 89D9     		movl	%ebx, %ecx
- 2229 142a 89C2     		movl	%eax, %edx
- 2230 142c 488D3500 		leaq	.LC0(%rip), %rsi
- 2230      000000
- 2231 1433 488D3D00 		leaq	.LC1(%rip), %rdi
- 2231      000000
- 2232 143a B8000000 		movl	$0, %eax
- 2232      00
- 2233 143f E8000000 		call	KDbgMsg at PLT
- 2233      00
- 2234              	.L37:
- 2235 1444 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2235      70D8FFFF 
- 2236 144c F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 2236      A0EAFFFF 
- 2237              	.LBE514:
- 2238              	.LBB515:
- 2239              	.LBB516:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 2240              		.loc 2 667 0
- 2241 1454 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 2241      00000000 
- 2242 145c F30F6F8D 		movdqu	-5472(%rbp), %xmm1
- 2242      A0EAFFFF 
- 2243 1464 F30F7F8D 		movdqu	%xmm1, -5440(%rbp)
- 2243      C0EAFFFF 
- 2244 146c F30F7F85 		movdqu	%xmm0, -5456(%rbp)
- 2244      B0EAFFFF 
- 2245              	.LBB517:
- 2246              	.LBB518:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 2247              		.loc 2 380 0
- 2248 1474 F30F6F85 		movdqu	-5440(%rbp), %xmm0
- 2248      C0EAFFFF 
- 2249 147c F30F7F85 		movdqu	%xmm0, -9040(%rbp)
- 2249      B0DCFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 2250              		.loc 2 381 0
- 2251 1484 F30F6F85 		movdqu	-5456(%rbp), %xmm0
- 2251      B0EAFFFF 
- 2252 148c F30F7F85 		movdqu	%xmm0, -9056(%rbp)
- 2252      A0DCFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2253              		.loc 2 383 0
- 2254 1494 C785DCEA 		movl	$0, -5412(%rbp)
- 2254      FFFF0000 
- 2254      0000
- 2255 149e EB5C     		jmp	.L38
- 2256              	.L41:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 2257              		.loc 2 385 0
- 2258 14a0 8B85DCEA 		movl	-5412(%rbp), %eax
- 2258      FFFF
- 2259 14a6 89C0     		mov	%eax, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 102
-
-
- 2260 14a8 0FB68405 		movzbl	-9056(%rbp,%rax), %eax
- 2260      A0DCFFFF 
- 2261 14b0 84C0     		testb	%al, %al
- 2262 14b2 7912     		jns	.L39
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 2263              		.loc 2 386 0
- 2264 14b4 8B85DCEA 		movl	-5412(%rbp), %eax
- 2264      FFFF
- 2265 14ba 89C0     		mov	%eax, %eax
- 2266 14bc C68405C0 		movb	$0, -9024(%rbp,%rax)
- 2266      DCFFFF00 
- 2267 14c4 EB2F     		jmp	.L40
- 2268              	.L39:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 2269              		.loc 2 388 0
- 2270 14c6 8B8DDCEA 		movl	-5412(%rbp), %ecx
- 2270      FFFF
- 2271 14cc 8B85DCEA 		movl	-5412(%rbp), %eax
- 2271      FFFF
- 2272 14d2 89C0     		mov	%eax, %eax
- 2273 14d4 0FB68405 		movzbl	-9056(%rbp,%rax), %eax
- 2273      A0DCFFFF 
- 2274 14dc 0FB6C0   		movzbl	%al, %eax
- 2275 14df 83E00F   		andl	$15, %eax
- 2276 14e2 4898     		cltq
- 2277 14e4 0FB69405 		movzbl	-9040(%rbp,%rax), %edx
- 2277      B0DCFFFF 
- 2278 14ec 89C8     		mov	%ecx, %eax
- 2279 14ee 889405C0 		movb	%dl, -9024(%rbp,%rax)
- 2279      DCFFFF
- 2280              	.L40:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2281              		.loc 2 383 0
- 2282 14f5 8385DCEA 		addl	$1, -5412(%rbp)
- 2282      FFFF01
- 2283              	.L38:
- 2284 14fc 83BDDCEA 		cmpl	$15, -5412(%rbp)
- 2284      FFFF0F
- 2285 1503 769B     		jbe	.L41
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 2286              		.loc 2 391 0
- 2287 1505 F30F6F85 		movdqu	-9024(%rbp), %xmm0
- 2287      C0DCFFFF 
- 2288              	.LBE518:
- 2289              	.LBE517:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 2290              		.loc 2 667 0
- 2291 150d F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 2291      A0EAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2292              		.loc 2 668 0
- 2293 1515 F30F6F85 		movdqu	-5472(%rbp), %xmm0
- 2293      A0EAFFFF 
- 2294              	.LBE516:
- 2295              	.LBE515:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 2296              		.loc 2 1684 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 103
-
-
- 2297 151d 660F7F85 		movdqa	%xmm0, -10128(%rbp)
- 2297      70D8FFFF 
- 2298              	.LBB519:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 2299              		.loc 2 1685 0
- 2300 1525 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2300      70D8FFFF 
- 2301 152d F30F7F85 		movdqu	%xmm0, -9200(%rbp)
- 2301      10DCFFFF 
- 2302 1535 E8000000 		call	KDbgWriterGet at PLT
- 2302      00
- 2303 153a 4885C0   		testq	%rax, %rax
- 2304 153d 7479     		je	.L43
- 2305 153f BF010000 		movl	$1, %edi
- 2305      00
- 2306 1544 E8000000 		call	KDbgCondToFlag at PLT
- 2306      00
- 2307 1549 4889C6   		movq	%rax, %rsi
- 2308 154c BF100000 		movl	$16, %edi
- 2308      00
- 2309 1551 E8000000 		call	KDbgTestModConds at PLT
- 2309      00
- 2310 1556 84C0     		testb	%al, %al
- 2311 1558 745E     		je	.L43
- 2312 155a 8B851CDC 		movl	-9188(%rbp), %eax
- 2312      FFFF
- 2313 1560 89C7     		movl	%eax, %edi
- 2314 1562 E899EAFF 		call	bswap_32
- 2314      FF
- 2315 1567 4189C5   		movl	%eax, %r13d
- 2316 156a 8B8518DC 		movl	-9192(%rbp), %eax
- 2316      FFFF
- 2317 1570 89C7     		movl	%eax, %edi
- 2318 1572 E889EAFF 		call	bswap_32
- 2318      FF
- 2319 1577 4189C4   		movl	%eax, %r12d
- 2320 157a 8B8514DC 		movl	-9196(%rbp), %eax
- 2320      FFFF
- 2321 1580 89C7     		movl	%eax, %edi
- 2322 1582 E879EAFF 		call	bswap_32
- 2322      FF
- 2323 1587 89C3     		movl	%eax, %ebx
- 2324 1589 8B8510DC 		movl	-9200(%rbp), %eax
- 2324      FFFF
- 2325 158f 89C7     		movl	%eax, %edi
- 2326 1591 E86AEAFF 		call	bswap_32
- 2326      FF
- 2327 1596 4589E9   		movl	%r13d, %r9d
- 2328 1599 4589E0   		movl	%r12d, %r8d
- 2329 159c 89D9     		movl	%ebx, %ecx
- 2330 159e 89C2     		movl	%eax, %edx
- 2331 15a0 488D3500 		leaq	.LC2(%rip), %rsi
- 2331      000000
- 2332 15a7 488D3D00 		leaq	.LC1(%rip), %rdi
- 2332      000000
- 2333 15ae B8000000 		movl	$0, %eax
- 2333      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 104
-
-
- 2334 15b3 E8000000 		call	KDbgMsg at PLT
- 2334      00
- 2335              	.L43:
- 2336 15b8 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2336      70D8FFFF 
- 2337 15c0 F30F7F85 		movdqu	%xmm0, -5392(%rbp)
- 2337      F0EAFFFF 
- 2338 15c8 660F6F85 		movdqa	-10112(%rbp), %xmm0
- 2338      80D8FFFF 
- 2339 15d0 F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 2339      E0EAFFFF 
- 2340              	.LBE519:
- 2341              	.LBB520:
- 2342              	.LBB521:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 2343              		.loc 2 178 0
- 2344 15d8 F30F6F85 		movdqu	-5408(%rbp), %xmm0
- 2344      E0EAFFFF 
- 2345 15e0 F30F6F8D 		movdqu	-5392(%rbp), %xmm1
- 2345      F0EAFFFF 
- 2346 15e8 660FEFC1 		pxor	%xmm1, %xmm0
- 2347              	.LBE521:
- 2348              	.LBE520:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 2349              		.loc 2 1686 0
- 2350 15ec 660F7F85 		movdqa	%xmm0, -10128(%rbp)
- 2350      70D8FFFF 
- 2351              	.LBB522:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 2352              		.loc 2 1687 0
- 2353 15f4 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2353      70D8FFFF 
- 2354 15fc F30F7F85 		movdqu	%xmm0, -9216(%rbp)
- 2354      00DCFFFF 
- 2355 1604 E8000000 		call	KDbgWriterGet at PLT
- 2355      00
- 2356 1609 4885C0   		testq	%rax, %rax
- 2357 160c 7479     		je	.L45
- 2358 160e BF010000 		movl	$1, %edi
- 2358      00
- 2359 1613 E8000000 		call	KDbgCondToFlag at PLT
- 2359      00
- 2360 1618 4889C6   		movq	%rax, %rsi
- 2361 161b BF100000 		movl	$16, %edi
- 2361      00
- 2362 1620 E8000000 		call	KDbgTestModConds at PLT
- 2362      00
- 2363 1625 84C0     		testb	%al, %al
- 2364 1627 745E     		je	.L45
- 2365 1629 8B850CDC 		movl	-9204(%rbp), %eax
- 2365      FFFF
- 2366 162f 89C7     		movl	%eax, %edi
- 2367 1631 E8CAE9FF 		call	bswap_32
- 2367      FF
- 2368 1636 4189C5   		movl	%eax, %r13d
- 2369 1639 8B8508DC 		movl	-9208(%rbp), %eax
- 2369      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 105
-
-
- 2370 163f 89C7     		movl	%eax, %edi
- 2371 1641 E8BAE9FF 		call	bswap_32
- 2371      FF
- 2372 1646 4189C4   		movl	%eax, %r12d
- 2373 1649 8B8504DC 		movl	-9212(%rbp), %eax
- 2373      FFFF
- 2374 164f 89C7     		movl	%eax, %edi
- 2375 1651 E8AAE9FF 		call	bswap_32
- 2375      FF
- 2376 1656 89C3     		movl	%eax, %ebx
- 2377 1658 8B8500DC 		movl	-9216(%rbp), %eax
- 2377      FFFF
- 2378 165e 89C7     		movl	%eax, %edi
- 2379 1660 E89BE9FF 		call	bswap_32
- 2379      FF
- 2380 1665 4589E9   		movl	%r13d, %r9d
- 2381 1668 4589E0   		movl	%r12d, %r8d
- 2382 166b 89D9     		movl	%ebx, %ecx
- 2383 166d 89C2     		movl	%eax, %edx
- 2384 166f 488D3500 		leaq	.LC3(%rip), %rsi
- 2384      000000
- 2385 1676 488D3D00 		leaq	.LC1(%rip), %rdi
- 2385      000000
- 2386 167d B8000000 		movl	$0, %eax
- 2386      00
- 2387 1682 E8000000 		call	KDbgMsg at PLT
- 2387      00
- 2388              	.L45:
- 2389 1687 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2389      70D8FFFF 
- 2390 168f F30F7F85 		movdqu	%xmm0, -5376(%rbp)
- 2390      00EBFFFF 
- 2391              	.LBE522:
- 2392              	.LBB523:
- 2393              	.LBB524:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 2394              		.loc 2 1357 0
- 2395 1697 F30F6F85 		movdqu	-5376(%rbp), %xmm0
- 2395      00EBFFFF 
- 2396 169f F30F7F85 		movdqu	%xmm0, -9008(%rbp)
- 2396      D0DCFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 2397              		.loc 2 1358 0
- 2398 16a7 8B85DCDC 		movl	-8996(%rbp), %eax
- 2398      FFFF
- 2399 16ad 8985D8DC 		movl	%eax, -9000(%rbp)
- 2399      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 2400              		.loc 2 1359 0
- 2401 16b3 8B85DCDC 		movl	-8996(%rbp), %eax
- 2401      FFFF
- 2402 16b9 8985D4DC 		movl	%eax, -9004(%rbp)
- 2402      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 2403              		.loc 2 1360 0
- 2404 16bf 8B85DCDC 		movl	-8996(%rbp), %eax
- 2404      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 106
-
-
- 2405 16c5 8985D0DC 		movl	%eax, -9008(%rbp)
- 2405      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 2406              		.loc 2 1361 0
- 2407 16cb F30F6F85 		movdqu	-9008(%rbp), %xmm0
- 2407      D0DCFFFF 
- 2408              	.LBE524:
- 2409              	.LBE523:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 2410              		.loc 2 1688 0
- 2411 16d3 660F7F85 		movdqa	%xmm0, -10128(%rbp)
- 2411      70D8FFFF 
- 2412              	.LBB525:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 2413              		.loc 2 1689 0
- 2414 16db 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2414      70D8FFFF 
- 2415 16e3 F30F7F85 		movdqu	%xmm0, -9232(%rbp)
- 2415      F0DBFFFF 
- 2416 16eb E8000000 		call	KDbgWriterGet at PLT
- 2416      00
- 2417 16f0 4885C0   		testq	%rax, %rax
- 2418 16f3 7479     		je	.L47
- 2419 16f5 BF010000 		movl	$1, %edi
- 2419      00
- 2420 16fa E8000000 		call	KDbgCondToFlag at PLT
- 2420      00
- 2421 16ff 4889C6   		movq	%rax, %rsi
- 2422 1702 BF100000 		movl	$16, %edi
- 2422      00
- 2423 1707 E8000000 		call	KDbgTestModConds at PLT
- 2423      00
- 2424 170c 84C0     		testb	%al, %al
- 2425 170e 745E     		je	.L47
- 2426 1710 8B85FCDB 		movl	-9220(%rbp), %eax
- 2426      FFFF
- 2427 1716 89C7     		movl	%eax, %edi
- 2428 1718 E8E3E8FF 		call	bswap_32
- 2428      FF
- 2429 171d 4189C5   		movl	%eax, %r13d
- 2430 1720 8B85F8DB 		movl	-9224(%rbp), %eax
- 2430      FFFF
- 2431 1726 89C7     		movl	%eax, %edi
- 2432 1728 E8D3E8FF 		call	bswap_32
- 2432      FF
- 2433 172d 4189C4   		movl	%eax, %r12d
- 2434 1730 8B85F4DB 		movl	-9228(%rbp), %eax
- 2434      FFFF
- 2435 1736 89C7     		movl	%eax, %edi
- 2436 1738 E8C3E8FF 		call	bswap_32
- 2436      FF
- 2437 173d 89C3     		movl	%eax, %ebx
- 2438 173f 8B85F0DB 		movl	-9232(%rbp), %eax
- 2438      FFFF
- 2439 1745 89C7     		movl	%eax, %edi
- 2440 1747 E8B4E8FF 		call	bswap_32
- 2440      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 107
-
-
- 2441 174c 4589E9   		movl	%r13d, %r9d
- 2442 174f 4589E0   		movl	%r12d, %r8d
- 2443 1752 89D9     		movl	%ebx, %ecx
- 2444 1754 89C2     		movl	%eax, %edx
- 2445 1756 488D3500 		leaq	.LC4(%rip), %rsi
- 2445      000000
- 2446 175d 488D3D00 		leaq	.LC1(%rip), %rdi
- 2446      000000
- 2447 1764 B8000000 		movl	$0, %eax
- 2447      00
- 2448 1769 E8000000 		call	KDbgMsg at PLT
- 2448      00
- 2449              	.L47:
- 2450              	.LBE525:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 2451              		.loc 2 1690 0
- 2452 176e 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 2452      70D8FFFF 
- 2453              	.LBE491:
- 2454              	.LBE490:
-1745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x02,2);
- 2455              		.loc 2 1745 0
- 2456 1776 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 2456      20E6FFFF 
- 2457 177e F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 2457      10E6FFFF 
- 2458 1786 F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 2458      10EBFFFF 
- 2459              	.LBB526:
- 2460              	.LBB527:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2461              		.loc 2 1565 0
- 2462 178e F30F6F85 		movdqu	-5360(%rbp), %xmm0
- 2462      10EBFFFF 
- 2463 1796 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 2463      A0D8FFFF 
- 2464 179e 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 2464      A0D8FFFF 
- 2465 17a6 F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 2465      20EBFFFF 
- 2466              	.LBB528:
- 2467              	.LBB529:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 2468              		.loc 2 1282 0
- 2469 17ae F30F6F85 		movdqu	-5344(%rbp), %xmm0
- 2469      20EBFFFF 
- 2470 17b6 F30F7F85 		movdqu	%xmm0, -8992(%rbp)
- 2470      E0DCFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 2471              		.loc 2 1283 0
- 2472 17be 8B85E8DC 		movl	-8984(%rbp), %eax
- 2472      FFFF
- 2473 17c4 8985ECDC 		movl	%eax, -8980(%rbp)
- 2473      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 2474              		.loc 2 1284 0
- 2475 17ca 8B85E4DC 		movl	-8988(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 108
-
-
- 2475      FFFF
- 2476 17d0 8985E8DC 		movl	%eax, -8984(%rbp)
- 2476      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 2477              		.loc 2 1285 0
- 2478 17d6 8B85E0DC 		movl	-8992(%rbp), %eax
- 2478      FFFF
- 2479 17dc 8985E4DC 		movl	%eax, -8988(%rbp)
- 2479      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 2480              		.loc 2 1286 0
- 2481 17e2 C785E0DC 		movl	$0, -8992(%rbp)
- 2481      FFFF0000 
- 2481      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 2482              		.loc 2 1287 0
- 2483 17ec F30F6F85 		movdqu	-8992(%rbp), %xmm0
- 2483      E0DCFFFF 
- 2484              	.LBE529:
- 2485              	.LBE528:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2486              		.loc 2 1567 0
- 2487 17f4 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 2487      A0D8FFFF 
- 2488 17fc 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 2488      A0D8FFFF 
- 2489 1804 660FEF85 		pxor	-5360(%rbp), %xmm0
- 2489      10EBFFFF 
- 2490 180c F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 2490      10EBFFFF 
- 2491 1814 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 2491      A0D8FFFF 
- 2492 181c F30F7F85 		movdqu	%xmm0, -5328(%rbp)
- 2492      30EBFFFF 
- 2493              	.LBB530:
- 2494              	.LBB531:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 2495              		.loc 2 1282 0
- 2496 1824 F30F6F85 		movdqu	-5328(%rbp), %xmm0
- 2496      30EBFFFF 
- 2497 182c F30F7F85 		movdqu	%xmm0, -8976(%rbp)
- 2497      F0DCFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 2498              		.loc 2 1283 0
- 2499 1834 8B85F8DC 		movl	-8968(%rbp), %eax
- 2499      FFFF
- 2500 183a 8985FCDC 		movl	%eax, -8964(%rbp)
- 2500      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 2501              		.loc 2 1284 0
- 2502 1840 8B85F4DC 		movl	-8972(%rbp), %eax
- 2502      FFFF
- 2503 1846 8985F8DC 		movl	%eax, -8968(%rbp)
- 2503      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 2504              		.loc 2 1285 0
- 2505 184c 8B85F0DC 		movl	-8976(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 109
-
-
- 2505      FFFF
- 2506 1852 8985F4DC 		movl	%eax, -8972(%rbp)
- 2506      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 2507              		.loc 2 1286 0
- 2508 1858 C785F0DC 		movl	$0, -8976(%rbp)
- 2508      FFFF0000 
- 2508      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 2509              		.loc 2 1287 0
- 2510 1862 F30F6F85 		movdqu	-8976(%rbp), %xmm0
- 2510      F0DCFFFF 
- 2511              	.LBE531:
- 2512              	.LBE530:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2513              		.loc 2 1568 0
- 2514 186a 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 2514      A0D8FFFF 
- 2515 1872 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 2515      A0D8FFFF 
- 2516 187a 660FEF85 		pxor	-5360(%rbp), %xmm0
- 2516      10EBFFFF 
- 2517 1882 F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 2517      10EBFFFF 
- 2518 188a 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 2518      A0D8FFFF 
- 2519 1892 F30F7F85 		movdqu	%xmm0, -5312(%rbp)
- 2519      40EBFFFF 
- 2520              	.LBB532:
- 2521              	.LBB533:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 2522              		.loc 2 1282 0
- 2523 189a F30F6F85 		movdqu	-5312(%rbp), %xmm0
- 2523      40EBFFFF 
- 2524 18a2 F30F7F85 		movdqu	%xmm0, -8960(%rbp)
- 2524      00DDFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 2525              		.loc 2 1283 0
- 2526 18aa 8B8508DD 		movl	-8952(%rbp), %eax
- 2526      FFFF
- 2527 18b0 89850CDD 		movl	%eax, -8948(%rbp)
- 2527      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 2528              		.loc 2 1284 0
- 2529 18b6 8B8504DD 		movl	-8956(%rbp), %eax
- 2529      FFFF
- 2530 18bc 898508DD 		movl	%eax, -8952(%rbp)
- 2530      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 2531              		.loc 2 1285 0
- 2532 18c2 8B8500DD 		movl	-8960(%rbp), %eax
- 2532      FFFF
- 2533 18c8 898504DD 		movl	%eax, -8956(%rbp)
- 2533      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 2534              		.loc 2 1286 0
- 2535 18ce C78500DD 		movl	$0, -8960(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 110
-
-
- 2535      FFFF0000 
- 2535      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 2536              		.loc 2 1287 0
- 2537 18d8 F30F6F85 		movdqu	-8960(%rbp), %xmm0
- 2537      00DDFFFF 
- 2538              	.LBE533:
- 2539              	.LBE532:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2540              		.loc 2 1569 0
- 2541 18e0 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 2541      A0D8FFFF 
- 2542 18e8 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 2542      A0D8FFFF 
- 2543 18f0 660FEF85 		pxor	-5360(%rbp), %xmm0
- 2543      10EBFFFF 
- 2544 18f8 F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 2544      10EBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2545              		.loc 2 1571 0
- 2546 1900 F30F6F85 		movdqu	-5360(%rbp), %xmm0
- 2546      10EBFFFF 
- 2547              	.LBE527:
- 2548              	.LBE526:
-1745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x02,2);
- 2549              		.loc 2 1745 0
- 2550 1908 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 2550      10E6FFFF 
- 2551 1910 F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 2551      20E6FFFF 
- 2552 1918 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 2552      10E6FFFF 
- 2553 1920 660FEFC1 		pxor	%xmm1, %xmm0
- 2554 1924 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 2554      10E6FFFF 
- 2555 192c 488B85B8 		movq	-9544(%rbp), %rax
- 2555      DAFFFF
- 2556 1933 4883C020 		addq	$32, %rax
- 2557 1937 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 2557      10E6FFFF 
- 2558 193f F30F7F00 		movdqu	%xmm0, (%rax)
- 2559 1943 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 2559      10E6FFFF 
- 2560 194b F30F7F85 		movdqu	%xmm0, -5280(%rbp)
- 2560      60EBFFFF 
- 2561              	.LBB534:
- 2562              	.LBB535:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 2563              		.loc 2 1681 0
- 2564 1953 B8040000 		movl	$4, %eax
- 2564      00
- 2565 1958 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 2565      00000000 
- 2566 1960 F30F7F85 		movdqu	%xmm0, -5248(%rbp)
- 2566      80EBFFFF 
- 2567 1968 89857CEB 		movl	%eax, -5252(%rbp)
- 2567      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 111
-
-
- 2568              	.LBB536:
- 2569              	.LBB537:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 2570              		.loc 2 522 0
- 2571 196e F30F6F85 		movdqu	-5248(%rbp), %xmm0
- 2571      80EBFFFF 
- 2572 1976 F30F7F85 		movdqu	%xmm0, -8880(%rbp)
- 2572      50DDFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 2573              		.loc 2 523 0
- 2574 197e B8030000 		movl	$3, %eax
- 2574      00
- 2575 1983 4898     		cltq
- 2576 1985 8B957CEB 		movl	-5252(%rbp), %edx
- 2576      FFFF
- 2577 198b 89948550 		movl	%edx, -8880(%rbp,%rax,4)
- 2577      DDFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 2578              		.loc 2 524 0
- 2579 1992 F30F6F85 		movdqu	-8880(%rbp), %xmm0
- 2579      50DDFFFF 
- 2580 199a F30F7F85 		movdqu	%xmm0, -5248(%rbp)
- 2580      80EBFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2581              		.loc 2 526 0
- 2582 19a2 F30F6F85 		movdqu	-5248(%rbp), %xmm0
- 2582      80EBFFFF 
- 2583              	.LBE537:
- 2584              	.LBE536:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 2585              		.loc 2 1681 0
- 2586 19aa 660F7F85 		movdqa	%xmm0, -10048(%rbp)
- 2586      C0D8FFFF 
- 2587 19b2 F30F6F85 		movdqu	-5280(%rbp), %xmm0
- 2587      60EBFFFF 
- 2588 19ba F30F7F85 		movdqu	%xmm0, -5232(%rbp)
- 2588      90EBFFFF 
- 2589 19c2 F30F6F85 		movdqu	-5232(%rbp), %xmm0
- 2589      90EBFFFF 
- 2590 19ca F30F7F85 		movdqu	%xmm0, -5200(%rbp)
- 2590      B0EBFFFF 
- 2591 19d2 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 2591      000000
- 2592 19d9 488985A8 		movq	%rax, -5208(%rbp)
- 2592      EBFFFF
- 2593              	.LBB538:
- 2594              	.LBB539:
- 2595              	.LBB540:
- 2596              	.LBB541:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 2597              		.loc 2 851 0
- 2598 19e0 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 2598      00000000 
- 2599 19e8 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 2599      D0EBFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 2600              		.loc 2 854 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 112
-
-
- 2601 19f0 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2601      00000000 
- 2602 19f8 F30F6F8D 		movdqu	-5200(%rbp), %xmm1
- 2602      B0EBFFFF 
- 2603 1a00 F30F7F8D 		movdqu	%xmm1, -5088(%rbp)
- 2603      20ECFFFF 
- 2604 1a08 F30F7F85 		movdqu	%xmm0, -5104(%rbp)
- 2604      10ECFFFF 
- 2605              	.LBB542:
- 2606              	.LBB543:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2607              		.loc 2 206 0
- 2608 1a10 F30F6F85 		movdqu	-5104(%rbp), %xmm0
- 2608      10ECFFFF 
- 2609 1a18 F30F6F8D 		movdqu	-5088(%rbp), %xmm1
- 2609      20ECFFFF 
- 2610 1a20 660FDBC1 		pand	%xmm1, %xmm0
- 2611              	.LBE543:
- 2612              	.LBE542:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 2613              		.loc 2 854 0
- 2614 1a24 F30F7F85 		movdqu	%xmm0, -5120(%rbp)
- 2614      00ECFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 2615              		.loc 2 862 0
- 2616 1a2c 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 2616      00000000 
- 2617 1a34 F30F6F8D 		movdqu	-5200(%rbp), %xmm1
- 2617      B0EBFFFF 
- 2618 1a3c F30F7F8D 		movdqu	%xmm1, -5056(%rbp)
- 2618      40ECFFFF 
- 2619 1a44 F30F7F85 		movdqu	%xmm0, -5072(%rbp)
- 2619      30ECFFFF 
- 2620              	.LBB544:
- 2621              		.loc 2 2642 0
- 2622 1a4c 0FB68540 		movzbl	-5056(%rbp), %eax
- 2622      ECFFFF
- 2623 1a53 0FB69530 		movzbl	-5072(%rbp), %edx
- 2623      ECFFFF
- 2624 1a5a 0FB6C0   		movzbl	%al, %eax
- 2625 1a5d 6689858E 		movw	%ax, -10354(%rbp)
- 2625      D7FFFF
- 2626 1a64 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2626      D7FFFF
- 2627 1a6b F6F2     		divb	%dl
- 2628 1a6d 4189C7   		movl	%eax, %r15d
- 2629 1a70 0FB68541 		movzbl	-5055(%rbp), %eax
- 2629      ECFFFF
- 2630 1a77 0FB69531 		movzbl	-5071(%rbp), %edx
- 2630      ECFFFF
- 2631 1a7e 0FB6C0   		movzbl	%al, %eax
- 2632 1a81 6689858E 		movw	%ax, -10354(%rbp)
- 2632      D7FFFF
- 2633 1a88 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2633      D7FFFF
- 2634 1a8f F6F2     		divb	%dl
- 2635 1a91 8885DFD8 		movb	%al, -10017(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 113
-
-
- 2635      FFFF
- 2636 1a97 0FB68542 		movzbl	-5054(%rbp), %eax
- 2636      ECFFFF
- 2637 1a9e 0FB69532 		movzbl	-5070(%rbp), %edx
- 2637      ECFFFF
- 2638 1aa5 0FB6C0   		movzbl	%al, %eax
- 2639 1aa8 6689858E 		movw	%ax, -10354(%rbp)
- 2639      D7FFFF
- 2640 1aaf 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2640      D7FFFF
- 2641 1ab6 F6F2     		divb	%dl
- 2642 1ab8 8885DED8 		movb	%al, -10018(%rbp)
- 2642      FFFF
- 2643 1abe 0FB68543 		movzbl	-5053(%rbp), %eax
- 2643      ECFFFF
- 2644 1ac5 0FB69533 		movzbl	-5069(%rbp), %edx
- 2644      ECFFFF
- 2645 1acc 0FB6C0   		movzbl	%al, %eax
- 2646 1acf 6689858E 		movw	%ax, -10354(%rbp)
- 2646      D7FFFF
- 2647 1ad6 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2647      D7FFFF
- 2648 1add F6F2     		divb	%dl
- 2649 1adf 8885DDD8 		movb	%al, -10019(%rbp)
- 2649      FFFF
- 2650 1ae5 0FB68544 		movzbl	-5052(%rbp), %eax
- 2650      ECFFFF
- 2651 1aec 0FB69534 		movzbl	-5068(%rbp), %edx
- 2651      ECFFFF
- 2652 1af3 0FB6C0   		movzbl	%al, %eax
- 2653 1af6 6689858E 		movw	%ax, -10354(%rbp)
- 2653      D7FFFF
- 2654 1afd 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2654      D7FFFF
- 2655 1b04 F6F2     		divb	%dl
- 2656 1b06 8885DCD8 		movb	%al, -10020(%rbp)
- 2656      FFFF
- 2657 1b0c 0FB68545 		movzbl	-5051(%rbp), %eax
- 2657      ECFFFF
- 2658 1b13 0FB69535 		movzbl	-5067(%rbp), %edx
- 2658      ECFFFF
- 2659 1b1a 0FB6C0   		movzbl	%al, %eax
- 2660 1b1d 6689858E 		movw	%ax, -10354(%rbp)
- 2660      D7FFFF
- 2661 1b24 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2661      D7FFFF
- 2662 1b2b F6F2     		divb	%dl
- 2663 1b2d 4189C1   		movl	%eax, %r9d
- 2664 1b30 0FB68546 		movzbl	-5050(%rbp), %eax
- 2664      ECFFFF
- 2665 1b37 0FB69536 		movzbl	-5066(%rbp), %edx
- 2665      ECFFFF
- 2666 1b3e 0FB6C0   		movzbl	%al, %eax
- 2667 1b41 6689858E 		movw	%ax, -10354(%rbp)
- 2667      D7FFFF
- 2668 1b48 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2668      D7FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 114
-
-
- 2669 1b4f F6F2     		divb	%dl
- 2670 1b51 89C7     		movl	%eax, %edi
- 2671 1b53 0FB68547 		movzbl	-5049(%rbp), %eax
- 2671      ECFFFF
- 2672 1b5a 0FB69537 		movzbl	-5065(%rbp), %edx
- 2672      ECFFFF
- 2673 1b61 0FB6C0   		movzbl	%al, %eax
- 2674 1b64 6689858E 		movw	%ax, -10354(%rbp)
- 2674      D7FFFF
- 2675 1b6b 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2675      D7FFFF
- 2676 1b72 F6F2     		divb	%dl
- 2677 1b74 89C3     		movl	%eax, %ebx
- 2678 1b76 0FB68548 		movzbl	-5048(%rbp), %eax
- 2678      ECFFFF
- 2679 1b7d 0FB69538 		movzbl	-5064(%rbp), %edx
- 2679      ECFFFF
- 2680 1b84 0FB6C0   		movzbl	%al, %eax
- 2681 1b87 6689858E 		movw	%ax, -10354(%rbp)
- 2681      D7FFFF
- 2682 1b8e 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2682      D7FFFF
- 2683 1b95 F6F2     		divb	%dl
- 2684 1b97 4189C2   		movl	%eax, %r10d
- 2685 1b9a 0FB68549 		movzbl	-5047(%rbp), %eax
- 2685      ECFFFF
- 2686 1ba1 0FB69539 		movzbl	-5063(%rbp), %edx
- 2686      ECFFFF
- 2687 1ba8 0FB6C0   		movzbl	%al, %eax
- 2688 1bab 6689858E 		movw	%ax, -10354(%rbp)
- 2688      D7FFFF
- 2689 1bb2 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2689      D7FFFF
- 2690 1bb9 F6F2     		divb	%dl
- 2691 1bbb 4189C3   		movl	%eax, %r11d
- 2692 1bbe 0FB6854A 		movzbl	-5046(%rbp), %eax
- 2692      ECFFFF
- 2693 1bc5 0FB6953A 		movzbl	-5062(%rbp), %edx
- 2693      ECFFFF
- 2694 1bcc 0FB6C0   		movzbl	%al, %eax
- 2695 1bcf 6689858E 		movw	%ax, -10354(%rbp)
- 2695      D7FFFF
- 2696 1bd6 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2696      D7FFFF
- 2697 1bdd F6F2     		divb	%dl
- 2698 1bdf 4189C4   		movl	%eax, %r12d
- 2699 1be2 0FB6854B 		movzbl	-5045(%rbp), %eax
- 2699      ECFFFF
- 2700 1be9 0FB6953B 		movzbl	-5061(%rbp), %edx
- 2700      ECFFFF
- 2701 1bf0 0FB6C0   		movzbl	%al, %eax
- 2702 1bf3 6689858E 		movw	%ax, -10354(%rbp)
- 2702      D7FFFF
- 2703 1bfa 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2703      D7FFFF
- 2704 1c01 F6F2     		divb	%dl
- 2705 1c03 4189C5   		movl	%eax, %r13d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 115
-
-
- 2706 1c06 0FB6854C 		movzbl	-5044(%rbp), %eax
- 2706      ECFFFF
- 2707 1c0d 0FB6953C 		movzbl	-5060(%rbp), %edx
- 2707      ECFFFF
- 2708 1c14 0FB6C0   		movzbl	%al, %eax
- 2709 1c17 6689858E 		movw	%ax, -10354(%rbp)
- 2709      D7FFFF
- 2710 1c1e 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2710      D7FFFF
- 2711 1c25 F6F2     		divb	%dl
- 2712 1c27 4189C6   		movl	%eax, %r14d
- 2713 1c2a 0FB6854D 		movzbl	-5043(%rbp), %eax
- 2713      ECFFFF
- 2714 1c31 0FB6953D 		movzbl	-5059(%rbp), %edx
- 2714      ECFFFF
- 2715 1c38 0FB6C0   		movzbl	%al, %eax
- 2716 1c3b 6689858E 		movw	%ax, -10354(%rbp)
- 2716      D7FFFF
- 2717 1c42 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2717      D7FFFF
- 2718 1c49 F6F2     		divb	%dl
- 2719 1c4b 4189C0   		movl	%eax, %r8d
- 2720 1c4e 0FB6854E 		movzbl	-5042(%rbp), %eax
- 2720      ECFFFF
- 2721 1c55 0FB6953E 		movzbl	-5058(%rbp), %edx
- 2721      ECFFFF
- 2722 1c5c 0FB6C0   		movzbl	%al, %eax
- 2723 1c5f 6689858E 		movw	%ax, -10354(%rbp)
- 2723      D7FFFF
- 2724 1c66 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2724      D7FFFF
- 2725 1c6d F6F2     		divb	%dl
- 2726 1c6f 89C6     		movl	%eax, %esi
- 2727 1c71 0FB6854F 		movzbl	-5041(%rbp), %eax
- 2727      ECFFFF
- 2728 1c78 0FB6953F 		movzbl	-5057(%rbp), %edx
- 2728      ECFFFF
- 2729 1c7f 0FB6C0   		movzbl	%al, %eax
- 2730 1c82 6689858E 		movw	%ax, -10354(%rbp)
- 2730      D7FFFF
- 2731 1c89 0FB7858E 		movzwl	-10354(%rbp), %eax
- 2731      D7FFFF
- 2732 1c90 F6F2     		divb	%dl
- 2733 1c92 89C1     		movl	%eax, %ecx
- 2734              	.LBB545:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 2735              		.loc 2 346 0
- 2736 1c94 0FB6D3   		movzbl	%bl, %edx
- 2737 1c97 400FB6C7 		movzbl	%dil, %eax
- 2738 1c9b 48C1E208 		salq	$8, %rdx
- 2739 1c9f 4809C2   		orq	%rax, %rdx
- 2740 1ca2 410FB6C1 		movzbl	%r9b, %eax
- 2741 1ca6 48C1E208 		salq	$8, %rdx
- 2742 1caa 4809C2   		orq	%rax, %rdx
- 2743 1cad 0FB685DC 		movzbl	-10020(%rbp), %eax
- 2743      D8FFFF
- 2744 1cb4 48C1E208 		salq	$8, %rdx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 116
-
-
- 2745 1cb8 4809C2   		orq	%rax, %rdx
- 2746 1cbb 0FB685DD 		movzbl	-10019(%rbp), %eax
- 2746      D8FFFF
- 2747 1cc2 48C1E208 		salq	$8, %rdx
- 2748 1cc6 4809C2   		orq	%rax, %rdx
- 2749 1cc9 0FB685DE 		movzbl	-10018(%rbp), %eax
- 2749      D8FFFF
- 2750 1cd0 48C1E208 		salq	$8, %rdx
- 2751 1cd4 4809C2   		orq	%rax, %rdx
- 2752 1cd7 0FB685DF 		movzbl	-10017(%rbp), %eax
- 2752      D8FFFF
- 2753 1cde 48C1E208 		salq	$8, %rdx
- 2754 1ce2 4809C2   		orq	%rax, %rdx
- 2755 1ce5 410FB6C7 		movzbl	%r15b, %eax
- 2756 1ce9 48C1E208 		salq	$8, %rdx
- 2757 1ced 4809C2   		orq	%rax, %rdx
- 2758 1cf0 0FB6C1   		movzbl	%cl, %eax
- 2759 1cf3 400FB6CE 		movzbl	%sil, %ecx
- 2760 1cf7 48C1E008 		salq	$8, %rax
- 2761 1cfb 4809C8   		orq	%rcx, %rax
- 2762 1cfe 410FB6C8 		movzbl	%r8b, %ecx
- 2763 1d02 48C1E008 		salq	$8, %rax
- 2764 1d06 4809C8   		orq	%rcx, %rax
- 2765 1d09 410FB6CE 		movzbl	%r14b, %ecx
- 2766 1d0d 48C1E008 		salq	$8, %rax
- 2767 1d11 4809C8   		orq	%rcx, %rax
- 2768 1d14 410FB6CD 		movzbl	%r13b, %ecx
- 2769 1d18 48C1E008 		salq	$8, %rax
- 2770 1d1c 4809C8   		orq	%rcx, %rax
- 2771 1d1f 410FB6CC 		movzbl	%r12b, %ecx
- 2772 1d23 48C1E008 		salq	$8, %rax
- 2773 1d27 4809C8   		orq	%rcx, %rax
- 2774 1d2a 410FB6CB 		movzbl	%r11b, %ecx
- 2775 1d2e 48C1E008 		salq	$8, %rax
- 2776 1d32 4809C8   		orq	%rcx, %rax
- 2777 1d35 410FB6CA 		movzbl	%r10b, %ecx
- 2778 1d39 48C1E008 		salq	$8, %rax
- 2779 1d3d 4809C8   		orq	%rcx, %rax
- 2780 1d40 48899500 		movq	%rdx, -10240(%rbp)
- 2780      D8FFFF
- 2781 1d47 48898508 		movq	%rax, -10232(%rbp)
- 2781      D8FFFF
- 2782 1d4e 660F6F85 		movdqa	-10240(%rbp), %xmm0
- 2782      00D8FFFF 
- 2783              	.LBE545:
- 2784              	.LBE544:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 2785              		.loc 2 862 0
- 2786 1d56 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 2786      F0EBFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 2787              		.loc 2 866 0
- 2788 1d5e C785CCEB 		movl	$0, -5172(%rbp)
- 2788      FFFF0000 
- 2788      0000
- 2789 1d68 E9860200 		jmp	.L48
- 2789      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 117
-
-
- 2790              	.L57:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2791              		.loc 2 868 0
- 2792 1d6d 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 2792      00000000 
- 2793 1d75 F30F7F85 		movdqu	%xmm0, -5024(%rbp)
- 2793      60ECFFFF 
- 2794 1d7d F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 2794      F0EBFFFF 
- 2795 1d85 F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 2795      50ECFFFF 
- 2796              	.LBB546:
- 2797              	.LBB547:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 2798              		.loc 2 380 0
- 2799 1d8d F30F6F85 		movdqu	-5024(%rbp), %xmm0
- 2799      60ECFFFF 
- 2800 1d95 F30F7F85 		movdqu	%xmm0, -8848(%rbp)
- 2800      70DDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 2801              		.loc 2 381 0
- 2802 1d9d F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 2802      50ECFFFF 
- 2803 1da5 F30F7F85 		movdqu	%xmm0, -8864(%rbp)
- 2803      60DDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2804              		.loc 2 383 0
- 2805 1dad C7857CEC 		movl	$0, -4996(%rbp)
- 2805      FFFF0000 
- 2805      0000
- 2806 1db7 EB5C     		jmp	.L49
- 2807              	.L52:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 2808              		.loc 2 385 0
- 2809 1db9 8B857CEC 		movl	-4996(%rbp), %eax
- 2809      FFFF
- 2810 1dbf 89C0     		mov	%eax, %eax
- 2811 1dc1 0FB68405 		movzbl	-8864(%rbp,%rax), %eax
- 2811      60DDFFFF 
- 2812 1dc9 84C0     		testb	%al, %al
- 2813 1dcb 7912     		jns	.L50
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 2814              		.loc 2 386 0
- 2815 1dcd 8B857CEC 		movl	-4996(%rbp), %eax
- 2815      FFFF
- 2816 1dd3 89C0     		mov	%eax, %eax
- 2817 1dd5 C6840580 		movb	$0, -8832(%rbp,%rax)
- 2817      DDFFFF00 
- 2818 1ddd EB2F     		jmp	.L51
- 2819              	.L50:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 2820              		.loc 2 388 0
- 2821 1ddf 8B8D7CEC 		movl	-4996(%rbp), %ecx
- 2821      FFFF
- 2822 1de5 8B857CEC 		movl	-4996(%rbp), %eax
- 2822      FFFF
- 2823 1deb 89C0     		mov	%eax, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 118
-
-
- 2824 1ded 0FB68405 		movzbl	-8864(%rbp,%rax), %eax
- 2824      60DDFFFF 
- 2825 1df5 0FB6C0   		movzbl	%al, %eax
- 2826 1df8 83E00F   		andl	$15, %eax
- 2827 1dfb 4898     		cltq
- 2828 1dfd 0FB69405 		movzbl	-8848(%rbp,%rax), %edx
- 2828      70DDFFFF 
- 2829 1e05 89C8     		mov	%ecx, %eax
- 2830 1e07 88940580 		movb	%dl, -8832(%rbp,%rax)
- 2830      DDFFFF
- 2831              	.L51:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2832              		.loc 2 383 0
- 2833 1e0e 83857CEC 		addl	$1, -4996(%rbp)
- 2833      FFFF01
- 2834              	.L49:
- 2835 1e15 83BD7CEC 		cmpl	$15, -4996(%rbp)
- 2835      FFFF0F
- 2836 1e1c 769B     		jbe	.L52
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 2837              		.loc 2 391 0
- 2838 1e1e F30F6F85 		movdqu	-8832(%rbp), %xmm0
- 2838      80DDFFFF 
- 2839              	.LBE547:
- 2840              	.LBE546:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2841              		.loc 2 868 0
- 2842 1e26 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 2842      E0EBFFFF 
- 2843 1e2e F30F6F85 		movdqu	-5120(%rbp), %xmm0
- 2843      00ECFFFF 
- 2844 1e36 F30F7F85 		movdqu	%xmm0, -4976(%rbp)
- 2844      90ECFFFF 
- 2845 1e3e F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 2845      E0EBFFFF 
- 2846 1e46 F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 2846      80ECFFFF 
- 2847              	.LBB548:
- 2848              	.LBB549:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2849              		.loc 2 234 0
- 2850 1e4e F30F6F85 		movdqu	-4992(%rbp), %xmm0
- 2850      80ECFFFF 
- 2851 1e56 F30F6F8D 		movdqu	-4976(%rbp), %xmm1
- 2851      90ECFFFF 
- 2852 1e5e 660FEBC1 		por	%xmm1, %xmm0
- 2853              	.LBE549:
- 2854              	.LBE548:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 2855              		.loc 2 870 0
- 2856 1e62 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 2856      E0EBFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2857              		.loc 2 872 0
- 2858 1e6a 8B85CCEB 		mov	-5172(%rbp), %eax
- 2858      FFFF
- 2859 1e70 48C1E004 		salq	$4, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 119
-
-
- 2860 1e74 480385A8 		addq	-5208(%rbp), %rax
- 2860      EBFFFF
- 2861 1e7b 660F6F00 		movdqa	(%rax), %xmm0
- 2862 1e7f F30F7F85 		movdqu	%xmm0, -4944(%rbp)
- 2862      B0ECFFFF 
- 2863 1e87 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 2863      E0EBFFFF 
- 2864 1e8f F30F7F85 		movdqu	%xmm0, -4960(%rbp)
- 2864      A0ECFFFF 
- 2865              	.LBB550:
- 2866              	.LBB551:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 2867              		.loc 2 380 0
- 2868 1e97 F30F6F85 		movdqu	-4944(%rbp), %xmm0
- 2868      B0ECFFFF 
- 2869 1e9f F30F7F85 		movdqu	%xmm0, -8800(%rbp)
- 2869      A0DDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 2870              		.loc 2 381 0
- 2871 1ea7 F30F6F85 		movdqu	-4960(%rbp), %xmm0
- 2871      A0ECFFFF 
- 2872 1eaf F30F7F85 		movdqu	%xmm0, -8816(%rbp)
- 2872      90DDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2873              		.loc 2 383 0
- 2874 1eb7 C785CCEC 		movl	$0, -4916(%rbp)
- 2874      FFFF0000 
- 2874      0000
- 2875 1ec1 EB5C     		jmp	.L53
- 2876              	.L56:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 2877              		.loc 2 385 0
- 2878 1ec3 8B85CCEC 		movl	-4916(%rbp), %eax
- 2878      FFFF
- 2879 1ec9 89C0     		mov	%eax, %eax
- 2880 1ecb 0FB68405 		movzbl	-8816(%rbp,%rax), %eax
- 2880      90DDFFFF 
- 2881 1ed3 84C0     		testb	%al, %al
- 2882 1ed5 7912     		jns	.L54
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 2883              		.loc 2 386 0
- 2884 1ed7 8B85CCEC 		movl	-4916(%rbp), %eax
- 2884      FFFF
- 2885 1edd 89C0     		mov	%eax, %eax
- 2886 1edf C68405B0 		movb	$0, -8784(%rbp,%rax)
- 2886      DDFFFF00 
- 2887 1ee7 EB2F     		jmp	.L55
- 2888              	.L54:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 2889              		.loc 2 388 0
- 2890 1ee9 8B8DCCEC 		movl	-4916(%rbp), %ecx
- 2890      FFFF
- 2891 1eef 8B85CCEC 		movl	-4916(%rbp), %eax
- 2891      FFFF
- 2892 1ef5 89C0     		mov	%eax, %eax
- 2893 1ef7 0FB68405 		movzbl	-8816(%rbp,%rax), %eax
- 2893      90DDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 120
-
-
- 2894 1eff 0FB6C0   		movzbl	%al, %eax
- 2895 1f02 83E00F   		andl	$15, %eax
- 2896 1f05 4898     		cltq
- 2897 1f07 0FB69405 		movzbl	-8800(%rbp,%rax), %edx
- 2897      A0DDFFFF 
- 2898 1f0f 89C8     		mov	%ecx, %eax
- 2899 1f11 889405B0 		movb	%dl, -8784(%rbp,%rax)
- 2899      DDFFFF
- 2900              	.L55:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 2901              		.loc 2 383 0
- 2902 1f18 8385CCEC 		addl	$1, -4916(%rbp)
- 2902      FFFF01
- 2903              	.L53:
- 2904 1f1f 83BDCCEC 		cmpl	$15, -4916(%rbp)
- 2904      FFFF0F
- 2905 1f26 769B     		jbe	.L56
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 2906              		.loc 2 391 0
- 2907 1f28 F30F6F85 		movdqu	-8784(%rbp), %xmm0
- 2907      B0DDFFFF 
- 2908              	.LBE551:
- 2909              	.LBE550:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2910              		.loc 2 872 0
- 2911 1f30 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 2911      E0EBFFFF 
- 2912 1f38 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 2912      D0EBFFFF 
- 2913 1f40 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 2913      E0ECFFFF 
- 2914 1f48 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 2914      E0EBFFFF 
- 2915 1f50 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 2915      D0ECFFFF 
- 2916              	.LBB552:
- 2917              	.LBB553:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2918              		.loc 2 234 0
- 2919 1f58 F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 2919      D0ECFFFF 
- 2920 1f60 F30F6F8D 		movdqu	-4896(%rbp), %xmm1
- 2920      E0ECFFFF 
- 2921 1f68 660FEBC1 		por	%xmm1, %xmm0
- 2922              	.LBE553:
- 2923              	.LBE552:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 2924              		.loc 2 874 0
- 2925 1f6c F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 2925      D0EBFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 2926              		.loc 2 876 0
- 2927 1f74 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 2927      00000000 
- 2928 1f7c F30F6F8D 		movdqu	-5136(%rbp), %xmm1
- 2928      F0EBFFFF 
- 2929 1f84 F30F7F8D 		movdqu	%xmm1, -4864(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 121
-
-
- 2929      00EDFFFF 
- 2930 1f8c F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 2930      F0ECFFFF 
- 2931              	.LBB554:
- 2932              	.LBB555:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 2933              		.loc 2 290 0
- 2934 1f94 F30F6F8D 		movdqu	-4880(%rbp), %xmm1
- 2934      F0ECFFFF 
- 2935 1f9c F30F6F85 		movdqu	-4864(%rbp), %xmm0
- 2935      00EDFFFF 
- 2936 1fa4 660FF8C1 		psubb	%xmm1, %xmm0
- 2937              	.LBE555:
- 2938              	.LBE554:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 2939              		.loc 2 876 0
- 2940 1fa8 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 2940      F0EBFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2941              		.loc 2 878 0
- 2942 1fb0 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2942      00000000 
- 2943 1fb8 F30F6F8D 		movdqu	-5136(%rbp), %xmm1
- 2943      F0EBFFFF 
- 2944 1fc0 F30F7F8D 		movdqu	%xmm1, -4832(%rbp)
- 2944      20EDFFFF 
- 2945 1fc8 F30F7F85 		movdqu	%xmm0, -4848(%rbp)
- 2945      10EDFFFF 
- 2946              	.LBB556:
- 2947              	.LBB557:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2948              		.loc 2 206 0
- 2949 1fd0 F30F6F85 		movdqu	-4848(%rbp), %xmm0
- 2949      10EDFFFF 
- 2950 1fd8 F30F6F8D 		movdqu	-4832(%rbp), %xmm1
- 2950      20EDFFFF 
- 2951 1fe0 660FDBC1 		pand	%xmm1, %xmm0
- 2952              	.LBE557:
- 2953              	.LBE556:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2954              		.loc 2 878 0
- 2955 1fe4 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 2955      F0EBFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 2956              		.loc 2 866 0
- 2957 1fec 8385CCEB 		addl	$1, -5172(%rbp)
- 2957      FFFF01
- 2958              	.L48:
- 2959 1ff3 83BDCCEB 		cmpl	$15, -5172(%rbp)
- 2959      FFFF0F
- 2960 1ffa 0F866DFD 		jbe	.L57
- 2960      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 2961              		.loc 2 882 0
- 2962 2000 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 2962      D0EBFFFF 
- 2963              	.LBE541:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 122
-
-
- 2964              	.LBE540:
- 2965              	.LBE539:
- 2966              	.LBE538:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 2967              		.loc 2 1682 0
- 2968 2008 660F7F85 		movdqa	%xmm0, -10064(%rbp)
- 2968      B0D8FFFF 
- 2969              	.LBB558:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 2970              		.loc 2 1683 0
- 2971 2010 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 2971      B0D8FFFF 
- 2972 2018 F30F7F85 		movdqu	%xmm0, -8896(%rbp)
- 2972      40DDFFFF 
- 2973 2020 E8000000 		call	KDbgWriterGet at PLT
- 2973      00
- 2974 2025 4885C0   		testq	%rax, %rax
- 2975 2028 7479     		je	.L59
- 2976 202a BF010000 		movl	$1, %edi
- 2976      00
- 2977 202f E8000000 		call	KDbgCondToFlag at PLT
- 2977      00
- 2978 2034 4889C6   		movq	%rax, %rsi
- 2979 2037 BF100000 		movl	$16, %edi
- 2979      00
- 2980 203c E8000000 		call	KDbgTestModConds at PLT
- 2980      00
- 2981 2041 84C0     		testb	%al, %al
- 2982 2043 745E     		je	.L59
- 2983 2045 8B854CDD 		movl	-8884(%rbp), %eax
- 2983      FFFF
- 2984 204b 89C7     		movl	%eax, %edi
- 2985 204d E8AEDFFF 		call	bswap_32
- 2985      FF
- 2986 2052 4189C5   		movl	%eax, %r13d
- 2987 2055 8B8548DD 		movl	-8888(%rbp), %eax
- 2987      FFFF
- 2988 205b 89C7     		movl	%eax, %edi
- 2989 205d E89EDFFF 		call	bswap_32
- 2989      FF
- 2990 2062 4189C4   		movl	%eax, %r12d
- 2991 2065 8B8544DD 		movl	-8892(%rbp), %eax
- 2991      FFFF
- 2992 206b 89C7     		movl	%eax, %edi
- 2993 206d E88EDFFF 		call	bswap_32
- 2993      FF
- 2994 2072 89C3     		movl	%eax, %ebx
- 2995 2074 8B8540DD 		movl	-8896(%rbp), %eax
- 2995      FFFF
- 2996 207a 89C7     		movl	%eax, %edi
- 2997 207c E87FDFFF 		call	bswap_32
- 2997      FF
- 2998 2081 4589E9   		movl	%r13d, %r9d
- 2999 2084 4589E0   		movl	%r12d, %r8d
- 3000 2087 89D9     		movl	%ebx, %ecx
- 3001 2089 89C2     		movl	%eax, %edx
- 3002 208b 488D3500 		leaq	.LC0(%rip), %rsi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 123
-
-
- 3002      000000
- 3003 2092 488D3D00 		leaq	.LC1(%rip), %rdi
- 3003      000000
- 3004 2099 B8000000 		movl	$0, %eax
- 3004      00
- 3005 209e E8000000 		call	KDbgMsg at PLT
- 3005      00
- 3006              	.L59:
- 3007 20a3 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 3007      B0D8FFFF 
- 3008 20ab F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 3008      30EDFFFF 
- 3009              	.LBE558:
- 3010              	.LBB559:
- 3011              	.LBB560:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 3012              		.loc 2 667 0
- 3013 20b3 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 3013      00000000 
- 3014 20bb F30F6F8D 		movdqu	-4816(%rbp), %xmm1
- 3014      30EDFFFF 
- 3015 20c3 F30F7F8D 		movdqu	%xmm1, -4784(%rbp)
- 3015      50EDFFFF 
- 3016 20cb F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 3016      40EDFFFF 
- 3017              	.LBB561:
- 3018              	.LBB562:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 3019              		.loc 2 380 0
- 3020 20d3 F30F6F85 		movdqu	-4784(%rbp), %xmm0
- 3020      50EDFFFF 
- 3021 20db F30F7F85 		movdqu	%xmm0, -8752(%rbp)
- 3021      D0DDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 3022              		.loc 2 381 0
- 3023 20e3 F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 3023      40EDFFFF 
- 3024 20eb F30F7F85 		movdqu	%xmm0, -8768(%rbp)
- 3024      C0DDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3025              		.loc 2 383 0
- 3026 20f3 C7856CED 		movl	$0, -4756(%rbp)
- 3026      FFFF0000 
- 3026      0000
- 3027 20fd EB5C     		jmp	.L60
- 3028              	.L63:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 3029              		.loc 2 385 0
- 3030 20ff 8B856CED 		movl	-4756(%rbp), %eax
- 3030      FFFF
- 3031 2105 89C0     		mov	%eax, %eax
- 3032 2107 0FB68405 		movzbl	-8768(%rbp,%rax), %eax
- 3032      C0DDFFFF 
- 3033 210f 84C0     		testb	%al, %al
- 3034 2111 7912     		jns	.L61
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 3035              		.loc 2 386 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 124
-
-
- 3036 2113 8B856CED 		movl	-4756(%rbp), %eax
- 3036      FFFF
- 3037 2119 89C0     		mov	%eax, %eax
- 3038 211b C68405E0 		movb	$0, -8736(%rbp,%rax)
- 3038      DDFFFF00 
- 3039 2123 EB2F     		jmp	.L62
- 3040              	.L61:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 3041              		.loc 2 388 0
- 3042 2125 8B8D6CED 		movl	-4756(%rbp), %ecx
- 3042      FFFF
- 3043 212b 8B856CED 		movl	-4756(%rbp), %eax
- 3043      FFFF
- 3044 2131 89C0     		mov	%eax, %eax
- 3045 2133 0FB68405 		movzbl	-8768(%rbp,%rax), %eax
- 3045      C0DDFFFF 
- 3046 213b 0FB6C0   		movzbl	%al, %eax
- 3047 213e 83E00F   		andl	$15, %eax
- 3048 2141 4898     		cltq
- 3049 2143 0FB69405 		movzbl	-8752(%rbp,%rax), %edx
- 3049      D0DDFFFF 
- 3050 214b 89C8     		mov	%ecx, %eax
- 3051 214d 889405E0 		movb	%dl, -8736(%rbp,%rax)
- 3051      DDFFFF
- 3052              	.L62:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3053              		.loc 2 383 0
- 3054 2154 83856CED 		addl	$1, -4756(%rbp)
- 3054      FFFF01
- 3055              	.L60:
- 3056 215b 83BD6CED 		cmpl	$15, -4756(%rbp)
- 3056      FFFF0F
- 3057 2162 769B     		jbe	.L63
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 3058              		.loc 2 391 0
- 3059 2164 F30F6F85 		movdqu	-8736(%rbp), %xmm0
- 3059      E0DDFFFF 
- 3060              	.LBE562:
- 3061              	.LBE561:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 3062              		.loc 2 667 0
- 3063 216c F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 3063      30EDFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3064              		.loc 2 668 0
- 3065 2174 F30F6F85 		movdqu	-4816(%rbp), %xmm0
- 3065      30EDFFFF 
- 3066              	.LBE560:
- 3067              	.LBE559:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 3068              		.loc 2 1684 0
- 3069 217c 660F7F85 		movdqa	%xmm0, -10064(%rbp)
- 3069      B0D8FFFF 
- 3070              	.LBB563:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 3071              		.loc 2 1685 0
- 3072 2184 660F6F85 		movdqa	-10064(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 125
-
-
- 3072      B0D8FFFF 
- 3073 218c F30F7F85 		movdqu	%xmm0, -8912(%rbp)
- 3073      30DDFFFF 
- 3074 2194 E8000000 		call	KDbgWriterGet at PLT
- 3074      00
- 3075 2199 4885C0   		testq	%rax, %rax
- 3076 219c 7479     		je	.L65
- 3077 219e BF010000 		movl	$1, %edi
- 3077      00
- 3078 21a3 E8000000 		call	KDbgCondToFlag at PLT
- 3078      00
- 3079 21a8 4889C6   		movq	%rax, %rsi
- 3080 21ab BF100000 		movl	$16, %edi
- 3080      00
- 3081 21b0 E8000000 		call	KDbgTestModConds at PLT
- 3081      00
- 3082 21b5 84C0     		testb	%al, %al
- 3083 21b7 745E     		je	.L65
- 3084 21b9 8B853CDD 		movl	-8900(%rbp), %eax
- 3084      FFFF
- 3085 21bf 89C7     		movl	%eax, %edi
- 3086 21c1 E83ADEFF 		call	bswap_32
- 3086      FF
- 3087 21c6 4189C5   		movl	%eax, %r13d
- 3088 21c9 8B8538DD 		movl	-8904(%rbp), %eax
- 3088      FFFF
- 3089 21cf 89C7     		movl	%eax, %edi
- 3090 21d1 E82ADEFF 		call	bswap_32
- 3090      FF
- 3091 21d6 4189C4   		movl	%eax, %r12d
- 3092 21d9 8B8534DD 		movl	-8908(%rbp), %eax
- 3092      FFFF
- 3093 21df 89C7     		movl	%eax, %edi
- 3094 21e1 E81ADEFF 		call	bswap_32
- 3094      FF
- 3095 21e6 89C3     		movl	%eax, %ebx
- 3096 21e8 8B8530DD 		movl	-8912(%rbp), %eax
- 3096      FFFF
- 3097 21ee 89C7     		movl	%eax, %edi
- 3098 21f0 E80BDEFF 		call	bswap_32
- 3098      FF
- 3099 21f5 4589E9   		movl	%r13d, %r9d
- 3100 21f8 4589E0   		movl	%r12d, %r8d
- 3101 21fb 89D9     		movl	%ebx, %ecx
- 3102 21fd 89C2     		movl	%eax, %edx
- 3103 21ff 488D3500 		leaq	.LC2(%rip), %rsi
- 3103      000000
- 3104 2206 488D3D00 		leaq	.LC1(%rip), %rdi
- 3104      000000
- 3105 220d B8000000 		movl	$0, %eax
- 3105      00
- 3106 2212 E8000000 		call	KDbgMsg at PLT
- 3106      00
- 3107              	.L65:
- 3108 2217 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 3108      B0D8FFFF 
- 3109 221f F30F7F85 		movdqu	%xmm0, -4736(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 126
-
-
- 3109      80EDFFFF 
- 3110 2227 660F6F85 		movdqa	-10048(%rbp), %xmm0
- 3110      C0D8FFFF 
- 3111 222f F30F7F85 		movdqu	%xmm0, -4752(%rbp)
- 3111      70EDFFFF 
- 3112              	.LBE563:
- 3113              	.LBB564:
- 3114              	.LBB565:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 3115              		.loc 2 178 0
- 3116 2237 F30F6F85 		movdqu	-4752(%rbp), %xmm0
- 3116      70EDFFFF 
- 3117 223f F30F6F8D 		movdqu	-4736(%rbp), %xmm1
- 3117      80EDFFFF 
- 3118 2247 660FEFC1 		pxor	%xmm1, %xmm0
- 3119              	.LBE565:
- 3120              	.LBE564:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 3121              		.loc 2 1686 0
- 3122 224b 660F7F85 		movdqa	%xmm0, -10064(%rbp)
- 3122      B0D8FFFF 
- 3123              	.LBB566:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 3124              		.loc 2 1687 0
- 3125 2253 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 3125      B0D8FFFF 
- 3126 225b F30F7F85 		movdqu	%xmm0, -8928(%rbp)
- 3126      20DDFFFF 
- 3127 2263 E8000000 		call	KDbgWriterGet at PLT
- 3127      00
- 3128 2268 4885C0   		testq	%rax, %rax
- 3129 226b 7479     		je	.L67
- 3130 226d BF010000 		movl	$1, %edi
- 3130      00
- 3131 2272 E8000000 		call	KDbgCondToFlag at PLT
- 3131      00
- 3132 2277 4889C6   		movq	%rax, %rsi
- 3133 227a BF100000 		movl	$16, %edi
- 3133      00
- 3134 227f E8000000 		call	KDbgTestModConds at PLT
- 3134      00
- 3135 2284 84C0     		testb	%al, %al
- 3136 2286 745E     		je	.L67
- 3137 2288 8B852CDD 		movl	-8916(%rbp), %eax
- 3137      FFFF
- 3138 228e 89C7     		movl	%eax, %edi
- 3139 2290 E86BDDFF 		call	bswap_32
- 3139      FF
- 3140 2295 4189C5   		movl	%eax, %r13d
- 3141 2298 8B8528DD 		movl	-8920(%rbp), %eax
- 3141      FFFF
- 3142 229e 89C7     		movl	%eax, %edi
- 3143 22a0 E85BDDFF 		call	bswap_32
- 3143      FF
- 3144 22a5 4189C4   		movl	%eax, %r12d
- 3145 22a8 8B8524DD 		movl	-8924(%rbp), %eax
- 3145      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 127
-
-
- 3146 22ae 89C7     		movl	%eax, %edi
- 3147 22b0 E84BDDFF 		call	bswap_32
- 3147      FF
- 3148 22b5 89C3     		movl	%eax, %ebx
- 3149 22b7 8B8520DD 		movl	-8928(%rbp), %eax
- 3149      FFFF
- 3150 22bd 89C7     		movl	%eax, %edi
- 3151 22bf E83CDDFF 		call	bswap_32
- 3151      FF
- 3152 22c4 4589E9   		movl	%r13d, %r9d
- 3153 22c7 4589E0   		movl	%r12d, %r8d
- 3154 22ca 89D9     		movl	%ebx, %ecx
- 3155 22cc 89C2     		movl	%eax, %edx
- 3156 22ce 488D3500 		leaq	.LC3(%rip), %rsi
- 3156      000000
- 3157 22d5 488D3D00 		leaq	.LC1(%rip), %rdi
- 3157      000000
- 3158 22dc B8000000 		movl	$0, %eax
- 3158      00
- 3159 22e1 E8000000 		call	KDbgMsg at PLT
- 3159      00
- 3160              	.L67:
- 3161 22e6 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 3161      B0D8FFFF 
- 3162 22ee F30F7F85 		movdqu	%xmm0, -4720(%rbp)
- 3162      90EDFFFF 
- 3163              	.LBE566:
- 3164              	.LBB567:
- 3165              	.LBB568:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 3166              		.loc 2 1357 0
- 3167 22f6 F30F6F85 		movdqu	-4720(%rbp), %xmm0
- 3167      90EDFFFF 
- 3168 22fe F30F7F85 		movdqu	%xmm0, -8720(%rbp)
- 3168      F0DDFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 3169              		.loc 2 1358 0
- 3170 2306 8B85FCDD 		movl	-8708(%rbp), %eax
- 3170      FFFF
- 3171 230c 8985F8DD 		movl	%eax, -8712(%rbp)
- 3171      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 3172              		.loc 2 1359 0
- 3173 2312 8B85FCDD 		movl	-8708(%rbp), %eax
- 3173      FFFF
- 3174 2318 8985F4DD 		movl	%eax, -8716(%rbp)
- 3174      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 3175              		.loc 2 1360 0
- 3176 231e 8B85FCDD 		movl	-8708(%rbp), %eax
- 3176      FFFF
- 3177 2324 8985F0DD 		movl	%eax, -8720(%rbp)
- 3177      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 3178              		.loc 2 1361 0
- 3179 232a F30F6F85 		movdqu	-8720(%rbp), %xmm0
- 3179      F0DDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 128
-
-
- 3180              	.LBE568:
- 3181              	.LBE567:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 3182              		.loc 2 1688 0
- 3183 2332 660F7F85 		movdqa	%xmm0, -10064(%rbp)
- 3183      B0D8FFFF 
- 3184              	.LBB569:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 3185              		.loc 2 1689 0
- 3186 233a 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 3186      B0D8FFFF 
- 3187 2342 F30F7F85 		movdqu	%xmm0, -8944(%rbp)
- 3187      10DDFFFF 
- 3188 234a E8000000 		call	KDbgWriterGet at PLT
- 3188      00
- 3189 234f 4885C0   		testq	%rax, %rax
- 3190 2352 7479     		je	.L69
- 3191 2354 BF010000 		movl	$1, %edi
- 3191      00
- 3192 2359 E8000000 		call	KDbgCondToFlag at PLT
- 3192      00
- 3193 235e 4889C6   		movq	%rax, %rsi
- 3194 2361 BF100000 		movl	$16, %edi
- 3194      00
- 3195 2366 E8000000 		call	KDbgTestModConds at PLT
- 3195      00
- 3196 236b 84C0     		testb	%al, %al
- 3197 236d 745E     		je	.L69
- 3198 236f 8B851CDD 		movl	-8932(%rbp), %eax
- 3198      FFFF
- 3199 2375 89C7     		movl	%eax, %edi
- 3200 2377 E884DCFF 		call	bswap_32
- 3200      FF
- 3201 237c 4189C5   		movl	%eax, %r13d
- 3202 237f 8B8518DD 		movl	-8936(%rbp), %eax
- 3202      FFFF
- 3203 2385 89C7     		movl	%eax, %edi
- 3204 2387 E874DCFF 		call	bswap_32
- 3204      FF
- 3205 238c 4189C4   		movl	%eax, %r12d
- 3206 238f 8B8514DD 		movl	-8940(%rbp), %eax
- 3206      FFFF
- 3207 2395 89C7     		movl	%eax, %edi
- 3208 2397 E864DCFF 		call	bswap_32
- 3208      FF
- 3209 239c 89C3     		movl	%eax, %ebx
- 3210 239e 8B8510DD 		movl	-8944(%rbp), %eax
- 3210      FFFF
- 3211 23a4 89C7     		movl	%eax, %edi
- 3212 23a6 E855DCFF 		call	bswap_32
- 3212      FF
- 3213 23ab 4589E9   		movl	%r13d, %r9d
- 3214 23ae 4589E0   		movl	%r12d, %r8d
- 3215 23b1 89D9     		movl	%ebx, %ecx
- 3216 23b3 89C2     		movl	%eax, %edx
- 3217 23b5 488D3500 		leaq	.LC4(%rip), %rsi
- 3217      000000
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 129
-
-
- 3218 23bc 488D3D00 		leaq	.LC1(%rip), %rdi
- 3218      000000
- 3219 23c3 B8000000 		movl	$0, %eax
- 3219      00
- 3220 23c8 E8000000 		call	KDbgMsg at PLT
- 3220      00
- 3221              	.L69:
- 3222              	.LBE569:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 3223              		.loc 2 1690 0
- 3224 23cd 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 3224      B0D8FFFF 
- 3225              	.LBE535:
- 3226              	.LBE534:
-1746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x04,3);
- 3227              		.loc 2 1746 0
- 3228 23d5 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 3228      20E6FFFF 
- 3229 23dd F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 3229      10E6FFFF 
- 3230 23e5 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 3230      A0EDFFFF 
- 3231              	.LBB570:
- 3232              	.LBB571:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3233              		.loc 2 1565 0
- 3234 23ed F30F6F85 		movdqu	-4704(%rbp), %xmm0
- 3234      A0EDFFFF 
- 3235 23f5 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 3235      E0D8FFFF 
- 3236 23fd 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 3236      E0D8FFFF 
- 3237 2405 F30F7F85 		movdqu	%xmm0, -4688(%rbp)
- 3237      B0EDFFFF 
- 3238              	.LBB572:
- 3239              	.LBB573:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 3240              		.loc 2 1282 0
- 3241 240d F30F6F85 		movdqu	-4688(%rbp), %xmm0
- 3241      B0EDFFFF 
- 3242 2415 F30F7F85 		movdqu	%xmm0, -8704(%rbp)
- 3242      00DEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 3243              		.loc 2 1283 0
- 3244 241d 8B8508DE 		movl	-8696(%rbp), %eax
- 3244      FFFF
- 3245 2423 89850CDE 		movl	%eax, -8692(%rbp)
- 3245      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 3246              		.loc 2 1284 0
- 3247 2429 8B8504DE 		movl	-8700(%rbp), %eax
- 3247      FFFF
- 3248 242f 898508DE 		movl	%eax, -8696(%rbp)
- 3248      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 3249              		.loc 2 1285 0
- 3250 2435 8B8500DE 		movl	-8704(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 130
-
-
- 3250      FFFF
- 3251 243b 898504DE 		movl	%eax, -8700(%rbp)
- 3251      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 3252              		.loc 2 1286 0
- 3253 2441 C78500DE 		movl	$0, -8704(%rbp)
- 3253      FFFF0000 
- 3253      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 3254              		.loc 2 1287 0
- 3255 244b F30F6F85 		movdqu	-8704(%rbp), %xmm0
- 3255      00DEFFFF 
- 3256              	.LBE573:
- 3257              	.LBE572:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3258              		.loc 2 1567 0
- 3259 2453 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 3259      E0D8FFFF 
- 3260 245b 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 3260      E0D8FFFF 
- 3261 2463 660FEF85 		pxor	-4704(%rbp), %xmm0
- 3261      A0EDFFFF 
- 3262 246b F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 3262      A0EDFFFF 
- 3263 2473 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 3263      E0D8FFFF 
- 3264 247b F30F7F85 		movdqu	%xmm0, -4672(%rbp)
- 3264      C0EDFFFF 
- 3265              	.LBB574:
- 3266              	.LBB575:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 3267              		.loc 2 1282 0
- 3268 2483 F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 3268      C0EDFFFF 
- 3269 248b F30F7F85 		movdqu	%xmm0, -8688(%rbp)
- 3269      10DEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 3270              		.loc 2 1283 0
- 3271 2493 8B8518DE 		movl	-8680(%rbp), %eax
- 3271      FFFF
- 3272 2499 89851CDE 		movl	%eax, -8676(%rbp)
- 3272      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 3273              		.loc 2 1284 0
- 3274 249f 8B8514DE 		movl	-8684(%rbp), %eax
- 3274      FFFF
- 3275 24a5 898518DE 		movl	%eax, -8680(%rbp)
- 3275      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 3276              		.loc 2 1285 0
- 3277 24ab 8B8510DE 		movl	-8688(%rbp), %eax
- 3277      FFFF
- 3278 24b1 898514DE 		movl	%eax, -8684(%rbp)
- 3278      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 3279              		.loc 2 1286 0
- 3280 24b7 C78510DE 		movl	$0, -8688(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 131
-
-
- 3280      FFFF0000 
- 3280      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 3281              		.loc 2 1287 0
- 3282 24c1 F30F6F85 		movdqu	-8688(%rbp), %xmm0
- 3282      10DEFFFF 
- 3283              	.LBE575:
- 3284              	.LBE574:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3285              		.loc 2 1568 0
- 3286 24c9 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 3286      E0D8FFFF 
- 3287 24d1 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 3287      E0D8FFFF 
- 3288 24d9 660FEF85 		pxor	-4704(%rbp), %xmm0
- 3288      A0EDFFFF 
- 3289 24e1 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 3289      A0EDFFFF 
- 3290 24e9 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 3290      E0D8FFFF 
- 3291 24f1 F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 3291      D0EDFFFF 
- 3292              	.LBB576:
- 3293              	.LBB577:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 3294              		.loc 2 1282 0
- 3295 24f9 F30F6F85 		movdqu	-4656(%rbp), %xmm0
- 3295      D0EDFFFF 
- 3296 2501 F30F7F85 		movdqu	%xmm0, -8672(%rbp)
- 3296      20DEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 3297              		.loc 2 1283 0
- 3298 2509 8B8528DE 		movl	-8664(%rbp), %eax
- 3298      FFFF
- 3299 250f 89852CDE 		movl	%eax, -8660(%rbp)
- 3299      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 3300              		.loc 2 1284 0
- 3301 2515 8B8524DE 		movl	-8668(%rbp), %eax
- 3301      FFFF
- 3302 251b 898528DE 		movl	%eax, -8664(%rbp)
- 3302      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 3303              		.loc 2 1285 0
- 3304 2521 8B8520DE 		movl	-8672(%rbp), %eax
- 3304      FFFF
- 3305 2527 898524DE 		movl	%eax, -8668(%rbp)
- 3305      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 3306              		.loc 2 1286 0
- 3307 252d C78520DE 		movl	$0, -8672(%rbp)
- 3307      FFFF0000 
- 3307      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 3308              		.loc 2 1287 0
- 3309 2537 F30F6F85 		movdqu	-8672(%rbp), %xmm0
- 3309      20DEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 132
-
-
- 3310              	.LBE577:
- 3311              	.LBE576:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3312              		.loc 2 1569 0
- 3313 253f 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 3313      E0D8FFFF 
- 3314 2547 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 3314      E0D8FFFF 
- 3315 254f 660FEF85 		pxor	-4704(%rbp), %xmm0
- 3315      A0EDFFFF 
- 3316 2557 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 3316      A0EDFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3317              		.loc 2 1571 0
- 3318 255f F30F6F85 		movdqu	-4704(%rbp), %xmm0
- 3318      A0EDFFFF 
- 3319              	.LBE571:
- 3320              	.LBE570:
-1746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x04,3);
- 3321              		.loc 2 1746 0
- 3322 2567 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 3322      10E6FFFF 
- 3323 256f F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 3323      20E6FFFF 
- 3324 2577 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 3324      10E6FFFF 
- 3325 257f 660FEFC1 		pxor	%xmm1, %xmm0
- 3326 2583 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 3326      10E6FFFF 
- 3327 258b 488B85B8 		movq	-9544(%rbp), %rax
- 3327      DAFFFF
- 3328 2592 4883C030 		addq	$48, %rax
- 3329 2596 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 3329      10E6FFFF 
- 3330 259e F30F7F00 		movdqu	%xmm0, (%rax)
- 3331 25a2 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 3331      10E6FFFF 
- 3332 25aa F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 3332      F0EDFFFF 
- 3333              	.LBB578:
- 3334              	.LBB579:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 3335              		.loc 2 1681 0
- 3336 25b2 B8080000 		movl	$8, %eax
- 3336      00
- 3337 25b7 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 3337      00000000 
- 3338 25bf F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 3338      10EEFFFF 
- 3339 25c7 89850CEE 		movl	%eax, -4596(%rbp)
- 3339      FFFF
- 3340              	.LBB580:
- 3341              	.LBB581:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 3342              		.loc 2 522 0
- 3343 25cd F30F6F85 		movdqu	-4592(%rbp), %xmm0
- 3343      10EEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 133
-
-
- 3344 25d5 F30F7F85 		movdqu	%xmm0, -8592(%rbp)
- 3344      70DEFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 3345              		.loc 2 523 0
- 3346 25dd B8030000 		movl	$3, %eax
- 3346      00
- 3347 25e2 4898     		cltq
- 3348 25e4 8B950CEE 		movl	-4596(%rbp), %edx
- 3348      FFFF
- 3349 25ea 89948570 		movl	%edx, -8592(%rbp,%rax,4)
- 3349      DEFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 3350              		.loc 2 524 0
- 3351 25f1 F30F6F85 		movdqu	-8592(%rbp), %xmm0
- 3351      70DEFFFF 
- 3352 25f9 F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 3352      10EEFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3353              		.loc 2 526 0
- 3354 2601 F30F6F85 		movdqu	-4592(%rbp), %xmm0
- 3354      10EEFFFF 
- 3355              	.LBE581:
- 3356              	.LBE580:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 3357              		.loc 2 1681 0
- 3358 2609 660F7F85 		movdqa	%xmm0, -9984(%rbp)
- 3358      00D9FFFF 
- 3359 2611 F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 3359      F0EDFFFF 
- 3360 2619 F30F7F85 		movdqu	%xmm0, -4576(%rbp)
- 3360      20EEFFFF 
- 3361 2621 F30F6F85 		movdqu	-4576(%rbp), %xmm0
- 3361      20EEFFFF 
- 3362 2629 F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 3362      40EEFFFF 
- 3363 2631 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 3363      000000
- 3364 2638 48898538 		movq	%rax, -4552(%rbp)
- 3364      EEFFFF
- 3365              	.LBB582:
- 3366              	.LBB583:
- 3367              	.LBB584:
- 3368              	.LBB585:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 3369              		.loc 2 851 0
- 3370 263f 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 3370      00000000 
- 3371 2647 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 3371      60EEFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 3372              		.loc 2 854 0
- 3373 264f 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3373      00000000 
- 3374 2657 F30F6F8D 		movdqu	-4544(%rbp), %xmm1
- 3374      40EEFFFF 
- 3375 265f F30F7F8D 		movdqu	%xmm1, -4432(%rbp)
- 3375      B0EEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 134
-
-
- 3376 2667 F30F7F85 		movdqu	%xmm0, -4448(%rbp)
- 3376      A0EEFFFF 
- 3377              	.LBB586:
- 3378              	.LBB587:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3379              		.loc 2 206 0
- 3380 266f F30F6F85 		movdqu	-4448(%rbp), %xmm0
- 3380      A0EEFFFF 
- 3381 2677 F30F6F8D 		movdqu	-4432(%rbp), %xmm1
- 3381      B0EEFFFF 
- 3382 267f 660FDBC1 		pand	%xmm1, %xmm0
- 3383              	.LBE587:
- 3384              	.LBE586:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 3385              		.loc 2 854 0
- 3386 2683 F30F7F85 		movdqu	%xmm0, -4464(%rbp)
- 3386      90EEFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 3387              		.loc 2 862 0
- 3388 268b 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 3388      00000000 
- 3389 2693 F30F6F8D 		movdqu	-4544(%rbp), %xmm1
- 3389      40EEFFFF 
- 3390 269b F30F7F8D 		movdqu	%xmm1, -4400(%rbp)
- 3390      D0EEFFFF 
- 3391 26a3 F30F7F85 		movdqu	%xmm0, -4416(%rbp)
- 3391      C0EEFFFF 
- 3392              	.LBB588:
- 3393              		.loc 2 2642 0
- 3394 26ab 0FB685D0 		movzbl	-4400(%rbp), %eax
- 3394      EEFFFF
- 3395 26b2 0FB695C0 		movzbl	-4416(%rbp), %edx
- 3395      EEFFFF
- 3396 26b9 0FB6C0   		movzbl	%al, %eax
- 3397 26bc 6689858E 		movw	%ax, -10354(%rbp)
- 3397      D7FFFF
- 3398 26c3 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3398      D7FFFF
- 3399 26ca F6F2     		divb	%dl
- 3400 26cc 4189C7   		movl	%eax, %r15d
- 3401 26cf 0FB685D1 		movzbl	-4399(%rbp), %eax
- 3401      EEFFFF
- 3402 26d6 0FB695C1 		movzbl	-4415(%rbp), %edx
- 3402      EEFFFF
- 3403 26dd 0FB6C0   		movzbl	%al, %eax
- 3404 26e0 6689858E 		movw	%ax, -10354(%rbp)
- 3404      D7FFFF
- 3405 26e7 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3405      D7FFFF
- 3406 26ee F6F2     		divb	%dl
- 3407 26f0 88851FD9 		movb	%al, -9953(%rbp)
- 3407      FFFF
- 3408 26f6 0FB685D2 		movzbl	-4398(%rbp), %eax
- 3408      EEFFFF
- 3409 26fd 0FB695C2 		movzbl	-4414(%rbp), %edx
- 3409      EEFFFF
- 3410 2704 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 135
-
-
- 3411 2707 6689858E 		movw	%ax, -10354(%rbp)
- 3411      D7FFFF
- 3412 270e 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3412      D7FFFF
- 3413 2715 F6F2     		divb	%dl
- 3414 2717 88851ED9 		movb	%al, -9954(%rbp)
- 3414      FFFF
- 3415 271d 0FB685D3 		movzbl	-4397(%rbp), %eax
- 3415      EEFFFF
- 3416 2724 0FB695C3 		movzbl	-4413(%rbp), %edx
- 3416      EEFFFF
- 3417 272b 0FB6C0   		movzbl	%al, %eax
- 3418 272e 6689858E 		movw	%ax, -10354(%rbp)
- 3418      D7FFFF
- 3419 2735 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3419      D7FFFF
- 3420 273c F6F2     		divb	%dl
- 3421 273e 88851DD9 		movb	%al, -9955(%rbp)
- 3421      FFFF
- 3422 2744 0FB685D4 		movzbl	-4396(%rbp), %eax
- 3422      EEFFFF
- 3423 274b 0FB695C4 		movzbl	-4412(%rbp), %edx
- 3423      EEFFFF
- 3424 2752 0FB6C0   		movzbl	%al, %eax
- 3425 2755 6689858E 		movw	%ax, -10354(%rbp)
- 3425      D7FFFF
- 3426 275c 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3426      D7FFFF
- 3427 2763 F6F2     		divb	%dl
- 3428 2765 88851CD9 		movb	%al, -9956(%rbp)
- 3428      FFFF
- 3429 276b 0FB685D5 		movzbl	-4395(%rbp), %eax
- 3429      EEFFFF
- 3430 2772 0FB695C5 		movzbl	-4411(%rbp), %edx
- 3430      EEFFFF
- 3431 2779 0FB6C0   		movzbl	%al, %eax
- 3432 277c 6689858E 		movw	%ax, -10354(%rbp)
- 3432      D7FFFF
- 3433 2783 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3433      D7FFFF
- 3434 278a F6F2     		divb	%dl
- 3435 278c 4189C1   		movl	%eax, %r9d
- 3436 278f 0FB685D6 		movzbl	-4394(%rbp), %eax
- 3436      EEFFFF
- 3437 2796 0FB695C6 		movzbl	-4410(%rbp), %edx
- 3437      EEFFFF
- 3438 279d 0FB6C0   		movzbl	%al, %eax
- 3439 27a0 6689858E 		movw	%ax, -10354(%rbp)
- 3439      D7FFFF
- 3440 27a7 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3440      D7FFFF
- 3441 27ae F6F2     		divb	%dl
- 3442 27b0 89C7     		movl	%eax, %edi
- 3443 27b2 0FB685D7 		movzbl	-4393(%rbp), %eax
- 3443      EEFFFF
- 3444 27b9 0FB695C7 		movzbl	-4409(%rbp), %edx
- 3444      EEFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 136
-
-
- 3445 27c0 0FB6C0   		movzbl	%al, %eax
- 3446 27c3 6689858E 		movw	%ax, -10354(%rbp)
- 3446      D7FFFF
- 3447 27ca 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3447      D7FFFF
- 3448 27d1 F6F2     		divb	%dl
- 3449 27d3 89C3     		movl	%eax, %ebx
- 3450 27d5 0FB685D8 		movzbl	-4392(%rbp), %eax
- 3450      EEFFFF
- 3451 27dc 0FB695C8 		movzbl	-4408(%rbp), %edx
- 3451      EEFFFF
- 3452 27e3 0FB6C0   		movzbl	%al, %eax
- 3453 27e6 6689858E 		movw	%ax, -10354(%rbp)
- 3453      D7FFFF
- 3454 27ed 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3454      D7FFFF
- 3455 27f4 F6F2     		divb	%dl
- 3456 27f6 4189C2   		movl	%eax, %r10d
- 3457 27f9 0FB685D9 		movzbl	-4391(%rbp), %eax
- 3457      EEFFFF
- 3458 2800 0FB695C9 		movzbl	-4407(%rbp), %edx
- 3458      EEFFFF
- 3459 2807 0FB6C0   		movzbl	%al, %eax
- 3460 280a 6689858E 		movw	%ax, -10354(%rbp)
- 3460      D7FFFF
- 3461 2811 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3461      D7FFFF
- 3462 2818 F6F2     		divb	%dl
- 3463 281a 4189C3   		movl	%eax, %r11d
- 3464 281d 0FB685DA 		movzbl	-4390(%rbp), %eax
- 3464      EEFFFF
- 3465 2824 0FB695CA 		movzbl	-4406(%rbp), %edx
- 3465      EEFFFF
- 3466 282b 0FB6C0   		movzbl	%al, %eax
- 3467 282e 6689858E 		movw	%ax, -10354(%rbp)
- 3467      D7FFFF
- 3468 2835 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3468      D7FFFF
- 3469 283c F6F2     		divb	%dl
- 3470 283e 4189C4   		movl	%eax, %r12d
- 3471 2841 0FB685DB 		movzbl	-4389(%rbp), %eax
- 3471      EEFFFF
- 3472 2848 0FB695CB 		movzbl	-4405(%rbp), %edx
- 3472      EEFFFF
- 3473 284f 0FB6C0   		movzbl	%al, %eax
- 3474 2852 6689858E 		movw	%ax, -10354(%rbp)
- 3474      D7FFFF
- 3475 2859 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3475      D7FFFF
- 3476 2860 F6F2     		divb	%dl
- 3477 2862 4189C5   		movl	%eax, %r13d
- 3478 2865 0FB685DC 		movzbl	-4388(%rbp), %eax
- 3478      EEFFFF
- 3479 286c 0FB695CC 		movzbl	-4404(%rbp), %edx
- 3479      EEFFFF
- 3480 2873 0FB6C0   		movzbl	%al, %eax
- 3481 2876 6689858E 		movw	%ax, -10354(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 137
-
-
- 3481      D7FFFF
- 3482 287d 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3482      D7FFFF
- 3483 2884 F6F2     		divb	%dl
- 3484 2886 4189C6   		movl	%eax, %r14d
- 3485 2889 0FB685DD 		movzbl	-4387(%rbp), %eax
- 3485      EEFFFF
- 3486 2890 0FB695CD 		movzbl	-4403(%rbp), %edx
- 3486      EEFFFF
- 3487 2897 0FB6C0   		movzbl	%al, %eax
- 3488 289a 6689858E 		movw	%ax, -10354(%rbp)
- 3488      D7FFFF
- 3489 28a1 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3489      D7FFFF
- 3490 28a8 F6F2     		divb	%dl
- 3491 28aa 4189C0   		movl	%eax, %r8d
- 3492 28ad 0FB685DE 		movzbl	-4386(%rbp), %eax
- 3492      EEFFFF
- 3493 28b4 0FB695CE 		movzbl	-4402(%rbp), %edx
- 3493      EEFFFF
- 3494 28bb 0FB6C0   		movzbl	%al, %eax
- 3495 28be 6689858E 		movw	%ax, -10354(%rbp)
- 3495      D7FFFF
- 3496 28c5 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3496      D7FFFF
- 3497 28cc F6F2     		divb	%dl
- 3498 28ce 89C6     		movl	%eax, %esi
- 3499 28d0 0FB685DF 		movzbl	-4385(%rbp), %eax
- 3499      EEFFFF
- 3500 28d7 0FB695CF 		movzbl	-4401(%rbp), %edx
- 3500      EEFFFF
- 3501 28de 0FB6C0   		movzbl	%al, %eax
- 3502 28e1 6689858E 		movw	%ax, -10354(%rbp)
- 3502      D7FFFF
- 3503 28e8 0FB7858E 		movzwl	-10354(%rbp), %eax
- 3503      D7FFFF
- 3504 28ef F6F2     		divb	%dl
- 3505 28f1 89C1     		movl	%eax, %ecx
- 3506              	.LBB589:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 3507              		.loc 2 346 0
- 3508 28f3 0FB6D3   		movzbl	%bl, %edx
- 3509 28f6 400FB6C7 		movzbl	%dil, %eax
- 3510 28fa 48C1E208 		salq	$8, %rdx
- 3511 28fe 4809C2   		orq	%rax, %rdx
- 3512 2901 410FB6C1 		movzbl	%r9b, %eax
- 3513 2905 48C1E208 		salq	$8, %rdx
- 3514 2909 4809C2   		orq	%rax, %rdx
- 3515 290c 0FB6851C 		movzbl	-9956(%rbp), %eax
- 3515      D9FFFF
- 3516 2913 48C1E208 		salq	$8, %rdx
- 3517 2917 4809C2   		orq	%rax, %rdx
- 3518 291a 0FB6851D 		movzbl	-9955(%rbp), %eax
- 3518      D9FFFF
- 3519 2921 48C1E208 		salq	$8, %rdx
- 3520 2925 4809C2   		orq	%rax, %rdx
- 3521 2928 0FB6851E 		movzbl	-9954(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 138
-
-
- 3521      D9FFFF
- 3522 292f 48C1E208 		salq	$8, %rdx
- 3523 2933 4809C2   		orq	%rax, %rdx
- 3524 2936 0FB6851F 		movzbl	-9953(%rbp), %eax
- 3524      D9FFFF
- 3525 293d 48C1E208 		salq	$8, %rdx
- 3526 2941 4809C2   		orq	%rax, %rdx
- 3527 2944 410FB6C7 		movzbl	%r15b, %eax
- 3528 2948 48C1E208 		salq	$8, %rdx
- 3529 294c 4809C2   		orq	%rax, %rdx
- 3530 294f 0FB6C1   		movzbl	%cl, %eax
- 3531 2952 400FB6CE 		movzbl	%sil, %ecx
- 3532 2956 48C1E008 		salq	$8, %rax
- 3533 295a 4809C8   		orq	%rcx, %rax
- 3534 295d 410FB6C8 		movzbl	%r8b, %ecx
- 3535 2961 48C1E008 		salq	$8, %rax
- 3536 2965 4809C8   		orq	%rcx, %rax
- 3537 2968 410FB6CE 		movzbl	%r14b, %ecx
- 3538 296c 48C1E008 		salq	$8, %rax
- 3539 2970 4809C8   		orq	%rcx, %rax
- 3540 2973 410FB6CD 		movzbl	%r13b, %ecx
- 3541 2977 48C1E008 		salq	$8, %rax
- 3542 297b 4809C8   		orq	%rcx, %rax
- 3543 297e 410FB6CC 		movzbl	%r12b, %ecx
- 3544 2982 48C1E008 		salq	$8, %rax
- 3545 2986 4809C8   		orq	%rcx, %rax
- 3546 2989 410FB6CB 		movzbl	%r11b, %ecx
- 3547 298d 48C1E008 		salq	$8, %rax
- 3548 2991 4809C8   		orq	%rcx, %rax
- 3549 2994 410FB6CA 		movzbl	%r10b, %ecx
- 3550 2998 48C1E008 		salq	$8, %rax
- 3551 299c 4809C8   		orq	%rcx, %rax
- 3552 299f 488995F0 		movq	%rdx, -10256(%rbp)
- 3552      D7FFFF
- 3553 29a6 488985F8 		movq	%rax, -10248(%rbp)
- 3553      D7FFFF
- 3554 29ad 660F6F85 		movdqa	-10256(%rbp), %xmm0
- 3554      F0D7FFFF 
- 3555              	.LBE589:
- 3556              	.LBE588:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 3557              		.loc 2 862 0
- 3558 29b5 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 3558      80EEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 3559              		.loc 2 866 0
- 3560 29bd C7855CEE 		movl	$0, -4516(%rbp)
- 3560      FFFF0000 
- 3560      0000
- 3561 29c7 E9860200 		jmp	.L70
- 3561      00
- 3562              	.L79:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 3563              		.loc 2 868 0
- 3564 29cc 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 3564      00000000 
- 3565 29d4 F30F7F85 		movdqu	%xmm0, -4368(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 139
-
-
- 3565      F0EEFFFF 
- 3566 29dc F30F6F85 		movdqu	-4480(%rbp), %xmm0
- 3566      80EEFFFF 
- 3567 29e4 F30F7F85 		movdqu	%xmm0, -4384(%rbp)
- 3567      E0EEFFFF 
- 3568              	.LBB590:
- 3569              	.LBB591:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 3570              		.loc 2 380 0
- 3571 29ec F30F6F85 		movdqu	-4368(%rbp), %xmm0
- 3571      F0EEFFFF 
- 3572 29f4 F30F7F85 		movdqu	%xmm0, -8560(%rbp)
- 3572      90DEFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 3573              		.loc 2 381 0
- 3574 29fc F30F6F85 		movdqu	-4384(%rbp), %xmm0
- 3574      E0EEFFFF 
- 3575 2a04 F30F7F85 		movdqu	%xmm0, -8576(%rbp)
- 3575      80DEFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3576              		.loc 2 383 0
- 3577 2a0c C7850CEF 		movl	$0, -4340(%rbp)
- 3577      FFFF0000 
- 3577      0000
- 3578 2a16 EB5C     		jmp	.L71
- 3579              	.L74:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 3580              		.loc 2 385 0
- 3581 2a18 8B850CEF 		movl	-4340(%rbp), %eax
- 3581      FFFF
- 3582 2a1e 89C0     		mov	%eax, %eax
- 3583 2a20 0FB68405 		movzbl	-8576(%rbp,%rax), %eax
- 3583      80DEFFFF 
- 3584 2a28 84C0     		testb	%al, %al
- 3585 2a2a 7912     		jns	.L72
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 3586              		.loc 2 386 0
- 3587 2a2c 8B850CEF 		movl	-4340(%rbp), %eax
- 3587      FFFF
- 3588 2a32 89C0     		mov	%eax, %eax
- 3589 2a34 C68405A0 		movb	$0, -8544(%rbp,%rax)
- 3589      DEFFFF00 
- 3590 2a3c EB2F     		jmp	.L73
- 3591              	.L72:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 3592              		.loc 2 388 0
- 3593 2a3e 8B8D0CEF 		movl	-4340(%rbp), %ecx
- 3593      FFFF
- 3594 2a44 8B850CEF 		movl	-4340(%rbp), %eax
- 3594      FFFF
- 3595 2a4a 89C0     		mov	%eax, %eax
- 3596 2a4c 0FB68405 		movzbl	-8576(%rbp,%rax), %eax
- 3596      80DEFFFF 
- 3597 2a54 0FB6C0   		movzbl	%al, %eax
- 3598 2a57 83E00F   		andl	$15, %eax
- 3599 2a5a 4898     		cltq
- 3600 2a5c 0FB69405 		movzbl	-8560(%rbp,%rax), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 140
-
-
- 3600      90DEFFFF 
- 3601 2a64 89C8     		mov	%ecx, %eax
- 3602 2a66 889405A0 		movb	%dl, -8544(%rbp,%rax)
- 3602      DEFFFF
- 3603              	.L73:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3604              		.loc 2 383 0
- 3605 2a6d 83850CEF 		addl	$1, -4340(%rbp)
- 3605      FFFF01
- 3606              	.L71:
- 3607 2a74 83BD0CEF 		cmpl	$15, -4340(%rbp)
- 3607      FFFF0F
- 3608 2a7b 769B     		jbe	.L74
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 3609              		.loc 2 391 0
- 3610 2a7d F30F6F85 		movdqu	-8544(%rbp), %xmm0
- 3610      A0DEFFFF 
- 3611              	.LBE591:
- 3612              	.LBE590:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 3613              		.loc 2 868 0
- 3614 2a85 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 3614      70EEFFFF 
- 3615 2a8d F30F6F85 		movdqu	-4464(%rbp), %xmm0
- 3615      90EEFFFF 
- 3616 2a95 F30F7F85 		movdqu	%xmm0, -4320(%rbp)
- 3616      20EFFFFF 
- 3617 2a9d F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 3617      70EEFFFF 
- 3618 2aa5 F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 3618      10EFFFFF 
- 3619              	.LBB592:
- 3620              	.LBB593:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 3621              		.loc 2 234 0
- 3622 2aad F30F6F85 		movdqu	-4336(%rbp), %xmm0
- 3622      10EFFFFF 
- 3623 2ab5 F30F6F8D 		movdqu	-4320(%rbp), %xmm1
- 3623      20EFFFFF 
- 3624 2abd 660FEBC1 		por	%xmm1, %xmm0
- 3625              	.LBE593:
- 3626              	.LBE592:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 3627              		.loc 2 870 0
- 3628 2ac1 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 3628      70EEFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 3629              		.loc 2 872 0
- 3630 2ac9 8B855CEE 		mov	-4516(%rbp), %eax
- 3630      FFFF
- 3631 2acf 48C1E004 		salq	$4, %rax
- 3632 2ad3 48038538 		addq	-4552(%rbp), %rax
- 3632      EEFFFF
- 3633 2ada 660F6F00 		movdqa	(%rax), %xmm0
- 3634 2ade F30F7F85 		movdqu	%xmm0, -4288(%rbp)
- 3634      40EFFFFF 
- 3635 2ae6 F30F6F85 		movdqu	-4496(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 141
-
-
- 3635      70EEFFFF 
- 3636 2aee F30F7F85 		movdqu	%xmm0, -4304(%rbp)
- 3636      30EFFFFF 
- 3637              	.LBB594:
- 3638              	.LBB595:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 3639              		.loc 2 380 0
- 3640 2af6 F30F6F85 		movdqu	-4288(%rbp), %xmm0
- 3640      40EFFFFF 
- 3641 2afe F30F7F85 		movdqu	%xmm0, -8512(%rbp)
- 3641      C0DEFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 3642              		.loc 2 381 0
- 3643 2b06 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 3643      30EFFFFF 
- 3644 2b0e F30F7F85 		movdqu	%xmm0, -8528(%rbp)
- 3644      B0DEFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3645              		.loc 2 383 0
- 3646 2b16 C7855CEF 		movl	$0, -4260(%rbp)
- 3646      FFFF0000 
- 3646      0000
- 3647 2b20 EB5C     		jmp	.L75
- 3648              	.L78:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 3649              		.loc 2 385 0
- 3650 2b22 8B855CEF 		movl	-4260(%rbp), %eax
- 3650      FFFF
- 3651 2b28 89C0     		mov	%eax, %eax
- 3652 2b2a 0FB68405 		movzbl	-8528(%rbp,%rax), %eax
- 3652      B0DEFFFF 
- 3653 2b32 84C0     		testb	%al, %al
- 3654 2b34 7912     		jns	.L76
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 3655              		.loc 2 386 0
- 3656 2b36 8B855CEF 		movl	-4260(%rbp), %eax
- 3656      FFFF
- 3657 2b3c 89C0     		mov	%eax, %eax
- 3658 2b3e C68405D0 		movb	$0, -8496(%rbp,%rax)
- 3658      DEFFFF00 
- 3659 2b46 EB2F     		jmp	.L77
- 3660              	.L76:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 3661              		.loc 2 388 0
- 3662 2b48 8B8D5CEF 		movl	-4260(%rbp), %ecx
- 3662      FFFF
- 3663 2b4e 8B855CEF 		movl	-4260(%rbp), %eax
- 3663      FFFF
- 3664 2b54 89C0     		mov	%eax, %eax
- 3665 2b56 0FB68405 		movzbl	-8528(%rbp,%rax), %eax
- 3665      B0DEFFFF 
- 3666 2b5e 0FB6C0   		movzbl	%al, %eax
- 3667 2b61 83E00F   		andl	$15, %eax
- 3668 2b64 4898     		cltq
- 3669 2b66 0FB69405 		movzbl	-8512(%rbp,%rax), %edx
- 3669      C0DEFFFF 
- 3670 2b6e 89C8     		mov	%ecx, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 142
-
-
- 3671 2b70 889405D0 		movb	%dl, -8496(%rbp,%rax)
- 3671      DEFFFF
- 3672              	.L77:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3673              		.loc 2 383 0
- 3674 2b77 83855CEF 		addl	$1, -4260(%rbp)
- 3674      FFFF01
- 3675              	.L75:
- 3676 2b7e 83BD5CEF 		cmpl	$15, -4260(%rbp)
- 3676      FFFF0F
- 3677 2b85 769B     		jbe	.L78
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 3678              		.loc 2 391 0
- 3679 2b87 F30F6F85 		movdqu	-8496(%rbp), %xmm0
- 3679      D0DEFFFF 
- 3680              	.LBE595:
- 3681              	.LBE594:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 3682              		.loc 2 872 0
- 3683 2b8f F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 3683      70EEFFFF 
- 3684 2b97 F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 3684      60EEFFFF 
- 3685 2b9f F30F7F85 		movdqu	%xmm0, -4240(%rbp)
- 3685      70EFFFFF 
- 3686 2ba7 F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 3686      70EEFFFF 
- 3687 2baf F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 3687      60EFFFFF 
- 3688              	.LBB596:
- 3689              	.LBB597:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 3690              		.loc 2 234 0
- 3691 2bb7 F30F6F85 		movdqu	-4256(%rbp), %xmm0
- 3691      60EFFFFF 
- 3692 2bbf F30F6F8D 		movdqu	-4240(%rbp), %xmm1
- 3692      70EFFFFF 
- 3693 2bc7 660FEBC1 		por	%xmm1, %xmm0
- 3694              	.LBE597:
- 3695              	.LBE596:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 3696              		.loc 2 874 0
- 3697 2bcb F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 3697      60EEFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 3698              		.loc 2 876 0
- 3699 2bd3 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 3699      00000000 
- 3700 2bdb F30F6F8D 		movdqu	-4480(%rbp), %xmm1
- 3700      80EEFFFF 
- 3701 2be3 F30F7F8D 		movdqu	%xmm1, -4208(%rbp)
- 3701      90EFFFFF 
- 3702 2beb F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 3702      80EFFFFF 
- 3703              	.LBB598:
- 3704              	.LBB599:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 143
-
-
- 3705              		.loc 2 290 0
- 3706 2bf3 F30F6F8D 		movdqu	-4224(%rbp), %xmm1
- 3706      80EFFFFF 
- 3707 2bfb F30F6F85 		movdqu	-4208(%rbp), %xmm0
- 3707      90EFFFFF 
- 3708 2c03 660FF8C1 		psubb	%xmm1, %xmm0
- 3709              	.LBE599:
- 3710              	.LBE598:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 3711              		.loc 2 876 0
- 3712 2c07 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 3712      80EEFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3713              		.loc 2 878 0
- 3714 2c0f 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3714      00000000 
- 3715 2c17 F30F6F8D 		movdqu	-4480(%rbp), %xmm1
- 3715      80EEFFFF 
- 3716 2c1f F30F7F8D 		movdqu	%xmm1, -4176(%rbp)
- 3716      B0EFFFFF 
- 3717 2c27 F30F7F85 		movdqu	%xmm0, -4192(%rbp)
- 3717      A0EFFFFF 
- 3718              	.LBB600:
- 3719              	.LBB601:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3720              		.loc 2 206 0
- 3721 2c2f F30F6F85 		movdqu	-4192(%rbp), %xmm0
- 3721      A0EFFFFF 
- 3722 2c37 F30F6F8D 		movdqu	-4176(%rbp), %xmm1
- 3722      B0EFFFFF 
- 3723 2c3f 660FDBC1 		pand	%xmm1, %xmm0
- 3724              	.LBE601:
- 3725              	.LBE600:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3726              		.loc 2 878 0
- 3727 2c43 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 3727      80EEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 3728              		.loc 2 866 0
- 3729 2c4b 83855CEE 		addl	$1, -4516(%rbp)
- 3729      FFFF01
- 3730              	.L70:
- 3731 2c52 83BD5CEE 		cmpl	$15, -4516(%rbp)
- 3731      FFFF0F
- 3732 2c59 0F866DFD 		jbe	.L79
- 3732      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 3733              		.loc 2 882 0
- 3734 2c5f F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 3734      60EEFFFF 
- 3735              	.LBE585:
- 3736              	.LBE584:
- 3737              	.LBE583:
- 3738              	.LBE582:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 3739              		.loc 2 1682 0
- 3740 2c67 660F7F85 		movdqa	%xmm0, -10000(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 144
-
-
- 3740      F0D8FFFF 
- 3741              	.LBB602:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 3742              		.loc 2 1683 0
- 3743 2c6f 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3743      F0D8FFFF 
- 3744 2c77 F30F7F85 		movdqu	%xmm0, -8608(%rbp)
- 3744      60DEFFFF 
- 3745 2c7f E8000000 		call	KDbgWriterGet at PLT
- 3745      00
- 3746 2c84 4885C0   		testq	%rax, %rax
- 3747 2c87 7479     		je	.L81
- 3748 2c89 BF010000 		movl	$1, %edi
- 3748      00
- 3749 2c8e E8000000 		call	KDbgCondToFlag at PLT
- 3749      00
- 3750 2c93 4889C6   		movq	%rax, %rsi
- 3751 2c96 BF100000 		movl	$16, %edi
- 3751      00
- 3752 2c9b E8000000 		call	KDbgTestModConds at PLT
- 3752      00
- 3753 2ca0 84C0     		testb	%al, %al
- 3754 2ca2 745E     		je	.L81
- 3755 2ca4 8B856CDE 		movl	-8596(%rbp), %eax
- 3755      FFFF
- 3756 2caa 89C7     		movl	%eax, %edi
- 3757 2cac E84FD3FF 		call	bswap_32
- 3757      FF
- 3758 2cb1 4189C5   		movl	%eax, %r13d
- 3759 2cb4 8B8568DE 		movl	-8600(%rbp), %eax
- 3759      FFFF
- 3760 2cba 89C7     		movl	%eax, %edi
- 3761 2cbc E83FD3FF 		call	bswap_32
- 3761      FF
- 3762 2cc1 4189C4   		movl	%eax, %r12d
- 3763 2cc4 8B8564DE 		movl	-8604(%rbp), %eax
- 3763      FFFF
- 3764 2cca 89C7     		movl	%eax, %edi
- 3765 2ccc E82FD3FF 		call	bswap_32
- 3765      FF
- 3766 2cd1 89C3     		movl	%eax, %ebx
- 3767 2cd3 8B8560DE 		movl	-8608(%rbp), %eax
- 3767      FFFF
- 3768 2cd9 89C7     		movl	%eax, %edi
- 3769 2cdb E820D3FF 		call	bswap_32
- 3769      FF
- 3770 2ce0 4589E9   		movl	%r13d, %r9d
- 3771 2ce3 4589E0   		movl	%r12d, %r8d
- 3772 2ce6 89D9     		movl	%ebx, %ecx
- 3773 2ce8 89C2     		movl	%eax, %edx
- 3774 2cea 488D3500 		leaq	.LC0(%rip), %rsi
- 3774      000000
- 3775 2cf1 488D3D00 		leaq	.LC1(%rip), %rdi
- 3775      000000
- 3776 2cf8 B8000000 		movl	$0, %eax
- 3776      00
- 3777 2cfd E8000000 		call	KDbgMsg at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 145
-
-
- 3777      00
- 3778              	.L81:
- 3779 2d02 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3779      F0D8FFFF 
- 3780 2d0a F30F7F85 		movdqu	%xmm0, -4160(%rbp)
- 3780      C0EFFFFF 
- 3781              	.LBE602:
- 3782              	.LBB603:
- 3783              	.LBB604:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 3784              		.loc 2 667 0
- 3785 2d12 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 3785      00000000 
- 3786 2d1a F30F6F8D 		movdqu	-4160(%rbp), %xmm1
- 3786      C0EFFFFF 
- 3787 2d22 F30F7F8D 		movdqu	%xmm1, -4128(%rbp)
- 3787      E0EFFFFF 
- 3788 2d2a F30F7F85 		movdqu	%xmm0, -4144(%rbp)
- 3788      D0EFFFFF 
- 3789              	.LBB605:
- 3790              	.LBB606:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 3791              		.loc 2 380 0
- 3792 2d32 F30F6F85 		movdqu	-4128(%rbp), %xmm0
- 3792      E0EFFFFF 
- 3793 2d3a F30F7F85 		movdqu	%xmm0, -8464(%rbp)
- 3793      F0DEFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 3794              		.loc 2 381 0
- 3795 2d42 F30F6F85 		movdqu	-4144(%rbp), %xmm0
- 3795      D0EFFFFF 
- 3796 2d4a F30F7F85 		movdqu	%xmm0, -8480(%rbp)
- 3796      E0DEFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3797              		.loc 2 383 0
- 3798 2d52 C785FCEF 		movl	$0, -4100(%rbp)
- 3798      FFFF0000 
- 3798      0000
- 3799 2d5c EB5C     		jmp	.L82
- 3800              	.L85:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 3801              		.loc 2 385 0
- 3802 2d5e 8B85FCEF 		movl	-4100(%rbp), %eax
- 3802      FFFF
- 3803 2d64 89C0     		mov	%eax, %eax
- 3804 2d66 0FB68405 		movzbl	-8480(%rbp,%rax), %eax
- 3804      E0DEFFFF 
- 3805 2d6e 84C0     		testb	%al, %al
- 3806 2d70 7912     		jns	.L83
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 3807              		.loc 2 386 0
- 3808 2d72 8B85FCEF 		movl	-4100(%rbp), %eax
- 3808      FFFF
- 3809 2d78 89C0     		mov	%eax, %eax
- 3810 2d7a C6840500 		movb	$0, -8448(%rbp,%rax)
- 3810      DFFFFF00 
- 3811 2d82 EB2F     		jmp	.L84
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 146
-
-
- 3812              	.L83:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 3813              		.loc 2 388 0
- 3814 2d84 8B8DFCEF 		movl	-4100(%rbp), %ecx
- 3814      FFFF
- 3815 2d8a 8B85FCEF 		movl	-4100(%rbp), %eax
- 3815      FFFF
- 3816 2d90 89C0     		mov	%eax, %eax
- 3817 2d92 0FB68405 		movzbl	-8480(%rbp,%rax), %eax
- 3817      E0DEFFFF 
- 3818 2d9a 0FB6C0   		movzbl	%al, %eax
- 3819 2d9d 83E00F   		andl	$15, %eax
- 3820 2da0 4898     		cltq
- 3821 2da2 0FB69405 		movzbl	-8464(%rbp,%rax), %edx
- 3821      F0DEFFFF 
- 3822 2daa 89C8     		mov	%ecx, %eax
- 3823 2dac 88940500 		movb	%dl, -8448(%rbp,%rax)
- 3823      DFFFFF
- 3824              	.L84:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 3825              		.loc 2 383 0
- 3826 2db3 8385FCEF 		addl	$1, -4100(%rbp)
- 3826      FFFF01
- 3827              	.L82:
- 3828 2dba 83BDFCEF 		cmpl	$15, -4100(%rbp)
- 3828      FFFF0F
- 3829 2dc1 769B     		jbe	.L85
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 3830              		.loc 2 391 0
- 3831 2dc3 F30F6F85 		movdqu	-8448(%rbp), %xmm0
- 3831      00DFFFFF 
- 3832              	.LBE606:
- 3833              	.LBE605:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 3834              		.loc 2 667 0
- 3835 2dcb F30F7F85 		movdqu	%xmm0, -4160(%rbp)
- 3835      C0EFFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3836              		.loc 2 668 0
- 3837 2dd3 F30F6F85 		movdqu	-4160(%rbp), %xmm0
- 3837      C0EFFFFF 
- 3838              	.LBE604:
- 3839              	.LBE603:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 3840              		.loc 2 1684 0
- 3841 2ddb 660F7F85 		movdqa	%xmm0, -10000(%rbp)
- 3841      F0D8FFFF 
- 3842              	.LBB607:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 3843              		.loc 2 1685 0
- 3844 2de3 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3844      F0D8FFFF 
- 3845 2deb F30F7F85 		movdqu	%xmm0, -8624(%rbp)
- 3845      50DEFFFF 
- 3846 2df3 E8000000 		call	KDbgWriterGet at PLT
- 3846      00
- 3847 2df8 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 147
-
-
- 3848 2dfb 7479     		je	.L87
- 3849 2dfd BF010000 		movl	$1, %edi
- 3849      00
- 3850 2e02 E8000000 		call	KDbgCondToFlag at PLT
- 3850      00
- 3851 2e07 4889C6   		movq	%rax, %rsi
- 3852 2e0a BF100000 		movl	$16, %edi
- 3852      00
- 3853 2e0f E8000000 		call	KDbgTestModConds at PLT
- 3853      00
- 3854 2e14 84C0     		testb	%al, %al
- 3855 2e16 745E     		je	.L87
- 3856 2e18 8B855CDE 		movl	-8612(%rbp), %eax
- 3856      FFFF
- 3857 2e1e 89C7     		movl	%eax, %edi
- 3858 2e20 E8DBD1FF 		call	bswap_32
- 3858      FF
- 3859 2e25 4189C5   		movl	%eax, %r13d
- 3860 2e28 8B8558DE 		movl	-8616(%rbp), %eax
- 3860      FFFF
- 3861 2e2e 89C7     		movl	%eax, %edi
- 3862 2e30 E8CBD1FF 		call	bswap_32
- 3862      FF
- 3863 2e35 4189C4   		movl	%eax, %r12d
- 3864 2e38 8B8554DE 		movl	-8620(%rbp), %eax
- 3864      FFFF
- 3865 2e3e 89C7     		movl	%eax, %edi
- 3866 2e40 E8BBD1FF 		call	bswap_32
- 3866      FF
- 3867 2e45 89C3     		movl	%eax, %ebx
- 3868 2e47 8B8550DE 		movl	-8624(%rbp), %eax
- 3868      FFFF
- 3869 2e4d 89C7     		movl	%eax, %edi
- 3870 2e4f E8ACD1FF 		call	bswap_32
- 3870      FF
- 3871 2e54 4589E9   		movl	%r13d, %r9d
- 3872 2e57 4589E0   		movl	%r12d, %r8d
- 3873 2e5a 89D9     		movl	%ebx, %ecx
- 3874 2e5c 89C2     		movl	%eax, %edx
- 3875 2e5e 488D3500 		leaq	.LC2(%rip), %rsi
- 3875      000000
- 3876 2e65 488D3D00 		leaq	.LC1(%rip), %rdi
- 3876      000000
- 3877 2e6c B8000000 		movl	$0, %eax
- 3877      00
- 3878 2e71 E8000000 		call	KDbgMsg at PLT
- 3878      00
- 3879              	.L87:
- 3880 2e76 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3880      F0D8FFFF 
- 3881 2e7e F30F7F85 		movdqu	%xmm0, -4080(%rbp)
- 3881      10F0FFFF 
- 3882 2e86 660F6F85 		movdqa	-9984(%rbp), %xmm0
- 3882      00D9FFFF 
- 3883 2e8e F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 3883      00F0FFFF 
- 3884              	.LBE607:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 148
-
-
- 3885              	.LBB608:
- 3886              	.LBB609:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 3887              		.loc 2 178 0
- 3888 2e96 F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 3888      00F0FFFF 
- 3889 2e9e F30F6F8D 		movdqu	-4080(%rbp), %xmm1
- 3889      10F0FFFF 
- 3890 2ea6 660FEFC1 		pxor	%xmm1, %xmm0
- 3891              	.LBE609:
- 3892              	.LBE608:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 3893              		.loc 2 1686 0
- 3894 2eaa 660F7F85 		movdqa	%xmm0, -10000(%rbp)
- 3894      F0D8FFFF 
- 3895              	.LBB610:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 3896              		.loc 2 1687 0
- 3897 2eb2 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3897      F0D8FFFF 
- 3898 2eba F30F7F85 		movdqu	%xmm0, -8640(%rbp)
- 3898      40DEFFFF 
- 3899 2ec2 E8000000 		call	KDbgWriterGet at PLT
- 3899      00
- 3900 2ec7 4885C0   		testq	%rax, %rax
- 3901 2eca 7479     		je	.L89
- 3902 2ecc BF010000 		movl	$1, %edi
- 3902      00
- 3903 2ed1 E8000000 		call	KDbgCondToFlag at PLT
- 3903      00
- 3904 2ed6 4889C6   		movq	%rax, %rsi
- 3905 2ed9 BF100000 		movl	$16, %edi
- 3905      00
- 3906 2ede E8000000 		call	KDbgTestModConds at PLT
- 3906      00
- 3907 2ee3 84C0     		testb	%al, %al
- 3908 2ee5 745E     		je	.L89
- 3909 2ee7 8B854CDE 		movl	-8628(%rbp), %eax
- 3909      FFFF
- 3910 2eed 89C7     		movl	%eax, %edi
- 3911 2eef E80CD1FF 		call	bswap_32
- 3911      FF
- 3912 2ef4 4189C5   		movl	%eax, %r13d
- 3913 2ef7 8B8548DE 		movl	-8632(%rbp), %eax
- 3913      FFFF
- 3914 2efd 89C7     		movl	%eax, %edi
- 3915 2eff E8FCD0FF 		call	bswap_32
- 3915      FF
- 3916 2f04 4189C4   		movl	%eax, %r12d
- 3917 2f07 8B8544DE 		movl	-8636(%rbp), %eax
- 3917      FFFF
- 3918 2f0d 89C7     		movl	%eax, %edi
- 3919 2f0f E8ECD0FF 		call	bswap_32
- 3919      FF
- 3920 2f14 89C3     		movl	%eax, %ebx
- 3921 2f16 8B8540DE 		movl	-8640(%rbp), %eax
- 3921      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 149
-
-
- 3922 2f1c 89C7     		movl	%eax, %edi
- 3923 2f1e E8DDD0FF 		call	bswap_32
- 3923      FF
- 3924 2f23 4589E9   		movl	%r13d, %r9d
- 3925 2f26 4589E0   		movl	%r12d, %r8d
- 3926 2f29 89D9     		movl	%ebx, %ecx
- 3927 2f2b 89C2     		movl	%eax, %edx
- 3928 2f2d 488D3500 		leaq	.LC3(%rip), %rsi
- 3928      000000
- 3929 2f34 488D3D00 		leaq	.LC1(%rip), %rdi
- 3929      000000
- 3930 2f3b B8000000 		movl	$0, %eax
- 3930      00
- 3931 2f40 E8000000 		call	KDbgMsg at PLT
- 3931      00
- 3932              	.L89:
- 3933 2f45 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3933      F0D8FFFF 
- 3934 2f4d F30F7F85 		movdqu	%xmm0, -4064(%rbp)
- 3934      20F0FFFF 
- 3935              	.LBE610:
- 3936              	.LBB611:
- 3937              	.LBB612:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 3938              		.loc 2 1357 0
- 3939 2f55 F30F6F85 		movdqu	-4064(%rbp), %xmm0
- 3939      20F0FFFF 
- 3940 2f5d F30F7F85 		movdqu	%xmm0, -8432(%rbp)
- 3940      10DFFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 3941              		.loc 2 1358 0
- 3942 2f65 8B851CDF 		movl	-8420(%rbp), %eax
- 3942      FFFF
- 3943 2f6b 898518DF 		movl	%eax, -8424(%rbp)
- 3943      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 3944              		.loc 2 1359 0
- 3945 2f71 8B851CDF 		movl	-8420(%rbp), %eax
- 3945      FFFF
- 3946 2f77 898514DF 		movl	%eax, -8428(%rbp)
- 3946      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 3947              		.loc 2 1360 0
- 3948 2f7d 8B851CDF 		movl	-8420(%rbp), %eax
- 3948      FFFF
- 3949 2f83 898510DF 		movl	%eax, -8432(%rbp)
- 3949      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 3950              		.loc 2 1361 0
- 3951 2f89 F30F6F85 		movdqu	-8432(%rbp), %xmm0
- 3951      10DFFFFF 
- 3952              	.LBE612:
- 3953              	.LBE611:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 3954              		.loc 2 1688 0
- 3955 2f91 660F7F85 		movdqa	%xmm0, -10000(%rbp)
- 3955      F0D8FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 150
-
-
- 3956              	.LBB613:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 3957              		.loc 2 1689 0
- 3958 2f99 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3958      F0D8FFFF 
- 3959 2fa1 F30F7F85 		movdqu	%xmm0, -8656(%rbp)
- 3959      30DEFFFF 
- 3960 2fa9 E8000000 		call	KDbgWriterGet at PLT
- 3960      00
- 3961 2fae 4885C0   		testq	%rax, %rax
- 3962 2fb1 7479     		je	.L91
- 3963 2fb3 BF010000 		movl	$1, %edi
- 3963      00
- 3964 2fb8 E8000000 		call	KDbgCondToFlag at PLT
- 3964      00
- 3965 2fbd 4889C6   		movq	%rax, %rsi
- 3966 2fc0 BF100000 		movl	$16, %edi
- 3966      00
- 3967 2fc5 E8000000 		call	KDbgTestModConds at PLT
- 3967      00
- 3968 2fca 84C0     		testb	%al, %al
- 3969 2fcc 745E     		je	.L91
- 3970 2fce 8B853CDE 		movl	-8644(%rbp), %eax
- 3970      FFFF
- 3971 2fd4 89C7     		movl	%eax, %edi
- 3972 2fd6 E825D0FF 		call	bswap_32
- 3972      FF
- 3973 2fdb 4189C5   		movl	%eax, %r13d
- 3974 2fde 8B8538DE 		movl	-8648(%rbp), %eax
- 3974      FFFF
- 3975 2fe4 89C7     		movl	%eax, %edi
- 3976 2fe6 E815D0FF 		call	bswap_32
- 3976      FF
- 3977 2feb 4189C4   		movl	%eax, %r12d
- 3978 2fee 8B8534DE 		movl	-8652(%rbp), %eax
- 3978      FFFF
- 3979 2ff4 89C7     		movl	%eax, %edi
- 3980 2ff6 E805D0FF 		call	bswap_32
- 3980      FF
- 3981 2ffb 89C3     		movl	%eax, %ebx
- 3982 2ffd 8B8530DE 		movl	-8656(%rbp), %eax
- 3982      FFFF
- 3983 3003 89C7     		movl	%eax, %edi
- 3984 3005 E8F6CFFF 		call	bswap_32
- 3984      FF
- 3985 300a 4589E9   		movl	%r13d, %r9d
- 3986 300d 4589E0   		movl	%r12d, %r8d
- 3987 3010 89D9     		movl	%ebx, %ecx
- 3988 3012 89C2     		movl	%eax, %edx
- 3989 3014 488D3500 		leaq	.LC4(%rip), %rsi
- 3989      000000
- 3990 301b 488D3D00 		leaq	.LC1(%rip), %rdi
- 3990      000000
- 3991 3022 B8000000 		movl	$0, %eax
- 3991      00
- 3992 3027 E8000000 		call	KDbgMsg at PLT
- 3992      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 151
-
-
- 3993              	.L91:
- 3994              	.LBE613:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 3995              		.loc 2 1690 0
- 3996 302c 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 3996      F0D8FFFF 
- 3997              	.LBE579:
- 3998              	.LBE578:
-1747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x08,4);
- 3999              		.loc 2 1747 0
- 4000 3034 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 4000      20E6FFFF 
- 4001 303c F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 4001      10E6FFFF 
- 4002 3044 F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 4002      30F0FFFF 
- 4003              	.LBB614:
- 4004              	.LBB615:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4005              		.loc 2 1565 0
- 4006 304c F30F6F85 		movdqu	-4048(%rbp), %xmm0
- 4006      30F0FFFF 
- 4007 3054 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 4007      20D9FFFF 
- 4008 305c 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 4008      20D9FFFF 
- 4009 3064 F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 4009      40F0FFFF 
- 4010              	.LBB616:
- 4011              	.LBB617:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 4012              		.loc 2 1282 0
- 4013 306c F30F6F85 		movdqu	-4032(%rbp), %xmm0
- 4013      40F0FFFF 
- 4014 3074 F30F7F85 		movdqu	%xmm0, -8416(%rbp)
- 4014      20DFFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 4015              		.loc 2 1283 0
- 4016 307c 8B8528DF 		movl	-8408(%rbp), %eax
- 4016      FFFF
- 4017 3082 89852CDF 		movl	%eax, -8404(%rbp)
- 4017      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 4018              		.loc 2 1284 0
- 4019 3088 8B8524DF 		movl	-8412(%rbp), %eax
- 4019      FFFF
- 4020 308e 898528DF 		movl	%eax, -8408(%rbp)
- 4020      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 4021              		.loc 2 1285 0
- 4022 3094 8B8520DF 		movl	-8416(%rbp), %eax
- 4022      FFFF
- 4023 309a 898524DF 		movl	%eax, -8412(%rbp)
- 4023      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 4024              		.loc 2 1286 0
- 4025 30a0 C78520DF 		movl	$0, -8416(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 152
-
-
- 4025      FFFF0000 
- 4025      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 4026              		.loc 2 1287 0
- 4027 30aa F30F6F85 		movdqu	-8416(%rbp), %xmm0
- 4027      20DFFFFF 
- 4028              	.LBE617:
- 4029              	.LBE616:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4030              		.loc 2 1567 0
- 4031 30b2 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 4031      20D9FFFF 
- 4032 30ba 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 4032      20D9FFFF 
- 4033 30c2 660FEF85 		pxor	-4048(%rbp), %xmm0
- 4033      30F0FFFF 
- 4034 30ca F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 4034      30F0FFFF 
- 4035 30d2 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 4035      20D9FFFF 
- 4036 30da F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 4036      50F0FFFF 
- 4037              	.LBB618:
- 4038              	.LBB619:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 4039              		.loc 2 1282 0
- 4040 30e2 F30F6F85 		movdqu	-4016(%rbp), %xmm0
- 4040      50F0FFFF 
- 4041 30ea F30F7F85 		movdqu	%xmm0, -8400(%rbp)
- 4041      30DFFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 4042              		.loc 2 1283 0
- 4043 30f2 8B8538DF 		movl	-8392(%rbp), %eax
- 4043      FFFF
- 4044 30f8 89853CDF 		movl	%eax, -8388(%rbp)
- 4044      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 4045              		.loc 2 1284 0
- 4046 30fe 8B8534DF 		movl	-8396(%rbp), %eax
- 4046      FFFF
- 4047 3104 898538DF 		movl	%eax, -8392(%rbp)
- 4047      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 4048              		.loc 2 1285 0
- 4049 310a 8B8530DF 		movl	-8400(%rbp), %eax
- 4049      FFFF
- 4050 3110 898534DF 		movl	%eax, -8396(%rbp)
- 4050      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 4051              		.loc 2 1286 0
- 4052 3116 C78530DF 		movl	$0, -8400(%rbp)
- 4052      FFFF0000 
- 4052      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 4053              		.loc 2 1287 0
- 4054 3120 F30F6F85 		movdqu	-8400(%rbp), %xmm0
- 4054      30DFFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 153
-
-
- 4055              	.LBE619:
- 4056              	.LBE618:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4057              		.loc 2 1568 0
- 4058 3128 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 4058      20D9FFFF 
- 4059 3130 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 4059      20D9FFFF 
- 4060 3138 660FEF85 		pxor	-4048(%rbp), %xmm0
- 4060      30F0FFFF 
- 4061 3140 F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 4061      30F0FFFF 
- 4062 3148 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 4062      20D9FFFF 
- 4063 3150 F30F7F85 		movdqu	%xmm0, -4000(%rbp)
- 4063      60F0FFFF 
- 4064              	.LBB620:
- 4065              	.LBB621:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 4066              		.loc 2 1282 0
- 4067 3158 F30F6F85 		movdqu	-4000(%rbp), %xmm0
- 4067      60F0FFFF 
- 4068 3160 F30F7F85 		movdqu	%xmm0, -8384(%rbp)
- 4068      40DFFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 4069              		.loc 2 1283 0
- 4070 3168 8B8548DF 		movl	-8376(%rbp), %eax
- 4070      FFFF
- 4071 316e 89854CDF 		movl	%eax, -8372(%rbp)
- 4071      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 4072              		.loc 2 1284 0
- 4073 3174 8B8544DF 		movl	-8380(%rbp), %eax
- 4073      FFFF
- 4074 317a 898548DF 		movl	%eax, -8376(%rbp)
- 4074      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 4075              		.loc 2 1285 0
- 4076 3180 8B8540DF 		movl	-8384(%rbp), %eax
- 4076      FFFF
- 4077 3186 898544DF 		movl	%eax, -8380(%rbp)
- 4077      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 4078              		.loc 2 1286 0
- 4079 318c C78540DF 		movl	$0, -8384(%rbp)
- 4079      FFFF0000 
- 4079      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 4080              		.loc 2 1287 0
- 4081 3196 F30F6F85 		movdqu	-8384(%rbp), %xmm0
- 4081      40DFFFFF 
- 4082              	.LBE621:
- 4083              	.LBE620:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4084              		.loc 2 1569 0
- 4085 319e 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 4085      20D9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 154
-
-
- 4086 31a6 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 4086      20D9FFFF 
- 4087 31ae 660FEF85 		pxor	-4048(%rbp), %xmm0
- 4087      30F0FFFF 
- 4088 31b6 F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 4088      30F0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4089              		.loc 2 1571 0
- 4090 31be F30F6F85 		movdqu	-4048(%rbp), %xmm0
- 4090      30F0FFFF 
- 4091              	.LBE615:
- 4092              	.LBE614:
-1747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x08,4);
- 4093              		.loc 2 1747 0
- 4094 31c6 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 4094      10E6FFFF 
- 4095 31ce F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 4095      20E6FFFF 
- 4096 31d6 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 4096      10E6FFFF 
- 4097 31de 660FEFC1 		pxor	%xmm1, %xmm0
- 4098 31e2 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 4098      10E6FFFF 
- 4099 31ea 488B85B8 		movq	-9544(%rbp), %rax
- 4099      DAFFFF
- 4100 31f1 4883C040 		addq	$64, %rax
- 4101 31f5 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 4101      10E6FFFF 
- 4102 31fd F30F7F00 		movdqu	%xmm0, (%rax)
- 4103 3201 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 4103      10E6FFFF 
- 4104 3209 F30F7F85 		movdqu	%xmm0, -3968(%rbp)
- 4104      80F0FFFF 
- 4105              	.LBB622:
- 4106              	.LBB623:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4107              		.loc 2 1681 0
- 4108 3211 B8100000 		movl	$16, %eax
- 4108      00
- 4109 3216 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4109      00000000 
- 4110 321e F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 4110      A0F0FFFF 
- 4111 3226 89859CF0 		movl	%eax, -3940(%rbp)
- 4111      FFFF
- 4112              	.LBB624:
- 4113              	.LBB625:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 4114              		.loc 2 522 0
- 4115 322c F30F6F85 		movdqu	-3936(%rbp), %xmm0
- 4115      A0F0FFFF 
- 4116 3234 F30F7F85 		movdqu	%xmm0, -8304(%rbp)
- 4116      90DFFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 4117              		.loc 2 523 0
- 4118 323c B8030000 		movl	$3, %eax
- 4118      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 155
-
-
- 4119 3241 4898     		cltq
- 4120 3243 8B959CF0 		movl	-3940(%rbp), %edx
- 4120      FFFF
- 4121 3249 89948590 		movl	%edx, -8304(%rbp,%rax,4)
- 4121      DFFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 4122              		.loc 2 524 0
- 4123 3250 F30F6F85 		movdqu	-8304(%rbp), %xmm0
- 4123      90DFFFFF 
- 4124 3258 F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 4124      A0F0FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4125              		.loc 2 526 0
- 4126 3260 F30F6F85 		movdqu	-3936(%rbp), %xmm0
- 4126      A0F0FFFF 
- 4127              	.LBE625:
- 4128              	.LBE624:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4129              		.loc 2 1681 0
- 4130 3268 660F7F85 		movdqa	%xmm0, -9920(%rbp)
- 4130      40D9FFFF 
- 4131 3270 F30F6F85 		movdqu	-3968(%rbp), %xmm0
- 4131      80F0FFFF 
- 4132 3278 F30F7F85 		movdqu	%xmm0, -3920(%rbp)
- 4132      B0F0FFFF 
- 4133 3280 F30F6F85 		movdqu	-3920(%rbp), %xmm0
- 4133      B0F0FFFF 
- 4134 3288 F30F7F85 		movdqu	%xmm0, -3888(%rbp)
- 4134      D0F0FFFF 
- 4135 3290 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 4135      000000
- 4136 3297 488985C8 		movq	%rax, -3896(%rbp)
- 4136      F0FFFF
- 4137              	.LBB626:
- 4138              	.LBB627:
- 4139              	.LBB628:
- 4140              	.LBB629:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 4141              		.loc 2 851 0
- 4142 329e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4142      00000000 
- 4143 32a6 F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 4143      F0F0FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4144              		.loc 2 854 0
- 4145 32ae 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4145      00000000 
- 4146 32b6 F30F6F8D 		movdqu	-3888(%rbp), %xmm1
- 4146      D0F0FFFF 
- 4147 32be F30F7F8D 		movdqu	%xmm1, -3776(%rbp)
- 4147      40F1FFFF 
- 4148 32c6 F30F7F85 		movdqu	%xmm0, -3792(%rbp)
- 4148      30F1FFFF 
- 4149              	.LBB630:
- 4150              	.LBB631:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4151              		.loc 2 206 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 156
-
-
- 4152 32ce F30F6F85 		movdqu	-3792(%rbp), %xmm0
- 4152      30F1FFFF 
- 4153 32d6 F30F6F8D 		movdqu	-3776(%rbp), %xmm1
- 4153      40F1FFFF 
- 4154 32de 660FDBC1 		pand	%xmm1, %xmm0
- 4155              	.LBE631:
- 4156              	.LBE630:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4157              		.loc 2 854 0
- 4158 32e2 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 4158      20F1FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 4159              		.loc 2 862 0
- 4160 32ea 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 4160      00000000 
- 4161 32f2 F30F6F8D 		movdqu	-3888(%rbp), %xmm1
- 4161      D0F0FFFF 
- 4162 32fa F30F7F8D 		movdqu	%xmm1, -3744(%rbp)
- 4162      60F1FFFF 
- 4163 3302 F30F7F85 		movdqu	%xmm0, -3760(%rbp)
- 4163      50F1FFFF 
- 4164              	.LBB632:
- 4165              		.loc 2 2642 0
- 4166 330a 0FB68560 		movzbl	-3744(%rbp), %eax
- 4166      F1FFFF
- 4167 3311 0FB69550 		movzbl	-3760(%rbp), %edx
- 4167      F1FFFF
- 4168 3318 0FB6C0   		movzbl	%al, %eax
- 4169 331b 6689858E 		movw	%ax, -10354(%rbp)
- 4169      D7FFFF
- 4170 3322 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4170      D7FFFF
- 4171 3329 F6F2     		divb	%dl
- 4172 332b 4189C7   		movl	%eax, %r15d
- 4173 332e 0FB68561 		movzbl	-3743(%rbp), %eax
- 4173      F1FFFF
- 4174 3335 0FB69551 		movzbl	-3759(%rbp), %edx
- 4174      F1FFFF
- 4175 333c 0FB6C0   		movzbl	%al, %eax
- 4176 333f 6689858E 		movw	%ax, -10354(%rbp)
- 4176      D7FFFF
- 4177 3346 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4177      D7FFFF
- 4178 334d F6F2     		divb	%dl
- 4179 334f 88855FD9 		movb	%al, -9889(%rbp)
- 4179      FFFF
- 4180 3355 0FB68562 		movzbl	-3742(%rbp), %eax
- 4180      F1FFFF
- 4181 335c 0FB69552 		movzbl	-3758(%rbp), %edx
- 4181      F1FFFF
- 4182 3363 0FB6C0   		movzbl	%al, %eax
- 4183 3366 6689858E 		movw	%ax, -10354(%rbp)
- 4183      D7FFFF
- 4184 336d 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4184      D7FFFF
- 4185 3374 F6F2     		divb	%dl
- 4186 3376 88855ED9 		movb	%al, -9890(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 157
-
-
- 4186      FFFF
- 4187 337c 0FB68563 		movzbl	-3741(%rbp), %eax
- 4187      F1FFFF
- 4188 3383 0FB69553 		movzbl	-3757(%rbp), %edx
- 4188      F1FFFF
- 4189 338a 0FB6C0   		movzbl	%al, %eax
- 4190 338d 6689858E 		movw	%ax, -10354(%rbp)
- 4190      D7FFFF
- 4191 3394 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4191      D7FFFF
- 4192 339b F6F2     		divb	%dl
- 4193 339d 88855DD9 		movb	%al, -9891(%rbp)
- 4193      FFFF
- 4194 33a3 0FB68564 		movzbl	-3740(%rbp), %eax
- 4194      F1FFFF
- 4195 33aa 0FB69554 		movzbl	-3756(%rbp), %edx
- 4195      F1FFFF
- 4196 33b1 0FB6C0   		movzbl	%al, %eax
- 4197 33b4 6689858E 		movw	%ax, -10354(%rbp)
- 4197      D7FFFF
- 4198 33bb 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4198      D7FFFF
- 4199 33c2 F6F2     		divb	%dl
- 4200 33c4 88855CD9 		movb	%al, -9892(%rbp)
- 4200      FFFF
- 4201 33ca 0FB68565 		movzbl	-3739(%rbp), %eax
- 4201      F1FFFF
- 4202 33d1 0FB69555 		movzbl	-3755(%rbp), %edx
- 4202      F1FFFF
- 4203 33d8 0FB6C0   		movzbl	%al, %eax
- 4204 33db 6689858E 		movw	%ax, -10354(%rbp)
- 4204      D7FFFF
- 4205 33e2 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4205      D7FFFF
- 4206 33e9 F6F2     		divb	%dl
- 4207 33eb 4189C1   		movl	%eax, %r9d
- 4208 33ee 0FB68566 		movzbl	-3738(%rbp), %eax
- 4208      F1FFFF
- 4209 33f5 0FB69556 		movzbl	-3754(%rbp), %edx
- 4209      F1FFFF
- 4210 33fc 0FB6C0   		movzbl	%al, %eax
- 4211 33ff 6689858E 		movw	%ax, -10354(%rbp)
- 4211      D7FFFF
- 4212 3406 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4212      D7FFFF
- 4213 340d F6F2     		divb	%dl
- 4214 340f 89C7     		movl	%eax, %edi
- 4215 3411 0FB68567 		movzbl	-3737(%rbp), %eax
- 4215      F1FFFF
- 4216 3418 0FB69557 		movzbl	-3753(%rbp), %edx
- 4216      F1FFFF
- 4217 341f 0FB6C0   		movzbl	%al, %eax
- 4218 3422 6689858E 		movw	%ax, -10354(%rbp)
- 4218      D7FFFF
- 4219 3429 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4219      D7FFFF
- 4220 3430 F6F2     		divb	%dl
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 158
-
-
- 4221 3432 89C3     		movl	%eax, %ebx
- 4222 3434 0FB68568 		movzbl	-3736(%rbp), %eax
- 4222      F1FFFF
- 4223 343b 0FB69558 		movzbl	-3752(%rbp), %edx
- 4223      F1FFFF
- 4224 3442 0FB6C0   		movzbl	%al, %eax
- 4225 3445 6689858E 		movw	%ax, -10354(%rbp)
- 4225      D7FFFF
- 4226 344c 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4226      D7FFFF
- 4227 3453 F6F2     		divb	%dl
- 4228 3455 4189C2   		movl	%eax, %r10d
- 4229 3458 0FB68569 		movzbl	-3735(%rbp), %eax
- 4229      F1FFFF
- 4230 345f 0FB69559 		movzbl	-3751(%rbp), %edx
- 4230      F1FFFF
- 4231 3466 0FB6C0   		movzbl	%al, %eax
- 4232 3469 6689858E 		movw	%ax, -10354(%rbp)
- 4232      D7FFFF
- 4233 3470 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4233      D7FFFF
- 4234 3477 F6F2     		divb	%dl
- 4235 3479 4189C3   		movl	%eax, %r11d
- 4236 347c 0FB6856A 		movzbl	-3734(%rbp), %eax
- 4236      F1FFFF
- 4237 3483 0FB6955A 		movzbl	-3750(%rbp), %edx
- 4237      F1FFFF
- 4238 348a 0FB6C0   		movzbl	%al, %eax
- 4239 348d 6689858E 		movw	%ax, -10354(%rbp)
- 4239      D7FFFF
- 4240 3494 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4240      D7FFFF
- 4241 349b F6F2     		divb	%dl
- 4242 349d 4189C4   		movl	%eax, %r12d
- 4243 34a0 0FB6856B 		movzbl	-3733(%rbp), %eax
- 4243      F1FFFF
- 4244 34a7 0FB6955B 		movzbl	-3749(%rbp), %edx
- 4244      F1FFFF
- 4245 34ae 0FB6C0   		movzbl	%al, %eax
- 4246 34b1 6689858E 		movw	%ax, -10354(%rbp)
- 4246      D7FFFF
- 4247 34b8 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4247      D7FFFF
- 4248 34bf F6F2     		divb	%dl
- 4249 34c1 4189C5   		movl	%eax, %r13d
- 4250 34c4 0FB6856C 		movzbl	-3732(%rbp), %eax
- 4250      F1FFFF
- 4251 34cb 0FB6955C 		movzbl	-3748(%rbp), %edx
- 4251      F1FFFF
- 4252 34d2 0FB6C0   		movzbl	%al, %eax
- 4253 34d5 6689858E 		movw	%ax, -10354(%rbp)
- 4253      D7FFFF
- 4254 34dc 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4254      D7FFFF
- 4255 34e3 F6F2     		divb	%dl
- 4256 34e5 4189C6   		movl	%eax, %r14d
- 4257 34e8 0FB6856D 		movzbl	-3731(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 159
-
-
- 4257      F1FFFF
- 4258 34ef 0FB6955D 		movzbl	-3747(%rbp), %edx
- 4258      F1FFFF
- 4259 34f6 0FB6C0   		movzbl	%al, %eax
- 4260 34f9 6689858E 		movw	%ax, -10354(%rbp)
- 4260      D7FFFF
- 4261 3500 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4261      D7FFFF
- 4262 3507 F6F2     		divb	%dl
- 4263 3509 4189C0   		movl	%eax, %r8d
- 4264 350c 0FB6856E 		movzbl	-3730(%rbp), %eax
- 4264      F1FFFF
- 4265 3513 0FB6955E 		movzbl	-3746(%rbp), %edx
- 4265      F1FFFF
- 4266 351a 0FB6C0   		movzbl	%al, %eax
- 4267 351d 6689858E 		movw	%ax, -10354(%rbp)
- 4267      D7FFFF
- 4268 3524 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4268      D7FFFF
- 4269 352b F6F2     		divb	%dl
- 4270 352d 89C6     		movl	%eax, %esi
- 4271 352f 0FB6856F 		movzbl	-3729(%rbp), %eax
- 4271      F1FFFF
- 4272 3536 0FB6955F 		movzbl	-3745(%rbp), %edx
- 4272      F1FFFF
- 4273 353d 0FB6C0   		movzbl	%al, %eax
- 4274 3540 6689858E 		movw	%ax, -10354(%rbp)
- 4274      D7FFFF
- 4275 3547 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4275      D7FFFF
- 4276 354e F6F2     		divb	%dl
- 4277 3550 89C1     		movl	%eax, %ecx
- 4278              	.LBB633:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 4279              		.loc 2 346 0
- 4280 3552 0FB6D3   		movzbl	%bl, %edx
- 4281 3555 400FB6C7 		movzbl	%dil, %eax
- 4282 3559 48C1E208 		salq	$8, %rdx
- 4283 355d 4809C2   		orq	%rax, %rdx
- 4284 3560 410FB6C1 		movzbl	%r9b, %eax
- 4285 3564 48C1E208 		salq	$8, %rdx
- 4286 3568 4809C2   		orq	%rax, %rdx
- 4287 356b 0FB6855C 		movzbl	-9892(%rbp), %eax
- 4287      D9FFFF
- 4288 3572 48C1E208 		salq	$8, %rdx
- 4289 3576 4809C2   		orq	%rax, %rdx
- 4290 3579 0FB6855D 		movzbl	-9891(%rbp), %eax
- 4290      D9FFFF
- 4291 3580 48C1E208 		salq	$8, %rdx
- 4292 3584 4809C2   		orq	%rax, %rdx
- 4293 3587 0FB6855E 		movzbl	-9890(%rbp), %eax
- 4293      D9FFFF
- 4294 358e 48C1E208 		salq	$8, %rdx
- 4295 3592 4809C2   		orq	%rax, %rdx
- 4296 3595 0FB6855F 		movzbl	-9889(%rbp), %eax
- 4296      D9FFFF
- 4297 359c 48C1E208 		salq	$8, %rdx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 160
-
-
- 4298 35a0 4809C2   		orq	%rax, %rdx
- 4299 35a3 410FB6C7 		movzbl	%r15b, %eax
- 4300 35a7 48C1E208 		salq	$8, %rdx
- 4301 35ab 4809C2   		orq	%rax, %rdx
- 4302 35ae 0FB6C1   		movzbl	%cl, %eax
- 4303 35b1 400FB6CE 		movzbl	%sil, %ecx
- 4304 35b5 48C1E008 		salq	$8, %rax
- 4305 35b9 4809C8   		orq	%rcx, %rax
- 4306 35bc 410FB6C8 		movzbl	%r8b, %ecx
- 4307 35c0 48C1E008 		salq	$8, %rax
- 4308 35c4 4809C8   		orq	%rcx, %rax
- 4309 35c7 410FB6CE 		movzbl	%r14b, %ecx
- 4310 35cb 48C1E008 		salq	$8, %rax
- 4311 35cf 4809C8   		orq	%rcx, %rax
- 4312 35d2 410FB6CD 		movzbl	%r13b, %ecx
- 4313 35d6 48C1E008 		salq	$8, %rax
- 4314 35da 4809C8   		orq	%rcx, %rax
- 4315 35dd 410FB6CC 		movzbl	%r12b, %ecx
- 4316 35e1 48C1E008 		salq	$8, %rax
- 4317 35e5 4809C8   		orq	%rcx, %rax
- 4318 35e8 410FB6CB 		movzbl	%r11b, %ecx
- 4319 35ec 48C1E008 		salq	$8, %rax
- 4320 35f0 4809C8   		orq	%rcx, %rax
- 4321 35f3 410FB6CA 		movzbl	%r10b, %ecx
- 4322 35f7 48C1E008 		salq	$8, %rax
- 4323 35fb 4809C8   		orq	%rcx, %rax
- 4324 35fe 488995E0 		movq	%rdx, -10272(%rbp)
- 4324      D7FFFF
- 4325 3605 488985E8 		movq	%rax, -10264(%rbp)
- 4325      D7FFFF
- 4326 360c 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 4326      E0D7FFFF 
- 4327              	.LBE633:
- 4328              	.LBE632:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 4329              		.loc 2 862 0
- 4330 3614 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 4330      10F1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 4331              		.loc 2 866 0
- 4332 361c C785ECF0 		movl	$0, -3860(%rbp)
- 4332      FFFF0000 
- 4332      0000
- 4333 3626 E9860200 		jmp	.L92
- 4333      00
- 4334              	.L101:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 4335              		.loc 2 868 0
- 4336 362b 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 4336      00000000 
- 4337 3633 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 4337      80F1FFFF 
- 4338 363b F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 4338      10F1FFFF 
- 4339 3643 F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 4339      70F1FFFF 
- 4340              	.LBB634:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 161
-
-
- 4341              	.LBB635:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 4342              		.loc 2 380 0
- 4343 364b F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 4343      80F1FFFF 
- 4344 3653 F30F7F85 		movdqu	%xmm0, -8272(%rbp)
- 4344      B0DFFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 4345              		.loc 2 381 0
- 4346 365b F30F6F85 		movdqu	-3728(%rbp), %xmm0
- 4346      70F1FFFF 
- 4347 3663 F30F7F85 		movdqu	%xmm0, -8288(%rbp)
- 4347      A0DFFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 4348              		.loc 2 383 0
- 4349 366b C7859CF1 		movl	$0, -3684(%rbp)
- 4349      FFFF0000 
- 4349      0000
- 4350 3675 EB5C     		jmp	.L93
- 4351              	.L96:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 4352              		.loc 2 385 0
- 4353 3677 8B859CF1 		movl	-3684(%rbp), %eax
- 4353      FFFF
- 4354 367d 89C0     		mov	%eax, %eax
- 4355 367f 0FB68405 		movzbl	-8288(%rbp,%rax), %eax
- 4355      A0DFFFFF 
- 4356 3687 84C0     		testb	%al, %al
- 4357 3689 7912     		jns	.L94
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 4358              		.loc 2 386 0
- 4359 368b 8B859CF1 		movl	-3684(%rbp), %eax
- 4359      FFFF
- 4360 3691 89C0     		mov	%eax, %eax
- 4361 3693 C68405C0 		movb	$0, -8256(%rbp,%rax)
- 4361      DFFFFF00 
- 4362 369b EB2F     		jmp	.L95
- 4363              	.L94:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 4364              		.loc 2 388 0
- 4365 369d 8B8D9CF1 		movl	-3684(%rbp), %ecx
- 4365      FFFF
- 4366 36a3 8B859CF1 		movl	-3684(%rbp), %eax
- 4366      FFFF
- 4367 36a9 89C0     		mov	%eax, %eax
- 4368 36ab 0FB68405 		movzbl	-8288(%rbp,%rax), %eax
- 4368      A0DFFFFF 
- 4369 36b3 0FB6C0   		movzbl	%al, %eax
- 4370 36b6 83E00F   		andl	$15, %eax
- 4371 36b9 4898     		cltq
- 4372 36bb 0FB69405 		movzbl	-8272(%rbp,%rax), %edx
- 4372      B0DFFFFF 
- 4373 36c3 89C8     		mov	%ecx, %eax
- 4374 36c5 889405C0 		movb	%dl, -8256(%rbp,%rax)
- 4374      DFFFFF
- 4375              	.L95:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 162
-
-
- 4376              		.loc 2 383 0
- 4377 36cc 83859CF1 		addl	$1, -3684(%rbp)
- 4377      FFFF01
- 4378              	.L93:
- 4379 36d3 83BD9CF1 		cmpl	$15, -3684(%rbp)
- 4379      FFFF0F
- 4380 36da 769B     		jbe	.L96
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 4381              		.loc 2 391 0
- 4382 36dc F30F6F85 		movdqu	-8256(%rbp), %xmm0
- 4382      C0DFFFFF 
- 4383              	.LBE635:
- 4384              	.LBE634:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 4385              		.loc 2 868 0
- 4386 36e4 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 4386      00F1FFFF 
- 4387 36ec F30F6F85 		movdqu	-3808(%rbp), %xmm0
- 4387      20F1FFFF 
- 4388 36f4 F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 4388      B0F1FFFF 
- 4389 36fc F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 4389      00F1FFFF 
- 4390 3704 F30F7F85 		movdqu	%xmm0, -3680(%rbp)
- 4390      A0F1FFFF 
- 4391              	.LBB636:
- 4392              	.LBB637:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 4393              		.loc 2 234 0
- 4394 370c F30F6F85 		movdqu	-3680(%rbp), %xmm0
- 4394      A0F1FFFF 
- 4395 3714 F30F6F8D 		movdqu	-3664(%rbp), %xmm1
- 4395      B0F1FFFF 
- 4396 371c 660FEBC1 		por	%xmm1, %xmm0
- 4397              	.LBE637:
- 4398              	.LBE636:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 4399              		.loc 2 870 0
- 4400 3720 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 4400      00F1FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 4401              		.loc 2 872 0
- 4402 3728 8B85ECF0 		mov	-3860(%rbp), %eax
- 4402      FFFF
- 4403 372e 48C1E004 		salq	$4, %rax
- 4404 3732 480385C8 		addq	-3896(%rbp), %rax
- 4404      F0FFFF
- 4405 3739 660F6F00 		movdqa	(%rax), %xmm0
- 4406 373d F30F7F85 		movdqu	%xmm0, -3632(%rbp)
- 4406      D0F1FFFF 
- 4407 3745 F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 4407      00F1FFFF 
- 4408 374d F30F7F85 		movdqu	%xmm0, -3648(%rbp)
- 4408      C0F1FFFF 
- 4409              	.LBB638:
- 4410              	.LBB639:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 163
-
-
- 4411              		.loc 2 380 0
- 4412 3755 F30F6F85 		movdqu	-3632(%rbp), %xmm0
- 4412      D0F1FFFF 
- 4413 375d F30F7F85 		movdqu	%xmm0, -8224(%rbp)
- 4413      E0DFFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 4414              		.loc 2 381 0
- 4415 3765 F30F6F85 		movdqu	-3648(%rbp), %xmm0
- 4415      C0F1FFFF 
- 4416 376d F30F7F85 		movdqu	%xmm0, -8240(%rbp)
- 4416      D0DFFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 4417              		.loc 2 383 0
- 4418 3775 C785ECF1 		movl	$0, -3604(%rbp)
- 4418      FFFF0000 
- 4418      0000
- 4419 377f EB5C     		jmp	.L97
- 4420              	.L100:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 4421              		.loc 2 385 0
- 4422 3781 8B85ECF1 		movl	-3604(%rbp), %eax
- 4422      FFFF
- 4423 3787 89C0     		mov	%eax, %eax
- 4424 3789 0FB68405 		movzbl	-8240(%rbp,%rax), %eax
- 4424      D0DFFFFF 
- 4425 3791 84C0     		testb	%al, %al
- 4426 3793 7912     		jns	.L98
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 4427              		.loc 2 386 0
- 4428 3795 8B85ECF1 		movl	-3604(%rbp), %eax
- 4428      FFFF
- 4429 379b 89C0     		mov	%eax, %eax
- 4430 379d C68405F0 		movb	$0, -8208(%rbp,%rax)
- 4430      DFFFFF00 
- 4431 37a5 EB2F     		jmp	.L99
- 4432              	.L98:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 4433              		.loc 2 388 0
- 4434 37a7 8B8DECF1 		movl	-3604(%rbp), %ecx
- 4434      FFFF
- 4435 37ad 8B85ECF1 		movl	-3604(%rbp), %eax
- 4435      FFFF
- 4436 37b3 89C0     		mov	%eax, %eax
- 4437 37b5 0FB68405 		movzbl	-8240(%rbp,%rax), %eax
- 4437      D0DFFFFF 
- 4438 37bd 0FB6C0   		movzbl	%al, %eax
- 4439 37c0 83E00F   		andl	$15, %eax
- 4440 37c3 4898     		cltq
- 4441 37c5 0FB69405 		movzbl	-8224(%rbp,%rax), %edx
- 4441      E0DFFFFF 
- 4442 37cd 89C8     		mov	%ecx, %eax
- 4443 37cf 889405F0 		movb	%dl, -8208(%rbp,%rax)
- 4443      DFFFFF
- 4444              	.L99:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 4445              		.loc 2 383 0
- 4446 37d6 8385ECF1 		addl	$1, -3604(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 164
-
-
- 4446      FFFF01
- 4447              	.L97:
- 4448 37dd 83BDECF1 		cmpl	$15, -3604(%rbp)
- 4448      FFFF0F
- 4449 37e4 769B     		jbe	.L100
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 4450              		.loc 2 391 0
- 4451 37e6 F30F6F85 		movdqu	-8208(%rbp), %xmm0
- 4451      F0DFFFFF 
- 4452              	.LBE639:
- 4453              	.LBE638:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 4454              		.loc 2 872 0
- 4455 37ee F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 4455      00F1FFFF 
- 4456 37f6 F30F6F85 		movdqu	-3856(%rbp), %xmm0
- 4456      F0F0FFFF 
- 4457 37fe F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 4457      00F2FFFF 
- 4458 3806 F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 4458      00F1FFFF 
- 4459 380e F30F7F85 		movdqu	%xmm0, -3600(%rbp)
- 4459      F0F1FFFF 
- 4460              	.LBB640:
- 4461              	.LBB641:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 4462              		.loc 2 234 0
- 4463 3816 F30F6F85 		movdqu	-3600(%rbp), %xmm0
- 4463      F0F1FFFF 
- 4464 381e F30F6F8D 		movdqu	-3584(%rbp), %xmm1
- 4464      00F2FFFF 
- 4465 3826 660FEBC1 		por	%xmm1, %xmm0
- 4466              	.LBE641:
- 4467              	.LBE640:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 4468              		.loc 2 874 0
- 4469 382a F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 4469      F0F0FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 4470              		.loc 2 876 0
- 4471 3832 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 4471      00000000 
- 4472 383a F30F6F8D 		movdqu	-3824(%rbp), %xmm1
- 4472      10F1FFFF 
- 4473 3842 F30F7F8D 		movdqu	%xmm1, -3552(%rbp)
- 4473      20F2FFFF 
- 4474 384a F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 4474      10F2FFFF 
- 4475              	.LBB642:
- 4476              	.LBB643:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 4477              		.loc 2 290 0
- 4478 3852 F30F6F8D 		movdqu	-3568(%rbp), %xmm1
- 4478      10F2FFFF 
- 4479 385a F30F6F85 		movdqu	-3552(%rbp), %xmm0
- 4479      20F2FFFF 
- 4480 3862 660FF8C1 		psubb	%xmm1, %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 165
-
-
- 4481              	.LBE643:
- 4482              	.LBE642:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 4483              		.loc 2 876 0
- 4484 3866 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 4484      10F1FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4485              		.loc 2 878 0
- 4486 386e 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4486      00000000 
- 4487 3876 F30F6F8D 		movdqu	-3824(%rbp), %xmm1
- 4487      10F1FFFF 
- 4488 387e F30F7F8D 		movdqu	%xmm1, -3520(%rbp)
- 4488      40F2FFFF 
- 4489 3886 F30F7F85 		movdqu	%xmm0, -3536(%rbp)
- 4489      30F2FFFF 
- 4490              	.LBB644:
- 4491              	.LBB645:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4492              		.loc 2 206 0
- 4493 388e F30F6F85 		movdqu	-3536(%rbp), %xmm0
- 4493      30F2FFFF 
- 4494 3896 F30F6F8D 		movdqu	-3520(%rbp), %xmm1
- 4494      40F2FFFF 
- 4495 389e 660FDBC1 		pand	%xmm1, %xmm0
- 4496              	.LBE645:
- 4497              	.LBE644:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4498              		.loc 2 878 0
- 4499 38a2 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 4499      10F1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 4500              		.loc 2 866 0
- 4501 38aa 8385ECF0 		addl	$1, -3860(%rbp)
- 4501      FFFF01
- 4502              	.L92:
- 4503 38b1 83BDECF0 		cmpl	$15, -3860(%rbp)
- 4503      FFFF0F
- 4504 38b8 0F866DFD 		jbe	.L101
- 4504      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 4505              		.loc 2 882 0
- 4506 38be F30F6F85 		movdqu	-3856(%rbp), %xmm0
- 4506      F0F0FFFF 
- 4507              	.LBE629:
- 4508              	.LBE628:
- 4509              	.LBE627:
- 4510              	.LBE626:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 4511              		.loc 2 1682 0
- 4512 38c6 660F7F85 		movdqa	%xmm0, -9936(%rbp)
- 4512      30D9FFFF 
- 4513              	.LBB646:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 4514              		.loc 2 1683 0
- 4515 38ce 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4515      30D9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 166
-
-
- 4516 38d6 F30F7F85 		movdqu	%xmm0, -8320(%rbp)
- 4516      80DFFFFF 
- 4517 38de E8000000 		call	KDbgWriterGet at PLT
- 4517      00
- 4518 38e3 4885C0   		testq	%rax, %rax
- 4519 38e6 7479     		je	.L103
- 4520 38e8 BF010000 		movl	$1, %edi
- 4520      00
- 4521 38ed E8000000 		call	KDbgCondToFlag at PLT
- 4521      00
- 4522 38f2 4889C6   		movq	%rax, %rsi
- 4523 38f5 BF100000 		movl	$16, %edi
- 4523      00
- 4524 38fa E8000000 		call	KDbgTestModConds at PLT
- 4524      00
- 4525 38ff 84C0     		testb	%al, %al
- 4526 3901 745E     		je	.L103
- 4527 3903 8B858CDF 		movl	-8308(%rbp), %eax
- 4527      FFFF
- 4528 3909 89C7     		movl	%eax, %edi
- 4529 390b E8F0C6FF 		call	bswap_32
- 4529      FF
- 4530 3910 4189C5   		movl	%eax, %r13d
- 4531 3913 8B8588DF 		movl	-8312(%rbp), %eax
- 4531      FFFF
- 4532 3919 89C7     		movl	%eax, %edi
- 4533 391b E8E0C6FF 		call	bswap_32
- 4533      FF
- 4534 3920 4189C4   		movl	%eax, %r12d
- 4535 3923 8B8584DF 		movl	-8316(%rbp), %eax
- 4535      FFFF
- 4536 3929 89C7     		movl	%eax, %edi
- 4537 392b E8D0C6FF 		call	bswap_32
- 4537      FF
- 4538 3930 89C3     		movl	%eax, %ebx
- 4539 3932 8B8580DF 		movl	-8320(%rbp), %eax
- 4539      FFFF
- 4540 3938 89C7     		movl	%eax, %edi
- 4541 393a E8C1C6FF 		call	bswap_32
- 4541      FF
- 4542 393f 4589E9   		movl	%r13d, %r9d
- 4543 3942 4589E0   		movl	%r12d, %r8d
- 4544 3945 89D9     		movl	%ebx, %ecx
- 4545 3947 89C2     		movl	%eax, %edx
- 4546 3949 488D3500 		leaq	.LC0(%rip), %rsi
- 4546      000000
- 4547 3950 488D3D00 		leaq	.LC1(%rip), %rdi
- 4547      000000
- 4548 3957 B8000000 		movl	$0, %eax
- 4548      00
- 4549 395c E8000000 		call	KDbgMsg at PLT
- 4549      00
- 4550              	.L103:
- 4551 3961 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4551      30D9FFFF 
- 4552 3969 F30F7F85 		movdqu	%xmm0, -3504(%rbp)
- 4552      50F2FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 167
-
-
- 4553              	.LBE646:
- 4554              	.LBB647:
- 4555              	.LBB648:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 4556              		.loc 2 667 0
- 4557 3971 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 4557      00000000 
- 4558 3979 F30F6F8D 		movdqu	-3504(%rbp), %xmm1
- 4558      50F2FFFF 
- 4559 3981 F30F7F8D 		movdqu	%xmm1, -3472(%rbp)
- 4559      70F2FFFF 
- 4560 3989 F30F7F85 		movdqu	%xmm0, -3488(%rbp)
- 4560      60F2FFFF 
- 4561              	.LBB649:
- 4562              	.LBB650:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 4563              		.loc 2 380 0
- 4564 3991 F30F6F85 		movdqu	-3472(%rbp), %xmm0
- 4564      70F2FFFF 
- 4565 3999 F30F7F85 		movdqu	%xmm0, -8176(%rbp)
- 4565      10E0FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 4566              		.loc 2 381 0
- 4567 39a1 F30F6F85 		movdqu	-3488(%rbp), %xmm0
- 4567      60F2FFFF 
- 4568 39a9 F30F7F85 		movdqu	%xmm0, -8192(%rbp)
- 4568      00E0FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 4569              		.loc 2 383 0
- 4570 39b1 C7858CF2 		movl	$0, -3444(%rbp)
- 4570      FFFF0000 
- 4570      0000
- 4571 39bb EB5C     		jmp	.L104
- 4572              	.L107:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 4573              		.loc 2 385 0
- 4574 39bd 8B858CF2 		movl	-3444(%rbp), %eax
- 4574      FFFF
- 4575 39c3 89C0     		mov	%eax, %eax
- 4576 39c5 0FB68405 		movzbl	-8192(%rbp,%rax), %eax
- 4576      00E0FFFF 
- 4577 39cd 84C0     		testb	%al, %al
- 4578 39cf 7912     		jns	.L105
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 4579              		.loc 2 386 0
- 4580 39d1 8B858CF2 		movl	-3444(%rbp), %eax
- 4580      FFFF
- 4581 39d7 89C0     		mov	%eax, %eax
- 4582 39d9 C6840520 		movb	$0, -8160(%rbp,%rax)
- 4582      E0FFFF00 
- 4583 39e1 EB2F     		jmp	.L106
- 4584              	.L105:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 4585              		.loc 2 388 0
- 4586 39e3 8B8D8CF2 		movl	-3444(%rbp), %ecx
- 4586      FFFF
- 4587 39e9 8B858CF2 		movl	-3444(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 168
-
-
- 4587      FFFF
- 4588 39ef 89C0     		mov	%eax, %eax
- 4589 39f1 0FB68405 		movzbl	-8192(%rbp,%rax), %eax
- 4589      00E0FFFF 
- 4590 39f9 0FB6C0   		movzbl	%al, %eax
- 4591 39fc 83E00F   		andl	$15, %eax
- 4592 39ff 4898     		cltq
- 4593 3a01 0FB69405 		movzbl	-8176(%rbp,%rax), %edx
- 4593      10E0FFFF 
- 4594 3a09 89C8     		mov	%ecx, %eax
- 4595 3a0b 88940520 		movb	%dl, -8160(%rbp,%rax)
- 4595      E0FFFF
- 4596              	.L106:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 4597              		.loc 2 383 0
- 4598 3a12 83858CF2 		addl	$1, -3444(%rbp)
- 4598      FFFF01
- 4599              	.L104:
- 4600 3a19 83BD8CF2 		cmpl	$15, -3444(%rbp)
- 4600      FFFF0F
- 4601 3a20 769B     		jbe	.L107
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 4602              		.loc 2 391 0
- 4603 3a22 F30F6F85 		movdqu	-8160(%rbp), %xmm0
- 4603      20E0FFFF 
- 4604              	.LBE650:
- 4605              	.LBE649:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 4606              		.loc 2 667 0
- 4607 3a2a F30F7F85 		movdqu	%xmm0, -3504(%rbp)
- 4607      50F2FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4608              		.loc 2 668 0
- 4609 3a32 F30F6F85 		movdqu	-3504(%rbp), %xmm0
- 4609      50F2FFFF 
- 4610              	.LBE648:
- 4611              	.LBE647:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 4612              		.loc 2 1684 0
- 4613 3a3a 660F7F85 		movdqa	%xmm0, -9936(%rbp)
- 4613      30D9FFFF 
- 4614              	.LBB651:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 4615              		.loc 2 1685 0
- 4616 3a42 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4616      30D9FFFF 
- 4617 3a4a F30F7F85 		movdqu	%xmm0, -8336(%rbp)
- 4617      70DFFFFF 
- 4618 3a52 E8000000 		call	KDbgWriterGet at PLT
- 4618      00
- 4619 3a57 4885C0   		testq	%rax, %rax
- 4620 3a5a 7479     		je	.L109
- 4621 3a5c BF010000 		movl	$1, %edi
- 4621      00
- 4622 3a61 E8000000 		call	KDbgCondToFlag at PLT
- 4622      00
- 4623 3a66 4889C6   		movq	%rax, %rsi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 169
-
-
- 4624 3a69 BF100000 		movl	$16, %edi
- 4624      00
- 4625 3a6e E8000000 		call	KDbgTestModConds at PLT
- 4625      00
- 4626 3a73 84C0     		testb	%al, %al
- 4627 3a75 745E     		je	.L109
- 4628 3a77 8B857CDF 		movl	-8324(%rbp), %eax
- 4628      FFFF
- 4629 3a7d 89C7     		movl	%eax, %edi
- 4630 3a7f E87CC5FF 		call	bswap_32
- 4630      FF
- 4631 3a84 4189C5   		movl	%eax, %r13d
- 4632 3a87 8B8578DF 		movl	-8328(%rbp), %eax
- 4632      FFFF
- 4633 3a8d 89C7     		movl	%eax, %edi
- 4634 3a8f E86CC5FF 		call	bswap_32
- 4634      FF
- 4635 3a94 4189C4   		movl	%eax, %r12d
- 4636 3a97 8B8574DF 		movl	-8332(%rbp), %eax
- 4636      FFFF
- 4637 3a9d 89C7     		movl	%eax, %edi
- 4638 3a9f E85CC5FF 		call	bswap_32
- 4638      FF
- 4639 3aa4 89C3     		movl	%eax, %ebx
- 4640 3aa6 8B8570DF 		movl	-8336(%rbp), %eax
- 4640      FFFF
- 4641 3aac 89C7     		movl	%eax, %edi
- 4642 3aae E84DC5FF 		call	bswap_32
- 4642      FF
- 4643 3ab3 4589E9   		movl	%r13d, %r9d
- 4644 3ab6 4589E0   		movl	%r12d, %r8d
- 4645 3ab9 89D9     		movl	%ebx, %ecx
- 4646 3abb 89C2     		movl	%eax, %edx
- 4647 3abd 488D3500 		leaq	.LC2(%rip), %rsi
- 4647      000000
- 4648 3ac4 488D3D00 		leaq	.LC1(%rip), %rdi
- 4648      000000
- 4649 3acb B8000000 		movl	$0, %eax
- 4649      00
- 4650 3ad0 E8000000 		call	KDbgMsg at PLT
- 4650      00
- 4651              	.L109:
- 4652 3ad5 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4652      30D9FFFF 
- 4653 3add F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 4653      A0F2FFFF 
- 4654 3ae5 660F6F85 		movdqa	-9920(%rbp), %xmm0
- 4654      40D9FFFF 
- 4655 3aed F30F7F85 		movdqu	%xmm0, -3440(%rbp)
- 4655      90F2FFFF 
- 4656              	.LBE651:
- 4657              	.LBB652:
- 4658              	.LBB653:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 4659              		.loc 2 178 0
- 4660 3af5 F30F6F85 		movdqu	-3440(%rbp), %xmm0
- 4660      90F2FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 170
-
-
- 4661 3afd F30F6F8D 		movdqu	-3424(%rbp), %xmm1
- 4661      A0F2FFFF 
- 4662 3b05 660FEFC1 		pxor	%xmm1, %xmm0
- 4663              	.LBE653:
- 4664              	.LBE652:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 4665              		.loc 2 1686 0
- 4666 3b09 660F7F85 		movdqa	%xmm0, -9936(%rbp)
- 4666      30D9FFFF 
- 4667              	.LBB654:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 4668              		.loc 2 1687 0
- 4669 3b11 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4669      30D9FFFF 
- 4670 3b19 F30F7F85 		movdqu	%xmm0, -8352(%rbp)
- 4670      60DFFFFF 
- 4671 3b21 E8000000 		call	KDbgWriterGet at PLT
- 4671      00
- 4672 3b26 4885C0   		testq	%rax, %rax
- 4673 3b29 7479     		je	.L111
- 4674 3b2b BF010000 		movl	$1, %edi
- 4674      00
- 4675 3b30 E8000000 		call	KDbgCondToFlag at PLT
- 4675      00
- 4676 3b35 4889C6   		movq	%rax, %rsi
- 4677 3b38 BF100000 		movl	$16, %edi
- 4677      00
- 4678 3b3d E8000000 		call	KDbgTestModConds at PLT
- 4678      00
- 4679 3b42 84C0     		testb	%al, %al
- 4680 3b44 745E     		je	.L111
- 4681 3b46 8B856CDF 		movl	-8340(%rbp), %eax
- 4681      FFFF
- 4682 3b4c 89C7     		movl	%eax, %edi
- 4683 3b4e E8ADC4FF 		call	bswap_32
- 4683      FF
- 4684 3b53 4189C5   		movl	%eax, %r13d
- 4685 3b56 8B8568DF 		movl	-8344(%rbp), %eax
- 4685      FFFF
- 4686 3b5c 89C7     		movl	%eax, %edi
- 4687 3b5e E89DC4FF 		call	bswap_32
- 4687      FF
- 4688 3b63 4189C4   		movl	%eax, %r12d
- 4689 3b66 8B8564DF 		movl	-8348(%rbp), %eax
- 4689      FFFF
- 4690 3b6c 89C7     		movl	%eax, %edi
- 4691 3b6e E88DC4FF 		call	bswap_32
- 4691      FF
- 4692 3b73 89C3     		movl	%eax, %ebx
- 4693 3b75 8B8560DF 		movl	-8352(%rbp), %eax
- 4693      FFFF
- 4694 3b7b 89C7     		movl	%eax, %edi
- 4695 3b7d E87EC4FF 		call	bswap_32
- 4695      FF
- 4696 3b82 4589E9   		movl	%r13d, %r9d
- 4697 3b85 4589E0   		movl	%r12d, %r8d
- 4698 3b88 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 171
-
-
- 4699 3b8a 89C2     		movl	%eax, %edx
- 4700 3b8c 488D3500 		leaq	.LC3(%rip), %rsi
- 4700      000000
- 4701 3b93 488D3D00 		leaq	.LC1(%rip), %rdi
- 4701      000000
- 4702 3b9a B8000000 		movl	$0, %eax
- 4702      00
- 4703 3b9f E8000000 		call	KDbgMsg at PLT
- 4703      00
- 4704              	.L111:
- 4705 3ba4 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4705      30D9FFFF 
- 4706 3bac F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 4706      B0F2FFFF 
- 4707              	.LBE654:
- 4708              	.LBB655:
- 4709              	.LBB656:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 4710              		.loc 2 1357 0
- 4711 3bb4 F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 4711      B0F2FFFF 
- 4712 3bbc F30F7F85 		movdqu	%xmm0, -8144(%rbp)
- 4712      30E0FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 4713              		.loc 2 1358 0
- 4714 3bc4 8B853CE0 		movl	-8132(%rbp), %eax
- 4714      FFFF
- 4715 3bca 898538E0 		movl	%eax, -8136(%rbp)
- 4715      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 4716              		.loc 2 1359 0
- 4717 3bd0 8B853CE0 		movl	-8132(%rbp), %eax
- 4717      FFFF
- 4718 3bd6 898534E0 		movl	%eax, -8140(%rbp)
- 4718      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 4719              		.loc 2 1360 0
- 4720 3bdc 8B853CE0 		movl	-8132(%rbp), %eax
- 4720      FFFF
- 4721 3be2 898530E0 		movl	%eax, -8144(%rbp)
- 4721      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 4722              		.loc 2 1361 0
- 4723 3be8 F30F6F85 		movdqu	-8144(%rbp), %xmm0
- 4723      30E0FFFF 
- 4724              	.LBE656:
- 4725              	.LBE655:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 4726              		.loc 2 1688 0
- 4727 3bf0 660F7F85 		movdqa	%xmm0, -9936(%rbp)
- 4727      30D9FFFF 
- 4728              	.LBB657:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 4729              		.loc 2 1689 0
- 4730 3bf8 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4730      30D9FFFF 
- 4731 3c00 F30F7F85 		movdqu	%xmm0, -8368(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 172
-
-
- 4731      50DFFFFF 
- 4732 3c08 E8000000 		call	KDbgWriterGet at PLT
- 4732      00
- 4733 3c0d 4885C0   		testq	%rax, %rax
- 4734 3c10 7479     		je	.L113
- 4735 3c12 BF010000 		movl	$1, %edi
- 4735      00
- 4736 3c17 E8000000 		call	KDbgCondToFlag at PLT
- 4736      00
- 4737 3c1c 4889C6   		movq	%rax, %rsi
- 4738 3c1f BF100000 		movl	$16, %edi
- 4738      00
- 4739 3c24 E8000000 		call	KDbgTestModConds at PLT
- 4739      00
- 4740 3c29 84C0     		testb	%al, %al
- 4741 3c2b 745E     		je	.L113
- 4742 3c2d 8B855CDF 		movl	-8356(%rbp), %eax
- 4742      FFFF
- 4743 3c33 89C7     		movl	%eax, %edi
- 4744 3c35 E8C6C3FF 		call	bswap_32
- 4744      FF
- 4745 3c3a 4189C5   		movl	%eax, %r13d
- 4746 3c3d 8B8558DF 		movl	-8360(%rbp), %eax
- 4746      FFFF
- 4747 3c43 89C7     		movl	%eax, %edi
- 4748 3c45 E8B6C3FF 		call	bswap_32
- 4748      FF
- 4749 3c4a 4189C4   		movl	%eax, %r12d
- 4750 3c4d 8B8554DF 		movl	-8364(%rbp), %eax
- 4750      FFFF
- 4751 3c53 89C7     		movl	%eax, %edi
- 4752 3c55 E8A6C3FF 		call	bswap_32
- 4752      FF
- 4753 3c5a 89C3     		movl	%eax, %ebx
- 4754 3c5c 8B8550DF 		movl	-8368(%rbp), %eax
- 4754      FFFF
- 4755 3c62 89C7     		movl	%eax, %edi
- 4756 3c64 E897C3FF 		call	bswap_32
- 4756      FF
- 4757 3c69 4589E9   		movl	%r13d, %r9d
- 4758 3c6c 4589E0   		movl	%r12d, %r8d
- 4759 3c6f 89D9     		movl	%ebx, %ecx
- 4760 3c71 89C2     		movl	%eax, %edx
- 4761 3c73 488D3500 		leaq	.LC4(%rip), %rsi
- 4761      000000
- 4762 3c7a 488D3D00 		leaq	.LC1(%rip), %rdi
- 4762      000000
- 4763 3c81 B8000000 		movl	$0, %eax
- 4763      00
- 4764 3c86 E8000000 		call	KDbgMsg at PLT
- 4764      00
- 4765              	.L113:
- 4766              	.LBE657:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 4767              		.loc 2 1690 0
- 4768 3c8b 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 4768      30D9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 173
-
-
- 4769              	.LBE623:
- 4770              	.LBE622:
-1748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x10,5);
- 4771              		.loc 2 1748 0
- 4772 3c93 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 4772      20E6FFFF 
- 4773 3c9b F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 4773      10E6FFFF 
- 4774 3ca3 F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 4774      C0F2FFFF 
- 4775              	.LBB658:
- 4776              	.LBB659:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4777              		.loc 2 1565 0
- 4778 3cab F30F6F85 		movdqu	-3392(%rbp), %xmm0
- 4778      C0F2FFFF 
- 4779 3cb3 660F7F85 		movdqa	%xmm0, -9888(%rbp)
- 4779      60D9FFFF 
- 4780 3cbb 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 4780      60D9FFFF 
- 4781 3cc3 F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 4781      D0F2FFFF 
- 4782              	.LBB660:
- 4783              	.LBB661:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 4784              		.loc 2 1282 0
- 4785 3ccb F30F6F85 		movdqu	-3376(%rbp), %xmm0
- 4785      D0F2FFFF 
- 4786 3cd3 F30F7F85 		movdqu	%xmm0, -8128(%rbp)
- 4786      40E0FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 4787              		.loc 2 1283 0
- 4788 3cdb 8B8548E0 		movl	-8120(%rbp), %eax
- 4788      FFFF
- 4789 3ce1 89854CE0 		movl	%eax, -8116(%rbp)
- 4789      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 4790              		.loc 2 1284 0
- 4791 3ce7 8B8544E0 		movl	-8124(%rbp), %eax
- 4791      FFFF
- 4792 3ced 898548E0 		movl	%eax, -8120(%rbp)
- 4792      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 4793              		.loc 2 1285 0
- 4794 3cf3 8B8540E0 		movl	-8128(%rbp), %eax
- 4794      FFFF
- 4795 3cf9 898544E0 		movl	%eax, -8124(%rbp)
- 4795      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 4796              		.loc 2 1286 0
- 4797 3cff C78540E0 		movl	$0, -8128(%rbp)
- 4797      FFFF0000 
- 4797      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 4798              		.loc 2 1287 0
- 4799 3d09 F30F6F85 		movdqu	-8128(%rbp), %xmm0
- 4799      40E0FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 174
-
-
- 4800              	.LBE661:
- 4801              	.LBE660:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4802              		.loc 2 1567 0
- 4803 3d11 660F7F85 		movdqa	%xmm0, -9888(%rbp)
- 4803      60D9FFFF 
- 4804 3d19 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 4804      60D9FFFF 
- 4805 3d21 660FEF85 		pxor	-3392(%rbp), %xmm0
- 4805      C0F2FFFF 
- 4806 3d29 F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 4806      C0F2FFFF 
- 4807 3d31 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 4807      60D9FFFF 
- 4808 3d39 F30F7F85 		movdqu	%xmm0, -3360(%rbp)
- 4808      E0F2FFFF 
- 4809              	.LBB662:
- 4810              	.LBB663:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 4811              		.loc 2 1282 0
- 4812 3d41 F30F6F85 		movdqu	-3360(%rbp), %xmm0
- 4812      E0F2FFFF 
- 4813 3d49 F30F7F85 		movdqu	%xmm0, -8112(%rbp)
- 4813      50E0FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 4814              		.loc 2 1283 0
- 4815 3d51 8B8558E0 		movl	-8104(%rbp), %eax
- 4815      FFFF
- 4816 3d57 89855CE0 		movl	%eax, -8100(%rbp)
- 4816      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 4817              		.loc 2 1284 0
- 4818 3d5d 8B8554E0 		movl	-8108(%rbp), %eax
- 4818      FFFF
- 4819 3d63 898558E0 		movl	%eax, -8104(%rbp)
- 4819      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 4820              		.loc 2 1285 0
- 4821 3d69 8B8550E0 		movl	-8112(%rbp), %eax
- 4821      FFFF
- 4822 3d6f 898554E0 		movl	%eax, -8108(%rbp)
- 4822      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 4823              		.loc 2 1286 0
- 4824 3d75 C78550E0 		movl	$0, -8112(%rbp)
- 4824      FFFF0000 
- 4824      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 4825              		.loc 2 1287 0
- 4826 3d7f F30F6F85 		movdqu	-8112(%rbp), %xmm0
- 4826      50E0FFFF 
- 4827              	.LBE663:
- 4828              	.LBE662:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4829              		.loc 2 1568 0
- 4830 3d87 660F7F85 		movdqa	%xmm0, -9888(%rbp)
- 4830      60D9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 175
-
-
- 4831 3d8f 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 4831      60D9FFFF 
- 4832 3d97 660FEF85 		pxor	-3392(%rbp), %xmm0
- 4832      C0F2FFFF 
- 4833 3d9f F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 4833      C0F2FFFF 
- 4834 3da7 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 4834      60D9FFFF 
- 4835 3daf F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 4835      F0F2FFFF 
- 4836              	.LBB664:
- 4837              	.LBB665:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 4838              		.loc 2 1282 0
- 4839 3db7 F30F6F85 		movdqu	-3344(%rbp), %xmm0
- 4839      F0F2FFFF 
- 4840 3dbf F30F7F85 		movdqu	%xmm0, -8096(%rbp)
- 4840      60E0FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 4841              		.loc 2 1283 0
- 4842 3dc7 8B8568E0 		movl	-8088(%rbp), %eax
- 4842      FFFF
- 4843 3dcd 89856CE0 		movl	%eax, -8084(%rbp)
- 4843      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 4844              		.loc 2 1284 0
- 4845 3dd3 8B8564E0 		movl	-8092(%rbp), %eax
- 4845      FFFF
- 4846 3dd9 898568E0 		movl	%eax, -8088(%rbp)
- 4846      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 4847              		.loc 2 1285 0
- 4848 3ddf 8B8560E0 		movl	-8096(%rbp), %eax
- 4848      FFFF
- 4849 3de5 898564E0 		movl	%eax, -8092(%rbp)
- 4849      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 4850              		.loc 2 1286 0
- 4851 3deb C78560E0 		movl	$0, -8096(%rbp)
- 4851      FFFF0000 
- 4851      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 4852              		.loc 2 1287 0
- 4853 3df5 F30F6F85 		movdqu	-8096(%rbp), %xmm0
- 4853      60E0FFFF 
- 4854              	.LBE665:
- 4855              	.LBE664:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4856              		.loc 2 1569 0
- 4857 3dfd 660F7F85 		movdqa	%xmm0, -9888(%rbp)
- 4857      60D9FFFF 
- 4858 3e05 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 4858      60D9FFFF 
- 4859 3e0d 660FEF85 		pxor	-3392(%rbp), %xmm0
- 4859      C0F2FFFF 
- 4860 3e15 F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 4860      C0F2FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 176
-
-
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4861              		.loc 2 1571 0
- 4862 3e1d F30F6F85 		movdqu	-3392(%rbp), %xmm0
- 4862      C0F2FFFF 
- 4863              	.LBE659:
- 4864              	.LBE658:
-1748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x10,5);
- 4865              		.loc 2 1748 0
- 4866 3e25 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 4866      10E6FFFF 
- 4867 3e2d F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 4867      20E6FFFF 
- 4868 3e35 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 4868      10E6FFFF 
- 4869 3e3d 660FEFC1 		pxor	%xmm1, %xmm0
- 4870 3e41 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 4870      10E6FFFF 
- 4871 3e49 488B85B8 		movq	-9544(%rbp), %rax
- 4871      DAFFFF
- 4872 3e50 4883C050 		addq	$80, %rax
- 4873 3e54 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 4873      10E6FFFF 
- 4874 3e5c F30F7F00 		movdqu	%xmm0, (%rax)
- 4875 3e60 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 4875      10E6FFFF 
- 4876 3e68 F30F7F85 		movdqu	%xmm0, -3312(%rbp)
- 4876      10F3FFFF 
- 4877              	.LBB666:
- 4878              	.LBB667:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4879              		.loc 2 1681 0
- 4880 3e70 B8200000 		movl	$32, %eax
- 4880      00
- 4881 3e75 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4881      00000000 
- 4882 3e7d F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 4882      30F3FFFF 
- 4883 3e85 89852CF3 		movl	%eax, -3284(%rbp)
- 4883      FFFF
- 4884              	.LBB668:
- 4885              	.LBB669:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 4886              		.loc 2 522 0
- 4887 3e8b F30F6F85 		movdqu	-3280(%rbp), %xmm0
- 4887      30F3FFFF 
- 4888 3e93 F30F7F85 		movdqu	%xmm0, -8016(%rbp)
- 4888      B0E0FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 4889              		.loc 2 523 0
- 4890 3e9b B8030000 		movl	$3, %eax
- 4890      00
- 4891 3ea0 4898     		cltq
- 4892 3ea2 8B952CF3 		movl	-3284(%rbp), %edx
- 4892      FFFF
- 4893 3ea8 899485B0 		movl	%edx, -8016(%rbp,%rax,4)
- 4893      E0FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 177
-
-
- 4894              		.loc 2 524 0
- 4895 3eaf F30F6F85 		movdqu	-8016(%rbp), %xmm0
- 4895      B0E0FFFF 
- 4896 3eb7 F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 4896      30F3FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4897              		.loc 2 526 0
- 4898 3ebf F30F6F85 		movdqu	-3280(%rbp), %xmm0
- 4898      30F3FFFF 
- 4899              	.LBE669:
- 4900              	.LBE668:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4901              		.loc 2 1681 0
- 4902 3ec7 660F7F85 		movdqa	%xmm0, -9856(%rbp)
- 4902      80D9FFFF 
- 4903 3ecf F30F6F85 		movdqu	-3312(%rbp), %xmm0
- 4903      10F3FFFF 
- 4904 3ed7 F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 4904      40F3FFFF 
- 4905 3edf F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 4905      40F3FFFF 
- 4906 3ee7 F30F7F85 		movdqu	%xmm0, -3232(%rbp)
- 4906      60F3FFFF 
- 4907 3eef 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 4907      000000
- 4908 3ef6 48898558 		movq	%rax, -3240(%rbp)
- 4908      F3FFFF
- 4909              	.LBB670:
- 4910              	.LBB671:
- 4911              	.LBB672:
- 4912              	.LBB673:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 4913              		.loc 2 851 0
- 4914 3efd 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4914      00000000 
- 4915 3f05 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 4915      80F3FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4916              		.loc 2 854 0
- 4917 3f0d 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4917      00000000 
- 4918 3f15 F30F6F8D 		movdqu	-3232(%rbp), %xmm1
- 4918      60F3FFFF 
- 4919 3f1d F30F7F8D 		movdqu	%xmm1, -3120(%rbp)
- 4919      D0F3FFFF 
- 4920 3f25 F30F7F85 		movdqu	%xmm0, -3136(%rbp)
- 4920      C0F3FFFF 
- 4921              	.LBB674:
- 4922              	.LBB675:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4923              		.loc 2 206 0
- 4924 3f2d F30F6F85 		movdqu	-3136(%rbp), %xmm0
- 4924      C0F3FFFF 
- 4925 3f35 F30F6F8D 		movdqu	-3120(%rbp), %xmm1
- 4925      D0F3FFFF 
- 4926 3f3d 660FDBC1 		pand	%xmm1, %xmm0
- 4927              	.LBE675:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 178
-
-
- 4928              	.LBE674:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4929              		.loc 2 854 0
- 4930 3f41 F30F7F85 		movdqu	%xmm0, -3152(%rbp)
- 4930      B0F3FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 4931              		.loc 2 862 0
- 4932 3f49 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 4932      00000000 
- 4933 3f51 F30F6F8D 		movdqu	-3232(%rbp), %xmm1
- 4933      60F3FFFF 
- 4934 3f59 F30F7F8D 		movdqu	%xmm1, -3088(%rbp)
- 4934      F0F3FFFF 
- 4935 3f61 F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 4935      E0F3FFFF 
- 4936              	.LBB676:
- 4937              		.loc 2 2642 0
- 4938 3f69 0FB685F0 		movzbl	-3088(%rbp), %eax
- 4938      F3FFFF
- 4939 3f70 0FB695E0 		movzbl	-3104(%rbp), %edx
- 4939      F3FFFF
- 4940 3f77 0FB6C0   		movzbl	%al, %eax
- 4941 3f7a 6689858E 		movw	%ax, -10354(%rbp)
- 4941      D7FFFF
- 4942 3f81 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4942      D7FFFF
- 4943 3f88 F6F2     		divb	%dl
- 4944 3f8a 4189C7   		movl	%eax, %r15d
- 4945 3f8d 0FB685F1 		movzbl	-3087(%rbp), %eax
- 4945      F3FFFF
- 4946 3f94 0FB695E1 		movzbl	-3103(%rbp), %edx
- 4946      F3FFFF
- 4947 3f9b 0FB6C0   		movzbl	%al, %eax
- 4948 3f9e 6689858E 		movw	%ax, -10354(%rbp)
- 4948      D7FFFF
- 4949 3fa5 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4949      D7FFFF
- 4950 3fac F6F2     		divb	%dl
- 4951 3fae 88859FD9 		movb	%al, -9825(%rbp)
- 4951      FFFF
- 4952 3fb4 0FB685F2 		movzbl	-3086(%rbp), %eax
- 4952      F3FFFF
- 4953 3fbb 0FB695E2 		movzbl	-3102(%rbp), %edx
- 4953      F3FFFF
- 4954 3fc2 0FB6C0   		movzbl	%al, %eax
- 4955 3fc5 6689858E 		movw	%ax, -10354(%rbp)
- 4955      D7FFFF
- 4956 3fcc 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4956      D7FFFF
- 4957 3fd3 F6F2     		divb	%dl
- 4958 3fd5 88859ED9 		movb	%al, -9826(%rbp)
- 4958      FFFF
- 4959 3fdb 0FB685F3 		movzbl	-3085(%rbp), %eax
- 4959      F3FFFF
- 4960 3fe2 0FB695E3 		movzbl	-3101(%rbp), %edx
- 4960      F3FFFF
- 4961 3fe9 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 179
-
-
- 4962 3fec 6689858E 		movw	%ax, -10354(%rbp)
- 4962      D7FFFF
- 4963 3ff3 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4963      D7FFFF
- 4964 3ffa F6F2     		divb	%dl
- 4965 3ffc 88859DD9 		movb	%al, -9827(%rbp)
- 4965      FFFF
- 4966 4002 0FB685F4 		movzbl	-3084(%rbp), %eax
- 4966      F3FFFF
- 4967 4009 0FB695E4 		movzbl	-3100(%rbp), %edx
- 4967      F3FFFF
- 4968 4010 0FB6C0   		movzbl	%al, %eax
- 4969 4013 6689858E 		movw	%ax, -10354(%rbp)
- 4969      D7FFFF
- 4970 401a 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4970      D7FFFF
- 4971 4021 F6F2     		divb	%dl
- 4972 4023 88859CD9 		movb	%al, -9828(%rbp)
- 4972      FFFF
- 4973 4029 0FB685F5 		movzbl	-3083(%rbp), %eax
- 4973      F3FFFF
- 4974 4030 0FB695E5 		movzbl	-3099(%rbp), %edx
- 4974      F3FFFF
- 4975 4037 0FB6C0   		movzbl	%al, %eax
- 4976 403a 6689858E 		movw	%ax, -10354(%rbp)
- 4976      D7FFFF
- 4977 4041 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4977      D7FFFF
- 4978 4048 F6F2     		divb	%dl
- 4979 404a 4189C1   		movl	%eax, %r9d
- 4980 404d 0FB685F6 		movzbl	-3082(%rbp), %eax
- 4980      F3FFFF
- 4981 4054 0FB695E6 		movzbl	-3098(%rbp), %edx
- 4981      F3FFFF
- 4982 405b 0FB6C0   		movzbl	%al, %eax
- 4983 405e 6689858E 		movw	%ax, -10354(%rbp)
- 4983      D7FFFF
- 4984 4065 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4984      D7FFFF
- 4985 406c F6F2     		divb	%dl
- 4986 406e 89C7     		movl	%eax, %edi
- 4987 4070 0FB685F7 		movzbl	-3081(%rbp), %eax
- 4987      F3FFFF
- 4988 4077 0FB695E7 		movzbl	-3097(%rbp), %edx
- 4988      F3FFFF
- 4989 407e 0FB6C0   		movzbl	%al, %eax
- 4990 4081 6689858E 		movw	%ax, -10354(%rbp)
- 4990      D7FFFF
- 4991 4088 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4991      D7FFFF
- 4992 408f F6F2     		divb	%dl
- 4993 4091 89C3     		movl	%eax, %ebx
- 4994 4093 0FB685F8 		movzbl	-3080(%rbp), %eax
- 4994      F3FFFF
- 4995 409a 0FB695E8 		movzbl	-3096(%rbp), %edx
- 4995      F3FFFF
- 4996 40a1 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 180
-
-
- 4997 40a4 6689858E 		movw	%ax, -10354(%rbp)
- 4997      D7FFFF
- 4998 40ab 0FB7858E 		movzwl	-10354(%rbp), %eax
- 4998      D7FFFF
- 4999 40b2 F6F2     		divb	%dl
- 5000 40b4 4189C2   		movl	%eax, %r10d
- 5001 40b7 0FB685F9 		movzbl	-3079(%rbp), %eax
- 5001      F3FFFF
- 5002 40be 0FB695E9 		movzbl	-3095(%rbp), %edx
- 5002      F3FFFF
- 5003 40c5 0FB6C0   		movzbl	%al, %eax
- 5004 40c8 6689858E 		movw	%ax, -10354(%rbp)
- 5004      D7FFFF
- 5005 40cf 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5005      D7FFFF
- 5006 40d6 F6F2     		divb	%dl
- 5007 40d8 4189C3   		movl	%eax, %r11d
- 5008 40db 0FB685FA 		movzbl	-3078(%rbp), %eax
- 5008      F3FFFF
- 5009 40e2 0FB695EA 		movzbl	-3094(%rbp), %edx
- 5009      F3FFFF
- 5010 40e9 0FB6C0   		movzbl	%al, %eax
- 5011 40ec 6689858E 		movw	%ax, -10354(%rbp)
- 5011      D7FFFF
- 5012 40f3 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5012      D7FFFF
- 5013 40fa F6F2     		divb	%dl
- 5014 40fc 4189C4   		movl	%eax, %r12d
- 5015 40ff 0FB685FB 		movzbl	-3077(%rbp), %eax
- 5015      F3FFFF
- 5016 4106 0FB695EB 		movzbl	-3093(%rbp), %edx
- 5016      F3FFFF
- 5017 410d 0FB6C0   		movzbl	%al, %eax
- 5018 4110 6689858E 		movw	%ax, -10354(%rbp)
- 5018      D7FFFF
- 5019 4117 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5019      D7FFFF
- 5020 411e F6F2     		divb	%dl
- 5021 4120 4189C5   		movl	%eax, %r13d
- 5022 4123 0FB685FC 		movzbl	-3076(%rbp), %eax
- 5022      F3FFFF
- 5023 412a 0FB695EC 		movzbl	-3092(%rbp), %edx
- 5023      F3FFFF
- 5024 4131 0FB6C0   		movzbl	%al, %eax
- 5025 4134 6689858E 		movw	%ax, -10354(%rbp)
- 5025      D7FFFF
- 5026 413b 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5026      D7FFFF
- 5027 4142 F6F2     		divb	%dl
- 5028 4144 4189C6   		movl	%eax, %r14d
- 5029 4147 0FB685FD 		movzbl	-3075(%rbp), %eax
- 5029      F3FFFF
- 5030 414e 0FB695ED 		movzbl	-3091(%rbp), %edx
- 5030      F3FFFF
- 5031 4155 0FB6C0   		movzbl	%al, %eax
- 5032 4158 6689858E 		movw	%ax, -10354(%rbp)
- 5032      D7FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 181
-
-
- 5033 415f 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5033      D7FFFF
- 5034 4166 F6F2     		divb	%dl
- 5035 4168 4189C0   		movl	%eax, %r8d
- 5036 416b 0FB685FE 		movzbl	-3074(%rbp), %eax
- 5036      F3FFFF
- 5037 4172 0FB695EE 		movzbl	-3090(%rbp), %edx
- 5037      F3FFFF
- 5038 4179 0FB6C0   		movzbl	%al, %eax
- 5039 417c 6689858E 		movw	%ax, -10354(%rbp)
- 5039      D7FFFF
- 5040 4183 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5040      D7FFFF
- 5041 418a F6F2     		divb	%dl
- 5042 418c 89C6     		movl	%eax, %esi
- 5043 418e 0FB685FF 		movzbl	-3073(%rbp), %eax
- 5043      F3FFFF
- 5044 4195 0FB695EF 		movzbl	-3089(%rbp), %edx
- 5044      F3FFFF
- 5045 419c 0FB6C0   		movzbl	%al, %eax
- 5046 419f 6689858E 		movw	%ax, -10354(%rbp)
- 5046      D7FFFF
- 5047 41a6 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5047      D7FFFF
- 5048 41ad F6F2     		divb	%dl
- 5049 41af 89C1     		movl	%eax, %ecx
- 5050              	.LBB677:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 5051              		.loc 2 346 0
- 5052 41b1 0FB6D3   		movzbl	%bl, %edx
- 5053 41b4 400FB6C7 		movzbl	%dil, %eax
- 5054 41b8 48C1E208 		salq	$8, %rdx
- 5055 41bc 4809C2   		orq	%rax, %rdx
- 5056 41bf 410FB6C1 		movzbl	%r9b, %eax
- 5057 41c3 48C1E208 		salq	$8, %rdx
- 5058 41c7 4809C2   		orq	%rax, %rdx
- 5059 41ca 0FB6859C 		movzbl	-9828(%rbp), %eax
- 5059      D9FFFF
- 5060 41d1 48C1E208 		salq	$8, %rdx
- 5061 41d5 4809C2   		orq	%rax, %rdx
- 5062 41d8 0FB6859D 		movzbl	-9827(%rbp), %eax
- 5062      D9FFFF
- 5063 41df 48C1E208 		salq	$8, %rdx
- 5064 41e3 4809C2   		orq	%rax, %rdx
- 5065 41e6 0FB6859E 		movzbl	-9826(%rbp), %eax
- 5065      D9FFFF
- 5066 41ed 48C1E208 		salq	$8, %rdx
- 5067 41f1 4809C2   		orq	%rax, %rdx
- 5068 41f4 0FB6859F 		movzbl	-9825(%rbp), %eax
- 5068      D9FFFF
- 5069 41fb 48C1E208 		salq	$8, %rdx
- 5070 41ff 4809C2   		orq	%rax, %rdx
- 5071 4202 410FB6C7 		movzbl	%r15b, %eax
- 5072 4206 48C1E208 		salq	$8, %rdx
- 5073 420a 4809C2   		orq	%rax, %rdx
- 5074 420d 0FB6C1   		movzbl	%cl, %eax
- 5075 4210 400FB6CE 		movzbl	%sil, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 182
-
-
- 5076 4214 48C1E008 		salq	$8, %rax
- 5077 4218 4809C8   		orq	%rcx, %rax
- 5078 421b 410FB6C8 		movzbl	%r8b, %ecx
- 5079 421f 48C1E008 		salq	$8, %rax
- 5080 4223 4809C8   		orq	%rcx, %rax
- 5081 4226 410FB6CE 		movzbl	%r14b, %ecx
- 5082 422a 48C1E008 		salq	$8, %rax
- 5083 422e 4809C8   		orq	%rcx, %rax
- 5084 4231 410FB6CD 		movzbl	%r13b, %ecx
- 5085 4235 48C1E008 		salq	$8, %rax
- 5086 4239 4809C8   		orq	%rcx, %rax
- 5087 423c 410FB6CC 		movzbl	%r12b, %ecx
- 5088 4240 48C1E008 		salq	$8, %rax
- 5089 4244 4809C8   		orq	%rcx, %rax
- 5090 4247 410FB6CB 		movzbl	%r11b, %ecx
- 5091 424b 48C1E008 		salq	$8, %rax
- 5092 424f 4809C8   		orq	%rcx, %rax
- 5093 4252 410FB6CA 		movzbl	%r10b, %ecx
- 5094 4256 48C1E008 		salq	$8, %rax
- 5095 425a 4809C8   		orq	%rcx, %rax
- 5096 425d 488995D0 		movq	%rdx, -10288(%rbp)
- 5096      D7FFFF
- 5097 4264 488985D8 		movq	%rax, -10280(%rbp)
- 5097      D7FFFF
- 5098 426b 660F6F85 		movdqa	-10288(%rbp), %xmm0
- 5098      D0D7FFFF 
- 5099              	.LBE677:
- 5100              	.LBE676:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 5101              		.loc 2 862 0
- 5102 4273 F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 5102      A0F3FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 5103              		.loc 2 866 0
- 5104 427b C7857CF3 		movl	$0, -3204(%rbp)
- 5104      FFFF0000 
- 5104      0000
- 5105 4285 E9860200 		jmp	.L114
- 5105      00
- 5106              	.L123:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 5107              		.loc 2 868 0
- 5108 428a 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 5108      00000000 
- 5109 4292 F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 5109      10F4FFFF 
- 5110 429a F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 5110      A0F3FFFF 
- 5111 42a2 F30F7F85 		movdqu	%xmm0, -3072(%rbp)
- 5111      00F4FFFF 
- 5112              	.LBB678:
- 5113              	.LBB679:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 5114              		.loc 2 380 0
- 5115 42aa F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 5115      10F4FFFF 
- 5116 42b2 F30F7F85 		movdqu	%xmm0, -7984(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 183
-
-
- 5116      D0E0FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 5117              		.loc 2 381 0
- 5118 42ba F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 5118      00F4FFFF 
- 5119 42c2 F30F7F85 		movdqu	%xmm0, -8000(%rbp)
- 5119      C0E0FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5120              		.loc 2 383 0
- 5121 42ca C7852CF4 		movl	$0, -3028(%rbp)
- 5121      FFFF0000 
- 5121      0000
- 5122 42d4 EB5C     		jmp	.L115
- 5123              	.L118:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 5124              		.loc 2 385 0
- 5125 42d6 8B852CF4 		movl	-3028(%rbp), %eax
- 5125      FFFF
- 5126 42dc 89C0     		mov	%eax, %eax
- 5127 42de 0FB68405 		movzbl	-8000(%rbp,%rax), %eax
- 5127      C0E0FFFF 
- 5128 42e6 84C0     		testb	%al, %al
- 5129 42e8 7912     		jns	.L116
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 5130              		.loc 2 386 0
- 5131 42ea 8B852CF4 		movl	-3028(%rbp), %eax
- 5131      FFFF
- 5132 42f0 89C0     		mov	%eax, %eax
- 5133 42f2 C68405E0 		movb	$0, -7968(%rbp,%rax)
- 5133      E0FFFF00 
- 5134 42fa EB2F     		jmp	.L117
- 5135              	.L116:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 5136              		.loc 2 388 0
- 5137 42fc 8B8D2CF4 		movl	-3028(%rbp), %ecx
- 5137      FFFF
- 5138 4302 8B852CF4 		movl	-3028(%rbp), %eax
- 5138      FFFF
- 5139 4308 89C0     		mov	%eax, %eax
- 5140 430a 0FB68405 		movzbl	-8000(%rbp,%rax), %eax
- 5140      C0E0FFFF 
- 5141 4312 0FB6C0   		movzbl	%al, %eax
- 5142 4315 83E00F   		andl	$15, %eax
- 5143 4318 4898     		cltq
- 5144 431a 0FB69405 		movzbl	-7984(%rbp,%rax), %edx
- 5144      D0E0FFFF 
- 5145 4322 89C8     		mov	%ecx, %eax
- 5146 4324 889405E0 		movb	%dl, -7968(%rbp,%rax)
- 5146      E0FFFF
- 5147              	.L117:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5148              		.loc 2 383 0
- 5149 432b 83852CF4 		addl	$1, -3028(%rbp)
- 5149      FFFF01
- 5150              	.L115:
- 5151 4332 83BD2CF4 		cmpl	$15, -3028(%rbp)
- 5151      FFFF0F
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 184
-
-
- 5152 4339 769B     		jbe	.L118
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 5153              		.loc 2 391 0
- 5154 433b F30F6F85 		movdqu	-7968(%rbp), %xmm0
- 5154      E0E0FFFF 
- 5155              	.LBE679:
- 5156              	.LBE678:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 5157              		.loc 2 868 0
- 5158 4343 F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 5158      90F3FFFF 
- 5159 434b F30F6F85 		movdqu	-3152(%rbp), %xmm0
- 5159      B0F3FFFF 
- 5160 4353 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 5160      40F4FFFF 
- 5161 435b F30F6F85 		movdqu	-3184(%rbp), %xmm0
- 5161      90F3FFFF 
- 5162 4363 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 5162      30F4FFFF 
- 5163              	.LBB680:
- 5164              	.LBB681:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 5165              		.loc 2 234 0
- 5166 436b F30F6F85 		movdqu	-3024(%rbp), %xmm0
- 5166      30F4FFFF 
- 5167 4373 F30F6F8D 		movdqu	-3008(%rbp), %xmm1
- 5167      40F4FFFF 
- 5168 437b 660FEBC1 		por	%xmm1, %xmm0
- 5169              	.LBE681:
- 5170              	.LBE680:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 5171              		.loc 2 870 0
- 5172 437f F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 5172      90F3FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 5173              		.loc 2 872 0
- 5174 4387 8B857CF3 		mov	-3204(%rbp), %eax
- 5174      FFFF
- 5175 438d 48C1E004 		salq	$4, %rax
- 5176 4391 48038558 		addq	-3240(%rbp), %rax
- 5176      F3FFFF
- 5177 4398 660F6F00 		movdqa	(%rax), %xmm0
- 5178 439c F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 5178      60F4FFFF 
- 5179 43a4 F30F6F85 		movdqu	-3184(%rbp), %xmm0
- 5179      90F3FFFF 
- 5180 43ac F30F7F85 		movdqu	%xmm0, -2992(%rbp)
- 5180      50F4FFFF 
- 5181              	.LBB682:
- 5182              	.LBB683:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 5183              		.loc 2 380 0
- 5184 43b4 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 5184      60F4FFFF 
- 5185 43bc F30F7F85 		movdqu	%xmm0, -7936(%rbp)
- 5185      00E1FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 185
-
-
- 5186              		.loc 2 381 0
- 5187 43c4 F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 5187      50F4FFFF 
- 5188 43cc F30F7F85 		movdqu	%xmm0, -7952(%rbp)
- 5188      F0E0FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5189              		.loc 2 383 0
- 5190 43d4 C7857CF4 		movl	$0, -2948(%rbp)
- 5190      FFFF0000 
- 5190      0000
- 5191 43de EB5C     		jmp	.L119
- 5192              	.L122:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 5193              		.loc 2 385 0
- 5194 43e0 8B857CF4 		movl	-2948(%rbp), %eax
- 5194      FFFF
- 5195 43e6 89C0     		mov	%eax, %eax
- 5196 43e8 0FB68405 		movzbl	-7952(%rbp,%rax), %eax
- 5196      F0E0FFFF 
- 5197 43f0 84C0     		testb	%al, %al
- 5198 43f2 7912     		jns	.L120
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 5199              		.loc 2 386 0
- 5200 43f4 8B857CF4 		movl	-2948(%rbp), %eax
- 5200      FFFF
- 5201 43fa 89C0     		mov	%eax, %eax
- 5202 43fc C6840510 		movb	$0, -7920(%rbp,%rax)
- 5202      E1FFFF00 
- 5203 4404 EB2F     		jmp	.L121
- 5204              	.L120:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 5205              		.loc 2 388 0
- 5206 4406 8B8D7CF4 		movl	-2948(%rbp), %ecx
- 5206      FFFF
- 5207 440c 8B857CF4 		movl	-2948(%rbp), %eax
- 5207      FFFF
- 5208 4412 89C0     		mov	%eax, %eax
- 5209 4414 0FB68405 		movzbl	-7952(%rbp,%rax), %eax
- 5209      F0E0FFFF 
- 5210 441c 0FB6C0   		movzbl	%al, %eax
- 5211 441f 83E00F   		andl	$15, %eax
- 5212 4422 4898     		cltq
- 5213 4424 0FB69405 		movzbl	-7936(%rbp,%rax), %edx
- 5213      00E1FFFF 
- 5214 442c 89C8     		mov	%ecx, %eax
- 5215 442e 88940510 		movb	%dl, -7920(%rbp,%rax)
- 5215      E1FFFF
- 5216              	.L121:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5217              		.loc 2 383 0
- 5218 4435 83857CF4 		addl	$1, -2948(%rbp)
- 5218      FFFF01
- 5219              	.L119:
- 5220 443c 83BD7CF4 		cmpl	$15, -2948(%rbp)
- 5220      FFFF0F
- 5221 4443 769B     		jbe	.L122
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 186
-
-
- 5222              		.loc 2 391 0
- 5223 4445 F30F6F85 		movdqu	-7920(%rbp), %xmm0
- 5223      10E1FFFF 
- 5224              	.LBE683:
- 5225              	.LBE682:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 5226              		.loc 2 872 0
- 5227 444d F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 5227      90F3FFFF 
- 5228 4455 F30F6F85 		movdqu	-3200(%rbp), %xmm0
- 5228      80F3FFFF 
- 5229 445d F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 5229      90F4FFFF 
- 5230 4465 F30F6F85 		movdqu	-3184(%rbp), %xmm0
- 5230      90F3FFFF 
- 5231 446d F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 5231      80F4FFFF 
- 5232              	.LBB684:
- 5233              	.LBB685:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 5234              		.loc 2 234 0
- 5235 4475 F30F6F85 		movdqu	-2944(%rbp), %xmm0
- 5235      80F4FFFF 
- 5236 447d F30F6F8D 		movdqu	-2928(%rbp), %xmm1
- 5236      90F4FFFF 
- 5237 4485 660FEBC1 		por	%xmm1, %xmm0
- 5238              	.LBE685:
- 5239              	.LBE684:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 5240              		.loc 2 874 0
- 5241 4489 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 5241      80F3FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 5242              		.loc 2 876 0
- 5243 4491 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 5243      00000000 
- 5244 4499 F30F6F8D 		movdqu	-3168(%rbp), %xmm1
- 5244      A0F3FFFF 
- 5245 44a1 F30F7F8D 		movdqu	%xmm1, -2896(%rbp)
- 5245      B0F4FFFF 
- 5246 44a9 F30F7F85 		movdqu	%xmm0, -2912(%rbp)
- 5246      A0F4FFFF 
- 5247              	.LBB686:
- 5248              	.LBB687:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 5249              		.loc 2 290 0
- 5250 44b1 F30F6F8D 		movdqu	-2912(%rbp), %xmm1
- 5250      A0F4FFFF 
- 5251 44b9 F30F6F85 		movdqu	-2896(%rbp), %xmm0
- 5251      B0F4FFFF 
- 5252 44c1 660FF8C1 		psubb	%xmm1, %xmm0
- 5253              	.LBE687:
- 5254              	.LBE686:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 5255              		.loc 2 876 0
- 5256 44c5 F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 5256      A0F3FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 187
-
-
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5257              		.loc 2 878 0
- 5258 44cd 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 5258      00000000 
- 5259 44d5 F30F6F8D 		movdqu	-3168(%rbp), %xmm1
- 5259      A0F3FFFF 
- 5260 44dd F30F7F8D 		movdqu	%xmm1, -2864(%rbp)
- 5260      D0F4FFFF 
- 5261 44e5 F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 5261      C0F4FFFF 
- 5262              	.LBB688:
- 5263              	.LBB689:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 5264              		.loc 2 206 0
- 5265 44ed F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 5265      C0F4FFFF 
- 5266 44f5 F30F6F8D 		movdqu	-2864(%rbp), %xmm1
- 5266      D0F4FFFF 
- 5267 44fd 660FDBC1 		pand	%xmm1, %xmm0
- 5268              	.LBE689:
- 5269              	.LBE688:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5270              		.loc 2 878 0
- 5271 4501 F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 5271      A0F3FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 5272              		.loc 2 866 0
- 5273 4509 83857CF3 		addl	$1, -3204(%rbp)
- 5273      FFFF01
- 5274              	.L114:
- 5275 4510 83BD7CF3 		cmpl	$15, -3204(%rbp)
- 5275      FFFF0F
- 5276 4517 0F866DFD 		jbe	.L123
- 5276      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 5277              		.loc 2 882 0
- 5278 451d F30F6F85 		movdqu	-3200(%rbp), %xmm0
- 5278      80F3FFFF 
- 5279              	.LBE673:
- 5280              	.LBE672:
- 5281              	.LBE671:
- 5282              	.LBE670:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 5283              		.loc 2 1682 0
- 5284 4525 660F7F85 		movdqa	%xmm0, -9872(%rbp)
- 5284      70D9FFFF 
- 5285              	.LBB690:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 5286              		.loc 2 1683 0
- 5287 452d 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5287      70D9FFFF 
- 5288 4535 F30F7F85 		movdqu	%xmm0, -8032(%rbp)
- 5288      A0E0FFFF 
- 5289 453d E8000000 		call	KDbgWriterGet at PLT
- 5289      00
- 5290 4542 4885C0   		testq	%rax, %rax
- 5291 4545 7479     		je	.L125
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 188
-
-
- 5292 4547 BF010000 		movl	$1, %edi
- 5292      00
- 5293 454c E8000000 		call	KDbgCondToFlag at PLT
- 5293      00
- 5294 4551 4889C6   		movq	%rax, %rsi
- 5295 4554 BF100000 		movl	$16, %edi
- 5295      00
- 5296 4559 E8000000 		call	KDbgTestModConds at PLT
- 5296      00
- 5297 455e 84C0     		testb	%al, %al
- 5298 4560 745E     		je	.L125
- 5299 4562 8B85ACE0 		movl	-8020(%rbp), %eax
- 5299      FFFF
- 5300 4568 89C7     		movl	%eax, %edi
- 5301 456a E891BAFF 		call	bswap_32
- 5301      FF
- 5302 456f 4189C5   		movl	%eax, %r13d
- 5303 4572 8B85A8E0 		movl	-8024(%rbp), %eax
- 5303      FFFF
- 5304 4578 89C7     		movl	%eax, %edi
- 5305 457a E881BAFF 		call	bswap_32
- 5305      FF
- 5306 457f 4189C4   		movl	%eax, %r12d
- 5307 4582 8B85A4E0 		movl	-8028(%rbp), %eax
- 5307      FFFF
- 5308 4588 89C7     		movl	%eax, %edi
- 5309 458a E871BAFF 		call	bswap_32
- 5309      FF
- 5310 458f 89C3     		movl	%eax, %ebx
- 5311 4591 8B85A0E0 		movl	-8032(%rbp), %eax
- 5311      FFFF
- 5312 4597 89C7     		movl	%eax, %edi
- 5313 4599 E862BAFF 		call	bswap_32
- 5313      FF
- 5314 459e 4589E9   		movl	%r13d, %r9d
- 5315 45a1 4589E0   		movl	%r12d, %r8d
- 5316 45a4 89D9     		movl	%ebx, %ecx
- 5317 45a6 89C2     		movl	%eax, %edx
- 5318 45a8 488D3500 		leaq	.LC0(%rip), %rsi
- 5318      000000
- 5319 45af 488D3D00 		leaq	.LC1(%rip), %rdi
- 5319      000000
- 5320 45b6 B8000000 		movl	$0, %eax
- 5320      00
- 5321 45bb E8000000 		call	KDbgMsg at PLT
- 5321      00
- 5322              	.L125:
- 5323 45c0 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5323      70D9FFFF 
- 5324 45c8 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 5324      E0F4FFFF 
- 5325              	.LBE690:
- 5326              	.LBB691:
- 5327              	.LBB692:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 5328              		.loc 2 667 0
- 5329 45d0 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 189
-
-
- 5329      00000000 
- 5330 45d8 F30F6F8D 		movdqu	-2848(%rbp), %xmm1
- 5330      E0F4FFFF 
- 5331 45e0 F30F7F8D 		movdqu	%xmm1, -2816(%rbp)
- 5331      00F5FFFF 
- 5332 45e8 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 5332      F0F4FFFF 
- 5333              	.LBB693:
- 5334              	.LBB694:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 5335              		.loc 2 380 0
- 5336 45f0 F30F6F85 		movdqu	-2816(%rbp), %xmm0
- 5336      00F5FFFF 
- 5337 45f8 F30F7F85 		movdqu	%xmm0, -7888(%rbp)
- 5337      30E1FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 5338              		.loc 2 381 0
- 5339 4600 F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 5339      F0F4FFFF 
- 5340 4608 F30F7F85 		movdqu	%xmm0, -7904(%rbp)
- 5340      20E1FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5341              		.loc 2 383 0
- 5342 4610 C7851CF5 		movl	$0, -2788(%rbp)
- 5342      FFFF0000 
- 5342      0000
- 5343 461a EB5C     		jmp	.L126
- 5344              	.L129:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 5345              		.loc 2 385 0
- 5346 461c 8B851CF5 		movl	-2788(%rbp), %eax
- 5346      FFFF
- 5347 4622 89C0     		mov	%eax, %eax
- 5348 4624 0FB68405 		movzbl	-7904(%rbp,%rax), %eax
- 5348      20E1FFFF 
- 5349 462c 84C0     		testb	%al, %al
- 5350 462e 7912     		jns	.L127
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 5351              		.loc 2 386 0
- 5352 4630 8B851CF5 		movl	-2788(%rbp), %eax
- 5352      FFFF
- 5353 4636 89C0     		mov	%eax, %eax
- 5354 4638 C6840540 		movb	$0, -7872(%rbp,%rax)
- 5354      E1FFFF00 
- 5355 4640 EB2F     		jmp	.L128
- 5356              	.L127:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 5357              		.loc 2 388 0
- 5358 4642 8B8D1CF5 		movl	-2788(%rbp), %ecx
- 5358      FFFF
- 5359 4648 8B851CF5 		movl	-2788(%rbp), %eax
- 5359      FFFF
- 5360 464e 89C0     		mov	%eax, %eax
- 5361 4650 0FB68405 		movzbl	-7904(%rbp,%rax), %eax
- 5361      20E1FFFF 
- 5362 4658 0FB6C0   		movzbl	%al, %eax
- 5363 465b 83E00F   		andl	$15, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 190
-
-
- 5364 465e 4898     		cltq
- 5365 4660 0FB69405 		movzbl	-7888(%rbp,%rax), %edx
- 5365      30E1FFFF 
- 5366 4668 89C8     		mov	%ecx, %eax
- 5367 466a 88940540 		movb	%dl, -7872(%rbp,%rax)
- 5367      E1FFFF
- 5368              	.L128:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5369              		.loc 2 383 0
- 5370 4671 83851CF5 		addl	$1, -2788(%rbp)
- 5370      FFFF01
- 5371              	.L126:
- 5372 4678 83BD1CF5 		cmpl	$15, -2788(%rbp)
- 5372      FFFF0F
- 5373 467f 769B     		jbe	.L129
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 5374              		.loc 2 391 0
- 5375 4681 F30F6F85 		movdqu	-7872(%rbp), %xmm0
- 5375      40E1FFFF 
- 5376              	.LBE694:
- 5377              	.LBE693:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 5378              		.loc 2 667 0
- 5379 4689 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 5379      E0F4FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5380              		.loc 2 668 0
- 5381 4691 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 5381      E0F4FFFF 
- 5382              	.LBE692:
- 5383              	.LBE691:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 5384              		.loc 2 1684 0
- 5385 4699 660F7F85 		movdqa	%xmm0, -9872(%rbp)
- 5385      70D9FFFF 
- 5386              	.LBB695:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 5387              		.loc 2 1685 0
- 5388 46a1 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5388      70D9FFFF 
- 5389 46a9 F30F7F85 		movdqu	%xmm0, -8048(%rbp)
- 5389      90E0FFFF 
- 5390 46b1 E8000000 		call	KDbgWriterGet at PLT
- 5390      00
- 5391 46b6 4885C0   		testq	%rax, %rax
- 5392 46b9 7479     		je	.L131
- 5393 46bb BF010000 		movl	$1, %edi
- 5393      00
- 5394 46c0 E8000000 		call	KDbgCondToFlag at PLT
- 5394      00
- 5395 46c5 4889C6   		movq	%rax, %rsi
- 5396 46c8 BF100000 		movl	$16, %edi
- 5396      00
- 5397 46cd E8000000 		call	KDbgTestModConds at PLT
- 5397      00
- 5398 46d2 84C0     		testb	%al, %al
- 5399 46d4 745E     		je	.L131
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 191
-
-
- 5400 46d6 8B859CE0 		movl	-8036(%rbp), %eax
- 5400      FFFF
- 5401 46dc 89C7     		movl	%eax, %edi
- 5402 46de E81DB9FF 		call	bswap_32
- 5402      FF
- 5403 46e3 4189C5   		movl	%eax, %r13d
- 5404 46e6 8B8598E0 		movl	-8040(%rbp), %eax
- 5404      FFFF
- 5405 46ec 89C7     		movl	%eax, %edi
- 5406 46ee E80DB9FF 		call	bswap_32
- 5406      FF
- 5407 46f3 4189C4   		movl	%eax, %r12d
- 5408 46f6 8B8594E0 		movl	-8044(%rbp), %eax
- 5408      FFFF
- 5409 46fc 89C7     		movl	%eax, %edi
- 5410 46fe E8FDB8FF 		call	bswap_32
- 5410      FF
- 5411 4703 89C3     		movl	%eax, %ebx
- 5412 4705 8B8590E0 		movl	-8048(%rbp), %eax
- 5412      FFFF
- 5413 470b 89C7     		movl	%eax, %edi
- 5414 470d E8EEB8FF 		call	bswap_32
- 5414      FF
- 5415 4712 4589E9   		movl	%r13d, %r9d
- 5416 4715 4589E0   		movl	%r12d, %r8d
- 5417 4718 89D9     		movl	%ebx, %ecx
- 5418 471a 89C2     		movl	%eax, %edx
- 5419 471c 488D3500 		leaq	.LC2(%rip), %rsi
- 5419      000000
- 5420 4723 488D3D00 		leaq	.LC1(%rip), %rdi
- 5420      000000
- 5421 472a B8000000 		movl	$0, %eax
- 5421      00
- 5422 472f E8000000 		call	KDbgMsg at PLT
- 5422      00
- 5423              	.L131:
- 5424 4734 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5424      70D9FFFF 
- 5425 473c F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 5425      30F5FFFF 
- 5426 4744 660F6F85 		movdqa	-9856(%rbp), %xmm0
- 5426      80D9FFFF 
- 5427 474c F30F7F85 		movdqu	%xmm0, -2784(%rbp)
- 5427      20F5FFFF 
- 5428              	.LBE695:
- 5429              	.LBB696:
- 5430              	.LBB697:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 5431              		.loc 2 178 0
- 5432 4754 F30F6F85 		movdqu	-2784(%rbp), %xmm0
- 5432      20F5FFFF 
- 5433 475c F30F6F8D 		movdqu	-2768(%rbp), %xmm1
- 5433      30F5FFFF 
- 5434 4764 660FEFC1 		pxor	%xmm1, %xmm0
- 5435              	.LBE697:
- 5436              	.LBE696:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 192
-
-
- 5437              		.loc 2 1686 0
- 5438 4768 660F7F85 		movdqa	%xmm0, -9872(%rbp)
- 5438      70D9FFFF 
- 5439              	.LBB698:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 5440              		.loc 2 1687 0
- 5441 4770 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5441      70D9FFFF 
- 5442 4778 F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 5442      80E0FFFF 
- 5443 4780 E8000000 		call	KDbgWriterGet at PLT
- 5443      00
- 5444 4785 4885C0   		testq	%rax, %rax
- 5445 4788 7479     		je	.L133
- 5446 478a BF010000 		movl	$1, %edi
- 5446      00
- 5447 478f E8000000 		call	KDbgCondToFlag at PLT
- 5447      00
- 5448 4794 4889C6   		movq	%rax, %rsi
- 5449 4797 BF100000 		movl	$16, %edi
- 5449      00
- 5450 479c E8000000 		call	KDbgTestModConds at PLT
- 5450      00
- 5451 47a1 84C0     		testb	%al, %al
- 5452 47a3 745E     		je	.L133
- 5453 47a5 8B858CE0 		movl	-8052(%rbp), %eax
- 5453      FFFF
- 5454 47ab 89C7     		movl	%eax, %edi
- 5455 47ad E84EB8FF 		call	bswap_32
- 5455      FF
- 5456 47b2 4189C5   		movl	%eax, %r13d
- 5457 47b5 8B8588E0 		movl	-8056(%rbp), %eax
- 5457      FFFF
- 5458 47bb 89C7     		movl	%eax, %edi
- 5459 47bd E83EB8FF 		call	bswap_32
- 5459      FF
- 5460 47c2 4189C4   		movl	%eax, %r12d
- 5461 47c5 8B8584E0 		movl	-8060(%rbp), %eax
- 5461      FFFF
- 5462 47cb 89C7     		movl	%eax, %edi
- 5463 47cd E82EB8FF 		call	bswap_32
- 5463      FF
- 5464 47d2 89C3     		movl	%eax, %ebx
- 5465 47d4 8B8580E0 		movl	-8064(%rbp), %eax
- 5465      FFFF
- 5466 47da 89C7     		movl	%eax, %edi
- 5467 47dc E81FB8FF 		call	bswap_32
- 5467      FF
- 5468 47e1 4589E9   		movl	%r13d, %r9d
- 5469 47e4 4589E0   		movl	%r12d, %r8d
- 5470 47e7 89D9     		movl	%ebx, %ecx
- 5471 47e9 89C2     		movl	%eax, %edx
- 5472 47eb 488D3500 		leaq	.LC3(%rip), %rsi
- 5472      000000
- 5473 47f2 488D3D00 		leaq	.LC1(%rip), %rdi
- 5473      000000
- 5474 47f9 B8000000 		movl	$0, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 193
-
-
- 5474      00
- 5475 47fe E8000000 		call	KDbgMsg at PLT
- 5475      00
- 5476              	.L133:
- 5477 4803 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5477      70D9FFFF 
- 5478 480b F30F7F85 		movdqu	%xmm0, -2752(%rbp)
- 5478      40F5FFFF 
- 5479              	.LBE698:
- 5480              	.LBB699:
- 5481              	.LBB700:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 5482              		.loc 2 1357 0
- 5483 4813 F30F6F85 		movdqu	-2752(%rbp), %xmm0
- 5483      40F5FFFF 
- 5484 481b F30F7F85 		movdqu	%xmm0, -7856(%rbp)
- 5484      50E1FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 5485              		.loc 2 1358 0
- 5486 4823 8B855CE1 		movl	-7844(%rbp), %eax
- 5486      FFFF
- 5487 4829 898558E1 		movl	%eax, -7848(%rbp)
- 5487      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 5488              		.loc 2 1359 0
- 5489 482f 8B855CE1 		movl	-7844(%rbp), %eax
- 5489      FFFF
- 5490 4835 898554E1 		movl	%eax, -7852(%rbp)
- 5490      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 5491              		.loc 2 1360 0
- 5492 483b 8B855CE1 		movl	-7844(%rbp), %eax
- 5492      FFFF
- 5493 4841 898550E1 		movl	%eax, -7856(%rbp)
- 5493      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 5494              		.loc 2 1361 0
- 5495 4847 F30F6F85 		movdqu	-7856(%rbp), %xmm0
- 5495      50E1FFFF 
- 5496              	.LBE700:
- 5497              	.LBE699:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 5498              		.loc 2 1688 0
- 5499 484f 660F7F85 		movdqa	%xmm0, -9872(%rbp)
- 5499      70D9FFFF 
- 5500              	.LBB701:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 5501              		.loc 2 1689 0
- 5502 4857 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5502      70D9FFFF 
- 5503 485f F30F7F85 		movdqu	%xmm0, -8080(%rbp)
- 5503      70E0FFFF 
- 5504 4867 E8000000 		call	KDbgWriterGet at PLT
- 5504      00
- 5505 486c 4885C0   		testq	%rax, %rax
- 5506 486f 7479     		je	.L135
- 5507 4871 BF010000 		movl	$1, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 194
-
-
- 5507      00
- 5508 4876 E8000000 		call	KDbgCondToFlag at PLT
- 5508      00
- 5509 487b 4889C6   		movq	%rax, %rsi
- 5510 487e BF100000 		movl	$16, %edi
- 5510      00
- 5511 4883 E8000000 		call	KDbgTestModConds at PLT
- 5511      00
- 5512 4888 84C0     		testb	%al, %al
- 5513 488a 745E     		je	.L135
- 5514 488c 8B857CE0 		movl	-8068(%rbp), %eax
- 5514      FFFF
- 5515 4892 89C7     		movl	%eax, %edi
- 5516 4894 E867B7FF 		call	bswap_32
- 5516      FF
- 5517 4899 4189C5   		movl	%eax, %r13d
- 5518 489c 8B8578E0 		movl	-8072(%rbp), %eax
- 5518      FFFF
- 5519 48a2 89C7     		movl	%eax, %edi
- 5520 48a4 E857B7FF 		call	bswap_32
- 5520      FF
- 5521 48a9 4189C4   		movl	%eax, %r12d
- 5522 48ac 8B8574E0 		movl	-8076(%rbp), %eax
- 5522      FFFF
- 5523 48b2 89C7     		movl	%eax, %edi
- 5524 48b4 E847B7FF 		call	bswap_32
- 5524      FF
- 5525 48b9 89C3     		movl	%eax, %ebx
- 5526 48bb 8B8570E0 		movl	-8080(%rbp), %eax
- 5526      FFFF
- 5527 48c1 89C7     		movl	%eax, %edi
- 5528 48c3 E838B7FF 		call	bswap_32
- 5528      FF
- 5529 48c8 4589E9   		movl	%r13d, %r9d
- 5530 48cb 4589E0   		movl	%r12d, %r8d
- 5531 48ce 89D9     		movl	%ebx, %ecx
- 5532 48d0 89C2     		movl	%eax, %edx
- 5533 48d2 488D3500 		leaq	.LC4(%rip), %rsi
- 5533      000000
- 5534 48d9 488D3D00 		leaq	.LC1(%rip), %rdi
- 5534      000000
- 5535 48e0 B8000000 		movl	$0, %eax
- 5535      00
- 5536 48e5 E8000000 		call	KDbgMsg at PLT
- 5536      00
- 5537              	.L135:
- 5538              	.LBE701:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 5539              		.loc 2 1690 0
- 5540 48ea 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 5540      70D9FFFF 
- 5541              	.LBE667:
- 5542              	.LBE666:
-1749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x20,6);
- 5543              		.loc 2 1749 0
- 5544 48f2 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 5544      20E6FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 195
-
-
- 5545 48fa F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 5545      10E6FFFF 
- 5546 4902 F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 5546      50F5FFFF 
- 5547              	.LBB702:
- 5548              	.LBB703:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5549              		.loc 2 1565 0
- 5550 490a F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 5550      50F5FFFF 
- 5551 4912 660F7F85 		movdqa	%xmm0, -9824(%rbp)
- 5551      A0D9FFFF 
- 5552 491a 660F6F85 		movdqa	-9824(%rbp), %xmm0
- 5552      A0D9FFFF 
- 5553 4922 F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 5553      60F5FFFF 
- 5554              	.LBB704:
- 5555              	.LBB705:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 5556              		.loc 2 1282 0
- 5557 492a F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 5557      60F5FFFF 
- 5558 4932 F30F7F85 		movdqu	%xmm0, -7840(%rbp)
- 5558      60E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 5559              		.loc 2 1283 0
- 5560 493a 8B8568E1 		movl	-7832(%rbp), %eax
- 5560      FFFF
- 5561 4940 89856CE1 		movl	%eax, -7828(%rbp)
- 5561      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 5562              		.loc 2 1284 0
- 5563 4946 8B8564E1 		movl	-7836(%rbp), %eax
- 5563      FFFF
- 5564 494c 898568E1 		movl	%eax, -7832(%rbp)
- 5564      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 5565              		.loc 2 1285 0
- 5566 4952 8B8560E1 		movl	-7840(%rbp), %eax
- 5566      FFFF
- 5567 4958 898564E1 		movl	%eax, -7836(%rbp)
- 5567      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 5568              		.loc 2 1286 0
- 5569 495e C78560E1 		movl	$0, -7840(%rbp)
- 5569      FFFF0000 
- 5569      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 5570              		.loc 2 1287 0
- 5571 4968 F30F6F85 		movdqu	-7840(%rbp), %xmm0
- 5571      60E1FFFF 
- 5572              	.LBE705:
- 5573              	.LBE704:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5574              		.loc 2 1567 0
- 5575 4970 660F7F85 		movdqa	%xmm0, -9824(%rbp)
- 5575      A0D9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 196
-
-
- 5576 4978 660F6F85 		movdqa	-9824(%rbp), %xmm0
- 5576      A0D9FFFF 
- 5577 4980 660FEF85 		pxor	-2736(%rbp), %xmm0
- 5577      50F5FFFF 
- 5578 4988 F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 5578      50F5FFFF 
- 5579 4990 660F6F85 		movdqa	-9824(%rbp), %xmm0
- 5579      A0D9FFFF 
- 5580 4998 F30F7F85 		movdqu	%xmm0, -2704(%rbp)
- 5580      70F5FFFF 
- 5581              	.LBB706:
- 5582              	.LBB707:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 5583              		.loc 2 1282 0
- 5584 49a0 F30F6F85 		movdqu	-2704(%rbp), %xmm0
- 5584      70F5FFFF 
- 5585 49a8 F30F7F85 		movdqu	%xmm0, -7824(%rbp)
- 5585      70E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 5586              		.loc 2 1283 0
- 5587 49b0 8B8578E1 		movl	-7816(%rbp), %eax
- 5587      FFFF
- 5588 49b6 89857CE1 		movl	%eax, -7812(%rbp)
- 5588      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 5589              		.loc 2 1284 0
- 5590 49bc 8B8574E1 		movl	-7820(%rbp), %eax
- 5590      FFFF
- 5591 49c2 898578E1 		movl	%eax, -7816(%rbp)
- 5591      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 5592              		.loc 2 1285 0
- 5593 49c8 8B8570E1 		movl	-7824(%rbp), %eax
- 5593      FFFF
- 5594 49ce 898574E1 		movl	%eax, -7820(%rbp)
- 5594      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 5595              		.loc 2 1286 0
- 5596 49d4 C78570E1 		movl	$0, -7824(%rbp)
- 5596      FFFF0000 
- 5596      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 5597              		.loc 2 1287 0
- 5598 49de F30F6F85 		movdqu	-7824(%rbp), %xmm0
- 5598      70E1FFFF 
- 5599              	.LBE707:
- 5600              	.LBE706:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5601              		.loc 2 1568 0
- 5602 49e6 660F7F85 		movdqa	%xmm0, -9824(%rbp)
- 5602      A0D9FFFF 
- 5603 49ee 660F6F85 		movdqa	-9824(%rbp), %xmm0
- 5603      A0D9FFFF 
- 5604 49f6 660FEF85 		pxor	-2736(%rbp), %xmm0
- 5604      50F5FFFF 
- 5605 49fe F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 5605      50F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 197
-
-
- 5606 4a06 660F6F85 		movdqa	-9824(%rbp), %xmm0
- 5606      A0D9FFFF 
- 5607 4a0e F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 5607      80F5FFFF 
- 5608              	.LBB708:
- 5609              	.LBB709:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 5610              		.loc 2 1282 0
- 5611 4a16 F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 5611      80F5FFFF 
- 5612 4a1e F30F7F85 		movdqu	%xmm0, -7808(%rbp)
- 5612      80E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 5613              		.loc 2 1283 0
- 5614 4a26 8B8588E1 		movl	-7800(%rbp), %eax
- 5614      FFFF
- 5615 4a2c 89858CE1 		movl	%eax, -7796(%rbp)
- 5615      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 5616              		.loc 2 1284 0
- 5617 4a32 8B8584E1 		movl	-7804(%rbp), %eax
- 5617      FFFF
- 5618 4a38 898588E1 		movl	%eax, -7800(%rbp)
- 5618      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 5619              		.loc 2 1285 0
- 5620 4a3e 8B8580E1 		movl	-7808(%rbp), %eax
- 5620      FFFF
- 5621 4a44 898584E1 		movl	%eax, -7804(%rbp)
- 5621      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 5622              		.loc 2 1286 0
- 5623 4a4a C78580E1 		movl	$0, -7808(%rbp)
- 5623      FFFF0000 
- 5623      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 5624              		.loc 2 1287 0
- 5625 4a54 F30F6F85 		movdqu	-7808(%rbp), %xmm0
- 5625      80E1FFFF 
- 5626              	.LBE709:
- 5627              	.LBE708:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5628              		.loc 2 1569 0
- 5629 4a5c 660F7F85 		movdqa	%xmm0, -9824(%rbp)
- 5629      A0D9FFFF 
- 5630 4a64 660F6F85 		movdqa	-9824(%rbp), %xmm0
- 5630      A0D9FFFF 
- 5631 4a6c 660FEF85 		pxor	-2736(%rbp), %xmm0
- 5631      50F5FFFF 
- 5632 4a74 F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 5632      50F5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5633              		.loc 2 1571 0
- 5634 4a7c F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 5634      50F5FFFF 
- 5635              	.LBE703:
- 5636              	.LBE702:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 198
-
-
-1749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x20,6);
- 5637              		.loc 2 1749 0
- 5638 4a84 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 5638      10E6FFFF 
- 5639 4a8c F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 5639      20E6FFFF 
- 5640 4a94 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 5640      10E6FFFF 
- 5641 4a9c 660FEFC1 		pxor	%xmm1, %xmm0
- 5642 4aa0 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 5642      10E6FFFF 
- 5643 4aa8 488B85B8 		movq	-9544(%rbp), %rax
- 5643      DAFFFF
- 5644 4aaf 4883C060 		addq	$96, %rax
- 5645 4ab3 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 5645      10E6FFFF 
- 5646 4abb F30F7F00 		movdqu	%xmm0, (%rax)
- 5647 4abf F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 5647      10E6FFFF 
- 5648 4ac7 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 5648      A0F5FFFF 
- 5649              	.LBB710:
- 5650              	.LBB711:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 5651              		.loc 2 1681 0
- 5652 4acf B8400000 		movl	$64, %eax
- 5652      00
- 5653 4ad4 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 5653      00000000 
- 5654 4adc F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 5654      C0F5FFFF 
- 5655 4ae4 8985BCF5 		movl	%eax, -2628(%rbp)
- 5655      FFFF
- 5656              	.LBB712:
- 5657              	.LBB713:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 5658              		.loc 2 522 0
- 5659 4aea F30F6F85 		movdqu	-2624(%rbp), %xmm0
- 5659      C0F5FFFF 
- 5660 4af2 F30F7F85 		movdqu	%xmm0, -7728(%rbp)
- 5660      D0E1FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 5661              		.loc 2 523 0
- 5662 4afa B8030000 		movl	$3, %eax
- 5662      00
- 5663 4aff 4898     		cltq
- 5664 4b01 8B95BCF5 		movl	-2628(%rbp), %edx
- 5664      FFFF
- 5665 4b07 899485D0 		movl	%edx, -7728(%rbp,%rax,4)
- 5665      E1FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 5666              		.loc 2 524 0
- 5667 4b0e F30F6F85 		movdqu	-7728(%rbp), %xmm0
- 5667      D0E1FFFF 
- 5668 4b16 F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 5668      C0F5FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 199
-
-
- 5669              		.loc 2 526 0
- 5670 4b1e F30F6F85 		movdqu	-2624(%rbp), %xmm0
- 5670      C0F5FFFF 
- 5671              	.LBE713:
- 5672              	.LBE712:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 5673              		.loc 2 1681 0
- 5674 4b26 660F7F85 		movdqa	%xmm0, -9792(%rbp)
- 5674      C0D9FFFF 
- 5675 4b2e F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 5675      A0F5FFFF 
- 5676 4b36 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 5676      D0F5FFFF 
- 5677 4b3e F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 5677      D0F5FFFF 
- 5678 4b46 F30F7F85 		movdqu	%xmm0, -2576(%rbp)
- 5678      F0F5FFFF 
- 5679 4b4e 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 5679      000000
- 5680 4b55 488985E8 		movq	%rax, -2584(%rbp)
- 5680      F5FFFF
- 5681              	.LBB714:
- 5682              	.LBB715:
- 5683              	.LBB716:
- 5684              	.LBB717:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 5685              		.loc 2 851 0
- 5686 4b5c 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 5686      00000000 
- 5687 4b64 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 5687      10F6FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 5688              		.loc 2 854 0
- 5689 4b6c 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 5689      00000000 
- 5690 4b74 F30F6F8D 		movdqu	-2576(%rbp), %xmm1
- 5690      F0F5FFFF 
- 5691 4b7c F30F7F8D 		movdqu	%xmm1, -2464(%rbp)
- 5691      60F6FFFF 
- 5692 4b84 F30F7F85 		movdqu	%xmm0, -2480(%rbp)
- 5692      50F6FFFF 
- 5693              	.LBB718:
- 5694              	.LBB719:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 5695              		.loc 2 206 0
- 5696 4b8c F30F6F85 		movdqu	-2480(%rbp), %xmm0
- 5696      50F6FFFF 
- 5697 4b94 F30F6F8D 		movdqu	-2464(%rbp), %xmm1
- 5697      60F6FFFF 
- 5698 4b9c 660FDBC1 		pand	%xmm1, %xmm0
- 5699              	.LBE719:
- 5700              	.LBE718:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 5701              		.loc 2 854 0
- 5702 4ba0 F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 5702      40F6FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 200
-
-
- 5703              		.loc 2 862 0
- 5704 4ba8 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 5704      00000000 
- 5705 4bb0 F30F6F8D 		movdqu	-2576(%rbp), %xmm1
- 5705      F0F5FFFF 
- 5706 4bb8 F30F7F8D 		movdqu	%xmm1, -2432(%rbp)
- 5706      80F6FFFF 
- 5707 4bc0 F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 5707      70F6FFFF 
- 5708              	.LBB720:
- 5709              		.loc 2 2642 0
- 5710 4bc8 0FB68580 		movzbl	-2432(%rbp), %eax
- 5710      F6FFFF
- 5711 4bcf 0FB69570 		movzbl	-2448(%rbp), %edx
- 5711      F6FFFF
- 5712 4bd6 0FB6C0   		movzbl	%al, %eax
- 5713 4bd9 6689858E 		movw	%ax, -10354(%rbp)
- 5713      D7FFFF
- 5714 4be0 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5714      D7FFFF
- 5715 4be7 F6F2     		divb	%dl
- 5716 4be9 4189C7   		movl	%eax, %r15d
- 5717 4bec 0FB68581 		movzbl	-2431(%rbp), %eax
- 5717      F6FFFF
- 5718 4bf3 0FB69571 		movzbl	-2447(%rbp), %edx
- 5718      F6FFFF
- 5719 4bfa 0FB6C0   		movzbl	%al, %eax
- 5720 4bfd 6689858E 		movw	%ax, -10354(%rbp)
- 5720      D7FFFF
- 5721 4c04 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5721      D7FFFF
- 5722 4c0b F6F2     		divb	%dl
- 5723 4c0d 8885DFD9 		movb	%al, -9761(%rbp)
- 5723      FFFF
- 5724 4c13 0FB68582 		movzbl	-2430(%rbp), %eax
- 5724      F6FFFF
- 5725 4c1a 0FB69572 		movzbl	-2446(%rbp), %edx
- 5725      F6FFFF
- 5726 4c21 0FB6C0   		movzbl	%al, %eax
- 5727 4c24 6689858E 		movw	%ax, -10354(%rbp)
- 5727      D7FFFF
- 5728 4c2b 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5728      D7FFFF
- 5729 4c32 F6F2     		divb	%dl
- 5730 4c34 8885DED9 		movb	%al, -9762(%rbp)
- 5730      FFFF
- 5731 4c3a 0FB68583 		movzbl	-2429(%rbp), %eax
- 5731      F6FFFF
- 5732 4c41 0FB69573 		movzbl	-2445(%rbp), %edx
- 5732      F6FFFF
- 5733 4c48 0FB6C0   		movzbl	%al, %eax
- 5734 4c4b 6689858E 		movw	%ax, -10354(%rbp)
- 5734      D7FFFF
- 5735 4c52 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5735      D7FFFF
- 5736 4c59 F6F2     		divb	%dl
- 5737 4c5b 8885DDD9 		movb	%al, -9763(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 201
-
-
- 5737      FFFF
- 5738 4c61 0FB68584 		movzbl	-2428(%rbp), %eax
- 5738      F6FFFF
- 5739 4c68 0FB69574 		movzbl	-2444(%rbp), %edx
- 5739      F6FFFF
- 5740 4c6f 0FB6C0   		movzbl	%al, %eax
- 5741 4c72 6689858E 		movw	%ax, -10354(%rbp)
- 5741      D7FFFF
- 5742 4c79 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5742      D7FFFF
- 5743 4c80 F6F2     		divb	%dl
- 5744 4c82 8885DCD9 		movb	%al, -9764(%rbp)
- 5744      FFFF
- 5745 4c88 0FB68585 		movzbl	-2427(%rbp), %eax
- 5745      F6FFFF
- 5746 4c8f 0FB69575 		movzbl	-2443(%rbp), %edx
- 5746      F6FFFF
- 5747 4c96 0FB6C0   		movzbl	%al, %eax
- 5748 4c99 6689858E 		movw	%ax, -10354(%rbp)
- 5748      D7FFFF
- 5749 4ca0 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5749      D7FFFF
- 5750 4ca7 F6F2     		divb	%dl
- 5751 4ca9 4189C1   		movl	%eax, %r9d
- 5752 4cac 0FB68586 		movzbl	-2426(%rbp), %eax
- 5752      F6FFFF
- 5753 4cb3 0FB69576 		movzbl	-2442(%rbp), %edx
- 5753      F6FFFF
- 5754 4cba 0FB6C0   		movzbl	%al, %eax
- 5755 4cbd 6689858E 		movw	%ax, -10354(%rbp)
- 5755      D7FFFF
- 5756 4cc4 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5756      D7FFFF
- 5757 4ccb F6F2     		divb	%dl
- 5758 4ccd 89C7     		movl	%eax, %edi
- 5759 4ccf 0FB68587 		movzbl	-2425(%rbp), %eax
- 5759      F6FFFF
- 5760 4cd6 0FB69577 		movzbl	-2441(%rbp), %edx
- 5760      F6FFFF
- 5761 4cdd 0FB6C0   		movzbl	%al, %eax
- 5762 4ce0 6689858E 		movw	%ax, -10354(%rbp)
- 5762      D7FFFF
- 5763 4ce7 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5763      D7FFFF
- 5764 4cee F6F2     		divb	%dl
- 5765 4cf0 89C3     		movl	%eax, %ebx
- 5766 4cf2 0FB68588 		movzbl	-2424(%rbp), %eax
- 5766      F6FFFF
- 5767 4cf9 0FB69578 		movzbl	-2440(%rbp), %edx
- 5767      F6FFFF
- 5768 4d00 0FB6C0   		movzbl	%al, %eax
- 5769 4d03 6689858E 		movw	%ax, -10354(%rbp)
- 5769      D7FFFF
- 5770 4d0a 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5770      D7FFFF
- 5771 4d11 F6F2     		divb	%dl
- 5772 4d13 4189C2   		movl	%eax, %r10d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 202
-
-
- 5773 4d16 0FB68589 		movzbl	-2423(%rbp), %eax
- 5773      F6FFFF
- 5774 4d1d 0FB69579 		movzbl	-2439(%rbp), %edx
- 5774      F6FFFF
- 5775 4d24 0FB6C0   		movzbl	%al, %eax
- 5776 4d27 6689858E 		movw	%ax, -10354(%rbp)
- 5776      D7FFFF
- 5777 4d2e 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5777      D7FFFF
- 5778 4d35 F6F2     		divb	%dl
- 5779 4d37 4189C3   		movl	%eax, %r11d
- 5780 4d3a 0FB6858A 		movzbl	-2422(%rbp), %eax
- 5780      F6FFFF
- 5781 4d41 0FB6957A 		movzbl	-2438(%rbp), %edx
- 5781      F6FFFF
- 5782 4d48 0FB6C0   		movzbl	%al, %eax
- 5783 4d4b 6689858E 		movw	%ax, -10354(%rbp)
- 5783      D7FFFF
- 5784 4d52 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5784      D7FFFF
- 5785 4d59 F6F2     		divb	%dl
- 5786 4d5b 4189C4   		movl	%eax, %r12d
- 5787 4d5e 0FB6858B 		movzbl	-2421(%rbp), %eax
- 5787      F6FFFF
- 5788 4d65 0FB6957B 		movzbl	-2437(%rbp), %edx
- 5788      F6FFFF
- 5789 4d6c 0FB6C0   		movzbl	%al, %eax
- 5790 4d6f 6689858E 		movw	%ax, -10354(%rbp)
- 5790      D7FFFF
- 5791 4d76 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5791      D7FFFF
- 5792 4d7d F6F2     		divb	%dl
- 5793 4d7f 4189C5   		movl	%eax, %r13d
- 5794 4d82 0FB6858C 		movzbl	-2420(%rbp), %eax
- 5794      F6FFFF
- 5795 4d89 0FB6957C 		movzbl	-2436(%rbp), %edx
- 5795      F6FFFF
- 5796 4d90 0FB6C0   		movzbl	%al, %eax
- 5797 4d93 6689858E 		movw	%ax, -10354(%rbp)
- 5797      D7FFFF
- 5798 4d9a 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5798      D7FFFF
- 5799 4da1 F6F2     		divb	%dl
- 5800 4da3 4189C6   		movl	%eax, %r14d
- 5801 4da6 0FB6858D 		movzbl	-2419(%rbp), %eax
- 5801      F6FFFF
- 5802 4dad 0FB6957D 		movzbl	-2435(%rbp), %edx
- 5802      F6FFFF
- 5803 4db4 0FB6C0   		movzbl	%al, %eax
- 5804 4db7 6689858E 		movw	%ax, -10354(%rbp)
- 5804      D7FFFF
- 5805 4dbe 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5805      D7FFFF
- 5806 4dc5 F6F2     		divb	%dl
- 5807 4dc7 4189C0   		movl	%eax, %r8d
- 5808 4dca 0FB6858E 		movzbl	-2418(%rbp), %eax
- 5808      F6FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 203
-
-
- 5809 4dd1 0FB6957E 		movzbl	-2434(%rbp), %edx
- 5809      F6FFFF
- 5810 4dd8 0FB6C0   		movzbl	%al, %eax
- 5811 4ddb 6689858E 		movw	%ax, -10354(%rbp)
- 5811      D7FFFF
- 5812 4de2 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5812      D7FFFF
- 5813 4de9 F6F2     		divb	%dl
- 5814 4deb 89C6     		movl	%eax, %esi
- 5815 4ded 0FB6858F 		movzbl	-2417(%rbp), %eax
- 5815      F6FFFF
- 5816 4df4 0FB6957F 		movzbl	-2433(%rbp), %edx
- 5816      F6FFFF
- 5817 4dfb 0FB6C0   		movzbl	%al, %eax
- 5818 4dfe 6689858E 		movw	%ax, -10354(%rbp)
- 5818      D7FFFF
- 5819 4e05 0FB7858E 		movzwl	-10354(%rbp), %eax
- 5819      D7FFFF
- 5820 4e0c F6F2     		divb	%dl
- 5821 4e0e 89C1     		movl	%eax, %ecx
- 5822              	.LBB721:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 5823              		.loc 2 346 0
- 5824 4e10 0FB6D3   		movzbl	%bl, %edx
- 5825 4e13 400FB6C7 		movzbl	%dil, %eax
- 5826 4e17 48C1E208 		salq	$8, %rdx
- 5827 4e1b 4809C2   		orq	%rax, %rdx
- 5828 4e1e 410FB6C1 		movzbl	%r9b, %eax
- 5829 4e22 48C1E208 		salq	$8, %rdx
- 5830 4e26 4809C2   		orq	%rax, %rdx
- 5831 4e29 0FB685DC 		movzbl	-9764(%rbp), %eax
- 5831      D9FFFF
- 5832 4e30 48C1E208 		salq	$8, %rdx
- 5833 4e34 4809C2   		orq	%rax, %rdx
- 5834 4e37 0FB685DD 		movzbl	-9763(%rbp), %eax
- 5834      D9FFFF
- 5835 4e3e 48C1E208 		salq	$8, %rdx
- 5836 4e42 4809C2   		orq	%rax, %rdx
- 5837 4e45 0FB685DE 		movzbl	-9762(%rbp), %eax
- 5837      D9FFFF
- 5838 4e4c 48C1E208 		salq	$8, %rdx
- 5839 4e50 4809C2   		orq	%rax, %rdx
- 5840 4e53 0FB685DF 		movzbl	-9761(%rbp), %eax
- 5840      D9FFFF
- 5841 4e5a 48C1E208 		salq	$8, %rdx
- 5842 4e5e 4809C2   		orq	%rax, %rdx
- 5843 4e61 410FB6C7 		movzbl	%r15b, %eax
- 5844 4e65 48C1E208 		salq	$8, %rdx
- 5845 4e69 4809C2   		orq	%rax, %rdx
- 5846 4e6c 0FB6C1   		movzbl	%cl, %eax
- 5847 4e6f 400FB6CE 		movzbl	%sil, %ecx
- 5848 4e73 48C1E008 		salq	$8, %rax
- 5849 4e77 4809C8   		orq	%rcx, %rax
- 5850 4e7a 410FB6C8 		movzbl	%r8b, %ecx
- 5851 4e7e 48C1E008 		salq	$8, %rax
- 5852 4e82 4809C8   		orq	%rcx, %rax
- 5853 4e85 410FB6CE 		movzbl	%r14b, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 204
-
-
- 5854 4e89 48C1E008 		salq	$8, %rax
- 5855 4e8d 4809C8   		orq	%rcx, %rax
- 5856 4e90 410FB6CD 		movzbl	%r13b, %ecx
- 5857 4e94 48C1E008 		salq	$8, %rax
- 5858 4e98 4809C8   		orq	%rcx, %rax
- 5859 4e9b 410FB6CC 		movzbl	%r12b, %ecx
- 5860 4e9f 48C1E008 		salq	$8, %rax
- 5861 4ea3 4809C8   		orq	%rcx, %rax
- 5862 4ea6 410FB6CB 		movzbl	%r11b, %ecx
- 5863 4eaa 48C1E008 		salq	$8, %rax
- 5864 4eae 4809C8   		orq	%rcx, %rax
- 5865 4eb1 410FB6CA 		movzbl	%r10b, %ecx
- 5866 4eb5 48C1E008 		salq	$8, %rax
- 5867 4eb9 4809C8   		orq	%rcx, %rax
- 5868 4ebc 488995C0 		movq	%rdx, -10304(%rbp)
- 5868      D7FFFF
- 5869 4ec3 488985C8 		movq	%rax, -10296(%rbp)
- 5869      D7FFFF
- 5870 4eca 660F6F85 		movdqa	-10304(%rbp), %xmm0
- 5870      C0D7FFFF 
- 5871              	.LBE721:
- 5872              	.LBE720:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 5873              		.loc 2 862 0
- 5874 4ed2 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 5874      30F6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 5875              		.loc 2 866 0
- 5876 4eda C7850CF6 		movl	$0, -2548(%rbp)
- 5876      FFFF0000 
- 5876      0000
- 5877 4ee4 E9860200 		jmp	.L136
- 5877      00
- 5878              	.L145:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 5879              		.loc 2 868 0
- 5880 4ee9 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 5880      00000000 
- 5881 4ef1 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 5881      A0F6FFFF 
- 5882 4ef9 F30F6F85 		movdqu	-2512(%rbp), %xmm0
- 5882      30F6FFFF 
- 5883 4f01 F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 5883      90F6FFFF 
- 5884              	.LBB722:
- 5885              	.LBB723:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 5886              		.loc 2 380 0
- 5887 4f09 F30F6F85 		movdqu	-2400(%rbp), %xmm0
- 5887      A0F6FFFF 
- 5888 4f11 F30F7F85 		movdqu	%xmm0, -7696(%rbp)
- 5888      F0E1FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 5889              		.loc 2 381 0
- 5890 4f19 F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 5890      90F6FFFF 
- 5891 4f21 F30F7F85 		movdqu	%xmm0, -7712(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 205
-
-
- 5891      E0E1FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5892              		.loc 2 383 0
- 5893 4f29 C785BCF6 		movl	$0, -2372(%rbp)
- 5893      FFFF0000 
- 5893      0000
- 5894 4f33 EB5C     		jmp	.L137
- 5895              	.L140:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 5896              		.loc 2 385 0
- 5897 4f35 8B85BCF6 		movl	-2372(%rbp), %eax
- 5897      FFFF
- 5898 4f3b 89C0     		mov	%eax, %eax
- 5899 4f3d 0FB68405 		movzbl	-7712(%rbp,%rax), %eax
- 5899      E0E1FFFF 
- 5900 4f45 84C0     		testb	%al, %al
- 5901 4f47 7912     		jns	.L138
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 5902              		.loc 2 386 0
- 5903 4f49 8B85BCF6 		movl	-2372(%rbp), %eax
- 5903      FFFF
- 5904 4f4f 89C0     		mov	%eax, %eax
- 5905 4f51 C6840500 		movb	$0, -7680(%rbp,%rax)
- 5905      E2FFFF00 
- 5906 4f59 EB2F     		jmp	.L139
- 5907              	.L138:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 5908              		.loc 2 388 0
- 5909 4f5b 8B8DBCF6 		movl	-2372(%rbp), %ecx
- 5909      FFFF
- 5910 4f61 8B85BCF6 		movl	-2372(%rbp), %eax
- 5910      FFFF
- 5911 4f67 89C0     		mov	%eax, %eax
- 5912 4f69 0FB68405 		movzbl	-7712(%rbp,%rax), %eax
- 5912      E0E1FFFF 
- 5913 4f71 0FB6C0   		movzbl	%al, %eax
- 5914 4f74 83E00F   		andl	$15, %eax
- 5915 4f77 4898     		cltq
- 5916 4f79 0FB69405 		movzbl	-7696(%rbp,%rax), %edx
- 5916      F0E1FFFF 
- 5917 4f81 89C8     		mov	%ecx, %eax
- 5918 4f83 88940500 		movb	%dl, -7680(%rbp,%rax)
- 5918      E2FFFF
- 5919              	.L139:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5920              		.loc 2 383 0
- 5921 4f8a 8385BCF6 		addl	$1, -2372(%rbp)
- 5921      FFFF01
- 5922              	.L137:
- 5923 4f91 83BDBCF6 		cmpl	$15, -2372(%rbp)
- 5923      FFFF0F
- 5924 4f98 769B     		jbe	.L140
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 5925              		.loc 2 391 0
- 5926 4f9a F30F6F85 		movdqu	-7680(%rbp), %xmm0
- 5926      00E2FFFF 
- 5927              	.LBE723:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 206
-
-
- 5928              	.LBE722:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 5929              		.loc 2 868 0
- 5930 4fa2 F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 5930      20F6FFFF 
- 5931 4faa F30F6F85 		movdqu	-2496(%rbp), %xmm0
- 5931      40F6FFFF 
- 5932 4fb2 F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 5932      D0F6FFFF 
- 5933 4fba F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 5933      20F6FFFF 
- 5934 4fc2 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 5934      C0F6FFFF 
- 5935              	.LBB724:
- 5936              	.LBB725:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 5937              		.loc 2 234 0
- 5938 4fca F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 5938      C0F6FFFF 
- 5939 4fd2 F30F6F8D 		movdqu	-2352(%rbp), %xmm1
- 5939      D0F6FFFF 
- 5940 4fda 660FEBC1 		por	%xmm1, %xmm0
- 5941              	.LBE725:
- 5942              	.LBE724:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 5943              		.loc 2 870 0
- 5944 4fde F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 5944      20F6FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 5945              		.loc 2 872 0
- 5946 4fe6 8B850CF6 		mov	-2548(%rbp), %eax
- 5946      FFFF
- 5947 4fec 48C1E004 		salq	$4, %rax
- 5948 4ff0 480385E8 		addq	-2584(%rbp), %rax
- 5948      F5FFFF
- 5949 4ff7 660F6F00 		movdqa	(%rax), %xmm0
- 5950 4ffb F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 5950      F0F6FFFF 
- 5951 5003 F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 5951      20F6FFFF 
- 5952 500b F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 5952      E0F6FFFF 
- 5953              	.LBB726:
- 5954              	.LBB727:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 5955              		.loc 2 380 0
- 5956 5013 F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 5956      F0F6FFFF 
- 5957 501b F30F7F85 		movdqu	%xmm0, -7648(%rbp)
- 5957      20E2FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 5958              		.loc 2 381 0
- 5959 5023 F30F6F85 		movdqu	-2336(%rbp), %xmm0
- 5959      E0F6FFFF 
- 5960 502b F30F7F85 		movdqu	%xmm0, -7664(%rbp)
- 5960      10E2FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 207
-
-
- 5961              		.loc 2 383 0
- 5962 5033 C7850CF7 		movl	$0, -2292(%rbp)
- 5962      FFFF0000 
- 5962      0000
- 5963 503d EB5C     		jmp	.L141
- 5964              	.L144:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 5965              		.loc 2 385 0
- 5966 503f 8B850CF7 		movl	-2292(%rbp), %eax
- 5966      FFFF
- 5967 5045 89C0     		mov	%eax, %eax
- 5968 5047 0FB68405 		movzbl	-7664(%rbp,%rax), %eax
- 5968      10E2FFFF 
- 5969 504f 84C0     		testb	%al, %al
- 5970 5051 7912     		jns	.L142
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 5971              		.loc 2 386 0
- 5972 5053 8B850CF7 		movl	-2292(%rbp), %eax
- 5972      FFFF
- 5973 5059 89C0     		mov	%eax, %eax
- 5974 505b C6840530 		movb	$0, -7632(%rbp,%rax)
- 5974      E2FFFF00 
- 5975 5063 EB2F     		jmp	.L143
- 5976              	.L142:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 5977              		.loc 2 388 0
- 5978 5065 8B8D0CF7 		movl	-2292(%rbp), %ecx
- 5978      FFFF
- 5979 506b 8B850CF7 		movl	-2292(%rbp), %eax
- 5979      FFFF
- 5980 5071 89C0     		mov	%eax, %eax
- 5981 5073 0FB68405 		movzbl	-7664(%rbp,%rax), %eax
- 5981      10E2FFFF 
- 5982 507b 0FB6C0   		movzbl	%al, %eax
- 5983 507e 83E00F   		andl	$15, %eax
- 5984 5081 4898     		cltq
- 5985 5083 0FB69405 		movzbl	-7648(%rbp,%rax), %edx
- 5985      20E2FFFF 
- 5986 508b 89C8     		mov	%ecx, %eax
- 5987 508d 88940530 		movb	%dl, -7632(%rbp,%rax)
- 5987      E2FFFF
- 5988              	.L143:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 5989              		.loc 2 383 0
- 5990 5094 83850CF7 		addl	$1, -2292(%rbp)
- 5990      FFFF01
- 5991              	.L141:
- 5992 509b 83BD0CF7 		cmpl	$15, -2292(%rbp)
- 5992      FFFF0F
- 5993 50a2 769B     		jbe	.L144
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 5994              		.loc 2 391 0
- 5995 50a4 F30F6F85 		movdqu	-7632(%rbp), %xmm0
- 5995      30E2FFFF 
- 5996              	.LBE727:
- 5997              	.LBE726:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 208
-
-
- 5998              		.loc 2 872 0
- 5999 50ac F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 5999      20F6FFFF 
- 6000 50b4 F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 6000      10F6FFFF 
- 6001 50bc F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 6001      20F7FFFF 
- 6002 50c4 F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 6002      20F6FFFF 
- 6003 50cc F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 6003      10F7FFFF 
- 6004              	.LBB728:
- 6005              	.LBB729:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 6006              		.loc 2 234 0
- 6007 50d4 F30F6F85 		movdqu	-2288(%rbp), %xmm0
- 6007      10F7FFFF 
- 6008 50dc F30F6F8D 		movdqu	-2272(%rbp), %xmm1
- 6008      20F7FFFF 
- 6009 50e4 660FEBC1 		por	%xmm1, %xmm0
- 6010              	.LBE729:
- 6011              	.LBE728:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 6012              		.loc 2 874 0
- 6013 50e8 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 6013      10F6FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 6014              		.loc 2 876 0
- 6015 50f0 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 6015      00000000 
- 6016 50f8 F30F6F8D 		movdqu	-2512(%rbp), %xmm1
- 6016      30F6FFFF 
- 6017 5100 F30F7F8D 		movdqu	%xmm1, -2240(%rbp)
- 6017      40F7FFFF 
- 6018 5108 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 6018      30F7FFFF 
- 6019              	.LBB730:
- 6020              	.LBB731:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 6021              		.loc 2 290 0
- 6022 5110 F30F6F8D 		movdqu	-2256(%rbp), %xmm1
- 6022      30F7FFFF 
- 6023 5118 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 6023      40F7FFFF 
- 6024 5120 660FF8C1 		psubb	%xmm1, %xmm0
- 6025              	.LBE731:
- 6026              	.LBE730:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 6027              		.loc 2 876 0
- 6028 5124 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 6028      30F6FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 6029              		.loc 2 878 0
- 6030 512c 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 6030      00000000 
- 6031 5134 F30F6F8D 		movdqu	-2512(%rbp), %xmm1
- 6031      30F6FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 209
-
-
- 6032 513c F30F7F8D 		movdqu	%xmm1, -2208(%rbp)
- 6032      60F7FFFF 
- 6033 5144 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 6033      50F7FFFF 
- 6034              	.LBB732:
- 6035              	.LBB733:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 6036              		.loc 2 206 0
- 6037 514c F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 6037      50F7FFFF 
- 6038 5154 F30F6F8D 		movdqu	-2208(%rbp), %xmm1
- 6038      60F7FFFF 
- 6039 515c 660FDBC1 		pand	%xmm1, %xmm0
- 6040              	.LBE733:
- 6041              	.LBE732:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 6042              		.loc 2 878 0
- 6043 5160 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 6043      30F6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 6044              		.loc 2 866 0
- 6045 5168 83850CF6 		addl	$1, -2548(%rbp)
- 6045      FFFF01
- 6046              	.L136:
- 6047 516f 83BD0CF6 		cmpl	$15, -2548(%rbp)
- 6047      FFFF0F
- 6048 5176 0F866DFD 		jbe	.L145
- 6048      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 6049              		.loc 2 882 0
- 6050 517c F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 6050      10F6FFFF 
- 6051              	.LBE717:
- 6052              	.LBE716:
- 6053              	.LBE715:
- 6054              	.LBE714:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 6055              		.loc 2 1682 0
- 6056 5184 660F7F85 		movdqa	%xmm0, -9808(%rbp)
- 6056      B0D9FFFF 
- 6057              	.LBB734:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 6058              		.loc 2 1683 0
- 6059 518c 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6059      B0D9FFFF 
- 6060 5194 F30F7F85 		movdqu	%xmm0, -7744(%rbp)
- 6060      C0E1FFFF 
- 6061 519c E8000000 		call	KDbgWriterGet at PLT
- 6061      00
- 6062 51a1 4885C0   		testq	%rax, %rax
- 6063 51a4 7479     		je	.L147
- 6064 51a6 BF010000 		movl	$1, %edi
- 6064      00
- 6065 51ab E8000000 		call	KDbgCondToFlag at PLT
- 6065      00
- 6066 51b0 4889C6   		movq	%rax, %rsi
- 6067 51b3 BF100000 		movl	$16, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 210
-
-
- 6067      00
- 6068 51b8 E8000000 		call	KDbgTestModConds at PLT
- 6068      00
- 6069 51bd 84C0     		testb	%al, %al
- 6070 51bf 745E     		je	.L147
- 6071 51c1 8B85CCE1 		movl	-7732(%rbp), %eax
- 6071      FFFF
- 6072 51c7 89C7     		movl	%eax, %edi
- 6073 51c9 E832AEFF 		call	bswap_32
- 6073      FF
- 6074 51ce 4189C5   		movl	%eax, %r13d
- 6075 51d1 8B85C8E1 		movl	-7736(%rbp), %eax
- 6075      FFFF
- 6076 51d7 89C7     		movl	%eax, %edi
- 6077 51d9 E822AEFF 		call	bswap_32
- 6077      FF
- 6078 51de 4189C4   		movl	%eax, %r12d
- 6079 51e1 8B85C4E1 		movl	-7740(%rbp), %eax
- 6079      FFFF
- 6080 51e7 89C7     		movl	%eax, %edi
- 6081 51e9 E812AEFF 		call	bswap_32
- 6081      FF
- 6082 51ee 89C3     		movl	%eax, %ebx
- 6083 51f0 8B85C0E1 		movl	-7744(%rbp), %eax
- 6083      FFFF
- 6084 51f6 89C7     		movl	%eax, %edi
- 6085 51f8 E803AEFF 		call	bswap_32
- 6085      FF
- 6086 51fd 4589E9   		movl	%r13d, %r9d
- 6087 5200 4589E0   		movl	%r12d, %r8d
- 6088 5203 89D9     		movl	%ebx, %ecx
- 6089 5205 89C2     		movl	%eax, %edx
- 6090 5207 488D3500 		leaq	.LC0(%rip), %rsi
- 6090      000000
- 6091 520e 488D3D00 		leaq	.LC1(%rip), %rdi
- 6091      000000
- 6092 5215 B8000000 		movl	$0, %eax
- 6092      00
- 6093 521a E8000000 		call	KDbgMsg at PLT
- 6093      00
- 6094              	.L147:
- 6095 521f 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6095      B0D9FFFF 
- 6096 5227 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 6096      70F7FFFF 
- 6097              	.LBE734:
- 6098              	.LBB735:
- 6099              	.LBB736:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 6100              		.loc 2 667 0
- 6101 522f 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 6101      00000000 
- 6102 5237 F30F6F8D 		movdqu	-2192(%rbp), %xmm1
- 6102      70F7FFFF 
- 6103 523f F30F7F8D 		movdqu	%xmm1, -2160(%rbp)
- 6103      90F7FFFF 
- 6104 5247 F30F7F85 		movdqu	%xmm0, -2176(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 211
-
-
- 6104      80F7FFFF 
- 6105              	.LBB737:
- 6106              	.LBB738:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 6107              		.loc 2 380 0
- 6108 524f F30F6F85 		movdqu	-2160(%rbp), %xmm0
- 6108      90F7FFFF 
- 6109 5257 F30F7F85 		movdqu	%xmm0, -7600(%rbp)
- 6109      50E2FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 6110              		.loc 2 381 0
- 6111 525f F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 6111      80F7FFFF 
- 6112 5267 F30F7F85 		movdqu	%xmm0, -7616(%rbp)
- 6112      40E2FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6113              		.loc 2 383 0
- 6114 526f C785ACF7 		movl	$0, -2132(%rbp)
- 6114      FFFF0000 
- 6114      0000
- 6115 5279 EB5C     		jmp	.L148
- 6116              	.L151:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 6117              		.loc 2 385 0
- 6118 527b 8B85ACF7 		movl	-2132(%rbp), %eax
- 6118      FFFF
- 6119 5281 89C0     		mov	%eax, %eax
- 6120 5283 0FB68405 		movzbl	-7616(%rbp,%rax), %eax
- 6120      40E2FFFF 
- 6121 528b 84C0     		testb	%al, %al
- 6122 528d 7912     		jns	.L149
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 6123              		.loc 2 386 0
- 6124 528f 8B85ACF7 		movl	-2132(%rbp), %eax
- 6124      FFFF
- 6125 5295 89C0     		mov	%eax, %eax
- 6126 5297 C6840560 		movb	$0, -7584(%rbp,%rax)
- 6126      E2FFFF00 
- 6127 529f EB2F     		jmp	.L150
- 6128              	.L149:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 6129              		.loc 2 388 0
- 6130 52a1 8B8DACF7 		movl	-2132(%rbp), %ecx
- 6130      FFFF
- 6131 52a7 8B85ACF7 		movl	-2132(%rbp), %eax
- 6131      FFFF
- 6132 52ad 89C0     		mov	%eax, %eax
- 6133 52af 0FB68405 		movzbl	-7616(%rbp,%rax), %eax
- 6133      40E2FFFF 
- 6134 52b7 0FB6C0   		movzbl	%al, %eax
- 6135 52ba 83E00F   		andl	$15, %eax
- 6136 52bd 4898     		cltq
- 6137 52bf 0FB69405 		movzbl	-7600(%rbp,%rax), %edx
- 6137      50E2FFFF 
- 6138 52c7 89C8     		mov	%ecx, %eax
- 6139 52c9 88940560 		movb	%dl, -7584(%rbp,%rax)
- 6139      E2FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 212
-
-
- 6140              	.L150:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6141              		.loc 2 383 0
- 6142 52d0 8385ACF7 		addl	$1, -2132(%rbp)
- 6142      FFFF01
- 6143              	.L148:
- 6144 52d7 83BDACF7 		cmpl	$15, -2132(%rbp)
- 6144      FFFF0F
- 6145 52de 769B     		jbe	.L151
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 6146              		.loc 2 391 0
- 6147 52e0 F30F6F85 		movdqu	-7584(%rbp), %xmm0
- 6147      60E2FFFF 
- 6148              	.LBE738:
- 6149              	.LBE737:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 6150              		.loc 2 667 0
- 6151 52e8 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 6151      70F7FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6152              		.loc 2 668 0
- 6153 52f0 F30F6F85 		movdqu	-2192(%rbp), %xmm0
- 6153      70F7FFFF 
- 6154              	.LBE736:
- 6155              	.LBE735:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 6156              		.loc 2 1684 0
- 6157 52f8 660F7F85 		movdqa	%xmm0, -9808(%rbp)
- 6157      B0D9FFFF 
- 6158              	.LBB739:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 6159              		.loc 2 1685 0
- 6160 5300 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6160      B0D9FFFF 
- 6161 5308 F30F7F85 		movdqu	%xmm0, -7760(%rbp)
- 6161      B0E1FFFF 
- 6162 5310 E8000000 		call	KDbgWriterGet at PLT
- 6162      00
- 6163 5315 4885C0   		testq	%rax, %rax
- 6164 5318 7479     		je	.L153
- 6165 531a BF010000 		movl	$1, %edi
- 6165      00
- 6166 531f E8000000 		call	KDbgCondToFlag at PLT
- 6166      00
- 6167 5324 4889C6   		movq	%rax, %rsi
- 6168 5327 BF100000 		movl	$16, %edi
- 6168      00
- 6169 532c E8000000 		call	KDbgTestModConds at PLT
- 6169      00
- 6170 5331 84C0     		testb	%al, %al
- 6171 5333 745E     		je	.L153
- 6172 5335 8B85BCE1 		movl	-7748(%rbp), %eax
- 6172      FFFF
- 6173 533b 89C7     		movl	%eax, %edi
- 6174 533d E8BEACFF 		call	bswap_32
- 6174      FF
- 6175 5342 4189C5   		movl	%eax, %r13d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 213
-
-
- 6176 5345 8B85B8E1 		movl	-7752(%rbp), %eax
- 6176      FFFF
- 6177 534b 89C7     		movl	%eax, %edi
- 6178 534d E8AEACFF 		call	bswap_32
- 6178      FF
- 6179 5352 4189C4   		movl	%eax, %r12d
- 6180 5355 8B85B4E1 		movl	-7756(%rbp), %eax
- 6180      FFFF
- 6181 535b 89C7     		movl	%eax, %edi
- 6182 535d E89EACFF 		call	bswap_32
- 6182      FF
- 6183 5362 89C3     		movl	%eax, %ebx
- 6184 5364 8B85B0E1 		movl	-7760(%rbp), %eax
- 6184      FFFF
- 6185 536a 89C7     		movl	%eax, %edi
- 6186 536c E88FACFF 		call	bswap_32
- 6186      FF
- 6187 5371 4589E9   		movl	%r13d, %r9d
- 6188 5374 4589E0   		movl	%r12d, %r8d
- 6189 5377 89D9     		movl	%ebx, %ecx
- 6190 5379 89C2     		movl	%eax, %edx
- 6191 537b 488D3500 		leaq	.LC2(%rip), %rsi
- 6191      000000
- 6192 5382 488D3D00 		leaq	.LC1(%rip), %rdi
- 6192      000000
- 6193 5389 B8000000 		movl	$0, %eax
- 6193      00
- 6194 538e E8000000 		call	KDbgMsg at PLT
- 6194      00
- 6195              	.L153:
- 6196 5393 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6196      B0D9FFFF 
- 6197 539b F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 6197      C0F7FFFF 
- 6198 53a3 660F6F85 		movdqa	-9792(%rbp), %xmm0
- 6198      C0D9FFFF 
- 6199 53ab F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 6199      B0F7FFFF 
- 6200              	.LBE739:
- 6201              	.LBB740:
- 6202              	.LBB741:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6203              		.loc 2 178 0
- 6204 53b3 F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 6204      B0F7FFFF 
- 6205 53bb F30F6F8D 		movdqu	-2112(%rbp), %xmm1
- 6205      C0F7FFFF 
- 6206 53c3 660FEFC1 		pxor	%xmm1, %xmm0
- 6207              	.LBE741:
- 6208              	.LBE740:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 6209              		.loc 2 1686 0
- 6210 53c7 660F7F85 		movdqa	%xmm0, -9808(%rbp)
- 6210      B0D9FFFF 
- 6211              	.LBB742:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 6212              		.loc 2 1687 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 214
-
-
- 6213 53cf 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6213      B0D9FFFF 
- 6214 53d7 F30F7F85 		movdqu	%xmm0, -7776(%rbp)
- 6214      A0E1FFFF 
- 6215 53df E8000000 		call	KDbgWriterGet at PLT
- 6215      00
- 6216 53e4 4885C0   		testq	%rax, %rax
- 6217 53e7 7479     		je	.L155
- 6218 53e9 BF010000 		movl	$1, %edi
- 6218      00
- 6219 53ee E8000000 		call	KDbgCondToFlag at PLT
- 6219      00
- 6220 53f3 4889C6   		movq	%rax, %rsi
- 6221 53f6 BF100000 		movl	$16, %edi
- 6221      00
- 6222 53fb E8000000 		call	KDbgTestModConds at PLT
- 6222      00
- 6223 5400 84C0     		testb	%al, %al
- 6224 5402 745E     		je	.L155
- 6225 5404 8B85ACE1 		movl	-7764(%rbp), %eax
- 6225      FFFF
- 6226 540a 89C7     		movl	%eax, %edi
- 6227 540c E8EFABFF 		call	bswap_32
- 6227      FF
- 6228 5411 4189C5   		movl	%eax, %r13d
- 6229 5414 8B85A8E1 		movl	-7768(%rbp), %eax
- 6229      FFFF
- 6230 541a 89C7     		movl	%eax, %edi
- 6231 541c E8DFABFF 		call	bswap_32
- 6231      FF
- 6232 5421 4189C4   		movl	%eax, %r12d
- 6233 5424 8B85A4E1 		movl	-7772(%rbp), %eax
- 6233      FFFF
- 6234 542a 89C7     		movl	%eax, %edi
- 6235 542c E8CFABFF 		call	bswap_32
- 6235      FF
- 6236 5431 89C3     		movl	%eax, %ebx
- 6237 5433 8B85A0E1 		movl	-7776(%rbp), %eax
- 6237      FFFF
- 6238 5439 89C7     		movl	%eax, %edi
- 6239 543b E8C0ABFF 		call	bswap_32
- 6239      FF
- 6240 5440 4589E9   		movl	%r13d, %r9d
- 6241 5443 4589E0   		movl	%r12d, %r8d
- 6242 5446 89D9     		movl	%ebx, %ecx
- 6243 5448 89C2     		movl	%eax, %edx
- 6244 544a 488D3500 		leaq	.LC3(%rip), %rsi
- 6244      000000
- 6245 5451 488D3D00 		leaq	.LC1(%rip), %rdi
- 6245      000000
- 6246 5458 B8000000 		movl	$0, %eax
- 6246      00
- 6247 545d E8000000 		call	KDbgMsg at PLT
- 6247      00
- 6248              	.L155:
- 6249 5462 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6249      B0D9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 215
-
-
- 6250 546a F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 6250      D0F7FFFF 
- 6251              	.LBE742:
- 6252              	.LBB743:
- 6253              	.LBB744:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 6254              		.loc 2 1357 0
- 6255 5472 F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 6255      D0F7FFFF 
- 6256 547a F30F7F85 		movdqu	%xmm0, -7568(%rbp)
- 6256      70E2FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 6257              		.loc 2 1358 0
- 6258 5482 8B857CE2 		movl	-7556(%rbp), %eax
- 6258      FFFF
- 6259 5488 898578E2 		movl	%eax, -7560(%rbp)
- 6259      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 6260              		.loc 2 1359 0
- 6261 548e 8B857CE2 		movl	-7556(%rbp), %eax
- 6261      FFFF
- 6262 5494 898574E2 		movl	%eax, -7564(%rbp)
- 6262      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 6263              		.loc 2 1360 0
- 6264 549a 8B857CE2 		movl	-7556(%rbp), %eax
- 6264      FFFF
- 6265 54a0 898570E2 		movl	%eax, -7568(%rbp)
- 6265      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 6266              		.loc 2 1361 0
- 6267 54a6 F30F6F85 		movdqu	-7568(%rbp), %xmm0
- 6267      70E2FFFF 
- 6268              	.LBE744:
- 6269              	.LBE743:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 6270              		.loc 2 1688 0
- 6271 54ae 660F7F85 		movdqa	%xmm0, -9808(%rbp)
- 6271      B0D9FFFF 
- 6272              	.LBB745:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 6273              		.loc 2 1689 0
- 6274 54b6 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6274      B0D9FFFF 
- 6275 54be F30F7F85 		movdqu	%xmm0, -7792(%rbp)
- 6275      90E1FFFF 
- 6276 54c6 E8000000 		call	KDbgWriterGet at PLT
- 6276      00
- 6277 54cb 4885C0   		testq	%rax, %rax
- 6278 54ce 7479     		je	.L157
- 6279 54d0 BF010000 		movl	$1, %edi
- 6279      00
- 6280 54d5 E8000000 		call	KDbgCondToFlag at PLT
- 6280      00
- 6281 54da 4889C6   		movq	%rax, %rsi
- 6282 54dd BF100000 		movl	$16, %edi
- 6282      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 216
-
-
- 6283 54e2 E8000000 		call	KDbgTestModConds at PLT
- 6283      00
- 6284 54e7 84C0     		testb	%al, %al
- 6285 54e9 745E     		je	.L157
- 6286 54eb 8B859CE1 		movl	-7780(%rbp), %eax
- 6286      FFFF
- 6287 54f1 89C7     		movl	%eax, %edi
- 6288 54f3 E808ABFF 		call	bswap_32
- 6288      FF
- 6289 54f8 4189C5   		movl	%eax, %r13d
- 6290 54fb 8B8598E1 		movl	-7784(%rbp), %eax
- 6290      FFFF
- 6291 5501 89C7     		movl	%eax, %edi
- 6292 5503 E8F8AAFF 		call	bswap_32
- 6292      FF
- 6293 5508 4189C4   		movl	%eax, %r12d
- 6294 550b 8B8594E1 		movl	-7788(%rbp), %eax
- 6294      FFFF
- 6295 5511 89C7     		movl	%eax, %edi
- 6296 5513 E8E8AAFF 		call	bswap_32
- 6296      FF
- 6297 5518 89C3     		movl	%eax, %ebx
- 6298 551a 8B8590E1 		movl	-7792(%rbp), %eax
- 6298      FFFF
- 6299 5520 89C7     		movl	%eax, %edi
- 6300 5522 E8D9AAFF 		call	bswap_32
- 6300      FF
- 6301 5527 4589E9   		movl	%r13d, %r9d
- 6302 552a 4589E0   		movl	%r12d, %r8d
- 6303 552d 89D9     		movl	%ebx, %ecx
- 6304 552f 89C2     		movl	%eax, %edx
- 6305 5531 488D3500 		leaq	.LC4(%rip), %rsi
- 6305      000000
- 6306 5538 488D3D00 		leaq	.LC1(%rip), %rdi
- 6306      000000
- 6307 553f B8000000 		movl	$0, %eax
- 6307      00
- 6308 5544 E8000000 		call	KDbgMsg at PLT
- 6308      00
- 6309              	.L157:
- 6310              	.LBE745:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 6311              		.loc 2 1690 0
- 6312 5549 660F6F85 		movdqa	-9808(%rbp), %xmm0
- 6312      B0D9FFFF 
- 6313              	.LBE711:
- 6314              	.LBE710:
-1750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x40,7);
- 6315              		.loc 2 1750 0
- 6316 5551 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 6316      20E6FFFF 
- 6317 5559 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 6317      10E6FFFF 
- 6318 5561 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 6318      E0F7FFFF 
- 6319              	.LBB746:
- 6320              	.LBB747:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 217
-
-
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6321              		.loc 2 1565 0
- 6322 5569 F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 6322      E0F7FFFF 
- 6323 5571 660F7F85 		movdqa	%xmm0, -9760(%rbp)
- 6323      E0D9FFFF 
- 6324 5579 660F6F85 		movdqa	-9760(%rbp), %xmm0
- 6324      E0D9FFFF 
- 6325 5581 F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 6325      F0F7FFFF 
- 6326              	.LBB748:
- 6327              	.LBB749:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 6328              		.loc 2 1282 0
- 6329 5589 F30F6F85 		movdqu	-2064(%rbp), %xmm0
- 6329      F0F7FFFF 
- 6330 5591 F30F7F85 		movdqu	%xmm0, -7552(%rbp)
- 6330      80E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 6331              		.loc 2 1283 0
- 6332 5599 8B8588E2 		movl	-7544(%rbp), %eax
- 6332      FFFF
- 6333 559f 89858CE2 		movl	%eax, -7540(%rbp)
- 6333      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 6334              		.loc 2 1284 0
- 6335 55a5 8B8584E2 		movl	-7548(%rbp), %eax
- 6335      FFFF
- 6336 55ab 898588E2 		movl	%eax, -7544(%rbp)
- 6336      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 6337              		.loc 2 1285 0
- 6338 55b1 8B8580E2 		movl	-7552(%rbp), %eax
- 6338      FFFF
- 6339 55b7 898584E2 		movl	%eax, -7548(%rbp)
- 6339      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 6340              		.loc 2 1286 0
- 6341 55bd C78580E2 		movl	$0, -7552(%rbp)
- 6341      FFFF0000 
- 6341      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 6342              		.loc 2 1287 0
- 6343 55c7 F30F6F85 		movdqu	-7552(%rbp), %xmm0
- 6343      80E2FFFF 
- 6344              	.LBE749:
- 6345              	.LBE748:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6346              		.loc 2 1567 0
- 6347 55cf 660F7F85 		movdqa	%xmm0, -9760(%rbp)
- 6347      E0D9FFFF 
- 6348 55d7 660F6F85 		movdqa	-9760(%rbp), %xmm0
- 6348      E0D9FFFF 
- 6349 55df 660FEF85 		pxor	-2080(%rbp), %xmm0
- 6349      E0F7FFFF 
- 6350 55e7 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 6350      E0F7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 218
-
-
- 6351 55ef 660F6F85 		movdqa	-9760(%rbp), %xmm0
- 6351      E0D9FFFF 
- 6352 55f7 F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 6352      00F8FFFF 
- 6353              	.LBB750:
- 6354              	.LBB751:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 6355              		.loc 2 1282 0
- 6356 55ff F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 6356      00F8FFFF 
- 6357 5607 F30F7F85 		movdqu	%xmm0, -7536(%rbp)
- 6357      90E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 6358              		.loc 2 1283 0
- 6359 560f 8B8598E2 		movl	-7528(%rbp), %eax
- 6359      FFFF
- 6360 5615 89859CE2 		movl	%eax, -7524(%rbp)
- 6360      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 6361              		.loc 2 1284 0
- 6362 561b 8B8594E2 		movl	-7532(%rbp), %eax
- 6362      FFFF
- 6363 5621 898598E2 		movl	%eax, -7528(%rbp)
- 6363      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 6364              		.loc 2 1285 0
- 6365 5627 8B8590E2 		movl	-7536(%rbp), %eax
- 6365      FFFF
- 6366 562d 898594E2 		movl	%eax, -7532(%rbp)
- 6366      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 6367              		.loc 2 1286 0
- 6368 5633 C78590E2 		movl	$0, -7536(%rbp)
- 6368      FFFF0000 
- 6368      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 6369              		.loc 2 1287 0
- 6370 563d F30F6F85 		movdqu	-7536(%rbp), %xmm0
- 6370      90E2FFFF 
- 6371              	.LBE751:
- 6372              	.LBE750:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6373              		.loc 2 1568 0
- 6374 5645 660F7F85 		movdqa	%xmm0, -9760(%rbp)
- 6374      E0D9FFFF 
- 6375 564d 660F6F85 		movdqa	-9760(%rbp), %xmm0
- 6375      E0D9FFFF 
- 6376 5655 660FEF85 		pxor	-2080(%rbp), %xmm0
- 6376      E0F7FFFF 
- 6377 565d F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 6377      E0F7FFFF 
- 6378 5665 660F6F85 		movdqa	-9760(%rbp), %xmm0
- 6378      E0D9FFFF 
- 6379 566d F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 6379      10F8FFFF 
- 6380              	.LBB752:
- 6381              	.LBB753:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 219
-
-
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 6382              		.loc 2 1282 0
- 6383 5675 F30F6F85 		movdqu	-2032(%rbp), %xmm0
- 6383      10F8FFFF 
- 6384 567d F30F7F85 		movdqu	%xmm0, -7520(%rbp)
- 6384      A0E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 6385              		.loc 2 1283 0
- 6386 5685 8B85A8E2 		movl	-7512(%rbp), %eax
- 6386      FFFF
- 6387 568b 8985ACE2 		movl	%eax, -7508(%rbp)
- 6387      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 6388              		.loc 2 1284 0
- 6389 5691 8B85A4E2 		movl	-7516(%rbp), %eax
- 6389      FFFF
- 6390 5697 8985A8E2 		movl	%eax, -7512(%rbp)
- 6390      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 6391              		.loc 2 1285 0
- 6392 569d 8B85A0E2 		movl	-7520(%rbp), %eax
- 6392      FFFF
- 6393 56a3 8985A4E2 		movl	%eax, -7516(%rbp)
- 6393      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 6394              		.loc 2 1286 0
- 6395 56a9 C785A0E2 		movl	$0, -7520(%rbp)
- 6395      FFFF0000 
- 6395      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 6396              		.loc 2 1287 0
- 6397 56b3 F30F6F85 		movdqu	-7520(%rbp), %xmm0
- 6397      A0E2FFFF 
- 6398              	.LBE753:
- 6399              	.LBE752:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6400              		.loc 2 1569 0
- 6401 56bb 660F7F85 		movdqa	%xmm0, -9760(%rbp)
- 6401      E0D9FFFF 
- 6402 56c3 660F6F85 		movdqa	-9760(%rbp), %xmm0
- 6402      E0D9FFFF 
- 6403 56cb 660FEF85 		pxor	-2080(%rbp), %xmm0
- 6403      E0F7FFFF 
- 6404 56d3 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 6404      E0F7FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6405              		.loc 2 1571 0
- 6406 56db F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 6406      E0F7FFFF 
- 6407              	.LBE747:
- 6408              	.LBE746:
-1750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x40,7);
- 6409              		.loc 2 1750 0
- 6410 56e3 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 6410      10E6FFFF 
- 6411 56eb F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 6411      20E6FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 220
-
-
- 6412 56f3 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 6412      10E6FFFF 
- 6413 56fb 660FEFC1 		pxor	%xmm1, %xmm0
- 6414 56ff F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 6414      10E6FFFF 
- 6415 5707 488B85B8 		movq	-9544(%rbp), %rax
- 6415      DAFFFF
- 6416 570e 4883C070 		addq	$112, %rax
- 6417 5712 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 6417      10E6FFFF 
- 6418 571a F30F7F00 		movdqu	%xmm0, (%rax)
- 6419 571e F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 6419      10E6FFFF 
- 6420 5726 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 6420      30F8FFFF 
- 6421              	.LBB754:
- 6422              	.LBB755:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 6423              		.loc 2 1681 0
- 6424 572e B8800000 		movl	$128, %eax
- 6424      00
- 6425 5733 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 6425      00000000 
- 6426 573b F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 6426      50F8FFFF 
- 6427 5743 89854CF8 		movl	%eax, -1972(%rbp)
- 6427      FFFF
- 6428              	.LBB756:
- 6429              	.LBB757:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 6430              		.loc 2 522 0
- 6431 5749 F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 6431      50F8FFFF 
- 6432 5751 F30F7F85 		movdqu	%xmm0, -7440(%rbp)
- 6432      F0E2FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 6433              		.loc 2 523 0
- 6434 5759 B8030000 		movl	$3, %eax
- 6434      00
- 6435 575e 4898     		cltq
- 6436 5760 8B954CF8 		movl	-1972(%rbp), %edx
- 6436      FFFF
- 6437 5766 899485F0 		movl	%edx, -7440(%rbp,%rax,4)
- 6437      E2FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 6438              		.loc 2 524 0
- 6439 576d F30F6F85 		movdqu	-7440(%rbp), %xmm0
- 6439      F0E2FFFF 
- 6440 5775 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 6440      50F8FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6441              		.loc 2 526 0
- 6442 577d F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 6442      50F8FFFF 
- 6443              	.LBE757:
- 6444              	.LBE756:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 221
-
-
- 6445              		.loc 2 1681 0
- 6446 5785 660F7F85 		movdqa	%xmm0, -9728(%rbp)
- 6446      00DAFFFF 
- 6447 578d F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 6447      30F8FFFF 
- 6448 5795 F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 6448      60F8FFFF 
- 6449 579d F30F6F85 		movdqu	-1952(%rbp), %xmm0
- 6449      60F8FFFF 
- 6450 57a5 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 6450      80F8FFFF 
- 6451 57ad 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 6451      000000
- 6452 57b4 48898578 		movq	%rax, -1928(%rbp)
- 6452      F8FFFF
- 6453              	.LBB758:
- 6454              	.LBB759:
- 6455              	.LBB760:
- 6456              	.LBB761:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 6457              		.loc 2 851 0
- 6458 57bb 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 6458      00000000 
- 6459 57c3 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 6459      A0F8FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 6460              		.loc 2 854 0
- 6461 57cb 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 6461      00000000 
- 6462 57d3 F30F6F8D 		movdqu	-1920(%rbp), %xmm1
- 6462      80F8FFFF 
- 6463 57db F30F7F8D 		movdqu	%xmm1, -1808(%rbp)
- 6463      F0F8FFFF 
- 6464 57e3 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 6464      E0F8FFFF 
- 6465              	.LBB762:
- 6466              	.LBB763:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 6467              		.loc 2 206 0
- 6468 57eb F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 6468      E0F8FFFF 
- 6469 57f3 F30F6F8D 		movdqu	-1808(%rbp), %xmm1
- 6469      F0F8FFFF 
- 6470 57fb 660FDBC1 		pand	%xmm1, %xmm0
- 6471              	.LBE763:
- 6472              	.LBE762:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 6473              		.loc 2 854 0
- 6474 57ff F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 6474      D0F8FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 6475              		.loc 2 862 0
- 6476 5807 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 6476      00000000 
- 6477 580f F30F6F8D 		movdqu	-1920(%rbp), %xmm1
- 6477      80F8FFFF 
- 6478 5817 F30F7F8D 		movdqu	%xmm1, -1776(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 222
-
-
- 6478      10F9FFFF 
- 6479 581f F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 6479      00F9FFFF 
- 6480              	.LBB764:
- 6481              		.loc 2 2642 0
- 6482 5827 0FB68510 		movzbl	-1776(%rbp), %eax
- 6482      F9FFFF
- 6483 582e 0FB69500 		movzbl	-1792(%rbp), %edx
- 6483      F9FFFF
- 6484 5835 0FB6C0   		movzbl	%al, %eax
- 6485 5838 6689858E 		movw	%ax, -10354(%rbp)
- 6485      D7FFFF
- 6486 583f 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6486      D7FFFF
- 6487 5846 F6F2     		divb	%dl
- 6488 5848 4189C7   		movl	%eax, %r15d
- 6489 584b 0FB68511 		movzbl	-1775(%rbp), %eax
- 6489      F9FFFF
- 6490 5852 0FB69501 		movzbl	-1791(%rbp), %edx
- 6490      F9FFFF
- 6491 5859 0FB6C0   		movzbl	%al, %eax
- 6492 585c 6689858E 		movw	%ax, -10354(%rbp)
- 6492      D7FFFF
- 6493 5863 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6493      D7FFFF
- 6494 586a F6F2     		divb	%dl
- 6495 586c 88851FDA 		movb	%al, -9697(%rbp)
- 6495      FFFF
- 6496 5872 0FB68512 		movzbl	-1774(%rbp), %eax
- 6496      F9FFFF
- 6497 5879 0FB69502 		movzbl	-1790(%rbp), %edx
- 6497      F9FFFF
- 6498 5880 0FB6C0   		movzbl	%al, %eax
- 6499 5883 6689858E 		movw	%ax, -10354(%rbp)
- 6499      D7FFFF
- 6500 588a 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6500      D7FFFF
- 6501 5891 F6F2     		divb	%dl
- 6502 5893 88851EDA 		movb	%al, -9698(%rbp)
- 6502      FFFF
- 6503 5899 0FB68513 		movzbl	-1773(%rbp), %eax
- 6503      F9FFFF
- 6504 58a0 0FB69503 		movzbl	-1789(%rbp), %edx
- 6504      F9FFFF
- 6505 58a7 0FB6C0   		movzbl	%al, %eax
- 6506 58aa 6689858E 		movw	%ax, -10354(%rbp)
- 6506      D7FFFF
- 6507 58b1 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6507      D7FFFF
- 6508 58b8 F6F2     		divb	%dl
- 6509 58ba 88851DDA 		movb	%al, -9699(%rbp)
- 6509      FFFF
- 6510 58c0 0FB68514 		movzbl	-1772(%rbp), %eax
- 6510      F9FFFF
- 6511 58c7 0FB69504 		movzbl	-1788(%rbp), %edx
- 6511      F9FFFF
- 6512 58ce 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 223
-
-
- 6513 58d1 6689858E 		movw	%ax, -10354(%rbp)
- 6513      D7FFFF
- 6514 58d8 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6514      D7FFFF
- 6515 58df F6F2     		divb	%dl
- 6516 58e1 88851CDA 		movb	%al, -9700(%rbp)
- 6516      FFFF
- 6517 58e7 0FB68515 		movzbl	-1771(%rbp), %eax
- 6517      F9FFFF
- 6518 58ee 0FB69505 		movzbl	-1787(%rbp), %edx
- 6518      F9FFFF
- 6519 58f5 0FB6C0   		movzbl	%al, %eax
- 6520 58f8 6689858E 		movw	%ax, -10354(%rbp)
- 6520      D7FFFF
- 6521 58ff 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6521      D7FFFF
- 6522 5906 F6F2     		divb	%dl
- 6523 5908 4189C1   		movl	%eax, %r9d
- 6524 590b 0FB68516 		movzbl	-1770(%rbp), %eax
- 6524      F9FFFF
- 6525 5912 0FB69506 		movzbl	-1786(%rbp), %edx
- 6525      F9FFFF
- 6526 5919 0FB6C0   		movzbl	%al, %eax
- 6527 591c 6689858E 		movw	%ax, -10354(%rbp)
- 6527      D7FFFF
- 6528 5923 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6528      D7FFFF
- 6529 592a F6F2     		divb	%dl
- 6530 592c 89C7     		movl	%eax, %edi
- 6531 592e 0FB68517 		movzbl	-1769(%rbp), %eax
- 6531      F9FFFF
- 6532 5935 0FB69507 		movzbl	-1785(%rbp), %edx
- 6532      F9FFFF
- 6533 593c 0FB6C0   		movzbl	%al, %eax
- 6534 593f 6689858E 		movw	%ax, -10354(%rbp)
- 6534      D7FFFF
- 6535 5946 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6535      D7FFFF
- 6536 594d F6F2     		divb	%dl
- 6537 594f 89C3     		movl	%eax, %ebx
- 6538 5951 0FB68518 		movzbl	-1768(%rbp), %eax
- 6538      F9FFFF
- 6539 5958 0FB69508 		movzbl	-1784(%rbp), %edx
- 6539      F9FFFF
- 6540 595f 0FB6C0   		movzbl	%al, %eax
- 6541 5962 6689858E 		movw	%ax, -10354(%rbp)
- 6541      D7FFFF
- 6542 5969 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6542      D7FFFF
- 6543 5970 F6F2     		divb	%dl
- 6544 5972 4189C2   		movl	%eax, %r10d
- 6545 5975 0FB68519 		movzbl	-1767(%rbp), %eax
- 6545      F9FFFF
- 6546 597c 0FB69509 		movzbl	-1783(%rbp), %edx
- 6546      F9FFFF
- 6547 5983 0FB6C0   		movzbl	%al, %eax
- 6548 5986 6689858E 		movw	%ax, -10354(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 224
-
-
- 6548      D7FFFF
- 6549 598d 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6549      D7FFFF
- 6550 5994 F6F2     		divb	%dl
- 6551 5996 4189C3   		movl	%eax, %r11d
- 6552 5999 0FB6851A 		movzbl	-1766(%rbp), %eax
- 6552      F9FFFF
- 6553 59a0 0FB6950A 		movzbl	-1782(%rbp), %edx
- 6553      F9FFFF
- 6554 59a7 0FB6C0   		movzbl	%al, %eax
- 6555 59aa 6689858E 		movw	%ax, -10354(%rbp)
- 6555      D7FFFF
- 6556 59b1 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6556      D7FFFF
- 6557 59b8 F6F2     		divb	%dl
- 6558 59ba 4189C4   		movl	%eax, %r12d
- 6559 59bd 0FB6851B 		movzbl	-1765(%rbp), %eax
- 6559      F9FFFF
- 6560 59c4 0FB6950B 		movzbl	-1781(%rbp), %edx
- 6560      F9FFFF
- 6561 59cb 0FB6C0   		movzbl	%al, %eax
- 6562 59ce 6689858E 		movw	%ax, -10354(%rbp)
- 6562      D7FFFF
- 6563 59d5 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6563      D7FFFF
- 6564 59dc F6F2     		divb	%dl
- 6565 59de 4189C5   		movl	%eax, %r13d
- 6566 59e1 0FB6851C 		movzbl	-1764(%rbp), %eax
- 6566      F9FFFF
- 6567 59e8 0FB6950C 		movzbl	-1780(%rbp), %edx
- 6567      F9FFFF
- 6568 59ef 0FB6C0   		movzbl	%al, %eax
- 6569 59f2 6689858E 		movw	%ax, -10354(%rbp)
- 6569      D7FFFF
- 6570 59f9 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6570      D7FFFF
- 6571 5a00 F6F2     		divb	%dl
- 6572 5a02 4189C6   		movl	%eax, %r14d
- 6573 5a05 0FB6851D 		movzbl	-1763(%rbp), %eax
- 6573      F9FFFF
- 6574 5a0c 0FB6950D 		movzbl	-1779(%rbp), %edx
- 6574      F9FFFF
- 6575 5a13 0FB6C0   		movzbl	%al, %eax
- 6576 5a16 6689858E 		movw	%ax, -10354(%rbp)
- 6576      D7FFFF
- 6577 5a1d 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6577      D7FFFF
- 6578 5a24 F6F2     		divb	%dl
- 6579 5a26 4189C0   		movl	%eax, %r8d
- 6580 5a29 0FB6851E 		movzbl	-1762(%rbp), %eax
- 6580      F9FFFF
- 6581 5a30 0FB6950E 		movzbl	-1778(%rbp), %edx
- 6581      F9FFFF
- 6582 5a37 0FB6C0   		movzbl	%al, %eax
- 6583 5a3a 6689858E 		movw	%ax, -10354(%rbp)
- 6583      D7FFFF
- 6584 5a41 0FB7858E 		movzwl	-10354(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 225
-
-
- 6584      D7FFFF
- 6585 5a48 F6F2     		divb	%dl
- 6586 5a4a 89C6     		movl	%eax, %esi
- 6587 5a4c 0FB6851F 		movzbl	-1761(%rbp), %eax
- 6587      F9FFFF
- 6588 5a53 0FB6950F 		movzbl	-1777(%rbp), %edx
- 6588      F9FFFF
- 6589 5a5a 0FB6C0   		movzbl	%al, %eax
- 6590 5a5d 6689858E 		movw	%ax, -10354(%rbp)
- 6590      D7FFFF
- 6591 5a64 0FB7858E 		movzwl	-10354(%rbp), %eax
- 6591      D7FFFF
- 6592 5a6b F6F2     		divb	%dl
- 6593 5a6d 89C1     		movl	%eax, %ecx
- 6594              	.LBB765:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 6595              		.loc 2 346 0
- 6596 5a6f 0FB6D3   		movzbl	%bl, %edx
- 6597 5a72 400FB6C7 		movzbl	%dil, %eax
- 6598 5a76 48C1E208 		salq	$8, %rdx
- 6599 5a7a 4809C2   		orq	%rax, %rdx
- 6600 5a7d 410FB6C1 		movzbl	%r9b, %eax
- 6601 5a81 48C1E208 		salq	$8, %rdx
- 6602 5a85 4809C2   		orq	%rax, %rdx
- 6603 5a88 0FB6851C 		movzbl	-9700(%rbp), %eax
- 6603      DAFFFF
- 6604 5a8f 48C1E208 		salq	$8, %rdx
- 6605 5a93 4809C2   		orq	%rax, %rdx
- 6606 5a96 0FB6851D 		movzbl	-9699(%rbp), %eax
- 6606      DAFFFF
- 6607 5a9d 48C1E208 		salq	$8, %rdx
- 6608 5aa1 4809C2   		orq	%rax, %rdx
- 6609 5aa4 0FB6851E 		movzbl	-9698(%rbp), %eax
- 6609      DAFFFF
- 6610 5aab 48C1E208 		salq	$8, %rdx
- 6611 5aaf 4809C2   		orq	%rax, %rdx
- 6612 5ab2 0FB6851F 		movzbl	-9697(%rbp), %eax
- 6612      DAFFFF
- 6613 5ab9 48C1E208 		salq	$8, %rdx
- 6614 5abd 4809C2   		orq	%rax, %rdx
- 6615 5ac0 410FB6C7 		movzbl	%r15b, %eax
- 6616 5ac4 48C1E208 		salq	$8, %rdx
- 6617 5ac8 4809C2   		orq	%rax, %rdx
- 6618 5acb 0FB6C1   		movzbl	%cl, %eax
- 6619 5ace 400FB6CE 		movzbl	%sil, %ecx
- 6620 5ad2 48C1E008 		salq	$8, %rax
- 6621 5ad6 4809C8   		orq	%rcx, %rax
- 6622 5ad9 410FB6C8 		movzbl	%r8b, %ecx
- 6623 5add 48C1E008 		salq	$8, %rax
- 6624 5ae1 4809C8   		orq	%rcx, %rax
- 6625 5ae4 410FB6CE 		movzbl	%r14b, %ecx
- 6626 5ae8 48C1E008 		salq	$8, %rax
- 6627 5aec 4809C8   		orq	%rcx, %rax
- 6628 5aef 410FB6CD 		movzbl	%r13b, %ecx
- 6629 5af3 48C1E008 		salq	$8, %rax
- 6630 5af7 4809C8   		orq	%rcx, %rax
- 6631 5afa 410FB6CC 		movzbl	%r12b, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 226
-
-
- 6632 5afe 48C1E008 		salq	$8, %rax
- 6633 5b02 4809C8   		orq	%rcx, %rax
- 6634 5b05 410FB6CB 		movzbl	%r11b, %ecx
- 6635 5b09 48C1E008 		salq	$8, %rax
- 6636 5b0d 4809C8   		orq	%rcx, %rax
- 6637 5b10 410FB6CA 		movzbl	%r10b, %ecx
- 6638 5b14 48C1E008 		salq	$8, %rax
- 6639 5b18 4809C8   		orq	%rcx, %rax
- 6640 5b1b 488995B0 		movq	%rdx, -10320(%rbp)
- 6640      D7FFFF
- 6641 5b22 488985B8 		movq	%rax, -10312(%rbp)
- 6641      D7FFFF
- 6642 5b29 660F6F85 		movdqa	-10320(%rbp), %xmm0
- 6642      B0D7FFFF 
- 6643              	.LBE765:
- 6644              	.LBE764:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 6645              		.loc 2 862 0
- 6646 5b31 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 6646      C0F8FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 6647              		.loc 2 866 0
- 6648 5b39 C7859CF8 		movl	$0, -1892(%rbp)
- 6648      FFFF0000 
- 6648      0000
- 6649 5b43 E9860200 		jmp	.L158
- 6649      00
- 6650              	.L167:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 6651              		.loc 2 868 0
- 6652 5b48 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 6652      00000000 
- 6653 5b50 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 6653      30F9FFFF 
- 6654 5b58 F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 6654      C0F8FFFF 
- 6655 5b60 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 6655      20F9FFFF 
- 6656              	.LBB766:
- 6657              	.LBB767:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 6658              		.loc 2 380 0
- 6659 5b68 F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 6659      30F9FFFF 
- 6660 5b70 F30F7F85 		movdqu	%xmm0, -7408(%rbp)
- 6660      10E3FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 6661              		.loc 2 381 0
- 6662 5b78 F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 6662      20F9FFFF 
- 6663 5b80 F30F7F85 		movdqu	%xmm0, -7424(%rbp)
- 6663      00E3FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6664              		.loc 2 383 0
- 6665 5b88 C7854CF9 		movl	$0, -1716(%rbp)
- 6665      FFFF0000 
- 6665      0000
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 227
-
-
- 6666 5b92 EB5C     		jmp	.L159
- 6667              	.L162:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 6668              		.loc 2 385 0
- 6669 5b94 8B854CF9 		movl	-1716(%rbp), %eax
- 6669      FFFF
- 6670 5b9a 89C0     		mov	%eax, %eax
- 6671 5b9c 0FB68405 		movzbl	-7424(%rbp,%rax), %eax
- 6671      00E3FFFF 
- 6672 5ba4 84C0     		testb	%al, %al
- 6673 5ba6 7912     		jns	.L160
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 6674              		.loc 2 386 0
- 6675 5ba8 8B854CF9 		movl	-1716(%rbp), %eax
- 6675      FFFF
- 6676 5bae 89C0     		mov	%eax, %eax
- 6677 5bb0 C6840520 		movb	$0, -7392(%rbp,%rax)
- 6677      E3FFFF00 
- 6678 5bb8 EB2F     		jmp	.L161
- 6679              	.L160:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 6680              		.loc 2 388 0
- 6681 5bba 8B8D4CF9 		movl	-1716(%rbp), %ecx
- 6681      FFFF
- 6682 5bc0 8B854CF9 		movl	-1716(%rbp), %eax
- 6682      FFFF
- 6683 5bc6 89C0     		mov	%eax, %eax
- 6684 5bc8 0FB68405 		movzbl	-7424(%rbp,%rax), %eax
- 6684      00E3FFFF 
- 6685 5bd0 0FB6C0   		movzbl	%al, %eax
- 6686 5bd3 83E00F   		andl	$15, %eax
- 6687 5bd6 4898     		cltq
- 6688 5bd8 0FB69405 		movzbl	-7408(%rbp,%rax), %edx
- 6688      10E3FFFF 
- 6689 5be0 89C8     		mov	%ecx, %eax
- 6690 5be2 88940520 		movb	%dl, -7392(%rbp,%rax)
- 6690      E3FFFF
- 6691              	.L161:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6692              		.loc 2 383 0
- 6693 5be9 83854CF9 		addl	$1, -1716(%rbp)
- 6693      FFFF01
- 6694              	.L159:
- 6695 5bf0 83BD4CF9 		cmpl	$15, -1716(%rbp)
- 6695      FFFF0F
- 6696 5bf7 769B     		jbe	.L162
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 6697              		.loc 2 391 0
- 6698 5bf9 F30F6F85 		movdqu	-7392(%rbp), %xmm0
- 6698      20E3FFFF 
- 6699              	.LBE767:
- 6700              	.LBE766:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 6701              		.loc 2 868 0
- 6702 5c01 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 6702      B0F8FFFF 
- 6703 5c09 F30F6F85 		movdqu	-1840(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 228
-
-
- 6703      D0F8FFFF 
- 6704 5c11 F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 6704      60F9FFFF 
- 6705 5c19 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 6705      B0F8FFFF 
- 6706 5c21 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 6706      50F9FFFF 
- 6707              	.LBB768:
- 6708              	.LBB769:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 6709              		.loc 2 234 0
- 6710 5c29 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 6710      50F9FFFF 
- 6711 5c31 F30F6F8D 		movdqu	-1696(%rbp), %xmm1
- 6711      60F9FFFF 
- 6712 5c39 660FEBC1 		por	%xmm1, %xmm0
- 6713              	.LBE769:
- 6714              	.LBE768:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 6715              		.loc 2 870 0
- 6716 5c3d F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 6716      B0F8FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 6717              		.loc 2 872 0
- 6718 5c45 8B859CF8 		mov	-1892(%rbp), %eax
- 6718      FFFF
- 6719 5c4b 48C1E004 		salq	$4, %rax
- 6720 5c4f 48038578 		addq	-1928(%rbp), %rax
- 6720      F8FFFF
- 6721 5c56 660F6F00 		movdqa	(%rax), %xmm0
- 6722 5c5a F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 6722      80F9FFFF 
- 6723 5c62 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 6723      B0F8FFFF 
- 6724 5c6a F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 6724      70F9FFFF 
- 6725              	.LBB770:
- 6726              	.LBB771:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 6727              		.loc 2 380 0
- 6728 5c72 F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 6728      80F9FFFF 
- 6729 5c7a F30F7F85 		movdqu	%xmm0, -7360(%rbp)
- 6729      40E3FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 6730              		.loc 2 381 0
- 6731 5c82 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 6731      70F9FFFF 
- 6732 5c8a F30F7F85 		movdqu	%xmm0, -7376(%rbp)
- 6732      30E3FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6733              		.loc 2 383 0
- 6734 5c92 C7859CF9 		movl	$0, -1636(%rbp)
- 6734      FFFF0000 
- 6734      0000
- 6735 5c9c EB5C     		jmp	.L163
- 6736              	.L166:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 229
-
-
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 6737              		.loc 2 385 0
- 6738 5c9e 8B859CF9 		movl	-1636(%rbp), %eax
- 6738      FFFF
- 6739 5ca4 89C0     		mov	%eax, %eax
- 6740 5ca6 0FB68405 		movzbl	-7376(%rbp,%rax), %eax
- 6740      30E3FFFF 
- 6741 5cae 84C0     		testb	%al, %al
- 6742 5cb0 7912     		jns	.L164
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 6743              		.loc 2 386 0
- 6744 5cb2 8B859CF9 		movl	-1636(%rbp), %eax
- 6744      FFFF
- 6745 5cb8 89C0     		mov	%eax, %eax
- 6746 5cba C6840550 		movb	$0, -7344(%rbp,%rax)
- 6746      E3FFFF00 
- 6747 5cc2 EB2F     		jmp	.L165
- 6748              	.L164:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 6749              		.loc 2 388 0
- 6750 5cc4 8B8D9CF9 		movl	-1636(%rbp), %ecx
- 6750      FFFF
- 6751 5cca 8B859CF9 		movl	-1636(%rbp), %eax
- 6751      FFFF
- 6752 5cd0 89C0     		mov	%eax, %eax
- 6753 5cd2 0FB68405 		movzbl	-7376(%rbp,%rax), %eax
- 6753      30E3FFFF 
- 6754 5cda 0FB6C0   		movzbl	%al, %eax
- 6755 5cdd 83E00F   		andl	$15, %eax
- 6756 5ce0 4898     		cltq
- 6757 5ce2 0FB69405 		movzbl	-7360(%rbp,%rax), %edx
- 6757      40E3FFFF 
- 6758 5cea 89C8     		mov	%ecx, %eax
- 6759 5cec 88940550 		movb	%dl, -7344(%rbp,%rax)
- 6759      E3FFFF
- 6760              	.L165:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6761              		.loc 2 383 0
- 6762 5cf3 83859CF9 		addl	$1, -1636(%rbp)
- 6762      FFFF01
- 6763              	.L163:
- 6764 5cfa 83BD9CF9 		cmpl	$15, -1636(%rbp)
- 6764      FFFF0F
- 6765 5d01 769B     		jbe	.L166
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 6766              		.loc 2 391 0
- 6767 5d03 F30F6F85 		movdqu	-7344(%rbp), %xmm0
- 6767      50E3FFFF 
- 6768              	.LBE771:
- 6769              	.LBE770:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 6770              		.loc 2 872 0
- 6771 5d0b F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 6771      B0F8FFFF 
- 6772 5d13 F30F6F85 		movdqu	-1888(%rbp), %xmm0
- 6772      A0F8FFFF 
- 6773 5d1b F30F7F85 		movdqu	%xmm0, -1616(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 230
-
-
- 6773      B0F9FFFF 
- 6774 5d23 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 6774      B0F8FFFF 
- 6775 5d2b F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 6775      A0F9FFFF 
- 6776              	.LBB772:
- 6777              	.LBB773:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 6778              		.loc 2 234 0
- 6779 5d33 F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 6779      A0F9FFFF 
- 6780 5d3b F30F6F8D 		movdqu	-1616(%rbp), %xmm1
- 6780      B0F9FFFF 
- 6781 5d43 660FEBC1 		por	%xmm1, %xmm0
- 6782              	.LBE773:
- 6783              	.LBE772:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 6784              		.loc 2 874 0
- 6785 5d47 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 6785      A0F8FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 6786              		.loc 2 876 0
- 6787 5d4f 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 6787      00000000 
- 6788 5d57 F30F6F8D 		movdqu	-1856(%rbp), %xmm1
- 6788      C0F8FFFF 
- 6789 5d5f F30F7F8D 		movdqu	%xmm1, -1584(%rbp)
- 6789      D0F9FFFF 
- 6790 5d67 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 6790      C0F9FFFF 
- 6791              	.LBB774:
- 6792              	.LBB775:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 6793              		.loc 2 290 0
- 6794 5d6f F30F6F8D 		movdqu	-1600(%rbp), %xmm1
- 6794      C0F9FFFF 
- 6795 5d77 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 6795      D0F9FFFF 
- 6796 5d7f 660FF8C1 		psubb	%xmm1, %xmm0
- 6797              	.LBE775:
- 6798              	.LBE774:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 6799              		.loc 2 876 0
- 6800 5d83 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 6800      C0F8FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 6801              		.loc 2 878 0
- 6802 5d8b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 6802      00000000 
- 6803 5d93 F30F6F8D 		movdqu	-1856(%rbp), %xmm1
- 6803      C0F8FFFF 
- 6804 5d9b F30F7F8D 		movdqu	%xmm1, -1552(%rbp)
- 6804      F0F9FFFF 
- 6805 5da3 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 6805      E0F9FFFF 
- 6806              	.LBB776:
- 6807              	.LBB777:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 231
-
-
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 6808              		.loc 2 206 0
- 6809 5dab F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 6809      E0F9FFFF 
- 6810 5db3 F30F6F8D 		movdqu	-1552(%rbp), %xmm1
- 6810      F0F9FFFF 
- 6811 5dbb 660FDBC1 		pand	%xmm1, %xmm0
- 6812              	.LBE777:
- 6813              	.LBE776:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 6814              		.loc 2 878 0
- 6815 5dbf F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 6815      C0F8FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 6816              		.loc 2 866 0
- 6817 5dc7 83859CF8 		addl	$1, -1892(%rbp)
- 6817      FFFF01
- 6818              	.L158:
- 6819 5dce 83BD9CF8 		cmpl	$15, -1892(%rbp)
- 6819      FFFF0F
- 6820 5dd5 0F866DFD 		jbe	.L167
- 6820      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 6821              		.loc 2 882 0
- 6822 5ddb F30F6F85 		movdqu	-1888(%rbp), %xmm0
- 6822      A0F8FFFF 
- 6823              	.LBE761:
- 6824              	.LBE760:
- 6825              	.LBE759:
- 6826              	.LBE758:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 6827              		.loc 2 1682 0
- 6828 5de3 660F7F85 		movdqa	%xmm0, -9744(%rbp)
- 6828      F0D9FFFF 
- 6829              	.LBB778:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 6830              		.loc 2 1683 0
- 6831 5deb 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 6831      F0D9FFFF 
- 6832 5df3 F30F7F85 		movdqu	%xmm0, -7456(%rbp)
- 6832      E0E2FFFF 
- 6833 5dfb E8000000 		call	KDbgWriterGet at PLT
- 6833      00
- 6834 5e00 4885C0   		testq	%rax, %rax
- 6835 5e03 7479     		je	.L169
- 6836 5e05 BF010000 		movl	$1, %edi
- 6836      00
- 6837 5e0a E8000000 		call	KDbgCondToFlag at PLT
- 6837      00
- 6838 5e0f 4889C6   		movq	%rax, %rsi
- 6839 5e12 BF100000 		movl	$16, %edi
- 6839      00
- 6840 5e17 E8000000 		call	KDbgTestModConds at PLT
- 6840      00
- 6841 5e1c 84C0     		testb	%al, %al
- 6842 5e1e 745E     		je	.L169
- 6843 5e20 8B85ECE2 		movl	-7444(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 232
-
-
- 6843      FFFF
- 6844 5e26 89C7     		movl	%eax, %edi
- 6845 5e28 E8D3A1FF 		call	bswap_32
- 6845      FF
- 6846 5e2d 4189C5   		movl	%eax, %r13d
- 6847 5e30 8B85E8E2 		movl	-7448(%rbp), %eax
- 6847      FFFF
- 6848 5e36 89C7     		movl	%eax, %edi
- 6849 5e38 E8C3A1FF 		call	bswap_32
- 6849      FF
- 6850 5e3d 4189C4   		movl	%eax, %r12d
- 6851 5e40 8B85E4E2 		movl	-7452(%rbp), %eax
- 6851      FFFF
- 6852 5e46 89C7     		movl	%eax, %edi
- 6853 5e48 E8B3A1FF 		call	bswap_32
- 6853      FF
- 6854 5e4d 89C3     		movl	%eax, %ebx
- 6855 5e4f 8B85E0E2 		movl	-7456(%rbp), %eax
- 6855      FFFF
- 6856 5e55 89C7     		movl	%eax, %edi
- 6857 5e57 E8A4A1FF 		call	bswap_32
- 6857      FF
- 6858 5e5c 4589E9   		movl	%r13d, %r9d
- 6859 5e5f 4589E0   		movl	%r12d, %r8d
- 6860 5e62 89D9     		movl	%ebx, %ecx
- 6861 5e64 89C2     		movl	%eax, %edx
- 6862 5e66 488D3500 		leaq	.LC0(%rip), %rsi
- 6862      000000
- 6863 5e6d 488D3D00 		leaq	.LC1(%rip), %rdi
- 6863      000000
- 6864 5e74 B8000000 		movl	$0, %eax
- 6864      00
- 6865 5e79 E8000000 		call	KDbgMsg at PLT
- 6865      00
- 6866              	.L169:
- 6867 5e7e 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 6867      F0D9FFFF 
- 6868 5e86 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 6868      00FAFFFF 
- 6869              	.LBE778:
- 6870              	.LBB779:
- 6871              	.LBB780:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 6872              		.loc 2 667 0
- 6873 5e8e 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 6873      00000000 
- 6874 5e96 F30F6F8D 		movdqu	-1536(%rbp), %xmm1
- 6874      00FAFFFF 
- 6875 5e9e F30F7F8D 		movdqu	%xmm1, -1504(%rbp)
- 6875      20FAFFFF 
- 6876 5ea6 F30F7F85 		movdqu	%xmm0, -1520(%rbp)
- 6876      10FAFFFF 
- 6877              	.LBB781:
- 6878              	.LBB782:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 6879              		.loc 2 380 0
- 6880 5eae F30F6F85 		movdqu	-1504(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 233
-
-
- 6880      20FAFFFF 
- 6881 5eb6 F30F7F85 		movdqu	%xmm0, -7312(%rbp)
- 6881      70E3FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 6882              		.loc 2 381 0
- 6883 5ebe F30F6F85 		movdqu	-1520(%rbp), %xmm0
- 6883      10FAFFFF 
- 6884 5ec6 F30F7F85 		movdqu	%xmm0, -7328(%rbp)
- 6884      60E3FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6885              		.loc 2 383 0
- 6886 5ece C7853CFA 		movl	$0, -1476(%rbp)
- 6886      FFFF0000 
- 6886      0000
- 6887 5ed8 EB5C     		jmp	.L170
- 6888              	.L173:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 6889              		.loc 2 385 0
- 6890 5eda 8B853CFA 		movl	-1476(%rbp), %eax
- 6890      FFFF
- 6891 5ee0 89C0     		mov	%eax, %eax
- 6892 5ee2 0FB68405 		movzbl	-7328(%rbp,%rax), %eax
- 6892      60E3FFFF 
- 6893 5eea 84C0     		testb	%al, %al
- 6894 5eec 7912     		jns	.L171
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 6895              		.loc 2 386 0
- 6896 5eee 8B853CFA 		movl	-1476(%rbp), %eax
- 6896      FFFF
- 6897 5ef4 89C0     		mov	%eax, %eax
- 6898 5ef6 C6840580 		movb	$0, -7296(%rbp,%rax)
- 6898      E3FFFF00 
- 6899 5efe EB2F     		jmp	.L172
- 6900              	.L171:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 6901              		.loc 2 388 0
- 6902 5f00 8B8D3CFA 		movl	-1476(%rbp), %ecx
- 6902      FFFF
- 6903 5f06 8B853CFA 		movl	-1476(%rbp), %eax
- 6903      FFFF
- 6904 5f0c 89C0     		mov	%eax, %eax
- 6905 5f0e 0FB68405 		movzbl	-7328(%rbp,%rax), %eax
- 6905      60E3FFFF 
- 6906 5f16 0FB6C0   		movzbl	%al, %eax
- 6907 5f19 83E00F   		andl	$15, %eax
- 6908 5f1c 4898     		cltq
- 6909 5f1e 0FB69405 		movzbl	-7312(%rbp,%rax), %edx
- 6909      70E3FFFF 
- 6910 5f26 89C8     		mov	%ecx, %eax
- 6911 5f28 88940580 		movb	%dl, -7296(%rbp,%rax)
- 6911      E3FFFF
- 6912              	.L172:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 6913              		.loc 2 383 0
- 6914 5f2f 83853CFA 		addl	$1, -1476(%rbp)
- 6914      FFFF01
- 6915              	.L170:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 234
-
-
- 6916 5f36 83BD3CFA 		cmpl	$15, -1476(%rbp)
- 6916      FFFF0F
- 6917 5f3d 769B     		jbe	.L173
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 6918              		.loc 2 391 0
- 6919 5f3f F30F6F85 		movdqu	-7296(%rbp), %xmm0
- 6919      80E3FFFF 
- 6920              	.LBE782:
- 6921              	.LBE781:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 6922              		.loc 2 667 0
- 6923 5f47 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 6923      00FAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6924              		.loc 2 668 0
- 6925 5f4f F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 6925      00FAFFFF 
- 6926              	.LBE780:
- 6927              	.LBE779:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 6928              		.loc 2 1684 0
- 6929 5f57 660F7F85 		movdqa	%xmm0, -9744(%rbp)
- 6929      F0D9FFFF 
- 6930              	.LBB783:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 6931              		.loc 2 1685 0
- 6932 5f5f 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 6932      F0D9FFFF 
- 6933 5f67 F30F7F85 		movdqu	%xmm0, -7472(%rbp)
- 6933      D0E2FFFF 
- 6934 5f6f E8000000 		call	KDbgWriterGet at PLT
- 6934      00
- 6935 5f74 4885C0   		testq	%rax, %rax
- 6936 5f77 7479     		je	.L175
- 6937 5f79 BF010000 		movl	$1, %edi
- 6937      00
- 6938 5f7e E8000000 		call	KDbgCondToFlag at PLT
- 6938      00
- 6939 5f83 4889C6   		movq	%rax, %rsi
- 6940 5f86 BF100000 		movl	$16, %edi
- 6940      00
- 6941 5f8b E8000000 		call	KDbgTestModConds at PLT
- 6941      00
- 6942 5f90 84C0     		testb	%al, %al
- 6943 5f92 745E     		je	.L175
- 6944 5f94 8B85DCE2 		movl	-7460(%rbp), %eax
- 6944      FFFF
- 6945 5f9a 89C7     		movl	%eax, %edi
- 6946 5f9c E85FA0FF 		call	bswap_32
- 6946      FF
- 6947 5fa1 4189C5   		movl	%eax, %r13d
- 6948 5fa4 8B85D8E2 		movl	-7464(%rbp), %eax
- 6948      FFFF
- 6949 5faa 89C7     		movl	%eax, %edi
- 6950 5fac E84FA0FF 		call	bswap_32
- 6950      FF
- 6951 5fb1 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 235
-
-
- 6952 5fb4 8B85D4E2 		movl	-7468(%rbp), %eax
- 6952      FFFF
- 6953 5fba 89C7     		movl	%eax, %edi
- 6954 5fbc E83FA0FF 		call	bswap_32
- 6954      FF
- 6955 5fc1 89C3     		movl	%eax, %ebx
- 6956 5fc3 8B85D0E2 		movl	-7472(%rbp), %eax
- 6956      FFFF
- 6957 5fc9 89C7     		movl	%eax, %edi
- 6958 5fcb E830A0FF 		call	bswap_32
- 6958      FF
- 6959 5fd0 4589E9   		movl	%r13d, %r9d
- 6960 5fd3 4589E0   		movl	%r12d, %r8d
- 6961 5fd6 89D9     		movl	%ebx, %ecx
- 6962 5fd8 89C2     		movl	%eax, %edx
- 6963 5fda 488D3500 		leaq	.LC2(%rip), %rsi
- 6963      000000
- 6964 5fe1 488D3D00 		leaq	.LC1(%rip), %rdi
- 6964      000000
- 6965 5fe8 B8000000 		movl	$0, %eax
- 6965      00
- 6966 5fed E8000000 		call	KDbgMsg at PLT
- 6966      00
- 6967              	.L175:
- 6968 5ff2 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 6968      F0D9FFFF 
- 6969 5ffa F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 6969      50FAFFFF 
- 6970 6002 660F6F85 		movdqa	-9728(%rbp), %xmm0
- 6970      00DAFFFF 
- 6971 600a F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 6971      40FAFFFF 
- 6972              	.LBE783:
- 6973              	.LBB784:
- 6974              	.LBB785:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6975              		.loc 2 178 0
- 6976 6012 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 6976      40FAFFFF 
- 6977 601a F30F6F8D 		movdqu	-1456(%rbp), %xmm1
- 6977      50FAFFFF 
- 6978 6022 660FEFC1 		pxor	%xmm1, %xmm0
- 6979              	.LBE785:
- 6980              	.LBE784:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 6981              		.loc 2 1686 0
- 6982 6026 660F7F85 		movdqa	%xmm0, -9744(%rbp)
- 6982      F0D9FFFF 
- 6983              	.LBB786:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 6984              		.loc 2 1687 0
- 6985 602e 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 6985      F0D9FFFF 
- 6986 6036 F30F7F85 		movdqu	%xmm0, -7488(%rbp)
- 6986      C0E2FFFF 
- 6987 603e E8000000 		call	KDbgWriterGet at PLT
- 6987      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 236
-
-
- 6988 6043 4885C0   		testq	%rax, %rax
- 6989 6046 7479     		je	.L177
- 6990 6048 BF010000 		movl	$1, %edi
- 6990      00
- 6991 604d E8000000 		call	KDbgCondToFlag at PLT
- 6991      00
- 6992 6052 4889C6   		movq	%rax, %rsi
- 6993 6055 BF100000 		movl	$16, %edi
- 6993      00
- 6994 605a E8000000 		call	KDbgTestModConds at PLT
- 6994      00
- 6995 605f 84C0     		testb	%al, %al
- 6996 6061 745E     		je	.L177
- 6997 6063 8B85CCE2 		movl	-7476(%rbp), %eax
- 6997      FFFF
- 6998 6069 89C7     		movl	%eax, %edi
- 6999 606b E8909FFF 		call	bswap_32
- 6999      FF
- 7000 6070 4189C5   		movl	%eax, %r13d
- 7001 6073 8B85C8E2 		movl	-7480(%rbp), %eax
- 7001      FFFF
- 7002 6079 89C7     		movl	%eax, %edi
- 7003 607b E8809FFF 		call	bswap_32
- 7003      FF
- 7004 6080 4189C4   		movl	%eax, %r12d
- 7005 6083 8B85C4E2 		movl	-7484(%rbp), %eax
- 7005      FFFF
- 7006 6089 89C7     		movl	%eax, %edi
- 7007 608b E8709FFF 		call	bswap_32
- 7007      FF
- 7008 6090 89C3     		movl	%eax, %ebx
- 7009 6092 8B85C0E2 		movl	-7488(%rbp), %eax
- 7009      FFFF
- 7010 6098 89C7     		movl	%eax, %edi
- 7011 609a E8619FFF 		call	bswap_32
- 7011      FF
- 7012 609f 4589E9   		movl	%r13d, %r9d
- 7013 60a2 4589E0   		movl	%r12d, %r8d
- 7014 60a5 89D9     		movl	%ebx, %ecx
- 7015 60a7 89C2     		movl	%eax, %edx
- 7016 60a9 488D3500 		leaq	.LC3(%rip), %rsi
- 7016      000000
- 7017 60b0 488D3D00 		leaq	.LC1(%rip), %rdi
- 7017      000000
- 7018 60b7 B8000000 		movl	$0, %eax
- 7018      00
- 7019 60bc E8000000 		call	KDbgMsg at PLT
- 7019      00
- 7020              	.L177:
- 7021 60c1 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 7021      F0D9FFFF 
- 7022 60c9 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 7022      60FAFFFF 
- 7023              	.LBE786:
- 7024              	.LBB787:
- 7025              	.LBB788:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 237
-
-
- 7026              		.loc 2 1357 0
- 7027 60d1 F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 7027      60FAFFFF 
- 7028 60d9 F30F7F85 		movdqu	%xmm0, -7280(%rbp)
- 7028      90E3FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 7029              		.loc 2 1358 0
- 7030 60e1 8B859CE3 		movl	-7268(%rbp), %eax
- 7030      FFFF
- 7031 60e7 898598E3 		movl	%eax, -7272(%rbp)
- 7031      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 7032              		.loc 2 1359 0
- 7033 60ed 8B859CE3 		movl	-7268(%rbp), %eax
- 7033      FFFF
- 7034 60f3 898594E3 		movl	%eax, -7276(%rbp)
- 7034      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 7035              		.loc 2 1360 0
- 7036 60f9 8B859CE3 		movl	-7268(%rbp), %eax
- 7036      FFFF
- 7037 60ff 898590E3 		movl	%eax, -7280(%rbp)
- 7037      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7038              		.loc 2 1361 0
- 7039 6105 F30F6F85 		movdqu	-7280(%rbp), %xmm0
- 7039      90E3FFFF 
- 7040              	.LBE788:
- 7041              	.LBE787:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 7042              		.loc 2 1688 0
- 7043 610d 660F7F85 		movdqa	%xmm0, -9744(%rbp)
- 7043      F0D9FFFF 
- 7044              	.LBB789:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 7045              		.loc 2 1689 0
- 7046 6115 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 7046      F0D9FFFF 
- 7047 611d F30F7F85 		movdqu	%xmm0, -7504(%rbp)
- 7047      B0E2FFFF 
- 7048 6125 E8000000 		call	KDbgWriterGet at PLT
- 7048      00
- 7049 612a 4885C0   		testq	%rax, %rax
- 7050 612d 7479     		je	.L179
- 7051 612f BF010000 		movl	$1, %edi
- 7051      00
- 7052 6134 E8000000 		call	KDbgCondToFlag at PLT
- 7052      00
- 7053 6139 4889C6   		movq	%rax, %rsi
- 7054 613c BF100000 		movl	$16, %edi
- 7054      00
- 7055 6141 E8000000 		call	KDbgTestModConds at PLT
- 7055      00
- 7056 6146 84C0     		testb	%al, %al
- 7057 6148 745E     		je	.L179
- 7058 614a 8B85BCE2 		movl	-7492(%rbp), %eax
- 7058      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 238
-
-
- 7059 6150 89C7     		movl	%eax, %edi
- 7060 6152 E8A99EFF 		call	bswap_32
- 7060      FF
- 7061 6157 4189C5   		movl	%eax, %r13d
- 7062 615a 8B85B8E2 		movl	-7496(%rbp), %eax
- 7062      FFFF
- 7063 6160 89C7     		movl	%eax, %edi
- 7064 6162 E8999EFF 		call	bswap_32
- 7064      FF
- 7065 6167 4189C4   		movl	%eax, %r12d
- 7066 616a 8B85B4E2 		movl	-7500(%rbp), %eax
- 7066      FFFF
- 7067 6170 89C7     		movl	%eax, %edi
- 7068 6172 E8899EFF 		call	bswap_32
- 7068      FF
- 7069 6177 89C3     		movl	%eax, %ebx
- 7070 6179 8B85B0E2 		movl	-7504(%rbp), %eax
- 7070      FFFF
- 7071 617f 89C7     		movl	%eax, %edi
- 7072 6181 E87A9EFF 		call	bswap_32
- 7072      FF
- 7073 6186 4589E9   		movl	%r13d, %r9d
- 7074 6189 4589E0   		movl	%r12d, %r8d
- 7075 618c 89D9     		movl	%ebx, %ecx
- 7076 618e 89C2     		movl	%eax, %edx
- 7077 6190 488D3500 		leaq	.LC4(%rip), %rsi
- 7077      000000
- 7078 6197 488D3D00 		leaq	.LC1(%rip), %rdi
- 7078      000000
- 7079 619e B8000000 		movl	$0, %eax
- 7079      00
- 7080 61a3 E8000000 		call	KDbgMsg at PLT
- 7080      00
- 7081              	.L179:
- 7082              	.LBE789:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 7083              		.loc 2 1690 0
- 7084 61a8 660F6F85 		movdqa	-9744(%rbp), %xmm0
- 7084      F0D9FFFF 
- 7085              	.LBE755:
- 7086              	.LBE754:
-1751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x80,8);
- 7087              		.loc 2 1751 0
- 7088 61b0 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 7088      20E6FFFF 
- 7089 61b8 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 7089      10E6FFFF 
- 7090 61c0 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 7090      70FAFFFF 
- 7091              	.LBB790:
- 7092              	.LBB791:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7093              		.loc 2 1565 0
- 7094 61c8 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 7094      70FAFFFF 
- 7095 61d0 660F7F85 		movdqa	%xmm0, -9696(%rbp)
- 7095      20DAFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 239
-
-
- 7096 61d8 660F6F85 		movdqa	-9696(%rbp), %xmm0
- 7096      20DAFFFF 
- 7097 61e0 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 7097      80FAFFFF 
- 7098              	.LBB792:
- 7099              	.LBB793:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 7100              		.loc 2 1282 0
- 7101 61e8 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 7101      80FAFFFF 
- 7102 61f0 F30F7F85 		movdqu	%xmm0, -7264(%rbp)
- 7102      A0E3FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 7103              		.loc 2 1283 0
- 7104 61f8 8B85A8E3 		movl	-7256(%rbp), %eax
- 7104      FFFF
- 7105 61fe 8985ACE3 		movl	%eax, -7252(%rbp)
- 7105      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 7106              		.loc 2 1284 0
- 7107 6204 8B85A4E3 		movl	-7260(%rbp), %eax
- 7107      FFFF
- 7108 620a 8985A8E3 		movl	%eax, -7256(%rbp)
- 7108      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 7109              		.loc 2 1285 0
- 7110 6210 8B85A0E3 		movl	-7264(%rbp), %eax
- 7110      FFFF
- 7111 6216 8985A4E3 		movl	%eax, -7260(%rbp)
- 7111      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 7112              		.loc 2 1286 0
- 7113 621c C785A0E3 		movl	$0, -7264(%rbp)
- 7113      FFFF0000 
- 7113      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7114              		.loc 2 1287 0
- 7115 6226 F30F6F85 		movdqu	-7264(%rbp), %xmm0
- 7115      A0E3FFFF 
- 7116              	.LBE793:
- 7117              	.LBE792:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7118              		.loc 2 1567 0
- 7119 622e 660F7F85 		movdqa	%xmm0, -9696(%rbp)
- 7119      20DAFFFF 
- 7120 6236 660F6F85 		movdqa	-9696(%rbp), %xmm0
- 7120      20DAFFFF 
- 7121 623e 660FEF85 		pxor	-1424(%rbp), %xmm0
- 7121      70FAFFFF 
- 7122 6246 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 7122      70FAFFFF 
- 7123 624e 660F6F85 		movdqa	-9696(%rbp), %xmm0
- 7123      20DAFFFF 
- 7124 6256 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 7124      90FAFFFF 
- 7125              	.LBB794:
- 7126              	.LBB795:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 240
-
-
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 7127              		.loc 2 1282 0
- 7128 625e F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 7128      90FAFFFF 
- 7129 6266 F30F7F85 		movdqu	%xmm0, -7248(%rbp)
- 7129      B0E3FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 7130              		.loc 2 1283 0
- 7131 626e 8B85B8E3 		movl	-7240(%rbp), %eax
- 7131      FFFF
- 7132 6274 8985BCE3 		movl	%eax, -7236(%rbp)
- 7132      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 7133              		.loc 2 1284 0
- 7134 627a 8B85B4E3 		movl	-7244(%rbp), %eax
- 7134      FFFF
- 7135 6280 8985B8E3 		movl	%eax, -7240(%rbp)
- 7135      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 7136              		.loc 2 1285 0
- 7137 6286 8B85B0E3 		movl	-7248(%rbp), %eax
- 7137      FFFF
- 7138 628c 8985B4E3 		movl	%eax, -7244(%rbp)
- 7138      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 7139              		.loc 2 1286 0
- 7140 6292 C785B0E3 		movl	$0, -7248(%rbp)
- 7140      FFFF0000 
- 7140      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7141              		.loc 2 1287 0
- 7142 629c F30F6F85 		movdqu	-7248(%rbp), %xmm0
- 7142      B0E3FFFF 
- 7143              	.LBE795:
- 7144              	.LBE794:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7145              		.loc 2 1568 0
- 7146 62a4 660F7F85 		movdqa	%xmm0, -9696(%rbp)
- 7146      20DAFFFF 
- 7147 62ac 660F6F85 		movdqa	-9696(%rbp), %xmm0
- 7147      20DAFFFF 
- 7148 62b4 660FEF85 		pxor	-1424(%rbp), %xmm0
- 7148      70FAFFFF 
- 7149 62bc F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 7149      70FAFFFF 
- 7150 62c4 660F6F85 		movdqa	-9696(%rbp), %xmm0
- 7150      20DAFFFF 
- 7151 62cc F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 7151      A0FAFFFF 
- 7152              	.LBB796:
- 7153              	.LBB797:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 7154              		.loc 2 1282 0
- 7155 62d4 F30F6F85 		movdqu	-1376(%rbp), %xmm0
- 7155      A0FAFFFF 
- 7156 62dc F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 7156      C0E3FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 241
-
-
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 7157              		.loc 2 1283 0
- 7158 62e4 8B85C8E3 		movl	-7224(%rbp), %eax
- 7158      FFFF
- 7159 62ea 8985CCE3 		movl	%eax, -7220(%rbp)
- 7159      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 7160              		.loc 2 1284 0
- 7161 62f0 8B85C4E3 		movl	-7228(%rbp), %eax
- 7161      FFFF
- 7162 62f6 8985C8E3 		movl	%eax, -7224(%rbp)
- 7162      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 7163              		.loc 2 1285 0
- 7164 62fc 8B85C0E3 		movl	-7232(%rbp), %eax
- 7164      FFFF
- 7165 6302 8985C4E3 		movl	%eax, -7228(%rbp)
- 7165      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 7166              		.loc 2 1286 0
- 7167 6308 C785C0E3 		movl	$0, -7232(%rbp)
- 7167      FFFF0000 
- 7167      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7168              		.loc 2 1287 0
- 7169 6312 F30F6F85 		movdqu	-7232(%rbp), %xmm0
- 7169      C0E3FFFF 
- 7170              	.LBE797:
- 7171              	.LBE796:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7172              		.loc 2 1569 0
- 7173 631a 660F7F85 		movdqa	%xmm0, -9696(%rbp)
- 7173      20DAFFFF 
- 7174 6322 660F6F85 		movdqa	-9696(%rbp), %xmm0
- 7174      20DAFFFF 
- 7175 632a 660FEF85 		pxor	-1424(%rbp), %xmm0
- 7175      70FAFFFF 
- 7176 6332 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 7176      70FAFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7177              		.loc 2 1571 0
- 7178 633a F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 7178      70FAFFFF 
- 7179              	.LBE791:
- 7180              	.LBE790:
-1751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x80,8);
- 7181              		.loc 2 1751 0
- 7182 6342 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 7182      10E6FFFF 
- 7183 634a F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 7183      20E6FFFF 
- 7184 6352 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 7184      10E6FFFF 
- 7185 635a 660FEFC1 		pxor	%xmm1, %xmm0
- 7186 635e F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 7186      10E6FFFF 
- 7187 6366 488B85B8 		movq	-9544(%rbp), %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 242
-
-
- 7187      DAFFFF
- 7188 636d 4883E880 		subq	$-128, %rax
- 7189 6371 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 7189      10E6FFFF 
- 7190 6379 F30F7F00 		movdqu	%xmm0, (%rax)
- 7191 637d F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 7191      10E6FFFF 
- 7192 6385 F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 7192      C0FAFFFF 
- 7193              	.LBB798:
- 7194              	.LBB799:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 7195              		.loc 2 1681 0
- 7196 638d B81B0000 		movl	$27, %eax
- 7196      00
- 7197 6392 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 7197      00000000 
- 7198 639a F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 7198      E0FAFFFF 
- 7199 63a2 8985DCFA 		movl	%eax, -1316(%rbp)
- 7199      FFFF
- 7200              	.LBB800:
- 7201              	.LBB801:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 7202              		.loc 2 522 0
- 7203 63a8 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 7203      E0FAFFFF 
- 7204 63b0 F30F7F85 		movdqu	%xmm0, -7152(%rbp)
- 7204      10E4FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 7205              		.loc 2 523 0
- 7206 63b8 B8030000 		movl	$3, %eax
- 7206      00
- 7207 63bd 4898     		cltq
- 7208 63bf 8B95DCFA 		movl	-1316(%rbp), %edx
- 7208      FFFF
- 7209 63c5 89948510 		movl	%edx, -7152(%rbp,%rax,4)
- 7209      E4FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 7210              		.loc 2 524 0
- 7211 63cc F30F6F85 		movdqu	-7152(%rbp), %xmm0
- 7211      10E4FFFF 
- 7212 63d4 F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 7212      E0FAFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7213              		.loc 2 526 0
- 7214 63dc F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 7214      E0FAFFFF 
- 7215              	.LBE801:
- 7216              	.LBE800:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 7217              		.loc 2 1681 0
- 7218 63e4 660F7F85 		movdqa	%xmm0, -9664(%rbp)
- 7218      40DAFFFF 
- 7219 63ec F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 7219      C0FAFFFF 
- 7220 63f4 F30F7F85 		movdqu	%xmm0, -1296(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 243
-
-
- 7220      F0FAFFFF 
- 7221 63fc F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 7221      F0FAFFFF 
- 7222 6404 F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 7222      10FBFFFF 
- 7223 640c 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 7223      000000
- 7224 6413 48898508 		movq	%rax, -1272(%rbp)
- 7224      FBFFFF
- 7225              	.LBB802:
- 7226              	.LBB803:
- 7227              	.LBB804:
- 7228              	.LBB805:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 7229              		.loc 2 851 0
- 7230 641a 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 7230      00000000 
- 7231 6422 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 7231      30FBFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 7232              		.loc 2 854 0
- 7233 642a 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 7233      00000000 
- 7234 6432 F30F6F8D 		movdqu	-1264(%rbp), %xmm1
- 7234      10FBFFFF 
- 7235 643a F30F7F8D 		movdqu	%xmm1, -1152(%rbp)
- 7235      80FBFFFF 
- 7236 6442 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 7236      70FBFFFF 
- 7237              	.LBB806:
- 7238              	.LBB807:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 7239              		.loc 2 206 0
- 7240 644a F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 7240      70FBFFFF 
- 7241 6452 F30F6F8D 		movdqu	-1152(%rbp), %xmm1
- 7241      80FBFFFF 
- 7242 645a 660FDBC1 		pand	%xmm1, %xmm0
- 7243              	.LBE807:
- 7244              	.LBE806:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 7245              		.loc 2 854 0
- 7246 645e F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 7246      60FBFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 7247              		.loc 2 862 0
- 7248 6466 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 7248      00000000 
- 7249 646e F30F6F8D 		movdqu	-1264(%rbp), %xmm1
- 7249      10FBFFFF 
- 7250 6476 F30F7F8D 		movdqu	%xmm1, -1120(%rbp)
- 7250      A0FBFFFF 
- 7251 647e F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 7251      90FBFFFF 
- 7252              	.LBB808:
- 7253              		.loc 2 2642 0
- 7254 6486 0FB685A0 		movzbl	-1120(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 244
-
-
- 7254      FBFFFF
- 7255 648d 0FB69590 		movzbl	-1136(%rbp), %edx
- 7255      FBFFFF
- 7256 6494 0FB6C0   		movzbl	%al, %eax
- 7257 6497 6689858E 		movw	%ax, -10354(%rbp)
- 7257      D7FFFF
- 7258 649e 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7258      D7FFFF
- 7259 64a5 F6F2     		divb	%dl
- 7260 64a7 4189C7   		movl	%eax, %r15d
- 7261 64aa 0FB685A1 		movzbl	-1119(%rbp), %eax
- 7261      FBFFFF
- 7262 64b1 0FB69591 		movzbl	-1135(%rbp), %edx
- 7262      FBFFFF
- 7263 64b8 0FB6C0   		movzbl	%al, %eax
- 7264 64bb 6689858E 		movw	%ax, -10354(%rbp)
- 7264      D7FFFF
- 7265 64c2 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7265      D7FFFF
- 7266 64c9 F6F2     		divb	%dl
- 7267 64cb 88855FDA 		movb	%al, -9633(%rbp)
- 7267      FFFF
- 7268 64d1 0FB685A2 		movzbl	-1118(%rbp), %eax
- 7268      FBFFFF
- 7269 64d8 0FB69592 		movzbl	-1134(%rbp), %edx
- 7269      FBFFFF
- 7270 64df 0FB6C0   		movzbl	%al, %eax
- 7271 64e2 6689858E 		movw	%ax, -10354(%rbp)
- 7271      D7FFFF
- 7272 64e9 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7272      D7FFFF
- 7273 64f0 F6F2     		divb	%dl
- 7274 64f2 88855EDA 		movb	%al, -9634(%rbp)
- 7274      FFFF
- 7275 64f8 0FB685A3 		movzbl	-1117(%rbp), %eax
- 7275      FBFFFF
- 7276 64ff 0FB69593 		movzbl	-1133(%rbp), %edx
- 7276      FBFFFF
- 7277 6506 0FB6C0   		movzbl	%al, %eax
- 7278 6509 6689858E 		movw	%ax, -10354(%rbp)
- 7278      D7FFFF
- 7279 6510 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7279      D7FFFF
- 7280 6517 F6F2     		divb	%dl
- 7281 6519 88855DDA 		movb	%al, -9635(%rbp)
- 7281      FFFF
- 7282 651f 0FB685A4 		movzbl	-1116(%rbp), %eax
- 7282      FBFFFF
- 7283 6526 0FB69594 		movzbl	-1132(%rbp), %edx
- 7283      FBFFFF
- 7284 652d 0FB6C0   		movzbl	%al, %eax
- 7285 6530 6689858E 		movw	%ax, -10354(%rbp)
- 7285      D7FFFF
- 7286 6537 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7286      D7FFFF
- 7287 653e F6F2     		divb	%dl
- 7288 6540 88855CDA 		movb	%al, -9636(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 245
-
-
- 7288      FFFF
- 7289 6546 0FB685A5 		movzbl	-1115(%rbp), %eax
- 7289      FBFFFF
- 7290 654d 0FB69595 		movzbl	-1131(%rbp), %edx
- 7290      FBFFFF
- 7291 6554 0FB6C0   		movzbl	%al, %eax
- 7292 6557 6689858E 		movw	%ax, -10354(%rbp)
- 7292      D7FFFF
- 7293 655e 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7293      D7FFFF
- 7294 6565 F6F2     		divb	%dl
- 7295 6567 4189C1   		movl	%eax, %r9d
- 7296 656a 0FB685A6 		movzbl	-1114(%rbp), %eax
- 7296      FBFFFF
- 7297 6571 0FB69596 		movzbl	-1130(%rbp), %edx
- 7297      FBFFFF
- 7298 6578 0FB6C0   		movzbl	%al, %eax
- 7299 657b 6689858E 		movw	%ax, -10354(%rbp)
- 7299      D7FFFF
- 7300 6582 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7300      D7FFFF
- 7301 6589 F6F2     		divb	%dl
- 7302 658b 89C7     		movl	%eax, %edi
- 7303 658d 0FB685A7 		movzbl	-1113(%rbp), %eax
- 7303      FBFFFF
- 7304 6594 0FB69597 		movzbl	-1129(%rbp), %edx
- 7304      FBFFFF
- 7305 659b 0FB6C0   		movzbl	%al, %eax
- 7306 659e 6689858E 		movw	%ax, -10354(%rbp)
- 7306      D7FFFF
- 7307 65a5 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7307      D7FFFF
- 7308 65ac F6F2     		divb	%dl
- 7309 65ae 89C3     		movl	%eax, %ebx
- 7310 65b0 0FB685A8 		movzbl	-1112(%rbp), %eax
- 7310      FBFFFF
- 7311 65b7 0FB69598 		movzbl	-1128(%rbp), %edx
- 7311      FBFFFF
- 7312 65be 0FB6C0   		movzbl	%al, %eax
- 7313 65c1 6689858E 		movw	%ax, -10354(%rbp)
- 7313      D7FFFF
- 7314 65c8 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7314      D7FFFF
- 7315 65cf F6F2     		divb	%dl
- 7316 65d1 4189C2   		movl	%eax, %r10d
- 7317 65d4 0FB685A9 		movzbl	-1111(%rbp), %eax
- 7317      FBFFFF
- 7318 65db 0FB69599 		movzbl	-1127(%rbp), %edx
- 7318      FBFFFF
- 7319 65e2 0FB6C0   		movzbl	%al, %eax
- 7320 65e5 6689858E 		movw	%ax, -10354(%rbp)
- 7320      D7FFFF
- 7321 65ec 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7321      D7FFFF
- 7322 65f3 F6F2     		divb	%dl
- 7323 65f5 4189C3   		movl	%eax, %r11d
- 7324 65f8 0FB685AA 		movzbl	-1110(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 246
-
-
- 7324      FBFFFF
- 7325 65ff 0FB6959A 		movzbl	-1126(%rbp), %edx
- 7325      FBFFFF
- 7326 6606 0FB6C0   		movzbl	%al, %eax
- 7327 6609 6689858E 		movw	%ax, -10354(%rbp)
- 7327      D7FFFF
- 7328 6610 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7328      D7FFFF
- 7329 6617 F6F2     		divb	%dl
- 7330 6619 4189C4   		movl	%eax, %r12d
- 7331 661c 0FB685AB 		movzbl	-1109(%rbp), %eax
- 7331      FBFFFF
- 7332 6623 0FB6959B 		movzbl	-1125(%rbp), %edx
- 7332      FBFFFF
- 7333 662a 0FB6C0   		movzbl	%al, %eax
- 7334 662d 6689858E 		movw	%ax, -10354(%rbp)
- 7334      D7FFFF
- 7335 6634 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7335      D7FFFF
- 7336 663b F6F2     		divb	%dl
- 7337 663d 4189C5   		movl	%eax, %r13d
- 7338 6640 0FB685AC 		movzbl	-1108(%rbp), %eax
- 7338      FBFFFF
- 7339 6647 0FB6959C 		movzbl	-1124(%rbp), %edx
- 7339      FBFFFF
- 7340 664e 0FB6C0   		movzbl	%al, %eax
- 7341 6651 6689858E 		movw	%ax, -10354(%rbp)
- 7341      D7FFFF
- 7342 6658 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7342      D7FFFF
- 7343 665f F6F2     		divb	%dl
- 7344 6661 4189C6   		movl	%eax, %r14d
- 7345 6664 0FB685AD 		movzbl	-1107(%rbp), %eax
- 7345      FBFFFF
- 7346 666b 0FB6959D 		movzbl	-1123(%rbp), %edx
- 7346      FBFFFF
- 7347 6672 0FB6C0   		movzbl	%al, %eax
- 7348 6675 6689858E 		movw	%ax, -10354(%rbp)
- 7348      D7FFFF
- 7349 667c 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7349      D7FFFF
- 7350 6683 F6F2     		divb	%dl
- 7351 6685 4189C0   		movl	%eax, %r8d
- 7352 6688 0FB685AE 		movzbl	-1106(%rbp), %eax
- 7352      FBFFFF
- 7353 668f 0FB6959E 		movzbl	-1122(%rbp), %edx
- 7353      FBFFFF
- 7354 6696 0FB6C0   		movzbl	%al, %eax
- 7355 6699 6689858E 		movw	%ax, -10354(%rbp)
- 7355      D7FFFF
- 7356 66a0 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7356      D7FFFF
- 7357 66a7 F6F2     		divb	%dl
- 7358 66a9 89C6     		movl	%eax, %esi
- 7359 66ab 0FB685AF 		movzbl	-1105(%rbp), %eax
- 7359      FBFFFF
- 7360 66b2 0FB6959F 		movzbl	-1121(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 247
-
-
- 7360      FBFFFF
- 7361 66b9 0FB6C0   		movzbl	%al, %eax
- 7362 66bc 6689858E 		movw	%ax, -10354(%rbp)
- 7362      D7FFFF
- 7363 66c3 0FB7858E 		movzwl	-10354(%rbp), %eax
- 7363      D7FFFF
- 7364 66ca F6F2     		divb	%dl
- 7365 66cc 89C1     		movl	%eax, %ecx
- 7366              	.LBB809:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 7367              		.loc 2 346 0
- 7368 66ce 0FB6D3   		movzbl	%bl, %edx
- 7369 66d1 400FB6C7 		movzbl	%dil, %eax
- 7370 66d5 48C1E208 		salq	$8, %rdx
- 7371 66d9 4809C2   		orq	%rax, %rdx
- 7372 66dc 410FB6C1 		movzbl	%r9b, %eax
- 7373 66e0 48C1E208 		salq	$8, %rdx
- 7374 66e4 4809C2   		orq	%rax, %rdx
- 7375 66e7 0FB6855C 		movzbl	-9636(%rbp), %eax
- 7375      DAFFFF
- 7376 66ee 48C1E208 		salq	$8, %rdx
- 7377 66f2 4809C2   		orq	%rax, %rdx
- 7378 66f5 0FB6855D 		movzbl	-9635(%rbp), %eax
- 7378      DAFFFF
- 7379 66fc 48C1E208 		salq	$8, %rdx
- 7380 6700 4809C2   		orq	%rax, %rdx
- 7381 6703 0FB6855E 		movzbl	-9634(%rbp), %eax
- 7381      DAFFFF
- 7382 670a 48C1E208 		salq	$8, %rdx
- 7383 670e 4809C2   		orq	%rax, %rdx
- 7384 6711 0FB6855F 		movzbl	-9633(%rbp), %eax
- 7384      DAFFFF
- 7385 6718 48C1E208 		salq	$8, %rdx
- 7386 671c 4809C2   		orq	%rax, %rdx
- 7387 671f 410FB6C7 		movzbl	%r15b, %eax
- 7388 6723 48C1E208 		salq	$8, %rdx
- 7389 6727 4809C2   		orq	%rax, %rdx
- 7390 672a 0FB6C1   		movzbl	%cl, %eax
- 7391 672d 400FB6CE 		movzbl	%sil, %ecx
- 7392 6731 48C1E008 		salq	$8, %rax
- 7393 6735 4809C8   		orq	%rcx, %rax
- 7394 6738 410FB6C8 		movzbl	%r8b, %ecx
- 7395 673c 48C1E008 		salq	$8, %rax
- 7396 6740 4809C8   		orq	%rcx, %rax
- 7397 6743 410FB6CE 		movzbl	%r14b, %ecx
- 7398 6747 48C1E008 		salq	$8, %rax
- 7399 674b 4809C8   		orq	%rcx, %rax
- 7400 674e 410FB6CD 		movzbl	%r13b, %ecx
- 7401 6752 48C1E008 		salq	$8, %rax
- 7402 6756 4809C8   		orq	%rcx, %rax
- 7403 6759 410FB6CC 		movzbl	%r12b, %ecx
- 7404 675d 48C1E008 		salq	$8, %rax
- 7405 6761 4809C8   		orq	%rcx, %rax
- 7406 6764 410FB6CB 		movzbl	%r11b, %ecx
- 7407 6768 48C1E008 		salq	$8, %rax
- 7408 676c 4809C8   		orq	%rcx, %rax
- 7409 676f 410FB6CA 		movzbl	%r10b, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 248
-
-
- 7410 6773 48C1E008 		salq	$8, %rax
- 7411 6777 4809C8   		orq	%rcx, %rax
- 7412 677a 488995A0 		movq	%rdx, -10336(%rbp)
- 7412      D7FFFF
- 7413 6781 488985A8 		movq	%rax, -10328(%rbp)
- 7413      D7FFFF
- 7414 6788 660F6F85 		movdqa	-10336(%rbp), %xmm0
- 7414      A0D7FFFF 
- 7415              	.LBE809:
- 7416              	.LBE808:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 7417              		.loc 2 862 0
- 7418 6790 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 7418      50FBFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 7419              		.loc 2 866 0
- 7420 6798 C7852CFB 		movl	$0, -1236(%rbp)
- 7420      FFFF0000 
- 7420      0000
- 7421 67a2 E9860200 		jmp	.L180
- 7421      00
- 7422              	.L189:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 7423              		.loc 2 868 0
- 7424 67a7 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 7424      00000000 
- 7425 67af F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 7425      C0FBFFFF 
- 7426 67b7 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 7426      50FBFFFF 
- 7427 67bf F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 7427      B0FBFFFF 
- 7428              	.LBB810:
- 7429              	.LBB811:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 7430              		.loc 2 380 0
- 7431 67c7 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 7431      C0FBFFFF 
- 7432 67cf F30F7F85 		movdqu	%xmm0, -7120(%rbp)
- 7432      30E4FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 7433              		.loc 2 381 0
- 7434 67d7 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 7434      B0FBFFFF 
- 7435 67df F30F7F85 		movdqu	%xmm0, -7136(%rbp)
- 7435      20E4FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 7436              		.loc 2 383 0
- 7437 67e7 C785DCFB 		movl	$0, -1060(%rbp)
- 7437      FFFF0000 
- 7437      0000
- 7438 67f1 EB5C     		jmp	.L181
- 7439              	.L184:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 7440              		.loc 2 385 0
- 7441 67f3 8B85DCFB 		movl	-1060(%rbp), %eax
- 7441      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 249
-
-
- 7442 67f9 89C0     		mov	%eax, %eax
- 7443 67fb 0FB68405 		movzbl	-7136(%rbp,%rax), %eax
- 7443      20E4FFFF 
- 7444 6803 84C0     		testb	%al, %al
- 7445 6805 7912     		jns	.L182
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 7446              		.loc 2 386 0
- 7447 6807 8B85DCFB 		movl	-1060(%rbp), %eax
- 7447      FFFF
- 7448 680d 89C0     		mov	%eax, %eax
- 7449 680f C6840540 		movb	$0, -7104(%rbp,%rax)
- 7449      E4FFFF00 
- 7450 6817 EB2F     		jmp	.L183
- 7451              	.L182:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 7452              		.loc 2 388 0
- 7453 6819 8B8DDCFB 		movl	-1060(%rbp), %ecx
- 7453      FFFF
- 7454 681f 8B85DCFB 		movl	-1060(%rbp), %eax
- 7454      FFFF
- 7455 6825 89C0     		mov	%eax, %eax
- 7456 6827 0FB68405 		movzbl	-7136(%rbp,%rax), %eax
- 7456      20E4FFFF 
- 7457 682f 0FB6C0   		movzbl	%al, %eax
- 7458 6832 83E00F   		andl	$15, %eax
- 7459 6835 4898     		cltq
- 7460 6837 0FB69405 		movzbl	-7120(%rbp,%rax), %edx
- 7460      30E4FFFF 
- 7461 683f 89C8     		mov	%ecx, %eax
- 7462 6841 88940540 		movb	%dl, -7104(%rbp,%rax)
- 7462      E4FFFF
- 7463              	.L183:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 7464              		.loc 2 383 0
- 7465 6848 8385DCFB 		addl	$1, -1060(%rbp)
- 7465      FFFF01
- 7466              	.L181:
- 7467 684f 83BDDCFB 		cmpl	$15, -1060(%rbp)
- 7467      FFFF0F
- 7468 6856 769B     		jbe	.L184
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 7469              		.loc 2 391 0
- 7470 6858 F30F6F85 		movdqu	-7104(%rbp), %xmm0
- 7470      40E4FFFF 
- 7471              	.LBE811:
- 7472              	.LBE810:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 7473              		.loc 2 868 0
- 7474 6860 F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 7474      40FBFFFF 
- 7475 6868 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 7475      60FBFFFF 
- 7476 6870 F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 7476      F0FBFFFF 
- 7477 6878 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 7477      40FBFFFF 
- 7478 6880 F30F7F85 		movdqu	%xmm0, -1056(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 250
-
-
- 7478      E0FBFFFF 
- 7479              	.LBB812:
- 7480              	.LBB813:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 7481              		.loc 2 234 0
- 7482 6888 F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 7482      E0FBFFFF 
- 7483 6890 F30F6F8D 		movdqu	-1040(%rbp), %xmm1
- 7483      F0FBFFFF 
- 7484 6898 660FEBC1 		por	%xmm1, %xmm0
- 7485              	.LBE813:
- 7486              	.LBE812:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 7487              		.loc 2 870 0
- 7488 689c F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 7488      40FBFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 7489              		.loc 2 872 0
- 7490 68a4 8B852CFB 		mov	-1236(%rbp), %eax
- 7490      FFFF
- 7491 68aa 48C1E004 		salq	$4, %rax
- 7492 68ae 48038508 		addq	-1272(%rbp), %rax
- 7492      FBFFFF
- 7493 68b5 660F6F00 		movdqa	(%rax), %xmm0
- 7494 68b9 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 7494      10FCFFFF 
- 7495 68c1 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 7495      40FBFFFF 
- 7496 68c9 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 7496      00FCFFFF 
- 7497              	.LBB814:
- 7498              	.LBB815:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 7499              		.loc 2 380 0
- 7500 68d1 F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 7500      10FCFFFF 
- 7501 68d9 F30F7F85 		movdqu	%xmm0, -7072(%rbp)
- 7501      60E4FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 7502              		.loc 2 381 0
- 7503 68e1 F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 7503      00FCFFFF 
- 7504 68e9 F30F7F85 		movdqu	%xmm0, -7088(%rbp)
- 7504      50E4FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 7505              		.loc 2 383 0
- 7506 68f1 C7852CFC 		movl	$0, -980(%rbp)
- 7506      FFFF0000 
- 7506      0000
- 7507 68fb EB5C     		jmp	.L185
- 7508              	.L188:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 7509              		.loc 2 385 0
- 7510 68fd 8B852CFC 		movl	-980(%rbp), %eax
- 7510      FFFF
- 7511 6903 89C0     		mov	%eax, %eax
- 7512 6905 0FB68405 		movzbl	-7088(%rbp,%rax), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 251
-
-
- 7512      50E4FFFF 
- 7513 690d 84C0     		testb	%al, %al
- 7514 690f 7912     		jns	.L186
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 7515              		.loc 2 386 0
- 7516 6911 8B852CFC 		movl	-980(%rbp), %eax
- 7516      FFFF
- 7517 6917 89C0     		mov	%eax, %eax
- 7518 6919 C6840570 		movb	$0, -7056(%rbp,%rax)
- 7518      E4FFFF00 
- 7519 6921 EB2F     		jmp	.L187
- 7520              	.L186:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 7521              		.loc 2 388 0
- 7522 6923 8B8D2CFC 		movl	-980(%rbp), %ecx
- 7522      FFFF
- 7523 6929 8B852CFC 		movl	-980(%rbp), %eax
- 7523      FFFF
- 7524 692f 89C0     		mov	%eax, %eax
- 7525 6931 0FB68405 		movzbl	-7088(%rbp,%rax), %eax
- 7525      50E4FFFF 
- 7526 6939 0FB6C0   		movzbl	%al, %eax
- 7527 693c 83E00F   		andl	$15, %eax
- 7528 693f 4898     		cltq
- 7529 6941 0FB69405 		movzbl	-7072(%rbp,%rax), %edx
- 7529      60E4FFFF 
- 7530 6949 89C8     		mov	%ecx, %eax
- 7531 694b 88940570 		movb	%dl, -7056(%rbp,%rax)
- 7531      E4FFFF
- 7532              	.L187:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 7533              		.loc 2 383 0
- 7534 6952 83852CFC 		addl	$1, -980(%rbp)
- 7534      FFFF01
- 7535              	.L185:
- 7536 6959 83BD2CFC 		cmpl	$15, -980(%rbp)
- 7536      FFFF0F
- 7537 6960 769B     		jbe	.L188
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 7538              		.loc 2 391 0
- 7539 6962 F30F6F85 		movdqu	-7056(%rbp), %xmm0
- 7539      70E4FFFF 
- 7540              	.LBE815:
- 7541              	.LBE814:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 7542              		.loc 2 872 0
- 7543 696a F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 7543      40FBFFFF 
- 7544 6972 F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 7544      30FBFFFF 
- 7545 697a F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 7545      40FCFFFF 
- 7546 6982 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 7546      40FBFFFF 
- 7547 698a F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 7547      30FCFFFF 
- 7548              	.LBB816:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 252
-
-
- 7549              	.LBB817:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 7550              		.loc 2 234 0
- 7551 6992 F30F6F85 		movdqu	-976(%rbp), %xmm0
- 7551      30FCFFFF 
- 7552 699a F30F6F8D 		movdqu	-960(%rbp), %xmm1
- 7552      40FCFFFF 
- 7553 69a2 660FEBC1 		por	%xmm1, %xmm0
- 7554              	.LBE817:
- 7555              	.LBE816:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 7556              		.loc 2 874 0
- 7557 69a6 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 7557      30FBFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 7558              		.loc 2 876 0
- 7559 69ae 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 7559      00000000 
- 7560 69b6 F30F6F8D 		movdqu	-1200(%rbp), %xmm1
- 7560      50FBFFFF 
- 7561 69be F30F7F8D 		movdqu	%xmm1, -928(%rbp)
- 7561      60FCFFFF 
- 7562 69c6 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 7562      50FCFFFF 
- 7563              	.LBB818:
- 7564              	.LBB819:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 7565              		.loc 2 290 0
- 7566 69ce F30F6F8D 		movdqu	-944(%rbp), %xmm1
- 7566      50FCFFFF 
- 7567 69d6 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 7567      60FCFFFF 
- 7568 69de 660FF8C1 		psubb	%xmm1, %xmm0
- 7569              	.LBE819:
- 7570              	.LBE818:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 7571              		.loc 2 876 0
- 7572 69e2 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 7572      50FBFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 7573              		.loc 2 878 0
- 7574 69ea 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 7574      00000000 
- 7575 69f2 F30F6F8D 		movdqu	-1200(%rbp), %xmm1
- 7575      50FBFFFF 
- 7576 69fa F30F7F8D 		movdqu	%xmm1, -896(%rbp)
- 7576      80FCFFFF 
- 7577 6a02 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 7577      70FCFFFF 
- 7578              	.LBB820:
- 7579              	.LBB821:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 7580              		.loc 2 206 0
- 7581 6a0a F30F6F85 		movdqu	-912(%rbp), %xmm0
- 7581      70FCFFFF 
- 7582 6a12 F30F6F8D 		movdqu	-896(%rbp), %xmm1
- 7582      80FCFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 253
-
-
- 7583 6a1a 660FDBC1 		pand	%xmm1, %xmm0
- 7584              	.LBE821:
- 7585              	.LBE820:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 7586              		.loc 2 878 0
- 7587 6a1e F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 7587      50FBFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 7588              		.loc 2 866 0
- 7589 6a26 83852CFB 		addl	$1, -1236(%rbp)
- 7589      FFFF01
- 7590              	.L180:
- 7591 6a2d 83BD2CFB 		cmpl	$15, -1236(%rbp)
- 7591      FFFF0F
- 7592 6a34 0F866DFD 		jbe	.L189
- 7592      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 7593              		.loc 2 882 0
- 7594 6a3a F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 7594      30FBFFFF 
- 7595              	.LBE805:
- 7596              	.LBE804:
- 7597              	.LBE803:
- 7598              	.LBE802:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 7599              		.loc 2 1682 0
- 7600 6a42 660F7F85 		movdqa	%xmm0, -9680(%rbp)
- 7600      30DAFFFF 
- 7601              	.LBB822:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 7602              		.loc 2 1683 0
- 7603 6a4a 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7603      30DAFFFF 
- 7604 6a52 F30F7F85 		movdqu	%xmm0, -7168(%rbp)
- 7604      00E4FFFF 
- 7605 6a5a E8000000 		call	KDbgWriterGet at PLT
- 7605      00
- 7606 6a5f 4885C0   		testq	%rax, %rax
- 7607 6a62 7479     		je	.L191
- 7608 6a64 BF010000 		movl	$1, %edi
- 7608      00
- 7609 6a69 E8000000 		call	KDbgCondToFlag at PLT
- 7609      00
- 7610 6a6e 4889C6   		movq	%rax, %rsi
- 7611 6a71 BF100000 		movl	$16, %edi
- 7611      00
- 7612 6a76 E8000000 		call	KDbgTestModConds at PLT
- 7612      00
- 7613 6a7b 84C0     		testb	%al, %al
- 7614 6a7d 745E     		je	.L191
- 7615 6a7f 8B850CE4 		movl	-7156(%rbp), %eax
- 7615      FFFF
- 7616 6a85 89C7     		movl	%eax, %edi
- 7617 6a87 E87495FF 		call	bswap_32
- 7617      FF
- 7618 6a8c 4189C5   		movl	%eax, %r13d
- 7619 6a8f 8B8508E4 		movl	-7160(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 254
-
-
- 7619      FFFF
- 7620 6a95 89C7     		movl	%eax, %edi
- 7621 6a97 E86495FF 		call	bswap_32
- 7621      FF
- 7622 6a9c 4189C4   		movl	%eax, %r12d
- 7623 6a9f 8B8504E4 		movl	-7164(%rbp), %eax
- 7623      FFFF
- 7624 6aa5 89C7     		movl	%eax, %edi
- 7625 6aa7 E85495FF 		call	bswap_32
- 7625      FF
- 7626 6aac 89C3     		movl	%eax, %ebx
- 7627 6aae 8B8500E4 		movl	-7168(%rbp), %eax
- 7627      FFFF
- 7628 6ab4 89C7     		movl	%eax, %edi
- 7629 6ab6 E84595FF 		call	bswap_32
- 7629      FF
- 7630 6abb 4589E9   		movl	%r13d, %r9d
- 7631 6abe 4589E0   		movl	%r12d, %r8d
- 7632 6ac1 89D9     		movl	%ebx, %ecx
- 7633 6ac3 89C2     		movl	%eax, %edx
- 7634 6ac5 488D3500 		leaq	.LC0(%rip), %rsi
- 7634      000000
- 7635 6acc 488D3D00 		leaq	.LC1(%rip), %rdi
- 7635      000000
- 7636 6ad3 B8000000 		movl	$0, %eax
- 7636      00
- 7637 6ad8 E8000000 		call	KDbgMsg at PLT
- 7637      00
- 7638              	.L191:
- 7639 6add 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7639      30DAFFFF 
- 7640 6ae5 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 7640      90FCFFFF 
- 7641              	.LBE822:
- 7642              	.LBB823:
- 7643              	.LBB824:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 7644              		.loc 2 667 0
- 7645 6aed 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 7645      00000000 
- 7646 6af5 F30F6F8D 		movdqu	-880(%rbp), %xmm1
- 7646      90FCFFFF 
- 7647 6afd F30F7F8D 		movdqu	%xmm1, -848(%rbp)
- 7647      B0FCFFFF 
- 7648 6b05 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 7648      A0FCFFFF 
- 7649              	.LBB825:
- 7650              	.LBB826:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 7651              		.loc 2 380 0
- 7652 6b0d F30F6F85 		movdqu	-848(%rbp), %xmm0
- 7652      B0FCFFFF 
- 7653 6b15 F30F7F85 		movdqu	%xmm0, -7024(%rbp)
- 7653      90E4FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 7654              		.loc 2 381 0
- 7655 6b1d F30F6F85 		movdqu	-864(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 255
-
-
- 7655      A0FCFFFF 
- 7656 6b25 F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 7656      80E4FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 7657              		.loc 2 383 0
- 7658 6b2d C785CCFC 		movl	$0, -820(%rbp)
- 7658      FFFF0000 
- 7658      0000
- 7659 6b37 EB5C     		jmp	.L192
- 7660              	.L195:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 7661              		.loc 2 385 0
- 7662 6b39 8B85CCFC 		movl	-820(%rbp), %eax
- 7662      FFFF
- 7663 6b3f 89C0     		mov	%eax, %eax
- 7664 6b41 0FB68405 		movzbl	-7040(%rbp,%rax), %eax
- 7664      80E4FFFF 
- 7665 6b49 84C0     		testb	%al, %al
- 7666 6b4b 7912     		jns	.L193
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 7667              		.loc 2 386 0
- 7668 6b4d 8B85CCFC 		movl	-820(%rbp), %eax
- 7668      FFFF
- 7669 6b53 89C0     		mov	%eax, %eax
- 7670 6b55 C68405A0 		movb	$0, -7008(%rbp,%rax)
- 7670      E4FFFF00 
- 7671 6b5d EB2F     		jmp	.L194
- 7672              	.L193:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 7673              		.loc 2 388 0
- 7674 6b5f 8B8DCCFC 		movl	-820(%rbp), %ecx
- 7674      FFFF
- 7675 6b65 8B85CCFC 		movl	-820(%rbp), %eax
- 7675      FFFF
- 7676 6b6b 89C0     		mov	%eax, %eax
- 7677 6b6d 0FB68405 		movzbl	-7040(%rbp,%rax), %eax
- 7677      80E4FFFF 
- 7678 6b75 0FB6C0   		movzbl	%al, %eax
- 7679 6b78 83E00F   		andl	$15, %eax
- 7680 6b7b 4898     		cltq
- 7681 6b7d 0FB69405 		movzbl	-7024(%rbp,%rax), %edx
- 7681      90E4FFFF 
- 7682 6b85 89C8     		mov	%ecx, %eax
- 7683 6b87 889405A0 		movb	%dl, -7008(%rbp,%rax)
- 7683      E4FFFF
- 7684              	.L194:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 7685              		.loc 2 383 0
- 7686 6b8e 8385CCFC 		addl	$1, -820(%rbp)
- 7686      FFFF01
- 7687              	.L192:
- 7688 6b95 83BDCCFC 		cmpl	$15, -820(%rbp)
- 7688      FFFF0F
- 7689 6b9c 769B     		jbe	.L195
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 7690              		.loc 2 391 0
- 7691 6b9e F30F6F85 		movdqu	-7008(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 256
-
-
- 7691      A0E4FFFF 
- 7692              	.LBE826:
- 7693              	.LBE825:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 7694              		.loc 2 667 0
- 7695 6ba6 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 7695      90FCFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7696              		.loc 2 668 0
- 7697 6bae F30F6F85 		movdqu	-880(%rbp), %xmm0
- 7697      90FCFFFF 
- 7698              	.LBE824:
- 7699              	.LBE823:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 7700              		.loc 2 1684 0
- 7701 6bb6 660F7F85 		movdqa	%xmm0, -9680(%rbp)
- 7701      30DAFFFF 
- 7702              	.LBB827:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 7703              		.loc 2 1685 0
- 7704 6bbe 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7704      30DAFFFF 
- 7705 6bc6 F30F7F85 		movdqu	%xmm0, -7184(%rbp)
- 7705      F0E3FFFF 
- 7706 6bce E8000000 		call	KDbgWriterGet at PLT
- 7706      00
- 7707 6bd3 4885C0   		testq	%rax, %rax
- 7708 6bd6 7479     		je	.L197
- 7709 6bd8 BF010000 		movl	$1, %edi
- 7709      00
- 7710 6bdd E8000000 		call	KDbgCondToFlag at PLT
- 7710      00
- 7711 6be2 4889C6   		movq	%rax, %rsi
- 7712 6be5 BF100000 		movl	$16, %edi
- 7712      00
- 7713 6bea E8000000 		call	KDbgTestModConds at PLT
- 7713      00
- 7714 6bef 84C0     		testb	%al, %al
- 7715 6bf1 745E     		je	.L197
- 7716 6bf3 8B85FCE3 		movl	-7172(%rbp), %eax
- 7716      FFFF
- 7717 6bf9 89C7     		movl	%eax, %edi
- 7718 6bfb E80094FF 		call	bswap_32
- 7718      FF
- 7719 6c00 4189C5   		movl	%eax, %r13d
- 7720 6c03 8B85F8E3 		movl	-7176(%rbp), %eax
- 7720      FFFF
- 7721 6c09 89C7     		movl	%eax, %edi
- 7722 6c0b E8F093FF 		call	bswap_32
- 7722      FF
- 7723 6c10 4189C4   		movl	%eax, %r12d
- 7724 6c13 8B85F4E3 		movl	-7180(%rbp), %eax
- 7724      FFFF
- 7725 6c19 89C7     		movl	%eax, %edi
- 7726 6c1b E8E093FF 		call	bswap_32
- 7726      FF
- 7727 6c20 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 257
-
-
- 7728 6c22 8B85F0E3 		movl	-7184(%rbp), %eax
- 7728      FFFF
- 7729 6c28 89C7     		movl	%eax, %edi
- 7730 6c2a E8D193FF 		call	bswap_32
- 7730      FF
- 7731 6c2f 4589E9   		movl	%r13d, %r9d
- 7732 6c32 4589E0   		movl	%r12d, %r8d
- 7733 6c35 89D9     		movl	%ebx, %ecx
- 7734 6c37 89C2     		movl	%eax, %edx
- 7735 6c39 488D3500 		leaq	.LC2(%rip), %rsi
- 7735      000000
- 7736 6c40 488D3D00 		leaq	.LC1(%rip), %rdi
- 7736      000000
- 7737 6c47 B8000000 		movl	$0, %eax
- 7737      00
- 7738 6c4c E8000000 		call	KDbgMsg at PLT
- 7738      00
- 7739              	.L197:
- 7740 6c51 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7740      30DAFFFF 
- 7741 6c59 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 7741      E0FCFFFF 
- 7742 6c61 660F6F85 		movdqa	-9664(%rbp), %xmm0
- 7742      40DAFFFF 
- 7743 6c69 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 7743      D0FCFFFF 
- 7744              	.LBE827:
- 7745              	.LBB828:
- 7746              	.LBB829:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 7747              		.loc 2 178 0
- 7748 6c71 F30F6F85 		movdqu	-816(%rbp), %xmm0
- 7748      D0FCFFFF 
- 7749 6c79 F30F6F8D 		movdqu	-800(%rbp), %xmm1
- 7749      E0FCFFFF 
- 7750 6c81 660FEFC1 		pxor	%xmm1, %xmm0
- 7751              	.LBE829:
- 7752              	.LBE828:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 7753              		.loc 2 1686 0
- 7754 6c85 660F7F85 		movdqa	%xmm0, -9680(%rbp)
- 7754      30DAFFFF 
- 7755              	.LBB830:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 7756              		.loc 2 1687 0
- 7757 6c8d 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7757      30DAFFFF 
- 7758 6c95 F30F7F85 		movdqu	%xmm0, -7200(%rbp)
- 7758      E0E3FFFF 
- 7759 6c9d E8000000 		call	KDbgWriterGet at PLT
- 7759      00
- 7760 6ca2 4885C0   		testq	%rax, %rax
- 7761 6ca5 7479     		je	.L199
- 7762 6ca7 BF010000 		movl	$1, %edi
- 7762      00
- 7763 6cac E8000000 		call	KDbgCondToFlag at PLT
- 7763      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 258
-
-
- 7764 6cb1 4889C6   		movq	%rax, %rsi
- 7765 6cb4 BF100000 		movl	$16, %edi
- 7765      00
- 7766 6cb9 E8000000 		call	KDbgTestModConds at PLT
- 7766      00
- 7767 6cbe 84C0     		testb	%al, %al
- 7768 6cc0 745E     		je	.L199
- 7769 6cc2 8B85ECE3 		movl	-7188(%rbp), %eax
- 7769      FFFF
- 7770 6cc8 89C7     		movl	%eax, %edi
- 7771 6cca E83193FF 		call	bswap_32
- 7771      FF
- 7772 6ccf 4189C5   		movl	%eax, %r13d
- 7773 6cd2 8B85E8E3 		movl	-7192(%rbp), %eax
- 7773      FFFF
- 7774 6cd8 89C7     		movl	%eax, %edi
- 7775 6cda E82193FF 		call	bswap_32
- 7775      FF
- 7776 6cdf 4189C4   		movl	%eax, %r12d
- 7777 6ce2 8B85E4E3 		movl	-7196(%rbp), %eax
- 7777      FFFF
- 7778 6ce8 89C7     		movl	%eax, %edi
- 7779 6cea E81193FF 		call	bswap_32
- 7779      FF
- 7780 6cef 89C3     		movl	%eax, %ebx
- 7781 6cf1 8B85E0E3 		movl	-7200(%rbp), %eax
- 7781      FFFF
- 7782 6cf7 89C7     		movl	%eax, %edi
- 7783 6cf9 E80293FF 		call	bswap_32
- 7783      FF
- 7784 6cfe 4589E9   		movl	%r13d, %r9d
- 7785 6d01 4589E0   		movl	%r12d, %r8d
- 7786 6d04 89D9     		movl	%ebx, %ecx
- 7787 6d06 89C2     		movl	%eax, %edx
- 7788 6d08 488D3500 		leaq	.LC3(%rip), %rsi
- 7788      000000
- 7789 6d0f 488D3D00 		leaq	.LC1(%rip), %rdi
- 7789      000000
- 7790 6d16 B8000000 		movl	$0, %eax
- 7790      00
- 7791 6d1b E8000000 		call	KDbgMsg at PLT
- 7791      00
- 7792              	.L199:
- 7793 6d20 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7793      30DAFFFF 
- 7794 6d28 F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 7794      F0FCFFFF 
- 7795              	.LBE830:
- 7796              	.LBB831:
- 7797              	.LBB832:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 7798              		.loc 2 1357 0
- 7799 6d30 F30F6F85 		movdqu	-784(%rbp), %xmm0
- 7799      F0FCFFFF 
- 7800 6d38 F30F7F85 		movdqu	%xmm0, -6992(%rbp)
- 7800      B0E4FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 259
-
-
- 7801              		.loc 2 1358 0
- 7802 6d40 8B85BCE4 		movl	-6980(%rbp), %eax
- 7802      FFFF
- 7803 6d46 8985B8E4 		movl	%eax, -6984(%rbp)
- 7803      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 7804              		.loc 2 1359 0
- 7805 6d4c 8B85BCE4 		movl	-6980(%rbp), %eax
- 7805      FFFF
- 7806 6d52 8985B4E4 		movl	%eax, -6988(%rbp)
- 7806      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 7807              		.loc 2 1360 0
- 7808 6d58 8B85BCE4 		movl	-6980(%rbp), %eax
- 7808      FFFF
- 7809 6d5e 8985B0E4 		movl	%eax, -6992(%rbp)
- 7809      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7810              		.loc 2 1361 0
- 7811 6d64 F30F6F85 		movdqu	-6992(%rbp), %xmm0
- 7811      B0E4FFFF 
- 7812              	.LBE832:
- 7813              	.LBE831:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 7814              		.loc 2 1688 0
- 7815 6d6c 660F7F85 		movdqa	%xmm0, -9680(%rbp)
- 7815      30DAFFFF 
- 7816              	.LBB833:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 7817              		.loc 2 1689 0
- 7818 6d74 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7818      30DAFFFF 
- 7819 6d7c F30F7F85 		movdqu	%xmm0, -7216(%rbp)
- 7819      D0E3FFFF 
- 7820 6d84 E8000000 		call	KDbgWriterGet at PLT
- 7820      00
- 7821 6d89 4885C0   		testq	%rax, %rax
- 7822 6d8c 7479     		je	.L201
- 7823 6d8e BF010000 		movl	$1, %edi
- 7823      00
- 7824 6d93 E8000000 		call	KDbgCondToFlag at PLT
- 7824      00
- 7825 6d98 4889C6   		movq	%rax, %rsi
- 7826 6d9b BF100000 		movl	$16, %edi
- 7826      00
- 7827 6da0 E8000000 		call	KDbgTestModConds at PLT
- 7827      00
- 7828 6da5 84C0     		testb	%al, %al
- 7829 6da7 745E     		je	.L201
- 7830 6da9 8B85DCE3 		movl	-7204(%rbp), %eax
- 7830      FFFF
- 7831 6daf 89C7     		movl	%eax, %edi
- 7832 6db1 E84A92FF 		call	bswap_32
- 7832      FF
- 7833 6db6 4189C5   		movl	%eax, %r13d
- 7834 6db9 8B85D8E3 		movl	-7208(%rbp), %eax
- 7834      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 260
-
-
- 7835 6dbf 89C7     		movl	%eax, %edi
- 7836 6dc1 E83A92FF 		call	bswap_32
- 7836      FF
- 7837 6dc6 4189C4   		movl	%eax, %r12d
- 7838 6dc9 8B85D4E3 		movl	-7212(%rbp), %eax
- 7838      FFFF
- 7839 6dcf 89C7     		movl	%eax, %edi
- 7840 6dd1 E82A92FF 		call	bswap_32
- 7840      FF
- 7841 6dd6 89C3     		movl	%eax, %ebx
- 7842 6dd8 8B85D0E3 		movl	-7216(%rbp), %eax
- 7842      FFFF
- 7843 6dde 89C7     		movl	%eax, %edi
- 7844 6de0 E81B92FF 		call	bswap_32
- 7844      FF
- 7845 6de5 4589E9   		movl	%r13d, %r9d
- 7846 6de8 4589E0   		movl	%r12d, %r8d
- 7847 6deb 89D9     		movl	%ebx, %ecx
- 7848 6ded 89C2     		movl	%eax, %edx
- 7849 6def 488D3500 		leaq	.LC4(%rip), %rsi
- 7849      000000
- 7850 6df6 488D3D00 		leaq	.LC1(%rip), %rdi
- 7850      000000
- 7851 6dfd B8000000 		movl	$0, %eax
- 7851      00
- 7852 6e02 E8000000 		call	KDbgMsg at PLT
- 7852      00
- 7853              	.L201:
- 7854              	.LBE833:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 7855              		.loc 2 1690 0
- 7856 6e07 660F6F85 		movdqa	-9680(%rbp), %xmm0
- 7856      30DAFFFF 
- 7857              	.LBE799:
- 7858              	.LBE798:
-1752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x1B,9);
- 7859              		.loc 2 1752 0
- 7860 6e0f F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 7860      20E6FFFF 
- 7861 6e17 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 7861      10E6FFFF 
- 7862 6e1f F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 7862      00FDFFFF 
- 7863              	.LBB834:
- 7864              	.LBB835:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7865              		.loc 2 1565 0
- 7866 6e27 F30F6F85 		movdqu	-768(%rbp), %xmm0
- 7866      00FDFFFF 
- 7867 6e2f 660F7F85 		movdqa	%xmm0, -9632(%rbp)
- 7867      60DAFFFF 
- 7868 6e37 660F6F85 		movdqa	-9632(%rbp), %xmm0
- 7868      60DAFFFF 
- 7869 6e3f F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 7869      10FDFFFF 
- 7870              	.LBB836:
- 7871              	.LBB837:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 261
-
-
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 7872              		.loc 2 1282 0
- 7873 6e47 F30F6F85 		movdqu	-752(%rbp), %xmm0
- 7873      10FDFFFF 
- 7874 6e4f F30F7F85 		movdqu	%xmm0, -6976(%rbp)
- 7874      C0E4FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 7875              		.loc 2 1283 0
- 7876 6e57 8B85C8E4 		movl	-6968(%rbp), %eax
- 7876      FFFF
- 7877 6e5d 8985CCE4 		movl	%eax, -6964(%rbp)
- 7877      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 7878              		.loc 2 1284 0
- 7879 6e63 8B85C4E4 		movl	-6972(%rbp), %eax
- 7879      FFFF
- 7880 6e69 8985C8E4 		movl	%eax, -6968(%rbp)
- 7880      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 7881              		.loc 2 1285 0
- 7882 6e6f 8B85C0E4 		movl	-6976(%rbp), %eax
- 7882      FFFF
- 7883 6e75 8985C4E4 		movl	%eax, -6972(%rbp)
- 7883      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 7884              		.loc 2 1286 0
- 7885 6e7b C785C0E4 		movl	$0, -6976(%rbp)
- 7885      FFFF0000 
- 7885      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7886              		.loc 2 1287 0
- 7887 6e85 F30F6F85 		movdqu	-6976(%rbp), %xmm0
- 7887      C0E4FFFF 
- 7888              	.LBE837:
- 7889              	.LBE836:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7890              		.loc 2 1567 0
- 7891 6e8d 660F7F85 		movdqa	%xmm0, -9632(%rbp)
- 7891      60DAFFFF 
- 7892 6e95 660F6F85 		movdqa	-9632(%rbp), %xmm0
- 7892      60DAFFFF 
- 7893 6e9d 660FEF85 		pxor	-768(%rbp), %xmm0
- 7893      00FDFFFF 
- 7894 6ea5 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 7894      00FDFFFF 
- 7895 6ead 660F6F85 		movdqa	-9632(%rbp), %xmm0
- 7895      60DAFFFF 
- 7896 6eb5 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 7896      20FDFFFF 
- 7897              	.LBB838:
- 7898              	.LBB839:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 7899              		.loc 2 1282 0
- 7900 6ebd F30F6F85 		movdqu	-736(%rbp), %xmm0
- 7900      20FDFFFF 
- 7901 6ec5 F30F7F85 		movdqu	%xmm0, -6960(%rbp)
- 7901      D0E4FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 262
-
-
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 7902              		.loc 2 1283 0
- 7903 6ecd 8B85D8E4 		movl	-6952(%rbp), %eax
- 7903      FFFF
- 7904 6ed3 8985DCE4 		movl	%eax, -6948(%rbp)
- 7904      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 7905              		.loc 2 1284 0
- 7906 6ed9 8B85D4E4 		movl	-6956(%rbp), %eax
- 7906      FFFF
- 7907 6edf 8985D8E4 		movl	%eax, -6952(%rbp)
- 7907      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 7908              		.loc 2 1285 0
- 7909 6ee5 8B85D0E4 		movl	-6960(%rbp), %eax
- 7909      FFFF
- 7910 6eeb 8985D4E4 		movl	%eax, -6956(%rbp)
- 7910      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 7911              		.loc 2 1286 0
- 7912 6ef1 C785D0E4 		movl	$0, -6960(%rbp)
- 7912      FFFF0000 
- 7912      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7913              		.loc 2 1287 0
- 7914 6efb F30F6F85 		movdqu	-6960(%rbp), %xmm0
- 7914      D0E4FFFF 
- 7915              	.LBE839:
- 7916              	.LBE838:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7917              		.loc 2 1568 0
- 7918 6f03 660F7F85 		movdqa	%xmm0, -9632(%rbp)
- 7918      60DAFFFF 
- 7919 6f0b 660F6F85 		movdqa	-9632(%rbp), %xmm0
- 7919      60DAFFFF 
- 7920 6f13 660FEF85 		pxor	-768(%rbp), %xmm0
- 7920      00FDFFFF 
- 7921 6f1b F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 7921      00FDFFFF 
- 7922 6f23 660F6F85 		movdqa	-9632(%rbp), %xmm0
- 7922      60DAFFFF 
- 7923 6f2b F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 7923      30FDFFFF 
- 7924              	.LBB840:
- 7925              	.LBB841:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 7926              		.loc 2 1282 0
- 7927 6f33 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 7927      30FDFFFF 
- 7928 6f3b F30F7F85 		movdqu	%xmm0, -6944(%rbp)
- 7928      E0E4FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 7929              		.loc 2 1283 0
- 7930 6f43 8B85E8E4 		movl	-6936(%rbp), %eax
- 7930      FFFF
- 7931 6f49 8985ECE4 		movl	%eax, -6932(%rbp)
- 7931      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 263
-
-
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 7932              		.loc 2 1284 0
- 7933 6f4f 8B85E4E4 		movl	-6940(%rbp), %eax
- 7933      FFFF
- 7934 6f55 8985E8E4 		movl	%eax, -6936(%rbp)
- 7934      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 7935              		.loc 2 1285 0
- 7936 6f5b 8B85E0E4 		movl	-6944(%rbp), %eax
- 7936      FFFF
- 7937 6f61 8985E4E4 		movl	%eax, -6940(%rbp)
- 7937      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 7938              		.loc 2 1286 0
- 7939 6f67 C785E0E4 		movl	$0, -6944(%rbp)
- 7939      FFFF0000 
- 7939      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 7940              		.loc 2 1287 0
- 7941 6f71 F30F6F85 		movdqu	-6944(%rbp), %xmm0
- 7941      E0E4FFFF 
- 7942              	.LBE841:
- 7943              	.LBE840:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7944              		.loc 2 1569 0
- 7945 6f79 660F7F85 		movdqa	%xmm0, -9632(%rbp)
- 7945      60DAFFFF 
- 7946 6f81 660F6F85 		movdqa	-9632(%rbp), %xmm0
- 7946      60DAFFFF 
- 7947 6f89 660FEF85 		pxor	-768(%rbp), %xmm0
- 7947      00FDFFFF 
- 7948 6f91 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 7948      00FDFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7949              		.loc 2 1571 0
- 7950 6f99 F30F6F85 		movdqu	-768(%rbp), %xmm0
- 7950      00FDFFFF 
- 7951              	.LBE835:
- 7952              	.LBE834:
-1752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x1B,9);
- 7953              		.loc 2 1752 0
- 7954 6fa1 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 7954      10E6FFFF 
- 7955 6fa9 F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 7955      20E6FFFF 
- 7956 6fb1 F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 7956      10E6FFFF 
- 7957 6fb9 660FEFC1 		pxor	%xmm1, %xmm0
- 7958 6fbd F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 7958      10E6FFFF 
- 7959 6fc5 488B85B8 		movq	-9544(%rbp), %rax
- 7959      DAFFFF
- 7960 6fcc 48059000 		addq	$144, %rax
- 7960      0000
- 7961 6fd2 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 7961      10E6FFFF 
- 7962 6fda F30F7F00 		movdqu	%xmm0, (%rax)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 264
-
-
- 7963 6fde F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 7963      10E6FFFF 
- 7964 6fe6 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 7964      50FDFFFF 
- 7965              	.LBB842:
- 7966              	.LBB843:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 7967              		.loc 2 1681 0
- 7968 6fee B8360000 		movl	$54, %eax
- 7968      00
- 7969 6ff3 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 7969      00000000 
- 7970 6ffb F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 7970      70FDFFFF 
- 7971 7003 89856CFD 		movl	%eax, -660(%rbp)
- 7971      FFFF
- 7972              	.LBB844:
- 7973              	.LBB845:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 7974              		.loc 2 522 0
- 7975 7009 F30F6F85 		movdqu	-656(%rbp), %xmm0
- 7975      70FDFFFF 
- 7976 7011 F30F7F85 		movdqu	%xmm0, -6864(%rbp)
- 7976      30E5FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 7977              		.loc 2 523 0
- 7978 7019 B8030000 		movl	$3, %eax
- 7978      00
- 7979 701e 4898     		cltq
- 7980 7020 8B956CFD 		movl	-660(%rbp), %edx
- 7980      FFFF
- 7981 7026 89948530 		movl	%edx, -6864(%rbp,%rax,4)
- 7981      E5FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 7982              		.loc 2 524 0
- 7983 702d F30F6F85 		movdqu	-6864(%rbp), %xmm0
- 7983      30E5FFFF 
- 7984 7035 F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 7984      70FDFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7985              		.loc 2 526 0
- 7986 703d F30F6F85 		movdqu	-656(%rbp), %xmm0
- 7986      70FDFFFF 
- 7987              	.LBE845:
- 7988              	.LBE844:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 7989              		.loc 2 1681 0
- 7990 7045 660F7F85 		movdqa	%xmm0, -9600(%rbp)
- 7990      80DAFFFF 
- 7991 704d F30F6F85 		movdqu	-688(%rbp), %xmm0
- 7991      50FDFFFF 
- 7992 7055 F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 7992      80FDFFFF 
- 7993 705d F30F6F85 		movdqu	-640(%rbp), %xmm0
- 7993      80FDFFFF 
- 7994 7065 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 7994      A0FDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 265
-
-
- 7995 706d 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 7995      000000
- 7996 7074 48898598 		movq	%rax, -616(%rbp)
- 7996      FDFFFF
- 7997              	.LBB846:
- 7998              	.LBB847:
- 7999              	.LBB848:
- 8000              	.LBB849:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 8001              		.loc 2 851 0
- 8002 707b 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 8002      00000000 
- 8003 7083 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 8003      C0FDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 8004              		.loc 2 854 0
- 8005 708b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 8005      00000000 
- 8006 7093 F30F6F8D 		movdqu	-608(%rbp), %xmm1
- 8006      A0FDFFFF 
- 8007 709b F30F7F8D 		movdqu	%xmm1, -496(%rbp)
- 8007      10FEFFFF 
- 8008 70a3 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 8008      00FEFFFF 
- 8009              	.LBB850:
- 8010              	.LBB851:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 8011              		.loc 2 206 0
- 8012 70ab F30F6F85 		movdqu	-512(%rbp), %xmm0
- 8012      00FEFFFF 
- 8013 70b3 F30F6F8D 		movdqu	-496(%rbp), %xmm1
- 8013      10FEFFFF 
- 8014 70bb 660FDBC1 		pand	%xmm1, %xmm0
- 8015              	.LBE851:
- 8016              	.LBE850:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 8017              		.loc 2 854 0
- 8018 70bf F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 8018      F0FDFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 8019              		.loc 2 862 0
- 8020 70c7 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 8020      00000000 
- 8021 70cf F30F6F8D 		movdqu	-608(%rbp), %xmm1
- 8021      A0FDFFFF 
- 8022 70d7 F30F7F8D 		movdqu	%xmm1, -464(%rbp)
- 8022      30FEFFFF 
- 8023 70df F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 8023      20FEFFFF 
- 8024              	.LBB852:
- 8025              		.loc 2 2642 0
- 8026 70e7 0FB68530 		movzbl	-464(%rbp), %eax
- 8026      FEFFFF
- 8027 70ee 0FB69520 		movzbl	-480(%rbp), %edx
- 8027      FEFFFF
- 8028 70f5 0FB6C0   		movzbl	%al, %eax
- 8029 70f8 6689858E 		movw	%ax, -10354(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 266
-
-
- 8029      D7FFFF
- 8030 70ff 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8030      D7FFFF
- 8031 7106 F6F2     		divb	%dl
- 8032 7108 4189C7   		movl	%eax, %r15d
- 8033 710b 0FB68531 		movzbl	-463(%rbp), %eax
- 8033      FEFFFF
- 8034 7112 0FB69521 		movzbl	-479(%rbp), %edx
- 8034      FEFFFF
- 8035 7119 0FB6C0   		movzbl	%al, %eax
- 8036 711c 6689858E 		movw	%ax, -10354(%rbp)
- 8036      D7FFFF
- 8037 7123 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8037      D7FFFF
- 8038 712a F6F2     		divb	%dl
- 8039 712c 88859FDA 		movb	%al, -9569(%rbp)
- 8039      FFFF
- 8040 7132 0FB68532 		movzbl	-462(%rbp), %eax
- 8040      FEFFFF
- 8041 7139 0FB69522 		movzbl	-478(%rbp), %edx
- 8041      FEFFFF
- 8042 7140 0FB6C0   		movzbl	%al, %eax
- 8043 7143 6689858E 		movw	%ax, -10354(%rbp)
- 8043      D7FFFF
- 8044 714a 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8044      D7FFFF
- 8045 7151 F6F2     		divb	%dl
- 8046 7153 88859EDA 		movb	%al, -9570(%rbp)
- 8046      FFFF
- 8047 7159 0FB68533 		movzbl	-461(%rbp), %eax
- 8047      FEFFFF
- 8048 7160 0FB69523 		movzbl	-477(%rbp), %edx
- 8048      FEFFFF
- 8049 7167 0FB6C0   		movzbl	%al, %eax
- 8050 716a 6689858E 		movw	%ax, -10354(%rbp)
- 8050      D7FFFF
- 8051 7171 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8051      D7FFFF
- 8052 7178 F6F2     		divb	%dl
- 8053 717a 88859DDA 		movb	%al, -9571(%rbp)
- 8053      FFFF
- 8054 7180 0FB68534 		movzbl	-460(%rbp), %eax
- 8054      FEFFFF
- 8055 7187 0FB69524 		movzbl	-476(%rbp), %edx
- 8055      FEFFFF
- 8056 718e 0FB6C0   		movzbl	%al, %eax
- 8057 7191 6689858E 		movw	%ax, -10354(%rbp)
- 8057      D7FFFF
- 8058 7198 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8058      D7FFFF
- 8059 719f F6F2     		divb	%dl
- 8060 71a1 88859CDA 		movb	%al, -9572(%rbp)
- 8060      FFFF
- 8061 71a7 0FB68535 		movzbl	-459(%rbp), %eax
- 8061      FEFFFF
- 8062 71ae 0FB69525 		movzbl	-475(%rbp), %edx
- 8062      FEFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 267
-
-
- 8063 71b5 0FB6C0   		movzbl	%al, %eax
- 8064 71b8 6689858E 		movw	%ax, -10354(%rbp)
- 8064      D7FFFF
- 8065 71bf 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8065      D7FFFF
- 8066 71c6 F6F2     		divb	%dl
- 8067 71c8 4189C1   		movl	%eax, %r9d
- 8068 71cb 0FB68536 		movzbl	-458(%rbp), %eax
- 8068      FEFFFF
- 8069 71d2 0FB69526 		movzbl	-474(%rbp), %edx
- 8069      FEFFFF
- 8070 71d9 0FB6C0   		movzbl	%al, %eax
- 8071 71dc 6689858E 		movw	%ax, -10354(%rbp)
- 8071      D7FFFF
- 8072 71e3 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8072      D7FFFF
- 8073 71ea F6F2     		divb	%dl
- 8074 71ec 89C7     		movl	%eax, %edi
- 8075 71ee 0FB68537 		movzbl	-457(%rbp), %eax
- 8075      FEFFFF
- 8076 71f5 0FB69527 		movzbl	-473(%rbp), %edx
- 8076      FEFFFF
- 8077 71fc 0FB6C0   		movzbl	%al, %eax
- 8078 71ff 6689858E 		movw	%ax, -10354(%rbp)
- 8078      D7FFFF
- 8079 7206 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8079      D7FFFF
- 8080 720d F6F2     		divb	%dl
- 8081 720f 89C3     		movl	%eax, %ebx
- 8082 7211 0FB68538 		movzbl	-456(%rbp), %eax
- 8082      FEFFFF
- 8083 7218 0FB69528 		movzbl	-472(%rbp), %edx
- 8083      FEFFFF
- 8084 721f 0FB6C0   		movzbl	%al, %eax
- 8085 7222 6689858E 		movw	%ax, -10354(%rbp)
- 8085      D7FFFF
- 8086 7229 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8086      D7FFFF
- 8087 7230 F6F2     		divb	%dl
- 8088 7232 4189C2   		movl	%eax, %r10d
- 8089 7235 0FB68539 		movzbl	-455(%rbp), %eax
- 8089      FEFFFF
- 8090 723c 0FB69529 		movzbl	-471(%rbp), %edx
- 8090      FEFFFF
- 8091 7243 0FB6C0   		movzbl	%al, %eax
- 8092 7246 6689858E 		movw	%ax, -10354(%rbp)
- 8092      D7FFFF
- 8093 724d 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8093      D7FFFF
- 8094 7254 F6F2     		divb	%dl
- 8095 7256 4189C3   		movl	%eax, %r11d
- 8096 7259 0FB6853A 		movzbl	-454(%rbp), %eax
- 8096      FEFFFF
- 8097 7260 0FB6952A 		movzbl	-470(%rbp), %edx
- 8097      FEFFFF
- 8098 7267 0FB6C0   		movzbl	%al, %eax
- 8099 726a 6689858E 		movw	%ax, -10354(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 268
-
-
- 8099      D7FFFF
- 8100 7271 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8100      D7FFFF
- 8101 7278 F6F2     		divb	%dl
- 8102 727a 4189C4   		movl	%eax, %r12d
- 8103 727d 0FB6853B 		movzbl	-453(%rbp), %eax
- 8103      FEFFFF
- 8104 7284 0FB6952B 		movzbl	-469(%rbp), %edx
- 8104      FEFFFF
- 8105 728b 0FB6C0   		movzbl	%al, %eax
- 8106 728e 6689858E 		movw	%ax, -10354(%rbp)
- 8106      D7FFFF
- 8107 7295 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8107      D7FFFF
- 8108 729c F6F2     		divb	%dl
- 8109 729e 4189C5   		movl	%eax, %r13d
- 8110 72a1 0FB6853C 		movzbl	-452(%rbp), %eax
- 8110      FEFFFF
- 8111 72a8 0FB6952C 		movzbl	-468(%rbp), %edx
- 8111      FEFFFF
- 8112 72af 0FB6C0   		movzbl	%al, %eax
- 8113 72b2 6689858E 		movw	%ax, -10354(%rbp)
- 8113      D7FFFF
- 8114 72b9 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8114      D7FFFF
- 8115 72c0 F6F2     		divb	%dl
- 8116 72c2 4189C6   		movl	%eax, %r14d
- 8117 72c5 0FB6853D 		movzbl	-451(%rbp), %eax
- 8117      FEFFFF
- 8118 72cc 0FB6952D 		movzbl	-467(%rbp), %edx
- 8118      FEFFFF
- 8119 72d3 0FB6C0   		movzbl	%al, %eax
- 8120 72d6 6689858E 		movw	%ax, -10354(%rbp)
- 8120      D7FFFF
- 8121 72dd 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8121      D7FFFF
- 8122 72e4 F6F2     		divb	%dl
- 8123 72e6 4189C0   		movl	%eax, %r8d
- 8124 72e9 0FB6853E 		movzbl	-450(%rbp), %eax
- 8124      FEFFFF
- 8125 72f0 0FB6952E 		movzbl	-466(%rbp), %edx
- 8125      FEFFFF
- 8126 72f7 0FB6C0   		movzbl	%al, %eax
- 8127 72fa 6689858E 		movw	%ax, -10354(%rbp)
- 8127      D7FFFF
- 8128 7301 0FB7858E 		movzwl	-10354(%rbp), %eax
- 8128      D7FFFF
- 8129 7308 F6F2     		divb	%dl
- 8130 730a 89C6     		movl	%eax, %esi
- 8131 730c 0FB6853F 		movzbl	-449(%rbp), %eax
- 8131      FEFFFF
- 8132 7313 0FB6952F 		movzbl	-465(%rbp), %edx
- 8132      FEFFFF
- 8133 731a 0FB6C0   		movzbl	%al, %eax
- 8134 731d 6689858E 		movw	%ax, -10354(%rbp)
- 8134      D7FFFF
- 8135 7324 0FB7858E 		movzwl	-10354(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 269
-
-
- 8135      D7FFFF
- 8136 732b F6F2     		divb	%dl
- 8137 732d 89C1     		movl	%eax, %ecx
- 8138              	.LBB853:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 8139              		.loc 2 346 0
- 8140 732f 0FB6D3   		movzbl	%bl, %edx
- 8141 7332 400FB6C7 		movzbl	%dil, %eax
- 8142 7336 48C1E208 		salq	$8, %rdx
- 8143 733a 4809C2   		orq	%rax, %rdx
- 8144 733d 410FB6C1 		movzbl	%r9b, %eax
- 8145 7341 48C1E208 		salq	$8, %rdx
- 8146 7345 4809C2   		orq	%rax, %rdx
- 8147 7348 0FB6859C 		movzbl	-9572(%rbp), %eax
- 8147      DAFFFF
- 8148 734f 48C1E208 		salq	$8, %rdx
- 8149 7353 4809C2   		orq	%rax, %rdx
- 8150 7356 0FB6859D 		movzbl	-9571(%rbp), %eax
- 8150      DAFFFF
- 8151 735d 48C1E208 		salq	$8, %rdx
- 8152 7361 4809C2   		orq	%rax, %rdx
- 8153 7364 0FB6859E 		movzbl	-9570(%rbp), %eax
- 8153      DAFFFF
- 8154 736b 48C1E208 		salq	$8, %rdx
- 8155 736f 4809C2   		orq	%rax, %rdx
- 8156 7372 0FB6859F 		movzbl	-9569(%rbp), %eax
- 8156      DAFFFF
- 8157 7379 48C1E208 		salq	$8, %rdx
- 8158 737d 4809C2   		orq	%rax, %rdx
- 8159 7380 410FB6C7 		movzbl	%r15b, %eax
- 8160 7384 48C1E208 		salq	$8, %rdx
- 8161 7388 4809C2   		orq	%rax, %rdx
- 8162 738b 0FB6C1   		movzbl	%cl, %eax
- 8163 738e 400FB6CE 		movzbl	%sil, %ecx
- 8164 7392 48C1E008 		salq	$8, %rax
- 8165 7396 4809C8   		orq	%rcx, %rax
- 8166 7399 410FB6C8 		movzbl	%r8b, %ecx
- 8167 739d 48C1E008 		salq	$8, %rax
- 8168 73a1 4809C8   		orq	%rcx, %rax
- 8169 73a4 410FB6CE 		movzbl	%r14b, %ecx
- 8170 73a8 48C1E008 		salq	$8, %rax
- 8171 73ac 4809C8   		orq	%rcx, %rax
- 8172 73af 410FB6CD 		movzbl	%r13b, %ecx
- 8173 73b3 48C1E008 		salq	$8, %rax
- 8174 73b7 4809C8   		orq	%rcx, %rax
- 8175 73ba 410FB6CC 		movzbl	%r12b, %ecx
- 8176 73be 48C1E008 		salq	$8, %rax
- 8177 73c2 4809C8   		orq	%rcx, %rax
- 8178 73c5 410FB6CB 		movzbl	%r11b, %ecx
- 8179 73c9 48C1E008 		salq	$8, %rax
- 8180 73cd 4809C8   		orq	%rcx, %rax
- 8181 73d0 410FB6CA 		movzbl	%r10b, %ecx
- 8182 73d4 48C1E008 		salq	$8, %rax
- 8183 73d8 4809C8   		orq	%rcx, %rax
- 8184 73db 48899590 		movq	%rdx, -10352(%rbp)
- 8184      D7FFFF
- 8185 73e2 48898598 		movq	%rax, -10344(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 270
-
-
- 8185      D7FFFF
- 8186 73e9 660F6F85 		movdqa	-10352(%rbp), %xmm0
- 8186      90D7FFFF 
- 8187              	.LBE853:
- 8188              	.LBE852:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 8189              		.loc 2 862 0
- 8190 73f1 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 8190      E0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 8191              		.loc 2 866 0
- 8192 73f9 C785BCFD 		movl	$0, -580(%rbp)
- 8192      FFFF0000 
- 8192      0000
- 8193 7403 E9860200 		jmp	.L202
- 8193      00
- 8194              	.L211:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 8195              		.loc 2 868 0
- 8196 7408 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 8196      00000000 
- 8197 7410 F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 8197      50FEFFFF 
- 8198 7418 F30F6F85 		movdqu	-544(%rbp), %xmm0
- 8198      E0FDFFFF 
- 8199 7420 F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 8199      40FEFFFF 
- 8200              	.LBB854:
- 8201              	.LBB855:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 8202              		.loc 2 380 0
- 8203 7428 F30F6F85 		movdqu	-432(%rbp), %xmm0
- 8203      50FEFFFF 
- 8204 7430 F30F7F85 		movdqu	%xmm0, -6832(%rbp)
- 8204      50E5FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 8205              		.loc 2 381 0
- 8206 7438 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 8206      40FEFFFF 
- 8207 7440 F30F7F85 		movdqu	%xmm0, -6848(%rbp)
- 8207      40E5FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 8208              		.loc 2 383 0
- 8209 7448 C7856CFE 		movl	$0, -404(%rbp)
- 8209      FFFF0000 
- 8209      0000
- 8210 7452 EB5C     		jmp	.L203
- 8211              	.L206:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 8212              		.loc 2 385 0
- 8213 7454 8B856CFE 		movl	-404(%rbp), %eax
- 8213      FFFF
- 8214 745a 89C0     		mov	%eax, %eax
- 8215 745c 0FB68405 		movzbl	-6848(%rbp,%rax), %eax
- 8215      40E5FFFF 
- 8216 7464 84C0     		testb	%al, %al
- 8217 7466 7912     		jns	.L204
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 271
-
-
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 8218              		.loc 2 386 0
- 8219 7468 8B856CFE 		movl	-404(%rbp), %eax
- 8219      FFFF
- 8220 746e 89C0     		mov	%eax, %eax
- 8221 7470 C6840560 		movb	$0, -6816(%rbp,%rax)
- 8221      E5FFFF00 
- 8222 7478 EB2F     		jmp	.L205
- 8223              	.L204:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 8224              		.loc 2 388 0
- 8225 747a 8B8D6CFE 		movl	-404(%rbp), %ecx
- 8225      FFFF
- 8226 7480 8B856CFE 		movl	-404(%rbp), %eax
- 8226      FFFF
- 8227 7486 89C0     		mov	%eax, %eax
- 8228 7488 0FB68405 		movzbl	-6848(%rbp,%rax), %eax
- 8228      40E5FFFF 
- 8229 7490 0FB6C0   		movzbl	%al, %eax
- 8230 7493 83E00F   		andl	$15, %eax
- 8231 7496 4898     		cltq
- 8232 7498 0FB69405 		movzbl	-6832(%rbp,%rax), %edx
- 8232      50E5FFFF 
- 8233 74a0 89C8     		mov	%ecx, %eax
- 8234 74a2 88940560 		movb	%dl, -6816(%rbp,%rax)
- 8234      E5FFFF
- 8235              	.L205:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 8236              		.loc 2 383 0
- 8237 74a9 83856CFE 		addl	$1, -404(%rbp)
- 8237      FFFF01
- 8238              	.L203:
- 8239 74b0 83BD6CFE 		cmpl	$15, -404(%rbp)
- 8239      FFFF0F
- 8240 74b7 769B     		jbe	.L206
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 8241              		.loc 2 391 0
- 8242 74b9 F30F6F85 		movdqu	-6816(%rbp), %xmm0
- 8242      60E5FFFF 
- 8243              	.LBE855:
- 8244              	.LBE854:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 8245              		.loc 2 868 0
- 8246 74c1 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 8246      D0FDFFFF 
- 8247 74c9 F30F6F85 		movdqu	-528(%rbp), %xmm0
- 8247      F0FDFFFF 
- 8248 74d1 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 8248      80FEFFFF 
- 8249 74d9 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 8249      D0FDFFFF 
- 8250 74e1 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 8250      70FEFFFF 
- 8251              	.LBB856:
- 8252              	.LBB857:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 8253              		.loc 2 234 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 272
-
-
- 8254 74e9 F30F6F85 		movdqu	-400(%rbp), %xmm0
- 8254      70FEFFFF 
- 8255 74f1 F30F6F8D 		movdqu	-384(%rbp), %xmm1
- 8255      80FEFFFF 
- 8256 74f9 660FEBC1 		por	%xmm1, %xmm0
- 8257              	.LBE857:
- 8258              	.LBE856:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 8259              		.loc 2 870 0
- 8260 74fd F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 8260      D0FDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 8261              		.loc 2 872 0
- 8262 7505 8B85BCFD 		mov	-580(%rbp), %eax
- 8262      FFFF
- 8263 750b 48C1E004 		salq	$4, %rax
- 8264 750f 48038598 		addq	-616(%rbp), %rax
- 8264      FDFFFF
- 8265 7516 660F6F00 		movdqa	(%rax), %xmm0
- 8266 751a F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 8266      A0FEFFFF 
- 8267 7522 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 8267      D0FDFFFF 
- 8268 752a F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 8268      90FEFFFF 
- 8269              	.LBB858:
- 8270              	.LBB859:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 8271              		.loc 2 380 0
- 8272 7532 F30F6F85 		movdqu	-352(%rbp), %xmm0
- 8272      A0FEFFFF 
- 8273 753a F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 8273      80E5FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 8274              		.loc 2 381 0
- 8275 7542 F30F6F85 		movdqu	-368(%rbp), %xmm0
- 8275      90FEFFFF 
- 8276 754a F30F7F85 		movdqu	%xmm0, -6800(%rbp)
- 8276      70E5FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 8277              		.loc 2 383 0
- 8278 7552 C785BCFE 		movl	$0, -324(%rbp)
- 8278      FFFF0000 
- 8278      0000
- 8279 755c EB5C     		jmp	.L207
- 8280              	.L210:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 8281              		.loc 2 385 0
- 8282 755e 8B85BCFE 		movl	-324(%rbp), %eax
- 8282      FFFF
- 8283 7564 89C0     		mov	%eax, %eax
- 8284 7566 0FB68405 		movzbl	-6800(%rbp,%rax), %eax
- 8284      70E5FFFF 
- 8285 756e 84C0     		testb	%al, %al
- 8286 7570 7912     		jns	.L208
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 8287              		.loc 2 386 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 273
-
-
- 8288 7572 8B85BCFE 		movl	-324(%rbp), %eax
- 8288      FFFF
- 8289 7578 89C0     		mov	%eax, %eax
- 8290 757a C6840590 		movb	$0, -6768(%rbp,%rax)
- 8290      E5FFFF00 
- 8291 7582 EB2F     		jmp	.L209
- 8292              	.L208:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 8293              		.loc 2 388 0
- 8294 7584 8B8DBCFE 		movl	-324(%rbp), %ecx
- 8294      FFFF
- 8295 758a 8B85BCFE 		movl	-324(%rbp), %eax
- 8295      FFFF
- 8296 7590 89C0     		mov	%eax, %eax
- 8297 7592 0FB68405 		movzbl	-6800(%rbp,%rax), %eax
- 8297      70E5FFFF 
- 8298 759a 0FB6C0   		movzbl	%al, %eax
- 8299 759d 83E00F   		andl	$15, %eax
- 8300 75a0 4898     		cltq
- 8301 75a2 0FB69405 		movzbl	-6784(%rbp,%rax), %edx
- 8301      80E5FFFF 
- 8302 75aa 89C8     		mov	%ecx, %eax
- 8303 75ac 88940590 		movb	%dl, -6768(%rbp,%rax)
- 8303      E5FFFF
- 8304              	.L209:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 8305              		.loc 2 383 0
- 8306 75b3 8385BCFE 		addl	$1, -324(%rbp)
- 8306      FFFF01
- 8307              	.L207:
- 8308 75ba 83BDBCFE 		cmpl	$15, -324(%rbp)
- 8308      FFFF0F
- 8309 75c1 769B     		jbe	.L210
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 8310              		.loc 2 391 0
- 8311 75c3 F30F6F85 		movdqu	-6768(%rbp), %xmm0
- 8311      90E5FFFF 
- 8312              	.LBE859:
- 8313              	.LBE858:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 8314              		.loc 2 872 0
- 8315 75cb F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 8315      D0FDFFFF 
- 8316 75d3 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 8316      C0FDFFFF 
- 8317 75db F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 8317      D0FEFFFF 
- 8318 75e3 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 8318      D0FDFFFF 
- 8319 75eb F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 8319      C0FEFFFF 
- 8320              	.LBB860:
- 8321              	.LBB861:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 8322              		.loc 2 234 0
- 8323 75f3 F30F6F85 		movdqu	-320(%rbp), %xmm0
- 8323      C0FEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 274
-
-
- 8324 75fb F30F6F8D 		movdqu	-304(%rbp), %xmm1
- 8324      D0FEFFFF 
- 8325 7603 660FEBC1 		por	%xmm1, %xmm0
- 8326              	.LBE861:
- 8327              	.LBE860:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 8328              		.loc 2 874 0
- 8329 7607 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 8329      C0FDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 8330              		.loc 2 876 0
- 8331 760f 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 8331      00000000 
- 8332 7617 F30F6F8D 		movdqu	-544(%rbp), %xmm1
- 8332      E0FDFFFF 
- 8333 761f F30F7F8D 		movdqu	%xmm1, -272(%rbp)
- 8333      F0FEFFFF 
- 8334 7627 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 8334      E0FEFFFF 
- 8335              	.LBB862:
- 8336              	.LBB863:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 8337              		.loc 2 290 0
- 8338 762f F30F6F8D 		movdqu	-288(%rbp), %xmm1
- 8338      E0FEFFFF 
- 8339 7637 F30F6F85 		movdqu	-272(%rbp), %xmm0
- 8339      F0FEFFFF 
- 8340 763f 660FF8C1 		psubb	%xmm1, %xmm0
- 8341              	.LBE863:
- 8342              	.LBE862:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 8343              		.loc 2 876 0
- 8344 7643 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 8344      E0FDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 8345              		.loc 2 878 0
- 8346 764b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 8346      00000000 
- 8347 7653 F30F6F8D 		movdqu	-544(%rbp), %xmm1
- 8347      E0FDFFFF 
- 8348 765b F30F7F8D 		movdqu	%xmm1, -240(%rbp)
- 8348      10FFFFFF 
- 8349 7663 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 8349      00FFFFFF 
- 8350              	.LBB864:
- 8351              	.LBB865:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 8352              		.loc 2 206 0
- 8353 766b F30F6F85 		movdqu	-256(%rbp), %xmm0
- 8353      00FFFFFF 
- 8354 7673 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 8354      10FFFFFF 
- 8355 767b 660FDBC1 		pand	%xmm1, %xmm0
- 8356              	.LBE865:
- 8357              	.LBE864:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 8358              		.loc 2 878 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 275
-
-
- 8359 767f F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 8359      E0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 8360              		.loc 2 866 0
- 8361 7687 8385BCFD 		addl	$1, -580(%rbp)
- 8361      FFFF01
- 8362              	.L202:
- 8363 768e 83BDBCFD 		cmpl	$15, -580(%rbp)
- 8363      FFFF0F
- 8364 7695 0F866DFD 		jbe	.L211
- 8364      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 8365              		.loc 2 882 0
- 8366 769b F30F6F85 		movdqu	-576(%rbp), %xmm0
- 8366      C0FDFFFF 
- 8367              	.LBE849:
- 8368              	.LBE848:
- 8369              	.LBE847:
- 8370              	.LBE846:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 8371              		.loc 2 1682 0
- 8372 76a3 660F7F85 		movdqa	%xmm0, -9616(%rbp)
- 8372      70DAFFFF 
- 8373              	.LBB866:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 8374              		.loc 2 1683 0
- 8375 76ab 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8375      70DAFFFF 
- 8376 76b3 F30F7F85 		movdqu	%xmm0, -6880(%rbp)
- 8376      20E5FFFF 
- 8377 76bb E8000000 		call	KDbgWriterGet at PLT
- 8377      00
- 8378 76c0 4885C0   		testq	%rax, %rax
- 8379 76c3 7479     		je	.L213
- 8380 76c5 BF010000 		movl	$1, %edi
- 8380      00
- 8381 76ca E8000000 		call	KDbgCondToFlag at PLT
- 8381      00
- 8382 76cf 4889C6   		movq	%rax, %rsi
- 8383 76d2 BF100000 		movl	$16, %edi
- 8383      00
- 8384 76d7 E8000000 		call	KDbgTestModConds at PLT
- 8384      00
- 8385 76dc 84C0     		testb	%al, %al
- 8386 76de 745E     		je	.L213
- 8387 76e0 8B852CE5 		movl	-6868(%rbp), %eax
- 8387      FFFF
- 8388 76e6 89C7     		movl	%eax, %edi
- 8389 76e8 E81389FF 		call	bswap_32
- 8389      FF
- 8390 76ed 4189C5   		movl	%eax, %r13d
- 8391 76f0 8B8528E5 		movl	-6872(%rbp), %eax
- 8391      FFFF
- 8392 76f6 89C7     		movl	%eax, %edi
- 8393 76f8 E80389FF 		call	bswap_32
- 8393      FF
- 8394 76fd 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 276
-
-
- 8395 7700 8B8524E5 		movl	-6876(%rbp), %eax
- 8395      FFFF
- 8396 7706 89C7     		movl	%eax, %edi
- 8397 7708 E8F388FF 		call	bswap_32
- 8397      FF
- 8398 770d 89C3     		movl	%eax, %ebx
- 8399 770f 8B8520E5 		movl	-6880(%rbp), %eax
- 8399      FFFF
- 8400 7715 89C7     		movl	%eax, %edi
- 8401 7717 E8E488FF 		call	bswap_32
- 8401      FF
- 8402 771c 4589E9   		movl	%r13d, %r9d
- 8403 771f 4589E0   		movl	%r12d, %r8d
- 8404 7722 89D9     		movl	%ebx, %ecx
- 8405 7724 89C2     		movl	%eax, %edx
- 8406 7726 488D3500 		leaq	.LC0(%rip), %rsi
- 8406      000000
- 8407 772d 488D3D00 		leaq	.LC1(%rip), %rdi
- 8407      000000
- 8408 7734 B8000000 		movl	$0, %eax
- 8408      00
- 8409 7739 E8000000 		call	KDbgMsg at PLT
- 8409      00
- 8410              	.L213:
- 8411 773e 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8411      70DAFFFF 
- 8412 7746 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 8412      20FFFFFF 
- 8413              	.LBE866:
- 8414              	.LBB867:
- 8415              	.LBB868:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 8416              		.loc 2 667 0
- 8417 774e 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 8417      00000000 
- 8418 7756 F30F6F8D 		movdqu	-224(%rbp), %xmm1
- 8418      20FFFFFF 
- 8419 775e F30F7F8D 		movdqu	%xmm1, -192(%rbp)
- 8419      40FFFFFF 
- 8420 7766 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 8420      30FFFFFF 
- 8421              	.LBB869:
- 8422              	.LBB870:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 8423              		.loc 2 380 0
- 8424 776e F30F6F85 		movdqu	-192(%rbp), %xmm0
- 8424      40FFFFFF 
- 8425 7776 F30F7F85 		movdqu	%xmm0, -6736(%rbp)
- 8425      B0E5FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 8426              		.loc 2 381 0
- 8427 777e F30F6F85 		movdqu	-208(%rbp), %xmm0
- 8427      30FFFFFF 
- 8428 7786 F30F7F85 		movdqu	%xmm0, -6752(%rbp)
- 8428      A0E5FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 8429              		.loc 2 383 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 277
-
-
- 8430 778e C7855CFF 		movl	$0, -164(%rbp)
- 8430      FFFF0000 
- 8430      0000
- 8431 7798 EB5C     		jmp	.L214
- 8432              	.L217:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 8433              		.loc 2 385 0
- 8434 779a 8B855CFF 		movl	-164(%rbp), %eax
- 8434      FFFF
- 8435 77a0 89C0     		mov	%eax, %eax
- 8436 77a2 0FB68405 		movzbl	-6752(%rbp,%rax), %eax
- 8436      A0E5FFFF 
- 8437 77aa 84C0     		testb	%al, %al
- 8438 77ac 7912     		jns	.L215
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 8439              		.loc 2 386 0
- 8440 77ae 8B855CFF 		movl	-164(%rbp), %eax
- 8440      FFFF
- 8441 77b4 89C0     		mov	%eax, %eax
- 8442 77b6 C68405C0 		movb	$0, -6720(%rbp,%rax)
- 8442      E5FFFF00 
- 8443 77be EB2F     		jmp	.L216
- 8444              	.L215:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 8445              		.loc 2 388 0
- 8446 77c0 8B8D5CFF 		movl	-164(%rbp), %ecx
- 8446      FFFF
- 8447 77c6 8B855CFF 		movl	-164(%rbp), %eax
- 8447      FFFF
- 8448 77cc 89C0     		mov	%eax, %eax
- 8449 77ce 0FB68405 		movzbl	-6752(%rbp,%rax), %eax
- 8449      A0E5FFFF 
- 8450 77d6 0FB6C0   		movzbl	%al, %eax
- 8451 77d9 83E00F   		andl	$15, %eax
- 8452 77dc 4898     		cltq
- 8453 77de 0FB69405 		movzbl	-6736(%rbp,%rax), %edx
- 8453      B0E5FFFF 
- 8454 77e6 89C8     		mov	%ecx, %eax
- 8455 77e8 889405C0 		movb	%dl, -6720(%rbp,%rax)
- 8455      E5FFFF
- 8456              	.L216:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 8457              		.loc 2 383 0
- 8458 77ef 83855CFF 		addl	$1, -164(%rbp)
- 8458      FFFF01
- 8459              	.L214:
- 8460 77f6 83BD5CFF 		cmpl	$15, -164(%rbp)
- 8460      FFFF0F
- 8461 77fd 769B     		jbe	.L217
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 8462              		.loc 2 391 0
- 8463 77ff F30F6F85 		movdqu	-6720(%rbp), %xmm0
- 8463      C0E5FFFF 
- 8464              	.LBE870:
- 8465              	.LBE869:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 8466              		.loc 2 667 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 278
-
-
- 8467 7807 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 8467      20FFFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8468              		.loc 2 668 0
- 8469 780f F30F6F85 		movdqu	-224(%rbp), %xmm0
- 8469      20FFFFFF 
- 8470              	.LBE868:
- 8471              	.LBE867:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 8472              		.loc 2 1684 0
- 8473 7817 660F7F85 		movdqa	%xmm0, -9616(%rbp)
- 8473      70DAFFFF 
- 8474              	.LBB871:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 8475              		.loc 2 1685 0
- 8476 781f 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8476      70DAFFFF 
- 8477 7827 F30F7F85 		movdqu	%xmm0, -6896(%rbp)
- 8477      10E5FFFF 
- 8478 782f E8000000 		call	KDbgWriterGet at PLT
- 8478      00
- 8479 7834 4885C0   		testq	%rax, %rax
- 8480 7837 7479     		je	.L219
- 8481 7839 BF010000 		movl	$1, %edi
- 8481      00
- 8482 783e E8000000 		call	KDbgCondToFlag at PLT
- 8482      00
- 8483 7843 4889C6   		movq	%rax, %rsi
- 8484 7846 BF100000 		movl	$16, %edi
- 8484      00
- 8485 784b E8000000 		call	KDbgTestModConds at PLT
- 8485      00
- 8486 7850 84C0     		testb	%al, %al
- 8487 7852 745E     		je	.L219
- 8488 7854 8B851CE5 		movl	-6884(%rbp), %eax
- 8488      FFFF
- 8489 785a 89C7     		movl	%eax, %edi
- 8490 785c E89F87FF 		call	bswap_32
- 8490      FF
- 8491 7861 4189C5   		movl	%eax, %r13d
- 8492 7864 8B8518E5 		movl	-6888(%rbp), %eax
- 8492      FFFF
- 8493 786a 89C7     		movl	%eax, %edi
- 8494 786c E88F87FF 		call	bswap_32
- 8494      FF
- 8495 7871 4189C4   		movl	%eax, %r12d
- 8496 7874 8B8514E5 		movl	-6892(%rbp), %eax
- 8496      FFFF
- 8497 787a 89C7     		movl	%eax, %edi
- 8498 787c E87F87FF 		call	bswap_32
- 8498      FF
- 8499 7881 89C3     		movl	%eax, %ebx
- 8500 7883 8B8510E5 		movl	-6896(%rbp), %eax
- 8500      FFFF
- 8501 7889 89C7     		movl	%eax, %edi
- 8502 788b E87087FF 		call	bswap_32
- 8502      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 279
-
-
- 8503 7890 4589E9   		movl	%r13d, %r9d
- 8504 7893 4589E0   		movl	%r12d, %r8d
- 8505 7896 89D9     		movl	%ebx, %ecx
- 8506 7898 89C2     		movl	%eax, %edx
- 8507 789a 488D3500 		leaq	.LC2(%rip), %rsi
- 8507      000000
- 8508 78a1 488D3D00 		leaq	.LC1(%rip), %rdi
- 8508      000000
- 8509 78a8 B8000000 		movl	$0, %eax
- 8509      00
- 8510 78ad E8000000 		call	KDbgMsg at PLT
- 8510      00
- 8511              	.L219:
- 8512 78b2 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8512      70DAFFFF 
- 8513 78ba F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 8513      70FFFFFF 
- 8514 78c2 660F6F85 		movdqa	-9600(%rbp), %xmm0
- 8514      80DAFFFF 
- 8515 78ca F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 8515      60FFFFFF 
- 8516              	.LBE871:
- 8517              	.LBB872:
- 8518              	.LBB873:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 8519              		.loc 2 178 0
- 8520 78d2 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 8520      60FFFFFF 
- 8521 78da F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 8521      70FFFFFF 
- 8522 78e2 660FEFC1 		pxor	%xmm1, %xmm0
- 8523              	.LBE873:
- 8524              	.LBE872:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 8525              		.loc 2 1686 0
- 8526 78e6 660F7F85 		movdqa	%xmm0, -9616(%rbp)
- 8526      70DAFFFF 
- 8527              	.LBB874:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 8528              		.loc 2 1687 0
- 8529 78ee 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8529      70DAFFFF 
- 8530 78f6 F30F7F85 		movdqu	%xmm0, -6912(%rbp)
- 8530      00E5FFFF 
- 8531 78fe E8000000 		call	KDbgWriterGet at PLT
- 8531      00
- 8532 7903 4885C0   		testq	%rax, %rax
- 8533 7906 7479     		je	.L221
- 8534 7908 BF010000 		movl	$1, %edi
- 8534      00
- 8535 790d E8000000 		call	KDbgCondToFlag at PLT
- 8535      00
- 8536 7912 4889C6   		movq	%rax, %rsi
- 8537 7915 BF100000 		movl	$16, %edi
- 8537      00
- 8538 791a E8000000 		call	KDbgTestModConds at PLT
- 8538      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 280
-
-
- 8539 791f 84C0     		testb	%al, %al
- 8540 7921 745E     		je	.L221
- 8541 7923 8B850CE5 		movl	-6900(%rbp), %eax
- 8541      FFFF
- 8542 7929 89C7     		movl	%eax, %edi
- 8543 792b E8D086FF 		call	bswap_32
- 8543      FF
- 8544 7930 4189C5   		movl	%eax, %r13d
- 8545 7933 8B8508E5 		movl	-6904(%rbp), %eax
- 8545      FFFF
- 8546 7939 89C7     		movl	%eax, %edi
- 8547 793b E8C086FF 		call	bswap_32
- 8547      FF
- 8548 7940 4189C4   		movl	%eax, %r12d
- 8549 7943 8B8504E5 		movl	-6908(%rbp), %eax
- 8549      FFFF
- 8550 7949 89C7     		movl	%eax, %edi
- 8551 794b E8B086FF 		call	bswap_32
- 8551      FF
- 8552 7950 89C3     		movl	%eax, %ebx
- 8553 7952 8B8500E5 		movl	-6912(%rbp), %eax
- 8553      FFFF
- 8554 7958 89C7     		movl	%eax, %edi
- 8555 795a E8A186FF 		call	bswap_32
- 8555      FF
- 8556 795f 4589E9   		movl	%r13d, %r9d
- 8557 7962 4589E0   		movl	%r12d, %r8d
- 8558 7965 89D9     		movl	%ebx, %ecx
- 8559 7967 89C2     		movl	%eax, %edx
- 8560 7969 488D3500 		leaq	.LC3(%rip), %rsi
- 8560      000000
- 8561 7970 488D3D00 		leaq	.LC1(%rip), %rdi
- 8561      000000
- 8562 7977 B8000000 		movl	$0, %eax
- 8562      00
- 8563 797c E8000000 		call	KDbgMsg at PLT
- 8563      00
- 8564              	.L221:
- 8565 7981 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8565      70DAFFFF 
- 8566 7989 F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 8566      80
- 8567              	.LBE874:
- 8568              	.LBB875:
- 8569              	.LBB876:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8570              		.loc 2 1357 0
- 8571 798e F30F6F45 		movdqu	-128(%rbp), %xmm0
- 8571      80
- 8572 7993 F30F7F85 		movdqu	%xmm0, -6704(%rbp)
- 8572      D0E5FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 8573              		.loc 2 1358 0
- 8574 799b 8B85DCE5 		movl	-6692(%rbp), %eax
- 8574      FFFF
- 8575 79a1 8985D8E5 		movl	%eax, -6696(%rbp)
- 8575      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 281
-
-
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 8576              		.loc 2 1359 0
- 8577 79a7 8B85DCE5 		movl	-6692(%rbp), %eax
- 8577      FFFF
- 8578 79ad 8985D4E5 		movl	%eax, -6700(%rbp)
- 8578      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 8579              		.loc 2 1360 0
- 8580 79b3 8B85DCE5 		movl	-6692(%rbp), %eax
- 8580      FFFF
- 8581 79b9 8985D0E5 		movl	%eax, -6704(%rbp)
- 8581      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8582              		.loc 2 1361 0
- 8583 79bf F30F6F85 		movdqu	-6704(%rbp), %xmm0
- 8583      D0E5FFFF 
- 8584              	.LBE876:
- 8585              	.LBE875:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 8586              		.loc 2 1688 0
- 8587 79c7 660F7F85 		movdqa	%xmm0, -9616(%rbp)
- 8587      70DAFFFF 
- 8588              	.LBB877:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 8589              		.loc 2 1689 0
- 8590 79cf 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8590      70DAFFFF 
- 8591 79d7 F30F7F85 		movdqu	%xmm0, -6928(%rbp)
- 8591      F0E4FFFF 
- 8592 79df E8000000 		call	KDbgWriterGet at PLT
- 8592      00
- 8593 79e4 4885C0   		testq	%rax, %rax
- 8594 79e7 7479     		je	.L223
- 8595 79e9 BF010000 		movl	$1, %edi
- 8595      00
- 8596 79ee E8000000 		call	KDbgCondToFlag at PLT
- 8596      00
- 8597 79f3 4889C6   		movq	%rax, %rsi
- 8598 79f6 BF100000 		movl	$16, %edi
- 8598      00
- 8599 79fb E8000000 		call	KDbgTestModConds at PLT
- 8599      00
- 8600 7a00 84C0     		testb	%al, %al
- 8601 7a02 745E     		je	.L223
- 8602 7a04 8B85FCE4 		movl	-6916(%rbp), %eax
- 8602      FFFF
- 8603 7a0a 89C7     		movl	%eax, %edi
- 8604 7a0c E8EF85FF 		call	bswap_32
- 8604      FF
- 8605 7a11 4189C5   		movl	%eax, %r13d
- 8606 7a14 8B85F8E4 		movl	-6920(%rbp), %eax
- 8606      FFFF
- 8607 7a1a 89C7     		movl	%eax, %edi
- 8608 7a1c E8DF85FF 		call	bswap_32
- 8608      FF
- 8609 7a21 4189C4   		movl	%eax, %r12d
- 8610 7a24 8B85F4E4 		movl	-6924(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 282
-
-
- 8610      FFFF
- 8611 7a2a 89C7     		movl	%eax, %edi
- 8612 7a2c E8CF85FF 		call	bswap_32
- 8612      FF
- 8613 7a31 89C3     		movl	%eax, %ebx
- 8614 7a33 8B85F0E4 		movl	-6928(%rbp), %eax
- 8614      FFFF
- 8615 7a39 89C7     		movl	%eax, %edi
- 8616 7a3b E8C085FF 		call	bswap_32
- 8616      FF
- 8617 7a40 4589E9   		movl	%r13d, %r9d
- 8618 7a43 4589E0   		movl	%r12d, %r8d
- 8619 7a46 89D9     		movl	%ebx, %ecx
- 8620 7a48 89C2     		movl	%eax, %edx
- 8621 7a4a 488D3500 		leaq	.LC4(%rip), %rsi
- 8621      000000
- 8622 7a51 488D3D00 		leaq	.LC1(%rip), %rdi
- 8622      000000
- 8623 7a58 B8000000 		movl	$0, %eax
- 8623      00
- 8624 7a5d E8000000 		call	KDbgMsg at PLT
- 8624      00
- 8625              	.L223:
- 8626              	.LBE877:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 8627              		.loc 2 1690 0
- 8628 7a62 660F6F85 		movdqa	-9616(%rbp), %xmm0
- 8628      70DAFFFF 
- 8629              	.LBE843:
- 8630              	.LBE842:
-1753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x36,10);
- 8631              		.loc 2 1753 0
- 8632 7a6a F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 8632      20E6FFFF 
- 8633 7a72 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 8633      10E6FFFF 
- 8634 7a7a F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 8634      90
- 8635              	.LBB878:
- 8636              	.LBB879:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 8637              		.loc 2 1565 0
- 8638 7a7f F30F6F45 		movdqu	-112(%rbp), %xmm0
- 8638      90
- 8639 7a84 660F7F85 		movdqa	%xmm0, -9568(%rbp)
- 8639      A0DAFFFF 
- 8640 7a8c 660F6F85 		movdqa	-9568(%rbp), %xmm0
- 8640      A0DAFFFF 
- 8641 7a94 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 8641      A0
- 8642              	.LBB880:
- 8643              	.LBB881:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8644              		.loc 2 1282 0
- 8645 7a99 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 8645      A0
- 8646 7a9e F30F7F85 		movdqu	%xmm0, -6688(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 283
-
-
- 8646      E0E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 8647              		.loc 2 1283 0
- 8648 7aa6 8B85E8E5 		movl	-6680(%rbp), %eax
- 8648      FFFF
- 8649 7aac 8985ECE5 		movl	%eax, -6676(%rbp)
- 8649      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 8650              		.loc 2 1284 0
- 8651 7ab2 8B85E4E5 		movl	-6684(%rbp), %eax
- 8651      FFFF
- 8652 7ab8 8985E8E5 		movl	%eax, -6680(%rbp)
- 8652      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 8653              		.loc 2 1285 0
- 8654 7abe 8B85E0E5 		movl	-6688(%rbp), %eax
- 8654      FFFF
- 8655 7ac4 8985E4E5 		movl	%eax, -6684(%rbp)
- 8655      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 8656              		.loc 2 1286 0
- 8657 7aca C785E0E5 		movl	$0, -6688(%rbp)
- 8657      FFFF0000 
- 8657      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8658              		.loc 2 1287 0
- 8659 7ad4 F30F6F85 		movdqu	-6688(%rbp), %xmm0
- 8659      E0E5FFFF 
- 8660              	.LBE881:
- 8661              	.LBE880:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8662              		.loc 2 1567 0
- 8663 7adc 660F7F85 		movdqa	%xmm0, -9568(%rbp)
- 8663      A0DAFFFF 
- 8664 7ae4 660F6F85 		movdqa	-9568(%rbp), %xmm0
- 8664      A0DAFFFF 
- 8665 7aec 660FEF45 		pxor	-112(%rbp), %xmm0
- 8665      90
- 8666 7af1 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 8666      90
- 8667 7af6 660F6F85 		movdqa	-9568(%rbp), %xmm0
- 8667      A0DAFFFF 
- 8668 7afe F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 8668      B0
- 8669              	.LBB882:
- 8670              	.LBB883:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8671              		.loc 2 1282 0
- 8672 7b03 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 8672      B0
- 8673 7b08 F30F7F85 		movdqu	%xmm0, -6672(%rbp)
- 8673      F0E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 8674              		.loc 2 1283 0
- 8675 7b10 8B85F8E5 		movl	-6664(%rbp), %eax
- 8675      FFFF
- 8676 7b16 8985FCE5 		movl	%eax, -6660(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 284
-
-
- 8676      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 8677              		.loc 2 1284 0
- 8678 7b1c 8B85F4E5 		movl	-6668(%rbp), %eax
- 8678      FFFF
- 8679 7b22 8985F8E5 		movl	%eax, -6664(%rbp)
- 8679      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 8680              		.loc 2 1285 0
- 8681 7b28 8B85F0E5 		movl	-6672(%rbp), %eax
- 8681      FFFF
- 8682 7b2e 8985F4E5 		movl	%eax, -6668(%rbp)
- 8682      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 8683              		.loc 2 1286 0
- 8684 7b34 C785F0E5 		movl	$0, -6672(%rbp)
- 8684      FFFF0000 
- 8684      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8685              		.loc 2 1287 0
- 8686 7b3e F30F6F85 		movdqu	-6672(%rbp), %xmm0
- 8686      F0E5FFFF 
- 8687              	.LBE883:
- 8688              	.LBE882:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8689              		.loc 2 1568 0
- 8690 7b46 660F7F85 		movdqa	%xmm0, -9568(%rbp)
- 8690      A0DAFFFF 
- 8691 7b4e 660F6F85 		movdqa	-9568(%rbp), %xmm0
- 8691      A0DAFFFF 
- 8692 7b56 660FEF45 		pxor	-112(%rbp), %xmm0
- 8692      90
- 8693 7b5b F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 8693      90
- 8694 7b60 660F6F85 		movdqa	-9568(%rbp), %xmm0
- 8694      A0DAFFFF 
- 8695 7b68 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 8695      C0
- 8696              	.LBB884:
- 8697              	.LBB885:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8698              		.loc 2 1282 0
- 8699 7b6d F30F6F45 		movdqu	-64(%rbp), %xmm0
- 8699      C0
- 8700 7b72 F30F7F85 		movdqu	%xmm0, -6656(%rbp)
- 8700      00E6FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 8701              		.loc 2 1283 0
- 8702 7b7a 8B8508E6 		movl	-6648(%rbp), %eax
- 8702      FFFF
- 8703 7b80 89850CE6 		movl	%eax, -6644(%rbp)
- 8703      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 8704              		.loc 2 1284 0
- 8705 7b86 8B8504E6 		movl	-6652(%rbp), %eax
- 8705      FFFF
- 8706 7b8c 898508E6 		movl	%eax, -6648(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 285
-
-
- 8706      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 8707              		.loc 2 1285 0
- 8708 7b92 8B8500E6 		movl	-6656(%rbp), %eax
- 8708      FFFF
- 8709 7b98 898504E6 		movl	%eax, -6652(%rbp)
- 8709      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 8710              		.loc 2 1286 0
- 8711 7b9e C78500E6 		movl	$0, -6656(%rbp)
- 8711      FFFF0000 
- 8711      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8712              		.loc 2 1287 0
- 8713 7ba8 F30F6F85 		movdqu	-6656(%rbp), %xmm0
- 8713      00E6FFFF 
- 8714              	.LBE885:
- 8715              	.LBE884:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8716              		.loc 2 1569 0
- 8717 7bb0 660F7F85 		movdqa	%xmm0, -9568(%rbp)
- 8717      A0DAFFFF 
- 8718 7bb8 660F6F85 		movdqa	-9568(%rbp), %xmm0
- 8718      A0DAFFFF 
- 8719 7bc0 660FEF45 		pxor	-112(%rbp), %xmm0
- 8719      90
- 8720 7bc5 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 8720      90
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8721              		.loc 2 1571 0
- 8722 7bca F30F6F45 		movdqu	-112(%rbp), %xmm0
- 8722      90
- 8723              	.LBE879:
- 8724              	.LBE878:
-1753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x36,10);
- 8725              		.loc 2 1753 0
- 8726 7bcf F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 8726      10E6FFFF 
- 8727 7bd7 F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 8727      20E6FFFF 
- 8728 7bdf F30F6F8D 		movdqu	-6640(%rbp), %xmm1
- 8728      10E6FFFF 
- 8729 7be7 660FEFC1 		pxor	%xmm1, %xmm0
- 8730 7beb F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 8730      10E6FFFF 
- 8731 7bf3 488B85B8 		movq	-9544(%rbp), %rax
- 8731      DAFFFF
- 8732 7bfa 4805A000 		addq	$160, %rax
- 8732      0000
- 8733 7c00 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 8733      10E6FFFF 
- 8734 7c08 F30F7F00 		movdqu	%xmm0, (%rax)
-1754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 8735              		.loc 2 1754 0
- 8736 7c0c 4881C458 		addq	$10328, %rsp
- 8736      280000
- 8737 7c13 5B       		popq	%rbx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 286
-
-
- 8738 7c14 415C     		popq	%r12
- 8739 7c16 415D     		popq	%r13
- 8740 7c18 415E     		popq	%r14
- 8741 7c1a 415F     		popq	%r15
- 8742 7c1c C9       		leave
- 8743 7c1d C3       		ret
- 8744              		.cfi_endproc
- 8745              	.LFE563:
- 8746              		.size	KAESBlockCipherVecKeyExpansion128, .-KAESBlockCipherVecKeyExpansion128
- 8747              		.type	KAESBlockCipherVecKeyExpansion192, @function
- 8748              	KAESBlockCipherVecKeyExpansion192:
- 8749              	.LFB564:
-1768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8750              		.loc 2 1768 0
- 8751              		.cfi_startproc
- 8752 7c1e 55       		pushq	%rbp
- 8753              	.LCFI4:
- 8754              		.cfi_def_cfa_offset 16
- 8755 7c1f 4889E5   		movq	%rsp, %rbp
- 8756              		.cfi_offset 6, -16
- 8757              	.LCFI5:
- 8758              		.cfi_def_cfa_register 6
- 8759 7c22 4157     		pushq	%r15
- 8760 7c24 4156     		pushq	%r14
- 8761 7c26 4155     		pushq	%r13
- 8762 7c28 4154     		pushq	%r12
- 8763 7c2a 53       		pushq	%rbx
- 8764 7c2b 4881ECB8 		subq	$6840, %rsp
- 8764      1A0000
- 8765 7c32 4889BD88 		movq	%rdi, -6264(%rbp)
- 8765      E7FFFF
- 8766 7c39 4889B580 		movq	%rsi, -6272(%rbp)
- 8766      E7FFFF
-1768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 8767              		.loc 2 1768 0
- 8768 7c40 488B8580 		movq	-6272(%rbp), %rax
- 8768      E7FFFF
- 8769 7c47 48898540 		movq	%rax, -4032(%rbp)
- 8769      F0FFFF
- 8770              	.LBB1210:
- 8771              	.LBB1211:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 8772              		.loc 2 134 0
- 8773 7c4e 488B8D40 		movq	-4032(%rbp), %rcx
- 8773      F0FFFF
- 8774 7c55 488D8590 		leaq	-6256(%rbp), %rax
- 8774      E7FFFF
- 8775 7c5c BA100000 		movl	$16, %edx
- 8775      00
- 8776 7c61 4889CE   		movq	%rcx, %rsi
- 8777 7c64 4889C7   		movq	%rax, %rdi
- 8778              		.cfi_offset 3, -56
- 8779              		.cfi_offset 12, -48
- 8780              		.cfi_offset 13, -40
- 8781              		.cfi_offset 14, -32
- 8782              		.cfi_offset 15, -24
- 8783 7c67 E8000000 		call	memmove at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 287
-
-
- 8783      00
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 8784              		.loc 2 135 0
- 8785 7c6c F30F6F85 		movdqu	-6256(%rbp), %xmm0
- 8785      90E7FFFF 
- 8786              	.LBE1211:
- 8787              	.LBE1210:
-1779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(StateIn) (key);              /* k0    : k1    : k2     : k3           */
- 8788              		.loc 2 1779 0
- 8789 7c74 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 8789      70E5FFFF 
-1780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateIn) (key+8);            /* k2    : k3    : k4     : k5           */
- 8790              		.loc 2 1780 0
- 8791 7c7c 488B8580 		movq	-6272(%rbp), %rax
- 8791      E7FFFF
- 8792 7c83 4883C008 		addq	$8, %rax
- 8793 7c87 48898548 		movq	%rax, -4024(%rbp)
- 8793      F0FFFF
- 8794              	.LBB1212:
- 8795              	.LBB1213:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 8796              		.loc 2 134 0
- 8797 7c8e 488B8D48 		movq	-4024(%rbp), %rcx
- 8797      F0FFFF
- 8798 7c95 488D85A0 		leaq	-6240(%rbp), %rax
- 8798      E7FFFF
- 8799 7c9c BA100000 		movl	$16, %edx
- 8799      00
- 8800 7ca1 4889CE   		movq	%rcx, %rsi
- 8801 7ca4 4889C7   		movq	%rax, %rdi
- 8802 7ca7 E8000000 		call	memmove at PLT
- 8802      00
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 8803              		.loc 2 135 0
- 8804 7cac F30F6F85 		movdqu	-6240(%rbp), %xmm0
- 8804      A0E7FFFF 
- 8805              	.LBE1213:
- 8806              	.LBE1212:
-1780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateIn) (key+8);            /* k2    : k3    : k4     : k5           */
- 8807              		.loc 2 1780 0
- 8808 7cb4 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 8808      80E5FFFF 
- 8809 7cbc 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 8809      80E5FFFF 
- 8810 7cc4 F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 8810      50F0FFFF 
- 8811              	.LBB1214:
- 8812              	.LBB1215:
-1305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8813              		.loc 2 1305 0
- 8814 7ccc F30F6F85 		movdqu	-4016(%rbp), %xmm0
- 8814      50F0FFFF 
- 8815 7cd4 F30F7F85 		movdqu	%xmm0, -6224(%rbp)
- 8815      B0E7FFFF 
-1306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[2];
- 8816              		.loc 2 1306 0
- 8817 7cdc 8B85B8E7 		movl	-6216(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 288
-
-
- 8817      FFFF
- 8818 7ce2 8985B0E7 		movl	%eax, -6224(%rbp)
- 8818      FFFF
-1307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 8819              		.loc 2 1307 0
- 8820 7ce8 8B85BCE7 		movl	-6212(%rbp), %eax
- 8820      FFFF
- 8821 7cee 8985B4E7 		movl	%eax, -6220(%rbp)
- 8821      FFFF
-1308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = 0;
- 8822              		.loc 2 1308 0
- 8823 7cf4 C785B8E7 		movl	$0, -6216(%rbp)
- 8823      FFFF0000 
- 8823      0000
-1309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = 0;
- 8824              		.loc 2 1309 0
- 8825 7cfe C785BCE7 		movl	$0, -6212(%rbp)
- 8825      FFFF0000 
- 8825      0000
-1310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8826              		.loc 2 1310 0
- 8827 7d08 F30F6F85 		movdqu	-6224(%rbp), %xmm0
- 8827      B0E7FFFF 
- 8828              	.LBE1215:
- 8829              	.LBE1214:
-1781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateShiftRight64) (v1);     /* k4    : k5    : 0      : 0            */
- 8830              		.loc 2 1781 0
- 8831 7d10 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 8831      80E5FFFF 
-1783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* K0:K1:K2:K3 */
- 8832              		.loc 2 1783 0
- 8833 7d18 488B8588 		movq	-6264(%rbp), %rax
- 8833      E7FFFF
- 8834 7d1f 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 8834      70E5FFFF 
- 8835 7d27 660F7F00 		movdqa	%xmm0, (%rax)
-1788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 8836              		.loc 2 1788 0
- 8837 7d2b 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 8837      80E5FFFF 
- 8838 7d33 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 8838      C0E5FFFF 
- 8839 7d3b 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 8839      C0E5FFFF 
- 8840 7d43 F30F7F85 		movdqu	%xmm0, -3984(%rbp)
- 8840      70F0FFFF 
- 8841              	.LBB1216:
- 8842              	.LBB1217:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 8843              		.loc 2 1629 0
- 8844 7d4b B8010000 		movl	$1, %eax
- 8844      00
- 8845 7d50 0FB6C0   		movzbl	%al, %eax
- 8846 7d53 898590F0 		movl	%eax, -3952(%rbp)
- 8846      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 8847              		.loc 2 1630 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 289
-
-
- 8848 7d59 F30F6F85 		movdqu	-3984(%rbp), %xmm0
- 8848      70F0FFFF 
- 8849 7d61 F30F7F85 		movdqu	%xmm0, -6192(%rbp)
- 8849      D0E7FFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 8850              		.loc 2 1631 0
- 8851 7d69 8B85D4E7 		movl	-6188(%rbp), %eax
- 8851      FFFF
- 8852 7d6f 898594F0 		movl	%eax, -3948(%rbp)
- 8852      FFFF
- 8853              	.LBB1218:
- 8854              	.LBB1219:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 8855              		.loc 2 740 0
- 8856 7d75 8B8594F0 		movl	-3948(%rbp), %eax
- 8856      FFFF
- 8857 7d7b 8985C0E7 		movl	%eax, -6208(%rbp)
- 8857      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 8858              		.loc 2 741 0
- 8859 7d81 C78598F0 		movl	$0, -3944(%rbp)
- 8859      FFFF0000 
- 8859      0000
- 8860 7d8b EB36     		jmp	.L226
- 8861              	.L227:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 8862              		.loc 2 742 0
- 8863 7d8d 8B8D98F0 		movl	-3944(%rbp), %ecx
- 8863      FFFF
- 8864 7d93 8B8598F0 		movl	-3944(%rbp), %eax
- 8864      FFFF
- 8865 7d99 89C0     		mov	%eax, %eax
- 8866 7d9b 0FB68405 		movzbl	-6208(%rbp,%rax), %eax
- 8866      C0E7FFFF 
- 8867 7da3 0FB6C0   		movzbl	%al, %eax
- 8868 7da6 89C2     		mov	%eax, %edx
- 8869 7da8 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 8869      000000
- 8870 7daf 0FB61402 		movzbl	(%rdx,%rax), %edx
- 8871 7db3 89C8     		mov	%ecx, %eax
- 8872 7db5 889405C0 		movb	%dl, -6208(%rbp,%rax)
- 8872      E7FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 8873              		.loc 2 741 0
- 8874 7dbc 838598F0 		addl	$1, -3944(%rbp)
- 8874      FFFF01
- 8875              	.L226:
- 8876 7dc3 83BD98F0 		cmpl	$3, -3944(%rbp)
- 8876      FFFF03
- 8877 7dca 76C1     		jbe	.L227
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 8878              		.loc 2 743 0
- 8879 7dcc 8B85C0E7 		movl	-6208(%rbp), %eax
- 8879      FFFF
- 8880              	.LBE1219:
- 8881              	.LBE1218:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 290
-
-
- 8882              		.loc 2 1631 0
- 8883 7dd2 89858CF0 		movl	%eax, -3956(%rbp)
- 8883      FFFF
- 8884 7dd8 8B858CF0 		movl	-3956(%rbp), %eax
- 8884      FFFF
- 8885 7dde 89859CF0 		movl	%eax, -3940(%rbp)
- 8885      FFFF
- 8886              	.LBB1220:
- 8887              	.LBB1221:
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 8888              		.loc 2 1196 0
- 8889 7de4 8B859CF0 		movl	-3940(%rbp), %eax
- 8889      FFFF
- 8890 7dea C1C808   		rorl	$8, %eax
- 8891              	.LBE1221:
- 8892              	.LBE1220:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 8893              		.loc 2 1632 0
- 8894 7ded 89858CF0 		movl	%eax, -3956(%rbp)
- 8894      FFFF
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 8895              		.loc 2 1633 0
- 8896 7df3 8B8590F0 		movl	-3952(%rbp), %eax
- 8896      FFFF
- 8897 7df9 31858CF0 		xorl	%eax, -3956(%rbp)
- 8897      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 8898              		.loc 2 1635 0
- 8899 7dff 8B858CF0 		movl	-3956(%rbp), %eax
- 8899      FFFF
- 8900 7e05 8985DCE7 		movl	%eax, -6180(%rbp)
- 8900      FFFF
- 8901 7e0b 8B85DCE7 		movl	-6180(%rbp), %eax
- 8901      FFFF
- 8902 7e11 8985D8E7 		movl	%eax, -6184(%rbp)
- 8902      FFFF
- 8903 7e17 8B85D8E7 		movl	-6184(%rbp), %eax
- 8903      FFFF
- 8904 7e1d 8985D4E7 		movl	%eax, -6188(%rbp)
- 8904      FFFF
- 8905 7e23 8B85D4E7 		movl	-6188(%rbp), %eax
- 8905      FFFF
- 8906 7e29 8985D0E7 		movl	%eax, -6192(%rbp)
- 8906      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 8907              		.loc 2 1636 0
- 8908 7e2f F30F6F85 		movdqu	-6192(%rbp), %xmm0
- 8908      D0E7FFFF 
- 8909              	.LBE1217:
- 8910              	.LBE1216:
-1788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 8911              		.loc 2 1788 0
- 8912 7e37 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 8912      C0E5FFFF 
- 8913 7e3f 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 8913      70E5FFFF 
- 8914 7e47 F30F7F85 		movdqu	%xmm0, -3936(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 291
-
-
- 8914      A0F0FFFF 
- 8915              	.LBB1222:
- 8916              	.LBB1223:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 8917              		.loc 2 1565 0
- 8918 7e4f F30F6F85 		movdqu	-3936(%rbp), %xmm0
- 8918      A0F0FFFF 
- 8919 7e57 660F7F85 		movdqa	%xmm0, -6704(%rbp)
- 8919      D0E5FFFF 
- 8920 7e5f 660F6F85 		movdqa	-6704(%rbp), %xmm0
- 8920      D0E5FFFF 
- 8921 7e67 F30F7F85 		movdqu	%xmm0, -3920(%rbp)
- 8921      B0F0FFFF 
- 8922              	.LBB1224:
- 8923              	.LBB1225:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8924              		.loc 2 1282 0
- 8925 7e6f F30F6F85 		movdqu	-3920(%rbp), %xmm0
- 8925      B0F0FFFF 
- 8926 7e77 F30F7F85 		movdqu	%xmm0, -6176(%rbp)
- 8926      E0E7FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 8927              		.loc 2 1283 0
- 8928 7e7f 8B85E8E7 		movl	-6168(%rbp), %eax
- 8928      FFFF
- 8929 7e85 8985ECE7 		movl	%eax, -6164(%rbp)
- 8929      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 8930              		.loc 2 1284 0
- 8931 7e8b 8B85E4E7 		movl	-6172(%rbp), %eax
- 8931      FFFF
- 8932 7e91 8985E8E7 		movl	%eax, -6168(%rbp)
- 8932      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 8933              		.loc 2 1285 0
- 8934 7e97 8B85E0E7 		movl	-6176(%rbp), %eax
- 8934      FFFF
- 8935 7e9d 8985E4E7 		movl	%eax, -6172(%rbp)
- 8935      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 8936              		.loc 2 1286 0
- 8937 7ea3 C785E0E7 		movl	$0, -6176(%rbp)
- 8937      FFFF0000 
- 8937      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8938              		.loc 2 1287 0
- 8939 7ead F30F6F85 		movdqu	-6176(%rbp), %xmm0
- 8939      E0E7FFFF 
- 8940              	.LBE1225:
- 8941              	.LBE1224:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8942              		.loc 2 1567 0
- 8943 7eb5 660F7F85 		movdqa	%xmm0, -6704(%rbp)
- 8943      D0E5FFFF 
- 8944 7ebd 660F6F85 		movdqa	-6704(%rbp), %xmm0
- 8944      D0E5FFFF 
- 8945 7ec5 660FEF85 		pxor	-3936(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 292
-
-
- 8945      A0F0FFFF 
- 8946 7ecd F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 8946      A0F0FFFF 
- 8947 7ed5 660F6F85 		movdqa	-6704(%rbp), %xmm0
- 8947      D0E5FFFF 
- 8948 7edd F30F7F85 		movdqu	%xmm0, -3904(%rbp)
- 8948      C0F0FFFF 
- 8949              	.LBB1226:
- 8950              	.LBB1227:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8951              		.loc 2 1282 0
- 8952 7ee5 F30F6F85 		movdqu	-3904(%rbp), %xmm0
- 8952      C0F0FFFF 
- 8953 7eed F30F7F85 		movdqu	%xmm0, -6160(%rbp)
- 8953      F0E7FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 8954              		.loc 2 1283 0
- 8955 7ef5 8B85F8E7 		movl	-6152(%rbp), %eax
- 8955      FFFF
- 8956 7efb 8985FCE7 		movl	%eax, -6148(%rbp)
- 8956      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 8957              		.loc 2 1284 0
- 8958 7f01 8B85F4E7 		movl	-6156(%rbp), %eax
- 8958      FFFF
- 8959 7f07 8985F8E7 		movl	%eax, -6152(%rbp)
- 8959      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 8960              		.loc 2 1285 0
- 8961 7f0d 8B85F0E7 		movl	-6160(%rbp), %eax
- 8961      FFFF
- 8962 7f13 8985F4E7 		movl	%eax, -6156(%rbp)
- 8962      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 8963              		.loc 2 1286 0
- 8964 7f19 C785F0E7 		movl	$0, -6160(%rbp)
- 8964      FFFF0000 
- 8964      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8965              		.loc 2 1287 0
- 8966 7f23 F30F6F85 		movdqu	-6160(%rbp), %xmm0
- 8966      F0E7FFFF 
- 8967              	.LBE1227:
- 8968              	.LBE1226:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8969              		.loc 2 1568 0
- 8970 7f2b 660F7F85 		movdqa	%xmm0, -6704(%rbp)
- 8970      D0E5FFFF 
- 8971 7f33 660F6F85 		movdqa	-6704(%rbp), %xmm0
- 8971      D0E5FFFF 
- 8972 7f3b 660FEF85 		pxor	-3936(%rbp), %xmm0
- 8972      A0F0FFFF 
- 8973 7f43 F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 8973      A0F0FFFF 
- 8974 7f4b 660F6F85 		movdqa	-6704(%rbp), %xmm0
- 8974      D0E5FFFF 
- 8975 7f53 F30F7F85 		movdqu	%xmm0, -3888(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 293
-
-
- 8975      D0F0FFFF 
- 8976              	.LBB1228:
- 8977              	.LBB1229:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 8978              		.loc 2 1282 0
- 8979 7f5b F30F6F85 		movdqu	-3888(%rbp), %xmm0
- 8979      D0F0FFFF 
- 8980 7f63 F30F7F85 		movdqu	%xmm0, -6144(%rbp)
- 8980      00E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 8981              		.loc 2 1283 0
- 8982 7f6b 8B8508E8 		movl	-6136(%rbp), %eax
- 8982      FFFF
- 8983 7f71 89850CE8 		movl	%eax, -6132(%rbp)
- 8983      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 8984              		.loc 2 1284 0
- 8985 7f77 8B8504E8 		movl	-6140(%rbp), %eax
- 8985      FFFF
- 8986 7f7d 898508E8 		movl	%eax, -6136(%rbp)
- 8986      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 8987              		.loc 2 1285 0
- 8988 7f83 8B8500E8 		movl	-6144(%rbp), %eax
- 8988      FFFF
- 8989 7f89 898504E8 		movl	%eax, -6140(%rbp)
- 8989      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 8990              		.loc 2 1286 0
- 8991 7f8f C78500E8 		movl	$0, -6144(%rbp)
- 8991      FFFF0000 
- 8991      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 8992              		.loc 2 1287 0
- 8993 7f99 F30F6F85 		movdqu	-6144(%rbp), %xmm0
- 8993      00E8FFFF 
- 8994              	.LBE1229:
- 8995              	.LBE1228:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8996              		.loc 2 1569 0
- 8997 7fa1 660F7F85 		movdqa	%xmm0, -6704(%rbp)
- 8997      D0E5FFFF 
- 8998 7fa9 660F6F85 		movdqa	-6704(%rbp), %xmm0
- 8998      D0E5FFFF 
- 8999 7fb1 660FEF85 		pxor	-3936(%rbp), %xmm0
- 8999      A0F0FFFF 
- 9000 7fb9 F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 9000      A0F0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9001              		.loc 2 1571 0
- 9002 7fc1 F30F6F85 		movdqu	-3936(%rbp), %xmm0
- 9002      A0F0FFFF 
- 9003              	.LBE1223:
- 9004              	.LBE1222:
-1790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k0    : k0^k1 :k0^k1^k2:k0^k1^k2^k3   */
- 9005              		.loc 2 1790 0
- 9006 7fc9 660F7F85 		movdqa	%xmm0, -6752(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 294
-
-
- 9006      A0E5FFFF 
-1791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k6    : k7    : k8     : k9           */
- 9007              		.loc 2 1791 0
- 9008 7fd1 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 9008      A0E5FFFF 
- 9009 7fd9 660FEF85 		pxor	-6720(%rbp), %xmm0
- 9009      C0E5FFFF 
- 9010 7fe1 660F7F85 		movdqa	%xmm0, -6752(%rbp)
- 9010      A0E5FFFF 
- 9011 7fe9 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 9011      80E5FFFF 
- 9012 7ff1 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 9012      E0F0FFFF 
- 9013              	.LBB1230:
- 9014              	.LBB1231:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 9015              		.loc 2 1565 0
- 9016 7ff9 F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 9016      E0F0FFFF 
- 9017 8001 660F7F85 		movdqa	%xmm0, -6688(%rbp)
- 9017      E0E5FFFF 
- 9018 8009 660F6F85 		movdqa	-6688(%rbp), %xmm0
- 9018      E0E5FFFF 
- 9019 8011 F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 9019      F0F0FFFF 
- 9020              	.LBB1232:
- 9021              	.LBB1233:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9022              		.loc 2 1282 0
- 9023 8019 F30F6F85 		movdqu	-3856(%rbp), %xmm0
- 9023      F0F0FFFF 
- 9024 8021 F30F7F85 		movdqu	%xmm0, -6128(%rbp)
- 9024      10E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9025              		.loc 2 1283 0
- 9026 8029 8B8518E8 		movl	-6120(%rbp), %eax
- 9026      FFFF
- 9027 802f 89851CE8 		movl	%eax, -6116(%rbp)
- 9027      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9028              		.loc 2 1284 0
- 9029 8035 8B8514E8 		movl	-6124(%rbp), %eax
- 9029      FFFF
- 9030 803b 898518E8 		movl	%eax, -6120(%rbp)
- 9030      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9031              		.loc 2 1285 0
- 9032 8041 8B8510E8 		movl	-6128(%rbp), %eax
- 9032      FFFF
- 9033 8047 898514E8 		movl	%eax, -6124(%rbp)
- 9033      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9034              		.loc 2 1286 0
- 9035 804d C78510E8 		movl	$0, -6128(%rbp)
- 9035      FFFF0000 
- 9035      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 295
-
-
- 9036              		.loc 2 1287 0
- 9037 8057 F30F6F85 		movdqu	-6128(%rbp), %xmm0
- 9037      10E8FFFF 
- 9038              	.LBE1233:
- 9039              	.LBE1232:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9040              		.loc 2 1567 0
- 9041 805f 660F7F85 		movdqa	%xmm0, -6688(%rbp)
- 9041      E0E5FFFF 
- 9042 8067 660F6F85 		movdqa	-6688(%rbp), %xmm0
- 9042      E0E5FFFF 
- 9043 806f 660FEF85 		pxor	-3872(%rbp), %xmm0
- 9043      E0F0FFFF 
- 9044 8077 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 9044      E0F0FFFF 
- 9045 807f 660F6F85 		movdqa	-6688(%rbp), %xmm0
- 9045      E0E5FFFF 
- 9046 8087 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 9046      00F1FFFF 
- 9047              	.LBB1234:
- 9048              	.LBB1235:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9049              		.loc 2 1282 0
- 9050 808f F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 9050      00F1FFFF 
- 9051 8097 F30F7F85 		movdqu	%xmm0, -6112(%rbp)
- 9051      20E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9052              		.loc 2 1283 0
- 9053 809f 8B8528E8 		movl	-6104(%rbp), %eax
- 9053      FFFF
- 9054 80a5 89852CE8 		movl	%eax, -6100(%rbp)
- 9054      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9055              		.loc 2 1284 0
- 9056 80ab 8B8524E8 		movl	-6108(%rbp), %eax
- 9056      FFFF
- 9057 80b1 898528E8 		movl	%eax, -6104(%rbp)
- 9057      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9058              		.loc 2 1285 0
- 9059 80b7 8B8520E8 		movl	-6112(%rbp), %eax
- 9059      FFFF
- 9060 80bd 898524E8 		movl	%eax, -6108(%rbp)
- 9060      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9061              		.loc 2 1286 0
- 9062 80c3 C78520E8 		movl	$0, -6112(%rbp)
- 9062      FFFF0000 
- 9062      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9063              		.loc 2 1287 0
- 9064 80cd F30F6F85 		movdqu	-6112(%rbp), %xmm0
- 9064      20E8FFFF 
- 9065              	.LBE1235:
- 9066              	.LBE1234:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 296
-
-
- 9067              		.loc 2 1568 0
- 9068 80d5 660F7F85 		movdqa	%xmm0, -6688(%rbp)
- 9068      E0E5FFFF 
- 9069 80dd 660F6F85 		movdqa	-6688(%rbp), %xmm0
- 9069      E0E5FFFF 
- 9070 80e5 660FEF85 		pxor	-3872(%rbp), %xmm0
- 9070      E0F0FFFF 
- 9071 80ed F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 9071      E0F0FFFF 
- 9072 80f5 660F6F85 		movdqa	-6688(%rbp), %xmm0
- 9072      E0E5FFFF 
- 9073 80fd F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 9073      10F1FFFF 
- 9074              	.LBB1236:
- 9075              	.LBB1237:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9076              		.loc 2 1282 0
- 9077 8105 F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 9077      10F1FFFF 
- 9078 810d F30F7F85 		movdqu	%xmm0, -6096(%rbp)
- 9078      30E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9079              		.loc 2 1283 0
- 9080 8115 8B8538E8 		movl	-6088(%rbp), %eax
- 9080      FFFF
- 9081 811b 89853CE8 		movl	%eax, -6084(%rbp)
- 9081      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9082              		.loc 2 1284 0
- 9083 8121 8B8534E8 		movl	-6092(%rbp), %eax
- 9083      FFFF
- 9084 8127 898538E8 		movl	%eax, -6088(%rbp)
- 9084      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9085              		.loc 2 1285 0
- 9086 812d 8B8530E8 		movl	-6096(%rbp), %eax
- 9086      FFFF
- 9087 8133 898534E8 		movl	%eax, -6092(%rbp)
- 9087      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9088              		.loc 2 1286 0
- 9089 8139 C78530E8 		movl	$0, -6096(%rbp)
- 9089      FFFF0000 
- 9089      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9090              		.loc 2 1287 0
- 9091 8143 F30F6F85 		movdqu	-6096(%rbp), %xmm0
- 9091      30E8FFFF 
- 9092              	.LBE1237:
- 9093              	.LBE1236:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9094              		.loc 2 1569 0
- 9095 814b 660F7F85 		movdqa	%xmm0, -6688(%rbp)
- 9095      E0E5FFFF 
- 9096 8153 660F6F85 		movdqa	-6688(%rbp), %xmm0
- 9096      E0E5FFFF 
- 9097 815b 660FEF85 		pxor	-3872(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 297
-
-
- 9097      E0F0FFFF 
- 9098 8163 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 9098      E0F0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9099              		.loc 2 1571 0
- 9100 816b F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 9100      E0F0FFFF 
- 9101              	.LBE1231:
- 9102              	.LBE1230:
-1792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k4    : k4^k5 : k4^k5  : k4^k5        */
- 9103              		.loc 2 1792 0
- 9104 8173 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 9104      B0E5FFFF 
-1793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k9    : k9    : k9     : k9           */
- 9105              		.loc 2 1793 0
- 9106 817b 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 9106      A0E5FFFF 
- 9107 8183 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 9107      C0E5FFFF 
- 9108 818b 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 9108      C0E5FFFF 
- 9109 8193 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 9109      20F1FFFF 
- 9110              	.LBB1238:
- 9111              	.LBB1239:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9112              		.loc 2 1357 0
- 9113 819b F30F6F85 		movdqu	-3808(%rbp), %xmm0
- 9113      20F1FFFF 
- 9114 81a3 F30F7F85 		movdqu	%xmm0, -6080(%rbp)
- 9114      40E8FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 9115              		.loc 2 1358 0
- 9116 81ab 8B854CE8 		movl	-6068(%rbp), %eax
- 9116      FFFF
- 9117 81b1 898548E8 		movl	%eax, -6072(%rbp)
- 9117      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 9118              		.loc 2 1359 0
- 9119 81b7 8B854CE8 		movl	-6068(%rbp), %eax
- 9119      FFFF
- 9120 81bd 898544E8 		movl	%eax, -6076(%rbp)
- 9120      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 9121              		.loc 2 1360 0
- 9122 81c3 8B854CE8 		movl	-6068(%rbp), %eax
- 9122      FFFF
- 9123 81c9 898540E8 		movl	%eax, -6080(%rbp)
- 9123      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9124              		.loc 2 1361 0
- 9125 81cf F30F6F85 		movdqu	-6080(%rbp), %xmm0
- 9125      40E8FFFF 
- 9126              	.LBE1239:
- 9127              	.LBE1238:
-1793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k9    : k9    : k9     : k9           */
- 9128              		.loc 2 1793 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 298
-
-
- 9129 81d7 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 9129      C0E5FFFF 
-1794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k10   : k11   : k10    : k11          */
- 9130              		.loc 2 1794 0
- 9131 81df 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 9131      B0E5FFFF 
- 9132 81e7 660FEF85 		pxor	-6720(%rbp), %xmm0
- 9132      C0E5FFFF 
- 9133 81ef 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 9133      B0E5FFFF 
- 9134 81f7 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 9134      80E5FFFF 
- 9135 81ff F30F7F85 		movdqu	%xmm0, -3776(%rbp)
- 9135      40F1FFFF 
- 9136 8207 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 9136      A0E5FFFF 
- 9137 820f F30F7F85 		movdqu	%xmm0, -3792(%rbp)
- 9137      30F1FFFF 
- 9138              	.LBB1240:
- 9139              	.LBB1241:
-1471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 9140              		.loc 2 1471 0
- 9141 8217 F30F6F85 		movdqu	-3776(%rbp), %xmm0
- 9141      40F1FFFF 
- 9142 821f F30F7F85 		movdqu	%xmm0, -6048(%rbp)
- 9142      60E8FFFF 
-1472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 9143              		.loc 2 1472 0
- 9144 8227 F30F6F85 		movdqu	-3792(%rbp), %xmm0
- 9144      30F1FFFF 
- 9145 822f F30F7F85 		movdqu	%xmm0, -6064(%rbp)
- 9145      50E8FFFF 
-1474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
- 9146              		.loc 2 1474 0
- 9147 8237 8B8550E8 		movl	-6064(%rbp), %eax
- 9147      FFFF
- 9148 823d 898568E8 		movl	%eax, -6040(%rbp)
- 9148      FFFF
-1475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 9149              		.loc 2 1475 0
- 9150 8243 8B8554E8 		movl	-6060(%rbp), %eax
- 9150      FFFF
- 9151 8249 89856CE8 		movl	%eax, -6036(%rbp)
- 9151      FFFF
-1477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 9152              		.loc 2 1477 0
- 9153 824f F30F6F85 		movdqu	-6048(%rbp), %xmm0
- 9153      60E8FFFF 
- 9154              	.LBE1241:
- 9155              	.LBE1240:
-1795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k4    : k5    : k6     : k7           */
- 9156              		.loc 2 1795 0
- 9157 8257 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 9157      80E5FFFF 
-1796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* K4:K5:K6:K7 */
- 9158              		.loc 2 1796 0
- 9159 825f 488B8588 		movq	-6264(%rbp), %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 299
-
-
- 9159      E7FFFF
- 9160 8266 4883C010 		addq	$16, %rax
- 9161 826a 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 9161      80E5FFFF 
- 9162 8272 660F7F00 		movdqa	%xmm0, (%rax)
- 9163 8276 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 9163      A0E5FFFF 
- 9164 827e F30F7F85 		movdqu	%xmm0, -3744(%rbp)
- 9164      60F1FFFF 
- 9165 8286 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 9165      B0E5FFFF 
- 9166 828e F30F7F85 		movdqu	%xmm0, -3760(%rbp)
- 9166      50F1FFFF 
- 9167              	.LBB1242:
- 9168              	.LBB1243:
-1503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 9169              		.loc 2 1503 0
- 9170 8296 F30F6F85 		movdqu	-3744(%rbp), %xmm0
- 9170      60F1FFFF 
- 9171 829e F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 9171      80E8FFFF 
-1504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 9172              		.loc 2 1504 0
- 9173 82a6 F30F6F85 		movdqu	-3760(%rbp), %xmm0
- 9173      50F1FFFF 
- 9174 82ae F30F7F85 		movdqu	%xmm0, -6032(%rbp)
- 9174      70E8FFFF 
-1506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[0] = ww.columns[2];
- 9175              		.loc 2 1506 0
- 9176 82b6 8B8588E8 		movl	-6008(%rbp), %eax
- 9176      FFFF
- 9177 82bc 898580E8 		movl	%eax, -6016(%rbp)
- 9177      FFFF
-1507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[1] = ww.columns[3];
- 9178              		.loc 2 1507 0
- 9179 82c2 8B858CE8 		movl	-6004(%rbp), %eax
- 9179      FFFF
- 9180 82c8 898584E8 		movl	%eax, -6012(%rbp)
- 9180      FFFF
-1508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
- 9181              		.loc 2 1508 0
- 9182 82ce 8B8570E8 		movl	-6032(%rbp), %eax
- 9182      FFFF
- 9183 82d4 898588E8 		movl	%eax, -6008(%rbp)
- 9183      FFFF
-1509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 9184              		.loc 2 1509 0
- 9185 82da 8B8574E8 		movl	-6028(%rbp), %eax
- 9185      FFFF
- 9186 82e0 89858CE8 		movl	%eax, -6004(%rbp)
- 9186      FFFF
-1511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 9187              		.loc 2 1511 0
- 9188 82e6 F30F6F85 		movdqu	-6016(%rbp), %xmm0
- 9188      80E8FFFF 
- 9189              	.LBE1243:
- 9190              	.LBE1242:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 300
-
-
-1798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k8    : k9    : k10    : k11          */
- 9191              		.loc 2 1798 0
- 9192 82ee 660F7F85 		movdqa	%xmm0, -6768(%rbp)
- 9192      90E5FFFF 
-1799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[2] = v2; /* K8:K9:K10:K11 */
- 9193              		.loc 2 1799 0
- 9194 82f6 488B8588 		movq	-6264(%rbp), %rax
- 9194      E7FFFF
- 9195 82fd 4883C020 		addq	$32, %rax
- 9196 8301 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 9196      90E5FFFF 
- 9197 8309 660F7F00 		movdqa	%xmm0, (%rax)
- 9198 830d 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 9198      A0E5FFFF 
- 9199 8315 F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 9199      70F1FFFF 
- 9200              	.LBB1244:
- 9201              	.LBB1245:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 9202              		.loc 2 1565 0
- 9203 831d F30F6F85 		movdqu	-3728(%rbp), %xmm0
- 9203      70F1FFFF 
- 9204 8325 660F7F85 		movdqa	%xmm0, -6672(%rbp)
- 9204      F0E5FFFF 
- 9205 832d 660F6F85 		movdqa	-6672(%rbp), %xmm0
- 9205      F0E5FFFF 
- 9206 8335 F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 9206      80F1FFFF 
- 9207              	.LBB1246:
- 9208              	.LBB1247:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9209              		.loc 2 1282 0
- 9210 833d F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 9210      80F1FFFF 
- 9211 8345 F30F7F85 		movdqu	%xmm0, -6000(%rbp)
- 9211      90E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9212              		.loc 2 1283 0
- 9213 834d 8B8598E8 		movl	-5992(%rbp), %eax
- 9213      FFFF
- 9214 8353 89859CE8 		movl	%eax, -5988(%rbp)
- 9214      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9215              		.loc 2 1284 0
- 9216 8359 8B8594E8 		movl	-5996(%rbp), %eax
- 9216      FFFF
- 9217 835f 898598E8 		movl	%eax, -5992(%rbp)
- 9217      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9218              		.loc 2 1285 0
- 9219 8365 8B8590E8 		movl	-6000(%rbp), %eax
- 9219      FFFF
- 9220 836b 898594E8 		movl	%eax, -5996(%rbp)
- 9220      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9221              		.loc 2 1286 0
- 9222 8371 C78590E8 		movl	$0, -6000(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 301
-
-
- 9222      FFFF0000 
- 9222      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9223              		.loc 2 1287 0
- 9224 837b F30F6F85 		movdqu	-6000(%rbp), %xmm0
- 9224      90E8FFFF 
- 9225              	.LBE1247:
- 9226              	.LBE1246:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9227              		.loc 2 1567 0
- 9228 8383 660F7F85 		movdqa	%xmm0, -6672(%rbp)
- 9228      F0E5FFFF 
- 9229 838b 660F6F85 		movdqa	-6672(%rbp), %xmm0
- 9229      F0E5FFFF 
- 9230 8393 660FEF85 		pxor	-3728(%rbp), %xmm0
- 9230      70F1FFFF 
- 9231 839b F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 9231      70F1FFFF 
- 9232 83a3 660F6F85 		movdqa	-6672(%rbp), %xmm0
- 9232      F0E5FFFF 
- 9233 83ab F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 9233      90F1FFFF 
- 9234              	.LBB1248:
- 9235              	.LBB1249:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9236              		.loc 2 1282 0
- 9237 83b3 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 9237      90F1FFFF 
- 9238 83bb F30F7F85 		movdqu	%xmm0, -5984(%rbp)
- 9238      A0E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9239              		.loc 2 1283 0
- 9240 83c3 8B85A8E8 		movl	-5976(%rbp), %eax
- 9240      FFFF
- 9241 83c9 8985ACE8 		movl	%eax, -5972(%rbp)
- 9241      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9242              		.loc 2 1284 0
- 9243 83cf 8B85A4E8 		movl	-5980(%rbp), %eax
- 9243      FFFF
- 9244 83d5 8985A8E8 		movl	%eax, -5976(%rbp)
- 9244      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9245              		.loc 2 1285 0
- 9246 83db 8B85A0E8 		movl	-5984(%rbp), %eax
- 9246      FFFF
- 9247 83e1 8985A4E8 		movl	%eax, -5980(%rbp)
- 9247      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9248              		.loc 2 1286 0
- 9249 83e7 C785A0E8 		movl	$0, -5984(%rbp)
- 9249      FFFF0000 
- 9249      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9250              		.loc 2 1287 0
- 9251 83f1 F30F6F85 		movdqu	-5984(%rbp), %xmm0
- 9251      A0E8FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 302
-
-
- 9252              	.LBE1249:
- 9253              	.LBE1248:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9254              		.loc 2 1568 0
- 9255 83f9 660F7F85 		movdqa	%xmm0, -6672(%rbp)
- 9255      F0E5FFFF 
- 9256 8401 660F6F85 		movdqa	-6672(%rbp), %xmm0
- 9256      F0E5FFFF 
- 9257 8409 660FEF85 		pxor	-3728(%rbp), %xmm0
- 9257      70F1FFFF 
- 9258 8411 F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 9258      70F1FFFF 
- 9259 8419 660F6F85 		movdqa	-6672(%rbp), %xmm0
- 9259      F0E5FFFF 
- 9260 8421 F30F7F85 		movdqu	%xmm0, -3680(%rbp)
- 9260      A0F1FFFF 
- 9261              	.LBB1250:
- 9262              	.LBB1251:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9263              		.loc 2 1282 0
- 9264 8429 F30F6F85 		movdqu	-3680(%rbp), %xmm0
- 9264      A0F1FFFF 
- 9265 8431 F30F7F85 		movdqu	%xmm0, -5968(%rbp)
- 9265      B0E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9266              		.loc 2 1283 0
- 9267 8439 8B85B8E8 		movl	-5960(%rbp), %eax
- 9267      FFFF
- 9268 843f 8985BCE8 		movl	%eax, -5956(%rbp)
- 9268      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9269              		.loc 2 1284 0
- 9270 8445 8B85B4E8 		movl	-5964(%rbp), %eax
- 9270      FFFF
- 9271 844b 8985B8E8 		movl	%eax, -5960(%rbp)
- 9271      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9272              		.loc 2 1285 0
- 9273 8451 8B85B0E8 		movl	-5968(%rbp), %eax
- 9273      FFFF
- 9274 8457 8985B4E8 		movl	%eax, -5964(%rbp)
- 9274      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9275              		.loc 2 1286 0
- 9276 845d C785B0E8 		movl	$0, -5968(%rbp)
- 9276      FFFF0000 
- 9276      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9277              		.loc 2 1287 0
- 9278 8467 F30F6F85 		movdqu	-5968(%rbp), %xmm0
- 9278      B0E8FFFF 
- 9279              	.LBE1251:
- 9280              	.LBE1250:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9281              		.loc 2 1569 0
- 9282 846f 660F7F85 		movdqa	%xmm0, -6672(%rbp)
- 9282      F0E5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 303
-
-
- 9283 8477 660F6F85 		movdqa	-6672(%rbp), %xmm0
- 9283      F0E5FFFF 
- 9284 847f 660FEF85 		pxor	-3728(%rbp), %xmm0
- 9284      70F1FFFF 
- 9285 8487 F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 9285      70F1FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9286              		.loc 2 1571 0
- 9287 848f F30F6F85 		movdqu	-3728(%rbp), %xmm0
- 9287      70F1FFFF 
- 9288              	.LBE1245:
- 9289              	.LBE1244:
-1802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k6    : k6^k7 :k6^k7^k8:k6^k7^k8^k9   */
- 9290              		.loc 2 1802 0
- 9291 8497 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 9291      70E5FFFF 
- 9292 849f 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 9292      B0E5FFFF 
- 9293 84a7 F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 9293      B0F1FFFF 
- 9294              	.LBB1252:
- 9295              	.LBB1253:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 9296              		.loc 2 1565 0
- 9297 84af F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 9297      B0F1FFFF 
- 9298 84b7 660F7F85 		movdqa	%xmm0, -6656(%rbp)
- 9298      00E6FFFF 
- 9299 84bf 660F6F85 		movdqa	-6656(%rbp), %xmm0
- 9299      00E6FFFF 
- 9300 84c7 F30F7F85 		movdqu	%xmm0, -3648(%rbp)
- 9300      C0F1FFFF 
- 9301              	.LBB1254:
- 9302              	.LBB1255:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9303              		.loc 2 1282 0
- 9304 84cf F30F6F85 		movdqu	-3648(%rbp), %xmm0
- 9304      C0F1FFFF 
- 9305 84d7 F30F7F85 		movdqu	%xmm0, -5952(%rbp)
- 9305      C0E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9306              		.loc 2 1283 0
- 9307 84df 8B85C8E8 		movl	-5944(%rbp), %eax
- 9307      FFFF
- 9308 84e5 8985CCE8 		movl	%eax, -5940(%rbp)
- 9308      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9309              		.loc 2 1284 0
- 9310 84eb 8B85C4E8 		movl	-5948(%rbp), %eax
- 9310      FFFF
- 9311 84f1 8985C8E8 		movl	%eax, -5944(%rbp)
- 9311      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9312              		.loc 2 1285 0
- 9313 84f7 8B85C0E8 		movl	-5952(%rbp), %eax
- 9313      FFFF
- 9314 84fd 8985C4E8 		movl	%eax, -5948(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 304
-
-
- 9314      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9315              		.loc 2 1286 0
- 9316 8503 C785C0E8 		movl	$0, -5952(%rbp)
- 9316      FFFF0000 
- 9316      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9317              		.loc 2 1287 0
- 9318 850d F30F6F85 		movdqu	-5952(%rbp), %xmm0
- 9318      C0E8FFFF 
- 9319              	.LBE1255:
- 9320              	.LBE1254:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9321              		.loc 2 1567 0
- 9322 8515 660F7F85 		movdqa	%xmm0, -6656(%rbp)
- 9322      00E6FFFF 
- 9323 851d 660F6F85 		movdqa	-6656(%rbp), %xmm0
- 9323      00E6FFFF 
- 9324 8525 660FEF85 		pxor	-3664(%rbp), %xmm0
- 9324      B0F1FFFF 
- 9325 852d F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 9325      B0F1FFFF 
- 9326 8535 660F6F85 		movdqa	-6656(%rbp), %xmm0
- 9326      00E6FFFF 
- 9327 853d F30F7F85 		movdqu	%xmm0, -3632(%rbp)
- 9327      D0F1FFFF 
- 9328              	.LBB1256:
- 9329              	.LBB1257:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9330              		.loc 2 1282 0
- 9331 8545 F30F6F85 		movdqu	-3632(%rbp), %xmm0
- 9331      D0F1FFFF 
- 9332 854d F30F7F85 		movdqu	%xmm0, -5936(%rbp)
- 9332      D0E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9333              		.loc 2 1283 0
- 9334 8555 8B85D8E8 		movl	-5928(%rbp), %eax
- 9334      FFFF
- 9335 855b 8985DCE8 		movl	%eax, -5924(%rbp)
- 9335      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9336              		.loc 2 1284 0
- 9337 8561 8B85D4E8 		movl	-5932(%rbp), %eax
- 9337      FFFF
- 9338 8567 8985D8E8 		movl	%eax, -5928(%rbp)
- 9338      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9339              		.loc 2 1285 0
- 9340 856d 8B85D0E8 		movl	-5936(%rbp), %eax
- 9340      FFFF
- 9341 8573 8985D4E8 		movl	%eax, -5932(%rbp)
- 9341      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9342              		.loc 2 1286 0
- 9343 8579 C785D0E8 		movl	$0, -5936(%rbp)
- 9343      FFFF0000 
- 9343      0000
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 305
-
-
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9344              		.loc 2 1287 0
- 9345 8583 F30F6F85 		movdqu	-5936(%rbp), %xmm0
- 9345      D0E8FFFF 
- 9346              	.LBE1257:
- 9347              	.LBE1256:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9348              		.loc 2 1568 0
- 9349 858b 660F7F85 		movdqa	%xmm0, -6656(%rbp)
- 9349      00E6FFFF 
- 9350 8593 660F6F85 		movdqa	-6656(%rbp), %xmm0
- 9350      00E6FFFF 
- 9351 859b 660FEF85 		pxor	-3664(%rbp), %xmm0
- 9351      B0F1FFFF 
- 9352 85a3 F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 9352      B0F1FFFF 
- 9353 85ab 660F6F85 		movdqa	-6656(%rbp), %xmm0
- 9353      00E6FFFF 
- 9354 85b3 F30F7F85 		movdqu	%xmm0, -3616(%rbp)
- 9354      E0F1FFFF 
- 9355              	.LBB1258:
- 9356              	.LBB1259:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9357              		.loc 2 1282 0
- 9358 85bb F30F6F85 		movdqu	-3616(%rbp), %xmm0
- 9358      E0F1FFFF 
- 9359 85c3 F30F7F85 		movdqu	%xmm0, -5920(%rbp)
- 9359      E0E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 9360              		.loc 2 1283 0
- 9361 85cb 8B85E8E8 		movl	-5912(%rbp), %eax
- 9361      FFFF
- 9362 85d1 8985ECE8 		movl	%eax, -5908(%rbp)
- 9362      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 9363              		.loc 2 1284 0
- 9364 85d7 8B85E4E8 		movl	-5916(%rbp), %eax
- 9364      FFFF
- 9365 85dd 8985E8E8 		movl	%eax, -5912(%rbp)
- 9365      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 9366              		.loc 2 1285 0
- 9367 85e3 8B85E0E8 		movl	-5920(%rbp), %eax
- 9367      FFFF
- 9368 85e9 8985E4E8 		movl	%eax, -5916(%rbp)
- 9368      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 9369              		.loc 2 1286 0
- 9370 85ef C785E0E8 		movl	$0, -5920(%rbp)
- 9370      FFFF0000 
- 9370      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 9371              		.loc 2 1287 0
- 9372 85f9 F30F6F85 		movdqu	-5920(%rbp), %xmm0
- 9372      E0E8FFFF 
- 9373              	.LBE1259:
- 9374              	.LBE1258:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 306
-
-
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9375              		.loc 2 1569 0
- 9376 8601 660F7F85 		movdqa	%xmm0, -6656(%rbp)
- 9376      00E6FFFF 
- 9377 8609 660F6F85 		movdqa	-6656(%rbp), %xmm0
- 9377      00E6FFFF 
- 9378 8611 660FEF85 		pxor	-3664(%rbp), %xmm0
- 9378      B0F1FFFF 
- 9379 8619 F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 9379      B0F1FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9380              		.loc 2 1571 0
- 9381 8621 F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 9381      B0F1FFFF 
- 9382              	.LBE1253:
- 9383              	.LBE1252:
-1803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k10   :k10^k11: k10^k11: k10^k11      */
- 9384              		.loc 2 1803 0
- 9385 8629 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 9385      80E5FFFF 
-1804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 9386              		.loc 2 1804 0
- 9387 8631 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 9387      90E5FFFF 
- 9388 8639 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 9388      C0E5FFFF 
- 9389 8641 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 9389      C0E5FFFF 
- 9390 8649 F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 9390      00F2FFFF 
- 9391              	.LBB1260:
- 9392              	.LBB1261:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 9393              		.loc 2 1681 0
- 9394 8651 B8020000 		movl	$2, %eax
- 9394      00
- 9395 8656 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 9395      00000000 
- 9396 865e F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 9396      20F2FFFF 
- 9397 8666 89851CF2 		movl	%eax, -3556(%rbp)
- 9397      FFFF
- 9398              	.LBB1262:
- 9399              	.LBB1263:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 9400              		.loc 2 522 0
- 9401 866c F30F6F85 		movdqu	-3552(%rbp), %xmm0
- 9401      20F2FFFF 
- 9402 8674 F30F7F85 		movdqu	%xmm0, -5840(%rbp)
- 9402      30E9FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 9403              		.loc 2 523 0
- 9404 867c B8030000 		movl	$3, %eax
- 9404      00
- 9405 8681 4898     		cltq
- 9406 8683 8B951CF2 		movl	-3556(%rbp), %edx
- 9406      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 307
-
-
- 9407 8689 89948530 		movl	%edx, -5840(%rbp,%rax,4)
- 9407      E9FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 9408              		.loc 2 524 0
- 9409 8690 F30F6F85 		movdqu	-5840(%rbp), %xmm0
- 9409      30E9FFFF 
- 9410 8698 F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 9410      20F2FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9411              		.loc 2 526 0
- 9412 86a0 F30F6F85 		movdqu	-3552(%rbp), %xmm0
- 9412      20F2FFFF 
- 9413              	.LBE1263:
- 9414              	.LBE1262:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 9415              		.loc 2 1681 0
- 9416 86a8 660F7F85 		movdqa	%xmm0, -6624(%rbp)
- 9416      20E6FFFF 
- 9417 86b0 F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 9417      00F2FFFF 
- 9418 86b8 F30F7F85 		movdqu	%xmm0, -3536(%rbp)
- 9418      30F2FFFF 
- 9419 86c0 F30F6F85 		movdqu	-3536(%rbp), %xmm0
- 9419      30F2FFFF 
- 9420 86c8 F30F7F85 		movdqu	%xmm0, -3504(%rbp)
- 9420      50F2FFFF 
- 9421 86d0 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 9421      000000
- 9422 86d7 48898548 		movq	%rax, -3512(%rbp)
- 9422      F2FFFF
- 9423              	.LBB1264:
- 9424              	.LBB1265:
- 9425              	.LBB1266:
- 9426              	.LBB1267:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 9427              		.loc 2 851 0
- 9428 86de 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 9428      00000000 
- 9429 86e6 F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 9429      70F2FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 9430              		.loc 2 854 0
- 9431 86ee 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 9431      00000000 
- 9432 86f6 F30F6F8D 		movdqu	-3504(%rbp), %xmm1
- 9432      50F2FFFF 
- 9433 86fe F30F7F8D 		movdqu	%xmm1, -3392(%rbp)
- 9433      C0F2FFFF 
- 9434 8706 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 9434      B0F2FFFF 
- 9435              	.LBB1268:
- 9436              	.LBB1269:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 9437              		.loc 2 206 0
- 9438 870e F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 9438      B0F2FFFF 
- 9439 8716 F30F6F8D 		movdqu	-3392(%rbp), %xmm1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 308
-
-
- 9439      C0F2FFFF 
- 9440 871e 660FDBC1 		pand	%xmm1, %xmm0
- 9441              	.LBE1269:
- 9442              	.LBE1268:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 9443              		.loc 2 854 0
- 9444 8722 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 9444      A0F2FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 9445              		.loc 2 862 0
- 9446 872a 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 9446      00000000 
- 9447 8732 F30F6F8D 		movdqu	-3504(%rbp), %xmm1
- 9447      50F2FFFF 
- 9448 873a F30F7F8D 		movdqu	%xmm1, -3360(%rbp)
- 9448      E0F2FFFF 
- 9449 8742 F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 9449      D0F2FFFF 
- 9450              	.LBB1270:
- 9451              		.loc 2 2642 0
- 9452 874a 0FB685E0 		movzbl	-3360(%rbp), %eax
- 9452      F2FFFF
- 9453 8751 0FB695D0 		movzbl	-3376(%rbp), %edx
- 9453      F2FFFF
- 9454 8758 0FB6C0   		movzbl	%al, %eax
- 9455 875b 6689852E 		movw	%ax, -6866(%rbp)
- 9455      E5FFFF
- 9456 8762 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9456      E5FFFF
- 9457 8769 F6F2     		divb	%dl
- 9458 876b 4189C7   		movl	%eax, %r15d
- 9459 876e 0FB685E1 		movzbl	-3359(%rbp), %eax
- 9459      F2FFFF
- 9460 8775 0FB695D1 		movzbl	-3375(%rbp), %edx
- 9460      F2FFFF
- 9461 877c 0FB6C0   		movzbl	%al, %eax
- 9462 877f 6689852E 		movw	%ax, -6866(%rbp)
- 9462      E5FFFF
- 9463 8786 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9463      E5FFFF
- 9464 878d F6F2     		divb	%dl
- 9465 878f 88853FE6 		movb	%al, -6593(%rbp)
- 9465      FFFF
- 9466 8795 0FB685E2 		movzbl	-3358(%rbp), %eax
- 9466      F2FFFF
- 9467 879c 0FB695D2 		movzbl	-3374(%rbp), %edx
- 9467      F2FFFF
- 9468 87a3 0FB6C0   		movzbl	%al, %eax
- 9469 87a6 6689852E 		movw	%ax, -6866(%rbp)
- 9469      E5FFFF
- 9470 87ad 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9470      E5FFFF
- 9471 87b4 F6F2     		divb	%dl
- 9472 87b6 88853EE6 		movb	%al, -6594(%rbp)
- 9472      FFFF
- 9473 87bc 0FB685E3 		movzbl	-3357(%rbp), %eax
- 9473      F2FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 309
-
-
- 9474 87c3 0FB695D3 		movzbl	-3373(%rbp), %edx
- 9474      F2FFFF
- 9475 87ca 0FB6C0   		movzbl	%al, %eax
- 9476 87cd 6689852E 		movw	%ax, -6866(%rbp)
- 9476      E5FFFF
- 9477 87d4 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9477      E5FFFF
- 9478 87db F6F2     		divb	%dl
- 9479 87dd 88853DE6 		movb	%al, -6595(%rbp)
- 9479      FFFF
- 9480 87e3 0FB685E4 		movzbl	-3356(%rbp), %eax
- 9480      F2FFFF
- 9481 87ea 0FB695D4 		movzbl	-3372(%rbp), %edx
- 9481      F2FFFF
- 9482 87f1 0FB6C0   		movzbl	%al, %eax
- 9483 87f4 6689852E 		movw	%ax, -6866(%rbp)
- 9483      E5FFFF
- 9484 87fb 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9484      E5FFFF
- 9485 8802 F6F2     		divb	%dl
- 9486 8804 88853CE6 		movb	%al, -6596(%rbp)
- 9486      FFFF
- 9487 880a 0FB685E5 		movzbl	-3355(%rbp), %eax
- 9487      F2FFFF
- 9488 8811 0FB695D5 		movzbl	-3371(%rbp), %edx
- 9488      F2FFFF
- 9489 8818 0FB6C0   		movzbl	%al, %eax
- 9490 881b 6689852E 		movw	%ax, -6866(%rbp)
- 9490      E5FFFF
- 9491 8822 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9491      E5FFFF
- 9492 8829 F6F2     		divb	%dl
- 9493 882b 4189C1   		movl	%eax, %r9d
- 9494 882e 0FB685E6 		movzbl	-3354(%rbp), %eax
- 9494      F2FFFF
- 9495 8835 0FB695D6 		movzbl	-3370(%rbp), %edx
- 9495      F2FFFF
- 9496 883c 0FB6C0   		movzbl	%al, %eax
- 9497 883f 6689852E 		movw	%ax, -6866(%rbp)
- 9497      E5FFFF
- 9498 8846 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9498      E5FFFF
- 9499 884d F6F2     		divb	%dl
- 9500 884f 89C7     		movl	%eax, %edi
- 9501 8851 0FB685E7 		movzbl	-3353(%rbp), %eax
- 9501      F2FFFF
- 9502 8858 0FB695D7 		movzbl	-3369(%rbp), %edx
- 9502      F2FFFF
- 9503 885f 0FB6C0   		movzbl	%al, %eax
- 9504 8862 6689852E 		movw	%ax, -6866(%rbp)
- 9504      E5FFFF
- 9505 8869 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9505      E5FFFF
- 9506 8870 F6F2     		divb	%dl
- 9507 8872 89C3     		movl	%eax, %ebx
- 9508 8874 0FB685E8 		movzbl	-3352(%rbp), %eax
- 9508      F2FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 310
-
-
- 9509 887b 0FB695D8 		movzbl	-3368(%rbp), %edx
- 9509      F2FFFF
- 9510 8882 0FB6C0   		movzbl	%al, %eax
- 9511 8885 6689852E 		movw	%ax, -6866(%rbp)
- 9511      E5FFFF
- 9512 888c 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9512      E5FFFF
- 9513 8893 F6F2     		divb	%dl
- 9514 8895 4189C2   		movl	%eax, %r10d
- 9515 8898 0FB685E9 		movzbl	-3351(%rbp), %eax
- 9515      F2FFFF
- 9516 889f 0FB695D9 		movzbl	-3367(%rbp), %edx
- 9516      F2FFFF
- 9517 88a6 0FB6C0   		movzbl	%al, %eax
- 9518 88a9 6689852E 		movw	%ax, -6866(%rbp)
- 9518      E5FFFF
- 9519 88b0 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9519      E5FFFF
- 9520 88b7 F6F2     		divb	%dl
- 9521 88b9 4189C3   		movl	%eax, %r11d
- 9522 88bc 0FB685EA 		movzbl	-3350(%rbp), %eax
- 9522      F2FFFF
- 9523 88c3 0FB695DA 		movzbl	-3366(%rbp), %edx
- 9523      F2FFFF
- 9524 88ca 0FB6C0   		movzbl	%al, %eax
- 9525 88cd 6689852E 		movw	%ax, -6866(%rbp)
- 9525      E5FFFF
- 9526 88d4 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9526      E5FFFF
- 9527 88db F6F2     		divb	%dl
- 9528 88dd 4189C4   		movl	%eax, %r12d
- 9529 88e0 0FB685EB 		movzbl	-3349(%rbp), %eax
- 9529      F2FFFF
- 9530 88e7 0FB695DB 		movzbl	-3365(%rbp), %edx
- 9530      F2FFFF
- 9531 88ee 0FB6C0   		movzbl	%al, %eax
- 9532 88f1 6689852E 		movw	%ax, -6866(%rbp)
- 9532      E5FFFF
- 9533 88f8 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9533      E5FFFF
- 9534 88ff F6F2     		divb	%dl
- 9535 8901 4189C5   		movl	%eax, %r13d
- 9536 8904 0FB685EC 		movzbl	-3348(%rbp), %eax
- 9536      F2FFFF
- 9537 890b 0FB695DC 		movzbl	-3364(%rbp), %edx
- 9537      F2FFFF
- 9538 8912 0FB6C0   		movzbl	%al, %eax
- 9539 8915 6689852E 		movw	%ax, -6866(%rbp)
- 9539      E5FFFF
- 9540 891c 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9540      E5FFFF
- 9541 8923 F6F2     		divb	%dl
- 9542 8925 4189C6   		movl	%eax, %r14d
- 9543 8928 0FB685ED 		movzbl	-3347(%rbp), %eax
- 9543      F2FFFF
- 9544 892f 0FB695DD 		movzbl	-3363(%rbp), %edx
- 9544      F2FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 311
-
-
- 9545 8936 0FB6C0   		movzbl	%al, %eax
- 9546 8939 6689852E 		movw	%ax, -6866(%rbp)
- 9546      E5FFFF
- 9547 8940 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9547      E5FFFF
- 9548 8947 F6F2     		divb	%dl
- 9549 8949 4189C0   		movl	%eax, %r8d
- 9550 894c 0FB685EE 		movzbl	-3346(%rbp), %eax
- 9550      F2FFFF
- 9551 8953 0FB695DE 		movzbl	-3362(%rbp), %edx
- 9551      F2FFFF
- 9552 895a 0FB6C0   		movzbl	%al, %eax
- 9553 895d 6689852E 		movw	%ax, -6866(%rbp)
- 9553      E5FFFF
- 9554 8964 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9554      E5FFFF
- 9555 896b F6F2     		divb	%dl
- 9556 896d 89C6     		movl	%eax, %esi
- 9557 896f 0FB685EF 		movzbl	-3345(%rbp), %eax
- 9557      F2FFFF
- 9558 8976 0FB695DF 		movzbl	-3361(%rbp), %edx
- 9558      F2FFFF
- 9559 897d 0FB6C0   		movzbl	%al, %eax
- 9560 8980 6689852E 		movw	%ax, -6866(%rbp)
- 9560      E5FFFF
- 9561 8987 0FB7852E 		movzwl	-6866(%rbp), %eax
- 9561      E5FFFF
- 9562 898e F6F2     		divb	%dl
- 9563 8990 89C1     		movl	%eax, %ecx
- 9564              	.LBB1271:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 9565              		.loc 2 346 0
- 9566 8992 0FB6D3   		movzbl	%bl, %edx
- 9567 8995 400FB6C7 		movzbl	%dil, %eax
- 9568 8999 48C1E208 		salq	$8, %rdx
- 9569 899d 4809C2   		orq	%rax, %rdx
- 9570 89a0 410FB6C1 		movzbl	%r9b, %eax
- 9571 89a4 48C1E208 		salq	$8, %rdx
- 9572 89a8 4809C2   		orq	%rax, %rdx
- 9573 89ab 0FB6853C 		movzbl	-6596(%rbp), %eax
- 9573      E6FFFF
- 9574 89b2 48C1E208 		salq	$8, %rdx
- 9575 89b6 4809C2   		orq	%rax, %rdx
- 9576 89b9 0FB6853D 		movzbl	-6595(%rbp), %eax
- 9576      E6FFFF
- 9577 89c0 48C1E208 		salq	$8, %rdx
- 9578 89c4 4809C2   		orq	%rax, %rdx
- 9579 89c7 0FB6853E 		movzbl	-6594(%rbp), %eax
- 9579      E6FFFF
- 9580 89ce 48C1E208 		salq	$8, %rdx
- 9581 89d2 4809C2   		orq	%rax, %rdx
- 9582 89d5 0FB6853F 		movzbl	-6593(%rbp), %eax
- 9582      E6FFFF
- 9583 89dc 48C1E208 		salq	$8, %rdx
- 9584 89e0 4809C2   		orq	%rax, %rdx
- 9585 89e3 410FB6C7 		movzbl	%r15b, %eax
- 9586 89e7 48C1E208 		salq	$8, %rdx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 312
-
-
- 9587 89eb 4809C2   		orq	%rax, %rdx
- 9588 89ee 0FB6C1   		movzbl	%cl, %eax
- 9589 89f1 400FB6CE 		movzbl	%sil, %ecx
- 9590 89f5 48C1E008 		salq	$8, %rax
- 9591 89f9 4809C8   		orq	%rcx, %rax
- 9592 89fc 410FB6C8 		movzbl	%r8b, %ecx
- 9593 8a00 48C1E008 		salq	$8, %rax
- 9594 8a04 4809C8   		orq	%rcx, %rax
- 9595 8a07 410FB6CE 		movzbl	%r14b, %ecx
- 9596 8a0b 48C1E008 		salq	$8, %rax
- 9597 8a0f 4809C8   		orq	%rcx, %rax
- 9598 8a12 410FB6CD 		movzbl	%r13b, %ecx
- 9599 8a16 48C1E008 		salq	$8, %rax
- 9600 8a1a 4809C8   		orq	%rcx, %rax
- 9601 8a1d 410FB6CC 		movzbl	%r12b, %ecx
- 9602 8a21 48C1E008 		salq	$8, %rax
- 9603 8a25 4809C8   		orq	%rcx, %rax
- 9604 8a28 410FB6CB 		movzbl	%r11b, %ecx
- 9605 8a2c 48C1E008 		salq	$8, %rax
- 9606 8a30 4809C8   		orq	%rcx, %rax
- 9607 8a33 410FB6CA 		movzbl	%r10b, %ecx
- 9608 8a37 48C1E008 		salq	$8, %rax
- 9609 8a3b 4809C8   		orq	%rcx, %rax
- 9610 8a3e 48899560 		movq	%rdx, -6816(%rbp)
- 9610      E5FFFF
- 9611 8a45 48898568 		movq	%rax, -6808(%rbp)
- 9611      E5FFFF
- 9612 8a4c 660F6F85 		movdqa	-6816(%rbp), %xmm0
- 9612      60E5FFFF 
- 9613              	.LBE1271:
- 9614              	.LBE1270:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 9615              		.loc 2 862 0
- 9616 8a54 F30F7F85 		movdqu	%xmm0, -3440(%rbp)
- 9616      90F2FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 9617              		.loc 2 866 0
- 9618 8a5c C7856CF2 		movl	$0, -3476(%rbp)
- 9618      FFFF0000 
- 9618      0000
- 9619 8a66 E9860200 		jmp	.L228
- 9619      00
- 9620              	.L237:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 9621              		.loc 2 868 0
- 9622 8a6b 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 9622      00000000 
- 9623 8a73 F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 9623      00F3FFFF 
- 9624 8a7b F30F6F85 		movdqu	-3440(%rbp), %xmm0
- 9624      90F2FFFF 
- 9625 8a83 F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 9625      F0F2FFFF 
- 9626              	.LBB1272:
- 9627              	.LBB1273:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 9628              		.loc 2 380 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 313
-
-
- 9629 8a8b F30F6F85 		movdqu	-3328(%rbp), %xmm0
- 9629      00F3FFFF 
- 9630 8a93 F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 9630      50E9FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 9631              		.loc 2 381 0
- 9632 8a9b F30F6F85 		movdqu	-3344(%rbp), %xmm0
- 9632      F0F2FFFF 
- 9633 8aa3 F30F7F85 		movdqu	%xmm0, -5824(%rbp)
- 9633      40E9FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 9634              		.loc 2 383 0
- 9635 8aab C7851CF3 		movl	$0, -3300(%rbp)
- 9635      FFFF0000 
- 9635      0000
- 9636 8ab5 EB5C     		jmp	.L229
- 9637              	.L232:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 9638              		.loc 2 385 0
- 9639 8ab7 8B851CF3 		movl	-3300(%rbp), %eax
- 9639      FFFF
- 9640 8abd 89C0     		mov	%eax, %eax
- 9641 8abf 0FB68405 		movzbl	-5824(%rbp,%rax), %eax
- 9641      40E9FFFF 
- 9642 8ac7 84C0     		testb	%al, %al
- 9643 8ac9 7912     		jns	.L230
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 9644              		.loc 2 386 0
- 9645 8acb 8B851CF3 		movl	-3300(%rbp), %eax
- 9645      FFFF
- 9646 8ad1 89C0     		mov	%eax, %eax
- 9647 8ad3 C6840560 		movb	$0, -5792(%rbp,%rax)
- 9647      E9FFFF00 
- 9648 8adb EB2F     		jmp	.L231
- 9649              	.L230:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 9650              		.loc 2 388 0
- 9651 8add 8B8D1CF3 		movl	-3300(%rbp), %ecx
- 9651      FFFF
- 9652 8ae3 8B851CF3 		movl	-3300(%rbp), %eax
- 9652      FFFF
- 9653 8ae9 89C0     		mov	%eax, %eax
- 9654 8aeb 0FB68405 		movzbl	-5824(%rbp,%rax), %eax
- 9654      40E9FFFF 
- 9655 8af3 0FB6C0   		movzbl	%al, %eax
- 9656 8af6 83E00F   		andl	$15, %eax
- 9657 8af9 4898     		cltq
- 9658 8afb 0FB69405 		movzbl	-5808(%rbp,%rax), %edx
- 9658      50E9FFFF 
- 9659 8b03 89C8     		mov	%ecx, %eax
- 9660 8b05 88940560 		movb	%dl, -5792(%rbp,%rax)
- 9660      E9FFFF
- 9661              	.L231:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 9662              		.loc 2 383 0
- 9663 8b0c 83851CF3 		addl	$1, -3300(%rbp)
- 9663      FFFF01
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 314
-
-
- 9664              	.L229:
- 9665 8b13 83BD1CF3 		cmpl	$15, -3300(%rbp)
- 9665      FFFF0F
- 9666 8b1a 769B     		jbe	.L232
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 9667              		.loc 2 391 0
- 9668 8b1c F30F6F85 		movdqu	-5792(%rbp), %xmm0
- 9668      60E9FFFF 
- 9669              	.LBE1273:
- 9670              	.LBE1272:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 9671              		.loc 2 868 0
- 9672 8b24 F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 9672      80F2FFFF 
- 9673 8b2c F30F6F85 		movdqu	-3424(%rbp), %xmm0
- 9673      A0F2FFFF 
- 9674 8b34 F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 9674      30F3FFFF 
- 9675 8b3c F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 9675      80F2FFFF 
- 9676 8b44 F30F7F85 		movdqu	%xmm0, -3296(%rbp)
- 9676      20F3FFFF 
- 9677              	.LBB1274:
- 9678              	.LBB1275:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 9679              		.loc 2 234 0
- 9680 8b4c F30F6F85 		movdqu	-3296(%rbp), %xmm0
- 9680      20F3FFFF 
- 9681 8b54 F30F6F8D 		movdqu	-3280(%rbp), %xmm1
- 9681      30F3FFFF 
- 9682 8b5c 660FEBC1 		por	%xmm1, %xmm0
- 9683              	.LBE1275:
- 9684              	.LBE1274:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 9685              		.loc 2 870 0
- 9686 8b60 F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 9686      80F2FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 9687              		.loc 2 872 0
- 9688 8b68 8B856CF2 		mov	-3476(%rbp), %eax
- 9688      FFFF
- 9689 8b6e 48C1E004 		salq	$4, %rax
- 9690 8b72 48038548 		addq	-3512(%rbp), %rax
- 9690      F2FFFF
- 9691 8b79 660F6F00 		movdqa	(%rax), %xmm0
- 9692 8b7d F30F7F85 		movdqu	%xmm0, -3248(%rbp)
- 9692      50F3FFFF 
- 9693 8b85 F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 9693      80F2FFFF 
- 9694 8b8d F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 9694      40F3FFFF 
- 9695              	.LBB1276:
- 9696              	.LBB1277:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 9697              		.loc 2 380 0
- 9698 8b95 F30F6F85 		movdqu	-3248(%rbp), %xmm0
- 9698      50F3FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 315
-
-
- 9699 8b9d F30F7F85 		movdqu	%xmm0, -5760(%rbp)
- 9699      80E9FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 9700              		.loc 2 381 0
- 9701 8ba5 F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 9701      40F3FFFF 
- 9702 8bad F30F7F85 		movdqu	%xmm0, -5776(%rbp)
- 9702      70E9FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 9703              		.loc 2 383 0
- 9704 8bb5 C7856CF3 		movl	$0, -3220(%rbp)
- 9704      FFFF0000 
- 9704      0000
- 9705 8bbf EB5C     		jmp	.L233
- 9706              	.L236:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 9707              		.loc 2 385 0
- 9708 8bc1 8B856CF3 		movl	-3220(%rbp), %eax
- 9708      FFFF
- 9709 8bc7 89C0     		mov	%eax, %eax
- 9710 8bc9 0FB68405 		movzbl	-5776(%rbp,%rax), %eax
- 9710      70E9FFFF 
- 9711 8bd1 84C0     		testb	%al, %al
- 9712 8bd3 7912     		jns	.L234
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 9713              		.loc 2 386 0
- 9714 8bd5 8B856CF3 		movl	-3220(%rbp), %eax
- 9714      FFFF
- 9715 8bdb 89C0     		mov	%eax, %eax
- 9716 8bdd C6840590 		movb	$0, -5744(%rbp,%rax)
- 9716      E9FFFF00 
- 9717 8be5 EB2F     		jmp	.L235
- 9718              	.L234:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 9719              		.loc 2 388 0
- 9720 8be7 8B8D6CF3 		movl	-3220(%rbp), %ecx
- 9720      FFFF
- 9721 8bed 8B856CF3 		movl	-3220(%rbp), %eax
- 9721      FFFF
- 9722 8bf3 89C0     		mov	%eax, %eax
- 9723 8bf5 0FB68405 		movzbl	-5776(%rbp,%rax), %eax
- 9723      70E9FFFF 
- 9724 8bfd 0FB6C0   		movzbl	%al, %eax
- 9725 8c00 83E00F   		andl	$15, %eax
- 9726 8c03 4898     		cltq
- 9727 8c05 0FB69405 		movzbl	-5760(%rbp,%rax), %edx
- 9727      80E9FFFF 
- 9728 8c0d 89C8     		mov	%ecx, %eax
- 9729 8c0f 88940590 		movb	%dl, -5744(%rbp,%rax)
- 9729      E9FFFF
- 9730              	.L235:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 9731              		.loc 2 383 0
- 9732 8c16 83856CF3 		addl	$1, -3220(%rbp)
- 9732      FFFF01
- 9733              	.L233:
- 9734 8c1d 83BD6CF3 		cmpl	$15, -3220(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 316
-
-
- 9734      FFFF0F
- 9735 8c24 769B     		jbe	.L236
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 9736              		.loc 2 391 0
- 9737 8c26 F30F6F85 		movdqu	-5744(%rbp), %xmm0
- 9737      90E9FFFF 
- 9738              	.LBE1277:
- 9739              	.LBE1276:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 9740              		.loc 2 872 0
- 9741 8c2e F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 9741      80F2FFFF 
- 9742 8c36 F30F6F85 		movdqu	-3472(%rbp), %xmm0
- 9742      70F2FFFF 
- 9743 8c3e F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 9743      80F3FFFF 
- 9744 8c46 F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 9744      80F2FFFF 
- 9745 8c4e F30F7F85 		movdqu	%xmm0, -3216(%rbp)
- 9745      70F3FFFF 
- 9746              	.LBB1278:
- 9747              	.LBB1279:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 9748              		.loc 2 234 0
- 9749 8c56 F30F6F85 		movdqu	-3216(%rbp), %xmm0
- 9749      70F3FFFF 
- 9750 8c5e F30F6F8D 		movdqu	-3200(%rbp), %xmm1
- 9750      80F3FFFF 
- 9751 8c66 660FEBC1 		por	%xmm1, %xmm0
- 9752              	.LBE1279:
- 9753              	.LBE1278:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 9754              		.loc 2 874 0
- 9755 8c6a F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 9755      70F2FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 9756              		.loc 2 876 0
- 9757 8c72 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 9757      00000000 
- 9758 8c7a F30F6F8D 		movdqu	-3440(%rbp), %xmm1
- 9758      90F2FFFF 
- 9759 8c82 F30F7F8D 		movdqu	%xmm1, -3168(%rbp)
- 9759      A0F3FFFF 
- 9760 8c8a F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 9760      90F3FFFF 
- 9761              	.LBB1280:
- 9762              	.LBB1281:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 9763              		.loc 2 290 0
- 9764 8c92 F30F6F8D 		movdqu	-3184(%rbp), %xmm1
- 9764      90F3FFFF 
- 9765 8c9a F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 9765      A0F3FFFF 
- 9766 8ca2 660FF8C1 		psubb	%xmm1, %xmm0
- 9767              	.LBE1281:
- 9768              	.LBE1280:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 317
-
-
- 9769              		.loc 2 876 0
- 9770 8ca6 F30F7F85 		movdqu	%xmm0, -3440(%rbp)
- 9770      90F2FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 9771              		.loc 2 878 0
- 9772 8cae 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 9772      00000000 
- 9773 8cb6 F30F6F8D 		movdqu	-3440(%rbp), %xmm1
- 9773      90F2FFFF 
- 9774 8cbe F30F7F8D 		movdqu	%xmm1, -3136(%rbp)
- 9774      C0F3FFFF 
- 9775 8cc6 F30F7F85 		movdqu	%xmm0, -3152(%rbp)
- 9775      B0F3FFFF 
- 9776              	.LBB1282:
- 9777              	.LBB1283:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 9778              		.loc 2 206 0
- 9779 8cce F30F6F85 		movdqu	-3152(%rbp), %xmm0
- 9779      B0F3FFFF 
- 9780 8cd6 F30F6F8D 		movdqu	-3136(%rbp), %xmm1
- 9780      C0F3FFFF 
- 9781 8cde 660FDBC1 		pand	%xmm1, %xmm0
- 9782              	.LBE1283:
- 9783              	.LBE1282:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 9784              		.loc 2 878 0
- 9785 8ce2 F30F7F85 		movdqu	%xmm0, -3440(%rbp)
- 9785      90F2FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 9786              		.loc 2 866 0
- 9787 8cea 83856CF2 		addl	$1, -3476(%rbp)
- 9787      FFFF01
- 9788              	.L228:
- 9789 8cf1 83BD6CF2 		cmpl	$15, -3476(%rbp)
- 9789      FFFF0F
- 9790 8cf8 0F866DFD 		jbe	.L237
- 9790      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 9791              		.loc 2 882 0
- 9792 8cfe F30F6F85 		movdqu	-3472(%rbp), %xmm0
- 9792      70F2FFFF 
- 9793              	.LBE1267:
- 9794              	.LBE1266:
- 9795              	.LBE1265:
- 9796              	.LBE1264:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 9797              		.loc 2 1682 0
- 9798 8d06 660F7F85 		movdqa	%xmm0, -6640(%rbp)
- 9798      10E6FFFF 
- 9799              	.LBB1284:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 9800              		.loc 2 1683 0
- 9801 8d0e 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 9801      10E6FFFF 
- 9802 8d16 F30F7F85 		movdqu	%xmm0, -5856(%rbp)
- 9802      20E9FFFF 
- 9803 8d1e E8000000 		call	KDbgWriterGet at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 318
-
-
- 9803      00
- 9804 8d23 4885C0   		testq	%rax, %rax
- 9805 8d26 7479     		je	.L239
- 9806 8d28 BF010000 		movl	$1, %edi
- 9806      00
- 9807 8d2d E8000000 		call	KDbgCondToFlag at PLT
- 9807      00
- 9808 8d32 4889C6   		movq	%rax, %rsi
- 9809 8d35 BF100000 		movl	$16, %edi
- 9809      00
- 9810 8d3a E8000000 		call	KDbgTestModConds at PLT
- 9810      00
- 9811 8d3f 84C0     		testb	%al, %al
- 9812 8d41 745E     		je	.L239
- 9813 8d43 8B852CE9 		movl	-5844(%rbp), %eax
- 9813      FFFF
- 9814 8d49 89C7     		movl	%eax, %edi
- 9815 8d4b E8B072FF 		call	bswap_32
- 9815      FF
- 9816 8d50 4189C5   		movl	%eax, %r13d
- 9817 8d53 8B8528E9 		movl	-5848(%rbp), %eax
- 9817      FFFF
- 9818 8d59 89C7     		movl	%eax, %edi
- 9819 8d5b E8A072FF 		call	bswap_32
- 9819      FF
- 9820 8d60 4189C4   		movl	%eax, %r12d
- 9821 8d63 8B8524E9 		movl	-5852(%rbp), %eax
- 9821      FFFF
- 9822 8d69 89C7     		movl	%eax, %edi
- 9823 8d6b E89072FF 		call	bswap_32
- 9823      FF
- 9824 8d70 89C3     		movl	%eax, %ebx
- 9825 8d72 8B8520E9 		movl	-5856(%rbp), %eax
- 9825      FFFF
- 9826 8d78 89C7     		movl	%eax, %edi
- 9827 8d7a E88172FF 		call	bswap_32
- 9827      FF
- 9828 8d7f 4589E9   		movl	%r13d, %r9d
- 9829 8d82 4589E0   		movl	%r12d, %r8d
- 9830 8d85 89D9     		movl	%ebx, %ecx
- 9831 8d87 89C2     		movl	%eax, %edx
- 9832 8d89 488D3500 		leaq	.LC0(%rip), %rsi
- 9832      000000
- 9833 8d90 488D3D00 		leaq	.LC1(%rip), %rdi
- 9833      000000
- 9834 8d97 B8000000 		movl	$0, %eax
- 9834      00
- 9835 8d9c E8000000 		call	KDbgMsg at PLT
- 9835      00
- 9836              	.L239:
- 9837 8da1 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 9837      10E6FFFF 
- 9838 8da9 F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 9838      D0F3FFFF 
- 9839              	.LBE1284:
- 9840              	.LBB1285:
- 9841              	.LBB1286:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 319
-
-
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 9842              		.loc 2 667 0
- 9843 8db1 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 9843      00000000 
- 9844 8db9 F30F6F8D 		movdqu	-3120(%rbp), %xmm1
- 9844      D0F3FFFF 
- 9845 8dc1 F30F7F8D 		movdqu	%xmm1, -3088(%rbp)
- 9845      F0F3FFFF 
- 9846 8dc9 F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 9846      E0F3FFFF 
- 9847              	.LBB1287:
- 9848              	.LBB1288:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 9849              		.loc 2 380 0
- 9850 8dd1 F30F6F85 		movdqu	-3088(%rbp), %xmm0
- 9850      F0F3FFFF 
- 9851 8dd9 F30F7F85 		movdqu	%xmm0, -5712(%rbp)
- 9851      B0E9FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 9852              		.loc 2 381 0
- 9853 8de1 F30F6F85 		movdqu	-3104(%rbp), %xmm0
- 9853      E0F3FFFF 
- 9854 8de9 F30F7F85 		movdqu	%xmm0, -5728(%rbp)
- 9854      A0E9FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 9855              		.loc 2 383 0
- 9856 8df1 C7850CF4 		movl	$0, -3060(%rbp)
- 9856      FFFF0000 
- 9856      0000
- 9857 8dfb EB5C     		jmp	.L240
- 9858              	.L243:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 9859              		.loc 2 385 0
- 9860 8dfd 8B850CF4 		movl	-3060(%rbp), %eax
- 9860      FFFF
- 9861 8e03 89C0     		mov	%eax, %eax
- 9862 8e05 0FB68405 		movzbl	-5728(%rbp,%rax), %eax
- 9862      A0E9FFFF 
- 9863 8e0d 84C0     		testb	%al, %al
- 9864 8e0f 7912     		jns	.L241
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 9865              		.loc 2 386 0
- 9866 8e11 8B850CF4 		movl	-3060(%rbp), %eax
- 9866      FFFF
- 9867 8e17 89C0     		mov	%eax, %eax
- 9868 8e19 C68405C0 		movb	$0, -5696(%rbp,%rax)
- 9868      E9FFFF00 
- 9869 8e21 EB2F     		jmp	.L242
- 9870              	.L241:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 9871              		.loc 2 388 0
- 9872 8e23 8B8D0CF4 		movl	-3060(%rbp), %ecx
- 9872      FFFF
- 9873 8e29 8B850CF4 		movl	-3060(%rbp), %eax
- 9873      FFFF
- 9874 8e2f 89C0     		mov	%eax, %eax
- 9875 8e31 0FB68405 		movzbl	-5728(%rbp,%rax), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 320
-
-
- 9875      A0E9FFFF 
- 9876 8e39 0FB6C0   		movzbl	%al, %eax
- 9877 8e3c 83E00F   		andl	$15, %eax
- 9878 8e3f 4898     		cltq
- 9879 8e41 0FB69405 		movzbl	-5712(%rbp,%rax), %edx
- 9879      B0E9FFFF 
- 9880 8e49 89C8     		mov	%ecx, %eax
- 9881 8e4b 889405C0 		movb	%dl, -5696(%rbp,%rax)
- 9881      E9FFFF
- 9882              	.L242:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 9883              		.loc 2 383 0
- 9884 8e52 83850CF4 		addl	$1, -3060(%rbp)
- 9884      FFFF01
- 9885              	.L240:
- 9886 8e59 83BD0CF4 		cmpl	$15, -3060(%rbp)
- 9886      FFFF0F
- 9887 8e60 769B     		jbe	.L243
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 9888              		.loc 2 391 0
- 9889 8e62 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 9889      C0E9FFFF 
- 9890              	.LBE1288:
- 9891              	.LBE1287:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 9892              		.loc 2 667 0
- 9893 8e6a F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 9893      D0F3FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9894              		.loc 2 668 0
- 9895 8e72 F30F6F85 		movdqu	-3120(%rbp), %xmm0
- 9895      D0F3FFFF 
- 9896              	.LBE1286:
- 9897              	.LBE1285:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 9898              		.loc 2 1684 0
- 9899 8e7a 660F7F85 		movdqa	%xmm0, -6640(%rbp)
- 9899      10E6FFFF 
- 9900              	.LBB1289:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 9901              		.loc 2 1685 0
- 9902 8e82 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 9902      10E6FFFF 
- 9903 8e8a F30F7F85 		movdqu	%xmm0, -5872(%rbp)
- 9903      10E9FFFF 
- 9904 8e92 E8000000 		call	KDbgWriterGet at PLT
- 9904      00
- 9905 8e97 4885C0   		testq	%rax, %rax
- 9906 8e9a 7479     		je	.L245
- 9907 8e9c BF010000 		movl	$1, %edi
- 9907      00
- 9908 8ea1 E8000000 		call	KDbgCondToFlag at PLT
- 9908      00
- 9909 8ea6 4889C6   		movq	%rax, %rsi
- 9910 8ea9 BF100000 		movl	$16, %edi
- 9910      00
- 9911 8eae E8000000 		call	KDbgTestModConds at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 321
-
-
- 9911      00
- 9912 8eb3 84C0     		testb	%al, %al
- 9913 8eb5 745E     		je	.L245
- 9914 8eb7 8B851CE9 		movl	-5860(%rbp), %eax
- 9914      FFFF
- 9915 8ebd 89C7     		movl	%eax, %edi
- 9916 8ebf E83C71FF 		call	bswap_32
- 9916      FF
- 9917 8ec4 4189C5   		movl	%eax, %r13d
- 9918 8ec7 8B8518E9 		movl	-5864(%rbp), %eax
- 9918      FFFF
- 9919 8ecd 89C7     		movl	%eax, %edi
- 9920 8ecf E82C71FF 		call	bswap_32
- 9920      FF
- 9921 8ed4 4189C4   		movl	%eax, %r12d
- 9922 8ed7 8B8514E9 		movl	-5868(%rbp), %eax
- 9922      FFFF
- 9923 8edd 89C7     		movl	%eax, %edi
- 9924 8edf E81C71FF 		call	bswap_32
- 9924      FF
- 9925 8ee4 89C3     		movl	%eax, %ebx
- 9926 8ee6 8B8510E9 		movl	-5872(%rbp), %eax
- 9926      FFFF
- 9927 8eec 89C7     		movl	%eax, %edi
- 9928 8eee E80D71FF 		call	bswap_32
- 9928      FF
- 9929 8ef3 4589E9   		movl	%r13d, %r9d
- 9930 8ef6 4589E0   		movl	%r12d, %r8d
- 9931 8ef9 89D9     		movl	%ebx, %ecx
- 9932 8efb 89C2     		movl	%eax, %edx
- 9933 8efd 488D3500 		leaq	.LC2(%rip), %rsi
- 9933      000000
- 9934 8f04 488D3D00 		leaq	.LC1(%rip), %rdi
- 9934      000000
- 9935 8f0b B8000000 		movl	$0, %eax
- 9935      00
- 9936 8f10 E8000000 		call	KDbgMsg at PLT
- 9936      00
- 9937              	.L245:
- 9938 8f15 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 9938      10E6FFFF 
- 9939 8f1d F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 9939      20F4FFFF 
- 9940 8f25 660F6F85 		movdqa	-6624(%rbp), %xmm0
- 9940      20E6FFFF 
- 9941 8f2d F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 9941      10F4FFFF 
- 9942              	.LBE1289:
- 9943              	.LBB1290:
- 9944              	.LBB1291:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 9945              		.loc 2 178 0
- 9946 8f35 F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 9946      10F4FFFF 
- 9947 8f3d F30F6F8D 		movdqu	-3040(%rbp), %xmm1
- 9947      20F4FFFF 
- 9948 8f45 660FEFC1 		pxor	%xmm1, %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 322
-
-
- 9949              	.LBE1291:
- 9950              	.LBE1290:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 9951              		.loc 2 1686 0
- 9952 8f49 660F7F85 		movdqa	%xmm0, -6640(%rbp)
- 9952      10E6FFFF 
- 9953              	.LBB1292:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 9954              		.loc 2 1687 0
- 9955 8f51 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 9955      10E6FFFF 
- 9956 8f59 F30F7F85 		movdqu	%xmm0, -5888(%rbp)
- 9956      00E9FFFF 
- 9957 8f61 E8000000 		call	KDbgWriterGet at PLT
- 9957      00
- 9958 8f66 4885C0   		testq	%rax, %rax
- 9959 8f69 7479     		je	.L247
- 9960 8f6b BF010000 		movl	$1, %edi
- 9960      00
- 9961 8f70 E8000000 		call	KDbgCondToFlag at PLT
- 9961      00
- 9962 8f75 4889C6   		movq	%rax, %rsi
- 9963 8f78 BF100000 		movl	$16, %edi
- 9963      00
- 9964 8f7d E8000000 		call	KDbgTestModConds at PLT
- 9964      00
- 9965 8f82 84C0     		testb	%al, %al
- 9966 8f84 745E     		je	.L247
- 9967 8f86 8B850CE9 		movl	-5876(%rbp), %eax
- 9967      FFFF
- 9968 8f8c 89C7     		movl	%eax, %edi
- 9969 8f8e E86D70FF 		call	bswap_32
- 9969      FF
- 9970 8f93 4189C5   		movl	%eax, %r13d
- 9971 8f96 8B8508E9 		movl	-5880(%rbp), %eax
- 9971      FFFF
- 9972 8f9c 89C7     		movl	%eax, %edi
- 9973 8f9e E85D70FF 		call	bswap_32
- 9973      FF
- 9974 8fa3 4189C4   		movl	%eax, %r12d
- 9975 8fa6 8B8504E9 		movl	-5884(%rbp), %eax
- 9975      FFFF
- 9976 8fac 89C7     		movl	%eax, %edi
- 9977 8fae E84D70FF 		call	bswap_32
- 9977      FF
- 9978 8fb3 89C3     		movl	%eax, %ebx
- 9979 8fb5 8B8500E9 		movl	-5888(%rbp), %eax
- 9979      FFFF
- 9980 8fbb 89C7     		movl	%eax, %edi
- 9981 8fbd E83E70FF 		call	bswap_32
- 9981      FF
- 9982 8fc2 4589E9   		movl	%r13d, %r9d
- 9983 8fc5 4589E0   		movl	%r12d, %r8d
- 9984 8fc8 89D9     		movl	%ebx, %ecx
- 9985 8fca 89C2     		movl	%eax, %edx
- 9986 8fcc 488D3500 		leaq	.LC3(%rip), %rsi
- 9986      000000
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 323
-
-
- 9987 8fd3 488D3D00 		leaq	.LC1(%rip), %rdi
- 9987      000000
- 9988 8fda B8000000 		movl	$0, %eax
- 9988      00
- 9989 8fdf E8000000 		call	KDbgMsg at PLT
- 9989      00
- 9990              	.L247:
- 9991 8fe4 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 9991      10E6FFFF 
- 9992 8fec F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 9992      30F4FFFF 
- 9993              	.LBE1292:
- 9994              	.LBB1293:
- 9995              	.LBB1294:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 9996              		.loc 2 1357 0
- 9997 8ff4 F30F6F85 		movdqu	-3024(%rbp), %xmm0
- 9997      30F4FFFF 
- 9998 8ffc F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 9998      D0E9FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 9999              		.loc 2 1358 0
- 10000 9004 8B85DCE9 		movl	-5668(%rbp), %eax
- 10000      FFFF
- 10001 900a 8985D8E9 		movl	%eax, -5672(%rbp)
- 10001      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 10002              		.loc 2 1359 0
- 10003 9010 8B85DCE9 		movl	-5668(%rbp), %eax
- 10003      FFFF
- 10004 9016 8985D4E9 		movl	%eax, -5676(%rbp)
- 10004      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 10005              		.loc 2 1360 0
- 10006 901c 8B85DCE9 		movl	-5668(%rbp), %eax
- 10006      FFFF
- 10007 9022 8985D0E9 		movl	%eax, -5680(%rbp)
- 10007      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10008              		.loc 2 1361 0
- 10009 9028 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 10009      D0E9FFFF 
- 10010              	.LBE1294:
- 10011              	.LBE1293:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 10012              		.loc 2 1688 0
- 10013 9030 660F7F85 		movdqa	%xmm0, -6640(%rbp)
- 10013      10E6FFFF 
- 10014              	.LBB1295:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 10015              		.loc 2 1689 0
- 10016 9038 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 10016      10E6FFFF 
- 10017 9040 F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 10017      F0E8FFFF 
- 10018 9048 E8000000 		call	KDbgWriterGet at PLT
- 10018      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 324
-
-
- 10019 904d 4885C0   		testq	%rax, %rax
- 10020 9050 7479     		je	.L249
- 10021 9052 BF010000 		movl	$1, %edi
- 10021      00
- 10022 9057 E8000000 		call	KDbgCondToFlag at PLT
- 10022      00
- 10023 905c 4889C6   		movq	%rax, %rsi
- 10024 905f BF100000 		movl	$16, %edi
- 10024      00
- 10025 9064 E8000000 		call	KDbgTestModConds at PLT
- 10025      00
- 10026 9069 84C0     		testb	%al, %al
- 10027 906b 745E     		je	.L249
- 10028 906d 8B85FCE8 		movl	-5892(%rbp), %eax
- 10028      FFFF
- 10029 9073 89C7     		movl	%eax, %edi
- 10030 9075 E8866FFF 		call	bswap_32
- 10030      FF
- 10031 907a 4189C5   		movl	%eax, %r13d
- 10032 907d 8B85F8E8 		movl	-5896(%rbp), %eax
- 10032      FFFF
- 10033 9083 89C7     		movl	%eax, %edi
- 10034 9085 E8766FFF 		call	bswap_32
- 10034      FF
- 10035 908a 4189C4   		movl	%eax, %r12d
- 10036 908d 8B85F4E8 		movl	-5900(%rbp), %eax
- 10036      FFFF
- 10037 9093 89C7     		movl	%eax, %edi
- 10038 9095 E8666FFF 		call	bswap_32
- 10038      FF
- 10039 909a 89C3     		movl	%eax, %ebx
- 10040 909c 8B85F0E8 		movl	-5904(%rbp), %eax
- 10040      FFFF
- 10041 90a2 89C7     		movl	%eax, %edi
- 10042 90a4 E8576FFF 		call	bswap_32
- 10042      FF
- 10043 90a9 4589E9   		movl	%r13d, %r9d
- 10044 90ac 4589E0   		movl	%r12d, %r8d
- 10045 90af 89D9     		movl	%ebx, %ecx
- 10046 90b1 89C2     		movl	%eax, %edx
- 10047 90b3 488D3500 		leaq	.LC4(%rip), %rsi
- 10047      000000
- 10048 90ba 488D3D00 		leaq	.LC1(%rip), %rdi
- 10048      000000
- 10049 90c1 B8000000 		movl	$0, %eax
- 10049      00
- 10050 90c6 E8000000 		call	KDbgMsg at PLT
- 10050      00
- 10051              	.L249:
- 10052              	.LBE1295:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 10053              		.loc 2 1690 0
- 10054 90cb 660F6F85 		movdqa	-6640(%rbp), %xmm0
- 10054      10E6FFFF 
- 10055              	.LBE1261:
- 10056              	.LBE1260:
-1804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 325
-
-
- 10057              		.loc 2 1804 0
- 10058 90d3 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10058      C0E5FFFF 
-1806:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k12   : k13   : k14    : k15          */
- 10059              		.loc 2 1806 0
- 10060 90db 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 10060      70E5FFFF 
- 10061 90e3 660FEF85 		pxor	-6720(%rbp), %xmm0
- 10061      C0E5FFFF 
- 10062 90eb 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 10062      70E5FFFF 
-1807:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[3] = v0; /* K12:K13:K14:K15 */
- 10063              		.loc 2 1807 0
- 10064 90f3 488B8588 		movq	-6264(%rbp), %rax
- 10064      E7FFFF
- 10065 90fa 4883C030 		addq	$48, %rax
- 10066 90fe 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 10066      70E5FFFF 
- 10067 9106 660F7F00 		movdqa	%xmm0, (%rax)
-1808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k15   : k15   : k15    : k15          */
- 10068              		.loc 2 1808 0
- 10069 910a 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 10069      70E5FFFF 
- 10070 9112 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10070      C0E5FFFF 
- 10071 911a 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 10071      C0E5FFFF 
- 10072 9122 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 10072      40F4FFFF 
- 10073              	.LBB1296:
- 10074              	.LBB1297:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10075              		.loc 2 1357 0
- 10076 912a F30F6F85 		movdqu	-3008(%rbp), %xmm0
- 10076      40F4FFFF 
- 10077 9132 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 10077      E0E9FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 10078              		.loc 2 1358 0
- 10079 913a 8B85ECE9 		movl	-5652(%rbp), %eax
- 10079      FFFF
- 10080 9140 8985E8E9 		movl	%eax, -5656(%rbp)
- 10080      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 10081              		.loc 2 1359 0
- 10082 9146 8B85ECE9 		movl	-5652(%rbp), %eax
- 10082      FFFF
- 10083 914c 8985E4E9 		movl	%eax, -5660(%rbp)
- 10083      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 10084              		.loc 2 1360 0
- 10085 9152 8B85ECE9 		movl	-5652(%rbp), %eax
- 10085      FFFF
- 10086 9158 8985E0E9 		movl	%eax, -5664(%rbp)
- 10086      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10087              		.loc 2 1361 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 326
-
-
- 10088 915e F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 10088      E0E9FFFF 
- 10089              	.LBE1297:
- 10090              	.LBE1296:
-1808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k15   : k15   : k15    : k15          */
- 10091              		.loc 2 1808 0
- 10092 9166 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10092      C0E5FFFF 
-1809:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k16   : k17   : k16    : k17          */
- 10093              		.loc 2 1809 0
- 10094 916e 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 10094      80E5FFFF 
- 10095 9176 660FEF85 		pxor	-6720(%rbp), %xmm0
- 10095      C0E5FFFF 
- 10096 917e 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 10096      80E5FFFF 
-1815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 10097              		.loc 2 1815 0
- 10098 9186 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 10098      80E5FFFF 
- 10099 918e 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10099      C0E5FFFF 
- 10100 9196 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 10100      C0E5FFFF 
- 10101 919e F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 10101      60F4FFFF 
- 10102              	.LBB1298:
- 10103              	.LBB1299:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 10104              		.loc 2 1629 0
- 10105 91a6 B8040000 		movl	$4, %eax
- 10105      00
- 10106 91ab 0FB6C0   		movzbl	%al, %eax
- 10107 91ae 898580F4 		movl	%eax, -2944(%rbp)
- 10107      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 10108              		.loc 2 1630 0
- 10109 91b4 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 10109      60F4FFFF 
- 10110 91bc F30F7F85 		movdqu	%xmm0, -5632(%rbp)
- 10110      00EAFFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 10111              		.loc 2 1631 0
- 10112 91c4 8B8504EA 		movl	-5628(%rbp), %eax
- 10112      FFFF
- 10113 91ca 898584F4 		movl	%eax, -2940(%rbp)
- 10113      FFFF
- 10114              	.LBB1300:
- 10115              	.LBB1301:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 10116              		.loc 2 740 0
- 10117 91d0 8B8584F4 		movl	-2940(%rbp), %eax
- 10117      FFFF
- 10118 91d6 8985F0E9 		movl	%eax, -5648(%rbp)
- 10118      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 10119              		.loc 2 741 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 327
-
-
- 10120 91dc C78588F4 		movl	$0, -2936(%rbp)
- 10120      FFFF0000 
- 10120      0000
- 10121 91e6 EB36     		jmp	.L250
- 10122              	.L251:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 10123              		.loc 2 742 0
- 10124 91e8 8B8D88F4 		movl	-2936(%rbp), %ecx
- 10124      FFFF
- 10125 91ee 8B8588F4 		movl	-2936(%rbp), %eax
- 10125      FFFF
- 10126 91f4 89C0     		mov	%eax, %eax
- 10127 91f6 0FB68405 		movzbl	-5648(%rbp,%rax), %eax
- 10127      F0E9FFFF 
- 10128 91fe 0FB6C0   		movzbl	%al, %eax
- 10129 9201 89C2     		mov	%eax, %edx
- 10130 9203 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 10130      000000
- 10131 920a 0FB61402 		movzbl	(%rdx,%rax), %edx
- 10132 920e 89C8     		mov	%ecx, %eax
- 10133 9210 889405F0 		movb	%dl, -5648(%rbp,%rax)
- 10133      E9FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 10134              		.loc 2 741 0
- 10135 9217 838588F4 		addl	$1, -2936(%rbp)
- 10135      FFFF01
- 10136              	.L250:
- 10137 921e 83BD88F4 		cmpl	$3, -2936(%rbp)
- 10137      FFFF03
- 10138 9225 76C1     		jbe	.L251
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 10139              		.loc 2 743 0
- 10140 9227 8B85F0E9 		movl	-5648(%rbp), %eax
- 10140      FFFF
- 10141              	.LBE1301:
- 10142              	.LBE1300:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 10143              		.loc 2 1631 0
- 10144 922d 89857CF4 		movl	%eax, -2948(%rbp)
- 10144      FFFF
- 10145 9233 8B857CF4 		movl	-2948(%rbp), %eax
- 10145      FFFF
- 10146 9239 89858CF4 		movl	%eax, -2932(%rbp)
- 10146      FFFF
- 10147              	.LBB1302:
- 10148              	.LBB1303:
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 10149              		.loc 2 1196 0
- 10150 923f 8B858CF4 		movl	-2932(%rbp), %eax
- 10150      FFFF
- 10151 9245 C1C808   		rorl	$8, %eax
- 10152              	.LBE1303:
- 10153              	.LBE1302:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 10154              		.loc 2 1632 0
- 10155 9248 89857CF4 		movl	%eax, -2948(%rbp)
- 10155      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 328
-
-
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 10156              		.loc 2 1633 0
- 10157 924e 8B8580F4 		movl	-2944(%rbp), %eax
- 10157      FFFF
- 10158 9254 31857CF4 		xorl	%eax, -2948(%rbp)
- 10158      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 10159              		.loc 2 1635 0
- 10160 925a 8B857CF4 		movl	-2948(%rbp), %eax
- 10160      FFFF
- 10161 9260 89850CEA 		movl	%eax, -5620(%rbp)
- 10161      FFFF
- 10162 9266 8B850CEA 		movl	-5620(%rbp), %eax
- 10162      FFFF
- 10163 926c 898508EA 		movl	%eax, -5624(%rbp)
- 10163      FFFF
- 10164 9272 8B8508EA 		movl	-5624(%rbp), %eax
- 10164      FFFF
- 10165 9278 898504EA 		movl	%eax, -5628(%rbp)
- 10165      FFFF
- 10166 927e 8B8504EA 		movl	-5628(%rbp), %eax
- 10166      FFFF
- 10167 9284 898500EA 		movl	%eax, -5632(%rbp)
- 10167      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 10168              		.loc 2 1636 0
- 10169 928a F30F6F85 		movdqu	-5632(%rbp), %xmm0
- 10169      00EAFFFF 
- 10170              	.LBE1299:
- 10171              	.LBE1298:
-1815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 10172              		.loc 2 1815 0
- 10173 9292 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10173      C0E5FFFF 
- 10174 929a 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 10174      70E5FFFF 
- 10175 92a2 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 10175      90F4FFFF 
- 10176              	.LBB1304:
- 10177              	.LBB1305:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 10178              		.loc 2 1565 0
- 10179 92aa F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 10179      90F4FFFF 
- 10180 92b2 660F7F85 		movdqa	%xmm0, -6592(%rbp)
- 10180      40E6FFFF 
- 10181 92ba 660F6F85 		movdqa	-6592(%rbp), %xmm0
- 10181      40E6FFFF 
- 10182 92c2 F30F7F85 		movdqu	%xmm0, -2912(%rbp)
- 10182      A0F4FFFF 
- 10183              	.LBB1306:
- 10184              	.LBB1307:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10185              		.loc 2 1282 0
- 10186 92ca F30F6F85 		movdqu	-2912(%rbp), %xmm0
- 10186      A0F4FFFF 
- 10187 92d2 F30F7F85 		movdqu	%xmm0, -5616(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 329
-
-
- 10187      10EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10188              		.loc 2 1283 0
- 10189 92da 8B8518EA 		movl	-5608(%rbp), %eax
- 10189      FFFF
- 10190 92e0 89851CEA 		movl	%eax, -5604(%rbp)
- 10190      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10191              		.loc 2 1284 0
- 10192 92e6 8B8514EA 		movl	-5612(%rbp), %eax
- 10192      FFFF
- 10193 92ec 898518EA 		movl	%eax, -5608(%rbp)
- 10193      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10194              		.loc 2 1285 0
- 10195 92f2 8B8510EA 		movl	-5616(%rbp), %eax
- 10195      FFFF
- 10196 92f8 898514EA 		movl	%eax, -5612(%rbp)
- 10196      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10197              		.loc 2 1286 0
- 10198 92fe C78510EA 		movl	$0, -5616(%rbp)
- 10198      FFFF0000 
- 10198      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10199              		.loc 2 1287 0
- 10200 9308 F30F6F85 		movdqu	-5616(%rbp), %xmm0
- 10200      10EAFFFF 
- 10201              	.LBE1307:
- 10202              	.LBE1306:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10203              		.loc 2 1567 0
- 10204 9310 660F7F85 		movdqa	%xmm0, -6592(%rbp)
- 10204      40E6FFFF 
- 10205 9318 660F6F85 		movdqa	-6592(%rbp), %xmm0
- 10205      40E6FFFF 
- 10206 9320 660FEF85 		pxor	-2928(%rbp), %xmm0
- 10206      90F4FFFF 
- 10207 9328 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 10207      90F4FFFF 
- 10208 9330 660F6F85 		movdqa	-6592(%rbp), %xmm0
- 10208      40E6FFFF 
- 10209 9338 F30F7F85 		movdqu	%xmm0, -2896(%rbp)
- 10209      B0F4FFFF 
- 10210              	.LBB1308:
- 10211              	.LBB1309:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10212              		.loc 2 1282 0
- 10213 9340 F30F6F85 		movdqu	-2896(%rbp), %xmm0
- 10213      B0F4FFFF 
- 10214 9348 F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 10214      20EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10215              		.loc 2 1283 0
- 10216 9350 8B8528EA 		movl	-5592(%rbp), %eax
- 10216      FFFF
- 10217 9356 89852CEA 		movl	%eax, -5588(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 330
-
-
- 10217      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10218              		.loc 2 1284 0
- 10219 935c 8B8524EA 		movl	-5596(%rbp), %eax
- 10219      FFFF
- 10220 9362 898528EA 		movl	%eax, -5592(%rbp)
- 10220      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10221              		.loc 2 1285 0
- 10222 9368 8B8520EA 		movl	-5600(%rbp), %eax
- 10222      FFFF
- 10223 936e 898524EA 		movl	%eax, -5596(%rbp)
- 10223      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10224              		.loc 2 1286 0
- 10225 9374 C78520EA 		movl	$0, -5600(%rbp)
- 10225      FFFF0000 
- 10225      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10226              		.loc 2 1287 0
- 10227 937e F30F6F85 		movdqu	-5600(%rbp), %xmm0
- 10227      20EAFFFF 
- 10228              	.LBE1309:
- 10229              	.LBE1308:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10230              		.loc 2 1568 0
- 10231 9386 660F7F85 		movdqa	%xmm0, -6592(%rbp)
- 10231      40E6FFFF 
- 10232 938e 660F6F85 		movdqa	-6592(%rbp), %xmm0
- 10232      40E6FFFF 
- 10233 9396 660FEF85 		pxor	-2928(%rbp), %xmm0
- 10233      90F4FFFF 
- 10234 939e F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 10234      90F4FFFF 
- 10235 93a6 660F6F85 		movdqa	-6592(%rbp), %xmm0
- 10235      40E6FFFF 
- 10236 93ae F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 10236      C0F4FFFF 
- 10237              	.LBB1310:
- 10238              	.LBB1311:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10239              		.loc 2 1282 0
- 10240 93b6 F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 10240      C0F4FFFF 
- 10241 93be F30F7F85 		movdqu	%xmm0, -5584(%rbp)
- 10241      30EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10242              		.loc 2 1283 0
- 10243 93c6 8B8538EA 		movl	-5576(%rbp), %eax
- 10243      FFFF
- 10244 93cc 89853CEA 		movl	%eax, -5572(%rbp)
- 10244      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10245              		.loc 2 1284 0
- 10246 93d2 8B8534EA 		movl	-5580(%rbp), %eax
- 10246      FFFF
- 10247 93d8 898538EA 		movl	%eax, -5576(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 331
-
-
- 10247      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10248              		.loc 2 1285 0
- 10249 93de 8B8530EA 		movl	-5584(%rbp), %eax
- 10249      FFFF
- 10250 93e4 898534EA 		movl	%eax, -5580(%rbp)
- 10250      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10251              		.loc 2 1286 0
- 10252 93ea C78530EA 		movl	$0, -5584(%rbp)
- 10252      FFFF0000 
- 10252      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10253              		.loc 2 1287 0
- 10254 93f4 F30F6F85 		movdqu	-5584(%rbp), %xmm0
- 10254      30EAFFFF 
- 10255              	.LBE1311:
- 10256              	.LBE1310:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10257              		.loc 2 1569 0
- 10258 93fc 660F7F85 		movdqa	%xmm0, -6592(%rbp)
- 10258      40E6FFFF 
- 10259 9404 660F6F85 		movdqa	-6592(%rbp), %xmm0
- 10259      40E6FFFF 
- 10260 940c 660FEF85 		pxor	-2928(%rbp), %xmm0
- 10260      90F4FFFF 
- 10261 9414 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 10261      90F4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10262              		.loc 2 1571 0
- 10263 941c F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 10263      90F4FFFF 
- 10264              	.LBE1305:
- 10265              	.LBE1304:
-1817:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k12   :k12^k13:k12^k13^k14:k12^k13^k14^k15 */
- 10266              		.loc 2 1817 0
- 10267 9424 660F7F85 		movdqa	%xmm0, -6752(%rbp)
- 10267      A0E5FFFF 
-1818:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k18   : k19   : k20    : k21          */
- 10268              		.loc 2 1818 0
- 10269 942c 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 10269      A0E5FFFF 
- 10270 9434 660FEF85 		pxor	-6720(%rbp), %xmm0
- 10270      C0E5FFFF 
- 10271 943c 660F7F85 		movdqa	%xmm0, -6752(%rbp)
- 10271      A0E5FFFF 
- 10272 9444 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 10272      80E5FFFF 
- 10273 944c F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 10273      D0F4FFFF 
- 10274              	.LBB1312:
- 10275              	.LBB1313:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 10276              		.loc 2 1565 0
- 10277 9454 F30F6F85 		movdqu	-2864(%rbp), %xmm0
- 10277      D0F4FFFF 
- 10278 945c 660F7F85 		movdqa	%xmm0, -6576(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 332
-
-
- 10278      50E6FFFF 
- 10279 9464 660F6F85 		movdqa	-6576(%rbp), %xmm0
- 10279      50E6FFFF 
- 10280 946c F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 10280      E0F4FFFF 
- 10281              	.LBB1314:
- 10282              	.LBB1315:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10283              		.loc 2 1282 0
- 10284 9474 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 10284      E0F4FFFF 
- 10285 947c F30F7F85 		movdqu	%xmm0, -5568(%rbp)
- 10285      40EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10286              		.loc 2 1283 0
- 10287 9484 8B8548EA 		movl	-5560(%rbp), %eax
- 10287      FFFF
- 10288 948a 89854CEA 		movl	%eax, -5556(%rbp)
- 10288      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10289              		.loc 2 1284 0
- 10290 9490 8B8544EA 		movl	-5564(%rbp), %eax
- 10290      FFFF
- 10291 9496 898548EA 		movl	%eax, -5560(%rbp)
- 10291      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10292              		.loc 2 1285 0
- 10293 949c 8B8540EA 		movl	-5568(%rbp), %eax
- 10293      FFFF
- 10294 94a2 898544EA 		movl	%eax, -5564(%rbp)
- 10294      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10295              		.loc 2 1286 0
- 10296 94a8 C78540EA 		movl	$0, -5568(%rbp)
- 10296      FFFF0000 
- 10296      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10297              		.loc 2 1287 0
- 10298 94b2 F30F6F85 		movdqu	-5568(%rbp), %xmm0
- 10298      40EAFFFF 
- 10299              	.LBE1315:
- 10300              	.LBE1314:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10301              		.loc 2 1567 0
- 10302 94ba 660F7F85 		movdqa	%xmm0, -6576(%rbp)
- 10302      50E6FFFF 
- 10303 94c2 660F6F85 		movdqa	-6576(%rbp), %xmm0
- 10303      50E6FFFF 
- 10304 94ca 660FEF85 		pxor	-2864(%rbp), %xmm0
- 10304      D0F4FFFF 
- 10305 94d2 F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 10305      D0F4FFFF 
- 10306 94da 660F6F85 		movdqa	-6576(%rbp), %xmm0
- 10306      50E6FFFF 
- 10307 94e2 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 10307      F0F4FFFF 
- 10308              	.LBB1316:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 333
-
-
- 10309              	.LBB1317:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10310              		.loc 2 1282 0
- 10311 94ea F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 10311      F0F4FFFF 
- 10312 94f2 F30F7F85 		movdqu	%xmm0, -5552(%rbp)
- 10312      50EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10313              		.loc 2 1283 0
- 10314 94fa 8B8558EA 		movl	-5544(%rbp), %eax
- 10314      FFFF
- 10315 9500 89855CEA 		movl	%eax, -5540(%rbp)
- 10315      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10316              		.loc 2 1284 0
- 10317 9506 8B8554EA 		movl	-5548(%rbp), %eax
- 10317      FFFF
- 10318 950c 898558EA 		movl	%eax, -5544(%rbp)
- 10318      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10319              		.loc 2 1285 0
- 10320 9512 8B8550EA 		movl	-5552(%rbp), %eax
- 10320      FFFF
- 10321 9518 898554EA 		movl	%eax, -5548(%rbp)
- 10321      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10322              		.loc 2 1286 0
- 10323 951e C78550EA 		movl	$0, -5552(%rbp)
- 10323      FFFF0000 
- 10323      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10324              		.loc 2 1287 0
- 10325 9528 F30F6F85 		movdqu	-5552(%rbp), %xmm0
- 10325      50EAFFFF 
- 10326              	.LBE1317:
- 10327              	.LBE1316:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10328              		.loc 2 1568 0
- 10329 9530 660F7F85 		movdqa	%xmm0, -6576(%rbp)
- 10329      50E6FFFF 
- 10330 9538 660F6F85 		movdqa	-6576(%rbp), %xmm0
- 10330      50E6FFFF 
- 10331 9540 660FEF85 		pxor	-2864(%rbp), %xmm0
- 10331      D0F4FFFF 
- 10332 9548 F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 10332      D0F4FFFF 
- 10333 9550 660F6F85 		movdqa	-6576(%rbp), %xmm0
- 10333      50E6FFFF 
- 10334 9558 F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 10334      00F5FFFF 
- 10335              	.LBB1318:
- 10336              	.LBB1319:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10337              		.loc 2 1282 0
- 10338 9560 F30F6F85 		movdqu	-2816(%rbp), %xmm0
- 10338      00F5FFFF 
- 10339 9568 F30F7F85 		movdqu	%xmm0, -5536(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 334
-
-
- 10339      60EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10340              		.loc 2 1283 0
- 10341 9570 8B8568EA 		movl	-5528(%rbp), %eax
- 10341      FFFF
- 10342 9576 89856CEA 		movl	%eax, -5524(%rbp)
- 10342      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10343              		.loc 2 1284 0
- 10344 957c 8B8564EA 		movl	-5532(%rbp), %eax
- 10344      FFFF
- 10345 9582 898568EA 		movl	%eax, -5528(%rbp)
- 10345      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10346              		.loc 2 1285 0
- 10347 9588 8B8560EA 		movl	-5536(%rbp), %eax
- 10347      FFFF
- 10348 958e 898564EA 		movl	%eax, -5532(%rbp)
- 10348      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10349              		.loc 2 1286 0
- 10350 9594 C78560EA 		movl	$0, -5536(%rbp)
- 10350      FFFF0000 
- 10350      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10351              		.loc 2 1287 0
- 10352 959e F30F6F85 		movdqu	-5536(%rbp), %xmm0
- 10352      60EAFFFF 
- 10353              	.LBE1319:
- 10354              	.LBE1318:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10355              		.loc 2 1569 0
- 10356 95a6 660F7F85 		movdqa	%xmm0, -6576(%rbp)
- 10356      50E6FFFF 
- 10357 95ae 660F6F85 		movdqa	-6576(%rbp), %xmm0
- 10357      50E6FFFF 
- 10358 95b6 660FEF85 		pxor	-2864(%rbp), %xmm0
- 10358      D0F4FFFF 
- 10359 95be F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 10359      D0F4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10360              		.loc 2 1571 0
- 10361 95c6 F30F6F85 		movdqu	-2864(%rbp), %xmm0
- 10361      D0F4FFFF 
- 10362              	.LBE1313:
- 10363              	.LBE1312:
-1819:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k16   :k16^k17: k17    : 0            */
- 10364              		.loc 2 1819 0
- 10365 95ce 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 10365      B0E5FFFF 
-1820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k21   : k21   : k21    : k21          */
- 10366              		.loc 2 1820 0
- 10367 95d6 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 10367      A0E5FFFF 
- 10368 95de 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10368      C0E5FFFF 
- 10369 95e6 660F6F85 		movdqa	-6720(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 335
-
-
- 10369      C0E5FFFF 
- 10370 95ee F30F7F85 		movdqu	%xmm0, -2800(%rbp)
- 10370      10F5FFFF 
- 10371              	.LBB1320:
- 10372              	.LBB1321:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10373              		.loc 2 1357 0
- 10374 95f6 F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 10374      10F5FFFF 
- 10375 95fe F30F7F85 		movdqu	%xmm0, -5520(%rbp)
- 10375      70EAFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 10376              		.loc 2 1358 0
- 10377 9606 8B857CEA 		movl	-5508(%rbp), %eax
- 10377      FFFF
- 10378 960c 898578EA 		movl	%eax, -5512(%rbp)
- 10378      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 10379              		.loc 2 1359 0
- 10380 9612 8B857CEA 		movl	-5508(%rbp), %eax
- 10380      FFFF
- 10381 9618 898574EA 		movl	%eax, -5516(%rbp)
- 10381      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 10382              		.loc 2 1360 0
- 10383 961e 8B857CEA 		movl	-5508(%rbp), %eax
- 10383      FFFF
- 10384 9624 898570EA 		movl	%eax, -5520(%rbp)
- 10384      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10385              		.loc 2 1361 0
- 10386 962a F30F6F85 		movdqu	-5520(%rbp), %xmm0
- 10386      70EAFFFF 
- 10387              	.LBE1321:
- 10388              	.LBE1320:
-1820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k21   : k21   : k21    : k21          */
- 10389              		.loc 2 1820 0
- 10390 9632 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10390      C0E5FFFF 
-1821:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k22   : k23   : x      : x            */
- 10391              		.loc 2 1821 0
- 10392 963a 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 10392      B0E5FFFF 
- 10393 9642 660FEF85 		pxor	-6720(%rbp), %xmm0
- 10393      C0E5FFFF 
- 10394 964a 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 10394      B0E5FFFF 
- 10395 9652 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 10395      80E5FFFF 
- 10396 965a F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 10396      30F5FFFF 
- 10397 9662 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 10397      A0E5FFFF 
- 10398 966a F30F7F85 		movdqu	%xmm0, -2784(%rbp)
- 10398      20F5FFFF 
- 10399              	.LBB1322:
- 10400              	.LBB1323:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 336
-
-
-1471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 10401              		.loc 2 1471 0
- 10402 9672 F30F6F85 		movdqu	-2768(%rbp), %xmm0
- 10402      30F5FFFF 
- 10403 967a F30F7F85 		movdqu	%xmm0, -5488(%rbp)
- 10403      90EAFFFF 
-1472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 10404              		.loc 2 1472 0
- 10405 9682 F30F6F85 		movdqu	-2784(%rbp), %xmm0
- 10405      20F5FFFF 
- 10406 968a F30F7F85 		movdqu	%xmm0, -5504(%rbp)
- 10406      80EAFFFF 
-1474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
- 10407              		.loc 2 1474 0
- 10408 9692 8B8580EA 		movl	-5504(%rbp), %eax
- 10408      FFFF
- 10409 9698 898598EA 		movl	%eax, -5480(%rbp)
- 10409      FFFF
-1475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 10410              		.loc 2 1475 0
- 10411 969e 8B8584EA 		movl	-5500(%rbp), %eax
- 10411      FFFF
- 10412 96a4 89859CEA 		movl	%eax, -5476(%rbp)
- 10412      FFFF
-1477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 10413              		.loc 2 1477 0
- 10414 96aa F30F6F85 		movdqu	-5488(%rbp), %xmm0
- 10414      90EAFFFF 
- 10415              	.LBE1323:
- 10416              	.LBE1322:
-1822:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k16   : k17   : k18    : k19          */
- 10417              		.loc 2 1822 0
- 10418 96b2 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 10418      80E5FFFF 
-1823:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[4] = v1; /* K16:K17:K18:K19 */
- 10419              		.loc 2 1823 0
- 10420 96ba 488B8588 		movq	-6264(%rbp), %rax
- 10420      E7FFFF
- 10421 96c1 4883C040 		addq	$64, %rax
- 10422 96c5 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 10422      80E5FFFF 
- 10423 96cd 660F7F00 		movdqa	%xmm0, (%rax)
- 10424 96d1 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 10424      A0E5FFFF 
- 10425 96d9 F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 10425      50F5FFFF 
- 10426 96e1 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 10426      B0E5FFFF 
- 10427 96e9 F30F7F85 		movdqu	%xmm0, -2752(%rbp)
- 10427      40F5FFFF 
- 10428              	.LBB1324:
- 10429              	.LBB1325:
-1503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 10430              		.loc 2 1503 0
- 10431 96f1 F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 10431      50F5FFFF 
- 10432 96f9 F30F7F85 		movdqu	%xmm0, -5456(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 337
-
-
- 10432      B0EAFFFF 
-1504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 10433              		.loc 2 1504 0
- 10434 9701 F30F6F85 		movdqu	-2752(%rbp), %xmm0
- 10434      40F5FFFF 
- 10435 9709 F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 10435      A0EAFFFF 
-1506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[0] = ww.columns[2];
- 10436              		.loc 2 1506 0
- 10437 9711 8B85B8EA 		movl	-5448(%rbp), %eax
- 10437      FFFF
- 10438 9717 8985B0EA 		movl	%eax, -5456(%rbp)
- 10438      FFFF
-1507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[1] = ww.columns[3];
- 10439              		.loc 2 1507 0
- 10440 971d 8B85BCEA 		movl	-5444(%rbp), %eax
- 10440      FFFF
- 10441 9723 8985B4EA 		movl	%eax, -5452(%rbp)
- 10441      FFFF
-1508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
- 10442              		.loc 2 1508 0
- 10443 9729 8B85A0EA 		movl	-5472(%rbp), %eax
- 10443      FFFF
- 10444 972f 8985B8EA 		movl	%eax, -5448(%rbp)
- 10444      FFFF
-1509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 10445              		.loc 2 1509 0
- 10446 9735 8B85A4EA 		movl	-5468(%rbp), %eax
- 10446      FFFF
- 10447 973b 8985BCEA 		movl	%eax, -5444(%rbp)
- 10447      FFFF
-1511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 10448              		.loc 2 1511 0
- 10449 9741 F30F6F85 		movdqu	-5456(%rbp), %xmm0
- 10449      B0EAFFFF 
- 10450              	.LBE1325:
- 10451              	.LBE1324:
-1825:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k20   : k21   : k22    : k23          */
- 10452              		.loc 2 1825 0
- 10453 9749 660F7F85 		movdqa	%xmm0, -6768(%rbp)
- 10453      90E5FFFF 
-1826:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[5] = v2; /* K20:K21:K22:K23 */
- 10454              		.loc 2 1826 0
- 10455 9751 488B8588 		movq	-6264(%rbp), %rax
- 10455      E7FFFF
- 10456 9758 4883C050 		addq	$80, %rax
- 10457 975c 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 10457      90E5FFFF 
- 10458 9764 660F7F00 		movdqa	%xmm0, (%rax)
- 10459 9768 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 10459      A0E5FFFF 
- 10460 9770 F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 10460      60F5FFFF 
- 10461              	.LBB1326:
- 10462              	.LBB1327:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 10463              		.loc 2 1565 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 338
-
-
- 10464 9778 F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 10464      60F5FFFF 
- 10465 9780 660F7F85 		movdqa	%xmm0, -6560(%rbp)
- 10465      60E6FFFF 
- 10466 9788 660F6F85 		movdqa	-6560(%rbp), %xmm0
- 10466      60E6FFFF 
- 10467 9790 F30F7F85 		movdqu	%xmm0, -2704(%rbp)
- 10467      70F5FFFF 
- 10468              	.LBB1328:
- 10469              	.LBB1329:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10470              		.loc 2 1282 0
- 10471 9798 F30F6F85 		movdqu	-2704(%rbp), %xmm0
- 10471      70F5FFFF 
- 10472 97a0 F30F7F85 		movdqu	%xmm0, -5440(%rbp)
- 10472      C0EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10473              		.loc 2 1283 0
- 10474 97a8 8B85C8EA 		movl	-5432(%rbp), %eax
- 10474      FFFF
- 10475 97ae 8985CCEA 		movl	%eax, -5428(%rbp)
- 10475      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10476              		.loc 2 1284 0
- 10477 97b4 8B85C4EA 		movl	-5436(%rbp), %eax
- 10477      FFFF
- 10478 97ba 8985C8EA 		movl	%eax, -5432(%rbp)
- 10478      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10479              		.loc 2 1285 0
- 10480 97c0 8B85C0EA 		movl	-5440(%rbp), %eax
- 10480      FFFF
- 10481 97c6 8985C4EA 		movl	%eax, -5436(%rbp)
- 10481      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10482              		.loc 2 1286 0
- 10483 97cc C785C0EA 		movl	$0, -5440(%rbp)
- 10483      FFFF0000 
- 10483      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10484              		.loc 2 1287 0
- 10485 97d6 F30F6F85 		movdqu	-5440(%rbp), %xmm0
- 10485      C0EAFFFF 
- 10486              	.LBE1329:
- 10487              	.LBE1328:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10488              		.loc 2 1567 0
- 10489 97de 660F7F85 		movdqa	%xmm0, -6560(%rbp)
- 10489      60E6FFFF 
- 10490 97e6 660F6F85 		movdqa	-6560(%rbp), %xmm0
- 10490      60E6FFFF 
- 10491 97ee 660FEF85 		pxor	-2720(%rbp), %xmm0
- 10491      60F5FFFF 
- 10492 97f6 F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 10492      60F5FFFF 
- 10493 97fe 660F6F85 		movdqa	-6560(%rbp), %xmm0
- 10493      60E6FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 339
-
-
- 10494 9806 F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 10494      80F5FFFF 
- 10495              	.LBB1330:
- 10496              	.LBB1331:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10497              		.loc 2 1282 0
- 10498 980e F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 10498      80F5FFFF 
- 10499 9816 F30F7F85 		movdqu	%xmm0, -5424(%rbp)
- 10499      D0EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10500              		.loc 2 1283 0
- 10501 981e 8B85D8EA 		movl	-5416(%rbp), %eax
- 10501      FFFF
- 10502 9824 8985DCEA 		movl	%eax, -5412(%rbp)
- 10502      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10503              		.loc 2 1284 0
- 10504 982a 8B85D4EA 		movl	-5420(%rbp), %eax
- 10504      FFFF
- 10505 9830 8985D8EA 		movl	%eax, -5416(%rbp)
- 10505      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10506              		.loc 2 1285 0
- 10507 9836 8B85D0EA 		movl	-5424(%rbp), %eax
- 10507      FFFF
- 10508 983c 8985D4EA 		movl	%eax, -5420(%rbp)
- 10508      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10509              		.loc 2 1286 0
- 10510 9842 C785D0EA 		movl	$0, -5424(%rbp)
- 10510      FFFF0000 
- 10510      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10511              		.loc 2 1287 0
- 10512 984c F30F6F85 		movdqu	-5424(%rbp), %xmm0
- 10512      D0EAFFFF 
- 10513              	.LBE1331:
- 10514              	.LBE1330:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10515              		.loc 2 1568 0
- 10516 9854 660F7F85 		movdqa	%xmm0, -6560(%rbp)
- 10516      60E6FFFF 
- 10517 985c 660F6F85 		movdqa	-6560(%rbp), %xmm0
- 10517      60E6FFFF 
- 10518 9864 660FEF85 		pxor	-2720(%rbp), %xmm0
- 10518      60F5FFFF 
- 10519 986c F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 10519      60F5FFFF 
- 10520 9874 660F6F85 		movdqa	-6560(%rbp), %xmm0
- 10520      60E6FFFF 
- 10521 987c F30F7F85 		movdqu	%xmm0, -2672(%rbp)
- 10521      90F5FFFF 
- 10522              	.LBB1332:
- 10523              	.LBB1333:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10524              		.loc 2 1282 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 340
-
-
- 10525 9884 F30F6F85 		movdqu	-2672(%rbp), %xmm0
- 10525      90F5FFFF 
- 10526 988c F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 10526      E0EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10527              		.loc 2 1283 0
- 10528 9894 8B85E8EA 		movl	-5400(%rbp), %eax
- 10528      FFFF
- 10529 989a 8985ECEA 		movl	%eax, -5396(%rbp)
- 10529      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10530              		.loc 2 1284 0
- 10531 98a0 8B85E4EA 		movl	-5404(%rbp), %eax
- 10531      FFFF
- 10532 98a6 8985E8EA 		movl	%eax, -5400(%rbp)
- 10532      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10533              		.loc 2 1285 0
- 10534 98ac 8B85E0EA 		movl	-5408(%rbp), %eax
- 10534      FFFF
- 10535 98b2 8985E4EA 		movl	%eax, -5404(%rbp)
- 10535      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10536              		.loc 2 1286 0
- 10537 98b8 C785E0EA 		movl	$0, -5408(%rbp)
- 10537      FFFF0000 
- 10537      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10538              		.loc 2 1287 0
- 10539 98c2 F30F6F85 		movdqu	-5408(%rbp), %xmm0
- 10539      E0EAFFFF 
- 10540              	.LBE1333:
- 10541              	.LBE1332:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10542              		.loc 2 1569 0
- 10543 98ca 660F7F85 		movdqa	%xmm0, -6560(%rbp)
- 10543      60E6FFFF 
- 10544 98d2 660F6F85 		movdqa	-6560(%rbp), %xmm0
- 10544      60E6FFFF 
- 10545 98da 660FEF85 		pxor	-2720(%rbp), %xmm0
- 10545      60F5FFFF 
- 10546 98e2 F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 10546      60F5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10547              		.loc 2 1571 0
- 10548 98ea F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 10548      60F5FFFF 
- 10549              	.LBE1327:
- 10550              	.LBE1326:
-1829:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k18   :k18^k19:k18^k19^k20:k18^k19^k20^k21 */
- 10551              		.loc 2 1829 0
- 10552 98f2 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 10552      70E5FFFF 
- 10553 98fa 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 10553      B0E5FFFF 
- 10554 9902 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 10554      A0F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 341
-
-
- 10555              	.LBB1334:
- 10556              	.LBB1335:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 10557              		.loc 2 1565 0
- 10558 990a F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 10558      A0F5FFFF 
- 10559 9912 660F7F85 		movdqa	%xmm0, -6544(%rbp)
- 10559      70E6FFFF 
- 10560 991a 660F6F85 		movdqa	-6544(%rbp), %xmm0
- 10560      70E6FFFF 
- 10561 9922 F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 10561      B0F5FFFF 
- 10562              	.LBB1336:
- 10563              	.LBB1337:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10564              		.loc 2 1282 0
- 10565 992a F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 10565      B0F5FFFF 
- 10566 9932 F30F7F85 		movdqu	%xmm0, -5392(%rbp)
- 10566      F0EAFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10567              		.loc 2 1283 0
- 10568 993a 8B85F8EA 		movl	-5384(%rbp), %eax
- 10568      FFFF
- 10569 9940 8985FCEA 		movl	%eax, -5380(%rbp)
- 10569      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10570              		.loc 2 1284 0
- 10571 9946 8B85F4EA 		movl	-5388(%rbp), %eax
- 10571      FFFF
- 10572 994c 8985F8EA 		movl	%eax, -5384(%rbp)
- 10572      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10573              		.loc 2 1285 0
- 10574 9952 8B85F0EA 		movl	-5392(%rbp), %eax
- 10574      FFFF
- 10575 9958 8985F4EA 		movl	%eax, -5388(%rbp)
- 10575      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10576              		.loc 2 1286 0
- 10577 995e C785F0EA 		movl	$0, -5392(%rbp)
- 10577      FFFF0000 
- 10577      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10578              		.loc 2 1287 0
- 10579 9968 F30F6F85 		movdqu	-5392(%rbp), %xmm0
- 10579      F0EAFFFF 
- 10580              	.LBE1337:
- 10581              	.LBE1336:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10582              		.loc 2 1567 0
- 10583 9970 660F7F85 		movdqa	%xmm0, -6544(%rbp)
- 10583      70E6FFFF 
- 10584 9978 660F6F85 		movdqa	-6544(%rbp), %xmm0
- 10584      70E6FFFF 
- 10585 9980 660FEF85 		pxor	-2656(%rbp), %xmm0
- 10585      A0F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 342
-
-
- 10586 9988 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 10586      A0F5FFFF 
- 10587 9990 660F6F85 		movdqa	-6544(%rbp), %xmm0
- 10587      70E6FFFF 
- 10588 9998 F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 10588      C0F5FFFF 
- 10589              	.LBB1338:
- 10590              	.LBB1339:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10591              		.loc 2 1282 0
- 10592 99a0 F30F6F85 		movdqu	-2624(%rbp), %xmm0
- 10592      C0F5FFFF 
- 10593 99a8 F30F7F85 		movdqu	%xmm0, -5376(%rbp)
- 10593      00EBFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10594              		.loc 2 1283 0
- 10595 99b0 8B8508EB 		movl	-5368(%rbp), %eax
- 10595      FFFF
- 10596 99b6 89850CEB 		movl	%eax, -5364(%rbp)
- 10596      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10597              		.loc 2 1284 0
- 10598 99bc 8B8504EB 		movl	-5372(%rbp), %eax
- 10598      FFFF
- 10599 99c2 898508EB 		movl	%eax, -5368(%rbp)
- 10599      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10600              		.loc 2 1285 0
- 10601 99c8 8B8500EB 		movl	-5376(%rbp), %eax
- 10601      FFFF
- 10602 99ce 898504EB 		movl	%eax, -5372(%rbp)
- 10602      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10603              		.loc 2 1286 0
- 10604 99d4 C78500EB 		movl	$0, -5376(%rbp)
- 10604      FFFF0000 
- 10604      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10605              		.loc 2 1287 0
- 10606 99de F30F6F85 		movdqu	-5376(%rbp), %xmm0
- 10606      00EBFFFF 
- 10607              	.LBE1339:
- 10608              	.LBE1338:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10609              		.loc 2 1568 0
- 10610 99e6 660F7F85 		movdqa	%xmm0, -6544(%rbp)
- 10610      70E6FFFF 
- 10611 99ee 660F6F85 		movdqa	-6544(%rbp), %xmm0
- 10611      70E6FFFF 
- 10612 99f6 660FEF85 		pxor	-2656(%rbp), %xmm0
- 10612      A0F5FFFF 
- 10613 99fe F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 10613      A0F5FFFF 
- 10614 9a06 660F6F85 		movdqa	-6544(%rbp), %xmm0
- 10614      70E6FFFF 
- 10615 9a0e F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 10615      D0F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 343
-
-
- 10616              	.LBB1340:
- 10617              	.LBB1341:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 10618              		.loc 2 1282 0
- 10619 9a16 F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 10619      D0F5FFFF 
- 10620 9a1e F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 10620      10EBFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 10621              		.loc 2 1283 0
- 10622 9a26 8B8518EB 		movl	-5352(%rbp), %eax
- 10622      FFFF
- 10623 9a2c 89851CEB 		movl	%eax, -5348(%rbp)
- 10623      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 10624              		.loc 2 1284 0
- 10625 9a32 8B8514EB 		movl	-5356(%rbp), %eax
- 10625      FFFF
- 10626 9a38 898518EB 		movl	%eax, -5352(%rbp)
- 10626      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 10627              		.loc 2 1285 0
- 10628 9a3e 8B8510EB 		movl	-5360(%rbp), %eax
- 10628      FFFF
- 10629 9a44 898514EB 		movl	%eax, -5356(%rbp)
- 10629      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 10630              		.loc 2 1286 0
- 10631 9a4a C78510EB 		movl	$0, -5360(%rbp)
- 10631      FFFF0000 
- 10631      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 10632              		.loc 2 1287 0
- 10633 9a54 F30F6F85 		movdqu	-5360(%rbp), %xmm0
- 10633      10EBFFFF 
- 10634              	.LBE1341:
- 10635              	.LBE1340:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10636              		.loc 2 1569 0
- 10637 9a5c 660F7F85 		movdqa	%xmm0, -6544(%rbp)
- 10637      70E6FFFF 
- 10638 9a64 660F6F85 		movdqa	-6544(%rbp), %xmm0
- 10638      70E6FFFF 
- 10639 9a6c 660FEF85 		pxor	-2656(%rbp), %xmm0
- 10639      A0F5FFFF 
- 10640 9a74 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 10640      A0F5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10641              		.loc 2 1571 0
- 10642 9a7c F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 10642      A0F5FFFF 
- 10643              	.LBE1335:
- 10644              	.LBE1334:
-1830:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k22   :k22^k23: k23    : 0            */
- 10645              		.loc 2 1830 0
- 10646 9a84 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 10646      80E5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 344
-
-
-1831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 10647              		.loc 2 1831 0
- 10648 9a8c 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 10648      90E5FFFF 
- 10649 9a94 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 10649      C0E5FFFF 
- 10650 9a9c 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 10650      C0E5FFFF 
- 10651 9aa4 F30F7F85 		movdqu	%xmm0, -2576(%rbp)
- 10651      F0F5FFFF 
- 10652              	.LBB1342:
- 10653              	.LBB1343:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 10654              		.loc 2 1681 0
- 10655 9aac B8080000 		movl	$8, %eax
- 10655      00
- 10656 9ab1 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 10656      00000000 
- 10657 9ab9 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 10657      10F6FFFF 
- 10658 9ac1 89850CF6 		movl	%eax, -2548(%rbp)
- 10658      FFFF
- 10659              	.LBB1344:
- 10660              	.LBB1345:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 10661              		.loc 2 522 0
- 10662 9ac7 F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 10662      10F6FFFF 
- 10663 9acf F30F7F85 		movdqu	%xmm0, -5280(%rbp)
- 10663      60EBFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 10664              		.loc 2 523 0
- 10665 9ad7 B8030000 		movl	$3, %eax
- 10665      00
- 10666 9adc 4898     		cltq
- 10667 9ade 8B950CF6 		movl	-2548(%rbp), %edx
- 10667      FFFF
- 10668 9ae4 89948560 		movl	%edx, -5280(%rbp,%rax,4)
- 10668      EBFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 10669              		.loc 2 524 0
- 10670 9aeb F30F6F85 		movdqu	-5280(%rbp), %xmm0
- 10670      60EBFFFF 
- 10671 9af3 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 10671      10F6FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10672              		.loc 2 526 0
- 10673 9afb F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 10673      10F6FFFF 
- 10674              	.LBE1345:
- 10675              	.LBE1344:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 10676              		.loc 2 1681 0
- 10677 9b03 660F7F85 		movdqa	%xmm0, -6512(%rbp)
- 10677      90E6FFFF 
- 10678 9b0b F30F6F85 		movdqu	-2576(%rbp), %xmm0
- 10678      F0F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 345
-
-
- 10679 9b13 F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 10679      20F6FFFF 
- 10680 9b1b F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 10680      20F6FFFF 
- 10681 9b23 F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 10681      40F6FFFF 
- 10682 9b2b 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 10682      000000
- 10683 9b32 48898538 		movq	%rax, -2504(%rbp)
- 10683      F6FFFF
- 10684              	.LBB1346:
- 10685              	.LBB1347:
- 10686              	.LBB1348:
- 10687              	.LBB1349:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 10688              		.loc 2 851 0
- 10689 9b39 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 10689      00000000 
- 10690 9b41 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 10690      60F6FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 10691              		.loc 2 854 0
- 10692 9b49 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 10692      00000000 
- 10693 9b51 F30F6F8D 		movdqu	-2496(%rbp), %xmm1
- 10693      40F6FFFF 
- 10694 9b59 F30F7F8D 		movdqu	%xmm1, -2384(%rbp)
- 10694      B0F6FFFF 
- 10695 9b61 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 10695      A0F6FFFF 
- 10696              	.LBB1350:
- 10697              	.LBB1351:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 10698              		.loc 2 206 0
- 10699 9b69 F30F6F85 		movdqu	-2400(%rbp), %xmm0
- 10699      A0F6FFFF 
- 10700 9b71 F30F6F8D 		movdqu	-2384(%rbp), %xmm1
- 10700      B0F6FFFF 
- 10701 9b79 660FDBC1 		pand	%xmm1, %xmm0
- 10702              	.LBE1351:
- 10703              	.LBE1350:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 10704              		.loc 2 854 0
- 10705 9b7d F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 10705      90F6FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 10706              		.loc 2 862 0
- 10707 9b85 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 10707      00000000 
- 10708 9b8d F30F6F8D 		movdqu	-2496(%rbp), %xmm1
- 10708      40F6FFFF 
- 10709 9b95 F30F7F8D 		movdqu	%xmm1, -2352(%rbp)
- 10709      D0F6FFFF 
- 10710 9b9d F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 10710      C0F6FFFF 
- 10711              	.LBB1352:
- 10712              		.loc 2 2642 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 346
-
-
- 10713 9ba5 0FB685D0 		movzbl	-2352(%rbp), %eax
- 10713      F6FFFF
- 10714 9bac 0FB695C0 		movzbl	-2368(%rbp), %edx
- 10714      F6FFFF
- 10715 9bb3 0FB6C0   		movzbl	%al, %eax
- 10716 9bb6 6689852E 		movw	%ax, -6866(%rbp)
- 10716      E5FFFF
- 10717 9bbd 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10717      E5FFFF
- 10718 9bc4 F6F2     		divb	%dl
- 10719 9bc6 4189C7   		movl	%eax, %r15d
- 10720 9bc9 0FB685D1 		movzbl	-2351(%rbp), %eax
- 10720      F6FFFF
- 10721 9bd0 0FB695C1 		movzbl	-2367(%rbp), %edx
- 10721      F6FFFF
- 10722 9bd7 0FB6C0   		movzbl	%al, %eax
- 10723 9bda 6689852E 		movw	%ax, -6866(%rbp)
- 10723      E5FFFF
- 10724 9be1 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10724      E5FFFF
- 10725 9be8 F6F2     		divb	%dl
- 10726 9bea 8885AFE6 		movb	%al, -6481(%rbp)
- 10726      FFFF
- 10727 9bf0 0FB685D2 		movzbl	-2350(%rbp), %eax
- 10727      F6FFFF
- 10728 9bf7 0FB695C2 		movzbl	-2366(%rbp), %edx
- 10728      F6FFFF
- 10729 9bfe 0FB6C0   		movzbl	%al, %eax
- 10730 9c01 6689852E 		movw	%ax, -6866(%rbp)
- 10730      E5FFFF
- 10731 9c08 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10731      E5FFFF
- 10732 9c0f F6F2     		divb	%dl
- 10733 9c11 8885AEE6 		movb	%al, -6482(%rbp)
- 10733      FFFF
- 10734 9c17 0FB685D3 		movzbl	-2349(%rbp), %eax
- 10734      F6FFFF
- 10735 9c1e 0FB695C3 		movzbl	-2365(%rbp), %edx
- 10735      F6FFFF
- 10736 9c25 0FB6C0   		movzbl	%al, %eax
- 10737 9c28 6689852E 		movw	%ax, -6866(%rbp)
- 10737      E5FFFF
- 10738 9c2f 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10738      E5FFFF
- 10739 9c36 F6F2     		divb	%dl
- 10740 9c38 8885ADE6 		movb	%al, -6483(%rbp)
- 10740      FFFF
- 10741 9c3e 0FB685D4 		movzbl	-2348(%rbp), %eax
- 10741      F6FFFF
- 10742 9c45 0FB695C4 		movzbl	-2364(%rbp), %edx
- 10742      F6FFFF
- 10743 9c4c 0FB6C0   		movzbl	%al, %eax
- 10744 9c4f 6689852E 		movw	%ax, -6866(%rbp)
- 10744      E5FFFF
- 10745 9c56 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10745      E5FFFF
- 10746 9c5d F6F2     		divb	%dl
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 347
-
-
- 10747 9c5f 8885ACE6 		movb	%al, -6484(%rbp)
- 10747      FFFF
- 10748 9c65 0FB685D5 		movzbl	-2347(%rbp), %eax
- 10748      F6FFFF
- 10749 9c6c 0FB695C5 		movzbl	-2363(%rbp), %edx
- 10749      F6FFFF
- 10750 9c73 0FB6C0   		movzbl	%al, %eax
- 10751 9c76 6689852E 		movw	%ax, -6866(%rbp)
- 10751      E5FFFF
- 10752 9c7d 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10752      E5FFFF
- 10753 9c84 F6F2     		divb	%dl
- 10754 9c86 4189C1   		movl	%eax, %r9d
- 10755 9c89 0FB685D6 		movzbl	-2346(%rbp), %eax
- 10755      F6FFFF
- 10756 9c90 0FB695C6 		movzbl	-2362(%rbp), %edx
- 10756      F6FFFF
- 10757 9c97 0FB6C0   		movzbl	%al, %eax
- 10758 9c9a 6689852E 		movw	%ax, -6866(%rbp)
- 10758      E5FFFF
- 10759 9ca1 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10759      E5FFFF
- 10760 9ca8 F6F2     		divb	%dl
- 10761 9caa 89C7     		movl	%eax, %edi
- 10762 9cac 0FB685D7 		movzbl	-2345(%rbp), %eax
- 10762      F6FFFF
- 10763 9cb3 0FB695C7 		movzbl	-2361(%rbp), %edx
- 10763      F6FFFF
- 10764 9cba 0FB6C0   		movzbl	%al, %eax
- 10765 9cbd 6689852E 		movw	%ax, -6866(%rbp)
- 10765      E5FFFF
- 10766 9cc4 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10766      E5FFFF
- 10767 9ccb F6F2     		divb	%dl
- 10768 9ccd 89C3     		movl	%eax, %ebx
- 10769 9ccf 0FB685D8 		movzbl	-2344(%rbp), %eax
- 10769      F6FFFF
- 10770 9cd6 0FB695C8 		movzbl	-2360(%rbp), %edx
- 10770      F6FFFF
- 10771 9cdd 0FB6C0   		movzbl	%al, %eax
- 10772 9ce0 6689852E 		movw	%ax, -6866(%rbp)
- 10772      E5FFFF
- 10773 9ce7 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10773      E5FFFF
- 10774 9cee F6F2     		divb	%dl
- 10775 9cf0 4189C2   		movl	%eax, %r10d
- 10776 9cf3 0FB685D9 		movzbl	-2343(%rbp), %eax
- 10776      F6FFFF
- 10777 9cfa 0FB695C9 		movzbl	-2359(%rbp), %edx
- 10777      F6FFFF
- 10778 9d01 0FB6C0   		movzbl	%al, %eax
- 10779 9d04 6689852E 		movw	%ax, -6866(%rbp)
- 10779      E5FFFF
- 10780 9d0b 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10780      E5FFFF
- 10781 9d12 F6F2     		divb	%dl
- 10782 9d14 4189C3   		movl	%eax, %r11d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 348
-
-
- 10783 9d17 0FB685DA 		movzbl	-2342(%rbp), %eax
- 10783      F6FFFF
- 10784 9d1e 0FB695CA 		movzbl	-2358(%rbp), %edx
- 10784      F6FFFF
- 10785 9d25 0FB6C0   		movzbl	%al, %eax
- 10786 9d28 6689852E 		movw	%ax, -6866(%rbp)
- 10786      E5FFFF
- 10787 9d2f 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10787      E5FFFF
- 10788 9d36 F6F2     		divb	%dl
- 10789 9d38 4189C4   		movl	%eax, %r12d
- 10790 9d3b 0FB685DB 		movzbl	-2341(%rbp), %eax
- 10790      F6FFFF
- 10791 9d42 0FB695CB 		movzbl	-2357(%rbp), %edx
- 10791      F6FFFF
- 10792 9d49 0FB6C0   		movzbl	%al, %eax
- 10793 9d4c 6689852E 		movw	%ax, -6866(%rbp)
- 10793      E5FFFF
- 10794 9d53 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10794      E5FFFF
- 10795 9d5a F6F2     		divb	%dl
- 10796 9d5c 4189C5   		movl	%eax, %r13d
- 10797 9d5f 0FB685DC 		movzbl	-2340(%rbp), %eax
- 10797      F6FFFF
- 10798 9d66 0FB695CC 		movzbl	-2356(%rbp), %edx
- 10798      F6FFFF
- 10799 9d6d 0FB6C0   		movzbl	%al, %eax
- 10800 9d70 6689852E 		movw	%ax, -6866(%rbp)
- 10800      E5FFFF
- 10801 9d77 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10801      E5FFFF
- 10802 9d7e F6F2     		divb	%dl
- 10803 9d80 4189C6   		movl	%eax, %r14d
- 10804 9d83 0FB685DD 		movzbl	-2339(%rbp), %eax
- 10804      F6FFFF
- 10805 9d8a 0FB695CD 		movzbl	-2355(%rbp), %edx
- 10805      F6FFFF
- 10806 9d91 0FB6C0   		movzbl	%al, %eax
- 10807 9d94 6689852E 		movw	%ax, -6866(%rbp)
- 10807      E5FFFF
- 10808 9d9b 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10808      E5FFFF
- 10809 9da2 F6F2     		divb	%dl
- 10810 9da4 4189C0   		movl	%eax, %r8d
- 10811 9da7 0FB685DE 		movzbl	-2338(%rbp), %eax
- 10811      F6FFFF
- 10812 9dae 0FB695CE 		movzbl	-2354(%rbp), %edx
- 10812      F6FFFF
- 10813 9db5 0FB6C0   		movzbl	%al, %eax
- 10814 9db8 6689852E 		movw	%ax, -6866(%rbp)
- 10814      E5FFFF
- 10815 9dbf 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10815      E5FFFF
- 10816 9dc6 F6F2     		divb	%dl
- 10817 9dc8 89C6     		movl	%eax, %esi
- 10818 9dca 0FB685DF 		movzbl	-2337(%rbp), %eax
- 10818      F6FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 349
-
-
- 10819 9dd1 0FB695CF 		movzbl	-2353(%rbp), %edx
- 10819      F6FFFF
- 10820 9dd8 0FB6C0   		movzbl	%al, %eax
- 10821 9ddb 6689852E 		movw	%ax, -6866(%rbp)
- 10821      E5FFFF
- 10822 9de2 0FB7852E 		movzwl	-6866(%rbp), %eax
- 10822      E5FFFF
- 10823 9de9 F6F2     		divb	%dl
- 10824 9deb 89C1     		movl	%eax, %ecx
- 10825              	.LBB1353:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 10826              		.loc 2 346 0
- 10827 9ded 0FB6D3   		movzbl	%bl, %edx
- 10828 9df0 400FB6C7 		movzbl	%dil, %eax
- 10829 9df4 48C1E208 		salq	$8, %rdx
- 10830 9df8 4809C2   		orq	%rax, %rdx
- 10831 9dfb 410FB6C1 		movzbl	%r9b, %eax
- 10832 9dff 48C1E208 		salq	$8, %rdx
- 10833 9e03 4809C2   		orq	%rax, %rdx
- 10834 9e06 0FB685AC 		movzbl	-6484(%rbp), %eax
- 10834      E6FFFF
- 10835 9e0d 48C1E208 		salq	$8, %rdx
- 10836 9e11 4809C2   		orq	%rax, %rdx
- 10837 9e14 0FB685AD 		movzbl	-6483(%rbp), %eax
- 10837      E6FFFF
- 10838 9e1b 48C1E208 		salq	$8, %rdx
- 10839 9e1f 4809C2   		orq	%rax, %rdx
- 10840 9e22 0FB685AE 		movzbl	-6482(%rbp), %eax
- 10840      E6FFFF
- 10841 9e29 48C1E208 		salq	$8, %rdx
- 10842 9e2d 4809C2   		orq	%rax, %rdx
- 10843 9e30 0FB685AF 		movzbl	-6481(%rbp), %eax
- 10843      E6FFFF
- 10844 9e37 48C1E208 		salq	$8, %rdx
- 10845 9e3b 4809C2   		orq	%rax, %rdx
- 10846 9e3e 410FB6C7 		movzbl	%r15b, %eax
- 10847 9e42 48C1E208 		salq	$8, %rdx
- 10848 9e46 4809C2   		orq	%rax, %rdx
- 10849 9e49 0FB6C1   		movzbl	%cl, %eax
- 10850 9e4c 400FB6CE 		movzbl	%sil, %ecx
- 10851 9e50 48C1E008 		salq	$8, %rax
- 10852 9e54 4809C8   		orq	%rcx, %rax
- 10853 9e57 410FB6C8 		movzbl	%r8b, %ecx
- 10854 9e5b 48C1E008 		salq	$8, %rax
- 10855 9e5f 4809C8   		orq	%rcx, %rax
- 10856 9e62 410FB6CE 		movzbl	%r14b, %ecx
- 10857 9e66 48C1E008 		salq	$8, %rax
- 10858 9e6a 4809C8   		orq	%rcx, %rax
- 10859 9e6d 410FB6CD 		movzbl	%r13b, %ecx
- 10860 9e71 48C1E008 		salq	$8, %rax
- 10861 9e75 4809C8   		orq	%rcx, %rax
- 10862 9e78 410FB6CC 		movzbl	%r12b, %ecx
- 10863 9e7c 48C1E008 		salq	$8, %rax
- 10864 9e80 4809C8   		orq	%rcx, %rax
- 10865 9e83 410FB6CB 		movzbl	%r11b, %ecx
- 10866 9e87 48C1E008 		salq	$8, %rax
- 10867 9e8b 4809C8   		orq	%rcx, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 350
-
-
- 10868 9e8e 410FB6CA 		movzbl	%r10b, %ecx
- 10869 9e92 48C1E008 		salq	$8, %rax
- 10870 9e96 4809C8   		orq	%rcx, %rax
- 10871 9e99 48899550 		movq	%rdx, -6832(%rbp)
- 10871      E5FFFF
- 10872 9ea0 48898558 		movq	%rax, -6824(%rbp)
- 10872      E5FFFF
- 10873 9ea7 660F6F85 		movdqa	-6832(%rbp), %xmm0
- 10873      50E5FFFF 
- 10874              	.LBE1353:
- 10875              	.LBE1352:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 10876              		.loc 2 862 0
- 10877 9eaf F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 10877      80F6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 10878              		.loc 2 866 0
- 10879 9eb7 C7855CF6 		movl	$0, -2468(%rbp)
- 10879      FFFF0000 
- 10879      0000
- 10880 9ec1 E9860200 		jmp	.L252
- 10880      00
- 10881              	.L261:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 10882              		.loc 2 868 0
- 10883 9ec6 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 10883      00000000 
- 10884 9ece F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 10884      F0F6FFFF 
- 10885 9ed6 F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 10885      80F6FFFF 
- 10886 9ede F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 10886      E0F6FFFF 
- 10887              	.LBB1354:
- 10888              	.LBB1355:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 10889              		.loc 2 380 0
- 10890 9ee6 F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 10890      F0F6FFFF 
- 10891 9eee F30F7F85 		movdqu	%xmm0, -5248(%rbp)
- 10891      80EBFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 10892              		.loc 2 381 0
- 10893 9ef6 F30F6F85 		movdqu	-2336(%rbp), %xmm0
- 10893      E0F6FFFF 
- 10894 9efe F30F7F85 		movdqu	%xmm0, -5264(%rbp)
- 10894      70EBFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 10895              		.loc 2 383 0
- 10896 9f06 C7850CF7 		movl	$0, -2292(%rbp)
- 10896      FFFF0000 
- 10896      0000
- 10897 9f10 EB5C     		jmp	.L253
- 10898              	.L256:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 10899              		.loc 2 385 0
- 10900 9f12 8B850CF7 		movl	-2292(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 351
-
-
- 10900      FFFF
- 10901 9f18 89C0     		mov	%eax, %eax
- 10902 9f1a 0FB68405 		movzbl	-5264(%rbp,%rax), %eax
- 10902      70EBFFFF 
- 10903 9f22 84C0     		testb	%al, %al
- 10904 9f24 7912     		jns	.L254
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 10905              		.loc 2 386 0
- 10906 9f26 8B850CF7 		movl	-2292(%rbp), %eax
- 10906      FFFF
- 10907 9f2c 89C0     		mov	%eax, %eax
- 10908 9f2e C6840590 		movb	$0, -5232(%rbp,%rax)
- 10908      EBFFFF00 
- 10909 9f36 EB2F     		jmp	.L255
- 10910              	.L254:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 10911              		.loc 2 388 0
- 10912 9f38 8B8D0CF7 		movl	-2292(%rbp), %ecx
- 10912      FFFF
- 10913 9f3e 8B850CF7 		movl	-2292(%rbp), %eax
- 10913      FFFF
- 10914 9f44 89C0     		mov	%eax, %eax
- 10915 9f46 0FB68405 		movzbl	-5264(%rbp,%rax), %eax
- 10915      70EBFFFF 
- 10916 9f4e 0FB6C0   		movzbl	%al, %eax
- 10917 9f51 83E00F   		andl	$15, %eax
- 10918 9f54 4898     		cltq
- 10919 9f56 0FB69405 		movzbl	-5248(%rbp,%rax), %edx
- 10919      80EBFFFF 
- 10920 9f5e 89C8     		mov	%ecx, %eax
- 10921 9f60 88940590 		movb	%dl, -5232(%rbp,%rax)
- 10921      EBFFFF
- 10922              	.L255:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 10923              		.loc 2 383 0
- 10924 9f67 83850CF7 		addl	$1, -2292(%rbp)
- 10924      FFFF01
- 10925              	.L253:
- 10926 9f6e 83BD0CF7 		cmpl	$15, -2292(%rbp)
- 10926      FFFF0F
- 10927 9f75 769B     		jbe	.L256
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 10928              		.loc 2 391 0
- 10929 9f77 F30F6F85 		movdqu	-5232(%rbp), %xmm0
- 10929      90EBFFFF 
- 10930              	.LBE1355:
- 10931              	.LBE1354:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 10932              		.loc 2 868 0
- 10933 9f7f F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 10933      70F6FFFF 
- 10934 9f87 F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 10934      90F6FFFF 
- 10935 9f8f F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 10935      20F7FFFF 
- 10936 9f97 F30F6F85 		movdqu	-2448(%rbp), %xmm0
- 10936      70F6FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 352
-
-
- 10937 9f9f F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 10937      10F7FFFF 
- 10938              	.LBB1356:
- 10939              	.LBB1357:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 10940              		.loc 2 234 0
- 10941 9fa7 F30F6F85 		movdqu	-2288(%rbp), %xmm0
- 10941      10F7FFFF 
- 10942 9faf F30F6F8D 		movdqu	-2272(%rbp), %xmm1
- 10942      20F7FFFF 
- 10943 9fb7 660FEBC1 		por	%xmm1, %xmm0
- 10944              	.LBE1357:
- 10945              	.LBE1356:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 10946              		.loc 2 870 0
- 10947 9fbb F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 10947      70F6FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 10948              		.loc 2 872 0
- 10949 9fc3 8B855CF6 		mov	-2468(%rbp), %eax
- 10949      FFFF
- 10950 9fc9 48C1E004 		salq	$4, %rax
- 10951 9fcd 48038538 		addq	-2504(%rbp), %rax
- 10951      F6FFFF
- 10952 9fd4 660F6F00 		movdqa	(%rax), %xmm0
- 10953 9fd8 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 10953      40F7FFFF 
- 10954 9fe0 F30F6F85 		movdqu	-2448(%rbp), %xmm0
- 10954      70F6FFFF 
- 10955 9fe8 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 10955      30F7FFFF 
- 10956              	.LBB1358:
- 10957              	.LBB1359:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 10958              		.loc 2 380 0
- 10959 9ff0 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 10959      40F7FFFF 
- 10960 9ff8 F30F7F85 		movdqu	%xmm0, -5200(%rbp)
- 10960      B0EBFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 10961              		.loc 2 381 0
- 10962 a000 F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 10962      30F7FFFF 
- 10963 a008 F30F7F85 		movdqu	%xmm0, -5216(%rbp)
- 10963      A0EBFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 10964              		.loc 2 383 0
- 10965 a010 C7855CF7 		movl	$0, -2212(%rbp)
- 10965      FFFF0000 
- 10965      0000
- 10966 a01a EB5C     		jmp	.L257
- 10967              	.L260:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 10968              		.loc 2 385 0
- 10969 a01c 8B855CF7 		movl	-2212(%rbp), %eax
- 10969      FFFF
- 10970 a022 89C0     		mov	%eax, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 353
-
-
- 10971 a024 0FB68405 		movzbl	-5216(%rbp,%rax), %eax
- 10971      A0EBFFFF 
- 10972 a02c 84C0     		testb	%al, %al
- 10973 a02e 7912     		jns	.L258
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 10974              		.loc 2 386 0
- 10975 a030 8B855CF7 		movl	-2212(%rbp), %eax
- 10975      FFFF
- 10976 a036 89C0     		mov	%eax, %eax
- 10977 a038 C68405C0 		movb	$0, -5184(%rbp,%rax)
- 10977      EBFFFF00 
- 10978 a040 EB2F     		jmp	.L259
- 10979              	.L258:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 10980              		.loc 2 388 0
- 10981 a042 8B8D5CF7 		movl	-2212(%rbp), %ecx
- 10981      FFFF
- 10982 a048 8B855CF7 		movl	-2212(%rbp), %eax
- 10982      FFFF
- 10983 a04e 89C0     		mov	%eax, %eax
- 10984 a050 0FB68405 		movzbl	-5216(%rbp,%rax), %eax
- 10984      A0EBFFFF 
- 10985 a058 0FB6C0   		movzbl	%al, %eax
- 10986 a05b 83E00F   		andl	$15, %eax
- 10987 a05e 4898     		cltq
- 10988 a060 0FB69405 		movzbl	-5200(%rbp,%rax), %edx
- 10988      B0EBFFFF 
- 10989 a068 89C8     		mov	%ecx, %eax
- 10990 a06a 889405C0 		movb	%dl, -5184(%rbp,%rax)
- 10990      EBFFFF
- 10991              	.L259:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 10992              		.loc 2 383 0
- 10993 a071 83855CF7 		addl	$1, -2212(%rbp)
- 10993      FFFF01
- 10994              	.L257:
- 10995 a078 83BD5CF7 		cmpl	$15, -2212(%rbp)
- 10995      FFFF0F
- 10996 a07f 769B     		jbe	.L260
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 10997              		.loc 2 391 0
- 10998 a081 F30F6F85 		movdqu	-5184(%rbp), %xmm0
- 10998      C0EBFFFF 
- 10999              	.LBE1359:
- 11000              	.LBE1358:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 11001              		.loc 2 872 0
- 11002 a089 F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 11002      70F6FFFF 
- 11003 a091 F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 11003      60F6FFFF 
- 11004 a099 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 11004      70F7FFFF 
- 11005 a0a1 F30F6F85 		movdqu	-2448(%rbp), %xmm0
- 11005      70F6FFFF 
- 11006 a0a9 F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 11006      60F7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 354
-
-
- 11007              	.LBB1360:
- 11008              	.LBB1361:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 11009              		.loc 2 234 0
- 11010 a0b1 F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 11010      60F7FFFF 
- 11011 a0b9 F30F6F8D 		movdqu	-2192(%rbp), %xmm1
- 11011      70F7FFFF 
- 11012 a0c1 660FEBC1 		por	%xmm1, %xmm0
- 11013              	.LBE1361:
- 11014              	.LBE1360:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 11015              		.loc 2 874 0
- 11016 a0c5 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 11016      60F6FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 11017              		.loc 2 876 0
- 11018 a0cd 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 11018      00000000 
- 11019 a0d5 F30F6F8D 		movdqu	-2432(%rbp), %xmm1
- 11019      80F6FFFF 
- 11020 a0dd F30F7F8D 		movdqu	%xmm1, -2160(%rbp)
- 11020      90F7FFFF 
- 11021 a0e5 F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 11021      80F7FFFF 
- 11022              	.LBB1362:
- 11023              	.LBB1363:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 11024              		.loc 2 290 0
- 11025 a0ed F30F6F8D 		movdqu	-2176(%rbp), %xmm1
- 11025      80F7FFFF 
- 11026 a0f5 F30F6F85 		movdqu	-2160(%rbp), %xmm0
- 11026      90F7FFFF 
- 11027 a0fd 660FF8C1 		psubb	%xmm1, %xmm0
- 11028              	.LBE1363:
- 11029              	.LBE1362:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 11030              		.loc 2 876 0
- 11031 a101 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 11031      80F6FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11032              		.loc 2 878 0
- 11033 a109 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 11033      00000000 
- 11034 a111 F30F6F8D 		movdqu	-2432(%rbp), %xmm1
- 11034      80F6FFFF 
- 11035 a119 F30F7F8D 		movdqu	%xmm1, -2128(%rbp)
- 11035      B0F7FFFF 
- 11036 a121 F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 11036      A0F7FFFF 
- 11037              	.LBB1364:
- 11038              	.LBB1365:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 11039              		.loc 2 206 0
- 11040 a129 F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 11040      A0F7FFFF 
- 11041 a131 F30F6F8D 		movdqu	-2128(%rbp), %xmm1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 355
-
-
- 11041      B0F7FFFF 
- 11042 a139 660FDBC1 		pand	%xmm1, %xmm0
- 11043              	.LBE1365:
- 11044              	.LBE1364:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11045              		.loc 2 878 0
- 11046 a13d F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 11046      80F6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 11047              		.loc 2 866 0
- 11048 a145 83855CF6 		addl	$1, -2468(%rbp)
- 11048      FFFF01
- 11049              	.L252:
- 11050 a14c 83BD5CF6 		cmpl	$15, -2468(%rbp)
- 11050      FFFF0F
- 11051 a153 0F866DFD 		jbe	.L261
- 11051      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 11052              		.loc 2 882 0
- 11053 a159 F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 11053      60F6FFFF 
- 11054              	.LBE1349:
- 11055              	.LBE1348:
- 11056              	.LBE1347:
- 11057              	.LBE1346:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 11058              		.loc 2 1682 0
- 11059 a161 660F7F85 		movdqa	%xmm0, -6528(%rbp)
- 11059      80E6FFFF 
- 11060              	.LBB1366:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 11061              		.loc 2 1683 0
- 11062 a169 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11062      80E6FFFF 
- 11063 a171 F30F7F85 		movdqu	%xmm0, -5296(%rbp)
- 11063      50EBFFFF 
- 11064 a179 E8000000 		call	KDbgWriterGet at PLT
- 11064      00
- 11065 a17e 4885C0   		testq	%rax, %rax
- 11066 a181 7479     		je	.L263
- 11067 a183 BF010000 		movl	$1, %edi
- 11067      00
- 11068 a188 E8000000 		call	KDbgCondToFlag at PLT
- 11068      00
- 11069 a18d 4889C6   		movq	%rax, %rsi
- 11070 a190 BF100000 		movl	$16, %edi
- 11070      00
- 11071 a195 E8000000 		call	KDbgTestModConds at PLT
- 11071      00
- 11072 a19a 84C0     		testb	%al, %al
- 11073 a19c 745E     		je	.L263
- 11074 a19e 8B855CEB 		movl	-5284(%rbp), %eax
- 11074      FFFF
- 11075 a1a4 89C7     		movl	%eax, %edi
- 11076 a1a6 E8555EFF 		call	bswap_32
- 11076      FF
- 11077 a1ab 4189C5   		movl	%eax, %r13d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 356
-
-
- 11078 a1ae 8B8558EB 		movl	-5288(%rbp), %eax
- 11078      FFFF
- 11079 a1b4 89C7     		movl	%eax, %edi
- 11080 a1b6 E8455EFF 		call	bswap_32
- 11080      FF
- 11081 a1bb 4189C4   		movl	%eax, %r12d
- 11082 a1be 8B8554EB 		movl	-5292(%rbp), %eax
- 11082      FFFF
- 11083 a1c4 89C7     		movl	%eax, %edi
- 11084 a1c6 E8355EFF 		call	bswap_32
- 11084      FF
- 11085 a1cb 89C3     		movl	%eax, %ebx
- 11086 a1cd 8B8550EB 		movl	-5296(%rbp), %eax
- 11086      FFFF
- 11087 a1d3 89C7     		movl	%eax, %edi
- 11088 a1d5 E8265EFF 		call	bswap_32
- 11088      FF
- 11089 a1da 4589E9   		movl	%r13d, %r9d
- 11090 a1dd 4589E0   		movl	%r12d, %r8d
- 11091 a1e0 89D9     		movl	%ebx, %ecx
- 11092 a1e2 89C2     		movl	%eax, %edx
- 11093 a1e4 488D3500 		leaq	.LC0(%rip), %rsi
- 11093      000000
- 11094 a1eb 488D3D00 		leaq	.LC1(%rip), %rdi
- 11094      000000
- 11095 a1f2 B8000000 		movl	$0, %eax
- 11095      00
- 11096 a1f7 E8000000 		call	KDbgMsg at PLT
- 11096      00
- 11097              	.L263:
- 11098 a1fc 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11098      80E6FFFF 
- 11099 a204 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 11099      C0F7FFFF 
- 11100              	.LBE1366:
- 11101              	.LBB1367:
- 11102              	.LBB1368:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 11103              		.loc 2 667 0
- 11104 a20c 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 11104      00000000 
- 11105 a214 F30F6F8D 		movdqu	-2112(%rbp), %xmm1
- 11105      C0F7FFFF 
- 11106 a21c F30F7F8D 		movdqu	%xmm1, -2080(%rbp)
- 11106      E0F7FFFF 
- 11107 a224 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 11107      D0F7FFFF 
- 11108              	.LBB1369:
- 11109              	.LBB1370:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 11110              		.loc 2 380 0
- 11111 a22c F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 11111      E0F7FFFF 
- 11112 a234 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 11112      E0EBFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 11113              		.loc 2 381 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 357
-
-
- 11114 a23c F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 11114      D0F7FFFF 
- 11115 a244 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 11115      D0EBFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 11116              		.loc 2 383 0
- 11117 a24c C785FCF7 		movl	$0, -2052(%rbp)
- 11117      FFFF0000 
- 11117      0000
- 11118 a256 EB5C     		jmp	.L264
- 11119              	.L267:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 11120              		.loc 2 385 0
- 11121 a258 8B85FCF7 		movl	-2052(%rbp), %eax
- 11121      FFFF
- 11122 a25e 89C0     		mov	%eax, %eax
- 11123 a260 0FB68405 		movzbl	-5168(%rbp,%rax), %eax
- 11123      D0EBFFFF 
- 11124 a268 84C0     		testb	%al, %al
- 11125 a26a 7912     		jns	.L265
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 11126              		.loc 2 386 0
- 11127 a26c 8B85FCF7 		movl	-2052(%rbp), %eax
- 11127      FFFF
- 11128 a272 89C0     		mov	%eax, %eax
- 11129 a274 C68405F0 		movb	$0, -5136(%rbp,%rax)
- 11129      EBFFFF00 
- 11130 a27c EB2F     		jmp	.L266
- 11131              	.L265:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 11132              		.loc 2 388 0
- 11133 a27e 8B8DFCF7 		movl	-2052(%rbp), %ecx
- 11133      FFFF
- 11134 a284 8B85FCF7 		movl	-2052(%rbp), %eax
- 11134      FFFF
- 11135 a28a 89C0     		mov	%eax, %eax
- 11136 a28c 0FB68405 		movzbl	-5168(%rbp,%rax), %eax
- 11136      D0EBFFFF 
- 11137 a294 0FB6C0   		movzbl	%al, %eax
- 11138 a297 83E00F   		andl	$15, %eax
- 11139 a29a 4898     		cltq
- 11140 a29c 0FB69405 		movzbl	-5152(%rbp,%rax), %edx
- 11140      E0EBFFFF 
- 11141 a2a4 89C8     		mov	%ecx, %eax
- 11142 a2a6 889405F0 		movb	%dl, -5136(%rbp,%rax)
- 11142      EBFFFF
- 11143              	.L266:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 11144              		.loc 2 383 0
- 11145 a2ad 8385FCF7 		addl	$1, -2052(%rbp)
- 11145      FFFF01
- 11146              	.L264:
- 11147 a2b4 83BDFCF7 		cmpl	$15, -2052(%rbp)
- 11147      FFFF0F
- 11148 a2bb 769B     		jbe	.L267
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 11149              		.loc 2 391 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 358
-
-
- 11150 a2bd F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 11150      F0EBFFFF 
- 11151              	.LBE1370:
- 11152              	.LBE1369:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 11153              		.loc 2 667 0
- 11154 a2c5 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 11154      C0F7FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11155              		.loc 2 668 0
- 11156 a2cd F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 11156      C0F7FFFF 
- 11157              	.LBE1368:
- 11158              	.LBE1367:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 11159              		.loc 2 1684 0
- 11160 a2d5 660F7F85 		movdqa	%xmm0, -6528(%rbp)
- 11160      80E6FFFF 
- 11161              	.LBB1371:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 11162              		.loc 2 1685 0
- 11163 a2dd 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11163      80E6FFFF 
- 11164 a2e5 F30F7F85 		movdqu	%xmm0, -5312(%rbp)
- 11164      40EBFFFF 
- 11165 a2ed E8000000 		call	KDbgWriterGet at PLT
- 11165      00
- 11166 a2f2 4885C0   		testq	%rax, %rax
- 11167 a2f5 7479     		je	.L269
- 11168 a2f7 BF010000 		movl	$1, %edi
- 11168      00
- 11169 a2fc E8000000 		call	KDbgCondToFlag at PLT
- 11169      00
- 11170 a301 4889C6   		movq	%rax, %rsi
- 11171 a304 BF100000 		movl	$16, %edi
- 11171      00
- 11172 a309 E8000000 		call	KDbgTestModConds at PLT
- 11172      00
- 11173 a30e 84C0     		testb	%al, %al
- 11174 a310 745E     		je	.L269
- 11175 a312 8B854CEB 		movl	-5300(%rbp), %eax
- 11175      FFFF
- 11176 a318 89C7     		movl	%eax, %edi
- 11177 a31a E8E15CFF 		call	bswap_32
- 11177      FF
- 11178 a31f 4189C5   		movl	%eax, %r13d
- 11179 a322 8B8548EB 		movl	-5304(%rbp), %eax
- 11179      FFFF
- 11180 a328 89C7     		movl	%eax, %edi
- 11181 a32a E8D15CFF 		call	bswap_32
- 11181      FF
- 11182 a32f 4189C4   		movl	%eax, %r12d
- 11183 a332 8B8544EB 		movl	-5308(%rbp), %eax
- 11183      FFFF
- 11184 a338 89C7     		movl	%eax, %edi
- 11185 a33a E8C15CFF 		call	bswap_32
- 11185      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 359
-
-
- 11186 a33f 89C3     		movl	%eax, %ebx
- 11187 a341 8B8540EB 		movl	-5312(%rbp), %eax
- 11187      FFFF
- 11188 a347 89C7     		movl	%eax, %edi
- 11189 a349 E8B25CFF 		call	bswap_32
- 11189      FF
- 11190 a34e 4589E9   		movl	%r13d, %r9d
- 11191 a351 4589E0   		movl	%r12d, %r8d
- 11192 a354 89D9     		movl	%ebx, %ecx
- 11193 a356 89C2     		movl	%eax, %edx
- 11194 a358 488D3500 		leaq	.LC2(%rip), %rsi
- 11194      000000
- 11195 a35f 488D3D00 		leaq	.LC1(%rip), %rdi
- 11195      000000
- 11196 a366 B8000000 		movl	$0, %eax
- 11196      00
- 11197 a36b E8000000 		call	KDbgMsg at PLT
- 11197      00
- 11198              	.L269:
- 11199 a370 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11199      80E6FFFF 
- 11200 a378 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 11200      10F8FFFF 
- 11201 a380 660F6F85 		movdqa	-6512(%rbp), %xmm0
- 11201      90E6FFFF 
- 11202 a388 F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 11202      00F8FFFF 
- 11203              	.LBE1371:
- 11204              	.LBB1372:
- 11205              	.LBB1373:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 11206              		.loc 2 178 0
- 11207 a390 F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 11207      00F8FFFF 
- 11208 a398 F30F6F8D 		movdqu	-2032(%rbp), %xmm1
- 11208      10F8FFFF 
- 11209 a3a0 660FEFC1 		pxor	%xmm1, %xmm0
- 11210              	.LBE1373:
- 11211              	.LBE1372:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 11212              		.loc 2 1686 0
- 11213 a3a4 660F7F85 		movdqa	%xmm0, -6528(%rbp)
- 11213      80E6FFFF 
- 11214              	.LBB1374:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 11215              		.loc 2 1687 0
- 11216 a3ac 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11216      80E6FFFF 
- 11217 a3b4 F30F7F85 		movdqu	%xmm0, -5328(%rbp)
- 11217      30EBFFFF 
- 11218 a3bc E8000000 		call	KDbgWriterGet at PLT
- 11218      00
- 11219 a3c1 4885C0   		testq	%rax, %rax
- 11220 a3c4 7479     		je	.L271
- 11221 a3c6 BF010000 		movl	$1, %edi
- 11221      00
- 11222 a3cb E8000000 		call	KDbgCondToFlag at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 360
-
-
- 11222      00
- 11223 a3d0 4889C6   		movq	%rax, %rsi
- 11224 a3d3 BF100000 		movl	$16, %edi
- 11224      00
- 11225 a3d8 E8000000 		call	KDbgTestModConds at PLT
- 11225      00
- 11226 a3dd 84C0     		testb	%al, %al
- 11227 a3df 745E     		je	.L271
- 11228 a3e1 8B853CEB 		movl	-5316(%rbp), %eax
- 11228      FFFF
- 11229 a3e7 89C7     		movl	%eax, %edi
- 11230 a3e9 E8125CFF 		call	bswap_32
- 11230      FF
- 11231 a3ee 4189C5   		movl	%eax, %r13d
- 11232 a3f1 8B8538EB 		movl	-5320(%rbp), %eax
- 11232      FFFF
- 11233 a3f7 89C7     		movl	%eax, %edi
- 11234 a3f9 E8025CFF 		call	bswap_32
- 11234      FF
- 11235 a3fe 4189C4   		movl	%eax, %r12d
- 11236 a401 8B8534EB 		movl	-5324(%rbp), %eax
- 11236      FFFF
- 11237 a407 89C7     		movl	%eax, %edi
- 11238 a409 E8F25BFF 		call	bswap_32
- 11238      FF
- 11239 a40e 89C3     		movl	%eax, %ebx
- 11240 a410 8B8530EB 		movl	-5328(%rbp), %eax
- 11240      FFFF
- 11241 a416 89C7     		movl	%eax, %edi
- 11242 a418 E8E35BFF 		call	bswap_32
- 11242      FF
- 11243 a41d 4589E9   		movl	%r13d, %r9d
- 11244 a420 4589E0   		movl	%r12d, %r8d
- 11245 a423 89D9     		movl	%ebx, %ecx
- 11246 a425 89C2     		movl	%eax, %edx
- 11247 a427 488D3500 		leaq	.LC3(%rip), %rsi
- 11247      000000
- 11248 a42e 488D3D00 		leaq	.LC1(%rip), %rdi
- 11248      000000
- 11249 a435 B8000000 		movl	$0, %eax
- 11249      00
- 11250 a43a E8000000 		call	KDbgMsg at PLT
- 11250      00
- 11251              	.L271:
- 11252 a43f 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11252      80E6FFFF 
- 11253 a447 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 11253      20F8FFFF 
- 11254              	.LBE1374:
- 11255              	.LBB1375:
- 11256              	.LBB1376:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11257              		.loc 2 1357 0
- 11258 a44f F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 11258      20F8FFFF 
- 11259 a457 F30F7F85 		movdqu	%xmm0, -5120(%rbp)
- 11259      00ECFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 361
-
-
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 11260              		.loc 2 1358 0
- 11261 a45f 8B850CEC 		movl	-5108(%rbp), %eax
- 11261      FFFF
- 11262 a465 898508EC 		movl	%eax, -5112(%rbp)
- 11262      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 11263              		.loc 2 1359 0
- 11264 a46b 8B850CEC 		movl	-5108(%rbp), %eax
- 11264      FFFF
- 11265 a471 898504EC 		movl	%eax, -5116(%rbp)
- 11265      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 11266              		.loc 2 1360 0
- 11267 a477 8B850CEC 		movl	-5108(%rbp), %eax
- 11267      FFFF
- 11268 a47d 898500EC 		movl	%eax, -5120(%rbp)
- 11268      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11269              		.loc 2 1361 0
- 11270 a483 F30F6F85 		movdqu	-5120(%rbp), %xmm0
- 11270      00ECFFFF 
- 11271              	.LBE1376:
- 11272              	.LBE1375:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 11273              		.loc 2 1688 0
- 11274 a48b 660F7F85 		movdqa	%xmm0, -6528(%rbp)
- 11274      80E6FFFF 
- 11275              	.LBB1377:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 11276              		.loc 2 1689 0
- 11277 a493 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11277      80E6FFFF 
- 11278 a49b F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 11278      20EBFFFF 
- 11279 a4a3 E8000000 		call	KDbgWriterGet at PLT
- 11279      00
- 11280 a4a8 4885C0   		testq	%rax, %rax
- 11281 a4ab 7479     		je	.L273
- 11282 a4ad BF010000 		movl	$1, %edi
- 11282      00
- 11283 a4b2 E8000000 		call	KDbgCondToFlag at PLT
- 11283      00
- 11284 a4b7 4889C6   		movq	%rax, %rsi
- 11285 a4ba BF100000 		movl	$16, %edi
- 11285      00
- 11286 a4bf E8000000 		call	KDbgTestModConds at PLT
- 11286      00
- 11287 a4c4 84C0     		testb	%al, %al
- 11288 a4c6 745E     		je	.L273
- 11289 a4c8 8B852CEB 		movl	-5332(%rbp), %eax
- 11289      FFFF
- 11290 a4ce 89C7     		movl	%eax, %edi
- 11291 a4d0 E82B5BFF 		call	bswap_32
- 11291      FF
- 11292 a4d5 4189C5   		movl	%eax, %r13d
- 11293 a4d8 8B8528EB 		movl	-5336(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 362
-
-
- 11293      FFFF
- 11294 a4de 89C7     		movl	%eax, %edi
- 11295 a4e0 E81B5BFF 		call	bswap_32
- 11295      FF
- 11296 a4e5 4189C4   		movl	%eax, %r12d
- 11297 a4e8 8B8524EB 		movl	-5340(%rbp), %eax
- 11297      FFFF
- 11298 a4ee 89C7     		movl	%eax, %edi
- 11299 a4f0 E80B5BFF 		call	bswap_32
- 11299      FF
- 11300 a4f5 89C3     		movl	%eax, %ebx
- 11301 a4f7 8B8520EB 		movl	-5344(%rbp), %eax
- 11301      FFFF
- 11302 a4fd 89C7     		movl	%eax, %edi
- 11303 a4ff E8FC5AFF 		call	bswap_32
- 11303      FF
- 11304 a504 4589E9   		movl	%r13d, %r9d
- 11305 a507 4589E0   		movl	%r12d, %r8d
- 11306 a50a 89D9     		movl	%ebx, %ecx
- 11307 a50c 89C2     		movl	%eax, %edx
- 11308 a50e 488D3500 		leaq	.LC4(%rip), %rsi
- 11308      000000
- 11309 a515 488D3D00 		leaq	.LC1(%rip), %rdi
- 11309      000000
- 11310 a51c B8000000 		movl	$0, %eax
- 11310      00
- 11311 a521 E8000000 		call	KDbgMsg at PLT
- 11311      00
- 11312              	.L273:
- 11313              	.LBE1377:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 11314              		.loc 2 1690 0
- 11315 a526 660F6F85 		movdqa	-6528(%rbp), %xmm0
- 11315      80E6FFFF 
- 11316              	.LBE1343:
- 11317              	.LBE1342:
-1831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 11318              		.loc 2 1831 0
- 11319 a52e 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11319      C0E5FFFF 
-1833:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k24   : k25   : k26    : k27          */
- 11320              		.loc 2 1833 0
- 11321 a536 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 11321      70E5FFFF 
- 11322 a53e 660FEF85 		pxor	-6720(%rbp), %xmm0
- 11322      C0E5FFFF 
- 11323 a546 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 11323      70E5FFFF 
-1834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k27   : k27   : k27    : k27          */
- 11324              		.loc 2 1834 0
- 11325 a54e 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 11325      70E5FFFF 
- 11326 a556 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11326      C0E5FFFF 
- 11327 a55e 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 11327      C0E5FFFF 
- 11328 a566 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 363
-
-
- 11328      30F8FFFF 
- 11329              	.LBB1378:
- 11330              	.LBB1379:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11331              		.loc 2 1357 0
- 11332 a56e F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 11332      30F8FFFF 
- 11333 a576 F30F7F85 		movdqu	%xmm0, -5104(%rbp)
- 11333      10ECFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 11334              		.loc 2 1358 0
- 11335 a57e 8B851CEC 		movl	-5092(%rbp), %eax
- 11335      FFFF
- 11336 a584 898518EC 		movl	%eax, -5096(%rbp)
- 11336      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 11337              		.loc 2 1359 0
- 11338 a58a 8B851CEC 		movl	-5092(%rbp), %eax
- 11338      FFFF
- 11339 a590 898514EC 		movl	%eax, -5100(%rbp)
- 11339      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 11340              		.loc 2 1360 0
- 11341 a596 8B851CEC 		movl	-5092(%rbp), %eax
- 11341      FFFF
- 11342 a59c 898510EC 		movl	%eax, -5104(%rbp)
- 11342      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11343              		.loc 2 1361 0
- 11344 a5a2 F30F6F85 		movdqu	-5104(%rbp), %xmm0
- 11344      10ECFFFF 
- 11345              	.LBE1379:
- 11346              	.LBE1378:
-1834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k27   : k27   : k27    : k27          */
- 11347              		.loc 2 1834 0
- 11348 a5aa 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11348      C0E5FFFF 
-1835:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k28   : k29   : x      : x            */
- 11349              		.loc 2 1835 0
- 11350 a5b2 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 11350      80E5FFFF 
- 11351 a5ba 660FEF85 		pxor	-6720(%rbp), %xmm0
- 11351      C0E5FFFF 
- 11352 a5c2 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 11352      80E5FFFF 
-1837:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[6] = v0; /* K24:K25:K26:K27 */
- 11353              		.loc 2 1837 0
- 11354 a5ca 488B8588 		movq	-6264(%rbp), %rax
- 11354      E7FFFF
- 11355 a5d1 4883C060 		addq	$96, %rax
- 11356 a5d5 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 11356      70E5FFFF 
- 11357 a5dd 660F7F00 		movdqa	%xmm0, (%rax)
-1842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 11358              		.loc 2 1842 0
- 11359 a5e1 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 11359      80E5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 364
-
-
- 11360 a5e9 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11360      C0E5FFFF 
- 11361 a5f1 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 11361      C0E5FFFF 
- 11362 a5f9 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 11362      50F8FFFF 
- 11363              	.LBB1380:
- 11364              	.LBB1381:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 11365              		.loc 2 1629 0
- 11366 a601 B8100000 		movl	$16, %eax
- 11366      00
- 11367 a606 0FB6C0   		movzbl	%al, %eax
- 11368 a609 898570F8 		movl	%eax, -1936(%rbp)
- 11368      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 11369              		.loc 2 1630 0
- 11370 a60f F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 11370      50F8FFFF 
- 11371 a617 F30F7F85 		movdqu	%xmm0, -5072(%rbp)
- 11371      30ECFFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 11372              		.loc 2 1631 0
- 11373 a61f 8B8534EC 		movl	-5068(%rbp), %eax
- 11373      FFFF
- 11374 a625 898574F8 		movl	%eax, -1932(%rbp)
- 11374      FFFF
- 11375              	.LBB1382:
- 11376              	.LBB1383:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 11377              		.loc 2 740 0
- 11378 a62b 8B8574F8 		movl	-1932(%rbp), %eax
- 11378      FFFF
- 11379 a631 898520EC 		movl	%eax, -5088(%rbp)
- 11379      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 11380              		.loc 2 741 0
- 11381 a637 C78578F8 		movl	$0, -1928(%rbp)
- 11381      FFFF0000 
- 11381      0000
- 11382 a641 EB36     		jmp	.L274
- 11383              	.L275:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 11384              		.loc 2 742 0
- 11385 a643 8B8D78F8 		movl	-1928(%rbp), %ecx
- 11385      FFFF
- 11386 a649 8B8578F8 		movl	-1928(%rbp), %eax
- 11386      FFFF
- 11387 a64f 89C0     		mov	%eax, %eax
- 11388 a651 0FB68405 		movzbl	-5088(%rbp,%rax), %eax
- 11388      20ECFFFF 
- 11389 a659 0FB6C0   		movzbl	%al, %eax
- 11390 a65c 89C2     		mov	%eax, %edx
- 11391 a65e 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 11391      000000
- 11392 a665 0FB61402 		movzbl	(%rdx,%rax), %edx
- 11393 a669 89C8     		mov	%ecx, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 365
-
-
- 11394 a66b 88940520 		movb	%dl, -5088(%rbp,%rax)
- 11394      ECFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 11395              		.loc 2 741 0
- 11396 a672 838578F8 		addl	$1, -1928(%rbp)
- 11396      FFFF01
- 11397              	.L274:
- 11398 a679 83BD78F8 		cmpl	$3, -1928(%rbp)
- 11398      FFFF03
- 11399 a680 76C1     		jbe	.L275
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 11400              		.loc 2 743 0
- 11401 a682 8B8520EC 		movl	-5088(%rbp), %eax
- 11401      FFFF
- 11402              	.LBE1383:
- 11403              	.LBE1382:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 11404              		.loc 2 1631 0
- 11405 a688 89856CF8 		movl	%eax, -1940(%rbp)
- 11405      FFFF
- 11406 a68e 8B856CF8 		movl	-1940(%rbp), %eax
- 11406      FFFF
- 11407 a694 89857CF8 		movl	%eax, -1924(%rbp)
- 11407      FFFF
- 11408              	.LBB1384:
- 11409              	.LBB1385:
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 11410              		.loc 2 1196 0
- 11411 a69a 8B857CF8 		movl	-1924(%rbp), %eax
- 11411      FFFF
- 11412 a6a0 C1C808   		rorl	$8, %eax
- 11413              	.LBE1385:
- 11414              	.LBE1384:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 11415              		.loc 2 1632 0
- 11416 a6a3 89856CF8 		movl	%eax, -1940(%rbp)
- 11416      FFFF
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 11417              		.loc 2 1633 0
- 11418 a6a9 8B8570F8 		movl	-1936(%rbp), %eax
- 11418      FFFF
- 11419 a6af 31856CF8 		xorl	%eax, -1940(%rbp)
- 11419      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 11420              		.loc 2 1635 0
- 11421 a6b5 8B856CF8 		movl	-1940(%rbp), %eax
- 11421      FFFF
- 11422 a6bb 89853CEC 		movl	%eax, -5060(%rbp)
- 11422      FFFF
- 11423 a6c1 8B853CEC 		movl	-5060(%rbp), %eax
- 11423      FFFF
- 11424 a6c7 898538EC 		movl	%eax, -5064(%rbp)
- 11424      FFFF
- 11425 a6cd 8B8538EC 		movl	-5064(%rbp), %eax
- 11425      FFFF
- 11426 a6d3 898534EC 		movl	%eax, -5068(%rbp)
- 11426      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 366
-
-
- 11427 a6d9 8B8534EC 		movl	-5068(%rbp), %eax
- 11427      FFFF
- 11428 a6df 898530EC 		movl	%eax, -5072(%rbp)
- 11428      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 11429              		.loc 2 1636 0
- 11430 a6e5 F30F6F85 		movdqu	-5072(%rbp), %xmm0
- 11430      30ECFFFF 
- 11431              	.LBE1381:
- 11432              	.LBE1380:
-1842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 11433              		.loc 2 1842 0
- 11434 a6ed 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11434      C0E5FFFF 
- 11435 a6f5 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 11435      70E5FFFF 
- 11436 a6fd F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 11436      80F8FFFF 
- 11437              	.LBB1386:
- 11438              	.LBB1387:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 11439              		.loc 2 1565 0
- 11440 a705 F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 11440      80F8FFFF 
- 11441 a70d 660F7F85 		movdqa	%xmm0, -6480(%rbp)
- 11441      B0E6FFFF 
- 11442 a715 660F6F85 		movdqa	-6480(%rbp), %xmm0
- 11442      B0E6FFFF 
- 11443 a71d F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 11443      90F8FFFF 
- 11444              	.LBB1388:
- 11445              	.LBB1389:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11446              		.loc 2 1282 0
- 11447 a725 F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 11447      90F8FFFF 
- 11448 a72d F30F7F85 		movdqu	%xmm0, -5056(%rbp)
- 11448      40ECFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11449              		.loc 2 1283 0
- 11450 a735 8B8548EC 		movl	-5048(%rbp), %eax
- 11450      FFFF
- 11451 a73b 89854CEC 		movl	%eax, -5044(%rbp)
- 11451      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11452              		.loc 2 1284 0
- 11453 a741 8B8544EC 		movl	-5052(%rbp), %eax
- 11453      FFFF
- 11454 a747 898548EC 		movl	%eax, -5048(%rbp)
- 11454      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11455              		.loc 2 1285 0
- 11456 a74d 8B8540EC 		movl	-5056(%rbp), %eax
- 11456      FFFF
- 11457 a753 898544EC 		movl	%eax, -5052(%rbp)
- 11457      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 367
-
-
- 11458              		.loc 2 1286 0
- 11459 a759 C78540EC 		movl	$0, -5056(%rbp)
- 11459      FFFF0000 
- 11459      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11460              		.loc 2 1287 0
- 11461 a763 F30F6F85 		movdqu	-5056(%rbp), %xmm0
- 11461      40ECFFFF 
- 11462              	.LBE1389:
- 11463              	.LBE1388:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11464              		.loc 2 1567 0
- 11465 a76b 660F7F85 		movdqa	%xmm0, -6480(%rbp)
- 11465      B0E6FFFF 
- 11466 a773 660F6F85 		movdqa	-6480(%rbp), %xmm0
- 11466      B0E6FFFF 
- 11467 a77b 660FEF85 		pxor	-1920(%rbp), %xmm0
- 11467      80F8FFFF 
- 11468 a783 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 11468      80F8FFFF 
- 11469 a78b 660F6F85 		movdqa	-6480(%rbp), %xmm0
- 11469      B0E6FFFF 
- 11470 a793 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 11470      A0F8FFFF 
- 11471              	.LBB1390:
- 11472              	.LBB1391:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11473              		.loc 2 1282 0
- 11474 a79b F30F6F85 		movdqu	-1888(%rbp), %xmm0
- 11474      A0F8FFFF 
- 11475 a7a3 F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 11475      50ECFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11476              		.loc 2 1283 0
- 11477 a7ab 8B8558EC 		movl	-5032(%rbp), %eax
- 11477      FFFF
- 11478 a7b1 89855CEC 		movl	%eax, -5028(%rbp)
- 11478      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11479              		.loc 2 1284 0
- 11480 a7b7 8B8554EC 		movl	-5036(%rbp), %eax
- 11480      FFFF
- 11481 a7bd 898558EC 		movl	%eax, -5032(%rbp)
- 11481      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11482              		.loc 2 1285 0
- 11483 a7c3 8B8550EC 		movl	-5040(%rbp), %eax
- 11483      FFFF
- 11484 a7c9 898554EC 		movl	%eax, -5036(%rbp)
- 11484      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11485              		.loc 2 1286 0
- 11486 a7cf C78550EC 		movl	$0, -5040(%rbp)
- 11486      FFFF0000 
- 11486      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11487              		.loc 2 1287 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 368
-
-
- 11488 a7d9 F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 11488      50ECFFFF 
- 11489              	.LBE1391:
- 11490              	.LBE1390:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11491              		.loc 2 1568 0
- 11492 a7e1 660F7F85 		movdqa	%xmm0, -6480(%rbp)
- 11492      B0E6FFFF 
- 11493 a7e9 660F6F85 		movdqa	-6480(%rbp), %xmm0
- 11493      B0E6FFFF 
- 11494 a7f1 660FEF85 		pxor	-1920(%rbp), %xmm0
- 11494      80F8FFFF 
- 11495 a7f9 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 11495      80F8FFFF 
- 11496 a801 660F6F85 		movdqa	-6480(%rbp), %xmm0
- 11496      B0E6FFFF 
- 11497 a809 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 11497      B0F8FFFF 
- 11498              	.LBB1392:
- 11499              	.LBB1393:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11500              		.loc 2 1282 0
- 11501 a811 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 11501      B0F8FFFF 
- 11502 a819 F30F7F85 		movdqu	%xmm0, -5024(%rbp)
- 11502      60ECFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11503              		.loc 2 1283 0
- 11504 a821 8B8568EC 		movl	-5016(%rbp), %eax
- 11504      FFFF
- 11505 a827 89856CEC 		movl	%eax, -5012(%rbp)
- 11505      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11506              		.loc 2 1284 0
- 11507 a82d 8B8564EC 		movl	-5020(%rbp), %eax
- 11507      FFFF
- 11508 a833 898568EC 		movl	%eax, -5016(%rbp)
- 11508      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11509              		.loc 2 1285 0
- 11510 a839 8B8560EC 		movl	-5024(%rbp), %eax
- 11510      FFFF
- 11511 a83f 898564EC 		movl	%eax, -5020(%rbp)
- 11511      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11512              		.loc 2 1286 0
- 11513 a845 C78560EC 		movl	$0, -5024(%rbp)
- 11513      FFFF0000 
- 11513      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11514              		.loc 2 1287 0
- 11515 a84f F30F6F85 		movdqu	-5024(%rbp), %xmm0
- 11515      60ECFFFF 
- 11516              	.LBE1393:
- 11517              	.LBE1392:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11518              		.loc 2 1569 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 369
-
-
- 11519 a857 660F7F85 		movdqa	%xmm0, -6480(%rbp)
- 11519      B0E6FFFF 
- 11520 a85f 660F6F85 		movdqa	-6480(%rbp), %xmm0
- 11520      B0E6FFFF 
- 11521 a867 660FEF85 		pxor	-1920(%rbp), %xmm0
- 11521      80F8FFFF 
- 11522 a86f F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 11522      80F8FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11523              		.loc 2 1571 0
- 11524 a877 F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 11524      80F8FFFF 
- 11525              	.LBE1387:
- 11526              	.LBE1386:
-1844:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k24   :k24^k25:k24^k25^k26:k24^k25^k26^k27 */
- 11527              		.loc 2 1844 0
- 11528 a87f 660F7F85 		movdqa	%xmm0, -6752(%rbp)
- 11528      A0E5FFFF 
-1845:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k30   : k31   : k32    : k33          */
- 11529              		.loc 2 1845 0
- 11530 a887 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 11530      A0E5FFFF 
- 11531 a88f 660FEF85 		pxor	-6720(%rbp), %xmm0
- 11531      C0E5FFFF 
- 11532 a897 660F7F85 		movdqa	%xmm0, -6752(%rbp)
- 11532      A0E5FFFF 
- 11533 a89f 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 11533      80E5FFFF 
- 11534 a8a7 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 11534      C0F8FFFF 
- 11535              	.LBB1394:
- 11536              	.LBB1395:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 11537              		.loc 2 1565 0
- 11538 a8af F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 11538      C0F8FFFF 
- 11539 a8b7 660F7F85 		movdqa	%xmm0, -6464(%rbp)
- 11539      C0E6FFFF 
- 11540 a8bf 660F6F85 		movdqa	-6464(%rbp), %xmm0
- 11540      C0E6FFFF 
- 11541 a8c7 F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 11541      D0F8FFFF 
- 11542              	.LBB1396:
- 11543              	.LBB1397:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11544              		.loc 2 1282 0
- 11545 a8cf F30F6F85 		movdqu	-1840(%rbp), %xmm0
- 11545      D0F8FFFF 
- 11546 a8d7 F30F7F85 		movdqu	%xmm0, -5008(%rbp)
- 11546      70ECFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11547              		.loc 2 1283 0
- 11548 a8df 8B8578EC 		movl	-5000(%rbp), %eax
- 11548      FFFF
- 11549 a8e5 89857CEC 		movl	%eax, -4996(%rbp)
- 11549      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 370
-
-
- 11550              		.loc 2 1284 0
- 11551 a8eb 8B8574EC 		movl	-5004(%rbp), %eax
- 11551      FFFF
- 11552 a8f1 898578EC 		movl	%eax, -5000(%rbp)
- 11552      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11553              		.loc 2 1285 0
- 11554 a8f7 8B8570EC 		movl	-5008(%rbp), %eax
- 11554      FFFF
- 11555 a8fd 898574EC 		movl	%eax, -5004(%rbp)
- 11555      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11556              		.loc 2 1286 0
- 11557 a903 C78570EC 		movl	$0, -5008(%rbp)
- 11557      FFFF0000 
- 11557      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11558              		.loc 2 1287 0
- 11559 a90d F30F6F85 		movdqu	-5008(%rbp), %xmm0
- 11559      70ECFFFF 
- 11560              	.LBE1397:
- 11561              	.LBE1396:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11562              		.loc 2 1567 0
- 11563 a915 660F7F85 		movdqa	%xmm0, -6464(%rbp)
- 11563      C0E6FFFF 
- 11564 a91d 660F6F85 		movdqa	-6464(%rbp), %xmm0
- 11564      C0E6FFFF 
- 11565 a925 660FEF85 		pxor	-1856(%rbp), %xmm0
- 11565      C0F8FFFF 
- 11566 a92d F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 11566      C0F8FFFF 
- 11567 a935 660F6F85 		movdqa	-6464(%rbp), %xmm0
- 11567      C0E6FFFF 
- 11568 a93d F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 11568      E0F8FFFF 
- 11569              	.LBB1398:
- 11570              	.LBB1399:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11571              		.loc 2 1282 0
- 11572 a945 F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 11572      E0F8FFFF 
- 11573 a94d F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 11573      80ECFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11574              		.loc 2 1283 0
- 11575 a955 8B8588EC 		movl	-4984(%rbp), %eax
- 11575      FFFF
- 11576 a95b 89858CEC 		movl	%eax, -4980(%rbp)
- 11576      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11577              		.loc 2 1284 0
- 11578 a961 8B8584EC 		movl	-4988(%rbp), %eax
- 11578      FFFF
- 11579 a967 898588EC 		movl	%eax, -4984(%rbp)
- 11579      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 371
-
-
- 11580              		.loc 2 1285 0
- 11581 a96d 8B8580EC 		movl	-4992(%rbp), %eax
- 11581      FFFF
- 11582 a973 898584EC 		movl	%eax, -4988(%rbp)
- 11582      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11583              		.loc 2 1286 0
- 11584 a979 C78580EC 		movl	$0, -4992(%rbp)
- 11584      FFFF0000 
- 11584      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11585              		.loc 2 1287 0
- 11586 a983 F30F6F85 		movdqu	-4992(%rbp), %xmm0
- 11586      80ECFFFF 
- 11587              	.LBE1399:
- 11588              	.LBE1398:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11589              		.loc 2 1568 0
- 11590 a98b 660F7F85 		movdqa	%xmm0, -6464(%rbp)
- 11590      C0E6FFFF 
- 11591 a993 660F6F85 		movdqa	-6464(%rbp), %xmm0
- 11591      C0E6FFFF 
- 11592 a99b 660FEF85 		pxor	-1856(%rbp), %xmm0
- 11592      C0F8FFFF 
- 11593 a9a3 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 11593      C0F8FFFF 
- 11594 a9ab 660F6F85 		movdqa	-6464(%rbp), %xmm0
- 11594      C0E6FFFF 
- 11595 a9b3 F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 11595      F0F8FFFF 
- 11596              	.LBB1400:
- 11597              	.LBB1401:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11598              		.loc 2 1282 0
- 11599 a9bb F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 11599      F0F8FFFF 
- 11600 a9c3 F30F7F85 		movdqu	%xmm0, -4976(%rbp)
- 11600      90ECFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11601              		.loc 2 1283 0
- 11602 a9cb 8B8598EC 		movl	-4968(%rbp), %eax
- 11602      FFFF
- 11603 a9d1 89859CEC 		movl	%eax, -4964(%rbp)
- 11603      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11604              		.loc 2 1284 0
- 11605 a9d7 8B8594EC 		movl	-4972(%rbp), %eax
- 11605      FFFF
- 11606 a9dd 898598EC 		movl	%eax, -4968(%rbp)
- 11606      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11607              		.loc 2 1285 0
- 11608 a9e3 8B8590EC 		movl	-4976(%rbp), %eax
- 11608      FFFF
- 11609 a9e9 898594EC 		movl	%eax, -4972(%rbp)
- 11609      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 372
-
-
- 11610              		.loc 2 1286 0
- 11611 a9ef C78590EC 		movl	$0, -4976(%rbp)
- 11611      FFFF0000 
- 11611      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11612              		.loc 2 1287 0
- 11613 a9f9 F30F6F85 		movdqu	-4976(%rbp), %xmm0
- 11613      90ECFFFF 
- 11614              	.LBE1401:
- 11615              	.LBE1400:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11616              		.loc 2 1569 0
- 11617 aa01 660F7F85 		movdqa	%xmm0, -6464(%rbp)
- 11617      C0E6FFFF 
- 11618 aa09 660F6F85 		movdqa	-6464(%rbp), %xmm0
- 11618      C0E6FFFF 
- 11619 aa11 660FEF85 		pxor	-1856(%rbp), %xmm0
- 11619      C0F8FFFF 
- 11620 aa19 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 11620      C0F8FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11621              		.loc 2 1571 0
- 11622 aa21 F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 11622      C0F8FFFF 
- 11623              	.LBE1395:
- 11624              	.LBE1394:
-1846:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k26   :k28^k29: k29    : 0            */
- 11625              		.loc 2 1846 0
- 11626 aa29 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 11626      B0E5FFFF 
-1847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k33   : k33   : k33    : k33          */
- 11627              		.loc 2 1847 0
- 11628 aa31 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 11628      A0E5FFFF 
- 11629 aa39 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11629      C0E5FFFF 
- 11630 aa41 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 11630      C0E5FFFF 
- 11631 aa49 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 11631      00F9FFFF 
- 11632              	.LBB1402:
- 11633              	.LBB1403:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11634              		.loc 2 1357 0
- 11635 aa51 F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 11635      00F9FFFF 
- 11636 aa59 F30F7F85 		movdqu	%xmm0, -4960(%rbp)
- 11636      A0ECFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 11637              		.loc 2 1358 0
- 11638 aa61 8B85ACEC 		movl	-4948(%rbp), %eax
- 11638      FFFF
- 11639 aa67 8985A8EC 		movl	%eax, -4952(%rbp)
- 11639      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 11640              		.loc 2 1359 0
- 11641 aa6d 8B85ACEC 		movl	-4948(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 373
-
-
- 11641      FFFF
- 11642 aa73 8985A4EC 		movl	%eax, -4956(%rbp)
- 11642      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 11643              		.loc 2 1360 0
- 11644 aa79 8B85ACEC 		movl	-4948(%rbp), %eax
- 11644      FFFF
- 11645 aa7f 8985A0EC 		movl	%eax, -4960(%rbp)
- 11645      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11646              		.loc 2 1361 0
- 11647 aa85 F30F6F85 		movdqu	-4960(%rbp), %xmm0
- 11647      A0ECFFFF 
- 11648              	.LBE1403:
- 11649              	.LBE1402:
-1847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k33   : k33   : k33    : k33          */
- 11650              		.loc 2 1847 0
- 11651 aa8d 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11651      C0E5FFFF 
-1848:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k34   : k35   : x      : x            */
- 11652              		.loc 2 1848 0
- 11653 aa95 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 11653      B0E5FFFF 
- 11654 aa9d 660FEF85 		pxor	-6720(%rbp), %xmm0
- 11654      C0E5FFFF 
- 11655 aaa5 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 11655      B0E5FFFF 
- 11656 aaad 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 11656      80E5FFFF 
- 11657 aab5 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 11657      20F9FFFF 
- 11658 aabd 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 11658      A0E5FFFF 
- 11659 aac5 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 11659      10F9FFFF 
- 11660              	.LBB1404:
- 11661              	.LBB1405:
-1471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 11662              		.loc 2 1471 0
- 11663 aacd F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 11663      20F9FFFF 
- 11664 aad5 F30F7F85 		movdqu	%xmm0, -4928(%rbp)
- 11664      C0ECFFFF 
-1472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 11665              		.loc 2 1472 0
- 11666 aadd F30F6F85 		movdqu	-1776(%rbp), %xmm0
- 11666      10F9FFFF 
- 11667 aae5 F30F7F85 		movdqu	%xmm0, -4944(%rbp)
- 11667      B0ECFFFF 
-1474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
- 11668              		.loc 2 1474 0
- 11669 aaed 8B85B0EC 		movl	-4944(%rbp), %eax
- 11669      FFFF
- 11670 aaf3 8985C8EC 		movl	%eax, -4920(%rbp)
- 11670      FFFF
-1475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 11671              		.loc 2 1475 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 374
-
-
- 11672 aaf9 8B85B4EC 		movl	-4940(%rbp), %eax
- 11672      FFFF
- 11673 aaff 8985CCEC 		movl	%eax, -4916(%rbp)
- 11673      FFFF
-1477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 11674              		.loc 2 1477 0
- 11675 ab05 F30F6F85 		movdqu	-4928(%rbp), %xmm0
- 11675      C0ECFFFF 
- 11676              	.LBE1405:
- 11677              	.LBE1404:
-1849:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k28   : k29   : k30    : k31          */
- 11678              		.loc 2 1849 0
- 11679 ab0d 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 11679      80E5FFFF 
-1851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[7] = v1; /* K28:K29:K30:K31 */
- 11680              		.loc 2 1851 0
- 11681 ab15 488B8588 		movq	-6264(%rbp), %rax
- 11681      E7FFFF
- 11682 ab1c 4883C070 		addq	$112, %rax
- 11683 ab20 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 11683      80E5FFFF 
- 11684 ab28 660F7F00 		movdqa	%xmm0, (%rax)
- 11685 ab2c 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 11685      A0E5FFFF 
- 11686 ab34 F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 11686      40F9FFFF 
- 11687 ab3c 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 11687      B0E5FFFF 
- 11688 ab44 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 11688      30F9FFFF 
- 11689              	.LBB1406:
- 11690              	.LBB1407:
-1503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 11691              		.loc 2 1503 0
- 11692 ab4c F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 11692      40F9FFFF 
- 11693 ab54 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 11693      E0ECFFFF 
-1504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 11694              		.loc 2 1504 0
- 11695 ab5c F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 11695      30F9FFFF 
- 11696 ab64 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 11696      D0ECFFFF 
-1506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[0] = ww.columns[2];
- 11697              		.loc 2 1506 0
- 11698 ab6c 8B85E8EC 		movl	-4888(%rbp), %eax
- 11698      FFFF
- 11699 ab72 8985E0EC 		movl	%eax, -4896(%rbp)
- 11699      FFFF
-1507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[1] = ww.columns[3];
- 11700              		.loc 2 1507 0
- 11701 ab78 8B85ECEC 		movl	-4884(%rbp), %eax
- 11701      FFFF
- 11702 ab7e 8985E4EC 		movl	%eax, -4892(%rbp)
- 11702      FFFF
-1508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 375
-
-
- 11703              		.loc 2 1508 0
- 11704 ab84 8B85D0EC 		movl	-4912(%rbp), %eax
- 11704      FFFF
- 11705 ab8a 8985E8EC 		movl	%eax, -4888(%rbp)
- 11705      FFFF
-1509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 11706              		.loc 2 1509 0
- 11707 ab90 8B85D4EC 		movl	-4908(%rbp), %eax
- 11707      FFFF
- 11708 ab96 8985ECEC 		movl	%eax, -4884(%rbp)
- 11708      FFFF
-1511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 11709              		.loc 2 1511 0
- 11710 ab9c F30F6F85 		movdqu	-4896(%rbp), %xmm0
- 11710      E0ECFFFF 
- 11711              	.LBE1407:
- 11712              	.LBE1406:
-1853:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k32   : k33   : k34    : k35          */
- 11713              		.loc 2 1853 0
- 11714 aba4 660F7F85 		movdqa	%xmm0, -6768(%rbp)
- 11714      90E5FFFF 
-1854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[8] = v2; /* K32:K33:K34:K35 */
- 11715              		.loc 2 1854 0
- 11716 abac 488B8588 		movq	-6264(%rbp), %rax
- 11716      E7FFFF
- 11717 abb3 4883E880 		subq	$-128, %rax
- 11718 abb7 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 11718      90E5FFFF 
- 11719 abbf 660F7F00 		movdqa	%xmm0, (%rax)
- 11720 abc3 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 11720      A0E5FFFF 
- 11721 abcb F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 11721      50F9FFFF 
- 11722              	.LBB1408:
- 11723              	.LBB1409:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 11724              		.loc 2 1565 0
- 11725 abd3 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 11725      50F9FFFF 
- 11726 abdb 660F7F85 		movdqa	%xmm0, -6448(%rbp)
- 11726      D0E6FFFF 
- 11727 abe3 660F6F85 		movdqa	-6448(%rbp), %xmm0
- 11727      D0E6FFFF 
- 11728 abeb F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 11728      60F9FFFF 
- 11729              	.LBB1410:
- 11730              	.LBB1411:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11731              		.loc 2 1282 0
- 11732 abf3 F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 11732      60F9FFFF 
- 11733 abfb F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 11733      F0ECFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11734              		.loc 2 1283 0
- 11735 ac03 8B85F8EC 		movl	-4872(%rbp), %eax
- 11735      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 376
-
-
- 11736 ac09 8985FCEC 		movl	%eax, -4868(%rbp)
- 11736      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11737              		.loc 2 1284 0
- 11738 ac0f 8B85F4EC 		movl	-4876(%rbp), %eax
- 11738      FFFF
- 11739 ac15 8985F8EC 		movl	%eax, -4872(%rbp)
- 11739      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11740              		.loc 2 1285 0
- 11741 ac1b 8B85F0EC 		movl	-4880(%rbp), %eax
- 11741      FFFF
- 11742 ac21 8985F4EC 		movl	%eax, -4876(%rbp)
- 11742      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11743              		.loc 2 1286 0
- 11744 ac27 C785F0EC 		movl	$0, -4880(%rbp)
- 11744      FFFF0000 
- 11744      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11745              		.loc 2 1287 0
- 11746 ac31 F30F6F85 		movdqu	-4880(%rbp), %xmm0
- 11746      F0ECFFFF 
- 11747              	.LBE1411:
- 11748              	.LBE1410:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11749              		.loc 2 1567 0
- 11750 ac39 660F7F85 		movdqa	%xmm0, -6448(%rbp)
- 11750      D0E6FFFF 
- 11751 ac41 660F6F85 		movdqa	-6448(%rbp), %xmm0
- 11751      D0E6FFFF 
- 11752 ac49 660FEF85 		pxor	-1712(%rbp), %xmm0
- 11752      50F9FFFF 
- 11753 ac51 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 11753      50F9FFFF 
- 11754 ac59 660F6F85 		movdqa	-6448(%rbp), %xmm0
- 11754      D0E6FFFF 
- 11755 ac61 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 11755      70F9FFFF 
- 11756              	.LBB1412:
- 11757              	.LBB1413:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11758              		.loc 2 1282 0
- 11759 ac69 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 11759      70F9FFFF 
- 11760 ac71 F30F7F85 		movdqu	%xmm0, -4864(%rbp)
- 11760      00EDFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11761              		.loc 2 1283 0
- 11762 ac79 8B8508ED 		movl	-4856(%rbp), %eax
- 11762      FFFF
- 11763 ac7f 89850CED 		movl	%eax, -4852(%rbp)
- 11763      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11764              		.loc 2 1284 0
- 11765 ac85 8B8504ED 		movl	-4860(%rbp), %eax
- 11765      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 377
-
-
- 11766 ac8b 898508ED 		movl	%eax, -4856(%rbp)
- 11766      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11767              		.loc 2 1285 0
- 11768 ac91 8B8500ED 		movl	-4864(%rbp), %eax
- 11768      FFFF
- 11769 ac97 898504ED 		movl	%eax, -4860(%rbp)
- 11769      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11770              		.loc 2 1286 0
- 11771 ac9d C78500ED 		movl	$0, -4864(%rbp)
- 11771      FFFF0000 
- 11771      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11772              		.loc 2 1287 0
- 11773 aca7 F30F6F85 		movdqu	-4864(%rbp), %xmm0
- 11773      00EDFFFF 
- 11774              	.LBE1413:
- 11775              	.LBE1412:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11776              		.loc 2 1568 0
- 11777 acaf 660F7F85 		movdqa	%xmm0, -6448(%rbp)
- 11777      D0E6FFFF 
- 11778 acb7 660F6F85 		movdqa	-6448(%rbp), %xmm0
- 11778      D0E6FFFF 
- 11779 acbf 660FEF85 		pxor	-1712(%rbp), %xmm0
- 11779      50F9FFFF 
- 11780 acc7 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 11780      50F9FFFF 
- 11781 accf 660F6F85 		movdqa	-6448(%rbp), %xmm0
- 11781      D0E6FFFF 
- 11782 acd7 F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 11782      80F9FFFF 
- 11783              	.LBB1414:
- 11784              	.LBB1415:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11785              		.loc 2 1282 0
- 11786 acdf F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 11786      80F9FFFF 
- 11787 ace7 F30F7F85 		movdqu	%xmm0, -4848(%rbp)
- 11787      10EDFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11788              		.loc 2 1283 0
- 11789 acef 8B8518ED 		movl	-4840(%rbp), %eax
- 11789      FFFF
- 11790 acf5 89851CED 		movl	%eax, -4836(%rbp)
- 11790      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11791              		.loc 2 1284 0
- 11792 acfb 8B8514ED 		movl	-4844(%rbp), %eax
- 11792      FFFF
- 11793 ad01 898518ED 		movl	%eax, -4840(%rbp)
- 11793      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11794              		.loc 2 1285 0
- 11795 ad07 8B8510ED 		movl	-4848(%rbp), %eax
- 11795      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 378
-
-
- 11796 ad0d 898514ED 		movl	%eax, -4844(%rbp)
- 11796      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11797              		.loc 2 1286 0
- 11798 ad13 C78510ED 		movl	$0, -4848(%rbp)
- 11798      FFFF0000 
- 11798      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11799              		.loc 2 1287 0
- 11800 ad1d F30F6F85 		movdqu	-4848(%rbp), %xmm0
- 11800      10EDFFFF 
- 11801              	.LBE1415:
- 11802              	.LBE1414:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11803              		.loc 2 1569 0
- 11804 ad25 660F7F85 		movdqa	%xmm0, -6448(%rbp)
- 11804      D0E6FFFF 
- 11805 ad2d 660F6F85 		movdqa	-6448(%rbp), %xmm0
- 11805      D0E6FFFF 
- 11806 ad35 660FEF85 		pxor	-1712(%rbp), %xmm0
- 11806      50F9FFFF 
- 11807 ad3d F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 11807      50F9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11808              		.loc 2 1571 0
- 11809 ad45 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 11809      50F9FFFF 
- 11810              	.LBE1409:
- 11811              	.LBE1408:
-1856:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k30   :k30^k31:k30^k31^k32:k30^k31^k32^k33 */
- 11812              		.loc 2 1856 0
- 11813 ad4d 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 11813      70E5FFFF 
- 11814 ad55 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 11814      B0E5FFFF 
- 11815 ad5d F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 11815      90F9FFFF 
- 11816              	.LBB1416:
- 11817              	.LBB1417:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 11818              		.loc 2 1565 0
- 11819 ad65 F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 11819      90F9FFFF 
- 11820 ad6d 660F7F85 		movdqa	%xmm0, -6432(%rbp)
- 11820      E0E6FFFF 
- 11821 ad75 660F6F85 		movdqa	-6432(%rbp), %xmm0
- 11821      E0E6FFFF 
- 11822 ad7d F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 11822      A0F9FFFF 
- 11823              	.LBB1418:
- 11824              	.LBB1419:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11825              		.loc 2 1282 0
- 11826 ad85 F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 11826      A0F9FFFF 
- 11827 ad8d F30F7F85 		movdqu	%xmm0, -4832(%rbp)
- 11827      20EDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 379
-
-
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11828              		.loc 2 1283 0
- 11829 ad95 8B8528ED 		movl	-4824(%rbp), %eax
- 11829      FFFF
- 11830 ad9b 89852CED 		movl	%eax, -4820(%rbp)
- 11830      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11831              		.loc 2 1284 0
- 11832 ada1 8B8524ED 		movl	-4828(%rbp), %eax
- 11832      FFFF
- 11833 ada7 898528ED 		movl	%eax, -4824(%rbp)
- 11833      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11834              		.loc 2 1285 0
- 11835 adad 8B8520ED 		movl	-4832(%rbp), %eax
- 11835      FFFF
- 11836 adb3 898524ED 		movl	%eax, -4828(%rbp)
- 11836      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11837              		.loc 2 1286 0
- 11838 adb9 C78520ED 		movl	$0, -4832(%rbp)
- 11838      FFFF0000 
- 11838      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11839              		.loc 2 1287 0
- 11840 adc3 F30F6F85 		movdqu	-4832(%rbp), %xmm0
- 11840      20EDFFFF 
- 11841              	.LBE1419:
- 11842              	.LBE1418:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11843              		.loc 2 1567 0
- 11844 adcb 660F7F85 		movdqa	%xmm0, -6432(%rbp)
- 11844      E0E6FFFF 
- 11845 add3 660F6F85 		movdqa	-6432(%rbp), %xmm0
- 11845      E0E6FFFF 
- 11846 addb 660FEF85 		pxor	-1648(%rbp), %xmm0
- 11846      90F9FFFF 
- 11847 ade3 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 11847      90F9FFFF 
- 11848 adeb 660F6F85 		movdqa	-6432(%rbp), %xmm0
- 11848      E0E6FFFF 
- 11849 adf3 F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 11849      B0F9FFFF 
- 11850              	.LBB1420:
- 11851              	.LBB1421:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11852              		.loc 2 1282 0
- 11853 adfb F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 11853      B0F9FFFF 
- 11854 ae03 F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 11854      30EDFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11855              		.loc 2 1283 0
- 11856 ae0b 8B8538ED 		movl	-4808(%rbp), %eax
- 11856      FFFF
- 11857 ae11 89853CED 		movl	%eax, -4804(%rbp)
- 11857      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 380
-
-
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11858              		.loc 2 1284 0
- 11859 ae17 8B8534ED 		movl	-4812(%rbp), %eax
- 11859      FFFF
- 11860 ae1d 898538ED 		movl	%eax, -4808(%rbp)
- 11860      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11861              		.loc 2 1285 0
- 11862 ae23 8B8530ED 		movl	-4816(%rbp), %eax
- 11862      FFFF
- 11863 ae29 898534ED 		movl	%eax, -4812(%rbp)
- 11863      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11864              		.loc 2 1286 0
- 11865 ae2f C78530ED 		movl	$0, -4816(%rbp)
- 11865      FFFF0000 
- 11865      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11866              		.loc 2 1287 0
- 11867 ae39 F30F6F85 		movdqu	-4816(%rbp), %xmm0
- 11867      30EDFFFF 
- 11868              	.LBE1421:
- 11869              	.LBE1420:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11870              		.loc 2 1568 0
- 11871 ae41 660F7F85 		movdqa	%xmm0, -6432(%rbp)
- 11871      E0E6FFFF 
- 11872 ae49 660F6F85 		movdqa	-6432(%rbp), %xmm0
- 11872      E0E6FFFF 
- 11873 ae51 660FEF85 		pxor	-1648(%rbp), %xmm0
- 11873      90F9FFFF 
- 11874 ae59 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 11874      90F9FFFF 
- 11875 ae61 660F6F85 		movdqa	-6432(%rbp), %xmm0
- 11875      E0E6FFFF 
- 11876 ae69 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 11876      C0F9FFFF 
- 11877              	.LBB1422:
- 11878              	.LBB1423:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 11879              		.loc 2 1282 0
- 11880 ae71 F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 11880      C0F9FFFF 
- 11881 ae79 F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 11881      40EDFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 11882              		.loc 2 1283 0
- 11883 ae81 8B8548ED 		movl	-4792(%rbp), %eax
- 11883      FFFF
- 11884 ae87 89854CED 		movl	%eax, -4788(%rbp)
- 11884      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 11885              		.loc 2 1284 0
- 11886 ae8d 8B8544ED 		movl	-4796(%rbp), %eax
- 11886      FFFF
- 11887 ae93 898548ED 		movl	%eax, -4792(%rbp)
- 11887      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 381
-
-
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 11888              		.loc 2 1285 0
- 11889 ae99 8B8540ED 		movl	-4800(%rbp), %eax
- 11889      FFFF
- 11890 ae9f 898544ED 		movl	%eax, -4796(%rbp)
- 11890      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 11891              		.loc 2 1286 0
- 11892 aea5 C78540ED 		movl	$0, -4800(%rbp)
- 11892      FFFF0000 
- 11892      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 11893              		.loc 2 1287 0
- 11894 aeaf F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 11894      40EDFFFF 
- 11895              	.LBE1423:
- 11896              	.LBE1422:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11897              		.loc 2 1569 0
- 11898 aeb7 660F7F85 		movdqa	%xmm0, -6432(%rbp)
- 11898      E0E6FFFF 
- 11899 aebf 660F6F85 		movdqa	-6432(%rbp), %xmm0
- 11899      E0E6FFFF 
- 11900 aec7 660FEF85 		pxor	-1648(%rbp), %xmm0
- 11900      90F9FFFF 
- 11901 aecf F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 11901      90F9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11902              		.loc 2 1571 0
- 11903 aed7 F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 11903      90F9FFFF 
- 11904              	.LBE1417:
- 11905              	.LBE1416:
-1857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k26   :k26^k27: k27    : 0            */
- 11906              		.loc 2 1857 0
- 11907 aedf 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 11907      80E5FFFF 
-1858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 11908              		.loc 2 1858 0
- 11909 aee7 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 11909      90E5FFFF 
- 11910 aeef 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 11910      C0E5FFFF 
- 11911 aef7 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 11911      C0E5FFFF 
- 11912 aeff F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 11912      E0F9FFFF 
- 11913              	.LBB1424:
- 11914              	.LBB1425:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 11915              		.loc 2 1681 0
- 11916 af07 B8200000 		movl	$32, %eax
- 11916      00
- 11917 af0c 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 11917      00000000 
- 11918 af14 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 11918      00FAFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 382
-
-
- 11919 af1c 8985FCF9 		movl	%eax, -1540(%rbp)
- 11919      FFFF
- 11920              	.LBB1426:
- 11921              	.LBB1427:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 11922              		.loc 2 522 0
- 11923 af22 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 11923      00FAFFFF 
- 11924 af2a F30F7F85 		movdqu	%xmm0, -4720(%rbp)
- 11924      90EDFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 11925              		.loc 2 523 0
- 11926 af32 B8030000 		movl	$3, %eax
- 11926      00
- 11927 af37 4898     		cltq
- 11928 af39 8B95FCF9 		movl	-1540(%rbp), %edx
- 11928      FFFF
- 11929 af3f 89948590 		movl	%edx, -4720(%rbp,%rax,4)
- 11929      EDFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 11930              		.loc 2 524 0
- 11931 af46 F30F6F85 		movdqu	-4720(%rbp), %xmm0
- 11931      90EDFFFF 
- 11932 af4e F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 11932      00FAFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11933              		.loc 2 526 0
- 11934 af56 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 11934      00FAFFFF 
- 11935              	.LBE1427:
- 11936              	.LBE1426:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 11937              		.loc 2 1681 0
- 11938 af5e 660F7F85 		movdqa	%xmm0, -6400(%rbp)
- 11938      00E7FFFF 
- 11939 af66 F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 11939      E0F9FFFF 
- 11940 af6e F30F7F85 		movdqu	%xmm0, -1520(%rbp)
- 11940      10FAFFFF 
- 11941 af76 F30F6F85 		movdqu	-1520(%rbp), %xmm0
- 11941      10FAFFFF 
- 11942 af7e F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 11942      30FAFFFF 
- 11943 af86 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 11943      000000
- 11944 af8d 48898528 		movq	%rax, -1496(%rbp)
- 11944      FAFFFF
- 11945              	.LBB1428:
- 11946              	.LBB1429:
- 11947              	.LBB1430:
- 11948              	.LBB1431:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 11949              		.loc 2 851 0
- 11950 af94 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 11950      00000000 
- 11951 af9c F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 11951      50FAFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 383
-
-
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 11952              		.loc 2 854 0
- 11953 afa4 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 11953      00000000 
- 11954 afac F30F6F8D 		movdqu	-1488(%rbp), %xmm1
- 11954      30FAFFFF 
- 11955 afb4 F30F7F8D 		movdqu	%xmm1, -1376(%rbp)
- 11955      A0FAFFFF 
- 11956 afbc F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 11956      90FAFFFF 
- 11957              	.LBB1432:
- 11958              	.LBB1433:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 11959              		.loc 2 206 0
- 11960 afc4 F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 11960      90FAFFFF 
- 11961 afcc F30F6F8D 		movdqu	-1376(%rbp), %xmm1
- 11961      A0FAFFFF 
- 11962 afd4 660FDBC1 		pand	%xmm1, %xmm0
- 11963              	.LBE1433:
- 11964              	.LBE1432:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 11965              		.loc 2 854 0
- 11966 afd8 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 11966      80FAFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 11967              		.loc 2 862 0
- 11968 afe0 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 11968      00000000 
- 11969 afe8 F30F6F8D 		movdqu	-1488(%rbp), %xmm1
- 11969      30FAFFFF 
- 11970 aff0 F30F7F8D 		movdqu	%xmm1, -1344(%rbp)
- 11970      C0FAFFFF 
- 11971 aff8 F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 11971      B0FAFFFF 
- 11972              	.LBB1434:
- 11973              		.loc 2 2642 0
- 11974 b000 0FB685C0 		movzbl	-1344(%rbp), %eax
- 11974      FAFFFF
- 11975 b007 0FB695B0 		movzbl	-1360(%rbp), %edx
- 11975      FAFFFF
- 11976 b00e 0FB6C0   		movzbl	%al, %eax
- 11977 b011 6689852E 		movw	%ax, -6866(%rbp)
- 11977      E5FFFF
- 11978 b018 0FB7852E 		movzwl	-6866(%rbp), %eax
- 11978      E5FFFF
- 11979 b01f F6F2     		divb	%dl
- 11980 b021 4189C7   		movl	%eax, %r15d
- 11981 b024 0FB685C1 		movzbl	-1343(%rbp), %eax
- 11981      FAFFFF
- 11982 b02b 0FB695B1 		movzbl	-1359(%rbp), %edx
- 11982      FAFFFF
- 11983 b032 0FB6C0   		movzbl	%al, %eax
- 11984 b035 6689852E 		movw	%ax, -6866(%rbp)
- 11984      E5FFFF
- 11985 b03c 0FB7852E 		movzwl	-6866(%rbp), %eax
- 11985      E5FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 384
-
-
- 11986 b043 F6F2     		divb	%dl
- 11987 b045 88851FE7 		movb	%al, -6369(%rbp)
- 11987      FFFF
- 11988 b04b 0FB685C2 		movzbl	-1342(%rbp), %eax
- 11988      FAFFFF
- 11989 b052 0FB695B2 		movzbl	-1358(%rbp), %edx
- 11989      FAFFFF
- 11990 b059 0FB6C0   		movzbl	%al, %eax
- 11991 b05c 6689852E 		movw	%ax, -6866(%rbp)
- 11991      E5FFFF
- 11992 b063 0FB7852E 		movzwl	-6866(%rbp), %eax
- 11992      E5FFFF
- 11993 b06a F6F2     		divb	%dl
- 11994 b06c 88851EE7 		movb	%al, -6370(%rbp)
- 11994      FFFF
- 11995 b072 0FB685C3 		movzbl	-1341(%rbp), %eax
- 11995      FAFFFF
- 11996 b079 0FB695B3 		movzbl	-1357(%rbp), %edx
- 11996      FAFFFF
- 11997 b080 0FB6C0   		movzbl	%al, %eax
- 11998 b083 6689852E 		movw	%ax, -6866(%rbp)
- 11998      E5FFFF
- 11999 b08a 0FB7852E 		movzwl	-6866(%rbp), %eax
- 11999      E5FFFF
- 12000 b091 F6F2     		divb	%dl
- 12001 b093 88851DE7 		movb	%al, -6371(%rbp)
- 12001      FFFF
- 12002 b099 0FB685C4 		movzbl	-1340(%rbp), %eax
- 12002      FAFFFF
- 12003 b0a0 0FB695B4 		movzbl	-1356(%rbp), %edx
- 12003      FAFFFF
- 12004 b0a7 0FB6C0   		movzbl	%al, %eax
- 12005 b0aa 6689852E 		movw	%ax, -6866(%rbp)
- 12005      E5FFFF
- 12006 b0b1 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12006      E5FFFF
- 12007 b0b8 F6F2     		divb	%dl
- 12008 b0ba 88851CE7 		movb	%al, -6372(%rbp)
- 12008      FFFF
- 12009 b0c0 0FB685C5 		movzbl	-1339(%rbp), %eax
- 12009      FAFFFF
- 12010 b0c7 0FB695B5 		movzbl	-1355(%rbp), %edx
- 12010      FAFFFF
- 12011 b0ce 0FB6C0   		movzbl	%al, %eax
- 12012 b0d1 6689852E 		movw	%ax, -6866(%rbp)
- 12012      E5FFFF
- 12013 b0d8 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12013      E5FFFF
- 12014 b0df F6F2     		divb	%dl
- 12015 b0e1 4189C1   		movl	%eax, %r9d
- 12016 b0e4 0FB685C6 		movzbl	-1338(%rbp), %eax
- 12016      FAFFFF
- 12017 b0eb 0FB695B6 		movzbl	-1354(%rbp), %edx
- 12017      FAFFFF
- 12018 b0f2 0FB6C0   		movzbl	%al, %eax
- 12019 b0f5 6689852E 		movw	%ax, -6866(%rbp)
- 12019      E5FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 385
-
-
- 12020 b0fc 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12020      E5FFFF
- 12021 b103 F6F2     		divb	%dl
- 12022 b105 89C7     		movl	%eax, %edi
- 12023 b107 0FB685C7 		movzbl	-1337(%rbp), %eax
- 12023      FAFFFF
- 12024 b10e 0FB695B7 		movzbl	-1353(%rbp), %edx
- 12024      FAFFFF
- 12025 b115 0FB6C0   		movzbl	%al, %eax
- 12026 b118 6689852E 		movw	%ax, -6866(%rbp)
- 12026      E5FFFF
- 12027 b11f 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12027      E5FFFF
- 12028 b126 F6F2     		divb	%dl
- 12029 b128 89C3     		movl	%eax, %ebx
- 12030 b12a 0FB685C8 		movzbl	-1336(%rbp), %eax
- 12030      FAFFFF
- 12031 b131 0FB695B8 		movzbl	-1352(%rbp), %edx
- 12031      FAFFFF
- 12032 b138 0FB6C0   		movzbl	%al, %eax
- 12033 b13b 6689852E 		movw	%ax, -6866(%rbp)
- 12033      E5FFFF
- 12034 b142 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12034      E5FFFF
- 12035 b149 F6F2     		divb	%dl
- 12036 b14b 4189C2   		movl	%eax, %r10d
- 12037 b14e 0FB685C9 		movzbl	-1335(%rbp), %eax
- 12037      FAFFFF
- 12038 b155 0FB695B9 		movzbl	-1351(%rbp), %edx
- 12038      FAFFFF
- 12039 b15c 0FB6C0   		movzbl	%al, %eax
- 12040 b15f 6689852E 		movw	%ax, -6866(%rbp)
- 12040      E5FFFF
- 12041 b166 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12041      E5FFFF
- 12042 b16d F6F2     		divb	%dl
- 12043 b16f 4189C3   		movl	%eax, %r11d
- 12044 b172 0FB685CA 		movzbl	-1334(%rbp), %eax
- 12044      FAFFFF
- 12045 b179 0FB695BA 		movzbl	-1350(%rbp), %edx
- 12045      FAFFFF
- 12046 b180 0FB6C0   		movzbl	%al, %eax
- 12047 b183 6689852E 		movw	%ax, -6866(%rbp)
- 12047      E5FFFF
- 12048 b18a 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12048      E5FFFF
- 12049 b191 F6F2     		divb	%dl
- 12050 b193 4189C4   		movl	%eax, %r12d
- 12051 b196 0FB685CB 		movzbl	-1333(%rbp), %eax
- 12051      FAFFFF
- 12052 b19d 0FB695BB 		movzbl	-1349(%rbp), %edx
- 12052      FAFFFF
- 12053 b1a4 0FB6C0   		movzbl	%al, %eax
- 12054 b1a7 6689852E 		movw	%ax, -6866(%rbp)
- 12054      E5FFFF
- 12055 b1ae 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12055      E5FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 386
-
-
- 12056 b1b5 F6F2     		divb	%dl
- 12057 b1b7 4189C5   		movl	%eax, %r13d
- 12058 b1ba 0FB685CC 		movzbl	-1332(%rbp), %eax
- 12058      FAFFFF
- 12059 b1c1 0FB695BC 		movzbl	-1348(%rbp), %edx
- 12059      FAFFFF
- 12060 b1c8 0FB6C0   		movzbl	%al, %eax
- 12061 b1cb 6689852E 		movw	%ax, -6866(%rbp)
- 12061      E5FFFF
- 12062 b1d2 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12062      E5FFFF
- 12063 b1d9 F6F2     		divb	%dl
- 12064 b1db 4189C6   		movl	%eax, %r14d
- 12065 b1de 0FB685CD 		movzbl	-1331(%rbp), %eax
- 12065      FAFFFF
- 12066 b1e5 0FB695BD 		movzbl	-1347(%rbp), %edx
- 12066      FAFFFF
- 12067 b1ec 0FB6C0   		movzbl	%al, %eax
- 12068 b1ef 6689852E 		movw	%ax, -6866(%rbp)
- 12068      E5FFFF
- 12069 b1f6 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12069      E5FFFF
- 12070 b1fd F6F2     		divb	%dl
- 12071 b1ff 4189C0   		movl	%eax, %r8d
- 12072 b202 0FB685CE 		movzbl	-1330(%rbp), %eax
- 12072      FAFFFF
- 12073 b209 0FB695BE 		movzbl	-1346(%rbp), %edx
- 12073      FAFFFF
- 12074 b210 0FB6C0   		movzbl	%al, %eax
- 12075 b213 6689852E 		movw	%ax, -6866(%rbp)
- 12075      E5FFFF
- 12076 b21a 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12076      E5FFFF
- 12077 b221 F6F2     		divb	%dl
- 12078 b223 89C6     		movl	%eax, %esi
- 12079 b225 0FB685CF 		movzbl	-1329(%rbp), %eax
- 12079      FAFFFF
- 12080 b22c 0FB695BF 		movzbl	-1345(%rbp), %edx
- 12080      FAFFFF
- 12081 b233 0FB6C0   		movzbl	%al, %eax
- 12082 b236 6689852E 		movw	%ax, -6866(%rbp)
- 12082      E5FFFF
- 12083 b23d 0FB7852E 		movzwl	-6866(%rbp), %eax
- 12083      E5FFFF
- 12084 b244 F6F2     		divb	%dl
- 12085 b246 89C1     		movl	%eax, %ecx
- 12086              	.LBB1435:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 12087              		.loc 2 346 0
- 12088 b248 0FB6D3   		movzbl	%bl, %edx
- 12089 b24b 400FB6C7 		movzbl	%dil, %eax
- 12090 b24f 48C1E208 		salq	$8, %rdx
- 12091 b253 4809C2   		orq	%rax, %rdx
- 12092 b256 410FB6C1 		movzbl	%r9b, %eax
- 12093 b25a 48C1E208 		salq	$8, %rdx
- 12094 b25e 4809C2   		orq	%rax, %rdx
- 12095 b261 0FB6851C 		movzbl	-6372(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 387
-
-
- 12095      E7FFFF
- 12096 b268 48C1E208 		salq	$8, %rdx
- 12097 b26c 4809C2   		orq	%rax, %rdx
- 12098 b26f 0FB6851D 		movzbl	-6371(%rbp), %eax
- 12098      E7FFFF
- 12099 b276 48C1E208 		salq	$8, %rdx
- 12100 b27a 4809C2   		orq	%rax, %rdx
- 12101 b27d 0FB6851E 		movzbl	-6370(%rbp), %eax
- 12101      E7FFFF
- 12102 b284 48C1E208 		salq	$8, %rdx
- 12103 b288 4809C2   		orq	%rax, %rdx
- 12104 b28b 0FB6851F 		movzbl	-6369(%rbp), %eax
- 12104      E7FFFF
- 12105 b292 48C1E208 		salq	$8, %rdx
- 12106 b296 4809C2   		orq	%rax, %rdx
- 12107 b299 410FB6C7 		movzbl	%r15b, %eax
- 12108 b29d 48C1E208 		salq	$8, %rdx
- 12109 b2a1 4809C2   		orq	%rax, %rdx
- 12110 b2a4 0FB6C1   		movzbl	%cl, %eax
- 12111 b2a7 400FB6CE 		movzbl	%sil, %ecx
- 12112 b2ab 48C1E008 		salq	$8, %rax
- 12113 b2af 4809C8   		orq	%rcx, %rax
- 12114 b2b2 410FB6C8 		movzbl	%r8b, %ecx
- 12115 b2b6 48C1E008 		salq	$8, %rax
- 12116 b2ba 4809C8   		orq	%rcx, %rax
- 12117 b2bd 410FB6CE 		movzbl	%r14b, %ecx
- 12118 b2c1 48C1E008 		salq	$8, %rax
- 12119 b2c5 4809C8   		orq	%rcx, %rax
- 12120 b2c8 410FB6CD 		movzbl	%r13b, %ecx
- 12121 b2cc 48C1E008 		salq	$8, %rax
- 12122 b2d0 4809C8   		orq	%rcx, %rax
- 12123 b2d3 410FB6CC 		movzbl	%r12b, %ecx
- 12124 b2d7 48C1E008 		salq	$8, %rax
- 12125 b2db 4809C8   		orq	%rcx, %rax
- 12126 b2de 410FB6CB 		movzbl	%r11b, %ecx
- 12127 b2e2 48C1E008 		salq	$8, %rax
- 12128 b2e6 4809C8   		orq	%rcx, %rax
- 12129 b2e9 410FB6CA 		movzbl	%r10b, %ecx
- 12130 b2ed 48C1E008 		salq	$8, %rax
- 12131 b2f1 4809C8   		orq	%rcx, %rax
- 12132 b2f4 48899540 		movq	%rdx, -6848(%rbp)
- 12132      E5FFFF
- 12133 b2fb 48898548 		movq	%rax, -6840(%rbp)
- 12133      E5FFFF
- 12134 b302 660F6F85 		movdqa	-6848(%rbp), %xmm0
- 12134      40E5FFFF 
- 12135              	.LBE1435:
- 12136              	.LBE1434:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 12137              		.loc 2 862 0
- 12138 b30a F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 12138      70FAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 12139              		.loc 2 866 0
- 12140 b312 C7854CFA 		movl	$0, -1460(%rbp)
- 12140      FFFF0000 
- 12140      0000
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 388
-
-
- 12141 b31c E9860200 		jmp	.L276
- 12141      00
- 12142              	.L285:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 12143              		.loc 2 868 0
- 12144 b321 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 12144      00000000 
- 12145 b329 F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 12145      E0FAFFFF 
- 12146 b331 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 12146      70FAFFFF 
- 12147 b339 F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 12147      D0FAFFFF 
- 12148              	.LBB1436:
- 12149              	.LBB1437:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 12150              		.loc 2 380 0
- 12151 b341 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 12151      E0FAFFFF 
- 12152 b349 F30F7F85 		movdqu	%xmm0, -4688(%rbp)
- 12152      B0EDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 12153              		.loc 2 381 0
- 12154 b351 F30F6F85 		movdqu	-1328(%rbp), %xmm0
- 12154      D0FAFFFF 
- 12155 b359 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 12155      A0EDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 12156              		.loc 2 383 0
- 12157 b361 C785FCFA 		movl	$0, -1284(%rbp)
- 12157      FFFF0000 
- 12157      0000
- 12158 b36b EB5C     		jmp	.L277
- 12159              	.L280:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 12160              		.loc 2 385 0
- 12161 b36d 8B85FCFA 		movl	-1284(%rbp), %eax
- 12161      FFFF
- 12162 b373 89C0     		mov	%eax, %eax
- 12163 b375 0FB68405 		movzbl	-4704(%rbp,%rax), %eax
- 12163      A0EDFFFF 
- 12164 b37d 84C0     		testb	%al, %al
- 12165 b37f 7912     		jns	.L278
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 12166              		.loc 2 386 0
- 12167 b381 8B85FCFA 		movl	-1284(%rbp), %eax
- 12167      FFFF
- 12168 b387 89C0     		mov	%eax, %eax
- 12169 b389 C68405C0 		movb	$0, -4672(%rbp,%rax)
- 12169      EDFFFF00 
- 12170 b391 EB2F     		jmp	.L279
- 12171              	.L278:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 12172              		.loc 2 388 0
- 12173 b393 8B8DFCFA 		movl	-1284(%rbp), %ecx
- 12173      FFFF
- 12174 b399 8B85FCFA 		movl	-1284(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 389
-
-
- 12174      FFFF
- 12175 b39f 89C0     		mov	%eax, %eax
- 12176 b3a1 0FB68405 		movzbl	-4704(%rbp,%rax), %eax
- 12176      A0EDFFFF 
- 12177 b3a9 0FB6C0   		movzbl	%al, %eax
- 12178 b3ac 83E00F   		andl	$15, %eax
- 12179 b3af 4898     		cltq
- 12180 b3b1 0FB69405 		movzbl	-4688(%rbp,%rax), %edx
- 12180      B0EDFFFF 
- 12181 b3b9 89C8     		mov	%ecx, %eax
- 12182 b3bb 889405C0 		movb	%dl, -4672(%rbp,%rax)
- 12182      EDFFFF
- 12183              	.L279:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 12184              		.loc 2 383 0
- 12185 b3c2 8385FCFA 		addl	$1, -1284(%rbp)
- 12185      FFFF01
- 12186              	.L277:
- 12187 b3c9 83BDFCFA 		cmpl	$15, -1284(%rbp)
- 12187      FFFF0F
- 12188 b3d0 769B     		jbe	.L280
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 12189              		.loc 2 391 0
- 12190 b3d2 F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 12190      C0EDFFFF 
- 12191              	.LBE1437:
- 12192              	.LBE1436:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 12193              		.loc 2 868 0
- 12194 b3da F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 12194      60FAFFFF 
- 12195 b3e2 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 12195      80FAFFFF 
- 12196 b3ea F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 12196      10FBFFFF 
- 12197 b3f2 F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 12197      60FAFFFF 
- 12198 b3fa F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 12198      00FBFFFF 
- 12199              	.LBB1438:
- 12200              	.LBB1439:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 12201              		.loc 2 234 0
- 12202 b402 F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 12202      00FBFFFF 
- 12203 b40a F30F6F8D 		movdqu	-1264(%rbp), %xmm1
- 12203      10FBFFFF 
- 12204 b412 660FEBC1 		por	%xmm1, %xmm0
- 12205              	.LBE1439:
- 12206              	.LBE1438:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 12207              		.loc 2 870 0
- 12208 b416 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 12208      60FAFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 12209              		.loc 2 872 0
- 12210 b41e 8B854CFA 		mov	-1460(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 390
-
-
- 12210      FFFF
- 12211 b424 48C1E004 		salq	$4, %rax
- 12212 b428 48038528 		addq	-1496(%rbp), %rax
- 12212      FAFFFF
- 12213 b42f 660F6F00 		movdqa	(%rax), %xmm0
- 12214 b433 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 12214      30FBFFFF 
- 12215 b43b F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 12215      60FAFFFF 
- 12216 b443 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 12216      20FBFFFF 
- 12217              	.LBB1440:
- 12218              	.LBB1441:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 12219              		.loc 2 380 0
- 12220 b44b F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 12220      30FBFFFF 
- 12221 b453 F30F7F85 		movdqu	%xmm0, -4640(%rbp)
- 12221      E0EDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 12222              		.loc 2 381 0
- 12223 b45b F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 12223      20FBFFFF 
- 12224 b463 F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 12224      D0EDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 12225              		.loc 2 383 0
- 12226 b46b C7854CFB 		movl	$0, -1204(%rbp)
- 12226      FFFF0000 
- 12226      0000
- 12227 b475 EB5C     		jmp	.L281
- 12228              	.L284:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 12229              		.loc 2 385 0
- 12230 b477 8B854CFB 		movl	-1204(%rbp), %eax
- 12230      FFFF
- 12231 b47d 89C0     		mov	%eax, %eax
- 12232 b47f 0FB68405 		movzbl	-4656(%rbp,%rax), %eax
- 12232      D0EDFFFF 
- 12233 b487 84C0     		testb	%al, %al
- 12234 b489 7912     		jns	.L282
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 12235              		.loc 2 386 0
- 12236 b48b 8B854CFB 		movl	-1204(%rbp), %eax
- 12236      FFFF
- 12237 b491 89C0     		mov	%eax, %eax
- 12238 b493 C68405F0 		movb	$0, -4624(%rbp,%rax)
- 12238      EDFFFF00 
- 12239 b49b EB2F     		jmp	.L283
- 12240              	.L282:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 12241              		.loc 2 388 0
- 12242 b49d 8B8D4CFB 		movl	-1204(%rbp), %ecx
- 12242      FFFF
- 12243 b4a3 8B854CFB 		movl	-1204(%rbp), %eax
- 12243      FFFF
- 12244 b4a9 89C0     		mov	%eax, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 391
-
-
- 12245 b4ab 0FB68405 		movzbl	-4656(%rbp,%rax), %eax
- 12245      D0EDFFFF 
- 12246 b4b3 0FB6C0   		movzbl	%al, %eax
- 12247 b4b6 83E00F   		andl	$15, %eax
- 12248 b4b9 4898     		cltq
- 12249 b4bb 0FB69405 		movzbl	-4640(%rbp,%rax), %edx
- 12249      E0EDFFFF 
- 12250 b4c3 89C8     		mov	%ecx, %eax
- 12251 b4c5 889405F0 		movb	%dl, -4624(%rbp,%rax)
- 12251      EDFFFF
- 12252              	.L283:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 12253              		.loc 2 383 0
- 12254 b4cc 83854CFB 		addl	$1, -1204(%rbp)
- 12254      FFFF01
- 12255              	.L281:
- 12256 b4d3 83BD4CFB 		cmpl	$15, -1204(%rbp)
- 12256      FFFF0F
- 12257 b4da 769B     		jbe	.L284
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 12258              		.loc 2 391 0
- 12259 b4dc F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 12259      F0EDFFFF 
- 12260              	.LBE1441:
- 12261              	.LBE1440:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 12262              		.loc 2 872 0
- 12263 b4e4 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 12263      60FAFFFF 
- 12264 b4ec F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 12264      50FAFFFF 
- 12265 b4f4 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 12265      60FBFFFF 
- 12266 b4fc F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 12266      60FAFFFF 
- 12267 b504 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 12267      50FBFFFF 
- 12268              	.LBB1442:
- 12269              	.LBB1443:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 12270              		.loc 2 234 0
- 12271 b50c F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 12271      50FBFFFF 
- 12272 b514 F30F6F8D 		movdqu	-1184(%rbp), %xmm1
- 12272      60FBFFFF 
- 12273 b51c 660FEBC1 		por	%xmm1, %xmm0
- 12274              	.LBE1443:
- 12275              	.LBE1442:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 12276              		.loc 2 874 0
- 12277 b520 F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 12277      50FAFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 12278              		.loc 2 876 0
- 12279 b528 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 12279      00000000 
- 12280 b530 F30F6F8D 		movdqu	-1424(%rbp), %xmm1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 392
-
-
- 12280      70FAFFFF 
- 12281 b538 F30F7F8D 		movdqu	%xmm1, -1152(%rbp)
- 12281      80FBFFFF 
- 12282 b540 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 12282      70FBFFFF 
- 12283              	.LBB1444:
- 12284              	.LBB1445:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 12285              		.loc 2 290 0
- 12286 b548 F30F6F8D 		movdqu	-1168(%rbp), %xmm1
- 12286      70FBFFFF 
- 12287 b550 F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 12287      80FBFFFF 
- 12288 b558 660FF8C1 		psubb	%xmm1, %xmm0
- 12289              	.LBE1445:
- 12290              	.LBE1444:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 12291              		.loc 2 876 0
- 12292 b55c F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 12292      70FAFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 12293              		.loc 2 878 0
- 12294 b564 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 12294      00000000 
- 12295 b56c F30F6F8D 		movdqu	-1424(%rbp), %xmm1
- 12295      70FAFFFF 
- 12296 b574 F30F7F8D 		movdqu	%xmm1, -1120(%rbp)
- 12296      A0FBFFFF 
- 12297 b57c F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 12297      90FBFFFF 
- 12298              	.LBB1446:
- 12299              	.LBB1447:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 12300              		.loc 2 206 0
- 12301 b584 F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 12301      90FBFFFF 
- 12302 b58c F30F6F8D 		movdqu	-1120(%rbp), %xmm1
- 12302      A0FBFFFF 
- 12303 b594 660FDBC1 		pand	%xmm1, %xmm0
- 12304              	.LBE1447:
- 12305              	.LBE1446:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 12306              		.loc 2 878 0
- 12307 b598 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 12307      70FAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 12308              		.loc 2 866 0
- 12309 b5a0 83854CFA 		addl	$1, -1460(%rbp)
- 12309      FFFF01
- 12310              	.L276:
- 12311 b5a7 83BD4CFA 		cmpl	$15, -1460(%rbp)
- 12311      FFFF0F
- 12312 b5ae 0F866DFD 		jbe	.L285
- 12312      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 12313              		.loc 2 882 0
- 12314 b5b4 F30F6F85 		movdqu	-1456(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 393
-
-
- 12314      50FAFFFF 
- 12315              	.LBE1431:
- 12316              	.LBE1430:
- 12317              	.LBE1429:
- 12318              	.LBE1428:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 12319              		.loc 2 1682 0
- 12320 b5bc 660F7F85 		movdqa	%xmm0, -6416(%rbp)
- 12320      F0E6FFFF 
- 12321              	.LBB1448:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 12322              		.loc 2 1683 0
- 12323 b5c4 660F6F85 		movdqa	-6416(%rbp), %xmm0
- 12323      F0E6FFFF 
- 12324 b5cc F30F7F85 		movdqu	%xmm0, -4736(%rbp)
- 12324      80EDFFFF 
- 12325 b5d4 E8000000 		call	KDbgWriterGet at PLT
- 12325      00
- 12326 b5d9 4885C0   		testq	%rax, %rax
- 12327 b5dc 7479     		je	.L287
- 12328 b5de BF010000 		movl	$1, %edi
- 12328      00
- 12329 b5e3 E8000000 		call	KDbgCondToFlag at PLT
- 12329      00
- 12330 b5e8 4889C6   		movq	%rax, %rsi
- 12331 b5eb BF100000 		movl	$16, %edi
- 12331      00
- 12332 b5f0 E8000000 		call	KDbgTestModConds at PLT
- 12332      00
- 12333 b5f5 84C0     		testb	%al, %al
- 12334 b5f7 745E     		je	.L287
- 12335 b5f9 8B858CED 		movl	-4724(%rbp), %eax
- 12335      FFFF
- 12336 b5ff 89C7     		movl	%eax, %edi
- 12337 b601 E8FA49FF 		call	bswap_32
- 12337      FF
- 12338 b606 4189C5   		movl	%eax, %r13d
- 12339 b609 8B8588ED 		movl	-4728(%rbp), %eax
- 12339      FFFF
- 12340 b60f 89C7     		movl	%eax, %edi
- 12341 b611 E8EA49FF 		call	bswap_32
- 12341      FF
- 12342 b616 4189C4   		movl	%eax, %r12d
- 12343 b619 8B8584ED 		movl	-4732(%rbp), %eax
- 12343      FFFF
- 12344 b61f 89C7     		movl	%eax, %edi
- 12345 b621 E8DA49FF 		call	bswap_32
- 12345      FF
- 12346 b626 89C3     		movl	%eax, %ebx
- 12347 b628 8B8580ED 		movl	-4736(%rbp), %eax
- 12347      FFFF
- 12348 b62e 89C7     		movl	%eax, %edi
- 12349 b630 E8CB49FF 		call	bswap_32
- 12349      FF
- 12350 b635 4589E9   		movl	%r13d, %r9d
- 12351 b638 4589E0   		movl	%r12d, %r8d
- 12352 b63b 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 394
-
-
- 12353 b63d 89C2     		movl	%eax, %edx
- 12354 b63f 488D3500 		leaq	.LC0(%rip), %rsi
- 12354      000000
- 12355 b646 488D3D00 		leaq	.LC1(%rip), %rdi
- 12355      000000
- 12356 b64d B8000000 		movl	$0, %eax
- 12356      00
- 12357 b652 E8000000 		call	KDbgMsg at PLT
- 12357      00
- 12358              	.L287:
- 12359 b657 660F6F85 		movdqa	-6416(%rbp), %xmm0
- 12359      F0E6FFFF 
- 12360 b65f F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 12360      B0FBFFFF 
- 12361              	.LBE1448:
- 12362              	.LBB1449:
- 12363              	.LBB1450:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 12364              		.loc 2 667 0
- 12365 b667 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 12365      00000000 
- 12366 b66f F30F6F8D 		movdqu	-1104(%rbp), %xmm1
- 12366      B0FBFFFF 
- 12367 b677 F30F7F8D 		movdqu	%xmm1, -1072(%rbp)
- 12367      D0FBFFFF 
- 12368 b67f F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 12368      C0FBFFFF 
- 12369              	.LBB1451:
- 12370              	.LBB1452:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 12371              		.loc 2 380 0
- 12372 b687 F30F6F85 		movdqu	-1072(%rbp), %xmm0
- 12372      D0FBFFFF 
- 12373 b68f F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 12373      10EEFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 12374              		.loc 2 381 0
- 12375 b697 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 12375      C0FBFFFF 
- 12376 b69f F30F7F85 		movdqu	%xmm0, -4608(%rbp)
- 12376      00EEFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 12377              		.loc 2 383 0
- 12378 b6a7 C785ECFB 		movl	$0, -1044(%rbp)
- 12378      FFFF0000 
- 12378      0000
- 12379 b6b1 EB5C     		jmp	.L288
- 12380              	.L291:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 12381              		.loc 2 385 0
- 12382 b6b3 8B85ECFB 		movl	-1044(%rbp), %eax
- 12382      FFFF
- 12383 b6b9 89C0     		mov	%eax, %eax
- 12384 b6bb 0FB68405 		movzbl	-4608(%rbp,%rax), %eax
- 12384      00EEFFFF 
- 12385 b6c3 84C0     		testb	%al, %al
- 12386 b6c5 7912     		jns	.L289
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 395
-
-
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 12387              		.loc 2 386 0
- 12388 b6c7 8B85ECFB 		movl	-1044(%rbp), %eax
- 12388      FFFF
- 12389 b6cd 89C0     		mov	%eax, %eax
- 12390 b6cf C6840520 		movb	$0, -4576(%rbp,%rax)
- 12390      EEFFFF00 
- 12391 b6d7 EB2F     		jmp	.L290
- 12392              	.L289:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 12393              		.loc 2 388 0
- 12394 b6d9 8B8DECFB 		movl	-1044(%rbp), %ecx
- 12394      FFFF
- 12395 b6df 8B85ECFB 		movl	-1044(%rbp), %eax
- 12395      FFFF
- 12396 b6e5 89C0     		mov	%eax, %eax
- 12397 b6e7 0FB68405 		movzbl	-4608(%rbp,%rax), %eax
- 12397      00EEFFFF 
- 12398 b6ef 0FB6C0   		movzbl	%al, %eax
- 12399 b6f2 83E00F   		andl	$15, %eax
- 12400 b6f5 4898     		cltq
- 12401 b6f7 0FB69405 		movzbl	-4592(%rbp,%rax), %edx
- 12401      10EEFFFF 
- 12402 b6ff 89C8     		mov	%ecx, %eax
- 12403 b701 88940520 		movb	%dl, -4576(%rbp,%rax)
- 12403      EEFFFF
- 12404              	.L290:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 12405              		.loc 2 383 0
- 12406 b708 8385ECFB 		addl	$1, -1044(%rbp)
- 12406      FFFF01
- 12407              	.L288:
- 12408 b70f 83BDECFB 		cmpl	$15, -1044(%rbp)
- 12408      FFFF0F
- 12409 b716 769B     		jbe	.L291
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 12410              		.loc 2 391 0
- 12411 b718 F30F6F85 		movdqu	-4576(%rbp), %xmm0
- 12411      20EEFFFF 
- 12412              	.LBE1452:
- 12413              	.LBE1451:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 12414              		.loc 2 667 0
- 12415 b720 F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 12415      B0FBFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12416              		.loc 2 668 0
- 12417 b728 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 12417      B0FBFFFF 
- 12418              	.LBE1450:
- 12419              	.LBE1449:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 12420              		.loc 2 1684 0
- 12421 b730 660F7F85 		movdqa	%xmm0, -6416(%rbp)
- 12421      F0E6FFFF 
- 12422              	.LBB1453:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 396
-
-
- 12423              		.loc 2 1685 0
- 12424 b738 660F6F85 		movdqa	-6416(%rbp), %xmm0
- 12424      F0E6FFFF 
- 12425 b740 F30F7F85 		movdqu	%xmm0, -4752(%rbp)
- 12425      70EDFFFF 
- 12426 b748 E8000000 		call	KDbgWriterGet at PLT
- 12426      00
- 12427 b74d 4885C0   		testq	%rax, %rax
- 12428 b750 7479     		je	.L293
- 12429 b752 BF010000 		movl	$1, %edi
- 12429      00
- 12430 b757 E8000000 		call	KDbgCondToFlag at PLT
- 12430      00
- 12431 b75c 4889C6   		movq	%rax, %rsi
- 12432 b75f BF100000 		movl	$16, %edi
- 12432      00
- 12433 b764 E8000000 		call	KDbgTestModConds at PLT
- 12433      00
- 12434 b769 84C0     		testb	%al, %al
- 12435 b76b 745E     		je	.L293
- 12436 b76d 8B857CED 		movl	-4740(%rbp), %eax
- 12436      FFFF
- 12437 b773 89C7     		movl	%eax, %edi
- 12438 b775 E88648FF 		call	bswap_32
- 12438      FF
- 12439 b77a 4189C5   		movl	%eax, %r13d
- 12440 b77d 8B8578ED 		movl	-4744(%rbp), %eax
- 12440      FFFF
- 12441 b783 89C7     		movl	%eax, %edi
- 12442 b785 E87648FF 		call	bswap_32
- 12442      FF
- 12443 b78a 4189C4   		movl	%eax, %r12d
- 12444 b78d 8B8574ED 		movl	-4748(%rbp), %eax
- 12444      FFFF
- 12445 b793 89C7     		movl	%eax, %edi
- 12446 b795 E86648FF 		call	bswap_32
- 12446      FF
- 12447 b79a 89C3     		movl	%eax, %ebx
- 12448 b79c 8B8570ED 		movl	-4752(%rbp), %eax
- 12448      FFFF
- 12449 b7a2 89C7     		movl	%eax, %edi
- 12450 b7a4 E85748FF 		call	bswap_32
- 12450      FF
- 12451 b7a9 4589E9   		movl	%r13d, %r9d
- 12452 b7ac 4589E0   		movl	%r12d, %r8d
- 12453 b7af 89D9     		movl	%ebx, %ecx
- 12454 b7b1 89C2     		movl	%eax, %edx
- 12455 b7b3 488D3500 		leaq	.LC2(%rip), %rsi
- 12455      000000
- 12456 b7ba 488D3D00 		leaq	.LC1(%rip), %rdi
- 12456      000000
- 12457 b7c1 B8000000 		movl	$0, %eax
- 12457      00
- 12458 b7c6 E8000000 		call	KDbgMsg at PLT
- 12458      00
- 12459              	.L293:
- 12460 b7cb 660F6F85 		movdqa	-6416(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 397
-
-
- 12460      F0E6FFFF 
- 12461 b7d3 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 12461      00FCFFFF 
- 12462 b7db 660F6F85 		movdqa	-6400(%rbp), %xmm0
- 12462      00E7FFFF 
- 12463 b7e3 F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 12463      F0FBFFFF 
- 12464              	.LBE1453:
- 12465              	.LBB1454:
- 12466              	.LBB1455:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 12467              		.loc 2 178 0
- 12468 b7eb F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 12468      F0FBFFFF 
- 12469 b7f3 F30F6F8D 		movdqu	-1024(%rbp), %xmm1
- 12469      00FCFFFF 
- 12470 b7fb 660FEFC1 		pxor	%xmm1, %xmm0
- 12471              	.LBE1455:
- 12472              	.LBE1454:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 12473              		.loc 2 1686 0
- 12474 b7ff 660F7F85 		movdqa	%xmm0, -6416(%rbp)
- 12474      F0E6FFFF 
- 12475              	.LBB1456:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 12476              		.loc 2 1687 0
- 12477 b807 660F6F85 		movdqa	-6416(%rbp), %xmm0
- 12477      F0E6FFFF 
- 12478 b80f F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 12478      60EDFFFF 
- 12479 b817 E8000000 		call	KDbgWriterGet at PLT
- 12479      00
- 12480 b81c 4885C0   		testq	%rax, %rax
- 12481 b81f 7479     		je	.L295
- 12482 b821 BF010000 		movl	$1, %edi
- 12482      00
- 12483 b826 E8000000 		call	KDbgCondToFlag at PLT
- 12483      00
- 12484 b82b 4889C6   		movq	%rax, %rsi
- 12485 b82e BF100000 		movl	$16, %edi
- 12485      00
- 12486 b833 E8000000 		call	KDbgTestModConds at PLT
- 12486      00
- 12487 b838 84C0     		testb	%al, %al
- 12488 b83a 745E     		je	.L295
- 12489 b83c 8B856CED 		movl	-4756(%rbp), %eax
- 12489      FFFF
- 12490 b842 89C7     		movl	%eax, %edi
- 12491 b844 E8B747FF 		call	bswap_32
- 12491      FF
- 12492 b849 4189C5   		movl	%eax, %r13d
- 12493 b84c 8B8568ED 		movl	-4760(%rbp), %eax
- 12493      FFFF
- 12494 b852 89C7     		movl	%eax, %edi
- 12495 b854 E8A747FF 		call	bswap_32
- 12495      FF
- 12496 b859 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 398
-
-
- 12497 b85c 8B8564ED 		movl	-4764(%rbp), %eax
- 12497      FFFF
- 12498 b862 89C7     		movl	%eax, %edi
- 12499 b864 E89747FF 		call	bswap_32
- 12499      FF
- 12500 b869 89C3     		movl	%eax, %ebx
- 12501 b86b 8B8560ED 		movl	-4768(%rbp), %eax
- 12501      FFFF
- 12502 b871 89C7     		movl	%eax, %edi
- 12503 b873 E88847FF 		call	bswap_32
- 12503      FF
- 12504 b878 4589E9   		movl	%r13d, %r9d
- 12505 b87b 4589E0   		movl	%r12d, %r8d
- 12506 b87e 89D9     		movl	%ebx, %ecx
- 12507 b880 89C2     		movl	%eax, %edx
- 12508 b882 488D3500 		leaq	.LC3(%rip), %rsi
- 12508      000000
- 12509 b889 488D3D00 		leaq	.LC1(%rip), %rdi
- 12509      000000
- 12510 b890 B8000000 		movl	$0, %eax
- 12510      00
- 12511 b895 E8000000 		call	KDbgMsg at PLT
- 12511      00
- 12512              	.L295:
- 12513 b89a 660F6F85 		movdqa	-6416(%rbp), %xmm0
- 12513      F0E6FFFF 
- 12514 b8a2 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 12514      10FCFFFF 
- 12515              	.LBE1456:
- 12516              	.LBB1457:
- 12517              	.LBB1458:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12518              		.loc 2 1357 0
- 12519 b8aa F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 12519      10FCFFFF 
- 12520 b8b2 F30F7F85 		movdqu	%xmm0, -4560(%rbp)
- 12520      30EEFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 12521              		.loc 2 1358 0
- 12522 b8ba 8B853CEE 		movl	-4548(%rbp), %eax
- 12522      FFFF
- 12523 b8c0 898538EE 		movl	%eax, -4552(%rbp)
- 12523      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 12524              		.loc 2 1359 0
- 12525 b8c6 8B853CEE 		movl	-4548(%rbp), %eax
- 12525      FFFF
- 12526 b8cc 898534EE 		movl	%eax, -4556(%rbp)
- 12526      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 12527              		.loc 2 1360 0
- 12528 b8d2 8B853CEE 		movl	-4548(%rbp), %eax
- 12528      FFFF
- 12529 b8d8 898530EE 		movl	%eax, -4560(%rbp)
- 12529      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12530              		.loc 2 1361 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 399
-
-
- 12531 b8de F30F6F85 		movdqu	-4560(%rbp), %xmm0
- 12531      30EEFFFF 
- 12532              	.LBE1458:
- 12533              	.LBE1457:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 12534              		.loc 2 1688 0
- 12535 b8e6 660F7F85 		movdqa	%xmm0, -6416(%rbp)
- 12535      F0E6FFFF 
- 12536              	.LBB1459:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 12537              		.loc 2 1689 0
- 12538 b8ee 660F6F85 		movdqa	-6416(%rbp), %xmm0
- 12538      F0E6FFFF 
- 12539 b8f6 F30F7F85 		movdqu	%xmm0, -4784(%rbp)
- 12539      50EDFFFF 
- 12540 b8fe E8000000 		call	KDbgWriterGet at PLT
- 12540      00
- 12541 b903 4885C0   		testq	%rax, %rax
- 12542 b906 7479     		je	.L297
- 12543 b908 BF010000 		movl	$1, %edi
- 12543      00
- 12544 b90d E8000000 		call	KDbgCondToFlag at PLT
- 12544      00
- 12545 b912 4889C6   		movq	%rax, %rsi
- 12546 b915 BF100000 		movl	$16, %edi
- 12546      00
- 12547 b91a E8000000 		call	KDbgTestModConds at PLT
- 12547      00
- 12548 b91f 84C0     		testb	%al, %al
- 12549 b921 745E     		je	.L297
- 12550 b923 8B855CED 		movl	-4772(%rbp), %eax
- 12550      FFFF
- 12551 b929 89C7     		movl	%eax, %edi
- 12552 b92b E8D046FF 		call	bswap_32
- 12552      FF
- 12553 b930 4189C5   		movl	%eax, %r13d
- 12554 b933 8B8558ED 		movl	-4776(%rbp), %eax
- 12554      FFFF
- 12555 b939 89C7     		movl	%eax, %edi
- 12556 b93b E8C046FF 		call	bswap_32
- 12556      FF
- 12557 b940 4189C4   		movl	%eax, %r12d
- 12558 b943 8B8554ED 		movl	-4780(%rbp), %eax
- 12558      FFFF
- 12559 b949 89C7     		movl	%eax, %edi
- 12560 b94b E8B046FF 		call	bswap_32
- 12560      FF
- 12561 b950 89C3     		movl	%eax, %ebx
- 12562 b952 8B8550ED 		movl	-4784(%rbp), %eax
- 12562      FFFF
- 12563 b958 89C7     		movl	%eax, %edi
- 12564 b95a E8A146FF 		call	bswap_32
- 12564      FF
- 12565 b95f 4589E9   		movl	%r13d, %r9d
- 12566 b962 4589E0   		movl	%r12d, %r8d
- 12567 b965 89D9     		movl	%ebx, %ecx
- 12568 b967 89C2     		movl	%eax, %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 400
-
-
- 12569 b969 488D3500 		leaq	.LC4(%rip), %rsi
- 12569      000000
- 12570 b970 488D3D00 		leaq	.LC1(%rip), %rdi
- 12570      000000
- 12571 b977 B8000000 		movl	$0, %eax
- 12571      00
- 12572 b97c E8000000 		call	KDbgMsg at PLT
- 12572      00
- 12573              	.L297:
- 12574              	.LBE1459:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 12575              		.loc 2 1690 0
- 12576 b981 660F6F85 		movdqa	-6416(%rbp), %xmm0
- 12576      F0E6FFFF 
- 12577              	.LBE1425:
- 12578              	.LBE1424:
-1858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 12579              		.loc 2 1858 0
- 12580 b989 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 12580      C0E5FFFF 
-1860:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k36   : k37   : k38    : k39          */
- 12581              		.loc 2 1860 0
- 12582 b991 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 12582      70E5FFFF 
- 12583 b999 660FEF85 		pxor	-6720(%rbp), %xmm0
- 12583      C0E5FFFF 
- 12584 b9a1 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 12584      70E5FFFF 
- 12585 b9a9 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 12585      70E5FFFF 
- 12586 b9b1 F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 12586      20FCFFFF 
- 12587              	.LBB1460:
- 12588              	.LBB1461:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12589              		.loc 2 1357 0
- 12590 b9b9 F30F6F85 		movdqu	-992(%rbp), %xmm0
- 12590      20FCFFFF 
- 12591 b9c1 F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 12591      40EEFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 12592              		.loc 2 1358 0
- 12593 b9c9 8B854CEE 		movl	-4532(%rbp), %eax
- 12593      FFFF
- 12594 b9cf 898548EE 		movl	%eax, -4536(%rbp)
- 12594      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 12595              		.loc 2 1359 0
- 12596 b9d5 8B854CEE 		movl	-4532(%rbp), %eax
- 12596      FFFF
- 12597 b9db 898544EE 		movl	%eax, -4540(%rbp)
- 12597      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 12598              		.loc 2 1360 0
- 12599 b9e1 8B854CEE 		movl	-4532(%rbp), %eax
- 12599      FFFF
- 12600 b9e7 898540EE 		movl	%eax, -4544(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 401
-
-
- 12600      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12601              		.loc 2 1361 0
- 12602 b9ed F30F6F85 		movdqu	-4544(%rbp), %xmm0
- 12602      40EEFFFF 
- 12603              	.LBE1461:
- 12604              	.LBE1460:
-1861:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (v0);       /* k39   : k39   : k39    : k39          */
- 12605              		.loc 2 1861 0
- 12606 b9f5 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 12606      C0E5FFFF 
-1862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k40   : k41   : x      : x            */
- 12607              		.loc 2 1862 0
- 12608 b9fd 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 12608      80E5FFFF 
- 12609 ba05 660FEF85 		pxor	-6720(%rbp), %xmm0
- 12609      C0E5FFFF 
- 12610 ba0d 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 12610      80E5FFFF 
-1864:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[9] = v0; /* K36:K37:K38:K39 */
- 12611              		.loc 2 1864 0
- 12612 ba15 488B8588 		movq	-6264(%rbp), %rax
- 12612      E7FFFF
- 12613 ba1c 48059000 		addq	$144, %rax
- 12613      0000
- 12614 ba22 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 12614      70E5FFFF 
- 12615 ba2a 660F7F00 		movdqa	%xmm0, (%rax)
-1869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 12616              		.loc 2 1869 0
- 12617 ba2e 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 12617      80E5FFFF 
- 12618 ba36 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 12618      C0E5FFFF 
- 12619 ba3e 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 12619      C0E5FFFF 
- 12620 ba46 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 12620      40FCFFFF 
- 12621              	.LBB1462:
- 12622              	.LBB1463:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 12623              		.loc 2 1629 0
- 12624 ba4e B8400000 		movl	$64, %eax
- 12624      00
- 12625 ba53 0FB6C0   		movzbl	%al, %eax
- 12626 ba56 898560FC 		movl	%eax, -928(%rbp)
- 12626      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 12627              		.loc 2 1630 0
- 12628 ba5c F30F6F85 		movdqu	-960(%rbp), %xmm0
- 12628      40FCFFFF 
- 12629 ba64 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 12629      60EEFFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 12630              		.loc 2 1631 0
- 12631 ba6c 8B8564EE 		movl	-4508(%rbp), %eax
- 12631      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 402
-
-
- 12632 ba72 898564FC 		movl	%eax, -924(%rbp)
- 12632      FFFF
- 12633              	.LBB1464:
- 12634              	.LBB1465:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 12635              		.loc 2 740 0
- 12636 ba78 8B8564FC 		movl	-924(%rbp), %eax
- 12636      FFFF
- 12637 ba7e 898550EE 		movl	%eax, -4528(%rbp)
- 12637      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 12638              		.loc 2 741 0
- 12639 ba84 C78568FC 		movl	$0, -920(%rbp)
- 12639      FFFF0000 
- 12639      0000
- 12640 ba8e EB36     		jmp	.L298
- 12641              	.L299:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 12642              		.loc 2 742 0
- 12643 ba90 8B8D68FC 		movl	-920(%rbp), %ecx
- 12643      FFFF
- 12644 ba96 8B8568FC 		movl	-920(%rbp), %eax
- 12644      FFFF
- 12645 ba9c 89C0     		mov	%eax, %eax
- 12646 ba9e 0FB68405 		movzbl	-4528(%rbp,%rax), %eax
- 12646      50EEFFFF 
- 12647 baa6 0FB6C0   		movzbl	%al, %eax
- 12648 baa9 89C2     		mov	%eax, %edx
- 12649 baab 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 12649      000000
- 12650 bab2 0FB61402 		movzbl	(%rdx,%rax), %edx
- 12651 bab6 89C8     		mov	%ecx, %eax
- 12652 bab8 88940550 		movb	%dl, -4528(%rbp,%rax)
- 12652      EEFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 12653              		.loc 2 741 0
- 12654 babf 838568FC 		addl	$1, -920(%rbp)
- 12654      FFFF01
- 12655              	.L298:
- 12656 bac6 83BD68FC 		cmpl	$3, -920(%rbp)
- 12656      FFFF03
- 12657 bacd 76C1     		jbe	.L299
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 12658              		.loc 2 743 0
- 12659 bacf 8B8550EE 		movl	-4528(%rbp), %eax
- 12659      FFFF
- 12660              	.LBE1465:
- 12661              	.LBE1464:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 12662              		.loc 2 1631 0
- 12663 bad5 89855CFC 		movl	%eax, -932(%rbp)
- 12663      FFFF
- 12664 badb 8B855CFC 		movl	-932(%rbp), %eax
- 12664      FFFF
- 12665 bae1 89856CFC 		movl	%eax, -916(%rbp)
- 12665      FFFF
- 12666              	.LBB1466:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 403
-
-
- 12667              	.LBB1467:
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 12668              		.loc 2 1196 0
- 12669 bae7 8B856CFC 		movl	-916(%rbp), %eax
- 12669      FFFF
- 12670 baed C1C808   		rorl	$8, %eax
- 12671              	.LBE1467:
- 12672              	.LBE1466:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 12673              		.loc 2 1632 0
- 12674 baf0 89855CFC 		movl	%eax, -932(%rbp)
- 12674      FFFF
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 12675              		.loc 2 1633 0
- 12676 baf6 8B8560FC 		movl	-928(%rbp), %eax
- 12676      FFFF
- 12677 bafc 31855CFC 		xorl	%eax, -932(%rbp)
- 12677      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 12678              		.loc 2 1635 0
- 12679 bb02 8B855CFC 		movl	-932(%rbp), %eax
- 12679      FFFF
- 12680 bb08 89856CEE 		movl	%eax, -4500(%rbp)
- 12680      FFFF
- 12681 bb0e 8B856CEE 		movl	-4500(%rbp), %eax
- 12681      FFFF
- 12682 bb14 898568EE 		movl	%eax, -4504(%rbp)
- 12682      FFFF
- 12683 bb1a 8B8568EE 		movl	-4504(%rbp), %eax
- 12683      FFFF
- 12684 bb20 898564EE 		movl	%eax, -4508(%rbp)
- 12684      FFFF
- 12685 bb26 8B8564EE 		movl	-4508(%rbp), %eax
- 12685      FFFF
- 12686 bb2c 898560EE 		movl	%eax, -4512(%rbp)
- 12686      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 12687              		.loc 2 1636 0
- 12688 bb32 F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 12688      60EEFFFF 
- 12689              	.LBE1463:
- 12690              	.LBE1462:
-1869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 12691              		.loc 2 1869 0
- 12692 bb3a 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 12692      C0E5FFFF 
- 12693 bb42 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 12693      70E5FFFF 
- 12694 bb4a F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 12694      70FCFFFF 
- 12695              	.LBB1468:
- 12696              	.LBB1469:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 12697              		.loc 2 1565 0
- 12698 bb52 F30F6F85 		movdqu	-912(%rbp), %xmm0
- 12698      70FCFFFF 
- 12699 bb5a 660F7F85 		movdqa	%xmm0, -6368(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 404
-
-
- 12699      20E7FFFF 
- 12700 bb62 660F6F85 		movdqa	-6368(%rbp), %xmm0
- 12700      20E7FFFF 
- 12701 bb6a F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 12701      80FCFFFF 
- 12702              	.LBB1470:
- 12703              	.LBB1471:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12704              		.loc 2 1282 0
- 12705 bb72 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 12705      80FCFFFF 
- 12706 bb7a F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 12706      70EEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 12707              		.loc 2 1283 0
- 12708 bb82 8B8578EE 		movl	-4488(%rbp), %eax
- 12708      FFFF
- 12709 bb88 89857CEE 		movl	%eax, -4484(%rbp)
- 12709      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 12710              		.loc 2 1284 0
- 12711 bb8e 8B8574EE 		movl	-4492(%rbp), %eax
- 12711      FFFF
- 12712 bb94 898578EE 		movl	%eax, -4488(%rbp)
- 12712      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 12713              		.loc 2 1285 0
- 12714 bb9a 8B8570EE 		movl	-4496(%rbp), %eax
- 12714      FFFF
- 12715 bba0 898574EE 		movl	%eax, -4492(%rbp)
- 12715      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 12716              		.loc 2 1286 0
- 12717 bba6 C78570EE 		movl	$0, -4496(%rbp)
- 12717      FFFF0000 
- 12717      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12718              		.loc 2 1287 0
- 12719 bbb0 F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 12719      70EEFFFF 
- 12720              	.LBE1471:
- 12721              	.LBE1470:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12722              		.loc 2 1567 0
- 12723 bbb8 660F7F85 		movdqa	%xmm0, -6368(%rbp)
- 12723      20E7FFFF 
- 12724 bbc0 660F6F85 		movdqa	-6368(%rbp), %xmm0
- 12724      20E7FFFF 
- 12725 bbc8 660FEF85 		pxor	-912(%rbp), %xmm0
- 12725      70FCFFFF 
- 12726 bbd0 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 12726      70FCFFFF 
- 12727 bbd8 660F6F85 		movdqa	-6368(%rbp), %xmm0
- 12727      20E7FFFF 
- 12728 bbe0 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 12728      90FCFFFF 
- 12729              	.LBB1472:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 405
-
-
- 12730              	.LBB1473:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12731              		.loc 2 1282 0
- 12732 bbe8 F30F6F85 		movdqu	-880(%rbp), %xmm0
- 12732      90FCFFFF 
- 12733 bbf0 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 12733      80EEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 12734              		.loc 2 1283 0
- 12735 bbf8 8B8588EE 		movl	-4472(%rbp), %eax
- 12735      FFFF
- 12736 bbfe 89858CEE 		movl	%eax, -4468(%rbp)
- 12736      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 12737              		.loc 2 1284 0
- 12738 bc04 8B8584EE 		movl	-4476(%rbp), %eax
- 12738      FFFF
- 12739 bc0a 898588EE 		movl	%eax, -4472(%rbp)
- 12739      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 12740              		.loc 2 1285 0
- 12741 bc10 8B8580EE 		movl	-4480(%rbp), %eax
- 12741      FFFF
- 12742 bc16 898584EE 		movl	%eax, -4476(%rbp)
- 12742      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 12743              		.loc 2 1286 0
- 12744 bc1c C78580EE 		movl	$0, -4480(%rbp)
- 12744      FFFF0000 
- 12744      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12745              		.loc 2 1287 0
- 12746 bc26 F30F6F85 		movdqu	-4480(%rbp), %xmm0
- 12746      80EEFFFF 
- 12747              	.LBE1473:
- 12748              	.LBE1472:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12749              		.loc 2 1568 0
- 12750 bc2e 660F7F85 		movdqa	%xmm0, -6368(%rbp)
- 12750      20E7FFFF 
- 12751 bc36 660F6F85 		movdqa	-6368(%rbp), %xmm0
- 12751      20E7FFFF 
- 12752 bc3e 660FEF85 		pxor	-912(%rbp), %xmm0
- 12752      70FCFFFF 
- 12753 bc46 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 12753      70FCFFFF 
- 12754 bc4e 660F6F85 		movdqa	-6368(%rbp), %xmm0
- 12754      20E7FFFF 
- 12755 bc56 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 12755      A0FCFFFF 
- 12756              	.LBB1474:
- 12757              	.LBB1475:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12758              		.loc 2 1282 0
- 12759 bc5e F30F6F85 		movdqu	-864(%rbp), %xmm0
- 12759      A0FCFFFF 
- 12760 bc66 F30F7F85 		movdqu	%xmm0, -4464(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 406
-
-
- 12760      90EEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 12761              		.loc 2 1283 0
- 12762 bc6e 8B8598EE 		movl	-4456(%rbp), %eax
- 12762      FFFF
- 12763 bc74 89859CEE 		movl	%eax, -4452(%rbp)
- 12763      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 12764              		.loc 2 1284 0
- 12765 bc7a 8B8594EE 		movl	-4460(%rbp), %eax
- 12765      FFFF
- 12766 bc80 898598EE 		movl	%eax, -4456(%rbp)
- 12766      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 12767              		.loc 2 1285 0
- 12768 bc86 8B8590EE 		movl	-4464(%rbp), %eax
- 12768      FFFF
- 12769 bc8c 898594EE 		movl	%eax, -4460(%rbp)
- 12769      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 12770              		.loc 2 1286 0
- 12771 bc92 C78590EE 		movl	$0, -4464(%rbp)
- 12771      FFFF0000 
- 12771      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12772              		.loc 2 1287 0
- 12773 bc9c F30F6F85 		movdqu	-4464(%rbp), %xmm0
- 12773      90EEFFFF 
- 12774              	.LBE1475:
- 12775              	.LBE1474:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12776              		.loc 2 1569 0
- 12777 bca4 660F7F85 		movdqa	%xmm0, -6368(%rbp)
- 12777      20E7FFFF 
- 12778 bcac 660F6F85 		movdqa	-6368(%rbp), %xmm0
- 12778      20E7FFFF 
- 12779 bcb4 660FEF85 		pxor	-912(%rbp), %xmm0
- 12779      70FCFFFF 
- 12780 bcbc F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 12780      70FCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12781              		.loc 2 1571 0
- 12782 bcc4 F30F6F85 		movdqu	-912(%rbp), %xmm0
- 12782      70FCFFFF 
- 12783              	.LBE1469:
- 12784              	.LBE1468:
-1871:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k36   :k36^k37:k36^k37^k38:k36^k37^k38^k39 */
- 12785              		.loc 2 1871 0
- 12786 bccc 660F7F85 		movdqa	%xmm0, -6752(%rbp)
- 12786      A0E5FFFF 
- 12787 bcd4 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 12787      80E5FFFF 
- 12788 bcdc F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 12788      B0FCFFFF 
- 12789              	.LBB1476:
- 12790              	.LBB1477:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 407
-
-
- 12791              		.loc 2 1565 0
- 12792 bce4 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 12792      B0FCFFFF 
- 12793 bcec 660F7F85 		movdqa	%xmm0, -6352(%rbp)
- 12793      30E7FFFF 
- 12794 bcf4 660F6F85 		movdqa	-6352(%rbp), %xmm0
- 12794      30E7FFFF 
- 12795 bcfc F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 12795      C0FCFFFF 
- 12796              	.LBB1478:
- 12797              	.LBB1479:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12798              		.loc 2 1282 0
- 12799 bd04 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 12799      C0FCFFFF 
- 12800 bd0c F30F7F85 		movdqu	%xmm0, -4448(%rbp)
- 12800      A0EEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 12801              		.loc 2 1283 0
- 12802 bd14 8B85A8EE 		movl	-4440(%rbp), %eax
- 12802      FFFF
- 12803 bd1a 8985ACEE 		movl	%eax, -4436(%rbp)
- 12803      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 12804              		.loc 2 1284 0
- 12805 bd20 8B85A4EE 		movl	-4444(%rbp), %eax
- 12805      FFFF
- 12806 bd26 8985A8EE 		movl	%eax, -4440(%rbp)
- 12806      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 12807              		.loc 2 1285 0
- 12808 bd2c 8B85A0EE 		movl	-4448(%rbp), %eax
- 12808      FFFF
- 12809 bd32 8985A4EE 		movl	%eax, -4444(%rbp)
- 12809      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 12810              		.loc 2 1286 0
- 12811 bd38 C785A0EE 		movl	$0, -4448(%rbp)
- 12811      FFFF0000 
- 12811      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12812              		.loc 2 1287 0
- 12813 bd42 F30F6F85 		movdqu	-4448(%rbp), %xmm0
- 12813      A0EEFFFF 
- 12814              	.LBE1479:
- 12815              	.LBE1478:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12816              		.loc 2 1567 0
- 12817 bd4a 660F7F85 		movdqa	%xmm0, -6352(%rbp)
- 12817      30E7FFFF 
- 12818 bd52 660F6F85 		movdqa	-6352(%rbp), %xmm0
- 12818      30E7FFFF 
- 12819 bd5a 660FEF85 		pxor	-848(%rbp), %xmm0
- 12819      B0FCFFFF 
- 12820 bd62 F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 12820      B0FCFFFF 
- 12821 bd6a 660F6F85 		movdqa	-6352(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 408
-
-
- 12821      30E7FFFF 
- 12822 bd72 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 12822      D0FCFFFF 
- 12823              	.LBB1480:
- 12824              	.LBB1481:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12825              		.loc 2 1282 0
- 12826 bd7a F30F6F85 		movdqu	-816(%rbp), %xmm0
- 12826      D0FCFFFF 
- 12827 bd82 F30F7F85 		movdqu	%xmm0, -4432(%rbp)
- 12827      B0EEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 12828              		.loc 2 1283 0
- 12829 bd8a 8B85B8EE 		movl	-4424(%rbp), %eax
- 12829      FFFF
- 12830 bd90 8985BCEE 		movl	%eax, -4420(%rbp)
- 12830      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 12831              		.loc 2 1284 0
- 12832 bd96 8B85B4EE 		movl	-4428(%rbp), %eax
- 12832      FFFF
- 12833 bd9c 8985B8EE 		movl	%eax, -4424(%rbp)
- 12833      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 12834              		.loc 2 1285 0
- 12835 bda2 8B85B0EE 		movl	-4432(%rbp), %eax
- 12835      FFFF
- 12836 bda8 8985B4EE 		movl	%eax, -4428(%rbp)
- 12836      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 12837              		.loc 2 1286 0
- 12838 bdae C785B0EE 		movl	$0, -4432(%rbp)
- 12838      FFFF0000 
- 12838      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12839              		.loc 2 1287 0
- 12840 bdb8 F30F6F85 		movdqu	-4432(%rbp), %xmm0
- 12840      B0EEFFFF 
- 12841              	.LBE1481:
- 12842              	.LBE1480:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12843              		.loc 2 1568 0
- 12844 bdc0 660F7F85 		movdqa	%xmm0, -6352(%rbp)
- 12844      30E7FFFF 
- 12845 bdc8 660F6F85 		movdqa	-6352(%rbp), %xmm0
- 12845      30E7FFFF 
- 12846 bdd0 660FEF85 		pxor	-848(%rbp), %xmm0
- 12846      B0FCFFFF 
- 12847 bdd8 F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 12847      B0FCFFFF 
- 12848 bde0 660F6F85 		movdqa	-6352(%rbp), %xmm0
- 12848      30E7FFFF 
- 12849 bde8 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 12849      E0FCFFFF 
- 12850              	.LBB1482:
- 12851              	.LBB1483:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 409
-
-
- 12852              		.loc 2 1282 0
- 12853 bdf0 F30F6F85 		movdqu	-800(%rbp), %xmm0
- 12853      E0FCFFFF 
- 12854 bdf8 F30F7F85 		movdqu	%xmm0, -4416(%rbp)
- 12854      C0EEFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 12855              		.loc 2 1283 0
- 12856 be00 8B85C8EE 		movl	-4408(%rbp), %eax
- 12856      FFFF
- 12857 be06 8985CCEE 		movl	%eax, -4404(%rbp)
- 12857      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 12858              		.loc 2 1284 0
- 12859 be0c 8B85C4EE 		movl	-4412(%rbp), %eax
- 12859      FFFF
- 12860 be12 8985C8EE 		movl	%eax, -4408(%rbp)
- 12860      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 12861              		.loc 2 1285 0
- 12862 be18 8B85C0EE 		movl	-4416(%rbp), %eax
- 12862      FFFF
- 12863 be1e 8985C4EE 		movl	%eax, -4412(%rbp)
- 12863      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 12864              		.loc 2 1286 0
- 12865 be24 C785C0EE 		movl	$0, -4416(%rbp)
- 12865      FFFF0000 
- 12865      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12866              		.loc 2 1287 0
- 12867 be2e F30F6F85 		movdqu	-4416(%rbp), %xmm0
- 12867      C0EEFFFF 
- 12868              	.LBE1483:
- 12869              	.LBE1482:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12870              		.loc 2 1569 0
- 12871 be36 660F7F85 		movdqa	%xmm0, -6352(%rbp)
- 12871      30E7FFFF 
- 12872 be3e 660F6F85 		movdqa	-6352(%rbp), %xmm0
- 12872      30E7FFFF 
- 12873 be46 660FEF85 		pxor	-848(%rbp), %xmm0
- 12873      B0FCFFFF 
- 12874 be4e F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 12874      B0FCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12875              		.loc 2 1571 0
- 12876 be56 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 12876      B0FCFFFF 
- 12877              	.LBE1477:
- 12878              	.LBE1476:
-1872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k40   :k40^k41: x   5  : x            */
- 12879              		.loc 2 1872 0
- 12880 be5e 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 12880      B0E5FFFF 
-1873:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k42   : k43   : k44    : k45          */
- 12881              		.loc 2 1873 0
- 12882 be66 660F6F85 		movdqa	-6752(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 410
-
-
- 12882      A0E5FFFF 
- 12883 be6e 660FEF85 		pxor	-6720(%rbp), %xmm0
- 12883      C0E5FFFF 
- 12884 be76 660F7F85 		movdqa	%xmm0, -6752(%rbp)
- 12884      A0E5FFFF 
-1874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k45   : k45   : k45    : k45          */
- 12885              		.loc 2 1874 0
- 12886 be7e 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 12886      A0E5FFFF 
- 12887 be86 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 12887      C0E5FFFF 
- 12888 be8e 660F6F85 		movdqa	-6720(%rbp), %xmm0
- 12888      C0E5FFFF 
- 12889 be96 F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 12889      F0FCFFFF 
- 12890              	.LBB1484:
- 12891              	.LBB1485:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12892              		.loc 2 1357 0
- 12893 be9e F30F6F85 		movdqu	-784(%rbp), %xmm0
- 12893      F0FCFFFF 
- 12894 bea6 F30F7F85 		movdqu	%xmm0, -4400(%rbp)
- 12894      D0EEFFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 12895              		.loc 2 1358 0
- 12896 beae 8B85DCEE 		movl	-4388(%rbp), %eax
- 12896      FFFF
- 12897 beb4 8985D8EE 		movl	%eax, -4392(%rbp)
- 12897      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 12898              		.loc 2 1359 0
- 12899 beba 8B85DCEE 		movl	-4388(%rbp), %eax
- 12899      FFFF
- 12900 bec0 8985D4EE 		movl	%eax, -4396(%rbp)
- 12900      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 12901              		.loc 2 1360 0
- 12902 bec6 8B85DCEE 		movl	-4388(%rbp), %eax
- 12902      FFFF
- 12903 becc 8985D0EE 		movl	%eax, -4400(%rbp)
- 12903      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 12904              		.loc 2 1361 0
- 12905 bed2 F30F6F85 		movdqu	-4400(%rbp), %xmm0
- 12905      D0EEFFFF 
- 12906              	.LBE1485:
- 12907              	.LBE1484:
-1874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k45   : k45   : k45    : k45          */
- 12908              		.loc 2 1874 0
- 12909 beda 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 12909      C0E5FFFF 
-1875:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k46   : k47   : x      : x            */
- 12910              		.loc 2 1875 0
- 12911 bee2 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 12911      B0E5FFFF 
- 12912 beea 660FEF85 		pxor	-6720(%rbp), %xmm0
- 12912      C0E5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 411
-
-
- 12913 bef2 660F7F85 		movdqa	%xmm0, -6736(%rbp)
- 12913      B0E5FFFF 
- 12914 befa 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 12914      80E5FFFF 
- 12915 bf02 F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 12915      10FDFFFF 
- 12916 bf0a 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 12916      A0E5FFFF 
- 12917 bf12 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 12917      00FDFFFF 
- 12918              	.LBB1486:
- 12919              	.LBB1487:
-1471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 12920              		.loc 2 1471 0
- 12921 bf1a F30F6F85 		movdqu	-752(%rbp), %xmm0
- 12921      10FDFFFF 
- 12922 bf22 F30F7F85 		movdqu	%xmm0, -4368(%rbp)
- 12922      F0EEFFFF 
-1472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 12923              		.loc 2 1472 0
- 12924 bf2a F30F6F85 		movdqu	-768(%rbp), %xmm0
- 12924      00FDFFFF 
- 12925 bf32 F30F7F85 		movdqu	%xmm0, -4384(%rbp)
- 12925      E0EEFFFF 
-1474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
- 12926              		.loc 2 1474 0
- 12927 bf3a 8B85E0EE 		movl	-4384(%rbp), %eax
- 12927      FFFF
- 12928 bf40 8985F8EE 		movl	%eax, -4360(%rbp)
- 12928      FFFF
-1475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 12929              		.loc 2 1475 0
- 12930 bf46 8B85E4EE 		movl	-4380(%rbp), %eax
- 12930      FFFF
- 12931 bf4c 8985FCEE 		movl	%eax, -4356(%rbp)
- 12931      FFFF
-1477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 12932              		.loc 2 1477 0
- 12933 bf52 F30F6F85 		movdqu	-4368(%rbp), %xmm0
- 12933      F0EEFFFF 
- 12934              	.LBE1487:
- 12935              	.LBE1486:
-1876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k40   : k41   : k42    : k43          */
- 12936              		.loc 2 1876 0
- 12937 bf5a 660F7F85 		movdqa	%xmm0, -6784(%rbp)
- 12937      80E5FFFF 
-1877:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[10] = v1; /* K40:K41:K42:K43 */
- 12938              		.loc 2 1877 0
- 12939 bf62 488B8588 		movq	-6264(%rbp), %rax
- 12939      E7FFFF
- 12940 bf69 4805A000 		addq	$160, %rax
- 12940      0000
- 12941 bf6f 660F6F85 		movdqa	-6784(%rbp), %xmm0
- 12941      80E5FFFF 
- 12942 bf77 660F7F00 		movdqa	%xmm0, (%rax)
- 12943 bf7b 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 12943      A0E5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 412
-
-
- 12944 bf83 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 12944      30FDFFFF 
- 12945 bf8b 660F6F85 		movdqa	-6736(%rbp), %xmm0
- 12945      B0E5FFFF 
- 12946 bf93 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 12946      20FDFFFF 
- 12947              	.LBB1488:
- 12948              	.LBB1489:
-1503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
- 12949              		.loc 2 1503 0
- 12950 bf9b F30F6F85 		movdqu	-720(%rbp), %xmm0
- 12950      30FDFFFF 
- 12951 bfa3 F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 12951      10EFFFFF 
-1504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
- 12952              		.loc 2 1504 0
- 12953 bfab F30F6F85 		movdqu	-736(%rbp), %xmm0
- 12953      20FDFFFF 
- 12954 bfb3 F30F7F85 		movdqu	%xmm0, -4352(%rbp)
- 12954      00EFFFFF 
-1506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[0] = ww.columns[2];
- 12955              		.loc 2 1506 0
- 12956 bfbb 8B8518EF 		movl	-4328(%rbp), %eax
- 12956      FFFF
- 12957 bfc1 898510EF 		movl	%eax, -4336(%rbp)
- 12957      FFFF
-1507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[1] = ww.columns[3];
- 12958              		.loc 2 1507 0
- 12959 bfc7 8B851CEF 		movl	-4324(%rbp), %eax
- 12959      FFFF
- 12960 bfcd 898514EF 		movl	%eax, -4332(%rbp)
- 12960      FFFF
-1508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
- 12961              		.loc 2 1508 0
- 12962 bfd3 8B8500EF 		movl	-4352(%rbp), %eax
- 12962      FFFF
- 12963 bfd9 898518EF 		movl	%eax, -4328(%rbp)
- 12963      FFFF
-1509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
- 12964              		.loc 2 1509 0
- 12965 bfdf 8B8504EF 		movl	-4348(%rbp), %eax
- 12965      FFFF
- 12966 bfe5 89851CEF 		movl	%eax, -4324(%rbp)
- 12966      FFFF
-1511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
- 12967              		.loc 2 1511 0
- 12968 bfeb F30F6F85 		movdqu	-4336(%rbp), %xmm0
- 12968      10EFFFFF 
- 12969              	.LBE1489:
- 12970              	.LBE1488:
-1878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k44   : k45   : k46    : k47          */
- 12971              		.loc 2 1878 0
- 12972 bff3 660F7F85 		movdqa	%xmm0, -6768(%rbp)
- 12972      90E5FFFF 
-1879:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[11] = v2; /* K44:K45:K46:K47 */
- 12973              		.loc 2 1879 0
- 12974 bffb 488B8588 		movq	-6264(%rbp), %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 413
-
-
- 12974      E7FFFF
- 12975 c002 4805B000 		addq	$176, %rax
- 12975      0000
- 12976 c008 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 12976      90E5FFFF 
- 12977 c010 660F7F00 		movdqa	%xmm0, (%rax)
- 12978 c014 660F6F85 		movdqa	-6752(%rbp), %xmm0
- 12978      A0E5FFFF 
- 12979 c01c F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 12979      40FDFFFF 
- 12980              	.LBB1490:
- 12981              	.LBB1491:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 12982              		.loc 2 1565 0
- 12983 c024 F30F6F85 		movdqu	-704(%rbp), %xmm0
- 12983      40FDFFFF 
- 12984 c02c 660F7F85 		movdqa	%xmm0, -6336(%rbp)
- 12984      40E7FFFF 
- 12985 c034 660F6F85 		movdqa	-6336(%rbp), %xmm0
- 12985      40E7FFFF 
- 12986 c03c F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 12986      50FDFFFF 
- 12987              	.LBB1492:
- 12988              	.LBB1493:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 12989              		.loc 2 1282 0
- 12990 c044 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 12990      50FDFFFF 
- 12991 c04c F30F7F85 		movdqu	%xmm0, -4320(%rbp)
- 12991      20EFFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 12992              		.loc 2 1283 0
- 12993 c054 8B8528EF 		movl	-4312(%rbp), %eax
- 12993      FFFF
- 12994 c05a 89852CEF 		movl	%eax, -4308(%rbp)
- 12994      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 12995              		.loc 2 1284 0
- 12996 c060 8B8524EF 		movl	-4316(%rbp), %eax
- 12996      FFFF
- 12997 c066 898528EF 		movl	%eax, -4312(%rbp)
- 12997      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 12998              		.loc 2 1285 0
- 12999 c06c 8B8520EF 		movl	-4320(%rbp), %eax
- 12999      FFFF
- 13000 c072 898524EF 		movl	%eax, -4316(%rbp)
- 13000      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 13001              		.loc 2 1286 0
- 13002 c078 C78520EF 		movl	$0, -4320(%rbp)
- 13002      FFFF0000 
- 13002      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 13003              		.loc 2 1287 0
- 13004 c082 F30F6F85 		movdqu	-4320(%rbp), %xmm0
- 13004      20EFFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 414
-
-
- 13005              	.LBE1493:
- 13006              	.LBE1492:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13007              		.loc 2 1567 0
- 13008 c08a 660F7F85 		movdqa	%xmm0, -6336(%rbp)
- 13008      40E7FFFF 
- 13009 c092 660F6F85 		movdqa	-6336(%rbp), %xmm0
- 13009      40E7FFFF 
- 13010 c09a 660FEF85 		pxor	-704(%rbp), %xmm0
- 13010      40FDFFFF 
- 13011 c0a2 F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 13011      40FDFFFF 
- 13012 c0aa 660F6F85 		movdqa	-6336(%rbp), %xmm0
- 13012      40E7FFFF 
- 13013 c0b2 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 13013      60FDFFFF 
- 13014              	.LBB1494:
- 13015              	.LBB1495:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 13016              		.loc 2 1282 0
- 13017 c0ba F30F6F85 		movdqu	-672(%rbp), %xmm0
- 13017      60FDFFFF 
- 13018 c0c2 F30F7F85 		movdqu	%xmm0, -4304(%rbp)
- 13018      30EFFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 13019              		.loc 2 1283 0
- 13020 c0ca 8B8538EF 		movl	-4296(%rbp), %eax
- 13020      FFFF
- 13021 c0d0 89853CEF 		movl	%eax, -4292(%rbp)
- 13021      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 13022              		.loc 2 1284 0
- 13023 c0d6 8B8534EF 		movl	-4300(%rbp), %eax
- 13023      FFFF
- 13024 c0dc 898538EF 		movl	%eax, -4296(%rbp)
- 13024      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 13025              		.loc 2 1285 0
- 13026 c0e2 8B8530EF 		movl	-4304(%rbp), %eax
- 13026      FFFF
- 13027 c0e8 898534EF 		movl	%eax, -4300(%rbp)
- 13027      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 13028              		.loc 2 1286 0
- 13029 c0ee C78530EF 		movl	$0, -4304(%rbp)
- 13029      FFFF0000 
- 13029      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 13030              		.loc 2 1287 0
- 13031 c0f8 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 13031      30EFFFFF 
- 13032              	.LBE1495:
- 13033              	.LBE1494:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13034              		.loc 2 1568 0
- 13035 c100 660F7F85 		movdqa	%xmm0, -6336(%rbp)
- 13035      40E7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 415
-
-
- 13036 c108 660F6F85 		movdqa	-6336(%rbp), %xmm0
- 13036      40E7FFFF 
- 13037 c110 660FEF85 		pxor	-704(%rbp), %xmm0
- 13037      40FDFFFF 
- 13038 c118 F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 13038      40FDFFFF 
- 13039 c120 660F6F85 		movdqa	-6336(%rbp), %xmm0
- 13039      40E7FFFF 
- 13040 c128 F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 13040      70FDFFFF 
- 13041              	.LBB1496:
- 13042              	.LBB1497:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 13043              		.loc 2 1282 0
- 13044 c130 F30F6F85 		movdqu	-656(%rbp), %xmm0
- 13044      70FDFFFF 
- 13045 c138 F30F7F85 		movdqu	%xmm0, -4288(%rbp)
- 13045      40EFFFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 13046              		.loc 2 1283 0
- 13047 c140 8B8548EF 		movl	-4280(%rbp), %eax
- 13047      FFFF
- 13048 c146 89854CEF 		movl	%eax, -4276(%rbp)
- 13048      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 13049              		.loc 2 1284 0
- 13050 c14c 8B8544EF 		movl	-4284(%rbp), %eax
- 13050      FFFF
- 13051 c152 898548EF 		movl	%eax, -4280(%rbp)
- 13051      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 13052              		.loc 2 1285 0
- 13053 c158 8B8540EF 		movl	-4288(%rbp), %eax
- 13053      FFFF
- 13054 c15e 898544EF 		movl	%eax, -4284(%rbp)
- 13054      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 13055              		.loc 2 1286 0
- 13056 c164 C78540EF 		movl	$0, -4288(%rbp)
- 13056      FFFF0000 
- 13056      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 13057              		.loc 2 1287 0
- 13058 c16e F30F6F85 		movdqu	-4288(%rbp), %xmm0
- 13058      40EFFFFF 
- 13059              	.LBE1497:
- 13060              	.LBE1496:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13061              		.loc 2 1569 0
- 13062 c176 660F7F85 		movdqa	%xmm0, -6336(%rbp)
- 13062      40E7FFFF 
- 13063 c17e 660F6F85 		movdqa	-6336(%rbp), %xmm0
- 13063      40E7FFFF 
- 13064 c186 660FEF85 		pxor	-704(%rbp), %xmm0
- 13064      40FDFFFF 
- 13065 c18e F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 13065      40FDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 416
-
-
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13066              		.loc 2 1571 0
- 13067 c196 F30F6F85 		movdqu	-704(%rbp), %xmm0
- 13067      40FDFFFF 
- 13068              	.LBE1491:
- 13069              	.LBE1490:
-1882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k42   :k42^k43:k42^k43^k44:k42^k43^k44^k45  *
- 13070              		.loc 2 1882 0
- 13071 c19e 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 13071      70E5FFFF 
- 13072 c1a6 660F6F85 		movdqa	-6768(%rbp), %xmm0
- 13072      90E5FFFF 
- 13073 c1ae F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 13073      90FDFFFF 
- 13074              	.LBB1498:
- 13075              	.LBB1499:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13076              		.loc 2 1681 0
- 13077 c1b6 B8800000 		movl	$128, %eax
- 13077      00
- 13078 c1bb 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13078      00000000 
- 13079 c1c3 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 13079      B0FDFFFF 
- 13080 c1cb 8985ACFD 		movl	%eax, -596(%rbp)
- 13080      FFFF
- 13081              	.LBB1500:
- 13082              	.LBB1501:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 13083              		.loc 2 522 0
- 13084 c1d1 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 13084      B0FDFFFF 
- 13085 c1d9 F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 13085      90EFFFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 13086              		.loc 2 523 0
- 13087 c1e1 B8030000 		movl	$3, %eax
- 13087      00
- 13088 c1e6 4898     		cltq
- 13089 c1e8 8B95ACFD 		movl	-596(%rbp), %edx
- 13089      FFFF
- 13090 c1ee 89948590 		movl	%edx, -4208(%rbp,%rax,4)
- 13090      EFFFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 13091              		.loc 2 524 0
- 13092 c1f5 F30F6F85 		movdqu	-4208(%rbp), %xmm0
- 13092      90EFFFFF 
- 13093 c1fd F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 13093      B0FDFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13094              		.loc 2 526 0
- 13095 c205 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 13095      B0FDFFFF 
- 13096              	.LBE1501:
- 13097              	.LBE1500:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13098              		.loc 2 1681 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 417
-
-
- 13099 c20d 660F7F85 		movdqa	%xmm0, -6304(%rbp)
- 13099      60E7FFFF 
- 13100 c215 F30F6F85 		movdqu	-624(%rbp), %xmm0
- 13100      90FDFFFF 
- 13101 c21d F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 13101      C0FDFFFF 
- 13102 c225 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 13102      C0FDFFFF 
- 13103 c22d F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 13103      E0FDFFFF 
- 13104 c235 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 13104      000000
- 13105 c23c 488985D8 		movq	%rax, -552(%rbp)
- 13105      FDFFFF
- 13106              	.LBB1502:
- 13107              	.LBB1503:
- 13108              	.LBB1504:
- 13109              	.LBB1505:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 13110              		.loc 2 851 0
- 13111 c243 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13111      00000000 
- 13112 c24b F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 13112      00FEFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13113              		.loc 2 854 0
- 13114 c253 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 13114      00000000 
- 13115 c25b F30F6F8D 		movdqu	-544(%rbp), %xmm1
- 13115      E0FDFFFF 
- 13116 c263 F30F7F8D 		movdqu	%xmm1, -432(%rbp)
- 13116      50FEFFFF 
- 13117 c26b F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 13117      40FEFFFF 
- 13118              	.LBB1506:
- 13119              	.LBB1507:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 13120              		.loc 2 206 0
- 13121 c273 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 13121      40FEFFFF 
- 13122 c27b F30F6F8D 		movdqu	-432(%rbp), %xmm1
- 13122      50FEFFFF 
- 13123 c283 660FDBC1 		pand	%xmm1, %xmm0
- 13124              	.LBE1507:
- 13125              	.LBE1506:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13126              		.loc 2 854 0
- 13127 c287 F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 13127      30FEFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 13128              		.loc 2 862 0
- 13129 c28f 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 13129      00000000 
- 13130 c297 F30F6F8D 		movdqu	-544(%rbp), %xmm1
- 13130      E0FDFFFF 
- 13131 c29f F30F7F8D 		movdqu	%xmm1, -400(%rbp)
- 13131      70FEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 418
-
-
- 13132 c2a7 F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 13132      60FEFFFF 
- 13133              	.LBB1508:
- 13134              		.loc 2 2642 0
- 13135 c2af 0FB68570 		movzbl	-400(%rbp), %eax
- 13135      FEFFFF
- 13136 c2b6 0FB69560 		movzbl	-416(%rbp), %edx
- 13136      FEFFFF
- 13137 c2bd 0FB6C0   		movzbl	%al, %eax
- 13138 c2c0 6689852E 		movw	%ax, -6866(%rbp)
- 13138      E5FFFF
- 13139 c2c7 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13139      E5FFFF
- 13140 c2ce F6F2     		divb	%dl
- 13141 c2d0 4189C7   		movl	%eax, %r15d
- 13142 c2d3 0FB68571 		movzbl	-399(%rbp), %eax
- 13142      FEFFFF
- 13143 c2da 0FB69561 		movzbl	-415(%rbp), %edx
- 13143      FEFFFF
- 13144 c2e1 0FB6C0   		movzbl	%al, %eax
- 13145 c2e4 6689852E 		movw	%ax, -6866(%rbp)
- 13145      E5FFFF
- 13146 c2eb 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13146      E5FFFF
- 13147 c2f2 F6F2     		divb	%dl
- 13148 c2f4 88857FE7 		movb	%al, -6273(%rbp)
- 13148      FFFF
- 13149 c2fa 0FB68572 		movzbl	-398(%rbp), %eax
- 13149      FEFFFF
- 13150 c301 0FB69562 		movzbl	-414(%rbp), %edx
- 13150      FEFFFF
- 13151 c308 0FB6C0   		movzbl	%al, %eax
- 13152 c30b 6689852E 		movw	%ax, -6866(%rbp)
- 13152      E5FFFF
- 13153 c312 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13153      E5FFFF
- 13154 c319 F6F2     		divb	%dl
- 13155 c31b 88857EE7 		movb	%al, -6274(%rbp)
- 13155      FFFF
- 13156 c321 0FB68573 		movzbl	-397(%rbp), %eax
- 13156      FEFFFF
- 13157 c328 0FB69563 		movzbl	-413(%rbp), %edx
- 13157      FEFFFF
- 13158 c32f 0FB6C0   		movzbl	%al, %eax
- 13159 c332 6689852E 		movw	%ax, -6866(%rbp)
- 13159      E5FFFF
- 13160 c339 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13160      E5FFFF
- 13161 c340 F6F2     		divb	%dl
- 13162 c342 88857DE7 		movb	%al, -6275(%rbp)
- 13162      FFFF
- 13163 c348 0FB68574 		movzbl	-396(%rbp), %eax
- 13163      FEFFFF
- 13164 c34f 0FB69564 		movzbl	-412(%rbp), %edx
- 13164      FEFFFF
- 13165 c356 0FB6C0   		movzbl	%al, %eax
- 13166 c359 6689852E 		movw	%ax, -6866(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 419
-
-
- 13166      E5FFFF
- 13167 c360 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13167      E5FFFF
- 13168 c367 F6F2     		divb	%dl
- 13169 c369 88857CE7 		movb	%al, -6276(%rbp)
- 13169      FFFF
- 13170 c36f 0FB68575 		movzbl	-395(%rbp), %eax
- 13170      FEFFFF
- 13171 c376 0FB69565 		movzbl	-411(%rbp), %edx
- 13171      FEFFFF
- 13172 c37d 0FB6C0   		movzbl	%al, %eax
- 13173 c380 6689852E 		movw	%ax, -6866(%rbp)
- 13173      E5FFFF
- 13174 c387 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13174      E5FFFF
- 13175 c38e F6F2     		divb	%dl
- 13176 c390 4189C1   		movl	%eax, %r9d
- 13177 c393 0FB68576 		movzbl	-394(%rbp), %eax
- 13177      FEFFFF
- 13178 c39a 0FB69566 		movzbl	-410(%rbp), %edx
- 13178      FEFFFF
- 13179 c3a1 0FB6C0   		movzbl	%al, %eax
- 13180 c3a4 6689852E 		movw	%ax, -6866(%rbp)
- 13180      E5FFFF
- 13181 c3ab 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13181      E5FFFF
- 13182 c3b2 F6F2     		divb	%dl
- 13183 c3b4 89C7     		movl	%eax, %edi
- 13184 c3b6 0FB68577 		movzbl	-393(%rbp), %eax
- 13184      FEFFFF
- 13185 c3bd 0FB69567 		movzbl	-409(%rbp), %edx
- 13185      FEFFFF
- 13186 c3c4 0FB6C0   		movzbl	%al, %eax
- 13187 c3c7 6689852E 		movw	%ax, -6866(%rbp)
- 13187      E5FFFF
- 13188 c3ce 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13188      E5FFFF
- 13189 c3d5 F6F2     		divb	%dl
- 13190 c3d7 89C3     		movl	%eax, %ebx
- 13191 c3d9 0FB68578 		movzbl	-392(%rbp), %eax
- 13191      FEFFFF
- 13192 c3e0 0FB69568 		movzbl	-408(%rbp), %edx
- 13192      FEFFFF
- 13193 c3e7 0FB6C0   		movzbl	%al, %eax
- 13194 c3ea 6689852E 		movw	%ax, -6866(%rbp)
- 13194      E5FFFF
- 13195 c3f1 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13195      E5FFFF
- 13196 c3f8 F6F2     		divb	%dl
- 13197 c3fa 4189C2   		movl	%eax, %r10d
- 13198 c3fd 0FB68579 		movzbl	-391(%rbp), %eax
- 13198      FEFFFF
- 13199 c404 0FB69569 		movzbl	-407(%rbp), %edx
- 13199      FEFFFF
- 13200 c40b 0FB6C0   		movzbl	%al, %eax
- 13201 c40e 6689852E 		movw	%ax, -6866(%rbp)
- 13201      E5FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 420
-
-
- 13202 c415 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13202      E5FFFF
- 13203 c41c F6F2     		divb	%dl
- 13204 c41e 4189C3   		movl	%eax, %r11d
- 13205 c421 0FB6857A 		movzbl	-390(%rbp), %eax
- 13205      FEFFFF
- 13206 c428 0FB6956A 		movzbl	-406(%rbp), %edx
- 13206      FEFFFF
- 13207 c42f 0FB6C0   		movzbl	%al, %eax
- 13208 c432 6689852E 		movw	%ax, -6866(%rbp)
- 13208      E5FFFF
- 13209 c439 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13209      E5FFFF
- 13210 c440 F6F2     		divb	%dl
- 13211 c442 4189C4   		movl	%eax, %r12d
- 13212 c445 0FB6857B 		movzbl	-389(%rbp), %eax
- 13212      FEFFFF
- 13213 c44c 0FB6956B 		movzbl	-405(%rbp), %edx
- 13213      FEFFFF
- 13214 c453 0FB6C0   		movzbl	%al, %eax
- 13215 c456 6689852E 		movw	%ax, -6866(%rbp)
- 13215      E5FFFF
- 13216 c45d 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13216      E5FFFF
- 13217 c464 F6F2     		divb	%dl
- 13218 c466 4189C5   		movl	%eax, %r13d
- 13219 c469 0FB6857C 		movzbl	-388(%rbp), %eax
- 13219      FEFFFF
- 13220 c470 0FB6956C 		movzbl	-404(%rbp), %edx
- 13220      FEFFFF
- 13221 c477 0FB6C0   		movzbl	%al, %eax
- 13222 c47a 6689852E 		movw	%ax, -6866(%rbp)
- 13222      E5FFFF
- 13223 c481 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13223      E5FFFF
- 13224 c488 F6F2     		divb	%dl
- 13225 c48a 4189C6   		movl	%eax, %r14d
- 13226 c48d 0FB6857D 		movzbl	-387(%rbp), %eax
- 13226      FEFFFF
- 13227 c494 0FB6956D 		movzbl	-403(%rbp), %edx
- 13227      FEFFFF
- 13228 c49b 0FB6C0   		movzbl	%al, %eax
- 13229 c49e 6689852E 		movw	%ax, -6866(%rbp)
- 13229      E5FFFF
- 13230 c4a5 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13230      E5FFFF
- 13231 c4ac F6F2     		divb	%dl
- 13232 c4ae 4189C0   		movl	%eax, %r8d
- 13233 c4b1 0FB6857E 		movzbl	-386(%rbp), %eax
- 13233      FEFFFF
- 13234 c4b8 0FB6956E 		movzbl	-402(%rbp), %edx
- 13234      FEFFFF
- 13235 c4bf 0FB6C0   		movzbl	%al, %eax
- 13236 c4c2 6689852E 		movw	%ax, -6866(%rbp)
- 13236      E5FFFF
- 13237 c4c9 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13237      E5FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 421
-
-
- 13238 c4d0 F6F2     		divb	%dl
- 13239 c4d2 89C6     		movl	%eax, %esi
- 13240 c4d4 0FB6857F 		movzbl	-385(%rbp), %eax
- 13240      FEFFFF
- 13241 c4db 0FB6956F 		movzbl	-401(%rbp), %edx
- 13241      FEFFFF
- 13242 c4e2 0FB6C0   		movzbl	%al, %eax
- 13243 c4e5 6689852E 		movw	%ax, -6866(%rbp)
- 13243      E5FFFF
- 13244 c4ec 0FB7852E 		movzwl	-6866(%rbp), %eax
- 13244      E5FFFF
- 13245 c4f3 F6F2     		divb	%dl
- 13246 c4f5 89C1     		movl	%eax, %ecx
- 13247              	.LBB1509:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 13248              		.loc 2 346 0
- 13249 c4f7 0FB6D3   		movzbl	%bl, %edx
- 13250 c4fa 400FB6C7 		movzbl	%dil, %eax
- 13251 c4fe 48C1E208 		salq	$8, %rdx
- 13252 c502 4809C2   		orq	%rax, %rdx
- 13253 c505 410FB6C1 		movzbl	%r9b, %eax
- 13254 c509 48C1E208 		salq	$8, %rdx
- 13255 c50d 4809C2   		orq	%rax, %rdx
- 13256 c510 0FB6857C 		movzbl	-6276(%rbp), %eax
- 13256      E7FFFF
- 13257 c517 48C1E208 		salq	$8, %rdx
- 13258 c51b 4809C2   		orq	%rax, %rdx
- 13259 c51e 0FB6857D 		movzbl	-6275(%rbp), %eax
- 13259      E7FFFF
- 13260 c525 48C1E208 		salq	$8, %rdx
- 13261 c529 4809C2   		orq	%rax, %rdx
- 13262 c52c 0FB6857E 		movzbl	-6274(%rbp), %eax
- 13262      E7FFFF
- 13263 c533 48C1E208 		salq	$8, %rdx
- 13264 c537 4809C2   		orq	%rax, %rdx
- 13265 c53a 0FB6857F 		movzbl	-6273(%rbp), %eax
- 13265      E7FFFF
- 13266 c541 48C1E208 		salq	$8, %rdx
- 13267 c545 4809C2   		orq	%rax, %rdx
- 13268 c548 410FB6C7 		movzbl	%r15b, %eax
- 13269 c54c 48C1E208 		salq	$8, %rdx
- 13270 c550 4809C2   		orq	%rax, %rdx
- 13271 c553 0FB6C1   		movzbl	%cl, %eax
- 13272 c556 400FB6CE 		movzbl	%sil, %ecx
- 13273 c55a 48C1E008 		salq	$8, %rax
- 13274 c55e 4809C8   		orq	%rcx, %rax
- 13275 c561 410FB6C8 		movzbl	%r8b, %ecx
- 13276 c565 48C1E008 		salq	$8, %rax
- 13277 c569 4809C8   		orq	%rcx, %rax
- 13278 c56c 410FB6CE 		movzbl	%r14b, %ecx
- 13279 c570 48C1E008 		salq	$8, %rax
- 13280 c574 4809C8   		orq	%rcx, %rax
- 13281 c577 410FB6CD 		movzbl	%r13b, %ecx
- 13282 c57b 48C1E008 		salq	$8, %rax
- 13283 c57f 4809C8   		orq	%rcx, %rax
- 13284 c582 410FB6CC 		movzbl	%r12b, %ecx
- 13285 c586 48C1E008 		salq	$8, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 422
-
-
- 13286 c58a 4809C8   		orq	%rcx, %rax
- 13287 c58d 410FB6CB 		movzbl	%r11b, %ecx
- 13288 c591 48C1E008 		salq	$8, %rax
- 13289 c595 4809C8   		orq	%rcx, %rax
- 13290 c598 410FB6CA 		movzbl	%r10b, %ecx
- 13291 c59c 48C1E008 		salq	$8, %rax
- 13292 c5a0 4809C8   		orq	%rcx, %rax
- 13293 c5a3 48899530 		movq	%rdx, -6864(%rbp)
- 13293      E5FFFF
- 13294 c5aa 48898538 		movq	%rax, -6856(%rbp)
- 13294      E5FFFF
- 13295 c5b1 660F6F85 		movdqa	-6864(%rbp), %xmm0
- 13295      30E5FFFF 
- 13296              	.LBE1509:
- 13297              	.LBE1508:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 13298              		.loc 2 862 0
- 13299 c5b9 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 13299      20FEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 13300              		.loc 2 866 0
- 13301 c5c1 C785FCFD 		movl	$0, -516(%rbp)
- 13301      FFFF0000 
- 13301      0000
- 13302 c5cb E9860200 		jmp	.L300
- 13302      00
- 13303              	.L309:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 13304              		.loc 2 868 0
- 13305 c5d0 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 13305      00000000 
- 13306 c5d8 F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 13306      90FEFFFF 
- 13307 c5e0 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 13307      20FEFFFF 
- 13308 c5e8 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 13308      80FEFFFF 
- 13309              	.LBB1510:
- 13310              	.LBB1511:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 13311              		.loc 2 380 0
- 13312 c5f0 F30F6F85 		movdqu	-368(%rbp), %xmm0
- 13312      90FEFFFF 
- 13313 c5f8 F30F7F85 		movdqu	%xmm0, -4176(%rbp)
- 13313      B0EFFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 13314              		.loc 2 381 0
- 13315 c600 F30F6F85 		movdqu	-384(%rbp), %xmm0
- 13315      80FEFFFF 
- 13316 c608 F30F7F85 		movdqu	%xmm0, -4192(%rbp)
- 13316      A0EFFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 13317              		.loc 2 383 0
- 13318 c610 C785ACFE 		movl	$0, -340(%rbp)
- 13318      FFFF0000 
- 13318      0000
- 13319 c61a EB5C     		jmp	.L301
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 423
-
-
- 13320              	.L304:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 13321              		.loc 2 385 0
- 13322 c61c 8B85ACFE 		movl	-340(%rbp), %eax
- 13322      FFFF
- 13323 c622 89C0     		mov	%eax, %eax
- 13324 c624 0FB68405 		movzbl	-4192(%rbp,%rax), %eax
- 13324      A0EFFFFF 
- 13325 c62c 84C0     		testb	%al, %al
- 13326 c62e 7912     		jns	.L302
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 13327              		.loc 2 386 0
- 13328 c630 8B85ACFE 		movl	-340(%rbp), %eax
- 13328      FFFF
- 13329 c636 89C0     		mov	%eax, %eax
- 13330 c638 C68405C0 		movb	$0, -4160(%rbp,%rax)
- 13330      EFFFFF00 
- 13331 c640 EB2F     		jmp	.L303
- 13332              	.L302:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 13333              		.loc 2 388 0
- 13334 c642 8B8DACFE 		movl	-340(%rbp), %ecx
- 13334      FFFF
- 13335 c648 8B85ACFE 		movl	-340(%rbp), %eax
- 13335      FFFF
- 13336 c64e 89C0     		mov	%eax, %eax
- 13337 c650 0FB68405 		movzbl	-4192(%rbp,%rax), %eax
- 13337      A0EFFFFF 
- 13338 c658 0FB6C0   		movzbl	%al, %eax
- 13339 c65b 83E00F   		andl	$15, %eax
- 13340 c65e 4898     		cltq
- 13341 c660 0FB69405 		movzbl	-4176(%rbp,%rax), %edx
- 13341      B0EFFFFF 
- 13342 c668 89C8     		mov	%ecx, %eax
- 13343 c66a 889405C0 		movb	%dl, -4160(%rbp,%rax)
- 13343      EFFFFF
- 13344              	.L303:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 13345              		.loc 2 383 0
- 13346 c671 8385ACFE 		addl	$1, -340(%rbp)
- 13346      FFFF01
- 13347              	.L301:
- 13348 c678 83BDACFE 		cmpl	$15, -340(%rbp)
- 13348      FFFF0F
- 13349 c67f 769B     		jbe	.L304
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 13350              		.loc 2 391 0
- 13351 c681 F30F6F85 		movdqu	-4160(%rbp), %xmm0
- 13351      C0EFFFFF 
- 13352              	.LBE1511:
- 13353              	.LBE1510:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 13354              		.loc 2 868 0
- 13355 c689 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 13355      10FEFFFF 
- 13356 c691 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 13356      30FEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 424
-
-
- 13357 c699 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 13357      C0FEFFFF 
- 13358 c6a1 F30F6F85 		movdqu	-496(%rbp), %xmm0
- 13358      10FEFFFF 
- 13359 c6a9 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 13359      B0FEFFFF 
- 13360              	.LBB1512:
- 13361              	.LBB1513:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 13362              		.loc 2 234 0
- 13363 c6b1 F30F6F85 		movdqu	-336(%rbp), %xmm0
- 13363      B0FEFFFF 
- 13364 c6b9 F30F6F8D 		movdqu	-320(%rbp), %xmm1
- 13364      C0FEFFFF 
- 13365 c6c1 660FEBC1 		por	%xmm1, %xmm0
- 13366              	.LBE1513:
- 13367              	.LBE1512:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 13368              		.loc 2 870 0
- 13369 c6c5 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 13369      10FEFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 13370              		.loc 2 872 0
- 13371 c6cd 8B85FCFD 		mov	-516(%rbp), %eax
- 13371      FFFF
- 13372 c6d3 48C1E004 		salq	$4, %rax
- 13373 c6d7 480385D8 		addq	-552(%rbp), %rax
- 13373      FDFFFF
- 13374 c6de 660F6F00 		movdqa	(%rax), %xmm0
- 13375 c6e2 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 13375      E0FEFFFF 
- 13376 c6ea F30F6F85 		movdqu	-496(%rbp), %xmm0
- 13376      10FEFFFF 
- 13377 c6f2 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 13377      D0FEFFFF 
- 13378              	.LBB1514:
- 13379              	.LBB1515:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 13380              		.loc 2 380 0
- 13381 c6fa F30F6F85 		movdqu	-288(%rbp), %xmm0
- 13381      E0FEFFFF 
- 13382 c702 F30F7F85 		movdqu	%xmm0, -4128(%rbp)
- 13382      E0EFFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 13383              		.loc 2 381 0
- 13384 c70a F30F6F85 		movdqu	-304(%rbp), %xmm0
- 13384      D0FEFFFF 
- 13385 c712 F30F7F85 		movdqu	%xmm0, -4144(%rbp)
- 13385      D0EFFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 13386              		.loc 2 383 0
- 13387 c71a C785FCFE 		movl	$0, -260(%rbp)
- 13387      FFFF0000 
- 13387      0000
- 13388 c724 EB5C     		jmp	.L305
- 13389              	.L308:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 425
-
-
- 13390              		.loc 2 385 0
- 13391 c726 8B85FCFE 		movl	-260(%rbp), %eax
- 13391      FFFF
- 13392 c72c 89C0     		mov	%eax, %eax
- 13393 c72e 0FB68405 		movzbl	-4144(%rbp,%rax), %eax
- 13393      D0EFFFFF 
- 13394 c736 84C0     		testb	%al, %al
- 13395 c738 7912     		jns	.L306
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 13396              		.loc 2 386 0
- 13397 c73a 8B85FCFE 		movl	-260(%rbp), %eax
- 13397      FFFF
- 13398 c740 89C0     		mov	%eax, %eax
- 13399 c742 C68405F0 		movb	$0, -4112(%rbp,%rax)
- 13399      EFFFFF00 
- 13400 c74a EB2F     		jmp	.L307
- 13401              	.L306:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 13402              		.loc 2 388 0
- 13403 c74c 8B8DFCFE 		movl	-260(%rbp), %ecx
- 13403      FFFF
- 13404 c752 8B85FCFE 		movl	-260(%rbp), %eax
- 13404      FFFF
- 13405 c758 89C0     		mov	%eax, %eax
- 13406 c75a 0FB68405 		movzbl	-4144(%rbp,%rax), %eax
- 13406      D0EFFFFF 
- 13407 c762 0FB6C0   		movzbl	%al, %eax
- 13408 c765 83E00F   		andl	$15, %eax
- 13409 c768 4898     		cltq
- 13410 c76a 0FB69405 		movzbl	-4128(%rbp,%rax), %edx
- 13410      E0EFFFFF 
- 13411 c772 89C8     		mov	%ecx, %eax
- 13412 c774 889405F0 		movb	%dl, -4112(%rbp,%rax)
- 13412      EFFFFF
- 13413              	.L307:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 13414              		.loc 2 383 0
- 13415 c77b 8385FCFE 		addl	$1, -260(%rbp)
- 13415      FFFF01
- 13416              	.L305:
- 13417 c782 83BDFCFE 		cmpl	$15, -260(%rbp)
- 13417      FFFF0F
- 13418 c789 769B     		jbe	.L308
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 13419              		.loc 2 391 0
- 13420 c78b F30F6F85 		movdqu	-4112(%rbp), %xmm0
- 13420      F0EFFFFF 
- 13421              	.LBE1515:
- 13422              	.LBE1514:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 13423              		.loc 2 872 0
- 13424 c793 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 13424      10FEFFFF 
- 13425 c79b F30F6F85 		movdqu	-512(%rbp), %xmm0
- 13425      00FEFFFF 
- 13426 c7a3 F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 13426      10FFFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 426
-
-
- 13427 c7ab F30F6F85 		movdqu	-496(%rbp), %xmm0
- 13427      10FEFFFF 
- 13428 c7b3 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 13428      00FFFFFF 
- 13429              	.LBB1516:
- 13430              	.LBB1517:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 13431              		.loc 2 234 0
- 13432 c7bb F30F6F85 		movdqu	-256(%rbp), %xmm0
- 13432      00FFFFFF 
- 13433 c7c3 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 13433      10FFFFFF 
- 13434 c7cb 660FEBC1 		por	%xmm1, %xmm0
- 13435              	.LBE1517:
- 13436              	.LBE1516:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 13437              		.loc 2 874 0
- 13438 c7cf F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 13438      00FEFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 13439              		.loc 2 876 0
- 13440 c7d7 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 13440      00000000 
- 13441 c7df F30F6F8D 		movdqu	-480(%rbp), %xmm1
- 13441      20FEFFFF 
- 13442 c7e7 F30F7F8D 		movdqu	%xmm1, -208(%rbp)
- 13442      30FFFFFF 
- 13443 c7ef F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 13443      20FFFFFF 
- 13444              	.LBB1518:
- 13445              	.LBB1519:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 13446              		.loc 2 290 0
- 13447 c7f7 F30F6F8D 		movdqu	-224(%rbp), %xmm1
- 13447      20FFFFFF 
- 13448 c7ff F30F6F85 		movdqu	-208(%rbp), %xmm0
- 13448      30FFFFFF 
- 13449 c807 660FF8C1 		psubb	%xmm1, %xmm0
- 13450              	.LBE1519:
- 13451              	.LBE1518:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 13452              		.loc 2 876 0
- 13453 c80b F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 13453      20FEFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13454              		.loc 2 878 0
- 13455 c813 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 13455      00000000 
- 13456 c81b F30F6F8D 		movdqu	-480(%rbp), %xmm1
- 13456      20FEFFFF 
- 13457 c823 F30F7F8D 		movdqu	%xmm1, -176(%rbp)
- 13457      50FFFFFF 
- 13458 c82b F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 13458      40FFFFFF 
- 13459              	.LBB1520:
- 13460              	.LBB1521:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 427
-
-
- 13461              		.loc 2 206 0
- 13462 c833 F30F6F85 		movdqu	-192(%rbp), %xmm0
- 13462      40FFFFFF 
- 13463 c83b F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 13463      50FFFFFF 
- 13464 c843 660FDBC1 		pand	%xmm1, %xmm0
- 13465              	.LBE1521:
- 13466              	.LBE1520:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13467              		.loc 2 878 0
- 13468 c847 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 13468      20FEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 13469              		.loc 2 866 0
- 13470 c84f 8385FCFD 		addl	$1, -516(%rbp)
- 13470      FFFF01
- 13471              	.L300:
- 13472 c856 83BDFCFD 		cmpl	$15, -516(%rbp)
- 13472      FFFF0F
- 13473 c85d 0F866DFD 		jbe	.L309
- 13473      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 13474              		.loc 2 882 0
- 13475 c863 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 13475      00FEFFFF 
- 13476              	.LBE1505:
- 13477              	.LBE1504:
- 13478              	.LBE1503:
- 13479              	.LBE1502:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 13480              		.loc 2 1682 0
- 13481 c86b 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 13481      50E7FFFF 
- 13482              	.LBB1522:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 13483              		.loc 2 1683 0
- 13484 c873 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13484      50E7FFFF 
- 13485 c87b F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 13485      80EFFFFF 
- 13486 c883 E8000000 		call	KDbgWriterGet at PLT
- 13486      00
- 13487 c888 4885C0   		testq	%rax, %rax
- 13488 c88b 7479     		je	.L311
- 13489 c88d BF010000 		movl	$1, %edi
- 13489      00
- 13490 c892 E8000000 		call	KDbgCondToFlag at PLT
- 13490      00
- 13491 c897 4889C6   		movq	%rax, %rsi
- 13492 c89a BF100000 		movl	$16, %edi
- 13492      00
- 13493 c89f E8000000 		call	KDbgTestModConds at PLT
- 13493      00
- 13494 c8a4 84C0     		testb	%al, %al
- 13495 c8a6 745E     		je	.L311
- 13496 c8a8 8B858CEF 		movl	-4212(%rbp), %eax
- 13496      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 428
-
-
- 13497 c8ae 89C7     		movl	%eax, %edi
- 13498 c8b0 E84B37FF 		call	bswap_32
- 13498      FF
- 13499 c8b5 4189C5   		movl	%eax, %r13d
- 13500 c8b8 8B8588EF 		movl	-4216(%rbp), %eax
- 13500      FFFF
- 13501 c8be 89C7     		movl	%eax, %edi
- 13502 c8c0 E83B37FF 		call	bswap_32
- 13502      FF
- 13503 c8c5 4189C4   		movl	%eax, %r12d
- 13504 c8c8 8B8584EF 		movl	-4220(%rbp), %eax
- 13504      FFFF
- 13505 c8ce 89C7     		movl	%eax, %edi
- 13506 c8d0 E82B37FF 		call	bswap_32
- 13506      FF
- 13507 c8d5 89C3     		movl	%eax, %ebx
- 13508 c8d7 8B8580EF 		movl	-4224(%rbp), %eax
- 13508      FFFF
- 13509 c8dd 89C7     		movl	%eax, %edi
- 13510 c8df E81C37FF 		call	bswap_32
- 13510      FF
- 13511 c8e4 4589E9   		movl	%r13d, %r9d
- 13512 c8e7 4589E0   		movl	%r12d, %r8d
- 13513 c8ea 89D9     		movl	%ebx, %ecx
- 13514 c8ec 89C2     		movl	%eax, %edx
- 13515 c8ee 488D3500 		leaq	.LC0(%rip), %rsi
- 13515      000000
- 13516 c8f5 488D3D00 		leaq	.LC1(%rip), %rdi
- 13516      000000
- 13517 c8fc B8000000 		movl	$0, %eax
- 13517      00
- 13518 c901 E8000000 		call	KDbgMsg at PLT
- 13518      00
- 13519              	.L311:
- 13520 c906 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13520      50E7FFFF 
- 13521 c90e F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 13521      60FFFFFF 
- 13522              	.LBE1522:
- 13523              	.LBB1523:
- 13524              	.LBB1524:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 13525              		.loc 2 667 0
- 13526 c916 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 13526      00000000 
- 13527 c91e F30F6F8D 		movdqu	-160(%rbp), %xmm1
- 13527      60FFFFFF 
- 13528 c926 F30F7F4D 		movdqu	%xmm1, -128(%rbp)
- 13528      80
- 13529 c92b F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 13529      70FFFFFF 
- 13530              	.LBB1525:
- 13531              	.LBB1526:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 13532              		.loc 2 380 0
- 13533 c933 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 13533      80
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 429
-
-
- 13534 c938 F30F7F85 		movdqu	%xmm0, -4080(%rbp)
- 13534      10F0FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 13535              		.loc 2 381 0
- 13536 c940 F30F6F85 		movdqu	-144(%rbp), %xmm0
- 13536      70FFFFFF 
- 13537 c948 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 13537      00F0FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 13538              		.loc 2 383 0
- 13539 c950 C7459C00 		movl	$0, -100(%rbp)
- 13539      000000
- 13540 c957 EB4D     		jmp	.L312
- 13541              	.L315:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 13542              		.loc 2 385 0
- 13543 c959 8B459C   		movl	-100(%rbp), %eax
- 13544 c95c 89C0     		mov	%eax, %eax
- 13545 c95e 0FB68405 		movzbl	-4096(%rbp,%rax), %eax
- 13545      00F0FFFF 
- 13546 c966 84C0     		testb	%al, %al
- 13547 c968 790F     		jns	.L313
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 13548              		.loc 2 386 0
- 13549 c96a 8B459C   		movl	-100(%rbp), %eax
- 13550 c96d 89C0     		mov	%eax, %eax
- 13551 c96f C6840520 		movb	$0, -4064(%rbp,%rax)
- 13551      F0FFFF00 
- 13552 c977 EB29     		jmp	.L314
- 13553              	.L313:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 13554              		.loc 2 388 0
- 13555 c979 8B4D9C   		movl	-100(%rbp), %ecx
- 13556 c97c 8B459C   		movl	-100(%rbp), %eax
- 13557 c97f 89C0     		mov	%eax, %eax
- 13558 c981 0FB68405 		movzbl	-4096(%rbp,%rax), %eax
- 13558      00F0FFFF 
- 13559 c989 0FB6C0   		movzbl	%al, %eax
- 13560 c98c 83E00F   		andl	$15, %eax
- 13561 c98f 4898     		cltq
- 13562 c991 0FB69405 		movzbl	-4080(%rbp,%rax), %edx
- 13562      10F0FFFF 
- 13563 c999 89C8     		mov	%ecx, %eax
- 13564 c99b 88940520 		movb	%dl, -4064(%rbp,%rax)
- 13564      F0FFFF
- 13565              	.L314:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 13566              		.loc 2 383 0
- 13567 c9a2 83459C01 		addl	$1, -100(%rbp)
- 13568              	.L312:
- 13569 c9a6 837D9C0F 		cmpl	$15, -100(%rbp)
- 13570 c9aa 76AD     		jbe	.L315
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 13571              		.loc 2 391 0
- 13572 c9ac F30F6F85 		movdqu	-4064(%rbp), %xmm0
- 13572      20F0FFFF 
- 13573              	.LBE1526:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 430
-
-
- 13574              	.LBE1525:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 13575              		.loc 2 667 0
- 13576 c9b4 F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 13576      60FFFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13577              		.loc 2 668 0
- 13578 c9bc F30F6F85 		movdqu	-160(%rbp), %xmm0
- 13578      60FFFFFF 
- 13579              	.LBE1524:
- 13580              	.LBE1523:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 13581              		.loc 2 1684 0
- 13582 c9c4 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 13582      50E7FFFF 
- 13583              	.LBB1527:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 13584              		.loc 2 1685 0
- 13585 c9cc 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13585      50E7FFFF 
- 13586 c9d4 F30F7F85 		movdqu	%xmm0, -4240(%rbp)
- 13586      70EFFFFF 
- 13587 c9dc E8000000 		call	KDbgWriterGet at PLT
- 13587      00
- 13588 c9e1 4885C0   		testq	%rax, %rax
- 13589 c9e4 7479     		je	.L317
- 13590 c9e6 BF010000 		movl	$1, %edi
- 13590      00
- 13591 c9eb E8000000 		call	KDbgCondToFlag at PLT
- 13591      00
- 13592 c9f0 4889C6   		movq	%rax, %rsi
- 13593 c9f3 BF100000 		movl	$16, %edi
- 13593      00
- 13594 c9f8 E8000000 		call	KDbgTestModConds at PLT
- 13594      00
- 13595 c9fd 84C0     		testb	%al, %al
- 13596 c9ff 745E     		je	.L317
- 13597 ca01 8B857CEF 		movl	-4228(%rbp), %eax
- 13597      FFFF
- 13598 ca07 89C7     		movl	%eax, %edi
- 13599 ca09 E8F235FF 		call	bswap_32
- 13599      FF
- 13600 ca0e 4189C5   		movl	%eax, %r13d
- 13601 ca11 8B8578EF 		movl	-4232(%rbp), %eax
- 13601      FFFF
- 13602 ca17 89C7     		movl	%eax, %edi
- 13603 ca19 E8E235FF 		call	bswap_32
- 13603      FF
- 13604 ca1e 4189C4   		movl	%eax, %r12d
- 13605 ca21 8B8574EF 		movl	-4236(%rbp), %eax
- 13605      FFFF
- 13606 ca27 89C7     		movl	%eax, %edi
- 13607 ca29 E8D235FF 		call	bswap_32
- 13607      FF
- 13608 ca2e 89C3     		movl	%eax, %ebx
- 13609 ca30 8B8570EF 		movl	-4240(%rbp), %eax
- 13609      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 431
-
-
- 13610 ca36 89C7     		movl	%eax, %edi
- 13611 ca38 E8C335FF 		call	bswap_32
- 13611      FF
- 13612 ca3d 4589E9   		movl	%r13d, %r9d
- 13613 ca40 4589E0   		movl	%r12d, %r8d
- 13614 ca43 89D9     		movl	%ebx, %ecx
- 13615 ca45 89C2     		movl	%eax, %edx
- 13616 ca47 488D3500 		leaq	.LC2(%rip), %rsi
- 13616      000000
- 13617 ca4e 488D3D00 		leaq	.LC1(%rip), %rdi
- 13617      000000
- 13618 ca55 B8000000 		movl	$0, %eax
- 13618      00
- 13619 ca5a E8000000 		call	KDbgMsg at PLT
- 13619      00
- 13620              	.L317:
- 13621 ca5f 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13621      50E7FFFF 
- 13622 ca67 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 13622      B0
- 13623 ca6c 660F6F85 		movdqa	-6304(%rbp), %xmm0
- 13623      60E7FFFF 
- 13624 ca74 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 13624      A0
- 13625              	.LBE1527:
- 13626              	.LBB1528:
- 13627              	.LBB1529:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 13628              		.loc 2 178 0
- 13629 ca79 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 13629      A0
- 13630 ca7e F30F6F4D 		movdqu	-80(%rbp), %xmm1
- 13630      B0
- 13631 ca83 660FEFC1 		pxor	%xmm1, %xmm0
- 13632              	.LBE1529:
- 13633              	.LBE1528:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 13634              		.loc 2 1686 0
- 13635 ca87 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 13635      50E7FFFF 
- 13636              	.LBB1530:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 13637              		.loc 2 1687 0
- 13638 ca8f 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13638      50E7FFFF 
- 13639 ca97 F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 13639      60EFFFFF 
- 13640 ca9f E8000000 		call	KDbgWriterGet at PLT
- 13640      00
- 13641 caa4 4885C0   		testq	%rax, %rax
- 13642 caa7 7479     		je	.L319
- 13643 caa9 BF010000 		movl	$1, %edi
- 13643      00
- 13644 caae E8000000 		call	KDbgCondToFlag at PLT
- 13644      00
- 13645 cab3 4889C6   		movq	%rax, %rsi
- 13646 cab6 BF100000 		movl	$16, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 432
-
-
- 13646      00
- 13647 cabb E8000000 		call	KDbgTestModConds at PLT
- 13647      00
- 13648 cac0 84C0     		testb	%al, %al
- 13649 cac2 745E     		je	.L319
- 13650 cac4 8B856CEF 		movl	-4244(%rbp), %eax
- 13650      FFFF
- 13651 caca 89C7     		movl	%eax, %edi
- 13652 cacc E82F35FF 		call	bswap_32
- 13652      FF
- 13653 cad1 4189C5   		movl	%eax, %r13d
- 13654 cad4 8B8568EF 		movl	-4248(%rbp), %eax
- 13654      FFFF
- 13655 cada 89C7     		movl	%eax, %edi
- 13656 cadc E81F35FF 		call	bswap_32
- 13656      FF
- 13657 cae1 4189C4   		movl	%eax, %r12d
- 13658 cae4 8B8564EF 		movl	-4252(%rbp), %eax
- 13658      FFFF
- 13659 caea 89C7     		movl	%eax, %edi
- 13660 caec E80F35FF 		call	bswap_32
- 13660      FF
- 13661 caf1 89C3     		movl	%eax, %ebx
- 13662 caf3 8B8560EF 		movl	-4256(%rbp), %eax
- 13662      FFFF
- 13663 caf9 89C7     		movl	%eax, %edi
- 13664 cafb E80035FF 		call	bswap_32
- 13664      FF
- 13665 cb00 4589E9   		movl	%r13d, %r9d
- 13666 cb03 4589E0   		movl	%r12d, %r8d
- 13667 cb06 89D9     		movl	%ebx, %ecx
- 13668 cb08 89C2     		movl	%eax, %edx
- 13669 cb0a 488D3500 		leaq	.LC3(%rip), %rsi
- 13669      000000
- 13670 cb11 488D3D00 		leaq	.LC1(%rip), %rdi
- 13670      000000
- 13671 cb18 B8000000 		movl	$0, %eax
- 13671      00
- 13672 cb1d E8000000 		call	KDbgMsg at PLT
- 13672      00
- 13673              	.L319:
- 13674 cb22 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13674      50E7FFFF 
- 13675 cb2a F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 13675      C0
- 13676              	.LBE1530:
- 13677              	.LBB1531:
- 13678              	.LBB1532:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 13679              		.loc 2 1357 0
- 13680 cb2f F30F6F45 		movdqu	-64(%rbp), %xmm0
- 13680      C0
- 13681 cb34 F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 13681      30F0FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 13682              		.loc 2 1358 0
- 13683 cb3c 8B853CF0 		movl	-4036(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 433
-
-
- 13683      FFFF
- 13684 cb42 898538F0 		movl	%eax, -4040(%rbp)
- 13684      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 13685              		.loc 2 1359 0
- 13686 cb48 8B853CF0 		movl	-4036(%rbp), %eax
- 13686      FFFF
- 13687 cb4e 898534F0 		movl	%eax, -4044(%rbp)
- 13687      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 13688              		.loc 2 1360 0
- 13689 cb54 8B853CF0 		movl	-4036(%rbp), %eax
- 13689      FFFF
- 13690 cb5a 898530F0 		movl	%eax, -4048(%rbp)
- 13690      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 13691              		.loc 2 1361 0
- 13692 cb60 F30F6F85 		movdqu	-4048(%rbp), %xmm0
- 13692      30F0FFFF 
- 13693              	.LBE1532:
- 13694              	.LBE1531:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 13695              		.loc 2 1688 0
- 13696 cb68 660F7F85 		movdqa	%xmm0, -6320(%rbp)
- 13696      50E7FFFF 
- 13697              	.LBB1533:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 13698              		.loc 2 1689 0
- 13699 cb70 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13699      50E7FFFF 
- 13700 cb78 F30F7F85 		movdqu	%xmm0, -4272(%rbp)
- 13700      50EFFFFF 
- 13701 cb80 E8000000 		call	KDbgWriterGet at PLT
- 13701      00
- 13702 cb85 4885C0   		testq	%rax, %rax
- 13703 cb88 7479     		je	.L321
- 13704 cb8a BF010000 		movl	$1, %edi
- 13704      00
- 13705 cb8f E8000000 		call	KDbgCondToFlag at PLT
- 13705      00
- 13706 cb94 4889C6   		movq	%rax, %rsi
- 13707 cb97 BF100000 		movl	$16, %edi
- 13707      00
- 13708 cb9c E8000000 		call	KDbgTestModConds at PLT
- 13708      00
- 13709 cba1 84C0     		testb	%al, %al
- 13710 cba3 745E     		je	.L321
- 13711 cba5 8B855CEF 		movl	-4260(%rbp), %eax
- 13711      FFFF
- 13712 cbab 89C7     		movl	%eax, %edi
- 13713 cbad E84E34FF 		call	bswap_32
- 13713      FF
- 13714 cbb2 4189C5   		movl	%eax, %r13d
- 13715 cbb5 8B8558EF 		movl	-4264(%rbp), %eax
- 13715      FFFF
- 13716 cbbb 89C7     		movl	%eax, %edi
- 13717 cbbd E83E34FF 		call	bswap_32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 434
-
-
- 13717      FF
- 13718 cbc2 4189C4   		movl	%eax, %r12d
- 13719 cbc5 8B8554EF 		movl	-4268(%rbp), %eax
- 13719      FFFF
- 13720 cbcb 89C7     		movl	%eax, %edi
- 13721 cbcd E82E34FF 		call	bswap_32
- 13721      FF
- 13722 cbd2 89C3     		movl	%eax, %ebx
- 13723 cbd4 8B8550EF 		movl	-4272(%rbp), %eax
- 13723      FFFF
- 13724 cbda 89C7     		movl	%eax, %edi
- 13725 cbdc E81F34FF 		call	bswap_32
- 13725      FF
- 13726 cbe1 4589E9   		movl	%r13d, %r9d
- 13727 cbe4 4589E0   		movl	%r12d, %r8d
- 13728 cbe7 89D9     		movl	%ebx, %ecx
- 13729 cbe9 89C2     		movl	%eax, %edx
- 13730 cbeb 488D3500 		leaq	.LC4(%rip), %rsi
- 13730      000000
- 13731 cbf2 488D3D00 		leaq	.LC1(%rip), %rdi
- 13731      000000
- 13732 cbf9 B8000000 		movl	$0, %eax
- 13732      00
- 13733 cbfe E8000000 		call	KDbgMsg at PLT
- 13733      00
- 13734              	.L321:
- 13735              	.LBE1533:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 13736              		.loc 2 1690 0
- 13737 cc03 660F6F85 		movdqa	-6320(%rbp), %xmm0
- 13737      50E7FFFF 
- 13738              	.LBE1499:
- 13739              	.LBE1498:
-1883:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 13740              		.loc 2 1883 0
- 13741 cc0b 660F7F85 		movdqa	%xmm0, -6720(%rbp)
- 13741      C0E5FFFF 
-1885:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k48   : k49   : k50    : k51          */
- 13742              		.loc 2 1885 0
- 13743 cc13 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 13743      70E5FFFF 
- 13744 cc1b 660FEF85 		pxor	-6720(%rbp), %xmm0
- 13744      C0E5FFFF 
- 13745 cc23 660F7F85 		movdqa	%xmm0, -6800(%rbp)
- 13745      70E5FFFF 
-1886:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[12] = v0;                           /* K48:K49:K50:K51 */
- 13746              		.loc 2 1886 0
- 13747 cc2b 488B8588 		movq	-6264(%rbp), %rax
- 13747      E7FFFF
- 13748 cc32 4805C000 		addq	$192, %rax
- 13748      0000
- 13749 cc38 660F6F85 		movdqa	-6800(%rbp), %xmm0
- 13749      70E5FFFF 
- 13750 cc40 660F7F00 		movdqa	%xmm0, (%rax)
-1887:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 13751              		.loc 2 1887 0
- 13752 cc44 4881C4B8 		addq	$6840, %rsp
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 435
-
-
- 13752      1A0000
- 13753 cc4b 5B       		popq	%rbx
- 13754 cc4c 415C     		popq	%r12
- 13755 cc4e 415D     		popq	%r13
- 13756 cc50 415E     		popq	%r14
- 13757 cc52 415F     		popq	%r15
- 13758 cc54 C9       		leave
- 13759 cc55 C3       		ret
- 13760              		.cfi_endproc
- 13761              	.LFE564:
- 13762              		.size	KAESBlockCipherVecKeyExpansion192, .-KAESBlockCipherVecKeyExpansion192
- 13763              		.type	KAESBlockCipherVecKeyExpansion256, @function
- 13764              	KAESBlockCipherVecKeyExpansion256:
- 13765              	.LFB565:
-1904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 13766              		.loc 2 1904 0
- 13767              		.cfi_startproc
- 13768 cc56 55       		pushq	%rbp
- 13769              	.LCFI6:
- 13770              		.cfi_def_cfa_offset 16
- 13771 cc57 4889E5   		movq	%rsp, %rbp
- 13772              		.cfi_offset 6, -16
- 13773              	.LCFI7:
- 13774              		.cfi_def_cfa_register 6
- 13775 cc5a 4157     		pushq	%r15
- 13776 cc5c 4156     		pushq	%r14
- 13777 cc5e 4155     		pushq	%r13
- 13778 cc60 4154     		pushq	%r12
- 13779 cc62 53       		pushq	%rbx
- 13780 cc63 4881ECA8 		subq	$8872, %rsp
- 13780      220000
- 13781 cc6a 4889BDD8 		movq	%rdi, -8232(%rbp)
- 13781      DFFFFF
- 13782 cc71 4889B5D0 		movq	%rsi, -8240(%rbp)
- 13782      DFFFFF
-1904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 13783              		.loc 2 1904 0
- 13784 cc78 488B85D0 		movq	-8240(%rbp), %rax
- 13784      DFFFFF
- 13785 cc7f 488985F8 		movq	%rax, -5640(%rbp)
- 13785      E9FFFF
- 13786              	.LBB1944:
- 13787              	.LBB1945:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 13788              		.loc 2 134 0
- 13789 cc86 488B8DF8 		movq	-5640(%rbp), %rcx
- 13789      E9FFFF
- 13790 cc8d 488D85E0 		leaq	-8224(%rbp), %rax
- 13790      DFFFFF
- 13791 cc94 BA100000 		movl	$16, %edx
- 13791      00
- 13792 cc99 4889CE   		movq	%rcx, %rsi
- 13793 cc9c 4889C7   		movq	%rax, %rdi
- 13794              		.cfi_offset 3, -56
- 13795              		.cfi_offset 12, -48
- 13796              		.cfi_offset 13, -40
- 13797              		.cfi_offset 14, -32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 436
-
-
- 13798              		.cfi_offset 15, -24
- 13799 cc9f E8000000 		call	memmove at PLT
- 13799      00
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 13800              		.loc 2 135 0
- 13801 cca4 F30F6F85 		movdqu	-8224(%rbp), %xmm0
- 13801      E0DFFFFF 
- 13802              	.LBE1945:
- 13803              	.LBE1944:
-1908:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 = AESBCMEMBER (StateIn) (key);
- 13804              		.loc 2 1908 0
- 13805 ccac F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 13805      C0E9FFFF 
-1909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 = AESBCMEMBER (StateIn) (key + sizeof v0);
- 13806              		.loc 2 1909 0
- 13807 ccb4 488B85D0 		movq	-8240(%rbp), %rax
- 13807      DFFFFF
- 13808 ccbb 4883C010 		addq	$16, %rax
- 13809 ccbf 48898500 		movq	%rax, -5632(%rbp)
- 13809      EAFFFF
- 13810              	.LBB1946:
- 13811              	.LBB1947:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 13812              		.loc 2 134 0
- 13813 ccc6 488B8D00 		movq	-5632(%rbp), %rcx
- 13813      EAFFFF
- 13814 cccd 488D85F0 		leaq	-8208(%rbp), %rax
- 13814      DFFFFF
- 13815 ccd4 BA100000 		movl	$16, %edx
- 13815      00
- 13816 ccd9 4889CE   		movq	%rcx, %rsi
- 13817 ccdc 4889C7   		movq	%rax, %rdi
- 13818 ccdf E8000000 		call	memmove at PLT
- 13818      00
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 13819              		.loc 2 135 0
- 13820 cce4 F30F6F85 		movdqu	-8208(%rbp), %xmm0
- 13820      F0DFFFFF 
- 13821              	.LBE1947:
- 13822              	.LBE1946:
-1909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 = AESBCMEMBER (StateIn) (key + sizeof v0);
- 13823              		.loc 2 1909 0
- 13824 ccec F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 13824      D0E9FFFF 
-1911:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* k0  : k1  : k2  : k3  */
- 13825              		.loc 2 1911 0
- 13826 ccf4 488B85D8 		movq	-8232(%rbp), %rax
- 13826      DFFFFF
- 13827 ccfb F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 13827      C0E9FFFF 
- 13828 cd03 F30F7F00 		movdqu	%xmm0, (%rax)
-1912:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* k4  : k5  : k6  : k7  */
- 13829              		.loc 2 1912 0
- 13830 cd07 488B85D8 		movq	-8232(%rbp), %rax
- 13830      DFFFFF
- 13831 cd0e 4883C010 		addq	$16, %rax
- 13832 cd12 F30F6F85 		movdqu	-5680(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 437
-
-
- 13832      D0E9FFFF 
- 13833 cd1a F30F7F00 		movdqu	%xmm0, (%rax)
- 13834 cd1e F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 13834      D0E9FFFF 
- 13835 cd26 F30F7F85 		movdqu	%xmm0, -5616(%rbp)
- 13835      10EAFFFF 
- 13836              	.LBB1948:
- 13837              	.LBB1949:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13838              		.loc 2 1681 0
- 13839 cd2e B8010000 		movl	$1, %eax
- 13839      00
- 13840 cd33 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13840      00000000 
- 13841 cd3b F30F7F85 		movdqu	%xmm0, -5584(%rbp)
- 13841      30EAFFFF 
- 13842 cd43 89852CEA 		movl	%eax, -5588(%rbp)
- 13842      FFFF
- 13843              	.LBB1950:
- 13844              	.LBB1951:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 13845              		.loc 2 522 0
- 13846 cd49 F30F6F85 		movdqu	-5584(%rbp), %xmm0
- 13846      30EAFFFF 
- 13847 cd51 F30F7F85 		movdqu	%xmm0, -8128(%rbp)
- 13847      40E0FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 13848              		.loc 2 523 0
- 13849 cd59 B8030000 		movl	$3, %eax
- 13849      00
- 13850 cd5e 4898     		cltq
- 13851 cd60 8B952CEA 		movl	-5588(%rbp), %edx
- 13851      FFFF
- 13852 cd66 89948540 		movl	%edx, -8128(%rbp,%rax,4)
- 13852      E0FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 13853              		.loc 2 524 0
- 13854 cd6d F30F6F85 		movdqu	-8128(%rbp), %xmm0
- 13854      40E0FFFF 
- 13855 cd75 F30F7F85 		movdqu	%xmm0, -5584(%rbp)
- 13855      30EAFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13856              		.loc 2 526 0
- 13857 cd7d F30F6F85 		movdqu	-5584(%rbp), %xmm0
- 13857      30EAFFFF 
- 13858              	.LBE1951:
- 13859              	.LBE1950:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13860              		.loc 2 1681 0
- 13861 cd85 660F7F85 		movdqa	%xmm0, -8768(%rbp)
- 13861      C0DDFFFF 
- 13862 cd8d F30F6F85 		movdqu	-5616(%rbp), %xmm0
- 13862      10EAFFFF 
- 13863 cd95 F30F7F85 		movdqu	%xmm0, -5568(%rbp)
- 13863      40EAFFFF 
- 13864 cd9d F30F6F85 		movdqu	-5568(%rbp), %xmm0
- 13864      40EAFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 438
-
-
- 13865 cda5 F30F7F85 		movdqu	%xmm0, -5536(%rbp)
- 13865      60EAFFFF 
- 13866 cdad 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 13866      000000
- 13867 cdb4 48898558 		movq	%rax, -5544(%rbp)
- 13867      EAFFFF
- 13868              	.LBB1952:
- 13869              	.LBB1953:
- 13870              	.LBB1954:
- 13871              	.LBB1955:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 13872              		.loc 2 851 0
- 13873 cdbb 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13873      00000000 
- 13874 cdc3 F30F7F85 		movdqu	%xmm0, -5504(%rbp)
- 13874      80EAFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13875              		.loc 2 854 0
- 13876 cdcb 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 13876      00000000 
- 13877 cdd3 F30F6F8D 		movdqu	-5536(%rbp), %xmm1
- 13877      60EAFFFF 
- 13878 cddb F30F7F8D 		movdqu	%xmm1, -5424(%rbp)
- 13878      D0EAFFFF 
- 13879 cde3 F30F7F85 		movdqu	%xmm0, -5440(%rbp)
- 13879      C0EAFFFF 
- 13880              	.LBB1956:
- 13881              	.LBB1957:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 13882              		.loc 2 206 0
- 13883 cdeb F30F6F85 		movdqu	-5440(%rbp), %xmm0
- 13883      C0EAFFFF 
- 13884 cdf3 F30F6F8D 		movdqu	-5424(%rbp), %xmm1
- 13884      D0EAFFFF 
- 13885 cdfb 660FDBC1 		pand	%xmm1, %xmm0
- 13886              	.LBE1957:
- 13887              	.LBE1956:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13888              		.loc 2 854 0
- 13889 cdff F30F7F85 		movdqu	%xmm0, -5456(%rbp)
- 13889      B0EAFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 13890              		.loc 2 862 0
- 13891 ce07 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 13891      00000000 
- 13892 ce0f F30F6F8D 		movdqu	-5536(%rbp), %xmm1
- 13892      60EAFFFF 
- 13893 ce17 F30F7F8D 		movdqu	%xmm1, -5392(%rbp)
- 13893      F0EAFFFF 
- 13894 ce1f F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 13894      E0EAFFFF 
- 13895              	.LBB1958:
- 13896              		.loc 2 2642 0
- 13897 ce27 0FB685F0 		movzbl	-5392(%rbp), %eax
- 13897      EAFFFF
- 13898 ce2e 0FB695E0 		movzbl	-5408(%rbp), %edx
- 13898      EAFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 439
-
-
- 13899 ce35 0FB6C0   		movzbl	%al, %eax
- 13900 ce38 6689853E 		movw	%ax, -8898(%rbp)
- 13900      DDFFFF
- 13901 ce3f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13901      DDFFFF
- 13902 ce46 F6F2     		divb	%dl
- 13903 ce48 4189C7   		movl	%eax, %r15d
- 13904 ce4b 0FB685F1 		movzbl	-5391(%rbp), %eax
- 13904      EAFFFF
- 13905 ce52 0FB695E1 		movzbl	-5407(%rbp), %edx
- 13905      EAFFFF
- 13906 ce59 0FB6C0   		movzbl	%al, %eax
- 13907 ce5c 6689853E 		movw	%ax, -8898(%rbp)
- 13907      DDFFFF
- 13908 ce63 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13908      DDFFFF
- 13909 ce6a F6F2     		divb	%dl
- 13910 ce6c 8885DFDD 		movb	%al, -8737(%rbp)
- 13910      FFFF
- 13911 ce72 0FB685F2 		movzbl	-5390(%rbp), %eax
- 13911      EAFFFF
- 13912 ce79 0FB695E2 		movzbl	-5406(%rbp), %edx
- 13912      EAFFFF
- 13913 ce80 0FB6C0   		movzbl	%al, %eax
- 13914 ce83 6689853E 		movw	%ax, -8898(%rbp)
- 13914      DDFFFF
- 13915 ce8a 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13915      DDFFFF
- 13916 ce91 F6F2     		divb	%dl
- 13917 ce93 8885DEDD 		movb	%al, -8738(%rbp)
- 13917      FFFF
- 13918 ce99 0FB685F3 		movzbl	-5389(%rbp), %eax
- 13918      EAFFFF
- 13919 cea0 0FB695E3 		movzbl	-5405(%rbp), %edx
- 13919      EAFFFF
- 13920 cea7 0FB6C0   		movzbl	%al, %eax
- 13921 ceaa 6689853E 		movw	%ax, -8898(%rbp)
- 13921      DDFFFF
- 13922 ceb1 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13922      DDFFFF
- 13923 ceb8 F6F2     		divb	%dl
- 13924 ceba 8885DDDD 		movb	%al, -8739(%rbp)
- 13924      FFFF
- 13925 cec0 0FB685F4 		movzbl	-5388(%rbp), %eax
- 13925      EAFFFF
- 13926 cec7 0FB695E4 		movzbl	-5404(%rbp), %edx
- 13926      EAFFFF
- 13927 cece 0FB6C0   		movzbl	%al, %eax
- 13928 ced1 6689853E 		movw	%ax, -8898(%rbp)
- 13928      DDFFFF
- 13929 ced8 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13929      DDFFFF
- 13930 cedf F6F2     		divb	%dl
- 13931 cee1 8885DCDD 		movb	%al, -8740(%rbp)
- 13931      FFFF
- 13932 cee7 0FB685F5 		movzbl	-5387(%rbp), %eax
- 13932      EAFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 440
-
-
- 13933 ceee 0FB695E5 		movzbl	-5403(%rbp), %edx
- 13933      EAFFFF
- 13934 cef5 0FB6C0   		movzbl	%al, %eax
- 13935 cef8 6689853E 		movw	%ax, -8898(%rbp)
- 13935      DDFFFF
- 13936 ceff 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13936      DDFFFF
- 13937 cf06 F6F2     		divb	%dl
- 13938 cf08 4189C1   		movl	%eax, %r9d
- 13939 cf0b 0FB685F6 		movzbl	-5386(%rbp), %eax
- 13939      EAFFFF
- 13940 cf12 0FB695E6 		movzbl	-5402(%rbp), %edx
- 13940      EAFFFF
- 13941 cf19 0FB6C0   		movzbl	%al, %eax
- 13942 cf1c 6689853E 		movw	%ax, -8898(%rbp)
- 13942      DDFFFF
- 13943 cf23 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13943      DDFFFF
- 13944 cf2a F6F2     		divb	%dl
- 13945 cf2c 89C7     		movl	%eax, %edi
- 13946 cf2e 0FB685F7 		movzbl	-5385(%rbp), %eax
- 13946      EAFFFF
- 13947 cf35 0FB695E7 		movzbl	-5401(%rbp), %edx
- 13947      EAFFFF
- 13948 cf3c 0FB6C0   		movzbl	%al, %eax
- 13949 cf3f 6689853E 		movw	%ax, -8898(%rbp)
- 13949      DDFFFF
- 13950 cf46 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13950      DDFFFF
- 13951 cf4d F6F2     		divb	%dl
- 13952 cf4f 89C3     		movl	%eax, %ebx
- 13953 cf51 0FB685F8 		movzbl	-5384(%rbp), %eax
- 13953      EAFFFF
- 13954 cf58 0FB695E8 		movzbl	-5400(%rbp), %edx
- 13954      EAFFFF
- 13955 cf5f 0FB6C0   		movzbl	%al, %eax
- 13956 cf62 6689853E 		movw	%ax, -8898(%rbp)
- 13956      DDFFFF
- 13957 cf69 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13957      DDFFFF
- 13958 cf70 F6F2     		divb	%dl
- 13959 cf72 4189C2   		movl	%eax, %r10d
- 13960 cf75 0FB685F9 		movzbl	-5383(%rbp), %eax
- 13960      EAFFFF
- 13961 cf7c 0FB695E9 		movzbl	-5399(%rbp), %edx
- 13961      EAFFFF
- 13962 cf83 0FB6C0   		movzbl	%al, %eax
- 13963 cf86 6689853E 		movw	%ax, -8898(%rbp)
- 13963      DDFFFF
- 13964 cf8d 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13964      DDFFFF
- 13965 cf94 F6F2     		divb	%dl
- 13966 cf96 4189C3   		movl	%eax, %r11d
- 13967 cf99 0FB685FA 		movzbl	-5382(%rbp), %eax
- 13967      EAFFFF
- 13968 cfa0 0FB695EA 		movzbl	-5398(%rbp), %edx
- 13968      EAFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 441
-
-
- 13969 cfa7 0FB6C0   		movzbl	%al, %eax
- 13970 cfaa 6689853E 		movw	%ax, -8898(%rbp)
- 13970      DDFFFF
- 13971 cfb1 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13971      DDFFFF
- 13972 cfb8 F6F2     		divb	%dl
- 13973 cfba 4189C4   		movl	%eax, %r12d
- 13974 cfbd 0FB685FB 		movzbl	-5381(%rbp), %eax
- 13974      EAFFFF
- 13975 cfc4 0FB695EB 		movzbl	-5397(%rbp), %edx
- 13975      EAFFFF
- 13976 cfcb 0FB6C0   		movzbl	%al, %eax
- 13977 cfce 6689853E 		movw	%ax, -8898(%rbp)
- 13977      DDFFFF
- 13978 cfd5 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13978      DDFFFF
- 13979 cfdc F6F2     		divb	%dl
- 13980 cfde 4189C5   		movl	%eax, %r13d
- 13981 cfe1 0FB685FC 		movzbl	-5380(%rbp), %eax
- 13981      EAFFFF
- 13982 cfe8 0FB695EC 		movzbl	-5396(%rbp), %edx
- 13982      EAFFFF
- 13983 cfef 0FB6C0   		movzbl	%al, %eax
- 13984 cff2 6689853E 		movw	%ax, -8898(%rbp)
- 13984      DDFFFF
- 13985 cff9 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13985      DDFFFF
- 13986 d000 F6F2     		divb	%dl
- 13987 d002 4189C6   		movl	%eax, %r14d
- 13988 d005 0FB685FD 		movzbl	-5379(%rbp), %eax
- 13988      EAFFFF
- 13989 d00c 0FB695ED 		movzbl	-5395(%rbp), %edx
- 13989      EAFFFF
- 13990 d013 0FB6C0   		movzbl	%al, %eax
- 13991 d016 6689853E 		movw	%ax, -8898(%rbp)
- 13991      DDFFFF
- 13992 d01d 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13992      DDFFFF
- 13993 d024 F6F2     		divb	%dl
- 13994 d026 4189C0   		movl	%eax, %r8d
- 13995 d029 0FB685FE 		movzbl	-5378(%rbp), %eax
- 13995      EAFFFF
- 13996 d030 0FB695EE 		movzbl	-5394(%rbp), %edx
- 13996      EAFFFF
- 13997 d037 0FB6C0   		movzbl	%al, %eax
- 13998 d03a 6689853E 		movw	%ax, -8898(%rbp)
- 13998      DDFFFF
- 13999 d041 0FB7853E 		movzwl	-8898(%rbp), %eax
- 13999      DDFFFF
- 14000 d048 F6F2     		divb	%dl
- 14001 d04a 89C6     		movl	%eax, %esi
- 14002 d04c 0FB685FF 		movzbl	-5377(%rbp), %eax
- 14002      EAFFFF
- 14003 d053 0FB695EF 		movzbl	-5393(%rbp), %edx
- 14003      EAFFFF
- 14004 d05a 0FB6C0   		movzbl	%al, %eax
- 14005 d05d 6689853E 		movw	%ax, -8898(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 442
-
-
- 14005      DDFFFF
- 14006 d064 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14006      DDFFFF
- 14007 d06b F6F2     		divb	%dl
- 14008 d06d 89C1     		movl	%eax, %ecx
- 14009              	.LBB1959:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 14010              		.loc 2 346 0
- 14011 d06f 0FB6D3   		movzbl	%bl, %edx
- 14012 d072 400FB6C7 		movzbl	%dil, %eax
- 14013 d076 48C1E208 		salq	$8, %rdx
- 14014 d07a 4809C2   		orq	%rax, %rdx
- 14015 d07d 410FB6C1 		movzbl	%r9b, %eax
- 14016 d081 48C1E208 		salq	$8, %rdx
- 14017 d085 4809C2   		orq	%rax, %rdx
- 14018 d088 0FB685DC 		movzbl	-8740(%rbp), %eax
- 14018      DDFFFF
- 14019 d08f 48C1E208 		salq	$8, %rdx
- 14020 d093 4809C2   		orq	%rax, %rdx
- 14021 d096 0FB685DD 		movzbl	-8739(%rbp), %eax
- 14021      DDFFFF
- 14022 d09d 48C1E208 		salq	$8, %rdx
- 14023 d0a1 4809C2   		orq	%rax, %rdx
- 14024 d0a4 0FB685DE 		movzbl	-8738(%rbp), %eax
- 14024      DDFFFF
- 14025 d0ab 48C1E208 		salq	$8, %rdx
- 14026 d0af 4809C2   		orq	%rax, %rdx
- 14027 d0b2 0FB685DF 		movzbl	-8737(%rbp), %eax
- 14027      DDFFFF
- 14028 d0b9 48C1E208 		salq	$8, %rdx
- 14029 d0bd 4809C2   		orq	%rax, %rdx
- 14030 d0c0 410FB6C7 		movzbl	%r15b, %eax
- 14031 d0c4 48C1E208 		salq	$8, %rdx
- 14032 d0c8 4809C2   		orq	%rax, %rdx
- 14033 d0cb 0FB6C1   		movzbl	%cl, %eax
- 14034 d0ce 400FB6CE 		movzbl	%sil, %ecx
- 14035 d0d2 48C1E008 		salq	$8, %rax
- 14036 d0d6 4809C8   		orq	%rcx, %rax
- 14037 d0d9 410FB6C8 		movzbl	%r8b, %ecx
- 14038 d0dd 48C1E008 		salq	$8, %rax
- 14039 d0e1 4809C8   		orq	%rcx, %rax
- 14040 d0e4 410FB6CE 		movzbl	%r14b, %ecx
- 14041 d0e8 48C1E008 		salq	$8, %rax
- 14042 d0ec 4809C8   		orq	%rcx, %rax
- 14043 d0ef 410FB6CD 		movzbl	%r13b, %ecx
- 14044 d0f3 48C1E008 		salq	$8, %rax
- 14045 d0f7 4809C8   		orq	%rcx, %rax
- 14046 d0fa 410FB6CC 		movzbl	%r12b, %ecx
- 14047 d0fe 48C1E008 		salq	$8, %rax
- 14048 d102 4809C8   		orq	%rcx, %rax
- 14049 d105 410FB6CB 		movzbl	%r11b, %ecx
- 14050 d109 48C1E008 		salq	$8, %rax
- 14051 d10d 4809C8   		orq	%rcx, %rax
- 14052 d110 410FB6CA 		movzbl	%r10b, %ecx
- 14053 d114 48C1E008 		salq	$8, %rax
- 14054 d118 4809C8   		orq	%rcx, %rax
- 14055 d11b 488995A0 		movq	%rdx, -8800(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 443
-
-
- 14055      DDFFFF
- 14056 d122 488985A8 		movq	%rax, -8792(%rbp)
- 14056      DDFFFF
- 14057 d129 660F6F85 		movdqa	-8800(%rbp), %xmm0
- 14057      A0DDFFFF 
- 14058              	.LBE1959:
- 14059              	.LBE1958:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 14060              		.loc 2 862 0
- 14061 d131 F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 14061      A0EAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 14062              		.loc 2 866 0
- 14063 d139 C7857CEA 		movl	$0, -5508(%rbp)
- 14063      FFFF0000 
- 14063      0000
- 14064 d143 E9860200 		jmp	.L324
- 14064      00
- 14065              	.L333:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 14066              		.loc 2 868 0
- 14067 d148 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 14067      00000000 
- 14068 d150 F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 14068      10EBFFFF 
- 14069 d158 F30F6F85 		movdqu	-5472(%rbp), %xmm0
- 14069      A0EAFFFF 
- 14070 d160 F30F7F85 		movdqu	%xmm0, -5376(%rbp)
- 14070      00EBFFFF 
- 14071              	.LBB1960:
- 14072              	.LBB1961:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 14073              		.loc 2 380 0
- 14074 d168 F30F6F85 		movdqu	-5360(%rbp), %xmm0
- 14074      10EBFFFF 
- 14075 d170 F30F7F85 		movdqu	%xmm0, -8096(%rbp)
- 14075      60E0FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 14076              		.loc 2 381 0
- 14077 d178 F30F6F85 		movdqu	-5376(%rbp), %xmm0
- 14077      00EBFFFF 
- 14078 d180 F30F7F85 		movdqu	%xmm0, -8112(%rbp)
- 14078      50E0FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 14079              		.loc 2 383 0
- 14080 d188 C7852CEB 		movl	$0, -5332(%rbp)
- 14080      FFFF0000 
- 14080      0000
- 14081 d192 EB5C     		jmp	.L325
- 14082              	.L328:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 14083              		.loc 2 385 0
- 14084 d194 8B852CEB 		movl	-5332(%rbp), %eax
- 14084      FFFF
- 14085 d19a 89C0     		mov	%eax, %eax
- 14086 d19c 0FB68405 		movzbl	-8112(%rbp,%rax), %eax
- 14086      50E0FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 444
-
-
- 14087 d1a4 84C0     		testb	%al, %al
- 14088 d1a6 7912     		jns	.L326
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 14089              		.loc 2 386 0
- 14090 d1a8 8B852CEB 		movl	-5332(%rbp), %eax
- 14090      FFFF
- 14091 d1ae 89C0     		mov	%eax, %eax
- 14092 d1b0 C6840570 		movb	$0, -8080(%rbp,%rax)
- 14092      E0FFFF00 
- 14093 d1b8 EB2F     		jmp	.L327
- 14094              	.L326:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 14095              		.loc 2 388 0
- 14096 d1ba 8B8D2CEB 		movl	-5332(%rbp), %ecx
- 14096      FFFF
- 14097 d1c0 8B852CEB 		movl	-5332(%rbp), %eax
- 14097      FFFF
- 14098 d1c6 89C0     		mov	%eax, %eax
- 14099 d1c8 0FB68405 		movzbl	-8112(%rbp,%rax), %eax
- 14099      50E0FFFF 
- 14100 d1d0 0FB6C0   		movzbl	%al, %eax
- 14101 d1d3 83E00F   		andl	$15, %eax
- 14102 d1d6 4898     		cltq
- 14103 d1d8 0FB69405 		movzbl	-8096(%rbp,%rax), %edx
- 14103      60E0FFFF 
- 14104 d1e0 89C8     		mov	%ecx, %eax
- 14105 d1e2 88940570 		movb	%dl, -8080(%rbp,%rax)
- 14105      E0FFFF
- 14106              	.L327:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 14107              		.loc 2 383 0
- 14108 d1e9 83852CEB 		addl	$1, -5332(%rbp)
- 14108      FFFF01
- 14109              	.L325:
- 14110 d1f0 83BD2CEB 		cmpl	$15, -5332(%rbp)
- 14110      FFFF0F
- 14111 d1f7 769B     		jbe	.L328
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 14112              		.loc 2 391 0
- 14113 d1f9 F30F6F85 		movdqu	-8080(%rbp), %xmm0
- 14113      70E0FFFF 
- 14114              	.LBE1961:
- 14115              	.LBE1960:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 14116              		.loc 2 868 0
- 14117 d201 F30F7F85 		movdqu	%xmm0, -5488(%rbp)
- 14117      90EAFFFF 
- 14118 d209 F30F6F85 		movdqu	-5456(%rbp), %xmm0
- 14118      B0EAFFFF 
- 14119 d211 F30F7F85 		movdqu	%xmm0, -5312(%rbp)
- 14119      40EBFFFF 
- 14120 d219 F30F6F85 		movdqu	-5488(%rbp), %xmm0
- 14120      90EAFFFF 
- 14121 d221 F30F7F85 		movdqu	%xmm0, -5328(%rbp)
- 14121      30EBFFFF 
- 14122              	.LBB1962:
- 14123              	.LBB1963:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 445
-
-
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 14124              		.loc 2 234 0
- 14125 d229 F30F6F85 		movdqu	-5328(%rbp), %xmm0
- 14125      30EBFFFF 
- 14126 d231 F30F6F8D 		movdqu	-5312(%rbp), %xmm1
- 14126      40EBFFFF 
- 14127 d239 660FEBC1 		por	%xmm1, %xmm0
- 14128              	.LBE1963:
- 14129              	.LBE1962:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 14130              		.loc 2 870 0
- 14131 d23d F30F7F85 		movdqu	%xmm0, -5488(%rbp)
- 14131      90EAFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 14132              		.loc 2 872 0
- 14133 d245 8B857CEA 		mov	-5508(%rbp), %eax
- 14133      FFFF
- 14134 d24b 48C1E004 		salq	$4, %rax
- 14135 d24f 48038558 		addq	-5544(%rbp), %rax
- 14135      EAFFFF
- 14136 d256 660F6F00 		movdqa	(%rax), %xmm0
- 14137 d25a F30F7F85 		movdqu	%xmm0, -5280(%rbp)
- 14137      60EBFFFF 
- 14138 d262 F30F6F85 		movdqu	-5488(%rbp), %xmm0
- 14138      90EAFFFF 
- 14139 d26a F30F7F85 		movdqu	%xmm0, -5296(%rbp)
- 14139      50EBFFFF 
- 14140              	.LBB1964:
- 14141              	.LBB1965:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 14142              		.loc 2 380 0
- 14143 d272 F30F6F85 		movdqu	-5280(%rbp), %xmm0
- 14143      60EBFFFF 
- 14144 d27a F30F7F85 		movdqu	%xmm0, -8048(%rbp)
- 14144      90E0FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 14145              		.loc 2 381 0
- 14146 d282 F30F6F85 		movdqu	-5296(%rbp), %xmm0
- 14146      50EBFFFF 
- 14147 d28a F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 14147      80E0FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 14148              		.loc 2 383 0
- 14149 d292 C7857CEB 		movl	$0, -5252(%rbp)
- 14149      FFFF0000 
- 14149      0000
- 14150 d29c EB5C     		jmp	.L329
- 14151              	.L332:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 14152              		.loc 2 385 0
- 14153 d29e 8B857CEB 		movl	-5252(%rbp), %eax
- 14153      FFFF
- 14154 d2a4 89C0     		mov	%eax, %eax
- 14155 d2a6 0FB68405 		movzbl	-8064(%rbp,%rax), %eax
- 14155      80E0FFFF 
- 14156 d2ae 84C0     		testb	%al, %al
- 14157 d2b0 7912     		jns	.L330
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 446
-
-
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 14158              		.loc 2 386 0
- 14159 d2b2 8B857CEB 		movl	-5252(%rbp), %eax
- 14159      FFFF
- 14160 d2b8 89C0     		mov	%eax, %eax
- 14161 d2ba C68405A0 		movb	$0, -8032(%rbp,%rax)
- 14161      E0FFFF00 
- 14162 d2c2 EB2F     		jmp	.L331
- 14163              	.L330:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 14164              		.loc 2 388 0
- 14165 d2c4 8B8D7CEB 		movl	-5252(%rbp), %ecx
- 14165      FFFF
- 14166 d2ca 8B857CEB 		movl	-5252(%rbp), %eax
- 14166      FFFF
- 14167 d2d0 89C0     		mov	%eax, %eax
- 14168 d2d2 0FB68405 		movzbl	-8064(%rbp,%rax), %eax
- 14168      80E0FFFF 
- 14169 d2da 0FB6C0   		movzbl	%al, %eax
- 14170 d2dd 83E00F   		andl	$15, %eax
- 14171 d2e0 4898     		cltq
- 14172 d2e2 0FB69405 		movzbl	-8048(%rbp,%rax), %edx
- 14172      90E0FFFF 
- 14173 d2ea 89C8     		mov	%ecx, %eax
- 14174 d2ec 889405A0 		movb	%dl, -8032(%rbp,%rax)
- 14174      E0FFFF
- 14175              	.L331:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 14176              		.loc 2 383 0
- 14177 d2f3 83857CEB 		addl	$1, -5252(%rbp)
- 14177      FFFF01
- 14178              	.L329:
- 14179 d2fa 83BD7CEB 		cmpl	$15, -5252(%rbp)
- 14179      FFFF0F
- 14180 d301 769B     		jbe	.L332
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 14181              		.loc 2 391 0
- 14182 d303 F30F6F85 		movdqu	-8032(%rbp), %xmm0
- 14182      A0E0FFFF 
- 14183              	.LBE1965:
- 14184              	.LBE1964:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 14185              		.loc 2 872 0
- 14186 d30b F30F7F85 		movdqu	%xmm0, -5488(%rbp)
- 14186      90EAFFFF 
- 14187 d313 F30F6F85 		movdqu	-5504(%rbp), %xmm0
- 14187      80EAFFFF 
- 14188 d31b F30F7F85 		movdqu	%xmm0, -5232(%rbp)
- 14188      90EBFFFF 
- 14189 d323 F30F6F85 		movdqu	-5488(%rbp), %xmm0
- 14189      90EAFFFF 
- 14190 d32b F30F7F85 		movdqu	%xmm0, -5248(%rbp)
- 14190      80EBFFFF 
- 14191              	.LBB1966:
- 14192              	.LBB1967:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 14193              		.loc 2 234 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 447
-
-
- 14194 d333 F30F6F85 		movdqu	-5248(%rbp), %xmm0
- 14194      80EBFFFF 
- 14195 d33b F30F6F8D 		movdqu	-5232(%rbp), %xmm1
- 14195      90EBFFFF 
- 14196 d343 660FEBC1 		por	%xmm1, %xmm0
- 14197              	.LBE1967:
- 14198              	.LBE1966:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 14199              		.loc 2 874 0
- 14200 d347 F30F7F85 		movdqu	%xmm0, -5504(%rbp)
- 14200      80EAFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 14201              		.loc 2 876 0
- 14202 d34f 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 14202      00000000 
- 14203 d357 F30F6F8D 		movdqu	-5472(%rbp), %xmm1
- 14203      A0EAFFFF 
- 14204 d35f F30F7F8D 		movdqu	%xmm1, -5200(%rbp)
- 14204      B0EBFFFF 
- 14205 d367 F30F7F85 		movdqu	%xmm0, -5216(%rbp)
- 14205      A0EBFFFF 
- 14206              	.LBB1968:
- 14207              	.LBB1969:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 14208              		.loc 2 290 0
- 14209 d36f F30F6F8D 		movdqu	-5216(%rbp), %xmm1
- 14209      A0EBFFFF 
- 14210 d377 F30F6F85 		movdqu	-5200(%rbp), %xmm0
- 14210      B0EBFFFF 
- 14211 d37f 660FF8C1 		psubb	%xmm1, %xmm0
- 14212              	.LBE1969:
- 14213              	.LBE1968:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 14214              		.loc 2 876 0
- 14215 d383 F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 14215      A0EAFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14216              		.loc 2 878 0
- 14217 d38b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 14217      00000000 
- 14218 d393 F30F6F8D 		movdqu	-5472(%rbp), %xmm1
- 14218      A0EAFFFF 
- 14219 d39b F30F7F8D 		movdqu	%xmm1, -5168(%rbp)
- 14219      D0EBFFFF 
- 14220 d3a3 F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 14220      C0EBFFFF 
- 14221              	.LBB1970:
- 14222              	.LBB1971:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 14223              		.loc 2 206 0
- 14224 d3ab F30F6F85 		movdqu	-5184(%rbp), %xmm0
- 14224      C0EBFFFF 
- 14225 d3b3 F30F6F8D 		movdqu	-5168(%rbp), %xmm1
- 14225      D0EBFFFF 
- 14226 d3bb 660FDBC1 		pand	%xmm1, %xmm0
- 14227              	.LBE1971:
- 14228              	.LBE1970:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 448
-
-
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14229              		.loc 2 878 0
- 14230 d3bf F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 14230      A0EAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 14231              		.loc 2 866 0
- 14232 d3c7 83857CEA 		addl	$1, -5508(%rbp)
- 14232      FFFF01
- 14233              	.L324:
- 14234 d3ce 83BD7CEA 		cmpl	$15, -5508(%rbp)
- 14234      FFFF0F
- 14235 d3d5 0F866DFD 		jbe	.L333
- 14235      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 14236              		.loc 2 882 0
- 14237 d3db F30F6F85 		movdqu	-5504(%rbp), %xmm0
- 14237      80EAFFFF 
- 14238              	.LBE1955:
- 14239              	.LBE1954:
- 14240              	.LBE1953:
- 14241              	.LBE1952:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 14242              		.loc 2 1682 0
- 14243 d3e3 660F7F85 		movdqa	%xmm0, -8784(%rbp)
- 14243      B0DDFFFF 
- 14244              	.LBB1972:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 14245              		.loc 2 1683 0
- 14246 d3eb 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14246      B0DDFFFF 
- 14247 d3f3 F30F7F85 		movdqu	%xmm0, -8144(%rbp)
- 14247      30E0FFFF 
- 14248 d3fb E8000000 		call	KDbgWriterGet at PLT
- 14248      00
- 14249 d400 4885C0   		testq	%rax, %rax
- 14250 d403 7479     		je	.L335
- 14251 d405 BF010000 		movl	$1, %edi
- 14251      00
- 14252 d40a E8000000 		call	KDbgCondToFlag at PLT
- 14252      00
- 14253 d40f 4889C6   		movq	%rax, %rsi
- 14254 d412 BF100000 		movl	$16, %edi
- 14254      00
- 14255 d417 E8000000 		call	KDbgTestModConds at PLT
- 14255      00
- 14256 d41c 84C0     		testb	%al, %al
- 14257 d41e 745E     		je	.L335
- 14258 d420 8B853CE0 		movl	-8132(%rbp), %eax
- 14258      FFFF
- 14259 d426 89C7     		movl	%eax, %edi
- 14260 d428 E8D32BFF 		call	bswap_32
- 14260      FF
- 14261 d42d 4189C5   		movl	%eax, %r13d
- 14262 d430 8B8538E0 		movl	-8136(%rbp), %eax
- 14262      FFFF
- 14263 d436 89C7     		movl	%eax, %edi
- 14264 d438 E8C32BFF 		call	bswap_32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 449
-
-
- 14264      FF
- 14265 d43d 4189C4   		movl	%eax, %r12d
- 14266 d440 8B8534E0 		movl	-8140(%rbp), %eax
- 14266      FFFF
- 14267 d446 89C7     		movl	%eax, %edi
- 14268 d448 E8B32BFF 		call	bswap_32
- 14268      FF
- 14269 d44d 89C3     		movl	%eax, %ebx
- 14270 d44f 8B8530E0 		movl	-8144(%rbp), %eax
- 14270      FFFF
- 14271 d455 89C7     		movl	%eax, %edi
- 14272 d457 E8A42BFF 		call	bswap_32
- 14272      FF
- 14273 d45c 4589E9   		movl	%r13d, %r9d
- 14274 d45f 4589E0   		movl	%r12d, %r8d
- 14275 d462 89D9     		movl	%ebx, %ecx
- 14276 d464 89C2     		movl	%eax, %edx
- 14277 d466 488D3500 		leaq	.LC0(%rip), %rsi
- 14277      000000
- 14278 d46d 488D3D00 		leaq	.LC1(%rip), %rdi
- 14278      000000
- 14279 d474 B8000000 		movl	$0, %eax
- 14279      00
- 14280 d479 E8000000 		call	KDbgMsg at PLT
- 14280      00
- 14281              	.L335:
- 14282 d47e 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14282      B0DDFFFF 
- 14283 d486 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 14283      E0EBFFFF 
- 14284              	.LBE1972:
- 14285              	.LBB1973:
- 14286              	.LBB1974:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 14287              		.loc 2 667 0
- 14288 d48e 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 14288      00000000 
- 14289 d496 F30F6F8D 		movdqu	-5152(%rbp), %xmm1
- 14289      E0EBFFFF 
- 14290 d49e F30F7F8D 		movdqu	%xmm1, -5120(%rbp)
- 14290      00ECFFFF 
- 14291 d4a6 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 14291      F0EBFFFF 
- 14292              	.LBB1975:
- 14293              	.LBB1976:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 14294              		.loc 2 380 0
- 14295 d4ae F30F6F85 		movdqu	-5120(%rbp), %xmm0
- 14295      00ECFFFF 
- 14296 d4b6 F30F7F85 		movdqu	%xmm0, -8000(%rbp)
- 14296      C0E0FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 14297              		.loc 2 381 0
- 14298 d4be F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 14298      F0EBFFFF 
- 14299 d4c6 F30F7F85 		movdqu	%xmm0, -8016(%rbp)
- 14299      B0E0FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 450
-
-
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 14300              		.loc 2 383 0
- 14301 d4ce C7851CEC 		movl	$0, -5092(%rbp)
- 14301      FFFF0000 
- 14301      0000
- 14302 d4d8 EB5C     		jmp	.L336
- 14303              	.L339:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 14304              		.loc 2 385 0
- 14305 d4da 8B851CEC 		movl	-5092(%rbp), %eax
- 14305      FFFF
- 14306 d4e0 89C0     		mov	%eax, %eax
- 14307 d4e2 0FB68405 		movzbl	-8016(%rbp,%rax), %eax
- 14307      B0E0FFFF 
- 14308 d4ea 84C0     		testb	%al, %al
- 14309 d4ec 7912     		jns	.L337
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 14310              		.loc 2 386 0
- 14311 d4ee 8B851CEC 		movl	-5092(%rbp), %eax
- 14311      FFFF
- 14312 d4f4 89C0     		mov	%eax, %eax
- 14313 d4f6 C68405D0 		movb	$0, -7984(%rbp,%rax)
- 14313      E0FFFF00 
- 14314 d4fe EB2F     		jmp	.L338
- 14315              	.L337:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 14316              		.loc 2 388 0
- 14317 d500 8B8D1CEC 		movl	-5092(%rbp), %ecx
- 14317      FFFF
- 14318 d506 8B851CEC 		movl	-5092(%rbp), %eax
- 14318      FFFF
- 14319 d50c 89C0     		mov	%eax, %eax
- 14320 d50e 0FB68405 		movzbl	-8016(%rbp,%rax), %eax
- 14320      B0E0FFFF 
- 14321 d516 0FB6C0   		movzbl	%al, %eax
- 14322 d519 83E00F   		andl	$15, %eax
- 14323 d51c 4898     		cltq
- 14324 d51e 0FB69405 		movzbl	-8000(%rbp,%rax), %edx
- 14324      C0E0FFFF 
- 14325 d526 89C8     		mov	%ecx, %eax
- 14326 d528 889405D0 		movb	%dl, -7984(%rbp,%rax)
- 14326      E0FFFF
- 14327              	.L338:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 14328              		.loc 2 383 0
- 14329 d52f 83851CEC 		addl	$1, -5092(%rbp)
- 14329      FFFF01
- 14330              	.L336:
- 14331 d536 83BD1CEC 		cmpl	$15, -5092(%rbp)
- 14331      FFFF0F
- 14332 d53d 769B     		jbe	.L339
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 14333              		.loc 2 391 0
- 14334 d53f F30F6F85 		movdqu	-7984(%rbp), %xmm0
- 14334      D0E0FFFF 
- 14335              	.LBE1976:
- 14336              	.LBE1975:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 451
-
-
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 14337              		.loc 2 667 0
- 14338 d547 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 14338      E0EBFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14339              		.loc 2 668 0
- 14340 d54f F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 14340      E0EBFFFF 
- 14341              	.LBE1974:
- 14342              	.LBE1973:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 14343              		.loc 2 1684 0
- 14344 d557 660F7F85 		movdqa	%xmm0, -8784(%rbp)
- 14344      B0DDFFFF 
- 14345              	.LBB1977:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 14346              		.loc 2 1685 0
- 14347 d55f 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14347      B0DDFFFF 
- 14348 d567 F30F7F85 		movdqu	%xmm0, -8160(%rbp)
- 14348      20E0FFFF 
- 14349 d56f E8000000 		call	KDbgWriterGet at PLT
- 14349      00
- 14350 d574 4885C0   		testq	%rax, %rax
- 14351 d577 7479     		je	.L341
- 14352 d579 BF010000 		movl	$1, %edi
- 14352      00
- 14353 d57e E8000000 		call	KDbgCondToFlag at PLT
- 14353      00
- 14354 d583 4889C6   		movq	%rax, %rsi
- 14355 d586 BF100000 		movl	$16, %edi
- 14355      00
- 14356 d58b E8000000 		call	KDbgTestModConds at PLT
- 14356      00
- 14357 d590 84C0     		testb	%al, %al
- 14358 d592 745E     		je	.L341
- 14359 d594 8B852CE0 		movl	-8148(%rbp), %eax
- 14359      FFFF
- 14360 d59a 89C7     		movl	%eax, %edi
- 14361 d59c E85F2AFF 		call	bswap_32
- 14361      FF
- 14362 d5a1 4189C5   		movl	%eax, %r13d
- 14363 d5a4 8B8528E0 		movl	-8152(%rbp), %eax
- 14363      FFFF
- 14364 d5aa 89C7     		movl	%eax, %edi
- 14365 d5ac E84F2AFF 		call	bswap_32
- 14365      FF
- 14366 d5b1 4189C4   		movl	%eax, %r12d
- 14367 d5b4 8B8524E0 		movl	-8156(%rbp), %eax
- 14367      FFFF
- 14368 d5ba 89C7     		movl	%eax, %edi
- 14369 d5bc E83F2AFF 		call	bswap_32
- 14369      FF
- 14370 d5c1 89C3     		movl	%eax, %ebx
- 14371 d5c3 8B8520E0 		movl	-8160(%rbp), %eax
- 14371      FFFF
- 14372 d5c9 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 452
-
-
- 14373 d5cb E8302AFF 		call	bswap_32
- 14373      FF
- 14374 d5d0 4589E9   		movl	%r13d, %r9d
- 14375 d5d3 4589E0   		movl	%r12d, %r8d
- 14376 d5d6 89D9     		movl	%ebx, %ecx
- 14377 d5d8 89C2     		movl	%eax, %edx
- 14378 d5da 488D3500 		leaq	.LC2(%rip), %rsi
- 14378      000000
- 14379 d5e1 488D3D00 		leaq	.LC1(%rip), %rdi
- 14379      000000
- 14380 d5e8 B8000000 		movl	$0, %eax
- 14380      00
- 14381 d5ed E8000000 		call	KDbgMsg at PLT
- 14381      00
- 14382              	.L341:
- 14383 d5f2 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14383      B0DDFFFF 
- 14384 d5fa F30F7F85 		movdqu	%xmm0, -5072(%rbp)
- 14384      30ECFFFF 
- 14385 d602 660F6F85 		movdqa	-8768(%rbp), %xmm0
- 14385      C0DDFFFF 
- 14386 d60a F30F7F85 		movdqu	%xmm0, -5088(%rbp)
- 14386      20ECFFFF 
- 14387              	.LBE1977:
- 14388              	.LBB1978:
- 14389              	.LBB1979:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 14390              		.loc 2 178 0
- 14391 d612 F30F6F85 		movdqu	-5088(%rbp), %xmm0
- 14391      20ECFFFF 
- 14392 d61a F30F6F8D 		movdqu	-5072(%rbp), %xmm1
- 14392      30ECFFFF 
- 14393 d622 660FEFC1 		pxor	%xmm1, %xmm0
- 14394              	.LBE1979:
- 14395              	.LBE1978:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 14396              		.loc 2 1686 0
- 14397 d626 660F7F85 		movdqa	%xmm0, -8784(%rbp)
- 14397      B0DDFFFF 
- 14398              	.LBB1980:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 14399              		.loc 2 1687 0
- 14400 d62e 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14400      B0DDFFFF 
- 14401 d636 F30F7F85 		movdqu	%xmm0, -8176(%rbp)
- 14401      10E0FFFF 
- 14402 d63e E8000000 		call	KDbgWriterGet at PLT
- 14402      00
- 14403 d643 4885C0   		testq	%rax, %rax
- 14404 d646 7479     		je	.L343
- 14405 d648 BF010000 		movl	$1, %edi
- 14405      00
- 14406 d64d E8000000 		call	KDbgCondToFlag at PLT
- 14406      00
- 14407 d652 4889C6   		movq	%rax, %rsi
- 14408 d655 BF100000 		movl	$16, %edi
- 14408      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 453
-
-
- 14409 d65a E8000000 		call	KDbgTestModConds at PLT
- 14409      00
- 14410 d65f 84C0     		testb	%al, %al
- 14411 d661 745E     		je	.L343
- 14412 d663 8B851CE0 		movl	-8164(%rbp), %eax
- 14412      FFFF
- 14413 d669 89C7     		movl	%eax, %edi
- 14414 d66b E89029FF 		call	bswap_32
- 14414      FF
- 14415 d670 4189C5   		movl	%eax, %r13d
- 14416 d673 8B8518E0 		movl	-8168(%rbp), %eax
- 14416      FFFF
- 14417 d679 89C7     		movl	%eax, %edi
- 14418 d67b E88029FF 		call	bswap_32
- 14418      FF
- 14419 d680 4189C4   		movl	%eax, %r12d
- 14420 d683 8B8514E0 		movl	-8172(%rbp), %eax
- 14420      FFFF
- 14421 d689 89C7     		movl	%eax, %edi
- 14422 d68b E87029FF 		call	bswap_32
- 14422      FF
- 14423 d690 89C3     		movl	%eax, %ebx
- 14424 d692 8B8510E0 		movl	-8176(%rbp), %eax
- 14424      FFFF
- 14425 d698 89C7     		movl	%eax, %edi
- 14426 d69a E86129FF 		call	bswap_32
- 14426      FF
- 14427 d69f 4589E9   		movl	%r13d, %r9d
- 14428 d6a2 4589E0   		movl	%r12d, %r8d
- 14429 d6a5 89D9     		movl	%ebx, %ecx
- 14430 d6a7 89C2     		movl	%eax, %edx
- 14431 d6a9 488D3500 		leaq	.LC3(%rip), %rsi
- 14431      000000
- 14432 d6b0 488D3D00 		leaq	.LC1(%rip), %rdi
- 14432      000000
- 14433 d6b7 B8000000 		movl	$0, %eax
- 14433      00
- 14434 d6bc E8000000 		call	KDbgMsg at PLT
- 14434      00
- 14435              	.L343:
- 14436 d6c1 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14436      B0DDFFFF 
- 14437 d6c9 F30F7F85 		movdqu	%xmm0, -5056(%rbp)
- 14437      40ECFFFF 
- 14438              	.LBE1980:
- 14439              	.LBB1981:
- 14440              	.LBB1982:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 14441              		.loc 2 1357 0
- 14442 d6d1 F30F6F85 		movdqu	-5056(%rbp), %xmm0
- 14442      40ECFFFF 
- 14443 d6d9 F30F7F85 		movdqu	%xmm0, -7968(%rbp)
- 14443      E0E0FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 14444              		.loc 2 1358 0
- 14445 d6e1 8B85ECE0 		movl	-7956(%rbp), %eax
- 14445      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 454
-
-
- 14446 d6e7 8985E8E0 		movl	%eax, -7960(%rbp)
- 14446      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 14447              		.loc 2 1359 0
- 14448 d6ed 8B85ECE0 		movl	-7956(%rbp), %eax
- 14448      FFFF
- 14449 d6f3 8985E4E0 		movl	%eax, -7964(%rbp)
- 14449      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 14450              		.loc 2 1360 0
- 14451 d6f9 8B85ECE0 		movl	-7956(%rbp), %eax
- 14451      FFFF
- 14452 d6ff 8985E0E0 		movl	%eax, -7968(%rbp)
- 14452      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 14453              		.loc 2 1361 0
- 14454 d705 F30F6F85 		movdqu	-7968(%rbp), %xmm0
- 14454      E0E0FFFF 
- 14455              	.LBE1982:
- 14456              	.LBE1981:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 14457              		.loc 2 1688 0
- 14458 d70d 660F7F85 		movdqa	%xmm0, -8784(%rbp)
- 14458      B0DDFFFF 
- 14459              	.LBB1983:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 14460              		.loc 2 1689 0
- 14461 d715 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14461      B0DDFFFF 
- 14462 d71d F30F7F85 		movdqu	%xmm0, -8192(%rbp)
- 14462      00E0FFFF 
- 14463 d725 E8000000 		call	KDbgWriterGet at PLT
- 14463      00
- 14464 d72a 4885C0   		testq	%rax, %rax
- 14465 d72d 7479     		je	.L345
- 14466 d72f BF010000 		movl	$1, %edi
- 14466      00
- 14467 d734 E8000000 		call	KDbgCondToFlag at PLT
- 14467      00
- 14468 d739 4889C6   		movq	%rax, %rsi
- 14469 d73c BF100000 		movl	$16, %edi
- 14469      00
- 14470 d741 E8000000 		call	KDbgTestModConds at PLT
- 14470      00
- 14471 d746 84C0     		testb	%al, %al
- 14472 d748 745E     		je	.L345
- 14473 d74a 8B850CE0 		movl	-8180(%rbp), %eax
- 14473      FFFF
- 14474 d750 89C7     		movl	%eax, %edi
- 14475 d752 E8A928FF 		call	bswap_32
- 14475      FF
- 14476 d757 4189C5   		movl	%eax, %r13d
- 14477 d75a 8B8508E0 		movl	-8184(%rbp), %eax
- 14477      FFFF
- 14478 d760 89C7     		movl	%eax, %edi
- 14479 d762 E89928FF 		call	bswap_32
- 14479      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 455
-
-
- 14480 d767 4189C4   		movl	%eax, %r12d
- 14481 d76a 8B8504E0 		movl	-8188(%rbp), %eax
- 14481      FFFF
- 14482 d770 89C7     		movl	%eax, %edi
- 14483 d772 E88928FF 		call	bswap_32
- 14483      FF
- 14484 d777 89C3     		movl	%eax, %ebx
- 14485 d779 8B8500E0 		movl	-8192(%rbp), %eax
- 14485      FFFF
- 14486 d77f 89C7     		movl	%eax, %edi
- 14487 d781 E87A28FF 		call	bswap_32
- 14487      FF
- 14488 d786 4589E9   		movl	%r13d, %r9d
- 14489 d789 4589E0   		movl	%r12d, %r8d
- 14490 d78c 89D9     		movl	%ebx, %ecx
- 14491 d78e 89C2     		movl	%eax, %edx
- 14492 d790 488D3500 		leaq	.LC4(%rip), %rsi
- 14492      000000
- 14493 d797 488D3D00 		leaq	.LC1(%rip), %rdi
- 14493      000000
- 14494 d79e B8000000 		movl	$0, %eax
- 14494      00
- 14495 d7a3 E8000000 		call	KDbgMsg at PLT
- 14495      00
- 14496              	.L345:
- 14497              	.LBE1983:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 14498              		.loc 2 1690 0
- 14499 d7a8 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 14499      B0DDFFFF 
- 14500              	.LBE1949:
- 14501              	.LBE1948:
-1926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(2,0x01);    /* k8  : k9  : k10 : k11 */
- 14502              		.loc 2 1926 0
- 14503 d7b0 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 14503      E0E9FFFF 
- 14504 d7b8 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 14504      C0E9FFFF 
- 14505 d7c0 F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 14505      50ECFFFF 
- 14506              	.LBB1984:
- 14507              	.LBB1985:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 14508              		.loc 2 1565 0
- 14509 d7c8 F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 14509      50ECFFFF 
- 14510 d7d0 660F7F85 		movdqa	%xmm0, -8736(%rbp)
- 14510      E0DDFFFF 
- 14511 d7d8 660F6F85 		movdqa	-8736(%rbp), %xmm0
- 14511      E0DDFFFF 
- 14512 d7e0 F30F7F85 		movdqu	%xmm0, -5024(%rbp)
- 14512      60ECFFFF 
- 14513              	.LBB1986:
- 14514              	.LBB1987:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 14515              		.loc 2 1282 0
- 14516 d7e8 F30F6F85 		movdqu	-5024(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 456
-
-
- 14516      60ECFFFF 
- 14517 d7f0 F30F7F85 		movdqu	%xmm0, -7952(%rbp)
- 14517      F0E0FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 14518              		.loc 2 1283 0
- 14519 d7f8 8B85F8E0 		movl	-7944(%rbp), %eax
- 14519      FFFF
- 14520 d7fe 8985FCE0 		movl	%eax, -7940(%rbp)
- 14520      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 14521              		.loc 2 1284 0
- 14522 d804 8B85F4E0 		movl	-7948(%rbp), %eax
- 14522      FFFF
- 14523 d80a 8985F8E0 		movl	%eax, -7944(%rbp)
- 14523      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 14524              		.loc 2 1285 0
- 14525 d810 8B85F0E0 		movl	-7952(%rbp), %eax
- 14525      FFFF
- 14526 d816 8985F4E0 		movl	%eax, -7948(%rbp)
- 14526      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 14527              		.loc 2 1286 0
- 14528 d81c C785F0E0 		movl	$0, -7952(%rbp)
- 14528      FFFF0000 
- 14528      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 14529              		.loc 2 1287 0
- 14530 d826 F30F6F85 		movdqu	-7952(%rbp), %xmm0
- 14530      F0E0FFFF 
- 14531              	.LBE1987:
- 14532              	.LBE1986:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14533              		.loc 2 1567 0
- 14534 d82e 660F7F85 		movdqa	%xmm0, -8736(%rbp)
- 14534      E0DDFFFF 
- 14535 d836 660F6F85 		movdqa	-8736(%rbp), %xmm0
- 14535      E0DDFFFF 
- 14536 d83e 660FEF85 		pxor	-5040(%rbp), %xmm0
- 14536      50ECFFFF 
- 14537 d846 F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 14537      50ECFFFF 
- 14538 d84e 660F6F85 		movdqa	-8736(%rbp), %xmm0
- 14538      E0DDFFFF 
- 14539 d856 F30F7F85 		movdqu	%xmm0, -5008(%rbp)
- 14539      70ECFFFF 
- 14540              	.LBB1988:
- 14541              	.LBB1989:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 14542              		.loc 2 1282 0
- 14543 d85e F30F6F85 		movdqu	-5008(%rbp), %xmm0
- 14543      70ECFFFF 
- 14544 d866 F30F7F85 		movdqu	%xmm0, -7936(%rbp)
- 14544      00E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 14545              		.loc 2 1283 0
- 14546 d86e 8B8508E1 		movl	-7928(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 457
-
-
- 14546      FFFF
- 14547 d874 89850CE1 		movl	%eax, -7924(%rbp)
- 14547      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 14548              		.loc 2 1284 0
- 14549 d87a 8B8504E1 		movl	-7932(%rbp), %eax
- 14549      FFFF
- 14550 d880 898508E1 		movl	%eax, -7928(%rbp)
- 14550      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 14551              		.loc 2 1285 0
- 14552 d886 8B8500E1 		movl	-7936(%rbp), %eax
- 14552      FFFF
- 14553 d88c 898504E1 		movl	%eax, -7932(%rbp)
- 14553      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 14554              		.loc 2 1286 0
- 14555 d892 C78500E1 		movl	$0, -7936(%rbp)
- 14555      FFFF0000 
- 14555      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 14556              		.loc 2 1287 0
- 14557 d89c F30F6F85 		movdqu	-7936(%rbp), %xmm0
- 14557      00E1FFFF 
- 14558              	.LBE1989:
- 14559              	.LBE1988:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14560              		.loc 2 1568 0
- 14561 d8a4 660F7F85 		movdqa	%xmm0, -8736(%rbp)
- 14561      E0DDFFFF 
- 14562 d8ac 660F6F85 		movdqa	-8736(%rbp), %xmm0
- 14562      E0DDFFFF 
- 14563 d8b4 660FEF85 		pxor	-5040(%rbp), %xmm0
- 14563      50ECFFFF 
- 14564 d8bc F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 14564      50ECFFFF 
- 14565 d8c4 660F6F85 		movdqa	-8736(%rbp), %xmm0
- 14565      E0DDFFFF 
- 14566 d8cc F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 14566      80ECFFFF 
- 14567              	.LBB1990:
- 14568              	.LBB1991:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 14569              		.loc 2 1282 0
- 14570 d8d4 F30F6F85 		movdqu	-4992(%rbp), %xmm0
- 14570      80ECFFFF 
- 14571 d8dc F30F7F85 		movdqu	%xmm0, -7920(%rbp)
- 14571      10E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 14572              		.loc 2 1283 0
- 14573 d8e4 8B8518E1 		movl	-7912(%rbp), %eax
- 14573      FFFF
- 14574 d8ea 89851CE1 		movl	%eax, -7908(%rbp)
- 14574      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 14575              		.loc 2 1284 0
- 14576 d8f0 8B8514E1 		movl	-7916(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 458
-
-
- 14576      FFFF
- 14577 d8f6 898518E1 		movl	%eax, -7912(%rbp)
- 14577      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 14578              		.loc 2 1285 0
- 14579 d8fc 8B8510E1 		movl	-7920(%rbp), %eax
- 14579      FFFF
- 14580 d902 898514E1 		movl	%eax, -7916(%rbp)
- 14580      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 14581              		.loc 2 1286 0
- 14582 d908 C78510E1 		movl	$0, -7920(%rbp)
- 14582      FFFF0000 
- 14582      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 14583              		.loc 2 1287 0
- 14584 d912 F30F6F85 		movdqu	-7920(%rbp), %xmm0
- 14584      10E1FFFF 
- 14585              	.LBE1991:
- 14586              	.LBE1990:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14587              		.loc 2 1569 0
- 14588 d91a 660F7F85 		movdqa	%xmm0, -8736(%rbp)
- 14588      E0DDFFFF 
- 14589 d922 660F6F85 		movdqa	-8736(%rbp), %xmm0
- 14589      E0DDFFFF 
- 14590 d92a 660FEF85 		pxor	-5040(%rbp), %xmm0
- 14590      50ECFFFF 
- 14591 d932 F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 14591      50ECFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14592              		.loc 2 1571 0
- 14593 d93a F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 14593      50ECFFFF 
- 14594              	.LBE1985:
- 14595              	.LBE1984:
-1926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(2,0x01);    /* k8  : k9  : k10 : k11 */
- 14596              		.loc 2 1926 0
- 14597 d942 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 14597      C0E9FFFF 
- 14598 d94a F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 14598      C0E9FFFF 
- 14599 d952 F30F7F85 		movdqu	%xmm0, -4960(%rbp)
- 14599      A0ECFFFF 
- 14600 d95a F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 14600      E0E9FFFF 
- 14601 d962 F30F7F85 		movdqu	%xmm0, -4976(%rbp)
- 14601      90ECFFFF 
- 14602              	.LBB1992:
- 14603              	.LBB1993:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 14604              		.loc 2 178 0
- 14605 d96a F30F6F85 		movdqu	-4976(%rbp), %xmm0
- 14605      90ECFFFF 
- 14606 d972 F30F6F8D 		movdqu	-4960(%rbp), %xmm1
- 14606      A0ECFFFF 
- 14607 d97a 660FEFC1 		pxor	%xmm1, %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 459
-
-
- 14608              	.LBE1993:
- 14609              	.LBE1992:
-1926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(2,0x01);    /* k8  : k9  : k10 : k11 */
- 14610              		.loc 2 1926 0
- 14611 d97e F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 14611      C0E9FFFF 
- 14612 d986 488B85D8 		movq	-8232(%rbp), %rax
- 14612      DFFFFF
- 14613 d98d 4883C020 		addq	$32, %rax
- 14614 d991 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 14614      C0E9FFFF 
- 14615 d999 F30F7F00 		movdqu	%xmm0, (%rax)
- 14616 d99d F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 14616      C0E9FFFF 
- 14617 d9a5 F30F7F85 		movdqu	%xmm0, -4944(%rbp)
- 14617      B0ECFFFF 
- 14618              	.LBB1994:
- 14619              	.LBB1995:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 14620              		.loc 2 1656 0
- 14621 d9ad F30F6F85 		movdqu	-4944(%rbp), %xmm0
- 14621      B0ECFFFF 
- 14622 d9b5 F30F7F85 		movdqu	%xmm0, -7888(%rbp)
- 14622      30E1FFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 14623              		.loc 2 1657 0
- 14624 d9bd 8B853CE1 		movl	-7876(%rbp), %eax
- 14624      FFFF
- 14625 d9c3 8985C8EC 		movl	%eax, -4920(%rbp)
- 14625      FFFF
- 14626              	.LBB1996:
- 14627              	.LBB1997:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 14628              		.loc 2 740 0
- 14629 d9c9 8B85C8EC 		movl	-4920(%rbp), %eax
- 14629      FFFF
- 14630 d9cf 898520E1 		movl	%eax, -7904(%rbp)
- 14630      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 14631              		.loc 2 741 0
- 14632 d9d5 C785CCEC 		movl	$0, -4916(%rbp)
- 14632      FFFF0000 
- 14632      0000
- 14633 d9df EB36     		jmp	.L346
- 14634              	.L347:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 14635              		.loc 2 742 0
- 14636 d9e1 8B8DCCEC 		movl	-4916(%rbp), %ecx
- 14636      FFFF
- 14637 d9e7 8B85CCEC 		movl	-4916(%rbp), %eax
- 14637      FFFF
- 14638 d9ed 89C0     		mov	%eax, %eax
- 14639 d9ef 0FB68405 		movzbl	-7904(%rbp,%rax), %eax
- 14639      20E1FFFF 
- 14640 d9f7 0FB6C0   		movzbl	%al, %eax
- 14641 d9fa 89C2     		mov	%eax, %edx
- 14642 d9fc 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 460
-
-
- 14642      000000
- 14643 da03 0FB61402 		movzbl	(%rdx,%rax), %edx
- 14644 da07 89C8     		mov	%ecx, %eax
- 14645 da09 88940520 		movb	%dl, -7904(%rbp,%rax)
- 14645      E1FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 14646              		.loc 2 741 0
- 14647 da10 8385CCEC 		addl	$1, -4916(%rbp)
- 14647      FFFF01
- 14648              	.L346:
- 14649 da17 83BDCCEC 		cmpl	$3, -4916(%rbp)
- 14649      FFFF03
- 14650 da1e 76C1     		jbe	.L347
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 14651              		.loc 2 743 0
- 14652 da20 8B8520E1 		movl	-7904(%rbp), %eax
- 14652      FFFF
- 14653              	.LBE1997:
- 14654              	.LBE1996:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 14655              		.loc 2 1657 0
- 14656 da26 8985C4EC 		movl	%eax, -4924(%rbp)
- 14656      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 14657              		.loc 2 1659 0
- 14658 da2c 8B85C4EC 		movl	-4924(%rbp), %eax
- 14658      FFFF
- 14659 da32 89853CE1 		movl	%eax, -7876(%rbp)
- 14659      FFFF
- 14660 da38 8B853CE1 		movl	-7876(%rbp), %eax
- 14660      FFFF
- 14661 da3e 898538E1 		movl	%eax, -7880(%rbp)
- 14661      FFFF
- 14662 da44 8B8538E1 		movl	-7880(%rbp), %eax
- 14662      FFFF
- 14663 da4a 898534E1 		movl	%eax, -7884(%rbp)
- 14663      FFFF
- 14664 da50 8B8534E1 		movl	-7884(%rbp), %eax
- 14664      FFFF
- 14665 da56 898530E1 		movl	%eax, -7888(%rbp)
- 14665      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 14666              		.loc 2 1660 0
- 14667 da5c F30F6F85 		movdqu	-7888(%rbp), %xmm0
- 14667      30E1FFFF 
- 14668              	.LBE1995:
- 14669              	.LBE1994:
-1927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(3);         /* k12 : k13 : k14 : k15 */
- 14670              		.loc 2 1927 0
- 14671 da64 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 14671      E0E9FFFF 
- 14672 da6c F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 14672      D0E9FFFF 
- 14673 da74 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 14673      D0ECFFFF 
- 14674              	.LBB1998:
- 14675              	.LBB1999:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 461
-
-
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 14676              		.loc 2 1565 0
- 14677 da7c F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 14677      D0ECFFFF 
- 14678 da84 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 14678      F0DDFFFF 
- 14679 da8c 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 14679      F0DDFFFF 
- 14680 da94 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 14680      E0ECFFFF 
- 14681              	.LBB2000:
- 14682              	.LBB2001:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 14683              		.loc 2 1282 0
- 14684 da9c F30F6F85 		movdqu	-4896(%rbp), %xmm0
- 14684      E0ECFFFF 
- 14685 daa4 F30F7F85 		movdqu	%xmm0, -7872(%rbp)
- 14685      40E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 14686              		.loc 2 1283 0
- 14687 daac 8B8548E1 		movl	-7864(%rbp), %eax
- 14687      FFFF
- 14688 dab2 89854CE1 		movl	%eax, -7860(%rbp)
- 14688      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 14689              		.loc 2 1284 0
- 14690 dab8 8B8544E1 		movl	-7868(%rbp), %eax
- 14690      FFFF
- 14691 dabe 898548E1 		movl	%eax, -7864(%rbp)
- 14691      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 14692              		.loc 2 1285 0
- 14693 dac4 8B8540E1 		movl	-7872(%rbp), %eax
- 14693      FFFF
- 14694 daca 898544E1 		movl	%eax, -7868(%rbp)
- 14694      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 14695              		.loc 2 1286 0
- 14696 dad0 C78540E1 		movl	$0, -7872(%rbp)
- 14696      FFFF0000 
- 14696      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 14697              		.loc 2 1287 0
- 14698 dada F30F6F85 		movdqu	-7872(%rbp), %xmm0
- 14698      40E1FFFF 
- 14699              	.LBE2001:
- 14700              	.LBE2000:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14701              		.loc 2 1567 0
- 14702 dae2 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 14702      F0DDFFFF 
- 14703 daea 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 14703      F0DDFFFF 
- 14704 daf2 660FEF85 		pxor	-4912(%rbp), %xmm0
- 14704      D0ECFFFF 
- 14705 dafa F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 14705      D0ECFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 462
-
-
- 14706 db02 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 14706      F0DDFFFF 
- 14707 db0a F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 14707      F0ECFFFF 
- 14708              	.LBB2002:
- 14709              	.LBB2003:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 14710              		.loc 2 1282 0
- 14711 db12 F30F6F85 		movdqu	-4880(%rbp), %xmm0
- 14711      F0ECFFFF 
- 14712 db1a F30F7F85 		movdqu	%xmm0, -7856(%rbp)
- 14712      50E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 14713              		.loc 2 1283 0
- 14714 db22 8B8558E1 		movl	-7848(%rbp), %eax
- 14714      FFFF
- 14715 db28 89855CE1 		movl	%eax, -7844(%rbp)
- 14715      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 14716              		.loc 2 1284 0
- 14717 db2e 8B8554E1 		movl	-7852(%rbp), %eax
- 14717      FFFF
- 14718 db34 898558E1 		movl	%eax, -7848(%rbp)
- 14718      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 14719              		.loc 2 1285 0
- 14720 db3a 8B8550E1 		movl	-7856(%rbp), %eax
- 14720      FFFF
- 14721 db40 898554E1 		movl	%eax, -7852(%rbp)
- 14721      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 14722              		.loc 2 1286 0
- 14723 db46 C78550E1 		movl	$0, -7856(%rbp)
- 14723      FFFF0000 
- 14723      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 14724              		.loc 2 1287 0
- 14725 db50 F30F6F85 		movdqu	-7856(%rbp), %xmm0
- 14725      50E1FFFF 
- 14726              	.LBE2003:
- 14727              	.LBE2002:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14728              		.loc 2 1568 0
- 14729 db58 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 14729      F0DDFFFF 
- 14730 db60 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 14730      F0DDFFFF 
- 14731 db68 660FEF85 		pxor	-4912(%rbp), %xmm0
- 14731      D0ECFFFF 
- 14732 db70 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 14732      D0ECFFFF 
- 14733 db78 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 14733      F0DDFFFF 
- 14734 db80 F30F7F85 		movdqu	%xmm0, -4864(%rbp)
- 14734      00EDFFFF 
- 14735              	.LBB2004:
- 14736              	.LBB2005:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 463
-
-
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 14737              		.loc 2 1282 0
- 14738 db88 F30F6F85 		movdqu	-4864(%rbp), %xmm0
- 14738      00EDFFFF 
- 14739 db90 F30F7F85 		movdqu	%xmm0, -7840(%rbp)
- 14739      60E1FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 14740              		.loc 2 1283 0
- 14741 db98 8B8568E1 		movl	-7832(%rbp), %eax
- 14741      FFFF
- 14742 db9e 89856CE1 		movl	%eax, -7828(%rbp)
- 14742      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 14743              		.loc 2 1284 0
- 14744 dba4 8B8564E1 		movl	-7836(%rbp), %eax
- 14744      FFFF
- 14745 dbaa 898568E1 		movl	%eax, -7832(%rbp)
- 14745      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 14746              		.loc 2 1285 0
- 14747 dbb0 8B8560E1 		movl	-7840(%rbp), %eax
- 14747      FFFF
- 14748 dbb6 898564E1 		movl	%eax, -7836(%rbp)
- 14748      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 14749              		.loc 2 1286 0
- 14750 dbbc C78560E1 		movl	$0, -7840(%rbp)
- 14750      FFFF0000 
- 14750      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 14751              		.loc 2 1287 0
- 14752 dbc6 F30F6F85 		movdqu	-7840(%rbp), %xmm0
- 14752      60E1FFFF 
- 14753              	.LBE2005:
- 14754              	.LBE2004:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14755              		.loc 2 1569 0
- 14756 dbce 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 14756      F0DDFFFF 
- 14757 dbd6 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 14757      F0DDFFFF 
- 14758 dbde 660FEF85 		pxor	-4912(%rbp), %xmm0
- 14758      D0ECFFFF 
- 14759 dbe6 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 14759      D0ECFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14760              		.loc 2 1571 0
- 14761 dbee F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 14761      D0ECFFFF 
- 14762              	.LBE1999:
- 14763              	.LBE1998:
-1927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(3);         /* k12 : k13 : k14 : k15 */
- 14764              		.loc 2 1927 0
- 14765 dbf6 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 14765      D0E9FFFF 
- 14766 dbfe F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 14766      D0E9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 464
-
-
- 14767 dc06 F30F7F85 		movdqu	%xmm0, -4832(%rbp)
- 14767      20EDFFFF 
- 14768 dc0e F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 14768      E0E9FFFF 
- 14769 dc16 F30F7F85 		movdqu	%xmm0, -4848(%rbp)
- 14769      10EDFFFF 
- 14770              	.LBB2006:
- 14771              	.LBB2007:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 14772              		.loc 2 178 0
- 14773 dc1e F30F6F85 		movdqu	-4848(%rbp), %xmm0
- 14773      10EDFFFF 
- 14774 dc26 F30F6F8D 		movdqu	-4832(%rbp), %xmm1
- 14774      20EDFFFF 
- 14775 dc2e 660FEFC1 		pxor	%xmm1, %xmm0
- 14776              	.LBE2007:
- 14777              	.LBE2006:
-1927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(3);         /* k12 : k13 : k14 : k15 */
- 14778              		.loc 2 1927 0
- 14779 dc32 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 14779      D0E9FFFF 
- 14780 dc3a 488B85D8 		movq	-8232(%rbp), %rax
- 14780      DFFFFF
- 14781 dc41 4883C030 		addq	$48, %rax
- 14782 dc45 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 14782      D0E9FFFF 
- 14783 dc4d F30F7F00 		movdqu	%xmm0, (%rax)
- 14784 dc51 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 14784      D0E9FFFF 
- 14785 dc59 F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 14785      40EDFFFF 
- 14786              	.LBB2008:
- 14787              	.LBB2009:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 14788              		.loc 2 1681 0
- 14789 dc61 B8020000 		movl	$2, %eax
- 14789      00
- 14790 dc66 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 14790      00000000 
- 14791 dc6e F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 14791      60EDFFFF 
- 14792 dc76 89855CED 		movl	%eax, -4772(%rbp)
- 14792      FFFF
- 14793              	.LBB2010:
- 14794              	.LBB2011:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 14795              		.loc 2 522 0
- 14796 dc7c F30F6F85 		movdqu	-4768(%rbp), %xmm0
- 14796      60EDFFFF 
- 14797 dc84 F30F7F85 		movdqu	%xmm0, -7760(%rbp)
- 14797      B0E1FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 14798              		.loc 2 523 0
- 14799 dc8c B8030000 		movl	$3, %eax
- 14799      00
- 14800 dc91 4898     		cltq
- 14801 dc93 8B955CED 		movl	-4772(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 465
-
-
- 14801      FFFF
- 14802 dc99 899485B0 		movl	%edx, -7760(%rbp,%rax,4)
- 14802      E1FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 14803              		.loc 2 524 0
- 14804 dca0 F30F6F85 		movdqu	-7760(%rbp), %xmm0
- 14804      B0E1FFFF 
- 14805 dca8 F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 14805      60EDFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14806              		.loc 2 526 0
- 14807 dcb0 F30F6F85 		movdqu	-4768(%rbp), %xmm0
- 14807      60EDFFFF 
- 14808              	.LBE2011:
- 14809              	.LBE2010:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 14810              		.loc 2 1681 0
- 14811 dcb8 660F7F85 		movdqa	%xmm0, -8688(%rbp)
- 14811      10DEFFFF 
- 14812 dcc0 F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 14812      40EDFFFF 
- 14813 dcc8 F30F7F85 		movdqu	%xmm0, -4752(%rbp)
- 14813      70EDFFFF 
- 14814 dcd0 F30F6F85 		movdqu	-4752(%rbp), %xmm0
- 14814      70EDFFFF 
- 14815 dcd8 F30F7F85 		movdqu	%xmm0, -4720(%rbp)
- 14815      90EDFFFF 
- 14816 dce0 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 14816      000000
- 14817 dce7 48898588 		movq	%rax, -4728(%rbp)
- 14817      EDFFFF
- 14818              	.LBB2012:
- 14819              	.LBB2013:
- 14820              	.LBB2014:
- 14821              	.LBB2015:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 14822              		.loc 2 851 0
- 14823 dcee 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 14823      00000000 
- 14824 dcf6 F30F7F85 		movdqu	%xmm0, -4688(%rbp)
- 14824      B0EDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 14825              		.loc 2 854 0
- 14826 dcfe 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 14826      00000000 
- 14827 dd06 F30F6F8D 		movdqu	-4720(%rbp), %xmm1
- 14827      90EDFFFF 
- 14828 dd0e F30F7F8D 		movdqu	%xmm1, -4608(%rbp)
- 14828      00EEFFFF 
- 14829 dd16 F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 14829      F0EDFFFF 
- 14830              	.LBB2016:
- 14831              	.LBB2017:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 14832              		.loc 2 206 0
- 14833 dd1e F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 14833      F0EDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 466
-
-
- 14834 dd26 F30F6F8D 		movdqu	-4608(%rbp), %xmm1
- 14834      00EEFFFF 
- 14835 dd2e 660FDBC1 		pand	%xmm1, %xmm0
- 14836              	.LBE2017:
- 14837              	.LBE2016:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 14838              		.loc 2 854 0
- 14839 dd32 F30F7F85 		movdqu	%xmm0, -4640(%rbp)
- 14839      E0EDFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 14840              		.loc 2 862 0
- 14841 dd3a 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 14841      00000000 
- 14842 dd42 F30F6F8D 		movdqu	-4720(%rbp), %xmm1
- 14842      90EDFFFF 
- 14843 dd4a F30F7F8D 		movdqu	%xmm1, -4576(%rbp)
- 14843      20EEFFFF 
- 14844 dd52 F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 14844      10EEFFFF 
- 14845              	.LBB2018:
- 14846              		.loc 2 2642 0
- 14847 dd5a 0FB68520 		movzbl	-4576(%rbp), %eax
- 14847      EEFFFF
- 14848 dd61 0FB69510 		movzbl	-4592(%rbp), %edx
- 14848      EEFFFF
- 14849 dd68 0FB6C0   		movzbl	%al, %eax
- 14850 dd6b 6689853E 		movw	%ax, -8898(%rbp)
- 14850      DDFFFF
- 14851 dd72 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14851      DDFFFF
- 14852 dd79 F6F2     		divb	%dl
- 14853 dd7b 4189C7   		movl	%eax, %r15d
- 14854 dd7e 0FB68521 		movzbl	-4575(%rbp), %eax
- 14854      EEFFFF
- 14855 dd85 0FB69511 		movzbl	-4591(%rbp), %edx
- 14855      EEFFFF
- 14856 dd8c 0FB6C0   		movzbl	%al, %eax
- 14857 dd8f 6689853E 		movw	%ax, -8898(%rbp)
- 14857      DDFFFF
- 14858 dd96 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14858      DDFFFF
- 14859 dd9d F6F2     		divb	%dl
- 14860 dd9f 88852FDE 		movb	%al, -8657(%rbp)
- 14860      FFFF
- 14861 dda5 0FB68522 		movzbl	-4574(%rbp), %eax
- 14861      EEFFFF
- 14862 ddac 0FB69512 		movzbl	-4590(%rbp), %edx
- 14862      EEFFFF
- 14863 ddb3 0FB6C0   		movzbl	%al, %eax
- 14864 ddb6 6689853E 		movw	%ax, -8898(%rbp)
- 14864      DDFFFF
- 14865 ddbd 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14865      DDFFFF
- 14866 ddc4 F6F2     		divb	%dl
- 14867 ddc6 88852EDE 		movb	%al, -8658(%rbp)
- 14867      FFFF
- 14868 ddcc 0FB68523 		movzbl	-4573(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 467
-
-
- 14868      EEFFFF
- 14869 ddd3 0FB69513 		movzbl	-4589(%rbp), %edx
- 14869      EEFFFF
- 14870 ddda 0FB6C0   		movzbl	%al, %eax
- 14871 dddd 6689853E 		movw	%ax, -8898(%rbp)
- 14871      DDFFFF
- 14872 dde4 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14872      DDFFFF
- 14873 ddeb F6F2     		divb	%dl
- 14874 dded 88852DDE 		movb	%al, -8659(%rbp)
- 14874      FFFF
- 14875 ddf3 0FB68524 		movzbl	-4572(%rbp), %eax
- 14875      EEFFFF
- 14876 ddfa 0FB69514 		movzbl	-4588(%rbp), %edx
- 14876      EEFFFF
- 14877 de01 0FB6C0   		movzbl	%al, %eax
- 14878 de04 6689853E 		movw	%ax, -8898(%rbp)
- 14878      DDFFFF
- 14879 de0b 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14879      DDFFFF
- 14880 de12 F6F2     		divb	%dl
- 14881 de14 88852CDE 		movb	%al, -8660(%rbp)
- 14881      FFFF
- 14882 de1a 0FB68525 		movzbl	-4571(%rbp), %eax
- 14882      EEFFFF
- 14883 de21 0FB69515 		movzbl	-4587(%rbp), %edx
- 14883      EEFFFF
- 14884 de28 0FB6C0   		movzbl	%al, %eax
- 14885 de2b 6689853E 		movw	%ax, -8898(%rbp)
- 14885      DDFFFF
- 14886 de32 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14886      DDFFFF
- 14887 de39 F6F2     		divb	%dl
- 14888 de3b 4189C1   		movl	%eax, %r9d
- 14889 de3e 0FB68526 		movzbl	-4570(%rbp), %eax
- 14889      EEFFFF
- 14890 de45 0FB69516 		movzbl	-4586(%rbp), %edx
- 14890      EEFFFF
- 14891 de4c 0FB6C0   		movzbl	%al, %eax
- 14892 de4f 6689853E 		movw	%ax, -8898(%rbp)
- 14892      DDFFFF
- 14893 de56 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14893      DDFFFF
- 14894 de5d F6F2     		divb	%dl
- 14895 de5f 89C7     		movl	%eax, %edi
- 14896 de61 0FB68527 		movzbl	-4569(%rbp), %eax
- 14896      EEFFFF
- 14897 de68 0FB69517 		movzbl	-4585(%rbp), %edx
- 14897      EEFFFF
- 14898 de6f 0FB6C0   		movzbl	%al, %eax
- 14899 de72 6689853E 		movw	%ax, -8898(%rbp)
- 14899      DDFFFF
- 14900 de79 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14900      DDFFFF
- 14901 de80 F6F2     		divb	%dl
- 14902 de82 89C3     		movl	%eax, %ebx
- 14903 de84 0FB68528 		movzbl	-4568(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 468
-
-
- 14903      EEFFFF
- 14904 de8b 0FB69518 		movzbl	-4584(%rbp), %edx
- 14904      EEFFFF
- 14905 de92 0FB6C0   		movzbl	%al, %eax
- 14906 de95 6689853E 		movw	%ax, -8898(%rbp)
- 14906      DDFFFF
- 14907 de9c 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14907      DDFFFF
- 14908 dea3 F6F2     		divb	%dl
- 14909 dea5 4189C2   		movl	%eax, %r10d
- 14910 dea8 0FB68529 		movzbl	-4567(%rbp), %eax
- 14910      EEFFFF
- 14911 deaf 0FB69519 		movzbl	-4583(%rbp), %edx
- 14911      EEFFFF
- 14912 deb6 0FB6C0   		movzbl	%al, %eax
- 14913 deb9 6689853E 		movw	%ax, -8898(%rbp)
- 14913      DDFFFF
- 14914 dec0 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14914      DDFFFF
- 14915 dec7 F6F2     		divb	%dl
- 14916 dec9 4189C3   		movl	%eax, %r11d
- 14917 decc 0FB6852A 		movzbl	-4566(%rbp), %eax
- 14917      EEFFFF
- 14918 ded3 0FB6951A 		movzbl	-4582(%rbp), %edx
- 14918      EEFFFF
- 14919 deda 0FB6C0   		movzbl	%al, %eax
- 14920 dedd 6689853E 		movw	%ax, -8898(%rbp)
- 14920      DDFFFF
- 14921 dee4 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14921      DDFFFF
- 14922 deeb F6F2     		divb	%dl
- 14923 deed 4189C4   		movl	%eax, %r12d
- 14924 def0 0FB6852B 		movzbl	-4565(%rbp), %eax
- 14924      EEFFFF
- 14925 def7 0FB6951B 		movzbl	-4581(%rbp), %edx
- 14925      EEFFFF
- 14926 defe 0FB6C0   		movzbl	%al, %eax
- 14927 df01 6689853E 		movw	%ax, -8898(%rbp)
- 14927      DDFFFF
- 14928 df08 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14928      DDFFFF
- 14929 df0f F6F2     		divb	%dl
- 14930 df11 4189C5   		movl	%eax, %r13d
- 14931 df14 0FB6852C 		movzbl	-4564(%rbp), %eax
- 14931      EEFFFF
- 14932 df1b 0FB6951C 		movzbl	-4580(%rbp), %edx
- 14932      EEFFFF
- 14933 df22 0FB6C0   		movzbl	%al, %eax
- 14934 df25 6689853E 		movw	%ax, -8898(%rbp)
- 14934      DDFFFF
- 14935 df2c 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14935      DDFFFF
- 14936 df33 F6F2     		divb	%dl
- 14937 df35 4189C6   		movl	%eax, %r14d
- 14938 df38 0FB6852D 		movzbl	-4563(%rbp), %eax
- 14938      EEFFFF
- 14939 df3f 0FB6951D 		movzbl	-4579(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 469
-
-
- 14939      EEFFFF
- 14940 df46 0FB6C0   		movzbl	%al, %eax
- 14941 df49 6689853E 		movw	%ax, -8898(%rbp)
- 14941      DDFFFF
- 14942 df50 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14942      DDFFFF
- 14943 df57 F6F2     		divb	%dl
- 14944 df59 4189C0   		movl	%eax, %r8d
- 14945 df5c 0FB6852E 		movzbl	-4562(%rbp), %eax
- 14945      EEFFFF
- 14946 df63 0FB6951E 		movzbl	-4578(%rbp), %edx
- 14946      EEFFFF
- 14947 df6a 0FB6C0   		movzbl	%al, %eax
- 14948 df6d 6689853E 		movw	%ax, -8898(%rbp)
- 14948      DDFFFF
- 14949 df74 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14949      DDFFFF
- 14950 df7b F6F2     		divb	%dl
- 14951 df7d 89C6     		movl	%eax, %esi
- 14952 df7f 0FB6852F 		movzbl	-4561(%rbp), %eax
- 14952      EEFFFF
- 14953 df86 0FB6951F 		movzbl	-4577(%rbp), %edx
- 14953      EEFFFF
- 14954 df8d 0FB6C0   		movzbl	%al, %eax
- 14955 df90 6689853E 		movw	%ax, -8898(%rbp)
- 14955      DDFFFF
- 14956 df97 0FB7853E 		movzwl	-8898(%rbp), %eax
- 14956      DDFFFF
- 14957 df9e F6F2     		divb	%dl
- 14958 dfa0 89C1     		movl	%eax, %ecx
- 14959              	.LBB2019:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 14960              		.loc 2 346 0
- 14961 dfa2 0FB6D3   		movzbl	%bl, %edx
- 14962 dfa5 400FB6C7 		movzbl	%dil, %eax
- 14963 dfa9 48C1E208 		salq	$8, %rdx
- 14964 dfad 4809C2   		orq	%rax, %rdx
- 14965 dfb0 410FB6C1 		movzbl	%r9b, %eax
- 14966 dfb4 48C1E208 		salq	$8, %rdx
- 14967 dfb8 4809C2   		orq	%rax, %rdx
- 14968 dfbb 0FB6852C 		movzbl	-8660(%rbp), %eax
- 14968      DEFFFF
- 14969 dfc2 48C1E208 		salq	$8, %rdx
- 14970 dfc6 4809C2   		orq	%rax, %rdx
- 14971 dfc9 0FB6852D 		movzbl	-8659(%rbp), %eax
- 14971      DEFFFF
- 14972 dfd0 48C1E208 		salq	$8, %rdx
- 14973 dfd4 4809C2   		orq	%rax, %rdx
- 14974 dfd7 0FB6852E 		movzbl	-8658(%rbp), %eax
- 14974      DEFFFF
- 14975 dfde 48C1E208 		salq	$8, %rdx
- 14976 dfe2 4809C2   		orq	%rax, %rdx
- 14977 dfe5 0FB6852F 		movzbl	-8657(%rbp), %eax
- 14977      DEFFFF
- 14978 dfec 48C1E208 		salq	$8, %rdx
- 14979 dff0 4809C2   		orq	%rax, %rdx
- 14980 dff3 410FB6C7 		movzbl	%r15b, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 470
-
-
- 14981 dff7 48C1E208 		salq	$8, %rdx
- 14982 dffb 4809C2   		orq	%rax, %rdx
- 14983 dffe 0FB6C1   		movzbl	%cl, %eax
- 14984 e001 400FB6CE 		movzbl	%sil, %ecx
- 14985 e005 48C1E008 		salq	$8, %rax
- 14986 e009 4809C8   		orq	%rcx, %rax
- 14987 e00c 410FB6C8 		movzbl	%r8b, %ecx
- 14988 e010 48C1E008 		salq	$8, %rax
- 14989 e014 4809C8   		orq	%rcx, %rax
- 14990 e017 410FB6CE 		movzbl	%r14b, %ecx
- 14991 e01b 48C1E008 		salq	$8, %rax
- 14992 e01f 4809C8   		orq	%rcx, %rax
- 14993 e022 410FB6CD 		movzbl	%r13b, %ecx
- 14994 e026 48C1E008 		salq	$8, %rax
- 14995 e02a 4809C8   		orq	%rcx, %rax
- 14996 e02d 410FB6CC 		movzbl	%r12b, %ecx
- 14997 e031 48C1E008 		salq	$8, %rax
- 14998 e035 4809C8   		orq	%rcx, %rax
- 14999 e038 410FB6CB 		movzbl	%r11b, %ecx
- 15000 e03c 48C1E008 		salq	$8, %rax
- 15001 e040 4809C8   		orq	%rcx, %rax
- 15002 e043 410FB6CA 		movzbl	%r10b, %ecx
- 15003 e047 48C1E008 		salq	$8, %rax
- 15004 e04b 4809C8   		orq	%rcx, %rax
- 15005 e04e 48899590 		movq	%rdx, -8816(%rbp)
- 15005      DDFFFF
- 15006 e055 48898598 		movq	%rax, -8808(%rbp)
- 15006      DDFFFF
- 15007 e05c 660F6F85 		movdqa	-8816(%rbp), %xmm0
- 15007      90DDFFFF 
- 15008              	.LBE2019:
- 15009              	.LBE2018:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 15010              		.loc 2 862 0
- 15011 e064 F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 15011      D0EDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 15012              		.loc 2 866 0
- 15013 e06c C785ACED 		movl	$0, -4692(%rbp)
- 15013      FFFF0000 
- 15013      0000
- 15014 e076 E9860200 		jmp	.L348
- 15014      00
- 15015              	.L357:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 15016              		.loc 2 868 0
- 15017 e07b 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 15017      00000000 
- 15018 e083 F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 15018      40EEFFFF 
- 15019 e08b F30F6F85 		movdqu	-4656(%rbp), %xmm0
- 15019      D0EDFFFF 
- 15020 e093 F30F7F85 		movdqu	%xmm0, -4560(%rbp)
- 15020      30EEFFFF 
- 15021              	.LBB2020:
- 15022              	.LBB2021:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 471
-
-
- 15023              		.loc 2 380 0
- 15024 e09b F30F6F85 		movdqu	-4544(%rbp), %xmm0
- 15024      40EEFFFF 
- 15025 e0a3 F30F7F85 		movdqu	%xmm0, -7728(%rbp)
- 15025      D0E1FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 15026              		.loc 2 381 0
- 15027 e0ab F30F6F85 		movdqu	-4560(%rbp), %xmm0
- 15027      30EEFFFF 
- 15028 e0b3 F30F7F85 		movdqu	%xmm0, -7744(%rbp)
- 15028      C0E1FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 15029              		.loc 2 383 0
- 15030 e0bb C7855CEE 		movl	$0, -4516(%rbp)
- 15030      FFFF0000 
- 15030      0000
- 15031 e0c5 EB5C     		jmp	.L349
- 15032              	.L352:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 15033              		.loc 2 385 0
- 15034 e0c7 8B855CEE 		movl	-4516(%rbp), %eax
- 15034      FFFF
- 15035 e0cd 89C0     		mov	%eax, %eax
- 15036 e0cf 0FB68405 		movzbl	-7744(%rbp,%rax), %eax
- 15036      C0E1FFFF 
- 15037 e0d7 84C0     		testb	%al, %al
- 15038 e0d9 7912     		jns	.L350
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 15039              		.loc 2 386 0
- 15040 e0db 8B855CEE 		movl	-4516(%rbp), %eax
- 15040      FFFF
- 15041 e0e1 89C0     		mov	%eax, %eax
- 15042 e0e3 C68405E0 		movb	$0, -7712(%rbp,%rax)
- 15042      E1FFFF00 
- 15043 e0eb EB2F     		jmp	.L351
- 15044              	.L350:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 15045              		.loc 2 388 0
- 15046 e0ed 8B8D5CEE 		movl	-4516(%rbp), %ecx
- 15046      FFFF
- 15047 e0f3 8B855CEE 		movl	-4516(%rbp), %eax
- 15047      FFFF
- 15048 e0f9 89C0     		mov	%eax, %eax
- 15049 e0fb 0FB68405 		movzbl	-7744(%rbp,%rax), %eax
- 15049      C0E1FFFF 
- 15050 e103 0FB6C0   		movzbl	%al, %eax
- 15051 e106 83E00F   		andl	$15, %eax
- 15052 e109 4898     		cltq
- 15053 e10b 0FB69405 		movzbl	-7728(%rbp,%rax), %edx
- 15053      D0E1FFFF 
- 15054 e113 89C8     		mov	%ecx, %eax
- 15055 e115 889405E0 		movb	%dl, -7712(%rbp,%rax)
- 15055      E1FFFF
- 15056              	.L351:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 15057              		.loc 2 383 0
- 15058 e11c 83855CEE 		addl	$1, -4516(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 472
-
-
- 15058      FFFF01
- 15059              	.L349:
- 15060 e123 83BD5CEE 		cmpl	$15, -4516(%rbp)
- 15060      FFFF0F
- 15061 e12a 769B     		jbe	.L352
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 15062              		.loc 2 391 0
- 15063 e12c F30F6F85 		movdqu	-7712(%rbp), %xmm0
- 15063      E0E1FFFF 
- 15064              	.LBE2021:
- 15065              	.LBE2020:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 15066              		.loc 2 868 0
- 15067 e134 F30F7F85 		movdqu	%xmm0, -4672(%rbp)
- 15067      C0EDFFFF 
- 15068 e13c F30F6F85 		movdqu	-4640(%rbp), %xmm0
- 15068      E0EDFFFF 
- 15069 e144 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 15069      70EEFFFF 
- 15070 e14c F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 15070      C0EDFFFF 
- 15071 e154 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 15071      60EEFFFF 
- 15072              	.LBB2022:
- 15073              	.LBB2023:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 15074              		.loc 2 234 0
- 15075 e15c F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 15075      60EEFFFF 
- 15076 e164 F30F6F8D 		movdqu	-4496(%rbp), %xmm1
- 15076      70EEFFFF 
- 15077 e16c 660FEBC1 		por	%xmm1, %xmm0
- 15078              	.LBE2023:
- 15079              	.LBE2022:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 15080              		.loc 2 870 0
- 15081 e170 F30F7F85 		movdqu	%xmm0, -4672(%rbp)
- 15081      C0EDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 15082              		.loc 2 872 0
- 15083 e178 8B85ACED 		mov	-4692(%rbp), %eax
- 15083      FFFF
- 15084 e17e 48C1E004 		salq	$4, %rax
- 15085 e182 48038588 		addq	-4728(%rbp), %rax
- 15085      EDFFFF
- 15086 e189 660F6F00 		movdqa	(%rax), %xmm0
- 15087 e18d F30F7F85 		movdqu	%xmm0, -4464(%rbp)
- 15087      90EEFFFF 
- 15088 e195 F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 15088      C0EDFFFF 
- 15089 e19d F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 15089      80EEFFFF 
- 15090              	.LBB2024:
- 15091              	.LBB2025:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 15092              		.loc 2 380 0
- 15093 e1a5 F30F6F85 		movdqu	-4464(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 473
-
-
- 15093      90EEFFFF 
- 15094 e1ad F30F7F85 		movdqu	%xmm0, -7680(%rbp)
- 15094      00E2FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 15095              		.loc 2 381 0
- 15096 e1b5 F30F6F85 		movdqu	-4480(%rbp), %xmm0
- 15096      80EEFFFF 
- 15097 e1bd F30F7F85 		movdqu	%xmm0, -7696(%rbp)
- 15097      F0E1FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 15098              		.loc 2 383 0
- 15099 e1c5 C785ACEE 		movl	$0, -4436(%rbp)
- 15099      FFFF0000 
- 15099      0000
- 15100 e1cf EB5C     		jmp	.L353
- 15101              	.L356:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 15102              		.loc 2 385 0
- 15103 e1d1 8B85ACEE 		movl	-4436(%rbp), %eax
- 15103      FFFF
- 15104 e1d7 89C0     		mov	%eax, %eax
- 15105 e1d9 0FB68405 		movzbl	-7696(%rbp,%rax), %eax
- 15105      F0E1FFFF 
- 15106 e1e1 84C0     		testb	%al, %al
- 15107 e1e3 7912     		jns	.L354
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 15108              		.loc 2 386 0
- 15109 e1e5 8B85ACEE 		movl	-4436(%rbp), %eax
- 15109      FFFF
- 15110 e1eb 89C0     		mov	%eax, %eax
- 15111 e1ed C6840510 		movb	$0, -7664(%rbp,%rax)
- 15111      E2FFFF00 
- 15112 e1f5 EB2F     		jmp	.L355
- 15113              	.L354:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 15114              		.loc 2 388 0
- 15115 e1f7 8B8DACEE 		movl	-4436(%rbp), %ecx
- 15115      FFFF
- 15116 e1fd 8B85ACEE 		movl	-4436(%rbp), %eax
- 15116      FFFF
- 15117 e203 89C0     		mov	%eax, %eax
- 15118 e205 0FB68405 		movzbl	-7696(%rbp,%rax), %eax
- 15118      F0E1FFFF 
- 15119 e20d 0FB6C0   		movzbl	%al, %eax
- 15120 e210 83E00F   		andl	$15, %eax
- 15121 e213 4898     		cltq
- 15122 e215 0FB69405 		movzbl	-7680(%rbp,%rax), %edx
- 15122      00E2FFFF 
- 15123 e21d 89C8     		mov	%ecx, %eax
- 15124 e21f 88940510 		movb	%dl, -7664(%rbp,%rax)
- 15124      E2FFFF
- 15125              	.L355:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 15126              		.loc 2 383 0
- 15127 e226 8385ACEE 		addl	$1, -4436(%rbp)
- 15127      FFFF01
- 15128              	.L353:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 474
-
-
- 15129 e22d 83BDACEE 		cmpl	$15, -4436(%rbp)
- 15129      FFFF0F
- 15130 e234 769B     		jbe	.L356
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 15131              		.loc 2 391 0
- 15132 e236 F30F6F85 		movdqu	-7664(%rbp), %xmm0
- 15132      10E2FFFF 
- 15133              	.LBE2025:
- 15134              	.LBE2024:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 15135              		.loc 2 872 0
- 15136 e23e F30F7F85 		movdqu	%xmm0, -4672(%rbp)
- 15136      C0EDFFFF 
- 15137 e246 F30F6F85 		movdqu	-4688(%rbp), %xmm0
- 15137      B0EDFFFF 
- 15138 e24e F30F7F85 		movdqu	%xmm0, -4416(%rbp)
- 15138      C0EEFFFF 
- 15139 e256 F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 15139      C0EDFFFF 
- 15140 e25e F30F7F85 		movdqu	%xmm0, -4432(%rbp)
- 15140      B0EEFFFF 
- 15141              	.LBB2026:
- 15142              	.LBB2027:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 15143              		.loc 2 234 0
- 15144 e266 F30F6F85 		movdqu	-4432(%rbp), %xmm0
- 15144      B0EEFFFF 
- 15145 e26e F30F6F8D 		movdqu	-4416(%rbp), %xmm1
- 15145      C0EEFFFF 
- 15146 e276 660FEBC1 		por	%xmm1, %xmm0
- 15147              	.LBE2027:
- 15148              	.LBE2026:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 15149              		.loc 2 874 0
- 15150 e27a F30F7F85 		movdqu	%xmm0, -4688(%rbp)
- 15150      B0EDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 15151              		.loc 2 876 0
- 15152 e282 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 15152      00000000 
- 15153 e28a F30F6F8D 		movdqu	-4656(%rbp), %xmm1
- 15153      D0EDFFFF 
- 15154 e292 F30F7F8D 		movdqu	%xmm1, -4384(%rbp)
- 15154      E0EEFFFF 
- 15155 e29a F30F7F85 		movdqu	%xmm0, -4400(%rbp)
- 15155      D0EEFFFF 
- 15156              	.LBB2028:
- 15157              	.LBB2029:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 15158              		.loc 2 290 0
- 15159 e2a2 F30F6F8D 		movdqu	-4400(%rbp), %xmm1
- 15159      D0EEFFFF 
- 15160 e2aa F30F6F85 		movdqu	-4384(%rbp), %xmm0
- 15160      E0EEFFFF 
- 15161 e2b2 660FF8C1 		psubb	%xmm1, %xmm0
- 15162              	.LBE2029:
- 15163              	.LBE2028:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 475
-
-
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 15164              		.loc 2 876 0
- 15165 e2b6 F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 15165      D0EDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 15166              		.loc 2 878 0
- 15167 e2be 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 15167      00000000 
- 15168 e2c6 F30F6F8D 		movdqu	-4656(%rbp), %xmm1
- 15168      D0EDFFFF 
- 15169 e2ce F30F7F8D 		movdqu	%xmm1, -4352(%rbp)
- 15169      00EFFFFF 
- 15170 e2d6 F30F7F85 		movdqu	%xmm0, -4368(%rbp)
- 15170      F0EEFFFF 
- 15171              	.LBB2030:
- 15172              	.LBB2031:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 15173              		.loc 2 206 0
- 15174 e2de F30F6F85 		movdqu	-4368(%rbp), %xmm0
- 15174      F0EEFFFF 
- 15175 e2e6 F30F6F8D 		movdqu	-4352(%rbp), %xmm1
- 15175      00EFFFFF 
- 15176 e2ee 660FDBC1 		pand	%xmm1, %xmm0
- 15177              	.LBE2031:
- 15178              	.LBE2030:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 15179              		.loc 2 878 0
- 15180 e2f2 F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 15180      D0EDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 15181              		.loc 2 866 0
- 15182 e2fa 8385ACED 		addl	$1, -4692(%rbp)
- 15182      FFFF01
- 15183              	.L348:
- 15184 e301 83BDACED 		cmpl	$15, -4692(%rbp)
- 15184      FFFF0F
- 15185 e308 0F866DFD 		jbe	.L357
- 15185      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 15186              		.loc 2 882 0
- 15187 e30e F30F6F85 		movdqu	-4688(%rbp), %xmm0
- 15187      B0EDFFFF 
- 15188              	.LBE2015:
- 15189              	.LBE2014:
- 15190              	.LBE2013:
- 15191              	.LBE2012:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 15192              		.loc 2 1682 0
- 15193 e316 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 15193      00DEFFFF 
- 15194              	.LBB2032:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 15195              		.loc 2 1683 0
- 15196 e31e 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15196      00DEFFFF 
- 15197 e326 F30F7F85 		movdqu	%xmm0, -7776(%rbp)
- 15197      A0E1FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 476
-
-
- 15198 e32e E8000000 		call	KDbgWriterGet at PLT
- 15198      00
- 15199 e333 4885C0   		testq	%rax, %rax
- 15200 e336 7479     		je	.L359
- 15201 e338 BF010000 		movl	$1, %edi
- 15201      00
- 15202 e33d E8000000 		call	KDbgCondToFlag at PLT
- 15202      00
- 15203 e342 4889C6   		movq	%rax, %rsi
- 15204 e345 BF100000 		movl	$16, %edi
- 15204      00
- 15205 e34a E8000000 		call	KDbgTestModConds at PLT
- 15205      00
- 15206 e34f 84C0     		testb	%al, %al
- 15207 e351 745E     		je	.L359
- 15208 e353 8B85ACE1 		movl	-7764(%rbp), %eax
- 15208      FFFF
- 15209 e359 89C7     		movl	%eax, %edi
- 15210 e35b E8A01CFF 		call	bswap_32
- 15210      FF
- 15211 e360 4189C5   		movl	%eax, %r13d
- 15212 e363 8B85A8E1 		movl	-7768(%rbp), %eax
- 15212      FFFF
- 15213 e369 89C7     		movl	%eax, %edi
- 15214 e36b E8901CFF 		call	bswap_32
- 15214      FF
- 15215 e370 4189C4   		movl	%eax, %r12d
- 15216 e373 8B85A4E1 		movl	-7772(%rbp), %eax
- 15216      FFFF
- 15217 e379 89C7     		movl	%eax, %edi
- 15218 e37b E8801CFF 		call	bswap_32
- 15218      FF
- 15219 e380 89C3     		movl	%eax, %ebx
- 15220 e382 8B85A0E1 		movl	-7776(%rbp), %eax
- 15220      FFFF
- 15221 e388 89C7     		movl	%eax, %edi
- 15222 e38a E8711CFF 		call	bswap_32
- 15222      FF
- 15223 e38f 4589E9   		movl	%r13d, %r9d
- 15224 e392 4589E0   		movl	%r12d, %r8d
- 15225 e395 89D9     		movl	%ebx, %ecx
- 15226 e397 89C2     		movl	%eax, %edx
- 15227 e399 488D3500 		leaq	.LC0(%rip), %rsi
- 15227      000000
- 15228 e3a0 488D3D00 		leaq	.LC1(%rip), %rdi
- 15228      000000
- 15229 e3a7 B8000000 		movl	$0, %eax
- 15229      00
- 15230 e3ac E8000000 		call	KDbgMsg at PLT
- 15230      00
- 15231              	.L359:
- 15232 e3b1 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15232      00DEFFFF 
- 15233 e3b9 F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 15233      10EFFFFF 
- 15234              	.LBE2032:
- 15235              	.LBB2033:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 477
-
-
- 15236              	.LBB2034:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 15237              		.loc 2 667 0
- 15238 e3c1 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 15238      00000000 
- 15239 e3c9 F30F6F8D 		movdqu	-4336(%rbp), %xmm1
- 15239      10EFFFFF 
- 15240 e3d1 F30F7F8D 		movdqu	%xmm1, -4304(%rbp)
- 15240      30EFFFFF 
- 15241 e3d9 F30F7F85 		movdqu	%xmm0, -4320(%rbp)
- 15241      20EFFFFF 
- 15242              	.LBB2035:
- 15243              	.LBB2036:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 15244              		.loc 2 380 0
- 15245 e3e1 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 15245      30EFFFFF 
- 15246 e3e9 F30F7F85 		movdqu	%xmm0, -7632(%rbp)
- 15246      30E2FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 15247              		.loc 2 381 0
- 15248 e3f1 F30F6F85 		movdqu	-4320(%rbp), %xmm0
- 15248      20EFFFFF 
- 15249 e3f9 F30F7F85 		movdqu	%xmm0, -7648(%rbp)
- 15249      20E2FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 15250              		.loc 2 383 0
- 15251 e401 C7854CEF 		movl	$0, -4276(%rbp)
- 15251      FFFF0000 
- 15251      0000
- 15252 e40b EB5C     		jmp	.L360
- 15253              	.L363:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 15254              		.loc 2 385 0
- 15255 e40d 8B854CEF 		movl	-4276(%rbp), %eax
- 15255      FFFF
- 15256 e413 89C0     		mov	%eax, %eax
- 15257 e415 0FB68405 		movzbl	-7648(%rbp,%rax), %eax
- 15257      20E2FFFF 
- 15258 e41d 84C0     		testb	%al, %al
- 15259 e41f 7912     		jns	.L361
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 15260              		.loc 2 386 0
- 15261 e421 8B854CEF 		movl	-4276(%rbp), %eax
- 15261      FFFF
- 15262 e427 89C0     		mov	%eax, %eax
- 15263 e429 C6840540 		movb	$0, -7616(%rbp,%rax)
- 15263      E2FFFF00 
- 15264 e431 EB2F     		jmp	.L362
- 15265              	.L361:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 15266              		.loc 2 388 0
- 15267 e433 8B8D4CEF 		movl	-4276(%rbp), %ecx
- 15267      FFFF
- 15268 e439 8B854CEF 		movl	-4276(%rbp), %eax
- 15268      FFFF
- 15269 e43f 89C0     		mov	%eax, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 478
-
-
- 15270 e441 0FB68405 		movzbl	-7648(%rbp,%rax), %eax
- 15270      20E2FFFF 
- 15271 e449 0FB6C0   		movzbl	%al, %eax
- 15272 e44c 83E00F   		andl	$15, %eax
- 15273 e44f 4898     		cltq
- 15274 e451 0FB69405 		movzbl	-7632(%rbp,%rax), %edx
- 15274      30E2FFFF 
- 15275 e459 89C8     		mov	%ecx, %eax
- 15276 e45b 88940540 		movb	%dl, -7616(%rbp,%rax)
- 15276      E2FFFF
- 15277              	.L362:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 15278              		.loc 2 383 0
- 15279 e462 83854CEF 		addl	$1, -4276(%rbp)
- 15279      FFFF01
- 15280              	.L360:
- 15281 e469 83BD4CEF 		cmpl	$15, -4276(%rbp)
- 15281      FFFF0F
- 15282 e470 769B     		jbe	.L363
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 15283              		.loc 2 391 0
- 15284 e472 F30F6F85 		movdqu	-7616(%rbp), %xmm0
- 15284      40E2FFFF 
- 15285              	.LBE2036:
- 15286              	.LBE2035:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 15287              		.loc 2 667 0
- 15288 e47a F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 15288      10EFFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15289              		.loc 2 668 0
- 15290 e482 F30F6F85 		movdqu	-4336(%rbp), %xmm0
- 15290      10EFFFFF 
- 15291              	.LBE2034:
- 15292              	.LBE2033:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 15293              		.loc 2 1684 0
- 15294 e48a 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 15294      00DEFFFF 
- 15295              	.LBB2037:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 15296              		.loc 2 1685 0
- 15297 e492 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15297      00DEFFFF 
- 15298 e49a F30F7F85 		movdqu	%xmm0, -7792(%rbp)
- 15298      90E1FFFF 
- 15299 e4a2 E8000000 		call	KDbgWriterGet at PLT
- 15299      00
- 15300 e4a7 4885C0   		testq	%rax, %rax
- 15301 e4aa 7479     		je	.L365
- 15302 e4ac BF010000 		movl	$1, %edi
- 15302      00
- 15303 e4b1 E8000000 		call	KDbgCondToFlag at PLT
- 15303      00
- 15304 e4b6 4889C6   		movq	%rax, %rsi
- 15305 e4b9 BF100000 		movl	$16, %edi
- 15305      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 479
-
-
- 15306 e4be E8000000 		call	KDbgTestModConds at PLT
- 15306      00
- 15307 e4c3 84C0     		testb	%al, %al
- 15308 e4c5 745E     		je	.L365
- 15309 e4c7 8B859CE1 		movl	-7780(%rbp), %eax
- 15309      FFFF
- 15310 e4cd 89C7     		movl	%eax, %edi
- 15311 e4cf E82C1BFF 		call	bswap_32
- 15311      FF
- 15312 e4d4 4189C5   		movl	%eax, %r13d
- 15313 e4d7 8B8598E1 		movl	-7784(%rbp), %eax
- 15313      FFFF
- 15314 e4dd 89C7     		movl	%eax, %edi
- 15315 e4df E81C1BFF 		call	bswap_32
- 15315      FF
- 15316 e4e4 4189C4   		movl	%eax, %r12d
- 15317 e4e7 8B8594E1 		movl	-7788(%rbp), %eax
- 15317      FFFF
- 15318 e4ed 89C7     		movl	%eax, %edi
- 15319 e4ef E80C1BFF 		call	bswap_32
- 15319      FF
- 15320 e4f4 89C3     		movl	%eax, %ebx
- 15321 e4f6 8B8590E1 		movl	-7792(%rbp), %eax
- 15321      FFFF
- 15322 e4fc 89C7     		movl	%eax, %edi
- 15323 e4fe E8FD1AFF 		call	bswap_32
- 15323      FF
- 15324 e503 4589E9   		movl	%r13d, %r9d
- 15325 e506 4589E0   		movl	%r12d, %r8d
- 15326 e509 89D9     		movl	%ebx, %ecx
- 15327 e50b 89C2     		movl	%eax, %edx
- 15328 e50d 488D3500 		leaq	.LC2(%rip), %rsi
- 15328      000000
- 15329 e514 488D3D00 		leaq	.LC1(%rip), %rdi
- 15329      000000
- 15330 e51b B8000000 		movl	$0, %eax
- 15330      00
- 15331 e520 E8000000 		call	KDbgMsg at PLT
- 15331      00
- 15332              	.L365:
- 15333 e525 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15333      00DEFFFF 
- 15334 e52d F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 15334      60EFFFFF 
- 15335 e535 660F6F85 		movdqa	-8688(%rbp), %xmm0
- 15335      10DEFFFF 
- 15336 e53d F30F7F85 		movdqu	%xmm0, -4272(%rbp)
- 15336      50EFFFFF 
- 15337              	.LBE2037:
- 15338              	.LBB2038:
- 15339              	.LBB2039:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 15340              		.loc 2 178 0
- 15341 e545 F30F6F85 		movdqu	-4272(%rbp), %xmm0
- 15341      50EFFFFF 
- 15342 e54d F30F6F8D 		movdqu	-4256(%rbp), %xmm1
- 15342      60EFFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 480
-
-
- 15343 e555 660FEFC1 		pxor	%xmm1, %xmm0
- 15344              	.LBE2039:
- 15345              	.LBE2038:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 15346              		.loc 2 1686 0
- 15347 e559 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 15347      00DEFFFF 
- 15348              	.LBB2040:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 15349              		.loc 2 1687 0
- 15350 e561 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15350      00DEFFFF 
- 15351 e569 F30F7F85 		movdqu	%xmm0, -7808(%rbp)
- 15351      80E1FFFF 
- 15352 e571 E8000000 		call	KDbgWriterGet at PLT
- 15352      00
- 15353 e576 4885C0   		testq	%rax, %rax
- 15354 e579 7479     		je	.L367
- 15355 e57b BF010000 		movl	$1, %edi
- 15355      00
- 15356 e580 E8000000 		call	KDbgCondToFlag at PLT
- 15356      00
- 15357 e585 4889C6   		movq	%rax, %rsi
- 15358 e588 BF100000 		movl	$16, %edi
- 15358      00
- 15359 e58d E8000000 		call	KDbgTestModConds at PLT
- 15359      00
- 15360 e592 84C0     		testb	%al, %al
- 15361 e594 745E     		je	.L367
- 15362 e596 8B858CE1 		movl	-7796(%rbp), %eax
- 15362      FFFF
- 15363 e59c 89C7     		movl	%eax, %edi
- 15364 e59e E85D1AFF 		call	bswap_32
- 15364      FF
- 15365 e5a3 4189C5   		movl	%eax, %r13d
- 15366 e5a6 8B8588E1 		movl	-7800(%rbp), %eax
- 15366      FFFF
- 15367 e5ac 89C7     		movl	%eax, %edi
- 15368 e5ae E84D1AFF 		call	bswap_32
- 15368      FF
- 15369 e5b3 4189C4   		movl	%eax, %r12d
- 15370 e5b6 8B8584E1 		movl	-7804(%rbp), %eax
- 15370      FFFF
- 15371 e5bc 89C7     		movl	%eax, %edi
- 15372 e5be E83D1AFF 		call	bswap_32
- 15372      FF
- 15373 e5c3 89C3     		movl	%eax, %ebx
- 15374 e5c5 8B8580E1 		movl	-7808(%rbp), %eax
- 15374      FFFF
- 15375 e5cb 89C7     		movl	%eax, %edi
- 15376 e5cd E82E1AFF 		call	bswap_32
- 15376      FF
- 15377 e5d2 4589E9   		movl	%r13d, %r9d
- 15378 e5d5 4589E0   		movl	%r12d, %r8d
- 15379 e5d8 89D9     		movl	%ebx, %ecx
- 15380 e5da 89C2     		movl	%eax, %edx
- 15381 e5dc 488D3500 		leaq	.LC3(%rip), %rsi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 481
-
-
- 15381      000000
- 15382 e5e3 488D3D00 		leaq	.LC1(%rip), %rdi
- 15382      000000
- 15383 e5ea B8000000 		movl	$0, %eax
- 15383      00
- 15384 e5ef E8000000 		call	KDbgMsg at PLT
- 15384      00
- 15385              	.L367:
- 15386 e5f4 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15386      00DEFFFF 
- 15387 e5fc F30F7F85 		movdqu	%xmm0, -4240(%rbp)
- 15387      70EFFFFF 
- 15388              	.LBE2040:
- 15389              	.LBB2041:
- 15390              	.LBB2042:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 15391              		.loc 2 1357 0
- 15392 e604 F30F6F85 		movdqu	-4240(%rbp), %xmm0
- 15392      70EFFFFF 
- 15393 e60c F30F7F85 		movdqu	%xmm0, -7600(%rbp)
- 15393      50E2FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 15394              		.loc 2 1358 0
- 15395 e614 8B855CE2 		movl	-7588(%rbp), %eax
- 15395      FFFF
- 15396 e61a 898558E2 		movl	%eax, -7592(%rbp)
- 15396      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 15397              		.loc 2 1359 0
- 15398 e620 8B855CE2 		movl	-7588(%rbp), %eax
- 15398      FFFF
- 15399 e626 898554E2 		movl	%eax, -7596(%rbp)
- 15399      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 15400              		.loc 2 1360 0
- 15401 e62c 8B855CE2 		movl	-7588(%rbp), %eax
- 15401      FFFF
- 15402 e632 898550E2 		movl	%eax, -7600(%rbp)
- 15402      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 15403              		.loc 2 1361 0
- 15404 e638 F30F6F85 		movdqu	-7600(%rbp), %xmm0
- 15404      50E2FFFF 
- 15405              	.LBE2042:
- 15406              	.LBE2041:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 15407              		.loc 2 1688 0
- 15408 e640 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 15408      00DEFFFF 
- 15409              	.LBB2043:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 15410              		.loc 2 1689 0
- 15411 e648 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15411      00DEFFFF 
- 15412 e650 F30F7F85 		movdqu	%xmm0, -7824(%rbp)
- 15412      70E1FFFF 
- 15413 e658 E8000000 		call	KDbgWriterGet at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 482
-
-
- 15413      00
- 15414 e65d 4885C0   		testq	%rax, %rax
- 15415 e660 7479     		je	.L369
- 15416 e662 BF010000 		movl	$1, %edi
- 15416      00
- 15417 e667 E8000000 		call	KDbgCondToFlag at PLT
- 15417      00
- 15418 e66c 4889C6   		movq	%rax, %rsi
- 15419 e66f BF100000 		movl	$16, %edi
- 15419      00
- 15420 e674 E8000000 		call	KDbgTestModConds at PLT
- 15420      00
- 15421 e679 84C0     		testb	%al, %al
- 15422 e67b 745E     		je	.L369
- 15423 e67d 8B857CE1 		movl	-7812(%rbp), %eax
- 15423      FFFF
- 15424 e683 89C7     		movl	%eax, %edi
- 15425 e685 E87619FF 		call	bswap_32
- 15425      FF
- 15426 e68a 4189C5   		movl	%eax, %r13d
- 15427 e68d 8B8578E1 		movl	-7816(%rbp), %eax
- 15427      FFFF
- 15428 e693 89C7     		movl	%eax, %edi
- 15429 e695 E86619FF 		call	bswap_32
- 15429      FF
- 15430 e69a 4189C4   		movl	%eax, %r12d
- 15431 e69d 8B8574E1 		movl	-7820(%rbp), %eax
- 15431      FFFF
- 15432 e6a3 89C7     		movl	%eax, %edi
- 15433 e6a5 E85619FF 		call	bswap_32
- 15433      FF
- 15434 e6aa 89C3     		movl	%eax, %ebx
- 15435 e6ac 8B8570E1 		movl	-7824(%rbp), %eax
- 15435      FFFF
- 15436 e6b2 89C7     		movl	%eax, %edi
- 15437 e6b4 E84719FF 		call	bswap_32
- 15437      FF
- 15438 e6b9 4589E9   		movl	%r13d, %r9d
- 15439 e6bc 4589E0   		movl	%r12d, %r8d
- 15440 e6bf 89D9     		movl	%ebx, %ecx
- 15441 e6c1 89C2     		movl	%eax, %edx
- 15442 e6c3 488D3500 		leaq	.LC4(%rip), %rsi
- 15442      000000
- 15443 e6ca 488D3D00 		leaq	.LC1(%rip), %rdi
- 15443      000000
- 15444 e6d1 B8000000 		movl	$0, %eax
- 15444      00
- 15445 e6d6 E8000000 		call	KDbgMsg at PLT
- 15445      00
- 15446              	.L369:
- 15447              	.LBE2043:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 15448              		.loc 2 1690 0
- 15449 e6db 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 15449      00DEFFFF 
- 15450              	.LBE2009:
- 15451              	.LBE2008:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 483
-
-
-1928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(4,0x02);    /* k16 : k17 : k18 : k19 */
- 15452              		.loc 2 1928 0
- 15453 e6e3 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 15453      E0E9FFFF 
- 15454 e6eb F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 15454      C0E9FFFF 
- 15455 e6f3 F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 15455      80EFFFFF 
- 15456              	.LBB2044:
- 15457              	.LBB2045:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 15458              		.loc 2 1565 0
- 15459 e6fb F30F6F85 		movdqu	-4224(%rbp), %xmm0
- 15459      80EFFFFF 
- 15460 e703 660F7F85 		movdqa	%xmm0, -8656(%rbp)
- 15460      30DEFFFF 
- 15461 e70b 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 15461      30DEFFFF 
- 15462 e713 F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 15462      90EFFFFF 
- 15463              	.LBB2046:
- 15464              	.LBB2047:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 15465              		.loc 2 1282 0
- 15466 e71b F30F6F85 		movdqu	-4208(%rbp), %xmm0
- 15466      90EFFFFF 
- 15467 e723 F30F7F85 		movdqu	%xmm0, -7584(%rbp)
- 15467      60E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 15468              		.loc 2 1283 0
- 15469 e72b 8B8568E2 		movl	-7576(%rbp), %eax
- 15469      FFFF
- 15470 e731 89856CE2 		movl	%eax, -7572(%rbp)
- 15470      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 15471              		.loc 2 1284 0
- 15472 e737 8B8564E2 		movl	-7580(%rbp), %eax
- 15472      FFFF
- 15473 e73d 898568E2 		movl	%eax, -7576(%rbp)
- 15473      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 15474              		.loc 2 1285 0
- 15475 e743 8B8560E2 		movl	-7584(%rbp), %eax
- 15475      FFFF
- 15476 e749 898564E2 		movl	%eax, -7580(%rbp)
- 15476      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 15477              		.loc 2 1286 0
- 15478 e74f C78560E2 		movl	$0, -7584(%rbp)
- 15478      FFFF0000 
- 15478      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 15479              		.loc 2 1287 0
- 15480 e759 F30F6F85 		movdqu	-7584(%rbp), %xmm0
- 15480      60E2FFFF 
- 15481              	.LBE2047:
- 15482              	.LBE2046:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 484
-
-
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15483              		.loc 2 1567 0
- 15484 e761 660F7F85 		movdqa	%xmm0, -8656(%rbp)
- 15484      30DEFFFF 
- 15485 e769 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 15485      30DEFFFF 
- 15486 e771 660FEF85 		pxor	-4224(%rbp), %xmm0
- 15486      80EFFFFF 
- 15487 e779 F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 15487      80EFFFFF 
- 15488 e781 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 15488      30DEFFFF 
- 15489 e789 F30F7F85 		movdqu	%xmm0, -4192(%rbp)
- 15489      A0EFFFFF 
- 15490              	.LBB2048:
- 15491              	.LBB2049:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 15492              		.loc 2 1282 0
- 15493 e791 F30F6F85 		movdqu	-4192(%rbp), %xmm0
- 15493      A0EFFFFF 
- 15494 e799 F30F7F85 		movdqu	%xmm0, -7568(%rbp)
- 15494      70E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 15495              		.loc 2 1283 0
- 15496 e7a1 8B8578E2 		movl	-7560(%rbp), %eax
- 15496      FFFF
- 15497 e7a7 89857CE2 		movl	%eax, -7556(%rbp)
- 15497      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 15498              		.loc 2 1284 0
- 15499 e7ad 8B8574E2 		movl	-7564(%rbp), %eax
- 15499      FFFF
- 15500 e7b3 898578E2 		movl	%eax, -7560(%rbp)
- 15500      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 15501              		.loc 2 1285 0
- 15502 e7b9 8B8570E2 		movl	-7568(%rbp), %eax
- 15502      FFFF
- 15503 e7bf 898574E2 		movl	%eax, -7564(%rbp)
- 15503      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 15504              		.loc 2 1286 0
- 15505 e7c5 C78570E2 		movl	$0, -7568(%rbp)
- 15505      FFFF0000 
- 15505      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 15506              		.loc 2 1287 0
- 15507 e7cf F30F6F85 		movdqu	-7568(%rbp), %xmm0
- 15507      70E2FFFF 
- 15508              	.LBE2049:
- 15509              	.LBE2048:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15510              		.loc 2 1568 0
- 15511 e7d7 660F7F85 		movdqa	%xmm0, -8656(%rbp)
- 15511      30DEFFFF 
- 15512 e7df 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 15512      30DEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 485
-
-
- 15513 e7e7 660FEF85 		pxor	-4224(%rbp), %xmm0
- 15513      80EFFFFF 
- 15514 e7ef F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 15514      80EFFFFF 
- 15515 e7f7 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 15515      30DEFFFF 
- 15516 e7ff F30F7F85 		movdqu	%xmm0, -4176(%rbp)
- 15516      B0EFFFFF 
- 15517              	.LBB2050:
- 15518              	.LBB2051:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 15519              		.loc 2 1282 0
- 15520 e807 F30F6F85 		movdqu	-4176(%rbp), %xmm0
- 15520      B0EFFFFF 
- 15521 e80f F30F7F85 		movdqu	%xmm0, -7552(%rbp)
- 15521      80E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 15522              		.loc 2 1283 0
- 15523 e817 8B8588E2 		movl	-7544(%rbp), %eax
- 15523      FFFF
- 15524 e81d 89858CE2 		movl	%eax, -7540(%rbp)
- 15524      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 15525              		.loc 2 1284 0
- 15526 e823 8B8584E2 		movl	-7548(%rbp), %eax
- 15526      FFFF
- 15527 e829 898588E2 		movl	%eax, -7544(%rbp)
- 15527      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 15528              		.loc 2 1285 0
- 15529 e82f 8B8580E2 		movl	-7552(%rbp), %eax
- 15529      FFFF
- 15530 e835 898584E2 		movl	%eax, -7548(%rbp)
- 15530      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 15531              		.loc 2 1286 0
- 15532 e83b C78580E2 		movl	$0, -7552(%rbp)
- 15532      FFFF0000 
- 15532      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 15533              		.loc 2 1287 0
- 15534 e845 F30F6F85 		movdqu	-7552(%rbp), %xmm0
- 15534      80E2FFFF 
- 15535              	.LBE2051:
- 15536              	.LBE2050:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15537              		.loc 2 1569 0
- 15538 e84d 660F7F85 		movdqa	%xmm0, -8656(%rbp)
- 15538      30DEFFFF 
- 15539 e855 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 15539      30DEFFFF 
- 15540 e85d 660FEF85 		pxor	-4224(%rbp), %xmm0
- 15540      80EFFFFF 
- 15541 e865 F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 15541      80EFFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15542              		.loc 2 1571 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 486
-
-
- 15543 e86d F30F6F85 		movdqu	-4224(%rbp), %xmm0
- 15543      80EFFFFF 
- 15544              	.LBE2045:
- 15545              	.LBE2044:
-1928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(4,0x02);    /* k16 : k17 : k18 : k19 */
- 15546              		.loc 2 1928 0
- 15547 e875 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 15547      C0E9FFFF 
- 15548 e87d F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 15548      C0E9FFFF 
- 15549 e885 F30F7F85 		movdqu	%xmm0, -4144(%rbp)
- 15549      D0EFFFFF 
- 15550 e88d F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 15550      E0E9FFFF 
- 15551 e895 F30F7F85 		movdqu	%xmm0, -4160(%rbp)
- 15551      C0EFFFFF 
- 15552              	.LBB2052:
- 15553              	.LBB2053:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 15554              		.loc 2 178 0
- 15555 e89d F30F6F85 		movdqu	-4160(%rbp), %xmm0
- 15555      C0EFFFFF 
- 15556 e8a5 F30F6F8D 		movdqu	-4144(%rbp), %xmm1
- 15556      D0EFFFFF 
- 15557 e8ad 660FEFC1 		pxor	%xmm1, %xmm0
- 15558              	.LBE2053:
- 15559              	.LBE2052:
-1928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(4,0x02);    /* k16 : k17 : k18 : k19 */
- 15560              		.loc 2 1928 0
- 15561 e8b1 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 15561      C0E9FFFF 
- 15562 e8b9 488B85D8 		movq	-8232(%rbp), %rax
- 15562      DFFFFF
- 15563 e8c0 4883C040 		addq	$64, %rax
- 15564 e8c4 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 15564      C0E9FFFF 
- 15565 e8cc F30F7F00 		movdqu	%xmm0, (%rax)
- 15566 e8d0 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 15566      C0E9FFFF 
- 15567 e8d8 F30F7F85 		movdqu	%xmm0, -4128(%rbp)
- 15567      E0EFFFFF 
- 15568              	.LBB2054:
- 15569              	.LBB2055:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 15570              		.loc 2 1656 0
- 15571 e8e0 F30F6F85 		movdqu	-4128(%rbp), %xmm0
- 15571      E0EFFFFF 
- 15572 e8e8 F30F7F85 		movdqu	%xmm0, -7520(%rbp)
- 15572      A0E2FFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 15573              		.loc 2 1657 0
- 15574 e8f0 8B85ACE2 		movl	-7508(%rbp), %eax
- 15574      FFFF
- 15575 e8f6 8985F8EF 		movl	%eax, -4104(%rbp)
- 15575      FFFF
- 15576              	.LBB2056:
- 15577              	.LBB2057:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 487
-
-
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 15578              		.loc 2 740 0
- 15579 e8fc 8B85F8EF 		movl	-4104(%rbp), %eax
- 15579      FFFF
- 15580 e902 898590E2 		movl	%eax, -7536(%rbp)
- 15580      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 15581              		.loc 2 741 0
- 15582 e908 C785FCEF 		movl	$0, -4100(%rbp)
- 15582      FFFF0000 
- 15582      0000
- 15583 e912 EB36     		jmp	.L370
- 15584              	.L371:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 15585              		.loc 2 742 0
- 15586 e914 8B8DFCEF 		movl	-4100(%rbp), %ecx
- 15586      FFFF
- 15587 e91a 8B85FCEF 		movl	-4100(%rbp), %eax
- 15587      FFFF
- 15588 e920 89C0     		mov	%eax, %eax
- 15589 e922 0FB68405 		movzbl	-7536(%rbp,%rax), %eax
- 15589      90E2FFFF 
- 15590 e92a 0FB6C0   		movzbl	%al, %eax
- 15591 e92d 89C2     		mov	%eax, %edx
- 15592 e92f 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 15592      000000
- 15593 e936 0FB61402 		movzbl	(%rdx,%rax), %edx
- 15594 e93a 89C8     		mov	%ecx, %eax
- 15595 e93c 88940590 		movb	%dl, -7536(%rbp,%rax)
- 15595      E2FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 15596              		.loc 2 741 0
- 15597 e943 8385FCEF 		addl	$1, -4100(%rbp)
- 15597      FFFF01
- 15598              	.L370:
- 15599 e94a 83BDFCEF 		cmpl	$3, -4100(%rbp)
- 15599      FFFF03
- 15600 e951 76C1     		jbe	.L371
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 15601              		.loc 2 743 0
- 15602 e953 8B8590E2 		movl	-7536(%rbp), %eax
- 15602      FFFF
- 15603              	.LBE2057:
- 15604              	.LBE2056:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 15605              		.loc 2 1657 0
- 15606 e959 8985F4EF 		movl	%eax, -4108(%rbp)
- 15606      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 15607              		.loc 2 1659 0
- 15608 e95f 8B85F4EF 		movl	-4108(%rbp), %eax
- 15608      FFFF
- 15609 e965 8985ACE2 		movl	%eax, -7508(%rbp)
- 15609      FFFF
- 15610 e96b 8B85ACE2 		movl	-7508(%rbp), %eax
- 15610      FFFF
- 15611 e971 8985A8E2 		movl	%eax, -7512(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 488
-
-
- 15611      FFFF
- 15612 e977 8B85A8E2 		movl	-7512(%rbp), %eax
- 15612      FFFF
- 15613 e97d 8985A4E2 		movl	%eax, -7516(%rbp)
- 15613      FFFF
- 15614 e983 8B85A4E2 		movl	-7516(%rbp), %eax
- 15614      FFFF
- 15615 e989 8985A0E2 		movl	%eax, -7520(%rbp)
- 15615      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 15616              		.loc 2 1660 0
- 15617 e98f F30F6F85 		movdqu	-7520(%rbp), %xmm0
- 15617      A0E2FFFF 
- 15618              	.LBE2055:
- 15619              	.LBE2054:
-1929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(5);         /* k20 : k21 : k22 : k23 */
- 15620              		.loc 2 1929 0
- 15621 e997 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 15621      E0E9FFFF 
- 15622 e99f F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 15622      D0E9FFFF 
- 15623 e9a7 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 15623      00F0FFFF 
- 15624              	.LBB2058:
- 15625              	.LBB2059:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 15626              		.loc 2 1565 0
- 15627 e9af F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 15627      00F0FFFF 
- 15628 e9b7 660F7F85 		movdqa	%xmm0, -8640(%rbp)
- 15628      40DEFFFF 
- 15629 e9bf 660F6F85 		movdqa	-8640(%rbp), %xmm0
- 15629      40DEFFFF 
- 15630 e9c7 F30F7F85 		movdqu	%xmm0, -4080(%rbp)
- 15630      10F0FFFF 
- 15631              	.LBB2060:
- 15632              	.LBB2061:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 15633              		.loc 2 1282 0
- 15634 e9cf F30F6F85 		movdqu	-4080(%rbp), %xmm0
- 15634      10F0FFFF 
- 15635 e9d7 F30F7F85 		movdqu	%xmm0, -7504(%rbp)
- 15635      B0E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 15636              		.loc 2 1283 0
- 15637 e9df 8B85B8E2 		movl	-7496(%rbp), %eax
- 15637      FFFF
- 15638 e9e5 8985BCE2 		movl	%eax, -7492(%rbp)
- 15638      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 15639              		.loc 2 1284 0
- 15640 e9eb 8B85B4E2 		movl	-7500(%rbp), %eax
- 15640      FFFF
- 15641 e9f1 8985B8E2 		movl	%eax, -7496(%rbp)
- 15641      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 15642              		.loc 2 1285 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 489
-
-
- 15643 e9f7 8B85B0E2 		movl	-7504(%rbp), %eax
- 15643      FFFF
- 15644 e9fd 8985B4E2 		movl	%eax, -7500(%rbp)
- 15644      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 15645              		.loc 2 1286 0
- 15646 ea03 C785B0E2 		movl	$0, -7504(%rbp)
- 15646      FFFF0000 
- 15646      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 15647              		.loc 2 1287 0
- 15648 ea0d F30F6F85 		movdqu	-7504(%rbp), %xmm0
- 15648      B0E2FFFF 
- 15649              	.LBE2061:
- 15650              	.LBE2060:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15651              		.loc 2 1567 0
- 15652 ea15 660F7F85 		movdqa	%xmm0, -8640(%rbp)
- 15652      40DEFFFF 
- 15653 ea1d 660F6F85 		movdqa	-8640(%rbp), %xmm0
- 15653      40DEFFFF 
- 15654 ea25 660FEF85 		pxor	-4096(%rbp), %xmm0
- 15654      00F0FFFF 
- 15655 ea2d F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 15655      00F0FFFF 
- 15656 ea35 660F6F85 		movdqa	-8640(%rbp), %xmm0
- 15656      40DEFFFF 
- 15657 ea3d F30F7F85 		movdqu	%xmm0, -4064(%rbp)
- 15657      20F0FFFF 
- 15658              	.LBB2062:
- 15659              	.LBB2063:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 15660              		.loc 2 1282 0
- 15661 ea45 F30F6F85 		movdqu	-4064(%rbp), %xmm0
- 15661      20F0FFFF 
- 15662 ea4d F30F7F85 		movdqu	%xmm0, -7488(%rbp)
- 15662      C0E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 15663              		.loc 2 1283 0
- 15664 ea55 8B85C8E2 		movl	-7480(%rbp), %eax
- 15664      FFFF
- 15665 ea5b 8985CCE2 		movl	%eax, -7476(%rbp)
- 15665      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 15666              		.loc 2 1284 0
- 15667 ea61 8B85C4E2 		movl	-7484(%rbp), %eax
- 15667      FFFF
- 15668 ea67 8985C8E2 		movl	%eax, -7480(%rbp)
- 15668      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 15669              		.loc 2 1285 0
- 15670 ea6d 8B85C0E2 		movl	-7488(%rbp), %eax
- 15670      FFFF
- 15671 ea73 8985C4E2 		movl	%eax, -7484(%rbp)
- 15671      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 15672              		.loc 2 1286 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 490
-
-
- 15673 ea79 C785C0E2 		movl	$0, -7488(%rbp)
- 15673      FFFF0000 
- 15673      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 15674              		.loc 2 1287 0
- 15675 ea83 F30F6F85 		movdqu	-7488(%rbp), %xmm0
- 15675      C0E2FFFF 
- 15676              	.LBE2063:
- 15677              	.LBE2062:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15678              		.loc 2 1568 0
- 15679 ea8b 660F7F85 		movdqa	%xmm0, -8640(%rbp)
- 15679      40DEFFFF 
- 15680 ea93 660F6F85 		movdqa	-8640(%rbp), %xmm0
- 15680      40DEFFFF 
- 15681 ea9b 660FEF85 		pxor	-4096(%rbp), %xmm0
- 15681      00F0FFFF 
- 15682 eaa3 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 15682      00F0FFFF 
- 15683 eaab 660F6F85 		movdqa	-8640(%rbp), %xmm0
- 15683      40DEFFFF 
- 15684 eab3 F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 15684      30F0FFFF 
- 15685              	.LBB2064:
- 15686              	.LBB2065:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 15687              		.loc 2 1282 0
- 15688 eabb F30F6F85 		movdqu	-4048(%rbp), %xmm0
- 15688      30F0FFFF 
- 15689 eac3 F30F7F85 		movdqu	%xmm0, -7472(%rbp)
- 15689      D0E2FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 15690              		.loc 2 1283 0
- 15691 eacb 8B85D8E2 		movl	-7464(%rbp), %eax
- 15691      FFFF
- 15692 ead1 8985DCE2 		movl	%eax, -7460(%rbp)
- 15692      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 15693              		.loc 2 1284 0
- 15694 ead7 8B85D4E2 		movl	-7468(%rbp), %eax
- 15694      FFFF
- 15695 eadd 8985D8E2 		movl	%eax, -7464(%rbp)
- 15695      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 15696              		.loc 2 1285 0
- 15697 eae3 8B85D0E2 		movl	-7472(%rbp), %eax
- 15697      FFFF
- 15698 eae9 8985D4E2 		movl	%eax, -7468(%rbp)
- 15698      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 15699              		.loc 2 1286 0
- 15700 eaef C785D0E2 		movl	$0, -7472(%rbp)
- 15700      FFFF0000 
- 15700      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 15701              		.loc 2 1287 0
- 15702 eaf9 F30F6F85 		movdqu	-7472(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 491
-
-
- 15702      D0E2FFFF 
- 15703              	.LBE2065:
- 15704              	.LBE2064:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15705              		.loc 2 1569 0
- 15706 eb01 660F7F85 		movdqa	%xmm0, -8640(%rbp)
- 15706      40DEFFFF 
- 15707 eb09 660F6F85 		movdqa	-8640(%rbp), %xmm0
- 15707      40DEFFFF 
- 15708 eb11 660FEF85 		pxor	-4096(%rbp), %xmm0
- 15708      00F0FFFF 
- 15709 eb19 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 15709      00F0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15710              		.loc 2 1571 0
- 15711 eb21 F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 15711      00F0FFFF 
- 15712              	.LBE2059:
- 15713              	.LBE2058:
-1929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(5);         /* k20 : k21 : k22 : k23 */
- 15714              		.loc 2 1929 0
- 15715 eb29 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 15715      D0E9FFFF 
- 15716 eb31 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 15716      D0E9FFFF 
- 15717 eb39 F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 15717      50F0FFFF 
- 15718 eb41 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 15718      E0E9FFFF 
- 15719 eb49 F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 15719      40F0FFFF 
- 15720              	.LBB2066:
- 15721              	.LBB2067:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 15722              		.loc 2 178 0
- 15723 eb51 F30F6F85 		movdqu	-4032(%rbp), %xmm0
- 15723      40F0FFFF 
- 15724 eb59 F30F6F8D 		movdqu	-4016(%rbp), %xmm1
- 15724      50F0FFFF 
- 15725 eb61 660FEFC1 		pxor	%xmm1, %xmm0
- 15726              	.LBE2067:
- 15727              	.LBE2066:
-1929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(5);         /* k20 : k21 : k22 : k23 */
- 15728              		.loc 2 1929 0
- 15729 eb65 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 15729      D0E9FFFF 
- 15730 eb6d 488B85D8 		movq	-8232(%rbp), %rax
- 15730      DFFFFF
- 15731 eb74 4883C050 		addq	$80, %rax
- 15732 eb78 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 15732      D0E9FFFF 
- 15733 eb80 F30F7F00 		movdqu	%xmm0, (%rax)
- 15734 eb84 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 15734      D0E9FFFF 
- 15735 eb8c F30F7F85 		movdqu	%xmm0, -3984(%rbp)
- 15735      70F0FFFF 
- 15736              	.LBB2068:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 492
-
-
- 15737              	.LBB2069:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 15738              		.loc 2 1681 0
- 15739 eb94 B8040000 		movl	$4, %eax
- 15739      00
- 15740 eb99 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 15740      00000000 
- 15741 eba1 F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 15741      90F0FFFF 
- 15742 eba9 89858CF0 		movl	%eax, -3956(%rbp)
- 15742      FFFF
- 15743              	.LBB2070:
- 15744              	.LBB2071:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 15745              		.loc 2 522 0
- 15746 ebaf F30F6F85 		movdqu	-3952(%rbp), %xmm0
- 15746      90F0FFFF 
- 15747 ebb7 F30F7F85 		movdqu	%xmm0, -7392(%rbp)
- 15747      20E3FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 15748              		.loc 2 523 0
- 15749 ebbf B8030000 		movl	$3, %eax
- 15749      00
- 15750 ebc4 4898     		cltq
- 15751 ebc6 8B958CF0 		movl	-3956(%rbp), %edx
- 15751      FFFF
- 15752 ebcc 89948520 		movl	%edx, -7392(%rbp,%rax,4)
- 15752      E3FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 15753              		.loc 2 524 0
- 15754 ebd3 F30F6F85 		movdqu	-7392(%rbp), %xmm0
- 15754      20E3FFFF 
- 15755 ebdb F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 15755      90F0FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15756              		.loc 2 526 0
- 15757 ebe3 F30F6F85 		movdqu	-3952(%rbp), %xmm0
- 15757      90F0FFFF 
- 15758              	.LBE2071:
- 15759              	.LBE2070:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 15760              		.loc 2 1681 0
- 15761 ebeb 660F7F85 		movdqa	%xmm0, -8608(%rbp)
- 15761      60DEFFFF 
- 15762 ebf3 F30F6F85 		movdqu	-3984(%rbp), %xmm0
- 15762      70F0FFFF 
- 15763 ebfb F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 15763      A0F0FFFF 
- 15764 ec03 F30F6F85 		movdqu	-3936(%rbp), %xmm0
- 15764      A0F0FFFF 
- 15765 ec0b F30F7F85 		movdqu	%xmm0, -3904(%rbp)
- 15765      C0F0FFFF 
- 15766 ec13 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 15766      000000
- 15767 ec1a 488985B8 		movq	%rax, -3912(%rbp)
- 15767      F0FFFF
- 15768              	.LBB2072:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 493
-
-
- 15769              	.LBB2073:
- 15770              	.LBB2074:
- 15771              	.LBB2075:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 15772              		.loc 2 851 0
- 15773 ec21 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 15773      00000000 
- 15774 ec29 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 15774      E0F0FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 15775              		.loc 2 854 0
- 15776 ec31 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 15776      00000000 
- 15777 ec39 F30F6F8D 		movdqu	-3904(%rbp), %xmm1
- 15777      C0F0FFFF 
- 15778 ec41 F30F7F8D 		movdqu	%xmm1, -3792(%rbp)
- 15778      30F1FFFF 
- 15779 ec49 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 15779      20F1FFFF 
- 15780              	.LBB2076:
- 15781              	.LBB2077:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 15782              		.loc 2 206 0
- 15783 ec51 F30F6F85 		movdqu	-3808(%rbp), %xmm0
- 15783      20F1FFFF 
- 15784 ec59 F30F6F8D 		movdqu	-3792(%rbp), %xmm1
- 15784      30F1FFFF 
- 15785 ec61 660FDBC1 		pand	%xmm1, %xmm0
- 15786              	.LBE2077:
- 15787              	.LBE2076:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 15788              		.loc 2 854 0
- 15789 ec65 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 15789      10F1FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 15790              		.loc 2 862 0
- 15791 ec6d 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 15791      00000000 
- 15792 ec75 F30F6F8D 		movdqu	-3904(%rbp), %xmm1
- 15792      C0F0FFFF 
- 15793 ec7d F30F7F8D 		movdqu	%xmm1, -3760(%rbp)
- 15793      50F1FFFF 
- 15794 ec85 F30F7F85 		movdqu	%xmm0, -3776(%rbp)
- 15794      40F1FFFF 
- 15795              	.LBB2078:
- 15796              		.loc 2 2642 0
- 15797 ec8d 0FB68550 		movzbl	-3760(%rbp), %eax
- 15797      F1FFFF
- 15798 ec94 0FB69540 		movzbl	-3776(%rbp), %edx
- 15798      F1FFFF
- 15799 ec9b 0FB6C0   		movzbl	%al, %eax
- 15800 ec9e 6689853E 		movw	%ax, -8898(%rbp)
- 15800      DDFFFF
- 15801 eca5 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15801      DDFFFF
- 15802 ecac F6F2     		divb	%dl
- 15803 ecae 4189C7   		movl	%eax, %r15d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 494
-
-
- 15804 ecb1 0FB68551 		movzbl	-3759(%rbp), %eax
- 15804      F1FFFF
- 15805 ecb8 0FB69541 		movzbl	-3775(%rbp), %edx
- 15805      F1FFFF
- 15806 ecbf 0FB6C0   		movzbl	%al, %eax
- 15807 ecc2 6689853E 		movw	%ax, -8898(%rbp)
- 15807      DDFFFF
- 15808 ecc9 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15808      DDFFFF
- 15809 ecd0 F6F2     		divb	%dl
- 15810 ecd2 88857FDE 		movb	%al, -8577(%rbp)
- 15810      FFFF
- 15811 ecd8 0FB68552 		movzbl	-3758(%rbp), %eax
- 15811      F1FFFF
- 15812 ecdf 0FB69542 		movzbl	-3774(%rbp), %edx
- 15812      F1FFFF
- 15813 ece6 0FB6C0   		movzbl	%al, %eax
- 15814 ece9 6689853E 		movw	%ax, -8898(%rbp)
- 15814      DDFFFF
- 15815 ecf0 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15815      DDFFFF
- 15816 ecf7 F6F2     		divb	%dl
- 15817 ecf9 88857EDE 		movb	%al, -8578(%rbp)
- 15817      FFFF
- 15818 ecff 0FB68553 		movzbl	-3757(%rbp), %eax
- 15818      F1FFFF
- 15819 ed06 0FB69543 		movzbl	-3773(%rbp), %edx
- 15819      F1FFFF
- 15820 ed0d 0FB6C0   		movzbl	%al, %eax
- 15821 ed10 6689853E 		movw	%ax, -8898(%rbp)
- 15821      DDFFFF
- 15822 ed17 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15822      DDFFFF
- 15823 ed1e F6F2     		divb	%dl
- 15824 ed20 88857DDE 		movb	%al, -8579(%rbp)
- 15824      FFFF
- 15825 ed26 0FB68554 		movzbl	-3756(%rbp), %eax
- 15825      F1FFFF
- 15826 ed2d 0FB69544 		movzbl	-3772(%rbp), %edx
- 15826      F1FFFF
- 15827 ed34 0FB6C0   		movzbl	%al, %eax
- 15828 ed37 6689853E 		movw	%ax, -8898(%rbp)
- 15828      DDFFFF
- 15829 ed3e 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15829      DDFFFF
- 15830 ed45 F6F2     		divb	%dl
- 15831 ed47 88857CDE 		movb	%al, -8580(%rbp)
- 15831      FFFF
- 15832 ed4d 0FB68555 		movzbl	-3755(%rbp), %eax
- 15832      F1FFFF
- 15833 ed54 0FB69545 		movzbl	-3771(%rbp), %edx
- 15833      F1FFFF
- 15834 ed5b 0FB6C0   		movzbl	%al, %eax
- 15835 ed5e 6689853E 		movw	%ax, -8898(%rbp)
- 15835      DDFFFF
- 15836 ed65 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15836      DDFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 495
-
-
- 15837 ed6c F6F2     		divb	%dl
- 15838 ed6e 4189C1   		movl	%eax, %r9d
- 15839 ed71 0FB68556 		movzbl	-3754(%rbp), %eax
- 15839      F1FFFF
- 15840 ed78 0FB69546 		movzbl	-3770(%rbp), %edx
- 15840      F1FFFF
- 15841 ed7f 0FB6C0   		movzbl	%al, %eax
- 15842 ed82 6689853E 		movw	%ax, -8898(%rbp)
- 15842      DDFFFF
- 15843 ed89 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15843      DDFFFF
- 15844 ed90 F6F2     		divb	%dl
- 15845 ed92 89C7     		movl	%eax, %edi
- 15846 ed94 0FB68557 		movzbl	-3753(%rbp), %eax
- 15846      F1FFFF
- 15847 ed9b 0FB69547 		movzbl	-3769(%rbp), %edx
- 15847      F1FFFF
- 15848 eda2 0FB6C0   		movzbl	%al, %eax
- 15849 eda5 6689853E 		movw	%ax, -8898(%rbp)
- 15849      DDFFFF
- 15850 edac 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15850      DDFFFF
- 15851 edb3 F6F2     		divb	%dl
- 15852 edb5 89C3     		movl	%eax, %ebx
- 15853 edb7 0FB68558 		movzbl	-3752(%rbp), %eax
- 15853      F1FFFF
- 15854 edbe 0FB69548 		movzbl	-3768(%rbp), %edx
- 15854      F1FFFF
- 15855 edc5 0FB6C0   		movzbl	%al, %eax
- 15856 edc8 6689853E 		movw	%ax, -8898(%rbp)
- 15856      DDFFFF
- 15857 edcf 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15857      DDFFFF
- 15858 edd6 F6F2     		divb	%dl
- 15859 edd8 4189C2   		movl	%eax, %r10d
- 15860 eddb 0FB68559 		movzbl	-3751(%rbp), %eax
- 15860      F1FFFF
- 15861 ede2 0FB69549 		movzbl	-3767(%rbp), %edx
- 15861      F1FFFF
- 15862 ede9 0FB6C0   		movzbl	%al, %eax
- 15863 edec 6689853E 		movw	%ax, -8898(%rbp)
- 15863      DDFFFF
- 15864 edf3 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15864      DDFFFF
- 15865 edfa F6F2     		divb	%dl
- 15866 edfc 4189C3   		movl	%eax, %r11d
- 15867 edff 0FB6855A 		movzbl	-3750(%rbp), %eax
- 15867      F1FFFF
- 15868 ee06 0FB6954A 		movzbl	-3766(%rbp), %edx
- 15868      F1FFFF
- 15869 ee0d 0FB6C0   		movzbl	%al, %eax
- 15870 ee10 6689853E 		movw	%ax, -8898(%rbp)
- 15870      DDFFFF
- 15871 ee17 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15871      DDFFFF
- 15872 ee1e F6F2     		divb	%dl
- 15873 ee20 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 496
-
-
- 15874 ee23 0FB6855B 		movzbl	-3749(%rbp), %eax
- 15874      F1FFFF
- 15875 ee2a 0FB6954B 		movzbl	-3765(%rbp), %edx
- 15875      F1FFFF
- 15876 ee31 0FB6C0   		movzbl	%al, %eax
- 15877 ee34 6689853E 		movw	%ax, -8898(%rbp)
- 15877      DDFFFF
- 15878 ee3b 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15878      DDFFFF
- 15879 ee42 F6F2     		divb	%dl
- 15880 ee44 4189C5   		movl	%eax, %r13d
- 15881 ee47 0FB6855C 		movzbl	-3748(%rbp), %eax
- 15881      F1FFFF
- 15882 ee4e 0FB6954C 		movzbl	-3764(%rbp), %edx
- 15882      F1FFFF
- 15883 ee55 0FB6C0   		movzbl	%al, %eax
- 15884 ee58 6689853E 		movw	%ax, -8898(%rbp)
- 15884      DDFFFF
- 15885 ee5f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15885      DDFFFF
- 15886 ee66 F6F2     		divb	%dl
- 15887 ee68 4189C6   		movl	%eax, %r14d
- 15888 ee6b 0FB6855D 		movzbl	-3747(%rbp), %eax
- 15888      F1FFFF
- 15889 ee72 0FB6954D 		movzbl	-3763(%rbp), %edx
- 15889      F1FFFF
- 15890 ee79 0FB6C0   		movzbl	%al, %eax
- 15891 ee7c 6689853E 		movw	%ax, -8898(%rbp)
- 15891      DDFFFF
- 15892 ee83 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15892      DDFFFF
- 15893 ee8a F6F2     		divb	%dl
- 15894 ee8c 4189C0   		movl	%eax, %r8d
- 15895 ee8f 0FB6855E 		movzbl	-3746(%rbp), %eax
- 15895      F1FFFF
- 15896 ee96 0FB6954E 		movzbl	-3762(%rbp), %edx
- 15896      F1FFFF
- 15897 ee9d 0FB6C0   		movzbl	%al, %eax
- 15898 eea0 6689853E 		movw	%ax, -8898(%rbp)
- 15898      DDFFFF
- 15899 eea7 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15899      DDFFFF
- 15900 eeae F6F2     		divb	%dl
- 15901 eeb0 89C6     		movl	%eax, %esi
- 15902 eeb2 0FB6855F 		movzbl	-3745(%rbp), %eax
- 15902      F1FFFF
- 15903 eeb9 0FB6954F 		movzbl	-3761(%rbp), %edx
- 15903      F1FFFF
- 15904 eec0 0FB6C0   		movzbl	%al, %eax
- 15905 eec3 6689853E 		movw	%ax, -8898(%rbp)
- 15905      DDFFFF
- 15906 eeca 0FB7853E 		movzwl	-8898(%rbp), %eax
- 15906      DDFFFF
- 15907 eed1 F6F2     		divb	%dl
- 15908 eed3 89C1     		movl	%eax, %ecx
- 15909              	.LBB2079:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 497
-
-
- 15910              		.loc 2 346 0
- 15911 eed5 0FB6D3   		movzbl	%bl, %edx
- 15912 eed8 400FB6C7 		movzbl	%dil, %eax
- 15913 eedc 48C1E208 		salq	$8, %rdx
- 15914 eee0 4809C2   		orq	%rax, %rdx
- 15915 eee3 410FB6C1 		movzbl	%r9b, %eax
- 15916 eee7 48C1E208 		salq	$8, %rdx
- 15917 eeeb 4809C2   		orq	%rax, %rdx
- 15918 eeee 0FB6857C 		movzbl	-8580(%rbp), %eax
- 15918      DEFFFF
- 15919 eef5 48C1E208 		salq	$8, %rdx
- 15920 eef9 4809C2   		orq	%rax, %rdx
- 15921 eefc 0FB6857D 		movzbl	-8579(%rbp), %eax
- 15921      DEFFFF
- 15922 ef03 48C1E208 		salq	$8, %rdx
- 15923 ef07 4809C2   		orq	%rax, %rdx
- 15924 ef0a 0FB6857E 		movzbl	-8578(%rbp), %eax
- 15924      DEFFFF
- 15925 ef11 48C1E208 		salq	$8, %rdx
- 15926 ef15 4809C2   		orq	%rax, %rdx
- 15927 ef18 0FB6857F 		movzbl	-8577(%rbp), %eax
- 15927      DEFFFF
- 15928 ef1f 48C1E208 		salq	$8, %rdx
- 15929 ef23 4809C2   		orq	%rax, %rdx
- 15930 ef26 410FB6C7 		movzbl	%r15b, %eax
- 15931 ef2a 48C1E208 		salq	$8, %rdx
- 15932 ef2e 4809C2   		orq	%rax, %rdx
- 15933 ef31 0FB6C1   		movzbl	%cl, %eax
- 15934 ef34 400FB6CE 		movzbl	%sil, %ecx
- 15935 ef38 48C1E008 		salq	$8, %rax
- 15936 ef3c 4809C8   		orq	%rcx, %rax
- 15937 ef3f 410FB6C8 		movzbl	%r8b, %ecx
- 15938 ef43 48C1E008 		salq	$8, %rax
- 15939 ef47 4809C8   		orq	%rcx, %rax
- 15940 ef4a 410FB6CE 		movzbl	%r14b, %ecx
- 15941 ef4e 48C1E008 		salq	$8, %rax
- 15942 ef52 4809C8   		orq	%rcx, %rax
- 15943 ef55 410FB6CD 		movzbl	%r13b, %ecx
- 15944 ef59 48C1E008 		salq	$8, %rax
- 15945 ef5d 4809C8   		orq	%rcx, %rax
- 15946 ef60 410FB6CC 		movzbl	%r12b, %ecx
- 15947 ef64 48C1E008 		salq	$8, %rax
- 15948 ef68 4809C8   		orq	%rcx, %rax
- 15949 ef6b 410FB6CB 		movzbl	%r11b, %ecx
- 15950 ef6f 48C1E008 		salq	$8, %rax
- 15951 ef73 4809C8   		orq	%rcx, %rax
- 15952 ef76 410FB6CA 		movzbl	%r10b, %ecx
- 15953 ef7a 48C1E008 		salq	$8, %rax
- 15954 ef7e 4809C8   		orq	%rcx, %rax
- 15955 ef81 48899580 		movq	%rdx, -8832(%rbp)
- 15955      DDFFFF
- 15956 ef88 48898588 		movq	%rax, -8824(%rbp)
- 15956      DDFFFF
- 15957 ef8f 660F6F85 		movdqa	-8832(%rbp), %xmm0
- 15957      80DDFFFF 
- 15958              	.LBE2079:
- 15959              	.LBE2078:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 498
-
-
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 15960              		.loc 2 862 0
- 15961 ef97 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 15961      00F1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 15962              		.loc 2 866 0
- 15963 ef9f C785DCF0 		movl	$0, -3876(%rbp)
- 15963      FFFF0000 
- 15963      0000
- 15964 efa9 E9860200 		jmp	.L372
- 15964      00
- 15965              	.L381:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 15966              		.loc 2 868 0
- 15967 efae 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 15967      00000000 
- 15968 efb6 F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 15968      70F1FFFF 
- 15969 efbe F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 15969      00F1FFFF 
- 15970 efc6 F30F7F85 		movdqu	%xmm0, -3744(%rbp)
- 15970      60F1FFFF 
- 15971              	.LBB2080:
- 15972              	.LBB2081:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 15973              		.loc 2 380 0
- 15974 efce F30F6F85 		movdqu	-3728(%rbp), %xmm0
- 15974      70F1FFFF 
- 15975 efd6 F30F7F85 		movdqu	%xmm0, -7360(%rbp)
- 15975      40E3FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 15976              		.loc 2 381 0
- 15977 efde F30F6F85 		movdqu	-3744(%rbp), %xmm0
- 15977      60F1FFFF 
- 15978 efe6 F30F7F85 		movdqu	%xmm0, -7376(%rbp)
- 15978      30E3FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 15979              		.loc 2 383 0
- 15980 efee C7858CF1 		movl	$0, -3700(%rbp)
- 15980      FFFF0000 
- 15980      0000
- 15981 eff8 EB5C     		jmp	.L373
- 15982              	.L376:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 15983              		.loc 2 385 0
- 15984 effa 8B858CF1 		movl	-3700(%rbp), %eax
- 15984      FFFF
- 15985 f000 89C0     		mov	%eax, %eax
- 15986 f002 0FB68405 		movzbl	-7376(%rbp,%rax), %eax
- 15986      30E3FFFF 
- 15987 f00a 84C0     		testb	%al, %al
- 15988 f00c 7912     		jns	.L374
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 15989              		.loc 2 386 0
- 15990 f00e 8B858CF1 		movl	-3700(%rbp), %eax
- 15990      FFFF
- 15991 f014 89C0     		mov	%eax, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 499
-
-
- 15992 f016 C6840550 		movb	$0, -7344(%rbp,%rax)
- 15992      E3FFFF00 
- 15993 f01e EB2F     		jmp	.L375
- 15994              	.L374:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 15995              		.loc 2 388 0
- 15996 f020 8B8D8CF1 		movl	-3700(%rbp), %ecx
- 15996      FFFF
- 15997 f026 8B858CF1 		movl	-3700(%rbp), %eax
- 15997      FFFF
- 15998 f02c 89C0     		mov	%eax, %eax
- 15999 f02e 0FB68405 		movzbl	-7376(%rbp,%rax), %eax
- 15999      30E3FFFF 
- 16000 f036 0FB6C0   		movzbl	%al, %eax
- 16001 f039 83E00F   		andl	$15, %eax
- 16002 f03c 4898     		cltq
- 16003 f03e 0FB69405 		movzbl	-7360(%rbp,%rax), %edx
- 16003      40E3FFFF 
- 16004 f046 89C8     		mov	%ecx, %eax
- 16005 f048 88940550 		movb	%dl, -7344(%rbp,%rax)
- 16005      E3FFFF
- 16006              	.L375:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16007              		.loc 2 383 0
- 16008 f04f 83858CF1 		addl	$1, -3700(%rbp)
- 16008      FFFF01
- 16009              	.L373:
- 16010 f056 83BD8CF1 		cmpl	$15, -3700(%rbp)
- 16010      FFFF0F
- 16011 f05d 769B     		jbe	.L376
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 16012              		.loc 2 391 0
- 16013 f05f F30F6F85 		movdqu	-7344(%rbp), %xmm0
- 16013      50E3FFFF 
- 16014              	.LBE2081:
- 16015              	.LBE2080:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 16016              		.loc 2 868 0
- 16017 f067 F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 16017      F0F0FFFF 
- 16018 f06f F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 16018      10F1FFFF 
- 16019 f077 F30F7F85 		movdqu	%xmm0, -3680(%rbp)
- 16019      A0F1FFFF 
- 16020 f07f F30F6F85 		movdqu	-3856(%rbp), %xmm0
- 16020      F0F0FFFF 
- 16021 f087 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 16021      90F1FFFF 
- 16022              	.LBB2082:
- 16023              	.LBB2083:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 16024              		.loc 2 234 0
- 16025 f08f F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 16025      90F1FFFF 
- 16026 f097 F30F6F8D 		movdqu	-3680(%rbp), %xmm1
- 16026      A0F1FFFF 
- 16027 f09f 660FEBC1 		por	%xmm1, %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 500
-
-
- 16028              	.LBE2083:
- 16029              	.LBE2082:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 16030              		.loc 2 870 0
- 16031 f0a3 F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 16031      F0F0FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 16032              		.loc 2 872 0
- 16033 f0ab 8B85DCF0 		mov	-3876(%rbp), %eax
- 16033      FFFF
- 16034 f0b1 48C1E004 		salq	$4, %rax
- 16035 f0b5 480385B8 		addq	-3912(%rbp), %rax
- 16035      F0FFFF
- 16036 f0bc 660F6F00 		movdqa	(%rax), %xmm0
- 16037 f0c0 F30F7F85 		movdqu	%xmm0, -3648(%rbp)
- 16037      C0F1FFFF 
- 16038 f0c8 F30F6F85 		movdqu	-3856(%rbp), %xmm0
- 16038      F0F0FFFF 
- 16039 f0d0 F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 16039      B0F1FFFF 
- 16040              	.LBB2084:
- 16041              	.LBB2085:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 16042              		.loc 2 380 0
- 16043 f0d8 F30F6F85 		movdqu	-3648(%rbp), %xmm0
- 16043      C0F1FFFF 
- 16044 f0e0 F30F7F85 		movdqu	%xmm0, -7312(%rbp)
- 16044      70E3FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 16045              		.loc 2 381 0
- 16046 f0e8 F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 16046      B0F1FFFF 
- 16047 f0f0 F30F7F85 		movdqu	%xmm0, -7328(%rbp)
- 16047      60E3FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16048              		.loc 2 383 0
- 16049 f0f8 C785DCF1 		movl	$0, -3620(%rbp)
- 16049      FFFF0000 
- 16049      0000
- 16050 f102 EB5C     		jmp	.L377
- 16051              	.L380:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 16052              		.loc 2 385 0
- 16053 f104 8B85DCF1 		movl	-3620(%rbp), %eax
- 16053      FFFF
- 16054 f10a 89C0     		mov	%eax, %eax
- 16055 f10c 0FB68405 		movzbl	-7328(%rbp,%rax), %eax
- 16055      60E3FFFF 
- 16056 f114 84C0     		testb	%al, %al
- 16057 f116 7912     		jns	.L378
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 16058              		.loc 2 386 0
- 16059 f118 8B85DCF1 		movl	-3620(%rbp), %eax
- 16059      FFFF
- 16060 f11e 89C0     		mov	%eax, %eax
- 16061 f120 C6840580 		movb	$0, -7296(%rbp,%rax)
- 16061      E3FFFF00 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 501
-
-
- 16062 f128 EB2F     		jmp	.L379
- 16063              	.L378:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 16064              		.loc 2 388 0
- 16065 f12a 8B8DDCF1 		movl	-3620(%rbp), %ecx
- 16065      FFFF
- 16066 f130 8B85DCF1 		movl	-3620(%rbp), %eax
- 16066      FFFF
- 16067 f136 89C0     		mov	%eax, %eax
- 16068 f138 0FB68405 		movzbl	-7328(%rbp,%rax), %eax
- 16068      60E3FFFF 
- 16069 f140 0FB6C0   		movzbl	%al, %eax
- 16070 f143 83E00F   		andl	$15, %eax
- 16071 f146 4898     		cltq
- 16072 f148 0FB69405 		movzbl	-7312(%rbp,%rax), %edx
- 16072      70E3FFFF 
- 16073 f150 89C8     		mov	%ecx, %eax
- 16074 f152 88940580 		movb	%dl, -7296(%rbp,%rax)
- 16074      E3FFFF
- 16075              	.L379:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16076              		.loc 2 383 0
- 16077 f159 8385DCF1 		addl	$1, -3620(%rbp)
- 16077      FFFF01
- 16078              	.L377:
- 16079 f160 83BDDCF1 		cmpl	$15, -3620(%rbp)
- 16079      FFFF0F
- 16080 f167 769B     		jbe	.L380
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 16081              		.loc 2 391 0
- 16082 f169 F30F6F85 		movdqu	-7296(%rbp), %xmm0
- 16082      80E3FFFF 
- 16083              	.LBE2085:
- 16084              	.LBE2084:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 16085              		.loc 2 872 0
- 16086 f171 F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 16086      F0F0FFFF 
- 16087 f179 F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 16087      E0F0FFFF 
- 16088 f181 F30F7F85 		movdqu	%xmm0, -3600(%rbp)
- 16088      F0F1FFFF 
- 16089 f189 F30F6F85 		movdqu	-3856(%rbp), %xmm0
- 16089      F0F0FFFF 
- 16090 f191 F30F7F85 		movdqu	%xmm0, -3616(%rbp)
- 16090      E0F1FFFF 
- 16091              	.LBB2086:
- 16092              	.LBB2087:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 16093              		.loc 2 234 0
- 16094 f199 F30F6F85 		movdqu	-3616(%rbp), %xmm0
- 16094      E0F1FFFF 
- 16095 f1a1 F30F6F8D 		movdqu	-3600(%rbp), %xmm1
- 16095      F0F1FFFF 
- 16096 f1a9 660FEBC1 		por	%xmm1, %xmm0
- 16097              	.LBE2087:
- 16098              	.LBE2086:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 502
-
-
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 16099              		.loc 2 874 0
- 16100 f1ad F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 16100      E0F0FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 16101              		.loc 2 876 0
- 16102 f1b5 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 16102      00000000 
- 16103 f1bd F30F6F8D 		movdqu	-3840(%rbp), %xmm1
- 16103      00F1FFFF 
- 16104 f1c5 F30F7F8D 		movdqu	%xmm1, -3568(%rbp)
- 16104      10F2FFFF 
- 16105 f1cd F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 16105      00F2FFFF 
- 16106              	.LBB2088:
- 16107              	.LBB2089:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 16108              		.loc 2 290 0
- 16109 f1d5 F30F6F8D 		movdqu	-3584(%rbp), %xmm1
- 16109      00F2FFFF 
- 16110 f1dd F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 16110      10F2FFFF 
- 16111 f1e5 660FF8C1 		psubb	%xmm1, %xmm0
- 16112              	.LBE2089:
- 16113              	.LBE2088:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 16114              		.loc 2 876 0
- 16115 f1e9 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 16115      00F1FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 16116              		.loc 2 878 0
- 16117 f1f1 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 16117      00000000 
- 16118 f1f9 F30F6F8D 		movdqu	-3840(%rbp), %xmm1
- 16118      00F1FFFF 
- 16119 f201 F30F7F8D 		movdqu	%xmm1, -3536(%rbp)
- 16119      30F2FFFF 
- 16120 f209 F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 16120      20F2FFFF 
- 16121              	.LBB2090:
- 16122              	.LBB2091:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 16123              		.loc 2 206 0
- 16124 f211 F30F6F85 		movdqu	-3552(%rbp), %xmm0
- 16124      20F2FFFF 
- 16125 f219 F30F6F8D 		movdqu	-3536(%rbp), %xmm1
- 16125      30F2FFFF 
- 16126 f221 660FDBC1 		pand	%xmm1, %xmm0
- 16127              	.LBE2091:
- 16128              	.LBE2090:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 16129              		.loc 2 878 0
- 16130 f225 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 16130      00F1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 16131              		.loc 2 866 0
- 16132 f22d 8385DCF0 		addl	$1, -3876(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 503
-
-
- 16132      FFFF01
- 16133              	.L372:
- 16134 f234 83BDDCF0 		cmpl	$15, -3876(%rbp)
- 16134      FFFF0F
- 16135 f23b 0F866DFD 		jbe	.L381
- 16135      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 16136              		.loc 2 882 0
- 16137 f241 F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 16137      E0F0FFFF 
- 16138              	.LBE2075:
- 16139              	.LBE2074:
- 16140              	.LBE2073:
- 16141              	.LBE2072:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 16142              		.loc 2 1682 0
- 16143 f249 660F7F85 		movdqa	%xmm0, -8624(%rbp)
- 16143      50DEFFFF 
- 16144              	.LBB2092:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 16145              		.loc 2 1683 0
- 16146 f251 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16146      50DEFFFF 
- 16147 f259 F30F7F85 		movdqu	%xmm0, -7408(%rbp)
- 16147      10E3FFFF 
- 16148 f261 E8000000 		call	KDbgWriterGet at PLT
- 16148      00
- 16149 f266 4885C0   		testq	%rax, %rax
- 16150 f269 7479     		je	.L383
- 16151 f26b BF010000 		movl	$1, %edi
- 16151      00
- 16152 f270 E8000000 		call	KDbgCondToFlag at PLT
- 16152      00
- 16153 f275 4889C6   		movq	%rax, %rsi
- 16154 f278 BF100000 		movl	$16, %edi
- 16154      00
- 16155 f27d E8000000 		call	KDbgTestModConds at PLT
- 16155      00
- 16156 f282 84C0     		testb	%al, %al
- 16157 f284 745E     		je	.L383
- 16158 f286 8B851CE3 		movl	-7396(%rbp), %eax
- 16158      FFFF
- 16159 f28c 89C7     		movl	%eax, %edi
- 16160 f28e E86D0DFF 		call	bswap_32
- 16160      FF
- 16161 f293 4189C5   		movl	%eax, %r13d
- 16162 f296 8B8518E3 		movl	-7400(%rbp), %eax
- 16162      FFFF
- 16163 f29c 89C7     		movl	%eax, %edi
- 16164 f29e E85D0DFF 		call	bswap_32
- 16164      FF
- 16165 f2a3 4189C4   		movl	%eax, %r12d
- 16166 f2a6 8B8514E3 		movl	-7404(%rbp), %eax
- 16166      FFFF
- 16167 f2ac 89C7     		movl	%eax, %edi
- 16168 f2ae E84D0DFF 		call	bswap_32
- 16168      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 504
-
-
- 16169 f2b3 89C3     		movl	%eax, %ebx
- 16170 f2b5 8B8510E3 		movl	-7408(%rbp), %eax
- 16170      FFFF
- 16171 f2bb 89C7     		movl	%eax, %edi
- 16172 f2bd E83E0DFF 		call	bswap_32
- 16172      FF
- 16173 f2c2 4589E9   		movl	%r13d, %r9d
- 16174 f2c5 4589E0   		movl	%r12d, %r8d
- 16175 f2c8 89D9     		movl	%ebx, %ecx
- 16176 f2ca 89C2     		movl	%eax, %edx
- 16177 f2cc 488D3500 		leaq	.LC0(%rip), %rsi
- 16177      000000
- 16178 f2d3 488D3D00 		leaq	.LC1(%rip), %rdi
- 16178      000000
- 16179 f2da B8000000 		movl	$0, %eax
- 16179      00
- 16180 f2df E8000000 		call	KDbgMsg at PLT
- 16180      00
- 16181              	.L383:
- 16182 f2e4 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16182      50DEFFFF 
- 16183 f2ec F30F7F85 		movdqu	%xmm0, -3520(%rbp)
- 16183      40F2FFFF 
- 16184              	.LBE2092:
- 16185              	.LBB2093:
- 16186              	.LBB2094:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 16187              		.loc 2 667 0
- 16188 f2f4 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 16188      00000000 
- 16189 f2fc F30F6F8D 		movdqu	-3520(%rbp), %xmm1
- 16189      40F2FFFF 
- 16190 f304 F30F7F8D 		movdqu	%xmm1, -3488(%rbp)
- 16190      60F2FFFF 
- 16191 f30c F30F7F85 		movdqu	%xmm0, -3504(%rbp)
- 16191      50F2FFFF 
- 16192              	.LBB2095:
- 16193              	.LBB2096:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 16194              		.loc 2 380 0
- 16195 f314 F30F6F85 		movdqu	-3488(%rbp), %xmm0
- 16195      60F2FFFF 
- 16196 f31c F30F7F85 		movdqu	%xmm0, -7264(%rbp)
- 16196      A0E3FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 16197              		.loc 2 381 0
- 16198 f324 F30F6F85 		movdqu	-3504(%rbp), %xmm0
- 16198      50F2FFFF 
- 16199 f32c F30F7F85 		movdqu	%xmm0, -7280(%rbp)
- 16199      90E3FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16200              		.loc 2 383 0
- 16201 f334 C7857CF2 		movl	$0, -3460(%rbp)
- 16201      FFFF0000 
- 16201      0000
- 16202 f33e EB5C     		jmp	.L384
- 16203              	.L387:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 505
-
-
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 16204              		.loc 2 385 0
- 16205 f340 8B857CF2 		movl	-3460(%rbp), %eax
- 16205      FFFF
- 16206 f346 89C0     		mov	%eax, %eax
- 16207 f348 0FB68405 		movzbl	-7280(%rbp,%rax), %eax
- 16207      90E3FFFF 
- 16208 f350 84C0     		testb	%al, %al
- 16209 f352 7912     		jns	.L385
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 16210              		.loc 2 386 0
- 16211 f354 8B857CF2 		movl	-3460(%rbp), %eax
- 16211      FFFF
- 16212 f35a 89C0     		mov	%eax, %eax
- 16213 f35c C68405B0 		movb	$0, -7248(%rbp,%rax)
- 16213      E3FFFF00 
- 16214 f364 EB2F     		jmp	.L386
- 16215              	.L385:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 16216              		.loc 2 388 0
- 16217 f366 8B8D7CF2 		movl	-3460(%rbp), %ecx
- 16217      FFFF
- 16218 f36c 8B857CF2 		movl	-3460(%rbp), %eax
- 16218      FFFF
- 16219 f372 89C0     		mov	%eax, %eax
- 16220 f374 0FB68405 		movzbl	-7280(%rbp,%rax), %eax
- 16220      90E3FFFF 
- 16221 f37c 0FB6C0   		movzbl	%al, %eax
- 16222 f37f 83E00F   		andl	$15, %eax
- 16223 f382 4898     		cltq
- 16224 f384 0FB69405 		movzbl	-7264(%rbp,%rax), %edx
- 16224      A0E3FFFF 
- 16225 f38c 89C8     		mov	%ecx, %eax
- 16226 f38e 889405B0 		movb	%dl, -7248(%rbp,%rax)
- 16226      E3FFFF
- 16227              	.L386:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16228              		.loc 2 383 0
- 16229 f395 83857CF2 		addl	$1, -3460(%rbp)
- 16229      FFFF01
- 16230              	.L384:
- 16231 f39c 83BD7CF2 		cmpl	$15, -3460(%rbp)
- 16231      FFFF0F
- 16232 f3a3 769B     		jbe	.L387
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 16233              		.loc 2 391 0
- 16234 f3a5 F30F6F85 		movdqu	-7248(%rbp), %xmm0
- 16234      B0E3FFFF 
- 16235              	.LBE2096:
- 16236              	.LBE2095:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 16237              		.loc 2 667 0
- 16238 f3ad F30F7F85 		movdqu	%xmm0, -3520(%rbp)
- 16238      40F2FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16239              		.loc 2 668 0
- 16240 f3b5 F30F6F85 		movdqu	-3520(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 506
-
-
- 16240      40F2FFFF 
- 16241              	.LBE2094:
- 16242              	.LBE2093:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 16243              		.loc 2 1684 0
- 16244 f3bd 660F7F85 		movdqa	%xmm0, -8624(%rbp)
- 16244      50DEFFFF 
- 16245              	.LBB2097:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 16246              		.loc 2 1685 0
- 16247 f3c5 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16247      50DEFFFF 
- 16248 f3cd F30F7F85 		movdqu	%xmm0, -7424(%rbp)
- 16248      00E3FFFF 
- 16249 f3d5 E8000000 		call	KDbgWriterGet at PLT
- 16249      00
- 16250 f3da 4885C0   		testq	%rax, %rax
- 16251 f3dd 7479     		je	.L389
- 16252 f3df BF010000 		movl	$1, %edi
- 16252      00
- 16253 f3e4 E8000000 		call	KDbgCondToFlag at PLT
- 16253      00
- 16254 f3e9 4889C6   		movq	%rax, %rsi
- 16255 f3ec BF100000 		movl	$16, %edi
- 16255      00
- 16256 f3f1 E8000000 		call	KDbgTestModConds at PLT
- 16256      00
- 16257 f3f6 84C0     		testb	%al, %al
- 16258 f3f8 745E     		je	.L389
- 16259 f3fa 8B850CE3 		movl	-7412(%rbp), %eax
- 16259      FFFF
- 16260 f400 89C7     		movl	%eax, %edi
- 16261 f402 E8F90BFF 		call	bswap_32
- 16261      FF
- 16262 f407 4189C5   		movl	%eax, %r13d
- 16263 f40a 8B8508E3 		movl	-7416(%rbp), %eax
- 16263      FFFF
- 16264 f410 89C7     		movl	%eax, %edi
- 16265 f412 E8E90BFF 		call	bswap_32
- 16265      FF
- 16266 f417 4189C4   		movl	%eax, %r12d
- 16267 f41a 8B8504E3 		movl	-7420(%rbp), %eax
- 16267      FFFF
- 16268 f420 89C7     		movl	%eax, %edi
- 16269 f422 E8D90BFF 		call	bswap_32
- 16269      FF
- 16270 f427 89C3     		movl	%eax, %ebx
- 16271 f429 8B8500E3 		movl	-7424(%rbp), %eax
- 16271      FFFF
- 16272 f42f 89C7     		movl	%eax, %edi
- 16273 f431 E8CA0BFF 		call	bswap_32
- 16273      FF
- 16274 f436 4589E9   		movl	%r13d, %r9d
- 16275 f439 4589E0   		movl	%r12d, %r8d
- 16276 f43c 89D9     		movl	%ebx, %ecx
- 16277 f43e 89C2     		movl	%eax, %edx
- 16278 f440 488D3500 		leaq	.LC2(%rip), %rsi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 507
-
-
- 16278      000000
- 16279 f447 488D3D00 		leaq	.LC1(%rip), %rdi
- 16279      000000
- 16280 f44e B8000000 		movl	$0, %eax
- 16280      00
- 16281 f453 E8000000 		call	KDbgMsg at PLT
- 16281      00
- 16282              	.L389:
- 16283 f458 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16283      50DEFFFF 
- 16284 f460 F30F7F85 		movdqu	%xmm0, -3440(%rbp)
- 16284      90F2FFFF 
- 16285 f468 660F6F85 		movdqa	-8608(%rbp), %xmm0
- 16285      60DEFFFF 
- 16286 f470 F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 16286      80F2FFFF 
- 16287              	.LBE2097:
- 16288              	.LBB2098:
- 16289              	.LBB2099:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16290              		.loc 2 178 0
- 16291 f478 F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 16291      80F2FFFF 
- 16292 f480 F30F6F8D 		movdqu	-3440(%rbp), %xmm1
- 16292      90F2FFFF 
- 16293 f488 660FEFC1 		pxor	%xmm1, %xmm0
- 16294              	.LBE2099:
- 16295              	.LBE2098:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 16296              		.loc 2 1686 0
- 16297 f48c 660F7F85 		movdqa	%xmm0, -8624(%rbp)
- 16297      50DEFFFF 
- 16298              	.LBB2100:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 16299              		.loc 2 1687 0
- 16300 f494 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16300      50DEFFFF 
- 16301 f49c F30F7F85 		movdqu	%xmm0, -7440(%rbp)
- 16301      F0E2FFFF 
- 16302 f4a4 E8000000 		call	KDbgWriterGet at PLT
- 16302      00
- 16303 f4a9 4885C0   		testq	%rax, %rax
- 16304 f4ac 7479     		je	.L391
- 16305 f4ae BF010000 		movl	$1, %edi
- 16305      00
- 16306 f4b3 E8000000 		call	KDbgCondToFlag at PLT
- 16306      00
- 16307 f4b8 4889C6   		movq	%rax, %rsi
- 16308 f4bb BF100000 		movl	$16, %edi
- 16308      00
- 16309 f4c0 E8000000 		call	KDbgTestModConds at PLT
- 16309      00
- 16310 f4c5 84C0     		testb	%al, %al
- 16311 f4c7 745E     		je	.L391
- 16312 f4c9 8B85FCE2 		movl	-7428(%rbp), %eax
- 16312      FFFF
- 16313 f4cf 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 508
-
-
- 16314 f4d1 E82A0BFF 		call	bswap_32
- 16314      FF
- 16315 f4d6 4189C5   		movl	%eax, %r13d
- 16316 f4d9 8B85F8E2 		movl	-7432(%rbp), %eax
- 16316      FFFF
- 16317 f4df 89C7     		movl	%eax, %edi
- 16318 f4e1 E81A0BFF 		call	bswap_32
- 16318      FF
- 16319 f4e6 4189C4   		movl	%eax, %r12d
- 16320 f4e9 8B85F4E2 		movl	-7436(%rbp), %eax
- 16320      FFFF
- 16321 f4ef 89C7     		movl	%eax, %edi
- 16322 f4f1 E80A0BFF 		call	bswap_32
- 16322      FF
- 16323 f4f6 89C3     		movl	%eax, %ebx
- 16324 f4f8 8B85F0E2 		movl	-7440(%rbp), %eax
- 16324      FFFF
- 16325 f4fe 89C7     		movl	%eax, %edi
- 16326 f500 E8FB0AFF 		call	bswap_32
- 16326      FF
- 16327 f505 4589E9   		movl	%r13d, %r9d
- 16328 f508 4589E0   		movl	%r12d, %r8d
- 16329 f50b 89D9     		movl	%ebx, %ecx
- 16330 f50d 89C2     		movl	%eax, %edx
- 16331 f50f 488D3500 		leaq	.LC3(%rip), %rsi
- 16331      000000
- 16332 f516 488D3D00 		leaq	.LC1(%rip), %rdi
- 16332      000000
- 16333 f51d B8000000 		movl	$0, %eax
- 16333      00
- 16334 f522 E8000000 		call	KDbgMsg at PLT
- 16334      00
- 16335              	.L391:
- 16336 f527 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16336      50DEFFFF 
- 16337 f52f F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 16337      A0F2FFFF 
- 16338              	.LBE2100:
- 16339              	.LBB2101:
- 16340              	.LBB2102:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 16341              		.loc 2 1357 0
- 16342 f537 F30F6F85 		movdqu	-3424(%rbp), %xmm0
- 16342      A0F2FFFF 
- 16343 f53f F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 16343      C0E3FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 16344              		.loc 2 1358 0
- 16345 f547 8B85CCE3 		movl	-7220(%rbp), %eax
- 16345      FFFF
- 16346 f54d 8985C8E3 		movl	%eax, -7224(%rbp)
- 16346      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 16347              		.loc 2 1359 0
- 16348 f553 8B85CCE3 		movl	-7220(%rbp), %eax
- 16348      FFFF
- 16349 f559 8985C4E3 		movl	%eax, -7228(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 509
-
-
- 16349      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 16350              		.loc 2 1360 0
- 16351 f55f 8B85CCE3 		movl	-7220(%rbp), %eax
- 16351      FFFF
- 16352 f565 8985C0E3 		movl	%eax, -7232(%rbp)
- 16352      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 16353              		.loc 2 1361 0
- 16354 f56b F30F6F85 		movdqu	-7232(%rbp), %xmm0
- 16354      C0E3FFFF 
- 16355              	.LBE2102:
- 16356              	.LBE2101:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 16357              		.loc 2 1688 0
- 16358 f573 660F7F85 		movdqa	%xmm0, -8624(%rbp)
- 16358      50DEFFFF 
- 16359              	.LBB2103:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 16360              		.loc 2 1689 0
- 16361 f57b 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16361      50DEFFFF 
- 16362 f583 F30F7F85 		movdqu	%xmm0, -7456(%rbp)
- 16362      E0E2FFFF 
- 16363 f58b E8000000 		call	KDbgWriterGet at PLT
- 16363      00
- 16364 f590 4885C0   		testq	%rax, %rax
- 16365 f593 7479     		je	.L393
- 16366 f595 BF010000 		movl	$1, %edi
- 16366      00
- 16367 f59a E8000000 		call	KDbgCondToFlag at PLT
- 16367      00
- 16368 f59f 4889C6   		movq	%rax, %rsi
- 16369 f5a2 BF100000 		movl	$16, %edi
- 16369      00
- 16370 f5a7 E8000000 		call	KDbgTestModConds at PLT
- 16370      00
- 16371 f5ac 84C0     		testb	%al, %al
- 16372 f5ae 745E     		je	.L393
- 16373 f5b0 8B85ECE2 		movl	-7444(%rbp), %eax
- 16373      FFFF
- 16374 f5b6 89C7     		movl	%eax, %edi
- 16375 f5b8 E8430AFF 		call	bswap_32
- 16375      FF
- 16376 f5bd 4189C5   		movl	%eax, %r13d
- 16377 f5c0 8B85E8E2 		movl	-7448(%rbp), %eax
- 16377      FFFF
- 16378 f5c6 89C7     		movl	%eax, %edi
- 16379 f5c8 E8330AFF 		call	bswap_32
- 16379      FF
- 16380 f5cd 4189C4   		movl	%eax, %r12d
- 16381 f5d0 8B85E4E2 		movl	-7452(%rbp), %eax
- 16381      FFFF
- 16382 f5d6 89C7     		movl	%eax, %edi
- 16383 f5d8 E8230AFF 		call	bswap_32
- 16383      FF
- 16384 f5dd 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 510
-
-
- 16385 f5df 8B85E0E2 		movl	-7456(%rbp), %eax
- 16385      FFFF
- 16386 f5e5 89C7     		movl	%eax, %edi
- 16387 f5e7 E8140AFF 		call	bswap_32
- 16387      FF
- 16388 f5ec 4589E9   		movl	%r13d, %r9d
- 16389 f5ef 4589E0   		movl	%r12d, %r8d
- 16390 f5f2 89D9     		movl	%ebx, %ecx
- 16391 f5f4 89C2     		movl	%eax, %edx
- 16392 f5f6 488D3500 		leaq	.LC4(%rip), %rsi
- 16392      000000
- 16393 f5fd 488D3D00 		leaq	.LC1(%rip), %rdi
- 16393      000000
- 16394 f604 B8000000 		movl	$0, %eax
- 16394      00
- 16395 f609 E8000000 		call	KDbgMsg at PLT
- 16395      00
- 16396              	.L393:
- 16397              	.LBE2103:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 16398              		.loc 2 1690 0
- 16399 f60e 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 16399      50DEFFFF 
- 16400              	.LBE2069:
- 16401              	.LBE2068:
-1930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(6,0x04);    /* k24 : k25 : k26 : k27 */
- 16402              		.loc 2 1930 0
- 16403 f616 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 16403      E0E9FFFF 
- 16404 f61e F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 16404      C0E9FFFF 
- 16405 f626 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 16405      B0F2FFFF 
- 16406              	.LBB2104:
- 16407              	.LBB2105:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 16408              		.loc 2 1565 0
- 16409 f62e F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 16409      B0F2FFFF 
- 16410 f636 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 16410      80DEFFFF 
- 16411 f63e 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 16411      80DEFFFF 
- 16412 f646 F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 16412      C0F2FFFF 
- 16413              	.LBB2106:
- 16414              	.LBB2107:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 16415              		.loc 2 1282 0
- 16416 f64e F30F6F85 		movdqu	-3392(%rbp), %xmm0
- 16416      C0F2FFFF 
- 16417 f656 F30F7F85 		movdqu	%xmm0, -7216(%rbp)
- 16417      D0E3FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 16418              		.loc 2 1283 0
- 16419 f65e 8B85D8E3 		movl	-7208(%rbp), %eax
- 16419      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 511
-
-
- 16420 f664 8985DCE3 		movl	%eax, -7204(%rbp)
- 16420      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 16421              		.loc 2 1284 0
- 16422 f66a 8B85D4E3 		movl	-7212(%rbp), %eax
- 16422      FFFF
- 16423 f670 8985D8E3 		movl	%eax, -7208(%rbp)
- 16423      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 16424              		.loc 2 1285 0
- 16425 f676 8B85D0E3 		movl	-7216(%rbp), %eax
- 16425      FFFF
- 16426 f67c 8985D4E3 		movl	%eax, -7212(%rbp)
- 16426      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 16427              		.loc 2 1286 0
- 16428 f682 C785D0E3 		movl	$0, -7216(%rbp)
- 16428      FFFF0000 
- 16428      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 16429              		.loc 2 1287 0
- 16430 f68c F30F6F85 		movdqu	-7216(%rbp), %xmm0
- 16430      D0E3FFFF 
- 16431              	.LBE2107:
- 16432              	.LBE2106:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 16433              		.loc 2 1567 0
- 16434 f694 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 16434      80DEFFFF 
- 16435 f69c 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 16435      80DEFFFF 
- 16436 f6a4 660FEF85 		pxor	-3408(%rbp), %xmm0
- 16436      B0F2FFFF 
- 16437 f6ac F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 16437      B0F2FFFF 
- 16438 f6b4 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 16438      80DEFFFF 
- 16439 f6bc F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 16439      D0F2FFFF 
- 16440              	.LBB2108:
- 16441              	.LBB2109:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 16442              		.loc 2 1282 0
- 16443 f6c4 F30F6F85 		movdqu	-3376(%rbp), %xmm0
- 16443      D0F2FFFF 
- 16444 f6cc F30F7F85 		movdqu	%xmm0, -7200(%rbp)
- 16444      E0E3FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 16445              		.loc 2 1283 0
- 16446 f6d4 8B85E8E3 		movl	-7192(%rbp), %eax
- 16446      FFFF
- 16447 f6da 8985ECE3 		movl	%eax, -7188(%rbp)
- 16447      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 16448              		.loc 2 1284 0
- 16449 f6e0 8B85E4E3 		movl	-7196(%rbp), %eax
- 16449      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 512
-
-
- 16450 f6e6 8985E8E3 		movl	%eax, -7192(%rbp)
- 16450      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 16451              		.loc 2 1285 0
- 16452 f6ec 8B85E0E3 		movl	-7200(%rbp), %eax
- 16452      FFFF
- 16453 f6f2 8985E4E3 		movl	%eax, -7196(%rbp)
- 16453      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 16454              		.loc 2 1286 0
- 16455 f6f8 C785E0E3 		movl	$0, -7200(%rbp)
- 16455      FFFF0000 
- 16455      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 16456              		.loc 2 1287 0
- 16457 f702 F30F6F85 		movdqu	-7200(%rbp), %xmm0
- 16457      E0E3FFFF 
- 16458              	.LBE2109:
- 16459              	.LBE2108:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 16460              		.loc 2 1568 0
- 16461 f70a 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 16461      80DEFFFF 
- 16462 f712 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 16462      80DEFFFF 
- 16463 f71a 660FEF85 		pxor	-3408(%rbp), %xmm0
- 16463      B0F2FFFF 
- 16464 f722 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 16464      B0F2FFFF 
- 16465 f72a 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 16465      80DEFFFF 
- 16466 f732 F30F7F85 		movdqu	%xmm0, -3360(%rbp)
- 16466      E0F2FFFF 
- 16467              	.LBB2110:
- 16468              	.LBB2111:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 16469              		.loc 2 1282 0
- 16470 f73a F30F6F85 		movdqu	-3360(%rbp), %xmm0
- 16470      E0F2FFFF 
- 16471 f742 F30F7F85 		movdqu	%xmm0, -7184(%rbp)
- 16471      F0E3FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 16472              		.loc 2 1283 0
- 16473 f74a 8B85F8E3 		movl	-7176(%rbp), %eax
- 16473      FFFF
- 16474 f750 8985FCE3 		movl	%eax, -7172(%rbp)
- 16474      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 16475              		.loc 2 1284 0
- 16476 f756 8B85F4E3 		movl	-7180(%rbp), %eax
- 16476      FFFF
- 16477 f75c 8985F8E3 		movl	%eax, -7176(%rbp)
- 16477      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 16478              		.loc 2 1285 0
- 16479 f762 8B85F0E3 		movl	-7184(%rbp), %eax
- 16479      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 513
-
-
- 16480 f768 8985F4E3 		movl	%eax, -7180(%rbp)
- 16480      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 16481              		.loc 2 1286 0
- 16482 f76e C785F0E3 		movl	$0, -7184(%rbp)
- 16482      FFFF0000 
- 16482      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 16483              		.loc 2 1287 0
- 16484 f778 F30F6F85 		movdqu	-7184(%rbp), %xmm0
- 16484      F0E3FFFF 
- 16485              	.LBE2111:
- 16486              	.LBE2110:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 16487              		.loc 2 1569 0
- 16488 f780 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 16488      80DEFFFF 
- 16489 f788 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 16489      80DEFFFF 
- 16490 f790 660FEF85 		pxor	-3408(%rbp), %xmm0
- 16490      B0F2FFFF 
- 16491 f798 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 16491      B0F2FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16492              		.loc 2 1571 0
- 16493 f7a0 F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 16493      B0F2FFFF 
- 16494              	.LBE2105:
- 16495              	.LBE2104:
-1930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(6,0x04);    /* k24 : k25 : k26 : k27 */
- 16496              		.loc 2 1930 0
- 16497 f7a8 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 16497      C0E9FFFF 
- 16498 f7b0 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 16498      C0E9FFFF 
- 16499 f7b8 F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 16499      00F3FFFF 
- 16500 f7c0 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 16500      E0E9FFFF 
- 16501 f7c8 F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 16501      F0F2FFFF 
- 16502              	.LBB2112:
- 16503              	.LBB2113:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16504              		.loc 2 178 0
- 16505 f7d0 F30F6F85 		movdqu	-3344(%rbp), %xmm0
- 16505      F0F2FFFF 
- 16506 f7d8 F30F6F8D 		movdqu	-3328(%rbp), %xmm1
- 16506      00F3FFFF 
- 16507 f7e0 660FEFC1 		pxor	%xmm1, %xmm0
- 16508              	.LBE2113:
- 16509              	.LBE2112:
-1930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(6,0x04);    /* k24 : k25 : k26 : k27 */
- 16510              		.loc 2 1930 0
- 16511 f7e4 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 16511      C0E9FFFF 
- 16512 f7ec 488B85D8 		movq	-8232(%rbp), %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 514
-
-
- 16512      DFFFFF
- 16513 f7f3 4883C060 		addq	$96, %rax
- 16514 f7f7 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 16514      C0E9FFFF 
- 16515 f7ff F30F7F00 		movdqu	%xmm0, (%rax)
- 16516 f803 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 16516      C0E9FFFF 
- 16517 f80b F30F7F85 		movdqu	%xmm0, -3312(%rbp)
- 16517      10F3FFFF 
- 16518              	.LBB2114:
- 16519              	.LBB2115:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 16520              		.loc 2 1656 0
- 16521 f813 F30F6F85 		movdqu	-3312(%rbp), %xmm0
- 16521      10F3FFFF 
- 16522 f81b F30F7F85 		movdqu	%xmm0, -7152(%rbp)
- 16522      10E4FFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 16523              		.loc 2 1657 0
- 16524 f823 8B851CE4 		movl	-7140(%rbp), %eax
- 16524      FFFF
- 16525 f829 898528F3 		movl	%eax, -3288(%rbp)
- 16525      FFFF
- 16526              	.LBB2116:
- 16527              	.LBB2117:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 16528              		.loc 2 740 0
- 16529 f82f 8B8528F3 		movl	-3288(%rbp), %eax
- 16529      FFFF
- 16530 f835 898500E4 		movl	%eax, -7168(%rbp)
- 16530      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 16531              		.loc 2 741 0
- 16532 f83b C7852CF3 		movl	$0, -3284(%rbp)
- 16532      FFFF0000 
- 16532      0000
- 16533 f845 EB36     		jmp	.L394
- 16534              	.L395:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 16535              		.loc 2 742 0
- 16536 f847 8B8D2CF3 		movl	-3284(%rbp), %ecx
- 16536      FFFF
- 16537 f84d 8B852CF3 		movl	-3284(%rbp), %eax
- 16537      FFFF
- 16538 f853 89C0     		mov	%eax, %eax
- 16539 f855 0FB68405 		movzbl	-7168(%rbp,%rax), %eax
- 16539      00E4FFFF 
- 16540 f85d 0FB6C0   		movzbl	%al, %eax
- 16541 f860 89C2     		mov	%eax, %edx
- 16542 f862 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 16542      000000
- 16543 f869 0FB61402 		movzbl	(%rdx,%rax), %edx
- 16544 f86d 89C8     		mov	%ecx, %eax
- 16545 f86f 88940500 		movb	%dl, -7168(%rbp,%rax)
- 16545      E4FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 16546              		.loc 2 741 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 515
-
-
- 16547 f876 83852CF3 		addl	$1, -3284(%rbp)
- 16547      FFFF01
- 16548              	.L394:
- 16549 f87d 83BD2CF3 		cmpl	$3, -3284(%rbp)
- 16549      FFFF03
- 16550 f884 76C1     		jbe	.L395
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 16551              		.loc 2 743 0
- 16552 f886 8B8500E4 		movl	-7168(%rbp), %eax
- 16552      FFFF
- 16553              	.LBE2117:
- 16554              	.LBE2116:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 16555              		.loc 2 1657 0
- 16556 f88c 898524F3 		movl	%eax, -3292(%rbp)
- 16556      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 16557              		.loc 2 1659 0
- 16558 f892 8B8524F3 		movl	-3292(%rbp), %eax
- 16558      FFFF
- 16559 f898 89851CE4 		movl	%eax, -7140(%rbp)
- 16559      FFFF
- 16560 f89e 8B851CE4 		movl	-7140(%rbp), %eax
- 16560      FFFF
- 16561 f8a4 898518E4 		movl	%eax, -7144(%rbp)
- 16561      FFFF
- 16562 f8aa 8B8518E4 		movl	-7144(%rbp), %eax
- 16562      FFFF
- 16563 f8b0 898514E4 		movl	%eax, -7148(%rbp)
- 16563      FFFF
- 16564 f8b6 8B8514E4 		movl	-7148(%rbp), %eax
- 16564      FFFF
- 16565 f8bc 898510E4 		movl	%eax, -7152(%rbp)
- 16565      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 16566              		.loc 2 1660 0
- 16567 f8c2 F30F6F85 		movdqu	-7152(%rbp), %xmm0
- 16567      10E4FFFF 
- 16568              	.LBE2115:
- 16569              	.LBE2114:
-1931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(7);         /* k28 : k29 : k30 : k31 */
- 16570              		.loc 2 1931 0
- 16571 f8ca F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 16571      E0E9FFFF 
- 16572 f8d2 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 16572      D0E9FFFF 
- 16573 f8da F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 16573      30F3FFFF 
- 16574              	.LBB2118:
- 16575              	.LBB2119:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 16576              		.loc 2 1565 0
- 16577 f8e2 F30F6F85 		movdqu	-3280(%rbp), %xmm0
- 16577      30F3FFFF 
- 16578 f8ea 660F7F85 		movdqa	%xmm0, -8560(%rbp)
- 16578      90DEFFFF 
- 16579 f8f2 660F6F85 		movdqa	-8560(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 516
-
-
- 16579      90DEFFFF 
- 16580 f8fa F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 16580      40F3FFFF 
- 16581              	.LBB2120:
- 16582              	.LBB2121:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 16583              		.loc 2 1282 0
- 16584 f902 F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 16584      40F3FFFF 
- 16585 f90a F30F7F85 		movdqu	%xmm0, -7136(%rbp)
- 16585      20E4FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 16586              		.loc 2 1283 0
- 16587 f912 8B8528E4 		movl	-7128(%rbp), %eax
- 16587      FFFF
- 16588 f918 89852CE4 		movl	%eax, -7124(%rbp)
- 16588      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 16589              		.loc 2 1284 0
- 16590 f91e 8B8524E4 		movl	-7132(%rbp), %eax
- 16590      FFFF
- 16591 f924 898528E4 		movl	%eax, -7128(%rbp)
- 16591      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 16592              		.loc 2 1285 0
- 16593 f92a 8B8520E4 		movl	-7136(%rbp), %eax
- 16593      FFFF
- 16594 f930 898524E4 		movl	%eax, -7132(%rbp)
- 16594      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 16595              		.loc 2 1286 0
- 16596 f936 C78520E4 		movl	$0, -7136(%rbp)
- 16596      FFFF0000 
- 16596      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 16597              		.loc 2 1287 0
- 16598 f940 F30F6F85 		movdqu	-7136(%rbp), %xmm0
- 16598      20E4FFFF 
- 16599              	.LBE2121:
- 16600              	.LBE2120:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 16601              		.loc 2 1567 0
- 16602 f948 660F7F85 		movdqa	%xmm0, -8560(%rbp)
- 16602      90DEFFFF 
- 16603 f950 660F6F85 		movdqa	-8560(%rbp), %xmm0
- 16603      90DEFFFF 
- 16604 f958 660FEF85 		pxor	-3280(%rbp), %xmm0
- 16604      30F3FFFF 
- 16605 f960 F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 16605      30F3FFFF 
- 16606 f968 660F6F85 		movdqa	-8560(%rbp), %xmm0
- 16606      90DEFFFF 
- 16607 f970 F30F7F85 		movdqu	%xmm0, -3248(%rbp)
- 16607      50F3FFFF 
- 16608              	.LBB2122:
- 16609              	.LBB2123:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 517
-
-
- 16610              		.loc 2 1282 0
- 16611 f978 F30F6F85 		movdqu	-3248(%rbp), %xmm0
- 16611      50F3FFFF 
- 16612 f980 F30F7F85 		movdqu	%xmm0, -7120(%rbp)
- 16612      30E4FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 16613              		.loc 2 1283 0
- 16614 f988 8B8538E4 		movl	-7112(%rbp), %eax
- 16614      FFFF
- 16615 f98e 89853CE4 		movl	%eax, -7108(%rbp)
- 16615      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 16616              		.loc 2 1284 0
- 16617 f994 8B8534E4 		movl	-7116(%rbp), %eax
- 16617      FFFF
- 16618 f99a 898538E4 		movl	%eax, -7112(%rbp)
- 16618      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 16619              		.loc 2 1285 0
- 16620 f9a0 8B8530E4 		movl	-7120(%rbp), %eax
- 16620      FFFF
- 16621 f9a6 898534E4 		movl	%eax, -7116(%rbp)
- 16621      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 16622              		.loc 2 1286 0
- 16623 f9ac C78530E4 		movl	$0, -7120(%rbp)
- 16623      FFFF0000 
- 16623      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 16624              		.loc 2 1287 0
- 16625 f9b6 F30F6F85 		movdqu	-7120(%rbp), %xmm0
- 16625      30E4FFFF 
- 16626              	.LBE2123:
- 16627              	.LBE2122:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 16628              		.loc 2 1568 0
- 16629 f9be 660F7F85 		movdqa	%xmm0, -8560(%rbp)
- 16629      90DEFFFF 
- 16630 f9c6 660F6F85 		movdqa	-8560(%rbp), %xmm0
- 16630      90DEFFFF 
- 16631 f9ce 660FEF85 		pxor	-3280(%rbp), %xmm0
- 16631      30F3FFFF 
- 16632 f9d6 F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 16632      30F3FFFF 
- 16633 f9de 660F6F85 		movdqa	-8560(%rbp), %xmm0
- 16633      90DEFFFF 
- 16634 f9e6 F30F7F85 		movdqu	%xmm0, -3232(%rbp)
- 16634      60F3FFFF 
- 16635              	.LBB2124:
- 16636              	.LBB2125:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 16637              		.loc 2 1282 0
- 16638 f9ee F30F6F85 		movdqu	-3232(%rbp), %xmm0
- 16638      60F3FFFF 
- 16639 f9f6 F30F7F85 		movdqu	%xmm0, -7104(%rbp)
- 16639      40E4FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 518
-
-
- 16640              		.loc 2 1283 0
- 16641 f9fe 8B8548E4 		movl	-7096(%rbp), %eax
- 16641      FFFF
- 16642 fa04 89854CE4 		movl	%eax, -7092(%rbp)
- 16642      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 16643              		.loc 2 1284 0
- 16644 fa0a 8B8544E4 		movl	-7100(%rbp), %eax
- 16644      FFFF
- 16645 fa10 898548E4 		movl	%eax, -7096(%rbp)
- 16645      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 16646              		.loc 2 1285 0
- 16647 fa16 8B8540E4 		movl	-7104(%rbp), %eax
- 16647      FFFF
- 16648 fa1c 898544E4 		movl	%eax, -7100(%rbp)
- 16648      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 16649              		.loc 2 1286 0
- 16650 fa22 C78540E4 		movl	$0, -7104(%rbp)
- 16650      FFFF0000 
- 16650      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 16651              		.loc 2 1287 0
- 16652 fa2c F30F6F85 		movdqu	-7104(%rbp), %xmm0
- 16652      40E4FFFF 
- 16653              	.LBE2125:
- 16654              	.LBE2124:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 16655              		.loc 2 1569 0
- 16656 fa34 660F7F85 		movdqa	%xmm0, -8560(%rbp)
- 16656      90DEFFFF 
- 16657 fa3c 660F6F85 		movdqa	-8560(%rbp), %xmm0
- 16657      90DEFFFF 
- 16658 fa44 660FEF85 		pxor	-3280(%rbp), %xmm0
- 16658      30F3FFFF 
- 16659 fa4c F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 16659      30F3FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16660              		.loc 2 1571 0
- 16661 fa54 F30F6F85 		movdqu	-3280(%rbp), %xmm0
- 16661      30F3FFFF 
- 16662              	.LBE2119:
- 16663              	.LBE2118:
-1931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(7);         /* k28 : k29 : k30 : k31 */
- 16664              		.loc 2 1931 0
- 16665 fa5c F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 16665      D0E9FFFF 
- 16666 fa64 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 16666      D0E9FFFF 
- 16667 fa6c F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 16667      80F3FFFF 
- 16668 fa74 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 16668      E0E9FFFF 
- 16669 fa7c F30F7F85 		movdqu	%xmm0, -3216(%rbp)
- 16669      70F3FFFF 
- 16670              	.LBB2126:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 519
-
-
- 16671              	.LBB2127:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16672              		.loc 2 178 0
- 16673 fa84 F30F6F85 		movdqu	-3216(%rbp), %xmm0
- 16673      70F3FFFF 
- 16674 fa8c F30F6F8D 		movdqu	-3200(%rbp), %xmm1
- 16674      80F3FFFF 
- 16675 fa94 660FEFC1 		pxor	%xmm1, %xmm0
- 16676              	.LBE2127:
- 16677              	.LBE2126:
-1931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(7);         /* k28 : k29 : k30 : k31 */
- 16678              		.loc 2 1931 0
- 16679 fa98 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 16679      D0E9FFFF 
- 16680 faa0 488B85D8 		movq	-8232(%rbp), %rax
- 16680      DFFFFF
- 16681 faa7 4883C070 		addq	$112, %rax
- 16682 faab F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 16682      D0E9FFFF 
- 16683 fab3 F30F7F00 		movdqu	%xmm0, (%rax)
- 16684 fab7 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 16684      D0E9FFFF 
- 16685 fabf F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 16685      A0F3FFFF 
- 16686              	.LBB2128:
- 16687              	.LBB2129:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 16688              		.loc 2 1681 0
- 16689 fac7 B8080000 		movl	$8, %eax
- 16689      00
- 16690 facc 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 16690      00000000 
- 16691 fad4 F30F7F85 		movdqu	%xmm0, -3136(%rbp)
- 16691      C0F3FFFF 
- 16692 fadc 8985BCF3 		movl	%eax, -3140(%rbp)
- 16692      FFFF
- 16693              	.LBB2130:
- 16694              	.LBB2131:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 16695              		.loc 2 522 0
- 16696 fae2 F30F6F85 		movdqu	-3136(%rbp), %xmm0
- 16696      C0F3FFFF 
- 16697 faea F30F7F85 		movdqu	%xmm0, -7024(%rbp)
- 16697      90E4FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 16698              		.loc 2 523 0
- 16699 faf2 B8030000 		movl	$3, %eax
- 16699      00
- 16700 faf7 4898     		cltq
- 16701 faf9 8B95BCF3 		movl	-3140(%rbp), %edx
- 16701      FFFF
- 16702 faff 89948590 		movl	%edx, -7024(%rbp,%rax,4)
- 16702      E4FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 16703              		.loc 2 524 0
- 16704 fb06 F30F6F85 		movdqu	-7024(%rbp), %xmm0
- 16704      90E4FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 520
-
-
- 16705 fb0e F30F7F85 		movdqu	%xmm0, -3136(%rbp)
- 16705      C0F3FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16706              		.loc 2 526 0
- 16707 fb16 F30F6F85 		movdqu	-3136(%rbp), %xmm0
- 16707      C0F3FFFF 
- 16708              	.LBE2131:
- 16709              	.LBE2130:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 16710              		.loc 2 1681 0
- 16711 fb1e 660F7F85 		movdqa	%xmm0, -8528(%rbp)
- 16711      B0DEFFFF 
- 16712 fb26 F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 16712      A0F3FFFF 
- 16713 fb2e F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 16713      D0F3FFFF 
- 16714 fb36 F30F6F85 		movdqu	-3120(%rbp), %xmm0
- 16714      D0F3FFFF 
- 16715 fb3e F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 16715      F0F3FFFF 
- 16716 fb46 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 16716      000000
- 16717 fb4d 488985E8 		movq	%rax, -3096(%rbp)
- 16717      F3FFFF
- 16718              	.LBB2132:
- 16719              	.LBB2133:
- 16720              	.LBB2134:
- 16721              	.LBB2135:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 16722              		.loc 2 851 0
- 16723 fb54 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 16723      00000000 
- 16724 fb5c F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 16724      10F4FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 16725              		.loc 2 854 0
- 16726 fb64 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 16726      00000000 
- 16727 fb6c F30F6F8D 		movdqu	-3088(%rbp), %xmm1
- 16727      F0F3FFFF 
- 16728 fb74 F30F7F8D 		movdqu	%xmm1, -2976(%rbp)
- 16728      60F4FFFF 
- 16729 fb7c F30F7F85 		movdqu	%xmm0, -2992(%rbp)
- 16729      50F4FFFF 
- 16730              	.LBB2136:
- 16731              	.LBB2137:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 16732              		.loc 2 206 0
- 16733 fb84 F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 16733      50F4FFFF 
- 16734 fb8c F30F6F8D 		movdqu	-2976(%rbp), %xmm1
- 16734      60F4FFFF 
- 16735 fb94 660FDBC1 		pand	%xmm1, %xmm0
- 16736              	.LBE2137:
- 16737              	.LBE2136:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 16738              		.loc 2 854 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 521
-
-
- 16739 fb98 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 16739      40F4FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 16740              		.loc 2 862 0
- 16741 fba0 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 16741      00000000 
- 16742 fba8 F30F6F8D 		movdqu	-3088(%rbp), %xmm1
- 16742      F0F3FFFF 
- 16743 fbb0 F30F7F8D 		movdqu	%xmm1, -2944(%rbp)
- 16743      80F4FFFF 
- 16744 fbb8 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 16744      70F4FFFF 
- 16745              	.LBB2138:
- 16746              		.loc 2 2642 0
- 16747 fbc0 0FB68580 		movzbl	-2944(%rbp), %eax
- 16747      F4FFFF
- 16748 fbc7 0FB69570 		movzbl	-2960(%rbp), %edx
- 16748      F4FFFF
- 16749 fbce 0FB6C0   		movzbl	%al, %eax
- 16750 fbd1 6689853E 		movw	%ax, -8898(%rbp)
- 16750      DDFFFF
- 16751 fbd8 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16751      DDFFFF
- 16752 fbdf F6F2     		divb	%dl
- 16753 fbe1 4189C7   		movl	%eax, %r15d
- 16754 fbe4 0FB68581 		movzbl	-2943(%rbp), %eax
- 16754      F4FFFF
- 16755 fbeb 0FB69571 		movzbl	-2959(%rbp), %edx
- 16755      F4FFFF
- 16756 fbf2 0FB6C0   		movzbl	%al, %eax
- 16757 fbf5 6689853E 		movw	%ax, -8898(%rbp)
- 16757      DDFFFF
- 16758 fbfc 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16758      DDFFFF
- 16759 fc03 F6F2     		divb	%dl
- 16760 fc05 8885CFDE 		movb	%al, -8497(%rbp)
- 16760      FFFF
- 16761 fc0b 0FB68582 		movzbl	-2942(%rbp), %eax
- 16761      F4FFFF
- 16762 fc12 0FB69572 		movzbl	-2958(%rbp), %edx
- 16762      F4FFFF
- 16763 fc19 0FB6C0   		movzbl	%al, %eax
- 16764 fc1c 6689853E 		movw	%ax, -8898(%rbp)
- 16764      DDFFFF
- 16765 fc23 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16765      DDFFFF
- 16766 fc2a F6F2     		divb	%dl
- 16767 fc2c 8885CEDE 		movb	%al, -8498(%rbp)
- 16767      FFFF
- 16768 fc32 0FB68583 		movzbl	-2941(%rbp), %eax
- 16768      F4FFFF
- 16769 fc39 0FB69573 		movzbl	-2957(%rbp), %edx
- 16769      F4FFFF
- 16770 fc40 0FB6C0   		movzbl	%al, %eax
- 16771 fc43 6689853E 		movw	%ax, -8898(%rbp)
- 16771      DDFFFF
- 16772 fc4a 0FB7853E 		movzwl	-8898(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 522
-
-
- 16772      DDFFFF
- 16773 fc51 F6F2     		divb	%dl
- 16774 fc53 8885CDDE 		movb	%al, -8499(%rbp)
- 16774      FFFF
- 16775 fc59 0FB68584 		movzbl	-2940(%rbp), %eax
- 16775      F4FFFF
- 16776 fc60 0FB69574 		movzbl	-2956(%rbp), %edx
- 16776      F4FFFF
- 16777 fc67 0FB6C0   		movzbl	%al, %eax
- 16778 fc6a 6689853E 		movw	%ax, -8898(%rbp)
- 16778      DDFFFF
- 16779 fc71 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16779      DDFFFF
- 16780 fc78 F6F2     		divb	%dl
- 16781 fc7a 8885CCDE 		movb	%al, -8500(%rbp)
- 16781      FFFF
- 16782 fc80 0FB68585 		movzbl	-2939(%rbp), %eax
- 16782      F4FFFF
- 16783 fc87 0FB69575 		movzbl	-2955(%rbp), %edx
- 16783      F4FFFF
- 16784 fc8e 0FB6C0   		movzbl	%al, %eax
- 16785 fc91 6689853E 		movw	%ax, -8898(%rbp)
- 16785      DDFFFF
- 16786 fc98 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16786      DDFFFF
- 16787 fc9f F6F2     		divb	%dl
- 16788 fca1 4189C1   		movl	%eax, %r9d
- 16789 fca4 0FB68586 		movzbl	-2938(%rbp), %eax
- 16789      F4FFFF
- 16790 fcab 0FB69576 		movzbl	-2954(%rbp), %edx
- 16790      F4FFFF
- 16791 fcb2 0FB6C0   		movzbl	%al, %eax
- 16792 fcb5 6689853E 		movw	%ax, -8898(%rbp)
- 16792      DDFFFF
- 16793 fcbc 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16793      DDFFFF
- 16794 fcc3 F6F2     		divb	%dl
- 16795 fcc5 89C7     		movl	%eax, %edi
- 16796 fcc7 0FB68587 		movzbl	-2937(%rbp), %eax
- 16796      F4FFFF
- 16797 fcce 0FB69577 		movzbl	-2953(%rbp), %edx
- 16797      F4FFFF
- 16798 fcd5 0FB6C0   		movzbl	%al, %eax
- 16799 fcd8 6689853E 		movw	%ax, -8898(%rbp)
- 16799      DDFFFF
- 16800 fcdf 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16800      DDFFFF
- 16801 fce6 F6F2     		divb	%dl
- 16802 fce8 89C3     		movl	%eax, %ebx
- 16803 fcea 0FB68588 		movzbl	-2936(%rbp), %eax
- 16803      F4FFFF
- 16804 fcf1 0FB69578 		movzbl	-2952(%rbp), %edx
- 16804      F4FFFF
- 16805 fcf8 0FB6C0   		movzbl	%al, %eax
- 16806 fcfb 6689853E 		movw	%ax, -8898(%rbp)
- 16806      DDFFFF
- 16807 fd02 0FB7853E 		movzwl	-8898(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 523
-
-
- 16807      DDFFFF
- 16808 fd09 F6F2     		divb	%dl
- 16809 fd0b 4189C2   		movl	%eax, %r10d
- 16810 fd0e 0FB68589 		movzbl	-2935(%rbp), %eax
- 16810      F4FFFF
- 16811 fd15 0FB69579 		movzbl	-2951(%rbp), %edx
- 16811      F4FFFF
- 16812 fd1c 0FB6C0   		movzbl	%al, %eax
- 16813 fd1f 6689853E 		movw	%ax, -8898(%rbp)
- 16813      DDFFFF
- 16814 fd26 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16814      DDFFFF
- 16815 fd2d F6F2     		divb	%dl
- 16816 fd2f 4189C3   		movl	%eax, %r11d
- 16817 fd32 0FB6858A 		movzbl	-2934(%rbp), %eax
- 16817      F4FFFF
- 16818 fd39 0FB6957A 		movzbl	-2950(%rbp), %edx
- 16818      F4FFFF
- 16819 fd40 0FB6C0   		movzbl	%al, %eax
- 16820 fd43 6689853E 		movw	%ax, -8898(%rbp)
- 16820      DDFFFF
- 16821 fd4a 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16821      DDFFFF
- 16822 fd51 F6F2     		divb	%dl
- 16823 fd53 4189C4   		movl	%eax, %r12d
- 16824 fd56 0FB6858B 		movzbl	-2933(%rbp), %eax
- 16824      F4FFFF
- 16825 fd5d 0FB6957B 		movzbl	-2949(%rbp), %edx
- 16825      F4FFFF
- 16826 fd64 0FB6C0   		movzbl	%al, %eax
- 16827 fd67 6689853E 		movw	%ax, -8898(%rbp)
- 16827      DDFFFF
- 16828 fd6e 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16828      DDFFFF
- 16829 fd75 F6F2     		divb	%dl
- 16830 fd77 4189C5   		movl	%eax, %r13d
- 16831 fd7a 0FB6858C 		movzbl	-2932(%rbp), %eax
- 16831      F4FFFF
- 16832 fd81 0FB6957C 		movzbl	-2948(%rbp), %edx
- 16832      F4FFFF
- 16833 fd88 0FB6C0   		movzbl	%al, %eax
- 16834 fd8b 6689853E 		movw	%ax, -8898(%rbp)
- 16834      DDFFFF
- 16835 fd92 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16835      DDFFFF
- 16836 fd99 F6F2     		divb	%dl
- 16837 fd9b 4189C6   		movl	%eax, %r14d
- 16838 fd9e 0FB6858D 		movzbl	-2931(%rbp), %eax
- 16838      F4FFFF
- 16839 fda5 0FB6957D 		movzbl	-2947(%rbp), %edx
- 16839      F4FFFF
- 16840 fdac 0FB6C0   		movzbl	%al, %eax
- 16841 fdaf 6689853E 		movw	%ax, -8898(%rbp)
- 16841      DDFFFF
- 16842 fdb6 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16842      DDFFFF
- 16843 fdbd F6F2     		divb	%dl
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 524
-
-
- 16844 fdbf 4189C0   		movl	%eax, %r8d
- 16845 fdc2 0FB6858E 		movzbl	-2930(%rbp), %eax
- 16845      F4FFFF
- 16846 fdc9 0FB6957E 		movzbl	-2946(%rbp), %edx
- 16846      F4FFFF
- 16847 fdd0 0FB6C0   		movzbl	%al, %eax
- 16848 fdd3 6689853E 		movw	%ax, -8898(%rbp)
- 16848      DDFFFF
- 16849 fdda 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16849      DDFFFF
- 16850 fde1 F6F2     		divb	%dl
- 16851 fde3 89C6     		movl	%eax, %esi
- 16852 fde5 0FB6858F 		movzbl	-2929(%rbp), %eax
- 16852      F4FFFF
- 16853 fdec 0FB6957F 		movzbl	-2945(%rbp), %edx
- 16853      F4FFFF
- 16854 fdf3 0FB6C0   		movzbl	%al, %eax
- 16855 fdf6 6689853E 		movw	%ax, -8898(%rbp)
- 16855      DDFFFF
- 16856 fdfd 0FB7853E 		movzwl	-8898(%rbp), %eax
- 16856      DDFFFF
- 16857 fe04 F6F2     		divb	%dl
- 16858 fe06 89C1     		movl	%eax, %ecx
- 16859              	.LBB2139:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 16860              		.loc 2 346 0
- 16861 fe08 0FB6D3   		movzbl	%bl, %edx
- 16862 fe0b 400FB6C7 		movzbl	%dil, %eax
- 16863 fe0f 48C1E208 		salq	$8, %rdx
- 16864 fe13 4809C2   		orq	%rax, %rdx
- 16865 fe16 410FB6C1 		movzbl	%r9b, %eax
- 16866 fe1a 48C1E208 		salq	$8, %rdx
- 16867 fe1e 4809C2   		orq	%rax, %rdx
- 16868 fe21 0FB685CC 		movzbl	-8500(%rbp), %eax
- 16868      DEFFFF
- 16869 fe28 48C1E208 		salq	$8, %rdx
- 16870 fe2c 4809C2   		orq	%rax, %rdx
- 16871 fe2f 0FB685CD 		movzbl	-8499(%rbp), %eax
- 16871      DEFFFF
- 16872 fe36 48C1E208 		salq	$8, %rdx
- 16873 fe3a 4809C2   		orq	%rax, %rdx
- 16874 fe3d 0FB685CE 		movzbl	-8498(%rbp), %eax
- 16874      DEFFFF
- 16875 fe44 48C1E208 		salq	$8, %rdx
- 16876 fe48 4809C2   		orq	%rax, %rdx
- 16877 fe4b 0FB685CF 		movzbl	-8497(%rbp), %eax
- 16877      DEFFFF
- 16878 fe52 48C1E208 		salq	$8, %rdx
- 16879 fe56 4809C2   		orq	%rax, %rdx
- 16880 fe59 410FB6C7 		movzbl	%r15b, %eax
- 16881 fe5d 48C1E208 		salq	$8, %rdx
- 16882 fe61 4809C2   		orq	%rax, %rdx
- 16883 fe64 0FB6C1   		movzbl	%cl, %eax
- 16884 fe67 400FB6CE 		movzbl	%sil, %ecx
- 16885 fe6b 48C1E008 		salq	$8, %rax
- 16886 fe6f 4809C8   		orq	%rcx, %rax
- 16887 fe72 410FB6C8 		movzbl	%r8b, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 525
-
-
- 16888 fe76 48C1E008 		salq	$8, %rax
- 16889 fe7a 4809C8   		orq	%rcx, %rax
- 16890 fe7d 410FB6CE 		movzbl	%r14b, %ecx
- 16891 fe81 48C1E008 		salq	$8, %rax
- 16892 fe85 4809C8   		orq	%rcx, %rax
- 16893 fe88 410FB6CD 		movzbl	%r13b, %ecx
- 16894 fe8c 48C1E008 		salq	$8, %rax
- 16895 fe90 4809C8   		orq	%rcx, %rax
- 16896 fe93 410FB6CC 		movzbl	%r12b, %ecx
- 16897 fe97 48C1E008 		salq	$8, %rax
- 16898 fe9b 4809C8   		orq	%rcx, %rax
- 16899 fe9e 410FB6CB 		movzbl	%r11b, %ecx
- 16900 fea2 48C1E008 		salq	$8, %rax
- 16901 fea6 4809C8   		orq	%rcx, %rax
- 16902 fea9 410FB6CA 		movzbl	%r10b, %ecx
- 16903 fead 48C1E008 		salq	$8, %rax
- 16904 feb1 4809C8   		orq	%rcx, %rax
- 16905 feb4 48899570 		movq	%rdx, -8848(%rbp)
- 16905      DDFFFF
- 16906 febb 48898578 		movq	%rax, -8840(%rbp)
- 16906      DDFFFF
- 16907 fec2 660F6F85 		movdqa	-8848(%rbp), %xmm0
- 16907      70DDFFFF 
- 16908              	.LBE2139:
- 16909              	.LBE2138:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 16910              		.loc 2 862 0
- 16911 feca F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 16911      30F4FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 16912              		.loc 2 866 0
- 16913 fed2 C7850CF4 		movl	$0, -3060(%rbp)
- 16913      FFFF0000 
- 16913      0000
- 16914 fedc E9860200 		jmp	.L396
- 16914      00
- 16915              	.L405:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 16916              		.loc 2 868 0
- 16917 fee1 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 16917      00000000 
- 16918 fee9 F30F7F85 		movdqu	%xmm0, -2912(%rbp)
- 16918      A0F4FFFF 
- 16919 fef1 F30F6F85 		movdqu	-3024(%rbp), %xmm0
- 16919      30F4FFFF 
- 16920 fef9 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 16920      90F4FFFF 
- 16921              	.LBB2140:
- 16922              	.LBB2141:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 16923              		.loc 2 380 0
- 16924 ff01 F30F6F85 		movdqu	-2912(%rbp), %xmm0
- 16924      A0F4FFFF 
- 16925 ff09 F30F7F85 		movdqu	%xmm0, -6992(%rbp)
- 16925      B0E4FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 16926              		.loc 2 381 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 526
-
-
- 16927 ff11 F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 16927      90F4FFFF 
- 16928 ff19 F30F7F85 		movdqu	%xmm0, -7008(%rbp)
- 16928      A0E4FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16929              		.loc 2 383 0
- 16930 ff21 C785BCF4 		movl	$0, -2884(%rbp)
- 16930      FFFF0000 
- 16930      0000
- 16931 ff2b EB5C     		jmp	.L397
- 16932              	.L400:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 16933              		.loc 2 385 0
- 16934 ff2d 8B85BCF4 		movl	-2884(%rbp), %eax
- 16934      FFFF
- 16935 ff33 89C0     		mov	%eax, %eax
- 16936 ff35 0FB68405 		movzbl	-7008(%rbp,%rax), %eax
- 16936      A0E4FFFF 
- 16937 ff3d 84C0     		testb	%al, %al
- 16938 ff3f 7912     		jns	.L398
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 16939              		.loc 2 386 0
- 16940 ff41 8B85BCF4 		movl	-2884(%rbp), %eax
- 16940      FFFF
- 16941 ff47 89C0     		mov	%eax, %eax
- 16942 ff49 C68405C0 		movb	$0, -6976(%rbp,%rax)
- 16942      E4FFFF00 
- 16943 ff51 EB2F     		jmp	.L399
- 16944              	.L398:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 16945              		.loc 2 388 0
- 16946 ff53 8B8DBCF4 		movl	-2884(%rbp), %ecx
- 16946      FFFF
- 16947 ff59 8B85BCF4 		movl	-2884(%rbp), %eax
- 16947      FFFF
- 16948 ff5f 89C0     		mov	%eax, %eax
- 16949 ff61 0FB68405 		movzbl	-7008(%rbp,%rax), %eax
- 16949      A0E4FFFF 
- 16950 ff69 0FB6C0   		movzbl	%al, %eax
- 16951 ff6c 83E00F   		andl	$15, %eax
- 16952 ff6f 4898     		cltq
- 16953 ff71 0FB69405 		movzbl	-6992(%rbp,%rax), %edx
- 16953      B0E4FFFF 
- 16954 ff79 89C8     		mov	%ecx, %eax
- 16955 ff7b 889405C0 		movb	%dl, -6976(%rbp,%rax)
- 16955      E4FFFF
- 16956              	.L399:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16957              		.loc 2 383 0
- 16958 ff82 8385BCF4 		addl	$1, -2884(%rbp)
- 16958      FFFF01
- 16959              	.L397:
- 16960 ff89 83BDBCF4 		cmpl	$15, -2884(%rbp)
- 16960      FFFF0F
- 16961 ff90 769B     		jbe	.L400
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 16962              		.loc 2 391 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 527
-
-
- 16963 ff92 F30F6F85 		movdqu	-6976(%rbp), %xmm0
- 16963      C0E4FFFF 
- 16964              	.LBE2141:
- 16965              	.LBE2140:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 16966              		.loc 2 868 0
- 16967 ff9a F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 16967      20F4FFFF 
- 16968 ffa2 F30F6F85 		movdqu	-3008(%rbp), %xmm0
- 16968      40F4FFFF 
- 16969 ffaa F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 16969      D0F4FFFF 
- 16970 ffb2 F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 16970      20F4FFFF 
- 16971 ffba F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 16971      C0F4FFFF 
- 16972              	.LBB2142:
- 16973              	.LBB2143:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 16974              		.loc 2 234 0
- 16975 ffc2 F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 16975      C0F4FFFF 
- 16976 ffca F30F6F8D 		movdqu	-2864(%rbp), %xmm1
- 16976      D0F4FFFF 
- 16977 ffd2 660FEBC1 		por	%xmm1, %xmm0
- 16978              	.LBE2143:
- 16979              	.LBE2142:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 16980              		.loc 2 870 0
- 16981 ffd6 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 16981      20F4FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 16982              		.loc 2 872 0
- 16983 ffde 8B850CF4 		mov	-3060(%rbp), %eax
- 16983      FFFF
- 16984 ffe4 48C1E004 		salq	$4, %rax
- 16985 ffe8 480385E8 		addq	-3096(%rbp), %rax
- 16985      F3FFFF
- 16986 ffef 660F6F00 		movdqa	(%rax), %xmm0
- 16987 fff3 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 16987      F0F4FFFF 
- 16988 fffb F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 16988      20F4FFFF 
- 16989 10003 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 16989      E0F4FFFF 
- 16990              	.LBB2144:
- 16991              	.LBB2145:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 16992              		.loc 2 380 0
- 16993 1000b F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 16993      F0F4FFFF 
- 16994 10013 F30F7F85 		movdqu	%xmm0, -6944(%rbp)
- 16994      E0E4FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 16995              		.loc 2 381 0
- 16996 1001b F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 16996      E0F4FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 528
-
-
- 16997 10023 F30F7F85 		movdqu	%xmm0, -6960(%rbp)
- 16997      D0E4FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 16998              		.loc 2 383 0
- 16999 1002b C7850CF5 		movl	$0, -2804(%rbp)
- 16999      FFFF0000 
- 16999      0000
- 17000 10035 EB5C     		jmp	.L401
- 17001              	.L404:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 17002              		.loc 2 385 0
- 17003 10037 8B850CF5 		movl	-2804(%rbp), %eax
- 17003      FFFF
- 17004 1003d 89C0     		mov	%eax, %eax
- 17005 1003f 0FB68405 		movzbl	-6960(%rbp,%rax), %eax
- 17005      D0E4FFFF 
- 17006 10047 84C0     		testb	%al, %al
- 17007 10049 7912     		jns	.L402
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 17008              		.loc 2 386 0
- 17009 1004b 8B850CF5 		movl	-2804(%rbp), %eax
- 17009      FFFF
- 17010 10051 89C0     		mov	%eax, %eax
- 17011 10053 C68405F0 		movb	$0, -6928(%rbp,%rax)
- 17011      E4FFFF00 
- 17012 1005b EB2F     		jmp	.L403
- 17013              	.L402:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 17014              		.loc 2 388 0
- 17015 1005d 8B8D0CF5 		movl	-2804(%rbp), %ecx
- 17015      FFFF
- 17016 10063 8B850CF5 		movl	-2804(%rbp), %eax
- 17016      FFFF
- 17017 10069 89C0     		mov	%eax, %eax
- 17018 1006b 0FB68405 		movzbl	-6960(%rbp,%rax), %eax
- 17018      D0E4FFFF 
- 17019 10073 0FB6C0   		movzbl	%al, %eax
- 17020 10076 83E00F   		andl	$15, %eax
- 17021 10079 4898     		cltq
- 17022 1007b 0FB69405 		movzbl	-6944(%rbp,%rax), %edx
- 17022      E0E4FFFF 
- 17023 10083 89C8     		mov	%ecx, %eax
- 17024 10085 889405F0 		movb	%dl, -6928(%rbp,%rax)
- 17024      E4FFFF
- 17025              	.L403:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 17026              		.loc 2 383 0
- 17027 1008c 83850CF5 		addl	$1, -2804(%rbp)
- 17027      FFFF01
- 17028              	.L401:
- 17029 10093 83BD0CF5 		cmpl	$15, -2804(%rbp)
- 17029      FFFF0F
- 17030 1009a 769B     		jbe	.L404
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 17031              		.loc 2 391 0
- 17032 1009c F30F6F85 		movdqu	-6928(%rbp), %xmm0
- 17032      F0E4FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 529
-
-
- 17033              	.LBE2145:
- 17034              	.LBE2144:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 17035              		.loc 2 872 0
- 17036 100a4 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 17036      20F4FFFF 
- 17037 100ac F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 17037      10F4FFFF 
- 17038 100b4 F30F7F85 		movdqu	%xmm0, -2784(%rbp)
- 17038      20F5FFFF 
- 17039 100bc F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 17039      20F4FFFF 
- 17040 100c4 F30F7F85 		movdqu	%xmm0, -2800(%rbp)
- 17040      10F5FFFF 
- 17041              	.LBB2146:
- 17042              	.LBB2147:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 17043              		.loc 2 234 0
- 17044 100cc F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 17044      10F5FFFF 
- 17045 100d4 F30F6F8D 		movdqu	-2784(%rbp), %xmm1
- 17045      20F5FFFF 
- 17046 100dc 660FEBC1 		por	%xmm1, %xmm0
- 17047              	.LBE2147:
- 17048              	.LBE2146:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 17049              		.loc 2 874 0
- 17050 100e0 F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 17050      10F4FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 17051              		.loc 2 876 0
- 17052 100e8 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 17052      00000000 
- 17053 100f0 F30F6F8D 		movdqu	-3024(%rbp), %xmm1
- 17053      30F4FFFF 
- 17054 100f8 F30F7F8D 		movdqu	%xmm1, -2752(%rbp)
- 17054      40F5FFFF 
- 17055 10100 F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 17055      30F5FFFF 
- 17056              	.LBB2148:
- 17057              	.LBB2149:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 17058              		.loc 2 290 0
- 17059 10108 F30F6F8D 		movdqu	-2768(%rbp), %xmm1
- 17059      30F5FFFF 
- 17060 10110 F30F6F85 		movdqu	-2752(%rbp), %xmm0
- 17060      40F5FFFF 
- 17061 10118 660FF8C1 		psubb	%xmm1, %xmm0
- 17062              	.LBE2149:
- 17063              	.LBE2148:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 17064              		.loc 2 876 0
- 17065 1011c F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 17065      30F4FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 17066              		.loc 2 878 0
- 17067 10124 660F6F05 		movdqa	vec_0F(%rip), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 530
-
-
- 17067      00000000 
- 17068 1012c F30F6F8D 		movdqu	-3024(%rbp), %xmm1
- 17068      30F4FFFF 
- 17069 10134 F30F7F8D 		movdqu	%xmm1, -2720(%rbp)
- 17069      60F5FFFF 
- 17070 1013c F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 17070      50F5FFFF 
- 17071              	.LBB2150:
- 17072              	.LBB2151:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 17073              		.loc 2 206 0
- 17074 10144 F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 17074      50F5FFFF 
- 17075 1014c F30F6F8D 		movdqu	-2720(%rbp), %xmm1
- 17075      60F5FFFF 
- 17076 10154 660FDBC1 		pand	%xmm1, %xmm0
- 17077              	.LBE2151:
- 17078              	.LBE2150:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 17079              		.loc 2 878 0
- 17080 10158 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 17080      30F4FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 17081              		.loc 2 866 0
- 17082 10160 83850CF4 		addl	$1, -3060(%rbp)
- 17082      FFFF01
- 17083              	.L396:
- 17084 10167 83BD0CF4 		cmpl	$15, -3060(%rbp)
- 17084      FFFF0F
- 17085 1016e 0F866DFD 		jbe	.L405
- 17085      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 17086              		.loc 2 882 0
- 17087 10174 F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 17087      10F4FFFF 
- 17088              	.LBE2135:
- 17089              	.LBE2134:
- 17090              	.LBE2133:
- 17091              	.LBE2132:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 17092              		.loc 2 1682 0
- 17093 1017c 660F7F85 		movdqa	%xmm0, -8544(%rbp)
- 17093      A0DEFFFF 
- 17094              	.LBB2152:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 17095              		.loc 2 1683 0
- 17096 10184 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17096      A0DEFFFF 
- 17097 1018c F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 17097      80E4FFFF 
- 17098 10194 E8000000 		call	KDbgWriterGet at PLT
- 17098      00
- 17099 10199 4885C0   		testq	%rax, %rax
- 17100 1019c 7479     		je	.L407
- 17101 1019e BF010000 		movl	$1, %edi
- 17101      00
- 17102 101a3 E8000000 		call	KDbgCondToFlag at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 531
-
-
- 17102      00
- 17103 101a8 4889C6   		movq	%rax, %rsi
- 17104 101ab BF100000 		movl	$16, %edi
- 17104      00
- 17105 101b0 E8000000 		call	KDbgTestModConds at PLT
- 17105      00
- 17106 101b5 84C0     		testb	%al, %al
- 17107 101b7 745E     		je	.L407
- 17108 101b9 8B858CE4 		movl	-7028(%rbp), %eax
- 17108      FFFF
- 17109 101bf 89C7     		movl	%eax, %edi
- 17110 101c1 E83AFEFE 		call	bswap_32
- 17110      FF
- 17111 101c6 4189C5   		movl	%eax, %r13d
- 17112 101c9 8B8588E4 		movl	-7032(%rbp), %eax
- 17112      FFFF
- 17113 101cf 89C7     		movl	%eax, %edi
- 17114 101d1 E82AFEFE 		call	bswap_32
- 17114      FF
- 17115 101d6 4189C4   		movl	%eax, %r12d
- 17116 101d9 8B8584E4 		movl	-7036(%rbp), %eax
- 17116      FFFF
- 17117 101df 89C7     		movl	%eax, %edi
- 17118 101e1 E81AFEFE 		call	bswap_32
- 17118      FF
- 17119 101e6 89C3     		movl	%eax, %ebx
- 17120 101e8 8B8580E4 		movl	-7040(%rbp), %eax
- 17120      FFFF
- 17121 101ee 89C7     		movl	%eax, %edi
- 17122 101f0 E80BFEFE 		call	bswap_32
- 17122      FF
- 17123 101f5 4589E9   		movl	%r13d, %r9d
- 17124 101f8 4589E0   		movl	%r12d, %r8d
- 17125 101fb 89D9     		movl	%ebx, %ecx
- 17126 101fd 89C2     		movl	%eax, %edx
- 17127 101ff 488D3500 		leaq	.LC0(%rip), %rsi
- 17127      000000
- 17128 10206 488D3D00 		leaq	.LC1(%rip), %rdi
- 17128      000000
- 17129 1020d B8000000 		movl	$0, %eax
- 17129      00
- 17130 10212 E8000000 		call	KDbgMsg at PLT
- 17130      00
- 17131              	.L407:
- 17132 10217 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17132      A0DEFFFF 
- 17133 1021f F30F7F85 		movdqu	%xmm0, -2704(%rbp)
- 17133      70F5FFFF 
- 17134              	.LBE2152:
- 17135              	.LBB2153:
- 17136              	.LBB2154:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17137              		.loc 2 667 0
- 17138 10227 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 17138      00000000 
- 17139 1022f F30F6F8D 		movdqu	-2704(%rbp), %xmm1
- 17139      70F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 532
-
-
- 17140 10237 F30F7F8D 		movdqu	%xmm1, -2672(%rbp)
- 17140      90F5FFFF 
- 17141 1023f F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 17141      80F5FFFF 
- 17142              	.LBB2155:
- 17143              	.LBB2156:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 17144              		.loc 2 380 0
- 17145 10247 F30F6F85 		movdqu	-2672(%rbp), %xmm0
- 17145      90F5FFFF 
- 17146 1024f F30F7F85 		movdqu	%xmm0, -6896(%rbp)
- 17146      10E5FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 17147              		.loc 2 381 0
- 17148 10257 F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 17148      80F5FFFF 
- 17149 1025f F30F7F85 		movdqu	%xmm0, -6912(%rbp)
- 17149      00E5FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 17150              		.loc 2 383 0
- 17151 10267 C785ACF5 		movl	$0, -2644(%rbp)
- 17151      FFFF0000 
- 17151      0000
- 17152 10271 EB5C     		jmp	.L408
- 17153              	.L411:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 17154              		.loc 2 385 0
- 17155 10273 8B85ACF5 		movl	-2644(%rbp), %eax
- 17155      FFFF
- 17156 10279 89C0     		mov	%eax, %eax
- 17157 1027b 0FB68405 		movzbl	-6912(%rbp,%rax), %eax
- 17157      00E5FFFF 
- 17158 10283 84C0     		testb	%al, %al
- 17159 10285 7912     		jns	.L409
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 17160              		.loc 2 386 0
- 17161 10287 8B85ACF5 		movl	-2644(%rbp), %eax
- 17161      FFFF
- 17162 1028d 89C0     		mov	%eax, %eax
- 17163 1028f C6840520 		movb	$0, -6880(%rbp,%rax)
- 17163      E5FFFF00 
- 17164 10297 EB2F     		jmp	.L410
- 17165              	.L409:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 17166              		.loc 2 388 0
- 17167 10299 8B8DACF5 		movl	-2644(%rbp), %ecx
- 17167      FFFF
- 17168 1029f 8B85ACF5 		movl	-2644(%rbp), %eax
- 17168      FFFF
- 17169 102a5 89C0     		mov	%eax, %eax
- 17170 102a7 0FB68405 		movzbl	-6912(%rbp,%rax), %eax
- 17170      00E5FFFF 
- 17171 102af 0FB6C0   		movzbl	%al, %eax
- 17172 102b2 83E00F   		andl	$15, %eax
- 17173 102b5 4898     		cltq
- 17174 102b7 0FB69405 		movzbl	-6896(%rbp,%rax), %edx
- 17174      10E5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 533
-
-
- 17175 102bf 89C8     		mov	%ecx, %eax
- 17176 102c1 88940520 		movb	%dl, -6880(%rbp,%rax)
- 17176      E5FFFF
- 17177              	.L410:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 17178              		.loc 2 383 0
- 17179 102c8 8385ACF5 		addl	$1, -2644(%rbp)
- 17179      FFFF01
- 17180              	.L408:
- 17181 102cf 83BDACF5 		cmpl	$15, -2644(%rbp)
- 17181      FFFF0F
- 17182 102d6 769B     		jbe	.L411
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 17183              		.loc 2 391 0
- 17184 102d8 F30F6F85 		movdqu	-6880(%rbp), %xmm0
- 17184      20E5FFFF 
- 17185              	.LBE2156:
- 17186              	.LBE2155:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17187              		.loc 2 667 0
- 17188 102e0 F30F7F85 		movdqu	%xmm0, -2704(%rbp)
- 17188      70F5FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17189              		.loc 2 668 0
- 17190 102e8 F30F6F85 		movdqu	-2704(%rbp), %xmm0
- 17190      70F5FFFF 
- 17191              	.LBE2154:
- 17192              	.LBE2153:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 17193              		.loc 2 1684 0
- 17194 102f0 660F7F85 		movdqa	%xmm0, -8544(%rbp)
- 17194      A0DEFFFF 
- 17195              	.LBB2157:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 17196              		.loc 2 1685 0
- 17197 102f8 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17197      A0DEFFFF 
- 17198 10300 F30F7F85 		movdqu	%xmm0, -7056(%rbp)
- 17198      70E4FFFF 
- 17199 10308 E8000000 		call	KDbgWriterGet at PLT
- 17199      00
- 17200 1030d 4885C0   		testq	%rax, %rax
- 17201 10310 7479     		je	.L413
- 17202 10312 BF010000 		movl	$1, %edi
- 17202      00
- 17203 10317 E8000000 		call	KDbgCondToFlag at PLT
- 17203      00
- 17204 1031c 4889C6   		movq	%rax, %rsi
- 17205 1031f BF100000 		movl	$16, %edi
- 17205      00
- 17206 10324 E8000000 		call	KDbgTestModConds at PLT
- 17206      00
- 17207 10329 84C0     		testb	%al, %al
- 17208 1032b 745E     		je	.L413
- 17209 1032d 8B857CE4 		movl	-7044(%rbp), %eax
- 17209      FFFF
- 17210 10333 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 534
-
-
- 17211 10335 E8C6FCFE 		call	bswap_32
- 17211      FF
- 17212 1033a 4189C5   		movl	%eax, %r13d
- 17213 1033d 8B8578E4 		movl	-7048(%rbp), %eax
- 17213      FFFF
- 17214 10343 89C7     		movl	%eax, %edi
- 17215 10345 E8B6FCFE 		call	bswap_32
- 17215      FF
- 17216 1034a 4189C4   		movl	%eax, %r12d
- 17217 1034d 8B8574E4 		movl	-7052(%rbp), %eax
- 17217      FFFF
- 17218 10353 89C7     		movl	%eax, %edi
- 17219 10355 E8A6FCFE 		call	bswap_32
- 17219      FF
- 17220 1035a 89C3     		movl	%eax, %ebx
- 17221 1035c 8B8570E4 		movl	-7056(%rbp), %eax
- 17221      FFFF
- 17222 10362 89C7     		movl	%eax, %edi
- 17223 10364 E897FCFE 		call	bswap_32
- 17223      FF
- 17224 10369 4589E9   		movl	%r13d, %r9d
- 17225 1036c 4589E0   		movl	%r12d, %r8d
- 17226 1036f 89D9     		movl	%ebx, %ecx
- 17227 10371 89C2     		movl	%eax, %edx
- 17228 10373 488D3500 		leaq	.LC2(%rip), %rsi
- 17228      000000
- 17229 1037a 488D3D00 		leaq	.LC1(%rip), %rdi
- 17229      000000
- 17230 10381 B8000000 		movl	$0, %eax
- 17230      00
- 17231 10386 E8000000 		call	KDbgMsg at PLT
- 17231      00
- 17232              	.L413:
- 17233 1038b 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17233      A0DEFFFF 
- 17234 10393 F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 17234      C0F5FFFF 
- 17235 1039b 660F6F85 		movdqa	-8528(%rbp), %xmm0
- 17235      B0DEFFFF 
- 17236 103a3 F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 17236      B0F5FFFF 
- 17237              	.LBE2157:
- 17238              	.LBB2158:
- 17239              	.LBB2159:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 17240              		.loc 2 178 0
- 17241 103ab F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 17241      B0F5FFFF 
- 17242 103b3 F30F6F8D 		movdqu	-2624(%rbp), %xmm1
- 17242      C0F5FFFF 
- 17243 103bb 660FEFC1 		pxor	%xmm1, %xmm0
- 17244              	.LBE2159:
- 17245              	.LBE2158:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 17246              		.loc 2 1686 0
- 17247 103bf 660F7F85 		movdqa	%xmm0, -8544(%rbp)
- 17247      A0DEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 535
-
-
- 17248              	.LBB2160:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 17249              		.loc 2 1687 0
- 17250 103c7 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17250      A0DEFFFF 
- 17251 103cf F30F7F85 		movdqu	%xmm0, -7072(%rbp)
- 17251      60E4FFFF 
- 17252 103d7 E8000000 		call	KDbgWriterGet at PLT
- 17252      00
- 17253 103dc 4885C0   		testq	%rax, %rax
- 17254 103df 7479     		je	.L415
- 17255 103e1 BF010000 		movl	$1, %edi
- 17255      00
- 17256 103e6 E8000000 		call	KDbgCondToFlag at PLT
- 17256      00
- 17257 103eb 4889C6   		movq	%rax, %rsi
- 17258 103ee BF100000 		movl	$16, %edi
- 17258      00
- 17259 103f3 E8000000 		call	KDbgTestModConds at PLT
- 17259      00
- 17260 103f8 84C0     		testb	%al, %al
- 17261 103fa 745E     		je	.L415
- 17262 103fc 8B856CE4 		movl	-7060(%rbp), %eax
- 17262      FFFF
- 17263 10402 89C7     		movl	%eax, %edi
- 17264 10404 E8F7FBFE 		call	bswap_32
- 17264      FF
- 17265 10409 4189C5   		movl	%eax, %r13d
- 17266 1040c 8B8568E4 		movl	-7064(%rbp), %eax
- 17266      FFFF
- 17267 10412 89C7     		movl	%eax, %edi
- 17268 10414 E8E7FBFE 		call	bswap_32
- 17268      FF
- 17269 10419 4189C4   		movl	%eax, %r12d
- 17270 1041c 8B8564E4 		movl	-7068(%rbp), %eax
- 17270      FFFF
- 17271 10422 89C7     		movl	%eax, %edi
- 17272 10424 E8D7FBFE 		call	bswap_32
- 17272      FF
- 17273 10429 89C3     		movl	%eax, %ebx
- 17274 1042b 8B8560E4 		movl	-7072(%rbp), %eax
- 17274      FFFF
- 17275 10431 89C7     		movl	%eax, %edi
- 17276 10433 E8C8FBFE 		call	bswap_32
- 17276      FF
- 17277 10438 4589E9   		movl	%r13d, %r9d
- 17278 1043b 4589E0   		movl	%r12d, %r8d
- 17279 1043e 89D9     		movl	%ebx, %ecx
- 17280 10440 89C2     		movl	%eax, %edx
- 17281 10442 488D3500 		leaq	.LC3(%rip), %rsi
- 17281      000000
- 17282 10449 488D3D00 		leaq	.LC1(%rip), %rdi
- 17282      000000
- 17283 10450 B8000000 		movl	$0, %eax
- 17283      00
- 17284 10455 E8000000 		call	KDbgMsg at PLT
- 17284      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 536
-
-
- 17285              	.L415:
- 17286 1045a 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17286      A0DEFFFF 
- 17287 10462 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 17287      D0F5FFFF 
- 17288              	.LBE2160:
- 17289              	.LBB2161:
- 17290              	.LBB2162:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 17291              		.loc 2 1357 0
- 17292 1046a F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 17292      D0F5FFFF 
- 17293 10472 F30F7F85 		movdqu	%xmm0, -6864(%rbp)
- 17293      30E5FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 17294              		.loc 2 1358 0
- 17295 1047a 8B853CE5 		movl	-6852(%rbp), %eax
- 17295      FFFF
- 17296 10480 898538E5 		movl	%eax, -6856(%rbp)
- 17296      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 17297              		.loc 2 1359 0
- 17298 10486 8B853CE5 		movl	-6852(%rbp), %eax
- 17298      FFFF
- 17299 1048c 898534E5 		movl	%eax, -6860(%rbp)
- 17299      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 17300              		.loc 2 1360 0
- 17301 10492 8B853CE5 		movl	-6852(%rbp), %eax
- 17301      FFFF
- 17302 10498 898530E5 		movl	%eax, -6864(%rbp)
- 17302      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 17303              		.loc 2 1361 0
- 17304 1049e F30F6F85 		movdqu	-6864(%rbp), %xmm0
- 17304      30E5FFFF 
- 17305              	.LBE2162:
- 17306              	.LBE2161:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 17307              		.loc 2 1688 0
- 17308 104a6 660F7F85 		movdqa	%xmm0, -8544(%rbp)
- 17308      A0DEFFFF 
- 17309              	.LBB2163:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 17310              		.loc 2 1689 0
- 17311 104ae 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17311      A0DEFFFF 
- 17312 104b6 F30F7F85 		movdqu	%xmm0, -7088(%rbp)
- 17312      50E4FFFF 
- 17313 104be E8000000 		call	KDbgWriterGet at PLT
- 17313      00
- 17314 104c3 4885C0   		testq	%rax, %rax
- 17315 104c6 7479     		je	.L417
- 17316 104c8 BF010000 		movl	$1, %edi
- 17316      00
- 17317 104cd E8000000 		call	KDbgCondToFlag at PLT
- 17317      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 537
-
-
- 17318 104d2 4889C6   		movq	%rax, %rsi
- 17319 104d5 BF100000 		movl	$16, %edi
- 17319      00
- 17320 104da E8000000 		call	KDbgTestModConds at PLT
- 17320      00
- 17321 104df 84C0     		testb	%al, %al
- 17322 104e1 745E     		je	.L417
- 17323 104e3 8B855CE4 		movl	-7076(%rbp), %eax
- 17323      FFFF
- 17324 104e9 89C7     		movl	%eax, %edi
- 17325 104eb E810FBFE 		call	bswap_32
- 17325      FF
- 17326 104f0 4189C5   		movl	%eax, %r13d
- 17327 104f3 8B8558E4 		movl	-7080(%rbp), %eax
- 17327      FFFF
- 17328 104f9 89C7     		movl	%eax, %edi
- 17329 104fb E800FBFE 		call	bswap_32
- 17329      FF
- 17330 10500 4189C4   		movl	%eax, %r12d
- 17331 10503 8B8554E4 		movl	-7084(%rbp), %eax
- 17331      FFFF
- 17332 10509 89C7     		movl	%eax, %edi
- 17333 1050b E8F0FAFE 		call	bswap_32
- 17333      FF
- 17334 10510 89C3     		movl	%eax, %ebx
- 17335 10512 8B8550E4 		movl	-7088(%rbp), %eax
- 17335      FFFF
- 17336 10518 89C7     		movl	%eax, %edi
- 17337 1051a E8E1FAFE 		call	bswap_32
- 17337      FF
- 17338 1051f 4589E9   		movl	%r13d, %r9d
- 17339 10522 4589E0   		movl	%r12d, %r8d
- 17340 10525 89D9     		movl	%ebx, %ecx
- 17341 10527 89C2     		movl	%eax, %edx
- 17342 10529 488D3500 		leaq	.LC4(%rip), %rsi
- 17342      000000
- 17343 10530 488D3D00 		leaq	.LC1(%rip), %rdi
- 17343      000000
- 17344 10537 B8000000 		movl	$0, %eax
- 17344      00
- 17345 1053c E8000000 		call	KDbgMsg at PLT
- 17345      00
- 17346              	.L417:
- 17347              	.LBE2163:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 17348              		.loc 2 1690 0
- 17349 10541 660F6F85 		movdqa	-8544(%rbp), %xmm0
- 17349      A0DEFFFF 
- 17350              	.LBE2129:
- 17351              	.LBE2128:
-1932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(8,0x08);    /* k32 : k33 : k34 : k35 */
- 17352              		.loc 2 1932 0
- 17353 10549 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 17353      E0E9FFFF 
- 17354 10551 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 17354      C0E9FFFF 
- 17355 10559 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 538
-
-
- 17355      E0F5FFFF 
- 17356              	.LBB2164:
- 17357              	.LBB2165:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 17358              		.loc 2 1565 0
- 17359 10561 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 17359      E0F5FFFF 
- 17360 10569 660F7F85 		movdqa	%xmm0, -8496(%rbp)
- 17360      D0DEFFFF 
- 17361 10571 660F6F85 		movdqa	-8496(%rbp), %xmm0
- 17361      D0DEFFFF 
- 17362 10579 F30F7F85 		movdqu	%xmm0, -2576(%rbp)
- 17362      F0F5FFFF 
- 17363              	.LBB2166:
- 17364              	.LBB2167:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 17365              		.loc 2 1282 0
- 17366 10581 F30F6F85 		movdqu	-2576(%rbp), %xmm0
- 17366      F0F5FFFF 
- 17367 10589 F30F7F85 		movdqu	%xmm0, -6848(%rbp)
- 17367      40E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 17368              		.loc 2 1283 0
- 17369 10591 8B8548E5 		movl	-6840(%rbp), %eax
- 17369      FFFF
- 17370 10597 89854CE5 		movl	%eax, -6836(%rbp)
- 17370      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 17371              		.loc 2 1284 0
- 17372 1059d 8B8544E5 		movl	-6844(%rbp), %eax
- 17372      FFFF
- 17373 105a3 898548E5 		movl	%eax, -6840(%rbp)
- 17373      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 17374              		.loc 2 1285 0
- 17375 105a9 8B8540E5 		movl	-6848(%rbp), %eax
- 17375      FFFF
- 17376 105af 898544E5 		movl	%eax, -6844(%rbp)
- 17376      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 17377              		.loc 2 1286 0
- 17378 105b5 C78540E5 		movl	$0, -6848(%rbp)
- 17378      FFFF0000 
- 17378      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 17379              		.loc 2 1287 0
- 17380 105bf F30F6F85 		movdqu	-6848(%rbp), %xmm0
- 17380      40E5FFFF 
- 17381              	.LBE2167:
- 17382              	.LBE2166:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 17383              		.loc 2 1567 0
- 17384 105c7 660F7F85 		movdqa	%xmm0, -8496(%rbp)
- 17384      D0DEFFFF 
- 17385 105cf 660F6F85 		movdqa	-8496(%rbp), %xmm0
- 17385      D0DEFFFF 
- 17386 105d7 660FEF85 		pxor	-2592(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 539
-
-
- 17386      E0F5FFFF 
- 17387 105df F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 17387      E0F5FFFF 
- 17388 105e7 660F6F85 		movdqa	-8496(%rbp), %xmm0
- 17388      D0DEFFFF 
- 17389 105ef F30F7F85 		movdqu	%xmm0, -2560(%rbp)
- 17389      00F6FFFF 
- 17390              	.LBB2168:
- 17391              	.LBB2169:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 17392              		.loc 2 1282 0
- 17393 105f7 F30F6F85 		movdqu	-2560(%rbp), %xmm0
- 17393      00F6FFFF 
- 17394 105ff F30F7F85 		movdqu	%xmm0, -6832(%rbp)
- 17394      50E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 17395              		.loc 2 1283 0
- 17396 10607 8B8558E5 		movl	-6824(%rbp), %eax
- 17396      FFFF
- 17397 1060d 89855CE5 		movl	%eax, -6820(%rbp)
- 17397      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 17398              		.loc 2 1284 0
- 17399 10613 8B8554E5 		movl	-6828(%rbp), %eax
- 17399      FFFF
- 17400 10619 898558E5 		movl	%eax, -6824(%rbp)
- 17400      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 17401              		.loc 2 1285 0
- 17402 1061f 8B8550E5 		movl	-6832(%rbp), %eax
- 17402      FFFF
- 17403 10625 898554E5 		movl	%eax, -6828(%rbp)
- 17403      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 17404              		.loc 2 1286 0
- 17405 1062b C78550E5 		movl	$0, -6832(%rbp)
- 17405      FFFF0000 
- 17405      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 17406              		.loc 2 1287 0
- 17407 10635 F30F6F85 		movdqu	-6832(%rbp), %xmm0
- 17407      50E5FFFF 
- 17408              	.LBE2169:
- 17409              	.LBE2168:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 17410              		.loc 2 1568 0
- 17411 1063d 660F7F85 		movdqa	%xmm0, -8496(%rbp)
- 17411      D0DEFFFF 
- 17412 10645 660F6F85 		movdqa	-8496(%rbp), %xmm0
- 17412      D0DEFFFF 
- 17413 1064d 660FEF85 		pxor	-2592(%rbp), %xmm0
- 17413      E0F5FFFF 
- 17414 10655 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 17414      E0F5FFFF 
- 17415 1065d 660F6F85 		movdqa	-8496(%rbp), %xmm0
- 17415      D0DEFFFF 
- 17416 10665 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 540
-
-
- 17416      10F6FFFF 
- 17417              	.LBB2170:
- 17418              	.LBB2171:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 17419              		.loc 2 1282 0
- 17420 1066d F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 17420      10F6FFFF 
- 17421 10675 F30F7F85 		movdqu	%xmm0, -6816(%rbp)
- 17421      60E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 17422              		.loc 2 1283 0
- 17423 1067d 8B8568E5 		movl	-6808(%rbp), %eax
- 17423      FFFF
- 17424 10683 89856CE5 		movl	%eax, -6804(%rbp)
- 17424      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 17425              		.loc 2 1284 0
- 17426 10689 8B8564E5 		movl	-6812(%rbp), %eax
- 17426      FFFF
- 17427 1068f 898568E5 		movl	%eax, -6808(%rbp)
- 17427      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 17428              		.loc 2 1285 0
- 17429 10695 8B8560E5 		movl	-6816(%rbp), %eax
- 17429      FFFF
- 17430 1069b 898564E5 		movl	%eax, -6812(%rbp)
- 17430      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 17431              		.loc 2 1286 0
- 17432 106a1 C78560E5 		movl	$0, -6816(%rbp)
- 17432      FFFF0000 
- 17432      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 17433              		.loc 2 1287 0
- 17434 106ab F30F6F85 		movdqu	-6816(%rbp), %xmm0
- 17434      60E5FFFF 
- 17435              	.LBE2171:
- 17436              	.LBE2170:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 17437              		.loc 2 1569 0
- 17438 106b3 660F7F85 		movdqa	%xmm0, -8496(%rbp)
- 17438      D0DEFFFF 
- 17439 106bb 660F6F85 		movdqa	-8496(%rbp), %xmm0
- 17439      D0DEFFFF 
- 17440 106c3 660FEF85 		pxor	-2592(%rbp), %xmm0
- 17440      E0F5FFFF 
- 17441 106cb F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 17441      E0F5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17442              		.loc 2 1571 0
- 17443 106d3 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 17443      E0F5FFFF 
- 17444              	.LBE2165:
- 17445              	.LBE2164:
-1932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(8,0x08);    /* k32 : k33 : k34 : k35 */
- 17446              		.loc 2 1932 0
- 17447 106db F30F7F85 		movdqu	%xmm0, -5696(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 541
-
-
- 17447      C0E9FFFF 
- 17448 106e3 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 17448      C0E9FFFF 
- 17449 106eb F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 17449      30F6FFFF 
- 17450 106f3 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 17450      E0E9FFFF 
- 17451 106fb F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 17451      20F6FFFF 
- 17452              	.LBB2172:
- 17453              	.LBB2173:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 17454              		.loc 2 178 0
- 17455 10703 F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 17455      20F6FFFF 
- 17456 1070b F30F6F8D 		movdqu	-2512(%rbp), %xmm1
- 17456      30F6FFFF 
- 17457 10713 660FEFC1 		pxor	%xmm1, %xmm0
- 17458              	.LBE2173:
- 17459              	.LBE2172:
-1932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(8,0x08);    /* k32 : k33 : k34 : k35 */
- 17460              		.loc 2 1932 0
- 17461 10717 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 17461      C0E9FFFF 
- 17462 1071f 488B85D8 		movq	-8232(%rbp), %rax
- 17462      DFFFFF
- 17463 10726 4883E880 		subq	$-128, %rax
- 17464 1072a F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 17464      C0E9FFFF 
- 17465 10732 F30F7F00 		movdqu	%xmm0, (%rax)
- 17466 10736 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 17466      C0E9FFFF 
- 17467 1073e F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 17467      40F6FFFF 
- 17468              	.LBB2174:
- 17469              	.LBB2175:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 17470              		.loc 2 1656 0
- 17471 10746 F30F6F85 		movdqu	-2496(%rbp), %xmm0
- 17471      40F6FFFF 
- 17472 1074e F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 17472      80E5FFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 17473              		.loc 2 1657 0
- 17474 10756 8B858CE5 		movl	-6772(%rbp), %eax
- 17474      FFFF
- 17475 1075c 898558F6 		movl	%eax, -2472(%rbp)
- 17475      FFFF
- 17476              	.LBB2176:
- 17477              	.LBB2177:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 17478              		.loc 2 740 0
- 17479 10762 8B8558F6 		movl	-2472(%rbp), %eax
- 17479      FFFF
- 17480 10768 898570E5 		movl	%eax, -6800(%rbp)
- 17480      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 542
-
-
- 17481              		.loc 2 741 0
- 17482 1076e C7855CF6 		movl	$0, -2468(%rbp)
- 17482      FFFF0000 
- 17482      0000
- 17483 10778 EB36     		jmp	.L418
- 17484              	.L419:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 17485              		.loc 2 742 0
- 17486 1077a 8B8D5CF6 		movl	-2468(%rbp), %ecx
- 17486      FFFF
- 17487 10780 8B855CF6 		movl	-2468(%rbp), %eax
- 17487      FFFF
- 17488 10786 89C0     		mov	%eax, %eax
- 17489 10788 0FB68405 		movzbl	-6800(%rbp,%rax), %eax
- 17489      70E5FFFF 
- 17490 10790 0FB6C0   		movzbl	%al, %eax
- 17491 10793 89C2     		mov	%eax, %edx
- 17492 10795 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 17492      000000
- 17493 1079c 0FB61402 		movzbl	(%rdx,%rax), %edx
- 17494 107a0 89C8     		mov	%ecx, %eax
- 17495 107a2 88940570 		movb	%dl, -6800(%rbp,%rax)
- 17495      E5FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 17496              		.loc 2 741 0
- 17497 107a9 83855CF6 		addl	$1, -2468(%rbp)
- 17497      FFFF01
- 17498              	.L418:
- 17499 107b0 83BD5CF6 		cmpl	$3, -2468(%rbp)
- 17499      FFFF03
- 17500 107b7 76C1     		jbe	.L419
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 17501              		.loc 2 743 0
- 17502 107b9 8B8570E5 		movl	-6800(%rbp), %eax
- 17502      FFFF
- 17503              	.LBE2177:
- 17504              	.LBE2176:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 17505              		.loc 2 1657 0
- 17506 107bf 898554F6 		movl	%eax, -2476(%rbp)
- 17506      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 17507              		.loc 2 1659 0
- 17508 107c5 8B8554F6 		movl	-2476(%rbp), %eax
- 17508      FFFF
- 17509 107cb 89858CE5 		movl	%eax, -6772(%rbp)
- 17509      FFFF
- 17510 107d1 8B858CE5 		movl	-6772(%rbp), %eax
- 17510      FFFF
- 17511 107d7 898588E5 		movl	%eax, -6776(%rbp)
- 17511      FFFF
- 17512 107dd 8B8588E5 		movl	-6776(%rbp), %eax
- 17512      FFFF
- 17513 107e3 898584E5 		movl	%eax, -6780(%rbp)
- 17513      FFFF
- 17514 107e9 8B8584E5 		movl	-6780(%rbp), %eax
- 17514      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 543
-
-
- 17515 107ef 898580E5 		movl	%eax, -6784(%rbp)
- 17515      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 17516              		.loc 2 1660 0
- 17517 107f5 F30F6F85 		movdqu	-6784(%rbp), %xmm0
- 17517      80E5FFFF 
- 17518              	.LBE2175:
- 17519              	.LBE2174:
-1933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(9);         /* k36 : k37 : k38 : k39 */
- 17520              		.loc 2 1933 0
- 17521 107fd F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 17521      E0E9FFFF 
- 17522 10805 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 17522      D0E9FFFF 
- 17523 1080d F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 17523      60F6FFFF 
- 17524              	.LBB2178:
- 17525              	.LBB2179:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 17526              		.loc 2 1565 0
- 17527 10815 F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 17527      60F6FFFF 
- 17528 1081d 660F7F85 		movdqa	%xmm0, -8480(%rbp)
- 17528      E0DEFFFF 
- 17529 10825 660F6F85 		movdqa	-8480(%rbp), %xmm0
- 17529      E0DEFFFF 
- 17530 1082d F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 17530      70F6FFFF 
- 17531              	.LBB2180:
- 17532              	.LBB2181:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 17533              		.loc 2 1282 0
- 17534 10835 F30F6F85 		movdqu	-2448(%rbp), %xmm0
- 17534      70F6FFFF 
- 17535 1083d F30F7F85 		movdqu	%xmm0, -6768(%rbp)
- 17535      90E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 17536              		.loc 2 1283 0
- 17537 10845 8B8598E5 		movl	-6760(%rbp), %eax
- 17537      FFFF
- 17538 1084b 89859CE5 		movl	%eax, -6756(%rbp)
- 17538      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 17539              		.loc 2 1284 0
- 17540 10851 8B8594E5 		movl	-6764(%rbp), %eax
- 17540      FFFF
- 17541 10857 898598E5 		movl	%eax, -6760(%rbp)
- 17541      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 17542              		.loc 2 1285 0
- 17543 1085d 8B8590E5 		movl	-6768(%rbp), %eax
- 17543      FFFF
- 17544 10863 898594E5 		movl	%eax, -6764(%rbp)
- 17544      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 17545              		.loc 2 1286 0
- 17546 10869 C78590E5 		movl	$0, -6768(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 544
-
-
- 17546      FFFF0000 
- 17546      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 17547              		.loc 2 1287 0
- 17548 10873 F30F6F85 		movdqu	-6768(%rbp), %xmm0
- 17548      90E5FFFF 
- 17549              	.LBE2181:
- 17550              	.LBE2180:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 17551              		.loc 2 1567 0
- 17552 1087b 660F7F85 		movdqa	%xmm0, -8480(%rbp)
- 17552      E0DEFFFF 
- 17553 10883 660F6F85 		movdqa	-8480(%rbp), %xmm0
- 17553      E0DEFFFF 
- 17554 1088b 660FEF85 		pxor	-2464(%rbp), %xmm0
- 17554      60F6FFFF 
- 17555 10893 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 17555      60F6FFFF 
- 17556 1089b 660F6F85 		movdqa	-8480(%rbp), %xmm0
- 17556      E0DEFFFF 
- 17557 108a3 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 17557      80F6FFFF 
- 17558              	.LBB2182:
- 17559              	.LBB2183:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 17560              		.loc 2 1282 0
- 17561 108ab F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 17561      80F6FFFF 
- 17562 108b3 F30F7F85 		movdqu	%xmm0, -6752(%rbp)
- 17562      A0E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 17563              		.loc 2 1283 0
- 17564 108bb 8B85A8E5 		movl	-6744(%rbp), %eax
- 17564      FFFF
- 17565 108c1 8985ACE5 		movl	%eax, -6740(%rbp)
- 17565      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 17566              		.loc 2 1284 0
- 17567 108c7 8B85A4E5 		movl	-6748(%rbp), %eax
- 17567      FFFF
- 17568 108cd 8985A8E5 		movl	%eax, -6744(%rbp)
- 17568      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 17569              		.loc 2 1285 0
- 17570 108d3 8B85A0E5 		movl	-6752(%rbp), %eax
- 17570      FFFF
- 17571 108d9 8985A4E5 		movl	%eax, -6748(%rbp)
- 17571      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 17572              		.loc 2 1286 0
- 17573 108df C785A0E5 		movl	$0, -6752(%rbp)
- 17573      FFFF0000 
- 17573      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 17574              		.loc 2 1287 0
- 17575 108e9 F30F6F85 		movdqu	-6752(%rbp), %xmm0
- 17575      A0E5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 545
-
-
- 17576              	.LBE2183:
- 17577              	.LBE2182:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 17578              		.loc 2 1568 0
- 17579 108f1 660F7F85 		movdqa	%xmm0, -8480(%rbp)
- 17579      E0DEFFFF 
- 17580 108f9 660F6F85 		movdqa	-8480(%rbp), %xmm0
- 17580      E0DEFFFF 
- 17581 10901 660FEF85 		pxor	-2464(%rbp), %xmm0
- 17581      60F6FFFF 
- 17582 10909 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 17582      60F6FFFF 
- 17583 10911 660F6F85 		movdqa	-8480(%rbp), %xmm0
- 17583      E0DEFFFF 
- 17584 10919 F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 17584      90F6FFFF 
- 17585              	.LBB2184:
- 17586              	.LBB2185:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 17587              		.loc 2 1282 0
- 17588 10921 F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 17588      90F6FFFF 
- 17589 10929 F30F7F85 		movdqu	%xmm0, -6736(%rbp)
- 17589      B0E5FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 17590              		.loc 2 1283 0
- 17591 10931 8B85B8E5 		movl	-6728(%rbp), %eax
- 17591      FFFF
- 17592 10937 8985BCE5 		movl	%eax, -6724(%rbp)
- 17592      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 17593              		.loc 2 1284 0
- 17594 1093d 8B85B4E5 		movl	-6732(%rbp), %eax
- 17594      FFFF
- 17595 10943 8985B8E5 		movl	%eax, -6728(%rbp)
- 17595      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 17596              		.loc 2 1285 0
- 17597 10949 8B85B0E5 		movl	-6736(%rbp), %eax
- 17597      FFFF
- 17598 1094f 8985B4E5 		movl	%eax, -6732(%rbp)
- 17598      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 17599              		.loc 2 1286 0
- 17600 10955 C785B0E5 		movl	$0, -6736(%rbp)
- 17600      FFFF0000 
- 17600      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 17601              		.loc 2 1287 0
- 17602 1095f F30F6F85 		movdqu	-6736(%rbp), %xmm0
- 17602      B0E5FFFF 
- 17603              	.LBE2185:
- 17604              	.LBE2184:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 17605              		.loc 2 1569 0
- 17606 10967 660F7F85 		movdqa	%xmm0, -8480(%rbp)
- 17606      E0DEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 546
-
-
- 17607 1096f 660F6F85 		movdqa	-8480(%rbp), %xmm0
- 17607      E0DEFFFF 
- 17608 10977 660FEF85 		pxor	-2464(%rbp), %xmm0
- 17608      60F6FFFF 
- 17609 1097f F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 17609      60F6FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17610              		.loc 2 1571 0
- 17611 10987 F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 17611      60F6FFFF 
- 17612              	.LBE2179:
- 17613              	.LBE2178:
-1933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(9);         /* k36 : k37 : k38 : k39 */
- 17614              		.loc 2 1933 0
- 17615 1098f F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 17615      D0E9FFFF 
- 17616 10997 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 17616      D0E9FFFF 
- 17617 1099f F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 17617      B0F6FFFF 
- 17618 109a7 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 17618      E0E9FFFF 
- 17619 109af F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 17619      A0F6FFFF 
- 17620              	.LBB2186:
- 17621              	.LBB2187:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 17622              		.loc 2 178 0
- 17623 109b7 F30F6F85 		movdqu	-2400(%rbp), %xmm0
- 17623      A0F6FFFF 
- 17624 109bf F30F6F8D 		movdqu	-2384(%rbp), %xmm1
- 17624      B0F6FFFF 
- 17625 109c7 660FEFC1 		pxor	%xmm1, %xmm0
- 17626              	.LBE2187:
- 17627              	.LBE2186:
-1933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(9);         /* k36 : k37 : k38 : k39 */
- 17628              		.loc 2 1933 0
- 17629 109cb F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 17629      D0E9FFFF 
- 17630 109d3 488B85D8 		movq	-8232(%rbp), %rax
- 17630      DFFFFF
- 17631 109da 48059000 		addq	$144, %rax
- 17631      0000
- 17632 109e0 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 17632      D0E9FFFF 
- 17633 109e8 F30F7F00 		movdqu	%xmm0, (%rax)
- 17634 109ec F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 17634      D0E9FFFF 
- 17635 109f4 F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 17635      D0F6FFFF 
- 17636              	.LBB2188:
- 17637              	.LBB2189:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 17638              		.loc 2 1681 0
- 17639 109fc B8100000 		movl	$16, %eax
- 17639      00
- 17640 10a01 660F6F05 		movdqa	vec_00(%rip), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 547
-
-
- 17640      00000000 
- 17641 10a09 F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 17641      F0F6FFFF 
- 17642 10a11 8985ECF6 		movl	%eax, -2324(%rbp)
- 17642      FFFF
- 17643              	.LBB2190:
- 17644              	.LBB2191:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 17645              		.loc 2 522 0
- 17646 10a17 F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 17646      F0F6FFFF 
- 17647 10a1f F30F7F85 		movdqu	%xmm0, -6656(%rbp)
- 17647      00E6FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 17648              		.loc 2 523 0
- 17649 10a27 B8030000 		movl	$3, %eax
- 17649      00
- 17650 10a2c 4898     		cltq
- 17651 10a2e 8B95ECF6 		movl	-2324(%rbp), %edx
- 17651      FFFF
- 17652 10a34 89948500 		movl	%edx, -6656(%rbp,%rax,4)
- 17652      E6FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 17653              		.loc 2 524 0
- 17654 10a3b F30F6F85 		movdqu	-6656(%rbp), %xmm0
- 17654      00E6FFFF 
- 17655 10a43 F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 17655      F0F6FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17656              		.loc 2 526 0
- 17657 10a4b F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 17657      F0F6FFFF 
- 17658              	.LBE2191:
- 17659              	.LBE2190:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 17660              		.loc 2 1681 0
- 17661 10a53 660F7F85 		movdqa	%xmm0, -8448(%rbp)
- 17661      00DFFFFF 
- 17662 10a5b F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 17662      D0F6FFFF 
- 17663 10a63 F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 17663      00F7FFFF 
- 17664 10a6b F30F6F85 		movdqu	-2304(%rbp), %xmm0
- 17664      00F7FFFF 
- 17665 10a73 F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 17665      20F7FFFF 
- 17666 10a7b 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 17666      000000
- 17667 10a82 48898518 		movq	%rax, -2280(%rbp)
- 17667      F7FFFF
- 17668              	.LBB2192:
- 17669              	.LBB2193:
- 17670              	.LBB2194:
- 17671              	.LBB2195:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 17672              		.loc 2 851 0
- 17673 10a89 660F6F05 		movdqa	vec_00(%rip), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 548
-
-
- 17673      00000000 
- 17674 10a91 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 17674      40F7FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 17675              		.loc 2 854 0
- 17676 10a99 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 17676      00000000 
- 17677 10aa1 F30F6F8D 		movdqu	-2272(%rbp), %xmm1
- 17677      20F7FFFF 
- 17678 10aa9 F30F7F8D 		movdqu	%xmm1, -2160(%rbp)
- 17678      90F7FFFF 
- 17679 10ab1 F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 17679      80F7FFFF 
- 17680              	.LBB2196:
- 17681              	.LBB2197:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 17682              		.loc 2 206 0
- 17683 10ab9 F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 17683      80F7FFFF 
- 17684 10ac1 F30F6F8D 		movdqu	-2160(%rbp), %xmm1
- 17684      90F7FFFF 
- 17685 10ac9 660FDBC1 		pand	%xmm1, %xmm0
- 17686              	.LBE2197:
- 17687              	.LBE2196:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 17688              		.loc 2 854 0
- 17689 10acd F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 17689      70F7FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 17690              		.loc 2 862 0
- 17691 10ad5 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 17691      00000000 
- 17692 10add F30F6F8D 		movdqu	-2272(%rbp), %xmm1
- 17692      20F7FFFF 
- 17693 10ae5 F30F7F8D 		movdqu	%xmm1, -2128(%rbp)
- 17693      B0F7FFFF 
- 17694 10aed F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 17694      A0F7FFFF 
- 17695              	.LBB2198:
- 17696              		.loc 2 2642 0
- 17697 10af5 0FB685B0 		movzbl	-2128(%rbp), %eax
- 17697      F7FFFF
- 17698 10afc 0FB695A0 		movzbl	-2144(%rbp), %edx
- 17698      F7FFFF
- 17699 10b03 0FB6C0   		movzbl	%al, %eax
- 17700 10b06 6689853E 		movw	%ax, -8898(%rbp)
- 17700      DDFFFF
- 17701 10b0d 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17701      DDFFFF
- 17702 10b14 F6F2     		divb	%dl
- 17703 10b16 4189C7   		movl	%eax, %r15d
- 17704 10b19 0FB685B1 		movzbl	-2127(%rbp), %eax
- 17704      F7FFFF
- 17705 10b20 0FB695A1 		movzbl	-2143(%rbp), %edx
- 17705      F7FFFF
- 17706 10b27 0FB6C0   		movzbl	%al, %eax
- 17707 10b2a 6689853E 		movw	%ax, -8898(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 549
-
-
- 17707      DDFFFF
- 17708 10b31 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17708      DDFFFF
- 17709 10b38 F6F2     		divb	%dl
- 17710 10b3a 88851FDF 		movb	%al, -8417(%rbp)
- 17710      FFFF
- 17711 10b40 0FB685B2 		movzbl	-2126(%rbp), %eax
- 17711      F7FFFF
- 17712 10b47 0FB695A2 		movzbl	-2142(%rbp), %edx
- 17712      F7FFFF
- 17713 10b4e 0FB6C0   		movzbl	%al, %eax
- 17714 10b51 6689853E 		movw	%ax, -8898(%rbp)
- 17714      DDFFFF
- 17715 10b58 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17715      DDFFFF
- 17716 10b5f F6F2     		divb	%dl
- 17717 10b61 88851EDF 		movb	%al, -8418(%rbp)
- 17717      FFFF
- 17718 10b67 0FB685B3 		movzbl	-2125(%rbp), %eax
- 17718      F7FFFF
- 17719 10b6e 0FB695A3 		movzbl	-2141(%rbp), %edx
- 17719      F7FFFF
- 17720 10b75 0FB6C0   		movzbl	%al, %eax
- 17721 10b78 6689853E 		movw	%ax, -8898(%rbp)
- 17721      DDFFFF
- 17722 10b7f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17722      DDFFFF
- 17723 10b86 F6F2     		divb	%dl
- 17724 10b88 88851DDF 		movb	%al, -8419(%rbp)
- 17724      FFFF
- 17725 10b8e 0FB685B4 		movzbl	-2124(%rbp), %eax
- 17725      F7FFFF
- 17726 10b95 0FB695A4 		movzbl	-2140(%rbp), %edx
- 17726      F7FFFF
- 17727 10b9c 0FB6C0   		movzbl	%al, %eax
- 17728 10b9f 6689853E 		movw	%ax, -8898(%rbp)
- 17728      DDFFFF
- 17729 10ba6 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17729      DDFFFF
- 17730 10bad F6F2     		divb	%dl
- 17731 10baf 88851CDF 		movb	%al, -8420(%rbp)
- 17731      FFFF
- 17732 10bb5 0FB685B5 		movzbl	-2123(%rbp), %eax
- 17732      F7FFFF
- 17733 10bbc 0FB695A5 		movzbl	-2139(%rbp), %edx
- 17733      F7FFFF
- 17734 10bc3 0FB6C0   		movzbl	%al, %eax
- 17735 10bc6 6689853E 		movw	%ax, -8898(%rbp)
- 17735      DDFFFF
- 17736 10bcd 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17736      DDFFFF
- 17737 10bd4 F6F2     		divb	%dl
- 17738 10bd6 4189C1   		movl	%eax, %r9d
- 17739 10bd9 0FB685B6 		movzbl	-2122(%rbp), %eax
- 17739      F7FFFF
- 17740 10be0 0FB695A6 		movzbl	-2138(%rbp), %edx
- 17740      F7FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 550
-
-
- 17741 10be7 0FB6C0   		movzbl	%al, %eax
- 17742 10bea 6689853E 		movw	%ax, -8898(%rbp)
- 17742      DDFFFF
- 17743 10bf1 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17743      DDFFFF
- 17744 10bf8 F6F2     		divb	%dl
- 17745 10bfa 89C7     		movl	%eax, %edi
- 17746 10bfc 0FB685B7 		movzbl	-2121(%rbp), %eax
- 17746      F7FFFF
- 17747 10c03 0FB695A7 		movzbl	-2137(%rbp), %edx
- 17747      F7FFFF
- 17748 10c0a 0FB6C0   		movzbl	%al, %eax
- 17749 10c0d 6689853E 		movw	%ax, -8898(%rbp)
- 17749      DDFFFF
- 17750 10c14 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17750      DDFFFF
- 17751 10c1b F6F2     		divb	%dl
- 17752 10c1d 89C3     		movl	%eax, %ebx
- 17753 10c1f 0FB685B8 		movzbl	-2120(%rbp), %eax
- 17753      F7FFFF
- 17754 10c26 0FB695A8 		movzbl	-2136(%rbp), %edx
- 17754      F7FFFF
- 17755 10c2d 0FB6C0   		movzbl	%al, %eax
- 17756 10c30 6689853E 		movw	%ax, -8898(%rbp)
- 17756      DDFFFF
- 17757 10c37 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17757      DDFFFF
- 17758 10c3e F6F2     		divb	%dl
- 17759 10c40 4189C2   		movl	%eax, %r10d
- 17760 10c43 0FB685B9 		movzbl	-2119(%rbp), %eax
- 17760      F7FFFF
- 17761 10c4a 0FB695A9 		movzbl	-2135(%rbp), %edx
- 17761      F7FFFF
- 17762 10c51 0FB6C0   		movzbl	%al, %eax
- 17763 10c54 6689853E 		movw	%ax, -8898(%rbp)
- 17763      DDFFFF
- 17764 10c5b 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17764      DDFFFF
- 17765 10c62 F6F2     		divb	%dl
- 17766 10c64 4189C3   		movl	%eax, %r11d
- 17767 10c67 0FB685BA 		movzbl	-2118(%rbp), %eax
- 17767      F7FFFF
- 17768 10c6e 0FB695AA 		movzbl	-2134(%rbp), %edx
- 17768      F7FFFF
- 17769 10c75 0FB6C0   		movzbl	%al, %eax
- 17770 10c78 6689853E 		movw	%ax, -8898(%rbp)
- 17770      DDFFFF
- 17771 10c7f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17771      DDFFFF
- 17772 10c86 F6F2     		divb	%dl
- 17773 10c88 4189C4   		movl	%eax, %r12d
- 17774 10c8b 0FB685BB 		movzbl	-2117(%rbp), %eax
- 17774      F7FFFF
- 17775 10c92 0FB695AB 		movzbl	-2133(%rbp), %edx
- 17775      F7FFFF
- 17776 10c99 0FB6C0   		movzbl	%al, %eax
- 17777 10c9c 6689853E 		movw	%ax, -8898(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 551
-
-
- 17777      DDFFFF
- 17778 10ca3 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17778      DDFFFF
- 17779 10caa F6F2     		divb	%dl
- 17780 10cac 4189C5   		movl	%eax, %r13d
- 17781 10caf 0FB685BC 		movzbl	-2116(%rbp), %eax
- 17781      F7FFFF
- 17782 10cb6 0FB695AC 		movzbl	-2132(%rbp), %edx
- 17782      F7FFFF
- 17783 10cbd 0FB6C0   		movzbl	%al, %eax
- 17784 10cc0 6689853E 		movw	%ax, -8898(%rbp)
- 17784      DDFFFF
- 17785 10cc7 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17785      DDFFFF
- 17786 10cce F6F2     		divb	%dl
- 17787 10cd0 4189C6   		movl	%eax, %r14d
- 17788 10cd3 0FB685BD 		movzbl	-2115(%rbp), %eax
- 17788      F7FFFF
- 17789 10cda 0FB695AD 		movzbl	-2131(%rbp), %edx
- 17789      F7FFFF
- 17790 10ce1 0FB6C0   		movzbl	%al, %eax
- 17791 10ce4 6689853E 		movw	%ax, -8898(%rbp)
- 17791      DDFFFF
- 17792 10ceb 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17792      DDFFFF
- 17793 10cf2 F6F2     		divb	%dl
- 17794 10cf4 4189C0   		movl	%eax, %r8d
- 17795 10cf7 0FB685BE 		movzbl	-2114(%rbp), %eax
- 17795      F7FFFF
- 17796 10cfe 0FB695AE 		movzbl	-2130(%rbp), %edx
- 17796      F7FFFF
- 17797 10d05 0FB6C0   		movzbl	%al, %eax
- 17798 10d08 6689853E 		movw	%ax, -8898(%rbp)
- 17798      DDFFFF
- 17799 10d0f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17799      DDFFFF
- 17800 10d16 F6F2     		divb	%dl
- 17801 10d18 89C6     		movl	%eax, %esi
- 17802 10d1a 0FB685BF 		movzbl	-2113(%rbp), %eax
- 17802      F7FFFF
- 17803 10d21 0FB695AF 		movzbl	-2129(%rbp), %edx
- 17803      F7FFFF
- 17804 10d28 0FB6C0   		movzbl	%al, %eax
- 17805 10d2b 6689853E 		movw	%ax, -8898(%rbp)
- 17805      DDFFFF
- 17806 10d32 0FB7853E 		movzwl	-8898(%rbp), %eax
- 17806      DDFFFF
- 17807 10d39 F6F2     		divb	%dl
- 17808 10d3b 89C1     		movl	%eax, %ecx
- 17809              	.LBB2199:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 17810              		.loc 2 346 0
- 17811 10d3d 0FB6D3   		movzbl	%bl, %edx
- 17812 10d40 400FB6C7 		movzbl	%dil, %eax
- 17813 10d44 48C1E208 		salq	$8, %rdx
- 17814 10d48 4809C2   		orq	%rax, %rdx
- 17815 10d4b 410FB6C1 		movzbl	%r9b, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 552
-
-
- 17816 10d4f 48C1E208 		salq	$8, %rdx
- 17817 10d53 4809C2   		orq	%rax, %rdx
- 17818 10d56 0FB6851C 		movzbl	-8420(%rbp), %eax
- 17818      DFFFFF
- 17819 10d5d 48C1E208 		salq	$8, %rdx
- 17820 10d61 4809C2   		orq	%rax, %rdx
- 17821 10d64 0FB6851D 		movzbl	-8419(%rbp), %eax
- 17821      DFFFFF
- 17822 10d6b 48C1E208 		salq	$8, %rdx
- 17823 10d6f 4809C2   		orq	%rax, %rdx
- 17824 10d72 0FB6851E 		movzbl	-8418(%rbp), %eax
- 17824      DFFFFF
- 17825 10d79 48C1E208 		salq	$8, %rdx
- 17826 10d7d 4809C2   		orq	%rax, %rdx
- 17827 10d80 0FB6851F 		movzbl	-8417(%rbp), %eax
- 17827      DFFFFF
- 17828 10d87 48C1E208 		salq	$8, %rdx
- 17829 10d8b 4809C2   		orq	%rax, %rdx
- 17830 10d8e 410FB6C7 		movzbl	%r15b, %eax
- 17831 10d92 48C1E208 		salq	$8, %rdx
- 17832 10d96 4809C2   		orq	%rax, %rdx
- 17833 10d99 0FB6C1   		movzbl	%cl, %eax
- 17834 10d9c 400FB6CE 		movzbl	%sil, %ecx
- 17835 10da0 48C1E008 		salq	$8, %rax
- 17836 10da4 4809C8   		orq	%rcx, %rax
- 17837 10da7 410FB6C8 		movzbl	%r8b, %ecx
- 17838 10dab 48C1E008 		salq	$8, %rax
- 17839 10daf 4809C8   		orq	%rcx, %rax
- 17840 10db2 410FB6CE 		movzbl	%r14b, %ecx
- 17841 10db6 48C1E008 		salq	$8, %rax
- 17842 10dba 4809C8   		orq	%rcx, %rax
- 17843 10dbd 410FB6CD 		movzbl	%r13b, %ecx
- 17844 10dc1 48C1E008 		salq	$8, %rax
- 17845 10dc5 4809C8   		orq	%rcx, %rax
- 17846 10dc8 410FB6CC 		movzbl	%r12b, %ecx
- 17847 10dcc 48C1E008 		salq	$8, %rax
- 17848 10dd0 4809C8   		orq	%rcx, %rax
- 17849 10dd3 410FB6CB 		movzbl	%r11b, %ecx
- 17850 10dd7 48C1E008 		salq	$8, %rax
- 17851 10ddb 4809C8   		orq	%rcx, %rax
- 17852 10dde 410FB6CA 		movzbl	%r10b, %ecx
- 17853 10de2 48C1E008 		salq	$8, %rax
- 17854 10de6 4809C8   		orq	%rcx, %rax
- 17855 10de9 48899560 		movq	%rdx, -8864(%rbp)
- 17855      DDFFFF
- 17856 10df0 48898568 		movq	%rax, -8856(%rbp)
- 17856      DDFFFF
- 17857 10df7 660F6F85 		movdqa	-8864(%rbp), %xmm0
- 17857      60DDFFFF 
- 17858              	.LBE2199:
- 17859              	.LBE2198:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 17860              		.loc 2 862 0
- 17861 10dff F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 17861      60F7FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 17862              		.loc 2 866 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 553
-
-
- 17863 10e07 C7853CF7 		movl	$0, -2244(%rbp)
- 17863      FFFF0000 
- 17863      0000
- 17864 10e11 E9860200 		jmp	.L420
- 17864      00
- 17865              	.L429:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 17866              		.loc 2 868 0
- 17867 10e16 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 17867      00000000 
- 17868 10e1e F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 17868      D0F7FFFF 
- 17869 10e26 F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 17869      60F7FFFF 
- 17870 10e2e F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 17870      C0F7FFFF 
- 17871              	.LBB2200:
- 17872              	.LBB2201:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 17873              		.loc 2 380 0
- 17874 10e36 F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 17874      D0F7FFFF 
- 17875 10e3e F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 17875      20E6FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 17876              		.loc 2 381 0
- 17877 10e46 F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 17877      C0F7FFFF 
- 17878 10e4e F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 17878      10E6FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 17879              		.loc 2 383 0
- 17880 10e56 C785ECF7 		movl	$0, -2068(%rbp)
- 17880      FFFF0000 
- 17880      0000
- 17881 10e60 EB5C     		jmp	.L421
- 17882              	.L424:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 17883              		.loc 2 385 0
- 17884 10e62 8B85ECF7 		movl	-2068(%rbp), %eax
- 17884      FFFF
- 17885 10e68 89C0     		mov	%eax, %eax
- 17886 10e6a 0FB68405 		movzbl	-6640(%rbp,%rax), %eax
- 17886      10E6FFFF 
- 17887 10e72 84C0     		testb	%al, %al
- 17888 10e74 7912     		jns	.L422
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 17889              		.loc 2 386 0
- 17890 10e76 8B85ECF7 		movl	-2068(%rbp), %eax
- 17890      FFFF
- 17891 10e7c 89C0     		mov	%eax, %eax
- 17892 10e7e C6840530 		movb	$0, -6608(%rbp,%rax)
- 17892      E6FFFF00 
- 17893 10e86 EB2F     		jmp	.L423
- 17894              	.L422:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 17895              		.loc 2 388 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 554
-
-
- 17896 10e88 8B8DECF7 		movl	-2068(%rbp), %ecx
- 17896      FFFF
- 17897 10e8e 8B85ECF7 		movl	-2068(%rbp), %eax
- 17897      FFFF
- 17898 10e94 89C0     		mov	%eax, %eax
- 17899 10e96 0FB68405 		movzbl	-6640(%rbp,%rax), %eax
- 17899      10E6FFFF 
- 17900 10e9e 0FB6C0   		movzbl	%al, %eax
- 17901 10ea1 83E00F   		andl	$15, %eax
- 17902 10ea4 4898     		cltq
- 17903 10ea6 0FB69405 		movzbl	-6624(%rbp,%rax), %edx
- 17903      20E6FFFF 
- 17904 10eae 89C8     		mov	%ecx, %eax
- 17905 10eb0 88940530 		movb	%dl, -6608(%rbp,%rax)
- 17905      E6FFFF
- 17906              	.L423:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 17907              		.loc 2 383 0
- 17908 10eb7 8385ECF7 		addl	$1, -2068(%rbp)
- 17908      FFFF01
- 17909              	.L421:
- 17910 10ebe 83BDECF7 		cmpl	$15, -2068(%rbp)
- 17910      FFFF0F
- 17911 10ec5 769B     		jbe	.L424
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 17912              		.loc 2 391 0
- 17913 10ec7 F30F6F85 		movdqu	-6608(%rbp), %xmm0
- 17913      30E6FFFF 
- 17914              	.LBE2201:
- 17915              	.LBE2200:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 17916              		.loc 2 868 0
- 17917 10ecf F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 17917      50F7FFFF 
- 17918 10ed7 F30F6F85 		movdqu	-2192(%rbp), %xmm0
- 17918      70F7FFFF 
- 17919 10edf F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 17919      00F8FFFF 
- 17920 10ee7 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 17920      50F7FFFF 
- 17921 10eef F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 17921      F0F7FFFF 
- 17922              	.LBB2202:
- 17923              	.LBB2203:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 17924              		.loc 2 234 0
- 17925 10ef7 F30F6F85 		movdqu	-2064(%rbp), %xmm0
- 17925      F0F7FFFF 
- 17926 10eff F30F6F8D 		movdqu	-2048(%rbp), %xmm1
- 17926      00F8FFFF 
- 17927 10f07 660FEBC1 		por	%xmm1, %xmm0
- 17928              	.LBE2203:
- 17929              	.LBE2202:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 17930              		.loc 2 870 0
- 17931 10f0b F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 17931      50F7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 555
-
-
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 17932              		.loc 2 872 0
- 17933 10f13 8B853CF7 		mov	-2244(%rbp), %eax
- 17933      FFFF
- 17934 10f19 48C1E004 		salq	$4, %rax
- 17935 10f1d 48038518 		addq	-2280(%rbp), %rax
- 17935      F7FFFF
- 17936 10f24 660F6F00 		movdqa	(%rax), %xmm0
- 17937 10f28 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 17937      20F8FFFF 
- 17938 10f30 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 17938      50F7FFFF 
- 17939 10f38 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 17939      10F8FFFF 
- 17940              	.LBB2204:
- 17941              	.LBB2205:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 17942              		.loc 2 380 0
- 17943 10f40 F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 17943      20F8FFFF 
- 17944 10f48 F30F7F85 		movdqu	%xmm0, -6576(%rbp)
- 17944      50E6FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 17945              		.loc 2 381 0
- 17946 10f50 F30F6F85 		movdqu	-2032(%rbp), %xmm0
- 17946      10F8FFFF 
- 17947 10f58 F30F7F85 		movdqu	%xmm0, -6592(%rbp)
- 17947      40E6FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 17948              		.loc 2 383 0
- 17949 10f60 C7853CF8 		movl	$0, -1988(%rbp)
- 17949      FFFF0000 
- 17949      0000
- 17950 10f6a EB5C     		jmp	.L425
- 17951              	.L428:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 17952              		.loc 2 385 0
- 17953 10f6c 8B853CF8 		movl	-1988(%rbp), %eax
- 17953      FFFF
- 17954 10f72 89C0     		mov	%eax, %eax
- 17955 10f74 0FB68405 		movzbl	-6592(%rbp,%rax), %eax
- 17955      40E6FFFF 
- 17956 10f7c 84C0     		testb	%al, %al
- 17957 10f7e 7912     		jns	.L426
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 17958              		.loc 2 386 0
- 17959 10f80 8B853CF8 		movl	-1988(%rbp), %eax
- 17959      FFFF
- 17960 10f86 89C0     		mov	%eax, %eax
- 17961 10f88 C6840560 		movb	$0, -6560(%rbp,%rax)
- 17961      E6FFFF00 
- 17962 10f90 EB2F     		jmp	.L427
- 17963              	.L426:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 17964              		.loc 2 388 0
- 17965 10f92 8B8D3CF8 		movl	-1988(%rbp), %ecx
- 17965      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 556
-
-
- 17966 10f98 8B853CF8 		movl	-1988(%rbp), %eax
- 17966      FFFF
- 17967 10f9e 89C0     		mov	%eax, %eax
- 17968 10fa0 0FB68405 		movzbl	-6592(%rbp,%rax), %eax
- 17968      40E6FFFF 
- 17969 10fa8 0FB6C0   		movzbl	%al, %eax
- 17970 10fab 83E00F   		andl	$15, %eax
- 17971 10fae 4898     		cltq
- 17972 10fb0 0FB69405 		movzbl	-6576(%rbp,%rax), %edx
- 17972      50E6FFFF 
- 17973 10fb8 89C8     		mov	%ecx, %eax
- 17974 10fba 88940560 		movb	%dl, -6560(%rbp,%rax)
- 17974      E6FFFF
- 17975              	.L427:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 17976              		.loc 2 383 0
- 17977 10fc1 83853CF8 		addl	$1, -1988(%rbp)
- 17977      FFFF01
- 17978              	.L425:
- 17979 10fc8 83BD3CF8 		cmpl	$15, -1988(%rbp)
- 17979      FFFF0F
- 17980 10fcf 769B     		jbe	.L428
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 17981              		.loc 2 391 0
- 17982 10fd1 F30F6F85 		movdqu	-6560(%rbp), %xmm0
- 17982      60E6FFFF 
- 17983              	.LBE2205:
- 17984              	.LBE2204:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 17985              		.loc 2 872 0
- 17986 10fd9 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 17986      50F7FFFF 
- 17987 10fe1 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 17987      40F7FFFF 
- 17988 10fe9 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 17988      50F8FFFF 
- 17989 10ff1 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 17989      50F7FFFF 
- 17990 10ff9 F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 17990      40F8FFFF 
- 17991              	.LBB2206:
- 17992              	.LBB2207:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 17993              		.loc 2 234 0
- 17994 11001 F30F6F85 		movdqu	-1984(%rbp), %xmm0
- 17994      40F8FFFF 
- 17995 11009 F30F6F8D 		movdqu	-1968(%rbp), %xmm1
- 17995      50F8FFFF 
- 17996 11011 660FEBC1 		por	%xmm1, %xmm0
- 17997              	.LBE2207:
- 17998              	.LBE2206:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 17999              		.loc 2 874 0
- 18000 11015 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 18000      40F7FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 18001              		.loc 2 876 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 557
-
-
- 18002 1101d 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 18002      00000000 
- 18003 11025 F30F6F8D 		movdqu	-2208(%rbp), %xmm1
- 18003      60F7FFFF 
- 18004 1102d F30F7F8D 		movdqu	%xmm1, -1936(%rbp)
- 18004      70F8FFFF 
- 18005 11035 F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 18005      60F8FFFF 
- 18006              	.LBB2208:
- 18007              	.LBB2209:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 18008              		.loc 2 290 0
- 18009 1103d F30F6F8D 		movdqu	-1952(%rbp), %xmm1
- 18009      60F8FFFF 
- 18010 11045 F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 18010      70F8FFFF 
- 18011 1104d 660FF8C1 		psubb	%xmm1, %xmm0
- 18012              	.LBE2209:
- 18013              	.LBE2208:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 18014              		.loc 2 876 0
- 18015 11051 F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 18015      60F7FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18016              		.loc 2 878 0
- 18017 11059 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 18017      00000000 
- 18018 11061 F30F6F8D 		movdqu	-2208(%rbp), %xmm1
- 18018      60F7FFFF 
- 18019 11069 F30F7F8D 		movdqu	%xmm1, -1904(%rbp)
- 18019      90F8FFFF 
- 18020 11071 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 18020      80F8FFFF 
- 18021              	.LBB2210:
- 18022              	.LBB2211:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 18023              		.loc 2 206 0
- 18024 11079 F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 18024      80F8FFFF 
- 18025 11081 F30F6F8D 		movdqu	-1904(%rbp), %xmm1
- 18025      90F8FFFF 
- 18026 11089 660FDBC1 		pand	%xmm1, %xmm0
- 18027              	.LBE2211:
- 18028              	.LBE2210:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18029              		.loc 2 878 0
- 18030 1108d F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 18030      60F7FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 18031              		.loc 2 866 0
- 18032 11095 83853CF7 		addl	$1, -2244(%rbp)
- 18032      FFFF01
- 18033              	.L420:
- 18034 1109c 83BD3CF7 		cmpl	$15, -2244(%rbp)
- 18034      FFFF0F
- 18035 110a3 0F866DFD 		jbe	.L429
- 18035      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 558
-
-
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 18036              		.loc 2 882 0
- 18037 110a9 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 18037      40F7FFFF 
- 18038              	.LBE2195:
- 18039              	.LBE2194:
- 18040              	.LBE2193:
- 18041              	.LBE2192:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 18042              		.loc 2 1682 0
- 18043 110b1 660F7F85 		movdqa	%xmm0, -8464(%rbp)
- 18043      F0DEFFFF 
- 18044              	.LBB2212:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 18045              		.loc 2 1683 0
- 18046 110b9 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18046      F0DEFFFF 
- 18047 110c1 F30F7F85 		movdqu	%xmm0, -6672(%rbp)
- 18047      F0E5FFFF 
- 18048 110c9 E8000000 		call	KDbgWriterGet at PLT
- 18048      00
- 18049 110ce 4885C0   		testq	%rax, %rax
- 18050 110d1 7479     		je	.L431
- 18051 110d3 BF010000 		movl	$1, %edi
- 18051      00
- 18052 110d8 E8000000 		call	KDbgCondToFlag at PLT
- 18052      00
- 18053 110dd 4889C6   		movq	%rax, %rsi
- 18054 110e0 BF100000 		movl	$16, %edi
- 18054      00
- 18055 110e5 E8000000 		call	KDbgTestModConds at PLT
- 18055      00
- 18056 110ea 84C0     		testb	%al, %al
- 18057 110ec 745E     		je	.L431
- 18058 110ee 8B85FCE5 		movl	-6660(%rbp), %eax
- 18058      FFFF
- 18059 110f4 89C7     		movl	%eax, %edi
- 18060 110f6 E805EFFE 		call	bswap_32
- 18060      FF
- 18061 110fb 4189C5   		movl	%eax, %r13d
- 18062 110fe 8B85F8E5 		movl	-6664(%rbp), %eax
- 18062      FFFF
- 18063 11104 89C7     		movl	%eax, %edi
- 18064 11106 E8F5EEFE 		call	bswap_32
- 18064      FF
- 18065 1110b 4189C4   		movl	%eax, %r12d
- 18066 1110e 8B85F4E5 		movl	-6668(%rbp), %eax
- 18066      FFFF
- 18067 11114 89C7     		movl	%eax, %edi
- 18068 11116 E8E5EEFE 		call	bswap_32
- 18068      FF
- 18069 1111b 89C3     		movl	%eax, %ebx
- 18070 1111d 8B85F0E5 		movl	-6672(%rbp), %eax
- 18070      FFFF
- 18071 11123 89C7     		movl	%eax, %edi
- 18072 11125 E8D6EEFE 		call	bswap_32
- 18072      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 559
-
-
- 18073 1112a 4589E9   		movl	%r13d, %r9d
- 18074 1112d 4589E0   		movl	%r12d, %r8d
- 18075 11130 89D9     		movl	%ebx, %ecx
- 18076 11132 89C2     		movl	%eax, %edx
- 18077 11134 488D3500 		leaq	.LC0(%rip), %rsi
- 18077      000000
- 18078 1113b 488D3D00 		leaq	.LC1(%rip), %rdi
- 18078      000000
- 18079 11142 B8000000 		movl	$0, %eax
- 18079      00
- 18080 11147 E8000000 		call	KDbgMsg at PLT
- 18080      00
- 18081              	.L431:
- 18082 1114c 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18082      F0DEFFFF 
- 18083 11154 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 18083      A0F8FFFF 
- 18084              	.LBE2212:
- 18085              	.LBB2213:
- 18086              	.LBB2214:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 18087              		.loc 2 667 0
- 18088 1115c 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 18088      00000000 
- 18089 11164 F30F6F8D 		movdqu	-1888(%rbp), %xmm1
- 18089      A0F8FFFF 
- 18090 1116c F30F7F8D 		movdqu	%xmm1, -1856(%rbp)
- 18090      C0F8FFFF 
- 18091 11174 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 18091      B0F8FFFF 
- 18092              	.LBB2215:
- 18093              	.LBB2216:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 18094              		.loc 2 380 0
- 18095 1117c F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 18095      C0F8FFFF 
- 18096 11184 F30F7F85 		movdqu	%xmm0, -6528(%rbp)
- 18096      80E6FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 18097              		.loc 2 381 0
- 18098 1118c F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 18098      B0F8FFFF 
- 18099 11194 F30F7F85 		movdqu	%xmm0, -6544(%rbp)
- 18099      70E6FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 18100              		.loc 2 383 0
- 18101 1119c C785DCF8 		movl	$0, -1828(%rbp)
- 18101      FFFF0000 
- 18101      0000
- 18102 111a6 EB5C     		jmp	.L432
- 18103              	.L435:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 18104              		.loc 2 385 0
- 18105 111a8 8B85DCF8 		movl	-1828(%rbp), %eax
- 18105      FFFF
- 18106 111ae 89C0     		mov	%eax, %eax
- 18107 111b0 0FB68405 		movzbl	-6544(%rbp,%rax), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 560
-
-
- 18107      70E6FFFF 
- 18108 111b8 84C0     		testb	%al, %al
- 18109 111ba 7912     		jns	.L433
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 18110              		.loc 2 386 0
- 18111 111bc 8B85DCF8 		movl	-1828(%rbp), %eax
- 18111      FFFF
- 18112 111c2 89C0     		mov	%eax, %eax
- 18113 111c4 C6840590 		movb	$0, -6512(%rbp,%rax)
- 18113      E6FFFF00 
- 18114 111cc EB2F     		jmp	.L434
- 18115              	.L433:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 18116              		.loc 2 388 0
- 18117 111ce 8B8DDCF8 		movl	-1828(%rbp), %ecx
- 18117      FFFF
- 18118 111d4 8B85DCF8 		movl	-1828(%rbp), %eax
- 18118      FFFF
- 18119 111da 89C0     		mov	%eax, %eax
- 18120 111dc 0FB68405 		movzbl	-6544(%rbp,%rax), %eax
- 18120      70E6FFFF 
- 18121 111e4 0FB6C0   		movzbl	%al, %eax
- 18122 111e7 83E00F   		andl	$15, %eax
- 18123 111ea 4898     		cltq
- 18124 111ec 0FB69405 		movzbl	-6528(%rbp,%rax), %edx
- 18124      80E6FFFF 
- 18125 111f4 89C8     		mov	%ecx, %eax
- 18126 111f6 88940590 		movb	%dl, -6512(%rbp,%rax)
- 18126      E6FFFF
- 18127              	.L434:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 18128              		.loc 2 383 0
- 18129 111fd 8385DCF8 		addl	$1, -1828(%rbp)
- 18129      FFFF01
- 18130              	.L432:
- 18131 11204 83BDDCF8 		cmpl	$15, -1828(%rbp)
- 18131      FFFF0F
- 18132 1120b 769B     		jbe	.L435
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 18133              		.loc 2 391 0
- 18134 1120d F30F6F85 		movdqu	-6512(%rbp), %xmm0
- 18134      90E6FFFF 
- 18135              	.LBE2216:
- 18136              	.LBE2215:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 18137              		.loc 2 667 0
- 18138 11215 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 18138      A0F8FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18139              		.loc 2 668 0
- 18140 1121d F30F6F85 		movdqu	-1888(%rbp), %xmm0
- 18140      A0F8FFFF 
- 18141              	.LBE2214:
- 18142              	.LBE2213:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 18143              		.loc 2 1684 0
- 18144 11225 660F7F85 		movdqa	%xmm0, -8464(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 561
-
-
- 18144      F0DEFFFF 
- 18145              	.LBB2217:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 18146              		.loc 2 1685 0
- 18147 1122d 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18147      F0DEFFFF 
- 18148 11235 F30F7F85 		movdqu	%xmm0, -6688(%rbp)
- 18148      E0E5FFFF 
- 18149 1123d E8000000 		call	KDbgWriterGet at PLT
- 18149      00
- 18150 11242 4885C0   		testq	%rax, %rax
- 18151 11245 7479     		je	.L437
- 18152 11247 BF010000 		movl	$1, %edi
- 18152      00
- 18153 1124c E8000000 		call	KDbgCondToFlag at PLT
- 18153      00
- 18154 11251 4889C6   		movq	%rax, %rsi
- 18155 11254 BF100000 		movl	$16, %edi
- 18155      00
- 18156 11259 E8000000 		call	KDbgTestModConds at PLT
- 18156      00
- 18157 1125e 84C0     		testb	%al, %al
- 18158 11260 745E     		je	.L437
- 18159 11262 8B85ECE5 		movl	-6676(%rbp), %eax
- 18159      FFFF
- 18160 11268 89C7     		movl	%eax, %edi
- 18161 1126a E891EDFE 		call	bswap_32
- 18161      FF
- 18162 1126f 4189C5   		movl	%eax, %r13d
- 18163 11272 8B85E8E5 		movl	-6680(%rbp), %eax
- 18163      FFFF
- 18164 11278 89C7     		movl	%eax, %edi
- 18165 1127a E881EDFE 		call	bswap_32
- 18165      FF
- 18166 1127f 4189C4   		movl	%eax, %r12d
- 18167 11282 8B85E4E5 		movl	-6684(%rbp), %eax
- 18167      FFFF
- 18168 11288 89C7     		movl	%eax, %edi
- 18169 1128a E871EDFE 		call	bswap_32
- 18169      FF
- 18170 1128f 89C3     		movl	%eax, %ebx
- 18171 11291 8B85E0E5 		movl	-6688(%rbp), %eax
- 18171      FFFF
- 18172 11297 89C7     		movl	%eax, %edi
- 18173 11299 E862EDFE 		call	bswap_32
- 18173      FF
- 18174 1129e 4589E9   		movl	%r13d, %r9d
- 18175 112a1 4589E0   		movl	%r12d, %r8d
- 18176 112a4 89D9     		movl	%ebx, %ecx
- 18177 112a6 89C2     		movl	%eax, %edx
- 18178 112a8 488D3500 		leaq	.LC2(%rip), %rsi
- 18178      000000
- 18179 112af 488D3D00 		leaq	.LC1(%rip), %rdi
- 18179      000000
- 18180 112b6 B8000000 		movl	$0, %eax
- 18180      00
- 18181 112bb E8000000 		call	KDbgMsg at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 562
-
-
- 18181      00
- 18182              	.L437:
- 18183 112c0 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18183      F0DEFFFF 
- 18184 112c8 F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 18184      F0F8FFFF 
- 18185 112d0 660F6F85 		movdqa	-8448(%rbp), %xmm0
- 18185      00DFFFFF 
- 18186 112d8 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 18186      E0F8FFFF 
- 18187              	.LBE2217:
- 18188              	.LBB2218:
- 18189              	.LBB2219:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18190              		.loc 2 178 0
- 18191 112e0 F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 18191      E0F8FFFF 
- 18192 112e8 F30F6F8D 		movdqu	-1808(%rbp), %xmm1
- 18192      F0F8FFFF 
- 18193 112f0 660FEFC1 		pxor	%xmm1, %xmm0
- 18194              	.LBE2219:
- 18195              	.LBE2218:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 18196              		.loc 2 1686 0
- 18197 112f4 660F7F85 		movdqa	%xmm0, -8464(%rbp)
- 18197      F0DEFFFF 
- 18198              	.LBB2220:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 18199              		.loc 2 1687 0
- 18200 112fc 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18200      F0DEFFFF 
- 18201 11304 F30F7F85 		movdqu	%xmm0, -6704(%rbp)
- 18201      D0E5FFFF 
- 18202 1130c E8000000 		call	KDbgWriterGet at PLT
- 18202      00
- 18203 11311 4885C0   		testq	%rax, %rax
- 18204 11314 7479     		je	.L439
- 18205 11316 BF010000 		movl	$1, %edi
- 18205      00
- 18206 1131b E8000000 		call	KDbgCondToFlag at PLT
- 18206      00
- 18207 11320 4889C6   		movq	%rax, %rsi
- 18208 11323 BF100000 		movl	$16, %edi
- 18208      00
- 18209 11328 E8000000 		call	KDbgTestModConds at PLT
- 18209      00
- 18210 1132d 84C0     		testb	%al, %al
- 18211 1132f 745E     		je	.L439
- 18212 11331 8B85DCE5 		movl	-6692(%rbp), %eax
- 18212      FFFF
- 18213 11337 89C7     		movl	%eax, %edi
- 18214 11339 E8C2ECFE 		call	bswap_32
- 18214      FF
- 18215 1133e 4189C5   		movl	%eax, %r13d
- 18216 11341 8B85D8E5 		movl	-6696(%rbp), %eax
- 18216      FFFF
- 18217 11347 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 563
-
-
- 18218 11349 E8B2ECFE 		call	bswap_32
- 18218      FF
- 18219 1134e 4189C4   		movl	%eax, %r12d
- 18220 11351 8B85D4E5 		movl	-6700(%rbp), %eax
- 18220      FFFF
- 18221 11357 89C7     		movl	%eax, %edi
- 18222 11359 E8A2ECFE 		call	bswap_32
- 18222      FF
- 18223 1135e 89C3     		movl	%eax, %ebx
- 18224 11360 8B85D0E5 		movl	-6704(%rbp), %eax
- 18224      FFFF
- 18225 11366 89C7     		movl	%eax, %edi
- 18226 11368 E893ECFE 		call	bswap_32
- 18226      FF
- 18227 1136d 4589E9   		movl	%r13d, %r9d
- 18228 11370 4589E0   		movl	%r12d, %r8d
- 18229 11373 89D9     		movl	%ebx, %ecx
- 18230 11375 89C2     		movl	%eax, %edx
- 18231 11377 488D3500 		leaq	.LC3(%rip), %rsi
- 18231      000000
- 18232 1137e 488D3D00 		leaq	.LC1(%rip), %rdi
- 18232      000000
- 18233 11385 B8000000 		movl	$0, %eax
- 18233      00
- 18234 1138a E8000000 		call	KDbgMsg at PLT
- 18234      00
- 18235              	.L439:
- 18236 1138f 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18236      F0DEFFFF 
- 18237 11397 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 18237      00F9FFFF 
- 18238              	.LBE2220:
- 18239              	.LBB2221:
- 18240              	.LBB2222:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 18241              		.loc 2 1357 0
- 18242 1139f F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 18242      00F9FFFF 
- 18243 113a7 F30F7F85 		movdqu	%xmm0, -6496(%rbp)
- 18243      A0E6FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 18244              		.loc 2 1358 0
- 18245 113af 8B85ACE6 		movl	-6484(%rbp), %eax
- 18245      FFFF
- 18246 113b5 8985A8E6 		movl	%eax, -6488(%rbp)
- 18246      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 18247              		.loc 2 1359 0
- 18248 113bb 8B85ACE6 		movl	-6484(%rbp), %eax
- 18248      FFFF
- 18249 113c1 8985A4E6 		movl	%eax, -6492(%rbp)
- 18249      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 18250              		.loc 2 1360 0
- 18251 113c7 8B85ACE6 		movl	-6484(%rbp), %eax
- 18251      FFFF
- 18252 113cd 8985A0E6 		movl	%eax, -6496(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 564
-
-
- 18252      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 18253              		.loc 2 1361 0
- 18254 113d3 F30F6F85 		movdqu	-6496(%rbp), %xmm0
- 18254      A0E6FFFF 
- 18255              	.LBE2222:
- 18256              	.LBE2221:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 18257              		.loc 2 1688 0
- 18258 113db 660F7F85 		movdqa	%xmm0, -8464(%rbp)
- 18258      F0DEFFFF 
- 18259              	.LBB2223:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 18260              		.loc 2 1689 0
- 18261 113e3 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18261      F0DEFFFF 
- 18262 113eb F30F7F85 		movdqu	%xmm0, -6720(%rbp)
- 18262      C0E5FFFF 
- 18263 113f3 E8000000 		call	KDbgWriterGet at PLT
- 18263      00
- 18264 113f8 4885C0   		testq	%rax, %rax
- 18265 113fb 7479     		je	.L441
- 18266 113fd BF010000 		movl	$1, %edi
- 18266      00
- 18267 11402 E8000000 		call	KDbgCondToFlag at PLT
- 18267      00
- 18268 11407 4889C6   		movq	%rax, %rsi
- 18269 1140a BF100000 		movl	$16, %edi
- 18269      00
- 18270 1140f E8000000 		call	KDbgTestModConds at PLT
- 18270      00
- 18271 11414 84C0     		testb	%al, %al
- 18272 11416 745E     		je	.L441
- 18273 11418 8B85CCE5 		movl	-6708(%rbp), %eax
- 18273      FFFF
- 18274 1141e 89C7     		movl	%eax, %edi
- 18275 11420 E8DBEBFE 		call	bswap_32
- 18275      FF
- 18276 11425 4189C5   		movl	%eax, %r13d
- 18277 11428 8B85C8E5 		movl	-6712(%rbp), %eax
- 18277      FFFF
- 18278 1142e 89C7     		movl	%eax, %edi
- 18279 11430 E8CBEBFE 		call	bswap_32
- 18279      FF
- 18280 11435 4189C4   		movl	%eax, %r12d
- 18281 11438 8B85C4E5 		movl	-6716(%rbp), %eax
- 18281      FFFF
- 18282 1143e 89C7     		movl	%eax, %edi
- 18283 11440 E8BBEBFE 		call	bswap_32
- 18283      FF
- 18284 11445 89C3     		movl	%eax, %ebx
- 18285 11447 8B85C0E5 		movl	-6720(%rbp), %eax
- 18285      FFFF
- 18286 1144d 89C7     		movl	%eax, %edi
- 18287 1144f E8ACEBFE 		call	bswap_32
- 18287      FF
- 18288 11454 4589E9   		movl	%r13d, %r9d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 565
-
-
- 18289 11457 4589E0   		movl	%r12d, %r8d
- 18290 1145a 89D9     		movl	%ebx, %ecx
- 18291 1145c 89C2     		movl	%eax, %edx
- 18292 1145e 488D3500 		leaq	.LC4(%rip), %rsi
- 18292      000000
- 18293 11465 488D3D00 		leaq	.LC1(%rip), %rdi
- 18293      000000
- 18294 1146c B8000000 		movl	$0, %eax
- 18294      00
- 18295 11471 E8000000 		call	KDbgMsg at PLT
- 18295      00
- 18296              	.L441:
- 18297              	.LBE2223:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 18298              		.loc 2 1690 0
- 18299 11476 660F6F85 		movdqa	-8464(%rbp), %xmm0
- 18299      F0DEFFFF 
- 18300              	.LBE2189:
- 18301              	.LBE2188:
-1934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(10,0x10);   /* k40 : k41 : k42 : k43 */
- 18302              		.loc 2 1934 0
- 18303 1147e F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 18303      E0E9FFFF 
- 18304 11486 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 18304      C0E9FFFF 
- 18305 1148e F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 18305      10F9FFFF 
- 18306              	.LBB2224:
- 18307              	.LBB2225:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 18308              		.loc 2 1565 0
- 18309 11496 F30F6F85 		movdqu	-1776(%rbp), %xmm0
- 18309      10F9FFFF 
- 18310 1149e 660F7F85 		movdqa	%xmm0, -8416(%rbp)
- 18310      20DFFFFF 
- 18311 114a6 660F6F85 		movdqa	-8416(%rbp), %xmm0
- 18311      20DFFFFF 
- 18312 114ae F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 18312      20F9FFFF 
- 18313              	.LBB2226:
- 18314              	.LBB2227:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 18315              		.loc 2 1282 0
- 18316 114b6 F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 18316      20F9FFFF 
- 18317 114be F30F7F85 		movdqu	%xmm0, -6480(%rbp)
- 18317      B0E6FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 18318              		.loc 2 1283 0
- 18319 114c6 8B85B8E6 		movl	-6472(%rbp), %eax
- 18319      FFFF
- 18320 114cc 8985BCE6 		movl	%eax, -6468(%rbp)
- 18320      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 18321              		.loc 2 1284 0
- 18322 114d2 8B85B4E6 		movl	-6476(%rbp), %eax
- 18322      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 566
-
-
- 18323 114d8 8985B8E6 		movl	%eax, -6472(%rbp)
- 18323      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 18324              		.loc 2 1285 0
- 18325 114de 8B85B0E6 		movl	-6480(%rbp), %eax
- 18325      FFFF
- 18326 114e4 8985B4E6 		movl	%eax, -6476(%rbp)
- 18326      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 18327              		.loc 2 1286 0
- 18328 114ea C785B0E6 		movl	$0, -6480(%rbp)
- 18328      FFFF0000 
- 18328      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 18329              		.loc 2 1287 0
- 18330 114f4 F30F6F85 		movdqu	-6480(%rbp), %xmm0
- 18330      B0E6FFFF 
- 18331              	.LBE2227:
- 18332              	.LBE2226:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 18333              		.loc 2 1567 0
- 18334 114fc 660F7F85 		movdqa	%xmm0, -8416(%rbp)
- 18334      20DFFFFF 
- 18335 11504 660F6F85 		movdqa	-8416(%rbp), %xmm0
- 18335      20DFFFFF 
- 18336 1150c 660FEF85 		pxor	-1776(%rbp), %xmm0
- 18336      10F9FFFF 
- 18337 11514 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 18337      10F9FFFF 
- 18338 1151c 660F6F85 		movdqa	-8416(%rbp), %xmm0
- 18338      20DFFFFF 
- 18339 11524 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 18339      30F9FFFF 
- 18340              	.LBB2228:
- 18341              	.LBB2229:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 18342              		.loc 2 1282 0
- 18343 1152c F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 18343      30F9FFFF 
- 18344 11534 F30F7F85 		movdqu	%xmm0, -6464(%rbp)
- 18344      C0E6FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 18345              		.loc 2 1283 0
- 18346 1153c 8B85C8E6 		movl	-6456(%rbp), %eax
- 18346      FFFF
- 18347 11542 8985CCE6 		movl	%eax, -6452(%rbp)
- 18347      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 18348              		.loc 2 1284 0
- 18349 11548 8B85C4E6 		movl	-6460(%rbp), %eax
- 18349      FFFF
- 18350 1154e 8985C8E6 		movl	%eax, -6456(%rbp)
- 18350      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 18351              		.loc 2 1285 0
- 18352 11554 8B85C0E6 		movl	-6464(%rbp), %eax
- 18352      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 567
-
-
- 18353 1155a 8985C4E6 		movl	%eax, -6460(%rbp)
- 18353      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 18354              		.loc 2 1286 0
- 18355 11560 C785C0E6 		movl	$0, -6464(%rbp)
- 18355      FFFF0000 
- 18355      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 18356              		.loc 2 1287 0
- 18357 1156a F30F6F85 		movdqu	-6464(%rbp), %xmm0
- 18357      C0E6FFFF 
- 18358              	.LBE2229:
- 18359              	.LBE2228:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 18360              		.loc 2 1568 0
- 18361 11572 660F7F85 		movdqa	%xmm0, -8416(%rbp)
- 18361      20DFFFFF 
- 18362 1157a 660F6F85 		movdqa	-8416(%rbp), %xmm0
- 18362      20DFFFFF 
- 18363 11582 660FEF85 		pxor	-1776(%rbp), %xmm0
- 18363      10F9FFFF 
- 18364 1158a F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 18364      10F9FFFF 
- 18365 11592 660F6F85 		movdqa	-8416(%rbp), %xmm0
- 18365      20DFFFFF 
- 18366 1159a F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 18366      40F9FFFF 
- 18367              	.LBB2230:
- 18368              	.LBB2231:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 18369              		.loc 2 1282 0
- 18370 115a2 F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 18370      40F9FFFF 
- 18371 115aa F30F7F85 		movdqu	%xmm0, -6448(%rbp)
- 18371      D0E6FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 18372              		.loc 2 1283 0
- 18373 115b2 8B85D8E6 		movl	-6440(%rbp), %eax
- 18373      FFFF
- 18374 115b8 8985DCE6 		movl	%eax, -6436(%rbp)
- 18374      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 18375              		.loc 2 1284 0
- 18376 115be 8B85D4E6 		movl	-6444(%rbp), %eax
- 18376      FFFF
- 18377 115c4 8985D8E6 		movl	%eax, -6440(%rbp)
- 18377      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 18378              		.loc 2 1285 0
- 18379 115ca 8B85D0E6 		movl	-6448(%rbp), %eax
- 18379      FFFF
- 18380 115d0 8985D4E6 		movl	%eax, -6444(%rbp)
- 18380      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 18381              		.loc 2 1286 0
- 18382 115d6 C785D0E6 		movl	$0, -6448(%rbp)
- 18382      FFFF0000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 568
-
-
- 18382      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 18383              		.loc 2 1287 0
- 18384 115e0 F30F6F85 		movdqu	-6448(%rbp), %xmm0
- 18384      D0E6FFFF 
- 18385              	.LBE2231:
- 18386              	.LBE2230:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 18387              		.loc 2 1569 0
- 18388 115e8 660F7F85 		movdqa	%xmm0, -8416(%rbp)
- 18388      20DFFFFF 
- 18389 115f0 660F6F85 		movdqa	-8416(%rbp), %xmm0
- 18389      20DFFFFF 
- 18390 115f8 660FEF85 		pxor	-1776(%rbp), %xmm0
- 18390      10F9FFFF 
- 18391 11600 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 18391      10F9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18392              		.loc 2 1571 0
- 18393 11608 F30F6F85 		movdqu	-1776(%rbp), %xmm0
- 18393      10F9FFFF 
- 18394              	.LBE2225:
- 18395              	.LBE2224:
-1934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(10,0x10);   /* k40 : k41 : k42 : k43 */
- 18396              		.loc 2 1934 0
- 18397 11610 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 18397      C0E9FFFF 
- 18398 11618 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 18398      C0E9FFFF 
- 18399 11620 F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 18399      60F9FFFF 
- 18400 11628 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 18400      E0E9FFFF 
- 18401 11630 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 18401      50F9FFFF 
- 18402              	.LBB2232:
- 18403              	.LBB2233:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18404              		.loc 2 178 0
- 18405 11638 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 18405      50F9FFFF 
- 18406 11640 F30F6F8D 		movdqu	-1696(%rbp), %xmm1
- 18406      60F9FFFF 
- 18407 11648 660FEFC1 		pxor	%xmm1, %xmm0
- 18408              	.LBE2233:
- 18409              	.LBE2232:
-1934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(10,0x10);   /* k40 : k41 : k42 : k43 */
- 18410              		.loc 2 1934 0
- 18411 1164c F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 18411      C0E9FFFF 
- 18412 11654 488B85D8 		movq	-8232(%rbp), %rax
- 18412      DFFFFF
- 18413 1165b 4805A000 		addq	$160, %rax
- 18413      0000
- 18414 11661 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 18414      C0E9FFFF 
- 18415 11669 F30F7F00 		movdqu	%xmm0, (%rax)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 569
-
-
- 18416 1166d F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 18416      C0E9FFFF 
- 18417 11675 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 18417      70F9FFFF 
- 18418              	.LBB2234:
- 18419              	.LBB2235:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 18420              		.loc 2 1656 0
- 18421 1167d F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 18421      70F9FFFF 
- 18422 11685 F30F7F85 		movdqu	%xmm0, -6416(%rbp)
- 18422      F0E6FFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 18423              		.loc 2 1657 0
- 18424 1168d 8B85FCE6 		movl	-6404(%rbp), %eax
- 18424      FFFF
- 18425 11693 898588F9 		movl	%eax, -1656(%rbp)
- 18425      FFFF
- 18426              	.LBB2236:
- 18427              	.LBB2237:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 18428              		.loc 2 740 0
- 18429 11699 8B8588F9 		movl	-1656(%rbp), %eax
- 18429      FFFF
- 18430 1169f 8985E0E6 		movl	%eax, -6432(%rbp)
- 18430      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 18431              		.loc 2 741 0
- 18432 116a5 C7858CF9 		movl	$0, -1652(%rbp)
- 18432      FFFF0000 
- 18432      0000
- 18433 116af EB36     		jmp	.L442
- 18434              	.L443:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 18435              		.loc 2 742 0
- 18436 116b1 8B8D8CF9 		movl	-1652(%rbp), %ecx
- 18436      FFFF
- 18437 116b7 8B858CF9 		movl	-1652(%rbp), %eax
- 18437      FFFF
- 18438 116bd 89C0     		mov	%eax, %eax
- 18439 116bf 0FB68405 		movzbl	-6432(%rbp,%rax), %eax
- 18439      E0E6FFFF 
- 18440 116c7 0FB6C0   		movzbl	%al, %eax
- 18441 116ca 89C2     		mov	%eax, %edx
- 18442 116cc 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 18442      000000
- 18443 116d3 0FB61402 		movzbl	(%rdx,%rax), %edx
- 18444 116d7 89C8     		mov	%ecx, %eax
- 18445 116d9 889405E0 		movb	%dl, -6432(%rbp,%rax)
- 18445      E6FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 18446              		.loc 2 741 0
- 18447 116e0 83858CF9 		addl	$1, -1652(%rbp)
- 18447      FFFF01
- 18448              	.L442:
- 18449 116e7 83BD8CF9 		cmpl	$3, -1652(%rbp)
- 18449      FFFF03
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 570
-
-
- 18450 116ee 76C1     		jbe	.L443
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 18451              		.loc 2 743 0
- 18452 116f0 8B85E0E6 		movl	-6432(%rbp), %eax
- 18452      FFFF
- 18453              	.LBE2237:
- 18454              	.LBE2236:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 18455              		.loc 2 1657 0
- 18456 116f6 898584F9 		movl	%eax, -1660(%rbp)
- 18456      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 18457              		.loc 2 1659 0
- 18458 116fc 8B8584F9 		movl	-1660(%rbp), %eax
- 18458      FFFF
- 18459 11702 8985FCE6 		movl	%eax, -6404(%rbp)
- 18459      FFFF
- 18460 11708 8B85FCE6 		movl	-6404(%rbp), %eax
- 18460      FFFF
- 18461 1170e 8985F8E6 		movl	%eax, -6408(%rbp)
- 18461      FFFF
- 18462 11714 8B85F8E6 		movl	-6408(%rbp), %eax
- 18462      FFFF
- 18463 1171a 8985F4E6 		movl	%eax, -6412(%rbp)
- 18463      FFFF
- 18464 11720 8B85F4E6 		movl	-6412(%rbp), %eax
- 18464      FFFF
- 18465 11726 8985F0E6 		movl	%eax, -6416(%rbp)
- 18465      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 18466              		.loc 2 1660 0
- 18467 1172c F30F6F85 		movdqu	-6416(%rbp), %xmm0
- 18467      F0E6FFFF 
- 18468              	.LBE2235:
- 18469              	.LBE2234:
-1935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(11);        /* k44 : k45 : k46 : k47 */
- 18470              		.loc 2 1935 0
- 18471 11734 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 18471      E0E9FFFF 
- 18472 1173c F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 18472      D0E9FFFF 
- 18473 11744 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 18473      90F9FFFF 
- 18474              	.LBB2238:
- 18475              	.LBB2239:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 18476              		.loc 2 1565 0
- 18477 1174c F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 18477      90F9FFFF 
- 18478 11754 660F7F85 		movdqa	%xmm0, -8400(%rbp)
- 18478      30DFFFFF 
- 18479 1175c 660F6F85 		movdqa	-8400(%rbp), %xmm0
- 18479      30DFFFFF 
- 18480 11764 F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 18480      A0F9FFFF 
- 18481              	.LBB2240:
- 18482              	.LBB2241:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 571
-
-
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 18483              		.loc 2 1282 0
- 18484 1176c F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 18484      A0F9FFFF 
- 18485 11774 F30F7F85 		movdqu	%xmm0, -6400(%rbp)
- 18485      00E7FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 18486              		.loc 2 1283 0
- 18487 1177c 8B8508E7 		movl	-6392(%rbp), %eax
- 18487      FFFF
- 18488 11782 89850CE7 		movl	%eax, -6388(%rbp)
- 18488      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 18489              		.loc 2 1284 0
- 18490 11788 8B8504E7 		movl	-6396(%rbp), %eax
- 18490      FFFF
- 18491 1178e 898508E7 		movl	%eax, -6392(%rbp)
- 18491      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 18492              		.loc 2 1285 0
- 18493 11794 8B8500E7 		movl	-6400(%rbp), %eax
- 18493      FFFF
- 18494 1179a 898504E7 		movl	%eax, -6396(%rbp)
- 18494      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 18495              		.loc 2 1286 0
- 18496 117a0 C78500E7 		movl	$0, -6400(%rbp)
- 18496      FFFF0000 
- 18496      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 18497              		.loc 2 1287 0
- 18498 117aa F30F6F85 		movdqu	-6400(%rbp), %xmm0
- 18498      00E7FFFF 
- 18499              	.LBE2241:
- 18500              	.LBE2240:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 18501              		.loc 2 1567 0
- 18502 117b2 660F7F85 		movdqa	%xmm0, -8400(%rbp)
- 18502      30DFFFFF 
- 18503 117ba 660F6F85 		movdqa	-8400(%rbp), %xmm0
- 18503      30DFFFFF 
- 18504 117c2 660FEF85 		pxor	-1648(%rbp), %xmm0
- 18504      90F9FFFF 
- 18505 117ca F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 18505      90F9FFFF 
- 18506 117d2 660F6F85 		movdqa	-8400(%rbp), %xmm0
- 18506      30DFFFFF 
- 18507 117da F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 18507      B0F9FFFF 
- 18508              	.LBB2242:
- 18509              	.LBB2243:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 18510              		.loc 2 1282 0
- 18511 117e2 F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 18511      B0F9FFFF 
- 18512 117ea F30F7F85 		movdqu	%xmm0, -6384(%rbp)
- 18512      10E7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 572
-
-
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 18513              		.loc 2 1283 0
- 18514 117f2 8B8518E7 		movl	-6376(%rbp), %eax
- 18514      FFFF
- 18515 117f8 89851CE7 		movl	%eax, -6372(%rbp)
- 18515      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 18516              		.loc 2 1284 0
- 18517 117fe 8B8514E7 		movl	-6380(%rbp), %eax
- 18517      FFFF
- 18518 11804 898518E7 		movl	%eax, -6376(%rbp)
- 18518      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 18519              		.loc 2 1285 0
- 18520 1180a 8B8510E7 		movl	-6384(%rbp), %eax
- 18520      FFFF
- 18521 11810 898514E7 		movl	%eax, -6380(%rbp)
- 18521      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 18522              		.loc 2 1286 0
- 18523 11816 C78510E7 		movl	$0, -6384(%rbp)
- 18523      FFFF0000 
- 18523      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 18524              		.loc 2 1287 0
- 18525 11820 F30F6F85 		movdqu	-6384(%rbp), %xmm0
- 18525      10E7FFFF 
- 18526              	.LBE2243:
- 18527              	.LBE2242:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 18528              		.loc 2 1568 0
- 18529 11828 660F7F85 		movdqa	%xmm0, -8400(%rbp)
- 18529      30DFFFFF 
- 18530 11830 660F6F85 		movdqa	-8400(%rbp), %xmm0
- 18530      30DFFFFF 
- 18531 11838 660FEF85 		pxor	-1648(%rbp), %xmm0
- 18531      90F9FFFF 
- 18532 11840 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 18532      90F9FFFF 
- 18533 11848 660F6F85 		movdqa	-8400(%rbp), %xmm0
- 18533      30DFFFFF 
- 18534 11850 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 18534      C0F9FFFF 
- 18535              	.LBB2244:
- 18536              	.LBB2245:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 18537              		.loc 2 1282 0
- 18538 11858 F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 18538      C0F9FFFF 
- 18539 11860 F30F7F85 		movdqu	%xmm0, -6368(%rbp)
- 18539      20E7FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 18540              		.loc 2 1283 0
- 18541 11868 8B8528E7 		movl	-6360(%rbp), %eax
- 18541      FFFF
- 18542 1186e 89852CE7 		movl	%eax, -6356(%rbp)
- 18542      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 573
-
-
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 18543              		.loc 2 1284 0
- 18544 11874 8B8524E7 		movl	-6364(%rbp), %eax
- 18544      FFFF
- 18545 1187a 898528E7 		movl	%eax, -6360(%rbp)
- 18545      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 18546              		.loc 2 1285 0
- 18547 11880 8B8520E7 		movl	-6368(%rbp), %eax
- 18547      FFFF
- 18548 11886 898524E7 		movl	%eax, -6364(%rbp)
- 18548      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 18549              		.loc 2 1286 0
- 18550 1188c C78520E7 		movl	$0, -6368(%rbp)
- 18550      FFFF0000 
- 18550      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 18551              		.loc 2 1287 0
- 18552 11896 F30F6F85 		movdqu	-6368(%rbp), %xmm0
- 18552      20E7FFFF 
- 18553              	.LBE2245:
- 18554              	.LBE2244:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 18555              		.loc 2 1569 0
- 18556 1189e 660F7F85 		movdqa	%xmm0, -8400(%rbp)
- 18556      30DFFFFF 
- 18557 118a6 660F6F85 		movdqa	-8400(%rbp), %xmm0
- 18557      30DFFFFF 
- 18558 118ae 660FEF85 		pxor	-1648(%rbp), %xmm0
- 18558      90F9FFFF 
- 18559 118b6 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 18559      90F9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18560              		.loc 2 1571 0
- 18561 118be F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 18561      90F9FFFF 
- 18562              	.LBE2239:
- 18563              	.LBE2238:
-1935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(11);        /* k44 : k45 : k46 : k47 */
- 18564              		.loc 2 1935 0
- 18565 118c6 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 18565      D0E9FFFF 
- 18566 118ce F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 18566      D0E9FFFF 
- 18567 118d6 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 18567      E0F9FFFF 
- 18568 118de F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 18568      E0E9FFFF 
- 18569 118e6 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 18569      D0F9FFFF 
- 18570              	.LBB2246:
- 18571              	.LBB2247:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18572              		.loc 2 178 0
- 18573 118ee F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 18573      D0F9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 574
-
-
- 18574 118f6 F30F6F8D 		movdqu	-1568(%rbp), %xmm1
- 18574      E0F9FFFF 
- 18575 118fe 660FEFC1 		pxor	%xmm1, %xmm0
- 18576              	.LBE2247:
- 18577              	.LBE2246:
-1935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(11);        /* k44 : k45 : k46 : k47 */
- 18578              		.loc 2 1935 0
- 18579 11902 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 18579      D0E9FFFF 
- 18580 1190a 488B85D8 		movq	-8232(%rbp), %rax
- 18580      DFFFFF
- 18581 11911 4805B000 		addq	$176, %rax
- 18581      0000
- 18582 11917 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 18582      D0E9FFFF 
- 18583 1191f F30F7F00 		movdqu	%xmm0, (%rax)
- 18584 11923 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 18584      D0E9FFFF 
- 18585 1192b F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 18585      00FAFFFF 
- 18586              	.LBB2248:
- 18587              	.LBB2249:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 18588              		.loc 2 1681 0
- 18589 11933 B8200000 		movl	$32, %eax
- 18589      00
- 18590 11938 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 18590      00000000 
- 18591 11940 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 18591      20FAFFFF 
- 18592 11948 89851CFA 		movl	%eax, -1508(%rbp)
- 18592      FFFF
- 18593              	.LBB2250:
- 18594              	.LBB2251:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 18595              		.loc 2 522 0
- 18596 1194e F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 18596      20FAFFFF 
- 18597 11956 F30F7F85 		movdqu	%xmm0, -6288(%rbp)
- 18597      70E7FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 18598              		.loc 2 523 0
- 18599 1195e B8030000 		movl	$3, %eax
- 18599      00
- 18600 11963 4898     		cltq
- 18601 11965 8B951CFA 		movl	-1508(%rbp), %edx
- 18601      FFFF
- 18602 1196b 89948570 		movl	%edx, -6288(%rbp,%rax,4)
- 18602      E7FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 18603              		.loc 2 524 0
- 18604 11972 F30F6F85 		movdqu	-6288(%rbp), %xmm0
- 18604      70E7FFFF 
- 18605 1197a F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 18605      20FAFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18606              		.loc 2 526 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 575
-
-
- 18607 11982 F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 18607      20FAFFFF 
- 18608              	.LBE2251:
- 18609              	.LBE2250:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 18610              		.loc 2 1681 0
- 18611 1198a 660F7F85 		movdqa	%xmm0, -8368(%rbp)
- 18611      50DFFFFF 
- 18612 11992 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 18612      00FAFFFF 
- 18613 1199a F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 18613      30FAFFFF 
- 18614 119a2 F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 18614      30FAFFFF 
- 18615 119aa F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 18615      50FAFFFF 
- 18616 119b2 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 18616      000000
- 18617 119b9 48898548 		movq	%rax, -1464(%rbp)
- 18617      FAFFFF
- 18618              	.LBB2252:
- 18619              	.LBB2253:
- 18620              	.LBB2254:
- 18621              	.LBB2255:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 18622              		.loc 2 851 0
- 18623 119c0 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 18623      00000000 
- 18624 119c8 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 18624      70FAFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 18625              		.loc 2 854 0
- 18626 119d0 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 18626      00000000 
- 18627 119d8 F30F6F8D 		movdqu	-1456(%rbp), %xmm1
- 18627      50FAFFFF 
- 18628 119e0 F30F7F8D 		movdqu	%xmm1, -1344(%rbp)
- 18628      C0FAFFFF 
- 18629 119e8 F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 18629      B0FAFFFF 
- 18630              	.LBB2256:
- 18631              	.LBB2257:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 18632              		.loc 2 206 0
- 18633 119f0 F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 18633      B0FAFFFF 
- 18634 119f8 F30F6F8D 		movdqu	-1344(%rbp), %xmm1
- 18634      C0FAFFFF 
- 18635 11a00 660FDBC1 		pand	%xmm1, %xmm0
- 18636              	.LBE2257:
- 18637              	.LBE2256:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 18638              		.loc 2 854 0
- 18639 11a04 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 18639      A0FAFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 18640              		.loc 2 862 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 576
-
-
- 18641 11a0c 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 18641      00000000 
- 18642 11a14 F30F6F8D 		movdqu	-1456(%rbp), %xmm1
- 18642      50FAFFFF 
- 18643 11a1c F30F7F8D 		movdqu	%xmm1, -1312(%rbp)
- 18643      E0FAFFFF 
- 18644 11a24 F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 18644      D0FAFFFF 
- 18645              	.LBB2258:
- 18646              		.loc 2 2642 0
- 18647 11a2c 0FB685E0 		movzbl	-1312(%rbp), %eax
- 18647      FAFFFF
- 18648 11a33 0FB695D0 		movzbl	-1328(%rbp), %edx
- 18648      FAFFFF
- 18649 11a3a 0FB6C0   		movzbl	%al, %eax
- 18650 11a3d 6689853E 		movw	%ax, -8898(%rbp)
- 18650      DDFFFF
- 18651 11a44 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18651      DDFFFF
- 18652 11a4b F6F2     		divb	%dl
- 18653 11a4d 4189C7   		movl	%eax, %r15d
- 18654 11a50 0FB685E1 		movzbl	-1311(%rbp), %eax
- 18654      FAFFFF
- 18655 11a57 0FB695D1 		movzbl	-1327(%rbp), %edx
- 18655      FAFFFF
- 18656 11a5e 0FB6C0   		movzbl	%al, %eax
- 18657 11a61 6689853E 		movw	%ax, -8898(%rbp)
- 18657      DDFFFF
- 18658 11a68 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18658      DDFFFF
- 18659 11a6f F6F2     		divb	%dl
- 18660 11a71 88856FDF 		movb	%al, -8337(%rbp)
- 18660      FFFF
- 18661 11a77 0FB685E2 		movzbl	-1310(%rbp), %eax
- 18661      FAFFFF
- 18662 11a7e 0FB695D2 		movzbl	-1326(%rbp), %edx
- 18662      FAFFFF
- 18663 11a85 0FB6C0   		movzbl	%al, %eax
- 18664 11a88 6689853E 		movw	%ax, -8898(%rbp)
- 18664      DDFFFF
- 18665 11a8f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18665      DDFFFF
- 18666 11a96 F6F2     		divb	%dl
- 18667 11a98 88856EDF 		movb	%al, -8338(%rbp)
- 18667      FFFF
- 18668 11a9e 0FB685E3 		movzbl	-1309(%rbp), %eax
- 18668      FAFFFF
- 18669 11aa5 0FB695D3 		movzbl	-1325(%rbp), %edx
- 18669      FAFFFF
- 18670 11aac 0FB6C0   		movzbl	%al, %eax
- 18671 11aaf 6689853E 		movw	%ax, -8898(%rbp)
- 18671      DDFFFF
- 18672 11ab6 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18672      DDFFFF
- 18673 11abd F6F2     		divb	%dl
- 18674 11abf 88856DDF 		movb	%al, -8339(%rbp)
- 18674      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 577
-
-
- 18675 11ac5 0FB685E4 		movzbl	-1308(%rbp), %eax
- 18675      FAFFFF
- 18676 11acc 0FB695D4 		movzbl	-1324(%rbp), %edx
- 18676      FAFFFF
- 18677 11ad3 0FB6C0   		movzbl	%al, %eax
- 18678 11ad6 6689853E 		movw	%ax, -8898(%rbp)
- 18678      DDFFFF
- 18679 11add 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18679      DDFFFF
- 18680 11ae4 F6F2     		divb	%dl
- 18681 11ae6 88856CDF 		movb	%al, -8340(%rbp)
- 18681      FFFF
- 18682 11aec 0FB685E5 		movzbl	-1307(%rbp), %eax
- 18682      FAFFFF
- 18683 11af3 0FB695D5 		movzbl	-1323(%rbp), %edx
- 18683      FAFFFF
- 18684 11afa 0FB6C0   		movzbl	%al, %eax
- 18685 11afd 6689853E 		movw	%ax, -8898(%rbp)
- 18685      DDFFFF
- 18686 11b04 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18686      DDFFFF
- 18687 11b0b F6F2     		divb	%dl
- 18688 11b0d 4189C1   		movl	%eax, %r9d
- 18689 11b10 0FB685E6 		movzbl	-1306(%rbp), %eax
- 18689      FAFFFF
- 18690 11b17 0FB695D6 		movzbl	-1322(%rbp), %edx
- 18690      FAFFFF
- 18691 11b1e 0FB6C0   		movzbl	%al, %eax
- 18692 11b21 6689853E 		movw	%ax, -8898(%rbp)
- 18692      DDFFFF
- 18693 11b28 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18693      DDFFFF
- 18694 11b2f F6F2     		divb	%dl
- 18695 11b31 89C7     		movl	%eax, %edi
- 18696 11b33 0FB685E7 		movzbl	-1305(%rbp), %eax
- 18696      FAFFFF
- 18697 11b3a 0FB695D7 		movzbl	-1321(%rbp), %edx
- 18697      FAFFFF
- 18698 11b41 0FB6C0   		movzbl	%al, %eax
- 18699 11b44 6689853E 		movw	%ax, -8898(%rbp)
- 18699      DDFFFF
- 18700 11b4b 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18700      DDFFFF
- 18701 11b52 F6F2     		divb	%dl
- 18702 11b54 89C3     		movl	%eax, %ebx
- 18703 11b56 0FB685E8 		movzbl	-1304(%rbp), %eax
- 18703      FAFFFF
- 18704 11b5d 0FB695D8 		movzbl	-1320(%rbp), %edx
- 18704      FAFFFF
- 18705 11b64 0FB6C0   		movzbl	%al, %eax
- 18706 11b67 6689853E 		movw	%ax, -8898(%rbp)
- 18706      DDFFFF
- 18707 11b6e 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18707      DDFFFF
- 18708 11b75 F6F2     		divb	%dl
- 18709 11b77 4189C2   		movl	%eax, %r10d
- 18710 11b7a 0FB685E9 		movzbl	-1303(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 578
-
-
- 18710      FAFFFF
- 18711 11b81 0FB695D9 		movzbl	-1319(%rbp), %edx
- 18711      FAFFFF
- 18712 11b88 0FB6C0   		movzbl	%al, %eax
- 18713 11b8b 6689853E 		movw	%ax, -8898(%rbp)
- 18713      DDFFFF
- 18714 11b92 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18714      DDFFFF
- 18715 11b99 F6F2     		divb	%dl
- 18716 11b9b 4189C3   		movl	%eax, %r11d
- 18717 11b9e 0FB685EA 		movzbl	-1302(%rbp), %eax
- 18717      FAFFFF
- 18718 11ba5 0FB695DA 		movzbl	-1318(%rbp), %edx
- 18718      FAFFFF
- 18719 11bac 0FB6C0   		movzbl	%al, %eax
- 18720 11baf 6689853E 		movw	%ax, -8898(%rbp)
- 18720      DDFFFF
- 18721 11bb6 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18721      DDFFFF
- 18722 11bbd F6F2     		divb	%dl
- 18723 11bbf 4189C4   		movl	%eax, %r12d
- 18724 11bc2 0FB685EB 		movzbl	-1301(%rbp), %eax
- 18724      FAFFFF
- 18725 11bc9 0FB695DB 		movzbl	-1317(%rbp), %edx
- 18725      FAFFFF
- 18726 11bd0 0FB6C0   		movzbl	%al, %eax
- 18727 11bd3 6689853E 		movw	%ax, -8898(%rbp)
- 18727      DDFFFF
- 18728 11bda 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18728      DDFFFF
- 18729 11be1 F6F2     		divb	%dl
- 18730 11be3 4189C5   		movl	%eax, %r13d
- 18731 11be6 0FB685EC 		movzbl	-1300(%rbp), %eax
- 18731      FAFFFF
- 18732 11bed 0FB695DC 		movzbl	-1316(%rbp), %edx
- 18732      FAFFFF
- 18733 11bf4 0FB6C0   		movzbl	%al, %eax
- 18734 11bf7 6689853E 		movw	%ax, -8898(%rbp)
- 18734      DDFFFF
- 18735 11bfe 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18735      DDFFFF
- 18736 11c05 F6F2     		divb	%dl
- 18737 11c07 4189C6   		movl	%eax, %r14d
- 18738 11c0a 0FB685ED 		movzbl	-1299(%rbp), %eax
- 18738      FAFFFF
- 18739 11c11 0FB695DD 		movzbl	-1315(%rbp), %edx
- 18739      FAFFFF
- 18740 11c18 0FB6C0   		movzbl	%al, %eax
- 18741 11c1b 6689853E 		movw	%ax, -8898(%rbp)
- 18741      DDFFFF
- 18742 11c22 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18742      DDFFFF
- 18743 11c29 F6F2     		divb	%dl
- 18744 11c2b 4189C0   		movl	%eax, %r8d
- 18745 11c2e 0FB685EE 		movzbl	-1298(%rbp), %eax
- 18745      FAFFFF
- 18746 11c35 0FB695DE 		movzbl	-1314(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 579
-
-
- 18746      FAFFFF
- 18747 11c3c 0FB6C0   		movzbl	%al, %eax
- 18748 11c3f 6689853E 		movw	%ax, -8898(%rbp)
- 18748      DDFFFF
- 18749 11c46 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18749      DDFFFF
- 18750 11c4d F6F2     		divb	%dl
- 18751 11c4f 89C6     		movl	%eax, %esi
- 18752 11c51 0FB685EF 		movzbl	-1297(%rbp), %eax
- 18752      FAFFFF
- 18753 11c58 0FB695DF 		movzbl	-1313(%rbp), %edx
- 18753      FAFFFF
- 18754 11c5f 0FB6C0   		movzbl	%al, %eax
- 18755 11c62 6689853E 		movw	%ax, -8898(%rbp)
- 18755      DDFFFF
- 18756 11c69 0FB7853E 		movzwl	-8898(%rbp), %eax
- 18756      DDFFFF
- 18757 11c70 F6F2     		divb	%dl
- 18758 11c72 89C1     		movl	%eax, %ecx
- 18759              	.LBB2259:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 18760              		.loc 2 346 0
- 18761 11c74 0FB6D3   		movzbl	%bl, %edx
- 18762 11c77 400FB6C7 		movzbl	%dil, %eax
- 18763 11c7b 48C1E208 		salq	$8, %rdx
- 18764 11c7f 4809C2   		orq	%rax, %rdx
- 18765 11c82 410FB6C1 		movzbl	%r9b, %eax
- 18766 11c86 48C1E208 		salq	$8, %rdx
- 18767 11c8a 4809C2   		orq	%rax, %rdx
- 18768 11c8d 0FB6856C 		movzbl	-8340(%rbp), %eax
- 18768      DFFFFF
- 18769 11c94 48C1E208 		salq	$8, %rdx
- 18770 11c98 4809C2   		orq	%rax, %rdx
- 18771 11c9b 0FB6856D 		movzbl	-8339(%rbp), %eax
- 18771      DFFFFF
- 18772 11ca2 48C1E208 		salq	$8, %rdx
- 18773 11ca6 4809C2   		orq	%rax, %rdx
- 18774 11ca9 0FB6856E 		movzbl	-8338(%rbp), %eax
- 18774      DFFFFF
- 18775 11cb0 48C1E208 		salq	$8, %rdx
- 18776 11cb4 4809C2   		orq	%rax, %rdx
- 18777 11cb7 0FB6856F 		movzbl	-8337(%rbp), %eax
- 18777      DFFFFF
- 18778 11cbe 48C1E208 		salq	$8, %rdx
- 18779 11cc2 4809C2   		orq	%rax, %rdx
- 18780 11cc5 410FB6C7 		movzbl	%r15b, %eax
- 18781 11cc9 48C1E208 		salq	$8, %rdx
- 18782 11ccd 4809C2   		orq	%rax, %rdx
- 18783 11cd0 0FB6C1   		movzbl	%cl, %eax
- 18784 11cd3 400FB6CE 		movzbl	%sil, %ecx
- 18785 11cd7 48C1E008 		salq	$8, %rax
- 18786 11cdb 4809C8   		orq	%rcx, %rax
- 18787 11cde 410FB6C8 		movzbl	%r8b, %ecx
- 18788 11ce2 48C1E008 		salq	$8, %rax
- 18789 11ce6 4809C8   		orq	%rcx, %rax
- 18790 11ce9 410FB6CE 		movzbl	%r14b, %ecx
- 18791 11ced 48C1E008 		salq	$8, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 580
-
-
- 18792 11cf1 4809C8   		orq	%rcx, %rax
- 18793 11cf4 410FB6CD 		movzbl	%r13b, %ecx
- 18794 11cf8 48C1E008 		salq	$8, %rax
- 18795 11cfc 4809C8   		orq	%rcx, %rax
- 18796 11cff 410FB6CC 		movzbl	%r12b, %ecx
- 18797 11d03 48C1E008 		salq	$8, %rax
- 18798 11d07 4809C8   		orq	%rcx, %rax
- 18799 11d0a 410FB6CB 		movzbl	%r11b, %ecx
- 18800 11d0e 48C1E008 		salq	$8, %rax
- 18801 11d12 4809C8   		orq	%rcx, %rax
- 18802 11d15 410FB6CA 		movzbl	%r10b, %ecx
- 18803 11d19 48C1E008 		salq	$8, %rax
- 18804 11d1d 4809C8   		orq	%rcx, %rax
- 18805 11d20 48899550 		movq	%rdx, -8880(%rbp)
- 18805      DDFFFF
- 18806 11d27 48898558 		movq	%rax, -8872(%rbp)
- 18806      DDFFFF
- 18807 11d2e 660F6F85 		movdqa	-8880(%rbp), %xmm0
- 18807      50DDFFFF 
- 18808              	.LBE2259:
- 18809              	.LBE2258:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 18810              		.loc 2 862 0
- 18811 11d36 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 18811      90FAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 18812              		.loc 2 866 0
- 18813 11d3e C7856CFA 		movl	$0, -1428(%rbp)
- 18813      FFFF0000 
- 18813      0000
- 18814 11d48 E9860200 		jmp	.L444
- 18814      00
- 18815              	.L453:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 18816              		.loc 2 868 0
- 18817 11d4d 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 18817      00000000 
- 18818 11d55 F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 18818      00FBFFFF 
- 18819 11d5d F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 18819      90FAFFFF 
- 18820 11d65 F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 18820      F0FAFFFF 
- 18821              	.LBB2260:
- 18822              	.LBB2261:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 18823              		.loc 2 380 0
- 18824 11d6d F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 18824      00FBFFFF 
- 18825 11d75 F30F7F85 		movdqu	%xmm0, -6256(%rbp)
- 18825      90E7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 18826              		.loc 2 381 0
- 18827 11d7d F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 18827      F0FAFFFF 
- 18828 11d85 F30F7F85 		movdqu	%xmm0, -6272(%rbp)
- 18828      80E7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 581
-
-
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 18829              		.loc 2 383 0
- 18830 11d8d C7851CFB 		movl	$0, -1252(%rbp)
- 18830      FFFF0000 
- 18830      0000
- 18831 11d97 EB5C     		jmp	.L445
- 18832              	.L448:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 18833              		.loc 2 385 0
- 18834 11d99 8B851CFB 		movl	-1252(%rbp), %eax
- 18834      FFFF
- 18835 11d9f 89C0     		mov	%eax, %eax
- 18836 11da1 0FB68405 		movzbl	-6272(%rbp,%rax), %eax
- 18836      80E7FFFF 
- 18837 11da9 84C0     		testb	%al, %al
- 18838 11dab 7912     		jns	.L446
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 18839              		.loc 2 386 0
- 18840 11dad 8B851CFB 		movl	-1252(%rbp), %eax
- 18840      FFFF
- 18841 11db3 89C0     		mov	%eax, %eax
- 18842 11db5 C68405A0 		movb	$0, -6240(%rbp,%rax)
- 18842      E7FFFF00 
- 18843 11dbd EB2F     		jmp	.L447
- 18844              	.L446:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 18845              		.loc 2 388 0
- 18846 11dbf 8B8D1CFB 		movl	-1252(%rbp), %ecx
- 18846      FFFF
- 18847 11dc5 8B851CFB 		movl	-1252(%rbp), %eax
- 18847      FFFF
- 18848 11dcb 89C0     		mov	%eax, %eax
- 18849 11dcd 0FB68405 		movzbl	-6272(%rbp,%rax), %eax
- 18849      80E7FFFF 
- 18850 11dd5 0FB6C0   		movzbl	%al, %eax
- 18851 11dd8 83E00F   		andl	$15, %eax
- 18852 11ddb 4898     		cltq
- 18853 11ddd 0FB69405 		movzbl	-6256(%rbp,%rax), %edx
- 18853      90E7FFFF 
- 18854 11de5 89C8     		mov	%ecx, %eax
- 18855 11de7 889405A0 		movb	%dl, -6240(%rbp,%rax)
- 18855      E7FFFF
- 18856              	.L447:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 18857              		.loc 2 383 0
- 18858 11dee 83851CFB 		addl	$1, -1252(%rbp)
- 18858      FFFF01
- 18859              	.L445:
- 18860 11df5 83BD1CFB 		cmpl	$15, -1252(%rbp)
- 18860      FFFF0F
- 18861 11dfc 769B     		jbe	.L448
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 18862              		.loc 2 391 0
- 18863 11dfe F30F6F85 		movdqu	-6240(%rbp), %xmm0
- 18863      A0E7FFFF 
- 18864              	.LBE2261:
- 18865              	.LBE2260:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 582
-
-
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 18866              		.loc 2 868 0
- 18867 11e06 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 18867      80FAFFFF 
- 18868 11e0e F30F6F85 		movdqu	-1376(%rbp), %xmm0
- 18868      A0FAFFFF 
- 18869 11e16 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 18869      30FBFFFF 
- 18870 11e1e F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 18870      80FAFFFF 
- 18871 11e26 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 18871      20FBFFFF 
- 18872              	.LBB2262:
- 18873              	.LBB2263:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 18874              		.loc 2 234 0
- 18875 11e2e F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 18875      20FBFFFF 
- 18876 11e36 F30F6F8D 		movdqu	-1232(%rbp), %xmm1
- 18876      30FBFFFF 
- 18877 11e3e 660FEBC1 		por	%xmm1, %xmm0
- 18878              	.LBE2263:
- 18879              	.LBE2262:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 18880              		.loc 2 870 0
- 18881 11e42 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 18881      80FAFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 18882              		.loc 2 872 0
- 18883 11e4a 8B856CFA 		mov	-1428(%rbp), %eax
- 18883      FFFF
- 18884 11e50 48C1E004 		salq	$4, %rax
- 18885 11e54 48038548 		addq	-1464(%rbp), %rax
- 18885      FAFFFF
- 18886 11e5b 660F6F00 		movdqa	(%rax), %xmm0
- 18887 11e5f F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 18887      50FBFFFF 
- 18888 11e67 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 18888      80FAFFFF 
- 18889 11e6f F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 18889      40FBFFFF 
- 18890              	.LBB2264:
- 18891              	.LBB2265:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 18892              		.loc 2 380 0
- 18893 11e77 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 18893      50FBFFFF 
- 18894 11e7f F30F7F85 		movdqu	%xmm0, -6208(%rbp)
- 18894      C0E7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 18895              		.loc 2 381 0
- 18896 11e87 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 18896      40FBFFFF 
- 18897 11e8f F30F7F85 		movdqu	%xmm0, -6224(%rbp)
- 18897      B0E7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 18898              		.loc 2 383 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 583
-
-
- 18899 11e97 C7856CFB 		movl	$0, -1172(%rbp)
- 18899      FFFF0000 
- 18899      0000
- 18900 11ea1 EB5C     		jmp	.L449
- 18901              	.L452:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 18902              		.loc 2 385 0
- 18903 11ea3 8B856CFB 		movl	-1172(%rbp), %eax
- 18903      FFFF
- 18904 11ea9 89C0     		mov	%eax, %eax
- 18905 11eab 0FB68405 		movzbl	-6224(%rbp,%rax), %eax
- 18905      B0E7FFFF 
- 18906 11eb3 84C0     		testb	%al, %al
- 18907 11eb5 7912     		jns	.L450
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 18908              		.loc 2 386 0
- 18909 11eb7 8B856CFB 		movl	-1172(%rbp), %eax
- 18909      FFFF
- 18910 11ebd 89C0     		mov	%eax, %eax
- 18911 11ebf C68405D0 		movb	$0, -6192(%rbp,%rax)
- 18911      E7FFFF00 
- 18912 11ec7 EB2F     		jmp	.L451
- 18913              	.L450:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 18914              		.loc 2 388 0
- 18915 11ec9 8B8D6CFB 		movl	-1172(%rbp), %ecx
- 18915      FFFF
- 18916 11ecf 8B856CFB 		movl	-1172(%rbp), %eax
- 18916      FFFF
- 18917 11ed5 89C0     		mov	%eax, %eax
- 18918 11ed7 0FB68405 		movzbl	-6224(%rbp,%rax), %eax
- 18918      B0E7FFFF 
- 18919 11edf 0FB6C0   		movzbl	%al, %eax
- 18920 11ee2 83E00F   		andl	$15, %eax
- 18921 11ee5 4898     		cltq
- 18922 11ee7 0FB69405 		movzbl	-6208(%rbp,%rax), %edx
- 18922      C0E7FFFF 
- 18923 11eef 89C8     		mov	%ecx, %eax
- 18924 11ef1 889405D0 		movb	%dl, -6192(%rbp,%rax)
- 18924      E7FFFF
- 18925              	.L451:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 18926              		.loc 2 383 0
- 18927 11ef8 83856CFB 		addl	$1, -1172(%rbp)
- 18927      FFFF01
- 18928              	.L449:
- 18929 11eff 83BD6CFB 		cmpl	$15, -1172(%rbp)
- 18929      FFFF0F
- 18930 11f06 769B     		jbe	.L452
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 18931              		.loc 2 391 0
- 18932 11f08 F30F6F85 		movdqu	-6192(%rbp), %xmm0
- 18932      D0E7FFFF 
- 18933              	.LBE2265:
- 18934              	.LBE2264:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 18935              		.loc 2 872 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 584
-
-
- 18936 11f10 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 18936      80FAFFFF 
- 18937 11f18 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 18937      70FAFFFF 
- 18938 11f20 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 18938      80FBFFFF 
- 18939 11f28 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 18939      80FAFFFF 
- 18940 11f30 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 18940      70FBFFFF 
- 18941              	.LBB2266:
- 18942              	.LBB2267:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 18943              		.loc 2 234 0
- 18944 11f38 F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 18944      70FBFFFF 
- 18945 11f40 F30F6F8D 		movdqu	-1152(%rbp), %xmm1
- 18945      80FBFFFF 
- 18946 11f48 660FEBC1 		por	%xmm1, %xmm0
- 18947              	.LBE2267:
- 18948              	.LBE2266:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 18949              		.loc 2 874 0
- 18950 11f4c F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 18950      70FAFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 18951              		.loc 2 876 0
- 18952 11f54 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 18952      00000000 
- 18953 11f5c F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 18953      90FAFFFF 
- 18954 11f64 F30F7F8D 		movdqu	%xmm1, -1120(%rbp)
- 18954      A0FBFFFF 
- 18955 11f6c F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 18955      90FBFFFF 
- 18956              	.LBB2268:
- 18957              	.LBB2269:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 18958              		.loc 2 290 0
- 18959 11f74 F30F6F8D 		movdqu	-1136(%rbp), %xmm1
- 18959      90FBFFFF 
- 18960 11f7c F30F6F85 		movdqu	-1120(%rbp), %xmm0
- 18960      A0FBFFFF 
- 18961 11f84 660FF8C1 		psubb	%xmm1, %xmm0
- 18962              	.LBE2269:
- 18963              	.LBE2268:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 18964              		.loc 2 876 0
- 18965 11f88 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 18965      90FAFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18966              		.loc 2 878 0
- 18967 11f90 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 18967      00000000 
- 18968 11f98 F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 18968      90FAFFFF 
- 18969 11fa0 F30F7F8D 		movdqu	%xmm1, -1088(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 585
-
-
- 18969      C0FBFFFF 
- 18970 11fa8 F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 18970      B0FBFFFF 
- 18971              	.LBB2270:
- 18972              	.LBB2271:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 18973              		.loc 2 206 0
- 18974 11fb0 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 18974      B0FBFFFF 
- 18975 11fb8 F30F6F8D 		movdqu	-1088(%rbp), %xmm1
- 18975      C0FBFFFF 
- 18976 11fc0 660FDBC1 		pand	%xmm1, %xmm0
- 18977              	.LBE2271:
- 18978              	.LBE2270:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18979              		.loc 2 878 0
- 18980 11fc4 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 18980      90FAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 18981              		.loc 2 866 0
- 18982 11fcc 83856CFA 		addl	$1, -1428(%rbp)
- 18982      FFFF01
- 18983              	.L444:
- 18984 11fd3 83BD6CFA 		cmpl	$15, -1428(%rbp)
- 18984      FFFF0F
- 18985 11fda 0F866DFD 		jbe	.L453
- 18985      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 18986              		.loc 2 882 0
- 18987 11fe0 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 18987      70FAFFFF 
- 18988              	.LBE2255:
- 18989              	.LBE2254:
- 18990              	.LBE2253:
- 18991              	.LBE2252:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 18992              		.loc 2 1682 0
- 18993 11fe8 660F7F85 		movdqa	%xmm0, -8384(%rbp)
- 18993      40DFFFFF 
- 18994              	.LBB2272:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 18995              		.loc 2 1683 0
- 18996 11ff0 660F6F85 		movdqa	-8384(%rbp), %xmm0
- 18996      40DFFFFF 
- 18997 11ff8 F30F7F85 		movdqu	%xmm0, -6304(%rbp)
- 18997      60E7FFFF 
- 18998 12000 E8000000 		call	KDbgWriterGet at PLT
- 18998      00
- 18999 12005 4885C0   		testq	%rax, %rax
- 19000 12008 7479     		je	.L455
- 19001 1200a BF010000 		movl	$1, %edi
- 19001      00
- 19002 1200f E8000000 		call	KDbgCondToFlag at PLT
- 19002      00
- 19003 12014 4889C6   		movq	%rax, %rsi
- 19004 12017 BF100000 		movl	$16, %edi
- 19004      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 586
-
-
- 19005 1201c E8000000 		call	KDbgTestModConds at PLT
- 19005      00
- 19006 12021 84C0     		testb	%al, %al
- 19007 12023 745E     		je	.L455
- 19008 12025 8B856CE7 		movl	-6292(%rbp), %eax
- 19008      FFFF
- 19009 1202b 89C7     		movl	%eax, %edi
- 19010 1202d E8CEDFFE 		call	bswap_32
- 19010      FF
- 19011 12032 4189C5   		movl	%eax, %r13d
- 19012 12035 8B8568E7 		movl	-6296(%rbp), %eax
- 19012      FFFF
- 19013 1203b 89C7     		movl	%eax, %edi
- 19014 1203d E8BEDFFE 		call	bswap_32
- 19014      FF
- 19015 12042 4189C4   		movl	%eax, %r12d
- 19016 12045 8B8564E7 		movl	-6300(%rbp), %eax
- 19016      FFFF
- 19017 1204b 89C7     		movl	%eax, %edi
- 19018 1204d E8AEDFFE 		call	bswap_32
- 19018      FF
- 19019 12052 89C3     		movl	%eax, %ebx
- 19020 12054 8B8560E7 		movl	-6304(%rbp), %eax
- 19020      FFFF
- 19021 1205a 89C7     		movl	%eax, %edi
- 19022 1205c E89FDFFE 		call	bswap_32
- 19022      FF
- 19023 12061 4589E9   		movl	%r13d, %r9d
- 19024 12064 4589E0   		movl	%r12d, %r8d
- 19025 12067 89D9     		movl	%ebx, %ecx
- 19026 12069 89C2     		movl	%eax, %edx
- 19027 1206b 488D3500 		leaq	.LC0(%rip), %rsi
- 19027      000000
- 19028 12072 488D3D00 		leaq	.LC1(%rip), %rdi
- 19028      000000
- 19029 12079 B8000000 		movl	$0, %eax
- 19029      00
- 19030 1207e E8000000 		call	KDbgMsg at PLT
- 19030      00
- 19031              	.L455:
- 19032 12083 660F6F85 		movdqa	-8384(%rbp), %xmm0
- 19032      40DFFFFF 
- 19033 1208b F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 19033      D0FBFFFF 
- 19034              	.LBE2272:
- 19035              	.LBB2273:
- 19036              	.LBB2274:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19037              		.loc 2 667 0
- 19038 12093 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 19038      00000000 
- 19039 1209b F30F6F8D 		movdqu	-1072(%rbp), %xmm1
- 19039      D0FBFFFF 
- 19040 120a3 F30F7F8D 		movdqu	%xmm1, -1040(%rbp)
- 19040      F0FBFFFF 
- 19041 120ab F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 19041      E0FBFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 587
-
-
- 19042              	.LBB2275:
- 19043              	.LBB2276:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 19044              		.loc 2 380 0
- 19045 120b3 F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 19045      F0FBFFFF 
- 19046 120bb F30F7F85 		movdqu	%xmm0, -6160(%rbp)
- 19046      F0E7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 19047              		.loc 2 381 0
- 19048 120c3 F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 19048      E0FBFFFF 
- 19049 120cb F30F7F85 		movdqu	%xmm0, -6176(%rbp)
- 19049      E0E7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 19050              		.loc 2 383 0
- 19051 120d3 C7850CFC 		movl	$0, -1012(%rbp)
- 19051      FFFF0000 
- 19051      0000
- 19052 120dd EB5C     		jmp	.L456
- 19053              	.L459:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 19054              		.loc 2 385 0
- 19055 120df 8B850CFC 		movl	-1012(%rbp), %eax
- 19055      FFFF
- 19056 120e5 89C0     		mov	%eax, %eax
- 19057 120e7 0FB68405 		movzbl	-6176(%rbp,%rax), %eax
- 19057      E0E7FFFF 
- 19058 120ef 84C0     		testb	%al, %al
- 19059 120f1 7912     		jns	.L457
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 19060              		.loc 2 386 0
- 19061 120f3 8B850CFC 		movl	-1012(%rbp), %eax
- 19061      FFFF
- 19062 120f9 89C0     		mov	%eax, %eax
- 19063 120fb C6840500 		movb	$0, -6144(%rbp,%rax)
- 19063      E8FFFF00 
- 19064 12103 EB2F     		jmp	.L458
- 19065              	.L457:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 19066              		.loc 2 388 0
- 19067 12105 8B8D0CFC 		movl	-1012(%rbp), %ecx
- 19067      FFFF
- 19068 1210b 8B850CFC 		movl	-1012(%rbp), %eax
- 19068      FFFF
- 19069 12111 89C0     		mov	%eax, %eax
- 19070 12113 0FB68405 		movzbl	-6176(%rbp,%rax), %eax
- 19070      E0E7FFFF 
- 19071 1211b 0FB6C0   		movzbl	%al, %eax
- 19072 1211e 83E00F   		andl	$15, %eax
- 19073 12121 4898     		cltq
- 19074 12123 0FB69405 		movzbl	-6160(%rbp,%rax), %edx
- 19074      F0E7FFFF 
- 19075 1212b 89C8     		mov	%ecx, %eax
- 19076 1212d 88940500 		movb	%dl, -6144(%rbp,%rax)
- 19076      E8FFFF
- 19077              	.L458:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 588
-
-
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 19078              		.loc 2 383 0
- 19079 12134 83850CFC 		addl	$1, -1012(%rbp)
- 19079      FFFF01
- 19080              	.L456:
- 19081 1213b 83BD0CFC 		cmpl	$15, -1012(%rbp)
- 19081      FFFF0F
- 19082 12142 769B     		jbe	.L459
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 19083              		.loc 2 391 0
- 19084 12144 F30F6F85 		movdqu	-6144(%rbp), %xmm0
- 19084      00E8FFFF 
- 19085              	.LBE2276:
- 19086              	.LBE2275:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19087              		.loc 2 667 0
- 19088 1214c F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 19088      D0FBFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19089              		.loc 2 668 0
- 19090 12154 F30F6F85 		movdqu	-1072(%rbp), %xmm0
- 19090      D0FBFFFF 
- 19091              	.LBE2274:
- 19092              	.LBE2273:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 19093              		.loc 2 1684 0
- 19094 1215c 660F7F85 		movdqa	%xmm0, -8384(%rbp)
- 19094      40DFFFFF 
- 19095              	.LBB2277:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 19096              		.loc 2 1685 0
- 19097 12164 660F6F85 		movdqa	-8384(%rbp), %xmm0
- 19097      40DFFFFF 
- 19098 1216c F30F7F85 		movdqu	%xmm0, -6320(%rbp)
- 19098      50E7FFFF 
- 19099 12174 E8000000 		call	KDbgWriterGet at PLT
- 19099      00
- 19100 12179 4885C0   		testq	%rax, %rax
- 19101 1217c 7479     		je	.L461
- 19102 1217e BF010000 		movl	$1, %edi
- 19102      00
- 19103 12183 E8000000 		call	KDbgCondToFlag at PLT
- 19103      00
- 19104 12188 4889C6   		movq	%rax, %rsi
- 19105 1218b BF100000 		movl	$16, %edi
- 19105      00
- 19106 12190 E8000000 		call	KDbgTestModConds at PLT
- 19106      00
- 19107 12195 84C0     		testb	%al, %al
- 19108 12197 745E     		je	.L461
- 19109 12199 8B855CE7 		movl	-6308(%rbp), %eax
- 19109      FFFF
- 19110 1219f 89C7     		movl	%eax, %edi
- 19111 121a1 E85ADEFE 		call	bswap_32
- 19111      FF
- 19112 121a6 4189C5   		movl	%eax, %r13d
- 19113 121a9 8B8558E7 		movl	-6312(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 589
-
-
- 19113      FFFF
- 19114 121af 89C7     		movl	%eax, %edi
- 19115 121b1 E84ADEFE 		call	bswap_32
- 19115      FF
- 19116 121b6 4189C4   		movl	%eax, %r12d
- 19117 121b9 8B8554E7 		movl	-6316(%rbp), %eax
- 19117      FFFF
- 19118 121bf 89C7     		movl	%eax, %edi
- 19119 121c1 E83ADEFE 		call	bswap_32
- 19119      FF
- 19120 121c6 89C3     		movl	%eax, %ebx
- 19121 121c8 8B8550E7 		movl	-6320(%rbp), %eax
- 19121      FFFF
- 19122 121ce 89C7     		movl	%eax, %edi
- 19123 121d0 E82BDEFE 		call	bswap_32
- 19123      FF
- 19124 121d5 4589E9   		movl	%r13d, %r9d
- 19125 121d8 4589E0   		movl	%r12d, %r8d
- 19126 121db 89D9     		movl	%ebx, %ecx
- 19127 121dd 89C2     		movl	%eax, %edx
- 19128 121df 488D3500 		leaq	.LC2(%rip), %rsi
- 19128      000000
- 19129 121e6 488D3D00 		leaq	.LC1(%rip), %rdi
- 19129      000000
- 19130 121ed B8000000 		movl	$0, %eax
- 19130      00
- 19131 121f2 E8000000 		call	KDbgMsg at PLT
- 19131      00
- 19132              	.L461:
- 19133 121f7 660F6F85 		movdqa	-8384(%rbp), %xmm0
- 19133      40DFFFFF 
- 19134 121ff F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 19134      20FCFFFF 
- 19135 12207 660F6F85 		movdqa	-8368(%rbp), %xmm0
- 19135      50DFFFFF 
- 19136 1220f F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 19136      10FCFFFF 
- 19137              	.LBE2277:
- 19138              	.LBB2278:
- 19139              	.LBB2279:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19140              		.loc 2 178 0
- 19141 12217 F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 19141      10FCFFFF 
- 19142 1221f F30F6F8D 		movdqu	-992(%rbp), %xmm1
- 19142      20FCFFFF 
- 19143 12227 660FEFC1 		pxor	%xmm1, %xmm0
- 19144              	.LBE2279:
- 19145              	.LBE2278:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 19146              		.loc 2 1686 0
- 19147 1222b 660F7F85 		movdqa	%xmm0, -8384(%rbp)
- 19147      40DFFFFF 
- 19148              	.LBB2280:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 19149              		.loc 2 1687 0
- 19150 12233 660F6F85 		movdqa	-8384(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 590
-
-
- 19150      40DFFFFF 
- 19151 1223b F30F7F85 		movdqu	%xmm0, -6336(%rbp)
- 19151      40E7FFFF 
- 19152 12243 E8000000 		call	KDbgWriterGet at PLT
- 19152      00
- 19153 12248 4885C0   		testq	%rax, %rax
- 19154 1224b 7479     		je	.L463
- 19155 1224d BF010000 		movl	$1, %edi
- 19155      00
- 19156 12252 E8000000 		call	KDbgCondToFlag at PLT
- 19156      00
- 19157 12257 4889C6   		movq	%rax, %rsi
- 19158 1225a BF100000 		movl	$16, %edi
- 19158      00
- 19159 1225f E8000000 		call	KDbgTestModConds at PLT
- 19159      00
- 19160 12264 84C0     		testb	%al, %al
- 19161 12266 745E     		je	.L463
- 19162 12268 8B854CE7 		movl	-6324(%rbp), %eax
- 19162      FFFF
- 19163 1226e 89C7     		movl	%eax, %edi
- 19164 12270 E88BDDFE 		call	bswap_32
- 19164      FF
- 19165 12275 4189C5   		movl	%eax, %r13d
- 19166 12278 8B8548E7 		movl	-6328(%rbp), %eax
- 19166      FFFF
- 19167 1227e 89C7     		movl	%eax, %edi
- 19168 12280 E87BDDFE 		call	bswap_32
- 19168      FF
- 19169 12285 4189C4   		movl	%eax, %r12d
- 19170 12288 8B8544E7 		movl	-6332(%rbp), %eax
- 19170      FFFF
- 19171 1228e 89C7     		movl	%eax, %edi
- 19172 12290 E86BDDFE 		call	bswap_32
- 19172      FF
- 19173 12295 89C3     		movl	%eax, %ebx
- 19174 12297 8B8540E7 		movl	-6336(%rbp), %eax
- 19174      FFFF
- 19175 1229d 89C7     		movl	%eax, %edi
- 19176 1229f E85CDDFE 		call	bswap_32
- 19176      FF
- 19177 122a4 4589E9   		movl	%r13d, %r9d
- 19178 122a7 4589E0   		movl	%r12d, %r8d
- 19179 122aa 89D9     		movl	%ebx, %ecx
- 19180 122ac 89C2     		movl	%eax, %edx
- 19181 122ae 488D3500 		leaq	.LC3(%rip), %rsi
- 19181      000000
- 19182 122b5 488D3D00 		leaq	.LC1(%rip), %rdi
- 19182      000000
- 19183 122bc B8000000 		movl	$0, %eax
- 19183      00
- 19184 122c1 E8000000 		call	KDbgMsg at PLT
- 19184      00
- 19185              	.L463:
- 19186 122c6 660F6F85 		movdqa	-8384(%rbp), %xmm0
- 19186      40DFFFFF 
- 19187 122ce F30F7F85 		movdqu	%xmm0, -976(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 591
-
-
- 19187      30FCFFFF 
- 19188              	.LBE2280:
- 19189              	.LBB2281:
- 19190              	.LBB2282:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 19191              		.loc 2 1357 0
- 19192 122d6 F30F6F85 		movdqu	-976(%rbp), %xmm0
- 19192      30FCFFFF 
- 19193 122de F30F7F85 		movdqu	%xmm0, -6128(%rbp)
- 19193      10E8FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 19194              		.loc 2 1358 0
- 19195 122e6 8B851CE8 		movl	-6116(%rbp), %eax
- 19195      FFFF
- 19196 122ec 898518E8 		movl	%eax, -6120(%rbp)
- 19196      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 19197              		.loc 2 1359 0
- 19198 122f2 8B851CE8 		movl	-6116(%rbp), %eax
- 19198      FFFF
- 19199 122f8 898514E8 		movl	%eax, -6124(%rbp)
- 19199      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 19200              		.loc 2 1360 0
- 19201 122fe 8B851CE8 		movl	-6116(%rbp), %eax
- 19201      FFFF
- 19202 12304 898510E8 		movl	%eax, -6128(%rbp)
- 19202      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 19203              		.loc 2 1361 0
- 19204 1230a F30F6F85 		movdqu	-6128(%rbp), %xmm0
- 19204      10E8FFFF 
- 19205              	.LBE2282:
- 19206              	.LBE2281:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 19207              		.loc 2 1688 0
- 19208 12312 660F7F85 		movdqa	%xmm0, -8384(%rbp)
- 19208      40DFFFFF 
- 19209              	.LBB2283:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 19210              		.loc 2 1689 0
- 19211 1231a 660F6F85 		movdqa	-8384(%rbp), %xmm0
- 19211      40DFFFFF 
- 19212 12322 F30F7F85 		movdqu	%xmm0, -6352(%rbp)
- 19212      30E7FFFF 
- 19213 1232a E8000000 		call	KDbgWriterGet at PLT
- 19213      00
- 19214 1232f 4885C0   		testq	%rax, %rax
- 19215 12332 7479     		je	.L465
- 19216 12334 BF010000 		movl	$1, %edi
- 19216      00
- 19217 12339 E8000000 		call	KDbgCondToFlag at PLT
- 19217      00
- 19218 1233e 4889C6   		movq	%rax, %rsi
- 19219 12341 BF100000 		movl	$16, %edi
- 19219      00
- 19220 12346 E8000000 		call	KDbgTestModConds at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 592
-
-
- 19220      00
- 19221 1234b 84C0     		testb	%al, %al
- 19222 1234d 745E     		je	.L465
- 19223 1234f 8B853CE7 		movl	-6340(%rbp), %eax
- 19223      FFFF
- 19224 12355 89C7     		movl	%eax, %edi
- 19225 12357 E8A4DCFE 		call	bswap_32
- 19225      FF
- 19226 1235c 4189C5   		movl	%eax, %r13d
- 19227 1235f 8B8538E7 		movl	-6344(%rbp), %eax
- 19227      FFFF
- 19228 12365 89C7     		movl	%eax, %edi
- 19229 12367 E894DCFE 		call	bswap_32
- 19229      FF
- 19230 1236c 4189C4   		movl	%eax, %r12d
- 19231 1236f 8B8534E7 		movl	-6348(%rbp), %eax
- 19231      FFFF
- 19232 12375 89C7     		movl	%eax, %edi
- 19233 12377 E884DCFE 		call	bswap_32
- 19233      FF
- 19234 1237c 89C3     		movl	%eax, %ebx
- 19235 1237e 8B8530E7 		movl	-6352(%rbp), %eax
- 19235      FFFF
- 19236 12384 89C7     		movl	%eax, %edi
- 19237 12386 E875DCFE 		call	bswap_32
- 19237      FF
- 19238 1238b 4589E9   		movl	%r13d, %r9d
- 19239 1238e 4589E0   		movl	%r12d, %r8d
- 19240 12391 89D9     		movl	%ebx, %ecx
- 19241 12393 89C2     		movl	%eax, %edx
- 19242 12395 488D3500 		leaq	.LC4(%rip), %rsi
- 19242      000000
- 19243 1239c 488D3D00 		leaq	.LC1(%rip), %rdi
- 19243      000000
- 19244 123a3 B8000000 		movl	$0, %eax
- 19244      00
- 19245 123a8 E8000000 		call	KDbgMsg at PLT
- 19245      00
- 19246              	.L465:
- 19247              	.LBE2283:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 19248              		.loc 2 1690 0
- 19249 123ad 660F6F85 		movdqa	-8384(%rbp), %xmm0
- 19249      40DFFFFF 
- 19250              	.LBE2249:
- 19251              	.LBE2248:
-1936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(12,0x20);   /* k48 : k49 : k50 : k51 */
- 19252              		.loc 2 1936 0
- 19253 123b5 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 19253      E0E9FFFF 
- 19254 123bd F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 19254      C0E9FFFF 
- 19255 123c5 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 19255      40FCFFFF 
- 19256              	.LBB2284:
- 19257              	.LBB2285:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 593
-
-
- 19258              		.loc 2 1565 0
- 19259 123cd F30F6F85 		movdqu	-960(%rbp), %xmm0
- 19259      40FCFFFF 
- 19260 123d5 660F7F85 		movdqa	%xmm0, -8336(%rbp)
- 19260      70DFFFFF 
- 19261 123dd 660F6F85 		movdqa	-8336(%rbp), %xmm0
- 19261      70DFFFFF 
- 19262 123e5 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 19262      50FCFFFF 
- 19263              	.LBB2286:
- 19264              	.LBB2287:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 19265              		.loc 2 1282 0
- 19266 123ed F30F6F85 		movdqu	-944(%rbp), %xmm0
- 19266      50FCFFFF 
- 19267 123f5 F30F7F85 		movdqu	%xmm0, -6112(%rbp)
- 19267      20E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 19268              		.loc 2 1283 0
- 19269 123fd 8B8528E8 		movl	-6104(%rbp), %eax
- 19269      FFFF
- 19270 12403 89852CE8 		movl	%eax, -6100(%rbp)
- 19270      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 19271              		.loc 2 1284 0
- 19272 12409 8B8524E8 		movl	-6108(%rbp), %eax
- 19272      FFFF
- 19273 1240f 898528E8 		movl	%eax, -6104(%rbp)
- 19273      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 19274              		.loc 2 1285 0
- 19275 12415 8B8520E8 		movl	-6112(%rbp), %eax
- 19275      FFFF
- 19276 1241b 898524E8 		movl	%eax, -6108(%rbp)
- 19276      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 19277              		.loc 2 1286 0
- 19278 12421 C78520E8 		movl	$0, -6112(%rbp)
- 19278      FFFF0000 
- 19278      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 19279              		.loc 2 1287 0
- 19280 1242b F30F6F85 		movdqu	-6112(%rbp), %xmm0
- 19280      20E8FFFF 
- 19281              	.LBE2287:
- 19282              	.LBE2286:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 19283              		.loc 2 1567 0
- 19284 12433 660F7F85 		movdqa	%xmm0, -8336(%rbp)
- 19284      70DFFFFF 
- 19285 1243b 660F6F85 		movdqa	-8336(%rbp), %xmm0
- 19285      70DFFFFF 
- 19286 12443 660FEF85 		pxor	-960(%rbp), %xmm0
- 19286      40FCFFFF 
- 19287 1244b F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 19287      40FCFFFF 
- 19288 12453 660F6F85 		movdqa	-8336(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 594
-
-
- 19288      70DFFFFF 
- 19289 1245b F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 19289      60FCFFFF 
- 19290              	.LBB2288:
- 19291              	.LBB2289:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 19292              		.loc 2 1282 0
- 19293 12463 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 19293      60FCFFFF 
- 19294 1246b F30F7F85 		movdqu	%xmm0, -6096(%rbp)
- 19294      30E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 19295              		.loc 2 1283 0
- 19296 12473 8B8538E8 		movl	-6088(%rbp), %eax
- 19296      FFFF
- 19297 12479 89853CE8 		movl	%eax, -6084(%rbp)
- 19297      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 19298              		.loc 2 1284 0
- 19299 1247f 8B8534E8 		movl	-6092(%rbp), %eax
- 19299      FFFF
- 19300 12485 898538E8 		movl	%eax, -6088(%rbp)
- 19300      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 19301              		.loc 2 1285 0
- 19302 1248b 8B8530E8 		movl	-6096(%rbp), %eax
- 19302      FFFF
- 19303 12491 898534E8 		movl	%eax, -6092(%rbp)
- 19303      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 19304              		.loc 2 1286 0
- 19305 12497 C78530E8 		movl	$0, -6096(%rbp)
- 19305      FFFF0000 
- 19305      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 19306              		.loc 2 1287 0
- 19307 124a1 F30F6F85 		movdqu	-6096(%rbp), %xmm0
- 19307      30E8FFFF 
- 19308              	.LBE2289:
- 19309              	.LBE2288:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 19310              		.loc 2 1568 0
- 19311 124a9 660F7F85 		movdqa	%xmm0, -8336(%rbp)
- 19311      70DFFFFF 
- 19312 124b1 660F6F85 		movdqa	-8336(%rbp), %xmm0
- 19312      70DFFFFF 
- 19313 124b9 660FEF85 		pxor	-960(%rbp), %xmm0
- 19313      40FCFFFF 
- 19314 124c1 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 19314      40FCFFFF 
- 19315 124c9 660F6F85 		movdqa	-8336(%rbp), %xmm0
- 19315      70DFFFFF 
- 19316 124d1 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 19316      70FCFFFF 
- 19317              	.LBB2290:
- 19318              	.LBB2291:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 595
-
-
- 19319              		.loc 2 1282 0
- 19320 124d9 F30F6F85 		movdqu	-912(%rbp), %xmm0
- 19320      70FCFFFF 
- 19321 124e1 F30F7F85 		movdqu	%xmm0, -6080(%rbp)
- 19321      40E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 19322              		.loc 2 1283 0
- 19323 124e9 8B8548E8 		movl	-6072(%rbp), %eax
- 19323      FFFF
- 19324 124ef 89854CE8 		movl	%eax, -6068(%rbp)
- 19324      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 19325              		.loc 2 1284 0
- 19326 124f5 8B8544E8 		movl	-6076(%rbp), %eax
- 19326      FFFF
- 19327 124fb 898548E8 		movl	%eax, -6072(%rbp)
- 19327      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 19328              		.loc 2 1285 0
- 19329 12501 8B8540E8 		movl	-6080(%rbp), %eax
- 19329      FFFF
- 19330 12507 898544E8 		movl	%eax, -6076(%rbp)
- 19330      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 19331              		.loc 2 1286 0
- 19332 1250d C78540E8 		movl	$0, -6080(%rbp)
- 19332      FFFF0000 
- 19332      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 19333              		.loc 2 1287 0
- 19334 12517 F30F6F85 		movdqu	-6080(%rbp), %xmm0
- 19334      40E8FFFF 
- 19335              	.LBE2291:
- 19336              	.LBE2290:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 19337              		.loc 2 1569 0
- 19338 1251f 660F7F85 		movdqa	%xmm0, -8336(%rbp)
- 19338      70DFFFFF 
- 19339 12527 660F6F85 		movdqa	-8336(%rbp), %xmm0
- 19339      70DFFFFF 
- 19340 1252f 660FEF85 		pxor	-960(%rbp), %xmm0
- 19340      40FCFFFF 
- 19341 12537 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 19341      40FCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19342              		.loc 2 1571 0
- 19343 1253f F30F6F85 		movdqu	-960(%rbp), %xmm0
- 19343      40FCFFFF 
- 19344              	.LBE2285:
- 19345              	.LBE2284:
-1936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(12,0x20);   /* k48 : k49 : k50 : k51 */
- 19346              		.loc 2 1936 0
- 19347 12547 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 19347      C0E9FFFF 
- 19348 1254f F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 19348      C0E9FFFF 
- 19349 12557 F30F7F85 		movdqu	%xmm0, -880(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 596
-
-
- 19349      90FCFFFF 
- 19350 1255f F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 19350      E0E9FFFF 
- 19351 12567 F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 19351      80FCFFFF 
- 19352              	.LBB2292:
- 19353              	.LBB2293:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19354              		.loc 2 178 0
- 19355 1256f F30F6F85 		movdqu	-896(%rbp), %xmm0
- 19355      80FCFFFF 
- 19356 12577 F30F6F8D 		movdqu	-880(%rbp), %xmm1
- 19356      90FCFFFF 
- 19357 1257f 660FEFC1 		pxor	%xmm1, %xmm0
- 19358              	.LBE2293:
- 19359              	.LBE2292:
-1936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(12,0x20);   /* k48 : k49 : k50 : k51 */
- 19360              		.loc 2 1936 0
- 19361 12583 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 19361      C0E9FFFF 
- 19362 1258b 488B85D8 		movq	-8232(%rbp), %rax
- 19362      DFFFFF
- 19363 12592 4805C000 		addq	$192, %rax
- 19363      0000
- 19364 12598 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 19364      C0E9FFFF 
- 19365 125a0 F30F7F00 		movdqu	%xmm0, (%rax)
- 19366 125a4 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 19366      C0E9FFFF 
- 19367 125ac F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 19367      A0FCFFFF 
- 19368              	.LBB2294:
- 19369              	.LBB2295:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 19370              		.loc 2 1656 0
- 19371 125b4 F30F6F85 		movdqu	-864(%rbp), %xmm0
- 19371      A0FCFFFF 
- 19372 125bc F30F7F85 		movdqu	%xmm0, -6048(%rbp)
- 19372      60E8FFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 19373              		.loc 2 1657 0
- 19374 125c4 8B856CE8 		movl	-6036(%rbp), %eax
- 19374      FFFF
- 19375 125ca 8985B8FC 		movl	%eax, -840(%rbp)
- 19375      FFFF
- 19376              	.LBB2296:
- 19377              	.LBB2297:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 19378              		.loc 2 740 0
- 19379 125d0 8B85B8FC 		movl	-840(%rbp), %eax
- 19379      FFFF
- 19380 125d6 898550E8 		movl	%eax, -6064(%rbp)
- 19380      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 19381              		.loc 2 741 0
- 19382 125dc C785BCFC 		movl	$0, -836(%rbp)
- 19382      FFFF0000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 597
-
-
- 19382      0000
- 19383 125e6 EB36     		jmp	.L466
- 19384              	.L467:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 19385              		.loc 2 742 0
- 19386 125e8 8B8DBCFC 		movl	-836(%rbp), %ecx
- 19386      FFFF
- 19387 125ee 8B85BCFC 		movl	-836(%rbp), %eax
- 19387      FFFF
- 19388 125f4 89C0     		mov	%eax, %eax
- 19389 125f6 0FB68405 		movzbl	-6064(%rbp,%rax), %eax
- 19389      50E8FFFF 
- 19390 125fe 0FB6C0   		movzbl	%al, %eax
- 19391 12601 89C2     		mov	%eax, %edx
- 19392 12603 488D0500 		leaq	KAESBlockCipherVecRijndaelSBox(%rip), %rax
- 19392      000000
- 19393 1260a 0FB61402 		movzbl	(%rdx,%rax), %edx
- 19394 1260e 89C8     		mov	%ecx, %eax
- 19395 12610 88940550 		movb	%dl, -6064(%rbp,%rax)
- 19395      E8FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 19396              		.loc 2 741 0
- 19397 12617 8385BCFC 		addl	$1, -836(%rbp)
- 19397      FFFF01
- 19398              	.L466:
- 19399 1261e 83BDBCFC 		cmpl	$3, -836(%rbp)
- 19399      FFFF03
- 19400 12625 76C1     		jbe	.L467
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 19401              		.loc 2 743 0
- 19402 12627 8B8550E8 		movl	-6064(%rbp), %eax
- 19402      FFFF
- 19403              	.LBE2297:
- 19404              	.LBE2296:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 19405              		.loc 2 1657 0
- 19406 1262d 8985B4FC 		movl	%eax, -844(%rbp)
- 19406      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 19407              		.loc 2 1659 0
- 19408 12633 8B85B4FC 		movl	-844(%rbp), %eax
- 19408      FFFF
- 19409 12639 89856CE8 		movl	%eax, -6036(%rbp)
- 19409      FFFF
- 19410 1263f 8B856CE8 		movl	-6036(%rbp), %eax
- 19410      FFFF
- 19411 12645 898568E8 		movl	%eax, -6040(%rbp)
- 19411      FFFF
- 19412 1264b 8B8568E8 		movl	-6040(%rbp), %eax
- 19412      FFFF
- 19413 12651 898564E8 		movl	%eax, -6044(%rbp)
- 19413      FFFF
- 19414 12657 8B8564E8 		movl	-6044(%rbp), %eax
- 19414      FFFF
- 19415 1265d 898560E8 		movl	%eax, -6048(%rbp)
- 19415      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 598
-
-
- 19416              		.loc 2 1660 0
- 19417 12663 F30F6F85 		movdqu	-6048(%rbp), %xmm0
- 19417      60E8FFFF 
- 19418              	.LBE2295:
- 19419              	.LBE2294:
-1937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(13);        /* k52 : k53 : k54 : k55 */
- 19420              		.loc 2 1937 0
- 19421 1266b F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 19421      E0E9FFFF 
- 19422 12673 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 19422      D0E9FFFF 
- 19423 1267b F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 19423      C0FCFFFF 
- 19424              	.LBB2298:
- 19425              	.LBB2299:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 19426              		.loc 2 1565 0
- 19427 12683 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 19427      C0FCFFFF 
- 19428 1268b 660F7F85 		movdqa	%xmm0, -8320(%rbp)
- 19428      80DFFFFF 
- 19429 12693 660F6F85 		movdqa	-8320(%rbp), %xmm0
- 19429      80DFFFFF 
- 19430 1269b F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 19430      D0FCFFFF 
- 19431              	.LBB2300:
- 19432              	.LBB2301:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 19433              		.loc 2 1282 0
- 19434 126a3 F30F6F85 		movdqu	-816(%rbp), %xmm0
- 19434      D0FCFFFF 
- 19435 126ab F30F7F85 		movdqu	%xmm0, -6032(%rbp)
- 19435      70E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 19436              		.loc 2 1283 0
- 19437 126b3 8B8578E8 		movl	-6024(%rbp), %eax
- 19437      FFFF
- 19438 126b9 89857CE8 		movl	%eax, -6020(%rbp)
- 19438      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 19439              		.loc 2 1284 0
- 19440 126bf 8B8574E8 		movl	-6028(%rbp), %eax
- 19440      FFFF
- 19441 126c5 898578E8 		movl	%eax, -6024(%rbp)
- 19441      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 19442              		.loc 2 1285 0
- 19443 126cb 8B8570E8 		movl	-6032(%rbp), %eax
- 19443      FFFF
- 19444 126d1 898574E8 		movl	%eax, -6028(%rbp)
- 19444      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 19445              		.loc 2 1286 0
- 19446 126d7 C78570E8 		movl	$0, -6032(%rbp)
- 19446      FFFF0000 
- 19446      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 599
-
-
- 19447              		.loc 2 1287 0
- 19448 126e1 F30F6F85 		movdqu	-6032(%rbp), %xmm0
- 19448      70E8FFFF 
- 19449              	.LBE2301:
- 19450              	.LBE2300:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 19451              		.loc 2 1567 0
- 19452 126e9 660F7F85 		movdqa	%xmm0, -8320(%rbp)
- 19452      80DFFFFF 
- 19453 126f1 660F6F85 		movdqa	-8320(%rbp), %xmm0
- 19453      80DFFFFF 
- 19454 126f9 660FEF85 		pxor	-832(%rbp), %xmm0
- 19454      C0FCFFFF 
- 19455 12701 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 19455      C0FCFFFF 
- 19456 12709 660F6F85 		movdqa	-8320(%rbp), %xmm0
- 19456      80DFFFFF 
- 19457 12711 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 19457      E0FCFFFF 
- 19458              	.LBB2302:
- 19459              	.LBB2303:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 19460              		.loc 2 1282 0
- 19461 12719 F30F6F85 		movdqu	-800(%rbp), %xmm0
- 19461      E0FCFFFF 
- 19462 12721 F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 19462      80E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 19463              		.loc 2 1283 0
- 19464 12729 8B8588E8 		movl	-6008(%rbp), %eax
- 19464      FFFF
- 19465 1272f 89858CE8 		movl	%eax, -6004(%rbp)
- 19465      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 19466              		.loc 2 1284 0
- 19467 12735 8B8584E8 		movl	-6012(%rbp), %eax
- 19467      FFFF
- 19468 1273b 898588E8 		movl	%eax, -6008(%rbp)
- 19468      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 19469              		.loc 2 1285 0
- 19470 12741 8B8580E8 		movl	-6016(%rbp), %eax
- 19470      FFFF
- 19471 12747 898584E8 		movl	%eax, -6012(%rbp)
- 19471      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 19472              		.loc 2 1286 0
- 19473 1274d C78580E8 		movl	$0, -6016(%rbp)
- 19473      FFFF0000 
- 19473      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 19474              		.loc 2 1287 0
- 19475 12757 F30F6F85 		movdqu	-6016(%rbp), %xmm0
- 19475      80E8FFFF 
- 19476              	.LBE2303:
- 19477              	.LBE2302:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 600
-
-
- 19478              		.loc 2 1568 0
- 19479 1275f 660F7F85 		movdqa	%xmm0, -8320(%rbp)
- 19479      80DFFFFF 
- 19480 12767 660F6F85 		movdqa	-8320(%rbp), %xmm0
- 19480      80DFFFFF 
- 19481 1276f 660FEF85 		pxor	-832(%rbp), %xmm0
- 19481      C0FCFFFF 
- 19482 12777 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 19482      C0FCFFFF 
- 19483 1277f 660F6F85 		movdqa	-8320(%rbp), %xmm0
- 19483      80DFFFFF 
- 19484 12787 F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 19484      F0FCFFFF 
- 19485              	.LBB2304:
- 19486              	.LBB2305:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 19487              		.loc 2 1282 0
- 19488 1278f F30F6F85 		movdqu	-784(%rbp), %xmm0
- 19488      F0FCFFFF 
- 19489 12797 F30F7F85 		movdqu	%xmm0, -6000(%rbp)
- 19489      90E8FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 19490              		.loc 2 1283 0
- 19491 1279f 8B8598E8 		movl	-5992(%rbp), %eax
- 19491      FFFF
- 19492 127a5 89859CE8 		movl	%eax, -5988(%rbp)
- 19492      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 19493              		.loc 2 1284 0
- 19494 127ab 8B8594E8 		movl	-5996(%rbp), %eax
- 19494      FFFF
- 19495 127b1 898598E8 		movl	%eax, -5992(%rbp)
- 19495      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 19496              		.loc 2 1285 0
- 19497 127b7 8B8590E8 		movl	-6000(%rbp), %eax
- 19497      FFFF
- 19498 127bd 898594E8 		movl	%eax, -5996(%rbp)
- 19498      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 19499              		.loc 2 1286 0
- 19500 127c3 C78590E8 		movl	$0, -6000(%rbp)
- 19500      FFFF0000 
- 19500      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 19501              		.loc 2 1287 0
- 19502 127cd F30F6F85 		movdqu	-6000(%rbp), %xmm0
- 19502      90E8FFFF 
- 19503              	.LBE2305:
- 19504              	.LBE2304:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 19505              		.loc 2 1569 0
- 19506 127d5 660F7F85 		movdqa	%xmm0, -8320(%rbp)
- 19506      80DFFFFF 
- 19507 127dd 660F6F85 		movdqa	-8320(%rbp), %xmm0
- 19507      80DFFFFF 
- 19508 127e5 660FEF85 		pxor	-832(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 601
-
-
- 19508      C0FCFFFF 
- 19509 127ed F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 19509      C0FCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19510              		.loc 2 1571 0
- 19511 127f5 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 19511      C0FCFFFF 
- 19512              	.LBE2299:
- 19513              	.LBE2298:
-1937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(13);        /* k52 : k53 : k54 : k55 */
- 19514              		.loc 2 1937 0
- 19515 127fd F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 19515      D0E9FFFF 
- 19516 12805 F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 19516      D0E9FFFF 
- 19517 1280d F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 19517      10FDFFFF 
- 19518 12815 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 19518      E0E9FFFF 
- 19519 1281d F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 19519      00FDFFFF 
- 19520              	.LBB2306:
- 19521              	.LBB2307:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19522              		.loc 2 178 0
- 19523 12825 F30F6F85 		movdqu	-768(%rbp), %xmm0
- 19523      00FDFFFF 
- 19524 1282d F30F6F8D 		movdqu	-752(%rbp), %xmm1
- 19524      10FDFFFF 
- 19525 12835 660FEFC1 		pxor	%xmm1, %xmm0
- 19526              	.LBE2307:
- 19527              	.LBE2306:
-1937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(13);        /* k52 : k53 : k54 : k55 */
- 19528              		.loc 2 1937 0
- 19529 12839 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 19529      D0E9FFFF 
- 19530 12841 488B85D8 		movq	-8232(%rbp), %rax
- 19530      DFFFFF
- 19531 12848 4805D000 		addq	$208, %rax
- 19531      0000
- 19532 1284e F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 19532      D0E9FFFF 
- 19533 12856 F30F7F00 		movdqu	%xmm0, (%rax)
- 19534 1285a F30F6F85 		movdqu	-5680(%rbp), %xmm0
- 19534      D0E9FFFF 
- 19535 12862 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 19535      30FDFFFF 
- 19536              	.LBB2308:
- 19537              	.LBB2309:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 19538              		.loc 2 1681 0
- 19539 1286a B8400000 		movl	$64, %eax
- 19539      00
- 19540 1286f 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 19540      00000000 
- 19541 12877 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 19541      50FDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 602
-
-
- 19542 1287f 89854CFD 		movl	%eax, -692(%rbp)
- 19542      FFFF
- 19543              	.LBB2310:
- 19544              	.LBB2311:
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 19545              		.loc 2 522 0
- 19546 12885 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 19546      50FDFFFF 
- 19547 1288d F30F7F85 		movdqu	%xmm0, -5920(%rbp)
- 19547      E0E8FFFF 
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 19548              		.loc 2 523 0
- 19549 12895 B8030000 		movl	$3, %eax
- 19549      00
- 19550 1289a 4898     		cltq
- 19551 1289c 8B954CFD 		movl	-692(%rbp), %edx
- 19551      FFFF
- 19552 128a2 899485E0 		movl	%edx, -5920(%rbp,%rax,4)
- 19552      E8FFFF
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 19553              		.loc 2 524 0
- 19554 128a9 F30F6F85 		movdqu	-5920(%rbp), %xmm0
- 19554      E0E8FFFF 
- 19555 128b1 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 19555      50FDFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19556              		.loc 2 526 0
- 19557 128b9 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 19557      50FDFFFF 
- 19558              	.LBE2311:
- 19559              	.LBE2310:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 19560              		.loc 2 1681 0
- 19561 128c1 660F7F85 		movdqa	%xmm0, -8288(%rbp)
- 19561      A0DFFFFF 
- 19562 128c9 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 19562      30FDFFFF 
- 19563 128d1 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 19563      60FDFFFF 
- 19564 128d9 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 19564      60FDFFFF 
- 19565 128e1 F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 19565      80FDFFFF 
- 19566 128e9 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 19566      000000
- 19567 128f0 48898578 		movq	%rax, -648(%rbp)
- 19567      FDFFFF
- 19568              	.LBB2312:
- 19569              	.LBB2313:
- 19570              	.LBB2314:
- 19571              	.LBB2315:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 19572              		.loc 2 851 0
- 19573 128f7 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 19573      00000000 
- 19574 128ff F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 19574      A0FDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 603
-
-
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 19575              		.loc 2 854 0
- 19576 12907 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 19576      00000000 
- 19577 1290f F30F6F8D 		movdqu	-640(%rbp), %xmm1
- 19577      80FDFFFF 
- 19578 12917 F30F7F8D 		movdqu	%xmm1, -528(%rbp)
- 19578      F0FDFFFF 
- 19579 1291f F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 19579      E0FDFFFF 
- 19580              	.LBB2316:
- 19581              	.LBB2317:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 19582              		.loc 2 206 0
- 19583 12927 F30F6F85 		movdqu	-544(%rbp), %xmm0
- 19583      E0FDFFFF 
- 19584 1292f F30F6F8D 		movdqu	-528(%rbp), %xmm1
- 19584      F0FDFFFF 
- 19585 12937 660FDBC1 		pand	%xmm1, %xmm0
- 19586              	.LBE2317:
- 19587              	.LBE2316:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 19588              		.loc 2 854 0
- 19589 1293b F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 19589      D0FDFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 19590              		.loc 2 862 0
- 19591 12943 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 19591      00000000 
- 19592 1294b F30F6F8D 		movdqu	-640(%rbp), %xmm1
- 19592      80FDFFFF 
- 19593 12953 F30F7F8D 		movdqu	%xmm1, -496(%rbp)
- 19593      10FEFFFF 
- 19594 1295b F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 19594      00FEFFFF 
- 19595              	.LBB2318:
- 19596              		.loc 2 2642 0
- 19597 12963 0FB68510 		movzbl	-496(%rbp), %eax
- 19597      FEFFFF
- 19598 1296a 0FB69500 		movzbl	-512(%rbp), %edx
- 19598      FEFFFF
- 19599 12971 0FB6C0   		movzbl	%al, %eax
- 19600 12974 6689853E 		movw	%ax, -8898(%rbp)
- 19600      DDFFFF
- 19601 1297b 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19601      DDFFFF
- 19602 12982 F6F2     		divb	%dl
- 19603 12984 4189C7   		movl	%eax, %r15d
- 19604 12987 0FB68511 		movzbl	-495(%rbp), %eax
- 19604      FEFFFF
- 19605 1298e 0FB69501 		movzbl	-511(%rbp), %edx
- 19605      FEFFFF
- 19606 12995 0FB6C0   		movzbl	%al, %eax
- 19607 12998 6689853E 		movw	%ax, -8898(%rbp)
- 19607      DDFFFF
- 19608 1299f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19608      DDFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 604
-
-
- 19609 129a6 F6F2     		divb	%dl
- 19610 129a8 8885BFDF 		movb	%al, -8257(%rbp)
- 19610      FFFF
- 19611 129ae 0FB68512 		movzbl	-494(%rbp), %eax
- 19611      FEFFFF
- 19612 129b5 0FB69502 		movzbl	-510(%rbp), %edx
- 19612      FEFFFF
- 19613 129bc 0FB6C0   		movzbl	%al, %eax
- 19614 129bf 6689853E 		movw	%ax, -8898(%rbp)
- 19614      DDFFFF
- 19615 129c6 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19615      DDFFFF
- 19616 129cd F6F2     		divb	%dl
- 19617 129cf 8885BEDF 		movb	%al, -8258(%rbp)
- 19617      FFFF
- 19618 129d5 0FB68513 		movzbl	-493(%rbp), %eax
- 19618      FEFFFF
- 19619 129dc 0FB69503 		movzbl	-509(%rbp), %edx
- 19619      FEFFFF
- 19620 129e3 0FB6C0   		movzbl	%al, %eax
- 19621 129e6 6689853E 		movw	%ax, -8898(%rbp)
- 19621      DDFFFF
- 19622 129ed 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19622      DDFFFF
- 19623 129f4 F6F2     		divb	%dl
- 19624 129f6 8885BDDF 		movb	%al, -8259(%rbp)
- 19624      FFFF
- 19625 129fc 0FB68514 		movzbl	-492(%rbp), %eax
- 19625      FEFFFF
- 19626 12a03 0FB69504 		movzbl	-508(%rbp), %edx
- 19626      FEFFFF
- 19627 12a0a 0FB6C0   		movzbl	%al, %eax
- 19628 12a0d 6689853E 		movw	%ax, -8898(%rbp)
- 19628      DDFFFF
- 19629 12a14 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19629      DDFFFF
- 19630 12a1b F6F2     		divb	%dl
- 19631 12a1d 8885BCDF 		movb	%al, -8260(%rbp)
- 19631      FFFF
- 19632 12a23 0FB68515 		movzbl	-491(%rbp), %eax
- 19632      FEFFFF
- 19633 12a2a 0FB69505 		movzbl	-507(%rbp), %edx
- 19633      FEFFFF
- 19634 12a31 0FB6C0   		movzbl	%al, %eax
- 19635 12a34 6689853E 		movw	%ax, -8898(%rbp)
- 19635      DDFFFF
- 19636 12a3b 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19636      DDFFFF
- 19637 12a42 F6F2     		divb	%dl
- 19638 12a44 4189C1   		movl	%eax, %r9d
- 19639 12a47 0FB68516 		movzbl	-490(%rbp), %eax
- 19639      FEFFFF
- 19640 12a4e 0FB69506 		movzbl	-506(%rbp), %edx
- 19640      FEFFFF
- 19641 12a55 0FB6C0   		movzbl	%al, %eax
- 19642 12a58 6689853E 		movw	%ax, -8898(%rbp)
- 19642      DDFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 605
-
-
- 19643 12a5f 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19643      DDFFFF
- 19644 12a66 F6F2     		divb	%dl
- 19645 12a68 89C7     		movl	%eax, %edi
- 19646 12a6a 0FB68517 		movzbl	-489(%rbp), %eax
- 19646      FEFFFF
- 19647 12a71 0FB69507 		movzbl	-505(%rbp), %edx
- 19647      FEFFFF
- 19648 12a78 0FB6C0   		movzbl	%al, %eax
- 19649 12a7b 6689853E 		movw	%ax, -8898(%rbp)
- 19649      DDFFFF
- 19650 12a82 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19650      DDFFFF
- 19651 12a89 F6F2     		divb	%dl
- 19652 12a8b 89C3     		movl	%eax, %ebx
- 19653 12a8d 0FB68518 		movzbl	-488(%rbp), %eax
- 19653      FEFFFF
- 19654 12a94 0FB69508 		movzbl	-504(%rbp), %edx
- 19654      FEFFFF
- 19655 12a9b 0FB6C0   		movzbl	%al, %eax
- 19656 12a9e 6689853E 		movw	%ax, -8898(%rbp)
- 19656      DDFFFF
- 19657 12aa5 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19657      DDFFFF
- 19658 12aac F6F2     		divb	%dl
- 19659 12aae 4189C2   		movl	%eax, %r10d
- 19660 12ab1 0FB68519 		movzbl	-487(%rbp), %eax
- 19660      FEFFFF
- 19661 12ab8 0FB69509 		movzbl	-503(%rbp), %edx
- 19661      FEFFFF
- 19662 12abf 0FB6C0   		movzbl	%al, %eax
- 19663 12ac2 6689853E 		movw	%ax, -8898(%rbp)
- 19663      DDFFFF
- 19664 12ac9 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19664      DDFFFF
- 19665 12ad0 F6F2     		divb	%dl
- 19666 12ad2 4189C3   		movl	%eax, %r11d
- 19667 12ad5 0FB6851A 		movzbl	-486(%rbp), %eax
- 19667      FEFFFF
- 19668 12adc 0FB6950A 		movzbl	-502(%rbp), %edx
- 19668      FEFFFF
- 19669 12ae3 0FB6C0   		movzbl	%al, %eax
- 19670 12ae6 6689853E 		movw	%ax, -8898(%rbp)
- 19670      DDFFFF
- 19671 12aed 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19671      DDFFFF
- 19672 12af4 F6F2     		divb	%dl
- 19673 12af6 4189C4   		movl	%eax, %r12d
- 19674 12af9 0FB6851B 		movzbl	-485(%rbp), %eax
- 19674      FEFFFF
- 19675 12b00 0FB6950B 		movzbl	-501(%rbp), %edx
- 19675      FEFFFF
- 19676 12b07 0FB6C0   		movzbl	%al, %eax
- 19677 12b0a 6689853E 		movw	%ax, -8898(%rbp)
- 19677      DDFFFF
- 19678 12b11 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19678      DDFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 606
-
-
- 19679 12b18 F6F2     		divb	%dl
- 19680 12b1a 4189C5   		movl	%eax, %r13d
- 19681 12b1d 0FB6851C 		movzbl	-484(%rbp), %eax
- 19681      FEFFFF
- 19682 12b24 0FB6950C 		movzbl	-500(%rbp), %edx
- 19682      FEFFFF
- 19683 12b2b 0FB6C0   		movzbl	%al, %eax
- 19684 12b2e 6689853E 		movw	%ax, -8898(%rbp)
- 19684      DDFFFF
- 19685 12b35 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19685      DDFFFF
- 19686 12b3c F6F2     		divb	%dl
- 19687 12b3e 4189C6   		movl	%eax, %r14d
- 19688 12b41 0FB6851D 		movzbl	-483(%rbp), %eax
- 19688      FEFFFF
- 19689 12b48 0FB6950D 		movzbl	-499(%rbp), %edx
- 19689      FEFFFF
- 19690 12b4f 0FB6C0   		movzbl	%al, %eax
- 19691 12b52 6689853E 		movw	%ax, -8898(%rbp)
- 19691      DDFFFF
- 19692 12b59 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19692      DDFFFF
- 19693 12b60 F6F2     		divb	%dl
- 19694 12b62 4189C0   		movl	%eax, %r8d
- 19695 12b65 0FB6851E 		movzbl	-482(%rbp), %eax
- 19695      FEFFFF
- 19696 12b6c 0FB6950E 		movzbl	-498(%rbp), %edx
- 19696      FEFFFF
- 19697 12b73 0FB6C0   		movzbl	%al, %eax
- 19698 12b76 6689853E 		movw	%ax, -8898(%rbp)
- 19698      DDFFFF
- 19699 12b7d 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19699      DDFFFF
- 19700 12b84 F6F2     		divb	%dl
- 19701 12b86 89C6     		movl	%eax, %esi
- 19702 12b88 0FB6851F 		movzbl	-481(%rbp), %eax
- 19702      FEFFFF
- 19703 12b8f 0FB6950F 		movzbl	-497(%rbp), %edx
- 19703      FEFFFF
- 19704 12b96 0FB6C0   		movzbl	%al, %eax
- 19705 12b99 6689853E 		movw	%ax, -8898(%rbp)
- 19705      DDFFFF
- 19706 12ba0 0FB7853E 		movzwl	-8898(%rbp), %eax
- 19706      DDFFFF
- 19707 12ba7 F6F2     		divb	%dl
- 19708 12ba9 89C1     		movl	%eax, %ecx
- 19709              	.LBB2319:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 19710              		.loc 2 346 0
- 19711 12bab 0FB6D3   		movzbl	%bl, %edx
- 19712 12bae 400FB6C7 		movzbl	%dil, %eax
- 19713 12bb2 48C1E208 		salq	$8, %rdx
- 19714 12bb6 4809C2   		orq	%rax, %rdx
- 19715 12bb9 410FB6C1 		movzbl	%r9b, %eax
- 19716 12bbd 48C1E208 		salq	$8, %rdx
- 19717 12bc1 4809C2   		orq	%rax, %rdx
- 19718 12bc4 0FB685BC 		movzbl	-8260(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 607
-
-
- 19718      DFFFFF
- 19719 12bcb 48C1E208 		salq	$8, %rdx
- 19720 12bcf 4809C2   		orq	%rax, %rdx
- 19721 12bd2 0FB685BD 		movzbl	-8259(%rbp), %eax
- 19721      DFFFFF
- 19722 12bd9 48C1E208 		salq	$8, %rdx
- 19723 12bdd 4809C2   		orq	%rax, %rdx
- 19724 12be0 0FB685BE 		movzbl	-8258(%rbp), %eax
- 19724      DFFFFF
- 19725 12be7 48C1E208 		salq	$8, %rdx
- 19726 12beb 4809C2   		orq	%rax, %rdx
- 19727 12bee 0FB685BF 		movzbl	-8257(%rbp), %eax
- 19727      DFFFFF
- 19728 12bf5 48C1E208 		salq	$8, %rdx
- 19729 12bf9 4809C2   		orq	%rax, %rdx
- 19730 12bfc 410FB6C7 		movzbl	%r15b, %eax
- 19731 12c00 48C1E208 		salq	$8, %rdx
- 19732 12c04 4809C2   		orq	%rax, %rdx
- 19733 12c07 0FB6C1   		movzbl	%cl, %eax
- 19734 12c0a 400FB6CE 		movzbl	%sil, %ecx
- 19735 12c0e 48C1E008 		salq	$8, %rax
- 19736 12c12 4809C8   		orq	%rcx, %rax
- 19737 12c15 410FB6C8 		movzbl	%r8b, %ecx
- 19738 12c19 48C1E008 		salq	$8, %rax
- 19739 12c1d 4809C8   		orq	%rcx, %rax
- 19740 12c20 410FB6CE 		movzbl	%r14b, %ecx
- 19741 12c24 48C1E008 		salq	$8, %rax
- 19742 12c28 4809C8   		orq	%rcx, %rax
- 19743 12c2b 410FB6CD 		movzbl	%r13b, %ecx
- 19744 12c2f 48C1E008 		salq	$8, %rax
- 19745 12c33 4809C8   		orq	%rcx, %rax
- 19746 12c36 410FB6CC 		movzbl	%r12b, %ecx
- 19747 12c3a 48C1E008 		salq	$8, %rax
- 19748 12c3e 4809C8   		orq	%rcx, %rax
- 19749 12c41 410FB6CB 		movzbl	%r11b, %ecx
- 19750 12c45 48C1E008 		salq	$8, %rax
- 19751 12c49 4809C8   		orq	%rcx, %rax
- 19752 12c4c 410FB6CA 		movzbl	%r10b, %ecx
- 19753 12c50 48C1E008 		salq	$8, %rax
- 19754 12c54 4809C8   		orq	%rcx, %rax
- 19755 12c57 48899540 		movq	%rdx, -8896(%rbp)
- 19755      DDFFFF
- 19756 12c5e 48898548 		movq	%rax, -8888(%rbp)
- 19756      DDFFFF
- 19757 12c65 660F6F85 		movdqa	-8896(%rbp), %xmm0
- 19757      40DDFFFF 
- 19758              	.LBE2319:
- 19759              	.LBE2318:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 19760              		.loc 2 862 0
- 19761 12c6d F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 19761      C0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 19762              		.loc 2 866 0
- 19763 12c75 C7859CFD 		movl	$0, -612(%rbp)
- 19763      FFFF0000 
- 19763      0000
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 608
-
-
- 19764 12c7f E9860200 		jmp	.L468
- 19764      00
- 19765              	.L477:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 19766              		.loc 2 868 0
- 19767 12c84 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 19767      00000000 
- 19768 12c8c F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 19768      30FEFFFF 
- 19769 12c94 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 19769      C0FDFFFF 
- 19770 12c9c F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 19770      20FEFFFF 
- 19771              	.LBB2320:
- 19772              	.LBB2321:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 19773              		.loc 2 380 0
- 19774 12ca4 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 19774      30FEFFFF 
- 19775 12cac F30F7F85 		movdqu	%xmm0, -5888(%rbp)
- 19775      00E9FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 19776              		.loc 2 381 0
- 19777 12cb4 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 19777      20FEFFFF 
- 19778 12cbc F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 19778      F0E8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 19779              		.loc 2 383 0
- 19780 12cc4 C7854CFE 		movl	$0, -436(%rbp)
- 19780      FFFF0000 
- 19780      0000
- 19781 12cce EB5C     		jmp	.L469
- 19782              	.L472:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 19783              		.loc 2 385 0
- 19784 12cd0 8B854CFE 		movl	-436(%rbp), %eax
- 19784      FFFF
- 19785 12cd6 89C0     		mov	%eax, %eax
- 19786 12cd8 0FB68405 		movzbl	-5904(%rbp,%rax), %eax
- 19786      F0E8FFFF 
- 19787 12ce0 84C0     		testb	%al, %al
- 19788 12ce2 7912     		jns	.L470
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 19789              		.loc 2 386 0
- 19790 12ce4 8B854CFE 		movl	-436(%rbp), %eax
- 19790      FFFF
- 19791 12cea 89C0     		mov	%eax, %eax
- 19792 12cec C6840510 		movb	$0, -5872(%rbp,%rax)
- 19792      E9FFFF00 
- 19793 12cf4 EB2F     		jmp	.L471
- 19794              	.L470:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 19795              		.loc 2 388 0
- 19796 12cf6 8B8D4CFE 		movl	-436(%rbp), %ecx
- 19796      FFFF
- 19797 12cfc 8B854CFE 		movl	-436(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 609
-
-
- 19797      FFFF
- 19798 12d02 89C0     		mov	%eax, %eax
- 19799 12d04 0FB68405 		movzbl	-5904(%rbp,%rax), %eax
- 19799      F0E8FFFF 
- 19800 12d0c 0FB6C0   		movzbl	%al, %eax
- 19801 12d0f 83E00F   		andl	$15, %eax
- 19802 12d12 4898     		cltq
- 19803 12d14 0FB69405 		movzbl	-5888(%rbp,%rax), %edx
- 19803      00E9FFFF 
- 19804 12d1c 89C8     		mov	%ecx, %eax
- 19805 12d1e 88940510 		movb	%dl, -5872(%rbp,%rax)
- 19805      E9FFFF
- 19806              	.L471:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 19807              		.loc 2 383 0
- 19808 12d25 83854CFE 		addl	$1, -436(%rbp)
- 19808      FFFF01
- 19809              	.L469:
- 19810 12d2c 83BD4CFE 		cmpl	$15, -436(%rbp)
- 19810      FFFF0F
- 19811 12d33 769B     		jbe	.L472
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 19812              		.loc 2 391 0
- 19813 12d35 F30F6F85 		movdqu	-5872(%rbp), %xmm0
- 19813      10E9FFFF 
- 19814              	.LBE2321:
- 19815              	.LBE2320:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 19816              		.loc 2 868 0
- 19817 12d3d F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 19817      B0FDFFFF 
- 19818 12d45 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 19818      D0FDFFFF 
- 19819 12d4d F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 19819      60FEFFFF 
- 19820 12d55 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 19820      B0FDFFFF 
- 19821 12d5d F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 19821      50FEFFFF 
- 19822              	.LBB2322:
- 19823              	.LBB2323:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 19824              		.loc 2 234 0
- 19825 12d65 F30F6F85 		movdqu	-432(%rbp), %xmm0
- 19825      50FEFFFF 
- 19826 12d6d F30F6F8D 		movdqu	-416(%rbp), %xmm1
- 19826      60FEFFFF 
- 19827 12d75 660FEBC1 		por	%xmm1, %xmm0
- 19828              	.LBE2323:
- 19829              	.LBE2322:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 19830              		.loc 2 870 0
- 19831 12d79 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 19831      B0FDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 19832              		.loc 2 872 0
- 19833 12d81 8B859CFD 		mov	-612(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 610
-
-
- 19833      FFFF
- 19834 12d87 48C1E004 		salq	$4, %rax
- 19835 12d8b 48038578 		addq	-648(%rbp), %rax
- 19835      FDFFFF
- 19836 12d92 660F6F00 		movdqa	(%rax), %xmm0
- 19837 12d96 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 19837      80FEFFFF 
- 19838 12d9e F30F6F85 		movdqu	-592(%rbp), %xmm0
- 19838      B0FDFFFF 
- 19839 12da6 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 19839      70FEFFFF 
- 19840              	.LBB2324:
- 19841              	.LBB2325:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 19842              		.loc 2 380 0
- 19843 12dae F30F6F85 		movdqu	-384(%rbp), %xmm0
- 19843      80FEFFFF 
- 19844 12db6 F30F7F85 		movdqu	%xmm0, -5840(%rbp)
- 19844      30E9FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 19845              		.loc 2 381 0
- 19846 12dbe F30F6F85 		movdqu	-400(%rbp), %xmm0
- 19846      70FEFFFF 
- 19847 12dc6 F30F7F85 		movdqu	%xmm0, -5856(%rbp)
- 19847      20E9FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 19848              		.loc 2 383 0
- 19849 12dce C7859CFE 		movl	$0, -356(%rbp)
- 19849      FFFF0000 
- 19849      0000
- 19850 12dd8 EB5C     		jmp	.L473
- 19851              	.L476:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 19852              		.loc 2 385 0
- 19853 12dda 8B859CFE 		movl	-356(%rbp), %eax
- 19853      FFFF
- 19854 12de0 89C0     		mov	%eax, %eax
- 19855 12de2 0FB68405 		movzbl	-5856(%rbp,%rax), %eax
- 19855      20E9FFFF 
- 19856 12dea 84C0     		testb	%al, %al
- 19857 12dec 7912     		jns	.L474
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 19858              		.loc 2 386 0
- 19859 12dee 8B859CFE 		movl	-356(%rbp), %eax
- 19859      FFFF
- 19860 12df4 89C0     		mov	%eax, %eax
- 19861 12df6 C6840540 		movb	$0, -5824(%rbp,%rax)
- 19861      E9FFFF00 
- 19862 12dfe EB2F     		jmp	.L475
- 19863              	.L474:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 19864              		.loc 2 388 0
- 19865 12e00 8B8D9CFE 		movl	-356(%rbp), %ecx
- 19865      FFFF
- 19866 12e06 8B859CFE 		movl	-356(%rbp), %eax
- 19866      FFFF
- 19867 12e0c 89C0     		mov	%eax, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 611
-
-
- 19868 12e0e 0FB68405 		movzbl	-5856(%rbp,%rax), %eax
- 19868      20E9FFFF 
- 19869 12e16 0FB6C0   		movzbl	%al, %eax
- 19870 12e19 83E00F   		andl	$15, %eax
- 19871 12e1c 4898     		cltq
- 19872 12e1e 0FB69405 		movzbl	-5840(%rbp,%rax), %edx
- 19872      30E9FFFF 
- 19873 12e26 89C8     		mov	%ecx, %eax
- 19874 12e28 88940540 		movb	%dl, -5824(%rbp,%rax)
- 19874      E9FFFF
- 19875              	.L475:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 19876              		.loc 2 383 0
- 19877 12e2f 83859CFE 		addl	$1, -356(%rbp)
- 19877      FFFF01
- 19878              	.L473:
- 19879 12e36 83BD9CFE 		cmpl	$15, -356(%rbp)
- 19879      FFFF0F
- 19880 12e3d 769B     		jbe	.L476
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 19881              		.loc 2 391 0
- 19882 12e3f F30F6F85 		movdqu	-5824(%rbp), %xmm0
- 19882      40E9FFFF 
- 19883              	.LBE2325:
- 19884              	.LBE2324:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 19885              		.loc 2 872 0
- 19886 12e47 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 19886      B0FDFFFF 
- 19887 12e4f F30F6F85 		movdqu	-608(%rbp), %xmm0
- 19887      A0FDFFFF 
- 19888 12e57 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 19888      B0FEFFFF 
- 19889 12e5f F30F6F85 		movdqu	-592(%rbp), %xmm0
- 19889      B0FDFFFF 
- 19890 12e67 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 19890      A0FEFFFF 
- 19891              	.LBB2326:
- 19892              	.LBB2327:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 19893              		.loc 2 234 0
- 19894 12e6f F30F6F85 		movdqu	-352(%rbp), %xmm0
- 19894      A0FEFFFF 
- 19895 12e77 F30F6F8D 		movdqu	-336(%rbp), %xmm1
- 19895      B0FEFFFF 
- 19896 12e7f 660FEBC1 		por	%xmm1, %xmm0
- 19897              	.LBE2327:
- 19898              	.LBE2326:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 19899              		.loc 2 874 0
- 19900 12e83 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 19900      A0FDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 19901              		.loc 2 876 0
- 19902 12e8b 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 19902      00000000 
- 19903 12e93 F30F6F8D 		movdqu	-576(%rbp), %xmm1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 612
-
-
- 19903      C0FDFFFF 
- 19904 12e9b F30F7F8D 		movdqu	%xmm1, -304(%rbp)
- 19904      D0FEFFFF 
- 19905 12ea3 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 19905      C0FEFFFF 
- 19906              	.LBB2328:
- 19907              	.LBB2329:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 19908              		.loc 2 290 0
- 19909 12eab F30F6F8D 		movdqu	-320(%rbp), %xmm1
- 19909      C0FEFFFF 
- 19910 12eb3 F30F6F85 		movdqu	-304(%rbp), %xmm0
- 19910      D0FEFFFF 
- 19911 12ebb 660FF8C1 		psubb	%xmm1, %xmm0
- 19912              	.LBE2329:
- 19913              	.LBE2328:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 19914              		.loc 2 876 0
- 19915 12ebf F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 19915      C0FDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 19916              		.loc 2 878 0
- 19917 12ec7 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 19917      00000000 
- 19918 12ecf F30F6F8D 		movdqu	-576(%rbp), %xmm1
- 19918      C0FDFFFF 
- 19919 12ed7 F30F7F8D 		movdqu	%xmm1, -272(%rbp)
- 19919      F0FEFFFF 
- 19920 12edf F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 19920      E0FEFFFF 
- 19921              	.LBB2330:
- 19922              	.LBB2331:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 19923              		.loc 2 206 0
- 19924 12ee7 F30F6F85 		movdqu	-288(%rbp), %xmm0
- 19924      E0FEFFFF 
- 19925 12eef F30F6F8D 		movdqu	-272(%rbp), %xmm1
- 19925      F0FEFFFF 
- 19926 12ef7 660FDBC1 		pand	%xmm1, %xmm0
- 19927              	.LBE2331:
- 19928              	.LBE2330:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 19929              		.loc 2 878 0
- 19930 12efb F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 19930      C0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 19931              		.loc 2 866 0
- 19932 12f03 83859CFD 		addl	$1, -612(%rbp)
- 19932      FFFF01
- 19933              	.L468:
- 19934 12f0a 83BD9CFD 		cmpl	$15, -612(%rbp)
- 19934      FFFF0F
- 19935 12f11 0F866DFD 		jbe	.L477
- 19935      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 19936              		.loc 2 882 0
- 19937 12f17 F30F6F85 		movdqu	-608(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 613
-
-
- 19937      A0FDFFFF 
- 19938              	.LBE2315:
- 19939              	.LBE2314:
- 19940              	.LBE2313:
- 19941              	.LBE2312:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 19942              		.loc 2 1682 0
- 19943 12f1f 660F7F85 		movdqa	%xmm0, -8304(%rbp)
- 19943      90DFFFFF 
- 19944              	.LBB2332:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 19945              		.loc 2 1683 0
- 19946 12f27 660F6F85 		movdqa	-8304(%rbp), %xmm0
- 19946      90DFFFFF 
- 19947 12f2f F30F7F85 		movdqu	%xmm0, -5936(%rbp)
- 19947      D0E8FFFF 
- 19948 12f37 E8000000 		call	KDbgWriterGet at PLT
- 19948      00
- 19949 12f3c 4885C0   		testq	%rax, %rax
- 19950 12f3f 7479     		je	.L479
- 19951 12f41 BF010000 		movl	$1, %edi
- 19951      00
- 19952 12f46 E8000000 		call	KDbgCondToFlag at PLT
- 19952      00
- 19953 12f4b 4889C6   		movq	%rax, %rsi
- 19954 12f4e BF100000 		movl	$16, %edi
- 19954      00
- 19955 12f53 E8000000 		call	KDbgTestModConds at PLT
- 19955      00
- 19956 12f58 84C0     		testb	%al, %al
- 19957 12f5a 745E     		je	.L479
- 19958 12f5c 8B85DCE8 		movl	-5924(%rbp), %eax
- 19958      FFFF
- 19959 12f62 89C7     		movl	%eax, %edi
- 19960 12f64 E897D0FE 		call	bswap_32
- 19960      FF
- 19961 12f69 4189C5   		movl	%eax, %r13d
- 19962 12f6c 8B85D8E8 		movl	-5928(%rbp), %eax
- 19962      FFFF
- 19963 12f72 89C7     		movl	%eax, %edi
- 19964 12f74 E887D0FE 		call	bswap_32
- 19964      FF
- 19965 12f79 4189C4   		movl	%eax, %r12d
- 19966 12f7c 8B85D4E8 		movl	-5932(%rbp), %eax
- 19966      FFFF
- 19967 12f82 89C7     		movl	%eax, %edi
- 19968 12f84 E877D0FE 		call	bswap_32
- 19968      FF
- 19969 12f89 89C3     		movl	%eax, %ebx
- 19970 12f8b 8B85D0E8 		movl	-5936(%rbp), %eax
- 19970      FFFF
- 19971 12f91 89C7     		movl	%eax, %edi
- 19972 12f93 E868D0FE 		call	bswap_32
- 19972      FF
- 19973 12f98 4589E9   		movl	%r13d, %r9d
- 19974 12f9b 4589E0   		movl	%r12d, %r8d
- 19975 12f9e 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 614
-
-
- 19976 12fa0 89C2     		movl	%eax, %edx
- 19977 12fa2 488D3500 		leaq	.LC0(%rip), %rsi
- 19977      000000
- 19978 12fa9 488D3D00 		leaq	.LC1(%rip), %rdi
- 19978      000000
- 19979 12fb0 B8000000 		movl	$0, %eax
- 19979      00
- 19980 12fb5 E8000000 		call	KDbgMsg at PLT
- 19980      00
- 19981              	.L479:
- 19982 12fba 660F6F85 		movdqa	-8304(%rbp), %xmm0
- 19982      90DFFFFF 
- 19983 12fc2 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 19983      00FFFFFF 
- 19984              	.LBE2332:
- 19985              	.LBB2333:
- 19986              	.LBB2334:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19987              		.loc 2 667 0
- 19988 12fca 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 19988      00000000 
- 19989 12fd2 F30F6F8D 		movdqu	-256(%rbp), %xmm1
- 19989      00FFFFFF 
- 19990 12fda F30F7F8D 		movdqu	%xmm1, -224(%rbp)
- 19990      20FFFFFF 
- 19991 12fe2 F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 19991      10FFFFFF 
- 19992              	.LBB2335:
- 19993              	.LBB2336:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 19994              		.loc 2 380 0
- 19995 12fea F30F6F85 		movdqu	-224(%rbp), %xmm0
- 19995      20FFFFFF 
- 19996 12ff2 F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 19996      60E9FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 19997              		.loc 2 381 0
- 19998 12ffa F30F6F85 		movdqu	-240(%rbp), %xmm0
- 19998      10FFFFFF 
- 19999 13002 F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 19999      50E9FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20000              		.loc 2 383 0
- 20001 1300a C7853CFF 		movl	$0, -196(%rbp)
- 20001      FFFF0000 
- 20001      0000
- 20002 13014 EB5C     		jmp	.L480
- 20003              	.L483:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 20004              		.loc 2 385 0
- 20005 13016 8B853CFF 		movl	-196(%rbp), %eax
- 20005      FFFF
- 20006 1301c 89C0     		mov	%eax, %eax
- 20007 1301e 0FB68405 		movzbl	-5808(%rbp,%rax), %eax
- 20007      50E9FFFF 
- 20008 13026 84C0     		testb	%al, %al
- 20009 13028 7912     		jns	.L481
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 615
-
-
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 20010              		.loc 2 386 0
- 20011 1302a 8B853CFF 		movl	-196(%rbp), %eax
- 20011      FFFF
- 20012 13030 89C0     		mov	%eax, %eax
- 20013 13032 C6840570 		movb	$0, -5776(%rbp,%rax)
- 20013      E9FFFF00 
- 20014 1303a EB2F     		jmp	.L482
- 20015              	.L481:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 20016              		.loc 2 388 0
- 20017 1303c 8B8D3CFF 		movl	-196(%rbp), %ecx
- 20017      FFFF
- 20018 13042 8B853CFF 		movl	-196(%rbp), %eax
- 20018      FFFF
- 20019 13048 89C0     		mov	%eax, %eax
- 20020 1304a 0FB68405 		movzbl	-5808(%rbp,%rax), %eax
- 20020      50E9FFFF 
- 20021 13052 0FB6C0   		movzbl	%al, %eax
- 20022 13055 83E00F   		andl	$15, %eax
- 20023 13058 4898     		cltq
- 20024 1305a 0FB69405 		movzbl	-5792(%rbp,%rax), %edx
- 20024      60E9FFFF 
- 20025 13062 89C8     		mov	%ecx, %eax
- 20026 13064 88940570 		movb	%dl, -5776(%rbp,%rax)
- 20026      E9FFFF
- 20027              	.L482:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20028              		.loc 2 383 0
- 20029 1306b 83853CFF 		addl	$1, -196(%rbp)
- 20029      FFFF01
- 20030              	.L480:
- 20031 13072 83BD3CFF 		cmpl	$15, -196(%rbp)
- 20031      FFFF0F
- 20032 13079 769B     		jbe	.L483
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 20033              		.loc 2 391 0
- 20034 1307b F30F6F85 		movdqu	-5776(%rbp), %xmm0
- 20034      70E9FFFF 
- 20035              	.LBE2336:
- 20036              	.LBE2335:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 20037              		.loc 2 667 0
- 20038 13083 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 20038      00FFFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20039              		.loc 2 668 0
- 20040 1308b F30F6F85 		movdqu	-256(%rbp), %xmm0
- 20040      00FFFFFF 
- 20041              	.LBE2334:
- 20042              	.LBE2333:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 20043              		.loc 2 1684 0
- 20044 13093 660F7F85 		movdqa	%xmm0, -8304(%rbp)
- 20044      90DFFFFF 
- 20045              	.LBB2337:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 616
-
-
- 20046              		.loc 2 1685 0
- 20047 1309b 660F6F85 		movdqa	-8304(%rbp), %xmm0
- 20047      90DFFFFF 
- 20048 130a3 F30F7F85 		movdqu	%xmm0, -5952(%rbp)
- 20048      C0E8FFFF 
- 20049 130ab E8000000 		call	KDbgWriterGet at PLT
- 20049      00
- 20050 130b0 4885C0   		testq	%rax, %rax
- 20051 130b3 7479     		je	.L485
- 20052 130b5 BF010000 		movl	$1, %edi
- 20052      00
- 20053 130ba E8000000 		call	KDbgCondToFlag at PLT
- 20053      00
- 20054 130bf 4889C6   		movq	%rax, %rsi
- 20055 130c2 BF100000 		movl	$16, %edi
- 20055      00
- 20056 130c7 E8000000 		call	KDbgTestModConds at PLT
- 20056      00
- 20057 130cc 84C0     		testb	%al, %al
- 20058 130ce 745E     		je	.L485
- 20059 130d0 8B85CCE8 		movl	-5940(%rbp), %eax
- 20059      FFFF
- 20060 130d6 89C7     		movl	%eax, %edi
- 20061 130d8 E823CFFE 		call	bswap_32
- 20061      FF
- 20062 130dd 4189C5   		movl	%eax, %r13d
- 20063 130e0 8B85C8E8 		movl	-5944(%rbp), %eax
- 20063      FFFF
- 20064 130e6 89C7     		movl	%eax, %edi
- 20065 130e8 E813CFFE 		call	bswap_32
- 20065      FF
- 20066 130ed 4189C4   		movl	%eax, %r12d
- 20067 130f0 8B85C4E8 		movl	-5948(%rbp), %eax
- 20067      FFFF
- 20068 130f6 89C7     		movl	%eax, %edi
- 20069 130f8 E803CFFE 		call	bswap_32
- 20069      FF
- 20070 130fd 89C3     		movl	%eax, %ebx
- 20071 130ff 8B85C0E8 		movl	-5952(%rbp), %eax
- 20071      FFFF
- 20072 13105 89C7     		movl	%eax, %edi
- 20073 13107 E8F4CEFE 		call	bswap_32
- 20073      FF
- 20074 1310c 4589E9   		movl	%r13d, %r9d
- 20075 1310f 4589E0   		movl	%r12d, %r8d
- 20076 13112 89D9     		movl	%ebx, %ecx
- 20077 13114 89C2     		movl	%eax, %edx
- 20078 13116 488D3500 		leaq	.LC2(%rip), %rsi
- 20078      000000
- 20079 1311d 488D3D00 		leaq	.LC1(%rip), %rdi
- 20079      000000
- 20080 13124 B8000000 		movl	$0, %eax
- 20080      00
- 20081 13129 E8000000 		call	KDbgMsg at PLT
- 20081      00
- 20082              	.L485:
- 20083 1312e 660F6F85 		movdqa	-8304(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 617
-
-
- 20083      90DFFFFF 
- 20084 13136 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 20084      50FFFFFF 
- 20085 1313e 660F6F85 		movdqa	-8288(%rbp), %xmm0
- 20085      A0DFFFFF 
- 20086 13146 F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 20086      40FFFFFF 
- 20087              	.LBE2337:
- 20088              	.LBB2338:
- 20089              	.LBB2339:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20090              		.loc 2 178 0
- 20091 1314e F30F6F85 		movdqu	-192(%rbp), %xmm0
- 20091      40FFFFFF 
- 20092 13156 F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 20092      50FFFFFF 
- 20093 1315e 660FEFC1 		pxor	%xmm1, %xmm0
- 20094              	.LBE2339:
- 20095              	.LBE2338:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 20096              		.loc 2 1686 0
- 20097 13162 660F7F85 		movdqa	%xmm0, -8304(%rbp)
- 20097      90DFFFFF 
- 20098              	.LBB2340:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 20099              		.loc 2 1687 0
- 20100 1316a 660F6F85 		movdqa	-8304(%rbp), %xmm0
- 20100      90DFFFFF 
- 20101 13172 F30F7F85 		movdqu	%xmm0, -5968(%rbp)
- 20101      B0E8FFFF 
- 20102 1317a E8000000 		call	KDbgWriterGet at PLT
- 20102      00
- 20103 1317f 4885C0   		testq	%rax, %rax
- 20104 13182 7479     		je	.L487
- 20105 13184 BF010000 		movl	$1, %edi
- 20105      00
- 20106 13189 E8000000 		call	KDbgCondToFlag at PLT
- 20106      00
- 20107 1318e 4889C6   		movq	%rax, %rsi
- 20108 13191 BF100000 		movl	$16, %edi
- 20108      00
- 20109 13196 E8000000 		call	KDbgTestModConds at PLT
- 20109      00
- 20110 1319b 84C0     		testb	%al, %al
- 20111 1319d 745E     		je	.L487
- 20112 1319f 8B85BCE8 		movl	-5956(%rbp), %eax
- 20112      FFFF
- 20113 131a5 89C7     		movl	%eax, %edi
- 20114 131a7 E854CEFE 		call	bswap_32
- 20114      FF
- 20115 131ac 4189C5   		movl	%eax, %r13d
- 20116 131af 8B85B8E8 		movl	-5960(%rbp), %eax
- 20116      FFFF
- 20117 131b5 89C7     		movl	%eax, %edi
- 20118 131b7 E844CEFE 		call	bswap_32
- 20118      FF
- 20119 131bc 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 618
-
-
- 20120 131bf 8B85B4E8 		movl	-5964(%rbp), %eax
- 20120      FFFF
- 20121 131c5 89C7     		movl	%eax, %edi
- 20122 131c7 E834CEFE 		call	bswap_32
- 20122      FF
- 20123 131cc 89C3     		movl	%eax, %ebx
- 20124 131ce 8B85B0E8 		movl	-5968(%rbp), %eax
- 20124      FFFF
- 20125 131d4 89C7     		movl	%eax, %edi
- 20126 131d6 E825CEFE 		call	bswap_32
- 20126      FF
- 20127 131db 4589E9   		movl	%r13d, %r9d
- 20128 131de 4589E0   		movl	%r12d, %r8d
- 20129 131e1 89D9     		movl	%ebx, %ecx
- 20130 131e3 89C2     		movl	%eax, %edx
- 20131 131e5 488D3500 		leaq	.LC3(%rip), %rsi
- 20131      000000
- 20132 131ec 488D3D00 		leaq	.LC1(%rip), %rdi
- 20132      000000
- 20133 131f3 B8000000 		movl	$0, %eax
- 20133      00
- 20134 131f8 E8000000 		call	KDbgMsg at PLT
- 20134      00
- 20135              	.L487:
- 20136 131fd 660F6F85 		movdqa	-8304(%rbp), %xmm0
- 20136      90DFFFFF 
- 20137 13205 F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 20137      60FFFFFF 
- 20138              	.LBE2340:
- 20139              	.LBB2341:
- 20140              	.LBB2342:
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 20141              		.loc 2 1357 0
- 20142 1320d F30F6F85 		movdqu	-160(%rbp), %xmm0
- 20142      60FFFFFF 
- 20143 13215 F30F7F85 		movdqu	%xmm0, -5760(%rbp)
- 20143      80E9FFFF 
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
- 20144              		.loc 2 1358 0
- 20145 1321d 8B858CE9 		movl	-5748(%rbp), %eax
- 20145      FFFF
- 20146 13223 898588E9 		movl	%eax, -5752(%rbp)
- 20146      FFFF
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
- 20147              		.loc 2 1359 0
- 20148 13229 8B858CE9 		movl	-5748(%rbp), %eax
- 20148      FFFF
- 20149 1322f 898584E9 		movl	%eax, -5756(%rbp)
- 20149      FFFF
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
- 20150              		.loc 2 1360 0
- 20151 13235 8B858CE9 		movl	-5748(%rbp), %eax
- 20151      FFFF
- 20152 1323b 898580E9 		movl	%eax, -5760(%rbp)
- 20152      FFFF
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 20153              		.loc 2 1361 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 619
-
-
- 20154 13241 F30F6F85 		movdqu	-5760(%rbp), %xmm0
- 20154      80E9FFFF 
- 20155              	.LBE2342:
- 20156              	.LBE2341:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 20157              		.loc 2 1688 0
- 20158 13249 660F7F85 		movdqa	%xmm0, -8304(%rbp)
- 20158      90DFFFFF 
- 20159              	.LBB2343:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 20160              		.loc 2 1689 0
- 20161 13251 660F6F85 		movdqa	-8304(%rbp), %xmm0
- 20161      90DFFFFF 
- 20162 13259 F30F7F85 		movdqu	%xmm0, -5984(%rbp)
- 20162      A0E8FFFF 
- 20163 13261 E8000000 		call	KDbgWriterGet at PLT
- 20163      00
- 20164 13266 4885C0   		testq	%rax, %rax
- 20165 13269 7479     		je	.L489
- 20166 1326b BF010000 		movl	$1, %edi
- 20166      00
- 20167 13270 E8000000 		call	KDbgCondToFlag at PLT
- 20167      00
- 20168 13275 4889C6   		movq	%rax, %rsi
- 20169 13278 BF100000 		movl	$16, %edi
- 20169      00
- 20170 1327d E8000000 		call	KDbgTestModConds at PLT
- 20170      00
- 20171 13282 84C0     		testb	%al, %al
- 20172 13284 745E     		je	.L489
- 20173 13286 8B85ACE8 		movl	-5972(%rbp), %eax
- 20173      FFFF
- 20174 1328c 89C7     		movl	%eax, %edi
- 20175 1328e E86DCDFE 		call	bswap_32
- 20175      FF
- 20176 13293 4189C5   		movl	%eax, %r13d
- 20177 13296 8B85A8E8 		movl	-5976(%rbp), %eax
- 20177      FFFF
- 20178 1329c 89C7     		movl	%eax, %edi
- 20179 1329e E85DCDFE 		call	bswap_32
- 20179      FF
- 20180 132a3 4189C4   		movl	%eax, %r12d
- 20181 132a6 8B85A4E8 		movl	-5980(%rbp), %eax
- 20181      FFFF
- 20182 132ac 89C7     		movl	%eax, %edi
- 20183 132ae E84DCDFE 		call	bswap_32
- 20183      FF
- 20184 132b3 89C3     		movl	%eax, %ebx
- 20185 132b5 8B85A0E8 		movl	-5984(%rbp), %eax
- 20185      FFFF
- 20186 132bb 89C7     		movl	%eax, %edi
- 20187 132bd E83ECDFE 		call	bswap_32
- 20187      FF
- 20188 132c2 4589E9   		movl	%r13d, %r9d
- 20189 132c5 4589E0   		movl	%r12d, %r8d
- 20190 132c8 89D9     		movl	%ebx, %ecx
- 20191 132ca 89C2     		movl	%eax, %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 620
-
-
- 20192 132cc 488D3500 		leaq	.LC4(%rip), %rsi
- 20192      000000
- 20193 132d3 488D3D00 		leaq	.LC1(%rip), %rdi
- 20193      000000
- 20194 132da B8000000 		movl	$0, %eax
- 20194      00
- 20195 132df E8000000 		call	KDbgMsg at PLT
- 20195      00
- 20196              	.L489:
- 20197              	.LBE2343:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 20198              		.loc 2 1690 0
- 20199 132e4 660F6F85 		movdqa	-8304(%rbp), %xmm0
- 20199      90DFFFFF 
- 20200              	.LBE2309:
- 20201              	.LBE2308:
-1938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(14,0x40);   /* k56 : k57 : k58 : k59 */
- 20202              		.loc 2 1938 0
- 20203 132ec F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 20203      E0E9FFFF 
- 20204 132f4 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 20204      C0E9FFFF 
- 20205 132fc F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 20205      70FFFFFF 
- 20206              	.LBB2344:
- 20207              	.LBB2345:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 20208              		.loc 2 1565 0
- 20209 13304 F30F6F85 		movdqu	-144(%rbp), %xmm0
- 20209      70FFFFFF 
- 20210 1330c 660F7F85 		movdqa	%xmm0, -8256(%rbp)
- 20210      C0DFFFFF 
- 20211 13314 660F6F85 		movdqa	-8256(%rbp), %xmm0
- 20211      C0DFFFFF 
- 20212 1331c F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 20212      80
- 20213              	.LBB2346:
- 20214              	.LBB2347:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 20215              		.loc 2 1282 0
- 20216 13321 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 20216      80
- 20217 13326 F30F7F85 		movdqu	%xmm0, -5744(%rbp)
- 20217      90E9FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 20218              		.loc 2 1283 0
- 20219 1332e 8B8598E9 		movl	-5736(%rbp), %eax
- 20219      FFFF
- 20220 13334 89859CE9 		movl	%eax, -5732(%rbp)
- 20220      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 20221              		.loc 2 1284 0
- 20222 1333a 8B8594E9 		movl	-5740(%rbp), %eax
- 20222      FFFF
- 20223 13340 898598E9 		movl	%eax, -5736(%rbp)
- 20223      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 621
-
-
- 20224              		.loc 2 1285 0
- 20225 13346 8B8590E9 		movl	-5744(%rbp), %eax
- 20225      FFFF
- 20226 1334c 898594E9 		movl	%eax, -5740(%rbp)
- 20226      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 20227              		.loc 2 1286 0
- 20228 13352 C78590E9 		movl	$0, -5744(%rbp)
- 20228      FFFF0000 
- 20228      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 20229              		.loc 2 1287 0
- 20230 1335c F30F6F85 		movdqu	-5744(%rbp), %xmm0
- 20230      90E9FFFF 
- 20231              	.LBE2347:
- 20232              	.LBE2346:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 20233              		.loc 2 1567 0
- 20234 13364 660F7F85 		movdqa	%xmm0, -8256(%rbp)
- 20234      C0DFFFFF 
- 20235 1336c 660F6F85 		movdqa	-8256(%rbp), %xmm0
- 20235      C0DFFFFF 
- 20236 13374 660FEF85 		pxor	-144(%rbp), %xmm0
- 20236      70FFFFFF 
- 20237 1337c F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 20237      70FFFFFF 
- 20238 13384 660F6F85 		movdqa	-8256(%rbp), %xmm0
- 20238      C0DFFFFF 
- 20239 1338c F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 20239      90
- 20240              	.LBB2348:
- 20241              	.LBB2349:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 20242              		.loc 2 1282 0
- 20243 13391 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 20243      90
- 20244 13396 F30F7F85 		movdqu	%xmm0, -5728(%rbp)
- 20244      A0E9FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 20245              		.loc 2 1283 0
- 20246 1339e 8B85A8E9 		movl	-5720(%rbp), %eax
- 20246      FFFF
- 20247 133a4 8985ACE9 		movl	%eax, -5716(%rbp)
- 20247      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 20248              		.loc 2 1284 0
- 20249 133aa 8B85A4E9 		movl	-5724(%rbp), %eax
- 20249      FFFF
- 20250 133b0 8985A8E9 		movl	%eax, -5720(%rbp)
- 20250      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 20251              		.loc 2 1285 0
- 20252 133b6 8B85A0E9 		movl	-5728(%rbp), %eax
- 20252      FFFF
- 20253 133bc 8985A4E9 		movl	%eax, -5724(%rbp)
- 20253      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 622
-
-
- 20254              		.loc 2 1286 0
- 20255 133c2 C785A0E9 		movl	$0, -5728(%rbp)
- 20255      FFFF0000 
- 20255      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 20256              		.loc 2 1287 0
- 20257 133cc F30F6F85 		movdqu	-5728(%rbp), %xmm0
- 20257      A0E9FFFF 
- 20258              	.LBE2349:
- 20259              	.LBE2348:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 20260              		.loc 2 1568 0
- 20261 133d4 660F7F85 		movdqa	%xmm0, -8256(%rbp)
- 20261      C0DFFFFF 
- 20262 133dc 660F6F85 		movdqa	-8256(%rbp), %xmm0
- 20262      C0DFFFFF 
- 20263 133e4 660FEF85 		pxor	-144(%rbp), %xmm0
- 20263      70FFFFFF 
- 20264 133ec F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 20264      70FFFFFF 
- 20265 133f4 660F6F85 		movdqa	-8256(%rbp), %xmm0
- 20265      C0DFFFFF 
- 20266 133fc F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 20266      A0
- 20267              	.LBB2350:
- 20268              	.LBB2351:
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
- 20269              		.loc 2 1282 0
- 20270 13401 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 20270      A0
- 20271 13406 F30F7F85 		movdqu	%xmm0, -5712(%rbp)
- 20271      B0E9FFFF 
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
- 20272              		.loc 2 1283 0
- 20273 1340e 8B85B8E9 		movl	-5704(%rbp), %eax
- 20273      FFFF
- 20274 13414 8985BCE9 		movl	%eax, -5700(%rbp)
- 20274      FFFF
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
- 20275              		.loc 2 1284 0
- 20276 1341a 8B85B4E9 		movl	-5708(%rbp), %eax
- 20276      FFFF
- 20277 13420 8985B8E9 		movl	%eax, -5704(%rbp)
- 20277      FFFF
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
- 20278              		.loc 2 1285 0
- 20279 13426 8B85B0E9 		movl	-5712(%rbp), %eax
- 20279      FFFF
- 20280 1342c 8985B4E9 		movl	%eax, -5708(%rbp)
- 20280      FFFF
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
- 20281              		.loc 2 1286 0
- 20282 13432 C785B0E9 		movl	$0, -5712(%rbp)
- 20282      FFFF0000 
- 20282      0000
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
- 20283              		.loc 2 1287 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 623
-
-
- 20284 1343c F30F6F85 		movdqu	-5712(%rbp), %xmm0
- 20284      B0E9FFFF 
- 20285              	.LBE2351:
- 20286              	.LBE2350:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 20287              		.loc 2 1569 0
- 20288 13444 660F7F85 		movdqa	%xmm0, -8256(%rbp)
- 20288      C0DFFFFF 
- 20289 1344c 660F6F85 		movdqa	-8256(%rbp), %xmm0
- 20289      C0DFFFFF 
- 20290 13454 660FEF85 		pxor	-144(%rbp), %xmm0
- 20290      70FFFFFF 
- 20291 1345c F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 20291      70FFFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20292              		.loc 2 1571 0
- 20293 13464 F30F6F85 		movdqu	-144(%rbp), %xmm0
- 20293      70FFFFFF 
- 20294              	.LBE2345:
- 20295              	.LBE2344:
-1938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(14,0x40);   /* k56 : k57 : k58 : k59 */
- 20296              		.loc 2 1938 0
- 20297 1346c F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 20297      C0E9FFFF 
- 20298 13474 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 20298      C0E9FFFF 
- 20299 1347c F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 20299      C0
- 20300 13481 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 20300      E0E9FFFF 
- 20301 13489 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 20301      B0
- 20302              	.LBB2352:
- 20303              	.LBB2353:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20304              		.loc 2 178 0
- 20305 1348e F30F6F45 		movdqu	-80(%rbp), %xmm0
- 20305      B0
- 20306 13493 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 20306      C0
- 20307 13498 660FEFC1 		pxor	%xmm1, %xmm0
- 20308              	.LBE2353:
- 20309              	.LBE2352:
-1938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(14,0x40);   /* k56 : k57 : k58 : k59 */
- 20310              		.loc 2 1938 0
- 20311 1349c F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 20311      C0E9FFFF 
- 20312 134a4 488B85D8 		movq	-8232(%rbp), %rax
- 20312      DFFFFF
- 20313 134ab 4805E000 		addq	$224, %rax
- 20313      0000
- 20314 134b1 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 20314      C0E9FFFF 
- 20315 134b9 F30F7F00 		movdqu	%xmm0, (%rax)
-1939:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20316              		.loc 2 1939 0
- 20317 134bd 4881C4A8 		addq	$8872, %rsp
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 624
-
-
- 20317      220000
- 20318 134c4 5B       		popq	%rbx
- 20319 134c5 415C     		popq	%r12
- 20320 134c7 415D     		popq	%r13
- 20321 134c9 415E     		popq	%r14
- 20322 134cb 415F     		popq	%r15
- 20323 134cd C9       		leave
- 20324 134ce C3       		ret
- 20325              		.cfi_endproc
- 20326              	.LFE565:
- 20327              		.size	KAESBlockCipherVecKeyExpansion256, .-KAESBlockCipherVecKeyExpansion256
- 20328              		.type	KAESBlockCipherVecEqInvKeyExpansion, @function
- 20329              	KAESBlockCipherVecEqInvKeyExpansion:
- 20330              	.LFB566:
-1951:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20331              		.loc 2 1951 0
- 20332              		.cfi_startproc
- 20333 134cf 55       		pushq	%rbp
- 20334              	.LCFI8:
- 20335              		.cfi_def_cfa_offset 16
- 20336 134d0 4889E5   		movq	%rsp, %rbp
- 20337              		.cfi_offset 6, -16
- 20338              	.LCFI9:
- 20339              		.cfi_def_cfa_register 6
- 20340 134d3 53       		pushq	%rbx
- 20341 134d4 4881ECD0 		subq	$720, %rsp
- 20341      020000
- 20342 134db 4889BD28 		movq	%rdi, -728(%rbp)
- 20342      FDFFFF
- 20343 134e2 4889B520 		movq	%rsi, -736(%rbp)
- 20343      FDFFFF
- 20344 134e9 89951CFD 		movl	%edx, -740(%rbp)
- 20344      FFFF
-1954:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     jx = Nr;
- 20345              		.loc 2 1954 0
- 20346 134ef 8B851CFD 		movl	-740(%rbp), %eax
- 20346      FFFF
- 20347 134f5 8985FCFD 		movl	%eax, -516(%rbp)
- 20347      FFFF
-1955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ix = 0;
- 20348              		.loc 2 1955 0
- 20349 134fb C785F8FD 		movl	$0, -520(%rbp)
- 20349      FFFF0000 
- 20349      0000
-1956:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix++] = dr[jx--];
- 20350              		.loc 2 1956 0
- 20351 13505 8B85F8FD 		mov	-520(%rbp), %eax
- 20351      FFFF
- 20352 1350b 48C1E004 		salq	$4, %rax
- 20353 1350f 48038528 		addq	-728(%rbp), %rax
- 20353      FDFFFF
- 20354 13516 8B95FCFD 		mov	-516(%rbp), %edx
- 20354      FFFF
- 20355 1351c 48C1E204 		salq	$4, %rdx
- 20356 13520 48039520 		addq	-736(%rbp), %rdx
- 20356      FDFFFF
- 20357 13527 660F6F02 		movdqa	(%rdx), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 625
-
-
- 20358 1352b 660F7F00 		movdqa	%xmm0, (%rax)
- 20359 1352f 8385F8FD 		addl	$1, -520(%rbp)
- 20359      FFFF01
- 20360 13536 83ADFCFD 		subl	$1, -516(%rbp)
- 20360      FFFF01
-1957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     while (jx)
- 20361              		.loc 2 1957 0
- 20362 1353d E91F0600 		jmp	.L492
- 20362      00
- 20363              		.cfi_offset 3, -24
- 20364              	.L507:
-1958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         r[ix++] = AESBCMEMBER(InvMixColumns)(dr[jx--]);
- 20365              		.loc 2 1958 0
- 20366 13542 8B85F8FD 		mov	-520(%rbp), %eax
- 20366      FFFF
- 20367 13548 48C1E004 		salq	$4, %rax
- 20368 1354c 48038528 		addq	-728(%rbp), %rax
- 20368      FDFFFF
- 20369 13553 8B95FCFD 		mov	-516(%rbp), %edx
- 20369      FFFF
- 20370 13559 48C1E204 		salq	$4, %rdx
- 20371 1355d 48039520 		addq	-736(%rbp), %rdx
- 20371      FDFFFF
- 20372 13564 660F6F02 		movdqa	(%rdx), %xmm0
- 20373 13568 83ADFCFD 		subl	$1, -516(%rbp)
- 20373      FFFF01
- 20374 1356f F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 20374      00FEFFFF 
- 20375 13577 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 20375      00FEFFFF 
- 20376 1357f F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 20376      20FEFFFF 
- 20377              	.LBB2397:
- 20378              	.LBB2398:
- 20379              	.LBB2399:
- 20380              	.LBB2400:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 20381              		.loc 2 667 0
- 20382 13587 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 20382      00000000 
- 20383 1358f F30F6F8D 		movdqu	-480(%rbp), %xmm1
- 20383      20FEFFFF 
- 20384 13597 F30F7F8D 		movdqu	%xmm1, -448(%rbp)
- 20384      40FEFFFF 
- 20385 1359f F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 20385      30FEFFFF 
- 20386              	.LBB2401:
- 20387              	.LBB2402:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 20388              		.loc 2 380 0
- 20389 135a7 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 20389      40FEFFFF 
- 20390 135af F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 20390      70FDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 20391              		.loc 2 381 0
- 20392 135b7 F30F6F85 		movdqu	-464(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 626
-
-
- 20392      30FEFFFF 
- 20393 135bf F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 20393      60FDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20394              		.loc 2 383 0
- 20395 135c7 C7855CFE 		movl	$0, -420(%rbp)
- 20395      FFFF0000 
- 20395      0000
- 20396 135d1 EB5D     		jmp	.L493
- 20397              	.L496:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 20398              		.loc 2 385 0
- 20399 135d3 8B955CFE 		movl	-420(%rbp), %edx
- 20399      FFFF
- 20400 135d9 89D2     		mov	%edx, %edx
- 20401 135db 0FB69415 		movzbl	-672(%rbp,%rdx), %edx
- 20401      60FDFFFF 
- 20402 135e3 84D2     		testb	%dl, %dl
- 20403 135e5 7912     		jns	.L494
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 20404              		.loc 2 386 0
- 20405 135e7 8B955CFE 		movl	-420(%rbp), %edx
- 20405      FFFF
- 20406 135ed 89D2     		mov	%edx, %edx
- 20407 135ef C6841580 		movb	$0, -640(%rbp,%rdx)
- 20407      FDFFFF00 
- 20408 135f7 EB30     		jmp	.L495
- 20409              	.L494:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 20410              		.loc 2 388 0
- 20411 135f9 8B9D5CFE 		movl	-420(%rbp), %ebx
- 20411      FFFF
- 20412 135ff 8B955CFE 		movl	-420(%rbp), %edx
- 20412      FFFF
- 20413 13605 89D2     		mov	%edx, %edx
- 20414 13607 0FB69415 		movzbl	-672(%rbp,%rdx), %edx
- 20414      60FDFFFF 
- 20415 1360f 0FB6D2   		movzbl	%dl, %edx
- 20416 13612 83E20F   		andl	$15, %edx
- 20417 13615 4863D2   		movslq	%edx,%rdx
- 20418 13618 0FB68C15 		movzbl	-656(%rbp,%rdx), %ecx
- 20418      70FDFFFF 
- 20419 13620 89DA     		mov	%ebx, %edx
- 20420 13622 888C1580 		movb	%cl, -640(%rbp,%rdx)
- 20420      FDFFFF
- 20421              	.L495:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20422              		.loc 2 383 0
- 20423 13629 83855CFE 		addl	$1, -420(%rbp)
- 20423      FFFF01
- 20424              	.L493:
- 20425 13630 83BD5CFE 		cmpl	$15, -420(%rbp)
- 20425      FFFF0F
- 20426 13637 769A     		jbe	.L496
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 20427              		.loc 2 391 0
- 20428 13639 F30F6F85 		movdqu	-640(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 627
-
-
- 20428      80FDFFFF 
- 20429              	.LBE2402:
- 20430              	.LBE2401:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 20431              		.loc 2 667 0
- 20432 13641 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 20432      20FEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20433              		.loc 2 668 0
- 20434 13649 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 20434      20FEFFFF 
- 20435              	.LBE2400:
- 20436              	.LBE2399:
-1106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r1 = AESBCMEMBER(RotBytesLeft) (state);
- 20437              		.loc 2 1106 0
- 20438 13651 660F7F85 		movdqa	%xmm0, -768(%rbp)
- 20438      00FDFFFF 
- 20439 13659 660F6F85 		movdqa	-768(%rbp), %xmm0
- 20439      00FDFFFF 
- 20440 13661 F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 20440      60FEFFFF 
- 20441              	.LBB2403:
- 20442              	.LBB2404:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 20443              		.loc 2 667 0
- 20444 13669 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 20444      00000000 
- 20445 13671 F30F6F8D 		movdqu	-416(%rbp), %xmm1
- 20445      60FEFFFF 
- 20446 13679 F30F7F8D 		movdqu	%xmm1, -384(%rbp)
- 20446      80FEFFFF 
- 20447 13681 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 20447      70FEFFFF 
- 20448              	.LBB2405:
- 20449              	.LBB2406:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 20450              		.loc 2 380 0
- 20451 13689 F30F6F85 		movdqu	-384(%rbp), %xmm0
- 20451      80FEFFFF 
- 20452 13691 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 20452      A0FDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 20453              		.loc 2 381 0
- 20454 13699 F30F6F85 		movdqu	-400(%rbp), %xmm0
- 20454      70FEFFFF 
- 20455 136a1 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 20455      90FDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20456              		.loc 2 383 0
- 20457 136a9 C7859CFE 		movl	$0, -356(%rbp)
- 20457      FFFF0000 
- 20457      0000
- 20458 136b3 EB5D     		jmp	.L497
- 20459              	.L500:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 20460              		.loc 2 385 0
- 20461 136b5 8B959CFE 		movl	-356(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 628
-
-
- 20461      FFFF
- 20462 136bb 89D2     		mov	%edx, %edx
- 20463 136bd 0FB69415 		movzbl	-624(%rbp,%rdx), %edx
- 20463      90FDFFFF 
- 20464 136c5 84D2     		testb	%dl, %dl
- 20465 136c7 7912     		jns	.L498
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 20466              		.loc 2 386 0
- 20467 136c9 8B959CFE 		movl	-356(%rbp), %edx
- 20467      FFFF
- 20468 136cf 89D2     		mov	%edx, %edx
- 20469 136d1 C68415B0 		movb	$0, -592(%rbp,%rdx)
- 20469      FDFFFF00 
- 20470 136d9 EB30     		jmp	.L499
- 20471              	.L498:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 20472              		.loc 2 388 0
- 20473 136db 8B9D9CFE 		movl	-356(%rbp), %ebx
- 20473      FFFF
- 20474 136e1 8B959CFE 		movl	-356(%rbp), %edx
- 20474      FFFF
- 20475 136e7 89D2     		mov	%edx, %edx
- 20476 136e9 0FB69415 		movzbl	-624(%rbp,%rdx), %edx
- 20476      90FDFFFF 
- 20477 136f1 0FB6D2   		movzbl	%dl, %edx
- 20478 136f4 83E20F   		andl	$15, %edx
- 20479 136f7 4863D2   		movslq	%edx,%rdx
- 20480 136fa 0FB68C15 		movzbl	-608(%rbp,%rdx), %ecx
- 20480      A0FDFFFF 
- 20481 13702 89DA     		mov	%ebx, %edx
- 20482 13704 888C15B0 		movb	%cl, -592(%rbp,%rdx)
- 20482      FDFFFF
- 20483              	.L499:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20484              		.loc 2 383 0
- 20485 1370b 83859CFE 		addl	$1, -356(%rbp)
- 20485      FFFF01
- 20486              	.L497:
- 20487 13712 83BD9CFE 		cmpl	$15, -356(%rbp)
- 20487      FFFF0F
- 20488 13719 769A     		jbe	.L500
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 20489              		.loc 2 391 0
- 20490 1371b F30F6F85 		movdqu	-592(%rbp), %xmm0
- 20490      B0FDFFFF 
- 20491              	.LBE2406:
- 20492              	.LBE2405:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 20493              		.loc 2 667 0
- 20494 13723 F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 20494      60FEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20495              		.loc 2 668 0
- 20496 1372b F30F6F85 		movdqu	-416(%rbp), %xmm0
- 20496      60FEFFFF 
- 20497              	.LBE2404:
- 20498              	.LBE2403:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 629
-
-
-1107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r2 = AESBCMEMBER(RotBytesLeft) (r1);
- 20499              		.loc 2 1107 0
- 20500 13733 660F7F85 		movdqa	%xmm0, -784(%rbp)
- 20500      F0FCFFFF 
- 20501 1373b 660F6F85 		movdqa	-784(%rbp), %xmm0
- 20501      F0FCFFFF 
- 20502 13743 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 20502      A0FEFFFF 
- 20503              	.LBB2407:
- 20504              	.LBB2408:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 20505              		.loc 2 667 0
- 20506 1374b 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 20506      00000000 
- 20507 13753 F30F6F8D 		movdqu	-352(%rbp), %xmm1
- 20507      A0FEFFFF 
- 20508 1375b F30F7F8D 		movdqu	%xmm1, -320(%rbp)
- 20508      C0FEFFFF 
- 20509 13763 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 20509      B0FEFFFF 
- 20510              	.LBB2409:
- 20511              	.LBB2410:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 20512              		.loc 2 380 0
- 20513 1376b F30F6F85 		movdqu	-320(%rbp), %xmm0
- 20513      C0FEFFFF 
- 20514 13773 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 20514      D0FDFFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 20515              		.loc 2 381 0
- 20516 1377b F30F6F85 		movdqu	-336(%rbp), %xmm0
- 20516      B0FEFFFF 
- 20517 13783 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 20517      C0FDFFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20518              		.loc 2 383 0
- 20519 1378b C785DCFE 		movl	$0, -292(%rbp)
- 20519      FFFF0000 
- 20519      0000
- 20520 13795 EB5D     		jmp	.L501
- 20521              	.L504:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 20522              		.loc 2 385 0
- 20523 13797 8B95DCFE 		movl	-292(%rbp), %edx
- 20523      FFFF
- 20524 1379d 89D2     		mov	%edx, %edx
- 20525 1379f 0FB69415 		movzbl	-576(%rbp,%rdx), %edx
- 20525      C0FDFFFF 
- 20526 137a7 84D2     		testb	%dl, %dl
- 20527 137a9 7912     		jns	.L502
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 20528              		.loc 2 386 0
- 20529 137ab 8B95DCFE 		movl	-292(%rbp), %edx
- 20529      FFFF
- 20530 137b1 89D2     		mov	%edx, %edx
- 20531 137b3 C68415E0 		movb	$0, -544(%rbp,%rdx)
- 20531      FDFFFF00 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 630
-
-
- 20532 137bb EB30     		jmp	.L503
- 20533              	.L502:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 20534              		.loc 2 388 0
- 20535 137bd 8B9DDCFE 		movl	-292(%rbp), %ebx
- 20535      FFFF
- 20536 137c3 8B95DCFE 		movl	-292(%rbp), %edx
- 20536      FFFF
- 20537 137c9 89D2     		mov	%edx, %edx
- 20538 137cb 0FB69415 		movzbl	-576(%rbp,%rdx), %edx
- 20538      C0FDFFFF 
- 20539 137d3 0FB6D2   		movzbl	%dl, %edx
- 20540 137d6 83E20F   		andl	$15, %edx
- 20541 137d9 4863D2   		movslq	%edx,%rdx
- 20542 137dc 0FB68C15 		movzbl	-560(%rbp,%rdx), %ecx
- 20542      D0FDFFFF 
- 20543 137e4 89DA     		mov	%ebx, %edx
- 20544 137e6 888C15E0 		movb	%cl, -544(%rbp,%rdx)
- 20544      FDFFFF
- 20545              	.L503:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 20546              		.loc 2 383 0
- 20547 137ed 8385DCFE 		addl	$1, -292(%rbp)
- 20547      FFFF01
- 20548              	.L501:
- 20549 137f4 83BDDCFE 		cmpl	$15, -292(%rbp)
- 20549      FFFF0F
- 20550 137fb 769A     		jbe	.L504
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 20551              		.loc 2 391 0
- 20552 137fd F30F6F85 		movdqu	-544(%rbp), %xmm0
- 20552      E0FDFFFF 
- 20553              	.LBE2410:
- 20554              	.LBE2409:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 20555              		.loc 2 667 0
- 20556 13805 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 20556      A0FEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20557              		.loc 2 668 0
- 20558 1380d F30F6F85 		movdqu	-352(%rbp), %xmm0
- 20558      A0FEFFFF 
- 20559              	.LBE2408:
- 20560              	.LBE2407:
-1108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r3 = AESBCMEMBER(RotBytesLeft) (r2);        
- 20561              		.loc 2 1108 0
- 20562 13815 660F7F85 		movdqa	%xmm0, -800(%rbp)
- 20562      E0FCFFFF 
- 20563 1381d F30F6F85 		movdqu	-512(%rbp), %xmm0
- 20563      00FEFFFF 
- 20564 13825 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 20564      F0FEFFFF 
- 20565 1382d 660F6F85 		movdqa	-784(%rbp), %xmm0
- 20565      F0FCFFFF 
- 20566 13835 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 20566      E0FEFFFF 
- 20567              	.LBB2411:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 631
-
-
- 20568              	.LBB2412:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20569              		.loc 2 178 0
- 20570 1383d F30F6F85 		movdqu	-288(%rbp), %xmm0
- 20570      E0FEFFFF 
- 20571 13845 F30F6F8D 		movdqu	-272(%rbp), %xmm1
- 20571      F0FEFFFF 
- 20572 1384d 660FEFC1 		pxor	%xmm1, %xmm0
- 20573              	.LBE2412:
- 20574              	.LBE2411:
-1110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(VecXor) (state, r2);
- 20575              		.loc 2 1110 0
- 20576 13851 660F7F85 		movdqa	%xmm0, -832(%rbp)
- 20576      C0FCFFFF 
- 20577 13859 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 20577      00FEFFFF 
- 20578 13861 F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 20578      10FFFFFF 
- 20579 13869 660F6F85 		movdqa	-768(%rbp), %xmm0
- 20579      00FDFFFF 
- 20580 13871 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 20580      00FFFFFF 
- 20581              	.LBB2413:
- 20582              	.LBB2414:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20583              		.loc 2 178 0
- 20584 13879 F30F6F85 		movdqu	-256(%rbp), %xmm0
- 20584      00FFFFFF 
- 20585 13881 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 20585      10FFFFFF 
- 20586 13889 660FEFC1 		pxor	%xmm1, %xmm0
- 20587              	.LBE2414:
- 20588              	.LBE2413:
-1111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(VecXor) (state, r1);
- 20589              		.loc 2 1111 0
- 20590 1388d 660F7F85 		movdqa	%xmm0, -816(%rbp)
- 20590      D0FCFFFF 
- 20591 13895 660F6F85 		movdqa	-784(%rbp), %xmm0
- 20591      F0FCFFFF 
- 20592 1389d F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 20592      30FFFFFF 
- 20593 138a5 660F6F85 		movdqa	-800(%rbp), %xmm0
- 20593      E0FCFFFF 
- 20594 138ad F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 20594      20FFFFFF 
- 20595              	.LBB2415:
- 20596              	.LBB2416:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20597              		.loc 2 178 0
- 20598 138b5 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 20598      20FFFFFF 
- 20599 138bd F30F6F8D 		movdqu	-208(%rbp), %xmm1
- 20599      30FFFFFF 
- 20600 138c5 660FEFC1 		pxor	%xmm1, %xmm0
- 20601              	.LBE2416:
- 20602              	.LBE2415:
-1112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (r2, r3);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 632
-
-
- 20603              		.loc 2 1112 0
- 20604 138c9 660F7F85 		movdqa	%xmm0, -848(%rbp)
- 20604      B0FCFFFF 
- 20605 138d1 660F6F85 		movdqa	-848(%rbp), %xmm0
- 20605      B0FCFFFF 
- 20606 138d9 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 20606      50FFFFFF 
- 20607 138e1 660F6F85 		movdqa	-768(%rbp), %xmm0
- 20607      00FDFFFF 
- 20608 138e9 F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 20608      40FFFFFF 
- 20609              	.LBB2417:
- 20610              	.LBB2418:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20611              		.loc 2 178 0
- 20612 138f1 F30F6F85 		movdqu	-192(%rbp), %xmm0
- 20612      40FFFFFF 
- 20613 138f9 F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 20613      50FFFFFF 
- 20614 13901 660FEFC1 		pxor	%xmm1, %xmm0
- 20615              	.LBE2418:
- 20616              	.LBE2417:
-1113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (f8, r1);
- 20617              		.loc 2 1113 0
- 20618 13905 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 20618      00FEFFFF 
- 20619 1390d 660F6F85 		movdqa	-848(%rbp), %xmm0
- 20619      B0FCFFFF 
- 20620 13915 F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 20620      70FFFFFF 
- 20621 1391d 660F6F85 		movdqa	-816(%rbp), %xmm0
- 20621      D0FCFFFF 
- 20622 13925 F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 20622      60FFFFFF 
- 20623              	.LBB2419:
- 20624              	.LBB2420:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20625              		.loc 2 178 0
- 20626 1392d F30F6F85 		movdqu	-160(%rbp), %xmm0
- 20626      60FFFFFF 
- 20627 13935 F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 20627      70FFFFFF 
- 20628 1393d 660FEFC1 		pxor	%xmm1, %xmm0
- 20629              	.LBE2420:
- 20630              	.LBE2419:
-1114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (f8, f2);
- 20631              		.loc 2 1114 0
- 20632 13941 660F7F85 		movdqa	%xmm0, -848(%rbp)
- 20632      B0FCFFFF 
- 20633              	.LBB2421:
-1126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu2.state = f2;
- 20634              		.loc 2 1126 0
- 20635 13949 660F6F85 		movdqa	-816(%rbp), %xmm0
- 20635      D0FCFFFF 
- 20636 13951 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 20636      50FDFFFF 
-1127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu4.state = f4;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 633
-
-
- 20637              		.loc 2 1127 0
- 20638 13959 660F6F85 		movdqa	-832(%rbp), %xmm0
- 20638      C0FCFFFF 
- 20639 13961 F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 20639      40FDFFFF 
-1128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu8.state = f8;
- 20640              		.loc 2 1128 0
- 20641 13969 660F6F85 		movdqa	-848(%rbp), %xmm0
- 20641      B0FCFFFF 
- 20642 13971 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 20642      30FDFFFF 
-1130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof fu2; ++ix)
- 20643              		.loc 2 1130 0
- 20644 13979 C7851CFE 		movl	$0, -484(%rbp)
- 20644      FFFF0000 
- 20644      0000
- 20645 13983 E9F90000 		jmp	.L505
- 20645      00
- 20646              	.L506:
-1132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
- 20647              		.loc 2 1132 0
- 20648 13988 8B9D1CFE 		movl	-484(%rbp), %ebx
- 20648      FFFF
- 20649 1398e 8B951CFE 		movl	-484(%rbp), %edx
- 20649      FFFF
- 20650 13994 89D2     		mov	%edx, %edx
- 20651 13996 0FB69415 		movzbl	-688(%rbp,%rdx), %edx
- 20651      50FDFFFF 
- 20652 1399e 0FB6D2   		movzbl	%dl, %edx
- 20653 139a1 88558A   		movb	%dl, -118(%rbp)
- 20654              	.LBB2422:
- 20655              	.LBB2423:
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
- 20656              		.loc 2 1012 0
- 20657 139a4 0FB6558A 		movzbl	-118(%rbp), %edx
- 20658 139a8 01D2     		addl	%edx, %edx
- 20659 139aa 89D6     		movl	%edx, %esi
- 20660 139ac 0FB6558A 		movzbl	-118(%rbp), %edx
- 20661 139b0 C0EA07   		shrb	$7, %dl
- 20662 139b3 0FB6D2   		movzbl	%dl, %edx
- 20663 139b6 88558B   		movb	%dl, -117(%rbp)
- 20664              	.LBB2424:
- 20665              	.LBB2425:
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
- 20666              		.loc 2 1001 0
- 20667 139b9 0FB6558B 		movzbl	-117(%rbp), %edx
- 20668 139bd 4863CA   		movslq	%edx,%rcx
- 20669 139c0 488D1500 		leaq	KAESBlockCipherVecFFtable(%rip), %rdx
- 20669      000000
- 20670 139c7 0FB61411 		movzbl	(%rcx,%rdx), %edx
- 20671              	.LBE2425:
- 20672              	.LBE2424:
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
- 20673              		.loc 2 1012 0
- 20674 139cb 31F2     		xorl	%esi, %edx
-1132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
- 20675              		.loc 2 1132 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 634
-
-
- 20676 139cd 89D1     		movl	%edx, %ecx
- 20677              	.LBE2423:
- 20678              	.LBE2422:
- 20679 139cf 89DA     		mov	%ebx, %edx
- 20680 139d1 888C1550 		movb	%cl, -688(%rbp,%rdx)
- 20680      FDFFFF
-1133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
- 20681              		.loc 2 1133 0
- 20682 139d8 8B9D1CFE 		movl	-484(%rbp), %ebx
- 20682      FFFF
- 20683 139de 8B951CFE 		movl	-484(%rbp), %edx
- 20683      FFFF
- 20684 139e4 89D2     		mov	%edx, %edx
- 20685 139e6 0FB69415 		movzbl	-704(%rbp,%rdx), %edx
- 20685      40FDFFFF 
- 20686 139ee 0FB6D2   		movzbl	%dl, %edx
- 20687 139f1 88558C   		movb	%dl, -116(%rbp)
- 20688              	.LBB2426:
- 20689              	.LBB2427:
-1023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
- 20690              		.loc 2 1023 0
- 20691 139f4 0FB6558C 		movzbl	-116(%rbp), %edx
- 20692 139f8 C1E202   		sall	$2, %edx
- 20693 139fb 89D6     		movl	%edx, %esi
- 20694 139fd 0FB6558C 		movzbl	-116(%rbp), %edx
- 20695 13a01 C0EA06   		shrb	$6, %dl
- 20696 13a04 0FB6D2   		movzbl	%dl, %edx
- 20697 13a07 88558D   		movb	%dl, -115(%rbp)
- 20698              	.LBB2428:
- 20699              	.LBB2429:
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
- 20700              		.loc 2 1001 0
- 20701 13a0a 0FB6558D 		movzbl	-115(%rbp), %edx
- 20702 13a0e 4863CA   		movslq	%edx,%rcx
- 20703 13a11 488D1500 		leaq	KAESBlockCipherVecFFtable(%rip), %rdx
- 20703      000000
- 20704 13a18 0FB61411 		movzbl	(%rcx,%rdx), %edx
- 20705              	.LBE2429:
- 20706              	.LBE2428:
-1023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
- 20707              		.loc 2 1023 0
- 20708 13a1c 31F2     		xorl	%esi, %edx
-1133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
- 20709              		.loc 2 1133 0
- 20710 13a1e 89D1     		movl	%edx, %ecx
- 20711              	.LBE2427:
- 20712              	.LBE2426:
- 20713 13a20 89DA     		mov	%ebx, %edx
- 20714 13a22 888C1540 		movb	%cl, -704(%rbp,%rdx)
- 20714      FDFFFF
-1134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
- 20715              		.loc 2 1134 0
- 20716 13a29 8B9D1CFE 		movl	-484(%rbp), %ebx
- 20716      FFFF
- 20717 13a2f 8B951CFE 		movl	-484(%rbp), %edx
- 20717      FFFF
- 20718 13a35 89D2     		mov	%edx, %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 635
-
-
- 20719 13a37 0FB69415 		movzbl	-720(%rbp,%rdx), %edx
- 20719      30FDFFFF 
- 20720 13a3f 0FB6D2   		movzbl	%dl, %edx
- 20721 13a42 88558E   		movb	%dl, -114(%rbp)
- 20722              	.LBB2430:
- 20723              	.LBB2431:
-1034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
- 20724              		.loc 2 1034 0
- 20725 13a45 0FB6558E 		movzbl	-114(%rbp), %edx
- 20726 13a49 C1E203   		sall	$3, %edx
- 20727 13a4c 89D6     		movl	%edx, %esi
- 20728 13a4e 0FB6558E 		movzbl	-114(%rbp), %edx
- 20729 13a52 C0EA05   		shrb	$5, %dl
- 20730 13a55 0FB6D2   		movzbl	%dl, %edx
- 20731 13a58 88558F   		movb	%dl, -113(%rbp)
- 20732              	.LBB2432:
- 20733              	.LBB2433:
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
- 20734              		.loc 2 1001 0
- 20735 13a5b 0FB6558F 		movzbl	-113(%rbp), %edx
- 20736 13a5f 4863CA   		movslq	%edx,%rcx
- 20737 13a62 488D1500 		leaq	KAESBlockCipherVecFFtable(%rip), %rdx
- 20737      000000
- 20738 13a69 0FB61411 		movzbl	(%rcx,%rdx), %edx
- 20739              	.LBE2433:
- 20740              	.LBE2432:
-1034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
- 20741              		.loc 2 1034 0
- 20742 13a6d 31F2     		xorl	%esi, %edx
-1134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
- 20743              		.loc 2 1134 0
- 20744 13a6f 89D1     		movl	%edx, %ecx
- 20745              	.LBE2431:
- 20746              	.LBE2430:
- 20747 13a71 89DA     		mov	%ebx, %edx
- 20748 13a73 888C1530 		movb	%cl, -720(%rbp,%rdx)
- 20748      FDFFFF
-1130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof fu2; ++ix)
- 20749              		.loc 2 1130 0
- 20750 13a7a 83851CFE 		addl	$1, -484(%rbp)
- 20750      FFFF01
- 20751              	.L505:
- 20752 13a81 83BD1CFE 		cmpl	$15, -484(%rbp)
- 20752      FFFF0F
- 20753 13a88 0F86FAFE 		jbe	.L506
- 20753      FFFF
-1136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f2 = fu2.state;
- 20754              		.loc 2 1136 0
- 20755 13a8e F30F6F85 		movdqu	-688(%rbp), %xmm0
- 20755      50FDFFFF 
- 20756 13a96 660F7F85 		movdqa	%xmm0, -816(%rbp)
- 20756      D0FCFFFF 
-1137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f4 = fu4.state;
- 20757              		.loc 2 1137 0
- 20758 13a9e F30F6F85 		movdqu	-704(%rbp), %xmm0
- 20758      40FDFFFF 
- 20759 13aa6 660F7F85 		movdqa	%xmm0, -832(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 636
-
-
- 20759      C0FCFFFF 
-1138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f8 = fu8.state;
- 20760              		.loc 2 1138 0
- 20761 13aae F30F6F85 		movdqu	-720(%rbp), %xmm0
- 20761      30FDFFFF 
- 20762 13ab6 660F7F85 		movdqa	%xmm0, -848(%rbp)
- 20762      B0FCFFFF 
- 20763 13abe F30F6F85 		movdqu	-512(%rbp), %xmm0
- 20763      00FEFFFF 
- 20764 13ac6 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 20764      A0
- 20765 13acb 660F6F85 		movdqa	-816(%rbp), %xmm0
- 20765      D0FCFFFF 
- 20766 13ad3 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 20766      90
- 20767              	.LBE2421:
- 20768              	.LBB2434:
- 20769              	.LBB2435:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20770              		.loc 2 178 0
- 20771 13ad8 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 20771      90
- 20772 13add F30F6F4D 		movdqu	-96(%rbp), %xmm1
- 20772      A0
- 20773 13ae2 660FEFC1 		pxor	%xmm1, %xmm0
- 20774              	.LBE2435:
- 20775              	.LBE2434:
-1142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f2);
- 20776              		.loc 2 1142 0
- 20777 13ae6 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 20777      00FEFFFF 
- 20778 13aee F30F6F85 		movdqu	-512(%rbp), %xmm0
- 20778      00FEFFFF 
- 20779 13af6 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 20779      C0
- 20780 13afb 660F6F85 		movdqa	-832(%rbp), %xmm0
- 20780      C0FCFFFF 
- 20781 13b03 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 20781      B0
- 20782              	.LBB2436:
- 20783              	.LBB2437:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20784              		.loc 2 178 0
- 20785 13b08 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 20785      B0
- 20786 13b0d F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 20786      C0
- 20787 13b12 660FEFC1 		pxor	%xmm1, %xmm0
- 20788              	.LBE2437:
- 20789              	.LBE2436:
-1143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f4);
- 20790              		.loc 2 1143 0
- 20791 13b16 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 20791      00FEFFFF 
- 20792 13b1e F30F6F85 		movdqu	-512(%rbp), %xmm0
- 20792      00FEFFFF 
- 20793 13b26 F30F7F45 		movdqu	%xmm0, -32(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 637
-
-
- 20793      E0
- 20794 13b2b 660F6F85 		movdqa	-848(%rbp), %xmm0
- 20794      B0FCFFFF 
- 20795 13b33 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 20795      D0
- 20796              	.LBB2438:
- 20797              	.LBB2439:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20798              		.loc 2 178 0
- 20799 13b38 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 20799      D0
- 20800 13b3d F30F6F4D 		movdqu	-32(%rbp), %xmm1
- 20800      E0
- 20801 13b42 660FEFC1 		pxor	%xmm1, %xmm0
- 20802              	.LBE2439:
- 20803              	.LBE2438:
-1144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f8);
- 20804              		.loc 2 1144 0
- 20805 13b46 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 20805      00FEFFFF 
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20806              		.loc 2 1148 0
- 20807 13b4e F30F6F85 		movdqu	-512(%rbp), %xmm0
- 20807      00FEFFFF 
- 20808              	.LBE2398:
- 20809              	.LBE2397:
-1958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         r[ix++] = AESBCMEMBER(InvMixColumns)(dr[jx--]);
- 20810              		.loc 2 1958 0
- 20811 13b56 660F7F00 		movdqa	%xmm0, (%rax)
- 20812 13b5a 8385F8FD 		addl	$1, -520(%rbp)
- 20812      FFFF01
- 20813              	.L492:
-1957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     while (jx)
- 20814              		.loc 2 1957 0
- 20815 13b61 83BDFCFD 		cmpl	$0, -516(%rbp)
- 20815      FFFF00
- 20816 13b68 0F85D4F9 		jne	.L507
- 20816      FFFF
-1959:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix] = dr[jx];
- 20817              		.loc 2 1959 0
- 20818 13b6e 8B85F8FD 		mov	-520(%rbp), %eax
- 20818      FFFF
- 20819 13b74 48C1E004 		salq	$4, %rax
- 20820 13b78 48038528 		addq	-728(%rbp), %rax
- 20820      FDFFFF
- 20821 13b7f 8B95FCFD 		mov	-516(%rbp), %edx
- 20821      FFFF
- 20822 13b85 48C1E204 		salq	$4, %rdx
- 20823 13b89 48039520 		addq	-736(%rbp), %rdx
- 20823      FDFFFF
- 20824 13b90 660F6F02 		movdqa	(%rdx), %xmm0
- 20825 13b94 660F7F00 		movdqa	%xmm0, (%rax)
-1960:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20826              		.loc 2 1960 0
- 20827 13b98 4881C4D0 		addq	$720, %rsp
- 20827      020000
- 20828 13b9f 5B       		popq	%rbx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 638
-
-
- 20829 13ba0 C9       		leave
- 20830 13ba1 C3       		ret
- 20831              		.cfi_endproc
- 20832              	.LFE566:
- 20833              		.size	KAESBlockCipherVecEqInvKeyExpansion, .-KAESBlockCipherVecEqInvKeyExpansion
- 20834              		.type	KAESBlockCipherVecEqInvKeyExpansion128, @function
- 20835              	KAESBlockCipherVecEqInvKeyExpansion128:
- 20836              	.LFB567:
-1965:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20837              		.loc 2 1965 0
- 20838              		.cfi_startproc
- 20839 13ba2 55       		pushq	%rbp
- 20840              	.LCFI10:
- 20841              		.cfi_def_cfa_offset 16
- 20842 13ba3 4889E5   		movq	%rsp, %rbp
- 20843              		.cfi_offset 6, -16
- 20844              	.LCFI11:
- 20845              		.cfi_def_cfa_register 6
- 20846 13ba6 4883EC10 		subq	$16, %rsp
- 20847 13baa 48897DF8 		movq	%rdi, -8(%rbp)
- 20848 13bae 488975F0 		movq	%rsi, -16(%rbp)
-1966:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_128);
- 20849              		.loc 2 1966 0
- 20850 13bb2 488B4DF0 		movq	-16(%rbp), %rcx
- 20851 13bb6 488B45F8 		movq	-8(%rbp), %rax
- 20852 13bba BA0A0000 		movl	$10, %edx
- 20852      00
- 20853 13bbf 4889CE   		movq	%rcx, %rsi
- 20854 13bc2 4889C7   		movq	%rax, %rdi
- 20855 13bc5 E805F9FF 		call	KAESBlockCipherVecEqInvKeyExpansion
- 20855      FF
-1967:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20856              		.loc 2 1967 0
- 20857 13bca C9       		leave
- 20858 13bcb C3       		ret
- 20859              		.cfi_endproc
- 20860              	.LFE567:
- 20861              		.size	KAESBlockCipherVecEqInvKeyExpansion128, .-KAESBlockCipherVecEqInvKeyExpansion128
- 20862              		.type	KAESBlockCipherVecEqInvKeyExpansion192, @function
- 20863              	KAESBlockCipherVecEqInvKeyExpansion192:
- 20864              	.LFB568:
-1972:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20865              		.loc 2 1972 0
- 20866              		.cfi_startproc
- 20867 13bcc 55       		pushq	%rbp
- 20868              	.LCFI12:
- 20869              		.cfi_def_cfa_offset 16
- 20870 13bcd 4889E5   		movq	%rsp, %rbp
- 20871              		.cfi_offset 6, -16
- 20872              	.LCFI13:
- 20873              		.cfi_def_cfa_register 6
- 20874 13bd0 4883EC10 		subq	$16, %rsp
- 20875 13bd4 48897DF8 		movq	%rdi, -8(%rbp)
- 20876 13bd8 488975F0 		movq	%rsi, -16(%rbp)
-1973:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_192);
- 20877              		.loc 2 1973 0
- 20878 13bdc 488B4DF0 		movq	-16(%rbp), %rcx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 639
-
-
- 20879 13be0 488B45F8 		movq	-8(%rbp), %rax
- 20880 13be4 BA0C0000 		movl	$12, %edx
- 20880      00
- 20881 13be9 4889CE   		movq	%rcx, %rsi
- 20882 13bec 4889C7   		movq	%rax, %rdi
- 20883 13bef E8DBF8FF 		call	KAESBlockCipherVecEqInvKeyExpansion
- 20883      FF
-1974:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20884              		.loc 2 1974 0
- 20885 13bf4 C9       		leave
- 20886 13bf5 C3       		ret
- 20887              		.cfi_endproc
- 20888              	.LFE568:
- 20889              		.size	KAESBlockCipherVecEqInvKeyExpansion192, .-KAESBlockCipherVecEqInvKeyExpansion192
- 20890              		.type	KAESBlockCipherVecEqInvKeyExpansion256, @function
- 20891              	KAESBlockCipherVecEqInvKeyExpansion256:
- 20892              	.LFB569:
-1979:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20893              		.loc 2 1979 0
- 20894              		.cfi_startproc
- 20895 13bf6 55       		pushq	%rbp
- 20896              	.LCFI14:
- 20897              		.cfi_def_cfa_offset 16
- 20898 13bf7 4889E5   		movq	%rsp, %rbp
- 20899              		.cfi_offset 6, -16
- 20900              	.LCFI15:
- 20901              		.cfi_def_cfa_register 6
- 20902 13bfa 4883EC10 		subq	$16, %rsp
- 20903 13bfe 48897DF8 		movq	%rdi, -8(%rbp)
- 20904 13c02 488975F0 		movq	%rsi, -16(%rbp)
-1980:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_256);
- 20905              		.loc 2 1980 0
- 20906 13c06 488B4DF0 		movq	-16(%rbp), %rcx
- 20907 13c0a 488B45F8 		movq	-8(%rbp), %rax
- 20908 13c0e BA0E0000 		movl	$14, %edx
- 20908      00
- 20909 13c13 4889CE   		movq	%rcx, %rsi
- 20910 13c16 4889C7   		movq	%rax, %rdi
- 20911 13c19 E8B1F8FF 		call	KAESBlockCipherVecEqInvKeyExpansion
- 20911      FF
-1981:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20912              		.loc 2 1981 0
- 20913 13c1e C9       		leave
- 20914 13c1f C3       		ret
- 20915              		.cfi_endproc
- 20916              	.LFE569:
- 20917              		.size	KAESBlockCipherVecEqInvKeyExpansion256, .-KAESBlockCipherVecEqInvKeyExpansion256
- 20918              		.section	.rodata
- 20919              	.LC5:
- 20920 03d2 53746172 		.string	"Start of Round"
- 20920      74206F66 
- 20920      20526F75 
- 20920      6E6400
- 20921              	.LC6:
- 20922 03e1 526F756E 		.string	"Round Key"
- 20922      64204B65 
- 20922      7900
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 640
-
-
- 20923              	.LC7:
- 20924 03eb 456E6420 		.string	"End 1st Round"
- 20924      31737420 
- 20924      526F756E 
- 20924      6400
- 20925              	.LC8:
- 20926 03f9 41667465 		.string	"After SubBytes"
- 20926      72205375 
- 20926      62427974 
- 20926      657300
- 20927              	.LC9:
- 20928 0408 41667465 		.string	"After ShiftRow"
- 20928      72205368 
- 20928      69667452 
- 20928      6F7700
- 20929              	.LC10:
- 20930 0417 41667465 		.string	"After MixColum"
- 20930      72204D69 
- 20930      78436F6C 
- 20930      756D00
- 20931              	.LC11:
- 20932 0426 456E6420 		.string	"End of Round"
- 20932      6F662052 
- 20932      6F756E64 
- 20932      00
- 20933              		.text
- 20934              		.type	KAESBlockCipherVecCipher, @function
- 20935              	KAESBlockCipherVecCipher:
- 20936              	.LFB573:
-2094:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20937              		.loc 2 2094 0
- 20938              		.cfi_startproc
- 20939 13c20 55       		pushq	%rbp
- 20940              	.LCFI16:
- 20941              		.cfi_def_cfa_offset 16
- 20942 13c21 4889E5   		movq	%rsp, %rbp
- 20943              		.cfi_offset 6, -16
- 20944              	.LCFI17:
- 20945              		.cfi_def_cfa_register 6
- 20946 13c24 4157     		pushq	%r15
- 20947 13c26 4156     		pushq	%r14
- 20948 13c28 4155     		pushq	%r13
- 20949 13c2a 4154     		pushq	%r12
- 20950 13c2c 53       		pushq	%rbx
- 20951 13c2d 4881ECC8 		subq	$2504, %rsp
- 20951      090000
- 20952 13c34 660F7F85 		movdqa	%xmm0, -2400(%rbp)
- 20952      A0F6FFFF 
- 20953 13c3c 4889BD98 		movq	%rdi, -2408(%rbp)
- 20953      F6FFFF
- 20954 13c43 89B594F6 		movl	%esi, -2412(%rbp)
- 20954      FFFF
-2095:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
- 20955              		.loc 2 2095 0
- 20956 13c49 C7855CF9 		movl	$0, -1700(%rbp)
- 20956      FFFF0000 
- 20956      0000
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 641
-
-
-2097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(FirstRound) (state, key[ix++]);
- 20957              		.loc 2 2097 0
- 20958 13c53 8B855CF9 		mov	-1700(%rbp), %eax
- 20958      FFFF
- 20959 13c59 48C1E004 		salq	$4, %rax
- 20960 13c5d 48038598 		addq	-2408(%rbp), %rax
- 20960      F6FFFF
- 20961 13c64 660F6F00 		movdqa	(%rax), %xmm0
- 20962 13c68 83855CF9 		addl	$1, -1700(%rbp)
- 20962      FFFF01
- 20963 13c6f 660F6F8D 		movdqa	-2400(%rbp), %xmm1
- 20963      A0F6FFFF 
- 20964 13c77 F30F7F8D 		movdqu	%xmm1, -1680(%rbp)
- 20964      70F9FFFF 
- 20965 13c7f F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 20965      60F9FFFF 
- 20966              	.LBB2547:
- 20967              	.LBB2548:
- 20968              	.LBB2549:
-1994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
- 20969              		.loc 2 1994 0
- 20970 13c87 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 20970      70F9FFFF 
- 20971 13c8f F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 20971      D0F6FFFF 
- 20972              		.cfi_offset 3, -56
- 20973              		.cfi_offset 12, -48
- 20974              		.cfi_offset 13, -40
- 20975              		.cfi_offset 14, -32
- 20976              		.cfi_offset 15, -24
- 20977 13c97 E8000000 		call	KDbgWriterGet at PLT
- 20977      00
- 20978 13c9c 4885C0   		testq	%rax, %rax
- 20979 13c9f 7479     		je	.L517
- 20980 13ca1 BF010000 		movl	$1, %edi
- 20980      00
- 20981 13ca6 E8000000 		call	KDbgCondToFlag at PLT
- 20981      00
- 20982 13cab 4889C6   		movq	%rax, %rsi
- 20983 13cae BF100000 		movl	$16, %edi
- 20983      00
- 20984 13cb3 E8000000 		call	KDbgTestModConds at PLT
- 20984      00
- 20985 13cb8 84C0     		testb	%al, %al
- 20986 13cba 745E     		je	.L517
- 20987 13cbc 8B85DCF6 		movl	-2340(%rbp), %eax
- 20987      FFFF
- 20988 13cc2 89C7     		movl	%eax, %edi
- 20989 13cc4 E837C3FE 		call	bswap_32
- 20989      FF
- 20990 13cc9 4189C5   		movl	%eax, %r13d
- 20991 13ccc 8B85D8F6 		movl	-2344(%rbp), %eax
- 20991      FFFF
- 20992 13cd2 89C7     		movl	%eax, %edi
- 20993 13cd4 E827C3FE 		call	bswap_32
- 20993      FF
- 20994 13cd9 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 642
-
-
- 20995 13cdc 8B85D4F6 		movl	-2348(%rbp), %eax
- 20995      FFFF
- 20996 13ce2 89C7     		movl	%eax, %edi
- 20997 13ce4 E817C3FE 		call	bswap_32
- 20997      FF
- 20998 13ce9 89C3     		movl	%eax, %ebx
- 20999 13ceb 8B85D0F6 		movl	-2352(%rbp), %eax
- 20999      FFFF
- 21000 13cf1 89C7     		movl	%eax, %edi
- 21001 13cf3 E808C3FE 		call	bswap_32
- 21001      FF
- 21002 13cf8 4589E9   		movl	%r13d, %r9d
- 21003 13cfb 4589E0   		movl	%r12d, %r8d
- 21004 13cfe 89D9     		movl	%ebx, %ecx
- 21005 13d00 89C2     		movl	%eax, %edx
- 21006 13d02 488D3500 		leaq	.LC5(%rip), %rsi
- 21006      000000
- 21007 13d09 488D3D00 		leaq	.LC1(%rip), %rdi
- 21007      000000
- 21008 13d10 B8000000 		movl	$0, %eax
- 21008      00
- 21009 13d15 E8000000 		call	KDbgMsg at PLT
- 21009      00
- 21010              	.L517:
- 21011              	.LBE2549:
- 21012              	.LBB2550:
-1996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 21013              		.loc 2 1996 0
- 21014 13d1a F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 21014      60F9FFFF 
- 21015 13d22 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 21015      C0F6FFFF 
- 21016 13d2a E8000000 		call	KDbgWriterGet at PLT
- 21016      00
- 21017 13d2f 4885C0   		testq	%rax, %rax
- 21018 13d32 7479     		je	.L519
- 21019 13d34 BF010000 		movl	$1, %edi
- 21019      00
- 21020 13d39 E8000000 		call	KDbgCondToFlag at PLT
- 21020      00
- 21021 13d3e 4889C6   		movq	%rax, %rsi
- 21022 13d41 BF100000 		movl	$16, %edi
- 21022      00
- 21023 13d46 E8000000 		call	KDbgTestModConds at PLT
- 21023      00
- 21024 13d4b 84C0     		testb	%al, %al
- 21025 13d4d 745E     		je	.L519
- 21026 13d4f 8B85CCF6 		movl	-2356(%rbp), %eax
- 21026      FFFF
- 21027 13d55 89C7     		movl	%eax, %edi
- 21028 13d57 E8A4C2FE 		call	bswap_32
- 21028      FF
- 21029 13d5c 4189C5   		movl	%eax, %r13d
- 21030 13d5f 8B85C8F6 		movl	-2360(%rbp), %eax
- 21030      FFFF
- 21031 13d65 89C7     		movl	%eax, %edi
- 21032 13d67 E894C2FE 		call	bswap_32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 643
-
-
- 21032      FF
- 21033 13d6c 4189C4   		movl	%eax, %r12d
- 21034 13d6f 8B85C4F6 		movl	-2364(%rbp), %eax
- 21034      FFFF
- 21035 13d75 89C7     		movl	%eax, %edi
- 21036 13d77 E884C2FE 		call	bswap_32
- 21036      FF
- 21037 13d7c 89C3     		movl	%eax, %ebx
- 21038 13d7e 8B85C0F6 		movl	-2368(%rbp), %eax
- 21038      FFFF
- 21039 13d84 89C7     		movl	%eax, %edi
- 21040 13d86 E875C2FE 		call	bswap_32
- 21040      FF
- 21041 13d8b 4589E9   		movl	%r13d, %r9d
- 21042 13d8e 4589E0   		movl	%r12d, %r8d
- 21043 13d91 89D9     		movl	%ebx, %ecx
- 21044 13d93 89C2     		movl	%eax, %edx
- 21045 13d95 488D3500 		leaq	.LC6(%rip), %rsi
- 21045      000000
- 21046 13d9c 488D3D00 		leaq	.LC1(%rip), %rdi
- 21046      000000
- 21047 13da3 B8000000 		movl	$0, %eax
- 21047      00
- 21048 13da8 E8000000 		call	KDbgMsg at PLT
- 21048      00
- 21049              	.L519:
- 21050 13dad F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 21050      70F9FFFF 
- 21051 13db5 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 21051      90F9FFFF 
- 21052 13dbd F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 21052      60F9FFFF 
- 21053 13dc5 F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 21053      80F9FFFF 
- 21054 13dcd F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 21054      90F9FFFF 
- 21055 13dd5 F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 21055      B0F9FFFF 
- 21056 13ddd F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 21056      80F9FFFF 
- 21057 13de5 F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 21057      A0F9FFFF 
- 21058              	.LBE2550:
- 21059              	.LBB2551:
- 21060              	.LBB2552:
- 21061              	.LBB2553:
- 21062              	.LBB2554:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 21063              		.loc 2 178 0
- 21064 13ded F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 21064      A0F9FFFF 
- 21065 13df5 F30F6F8D 		movdqu	-1616(%rbp), %xmm1
- 21065      B0F9FFFF 
- 21066 13dfd 660FEFC1 		pxor	%xmm1, %xmm0
- 21067              	.LBE2554:
- 21068              	.LBE2553:
- 21069              	.LBE2552:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 644
-
-
- 21070              	.LBE2551:
-1998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 21071              		.loc 2 1998 0
- 21072 13e01 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 21072      70F9FFFF 
- 21073              	.LBB2555:
-2000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End 1st Round", state);
- 21074              		.loc 2 2000 0
- 21075 13e09 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 21075      70F9FFFF 
- 21076 13e11 F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 21076      B0F6FFFF 
- 21077 13e19 E8000000 		call	KDbgWriterGet at PLT
- 21077      00
- 21078 13e1e 4885C0   		testq	%rax, %rax
- 21079 13e21 7479     		je	.L521
- 21080 13e23 BF010000 		movl	$1, %edi
- 21080      00
- 21081 13e28 E8000000 		call	KDbgCondToFlag at PLT
- 21081      00
- 21082 13e2d 4889C6   		movq	%rax, %rsi
- 21083 13e30 BF100000 		movl	$16, %edi
- 21083      00
- 21084 13e35 E8000000 		call	KDbgTestModConds at PLT
- 21084      00
- 21085 13e3a 84C0     		testb	%al, %al
- 21086 13e3c 745E     		je	.L521
- 21087 13e3e 8B85BCF6 		movl	-2372(%rbp), %eax
- 21087      FFFF
- 21088 13e44 89C7     		movl	%eax, %edi
- 21089 13e46 E8B5C1FE 		call	bswap_32
- 21089      FF
- 21090 13e4b 4189C5   		movl	%eax, %r13d
- 21091 13e4e 8B85B8F6 		movl	-2376(%rbp), %eax
- 21091      FFFF
- 21092 13e54 89C7     		movl	%eax, %edi
- 21093 13e56 E8A5C1FE 		call	bswap_32
- 21093      FF
- 21094 13e5b 4189C4   		movl	%eax, %r12d
- 21095 13e5e 8B85B4F6 		movl	-2380(%rbp), %eax
- 21095      FFFF
- 21096 13e64 89C7     		movl	%eax, %edi
- 21097 13e66 E895C1FE 		call	bswap_32
- 21097      FF
- 21098 13e6b 89C3     		movl	%eax, %ebx
- 21099 13e6d 8B85B0F6 		movl	-2384(%rbp), %eax
- 21099      FFFF
- 21100 13e73 89C7     		movl	%eax, %edi
- 21101 13e75 E886C1FE 		call	bswap_32
- 21101      FF
- 21102 13e7a 4589E9   		movl	%r13d, %r9d
- 21103 13e7d 4589E0   		movl	%r12d, %r8d
- 21104 13e80 89D9     		movl	%ebx, %ecx
- 21105 13e82 89C2     		movl	%eax, %edx
- 21106 13e84 488D3500 		leaq	.LC7(%rip), %rsi
- 21106      000000
- 21107 13e8b 488D3D00 		leaq	.LC1(%rip), %rdi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 645
-
-
- 21107      000000
- 21108 13e92 B8000000 		movl	$0, %eax
- 21108      00
- 21109 13e97 E8000000 		call	KDbgMsg at PLT
- 21109      00
- 21110              	.L521:
- 21111              	.LBE2555:
-2002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 21112              		.loc 2 2002 0
- 21113 13e9c F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 21113      70F9FFFF 
- 21114              	.LBE2548:
- 21115              	.LBE2547:
-2097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(FirstRound) (state, key[ix++]);
- 21116              		.loc 2 2097 0
- 21117 13ea4 660F7F85 		movdqa	%xmm0, -2400(%rbp)
- 21117      A0F6FFFF 
-2099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 21118              		.loc 2 2099 0
- 21119 13eac E9BF0F00 		jmp	.L522
- 21119      00
- 21120              	.L563:
-2100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(MiddleRound) (state, key[ix] );
- 21121              		.loc 2 2100 0
- 21122 13eb1 8B855CF9 		mov	-1700(%rbp), %eax
- 21122      FFFF
- 21123 13eb7 48C1E004 		salq	$4, %rax
- 21124 13ebb 48038598 		addq	-2408(%rbp), %rax
- 21124      F6FFFF
- 21125 13ec2 660F6F00 		movdqa	(%rax), %xmm0
- 21126 13ec6 660F6F8D 		movdqa	-2400(%rbp), %xmm1
- 21126      A0F6FFFF 
- 21127 13ece F30F7F8D 		movdqu	%xmm1, -1584(%rbp)
- 21127      D0F9FFFF 
- 21128 13ed6 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 21128      C0F9FFFF 
- 21129              	.LBB2556:
- 21130              	.LBB2557:
-2019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 21131              		.loc 2 2019 0
- 21132 13ede F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 21132      D0F9FFFF 
- 21133 13ee6 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 21133      F0F9FFFF 
-2020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
- 21134              		.loc 2 2020 0
- 21135 13eee F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 21135      C0F9FFFF 
- 21136 13ef6 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 21136      E0F9FFFF 
- 21137              	.LBB2558:
-2022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", mstate);
- 21138              		.loc 2 2022 0
- 21139 13efe F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 21139      F0F9FFFF 
- 21140 13f06 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 21140      30F7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 646
-
-
- 21141 13f0e E8000000 		call	KDbgWriterGet at PLT
- 21141      00
- 21142 13f13 4885C0   		testq	%rax, %rax
- 21143 13f16 7479     		je	.L524
- 21144 13f18 BF010000 		movl	$1, %edi
- 21144      00
- 21145 13f1d E8000000 		call	KDbgCondToFlag at PLT
- 21145      00
- 21146 13f22 4889C6   		movq	%rax, %rsi
- 21147 13f25 BF100000 		movl	$16, %edi
- 21147      00
- 21148 13f2a E8000000 		call	KDbgTestModConds at PLT
- 21148      00
- 21149 13f2f 84C0     		testb	%al, %al
- 21150 13f31 745E     		je	.L524
- 21151 13f33 8B853CF7 		movl	-2244(%rbp), %eax
- 21151      FFFF
- 21152 13f39 89C7     		movl	%eax, %edi
- 21153 13f3b E8C0C0FE 		call	bswap_32
- 21153      FF
- 21154 13f40 4189C5   		movl	%eax, %r13d
- 21155 13f43 8B8538F7 		movl	-2248(%rbp), %eax
- 21155      FFFF
- 21156 13f49 89C7     		movl	%eax, %edi
- 21157 13f4b E8B0C0FE 		call	bswap_32
- 21157      FF
- 21158 13f50 4189C4   		movl	%eax, %r12d
- 21159 13f53 8B8534F7 		movl	-2252(%rbp), %eax
- 21159      FFFF
- 21160 13f59 89C7     		movl	%eax, %edi
- 21161 13f5b E8A0C0FE 		call	bswap_32
- 21161      FF
- 21162 13f60 89C3     		movl	%eax, %ebx
- 21163 13f62 8B8530F7 		movl	-2256(%rbp), %eax
- 21163      FFFF
- 21164 13f68 89C7     		movl	%eax, %edi
- 21165 13f6a E891C0FE 		call	bswap_32
- 21165      FF
- 21166 13f6f 4589E9   		movl	%r13d, %r9d
- 21167 13f72 4589E0   		movl	%r12d, %r8d
- 21168 13f75 89D9     		movl	%ebx, %ecx
- 21169 13f77 89C2     		movl	%eax, %edx
- 21170 13f79 488D3500 		leaq	.LC5(%rip), %rsi
- 21170      000000
- 21171 13f80 488D3D00 		leaq	.LC1(%rip), %rdi
- 21171      000000
- 21172 13f87 B8000000 		movl	$0, %eax
- 21172      00
- 21173 13f8c E8000000 		call	KDbgMsg at PLT
- 21173      00
- 21174              	.L524:
- 21175 13f91 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 21175      D0F9FFFF 
- 21176 13f99 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 21176      00FAFFFF 
- 21177 13fa1 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 21177      00FAFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 647
-
-
- 21178 13fa9 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 21178      20FAFFFF 
- 21179 13fb1 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 21179      000000
- 21180 13fb8 48898518 		movq	%rax, -1512(%rbp)
- 21180      FAFFFF
- 21181              	.LBE2558:
- 21182              	.LBB2559:
- 21183              	.LBB2560:
- 21184              	.LBB2561:
- 21185              	.LBB2562:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 21186              		.loc 2 851 0
- 21187 13fbf 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 21187      00000000 
- 21188 13fc7 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 21188      40FAFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 21189              		.loc 2 854 0
- 21190 13fcf 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 21190      00000000 
- 21191 13fd7 F30F6F8D 		movdqu	-1504(%rbp), %xmm1
- 21191      20FAFFFF 
- 21192 13fdf F30F7F8D 		movdqu	%xmm1, -1392(%rbp)
- 21192      90FAFFFF 
- 21193 13fe7 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 21193      80FAFFFF 
- 21194              	.LBB2563:
- 21195              	.LBB2564:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 21196              		.loc 2 206 0
- 21197 13fef F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 21197      80FAFFFF 
- 21198 13ff7 F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 21198      90FAFFFF 
- 21199 13fff 660FDBC1 		pand	%xmm1, %xmm0
- 21200              	.LBE2564:
- 21201              	.LBE2563:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 21202              		.loc 2 854 0
- 21203 14003 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 21203      70FAFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 21204              		.loc 2 862 0
- 21205 1400b 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 21205      00000000 
- 21206 14013 F30F6F8D 		movdqu	-1504(%rbp), %xmm1
- 21206      20FAFFFF 
- 21207 1401b F30F7F8D 		movdqu	%xmm1, -1360(%rbp)
- 21207      B0FAFFFF 
- 21208 14023 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 21208      A0FAFFFF 
- 21209              	.LBB2565:
- 21210              		.loc 2 2642 0
- 21211 1402b 0FB685B0 		movzbl	-1360(%rbp), %eax
- 21211      FAFFFF
- 21212 14032 0FB695A0 		movzbl	-1376(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 648
-
-
- 21212      FAFFFF
- 21213 14039 0FB6C0   		movzbl	%al, %eax
- 21214 1403c 6689851E 		movw	%ax, -2530(%rbp)
- 21214      F6FFFF
- 21215 14043 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21215      F6FFFF
- 21216 1404a F6F2     		divb	%dl
- 21217 1404c 4189C7   		movl	%eax, %r15d
- 21218 1404f 0FB685B1 		movzbl	-1359(%rbp), %eax
- 21218      FAFFFF
- 21219 14056 0FB695A1 		movzbl	-1375(%rbp), %edx
- 21219      FAFFFF
- 21220 1405d 0FB6C0   		movzbl	%al, %eax
- 21221 14060 6689851E 		movw	%ax, -2530(%rbp)
- 21221      F6FFFF
- 21222 14067 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21222      F6FFFF
- 21223 1406e F6F2     		divb	%dl
- 21224 14070 88854FF6 		movb	%al, -2481(%rbp)
- 21224      FFFF
- 21225 14076 0FB685B2 		movzbl	-1358(%rbp), %eax
- 21225      FAFFFF
- 21226 1407d 0FB695A2 		movzbl	-1374(%rbp), %edx
- 21226      FAFFFF
- 21227 14084 0FB6C0   		movzbl	%al, %eax
- 21228 14087 6689851E 		movw	%ax, -2530(%rbp)
- 21228      F6FFFF
- 21229 1408e 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21229      F6FFFF
- 21230 14095 F6F2     		divb	%dl
- 21231 14097 88854EF6 		movb	%al, -2482(%rbp)
- 21231      FFFF
- 21232 1409d 0FB685B3 		movzbl	-1357(%rbp), %eax
- 21232      FAFFFF
- 21233 140a4 0FB695A3 		movzbl	-1373(%rbp), %edx
- 21233      FAFFFF
- 21234 140ab 0FB6C0   		movzbl	%al, %eax
- 21235 140ae 6689851E 		movw	%ax, -2530(%rbp)
- 21235      F6FFFF
- 21236 140b5 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21236      F6FFFF
- 21237 140bc F6F2     		divb	%dl
- 21238 140be 88854DF6 		movb	%al, -2483(%rbp)
- 21238      FFFF
- 21239 140c4 0FB685B4 		movzbl	-1356(%rbp), %eax
- 21239      FAFFFF
- 21240 140cb 0FB695A4 		movzbl	-1372(%rbp), %edx
- 21240      FAFFFF
- 21241 140d2 0FB6C0   		movzbl	%al, %eax
- 21242 140d5 6689851E 		movw	%ax, -2530(%rbp)
- 21242      F6FFFF
- 21243 140dc 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21243      F6FFFF
- 21244 140e3 F6F2     		divb	%dl
- 21245 140e5 88854CF6 		movb	%al, -2484(%rbp)
- 21245      FFFF
- 21246 140eb 0FB685B5 		movzbl	-1355(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 649
-
-
- 21246      FAFFFF
- 21247 140f2 0FB695A5 		movzbl	-1371(%rbp), %edx
- 21247      FAFFFF
- 21248 140f9 0FB6C0   		movzbl	%al, %eax
- 21249 140fc 6689851E 		movw	%ax, -2530(%rbp)
- 21249      F6FFFF
- 21250 14103 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21250      F6FFFF
- 21251 1410a F6F2     		divb	%dl
- 21252 1410c 4189C1   		movl	%eax, %r9d
- 21253 1410f 0FB685B6 		movzbl	-1354(%rbp), %eax
- 21253      FAFFFF
- 21254 14116 0FB695A6 		movzbl	-1370(%rbp), %edx
- 21254      FAFFFF
- 21255 1411d 0FB6C0   		movzbl	%al, %eax
- 21256 14120 6689851E 		movw	%ax, -2530(%rbp)
- 21256      F6FFFF
- 21257 14127 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21257      F6FFFF
- 21258 1412e F6F2     		divb	%dl
- 21259 14130 89C7     		movl	%eax, %edi
- 21260 14132 0FB685B7 		movzbl	-1353(%rbp), %eax
- 21260      FAFFFF
- 21261 14139 0FB695A7 		movzbl	-1369(%rbp), %edx
- 21261      FAFFFF
- 21262 14140 0FB6C0   		movzbl	%al, %eax
- 21263 14143 6689851E 		movw	%ax, -2530(%rbp)
- 21263      F6FFFF
- 21264 1414a 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21264      F6FFFF
- 21265 14151 F6F2     		divb	%dl
- 21266 14153 89C3     		movl	%eax, %ebx
- 21267 14155 0FB685B8 		movzbl	-1352(%rbp), %eax
- 21267      FAFFFF
- 21268 1415c 0FB695A8 		movzbl	-1368(%rbp), %edx
- 21268      FAFFFF
- 21269 14163 0FB6C0   		movzbl	%al, %eax
- 21270 14166 6689851E 		movw	%ax, -2530(%rbp)
- 21270      F6FFFF
- 21271 1416d 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21271      F6FFFF
- 21272 14174 F6F2     		divb	%dl
- 21273 14176 4189C2   		movl	%eax, %r10d
- 21274 14179 0FB685B9 		movzbl	-1351(%rbp), %eax
- 21274      FAFFFF
- 21275 14180 0FB695A9 		movzbl	-1367(%rbp), %edx
- 21275      FAFFFF
- 21276 14187 0FB6C0   		movzbl	%al, %eax
- 21277 1418a 6689851E 		movw	%ax, -2530(%rbp)
- 21277      F6FFFF
- 21278 14191 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21278      F6FFFF
- 21279 14198 F6F2     		divb	%dl
- 21280 1419a 4189C3   		movl	%eax, %r11d
- 21281 1419d 0FB685BA 		movzbl	-1350(%rbp), %eax
- 21281      FAFFFF
- 21282 141a4 0FB695AA 		movzbl	-1366(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 650
-
-
- 21282      FAFFFF
- 21283 141ab 0FB6C0   		movzbl	%al, %eax
- 21284 141ae 6689851E 		movw	%ax, -2530(%rbp)
- 21284      F6FFFF
- 21285 141b5 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21285      F6FFFF
- 21286 141bc F6F2     		divb	%dl
- 21287 141be 4189C4   		movl	%eax, %r12d
- 21288 141c1 0FB685BB 		movzbl	-1349(%rbp), %eax
- 21288      FAFFFF
- 21289 141c8 0FB695AB 		movzbl	-1365(%rbp), %edx
- 21289      FAFFFF
- 21290 141cf 0FB6C0   		movzbl	%al, %eax
- 21291 141d2 6689851E 		movw	%ax, -2530(%rbp)
- 21291      F6FFFF
- 21292 141d9 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21292      F6FFFF
- 21293 141e0 F6F2     		divb	%dl
- 21294 141e2 4189C5   		movl	%eax, %r13d
- 21295 141e5 0FB685BC 		movzbl	-1348(%rbp), %eax
- 21295      FAFFFF
- 21296 141ec 0FB695AC 		movzbl	-1364(%rbp), %edx
- 21296      FAFFFF
- 21297 141f3 0FB6C0   		movzbl	%al, %eax
- 21298 141f6 6689851E 		movw	%ax, -2530(%rbp)
- 21298      F6FFFF
- 21299 141fd 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21299      F6FFFF
- 21300 14204 F6F2     		divb	%dl
- 21301 14206 4189C6   		movl	%eax, %r14d
- 21302 14209 0FB685BD 		movzbl	-1347(%rbp), %eax
- 21302      FAFFFF
- 21303 14210 0FB695AD 		movzbl	-1363(%rbp), %edx
- 21303      FAFFFF
- 21304 14217 0FB6C0   		movzbl	%al, %eax
- 21305 1421a 6689851E 		movw	%ax, -2530(%rbp)
- 21305      F6FFFF
- 21306 14221 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21306      F6FFFF
- 21307 14228 F6F2     		divb	%dl
- 21308 1422a 4189C0   		movl	%eax, %r8d
- 21309 1422d 0FB685BE 		movzbl	-1346(%rbp), %eax
- 21309      FAFFFF
- 21310 14234 0FB695AE 		movzbl	-1362(%rbp), %edx
- 21310      FAFFFF
- 21311 1423b 0FB6C0   		movzbl	%al, %eax
- 21312 1423e 6689851E 		movw	%ax, -2530(%rbp)
- 21312      F6FFFF
- 21313 14245 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21313      F6FFFF
- 21314 1424c F6F2     		divb	%dl
- 21315 1424e 89C6     		movl	%eax, %esi
- 21316 14250 0FB685BF 		movzbl	-1345(%rbp), %eax
- 21316      FAFFFF
- 21317 14257 0FB695AF 		movzbl	-1361(%rbp), %edx
- 21317      FAFFFF
- 21318 1425e 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 651
-
-
- 21319 14261 6689851E 		movw	%ax, -2530(%rbp)
- 21319      F6FFFF
- 21320 14268 0FB7851E 		movzwl	-2530(%rbp), %eax
- 21320      F6FFFF
- 21321 1426f F6F2     		divb	%dl
- 21322 14271 89C1     		movl	%eax, %ecx
- 21323              	.LBB2566:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 21324              		.loc 2 346 0
- 21325 14273 0FB6D3   		movzbl	%bl, %edx
- 21326 14276 400FB6C7 		movzbl	%dil, %eax
- 21327 1427a 48C1E208 		salq	$8, %rdx
- 21328 1427e 4809C2   		orq	%rax, %rdx
- 21329 14281 410FB6C1 		movzbl	%r9b, %eax
- 21330 14285 48C1E208 		salq	$8, %rdx
- 21331 14289 4809C2   		orq	%rax, %rdx
- 21332 1428c 0FB6854C 		movzbl	-2484(%rbp), %eax
- 21332      F6FFFF
- 21333 14293 48C1E208 		salq	$8, %rdx
- 21334 14297 4809C2   		orq	%rax, %rdx
- 21335 1429a 0FB6854D 		movzbl	-2483(%rbp), %eax
- 21335      F6FFFF
- 21336 142a1 48C1E208 		salq	$8, %rdx
- 21337 142a5 4809C2   		orq	%rax, %rdx
- 21338 142a8 0FB6854E 		movzbl	-2482(%rbp), %eax
- 21338      F6FFFF
- 21339 142af 48C1E208 		salq	$8, %rdx
- 21340 142b3 4809C2   		orq	%rax, %rdx
- 21341 142b6 0FB6854F 		movzbl	-2481(%rbp), %eax
- 21341      F6FFFF
- 21342 142bd 48C1E208 		salq	$8, %rdx
- 21343 142c1 4809C2   		orq	%rax, %rdx
- 21344 142c4 410FB6C7 		movzbl	%r15b, %eax
- 21345 142c8 48C1E208 		salq	$8, %rdx
- 21346 142cc 4809C2   		orq	%rax, %rdx
- 21347 142cf 0FB6C1   		movzbl	%cl, %eax
- 21348 142d2 400FB6CE 		movzbl	%sil, %ecx
- 21349 142d6 48C1E008 		salq	$8, %rax
- 21350 142da 4809C8   		orq	%rcx, %rax
- 21351 142dd 410FB6C8 		movzbl	%r8b, %ecx
- 21352 142e1 48C1E008 		salq	$8, %rax
- 21353 142e5 4809C8   		orq	%rcx, %rax
- 21354 142e8 410FB6CE 		movzbl	%r14b, %ecx
- 21355 142ec 48C1E008 		salq	$8, %rax
- 21356 142f0 4809C8   		orq	%rcx, %rax
- 21357 142f3 410FB6CD 		movzbl	%r13b, %ecx
- 21358 142f7 48C1E008 		salq	$8, %rax
- 21359 142fb 4809C8   		orq	%rcx, %rax
- 21360 142fe 410FB6CC 		movzbl	%r12b, %ecx
- 21361 14302 48C1E008 		salq	$8, %rax
- 21362 14306 4809C8   		orq	%rcx, %rax
- 21363 14309 410FB6CB 		movzbl	%r11b, %ecx
- 21364 1430d 48C1E008 		salq	$8, %rax
- 21365 14311 4809C8   		orq	%rcx, %rax
- 21366 14314 410FB6CA 		movzbl	%r10b, %ecx
- 21367 14318 48C1E008 		salq	$8, %rax
- 21368 1431c 4809C8   		orq	%rcx, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 652
-
-
- 21369 1431f 48899530 		movq	%rdx, -2512(%rbp)
- 21369      F6FFFF
- 21370 14326 48898538 		movq	%rax, -2504(%rbp)
- 21370      F6FFFF
- 21371 1432d 660F6F85 		movdqa	-2512(%rbp), %xmm0
- 21371      30F6FFFF 
- 21372              	.LBE2566:
- 21373              	.LBE2565:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 21374              		.loc 2 862 0
- 21375 14335 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 21375      60FAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 21376              		.loc 2 866 0
- 21377 1433d C7853CFA 		movl	$0, -1476(%rbp)
- 21377      FFFF0000 
- 21377      0000
- 21378 14347 E9860200 		jmp	.L525
- 21378      00
- 21379              	.L534:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 21380              		.loc 2 868 0
- 21381 1434c 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 21381      00000000 
- 21382 14354 F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 21382      D0FAFFFF 
- 21383 1435c F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 21383      60FAFFFF 
- 21384 14364 F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 21384      C0FAFFFF 
- 21385              	.LBB2567:
- 21386              	.LBB2568:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 21387              		.loc 2 380 0
- 21388 1436c F30F6F85 		movdqu	-1328(%rbp), %xmm0
- 21388      D0FAFFFF 
- 21389 14374 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 21389      50F7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 21390              		.loc 2 381 0
- 21391 1437c F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 21391      C0FAFFFF 
- 21392 14384 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 21392      40F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21393              		.loc 2 383 0
- 21394 1438c C785ECFA 		movl	$0, -1300(%rbp)
- 21394      FFFF0000 
- 21394      0000
- 21395 14396 EB5C     		jmp	.L526
- 21396              	.L529:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 21397              		.loc 2 385 0
- 21398 14398 8B85ECFA 		movl	-1300(%rbp), %eax
- 21398      FFFF
- 21399 1439e 89C0     		mov	%eax, %eax
- 21400 143a0 0FB68405 		movzbl	-2240(%rbp,%rax), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 653
-
-
- 21400      40F7FFFF 
- 21401 143a8 84C0     		testb	%al, %al
- 21402 143aa 7912     		jns	.L527
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 21403              		.loc 2 386 0
- 21404 143ac 8B85ECFA 		movl	-1300(%rbp), %eax
- 21404      FFFF
- 21405 143b2 89C0     		mov	%eax, %eax
- 21406 143b4 C6840560 		movb	$0, -2208(%rbp,%rax)
- 21406      F7FFFF00 
- 21407 143bc EB2F     		jmp	.L528
- 21408              	.L527:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 21409              		.loc 2 388 0
- 21410 143be 8B8DECFA 		movl	-1300(%rbp), %ecx
- 21410      FFFF
- 21411 143c4 8B85ECFA 		movl	-1300(%rbp), %eax
- 21411      FFFF
- 21412 143ca 89C0     		mov	%eax, %eax
- 21413 143cc 0FB68405 		movzbl	-2240(%rbp,%rax), %eax
- 21413      40F7FFFF 
- 21414 143d4 0FB6C0   		movzbl	%al, %eax
- 21415 143d7 83E00F   		andl	$15, %eax
- 21416 143da 4898     		cltq
- 21417 143dc 0FB69405 		movzbl	-2224(%rbp,%rax), %edx
- 21417      50F7FFFF 
- 21418 143e4 89C8     		mov	%ecx, %eax
- 21419 143e6 88940560 		movb	%dl, -2208(%rbp,%rax)
- 21419      F7FFFF
- 21420              	.L528:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21421              		.loc 2 383 0
- 21422 143ed 8385ECFA 		addl	$1, -1300(%rbp)
- 21422      FFFF01
- 21423              	.L526:
- 21424 143f4 83BDECFA 		cmpl	$15, -1300(%rbp)
- 21424      FFFF0F
- 21425 143fb 769B     		jbe	.L529
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 21426              		.loc 2 391 0
- 21427 143fd F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 21427      60F7FFFF 
- 21428              	.LBE2568:
- 21429              	.LBE2567:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 21430              		.loc 2 868 0
- 21431 14405 F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 21431      50FAFFFF 
- 21432 1440d F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 21432      70FAFFFF 
- 21433 14415 F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 21433      00FBFFFF 
- 21434 1441d F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 21434      50FAFFFF 
- 21435 14425 F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 21435      F0FAFFFF 
- 21436              	.LBB2569:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 654
-
-
- 21437              	.LBB2570:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 21438              		.loc 2 234 0
- 21439 1442d F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 21439      F0FAFFFF 
- 21440 14435 F30F6F8D 		movdqu	-1280(%rbp), %xmm1
- 21440      00FBFFFF 
- 21441 1443d 660FEBC1 		por	%xmm1, %xmm0
- 21442              	.LBE2570:
- 21443              	.LBE2569:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 21444              		.loc 2 870 0
- 21445 14441 F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 21445      50FAFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 21446              		.loc 2 872 0
- 21447 14449 8B853CFA 		mov	-1476(%rbp), %eax
- 21447      FFFF
- 21448 1444f 48C1E004 		salq	$4, %rax
- 21449 14453 48038518 		addq	-1512(%rbp), %rax
- 21449      FAFFFF
- 21450 1445a 660F6F00 		movdqa	(%rax), %xmm0
- 21451 1445e F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 21451      20FBFFFF 
- 21452 14466 F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 21452      50FAFFFF 
- 21453 1446e F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 21453      10FBFFFF 
- 21454              	.LBB2571:
- 21455              	.LBB2572:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 21456              		.loc 2 380 0
- 21457 14476 F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 21457      20FBFFFF 
- 21458 1447e F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 21458      80F7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 21459              		.loc 2 381 0
- 21460 14486 F30F6F85 		movdqu	-1264(%rbp), %xmm0
- 21460      10FBFFFF 
- 21461 1448e F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 21461      70F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21462              		.loc 2 383 0
- 21463 14496 C7853CFB 		movl	$0, -1220(%rbp)
- 21463      FFFF0000 
- 21463      0000
- 21464 144a0 EB5C     		jmp	.L530
- 21465              	.L533:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 21466              		.loc 2 385 0
- 21467 144a2 8B853CFB 		movl	-1220(%rbp), %eax
- 21467      FFFF
- 21468 144a8 89C0     		mov	%eax, %eax
- 21469 144aa 0FB68405 		movzbl	-2192(%rbp,%rax), %eax
- 21469      70F7FFFF 
- 21470 144b2 84C0     		testb	%al, %al
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 655
-
-
- 21471 144b4 7912     		jns	.L531
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 21472              		.loc 2 386 0
- 21473 144b6 8B853CFB 		movl	-1220(%rbp), %eax
- 21473      FFFF
- 21474 144bc 89C0     		mov	%eax, %eax
- 21475 144be C6840590 		movb	$0, -2160(%rbp,%rax)
- 21475      F7FFFF00 
- 21476 144c6 EB2F     		jmp	.L532
- 21477              	.L531:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 21478              		.loc 2 388 0
- 21479 144c8 8B8D3CFB 		movl	-1220(%rbp), %ecx
- 21479      FFFF
- 21480 144ce 8B853CFB 		movl	-1220(%rbp), %eax
- 21480      FFFF
- 21481 144d4 89C0     		mov	%eax, %eax
- 21482 144d6 0FB68405 		movzbl	-2192(%rbp,%rax), %eax
- 21482      70F7FFFF 
- 21483 144de 0FB6C0   		movzbl	%al, %eax
- 21484 144e1 83E00F   		andl	$15, %eax
- 21485 144e4 4898     		cltq
- 21486 144e6 0FB69405 		movzbl	-2176(%rbp,%rax), %edx
- 21486      80F7FFFF 
- 21487 144ee 89C8     		mov	%ecx, %eax
- 21488 144f0 88940590 		movb	%dl, -2160(%rbp,%rax)
- 21488      F7FFFF
- 21489              	.L532:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21490              		.loc 2 383 0
- 21491 144f7 83853CFB 		addl	$1, -1220(%rbp)
- 21491      FFFF01
- 21492              	.L530:
- 21493 144fe 83BD3CFB 		cmpl	$15, -1220(%rbp)
- 21493      FFFF0F
- 21494 14505 769B     		jbe	.L533
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 21495              		.loc 2 391 0
- 21496 14507 F30F6F85 		movdqu	-2160(%rbp), %xmm0
- 21496      90F7FFFF 
- 21497              	.LBE2572:
- 21498              	.LBE2571:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 21499              		.loc 2 872 0
- 21500 1450f F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 21500      50FAFFFF 
- 21501 14517 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 21501      40FAFFFF 
- 21502 1451f F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 21502      50FBFFFF 
- 21503 14527 F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 21503      50FAFFFF 
- 21504 1452f F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 21504      40FBFFFF 
- 21505              	.LBB2573:
- 21506              	.LBB2574:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 656
-
-
- 21507              		.loc 2 234 0
- 21508 14537 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 21508      40FBFFFF 
- 21509 1453f F30F6F8D 		movdqu	-1200(%rbp), %xmm1
- 21509      50FBFFFF 
- 21510 14547 660FEBC1 		por	%xmm1, %xmm0
- 21511              	.LBE2574:
- 21512              	.LBE2573:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 21513              		.loc 2 874 0
- 21514 1454b F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 21514      40FAFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 21515              		.loc 2 876 0
- 21516 14553 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 21516      00000000 
- 21517 1455b F30F6F8D 		movdqu	-1440(%rbp), %xmm1
- 21517      60FAFFFF 
- 21518 14563 F30F7F8D 		movdqu	%xmm1, -1168(%rbp)
- 21518      70FBFFFF 
- 21519 1456b F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 21519      60FBFFFF 
- 21520              	.LBB2575:
- 21521              	.LBB2576:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 21522              		.loc 2 290 0
- 21523 14573 F30F6F8D 		movdqu	-1184(%rbp), %xmm1
- 21523      60FBFFFF 
- 21524 1457b F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 21524      70FBFFFF 
- 21525 14583 660FF8C1 		psubb	%xmm1, %xmm0
- 21526              	.LBE2576:
- 21527              	.LBE2575:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 21528              		.loc 2 876 0
- 21529 14587 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 21529      60FAFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 21530              		.loc 2 878 0
- 21531 1458f 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 21531      00000000 
- 21532 14597 F30F6F8D 		movdqu	-1440(%rbp), %xmm1
- 21532      60FAFFFF 
- 21533 1459f F30F7F8D 		movdqu	%xmm1, -1136(%rbp)
- 21533      90FBFFFF 
- 21534 145a7 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 21534      80FBFFFF 
- 21535              	.LBB2577:
- 21536              	.LBB2578:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 21537              		.loc 2 206 0
- 21538 145af F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 21538      80FBFFFF 
- 21539 145b7 F30F6F8D 		movdqu	-1136(%rbp), %xmm1
- 21539      90FBFFFF 
- 21540 145bf 660FDBC1 		pand	%xmm1, %xmm0
- 21541              	.LBE2578:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 657
-
-
- 21542              	.LBE2577:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 21543              		.loc 2 878 0
- 21544 145c3 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 21544      60FAFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 21545              		.loc 2 866 0
- 21546 145cb 83853CFA 		addl	$1, -1476(%rbp)
- 21546      FFFF01
- 21547              	.L525:
- 21548 145d2 83BD3CFA 		cmpl	$15, -1476(%rbp)
- 21548      FFFF0F
- 21549 145d9 0F866DFD 		jbe	.L534
- 21549      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 21550              		.loc 2 882 0
- 21551 145df F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 21551      40FAFFFF 
- 21552              	.LBE2562:
- 21553              	.LBE2561:
- 21554              	.LBE2560:
- 21555              	.LBE2559:
-2029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
- 21556              		.loc 2 2029 0
- 21557 145e7 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 21557      D0F9FFFF 
- 21558              	.LBB2579:
-2031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
- 21559              		.loc 2 2031 0
- 21560 145ef F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 21560      D0F9FFFF 
- 21561 145f7 F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 21561      20F7FFFF 
- 21562 145ff E8000000 		call	KDbgWriterGet at PLT
- 21562      00
- 21563 14604 4885C0   		testq	%rax, %rax
- 21564 14607 7479     		je	.L536
- 21565 14609 BF010000 		movl	$1, %edi
- 21565      00
- 21566 1460e E8000000 		call	KDbgCondToFlag at PLT
- 21566      00
- 21567 14613 4889C6   		movq	%rax, %rsi
- 21568 14616 BF100000 		movl	$16, %edi
- 21568      00
- 21569 1461b E8000000 		call	KDbgTestModConds at PLT
- 21569      00
- 21570 14620 84C0     		testb	%al, %al
- 21571 14622 745E     		je	.L536
- 21572 14624 8B852CF7 		movl	-2260(%rbp), %eax
- 21572      FFFF
- 21573 1462a 89C7     		movl	%eax, %edi
- 21574 1462c E8CFB9FE 		call	bswap_32
- 21574      FF
- 21575 14631 4189C5   		movl	%eax, %r13d
- 21576 14634 8B8528F7 		movl	-2264(%rbp), %eax
- 21576      FFFF
- 21577 1463a 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 658
-
-
- 21578 1463c E8BFB9FE 		call	bswap_32
- 21578      FF
- 21579 14641 4189C4   		movl	%eax, %r12d
- 21580 14644 8B8524F7 		movl	-2268(%rbp), %eax
- 21580      FFFF
- 21581 1464a 89C7     		movl	%eax, %edi
- 21582 1464c E8AFB9FE 		call	bswap_32
- 21582      FF
- 21583 14651 89C3     		movl	%eax, %ebx
- 21584 14653 8B8520F7 		movl	-2272(%rbp), %eax
- 21584      FFFF
- 21585 14659 89C7     		movl	%eax, %edi
- 21586 1465b E8A0B9FE 		call	bswap_32
- 21586      FF
- 21587 14660 4589E9   		movl	%r13d, %r9d
- 21588 14663 4589E0   		movl	%r12d, %r8d
- 21589 14666 89D9     		movl	%ebx, %ecx
- 21590 14668 89C2     		movl	%eax, %edx
- 21591 1466a 488D3500 		leaq	.LC8(%rip), %rsi
- 21591      000000
- 21592 14671 488D3D00 		leaq	.LC1(%rip), %rdi
- 21592      000000
- 21593 14678 B8000000 		movl	$0, %eax
- 21593      00
- 21594 1467d E8000000 		call	KDbgMsg at PLT
- 21594      00
- 21595              	.L536:
- 21596 14682 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 21596      D0F9FFFF 
- 21597 1468a F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 21597      A0FBFFFF 
- 21598              	.LBE2579:
- 21599              	.LBB2580:
- 21600              	.LBB2581:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21601              		.loc 2 581 0
- 21602 14692 660F6F05 		movdqa	ShiftRowTable.6741(%rip), %xmm0
- 21602      00000000 
- 21603 1469a F30F6F8D 		movdqu	-1120(%rbp), %xmm1
- 21603      A0FBFFFF 
- 21604 146a2 F30F7F8D 		movdqu	%xmm1, -1088(%rbp)
- 21604      C0FBFFFF 
- 21605 146aa F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 21605      B0FBFFFF 
- 21606              	.LBB2582:
- 21607              	.LBB2583:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 21608              		.loc 2 380 0
- 21609 146b2 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 21609      C0FBFFFF 
- 21610 146ba F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 21610      B0F7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 21611              		.loc 2 381 0
- 21612 146c2 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 21612      B0FBFFFF 
- 21613 146ca F30F7F85 		movdqu	%xmm0, -2144(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 659
-
-
- 21613      A0F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21614              		.loc 2 383 0
- 21615 146d2 C785DCFB 		movl	$0, -1060(%rbp)
- 21615      FFFF0000 
- 21615      0000
- 21616 146dc EB5C     		jmp	.L537
- 21617              	.L540:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 21618              		.loc 2 385 0
- 21619 146de 8B85DCFB 		movl	-1060(%rbp), %eax
- 21619      FFFF
- 21620 146e4 89C0     		mov	%eax, %eax
- 21621 146e6 0FB68405 		movzbl	-2144(%rbp,%rax), %eax
- 21621      A0F7FFFF 
- 21622 146ee 84C0     		testb	%al, %al
- 21623 146f0 7912     		jns	.L538
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 21624              		.loc 2 386 0
- 21625 146f2 8B85DCFB 		movl	-1060(%rbp), %eax
- 21625      FFFF
- 21626 146f8 89C0     		mov	%eax, %eax
- 21627 146fa C68405C0 		movb	$0, -2112(%rbp,%rax)
- 21627      F7FFFF00 
- 21628 14702 EB2F     		jmp	.L539
- 21629              	.L538:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 21630              		.loc 2 388 0
- 21631 14704 8B8DDCFB 		movl	-1060(%rbp), %ecx
- 21631      FFFF
- 21632 1470a 8B85DCFB 		movl	-1060(%rbp), %eax
- 21632      FFFF
- 21633 14710 89C0     		mov	%eax, %eax
- 21634 14712 0FB68405 		movzbl	-2144(%rbp,%rax), %eax
- 21634      A0F7FFFF 
- 21635 1471a 0FB6C0   		movzbl	%al, %eax
- 21636 1471d 83E00F   		andl	$15, %eax
- 21637 14720 4898     		cltq
- 21638 14722 0FB69405 		movzbl	-2128(%rbp,%rax), %edx
- 21638      B0F7FFFF 
- 21639 1472a 89C8     		mov	%ecx, %eax
- 21640 1472c 889405C0 		movb	%dl, -2112(%rbp,%rax)
- 21640      F7FFFF
- 21641              	.L539:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21642              		.loc 2 383 0
- 21643 14733 8385DCFB 		addl	$1, -1060(%rbp)
- 21643      FFFF01
- 21644              	.L537:
- 21645 1473a 83BDDCFB 		cmpl	$15, -1060(%rbp)
- 21645      FFFF0F
- 21646 14741 769B     		jbe	.L540
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 21647              		.loc 2 391 0
- 21648 14743 F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 21648      C0F7FFFF 
- 21649              	.LBE2583:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 660
-
-
- 21650              	.LBE2582:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21651              		.loc 2 581 0
- 21652 1474b F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 21652      A0FBFFFF 
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 21653              		.loc 2 582 0
- 21654 14753 F30F6F85 		movdqu	-1120(%rbp), %xmm0
- 21654      A0FBFFFF 
- 21655              	.LBE2581:
- 21656              	.LBE2580:
-2033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
- 21657              		.loc 2 2033 0
- 21658 1475b F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 21658      D0F9FFFF 
- 21659              	.LBB2584:
-2035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
- 21660              		.loc 2 2035 0
- 21661 14763 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 21661      D0F9FFFF 
- 21662 1476b F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 21662      10F7FFFF 
- 21663 14773 E8000000 		call	KDbgWriterGet at PLT
- 21663      00
- 21664 14778 4885C0   		testq	%rax, %rax
- 21665 1477b 7479     		je	.L542
- 21666 1477d BF010000 		movl	$1, %edi
- 21666      00
- 21667 14782 E8000000 		call	KDbgCondToFlag at PLT
- 21667      00
- 21668 14787 4889C6   		movq	%rax, %rsi
- 21669 1478a BF100000 		movl	$16, %edi
- 21669      00
- 21670 1478f E8000000 		call	KDbgTestModConds at PLT
- 21670      00
- 21671 14794 84C0     		testb	%al, %al
- 21672 14796 745E     		je	.L542
- 21673 14798 8B851CF7 		movl	-2276(%rbp), %eax
- 21673      FFFF
- 21674 1479e 89C7     		movl	%eax, %edi
- 21675 147a0 E85BB8FE 		call	bswap_32
- 21675      FF
- 21676 147a5 4189C5   		movl	%eax, %r13d
- 21677 147a8 8B8518F7 		movl	-2280(%rbp), %eax
- 21677      FFFF
- 21678 147ae 89C7     		movl	%eax, %edi
- 21679 147b0 E84BB8FE 		call	bswap_32
- 21679      FF
- 21680 147b5 4189C4   		movl	%eax, %r12d
- 21681 147b8 8B8514F7 		movl	-2284(%rbp), %eax
- 21681      FFFF
- 21682 147be 89C7     		movl	%eax, %edi
- 21683 147c0 E83BB8FE 		call	bswap_32
- 21683      FF
- 21684 147c5 89C3     		movl	%eax, %ebx
- 21685 147c7 8B8510F7 		movl	-2288(%rbp), %eax
- 21685      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 661
-
-
- 21686 147cd 89C7     		movl	%eax, %edi
- 21687 147cf E82CB8FE 		call	bswap_32
- 21687      FF
- 21688 147d4 4589E9   		movl	%r13d, %r9d
- 21689 147d7 4589E0   		movl	%r12d, %r8d
- 21690 147da 89D9     		movl	%ebx, %ecx
- 21691 147dc 89C2     		movl	%eax, %edx
- 21692 147de 488D3500 		leaq	.LC9(%rip), %rsi
- 21692      000000
- 21693 147e5 488D3D00 		leaq	.LC1(%rip), %rdi
- 21693      000000
- 21694 147ec B8000000 		movl	$0, %eax
- 21694      00
- 21695 147f1 E8000000 		call	KDbgMsg at PLT
- 21695      00
- 21696              	.L542:
- 21697 147f6 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 21697      D0F9FFFF 
- 21698 147fe F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 21698      E0FBFFFF 
- 21699 14806 F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 21699      E0FBFFFF 
- 21700 1480e F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 21700      00FCFFFF 
- 21701              	.LBE2584:
- 21702              	.LBB2585:
- 21703              	.LBB2586:
- 21704              	.LBB2587:
- 21705              	.LBB2588:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21706              		.loc 2 667 0
- 21707 14816 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 21707      00000000 
- 21708 1481e F30F6F8D 		movdqu	-1024(%rbp), %xmm1
- 21708      00FCFFFF 
- 21709 14826 F30F7F8D 		movdqu	%xmm1, -992(%rbp)
- 21709      20FCFFFF 
- 21710 1482e F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 21710      10FCFFFF 
- 21711              	.LBB2589:
- 21712              	.LBB2590:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 21713              		.loc 2 380 0
- 21714 14836 F30F6F85 		movdqu	-992(%rbp), %xmm0
- 21714      20FCFFFF 
- 21715 1483e F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 21715      F0F7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 21716              		.loc 2 381 0
- 21717 14846 F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 21717      10FCFFFF 
- 21718 1484e F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 21718      E0F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21719              		.loc 2 383 0
- 21720 14856 C7853CFC 		movl	$0, -964(%rbp)
- 21720      FFFF0000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 662
-
-
- 21720      0000
- 21721 14860 EB5C     		jmp	.L543
- 21722              	.L546:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 21723              		.loc 2 385 0
- 21724 14862 8B853CFC 		movl	-964(%rbp), %eax
- 21724      FFFF
- 21725 14868 89C0     		mov	%eax, %eax
- 21726 1486a 0FB68405 		movzbl	-2080(%rbp,%rax), %eax
- 21726      E0F7FFFF 
- 21727 14872 84C0     		testb	%al, %al
- 21728 14874 7912     		jns	.L544
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 21729              		.loc 2 386 0
- 21730 14876 8B853CFC 		movl	-964(%rbp), %eax
- 21730      FFFF
- 21731 1487c 89C0     		mov	%eax, %eax
- 21732 1487e C6840500 		movb	$0, -2048(%rbp,%rax)
- 21732      F8FFFF00 
- 21733 14886 EB2F     		jmp	.L545
- 21734              	.L544:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 21735              		.loc 2 388 0
- 21736 14888 8B8D3CFC 		movl	-964(%rbp), %ecx
- 21736      FFFF
- 21737 1488e 8B853CFC 		movl	-964(%rbp), %eax
- 21737      FFFF
- 21738 14894 89C0     		mov	%eax, %eax
- 21739 14896 0FB68405 		movzbl	-2080(%rbp,%rax), %eax
- 21739      E0F7FFFF 
- 21740 1489e 0FB6C0   		movzbl	%al, %eax
- 21741 148a1 83E00F   		andl	$15, %eax
- 21742 148a4 4898     		cltq
- 21743 148a6 0FB69405 		movzbl	-2064(%rbp,%rax), %edx
- 21743      F0F7FFFF 
- 21744 148ae 89C8     		mov	%ecx, %eax
- 21745 148b0 88940500 		movb	%dl, -2048(%rbp,%rax)
- 21745      F8FFFF
- 21746              	.L545:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21747              		.loc 2 383 0
- 21748 148b7 83853CFC 		addl	$1, -964(%rbp)
- 21748      FFFF01
- 21749              	.L543:
- 21750 148be 83BD3CFC 		cmpl	$15, -964(%rbp)
- 21750      FFFF0F
- 21751 148c5 769B     		jbe	.L546
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 21752              		.loc 2 391 0
- 21753 148c7 F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 21753      00F8FFFF 
- 21754              	.LBE2590:
- 21755              	.LBE2589:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21756              		.loc 2 667 0
- 21757 148cf F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 21757      00FCFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 663
-
-
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 21758              		.loc 2 668 0
- 21759 148d7 F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 21759      00FCFFFF 
- 21760              	.LBE2588:
- 21761              	.LBE2587:
-1047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(RotBytesLeft) (state);
- 21762              		.loc 2 1047 0
- 21763 148df 660F7F85 		movdqa	%xmm0, -2448(%rbp)
- 21763      70F6FFFF 
- 21764 148e7 660F6F85 		movdqa	-2448(%rbp), %xmm0
- 21764      70F6FFFF 
- 21765 148ef F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 21765      40FCFFFF 
- 21766              	.LBB2591:
- 21767              	.LBB2592:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21768              		.loc 2 667 0
- 21769 148f7 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 21769      00000000 
- 21770 148ff F30F6F8D 		movdqu	-960(%rbp), %xmm1
- 21770      40FCFFFF 
- 21771 14907 F30F7F8D 		movdqu	%xmm1, -928(%rbp)
- 21771      60FCFFFF 
- 21772 1490f F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 21772      50FCFFFF 
- 21773              	.LBB2593:
- 21774              	.LBB2594:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 21775              		.loc 2 380 0
- 21776 14917 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 21776      60FCFFFF 
- 21777 1491f F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 21777      20F8FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 21778              		.loc 2 381 0
- 21779 14927 F30F6F85 		movdqu	-944(%rbp), %xmm0
- 21779      50FCFFFF 
- 21780 1492f F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 21780      10F8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21781              		.loc 2 383 0
- 21782 14937 C7857CFC 		movl	$0, -900(%rbp)
- 21782      FFFF0000 
- 21782      0000
- 21783 14941 EB5C     		jmp	.L547
- 21784              	.L550:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 21785              		.loc 2 385 0
- 21786 14943 8B857CFC 		movl	-900(%rbp), %eax
- 21786      FFFF
- 21787 14949 89C0     		mov	%eax, %eax
- 21788 1494b 0FB68405 		movzbl	-2032(%rbp,%rax), %eax
- 21788      10F8FFFF 
- 21789 14953 84C0     		testb	%al, %al
- 21790 14955 7912     		jns	.L548
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 664
-
-
- 21791              		.loc 2 386 0
- 21792 14957 8B857CFC 		movl	-900(%rbp), %eax
- 21792      FFFF
- 21793 1495d 89C0     		mov	%eax, %eax
- 21794 1495f C6840530 		movb	$0, -2000(%rbp,%rax)
- 21794      F8FFFF00 
- 21795 14967 EB2F     		jmp	.L549
- 21796              	.L548:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 21797              		.loc 2 388 0
- 21798 14969 8B8D7CFC 		movl	-900(%rbp), %ecx
- 21798      FFFF
- 21799 1496f 8B857CFC 		movl	-900(%rbp), %eax
- 21799      FFFF
- 21800 14975 89C0     		mov	%eax, %eax
- 21801 14977 0FB68405 		movzbl	-2032(%rbp,%rax), %eax
- 21801      10F8FFFF 
- 21802 1497f 0FB6C0   		movzbl	%al, %eax
- 21803 14982 83E00F   		andl	$15, %eax
- 21804 14985 4898     		cltq
- 21805 14987 0FB69405 		movzbl	-2016(%rbp,%rax), %edx
- 21805      20F8FFFF 
- 21806 1498f 89C8     		mov	%ecx, %eax
- 21807 14991 88940530 		movb	%dl, -2000(%rbp,%rax)
- 21807      F8FFFF
- 21808              	.L549:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21809              		.loc 2 383 0
- 21810 14998 83857CFC 		addl	$1, -900(%rbp)
- 21810      FFFF01
- 21811              	.L547:
- 21812 1499f 83BD7CFC 		cmpl	$15, -900(%rbp)
- 21812      FFFF0F
- 21813 149a6 769B     		jbe	.L550
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 21814              		.loc 2 391 0
- 21815 149a8 F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 21815      30F8FFFF 
- 21816              	.LBE2594:
- 21817              	.LBE2593:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21818              		.loc 2 667 0
- 21819 149b0 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 21819      40FCFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 21820              		.loc 2 668 0
- 21821 149b8 F30F6F85 		movdqu	-960(%rbp), %xmm0
- 21821      40FCFFFF 
- 21822              	.LBE2592:
- 21823              	.LBE2591:
-1048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c2 = AESBCMEMBER(RotBytesLeft) (c1);
- 21824              		.loc 2 1048 0
- 21825 149c0 660F7F85 		movdqa	%xmm0, -2464(%rbp)
- 21825      60F6FFFF 
- 21826 149c8 660F6F85 		movdqa	-2464(%rbp), %xmm0
- 21826      60F6FFFF 
- 21827 149d0 F30F7F85 		movdqu	%xmm0, -896(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 665
-
-
- 21827      80FCFFFF 
- 21828              	.LBB2595:
- 21829              	.LBB2596:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21830              		.loc 2 667 0
- 21831 149d8 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 21831      00000000 
- 21832 149e0 F30F6F8D 		movdqu	-896(%rbp), %xmm1
- 21832      80FCFFFF 
- 21833 149e8 F30F7F8D 		movdqu	%xmm1, -864(%rbp)
- 21833      A0FCFFFF 
- 21834 149f0 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 21834      90FCFFFF 
- 21835              	.LBB2597:
- 21836              	.LBB2598:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 21837              		.loc 2 380 0
- 21838 149f8 F30F6F85 		movdqu	-864(%rbp), %xmm0
- 21838      A0FCFFFF 
- 21839 14a00 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 21839      50F8FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 21840              		.loc 2 381 0
- 21841 14a08 F30F6F85 		movdqu	-880(%rbp), %xmm0
- 21841      90FCFFFF 
- 21842 14a10 F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 21842      40F8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21843              		.loc 2 383 0
- 21844 14a18 C785BCFC 		movl	$0, -836(%rbp)
- 21844      FFFF0000 
- 21844      0000
- 21845 14a22 EB5C     		jmp	.L551
- 21846              	.L554:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 21847              		.loc 2 385 0
- 21848 14a24 8B85BCFC 		movl	-836(%rbp), %eax
- 21848      FFFF
- 21849 14a2a 89C0     		mov	%eax, %eax
- 21850 14a2c 0FB68405 		movzbl	-1984(%rbp,%rax), %eax
- 21850      40F8FFFF 
- 21851 14a34 84C0     		testb	%al, %al
- 21852 14a36 7912     		jns	.L552
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 21853              		.loc 2 386 0
- 21854 14a38 8B85BCFC 		movl	-836(%rbp), %eax
- 21854      FFFF
- 21855 14a3e 89C0     		mov	%eax, %eax
- 21856 14a40 C6840560 		movb	$0, -1952(%rbp,%rax)
- 21856      F8FFFF00 
- 21857 14a48 EB2F     		jmp	.L553
- 21858              	.L552:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 21859              		.loc 2 388 0
- 21860 14a4a 8B8DBCFC 		movl	-836(%rbp), %ecx
- 21860      FFFF
- 21861 14a50 8B85BCFC 		movl	-836(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 666
-
-
- 21861      FFFF
- 21862 14a56 89C0     		mov	%eax, %eax
- 21863 14a58 0FB68405 		movzbl	-1984(%rbp,%rax), %eax
- 21863      40F8FFFF 
- 21864 14a60 0FB6C0   		movzbl	%al, %eax
- 21865 14a63 83E00F   		andl	$15, %eax
- 21866 14a66 4898     		cltq
- 21867 14a68 0FB69405 		movzbl	-1968(%rbp,%rax), %edx
- 21867      50F8FFFF 
- 21868 14a70 89C8     		mov	%ecx, %eax
- 21869 14a72 88940560 		movb	%dl, -1952(%rbp,%rax)
- 21869      F8FFFF
- 21870              	.L553:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 21871              		.loc 2 383 0
- 21872 14a79 8385BCFC 		addl	$1, -836(%rbp)
- 21872      FFFF01
- 21873              	.L551:
- 21874 14a80 83BDBCFC 		cmpl	$15, -836(%rbp)
- 21874      FFFF0F
- 21875 14a87 769B     		jbe	.L554
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 21876              		.loc 2 391 0
- 21877 14a89 F30F6F85 		movdqu	-1952(%rbp), %xmm0
- 21877      60F8FFFF 
- 21878              	.LBE2598:
- 21879              	.LBE2597:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 21880              		.loc 2 667 0
- 21881 14a91 F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 21881      80FCFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 21882              		.loc 2 668 0
- 21883 14a99 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 21883      80FCFFFF 
- 21884              	.LBE2596:
- 21885              	.LBE2595:
-1049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c3 = AESBCMEMBER(RotBytesLeft) (c2);
- 21886              		.loc 2 1049 0
- 21887 14aa1 660F7F85 		movdqa	%xmm0, -2480(%rbp)
- 21887      50F6FFFF 
- 21888 14aa9 F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 21888      E0FBFFFF 
- 21889 14ab1 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 21889      D0FCFFFF 
- 21890 14ab9 660F6F85 		movdqa	-2448(%rbp), %xmm0
- 21890      70F6FFFF 
- 21891 14ac1 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 21891      C0FCFFFF 
- 21892              	.LBB2599:
- 21893              	.LBB2600:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 21894              		.loc 2 178 0
- 21895 14ac9 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 21895      C0FCFFFF 
- 21896 14ad1 F30F6F8D 		movdqu	-816(%rbp), %xmm1
- 21896      D0FCFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 667
-
-
- 21897 14ad9 660FEFC1 		pxor	%xmm1, %xmm0
- 21898              	.LBE2600:
- 21899              	.LBE2599:
-1050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(VecXor) (state, c1);
- 21900              		.loc 2 1050 0
- 21901 14add 660F7F85 		movdqa	%xmm0, -2432(%rbp)
- 21901      80F6FFFF 
- 21902              	.LBB2601:
-1060:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp.state = c0;
- 21903              		.loc 2 1060 0
- 21904 14ae5 660F6F85 		movdqa	-2432(%rbp), %xmm0
- 21904      80F6FFFF 
- 21905 14aed F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 21905      D0F7FFFF 
-1062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof tmp; ++ix)
- 21906              		.loc 2 1062 0
- 21907 14af5 C785FCFB 		movl	$0, -1028(%rbp)
- 21907      FFFF0000 
- 21907      0000
- 21908 14aff EB66     		jmp	.L555
- 21909              	.L556:
-1063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             tmp.bytes[ix] = AESBCMEMBER(FFmul02)(tmp.bytes[ix]);
- 21910              		.loc 2 1063 0
- 21911 14b01 8B8DFCFB 		movl	-1028(%rbp), %ecx
- 21911      FFFF
- 21912 14b07 8B85FCFB 		movl	-1028(%rbp), %eax
- 21912      FFFF
- 21913 14b0d 89C0     		mov	%eax, %eax
- 21914 14b0f 0FB68405 		movzbl	-2096(%rbp,%rax), %eax
- 21914      D0F7FFFF 
- 21915 14b17 0FB6C0   		movzbl	%al, %eax
- 21916 14b1a 8885EEFC 		movb	%al, -786(%rbp)
- 21916      FFFF
- 21917              	.LBB2602:
- 21918              	.LBB2603:
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
- 21919              		.loc 2 1012 0
- 21920 14b20 0FB685EE 		movzbl	-786(%rbp), %eax
- 21920      FCFFFF
- 21921 14b27 01C0     		addl	%eax, %eax
- 21922 14b29 89C3     		movl	%eax, %ebx
- 21923 14b2b 0FB685EE 		movzbl	-786(%rbp), %eax
- 21923      FCFFFF
- 21924 14b32 C0E807   		shrb	$7, %al
- 21925 14b35 0FB6C0   		movzbl	%al, %eax
- 21926 14b38 8885EFFC 		movb	%al, -785(%rbp)
- 21926      FFFF
- 21927              	.LBB2604:
- 21928              	.LBB2605:
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
- 21929              		.loc 2 1001 0
- 21930 14b3e 0FB685EF 		movzbl	-785(%rbp), %eax
- 21930      FCFFFF
- 21931 14b45 4863D0   		movslq	%eax,%rdx
- 21932 14b48 488D0500 		leaq	KAESBlockCipherVecFFtable(%rip), %rax
- 21932      000000
- 21933 14b4f 0FB60402 		movzbl	(%rdx,%rax), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 668
-
-
- 21934              	.LBE2605:
- 21935              	.LBE2604:
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
- 21936              		.loc 2 1012 0
- 21937 14b53 31D8     		xorl	%ebx, %eax
-1063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             tmp.bytes[ix] = AESBCMEMBER(FFmul02)(tmp.bytes[ix]);
- 21938              		.loc 2 1063 0
- 21939 14b55 89C2     		movl	%eax, %edx
- 21940              	.LBE2603:
- 21941              	.LBE2602:
- 21942 14b57 89C8     		mov	%ecx, %eax
- 21943 14b59 889405D0 		movb	%dl, -2096(%rbp,%rax)
- 21943      F7FFFF
-1062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof tmp; ++ix)
- 21944              		.loc 2 1062 0
- 21945 14b60 8385FCFB 		addl	$1, -1028(%rbp)
- 21945      FFFF01
- 21946              	.L555:
- 21947 14b67 83BDFCFB 		cmpl	$15, -1028(%rbp)
- 21947      FFFF0F
- 21948 14b6e 7691     		jbe	.L556
-1064:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         c0 = tmp.state;
- 21949              		.loc 2 1064 0
- 21950 14b70 F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 21950      D0F7FFFF 
- 21951 14b78 660F7F85 		movdqa	%xmm0, -2432(%rbp)
- 21951      80F6FFFF 
- 21952 14b80 660F6F85 		movdqa	-2448(%rbp), %xmm0
- 21952      70F6FFFF 
- 21953 14b88 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 21953      00FDFFFF 
- 21954 14b90 660F6F85 		movdqa	-2464(%rbp), %xmm0
- 21954      60F6FFFF 
- 21955 14b98 F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 21955      F0FCFFFF 
- 21956              	.LBE2601:
- 21957              	.LBB2606:
- 21958              	.LBB2607:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 21959              		.loc 2 178 0
- 21960 14ba0 F30F6F85 		movdqu	-784(%rbp), %xmm0
- 21960      F0FCFFFF 
- 21961 14ba8 F30F6F8D 		movdqu	-768(%rbp), %xmm1
- 21961      00FDFFFF 
- 21962 14bb0 660FEFC1 		pxor	%xmm1, %xmm0
- 21963              	.LBE2607:
- 21964              	.LBE2606:
-1067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c2);
- 21965              		.loc 2 1067 0
- 21966 14bb4 660F7F85 		movdqa	%xmm0, -2448(%rbp)
- 21966      70F6FFFF 
- 21967 14bbc 660F6F85 		movdqa	-2448(%rbp), %xmm0
- 21967      70F6FFFF 
- 21968 14bc4 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 21968      20FDFFFF 
- 21969 14bcc 660F6F85 		movdqa	-2480(%rbp), %xmm0
- 21969      50F6FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 669
-
-
- 21970 14bd4 F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 21970      10FDFFFF 
- 21971              	.LBB2608:
- 21972              	.LBB2609:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 21973              		.loc 2 178 0
- 21974 14bdc F30F6F85 		movdqu	-752(%rbp), %xmm0
- 21974      10FDFFFF 
- 21975 14be4 F30F6F8D 		movdqu	-736(%rbp), %xmm1
- 21975      20FDFFFF 
- 21976 14bec 660FEFC1 		pxor	%xmm1, %xmm0
- 21977              	.LBE2609:
- 21978              	.LBE2608:
-1068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c3);
- 21979              		.loc 2 1068 0
- 21980 14bf0 660F7F85 		movdqa	%xmm0, -2448(%rbp)
- 21980      70F6FFFF 
- 21981 14bf8 660F6F85 		movdqa	-2448(%rbp), %xmm0
- 21981      70F6FFFF 
- 21982 14c00 F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 21982      40FDFFFF 
- 21983 14c08 660F6F85 		movdqa	-2432(%rbp), %xmm0
- 21983      80F6FFFF 
- 21984 14c10 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 21984      30FDFFFF 
- 21985              	.LBB2610:
- 21986              	.LBB2611:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 21987              		.loc 2 178 0
- 21988 14c18 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 21988      30FDFFFF 
- 21989 14c20 F30F6F8D 		movdqu	-704(%rbp), %xmm1
- 21989      40FDFFFF 
- 21990 14c28 660FEFC1 		pxor	%xmm1, %xmm0
- 21991              	.LBE2611:
- 21992              	.LBE2610:
-1069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c0);
- 21993              		.loc 2 1069 0
- 21994 14c2c 660F7F85 		movdqa	%xmm0, -2448(%rbp)
- 21994      70F6FFFF 
-1071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return c1;
- 21995              		.loc 2 1071 0
- 21996 14c34 660F6F85 		movdqa	-2448(%rbp), %xmm0
- 21996      70F6FFFF 
- 21997              	.LBE2586:
- 21998              	.LBE2585:
-2037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(MixColumns) (state);
- 21999              		.loc 2 2037 0
- 22000 14c3c F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 22000      D0F9FFFF 
- 22001              	.LBB2612:
-2040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After MixColum", state);
- 22002              		.loc 2 2040 0
- 22003 14c44 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 22003      D0F9FFFF 
- 22004 14c4c F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 22004      00F7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 670
-
-
- 22005 14c54 E8000000 		call	KDbgWriterGet at PLT
- 22005      00
- 22006 14c59 4885C0   		testq	%rax, %rax
- 22007 14c5c 7479     		je	.L558
- 22008 14c5e BF010000 		movl	$1, %edi
- 22008      00
- 22009 14c63 E8000000 		call	KDbgCondToFlag at PLT
- 22009      00
- 22010 14c68 4889C6   		movq	%rax, %rsi
- 22011 14c6b BF100000 		movl	$16, %edi
- 22011      00
- 22012 14c70 E8000000 		call	KDbgTestModConds at PLT
- 22012      00
- 22013 14c75 84C0     		testb	%al, %al
- 22014 14c77 745E     		je	.L558
- 22015 14c79 8B850CF7 		movl	-2292(%rbp), %eax
- 22015      FFFF
- 22016 14c7f 89C7     		movl	%eax, %edi
- 22017 14c81 E87AB3FE 		call	bswap_32
- 22017      FF
- 22018 14c86 4189C5   		movl	%eax, %r13d
- 22019 14c89 8B8508F7 		movl	-2296(%rbp), %eax
- 22019      FFFF
- 22020 14c8f 89C7     		movl	%eax, %edi
- 22021 14c91 E86AB3FE 		call	bswap_32
- 22021      FF
- 22022 14c96 4189C4   		movl	%eax, %r12d
- 22023 14c99 8B8504F7 		movl	-2300(%rbp), %eax
- 22023      FFFF
- 22024 14c9f 89C7     		movl	%eax, %edi
- 22025 14ca1 E85AB3FE 		call	bswap_32
- 22025      FF
- 22026 14ca6 89C3     		movl	%eax, %ebx
- 22027 14ca8 8B8500F7 		movl	-2304(%rbp), %eax
- 22027      FFFF
- 22028 14cae 89C7     		movl	%eax, %edi
- 22029 14cb0 E84BB3FE 		call	bswap_32
- 22029      FF
- 22030 14cb5 4589E9   		movl	%r13d, %r9d
- 22031 14cb8 4589E0   		movl	%r12d, %r8d
- 22032 14cbb 89D9     		movl	%ebx, %ecx
- 22033 14cbd 89C2     		movl	%eax, %edx
- 22034 14cbf 488D3500 		leaq	.LC10(%rip), %rsi
- 22034      000000
- 22035 14cc6 488D3D00 		leaq	.LC1(%rip), %rdi
- 22035      000000
- 22036 14ccd B8000000 		movl	$0, %eax
- 22036      00
- 22037 14cd2 E8000000 		call	KDbgMsg at PLT
- 22037      00
- 22038              	.L558:
- 22039 14cd7 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 22039      D0F9FFFF 
- 22040 14cdf F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 22040      60FDFFFF 
- 22041 14ce7 F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 22041      C0F9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 671
-
-
- 22042 14cef F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 22042      50FDFFFF 
- 22043 14cf7 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 22043      60FDFFFF 
- 22044 14cff F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 22044      80FDFFFF 
- 22045 14d07 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 22045      50FDFFFF 
- 22046 14d0f F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 22046      70FDFFFF 
- 22047              	.LBE2612:
- 22048              	.LBB2613:
- 22049              	.LBB2614:
- 22050              	.LBB2615:
- 22051              	.LBB2616:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 22052              		.loc 2 178 0
- 22053 14d17 F30F6F85 		movdqu	-656(%rbp), %xmm0
- 22053      70FDFFFF 
- 22054 14d1f F30F6F8D 		movdqu	-640(%rbp), %xmm1
- 22054      80FDFFFF 
- 22055 14d27 660FEFC1 		pxor	%xmm1, %xmm0
- 22056              	.LBE2616:
- 22057              	.LBE2615:
- 22058              	.LBE2614:
- 22059              	.LBE2613:
-2042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 22060              		.loc 2 2042 0
- 22061 14d2b F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 22061      D0F9FFFF 
- 22062              	.LBB2617:
-2044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 22063              		.loc 2 2044 0
- 22064 14d33 F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 22064      C0F9FFFF 
- 22065 14d3b F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 22065      F0F6FFFF 
- 22066 14d43 E8000000 		call	KDbgWriterGet at PLT
- 22066      00
- 22067 14d48 4885C0   		testq	%rax, %rax
- 22068 14d4b 7479     		je	.L560
- 22069 14d4d BF010000 		movl	$1, %edi
- 22069      00
- 22070 14d52 E8000000 		call	KDbgCondToFlag at PLT
- 22070      00
- 22071 14d57 4889C6   		movq	%rax, %rsi
- 22072 14d5a BF100000 		movl	$16, %edi
- 22072      00
- 22073 14d5f E8000000 		call	KDbgTestModConds at PLT
- 22073      00
- 22074 14d64 84C0     		testb	%al, %al
- 22075 14d66 745E     		je	.L560
- 22076 14d68 8B85FCF6 		movl	-2308(%rbp), %eax
- 22076      FFFF
- 22077 14d6e 89C7     		movl	%eax, %edi
- 22078 14d70 E88BB2FE 		call	bswap_32
- 22078      FF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 672
-
-
- 22079 14d75 4189C5   		movl	%eax, %r13d
- 22080 14d78 8B85F8F6 		movl	-2312(%rbp), %eax
- 22080      FFFF
- 22081 14d7e 89C7     		movl	%eax, %edi
- 22082 14d80 E87BB2FE 		call	bswap_32
- 22082      FF
- 22083 14d85 4189C4   		movl	%eax, %r12d
- 22084 14d88 8B85F4F6 		movl	-2316(%rbp), %eax
- 22084      FFFF
- 22085 14d8e 89C7     		movl	%eax, %edi
- 22086 14d90 E86BB2FE 		call	bswap_32
- 22086      FF
- 22087 14d95 89C3     		movl	%eax, %ebx
- 22088 14d97 8B85F0F6 		movl	-2320(%rbp), %eax
- 22088      FFFF
- 22089 14d9d 89C7     		movl	%eax, %edi
- 22090 14d9f E85CB2FE 		call	bswap_32
- 22090      FF
- 22091 14da4 4589E9   		movl	%r13d, %r9d
- 22092 14da7 4589E0   		movl	%r12d, %r8d
- 22093 14daa 89D9     		movl	%ebx, %ecx
- 22094 14dac 89C2     		movl	%eax, %edx
- 22095 14dae 488D3500 		leaq	.LC6(%rip), %rsi
- 22095      000000
- 22096 14db5 488D3D00 		leaq	.LC1(%rip), %rdi
- 22096      000000
- 22097 14dbc B8000000 		movl	$0, %eax
- 22097      00
- 22098 14dc1 E8000000 		call	KDbgMsg at PLT
- 22098      00
- 22099              	.L560:
- 22100              	.LBE2617:
- 22101              	.LBB2618:
-2045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
- 22102              		.loc 2 2045 0
- 22103 14dc6 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 22103      D0F9FFFF 
- 22104 14dce F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 22104      E0F6FFFF 
- 22105 14dd6 E8000000 		call	KDbgWriterGet at PLT
- 22105      00
- 22106 14ddb 4885C0   		testq	%rax, %rax
- 22107 14dde 7479     		je	.L562
- 22108 14de0 BF010000 		movl	$1, %edi
- 22108      00
- 22109 14de5 E8000000 		call	KDbgCondToFlag at PLT
- 22109      00
- 22110 14dea 4889C6   		movq	%rax, %rsi
- 22111 14ded BF100000 		movl	$16, %edi
- 22111      00
- 22112 14df2 E8000000 		call	KDbgTestModConds at PLT
- 22112      00
- 22113 14df7 84C0     		testb	%al, %al
- 22114 14df9 745E     		je	.L562
- 22115 14dfb 8B85ECF6 		movl	-2324(%rbp), %eax
- 22115      FFFF
- 22116 14e01 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 673
-
-
- 22117 14e03 E8F8B1FE 		call	bswap_32
- 22117      FF
- 22118 14e08 4189C5   		movl	%eax, %r13d
- 22119 14e0b 8B85E8F6 		movl	-2328(%rbp), %eax
- 22119      FFFF
- 22120 14e11 89C7     		movl	%eax, %edi
- 22121 14e13 E8E8B1FE 		call	bswap_32
- 22121      FF
- 22122 14e18 4189C4   		movl	%eax, %r12d
- 22123 14e1b 8B85E4F6 		movl	-2332(%rbp), %eax
- 22123      FFFF
- 22124 14e21 89C7     		movl	%eax, %edi
- 22125 14e23 E8D8B1FE 		call	bswap_32
- 22125      FF
- 22126 14e28 89C3     		movl	%eax, %ebx
- 22127 14e2a 8B85E0F6 		movl	-2336(%rbp), %eax
- 22127      FFFF
- 22128 14e30 89C7     		movl	%eax, %edi
- 22129 14e32 E8C9B1FE 		call	bswap_32
- 22129      FF
- 22130 14e37 4589E9   		movl	%r13d, %r9d
- 22131 14e3a 4589E0   		movl	%r12d, %r8d
- 22132 14e3d 89D9     		movl	%ebx, %ecx
- 22133 14e3f 89C2     		movl	%eax, %edx
- 22134 14e41 488D3500 		leaq	.LC11(%rip), %rsi
- 22134      000000
- 22135 14e48 488D3D00 		leaq	.LC1(%rip), %rdi
- 22135      000000
- 22136 14e4f B8000000 		movl	$0, %eax
- 22136      00
- 22137 14e54 E8000000 		call	KDbgMsg at PLT
- 22137      00
- 22138              	.L562:
- 22139              	.LBE2618:
-2047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 22140              		.loc 2 2047 0
- 22141 14e59 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 22141      D0F9FFFF 
- 22142              	.LBE2557:
- 22143              	.LBE2556:
-2100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(MiddleRound) (state, key[ix] );
- 22144              		.loc 2 2100 0
- 22145 14e61 660F7F85 		movdqa	%xmm0, -2400(%rbp)
- 22145      A0F6FFFF 
-2099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 22146              		.loc 2 2099 0
- 22147 14e69 83855CF9 		addl	$1, -1700(%rbp)
- 22147      FFFF01
- 22148              	.L522:
- 22149 14e70 8B855CF9 		movl	-1700(%rbp), %eax
- 22149      FFFF
- 22150 14e76 3B8594F6 		cmpl	-2412(%rbp), %eax
- 22150      FFFF
- 22151 14e7c 0F822FF0 		jb	.L563
- 22151      FFFF
-2102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(LastRound) (state, key[ix]);
- 22152              		.loc 2 2102 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 674
-
-
- 22153 14e82 8B855CF9 		mov	-1700(%rbp), %eax
- 22153      FFFF
- 22154 14e88 48C1E004 		salq	$4, %rax
- 22155 14e8c 48038598 		addq	-2408(%rbp), %rax
- 22155      F6FFFF
- 22156 14e93 660F6F00 		movdqa	(%rax), %xmm0
- 22157 14e97 660F6F8D 		movdqa	-2400(%rbp), %xmm1
- 22157      A0F6FFFF 
- 22158 14e9f F30F7F8D 		movdqu	%xmm1, -608(%rbp)
- 22158      A0FDFFFF 
- 22159 14ea7 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 22159      90FDFFFF 
- 22160              	.LBB2619:
- 22161              	.LBB2620:
- 22162              	.LBB2621:
-2058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
- 22163              		.loc 2 2058 0
- 22164 14eaf F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22164      A0FDFFFF 
- 22165 14eb7 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 22165      B0F8FFFF 
- 22166 14ebf E8000000 		call	KDbgWriterGet at PLT
- 22166      00
- 22167 14ec4 4885C0   		testq	%rax, %rax
- 22168 14ec7 7479     		je	.L565
- 22169 14ec9 BF010000 		movl	$1, %edi
- 22169      00
- 22170 14ece E8000000 		call	KDbgCondToFlag at PLT
- 22170      00
- 22171 14ed3 4889C6   		movq	%rax, %rsi
- 22172 14ed6 BF100000 		movl	$16, %edi
- 22172      00
- 22173 14edb E8000000 		call	KDbgTestModConds at PLT
- 22173      00
- 22174 14ee0 84C0     		testb	%al, %al
- 22175 14ee2 745E     		je	.L565
- 22176 14ee4 8B85BCF8 		movl	-1860(%rbp), %eax
- 22176      FFFF
- 22177 14eea 89C7     		movl	%eax, %edi
- 22178 14eec E80FB1FE 		call	bswap_32
- 22178      FF
- 22179 14ef1 4189C5   		movl	%eax, %r13d
- 22180 14ef4 8B85B8F8 		movl	-1864(%rbp), %eax
- 22180      FFFF
- 22181 14efa 89C7     		movl	%eax, %edi
- 22182 14efc E8FFB0FE 		call	bswap_32
- 22182      FF
- 22183 14f01 4189C4   		movl	%eax, %r12d
- 22184 14f04 8B85B4F8 		movl	-1868(%rbp), %eax
- 22184      FFFF
- 22185 14f0a 89C7     		movl	%eax, %edi
- 22186 14f0c E8EFB0FE 		call	bswap_32
- 22186      FF
- 22187 14f11 89C3     		movl	%eax, %ebx
- 22188 14f13 8B85B0F8 		movl	-1872(%rbp), %eax
- 22188      FFFF
- 22189 14f19 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 675
-
-
- 22190 14f1b E8E0B0FE 		call	bswap_32
- 22190      FF
- 22191 14f20 4589E9   		movl	%r13d, %r9d
- 22192 14f23 4589E0   		movl	%r12d, %r8d
- 22193 14f26 89D9     		movl	%ebx, %ecx
- 22194 14f28 89C2     		movl	%eax, %edx
- 22195 14f2a 488D3500 		leaq	.LC5(%rip), %rsi
- 22195      000000
- 22196 14f31 488D3D00 		leaq	.LC1(%rip), %rdi
- 22196      000000
- 22197 14f38 B8000000 		movl	$0, %eax
- 22197      00
- 22198 14f3d E8000000 		call	KDbgMsg at PLT
- 22198      00
- 22199              	.L565:
- 22200 14f42 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22200      A0FDFFFF 
- 22201 14f4a F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 22201      B0FDFFFF 
- 22202 14f52 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 22202      B0FDFFFF 
- 22203 14f5a F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 22203      D0FDFFFF 
- 22204 14f62 488D0500 		leaq	KAESBlockCipherVecRijndaelSBoxV(%rip), %rax
- 22204      000000
- 22205 14f69 488985C8 		movq	%rax, -568(%rbp)
- 22205      FDFFFF
- 22206              	.LBE2621:
- 22207              	.LBB2622:
- 22208              	.LBB2623:
- 22209              	.LBB2624:
- 22210              	.LBB2625:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 22211              		.loc 2 851 0
- 22212 14f70 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 22212      00000000 
- 22213 14f78 F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 22213      F0FDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 22214              		.loc 2 854 0
- 22215 14f80 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 22215      00000000 
- 22216 14f88 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 22216      D0FDFFFF 
- 22217 14f90 F30F7F8D 		movdqu	%xmm1, -448(%rbp)
- 22217      40FEFFFF 
- 22218 14f98 F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 22218      30FEFFFF 
- 22219              	.LBB2626:
- 22220              	.LBB2627:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 22221              		.loc 2 206 0
- 22222 14fa0 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 22222      30FEFFFF 
- 22223 14fa8 F30F6F8D 		movdqu	-448(%rbp), %xmm1
- 22223      40FEFFFF 
- 22224 14fb0 660FDBC1 		pand	%xmm1, %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 676
-
-
- 22225              	.LBE2627:
- 22226              	.LBE2626:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 22227              		.loc 2 854 0
- 22228 14fb4 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 22228      20FEFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 22229              		.loc 2 862 0
- 22230 14fbc 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 22230      00000000 
- 22231 14fc4 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 22231      D0FDFFFF 
- 22232 14fcc F30F7F8D 		movdqu	%xmm1, -416(%rbp)
- 22232      60FEFFFF 
- 22233 14fd4 F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 22233      50FEFFFF 
- 22234              	.LBB2628:
- 22235              		.loc 2 2642 0
- 22236 14fdc 0FB68560 		movzbl	-416(%rbp), %eax
- 22236      FEFFFF
- 22237 14fe3 0FB69550 		movzbl	-432(%rbp), %edx
- 22237      FEFFFF
- 22238 14fea 0FB6C0   		movzbl	%al, %eax
- 22239 14fed 6689851E 		movw	%ax, -2530(%rbp)
- 22239      F6FFFF
- 22240 14ff4 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22240      F6FFFF
- 22241 14ffb F6F2     		divb	%dl
- 22242 14ffd 4189C7   		movl	%eax, %r15d
- 22243 15000 0FB68561 		movzbl	-415(%rbp), %eax
- 22243      FEFFFF
- 22244 15007 0FB69551 		movzbl	-431(%rbp), %edx
- 22244      FEFFFF
- 22245 1500e 0FB6C0   		movzbl	%al, %eax
- 22246 15011 6689851E 		movw	%ax, -2530(%rbp)
- 22246      F6FFFF
- 22247 15018 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22247      F6FFFF
- 22248 1501f F6F2     		divb	%dl
- 22249 15021 888593F6 		movb	%al, -2413(%rbp)
- 22249      FFFF
- 22250 15027 0FB68562 		movzbl	-414(%rbp), %eax
- 22250      FEFFFF
- 22251 1502e 0FB69552 		movzbl	-430(%rbp), %edx
- 22251      FEFFFF
- 22252 15035 0FB6C0   		movzbl	%al, %eax
- 22253 15038 6689851E 		movw	%ax, -2530(%rbp)
- 22253      F6FFFF
- 22254 1503f 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22254      F6FFFF
- 22255 15046 F6F2     		divb	%dl
- 22256 15048 888592F6 		movb	%al, -2414(%rbp)
- 22256      FFFF
- 22257 1504e 0FB68563 		movzbl	-413(%rbp), %eax
- 22257      FEFFFF
- 22258 15055 0FB69553 		movzbl	-429(%rbp), %edx
- 22258      FEFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 677
-
-
- 22259 1505c 0FB6C0   		movzbl	%al, %eax
- 22260 1505f 6689851E 		movw	%ax, -2530(%rbp)
- 22260      F6FFFF
- 22261 15066 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22261      F6FFFF
- 22262 1506d F6F2     		divb	%dl
- 22263 1506f 888591F6 		movb	%al, -2415(%rbp)
- 22263      FFFF
- 22264 15075 0FB68564 		movzbl	-412(%rbp), %eax
- 22264      FEFFFF
- 22265 1507c 0FB69554 		movzbl	-428(%rbp), %edx
- 22265      FEFFFF
- 22266 15083 0FB6C0   		movzbl	%al, %eax
- 22267 15086 6689851E 		movw	%ax, -2530(%rbp)
- 22267      F6FFFF
- 22268 1508d 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22268      F6FFFF
- 22269 15094 F6F2     		divb	%dl
- 22270 15096 888590F6 		movb	%al, -2416(%rbp)
- 22270      FFFF
- 22271 1509c 0FB68565 		movzbl	-411(%rbp), %eax
- 22271      FEFFFF
- 22272 150a3 0FB69555 		movzbl	-427(%rbp), %edx
- 22272      FEFFFF
- 22273 150aa 0FB6C0   		movzbl	%al, %eax
- 22274 150ad 6689851E 		movw	%ax, -2530(%rbp)
- 22274      F6FFFF
- 22275 150b4 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22275      F6FFFF
- 22276 150bb F6F2     		divb	%dl
- 22277 150bd 4189C1   		movl	%eax, %r9d
- 22278 150c0 0FB68566 		movzbl	-410(%rbp), %eax
- 22278      FEFFFF
- 22279 150c7 0FB69556 		movzbl	-426(%rbp), %edx
- 22279      FEFFFF
- 22280 150ce 0FB6C0   		movzbl	%al, %eax
- 22281 150d1 6689851E 		movw	%ax, -2530(%rbp)
- 22281      F6FFFF
- 22282 150d8 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22282      F6FFFF
- 22283 150df F6F2     		divb	%dl
- 22284 150e1 89C7     		movl	%eax, %edi
- 22285 150e3 0FB68567 		movzbl	-409(%rbp), %eax
- 22285      FEFFFF
- 22286 150ea 0FB69557 		movzbl	-425(%rbp), %edx
- 22286      FEFFFF
- 22287 150f1 0FB6C0   		movzbl	%al, %eax
- 22288 150f4 6689851E 		movw	%ax, -2530(%rbp)
- 22288      F6FFFF
- 22289 150fb 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22289      F6FFFF
- 22290 15102 F6F2     		divb	%dl
- 22291 15104 89C3     		movl	%eax, %ebx
- 22292 15106 0FB68568 		movzbl	-408(%rbp), %eax
- 22292      FEFFFF
- 22293 1510d 0FB69558 		movzbl	-424(%rbp), %edx
- 22293      FEFFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 678
-
-
- 22294 15114 0FB6C0   		movzbl	%al, %eax
- 22295 15117 6689851E 		movw	%ax, -2530(%rbp)
- 22295      F6FFFF
- 22296 1511e 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22296      F6FFFF
- 22297 15125 F6F2     		divb	%dl
- 22298 15127 4189C2   		movl	%eax, %r10d
- 22299 1512a 0FB68569 		movzbl	-407(%rbp), %eax
- 22299      FEFFFF
- 22300 15131 0FB69559 		movzbl	-423(%rbp), %edx
- 22300      FEFFFF
- 22301 15138 0FB6C0   		movzbl	%al, %eax
- 22302 1513b 6689851E 		movw	%ax, -2530(%rbp)
- 22302      F6FFFF
- 22303 15142 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22303      F6FFFF
- 22304 15149 F6F2     		divb	%dl
- 22305 1514b 4189C3   		movl	%eax, %r11d
- 22306 1514e 0FB6856A 		movzbl	-406(%rbp), %eax
- 22306      FEFFFF
- 22307 15155 0FB6955A 		movzbl	-422(%rbp), %edx
- 22307      FEFFFF
- 22308 1515c 0FB6C0   		movzbl	%al, %eax
- 22309 1515f 6689851E 		movw	%ax, -2530(%rbp)
- 22309      F6FFFF
- 22310 15166 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22310      F6FFFF
- 22311 1516d F6F2     		divb	%dl
- 22312 1516f 4189C4   		movl	%eax, %r12d
- 22313 15172 0FB6856B 		movzbl	-405(%rbp), %eax
- 22313      FEFFFF
- 22314 15179 0FB6955B 		movzbl	-421(%rbp), %edx
- 22314      FEFFFF
- 22315 15180 0FB6C0   		movzbl	%al, %eax
- 22316 15183 6689851E 		movw	%ax, -2530(%rbp)
- 22316      F6FFFF
- 22317 1518a 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22317      F6FFFF
- 22318 15191 F6F2     		divb	%dl
- 22319 15193 4189C5   		movl	%eax, %r13d
- 22320 15196 0FB6856C 		movzbl	-404(%rbp), %eax
- 22320      FEFFFF
- 22321 1519d 0FB6955C 		movzbl	-420(%rbp), %edx
- 22321      FEFFFF
- 22322 151a4 0FB6C0   		movzbl	%al, %eax
- 22323 151a7 6689851E 		movw	%ax, -2530(%rbp)
- 22323      F6FFFF
- 22324 151ae 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22324      F6FFFF
- 22325 151b5 F6F2     		divb	%dl
- 22326 151b7 4189C6   		movl	%eax, %r14d
- 22327 151ba 0FB6856D 		movzbl	-403(%rbp), %eax
- 22327      FEFFFF
- 22328 151c1 0FB6955D 		movzbl	-419(%rbp), %edx
- 22328      FEFFFF
- 22329 151c8 0FB6C0   		movzbl	%al, %eax
- 22330 151cb 6689851E 		movw	%ax, -2530(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 679
-
-
- 22330      F6FFFF
- 22331 151d2 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22331      F6FFFF
- 22332 151d9 F6F2     		divb	%dl
- 22333 151db 4189C0   		movl	%eax, %r8d
- 22334 151de 0FB6856E 		movzbl	-402(%rbp), %eax
- 22334      FEFFFF
- 22335 151e5 0FB6955E 		movzbl	-418(%rbp), %edx
- 22335      FEFFFF
- 22336 151ec 0FB6C0   		movzbl	%al, %eax
- 22337 151ef 6689851E 		movw	%ax, -2530(%rbp)
- 22337      F6FFFF
- 22338 151f6 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22338      F6FFFF
- 22339 151fd F6F2     		divb	%dl
- 22340 151ff 89C6     		movl	%eax, %esi
- 22341 15201 0FB6856F 		movzbl	-401(%rbp), %eax
- 22341      FEFFFF
- 22342 15208 0FB6955F 		movzbl	-417(%rbp), %edx
- 22342      FEFFFF
- 22343 1520f 0FB6C0   		movzbl	%al, %eax
- 22344 15212 6689851E 		movw	%ax, -2530(%rbp)
- 22344      F6FFFF
- 22345 15219 0FB7851E 		movzwl	-2530(%rbp), %eax
- 22345      F6FFFF
- 22346 15220 F6F2     		divb	%dl
- 22347 15222 89C1     		movl	%eax, %ecx
- 22348              	.LBB2629:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 22349              		.loc 2 346 0
- 22350 15224 0FB6D3   		movzbl	%bl, %edx
- 22351 15227 400FB6C7 		movzbl	%dil, %eax
- 22352 1522b 48C1E208 		salq	$8, %rdx
- 22353 1522f 4809C2   		orq	%rax, %rdx
- 22354 15232 410FB6C1 		movzbl	%r9b, %eax
- 22355 15236 48C1E208 		salq	$8, %rdx
- 22356 1523a 4809C2   		orq	%rax, %rdx
- 22357 1523d 0FB68590 		movzbl	-2416(%rbp), %eax
- 22357      F6FFFF
- 22358 15244 48C1E208 		salq	$8, %rdx
- 22359 15248 4809C2   		orq	%rax, %rdx
- 22360 1524b 0FB68591 		movzbl	-2415(%rbp), %eax
- 22360      F6FFFF
- 22361 15252 48C1E208 		salq	$8, %rdx
- 22362 15256 4809C2   		orq	%rax, %rdx
- 22363 15259 0FB68592 		movzbl	-2414(%rbp), %eax
- 22363      F6FFFF
- 22364 15260 48C1E208 		salq	$8, %rdx
- 22365 15264 4809C2   		orq	%rax, %rdx
- 22366 15267 0FB68593 		movzbl	-2413(%rbp), %eax
- 22366      F6FFFF
- 22367 1526e 48C1E208 		salq	$8, %rdx
- 22368 15272 4809C2   		orq	%rax, %rdx
- 22369 15275 410FB6C7 		movzbl	%r15b, %eax
- 22370 15279 48C1E208 		salq	$8, %rdx
- 22371 1527d 4809C2   		orq	%rax, %rdx
- 22372 15280 0FB6C1   		movzbl	%cl, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 680
-
-
- 22373 15283 400FB6CE 		movzbl	%sil, %ecx
- 22374 15287 48C1E008 		salq	$8, %rax
- 22375 1528b 4809C8   		orq	%rcx, %rax
- 22376 1528e 410FB6C8 		movzbl	%r8b, %ecx
- 22377 15292 48C1E008 		salq	$8, %rax
- 22378 15296 4809C8   		orq	%rcx, %rax
- 22379 15299 410FB6CE 		movzbl	%r14b, %ecx
- 22380 1529d 48C1E008 		salq	$8, %rax
- 22381 152a1 4809C8   		orq	%rcx, %rax
- 22382 152a4 410FB6CD 		movzbl	%r13b, %ecx
- 22383 152a8 48C1E008 		salq	$8, %rax
- 22384 152ac 4809C8   		orq	%rcx, %rax
- 22385 152af 410FB6CC 		movzbl	%r12b, %ecx
- 22386 152b3 48C1E008 		salq	$8, %rax
- 22387 152b7 4809C8   		orq	%rcx, %rax
- 22388 152ba 410FB6CB 		movzbl	%r11b, %ecx
- 22389 152be 48C1E008 		salq	$8, %rax
- 22390 152c2 4809C8   		orq	%rcx, %rax
- 22391 152c5 410FB6CA 		movzbl	%r10b, %ecx
- 22392 152c9 48C1E008 		salq	$8, %rax
- 22393 152cd 4809C8   		orq	%rcx, %rax
- 22394 152d0 48899520 		movq	%rdx, -2528(%rbp)
- 22394      F6FFFF
- 22395 152d7 48898528 		movq	%rax, -2520(%rbp)
- 22395      F6FFFF
- 22396 152de 660F6F85 		movdqa	-2528(%rbp), %xmm0
- 22396      20F6FFFF 
- 22397              	.LBE2629:
- 22398              	.LBE2628:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 22399              		.loc 2 862 0
- 22400 152e6 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 22400      10FEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 22401              		.loc 2 866 0
- 22402 152ee C785ECFD 		movl	$0, -532(%rbp)
- 22402      FFFF0000 
- 22402      0000
- 22403 152f8 E9860200 		jmp	.L566
- 22403      00
- 22404              	.L575:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 22405              		.loc 2 868 0
- 22406 152fd 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 22406      00000000 
- 22407 15305 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 22407      80FEFFFF 
- 22408 1530d F30F6F85 		movdqu	-496(%rbp), %xmm0
- 22408      10FEFFFF 
- 22409 15315 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 22409      70FEFFFF 
- 22410              	.LBB2630:
- 22411              	.LBB2631:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 22412              		.loc 2 380 0
- 22413 1531d F30F6F85 		movdqu	-384(%rbp), %xmm0
- 22413      80FEFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 681
-
-
- 22414 15325 F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 22414      D0F8FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 22415              		.loc 2 381 0
- 22416 1532d F30F6F85 		movdqu	-400(%rbp), %xmm0
- 22416      70FEFFFF 
- 22417 15335 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 22417      C0F8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 22418              		.loc 2 383 0
- 22419 1533d C7859CFE 		movl	$0, -356(%rbp)
- 22419      FFFF0000 
- 22419      0000
- 22420 15347 EB5C     		jmp	.L567
- 22421              	.L570:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 22422              		.loc 2 385 0
- 22423 15349 8B859CFE 		movl	-356(%rbp), %eax
- 22423      FFFF
- 22424 1534f 89C0     		mov	%eax, %eax
- 22425 15351 0FB68405 		movzbl	-1856(%rbp,%rax), %eax
- 22425      C0F8FFFF 
- 22426 15359 84C0     		testb	%al, %al
- 22427 1535b 7912     		jns	.L568
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 22428              		.loc 2 386 0
- 22429 1535d 8B859CFE 		movl	-356(%rbp), %eax
- 22429      FFFF
- 22430 15363 89C0     		mov	%eax, %eax
- 22431 15365 C68405E0 		movb	$0, -1824(%rbp,%rax)
- 22431      F8FFFF00 
- 22432 1536d EB2F     		jmp	.L569
- 22433              	.L568:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 22434              		.loc 2 388 0
- 22435 1536f 8B8D9CFE 		movl	-356(%rbp), %ecx
- 22435      FFFF
- 22436 15375 8B859CFE 		movl	-356(%rbp), %eax
- 22436      FFFF
- 22437 1537b 89C0     		mov	%eax, %eax
- 22438 1537d 0FB68405 		movzbl	-1856(%rbp,%rax), %eax
- 22438      C0F8FFFF 
- 22439 15385 0FB6C0   		movzbl	%al, %eax
- 22440 15388 83E00F   		andl	$15, %eax
- 22441 1538b 4898     		cltq
- 22442 1538d 0FB69405 		movzbl	-1840(%rbp,%rax), %edx
- 22442      D0F8FFFF 
- 22443 15395 89C8     		mov	%ecx, %eax
- 22444 15397 889405E0 		movb	%dl, -1824(%rbp,%rax)
- 22444      F8FFFF
- 22445              	.L569:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 22446              		.loc 2 383 0
- 22447 1539e 83859CFE 		addl	$1, -356(%rbp)
- 22447      FFFF01
- 22448              	.L567:
- 22449 153a5 83BD9CFE 		cmpl	$15, -356(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 682
-
-
- 22449      FFFF0F
- 22450 153ac 769B     		jbe	.L570
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 22451              		.loc 2 391 0
- 22452 153ae F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 22452      E0F8FFFF 
- 22453              	.LBE2631:
- 22454              	.LBE2630:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 22455              		.loc 2 868 0
- 22456 153b6 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 22456      00FEFFFF 
- 22457 153be F30F6F85 		movdqu	-480(%rbp), %xmm0
- 22457      20FEFFFF 
- 22458 153c6 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 22458      B0FEFFFF 
- 22459 153ce F30F6F85 		movdqu	-512(%rbp), %xmm0
- 22459      00FEFFFF 
- 22460 153d6 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 22460      A0FEFFFF 
- 22461              	.LBB2632:
- 22462              	.LBB2633:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 22463              		.loc 2 234 0
- 22464 153de F30F6F85 		movdqu	-352(%rbp), %xmm0
- 22464      A0FEFFFF 
- 22465 153e6 F30F6F8D 		movdqu	-336(%rbp), %xmm1
- 22465      B0FEFFFF 
- 22466 153ee 660FEBC1 		por	%xmm1, %xmm0
- 22467              	.LBE2633:
- 22468              	.LBE2632:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 22469              		.loc 2 870 0
- 22470 153f2 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 22470      00FEFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 22471              		.loc 2 872 0
- 22472 153fa 8B85ECFD 		mov	-532(%rbp), %eax
- 22472      FFFF
- 22473 15400 48C1E004 		salq	$4, %rax
- 22474 15404 480385C8 		addq	-568(%rbp), %rax
- 22474      FDFFFF
- 22475 1540b 660F6F00 		movdqa	(%rax), %xmm0
- 22476 1540f F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 22476      D0FEFFFF 
- 22477 15417 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 22477      00FEFFFF 
- 22478 1541f F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 22478      C0FEFFFF 
- 22479              	.LBB2634:
- 22480              	.LBB2635:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 22481              		.loc 2 380 0
- 22482 15427 F30F6F85 		movdqu	-304(%rbp), %xmm0
- 22482      D0FEFFFF 
- 22483 1542f F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 22483      00F9FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 683
-
-
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 22484              		.loc 2 381 0
- 22485 15437 F30F6F85 		movdqu	-320(%rbp), %xmm0
- 22485      C0FEFFFF 
- 22486 1543f F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 22486      F0F8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 22487              		.loc 2 383 0
- 22488 15447 C785ECFE 		movl	$0, -276(%rbp)
- 22488      FFFF0000 
- 22488      0000
- 22489 15451 EB5C     		jmp	.L571
- 22490              	.L574:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 22491              		.loc 2 385 0
- 22492 15453 8B85ECFE 		movl	-276(%rbp), %eax
- 22492      FFFF
- 22493 15459 89C0     		mov	%eax, %eax
- 22494 1545b 0FB68405 		movzbl	-1808(%rbp,%rax), %eax
- 22494      F0F8FFFF 
- 22495 15463 84C0     		testb	%al, %al
- 22496 15465 7912     		jns	.L572
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 22497              		.loc 2 386 0
- 22498 15467 8B85ECFE 		movl	-276(%rbp), %eax
- 22498      FFFF
- 22499 1546d 89C0     		mov	%eax, %eax
- 22500 1546f C6840510 		movb	$0, -1776(%rbp,%rax)
- 22500      F9FFFF00 
- 22501 15477 EB2F     		jmp	.L573
- 22502              	.L572:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 22503              		.loc 2 388 0
- 22504 15479 8B8DECFE 		movl	-276(%rbp), %ecx
- 22504      FFFF
- 22505 1547f 8B85ECFE 		movl	-276(%rbp), %eax
- 22505      FFFF
- 22506 15485 89C0     		mov	%eax, %eax
- 22507 15487 0FB68405 		movzbl	-1808(%rbp,%rax), %eax
- 22507      F0F8FFFF 
- 22508 1548f 0FB6C0   		movzbl	%al, %eax
- 22509 15492 83E00F   		andl	$15, %eax
- 22510 15495 4898     		cltq
- 22511 15497 0FB69405 		movzbl	-1792(%rbp,%rax), %edx
- 22511      00F9FFFF 
- 22512 1549f 89C8     		mov	%ecx, %eax
- 22513 154a1 88940510 		movb	%dl, -1776(%rbp,%rax)
- 22513      F9FFFF
- 22514              	.L573:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 22515              		.loc 2 383 0
- 22516 154a8 8385ECFE 		addl	$1, -276(%rbp)
- 22516      FFFF01
- 22517              	.L571:
- 22518 154af 83BDECFE 		cmpl	$15, -276(%rbp)
- 22518      FFFF0F
- 22519 154b6 769B     		jbe	.L574
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 684
-
-
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 22520              		.loc 2 391 0
- 22521 154b8 F30F6F85 		movdqu	-1776(%rbp), %xmm0
- 22521      10F9FFFF 
- 22522              	.LBE2635:
- 22523              	.LBE2634:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 22524              		.loc 2 872 0
- 22525 154c0 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 22525      00FEFFFF 
- 22526 154c8 F30F6F85 		movdqu	-528(%rbp), %xmm0
- 22526      F0FDFFFF 
- 22527 154d0 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 22527      00FFFFFF 
- 22528 154d8 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 22528      00FEFFFF 
- 22529 154e0 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 22529      F0FEFFFF 
- 22530              	.LBB2636:
- 22531              	.LBB2637:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 22532              		.loc 2 234 0
- 22533 154e8 F30F6F85 		movdqu	-272(%rbp), %xmm0
- 22533      F0FEFFFF 
- 22534 154f0 F30F6F8D 		movdqu	-256(%rbp), %xmm1
- 22534      00FFFFFF 
- 22535 154f8 660FEBC1 		por	%xmm1, %xmm0
- 22536              	.LBE2637:
- 22537              	.LBE2636:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 22538              		.loc 2 874 0
- 22539 154fc F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 22539      F0FDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 22540              		.loc 2 876 0
- 22541 15504 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 22541      00000000 
- 22542 1550c F30F6F8D 		movdqu	-496(%rbp), %xmm1
- 22542      10FEFFFF 
- 22543 15514 F30F7F8D 		movdqu	%xmm1, -224(%rbp)
- 22543      20FFFFFF 
- 22544 1551c F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 22544      10FFFFFF 
- 22545              	.LBB2638:
- 22546              	.LBB2639:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 22547              		.loc 2 290 0
- 22548 15524 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 22548      10FFFFFF 
- 22549 1552c F30F6F85 		movdqu	-224(%rbp), %xmm0
- 22549      20FFFFFF 
- 22550 15534 660FF8C1 		psubb	%xmm1, %xmm0
- 22551              	.LBE2639:
- 22552              	.LBE2638:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 22553              		.loc 2 876 0
- 22554 15538 F30F7F85 		movdqu	%xmm0, -496(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 685
-
-
- 22554      10FEFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 22555              		.loc 2 878 0
- 22556 15540 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 22556      00000000 
- 22557 15548 F30F6F8D 		movdqu	-496(%rbp), %xmm1
- 22557      10FEFFFF 
- 22558 15550 F30F7F8D 		movdqu	%xmm1, -192(%rbp)
- 22558      40FFFFFF 
- 22559 15558 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 22559      30FFFFFF 
- 22560              	.LBB2640:
- 22561              	.LBB2641:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 22562              		.loc 2 206 0
- 22563 15560 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 22563      30FFFFFF 
- 22564 15568 F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 22564      40FFFFFF 
- 22565 15570 660FDBC1 		pand	%xmm1, %xmm0
- 22566              	.LBE2641:
- 22567              	.LBE2640:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 22568              		.loc 2 878 0
- 22569 15574 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 22569      10FEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 22570              		.loc 2 866 0
- 22571 1557c 8385ECFD 		addl	$1, -532(%rbp)
- 22571      FFFF01
- 22572              	.L566:
- 22573 15583 83BDECFD 		cmpl	$15, -532(%rbp)
- 22573      FFFF0F
- 22574 1558a 0F866DFD 		jbe	.L575
- 22574      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 22575              		.loc 2 882 0
- 22576 15590 F30F6F85 		movdqu	-528(%rbp), %xmm0
- 22576      F0FDFFFF 
- 22577              	.LBE2625:
- 22578              	.LBE2624:
- 22579              	.LBE2623:
- 22580              	.LBE2622:
-2063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
- 22581              		.loc 2 2063 0
- 22582 15598 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 22582      A0FDFFFF 
- 22583              	.LBB2642:
-2065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
- 22584              		.loc 2 2065 0
- 22585 155a0 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22585      A0FDFFFF 
- 22586 155a8 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 22586      A0F8FFFF 
- 22587 155b0 E8000000 		call	KDbgWriterGet at PLT
- 22587      00
- 22588 155b5 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 686
-
-
- 22589 155b8 7479     		je	.L577
- 22590 155ba BF010000 		movl	$1, %edi
- 22590      00
- 22591 155bf E8000000 		call	KDbgCondToFlag at PLT
- 22591      00
- 22592 155c4 4889C6   		movq	%rax, %rsi
- 22593 155c7 BF100000 		movl	$16, %edi
- 22593      00
- 22594 155cc E8000000 		call	KDbgTestModConds at PLT
- 22594      00
- 22595 155d1 84C0     		testb	%al, %al
- 22596 155d3 745E     		je	.L577
- 22597 155d5 8B85ACF8 		movl	-1876(%rbp), %eax
- 22597      FFFF
- 22598 155db 89C7     		movl	%eax, %edi
- 22599 155dd E81EAAFE 		call	bswap_32
- 22599      FF
- 22600 155e2 4189C5   		movl	%eax, %r13d
- 22601 155e5 8B85A8F8 		movl	-1880(%rbp), %eax
- 22601      FFFF
- 22602 155eb 89C7     		movl	%eax, %edi
- 22603 155ed E80EAAFE 		call	bswap_32
- 22603      FF
- 22604 155f2 4189C4   		movl	%eax, %r12d
- 22605 155f5 8B85A4F8 		movl	-1884(%rbp), %eax
- 22605      FFFF
- 22606 155fb 89C7     		movl	%eax, %edi
- 22607 155fd E8FEA9FE 		call	bswap_32
- 22607      FF
- 22608 15602 89C3     		movl	%eax, %ebx
- 22609 15604 8B85A0F8 		movl	-1888(%rbp), %eax
- 22609      FFFF
- 22610 1560a 89C7     		movl	%eax, %edi
- 22611 1560c E8EFA9FE 		call	bswap_32
- 22611      FF
- 22612 15611 4589E9   		movl	%r13d, %r9d
- 22613 15614 4589E0   		movl	%r12d, %r8d
- 22614 15617 89D9     		movl	%ebx, %ecx
- 22615 15619 89C2     		movl	%eax, %edx
- 22616 1561b 488D3500 		leaq	.LC8(%rip), %rsi
- 22616      000000
- 22617 15622 488D3D00 		leaq	.LC1(%rip), %rdi
- 22617      000000
- 22618 15629 B8000000 		movl	$0, %eax
- 22618      00
- 22619 1562e E8000000 		call	KDbgMsg at PLT
- 22619      00
- 22620              	.L577:
- 22621 15633 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22621      A0FDFFFF 
- 22622 1563b F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 22622      50FFFFFF 
- 22623              	.LBE2642:
- 22624              	.LBB2643:
- 22625              	.LBB2644:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 22626              		.loc 2 581 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 687
-
-
- 22627 15643 660F6F05 		movdqa	ShiftRowTable.6741(%rip), %xmm0
- 22627      00000000 
- 22628 1564b F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 22628      50FFFFFF 
- 22629 15653 F30F7F8D 		movdqu	%xmm1, -144(%rbp)
- 22629      70FFFFFF 
- 22630 1565b F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 22630      60FFFFFF 
- 22631              	.LBB2645:
- 22632              	.LBB2646:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 22633              		.loc 2 380 0
- 22634 15663 F30F6F85 		movdqu	-144(%rbp), %xmm0
- 22634      70FFFFFF 
- 22635 1566b F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 22635      30F9FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 22636              		.loc 2 381 0
- 22637 15673 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 22637      60FFFFFF 
- 22638 1567b F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 22638      20F9FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 22639              		.loc 2 383 0
- 22640 15683 C7458C00 		movl	$0, -116(%rbp)
- 22640      000000
- 22641 1568a EB4D     		jmp	.L578
- 22642              	.L581:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 22643              		.loc 2 385 0
- 22644 1568c 8B458C   		movl	-116(%rbp), %eax
- 22645 1568f 89C0     		mov	%eax, %eax
- 22646 15691 0FB68405 		movzbl	-1760(%rbp,%rax), %eax
- 22646      20F9FFFF 
- 22647 15699 84C0     		testb	%al, %al
- 22648 1569b 790F     		jns	.L579
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 22649              		.loc 2 386 0
- 22650 1569d 8B458C   		movl	-116(%rbp), %eax
- 22651 156a0 89C0     		mov	%eax, %eax
- 22652 156a2 C6840540 		movb	$0, -1728(%rbp,%rax)
- 22652      F9FFFF00 
- 22653 156aa EB29     		jmp	.L580
- 22654              	.L579:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 22655              		.loc 2 388 0
- 22656 156ac 8B4D8C   		movl	-116(%rbp), %ecx
- 22657 156af 8B458C   		movl	-116(%rbp), %eax
- 22658 156b2 89C0     		mov	%eax, %eax
- 22659 156b4 0FB68405 		movzbl	-1760(%rbp,%rax), %eax
- 22659      20F9FFFF 
- 22660 156bc 0FB6C0   		movzbl	%al, %eax
- 22661 156bf 83E00F   		andl	$15, %eax
- 22662 156c2 4898     		cltq
- 22663 156c4 0FB69405 		movzbl	-1744(%rbp,%rax), %edx
- 22663      30F9FFFF 
- 22664 156cc 89C8     		mov	%ecx, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 688
-
-
- 22665 156ce 88940540 		movb	%dl, -1728(%rbp,%rax)
- 22665      F9FFFF
- 22666              	.L580:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 22667              		.loc 2 383 0
- 22668 156d5 83458C01 		addl	$1, -116(%rbp)
- 22669              	.L578:
- 22670 156d9 837D8C0F 		cmpl	$15, -116(%rbp)
- 22671 156dd 76AD     		jbe	.L581
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 22672              		.loc 2 391 0
- 22673 156df F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 22673      40F9FFFF 
- 22674              	.LBE2646:
- 22675              	.LBE2645:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 22676              		.loc 2 581 0
- 22677 156e7 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 22677      50FFFFFF 
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 22678              		.loc 2 582 0
- 22679 156ef F30F6F85 		movdqu	-176(%rbp), %xmm0
- 22679      50FFFFFF 
- 22680              	.LBE2644:
- 22681              	.LBE2643:
-2067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
- 22682              		.loc 2 2067 0
- 22683 156f7 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 22683      A0FDFFFF 
- 22684              	.LBB2647:
-2069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
- 22685              		.loc 2 2069 0
- 22686 156ff F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22686      A0FDFFFF 
- 22687 15707 F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 22687      90F8FFFF 
- 22688 1570f E8000000 		call	KDbgWriterGet at PLT
- 22688      00
- 22689 15714 4885C0   		testq	%rax, %rax
- 22690 15717 7479     		je	.L583
- 22691 15719 BF010000 		movl	$1, %edi
- 22691      00
- 22692 1571e E8000000 		call	KDbgCondToFlag at PLT
- 22692      00
- 22693 15723 4889C6   		movq	%rax, %rsi
- 22694 15726 BF100000 		movl	$16, %edi
- 22694      00
- 22695 1572b E8000000 		call	KDbgTestModConds at PLT
- 22695      00
- 22696 15730 84C0     		testb	%al, %al
- 22697 15732 745E     		je	.L583
- 22698 15734 8B859CF8 		movl	-1892(%rbp), %eax
- 22698      FFFF
- 22699 1573a 89C7     		movl	%eax, %edi
- 22700 1573c E8BFA8FE 		call	bswap_32
- 22700      FF
- 22701 15741 4189C5   		movl	%eax, %r13d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 689
-
-
- 22702 15744 8B8598F8 		movl	-1896(%rbp), %eax
- 22702      FFFF
- 22703 1574a 89C7     		movl	%eax, %edi
- 22704 1574c E8AFA8FE 		call	bswap_32
- 22704      FF
- 22705 15751 4189C4   		movl	%eax, %r12d
- 22706 15754 8B8594F8 		movl	-1900(%rbp), %eax
- 22706      FFFF
- 22707 1575a 89C7     		movl	%eax, %edi
- 22708 1575c E89FA8FE 		call	bswap_32
- 22708      FF
- 22709 15761 89C3     		movl	%eax, %ebx
- 22710 15763 8B8590F8 		movl	-1904(%rbp), %eax
- 22710      FFFF
- 22711 15769 89C7     		movl	%eax, %edi
- 22712 1576b E890A8FE 		call	bswap_32
- 22712      FF
- 22713 15770 4589E9   		movl	%r13d, %r9d
- 22714 15773 4589E0   		movl	%r12d, %r8d
- 22715 15776 89D9     		movl	%ebx, %ecx
- 22716 15778 89C2     		movl	%eax, %edx
- 22717 1577a 488D3500 		leaq	.LC9(%rip), %rsi
- 22717      000000
- 22718 15781 488D3D00 		leaq	.LC1(%rip), %rdi
- 22718      000000
- 22719 15788 B8000000 		movl	$0, %eax
- 22719      00
- 22720 1578d E8000000 		call	KDbgMsg at PLT
- 22720      00
- 22721              	.L583:
- 22722 15792 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22722      A0FDFFFF 
- 22723 1579a F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 22723      A0
- 22724 1579f F30F6F85 		movdqu	-624(%rbp), %xmm0
- 22724      90FDFFFF 
- 22725 157a7 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 22725      90
- 22726 157ac F30F6F45 		movdqu	-96(%rbp), %xmm0
- 22726      A0
- 22727 157b1 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 22727      C0
- 22728 157b6 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 22728      90
- 22729 157bb F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 22729      B0
- 22730              	.LBE2647:
- 22731              	.LBB2648:
- 22732              	.LBB2649:
- 22733              	.LBB2650:
- 22734              	.LBB2651:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 22735              		.loc 2 178 0
- 22736 157c0 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 22736      B0
- 22737 157c5 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 22737      C0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 690
-
-
- 22738 157ca 660FEFC1 		pxor	%xmm1, %xmm0
- 22739              	.LBE2651:
- 22740              	.LBE2650:
- 22741              	.LBE2649:
- 22742              	.LBE2648:
-2071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 22743              		.loc 2 2071 0
- 22744 157ce F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 22744      A0FDFFFF 
- 22745              	.LBB2652:
-2073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 22746              		.loc 2 2073 0
- 22747 157d6 F30F6F85 		movdqu	-624(%rbp), %xmm0
- 22747      90FDFFFF 
- 22748 157de F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 22748      80F8FFFF 
- 22749 157e6 E8000000 		call	KDbgWriterGet at PLT
- 22749      00
- 22750 157eb 4885C0   		testq	%rax, %rax
- 22751 157ee 7479     		je	.L585
- 22752 157f0 BF010000 		movl	$1, %edi
- 22752      00
- 22753 157f5 E8000000 		call	KDbgCondToFlag at PLT
- 22753      00
- 22754 157fa 4889C6   		movq	%rax, %rsi
- 22755 157fd BF100000 		movl	$16, %edi
- 22755      00
- 22756 15802 E8000000 		call	KDbgTestModConds at PLT
- 22756      00
- 22757 15807 84C0     		testb	%al, %al
- 22758 15809 745E     		je	.L585
- 22759 1580b 8B858CF8 		movl	-1908(%rbp), %eax
- 22759      FFFF
- 22760 15811 89C7     		movl	%eax, %edi
- 22761 15813 E8E8A7FE 		call	bswap_32
- 22761      FF
- 22762 15818 4189C5   		movl	%eax, %r13d
- 22763 1581b 8B8588F8 		movl	-1912(%rbp), %eax
- 22763      FFFF
- 22764 15821 89C7     		movl	%eax, %edi
- 22765 15823 E8D8A7FE 		call	bswap_32
- 22765      FF
- 22766 15828 4189C4   		movl	%eax, %r12d
- 22767 1582b 8B8584F8 		movl	-1916(%rbp), %eax
- 22767      FFFF
- 22768 15831 89C7     		movl	%eax, %edi
- 22769 15833 E8C8A7FE 		call	bswap_32
- 22769      FF
- 22770 15838 89C3     		movl	%eax, %ebx
- 22771 1583a 8B8580F8 		movl	-1920(%rbp), %eax
- 22771      FFFF
- 22772 15840 89C7     		movl	%eax, %edi
- 22773 15842 E8B9A7FE 		call	bswap_32
- 22773      FF
- 22774 15847 4589E9   		movl	%r13d, %r9d
- 22775 1584a 4589E0   		movl	%r12d, %r8d
- 22776 1584d 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 691
-
-
- 22777 1584f 89C2     		movl	%eax, %edx
- 22778 15851 488D3500 		leaq	.LC6(%rip), %rsi
- 22778      000000
- 22779 15858 488D3D00 		leaq	.LC1(%rip), %rdi
- 22779      000000
- 22780 1585f B8000000 		movl	$0, %eax
- 22780      00
- 22781 15864 E8000000 		call	KDbgMsg at PLT
- 22781      00
- 22782              	.L585:
- 22783              	.LBE2652:
- 22784              	.LBB2653:
-2074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
- 22785              		.loc 2 2074 0
- 22786 15869 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22786      A0FDFFFF 
- 22787 15871 F30F7F85 		movdqu	%xmm0, -1936(%rbp)
- 22787      70F8FFFF 
- 22788 15879 E8000000 		call	KDbgWriterGet at PLT
- 22788      00
- 22789 1587e 4885C0   		testq	%rax, %rax
- 22790 15881 7479     		je	.L587
- 22791 15883 BF010000 		movl	$1, %edi
- 22791      00
- 22792 15888 E8000000 		call	KDbgCondToFlag at PLT
- 22792      00
- 22793 1588d 4889C6   		movq	%rax, %rsi
- 22794 15890 BF100000 		movl	$16, %edi
- 22794      00
- 22795 15895 E8000000 		call	KDbgTestModConds at PLT
- 22795      00
- 22796 1589a 84C0     		testb	%al, %al
- 22797 1589c 745E     		je	.L587
- 22798 1589e 8B857CF8 		movl	-1924(%rbp), %eax
- 22798      FFFF
- 22799 158a4 89C7     		movl	%eax, %edi
- 22800 158a6 E855A7FE 		call	bswap_32
- 22800      FF
- 22801 158ab 4189C5   		movl	%eax, %r13d
- 22802 158ae 8B8578F8 		movl	-1928(%rbp), %eax
- 22802      FFFF
- 22803 158b4 89C7     		movl	%eax, %edi
- 22804 158b6 E845A7FE 		call	bswap_32
- 22804      FF
- 22805 158bb 4189C4   		movl	%eax, %r12d
- 22806 158be 8B8574F8 		movl	-1932(%rbp), %eax
- 22806      FFFF
- 22807 158c4 89C7     		movl	%eax, %edi
- 22808 158c6 E835A7FE 		call	bswap_32
- 22808      FF
- 22809 158cb 89C3     		movl	%eax, %ebx
- 22810 158cd 8B8570F8 		movl	-1936(%rbp), %eax
- 22810      FFFF
- 22811 158d3 89C7     		movl	%eax, %edi
- 22812 158d5 E826A7FE 		call	bswap_32
- 22812      FF
- 22813 158da 4589E9   		movl	%r13d, %r9d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 692
-
-
- 22814 158dd 4589E0   		movl	%r12d, %r8d
- 22815 158e0 89D9     		movl	%ebx, %ecx
- 22816 158e2 89C2     		movl	%eax, %edx
- 22817 158e4 488D3500 		leaq	.LC11(%rip), %rsi
- 22817      000000
- 22818 158eb 488D3D00 		leaq	.LC1(%rip), %rdi
- 22818      000000
- 22819 158f2 B8000000 		movl	$0, %eax
- 22819      00
- 22820 158f7 E8000000 		call	KDbgMsg at PLT
- 22820      00
- 22821              	.L587:
- 22822              	.LBE2653:
-2076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 22823              		.loc 2 2076 0
- 22824 158fc F30F6F85 		movdqu	-608(%rbp), %xmm0
- 22824      A0FDFFFF 
- 22825              	.LBE2620:
- 22826              	.LBE2619:
-2103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 22827              		.loc 2 2103 0
- 22828 15904 4881C4C8 		addq	$2504, %rsp
- 22828      090000
- 22829 1590b 5B       		popq	%rbx
- 22830 1590c 415C     		popq	%r12
- 22831 1590e 415D     		popq	%r13
- 22832 15910 415E     		popq	%r14
- 22833 15912 415F     		popq	%r15
- 22834 15914 C9       		leave
- 22835 15915 C3       		ret
- 22836              		.cfi_endproc
- 22837              	.LFE573:
- 22838              		.size	KAESBlockCipherVecCipher, .-KAESBlockCipherVecCipher
- 22839              		.section	.rodata
- 22840              	.LC12:
- 22841 0433 41667465 		.string	"After InvSubBy"
- 22841      7220496E 
- 22841      76537562 
- 22841      427900
- 22842              	.LC13:
- 22843 0442 41667465 		.string	"After InvShift"
- 22843      7220496E 
- 22843      76536869 
- 22843      667400
- 22844              	.LC14:
- 22845 0451 41667465 		.string	"After InvMixCo"
- 22845      7220496E 
- 22845      764D6978 
- 22845      436F00
- 22846              		.text
- 22847              		.type	KAESBlockCipherVecEqInvCipher, @function
- 22848              	KAESBlockCipherVecEqInvCipher:
- 22849              	.LFB577:
-2271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 22850              		.loc 2 2271 0
- 22851              		.cfi_startproc
- 22852 15916 55       		pushq	%rbp
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 693
-
-
- 22853              	.LCFI18:
- 22854              		.cfi_def_cfa_offset 16
- 22855 15917 4889E5   		movq	%rsp, %rbp
- 22856              		.cfi_offset 6, -16
- 22857              	.LCFI19:
- 22858              		.cfi_def_cfa_register 6
- 22859 1591a 4157     		pushq	%r15
- 22860 1591c 4156     		pushq	%r14
- 22861 1591e 4155     		pushq	%r13
- 22862 15920 4154     		pushq	%r12
- 22863 15922 53       		pushq	%rbx
- 22864 15923 4881EC88 		subq	$2696, %rsp
- 22864      0A0000
- 22865 1592a 660F7F85 		movdqa	%xmm0, -2560(%rbp)
- 22865      00F6FFFF 
- 22866 15932 4889BDF8 		movq	%rdi, -2568(%rbp)
- 22866      F5FFFF
- 22867 15939 89B5F4F5 		movl	%esi, -2572(%rbp)
- 22867      FFFF
-2272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
- 22868              		.loc 2 2272 0
- 22869 1593f C785DCF8 		movl	$0, -1828(%rbp)
- 22869      FFFF0000 
- 22869      0000
-2274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(EqInvFirstRound) (state, key[ix++]);
- 22870              		.loc 2 2274 0
- 22871 15949 8B85DCF8 		mov	-1828(%rbp), %eax
- 22871      FFFF
- 22872 1594f 48C1E004 		salq	$4, %rax
- 22873 15953 480385F8 		addq	-2568(%rbp), %rax
- 22873      F5FFFF
- 22874 1595a 660F6F00 		movdqa	(%rax), %xmm0
- 22875 1595e 8385DCF8 		addl	$1, -1828(%rbp)
- 22875      FFFF01
- 22876 15965 660F6F8D 		movdqa	-2560(%rbp), %xmm1
- 22876      00F6FFFF 
- 22877 1596d F30F7F8D 		movdqu	%xmm1, -1808(%rbp)
- 22877      F0F8FFFF 
- 22878 15975 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 22878      E0F8FFFF 
- 22879              	.LBB2777:
- 22880              	.LBB2778:
- 22881              	.LBB2779:
-2133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
- 22882              		.loc 2 2133 0
- 22883 1597d F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 22883      F0F8FFFF 
- 22884 15985 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 22884      30F6FFFF 
- 22885              		.cfi_offset 3, -56
- 22886              		.cfi_offset 12, -48
- 22887              		.cfi_offset 13, -40
- 22888              		.cfi_offset 14, -32
- 22889              		.cfi_offset 15, -24
- 22890 1598d E8000000 		call	KDbgWriterGet at PLT
- 22890      00
- 22891 15992 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 694
-
-
- 22892 15995 7479     		je	.L591
- 22893 15997 BF030000 		movl	$3, %edi
- 22893      00
- 22894 1599c E8000000 		call	KDbgCondToFlag at PLT
- 22894      00
- 22895 159a1 4889C6   		movq	%rax, %rsi
- 22896 159a4 BF100000 		movl	$16, %edi
- 22896      00
- 22897 159a9 E8000000 		call	KDbgTestModConds at PLT
- 22897      00
- 22898 159ae 84C0     		testb	%al, %al
- 22899 159b0 745E     		je	.L591
- 22900 159b2 8B853CF6 		movl	-2500(%rbp), %eax
- 22900      FFFF
- 22901 159b8 89C7     		movl	%eax, %edi
- 22902 159ba E841A6FE 		call	bswap_32
- 22902      FF
- 22903 159bf 4189C5   		movl	%eax, %r13d
- 22904 159c2 8B8538F6 		movl	-2504(%rbp), %eax
- 22904      FFFF
- 22905 159c8 89C7     		movl	%eax, %edi
- 22906 159ca E831A6FE 		call	bswap_32
- 22906      FF
- 22907 159cf 4189C4   		movl	%eax, %r12d
- 22908 159d2 8B8534F6 		movl	-2508(%rbp), %eax
- 22908      FFFF
- 22909 159d8 89C7     		movl	%eax, %edi
- 22910 159da E821A6FE 		call	bswap_32
- 22910      FF
- 22911 159df 89C3     		movl	%eax, %ebx
- 22912 159e1 8B8530F6 		movl	-2512(%rbp), %eax
- 22912      FFFF
- 22913 159e7 89C7     		movl	%eax, %edi
- 22914 159e9 E812A6FE 		call	bswap_32
- 22914      FF
- 22915 159ee 4589E9   		movl	%r13d, %r9d
- 22916 159f1 4589E0   		movl	%r12d, %r8d
- 22917 159f4 89D9     		movl	%ebx, %ecx
- 22918 159f6 89C2     		movl	%eax, %edx
- 22919 159f8 488D3500 		leaq	.LC5(%rip), %rsi
- 22919      000000
- 22920 159ff 488D3D00 		leaq	.LC1(%rip), %rdi
- 22920      000000
- 22921 15a06 B8000000 		movl	$0, %eax
- 22921      00
- 22922 15a0b E8000000 		call	KDbgMsg at PLT
- 22922      00
- 22923              	.L591:
- 22924 15a10 F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 22924      F0F8FFFF 
- 22925 15a18 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 22925      10F9FFFF 
- 22926 15a20 F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 22926      E0F8FFFF 
- 22927 15a28 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 22927      00F9FFFF 
- 22928 15a30 F30F6F85 		movdqu	-1776(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 695
-
-
- 22928      10F9FFFF 
- 22929 15a38 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 22929      30F9FFFF 
- 22930 15a40 F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 22930      00F9FFFF 
- 22931 15a48 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 22931      20F9FFFF 
- 22932              	.LBE2779:
- 22933              	.LBB2780:
- 22934              	.LBB2781:
- 22935              	.LBB2782:
- 22936              	.LBB2783:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 22937              		.loc 2 178 0
- 22938 15a50 F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 22938      20F9FFFF 
- 22939 15a58 F30F6F8D 		movdqu	-1744(%rbp), %xmm1
- 22939      30F9FFFF 
- 22940 15a60 660FEFC1 		pxor	%xmm1, %xmm0
- 22941              	.LBE2783:
- 22942              	.LBE2782:
- 22943              	.LBE2781:
- 22944              	.LBE2780:
-2135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(AddRoundKey) (state, round_keys);
- 22945              		.loc 2 2135 0
- 22946 15a64 F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 22946      F0F8FFFF 
- 22947              	.LBB2784:
-2137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
- 22948              		.loc 2 2137 0
- 22949 15a6c F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 22949      E0F8FFFF 
- 22950 15a74 F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 22950      20F6FFFF 
- 22951 15a7c E8000000 		call	KDbgWriterGet at PLT
- 22951      00
- 22952 15a81 4885C0   		testq	%rax, %rax
- 22953 15a84 7479     		je	.L593
- 22954 15a86 BF030000 		movl	$3, %edi
- 22954      00
- 22955 15a8b E8000000 		call	KDbgCondToFlag at PLT
- 22955      00
- 22956 15a90 4889C6   		movq	%rax, %rsi
- 22957 15a93 BF100000 		movl	$16, %edi
- 22957      00
- 22958 15a98 E8000000 		call	KDbgTestModConds at PLT
- 22958      00
- 22959 15a9d 84C0     		testb	%al, %al
- 22960 15a9f 745E     		je	.L593
- 22961 15aa1 8B852CF6 		movl	-2516(%rbp), %eax
- 22961      FFFF
- 22962 15aa7 89C7     		movl	%eax, %edi
- 22963 15aa9 E852A5FE 		call	bswap_32
- 22963      FF
- 22964 15aae 4189C5   		movl	%eax, %r13d
- 22965 15ab1 8B8528F6 		movl	-2520(%rbp), %eax
- 22965      FFFF
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 696
-
-
- 22966 15ab7 89C7     		movl	%eax, %edi
- 22967 15ab9 E842A5FE 		call	bswap_32
- 22967      FF
- 22968 15abe 4189C4   		movl	%eax, %r12d
- 22969 15ac1 8B8524F6 		movl	-2524(%rbp), %eax
- 22969      FFFF
- 22970 15ac7 89C7     		movl	%eax, %edi
- 22971 15ac9 E832A5FE 		call	bswap_32
- 22971      FF
- 22972 15ace 89C3     		movl	%eax, %ebx
- 22973 15ad0 8B8520F6 		movl	-2528(%rbp), %eax
- 22973      FFFF
- 22974 15ad6 89C7     		movl	%eax, %edi
- 22975 15ad8 E823A5FE 		call	bswap_32
- 22975      FF
- 22976 15add 4589E9   		movl	%r13d, %r9d
- 22977 15ae0 4589E0   		movl	%r12d, %r8d
- 22978 15ae3 89D9     		movl	%ebx, %ecx
- 22979 15ae5 89C2     		movl	%eax, %edx
- 22980 15ae7 488D3500 		leaq	.LC6(%rip), %rsi
- 22980      000000
- 22981 15aee 488D3D00 		leaq	.LC1(%rip), %rdi
- 22981      000000
- 22982 15af5 B8000000 		movl	$0, %eax
- 22982      00
- 22983 15afa E8000000 		call	KDbgMsg at PLT
- 22983      00
- 22984              	.L593:
- 22985              	.LBE2784:
- 22986              	.LBB2785:
-2138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
- 22987              		.loc 2 2138 0
- 22988 15aff F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 22988      F0F8FFFF 
- 22989 15b07 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 22989      10F6FFFF 
- 22990 15b0f E8000000 		call	KDbgWriterGet at PLT
- 22990      00
- 22991 15b14 4885C0   		testq	%rax, %rax
- 22992 15b17 7479     		je	.L595
- 22993 15b19 BF030000 		movl	$3, %edi
- 22993      00
- 22994 15b1e E8000000 		call	KDbgCondToFlag at PLT
- 22994      00
- 22995 15b23 4889C6   		movq	%rax, %rsi
- 22996 15b26 BF100000 		movl	$16, %edi
- 22996      00
- 22997 15b2b E8000000 		call	KDbgTestModConds at PLT
- 22997      00
- 22998 15b30 84C0     		testb	%al, %al
- 22999 15b32 745E     		je	.L595
- 23000 15b34 8B851CF6 		movl	-2532(%rbp), %eax
- 23000      FFFF
- 23001 15b3a 89C7     		movl	%eax, %edi
- 23002 15b3c E8BFA4FE 		call	bswap_32
- 23002      FF
- 23003 15b41 4189C5   		movl	%eax, %r13d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 697
-
-
- 23004 15b44 8B8518F6 		movl	-2536(%rbp), %eax
- 23004      FFFF
- 23005 15b4a 89C7     		movl	%eax, %edi
- 23006 15b4c E8AFA4FE 		call	bswap_32
- 23006      FF
- 23007 15b51 4189C4   		movl	%eax, %r12d
- 23008 15b54 8B8514F6 		movl	-2540(%rbp), %eax
- 23008      FFFF
- 23009 15b5a 89C7     		movl	%eax, %edi
- 23010 15b5c E89FA4FE 		call	bswap_32
- 23010      FF
- 23011 15b61 89C3     		movl	%eax, %ebx
- 23012 15b63 8B8510F6 		movl	-2544(%rbp), %eax
- 23012      FFFF
- 23013 15b69 89C7     		movl	%eax, %edi
- 23014 15b6b E890A4FE 		call	bswap_32
- 23014      FF
- 23015 15b70 4589E9   		movl	%r13d, %r9d
- 23016 15b73 4589E0   		movl	%r12d, %r8d
- 23017 15b76 89D9     		movl	%ebx, %ecx
- 23018 15b78 89C2     		movl	%eax, %edx
- 23019 15b7a 488D3500 		leaq	.LC11(%rip), %rsi
- 23019      000000
- 23020 15b81 488D3D00 		leaq	.LC1(%rip), %rdi
- 23020      000000
- 23021 15b88 B8000000 		movl	$0, %eax
- 23021      00
- 23022 15b8d E8000000 		call	KDbgMsg at PLT
- 23022      00
- 23023              	.L595:
- 23024              	.LBE2785:
-2139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 23025              		.loc 2 2139 0
- 23026 15b92 F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 23026      F0F8FFFF 
- 23027              	.LBE2778:
- 23028              	.LBE2777:
-2274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(EqInvFirstRound) (state, key[ix++]);
- 23029              		.loc 2 2274 0
- 23030 15b9a 660F7F85 		movdqa	%xmm0, -2560(%rbp)
- 23030      00F6FFFF 
-2276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 23031              		.loc 2 2276 0
- 23032 15ba2 E9F61100 		jmp	.L596
- 23032      00
- 23033              	.L637:
-2277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvMiddleRound) (state, key[ix] );
- 23034              		.loc 2 2277 0
- 23035 15ba7 8B85DCF8 		mov	-1828(%rbp), %eax
- 23035      FFFF
- 23036 15bad 48C1E004 		salq	$4, %rax
- 23037 15bb1 480385F8 		addq	-2568(%rbp), %rax
- 23037      F5FFFF
- 23038 15bb8 660F6F00 		movdqa	(%rax), %xmm0
- 23039 15bbc 660F6F8D 		movdqa	-2560(%rbp), %xmm1
- 23039      00F6FFFF 
- 23040 15bc4 F30F7F8D 		movdqu	%xmm1, -1712(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 698
-
-
- 23040      50F9FFFF 
- 23041 15bcc F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 23041      40F9FFFF 
- 23042              	.LBB2786:
- 23043              	.LBB2787:
-2167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 23044              		.loc 2 2167 0
- 23045 15bd4 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 23045      50F9FFFF 
- 23046 15bdc F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 23046      70F9FFFF 
-2168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
- 23047              		.loc 2 2168 0
- 23048 15be4 F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 23048      40F9FFFF 
- 23049 15bec F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 23049      60F9FFFF 
- 23050              	.LBB2788:
-2171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", mstate);
- 23051              		.loc 2 2171 0
- 23052 15bf4 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 23052      70F9FFFF 
- 23053 15bfc F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 23053      90F6FFFF 
- 23054 15c04 E8000000 		call	KDbgWriterGet at PLT
- 23054      00
- 23055 15c09 4885C0   		testq	%rax, %rax
- 23056 15c0c 7479     		je	.L598
- 23057 15c0e BF030000 		movl	$3, %edi
- 23057      00
- 23058 15c13 E8000000 		call	KDbgCondToFlag at PLT
- 23058      00
- 23059 15c18 4889C6   		movq	%rax, %rsi
- 23060 15c1b BF100000 		movl	$16, %edi
- 23060      00
- 23061 15c20 E8000000 		call	KDbgTestModConds at PLT
- 23061      00
- 23062 15c25 84C0     		testb	%al, %al
- 23063 15c27 745E     		je	.L598
- 23064 15c29 8B859CF6 		movl	-2404(%rbp), %eax
- 23064      FFFF
- 23065 15c2f 89C7     		movl	%eax, %edi
- 23066 15c31 E8CAA3FE 		call	bswap_32
- 23066      FF
- 23067 15c36 4189C5   		movl	%eax, %r13d
- 23068 15c39 8B8598F6 		movl	-2408(%rbp), %eax
- 23068      FFFF
- 23069 15c3f 89C7     		movl	%eax, %edi
- 23070 15c41 E8BAA3FE 		call	bswap_32
- 23070      FF
- 23071 15c46 4189C4   		movl	%eax, %r12d
- 23072 15c49 8B8594F6 		movl	-2412(%rbp), %eax
- 23072      FFFF
- 23073 15c4f 89C7     		movl	%eax, %edi
- 23074 15c51 E8AAA3FE 		call	bswap_32
- 23074      FF
- 23075 15c56 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 699
-
-
- 23076 15c58 8B8590F6 		movl	-2416(%rbp), %eax
- 23076      FFFF
- 23077 15c5e 89C7     		movl	%eax, %edi
- 23078 15c60 E89BA3FE 		call	bswap_32
- 23078      FF
- 23079 15c65 4589E9   		movl	%r13d, %r9d
- 23080 15c68 4589E0   		movl	%r12d, %r8d
- 23081 15c6b 89D9     		movl	%ebx, %ecx
- 23082 15c6d 89C2     		movl	%eax, %edx
- 23083 15c6f 488D3500 		leaq	.LC5(%rip), %rsi
- 23083      000000
- 23084 15c76 488D3D00 		leaq	.LC1(%rip), %rdi
- 23084      000000
- 23085 15c7d B8000000 		movl	$0, %eax
- 23085      00
- 23086 15c82 E8000000 		call	KDbgMsg at PLT
- 23086      00
- 23087              	.L598:
- 23088 15c87 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 23088      50F9FFFF 
- 23089 15c8f F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 23089      80F9FFFF 
- 23090 15c97 F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 23090      80F9FFFF 
- 23091 15c9f F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 23091      A0F9FFFF 
- 23092 15ca7 488D0500 		leaq	KAESBlockCipherVecRijndaelInvSBoxV(%rip), %rax
- 23092      000000
- 23093 15cae 48898598 		movq	%rax, -1640(%rbp)
- 23093      F9FFFF
- 23094              	.LBE2788:
- 23095              	.LBB2789:
- 23096              	.LBB2790:
- 23097              	.LBB2791:
- 23098              	.LBB2792:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 23099              		.loc 2 851 0
- 23100 15cb5 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 23100      00000000 
- 23101 15cbd F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 23101      C0F9FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 23102              		.loc 2 854 0
- 23103 15cc5 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 23103      00000000 
- 23104 15ccd F30F6F8D 		movdqu	-1632(%rbp), %xmm1
- 23104      A0F9FFFF 
- 23105 15cd5 F30F7F8D 		movdqu	%xmm1, -1520(%rbp)
- 23105      10FAFFFF 
- 23106 15cdd F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 23106      00FAFFFF 
- 23107              	.LBB2793:
- 23108              	.LBB2794:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 23109              		.loc 2 206 0
- 23110 15ce5 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 23110      00FAFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 700
-
-
- 23111 15ced F30F6F8D 		movdqu	-1520(%rbp), %xmm1
- 23111      10FAFFFF 
- 23112 15cf5 660FDBC1 		pand	%xmm1, %xmm0
- 23113              	.LBE2794:
- 23114              	.LBE2793:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 23115              		.loc 2 854 0
- 23116 15cf9 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 23116      F0F9FFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 23117              		.loc 2 862 0
- 23118 15d01 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 23118      00000000 
- 23119 15d09 F30F6F8D 		movdqu	-1632(%rbp), %xmm1
- 23119      A0F9FFFF 
- 23120 15d11 F30F7F8D 		movdqu	%xmm1, -1488(%rbp)
- 23120      30FAFFFF 
- 23121 15d19 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 23121      20FAFFFF 
- 23122              	.LBB2795:
- 23123              		.loc 2 2642 0
- 23124 15d21 0FB68530 		movzbl	-1488(%rbp), %eax
- 23124      FAFFFF
- 23125 15d28 0FB69520 		movzbl	-1504(%rbp), %edx
- 23125      FAFFFF
- 23126 15d2f 0FB6C0   		movzbl	%al, %eax
- 23127 15d32 6689855E 		movw	%ax, -2722(%rbp)
- 23127      F5FFFF
- 23128 15d39 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23128      F5FFFF
- 23129 15d40 F6F2     		divb	%dl
- 23130 15d42 4189C7   		movl	%eax, %r15d
- 23131 15d45 0FB68531 		movzbl	-1487(%rbp), %eax
- 23131      FAFFFF
- 23132 15d4c 0FB69521 		movzbl	-1503(%rbp), %edx
- 23132      FAFFFF
- 23133 15d53 0FB6C0   		movzbl	%al, %eax
- 23134 15d56 6689855E 		movw	%ax, -2722(%rbp)
- 23134      F5FFFF
- 23135 15d5d 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23135      F5FFFF
- 23136 15d64 F6F2     		divb	%dl
- 23137 15d66 88858FF5 		movb	%al, -2673(%rbp)
- 23137      FFFF
- 23138 15d6c 0FB68532 		movzbl	-1486(%rbp), %eax
- 23138      FAFFFF
- 23139 15d73 0FB69522 		movzbl	-1502(%rbp), %edx
- 23139      FAFFFF
- 23140 15d7a 0FB6C0   		movzbl	%al, %eax
- 23141 15d7d 6689855E 		movw	%ax, -2722(%rbp)
- 23141      F5FFFF
- 23142 15d84 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23142      F5FFFF
- 23143 15d8b F6F2     		divb	%dl
- 23144 15d8d 88858EF5 		movb	%al, -2674(%rbp)
- 23144      FFFF
- 23145 15d93 0FB68533 		movzbl	-1485(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 701
-
-
- 23145      FAFFFF
- 23146 15d9a 0FB69523 		movzbl	-1501(%rbp), %edx
- 23146      FAFFFF
- 23147 15da1 0FB6C0   		movzbl	%al, %eax
- 23148 15da4 6689855E 		movw	%ax, -2722(%rbp)
- 23148      F5FFFF
- 23149 15dab 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23149      F5FFFF
- 23150 15db2 F6F2     		divb	%dl
- 23151 15db4 88858DF5 		movb	%al, -2675(%rbp)
- 23151      FFFF
- 23152 15dba 0FB68534 		movzbl	-1484(%rbp), %eax
- 23152      FAFFFF
- 23153 15dc1 0FB69524 		movzbl	-1500(%rbp), %edx
- 23153      FAFFFF
- 23154 15dc8 0FB6C0   		movzbl	%al, %eax
- 23155 15dcb 6689855E 		movw	%ax, -2722(%rbp)
- 23155      F5FFFF
- 23156 15dd2 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23156      F5FFFF
- 23157 15dd9 F6F2     		divb	%dl
- 23158 15ddb 88858CF5 		movb	%al, -2676(%rbp)
- 23158      FFFF
- 23159 15de1 0FB68535 		movzbl	-1483(%rbp), %eax
- 23159      FAFFFF
- 23160 15de8 0FB69525 		movzbl	-1499(%rbp), %edx
- 23160      FAFFFF
- 23161 15def 0FB6C0   		movzbl	%al, %eax
- 23162 15df2 6689855E 		movw	%ax, -2722(%rbp)
- 23162      F5FFFF
- 23163 15df9 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23163      F5FFFF
- 23164 15e00 F6F2     		divb	%dl
- 23165 15e02 4189C1   		movl	%eax, %r9d
- 23166 15e05 0FB68536 		movzbl	-1482(%rbp), %eax
- 23166      FAFFFF
- 23167 15e0c 0FB69526 		movzbl	-1498(%rbp), %edx
- 23167      FAFFFF
- 23168 15e13 0FB6C0   		movzbl	%al, %eax
- 23169 15e16 6689855E 		movw	%ax, -2722(%rbp)
- 23169      F5FFFF
- 23170 15e1d 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23170      F5FFFF
- 23171 15e24 F6F2     		divb	%dl
- 23172 15e26 89C7     		movl	%eax, %edi
- 23173 15e28 0FB68537 		movzbl	-1481(%rbp), %eax
- 23173      FAFFFF
- 23174 15e2f 0FB69527 		movzbl	-1497(%rbp), %edx
- 23174      FAFFFF
- 23175 15e36 0FB6C0   		movzbl	%al, %eax
- 23176 15e39 6689855E 		movw	%ax, -2722(%rbp)
- 23176      F5FFFF
- 23177 15e40 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23177      F5FFFF
- 23178 15e47 F6F2     		divb	%dl
- 23179 15e49 89C3     		movl	%eax, %ebx
- 23180 15e4b 0FB68538 		movzbl	-1480(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 702
-
-
- 23180      FAFFFF
- 23181 15e52 0FB69528 		movzbl	-1496(%rbp), %edx
- 23181      FAFFFF
- 23182 15e59 0FB6C0   		movzbl	%al, %eax
- 23183 15e5c 6689855E 		movw	%ax, -2722(%rbp)
- 23183      F5FFFF
- 23184 15e63 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23184      F5FFFF
- 23185 15e6a F6F2     		divb	%dl
- 23186 15e6c 4189C2   		movl	%eax, %r10d
- 23187 15e6f 0FB68539 		movzbl	-1479(%rbp), %eax
- 23187      FAFFFF
- 23188 15e76 0FB69529 		movzbl	-1495(%rbp), %edx
- 23188      FAFFFF
- 23189 15e7d 0FB6C0   		movzbl	%al, %eax
- 23190 15e80 6689855E 		movw	%ax, -2722(%rbp)
- 23190      F5FFFF
- 23191 15e87 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23191      F5FFFF
- 23192 15e8e F6F2     		divb	%dl
- 23193 15e90 4189C3   		movl	%eax, %r11d
- 23194 15e93 0FB6853A 		movzbl	-1478(%rbp), %eax
- 23194      FAFFFF
- 23195 15e9a 0FB6952A 		movzbl	-1494(%rbp), %edx
- 23195      FAFFFF
- 23196 15ea1 0FB6C0   		movzbl	%al, %eax
- 23197 15ea4 6689855E 		movw	%ax, -2722(%rbp)
- 23197      F5FFFF
- 23198 15eab 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23198      F5FFFF
- 23199 15eb2 F6F2     		divb	%dl
- 23200 15eb4 4189C4   		movl	%eax, %r12d
- 23201 15eb7 0FB6853B 		movzbl	-1477(%rbp), %eax
- 23201      FAFFFF
- 23202 15ebe 0FB6952B 		movzbl	-1493(%rbp), %edx
- 23202      FAFFFF
- 23203 15ec5 0FB6C0   		movzbl	%al, %eax
- 23204 15ec8 6689855E 		movw	%ax, -2722(%rbp)
- 23204      F5FFFF
- 23205 15ecf 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23205      F5FFFF
- 23206 15ed6 F6F2     		divb	%dl
- 23207 15ed8 4189C5   		movl	%eax, %r13d
- 23208 15edb 0FB6853C 		movzbl	-1476(%rbp), %eax
- 23208      FAFFFF
- 23209 15ee2 0FB6952C 		movzbl	-1492(%rbp), %edx
- 23209      FAFFFF
- 23210 15ee9 0FB6C0   		movzbl	%al, %eax
- 23211 15eec 6689855E 		movw	%ax, -2722(%rbp)
- 23211      F5FFFF
- 23212 15ef3 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23212      F5FFFF
- 23213 15efa F6F2     		divb	%dl
- 23214 15efc 4189C6   		movl	%eax, %r14d
- 23215 15eff 0FB6853D 		movzbl	-1475(%rbp), %eax
- 23215      FAFFFF
- 23216 15f06 0FB6952D 		movzbl	-1491(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 703
-
-
- 23216      FAFFFF
- 23217 15f0d 0FB6C0   		movzbl	%al, %eax
- 23218 15f10 6689855E 		movw	%ax, -2722(%rbp)
- 23218      F5FFFF
- 23219 15f17 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23219      F5FFFF
- 23220 15f1e F6F2     		divb	%dl
- 23221 15f20 4189C0   		movl	%eax, %r8d
- 23222 15f23 0FB6853E 		movzbl	-1474(%rbp), %eax
- 23222      FAFFFF
- 23223 15f2a 0FB6952E 		movzbl	-1490(%rbp), %edx
- 23223      FAFFFF
- 23224 15f31 0FB6C0   		movzbl	%al, %eax
- 23225 15f34 6689855E 		movw	%ax, -2722(%rbp)
- 23225      F5FFFF
- 23226 15f3b 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23226      F5FFFF
- 23227 15f42 F6F2     		divb	%dl
- 23228 15f44 89C6     		movl	%eax, %esi
- 23229 15f46 0FB6853F 		movzbl	-1473(%rbp), %eax
- 23229      FAFFFF
- 23230 15f4d 0FB6952F 		movzbl	-1489(%rbp), %edx
- 23230      FAFFFF
- 23231 15f54 0FB6C0   		movzbl	%al, %eax
- 23232 15f57 6689855E 		movw	%ax, -2722(%rbp)
- 23232      F5FFFF
- 23233 15f5e 0FB7855E 		movzwl	-2722(%rbp), %eax
- 23233      F5FFFF
- 23234 15f65 F6F2     		divb	%dl
- 23235 15f67 89C1     		movl	%eax, %ecx
- 23236              	.LBB2796:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 23237              		.loc 2 346 0
- 23238 15f69 0FB6D3   		movzbl	%bl, %edx
- 23239 15f6c 400FB6C7 		movzbl	%dil, %eax
- 23240 15f70 48C1E208 		salq	$8, %rdx
- 23241 15f74 4809C2   		orq	%rax, %rdx
- 23242 15f77 410FB6C1 		movzbl	%r9b, %eax
- 23243 15f7b 48C1E208 		salq	$8, %rdx
- 23244 15f7f 4809C2   		orq	%rax, %rdx
- 23245 15f82 0FB6858C 		movzbl	-2676(%rbp), %eax
- 23245      F5FFFF
- 23246 15f89 48C1E208 		salq	$8, %rdx
- 23247 15f8d 4809C2   		orq	%rax, %rdx
- 23248 15f90 0FB6858D 		movzbl	-2675(%rbp), %eax
- 23248      F5FFFF
- 23249 15f97 48C1E208 		salq	$8, %rdx
- 23250 15f9b 4809C2   		orq	%rax, %rdx
- 23251 15f9e 0FB6858E 		movzbl	-2674(%rbp), %eax
- 23251      F5FFFF
- 23252 15fa5 48C1E208 		salq	$8, %rdx
- 23253 15fa9 4809C2   		orq	%rax, %rdx
- 23254 15fac 0FB6858F 		movzbl	-2673(%rbp), %eax
- 23254      F5FFFF
- 23255 15fb3 48C1E208 		salq	$8, %rdx
- 23256 15fb7 4809C2   		orq	%rax, %rdx
- 23257 15fba 410FB6C7 		movzbl	%r15b, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 704
-
-
- 23258 15fbe 48C1E208 		salq	$8, %rdx
- 23259 15fc2 4809C2   		orq	%rax, %rdx
- 23260 15fc5 0FB6C1   		movzbl	%cl, %eax
- 23261 15fc8 400FB6CE 		movzbl	%sil, %ecx
- 23262 15fcc 48C1E008 		salq	$8, %rax
- 23263 15fd0 4809C8   		orq	%rcx, %rax
- 23264 15fd3 410FB6C8 		movzbl	%r8b, %ecx
- 23265 15fd7 48C1E008 		salq	$8, %rax
- 23266 15fdb 4809C8   		orq	%rcx, %rax
- 23267 15fde 410FB6CE 		movzbl	%r14b, %ecx
- 23268 15fe2 48C1E008 		salq	$8, %rax
- 23269 15fe6 4809C8   		orq	%rcx, %rax
- 23270 15fe9 410FB6CD 		movzbl	%r13b, %ecx
- 23271 15fed 48C1E008 		salq	$8, %rax
- 23272 15ff1 4809C8   		orq	%rcx, %rax
- 23273 15ff4 410FB6CC 		movzbl	%r12b, %ecx
- 23274 15ff8 48C1E008 		salq	$8, %rax
- 23275 15ffc 4809C8   		orq	%rcx, %rax
- 23276 15fff 410FB6CB 		movzbl	%r11b, %ecx
- 23277 16003 48C1E008 		salq	$8, %rax
- 23278 16007 4809C8   		orq	%rcx, %rax
- 23279 1600a 410FB6CA 		movzbl	%r10b, %ecx
- 23280 1600e 48C1E008 		salq	$8, %rax
- 23281 16012 4809C8   		orq	%rcx, %rax
- 23282 16015 48899570 		movq	%rdx, -2704(%rbp)
- 23282      F5FFFF
- 23283 1601c 48898578 		movq	%rax, -2696(%rbp)
- 23283      F5FFFF
- 23284 16023 660F6F85 		movdqa	-2704(%rbp), %xmm0
- 23284      70F5FFFF 
- 23285              	.LBE2796:
- 23286              	.LBE2795:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 23287              		.loc 2 862 0
- 23288 1602b F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 23288      E0F9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 23289              		.loc 2 866 0
- 23290 16033 C785BCF9 		movl	$0, -1604(%rbp)
- 23290      FFFF0000 
- 23290      0000
- 23291 1603d E9860200 		jmp	.L599
- 23291      00
- 23292              	.L608:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 23293              		.loc 2 868 0
- 23294 16042 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 23294      00000000 
- 23295 1604a F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 23295      50FAFFFF 
- 23296 16052 F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 23296      E0F9FFFF 
- 23297 1605a F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 23297      40FAFFFF 
- 23298              	.LBB2797:
- 23299              	.LBB2798:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 705
-
-
- 23300              		.loc 2 380 0
- 23301 16062 F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 23301      50FAFFFF 
- 23302 1606a F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 23302      B0F6FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 23303              		.loc 2 381 0
- 23304 16072 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 23304      40FAFFFF 
- 23305 1607a F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 23305      A0F6FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23306              		.loc 2 383 0
- 23307 16082 C7856CFA 		movl	$0, -1428(%rbp)
- 23307      FFFF0000 
- 23307      0000
- 23308 1608c EB5C     		jmp	.L600
- 23309              	.L603:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 23310              		.loc 2 385 0
- 23311 1608e 8B856CFA 		movl	-1428(%rbp), %eax
- 23311      FFFF
- 23312 16094 89C0     		mov	%eax, %eax
- 23313 16096 0FB68405 		movzbl	-2400(%rbp,%rax), %eax
- 23313      A0F6FFFF 
- 23314 1609e 84C0     		testb	%al, %al
- 23315 160a0 7912     		jns	.L601
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 23316              		.loc 2 386 0
- 23317 160a2 8B856CFA 		movl	-1428(%rbp), %eax
- 23317      FFFF
- 23318 160a8 89C0     		mov	%eax, %eax
- 23319 160aa C68405C0 		movb	$0, -2368(%rbp,%rax)
- 23319      F6FFFF00 
- 23320 160b2 EB2F     		jmp	.L602
- 23321              	.L601:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 23322              		.loc 2 388 0
- 23323 160b4 8B8D6CFA 		movl	-1428(%rbp), %ecx
- 23323      FFFF
- 23324 160ba 8B856CFA 		movl	-1428(%rbp), %eax
- 23324      FFFF
- 23325 160c0 89C0     		mov	%eax, %eax
- 23326 160c2 0FB68405 		movzbl	-2400(%rbp,%rax), %eax
- 23326      A0F6FFFF 
- 23327 160ca 0FB6C0   		movzbl	%al, %eax
- 23328 160cd 83E00F   		andl	$15, %eax
- 23329 160d0 4898     		cltq
- 23330 160d2 0FB69405 		movzbl	-2384(%rbp,%rax), %edx
- 23330      B0F6FFFF 
- 23331 160da 89C8     		mov	%ecx, %eax
- 23332 160dc 889405C0 		movb	%dl, -2368(%rbp,%rax)
- 23332      F6FFFF
- 23333              	.L602:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23334              		.loc 2 383 0
- 23335 160e3 83856CFA 		addl	$1, -1428(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 706
-
-
- 23335      FFFF01
- 23336              	.L600:
- 23337 160ea 83BD6CFA 		cmpl	$15, -1428(%rbp)
- 23337      FFFF0F
- 23338 160f1 769B     		jbe	.L603
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 23339              		.loc 2 391 0
- 23340 160f3 F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 23340      C0F6FFFF 
- 23341              	.LBE2798:
- 23342              	.LBE2797:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 23343              		.loc 2 868 0
- 23344 160fb F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 23344      D0F9FFFF 
- 23345 16103 F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 23345      F0F9FFFF 
- 23346 1610b F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 23346      80FAFFFF 
- 23347 16113 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 23347      D0F9FFFF 
- 23348 1611b F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 23348      70FAFFFF 
- 23349              	.LBB2799:
- 23350              	.LBB2800:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 23351              		.loc 2 234 0
- 23352 16123 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 23352      70FAFFFF 
- 23353 1612b F30F6F8D 		movdqu	-1408(%rbp), %xmm1
- 23353      80FAFFFF 
- 23354 16133 660FEBC1 		por	%xmm1, %xmm0
- 23355              	.LBE2800:
- 23356              	.LBE2799:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 23357              		.loc 2 870 0
- 23358 16137 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 23358      D0F9FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 23359              		.loc 2 872 0
- 23360 1613f 8B85BCF9 		mov	-1604(%rbp), %eax
- 23360      FFFF
- 23361 16145 48C1E004 		salq	$4, %rax
- 23362 16149 48038598 		addq	-1640(%rbp), %rax
- 23362      F9FFFF
- 23363 16150 660F6F00 		movdqa	(%rax), %xmm0
- 23364 16154 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 23364      A0FAFFFF 
- 23365 1615c F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 23365      D0F9FFFF 
- 23366 16164 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 23366      90FAFFFF 
- 23367              	.LBB2801:
- 23368              	.LBB2802:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 23369              		.loc 2 380 0
- 23370 1616c F30F6F85 		movdqu	-1376(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 707
-
-
- 23370      A0FAFFFF 
- 23371 16174 F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 23371      E0F6FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 23372              		.loc 2 381 0
- 23373 1617c F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 23373      90FAFFFF 
- 23374 16184 F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 23374      D0F6FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23375              		.loc 2 383 0
- 23376 1618c C785BCFA 		movl	$0, -1348(%rbp)
- 23376      FFFF0000 
- 23376      0000
- 23377 16196 EB5C     		jmp	.L604
- 23378              	.L607:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 23379              		.loc 2 385 0
- 23380 16198 8B85BCFA 		movl	-1348(%rbp), %eax
- 23380      FFFF
- 23381 1619e 89C0     		mov	%eax, %eax
- 23382 161a0 0FB68405 		movzbl	-2352(%rbp,%rax), %eax
- 23382      D0F6FFFF 
- 23383 161a8 84C0     		testb	%al, %al
- 23384 161aa 7912     		jns	.L605
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 23385              		.loc 2 386 0
- 23386 161ac 8B85BCFA 		movl	-1348(%rbp), %eax
- 23386      FFFF
- 23387 161b2 89C0     		mov	%eax, %eax
- 23388 161b4 C68405F0 		movb	$0, -2320(%rbp,%rax)
- 23388      F6FFFF00 
- 23389 161bc EB2F     		jmp	.L606
- 23390              	.L605:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 23391              		.loc 2 388 0
- 23392 161be 8B8DBCFA 		movl	-1348(%rbp), %ecx
- 23392      FFFF
- 23393 161c4 8B85BCFA 		movl	-1348(%rbp), %eax
- 23393      FFFF
- 23394 161ca 89C0     		mov	%eax, %eax
- 23395 161cc 0FB68405 		movzbl	-2352(%rbp,%rax), %eax
- 23395      D0F6FFFF 
- 23396 161d4 0FB6C0   		movzbl	%al, %eax
- 23397 161d7 83E00F   		andl	$15, %eax
- 23398 161da 4898     		cltq
- 23399 161dc 0FB69405 		movzbl	-2336(%rbp,%rax), %edx
- 23399      E0F6FFFF 
- 23400 161e4 89C8     		mov	%ecx, %eax
- 23401 161e6 889405F0 		movb	%dl, -2320(%rbp,%rax)
- 23401      F6FFFF
- 23402              	.L606:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23403              		.loc 2 383 0
- 23404 161ed 8385BCFA 		addl	$1, -1348(%rbp)
- 23404      FFFF01
- 23405              	.L604:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 708
-
-
- 23406 161f4 83BDBCFA 		cmpl	$15, -1348(%rbp)
- 23406      FFFF0F
- 23407 161fb 769B     		jbe	.L607
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 23408              		.loc 2 391 0
- 23409 161fd F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 23409      F0F6FFFF 
- 23410              	.LBE2802:
- 23411              	.LBE2801:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 23412              		.loc 2 872 0
- 23413 16205 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 23413      D0F9FFFF 
- 23414 1620d F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 23414      C0F9FFFF 
- 23415 16215 F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 23415      D0FAFFFF 
- 23416 1621d F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 23416      D0F9FFFF 
- 23417 16225 F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 23417      C0FAFFFF 
- 23418              	.LBB2803:
- 23419              	.LBB2804:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 23420              		.loc 2 234 0
- 23421 1622d F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 23421      C0FAFFFF 
- 23422 16235 F30F6F8D 		movdqu	-1328(%rbp), %xmm1
- 23422      D0FAFFFF 
- 23423 1623d 660FEBC1 		por	%xmm1, %xmm0
- 23424              	.LBE2804:
- 23425              	.LBE2803:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 23426              		.loc 2 874 0
- 23427 16241 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 23427      C0F9FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 23428              		.loc 2 876 0
- 23429 16249 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 23429      00000000 
- 23430 16251 F30F6F8D 		movdqu	-1568(%rbp), %xmm1
- 23430      E0F9FFFF 
- 23431 16259 F30F7F8D 		movdqu	%xmm1, -1296(%rbp)
- 23431      F0FAFFFF 
- 23432 16261 F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 23432      E0FAFFFF 
- 23433              	.LBB2805:
- 23434              	.LBB2806:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 23435              		.loc 2 290 0
- 23436 16269 F30F6F8D 		movdqu	-1312(%rbp), %xmm1
- 23436      E0FAFFFF 
- 23437 16271 F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 23437      F0FAFFFF 
- 23438 16279 660FF8C1 		psubb	%xmm1, %xmm0
- 23439              	.LBE2806:
- 23440              	.LBE2805:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 709
-
-
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 23441              		.loc 2 876 0
- 23442 1627d F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 23442      E0F9FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 23443              		.loc 2 878 0
- 23444 16285 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 23444      00000000 
- 23445 1628d F30F6F8D 		movdqu	-1568(%rbp), %xmm1
- 23445      E0F9FFFF 
- 23446 16295 F30F7F8D 		movdqu	%xmm1, -1264(%rbp)
- 23446      10FBFFFF 
- 23447 1629d F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 23447      00FBFFFF 
- 23448              	.LBB2807:
- 23449              	.LBB2808:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 23450              		.loc 2 206 0
- 23451 162a5 F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 23451      00FBFFFF 
- 23452 162ad F30F6F8D 		movdqu	-1264(%rbp), %xmm1
- 23452      10FBFFFF 
- 23453 162b5 660FDBC1 		pand	%xmm1, %xmm0
- 23454              	.LBE2808:
- 23455              	.LBE2807:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 23456              		.loc 2 878 0
- 23457 162b9 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 23457      E0F9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 23458              		.loc 2 866 0
- 23459 162c1 8385BCF9 		addl	$1, -1604(%rbp)
- 23459      FFFF01
- 23460              	.L599:
- 23461 162c8 83BDBCF9 		cmpl	$15, -1604(%rbp)
- 23461      FFFF0F
- 23462 162cf 0F866DFD 		jbe	.L608
- 23462      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 23463              		.loc 2 882 0
- 23464 162d5 F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 23464      C0F9FFFF 
- 23465              	.LBE2792:
- 23466              	.LBE2791:
- 23467              	.LBE2790:
- 23468              	.LBE2789:
-2185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
- 23469              		.loc 2 2185 0
- 23470 162dd F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 23470      50F9FFFF 
-2188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 23471              		.loc 2 2188 0
- 23472 162e5 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 23472      50F9FFFF 
- 23473 162ed F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 23473      70F9FFFF 
- 23474              	.LBB2809:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 710
-
-
-2190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", mstate);
- 23475              		.loc 2 2190 0
- 23476 162f5 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 23476      70F9FFFF 
- 23477 162fd F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 23477      80F6FFFF 
- 23478 16305 E8000000 		call	KDbgWriterGet at PLT
- 23478      00
- 23479 1630a 4885C0   		testq	%rax, %rax
- 23480 1630d 7479     		je	.L610
- 23481 1630f BF030000 		movl	$3, %edi
- 23481      00
- 23482 16314 E8000000 		call	KDbgCondToFlag at PLT
- 23482      00
- 23483 16319 4889C6   		movq	%rax, %rsi
- 23484 1631c BF100000 		movl	$16, %edi
- 23484      00
- 23485 16321 E8000000 		call	KDbgTestModConds at PLT
- 23485      00
- 23486 16326 84C0     		testb	%al, %al
- 23487 16328 745E     		je	.L610
- 23488 1632a 8B858CF6 		movl	-2420(%rbp), %eax
- 23488      FFFF
- 23489 16330 89C7     		movl	%eax, %edi
- 23490 16332 E8C99CFE 		call	bswap_32
- 23490      FF
- 23491 16337 4189C5   		movl	%eax, %r13d
- 23492 1633a 8B8588F6 		movl	-2424(%rbp), %eax
- 23492      FFFF
- 23493 16340 89C7     		movl	%eax, %edi
- 23494 16342 E8B99CFE 		call	bswap_32
- 23494      FF
- 23495 16347 4189C4   		movl	%eax, %r12d
- 23496 1634a 8B8584F6 		movl	-2428(%rbp), %eax
- 23496      FFFF
- 23497 16350 89C7     		movl	%eax, %edi
- 23498 16352 E8A99CFE 		call	bswap_32
- 23498      FF
- 23499 16357 89C3     		movl	%eax, %ebx
- 23500 16359 8B8580F6 		movl	-2432(%rbp), %eax
- 23500      FFFF
- 23501 1635f 89C7     		movl	%eax, %edi
- 23502 16361 E89A9CFE 		call	bswap_32
- 23502      FF
- 23503 16366 4589E9   		movl	%r13d, %r9d
- 23504 16369 4589E0   		movl	%r12d, %r8d
- 23505 1636c 89D9     		movl	%ebx, %ecx
- 23506 1636e 89C2     		movl	%eax, %edx
- 23507 16370 488D3500 		leaq	.LC12(%rip), %rsi
- 23507      000000
- 23508 16377 488D3D00 		leaq	.LC1(%rip), %rdi
- 23508      000000
- 23509 1637e B8000000 		movl	$0, %eax
- 23509      00
- 23510 16383 E8000000 		call	KDbgMsg at PLT
- 23510      00
- 23511              	.L610:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 711
-
-
- 23512 16388 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 23512      50F9FFFF 
- 23513 16390 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 23513      20FBFFFF 
- 23514              	.LBE2809:
- 23515              	.LBB2810:
- 23516              	.LBB2811:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 23517              		.loc 2 612 0
- 23518 16398 660F6F05 		movdqa	InvShiftRowTable.6750(%rip), %xmm0
- 23518      00000000 
- 23519 163a0 F30F6F8D 		movdqu	-1248(%rbp), %xmm1
- 23519      20FBFFFF 
- 23520 163a8 F30F7F8D 		movdqu	%xmm1, -1216(%rbp)
- 23520      40FBFFFF 
- 23521 163b0 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 23521      30FBFFFF 
- 23522              	.LBB2812:
- 23523              	.LBB2813:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 23524              		.loc 2 380 0
- 23525 163b8 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 23525      40FBFFFF 
- 23526 163c0 F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 23526      10F7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 23527              		.loc 2 381 0
- 23528 163c8 F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 23528      30FBFFFF 
- 23529 163d0 F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 23529      00F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23530              		.loc 2 383 0
- 23531 163d8 C7855CFB 		movl	$0, -1188(%rbp)
- 23531      FFFF0000 
- 23531      0000
- 23532 163e2 EB5C     		jmp	.L611
- 23533              	.L614:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 23534              		.loc 2 385 0
- 23535 163e4 8B855CFB 		movl	-1188(%rbp), %eax
- 23535      FFFF
- 23536 163ea 89C0     		mov	%eax, %eax
- 23537 163ec 0FB68405 		movzbl	-2304(%rbp,%rax), %eax
- 23537      00F7FFFF 
- 23538 163f4 84C0     		testb	%al, %al
- 23539 163f6 7912     		jns	.L612
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 23540              		.loc 2 386 0
- 23541 163f8 8B855CFB 		movl	-1188(%rbp), %eax
- 23541      FFFF
- 23542 163fe 89C0     		mov	%eax, %eax
- 23543 16400 C6840520 		movb	$0, -2272(%rbp,%rax)
- 23543      F7FFFF00 
- 23544 16408 EB2F     		jmp	.L613
- 23545              	.L612:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 712
-
-
- 23546              		.loc 2 388 0
- 23547 1640a 8B8D5CFB 		movl	-1188(%rbp), %ecx
- 23547      FFFF
- 23548 16410 8B855CFB 		movl	-1188(%rbp), %eax
- 23548      FFFF
- 23549 16416 89C0     		mov	%eax, %eax
- 23550 16418 0FB68405 		movzbl	-2304(%rbp,%rax), %eax
- 23550      00F7FFFF 
- 23551 16420 0FB6C0   		movzbl	%al, %eax
- 23552 16423 83E00F   		andl	$15, %eax
- 23553 16426 4898     		cltq
- 23554 16428 0FB69405 		movzbl	-2288(%rbp,%rax), %edx
- 23554      10F7FFFF 
- 23555 16430 89C8     		mov	%ecx, %eax
- 23556 16432 88940520 		movb	%dl, -2272(%rbp,%rax)
- 23556      F7FFFF
- 23557              	.L613:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23558              		.loc 2 383 0
- 23559 16439 83855CFB 		addl	$1, -1188(%rbp)
- 23559      FFFF01
- 23560              	.L611:
- 23561 16440 83BD5CFB 		cmpl	$15, -1188(%rbp)
- 23561      FFFF0F
- 23562 16447 769B     		jbe	.L614
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 23563              		.loc 2 391 0
- 23564 16449 F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 23564      20F7FFFF 
- 23565              	.LBE2813:
- 23566              	.LBE2812:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 23567              		.loc 2 612 0
- 23568 16451 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 23568      20FBFFFF 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 23569              		.loc 2 613 0
- 23570 16459 F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 23570      20FBFFFF 
- 23571              	.LBE2811:
- 23572              	.LBE2810:
-2193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
- 23573              		.loc 2 2193 0
- 23574 16461 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 23574      50F9FFFF 
-2196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 23575              		.loc 2 2196 0
- 23576 16469 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 23576      50F9FFFF 
- 23577 16471 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 23577      70F9FFFF 
- 23578              	.LBB2814:
-2198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", mstate);
- 23579              		.loc 2 2198 0
- 23580 16479 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 23580      70F9FFFF 
- 23581 16481 F30F7F85 		movdqu	%xmm0, -2448(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 713
-
-
- 23581      70F6FFFF 
- 23582 16489 E8000000 		call	KDbgWriterGet at PLT
- 23582      00
- 23583 1648e 4885C0   		testq	%rax, %rax
- 23584 16491 7479     		je	.L616
- 23585 16493 BF030000 		movl	$3, %edi
- 23585      00
- 23586 16498 E8000000 		call	KDbgCondToFlag at PLT
- 23586      00
- 23587 1649d 4889C6   		movq	%rax, %rsi
- 23588 164a0 BF100000 		movl	$16, %edi
- 23588      00
- 23589 164a5 E8000000 		call	KDbgTestModConds at PLT
- 23589      00
- 23590 164aa 84C0     		testb	%al, %al
- 23591 164ac 745E     		je	.L616
- 23592 164ae 8B857CF6 		movl	-2436(%rbp), %eax
- 23592      FFFF
- 23593 164b4 89C7     		movl	%eax, %edi
- 23594 164b6 E8459BFE 		call	bswap_32
- 23594      FF
- 23595 164bb 4189C5   		movl	%eax, %r13d
- 23596 164be 8B8578F6 		movl	-2440(%rbp), %eax
- 23596      FFFF
- 23597 164c4 89C7     		movl	%eax, %edi
- 23598 164c6 E8359BFE 		call	bswap_32
- 23598      FF
- 23599 164cb 4189C4   		movl	%eax, %r12d
- 23600 164ce 8B8574F6 		movl	-2444(%rbp), %eax
- 23600      FFFF
- 23601 164d4 89C7     		movl	%eax, %edi
- 23602 164d6 E8259BFE 		call	bswap_32
- 23602      FF
- 23603 164db 89C3     		movl	%eax, %ebx
- 23604 164dd 8B8570F6 		movl	-2448(%rbp), %eax
- 23604      FFFF
- 23605 164e3 89C7     		movl	%eax, %edi
- 23606 164e5 E8169BFE 		call	bswap_32
- 23606      FF
- 23607 164ea 4589E9   		movl	%r13d, %r9d
- 23608 164ed 4589E0   		movl	%r12d, %r8d
- 23609 164f0 89D9     		movl	%ebx, %ecx
- 23610 164f2 89C2     		movl	%eax, %edx
- 23611 164f4 488D3500 		leaq	.LC13(%rip), %rsi
- 23611      000000
- 23612 164fb 488D3D00 		leaq	.LC1(%rip), %rdi
- 23612      000000
- 23613 16502 B8000000 		movl	$0, %eax
- 23613      00
- 23614 16507 E8000000 		call	KDbgMsg at PLT
- 23614      00
- 23615              	.L616:
- 23616 1650c F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 23616      50F9FFFF 
- 23617 16514 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 23617      60FBFFFF 
- 23618 1651c F30F6F85 		movdqu	-1184(%rbp), %xmm0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 714
-
-
- 23618      60FBFFFF 
- 23619 16524 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 23619      80FBFFFF 
- 23620              	.LBE2814:
- 23621              	.LBB2815:
- 23622              	.LBB2816:
- 23623              	.LBB2817:
- 23624              	.LBB2818:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 23625              		.loc 2 667 0
- 23626 1652c 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 23626      00000000 
- 23627 16534 F30F6F8D 		movdqu	-1152(%rbp), %xmm1
- 23627      80FBFFFF 
- 23628 1653c F30F7F8D 		movdqu	%xmm1, -1120(%rbp)
- 23628      A0FBFFFF 
- 23629 16544 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 23629      90FBFFFF 
- 23630              	.LBB2819:
- 23631              	.LBB2820:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 23632              		.loc 2 380 0
- 23633 1654c F30F6F85 		movdqu	-1120(%rbp), %xmm0
- 23633      A0FBFFFF 
- 23634 16554 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 23634      70F7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 23635              		.loc 2 381 0
- 23636 1655c F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 23636      90FBFFFF 
- 23637 16564 F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 23637      60F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23638              		.loc 2 383 0
- 23639 1656c C785BCFB 		movl	$0, -1092(%rbp)
- 23639      FFFF0000 
- 23639      0000
- 23640 16576 EB5C     		jmp	.L617
- 23641              	.L620:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 23642              		.loc 2 385 0
- 23643 16578 8B85BCFB 		movl	-1092(%rbp), %eax
- 23643      FFFF
- 23644 1657e 89C0     		mov	%eax, %eax
- 23645 16580 0FB68405 		movzbl	-2208(%rbp,%rax), %eax
- 23645      60F7FFFF 
- 23646 16588 84C0     		testb	%al, %al
- 23647 1658a 7912     		jns	.L618
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 23648              		.loc 2 386 0
- 23649 1658c 8B85BCFB 		movl	-1092(%rbp), %eax
- 23649      FFFF
- 23650 16592 89C0     		mov	%eax, %eax
- 23651 16594 C6840580 		movb	$0, -2176(%rbp,%rax)
- 23651      F7FFFF00 
- 23652 1659c EB2F     		jmp	.L619
- 23653              	.L618:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 715
-
-
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 23654              		.loc 2 388 0
- 23655 1659e 8B8DBCFB 		movl	-1092(%rbp), %ecx
- 23655      FFFF
- 23656 165a4 8B85BCFB 		movl	-1092(%rbp), %eax
- 23656      FFFF
- 23657 165aa 89C0     		mov	%eax, %eax
- 23658 165ac 0FB68405 		movzbl	-2208(%rbp,%rax), %eax
- 23658      60F7FFFF 
- 23659 165b4 0FB6C0   		movzbl	%al, %eax
- 23660 165b7 83E00F   		andl	$15, %eax
- 23661 165ba 4898     		cltq
- 23662 165bc 0FB69405 		movzbl	-2192(%rbp,%rax), %edx
- 23662      70F7FFFF 
- 23663 165c4 89C8     		mov	%ecx, %eax
- 23664 165c6 88940580 		movb	%dl, -2176(%rbp,%rax)
- 23664      F7FFFF
- 23665              	.L619:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23666              		.loc 2 383 0
- 23667 165cd 8385BCFB 		addl	$1, -1092(%rbp)
- 23667      FFFF01
- 23668              	.L617:
- 23669 165d4 83BDBCFB 		cmpl	$15, -1092(%rbp)
- 23669      FFFF0F
- 23670 165db 769B     		jbe	.L620
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 23671              		.loc 2 391 0
- 23672 165dd F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 23672      80F7FFFF 
- 23673              	.LBE2820:
- 23674              	.LBE2819:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 23675              		.loc 2 667 0
- 23676 165e5 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 23676      80FBFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 23677              		.loc 2 668 0
- 23678 165ed F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 23678      80FBFFFF 
- 23679              	.LBE2818:
- 23680              	.LBE2817:
-1106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r1 = AESBCMEMBER(RotBytesLeft) (state);
- 23681              		.loc 2 1106 0
- 23682 165f5 660F7F85 		movdqa	%xmm0, -2592(%rbp)
- 23682      E0F5FFFF 
- 23683 165fd 660F6F85 		movdqa	-2592(%rbp), %xmm0
- 23683      E0F5FFFF 
- 23684 16605 F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 23684      C0FBFFFF 
- 23685              	.LBB2821:
- 23686              	.LBB2822:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 23687              		.loc 2 667 0
- 23688 1660d 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 23688      00000000 
- 23689 16615 F30F6F8D 		movdqu	-1088(%rbp), %xmm1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 716
-
-
- 23689      C0FBFFFF 
- 23690 1661d F30F7F8D 		movdqu	%xmm1, -1056(%rbp)
- 23690      E0FBFFFF 
- 23691 16625 F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 23691      D0FBFFFF 
- 23692              	.LBB2823:
- 23693              	.LBB2824:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 23694              		.loc 2 380 0
- 23695 1662d F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 23695      E0FBFFFF 
- 23696 16635 F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 23696      A0F7FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 23697              		.loc 2 381 0
- 23698 1663d F30F6F85 		movdqu	-1072(%rbp), %xmm0
- 23698      D0FBFFFF 
- 23699 16645 F30F7F85 		movdqu	%xmm0, -2160(%rbp)
- 23699      90F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23700              		.loc 2 383 0
- 23701 1664d C785FCFB 		movl	$0, -1028(%rbp)
- 23701      FFFF0000 
- 23701      0000
- 23702 16657 EB5C     		jmp	.L621
- 23703              	.L624:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 23704              		.loc 2 385 0
- 23705 16659 8B85FCFB 		movl	-1028(%rbp), %eax
- 23705      FFFF
- 23706 1665f 89C0     		mov	%eax, %eax
- 23707 16661 0FB68405 		movzbl	-2160(%rbp,%rax), %eax
- 23707      90F7FFFF 
- 23708 16669 84C0     		testb	%al, %al
- 23709 1666b 7912     		jns	.L622
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 23710              		.loc 2 386 0
- 23711 1666d 8B85FCFB 		movl	-1028(%rbp), %eax
- 23711      FFFF
- 23712 16673 89C0     		mov	%eax, %eax
- 23713 16675 C68405B0 		movb	$0, -2128(%rbp,%rax)
- 23713      F7FFFF00 
- 23714 1667d EB2F     		jmp	.L623
- 23715              	.L622:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 23716              		.loc 2 388 0
- 23717 1667f 8B8DFCFB 		movl	-1028(%rbp), %ecx
- 23717      FFFF
- 23718 16685 8B85FCFB 		movl	-1028(%rbp), %eax
- 23718      FFFF
- 23719 1668b 89C0     		mov	%eax, %eax
- 23720 1668d 0FB68405 		movzbl	-2160(%rbp,%rax), %eax
- 23720      90F7FFFF 
- 23721 16695 0FB6C0   		movzbl	%al, %eax
- 23722 16698 83E00F   		andl	$15, %eax
- 23723 1669b 4898     		cltq
- 23724 1669d 0FB69405 		movzbl	-2144(%rbp,%rax), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 717
-
-
- 23724      A0F7FFFF 
- 23725 166a5 89C8     		mov	%ecx, %eax
- 23726 166a7 889405B0 		movb	%dl, -2128(%rbp,%rax)
- 23726      F7FFFF
- 23727              	.L623:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23728              		.loc 2 383 0
- 23729 166ae 8385FCFB 		addl	$1, -1028(%rbp)
- 23729      FFFF01
- 23730              	.L621:
- 23731 166b5 83BDFCFB 		cmpl	$15, -1028(%rbp)
- 23731      FFFF0F
- 23732 166bc 769B     		jbe	.L624
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 23733              		.loc 2 391 0
- 23734 166be F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 23734      B0F7FFFF 
- 23735              	.LBE2824:
- 23736              	.LBE2823:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 23737              		.loc 2 667 0
- 23738 166c6 F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 23738      C0FBFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 23739              		.loc 2 668 0
- 23740 166ce F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 23740      C0FBFFFF 
- 23741              	.LBE2822:
- 23742              	.LBE2821:
-1107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r2 = AESBCMEMBER(RotBytesLeft) (r1);
- 23743              		.loc 2 1107 0
- 23744 166d6 660F7F85 		movdqa	%xmm0, -2608(%rbp)
- 23744      D0F5FFFF 
- 23745 166de 660F6F85 		movdqa	-2608(%rbp), %xmm0
- 23745      D0F5FFFF 
- 23746 166e6 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 23746      00FCFFFF 
- 23747              	.LBB2825:
- 23748              	.LBB2826:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 23749              		.loc 2 667 0
- 23750 166ee 660F6F05 		movdqa	ShiftRowTable.6768(%rip), %xmm0
- 23750      00000000 
- 23751 166f6 F30F6F8D 		movdqu	-1024(%rbp), %xmm1
- 23751      00FCFFFF 
- 23752 166fe F30F7F8D 		movdqu	%xmm1, -992(%rbp)
- 23752      20FCFFFF 
- 23753 16706 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 23753      10FCFFFF 
- 23754              	.LBB2827:
- 23755              	.LBB2828:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 23756              		.loc 2 380 0
- 23757 1670e F30F6F85 		movdqu	-992(%rbp), %xmm0
- 23757      20FCFFFF 
- 23758 16716 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 23758      D0F7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 718
-
-
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 23759              		.loc 2 381 0
- 23760 1671e F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 23760      10FCFFFF 
- 23761 16726 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 23761      C0F7FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23762              		.loc 2 383 0
- 23763 1672e C7853CFC 		movl	$0, -964(%rbp)
- 23763      FFFF0000 
- 23763      0000
- 23764 16738 EB5C     		jmp	.L625
- 23765              	.L628:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 23766              		.loc 2 385 0
- 23767 1673a 8B853CFC 		movl	-964(%rbp), %eax
- 23767      FFFF
- 23768 16740 89C0     		mov	%eax, %eax
- 23769 16742 0FB68405 		movzbl	-2112(%rbp,%rax), %eax
- 23769      C0F7FFFF 
- 23770 1674a 84C0     		testb	%al, %al
- 23771 1674c 7912     		jns	.L626
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 23772              		.loc 2 386 0
- 23773 1674e 8B853CFC 		movl	-964(%rbp), %eax
- 23773      FFFF
- 23774 16754 89C0     		mov	%eax, %eax
- 23775 16756 C68405E0 		movb	$0, -2080(%rbp,%rax)
- 23775      F7FFFF00 
- 23776 1675e EB2F     		jmp	.L627
- 23777              	.L626:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 23778              		.loc 2 388 0
- 23779 16760 8B8D3CFC 		movl	-964(%rbp), %ecx
- 23779      FFFF
- 23780 16766 8B853CFC 		movl	-964(%rbp), %eax
- 23780      FFFF
- 23781 1676c 89C0     		mov	%eax, %eax
- 23782 1676e 0FB68405 		movzbl	-2112(%rbp,%rax), %eax
- 23782      C0F7FFFF 
- 23783 16776 0FB6C0   		movzbl	%al, %eax
- 23784 16779 83E00F   		andl	$15, %eax
- 23785 1677c 4898     		cltq
- 23786 1677e 0FB69405 		movzbl	-2096(%rbp,%rax), %edx
- 23786      D0F7FFFF 
- 23787 16786 89C8     		mov	%ecx, %eax
- 23788 16788 889405E0 		movb	%dl, -2080(%rbp,%rax)
- 23788      F7FFFF
- 23789              	.L627:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 23790              		.loc 2 383 0
- 23791 1678f 83853CFC 		addl	$1, -964(%rbp)
- 23791      FFFF01
- 23792              	.L625:
- 23793 16796 83BD3CFC 		cmpl	$15, -964(%rbp)
- 23793      FFFF0F
- 23794 1679d 769B     		jbe	.L628
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 719
-
-
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 23795              		.loc 2 391 0
- 23796 1679f F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 23796      E0F7FFFF 
- 23797              	.LBE2828:
- 23798              	.LBE2827:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 23799              		.loc 2 667 0
- 23800 167a7 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 23800      00FCFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 23801              		.loc 2 668 0
- 23802 167af F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 23802      00FCFFFF 
- 23803              	.LBE2826:
- 23804              	.LBE2825:
-1108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r3 = AESBCMEMBER(RotBytesLeft) (r2);        
- 23805              		.loc 2 1108 0
- 23806 167b7 660F7F85 		movdqa	%xmm0, -2624(%rbp)
- 23806      C0F5FFFF 
- 23807 167bf F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 23807      60FBFFFF 
- 23808 167c7 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 23808      50FCFFFF 
- 23809 167cf 660F6F85 		movdqa	-2608(%rbp), %xmm0
- 23809      D0F5FFFF 
- 23810 167d7 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 23810      40FCFFFF 
- 23811              	.LBB2829:
- 23812              	.LBB2830:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 23813              		.loc 2 178 0
- 23814 167df F30F6F85 		movdqu	-960(%rbp), %xmm0
- 23814      40FCFFFF 
- 23815 167e7 F30F6F8D 		movdqu	-944(%rbp), %xmm1
- 23815      50FCFFFF 
- 23816 167ef 660FEFC1 		pxor	%xmm1, %xmm0
- 23817              	.LBE2830:
- 23818              	.LBE2829:
-1110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(VecXor) (state, r2);
- 23819              		.loc 2 1110 0
- 23820 167f3 660F7F85 		movdqa	%xmm0, -2656(%rbp)
- 23820      A0F5FFFF 
- 23821 167fb F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 23821      60FBFFFF 
- 23822 16803 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 23822      70FCFFFF 
- 23823 1680b 660F6F85 		movdqa	-2592(%rbp), %xmm0
- 23823      E0F5FFFF 
- 23824 16813 F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 23824      60FCFFFF 
- 23825              	.LBB2831:
- 23826              	.LBB2832:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 23827              		.loc 2 178 0
- 23828 1681b F30F6F85 		movdqu	-928(%rbp), %xmm0
- 23828      60FCFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 720
-
-
- 23829 16823 F30F6F8D 		movdqu	-912(%rbp), %xmm1
- 23829      70FCFFFF 
- 23830 1682b 660FEFC1 		pxor	%xmm1, %xmm0
- 23831              	.LBE2832:
- 23832              	.LBE2831:
-1111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(VecXor) (state, r1);
- 23833              		.loc 2 1111 0
- 23834 1682f 660F7F85 		movdqa	%xmm0, -2640(%rbp)
- 23834      B0F5FFFF 
- 23835 16837 660F6F85 		movdqa	-2608(%rbp), %xmm0
- 23835      D0F5FFFF 
- 23836 1683f F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 23836      90FCFFFF 
- 23837 16847 660F6F85 		movdqa	-2624(%rbp), %xmm0
- 23837      C0F5FFFF 
- 23838 1684f F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 23838      80FCFFFF 
- 23839              	.LBB2833:
- 23840              	.LBB2834:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 23841              		.loc 2 178 0
- 23842 16857 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 23842      80FCFFFF 
- 23843 1685f F30F6F8D 		movdqu	-880(%rbp), %xmm1
- 23843      90FCFFFF 
- 23844 16867 660FEFC1 		pxor	%xmm1, %xmm0
- 23845              	.LBE2834:
- 23846              	.LBE2833:
-1112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (r2, r3);
- 23847              		.loc 2 1112 0
- 23848 1686b 660F7F85 		movdqa	%xmm0, -2672(%rbp)
- 23848      90F5FFFF 
- 23849 16873 660F6F85 		movdqa	-2672(%rbp), %xmm0
- 23849      90F5FFFF 
- 23850 1687b F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 23850      B0FCFFFF 
- 23851 16883 660F6F85 		movdqa	-2592(%rbp), %xmm0
- 23851      E0F5FFFF 
- 23852 1688b F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 23852      A0FCFFFF 
- 23853              	.LBB2835:
- 23854              	.LBB2836:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 23855              		.loc 2 178 0
- 23856 16893 F30F6F85 		movdqu	-864(%rbp), %xmm0
- 23856      A0FCFFFF 
- 23857 1689b F30F6F8D 		movdqu	-848(%rbp), %xmm1
- 23857      B0FCFFFF 
- 23858 168a3 660FEFC1 		pxor	%xmm1, %xmm0
- 23859              	.LBE2836:
- 23860              	.LBE2835:
-1113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (f8, r1);
- 23861              		.loc 2 1113 0
- 23862 168a7 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 23862      60FBFFFF 
- 23863 168af 660F6F85 		movdqa	-2672(%rbp), %xmm0
- 23863      90F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 721
-
-
- 23864 168b7 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 23864      D0FCFFFF 
- 23865 168bf 660F6F85 		movdqa	-2640(%rbp), %xmm0
- 23865      B0F5FFFF 
- 23866 168c7 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 23866      C0FCFFFF 
- 23867              	.LBB2837:
- 23868              	.LBB2838:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 23869              		.loc 2 178 0
- 23870 168cf F30F6F85 		movdqu	-832(%rbp), %xmm0
- 23870      C0FCFFFF 
- 23871 168d7 F30F6F8D 		movdqu	-816(%rbp), %xmm1
- 23871      D0FCFFFF 
- 23872 168df 660FEFC1 		pxor	%xmm1, %xmm0
- 23873              	.LBE2838:
- 23874              	.LBE2837:
-1114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (f8, f2);
- 23875              		.loc 2 1114 0
- 23876 168e3 660F7F85 		movdqa	%xmm0, -2672(%rbp)
- 23876      90F5FFFF 
- 23877              	.LBB2839:
-1126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu2.state = f2;
- 23878              		.loc 2 1126 0
- 23879 168eb 660F6F85 		movdqa	-2640(%rbp), %xmm0
- 23879      B0F5FFFF 
- 23880 168f3 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 23880      50F7FFFF 
-1127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu4.state = f4;
- 23881              		.loc 2 1127 0
- 23882 168fb 660F6F85 		movdqa	-2656(%rbp), %xmm0
- 23882      A0F5FFFF 
- 23883 16903 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 23883      40F7FFFF 
-1128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu8.state = f8;
- 23884              		.loc 2 1128 0
- 23885 1690b 660F6F85 		movdqa	-2672(%rbp), %xmm0
- 23885      90F5FFFF 
- 23886 16913 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 23886      30F7FFFF 
-1130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof fu2; ++ix)
- 23887              		.loc 2 1130 0
- 23888 1691b C7857CFB 		movl	$0, -1156(%rbp)
- 23888      FFFF0000 
- 23888      0000
- 23889 16925 E9260100 		jmp	.L629
- 23889      00
- 23890              	.L630:
-1132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
- 23891              		.loc 2 1132 0
- 23892 1692a 8B8D7CFB 		movl	-1156(%rbp), %ecx
- 23892      FFFF
- 23893 16930 8B857CFB 		movl	-1156(%rbp), %eax
- 23893      FFFF
- 23894 16936 89C0     		mov	%eax, %eax
- 23895 16938 0FB68405 		movzbl	-2224(%rbp,%rax), %eax
- 23895      50F7FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 722
-
-
- 23896 16940 0FB6C0   		movzbl	%al, %eax
- 23897 16943 8885EAFC 		movb	%al, -790(%rbp)
- 23897      FFFF
- 23898              	.LBB2840:
- 23899              	.LBB2841:
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
- 23900              		.loc 2 1012 0
- 23901 16949 0FB685EA 		movzbl	-790(%rbp), %eax
- 23901      FCFFFF
- 23902 16950 01C0     		addl	%eax, %eax
- 23903 16952 89C3     		movl	%eax, %ebx
- 23904 16954 0FB685EA 		movzbl	-790(%rbp), %eax
- 23904      FCFFFF
- 23905 1695b C0E807   		shrb	$7, %al
- 23906 1695e 0FB6C0   		movzbl	%al, %eax
- 23907 16961 8885EBFC 		movb	%al, -789(%rbp)
- 23907      FFFF
- 23908              	.LBB2842:
- 23909              	.LBB2843:
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
- 23910              		.loc 2 1001 0
- 23911 16967 0FB685EB 		movzbl	-789(%rbp), %eax
- 23911      FCFFFF
- 23912 1696e 4863D0   		movslq	%eax,%rdx
- 23913 16971 488D0500 		leaq	KAESBlockCipherVecFFtable(%rip), %rax
- 23913      000000
- 23914 16978 0FB60402 		movzbl	(%rdx,%rax), %eax
- 23915              	.LBE2843:
- 23916              	.LBE2842:
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
- 23917              		.loc 2 1012 0
- 23918 1697c 31D8     		xorl	%ebx, %eax
-1132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
- 23919              		.loc 2 1132 0
- 23920 1697e 89C2     		movl	%eax, %edx
- 23921              	.LBE2841:
- 23922              	.LBE2840:
- 23923 16980 89C8     		mov	%ecx, %eax
- 23924 16982 88940550 		movb	%dl, -2224(%rbp,%rax)
- 23924      F7FFFF
-1133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
- 23925              		.loc 2 1133 0
- 23926 16989 8B8D7CFB 		movl	-1156(%rbp), %ecx
- 23926      FFFF
- 23927 1698f 8B857CFB 		movl	-1156(%rbp), %eax
- 23927      FFFF
- 23928 16995 89C0     		mov	%eax, %eax
- 23929 16997 0FB68405 		movzbl	-2240(%rbp,%rax), %eax
- 23929      40F7FFFF 
- 23930 1699f 0FB6C0   		movzbl	%al, %eax
- 23931 169a2 8885ECFC 		movb	%al, -788(%rbp)
- 23931      FFFF
- 23932              	.LBB2844:
- 23933              	.LBB2845:
-1023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
- 23934              		.loc 2 1023 0
- 23935 169a8 0FB685EC 		movzbl	-788(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 723
-
-
- 23935      FCFFFF
- 23936 169af C1E002   		sall	$2, %eax
- 23937 169b2 89C3     		movl	%eax, %ebx
- 23938 169b4 0FB685EC 		movzbl	-788(%rbp), %eax
- 23938      FCFFFF
- 23939 169bb C0E806   		shrb	$6, %al
- 23940 169be 0FB6C0   		movzbl	%al, %eax
- 23941 169c1 8885EDFC 		movb	%al, -787(%rbp)
- 23941      FFFF
- 23942              	.LBB2846:
- 23943              	.LBB2847:
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
- 23944              		.loc 2 1001 0
- 23945 169c7 0FB685ED 		movzbl	-787(%rbp), %eax
- 23945      FCFFFF
- 23946 169ce 4863D0   		movslq	%eax,%rdx
- 23947 169d1 488D0500 		leaq	KAESBlockCipherVecFFtable(%rip), %rax
- 23947      000000
- 23948 169d8 0FB60402 		movzbl	(%rdx,%rax), %eax
- 23949              	.LBE2847:
- 23950              	.LBE2846:
-1023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
- 23951              		.loc 2 1023 0
- 23952 169dc 31D8     		xorl	%ebx, %eax
-1133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
- 23953              		.loc 2 1133 0
- 23954 169de 89C2     		movl	%eax, %edx
- 23955              	.LBE2845:
- 23956              	.LBE2844:
- 23957 169e0 89C8     		mov	%ecx, %eax
- 23958 169e2 88940540 		movb	%dl, -2240(%rbp,%rax)
- 23958      F7FFFF
-1134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
- 23959              		.loc 2 1134 0
- 23960 169e9 8B8D7CFB 		movl	-1156(%rbp), %ecx
- 23960      FFFF
- 23961 169ef 8B857CFB 		movl	-1156(%rbp), %eax
- 23961      FFFF
- 23962 169f5 89C0     		mov	%eax, %eax
- 23963 169f7 0FB68405 		movzbl	-2256(%rbp,%rax), %eax
- 23963      30F7FFFF 
- 23964 169ff 0FB6C0   		movzbl	%al, %eax
- 23965 16a02 8885EEFC 		movb	%al, -786(%rbp)
- 23965      FFFF
- 23966              	.LBB2848:
- 23967              	.LBB2849:
-1034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
- 23968              		.loc 2 1034 0
- 23969 16a08 0FB685EE 		movzbl	-786(%rbp), %eax
- 23969      FCFFFF
- 23970 16a0f C1E003   		sall	$3, %eax
- 23971 16a12 89C3     		movl	%eax, %ebx
- 23972 16a14 0FB685EE 		movzbl	-786(%rbp), %eax
- 23972      FCFFFF
- 23973 16a1b C0E805   		shrb	$5, %al
- 23974 16a1e 0FB6C0   		movzbl	%al, %eax
- 23975 16a21 8885EFFC 		movb	%al, -785(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 724
-
-
- 23975      FFFF
- 23976              	.LBB2850:
- 23977              	.LBB2851:
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
- 23978              		.loc 2 1001 0
- 23979 16a27 0FB685EF 		movzbl	-785(%rbp), %eax
- 23979      FCFFFF
- 23980 16a2e 4863D0   		movslq	%eax,%rdx
- 23981 16a31 488D0500 		leaq	KAESBlockCipherVecFFtable(%rip), %rax
- 23981      000000
- 23982 16a38 0FB60402 		movzbl	(%rdx,%rax), %eax
- 23983              	.LBE2851:
- 23984              	.LBE2850:
-1034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
- 23985              		.loc 2 1034 0
- 23986 16a3c 31D8     		xorl	%ebx, %eax
-1134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
- 23987              		.loc 2 1134 0
- 23988 16a3e 89C2     		movl	%eax, %edx
- 23989              	.LBE2849:
- 23990              	.LBE2848:
- 23991 16a40 89C8     		mov	%ecx, %eax
- 23992 16a42 88940530 		movb	%dl, -2256(%rbp,%rax)
- 23992      F7FFFF
-1130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof fu2; ++ix)
- 23993              		.loc 2 1130 0
- 23994 16a49 83857CFB 		addl	$1, -1156(%rbp)
- 23994      FFFF01
- 23995              	.L629:
- 23996 16a50 83BD7CFB 		cmpl	$15, -1156(%rbp)
- 23996      FFFF0F
- 23997 16a57 0F86CDFE 		jbe	.L630
- 23997      FFFF
-1136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f2 = fu2.state;
- 23998              		.loc 2 1136 0
- 23999 16a5d F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 23999      50F7FFFF 
- 24000 16a65 660F7F85 		movdqa	%xmm0, -2640(%rbp)
- 24000      B0F5FFFF 
-1137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f4 = fu4.state;
- 24001              		.loc 2 1137 0
- 24002 16a6d F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 24002      40F7FFFF 
- 24003 16a75 660F7F85 		movdqa	%xmm0, -2656(%rbp)
- 24003      A0F5FFFF 
-1138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f8 = fu8.state;
- 24004              		.loc 2 1138 0
- 24005 16a7d F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 24005      30F7FFFF 
- 24006 16a85 660F7F85 		movdqa	%xmm0, -2672(%rbp)
- 24006      90F5FFFF 
- 24007 16a8d F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 24007      60FBFFFF 
- 24008 16a95 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 24008      00FDFFFF 
- 24009 16a9d 660F6F85 		movdqa	-2640(%rbp), %xmm0
- 24009      B0F5FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 725
-
-
- 24010 16aa5 F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 24010      F0FCFFFF 
- 24011              	.LBE2839:
- 24012              	.LBB2852:
- 24013              	.LBB2853:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 24014              		.loc 2 178 0
- 24015 16aad F30F6F85 		movdqu	-784(%rbp), %xmm0
- 24015      F0FCFFFF 
- 24016 16ab5 F30F6F8D 		movdqu	-768(%rbp), %xmm1
- 24016      00FDFFFF 
- 24017 16abd 660FEFC1 		pxor	%xmm1, %xmm0
- 24018              	.LBE2853:
- 24019              	.LBE2852:
-1142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f2);
- 24020              		.loc 2 1142 0
- 24021 16ac1 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 24021      60FBFFFF 
- 24022 16ac9 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 24022      60FBFFFF 
- 24023 16ad1 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 24023      20FDFFFF 
- 24024 16ad9 660F6F85 		movdqa	-2656(%rbp), %xmm0
- 24024      A0F5FFFF 
- 24025 16ae1 F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 24025      10FDFFFF 
- 24026              	.LBB2854:
- 24027              	.LBB2855:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 24028              		.loc 2 178 0
- 24029 16ae9 F30F6F85 		movdqu	-752(%rbp), %xmm0
- 24029      10FDFFFF 
- 24030 16af1 F30F6F8D 		movdqu	-736(%rbp), %xmm1
- 24030      20FDFFFF 
- 24031 16af9 660FEFC1 		pxor	%xmm1, %xmm0
- 24032              	.LBE2855:
- 24033              	.LBE2854:
-1143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f4);
- 24034              		.loc 2 1143 0
- 24035 16afd F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 24035      60FBFFFF 
- 24036 16b05 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 24036      60FBFFFF 
- 24037 16b0d F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 24037      40FDFFFF 
- 24038 16b15 660F6F85 		movdqa	-2672(%rbp), %xmm0
- 24038      90F5FFFF 
- 24039 16b1d F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 24039      30FDFFFF 
- 24040              	.LBB2856:
- 24041              	.LBB2857:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 24042              		.loc 2 178 0
- 24043 16b25 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 24043      30FDFFFF 
- 24044 16b2d F30F6F8D 		movdqu	-704(%rbp), %xmm1
- 24044      40FDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 726
-
-
- 24045 16b35 660FEFC1 		pxor	%xmm1, %xmm0
- 24046              	.LBE2857:
- 24047              	.LBE2856:
-1144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f8);
- 24048              		.loc 2 1144 0
- 24049 16b39 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 24049      60FBFFFF 
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 24050              		.loc 2 1148 0
- 24051 16b41 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 24051      60FBFFFF 
- 24052              	.LBE2816:
- 24053              	.LBE2815:
-2201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvMixColumns) (state);
- 24054              		.loc 2 2201 0
- 24055 16b49 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 24055      50F9FFFF 
-2204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 24056              		.loc 2 2204 0
- 24057 16b51 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 24057      50F9FFFF 
- 24058 16b59 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 24058      70F9FFFF 
- 24059              	.LBB2858:
-2206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvMixCo", mstate);
- 24060              		.loc 2 2206 0
- 24061 16b61 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 24061      70F9FFFF 
- 24062 16b69 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 24062      60F6FFFF 
- 24063 16b71 E8000000 		call	KDbgWriterGet at PLT
- 24063      00
- 24064 16b76 4885C0   		testq	%rax, %rax
- 24065 16b79 7479     		je	.L632
- 24066 16b7b BF030000 		movl	$3, %edi
- 24066      00
- 24067 16b80 E8000000 		call	KDbgCondToFlag at PLT
- 24067      00
- 24068 16b85 4889C6   		movq	%rax, %rsi
- 24069 16b88 BF100000 		movl	$16, %edi
- 24069      00
- 24070 16b8d E8000000 		call	KDbgTestModConds at PLT
- 24070      00
- 24071 16b92 84C0     		testb	%al, %al
- 24072 16b94 745E     		je	.L632
- 24073 16b96 8B856CF6 		movl	-2452(%rbp), %eax
- 24073      FFFF
- 24074 16b9c 89C7     		movl	%eax, %edi
- 24075 16b9e E85D94FE 		call	bswap_32
- 24075      FF
- 24076 16ba3 4189C5   		movl	%eax, %r13d
- 24077 16ba6 8B8568F6 		movl	-2456(%rbp), %eax
- 24077      FFFF
- 24078 16bac 89C7     		movl	%eax, %edi
- 24079 16bae E84D94FE 		call	bswap_32
- 24079      FF
- 24080 16bb3 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 727
-
-
- 24081 16bb6 8B8564F6 		movl	-2460(%rbp), %eax
- 24081      FFFF
- 24082 16bbc 89C7     		movl	%eax, %edi
- 24083 16bbe E83D94FE 		call	bswap_32
- 24083      FF
- 24084 16bc3 89C3     		movl	%eax, %ebx
- 24085 16bc5 8B8560F6 		movl	-2464(%rbp), %eax
- 24085      FFFF
- 24086 16bcb 89C7     		movl	%eax, %edi
- 24087 16bcd E82E94FE 		call	bswap_32
- 24087      FF
- 24088 16bd2 4589E9   		movl	%r13d, %r9d
- 24089 16bd5 4589E0   		movl	%r12d, %r8d
- 24090 16bd8 89D9     		movl	%ebx, %ecx
- 24091 16bda 89C2     		movl	%eax, %edx
- 24092 16bdc 488D3500 		leaq	.LC14(%rip), %rsi
- 24092      000000
- 24093 16be3 488D3D00 		leaq	.LC1(%rip), %rdi
- 24093      000000
- 24094 16bea B8000000 		movl	$0, %eax
- 24094      00
- 24095 16bef E8000000 		call	KDbgMsg at PLT
- 24095      00
- 24096              	.L632:
- 24097 16bf4 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 24097      50F9FFFF 
- 24098 16bfc F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 24098      60FDFFFF 
- 24099 16c04 F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 24099      40F9FFFF 
- 24100 16c0c F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 24100      50FDFFFF 
- 24101 16c14 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 24101      60FDFFFF 
- 24102 16c1c F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 24102      80FDFFFF 
- 24103 16c24 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 24103      50FDFFFF 
- 24104 16c2c F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 24104      70FDFFFF 
- 24105              	.LBE2858:
- 24106              	.LBB2859:
- 24107              	.LBB2860:
- 24108              	.LBB2861:
- 24109              	.LBB2862:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 24110              		.loc 2 178 0
- 24111 16c34 F30F6F85 		movdqu	-656(%rbp), %xmm0
- 24111      70FDFFFF 
- 24112 16c3c F30F6F8D 		movdqu	-640(%rbp), %xmm1
- 24112      80FDFFFF 
- 24113 16c44 660FEFC1 		pxor	%xmm1, %xmm0
- 24114              	.LBE2862:
- 24115              	.LBE2861:
- 24116              	.LBE2860:
- 24117              	.LBE2859:
-2209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 728
-
-
- 24118              		.loc 2 2209 0
- 24119 16c48 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 24119      50F9FFFF 
-2213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 24120              		.loc 2 2213 0
- 24121 16c50 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 24121      50F9FFFF 
- 24122 16c58 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 24122      70F9FFFF 
- 24123              	.LBB2863:
-2215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", mround_keys);
- 24124              		.loc 2 2215 0
- 24125 16c60 F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 24125      60F9FFFF 
- 24126 16c68 F30F7F85 		movdqu	%xmm0, -2480(%rbp)
- 24126      50F6FFFF 
- 24127 16c70 E8000000 		call	KDbgWriterGet at PLT
- 24127      00
- 24128 16c75 4885C0   		testq	%rax, %rax
- 24129 16c78 7479     		je	.L634
- 24130 16c7a BF030000 		movl	$3, %edi
- 24130      00
- 24131 16c7f E8000000 		call	KDbgCondToFlag at PLT
- 24131      00
- 24132 16c84 4889C6   		movq	%rax, %rsi
- 24133 16c87 BF100000 		movl	$16, %edi
- 24133      00
- 24134 16c8c E8000000 		call	KDbgTestModConds at PLT
- 24134      00
- 24135 16c91 84C0     		testb	%al, %al
- 24136 16c93 745E     		je	.L634
- 24137 16c95 8B855CF6 		movl	-2468(%rbp), %eax
- 24137      FFFF
- 24138 16c9b 89C7     		movl	%eax, %edi
- 24139 16c9d E85E93FE 		call	bswap_32
- 24139      FF
- 24140 16ca2 4189C5   		movl	%eax, %r13d
- 24141 16ca5 8B8558F6 		movl	-2472(%rbp), %eax
- 24141      FFFF
- 24142 16cab 89C7     		movl	%eax, %edi
- 24143 16cad E84E93FE 		call	bswap_32
- 24143      FF
- 24144 16cb2 4189C4   		movl	%eax, %r12d
- 24145 16cb5 8B8554F6 		movl	-2476(%rbp), %eax
- 24145      FFFF
- 24146 16cbb 89C7     		movl	%eax, %edi
- 24147 16cbd E83E93FE 		call	bswap_32
- 24147      FF
- 24148 16cc2 89C3     		movl	%eax, %ebx
- 24149 16cc4 8B8550F6 		movl	-2480(%rbp), %eax
- 24149      FFFF
- 24150 16cca 89C7     		movl	%eax, %edi
- 24151 16ccc E82F93FE 		call	bswap_32
- 24151      FF
- 24152 16cd1 4589E9   		movl	%r13d, %r9d
- 24153 16cd4 4589E0   		movl	%r12d, %r8d
- 24154 16cd7 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 729
-
-
- 24155 16cd9 89C2     		movl	%eax, %edx
- 24156 16cdb 488D3500 		leaq	.LC6(%rip), %rsi
- 24156      000000
- 24157 16ce2 488D3D00 		leaq	.LC1(%rip), %rdi
- 24157      000000
- 24158 16ce9 B8000000 		movl	$0, %eax
- 24158      00
- 24159 16cee E8000000 		call	KDbgMsg at PLT
- 24159      00
- 24160              	.L634:
- 24161              	.LBE2863:
- 24162              	.LBB2864:
-2217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", mstate);
- 24163              		.loc 2 2217 0
- 24164 16cf3 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 24164      70F9FFFF 
- 24165 16cfb F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 24165      40F6FFFF 
- 24166 16d03 E8000000 		call	KDbgWriterGet at PLT
- 24166      00
- 24167 16d08 4885C0   		testq	%rax, %rax
- 24168 16d0b 7479     		je	.L636
- 24169 16d0d BF030000 		movl	$3, %edi
- 24169      00
- 24170 16d12 E8000000 		call	KDbgCondToFlag at PLT
- 24170      00
- 24171 16d17 4889C6   		movq	%rax, %rsi
- 24172 16d1a BF100000 		movl	$16, %edi
- 24172      00
- 24173 16d1f E8000000 		call	KDbgTestModConds at PLT
- 24173      00
- 24174 16d24 84C0     		testb	%al, %al
- 24175 16d26 745E     		je	.L636
- 24176 16d28 8B854CF6 		movl	-2484(%rbp), %eax
- 24176      FFFF
- 24177 16d2e 89C7     		movl	%eax, %edi
- 24178 16d30 E8CB92FE 		call	bswap_32
- 24178      FF
- 24179 16d35 4189C5   		movl	%eax, %r13d
- 24180 16d38 8B8548F6 		movl	-2488(%rbp), %eax
- 24180      FFFF
- 24181 16d3e 89C7     		movl	%eax, %edi
- 24182 16d40 E8BB92FE 		call	bswap_32
- 24182      FF
- 24183 16d45 4189C4   		movl	%eax, %r12d
- 24184 16d48 8B8544F6 		movl	-2492(%rbp), %eax
- 24184      FFFF
- 24185 16d4e 89C7     		movl	%eax, %edi
- 24186 16d50 E8AB92FE 		call	bswap_32
- 24186      FF
- 24187 16d55 89C3     		movl	%eax, %ebx
- 24188 16d57 8B8540F6 		movl	-2496(%rbp), %eax
- 24188      FFFF
- 24189 16d5d 89C7     		movl	%eax, %edi
- 24190 16d5f E89C92FE 		call	bswap_32
- 24190      FF
- 24191 16d64 4589E9   		movl	%r13d, %r9d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 730
-
-
- 24192 16d67 4589E0   		movl	%r12d, %r8d
- 24193 16d6a 89D9     		movl	%ebx, %ecx
- 24194 16d6c 89C2     		movl	%eax, %edx
- 24195 16d6e 488D3500 		leaq	.LC11(%rip), %rsi
- 24195      000000
- 24196 16d75 488D3D00 		leaq	.LC1(%rip), %rdi
- 24196      000000
- 24197 16d7c B8000000 		movl	$0, %eax
- 24197      00
- 24198 16d81 E8000000 		call	KDbgMsg at PLT
- 24198      00
- 24199              	.L636:
- 24200              	.LBE2864:
-2220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 24201              		.loc 2 2220 0
- 24202 16d86 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 24202      50F9FFFF 
- 24203              	.LBE2787:
- 24204              	.LBE2786:
-2277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvMiddleRound) (state, key[ix] );
- 24205              		.loc 2 2277 0
- 24206 16d8e 660F7F85 		movdqa	%xmm0, -2560(%rbp)
- 24206      00F6FFFF 
-2276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 24207              		.loc 2 2276 0
- 24208 16d96 8385DCF8 		addl	$1, -1828(%rbp)
- 24208      FFFF01
- 24209              	.L596:
- 24210 16d9d 8B85DCF8 		movl	-1828(%rbp), %eax
- 24210      FFFF
- 24211 16da3 3B85F4F5 		cmpl	-2572(%rbp), %eax
- 24211      FFFF
- 24212 16da9 0F82F8ED 		jb	.L637
- 24212      FFFF
-2279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(EqInvLastRound) (state, key[ix]);
- 24213              		.loc 2 2279 0
- 24214 16daf 8B85DCF8 		mov	-1828(%rbp), %eax
- 24214      FFFF
- 24215 16db5 48C1E004 		salq	$4, %rax
- 24216 16db9 480385F8 		addq	-2568(%rbp), %rax
- 24216      F5FFFF
- 24217 16dc0 660F6F00 		movdqa	(%rax), %xmm0
- 24218 16dc4 660F6F8D 		movdqa	-2560(%rbp), %xmm1
- 24218      00F6FFFF 
- 24219 16dcc F30F7F8D 		movdqu	%xmm1, -608(%rbp)
- 24219      A0FDFFFF 
- 24220 16dd4 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 24220      90FDFFFF 
- 24221              	.LBB2865:
- 24222              	.LBB2866:
- 24223              	.LBB2867:
-2237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
- 24224              		.loc 2 2237 0
- 24225 16ddc F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24225      A0FDFFFF 
- 24226 16de4 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 24226      30F8FFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 731
-
-
- 24227 16dec E8000000 		call	KDbgWriterGet at PLT
- 24227      00
- 24228 16df1 4885C0   		testq	%rax, %rax
- 24229 16df4 7479     		je	.L639
- 24230 16df6 BF030000 		movl	$3, %edi
- 24230      00
- 24231 16dfb E8000000 		call	KDbgCondToFlag at PLT
- 24231      00
- 24232 16e00 4889C6   		movq	%rax, %rsi
- 24233 16e03 BF100000 		movl	$16, %edi
- 24233      00
- 24234 16e08 E8000000 		call	KDbgTestModConds at PLT
- 24234      00
- 24235 16e0d 84C0     		testb	%al, %al
- 24236 16e0f 745E     		je	.L639
- 24237 16e11 8B853CF8 		movl	-1988(%rbp), %eax
- 24237      FFFF
- 24238 16e17 89C7     		movl	%eax, %edi
- 24239 16e19 E8E291FE 		call	bswap_32
- 24239      FF
- 24240 16e1e 4189C5   		movl	%eax, %r13d
- 24241 16e21 8B8538F8 		movl	-1992(%rbp), %eax
- 24241      FFFF
- 24242 16e27 89C7     		movl	%eax, %edi
- 24243 16e29 E8D291FE 		call	bswap_32
- 24243      FF
- 24244 16e2e 4189C4   		movl	%eax, %r12d
- 24245 16e31 8B8534F8 		movl	-1996(%rbp), %eax
- 24245      FFFF
- 24246 16e37 89C7     		movl	%eax, %edi
- 24247 16e39 E8C291FE 		call	bswap_32
- 24247      FF
- 24248 16e3e 89C3     		movl	%eax, %ebx
- 24249 16e40 8B8530F8 		movl	-2000(%rbp), %eax
- 24249      FFFF
- 24250 16e46 89C7     		movl	%eax, %edi
- 24251 16e48 E8B391FE 		call	bswap_32
- 24251      FF
- 24252 16e4d 4589E9   		movl	%r13d, %r9d
- 24253 16e50 4589E0   		movl	%r12d, %r8d
- 24254 16e53 89D9     		movl	%ebx, %ecx
- 24255 16e55 89C2     		movl	%eax, %edx
- 24256 16e57 488D3500 		leaq	.LC5(%rip), %rsi
- 24256      000000
- 24257 16e5e 488D3D00 		leaq	.LC1(%rip), %rdi
- 24257      000000
- 24258 16e65 B8000000 		movl	$0, %eax
- 24258      00
- 24259 16e6a E8000000 		call	KDbgMsg at PLT
- 24259      00
- 24260              	.L639:
- 24261 16e6f F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24261      A0FDFFFF 
- 24262 16e77 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 24262      B0FDFFFF 
- 24263 16e7f F30F6F85 		movdqu	-592(%rbp), %xmm0
- 24263      B0FDFFFF 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 732
-
-
- 24264 16e87 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 24264      D0FDFFFF 
- 24265 16e8f 488D0500 		leaq	KAESBlockCipherVecRijndaelInvSBoxV(%rip), %rax
- 24265      000000
- 24266 16e96 488985C8 		movq	%rax, -568(%rbp)
- 24266      FDFFFF
- 24267              	.LBE2867:
- 24268              	.LBB2868:
- 24269              	.LBB2869:
- 24270              	.LBB2870:
- 24271              	.LBB2871:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 24272              		.loc 2 851 0
- 24273 16e9d 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 24273      00000000 
- 24274 16ea5 F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 24274      F0FDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 24275              		.loc 2 854 0
- 24276 16ead 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 24276      00000000 
- 24277 16eb5 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 24277      D0FDFFFF 
- 24278 16ebd F30F7F8D 		movdqu	%xmm1, -448(%rbp)
- 24278      40FEFFFF 
- 24279 16ec5 F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 24279      30FEFFFF 
- 24280              	.LBB2872:
- 24281              	.LBB2873:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 24282              		.loc 2 206 0
- 24283 16ecd F30F6F85 		movdqu	-464(%rbp), %xmm0
- 24283      30FEFFFF 
- 24284 16ed5 F30F6F8D 		movdqu	-448(%rbp), %xmm1
- 24284      40FEFFFF 
- 24285 16edd 660FDBC1 		pand	%xmm1, %xmm0
- 24286              	.LBE2873:
- 24287              	.LBE2872:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 24288              		.loc 2 854 0
- 24289 16ee1 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 24289      20FEFFFF 
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 24290              		.loc 2 862 0
- 24291 16ee9 660F6F05 		movdqa	vec_10(%rip), %xmm0
- 24291      00000000 
- 24292 16ef1 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 24292      D0FDFFFF 
- 24293 16ef9 F30F7F8D 		movdqu	%xmm1, -416(%rbp)
- 24293      60FEFFFF 
- 24294 16f01 F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 24294      50FEFFFF 
- 24295              	.LBB2874:
- 24296              		.loc 2 2642 0
- 24297 16f09 0FB68560 		movzbl	-416(%rbp), %eax
- 24297      FEFFFF
- 24298 16f10 0FB69550 		movzbl	-432(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 733
-
-
- 24298      FEFFFF
- 24299 16f17 0FB6C0   		movzbl	%al, %eax
- 24300 16f1a 6689855E 		movw	%ax, -2722(%rbp)
- 24300      F5FFFF
- 24301 16f21 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24301      F5FFFF
- 24302 16f28 F6F2     		divb	%dl
- 24303 16f2a 4189C7   		movl	%eax, %r15d
- 24304 16f2d 0FB68561 		movzbl	-415(%rbp), %eax
- 24304      FEFFFF
- 24305 16f34 0FB69551 		movzbl	-431(%rbp), %edx
- 24305      FEFFFF
- 24306 16f3b 0FB6C0   		movzbl	%al, %eax
- 24307 16f3e 6689855E 		movw	%ax, -2722(%rbp)
- 24307      F5FFFF
- 24308 16f45 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24308      F5FFFF
- 24309 16f4c F6F2     		divb	%dl
- 24310 16f4e 8885F3F5 		movb	%al, -2573(%rbp)
- 24310      FFFF
- 24311 16f54 0FB68562 		movzbl	-414(%rbp), %eax
- 24311      FEFFFF
- 24312 16f5b 0FB69552 		movzbl	-430(%rbp), %edx
- 24312      FEFFFF
- 24313 16f62 0FB6C0   		movzbl	%al, %eax
- 24314 16f65 6689855E 		movw	%ax, -2722(%rbp)
- 24314      F5FFFF
- 24315 16f6c 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24315      F5FFFF
- 24316 16f73 F6F2     		divb	%dl
- 24317 16f75 8885F2F5 		movb	%al, -2574(%rbp)
- 24317      FFFF
- 24318 16f7b 0FB68563 		movzbl	-413(%rbp), %eax
- 24318      FEFFFF
- 24319 16f82 0FB69553 		movzbl	-429(%rbp), %edx
- 24319      FEFFFF
- 24320 16f89 0FB6C0   		movzbl	%al, %eax
- 24321 16f8c 6689855E 		movw	%ax, -2722(%rbp)
- 24321      F5FFFF
- 24322 16f93 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24322      F5FFFF
- 24323 16f9a F6F2     		divb	%dl
- 24324 16f9c 8885F1F5 		movb	%al, -2575(%rbp)
- 24324      FFFF
- 24325 16fa2 0FB68564 		movzbl	-412(%rbp), %eax
- 24325      FEFFFF
- 24326 16fa9 0FB69554 		movzbl	-428(%rbp), %edx
- 24326      FEFFFF
- 24327 16fb0 0FB6C0   		movzbl	%al, %eax
- 24328 16fb3 6689855E 		movw	%ax, -2722(%rbp)
- 24328      F5FFFF
- 24329 16fba 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24329      F5FFFF
- 24330 16fc1 F6F2     		divb	%dl
- 24331 16fc3 8885F0F5 		movb	%al, -2576(%rbp)
- 24331      FFFF
- 24332 16fc9 0FB68565 		movzbl	-411(%rbp), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 734
-
-
- 24332      FEFFFF
- 24333 16fd0 0FB69555 		movzbl	-427(%rbp), %edx
- 24333      FEFFFF
- 24334 16fd7 0FB6C0   		movzbl	%al, %eax
- 24335 16fda 6689855E 		movw	%ax, -2722(%rbp)
- 24335      F5FFFF
- 24336 16fe1 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24336      F5FFFF
- 24337 16fe8 F6F2     		divb	%dl
- 24338 16fea 4189C1   		movl	%eax, %r9d
- 24339 16fed 0FB68566 		movzbl	-410(%rbp), %eax
- 24339      FEFFFF
- 24340 16ff4 0FB69556 		movzbl	-426(%rbp), %edx
- 24340      FEFFFF
- 24341 16ffb 0FB6C0   		movzbl	%al, %eax
- 24342 16ffe 6689855E 		movw	%ax, -2722(%rbp)
- 24342      F5FFFF
- 24343 17005 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24343      F5FFFF
- 24344 1700c F6F2     		divb	%dl
- 24345 1700e 89C7     		movl	%eax, %edi
- 24346 17010 0FB68567 		movzbl	-409(%rbp), %eax
- 24346      FEFFFF
- 24347 17017 0FB69557 		movzbl	-425(%rbp), %edx
- 24347      FEFFFF
- 24348 1701e 0FB6C0   		movzbl	%al, %eax
- 24349 17021 6689855E 		movw	%ax, -2722(%rbp)
- 24349      F5FFFF
- 24350 17028 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24350      F5FFFF
- 24351 1702f F6F2     		divb	%dl
- 24352 17031 89C3     		movl	%eax, %ebx
- 24353 17033 0FB68568 		movzbl	-408(%rbp), %eax
- 24353      FEFFFF
- 24354 1703a 0FB69558 		movzbl	-424(%rbp), %edx
- 24354      FEFFFF
- 24355 17041 0FB6C0   		movzbl	%al, %eax
- 24356 17044 6689855E 		movw	%ax, -2722(%rbp)
- 24356      F5FFFF
- 24357 1704b 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24357      F5FFFF
- 24358 17052 F6F2     		divb	%dl
- 24359 17054 4189C2   		movl	%eax, %r10d
- 24360 17057 0FB68569 		movzbl	-407(%rbp), %eax
- 24360      FEFFFF
- 24361 1705e 0FB69559 		movzbl	-423(%rbp), %edx
- 24361      FEFFFF
- 24362 17065 0FB6C0   		movzbl	%al, %eax
- 24363 17068 6689855E 		movw	%ax, -2722(%rbp)
- 24363      F5FFFF
- 24364 1706f 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24364      F5FFFF
- 24365 17076 F6F2     		divb	%dl
- 24366 17078 4189C3   		movl	%eax, %r11d
- 24367 1707b 0FB6856A 		movzbl	-406(%rbp), %eax
- 24367      FEFFFF
- 24368 17082 0FB6955A 		movzbl	-422(%rbp), %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 735
-
-
- 24368      FEFFFF
- 24369 17089 0FB6C0   		movzbl	%al, %eax
- 24370 1708c 6689855E 		movw	%ax, -2722(%rbp)
- 24370      F5FFFF
- 24371 17093 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24371      F5FFFF
- 24372 1709a F6F2     		divb	%dl
- 24373 1709c 4189C4   		movl	%eax, %r12d
- 24374 1709f 0FB6856B 		movzbl	-405(%rbp), %eax
- 24374      FEFFFF
- 24375 170a6 0FB6955B 		movzbl	-421(%rbp), %edx
- 24375      FEFFFF
- 24376 170ad 0FB6C0   		movzbl	%al, %eax
- 24377 170b0 6689855E 		movw	%ax, -2722(%rbp)
- 24377      F5FFFF
- 24378 170b7 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24378      F5FFFF
- 24379 170be F6F2     		divb	%dl
- 24380 170c0 4189C5   		movl	%eax, %r13d
- 24381 170c3 0FB6856C 		movzbl	-404(%rbp), %eax
- 24381      FEFFFF
- 24382 170ca 0FB6955C 		movzbl	-420(%rbp), %edx
- 24382      FEFFFF
- 24383 170d1 0FB6C0   		movzbl	%al, %eax
- 24384 170d4 6689855E 		movw	%ax, -2722(%rbp)
- 24384      F5FFFF
- 24385 170db 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24385      F5FFFF
- 24386 170e2 F6F2     		divb	%dl
- 24387 170e4 4189C6   		movl	%eax, %r14d
- 24388 170e7 0FB6856D 		movzbl	-403(%rbp), %eax
- 24388      FEFFFF
- 24389 170ee 0FB6955D 		movzbl	-419(%rbp), %edx
- 24389      FEFFFF
- 24390 170f5 0FB6C0   		movzbl	%al, %eax
- 24391 170f8 6689855E 		movw	%ax, -2722(%rbp)
- 24391      F5FFFF
- 24392 170ff 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24392      F5FFFF
- 24393 17106 F6F2     		divb	%dl
- 24394 17108 4189C0   		movl	%eax, %r8d
- 24395 1710b 0FB6856E 		movzbl	-402(%rbp), %eax
- 24395      FEFFFF
- 24396 17112 0FB6955E 		movzbl	-418(%rbp), %edx
- 24396      FEFFFF
- 24397 17119 0FB6C0   		movzbl	%al, %eax
- 24398 1711c 6689855E 		movw	%ax, -2722(%rbp)
- 24398      F5FFFF
- 24399 17123 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24399      F5FFFF
- 24400 1712a F6F2     		divb	%dl
- 24401 1712c 89C6     		movl	%eax, %esi
- 24402 1712e 0FB6856F 		movzbl	-401(%rbp), %eax
- 24402      FEFFFF
- 24403 17135 0FB6955F 		movzbl	-417(%rbp), %edx
- 24403      FEFFFF
- 24404 1713c 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 736
-
-
- 24405 1713f 6689855E 		movw	%ax, -2722(%rbp)
- 24405      F5FFFF
- 24406 17146 0FB7855E 		movzwl	-2722(%rbp), %eax
- 24406      F5FFFF
- 24407 1714d F6F2     		divb	%dl
- 24408 1714f 89C1     		movl	%eax, %ecx
- 24409              	.LBB2875:
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 24410              		.loc 2 346 0
- 24411 17151 0FB6D3   		movzbl	%bl, %edx
- 24412 17154 400FB6C7 		movzbl	%dil, %eax
- 24413 17158 48C1E208 		salq	$8, %rdx
- 24414 1715c 4809C2   		orq	%rax, %rdx
- 24415 1715f 410FB6C1 		movzbl	%r9b, %eax
- 24416 17163 48C1E208 		salq	$8, %rdx
- 24417 17167 4809C2   		orq	%rax, %rdx
- 24418 1716a 0FB685F0 		movzbl	-2576(%rbp), %eax
- 24418      F5FFFF
- 24419 17171 48C1E208 		salq	$8, %rdx
- 24420 17175 4809C2   		orq	%rax, %rdx
- 24421 17178 0FB685F1 		movzbl	-2575(%rbp), %eax
- 24421      F5FFFF
- 24422 1717f 48C1E208 		salq	$8, %rdx
- 24423 17183 4809C2   		orq	%rax, %rdx
- 24424 17186 0FB685F2 		movzbl	-2574(%rbp), %eax
- 24424      F5FFFF
- 24425 1718d 48C1E208 		salq	$8, %rdx
- 24426 17191 4809C2   		orq	%rax, %rdx
- 24427 17194 0FB685F3 		movzbl	-2573(%rbp), %eax
- 24427      F5FFFF
- 24428 1719b 48C1E208 		salq	$8, %rdx
- 24429 1719f 4809C2   		orq	%rax, %rdx
- 24430 171a2 410FB6C7 		movzbl	%r15b, %eax
- 24431 171a6 48C1E208 		salq	$8, %rdx
- 24432 171aa 4809C2   		orq	%rax, %rdx
- 24433 171ad 0FB6C1   		movzbl	%cl, %eax
- 24434 171b0 400FB6CE 		movzbl	%sil, %ecx
- 24435 171b4 48C1E008 		salq	$8, %rax
- 24436 171b8 4809C8   		orq	%rcx, %rax
- 24437 171bb 410FB6C8 		movzbl	%r8b, %ecx
- 24438 171bf 48C1E008 		salq	$8, %rax
- 24439 171c3 4809C8   		orq	%rcx, %rax
- 24440 171c6 410FB6CE 		movzbl	%r14b, %ecx
- 24441 171ca 48C1E008 		salq	$8, %rax
- 24442 171ce 4809C8   		orq	%rcx, %rax
- 24443 171d1 410FB6CD 		movzbl	%r13b, %ecx
- 24444 171d5 48C1E008 		salq	$8, %rax
- 24445 171d9 4809C8   		orq	%rcx, %rax
- 24446 171dc 410FB6CC 		movzbl	%r12b, %ecx
- 24447 171e0 48C1E008 		salq	$8, %rax
- 24448 171e4 4809C8   		orq	%rcx, %rax
- 24449 171e7 410FB6CB 		movzbl	%r11b, %ecx
- 24450 171eb 48C1E008 		salq	$8, %rax
- 24451 171ef 4809C8   		orq	%rcx, %rax
- 24452 171f2 410FB6CA 		movzbl	%r10b, %ecx
- 24453 171f6 48C1E008 		salq	$8, %rax
- 24454 171fa 4809C8   		orq	%rcx, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 737
-
-
- 24455 171fd 48899560 		movq	%rdx, -2720(%rbp)
- 24455      F5FFFF
- 24456 17204 48898568 		movq	%rax, -2712(%rbp)
- 24456      F5FFFF
- 24457 1720b 660F6F85 		movdqa	-2720(%rbp), %xmm0
- 24457      60F5FFFF 
- 24458              	.LBE2875:
- 24459              	.LBE2874:
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 24460              		.loc 2 862 0
- 24461 17213 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 24461      10FEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 24462              		.loc 2 866 0
- 24463 1721b C785ECFD 		movl	$0, -532(%rbp)
- 24463      FFFF0000 
- 24463      0000
- 24464 17225 E9860200 		jmp	.L640
- 24464      00
- 24465              	.L649:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 24466              		.loc 2 868 0
- 24467 1722a 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 24467      00000000 
- 24468 17232 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 24468      80FEFFFF 
- 24469 1723a F30F6F85 		movdqu	-496(%rbp), %xmm0
- 24469      10FEFFFF 
- 24470 17242 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 24470      70FEFFFF 
- 24471              	.LBB2876:
- 24472              	.LBB2877:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 24473              		.loc 2 380 0
- 24474 1724a F30F6F85 		movdqu	-384(%rbp), %xmm0
- 24474      80FEFFFF 
- 24475 17252 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 24475      50F8FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 24476              		.loc 2 381 0
- 24477 1725a F30F6F85 		movdqu	-400(%rbp), %xmm0
- 24477      70FEFFFF 
- 24478 17262 F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 24478      40F8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 24479              		.loc 2 383 0
- 24480 1726a C7859CFE 		movl	$0, -356(%rbp)
- 24480      FFFF0000 
- 24480      0000
- 24481 17274 EB5C     		jmp	.L641
- 24482              	.L644:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 24483              		.loc 2 385 0
- 24484 17276 8B859CFE 		movl	-356(%rbp), %eax
- 24484      FFFF
- 24485 1727c 89C0     		mov	%eax, %eax
- 24486 1727e 0FB68405 		movzbl	-1984(%rbp,%rax), %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 738
-
-
- 24486      40F8FFFF 
- 24487 17286 84C0     		testb	%al, %al
- 24488 17288 7912     		jns	.L642
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 24489              		.loc 2 386 0
- 24490 1728a 8B859CFE 		movl	-356(%rbp), %eax
- 24490      FFFF
- 24491 17290 89C0     		mov	%eax, %eax
- 24492 17292 C6840560 		movb	$0, -1952(%rbp,%rax)
- 24492      F8FFFF00 
- 24493 1729a EB2F     		jmp	.L643
- 24494              	.L642:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 24495              		.loc 2 388 0
- 24496 1729c 8B8D9CFE 		movl	-356(%rbp), %ecx
- 24496      FFFF
- 24497 172a2 8B859CFE 		movl	-356(%rbp), %eax
- 24497      FFFF
- 24498 172a8 89C0     		mov	%eax, %eax
- 24499 172aa 0FB68405 		movzbl	-1984(%rbp,%rax), %eax
- 24499      40F8FFFF 
- 24500 172b2 0FB6C0   		movzbl	%al, %eax
- 24501 172b5 83E00F   		andl	$15, %eax
- 24502 172b8 4898     		cltq
- 24503 172ba 0FB69405 		movzbl	-1968(%rbp,%rax), %edx
- 24503      50F8FFFF 
- 24504 172c2 89C8     		mov	%ecx, %eax
- 24505 172c4 88940560 		movb	%dl, -1952(%rbp,%rax)
- 24505      F8FFFF
- 24506              	.L643:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 24507              		.loc 2 383 0
- 24508 172cb 83859CFE 		addl	$1, -356(%rbp)
- 24508      FFFF01
- 24509              	.L641:
- 24510 172d2 83BD9CFE 		cmpl	$15, -356(%rbp)
- 24510      FFFF0F
- 24511 172d9 769B     		jbe	.L644
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 24512              		.loc 2 391 0
- 24513 172db F30F6F85 		movdqu	-1952(%rbp), %xmm0
- 24513      60F8FFFF 
- 24514              	.LBE2877:
- 24515              	.LBE2876:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 24516              		.loc 2 868 0
- 24517 172e3 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 24517      00FEFFFF 
- 24518 172eb F30F6F85 		movdqu	-480(%rbp), %xmm0
- 24518      20FEFFFF 
- 24519 172f3 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 24519      B0FEFFFF 
- 24520 172fb F30F6F85 		movdqu	-512(%rbp), %xmm0
- 24520      00FEFFFF 
- 24521 17303 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 24521      A0FEFFFF 
- 24522              	.LBB2878:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 739
-
-
- 24523              	.LBB2879:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 24524              		.loc 2 234 0
- 24525 1730b F30F6F85 		movdqu	-352(%rbp), %xmm0
- 24525      A0FEFFFF 
- 24526 17313 F30F6F8D 		movdqu	-336(%rbp), %xmm1
- 24526      B0FEFFFF 
- 24527 1731b 660FEBC1 		por	%xmm1, %xmm0
- 24528              	.LBE2879:
- 24529              	.LBE2878:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 24530              		.loc 2 870 0
- 24531 1731f F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 24531      00FEFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 24532              		.loc 2 872 0
- 24533 17327 8B85ECFD 		mov	-532(%rbp), %eax
- 24533      FFFF
- 24534 1732d 48C1E004 		salq	$4, %rax
- 24535 17331 480385C8 		addq	-568(%rbp), %rax
- 24535      FDFFFF
- 24536 17338 660F6F00 		movdqa	(%rax), %xmm0
- 24537 1733c F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 24537      D0FEFFFF 
- 24538 17344 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 24538      00FEFFFF 
- 24539 1734c F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 24539      C0FEFFFF 
- 24540              	.LBB2880:
- 24541              	.LBB2881:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 24542              		.loc 2 380 0
- 24543 17354 F30F6F85 		movdqu	-304(%rbp), %xmm0
- 24543      D0FEFFFF 
- 24544 1735c F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 24544      80F8FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 24545              		.loc 2 381 0
- 24546 17364 F30F6F85 		movdqu	-320(%rbp), %xmm0
- 24546      C0FEFFFF 
- 24547 1736c F30F7F85 		movdqu	%xmm0, -1936(%rbp)
- 24547      70F8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 24548              		.loc 2 383 0
- 24549 17374 C785ECFE 		movl	$0, -276(%rbp)
- 24549      FFFF0000 
- 24549      0000
- 24550 1737e EB5C     		jmp	.L645
- 24551              	.L648:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 24552              		.loc 2 385 0
- 24553 17380 8B85ECFE 		movl	-276(%rbp), %eax
- 24553      FFFF
- 24554 17386 89C0     		mov	%eax, %eax
- 24555 17388 0FB68405 		movzbl	-1936(%rbp,%rax), %eax
- 24555      70F8FFFF 
- 24556 17390 84C0     		testb	%al, %al
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 740
-
-
- 24557 17392 7912     		jns	.L646
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 24558              		.loc 2 386 0
- 24559 17394 8B85ECFE 		movl	-276(%rbp), %eax
- 24559      FFFF
- 24560 1739a 89C0     		mov	%eax, %eax
- 24561 1739c C6840590 		movb	$0, -1904(%rbp,%rax)
- 24561      F8FFFF00 
- 24562 173a4 EB2F     		jmp	.L647
- 24563              	.L646:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 24564              		.loc 2 388 0
- 24565 173a6 8B8DECFE 		movl	-276(%rbp), %ecx
- 24565      FFFF
- 24566 173ac 8B85ECFE 		movl	-276(%rbp), %eax
- 24566      FFFF
- 24567 173b2 89C0     		mov	%eax, %eax
- 24568 173b4 0FB68405 		movzbl	-1936(%rbp,%rax), %eax
- 24568      70F8FFFF 
- 24569 173bc 0FB6C0   		movzbl	%al, %eax
- 24570 173bf 83E00F   		andl	$15, %eax
- 24571 173c2 4898     		cltq
- 24572 173c4 0FB69405 		movzbl	-1920(%rbp,%rax), %edx
- 24572      80F8FFFF 
- 24573 173cc 89C8     		mov	%ecx, %eax
- 24574 173ce 88940590 		movb	%dl, -1904(%rbp,%rax)
- 24574      F8FFFF
- 24575              	.L647:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 24576              		.loc 2 383 0
- 24577 173d5 8385ECFE 		addl	$1, -276(%rbp)
- 24577      FFFF01
- 24578              	.L645:
- 24579 173dc 83BDECFE 		cmpl	$15, -276(%rbp)
- 24579      FFFF0F
- 24580 173e3 769B     		jbe	.L648
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 24581              		.loc 2 391 0
- 24582 173e5 F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 24582      90F8FFFF 
- 24583              	.LBE2881:
- 24584              	.LBE2880:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 24585              		.loc 2 872 0
- 24586 173ed F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 24586      00FEFFFF 
- 24587 173f5 F30F6F85 		movdqu	-528(%rbp), %xmm0
- 24587      F0FDFFFF 
- 24588 173fd F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 24588      00FFFFFF 
- 24589 17405 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 24589      00FEFFFF 
- 24590 1740d F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 24590      F0FEFFFF 
- 24591              	.LBB2882:
- 24592              	.LBB2883:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 741
-
-
- 24593              		.loc 2 234 0
- 24594 17415 F30F6F85 		movdqu	-272(%rbp), %xmm0
- 24594      F0FEFFFF 
- 24595 1741d F30F6F8D 		movdqu	-256(%rbp), %xmm1
- 24595      00FFFFFF 
- 24596 17425 660FEBC1 		por	%xmm1, %xmm0
- 24597              	.LBE2883:
- 24598              	.LBE2882:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 24599              		.loc 2 874 0
- 24600 17429 F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 24600      F0FDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 24601              		.loc 2 876 0
- 24602 17431 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 24602      00000000 
- 24603 17439 F30F6F8D 		movdqu	-496(%rbp), %xmm1
- 24603      10FEFFFF 
- 24604 17441 F30F7F8D 		movdqu	%xmm1, -224(%rbp)
- 24604      20FFFFFF 
- 24605 17449 F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 24605      10FFFFFF 
- 24606              	.LBB2884:
- 24607              	.LBB2885:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 24608              		.loc 2 290 0
- 24609 17451 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 24609      10FFFFFF 
- 24610 17459 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 24610      20FFFFFF 
- 24611 17461 660FF8C1 		psubb	%xmm1, %xmm0
- 24612              	.LBE2885:
- 24613              	.LBE2884:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 24614              		.loc 2 876 0
- 24615 17465 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 24615      10FEFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 24616              		.loc 2 878 0
- 24617 1746d 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 24617      00000000 
- 24618 17475 F30F6F8D 		movdqu	-496(%rbp), %xmm1
- 24618      10FEFFFF 
- 24619 1747d F30F7F8D 		movdqu	%xmm1, -192(%rbp)
- 24619      40FFFFFF 
- 24620 17485 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 24620      30FFFFFF 
- 24621              	.LBB2886:
- 24622              	.LBB2887:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 24623              		.loc 2 206 0
- 24624 1748d F30F6F85 		movdqu	-208(%rbp), %xmm0
- 24624      30FFFFFF 
- 24625 17495 F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 24625      40FFFFFF 
- 24626 1749d 660FDBC1 		pand	%xmm1, %xmm0
- 24627              	.LBE2887:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 742
-
-
- 24628              	.LBE2886:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 24629              		.loc 2 878 0
- 24630 174a1 F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 24630      10FEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 24631              		.loc 2 866 0
- 24632 174a9 8385ECFD 		addl	$1, -532(%rbp)
- 24632      FFFF01
- 24633              	.L640:
- 24634 174b0 83BDECFD 		cmpl	$15, -532(%rbp)
- 24634      FFFF0F
- 24635 174b7 0F866DFD 		jbe	.L649
- 24635      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 24636              		.loc 2 882 0
- 24637 174bd F30F6F85 		movdqu	-528(%rbp), %xmm0
- 24637      F0FDFFFF 
- 24638              	.LBE2871:
- 24639              	.LBE2870:
- 24640              	.LBE2869:
- 24641              	.LBE2868:
-2243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
- 24642              		.loc 2 2243 0
- 24643 174c5 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 24643      A0FDFFFF 
- 24644              	.LBB2888:
-2245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", state);
- 24645              		.loc 2 2245 0
- 24646 174cd F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24646      A0FDFFFF 
- 24647 174d5 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 24647      20F8FFFF 
- 24648 174dd E8000000 		call	KDbgWriterGet at PLT
- 24648      00
- 24649 174e2 4885C0   		testq	%rax, %rax
- 24650 174e5 7479     		je	.L651
- 24651 174e7 BF030000 		movl	$3, %edi
- 24651      00
- 24652 174ec E8000000 		call	KDbgCondToFlag at PLT
- 24652      00
- 24653 174f1 4889C6   		movq	%rax, %rsi
- 24654 174f4 BF100000 		movl	$16, %edi
- 24654      00
- 24655 174f9 E8000000 		call	KDbgTestModConds at PLT
- 24655      00
- 24656 174fe 84C0     		testb	%al, %al
- 24657 17500 745E     		je	.L651
- 24658 17502 8B852CF8 		movl	-2004(%rbp), %eax
- 24658      FFFF
- 24659 17508 89C7     		movl	%eax, %edi
- 24660 1750a E8F18AFE 		call	bswap_32
- 24660      FF
- 24661 1750f 4189C5   		movl	%eax, %r13d
- 24662 17512 8B8528F8 		movl	-2008(%rbp), %eax
- 24662      FFFF
- 24663 17518 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 743
-
-
- 24664 1751a E8E18AFE 		call	bswap_32
- 24664      FF
- 24665 1751f 4189C4   		movl	%eax, %r12d
- 24666 17522 8B8524F8 		movl	-2012(%rbp), %eax
- 24666      FFFF
- 24667 17528 89C7     		movl	%eax, %edi
- 24668 1752a E8D18AFE 		call	bswap_32
- 24668      FF
- 24669 1752f 89C3     		movl	%eax, %ebx
- 24670 17531 8B8520F8 		movl	-2016(%rbp), %eax
- 24670      FFFF
- 24671 17537 89C7     		movl	%eax, %edi
- 24672 17539 E8C28AFE 		call	bswap_32
- 24672      FF
- 24673 1753e 4589E9   		movl	%r13d, %r9d
- 24674 17541 4589E0   		movl	%r12d, %r8d
- 24675 17544 89D9     		movl	%ebx, %ecx
- 24676 17546 89C2     		movl	%eax, %edx
- 24677 17548 488D3500 		leaq	.LC12(%rip), %rsi
- 24677      000000
- 24678 1754f 488D3D00 		leaq	.LC1(%rip), %rdi
- 24678      000000
- 24679 17556 B8000000 		movl	$0, %eax
- 24679      00
- 24680 1755b E8000000 		call	KDbgMsg at PLT
- 24680      00
- 24681              	.L651:
- 24682 17560 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24682      A0FDFFFF 
- 24683 17568 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 24683      50FFFFFF 
- 24684              	.LBE2888:
- 24685              	.LBB2889:
- 24686              	.LBB2890:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 24687              		.loc 2 612 0
- 24688 17570 660F6F05 		movdqa	InvShiftRowTable.6750(%rip), %xmm0
- 24688      00000000 
- 24689 17578 F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 24689      50FFFFFF 
- 24690 17580 F30F7F8D 		movdqu	%xmm1, -144(%rbp)
- 24690      70FFFFFF 
- 24691 17588 F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 24691      60FFFFFF 
- 24692              	.LBB2891:
- 24693              	.LBB2892:
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 24694              		.loc 2 380 0
- 24695 17590 F30F6F85 		movdqu	-144(%rbp), %xmm0
- 24695      70FFFFFF 
- 24696 17598 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 24696      B0F8FFFF 
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 24697              		.loc 2 381 0
- 24698 175a0 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 24698      60FFFFFF 
- 24699 175a8 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 744
-
-
- 24699      A0F8FFFF 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 24700              		.loc 2 383 0
- 24701 175b0 C7458C00 		movl	$0, -116(%rbp)
- 24701      000000
- 24702 175b7 EB4D     		jmp	.L652
- 24703              	.L655:
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 24704              		.loc 2 385 0
- 24705 175b9 8B458C   		movl	-116(%rbp), %eax
- 24706 175bc 89C0     		mov	%eax, %eax
- 24707 175be 0FB68405 		movzbl	-1888(%rbp,%rax), %eax
- 24707      A0F8FFFF 
- 24708 175c6 84C0     		testb	%al, %al
- 24709 175c8 790F     		jns	.L653
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 24710              		.loc 2 386 0
- 24711 175ca 8B458C   		movl	-116(%rbp), %eax
- 24712 175cd 89C0     		mov	%eax, %eax
- 24713 175cf C68405C0 		movb	$0, -1856(%rbp,%rax)
- 24713      F8FFFF00 
- 24714 175d7 EB29     		jmp	.L654
- 24715              	.L653:
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 24716              		.loc 2 388 0
- 24717 175d9 8B4D8C   		movl	-116(%rbp), %ecx
- 24718 175dc 8B458C   		movl	-116(%rbp), %eax
- 24719 175df 89C0     		mov	%eax, %eax
- 24720 175e1 0FB68405 		movzbl	-1888(%rbp,%rax), %eax
- 24720      A0F8FFFF 
- 24721 175e9 0FB6C0   		movzbl	%al, %eax
- 24722 175ec 83E00F   		andl	$15, %eax
- 24723 175ef 4898     		cltq
- 24724 175f1 0FB69405 		movzbl	-1872(%rbp,%rax), %edx
- 24724      B0F8FFFF 
- 24725 175f9 89C8     		mov	%ecx, %eax
- 24726 175fb 889405C0 		movb	%dl, -1856(%rbp,%rax)
- 24726      F8FFFF
- 24727              	.L654:
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 24728              		.loc 2 383 0
- 24729 17602 83458C01 		addl	$1, -116(%rbp)
- 24730              	.L652:
- 24731 17606 837D8C0F 		cmpl	$15, -116(%rbp)
- 24732 1760a 76AD     		jbe	.L655
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 24733              		.loc 2 391 0
- 24734 1760c F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 24734      C0F8FFFF 
- 24735              	.LBE2892:
- 24736              	.LBE2891:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 24737              		.loc 2 612 0
- 24738 17614 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 24738      50FFFFFF 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 24739              		.loc 2 613 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 745
-
-
- 24740 1761c F30F6F85 		movdqu	-176(%rbp), %xmm0
- 24740      50FFFFFF 
- 24741              	.LBE2890:
- 24742              	.LBE2889:
-2247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
- 24743              		.loc 2 2247 0
- 24744 17624 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 24744      A0FDFFFF 
- 24745              	.LBB2893:
-2249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", state);
- 24746              		.loc 2 2249 0
- 24747 1762c F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24747      A0FDFFFF 
- 24748 17634 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 24748      10F8FFFF 
- 24749 1763c E8000000 		call	KDbgWriterGet at PLT
- 24749      00
- 24750 17641 4885C0   		testq	%rax, %rax
- 24751 17644 7479     		je	.L657
- 24752 17646 BF030000 		movl	$3, %edi
- 24752      00
- 24753 1764b E8000000 		call	KDbgCondToFlag at PLT
- 24753      00
- 24754 17650 4889C6   		movq	%rax, %rsi
- 24755 17653 BF100000 		movl	$16, %edi
- 24755      00
- 24756 17658 E8000000 		call	KDbgTestModConds at PLT
- 24756      00
- 24757 1765d 84C0     		testb	%al, %al
- 24758 1765f 745E     		je	.L657
- 24759 17661 8B851CF8 		movl	-2020(%rbp), %eax
- 24759      FFFF
- 24760 17667 89C7     		movl	%eax, %edi
- 24761 17669 E89289FE 		call	bswap_32
- 24761      FF
- 24762 1766e 4189C5   		movl	%eax, %r13d
- 24763 17671 8B8518F8 		movl	-2024(%rbp), %eax
- 24763      FFFF
- 24764 17677 89C7     		movl	%eax, %edi
- 24765 17679 E88289FE 		call	bswap_32
- 24765      FF
- 24766 1767e 4189C4   		movl	%eax, %r12d
- 24767 17681 8B8514F8 		movl	-2028(%rbp), %eax
- 24767      FFFF
- 24768 17687 89C7     		movl	%eax, %edi
- 24769 17689 E87289FE 		call	bswap_32
- 24769      FF
- 24770 1768e 89C3     		movl	%eax, %ebx
- 24771 17690 8B8510F8 		movl	-2032(%rbp), %eax
- 24771      FFFF
- 24772 17696 89C7     		movl	%eax, %edi
- 24773 17698 E86389FE 		call	bswap_32
- 24773      FF
- 24774 1769d 4589E9   		movl	%r13d, %r9d
- 24775 176a0 4589E0   		movl	%r12d, %r8d
- 24776 176a3 89D9     		movl	%ebx, %ecx
- 24777 176a5 89C2     		movl	%eax, %edx
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 746
-
-
- 24778 176a7 488D3500 		leaq	.LC13(%rip), %rsi
- 24778      000000
- 24779 176ae 488D3D00 		leaq	.LC1(%rip), %rdi
- 24779      000000
- 24780 176b5 B8000000 		movl	$0, %eax
- 24780      00
- 24781 176ba E8000000 		call	KDbgMsg at PLT
- 24781      00
- 24782              	.L657:
- 24783 176bf F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24783      A0FDFFFF 
- 24784 176c7 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 24784      A0
- 24785 176cc F30F6F85 		movdqu	-624(%rbp), %xmm0
- 24785      90FDFFFF 
- 24786 176d4 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 24786      90
- 24787 176d9 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 24787      A0
- 24788 176de F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 24788      C0
- 24789 176e3 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 24789      90
- 24790 176e8 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 24790      B0
- 24791              	.LBE2893:
- 24792              	.LBB2894:
- 24793              	.LBB2895:
- 24794              	.LBB2896:
- 24795              	.LBB2897:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 24796              		.loc 2 178 0
- 24797 176ed F30F6F45 		movdqu	-80(%rbp), %xmm0
- 24797      B0
- 24798 176f2 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 24798      C0
- 24799 176f7 660FEFC1 		pxor	%xmm1, %xmm0
- 24800              	.LBE2897:
- 24801              	.LBE2896:
- 24802              	.LBE2895:
- 24803              	.LBE2894:
-2251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 24804              		.loc 2 2251 0
- 24805 176fb F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 24805      A0FDFFFF 
- 24806              	.LBB2898:
-2253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
- 24807              		.loc 2 2253 0
- 24808 17703 F30F6F85 		movdqu	-624(%rbp), %xmm0
- 24808      90FDFFFF 
- 24809 1770b F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 24809      00F8FFFF 
- 24810 17713 E8000000 		call	KDbgWriterGet at PLT
- 24810      00
- 24811 17718 4885C0   		testq	%rax, %rax
- 24812 1771b 7479     		je	.L659
- 24813 1771d BF030000 		movl	$3, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 747
-
-
- 24813      00
- 24814 17722 E8000000 		call	KDbgCondToFlag at PLT
- 24814      00
- 24815 17727 4889C6   		movq	%rax, %rsi
- 24816 1772a BF100000 		movl	$16, %edi
- 24816      00
- 24817 1772f E8000000 		call	KDbgTestModConds at PLT
- 24817      00
- 24818 17734 84C0     		testb	%al, %al
- 24819 17736 745E     		je	.L659
- 24820 17738 8B850CF8 		movl	-2036(%rbp), %eax
- 24820      FFFF
- 24821 1773e 89C7     		movl	%eax, %edi
- 24822 17740 E8BB88FE 		call	bswap_32
- 24822      FF
- 24823 17745 4189C5   		movl	%eax, %r13d
- 24824 17748 8B8508F8 		movl	-2040(%rbp), %eax
- 24824      FFFF
- 24825 1774e 89C7     		movl	%eax, %edi
- 24826 17750 E8AB88FE 		call	bswap_32
- 24826      FF
- 24827 17755 4189C4   		movl	%eax, %r12d
- 24828 17758 8B8504F8 		movl	-2044(%rbp), %eax
- 24828      FFFF
- 24829 1775e 89C7     		movl	%eax, %edi
- 24830 17760 E89B88FE 		call	bswap_32
- 24830      FF
- 24831 17765 89C3     		movl	%eax, %ebx
- 24832 17767 8B8500F8 		movl	-2048(%rbp), %eax
- 24832      FFFF
- 24833 1776d 89C7     		movl	%eax, %edi
- 24834 1776f E88C88FE 		call	bswap_32
- 24834      FF
- 24835 17774 4589E9   		movl	%r13d, %r9d
- 24836 17777 4589E0   		movl	%r12d, %r8d
- 24837 1777a 89D9     		movl	%ebx, %ecx
- 24838 1777c 89C2     		movl	%eax, %edx
- 24839 1777e 488D3500 		leaq	.LC6(%rip), %rsi
- 24839      000000
- 24840 17785 488D3D00 		leaq	.LC1(%rip), %rdi
- 24840      000000
- 24841 1778c B8000000 		movl	$0, %eax
- 24841      00
- 24842 17791 E8000000 		call	KDbgMsg at PLT
- 24842      00
- 24843              	.L659:
- 24844              	.LBE2898:
- 24845              	.LBB2899:
-2254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
- 24846              		.loc 2 2254 0
- 24847 17796 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24847      A0FDFFFF 
- 24848 1779e F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 24848      F0F7FFFF 
- 24849 177a6 E8000000 		call	KDbgWriterGet at PLT
- 24849      00
- 24850 177ab 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 748
-
-
- 24851 177ae 7479     		je	.L661
- 24852 177b0 BF030000 		movl	$3, %edi
- 24852      00
- 24853 177b5 E8000000 		call	KDbgCondToFlag at PLT
- 24853      00
- 24854 177ba 4889C6   		movq	%rax, %rsi
- 24855 177bd BF100000 		movl	$16, %edi
- 24855      00
- 24856 177c2 E8000000 		call	KDbgTestModConds at PLT
- 24856      00
- 24857 177c7 84C0     		testb	%al, %al
- 24858 177c9 745E     		je	.L661
- 24859 177cb 8B85FCF7 		movl	-2052(%rbp), %eax
- 24859      FFFF
- 24860 177d1 89C7     		movl	%eax, %edi
- 24861 177d3 E82888FE 		call	bswap_32
- 24861      FF
- 24862 177d8 4189C5   		movl	%eax, %r13d
- 24863 177db 8B85F8F7 		movl	-2056(%rbp), %eax
- 24863      FFFF
- 24864 177e1 89C7     		movl	%eax, %edi
- 24865 177e3 E81888FE 		call	bswap_32
- 24865      FF
- 24866 177e8 4189C4   		movl	%eax, %r12d
- 24867 177eb 8B85F4F7 		movl	-2060(%rbp), %eax
- 24867      FFFF
- 24868 177f1 89C7     		movl	%eax, %edi
- 24869 177f3 E80888FE 		call	bswap_32
- 24869      FF
- 24870 177f8 89C3     		movl	%eax, %ebx
- 24871 177fa 8B85F0F7 		movl	-2064(%rbp), %eax
- 24871      FFFF
- 24872 17800 89C7     		movl	%eax, %edi
- 24873 17802 E8F987FE 		call	bswap_32
- 24873      FF
- 24874 17807 4589E9   		movl	%r13d, %r9d
- 24875 1780a 4589E0   		movl	%r12d, %r8d
- 24876 1780d 89D9     		movl	%ebx, %ecx
- 24877 1780f 89C2     		movl	%eax, %edx
- 24878 17811 488D3500 		leaq	.LC11(%rip), %rsi
- 24878      000000
- 24879 17818 488D3D00 		leaq	.LC1(%rip), %rdi
- 24879      000000
- 24880 1781f B8000000 		movl	$0, %eax
- 24880      00
- 24881 17824 E8000000 		call	KDbgMsg at PLT
- 24881      00
- 24882              	.L661:
- 24883              	.LBE2899:
-2256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 24884              		.loc 2 2256 0
- 24885 17829 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 24885      A0FDFFFF 
- 24886              	.LBE2866:
- 24887              	.LBE2865:
-2280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 24888              		.loc 2 2280 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 749
-
-
- 24889 17831 4881C488 		addq	$2696, %rsp
- 24889      0A0000
- 24890 17838 5B       		popq	%rbx
- 24891 17839 415C     		popq	%r12
- 24892 1783b 415D     		popq	%r13
- 24893 1783d 415E     		popq	%r14
- 24894 1783f 415F     		popq	%r15
- 24895 17841 C9       		leave
- 24896 17842 C3       		ret
- 24897              		.cfi_endproc
- 24898              	.LFE577:
- 24899              		.size	KAESBlockCipherVecEqInvCipher, .-KAESBlockCipherVecEqInvCipher
- 24900              		.section	.rodata
- 24901              		.type	KAESBlockCipherVecaes_ncbi_name, @object
- 24902              		.size	KAESBlockCipherVecaes_ncbi_name, 10
- 24903              	KAESBlockCipherVecaes_ncbi_name:
- 24904 0460 4145535F 		.string	"AES_CLASS"
- 24904      434C4153 
- 24904      5300
- 24905              		.text
- 24906              		.type	KAESBlockCipherVecDestroy, @function
- 24907              	KAESBlockCipherVecDestroy:
- 24908              	.LFB578:
-2308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 24909              		.loc 2 2308 0
- 24910              		.cfi_startproc
- 24911 17843 55       		pushq	%rbp
- 24912              	.LCFI20:
- 24913              		.cfi_def_cfa_offset 16
- 24914 17844 4889E5   		movq	%rsp, %rbp
- 24915              		.cfi_offset 6, -16
- 24916              	.LCFI21:
- 24917              		.cfi_def_cfa_register 6
- 24918 17847 48897DF8 		movq	%rdi, -8(%rbp)
-2310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 24919              		.loc 2 2310 0
- 24920 1784b C9       		leave
- 24921 1784c C3       		ret
- 24922              		.cfi_endproc
- 24923              	.LFE578:
- 24924              		.size	KAESBlockCipherVecDestroy, .-KAESBlockCipherVecDestroy
- 24925              		.type	KAESBlockCipherVecBlockSize, @function
- 24926              	KAESBlockCipherVecBlockSize:
- 24927              	.LFB579:
-2318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 24928              		.loc 2 2318 0
- 24929              		.cfi_startproc
- 24930 1784d 55       		pushq	%rbp
- 24931              	.LCFI22:
- 24932              		.cfi_def_cfa_offset 16
- 24933 1784e 4889E5   		movq	%rsp, %rbp
- 24934              		.cfi_offset 6, -16
- 24935              	.LCFI23:
- 24936              		.cfi_def_cfa_register 6
-2319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESBlock);
- 24937              		.loc 2 2319 0
- 24938 17851 B8100000 		movl	$16, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 750
-
-
- 24938      00
-2320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 24939              		.loc 2 2320 0
- 24940 17856 C9       		leave
- 24941 17857 C3       		ret
- 24942              		.cfi_endproc
- 24943              	.LFE579:
- 24944              		.size	KAESBlockCipherVecBlockSize, .-KAESBlockCipherVecBlockSize
- 24945              		.type	KAESBlockCipherVecKeySize, @function
- 24946              	KAESBlockCipherVecKeySize:
- 24947              	.LFB580:
-2333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 24948              		.loc 2 2333 0
- 24949              		.cfi_startproc
- 24950 17858 55       		pushq	%rbp
- 24951              	.LCFI24:
- 24952              		.cfi_def_cfa_offset 16
- 24953 17859 4889E5   		movq	%rsp, %rbp
- 24954              		.cfi_offset 6, -16
- 24955              	.LCFI25:
- 24956              		.cfi_def_cfa_register 6
-2334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESKeySchedule);
- 24957              		.loc 2 2334 0
- 24958 1785c B8000100 		movl	$256, %eax
- 24958      00
-2335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 24959              		.loc 2 2335 0
- 24960 17861 C9       		leave
- 24961 17862 C3       		ret
- 24962              		.cfi_endproc
- 24963              	.LFE580:
- 24964              		.size	KAESBlockCipherVecKeySize, .-KAESBlockCipherVecKeySize
- 24965              		.section	.rodata
- 24966 046a 00000000 		.align 8
- 24966      0000
- 24967              	.LC15:
- 24968 0470 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
- 24968      652F726F 
- 24968      6461726D 
- 24968      65722F73 
- 24968      72615F73 
- 24969              		.text
- 24970              		.type	KAESBlockCipherVecSetEncryptKey, @function
- 24971              	KAESBlockCipherVecSetEncryptKey:
- 24972              	.LFB581:
-2347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 24973              		.loc 2 2347 0
- 24974              		.cfi_startproc
- 24975 17863 55       		pushq	%rbp
- 24976              	.LCFI26:
- 24977              		.cfi_def_cfa_offset 16
- 24978 17864 4889E5   		movq	%rsp, %rbp
- 24979              		.cfi_offset 6, -16
- 24980              	.LCFI27:
- 24981              		.cfi_def_cfa_register 6
- 24982 17867 4883EC30 		subq	$48, %rsp
- 24983 1786b 48897DE8 		movq	%rdi, -24(%rbp)
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 751
-
-
- 24984 1786f 488975E0 		movq	%rsi, -32(%rbp)
- 24985 17873 8955DC   		movl	%edx, -36(%rbp)
-2351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = 0;
- 24986              		.loc 2 2351 0
- 24987 17876 C745F400 		movl	$0, -12(%rbp)
- 24987      000000
-2352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     key = encrypt_key;
- 24988              		.loc 2 2352 0
- 24989 1787d 488B45E8 		movq	-24(%rbp), %rax
- 24990 17881 488945F8 		movq	%rax, -8(%rbp)
-2354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (user_key_size)
- 24991              		.loc 2 2354 0
- 24992 17885 8B45DC   		movl	-36(%rbp), %eax
- 24993 17888 83F818   		cmpl	$24, %eax
- 24994 1788b 7430     		je	.L672
- 24995 1788d 83F820   		cmpl	$32, %eax
- 24996 17890 744E     		je	.L673
- 24997 17892 83F810   		cmpl	$16, %eax
- 24998 17895 756C     		jne	.L676
- 24999              	.L671:
-2357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_128;
- 25000              		.loc 2 2357 0
- 25001 17897 488B45F8 		movq	-8(%rbp), %rax
- 25002 1789b C780F000 		movl	$10, 240(%rax)
- 25002      00000A00 
- 25002      0000
-2358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion128) (key->round_keys, (AESByte*)user_key);
- 25003              		.loc 2 2358 0
- 25004 178a5 488B55E0 		movq	-32(%rbp), %rdx
- 25005 178a9 488B45F8 		movq	-8(%rbp), %rax
- 25006 178ad 4889D6   		movq	%rdx, %rsi
- 25007 178b0 4889C7   		movq	%rax, %rdi
- 25008 178b3 E85C87FE 		call	KAESBlockCipherVecKeyExpansion128
- 25008      FF
-2359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25009              		.loc 2 2359 0
- 25010 178b8 E98A0000 		jmp	.L674
- 25010      00
- 25011              	.L672:
-2362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_192;
- 25012              		.loc 2 2362 0
- 25013 178bd 488B45F8 		movq	-8(%rbp), %rax
- 25014 178c1 C780F000 		movl	$12, 240(%rax)
- 25014      00000C00 
- 25014      0000
-2363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion192) (key->round_keys, (AESByte*)user_key);
- 25015              		.loc 2 2363 0
- 25016 178cb 488B55E0 		movq	-32(%rbp), %rdx
- 25017 178cf 488B45F8 		movq	-8(%rbp), %rax
- 25018 178d3 4889D6   		movq	%rdx, %rsi
- 25019 178d6 4889C7   		movq	%rax, %rdi
- 25020 178d9 E84003FF 		call	KAESBlockCipherVecKeyExpansion192
- 25020      FF
-2364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25021              		.loc 2 2364 0
- 25022 178de EB67     		jmp	.L674
- 25023              	.L673:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 752
-
-
-2367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_256;
- 25024              		.loc 2 2367 0
- 25025 178e0 488B45F8 		movq	-8(%rbp), %rax
- 25026 178e4 C780F000 		movl	$14, 240(%rax)
- 25026      00000E00 
- 25026      0000
-2368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion256) (key->round_keys, (AESByte*)user_key);
- 25027              		.loc 2 2368 0
- 25028 178ee 488B55E0 		movq	-32(%rbp), %rdx
- 25029 178f2 488B45F8 		movq	-8(%rbp), %rax
- 25030 178f6 4889D6   		movq	%rdx, %rsi
- 25031 178f9 4889C7   		movq	%rax, %rdi
- 25032 178fc E85553FF 		call	KAESBlockCipherVecKeyExpansion256
- 25032      FF
-2369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25033              		.loc 2 2369 0
- 25034 17901 EB44     		jmp	.L674
- 25035              	.L676:
-2372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = 0;
- 25036              		.loc 2 2372 0
- 25037 17903 488B45F8 		movq	-8(%rbp), %rax
- 25038 17907 C780F000 		movl	$0, 240(%rax)
- 25038      00000000 
- 25038      0000
-2373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         memset (key, 0, sizeof (*key));
- 25039              		.loc 2 2373 0
- 25040 17911 488B45F8 		movq	-8(%rbp), %rax
- 25041 17915 BA000100 		movl	$256, %edx
- 25041      00
- 25042 1791a BE000000 		movl	$0, %esi
- 25042      00
- 25043 1791f 4889C7   		movq	%rax, %rdi
- 25044 17922 E8000000 		call	memset at PLT
- 25044      00
-2374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcUpdating, rcParam, rcInvalid);
- 25045              		.loc 2 2374 0
- 25046 17927 B9460900 		movl	$2374, %ecx
- 25046      00
- 25047 1792c 488D1500 		leaq	__func__.8464(%rip), %rdx
- 25047      000000
- 25048 17933 488D3500 		leaq	.LC15(%rip), %rsi
- 25048      000000
- 25049 1793a BFCA8F04 		movl	$-2029744182, %edi
- 25049      87
- 25050 1793f E8000000 		call	SetRCFileFuncLine at PLT
- 25050      00
- 25051 17944 8945F4   		movl	%eax, -12(%rbp)
- 25052              	.L674:
-2377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 25053              		.loc 2 2377 0
- 25054 17947 8B45F4   		movl	-12(%rbp), %eax
-2378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 25055              		.loc 2 2378 0
- 25056 1794a C9       		leave
- 25057 1794b C3       		ret
- 25058              		.cfi_endproc
- 25059              	.LFE581:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 753
-
-
- 25060              		.size	KAESBlockCipherVecSetEncryptKey, .-KAESBlockCipherVecSetEncryptKey
- 25061              		.type	KAESBlockCipherVecSetDecryptKey, @function
- 25062              	KAESBlockCipherVecSetDecryptKey:
- 25063              	.LFB582:
-2391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 25064              		.loc 2 2391 0
- 25065              		.cfi_startproc
- 25066 1794c 55       		pushq	%rbp
- 25067              	.LCFI28:
- 25068              		.cfi_def_cfa_offset 16
- 25069 1794d 4889E5   		movq	%rsp, %rbp
- 25070              		.cfi_offset 6, -16
- 25071              	.LCFI29:
- 25072              		.cfi_def_cfa_register 6
- 25073 17950 4881EC30 		subq	$304, %rsp
- 25073      010000
- 25074 17957 4889BDE8 		movq	%rdi, -280(%rbp)
- 25074      FEFFFF
- 25075 1795e 4889B5E0 		movq	%rsi, -288(%rbp)
- 25075      FEFFFF
- 25076 17965 8995DCFE 		movl	%edx, -292(%rbp)
- 25076      FFFF
-2395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = AESBCMEMBER(SetEncryptKey) (&encrypt_key, user_key, user_key_size);
- 25077              		.loc 2 2395 0
- 25078 1796b 8B95DCFE 		movl	-292(%rbp), %edx
- 25078      FFFF
- 25079 17971 488B8DE0 		movq	-288(%rbp), %rcx
- 25079      FEFFFF
- 25080 17978 488D85F0 		leaq	-272(%rbp), %rax
- 25080      FEFFFF
- 25081 1797f 4889CE   		movq	%rcx, %rsi
- 25082 17982 4889C7   		movq	%rax, %rdi
- 25083 17985 E8D9FEFF 		call	KAESBlockCipherVecSetEncryptKey
- 25083      FF
- 25084 1798a 8945F4   		movl	%eax, -12(%rbp)
-2396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (rc == 0)
- 25085              		.loc 2 2396 0
- 25086 1798d 837DF400 		cmpl	$0, -12(%rbp)
- 25087 17991 7577     		jne	.L678
- 25088              	.LBB2900:
-2400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key = decrypt_key;
- 25089              		.loc 2 2400 0
- 25090 17993 488B85E8 		movq	-280(%rbp), %rax
- 25090      FEFFFF
- 25091 1799a 488945F8 		movq	%rax, -8(%rbp)
-2402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         switch (key->number_of_rounds = encrypt_key.number_of_rounds)
- 25092              		.loc 2 2402 0
- 25093 1799e 8B55E0   		movl	-32(%rbp), %edx
- 25094 179a1 488B45F8 		movq	-8(%rbp), %rax
- 25095 179a5 8990F000 		movl	%edx, 240(%rax)
- 25095      0000
- 25096 179ab 488B45F8 		movq	-8(%rbp), %rax
- 25097 179af 8B80F000 		movl	240(%rax), %eax
- 25097      0000
- 25098 179b5 83F80C   		cmpl	$12, %eax
- 25099 179b8 7422     		je	.L680
- 25100 179ba 83F80E   		cmpl	$14, %eax
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 754
-
-
- 25101 179bd 7435     		je	.L681
- 25102 179bf 83F80A   		cmpl	$10, %eax
- 25103 179c2 7546     		jne	.L678
- 25104              	.L679:
-2405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion128) (key->round_keys,
- 25105              		.loc 2 2405 0
- 25106 179c4 488B45F8 		movq	-8(%rbp), %rax
- 25107 179c8 488D95F0 		leaq	-272(%rbp), %rdx
- 25107      FEFFFF
- 25108 179cf 4889D6   		movq	%rdx, %rsi
- 25109 179d2 4889C7   		movq	%rax, %rdi
- 25110 179d5 E8C8C1FF 		call	KAESBlockCipherVecEqInvKeyExpansion128
- 25110      FF
-2407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
- 25111              		.loc 2 2407 0
- 25112 179da EB2E     		jmp	.L678
- 25113              	.L680:
-2410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion192) (key->round_keys,
- 25114              		.loc 2 2410 0
- 25115 179dc 488B45F8 		movq	-8(%rbp), %rax
- 25116 179e0 488D95F0 		leaq	-272(%rbp), %rdx
- 25116      FEFFFF
- 25117 179e7 4889D6   		movq	%rdx, %rsi
- 25118 179ea 4889C7   		movq	%rax, %rdi
- 25119 179ed E8DAC1FF 		call	KAESBlockCipherVecEqInvKeyExpansion192
- 25119      FF
-2412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
- 25120              		.loc 2 2412 0
- 25121 179f2 EB16     		jmp	.L678
- 25122              	.L681:
-2415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion256) (key->round_keys,
- 25123              		.loc 2 2415 0
- 25124 179f4 488B45F8 		movq	-8(%rbp), %rax
- 25125 179f8 488D95F0 		leaq	-272(%rbp), %rdx
- 25125      FEFFFF
- 25126 179ff 4889D6   		movq	%rdx, %rsi
- 25127 17a02 4889C7   		movq	%rax, %rdi
- 25128 17a05 E8ECC1FF 		call	KAESBlockCipherVecEqInvKeyExpansion256
- 25128      FF
- 25129              	.L678:
- 25130              	.LBE2900:
-2420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 25131              		.loc 2 2420 0
- 25132 17a0a 8B45F4   		movl	-12(%rbp), %eax
-2421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 25133              		.loc 2 2421 0
- 25134 17a0d C9       		leave
- 25135 17a0e C3       		ret
- 25136              		.cfi_endproc
- 25137              	.LFE582:
- 25138              		.size	KAESBlockCipherVecSetDecryptKey, .-KAESBlockCipherVecSetDecryptKey
- 25139              		.section	.rodata
- 25140              	.LC16:
- 25141 04a6 6B657900 		.string	"key"
- 25142              		.text
- 25143              		.type	KAESBlockCipherVecEncrypt, @function
- 25144              	KAESBlockCipherVecEncrypt:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 755
-
-
- 25145              	.LFB583:
-2434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 25146              		.loc 2 2434 0
- 25147              		.cfi_startproc
- 25148 17a0f 55       		pushq	%rbp
- 25149              	.LCFI30:
- 25150              		.cfi_def_cfa_offset 16
- 25151 17a10 4889E5   		movq	%rsp, %rbp
- 25152              		.cfi_offset 6, -16
- 25153              	.LCFI31:
- 25154              		.cfi_def_cfa_register 6
- 25155 17a13 4883EC30 		subq	$48, %rsp
- 25156 17a17 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25156      E0
- 25157 17a1c 48897DD8 		movq	%rdi, -40(%rbp)
-2435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = encrypt_key;
- 25158              		.loc 2 2435 0
- 25159 17a20 488B45D8 		movq	-40(%rbp), %rax
- 25160 17a24 488945F8 		movq	%rax, -8(%rbp)
-2436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
- 25161              		.loc 2 2436 0
- 25162 17a28 48837DF8 		cmpq	$0, -8(%rbp)
- 25162      00
- 25163 17a2d 751F     		jne	.L684
- 25164 17a2f 488D0D00 		leaq	__PRETTY_FUNCTION__.8500(%rip), %rcx
- 25164      000000
- 25165 17a36 BA840900 		movl	$2436, %edx
- 25165      00
- 25166 17a3b 488D3500 		leaq	.LC15(%rip), %rsi
- 25166      000000
- 25167 17a42 488D3D00 		leaq	.LC16(%rip), %rdi
- 25167      000000
- 25168 17a49 E8000000 		call	__assert_fail at PLT
- 25168      00
- 25169              	.L684:
-2438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
- 25170              		.loc 2 2438 0
- 25171 17a4e 488B45F8 		movq	-8(%rbp), %rax
- 25172 17a52 8B80F000 		movl	240(%rax), %eax
- 25172      0000
- 25173 17a58 83F80C   		cmpl	$12, %eax
- 25174 17a5b 7436     		je	.L687
- 25175 17a5d 83F80E   		cmpl	$14, %eax
- 25176 17a60 744E     		je	.L688
- 25177 17a62 83F80A   		cmpl	$10, %eax
- 25178 17a65 740F     		je	.L686
-2441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00;
- 25179              		.loc 2 2441 0
- 25180 17a67 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 25180      00000000 
- 25181 17a6f 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25181      E0
-2442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25182              		.loc 2 2442 0
- 25183 17a74 EB55     		jmp	.L689
- 25184              	.L686:
-2445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_128);
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 756
-
-
- 25185              		.loc 2 2445 0
- 25186 17a76 488B45F8 		movq	-8(%rbp), %rax
- 25187 17a7a 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25187      E0
- 25188 17a7f BE0A0000 		movl	$10, %esi
- 25188      00
- 25189 17a84 4889C7   		movq	%rax, %rdi
- 25190 17a87 E894C1FF 		call	KAESBlockCipherVecCipher
- 25190      FF
- 25191 17a8c 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25191      E0
-2446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25192              		.loc 2 2446 0
- 25193 17a91 EB38     		jmp	.L689
- 25194              	.L687:
-2449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_192);
- 25195              		.loc 2 2449 0
- 25196 17a93 488B45F8 		movq	-8(%rbp), %rax
- 25197 17a97 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25197      E0
- 25198 17a9c BE0C0000 		movl	$12, %esi
- 25198      00
- 25199 17aa1 4889C7   		movq	%rax, %rdi
- 25200 17aa4 E877C1FF 		call	KAESBlockCipherVecCipher
- 25200      FF
- 25201 17aa9 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25201      E0
-2450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25202              		.loc 2 2450 0
- 25203 17aae EB1B     		jmp	.L689
- 25204              	.L688:
-2453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_256);
- 25205              		.loc 2 2453 0
- 25206 17ab0 488B45F8 		movq	-8(%rbp), %rax
- 25207 17ab4 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25207      E0
- 25208 17ab9 BE0E0000 		movl	$14, %esi
- 25208      00
- 25209 17abe 4889C7   		movq	%rax, %rdi
- 25210 17ac1 E85AC1FF 		call	KAESBlockCipherVecCipher
- 25210      FF
- 25211 17ac6 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25211      E0
- 25212              	.L689:
-2457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 25213              		.loc 2 2457 0
- 25214 17acb 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25214      E0
-2458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 25215              		.loc 2 2458 0
- 25216 17ad0 C9       		leave
- 25217 17ad1 C3       		ret
- 25218              		.cfi_endproc
- 25219              	.LFE583:
- 25220              		.size	KAESBlockCipherVecEncrypt, .-KAESBlockCipherVecEncrypt
- 25221              		.type	KAESBlockCipherVecDecrypt, @function
- 25222              	KAESBlockCipherVecDecrypt:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 757
-
-
- 25223              	.LFB584:
-2470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 25224              		.loc 2 2470 0
- 25225              		.cfi_startproc
- 25226 17ad2 55       		pushq	%rbp
- 25227              	.LCFI32:
- 25228              		.cfi_def_cfa_offset 16
- 25229 17ad3 4889E5   		movq	%rsp, %rbp
- 25230              		.cfi_offset 6, -16
- 25231              	.LCFI33:
- 25232              		.cfi_def_cfa_register 6
- 25233 17ad6 4883EC30 		subq	$48, %rsp
- 25234 17ada 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25234      E0
- 25235 17adf 48897DD8 		movq	%rdi, -40(%rbp)
-2471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = decrypt_key;
- 25236              		.loc 2 2471 0
- 25237 17ae3 488B45D8 		movq	-40(%rbp), %rax
- 25238 17ae7 488945F8 		movq	%rax, -8(%rbp)
-2473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
- 25239              		.loc 2 2473 0
- 25240 17aeb 48837DF8 		cmpq	$0, -8(%rbp)
- 25240      00
- 25241 17af0 751F     		jne	.L692
- 25242 17af2 488D0D00 		leaq	__PRETTY_FUNCTION__.8521(%rip), %rcx
- 25242      000000
- 25243 17af9 BAA90900 		movl	$2473, %edx
- 25243      00
- 25244 17afe 488D3500 		leaq	.LC15(%rip), %rsi
- 25244      000000
- 25245 17b05 488D3D00 		leaq	.LC16(%rip), %rdi
- 25245      000000
- 25246 17b0c E8000000 		call	__assert_fail at PLT
- 25246      00
- 25247              	.L692:
-2475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
- 25248              		.loc 2 2475 0
- 25249 17b11 488B45F8 		movq	-8(%rbp), %rax
- 25250 17b15 8B80F000 		movl	240(%rax), %eax
- 25250      0000
- 25251 17b1b 83F80C   		cmpl	$12, %eax
- 25252 17b1e 7436     		je	.L695
- 25253 17b20 83F80E   		cmpl	$14, %eax
- 25254 17b23 744E     		je	.L696
- 25255 17b25 83F80A   		cmpl	$10, %eax
- 25256 17b28 740F     		je	.L694
-2478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00; /* for an illegal cipher key schedule just write zeroes */
- 25257              		.loc 2 2478 0
- 25258 17b2a 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 25258      00000000 
- 25259 17b32 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25259      E0
-2479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25260              		.loc 2 2479 0
- 25261 17b37 EB55     		jmp	.L697
- 25262              	.L694:
-2482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 758
-
-
- 25263              		.loc 2 2482 0
- 25264 17b39 488B45F8 		movq	-8(%rbp), %rax
- 25265 17b3d 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25265      E0
- 25266 17b42 BE0A0000 		movl	$10, %esi
- 25266      00
- 25267 17b47 4889C7   		movq	%rax, %rdi
- 25268 17b4a E8C7DDFF 		call	KAESBlockCipherVecEqInvCipher
- 25268      FF
- 25269 17b4f 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25269      E0
-2484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25270              		.loc 2 2484 0
- 25271 17b54 EB38     		jmp	.L697
- 25272              	.L695:
-2487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 25273              		.loc 2 2487 0
- 25274 17b56 488B45F8 		movq	-8(%rbp), %rax
- 25275 17b5a 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25275      E0
- 25276 17b5f BE0C0000 		movl	$12, %esi
- 25276      00
- 25277 17b64 4889C7   		movq	%rax, %rdi
- 25278 17b67 E8AADDFF 		call	KAESBlockCipherVecEqInvCipher
- 25278      FF
- 25279 17b6c 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25279      E0
-2489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 25280              		.loc 2 2489 0
- 25281 17b71 EB1B     		jmp	.L697
- 25282              	.L696:
-2492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 25283              		.loc 2 2492 0
- 25284 17b73 488B45F8 		movq	-8(%rbp), %rax
- 25285 17b77 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25285      E0
- 25286 17b7c BE0E0000 		movl	$14, %esi
- 25286      00
- 25287 17b81 4889C7   		movq	%rax, %rdi
- 25288 17b84 E88DDDFF 		call	KAESBlockCipherVecEqInvCipher
- 25288      FF
- 25289 17b89 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 25289      E0
- 25290              	.L697:
-2497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 25291              		.loc 2 2497 0
- 25292 17b8e 660F6F45 		movdqa	-32(%rbp), %xmm0
- 25292      E0
-2498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 25293              		.loc 2 2498 0
- 25294 17b93 C9       		leave
- 25295 17b94 C3       		ret
- 25296              		.cfi_endproc
- 25297              	.LFE584:
- 25298              		.size	KAESBlockCipherVecDecrypt, .-KAESBlockCipherVecDecrypt
- 25299              		.section	.rodata
- 25300 04aa 00000000 		.align 8
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 759
-
-
- 25300      0000
- 25301              	.LC17:
- 25302 04b0 25733A20 		.string	"%s: level %x a %x, b %x c %x d %x\n"
- 25302      6C657665 
- 25302      6C202578 
- 25302      20612025 
- 25302      782C2062 
- 25303              	.LC18:
- 25304 04d3 25733A20 		.string	"%s: passed\n"
- 25304      70617373 
- 25304      65640A00 
- 25305              		.text
- 25306              		.type	KAESBlockCipherVecProcessorSupport, @function
- 25307              	KAESBlockCipherVecProcessorSupport:
- 25308              	.LFB585:
-2509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 25309              		.loc 2 2509 0
- 25310              		.cfi_startproc
- 25311 17b95 55       		pushq	%rbp
- 25312              	.LCFI34:
- 25313              		.cfi_def_cfa_offset 16
- 25314 17b96 4889E5   		movq	%rsp, %rbp
- 25315              		.cfi_offset 6, -16
- 25316              	.LCFI35:
- 25317              		.cfi_def_cfa_register 6
- 25318 17b99 53       		pushq	%rbx
- 25319 17b9a 4883EC38 		subq	$56, %rsp
-2510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     uint32_t level = 1, a, b, c, d;
- 25320              		.loc 2 2510 0
- 25321 17b9e C745D801 		movl	$1, -40(%rbp)
- 25321      000000
-2511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     bool ret = true;
- 25322              		.loc 2 2511 0
- 25323 17ba5 C645EF01 		movb	$1, -17(%rbp)
-2513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __cpuid (level, a, b, c, d);
- 25324              		.loc 2 2513 0
- 25325 17ba9 8B45D8   		movl	-40(%rbp), %eax
- 25326              	#APP
- 25327              	# 2513 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 25328              		cpuid
- 25329              		
- 25330              	# 0 "" 2
- 25331              	#NO_APP
- 25332 17bae 8945DC   		movl	%eax, -36(%rbp)
- 25333 17bb1 895DE0   		movl	%ebx, -32(%rbp)
- 25334 17bb4 894DE4   		movl	%ecx, -28(%rbp)
- 25335 17bb7 8955E8   		movl	%edx, -24(%rbp)
-2515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: level %x a %x, b %x c %x d %x\n",__func__, level, a,b,c,d));
- 25336              		.loc 2 2515 0
- 25337              		.cfi_offset 3, -24
- 25338 17bba E8000000 		call	KDbgWriterGet at PLT
- 25338      00
- 25339 17bbf 4885C0   		testq	%rax, %rax
- 25340 17bc2 744F     		je	.L701
- 25341 17bc4 BF040000 		movl	$4, %edi
- 25341      00
- 25342 17bc9 E8000000 		call	KDbgCondToFlag at PLT
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 760
-
-
- 25342      00
- 25343 17bce 4889C6   		movq	%rax, %rsi
- 25344 17bd1 BF100000 		movl	$16, %edi
- 25344      00
- 25345 17bd6 E8000000 		call	KDbgTestModConds at PLT
- 25345      00
- 25346 17bdb 84C0     		testb	%al, %al
- 25347 17bdd 7434     		je	.L701
- 25348 17bdf 8B75E4   		movl	-28(%rbp), %esi
- 25349 17be2 8B5DE0   		movl	-32(%rbp), %ebx
- 25350 17be5 8B55DC   		movl	-36(%rbp), %edx
- 25351 17be8 8B45D8   		movl	-40(%rbp), %eax
- 25352 17beb 8B4DE8   		movl	-24(%rbp), %ecx
- 25353 17bee 890C24   		movl	%ecx, (%rsp)
- 25354 17bf1 4189F1   		movl	%esi, %r9d
- 25355 17bf4 4189D8   		movl	%ebx, %r8d
- 25356 17bf7 89D1     		movl	%edx, %ecx
- 25357 17bf9 89C2     		movl	%eax, %edx
- 25358 17bfb 488D3500 		leaq	__func__.8545(%rip), %rsi
- 25358      000000
- 25359 17c02 488D3D00 		leaq	.LC17(%rip), %rdi
- 25359      000000
- 25360 17c09 B8000000 		movl	$0, %eax
- 25360      00
- 25361 17c0e E8000000 		call	KDbgMsg at PLT
- 25361      00
- 25362              	.L701:
-2575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: passed\n",__func__));
- 25363              		.loc 2 2575 0
- 25364 17c13 E8000000 		call	KDbgWriterGet at PLT
- 25364      00
- 25365 17c18 4885C0   		testq	%rax, %rax
- 25366 17c1b 7433     		je	.L703
- 25367 17c1d BF040000 		movl	$4, %edi
- 25367      00
- 25368 17c22 E8000000 		call	KDbgCondToFlag at PLT
- 25368      00
- 25369 17c27 4889C6   		movq	%rax, %rsi
- 25370 17c2a BF100000 		movl	$16, %edi
- 25370      00
- 25371 17c2f E8000000 		call	KDbgTestModConds at PLT
- 25371      00
- 25372 17c34 84C0     		testb	%al, %al
- 25373 17c36 7418     		je	.L703
- 25374 17c38 488D3500 		leaq	__func__.8545(%rip), %rsi
- 25374      000000
- 25375 17c3f 488D3D00 		leaq	.LC18(%rip), %rdi
- 25375      000000
- 25376 17c46 B8000000 		movl	$0, %eax
- 25376      00
- 25377 17c4b E8000000 		call	KDbgMsg at PLT
- 25377      00
- 25378              	.L703:
-2576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ret;
- 25379              		.loc 2 2576 0
- 25380 17c50 0FB645EF 		movzbl	-17(%rbp), %eax
-2577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 761
-
-
- 25381              		.loc 2 2577 0
- 25382 17c54 4883C438 		addq	$56, %rsp
- 25383 17c58 5B       		popq	%rbx
- 25384 17c59 C9       		leave
- 25385 17c5a C3       		ret
- 25386              		.cfi_endproc
- 25387              	.LFE585:
- 25388              		.size	KAESBlockCipherVecProcessorSupport, .-KAESBlockCipherVecProcessorSupport
- 25389              		.section	.data.rel.ro.local,"aw", at progbits
- 25390              		.align 32
- 25391              		.type	KAESBlockCipherVec_vt_, @object
- 25392              		.size	KAESBlockCipherVec_vt_, 64
- 25393              	KAESBlockCipherVec_vt_:
- 25394 0000 01000000 		.long	1
- 25395 0004 01000000 		.long	1
- 25396 0008 00000000 		.quad	KAESBlockCipherVecDestroy
- 25396      00000000 
- 25397 0010 00000000 		.quad	KAESBlockCipherVecBlockSize
- 25397      00000000 
- 25398 0018 00000000 		.quad	KAESBlockCipherVecKeySize
- 25398      00000000 
- 25399 0020 00000000 		.quad	KAESBlockCipherVecSetEncryptKey
- 25399      00000000 
- 25400 0028 00000000 		.quad	KAESBlockCipherVecSetDecryptKey
- 25400      00000000 
- 25401 0030 00000000 		.quad	KAESBlockCipherVecEncrypt
- 25401      00000000 
- 25402 0038 00000000 		.quad	KAESBlockCipherVecDecrypt
- 25402      00000000 
- 25403              		.section	.rodata
- 25404              	.LC19:
- 25405 04df 25733A20 		.string	"%s: %p\n"
- 25405      25700A00 
- 25406              		.text
- 25407              	.globl KAESBlockCipherVecMake
- 25408              		.type	KAESBlockCipherVecMake, @function
- 25409              	KAESBlockCipherVecMake:
- 25410              	.LFB586:
-2618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 25411              		.loc 2 2618 0
- 25412              		.cfi_startproc
- 25413 17c5b 55       		pushq	%rbp
- 25414              	.LCFI36:
- 25415              		.cfi_def_cfa_offset 16
- 25416 17c5c 4889E5   		movq	%rsp, %rbp
- 25417              		.cfi_offset 6, -16
- 25418              	.LCFI37:
- 25419              		.cfi_def_cfa_register 6
- 25420 17c5f 4883EC20 		subq	$32, %rsp
- 25421 17c63 48897DE8 		movq	%rdi, -24(%rbp)
-2621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: %p\n",__func__,new_obj));
- 25422              		.loc 2 2621 0
- 25423 17c67 E8000000 		call	KDbgWriterGet at PLT
- 25423      00
- 25424 17c6c 4885C0   		testq	%rax, %rax
- 25425 17c6f 743A     		je	.L707
- 25426 17c71 BF040000 		movl	$4, %edi
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 762
-
-
- 25426      00
- 25427 17c76 E8000000 		call	KDbgCondToFlag at PLT
- 25427      00
- 25428 17c7b 4889C6   		movq	%rax, %rsi
- 25429 17c7e BF100000 		movl	$16, %edi
- 25429      00
- 25430 17c83 E8000000 		call	KDbgTestModConds at PLT
- 25430      00
- 25431 17c88 84C0     		testb	%al, %al
- 25432 17c8a 741F     		je	.L707
- 25433 17c8c 488B45E8 		movq	-24(%rbp), %rax
- 25434 17c90 4889C2   		movq	%rax, %rdx
- 25435 17c93 488D3500 		leaq	__func__.8570(%rip), %rsi
- 25435      000000
- 25436 17c9a 488D3D00 		leaq	.LC19(%rip), %rdi
- 25436      000000
- 25437 17ca1 B8000000 		movl	$0, %eax
- 25437      00
- 25438 17ca6 E8000000 		call	KDbgMsg at PLT
- 25438      00
- 25439              	.L707:
-2624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (new_obj == NULL)
- 25440              		.loc 2 2624 0
- 25441 17cab 48837DE8 		cmpq	$0, -24(%rbp)
- 25441      00
- 25442 17cb0 7522     		jne	.L708
-2625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
- 25443              		.loc 2 2625 0
- 25444 17cb2 B9410A00 		movl	$2625, %ecx
- 25444      00
- 25445 17cb7 488D1500 		leaq	__func__.8570(%rip), %rdx
- 25445      000000
- 25446 17cbe 488D3500 		leaq	.LC15(%rip), %rsi
- 25446      000000
- 25447 17cc5 BF878F00 		movl	$-2030006393, %edi
- 25447      87
- 25448 17cca E8000000 		call	SetRCFileFuncLine at PLT
- 25448      00
- 25449 17ccf 8945FC   		movl	%eax, -4(%rbp)
- 25450 17cd2 EB53     		jmp	.L709
- 25451              	.L708:
-2629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         *new_obj = NULL;
- 25452              		.loc 2 2629 0
- 25453 17cd4 488B45E8 		movq	-24(%rbp), %rax
- 25454 17cd8 48C70000 		movq	$0, (%rax)
- 25454      000000
-2632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ( ! AESBCMEMBER(ProcessorSupport)())
- 25455              		.loc 2 2632 0
- 25456 17cdf B8000000 		movl	$0, %eax
- 25456      00
- 25457 17ce4 E8ACFEFF 		call	KAESBlockCipherVecProcessorSupport
- 25457      FF
- 25458 17ce9 83F001   		xorl	$1, %eax
- 25459 17cec 84C0     		testb	%al, %al
- 25460 17cee 7422     		je	.L710
-2633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
- 25461              		.loc 2 2633 0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 763
-
-
- 25462 17cf0 B9490A00 		movl	$2633, %ecx
- 25462      00
- 25463 17cf5 488D1500 		leaq	__func__.8570(%rip), %rdx
- 25463      000000
- 25464 17cfc 488D3500 		leaq	.LC15(%rip), %rsi
- 25464      000000
- 25465 17d03 BF038500 		movl	$-2030009085, %edi
- 25465      87
- 25466 17d08 E8000000 		call	SetRCFileFuncLine at PLT
- 25466      00
- 25467 17d0d 8945FC   		movl	%eax, -4(%rbp)
- 25468 17d10 EB15     		jmp	.L709
- 25469              	.L710:
-2637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = 0;
- 25470              		.loc 2 2637 0
- 25471 17d12 C745FC00 		movl	$0, -4(%rbp)
- 25471      000000
-2638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             *new_obj = (KBlockCipher*)&(AESBCMEMBER(_vt_));
- 25472              		.loc 2 2638 0
- 25473 17d19 488D1500 		leaq	KAESBlockCipherVec_vt_(%rip), %rdx
- 25473      000000
- 25474 17d20 488B45E8 		movq	-24(%rbp), %rax
- 25475 17d24 488910   		movq	%rdx, (%rax)
- 25476              	.L709:
-2641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 25477              		.loc 2 2641 0
- 25478 17d27 8B45FC   		movl	-4(%rbp), %eax
- 25479              		.loc 2 2642 0
- 25480 17d2a C9       		leave
- 25481 17d2b C3       		ret
- 25482              		.cfi_endproc
- 25483              	.LFE586:
- 25484              		.size	KAESBlockCipherVecMake, .-KAESBlockCipherVecMake
- 25485              		.section	.rodata
- 25486 04e7 00000000 		.align 16
- 25486      00000000 
- 25486      00
- 25487              		.type	__func__.8570, @object
- 25488              		.size	__func__.8570, 23
- 25489              	__func__.8570:
- 25490 04f0 4B414553 		.string	"KAESBlockCipherVecMake"
- 25490      426C6F63 
- 25490      6B436970 
- 25490      68657256 
- 25490      65634D61 
- 25491 0507 00000000 		.align 16
- 25491      00000000 
- 25491      00
- 25492              		.type	__PRETTY_FUNCTION__.8571, @object
- 25493              		.size	__PRETTY_FUNCTION__.8571, 23
- 25494              	__PRETTY_FUNCTION__.8571:
- 25495 0510 4B414553 		.string	"KAESBlockCipherVecMake"
- 25495      426C6F63 
- 25495      6B436970 
- 25495      68657256 
- 25495      65634D61 
- 25496 0527 00000000 		.align 32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 764
-
-
- 25496      00000000 
- 25496      00000000 
- 25496      00000000 
- 25496      00000000 
- 25497              		.type	__func__.8545, @object
- 25498              		.size	__func__.8545, 35
- 25499              	__func__.8545:
- 25500 0540 4B414553 		.string	"KAESBlockCipherVecProcessorSupport"
- 25500      426C6F63 
- 25500      6B436970 
- 25500      68657256 
- 25500      65635072 
- 25501 0563 00000000 		.align 16
- 25501      00000000 
- 25501      00000000 
- 25501      00
- 25502              		.type	__PRETTY_FUNCTION__.8521, @object
- 25503              		.size	__PRETTY_FUNCTION__.8521, 26
- 25504              	__PRETTY_FUNCTION__.8521:
- 25505 0570 4B414553 		.string	"KAESBlockCipherVecDecrypt"
- 25505      426C6F63 
- 25505      6B436970 
- 25505      68657256 
- 25505      65634465 
- 25506 058a 00000000 		.align 16
- 25506      0000
- 25507              		.type	__PRETTY_FUNCTION__.8500, @object
- 25508              		.size	__PRETTY_FUNCTION__.8500, 26
- 25509              	__PRETTY_FUNCTION__.8500:
- 25510 0590 4B414553 		.string	"KAESBlockCipherVecEncrypt"
- 25510      426C6F63 
- 25510      6B436970 
- 25510      68657256 
- 25510      6563456E 
- 25511 05aa 00000000 		.align 16
- 25511      0000
- 25512              		.type	ShiftRowTable.6741, @object
- 25513              		.size	ShiftRowTable.6741, 16
- 25514              	ShiftRowTable.6741:
- 25515 05b0 00       		.byte	0
- 25516 05b1 05       		.byte	5
- 25517 05b2 0A       		.byte	10
- 25518 05b3 0F       		.byte	15
- 25519 05b4 04       		.byte	4
- 25520 05b5 09       		.byte	9
- 25521 05b6 0E       		.byte	14
- 25522 05b7 03       		.byte	3
- 25523 05b8 08       		.byte	8
- 25524 05b9 0D       		.byte	13
- 25525 05ba 02       		.byte	2
- 25526 05bb 07       		.byte	7
- 25527 05bc 0C       		.byte	12
- 25528 05bd 01       		.byte	1
- 25529 05be 06       		.byte	6
- 25530 05bf 0B       		.byte	11
- 25531              		.align 16
- 25532              		.type	ShiftRowTable.6768, @object
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 765
-
-
- 25533              		.size	ShiftRowTable.6768, 16
- 25534              	ShiftRowTable.6768:
- 25535 05c0 01       		.byte	1
- 25536 05c1 02       		.byte	2
- 25537 05c2 03       		.byte	3
- 25538 05c3 00       		.byte	0
- 25539 05c4 05       		.byte	5
- 25540 05c5 06       		.byte	6
- 25541 05c6 07       		.byte	7
- 25542 05c7 04       		.byte	4
- 25543 05c8 09       		.byte	9
- 25544 05c9 0A       		.byte	10
- 25545 05ca 0B       		.byte	11
- 25546 05cb 08       		.byte	8
- 25547 05cc 0D       		.byte	13
- 25548 05cd 0E       		.byte	14
- 25549 05ce 0F       		.byte	15
- 25550 05cf 0C       		.byte	12
- 25551 05d0 00000000 		.align 32
- 25551      00000000 
- 25551      00000000 
- 25551      00000000 
- 25552              		.type	__func__.8464, @object
- 25553              		.size	__func__.8464, 32
- 25554              	__func__.8464:
- 25555 05e0 4B414553 		.string	"KAESBlockCipherVecSetEncryptKey"
- 25555      426C6F63 
- 25555      6B436970 
- 25555      68657256 
- 25555      65635365 
- 25556              		.align 32
- 25557              		.type	__PRETTY_FUNCTION__.8463, @object
- 25558              		.size	__PRETTY_FUNCTION__.8463, 32
- 25559              	__PRETTY_FUNCTION__.8463:
- 25560 0600 4B414553 		.string	"KAESBlockCipherVecSetEncryptKey"
- 25560      426C6F63 
- 25560      6B436970 
- 25560      68657256 
- 25560      65635365 
- 25561              		.align 16
- 25562              		.type	InvShiftRowTable.6750, @object
- 25563              		.size	InvShiftRowTable.6750, 16
- 25564              	InvShiftRowTable.6750:
- 25565 0620 00       		.byte	0
- 25566 0621 0D       		.byte	13
- 25567 0622 0A       		.byte	10
- 25568 0623 07       		.byte	7
- 25569 0624 04       		.byte	4
- 25570 0625 01       		.byte	1
- 25571 0626 0E       		.byte	14
- 25572 0627 0B       		.byte	11
- 25573 0628 08       		.byte	8
- 25574 0629 05       		.byte	5
- 25575 062a 02       		.byte	2
- 25576 062b 0F       		.byte	15
- 25577 062c 0C       		.byte	12
- 25578 062d 09       		.byte	9
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 766
-
-
- 25579 062e 06       		.byte	6
- 25580 062f 03       		.byte	3
- 25581              		.text
- 25582              	.Letext0:
- 25583              		.section	.debug_loc,"", at progbits
- 25584              	.Ldebug_loc0:
- 25585              	.LLST0:
- 25586 0000 00000000 		.quad	.LFB509-.Ltext0
- 25586      00000000 
- 25587 0008 01000000 		.quad	.LCFI0-.Ltext0
- 25587      00000000 
- 25588 0010 0200     		.value	0x2
- 25589 0012 77       		.byte	0x77
- 25590 0013 08       		.sleb128 8
- 25591 0014 01000000 		.quad	.LCFI0-.Ltext0
- 25591      00000000 
- 25592 001c 04000000 		.quad	.LCFI1-.Ltext0
- 25592      00000000 
- 25593 0024 0200     		.value	0x2
- 25594 0026 77       		.byte	0x77
- 25595 0027 10       		.sleb128 16
- 25596 0028 04000000 		.quad	.LCFI1-.Ltext0
- 25596      00000000 
- 25597 0030 14000000 		.quad	.LFE509-.Ltext0
- 25597      00000000 
- 25598 0038 0200     		.value	0x2
- 25599 003a 76       		.byte	0x76
- 25600 003b 10       		.sleb128 16
- 25601 003c 00000000 		.quad	0x0
- 25601      00000000 
- 25602 0044 00000000 		.quad	0x0
- 25602      00000000 
- 25603              	.LLST1:
- 25604 004c 14000000 		.quad	.LFB563-.Ltext0
- 25604      00000000 
- 25605 0054 15000000 		.quad	.LCFI2-.Ltext0
- 25605      00000000 
- 25606 005c 0200     		.value	0x2
- 25607 005e 77       		.byte	0x77
- 25608 005f 08       		.sleb128 8
- 25609 0060 15000000 		.quad	.LCFI2-.Ltext0
- 25609      00000000 
- 25610 0068 18000000 		.quad	.LCFI3-.Ltext0
- 25610      00000000 
- 25611 0070 0200     		.value	0x2
- 25612 0072 77       		.byte	0x77
- 25613 0073 10       		.sleb128 16
- 25614 0074 18000000 		.quad	.LCFI3-.Ltext0
- 25614      00000000 
- 25615 007c 1E7C0000 		.quad	.LFE563-.Ltext0
- 25615      00000000 
- 25616 0084 0200     		.value	0x2
- 25617 0086 76       		.byte	0x76
- 25618 0087 10       		.sleb128 16
- 25619 0088 00000000 		.quad	0x0
- 25619      00000000 
- 25620 0090 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 767
-
-
- 25620      00000000 
- 25621              	.LLST2:
- 25622 0098 1E7C0000 		.quad	.LFB564-.Ltext0
- 25622      00000000 
- 25623 00a0 1F7C0000 		.quad	.LCFI4-.Ltext0
- 25623      00000000 
- 25624 00a8 0200     		.value	0x2
- 25625 00aa 77       		.byte	0x77
- 25626 00ab 08       		.sleb128 8
- 25627 00ac 1F7C0000 		.quad	.LCFI4-.Ltext0
- 25627      00000000 
- 25628 00b4 227C0000 		.quad	.LCFI5-.Ltext0
- 25628      00000000 
- 25629 00bc 0200     		.value	0x2
- 25630 00be 77       		.byte	0x77
- 25631 00bf 10       		.sleb128 16
- 25632 00c0 227C0000 		.quad	.LCFI5-.Ltext0
- 25632      00000000 
- 25633 00c8 56CC0000 		.quad	.LFE564-.Ltext0
- 25633      00000000 
- 25634 00d0 0200     		.value	0x2
- 25635 00d2 76       		.byte	0x76
- 25636 00d3 10       		.sleb128 16
- 25637 00d4 00000000 		.quad	0x0
- 25637      00000000 
- 25638 00dc 00000000 		.quad	0x0
- 25638      00000000 
- 25639              	.LLST3:
- 25640 00e4 56CC0000 		.quad	.LFB565-.Ltext0
- 25640      00000000 
- 25641 00ec 57CC0000 		.quad	.LCFI6-.Ltext0
- 25641      00000000 
- 25642 00f4 0200     		.value	0x2
- 25643 00f6 77       		.byte	0x77
- 25644 00f7 08       		.sleb128 8
- 25645 00f8 57CC0000 		.quad	.LCFI6-.Ltext0
- 25645      00000000 
- 25646 0100 5ACC0000 		.quad	.LCFI7-.Ltext0
- 25646      00000000 
- 25647 0108 0200     		.value	0x2
- 25648 010a 77       		.byte	0x77
- 25649 010b 10       		.sleb128 16
- 25650 010c 5ACC0000 		.quad	.LCFI7-.Ltext0
- 25650      00000000 
- 25651 0114 CF340100 		.quad	.LFE565-.Ltext0
- 25651      00000000 
- 25652 011c 0200     		.value	0x2
- 25653 011e 76       		.byte	0x76
- 25654 011f 10       		.sleb128 16
- 25655 0120 00000000 		.quad	0x0
- 25655      00000000 
- 25656 0128 00000000 		.quad	0x0
- 25656      00000000 
- 25657              	.LLST4:
- 25658 0130 CF340100 		.quad	.LFB566-.Ltext0
- 25658      00000000 
- 25659 0138 D0340100 		.quad	.LCFI8-.Ltext0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 768
-
-
- 25659      00000000 
- 25660 0140 0200     		.value	0x2
- 25661 0142 77       		.byte	0x77
- 25662 0143 08       		.sleb128 8
- 25663 0144 D0340100 		.quad	.LCFI8-.Ltext0
- 25663      00000000 
- 25664 014c D3340100 		.quad	.LCFI9-.Ltext0
- 25664      00000000 
- 25665 0154 0200     		.value	0x2
- 25666 0156 77       		.byte	0x77
- 25667 0157 10       		.sleb128 16
- 25668 0158 D3340100 		.quad	.LCFI9-.Ltext0
- 25668      00000000 
- 25669 0160 A23B0100 		.quad	.LFE566-.Ltext0
- 25669      00000000 
- 25670 0168 0200     		.value	0x2
- 25671 016a 76       		.byte	0x76
- 25672 016b 10       		.sleb128 16
- 25673 016c 00000000 		.quad	0x0
- 25673      00000000 
- 25674 0174 00000000 		.quad	0x0
- 25674      00000000 
- 25675              	.LLST5:
- 25676 017c A23B0100 		.quad	.LFB567-.Ltext0
- 25676      00000000 
- 25677 0184 A33B0100 		.quad	.LCFI10-.Ltext0
- 25677      00000000 
- 25678 018c 0200     		.value	0x2
- 25679 018e 77       		.byte	0x77
- 25680 018f 08       		.sleb128 8
- 25681 0190 A33B0100 		.quad	.LCFI10-.Ltext0
- 25681      00000000 
- 25682 0198 A63B0100 		.quad	.LCFI11-.Ltext0
- 25682      00000000 
- 25683 01a0 0200     		.value	0x2
- 25684 01a2 77       		.byte	0x77
- 25685 01a3 10       		.sleb128 16
- 25686 01a4 A63B0100 		.quad	.LCFI11-.Ltext0
- 25686      00000000 
- 25687 01ac CC3B0100 		.quad	.LFE567-.Ltext0
- 25687      00000000 
- 25688 01b4 0200     		.value	0x2
- 25689 01b6 76       		.byte	0x76
- 25690 01b7 10       		.sleb128 16
- 25691 01b8 00000000 		.quad	0x0
- 25691      00000000 
- 25692 01c0 00000000 		.quad	0x0
- 25692      00000000 
- 25693              	.LLST6:
- 25694 01c8 CC3B0100 		.quad	.LFB568-.Ltext0
- 25694      00000000 
- 25695 01d0 CD3B0100 		.quad	.LCFI12-.Ltext0
- 25695      00000000 
- 25696 01d8 0200     		.value	0x2
- 25697 01da 77       		.byte	0x77
- 25698 01db 08       		.sleb128 8
- 25699 01dc CD3B0100 		.quad	.LCFI12-.Ltext0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 769
-
-
- 25699      00000000 
- 25700 01e4 D03B0100 		.quad	.LCFI13-.Ltext0
- 25700      00000000 
- 25701 01ec 0200     		.value	0x2
- 25702 01ee 77       		.byte	0x77
- 25703 01ef 10       		.sleb128 16
- 25704 01f0 D03B0100 		.quad	.LCFI13-.Ltext0
- 25704      00000000 
- 25705 01f8 F63B0100 		.quad	.LFE568-.Ltext0
- 25705      00000000 
- 25706 0200 0200     		.value	0x2
- 25707 0202 76       		.byte	0x76
- 25708 0203 10       		.sleb128 16
- 25709 0204 00000000 		.quad	0x0
- 25709      00000000 
- 25710 020c 00000000 		.quad	0x0
- 25710      00000000 
- 25711              	.LLST7:
- 25712 0214 F63B0100 		.quad	.LFB569-.Ltext0
- 25712      00000000 
- 25713 021c F73B0100 		.quad	.LCFI14-.Ltext0
- 25713      00000000 
- 25714 0224 0200     		.value	0x2
- 25715 0226 77       		.byte	0x77
- 25716 0227 08       		.sleb128 8
- 25717 0228 F73B0100 		.quad	.LCFI14-.Ltext0
- 25717      00000000 
- 25718 0230 FA3B0100 		.quad	.LCFI15-.Ltext0
- 25718      00000000 
- 25719 0238 0200     		.value	0x2
- 25720 023a 77       		.byte	0x77
- 25721 023b 10       		.sleb128 16
- 25722 023c FA3B0100 		.quad	.LCFI15-.Ltext0
- 25722      00000000 
- 25723 0244 203C0100 		.quad	.LFE569-.Ltext0
- 25723      00000000 
- 25724 024c 0200     		.value	0x2
- 25725 024e 76       		.byte	0x76
- 25726 024f 10       		.sleb128 16
- 25727 0250 00000000 		.quad	0x0
- 25727      00000000 
- 25728 0258 00000000 		.quad	0x0
- 25728      00000000 
- 25729              	.LLST8:
- 25730 0260 203C0100 		.quad	.LFB573-.Ltext0
- 25730      00000000 
- 25731 0268 213C0100 		.quad	.LCFI16-.Ltext0
- 25731      00000000 
- 25732 0270 0200     		.value	0x2
- 25733 0272 77       		.byte	0x77
- 25734 0273 08       		.sleb128 8
- 25735 0274 213C0100 		.quad	.LCFI16-.Ltext0
- 25735      00000000 
- 25736 027c 243C0100 		.quad	.LCFI17-.Ltext0
- 25736      00000000 
- 25737 0284 0200     		.value	0x2
- 25738 0286 77       		.byte	0x77
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 770
-
-
- 25739 0287 10       		.sleb128 16
- 25740 0288 243C0100 		.quad	.LCFI17-.Ltext0
- 25740      00000000 
- 25741 0290 16590100 		.quad	.LFE573-.Ltext0
- 25741      00000000 
- 25742 0298 0200     		.value	0x2
- 25743 029a 76       		.byte	0x76
- 25744 029b 10       		.sleb128 16
- 25745 029c 00000000 		.quad	0x0
- 25745      00000000 
- 25746 02a4 00000000 		.quad	0x0
- 25746      00000000 
- 25747              	.LLST9:
- 25748 02ac 16590100 		.quad	.LFB577-.Ltext0
- 25748      00000000 
- 25749 02b4 17590100 		.quad	.LCFI18-.Ltext0
- 25749      00000000 
- 25750 02bc 0200     		.value	0x2
- 25751 02be 77       		.byte	0x77
- 25752 02bf 08       		.sleb128 8
- 25753 02c0 17590100 		.quad	.LCFI18-.Ltext0
- 25753      00000000 
- 25754 02c8 1A590100 		.quad	.LCFI19-.Ltext0
- 25754      00000000 
- 25755 02d0 0200     		.value	0x2
- 25756 02d2 77       		.byte	0x77
- 25757 02d3 10       		.sleb128 16
- 25758 02d4 1A590100 		.quad	.LCFI19-.Ltext0
- 25758      00000000 
- 25759 02dc 43780100 		.quad	.LFE577-.Ltext0
- 25759      00000000 
- 25760 02e4 0200     		.value	0x2
- 25761 02e6 76       		.byte	0x76
- 25762 02e7 10       		.sleb128 16
- 25763 02e8 00000000 		.quad	0x0
- 25763      00000000 
- 25764 02f0 00000000 		.quad	0x0
- 25764      00000000 
- 25765              	.LLST10:
- 25766 02f8 43780100 		.quad	.LFB578-.Ltext0
- 25766      00000000 
- 25767 0300 44780100 		.quad	.LCFI20-.Ltext0
- 25767      00000000 
- 25768 0308 0200     		.value	0x2
- 25769 030a 77       		.byte	0x77
- 25770 030b 08       		.sleb128 8
- 25771 030c 44780100 		.quad	.LCFI20-.Ltext0
- 25771      00000000 
- 25772 0314 47780100 		.quad	.LCFI21-.Ltext0
- 25772      00000000 
- 25773 031c 0200     		.value	0x2
- 25774 031e 77       		.byte	0x77
- 25775 031f 10       		.sleb128 16
- 25776 0320 47780100 		.quad	.LCFI21-.Ltext0
- 25776      00000000 
- 25777 0328 4D780100 		.quad	.LFE578-.Ltext0
- 25777      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 771
-
-
- 25778 0330 0200     		.value	0x2
- 25779 0332 76       		.byte	0x76
- 25780 0333 10       		.sleb128 16
- 25781 0334 00000000 		.quad	0x0
- 25781      00000000 
- 25782 033c 00000000 		.quad	0x0
- 25782      00000000 
- 25783              	.LLST11:
- 25784 0344 4D780100 		.quad	.LFB579-.Ltext0
- 25784      00000000 
- 25785 034c 4E780100 		.quad	.LCFI22-.Ltext0
- 25785      00000000 
- 25786 0354 0200     		.value	0x2
- 25787 0356 77       		.byte	0x77
- 25788 0357 08       		.sleb128 8
- 25789 0358 4E780100 		.quad	.LCFI22-.Ltext0
- 25789      00000000 
- 25790 0360 51780100 		.quad	.LCFI23-.Ltext0
- 25790      00000000 
- 25791 0368 0200     		.value	0x2
- 25792 036a 77       		.byte	0x77
- 25793 036b 10       		.sleb128 16
- 25794 036c 51780100 		.quad	.LCFI23-.Ltext0
- 25794      00000000 
- 25795 0374 58780100 		.quad	.LFE579-.Ltext0
- 25795      00000000 
- 25796 037c 0200     		.value	0x2
- 25797 037e 76       		.byte	0x76
- 25798 037f 10       		.sleb128 16
- 25799 0380 00000000 		.quad	0x0
- 25799      00000000 
- 25800 0388 00000000 		.quad	0x0
- 25800      00000000 
- 25801              	.LLST12:
- 25802 0390 58780100 		.quad	.LFB580-.Ltext0
- 25802      00000000 
- 25803 0398 59780100 		.quad	.LCFI24-.Ltext0
- 25803      00000000 
- 25804 03a0 0200     		.value	0x2
- 25805 03a2 77       		.byte	0x77
- 25806 03a3 08       		.sleb128 8
- 25807 03a4 59780100 		.quad	.LCFI24-.Ltext0
- 25807      00000000 
- 25808 03ac 5C780100 		.quad	.LCFI25-.Ltext0
- 25808      00000000 
- 25809 03b4 0200     		.value	0x2
- 25810 03b6 77       		.byte	0x77
- 25811 03b7 10       		.sleb128 16
- 25812 03b8 5C780100 		.quad	.LCFI25-.Ltext0
- 25812      00000000 
- 25813 03c0 63780100 		.quad	.LFE580-.Ltext0
- 25813      00000000 
- 25814 03c8 0200     		.value	0x2
- 25815 03ca 76       		.byte	0x76
- 25816 03cb 10       		.sleb128 16
- 25817 03cc 00000000 		.quad	0x0
- 25817      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 772
-
-
- 25818 03d4 00000000 		.quad	0x0
- 25818      00000000 
- 25819              	.LLST13:
- 25820 03dc 63780100 		.quad	.LFB581-.Ltext0
- 25820      00000000 
- 25821 03e4 64780100 		.quad	.LCFI26-.Ltext0
- 25821      00000000 
- 25822 03ec 0200     		.value	0x2
- 25823 03ee 77       		.byte	0x77
- 25824 03ef 08       		.sleb128 8
- 25825 03f0 64780100 		.quad	.LCFI26-.Ltext0
- 25825      00000000 
- 25826 03f8 67780100 		.quad	.LCFI27-.Ltext0
- 25826      00000000 
- 25827 0400 0200     		.value	0x2
- 25828 0402 77       		.byte	0x77
- 25829 0403 10       		.sleb128 16
- 25830 0404 67780100 		.quad	.LCFI27-.Ltext0
- 25830      00000000 
- 25831 040c 4C790100 		.quad	.LFE581-.Ltext0
- 25831      00000000 
- 25832 0414 0200     		.value	0x2
- 25833 0416 76       		.byte	0x76
- 25834 0417 10       		.sleb128 16
- 25835 0418 00000000 		.quad	0x0
- 25835      00000000 
- 25836 0420 00000000 		.quad	0x0
- 25836      00000000 
- 25837              	.LLST14:
- 25838 0428 4C790100 		.quad	.LFB582-.Ltext0
- 25838      00000000 
- 25839 0430 4D790100 		.quad	.LCFI28-.Ltext0
- 25839      00000000 
- 25840 0438 0200     		.value	0x2
- 25841 043a 77       		.byte	0x77
- 25842 043b 08       		.sleb128 8
- 25843 043c 4D790100 		.quad	.LCFI28-.Ltext0
- 25843      00000000 
- 25844 0444 50790100 		.quad	.LCFI29-.Ltext0
- 25844      00000000 
- 25845 044c 0200     		.value	0x2
- 25846 044e 77       		.byte	0x77
- 25847 044f 10       		.sleb128 16
- 25848 0450 50790100 		.quad	.LCFI29-.Ltext0
- 25848      00000000 
- 25849 0458 0F7A0100 		.quad	.LFE582-.Ltext0
- 25849      00000000 
- 25850 0460 0200     		.value	0x2
- 25851 0462 76       		.byte	0x76
- 25852 0463 10       		.sleb128 16
- 25853 0464 00000000 		.quad	0x0
- 25853      00000000 
- 25854 046c 00000000 		.quad	0x0
- 25854      00000000 
- 25855              	.LLST15:
- 25856 0474 0F7A0100 		.quad	.LFB583-.Ltext0
- 25856      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 773
-
-
- 25857 047c 107A0100 		.quad	.LCFI30-.Ltext0
- 25857      00000000 
- 25858 0484 0200     		.value	0x2
- 25859 0486 77       		.byte	0x77
- 25860 0487 08       		.sleb128 8
- 25861 0488 107A0100 		.quad	.LCFI30-.Ltext0
- 25861      00000000 
- 25862 0490 137A0100 		.quad	.LCFI31-.Ltext0
- 25862      00000000 
- 25863 0498 0200     		.value	0x2
- 25864 049a 77       		.byte	0x77
- 25865 049b 10       		.sleb128 16
- 25866 049c 137A0100 		.quad	.LCFI31-.Ltext0
- 25866      00000000 
- 25867 04a4 D27A0100 		.quad	.LFE583-.Ltext0
- 25867      00000000 
- 25868 04ac 0200     		.value	0x2
- 25869 04ae 76       		.byte	0x76
- 25870 04af 10       		.sleb128 16
- 25871 04b0 00000000 		.quad	0x0
- 25871      00000000 
- 25872 04b8 00000000 		.quad	0x0
- 25872      00000000 
- 25873              	.LLST16:
- 25874 04c0 D27A0100 		.quad	.LFB584-.Ltext0
- 25874      00000000 
- 25875 04c8 D37A0100 		.quad	.LCFI32-.Ltext0
- 25875      00000000 
- 25876 04d0 0200     		.value	0x2
- 25877 04d2 77       		.byte	0x77
- 25878 04d3 08       		.sleb128 8
- 25879 04d4 D37A0100 		.quad	.LCFI32-.Ltext0
- 25879      00000000 
- 25880 04dc D67A0100 		.quad	.LCFI33-.Ltext0
- 25880      00000000 
- 25881 04e4 0200     		.value	0x2
- 25882 04e6 77       		.byte	0x77
- 25883 04e7 10       		.sleb128 16
- 25884 04e8 D67A0100 		.quad	.LCFI33-.Ltext0
- 25884      00000000 
- 25885 04f0 957B0100 		.quad	.LFE584-.Ltext0
- 25885      00000000 
- 25886 04f8 0200     		.value	0x2
- 25887 04fa 76       		.byte	0x76
- 25888 04fb 10       		.sleb128 16
- 25889 04fc 00000000 		.quad	0x0
- 25889      00000000 
- 25890 0504 00000000 		.quad	0x0
- 25890      00000000 
- 25891              	.LLST17:
- 25892 050c 957B0100 		.quad	.LFB585-.Ltext0
- 25892      00000000 
- 25893 0514 967B0100 		.quad	.LCFI34-.Ltext0
- 25893      00000000 
- 25894 051c 0200     		.value	0x2
- 25895 051e 77       		.byte	0x77
- 25896 051f 08       		.sleb128 8
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 774
-
-
- 25897 0520 967B0100 		.quad	.LCFI34-.Ltext0
- 25897      00000000 
- 25898 0528 997B0100 		.quad	.LCFI35-.Ltext0
- 25898      00000000 
- 25899 0530 0200     		.value	0x2
- 25900 0532 77       		.byte	0x77
- 25901 0533 10       		.sleb128 16
- 25902 0534 997B0100 		.quad	.LCFI35-.Ltext0
- 25902      00000000 
- 25903 053c 5B7C0100 		.quad	.LFE585-.Ltext0
- 25903      00000000 
- 25904 0544 0200     		.value	0x2
- 25905 0546 76       		.byte	0x76
- 25906 0547 10       		.sleb128 16
- 25907 0548 00000000 		.quad	0x0
- 25907      00000000 
- 25908 0550 00000000 		.quad	0x0
- 25908      00000000 
- 25909              	.LLST18:
- 25910 0558 5B7C0100 		.quad	.LFB586-.Ltext0
- 25910      00000000 
- 25911 0560 5C7C0100 		.quad	.LCFI36-.Ltext0
- 25911      00000000 
- 25912 0568 0200     		.value	0x2
- 25913 056a 77       		.byte	0x77
- 25914 056b 08       		.sleb128 8
- 25915 056c 5C7C0100 		.quad	.LCFI36-.Ltext0
- 25915      00000000 
- 25916 0574 5F7C0100 		.quad	.LCFI37-.Ltext0
- 25916      00000000 
- 25917 057c 0200     		.value	0x2
- 25918 057e 77       		.byte	0x77
- 25919 057f 10       		.sleb128 16
- 25920 0580 5F7C0100 		.quad	.LCFI37-.Ltext0
- 25920      00000000 
- 25921 0588 2C7D0100 		.quad	.LFE586-.Ltext0
- 25921      00000000 
- 25922 0590 0200     		.value	0x2
- 25923 0592 76       		.byte	0x76
- 25924 0593 10       		.sleb128 16
- 25925 0594 00000000 		.quad	0x0
- 25925      00000000 
- 25926 059c 00000000 		.quad	0x0
- 25926      00000000 
- 25927              		.file 3 "/usr/include/stdint.h"
- 25928              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
- 25929              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 25930              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
- 25931              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 25932              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi-priv.h"
- 25933              		.file 9 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 25934              		.file 10 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
- 25935              		.section	.debug_info
- 25936 0000 95D50000 		.long	0xd595
- 25937 0004 0200     		.value	0x2
- 25938 0006 00000000 		.long	.Ldebug_abbrev0
- 25939 000a 08       		.byte	0x8
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 775
-
-
- 25940 000b 01       		.uleb128 0x1
- 25941 000c 00000000 		.long	.LASF413
- 25942 0010 01       		.byte	0x1
- 25943 0011 00000000 		.long	.LASF414
- 25944 0015 00000000 		.long	.LASF415
- 25945 0019 00000000 		.quad	.Ltext0
- 25945      00000000 
- 25946 0021 00000000 		.quad	.Letext0
- 25946      00000000 
- 25947 0029 00000000 		.long	.Ldebug_line0
- 25948 002d 02       		.uleb128 0x2
- 25949 002e 01       		.byte	0x1
- 25950 002f 06       		.byte	0x6
- 25951 0030 00000000 		.long	.LASF0
- 25952 0034 02       		.uleb128 0x2
- 25953 0035 02       		.byte	0x2
- 25954 0036 05       		.byte	0x5
- 25955 0037 00000000 		.long	.LASF1
- 25956 003b 03       		.uleb128 0x3
- 25957 003c 04       		.byte	0x4
- 25958 003d 05       		.byte	0x5
- 25959 003e 696E7400 		.string	"int"
- 25960 0042 02       		.uleb128 0x2
- 25961 0043 08       		.byte	0x8
- 25962 0044 05       		.byte	0x5
- 25963 0045 00000000 		.long	.LASF2
- 25964 0049 04       		.uleb128 0x4
- 25965 004a 00000000 		.long	.LASF5
- 25966 004e 03       		.byte	0x3
- 25967 004f 31       		.byte	0x31
- 25968 0050 54000000 		.long	0x54
- 25969 0054 02       		.uleb128 0x2
- 25970 0055 01       		.byte	0x1
- 25971 0056 08       		.byte	0x8
- 25972 0057 00000000 		.long	.LASF3
- 25973 005b 02       		.uleb128 0x2
- 25974 005c 02       		.byte	0x2
- 25975 005d 07       		.byte	0x7
- 25976 005e 00000000 		.long	.LASF4
- 25977 0062 04       		.uleb128 0x4
- 25978 0063 00000000 		.long	.LASF6
- 25979 0067 03       		.byte	0x3
- 25980 0068 34       		.byte	0x34
- 25981 0069 6D000000 		.long	0x6d
- 25982 006d 02       		.uleb128 0x2
- 25983 006e 04       		.byte	0x4
- 25984 006f 07       		.byte	0x7
- 25985 0070 00000000 		.long	.LASF7
- 25986 0074 04       		.uleb128 0x4
- 25987 0075 00000000 		.long	.LASF8
- 25988 0079 03       		.byte	0x3
- 25989 007a 38       		.byte	0x38
- 25990 007b 7F000000 		.long	0x7f
- 25991 007f 02       		.uleb128 0x2
- 25992 0080 08       		.byte	0x8
- 25993 0081 07       		.byte	0x7
- 25994 0082 00000000 		.long	.LASF9
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 776
-
-
- 25995 0086 04       		.uleb128 0x4
- 25996 0087 00000000 		.long	.LASF10
- 25997 008b 04       		.byte	0x4
- 25998 008c 30       		.byte	0x30
- 25999 008d 62000000 		.long	0x62
- 26000 0091 05       		.uleb128 0x5
- 26001 0092 08       		.byte	0x8
- 26002 0093 07       		.byte	0x7
- 26003 0094 02       		.uleb128 0x2
- 26004 0095 01       		.byte	0x1
- 26005 0096 06       		.byte	0x6
- 26006 0097 00000000 		.long	.LASF11
- 26007 009b 02       		.uleb128 0x2
- 26008 009c 08       		.byte	0x8
- 26009 009d 05       		.byte	0x5
- 26010 009e 00000000 		.long	.LASF12
- 26011 00a2 02       		.uleb128 0x2
- 26012 00a3 04       		.byte	0x4
- 26013 00a4 04       		.byte	0x4
- 26014 00a5 00000000 		.long	.LASF13
- 26015 00a9 06       		.uleb128 0x6
- 26016 00aa 3B000000 		.long	0x3b
- 26017 00ae 07       		.uleb128 0x7
- 26018 00af 08       		.byte	0x8
- 26019 00b0 B4000000 		.long	0xb4
- 26020 00b4 06       		.uleb128 0x6
- 26021 00b5 94000000 		.long	0x94
- 26022 00b9 08       		.uleb128 0x8
- 26023 00ba 08       		.byte	0x8
- 26024 00bb 07       		.uleb128 0x7
- 26025 00bc 08       		.byte	0x8
- 26026 00bd 94000000 		.long	0x94
- 26027 00c1 02       		.uleb128 0x2
- 26028 00c2 08       		.byte	0x8
- 26029 00c3 07       		.byte	0x7
- 26030 00c4 00000000 		.long	.LASF14
- 26031 00c8 09       		.uleb128 0x9
- 26032 00c9 94000000 		.long	0x94
- 26033 00cd D8000000 		.long	0xd8
- 26034 00d1 0A       		.uleb128 0xa
- 26035 00d2 91000000 		.long	0x91
- 26036 00d6 1F       		.byte	0x1f
- 26037 00d7 00       		.byte	0x0
- 26038 00d8 07       		.uleb128 0x7
- 26039 00d9 08       		.byte	0x8
- 26040 00da DE000000 		.long	0xde
- 26041 00de 0B       		.uleb128 0xb
- 26042 00df 02       		.uleb128 0x2
- 26043 00e0 08       		.byte	0x8
- 26044 00e1 04       		.byte	0x4
- 26045 00e2 00000000 		.long	.LASF15
- 26046 00e6 04       		.uleb128 0x4
- 26047 00e7 00000000 		.long	.LASF16
- 26048 00eb 05       		.byte	0x5
- 26049 00ec 26       		.byte	0x26
- 26050 00ed F1000000 		.long	0xf1
- 26051 00f1 0C       		.uleb128 0xc
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 777
-
-
- 26052 00f2 01       		.byte	0x1
- 26053 00f3 49000000 		.long	0x49
- 26054 00f7 02010000 		.long	0x102
- 26055 00fb 0A       		.uleb128 0xa
- 26056 00fc 91000000 		.long	0x91
- 26057 0100 0F       		.byte	0xf
- 26058 0101 00       		.byte	0x0
- 26059 0102 0D       		.uleb128 0xd
- 26060 0103 04       		.byte	0x4
- 26061 0104 06       		.byte	0x6
- 26062 0105 D6       		.byte	0xd6
- 26063 0106 83010000 		.long	0x183
- 26064 010a 0E       		.uleb128 0xe
- 26065 010b 00000000 		.long	.LASF17
- 26066 010f 7F       		.sleb128 -1
- 26067 0110 0E       		.uleb128 0xe
- 26068 0111 00000000 		.long	.LASF18
- 26069 0115 00       		.sleb128 0
- 26070 0116 0E       		.uleb128 0xe
- 26071 0117 00000000 		.long	.LASF19
- 26072 011b 01       		.sleb128 1
- 26073 011c 0E       		.uleb128 0xe
- 26074 011d 00000000 		.long	.LASF20
- 26075 0121 02       		.sleb128 2
- 26076 0122 0E       		.uleb128 0xe
- 26077 0123 00000000 		.long	.LASF21
- 26078 0127 03       		.sleb128 3
- 26079 0128 0E       		.uleb128 0xe
- 26080 0129 00000000 		.long	.LASF22
- 26081 012d 04       		.sleb128 4
- 26082 012e 0E       		.uleb128 0xe
- 26083 012f 00000000 		.long	.LASF23
- 26084 0133 05       		.sleb128 5
- 26085 0134 0E       		.uleb128 0xe
- 26086 0135 00000000 		.long	.LASF24
- 26087 0139 06       		.sleb128 6
- 26088 013a 0E       		.uleb128 0xe
- 26089 013b 00000000 		.long	.LASF25
- 26090 013f 07       		.sleb128 7
- 26091 0140 0E       		.uleb128 0xe
- 26092 0141 00000000 		.long	.LASF26
- 26093 0145 08       		.sleb128 8
- 26094 0146 0E       		.uleb128 0xe
- 26095 0147 00000000 		.long	.LASF27
- 26096 014b 09       		.sleb128 9
- 26097 014c 0E       		.uleb128 0xe
- 26098 014d 00000000 		.long	.LASF28
- 26099 0151 0A       		.sleb128 10
- 26100 0152 0E       		.uleb128 0xe
- 26101 0153 00000000 		.long	.LASF29
- 26102 0157 0B       		.sleb128 11
- 26103 0158 0E       		.uleb128 0xe
- 26104 0159 00000000 		.long	.LASF30
- 26105 015d 0C       		.sleb128 12
- 26106 015e 0E       		.uleb128 0xe
- 26107 015f 00000000 		.long	.LASF31
- 26108 0163 0D       		.sleb128 13
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 778
-
-
- 26109 0164 0E       		.uleb128 0xe
- 26110 0165 00000000 		.long	.LASF32
- 26111 0169 0E       		.sleb128 14
- 26112 016a 0E       		.uleb128 0xe
- 26113 016b 00000000 		.long	.LASF33
- 26114 016f 0F       		.sleb128 15
- 26115 0170 0E       		.uleb128 0xe
- 26116 0171 00000000 		.long	.LASF34
- 26117 0175 10       		.sleb128 16
- 26118 0176 0E       		.uleb128 0xe
- 26119 0177 00000000 		.long	.LASF35
- 26120 017b 11       		.sleb128 17
- 26121 017c 0E       		.uleb128 0xe
- 26122 017d 00000000 		.long	.LASF36
- 26123 0181 12       		.sleb128 18
- 26124 0182 00       		.byte	0x0
- 26125 0183 0F       		.uleb128 0xf
- 26126 0184 04       		.byte	0x4
- 26127 0185 06       		.byte	0x6
- 26128 0186 6701     		.value	0x167
- 26129 0188 B1010000 		.long	0x1b1
- 26130 018c 0E       		.uleb128 0xe
- 26131 018d 00000000 		.long	.LASF37
- 26132 0191 00       		.sleb128 0
- 26133 0192 0E       		.uleb128 0xe
- 26134 0193 00000000 		.long	.LASF38
- 26135 0197 01       		.sleb128 1
- 26136 0198 0E       		.uleb128 0xe
- 26137 0199 00000000 		.long	.LASF39
- 26138 019d 02       		.sleb128 2
- 26139 019e 0E       		.uleb128 0xe
- 26140 019f 00000000 		.long	.LASF40
- 26141 01a3 03       		.sleb128 3
- 26142 01a4 0E       		.uleb128 0xe
- 26143 01a5 00000000 		.long	.LASF41
- 26144 01a9 04       		.sleb128 4
- 26145 01aa 0E       		.uleb128 0xe
- 26146 01ab 00000000 		.long	.LASF42
- 26147 01af 05       		.sleb128 5
- 26148 01b0 00       		.byte	0x0
- 26149 01b1 04       		.uleb128 0x4
- 26150 01b2 00000000 		.long	.LASF43
- 26151 01b6 07       		.byte	0x7
- 26152 01b7 3B       		.byte	0x3b
- 26153 01b8 E6000000 		.long	0xe6
- 26154 01bc 04       		.uleb128 0x4
- 26155 01bd 00000000 		.long	.LASF44
- 26156 01c1 07       		.byte	0x7
- 26157 01c2 43       		.byte	0x43
- 26158 01c3 C7010000 		.long	0x1c7
- 26159 01c7 10       		.uleb128 0x10
- 26160 01c8 00000000 		.long	.LASF44
- 26161 01cc 08       		.byte	0x8
- 26162 01cd 07       		.byte	0x7
- 26163 01ce 43       		.byte	0x43
- 26164 01cf F0010000 		.long	0x1f0
- 26165 01d3 11       		.uleb128 0x11
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 779
-
-
- 26166 01d4 6D616A00 		.string	"maj"
- 26167 01d8 07       		.byte	0x7
- 26168 01d9 46       		.byte	0x46
- 26169 01da 62000000 		.long	0x62
- 26170 01de 02       		.byte	0x2
- 26171 01df 23       		.byte	0x23
- 26172 01e0 00       		.uleb128 0x0
- 26173 01e1 11       		.uleb128 0x11
- 26174 01e2 6D696E00 		.string	"min"
- 26175 01e6 07       		.byte	0x7
- 26176 01e7 47       		.byte	0x47
- 26177 01e8 62000000 		.long	0x62
- 26178 01ec 02       		.byte	0x2
- 26179 01ed 23       		.byte	0x23
- 26180 01ee 04       		.uleb128 0x4
- 26181 01ef 00       		.byte	0x0
- 26182 01f0 04       		.uleb128 0x4
- 26183 01f1 00000000 		.long	.LASF45
- 26184 01f5 07       		.byte	0x7
- 26185 01f6 52       		.byte	0x52
- 26186 01f7 FB010000 		.long	0x1fb
- 26187 01fb 10       		.uleb128 0x10
- 26188 01fc 00000000 		.long	.LASF45
- 26189 0200 40       		.byte	0x40
- 26190 0201 07       		.byte	0x7
- 26191 0202 52       		.byte	0x52
- 26192 0203 78020000 		.long	0x278
- 26193 0207 12       		.uleb128 0x12
- 26194 0208 00000000 		.long	.LASF46
- 26195 020c 07       		.byte	0x7
- 26196 020d 5E       		.byte	0x5e
- 26197 020e BC010000 		.long	0x1bc
- 26198 0212 02       		.byte	0x2
- 26199 0213 23       		.byte	0x23
- 26200 0214 00       		.uleb128 0x0
- 26201 0215 12       		.uleb128 0x12
- 26202 0216 00000000 		.long	.LASF47
- 26203 021a 07       		.byte	0x7
- 26204 021b 63       		.byte	0x63
- 26205 021c BC020000 		.long	0x2bc
- 26206 0220 02       		.byte	0x2
- 26207 0221 23       		.byte	0x23
- 26208 0222 08       		.uleb128 0x8
- 26209 0223 12       		.uleb128 0x12
- 26210 0224 00000000 		.long	.LASF48
- 26211 0228 07       		.byte	0x7
- 26212 0229 65       		.byte	0x65
- 26213 022a CD020000 		.long	0x2cd
- 26214 022e 02       		.byte	0x2
- 26215 022f 23       		.byte	0x23
- 26216 0230 10       		.uleb128 0x10
- 26217 0231 12       		.uleb128 0x12
- 26218 0232 00000000 		.long	.LASF49
- 26219 0236 07       		.byte	0x7
- 26220 0237 67       		.byte	0x67
- 26221 0238 CD020000 		.long	0x2cd
- 26222 023c 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 780
-
-
- 26223 023d 23       		.byte	0x23
- 26224 023e 18       		.uleb128 0x18
- 26225 023f 12       		.uleb128 0x12
- 26226 0240 00000000 		.long	.LASF50
- 26227 0244 07       		.byte	0x7
- 26228 0245 69       		.byte	0x69
- 26229 0246 ED020000 		.long	0x2ed
- 26230 024a 02       		.byte	0x2
- 26231 024b 23       		.byte	0x23
- 26232 024c 20       		.uleb128 0x20
- 26233 024d 12       		.uleb128 0x12
- 26234 024e 00000000 		.long	.LASF51
- 26235 0252 07       		.byte	0x7
- 26236 0253 6D       		.byte	0x6d
- 26237 0254 ED020000 		.long	0x2ed
- 26238 0258 02       		.byte	0x2
- 26239 0259 23       		.byte	0x23
- 26240 025a 28       		.uleb128 0x28
- 26241 025b 12       		.uleb128 0x12
- 26242 025c 00000000 		.long	.LASF52
- 26243 0260 07       		.byte	0x7
- 26244 0261 71       		.byte	0x71
- 26245 0262 09030000 		.long	0x309
- 26246 0266 02       		.byte	0x2
- 26247 0267 23       		.byte	0x23
- 26248 0268 30       		.uleb128 0x30
- 26249 0269 12       		.uleb128 0x12
- 26250 026a 00000000 		.long	.LASF53
- 26251 026e 07       		.byte	0x7
- 26252 026f 75       		.byte	0x75
- 26253 0270 09030000 		.long	0x309
- 26254 0274 02       		.byte	0x2
- 26255 0275 23       		.byte	0x23
- 26256 0276 38       		.uleb128 0x38
- 26257 0277 00       		.byte	0x0
- 26258 0278 04       		.uleb128 0x4
- 26259 0279 00000000 		.long	.LASF54
- 26260 027d 07       		.byte	0x7
- 26261 027e 53       		.byte	0x53
- 26262 027f 83020000 		.long	0x283
- 26263 0283 13       		.uleb128 0x13
- 26264 0284 00000000 		.long	.LASF54
- 26265 0288 40       		.byte	0x40
- 26266 0289 07       		.byte	0x7
- 26267 028a 53       		.byte	0x53
- 26268 028b A5020000 		.long	0x2a5
- 26269 028f 14       		.uleb128 0x14
- 26270 0290 00000000 		.long	.LASF46
- 26271 0294 07       		.byte	0x7
- 26272 0295 7F       		.byte	0x7f
- 26273 0296 BC010000 		.long	0x1bc
- 26274 029a 15       		.uleb128 0x15
- 26275 029b 763100   		.string	"v1"
- 26276 029e 07       		.byte	0x7
- 26277 029f 80       		.byte	0x80
- 26278 02a0 F0010000 		.long	0x1f0
- 26279 02a4 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 781
-
-
- 26280 02a5 16       		.uleb128 0x16
- 26281 02a6 01       		.byte	0x1
- 26282 02a7 B1020000 		.long	0x2b1
- 26283 02ab 17       		.uleb128 0x17
- 26284 02ac B1020000 		.long	0x2b1
- 26285 02b0 00       		.byte	0x0
- 26286 02b1 07       		.uleb128 0x7
- 26287 02b2 08       		.byte	0x8
- 26288 02b3 B7020000 		.long	0x2b7
- 26289 02b7 06       		.uleb128 0x6
- 26290 02b8 78020000 		.long	0x278
- 26291 02bc 07       		.uleb128 0x7
- 26292 02bd 08       		.byte	0x8
- 26293 02be A5020000 		.long	0x2a5
- 26294 02c2 18       		.uleb128 0x18
- 26295 02c3 62000000 		.long	0x62
- 26296 02c7 CD020000 		.long	0x2cd
- 26297 02cb 19       		.uleb128 0x19
- 26298 02cc 00       		.byte	0x0
- 26299 02cd 07       		.uleb128 0x7
- 26300 02ce 08       		.byte	0x8
- 26301 02cf C2020000 		.long	0x2c2
- 26302 02d3 1A       		.uleb128 0x1a
- 26303 02d4 01       		.byte	0x1
- 26304 02d5 86000000 		.long	0x86
- 26305 02d9 ED020000 		.long	0x2ed
- 26306 02dd 17       		.uleb128 0x17
- 26307 02de B9000000 		.long	0xb9
- 26308 02e2 17       		.uleb128 0x17
- 26309 02e3 AE000000 		.long	0xae
- 26310 02e7 17       		.uleb128 0x17
- 26311 02e8 62000000 		.long	0x62
- 26312 02ec 00       		.byte	0x0
- 26313 02ed 07       		.uleb128 0x7
- 26314 02ee 08       		.byte	0x8
- 26315 02ef D3020000 		.long	0x2d3
- 26316 02f3 16       		.uleb128 0x16
- 26317 02f4 01       		.byte	0x1
- 26318 02f5 09030000 		.long	0x309
- 26319 02f9 17       		.uleb128 0x17
- 26320 02fa AE000000 		.long	0xae
- 26321 02fe 17       		.uleb128 0x17
- 26322 02ff BB000000 		.long	0xbb
- 26323 0303 17       		.uleb128 0x17
- 26324 0304 D8000000 		.long	0xd8
- 26325 0308 00       		.byte	0x0
- 26326 0309 07       		.uleb128 0x7
- 26327 030a 08       		.byte	0x8
- 26328 030b F3020000 		.long	0x2f3
- 26329 030f 04       		.uleb128 0x4
- 26330 0310 00000000 		.long	.LASF55
- 26331 0314 07       		.byte	0x7
- 26332 0315 84       		.byte	0x84
- 26333 0316 1A030000 		.long	0x31a
- 26334 031a 10       		.uleb128 0x10
- 26335 031b 00000000 		.long	.LASF55
- 26336 031f 40       		.byte	0x40
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 782
-
-
- 26337 0320 07       		.byte	0x7
- 26338 0321 84       		.byte	0x84
- 26339 0322 97030000 		.long	0x397
- 26340 0326 12       		.uleb128 0x12
- 26341 0327 00000000 		.long	.LASF46
- 26342 032b 07       		.byte	0x7
- 26343 032c 90       		.byte	0x90
- 26344 032d BC010000 		.long	0x1bc
- 26345 0331 02       		.byte	0x2
- 26346 0332 23       		.byte	0x23
- 26347 0333 00       		.uleb128 0x0
- 26348 0334 12       		.uleb128 0x12
- 26349 0335 00000000 		.long	.LASF47
- 26350 0339 07       		.byte	0x7
- 26351 033a 95       		.byte	0x95
- 26352 033b DB030000 		.long	0x3db
- 26353 033f 02       		.byte	0x2
- 26354 0340 23       		.byte	0x23
- 26355 0341 08       		.uleb128 0x8
- 26356 0342 12       		.uleb128 0x12
- 26357 0343 00000000 		.long	.LASF48
- 26358 0347 07       		.byte	0x7
- 26359 0348 97       		.byte	0x97
- 26360 0349 CD020000 		.long	0x2cd
- 26361 034d 02       		.byte	0x2
- 26362 034e 23       		.byte	0x23
- 26363 034f 10       		.uleb128 0x10
- 26364 0350 12       		.uleb128 0x12
- 26365 0351 00000000 		.long	.LASF49
- 26366 0355 07       		.byte	0x7
- 26367 0356 99       		.byte	0x99
- 26368 0357 CD020000 		.long	0x2cd
- 26369 035b 02       		.byte	0x2
- 26370 035c 23       		.byte	0x23
- 26371 035d 18       		.uleb128 0x18
- 26372 035e 12       		.uleb128 0x12
- 26373 035f 00000000 		.long	.LASF50
- 26374 0363 07       		.byte	0x7
- 26375 0364 9B       		.byte	0x9b
- 26376 0365 ED020000 		.long	0x2ed
- 26377 0369 02       		.byte	0x2
- 26378 036a 23       		.byte	0x23
- 26379 036b 20       		.uleb128 0x20
- 26380 036c 12       		.uleb128 0x12
- 26381 036d 00000000 		.long	.LASF51
- 26382 0371 07       		.byte	0x7
- 26383 0372 9F       		.byte	0x9f
- 26384 0373 ED020000 		.long	0x2ed
- 26385 0377 02       		.byte	0x2
- 26386 0378 23       		.byte	0x23
- 26387 0379 28       		.uleb128 0x28
- 26388 037a 12       		.uleb128 0x12
- 26389 037b 00000000 		.long	.LASF52
- 26390 037f 07       		.byte	0x7
- 26391 0380 A3       		.byte	0xa3
- 26392 0381 F6030000 		.long	0x3f6
- 26393 0385 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 783
-
-
- 26394 0386 23       		.byte	0x23
- 26395 0387 30       		.uleb128 0x30
- 26396 0388 12       		.uleb128 0x12
- 26397 0389 00000000 		.long	.LASF53
- 26398 038d 07       		.byte	0x7
- 26399 038e A6       		.byte	0xa6
- 26400 038f F6030000 		.long	0x3f6
- 26401 0393 02       		.byte	0x2
- 26402 0394 23       		.byte	0x23
- 26403 0395 38       		.uleb128 0x38
- 26404 0396 00       		.byte	0x0
- 26405 0397 04       		.uleb128 0x4
- 26406 0398 00000000 		.long	.LASF56
- 26407 039c 07       		.byte	0x7
- 26408 039d 85       		.byte	0x85
- 26409 039e A2030000 		.long	0x3a2
- 26410 03a2 13       		.uleb128 0x13
- 26411 03a3 00000000 		.long	.LASF56
- 26412 03a7 40       		.byte	0x40
- 26413 03a8 07       		.byte	0x7
- 26414 03a9 85       		.byte	0x85
- 26415 03aa C4030000 		.long	0x3c4
- 26416 03ae 14       		.uleb128 0x14
- 26417 03af 00000000 		.long	.LASF46
- 26418 03b3 07       		.byte	0x7
- 26419 03b4 AF       		.byte	0xaf
- 26420 03b5 BC010000 		.long	0x1bc
- 26421 03b9 15       		.uleb128 0x15
- 26422 03ba 763100   		.string	"v1"
- 26423 03bd 07       		.byte	0x7
- 26424 03be B0       		.byte	0xb0
- 26425 03bf 0F030000 		.long	0x30f
- 26426 03c3 00       		.byte	0x0
- 26427 03c4 16       		.uleb128 0x16
- 26428 03c5 01       		.byte	0x1
- 26429 03c6 D0030000 		.long	0x3d0
- 26430 03ca 17       		.uleb128 0x17
- 26431 03cb D0030000 		.long	0x3d0
- 26432 03cf 00       		.byte	0x0
- 26433 03d0 07       		.uleb128 0x7
- 26434 03d1 08       		.byte	0x8
- 26435 03d2 D6030000 		.long	0x3d6
- 26436 03d6 06       		.uleb128 0x6
- 26437 03d7 97030000 		.long	0x397
- 26438 03db 07       		.uleb128 0x7
- 26439 03dc 08       		.byte	0x8
- 26440 03dd C4030000 		.long	0x3c4
- 26441 03e1 1A       		.uleb128 0x1a
- 26442 03e2 01       		.byte	0x1
- 26443 03e3 B1010000 		.long	0x1b1
- 26444 03e7 F6030000 		.long	0x3f6
- 26445 03eb 17       		.uleb128 0x17
- 26446 03ec B1010000 		.long	0x1b1
- 26447 03f0 17       		.uleb128 0x17
- 26448 03f1 D8000000 		.long	0xd8
- 26449 03f5 00       		.byte	0x0
- 26450 03f6 07       		.uleb128 0x7
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 784
-
-
- 26451 03f7 08       		.byte	0x8
- 26452 03f8 E1030000 		.long	0x3e1
- 26453 03fc 04       		.uleb128 0x4
- 26454 03fd 00000000 		.long	.LASF57
- 26455 0401 08       		.byte	0x8
- 26456 0402 9D       		.byte	0x9d
- 26457 0403 49000000 		.long	0x49
- 26458 0407 04       		.uleb128 0x4
- 26459 0408 00000000 		.long	.LASF58
- 26460 040c 08       		.byte	0x8
- 26461 040d 9E       		.byte	0x9e
- 26462 040e 62000000 		.long	0x62
- 26463 0412 04       		.uleb128 0x4
- 26464 0413 00000000 		.long	.LASF59
- 26465 0417 08       		.byte	0x8
- 26466 0418 9F       		.byte	0x9f
- 26467 0419 1D040000 		.long	0x41d
- 26468 041d 13       		.uleb128 0x13
- 26469 041e 00000000 		.long	.LASF59
- 26470 0422 04       		.byte	0x4
- 26471 0423 08       		.byte	0x8
- 26472 0424 9F       		.byte	0x9f
- 26473 0425 40040000 		.long	0x440
- 26474 0429 14       		.uleb128 0x14
- 26475 042a 00000000 		.long	.LASF60
- 26476 042e 08       		.byte	0x8
- 26477 042f A2       		.byte	0xa2
- 26478 0430 07040000 		.long	0x407
- 26479 0434 14       		.uleb128 0x14
- 26480 0435 00000000 		.long	.LASF61
- 26481 0439 08       		.byte	0x8
- 26482 043a A3       		.byte	0xa3
- 26483 043b 40040000 		.long	0x440
- 26484 043f 00       		.byte	0x0
- 26485 0440 09       		.uleb128 0x9
- 26486 0441 FC030000 		.long	0x3fc
- 26487 0445 50040000 		.long	0x450
- 26488 0449 0A       		.uleb128 0xa
- 26489 044a 91000000 		.long	0x91
- 26490 044e 03       		.byte	0x3
- 26491 044f 00       		.byte	0x0
- 26492 0450 09       		.uleb128 0x9
- 26493 0451 FC030000 		.long	0x3fc
- 26494 0455 60040000 		.long	0x460
- 26495 0459 0A       		.uleb128 0xa
- 26496 045a 91000000 		.long	0x91
- 26497 045e 0F       		.byte	0xf
- 26498 045f 00       		.byte	0x0
- 26499 0460 04       		.uleb128 0x4
- 26500 0461 00000000 		.long	.LASF62
- 26501 0465 08       		.byte	0x8
- 26502 0466 AC       		.byte	0xac
- 26503 0467 E6000000 		.long	0xe6
- 26504 046b 04       		.uleb128 0x4
- 26505 046c 00000000 		.long	.LASF63
- 26506 0470 08       		.byte	0x8
- 26507 0471 B0       		.byte	0xb0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 785
-
-
- 26508 0472 76040000 		.long	0x476
- 26509 0476 1B       		.uleb128 0x1b
- 26510 0477 00000000 		.long	.LASF63
- 26511 047b 0001     		.value	0x100
- 26512 047d 08       		.byte	0x8
- 26513 047e B0       		.byte	0xb0
- 26514 047f A1040000 		.long	0x4a1
- 26515 0483 12       		.uleb128 0x12
- 26516 0484 00000000 		.long	.LASF64
- 26517 0488 08       		.byte	0x8
- 26518 0489 B3       		.byte	0xb3
- 26519 048a A1040000 		.long	0x4a1
- 26520 048e 02       		.byte	0x2
- 26521 048f 23       		.byte	0x23
- 26522 0490 00       		.uleb128 0x0
- 26523 0491 12       		.uleb128 0x12
- 26524 0492 00000000 		.long	.LASF65
- 26525 0496 08       		.byte	0x8
- 26526 0497 B4       		.byte	0xb4
- 26527 0498 62000000 		.long	0x62
- 26528 049c 03       		.byte	0x3
- 26529 049d 23       		.byte	0x23
- 26530 049e F001     		.uleb128 0xf0
- 26531 04a0 00       		.byte	0x0
- 26532 04a1 09       		.uleb128 0x9
- 26533 04a2 B1010000 		.long	0x1b1
- 26534 04a6 B1040000 		.long	0x4b1
- 26535 04aa 0A       		.uleb128 0xa
- 26536 04ab 91000000 		.long	0x91
- 26537 04af 0E       		.byte	0xe
- 26538 04b0 00       		.byte	0x0
- 26539 04b1 1C       		.uleb128 0x1c
- 26540 04b2 10       		.byte	0x10
- 26541 04b3 08       		.byte	0x8
- 26542 04b4 C0       		.byte	0xc0
- 26543 04b5 F1040000 		.long	0x4f1
- 26544 04b9 14       		.uleb128 0x14
- 26545 04ba 00000000 		.long	.LASF66
- 26546 04be 08       		.byte	0x8
- 26547 04bf C1       		.byte	0xc1
- 26548 04c0 B1010000 		.long	0x1b1
- 26549 04c4 15       		.uleb128 0x15
- 26550 04c5 75363400 		.string	"u64"
- 26551 04c9 08       		.byte	0x8
- 26552 04ca C2       		.byte	0xc2
- 26553 04cb F1040000 		.long	0x4f1
- 26554 04cf 14       		.uleb128 0x14
- 26555 04d0 00000000 		.long	.LASF67
- 26556 04d4 08       		.byte	0x8
- 26557 04d5 C3       		.byte	0xc3
- 26558 04d6 01050000 		.long	0x501
- 26559 04da 14       		.uleb128 0x14
- 26560 04db 00000000 		.long	.LASF61
- 26561 04df 08       		.byte	0x8
- 26562 04e0 C4       		.byte	0xc4
- 26563 04e1 50040000 		.long	0x450
- 26564 04e5 14       		.uleb128 0x14
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 786
-
-
- 26565 04e6 00000000 		.long	.LASF68
- 26566 04ea 08       		.byte	0x8
- 26567 04eb C5       		.byte	0xc5
- 26568 04ec 11050000 		.long	0x511
- 26569 04f0 00       		.byte	0x0
- 26570 04f1 09       		.uleb128 0x9
- 26571 04f2 74000000 		.long	0x74
- 26572 04f6 01050000 		.long	0x501
- 26573 04fa 0A       		.uleb128 0xa
- 26574 04fb 91000000 		.long	0x91
- 26575 04ff 01       		.byte	0x1
- 26576 0500 00       		.byte	0x0
- 26577 0501 09       		.uleb128 0x9
- 26578 0502 07040000 		.long	0x407
- 26579 0506 11050000 		.long	0x511
- 26580 050a 0A       		.uleb128 0xa
- 26581 050b 91000000 		.long	0x91
- 26582 050f 03       		.byte	0x3
- 26583 0510 00       		.byte	0x0
- 26584 0511 09       		.uleb128 0x9
- 26585 0512 FC030000 		.long	0x3fc
- 26586 0516 27050000 		.long	0x527
- 26587 051a 0A       		.uleb128 0xa
- 26588 051b 91000000 		.long	0x91
- 26589 051f 03       		.byte	0x3
- 26590 0520 0A       		.uleb128 0xa
- 26591 0521 91000000 		.long	0x91
- 26592 0525 03       		.byte	0x3
- 26593 0526 00       		.byte	0x0
- 26594 0527 04       		.uleb128 0x4
- 26595 0528 00000000 		.long	.LASF69
- 26596 052c 08       		.byte	0x8
- 26597 052d C6       		.byte	0xc6
- 26598 052e B1040000 		.long	0x4b1
- 26599 0532 04       		.uleb128 0x4
- 26600 0533 00000000 		.long	.LASF70
- 26601 0537 09       		.byte	0x9
- 26602 0538 40       		.byte	0x40
- 26603 0539 3D050000 		.long	0x53d
- 26604 053d 13       		.uleb128 0x13
- 26605 053e 00000000 		.long	.LASF70
- 26606 0542 40       		.byte	0x40
- 26607 0543 09       		.byte	0x9
- 26608 0544 40       		.byte	0x40
- 26609 0545 60050000 		.long	0x560
- 26610 0549 14       		.uleb128 0x14
- 26611 054a 00000000 		.long	.LASF71
- 26612 054e 09       		.byte	0x9
- 26613 054f 43       		.byte	0x43
- 26614 0550 78020000 		.long	0x278
- 26615 0554 15       		.uleb128 0x15
- 26616 0555 76656300 		.string	"vec"
- 26617 0559 09       		.byte	0x9
- 26618 055a 44       		.byte	0x44
- 26619 055b 97030000 		.long	0x397
- 26620 055f 00       		.byte	0x0
- 26621 0560 1D       		.uleb128 0x1d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 787
-
-
- 26622 0561 00000000 		.long	.LASF94
- 26623 0565 04       		.byte	0x4
- 26624 0566 0A       		.byte	0xa
- 26625 0567 5A       		.byte	0x5a
- 26626 0568 F1050000 		.long	0x5f1
- 26627 056c 0E       		.uleb128 0xe
- 26628 056d 00000000 		.long	.LASF72
- 26629 0571 00       		.sleb128 0
- 26630 0572 0E       		.uleb128 0xe
- 26631 0573 00000000 		.long	.LASF73
- 26632 0577 01       		.sleb128 1
- 26633 0578 0E       		.uleb128 0xe
- 26634 0579 00000000 		.long	.LASF74
- 26635 057d 02       		.sleb128 2
- 26636 057e 0E       		.uleb128 0xe
- 26637 057f 00000000 		.long	.LASF75
- 26638 0583 03       		.sleb128 3
- 26639 0584 0E       		.uleb128 0xe
- 26640 0585 00000000 		.long	.LASF76
- 26641 0589 04       		.sleb128 4
- 26642 058a 0E       		.uleb128 0xe
- 26643 058b 00000000 		.long	.LASF77
- 26644 058f 05       		.sleb128 5
- 26645 0590 0E       		.uleb128 0xe
- 26646 0591 00000000 		.long	.LASF78
- 26647 0595 06       		.sleb128 6
- 26648 0596 0E       		.uleb128 0xe
- 26649 0597 00000000 		.long	.LASF79
- 26650 059b 07       		.sleb128 7
- 26651 059c 0E       		.uleb128 0xe
- 26652 059d 00000000 		.long	.LASF80
- 26653 05a1 08       		.sleb128 8
- 26654 05a2 0E       		.uleb128 0xe
- 26655 05a3 00000000 		.long	.LASF81
- 26656 05a7 09       		.sleb128 9
- 26657 05a8 0E       		.uleb128 0xe
- 26658 05a9 00000000 		.long	.LASF82
- 26659 05ad 0A       		.sleb128 10
- 26660 05ae 0E       		.uleb128 0xe
- 26661 05af 00000000 		.long	.LASF83
- 26662 05b3 0B       		.sleb128 11
- 26663 05b4 0E       		.uleb128 0xe
- 26664 05b5 00000000 		.long	.LASF84
- 26665 05b9 0C       		.sleb128 12
- 26666 05ba 0E       		.uleb128 0xe
- 26667 05bb 00000000 		.long	.LASF85
- 26668 05bf 0D       		.sleb128 13
- 26669 05c0 0E       		.uleb128 0xe
- 26670 05c1 00000000 		.long	.LASF86
- 26671 05c5 0E       		.sleb128 14
- 26672 05c6 0E       		.uleb128 0xe
- 26673 05c7 00000000 		.long	.LASF87
- 26674 05cb 0E       		.sleb128 14
- 26675 05cc 0E       		.uleb128 0xe
- 26676 05cd 00000000 		.long	.LASF88
- 26677 05d1 0F       		.sleb128 15
- 26678 05d2 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 788
-
-
- 26679 05d3 00000000 		.long	.LASF89
- 26680 05d7 10       		.sleb128 16
- 26681 05d8 0E       		.uleb128 0xe
- 26682 05d9 00000000 		.long	.LASF90
- 26683 05dd 11       		.sleb128 17
- 26684 05de 0E       		.uleb128 0xe
- 26685 05df 00000000 		.long	.LASF91
- 26686 05e3 12       		.sleb128 18
- 26687 05e4 0E       		.uleb128 0xe
- 26688 05e5 00000000 		.long	.LASF92
- 26689 05e9 13       		.sleb128 19
- 26690 05ea 0E       		.uleb128 0xe
- 26691 05eb 00000000 		.long	.LASF93
- 26692 05ef 14       		.sleb128 20
- 26693 05f0 00       		.byte	0x0
- 26694 05f1 1D       		.uleb128 0x1d
- 26695 05f2 00000000 		.long	.LASF95
- 26696 05f6 04       		.byte	0x4
- 26697 05f7 0A       		.byte	0xa
- 26698 05f8 77       		.byte	0x77
- 26699 05f9 78070000 		.long	0x778
- 26700 05fd 0E       		.uleb128 0xe
- 26701 05fe 00000000 		.long	.LASF96
- 26702 0602 00       		.sleb128 0
- 26703 0603 0E       		.uleb128 0xe
- 26704 0604 00000000 		.long	.LASF97
- 26705 0608 01       		.sleb128 1
- 26706 0609 0E       		.uleb128 0xe
- 26707 060a 00000000 		.long	.LASF98
- 26708 060e 02       		.sleb128 2
- 26709 060f 0E       		.uleb128 0xe
- 26710 0610 00000000 		.long	.LASF99
- 26711 0614 03       		.sleb128 3
- 26712 0615 0E       		.uleb128 0xe
- 26713 0616 00000000 		.long	.LASF100
- 26714 061a 04       		.sleb128 4
- 26715 061b 0E       		.uleb128 0xe
- 26716 061c 00000000 		.long	.LASF101
- 26717 0620 05       		.sleb128 5
- 26718 0621 0E       		.uleb128 0xe
- 26719 0622 00000000 		.long	.LASF102
- 26720 0626 06       		.sleb128 6
- 26721 0627 0E       		.uleb128 0xe
- 26722 0628 00000000 		.long	.LASF103
- 26723 062c 07       		.sleb128 7
- 26724 062d 0E       		.uleb128 0xe
- 26725 062e 00000000 		.long	.LASF104
- 26726 0632 08       		.sleb128 8
- 26727 0633 0E       		.uleb128 0xe
- 26728 0634 00000000 		.long	.LASF105
- 26729 0638 09       		.sleb128 9
- 26730 0639 0E       		.uleb128 0xe
- 26731 063a 00000000 		.long	.LASF106
- 26732 063e 0A       		.sleb128 10
- 26733 063f 0E       		.uleb128 0xe
- 26734 0640 00000000 		.long	.LASF107
- 26735 0644 0B       		.sleb128 11
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 789
-
-
- 26736 0645 0E       		.uleb128 0xe
- 26737 0646 00000000 		.long	.LASF108
- 26738 064a 0C       		.sleb128 12
- 26739 064b 0E       		.uleb128 0xe
- 26740 064c 00000000 		.long	.LASF109
- 26741 0650 0D       		.sleb128 13
- 26742 0651 0E       		.uleb128 0xe
- 26743 0652 00000000 		.long	.LASF110
- 26744 0656 0E       		.sleb128 14
- 26745 0657 0E       		.uleb128 0xe
- 26746 0658 00000000 		.long	.LASF111
- 26747 065c 0F       		.sleb128 15
- 26748 065d 0E       		.uleb128 0xe
- 26749 065e 00000000 		.long	.LASF112
- 26750 0662 10       		.sleb128 16
- 26751 0663 0E       		.uleb128 0xe
- 26752 0664 00000000 		.long	.LASF113
- 26753 0668 11       		.sleb128 17
- 26754 0669 0E       		.uleb128 0xe
- 26755 066a 00000000 		.long	.LASF114
- 26756 066e 12       		.sleb128 18
- 26757 066f 0E       		.uleb128 0xe
- 26758 0670 00000000 		.long	.LASF115
- 26759 0674 13       		.sleb128 19
- 26760 0675 0E       		.uleb128 0xe
- 26761 0676 00000000 		.long	.LASF116
- 26762 067a 14       		.sleb128 20
- 26763 067b 0E       		.uleb128 0xe
- 26764 067c 00000000 		.long	.LASF117
- 26765 0680 15       		.sleb128 21
- 26766 0681 0E       		.uleb128 0xe
- 26767 0682 00000000 		.long	.LASF118
- 26768 0686 16       		.sleb128 22
- 26769 0687 0E       		.uleb128 0xe
- 26770 0688 00000000 		.long	.LASF119
- 26771 068c 17       		.sleb128 23
- 26772 068d 0E       		.uleb128 0xe
- 26773 068e 00000000 		.long	.LASF120
- 26774 0692 18       		.sleb128 24
- 26775 0693 0E       		.uleb128 0xe
- 26776 0694 00000000 		.long	.LASF121
- 26777 0698 19       		.sleb128 25
- 26778 0699 0E       		.uleb128 0xe
- 26779 069a 00000000 		.long	.LASF122
- 26780 069e 1A       		.sleb128 26
- 26781 069f 0E       		.uleb128 0xe
- 26782 06a0 00000000 		.long	.LASF123
- 26783 06a4 1B       		.sleb128 27
- 26784 06a5 0E       		.uleb128 0xe
- 26785 06a6 00000000 		.long	.LASF124
- 26786 06aa 1C       		.sleb128 28
- 26787 06ab 0E       		.uleb128 0xe
- 26788 06ac 00000000 		.long	.LASF125
- 26789 06b0 1D       		.sleb128 29
- 26790 06b1 0E       		.uleb128 0xe
- 26791 06b2 00000000 		.long	.LASF126
- 26792 06b6 1E       		.sleb128 30
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 790
-
-
- 26793 06b7 0E       		.uleb128 0xe
- 26794 06b8 00000000 		.long	.LASF127
- 26795 06bc 1F       		.sleb128 31
- 26796 06bd 0E       		.uleb128 0xe
- 26797 06be 00000000 		.long	.LASF128
- 26798 06c2 20       		.sleb128 32
- 26799 06c3 0E       		.uleb128 0xe
- 26800 06c4 00000000 		.long	.LASF129
- 26801 06c8 21       		.sleb128 33
- 26802 06c9 0E       		.uleb128 0xe
- 26803 06ca 00000000 		.long	.LASF130
- 26804 06ce 22       		.sleb128 34
- 26805 06cf 0E       		.uleb128 0xe
- 26806 06d0 00000000 		.long	.LASF131
- 26807 06d4 23       		.sleb128 35
- 26808 06d5 0E       		.uleb128 0xe
- 26809 06d6 00000000 		.long	.LASF132
- 26810 06da 24       		.sleb128 36
- 26811 06db 0E       		.uleb128 0xe
- 26812 06dc 00000000 		.long	.LASF133
- 26813 06e0 25       		.sleb128 37
- 26814 06e1 0E       		.uleb128 0xe
- 26815 06e2 00000000 		.long	.LASF134
- 26816 06e6 26       		.sleb128 38
- 26817 06e7 0E       		.uleb128 0xe
- 26818 06e8 00000000 		.long	.LASF135
- 26819 06ec 27       		.sleb128 39
- 26820 06ed 0E       		.uleb128 0xe
- 26821 06ee 00000000 		.long	.LASF136
- 26822 06f2 28       		.sleb128 40
- 26823 06f3 0E       		.uleb128 0xe
- 26824 06f4 00000000 		.long	.LASF137
- 26825 06f8 29       		.sleb128 41
- 26826 06f9 0E       		.uleb128 0xe
- 26827 06fa 00000000 		.long	.LASF138
- 26828 06fe 2A       		.sleb128 42
- 26829 06ff 0E       		.uleb128 0xe
- 26830 0700 00000000 		.long	.LASF139
- 26831 0704 2B       		.sleb128 43
- 26832 0705 0E       		.uleb128 0xe
- 26833 0706 00000000 		.long	.LASF140
- 26834 070a 2C       		.sleb128 44
- 26835 070b 0E       		.uleb128 0xe
- 26836 070c 00000000 		.long	.LASF141
- 26837 0710 2D       		.sleb128 45
- 26838 0711 0E       		.uleb128 0xe
- 26839 0712 00000000 		.long	.LASF142
- 26840 0716 2E       		.sleb128 46
- 26841 0717 0E       		.uleb128 0xe
- 26842 0718 00000000 		.long	.LASF143
- 26843 071c 2F       		.sleb128 47
- 26844 071d 0E       		.uleb128 0xe
- 26845 071e 00000000 		.long	.LASF144
- 26846 0722 30       		.sleb128 48
- 26847 0723 0E       		.uleb128 0xe
- 26848 0724 00000000 		.long	.LASF145
- 26849 0728 31       		.sleb128 49
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 791
-
-
- 26850 0729 0E       		.uleb128 0xe
- 26851 072a 00000000 		.long	.LASF146
- 26852 072e 32       		.sleb128 50
- 26853 072f 0E       		.uleb128 0xe
- 26854 0730 00000000 		.long	.LASF147
- 26855 0734 33       		.sleb128 51
- 26856 0735 0E       		.uleb128 0xe
- 26857 0736 00000000 		.long	.LASF148
- 26858 073a 34       		.sleb128 52
- 26859 073b 0E       		.uleb128 0xe
- 26860 073c 00000000 		.long	.LASF149
- 26861 0740 35       		.sleb128 53
- 26862 0741 0E       		.uleb128 0xe
- 26863 0742 00000000 		.long	.LASF150
- 26864 0746 36       		.sleb128 54
- 26865 0747 0E       		.uleb128 0xe
- 26866 0748 00000000 		.long	.LASF151
- 26867 074c 36       		.sleb128 54
- 26868 074d 0E       		.uleb128 0xe
- 26869 074e 00000000 		.long	.LASF152
- 26870 0752 37       		.sleb128 55
- 26871 0753 0E       		.uleb128 0xe
- 26872 0754 00000000 		.long	.LASF153
- 26873 0758 38       		.sleb128 56
- 26874 0759 0E       		.uleb128 0xe
- 26875 075a 00000000 		.long	.LASF154
- 26876 075e 39       		.sleb128 57
- 26877 075f 0E       		.uleb128 0xe
- 26878 0760 00000000 		.long	.LASF155
- 26879 0764 3A       		.sleb128 58
- 26880 0765 0E       		.uleb128 0xe
- 26881 0766 00000000 		.long	.LASF156
- 26882 076a 3B       		.sleb128 59
- 26883 076b 0E       		.uleb128 0xe
- 26884 076c 00000000 		.long	.LASF157
- 26885 0770 3C       		.sleb128 60
- 26886 0771 0E       		.uleb128 0xe
- 26887 0772 00000000 		.long	.LASF158
- 26888 0776 3D       		.sleb128 61
- 26889 0777 00       		.byte	0x0
- 26890 0778 1D       		.uleb128 0x1d
- 26891 0779 00000000 		.long	.LASF159
- 26892 077d 04       		.byte	0x4
- 26893 077e 0A       		.byte	0xa
- 26894 077f BD       		.byte	0xbd
- 26895 0780 2E090000 		.long	0x92e
- 26896 0784 0E       		.uleb128 0xe
- 26897 0785 00000000 		.long	.LASF160
- 26898 0789 00       		.sleb128 0
- 26899 078a 0E       		.uleb128 0xe
- 26900 078b 00000000 		.long	.LASF161
- 26901 078f 01       		.sleb128 1
- 26902 0790 0E       		.uleb128 0xe
- 26903 0791 00000000 		.long	.LASF162
- 26904 0795 02       		.sleb128 2
- 26905 0796 0E       		.uleb128 0xe
- 26906 0797 00000000 		.long	.LASF163
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 792
-
-
- 26907 079b 03       		.sleb128 3
- 26908 079c 0E       		.uleb128 0xe
- 26909 079d 00000000 		.long	.LASF164
- 26910 07a1 04       		.sleb128 4
- 26911 07a2 0E       		.uleb128 0xe
- 26912 07a3 00000000 		.long	.LASF165
- 26913 07a7 05       		.sleb128 5
- 26914 07a8 0E       		.uleb128 0xe
- 26915 07a9 00000000 		.long	.LASF166
- 26916 07ad 06       		.sleb128 6
- 26917 07ae 0E       		.uleb128 0xe
- 26918 07af 00000000 		.long	.LASF167
- 26919 07b3 07       		.sleb128 7
- 26920 07b4 0E       		.uleb128 0xe
- 26921 07b5 00000000 		.long	.LASF168
- 26922 07b9 08       		.sleb128 8
- 26923 07ba 0E       		.uleb128 0xe
- 26924 07bb 00000000 		.long	.LASF169
- 26925 07bf 09       		.sleb128 9
- 26926 07c0 0E       		.uleb128 0xe
- 26927 07c1 00000000 		.long	.LASF170
- 26928 07c5 0A       		.sleb128 10
- 26929 07c6 0E       		.uleb128 0xe
- 26930 07c7 00000000 		.long	.LASF171
- 26931 07cb 0B       		.sleb128 11
- 26932 07cc 0E       		.uleb128 0xe
- 26933 07cd 00000000 		.long	.LASF172
- 26934 07d1 0C       		.sleb128 12
- 26935 07d2 0E       		.uleb128 0xe
- 26936 07d3 00000000 		.long	.LASF173
- 26937 07d7 0D       		.sleb128 13
- 26938 07d8 0E       		.uleb128 0xe
- 26939 07d9 00000000 		.long	.LASF174
- 26940 07dd 0E       		.sleb128 14
- 26941 07de 0E       		.uleb128 0xe
- 26942 07df 00000000 		.long	.LASF175
- 26943 07e3 0F       		.sleb128 15
- 26944 07e4 0E       		.uleb128 0xe
- 26945 07e5 00000000 		.long	.LASF176
- 26946 07e9 10       		.sleb128 16
- 26947 07ea 0E       		.uleb128 0xe
- 26948 07eb 00000000 		.long	.LASF177
- 26949 07ef 11       		.sleb128 17
- 26950 07f0 0E       		.uleb128 0xe
- 26951 07f1 00000000 		.long	.LASF178
- 26952 07f5 12       		.sleb128 18
- 26953 07f6 0E       		.uleb128 0xe
- 26954 07f7 00000000 		.long	.LASF179
- 26955 07fb 13       		.sleb128 19
- 26956 07fc 0E       		.uleb128 0xe
- 26957 07fd 00000000 		.long	.LASF180
- 26958 0801 14       		.sleb128 20
- 26959 0802 0E       		.uleb128 0xe
- 26960 0803 00000000 		.long	.LASF181
- 26961 0807 15       		.sleb128 21
- 26962 0808 0E       		.uleb128 0xe
- 26963 0809 00000000 		.long	.LASF182
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 793
-
-
- 26964 080d 16       		.sleb128 22
- 26965 080e 0E       		.uleb128 0xe
- 26966 080f 00000000 		.long	.LASF183
- 26967 0813 17       		.sleb128 23
- 26968 0814 0E       		.uleb128 0xe
- 26969 0815 00000000 		.long	.LASF184
- 26970 0819 18       		.sleb128 24
- 26971 081a 0E       		.uleb128 0xe
- 26972 081b 00000000 		.long	.LASF185
- 26973 081f 19       		.sleb128 25
- 26974 0820 0E       		.uleb128 0xe
- 26975 0821 00000000 		.long	.LASF186
- 26976 0825 1A       		.sleb128 26
- 26977 0826 0E       		.uleb128 0xe
- 26978 0827 00000000 		.long	.LASF187
- 26979 082b 1B       		.sleb128 27
- 26980 082c 0E       		.uleb128 0xe
- 26981 082d 00000000 		.long	.LASF188
- 26982 0831 1C       		.sleb128 28
- 26983 0832 0E       		.uleb128 0xe
- 26984 0833 00000000 		.long	.LASF189
- 26985 0837 1D       		.sleb128 29
- 26986 0838 0E       		.uleb128 0xe
- 26987 0839 00000000 		.long	.LASF190
- 26988 083d 1E       		.sleb128 30
- 26989 083e 0E       		.uleb128 0xe
- 26990 083f 00000000 		.long	.LASF191
- 26991 0843 1F       		.sleb128 31
- 26992 0844 0E       		.uleb128 0xe
- 26993 0845 00000000 		.long	.LASF192
- 26994 0849 20       		.sleb128 32
- 26995 084a 0E       		.uleb128 0xe
- 26996 084b 00000000 		.long	.LASF193
- 26997 084f 21       		.sleb128 33
- 26998 0850 0E       		.uleb128 0xe
- 26999 0851 00000000 		.long	.LASF194
- 27000 0855 22       		.sleb128 34
- 27001 0856 0E       		.uleb128 0xe
- 27002 0857 00000000 		.long	.LASF195
- 27003 085b 23       		.sleb128 35
- 27004 085c 0E       		.uleb128 0xe
- 27005 085d 00000000 		.long	.LASF196
- 27006 0861 24       		.sleb128 36
- 27007 0862 0E       		.uleb128 0xe
- 27008 0863 00000000 		.long	.LASF197
- 27009 0867 25       		.sleb128 37
- 27010 0868 0E       		.uleb128 0xe
- 27011 0869 00000000 		.long	.LASF198
- 27012 086d 26       		.sleb128 38
- 27013 086e 0E       		.uleb128 0xe
- 27014 086f 00000000 		.long	.LASF199
- 27015 0873 27       		.sleb128 39
- 27016 0874 0E       		.uleb128 0xe
- 27017 0875 00000000 		.long	.LASF200
- 27018 0879 28       		.sleb128 40
- 27019 087a 0E       		.uleb128 0xe
- 27020 087b 00000000 		.long	.LASF201
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 794
-
-
- 27021 087f 29       		.sleb128 41
- 27022 0880 0E       		.uleb128 0xe
- 27023 0881 00000000 		.long	.LASF202
- 27024 0885 2A       		.sleb128 42
- 27025 0886 0E       		.uleb128 0xe
- 27026 0887 00000000 		.long	.LASF203
- 27027 088b 2B       		.sleb128 43
- 27028 088c 0E       		.uleb128 0xe
- 27029 088d 00000000 		.long	.LASF204
- 27030 0891 2C       		.sleb128 44
- 27031 0892 0E       		.uleb128 0xe
- 27032 0893 00000000 		.long	.LASF205
- 27033 0897 2D       		.sleb128 45
- 27034 0898 0E       		.uleb128 0xe
- 27035 0899 00000000 		.long	.LASF206
- 27036 089d 2E       		.sleb128 46
- 27037 089e 0E       		.uleb128 0xe
- 27038 089f 00000000 		.long	.LASF207
- 27039 08a3 2F       		.sleb128 47
- 27040 08a4 0E       		.uleb128 0xe
- 27041 08a5 00000000 		.long	.LASF208
- 27042 08a9 30       		.sleb128 48
- 27043 08aa 0E       		.uleb128 0xe
- 27044 08ab 00000000 		.long	.LASF209
- 27045 08af 31       		.sleb128 49
- 27046 08b0 0E       		.uleb128 0xe
- 27047 08b1 00000000 		.long	.LASF210
- 27048 08b5 32       		.sleb128 50
- 27049 08b6 0E       		.uleb128 0xe
- 27050 08b7 00000000 		.long	.LASF211
- 27051 08bb 33       		.sleb128 51
- 27052 08bc 0E       		.uleb128 0xe
- 27053 08bd 00000000 		.long	.LASF212
- 27054 08c1 34       		.sleb128 52
- 27055 08c2 0E       		.uleb128 0xe
- 27056 08c3 00000000 		.long	.LASF213
- 27057 08c7 35       		.sleb128 53
- 27058 08c8 0E       		.uleb128 0xe
- 27059 08c9 00000000 		.long	.LASF214
- 27060 08cd 36       		.sleb128 54
- 27061 08ce 0E       		.uleb128 0xe
- 27062 08cf 00000000 		.long	.LASF215
- 27063 08d3 37       		.sleb128 55
- 27064 08d4 0E       		.uleb128 0xe
- 27065 08d5 00000000 		.long	.LASF216
- 27066 08d9 38       		.sleb128 56
- 27067 08da 0E       		.uleb128 0xe
- 27068 08db 00000000 		.long	.LASF217
- 27069 08df 39       		.sleb128 57
- 27070 08e0 0E       		.uleb128 0xe
- 27071 08e1 00000000 		.long	.LASF218
- 27072 08e5 3A       		.sleb128 58
- 27073 08e6 0E       		.uleb128 0xe
- 27074 08e7 00000000 		.long	.LASF219
- 27075 08eb 3A       		.sleb128 58
- 27076 08ec 0E       		.uleb128 0xe
- 27077 08ed 00000000 		.long	.LASF220
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 795
-
-
- 27078 08f1 3B       		.sleb128 59
- 27079 08f2 0E       		.uleb128 0xe
- 27080 08f3 00000000 		.long	.LASF221
- 27081 08f7 3C       		.sleb128 60
- 27082 08f8 0E       		.uleb128 0xe
- 27083 08f9 00000000 		.long	.LASF222
- 27084 08fd 3D       		.sleb128 61
- 27085 08fe 0E       		.uleb128 0xe
- 27086 08ff 00000000 		.long	.LASF223
- 27087 0903 3E       		.sleb128 62
- 27088 0904 0E       		.uleb128 0xe
- 27089 0905 00000000 		.long	.LASF224
- 27090 0909 3F       		.sleb128 63
- 27091 090a 0E       		.uleb128 0xe
- 27092 090b 00000000 		.long	.LASF225
- 27093 090f C000     		.sleb128 64
- 27094 0911 0E       		.uleb128 0xe
- 27095 0912 00000000 		.long	.LASF226
- 27096 0916 C100     		.sleb128 65
- 27097 0918 0E       		.uleb128 0xe
- 27098 0919 00000000 		.long	.LASF227
- 27099 091d C200     		.sleb128 66
- 27100 091f 0E       		.uleb128 0xe
- 27101 0920 00000000 		.long	.LASF228
- 27102 0924 C300     		.sleb128 67
- 27103 0926 0E       		.uleb128 0xe
- 27104 0927 00000000 		.long	.LASF229
- 27105 092b C400     		.sleb128 68
- 27106 092d 00       		.byte	0x0
- 27107 092e 1E       		.uleb128 0x1e
- 27108 092f 00000000 		.long	.LASF230
- 27109 0933 04       		.byte	0x4
- 27110 0934 0A       		.byte	0xa
- 27111 0935 0A01     		.value	0x10a
- 27112 0937 2D0A0000 		.long	0xa2d
- 27113 093b 0E       		.uleb128 0xe
- 27114 093c 00000000 		.long	.LASF231
- 27115 0940 00       		.sleb128 0
- 27116 0941 0E       		.uleb128 0xe
- 27117 0942 00000000 		.long	.LASF232
- 27118 0946 3D       		.sleb128 61
- 27119 0947 0E       		.uleb128 0xe
- 27120 0948 00000000 		.long	.LASF233
- 27121 094c 3E       		.sleb128 62
- 27122 094d 0E       		.uleb128 0xe
- 27123 094e 00000000 		.long	.LASF234
- 27124 0952 3F       		.sleb128 63
- 27125 0953 0E       		.uleb128 0xe
- 27126 0954 00000000 		.long	.LASF235
- 27127 0958 C000     		.sleb128 64
- 27128 095a 0E       		.uleb128 0xe
- 27129 095b 00000000 		.long	.LASF236
- 27130 095f C100     		.sleb128 65
- 27131 0961 0E       		.uleb128 0xe
- 27132 0962 00000000 		.long	.LASF237
- 27133 0966 C200     		.sleb128 66
- 27134 0968 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 796
-
-
- 27135 0969 00000000 		.long	.LASF238
- 27136 096d C300     		.sleb128 67
- 27137 096f 0E       		.uleb128 0xe
- 27138 0970 00000000 		.long	.LASF239
- 27139 0974 C400     		.sleb128 68
- 27140 0976 0E       		.uleb128 0xe
- 27141 0977 00000000 		.long	.LASF240
- 27142 097b C500     		.sleb128 69
- 27143 097d 0E       		.uleb128 0xe
- 27144 097e 00000000 		.long	.LASF241
- 27145 0982 C600     		.sleb128 70
- 27146 0984 0E       		.uleb128 0xe
- 27147 0985 00000000 		.long	.LASF242
- 27148 0989 C700     		.sleb128 71
- 27149 098b 0E       		.uleb128 0xe
- 27150 098c 00000000 		.long	.LASF243
- 27151 0990 C800     		.sleb128 72
- 27152 0992 0E       		.uleb128 0xe
- 27153 0993 00000000 		.long	.LASF244
- 27154 0997 C900     		.sleb128 73
- 27155 0999 0E       		.uleb128 0xe
- 27156 099a 00000000 		.long	.LASF245
- 27157 099e CA00     		.sleb128 74
- 27158 09a0 0E       		.uleb128 0xe
- 27159 09a1 00000000 		.long	.LASF246
- 27160 09a5 CB00     		.sleb128 75
- 27161 09a7 0E       		.uleb128 0xe
- 27162 09a8 00000000 		.long	.LASF247
- 27163 09ac CC00     		.sleb128 76
- 27164 09ae 0E       		.uleb128 0xe
- 27165 09af 00000000 		.long	.LASF248
- 27166 09b3 CD00     		.sleb128 77
- 27167 09b5 0E       		.uleb128 0xe
- 27168 09b6 00000000 		.long	.LASF249
- 27169 09ba CE00     		.sleb128 78
- 27170 09bc 0E       		.uleb128 0xe
- 27171 09bd 00000000 		.long	.LASF250
- 27172 09c1 CF00     		.sleb128 79
- 27173 09c3 0E       		.uleb128 0xe
- 27174 09c4 00000000 		.long	.LASF251
- 27175 09c8 D000     		.sleb128 80
- 27176 09ca 0E       		.uleb128 0xe
- 27177 09cb 00000000 		.long	.LASF252
- 27178 09cf D100     		.sleb128 81
- 27179 09d1 0E       		.uleb128 0xe
- 27180 09d2 00000000 		.long	.LASF253
- 27181 09d6 D100     		.sleb128 81
- 27182 09d8 0E       		.uleb128 0xe
- 27183 09d9 00000000 		.long	.LASF254
- 27184 09dd D200     		.sleb128 82
- 27185 09df 0E       		.uleb128 0xe
- 27186 09e0 00000000 		.long	.LASF255
- 27187 09e4 D300     		.sleb128 83
- 27188 09e6 0E       		.uleb128 0xe
- 27189 09e7 00000000 		.long	.LASF256
- 27190 09eb D400     		.sleb128 84
- 27191 09ed 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 797
-
-
- 27192 09ee 00000000 		.long	.LASF257
- 27193 09f2 D500     		.sleb128 85
- 27194 09f4 0E       		.uleb128 0xe
- 27195 09f5 00000000 		.long	.LASF258
- 27196 09f9 D600     		.sleb128 86
- 27197 09fb 0E       		.uleb128 0xe
- 27198 09fc 00000000 		.long	.LASF259
- 27199 0a00 D700     		.sleb128 87
- 27200 0a02 0E       		.uleb128 0xe
- 27201 0a03 00000000 		.long	.LASF260
- 27202 0a07 D800     		.sleb128 88
- 27203 0a09 0E       		.uleb128 0xe
- 27204 0a0a 00000000 		.long	.LASF261
- 27205 0a0e D900     		.sleb128 89
- 27206 0a10 0E       		.uleb128 0xe
- 27207 0a11 00000000 		.long	.LASF262
- 27208 0a15 DA00     		.sleb128 90
- 27209 0a17 0E       		.uleb128 0xe
- 27210 0a18 00000000 		.long	.LASF263
- 27211 0a1c DB00     		.sleb128 91
- 27212 0a1e 0E       		.uleb128 0xe
- 27213 0a1f 00000000 		.long	.LASF264
- 27214 0a23 DC00     		.sleb128 92
- 27215 0a25 0E       		.uleb128 0xe
- 27216 0a26 00000000 		.long	.LASF265
- 27217 0a2a DD00     		.sleb128 93
- 27218 0a2c 00       		.byte	0x0
- 27219 0a2d 1E       		.uleb128 0x1e
- 27220 0a2e 00000000 		.long	.LASF266
- 27221 0a32 04       		.byte	0x4
- 27222 0a33 0A       		.byte	0xa
- 27223 0a34 3401     		.value	0x134
- 27224 0a36 6D0B0000 		.long	0xb6d
- 27225 0a3a 0E       		.uleb128 0xe
- 27226 0a3b 00000000 		.long	.LASF267
- 27227 0a3f 00       		.sleb128 0
- 27228 0a40 0E       		.uleb128 0xe
- 27229 0a41 00000000 		.long	.LASF268
- 27230 0a45 01       		.sleb128 1
- 27231 0a46 0E       		.uleb128 0xe
- 27232 0a47 00000000 		.long	.LASF269
- 27233 0a4b 02       		.sleb128 2
- 27234 0a4c 0E       		.uleb128 0xe
- 27235 0a4d 00000000 		.long	.LASF270
- 27236 0a51 03       		.sleb128 3
- 27237 0a52 0E       		.uleb128 0xe
- 27238 0a53 00000000 		.long	.LASF271
- 27239 0a57 04       		.sleb128 4
- 27240 0a58 0E       		.uleb128 0xe
- 27241 0a59 00000000 		.long	.LASF272
- 27242 0a5d 05       		.sleb128 5
- 27243 0a5e 0E       		.uleb128 0xe
- 27244 0a5f 00000000 		.long	.LASF273
- 27245 0a63 06       		.sleb128 6
- 27246 0a64 0E       		.uleb128 0xe
- 27247 0a65 00000000 		.long	.LASF274
- 27248 0a69 07       		.sleb128 7
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 798
-
-
- 27249 0a6a 0E       		.uleb128 0xe
- 27250 0a6b 00000000 		.long	.LASF275
- 27251 0a6f 08       		.sleb128 8
- 27252 0a70 0E       		.uleb128 0xe
- 27253 0a71 00000000 		.long	.LASF276
- 27254 0a75 09       		.sleb128 9
- 27255 0a76 0E       		.uleb128 0xe
- 27256 0a77 00000000 		.long	.LASF277
- 27257 0a7b 0A       		.sleb128 10
- 27258 0a7c 0E       		.uleb128 0xe
- 27259 0a7d 00000000 		.long	.LASF278
- 27260 0a81 0B       		.sleb128 11
- 27261 0a82 0E       		.uleb128 0xe
- 27262 0a83 00000000 		.long	.LASF279
- 27263 0a87 0C       		.sleb128 12
- 27264 0a88 0E       		.uleb128 0xe
- 27265 0a89 00000000 		.long	.LASF280
- 27266 0a8d 0D       		.sleb128 13
- 27267 0a8e 0E       		.uleb128 0xe
- 27268 0a8f 00000000 		.long	.LASF281
- 27269 0a93 0E       		.sleb128 14
- 27270 0a94 0E       		.uleb128 0xe
- 27271 0a95 00000000 		.long	.LASF282
- 27272 0a99 0F       		.sleb128 15
- 27273 0a9a 0E       		.uleb128 0xe
- 27274 0a9b 00000000 		.long	.LASF283
- 27275 0a9f 10       		.sleb128 16
- 27276 0aa0 0E       		.uleb128 0xe
- 27277 0aa1 00000000 		.long	.LASF284
- 27278 0aa5 11       		.sleb128 17
- 27279 0aa6 0E       		.uleb128 0xe
- 27280 0aa7 00000000 		.long	.LASF285
- 27281 0aab 12       		.sleb128 18
- 27282 0aac 0E       		.uleb128 0xe
- 27283 0aad 00000000 		.long	.LASF286
- 27284 0ab1 13       		.sleb128 19
- 27285 0ab2 0E       		.uleb128 0xe
- 27286 0ab3 00000000 		.long	.LASF287
- 27287 0ab7 14       		.sleb128 20
- 27288 0ab8 0E       		.uleb128 0xe
- 27289 0ab9 00000000 		.long	.LASF288
- 27290 0abd 15       		.sleb128 21
- 27291 0abe 0E       		.uleb128 0xe
- 27292 0abf 00000000 		.long	.LASF289
- 27293 0ac3 16       		.sleb128 22
- 27294 0ac4 0E       		.uleb128 0xe
- 27295 0ac5 00000000 		.long	.LASF290
- 27296 0ac9 17       		.sleb128 23
- 27297 0aca 0E       		.uleb128 0xe
- 27298 0acb 00000000 		.long	.LASF291
- 27299 0acf 18       		.sleb128 24
- 27300 0ad0 0E       		.uleb128 0xe
- 27301 0ad1 00000000 		.long	.LASF292
- 27302 0ad5 19       		.sleb128 25
- 27303 0ad6 0E       		.uleb128 0xe
- 27304 0ad7 00000000 		.long	.LASF293
- 27305 0adb 1A       		.sleb128 26
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 799
-
-
- 27306 0adc 0E       		.uleb128 0xe
- 27307 0add 00000000 		.long	.LASF294
- 27308 0ae1 1B       		.sleb128 27
- 27309 0ae2 0E       		.uleb128 0xe
- 27310 0ae3 00000000 		.long	.LASF295
- 27311 0ae7 1C       		.sleb128 28
- 27312 0ae8 0E       		.uleb128 0xe
- 27313 0ae9 00000000 		.long	.LASF296
- 27314 0aed 1D       		.sleb128 29
- 27315 0aee 0E       		.uleb128 0xe
- 27316 0aef 00000000 		.long	.LASF297
- 27317 0af3 1E       		.sleb128 30
- 27318 0af4 0E       		.uleb128 0xe
- 27319 0af5 00000000 		.long	.LASF298
- 27320 0af9 1F       		.sleb128 31
- 27321 0afa 0E       		.uleb128 0xe
- 27322 0afb 00000000 		.long	.LASF299
- 27323 0aff 20       		.sleb128 32
- 27324 0b00 0E       		.uleb128 0xe
- 27325 0b01 00000000 		.long	.LASF300
- 27326 0b05 21       		.sleb128 33
- 27327 0b06 0E       		.uleb128 0xe
- 27328 0b07 00000000 		.long	.LASF301
- 27329 0b0b 22       		.sleb128 34
- 27330 0b0c 0E       		.uleb128 0xe
- 27331 0b0d 00000000 		.long	.LASF302
- 27332 0b11 23       		.sleb128 35
- 27333 0b12 0E       		.uleb128 0xe
- 27334 0b13 00000000 		.long	.LASF303
- 27335 0b17 24       		.sleb128 36
- 27336 0b18 0E       		.uleb128 0xe
- 27337 0b19 00000000 		.long	.LASF304
- 27338 0b1d 25       		.sleb128 37
- 27339 0b1e 0E       		.uleb128 0xe
- 27340 0b1f 00000000 		.long	.LASF305
- 27341 0b23 26       		.sleb128 38
- 27342 0b24 0E       		.uleb128 0xe
- 27343 0b25 00000000 		.long	.LASF306
- 27344 0b29 27       		.sleb128 39
- 27345 0b2a 0E       		.uleb128 0xe
- 27346 0b2b 00000000 		.long	.LASF307
- 27347 0b2f 28       		.sleb128 40
- 27348 0b30 0E       		.uleb128 0xe
- 27349 0b31 00000000 		.long	.LASF308
- 27350 0b35 29       		.sleb128 41
- 27351 0b36 0E       		.uleb128 0xe
- 27352 0b37 00000000 		.long	.LASF309
- 27353 0b3b 29       		.sleb128 41
- 27354 0b3c 0E       		.uleb128 0xe
- 27355 0b3d 00000000 		.long	.LASF310
- 27356 0b41 2A       		.sleb128 42
- 27357 0b42 0E       		.uleb128 0xe
- 27358 0b43 00000000 		.long	.LASF311
- 27359 0b47 2B       		.sleb128 43
- 27360 0b48 0E       		.uleb128 0xe
- 27361 0b49 00000000 		.long	.LASF312
- 27362 0b4d 2C       		.sleb128 44
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 800
-
-
- 27363 0b4e 0E       		.uleb128 0xe
- 27364 0b4f 00000000 		.long	.LASF313
- 27365 0b53 2D       		.sleb128 45
- 27366 0b54 0E       		.uleb128 0xe
- 27367 0b55 00000000 		.long	.LASF314
- 27368 0b59 2E       		.sleb128 46
- 27369 0b5a 0E       		.uleb128 0xe
- 27370 0b5b 00000000 		.long	.LASF315
- 27371 0b5f 2F       		.sleb128 47
- 27372 0b60 0E       		.uleb128 0xe
- 27373 0b61 00000000 		.long	.LASF316
- 27374 0b65 30       		.sleb128 48
- 27375 0b66 0E       		.uleb128 0xe
- 27376 0b67 00000000 		.long	.LASF317
- 27377 0b6b 31       		.sleb128 49
- 27378 0b6c 00       		.byte	0x0
- 27379 0b6d 1F       		.uleb128 0x1f
- 27380 0b6e 00000000 		.long	.LASF373
- 27381 0b72 01       		.byte	0x1
- 27382 0b73 38       		.byte	0x38
- 27383 0b74 01       		.byte	0x1
- 27384 0b75 62000000 		.long	0x62
- 27385 0b79 00000000 		.quad	.LFB509
- 27385      00000000 
- 27386 0b81 00000000 		.quad	.LFE509
- 27386      00000000 
- 27387 0b89 00000000 		.long	.LLST0
- 27388 0b8d AB0B0000 		.long	0xbab
- 27389 0b91 20       		.uleb128 0x20
- 27390 0b92 6900     		.string	"i"
- 27391 0b94 01       		.byte	0x1
- 27392 0b95 38       		.byte	0x38
- 27393 0b96 62000000 		.long	0x62
- 27394 0b9a 02       		.byte	0x2
- 27395 0b9b 91       		.byte	0x91
- 27396 0b9c 64       		.sleb128 -28
- 27397 0b9d 21       		.uleb128 0x21
- 27398 0b9e 72746E00 		.string	"rtn"
- 27399 0ba2 01       		.byte	0x1
- 27400 0ba3 3A       		.byte	0x3a
- 27401 0ba4 62000000 		.long	0x62
- 27402 0ba8 01       		.byte	0x1
- 27403 0ba9 53       		.byte	0x53
- 27404 0baa 00       		.byte	0x0
- 27405 0bab 22       		.uleb128 0x22
- 27406 0bac 00000000 		.long	.LASF318
- 27407 0bb0 02       		.byte	0x2
- 27408 0bb1 79       		.byte	0x79
- 27409 0bb2 01       		.byte	0x1
- 27410 0bb3 B1010000 		.long	0x1b1
- 27411 0bb7 03       		.byte	0x3
- 27412 0bb8 D10B0000 		.long	0xbd1
- 27413 0bbc 23       		.uleb128 0x23
- 27414 0bbd 61696E00 		.string	"ain"
- 27415 0bc1 02       		.byte	0x2
- 27416 0bc2 79       		.byte	0x79
- 27417 0bc3 D8000000 		.long	0xd8
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 801
-
-
- 27418 0bc7 24       		.uleb128 0x24
- 27419 0bc8 7500     		.string	"u"
- 27420 0bca 02       		.byte	0x2
- 27421 0bcb 85       		.byte	0x85
- 27422 0bcc 27050000 		.long	0x527
- 27423 0bd0 00       		.byte	0x0
- 27424 0bd1 25       		.uleb128 0x25
- 27425 0bd2 00000000 		.long	.LASF319
- 27426 0bd6 02       		.byte	0x2
- 27427 0bd7 8606     		.value	0x686
- 27428 0bd9 01       		.byte	0x1
- 27429 0bda B1010000 		.long	0x1b1
- 27430 0bde 03       		.byte	0x3
- 27431 0bdf 500C0000 		.long	0xc50
- 27432 0be3 26       		.uleb128 0x26
- 27433 0be4 00000000 		.long	.LASF66
- 27434 0be8 02       		.byte	0x2
- 27435 0be9 8606     		.value	0x686
- 27436 0beb B1010000 		.long	0x1b1
- 27437 0bef 26       		.uleb128 0x26
- 27438 0bf0 00000000 		.long	.LASF320
- 27439 0bf4 02       		.byte	0x2
- 27440 0bf5 8606     		.value	0x686
- 27441 0bf7 A9000000 		.long	0xa9
- 27442 0bfb 27       		.uleb128 0x27
- 27443 0bfc 00000000 		.long	.LASF321
- 27444 0c00 02       		.byte	0x2
- 27445 0c01 8E06     		.value	0x68e
- 27446 0c03 B1010000 		.long	0x1b1
- 27447 0c07 28       		.uleb128 0x28
- 27448 0c08 746D7000 		.string	"tmp"
- 27449 0c0c 02       		.byte	0x2
- 27450 0c0d 8F06     		.value	0x68f
- 27451 0c0f B1010000 		.long	0x1b1
- 27452 0c13 29       		.uleb128 0x29
- 27453 0c14 230C0000 		.long	0xc23
- 27454 0c18 28       		.uleb128 0x28
- 27455 0c19 7600     		.string	"v"
- 27456 0c1b 02       		.byte	0x2
- 27457 0c1c 9306     		.value	0x693
- 27458 0c1e 27050000 		.long	0x527
- 27459 0c22 00       		.byte	0x0
- 27460 0c23 29       		.uleb128 0x29
- 27461 0c24 330C0000 		.long	0xc33
- 27462 0c28 28       		.uleb128 0x28
- 27463 0c29 7600     		.string	"v"
- 27464 0c2b 02       		.byte	0x2
- 27465 0c2c 9506     		.value	0x695
- 27466 0c2e 27050000 		.long	0x527
- 27467 0c32 00       		.byte	0x0
- 27468 0c33 29       		.uleb128 0x29
- 27469 0c34 430C0000 		.long	0xc43
- 27470 0c38 28       		.uleb128 0x28
- 27471 0c39 7600     		.string	"v"
- 27472 0c3b 02       		.byte	0x2
- 27473 0c3c 9706     		.value	0x697
- 27474 0c3e 27050000 		.long	0x527
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 802
-
-
- 27475 0c42 00       		.byte	0x0
- 27476 0c43 2A       		.uleb128 0x2a
- 27477 0c44 28       		.uleb128 0x28
- 27478 0c45 7600     		.string	"v"
- 27479 0c47 02       		.byte	0x2
- 27480 0c48 9906     		.value	0x699
- 27481 0c4a 27050000 		.long	0x527
- 27482 0c4e 00       		.byte	0x0
- 27483 0c4f 00       		.byte	0x0
- 27484 0c50 25       		.uleb128 0x25
- 27485 0c51 00000000 		.long	.LASF322
- 27486 0c55 02       		.byte	0x2
- 27487 0c56 0402     		.value	0x204
- 27488 0c58 01       		.byte	0x1
- 27489 0c59 B1010000 		.long	0x1b1
- 27490 0c5d 03       		.byte	0x3
- 27491 0c5e 910C0000 		.long	0xc91
- 27492 0c62 26       		.uleb128 0x26
- 27493 0c63 00000000 		.long	.LASF66
- 27494 0c67 02       		.byte	0x2
- 27495 0c68 0402     		.value	0x204
- 27496 0c6a B1010000 		.long	0x1b1
- 27497 0c6e 26       		.uleb128 0x26
- 27498 0c6f 00000000 		.long	.LASF323
- 27499 0c73 02       		.byte	0x2
- 27500 0c74 0402     		.value	0x204
- 27501 0c76 07040000 		.long	0x407
- 27502 0c7a 26       		.uleb128 0x26
- 27503 0c7b 00000000 		.long	.LASF324
- 27504 0c7f 02       		.byte	0x2
- 27505 0c80 0402     		.value	0x204
- 27506 0c82 A9000000 		.long	0xa9
- 27507 0c86 28       		.uleb128 0x28
- 27508 0c87 7500     		.string	"u"
- 27509 0c89 02       		.byte	0x2
- 27510 0c8a 0902     		.value	0x209
- 27511 0c8c 27050000 		.long	0x527
- 27512 0c90 00       		.byte	0x0
- 27513 0c91 25       		.uleb128 0x25
- 27514 0c92 00000000 		.long	.LASF325
- 27515 0c96 02       		.byte	0x2
- 27516 0c97 7B03     		.value	0x37b
- 27517 0c99 01       		.byte	0x1
- 27518 0c9a B1010000 		.long	0x1b1
- 27519 0c9e 03       		.byte	0x3
- 27520 0c9f B00C0000 		.long	0xcb0
- 27521 0ca3 26       		.uleb128 0x26
- 27522 0ca4 00000000 		.long	.LASF66
- 27523 0ca8 02       		.byte	0x2
- 27524 0ca9 7B03     		.value	0x37b
- 27525 0cab B1010000 		.long	0x1b1
- 27526 0caf 00       		.byte	0x0
- 27527 0cb0 25       		.uleb128 0x25
- 27528 0cb1 00000000 		.long	.LASF326
- 27529 0cb5 02       		.byte	0x2
- 27530 0cb6 4E03     		.value	0x34e
- 27531 0cb8 01       		.byte	0x1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 803
-
-
- 27532 0cb9 B1010000 		.long	0x1b1
- 27533 0cbd 03       		.byte	0x3
- 27534 0cbe 140D0000 		.long	0xd14
- 27535 0cc2 26       		.uleb128 0x26
- 27536 0cc3 00000000 		.long	.LASF66
- 27537 0cc7 02       		.byte	0x2
- 27538 0cc8 4E03     		.value	0x34e
- 27539 0cca B1010000 		.long	0x1b1
- 27540 0cce 2B       		.uleb128 0x2b
- 27541 0ccf 626F7800 		.string	"box"
- 27542 0cd3 02       		.byte	0x2
- 27543 0cd4 4E03     		.value	0x34e
- 27544 0cd6 140D0000 		.long	0xd14
- 27545 0cda 28       		.uleb128 0x28
- 27546 0cdb 6C6F00   		.string	"lo"
- 27547 0cde 02       		.byte	0x2
- 27548 0cdf 5003     		.value	0x350
- 27549 0ce1 B1010000 		.long	0x1b1
- 27550 0ce5 28       		.uleb128 0x28
- 27551 0ce6 686900   		.string	"hi"
- 27552 0ce9 02       		.byte	0x2
- 27553 0cea 5003     		.value	0x350
- 27554 0cec B1010000 		.long	0x1b1
- 27555 0cf0 28       		.uleb128 0x28
- 27556 0cf1 746D7000 		.string	"tmp"
- 27557 0cf5 02       		.byte	0x2
- 27558 0cf6 5003     		.value	0x350
- 27559 0cf8 B1010000 		.long	0x1b1
- 27560 0cfc 28       		.uleb128 0x28
- 27561 0cfd 6F757400 		.string	"out"
- 27562 0d01 02       		.byte	0x2
- 27563 0d02 5003     		.value	0x350
- 27564 0d04 B1010000 		.long	0x1b1
- 27565 0d08 28       		.uleb128 0x28
- 27566 0d09 697800   		.string	"ix"
- 27567 0d0c 02       		.byte	0x2
- 27568 0d0d 5103     		.value	0x351
- 27569 0d0f 6D000000 		.long	0x6d
- 27570 0d13 00       		.byte	0x0
- 27571 0d14 07       		.uleb128 0x7
- 27572 0d15 08       		.byte	0x8
- 27573 0d16 1A0D0000 		.long	0xd1a
- 27574 0d1a 06       		.uleb128 0x6
- 27575 0d1b B1010000 		.long	0x1b1
- 27576 0d1f 22       		.uleb128 0x22
- 27577 0d20 00000000 		.long	.LASF327
- 27578 0d24 02       		.byte	0x2
- 27579 0d25 CA       		.byte	0xca
- 27580 0d26 01       		.byte	0x1
- 27581 0d27 B1010000 		.long	0x1b1
- 27582 0d2b 03       		.byte	0x3
- 27583 0d2c 450D0000 		.long	0xd45
- 27584 0d30 23       		.uleb128 0x23
- 27585 0d31 763100   		.string	"v1"
- 27586 0d34 02       		.byte	0x2
- 27587 0d35 CA       		.byte	0xca
- 27588 0d36 B1010000 		.long	0x1b1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 804
-
-
- 27589 0d3a 23       		.uleb128 0x23
- 27590 0d3b 763200   		.string	"v2"
- 27591 0d3e 02       		.byte	0x2
- 27592 0d3f CA       		.byte	0xca
- 27593 0d40 B1010000 		.long	0x1b1
- 27594 0d44 00       		.byte	0x0
- 27595 0d45 25       		.uleb128 0x25
- 27596 0d46 00000000 		.long	.LASF328
- 27597 0d4a 02       		.byte	0x2
- 27598 0d4b 5601     		.value	0x156
- 27599 0d4d 01       		.byte	0x1
- 27600 0d4e B1010000 		.long	0x1b1
- 27601 0d52 03       		.byte	0x3
- 27602 0d53 6E0D0000 		.long	0xd6e
- 27603 0d57 2B       		.uleb128 0x2b
- 27604 0d58 763100   		.string	"v1"
- 27605 0d5b 02       		.byte	0x2
- 27606 0d5c 5601     		.value	0x156
- 27607 0d5e B1010000 		.long	0x1b1
- 27608 0d62 2B       		.uleb128 0x2b
- 27609 0d63 763200   		.string	"v2"
- 27610 0d66 02       		.byte	0x2
- 27611 0d67 5601     		.value	0x156
- 27612 0d69 B1010000 		.long	0x1b1
- 27613 0d6d 00       		.byte	0x0
- 27614 0d6e 25       		.uleb128 0x25
- 27615 0d6f 00000000 		.long	.LASF329
- 27616 0d73 02       		.byte	0x2
- 27617 0d74 7101     		.value	0x171
- 27618 0d76 01       		.byte	0x1
- 27619 0d77 B1010000 		.long	0x1b1
- 27620 0d7b 03       		.byte	0x3
- 27621 0d7c C70D0000 		.long	0xdc7
- 27622 0d80 26       		.uleb128 0x26
- 27623 0d81 00000000 		.long	.LASF330
- 27624 0d85 02       		.byte	0x2
- 27625 0d86 7101     		.value	0x171
- 27626 0d88 B1010000 		.long	0x1b1
- 27627 0d8c 26       		.uleb128 0x26
- 27628 0d8d 00000000 		.long	.LASF331
- 27629 0d91 02       		.byte	0x2
- 27630 0d92 7101     		.value	0x171
- 27631 0d94 B1010000 		.long	0x1b1
- 27632 0d98 28       		.uleb128 0x28
- 27633 0d99 6F757400 		.string	"out"
- 27634 0d9d 02       		.byte	0x2
- 27635 0d9e 7901     		.value	0x179
- 27636 0da0 27050000 		.long	0x527
- 27637 0da4 28       		.uleb128 0x28
- 27638 0da5 696E00   		.string	"in"
- 27639 0da8 02       		.byte	0x2
- 27640 0da9 7901     		.value	0x179
- 27641 0dab 27050000 		.long	0x527
- 27642 0daf 27       		.uleb128 0x27
- 27643 0db0 00000000 		.long	.LASF332
- 27644 0db4 02       		.byte	0x2
- 27645 0db5 7901     		.value	0x179
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 805
-
-
- 27646 0db7 27050000 		.long	0x527
- 27647 0dbb 28       		.uleb128 0x28
- 27648 0dbc 697800   		.string	"ix"
- 27649 0dbf 02       		.byte	0x2
- 27650 0dc0 7A01     		.value	0x17a
- 27651 0dc2 6D000000 		.long	0x6d
- 27652 0dc6 00       		.byte	0x0
- 27653 0dc7 22       		.uleb128 0x22
- 27654 0dc8 00000000 		.long	.LASF333
- 27655 0dcc 02       		.byte	0x2
- 27656 0dcd E6       		.byte	0xe6
- 27657 0dce 01       		.byte	0x1
- 27658 0dcf B1010000 		.long	0x1b1
- 27659 0dd3 03       		.byte	0x3
- 27660 0dd4 ED0D0000 		.long	0xded
- 27661 0dd8 23       		.uleb128 0x23
- 27662 0dd9 763100   		.string	"v1"
- 27663 0ddc 02       		.byte	0x2
- 27664 0ddd E6       		.byte	0xe6
- 27665 0dde B1010000 		.long	0x1b1
- 27666 0de2 23       		.uleb128 0x23
- 27667 0de3 763200   		.string	"v2"
- 27668 0de6 02       		.byte	0x2
- 27669 0de7 E6       		.byte	0xe6
- 27670 0de8 B1010000 		.long	0x1b1
- 27671 0dec 00       		.byte	0x0
- 27672 0ded 25       		.uleb128 0x25
- 27673 0dee 00000000 		.long	.LASF334
- 27674 0df2 02       		.byte	0x2
- 27675 0df3 1E01     		.value	0x11e
- 27676 0df5 01       		.byte	0x1
- 27677 0df6 B1010000 		.long	0x1b1
- 27678 0dfa 03       		.byte	0x3
- 27679 0dfb 160E0000 		.long	0xe16
- 27680 0dff 2B       		.uleb128 0x2b
- 27681 0e00 763100   		.string	"v1"
- 27682 0e03 02       		.byte	0x2
- 27683 0e04 1E01     		.value	0x11e
- 27684 0e06 B1010000 		.long	0x1b1
- 27685 0e0a 2B       		.uleb128 0x2b
- 27686 0e0b 763200   		.string	"v2"
- 27687 0e0e 02       		.byte	0x2
- 27688 0e0f 1E01     		.value	0x11e
- 27689 0e11 B1010000 		.long	0x1b1
- 27690 0e15 00       		.byte	0x0
- 27691 0e16 25       		.uleb128 0x25
- 27692 0e17 00000000 		.long	.LASF335
- 27693 0e1b 02       		.byte	0x2
- 27694 0e1c 9502     		.value	0x295
- 27695 0e1e 01       		.byte	0x1
- 27696 0e1f B1010000 		.long	0x1b1
- 27697 0e23 03       		.byte	0x3
- 27698 0e24 520E0000 		.long	0xe52
- 27699 0e28 26       		.uleb128 0x26
- 27700 0e29 00000000 		.long	.LASF66
- 27701 0e2d 02       		.byte	0x2
- 27702 0e2e 9502     		.value	0x295
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 806
-
-
- 27703 0e30 B1010000 		.long	0x1b1
- 27704 0e34 2C       		.uleb128 0x2c
- 27705 0e35 00000000 		.long	.LASF336
- 27706 0e39 02       		.byte	0x2
- 27707 0e3a 9702     		.value	0x297
- 27708 0e3c 1A0D0000 		.long	0xd1a
- 27709 0e40 10       		.byte	0x10
- 27710 0e41 01       		.byte	0x1
- 27711 0e42 02       		.byte	0x2
- 27712 0e43 03       		.byte	0x3
- 27713 0e44 00       		.byte	0x0
- 27714 0e45 05       		.byte	0x5
- 27715 0e46 06       		.byte	0x6
- 27716 0e47 07       		.byte	0x7
- 27717 0e48 04       		.byte	0x4
- 27718 0e49 09       		.byte	0x9
- 27719 0e4a 0A       		.byte	0xa
- 27720 0e4b 0B       		.byte	0xb
- 27721 0e4c 08       		.byte	0x8
- 27722 0e4d 0D       		.byte	0xd
- 27723 0e4e 0E       		.byte	0xe
- 27724 0e4f 0F       		.byte	0xf
- 27725 0e50 0C       		.byte	0xc
- 27726 0e51 00       		.byte	0x0
- 27727 0e52 22       		.uleb128 0x22
- 27728 0e53 00000000 		.long	.LASF337
- 27729 0e57 02       		.byte	0x2
- 27730 0e58 AE       		.byte	0xae
- 27731 0e59 01       		.byte	0x1
- 27732 0e5a B1010000 		.long	0x1b1
- 27733 0e5e 03       		.byte	0x3
- 27734 0e5f 780E0000 		.long	0xe78
- 27735 0e63 23       		.uleb128 0x23
- 27736 0e64 763100   		.string	"v1"
- 27737 0e67 02       		.byte	0x2
- 27738 0e68 AE       		.byte	0xae
- 27739 0e69 B1010000 		.long	0x1b1
- 27740 0e6d 23       		.uleb128 0x23
- 27741 0e6e 763200   		.string	"v2"
- 27742 0e71 02       		.byte	0x2
- 27743 0e72 AE       		.byte	0xae
- 27744 0e73 B1010000 		.long	0x1b1
- 27745 0e77 00       		.byte	0x0
- 27746 0e78 25       		.uleb128 0x25
- 27747 0e79 00000000 		.long	.LASF338
- 27748 0e7d 02       		.byte	0x2
- 27749 0e7e 4605     		.value	0x546
- 27750 0e80 01       		.byte	0x1
- 27751 0e81 B1010000 		.long	0x1b1
- 27752 0e85 03       		.byte	0x3
- 27753 0e86 A30E0000 		.long	0xea3
- 27754 0e8a 26       		.uleb128 0x26
- 27755 0e8b 00000000 		.long	.LASF66
- 27756 0e8f 02       		.byte	0x2
- 27757 0e90 4605     		.value	0x546
- 27758 0e92 B1010000 		.long	0x1b1
- 27759 0e96 27       		.uleb128 0x27
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 807
-
-
- 27760 0e97 00000000 		.long	.LASF339
- 27761 0e9b 02       		.byte	0x2
- 27762 0e9c 4B05     		.value	0x54b
- 27763 0e9e 27050000 		.long	0x527
- 27764 0ea2 00       		.byte	0x0
- 27765 0ea3 25       		.uleb128 0x25
- 27766 0ea4 00000000 		.long	.LASF340
- 27767 0ea8 02       		.byte	0x2
- 27768 0ea9 1A06     		.value	0x61a
- 27769 0eab 01       		.byte	0x1
- 27770 0eac B1010000 		.long	0x1b1
- 27771 0eb0 03       		.byte	0x3
- 27772 0eb1 CE0E0000 		.long	0xece
- 27773 0eb5 26       		.uleb128 0x26
- 27774 0eb6 00000000 		.long	.LASF66
- 27775 0eba 02       		.byte	0x2
- 27776 0ebb 1A06     		.value	0x61a
- 27777 0ebd B1010000 		.long	0x1b1
- 27778 0ec1 27       		.uleb128 0x27
- 27779 0ec2 00000000 		.long	.LASF341
- 27780 0ec6 02       		.byte	0x2
- 27781 0ec7 1D06     		.value	0x61d
- 27782 0ec9 B1010000 		.long	0x1b1
- 27783 0ecd 00       		.byte	0x0
- 27784 0ece 25       		.uleb128 0x25
- 27785 0ecf 00000000 		.long	.LASF342
- 27786 0ed3 02       		.byte	0x2
- 27787 0ed4 FA04     		.value	0x4fa
- 27788 0ed6 01       		.byte	0x1
- 27789 0ed7 B1010000 		.long	0x1b1
- 27790 0edb 03       		.byte	0x3
- 27791 0edc F90E0000 		.long	0xef9
- 27792 0ee0 26       		.uleb128 0x26
- 27793 0ee1 00000000 		.long	.LASF66
- 27794 0ee5 02       		.byte	0x2
- 27795 0ee6 FA04     		.value	0x4fa
- 27796 0ee8 B1010000 		.long	0x1b1
- 27797 0eec 27       		.uleb128 0x27
- 27798 0eed 00000000 		.long	.LASF339
- 27799 0ef1 02       		.byte	0x2
- 27800 0ef2 0005     		.value	0x500
- 27801 0ef4 27050000 		.long	0x527
- 27802 0ef8 00       		.byte	0x0
- 27803 0ef9 2D       		.uleb128 0x2d
- 27804 0efa 00000000 		.long	.LASF351
- 27805 0efe 02       		.byte	0x2
- 27806 0eff C206     		.value	0x6c2
- 27807 0f01 01       		.byte	0x1
- 27808 0f02 00000000 		.quad	.LFB563
- 27808      00000000 
- 27809 0f0a 00000000 		.quad	.LFE563
- 27809      00000000 
- 27810 0f12 00000000 		.long	.LLST1
- 27811 0f16 89480000 		.long	0x4889
- 27812 0f1a 2E       		.uleb128 0x2e
- 27813 0f1b 00000000 		.long	.LASF64
- 27814 0f1f 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 808
-
-
- 27815 0f20 C206     		.value	0x6c2
- 27816 0f22 89480000 		.long	0x4889
- 27817 0f26 04       		.byte	0x4
- 27818 0f27 91       		.byte	0x91
- 27819 0f28 A8B57F   		.sleb128 -9560
- 27820 0f2b 2F       		.uleb128 0x2f
- 27821 0f2c 6B657900 		.string	"key"
- 27822 0f30 02       		.byte	0x2
- 27823 0f31 C206     		.value	0x6c2
- 27824 0f33 8F480000 		.long	0x488f
- 27825 0f37 04       		.byte	0x4
- 27826 0f38 91       		.byte	0x91
- 27827 0f39 A0B57F   		.sleb128 -9568
- 27828 0f3c 30       		.uleb128 0x30
- 27829 0f3d 00000000 		.long	.LASF66
- 27830 0f41 02       		.byte	0x2
- 27831 0f42 C406     		.value	0x6c4
- 27832 0f44 B1010000 		.long	0x1b1
- 27833 0f48 03       		.byte	0x3
- 27834 0f49 91       		.byte	0x91
- 27835 0f4a 804C     		.sleb128 -6656
- 27836 0f4c 30       		.uleb128 0x30
- 27837 0f4d 00000000 		.long	.LASF343
- 27838 0f51 02       		.byte	0x2
- 27839 0f52 C506     		.value	0x6c5
- 27840 0f54 B1010000 		.long	0x1b1
- 27841 0f58 03       		.byte	0x3
- 27842 0f59 91       		.byte	0x91
- 27843 0f5a 904C     		.sleb128 -6640
- 27844 0f5c 31       		.uleb128 0x31
- 27845 0f5d AB0B0000 		.long	0xbab
- 27846 0f61 00000000 		.quad	.LBB444
- 27846      00000000 
- 27847 0f69 00000000 		.quad	.LBE444
- 27847      00000000 
- 27848 0f71 02       		.byte	0x2
- 27849 0f72 C706     		.value	0x6c7
- 27850 0f74 9E0F0000 		.long	0xf9e
- 27851 0f78 32       		.uleb128 0x32
- 27852 0f79 BC0B0000 		.long	0xbbc
- 27853 0f7d 03       		.byte	0x3
- 27854 0f7e 91       		.byte	0x91
- 27855 0f7f A04C     		.sleb128 -6624
- 27856 0f81 33       		.uleb128 0x33
- 27857 0f82 00000000 		.quad	.LBB445
- 27857      00000000 
- 27858 0f8a 00000000 		.quad	.LBE445
- 27858      00000000 
- 27859 0f92 34       		.uleb128 0x34
- 27860 0f93 C70B0000 		.long	0xbc7
- 27861 0f97 04       		.byte	0x4
- 27862 0f98 91       		.byte	0x91
- 27863 0f99 B0B57F   		.sleb128 -9552
- 27864 0f9c 00       		.byte	0x0
- 27865 0f9d 00       		.byte	0x0
- 27866 0f9e 31       		.uleb128 0x31
- 27867 0f9f D10B0000 		.long	0xbd1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 809
-
-
- 27868 0fa3 00000000 		.quad	.LBB446
- 27868      00000000 
- 27869 0fab 00000000 		.quad	.LBE446
- 27869      00000000 
- 27870 0fb3 02       		.byte	0x2
- 27871 0fb4 D006     		.value	0x6d0
- 27872 0fb6 55140000 		.long	0x1455
- 27873 0fba 32       		.uleb128 0x32
- 27874 0fbb EF0B0000 		.long	0xbef
- 27875 0fbf 03       		.byte	0x3
- 27876 0fc0 91       		.byte	0x91
- 27877 0fc1 AC4C     		.sleb128 -6612
- 27878 0fc3 32       		.uleb128 0x32
- 27879 0fc4 E30B0000 		.long	0xbe3
- 27880 0fc8 03       		.byte	0x3
- 27881 0fc9 91       		.byte	0x91
- 27882 0fca B04C     		.sleb128 -6608
- 27883 0fcc 33       		.uleb128 0x33
- 27884 0fcd 00000000 		.quad	.LBB447
- 27884      00000000 
- 27885 0fd5 00000000 		.quad	.LBE447
- 27885      00000000 
- 27886 0fdd 34       		.uleb128 0x34
- 27887 0fde FB0B0000 		.long	0xbfb
- 27888 0fe2 04       		.byte	0x4
- 27889 0fe3 76       		.byte	0x76
- 27890 0fe4 C0B07F   		.sleb128 -10176
- 27891 0fe7 34       		.uleb128 0x34
- 27892 0fe8 070C0000 		.long	0xc07
- 27893 0fec 04       		.byte	0x4
- 27894 0fed 76       		.byte	0x76
- 27895 0fee B0B07F   		.sleb128 -10192
- 27896 0ff1 31       		.uleb128 0x31
- 27897 0ff2 500C0000 		.long	0xc50
- 27898 0ff6 00000000 		.quad	.LBB448
- 27898      00000000 
- 27899 0ffe 00000000 		.quad	.LBE448
- 27899      00000000 
- 27900 1006 02       		.byte	0x2
- 27901 1007 9106     		.value	0x691
- 27902 1009 45100000 		.long	0x1045
- 27903 100d 32       		.uleb128 0x32
- 27904 100e 7A0C0000 		.long	0xc7a
- 27905 1012 03       		.byte	0x3
- 27906 1013 91       		.byte	0x91
- 27907 1014 C84C     		.sleb128 -6584
- 27908 1016 32       		.uleb128 0x32
- 27909 1017 6E0C0000 		.long	0xc6e
- 27910 101b 03       		.byte	0x3
- 27911 101c 91       		.byte	0x91
- 27912 101d CC4C     		.sleb128 -6580
- 27913 101f 32       		.uleb128 0x32
- 27914 1020 620C0000 		.long	0xc62
- 27915 1024 03       		.byte	0x3
- 27916 1025 91       		.byte	0x91
- 27917 1026 D04C     		.sleb128 -6576
- 27918 1028 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 810
-
-
- 27919 1029 00000000 		.quad	.LBB449
- 27919      00000000 
- 27920 1031 00000000 		.quad	.LBE449
- 27920      00000000 
- 27921 1039 34       		.uleb128 0x34
- 27922 103a 860C0000 		.long	0xc86
- 27923 103e 04       		.byte	0x4
- 27924 103f 91       		.byte	0x91
- 27925 1040 80B67F   		.sleb128 -9472
- 27926 1043 00       		.byte	0x0
- 27927 1044 00       		.byte	0x0
- 27928 1045 31       		.uleb128 0x31
- 27929 1046 910C0000 		.long	0xc91
- 27930 104a 00000000 		.quad	.LBB450
- 27930      00000000 
- 27931 1052 00000000 		.quad	.LBE450
- 27931      00000000 
- 27932 105a 02       		.byte	0x2
- 27933 105b 9206     		.value	0x692
- 27934 105d BB120000 		.long	0x12bb
- 27935 1061 32       		.uleb128 0x32
- 27936 1062 A30C0000 		.long	0xca3
- 27937 1066 03       		.byte	0x3
- 27938 1067 91       		.byte	0x91
- 27939 1068 E04C     		.sleb128 -6560
- 27940 106a 35       		.uleb128 0x35
- 27941 106b B00C0000 		.long	0xcb0
- 27942 106f 00000000 		.quad	.LBB452
- 27942      00000000 
- 27943 1077 00000000 		.quad	.LBE452
- 27943      00000000 
- 27944 107f 02       		.byte	0x2
- 27945 1080 7D03     		.value	0x37d
- 27946 1082 32       		.uleb128 0x32
- 27947 1083 CE0C0000 		.long	0xcce
- 27948 1087 03       		.byte	0x3
- 27949 1088 91       		.byte	0x91
- 27950 1089 F84C     		.sleb128 -6536
- 27951 108b 32       		.uleb128 0x32
- 27952 108c C20C0000 		.long	0xcc2
- 27953 1090 03       		.byte	0x3
- 27954 1091 91       		.byte	0x91
- 27955 1092 804D     		.sleb128 -6528
- 27956 1094 33       		.uleb128 0x33
- 27957 1095 00000000 		.quad	.LBB453
- 27957      00000000 
- 27958 109d 00000000 		.quad	.LBE453
- 27958      00000000 
- 27959 10a5 34       		.uleb128 0x34
- 27960 10a6 DA0C0000 		.long	0xcda
- 27961 10aa 03       		.byte	0x3
- 27962 10ab 91       		.byte	0x91
- 27963 10ac D04D     		.sleb128 -6448
- 27964 10ae 34       		.uleb128 0x34
- 27965 10af E50C0000 		.long	0xce5
- 27966 10b3 03       		.byte	0x3
- 27967 10b4 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 811
-
-
- 27968 10b5 C04D     		.sleb128 -6464
- 27969 10b7 34       		.uleb128 0x34
- 27970 10b8 F00C0000 		.long	0xcf0
- 27971 10bc 03       		.byte	0x3
- 27972 10bd 91       		.byte	0x91
- 27973 10be B04D     		.sleb128 -6480
- 27974 10c0 34       		.uleb128 0x34
- 27975 10c1 FC0C0000 		.long	0xcfc
- 27976 10c5 03       		.byte	0x3
- 27977 10c6 91       		.byte	0x91
- 27978 10c7 A04D     		.sleb128 -6496
- 27979 10c9 34       		.uleb128 0x34
- 27980 10ca 080D0000 		.long	0xd08
- 27981 10ce 03       		.byte	0x3
- 27982 10cf 91       		.byte	0x91
- 27983 10d0 9C4D     		.sleb128 -6500
- 27984 10d2 31       		.uleb128 0x31
- 27985 10d3 1F0D0000 		.long	0xd1f
- 27986 10d7 00000000 		.quad	.LBB454
- 27986      00000000 
- 27987 10df 00000000 		.quad	.LBE454
- 27987      00000000 
- 27988 10e7 02       		.byte	0x2
- 27989 10e8 5603     		.value	0x356
- 27990 10ea 01110000 		.long	0x1101
- 27991 10ee 32       		.uleb128 0x32
- 27992 10ef 3A0D0000 		.long	0xd3a
- 27993 10f3 03       		.byte	0x3
- 27994 10f4 91       		.byte	0x91
- 27995 10f5 E04D     		.sleb128 -6432
- 27996 10f7 32       		.uleb128 0x32
- 27997 10f8 300D0000 		.long	0xd30
- 27998 10fc 03       		.byte	0x3
- 27999 10fd 91       		.byte	0x91
- 28000 10fe F04D     		.sleb128 -6416
- 28001 1100 00       		.byte	0x0
- 28002 1101 31       		.uleb128 0x31
- 28003 1102 450D0000 		.long	0xd45
- 28004 1106 00000000 		.quad	.LBB456
- 28004      00000000 
- 28005 110e 00000000 		.quad	.LBE456
- 28005      00000000 
- 28006 1116 02       		.byte	0x2
- 28007 1117 5E03     		.value	0x35e
- 28008 1119 30110000 		.long	0x1130
- 28009 111d 32       		.uleb128 0x32
- 28010 111e 620D0000 		.long	0xd62
- 28011 1122 03       		.byte	0x3
- 28012 1123 91       		.byte	0x91
- 28013 1124 804E     		.sleb128 -6400
- 28014 1126 32       		.uleb128 0x32
- 28015 1127 570D0000 		.long	0xd57
- 28016 112b 03       		.byte	0x3
- 28017 112c 91       		.byte	0x91
- 28018 112d 904E     		.sleb128 -6384
- 28019 112f 00       		.byte	0x0
- 28020 1130 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 812
-
-
- 28021 1131 6E0D0000 		.long	0xd6e
- 28022 1135 00000000 		.quad	.LBB458
- 28022      00000000 
- 28023 113d 00000000 		.quad	.LBE458
- 28023      00000000 
- 28024 1145 02       		.byte	0x2
- 28025 1146 6403     		.value	0x364
- 28026 1148 98110000 		.long	0x1198
- 28027 114c 32       		.uleb128 0x32
- 28028 114d 8C0D0000 		.long	0xd8c
- 28029 1151 03       		.byte	0x3
- 28030 1152 91       		.byte	0x91
- 28031 1153 A04E     		.sleb128 -6368
- 28032 1155 32       		.uleb128 0x32
- 28033 1156 800D0000 		.long	0xd80
- 28034 115a 03       		.byte	0x3
- 28035 115b 91       		.byte	0x91
- 28036 115c B04E     		.sleb128 -6352
- 28037 115e 33       		.uleb128 0x33
- 28038 115f 00000000 		.quad	.LBB459
- 28038      00000000 
- 28039 1167 00000000 		.quad	.LBE459
- 28039      00000000 
- 28040 116f 34       		.uleb128 0x34
- 28041 1170 980D0000 		.long	0xd98
- 28042 1174 04       		.byte	0x4
- 28043 1175 91       		.byte	0x91
- 28044 1176 B0B67F   		.sleb128 -9424
- 28045 1179 34       		.uleb128 0x34
- 28046 117a A40D0000 		.long	0xda4
- 28047 117e 04       		.byte	0x4
- 28048 117f 91       		.byte	0x91
- 28049 1180 A0B67F   		.sleb128 -9440
- 28050 1183 34       		.uleb128 0x34
- 28051 1184 AF0D0000 		.long	0xdaf
- 28052 1188 04       		.byte	0x4
- 28053 1189 91       		.byte	0x91
- 28054 118a 90B67F   		.sleb128 -9456
- 28055 118d 34       		.uleb128 0x34
- 28056 118e BB0D0000 		.long	0xdbb
- 28057 1192 03       		.byte	0x3
- 28058 1193 91       		.byte	0x91
- 28059 1194 CC4E     		.sleb128 -6324
- 28060 1196 00       		.byte	0x0
- 28061 1197 00       		.byte	0x0
- 28062 1198 31       		.uleb128 0x31
- 28063 1199 C70D0000 		.long	0xdc7
- 28064 119d 00000000 		.quad	.LBB460
- 28064      00000000 
- 28065 11a5 00000000 		.quad	.LBE460
- 28065      00000000 
- 28066 11ad 02       		.byte	0x2
- 28067 11ae 6603     		.value	0x366
- 28068 11b0 C7110000 		.long	0x11c7
- 28069 11b4 32       		.uleb128 0x32
- 28070 11b5 E20D0000 		.long	0xde2
- 28071 11b9 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 813
-
-
- 28072 11ba 91       		.byte	0x91
- 28073 11bb D04E     		.sleb128 -6320
- 28074 11bd 32       		.uleb128 0x32
- 28075 11be D80D0000 		.long	0xdd8
- 28076 11c2 03       		.byte	0x3
- 28077 11c3 91       		.byte	0x91
- 28078 11c4 E04E     		.sleb128 -6304
- 28079 11c6 00       		.byte	0x0
- 28080 11c7 31       		.uleb128 0x31
- 28081 11c8 6E0D0000 		.long	0xd6e
- 28082 11cc 00000000 		.quad	.LBB462
- 28082      00000000 
- 28083 11d4 00000000 		.quad	.LBE462
- 28083      00000000 
- 28084 11dc 02       		.byte	0x2
- 28085 11dd 6803     		.value	0x368
- 28086 11df 2F120000 		.long	0x122f
- 28087 11e3 32       		.uleb128 0x32
- 28088 11e4 8C0D0000 		.long	0xd8c
- 28089 11e8 03       		.byte	0x3
- 28090 11e9 91       		.byte	0x91
- 28091 11ea F04E     		.sleb128 -6288
- 28092 11ec 32       		.uleb128 0x32
- 28093 11ed 800D0000 		.long	0xd80
- 28094 11f1 03       		.byte	0x3
- 28095 11f2 91       		.byte	0x91
- 28096 11f3 804F     		.sleb128 -6272
- 28097 11f5 33       		.uleb128 0x33
- 28098 11f6 00000000 		.quad	.LBB463
- 28098      00000000 
- 28099 11fe 00000000 		.quad	.LBE463
- 28099      00000000 
- 28100 1206 34       		.uleb128 0x34
- 28101 1207 980D0000 		.long	0xd98
- 28102 120b 04       		.byte	0x4
- 28103 120c 91       		.byte	0x91
- 28104 120d E0B67F   		.sleb128 -9376
- 28105 1210 34       		.uleb128 0x34
- 28106 1211 A40D0000 		.long	0xda4
- 28107 1215 04       		.byte	0x4
- 28108 1216 91       		.byte	0x91
- 28109 1217 D0B67F   		.sleb128 -9392
- 28110 121a 34       		.uleb128 0x34
- 28111 121b AF0D0000 		.long	0xdaf
- 28112 121f 04       		.byte	0x4
- 28113 1220 91       		.byte	0x91
- 28114 1221 C0B67F   		.sleb128 -9408
- 28115 1224 34       		.uleb128 0x34
- 28116 1225 BB0D0000 		.long	0xdbb
- 28117 1229 03       		.byte	0x3
- 28118 122a 91       		.byte	0x91
- 28119 122b 9C4F     		.sleb128 -6244
- 28120 122d 00       		.byte	0x0
- 28121 122e 00       		.byte	0x0
- 28122 122f 31       		.uleb128 0x31
- 28123 1230 C70D0000 		.long	0xdc7
- 28124 1234 00000000 		.quad	.LBB464
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 814
-
-
- 28124      00000000 
- 28125 123c 00000000 		.quad	.LBE464
- 28125      00000000 
- 28126 1244 02       		.byte	0x2
- 28127 1245 6A03     		.value	0x36a
- 28128 1247 5E120000 		.long	0x125e
- 28129 124b 32       		.uleb128 0x32
- 28130 124c E20D0000 		.long	0xde2
- 28131 1250 03       		.byte	0x3
- 28132 1251 91       		.byte	0x91
- 28133 1252 A04F     		.sleb128 -6240
- 28134 1254 32       		.uleb128 0x32
- 28135 1255 D80D0000 		.long	0xdd8
- 28136 1259 03       		.byte	0x3
- 28137 125a 91       		.byte	0x91
- 28138 125b B04F     		.sleb128 -6224
- 28139 125d 00       		.byte	0x0
- 28140 125e 31       		.uleb128 0x31
- 28141 125f ED0D0000 		.long	0xded
- 28142 1263 00000000 		.quad	.LBB466
- 28142      00000000 
- 28143 126b 00000000 		.quad	.LBE466
- 28143      00000000 
- 28144 1273 02       		.byte	0x2
- 28145 1274 6C03     		.value	0x36c
- 28146 1276 8D120000 		.long	0x128d
- 28147 127a 32       		.uleb128 0x32
- 28148 127b 0A0E0000 		.long	0xe0a
- 28149 127f 03       		.byte	0x3
- 28150 1280 91       		.byte	0x91
- 28151 1281 C04F     		.sleb128 -6208
- 28152 1283 32       		.uleb128 0x32
- 28153 1284 FF0D0000 		.long	0xdff
- 28154 1288 03       		.byte	0x3
- 28155 1289 91       		.byte	0x91
- 28156 128a D04F     		.sleb128 -6192
- 28157 128c 00       		.byte	0x0
- 28158 128d 35       		.uleb128 0x35
- 28159 128e 1F0D0000 		.long	0xd1f
- 28160 1292 00000000 		.quad	.LBB468
- 28160      00000000 
- 28161 129a 00000000 		.quad	.LBE468
- 28161      00000000 
- 28162 12a2 02       		.byte	0x2
- 28163 12a3 6E03     		.value	0x36e
- 28164 12a5 32       		.uleb128 0x32
- 28165 12a6 3A0D0000 		.long	0xd3a
- 28166 12aa 03       		.byte	0x3
- 28167 12ab 91       		.byte	0x91
- 28168 12ac E04F     		.sleb128 -6176
- 28169 12ae 32       		.uleb128 0x32
- 28170 12af 300D0000 		.long	0xd30
- 28171 12b3 03       		.byte	0x3
- 28172 12b4 91       		.byte	0x91
- 28173 12b5 F04F     		.sleb128 -6160
- 28174 12b7 00       		.byte	0x0
- 28175 12b8 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 815
-
-
- 28176 12b9 00       		.byte	0x0
- 28177 12ba 00       		.byte	0x0
- 28178 12bb 36       		.uleb128 0x36
- 28179 12bc 00000000 		.quad	.LBB470
- 28179      00000000 
- 28180 12c4 00000000 		.quad	.LBE470
- 28180      00000000 
- 28181 12cc DB120000 		.long	0x12db
- 28182 12d0 34       		.uleb128 0x34
- 28183 12d1 180C0000 		.long	0xc18
- 28184 12d5 04       		.byte	0x4
- 28185 12d6 91       		.byte	0x91
- 28186 12d7 F0B57F   		.sleb128 -9488
- 28187 12da 00       		.byte	0x0
- 28188 12db 31       		.uleb128 0x31
- 28189 12dc 160E0000 		.long	0xe16
- 28190 12e0 00000000 		.quad	.LBB471
- 28190      00000000 
- 28191 12e8 00000000 		.quad	.LBE471
- 28191      00000000 
- 28192 12f0 02       		.byte	0x2
- 28193 12f1 9406     		.value	0x694
- 28194 12f3 86130000 		.long	0x1386
- 28195 12f7 32       		.uleb128 0x32
- 28196 12f8 280E0000 		.long	0xe28
- 28197 12fc 03       		.byte	0x3
- 28198 12fd 91       		.byte	0x91
- 28199 12fe 8050     		.sleb128 -6144
- 28200 1300 33       		.uleb128 0x33
- 28201 1301 00000000 		.quad	.LBB472
- 28201      00000000 
- 28202 1309 00000000 		.quad	.LBE472
- 28202      00000000 
- 28203 1311 34       		.uleb128 0x34
- 28204 1312 340E0000 		.long	0xe34
- 28205 1316 09       		.byte	0x9
- 28206 1317 03       		.byte	0x3
- 28207 1318 00000000 		.quad	ShiftRowTable.6768
- 28207      00000000 
- 28208 1320 35       		.uleb128 0x35
- 28209 1321 6E0D0000 		.long	0xd6e
- 28210 1325 00000000 		.quad	.LBB473
- 28210      00000000 
- 28211 132d 00000000 		.quad	.LBE473
- 28211      00000000 
- 28212 1335 02       		.byte	0x2
- 28213 1336 9B02     		.value	0x29b
- 28214 1338 32       		.uleb128 0x32
- 28215 1339 8C0D0000 		.long	0xd8c
- 28216 133d 03       		.byte	0x3
- 28217 133e 91       		.byte	0x91
- 28218 133f 9050     		.sleb128 -6128
- 28219 1341 32       		.uleb128 0x32
- 28220 1342 800D0000 		.long	0xd80
- 28221 1346 03       		.byte	0x3
- 28222 1347 91       		.byte	0x91
- 28223 1348 A050     		.sleb128 -6112
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 816
-
-
- 28224 134a 33       		.uleb128 0x33
- 28225 134b 00000000 		.quad	.LBB474
- 28225      00000000 
- 28226 1353 00000000 		.quad	.LBE474
- 28226      00000000 
- 28227 135b 34       		.uleb128 0x34
- 28228 135c 980D0000 		.long	0xd98
- 28229 1360 04       		.byte	0x4
- 28230 1361 91       		.byte	0x91
- 28231 1362 90B77F   		.sleb128 -9328
- 28232 1365 34       		.uleb128 0x34
- 28233 1366 A40D0000 		.long	0xda4
- 28234 136a 04       		.byte	0x4
- 28235 136b 91       		.byte	0x91
- 28236 136c 80B77F   		.sleb128 -9344
- 28237 136f 34       		.uleb128 0x34
- 28238 1370 AF0D0000 		.long	0xdaf
- 28239 1374 04       		.byte	0x4
- 28240 1375 91       		.byte	0x91
- 28241 1376 F0B67F   		.sleb128 -9360
- 28242 1379 34       		.uleb128 0x34
- 28243 137a BB0D0000 		.long	0xdbb
- 28244 137e 03       		.byte	0x3
- 28245 137f 91       		.byte	0x91
- 28246 1380 BC50     		.sleb128 -6084
- 28247 1382 00       		.byte	0x0
- 28248 1383 00       		.byte	0x0
- 28249 1384 00       		.byte	0x0
- 28250 1385 00       		.byte	0x0
- 28251 1386 36       		.uleb128 0x36
- 28252 1387 00000000 		.quad	.LBB475
- 28252      00000000 
- 28253 138f 00000000 		.quad	.LBE475
- 28253      00000000 
- 28254 1397 A6130000 		.long	0x13a6
- 28255 139b 34       		.uleb128 0x34
- 28256 139c 280C0000 		.long	0xc28
- 28257 13a0 04       		.byte	0x4
- 28258 13a1 91       		.byte	0x91
- 28259 13a2 E0B57F   		.sleb128 -9504
- 28260 13a5 00       		.byte	0x0
- 28261 13a6 31       		.uleb128 0x31
- 28262 13a7 520E0000 		.long	0xe52
- 28263 13ab 00000000 		.quad	.LBB476
- 28263      00000000 
- 28264 13b3 00000000 		.quad	.LBE476
- 28264      00000000 
- 28265 13bb 02       		.byte	0x2
- 28266 13bc 9606     		.value	0x696
- 28267 13be D5130000 		.long	0x13d5
- 28268 13c2 32       		.uleb128 0x32
- 28269 13c3 6D0E0000 		.long	0xe6d
- 28270 13c7 03       		.byte	0x3
- 28271 13c8 91       		.byte	0x91
- 28272 13c9 C050     		.sleb128 -6080
- 28273 13cb 32       		.uleb128 0x32
- 28274 13cc 630E0000 		.long	0xe63
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 817
-
-
- 28275 13d0 03       		.byte	0x3
- 28276 13d1 91       		.byte	0x91
- 28277 13d2 D050     		.sleb128 -6064
- 28278 13d4 00       		.byte	0x0
- 28279 13d5 36       		.uleb128 0x36
- 28280 13d6 00000000 		.quad	.LBB478
- 28280      00000000 
- 28281 13de 00000000 		.quad	.LBE478
- 28281      00000000 
- 28282 13e6 F5130000 		.long	0x13f5
- 28283 13ea 34       		.uleb128 0x34
- 28284 13eb 380C0000 		.long	0xc38
- 28285 13ef 04       		.byte	0x4
- 28286 13f0 91       		.byte	0x91
- 28287 13f1 D0B57F   		.sleb128 -9520
- 28288 13f4 00       		.byte	0x0
- 28289 13f5 31       		.uleb128 0x31
- 28290 13f6 780E0000 		.long	0xe78
- 28291 13fa 00000000 		.quad	.LBB479
- 28291      00000000 
- 28292 1402 00000000 		.quad	.LBE479
- 28292      00000000 
- 28293 140a 02       		.byte	0x2
- 28294 140b 9806     		.value	0x698
- 28295 140d 37140000 		.long	0x1437
- 28296 1411 32       		.uleb128 0x32
- 28297 1412 8A0E0000 		.long	0xe8a
- 28298 1416 03       		.byte	0x3
- 28299 1417 91       		.byte	0x91
- 28300 1418 E050     		.sleb128 -6048
- 28301 141a 33       		.uleb128 0x33
- 28302 141b 00000000 		.quad	.LBB480
- 28302      00000000 
- 28303 1423 00000000 		.quad	.LBE480
- 28303      00000000 
- 28304 142b 34       		.uleb128 0x34
- 28305 142c 960E0000 		.long	0xe96
- 28306 1430 04       		.byte	0x4
- 28307 1431 91       		.byte	0x91
- 28308 1432 A0B77F   		.sleb128 -9312
- 28309 1435 00       		.byte	0x0
- 28310 1436 00       		.byte	0x0
- 28311 1437 33       		.uleb128 0x33
- 28312 1438 00000000 		.quad	.LBB481
- 28312      00000000 
- 28313 1440 00000000 		.quad	.LBE481
- 28313      00000000 
- 28314 1448 34       		.uleb128 0x34
- 28315 1449 440C0000 		.long	0xc44
- 28316 144d 04       		.byte	0x4
- 28317 144e 91       		.byte	0x91
- 28318 144f C0B57F   		.sleb128 -9536
- 28319 1452 00       		.byte	0x0
- 28320 1453 00       		.byte	0x0
- 28321 1454 00       		.byte	0x0
- 28322 1455 31       		.uleb128 0x31
- 28323 1456 A30E0000 		.long	0xea3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 818
-
-
- 28324 145a 00000000 		.quad	.LBB482
- 28324      00000000 
- 28325 1462 00000000 		.quad	.LBE482
- 28325      00000000 
- 28326 146a 02       		.byte	0x2
- 28327 146b D006     		.value	0x6d0
- 28328 146d 59150000 		.long	0x1559
- 28329 1471 32       		.uleb128 0x32
- 28330 1472 B50E0000 		.long	0xeb5
- 28331 1476 03       		.byte	0x3
- 28332 1477 91       		.byte	0x91
- 28333 1478 F050     		.sleb128 -6032
- 28334 147a 33       		.uleb128 0x33
- 28335 147b 00000000 		.quad	.LBB483
- 28335      00000000 
- 28336 1483 00000000 		.quad	.LBE483
- 28336      00000000 
- 28337 148b 34       		.uleb128 0x34
- 28338 148c C10E0000 		.long	0xec1
- 28339 1490 04       		.byte	0x4
- 28340 1491 76       		.byte	0x76
- 28341 1492 E0B07F   		.sleb128 -10144
- 28342 1495 31       		.uleb128 0x31
- 28343 1496 CE0E0000 		.long	0xece
- 28344 149a 00000000 		.quad	.LBB484
- 28344      00000000 
- 28345 14a2 00000000 		.quad	.LBE484
- 28345      00000000 
- 28346 14aa 02       		.byte	0x2
- 28347 14ab 1F06     		.value	0x61f
- 28348 14ad D7140000 		.long	0x14d7
- 28349 14b1 32       		.uleb128 0x32
- 28350 14b2 E00E0000 		.long	0xee0
- 28351 14b6 03       		.byte	0x3
- 28352 14b7 91       		.byte	0x91
- 28353 14b8 8051     		.sleb128 -6016
- 28354 14ba 33       		.uleb128 0x33
- 28355 14bb 00000000 		.quad	.LBB485
- 28355      00000000 
- 28356 14c3 00000000 		.quad	.LBE485
- 28356      00000000 
- 28357 14cb 34       		.uleb128 0x34
- 28358 14cc EC0E0000 		.long	0xeec
- 28359 14d0 04       		.byte	0x4
- 28360 14d1 91       		.byte	0x91
- 28361 14d2 B0B77F   		.sleb128 -9296
- 28362 14d5 00       		.byte	0x0
- 28363 14d6 00       		.byte	0x0
- 28364 14d7 31       		.uleb128 0x31
- 28365 14d8 CE0E0000 		.long	0xece
- 28366 14dc 00000000 		.quad	.LBB486
- 28366      00000000 
- 28367 14e4 00000000 		.quad	.LBE486
- 28367      00000000 
- 28368 14ec 02       		.byte	0x2
- 28369 14ed 2006     		.value	0x620
- 28370 14ef 19150000 		.long	0x1519
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 819
-
-
- 28371 14f3 32       		.uleb128 0x32
- 28372 14f4 E00E0000 		.long	0xee0
- 28373 14f8 03       		.byte	0x3
- 28374 14f9 91       		.byte	0x91
- 28375 14fa 9051     		.sleb128 -6000
- 28376 14fc 33       		.uleb128 0x33
- 28377 14fd 00000000 		.quad	.LBB487
- 28377      00000000 
- 28378 1505 00000000 		.quad	.LBE487
- 28378      00000000 
- 28379 150d 34       		.uleb128 0x34
- 28380 150e EC0E0000 		.long	0xeec
- 28381 1512 04       		.byte	0x4
- 28382 1513 91       		.byte	0x91
- 28383 1514 C0B77F   		.sleb128 -9280
- 28384 1517 00       		.byte	0x0
- 28385 1518 00       		.byte	0x0
- 28386 1519 35       		.uleb128 0x35
- 28387 151a CE0E0000 		.long	0xece
- 28388 151e 00000000 		.quad	.LBB488
- 28388      00000000 
- 28389 1526 00000000 		.quad	.LBE488
- 28389      00000000 
- 28390 152e 02       		.byte	0x2
- 28391 152f 2106     		.value	0x621
- 28392 1531 32       		.uleb128 0x32
- 28393 1532 E00E0000 		.long	0xee0
- 28394 1536 03       		.byte	0x3
- 28395 1537 91       		.byte	0x91
- 28396 1538 A051     		.sleb128 -5984
- 28397 153a 33       		.uleb128 0x33
- 28398 153b 00000000 		.quad	.LBB489
- 28398      00000000 
- 28399 1543 00000000 		.quad	.LBE489
- 28399      00000000 
- 28400 154b 34       		.uleb128 0x34
- 28401 154c EC0E0000 		.long	0xeec
- 28402 1550 04       		.byte	0x4
- 28403 1551 91       		.byte	0x91
- 28404 1552 D0B77F   		.sleb128 -9264
- 28405 1555 00       		.byte	0x0
- 28406 1556 00       		.byte	0x0
- 28407 1557 00       		.byte	0x0
- 28408 1558 00       		.byte	0x0
- 28409 1559 31       		.uleb128 0x31
- 28410 155a D10B0000 		.long	0xbd1
- 28411 155e 00000000 		.quad	.LBB490
- 28411      00000000 
- 28412 1566 00000000 		.quad	.LBE490
- 28412      00000000 
- 28413 156e 02       		.byte	0x2
- 28414 156f D106     		.value	0x6d1
- 28415 1571 101A0000 		.long	0x1a10
- 28416 1575 32       		.uleb128 0x32
- 28417 1576 EF0B0000 		.long	0xbef
- 28418 157a 03       		.byte	0x3
- 28419 157b 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 820
-
-
- 28420 157c BC51     		.sleb128 -5956
- 28421 157e 32       		.uleb128 0x32
- 28422 157f E30B0000 		.long	0xbe3
- 28423 1583 03       		.byte	0x3
- 28424 1584 91       		.byte	0x91
- 28425 1585 C051     		.sleb128 -5952
- 28426 1587 33       		.uleb128 0x33
- 28427 1588 00000000 		.quad	.LBB491
- 28427      00000000 
- 28428 1590 00000000 		.quad	.LBE491
- 28428      00000000 
- 28429 1598 34       		.uleb128 0x34
- 28430 1599 FB0B0000 		.long	0xbfb
- 28431 159d 04       		.byte	0x4
- 28432 159e 76       		.byte	0x76
- 28433 159f 80B17F   		.sleb128 -10112
- 28434 15a2 34       		.uleb128 0x34
- 28435 15a3 070C0000 		.long	0xc07
- 28436 15a7 04       		.byte	0x4
- 28437 15a8 76       		.byte	0x76
- 28438 15a9 F0B07F   		.sleb128 -10128
- 28439 15ac 31       		.uleb128 0x31
- 28440 15ad 500C0000 		.long	0xc50
- 28441 15b1 00000000 		.quad	.LBB492
- 28441      00000000 
- 28442 15b9 00000000 		.quad	.LBE492
- 28442      00000000 
- 28443 15c1 02       		.byte	0x2
- 28444 15c2 9106     		.value	0x691
- 28445 15c4 00160000 		.long	0x1600
- 28446 15c8 32       		.uleb128 0x32
- 28447 15c9 7A0C0000 		.long	0xc7a
- 28448 15cd 03       		.byte	0x3
- 28449 15ce 91       		.byte	0x91
- 28450 15cf D851     		.sleb128 -5928
- 28451 15d1 32       		.uleb128 0x32
- 28452 15d2 6E0C0000 		.long	0xc6e
- 28453 15d6 03       		.byte	0x3
- 28454 15d7 91       		.byte	0x91
- 28455 15d8 DC51     		.sleb128 -5924
- 28456 15da 32       		.uleb128 0x32
- 28457 15db 620C0000 		.long	0xc62
- 28458 15df 03       		.byte	0x3
- 28459 15e0 91       		.byte	0x91
- 28460 15e1 E051     		.sleb128 -5920
- 28461 15e3 33       		.uleb128 0x33
- 28462 15e4 00000000 		.quad	.LBB493
- 28462      00000000 
- 28463 15ec 00000000 		.quad	.LBE493
- 28463      00000000 
- 28464 15f4 34       		.uleb128 0x34
- 28465 15f5 860C0000 		.long	0xc86
- 28466 15f9 04       		.byte	0x4
- 28467 15fa 91       		.byte	0x91
- 28468 15fb A0B87F   		.sleb128 -9184
- 28469 15fe 00       		.byte	0x0
- 28470 15ff 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 821
-
-
- 28471 1600 31       		.uleb128 0x31
- 28472 1601 910C0000 		.long	0xc91
- 28473 1605 00000000 		.quad	.LBB494
- 28473      00000000 
- 28474 160d 00000000 		.quad	.LBE494
- 28474      00000000 
- 28475 1615 02       		.byte	0x2
- 28476 1616 9206     		.value	0x692
- 28477 1618 76180000 		.long	0x1876
- 28478 161c 32       		.uleb128 0x32
- 28479 161d A30C0000 		.long	0xca3
- 28480 1621 03       		.byte	0x3
- 28481 1622 91       		.byte	0x91
- 28482 1623 F051     		.sleb128 -5904
- 28483 1625 35       		.uleb128 0x35
- 28484 1626 B00C0000 		.long	0xcb0
- 28485 162a 00000000 		.quad	.LBB496
- 28485      00000000 
- 28486 1632 00000000 		.quad	.LBE496
- 28486      00000000 
- 28487 163a 02       		.byte	0x2
- 28488 163b 7D03     		.value	0x37d
- 28489 163d 32       		.uleb128 0x32
- 28490 163e CE0C0000 		.long	0xcce
- 28491 1642 03       		.byte	0x3
- 28492 1643 91       		.byte	0x91
- 28493 1644 8852     		.sleb128 -5880
- 28494 1646 32       		.uleb128 0x32
- 28495 1647 C20C0000 		.long	0xcc2
- 28496 164b 03       		.byte	0x3
- 28497 164c 91       		.byte	0x91
- 28498 164d 9052     		.sleb128 -5872
- 28499 164f 33       		.uleb128 0x33
- 28500 1650 00000000 		.quad	.LBB497
- 28500      00000000 
- 28501 1658 00000000 		.quad	.LBE497
- 28501      00000000 
- 28502 1660 34       		.uleb128 0x34
- 28503 1661 DA0C0000 		.long	0xcda
- 28504 1665 03       		.byte	0x3
- 28505 1666 91       		.byte	0x91
- 28506 1667 E052     		.sleb128 -5792
- 28507 1669 34       		.uleb128 0x34
- 28508 166a E50C0000 		.long	0xce5
- 28509 166e 03       		.byte	0x3
- 28510 166f 91       		.byte	0x91
- 28511 1670 D052     		.sleb128 -5808
- 28512 1672 34       		.uleb128 0x34
- 28513 1673 F00C0000 		.long	0xcf0
- 28514 1677 03       		.byte	0x3
- 28515 1678 91       		.byte	0x91
- 28516 1679 C052     		.sleb128 -5824
- 28517 167b 34       		.uleb128 0x34
- 28518 167c FC0C0000 		.long	0xcfc
- 28519 1680 03       		.byte	0x3
- 28520 1681 91       		.byte	0x91
- 28521 1682 B052     		.sleb128 -5840
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 822
-
-
- 28522 1684 34       		.uleb128 0x34
- 28523 1685 080D0000 		.long	0xd08
- 28524 1689 03       		.byte	0x3
- 28525 168a 91       		.byte	0x91
- 28526 168b AC52     		.sleb128 -5844
- 28527 168d 31       		.uleb128 0x31
- 28528 168e 1F0D0000 		.long	0xd1f
- 28529 1692 00000000 		.quad	.LBB498
- 28529      00000000 
- 28530 169a 00000000 		.quad	.LBE498
- 28530      00000000 
- 28531 16a2 02       		.byte	0x2
- 28532 16a3 5603     		.value	0x356
- 28533 16a5 BC160000 		.long	0x16bc
- 28534 16a9 32       		.uleb128 0x32
- 28535 16aa 3A0D0000 		.long	0xd3a
- 28536 16ae 03       		.byte	0x3
- 28537 16af 91       		.byte	0x91
- 28538 16b0 F052     		.sleb128 -5776
- 28539 16b2 32       		.uleb128 0x32
- 28540 16b3 300D0000 		.long	0xd30
- 28541 16b7 03       		.byte	0x3
- 28542 16b8 91       		.byte	0x91
- 28543 16b9 8053     		.sleb128 -5760
- 28544 16bb 00       		.byte	0x0
- 28545 16bc 31       		.uleb128 0x31
- 28546 16bd 450D0000 		.long	0xd45
- 28547 16c1 00000000 		.quad	.LBB500
- 28547      00000000 
- 28548 16c9 00000000 		.quad	.LBE500
- 28548      00000000 
- 28549 16d1 02       		.byte	0x2
- 28550 16d2 5E03     		.value	0x35e
- 28551 16d4 EB160000 		.long	0x16eb
- 28552 16d8 32       		.uleb128 0x32
- 28553 16d9 620D0000 		.long	0xd62
- 28554 16dd 03       		.byte	0x3
- 28555 16de 91       		.byte	0x91
- 28556 16df 9053     		.sleb128 -5744
- 28557 16e1 32       		.uleb128 0x32
- 28558 16e2 570D0000 		.long	0xd57
- 28559 16e6 03       		.byte	0x3
- 28560 16e7 91       		.byte	0x91
- 28561 16e8 A053     		.sleb128 -5728
- 28562 16ea 00       		.byte	0x0
- 28563 16eb 31       		.uleb128 0x31
- 28564 16ec 6E0D0000 		.long	0xd6e
- 28565 16f0 00000000 		.quad	.LBB502
- 28565      00000000 
- 28566 16f8 00000000 		.quad	.LBE502
- 28566      00000000 
- 28567 1700 02       		.byte	0x2
- 28568 1701 6403     		.value	0x364
- 28569 1703 53170000 		.long	0x1753
- 28570 1707 32       		.uleb128 0x32
- 28571 1708 8C0D0000 		.long	0xd8c
- 28572 170c 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 823
-
-
- 28573 170d 91       		.byte	0x91
- 28574 170e B053     		.sleb128 -5712
- 28575 1710 32       		.uleb128 0x32
- 28576 1711 800D0000 		.long	0xd80
- 28577 1715 03       		.byte	0x3
- 28578 1716 91       		.byte	0x91
- 28579 1717 C053     		.sleb128 -5696
- 28580 1719 33       		.uleb128 0x33
- 28581 171a 00000000 		.quad	.LBB503
- 28581      00000000 
- 28582 1722 00000000 		.quad	.LBE503
- 28582      00000000 
- 28583 172a 34       		.uleb128 0x34
- 28584 172b 980D0000 		.long	0xd98
- 28585 172f 04       		.byte	0x4
- 28586 1730 91       		.byte	0x91
- 28587 1731 D0B87F   		.sleb128 -9136
- 28588 1734 34       		.uleb128 0x34
- 28589 1735 A40D0000 		.long	0xda4
- 28590 1739 04       		.byte	0x4
- 28591 173a 91       		.byte	0x91
- 28592 173b C0B87F   		.sleb128 -9152
- 28593 173e 34       		.uleb128 0x34
- 28594 173f AF0D0000 		.long	0xdaf
- 28595 1743 04       		.byte	0x4
- 28596 1744 91       		.byte	0x91
- 28597 1745 B0B87F   		.sleb128 -9168
- 28598 1748 34       		.uleb128 0x34
- 28599 1749 BB0D0000 		.long	0xdbb
- 28600 174d 03       		.byte	0x3
- 28601 174e 91       		.byte	0x91
- 28602 174f DC53     		.sleb128 -5668
- 28603 1751 00       		.byte	0x0
- 28604 1752 00       		.byte	0x0
- 28605 1753 31       		.uleb128 0x31
- 28606 1754 C70D0000 		.long	0xdc7
- 28607 1758 00000000 		.quad	.LBB504
- 28607      00000000 
- 28608 1760 00000000 		.quad	.LBE504
- 28608      00000000 
- 28609 1768 02       		.byte	0x2
- 28610 1769 6603     		.value	0x366
- 28611 176b 82170000 		.long	0x1782
- 28612 176f 32       		.uleb128 0x32
- 28613 1770 E20D0000 		.long	0xde2
- 28614 1774 03       		.byte	0x3
- 28615 1775 91       		.byte	0x91
- 28616 1776 E053     		.sleb128 -5664
- 28617 1778 32       		.uleb128 0x32
- 28618 1779 D80D0000 		.long	0xdd8
- 28619 177d 03       		.byte	0x3
- 28620 177e 91       		.byte	0x91
- 28621 177f F053     		.sleb128 -5648
- 28622 1781 00       		.byte	0x0
- 28623 1782 31       		.uleb128 0x31
- 28624 1783 6E0D0000 		.long	0xd6e
- 28625 1787 00000000 		.quad	.LBB506
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 824
-
-
- 28625      00000000 
- 28626 178f 00000000 		.quad	.LBE506
- 28626      00000000 
- 28627 1797 02       		.byte	0x2
- 28628 1798 6803     		.value	0x368
- 28629 179a EA170000 		.long	0x17ea
- 28630 179e 32       		.uleb128 0x32
- 28631 179f 8C0D0000 		.long	0xd8c
- 28632 17a3 03       		.byte	0x3
- 28633 17a4 91       		.byte	0x91
- 28634 17a5 8054     		.sleb128 -5632
- 28635 17a7 32       		.uleb128 0x32
- 28636 17a8 800D0000 		.long	0xd80
- 28637 17ac 03       		.byte	0x3
- 28638 17ad 91       		.byte	0x91
- 28639 17ae 9054     		.sleb128 -5616
- 28640 17b0 33       		.uleb128 0x33
- 28641 17b1 00000000 		.quad	.LBB507
- 28641      00000000 
- 28642 17b9 00000000 		.quad	.LBE507
- 28642      00000000 
- 28643 17c1 34       		.uleb128 0x34
- 28644 17c2 980D0000 		.long	0xd98
- 28645 17c6 04       		.byte	0x4
- 28646 17c7 91       		.byte	0x91
- 28647 17c8 80B97F   		.sleb128 -9088
- 28648 17cb 34       		.uleb128 0x34
- 28649 17cc A40D0000 		.long	0xda4
- 28650 17d0 04       		.byte	0x4
- 28651 17d1 91       		.byte	0x91
- 28652 17d2 F0B87F   		.sleb128 -9104
- 28653 17d5 34       		.uleb128 0x34
- 28654 17d6 AF0D0000 		.long	0xdaf
- 28655 17da 04       		.byte	0x4
- 28656 17db 91       		.byte	0x91
- 28657 17dc E0B87F   		.sleb128 -9120
- 28658 17df 34       		.uleb128 0x34
- 28659 17e0 BB0D0000 		.long	0xdbb
- 28660 17e4 03       		.byte	0x3
- 28661 17e5 91       		.byte	0x91
- 28662 17e6 AC54     		.sleb128 -5588
- 28663 17e8 00       		.byte	0x0
- 28664 17e9 00       		.byte	0x0
- 28665 17ea 31       		.uleb128 0x31
- 28666 17eb C70D0000 		.long	0xdc7
- 28667 17ef 00000000 		.quad	.LBB508
- 28667      00000000 
- 28668 17f7 00000000 		.quad	.LBE508
- 28668      00000000 
- 28669 17ff 02       		.byte	0x2
- 28670 1800 6A03     		.value	0x36a
- 28671 1802 19180000 		.long	0x1819
- 28672 1806 32       		.uleb128 0x32
- 28673 1807 E20D0000 		.long	0xde2
- 28674 180b 03       		.byte	0x3
- 28675 180c 91       		.byte	0x91
- 28676 180d B054     		.sleb128 -5584
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 825
-
-
- 28677 180f 32       		.uleb128 0x32
- 28678 1810 D80D0000 		.long	0xdd8
- 28679 1814 03       		.byte	0x3
- 28680 1815 91       		.byte	0x91
- 28681 1816 C054     		.sleb128 -5568
- 28682 1818 00       		.byte	0x0
- 28683 1819 31       		.uleb128 0x31
- 28684 181a ED0D0000 		.long	0xded
- 28685 181e 00000000 		.quad	.LBB510
- 28685      00000000 
- 28686 1826 00000000 		.quad	.LBE510
- 28686      00000000 
- 28687 182e 02       		.byte	0x2
- 28688 182f 6C03     		.value	0x36c
- 28689 1831 48180000 		.long	0x1848
- 28690 1835 32       		.uleb128 0x32
- 28691 1836 0A0E0000 		.long	0xe0a
- 28692 183a 03       		.byte	0x3
- 28693 183b 91       		.byte	0x91
- 28694 183c D054     		.sleb128 -5552
- 28695 183e 32       		.uleb128 0x32
- 28696 183f FF0D0000 		.long	0xdff
- 28697 1843 03       		.byte	0x3
- 28698 1844 91       		.byte	0x91
- 28699 1845 E054     		.sleb128 -5536
- 28700 1847 00       		.byte	0x0
- 28701 1848 35       		.uleb128 0x35
- 28702 1849 1F0D0000 		.long	0xd1f
- 28703 184d 00000000 		.quad	.LBB512
- 28703      00000000 
- 28704 1855 00000000 		.quad	.LBE512
- 28704      00000000 
- 28705 185d 02       		.byte	0x2
- 28706 185e 6E03     		.value	0x36e
- 28707 1860 32       		.uleb128 0x32
- 28708 1861 3A0D0000 		.long	0xd3a
- 28709 1865 03       		.byte	0x3
- 28710 1866 91       		.byte	0x91
- 28711 1867 F054     		.sleb128 -5520
- 28712 1869 32       		.uleb128 0x32
- 28713 186a 300D0000 		.long	0xd30
- 28714 186e 03       		.byte	0x3
- 28715 186f 91       		.byte	0x91
- 28716 1870 8055     		.sleb128 -5504
- 28717 1872 00       		.byte	0x0
- 28718 1873 00       		.byte	0x0
- 28719 1874 00       		.byte	0x0
- 28720 1875 00       		.byte	0x0
- 28721 1876 36       		.uleb128 0x36
- 28722 1877 00000000 		.quad	.LBB514
- 28722      00000000 
- 28723 187f 00000000 		.quad	.LBE514
- 28723      00000000 
- 28724 1887 96180000 		.long	0x1896
- 28725 188b 34       		.uleb128 0x34
- 28726 188c 180C0000 		.long	0xc18
- 28727 1890 04       		.byte	0x4
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 826
-
-
- 28728 1891 91       		.byte	0x91
- 28729 1892 90B87F   		.sleb128 -9200
- 28730 1895 00       		.byte	0x0
- 28731 1896 31       		.uleb128 0x31
- 28732 1897 160E0000 		.long	0xe16
- 28733 189b 00000000 		.quad	.LBB515
- 28733      00000000 
- 28734 18a3 00000000 		.quad	.LBE515
- 28734      00000000 
- 28735 18ab 02       		.byte	0x2
- 28736 18ac 9406     		.value	0x694
- 28737 18ae 41190000 		.long	0x1941
- 28738 18b2 32       		.uleb128 0x32
- 28739 18b3 280E0000 		.long	0xe28
- 28740 18b7 03       		.byte	0x3
- 28741 18b8 91       		.byte	0x91
- 28742 18b9 9055     		.sleb128 -5488
- 28743 18bb 33       		.uleb128 0x33
- 28744 18bc 00000000 		.quad	.LBB516
- 28744      00000000 
- 28745 18c4 00000000 		.quad	.LBE516
- 28745      00000000 
- 28746 18cc 34       		.uleb128 0x34
- 28747 18cd 340E0000 		.long	0xe34
- 28748 18d1 09       		.byte	0x9
- 28749 18d2 03       		.byte	0x3
- 28750 18d3 00000000 		.quad	ShiftRowTable.6768
- 28750      00000000 
- 28751 18db 35       		.uleb128 0x35
- 28752 18dc 6E0D0000 		.long	0xd6e
- 28753 18e0 00000000 		.quad	.LBB517
- 28753      00000000 
- 28754 18e8 00000000 		.quad	.LBE517
- 28754      00000000 
- 28755 18f0 02       		.byte	0x2
- 28756 18f1 9B02     		.value	0x29b
- 28757 18f3 32       		.uleb128 0x32
- 28758 18f4 8C0D0000 		.long	0xd8c
- 28759 18f8 03       		.byte	0x3
- 28760 18f9 91       		.byte	0x91
- 28761 18fa A055     		.sleb128 -5472
- 28762 18fc 32       		.uleb128 0x32
- 28763 18fd 800D0000 		.long	0xd80
- 28764 1901 03       		.byte	0x3
- 28765 1902 91       		.byte	0x91
- 28766 1903 B055     		.sleb128 -5456
- 28767 1905 33       		.uleb128 0x33
- 28768 1906 00000000 		.quad	.LBB518
- 28768      00000000 
- 28769 190e 00000000 		.quad	.LBE518
- 28769      00000000 
- 28770 1916 34       		.uleb128 0x34
- 28771 1917 980D0000 		.long	0xd98
- 28772 191b 04       		.byte	0x4
- 28773 191c 91       		.byte	0x91
- 28774 191d B0B97F   		.sleb128 -9040
- 28775 1920 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 827
-
-
- 28776 1921 A40D0000 		.long	0xda4
- 28777 1925 04       		.byte	0x4
- 28778 1926 91       		.byte	0x91
- 28779 1927 A0B97F   		.sleb128 -9056
- 28780 192a 34       		.uleb128 0x34
- 28781 192b AF0D0000 		.long	0xdaf
- 28782 192f 04       		.byte	0x4
- 28783 1930 91       		.byte	0x91
- 28784 1931 90B97F   		.sleb128 -9072
- 28785 1934 34       		.uleb128 0x34
- 28786 1935 BB0D0000 		.long	0xdbb
- 28787 1939 03       		.byte	0x3
- 28788 193a 91       		.byte	0x91
- 28789 193b CC55     		.sleb128 -5428
- 28790 193d 00       		.byte	0x0
- 28791 193e 00       		.byte	0x0
- 28792 193f 00       		.byte	0x0
- 28793 1940 00       		.byte	0x0
- 28794 1941 36       		.uleb128 0x36
- 28795 1942 00000000 		.quad	.LBB519
- 28795      00000000 
- 28796 194a 00000000 		.quad	.LBE519
- 28796      00000000 
- 28797 1952 61190000 		.long	0x1961
- 28798 1956 34       		.uleb128 0x34
- 28799 1957 280C0000 		.long	0xc28
- 28800 195b 04       		.byte	0x4
- 28801 195c 91       		.byte	0x91
- 28802 195d 80B87F   		.sleb128 -9216
- 28803 1960 00       		.byte	0x0
- 28804 1961 31       		.uleb128 0x31
- 28805 1962 520E0000 		.long	0xe52
- 28806 1966 00000000 		.quad	.LBB520
- 28806      00000000 
- 28807 196e 00000000 		.quad	.LBE520
- 28807      00000000 
- 28808 1976 02       		.byte	0x2
- 28809 1977 9606     		.value	0x696
- 28810 1979 90190000 		.long	0x1990
- 28811 197d 32       		.uleb128 0x32
- 28812 197e 6D0E0000 		.long	0xe6d
- 28813 1982 03       		.byte	0x3
- 28814 1983 91       		.byte	0x91
- 28815 1984 D055     		.sleb128 -5424
- 28816 1986 32       		.uleb128 0x32
- 28817 1987 630E0000 		.long	0xe63
- 28818 198b 03       		.byte	0x3
- 28819 198c 91       		.byte	0x91
- 28820 198d E055     		.sleb128 -5408
- 28821 198f 00       		.byte	0x0
- 28822 1990 36       		.uleb128 0x36
- 28823 1991 00000000 		.quad	.LBB522
- 28823      00000000 
- 28824 1999 00000000 		.quad	.LBE522
- 28824      00000000 
- 28825 19a1 B0190000 		.long	0x19b0
- 28826 19a5 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 828
-
-
- 28827 19a6 380C0000 		.long	0xc38
- 28828 19aa 04       		.byte	0x4
- 28829 19ab 91       		.byte	0x91
- 28830 19ac F0B77F   		.sleb128 -9232
- 28831 19af 00       		.byte	0x0
- 28832 19b0 31       		.uleb128 0x31
- 28833 19b1 780E0000 		.long	0xe78
- 28834 19b5 00000000 		.quad	.LBB523
- 28834      00000000 
- 28835 19bd 00000000 		.quad	.LBE523
- 28835      00000000 
- 28836 19c5 02       		.byte	0x2
- 28837 19c6 9806     		.value	0x698
- 28838 19c8 F2190000 		.long	0x19f2
- 28839 19cc 32       		.uleb128 0x32
- 28840 19cd 8A0E0000 		.long	0xe8a
- 28841 19d1 03       		.byte	0x3
- 28842 19d2 91       		.byte	0x91
- 28843 19d3 F055     		.sleb128 -5392
- 28844 19d5 33       		.uleb128 0x33
- 28845 19d6 00000000 		.quad	.LBB524
- 28845      00000000 
- 28846 19de 00000000 		.quad	.LBE524
- 28846      00000000 
- 28847 19e6 34       		.uleb128 0x34
- 28848 19e7 960E0000 		.long	0xe96
- 28849 19eb 04       		.byte	0x4
- 28850 19ec 91       		.byte	0x91
- 28851 19ed C0B97F   		.sleb128 -9024
- 28852 19f0 00       		.byte	0x0
- 28853 19f1 00       		.byte	0x0
- 28854 19f2 33       		.uleb128 0x33
- 28855 19f3 00000000 		.quad	.LBB525
- 28855      00000000 
- 28856 19fb 00000000 		.quad	.LBE525
- 28856      00000000 
- 28857 1a03 34       		.uleb128 0x34
- 28858 1a04 440C0000 		.long	0xc44
- 28859 1a08 04       		.byte	0x4
- 28860 1a09 91       		.byte	0x91
- 28861 1a0a E0B77F   		.sleb128 -9248
- 28862 1a0d 00       		.byte	0x0
- 28863 1a0e 00       		.byte	0x0
- 28864 1a0f 00       		.byte	0x0
- 28865 1a10 31       		.uleb128 0x31
- 28866 1a11 A30E0000 		.long	0xea3
- 28867 1a15 00000000 		.quad	.LBB526
- 28867      00000000 
- 28868 1a1d 00000000 		.quad	.LBE526
- 28868      00000000 
- 28869 1a25 02       		.byte	0x2
- 28870 1a26 D106     		.value	0x6d1
- 28871 1a28 141B0000 		.long	0x1b14
- 28872 1a2c 32       		.uleb128 0x32
- 28873 1a2d B50E0000 		.long	0xeb5
- 28874 1a31 03       		.byte	0x3
- 28875 1a32 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 829
-
-
- 28876 1a33 8056     		.sleb128 -5376
- 28877 1a35 33       		.uleb128 0x33
- 28878 1a36 00000000 		.quad	.LBB527
- 28878      00000000 
- 28879 1a3e 00000000 		.quad	.LBE527
- 28879      00000000 
- 28880 1a46 34       		.uleb128 0x34
- 28881 1a47 C10E0000 		.long	0xec1
- 28882 1a4b 04       		.byte	0x4
- 28883 1a4c 76       		.byte	0x76
- 28884 1a4d A0B17F   		.sleb128 -10080
- 28885 1a50 31       		.uleb128 0x31
- 28886 1a51 CE0E0000 		.long	0xece
- 28887 1a55 00000000 		.quad	.LBB528
- 28887      00000000 
- 28888 1a5d 00000000 		.quad	.LBE528
- 28888      00000000 
- 28889 1a65 02       		.byte	0x2
- 28890 1a66 1F06     		.value	0x61f
- 28891 1a68 921A0000 		.long	0x1a92
- 28892 1a6c 32       		.uleb128 0x32
- 28893 1a6d E00E0000 		.long	0xee0
- 28894 1a71 03       		.byte	0x3
- 28895 1a72 91       		.byte	0x91
- 28896 1a73 9056     		.sleb128 -5360
- 28897 1a75 33       		.uleb128 0x33
- 28898 1a76 00000000 		.quad	.LBB529
- 28898      00000000 
- 28899 1a7e 00000000 		.quad	.LBE529
- 28899      00000000 
- 28900 1a86 34       		.uleb128 0x34
- 28901 1a87 EC0E0000 		.long	0xeec
- 28902 1a8b 04       		.byte	0x4
- 28903 1a8c 91       		.byte	0x91
- 28904 1a8d D0B97F   		.sleb128 -9008
- 28905 1a90 00       		.byte	0x0
- 28906 1a91 00       		.byte	0x0
- 28907 1a92 31       		.uleb128 0x31
- 28908 1a93 CE0E0000 		.long	0xece
- 28909 1a97 00000000 		.quad	.LBB530
- 28909      00000000 
- 28910 1a9f 00000000 		.quad	.LBE530
- 28910      00000000 
- 28911 1aa7 02       		.byte	0x2
- 28912 1aa8 2006     		.value	0x620
- 28913 1aaa D41A0000 		.long	0x1ad4
- 28914 1aae 32       		.uleb128 0x32
- 28915 1aaf E00E0000 		.long	0xee0
- 28916 1ab3 03       		.byte	0x3
- 28917 1ab4 91       		.byte	0x91
- 28918 1ab5 A056     		.sleb128 -5344
- 28919 1ab7 33       		.uleb128 0x33
- 28920 1ab8 00000000 		.quad	.LBB531
- 28920      00000000 
- 28921 1ac0 00000000 		.quad	.LBE531
- 28921      00000000 
- 28922 1ac8 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 830
-
-
- 28923 1ac9 EC0E0000 		.long	0xeec
- 28924 1acd 04       		.byte	0x4
- 28925 1ace 91       		.byte	0x91
- 28926 1acf E0B97F   		.sleb128 -8992
- 28927 1ad2 00       		.byte	0x0
- 28928 1ad3 00       		.byte	0x0
- 28929 1ad4 35       		.uleb128 0x35
- 28930 1ad5 CE0E0000 		.long	0xece
- 28931 1ad9 00000000 		.quad	.LBB532
- 28931      00000000 
- 28932 1ae1 00000000 		.quad	.LBE532
- 28932      00000000 
- 28933 1ae9 02       		.byte	0x2
- 28934 1aea 2106     		.value	0x621
- 28935 1aec 32       		.uleb128 0x32
- 28936 1aed E00E0000 		.long	0xee0
- 28937 1af1 03       		.byte	0x3
- 28938 1af2 91       		.byte	0x91
- 28939 1af3 B056     		.sleb128 -5328
- 28940 1af5 33       		.uleb128 0x33
- 28941 1af6 00000000 		.quad	.LBB533
- 28941      00000000 
- 28942 1afe 00000000 		.quad	.LBE533
- 28942      00000000 
- 28943 1b06 34       		.uleb128 0x34
- 28944 1b07 EC0E0000 		.long	0xeec
- 28945 1b0b 04       		.byte	0x4
- 28946 1b0c 91       		.byte	0x91
- 28947 1b0d F0B97F   		.sleb128 -8976
- 28948 1b10 00       		.byte	0x0
- 28949 1b11 00       		.byte	0x0
- 28950 1b12 00       		.byte	0x0
- 28951 1b13 00       		.byte	0x0
- 28952 1b14 31       		.uleb128 0x31
- 28953 1b15 D10B0000 		.long	0xbd1
- 28954 1b19 00000000 		.quad	.LBB534
- 28954      00000000 
- 28955 1b21 00000000 		.quad	.LBE534
- 28955      00000000 
- 28956 1b29 02       		.byte	0x2
- 28957 1b2a D206     		.value	0x6d2
- 28958 1b2c CB1F0000 		.long	0x1fcb
- 28959 1b30 32       		.uleb128 0x32
- 28960 1b31 EF0B0000 		.long	0xbef
- 28961 1b35 03       		.byte	0x3
- 28962 1b36 91       		.byte	0x91
- 28963 1b37 CC56     		.sleb128 -5300
- 28964 1b39 32       		.uleb128 0x32
- 28965 1b3a E30B0000 		.long	0xbe3
- 28966 1b3e 03       		.byte	0x3
- 28967 1b3f 91       		.byte	0x91
- 28968 1b40 D056     		.sleb128 -5296
- 28969 1b42 33       		.uleb128 0x33
- 28970 1b43 00000000 		.quad	.LBB535
- 28970      00000000 
- 28971 1b4b 00000000 		.quad	.LBE535
- 28971      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 831
-
-
- 28972 1b53 34       		.uleb128 0x34
- 28973 1b54 FB0B0000 		.long	0xbfb
- 28974 1b58 04       		.byte	0x4
- 28975 1b59 76       		.byte	0x76
- 28976 1b5a C0B17F   		.sleb128 -10048
- 28977 1b5d 34       		.uleb128 0x34
- 28978 1b5e 070C0000 		.long	0xc07
- 28979 1b62 04       		.byte	0x4
- 28980 1b63 76       		.byte	0x76
- 28981 1b64 B0B17F   		.sleb128 -10064
- 28982 1b67 31       		.uleb128 0x31
- 28983 1b68 500C0000 		.long	0xc50
- 28984 1b6c 00000000 		.quad	.LBB536
- 28984      00000000 
- 28985 1b74 00000000 		.quad	.LBE536
- 28985      00000000 
- 28986 1b7c 02       		.byte	0x2
- 28987 1b7d 9106     		.value	0x691
- 28988 1b7f BB1B0000 		.long	0x1bbb
- 28989 1b83 32       		.uleb128 0x32
- 28990 1b84 7A0C0000 		.long	0xc7a
- 28991 1b88 03       		.byte	0x3
- 28992 1b89 91       		.byte	0x91
- 28993 1b8a E856     		.sleb128 -5272
- 28994 1b8c 32       		.uleb128 0x32
- 28995 1b8d 6E0C0000 		.long	0xc6e
- 28996 1b91 03       		.byte	0x3
- 28997 1b92 91       		.byte	0x91
- 28998 1b93 EC56     		.sleb128 -5268
- 28999 1b95 32       		.uleb128 0x32
- 29000 1b96 620C0000 		.long	0xc62
- 29001 1b9a 03       		.byte	0x3
- 29002 1b9b 91       		.byte	0x91
- 29003 1b9c F056     		.sleb128 -5264
- 29004 1b9e 33       		.uleb128 0x33
- 29005 1b9f 00000000 		.quad	.LBB537
- 29005      00000000 
- 29006 1ba7 00000000 		.quad	.LBE537
- 29006      00000000 
- 29007 1baf 34       		.uleb128 0x34
- 29008 1bb0 860C0000 		.long	0xc86
- 29009 1bb4 04       		.byte	0x4
- 29010 1bb5 91       		.byte	0x91
- 29011 1bb6 C0BA7F   		.sleb128 -8896
- 29012 1bb9 00       		.byte	0x0
- 29013 1bba 00       		.byte	0x0
- 29014 1bbb 31       		.uleb128 0x31
- 29015 1bbc 910C0000 		.long	0xc91
- 29016 1bc0 00000000 		.quad	.LBB538
- 29016      00000000 
- 29017 1bc8 00000000 		.quad	.LBE538
- 29017      00000000 
- 29018 1bd0 02       		.byte	0x2
- 29019 1bd1 9206     		.value	0x692
- 29020 1bd3 311E0000 		.long	0x1e31
- 29021 1bd7 32       		.uleb128 0x32
- 29022 1bd8 A30C0000 		.long	0xca3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 832
-
-
- 29023 1bdc 03       		.byte	0x3
- 29024 1bdd 91       		.byte	0x91
- 29025 1bde 8057     		.sleb128 -5248
- 29026 1be0 35       		.uleb128 0x35
- 29027 1be1 B00C0000 		.long	0xcb0
- 29028 1be5 00000000 		.quad	.LBB540
- 29028      00000000 
- 29029 1bed 00000000 		.quad	.LBE540
- 29029      00000000 
- 29030 1bf5 02       		.byte	0x2
- 29031 1bf6 7D03     		.value	0x37d
- 29032 1bf8 32       		.uleb128 0x32
- 29033 1bf9 CE0C0000 		.long	0xcce
- 29034 1bfd 03       		.byte	0x3
- 29035 1bfe 91       		.byte	0x91
- 29036 1bff 9857     		.sleb128 -5224
- 29037 1c01 32       		.uleb128 0x32
- 29038 1c02 C20C0000 		.long	0xcc2
- 29039 1c06 03       		.byte	0x3
- 29040 1c07 91       		.byte	0x91
- 29041 1c08 A057     		.sleb128 -5216
- 29042 1c0a 33       		.uleb128 0x33
- 29043 1c0b 00000000 		.quad	.LBB541
- 29043      00000000 
- 29044 1c13 00000000 		.quad	.LBE541
- 29044      00000000 
- 29045 1c1b 34       		.uleb128 0x34
- 29046 1c1c DA0C0000 		.long	0xcda
- 29047 1c20 03       		.byte	0x3
- 29048 1c21 91       		.byte	0x91
- 29049 1c22 F057     		.sleb128 -5136
- 29050 1c24 34       		.uleb128 0x34
- 29051 1c25 E50C0000 		.long	0xce5
- 29052 1c29 03       		.byte	0x3
- 29053 1c2a 91       		.byte	0x91
- 29054 1c2b E057     		.sleb128 -5152
- 29055 1c2d 34       		.uleb128 0x34
- 29056 1c2e F00C0000 		.long	0xcf0
- 29057 1c32 03       		.byte	0x3
- 29058 1c33 91       		.byte	0x91
- 29059 1c34 D057     		.sleb128 -5168
- 29060 1c36 34       		.uleb128 0x34
- 29061 1c37 FC0C0000 		.long	0xcfc
- 29062 1c3b 03       		.byte	0x3
- 29063 1c3c 91       		.byte	0x91
- 29064 1c3d C057     		.sleb128 -5184
- 29065 1c3f 34       		.uleb128 0x34
- 29066 1c40 080D0000 		.long	0xd08
- 29067 1c44 03       		.byte	0x3
- 29068 1c45 91       		.byte	0x91
- 29069 1c46 BC57     		.sleb128 -5188
- 29070 1c48 31       		.uleb128 0x31
- 29071 1c49 1F0D0000 		.long	0xd1f
- 29072 1c4d 00000000 		.quad	.LBB542
- 29072      00000000 
- 29073 1c55 00000000 		.quad	.LBE542
- 29073      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 833
-
-
- 29074 1c5d 02       		.byte	0x2
- 29075 1c5e 5603     		.value	0x356
- 29076 1c60 771C0000 		.long	0x1c77
- 29077 1c64 32       		.uleb128 0x32
- 29078 1c65 3A0D0000 		.long	0xd3a
- 29079 1c69 03       		.byte	0x3
- 29080 1c6a 91       		.byte	0x91
- 29081 1c6b 8058     		.sleb128 -5120
- 29082 1c6d 32       		.uleb128 0x32
- 29083 1c6e 300D0000 		.long	0xd30
- 29084 1c72 03       		.byte	0x3
- 29085 1c73 91       		.byte	0x91
- 29086 1c74 9058     		.sleb128 -5104
- 29087 1c76 00       		.byte	0x0
- 29088 1c77 31       		.uleb128 0x31
- 29089 1c78 450D0000 		.long	0xd45
- 29090 1c7c 00000000 		.quad	.LBB544
- 29090      00000000 
- 29091 1c84 00000000 		.quad	.LBE544
- 29091      00000000 
- 29092 1c8c 02       		.byte	0x2
- 29093 1c8d 5E03     		.value	0x35e
- 29094 1c8f A61C0000 		.long	0x1ca6
- 29095 1c93 32       		.uleb128 0x32
- 29096 1c94 620D0000 		.long	0xd62
- 29097 1c98 03       		.byte	0x3
- 29098 1c99 91       		.byte	0x91
- 29099 1c9a A058     		.sleb128 -5088
- 29100 1c9c 32       		.uleb128 0x32
- 29101 1c9d 570D0000 		.long	0xd57
- 29102 1ca1 03       		.byte	0x3
- 29103 1ca2 91       		.byte	0x91
- 29104 1ca3 B058     		.sleb128 -5072
- 29105 1ca5 00       		.byte	0x0
- 29106 1ca6 31       		.uleb128 0x31
- 29107 1ca7 6E0D0000 		.long	0xd6e
- 29108 1cab 00000000 		.quad	.LBB546
- 29108      00000000 
- 29109 1cb3 00000000 		.quad	.LBE546
- 29109      00000000 
- 29110 1cbb 02       		.byte	0x2
- 29111 1cbc 6403     		.value	0x364
- 29112 1cbe 0E1D0000 		.long	0x1d0e
- 29113 1cc2 32       		.uleb128 0x32
- 29114 1cc3 8C0D0000 		.long	0xd8c
- 29115 1cc7 03       		.byte	0x3
- 29116 1cc8 91       		.byte	0x91
- 29117 1cc9 C058     		.sleb128 -5056
- 29118 1ccb 32       		.uleb128 0x32
- 29119 1ccc 800D0000 		.long	0xd80
- 29120 1cd0 03       		.byte	0x3
- 29121 1cd1 91       		.byte	0x91
- 29122 1cd2 D058     		.sleb128 -5040
- 29123 1cd4 33       		.uleb128 0x33
- 29124 1cd5 00000000 		.quad	.LBB547
- 29124      00000000 
- 29125 1cdd 00000000 		.quad	.LBE547
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 834
-
-
- 29125      00000000 
- 29126 1ce5 34       		.uleb128 0x34
- 29127 1ce6 980D0000 		.long	0xd98
- 29128 1cea 04       		.byte	0x4
- 29129 1ceb 91       		.byte	0x91
- 29130 1cec F0BA7F   		.sleb128 -8848
- 29131 1cef 34       		.uleb128 0x34
- 29132 1cf0 A40D0000 		.long	0xda4
- 29133 1cf4 04       		.byte	0x4
- 29134 1cf5 91       		.byte	0x91
- 29135 1cf6 E0BA7F   		.sleb128 -8864
- 29136 1cf9 34       		.uleb128 0x34
- 29137 1cfa AF0D0000 		.long	0xdaf
- 29138 1cfe 04       		.byte	0x4
- 29139 1cff 91       		.byte	0x91
- 29140 1d00 D0BA7F   		.sleb128 -8880
- 29141 1d03 34       		.uleb128 0x34
- 29142 1d04 BB0D0000 		.long	0xdbb
- 29143 1d08 03       		.byte	0x3
- 29144 1d09 91       		.byte	0x91
- 29145 1d0a EC58     		.sleb128 -5012
- 29146 1d0c 00       		.byte	0x0
- 29147 1d0d 00       		.byte	0x0
- 29148 1d0e 31       		.uleb128 0x31
- 29149 1d0f C70D0000 		.long	0xdc7
- 29150 1d13 00000000 		.quad	.LBB548
- 29150      00000000 
- 29151 1d1b 00000000 		.quad	.LBE548
- 29151      00000000 
- 29152 1d23 02       		.byte	0x2
- 29153 1d24 6603     		.value	0x366
- 29154 1d26 3D1D0000 		.long	0x1d3d
- 29155 1d2a 32       		.uleb128 0x32
- 29156 1d2b E20D0000 		.long	0xde2
- 29157 1d2f 03       		.byte	0x3
- 29158 1d30 91       		.byte	0x91
- 29159 1d31 F058     		.sleb128 -5008
- 29160 1d33 32       		.uleb128 0x32
- 29161 1d34 D80D0000 		.long	0xdd8
- 29162 1d38 03       		.byte	0x3
- 29163 1d39 91       		.byte	0x91
- 29164 1d3a 8059     		.sleb128 -4992
- 29165 1d3c 00       		.byte	0x0
- 29166 1d3d 31       		.uleb128 0x31
- 29167 1d3e 6E0D0000 		.long	0xd6e
- 29168 1d42 00000000 		.quad	.LBB550
- 29168      00000000 
- 29169 1d4a 00000000 		.quad	.LBE550
- 29169      00000000 
- 29170 1d52 02       		.byte	0x2
- 29171 1d53 6803     		.value	0x368
- 29172 1d55 A51D0000 		.long	0x1da5
- 29173 1d59 32       		.uleb128 0x32
- 29174 1d5a 8C0D0000 		.long	0xd8c
- 29175 1d5e 03       		.byte	0x3
- 29176 1d5f 91       		.byte	0x91
- 29177 1d60 9059     		.sleb128 -4976
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 835
-
-
- 29178 1d62 32       		.uleb128 0x32
- 29179 1d63 800D0000 		.long	0xd80
- 29180 1d67 03       		.byte	0x3
- 29181 1d68 91       		.byte	0x91
- 29182 1d69 A059     		.sleb128 -4960
- 29183 1d6b 33       		.uleb128 0x33
- 29184 1d6c 00000000 		.quad	.LBB551
- 29184      00000000 
- 29185 1d74 00000000 		.quad	.LBE551
- 29185      00000000 
- 29186 1d7c 34       		.uleb128 0x34
- 29187 1d7d 980D0000 		.long	0xd98
- 29188 1d81 04       		.byte	0x4
- 29189 1d82 91       		.byte	0x91
- 29190 1d83 A0BB7F   		.sleb128 -8800
- 29191 1d86 34       		.uleb128 0x34
- 29192 1d87 A40D0000 		.long	0xda4
- 29193 1d8b 04       		.byte	0x4
- 29194 1d8c 91       		.byte	0x91
- 29195 1d8d 90BB7F   		.sleb128 -8816
- 29196 1d90 34       		.uleb128 0x34
- 29197 1d91 AF0D0000 		.long	0xdaf
- 29198 1d95 04       		.byte	0x4
- 29199 1d96 91       		.byte	0x91
- 29200 1d97 80BB7F   		.sleb128 -8832
- 29201 1d9a 34       		.uleb128 0x34
- 29202 1d9b BB0D0000 		.long	0xdbb
- 29203 1d9f 03       		.byte	0x3
- 29204 1da0 91       		.byte	0x91
- 29205 1da1 BC59     		.sleb128 -4932
- 29206 1da3 00       		.byte	0x0
- 29207 1da4 00       		.byte	0x0
- 29208 1da5 31       		.uleb128 0x31
- 29209 1da6 C70D0000 		.long	0xdc7
- 29210 1daa 00000000 		.quad	.LBB552
- 29210      00000000 
- 29211 1db2 00000000 		.quad	.LBE552
- 29211      00000000 
- 29212 1dba 02       		.byte	0x2
- 29213 1dbb 6A03     		.value	0x36a
- 29214 1dbd D41D0000 		.long	0x1dd4
- 29215 1dc1 32       		.uleb128 0x32
- 29216 1dc2 E20D0000 		.long	0xde2
- 29217 1dc6 03       		.byte	0x3
- 29218 1dc7 91       		.byte	0x91
- 29219 1dc8 C059     		.sleb128 -4928
- 29220 1dca 32       		.uleb128 0x32
- 29221 1dcb D80D0000 		.long	0xdd8
- 29222 1dcf 03       		.byte	0x3
- 29223 1dd0 91       		.byte	0x91
- 29224 1dd1 D059     		.sleb128 -4912
- 29225 1dd3 00       		.byte	0x0
- 29226 1dd4 31       		.uleb128 0x31
- 29227 1dd5 ED0D0000 		.long	0xded
- 29228 1dd9 00000000 		.quad	.LBB554
- 29228      00000000 
- 29229 1de1 00000000 		.quad	.LBE554
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 836
-
-
- 29229      00000000 
- 29230 1de9 02       		.byte	0x2
- 29231 1dea 6C03     		.value	0x36c
- 29232 1dec 031E0000 		.long	0x1e03
- 29233 1df0 32       		.uleb128 0x32
- 29234 1df1 0A0E0000 		.long	0xe0a
- 29235 1df5 03       		.byte	0x3
- 29236 1df6 91       		.byte	0x91
- 29237 1df7 E059     		.sleb128 -4896
- 29238 1df9 32       		.uleb128 0x32
- 29239 1dfa FF0D0000 		.long	0xdff
- 29240 1dfe 03       		.byte	0x3
- 29241 1dff 91       		.byte	0x91
- 29242 1e00 F059     		.sleb128 -4880
- 29243 1e02 00       		.byte	0x0
- 29244 1e03 35       		.uleb128 0x35
- 29245 1e04 1F0D0000 		.long	0xd1f
- 29246 1e08 00000000 		.quad	.LBB556
- 29246      00000000 
- 29247 1e10 00000000 		.quad	.LBE556
- 29247      00000000 
- 29248 1e18 02       		.byte	0x2
- 29249 1e19 6E03     		.value	0x36e
- 29250 1e1b 32       		.uleb128 0x32
- 29251 1e1c 3A0D0000 		.long	0xd3a
- 29252 1e20 03       		.byte	0x3
- 29253 1e21 91       		.byte	0x91
- 29254 1e22 805A     		.sleb128 -4864
- 29255 1e24 32       		.uleb128 0x32
- 29256 1e25 300D0000 		.long	0xd30
- 29257 1e29 03       		.byte	0x3
- 29258 1e2a 91       		.byte	0x91
- 29259 1e2b 905A     		.sleb128 -4848
- 29260 1e2d 00       		.byte	0x0
- 29261 1e2e 00       		.byte	0x0
- 29262 1e2f 00       		.byte	0x0
- 29263 1e30 00       		.byte	0x0
- 29264 1e31 36       		.uleb128 0x36
- 29265 1e32 00000000 		.quad	.LBB558
- 29265      00000000 
- 29266 1e3a 00000000 		.quad	.LBE558
- 29266      00000000 
- 29267 1e42 511E0000 		.long	0x1e51
- 29268 1e46 34       		.uleb128 0x34
- 29269 1e47 180C0000 		.long	0xc18
- 29270 1e4b 04       		.byte	0x4
- 29271 1e4c 91       		.byte	0x91
- 29272 1e4d B0BA7F   		.sleb128 -8912
- 29273 1e50 00       		.byte	0x0
- 29274 1e51 31       		.uleb128 0x31
- 29275 1e52 160E0000 		.long	0xe16
- 29276 1e56 00000000 		.quad	.LBB559
- 29276      00000000 
- 29277 1e5e 00000000 		.quad	.LBE559
- 29277      00000000 
- 29278 1e66 02       		.byte	0x2
- 29279 1e67 9406     		.value	0x694
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 837
-
-
- 29280 1e69 FC1E0000 		.long	0x1efc
- 29281 1e6d 32       		.uleb128 0x32
- 29282 1e6e 280E0000 		.long	0xe28
- 29283 1e72 03       		.byte	0x3
- 29284 1e73 91       		.byte	0x91
- 29285 1e74 A05A     		.sleb128 -4832
- 29286 1e76 33       		.uleb128 0x33
- 29287 1e77 00000000 		.quad	.LBB560
- 29287      00000000 
- 29288 1e7f 00000000 		.quad	.LBE560
- 29288      00000000 
- 29289 1e87 34       		.uleb128 0x34
- 29290 1e88 340E0000 		.long	0xe34
- 29291 1e8c 09       		.byte	0x9
- 29292 1e8d 03       		.byte	0x3
- 29293 1e8e 00000000 		.quad	ShiftRowTable.6768
- 29293      00000000 
- 29294 1e96 35       		.uleb128 0x35
- 29295 1e97 6E0D0000 		.long	0xd6e
- 29296 1e9b 00000000 		.quad	.LBB561
- 29296      00000000 
- 29297 1ea3 00000000 		.quad	.LBE561
- 29297      00000000 
- 29298 1eab 02       		.byte	0x2
- 29299 1eac 9B02     		.value	0x29b
- 29300 1eae 32       		.uleb128 0x32
- 29301 1eaf 8C0D0000 		.long	0xd8c
- 29302 1eb3 03       		.byte	0x3
- 29303 1eb4 91       		.byte	0x91
- 29304 1eb5 B05A     		.sleb128 -4816
- 29305 1eb7 32       		.uleb128 0x32
- 29306 1eb8 800D0000 		.long	0xd80
- 29307 1ebc 03       		.byte	0x3
- 29308 1ebd 91       		.byte	0x91
- 29309 1ebe C05A     		.sleb128 -4800
- 29310 1ec0 33       		.uleb128 0x33
- 29311 1ec1 00000000 		.quad	.LBB562
- 29311      00000000 
- 29312 1ec9 00000000 		.quad	.LBE562
- 29312      00000000 
- 29313 1ed1 34       		.uleb128 0x34
- 29314 1ed2 980D0000 		.long	0xd98
- 29315 1ed6 04       		.byte	0x4
- 29316 1ed7 91       		.byte	0x91
- 29317 1ed8 D0BB7F   		.sleb128 -8752
- 29318 1edb 34       		.uleb128 0x34
- 29319 1edc A40D0000 		.long	0xda4
- 29320 1ee0 04       		.byte	0x4
- 29321 1ee1 91       		.byte	0x91
- 29322 1ee2 C0BB7F   		.sleb128 -8768
- 29323 1ee5 34       		.uleb128 0x34
- 29324 1ee6 AF0D0000 		.long	0xdaf
- 29325 1eea 04       		.byte	0x4
- 29326 1eeb 91       		.byte	0x91
- 29327 1eec B0BB7F   		.sleb128 -8784
- 29328 1eef 34       		.uleb128 0x34
- 29329 1ef0 BB0D0000 		.long	0xdbb
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 838
-
-
- 29330 1ef4 03       		.byte	0x3
- 29331 1ef5 91       		.byte	0x91
- 29332 1ef6 DC5A     		.sleb128 -4772
- 29333 1ef8 00       		.byte	0x0
- 29334 1ef9 00       		.byte	0x0
- 29335 1efa 00       		.byte	0x0
- 29336 1efb 00       		.byte	0x0
- 29337 1efc 36       		.uleb128 0x36
- 29338 1efd 00000000 		.quad	.LBB563
- 29338      00000000 
- 29339 1f05 00000000 		.quad	.LBE563
- 29339      00000000 
- 29340 1f0d 1C1F0000 		.long	0x1f1c
- 29341 1f11 34       		.uleb128 0x34
- 29342 1f12 280C0000 		.long	0xc28
- 29343 1f16 04       		.byte	0x4
- 29344 1f17 91       		.byte	0x91
- 29345 1f18 A0BA7F   		.sleb128 -8928
- 29346 1f1b 00       		.byte	0x0
- 29347 1f1c 31       		.uleb128 0x31
- 29348 1f1d 520E0000 		.long	0xe52
- 29349 1f21 00000000 		.quad	.LBB564
- 29349      00000000 
- 29350 1f29 00000000 		.quad	.LBE564
- 29350      00000000 
- 29351 1f31 02       		.byte	0x2
- 29352 1f32 9606     		.value	0x696
- 29353 1f34 4B1F0000 		.long	0x1f4b
- 29354 1f38 32       		.uleb128 0x32
- 29355 1f39 6D0E0000 		.long	0xe6d
- 29356 1f3d 03       		.byte	0x3
- 29357 1f3e 91       		.byte	0x91
- 29358 1f3f E05A     		.sleb128 -4768
- 29359 1f41 32       		.uleb128 0x32
- 29360 1f42 630E0000 		.long	0xe63
- 29361 1f46 03       		.byte	0x3
- 29362 1f47 91       		.byte	0x91
- 29363 1f48 F05A     		.sleb128 -4752
- 29364 1f4a 00       		.byte	0x0
- 29365 1f4b 36       		.uleb128 0x36
- 29366 1f4c 00000000 		.quad	.LBB566
- 29366      00000000 
- 29367 1f54 00000000 		.quad	.LBE566
- 29367      00000000 
- 29368 1f5c 6B1F0000 		.long	0x1f6b
- 29369 1f60 34       		.uleb128 0x34
- 29370 1f61 380C0000 		.long	0xc38
- 29371 1f65 04       		.byte	0x4
- 29372 1f66 91       		.byte	0x91
- 29373 1f67 90BA7F   		.sleb128 -8944
- 29374 1f6a 00       		.byte	0x0
- 29375 1f6b 31       		.uleb128 0x31
- 29376 1f6c 780E0000 		.long	0xe78
- 29377 1f70 00000000 		.quad	.LBB567
- 29377      00000000 
- 29378 1f78 00000000 		.quad	.LBE567
- 29378      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 839
-
-
- 29379 1f80 02       		.byte	0x2
- 29380 1f81 9806     		.value	0x698
- 29381 1f83 AD1F0000 		.long	0x1fad
- 29382 1f87 32       		.uleb128 0x32
- 29383 1f88 8A0E0000 		.long	0xe8a
- 29384 1f8c 03       		.byte	0x3
- 29385 1f8d 91       		.byte	0x91
- 29386 1f8e 805B     		.sleb128 -4736
- 29387 1f90 33       		.uleb128 0x33
- 29388 1f91 00000000 		.quad	.LBB568
- 29388      00000000 
- 29389 1f99 00000000 		.quad	.LBE568
- 29389      00000000 
- 29390 1fa1 34       		.uleb128 0x34
- 29391 1fa2 960E0000 		.long	0xe96
- 29392 1fa6 04       		.byte	0x4
- 29393 1fa7 91       		.byte	0x91
- 29394 1fa8 E0BB7F   		.sleb128 -8736
- 29395 1fab 00       		.byte	0x0
- 29396 1fac 00       		.byte	0x0
- 29397 1fad 33       		.uleb128 0x33
- 29398 1fae 00000000 		.quad	.LBB569
- 29398      00000000 
- 29399 1fb6 00000000 		.quad	.LBE569
- 29399      00000000 
- 29400 1fbe 34       		.uleb128 0x34
- 29401 1fbf 440C0000 		.long	0xc44
- 29402 1fc3 04       		.byte	0x4
- 29403 1fc4 91       		.byte	0x91
- 29404 1fc5 80BA7F   		.sleb128 -8960
- 29405 1fc8 00       		.byte	0x0
- 29406 1fc9 00       		.byte	0x0
- 29407 1fca 00       		.byte	0x0
- 29408 1fcb 31       		.uleb128 0x31
- 29409 1fcc A30E0000 		.long	0xea3
- 29410 1fd0 00000000 		.quad	.LBB570
- 29410      00000000 
- 29411 1fd8 00000000 		.quad	.LBE570
- 29411      00000000 
- 29412 1fe0 02       		.byte	0x2
- 29413 1fe1 D206     		.value	0x6d2
- 29414 1fe3 CF200000 		.long	0x20cf
- 29415 1fe7 32       		.uleb128 0x32
- 29416 1fe8 B50E0000 		.long	0xeb5
- 29417 1fec 03       		.byte	0x3
- 29418 1fed 91       		.byte	0x91
- 29419 1fee 905B     		.sleb128 -4720
- 29420 1ff0 33       		.uleb128 0x33
- 29421 1ff1 00000000 		.quad	.LBB571
- 29421      00000000 
- 29422 1ff9 00000000 		.quad	.LBE571
- 29422      00000000 
- 29423 2001 34       		.uleb128 0x34
- 29424 2002 C10E0000 		.long	0xec1
- 29425 2006 04       		.byte	0x4
- 29426 2007 76       		.byte	0x76
- 29427 2008 E0B17F   		.sleb128 -10016
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 840
-
-
- 29428 200b 31       		.uleb128 0x31
- 29429 200c CE0E0000 		.long	0xece
- 29430 2010 00000000 		.quad	.LBB572
- 29430      00000000 
- 29431 2018 00000000 		.quad	.LBE572
- 29431      00000000 
- 29432 2020 02       		.byte	0x2
- 29433 2021 1F06     		.value	0x61f
- 29434 2023 4D200000 		.long	0x204d
- 29435 2027 32       		.uleb128 0x32
- 29436 2028 E00E0000 		.long	0xee0
- 29437 202c 03       		.byte	0x3
- 29438 202d 91       		.byte	0x91
- 29439 202e A05B     		.sleb128 -4704
- 29440 2030 33       		.uleb128 0x33
- 29441 2031 00000000 		.quad	.LBB573
- 29441      00000000 
- 29442 2039 00000000 		.quad	.LBE573
- 29442      00000000 
- 29443 2041 34       		.uleb128 0x34
- 29444 2042 EC0E0000 		.long	0xeec
- 29445 2046 04       		.byte	0x4
- 29446 2047 91       		.byte	0x91
- 29447 2048 F0BB7F   		.sleb128 -8720
- 29448 204b 00       		.byte	0x0
- 29449 204c 00       		.byte	0x0
- 29450 204d 31       		.uleb128 0x31
- 29451 204e CE0E0000 		.long	0xece
- 29452 2052 00000000 		.quad	.LBB574
- 29452      00000000 
- 29453 205a 00000000 		.quad	.LBE574
- 29453      00000000 
- 29454 2062 02       		.byte	0x2
- 29455 2063 2006     		.value	0x620
- 29456 2065 8F200000 		.long	0x208f
- 29457 2069 32       		.uleb128 0x32
- 29458 206a E00E0000 		.long	0xee0
- 29459 206e 03       		.byte	0x3
- 29460 206f 91       		.byte	0x91
- 29461 2070 B05B     		.sleb128 -4688
- 29462 2072 33       		.uleb128 0x33
- 29463 2073 00000000 		.quad	.LBB575
- 29463      00000000 
- 29464 207b 00000000 		.quad	.LBE575
- 29464      00000000 
- 29465 2083 34       		.uleb128 0x34
- 29466 2084 EC0E0000 		.long	0xeec
- 29467 2088 04       		.byte	0x4
- 29468 2089 91       		.byte	0x91
- 29469 208a 80BC7F   		.sleb128 -8704
- 29470 208d 00       		.byte	0x0
- 29471 208e 00       		.byte	0x0
- 29472 208f 35       		.uleb128 0x35
- 29473 2090 CE0E0000 		.long	0xece
- 29474 2094 00000000 		.quad	.LBB576
- 29474      00000000 
- 29475 209c 00000000 		.quad	.LBE576
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 841
-
-
- 29475      00000000 
- 29476 20a4 02       		.byte	0x2
- 29477 20a5 2106     		.value	0x621
- 29478 20a7 32       		.uleb128 0x32
- 29479 20a8 E00E0000 		.long	0xee0
- 29480 20ac 03       		.byte	0x3
- 29481 20ad 91       		.byte	0x91
- 29482 20ae C05B     		.sleb128 -4672
- 29483 20b0 33       		.uleb128 0x33
- 29484 20b1 00000000 		.quad	.LBB577
- 29484      00000000 
- 29485 20b9 00000000 		.quad	.LBE577
- 29485      00000000 
- 29486 20c1 34       		.uleb128 0x34
- 29487 20c2 EC0E0000 		.long	0xeec
- 29488 20c6 04       		.byte	0x4
- 29489 20c7 91       		.byte	0x91
- 29490 20c8 90BC7F   		.sleb128 -8688
- 29491 20cb 00       		.byte	0x0
- 29492 20cc 00       		.byte	0x0
- 29493 20cd 00       		.byte	0x0
- 29494 20ce 00       		.byte	0x0
- 29495 20cf 31       		.uleb128 0x31
- 29496 20d0 D10B0000 		.long	0xbd1
- 29497 20d4 00000000 		.quad	.LBB578
- 29497      00000000 
- 29498 20dc 00000000 		.quad	.LBE578
- 29498      00000000 
- 29499 20e4 02       		.byte	0x2
- 29500 20e5 D306     		.value	0x6d3
- 29501 20e7 86250000 		.long	0x2586
- 29502 20eb 32       		.uleb128 0x32
- 29503 20ec EF0B0000 		.long	0xbef
- 29504 20f0 03       		.byte	0x3
- 29505 20f1 91       		.byte	0x91
- 29506 20f2 DC5B     		.sleb128 -4644
- 29507 20f4 32       		.uleb128 0x32
- 29508 20f5 E30B0000 		.long	0xbe3
- 29509 20f9 03       		.byte	0x3
- 29510 20fa 91       		.byte	0x91
- 29511 20fb E05B     		.sleb128 -4640
- 29512 20fd 33       		.uleb128 0x33
- 29513 20fe 00000000 		.quad	.LBB579
- 29513      00000000 
- 29514 2106 00000000 		.quad	.LBE579
- 29514      00000000 
- 29515 210e 34       		.uleb128 0x34
- 29516 210f FB0B0000 		.long	0xbfb
- 29517 2113 04       		.byte	0x4
- 29518 2114 76       		.byte	0x76
- 29519 2115 80B27F   		.sleb128 -9984
- 29520 2118 34       		.uleb128 0x34
- 29521 2119 070C0000 		.long	0xc07
- 29522 211d 04       		.byte	0x4
- 29523 211e 76       		.byte	0x76
- 29524 211f F0B17F   		.sleb128 -10000
- 29525 2122 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 842
-
-
- 29526 2123 500C0000 		.long	0xc50
- 29527 2127 00000000 		.quad	.LBB580
- 29527      00000000 
- 29528 212f 00000000 		.quad	.LBE580
- 29528      00000000 
- 29529 2137 02       		.byte	0x2
- 29530 2138 9106     		.value	0x691
- 29531 213a 76210000 		.long	0x2176
- 29532 213e 32       		.uleb128 0x32
- 29533 213f 7A0C0000 		.long	0xc7a
- 29534 2143 03       		.byte	0x3
- 29535 2144 91       		.byte	0x91
- 29536 2145 F85B     		.sleb128 -4616
- 29537 2147 32       		.uleb128 0x32
- 29538 2148 6E0C0000 		.long	0xc6e
- 29539 214c 03       		.byte	0x3
- 29540 214d 91       		.byte	0x91
- 29541 214e FC5B     		.sleb128 -4612
- 29542 2150 32       		.uleb128 0x32
- 29543 2151 620C0000 		.long	0xc62
- 29544 2155 03       		.byte	0x3
- 29545 2156 91       		.byte	0x91
- 29546 2157 805C     		.sleb128 -4608
- 29547 2159 33       		.uleb128 0x33
- 29548 215a 00000000 		.quad	.LBB581
- 29548      00000000 
- 29549 2162 00000000 		.quad	.LBE581
- 29549      00000000 
- 29550 216a 34       		.uleb128 0x34
- 29551 216b 860C0000 		.long	0xc86
- 29552 216f 04       		.byte	0x4
- 29553 2170 91       		.byte	0x91
- 29554 2171 E0BC7F   		.sleb128 -8608
- 29555 2174 00       		.byte	0x0
- 29556 2175 00       		.byte	0x0
- 29557 2176 31       		.uleb128 0x31
- 29558 2177 910C0000 		.long	0xc91
- 29559 217b 00000000 		.quad	.LBB582
- 29559      00000000 
- 29560 2183 00000000 		.quad	.LBE582
- 29560      00000000 
- 29561 218b 02       		.byte	0x2
- 29562 218c 9206     		.value	0x692
- 29563 218e EC230000 		.long	0x23ec
- 29564 2192 32       		.uleb128 0x32
- 29565 2193 A30C0000 		.long	0xca3
- 29566 2197 03       		.byte	0x3
- 29567 2198 91       		.byte	0x91
- 29568 2199 905C     		.sleb128 -4592
- 29569 219b 35       		.uleb128 0x35
- 29570 219c B00C0000 		.long	0xcb0
- 29571 21a0 00000000 		.quad	.LBB584
- 29571      00000000 
- 29572 21a8 00000000 		.quad	.LBE584
- 29572      00000000 
- 29573 21b0 02       		.byte	0x2
- 29574 21b1 7D03     		.value	0x37d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 843
-
-
- 29575 21b3 32       		.uleb128 0x32
- 29576 21b4 CE0C0000 		.long	0xcce
- 29577 21b8 03       		.byte	0x3
- 29578 21b9 91       		.byte	0x91
- 29579 21ba A85C     		.sleb128 -4568
- 29580 21bc 32       		.uleb128 0x32
- 29581 21bd C20C0000 		.long	0xcc2
- 29582 21c1 03       		.byte	0x3
- 29583 21c2 91       		.byte	0x91
- 29584 21c3 B05C     		.sleb128 -4560
- 29585 21c5 33       		.uleb128 0x33
- 29586 21c6 00000000 		.quad	.LBB585
- 29586      00000000 
- 29587 21ce 00000000 		.quad	.LBE585
- 29587      00000000 
- 29588 21d6 34       		.uleb128 0x34
- 29589 21d7 DA0C0000 		.long	0xcda
- 29590 21db 03       		.byte	0x3
- 29591 21dc 91       		.byte	0x91
- 29592 21dd 805D     		.sleb128 -4480
- 29593 21df 34       		.uleb128 0x34
- 29594 21e0 E50C0000 		.long	0xce5
- 29595 21e4 03       		.byte	0x3
- 29596 21e5 91       		.byte	0x91
- 29597 21e6 F05C     		.sleb128 -4496
- 29598 21e8 34       		.uleb128 0x34
- 29599 21e9 F00C0000 		.long	0xcf0
- 29600 21ed 03       		.byte	0x3
- 29601 21ee 91       		.byte	0x91
- 29602 21ef E05C     		.sleb128 -4512
- 29603 21f1 34       		.uleb128 0x34
- 29604 21f2 FC0C0000 		.long	0xcfc
- 29605 21f6 03       		.byte	0x3
- 29606 21f7 91       		.byte	0x91
- 29607 21f8 D05C     		.sleb128 -4528
- 29608 21fa 34       		.uleb128 0x34
- 29609 21fb 080D0000 		.long	0xd08
- 29610 21ff 03       		.byte	0x3
- 29611 2200 91       		.byte	0x91
- 29612 2201 CC5C     		.sleb128 -4532
- 29613 2203 31       		.uleb128 0x31
- 29614 2204 1F0D0000 		.long	0xd1f
- 29615 2208 00000000 		.quad	.LBB586
- 29615      00000000 
- 29616 2210 00000000 		.quad	.LBE586
- 29616      00000000 
- 29617 2218 02       		.byte	0x2
- 29618 2219 5603     		.value	0x356
- 29619 221b 32220000 		.long	0x2232
- 29620 221f 32       		.uleb128 0x32
- 29621 2220 3A0D0000 		.long	0xd3a
- 29622 2224 03       		.byte	0x3
- 29623 2225 91       		.byte	0x91
- 29624 2226 905D     		.sleb128 -4464
- 29625 2228 32       		.uleb128 0x32
- 29626 2229 300D0000 		.long	0xd30
- 29627 222d 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 844
-
-
- 29628 222e 91       		.byte	0x91
- 29629 222f A05D     		.sleb128 -4448
- 29630 2231 00       		.byte	0x0
- 29631 2232 31       		.uleb128 0x31
- 29632 2233 450D0000 		.long	0xd45
- 29633 2237 00000000 		.quad	.LBB588
- 29633      00000000 
- 29634 223f 00000000 		.quad	.LBE588
- 29634      00000000 
- 29635 2247 02       		.byte	0x2
- 29636 2248 5E03     		.value	0x35e
- 29637 224a 61220000 		.long	0x2261
- 29638 224e 32       		.uleb128 0x32
- 29639 224f 620D0000 		.long	0xd62
- 29640 2253 03       		.byte	0x3
- 29641 2254 91       		.byte	0x91
- 29642 2255 B05D     		.sleb128 -4432
- 29643 2257 32       		.uleb128 0x32
- 29644 2258 570D0000 		.long	0xd57
- 29645 225c 03       		.byte	0x3
- 29646 225d 91       		.byte	0x91
- 29647 225e C05D     		.sleb128 -4416
- 29648 2260 00       		.byte	0x0
- 29649 2261 31       		.uleb128 0x31
- 29650 2262 6E0D0000 		.long	0xd6e
- 29651 2266 00000000 		.quad	.LBB590
- 29651      00000000 
- 29652 226e 00000000 		.quad	.LBE590
- 29652      00000000 
- 29653 2276 02       		.byte	0x2
- 29654 2277 6403     		.value	0x364
- 29655 2279 C9220000 		.long	0x22c9
- 29656 227d 32       		.uleb128 0x32
- 29657 227e 8C0D0000 		.long	0xd8c
- 29658 2282 03       		.byte	0x3
- 29659 2283 91       		.byte	0x91
- 29660 2284 D05D     		.sleb128 -4400
- 29661 2286 32       		.uleb128 0x32
- 29662 2287 800D0000 		.long	0xd80
- 29663 228b 03       		.byte	0x3
- 29664 228c 91       		.byte	0x91
- 29665 228d E05D     		.sleb128 -4384
- 29666 228f 33       		.uleb128 0x33
- 29667 2290 00000000 		.quad	.LBB591
- 29667      00000000 
- 29668 2298 00000000 		.quad	.LBE591
- 29668      00000000 
- 29669 22a0 34       		.uleb128 0x34
- 29670 22a1 980D0000 		.long	0xd98
- 29671 22a5 04       		.byte	0x4
- 29672 22a6 91       		.byte	0x91
- 29673 22a7 90BD7F   		.sleb128 -8560
- 29674 22aa 34       		.uleb128 0x34
- 29675 22ab A40D0000 		.long	0xda4
- 29676 22af 04       		.byte	0x4
- 29677 22b0 91       		.byte	0x91
- 29678 22b1 80BD7F   		.sleb128 -8576
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 845
-
-
- 29679 22b4 34       		.uleb128 0x34
- 29680 22b5 AF0D0000 		.long	0xdaf
- 29681 22b9 04       		.byte	0x4
- 29682 22ba 91       		.byte	0x91
- 29683 22bb F0BC7F   		.sleb128 -8592
- 29684 22be 34       		.uleb128 0x34
- 29685 22bf BB0D0000 		.long	0xdbb
- 29686 22c3 03       		.byte	0x3
- 29687 22c4 91       		.byte	0x91
- 29688 22c5 FC5D     		.sleb128 -4356
- 29689 22c7 00       		.byte	0x0
- 29690 22c8 00       		.byte	0x0
- 29691 22c9 31       		.uleb128 0x31
- 29692 22ca C70D0000 		.long	0xdc7
- 29693 22ce 00000000 		.quad	.LBB592
- 29693      00000000 
- 29694 22d6 00000000 		.quad	.LBE592
- 29694      00000000 
- 29695 22de 02       		.byte	0x2
- 29696 22df 6603     		.value	0x366
- 29697 22e1 F8220000 		.long	0x22f8
- 29698 22e5 32       		.uleb128 0x32
- 29699 22e6 E20D0000 		.long	0xde2
- 29700 22ea 03       		.byte	0x3
- 29701 22eb 91       		.byte	0x91
- 29702 22ec 805E     		.sleb128 -4352
- 29703 22ee 32       		.uleb128 0x32
- 29704 22ef D80D0000 		.long	0xdd8
- 29705 22f3 03       		.byte	0x3
- 29706 22f4 91       		.byte	0x91
- 29707 22f5 905E     		.sleb128 -4336
- 29708 22f7 00       		.byte	0x0
- 29709 22f8 31       		.uleb128 0x31
- 29710 22f9 6E0D0000 		.long	0xd6e
- 29711 22fd 00000000 		.quad	.LBB594
- 29711      00000000 
- 29712 2305 00000000 		.quad	.LBE594
- 29712      00000000 
- 29713 230d 02       		.byte	0x2
- 29714 230e 6803     		.value	0x368
- 29715 2310 60230000 		.long	0x2360
- 29716 2314 32       		.uleb128 0x32
- 29717 2315 8C0D0000 		.long	0xd8c
- 29718 2319 03       		.byte	0x3
- 29719 231a 91       		.byte	0x91
- 29720 231b A05E     		.sleb128 -4320
- 29721 231d 32       		.uleb128 0x32
- 29722 231e 800D0000 		.long	0xd80
- 29723 2322 03       		.byte	0x3
- 29724 2323 91       		.byte	0x91
- 29725 2324 B05E     		.sleb128 -4304
- 29726 2326 33       		.uleb128 0x33
- 29727 2327 00000000 		.quad	.LBB595
- 29727      00000000 
- 29728 232f 00000000 		.quad	.LBE595
- 29728      00000000 
- 29729 2337 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 846
-
-
- 29730 2338 980D0000 		.long	0xd98
- 29731 233c 04       		.byte	0x4
- 29732 233d 91       		.byte	0x91
- 29733 233e C0BD7F   		.sleb128 -8512
- 29734 2341 34       		.uleb128 0x34
- 29735 2342 A40D0000 		.long	0xda4
- 29736 2346 04       		.byte	0x4
- 29737 2347 91       		.byte	0x91
- 29738 2348 B0BD7F   		.sleb128 -8528
- 29739 234b 34       		.uleb128 0x34
- 29740 234c AF0D0000 		.long	0xdaf
- 29741 2350 04       		.byte	0x4
- 29742 2351 91       		.byte	0x91
- 29743 2352 A0BD7F   		.sleb128 -8544
- 29744 2355 34       		.uleb128 0x34
- 29745 2356 BB0D0000 		.long	0xdbb
- 29746 235a 03       		.byte	0x3
- 29747 235b 91       		.byte	0x91
- 29748 235c CC5E     		.sleb128 -4276
- 29749 235e 00       		.byte	0x0
- 29750 235f 00       		.byte	0x0
- 29751 2360 31       		.uleb128 0x31
- 29752 2361 C70D0000 		.long	0xdc7
- 29753 2365 00000000 		.quad	.LBB596
- 29753      00000000 
- 29754 236d 00000000 		.quad	.LBE596
- 29754      00000000 
- 29755 2375 02       		.byte	0x2
- 29756 2376 6A03     		.value	0x36a
- 29757 2378 8F230000 		.long	0x238f
- 29758 237c 32       		.uleb128 0x32
- 29759 237d E20D0000 		.long	0xde2
- 29760 2381 03       		.byte	0x3
- 29761 2382 91       		.byte	0x91
- 29762 2383 D05E     		.sleb128 -4272
- 29763 2385 32       		.uleb128 0x32
- 29764 2386 D80D0000 		.long	0xdd8
- 29765 238a 03       		.byte	0x3
- 29766 238b 91       		.byte	0x91
- 29767 238c E05E     		.sleb128 -4256
- 29768 238e 00       		.byte	0x0
- 29769 238f 31       		.uleb128 0x31
- 29770 2390 ED0D0000 		.long	0xded
- 29771 2394 00000000 		.quad	.LBB598
- 29771      00000000 
- 29772 239c 00000000 		.quad	.LBE598
- 29772      00000000 
- 29773 23a4 02       		.byte	0x2
- 29774 23a5 6C03     		.value	0x36c
- 29775 23a7 BE230000 		.long	0x23be
- 29776 23ab 32       		.uleb128 0x32
- 29777 23ac 0A0E0000 		.long	0xe0a
- 29778 23b0 03       		.byte	0x3
- 29779 23b1 91       		.byte	0x91
- 29780 23b2 F05E     		.sleb128 -4240
- 29781 23b4 32       		.uleb128 0x32
- 29782 23b5 FF0D0000 		.long	0xdff
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 847
-
-
- 29783 23b9 03       		.byte	0x3
- 29784 23ba 91       		.byte	0x91
- 29785 23bb 805F     		.sleb128 -4224
- 29786 23bd 00       		.byte	0x0
- 29787 23be 35       		.uleb128 0x35
- 29788 23bf 1F0D0000 		.long	0xd1f
- 29789 23c3 00000000 		.quad	.LBB600
- 29789      00000000 
- 29790 23cb 00000000 		.quad	.LBE600
- 29790      00000000 
- 29791 23d3 02       		.byte	0x2
- 29792 23d4 6E03     		.value	0x36e
- 29793 23d6 32       		.uleb128 0x32
- 29794 23d7 3A0D0000 		.long	0xd3a
- 29795 23db 03       		.byte	0x3
- 29796 23dc 91       		.byte	0x91
- 29797 23dd 905F     		.sleb128 -4208
- 29798 23df 32       		.uleb128 0x32
- 29799 23e0 300D0000 		.long	0xd30
- 29800 23e4 03       		.byte	0x3
- 29801 23e5 91       		.byte	0x91
- 29802 23e6 A05F     		.sleb128 -4192
- 29803 23e8 00       		.byte	0x0
- 29804 23e9 00       		.byte	0x0
- 29805 23ea 00       		.byte	0x0
- 29806 23eb 00       		.byte	0x0
- 29807 23ec 36       		.uleb128 0x36
- 29808 23ed 00000000 		.quad	.LBB602
- 29808      00000000 
- 29809 23f5 00000000 		.quad	.LBE602
- 29809      00000000 
- 29810 23fd 0C240000 		.long	0x240c
- 29811 2401 34       		.uleb128 0x34
- 29812 2402 180C0000 		.long	0xc18
- 29813 2406 04       		.byte	0x4
- 29814 2407 91       		.byte	0x91
- 29815 2408 D0BC7F   		.sleb128 -8624
- 29816 240b 00       		.byte	0x0
- 29817 240c 31       		.uleb128 0x31
- 29818 240d 160E0000 		.long	0xe16
- 29819 2411 00000000 		.quad	.LBB603
- 29819      00000000 
- 29820 2419 00000000 		.quad	.LBE603
- 29820      00000000 
- 29821 2421 02       		.byte	0x2
- 29822 2422 9406     		.value	0x694
- 29823 2424 B7240000 		.long	0x24b7
- 29824 2428 32       		.uleb128 0x32
- 29825 2429 280E0000 		.long	0xe28
- 29826 242d 03       		.byte	0x3
- 29827 242e 91       		.byte	0x91
- 29828 242f B05F     		.sleb128 -4176
- 29829 2431 33       		.uleb128 0x33
- 29830 2432 00000000 		.quad	.LBB604
- 29830      00000000 
- 29831 243a 00000000 		.quad	.LBE604
- 29831      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 848
-
-
- 29832 2442 34       		.uleb128 0x34
- 29833 2443 340E0000 		.long	0xe34
- 29834 2447 09       		.byte	0x9
- 29835 2448 03       		.byte	0x3
- 29836 2449 00000000 		.quad	ShiftRowTable.6768
- 29836      00000000 
- 29837 2451 35       		.uleb128 0x35
- 29838 2452 6E0D0000 		.long	0xd6e
- 29839 2456 00000000 		.quad	.LBB605
- 29839      00000000 
- 29840 245e 00000000 		.quad	.LBE605
- 29840      00000000 
- 29841 2466 02       		.byte	0x2
- 29842 2467 9B02     		.value	0x29b
- 29843 2469 32       		.uleb128 0x32
- 29844 246a 8C0D0000 		.long	0xd8c
- 29845 246e 03       		.byte	0x3
- 29846 246f 91       		.byte	0x91
- 29847 2470 C05F     		.sleb128 -4160
- 29848 2472 32       		.uleb128 0x32
- 29849 2473 800D0000 		.long	0xd80
- 29850 2477 03       		.byte	0x3
- 29851 2478 91       		.byte	0x91
- 29852 2479 D05F     		.sleb128 -4144
- 29853 247b 33       		.uleb128 0x33
- 29854 247c 00000000 		.quad	.LBB606
- 29854      00000000 
- 29855 2484 00000000 		.quad	.LBE606
- 29855      00000000 
- 29856 248c 34       		.uleb128 0x34
- 29857 248d 980D0000 		.long	0xd98
- 29858 2491 04       		.byte	0x4
- 29859 2492 91       		.byte	0x91
- 29860 2493 F0BD7F   		.sleb128 -8464
- 29861 2496 34       		.uleb128 0x34
- 29862 2497 A40D0000 		.long	0xda4
- 29863 249b 04       		.byte	0x4
- 29864 249c 91       		.byte	0x91
- 29865 249d E0BD7F   		.sleb128 -8480
- 29866 24a0 34       		.uleb128 0x34
- 29867 24a1 AF0D0000 		.long	0xdaf
- 29868 24a5 04       		.byte	0x4
- 29869 24a6 91       		.byte	0x91
- 29870 24a7 D0BD7F   		.sleb128 -8496
- 29871 24aa 34       		.uleb128 0x34
- 29872 24ab BB0D0000 		.long	0xdbb
- 29873 24af 03       		.byte	0x3
- 29874 24b0 91       		.byte	0x91
- 29875 24b1 EC5F     		.sleb128 -4116
- 29876 24b3 00       		.byte	0x0
- 29877 24b4 00       		.byte	0x0
- 29878 24b5 00       		.byte	0x0
- 29879 24b6 00       		.byte	0x0
- 29880 24b7 36       		.uleb128 0x36
- 29881 24b8 00000000 		.quad	.LBB607
- 29881      00000000 
- 29882 24c0 00000000 		.quad	.LBE607
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 849
-
-
- 29882      00000000 
- 29883 24c8 D7240000 		.long	0x24d7
- 29884 24cc 34       		.uleb128 0x34
- 29885 24cd 280C0000 		.long	0xc28
- 29886 24d1 04       		.byte	0x4
- 29887 24d2 91       		.byte	0x91
- 29888 24d3 C0BC7F   		.sleb128 -8640
- 29889 24d6 00       		.byte	0x0
- 29890 24d7 31       		.uleb128 0x31
- 29891 24d8 520E0000 		.long	0xe52
- 29892 24dc 00000000 		.quad	.LBB608
- 29892      00000000 
- 29893 24e4 00000000 		.quad	.LBE608
- 29893      00000000 
- 29894 24ec 02       		.byte	0x2
- 29895 24ed 9606     		.value	0x696
- 29896 24ef 06250000 		.long	0x2506
- 29897 24f3 32       		.uleb128 0x32
- 29898 24f4 6D0E0000 		.long	0xe6d
- 29899 24f8 03       		.byte	0x3
- 29900 24f9 91       		.byte	0x91
- 29901 24fa F05F     		.sleb128 -4112
- 29902 24fc 32       		.uleb128 0x32
- 29903 24fd 630E0000 		.long	0xe63
- 29904 2501 03       		.byte	0x3
- 29905 2502 91       		.byte	0x91
- 29906 2503 8060     		.sleb128 -4096
- 29907 2505 00       		.byte	0x0
- 29908 2506 36       		.uleb128 0x36
- 29909 2507 00000000 		.quad	.LBB610
- 29909      00000000 
- 29910 250f 00000000 		.quad	.LBE610
- 29910      00000000 
- 29911 2517 26250000 		.long	0x2526
- 29912 251b 34       		.uleb128 0x34
- 29913 251c 380C0000 		.long	0xc38
- 29914 2520 04       		.byte	0x4
- 29915 2521 91       		.byte	0x91
- 29916 2522 B0BC7F   		.sleb128 -8656
- 29917 2525 00       		.byte	0x0
- 29918 2526 31       		.uleb128 0x31
- 29919 2527 780E0000 		.long	0xe78
- 29920 252b 00000000 		.quad	.LBB611
- 29920      00000000 
- 29921 2533 00000000 		.quad	.LBE611
- 29921      00000000 
- 29922 253b 02       		.byte	0x2
- 29923 253c 9806     		.value	0x698
- 29924 253e 68250000 		.long	0x2568
- 29925 2542 32       		.uleb128 0x32
- 29926 2543 8A0E0000 		.long	0xe8a
- 29927 2547 03       		.byte	0x3
- 29928 2548 91       		.byte	0x91
- 29929 2549 9060     		.sleb128 -4080
- 29930 254b 33       		.uleb128 0x33
- 29931 254c 00000000 		.quad	.LBB612
- 29931      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 850
-
-
- 29932 2554 00000000 		.quad	.LBE612
- 29932      00000000 
- 29933 255c 34       		.uleb128 0x34
- 29934 255d 960E0000 		.long	0xe96
- 29935 2561 04       		.byte	0x4
- 29936 2562 91       		.byte	0x91
- 29937 2563 80BE7F   		.sleb128 -8448
- 29938 2566 00       		.byte	0x0
- 29939 2567 00       		.byte	0x0
- 29940 2568 33       		.uleb128 0x33
- 29941 2569 00000000 		.quad	.LBB613
- 29941      00000000 
- 29942 2571 00000000 		.quad	.LBE613
- 29942      00000000 
- 29943 2579 34       		.uleb128 0x34
- 29944 257a 440C0000 		.long	0xc44
- 29945 257e 04       		.byte	0x4
- 29946 257f 91       		.byte	0x91
- 29947 2580 A0BC7F   		.sleb128 -8672
- 29948 2583 00       		.byte	0x0
- 29949 2584 00       		.byte	0x0
- 29950 2585 00       		.byte	0x0
- 29951 2586 31       		.uleb128 0x31
- 29952 2587 A30E0000 		.long	0xea3
- 29953 258b 00000000 		.quad	.LBB614
- 29953      00000000 
- 29954 2593 00000000 		.quad	.LBE614
- 29954      00000000 
- 29955 259b 02       		.byte	0x2
- 29956 259c D306     		.value	0x6d3
- 29957 259e 8A260000 		.long	0x268a
- 29958 25a2 32       		.uleb128 0x32
- 29959 25a3 B50E0000 		.long	0xeb5
- 29960 25a7 03       		.byte	0x3
- 29961 25a8 91       		.byte	0x91
- 29962 25a9 A060     		.sleb128 -4064
- 29963 25ab 33       		.uleb128 0x33
- 29964 25ac 00000000 		.quad	.LBB615
- 29964      00000000 
- 29965 25b4 00000000 		.quad	.LBE615
- 29965      00000000 
- 29966 25bc 34       		.uleb128 0x34
- 29967 25bd C10E0000 		.long	0xec1
- 29968 25c1 04       		.byte	0x4
- 29969 25c2 76       		.byte	0x76
- 29970 25c3 A0B27F   		.sleb128 -9952
- 29971 25c6 31       		.uleb128 0x31
- 29972 25c7 CE0E0000 		.long	0xece
- 29973 25cb 00000000 		.quad	.LBB616
- 29973      00000000 
- 29974 25d3 00000000 		.quad	.LBE616
- 29974      00000000 
- 29975 25db 02       		.byte	0x2
- 29976 25dc 1F06     		.value	0x61f
- 29977 25de 08260000 		.long	0x2608
- 29978 25e2 32       		.uleb128 0x32
- 29979 25e3 E00E0000 		.long	0xee0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 851
-
-
- 29980 25e7 03       		.byte	0x3
- 29981 25e8 91       		.byte	0x91
- 29982 25e9 B060     		.sleb128 -4048
- 29983 25eb 33       		.uleb128 0x33
- 29984 25ec 00000000 		.quad	.LBB617
- 29984      00000000 
- 29985 25f4 00000000 		.quad	.LBE617
- 29985      00000000 
- 29986 25fc 34       		.uleb128 0x34
- 29987 25fd EC0E0000 		.long	0xeec
- 29988 2601 04       		.byte	0x4
- 29989 2602 91       		.byte	0x91
- 29990 2603 90BE7F   		.sleb128 -8432
- 29991 2606 00       		.byte	0x0
- 29992 2607 00       		.byte	0x0
- 29993 2608 31       		.uleb128 0x31
- 29994 2609 CE0E0000 		.long	0xece
- 29995 260d 00000000 		.quad	.LBB618
- 29995      00000000 
- 29996 2615 00000000 		.quad	.LBE618
- 29996      00000000 
- 29997 261d 02       		.byte	0x2
- 29998 261e 2006     		.value	0x620
- 29999 2620 4A260000 		.long	0x264a
- 30000 2624 32       		.uleb128 0x32
- 30001 2625 E00E0000 		.long	0xee0
- 30002 2629 03       		.byte	0x3
- 30003 262a 91       		.byte	0x91
- 30004 262b C060     		.sleb128 -4032
- 30005 262d 33       		.uleb128 0x33
- 30006 262e 00000000 		.quad	.LBB619
- 30006      00000000 
- 30007 2636 00000000 		.quad	.LBE619
- 30007      00000000 
- 30008 263e 34       		.uleb128 0x34
- 30009 263f EC0E0000 		.long	0xeec
- 30010 2643 04       		.byte	0x4
- 30011 2644 91       		.byte	0x91
- 30012 2645 A0BE7F   		.sleb128 -8416
- 30013 2648 00       		.byte	0x0
- 30014 2649 00       		.byte	0x0
- 30015 264a 35       		.uleb128 0x35
- 30016 264b CE0E0000 		.long	0xece
- 30017 264f 00000000 		.quad	.LBB620
- 30017      00000000 
- 30018 2657 00000000 		.quad	.LBE620
- 30018      00000000 
- 30019 265f 02       		.byte	0x2
- 30020 2660 2106     		.value	0x621
- 30021 2662 32       		.uleb128 0x32
- 30022 2663 E00E0000 		.long	0xee0
- 30023 2667 03       		.byte	0x3
- 30024 2668 91       		.byte	0x91
- 30025 2669 D060     		.sleb128 -4016
- 30026 266b 33       		.uleb128 0x33
- 30027 266c 00000000 		.quad	.LBB621
- 30027      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 852
-
-
- 30028 2674 00000000 		.quad	.LBE621
- 30028      00000000 
- 30029 267c 34       		.uleb128 0x34
- 30030 267d EC0E0000 		.long	0xeec
- 30031 2681 04       		.byte	0x4
- 30032 2682 91       		.byte	0x91
- 30033 2683 B0BE7F   		.sleb128 -8400
- 30034 2686 00       		.byte	0x0
- 30035 2687 00       		.byte	0x0
- 30036 2688 00       		.byte	0x0
- 30037 2689 00       		.byte	0x0
- 30038 268a 31       		.uleb128 0x31
- 30039 268b D10B0000 		.long	0xbd1
- 30040 268f 00000000 		.quad	.LBB622
- 30040      00000000 
- 30041 2697 00000000 		.quad	.LBE622
- 30041      00000000 
- 30042 269f 02       		.byte	0x2
- 30043 26a0 D406     		.value	0x6d4
- 30044 26a2 3E2B0000 		.long	0x2b3e
- 30045 26a6 32       		.uleb128 0x32
- 30046 26a7 EF0B0000 		.long	0xbef
- 30047 26ab 03       		.byte	0x3
- 30048 26ac 91       		.byte	0x91
- 30049 26ad EC60     		.sleb128 -3988
- 30050 26af 32       		.uleb128 0x32
- 30051 26b0 E30B0000 		.long	0xbe3
- 30052 26b4 03       		.byte	0x3
- 30053 26b5 91       		.byte	0x91
- 30054 26b6 F060     		.sleb128 -3984
- 30055 26b8 33       		.uleb128 0x33
- 30056 26b9 00000000 		.quad	.LBB623
- 30056      00000000 
- 30057 26c1 00000000 		.quad	.LBE623
- 30057      00000000 
- 30058 26c9 34       		.uleb128 0x34
- 30059 26ca FB0B0000 		.long	0xbfb
- 30060 26ce 04       		.byte	0x4
- 30061 26cf 76       		.byte	0x76
- 30062 26d0 C0B27F   		.sleb128 -9920
- 30063 26d3 34       		.uleb128 0x34
- 30064 26d4 070C0000 		.long	0xc07
- 30065 26d8 04       		.byte	0x4
- 30066 26d9 76       		.byte	0x76
- 30067 26da B0B27F   		.sleb128 -9936
- 30068 26dd 31       		.uleb128 0x31
- 30069 26de 500C0000 		.long	0xc50
- 30070 26e2 00000000 		.quad	.LBB624
- 30070      00000000 
- 30071 26ea 00000000 		.quad	.LBE624
- 30071      00000000 
- 30072 26f2 02       		.byte	0x2
- 30073 26f3 9106     		.value	0x691
- 30074 26f5 31270000 		.long	0x2731
- 30075 26f9 32       		.uleb128 0x32
- 30076 26fa 7A0C0000 		.long	0xc7a
- 30077 26fe 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 853
-
-
- 30078 26ff 91       		.byte	0x91
- 30079 2700 8861     		.sleb128 -3960
- 30080 2702 32       		.uleb128 0x32
- 30081 2703 6E0C0000 		.long	0xc6e
- 30082 2707 03       		.byte	0x3
- 30083 2708 91       		.byte	0x91
- 30084 2709 8C61     		.sleb128 -3956
- 30085 270b 32       		.uleb128 0x32
- 30086 270c 620C0000 		.long	0xc62
- 30087 2710 03       		.byte	0x3
- 30088 2711 91       		.byte	0x91
- 30089 2712 9061     		.sleb128 -3952
- 30090 2714 33       		.uleb128 0x33
- 30091 2715 00000000 		.quad	.LBB625
- 30091      00000000 
- 30092 271d 00000000 		.quad	.LBE625
- 30092      00000000 
- 30093 2725 34       		.uleb128 0x34
- 30094 2726 860C0000 		.long	0xc86
- 30095 272a 04       		.byte	0x4
- 30096 272b 91       		.byte	0x91
- 30097 272c 80BF7F   		.sleb128 -8320
- 30098 272f 00       		.byte	0x0
- 30099 2730 00       		.byte	0x0
- 30100 2731 31       		.uleb128 0x31
- 30101 2732 910C0000 		.long	0xc91
- 30102 2736 00000000 		.quad	.LBB626
- 30102      00000000 
- 30103 273e 00000000 		.quad	.LBE626
- 30103      00000000 
- 30104 2746 02       		.byte	0x2
- 30105 2747 9206     		.value	0x692
- 30106 2749 A7290000 		.long	0x29a7
- 30107 274d 32       		.uleb128 0x32
- 30108 274e A30C0000 		.long	0xca3
- 30109 2752 03       		.byte	0x3
- 30110 2753 91       		.byte	0x91
- 30111 2754 A061     		.sleb128 -3936
- 30112 2756 35       		.uleb128 0x35
- 30113 2757 B00C0000 		.long	0xcb0
- 30114 275b 00000000 		.quad	.LBB628
- 30114      00000000 
- 30115 2763 00000000 		.quad	.LBE628
- 30115      00000000 
- 30116 276b 02       		.byte	0x2
- 30117 276c 7D03     		.value	0x37d
- 30118 276e 32       		.uleb128 0x32
- 30119 276f CE0C0000 		.long	0xcce
- 30120 2773 03       		.byte	0x3
- 30121 2774 91       		.byte	0x91
- 30122 2775 B861     		.sleb128 -3912
- 30123 2777 32       		.uleb128 0x32
- 30124 2778 C20C0000 		.long	0xcc2
- 30125 277c 03       		.byte	0x3
- 30126 277d 91       		.byte	0x91
- 30127 277e C061     		.sleb128 -3904
- 30128 2780 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 854
-
-
- 30129 2781 00000000 		.quad	.LBB629
- 30129      00000000 
- 30130 2789 00000000 		.quad	.LBE629
- 30130      00000000 
- 30131 2791 34       		.uleb128 0x34
- 30132 2792 DA0C0000 		.long	0xcda
- 30133 2796 03       		.byte	0x3
- 30134 2797 91       		.byte	0x91
- 30135 2798 9062     		.sleb128 -3824
- 30136 279a 34       		.uleb128 0x34
- 30137 279b E50C0000 		.long	0xce5
- 30138 279f 03       		.byte	0x3
- 30139 27a0 91       		.byte	0x91
- 30140 27a1 8062     		.sleb128 -3840
- 30141 27a3 34       		.uleb128 0x34
- 30142 27a4 F00C0000 		.long	0xcf0
- 30143 27a8 03       		.byte	0x3
- 30144 27a9 91       		.byte	0x91
- 30145 27aa F061     		.sleb128 -3856
- 30146 27ac 34       		.uleb128 0x34
- 30147 27ad FC0C0000 		.long	0xcfc
- 30148 27b1 03       		.byte	0x3
- 30149 27b2 91       		.byte	0x91
- 30150 27b3 E061     		.sleb128 -3872
- 30151 27b5 34       		.uleb128 0x34
- 30152 27b6 080D0000 		.long	0xd08
- 30153 27ba 03       		.byte	0x3
- 30154 27bb 91       		.byte	0x91
- 30155 27bc DC61     		.sleb128 -3876
- 30156 27be 31       		.uleb128 0x31
- 30157 27bf 1F0D0000 		.long	0xd1f
- 30158 27c3 00000000 		.quad	.LBB630
- 30158      00000000 
- 30159 27cb 00000000 		.quad	.LBE630
- 30159      00000000 
- 30160 27d3 02       		.byte	0x2
- 30161 27d4 5603     		.value	0x356
- 30162 27d6 ED270000 		.long	0x27ed
- 30163 27da 32       		.uleb128 0x32
- 30164 27db 3A0D0000 		.long	0xd3a
- 30165 27df 03       		.byte	0x3
- 30166 27e0 91       		.byte	0x91
- 30167 27e1 A062     		.sleb128 -3808
- 30168 27e3 32       		.uleb128 0x32
- 30169 27e4 300D0000 		.long	0xd30
- 30170 27e8 03       		.byte	0x3
- 30171 27e9 91       		.byte	0x91
- 30172 27ea B062     		.sleb128 -3792
- 30173 27ec 00       		.byte	0x0
- 30174 27ed 31       		.uleb128 0x31
- 30175 27ee 450D0000 		.long	0xd45
- 30176 27f2 00000000 		.quad	.LBB632
- 30176      00000000 
- 30177 27fa 00000000 		.quad	.LBE632
- 30177      00000000 
- 30178 2802 02       		.byte	0x2
- 30179 2803 5E03     		.value	0x35e
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 855
-
-
- 30180 2805 1C280000 		.long	0x281c
- 30181 2809 32       		.uleb128 0x32
- 30182 280a 620D0000 		.long	0xd62
- 30183 280e 03       		.byte	0x3
- 30184 280f 91       		.byte	0x91
- 30185 2810 C062     		.sleb128 -3776
- 30186 2812 32       		.uleb128 0x32
- 30187 2813 570D0000 		.long	0xd57
- 30188 2817 03       		.byte	0x3
- 30189 2818 91       		.byte	0x91
- 30190 2819 D062     		.sleb128 -3760
- 30191 281b 00       		.byte	0x0
- 30192 281c 31       		.uleb128 0x31
- 30193 281d 6E0D0000 		.long	0xd6e
- 30194 2821 00000000 		.quad	.LBB634
- 30194      00000000 
- 30195 2829 00000000 		.quad	.LBE634
- 30195      00000000 
- 30196 2831 02       		.byte	0x2
- 30197 2832 6403     		.value	0x364
- 30198 2834 84280000 		.long	0x2884
- 30199 2838 32       		.uleb128 0x32
- 30200 2839 8C0D0000 		.long	0xd8c
- 30201 283d 03       		.byte	0x3
- 30202 283e 91       		.byte	0x91
- 30203 283f E062     		.sleb128 -3744
- 30204 2841 32       		.uleb128 0x32
- 30205 2842 800D0000 		.long	0xd80
- 30206 2846 03       		.byte	0x3
- 30207 2847 91       		.byte	0x91
- 30208 2848 F062     		.sleb128 -3728
- 30209 284a 33       		.uleb128 0x33
- 30210 284b 00000000 		.quad	.LBB635
- 30210      00000000 
- 30211 2853 00000000 		.quad	.LBE635
- 30211      00000000 
- 30212 285b 34       		.uleb128 0x34
- 30213 285c 980D0000 		.long	0xd98
- 30214 2860 04       		.byte	0x4
- 30215 2861 91       		.byte	0x91
- 30216 2862 B0BF7F   		.sleb128 -8272
- 30217 2865 34       		.uleb128 0x34
- 30218 2866 A40D0000 		.long	0xda4
- 30219 286a 04       		.byte	0x4
- 30220 286b 91       		.byte	0x91
- 30221 286c A0BF7F   		.sleb128 -8288
- 30222 286f 34       		.uleb128 0x34
- 30223 2870 AF0D0000 		.long	0xdaf
- 30224 2874 04       		.byte	0x4
- 30225 2875 91       		.byte	0x91
- 30226 2876 90BF7F   		.sleb128 -8304
- 30227 2879 34       		.uleb128 0x34
- 30228 287a BB0D0000 		.long	0xdbb
- 30229 287e 03       		.byte	0x3
- 30230 287f 91       		.byte	0x91
- 30231 2880 8C63     		.sleb128 -3700
- 30232 2882 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 856
-
-
- 30233 2883 00       		.byte	0x0
- 30234 2884 31       		.uleb128 0x31
- 30235 2885 C70D0000 		.long	0xdc7
- 30236 2889 00000000 		.quad	.LBB636
- 30236      00000000 
- 30237 2891 00000000 		.quad	.LBE636
- 30237      00000000 
- 30238 2899 02       		.byte	0x2
- 30239 289a 6603     		.value	0x366
- 30240 289c B3280000 		.long	0x28b3
- 30241 28a0 32       		.uleb128 0x32
- 30242 28a1 E20D0000 		.long	0xde2
- 30243 28a5 03       		.byte	0x3
- 30244 28a6 91       		.byte	0x91
- 30245 28a7 9063     		.sleb128 -3696
- 30246 28a9 32       		.uleb128 0x32
- 30247 28aa D80D0000 		.long	0xdd8
- 30248 28ae 03       		.byte	0x3
- 30249 28af 91       		.byte	0x91
- 30250 28b0 A063     		.sleb128 -3680
- 30251 28b2 00       		.byte	0x0
- 30252 28b3 31       		.uleb128 0x31
- 30253 28b4 6E0D0000 		.long	0xd6e
- 30254 28b8 00000000 		.quad	.LBB638
- 30254      00000000 
- 30255 28c0 00000000 		.quad	.LBE638
- 30255      00000000 
- 30256 28c8 02       		.byte	0x2
- 30257 28c9 6803     		.value	0x368
- 30258 28cb 1B290000 		.long	0x291b
- 30259 28cf 32       		.uleb128 0x32
- 30260 28d0 8C0D0000 		.long	0xd8c
- 30261 28d4 03       		.byte	0x3
- 30262 28d5 91       		.byte	0x91
- 30263 28d6 B063     		.sleb128 -3664
- 30264 28d8 32       		.uleb128 0x32
- 30265 28d9 800D0000 		.long	0xd80
- 30266 28dd 03       		.byte	0x3
- 30267 28de 91       		.byte	0x91
- 30268 28df C063     		.sleb128 -3648
- 30269 28e1 33       		.uleb128 0x33
- 30270 28e2 00000000 		.quad	.LBB639
- 30270      00000000 
- 30271 28ea 00000000 		.quad	.LBE639
- 30271      00000000 
- 30272 28f2 34       		.uleb128 0x34
- 30273 28f3 980D0000 		.long	0xd98
- 30274 28f7 04       		.byte	0x4
- 30275 28f8 91       		.byte	0x91
- 30276 28f9 E0BF7F   		.sleb128 -8224
- 30277 28fc 34       		.uleb128 0x34
- 30278 28fd A40D0000 		.long	0xda4
- 30279 2901 04       		.byte	0x4
- 30280 2902 91       		.byte	0x91
- 30281 2903 D0BF7F   		.sleb128 -8240
- 30282 2906 34       		.uleb128 0x34
- 30283 2907 AF0D0000 		.long	0xdaf
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 857
-
-
- 30284 290b 04       		.byte	0x4
- 30285 290c 91       		.byte	0x91
- 30286 290d C0BF7F   		.sleb128 -8256
- 30287 2910 34       		.uleb128 0x34
- 30288 2911 BB0D0000 		.long	0xdbb
- 30289 2915 03       		.byte	0x3
- 30290 2916 91       		.byte	0x91
- 30291 2917 DC63     		.sleb128 -3620
- 30292 2919 00       		.byte	0x0
- 30293 291a 00       		.byte	0x0
- 30294 291b 31       		.uleb128 0x31
- 30295 291c C70D0000 		.long	0xdc7
- 30296 2920 00000000 		.quad	.LBB640
- 30296      00000000 
- 30297 2928 00000000 		.quad	.LBE640
- 30297      00000000 
- 30298 2930 02       		.byte	0x2
- 30299 2931 6A03     		.value	0x36a
- 30300 2933 4A290000 		.long	0x294a
- 30301 2937 32       		.uleb128 0x32
- 30302 2938 E20D0000 		.long	0xde2
- 30303 293c 03       		.byte	0x3
- 30304 293d 91       		.byte	0x91
- 30305 293e E063     		.sleb128 -3616
- 30306 2940 32       		.uleb128 0x32
- 30307 2941 D80D0000 		.long	0xdd8
- 30308 2945 03       		.byte	0x3
- 30309 2946 91       		.byte	0x91
- 30310 2947 F063     		.sleb128 -3600
- 30311 2949 00       		.byte	0x0
- 30312 294a 31       		.uleb128 0x31
- 30313 294b ED0D0000 		.long	0xded
- 30314 294f 00000000 		.quad	.LBB642
- 30314      00000000 
- 30315 2957 00000000 		.quad	.LBE642
- 30315      00000000 
- 30316 295f 02       		.byte	0x2
- 30317 2960 6C03     		.value	0x36c
- 30318 2962 79290000 		.long	0x2979
- 30319 2966 32       		.uleb128 0x32
- 30320 2967 0A0E0000 		.long	0xe0a
- 30321 296b 03       		.byte	0x3
- 30322 296c 91       		.byte	0x91
- 30323 296d 8064     		.sleb128 -3584
- 30324 296f 32       		.uleb128 0x32
- 30325 2970 FF0D0000 		.long	0xdff
- 30326 2974 03       		.byte	0x3
- 30327 2975 91       		.byte	0x91
- 30328 2976 9064     		.sleb128 -3568
- 30329 2978 00       		.byte	0x0
- 30330 2979 35       		.uleb128 0x35
- 30331 297a 1F0D0000 		.long	0xd1f
- 30332 297e 00000000 		.quad	.LBB644
- 30332      00000000 
- 30333 2986 00000000 		.quad	.LBE644
- 30333      00000000 
- 30334 298e 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 858
-
-
- 30335 298f 6E03     		.value	0x36e
- 30336 2991 32       		.uleb128 0x32
- 30337 2992 3A0D0000 		.long	0xd3a
- 30338 2996 03       		.byte	0x3
- 30339 2997 91       		.byte	0x91
- 30340 2998 A064     		.sleb128 -3552
- 30341 299a 32       		.uleb128 0x32
- 30342 299b 300D0000 		.long	0xd30
- 30343 299f 03       		.byte	0x3
- 30344 29a0 91       		.byte	0x91
- 30345 29a1 B064     		.sleb128 -3536
- 30346 29a3 00       		.byte	0x0
- 30347 29a4 00       		.byte	0x0
- 30348 29a5 00       		.byte	0x0
- 30349 29a6 00       		.byte	0x0
- 30350 29a7 36       		.uleb128 0x36
- 30351 29a8 00000000 		.quad	.LBB646
- 30351      00000000 
- 30352 29b0 00000000 		.quad	.LBE646
- 30352      00000000 
- 30353 29b8 C7290000 		.long	0x29c7
- 30354 29bc 34       		.uleb128 0x34
- 30355 29bd 180C0000 		.long	0xc18
- 30356 29c1 04       		.byte	0x4
- 30357 29c2 91       		.byte	0x91
- 30358 29c3 F0BE7F   		.sleb128 -8336
- 30359 29c6 00       		.byte	0x0
- 30360 29c7 31       		.uleb128 0x31
- 30361 29c8 160E0000 		.long	0xe16
- 30362 29cc 00000000 		.quad	.LBB647
- 30362      00000000 
- 30363 29d4 00000000 		.quad	.LBE647
- 30363      00000000 
- 30364 29dc 02       		.byte	0x2
- 30365 29dd 9406     		.value	0x694
- 30366 29df 702A0000 		.long	0x2a70
- 30367 29e3 32       		.uleb128 0x32
- 30368 29e4 280E0000 		.long	0xe28
- 30369 29e8 03       		.byte	0x3
- 30370 29e9 91       		.byte	0x91
- 30371 29ea C064     		.sleb128 -3520
- 30372 29ec 33       		.uleb128 0x33
- 30373 29ed 00000000 		.quad	.LBB648
- 30373      00000000 
- 30374 29f5 00000000 		.quad	.LBE648
- 30374      00000000 
- 30375 29fd 34       		.uleb128 0x34
- 30376 29fe 340E0000 		.long	0xe34
- 30377 2a02 09       		.byte	0x9
- 30378 2a03 03       		.byte	0x3
- 30379 2a04 00000000 		.quad	ShiftRowTable.6768
- 30379      00000000 
- 30380 2a0c 35       		.uleb128 0x35
- 30381 2a0d 6E0D0000 		.long	0xd6e
- 30382 2a11 00000000 		.quad	.LBB649
- 30382      00000000 
- 30383 2a19 00000000 		.quad	.LBE649
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 859
-
-
- 30383      00000000 
- 30384 2a21 02       		.byte	0x2
- 30385 2a22 9B02     		.value	0x29b
- 30386 2a24 32       		.uleb128 0x32
- 30387 2a25 8C0D0000 		.long	0xd8c
- 30388 2a29 03       		.byte	0x3
- 30389 2a2a 91       		.byte	0x91
- 30390 2a2b D064     		.sleb128 -3504
- 30391 2a2d 32       		.uleb128 0x32
- 30392 2a2e 800D0000 		.long	0xd80
- 30393 2a32 03       		.byte	0x3
- 30394 2a33 91       		.byte	0x91
- 30395 2a34 E064     		.sleb128 -3488
- 30396 2a36 33       		.uleb128 0x33
- 30397 2a37 00000000 		.quad	.LBB650
- 30397      00000000 
- 30398 2a3f 00000000 		.quad	.LBE650
- 30398      00000000 
- 30399 2a47 34       		.uleb128 0x34
- 30400 2a48 980D0000 		.long	0xd98
- 30401 2a4c 03       		.byte	0x3
- 30402 2a4d 91       		.byte	0x91
- 30403 2a4e 9040     		.sleb128 -8176
- 30404 2a50 34       		.uleb128 0x34
- 30405 2a51 A40D0000 		.long	0xda4
- 30406 2a55 03       		.byte	0x3
- 30407 2a56 91       		.byte	0x91
- 30408 2a57 8040     		.sleb128 -8192
- 30409 2a59 34       		.uleb128 0x34
- 30410 2a5a AF0D0000 		.long	0xdaf
- 30411 2a5e 04       		.byte	0x4
- 30412 2a5f 91       		.byte	0x91
- 30413 2a60 F0BF7F   		.sleb128 -8208
- 30414 2a63 34       		.uleb128 0x34
- 30415 2a64 BB0D0000 		.long	0xdbb
- 30416 2a68 03       		.byte	0x3
- 30417 2a69 91       		.byte	0x91
- 30418 2a6a FC64     		.sleb128 -3460
- 30419 2a6c 00       		.byte	0x0
- 30420 2a6d 00       		.byte	0x0
- 30421 2a6e 00       		.byte	0x0
- 30422 2a6f 00       		.byte	0x0
- 30423 2a70 36       		.uleb128 0x36
- 30424 2a71 00000000 		.quad	.LBB651
- 30424      00000000 
- 30425 2a79 00000000 		.quad	.LBE651
- 30425      00000000 
- 30426 2a81 902A0000 		.long	0x2a90
- 30427 2a85 34       		.uleb128 0x34
- 30428 2a86 280C0000 		.long	0xc28
- 30429 2a8a 04       		.byte	0x4
- 30430 2a8b 91       		.byte	0x91
- 30431 2a8c E0BE7F   		.sleb128 -8352
- 30432 2a8f 00       		.byte	0x0
- 30433 2a90 31       		.uleb128 0x31
- 30434 2a91 520E0000 		.long	0xe52
- 30435 2a95 00000000 		.quad	.LBB652
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 860
-
-
- 30435      00000000 
- 30436 2a9d 00000000 		.quad	.LBE652
- 30436      00000000 
- 30437 2aa5 02       		.byte	0x2
- 30438 2aa6 9606     		.value	0x696
- 30439 2aa8 BF2A0000 		.long	0x2abf
- 30440 2aac 32       		.uleb128 0x32
- 30441 2aad 6D0E0000 		.long	0xe6d
- 30442 2ab1 03       		.byte	0x3
- 30443 2ab2 91       		.byte	0x91
- 30444 2ab3 8065     		.sleb128 -3456
- 30445 2ab5 32       		.uleb128 0x32
- 30446 2ab6 630E0000 		.long	0xe63
- 30447 2aba 03       		.byte	0x3
- 30448 2abb 91       		.byte	0x91
- 30449 2abc 9065     		.sleb128 -3440
- 30450 2abe 00       		.byte	0x0
- 30451 2abf 36       		.uleb128 0x36
- 30452 2ac0 00000000 		.quad	.LBB654
- 30452      00000000 
- 30453 2ac8 00000000 		.quad	.LBE654
- 30453      00000000 
- 30454 2ad0 DF2A0000 		.long	0x2adf
- 30455 2ad4 34       		.uleb128 0x34
- 30456 2ad5 380C0000 		.long	0xc38
- 30457 2ad9 04       		.byte	0x4
- 30458 2ada 91       		.byte	0x91
- 30459 2adb D0BE7F   		.sleb128 -8368
- 30460 2ade 00       		.byte	0x0
- 30461 2adf 31       		.uleb128 0x31
- 30462 2ae0 780E0000 		.long	0xe78
- 30463 2ae4 00000000 		.quad	.LBB655
- 30463      00000000 
- 30464 2aec 00000000 		.quad	.LBE655
- 30464      00000000 
- 30465 2af4 02       		.byte	0x2
- 30466 2af5 9806     		.value	0x698
- 30467 2af7 202B0000 		.long	0x2b20
- 30468 2afb 32       		.uleb128 0x32
- 30469 2afc 8A0E0000 		.long	0xe8a
- 30470 2b00 03       		.byte	0x3
- 30471 2b01 91       		.byte	0x91
- 30472 2b02 A065     		.sleb128 -3424
- 30473 2b04 33       		.uleb128 0x33
- 30474 2b05 00000000 		.quad	.LBB656
- 30474      00000000 
- 30475 2b0d 00000000 		.quad	.LBE656
- 30475      00000000 
- 30476 2b15 34       		.uleb128 0x34
- 30477 2b16 960E0000 		.long	0xe96
- 30478 2b1a 03       		.byte	0x3
- 30479 2b1b 91       		.byte	0x91
- 30480 2b1c A040     		.sleb128 -8160
- 30481 2b1e 00       		.byte	0x0
- 30482 2b1f 00       		.byte	0x0
- 30483 2b20 33       		.uleb128 0x33
- 30484 2b21 00000000 		.quad	.LBB657
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 861
-
-
- 30484      00000000 
- 30485 2b29 00000000 		.quad	.LBE657
- 30485      00000000 
- 30486 2b31 34       		.uleb128 0x34
- 30487 2b32 440C0000 		.long	0xc44
- 30488 2b36 04       		.byte	0x4
- 30489 2b37 91       		.byte	0x91
- 30490 2b38 C0BE7F   		.sleb128 -8384
- 30491 2b3b 00       		.byte	0x0
- 30492 2b3c 00       		.byte	0x0
- 30493 2b3d 00       		.byte	0x0
- 30494 2b3e 31       		.uleb128 0x31
- 30495 2b3f A30E0000 		.long	0xea3
- 30496 2b43 00000000 		.quad	.LBB658
- 30496      00000000 
- 30497 2b4b 00000000 		.quad	.LBE658
- 30497      00000000 
- 30498 2b53 02       		.byte	0x2
- 30499 2b54 D406     		.value	0x6d4
- 30500 2b56 3F2C0000 		.long	0x2c3f
- 30501 2b5a 32       		.uleb128 0x32
- 30502 2b5b B50E0000 		.long	0xeb5
- 30503 2b5f 03       		.byte	0x3
- 30504 2b60 91       		.byte	0x91
- 30505 2b61 B065     		.sleb128 -3408
- 30506 2b63 33       		.uleb128 0x33
- 30507 2b64 00000000 		.quad	.LBB659
- 30507      00000000 
- 30508 2b6c 00000000 		.quad	.LBE659
- 30508      00000000 
- 30509 2b74 34       		.uleb128 0x34
- 30510 2b75 C10E0000 		.long	0xec1
- 30511 2b79 04       		.byte	0x4
- 30512 2b7a 76       		.byte	0x76
- 30513 2b7b E0B27F   		.sleb128 -9888
- 30514 2b7e 31       		.uleb128 0x31
- 30515 2b7f CE0E0000 		.long	0xece
- 30516 2b83 00000000 		.quad	.LBB660
- 30516      00000000 
- 30517 2b8b 00000000 		.quad	.LBE660
- 30517      00000000 
- 30518 2b93 02       		.byte	0x2
- 30519 2b94 1F06     		.value	0x61f
- 30520 2b96 BF2B0000 		.long	0x2bbf
- 30521 2b9a 32       		.uleb128 0x32
- 30522 2b9b E00E0000 		.long	0xee0
- 30523 2b9f 03       		.byte	0x3
- 30524 2ba0 91       		.byte	0x91
- 30525 2ba1 C065     		.sleb128 -3392
- 30526 2ba3 33       		.uleb128 0x33
- 30527 2ba4 00000000 		.quad	.LBB661
- 30527      00000000 
- 30528 2bac 00000000 		.quad	.LBE661
- 30528      00000000 
- 30529 2bb4 34       		.uleb128 0x34
- 30530 2bb5 EC0E0000 		.long	0xeec
- 30531 2bb9 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 862
-
-
- 30532 2bba 91       		.byte	0x91
- 30533 2bbb B040     		.sleb128 -8144
- 30534 2bbd 00       		.byte	0x0
- 30535 2bbe 00       		.byte	0x0
- 30536 2bbf 31       		.uleb128 0x31
- 30537 2bc0 CE0E0000 		.long	0xece
- 30538 2bc4 00000000 		.quad	.LBB662
- 30538      00000000 
- 30539 2bcc 00000000 		.quad	.LBE662
- 30539      00000000 
- 30540 2bd4 02       		.byte	0x2
- 30541 2bd5 2006     		.value	0x620
- 30542 2bd7 002C0000 		.long	0x2c00
- 30543 2bdb 32       		.uleb128 0x32
- 30544 2bdc E00E0000 		.long	0xee0
- 30545 2be0 03       		.byte	0x3
- 30546 2be1 91       		.byte	0x91
- 30547 2be2 D065     		.sleb128 -3376
- 30548 2be4 33       		.uleb128 0x33
- 30549 2be5 00000000 		.quad	.LBB663
- 30549      00000000 
- 30550 2bed 00000000 		.quad	.LBE663
- 30550      00000000 
- 30551 2bf5 34       		.uleb128 0x34
- 30552 2bf6 EC0E0000 		.long	0xeec
- 30553 2bfa 03       		.byte	0x3
- 30554 2bfb 91       		.byte	0x91
- 30555 2bfc C040     		.sleb128 -8128
- 30556 2bfe 00       		.byte	0x0
- 30557 2bff 00       		.byte	0x0
- 30558 2c00 35       		.uleb128 0x35
- 30559 2c01 CE0E0000 		.long	0xece
- 30560 2c05 00000000 		.quad	.LBB664
- 30560      00000000 
- 30561 2c0d 00000000 		.quad	.LBE664
- 30561      00000000 
- 30562 2c15 02       		.byte	0x2
- 30563 2c16 2106     		.value	0x621
- 30564 2c18 32       		.uleb128 0x32
- 30565 2c19 E00E0000 		.long	0xee0
- 30566 2c1d 03       		.byte	0x3
- 30567 2c1e 91       		.byte	0x91
- 30568 2c1f E065     		.sleb128 -3360
- 30569 2c21 33       		.uleb128 0x33
- 30570 2c22 00000000 		.quad	.LBB665
- 30570      00000000 
- 30571 2c2a 00000000 		.quad	.LBE665
- 30571      00000000 
- 30572 2c32 34       		.uleb128 0x34
- 30573 2c33 EC0E0000 		.long	0xeec
- 30574 2c37 03       		.byte	0x3
- 30575 2c38 91       		.byte	0x91
- 30576 2c39 D040     		.sleb128 -8112
- 30577 2c3b 00       		.byte	0x0
- 30578 2c3c 00       		.byte	0x0
- 30579 2c3d 00       		.byte	0x0
- 30580 2c3e 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 863
-
-
- 30581 2c3f 31       		.uleb128 0x31
- 30582 2c40 D10B0000 		.long	0xbd1
- 30583 2c44 00000000 		.quad	.LBB666
- 30583      00000000 
- 30584 2c4c 00000000 		.quad	.LBE666
- 30584      00000000 
- 30585 2c54 02       		.byte	0x2
- 30586 2c55 D506     		.value	0x6d5
- 30587 2c57 E7300000 		.long	0x30e7
- 30588 2c5b 32       		.uleb128 0x32
- 30589 2c5c EF0B0000 		.long	0xbef
- 30590 2c60 03       		.byte	0x3
- 30591 2c61 91       		.byte	0x91
- 30592 2c62 FC65     		.sleb128 -3332
- 30593 2c64 32       		.uleb128 0x32
- 30594 2c65 E30B0000 		.long	0xbe3
- 30595 2c69 03       		.byte	0x3
- 30596 2c6a 91       		.byte	0x91
- 30597 2c6b 8066     		.sleb128 -3328
- 30598 2c6d 33       		.uleb128 0x33
- 30599 2c6e 00000000 		.quad	.LBB667
- 30599      00000000 
- 30600 2c76 00000000 		.quad	.LBE667
- 30600      00000000 
- 30601 2c7e 34       		.uleb128 0x34
- 30602 2c7f FB0B0000 		.long	0xbfb
- 30603 2c83 04       		.byte	0x4
- 30604 2c84 76       		.byte	0x76
- 30605 2c85 80B37F   		.sleb128 -9856
- 30606 2c88 34       		.uleb128 0x34
- 30607 2c89 070C0000 		.long	0xc07
- 30608 2c8d 04       		.byte	0x4
- 30609 2c8e 76       		.byte	0x76
- 30610 2c8f F0B27F   		.sleb128 -9872
- 30611 2c92 31       		.uleb128 0x31
- 30612 2c93 500C0000 		.long	0xc50
- 30613 2c97 00000000 		.quad	.LBB668
- 30613      00000000 
- 30614 2c9f 00000000 		.quad	.LBE668
- 30614      00000000 
- 30615 2ca7 02       		.byte	0x2
- 30616 2ca8 9106     		.value	0x691
- 30617 2caa E52C0000 		.long	0x2ce5
- 30618 2cae 32       		.uleb128 0x32
- 30619 2caf 7A0C0000 		.long	0xc7a
- 30620 2cb3 03       		.byte	0x3
- 30621 2cb4 91       		.byte	0x91
- 30622 2cb5 9866     		.sleb128 -3304
- 30623 2cb7 32       		.uleb128 0x32
- 30624 2cb8 6E0C0000 		.long	0xc6e
- 30625 2cbc 03       		.byte	0x3
- 30626 2cbd 91       		.byte	0x91
- 30627 2cbe 9C66     		.sleb128 -3300
- 30628 2cc0 32       		.uleb128 0x32
- 30629 2cc1 620C0000 		.long	0xc62
- 30630 2cc5 03       		.byte	0x3
- 30631 2cc6 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 864
-
-
- 30632 2cc7 A066     		.sleb128 -3296
- 30633 2cc9 33       		.uleb128 0x33
- 30634 2cca 00000000 		.quad	.LBB669
- 30634      00000000 
- 30635 2cd2 00000000 		.quad	.LBE669
- 30635      00000000 
- 30636 2cda 34       		.uleb128 0x34
- 30637 2cdb 860C0000 		.long	0xc86
- 30638 2cdf 03       		.byte	0x3
- 30639 2ce0 91       		.byte	0x91
- 30640 2ce1 A041     		.sleb128 -8032
- 30641 2ce3 00       		.byte	0x0
- 30642 2ce4 00       		.byte	0x0
- 30643 2ce5 31       		.uleb128 0x31
- 30644 2ce6 910C0000 		.long	0xc91
- 30645 2cea 00000000 		.quad	.LBB670
- 30645      00000000 
- 30646 2cf2 00000000 		.quad	.LBE670
- 30646      00000000 
- 30647 2cfa 02       		.byte	0x2
- 30648 2cfb 9206     		.value	0x692
- 30649 2cfd 552F0000 		.long	0x2f55
- 30650 2d01 32       		.uleb128 0x32
- 30651 2d02 A30C0000 		.long	0xca3
- 30652 2d06 03       		.byte	0x3
- 30653 2d07 91       		.byte	0x91
- 30654 2d08 B066     		.sleb128 -3280
- 30655 2d0a 35       		.uleb128 0x35
- 30656 2d0b B00C0000 		.long	0xcb0
- 30657 2d0f 00000000 		.quad	.LBB672
- 30657      00000000 
- 30658 2d17 00000000 		.quad	.LBE672
- 30658      00000000 
- 30659 2d1f 02       		.byte	0x2
- 30660 2d20 7D03     		.value	0x37d
- 30661 2d22 32       		.uleb128 0x32
- 30662 2d23 CE0C0000 		.long	0xcce
- 30663 2d27 03       		.byte	0x3
- 30664 2d28 91       		.byte	0x91
- 30665 2d29 C866     		.sleb128 -3256
- 30666 2d2b 32       		.uleb128 0x32
- 30667 2d2c C20C0000 		.long	0xcc2
- 30668 2d30 03       		.byte	0x3
- 30669 2d31 91       		.byte	0x91
- 30670 2d32 D066     		.sleb128 -3248
- 30671 2d34 33       		.uleb128 0x33
- 30672 2d35 00000000 		.quad	.LBB673
- 30672      00000000 
- 30673 2d3d 00000000 		.quad	.LBE673
- 30673      00000000 
- 30674 2d45 34       		.uleb128 0x34
- 30675 2d46 DA0C0000 		.long	0xcda
- 30676 2d4a 03       		.byte	0x3
- 30677 2d4b 91       		.byte	0x91
- 30678 2d4c A067     		.sleb128 -3168
- 30679 2d4e 34       		.uleb128 0x34
- 30680 2d4f E50C0000 		.long	0xce5
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 865
-
-
- 30681 2d53 03       		.byte	0x3
- 30682 2d54 91       		.byte	0x91
- 30683 2d55 9067     		.sleb128 -3184
- 30684 2d57 34       		.uleb128 0x34
- 30685 2d58 F00C0000 		.long	0xcf0
- 30686 2d5c 03       		.byte	0x3
- 30687 2d5d 91       		.byte	0x91
- 30688 2d5e 8067     		.sleb128 -3200
- 30689 2d60 34       		.uleb128 0x34
- 30690 2d61 FC0C0000 		.long	0xcfc
- 30691 2d65 03       		.byte	0x3
- 30692 2d66 91       		.byte	0x91
- 30693 2d67 F066     		.sleb128 -3216
- 30694 2d69 34       		.uleb128 0x34
- 30695 2d6a 080D0000 		.long	0xd08
- 30696 2d6e 03       		.byte	0x3
- 30697 2d6f 91       		.byte	0x91
- 30698 2d70 EC66     		.sleb128 -3220
- 30699 2d72 31       		.uleb128 0x31
- 30700 2d73 1F0D0000 		.long	0xd1f
- 30701 2d77 00000000 		.quad	.LBB674
- 30701      00000000 
- 30702 2d7f 00000000 		.quad	.LBE674
- 30702      00000000 
- 30703 2d87 02       		.byte	0x2
- 30704 2d88 5603     		.value	0x356
- 30705 2d8a A12D0000 		.long	0x2da1
- 30706 2d8e 32       		.uleb128 0x32
- 30707 2d8f 3A0D0000 		.long	0xd3a
- 30708 2d93 03       		.byte	0x3
- 30709 2d94 91       		.byte	0x91
- 30710 2d95 B067     		.sleb128 -3152
- 30711 2d97 32       		.uleb128 0x32
- 30712 2d98 300D0000 		.long	0xd30
- 30713 2d9c 03       		.byte	0x3
- 30714 2d9d 91       		.byte	0x91
- 30715 2d9e C067     		.sleb128 -3136
- 30716 2da0 00       		.byte	0x0
- 30717 2da1 31       		.uleb128 0x31
- 30718 2da2 450D0000 		.long	0xd45
- 30719 2da6 00000000 		.quad	.LBB676
- 30719      00000000 
- 30720 2dae 00000000 		.quad	.LBE676
- 30720      00000000 
- 30721 2db6 02       		.byte	0x2
- 30722 2db7 5E03     		.value	0x35e
- 30723 2db9 D02D0000 		.long	0x2dd0
- 30724 2dbd 32       		.uleb128 0x32
- 30725 2dbe 620D0000 		.long	0xd62
- 30726 2dc2 03       		.byte	0x3
- 30727 2dc3 91       		.byte	0x91
- 30728 2dc4 D067     		.sleb128 -3120
- 30729 2dc6 32       		.uleb128 0x32
- 30730 2dc7 570D0000 		.long	0xd57
- 30731 2dcb 03       		.byte	0x3
- 30732 2dcc 91       		.byte	0x91
- 30733 2dcd E067     		.sleb128 -3104
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 866
-
-
- 30734 2dcf 00       		.byte	0x0
- 30735 2dd0 31       		.uleb128 0x31
- 30736 2dd1 6E0D0000 		.long	0xd6e
- 30737 2dd5 00000000 		.quad	.LBB678
- 30737      00000000 
- 30738 2ddd 00000000 		.quad	.LBE678
- 30738      00000000 
- 30739 2de5 02       		.byte	0x2
- 30740 2de6 6403     		.value	0x364
- 30741 2de8 352E0000 		.long	0x2e35
- 30742 2dec 32       		.uleb128 0x32
- 30743 2ded 8C0D0000 		.long	0xd8c
- 30744 2df1 03       		.byte	0x3
- 30745 2df2 91       		.byte	0x91
- 30746 2df3 F067     		.sleb128 -3088
- 30747 2df5 32       		.uleb128 0x32
- 30748 2df6 800D0000 		.long	0xd80
- 30749 2dfa 03       		.byte	0x3
- 30750 2dfb 91       		.byte	0x91
- 30751 2dfc 8068     		.sleb128 -3072
- 30752 2dfe 33       		.uleb128 0x33
- 30753 2dff 00000000 		.quad	.LBB679
- 30753      00000000 
- 30754 2e07 00000000 		.quad	.LBE679
- 30754      00000000 
- 30755 2e0f 34       		.uleb128 0x34
- 30756 2e10 980D0000 		.long	0xd98
- 30757 2e14 03       		.byte	0x3
- 30758 2e15 91       		.byte	0x91
- 30759 2e16 D041     		.sleb128 -7984
- 30760 2e18 34       		.uleb128 0x34
- 30761 2e19 A40D0000 		.long	0xda4
- 30762 2e1d 03       		.byte	0x3
- 30763 2e1e 91       		.byte	0x91
- 30764 2e1f C041     		.sleb128 -8000
- 30765 2e21 34       		.uleb128 0x34
- 30766 2e22 AF0D0000 		.long	0xdaf
- 30767 2e26 03       		.byte	0x3
- 30768 2e27 91       		.byte	0x91
- 30769 2e28 B041     		.sleb128 -8016
- 30770 2e2a 34       		.uleb128 0x34
- 30771 2e2b BB0D0000 		.long	0xdbb
- 30772 2e2f 03       		.byte	0x3
- 30773 2e30 91       		.byte	0x91
- 30774 2e31 9C68     		.sleb128 -3044
- 30775 2e33 00       		.byte	0x0
- 30776 2e34 00       		.byte	0x0
- 30777 2e35 31       		.uleb128 0x31
- 30778 2e36 C70D0000 		.long	0xdc7
- 30779 2e3a 00000000 		.quad	.LBB680
- 30779      00000000 
- 30780 2e42 00000000 		.quad	.LBE680
- 30780      00000000 
- 30781 2e4a 02       		.byte	0x2
- 30782 2e4b 6603     		.value	0x366
- 30783 2e4d 642E0000 		.long	0x2e64
- 30784 2e51 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 867
-
-
- 30785 2e52 E20D0000 		.long	0xde2
- 30786 2e56 03       		.byte	0x3
- 30787 2e57 91       		.byte	0x91
- 30788 2e58 A068     		.sleb128 -3040
- 30789 2e5a 32       		.uleb128 0x32
- 30790 2e5b D80D0000 		.long	0xdd8
- 30791 2e5f 03       		.byte	0x3
- 30792 2e60 91       		.byte	0x91
- 30793 2e61 B068     		.sleb128 -3024
- 30794 2e63 00       		.byte	0x0
- 30795 2e64 31       		.uleb128 0x31
- 30796 2e65 6E0D0000 		.long	0xd6e
- 30797 2e69 00000000 		.quad	.LBB682
- 30797      00000000 
- 30798 2e71 00000000 		.quad	.LBE682
- 30798      00000000 
- 30799 2e79 02       		.byte	0x2
- 30800 2e7a 6803     		.value	0x368
- 30801 2e7c C92E0000 		.long	0x2ec9
- 30802 2e80 32       		.uleb128 0x32
- 30803 2e81 8C0D0000 		.long	0xd8c
- 30804 2e85 03       		.byte	0x3
- 30805 2e86 91       		.byte	0x91
- 30806 2e87 C068     		.sleb128 -3008
- 30807 2e89 32       		.uleb128 0x32
- 30808 2e8a 800D0000 		.long	0xd80
- 30809 2e8e 03       		.byte	0x3
- 30810 2e8f 91       		.byte	0x91
- 30811 2e90 D068     		.sleb128 -2992
- 30812 2e92 33       		.uleb128 0x33
- 30813 2e93 00000000 		.quad	.LBB683
- 30813      00000000 
- 30814 2e9b 00000000 		.quad	.LBE683
- 30814      00000000 
- 30815 2ea3 34       		.uleb128 0x34
- 30816 2ea4 980D0000 		.long	0xd98
- 30817 2ea8 03       		.byte	0x3
- 30818 2ea9 91       		.byte	0x91
- 30819 2eaa 8042     		.sleb128 -7936
- 30820 2eac 34       		.uleb128 0x34
- 30821 2ead A40D0000 		.long	0xda4
- 30822 2eb1 03       		.byte	0x3
- 30823 2eb2 91       		.byte	0x91
- 30824 2eb3 F041     		.sleb128 -7952
- 30825 2eb5 34       		.uleb128 0x34
- 30826 2eb6 AF0D0000 		.long	0xdaf
- 30827 2eba 03       		.byte	0x3
- 30828 2ebb 91       		.byte	0x91
- 30829 2ebc E041     		.sleb128 -7968
- 30830 2ebe 34       		.uleb128 0x34
- 30831 2ebf BB0D0000 		.long	0xdbb
- 30832 2ec3 03       		.byte	0x3
- 30833 2ec4 91       		.byte	0x91
- 30834 2ec5 EC68     		.sleb128 -2964
- 30835 2ec7 00       		.byte	0x0
- 30836 2ec8 00       		.byte	0x0
- 30837 2ec9 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 868
-
-
- 30838 2eca C70D0000 		.long	0xdc7
- 30839 2ece 00000000 		.quad	.LBB684
- 30839      00000000 
- 30840 2ed6 00000000 		.quad	.LBE684
- 30840      00000000 
- 30841 2ede 02       		.byte	0x2
- 30842 2edf 6A03     		.value	0x36a
- 30843 2ee1 F82E0000 		.long	0x2ef8
- 30844 2ee5 32       		.uleb128 0x32
- 30845 2ee6 E20D0000 		.long	0xde2
- 30846 2eea 03       		.byte	0x3
- 30847 2eeb 91       		.byte	0x91
- 30848 2eec F068     		.sleb128 -2960
- 30849 2eee 32       		.uleb128 0x32
- 30850 2eef D80D0000 		.long	0xdd8
- 30851 2ef3 03       		.byte	0x3
- 30852 2ef4 91       		.byte	0x91
- 30853 2ef5 8069     		.sleb128 -2944
- 30854 2ef7 00       		.byte	0x0
- 30855 2ef8 31       		.uleb128 0x31
- 30856 2ef9 ED0D0000 		.long	0xded
- 30857 2efd 00000000 		.quad	.LBB686
- 30857      00000000 
- 30858 2f05 00000000 		.quad	.LBE686
- 30858      00000000 
- 30859 2f0d 02       		.byte	0x2
- 30860 2f0e 6C03     		.value	0x36c
- 30861 2f10 272F0000 		.long	0x2f27
- 30862 2f14 32       		.uleb128 0x32
- 30863 2f15 0A0E0000 		.long	0xe0a
- 30864 2f19 03       		.byte	0x3
- 30865 2f1a 91       		.byte	0x91
- 30866 2f1b 9069     		.sleb128 -2928
- 30867 2f1d 32       		.uleb128 0x32
- 30868 2f1e FF0D0000 		.long	0xdff
- 30869 2f22 03       		.byte	0x3
- 30870 2f23 91       		.byte	0x91
- 30871 2f24 A069     		.sleb128 -2912
- 30872 2f26 00       		.byte	0x0
- 30873 2f27 35       		.uleb128 0x35
- 30874 2f28 1F0D0000 		.long	0xd1f
- 30875 2f2c 00000000 		.quad	.LBB688
- 30875      00000000 
- 30876 2f34 00000000 		.quad	.LBE688
- 30876      00000000 
- 30877 2f3c 02       		.byte	0x2
- 30878 2f3d 6E03     		.value	0x36e
- 30879 2f3f 32       		.uleb128 0x32
- 30880 2f40 3A0D0000 		.long	0xd3a
- 30881 2f44 03       		.byte	0x3
- 30882 2f45 91       		.byte	0x91
- 30883 2f46 B069     		.sleb128 -2896
- 30884 2f48 32       		.uleb128 0x32
- 30885 2f49 300D0000 		.long	0xd30
- 30886 2f4d 03       		.byte	0x3
- 30887 2f4e 91       		.byte	0x91
- 30888 2f4f C069     		.sleb128 -2880
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 869
-
-
- 30889 2f51 00       		.byte	0x0
- 30890 2f52 00       		.byte	0x0
- 30891 2f53 00       		.byte	0x0
- 30892 2f54 00       		.byte	0x0
- 30893 2f55 36       		.uleb128 0x36
- 30894 2f56 00000000 		.quad	.LBB690
- 30894      00000000 
- 30895 2f5e 00000000 		.quad	.LBE690
- 30895      00000000 
- 30896 2f66 742F0000 		.long	0x2f74
- 30897 2f6a 34       		.uleb128 0x34
- 30898 2f6b 180C0000 		.long	0xc18
- 30899 2f6f 03       		.byte	0x3
- 30900 2f70 91       		.byte	0x91
- 30901 2f71 9041     		.sleb128 -8048
- 30902 2f73 00       		.byte	0x0
- 30903 2f74 31       		.uleb128 0x31
- 30904 2f75 160E0000 		.long	0xe16
- 30905 2f79 00000000 		.quad	.LBB691
- 30905      00000000 
- 30906 2f81 00000000 		.quad	.LBE691
- 30906      00000000 
- 30907 2f89 02       		.byte	0x2
- 30908 2f8a 9406     		.value	0x694
- 30909 2f8c 1C300000 		.long	0x301c
- 30910 2f90 32       		.uleb128 0x32
- 30911 2f91 280E0000 		.long	0xe28
- 30912 2f95 03       		.byte	0x3
- 30913 2f96 91       		.byte	0x91
- 30914 2f97 D069     		.sleb128 -2864
- 30915 2f99 33       		.uleb128 0x33
- 30916 2f9a 00000000 		.quad	.LBB692
- 30916      00000000 
- 30917 2fa2 00000000 		.quad	.LBE692
- 30917      00000000 
- 30918 2faa 34       		.uleb128 0x34
- 30919 2fab 340E0000 		.long	0xe34
- 30920 2faf 09       		.byte	0x9
- 30921 2fb0 03       		.byte	0x3
- 30922 2fb1 00000000 		.quad	ShiftRowTable.6768
- 30922      00000000 
- 30923 2fb9 35       		.uleb128 0x35
- 30924 2fba 6E0D0000 		.long	0xd6e
- 30925 2fbe 00000000 		.quad	.LBB693
- 30925      00000000 
- 30926 2fc6 00000000 		.quad	.LBE693
- 30926      00000000 
- 30927 2fce 02       		.byte	0x2
- 30928 2fcf 9B02     		.value	0x29b
- 30929 2fd1 32       		.uleb128 0x32
- 30930 2fd2 8C0D0000 		.long	0xd8c
- 30931 2fd6 03       		.byte	0x3
- 30932 2fd7 91       		.byte	0x91
- 30933 2fd8 E069     		.sleb128 -2848
- 30934 2fda 32       		.uleb128 0x32
- 30935 2fdb 800D0000 		.long	0xd80
- 30936 2fdf 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 870
-
-
- 30937 2fe0 91       		.byte	0x91
- 30938 2fe1 F069     		.sleb128 -2832
- 30939 2fe3 33       		.uleb128 0x33
- 30940 2fe4 00000000 		.quad	.LBB694
- 30940      00000000 
- 30941 2fec 00000000 		.quad	.LBE694
- 30941      00000000 
- 30942 2ff4 34       		.uleb128 0x34
- 30943 2ff5 980D0000 		.long	0xd98
- 30944 2ff9 03       		.byte	0x3
- 30945 2ffa 91       		.byte	0x91
- 30946 2ffb B042     		.sleb128 -7888
- 30947 2ffd 34       		.uleb128 0x34
- 30948 2ffe A40D0000 		.long	0xda4
- 30949 3002 03       		.byte	0x3
- 30950 3003 91       		.byte	0x91
- 30951 3004 A042     		.sleb128 -7904
- 30952 3006 34       		.uleb128 0x34
- 30953 3007 AF0D0000 		.long	0xdaf
- 30954 300b 03       		.byte	0x3
- 30955 300c 91       		.byte	0x91
- 30956 300d 9042     		.sleb128 -7920
- 30957 300f 34       		.uleb128 0x34
- 30958 3010 BB0D0000 		.long	0xdbb
- 30959 3014 03       		.byte	0x3
- 30960 3015 91       		.byte	0x91
- 30961 3016 8C6A     		.sleb128 -2804
- 30962 3018 00       		.byte	0x0
- 30963 3019 00       		.byte	0x0
- 30964 301a 00       		.byte	0x0
- 30965 301b 00       		.byte	0x0
- 30966 301c 36       		.uleb128 0x36
- 30967 301d 00000000 		.quad	.LBB695
- 30967      00000000 
- 30968 3025 00000000 		.quad	.LBE695
- 30968      00000000 
- 30969 302d 3B300000 		.long	0x303b
- 30970 3031 34       		.uleb128 0x34
- 30971 3032 280C0000 		.long	0xc28
- 30972 3036 03       		.byte	0x3
- 30973 3037 91       		.byte	0x91
- 30974 3038 8041     		.sleb128 -8064
- 30975 303a 00       		.byte	0x0
- 30976 303b 31       		.uleb128 0x31
- 30977 303c 520E0000 		.long	0xe52
- 30978 3040 00000000 		.quad	.LBB696
- 30978      00000000 
- 30979 3048 00000000 		.quad	.LBE696
- 30979      00000000 
- 30980 3050 02       		.byte	0x2
- 30981 3051 9606     		.value	0x696
- 30982 3053 6A300000 		.long	0x306a
- 30983 3057 32       		.uleb128 0x32
- 30984 3058 6D0E0000 		.long	0xe6d
- 30985 305c 03       		.byte	0x3
- 30986 305d 91       		.byte	0x91
- 30987 305e 906A     		.sleb128 -2800
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 871
-
-
- 30988 3060 32       		.uleb128 0x32
- 30989 3061 630E0000 		.long	0xe63
- 30990 3065 03       		.byte	0x3
- 30991 3066 91       		.byte	0x91
- 30992 3067 A06A     		.sleb128 -2784
- 30993 3069 00       		.byte	0x0
- 30994 306a 36       		.uleb128 0x36
- 30995 306b 00000000 		.quad	.LBB698
- 30995      00000000 
- 30996 3073 00000000 		.quad	.LBE698
- 30996      00000000 
- 30997 307b 89300000 		.long	0x3089
- 30998 307f 34       		.uleb128 0x34
- 30999 3080 380C0000 		.long	0xc38
- 31000 3084 03       		.byte	0x3
- 31001 3085 91       		.byte	0x91
- 31002 3086 F040     		.sleb128 -8080
- 31003 3088 00       		.byte	0x0
- 31004 3089 31       		.uleb128 0x31
- 31005 308a 780E0000 		.long	0xe78
- 31006 308e 00000000 		.quad	.LBB699
- 31006      00000000 
- 31007 3096 00000000 		.quad	.LBE699
- 31007      00000000 
- 31008 309e 02       		.byte	0x2
- 31009 309f 9806     		.value	0x698
- 31010 30a1 CA300000 		.long	0x30ca
- 31011 30a5 32       		.uleb128 0x32
- 31012 30a6 8A0E0000 		.long	0xe8a
- 31013 30aa 03       		.byte	0x3
- 31014 30ab 91       		.byte	0x91
- 31015 30ac B06A     		.sleb128 -2768
- 31016 30ae 33       		.uleb128 0x33
- 31017 30af 00000000 		.quad	.LBB700
- 31017      00000000 
- 31018 30b7 00000000 		.quad	.LBE700
- 31018      00000000 
- 31019 30bf 34       		.uleb128 0x34
- 31020 30c0 960E0000 		.long	0xe96
- 31021 30c4 03       		.byte	0x3
- 31022 30c5 91       		.byte	0x91
- 31023 30c6 C042     		.sleb128 -7872
- 31024 30c8 00       		.byte	0x0
- 31025 30c9 00       		.byte	0x0
- 31026 30ca 33       		.uleb128 0x33
- 31027 30cb 00000000 		.quad	.LBB701
- 31027      00000000 
- 31028 30d3 00000000 		.quad	.LBE701
- 31028      00000000 
- 31029 30db 34       		.uleb128 0x34
- 31030 30dc 440C0000 		.long	0xc44
- 31031 30e0 03       		.byte	0x3
- 31032 30e1 91       		.byte	0x91
- 31033 30e2 E040     		.sleb128 -8096
- 31034 30e4 00       		.byte	0x0
- 31035 30e5 00       		.byte	0x0
- 31036 30e6 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 872
-
-
- 31037 30e7 31       		.uleb128 0x31
- 31038 30e8 A30E0000 		.long	0xea3
- 31039 30ec 00000000 		.quad	.LBB702
- 31039      00000000 
- 31040 30f4 00000000 		.quad	.LBE702
- 31040      00000000 
- 31041 30fc 02       		.byte	0x2
- 31042 30fd D506     		.value	0x6d5
- 31043 30ff E8310000 		.long	0x31e8
- 31044 3103 32       		.uleb128 0x32
- 31045 3104 B50E0000 		.long	0xeb5
- 31046 3108 03       		.byte	0x3
- 31047 3109 91       		.byte	0x91
- 31048 310a C06A     		.sleb128 -2752
- 31049 310c 33       		.uleb128 0x33
- 31050 310d 00000000 		.quad	.LBB703
- 31050      00000000 
- 31051 3115 00000000 		.quad	.LBE703
- 31051      00000000 
- 31052 311d 34       		.uleb128 0x34
- 31053 311e C10E0000 		.long	0xec1
- 31054 3122 04       		.byte	0x4
- 31055 3123 76       		.byte	0x76
- 31056 3124 A0B37F   		.sleb128 -9824
- 31057 3127 31       		.uleb128 0x31
- 31058 3128 CE0E0000 		.long	0xece
- 31059 312c 00000000 		.quad	.LBB704
- 31059      00000000 
- 31060 3134 00000000 		.quad	.LBE704
- 31060      00000000 
- 31061 313c 02       		.byte	0x2
- 31062 313d 1F06     		.value	0x61f
- 31063 313f 68310000 		.long	0x3168
- 31064 3143 32       		.uleb128 0x32
- 31065 3144 E00E0000 		.long	0xee0
- 31066 3148 03       		.byte	0x3
- 31067 3149 91       		.byte	0x91
- 31068 314a D06A     		.sleb128 -2736
- 31069 314c 33       		.uleb128 0x33
- 31070 314d 00000000 		.quad	.LBB705
- 31070      00000000 
- 31071 3155 00000000 		.quad	.LBE705
- 31071      00000000 
- 31072 315d 34       		.uleb128 0x34
- 31073 315e EC0E0000 		.long	0xeec
- 31074 3162 03       		.byte	0x3
- 31075 3163 91       		.byte	0x91
- 31076 3164 D042     		.sleb128 -7856
- 31077 3166 00       		.byte	0x0
- 31078 3167 00       		.byte	0x0
- 31079 3168 31       		.uleb128 0x31
- 31080 3169 CE0E0000 		.long	0xece
- 31081 316d 00000000 		.quad	.LBB706
- 31081      00000000 
- 31082 3175 00000000 		.quad	.LBE706
- 31082      00000000 
- 31083 317d 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 873
-
-
- 31084 317e 2006     		.value	0x620
- 31085 3180 A9310000 		.long	0x31a9
- 31086 3184 32       		.uleb128 0x32
- 31087 3185 E00E0000 		.long	0xee0
- 31088 3189 03       		.byte	0x3
- 31089 318a 91       		.byte	0x91
- 31090 318b E06A     		.sleb128 -2720
- 31091 318d 33       		.uleb128 0x33
- 31092 318e 00000000 		.quad	.LBB707
- 31092      00000000 
- 31093 3196 00000000 		.quad	.LBE707
- 31093      00000000 
- 31094 319e 34       		.uleb128 0x34
- 31095 319f EC0E0000 		.long	0xeec
- 31096 31a3 03       		.byte	0x3
- 31097 31a4 91       		.byte	0x91
- 31098 31a5 E042     		.sleb128 -7840
- 31099 31a7 00       		.byte	0x0
- 31100 31a8 00       		.byte	0x0
- 31101 31a9 35       		.uleb128 0x35
- 31102 31aa CE0E0000 		.long	0xece
- 31103 31ae 00000000 		.quad	.LBB708
- 31103      00000000 
- 31104 31b6 00000000 		.quad	.LBE708
- 31104      00000000 
- 31105 31be 02       		.byte	0x2
- 31106 31bf 2106     		.value	0x621
- 31107 31c1 32       		.uleb128 0x32
- 31108 31c2 E00E0000 		.long	0xee0
- 31109 31c6 03       		.byte	0x3
- 31110 31c7 91       		.byte	0x91
- 31111 31c8 F06A     		.sleb128 -2704
- 31112 31ca 33       		.uleb128 0x33
- 31113 31cb 00000000 		.quad	.LBB709
- 31113      00000000 
- 31114 31d3 00000000 		.quad	.LBE709
- 31114      00000000 
- 31115 31db 34       		.uleb128 0x34
- 31116 31dc EC0E0000 		.long	0xeec
- 31117 31e0 03       		.byte	0x3
- 31118 31e1 91       		.byte	0x91
- 31119 31e2 F042     		.sleb128 -7824
- 31120 31e4 00       		.byte	0x0
- 31121 31e5 00       		.byte	0x0
- 31122 31e6 00       		.byte	0x0
- 31123 31e7 00       		.byte	0x0
- 31124 31e8 31       		.uleb128 0x31
- 31125 31e9 D10B0000 		.long	0xbd1
- 31126 31ed 00000000 		.quad	.LBB710
- 31126      00000000 
- 31127 31f5 00000000 		.quad	.LBE710
- 31127      00000000 
- 31128 31fd 02       		.byte	0x2
- 31129 31fe D606     		.value	0x6d6
- 31130 3200 90360000 		.long	0x3690
- 31131 3204 32       		.uleb128 0x32
- 31132 3205 EF0B0000 		.long	0xbef
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 874
-
-
- 31133 3209 03       		.byte	0x3
- 31134 320a 91       		.byte	0x91
- 31135 320b 8C6B     		.sleb128 -2676
- 31136 320d 32       		.uleb128 0x32
- 31137 320e E30B0000 		.long	0xbe3
- 31138 3212 03       		.byte	0x3
- 31139 3213 91       		.byte	0x91
- 31140 3214 906B     		.sleb128 -2672
- 31141 3216 33       		.uleb128 0x33
- 31142 3217 00000000 		.quad	.LBB711
- 31142      00000000 
- 31143 321f 00000000 		.quad	.LBE711
- 31143      00000000 
- 31144 3227 34       		.uleb128 0x34
- 31145 3228 FB0B0000 		.long	0xbfb
- 31146 322c 04       		.byte	0x4
- 31147 322d 76       		.byte	0x76
- 31148 322e C0B37F   		.sleb128 -9792
- 31149 3231 34       		.uleb128 0x34
- 31150 3232 070C0000 		.long	0xc07
- 31151 3236 04       		.byte	0x4
- 31152 3237 76       		.byte	0x76
- 31153 3238 B0B37F   		.sleb128 -9808
- 31154 323b 31       		.uleb128 0x31
- 31155 323c 500C0000 		.long	0xc50
- 31156 3240 00000000 		.quad	.LBB712
- 31156      00000000 
- 31157 3248 00000000 		.quad	.LBE712
- 31157      00000000 
- 31158 3250 02       		.byte	0x2
- 31159 3251 9106     		.value	0x691
- 31160 3253 8E320000 		.long	0x328e
- 31161 3257 32       		.uleb128 0x32
- 31162 3258 7A0C0000 		.long	0xc7a
- 31163 325c 03       		.byte	0x3
- 31164 325d 91       		.byte	0x91
- 31165 325e A86B     		.sleb128 -2648
- 31166 3260 32       		.uleb128 0x32
- 31167 3261 6E0C0000 		.long	0xc6e
- 31168 3265 03       		.byte	0x3
- 31169 3266 91       		.byte	0x91
- 31170 3267 AC6B     		.sleb128 -2644
- 31171 3269 32       		.uleb128 0x32
- 31172 326a 620C0000 		.long	0xc62
- 31173 326e 03       		.byte	0x3
- 31174 326f 91       		.byte	0x91
- 31175 3270 B06B     		.sleb128 -2640
- 31176 3272 33       		.uleb128 0x33
- 31177 3273 00000000 		.quad	.LBB713
- 31177      00000000 
- 31178 327b 00000000 		.quad	.LBE713
- 31178      00000000 
- 31179 3283 34       		.uleb128 0x34
- 31180 3284 860C0000 		.long	0xc86
- 31181 3288 03       		.byte	0x3
- 31182 3289 91       		.byte	0x91
- 31183 328a C043     		.sleb128 -7744
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 875
-
-
- 31184 328c 00       		.byte	0x0
- 31185 328d 00       		.byte	0x0
- 31186 328e 31       		.uleb128 0x31
- 31187 328f 910C0000 		.long	0xc91
- 31188 3293 00000000 		.quad	.LBB714
- 31188      00000000 
- 31189 329b 00000000 		.quad	.LBE714
- 31189      00000000 
- 31190 32a3 02       		.byte	0x2
- 31191 32a4 9206     		.value	0x692
- 31192 32a6 FE340000 		.long	0x34fe
- 31193 32aa 32       		.uleb128 0x32
- 31194 32ab A30C0000 		.long	0xca3
- 31195 32af 03       		.byte	0x3
- 31196 32b0 91       		.byte	0x91
- 31197 32b1 C06B     		.sleb128 -2624
- 31198 32b3 35       		.uleb128 0x35
- 31199 32b4 B00C0000 		.long	0xcb0
- 31200 32b8 00000000 		.quad	.LBB716
- 31200      00000000 
- 31201 32c0 00000000 		.quad	.LBE716
- 31201      00000000 
- 31202 32c8 02       		.byte	0x2
- 31203 32c9 7D03     		.value	0x37d
- 31204 32cb 32       		.uleb128 0x32
- 31205 32cc CE0C0000 		.long	0xcce
- 31206 32d0 03       		.byte	0x3
- 31207 32d1 91       		.byte	0x91
- 31208 32d2 D86B     		.sleb128 -2600
- 31209 32d4 32       		.uleb128 0x32
- 31210 32d5 C20C0000 		.long	0xcc2
- 31211 32d9 03       		.byte	0x3
- 31212 32da 91       		.byte	0x91
- 31213 32db E06B     		.sleb128 -2592
- 31214 32dd 33       		.uleb128 0x33
- 31215 32de 00000000 		.quad	.LBB717
- 31215      00000000 
- 31216 32e6 00000000 		.quad	.LBE717
- 31216      00000000 
- 31217 32ee 34       		.uleb128 0x34
- 31218 32ef DA0C0000 		.long	0xcda
- 31219 32f3 03       		.byte	0x3
- 31220 32f4 91       		.byte	0x91
- 31221 32f5 B06C     		.sleb128 -2512
- 31222 32f7 34       		.uleb128 0x34
- 31223 32f8 E50C0000 		.long	0xce5
- 31224 32fc 03       		.byte	0x3
- 31225 32fd 91       		.byte	0x91
- 31226 32fe A06C     		.sleb128 -2528
- 31227 3300 34       		.uleb128 0x34
- 31228 3301 F00C0000 		.long	0xcf0
- 31229 3305 03       		.byte	0x3
- 31230 3306 91       		.byte	0x91
- 31231 3307 906C     		.sleb128 -2544
- 31232 3309 34       		.uleb128 0x34
- 31233 330a FC0C0000 		.long	0xcfc
- 31234 330e 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 876
-
-
- 31235 330f 91       		.byte	0x91
- 31236 3310 806C     		.sleb128 -2560
- 31237 3312 34       		.uleb128 0x34
- 31238 3313 080D0000 		.long	0xd08
- 31239 3317 03       		.byte	0x3
- 31240 3318 91       		.byte	0x91
- 31241 3319 FC6B     		.sleb128 -2564
- 31242 331b 31       		.uleb128 0x31
- 31243 331c 1F0D0000 		.long	0xd1f
- 31244 3320 00000000 		.quad	.LBB718
- 31244      00000000 
- 31245 3328 00000000 		.quad	.LBE718
- 31245      00000000 
- 31246 3330 02       		.byte	0x2
- 31247 3331 5603     		.value	0x356
- 31248 3333 4A330000 		.long	0x334a
- 31249 3337 32       		.uleb128 0x32
- 31250 3338 3A0D0000 		.long	0xd3a
- 31251 333c 03       		.byte	0x3
- 31252 333d 91       		.byte	0x91
- 31253 333e C06C     		.sleb128 -2496
- 31254 3340 32       		.uleb128 0x32
- 31255 3341 300D0000 		.long	0xd30
- 31256 3345 03       		.byte	0x3
- 31257 3346 91       		.byte	0x91
- 31258 3347 D06C     		.sleb128 -2480
- 31259 3349 00       		.byte	0x0
- 31260 334a 31       		.uleb128 0x31
- 31261 334b 450D0000 		.long	0xd45
- 31262 334f 00000000 		.quad	.LBB720
- 31262      00000000 
- 31263 3357 00000000 		.quad	.LBE720
- 31263      00000000 
- 31264 335f 02       		.byte	0x2
- 31265 3360 5E03     		.value	0x35e
- 31266 3362 79330000 		.long	0x3379
- 31267 3366 32       		.uleb128 0x32
- 31268 3367 620D0000 		.long	0xd62
- 31269 336b 03       		.byte	0x3
- 31270 336c 91       		.byte	0x91
- 31271 336d E06C     		.sleb128 -2464
- 31272 336f 32       		.uleb128 0x32
- 31273 3370 570D0000 		.long	0xd57
- 31274 3374 03       		.byte	0x3
- 31275 3375 91       		.byte	0x91
- 31276 3376 F06C     		.sleb128 -2448
- 31277 3378 00       		.byte	0x0
- 31278 3379 31       		.uleb128 0x31
- 31279 337a 6E0D0000 		.long	0xd6e
- 31280 337e 00000000 		.quad	.LBB722
- 31280      00000000 
- 31281 3386 00000000 		.quad	.LBE722
- 31281      00000000 
- 31282 338e 02       		.byte	0x2
- 31283 338f 6403     		.value	0x364
- 31284 3391 DE330000 		.long	0x33de
- 31285 3395 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 877
-
-
- 31286 3396 8C0D0000 		.long	0xd8c
- 31287 339a 03       		.byte	0x3
- 31288 339b 91       		.byte	0x91
- 31289 339c 806D     		.sleb128 -2432
- 31290 339e 32       		.uleb128 0x32
- 31291 339f 800D0000 		.long	0xd80
- 31292 33a3 03       		.byte	0x3
- 31293 33a4 91       		.byte	0x91
- 31294 33a5 906D     		.sleb128 -2416
- 31295 33a7 33       		.uleb128 0x33
- 31296 33a8 00000000 		.quad	.LBB723
- 31296      00000000 
- 31297 33b0 00000000 		.quad	.LBE723
- 31297      00000000 
- 31298 33b8 34       		.uleb128 0x34
- 31299 33b9 980D0000 		.long	0xd98
- 31300 33bd 03       		.byte	0x3
- 31301 33be 91       		.byte	0x91
- 31302 33bf F043     		.sleb128 -7696
- 31303 33c1 34       		.uleb128 0x34
- 31304 33c2 A40D0000 		.long	0xda4
- 31305 33c6 03       		.byte	0x3
- 31306 33c7 91       		.byte	0x91
- 31307 33c8 E043     		.sleb128 -7712
- 31308 33ca 34       		.uleb128 0x34
- 31309 33cb AF0D0000 		.long	0xdaf
- 31310 33cf 03       		.byte	0x3
- 31311 33d0 91       		.byte	0x91
- 31312 33d1 D043     		.sleb128 -7728
- 31313 33d3 34       		.uleb128 0x34
- 31314 33d4 BB0D0000 		.long	0xdbb
- 31315 33d8 03       		.byte	0x3
- 31316 33d9 91       		.byte	0x91
- 31317 33da AC6D     		.sleb128 -2388
- 31318 33dc 00       		.byte	0x0
- 31319 33dd 00       		.byte	0x0
- 31320 33de 31       		.uleb128 0x31
- 31321 33df C70D0000 		.long	0xdc7
- 31322 33e3 00000000 		.quad	.LBB724
- 31322      00000000 
- 31323 33eb 00000000 		.quad	.LBE724
- 31323      00000000 
- 31324 33f3 02       		.byte	0x2
- 31325 33f4 6603     		.value	0x366
- 31326 33f6 0D340000 		.long	0x340d
- 31327 33fa 32       		.uleb128 0x32
- 31328 33fb E20D0000 		.long	0xde2
- 31329 33ff 03       		.byte	0x3
- 31330 3400 91       		.byte	0x91
- 31331 3401 B06D     		.sleb128 -2384
- 31332 3403 32       		.uleb128 0x32
- 31333 3404 D80D0000 		.long	0xdd8
- 31334 3408 03       		.byte	0x3
- 31335 3409 91       		.byte	0x91
- 31336 340a C06D     		.sleb128 -2368
- 31337 340c 00       		.byte	0x0
- 31338 340d 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 878
-
-
- 31339 340e 6E0D0000 		.long	0xd6e
- 31340 3412 00000000 		.quad	.LBB726
- 31340      00000000 
- 31341 341a 00000000 		.quad	.LBE726
- 31341      00000000 
- 31342 3422 02       		.byte	0x2
- 31343 3423 6803     		.value	0x368
- 31344 3425 72340000 		.long	0x3472
- 31345 3429 32       		.uleb128 0x32
- 31346 342a 8C0D0000 		.long	0xd8c
- 31347 342e 03       		.byte	0x3
- 31348 342f 91       		.byte	0x91
- 31349 3430 D06D     		.sleb128 -2352
- 31350 3432 32       		.uleb128 0x32
- 31351 3433 800D0000 		.long	0xd80
- 31352 3437 03       		.byte	0x3
- 31353 3438 91       		.byte	0x91
- 31354 3439 E06D     		.sleb128 -2336
- 31355 343b 33       		.uleb128 0x33
- 31356 343c 00000000 		.quad	.LBB727
- 31356      00000000 
- 31357 3444 00000000 		.quad	.LBE727
- 31357      00000000 
- 31358 344c 34       		.uleb128 0x34
- 31359 344d 980D0000 		.long	0xd98
- 31360 3451 03       		.byte	0x3
- 31361 3452 91       		.byte	0x91
- 31362 3453 A044     		.sleb128 -7648
- 31363 3455 34       		.uleb128 0x34
- 31364 3456 A40D0000 		.long	0xda4
- 31365 345a 03       		.byte	0x3
- 31366 345b 91       		.byte	0x91
- 31367 345c 9044     		.sleb128 -7664
- 31368 345e 34       		.uleb128 0x34
- 31369 345f AF0D0000 		.long	0xdaf
- 31370 3463 03       		.byte	0x3
- 31371 3464 91       		.byte	0x91
- 31372 3465 8044     		.sleb128 -7680
- 31373 3467 34       		.uleb128 0x34
- 31374 3468 BB0D0000 		.long	0xdbb
- 31375 346c 03       		.byte	0x3
- 31376 346d 91       		.byte	0x91
- 31377 346e FC6D     		.sleb128 -2308
- 31378 3470 00       		.byte	0x0
- 31379 3471 00       		.byte	0x0
- 31380 3472 31       		.uleb128 0x31
- 31381 3473 C70D0000 		.long	0xdc7
- 31382 3477 00000000 		.quad	.LBB728
- 31382      00000000 
- 31383 347f 00000000 		.quad	.LBE728
- 31383      00000000 
- 31384 3487 02       		.byte	0x2
- 31385 3488 6A03     		.value	0x36a
- 31386 348a A1340000 		.long	0x34a1
- 31387 348e 32       		.uleb128 0x32
- 31388 348f E20D0000 		.long	0xde2
- 31389 3493 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 879
-
-
- 31390 3494 91       		.byte	0x91
- 31391 3495 806E     		.sleb128 -2304
- 31392 3497 32       		.uleb128 0x32
- 31393 3498 D80D0000 		.long	0xdd8
- 31394 349c 03       		.byte	0x3
- 31395 349d 91       		.byte	0x91
- 31396 349e 906E     		.sleb128 -2288
- 31397 34a0 00       		.byte	0x0
- 31398 34a1 31       		.uleb128 0x31
- 31399 34a2 ED0D0000 		.long	0xded
- 31400 34a6 00000000 		.quad	.LBB730
- 31400      00000000 
- 31401 34ae 00000000 		.quad	.LBE730
- 31401      00000000 
- 31402 34b6 02       		.byte	0x2
- 31403 34b7 6C03     		.value	0x36c
- 31404 34b9 D0340000 		.long	0x34d0
- 31405 34bd 32       		.uleb128 0x32
- 31406 34be 0A0E0000 		.long	0xe0a
- 31407 34c2 03       		.byte	0x3
- 31408 34c3 91       		.byte	0x91
- 31409 34c4 A06E     		.sleb128 -2272
- 31410 34c6 32       		.uleb128 0x32
- 31411 34c7 FF0D0000 		.long	0xdff
- 31412 34cb 03       		.byte	0x3
- 31413 34cc 91       		.byte	0x91
- 31414 34cd B06E     		.sleb128 -2256
- 31415 34cf 00       		.byte	0x0
- 31416 34d0 35       		.uleb128 0x35
- 31417 34d1 1F0D0000 		.long	0xd1f
- 31418 34d5 00000000 		.quad	.LBB732
- 31418      00000000 
- 31419 34dd 00000000 		.quad	.LBE732
- 31419      00000000 
- 31420 34e5 02       		.byte	0x2
- 31421 34e6 6E03     		.value	0x36e
- 31422 34e8 32       		.uleb128 0x32
- 31423 34e9 3A0D0000 		.long	0xd3a
- 31424 34ed 03       		.byte	0x3
- 31425 34ee 91       		.byte	0x91
- 31426 34ef C06E     		.sleb128 -2240
- 31427 34f1 32       		.uleb128 0x32
- 31428 34f2 300D0000 		.long	0xd30
- 31429 34f6 03       		.byte	0x3
- 31430 34f7 91       		.byte	0x91
- 31431 34f8 D06E     		.sleb128 -2224
- 31432 34fa 00       		.byte	0x0
- 31433 34fb 00       		.byte	0x0
- 31434 34fc 00       		.byte	0x0
- 31435 34fd 00       		.byte	0x0
- 31436 34fe 36       		.uleb128 0x36
- 31437 34ff 00000000 		.quad	.LBB734
- 31437      00000000 
- 31438 3507 00000000 		.quad	.LBE734
- 31438      00000000 
- 31439 350f 1D350000 		.long	0x351d
- 31440 3513 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 880
-
-
- 31441 3514 180C0000 		.long	0xc18
- 31442 3518 03       		.byte	0x3
- 31443 3519 91       		.byte	0x91
- 31444 351a B043     		.sleb128 -7760
- 31445 351c 00       		.byte	0x0
- 31446 351d 31       		.uleb128 0x31
- 31447 351e 160E0000 		.long	0xe16
- 31448 3522 00000000 		.quad	.LBB735
- 31448      00000000 
- 31449 352a 00000000 		.quad	.LBE735
- 31449      00000000 
- 31450 3532 02       		.byte	0x2
- 31451 3533 9406     		.value	0x694
- 31452 3535 C5350000 		.long	0x35c5
- 31453 3539 32       		.uleb128 0x32
- 31454 353a 280E0000 		.long	0xe28
- 31455 353e 03       		.byte	0x3
- 31456 353f 91       		.byte	0x91
- 31457 3540 E06E     		.sleb128 -2208
- 31458 3542 33       		.uleb128 0x33
- 31459 3543 00000000 		.quad	.LBB736
- 31459      00000000 
- 31460 354b 00000000 		.quad	.LBE736
- 31460      00000000 
- 31461 3553 34       		.uleb128 0x34
- 31462 3554 340E0000 		.long	0xe34
- 31463 3558 09       		.byte	0x9
- 31464 3559 03       		.byte	0x3
- 31465 355a 00000000 		.quad	ShiftRowTable.6768
- 31465      00000000 
- 31466 3562 35       		.uleb128 0x35
- 31467 3563 6E0D0000 		.long	0xd6e
- 31468 3567 00000000 		.quad	.LBB737
- 31468      00000000 
- 31469 356f 00000000 		.quad	.LBE737
- 31469      00000000 
- 31470 3577 02       		.byte	0x2
- 31471 3578 9B02     		.value	0x29b
- 31472 357a 32       		.uleb128 0x32
- 31473 357b 8C0D0000 		.long	0xd8c
- 31474 357f 03       		.byte	0x3
- 31475 3580 91       		.byte	0x91
- 31476 3581 F06E     		.sleb128 -2192
- 31477 3583 32       		.uleb128 0x32
- 31478 3584 800D0000 		.long	0xd80
- 31479 3588 03       		.byte	0x3
- 31480 3589 91       		.byte	0x91
- 31481 358a 806F     		.sleb128 -2176
- 31482 358c 33       		.uleb128 0x33
- 31483 358d 00000000 		.quad	.LBB738
- 31483      00000000 
- 31484 3595 00000000 		.quad	.LBE738
- 31484      00000000 
- 31485 359d 34       		.uleb128 0x34
- 31486 359e 980D0000 		.long	0xd98
- 31487 35a2 03       		.byte	0x3
- 31488 35a3 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 881
-
-
- 31489 35a4 D044     		.sleb128 -7600
- 31490 35a6 34       		.uleb128 0x34
- 31491 35a7 A40D0000 		.long	0xda4
- 31492 35ab 03       		.byte	0x3
- 31493 35ac 91       		.byte	0x91
- 31494 35ad C044     		.sleb128 -7616
- 31495 35af 34       		.uleb128 0x34
- 31496 35b0 AF0D0000 		.long	0xdaf
- 31497 35b4 03       		.byte	0x3
- 31498 35b5 91       		.byte	0x91
- 31499 35b6 B044     		.sleb128 -7632
- 31500 35b8 34       		.uleb128 0x34
- 31501 35b9 BB0D0000 		.long	0xdbb
- 31502 35bd 03       		.byte	0x3
- 31503 35be 91       		.byte	0x91
- 31504 35bf 9C6F     		.sleb128 -2148
- 31505 35c1 00       		.byte	0x0
- 31506 35c2 00       		.byte	0x0
- 31507 35c3 00       		.byte	0x0
- 31508 35c4 00       		.byte	0x0
- 31509 35c5 36       		.uleb128 0x36
- 31510 35c6 00000000 		.quad	.LBB739
- 31510      00000000 
- 31511 35ce 00000000 		.quad	.LBE739
- 31511      00000000 
- 31512 35d6 E4350000 		.long	0x35e4
- 31513 35da 34       		.uleb128 0x34
- 31514 35db 280C0000 		.long	0xc28
- 31515 35df 03       		.byte	0x3
- 31516 35e0 91       		.byte	0x91
- 31517 35e1 A043     		.sleb128 -7776
- 31518 35e3 00       		.byte	0x0
- 31519 35e4 31       		.uleb128 0x31
- 31520 35e5 520E0000 		.long	0xe52
- 31521 35e9 00000000 		.quad	.LBB740
- 31521      00000000 
- 31522 35f1 00000000 		.quad	.LBE740
- 31522      00000000 
- 31523 35f9 02       		.byte	0x2
- 31524 35fa 9606     		.value	0x696
- 31525 35fc 13360000 		.long	0x3613
- 31526 3600 32       		.uleb128 0x32
- 31527 3601 6D0E0000 		.long	0xe6d
- 31528 3605 03       		.byte	0x3
- 31529 3606 91       		.byte	0x91
- 31530 3607 A06F     		.sleb128 -2144
- 31531 3609 32       		.uleb128 0x32
- 31532 360a 630E0000 		.long	0xe63
- 31533 360e 03       		.byte	0x3
- 31534 360f 91       		.byte	0x91
- 31535 3610 B06F     		.sleb128 -2128
- 31536 3612 00       		.byte	0x0
- 31537 3613 36       		.uleb128 0x36
- 31538 3614 00000000 		.quad	.LBB742
- 31538      00000000 
- 31539 361c 00000000 		.quad	.LBE742
- 31539      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 882
-
-
- 31540 3624 32360000 		.long	0x3632
- 31541 3628 34       		.uleb128 0x34
- 31542 3629 380C0000 		.long	0xc38
- 31543 362d 03       		.byte	0x3
- 31544 362e 91       		.byte	0x91
- 31545 362f 9043     		.sleb128 -7792
- 31546 3631 00       		.byte	0x0
- 31547 3632 31       		.uleb128 0x31
- 31548 3633 780E0000 		.long	0xe78
- 31549 3637 00000000 		.quad	.LBB743
- 31549      00000000 
- 31550 363f 00000000 		.quad	.LBE743
- 31550      00000000 
- 31551 3647 02       		.byte	0x2
- 31552 3648 9806     		.value	0x698
- 31553 364a 73360000 		.long	0x3673
- 31554 364e 32       		.uleb128 0x32
- 31555 364f 8A0E0000 		.long	0xe8a
- 31556 3653 03       		.byte	0x3
- 31557 3654 91       		.byte	0x91
- 31558 3655 C06F     		.sleb128 -2112
- 31559 3657 33       		.uleb128 0x33
- 31560 3658 00000000 		.quad	.LBB744
- 31560      00000000 
- 31561 3660 00000000 		.quad	.LBE744
- 31561      00000000 
- 31562 3668 34       		.uleb128 0x34
- 31563 3669 960E0000 		.long	0xe96
- 31564 366d 03       		.byte	0x3
- 31565 366e 91       		.byte	0x91
- 31566 366f E044     		.sleb128 -7584
- 31567 3671 00       		.byte	0x0
- 31568 3672 00       		.byte	0x0
- 31569 3673 33       		.uleb128 0x33
- 31570 3674 00000000 		.quad	.LBB745
- 31570      00000000 
- 31571 367c 00000000 		.quad	.LBE745
- 31571      00000000 
- 31572 3684 34       		.uleb128 0x34
- 31573 3685 440C0000 		.long	0xc44
- 31574 3689 03       		.byte	0x3
- 31575 368a 91       		.byte	0x91
- 31576 368b 8043     		.sleb128 -7808
- 31577 368d 00       		.byte	0x0
- 31578 368e 00       		.byte	0x0
- 31579 368f 00       		.byte	0x0
- 31580 3690 31       		.uleb128 0x31
- 31581 3691 A30E0000 		.long	0xea3
- 31582 3695 00000000 		.quad	.LBB746
- 31582      00000000 
- 31583 369d 00000000 		.quad	.LBE746
- 31583      00000000 
- 31584 36a5 02       		.byte	0x2
- 31585 36a6 D606     		.value	0x6d6
- 31586 36a8 91370000 		.long	0x3791
- 31587 36ac 32       		.uleb128 0x32
- 31588 36ad B50E0000 		.long	0xeb5
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 883
-
-
- 31589 36b1 03       		.byte	0x3
- 31590 36b2 91       		.byte	0x91
- 31591 36b3 D06F     		.sleb128 -2096
- 31592 36b5 33       		.uleb128 0x33
- 31593 36b6 00000000 		.quad	.LBB747
- 31593      00000000 
- 31594 36be 00000000 		.quad	.LBE747
- 31594      00000000 
- 31595 36c6 34       		.uleb128 0x34
- 31596 36c7 C10E0000 		.long	0xec1
- 31597 36cb 04       		.byte	0x4
- 31598 36cc 76       		.byte	0x76
- 31599 36cd E0B37F   		.sleb128 -9760
- 31600 36d0 31       		.uleb128 0x31
- 31601 36d1 CE0E0000 		.long	0xece
- 31602 36d5 00000000 		.quad	.LBB748
- 31602      00000000 
- 31603 36dd 00000000 		.quad	.LBE748
- 31603      00000000 
- 31604 36e5 02       		.byte	0x2
- 31605 36e6 1F06     		.value	0x61f
- 31606 36e8 11370000 		.long	0x3711
- 31607 36ec 32       		.uleb128 0x32
- 31608 36ed E00E0000 		.long	0xee0
- 31609 36f1 03       		.byte	0x3
- 31610 36f2 91       		.byte	0x91
- 31611 36f3 E06F     		.sleb128 -2080
- 31612 36f5 33       		.uleb128 0x33
- 31613 36f6 00000000 		.quad	.LBB749
- 31613      00000000 
- 31614 36fe 00000000 		.quad	.LBE749
- 31614      00000000 
- 31615 3706 34       		.uleb128 0x34
- 31616 3707 EC0E0000 		.long	0xeec
- 31617 370b 03       		.byte	0x3
- 31618 370c 91       		.byte	0x91
- 31619 370d F044     		.sleb128 -7568
- 31620 370f 00       		.byte	0x0
- 31621 3710 00       		.byte	0x0
- 31622 3711 31       		.uleb128 0x31
- 31623 3712 CE0E0000 		.long	0xece
- 31624 3716 00000000 		.quad	.LBB750
- 31624      00000000 
- 31625 371e 00000000 		.quad	.LBE750
- 31625      00000000 
- 31626 3726 02       		.byte	0x2
- 31627 3727 2006     		.value	0x620
- 31628 3729 52370000 		.long	0x3752
- 31629 372d 32       		.uleb128 0x32
- 31630 372e E00E0000 		.long	0xee0
- 31631 3732 03       		.byte	0x3
- 31632 3733 91       		.byte	0x91
- 31633 3734 F06F     		.sleb128 -2064
- 31634 3736 33       		.uleb128 0x33
- 31635 3737 00000000 		.quad	.LBB751
- 31635      00000000 
- 31636 373f 00000000 		.quad	.LBE751
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 884
-
-
- 31636      00000000 
- 31637 3747 34       		.uleb128 0x34
- 31638 3748 EC0E0000 		.long	0xeec
- 31639 374c 03       		.byte	0x3
- 31640 374d 91       		.byte	0x91
- 31641 374e 8045     		.sleb128 -7552
- 31642 3750 00       		.byte	0x0
- 31643 3751 00       		.byte	0x0
- 31644 3752 35       		.uleb128 0x35
- 31645 3753 CE0E0000 		.long	0xece
- 31646 3757 00000000 		.quad	.LBB752
- 31646      00000000 
- 31647 375f 00000000 		.quad	.LBE752
- 31647      00000000 
- 31648 3767 02       		.byte	0x2
- 31649 3768 2106     		.value	0x621
- 31650 376a 32       		.uleb128 0x32
- 31651 376b E00E0000 		.long	0xee0
- 31652 376f 03       		.byte	0x3
- 31653 3770 91       		.byte	0x91
- 31654 3771 8070     		.sleb128 -2048
- 31655 3773 33       		.uleb128 0x33
- 31656 3774 00000000 		.quad	.LBB753
- 31656      00000000 
- 31657 377c 00000000 		.quad	.LBE753
- 31657      00000000 
- 31658 3784 34       		.uleb128 0x34
- 31659 3785 EC0E0000 		.long	0xeec
- 31660 3789 03       		.byte	0x3
- 31661 378a 91       		.byte	0x91
- 31662 378b 9045     		.sleb128 -7536
- 31663 378d 00       		.byte	0x0
- 31664 378e 00       		.byte	0x0
- 31665 378f 00       		.byte	0x0
- 31666 3790 00       		.byte	0x0
- 31667 3791 31       		.uleb128 0x31
- 31668 3792 D10B0000 		.long	0xbd1
- 31669 3796 00000000 		.quad	.LBB754
- 31669      00000000 
- 31670 379e 00000000 		.quad	.LBE754
- 31670      00000000 
- 31671 37a6 02       		.byte	0x2
- 31672 37a7 D706     		.value	0x6d7
- 31673 37a9 393C0000 		.long	0x3c39
- 31674 37ad 32       		.uleb128 0x32
- 31675 37ae EF0B0000 		.long	0xbef
- 31676 37b2 03       		.byte	0x3
- 31677 37b3 91       		.byte	0x91
- 31678 37b4 9C70     		.sleb128 -2020
- 31679 37b6 32       		.uleb128 0x32
- 31680 37b7 E30B0000 		.long	0xbe3
- 31681 37bb 03       		.byte	0x3
- 31682 37bc 91       		.byte	0x91
- 31683 37bd A070     		.sleb128 -2016
- 31684 37bf 33       		.uleb128 0x33
- 31685 37c0 00000000 		.quad	.LBB755
- 31685      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 885
-
-
- 31686 37c8 00000000 		.quad	.LBE755
- 31686      00000000 
- 31687 37d0 34       		.uleb128 0x34
- 31688 37d1 FB0B0000 		.long	0xbfb
- 31689 37d5 04       		.byte	0x4
- 31690 37d6 76       		.byte	0x76
- 31691 37d7 80B47F   		.sleb128 -9728
- 31692 37da 34       		.uleb128 0x34
- 31693 37db 070C0000 		.long	0xc07
- 31694 37df 04       		.byte	0x4
- 31695 37e0 76       		.byte	0x76
- 31696 37e1 F0B37F   		.sleb128 -9744
- 31697 37e4 31       		.uleb128 0x31
- 31698 37e5 500C0000 		.long	0xc50
- 31699 37e9 00000000 		.quad	.LBB756
- 31699      00000000 
- 31700 37f1 00000000 		.quad	.LBE756
- 31700      00000000 
- 31701 37f9 02       		.byte	0x2
- 31702 37fa 9106     		.value	0x691
- 31703 37fc 37380000 		.long	0x3837
- 31704 3800 32       		.uleb128 0x32
- 31705 3801 7A0C0000 		.long	0xc7a
- 31706 3805 03       		.byte	0x3
- 31707 3806 91       		.byte	0x91
- 31708 3807 B870     		.sleb128 -1992
- 31709 3809 32       		.uleb128 0x32
- 31710 380a 6E0C0000 		.long	0xc6e
- 31711 380e 03       		.byte	0x3
- 31712 380f 91       		.byte	0x91
- 31713 3810 BC70     		.sleb128 -1988
- 31714 3812 32       		.uleb128 0x32
- 31715 3813 620C0000 		.long	0xc62
- 31716 3817 03       		.byte	0x3
- 31717 3818 91       		.byte	0x91
- 31718 3819 C070     		.sleb128 -1984
- 31719 381b 33       		.uleb128 0x33
- 31720 381c 00000000 		.quad	.LBB757
- 31720      00000000 
- 31721 3824 00000000 		.quad	.LBE757
- 31721      00000000 
- 31722 382c 34       		.uleb128 0x34
- 31723 382d 860C0000 		.long	0xc86
- 31724 3831 03       		.byte	0x3
- 31725 3832 91       		.byte	0x91
- 31726 3833 E045     		.sleb128 -7456
- 31727 3835 00       		.byte	0x0
- 31728 3836 00       		.byte	0x0
- 31729 3837 31       		.uleb128 0x31
- 31730 3838 910C0000 		.long	0xc91
- 31731 383c 00000000 		.quad	.LBB758
- 31731      00000000 
- 31732 3844 00000000 		.quad	.LBE758
- 31732      00000000 
- 31733 384c 02       		.byte	0x2
- 31734 384d 9206     		.value	0x692
- 31735 384f A73A0000 		.long	0x3aa7
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 886
-
-
- 31736 3853 32       		.uleb128 0x32
- 31737 3854 A30C0000 		.long	0xca3
- 31738 3858 03       		.byte	0x3
- 31739 3859 91       		.byte	0x91
- 31740 385a D070     		.sleb128 -1968
- 31741 385c 35       		.uleb128 0x35
- 31742 385d B00C0000 		.long	0xcb0
- 31743 3861 00000000 		.quad	.LBB760
- 31743      00000000 
- 31744 3869 00000000 		.quad	.LBE760
- 31744      00000000 
- 31745 3871 02       		.byte	0x2
- 31746 3872 7D03     		.value	0x37d
- 31747 3874 32       		.uleb128 0x32
- 31748 3875 CE0C0000 		.long	0xcce
- 31749 3879 03       		.byte	0x3
- 31750 387a 91       		.byte	0x91
- 31751 387b E870     		.sleb128 -1944
- 31752 387d 32       		.uleb128 0x32
- 31753 387e C20C0000 		.long	0xcc2
- 31754 3882 03       		.byte	0x3
- 31755 3883 91       		.byte	0x91
- 31756 3884 F070     		.sleb128 -1936
- 31757 3886 33       		.uleb128 0x33
- 31758 3887 00000000 		.quad	.LBB761
- 31758      00000000 
- 31759 388f 00000000 		.quad	.LBE761
- 31759      00000000 
- 31760 3897 34       		.uleb128 0x34
- 31761 3898 DA0C0000 		.long	0xcda
- 31762 389c 03       		.byte	0x3
- 31763 389d 91       		.byte	0x91
- 31764 389e C071     		.sleb128 -1856
- 31765 38a0 34       		.uleb128 0x34
- 31766 38a1 E50C0000 		.long	0xce5
- 31767 38a5 03       		.byte	0x3
- 31768 38a6 91       		.byte	0x91
- 31769 38a7 B071     		.sleb128 -1872
- 31770 38a9 34       		.uleb128 0x34
- 31771 38aa F00C0000 		.long	0xcf0
- 31772 38ae 03       		.byte	0x3
- 31773 38af 91       		.byte	0x91
- 31774 38b0 A071     		.sleb128 -1888
- 31775 38b2 34       		.uleb128 0x34
- 31776 38b3 FC0C0000 		.long	0xcfc
- 31777 38b7 03       		.byte	0x3
- 31778 38b8 91       		.byte	0x91
- 31779 38b9 9071     		.sleb128 -1904
- 31780 38bb 34       		.uleb128 0x34
- 31781 38bc 080D0000 		.long	0xd08
- 31782 38c0 03       		.byte	0x3
- 31783 38c1 91       		.byte	0x91
- 31784 38c2 8C71     		.sleb128 -1908
- 31785 38c4 31       		.uleb128 0x31
- 31786 38c5 1F0D0000 		.long	0xd1f
- 31787 38c9 00000000 		.quad	.LBB762
- 31787      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 887
-
-
- 31788 38d1 00000000 		.quad	.LBE762
- 31788      00000000 
- 31789 38d9 02       		.byte	0x2
- 31790 38da 5603     		.value	0x356
- 31791 38dc F3380000 		.long	0x38f3
- 31792 38e0 32       		.uleb128 0x32
- 31793 38e1 3A0D0000 		.long	0xd3a
- 31794 38e5 03       		.byte	0x3
- 31795 38e6 91       		.byte	0x91
- 31796 38e7 D071     		.sleb128 -1840
- 31797 38e9 32       		.uleb128 0x32
- 31798 38ea 300D0000 		.long	0xd30
- 31799 38ee 03       		.byte	0x3
- 31800 38ef 91       		.byte	0x91
- 31801 38f0 E071     		.sleb128 -1824
- 31802 38f2 00       		.byte	0x0
- 31803 38f3 31       		.uleb128 0x31
- 31804 38f4 450D0000 		.long	0xd45
- 31805 38f8 00000000 		.quad	.LBB764
- 31805      00000000 
- 31806 3900 00000000 		.quad	.LBE764
- 31806      00000000 
- 31807 3908 02       		.byte	0x2
- 31808 3909 5E03     		.value	0x35e
- 31809 390b 22390000 		.long	0x3922
- 31810 390f 32       		.uleb128 0x32
- 31811 3910 620D0000 		.long	0xd62
- 31812 3914 03       		.byte	0x3
- 31813 3915 91       		.byte	0x91
- 31814 3916 F071     		.sleb128 -1808
- 31815 3918 32       		.uleb128 0x32
- 31816 3919 570D0000 		.long	0xd57
- 31817 391d 03       		.byte	0x3
- 31818 391e 91       		.byte	0x91
- 31819 391f 8072     		.sleb128 -1792
- 31820 3921 00       		.byte	0x0
- 31821 3922 31       		.uleb128 0x31
- 31822 3923 6E0D0000 		.long	0xd6e
- 31823 3927 00000000 		.quad	.LBB766
- 31823      00000000 
- 31824 392f 00000000 		.quad	.LBE766
- 31824      00000000 
- 31825 3937 02       		.byte	0x2
- 31826 3938 6403     		.value	0x364
- 31827 393a 87390000 		.long	0x3987
- 31828 393e 32       		.uleb128 0x32
- 31829 393f 8C0D0000 		.long	0xd8c
- 31830 3943 03       		.byte	0x3
- 31831 3944 91       		.byte	0x91
- 31832 3945 9072     		.sleb128 -1776
- 31833 3947 32       		.uleb128 0x32
- 31834 3948 800D0000 		.long	0xd80
- 31835 394c 03       		.byte	0x3
- 31836 394d 91       		.byte	0x91
- 31837 394e A072     		.sleb128 -1760
- 31838 3950 33       		.uleb128 0x33
- 31839 3951 00000000 		.quad	.LBB767
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 888
-
-
- 31839      00000000 
- 31840 3959 00000000 		.quad	.LBE767
- 31840      00000000 
- 31841 3961 34       		.uleb128 0x34
- 31842 3962 980D0000 		.long	0xd98
- 31843 3966 03       		.byte	0x3
- 31844 3967 91       		.byte	0x91
- 31845 3968 9046     		.sleb128 -7408
- 31846 396a 34       		.uleb128 0x34
- 31847 396b A40D0000 		.long	0xda4
- 31848 396f 03       		.byte	0x3
- 31849 3970 91       		.byte	0x91
- 31850 3971 8046     		.sleb128 -7424
- 31851 3973 34       		.uleb128 0x34
- 31852 3974 AF0D0000 		.long	0xdaf
- 31853 3978 03       		.byte	0x3
- 31854 3979 91       		.byte	0x91
- 31855 397a F045     		.sleb128 -7440
- 31856 397c 34       		.uleb128 0x34
- 31857 397d BB0D0000 		.long	0xdbb
- 31858 3981 03       		.byte	0x3
- 31859 3982 91       		.byte	0x91
- 31860 3983 BC72     		.sleb128 -1732
- 31861 3985 00       		.byte	0x0
- 31862 3986 00       		.byte	0x0
- 31863 3987 31       		.uleb128 0x31
- 31864 3988 C70D0000 		.long	0xdc7
- 31865 398c 00000000 		.quad	.LBB768
- 31865      00000000 
- 31866 3994 00000000 		.quad	.LBE768
- 31866      00000000 
- 31867 399c 02       		.byte	0x2
- 31868 399d 6603     		.value	0x366
- 31869 399f B6390000 		.long	0x39b6
- 31870 39a3 32       		.uleb128 0x32
- 31871 39a4 E20D0000 		.long	0xde2
- 31872 39a8 03       		.byte	0x3
- 31873 39a9 91       		.byte	0x91
- 31874 39aa C072     		.sleb128 -1728
- 31875 39ac 32       		.uleb128 0x32
- 31876 39ad D80D0000 		.long	0xdd8
- 31877 39b1 03       		.byte	0x3
- 31878 39b2 91       		.byte	0x91
- 31879 39b3 D072     		.sleb128 -1712
- 31880 39b5 00       		.byte	0x0
- 31881 39b6 31       		.uleb128 0x31
- 31882 39b7 6E0D0000 		.long	0xd6e
- 31883 39bb 00000000 		.quad	.LBB770
- 31883      00000000 
- 31884 39c3 00000000 		.quad	.LBE770
- 31884      00000000 
- 31885 39cb 02       		.byte	0x2
- 31886 39cc 6803     		.value	0x368
- 31887 39ce 1B3A0000 		.long	0x3a1b
- 31888 39d2 32       		.uleb128 0x32
- 31889 39d3 8C0D0000 		.long	0xd8c
- 31890 39d7 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 889
-
-
- 31891 39d8 91       		.byte	0x91
- 31892 39d9 E072     		.sleb128 -1696
- 31893 39db 32       		.uleb128 0x32
- 31894 39dc 800D0000 		.long	0xd80
- 31895 39e0 03       		.byte	0x3
- 31896 39e1 91       		.byte	0x91
- 31897 39e2 F072     		.sleb128 -1680
- 31898 39e4 33       		.uleb128 0x33
- 31899 39e5 00000000 		.quad	.LBB771
- 31899      00000000 
- 31900 39ed 00000000 		.quad	.LBE771
- 31900      00000000 
- 31901 39f5 34       		.uleb128 0x34
- 31902 39f6 980D0000 		.long	0xd98
- 31903 39fa 03       		.byte	0x3
- 31904 39fb 91       		.byte	0x91
- 31905 39fc C046     		.sleb128 -7360
- 31906 39fe 34       		.uleb128 0x34
- 31907 39ff A40D0000 		.long	0xda4
- 31908 3a03 03       		.byte	0x3
- 31909 3a04 91       		.byte	0x91
- 31910 3a05 B046     		.sleb128 -7376
- 31911 3a07 34       		.uleb128 0x34
- 31912 3a08 AF0D0000 		.long	0xdaf
- 31913 3a0c 03       		.byte	0x3
- 31914 3a0d 91       		.byte	0x91
- 31915 3a0e A046     		.sleb128 -7392
- 31916 3a10 34       		.uleb128 0x34
- 31917 3a11 BB0D0000 		.long	0xdbb
- 31918 3a15 03       		.byte	0x3
- 31919 3a16 91       		.byte	0x91
- 31920 3a17 8C73     		.sleb128 -1652
- 31921 3a19 00       		.byte	0x0
- 31922 3a1a 00       		.byte	0x0
- 31923 3a1b 31       		.uleb128 0x31
- 31924 3a1c C70D0000 		.long	0xdc7
- 31925 3a20 00000000 		.quad	.LBB772
- 31925      00000000 
- 31926 3a28 00000000 		.quad	.LBE772
- 31926      00000000 
- 31927 3a30 02       		.byte	0x2
- 31928 3a31 6A03     		.value	0x36a
- 31929 3a33 4A3A0000 		.long	0x3a4a
- 31930 3a37 32       		.uleb128 0x32
- 31931 3a38 E20D0000 		.long	0xde2
- 31932 3a3c 03       		.byte	0x3
- 31933 3a3d 91       		.byte	0x91
- 31934 3a3e 9073     		.sleb128 -1648
- 31935 3a40 32       		.uleb128 0x32
- 31936 3a41 D80D0000 		.long	0xdd8
- 31937 3a45 03       		.byte	0x3
- 31938 3a46 91       		.byte	0x91
- 31939 3a47 A073     		.sleb128 -1632
- 31940 3a49 00       		.byte	0x0
- 31941 3a4a 31       		.uleb128 0x31
- 31942 3a4b ED0D0000 		.long	0xded
- 31943 3a4f 00000000 		.quad	.LBB774
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 890
-
-
- 31943      00000000 
- 31944 3a57 00000000 		.quad	.LBE774
- 31944      00000000 
- 31945 3a5f 02       		.byte	0x2
- 31946 3a60 6C03     		.value	0x36c
- 31947 3a62 793A0000 		.long	0x3a79
- 31948 3a66 32       		.uleb128 0x32
- 31949 3a67 0A0E0000 		.long	0xe0a
- 31950 3a6b 03       		.byte	0x3
- 31951 3a6c 91       		.byte	0x91
- 31952 3a6d B073     		.sleb128 -1616
- 31953 3a6f 32       		.uleb128 0x32
- 31954 3a70 FF0D0000 		.long	0xdff
- 31955 3a74 03       		.byte	0x3
- 31956 3a75 91       		.byte	0x91
- 31957 3a76 C073     		.sleb128 -1600
- 31958 3a78 00       		.byte	0x0
- 31959 3a79 35       		.uleb128 0x35
- 31960 3a7a 1F0D0000 		.long	0xd1f
- 31961 3a7e 00000000 		.quad	.LBB776
- 31961      00000000 
- 31962 3a86 00000000 		.quad	.LBE776
- 31962      00000000 
- 31963 3a8e 02       		.byte	0x2
- 31964 3a8f 6E03     		.value	0x36e
- 31965 3a91 32       		.uleb128 0x32
- 31966 3a92 3A0D0000 		.long	0xd3a
- 31967 3a96 03       		.byte	0x3
- 31968 3a97 91       		.byte	0x91
- 31969 3a98 D073     		.sleb128 -1584
- 31970 3a9a 32       		.uleb128 0x32
- 31971 3a9b 300D0000 		.long	0xd30
- 31972 3a9f 03       		.byte	0x3
- 31973 3aa0 91       		.byte	0x91
- 31974 3aa1 E073     		.sleb128 -1568
- 31975 3aa3 00       		.byte	0x0
- 31976 3aa4 00       		.byte	0x0
- 31977 3aa5 00       		.byte	0x0
- 31978 3aa6 00       		.byte	0x0
- 31979 3aa7 36       		.uleb128 0x36
- 31980 3aa8 00000000 		.quad	.LBB778
- 31980      00000000 
- 31981 3ab0 00000000 		.quad	.LBE778
- 31981      00000000 
- 31982 3ab8 C63A0000 		.long	0x3ac6
- 31983 3abc 34       		.uleb128 0x34
- 31984 3abd 180C0000 		.long	0xc18
- 31985 3ac1 03       		.byte	0x3
- 31986 3ac2 91       		.byte	0x91
- 31987 3ac3 D045     		.sleb128 -7472
- 31988 3ac5 00       		.byte	0x0
- 31989 3ac6 31       		.uleb128 0x31
- 31990 3ac7 160E0000 		.long	0xe16
- 31991 3acb 00000000 		.quad	.LBB779
- 31991      00000000 
- 31992 3ad3 00000000 		.quad	.LBE779
- 31992      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 891
-
-
- 31993 3adb 02       		.byte	0x2
- 31994 3adc 9406     		.value	0x694
- 31995 3ade 6E3B0000 		.long	0x3b6e
- 31996 3ae2 32       		.uleb128 0x32
- 31997 3ae3 280E0000 		.long	0xe28
- 31998 3ae7 03       		.byte	0x3
- 31999 3ae8 91       		.byte	0x91
- 32000 3ae9 F073     		.sleb128 -1552
- 32001 3aeb 33       		.uleb128 0x33
- 32002 3aec 00000000 		.quad	.LBB780
- 32002      00000000 
- 32003 3af4 00000000 		.quad	.LBE780
- 32003      00000000 
- 32004 3afc 34       		.uleb128 0x34
- 32005 3afd 340E0000 		.long	0xe34
- 32006 3b01 09       		.byte	0x9
- 32007 3b02 03       		.byte	0x3
- 32008 3b03 00000000 		.quad	ShiftRowTable.6768
- 32008      00000000 
- 32009 3b0b 35       		.uleb128 0x35
- 32010 3b0c 6E0D0000 		.long	0xd6e
- 32011 3b10 00000000 		.quad	.LBB781
- 32011      00000000 
- 32012 3b18 00000000 		.quad	.LBE781
- 32012      00000000 
- 32013 3b20 02       		.byte	0x2
- 32014 3b21 9B02     		.value	0x29b
- 32015 3b23 32       		.uleb128 0x32
- 32016 3b24 8C0D0000 		.long	0xd8c
- 32017 3b28 03       		.byte	0x3
- 32018 3b29 91       		.byte	0x91
- 32019 3b2a 8074     		.sleb128 -1536
- 32020 3b2c 32       		.uleb128 0x32
- 32021 3b2d 800D0000 		.long	0xd80
- 32022 3b31 03       		.byte	0x3
- 32023 3b32 91       		.byte	0x91
- 32024 3b33 9074     		.sleb128 -1520
- 32025 3b35 33       		.uleb128 0x33
- 32026 3b36 00000000 		.quad	.LBB782
- 32026      00000000 
- 32027 3b3e 00000000 		.quad	.LBE782
- 32027      00000000 
- 32028 3b46 34       		.uleb128 0x34
- 32029 3b47 980D0000 		.long	0xd98
- 32030 3b4b 03       		.byte	0x3
- 32031 3b4c 91       		.byte	0x91
- 32032 3b4d F046     		.sleb128 -7312
- 32033 3b4f 34       		.uleb128 0x34
- 32034 3b50 A40D0000 		.long	0xda4
- 32035 3b54 03       		.byte	0x3
- 32036 3b55 91       		.byte	0x91
- 32037 3b56 E046     		.sleb128 -7328
- 32038 3b58 34       		.uleb128 0x34
- 32039 3b59 AF0D0000 		.long	0xdaf
- 32040 3b5d 03       		.byte	0x3
- 32041 3b5e 91       		.byte	0x91
- 32042 3b5f D046     		.sleb128 -7344
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 892
-
-
- 32043 3b61 34       		.uleb128 0x34
- 32044 3b62 BB0D0000 		.long	0xdbb
- 32045 3b66 03       		.byte	0x3
- 32046 3b67 91       		.byte	0x91
- 32047 3b68 AC74     		.sleb128 -1492
- 32048 3b6a 00       		.byte	0x0
- 32049 3b6b 00       		.byte	0x0
- 32050 3b6c 00       		.byte	0x0
- 32051 3b6d 00       		.byte	0x0
- 32052 3b6e 36       		.uleb128 0x36
- 32053 3b6f 00000000 		.quad	.LBB783
- 32053      00000000 
- 32054 3b77 00000000 		.quad	.LBE783
- 32054      00000000 
- 32055 3b7f 8D3B0000 		.long	0x3b8d
- 32056 3b83 34       		.uleb128 0x34
- 32057 3b84 280C0000 		.long	0xc28
- 32058 3b88 03       		.byte	0x3
- 32059 3b89 91       		.byte	0x91
- 32060 3b8a C045     		.sleb128 -7488
- 32061 3b8c 00       		.byte	0x0
- 32062 3b8d 31       		.uleb128 0x31
- 32063 3b8e 520E0000 		.long	0xe52
- 32064 3b92 00000000 		.quad	.LBB784
- 32064      00000000 
- 32065 3b9a 00000000 		.quad	.LBE784
- 32065      00000000 
- 32066 3ba2 02       		.byte	0x2
- 32067 3ba3 9606     		.value	0x696
- 32068 3ba5 BC3B0000 		.long	0x3bbc
- 32069 3ba9 32       		.uleb128 0x32
- 32070 3baa 6D0E0000 		.long	0xe6d
- 32071 3bae 03       		.byte	0x3
- 32072 3baf 91       		.byte	0x91
- 32073 3bb0 B074     		.sleb128 -1488
- 32074 3bb2 32       		.uleb128 0x32
- 32075 3bb3 630E0000 		.long	0xe63
- 32076 3bb7 03       		.byte	0x3
- 32077 3bb8 91       		.byte	0x91
- 32078 3bb9 C074     		.sleb128 -1472
- 32079 3bbb 00       		.byte	0x0
- 32080 3bbc 36       		.uleb128 0x36
- 32081 3bbd 00000000 		.quad	.LBB786
- 32081      00000000 
- 32082 3bc5 00000000 		.quad	.LBE786
- 32082      00000000 
- 32083 3bcd DB3B0000 		.long	0x3bdb
- 32084 3bd1 34       		.uleb128 0x34
- 32085 3bd2 380C0000 		.long	0xc38
- 32086 3bd6 03       		.byte	0x3
- 32087 3bd7 91       		.byte	0x91
- 32088 3bd8 B045     		.sleb128 -7504
- 32089 3bda 00       		.byte	0x0
- 32090 3bdb 31       		.uleb128 0x31
- 32091 3bdc 780E0000 		.long	0xe78
- 32092 3be0 00000000 		.quad	.LBB787
- 32092      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 893
-
-
- 32093 3be8 00000000 		.quad	.LBE787
- 32093      00000000 
- 32094 3bf0 02       		.byte	0x2
- 32095 3bf1 9806     		.value	0x698
- 32096 3bf3 1C3C0000 		.long	0x3c1c
- 32097 3bf7 32       		.uleb128 0x32
- 32098 3bf8 8A0E0000 		.long	0xe8a
- 32099 3bfc 03       		.byte	0x3
- 32100 3bfd 91       		.byte	0x91
- 32101 3bfe D074     		.sleb128 -1456
- 32102 3c00 33       		.uleb128 0x33
- 32103 3c01 00000000 		.quad	.LBB788
- 32103      00000000 
- 32104 3c09 00000000 		.quad	.LBE788
- 32104      00000000 
- 32105 3c11 34       		.uleb128 0x34
- 32106 3c12 960E0000 		.long	0xe96
- 32107 3c16 03       		.byte	0x3
- 32108 3c17 91       		.byte	0x91
- 32109 3c18 8047     		.sleb128 -7296
- 32110 3c1a 00       		.byte	0x0
- 32111 3c1b 00       		.byte	0x0
- 32112 3c1c 33       		.uleb128 0x33
- 32113 3c1d 00000000 		.quad	.LBB789
- 32113      00000000 
- 32114 3c25 00000000 		.quad	.LBE789
- 32114      00000000 
- 32115 3c2d 34       		.uleb128 0x34
- 32116 3c2e 440C0000 		.long	0xc44
- 32117 3c32 03       		.byte	0x3
- 32118 3c33 91       		.byte	0x91
- 32119 3c34 A045     		.sleb128 -7520
- 32120 3c36 00       		.byte	0x0
- 32121 3c37 00       		.byte	0x0
- 32122 3c38 00       		.byte	0x0
- 32123 3c39 31       		.uleb128 0x31
- 32124 3c3a A30E0000 		.long	0xea3
- 32125 3c3e 00000000 		.quad	.LBB790
- 32125      00000000 
- 32126 3c46 00000000 		.quad	.LBE790
- 32126      00000000 
- 32127 3c4e 02       		.byte	0x2
- 32128 3c4f D706     		.value	0x6d7
- 32129 3c51 3A3D0000 		.long	0x3d3a
- 32130 3c55 32       		.uleb128 0x32
- 32131 3c56 B50E0000 		.long	0xeb5
- 32132 3c5a 03       		.byte	0x3
- 32133 3c5b 91       		.byte	0x91
- 32134 3c5c E074     		.sleb128 -1440
- 32135 3c5e 33       		.uleb128 0x33
- 32136 3c5f 00000000 		.quad	.LBB791
- 32136      00000000 
- 32137 3c67 00000000 		.quad	.LBE791
- 32137      00000000 
- 32138 3c6f 34       		.uleb128 0x34
- 32139 3c70 C10E0000 		.long	0xec1
- 32140 3c74 04       		.byte	0x4
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 894
-
-
- 32141 3c75 76       		.byte	0x76
- 32142 3c76 A0B47F   		.sleb128 -9696
- 32143 3c79 31       		.uleb128 0x31
- 32144 3c7a CE0E0000 		.long	0xece
- 32145 3c7e 00000000 		.quad	.LBB792
- 32145      00000000 
- 32146 3c86 00000000 		.quad	.LBE792
- 32146      00000000 
- 32147 3c8e 02       		.byte	0x2
- 32148 3c8f 1F06     		.value	0x61f
- 32149 3c91 BA3C0000 		.long	0x3cba
- 32150 3c95 32       		.uleb128 0x32
- 32151 3c96 E00E0000 		.long	0xee0
- 32152 3c9a 03       		.byte	0x3
- 32153 3c9b 91       		.byte	0x91
- 32154 3c9c F074     		.sleb128 -1424
- 32155 3c9e 33       		.uleb128 0x33
- 32156 3c9f 00000000 		.quad	.LBB793
- 32156      00000000 
- 32157 3ca7 00000000 		.quad	.LBE793
- 32157      00000000 
- 32158 3caf 34       		.uleb128 0x34
- 32159 3cb0 EC0E0000 		.long	0xeec
- 32160 3cb4 03       		.byte	0x3
- 32161 3cb5 91       		.byte	0x91
- 32162 3cb6 9047     		.sleb128 -7280
- 32163 3cb8 00       		.byte	0x0
- 32164 3cb9 00       		.byte	0x0
- 32165 3cba 31       		.uleb128 0x31
- 32166 3cbb CE0E0000 		.long	0xece
- 32167 3cbf 00000000 		.quad	.LBB794
- 32167      00000000 
- 32168 3cc7 00000000 		.quad	.LBE794
- 32168      00000000 
- 32169 3ccf 02       		.byte	0x2
- 32170 3cd0 2006     		.value	0x620
- 32171 3cd2 FB3C0000 		.long	0x3cfb
- 32172 3cd6 32       		.uleb128 0x32
- 32173 3cd7 E00E0000 		.long	0xee0
- 32174 3cdb 03       		.byte	0x3
- 32175 3cdc 91       		.byte	0x91
- 32176 3cdd 8075     		.sleb128 -1408
- 32177 3cdf 33       		.uleb128 0x33
- 32178 3ce0 00000000 		.quad	.LBB795
- 32178      00000000 
- 32179 3ce8 00000000 		.quad	.LBE795
- 32179      00000000 
- 32180 3cf0 34       		.uleb128 0x34
- 32181 3cf1 EC0E0000 		.long	0xeec
- 32182 3cf5 03       		.byte	0x3
- 32183 3cf6 91       		.byte	0x91
- 32184 3cf7 A047     		.sleb128 -7264
- 32185 3cf9 00       		.byte	0x0
- 32186 3cfa 00       		.byte	0x0
- 32187 3cfb 35       		.uleb128 0x35
- 32188 3cfc CE0E0000 		.long	0xece
- 32189 3d00 00000000 		.quad	.LBB796
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 895
-
-
- 32189      00000000 
- 32190 3d08 00000000 		.quad	.LBE796
- 32190      00000000 
- 32191 3d10 02       		.byte	0x2
- 32192 3d11 2106     		.value	0x621
- 32193 3d13 32       		.uleb128 0x32
- 32194 3d14 E00E0000 		.long	0xee0
- 32195 3d18 03       		.byte	0x3
- 32196 3d19 91       		.byte	0x91
- 32197 3d1a 9075     		.sleb128 -1392
- 32198 3d1c 33       		.uleb128 0x33
- 32199 3d1d 00000000 		.quad	.LBB797
- 32199      00000000 
- 32200 3d25 00000000 		.quad	.LBE797
- 32200      00000000 
- 32201 3d2d 34       		.uleb128 0x34
- 32202 3d2e EC0E0000 		.long	0xeec
- 32203 3d32 03       		.byte	0x3
- 32204 3d33 91       		.byte	0x91
- 32205 3d34 B047     		.sleb128 -7248
- 32206 3d36 00       		.byte	0x0
- 32207 3d37 00       		.byte	0x0
- 32208 3d38 00       		.byte	0x0
- 32209 3d39 00       		.byte	0x0
- 32210 3d3a 31       		.uleb128 0x31
- 32211 3d3b D10B0000 		.long	0xbd1
- 32212 3d3f 00000000 		.quad	.LBB798
- 32212      00000000 
- 32213 3d47 00000000 		.quad	.LBE798
- 32213      00000000 
- 32214 3d4f 02       		.byte	0x2
- 32215 3d50 D806     		.value	0x6d8
- 32216 3d52 E2410000 		.long	0x41e2
- 32217 3d56 32       		.uleb128 0x32
- 32218 3d57 EF0B0000 		.long	0xbef
- 32219 3d5b 03       		.byte	0x3
- 32220 3d5c 91       		.byte	0x91
- 32221 3d5d AC75     		.sleb128 -1364
- 32222 3d5f 32       		.uleb128 0x32
- 32223 3d60 E30B0000 		.long	0xbe3
- 32224 3d64 03       		.byte	0x3
- 32225 3d65 91       		.byte	0x91
- 32226 3d66 B075     		.sleb128 -1360
- 32227 3d68 33       		.uleb128 0x33
- 32228 3d69 00000000 		.quad	.LBB799
- 32228      00000000 
- 32229 3d71 00000000 		.quad	.LBE799
- 32229      00000000 
- 32230 3d79 34       		.uleb128 0x34
- 32231 3d7a FB0B0000 		.long	0xbfb
- 32232 3d7e 04       		.byte	0x4
- 32233 3d7f 76       		.byte	0x76
- 32234 3d80 C0B47F   		.sleb128 -9664
- 32235 3d83 34       		.uleb128 0x34
- 32236 3d84 070C0000 		.long	0xc07
- 32237 3d88 04       		.byte	0x4
- 32238 3d89 76       		.byte	0x76
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 896
-
-
- 32239 3d8a B0B47F   		.sleb128 -9680
- 32240 3d8d 31       		.uleb128 0x31
- 32241 3d8e 500C0000 		.long	0xc50
- 32242 3d92 00000000 		.quad	.LBB800
- 32242      00000000 
- 32243 3d9a 00000000 		.quad	.LBE800
- 32243      00000000 
- 32244 3da2 02       		.byte	0x2
- 32245 3da3 9106     		.value	0x691
- 32246 3da5 E03D0000 		.long	0x3de0
- 32247 3da9 32       		.uleb128 0x32
- 32248 3daa 7A0C0000 		.long	0xc7a
- 32249 3dae 03       		.byte	0x3
- 32250 3daf 91       		.byte	0x91
- 32251 3db0 C875     		.sleb128 -1336
- 32252 3db2 32       		.uleb128 0x32
- 32253 3db3 6E0C0000 		.long	0xc6e
- 32254 3db7 03       		.byte	0x3
- 32255 3db8 91       		.byte	0x91
- 32256 3db9 CC75     		.sleb128 -1332
- 32257 3dbb 32       		.uleb128 0x32
- 32258 3dbc 620C0000 		.long	0xc62
- 32259 3dc0 03       		.byte	0x3
- 32260 3dc1 91       		.byte	0x91
- 32261 3dc2 D075     		.sleb128 -1328
- 32262 3dc4 33       		.uleb128 0x33
- 32263 3dc5 00000000 		.quad	.LBB801
- 32263      00000000 
- 32264 3dcd 00000000 		.quad	.LBE801
- 32264      00000000 
- 32265 3dd5 34       		.uleb128 0x34
- 32266 3dd6 860C0000 		.long	0xc86
- 32267 3dda 03       		.byte	0x3
- 32268 3ddb 91       		.byte	0x91
- 32269 3ddc 8048     		.sleb128 -7168
- 32270 3dde 00       		.byte	0x0
- 32271 3ddf 00       		.byte	0x0
- 32272 3de0 31       		.uleb128 0x31
- 32273 3de1 910C0000 		.long	0xc91
- 32274 3de5 00000000 		.quad	.LBB802
- 32274      00000000 
- 32275 3ded 00000000 		.quad	.LBE802
- 32275      00000000 
- 32276 3df5 02       		.byte	0x2
- 32277 3df6 9206     		.value	0x692
- 32278 3df8 50400000 		.long	0x4050
- 32279 3dfc 32       		.uleb128 0x32
- 32280 3dfd A30C0000 		.long	0xca3
- 32281 3e01 03       		.byte	0x3
- 32282 3e02 91       		.byte	0x91
- 32283 3e03 E075     		.sleb128 -1312
- 32284 3e05 35       		.uleb128 0x35
- 32285 3e06 B00C0000 		.long	0xcb0
- 32286 3e0a 00000000 		.quad	.LBB804
- 32286      00000000 
- 32287 3e12 00000000 		.quad	.LBE804
- 32287      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 897
-
-
- 32288 3e1a 02       		.byte	0x2
- 32289 3e1b 7D03     		.value	0x37d
- 32290 3e1d 32       		.uleb128 0x32
- 32291 3e1e CE0C0000 		.long	0xcce
- 32292 3e22 03       		.byte	0x3
- 32293 3e23 91       		.byte	0x91
- 32294 3e24 F875     		.sleb128 -1288
- 32295 3e26 32       		.uleb128 0x32
- 32296 3e27 C20C0000 		.long	0xcc2
- 32297 3e2b 03       		.byte	0x3
- 32298 3e2c 91       		.byte	0x91
- 32299 3e2d 8076     		.sleb128 -1280
- 32300 3e2f 33       		.uleb128 0x33
- 32301 3e30 00000000 		.quad	.LBB805
- 32301      00000000 
- 32302 3e38 00000000 		.quad	.LBE805
- 32302      00000000 
- 32303 3e40 34       		.uleb128 0x34
- 32304 3e41 DA0C0000 		.long	0xcda
- 32305 3e45 03       		.byte	0x3
- 32306 3e46 91       		.byte	0x91
- 32307 3e47 D076     		.sleb128 -1200
- 32308 3e49 34       		.uleb128 0x34
- 32309 3e4a E50C0000 		.long	0xce5
- 32310 3e4e 03       		.byte	0x3
- 32311 3e4f 91       		.byte	0x91
- 32312 3e50 C076     		.sleb128 -1216
- 32313 3e52 34       		.uleb128 0x34
- 32314 3e53 F00C0000 		.long	0xcf0
- 32315 3e57 03       		.byte	0x3
- 32316 3e58 91       		.byte	0x91
- 32317 3e59 B076     		.sleb128 -1232
- 32318 3e5b 34       		.uleb128 0x34
- 32319 3e5c FC0C0000 		.long	0xcfc
- 32320 3e60 03       		.byte	0x3
- 32321 3e61 91       		.byte	0x91
- 32322 3e62 A076     		.sleb128 -1248
- 32323 3e64 34       		.uleb128 0x34
- 32324 3e65 080D0000 		.long	0xd08
- 32325 3e69 03       		.byte	0x3
- 32326 3e6a 91       		.byte	0x91
- 32327 3e6b 9C76     		.sleb128 -1252
- 32328 3e6d 31       		.uleb128 0x31
- 32329 3e6e 1F0D0000 		.long	0xd1f
- 32330 3e72 00000000 		.quad	.LBB806
- 32330      00000000 
- 32331 3e7a 00000000 		.quad	.LBE806
- 32331      00000000 
- 32332 3e82 02       		.byte	0x2
- 32333 3e83 5603     		.value	0x356
- 32334 3e85 9C3E0000 		.long	0x3e9c
- 32335 3e89 32       		.uleb128 0x32
- 32336 3e8a 3A0D0000 		.long	0xd3a
- 32337 3e8e 03       		.byte	0x3
- 32338 3e8f 91       		.byte	0x91
- 32339 3e90 E076     		.sleb128 -1184
- 32340 3e92 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 898
-
-
- 32341 3e93 300D0000 		.long	0xd30
- 32342 3e97 03       		.byte	0x3
- 32343 3e98 91       		.byte	0x91
- 32344 3e99 F076     		.sleb128 -1168
- 32345 3e9b 00       		.byte	0x0
- 32346 3e9c 31       		.uleb128 0x31
- 32347 3e9d 450D0000 		.long	0xd45
- 32348 3ea1 00000000 		.quad	.LBB808
- 32348      00000000 
- 32349 3ea9 00000000 		.quad	.LBE808
- 32349      00000000 
- 32350 3eb1 02       		.byte	0x2
- 32351 3eb2 5E03     		.value	0x35e
- 32352 3eb4 CB3E0000 		.long	0x3ecb
- 32353 3eb8 32       		.uleb128 0x32
- 32354 3eb9 620D0000 		.long	0xd62
- 32355 3ebd 03       		.byte	0x3
- 32356 3ebe 91       		.byte	0x91
- 32357 3ebf 8077     		.sleb128 -1152
- 32358 3ec1 32       		.uleb128 0x32
- 32359 3ec2 570D0000 		.long	0xd57
- 32360 3ec6 03       		.byte	0x3
- 32361 3ec7 91       		.byte	0x91
- 32362 3ec8 9077     		.sleb128 -1136
- 32363 3eca 00       		.byte	0x0
- 32364 3ecb 31       		.uleb128 0x31
- 32365 3ecc 6E0D0000 		.long	0xd6e
- 32366 3ed0 00000000 		.quad	.LBB810
- 32366      00000000 
- 32367 3ed8 00000000 		.quad	.LBE810
- 32367      00000000 
- 32368 3ee0 02       		.byte	0x2
- 32369 3ee1 6403     		.value	0x364
- 32370 3ee3 303F0000 		.long	0x3f30
- 32371 3ee7 32       		.uleb128 0x32
- 32372 3ee8 8C0D0000 		.long	0xd8c
- 32373 3eec 03       		.byte	0x3
- 32374 3eed 91       		.byte	0x91
- 32375 3eee A077     		.sleb128 -1120
- 32376 3ef0 32       		.uleb128 0x32
- 32377 3ef1 800D0000 		.long	0xd80
- 32378 3ef5 03       		.byte	0x3
- 32379 3ef6 91       		.byte	0x91
- 32380 3ef7 B077     		.sleb128 -1104
- 32381 3ef9 33       		.uleb128 0x33
- 32382 3efa 00000000 		.quad	.LBB811
- 32382      00000000 
- 32383 3f02 00000000 		.quad	.LBE811
- 32383      00000000 
- 32384 3f0a 34       		.uleb128 0x34
- 32385 3f0b 980D0000 		.long	0xd98
- 32386 3f0f 03       		.byte	0x3
- 32387 3f10 91       		.byte	0x91
- 32388 3f11 B048     		.sleb128 -7120
- 32389 3f13 34       		.uleb128 0x34
- 32390 3f14 A40D0000 		.long	0xda4
- 32391 3f18 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 899
-
-
- 32392 3f19 91       		.byte	0x91
- 32393 3f1a A048     		.sleb128 -7136
- 32394 3f1c 34       		.uleb128 0x34
- 32395 3f1d AF0D0000 		.long	0xdaf
- 32396 3f21 03       		.byte	0x3
- 32397 3f22 91       		.byte	0x91
- 32398 3f23 9048     		.sleb128 -7152
- 32399 3f25 34       		.uleb128 0x34
- 32400 3f26 BB0D0000 		.long	0xdbb
- 32401 3f2a 03       		.byte	0x3
- 32402 3f2b 91       		.byte	0x91
- 32403 3f2c CC77     		.sleb128 -1076
- 32404 3f2e 00       		.byte	0x0
- 32405 3f2f 00       		.byte	0x0
- 32406 3f30 31       		.uleb128 0x31
- 32407 3f31 C70D0000 		.long	0xdc7
- 32408 3f35 00000000 		.quad	.LBB812
- 32408      00000000 
- 32409 3f3d 00000000 		.quad	.LBE812
- 32409      00000000 
- 32410 3f45 02       		.byte	0x2
- 32411 3f46 6603     		.value	0x366
- 32412 3f48 5F3F0000 		.long	0x3f5f
- 32413 3f4c 32       		.uleb128 0x32
- 32414 3f4d E20D0000 		.long	0xde2
- 32415 3f51 03       		.byte	0x3
- 32416 3f52 91       		.byte	0x91
- 32417 3f53 D077     		.sleb128 -1072
- 32418 3f55 32       		.uleb128 0x32
- 32419 3f56 D80D0000 		.long	0xdd8
- 32420 3f5a 03       		.byte	0x3
- 32421 3f5b 91       		.byte	0x91
- 32422 3f5c E077     		.sleb128 -1056
- 32423 3f5e 00       		.byte	0x0
- 32424 3f5f 31       		.uleb128 0x31
- 32425 3f60 6E0D0000 		.long	0xd6e
- 32426 3f64 00000000 		.quad	.LBB814
- 32426      00000000 
- 32427 3f6c 00000000 		.quad	.LBE814
- 32427      00000000 
- 32428 3f74 02       		.byte	0x2
- 32429 3f75 6803     		.value	0x368
- 32430 3f77 C43F0000 		.long	0x3fc4
- 32431 3f7b 32       		.uleb128 0x32
- 32432 3f7c 8C0D0000 		.long	0xd8c
- 32433 3f80 03       		.byte	0x3
- 32434 3f81 91       		.byte	0x91
- 32435 3f82 F077     		.sleb128 -1040
- 32436 3f84 32       		.uleb128 0x32
- 32437 3f85 800D0000 		.long	0xd80
- 32438 3f89 03       		.byte	0x3
- 32439 3f8a 91       		.byte	0x91
- 32440 3f8b 8078     		.sleb128 -1024
- 32441 3f8d 33       		.uleb128 0x33
- 32442 3f8e 00000000 		.quad	.LBB815
- 32442      00000000 
- 32443 3f96 00000000 		.quad	.LBE815
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 900
-
-
- 32443      00000000 
- 32444 3f9e 34       		.uleb128 0x34
- 32445 3f9f 980D0000 		.long	0xd98
- 32446 3fa3 03       		.byte	0x3
- 32447 3fa4 91       		.byte	0x91
- 32448 3fa5 E048     		.sleb128 -7072
- 32449 3fa7 34       		.uleb128 0x34
- 32450 3fa8 A40D0000 		.long	0xda4
- 32451 3fac 03       		.byte	0x3
- 32452 3fad 91       		.byte	0x91
- 32453 3fae D048     		.sleb128 -7088
- 32454 3fb0 34       		.uleb128 0x34
- 32455 3fb1 AF0D0000 		.long	0xdaf
- 32456 3fb5 03       		.byte	0x3
- 32457 3fb6 91       		.byte	0x91
- 32458 3fb7 C048     		.sleb128 -7104
- 32459 3fb9 34       		.uleb128 0x34
- 32460 3fba BB0D0000 		.long	0xdbb
- 32461 3fbe 03       		.byte	0x3
- 32462 3fbf 91       		.byte	0x91
- 32463 3fc0 9C78     		.sleb128 -996
- 32464 3fc2 00       		.byte	0x0
- 32465 3fc3 00       		.byte	0x0
- 32466 3fc4 31       		.uleb128 0x31
- 32467 3fc5 C70D0000 		.long	0xdc7
- 32468 3fc9 00000000 		.quad	.LBB816
- 32468      00000000 
- 32469 3fd1 00000000 		.quad	.LBE816
- 32469      00000000 
- 32470 3fd9 02       		.byte	0x2
- 32471 3fda 6A03     		.value	0x36a
- 32472 3fdc F33F0000 		.long	0x3ff3
- 32473 3fe0 32       		.uleb128 0x32
- 32474 3fe1 E20D0000 		.long	0xde2
- 32475 3fe5 03       		.byte	0x3
- 32476 3fe6 91       		.byte	0x91
- 32477 3fe7 A078     		.sleb128 -992
- 32478 3fe9 32       		.uleb128 0x32
- 32479 3fea D80D0000 		.long	0xdd8
- 32480 3fee 03       		.byte	0x3
- 32481 3fef 91       		.byte	0x91
- 32482 3ff0 B078     		.sleb128 -976
- 32483 3ff2 00       		.byte	0x0
- 32484 3ff3 31       		.uleb128 0x31
- 32485 3ff4 ED0D0000 		.long	0xded
- 32486 3ff8 00000000 		.quad	.LBB818
- 32486      00000000 
- 32487 4000 00000000 		.quad	.LBE818
- 32487      00000000 
- 32488 4008 02       		.byte	0x2
- 32489 4009 6C03     		.value	0x36c
- 32490 400b 22400000 		.long	0x4022
- 32491 400f 32       		.uleb128 0x32
- 32492 4010 0A0E0000 		.long	0xe0a
- 32493 4014 03       		.byte	0x3
- 32494 4015 91       		.byte	0x91
- 32495 4016 C078     		.sleb128 -960
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 901
-
-
- 32496 4018 32       		.uleb128 0x32
- 32497 4019 FF0D0000 		.long	0xdff
- 32498 401d 03       		.byte	0x3
- 32499 401e 91       		.byte	0x91
- 32500 401f D078     		.sleb128 -944
- 32501 4021 00       		.byte	0x0
- 32502 4022 35       		.uleb128 0x35
- 32503 4023 1F0D0000 		.long	0xd1f
- 32504 4027 00000000 		.quad	.LBB820
- 32504      00000000 
- 32505 402f 00000000 		.quad	.LBE820
- 32505      00000000 
- 32506 4037 02       		.byte	0x2
- 32507 4038 6E03     		.value	0x36e
- 32508 403a 32       		.uleb128 0x32
- 32509 403b 3A0D0000 		.long	0xd3a
- 32510 403f 03       		.byte	0x3
- 32511 4040 91       		.byte	0x91
- 32512 4041 E078     		.sleb128 -928
- 32513 4043 32       		.uleb128 0x32
- 32514 4044 300D0000 		.long	0xd30
- 32515 4048 03       		.byte	0x3
- 32516 4049 91       		.byte	0x91
- 32517 404a F078     		.sleb128 -912
- 32518 404c 00       		.byte	0x0
- 32519 404d 00       		.byte	0x0
- 32520 404e 00       		.byte	0x0
- 32521 404f 00       		.byte	0x0
- 32522 4050 36       		.uleb128 0x36
- 32523 4051 00000000 		.quad	.LBB822
- 32523      00000000 
- 32524 4059 00000000 		.quad	.LBE822
- 32524      00000000 
- 32525 4061 6F400000 		.long	0x406f
- 32526 4065 34       		.uleb128 0x34
- 32527 4066 180C0000 		.long	0xc18
- 32528 406a 03       		.byte	0x3
- 32529 406b 91       		.byte	0x91
- 32530 406c F047     		.sleb128 -7184
- 32531 406e 00       		.byte	0x0
- 32532 406f 31       		.uleb128 0x31
- 32533 4070 160E0000 		.long	0xe16
- 32534 4074 00000000 		.quad	.LBB823
- 32534      00000000 
- 32535 407c 00000000 		.quad	.LBE823
- 32535      00000000 
- 32536 4084 02       		.byte	0x2
- 32537 4085 9406     		.value	0x694
- 32538 4087 17410000 		.long	0x4117
- 32539 408b 32       		.uleb128 0x32
- 32540 408c 280E0000 		.long	0xe28
- 32541 4090 03       		.byte	0x3
- 32542 4091 91       		.byte	0x91
- 32543 4092 8079     		.sleb128 -896
- 32544 4094 33       		.uleb128 0x33
- 32545 4095 00000000 		.quad	.LBB824
- 32545      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 902
-
-
- 32546 409d 00000000 		.quad	.LBE824
- 32546      00000000 
- 32547 40a5 34       		.uleb128 0x34
- 32548 40a6 340E0000 		.long	0xe34
- 32549 40aa 09       		.byte	0x9
- 32550 40ab 03       		.byte	0x3
- 32551 40ac 00000000 		.quad	ShiftRowTable.6768
- 32551      00000000 
- 32552 40b4 35       		.uleb128 0x35
- 32553 40b5 6E0D0000 		.long	0xd6e
- 32554 40b9 00000000 		.quad	.LBB825
- 32554      00000000 
- 32555 40c1 00000000 		.quad	.LBE825
- 32555      00000000 
- 32556 40c9 02       		.byte	0x2
- 32557 40ca 9B02     		.value	0x29b
- 32558 40cc 32       		.uleb128 0x32
- 32559 40cd 8C0D0000 		.long	0xd8c
- 32560 40d1 03       		.byte	0x3
- 32561 40d2 91       		.byte	0x91
- 32562 40d3 9079     		.sleb128 -880
- 32563 40d5 32       		.uleb128 0x32
- 32564 40d6 800D0000 		.long	0xd80
- 32565 40da 03       		.byte	0x3
- 32566 40db 91       		.byte	0x91
- 32567 40dc A079     		.sleb128 -864
- 32568 40de 33       		.uleb128 0x33
- 32569 40df 00000000 		.quad	.LBB826
- 32569      00000000 
- 32570 40e7 00000000 		.quad	.LBE826
- 32570      00000000 
- 32571 40ef 34       		.uleb128 0x34
- 32572 40f0 980D0000 		.long	0xd98
- 32573 40f4 03       		.byte	0x3
- 32574 40f5 91       		.byte	0x91
- 32575 40f6 9049     		.sleb128 -7024
- 32576 40f8 34       		.uleb128 0x34
- 32577 40f9 A40D0000 		.long	0xda4
- 32578 40fd 03       		.byte	0x3
- 32579 40fe 91       		.byte	0x91
- 32580 40ff 8049     		.sleb128 -7040
- 32581 4101 34       		.uleb128 0x34
- 32582 4102 AF0D0000 		.long	0xdaf
- 32583 4106 03       		.byte	0x3
- 32584 4107 91       		.byte	0x91
- 32585 4108 F048     		.sleb128 -7056
- 32586 410a 34       		.uleb128 0x34
- 32587 410b BB0D0000 		.long	0xdbb
- 32588 410f 03       		.byte	0x3
- 32589 4110 91       		.byte	0x91
- 32590 4111 BC79     		.sleb128 -836
- 32591 4113 00       		.byte	0x0
- 32592 4114 00       		.byte	0x0
- 32593 4115 00       		.byte	0x0
- 32594 4116 00       		.byte	0x0
- 32595 4117 36       		.uleb128 0x36
- 32596 4118 00000000 		.quad	.LBB827
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 903
-
-
- 32596      00000000 
- 32597 4120 00000000 		.quad	.LBE827
- 32597      00000000 
- 32598 4128 36410000 		.long	0x4136
- 32599 412c 34       		.uleb128 0x34
- 32600 412d 280C0000 		.long	0xc28
- 32601 4131 03       		.byte	0x3
- 32602 4132 91       		.byte	0x91
- 32603 4133 E047     		.sleb128 -7200
- 32604 4135 00       		.byte	0x0
- 32605 4136 31       		.uleb128 0x31
- 32606 4137 520E0000 		.long	0xe52
- 32607 413b 00000000 		.quad	.LBB828
- 32607      00000000 
- 32608 4143 00000000 		.quad	.LBE828
- 32608      00000000 
- 32609 414b 02       		.byte	0x2
- 32610 414c 9606     		.value	0x696
- 32611 414e 65410000 		.long	0x4165
- 32612 4152 32       		.uleb128 0x32
- 32613 4153 6D0E0000 		.long	0xe6d
- 32614 4157 03       		.byte	0x3
- 32615 4158 91       		.byte	0x91
- 32616 4159 C079     		.sleb128 -832
- 32617 415b 32       		.uleb128 0x32
- 32618 415c 630E0000 		.long	0xe63
- 32619 4160 03       		.byte	0x3
- 32620 4161 91       		.byte	0x91
- 32621 4162 D079     		.sleb128 -816
- 32622 4164 00       		.byte	0x0
- 32623 4165 36       		.uleb128 0x36
- 32624 4166 00000000 		.quad	.LBB830
- 32624      00000000 
- 32625 416e 00000000 		.quad	.LBE830
- 32625      00000000 
- 32626 4176 84410000 		.long	0x4184
- 32627 417a 34       		.uleb128 0x34
- 32628 417b 380C0000 		.long	0xc38
- 32629 417f 03       		.byte	0x3
- 32630 4180 91       		.byte	0x91
- 32631 4181 D047     		.sleb128 -7216
- 32632 4183 00       		.byte	0x0
- 32633 4184 31       		.uleb128 0x31
- 32634 4185 780E0000 		.long	0xe78
- 32635 4189 00000000 		.quad	.LBB831
- 32635      00000000 
- 32636 4191 00000000 		.quad	.LBE831
- 32636      00000000 
- 32637 4199 02       		.byte	0x2
- 32638 419a 9806     		.value	0x698
- 32639 419c C5410000 		.long	0x41c5
- 32640 41a0 32       		.uleb128 0x32
- 32641 41a1 8A0E0000 		.long	0xe8a
- 32642 41a5 03       		.byte	0x3
- 32643 41a6 91       		.byte	0x91
- 32644 41a7 E079     		.sleb128 -800
- 32645 41a9 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 904
-
-
- 32646 41aa 00000000 		.quad	.LBB832
- 32646      00000000 
- 32647 41b2 00000000 		.quad	.LBE832
- 32647      00000000 
- 32648 41ba 34       		.uleb128 0x34
- 32649 41bb 960E0000 		.long	0xe96
- 32650 41bf 03       		.byte	0x3
- 32651 41c0 91       		.byte	0x91
- 32652 41c1 A049     		.sleb128 -7008
- 32653 41c3 00       		.byte	0x0
- 32654 41c4 00       		.byte	0x0
- 32655 41c5 33       		.uleb128 0x33
- 32656 41c6 00000000 		.quad	.LBB833
- 32656      00000000 
- 32657 41ce 00000000 		.quad	.LBE833
- 32657      00000000 
- 32658 41d6 34       		.uleb128 0x34
- 32659 41d7 440C0000 		.long	0xc44
- 32660 41db 03       		.byte	0x3
- 32661 41dc 91       		.byte	0x91
- 32662 41dd C047     		.sleb128 -7232
- 32663 41df 00       		.byte	0x0
- 32664 41e0 00       		.byte	0x0
- 32665 41e1 00       		.byte	0x0
- 32666 41e2 31       		.uleb128 0x31
- 32667 41e3 A30E0000 		.long	0xea3
- 32668 41e7 00000000 		.quad	.LBB834
- 32668      00000000 
- 32669 41ef 00000000 		.quad	.LBE834
- 32669      00000000 
- 32670 41f7 02       		.byte	0x2
- 32671 41f8 D806     		.value	0x6d8
- 32672 41fa E3420000 		.long	0x42e3
- 32673 41fe 32       		.uleb128 0x32
- 32674 41ff B50E0000 		.long	0xeb5
- 32675 4203 03       		.byte	0x3
- 32676 4204 91       		.byte	0x91
- 32677 4205 F079     		.sleb128 -784
- 32678 4207 33       		.uleb128 0x33
- 32679 4208 00000000 		.quad	.LBB835
- 32679      00000000 
- 32680 4210 00000000 		.quad	.LBE835
- 32680      00000000 
- 32681 4218 34       		.uleb128 0x34
- 32682 4219 C10E0000 		.long	0xec1
- 32683 421d 04       		.byte	0x4
- 32684 421e 76       		.byte	0x76
- 32685 421f E0B47F   		.sleb128 -9632
- 32686 4222 31       		.uleb128 0x31
- 32687 4223 CE0E0000 		.long	0xece
- 32688 4227 00000000 		.quad	.LBB836
- 32688      00000000 
- 32689 422f 00000000 		.quad	.LBE836
- 32689      00000000 
- 32690 4237 02       		.byte	0x2
- 32691 4238 1F06     		.value	0x61f
- 32692 423a 63420000 		.long	0x4263
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 905
-
-
- 32693 423e 32       		.uleb128 0x32
- 32694 423f E00E0000 		.long	0xee0
- 32695 4243 03       		.byte	0x3
- 32696 4244 91       		.byte	0x91
- 32697 4245 807A     		.sleb128 -768
- 32698 4247 33       		.uleb128 0x33
- 32699 4248 00000000 		.quad	.LBB837
- 32699      00000000 
- 32700 4250 00000000 		.quad	.LBE837
- 32700      00000000 
- 32701 4258 34       		.uleb128 0x34
- 32702 4259 EC0E0000 		.long	0xeec
- 32703 425d 03       		.byte	0x3
- 32704 425e 91       		.byte	0x91
- 32705 425f B049     		.sleb128 -6992
- 32706 4261 00       		.byte	0x0
- 32707 4262 00       		.byte	0x0
- 32708 4263 31       		.uleb128 0x31
- 32709 4264 CE0E0000 		.long	0xece
- 32710 4268 00000000 		.quad	.LBB838
- 32710      00000000 
- 32711 4270 00000000 		.quad	.LBE838
- 32711      00000000 
- 32712 4278 02       		.byte	0x2
- 32713 4279 2006     		.value	0x620
- 32714 427b A4420000 		.long	0x42a4
- 32715 427f 32       		.uleb128 0x32
- 32716 4280 E00E0000 		.long	0xee0
- 32717 4284 03       		.byte	0x3
- 32718 4285 91       		.byte	0x91
- 32719 4286 907A     		.sleb128 -752
- 32720 4288 33       		.uleb128 0x33
- 32721 4289 00000000 		.quad	.LBB839
- 32721      00000000 
- 32722 4291 00000000 		.quad	.LBE839
- 32722      00000000 
- 32723 4299 34       		.uleb128 0x34
- 32724 429a EC0E0000 		.long	0xeec
- 32725 429e 03       		.byte	0x3
- 32726 429f 91       		.byte	0x91
- 32727 42a0 C049     		.sleb128 -6976
- 32728 42a2 00       		.byte	0x0
- 32729 42a3 00       		.byte	0x0
- 32730 42a4 35       		.uleb128 0x35
- 32731 42a5 CE0E0000 		.long	0xece
- 32732 42a9 00000000 		.quad	.LBB840
- 32732      00000000 
- 32733 42b1 00000000 		.quad	.LBE840
- 32733      00000000 
- 32734 42b9 02       		.byte	0x2
- 32735 42ba 2106     		.value	0x621
- 32736 42bc 32       		.uleb128 0x32
- 32737 42bd E00E0000 		.long	0xee0
- 32738 42c1 03       		.byte	0x3
- 32739 42c2 91       		.byte	0x91
- 32740 42c3 A07A     		.sleb128 -736
- 32741 42c5 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 906
-
-
- 32742 42c6 00000000 		.quad	.LBB841
- 32742      00000000 
- 32743 42ce 00000000 		.quad	.LBE841
- 32743      00000000 
- 32744 42d6 34       		.uleb128 0x34
- 32745 42d7 EC0E0000 		.long	0xeec
- 32746 42db 03       		.byte	0x3
- 32747 42dc 91       		.byte	0x91
- 32748 42dd D049     		.sleb128 -6960
- 32749 42df 00       		.byte	0x0
- 32750 42e0 00       		.byte	0x0
- 32751 42e1 00       		.byte	0x0
- 32752 42e2 00       		.byte	0x0
- 32753 42e3 31       		.uleb128 0x31
- 32754 42e4 D10B0000 		.long	0xbd1
- 32755 42e8 00000000 		.quad	.LBB842
- 32755      00000000 
- 32756 42f0 00000000 		.quad	.LBE842
- 32756      00000000 
- 32757 42f8 02       		.byte	0x2
- 32758 42f9 D906     		.value	0x6d9
- 32759 42fb 8B470000 		.long	0x478b
- 32760 42ff 32       		.uleb128 0x32
- 32761 4300 EF0B0000 		.long	0xbef
- 32762 4304 03       		.byte	0x3
- 32763 4305 91       		.byte	0x91
- 32764 4306 BC7A     		.sleb128 -708
- 32765 4308 32       		.uleb128 0x32
- 32766 4309 E30B0000 		.long	0xbe3
- 32767 430d 03       		.byte	0x3
- 32768 430e 91       		.byte	0x91
- 32769 430f C07A     		.sleb128 -704
- 32770 4311 33       		.uleb128 0x33
- 32771 4312 00000000 		.quad	.LBB843
- 32771      00000000 
- 32772 431a 00000000 		.quad	.LBE843
- 32772      00000000 
- 32773 4322 34       		.uleb128 0x34
- 32774 4323 FB0B0000 		.long	0xbfb
- 32775 4327 04       		.byte	0x4
- 32776 4328 76       		.byte	0x76
- 32777 4329 80B57F   		.sleb128 -9600
- 32778 432c 34       		.uleb128 0x34
- 32779 432d 070C0000 		.long	0xc07
- 32780 4331 04       		.byte	0x4
- 32781 4332 76       		.byte	0x76
- 32782 4333 F0B47F   		.sleb128 -9616
- 32783 4336 31       		.uleb128 0x31
- 32784 4337 500C0000 		.long	0xc50
- 32785 433b 00000000 		.quad	.LBB844
- 32785      00000000 
- 32786 4343 00000000 		.quad	.LBE844
- 32786      00000000 
- 32787 434b 02       		.byte	0x2
- 32788 434c 9106     		.value	0x691
- 32789 434e 89430000 		.long	0x4389
- 32790 4352 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 907
-
-
- 32791 4353 7A0C0000 		.long	0xc7a
- 32792 4357 03       		.byte	0x3
- 32793 4358 91       		.byte	0x91
- 32794 4359 D87A     		.sleb128 -680
- 32795 435b 32       		.uleb128 0x32
- 32796 435c 6E0C0000 		.long	0xc6e
- 32797 4360 03       		.byte	0x3
- 32798 4361 91       		.byte	0x91
- 32799 4362 DC7A     		.sleb128 -676
- 32800 4364 32       		.uleb128 0x32
- 32801 4365 620C0000 		.long	0xc62
- 32802 4369 03       		.byte	0x3
- 32803 436a 91       		.byte	0x91
- 32804 436b E07A     		.sleb128 -672
- 32805 436d 33       		.uleb128 0x33
- 32806 436e 00000000 		.quad	.LBB845
- 32806      00000000 
- 32807 4376 00000000 		.quad	.LBE845
- 32807      00000000 
- 32808 437e 34       		.uleb128 0x34
- 32809 437f 860C0000 		.long	0xc86
- 32810 4383 03       		.byte	0x3
- 32811 4384 91       		.byte	0x91
- 32812 4385 A04A     		.sleb128 -6880
- 32813 4387 00       		.byte	0x0
- 32814 4388 00       		.byte	0x0
- 32815 4389 31       		.uleb128 0x31
- 32816 438a 910C0000 		.long	0xc91
- 32817 438e 00000000 		.quad	.LBB846
- 32817      00000000 
- 32818 4396 00000000 		.quad	.LBE846
- 32818      00000000 
- 32819 439e 02       		.byte	0x2
- 32820 439f 9206     		.value	0x692
- 32821 43a1 F9450000 		.long	0x45f9
- 32822 43a5 32       		.uleb128 0x32
- 32823 43a6 A30C0000 		.long	0xca3
- 32824 43aa 03       		.byte	0x3
- 32825 43ab 91       		.byte	0x91
- 32826 43ac F07A     		.sleb128 -656
- 32827 43ae 35       		.uleb128 0x35
- 32828 43af B00C0000 		.long	0xcb0
- 32829 43b3 00000000 		.quad	.LBB848
- 32829      00000000 
- 32830 43bb 00000000 		.quad	.LBE848
- 32830      00000000 
- 32831 43c3 02       		.byte	0x2
- 32832 43c4 7D03     		.value	0x37d
- 32833 43c6 32       		.uleb128 0x32
- 32834 43c7 CE0C0000 		.long	0xcce
- 32835 43cb 03       		.byte	0x3
- 32836 43cc 91       		.byte	0x91
- 32837 43cd 887B     		.sleb128 -632
- 32838 43cf 32       		.uleb128 0x32
- 32839 43d0 C20C0000 		.long	0xcc2
- 32840 43d4 03       		.byte	0x3
- 32841 43d5 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 908
-
-
- 32842 43d6 907B     		.sleb128 -624
- 32843 43d8 33       		.uleb128 0x33
- 32844 43d9 00000000 		.quad	.LBB849
- 32844      00000000 
- 32845 43e1 00000000 		.quad	.LBE849
- 32845      00000000 
- 32846 43e9 34       		.uleb128 0x34
- 32847 43ea DA0C0000 		.long	0xcda
- 32848 43ee 03       		.byte	0x3
- 32849 43ef 91       		.byte	0x91
- 32850 43f0 E07B     		.sleb128 -544
- 32851 43f2 34       		.uleb128 0x34
- 32852 43f3 E50C0000 		.long	0xce5
- 32853 43f7 03       		.byte	0x3
- 32854 43f8 91       		.byte	0x91
- 32855 43f9 D07B     		.sleb128 -560
- 32856 43fb 34       		.uleb128 0x34
- 32857 43fc F00C0000 		.long	0xcf0
- 32858 4400 03       		.byte	0x3
- 32859 4401 91       		.byte	0x91
- 32860 4402 C07B     		.sleb128 -576
- 32861 4404 34       		.uleb128 0x34
- 32862 4405 FC0C0000 		.long	0xcfc
- 32863 4409 03       		.byte	0x3
- 32864 440a 91       		.byte	0x91
- 32865 440b B07B     		.sleb128 -592
- 32866 440d 34       		.uleb128 0x34
- 32867 440e 080D0000 		.long	0xd08
- 32868 4412 03       		.byte	0x3
- 32869 4413 91       		.byte	0x91
- 32870 4414 AC7B     		.sleb128 -596
- 32871 4416 31       		.uleb128 0x31
- 32872 4417 1F0D0000 		.long	0xd1f
- 32873 441b 00000000 		.quad	.LBB850
- 32873      00000000 
- 32874 4423 00000000 		.quad	.LBE850
- 32874      00000000 
- 32875 442b 02       		.byte	0x2
- 32876 442c 5603     		.value	0x356
- 32877 442e 45440000 		.long	0x4445
- 32878 4432 32       		.uleb128 0x32
- 32879 4433 3A0D0000 		.long	0xd3a
- 32880 4437 03       		.byte	0x3
- 32881 4438 91       		.byte	0x91
- 32882 4439 F07B     		.sleb128 -528
- 32883 443b 32       		.uleb128 0x32
- 32884 443c 300D0000 		.long	0xd30
- 32885 4440 03       		.byte	0x3
- 32886 4441 91       		.byte	0x91
- 32887 4442 807C     		.sleb128 -512
- 32888 4444 00       		.byte	0x0
- 32889 4445 31       		.uleb128 0x31
- 32890 4446 450D0000 		.long	0xd45
- 32891 444a 00000000 		.quad	.LBB852
- 32891      00000000 
- 32892 4452 00000000 		.quad	.LBE852
- 32892      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 909
-
-
- 32893 445a 02       		.byte	0x2
- 32894 445b 5E03     		.value	0x35e
- 32895 445d 74440000 		.long	0x4474
- 32896 4461 32       		.uleb128 0x32
- 32897 4462 620D0000 		.long	0xd62
- 32898 4466 03       		.byte	0x3
- 32899 4467 91       		.byte	0x91
- 32900 4468 907C     		.sleb128 -496
- 32901 446a 32       		.uleb128 0x32
- 32902 446b 570D0000 		.long	0xd57
- 32903 446f 03       		.byte	0x3
- 32904 4470 91       		.byte	0x91
- 32905 4471 A07C     		.sleb128 -480
- 32906 4473 00       		.byte	0x0
- 32907 4474 31       		.uleb128 0x31
- 32908 4475 6E0D0000 		.long	0xd6e
- 32909 4479 00000000 		.quad	.LBB854
- 32909      00000000 
- 32910 4481 00000000 		.quad	.LBE854
- 32910      00000000 
- 32911 4489 02       		.byte	0x2
- 32912 448a 6403     		.value	0x364
- 32913 448c D9440000 		.long	0x44d9
- 32914 4490 32       		.uleb128 0x32
- 32915 4491 8C0D0000 		.long	0xd8c
- 32916 4495 03       		.byte	0x3
- 32917 4496 91       		.byte	0x91
- 32918 4497 B07C     		.sleb128 -464
- 32919 4499 32       		.uleb128 0x32
- 32920 449a 800D0000 		.long	0xd80
- 32921 449e 03       		.byte	0x3
- 32922 449f 91       		.byte	0x91
- 32923 44a0 C07C     		.sleb128 -448
- 32924 44a2 33       		.uleb128 0x33
- 32925 44a3 00000000 		.quad	.LBB855
- 32925      00000000 
- 32926 44ab 00000000 		.quad	.LBE855
- 32926      00000000 
- 32927 44b3 34       		.uleb128 0x34
- 32928 44b4 980D0000 		.long	0xd98
- 32929 44b8 03       		.byte	0x3
- 32930 44b9 91       		.byte	0x91
- 32931 44ba D04A     		.sleb128 -6832
- 32932 44bc 34       		.uleb128 0x34
- 32933 44bd A40D0000 		.long	0xda4
- 32934 44c1 03       		.byte	0x3
- 32935 44c2 91       		.byte	0x91
- 32936 44c3 C04A     		.sleb128 -6848
- 32937 44c5 34       		.uleb128 0x34
- 32938 44c6 AF0D0000 		.long	0xdaf
- 32939 44ca 03       		.byte	0x3
- 32940 44cb 91       		.byte	0x91
- 32941 44cc B04A     		.sleb128 -6864
- 32942 44ce 34       		.uleb128 0x34
- 32943 44cf BB0D0000 		.long	0xdbb
- 32944 44d3 03       		.byte	0x3
- 32945 44d4 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 910
-
-
- 32946 44d5 DC7C     		.sleb128 -420
- 32947 44d7 00       		.byte	0x0
- 32948 44d8 00       		.byte	0x0
- 32949 44d9 31       		.uleb128 0x31
- 32950 44da C70D0000 		.long	0xdc7
- 32951 44de 00000000 		.quad	.LBB856
- 32951      00000000 
- 32952 44e6 00000000 		.quad	.LBE856
- 32952      00000000 
- 32953 44ee 02       		.byte	0x2
- 32954 44ef 6603     		.value	0x366
- 32955 44f1 08450000 		.long	0x4508
- 32956 44f5 32       		.uleb128 0x32
- 32957 44f6 E20D0000 		.long	0xde2
- 32958 44fa 03       		.byte	0x3
- 32959 44fb 91       		.byte	0x91
- 32960 44fc E07C     		.sleb128 -416
- 32961 44fe 32       		.uleb128 0x32
- 32962 44ff D80D0000 		.long	0xdd8
- 32963 4503 03       		.byte	0x3
- 32964 4504 91       		.byte	0x91
- 32965 4505 F07C     		.sleb128 -400
- 32966 4507 00       		.byte	0x0
- 32967 4508 31       		.uleb128 0x31
- 32968 4509 6E0D0000 		.long	0xd6e
- 32969 450d 00000000 		.quad	.LBB858
- 32969      00000000 
- 32970 4515 00000000 		.quad	.LBE858
- 32970      00000000 
- 32971 451d 02       		.byte	0x2
- 32972 451e 6803     		.value	0x368
- 32973 4520 6D450000 		.long	0x456d
- 32974 4524 32       		.uleb128 0x32
- 32975 4525 8C0D0000 		.long	0xd8c
- 32976 4529 03       		.byte	0x3
- 32977 452a 91       		.byte	0x91
- 32978 452b 807D     		.sleb128 -384
- 32979 452d 32       		.uleb128 0x32
- 32980 452e 800D0000 		.long	0xd80
- 32981 4532 03       		.byte	0x3
- 32982 4533 91       		.byte	0x91
- 32983 4534 907D     		.sleb128 -368
- 32984 4536 33       		.uleb128 0x33
- 32985 4537 00000000 		.quad	.LBB859
- 32985      00000000 
- 32986 453f 00000000 		.quad	.LBE859
- 32986      00000000 
- 32987 4547 34       		.uleb128 0x34
- 32988 4548 980D0000 		.long	0xd98
- 32989 454c 03       		.byte	0x3
- 32990 454d 91       		.byte	0x91
- 32991 454e 804B     		.sleb128 -6784
- 32992 4550 34       		.uleb128 0x34
- 32993 4551 A40D0000 		.long	0xda4
- 32994 4555 03       		.byte	0x3
- 32995 4556 91       		.byte	0x91
- 32996 4557 F04A     		.sleb128 -6800
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 911
-
-
- 32997 4559 34       		.uleb128 0x34
- 32998 455a AF0D0000 		.long	0xdaf
- 32999 455e 03       		.byte	0x3
- 33000 455f 91       		.byte	0x91
- 33001 4560 E04A     		.sleb128 -6816
- 33002 4562 34       		.uleb128 0x34
- 33003 4563 BB0D0000 		.long	0xdbb
- 33004 4567 03       		.byte	0x3
- 33005 4568 91       		.byte	0x91
- 33006 4569 AC7D     		.sleb128 -340
- 33007 456b 00       		.byte	0x0
- 33008 456c 00       		.byte	0x0
- 33009 456d 31       		.uleb128 0x31
- 33010 456e C70D0000 		.long	0xdc7
- 33011 4572 00000000 		.quad	.LBB860
- 33011      00000000 
- 33012 457a 00000000 		.quad	.LBE860
- 33012      00000000 
- 33013 4582 02       		.byte	0x2
- 33014 4583 6A03     		.value	0x36a
- 33015 4585 9C450000 		.long	0x459c
- 33016 4589 32       		.uleb128 0x32
- 33017 458a E20D0000 		.long	0xde2
- 33018 458e 03       		.byte	0x3
- 33019 458f 91       		.byte	0x91
- 33020 4590 B07D     		.sleb128 -336
- 33021 4592 32       		.uleb128 0x32
- 33022 4593 D80D0000 		.long	0xdd8
- 33023 4597 03       		.byte	0x3
- 33024 4598 91       		.byte	0x91
- 33025 4599 C07D     		.sleb128 -320
- 33026 459b 00       		.byte	0x0
- 33027 459c 31       		.uleb128 0x31
- 33028 459d ED0D0000 		.long	0xded
- 33029 45a1 00000000 		.quad	.LBB862
- 33029      00000000 
- 33030 45a9 00000000 		.quad	.LBE862
- 33030      00000000 
- 33031 45b1 02       		.byte	0x2
- 33032 45b2 6C03     		.value	0x36c
- 33033 45b4 CB450000 		.long	0x45cb
- 33034 45b8 32       		.uleb128 0x32
- 33035 45b9 0A0E0000 		.long	0xe0a
- 33036 45bd 03       		.byte	0x3
- 33037 45be 91       		.byte	0x91
- 33038 45bf D07D     		.sleb128 -304
- 33039 45c1 32       		.uleb128 0x32
- 33040 45c2 FF0D0000 		.long	0xdff
- 33041 45c6 03       		.byte	0x3
- 33042 45c7 91       		.byte	0x91
- 33043 45c8 E07D     		.sleb128 -288
- 33044 45ca 00       		.byte	0x0
- 33045 45cb 35       		.uleb128 0x35
- 33046 45cc 1F0D0000 		.long	0xd1f
- 33047 45d0 00000000 		.quad	.LBB864
- 33047      00000000 
- 33048 45d8 00000000 		.quad	.LBE864
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 912
-
-
- 33048      00000000 
- 33049 45e0 02       		.byte	0x2
- 33050 45e1 6E03     		.value	0x36e
- 33051 45e3 32       		.uleb128 0x32
- 33052 45e4 3A0D0000 		.long	0xd3a
- 33053 45e8 03       		.byte	0x3
- 33054 45e9 91       		.byte	0x91
- 33055 45ea F07D     		.sleb128 -272
- 33056 45ec 32       		.uleb128 0x32
- 33057 45ed 300D0000 		.long	0xd30
- 33058 45f1 03       		.byte	0x3
- 33059 45f2 91       		.byte	0x91
- 33060 45f3 807E     		.sleb128 -256
- 33061 45f5 00       		.byte	0x0
- 33062 45f6 00       		.byte	0x0
- 33063 45f7 00       		.byte	0x0
- 33064 45f8 00       		.byte	0x0
- 33065 45f9 36       		.uleb128 0x36
- 33066 45fa 00000000 		.quad	.LBB866
- 33066      00000000 
- 33067 4602 00000000 		.quad	.LBE866
- 33067      00000000 
- 33068 460a 18460000 		.long	0x4618
- 33069 460e 34       		.uleb128 0x34
- 33070 460f 180C0000 		.long	0xc18
- 33071 4613 03       		.byte	0x3
- 33072 4614 91       		.byte	0x91
- 33073 4615 904A     		.sleb128 -6896
- 33074 4617 00       		.byte	0x0
- 33075 4618 31       		.uleb128 0x31
- 33076 4619 160E0000 		.long	0xe16
- 33077 461d 00000000 		.quad	.LBB867
- 33077      00000000 
- 33078 4625 00000000 		.quad	.LBE867
- 33078      00000000 
- 33079 462d 02       		.byte	0x2
- 33080 462e 9406     		.value	0x694
- 33081 4630 C0460000 		.long	0x46c0
- 33082 4634 32       		.uleb128 0x32
- 33083 4635 280E0000 		.long	0xe28
- 33084 4639 03       		.byte	0x3
- 33085 463a 91       		.byte	0x91
- 33086 463b 907E     		.sleb128 -240
- 33087 463d 33       		.uleb128 0x33
- 33088 463e 00000000 		.quad	.LBB868
- 33088      00000000 
- 33089 4646 00000000 		.quad	.LBE868
- 33089      00000000 
- 33090 464e 34       		.uleb128 0x34
- 33091 464f 340E0000 		.long	0xe34
- 33092 4653 09       		.byte	0x9
- 33093 4654 03       		.byte	0x3
- 33094 4655 00000000 		.quad	ShiftRowTable.6768
- 33094      00000000 
- 33095 465d 35       		.uleb128 0x35
- 33096 465e 6E0D0000 		.long	0xd6e
- 33097 4662 00000000 		.quad	.LBB869
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 913
-
-
- 33097      00000000 
- 33098 466a 00000000 		.quad	.LBE869
- 33098      00000000 
- 33099 4672 02       		.byte	0x2
- 33100 4673 9B02     		.value	0x29b
- 33101 4675 32       		.uleb128 0x32
- 33102 4676 8C0D0000 		.long	0xd8c
- 33103 467a 03       		.byte	0x3
- 33104 467b 91       		.byte	0x91
- 33105 467c A07E     		.sleb128 -224
- 33106 467e 32       		.uleb128 0x32
- 33107 467f 800D0000 		.long	0xd80
- 33108 4683 03       		.byte	0x3
- 33109 4684 91       		.byte	0x91
- 33110 4685 B07E     		.sleb128 -208
- 33111 4687 33       		.uleb128 0x33
- 33112 4688 00000000 		.quad	.LBB870
- 33112      00000000 
- 33113 4690 00000000 		.quad	.LBE870
- 33113      00000000 
- 33114 4698 34       		.uleb128 0x34
- 33115 4699 980D0000 		.long	0xd98
- 33116 469d 03       		.byte	0x3
- 33117 469e 91       		.byte	0x91
- 33118 469f B04B     		.sleb128 -6736
- 33119 46a1 34       		.uleb128 0x34
- 33120 46a2 A40D0000 		.long	0xda4
- 33121 46a6 03       		.byte	0x3
- 33122 46a7 91       		.byte	0x91
- 33123 46a8 A04B     		.sleb128 -6752
- 33124 46aa 34       		.uleb128 0x34
- 33125 46ab AF0D0000 		.long	0xdaf
- 33126 46af 03       		.byte	0x3
- 33127 46b0 91       		.byte	0x91
- 33128 46b1 904B     		.sleb128 -6768
- 33129 46b3 34       		.uleb128 0x34
- 33130 46b4 BB0D0000 		.long	0xdbb
- 33131 46b8 03       		.byte	0x3
- 33132 46b9 91       		.byte	0x91
- 33133 46ba CC7E     		.sleb128 -180
- 33134 46bc 00       		.byte	0x0
- 33135 46bd 00       		.byte	0x0
- 33136 46be 00       		.byte	0x0
- 33137 46bf 00       		.byte	0x0
- 33138 46c0 36       		.uleb128 0x36
- 33139 46c1 00000000 		.quad	.LBB871
- 33139      00000000 
- 33140 46c9 00000000 		.quad	.LBE871
- 33140      00000000 
- 33141 46d1 DF460000 		.long	0x46df
- 33142 46d5 34       		.uleb128 0x34
- 33143 46d6 280C0000 		.long	0xc28
- 33144 46da 03       		.byte	0x3
- 33145 46db 91       		.byte	0x91
- 33146 46dc 804A     		.sleb128 -6912
- 33147 46de 00       		.byte	0x0
- 33148 46df 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 914
-
-
- 33149 46e0 520E0000 		.long	0xe52
- 33150 46e4 00000000 		.quad	.LBB872
- 33150      00000000 
- 33151 46ec 00000000 		.quad	.LBE872
- 33151      00000000 
- 33152 46f4 02       		.byte	0x2
- 33153 46f5 9606     		.value	0x696
- 33154 46f7 0E470000 		.long	0x470e
- 33155 46fb 32       		.uleb128 0x32
- 33156 46fc 6D0E0000 		.long	0xe6d
- 33157 4700 03       		.byte	0x3
- 33158 4701 91       		.byte	0x91
- 33159 4702 D07E     		.sleb128 -176
- 33160 4704 32       		.uleb128 0x32
- 33161 4705 630E0000 		.long	0xe63
- 33162 4709 03       		.byte	0x3
- 33163 470a 91       		.byte	0x91
- 33164 470b E07E     		.sleb128 -160
- 33165 470d 00       		.byte	0x0
- 33166 470e 36       		.uleb128 0x36
- 33167 470f 00000000 		.quad	.LBB874
- 33167      00000000 
- 33168 4717 00000000 		.quad	.LBE874
- 33168      00000000 
- 33169 471f 2D470000 		.long	0x472d
- 33170 4723 34       		.uleb128 0x34
- 33171 4724 380C0000 		.long	0xc38
- 33172 4728 03       		.byte	0x3
- 33173 4729 91       		.byte	0x91
- 33174 472a F049     		.sleb128 -6928
- 33175 472c 00       		.byte	0x0
- 33176 472d 31       		.uleb128 0x31
- 33177 472e 780E0000 		.long	0xe78
- 33178 4732 00000000 		.quad	.LBB875
- 33178      00000000 
- 33179 473a 00000000 		.quad	.LBE875
- 33179      00000000 
- 33180 4742 02       		.byte	0x2
- 33181 4743 9806     		.value	0x698
- 33182 4745 6E470000 		.long	0x476e
- 33183 4749 32       		.uleb128 0x32
- 33184 474a 8A0E0000 		.long	0xe8a
- 33185 474e 03       		.byte	0x3
- 33186 474f 91       		.byte	0x91
- 33187 4750 F07E     		.sleb128 -144
- 33188 4752 33       		.uleb128 0x33
- 33189 4753 00000000 		.quad	.LBB876
- 33189      00000000 
- 33190 475b 00000000 		.quad	.LBE876
- 33190      00000000 
- 33191 4763 34       		.uleb128 0x34
- 33192 4764 960E0000 		.long	0xe96
- 33193 4768 03       		.byte	0x3
- 33194 4769 91       		.byte	0x91
- 33195 476a C04B     		.sleb128 -6720
- 33196 476c 00       		.byte	0x0
- 33197 476d 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 915
-
-
- 33198 476e 33       		.uleb128 0x33
- 33199 476f 00000000 		.quad	.LBB877
- 33199      00000000 
- 33200 4777 00000000 		.quad	.LBE877
- 33200      00000000 
- 33201 477f 34       		.uleb128 0x34
- 33202 4780 440C0000 		.long	0xc44
- 33203 4784 03       		.byte	0x3
- 33204 4785 91       		.byte	0x91
- 33205 4786 E049     		.sleb128 -6944
- 33206 4788 00       		.byte	0x0
- 33207 4789 00       		.byte	0x0
- 33208 478a 00       		.byte	0x0
- 33209 478b 35       		.uleb128 0x35
- 33210 478c A30E0000 		.long	0xea3
- 33211 4790 00000000 		.quad	.LBB878
- 33211      00000000 
- 33212 4798 00000000 		.quad	.LBE878
- 33212      00000000 
- 33213 47a0 02       		.byte	0x2
- 33214 47a1 D906     		.value	0x6d9
- 33215 47a3 32       		.uleb128 0x32
- 33216 47a4 B50E0000 		.long	0xeb5
- 33217 47a8 03       		.byte	0x3
- 33218 47a9 91       		.byte	0x91
- 33219 47aa 807F     		.sleb128 -128
- 33220 47ac 33       		.uleb128 0x33
- 33221 47ad 00000000 		.quad	.LBB879
- 33221      00000000 
- 33222 47b5 00000000 		.quad	.LBE879
- 33222      00000000 
- 33223 47bd 34       		.uleb128 0x34
- 33224 47be C10E0000 		.long	0xec1
- 33225 47c2 04       		.byte	0x4
- 33226 47c3 76       		.byte	0x76
- 33227 47c4 A0B57F   		.sleb128 -9568
- 33228 47c7 31       		.uleb128 0x31
- 33229 47c8 CE0E0000 		.long	0xece
- 33230 47cc 00000000 		.quad	.LBB880
- 33230      00000000 
- 33231 47d4 00000000 		.quad	.LBE880
- 33231      00000000 
- 33232 47dc 02       		.byte	0x2
- 33233 47dd 1F06     		.value	0x61f
- 33234 47df 08480000 		.long	0x4808
- 33235 47e3 32       		.uleb128 0x32
- 33236 47e4 E00E0000 		.long	0xee0
- 33237 47e8 03       		.byte	0x3
- 33238 47e9 91       		.byte	0x91
- 33239 47ea 907F     		.sleb128 -112
- 33240 47ec 33       		.uleb128 0x33
- 33241 47ed 00000000 		.quad	.LBB881
- 33241      00000000 
- 33242 47f5 00000000 		.quad	.LBE881
- 33242      00000000 
- 33243 47fd 34       		.uleb128 0x34
- 33244 47fe EC0E0000 		.long	0xeec
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 916
-
-
- 33245 4802 03       		.byte	0x3
- 33246 4803 91       		.byte	0x91
- 33247 4804 D04B     		.sleb128 -6704
- 33248 4806 00       		.byte	0x0
- 33249 4807 00       		.byte	0x0
- 33250 4808 31       		.uleb128 0x31
- 33251 4809 CE0E0000 		.long	0xece
- 33252 480d 00000000 		.quad	.LBB882
- 33252      00000000 
- 33253 4815 00000000 		.quad	.LBE882
- 33253      00000000 
- 33254 481d 02       		.byte	0x2
- 33255 481e 2006     		.value	0x620
- 33256 4820 49480000 		.long	0x4849
- 33257 4824 32       		.uleb128 0x32
- 33258 4825 E00E0000 		.long	0xee0
- 33259 4829 03       		.byte	0x3
- 33260 482a 91       		.byte	0x91
- 33261 482b A07F     		.sleb128 -96
- 33262 482d 33       		.uleb128 0x33
- 33263 482e 00000000 		.quad	.LBB883
- 33263      00000000 
- 33264 4836 00000000 		.quad	.LBE883
- 33264      00000000 
- 33265 483e 34       		.uleb128 0x34
- 33266 483f EC0E0000 		.long	0xeec
- 33267 4843 03       		.byte	0x3
- 33268 4844 91       		.byte	0x91
- 33269 4845 E04B     		.sleb128 -6688
- 33270 4847 00       		.byte	0x0
- 33271 4848 00       		.byte	0x0
- 33272 4849 35       		.uleb128 0x35
- 33273 484a CE0E0000 		.long	0xece
- 33274 484e 00000000 		.quad	.LBB884
- 33274      00000000 
- 33275 4856 00000000 		.quad	.LBE884
- 33275      00000000 
- 33276 485e 02       		.byte	0x2
- 33277 485f 2106     		.value	0x621
- 33278 4861 32       		.uleb128 0x32
- 33279 4862 E00E0000 		.long	0xee0
- 33280 4866 03       		.byte	0x3
- 33281 4867 91       		.byte	0x91
- 33282 4868 B07F     		.sleb128 -80
- 33283 486a 33       		.uleb128 0x33
- 33284 486b 00000000 		.quad	.LBB885
- 33284      00000000 
- 33285 4873 00000000 		.quad	.LBE885
- 33285      00000000 
- 33286 487b 34       		.uleb128 0x34
- 33287 487c EC0E0000 		.long	0xeec
- 33288 4880 03       		.byte	0x3
- 33289 4881 91       		.byte	0x91
- 33290 4882 F04B     		.sleb128 -6672
- 33291 4884 00       		.byte	0x0
- 33292 4885 00       		.byte	0x0
- 33293 4886 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 917
-
-
- 33294 4887 00       		.byte	0x0
- 33295 4888 00       		.byte	0x0
- 33296 4889 07       		.uleb128 0x7
- 33297 488a 08       		.byte	0x8
- 33298 488b B1010000 		.long	0x1b1
- 33299 488f 07       		.uleb128 0x7
- 33300 4890 08       		.byte	0x8
- 33301 4891 95480000 		.long	0x4895
- 33302 4895 06       		.uleb128 0x6
- 33303 4896 FC030000 		.long	0x3fc
- 33304 489a 25       		.uleb128 0x25
- 33305 489b 00000000 		.long	.LASF344
- 33306 489f 02       		.byte	0x2
- 33307 48a0 1105     		.value	0x511
- 33308 48a2 01       		.byte	0x1
- 33309 48a3 B1010000 		.long	0x1b1
- 33310 48a7 03       		.byte	0x3
- 33311 48a8 C5480000 		.long	0x48c5
- 33312 48ac 26       		.uleb128 0x26
- 33313 48ad 00000000 		.long	.LASF66
- 33314 48b1 02       		.byte	0x2
- 33315 48b2 1105     		.value	0x511
- 33316 48b4 B1010000 		.long	0x1b1
- 33317 48b8 27       		.uleb128 0x27
- 33318 48b9 00000000 		.long	.LASF339
- 33319 48bd 02       		.byte	0x2
- 33320 48be 1705     		.value	0x517
- 33321 48c0 27050000 		.long	0x527
- 33322 48c4 00       		.byte	0x0
- 33323 48c5 25       		.uleb128 0x25
- 33324 48c6 00000000 		.long	.LASF345
- 33325 48ca 02       		.byte	0x2
- 33326 48cb 5206     		.value	0x652
- 33327 48cd 01       		.byte	0x1
- 33328 48ce B1010000 		.long	0x1b1
- 33329 48d2 03       		.byte	0x3
- 33330 48d3 12490000 		.long	0x4912
- 33331 48d7 26       		.uleb128 0x26
- 33332 48d8 00000000 		.long	.LASF66
- 33333 48dc 02       		.byte	0x2
- 33334 48dd 5206     		.value	0x652
- 33335 48df B1010000 		.long	0x1b1
- 33336 48e3 26       		.uleb128 0x26
- 33337 48e4 00000000 		.long	.LASF320
- 33338 48e8 02       		.byte	0x2
- 33339 48e9 5206     		.value	0x652
- 33340 48eb A9000000 		.long	0xa9
- 33341 48ef 28       		.uleb128 0x28
- 33342 48f0 7500     		.string	"u"
- 33343 48f2 02       		.byte	0x2
- 33344 48f3 5906     		.value	0x659
- 33345 48f5 27050000 		.long	0x527
- 33346 48f9 27       		.uleb128 0x27
- 33347 48fa 00000000 		.long	.LASF346
- 33348 48fe 02       		.byte	0x2
- 33349 48ff 5A06     		.value	0x65a
- 33350 4901 07040000 		.long	0x407
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 918
-
-
- 33351 4905 27       		.uleb128 0x27
- 33352 4906 00000000 		.long	.LASF339
- 33353 490a 02       		.byte	0x2
- 33354 490b 5B06     		.value	0x65b
- 33355 490d 07040000 		.long	0x407
- 33356 4911 00       		.byte	0x0
- 33357 4912 25       		.uleb128 0x25
- 33358 4913 00000000 		.long	.LASF347
- 33359 4917 02       		.byte	0x2
- 33360 4918 DF02     		.value	0x2df
- 33361 491a 01       		.byte	0x1
- 33362 491b 07040000 		.long	0x407
- 33363 491f 03       		.byte	0x3
- 33364 4920 46490000 		.long	0x4946
- 33365 4924 2B       		.uleb128 0x2b
- 33366 4925 7700     		.string	"w"
- 33367 4927 02       		.byte	0x2
- 33368 4928 DF02     		.value	0x2df
- 33369 492a 07040000 		.long	0x407
- 33370 492e 28       		.uleb128 0x28
- 33371 492f 636F6C00 		.string	"col"
- 33372 4933 02       		.byte	0x2
- 33373 4934 E102     		.value	0x2e1
- 33374 4936 12040000 		.long	0x412
- 33375 493a 28       		.uleb128 0x28
- 33376 493b 697800   		.string	"ix"
- 33377 493e 02       		.byte	0x2
- 33378 493f E202     		.value	0x2e2
- 33379 4941 6D000000 		.long	0x6d
- 33380 4945 00       		.byte	0x0
- 33381 4946 25       		.uleb128 0x25
- 33382 4947 00000000 		.long	.LASF348
- 33383 494b 02       		.byte	0x2
- 33384 494c AA04     		.value	0x4aa
- 33385 494e 01       		.byte	0x1
- 33386 494f 07040000 		.long	0x407
- 33387 4953 03       		.byte	0x3
- 33388 4954 63490000 		.long	0x4963
- 33389 4958 2B       		.uleb128 0x2b
- 33390 4959 7700     		.string	"w"
- 33391 495b 02       		.byte	0x2
- 33392 495c AA04     		.value	0x4aa
- 33393 495e 07040000 		.long	0x407
- 33394 4962 00       		.byte	0x0
- 33395 4963 25       		.uleb128 0x25
- 33396 4964 00000000 		.long	.LASF349
- 33397 4968 02       		.byte	0x2
- 33398 4969 B705     		.value	0x5b7
- 33399 496b 01       		.byte	0x1
- 33400 496c B1010000 		.long	0x1b1
- 33401 4970 03       		.byte	0x3
- 33402 4971 A0490000 		.long	0x49a0
- 33403 4975 2B       		.uleb128 0x2b
- 33404 4976 7700     		.string	"w"
- 33405 4978 02       		.byte	0x2
- 33406 4979 B705     		.value	0x5b7
- 33407 497b B1010000 		.long	0x1b1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 919
-
-
- 33408 497f 2B       		.uleb128 0x2b
- 33409 4980 7800     		.string	"x"
- 33410 4982 02       		.byte	0x2
- 33411 4983 B705     		.value	0x5b7
- 33412 4985 B1010000 		.long	0x1b1
- 33413 4989 28       		.uleb128 0x28
- 33414 498a 777700   		.string	"ww"
- 33415 498d 02       		.byte	0x2
- 33416 498e BC05     		.value	0x5bc
- 33417 4990 27050000 		.long	0x527
- 33418 4994 28       		.uleb128 0x28
- 33419 4995 787800   		.string	"xx"
- 33420 4998 02       		.byte	0x2
- 33421 4999 BD05     		.value	0x5bd
- 33422 499b 27050000 		.long	0x527
- 33423 499f 00       		.byte	0x0
- 33424 49a0 25       		.uleb128 0x25
- 33425 49a1 00000000 		.long	.LASF350
- 33426 49a5 02       		.byte	0x2
- 33427 49a6 D705     		.value	0x5d7
- 33428 49a8 01       		.byte	0x1
- 33429 49a9 B1010000 		.long	0x1b1
- 33430 49ad 03       		.byte	0x3
- 33431 49ae DD490000 		.long	0x49dd
- 33432 49b2 2B       		.uleb128 0x2b
- 33433 49b3 7700     		.string	"w"
- 33434 49b5 02       		.byte	0x2
- 33435 49b6 D705     		.value	0x5d7
- 33436 49b8 B1010000 		.long	0x1b1
- 33437 49bc 2B       		.uleb128 0x2b
- 33438 49bd 7800     		.string	"x"
- 33439 49bf 02       		.byte	0x2
- 33440 49c0 D705     		.value	0x5d7
- 33441 49c2 B1010000 		.long	0x1b1
- 33442 49c6 28       		.uleb128 0x28
- 33443 49c7 777700   		.string	"ww"
- 33444 49ca 02       		.byte	0x2
- 33445 49cb DC05     		.value	0x5dc
- 33446 49cd 27050000 		.long	0x527
- 33447 49d1 28       		.uleb128 0x28
- 33448 49d2 787800   		.string	"xx"
- 33449 49d5 02       		.byte	0x2
- 33450 49d6 DD05     		.value	0x5dd
- 33451 49d8 27050000 		.long	0x527
- 33452 49dc 00       		.byte	0x0
- 33453 49dd 2D       		.uleb128 0x2d
- 33454 49de 00000000 		.long	.LASF352
- 33455 49e2 02       		.byte	0x2
- 33456 49e3 E706     		.value	0x6e7
- 33457 49e5 01       		.byte	0x1
- 33458 49e6 00000000 		.quad	.LFB564
- 33458      00000000 
- 33459 49ee 00000000 		.quad	.LFE564
- 33459      00000000 
- 33460 49f6 00000000 		.long	.LLST2
- 33461 49fa 4E740000 		.long	0x744e
- 33462 49fe 2E       		.uleb128 0x2e
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 920
-
-
- 33463 49ff 00000000 		.long	.LASF64
- 33464 4a03 02       		.byte	0x2
- 33465 4a04 E706     		.value	0x6e7
- 33466 4a06 89480000 		.long	0x4889
- 33467 4a0a 03       		.byte	0x3
- 33468 4a0b 91       		.byte	0x91
- 33469 4a0c F84E     		.sleb128 -6280
- 33470 4a0e 2F       		.uleb128 0x2f
- 33471 4a0f 6B657900 		.string	"key"
- 33472 4a13 02       		.byte	0x2
- 33473 4a14 E706     		.value	0x6e7
- 33474 4a16 8F480000 		.long	0x488f
- 33475 4a1a 03       		.byte	0x3
- 33476 4a1b 91       		.byte	0x91
- 33477 4a1c F04E     		.sleb128 -6288
- 33478 4a1e 37       		.uleb128 0x37
- 33479 4a1f 763000   		.string	"v0"
- 33480 4a22 02       		.byte	0x2
- 33481 4a23 EF06     		.value	0x6ef
- 33482 4a25 B1010000 		.long	0x1b1
- 33483 4a29 03       		.byte	0x3
- 33484 4a2a 76       		.byte	0x76
- 33485 4a2b F04A     		.sleb128 -6800
- 33486 4a2d 37       		.uleb128 0x37
- 33487 4a2e 763100   		.string	"v1"
- 33488 4a31 02       		.byte	0x2
- 33489 4a32 EF06     		.value	0x6ef
- 33490 4a34 B1010000 		.long	0x1b1
- 33491 4a38 03       		.byte	0x3
- 33492 4a39 76       		.byte	0x76
- 33493 4a3a 804B     		.sleb128 -6784
- 33494 4a3c 37       		.uleb128 0x37
- 33495 4a3d 763200   		.string	"v2"
- 33496 4a40 02       		.byte	0x2
- 33497 4a41 EF06     		.value	0x6ef
- 33498 4a43 B1010000 		.long	0x1b1
- 33499 4a47 03       		.byte	0x3
- 33500 4a48 76       		.byte	0x76
- 33501 4a49 904B     		.sleb128 -6768
- 33502 4a4b 37       		.uleb128 0x37
- 33503 4a4c 763300   		.string	"v3"
- 33504 4a4f 02       		.byte	0x2
- 33505 4a50 EF06     		.value	0x6ef
- 33506 4a52 B1010000 		.long	0x1b1
- 33507 4a56 03       		.byte	0x3
- 33508 4a57 76       		.byte	0x76
- 33509 4a58 A04B     		.sleb128 -6752
- 33510 4a5a 37       		.uleb128 0x37
- 33511 4a5b 763400   		.string	"v4"
- 33512 4a5e 02       		.byte	0x2
- 33513 4a5f EF06     		.value	0x6ef
- 33514 4a61 B1010000 		.long	0x1b1
- 33515 4a65 03       		.byte	0x3
- 33516 4a66 76       		.byte	0x76
- 33517 4a67 B04B     		.sleb128 -6736
- 33518 4a69 37       		.uleb128 0x37
- 33519 4a6a 6B00     		.string	"k"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 921
-
-
- 33520 4a6c 02       		.byte	0x2
- 33521 4a6d F006     		.value	0x6f0
- 33522 4a6f B1010000 		.long	0x1b1
- 33523 4a73 03       		.byte	0x3
- 33524 4a74 76       		.byte	0x76
- 33525 4a75 C04B     		.sleb128 -6720
- 33526 4a77 31       		.uleb128 0x31
- 33527 4a78 AB0B0000 		.long	0xbab
- 33528 4a7c 00000000 		.quad	.LBB1210
- 33528      00000000 
- 33529 4a84 00000000 		.quad	.LBE1210
- 33529      00000000 
- 33530 4a8c 02       		.byte	0x2
- 33531 4a8d F306     		.value	0x6f3
- 33532 4a8f B84A0000 		.long	0x4ab8
- 33533 4a93 32       		.uleb128 0x32
- 33534 4a94 BC0B0000 		.long	0xbbc
- 33535 4a98 03       		.byte	0x3
- 33536 4a99 91       		.byte	0x91
- 33537 4a9a B060     		.sleb128 -4048
- 33538 4a9c 33       		.uleb128 0x33
- 33539 4a9d 00000000 		.quad	.LBB1211
- 33539      00000000 
- 33540 4aa5 00000000 		.quad	.LBE1211
- 33540      00000000 
- 33541 4aad 34       		.uleb128 0x34
- 33542 4aae C70B0000 		.long	0xbc7
- 33543 4ab2 03       		.byte	0x3
- 33544 4ab3 91       		.byte	0x91
- 33545 4ab4 804F     		.sleb128 -6272
- 33546 4ab6 00       		.byte	0x0
- 33547 4ab7 00       		.byte	0x0
- 33548 4ab8 31       		.uleb128 0x31
- 33549 4ab9 AB0B0000 		.long	0xbab
- 33550 4abd 00000000 		.quad	.LBB1212
- 33550      00000000 
- 33551 4ac5 00000000 		.quad	.LBE1212
- 33551      00000000 
- 33552 4acd 02       		.byte	0x2
- 33553 4ace F406     		.value	0x6f4
- 33554 4ad0 F94A0000 		.long	0x4af9
- 33555 4ad4 32       		.uleb128 0x32
- 33556 4ad5 BC0B0000 		.long	0xbbc
- 33557 4ad9 03       		.byte	0x3
- 33558 4ada 91       		.byte	0x91
- 33559 4adb B860     		.sleb128 -4040
- 33560 4add 33       		.uleb128 0x33
- 33561 4ade 00000000 		.quad	.LBB1213
- 33561      00000000 
- 33562 4ae6 00000000 		.quad	.LBE1213
- 33562      00000000 
- 33563 4aee 34       		.uleb128 0x34
- 33564 4aef C70B0000 		.long	0xbc7
- 33565 4af3 03       		.byte	0x3
- 33566 4af4 91       		.byte	0x91
- 33567 4af5 904F     		.sleb128 -6256
- 33568 4af7 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 922
-
-
- 33569 4af8 00       		.byte	0x0
- 33570 4af9 31       		.uleb128 0x31
- 33571 4afa 9A480000 		.long	0x489a
- 33572 4afe 00000000 		.quad	.LBB1214
- 33572      00000000 
- 33573 4b06 00000000 		.quad	.LBE1214
- 33573      00000000 
- 33574 4b0e 02       		.byte	0x2
- 33575 4b0f F506     		.value	0x6f5
- 33576 4b11 3A4B0000 		.long	0x4b3a
- 33577 4b15 32       		.uleb128 0x32
- 33578 4b16 AC480000 		.long	0x48ac
- 33579 4b1a 03       		.byte	0x3
- 33580 4b1b 91       		.byte	0x91
- 33581 4b1c C060     		.sleb128 -4032
- 33582 4b1e 33       		.uleb128 0x33
- 33583 4b1f 00000000 		.quad	.LBB1215
- 33583      00000000 
- 33584 4b27 00000000 		.quad	.LBE1215
- 33584      00000000 
- 33585 4b2f 34       		.uleb128 0x34
- 33586 4b30 B8480000 		.long	0x48b8
- 33587 4b34 03       		.byte	0x3
- 33588 4b35 91       		.byte	0x91
- 33589 4b36 A04F     		.sleb128 -6240
- 33590 4b38 00       		.byte	0x0
- 33591 4b39 00       		.byte	0x0
- 33592 4b3a 31       		.uleb128 0x31
- 33593 4b3b C5480000 		.long	0x48c5
- 33594 4b3f 00000000 		.quad	.LBB1216
- 33594      00000000 
- 33595 4b47 00000000 		.quad	.LBE1216
- 33595      00000000 
- 33596 4b4f 02       		.byte	0x2
- 33597 4b50 FC06     		.value	0x6fc
- 33598 4b52 024C0000 		.long	0x4c02
- 33599 4b56 32       		.uleb128 0x32
- 33600 4b57 E3480000 		.long	0x48e3
- 33601 4b5b 03       		.byte	0x3
- 33602 4b5c 91       		.byte	0x91
- 33603 4b5d DC60     		.sleb128 -4004
- 33604 4b5f 32       		.uleb128 0x32
- 33605 4b60 D7480000 		.long	0x48d7
- 33606 4b64 03       		.byte	0x3
- 33607 4b65 91       		.byte	0x91
- 33608 4b66 E060     		.sleb128 -4000
- 33609 4b68 33       		.uleb128 0x33
- 33610 4b69 00000000 		.quad	.LBB1217
- 33610      00000000 
- 33611 4b71 00000000 		.quad	.LBE1217
- 33611      00000000 
- 33612 4b79 34       		.uleb128 0x34
- 33613 4b7a EF480000 		.long	0x48ef
- 33614 4b7e 03       		.byte	0x3
- 33615 4b7f 91       		.byte	0x91
- 33616 4b80 C04F     		.sleb128 -6208
- 33617 4b82 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 923
-
-
- 33618 4b83 F9480000 		.long	0x48f9
- 33619 4b87 03       		.byte	0x3
- 33620 4b88 91       		.byte	0x91
- 33621 4b89 8061     		.sleb128 -3968
- 33622 4b8b 34       		.uleb128 0x34
- 33623 4b8c 05490000 		.long	0x4905
- 33624 4b90 03       		.byte	0x3
- 33625 4b91 91       		.byte	0x91
- 33626 4b92 FC60     		.sleb128 -3972
- 33627 4b94 31       		.uleb128 0x31
- 33628 4b95 12490000 		.long	0x4912
- 33629 4b99 00000000 		.quad	.LBB1218
- 33629      00000000 
- 33630 4ba1 00000000 		.quad	.LBE1218
- 33630      00000000 
- 33631 4ba9 02       		.byte	0x2
- 33632 4baa 5F06     		.value	0x65f
- 33633 4bac DE4B0000 		.long	0x4bde
- 33634 4bb0 32       		.uleb128 0x32
- 33635 4bb1 24490000 		.long	0x4924
- 33636 4bb5 03       		.byte	0x3
- 33637 4bb6 91       		.byte	0x91
- 33638 4bb7 8461     		.sleb128 -3964
- 33639 4bb9 33       		.uleb128 0x33
- 33640 4bba 00000000 		.quad	.LBB1219
- 33640      00000000 
- 33641 4bc2 00000000 		.quad	.LBE1219
- 33641      00000000 
- 33642 4bca 34       		.uleb128 0x34
- 33643 4bcb 2E490000 		.long	0x492e
- 33644 4bcf 03       		.byte	0x3
- 33645 4bd0 91       		.byte	0x91
- 33646 4bd1 B04F     		.sleb128 -6224
- 33647 4bd3 34       		.uleb128 0x34
- 33648 4bd4 3A490000 		.long	0x493a
- 33649 4bd8 03       		.byte	0x3
- 33650 4bd9 91       		.byte	0x91
- 33651 4bda 8861     		.sleb128 -3960
- 33652 4bdc 00       		.byte	0x0
- 33653 4bdd 00       		.byte	0x0
- 33654 4bde 35       		.uleb128 0x35
- 33655 4bdf 46490000 		.long	0x4946
- 33656 4be3 00000000 		.quad	.LBB1220
- 33656      00000000 
- 33657 4beb 00000000 		.quad	.LBE1220
- 33657      00000000 
- 33658 4bf3 02       		.byte	0x2
- 33659 4bf4 6006     		.value	0x660
- 33660 4bf6 32       		.uleb128 0x32
- 33661 4bf7 58490000 		.long	0x4958
- 33662 4bfb 03       		.byte	0x3
- 33663 4bfc 91       		.byte	0x91
- 33664 4bfd 8C61     		.sleb128 -3956
- 33665 4bff 00       		.byte	0x0
- 33666 4c00 00       		.byte	0x0
- 33667 4c01 00       		.byte	0x0
- 33668 4c02 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 924
-
-
- 33669 4c03 A30E0000 		.long	0xea3
- 33670 4c07 00000000 		.quad	.LBB1222
- 33670      00000000 
- 33671 4c0f 00000000 		.quad	.LBE1222
- 33671      00000000 
- 33672 4c17 02       		.byte	0x2
- 33673 4c18 FE06     		.value	0x6fe
- 33674 4c1a 024D0000 		.long	0x4d02
- 33675 4c1e 32       		.uleb128 0x32
- 33676 4c1f B50E0000 		.long	0xeb5
- 33677 4c23 03       		.byte	0x3
- 33678 4c24 91       		.byte	0x91
- 33679 4c25 9061     		.sleb128 -3952
- 33680 4c27 33       		.uleb128 0x33
- 33681 4c28 00000000 		.quad	.LBB1223
- 33681      00000000 
- 33682 4c30 00000000 		.quad	.LBE1223
- 33682      00000000 
- 33683 4c38 34       		.uleb128 0x34
- 33684 4c39 C10E0000 		.long	0xec1
- 33685 4c3d 03       		.byte	0x3
- 33686 4c3e 76       		.byte	0x76
- 33687 4c3f D04B     		.sleb128 -6704
- 33688 4c41 31       		.uleb128 0x31
- 33689 4c42 CE0E0000 		.long	0xece
- 33690 4c46 00000000 		.quad	.LBB1224
- 33690      00000000 
- 33691 4c4e 00000000 		.quad	.LBE1224
- 33691      00000000 
- 33692 4c56 02       		.byte	0x2
- 33693 4c57 1F06     		.value	0x61f
- 33694 4c59 824C0000 		.long	0x4c82
- 33695 4c5d 32       		.uleb128 0x32
- 33696 4c5e E00E0000 		.long	0xee0
- 33697 4c62 03       		.byte	0x3
- 33698 4c63 91       		.byte	0x91
- 33699 4c64 A061     		.sleb128 -3936
- 33700 4c66 33       		.uleb128 0x33
- 33701 4c67 00000000 		.quad	.LBB1225
- 33701      00000000 
- 33702 4c6f 00000000 		.quad	.LBE1225
- 33702      00000000 
- 33703 4c77 34       		.uleb128 0x34
- 33704 4c78 EC0E0000 		.long	0xeec
- 33705 4c7c 03       		.byte	0x3
- 33706 4c7d 91       		.byte	0x91
- 33707 4c7e D04F     		.sleb128 -6192
- 33708 4c80 00       		.byte	0x0
- 33709 4c81 00       		.byte	0x0
- 33710 4c82 31       		.uleb128 0x31
- 33711 4c83 CE0E0000 		.long	0xece
- 33712 4c87 00000000 		.quad	.LBB1226
- 33712      00000000 
- 33713 4c8f 00000000 		.quad	.LBE1226
- 33713      00000000 
- 33714 4c97 02       		.byte	0x2
- 33715 4c98 2006     		.value	0x620
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 925
-
-
- 33716 4c9a C34C0000 		.long	0x4cc3
- 33717 4c9e 32       		.uleb128 0x32
- 33718 4c9f E00E0000 		.long	0xee0
- 33719 4ca3 03       		.byte	0x3
- 33720 4ca4 91       		.byte	0x91
- 33721 4ca5 B061     		.sleb128 -3920
- 33722 4ca7 33       		.uleb128 0x33
- 33723 4ca8 00000000 		.quad	.LBB1227
- 33723      00000000 
- 33724 4cb0 00000000 		.quad	.LBE1227
- 33724      00000000 
- 33725 4cb8 34       		.uleb128 0x34
- 33726 4cb9 EC0E0000 		.long	0xeec
- 33727 4cbd 03       		.byte	0x3
- 33728 4cbe 91       		.byte	0x91
- 33729 4cbf E04F     		.sleb128 -6176
- 33730 4cc1 00       		.byte	0x0
- 33731 4cc2 00       		.byte	0x0
- 33732 4cc3 35       		.uleb128 0x35
- 33733 4cc4 CE0E0000 		.long	0xece
- 33734 4cc8 00000000 		.quad	.LBB1228
- 33734      00000000 
- 33735 4cd0 00000000 		.quad	.LBE1228
- 33735      00000000 
- 33736 4cd8 02       		.byte	0x2
- 33737 4cd9 2106     		.value	0x621
- 33738 4cdb 32       		.uleb128 0x32
- 33739 4cdc E00E0000 		.long	0xee0
- 33740 4ce0 03       		.byte	0x3
- 33741 4ce1 91       		.byte	0x91
- 33742 4ce2 C061     		.sleb128 -3904
- 33743 4ce4 33       		.uleb128 0x33
- 33744 4ce5 00000000 		.quad	.LBB1229
- 33744      00000000 
- 33745 4ced 00000000 		.quad	.LBE1229
- 33745      00000000 
- 33746 4cf5 34       		.uleb128 0x34
- 33747 4cf6 EC0E0000 		.long	0xeec
- 33748 4cfa 03       		.byte	0x3
- 33749 4cfb 91       		.byte	0x91
- 33750 4cfc F04F     		.sleb128 -6160
- 33751 4cfe 00       		.byte	0x0
- 33752 4cff 00       		.byte	0x0
- 33753 4d00 00       		.byte	0x0
- 33754 4d01 00       		.byte	0x0
- 33755 4d02 31       		.uleb128 0x31
- 33756 4d03 A30E0000 		.long	0xea3
- 33757 4d07 00000000 		.quad	.LBB1230
- 33757      00000000 
- 33758 4d0f 00000000 		.quad	.LBE1230
- 33758      00000000 
- 33759 4d17 02       		.byte	0x2
- 33760 4d18 0007     		.value	0x700
- 33761 4d1a 024E0000 		.long	0x4e02
- 33762 4d1e 32       		.uleb128 0x32
- 33763 4d1f B50E0000 		.long	0xeb5
- 33764 4d23 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 926
-
-
- 33765 4d24 91       		.byte	0x91
- 33766 4d25 D061     		.sleb128 -3888
- 33767 4d27 33       		.uleb128 0x33
- 33768 4d28 00000000 		.quad	.LBB1231
- 33768      00000000 
- 33769 4d30 00000000 		.quad	.LBE1231
- 33769      00000000 
- 33770 4d38 34       		.uleb128 0x34
- 33771 4d39 C10E0000 		.long	0xec1
- 33772 4d3d 03       		.byte	0x3
- 33773 4d3e 76       		.byte	0x76
- 33774 4d3f E04B     		.sleb128 -6688
- 33775 4d41 31       		.uleb128 0x31
- 33776 4d42 CE0E0000 		.long	0xece
- 33777 4d46 00000000 		.quad	.LBB1232
- 33777      00000000 
- 33778 4d4e 00000000 		.quad	.LBE1232
- 33778      00000000 
- 33779 4d56 02       		.byte	0x2
- 33780 4d57 1F06     		.value	0x61f
- 33781 4d59 824D0000 		.long	0x4d82
- 33782 4d5d 32       		.uleb128 0x32
- 33783 4d5e E00E0000 		.long	0xee0
- 33784 4d62 03       		.byte	0x3
- 33785 4d63 91       		.byte	0x91
- 33786 4d64 E061     		.sleb128 -3872
- 33787 4d66 33       		.uleb128 0x33
- 33788 4d67 00000000 		.quad	.LBB1233
- 33788      00000000 
- 33789 4d6f 00000000 		.quad	.LBE1233
- 33789      00000000 
- 33790 4d77 34       		.uleb128 0x34
- 33791 4d78 EC0E0000 		.long	0xeec
- 33792 4d7c 03       		.byte	0x3
- 33793 4d7d 91       		.byte	0x91
- 33794 4d7e 8050     		.sleb128 -6144
- 33795 4d80 00       		.byte	0x0
- 33796 4d81 00       		.byte	0x0
- 33797 4d82 31       		.uleb128 0x31
- 33798 4d83 CE0E0000 		.long	0xece
- 33799 4d87 00000000 		.quad	.LBB1234
- 33799      00000000 
- 33800 4d8f 00000000 		.quad	.LBE1234
- 33800      00000000 
- 33801 4d97 02       		.byte	0x2
- 33802 4d98 2006     		.value	0x620
- 33803 4d9a C34D0000 		.long	0x4dc3
- 33804 4d9e 32       		.uleb128 0x32
- 33805 4d9f E00E0000 		.long	0xee0
- 33806 4da3 03       		.byte	0x3
- 33807 4da4 91       		.byte	0x91
- 33808 4da5 F061     		.sleb128 -3856
- 33809 4da7 33       		.uleb128 0x33
- 33810 4da8 00000000 		.quad	.LBB1235
- 33810      00000000 
- 33811 4db0 00000000 		.quad	.LBE1235
- 33811      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 927
-
-
- 33812 4db8 34       		.uleb128 0x34
- 33813 4db9 EC0E0000 		.long	0xeec
- 33814 4dbd 03       		.byte	0x3
- 33815 4dbe 91       		.byte	0x91
- 33816 4dbf 9050     		.sleb128 -6128
- 33817 4dc1 00       		.byte	0x0
- 33818 4dc2 00       		.byte	0x0
- 33819 4dc3 35       		.uleb128 0x35
- 33820 4dc4 CE0E0000 		.long	0xece
- 33821 4dc8 00000000 		.quad	.LBB1236
- 33821      00000000 
- 33822 4dd0 00000000 		.quad	.LBE1236
- 33822      00000000 
- 33823 4dd8 02       		.byte	0x2
- 33824 4dd9 2106     		.value	0x621
- 33825 4ddb 32       		.uleb128 0x32
- 33826 4ddc E00E0000 		.long	0xee0
- 33827 4de0 03       		.byte	0x3
- 33828 4de1 91       		.byte	0x91
- 33829 4de2 8062     		.sleb128 -3840
- 33830 4de4 33       		.uleb128 0x33
- 33831 4de5 00000000 		.quad	.LBB1237
- 33831      00000000 
- 33832 4ded 00000000 		.quad	.LBE1237
- 33832      00000000 
- 33833 4df5 34       		.uleb128 0x34
- 33834 4df6 EC0E0000 		.long	0xeec
- 33835 4dfa 03       		.byte	0x3
- 33836 4dfb 91       		.byte	0x91
- 33837 4dfc A050     		.sleb128 -6112
- 33838 4dfe 00       		.byte	0x0
- 33839 4dff 00       		.byte	0x0
- 33840 4e00 00       		.byte	0x0
- 33841 4e01 00       		.byte	0x0
- 33842 4e02 31       		.uleb128 0x31
- 33843 4e03 780E0000 		.long	0xe78
- 33844 4e07 00000000 		.quad	.LBB1238
- 33844      00000000 
- 33845 4e0f 00000000 		.quad	.LBE1238
- 33845      00000000 
- 33846 4e17 02       		.byte	0x2
- 33847 4e18 0107     		.value	0x701
- 33848 4e1a 434E0000 		.long	0x4e43
- 33849 4e1e 32       		.uleb128 0x32
- 33850 4e1f 8A0E0000 		.long	0xe8a
- 33851 4e23 03       		.byte	0x3
- 33852 4e24 91       		.byte	0x91
- 33853 4e25 9062     		.sleb128 -3824
- 33854 4e27 33       		.uleb128 0x33
- 33855 4e28 00000000 		.quad	.LBB1239
- 33855      00000000 
- 33856 4e30 00000000 		.quad	.LBE1239
- 33856      00000000 
- 33857 4e38 34       		.uleb128 0x34
- 33858 4e39 960E0000 		.long	0xe96
- 33859 4e3d 03       		.byte	0x3
- 33860 4e3e 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 928
-
-
- 33861 4e3f B050     		.sleb128 -6096
- 33862 4e41 00       		.byte	0x0
- 33863 4e42 00       		.byte	0x0
- 33864 4e43 31       		.uleb128 0x31
- 33865 4e44 63490000 		.long	0x4963
- 33866 4e48 00000000 		.quad	.LBB1240
- 33866      00000000 
- 33867 4e50 00000000 		.quad	.LBE1240
- 33867      00000000 
- 33868 4e58 02       		.byte	0x2
- 33869 4e59 0307     		.value	0x703
- 33870 4e5b 964E0000 		.long	0x4e96
- 33871 4e5f 32       		.uleb128 0x32
- 33872 4e60 7F490000 		.long	0x497f
- 33873 4e64 03       		.byte	0x3
- 33874 4e65 91       		.byte	0x91
- 33875 4e66 A062     		.sleb128 -3808
- 33876 4e68 32       		.uleb128 0x32
- 33877 4e69 75490000 		.long	0x4975
- 33878 4e6d 03       		.byte	0x3
- 33879 4e6e 91       		.byte	0x91
- 33880 4e6f B062     		.sleb128 -3792
- 33881 4e71 33       		.uleb128 0x33
- 33882 4e72 00000000 		.quad	.LBB1241
- 33882      00000000 
- 33883 4e7a 00000000 		.quad	.LBE1241
- 33883      00000000 
- 33884 4e82 34       		.uleb128 0x34
- 33885 4e83 89490000 		.long	0x4989
- 33886 4e87 03       		.byte	0x3
- 33887 4e88 91       		.byte	0x91
- 33888 4e89 D050     		.sleb128 -6064
- 33889 4e8b 34       		.uleb128 0x34
- 33890 4e8c 94490000 		.long	0x4994
- 33891 4e90 03       		.byte	0x3
- 33892 4e91 91       		.byte	0x91
- 33893 4e92 C050     		.sleb128 -6080
- 33894 4e94 00       		.byte	0x0
- 33895 4e95 00       		.byte	0x0
- 33896 4e96 31       		.uleb128 0x31
- 33897 4e97 A0490000 		.long	0x49a0
- 33898 4e9b 00000000 		.quad	.LBB1242
- 33898      00000000 
- 33899 4ea3 00000000 		.quad	.LBE1242
- 33899      00000000 
- 33900 4eab 02       		.byte	0x2
- 33901 4eac 0607     		.value	0x706
- 33902 4eae E94E0000 		.long	0x4ee9
- 33903 4eb2 32       		.uleb128 0x32
- 33904 4eb3 BC490000 		.long	0x49bc
- 33905 4eb7 03       		.byte	0x3
- 33906 4eb8 91       		.byte	0x91
- 33907 4eb9 C062     		.sleb128 -3776
- 33908 4ebb 32       		.uleb128 0x32
- 33909 4ebc B2490000 		.long	0x49b2
- 33910 4ec0 03       		.byte	0x3
- 33911 4ec1 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 929
-
-
- 33912 4ec2 D062     		.sleb128 -3760
- 33913 4ec4 33       		.uleb128 0x33
- 33914 4ec5 00000000 		.quad	.LBB1243
- 33914      00000000 
- 33915 4ecd 00000000 		.quad	.LBE1243
- 33915      00000000 
- 33916 4ed5 34       		.uleb128 0x34
- 33917 4ed6 C6490000 		.long	0x49c6
- 33918 4eda 03       		.byte	0x3
- 33919 4edb 91       		.byte	0x91
- 33920 4edc F050     		.sleb128 -6032
- 33921 4ede 34       		.uleb128 0x34
- 33922 4edf D1490000 		.long	0x49d1
- 33923 4ee3 03       		.byte	0x3
- 33924 4ee4 91       		.byte	0x91
- 33925 4ee5 E050     		.sleb128 -6048
- 33926 4ee7 00       		.byte	0x0
- 33927 4ee8 00       		.byte	0x0
- 33928 4ee9 31       		.uleb128 0x31
- 33929 4eea A30E0000 		.long	0xea3
- 33930 4eee 00000000 		.quad	.LBB1244
- 33930      00000000 
- 33931 4ef6 00000000 		.quad	.LBE1244
- 33931      00000000 
- 33932 4efe 02       		.byte	0x2
- 33933 4eff 0A07     		.value	0x70a
- 33934 4f01 E94F0000 		.long	0x4fe9
- 33935 4f05 32       		.uleb128 0x32
- 33936 4f06 B50E0000 		.long	0xeb5
- 33937 4f0a 03       		.byte	0x3
- 33938 4f0b 91       		.byte	0x91
- 33939 4f0c E062     		.sleb128 -3744
- 33940 4f0e 33       		.uleb128 0x33
- 33941 4f0f 00000000 		.quad	.LBB1245
- 33941      00000000 
- 33942 4f17 00000000 		.quad	.LBE1245
- 33942      00000000 
- 33943 4f1f 34       		.uleb128 0x34
- 33944 4f20 C10E0000 		.long	0xec1
- 33945 4f24 03       		.byte	0x3
- 33946 4f25 76       		.byte	0x76
- 33947 4f26 F04B     		.sleb128 -6672
- 33948 4f28 31       		.uleb128 0x31
- 33949 4f29 CE0E0000 		.long	0xece
- 33950 4f2d 00000000 		.quad	.LBB1246
- 33950      00000000 
- 33951 4f35 00000000 		.quad	.LBE1246
- 33951      00000000 
- 33952 4f3d 02       		.byte	0x2
- 33953 4f3e 1F06     		.value	0x61f
- 33954 4f40 694F0000 		.long	0x4f69
- 33955 4f44 32       		.uleb128 0x32
- 33956 4f45 E00E0000 		.long	0xee0
- 33957 4f49 03       		.byte	0x3
- 33958 4f4a 91       		.byte	0x91
- 33959 4f4b F062     		.sleb128 -3728
- 33960 4f4d 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 930
-
-
- 33961 4f4e 00000000 		.quad	.LBB1247
- 33961      00000000 
- 33962 4f56 00000000 		.quad	.LBE1247
- 33962      00000000 
- 33963 4f5e 34       		.uleb128 0x34
- 33964 4f5f EC0E0000 		.long	0xeec
- 33965 4f63 03       		.byte	0x3
- 33966 4f64 91       		.byte	0x91
- 33967 4f65 8051     		.sleb128 -6016
- 33968 4f67 00       		.byte	0x0
- 33969 4f68 00       		.byte	0x0
- 33970 4f69 31       		.uleb128 0x31
- 33971 4f6a CE0E0000 		.long	0xece
- 33972 4f6e 00000000 		.quad	.LBB1248
- 33972      00000000 
- 33973 4f76 00000000 		.quad	.LBE1248
- 33973      00000000 
- 33974 4f7e 02       		.byte	0x2
- 33975 4f7f 2006     		.value	0x620
- 33976 4f81 AA4F0000 		.long	0x4faa
- 33977 4f85 32       		.uleb128 0x32
- 33978 4f86 E00E0000 		.long	0xee0
- 33979 4f8a 03       		.byte	0x3
- 33980 4f8b 91       		.byte	0x91
- 33981 4f8c 8063     		.sleb128 -3712
- 33982 4f8e 33       		.uleb128 0x33
- 33983 4f8f 00000000 		.quad	.LBB1249
- 33983      00000000 
- 33984 4f97 00000000 		.quad	.LBE1249
- 33984      00000000 
- 33985 4f9f 34       		.uleb128 0x34
- 33986 4fa0 EC0E0000 		.long	0xeec
- 33987 4fa4 03       		.byte	0x3
- 33988 4fa5 91       		.byte	0x91
- 33989 4fa6 9051     		.sleb128 -6000
- 33990 4fa8 00       		.byte	0x0
- 33991 4fa9 00       		.byte	0x0
- 33992 4faa 35       		.uleb128 0x35
- 33993 4fab CE0E0000 		.long	0xece
- 33994 4faf 00000000 		.quad	.LBB1250
- 33994      00000000 
- 33995 4fb7 00000000 		.quad	.LBE1250
- 33995      00000000 
- 33996 4fbf 02       		.byte	0x2
- 33997 4fc0 2106     		.value	0x621
- 33998 4fc2 32       		.uleb128 0x32
- 33999 4fc3 E00E0000 		.long	0xee0
- 34000 4fc7 03       		.byte	0x3
- 34001 4fc8 91       		.byte	0x91
- 34002 4fc9 9063     		.sleb128 -3696
- 34003 4fcb 33       		.uleb128 0x33
- 34004 4fcc 00000000 		.quad	.LBB1251
- 34004      00000000 
- 34005 4fd4 00000000 		.quad	.LBE1251
- 34005      00000000 
- 34006 4fdc 34       		.uleb128 0x34
- 34007 4fdd EC0E0000 		.long	0xeec
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 931
-
-
- 34008 4fe1 03       		.byte	0x3
- 34009 4fe2 91       		.byte	0x91
- 34010 4fe3 A051     		.sleb128 -5984
- 34011 4fe5 00       		.byte	0x0
- 34012 4fe6 00       		.byte	0x0
- 34013 4fe7 00       		.byte	0x0
- 34014 4fe8 00       		.byte	0x0
- 34015 4fe9 31       		.uleb128 0x31
- 34016 4fea A30E0000 		.long	0xea3
- 34017 4fee 00000000 		.quad	.LBB1252
- 34017      00000000 
- 34018 4ff6 00000000 		.quad	.LBE1252
- 34018      00000000 
- 34019 4ffe 02       		.byte	0x2
- 34020 4fff 0B07     		.value	0x70b
- 34021 5001 E9500000 		.long	0x50e9
- 34022 5005 32       		.uleb128 0x32
- 34023 5006 B50E0000 		.long	0xeb5
- 34024 500a 03       		.byte	0x3
- 34025 500b 91       		.byte	0x91
- 34026 500c A063     		.sleb128 -3680
- 34027 500e 33       		.uleb128 0x33
- 34028 500f 00000000 		.quad	.LBB1253
- 34028      00000000 
- 34029 5017 00000000 		.quad	.LBE1253
- 34029      00000000 
- 34030 501f 34       		.uleb128 0x34
- 34031 5020 C10E0000 		.long	0xec1
- 34032 5024 03       		.byte	0x3
- 34033 5025 76       		.byte	0x76
- 34034 5026 804C     		.sleb128 -6656
- 34035 5028 31       		.uleb128 0x31
- 34036 5029 CE0E0000 		.long	0xece
- 34037 502d 00000000 		.quad	.LBB1254
- 34037      00000000 
- 34038 5035 00000000 		.quad	.LBE1254
- 34038      00000000 
- 34039 503d 02       		.byte	0x2
- 34040 503e 1F06     		.value	0x61f
- 34041 5040 69500000 		.long	0x5069
- 34042 5044 32       		.uleb128 0x32
- 34043 5045 E00E0000 		.long	0xee0
- 34044 5049 03       		.byte	0x3
- 34045 504a 91       		.byte	0x91
- 34046 504b B063     		.sleb128 -3664
- 34047 504d 33       		.uleb128 0x33
- 34048 504e 00000000 		.quad	.LBB1255
- 34048      00000000 
- 34049 5056 00000000 		.quad	.LBE1255
- 34049      00000000 
- 34050 505e 34       		.uleb128 0x34
- 34051 505f EC0E0000 		.long	0xeec
- 34052 5063 03       		.byte	0x3
- 34053 5064 91       		.byte	0x91
- 34054 5065 B051     		.sleb128 -5968
- 34055 5067 00       		.byte	0x0
- 34056 5068 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 932
-
-
- 34057 5069 31       		.uleb128 0x31
- 34058 506a CE0E0000 		.long	0xece
- 34059 506e 00000000 		.quad	.LBB1256
- 34059      00000000 
- 34060 5076 00000000 		.quad	.LBE1256
- 34060      00000000 
- 34061 507e 02       		.byte	0x2
- 34062 507f 2006     		.value	0x620
- 34063 5081 AA500000 		.long	0x50aa
- 34064 5085 32       		.uleb128 0x32
- 34065 5086 E00E0000 		.long	0xee0
- 34066 508a 03       		.byte	0x3
- 34067 508b 91       		.byte	0x91
- 34068 508c C063     		.sleb128 -3648
- 34069 508e 33       		.uleb128 0x33
- 34070 508f 00000000 		.quad	.LBB1257
- 34070      00000000 
- 34071 5097 00000000 		.quad	.LBE1257
- 34071      00000000 
- 34072 509f 34       		.uleb128 0x34
- 34073 50a0 EC0E0000 		.long	0xeec
- 34074 50a4 03       		.byte	0x3
- 34075 50a5 91       		.byte	0x91
- 34076 50a6 C051     		.sleb128 -5952
- 34077 50a8 00       		.byte	0x0
- 34078 50a9 00       		.byte	0x0
- 34079 50aa 35       		.uleb128 0x35
- 34080 50ab CE0E0000 		.long	0xece
- 34081 50af 00000000 		.quad	.LBB1258
- 34081      00000000 
- 34082 50b7 00000000 		.quad	.LBE1258
- 34082      00000000 
- 34083 50bf 02       		.byte	0x2
- 34084 50c0 2106     		.value	0x621
- 34085 50c2 32       		.uleb128 0x32
- 34086 50c3 E00E0000 		.long	0xee0
- 34087 50c7 03       		.byte	0x3
- 34088 50c8 91       		.byte	0x91
- 34089 50c9 D063     		.sleb128 -3632
- 34090 50cb 33       		.uleb128 0x33
- 34091 50cc 00000000 		.quad	.LBB1259
- 34091      00000000 
- 34092 50d4 00000000 		.quad	.LBE1259
- 34092      00000000 
- 34093 50dc 34       		.uleb128 0x34
- 34094 50dd EC0E0000 		.long	0xeec
- 34095 50e1 03       		.byte	0x3
- 34096 50e2 91       		.byte	0x91
- 34097 50e3 D051     		.sleb128 -5936
- 34098 50e5 00       		.byte	0x0
- 34099 50e6 00       		.byte	0x0
- 34100 50e7 00       		.byte	0x0
- 34101 50e8 00       		.byte	0x0
- 34102 50e9 31       		.uleb128 0x31
- 34103 50ea D10B0000 		.long	0xbd1
- 34104 50ee 00000000 		.quad	.LBB1260
- 34104      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 933
-
-
- 34105 50f6 00000000 		.quad	.LBE1260
- 34105      00000000 
- 34106 50fe 02       		.byte	0x2
- 34107 50ff 0C07     		.value	0x70c
- 34108 5101 8F550000 		.long	0x558f
- 34109 5105 32       		.uleb128 0x32
- 34110 5106 EF0B0000 		.long	0xbef
- 34111 510a 03       		.byte	0x3
- 34112 510b 91       		.byte	0x91
- 34113 510c EC63     		.sleb128 -3604
- 34114 510e 32       		.uleb128 0x32
- 34115 510f E30B0000 		.long	0xbe3
- 34116 5113 03       		.byte	0x3
- 34117 5114 91       		.byte	0x91
- 34118 5115 F063     		.sleb128 -3600
- 34119 5117 33       		.uleb128 0x33
- 34120 5118 00000000 		.quad	.LBB1261
- 34120      00000000 
- 34121 5120 00000000 		.quad	.LBE1261
- 34121      00000000 
- 34122 5128 34       		.uleb128 0x34
- 34123 5129 FB0B0000 		.long	0xbfb
- 34124 512d 03       		.byte	0x3
- 34125 512e 76       		.byte	0x76
- 34126 512f A04C     		.sleb128 -6624
- 34127 5131 34       		.uleb128 0x34
- 34128 5132 070C0000 		.long	0xc07
- 34129 5136 03       		.byte	0x3
- 34130 5137 76       		.byte	0x76
- 34131 5138 904C     		.sleb128 -6640
- 34132 513a 31       		.uleb128 0x31
- 34133 513b 500C0000 		.long	0xc50
- 34134 513f 00000000 		.quad	.LBB1262
- 34134      00000000 
- 34135 5147 00000000 		.quad	.LBE1262
- 34135      00000000 
- 34136 514f 02       		.byte	0x2
- 34137 5150 9106     		.value	0x691
- 34138 5152 8D510000 		.long	0x518d
- 34139 5156 32       		.uleb128 0x32
- 34140 5157 7A0C0000 		.long	0xc7a
- 34141 515b 03       		.byte	0x3
- 34142 515c 91       		.byte	0x91
- 34143 515d 8864     		.sleb128 -3576
- 34144 515f 32       		.uleb128 0x32
- 34145 5160 6E0C0000 		.long	0xc6e
- 34146 5164 03       		.byte	0x3
- 34147 5165 91       		.byte	0x91
- 34148 5166 8C64     		.sleb128 -3572
- 34149 5168 32       		.uleb128 0x32
- 34150 5169 620C0000 		.long	0xc62
- 34151 516d 03       		.byte	0x3
- 34152 516e 91       		.byte	0x91
- 34153 516f 9064     		.sleb128 -3568
- 34154 5171 33       		.uleb128 0x33
- 34155 5172 00000000 		.quad	.LBB1263
- 34155      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 934
-
-
- 34156 517a 00000000 		.quad	.LBE1263
- 34156      00000000 
- 34157 5182 34       		.uleb128 0x34
- 34158 5183 860C0000 		.long	0xc86
- 34159 5187 03       		.byte	0x3
- 34160 5188 91       		.byte	0x91
- 34161 5189 A052     		.sleb128 -5856
- 34162 518b 00       		.byte	0x0
- 34163 518c 00       		.byte	0x0
- 34164 518d 31       		.uleb128 0x31
- 34165 518e 910C0000 		.long	0xc91
- 34166 5192 00000000 		.quad	.LBB1264
- 34166      00000000 
- 34167 519a 00000000 		.quad	.LBE1264
- 34167      00000000 
- 34168 51a2 02       		.byte	0x2
- 34169 51a3 9206     		.value	0x692
- 34170 51a5 FD530000 		.long	0x53fd
- 34171 51a9 32       		.uleb128 0x32
- 34172 51aa A30C0000 		.long	0xca3
- 34173 51ae 03       		.byte	0x3
- 34174 51af 91       		.byte	0x91
- 34175 51b0 A064     		.sleb128 -3552
- 34176 51b2 35       		.uleb128 0x35
- 34177 51b3 B00C0000 		.long	0xcb0
- 34178 51b7 00000000 		.quad	.LBB1266
- 34178      00000000 
- 34179 51bf 00000000 		.quad	.LBE1266
- 34179      00000000 
- 34180 51c7 02       		.byte	0x2
- 34181 51c8 7D03     		.value	0x37d
- 34182 51ca 32       		.uleb128 0x32
- 34183 51cb CE0C0000 		.long	0xcce
- 34184 51cf 03       		.byte	0x3
- 34185 51d0 91       		.byte	0x91
- 34186 51d1 B864     		.sleb128 -3528
- 34187 51d3 32       		.uleb128 0x32
- 34188 51d4 C20C0000 		.long	0xcc2
- 34189 51d8 03       		.byte	0x3
- 34190 51d9 91       		.byte	0x91
- 34191 51da C064     		.sleb128 -3520
- 34192 51dc 33       		.uleb128 0x33
- 34193 51dd 00000000 		.quad	.LBB1267
- 34193      00000000 
- 34194 51e5 00000000 		.quad	.LBE1267
- 34194      00000000 
- 34195 51ed 34       		.uleb128 0x34
- 34196 51ee DA0C0000 		.long	0xcda
- 34197 51f2 03       		.byte	0x3
- 34198 51f3 91       		.byte	0x91
- 34199 51f4 9065     		.sleb128 -3440
- 34200 51f6 34       		.uleb128 0x34
- 34201 51f7 E50C0000 		.long	0xce5
- 34202 51fb 03       		.byte	0x3
- 34203 51fc 91       		.byte	0x91
- 34204 51fd 8065     		.sleb128 -3456
- 34205 51ff 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 935
-
-
- 34206 5200 F00C0000 		.long	0xcf0
- 34207 5204 03       		.byte	0x3
- 34208 5205 91       		.byte	0x91
- 34209 5206 F064     		.sleb128 -3472
- 34210 5208 34       		.uleb128 0x34
- 34211 5209 FC0C0000 		.long	0xcfc
- 34212 520d 03       		.byte	0x3
- 34213 520e 91       		.byte	0x91
- 34214 520f E064     		.sleb128 -3488
- 34215 5211 34       		.uleb128 0x34
- 34216 5212 080D0000 		.long	0xd08
- 34217 5216 03       		.byte	0x3
- 34218 5217 91       		.byte	0x91
- 34219 5218 DC64     		.sleb128 -3492
- 34220 521a 31       		.uleb128 0x31
- 34221 521b 1F0D0000 		.long	0xd1f
- 34222 521f 00000000 		.quad	.LBB1268
- 34222      00000000 
- 34223 5227 00000000 		.quad	.LBE1268
- 34223      00000000 
- 34224 522f 02       		.byte	0x2
- 34225 5230 5603     		.value	0x356
- 34226 5232 49520000 		.long	0x5249
- 34227 5236 32       		.uleb128 0x32
- 34228 5237 3A0D0000 		.long	0xd3a
- 34229 523b 03       		.byte	0x3
- 34230 523c 91       		.byte	0x91
- 34231 523d A065     		.sleb128 -3424
- 34232 523f 32       		.uleb128 0x32
- 34233 5240 300D0000 		.long	0xd30
- 34234 5244 03       		.byte	0x3
- 34235 5245 91       		.byte	0x91
- 34236 5246 B065     		.sleb128 -3408
- 34237 5248 00       		.byte	0x0
- 34238 5249 31       		.uleb128 0x31
- 34239 524a 450D0000 		.long	0xd45
- 34240 524e 00000000 		.quad	.LBB1270
- 34240      00000000 
- 34241 5256 00000000 		.quad	.LBE1270
- 34241      00000000 
- 34242 525e 02       		.byte	0x2
- 34243 525f 5E03     		.value	0x35e
- 34244 5261 78520000 		.long	0x5278
- 34245 5265 32       		.uleb128 0x32
- 34246 5266 620D0000 		.long	0xd62
- 34247 526a 03       		.byte	0x3
- 34248 526b 91       		.byte	0x91
- 34249 526c C065     		.sleb128 -3392
- 34250 526e 32       		.uleb128 0x32
- 34251 526f 570D0000 		.long	0xd57
- 34252 5273 03       		.byte	0x3
- 34253 5274 91       		.byte	0x91
- 34254 5275 D065     		.sleb128 -3376
- 34255 5277 00       		.byte	0x0
- 34256 5278 31       		.uleb128 0x31
- 34257 5279 6E0D0000 		.long	0xd6e
- 34258 527d 00000000 		.quad	.LBB1272
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 936
-
-
- 34258      00000000 
- 34259 5285 00000000 		.quad	.LBE1272
- 34259      00000000 
- 34260 528d 02       		.byte	0x2
- 34261 528e 6403     		.value	0x364
- 34262 5290 DD520000 		.long	0x52dd
- 34263 5294 32       		.uleb128 0x32
- 34264 5295 8C0D0000 		.long	0xd8c
- 34265 5299 03       		.byte	0x3
- 34266 529a 91       		.byte	0x91
- 34267 529b E065     		.sleb128 -3360
- 34268 529d 32       		.uleb128 0x32
- 34269 529e 800D0000 		.long	0xd80
- 34270 52a2 03       		.byte	0x3
- 34271 52a3 91       		.byte	0x91
- 34272 52a4 F065     		.sleb128 -3344
- 34273 52a6 33       		.uleb128 0x33
- 34274 52a7 00000000 		.quad	.LBB1273
- 34274      00000000 
- 34275 52af 00000000 		.quad	.LBE1273
- 34275      00000000 
- 34276 52b7 34       		.uleb128 0x34
- 34277 52b8 980D0000 		.long	0xd98
- 34278 52bc 03       		.byte	0x3
- 34279 52bd 91       		.byte	0x91
- 34280 52be D052     		.sleb128 -5808
- 34281 52c0 34       		.uleb128 0x34
- 34282 52c1 A40D0000 		.long	0xda4
- 34283 52c5 03       		.byte	0x3
- 34284 52c6 91       		.byte	0x91
- 34285 52c7 C052     		.sleb128 -5824
- 34286 52c9 34       		.uleb128 0x34
- 34287 52ca AF0D0000 		.long	0xdaf
- 34288 52ce 03       		.byte	0x3
- 34289 52cf 91       		.byte	0x91
- 34290 52d0 B052     		.sleb128 -5840
- 34291 52d2 34       		.uleb128 0x34
- 34292 52d3 BB0D0000 		.long	0xdbb
- 34293 52d7 03       		.byte	0x3
- 34294 52d8 91       		.byte	0x91
- 34295 52d9 8C66     		.sleb128 -3316
- 34296 52db 00       		.byte	0x0
- 34297 52dc 00       		.byte	0x0
- 34298 52dd 31       		.uleb128 0x31
- 34299 52de C70D0000 		.long	0xdc7
- 34300 52e2 00000000 		.quad	.LBB1274
- 34300      00000000 
- 34301 52ea 00000000 		.quad	.LBE1274
- 34301      00000000 
- 34302 52f2 02       		.byte	0x2
- 34303 52f3 6603     		.value	0x366
- 34304 52f5 0C530000 		.long	0x530c
- 34305 52f9 32       		.uleb128 0x32
- 34306 52fa E20D0000 		.long	0xde2
- 34307 52fe 03       		.byte	0x3
- 34308 52ff 91       		.byte	0x91
- 34309 5300 9066     		.sleb128 -3312
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 937
-
-
- 34310 5302 32       		.uleb128 0x32
- 34311 5303 D80D0000 		.long	0xdd8
- 34312 5307 03       		.byte	0x3
- 34313 5308 91       		.byte	0x91
- 34314 5309 A066     		.sleb128 -3296
- 34315 530b 00       		.byte	0x0
- 34316 530c 31       		.uleb128 0x31
- 34317 530d 6E0D0000 		.long	0xd6e
- 34318 5311 00000000 		.quad	.LBB1276
- 34318      00000000 
- 34319 5319 00000000 		.quad	.LBE1276
- 34319      00000000 
- 34320 5321 02       		.byte	0x2
- 34321 5322 6803     		.value	0x368
- 34322 5324 71530000 		.long	0x5371
- 34323 5328 32       		.uleb128 0x32
- 34324 5329 8C0D0000 		.long	0xd8c
- 34325 532d 03       		.byte	0x3
- 34326 532e 91       		.byte	0x91
- 34327 532f B066     		.sleb128 -3280
- 34328 5331 32       		.uleb128 0x32
- 34329 5332 800D0000 		.long	0xd80
- 34330 5336 03       		.byte	0x3
- 34331 5337 91       		.byte	0x91
- 34332 5338 C066     		.sleb128 -3264
- 34333 533a 33       		.uleb128 0x33
- 34334 533b 00000000 		.quad	.LBB1277
- 34334      00000000 
- 34335 5343 00000000 		.quad	.LBE1277
- 34335      00000000 
- 34336 534b 34       		.uleb128 0x34
- 34337 534c 980D0000 		.long	0xd98
- 34338 5350 03       		.byte	0x3
- 34339 5351 91       		.byte	0x91
- 34340 5352 8053     		.sleb128 -5760
- 34341 5354 34       		.uleb128 0x34
- 34342 5355 A40D0000 		.long	0xda4
- 34343 5359 03       		.byte	0x3
- 34344 535a 91       		.byte	0x91
- 34345 535b F052     		.sleb128 -5776
- 34346 535d 34       		.uleb128 0x34
- 34347 535e AF0D0000 		.long	0xdaf
- 34348 5362 03       		.byte	0x3
- 34349 5363 91       		.byte	0x91
- 34350 5364 E052     		.sleb128 -5792
- 34351 5366 34       		.uleb128 0x34
- 34352 5367 BB0D0000 		.long	0xdbb
- 34353 536b 03       		.byte	0x3
- 34354 536c 91       		.byte	0x91
- 34355 536d DC66     		.sleb128 -3236
- 34356 536f 00       		.byte	0x0
- 34357 5370 00       		.byte	0x0
- 34358 5371 31       		.uleb128 0x31
- 34359 5372 C70D0000 		.long	0xdc7
- 34360 5376 00000000 		.quad	.LBB1278
- 34360      00000000 
- 34361 537e 00000000 		.quad	.LBE1278
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 938
-
-
- 34361      00000000 
- 34362 5386 02       		.byte	0x2
- 34363 5387 6A03     		.value	0x36a
- 34364 5389 A0530000 		.long	0x53a0
- 34365 538d 32       		.uleb128 0x32
- 34366 538e E20D0000 		.long	0xde2
- 34367 5392 03       		.byte	0x3
- 34368 5393 91       		.byte	0x91
- 34369 5394 E066     		.sleb128 -3232
- 34370 5396 32       		.uleb128 0x32
- 34371 5397 D80D0000 		.long	0xdd8
- 34372 539b 03       		.byte	0x3
- 34373 539c 91       		.byte	0x91
- 34374 539d F066     		.sleb128 -3216
- 34375 539f 00       		.byte	0x0
- 34376 53a0 31       		.uleb128 0x31
- 34377 53a1 ED0D0000 		.long	0xded
- 34378 53a5 00000000 		.quad	.LBB1280
- 34378      00000000 
- 34379 53ad 00000000 		.quad	.LBE1280
- 34379      00000000 
- 34380 53b5 02       		.byte	0x2
- 34381 53b6 6C03     		.value	0x36c
- 34382 53b8 CF530000 		.long	0x53cf
- 34383 53bc 32       		.uleb128 0x32
- 34384 53bd 0A0E0000 		.long	0xe0a
- 34385 53c1 03       		.byte	0x3
- 34386 53c2 91       		.byte	0x91
- 34387 53c3 8067     		.sleb128 -3200
- 34388 53c5 32       		.uleb128 0x32
- 34389 53c6 FF0D0000 		.long	0xdff
- 34390 53ca 03       		.byte	0x3
- 34391 53cb 91       		.byte	0x91
- 34392 53cc 9067     		.sleb128 -3184
- 34393 53ce 00       		.byte	0x0
- 34394 53cf 35       		.uleb128 0x35
- 34395 53d0 1F0D0000 		.long	0xd1f
- 34396 53d4 00000000 		.quad	.LBB1282
- 34396      00000000 
- 34397 53dc 00000000 		.quad	.LBE1282
- 34397      00000000 
- 34398 53e4 02       		.byte	0x2
- 34399 53e5 6E03     		.value	0x36e
- 34400 53e7 32       		.uleb128 0x32
- 34401 53e8 3A0D0000 		.long	0xd3a
- 34402 53ec 03       		.byte	0x3
- 34403 53ed 91       		.byte	0x91
- 34404 53ee A067     		.sleb128 -3168
- 34405 53f0 32       		.uleb128 0x32
- 34406 53f1 300D0000 		.long	0xd30
- 34407 53f5 03       		.byte	0x3
- 34408 53f6 91       		.byte	0x91
- 34409 53f7 B067     		.sleb128 -3152
- 34410 53f9 00       		.byte	0x0
- 34411 53fa 00       		.byte	0x0
- 34412 53fb 00       		.byte	0x0
- 34413 53fc 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 939
-
-
- 34414 53fd 36       		.uleb128 0x36
- 34415 53fe 00000000 		.quad	.LBB1284
- 34415      00000000 
- 34416 5406 00000000 		.quad	.LBE1284
- 34416      00000000 
- 34417 540e 1C540000 		.long	0x541c
- 34418 5412 34       		.uleb128 0x34
- 34419 5413 180C0000 		.long	0xc18
- 34420 5417 03       		.byte	0x3
- 34421 5418 91       		.byte	0x91
- 34422 5419 9052     		.sleb128 -5872
- 34423 541b 00       		.byte	0x0
- 34424 541c 31       		.uleb128 0x31
- 34425 541d 160E0000 		.long	0xe16
- 34426 5421 00000000 		.quad	.LBB1285
- 34426      00000000 
- 34427 5429 00000000 		.quad	.LBE1285
- 34427      00000000 
- 34428 5431 02       		.byte	0x2
- 34429 5432 9406     		.value	0x694
- 34430 5434 C4540000 		.long	0x54c4
- 34431 5438 32       		.uleb128 0x32
- 34432 5439 280E0000 		.long	0xe28
- 34433 543d 03       		.byte	0x3
- 34434 543e 91       		.byte	0x91
- 34435 543f C067     		.sleb128 -3136
- 34436 5441 33       		.uleb128 0x33
- 34437 5442 00000000 		.quad	.LBB1286
- 34437      00000000 
- 34438 544a 00000000 		.quad	.LBE1286
- 34438      00000000 
- 34439 5452 34       		.uleb128 0x34
- 34440 5453 340E0000 		.long	0xe34
- 34441 5457 09       		.byte	0x9
- 34442 5458 03       		.byte	0x3
- 34443 5459 00000000 		.quad	ShiftRowTable.6768
- 34443      00000000 
- 34444 5461 35       		.uleb128 0x35
- 34445 5462 6E0D0000 		.long	0xd6e
- 34446 5466 00000000 		.quad	.LBB1287
- 34446      00000000 
- 34447 546e 00000000 		.quad	.LBE1287
- 34447      00000000 
- 34448 5476 02       		.byte	0x2
- 34449 5477 9B02     		.value	0x29b
- 34450 5479 32       		.uleb128 0x32
- 34451 547a 8C0D0000 		.long	0xd8c
- 34452 547e 03       		.byte	0x3
- 34453 547f 91       		.byte	0x91
- 34454 5480 D067     		.sleb128 -3120
- 34455 5482 32       		.uleb128 0x32
- 34456 5483 800D0000 		.long	0xd80
- 34457 5487 03       		.byte	0x3
- 34458 5488 91       		.byte	0x91
- 34459 5489 E067     		.sleb128 -3104
- 34460 548b 33       		.uleb128 0x33
- 34461 548c 00000000 		.quad	.LBB1288
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 940
-
-
- 34461      00000000 
- 34462 5494 00000000 		.quad	.LBE1288
- 34462      00000000 
- 34463 549c 34       		.uleb128 0x34
- 34464 549d 980D0000 		.long	0xd98
- 34465 54a1 03       		.byte	0x3
- 34466 54a2 91       		.byte	0x91
- 34467 54a3 B053     		.sleb128 -5712
- 34468 54a5 34       		.uleb128 0x34
- 34469 54a6 A40D0000 		.long	0xda4
- 34470 54aa 03       		.byte	0x3
- 34471 54ab 91       		.byte	0x91
- 34472 54ac A053     		.sleb128 -5728
- 34473 54ae 34       		.uleb128 0x34
- 34474 54af AF0D0000 		.long	0xdaf
- 34475 54b3 03       		.byte	0x3
- 34476 54b4 91       		.byte	0x91
- 34477 54b5 9053     		.sleb128 -5744
- 34478 54b7 34       		.uleb128 0x34
- 34479 54b8 BB0D0000 		.long	0xdbb
- 34480 54bc 03       		.byte	0x3
- 34481 54bd 91       		.byte	0x91
- 34482 54be FC67     		.sleb128 -3076
- 34483 54c0 00       		.byte	0x0
- 34484 54c1 00       		.byte	0x0
- 34485 54c2 00       		.byte	0x0
- 34486 54c3 00       		.byte	0x0
- 34487 54c4 36       		.uleb128 0x36
- 34488 54c5 00000000 		.quad	.LBB1289
- 34488      00000000 
- 34489 54cd 00000000 		.quad	.LBE1289
- 34489      00000000 
- 34490 54d5 E3540000 		.long	0x54e3
- 34491 54d9 34       		.uleb128 0x34
- 34492 54da 280C0000 		.long	0xc28
- 34493 54de 03       		.byte	0x3
- 34494 54df 91       		.byte	0x91
- 34495 54e0 8052     		.sleb128 -5888
- 34496 54e2 00       		.byte	0x0
- 34497 54e3 31       		.uleb128 0x31
- 34498 54e4 520E0000 		.long	0xe52
- 34499 54e8 00000000 		.quad	.LBB1290
- 34499      00000000 
- 34500 54f0 00000000 		.quad	.LBE1290
- 34500      00000000 
- 34501 54f8 02       		.byte	0x2
- 34502 54f9 9606     		.value	0x696
- 34503 54fb 12550000 		.long	0x5512
- 34504 54ff 32       		.uleb128 0x32
- 34505 5500 6D0E0000 		.long	0xe6d
- 34506 5504 03       		.byte	0x3
- 34507 5505 91       		.byte	0x91
- 34508 5506 8068     		.sleb128 -3072
- 34509 5508 32       		.uleb128 0x32
- 34510 5509 630E0000 		.long	0xe63
- 34511 550d 03       		.byte	0x3
- 34512 550e 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 941
-
-
- 34513 550f 9068     		.sleb128 -3056
- 34514 5511 00       		.byte	0x0
- 34515 5512 36       		.uleb128 0x36
- 34516 5513 00000000 		.quad	.LBB1292
- 34516      00000000 
- 34517 551b 00000000 		.quad	.LBE1292
- 34517      00000000 
- 34518 5523 31550000 		.long	0x5531
- 34519 5527 34       		.uleb128 0x34
- 34520 5528 380C0000 		.long	0xc38
- 34521 552c 03       		.byte	0x3
- 34522 552d 91       		.byte	0x91
- 34523 552e F051     		.sleb128 -5904
- 34524 5530 00       		.byte	0x0
- 34525 5531 31       		.uleb128 0x31
- 34526 5532 780E0000 		.long	0xe78
- 34527 5536 00000000 		.quad	.LBB1293
- 34527      00000000 
- 34528 553e 00000000 		.quad	.LBE1293
- 34528      00000000 
- 34529 5546 02       		.byte	0x2
- 34530 5547 9806     		.value	0x698
- 34531 5549 72550000 		.long	0x5572
- 34532 554d 32       		.uleb128 0x32
- 34533 554e 8A0E0000 		.long	0xe8a
- 34534 5552 03       		.byte	0x3
- 34535 5553 91       		.byte	0x91
- 34536 5554 A068     		.sleb128 -3040
- 34537 5556 33       		.uleb128 0x33
- 34538 5557 00000000 		.quad	.LBB1294
- 34538      00000000 
- 34539 555f 00000000 		.quad	.LBE1294
- 34539      00000000 
- 34540 5567 34       		.uleb128 0x34
- 34541 5568 960E0000 		.long	0xe96
- 34542 556c 03       		.byte	0x3
- 34543 556d 91       		.byte	0x91
- 34544 556e C053     		.sleb128 -5696
- 34545 5570 00       		.byte	0x0
- 34546 5571 00       		.byte	0x0
- 34547 5572 33       		.uleb128 0x33
- 34548 5573 00000000 		.quad	.LBB1295
- 34548      00000000 
- 34549 557b 00000000 		.quad	.LBE1295
- 34549      00000000 
- 34550 5583 34       		.uleb128 0x34
- 34551 5584 440C0000 		.long	0xc44
- 34552 5588 03       		.byte	0x3
- 34553 5589 91       		.byte	0x91
- 34554 558a E051     		.sleb128 -5920
- 34555 558c 00       		.byte	0x0
- 34556 558d 00       		.byte	0x0
- 34557 558e 00       		.byte	0x0
- 34558 558f 31       		.uleb128 0x31
- 34559 5590 780E0000 		.long	0xe78
- 34560 5594 00000000 		.quad	.LBB1296
- 34560      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 942
-
-
- 34561 559c 00000000 		.quad	.LBE1296
- 34561      00000000 
- 34562 55a4 02       		.byte	0x2
- 34563 55a5 1007     		.value	0x710
- 34564 55a7 D0550000 		.long	0x55d0
- 34565 55ab 32       		.uleb128 0x32
- 34566 55ac 8A0E0000 		.long	0xe8a
- 34567 55b0 03       		.byte	0x3
- 34568 55b1 91       		.byte	0x91
- 34569 55b2 B068     		.sleb128 -3024
- 34570 55b4 33       		.uleb128 0x33
- 34571 55b5 00000000 		.quad	.LBB1297
- 34571      00000000 
- 34572 55bd 00000000 		.quad	.LBE1297
- 34572      00000000 
- 34573 55c5 34       		.uleb128 0x34
- 34574 55c6 960E0000 		.long	0xe96
- 34575 55ca 03       		.byte	0x3
- 34576 55cb 91       		.byte	0x91
- 34577 55cc D053     		.sleb128 -5680
- 34578 55ce 00       		.byte	0x0
- 34579 55cf 00       		.byte	0x0
- 34580 55d0 31       		.uleb128 0x31
- 34581 55d1 C5480000 		.long	0x48c5
- 34582 55d5 00000000 		.quad	.LBB1298
- 34582      00000000 
- 34583 55dd 00000000 		.quad	.LBE1298
- 34583      00000000 
- 34584 55e5 02       		.byte	0x2
- 34585 55e6 1707     		.value	0x717
- 34586 55e8 98560000 		.long	0x5698
- 34587 55ec 32       		.uleb128 0x32
- 34588 55ed E3480000 		.long	0x48e3
- 34589 55f1 03       		.byte	0x3
- 34590 55f2 91       		.byte	0x91
- 34591 55f3 CC68     		.sleb128 -2996
- 34592 55f5 32       		.uleb128 0x32
- 34593 55f6 D7480000 		.long	0x48d7
- 34594 55fa 03       		.byte	0x3
- 34595 55fb 91       		.byte	0x91
- 34596 55fc D068     		.sleb128 -2992
- 34597 55fe 33       		.uleb128 0x33
- 34598 55ff 00000000 		.quad	.LBB1299
- 34598      00000000 
- 34599 5607 00000000 		.quad	.LBE1299
- 34599      00000000 
- 34600 560f 34       		.uleb128 0x34
- 34601 5610 EF480000 		.long	0x48ef
- 34602 5614 03       		.byte	0x3
- 34603 5615 91       		.byte	0x91
- 34604 5616 F053     		.sleb128 -5648
- 34605 5618 34       		.uleb128 0x34
- 34606 5619 F9480000 		.long	0x48f9
- 34607 561d 03       		.byte	0x3
- 34608 561e 91       		.byte	0x91
- 34609 561f F068     		.sleb128 -2960
- 34610 5621 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 943
-
-
- 34611 5622 05490000 		.long	0x4905
- 34612 5626 03       		.byte	0x3
- 34613 5627 91       		.byte	0x91
- 34614 5628 EC68     		.sleb128 -2964
- 34615 562a 31       		.uleb128 0x31
- 34616 562b 12490000 		.long	0x4912
- 34617 562f 00000000 		.quad	.LBB1300
- 34617      00000000 
- 34618 5637 00000000 		.quad	.LBE1300
- 34618      00000000 
- 34619 563f 02       		.byte	0x2
- 34620 5640 5F06     		.value	0x65f
- 34621 5642 74560000 		.long	0x5674
- 34622 5646 32       		.uleb128 0x32
- 34623 5647 24490000 		.long	0x4924
- 34624 564b 03       		.byte	0x3
- 34625 564c 91       		.byte	0x91
- 34626 564d F468     		.sleb128 -2956
- 34627 564f 33       		.uleb128 0x33
- 34628 5650 00000000 		.quad	.LBB1301
- 34628      00000000 
- 34629 5658 00000000 		.quad	.LBE1301
- 34629      00000000 
- 34630 5660 34       		.uleb128 0x34
- 34631 5661 2E490000 		.long	0x492e
- 34632 5665 03       		.byte	0x3
- 34633 5666 91       		.byte	0x91
- 34634 5667 E053     		.sleb128 -5664
- 34635 5669 34       		.uleb128 0x34
- 34636 566a 3A490000 		.long	0x493a
- 34637 566e 03       		.byte	0x3
- 34638 566f 91       		.byte	0x91
- 34639 5670 F868     		.sleb128 -2952
- 34640 5672 00       		.byte	0x0
- 34641 5673 00       		.byte	0x0
- 34642 5674 35       		.uleb128 0x35
- 34643 5675 46490000 		.long	0x4946
- 34644 5679 00000000 		.quad	.LBB1302
- 34644      00000000 
- 34645 5681 00000000 		.quad	.LBE1302
- 34645      00000000 
- 34646 5689 02       		.byte	0x2
- 34647 568a 6006     		.value	0x660
- 34648 568c 32       		.uleb128 0x32
- 34649 568d 58490000 		.long	0x4958
- 34650 5691 03       		.byte	0x3
- 34651 5692 91       		.byte	0x91
- 34652 5693 FC68     		.sleb128 -2948
- 34653 5695 00       		.byte	0x0
- 34654 5696 00       		.byte	0x0
- 34655 5697 00       		.byte	0x0
- 34656 5698 31       		.uleb128 0x31
- 34657 5699 A30E0000 		.long	0xea3
- 34658 569d 00000000 		.quad	.LBB1304
- 34658      00000000 
- 34659 56a5 00000000 		.quad	.LBE1304
- 34659      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 944
-
-
- 34660 56ad 02       		.byte	0x2
- 34661 56ae 1907     		.value	0x719
- 34662 56b0 98570000 		.long	0x5798
- 34663 56b4 32       		.uleb128 0x32
- 34664 56b5 B50E0000 		.long	0xeb5
- 34665 56b9 03       		.byte	0x3
- 34666 56ba 91       		.byte	0x91
- 34667 56bb 8069     		.sleb128 -2944
- 34668 56bd 33       		.uleb128 0x33
- 34669 56be 00000000 		.quad	.LBB1305
- 34669      00000000 
- 34670 56c6 00000000 		.quad	.LBE1305
- 34670      00000000 
- 34671 56ce 34       		.uleb128 0x34
- 34672 56cf C10E0000 		.long	0xec1
- 34673 56d3 03       		.byte	0x3
- 34674 56d4 76       		.byte	0x76
- 34675 56d5 C04C     		.sleb128 -6592
- 34676 56d7 31       		.uleb128 0x31
- 34677 56d8 CE0E0000 		.long	0xece
- 34678 56dc 00000000 		.quad	.LBB1306
- 34678      00000000 
- 34679 56e4 00000000 		.quad	.LBE1306
- 34679      00000000 
- 34680 56ec 02       		.byte	0x2
- 34681 56ed 1F06     		.value	0x61f
- 34682 56ef 18570000 		.long	0x5718
- 34683 56f3 32       		.uleb128 0x32
- 34684 56f4 E00E0000 		.long	0xee0
- 34685 56f8 03       		.byte	0x3
- 34686 56f9 91       		.byte	0x91
- 34687 56fa 9069     		.sleb128 -2928
- 34688 56fc 33       		.uleb128 0x33
- 34689 56fd 00000000 		.quad	.LBB1307
- 34689      00000000 
- 34690 5705 00000000 		.quad	.LBE1307
- 34690      00000000 
- 34691 570d 34       		.uleb128 0x34
- 34692 570e EC0E0000 		.long	0xeec
- 34693 5712 03       		.byte	0x3
- 34694 5713 91       		.byte	0x91
- 34695 5714 8054     		.sleb128 -5632
- 34696 5716 00       		.byte	0x0
- 34697 5717 00       		.byte	0x0
- 34698 5718 31       		.uleb128 0x31
- 34699 5719 CE0E0000 		.long	0xece
- 34700 571d 00000000 		.quad	.LBB1308
- 34700      00000000 
- 34701 5725 00000000 		.quad	.LBE1308
- 34701      00000000 
- 34702 572d 02       		.byte	0x2
- 34703 572e 2006     		.value	0x620
- 34704 5730 59570000 		.long	0x5759
- 34705 5734 32       		.uleb128 0x32
- 34706 5735 E00E0000 		.long	0xee0
- 34707 5739 03       		.byte	0x3
- 34708 573a 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 945
-
-
- 34709 573b A069     		.sleb128 -2912
- 34710 573d 33       		.uleb128 0x33
- 34711 573e 00000000 		.quad	.LBB1309
- 34711      00000000 
- 34712 5746 00000000 		.quad	.LBE1309
- 34712      00000000 
- 34713 574e 34       		.uleb128 0x34
- 34714 574f EC0E0000 		.long	0xeec
- 34715 5753 03       		.byte	0x3
- 34716 5754 91       		.byte	0x91
- 34717 5755 9054     		.sleb128 -5616
- 34718 5757 00       		.byte	0x0
- 34719 5758 00       		.byte	0x0
- 34720 5759 35       		.uleb128 0x35
- 34721 575a CE0E0000 		.long	0xece
- 34722 575e 00000000 		.quad	.LBB1310
- 34722      00000000 
- 34723 5766 00000000 		.quad	.LBE1310
- 34723      00000000 
- 34724 576e 02       		.byte	0x2
- 34725 576f 2106     		.value	0x621
- 34726 5771 32       		.uleb128 0x32
- 34727 5772 E00E0000 		.long	0xee0
- 34728 5776 03       		.byte	0x3
- 34729 5777 91       		.byte	0x91
- 34730 5778 B069     		.sleb128 -2896
- 34731 577a 33       		.uleb128 0x33
- 34732 577b 00000000 		.quad	.LBB1311
- 34732      00000000 
- 34733 5783 00000000 		.quad	.LBE1311
- 34733      00000000 
- 34734 578b 34       		.uleb128 0x34
- 34735 578c EC0E0000 		.long	0xeec
- 34736 5790 03       		.byte	0x3
- 34737 5791 91       		.byte	0x91
- 34738 5792 A054     		.sleb128 -5600
- 34739 5794 00       		.byte	0x0
- 34740 5795 00       		.byte	0x0
- 34741 5796 00       		.byte	0x0
- 34742 5797 00       		.byte	0x0
- 34743 5798 31       		.uleb128 0x31
- 34744 5799 A30E0000 		.long	0xea3
- 34745 579d 00000000 		.quad	.LBB1312
- 34745      00000000 
- 34746 57a5 00000000 		.quad	.LBE1312
- 34746      00000000 
- 34747 57ad 02       		.byte	0x2
- 34748 57ae 1B07     		.value	0x71b
- 34749 57b0 98580000 		.long	0x5898
- 34750 57b4 32       		.uleb128 0x32
- 34751 57b5 B50E0000 		.long	0xeb5
- 34752 57b9 03       		.byte	0x3
- 34753 57ba 91       		.byte	0x91
- 34754 57bb C069     		.sleb128 -2880
- 34755 57bd 33       		.uleb128 0x33
- 34756 57be 00000000 		.quad	.LBB1313
- 34756      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 946
-
-
- 34757 57c6 00000000 		.quad	.LBE1313
- 34757      00000000 
- 34758 57ce 34       		.uleb128 0x34
- 34759 57cf C10E0000 		.long	0xec1
- 34760 57d3 03       		.byte	0x3
- 34761 57d4 76       		.byte	0x76
- 34762 57d5 D04C     		.sleb128 -6576
- 34763 57d7 31       		.uleb128 0x31
- 34764 57d8 CE0E0000 		.long	0xece
- 34765 57dc 00000000 		.quad	.LBB1314
- 34765      00000000 
- 34766 57e4 00000000 		.quad	.LBE1314
- 34766      00000000 
- 34767 57ec 02       		.byte	0x2
- 34768 57ed 1F06     		.value	0x61f
- 34769 57ef 18580000 		.long	0x5818
- 34770 57f3 32       		.uleb128 0x32
- 34771 57f4 E00E0000 		.long	0xee0
- 34772 57f8 03       		.byte	0x3
- 34773 57f9 91       		.byte	0x91
- 34774 57fa D069     		.sleb128 -2864
- 34775 57fc 33       		.uleb128 0x33
- 34776 57fd 00000000 		.quad	.LBB1315
- 34776      00000000 
- 34777 5805 00000000 		.quad	.LBE1315
- 34777      00000000 
- 34778 580d 34       		.uleb128 0x34
- 34779 580e EC0E0000 		.long	0xeec
- 34780 5812 03       		.byte	0x3
- 34781 5813 91       		.byte	0x91
- 34782 5814 B054     		.sleb128 -5584
- 34783 5816 00       		.byte	0x0
- 34784 5817 00       		.byte	0x0
- 34785 5818 31       		.uleb128 0x31
- 34786 5819 CE0E0000 		.long	0xece
- 34787 581d 00000000 		.quad	.LBB1316
- 34787      00000000 
- 34788 5825 00000000 		.quad	.LBE1316
- 34788      00000000 
- 34789 582d 02       		.byte	0x2
- 34790 582e 2006     		.value	0x620
- 34791 5830 59580000 		.long	0x5859
- 34792 5834 32       		.uleb128 0x32
- 34793 5835 E00E0000 		.long	0xee0
- 34794 5839 03       		.byte	0x3
- 34795 583a 91       		.byte	0x91
- 34796 583b E069     		.sleb128 -2848
- 34797 583d 33       		.uleb128 0x33
- 34798 583e 00000000 		.quad	.LBB1317
- 34798      00000000 
- 34799 5846 00000000 		.quad	.LBE1317
- 34799      00000000 
- 34800 584e 34       		.uleb128 0x34
- 34801 584f EC0E0000 		.long	0xeec
- 34802 5853 03       		.byte	0x3
- 34803 5854 91       		.byte	0x91
- 34804 5855 C054     		.sleb128 -5568
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 947
-
-
- 34805 5857 00       		.byte	0x0
- 34806 5858 00       		.byte	0x0
- 34807 5859 35       		.uleb128 0x35
- 34808 585a CE0E0000 		.long	0xece
- 34809 585e 00000000 		.quad	.LBB1318
- 34809      00000000 
- 34810 5866 00000000 		.quad	.LBE1318
- 34810      00000000 
- 34811 586e 02       		.byte	0x2
- 34812 586f 2106     		.value	0x621
- 34813 5871 32       		.uleb128 0x32
- 34814 5872 E00E0000 		.long	0xee0
- 34815 5876 03       		.byte	0x3
- 34816 5877 91       		.byte	0x91
- 34817 5878 F069     		.sleb128 -2832
- 34818 587a 33       		.uleb128 0x33
- 34819 587b 00000000 		.quad	.LBB1319
- 34819      00000000 
- 34820 5883 00000000 		.quad	.LBE1319
- 34820      00000000 
- 34821 588b 34       		.uleb128 0x34
- 34822 588c EC0E0000 		.long	0xeec
- 34823 5890 03       		.byte	0x3
- 34824 5891 91       		.byte	0x91
- 34825 5892 D054     		.sleb128 -5552
- 34826 5894 00       		.byte	0x0
- 34827 5895 00       		.byte	0x0
- 34828 5896 00       		.byte	0x0
- 34829 5897 00       		.byte	0x0
- 34830 5898 31       		.uleb128 0x31
- 34831 5899 780E0000 		.long	0xe78
- 34832 589d 00000000 		.quad	.LBB1320
- 34832      00000000 
- 34833 58a5 00000000 		.quad	.LBE1320
- 34833      00000000 
- 34834 58ad 02       		.byte	0x2
- 34835 58ae 1C07     		.value	0x71c
- 34836 58b0 D9580000 		.long	0x58d9
- 34837 58b4 32       		.uleb128 0x32
- 34838 58b5 8A0E0000 		.long	0xe8a
- 34839 58b9 03       		.byte	0x3
- 34840 58ba 91       		.byte	0x91
- 34841 58bb 806A     		.sleb128 -2816
- 34842 58bd 33       		.uleb128 0x33
- 34843 58be 00000000 		.quad	.LBB1321
- 34843      00000000 
- 34844 58c6 00000000 		.quad	.LBE1321
- 34844      00000000 
- 34845 58ce 34       		.uleb128 0x34
- 34846 58cf 960E0000 		.long	0xe96
- 34847 58d3 03       		.byte	0x3
- 34848 58d4 91       		.byte	0x91
- 34849 58d5 E054     		.sleb128 -5536
- 34850 58d7 00       		.byte	0x0
- 34851 58d8 00       		.byte	0x0
- 34852 58d9 31       		.uleb128 0x31
- 34853 58da 63490000 		.long	0x4963
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 948
-
-
- 34854 58de 00000000 		.quad	.LBB1322
- 34854      00000000 
- 34855 58e6 00000000 		.quad	.LBE1322
- 34855      00000000 
- 34856 58ee 02       		.byte	0x2
- 34857 58ef 1E07     		.value	0x71e
- 34858 58f1 2C590000 		.long	0x592c
- 34859 58f5 32       		.uleb128 0x32
- 34860 58f6 7F490000 		.long	0x497f
- 34861 58fa 03       		.byte	0x3
- 34862 58fb 91       		.byte	0x91
- 34863 58fc 906A     		.sleb128 -2800
- 34864 58fe 32       		.uleb128 0x32
- 34865 58ff 75490000 		.long	0x4975
- 34866 5903 03       		.byte	0x3
- 34867 5904 91       		.byte	0x91
- 34868 5905 A06A     		.sleb128 -2784
- 34869 5907 33       		.uleb128 0x33
- 34870 5908 00000000 		.quad	.LBB1323
- 34870      00000000 
- 34871 5910 00000000 		.quad	.LBE1323
- 34871      00000000 
- 34872 5918 34       		.uleb128 0x34
- 34873 5919 89490000 		.long	0x4989
- 34874 591d 03       		.byte	0x3
- 34875 591e 91       		.byte	0x91
- 34876 591f 8055     		.sleb128 -5504
- 34877 5921 34       		.uleb128 0x34
- 34878 5922 94490000 		.long	0x4994
- 34879 5926 03       		.byte	0x3
- 34880 5927 91       		.byte	0x91
- 34881 5928 F054     		.sleb128 -5520
- 34882 592a 00       		.byte	0x0
- 34883 592b 00       		.byte	0x0
- 34884 592c 31       		.uleb128 0x31
- 34885 592d A0490000 		.long	0x49a0
- 34886 5931 00000000 		.quad	.LBB1324
- 34886      00000000 
- 34887 5939 00000000 		.quad	.LBE1324
- 34887      00000000 
- 34888 5941 02       		.byte	0x2
- 34889 5942 2107     		.value	0x721
- 34890 5944 7F590000 		.long	0x597f
- 34891 5948 32       		.uleb128 0x32
- 34892 5949 BC490000 		.long	0x49bc
- 34893 594d 03       		.byte	0x3
- 34894 594e 91       		.byte	0x91
- 34895 594f B06A     		.sleb128 -2768
- 34896 5951 32       		.uleb128 0x32
- 34897 5952 B2490000 		.long	0x49b2
- 34898 5956 03       		.byte	0x3
- 34899 5957 91       		.byte	0x91
- 34900 5958 C06A     		.sleb128 -2752
- 34901 595a 33       		.uleb128 0x33
- 34902 595b 00000000 		.quad	.LBB1325
- 34902      00000000 
- 34903 5963 00000000 		.quad	.LBE1325
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 949
-
-
- 34903      00000000 
- 34904 596b 34       		.uleb128 0x34
- 34905 596c C6490000 		.long	0x49c6
- 34906 5970 03       		.byte	0x3
- 34907 5971 91       		.byte	0x91
- 34908 5972 A055     		.sleb128 -5472
- 34909 5974 34       		.uleb128 0x34
- 34910 5975 D1490000 		.long	0x49d1
- 34911 5979 03       		.byte	0x3
- 34912 597a 91       		.byte	0x91
- 34913 597b 9055     		.sleb128 -5488
- 34914 597d 00       		.byte	0x0
- 34915 597e 00       		.byte	0x0
- 34916 597f 31       		.uleb128 0x31
- 34917 5980 A30E0000 		.long	0xea3
- 34918 5984 00000000 		.quad	.LBB1326
- 34918      00000000 
- 34919 598c 00000000 		.quad	.LBE1326
- 34919      00000000 
- 34920 5994 02       		.byte	0x2
- 34921 5995 2507     		.value	0x725
- 34922 5997 7F5A0000 		.long	0x5a7f
- 34923 599b 32       		.uleb128 0x32
- 34924 599c B50E0000 		.long	0xeb5
- 34925 59a0 03       		.byte	0x3
- 34926 59a1 91       		.byte	0x91
- 34927 59a2 D06A     		.sleb128 -2736
- 34928 59a4 33       		.uleb128 0x33
- 34929 59a5 00000000 		.quad	.LBB1327
- 34929      00000000 
- 34930 59ad 00000000 		.quad	.LBE1327
- 34930      00000000 
- 34931 59b5 34       		.uleb128 0x34
- 34932 59b6 C10E0000 		.long	0xec1
- 34933 59ba 03       		.byte	0x3
- 34934 59bb 76       		.byte	0x76
- 34935 59bc E04C     		.sleb128 -6560
- 34936 59be 31       		.uleb128 0x31
- 34937 59bf CE0E0000 		.long	0xece
- 34938 59c3 00000000 		.quad	.LBB1328
- 34938      00000000 
- 34939 59cb 00000000 		.quad	.LBE1328
- 34939      00000000 
- 34940 59d3 02       		.byte	0x2
- 34941 59d4 1F06     		.value	0x61f
- 34942 59d6 FF590000 		.long	0x59ff
- 34943 59da 32       		.uleb128 0x32
- 34944 59db E00E0000 		.long	0xee0
- 34945 59df 03       		.byte	0x3
- 34946 59e0 91       		.byte	0x91
- 34947 59e1 E06A     		.sleb128 -2720
- 34948 59e3 33       		.uleb128 0x33
- 34949 59e4 00000000 		.quad	.LBB1329
- 34949      00000000 
- 34950 59ec 00000000 		.quad	.LBE1329
- 34950      00000000 
- 34951 59f4 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 950
-
-
- 34952 59f5 EC0E0000 		.long	0xeec
- 34953 59f9 03       		.byte	0x3
- 34954 59fa 91       		.byte	0x91
- 34955 59fb B055     		.sleb128 -5456
- 34956 59fd 00       		.byte	0x0
- 34957 59fe 00       		.byte	0x0
- 34958 59ff 31       		.uleb128 0x31
- 34959 5a00 CE0E0000 		.long	0xece
- 34960 5a04 00000000 		.quad	.LBB1330
- 34960      00000000 
- 34961 5a0c 00000000 		.quad	.LBE1330
- 34961      00000000 
- 34962 5a14 02       		.byte	0x2
- 34963 5a15 2006     		.value	0x620
- 34964 5a17 405A0000 		.long	0x5a40
- 34965 5a1b 32       		.uleb128 0x32
- 34966 5a1c E00E0000 		.long	0xee0
- 34967 5a20 03       		.byte	0x3
- 34968 5a21 91       		.byte	0x91
- 34969 5a22 F06A     		.sleb128 -2704
- 34970 5a24 33       		.uleb128 0x33
- 34971 5a25 00000000 		.quad	.LBB1331
- 34971      00000000 
- 34972 5a2d 00000000 		.quad	.LBE1331
- 34972      00000000 
- 34973 5a35 34       		.uleb128 0x34
- 34974 5a36 EC0E0000 		.long	0xeec
- 34975 5a3a 03       		.byte	0x3
- 34976 5a3b 91       		.byte	0x91
- 34977 5a3c C055     		.sleb128 -5440
- 34978 5a3e 00       		.byte	0x0
- 34979 5a3f 00       		.byte	0x0
- 34980 5a40 35       		.uleb128 0x35
- 34981 5a41 CE0E0000 		.long	0xece
- 34982 5a45 00000000 		.quad	.LBB1332
- 34982      00000000 
- 34983 5a4d 00000000 		.quad	.LBE1332
- 34983      00000000 
- 34984 5a55 02       		.byte	0x2
- 34985 5a56 2106     		.value	0x621
- 34986 5a58 32       		.uleb128 0x32
- 34987 5a59 E00E0000 		.long	0xee0
- 34988 5a5d 03       		.byte	0x3
- 34989 5a5e 91       		.byte	0x91
- 34990 5a5f 806B     		.sleb128 -2688
- 34991 5a61 33       		.uleb128 0x33
- 34992 5a62 00000000 		.quad	.LBB1333
- 34992      00000000 
- 34993 5a6a 00000000 		.quad	.LBE1333
- 34993      00000000 
- 34994 5a72 34       		.uleb128 0x34
- 34995 5a73 EC0E0000 		.long	0xeec
- 34996 5a77 03       		.byte	0x3
- 34997 5a78 91       		.byte	0x91
- 34998 5a79 D055     		.sleb128 -5424
- 34999 5a7b 00       		.byte	0x0
- 35000 5a7c 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 951
-
-
- 35001 5a7d 00       		.byte	0x0
- 35002 5a7e 00       		.byte	0x0
- 35003 5a7f 31       		.uleb128 0x31
- 35004 5a80 A30E0000 		.long	0xea3
- 35005 5a84 00000000 		.quad	.LBB1334
- 35005      00000000 
- 35006 5a8c 00000000 		.quad	.LBE1334
- 35006      00000000 
- 35007 5a94 02       		.byte	0x2
- 35008 5a95 2607     		.value	0x726
- 35009 5a97 7F5B0000 		.long	0x5b7f
- 35010 5a9b 32       		.uleb128 0x32
- 35011 5a9c B50E0000 		.long	0xeb5
- 35012 5aa0 03       		.byte	0x3
- 35013 5aa1 91       		.byte	0x91
- 35014 5aa2 906B     		.sleb128 -2672
- 35015 5aa4 33       		.uleb128 0x33
- 35016 5aa5 00000000 		.quad	.LBB1335
- 35016      00000000 
- 35017 5aad 00000000 		.quad	.LBE1335
- 35017      00000000 
- 35018 5ab5 34       		.uleb128 0x34
- 35019 5ab6 C10E0000 		.long	0xec1
- 35020 5aba 03       		.byte	0x3
- 35021 5abb 76       		.byte	0x76
- 35022 5abc F04C     		.sleb128 -6544
- 35023 5abe 31       		.uleb128 0x31
- 35024 5abf CE0E0000 		.long	0xece
- 35025 5ac3 00000000 		.quad	.LBB1336
- 35025      00000000 
- 35026 5acb 00000000 		.quad	.LBE1336
- 35026      00000000 
- 35027 5ad3 02       		.byte	0x2
- 35028 5ad4 1F06     		.value	0x61f
- 35029 5ad6 FF5A0000 		.long	0x5aff
- 35030 5ada 32       		.uleb128 0x32
- 35031 5adb E00E0000 		.long	0xee0
- 35032 5adf 03       		.byte	0x3
- 35033 5ae0 91       		.byte	0x91
- 35034 5ae1 A06B     		.sleb128 -2656
- 35035 5ae3 33       		.uleb128 0x33
- 35036 5ae4 00000000 		.quad	.LBB1337
- 35036      00000000 
- 35037 5aec 00000000 		.quad	.LBE1337
- 35037      00000000 
- 35038 5af4 34       		.uleb128 0x34
- 35039 5af5 EC0E0000 		.long	0xeec
- 35040 5af9 03       		.byte	0x3
- 35041 5afa 91       		.byte	0x91
- 35042 5afb E055     		.sleb128 -5408
- 35043 5afd 00       		.byte	0x0
- 35044 5afe 00       		.byte	0x0
- 35045 5aff 31       		.uleb128 0x31
- 35046 5b00 CE0E0000 		.long	0xece
- 35047 5b04 00000000 		.quad	.LBB1338
- 35047      00000000 
- 35048 5b0c 00000000 		.quad	.LBE1338
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 952
-
-
- 35048      00000000 
- 35049 5b14 02       		.byte	0x2
- 35050 5b15 2006     		.value	0x620
- 35051 5b17 405B0000 		.long	0x5b40
- 35052 5b1b 32       		.uleb128 0x32
- 35053 5b1c E00E0000 		.long	0xee0
- 35054 5b20 03       		.byte	0x3
- 35055 5b21 91       		.byte	0x91
- 35056 5b22 B06B     		.sleb128 -2640
- 35057 5b24 33       		.uleb128 0x33
- 35058 5b25 00000000 		.quad	.LBB1339
- 35058      00000000 
- 35059 5b2d 00000000 		.quad	.LBE1339
- 35059      00000000 
- 35060 5b35 34       		.uleb128 0x34
- 35061 5b36 EC0E0000 		.long	0xeec
- 35062 5b3a 03       		.byte	0x3
- 35063 5b3b 91       		.byte	0x91
- 35064 5b3c F055     		.sleb128 -5392
- 35065 5b3e 00       		.byte	0x0
- 35066 5b3f 00       		.byte	0x0
- 35067 5b40 35       		.uleb128 0x35
- 35068 5b41 CE0E0000 		.long	0xece
- 35069 5b45 00000000 		.quad	.LBB1340
- 35069      00000000 
- 35070 5b4d 00000000 		.quad	.LBE1340
- 35070      00000000 
- 35071 5b55 02       		.byte	0x2
- 35072 5b56 2106     		.value	0x621
- 35073 5b58 32       		.uleb128 0x32
- 35074 5b59 E00E0000 		.long	0xee0
- 35075 5b5d 03       		.byte	0x3
- 35076 5b5e 91       		.byte	0x91
- 35077 5b5f C06B     		.sleb128 -2624
- 35078 5b61 33       		.uleb128 0x33
- 35079 5b62 00000000 		.quad	.LBB1341
- 35079      00000000 
- 35080 5b6a 00000000 		.quad	.LBE1341
- 35080      00000000 
- 35081 5b72 34       		.uleb128 0x34
- 35082 5b73 EC0E0000 		.long	0xeec
- 35083 5b77 03       		.byte	0x3
- 35084 5b78 91       		.byte	0x91
- 35085 5b79 8056     		.sleb128 -5376
- 35086 5b7b 00       		.byte	0x0
- 35087 5b7c 00       		.byte	0x0
- 35088 5b7d 00       		.byte	0x0
- 35089 5b7e 00       		.byte	0x0
- 35090 5b7f 31       		.uleb128 0x31
- 35091 5b80 D10B0000 		.long	0xbd1
- 35092 5b84 00000000 		.quad	.LBB1342
- 35092      00000000 
- 35093 5b8c 00000000 		.quad	.LBE1342
- 35093      00000000 
- 35094 5b94 02       		.byte	0x2
- 35095 5b95 2707     		.value	0x727
- 35096 5b97 25600000 		.long	0x6025
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 953
-
-
- 35097 5b9b 32       		.uleb128 0x32
- 35098 5b9c EF0B0000 		.long	0xbef
- 35099 5ba0 03       		.byte	0x3
- 35100 5ba1 91       		.byte	0x91
- 35101 5ba2 DC6B     		.sleb128 -2596
- 35102 5ba4 32       		.uleb128 0x32
- 35103 5ba5 E30B0000 		.long	0xbe3
- 35104 5ba9 03       		.byte	0x3
- 35105 5baa 91       		.byte	0x91
- 35106 5bab E06B     		.sleb128 -2592
- 35107 5bad 33       		.uleb128 0x33
- 35108 5bae 00000000 		.quad	.LBB1343
- 35108      00000000 
- 35109 5bb6 00000000 		.quad	.LBE1343
- 35109      00000000 
- 35110 5bbe 34       		.uleb128 0x34
- 35111 5bbf FB0B0000 		.long	0xbfb
- 35112 5bc3 03       		.byte	0x3
- 35113 5bc4 76       		.byte	0x76
- 35114 5bc5 904D     		.sleb128 -6512
- 35115 5bc7 34       		.uleb128 0x34
- 35116 5bc8 070C0000 		.long	0xc07
- 35117 5bcc 03       		.byte	0x3
- 35118 5bcd 76       		.byte	0x76
- 35119 5bce 804D     		.sleb128 -6528
- 35120 5bd0 31       		.uleb128 0x31
- 35121 5bd1 500C0000 		.long	0xc50
- 35122 5bd5 00000000 		.quad	.LBB1344
- 35122      00000000 
- 35123 5bdd 00000000 		.quad	.LBE1344
- 35123      00000000 
- 35124 5be5 02       		.byte	0x2
- 35125 5be6 9106     		.value	0x691
- 35126 5be8 235C0000 		.long	0x5c23
- 35127 5bec 32       		.uleb128 0x32
- 35128 5bed 7A0C0000 		.long	0xc7a
- 35129 5bf1 03       		.byte	0x3
- 35130 5bf2 91       		.byte	0x91
- 35131 5bf3 F86B     		.sleb128 -2568
- 35132 5bf5 32       		.uleb128 0x32
- 35133 5bf6 6E0C0000 		.long	0xc6e
- 35134 5bfa 03       		.byte	0x3
- 35135 5bfb 91       		.byte	0x91
- 35136 5bfc FC6B     		.sleb128 -2564
- 35137 5bfe 32       		.uleb128 0x32
- 35138 5bff 620C0000 		.long	0xc62
- 35139 5c03 03       		.byte	0x3
- 35140 5c04 91       		.byte	0x91
- 35141 5c05 806C     		.sleb128 -2560
- 35142 5c07 33       		.uleb128 0x33
- 35143 5c08 00000000 		.quad	.LBB1345
- 35143      00000000 
- 35144 5c10 00000000 		.quad	.LBE1345
- 35144      00000000 
- 35145 5c18 34       		.uleb128 0x34
- 35146 5c19 860C0000 		.long	0xc86
- 35147 5c1d 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 954
-
-
- 35148 5c1e 91       		.byte	0x91
- 35149 5c1f D056     		.sleb128 -5296
- 35150 5c21 00       		.byte	0x0
- 35151 5c22 00       		.byte	0x0
- 35152 5c23 31       		.uleb128 0x31
- 35153 5c24 910C0000 		.long	0xc91
- 35154 5c28 00000000 		.quad	.LBB1346
- 35154      00000000 
- 35155 5c30 00000000 		.quad	.LBE1346
- 35155      00000000 
- 35156 5c38 02       		.byte	0x2
- 35157 5c39 9206     		.value	0x692
- 35158 5c3b 935E0000 		.long	0x5e93
- 35159 5c3f 32       		.uleb128 0x32
- 35160 5c40 A30C0000 		.long	0xca3
- 35161 5c44 03       		.byte	0x3
- 35162 5c45 91       		.byte	0x91
- 35163 5c46 906C     		.sleb128 -2544
- 35164 5c48 35       		.uleb128 0x35
- 35165 5c49 B00C0000 		.long	0xcb0
- 35166 5c4d 00000000 		.quad	.LBB1348
- 35166      00000000 
- 35167 5c55 00000000 		.quad	.LBE1348
- 35167      00000000 
- 35168 5c5d 02       		.byte	0x2
- 35169 5c5e 7D03     		.value	0x37d
- 35170 5c60 32       		.uleb128 0x32
- 35171 5c61 CE0C0000 		.long	0xcce
- 35172 5c65 03       		.byte	0x3
- 35173 5c66 91       		.byte	0x91
- 35174 5c67 A86C     		.sleb128 -2520
- 35175 5c69 32       		.uleb128 0x32
- 35176 5c6a C20C0000 		.long	0xcc2
- 35177 5c6e 03       		.byte	0x3
- 35178 5c6f 91       		.byte	0x91
- 35179 5c70 B06C     		.sleb128 -2512
- 35180 5c72 33       		.uleb128 0x33
- 35181 5c73 00000000 		.quad	.LBB1349
- 35181      00000000 
- 35182 5c7b 00000000 		.quad	.LBE1349
- 35182      00000000 
- 35183 5c83 34       		.uleb128 0x34
- 35184 5c84 DA0C0000 		.long	0xcda
- 35185 5c88 03       		.byte	0x3
- 35186 5c89 91       		.byte	0x91
- 35187 5c8a 806D     		.sleb128 -2432
- 35188 5c8c 34       		.uleb128 0x34
- 35189 5c8d E50C0000 		.long	0xce5
- 35190 5c91 03       		.byte	0x3
- 35191 5c92 91       		.byte	0x91
- 35192 5c93 F06C     		.sleb128 -2448
- 35193 5c95 34       		.uleb128 0x34
- 35194 5c96 F00C0000 		.long	0xcf0
- 35195 5c9a 03       		.byte	0x3
- 35196 5c9b 91       		.byte	0x91
- 35197 5c9c E06C     		.sleb128 -2464
- 35198 5c9e 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 955
-
-
- 35199 5c9f FC0C0000 		.long	0xcfc
- 35200 5ca3 03       		.byte	0x3
- 35201 5ca4 91       		.byte	0x91
- 35202 5ca5 D06C     		.sleb128 -2480
- 35203 5ca7 34       		.uleb128 0x34
- 35204 5ca8 080D0000 		.long	0xd08
- 35205 5cac 03       		.byte	0x3
- 35206 5cad 91       		.byte	0x91
- 35207 5cae CC6C     		.sleb128 -2484
- 35208 5cb0 31       		.uleb128 0x31
- 35209 5cb1 1F0D0000 		.long	0xd1f
- 35210 5cb5 00000000 		.quad	.LBB1350
- 35210      00000000 
- 35211 5cbd 00000000 		.quad	.LBE1350
- 35211      00000000 
- 35212 5cc5 02       		.byte	0x2
- 35213 5cc6 5603     		.value	0x356
- 35214 5cc8 DF5C0000 		.long	0x5cdf
- 35215 5ccc 32       		.uleb128 0x32
- 35216 5ccd 3A0D0000 		.long	0xd3a
- 35217 5cd1 03       		.byte	0x3
- 35218 5cd2 91       		.byte	0x91
- 35219 5cd3 906D     		.sleb128 -2416
- 35220 5cd5 32       		.uleb128 0x32
- 35221 5cd6 300D0000 		.long	0xd30
- 35222 5cda 03       		.byte	0x3
- 35223 5cdb 91       		.byte	0x91
- 35224 5cdc A06D     		.sleb128 -2400
- 35225 5cde 00       		.byte	0x0
- 35226 5cdf 31       		.uleb128 0x31
- 35227 5ce0 450D0000 		.long	0xd45
- 35228 5ce4 00000000 		.quad	.LBB1352
- 35228      00000000 
- 35229 5cec 00000000 		.quad	.LBE1352
- 35229      00000000 
- 35230 5cf4 02       		.byte	0x2
- 35231 5cf5 5E03     		.value	0x35e
- 35232 5cf7 0E5D0000 		.long	0x5d0e
- 35233 5cfb 32       		.uleb128 0x32
- 35234 5cfc 620D0000 		.long	0xd62
- 35235 5d00 03       		.byte	0x3
- 35236 5d01 91       		.byte	0x91
- 35237 5d02 B06D     		.sleb128 -2384
- 35238 5d04 32       		.uleb128 0x32
- 35239 5d05 570D0000 		.long	0xd57
- 35240 5d09 03       		.byte	0x3
- 35241 5d0a 91       		.byte	0x91
- 35242 5d0b C06D     		.sleb128 -2368
- 35243 5d0d 00       		.byte	0x0
- 35244 5d0e 31       		.uleb128 0x31
- 35245 5d0f 6E0D0000 		.long	0xd6e
- 35246 5d13 00000000 		.quad	.LBB1354
- 35246      00000000 
- 35247 5d1b 00000000 		.quad	.LBE1354
- 35247      00000000 
- 35248 5d23 02       		.byte	0x2
- 35249 5d24 6403     		.value	0x364
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 956
-
-
- 35250 5d26 735D0000 		.long	0x5d73
- 35251 5d2a 32       		.uleb128 0x32
- 35252 5d2b 8C0D0000 		.long	0xd8c
- 35253 5d2f 03       		.byte	0x3
- 35254 5d30 91       		.byte	0x91
- 35255 5d31 D06D     		.sleb128 -2352
- 35256 5d33 32       		.uleb128 0x32
- 35257 5d34 800D0000 		.long	0xd80
- 35258 5d38 03       		.byte	0x3
- 35259 5d39 91       		.byte	0x91
- 35260 5d3a E06D     		.sleb128 -2336
- 35261 5d3c 33       		.uleb128 0x33
- 35262 5d3d 00000000 		.quad	.LBB1355
- 35262      00000000 
- 35263 5d45 00000000 		.quad	.LBE1355
- 35263      00000000 
- 35264 5d4d 34       		.uleb128 0x34
- 35265 5d4e 980D0000 		.long	0xd98
- 35266 5d52 03       		.byte	0x3
- 35267 5d53 91       		.byte	0x91
- 35268 5d54 8057     		.sleb128 -5248
- 35269 5d56 34       		.uleb128 0x34
- 35270 5d57 A40D0000 		.long	0xda4
- 35271 5d5b 03       		.byte	0x3
- 35272 5d5c 91       		.byte	0x91
- 35273 5d5d F056     		.sleb128 -5264
- 35274 5d5f 34       		.uleb128 0x34
- 35275 5d60 AF0D0000 		.long	0xdaf
- 35276 5d64 03       		.byte	0x3
- 35277 5d65 91       		.byte	0x91
- 35278 5d66 E056     		.sleb128 -5280
- 35279 5d68 34       		.uleb128 0x34
- 35280 5d69 BB0D0000 		.long	0xdbb
- 35281 5d6d 03       		.byte	0x3
- 35282 5d6e 91       		.byte	0x91
- 35283 5d6f FC6D     		.sleb128 -2308
- 35284 5d71 00       		.byte	0x0
- 35285 5d72 00       		.byte	0x0
- 35286 5d73 31       		.uleb128 0x31
- 35287 5d74 C70D0000 		.long	0xdc7
- 35288 5d78 00000000 		.quad	.LBB1356
- 35288      00000000 
- 35289 5d80 00000000 		.quad	.LBE1356
- 35289      00000000 
- 35290 5d88 02       		.byte	0x2
- 35291 5d89 6603     		.value	0x366
- 35292 5d8b A25D0000 		.long	0x5da2
- 35293 5d8f 32       		.uleb128 0x32
- 35294 5d90 E20D0000 		.long	0xde2
- 35295 5d94 03       		.byte	0x3
- 35296 5d95 91       		.byte	0x91
- 35297 5d96 806E     		.sleb128 -2304
- 35298 5d98 32       		.uleb128 0x32
- 35299 5d99 D80D0000 		.long	0xdd8
- 35300 5d9d 03       		.byte	0x3
- 35301 5d9e 91       		.byte	0x91
- 35302 5d9f 906E     		.sleb128 -2288
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 957
-
-
- 35303 5da1 00       		.byte	0x0
- 35304 5da2 31       		.uleb128 0x31
- 35305 5da3 6E0D0000 		.long	0xd6e
- 35306 5da7 00000000 		.quad	.LBB1358
- 35306      00000000 
- 35307 5daf 00000000 		.quad	.LBE1358
- 35307      00000000 
- 35308 5db7 02       		.byte	0x2
- 35309 5db8 6803     		.value	0x368
- 35310 5dba 075E0000 		.long	0x5e07
- 35311 5dbe 32       		.uleb128 0x32
- 35312 5dbf 8C0D0000 		.long	0xd8c
- 35313 5dc3 03       		.byte	0x3
- 35314 5dc4 91       		.byte	0x91
- 35315 5dc5 A06E     		.sleb128 -2272
- 35316 5dc7 32       		.uleb128 0x32
- 35317 5dc8 800D0000 		.long	0xd80
- 35318 5dcc 03       		.byte	0x3
- 35319 5dcd 91       		.byte	0x91
- 35320 5dce B06E     		.sleb128 -2256
- 35321 5dd0 33       		.uleb128 0x33
- 35322 5dd1 00000000 		.quad	.LBB1359
- 35322      00000000 
- 35323 5dd9 00000000 		.quad	.LBE1359
- 35323      00000000 
- 35324 5de1 34       		.uleb128 0x34
- 35325 5de2 980D0000 		.long	0xd98
- 35326 5de6 03       		.byte	0x3
- 35327 5de7 91       		.byte	0x91
- 35328 5de8 B057     		.sleb128 -5200
- 35329 5dea 34       		.uleb128 0x34
- 35330 5deb A40D0000 		.long	0xda4
- 35331 5def 03       		.byte	0x3
- 35332 5df0 91       		.byte	0x91
- 35333 5df1 A057     		.sleb128 -5216
- 35334 5df3 34       		.uleb128 0x34
- 35335 5df4 AF0D0000 		.long	0xdaf
- 35336 5df8 03       		.byte	0x3
- 35337 5df9 91       		.byte	0x91
- 35338 5dfa 9057     		.sleb128 -5232
- 35339 5dfc 34       		.uleb128 0x34
- 35340 5dfd BB0D0000 		.long	0xdbb
- 35341 5e01 03       		.byte	0x3
- 35342 5e02 91       		.byte	0x91
- 35343 5e03 CC6E     		.sleb128 -2228
- 35344 5e05 00       		.byte	0x0
- 35345 5e06 00       		.byte	0x0
- 35346 5e07 31       		.uleb128 0x31
- 35347 5e08 C70D0000 		.long	0xdc7
- 35348 5e0c 00000000 		.quad	.LBB1360
- 35348      00000000 
- 35349 5e14 00000000 		.quad	.LBE1360
- 35349      00000000 
- 35350 5e1c 02       		.byte	0x2
- 35351 5e1d 6A03     		.value	0x36a
- 35352 5e1f 365E0000 		.long	0x5e36
- 35353 5e23 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 958
-
-
- 35354 5e24 E20D0000 		.long	0xde2
- 35355 5e28 03       		.byte	0x3
- 35356 5e29 91       		.byte	0x91
- 35357 5e2a D06E     		.sleb128 -2224
- 35358 5e2c 32       		.uleb128 0x32
- 35359 5e2d D80D0000 		.long	0xdd8
- 35360 5e31 03       		.byte	0x3
- 35361 5e32 91       		.byte	0x91
- 35362 5e33 E06E     		.sleb128 -2208
- 35363 5e35 00       		.byte	0x0
- 35364 5e36 31       		.uleb128 0x31
- 35365 5e37 ED0D0000 		.long	0xded
- 35366 5e3b 00000000 		.quad	.LBB1362
- 35366      00000000 
- 35367 5e43 00000000 		.quad	.LBE1362
- 35367      00000000 
- 35368 5e4b 02       		.byte	0x2
- 35369 5e4c 6C03     		.value	0x36c
- 35370 5e4e 655E0000 		.long	0x5e65
- 35371 5e52 32       		.uleb128 0x32
- 35372 5e53 0A0E0000 		.long	0xe0a
- 35373 5e57 03       		.byte	0x3
- 35374 5e58 91       		.byte	0x91
- 35375 5e59 F06E     		.sleb128 -2192
- 35376 5e5b 32       		.uleb128 0x32
- 35377 5e5c FF0D0000 		.long	0xdff
- 35378 5e60 03       		.byte	0x3
- 35379 5e61 91       		.byte	0x91
- 35380 5e62 806F     		.sleb128 -2176
- 35381 5e64 00       		.byte	0x0
- 35382 5e65 35       		.uleb128 0x35
- 35383 5e66 1F0D0000 		.long	0xd1f
- 35384 5e6a 00000000 		.quad	.LBB1364
- 35384      00000000 
- 35385 5e72 00000000 		.quad	.LBE1364
- 35385      00000000 
- 35386 5e7a 02       		.byte	0x2
- 35387 5e7b 6E03     		.value	0x36e
- 35388 5e7d 32       		.uleb128 0x32
- 35389 5e7e 3A0D0000 		.long	0xd3a
- 35390 5e82 03       		.byte	0x3
- 35391 5e83 91       		.byte	0x91
- 35392 5e84 906F     		.sleb128 -2160
- 35393 5e86 32       		.uleb128 0x32
- 35394 5e87 300D0000 		.long	0xd30
- 35395 5e8b 03       		.byte	0x3
- 35396 5e8c 91       		.byte	0x91
- 35397 5e8d A06F     		.sleb128 -2144
- 35398 5e8f 00       		.byte	0x0
- 35399 5e90 00       		.byte	0x0
- 35400 5e91 00       		.byte	0x0
- 35401 5e92 00       		.byte	0x0
- 35402 5e93 36       		.uleb128 0x36
- 35403 5e94 00000000 		.quad	.LBB1366
- 35403      00000000 
- 35404 5e9c 00000000 		.quad	.LBE1366
- 35404      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 959
-
-
- 35405 5ea4 B25E0000 		.long	0x5eb2
- 35406 5ea8 34       		.uleb128 0x34
- 35407 5ea9 180C0000 		.long	0xc18
- 35408 5ead 03       		.byte	0x3
- 35409 5eae 91       		.byte	0x91
- 35410 5eaf C056     		.sleb128 -5312
- 35411 5eb1 00       		.byte	0x0
- 35412 5eb2 31       		.uleb128 0x31
- 35413 5eb3 160E0000 		.long	0xe16
- 35414 5eb7 00000000 		.quad	.LBB1367
- 35414      00000000 
- 35415 5ebf 00000000 		.quad	.LBE1367
- 35415      00000000 
- 35416 5ec7 02       		.byte	0x2
- 35417 5ec8 9406     		.value	0x694
- 35418 5eca 5A5F0000 		.long	0x5f5a
- 35419 5ece 32       		.uleb128 0x32
- 35420 5ecf 280E0000 		.long	0xe28
- 35421 5ed3 03       		.byte	0x3
- 35422 5ed4 91       		.byte	0x91
- 35423 5ed5 B06F     		.sleb128 -2128
- 35424 5ed7 33       		.uleb128 0x33
- 35425 5ed8 00000000 		.quad	.LBB1368
- 35425      00000000 
- 35426 5ee0 00000000 		.quad	.LBE1368
- 35426      00000000 
- 35427 5ee8 34       		.uleb128 0x34
- 35428 5ee9 340E0000 		.long	0xe34
- 35429 5eed 09       		.byte	0x9
- 35430 5eee 03       		.byte	0x3
- 35431 5eef 00000000 		.quad	ShiftRowTable.6768
- 35431      00000000 
- 35432 5ef7 35       		.uleb128 0x35
- 35433 5ef8 6E0D0000 		.long	0xd6e
- 35434 5efc 00000000 		.quad	.LBB1369
- 35434      00000000 
- 35435 5f04 00000000 		.quad	.LBE1369
- 35435      00000000 
- 35436 5f0c 02       		.byte	0x2
- 35437 5f0d 9B02     		.value	0x29b
- 35438 5f0f 32       		.uleb128 0x32
- 35439 5f10 8C0D0000 		.long	0xd8c
- 35440 5f14 03       		.byte	0x3
- 35441 5f15 91       		.byte	0x91
- 35442 5f16 C06F     		.sleb128 -2112
- 35443 5f18 32       		.uleb128 0x32
- 35444 5f19 800D0000 		.long	0xd80
- 35445 5f1d 03       		.byte	0x3
- 35446 5f1e 91       		.byte	0x91
- 35447 5f1f D06F     		.sleb128 -2096
- 35448 5f21 33       		.uleb128 0x33
- 35449 5f22 00000000 		.quad	.LBB1370
- 35449      00000000 
- 35450 5f2a 00000000 		.quad	.LBE1370
- 35450      00000000 
- 35451 5f32 34       		.uleb128 0x34
- 35452 5f33 980D0000 		.long	0xd98
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 960
-
-
- 35453 5f37 03       		.byte	0x3
- 35454 5f38 91       		.byte	0x91
- 35455 5f39 E057     		.sleb128 -5152
- 35456 5f3b 34       		.uleb128 0x34
- 35457 5f3c A40D0000 		.long	0xda4
- 35458 5f40 03       		.byte	0x3
- 35459 5f41 91       		.byte	0x91
- 35460 5f42 D057     		.sleb128 -5168
- 35461 5f44 34       		.uleb128 0x34
- 35462 5f45 AF0D0000 		.long	0xdaf
- 35463 5f49 03       		.byte	0x3
- 35464 5f4a 91       		.byte	0x91
- 35465 5f4b C057     		.sleb128 -5184
- 35466 5f4d 34       		.uleb128 0x34
- 35467 5f4e BB0D0000 		.long	0xdbb
- 35468 5f52 03       		.byte	0x3
- 35469 5f53 91       		.byte	0x91
- 35470 5f54 EC6F     		.sleb128 -2068
- 35471 5f56 00       		.byte	0x0
- 35472 5f57 00       		.byte	0x0
- 35473 5f58 00       		.byte	0x0
- 35474 5f59 00       		.byte	0x0
- 35475 5f5a 36       		.uleb128 0x36
- 35476 5f5b 00000000 		.quad	.LBB1371
- 35476      00000000 
- 35477 5f63 00000000 		.quad	.LBE1371
- 35477      00000000 
- 35478 5f6b 795F0000 		.long	0x5f79
- 35479 5f6f 34       		.uleb128 0x34
- 35480 5f70 280C0000 		.long	0xc28
- 35481 5f74 03       		.byte	0x3
- 35482 5f75 91       		.byte	0x91
- 35483 5f76 B056     		.sleb128 -5328
- 35484 5f78 00       		.byte	0x0
- 35485 5f79 31       		.uleb128 0x31
- 35486 5f7a 520E0000 		.long	0xe52
- 35487 5f7e 00000000 		.quad	.LBB1372
- 35487      00000000 
- 35488 5f86 00000000 		.quad	.LBE1372
- 35488      00000000 
- 35489 5f8e 02       		.byte	0x2
- 35490 5f8f 9606     		.value	0x696
- 35491 5f91 A85F0000 		.long	0x5fa8
- 35492 5f95 32       		.uleb128 0x32
- 35493 5f96 6D0E0000 		.long	0xe6d
- 35494 5f9a 03       		.byte	0x3
- 35495 5f9b 91       		.byte	0x91
- 35496 5f9c F06F     		.sleb128 -2064
- 35497 5f9e 32       		.uleb128 0x32
- 35498 5f9f 630E0000 		.long	0xe63
- 35499 5fa3 03       		.byte	0x3
- 35500 5fa4 91       		.byte	0x91
- 35501 5fa5 8070     		.sleb128 -2048
- 35502 5fa7 00       		.byte	0x0
- 35503 5fa8 36       		.uleb128 0x36
- 35504 5fa9 00000000 		.quad	.LBB1374
- 35504      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 961
-
-
- 35505 5fb1 00000000 		.quad	.LBE1374
- 35505      00000000 
- 35506 5fb9 C75F0000 		.long	0x5fc7
- 35507 5fbd 34       		.uleb128 0x34
- 35508 5fbe 380C0000 		.long	0xc38
- 35509 5fc2 03       		.byte	0x3
- 35510 5fc3 91       		.byte	0x91
- 35511 5fc4 A056     		.sleb128 -5344
- 35512 5fc6 00       		.byte	0x0
- 35513 5fc7 31       		.uleb128 0x31
- 35514 5fc8 780E0000 		.long	0xe78
- 35515 5fcc 00000000 		.quad	.LBB1375
- 35515      00000000 
- 35516 5fd4 00000000 		.quad	.LBE1375
- 35516      00000000 
- 35517 5fdc 02       		.byte	0x2
- 35518 5fdd 9806     		.value	0x698
- 35519 5fdf 08600000 		.long	0x6008
- 35520 5fe3 32       		.uleb128 0x32
- 35521 5fe4 8A0E0000 		.long	0xe8a
- 35522 5fe8 03       		.byte	0x3
- 35523 5fe9 91       		.byte	0x91
- 35524 5fea 9070     		.sleb128 -2032
- 35525 5fec 33       		.uleb128 0x33
- 35526 5fed 00000000 		.quad	.LBB1376
- 35526      00000000 
- 35527 5ff5 00000000 		.quad	.LBE1376
- 35527      00000000 
- 35528 5ffd 34       		.uleb128 0x34
- 35529 5ffe 960E0000 		.long	0xe96
- 35530 6002 03       		.byte	0x3
- 35531 6003 91       		.byte	0x91
- 35532 6004 F057     		.sleb128 -5136
- 35533 6006 00       		.byte	0x0
- 35534 6007 00       		.byte	0x0
- 35535 6008 33       		.uleb128 0x33
- 35536 6009 00000000 		.quad	.LBB1377
- 35536      00000000 
- 35537 6011 00000000 		.quad	.LBE1377
- 35537      00000000 
- 35538 6019 34       		.uleb128 0x34
- 35539 601a 440C0000 		.long	0xc44
- 35540 601e 03       		.byte	0x3
- 35541 601f 91       		.byte	0x91
- 35542 6020 9056     		.sleb128 -5360
- 35543 6022 00       		.byte	0x0
- 35544 6023 00       		.byte	0x0
- 35545 6024 00       		.byte	0x0
- 35546 6025 31       		.uleb128 0x31
- 35547 6026 780E0000 		.long	0xe78
- 35548 602a 00000000 		.quad	.LBB1378
- 35548      00000000 
- 35549 6032 00000000 		.quad	.LBE1378
- 35549      00000000 
- 35550 603a 02       		.byte	0x2
- 35551 603b 2A07     		.value	0x72a
- 35552 603d 66600000 		.long	0x6066
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 962
-
-
- 35553 6041 32       		.uleb128 0x32
- 35554 6042 8A0E0000 		.long	0xe8a
- 35555 6046 03       		.byte	0x3
- 35556 6047 91       		.byte	0x91
- 35557 6048 A070     		.sleb128 -2016
- 35558 604a 33       		.uleb128 0x33
- 35559 604b 00000000 		.quad	.LBB1379
- 35559      00000000 
- 35560 6053 00000000 		.quad	.LBE1379
- 35560      00000000 
- 35561 605b 34       		.uleb128 0x34
- 35562 605c 960E0000 		.long	0xe96
- 35563 6060 03       		.byte	0x3
- 35564 6061 91       		.byte	0x91
- 35565 6062 8058     		.sleb128 -5120
- 35566 6064 00       		.byte	0x0
- 35567 6065 00       		.byte	0x0
- 35568 6066 31       		.uleb128 0x31
- 35569 6067 C5480000 		.long	0x48c5
- 35570 606b 00000000 		.quad	.LBB1380
- 35570      00000000 
- 35571 6073 00000000 		.quad	.LBE1380
- 35571      00000000 
- 35572 607b 02       		.byte	0x2
- 35573 607c 3207     		.value	0x732
- 35574 607e 2E610000 		.long	0x612e
- 35575 6082 32       		.uleb128 0x32
- 35576 6083 E3480000 		.long	0x48e3
- 35577 6087 03       		.byte	0x3
- 35578 6088 91       		.byte	0x91
- 35579 6089 BC70     		.sleb128 -1988
- 35580 608b 32       		.uleb128 0x32
- 35581 608c D7480000 		.long	0x48d7
- 35582 6090 03       		.byte	0x3
- 35583 6091 91       		.byte	0x91
- 35584 6092 C070     		.sleb128 -1984
- 35585 6094 33       		.uleb128 0x33
- 35586 6095 00000000 		.quad	.LBB1381
- 35586      00000000 
- 35587 609d 00000000 		.quad	.LBE1381
- 35587      00000000 
- 35588 60a5 34       		.uleb128 0x34
- 35589 60a6 EF480000 		.long	0x48ef
- 35590 60aa 03       		.byte	0x3
- 35591 60ab 91       		.byte	0x91
- 35592 60ac A058     		.sleb128 -5088
- 35593 60ae 34       		.uleb128 0x34
- 35594 60af F9480000 		.long	0x48f9
- 35595 60b3 03       		.byte	0x3
- 35596 60b4 91       		.byte	0x91
- 35597 60b5 E070     		.sleb128 -1952
- 35598 60b7 34       		.uleb128 0x34
- 35599 60b8 05490000 		.long	0x4905
- 35600 60bc 03       		.byte	0x3
- 35601 60bd 91       		.byte	0x91
- 35602 60be DC70     		.sleb128 -1956
- 35603 60c0 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 963
-
-
- 35604 60c1 12490000 		.long	0x4912
- 35605 60c5 00000000 		.quad	.LBB1382
- 35605      00000000 
- 35606 60cd 00000000 		.quad	.LBE1382
- 35606      00000000 
- 35607 60d5 02       		.byte	0x2
- 35608 60d6 5F06     		.value	0x65f
- 35609 60d8 0A610000 		.long	0x610a
- 35610 60dc 32       		.uleb128 0x32
- 35611 60dd 24490000 		.long	0x4924
- 35612 60e1 03       		.byte	0x3
- 35613 60e2 91       		.byte	0x91
- 35614 60e3 E470     		.sleb128 -1948
- 35615 60e5 33       		.uleb128 0x33
- 35616 60e6 00000000 		.quad	.LBB1383
- 35616      00000000 
- 35617 60ee 00000000 		.quad	.LBE1383
- 35617      00000000 
- 35618 60f6 34       		.uleb128 0x34
- 35619 60f7 2E490000 		.long	0x492e
- 35620 60fb 03       		.byte	0x3
- 35621 60fc 91       		.byte	0x91
- 35622 60fd 9058     		.sleb128 -5104
- 35623 60ff 34       		.uleb128 0x34
- 35624 6100 3A490000 		.long	0x493a
- 35625 6104 03       		.byte	0x3
- 35626 6105 91       		.byte	0x91
- 35627 6106 E870     		.sleb128 -1944
- 35628 6108 00       		.byte	0x0
- 35629 6109 00       		.byte	0x0
- 35630 610a 35       		.uleb128 0x35
- 35631 610b 46490000 		.long	0x4946
- 35632 610f 00000000 		.quad	.LBB1384
- 35632      00000000 
- 35633 6117 00000000 		.quad	.LBE1384
- 35633      00000000 
- 35634 611f 02       		.byte	0x2
- 35635 6120 6006     		.value	0x660
- 35636 6122 32       		.uleb128 0x32
- 35637 6123 58490000 		.long	0x4958
- 35638 6127 03       		.byte	0x3
- 35639 6128 91       		.byte	0x91
- 35640 6129 EC70     		.sleb128 -1940
- 35641 612b 00       		.byte	0x0
- 35642 612c 00       		.byte	0x0
- 35643 612d 00       		.byte	0x0
- 35644 612e 31       		.uleb128 0x31
- 35645 612f A30E0000 		.long	0xea3
- 35646 6133 00000000 		.quad	.LBB1386
- 35646      00000000 
- 35647 613b 00000000 		.quad	.LBE1386
- 35647      00000000 
- 35648 6143 02       		.byte	0x2
- 35649 6144 3407     		.value	0x734
- 35650 6146 2E620000 		.long	0x622e
- 35651 614a 32       		.uleb128 0x32
- 35652 614b B50E0000 		.long	0xeb5
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 964
-
-
- 35653 614f 03       		.byte	0x3
- 35654 6150 91       		.byte	0x91
- 35655 6151 F070     		.sleb128 -1936
- 35656 6153 33       		.uleb128 0x33
- 35657 6154 00000000 		.quad	.LBB1387
- 35657      00000000 
- 35658 615c 00000000 		.quad	.LBE1387
- 35658      00000000 
- 35659 6164 34       		.uleb128 0x34
- 35660 6165 C10E0000 		.long	0xec1
- 35661 6169 03       		.byte	0x3
- 35662 616a 76       		.byte	0x76
- 35663 616b B04D     		.sleb128 -6480
- 35664 616d 31       		.uleb128 0x31
- 35665 616e CE0E0000 		.long	0xece
- 35666 6172 00000000 		.quad	.LBB1388
- 35666      00000000 
- 35667 617a 00000000 		.quad	.LBE1388
- 35667      00000000 
- 35668 6182 02       		.byte	0x2
- 35669 6183 1F06     		.value	0x61f
- 35670 6185 AE610000 		.long	0x61ae
- 35671 6189 32       		.uleb128 0x32
- 35672 618a E00E0000 		.long	0xee0
- 35673 618e 03       		.byte	0x3
- 35674 618f 91       		.byte	0x91
- 35675 6190 8071     		.sleb128 -1920
- 35676 6192 33       		.uleb128 0x33
- 35677 6193 00000000 		.quad	.LBB1389
- 35677      00000000 
- 35678 619b 00000000 		.quad	.LBE1389
- 35678      00000000 
- 35679 61a3 34       		.uleb128 0x34
- 35680 61a4 EC0E0000 		.long	0xeec
- 35681 61a8 03       		.byte	0x3
- 35682 61a9 91       		.byte	0x91
- 35683 61aa B058     		.sleb128 -5072
- 35684 61ac 00       		.byte	0x0
- 35685 61ad 00       		.byte	0x0
- 35686 61ae 31       		.uleb128 0x31
- 35687 61af CE0E0000 		.long	0xece
- 35688 61b3 00000000 		.quad	.LBB1390
- 35688      00000000 
- 35689 61bb 00000000 		.quad	.LBE1390
- 35689      00000000 
- 35690 61c3 02       		.byte	0x2
- 35691 61c4 2006     		.value	0x620
- 35692 61c6 EF610000 		.long	0x61ef
- 35693 61ca 32       		.uleb128 0x32
- 35694 61cb E00E0000 		.long	0xee0
- 35695 61cf 03       		.byte	0x3
- 35696 61d0 91       		.byte	0x91
- 35697 61d1 9071     		.sleb128 -1904
- 35698 61d3 33       		.uleb128 0x33
- 35699 61d4 00000000 		.quad	.LBB1391
- 35699      00000000 
- 35700 61dc 00000000 		.quad	.LBE1391
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 965
-
-
- 35700      00000000 
- 35701 61e4 34       		.uleb128 0x34
- 35702 61e5 EC0E0000 		.long	0xeec
- 35703 61e9 03       		.byte	0x3
- 35704 61ea 91       		.byte	0x91
- 35705 61eb C058     		.sleb128 -5056
- 35706 61ed 00       		.byte	0x0
- 35707 61ee 00       		.byte	0x0
- 35708 61ef 35       		.uleb128 0x35
- 35709 61f0 CE0E0000 		.long	0xece
- 35710 61f4 00000000 		.quad	.LBB1392
- 35710      00000000 
- 35711 61fc 00000000 		.quad	.LBE1392
- 35711      00000000 
- 35712 6204 02       		.byte	0x2
- 35713 6205 2106     		.value	0x621
- 35714 6207 32       		.uleb128 0x32
- 35715 6208 E00E0000 		.long	0xee0
- 35716 620c 03       		.byte	0x3
- 35717 620d 91       		.byte	0x91
- 35718 620e A071     		.sleb128 -1888
- 35719 6210 33       		.uleb128 0x33
- 35720 6211 00000000 		.quad	.LBB1393
- 35720      00000000 
- 35721 6219 00000000 		.quad	.LBE1393
- 35721      00000000 
- 35722 6221 34       		.uleb128 0x34
- 35723 6222 EC0E0000 		.long	0xeec
- 35724 6226 03       		.byte	0x3
- 35725 6227 91       		.byte	0x91
- 35726 6228 D058     		.sleb128 -5040
- 35727 622a 00       		.byte	0x0
- 35728 622b 00       		.byte	0x0
- 35729 622c 00       		.byte	0x0
- 35730 622d 00       		.byte	0x0
- 35731 622e 31       		.uleb128 0x31
- 35732 622f A30E0000 		.long	0xea3
- 35733 6233 00000000 		.quad	.LBB1394
- 35733      00000000 
- 35734 623b 00000000 		.quad	.LBE1394
- 35734      00000000 
- 35735 6243 02       		.byte	0x2
- 35736 6244 3607     		.value	0x736
- 35737 6246 2E630000 		.long	0x632e
- 35738 624a 32       		.uleb128 0x32
- 35739 624b B50E0000 		.long	0xeb5
- 35740 624f 03       		.byte	0x3
- 35741 6250 91       		.byte	0x91
- 35742 6251 B071     		.sleb128 -1872
- 35743 6253 33       		.uleb128 0x33
- 35744 6254 00000000 		.quad	.LBB1395
- 35744      00000000 
- 35745 625c 00000000 		.quad	.LBE1395
- 35745      00000000 
- 35746 6264 34       		.uleb128 0x34
- 35747 6265 C10E0000 		.long	0xec1
- 35748 6269 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 966
-
-
- 35749 626a 76       		.byte	0x76
- 35750 626b C04D     		.sleb128 -6464
- 35751 626d 31       		.uleb128 0x31
- 35752 626e CE0E0000 		.long	0xece
- 35753 6272 00000000 		.quad	.LBB1396
- 35753      00000000 
- 35754 627a 00000000 		.quad	.LBE1396
- 35754      00000000 
- 35755 6282 02       		.byte	0x2
- 35756 6283 1F06     		.value	0x61f
- 35757 6285 AE620000 		.long	0x62ae
- 35758 6289 32       		.uleb128 0x32
- 35759 628a E00E0000 		.long	0xee0
- 35760 628e 03       		.byte	0x3
- 35761 628f 91       		.byte	0x91
- 35762 6290 C071     		.sleb128 -1856
- 35763 6292 33       		.uleb128 0x33
- 35764 6293 00000000 		.quad	.LBB1397
- 35764      00000000 
- 35765 629b 00000000 		.quad	.LBE1397
- 35765      00000000 
- 35766 62a3 34       		.uleb128 0x34
- 35767 62a4 EC0E0000 		.long	0xeec
- 35768 62a8 03       		.byte	0x3
- 35769 62a9 91       		.byte	0x91
- 35770 62aa E058     		.sleb128 -5024
- 35771 62ac 00       		.byte	0x0
- 35772 62ad 00       		.byte	0x0
- 35773 62ae 31       		.uleb128 0x31
- 35774 62af CE0E0000 		.long	0xece
- 35775 62b3 00000000 		.quad	.LBB1398
- 35775      00000000 
- 35776 62bb 00000000 		.quad	.LBE1398
- 35776      00000000 
- 35777 62c3 02       		.byte	0x2
- 35778 62c4 2006     		.value	0x620
- 35779 62c6 EF620000 		.long	0x62ef
- 35780 62ca 32       		.uleb128 0x32
- 35781 62cb E00E0000 		.long	0xee0
- 35782 62cf 03       		.byte	0x3
- 35783 62d0 91       		.byte	0x91
- 35784 62d1 D071     		.sleb128 -1840
- 35785 62d3 33       		.uleb128 0x33
- 35786 62d4 00000000 		.quad	.LBB1399
- 35786      00000000 
- 35787 62dc 00000000 		.quad	.LBE1399
- 35787      00000000 
- 35788 62e4 34       		.uleb128 0x34
- 35789 62e5 EC0E0000 		.long	0xeec
- 35790 62e9 03       		.byte	0x3
- 35791 62ea 91       		.byte	0x91
- 35792 62eb F058     		.sleb128 -5008
- 35793 62ed 00       		.byte	0x0
- 35794 62ee 00       		.byte	0x0
- 35795 62ef 35       		.uleb128 0x35
- 35796 62f0 CE0E0000 		.long	0xece
- 35797 62f4 00000000 		.quad	.LBB1400
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 967
-
-
- 35797      00000000 
- 35798 62fc 00000000 		.quad	.LBE1400
- 35798      00000000 
- 35799 6304 02       		.byte	0x2
- 35800 6305 2106     		.value	0x621
- 35801 6307 32       		.uleb128 0x32
- 35802 6308 E00E0000 		.long	0xee0
- 35803 630c 03       		.byte	0x3
- 35804 630d 91       		.byte	0x91
- 35805 630e E071     		.sleb128 -1824
- 35806 6310 33       		.uleb128 0x33
- 35807 6311 00000000 		.quad	.LBB1401
- 35807      00000000 
- 35808 6319 00000000 		.quad	.LBE1401
- 35808      00000000 
- 35809 6321 34       		.uleb128 0x34
- 35810 6322 EC0E0000 		.long	0xeec
- 35811 6326 03       		.byte	0x3
- 35812 6327 91       		.byte	0x91
- 35813 6328 8059     		.sleb128 -4992
- 35814 632a 00       		.byte	0x0
- 35815 632b 00       		.byte	0x0
- 35816 632c 00       		.byte	0x0
- 35817 632d 00       		.byte	0x0
- 35818 632e 31       		.uleb128 0x31
- 35819 632f 780E0000 		.long	0xe78
- 35820 6333 00000000 		.quad	.LBB1402
- 35820      00000000 
- 35821 633b 00000000 		.quad	.LBE1402
- 35821      00000000 
- 35822 6343 02       		.byte	0x2
- 35823 6344 3707     		.value	0x737
- 35824 6346 6F630000 		.long	0x636f
- 35825 634a 32       		.uleb128 0x32
- 35826 634b 8A0E0000 		.long	0xe8a
- 35827 634f 03       		.byte	0x3
- 35828 6350 91       		.byte	0x91
- 35829 6351 F071     		.sleb128 -1808
- 35830 6353 33       		.uleb128 0x33
- 35831 6354 00000000 		.quad	.LBB1403
- 35831      00000000 
- 35832 635c 00000000 		.quad	.LBE1403
- 35832      00000000 
- 35833 6364 34       		.uleb128 0x34
- 35834 6365 960E0000 		.long	0xe96
- 35835 6369 03       		.byte	0x3
- 35836 636a 91       		.byte	0x91
- 35837 636b 9059     		.sleb128 -4976
- 35838 636d 00       		.byte	0x0
- 35839 636e 00       		.byte	0x0
- 35840 636f 31       		.uleb128 0x31
- 35841 6370 63490000 		.long	0x4963
- 35842 6374 00000000 		.quad	.LBB1404
- 35842      00000000 
- 35843 637c 00000000 		.quad	.LBE1404
- 35843      00000000 
- 35844 6384 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 968
-
-
- 35845 6385 3907     		.value	0x739
- 35846 6387 C2630000 		.long	0x63c2
- 35847 638b 32       		.uleb128 0x32
- 35848 638c 7F490000 		.long	0x497f
- 35849 6390 03       		.byte	0x3
- 35850 6391 91       		.byte	0x91
- 35851 6392 8072     		.sleb128 -1792
- 35852 6394 32       		.uleb128 0x32
- 35853 6395 75490000 		.long	0x4975
- 35854 6399 03       		.byte	0x3
- 35855 639a 91       		.byte	0x91
- 35856 639b 9072     		.sleb128 -1776
- 35857 639d 33       		.uleb128 0x33
- 35858 639e 00000000 		.quad	.LBB1405
- 35858      00000000 
- 35859 63a6 00000000 		.quad	.LBE1405
- 35859      00000000 
- 35860 63ae 34       		.uleb128 0x34
- 35861 63af 89490000 		.long	0x4989
- 35862 63b3 03       		.byte	0x3
- 35863 63b4 91       		.byte	0x91
- 35864 63b5 B059     		.sleb128 -4944
- 35865 63b7 34       		.uleb128 0x34
- 35866 63b8 94490000 		.long	0x4994
- 35867 63bc 03       		.byte	0x3
- 35868 63bd 91       		.byte	0x91
- 35869 63be A059     		.sleb128 -4960
- 35870 63c0 00       		.byte	0x0
- 35871 63c1 00       		.byte	0x0
- 35872 63c2 31       		.uleb128 0x31
- 35873 63c3 A0490000 		.long	0x49a0
- 35874 63c7 00000000 		.quad	.LBB1406
- 35874      00000000 
- 35875 63cf 00000000 		.quad	.LBE1406
- 35875      00000000 
- 35876 63d7 02       		.byte	0x2
- 35877 63d8 3D07     		.value	0x73d
- 35878 63da 15640000 		.long	0x6415
- 35879 63de 32       		.uleb128 0x32
- 35880 63df BC490000 		.long	0x49bc
- 35881 63e3 03       		.byte	0x3
- 35882 63e4 91       		.byte	0x91
- 35883 63e5 A072     		.sleb128 -1760
- 35884 63e7 32       		.uleb128 0x32
- 35885 63e8 B2490000 		.long	0x49b2
- 35886 63ec 03       		.byte	0x3
- 35887 63ed 91       		.byte	0x91
- 35888 63ee B072     		.sleb128 -1744
- 35889 63f0 33       		.uleb128 0x33
- 35890 63f1 00000000 		.quad	.LBB1407
- 35890      00000000 
- 35891 63f9 00000000 		.quad	.LBE1407
- 35891      00000000 
- 35892 6401 34       		.uleb128 0x34
- 35893 6402 C6490000 		.long	0x49c6
- 35894 6406 03       		.byte	0x3
- 35895 6407 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 969
-
-
- 35896 6408 D059     		.sleb128 -4912
- 35897 640a 34       		.uleb128 0x34
- 35898 640b D1490000 		.long	0x49d1
- 35899 640f 03       		.byte	0x3
- 35900 6410 91       		.byte	0x91
- 35901 6411 C059     		.sleb128 -4928
- 35902 6413 00       		.byte	0x0
- 35903 6414 00       		.byte	0x0
- 35904 6415 31       		.uleb128 0x31
- 35905 6416 A30E0000 		.long	0xea3
- 35906 641a 00000000 		.quad	.LBB1408
- 35906      00000000 
- 35907 6422 00000000 		.quad	.LBE1408
- 35907      00000000 
- 35908 642a 02       		.byte	0x2
- 35909 642b 4007     		.value	0x740
- 35910 642d 15650000 		.long	0x6515
- 35911 6431 32       		.uleb128 0x32
- 35912 6432 B50E0000 		.long	0xeb5
- 35913 6436 03       		.byte	0x3
- 35914 6437 91       		.byte	0x91
- 35915 6438 C072     		.sleb128 -1728
- 35916 643a 33       		.uleb128 0x33
- 35917 643b 00000000 		.quad	.LBB1409
- 35917      00000000 
- 35918 6443 00000000 		.quad	.LBE1409
- 35918      00000000 
- 35919 644b 34       		.uleb128 0x34
- 35920 644c C10E0000 		.long	0xec1
- 35921 6450 03       		.byte	0x3
- 35922 6451 76       		.byte	0x76
- 35923 6452 D04D     		.sleb128 -6448
- 35924 6454 31       		.uleb128 0x31
- 35925 6455 CE0E0000 		.long	0xece
- 35926 6459 00000000 		.quad	.LBB1410
- 35926      00000000 
- 35927 6461 00000000 		.quad	.LBE1410
- 35927      00000000 
- 35928 6469 02       		.byte	0x2
- 35929 646a 1F06     		.value	0x61f
- 35930 646c 95640000 		.long	0x6495
- 35931 6470 32       		.uleb128 0x32
- 35932 6471 E00E0000 		.long	0xee0
- 35933 6475 03       		.byte	0x3
- 35934 6476 91       		.byte	0x91
- 35935 6477 D072     		.sleb128 -1712
- 35936 6479 33       		.uleb128 0x33
- 35937 647a 00000000 		.quad	.LBB1411
- 35937      00000000 
- 35938 6482 00000000 		.quad	.LBE1411
- 35938      00000000 
- 35939 648a 34       		.uleb128 0x34
- 35940 648b EC0E0000 		.long	0xeec
- 35941 648f 03       		.byte	0x3
- 35942 6490 91       		.byte	0x91
- 35943 6491 E059     		.sleb128 -4896
- 35944 6493 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 970
-
-
- 35945 6494 00       		.byte	0x0
- 35946 6495 31       		.uleb128 0x31
- 35947 6496 CE0E0000 		.long	0xece
- 35948 649a 00000000 		.quad	.LBB1412
- 35948      00000000 
- 35949 64a2 00000000 		.quad	.LBE1412
- 35949      00000000 
- 35950 64aa 02       		.byte	0x2
- 35951 64ab 2006     		.value	0x620
- 35952 64ad D6640000 		.long	0x64d6
- 35953 64b1 32       		.uleb128 0x32
- 35954 64b2 E00E0000 		.long	0xee0
- 35955 64b6 03       		.byte	0x3
- 35956 64b7 91       		.byte	0x91
- 35957 64b8 E072     		.sleb128 -1696
- 35958 64ba 33       		.uleb128 0x33
- 35959 64bb 00000000 		.quad	.LBB1413
- 35959      00000000 
- 35960 64c3 00000000 		.quad	.LBE1413
- 35960      00000000 
- 35961 64cb 34       		.uleb128 0x34
- 35962 64cc EC0E0000 		.long	0xeec
- 35963 64d0 03       		.byte	0x3
- 35964 64d1 91       		.byte	0x91
- 35965 64d2 F059     		.sleb128 -4880
- 35966 64d4 00       		.byte	0x0
- 35967 64d5 00       		.byte	0x0
- 35968 64d6 35       		.uleb128 0x35
- 35969 64d7 CE0E0000 		.long	0xece
- 35970 64db 00000000 		.quad	.LBB1414
- 35970      00000000 
- 35971 64e3 00000000 		.quad	.LBE1414
- 35971      00000000 
- 35972 64eb 02       		.byte	0x2
- 35973 64ec 2106     		.value	0x621
- 35974 64ee 32       		.uleb128 0x32
- 35975 64ef E00E0000 		.long	0xee0
- 35976 64f3 03       		.byte	0x3
- 35977 64f4 91       		.byte	0x91
- 35978 64f5 F072     		.sleb128 -1680
- 35979 64f7 33       		.uleb128 0x33
- 35980 64f8 00000000 		.quad	.LBB1415
- 35980      00000000 
- 35981 6500 00000000 		.quad	.LBE1415
- 35981      00000000 
- 35982 6508 34       		.uleb128 0x34
- 35983 6509 EC0E0000 		.long	0xeec
- 35984 650d 03       		.byte	0x3
- 35985 650e 91       		.byte	0x91
- 35986 650f 805A     		.sleb128 -4864
- 35987 6511 00       		.byte	0x0
- 35988 6512 00       		.byte	0x0
- 35989 6513 00       		.byte	0x0
- 35990 6514 00       		.byte	0x0
- 35991 6515 31       		.uleb128 0x31
- 35992 6516 A30E0000 		.long	0xea3
- 35993 651a 00000000 		.quad	.LBB1416
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 971
-
-
- 35993      00000000 
- 35994 6522 00000000 		.quad	.LBE1416
- 35994      00000000 
- 35995 652a 02       		.byte	0x2
- 35996 652b 4107     		.value	0x741
- 35997 652d 15660000 		.long	0x6615
- 35998 6531 32       		.uleb128 0x32
- 35999 6532 B50E0000 		.long	0xeb5
- 36000 6536 03       		.byte	0x3
- 36001 6537 91       		.byte	0x91
- 36002 6538 8073     		.sleb128 -1664
- 36003 653a 33       		.uleb128 0x33
- 36004 653b 00000000 		.quad	.LBB1417
- 36004      00000000 
- 36005 6543 00000000 		.quad	.LBE1417
- 36005      00000000 
- 36006 654b 34       		.uleb128 0x34
- 36007 654c C10E0000 		.long	0xec1
- 36008 6550 03       		.byte	0x3
- 36009 6551 76       		.byte	0x76
- 36010 6552 E04D     		.sleb128 -6432
- 36011 6554 31       		.uleb128 0x31
- 36012 6555 CE0E0000 		.long	0xece
- 36013 6559 00000000 		.quad	.LBB1418
- 36013      00000000 
- 36014 6561 00000000 		.quad	.LBE1418
- 36014      00000000 
- 36015 6569 02       		.byte	0x2
- 36016 656a 1F06     		.value	0x61f
- 36017 656c 95650000 		.long	0x6595
- 36018 6570 32       		.uleb128 0x32
- 36019 6571 E00E0000 		.long	0xee0
- 36020 6575 03       		.byte	0x3
- 36021 6576 91       		.byte	0x91
- 36022 6577 9073     		.sleb128 -1648
- 36023 6579 33       		.uleb128 0x33
- 36024 657a 00000000 		.quad	.LBB1419
- 36024      00000000 
- 36025 6582 00000000 		.quad	.LBE1419
- 36025      00000000 
- 36026 658a 34       		.uleb128 0x34
- 36027 658b EC0E0000 		.long	0xeec
- 36028 658f 03       		.byte	0x3
- 36029 6590 91       		.byte	0x91
- 36030 6591 905A     		.sleb128 -4848
- 36031 6593 00       		.byte	0x0
- 36032 6594 00       		.byte	0x0
- 36033 6595 31       		.uleb128 0x31
- 36034 6596 CE0E0000 		.long	0xece
- 36035 659a 00000000 		.quad	.LBB1420
- 36035      00000000 
- 36036 65a2 00000000 		.quad	.LBE1420
- 36036      00000000 
- 36037 65aa 02       		.byte	0x2
- 36038 65ab 2006     		.value	0x620
- 36039 65ad D6650000 		.long	0x65d6
- 36040 65b1 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 972
-
-
- 36041 65b2 E00E0000 		.long	0xee0
- 36042 65b6 03       		.byte	0x3
- 36043 65b7 91       		.byte	0x91
- 36044 65b8 A073     		.sleb128 -1632
- 36045 65ba 33       		.uleb128 0x33
- 36046 65bb 00000000 		.quad	.LBB1421
- 36046      00000000 
- 36047 65c3 00000000 		.quad	.LBE1421
- 36047      00000000 
- 36048 65cb 34       		.uleb128 0x34
- 36049 65cc EC0E0000 		.long	0xeec
- 36050 65d0 03       		.byte	0x3
- 36051 65d1 91       		.byte	0x91
- 36052 65d2 A05A     		.sleb128 -4832
- 36053 65d4 00       		.byte	0x0
- 36054 65d5 00       		.byte	0x0
- 36055 65d6 35       		.uleb128 0x35
- 36056 65d7 CE0E0000 		.long	0xece
- 36057 65db 00000000 		.quad	.LBB1422
- 36057      00000000 
- 36058 65e3 00000000 		.quad	.LBE1422
- 36058      00000000 
- 36059 65eb 02       		.byte	0x2
- 36060 65ec 2106     		.value	0x621
- 36061 65ee 32       		.uleb128 0x32
- 36062 65ef E00E0000 		.long	0xee0
- 36063 65f3 03       		.byte	0x3
- 36064 65f4 91       		.byte	0x91
- 36065 65f5 B073     		.sleb128 -1616
- 36066 65f7 33       		.uleb128 0x33
- 36067 65f8 00000000 		.quad	.LBB1423
- 36067      00000000 
- 36068 6600 00000000 		.quad	.LBE1423
- 36068      00000000 
- 36069 6608 34       		.uleb128 0x34
- 36070 6609 EC0E0000 		.long	0xeec
- 36071 660d 03       		.byte	0x3
- 36072 660e 91       		.byte	0x91
- 36073 660f B05A     		.sleb128 -4816
- 36074 6611 00       		.byte	0x0
- 36075 6612 00       		.byte	0x0
- 36076 6613 00       		.byte	0x0
- 36077 6614 00       		.byte	0x0
- 36078 6615 31       		.uleb128 0x31
- 36079 6616 D10B0000 		.long	0xbd1
- 36080 661a 00000000 		.quad	.LBB1424
- 36080      00000000 
- 36081 6622 00000000 		.quad	.LBE1424
- 36081      00000000 
- 36082 662a 02       		.byte	0x2
- 36083 662b 4207     		.value	0x742
- 36084 662d BB6A0000 		.long	0x6abb
- 36085 6631 32       		.uleb128 0x32
- 36086 6632 EF0B0000 		.long	0xbef
- 36087 6636 03       		.byte	0x3
- 36088 6637 91       		.byte	0x91
- 36089 6638 CC73     		.sleb128 -1588
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 973
-
-
- 36090 663a 32       		.uleb128 0x32
- 36091 663b E30B0000 		.long	0xbe3
- 36092 663f 03       		.byte	0x3
- 36093 6640 91       		.byte	0x91
- 36094 6641 D073     		.sleb128 -1584
- 36095 6643 33       		.uleb128 0x33
- 36096 6644 00000000 		.quad	.LBB1425
- 36096      00000000 
- 36097 664c 00000000 		.quad	.LBE1425
- 36097      00000000 
- 36098 6654 34       		.uleb128 0x34
- 36099 6655 FB0B0000 		.long	0xbfb
- 36100 6659 03       		.byte	0x3
- 36101 665a 76       		.byte	0x76
- 36102 665b 804E     		.sleb128 -6400
- 36103 665d 34       		.uleb128 0x34
- 36104 665e 070C0000 		.long	0xc07
- 36105 6662 03       		.byte	0x3
- 36106 6663 76       		.byte	0x76
- 36107 6664 F04D     		.sleb128 -6416
- 36108 6666 31       		.uleb128 0x31
- 36109 6667 500C0000 		.long	0xc50
- 36110 666b 00000000 		.quad	.LBB1426
- 36110      00000000 
- 36111 6673 00000000 		.quad	.LBE1426
- 36111      00000000 
- 36112 667b 02       		.byte	0x2
- 36113 667c 9106     		.value	0x691
- 36114 667e B9660000 		.long	0x66b9
- 36115 6682 32       		.uleb128 0x32
- 36116 6683 7A0C0000 		.long	0xc7a
- 36117 6687 03       		.byte	0x3
- 36118 6688 91       		.byte	0x91
- 36119 6689 E873     		.sleb128 -1560
- 36120 668b 32       		.uleb128 0x32
- 36121 668c 6E0C0000 		.long	0xc6e
- 36122 6690 03       		.byte	0x3
- 36123 6691 91       		.byte	0x91
- 36124 6692 EC73     		.sleb128 -1556
- 36125 6694 32       		.uleb128 0x32
- 36126 6695 620C0000 		.long	0xc62
- 36127 6699 03       		.byte	0x3
- 36128 669a 91       		.byte	0x91
- 36129 669b F073     		.sleb128 -1552
- 36130 669d 33       		.uleb128 0x33
- 36131 669e 00000000 		.quad	.LBB1427
- 36131      00000000 
- 36132 66a6 00000000 		.quad	.LBE1427
- 36132      00000000 
- 36133 66ae 34       		.uleb128 0x34
- 36134 66af 860C0000 		.long	0xc86
- 36135 66b3 03       		.byte	0x3
- 36136 66b4 91       		.byte	0x91
- 36137 66b5 805B     		.sleb128 -4736
- 36138 66b7 00       		.byte	0x0
- 36139 66b8 00       		.byte	0x0
- 36140 66b9 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 974
-
-
- 36141 66ba 910C0000 		.long	0xc91
- 36142 66be 00000000 		.quad	.LBB1428
- 36142      00000000 
- 36143 66c6 00000000 		.quad	.LBE1428
- 36143      00000000 
- 36144 66ce 02       		.byte	0x2
- 36145 66cf 9206     		.value	0x692
- 36146 66d1 29690000 		.long	0x6929
- 36147 66d5 32       		.uleb128 0x32
- 36148 66d6 A30C0000 		.long	0xca3
- 36149 66da 03       		.byte	0x3
- 36150 66db 91       		.byte	0x91
- 36151 66dc 8074     		.sleb128 -1536
- 36152 66de 35       		.uleb128 0x35
- 36153 66df B00C0000 		.long	0xcb0
- 36154 66e3 00000000 		.quad	.LBB1430
- 36154      00000000 
- 36155 66eb 00000000 		.quad	.LBE1430
- 36155      00000000 
- 36156 66f3 02       		.byte	0x2
- 36157 66f4 7D03     		.value	0x37d
- 36158 66f6 32       		.uleb128 0x32
- 36159 66f7 CE0C0000 		.long	0xcce
- 36160 66fb 03       		.byte	0x3
- 36161 66fc 91       		.byte	0x91
- 36162 66fd 9874     		.sleb128 -1512
- 36163 66ff 32       		.uleb128 0x32
- 36164 6700 C20C0000 		.long	0xcc2
- 36165 6704 03       		.byte	0x3
- 36166 6705 91       		.byte	0x91
- 36167 6706 A074     		.sleb128 -1504
- 36168 6708 33       		.uleb128 0x33
- 36169 6709 00000000 		.quad	.LBB1431
- 36169      00000000 
- 36170 6711 00000000 		.quad	.LBE1431
- 36170      00000000 
- 36171 6719 34       		.uleb128 0x34
- 36172 671a DA0C0000 		.long	0xcda
- 36173 671e 03       		.byte	0x3
- 36174 671f 91       		.byte	0x91
- 36175 6720 F074     		.sleb128 -1424
- 36176 6722 34       		.uleb128 0x34
- 36177 6723 E50C0000 		.long	0xce5
- 36178 6727 03       		.byte	0x3
- 36179 6728 91       		.byte	0x91
- 36180 6729 E074     		.sleb128 -1440
- 36181 672b 34       		.uleb128 0x34
- 36182 672c F00C0000 		.long	0xcf0
- 36183 6730 03       		.byte	0x3
- 36184 6731 91       		.byte	0x91
- 36185 6732 D074     		.sleb128 -1456
- 36186 6734 34       		.uleb128 0x34
- 36187 6735 FC0C0000 		.long	0xcfc
- 36188 6739 03       		.byte	0x3
- 36189 673a 91       		.byte	0x91
- 36190 673b C074     		.sleb128 -1472
- 36191 673d 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 975
-
-
- 36192 673e 080D0000 		.long	0xd08
- 36193 6742 03       		.byte	0x3
- 36194 6743 91       		.byte	0x91
- 36195 6744 BC74     		.sleb128 -1476
- 36196 6746 31       		.uleb128 0x31
- 36197 6747 1F0D0000 		.long	0xd1f
- 36198 674b 00000000 		.quad	.LBB1432
- 36198      00000000 
- 36199 6753 00000000 		.quad	.LBE1432
- 36199      00000000 
- 36200 675b 02       		.byte	0x2
- 36201 675c 5603     		.value	0x356
- 36202 675e 75670000 		.long	0x6775
- 36203 6762 32       		.uleb128 0x32
- 36204 6763 3A0D0000 		.long	0xd3a
- 36205 6767 03       		.byte	0x3
- 36206 6768 91       		.byte	0x91
- 36207 6769 8075     		.sleb128 -1408
- 36208 676b 32       		.uleb128 0x32
- 36209 676c 300D0000 		.long	0xd30
- 36210 6770 03       		.byte	0x3
- 36211 6771 91       		.byte	0x91
- 36212 6772 9075     		.sleb128 -1392
- 36213 6774 00       		.byte	0x0
- 36214 6775 31       		.uleb128 0x31
- 36215 6776 450D0000 		.long	0xd45
- 36216 677a 00000000 		.quad	.LBB1434
- 36216      00000000 
- 36217 6782 00000000 		.quad	.LBE1434
- 36217      00000000 
- 36218 678a 02       		.byte	0x2
- 36219 678b 5E03     		.value	0x35e
- 36220 678d A4670000 		.long	0x67a4
- 36221 6791 32       		.uleb128 0x32
- 36222 6792 620D0000 		.long	0xd62
- 36223 6796 03       		.byte	0x3
- 36224 6797 91       		.byte	0x91
- 36225 6798 A075     		.sleb128 -1376
- 36226 679a 32       		.uleb128 0x32
- 36227 679b 570D0000 		.long	0xd57
- 36228 679f 03       		.byte	0x3
- 36229 67a0 91       		.byte	0x91
- 36230 67a1 B075     		.sleb128 -1360
- 36231 67a3 00       		.byte	0x0
- 36232 67a4 31       		.uleb128 0x31
- 36233 67a5 6E0D0000 		.long	0xd6e
- 36234 67a9 00000000 		.quad	.LBB1436
- 36234      00000000 
- 36235 67b1 00000000 		.quad	.LBE1436
- 36235      00000000 
- 36236 67b9 02       		.byte	0x2
- 36237 67ba 6403     		.value	0x364
- 36238 67bc 09680000 		.long	0x6809
- 36239 67c0 32       		.uleb128 0x32
- 36240 67c1 8C0D0000 		.long	0xd8c
- 36241 67c5 03       		.byte	0x3
- 36242 67c6 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 976
-
-
- 36243 67c7 C075     		.sleb128 -1344
- 36244 67c9 32       		.uleb128 0x32
- 36245 67ca 800D0000 		.long	0xd80
- 36246 67ce 03       		.byte	0x3
- 36247 67cf 91       		.byte	0x91
- 36248 67d0 D075     		.sleb128 -1328
- 36249 67d2 33       		.uleb128 0x33
- 36250 67d3 00000000 		.quad	.LBB1437
- 36250      00000000 
- 36251 67db 00000000 		.quad	.LBE1437
- 36251      00000000 
- 36252 67e3 34       		.uleb128 0x34
- 36253 67e4 980D0000 		.long	0xd98
- 36254 67e8 03       		.byte	0x3
- 36255 67e9 91       		.byte	0x91
- 36256 67ea B05B     		.sleb128 -4688
- 36257 67ec 34       		.uleb128 0x34
- 36258 67ed A40D0000 		.long	0xda4
- 36259 67f1 03       		.byte	0x3
- 36260 67f2 91       		.byte	0x91
- 36261 67f3 A05B     		.sleb128 -4704
- 36262 67f5 34       		.uleb128 0x34
- 36263 67f6 AF0D0000 		.long	0xdaf
- 36264 67fa 03       		.byte	0x3
- 36265 67fb 91       		.byte	0x91
- 36266 67fc 905B     		.sleb128 -4720
- 36267 67fe 34       		.uleb128 0x34
- 36268 67ff BB0D0000 		.long	0xdbb
- 36269 6803 03       		.byte	0x3
- 36270 6804 91       		.byte	0x91
- 36271 6805 EC75     		.sleb128 -1300
- 36272 6807 00       		.byte	0x0
- 36273 6808 00       		.byte	0x0
- 36274 6809 31       		.uleb128 0x31
- 36275 680a C70D0000 		.long	0xdc7
- 36276 680e 00000000 		.quad	.LBB1438
- 36276      00000000 
- 36277 6816 00000000 		.quad	.LBE1438
- 36277      00000000 
- 36278 681e 02       		.byte	0x2
- 36279 681f 6603     		.value	0x366
- 36280 6821 38680000 		.long	0x6838
- 36281 6825 32       		.uleb128 0x32
- 36282 6826 E20D0000 		.long	0xde2
- 36283 682a 03       		.byte	0x3
- 36284 682b 91       		.byte	0x91
- 36285 682c F075     		.sleb128 -1296
- 36286 682e 32       		.uleb128 0x32
- 36287 682f D80D0000 		.long	0xdd8
- 36288 6833 03       		.byte	0x3
- 36289 6834 91       		.byte	0x91
- 36290 6835 8076     		.sleb128 -1280
- 36291 6837 00       		.byte	0x0
- 36292 6838 31       		.uleb128 0x31
- 36293 6839 6E0D0000 		.long	0xd6e
- 36294 683d 00000000 		.quad	.LBB1440
- 36294      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 977
-
-
- 36295 6845 00000000 		.quad	.LBE1440
- 36295      00000000 
- 36296 684d 02       		.byte	0x2
- 36297 684e 6803     		.value	0x368
- 36298 6850 9D680000 		.long	0x689d
- 36299 6854 32       		.uleb128 0x32
- 36300 6855 8C0D0000 		.long	0xd8c
- 36301 6859 03       		.byte	0x3
- 36302 685a 91       		.byte	0x91
- 36303 685b 9076     		.sleb128 -1264
- 36304 685d 32       		.uleb128 0x32
- 36305 685e 800D0000 		.long	0xd80
- 36306 6862 03       		.byte	0x3
- 36307 6863 91       		.byte	0x91
- 36308 6864 A076     		.sleb128 -1248
- 36309 6866 33       		.uleb128 0x33
- 36310 6867 00000000 		.quad	.LBB1441
- 36310      00000000 
- 36311 686f 00000000 		.quad	.LBE1441
- 36311      00000000 
- 36312 6877 34       		.uleb128 0x34
- 36313 6878 980D0000 		.long	0xd98
- 36314 687c 03       		.byte	0x3
- 36315 687d 91       		.byte	0x91
- 36316 687e E05B     		.sleb128 -4640
- 36317 6880 34       		.uleb128 0x34
- 36318 6881 A40D0000 		.long	0xda4
- 36319 6885 03       		.byte	0x3
- 36320 6886 91       		.byte	0x91
- 36321 6887 D05B     		.sleb128 -4656
- 36322 6889 34       		.uleb128 0x34
- 36323 688a AF0D0000 		.long	0xdaf
- 36324 688e 03       		.byte	0x3
- 36325 688f 91       		.byte	0x91
- 36326 6890 C05B     		.sleb128 -4672
- 36327 6892 34       		.uleb128 0x34
- 36328 6893 BB0D0000 		.long	0xdbb
- 36329 6897 03       		.byte	0x3
- 36330 6898 91       		.byte	0x91
- 36331 6899 BC76     		.sleb128 -1220
- 36332 689b 00       		.byte	0x0
- 36333 689c 00       		.byte	0x0
- 36334 689d 31       		.uleb128 0x31
- 36335 689e C70D0000 		.long	0xdc7
- 36336 68a2 00000000 		.quad	.LBB1442
- 36336      00000000 
- 36337 68aa 00000000 		.quad	.LBE1442
- 36337      00000000 
- 36338 68b2 02       		.byte	0x2
- 36339 68b3 6A03     		.value	0x36a
- 36340 68b5 CC680000 		.long	0x68cc
- 36341 68b9 32       		.uleb128 0x32
- 36342 68ba E20D0000 		.long	0xde2
- 36343 68be 03       		.byte	0x3
- 36344 68bf 91       		.byte	0x91
- 36345 68c0 C076     		.sleb128 -1216
- 36346 68c2 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 978
-
-
- 36347 68c3 D80D0000 		.long	0xdd8
- 36348 68c7 03       		.byte	0x3
- 36349 68c8 91       		.byte	0x91
- 36350 68c9 D076     		.sleb128 -1200
- 36351 68cb 00       		.byte	0x0
- 36352 68cc 31       		.uleb128 0x31
- 36353 68cd ED0D0000 		.long	0xded
- 36354 68d1 00000000 		.quad	.LBB1444
- 36354      00000000 
- 36355 68d9 00000000 		.quad	.LBE1444
- 36355      00000000 
- 36356 68e1 02       		.byte	0x2
- 36357 68e2 6C03     		.value	0x36c
- 36358 68e4 FB680000 		.long	0x68fb
- 36359 68e8 32       		.uleb128 0x32
- 36360 68e9 0A0E0000 		.long	0xe0a
- 36361 68ed 03       		.byte	0x3
- 36362 68ee 91       		.byte	0x91
- 36363 68ef E076     		.sleb128 -1184
- 36364 68f1 32       		.uleb128 0x32
- 36365 68f2 FF0D0000 		.long	0xdff
- 36366 68f6 03       		.byte	0x3
- 36367 68f7 91       		.byte	0x91
- 36368 68f8 F076     		.sleb128 -1168
- 36369 68fa 00       		.byte	0x0
- 36370 68fb 35       		.uleb128 0x35
- 36371 68fc 1F0D0000 		.long	0xd1f
- 36372 6900 00000000 		.quad	.LBB1446
- 36372      00000000 
- 36373 6908 00000000 		.quad	.LBE1446
- 36373      00000000 
- 36374 6910 02       		.byte	0x2
- 36375 6911 6E03     		.value	0x36e
- 36376 6913 32       		.uleb128 0x32
- 36377 6914 3A0D0000 		.long	0xd3a
- 36378 6918 03       		.byte	0x3
- 36379 6919 91       		.byte	0x91
- 36380 691a 8077     		.sleb128 -1152
- 36381 691c 32       		.uleb128 0x32
- 36382 691d 300D0000 		.long	0xd30
- 36383 6921 03       		.byte	0x3
- 36384 6922 91       		.byte	0x91
- 36385 6923 9077     		.sleb128 -1136
- 36386 6925 00       		.byte	0x0
- 36387 6926 00       		.byte	0x0
- 36388 6927 00       		.byte	0x0
- 36389 6928 00       		.byte	0x0
- 36390 6929 36       		.uleb128 0x36
- 36391 692a 00000000 		.quad	.LBB1448
- 36391      00000000 
- 36392 6932 00000000 		.quad	.LBE1448
- 36392      00000000 
- 36393 693a 48690000 		.long	0x6948
- 36394 693e 34       		.uleb128 0x34
- 36395 693f 180C0000 		.long	0xc18
- 36396 6943 03       		.byte	0x3
- 36397 6944 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 979
-
-
- 36398 6945 F05A     		.sleb128 -4752
- 36399 6947 00       		.byte	0x0
- 36400 6948 31       		.uleb128 0x31
- 36401 6949 160E0000 		.long	0xe16
- 36402 694d 00000000 		.quad	.LBB1449
- 36402      00000000 
- 36403 6955 00000000 		.quad	.LBE1449
- 36403      00000000 
- 36404 695d 02       		.byte	0x2
- 36405 695e 9406     		.value	0x694
- 36406 6960 F0690000 		.long	0x69f0
- 36407 6964 32       		.uleb128 0x32
- 36408 6965 280E0000 		.long	0xe28
- 36409 6969 03       		.byte	0x3
- 36410 696a 91       		.byte	0x91
- 36411 696b A077     		.sleb128 -1120
- 36412 696d 33       		.uleb128 0x33
- 36413 696e 00000000 		.quad	.LBB1450
- 36413      00000000 
- 36414 6976 00000000 		.quad	.LBE1450
- 36414      00000000 
- 36415 697e 34       		.uleb128 0x34
- 36416 697f 340E0000 		.long	0xe34
- 36417 6983 09       		.byte	0x9
- 36418 6984 03       		.byte	0x3
- 36419 6985 00000000 		.quad	ShiftRowTable.6768
- 36419      00000000 
- 36420 698d 35       		.uleb128 0x35
- 36421 698e 6E0D0000 		.long	0xd6e
- 36422 6992 00000000 		.quad	.LBB1451
- 36422      00000000 
- 36423 699a 00000000 		.quad	.LBE1451
- 36423      00000000 
- 36424 69a2 02       		.byte	0x2
- 36425 69a3 9B02     		.value	0x29b
- 36426 69a5 32       		.uleb128 0x32
- 36427 69a6 8C0D0000 		.long	0xd8c
- 36428 69aa 03       		.byte	0x3
- 36429 69ab 91       		.byte	0x91
- 36430 69ac B077     		.sleb128 -1104
- 36431 69ae 32       		.uleb128 0x32
- 36432 69af 800D0000 		.long	0xd80
- 36433 69b3 03       		.byte	0x3
- 36434 69b4 91       		.byte	0x91
- 36435 69b5 C077     		.sleb128 -1088
- 36436 69b7 33       		.uleb128 0x33
- 36437 69b8 00000000 		.quad	.LBB1452
- 36437      00000000 
- 36438 69c0 00000000 		.quad	.LBE1452
- 36438      00000000 
- 36439 69c8 34       		.uleb128 0x34
- 36440 69c9 980D0000 		.long	0xd98
- 36441 69cd 03       		.byte	0x3
- 36442 69ce 91       		.byte	0x91
- 36443 69cf 905C     		.sleb128 -4592
- 36444 69d1 34       		.uleb128 0x34
- 36445 69d2 A40D0000 		.long	0xda4
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 980
-
-
- 36446 69d6 03       		.byte	0x3
- 36447 69d7 91       		.byte	0x91
- 36448 69d8 805C     		.sleb128 -4608
- 36449 69da 34       		.uleb128 0x34
- 36450 69db AF0D0000 		.long	0xdaf
- 36451 69df 03       		.byte	0x3
- 36452 69e0 91       		.byte	0x91
- 36453 69e1 F05B     		.sleb128 -4624
- 36454 69e3 34       		.uleb128 0x34
- 36455 69e4 BB0D0000 		.long	0xdbb
- 36456 69e8 03       		.byte	0x3
- 36457 69e9 91       		.byte	0x91
- 36458 69ea DC77     		.sleb128 -1060
- 36459 69ec 00       		.byte	0x0
- 36460 69ed 00       		.byte	0x0
- 36461 69ee 00       		.byte	0x0
- 36462 69ef 00       		.byte	0x0
- 36463 69f0 36       		.uleb128 0x36
- 36464 69f1 00000000 		.quad	.LBB1453
- 36464      00000000 
- 36465 69f9 00000000 		.quad	.LBE1453
- 36465      00000000 
- 36466 6a01 0F6A0000 		.long	0x6a0f
- 36467 6a05 34       		.uleb128 0x34
- 36468 6a06 280C0000 		.long	0xc28
- 36469 6a0a 03       		.byte	0x3
- 36470 6a0b 91       		.byte	0x91
- 36471 6a0c E05A     		.sleb128 -4768
- 36472 6a0e 00       		.byte	0x0
- 36473 6a0f 31       		.uleb128 0x31
- 36474 6a10 520E0000 		.long	0xe52
- 36475 6a14 00000000 		.quad	.LBB1454
- 36475      00000000 
- 36476 6a1c 00000000 		.quad	.LBE1454
- 36476      00000000 
- 36477 6a24 02       		.byte	0x2
- 36478 6a25 9606     		.value	0x696
- 36479 6a27 3E6A0000 		.long	0x6a3e
- 36480 6a2b 32       		.uleb128 0x32
- 36481 6a2c 6D0E0000 		.long	0xe6d
- 36482 6a30 03       		.byte	0x3
- 36483 6a31 91       		.byte	0x91
- 36484 6a32 E077     		.sleb128 -1056
- 36485 6a34 32       		.uleb128 0x32
- 36486 6a35 630E0000 		.long	0xe63
- 36487 6a39 03       		.byte	0x3
- 36488 6a3a 91       		.byte	0x91
- 36489 6a3b F077     		.sleb128 -1040
- 36490 6a3d 00       		.byte	0x0
- 36491 6a3e 36       		.uleb128 0x36
- 36492 6a3f 00000000 		.quad	.LBB1456
- 36492      00000000 
- 36493 6a47 00000000 		.quad	.LBE1456
- 36493      00000000 
- 36494 6a4f 5D6A0000 		.long	0x6a5d
- 36495 6a53 34       		.uleb128 0x34
- 36496 6a54 380C0000 		.long	0xc38
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 981
-
-
- 36497 6a58 03       		.byte	0x3
- 36498 6a59 91       		.byte	0x91
- 36499 6a5a D05A     		.sleb128 -4784
- 36500 6a5c 00       		.byte	0x0
- 36501 6a5d 31       		.uleb128 0x31
- 36502 6a5e 780E0000 		.long	0xe78
- 36503 6a62 00000000 		.quad	.LBB1457
- 36503      00000000 
- 36504 6a6a 00000000 		.quad	.LBE1457
- 36504      00000000 
- 36505 6a72 02       		.byte	0x2
- 36506 6a73 9806     		.value	0x698
- 36507 6a75 9E6A0000 		.long	0x6a9e
- 36508 6a79 32       		.uleb128 0x32
- 36509 6a7a 8A0E0000 		.long	0xe8a
- 36510 6a7e 03       		.byte	0x3
- 36511 6a7f 91       		.byte	0x91
- 36512 6a80 8078     		.sleb128 -1024
- 36513 6a82 33       		.uleb128 0x33
- 36514 6a83 00000000 		.quad	.LBB1458
- 36514      00000000 
- 36515 6a8b 00000000 		.quad	.LBE1458
- 36515      00000000 
- 36516 6a93 34       		.uleb128 0x34
- 36517 6a94 960E0000 		.long	0xe96
- 36518 6a98 03       		.byte	0x3
- 36519 6a99 91       		.byte	0x91
- 36520 6a9a A05C     		.sleb128 -4576
- 36521 6a9c 00       		.byte	0x0
- 36522 6a9d 00       		.byte	0x0
- 36523 6a9e 33       		.uleb128 0x33
- 36524 6a9f 00000000 		.quad	.LBB1459
- 36524      00000000 
- 36525 6aa7 00000000 		.quad	.LBE1459
- 36525      00000000 
- 36526 6aaf 34       		.uleb128 0x34
- 36527 6ab0 440C0000 		.long	0xc44
- 36528 6ab4 03       		.byte	0x3
- 36529 6ab5 91       		.byte	0x91
- 36530 6ab6 C05A     		.sleb128 -4800
- 36531 6ab8 00       		.byte	0x0
- 36532 6ab9 00       		.byte	0x0
- 36533 6aba 00       		.byte	0x0
- 36534 6abb 31       		.uleb128 0x31
- 36535 6abc 780E0000 		.long	0xe78
- 36536 6ac0 00000000 		.quad	.LBB1460
- 36536      00000000 
- 36537 6ac8 00000000 		.quad	.LBE1460
- 36537      00000000 
- 36538 6ad0 02       		.byte	0x2
- 36539 6ad1 4507     		.value	0x745
- 36540 6ad3 FC6A0000 		.long	0x6afc
- 36541 6ad7 32       		.uleb128 0x32
- 36542 6ad8 8A0E0000 		.long	0xe8a
- 36543 6adc 03       		.byte	0x3
- 36544 6add 91       		.byte	0x91
- 36545 6ade 9078     		.sleb128 -1008
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 982
-
-
- 36546 6ae0 33       		.uleb128 0x33
- 36547 6ae1 00000000 		.quad	.LBB1461
- 36547      00000000 
- 36548 6ae9 00000000 		.quad	.LBE1461
- 36548      00000000 
- 36549 6af1 34       		.uleb128 0x34
- 36550 6af2 960E0000 		.long	0xe96
- 36551 6af6 03       		.byte	0x3
- 36552 6af7 91       		.byte	0x91
- 36553 6af8 B05C     		.sleb128 -4560
- 36554 6afa 00       		.byte	0x0
- 36555 6afb 00       		.byte	0x0
- 36556 6afc 31       		.uleb128 0x31
- 36557 6afd C5480000 		.long	0x48c5
- 36558 6b01 00000000 		.quad	.LBB1462
- 36558      00000000 
- 36559 6b09 00000000 		.quad	.LBE1462
- 36559      00000000 
- 36560 6b11 02       		.byte	0x2
- 36561 6b12 4D07     		.value	0x74d
- 36562 6b14 C46B0000 		.long	0x6bc4
- 36563 6b18 32       		.uleb128 0x32
- 36564 6b19 E3480000 		.long	0x48e3
- 36565 6b1d 03       		.byte	0x3
- 36566 6b1e 91       		.byte	0x91
- 36567 6b1f AC78     		.sleb128 -980
- 36568 6b21 32       		.uleb128 0x32
- 36569 6b22 D7480000 		.long	0x48d7
- 36570 6b26 03       		.byte	0x3
- 36571 6b27 91       		.byte	0x91
- 36572 6b28 B078     		.sleb128 -976
- 36573 6b2a 33       		.uleb128 0x33
- 36574 6b2b 00000000 		.quad	.LBB1463
- 36574      00000000 
- 36575 6b33 00000000 		.quad	.LBE1463
- 36575      00000000 
- 36576 6b3b 34       		.uleb128 0x34
- 36577 6b3c EF480000 		.long	0x48ef
- 36578 6b40 03       		.byte	0x3
- 36579 6b41 91       		.byte	0x91
- 36580 6b42 D05C     		.sleb128 -4528
- 36581 6b44 34       		.uleb128 0x34
- 36582 6b45 F9480000 		.long	0x48f9
- 36583 6b49 03       		.byte	0x3
- 36584 6b4a 91       		.byte	0x91
- 36585 6b4b D078     		.sleb128 -944
- 36586 6b4d 34       		.uleb128 0x34
- 36587 6b4e 05490000 		.long	0x4905
- 36588 6b52 03       		.byte	0x3
- 36589 6b53 91       		.byte	0x91
- 36590 6b54 CC78     		.sleb128 -948
- 36591 6b56 31       		.uleb128 0x31
- 36592 6b57 12490000 		.long	0x4912
- 36593 6b5b 00000000 		.quad	.LBB1464
- 36593      00000000 
- 36594 6b63 00000000 		.quad	.LBE1464
- 36594      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 983
-
-
- 36595 6b6b 02       		.byte	0x2
- 36596 6b6c 5F06     		.value	0x65f
- 36597 6b6e A06B0000 		.long	0x6ba0
- 36598 6b72 32       		.uleb128 0x32
- 36599 6b73 24490000 		.long	0x4924
- 36600 6b77 03       		.byte	0x3
- 36601 6b78 91       		.byte	0x91
- 36602 6b79 D478     		.sleb128 -940
- 36603 6b7b 33       		.uleb128 0x33
- 36604 6b7c 00000000 		.quad	.LBB1465
- 36604      00000000 
- 36605 6b84 00000000 		.quad	.LBE1465
- 36605      00000000 
- 36606 6b8c 34       		.uleb128 0x34
- 36607 6b8d 2E490000 		.long	0x492e
- 36608 6b91 03       		.byte	0x3
- 36609 6b92 91       		.byte	0x91
- 36610 6b93 C05C     		.sleb128 -4544
- 36611 6b95 34       		.uleb128 0x34
- 36612 6b96 3A490000 		.long	0x493a
- 36613 6b9a 03       		.byte	0x3
- 36614 6b9b 91       		.byte	0x91
- 36615 6b9c D878     		.sleb128 -936
- 36616 6b9e 00       		.byte	0x0
- 36617 6b9f 00       		.byte	0x0
- 36618 6ba0 35       		.uleb128 0x35
- 36619 6ba1 46490000 		.long	0x4946
- 36620 6ba5 00000000 		.quad	.LBB1466
- 36620      00000000 
- 36621 6bad 00000000 		.quad	.LBE1466
- 36621      00000000 
- 36622 6bb5 02       		.byte	0x2
- 36623 6bb6 6006     		.value	0x660
- 36624 6bb8 32       		.uleb128 0x32
- 36625 6bb9 58490000 		.long	0x4958
- 36626 6bbd 03       		.byte	0x3
- 36627 6bbe 91       		.byte	0x91
- 36628 6bbf DC78     		.sleb128 -932
- 36629 6bc1 00       		.byte	0x0
- 36630 6bc2 00       		.byte	0x0
- 36631 6bc3 00       		.byte	0x0
- 36632 6bc4 31       		.uleb128 0x31
- 36633 6bc5 A30E0000 		.long	0xea3
- 36634 6bc9 00000000 		.quad	.LBB1468
- 36634      00000000 
- 36635 6bd1 00000000 		.quad	.LBE1468
- 36635      00000000 
- 36636 6bd9 02       		.byte	0x2
- 36637 6bda 4F07     		.value	0x74f
- 36638 6bdc C46C0000 		.long	0x6cc4
- 36639 6be0 32       		.uleb128 0x32
- 36640 6be1 B50E0000 		.long	0xeb5
- 36641 6be5 03       		.byte	0x3
- 36642 6be6 91       		.byte	0x91
- 36643 6be7 E078     		.sleb128 -928
- 36644 6be9 33       		.uleb128 0x33
- 36645 6bea 00000000 		.quad	.LBB1469
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 984
-
-
- 36645      00000000 
- 36646 6bf2 00000000 		.quad	.LBE1469
- 36646      00000000 
- 36647 6bfa 34       		.uleb128 0x34
- 36648 6bfb C10E0000 		.long	0xec1
- 36649 6bff 03       		.byte	0x3
- 36650 6c00 76       		.byte	0x76
- 36651 6c01 A04E     		.sleb128 -6368
- 36652 6c03 31       		.uleb128 0x31
- 36653 6c04 CE0E0000 		.long	0xece
- 36654 6c08 00000000 		.quad	.LBB1470
- 36654      00000000 
- 36655 6c10 00000000 		.quad	.LBE1470
- 36655      00000000 
- 36656 6c18 02       		.byte	0x2
- 36657 6c19 1F06     		.value	0x61f
- 36658 6c1b 446C0000 		.long	0x6c44
- 36659 6c1f 32       		.uleb128 0x32
- 36660 6c20 E00E0000 		.long	0xee0
- 36661 6c24 03       		.byte	0x3
- 36662 6c25 91       		.byte	0x91
- 36663 6c26 F078     		.sleb128 -912
- 36664 6c28 33       		.uleb128 0x33
- 36665 6c29 00000000 		.quad	.LBB1471
- 36665      00000000 
- 36666 6c31 00000000 		.quad	.LBE1471
- 36666      00000000 
- 36667 6c39 34       		.uleb128 0x34
- 36668 6c3a EC0E0000 		.long	0xeec
- 36669 6c3e 03       		.byte	0x3
- 36670 6c3f 91       		.byte	0x91
- 36671 6c40 E05C     		.sleb128 -4512
- 36672 6c42 00       		.byte	0x0
- 36673 6c43 00       		.byte	0x0
- 36674 6c44 31       		.uleb128 0x31
- 36675 6c45 CE0E0000 		.long	0xece
- 36676 6c49 00000000 		.quad	.LBB1472
- 36676      00000000 
- 36677 6c51 00000000 		.quad	.LBE1472
- 36677      00000000 
- 36678 6c59 02       		.byte	0x2
- 36679 6c5a 2006     		.value	0x620
- 36680 6c5c 856C0000 		.long	0x6c85
- 36681 6c60 32       		.uleb128 0x32
- 36682 6c61 E00E0000 		.long	0xee0
- 36683 6c65 03       		.byte	0x3
- 36684 6c66 91       		.byte	0x91
- 36685 6c67 8079     		.sleb128 -896
- 36686 6c69 33       		.uleb128 0x33
- 36687 6c6a 00000000 		.quad	.LBB1473
- 36687      00000000 
- 36688 6c72 00000000 		.quad	.LBE1473
- 36688      00000000 
- 36689 6c7a 34       		.uleb128 0x34
- 36690 6c7b EC0E0000 		.long	0xeec
- 36691 6c7f 03       		.byte	0x3
- 36692 6c80 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 985
-
-
- 36693 6c81 F05C     		.sleb128 -4496
- 36694 6c83 00       		.byte	0x0
- 36695 6c84 00       		.byte	0x0
- 36696 6c85 35       		.uleb128 0x35
- 36697 6c86 CE0E0000 		.long	0xece
- 36698 6c8a 00000000 		.quad	.LBB1474
- 36698      00000000 
- 36699 6c92 00000000 		.quad	.LBE1474
- 36699      00000000 
- 36700 6c9a 02       		.byte	0x2
- 36701 6c9b 2106     		.value	0x621
- 36702 6c9d 32       		.uleb128 0x32
- 36703 6c9e E00E0000 		.long	0xee0
- 36704 6ca2 03       		.byte	0x3
- 36705 6ca3 91       		.byte	0x91
- 36706 6ca4 9079     		.sleb128 -880
- 36707 6ca6 33       		.uleb128 0x33
- 36708 6ca7 00000000 		.quad	.LBB1475
- 36708      00000000 
- 36709 6caf 00000000 		.quad	.LBE1475
- 36709      00000000 
- 36710 6cb7 34       		.uleb128 0x34
- 36711 6cb8 EC0E0000 		.long	0xeec
- 36712 6cbc 03       		.byte	0x3
- 36713 6cbd 91       		.byte	0x91
- 36714 6cbe 805D     		.sleb128 -4480
- 36715 6cc0 00       		.byte	0x0
- 36716 6cc1 00       		.byte	0x0
- 36717 6cc2 00       		.byte	0x0
- 36718 6cc3 00       		.byte	0x0
- 36719 6cc4 31       		.uleb128 0x31
- 36720 6cc5 A30E0000 		.long	0xea3
- 36721 6cc9 00000000 		.quad	.LBB1476
- 36721      00000000 
- 36722 6cd1 00000000 		.quad	.LBE1476
- 36722      00000000 
- 36723 6cd9 02       		.byte	0x2
- 36724 6cda 5007     		.value	0x750
- 36725 6cdc C46D0000 		.long	0x6dc4
- 36726 6ce0 32       		.uleb128 0x32
- 36727 6ce1 B50E0000 		.long	0xeb5
- 36728 6ce5 03       		.byte	0x3
- 36729 6ce6 91       		.byte	0x91
- 36730 6ce7 A079     		.sleb128 -864
- 36731 6ce9 33       		.uleb128 0x33
- 36732 6cea 00000000 		.quad	.LBB1477
- 36732      00000000 
- 36733 6cf2 00000000 		.quad	.LBE1477
- 36733      00000000 
- 36734 6cfa 34       		.uleb128 0x34
- 36735 6cfb C10E0000 		.long	0xec1
- 36736 6cff 03       		.byte	0x3
- 36737 6d00 76       		.byte	0x76
- 36738 6d01 B04E     		.sleb128 -6352
- 36739 6d03 31       		.uleb128 0x31
- 36740 6d04 CE0E0000 		.long	0xece
- 36741 6d08 00000000 		.quad	.LBB1478
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 986
-
-
- 36741      00000000 
- 36742 6d10 00000000 		.quad	.LBE1478
- 36742      00000000 
- 36743 6d18 02       		.byte	0x2
- 36744 6d19 1F06     		.value	0x61f
- 36745 6d1b 446D0000 		.long	0x6d44
- 36746 6d1f 32       		.uleb128 0x32
- 36747 6d20 E00E0000 		.long	0xee0
- 36748 6d24 03       		.byte	0x3
- 36749 6d25 91       		.byte	0x91
- 36750 6d26 B079     		.sleb128 -848
- 36751 6d28 33       		.uleb128 0x33
- 36752 6d29 00000000 		.quad	.LBB1479
- 36752      00000000 
- 36753 6d31 00000000 		.quad	.LBE1479
- 36753      00000000 
- 36754 6d39 34       		.uleb128 0x34
- 36755 6d3a EC0E0000 		.long	0xeec
- 36756 6d3e 03       		.byte	0x3
- 36757 6d3f 91       		.byte	0x91
- 36758 6d40 905D     		.sleb128 -4464
- 36759 6d42 00       		.byte	0x0
- 36760 6d43 00       		.byte	0x0
- 36761 6d44 31       		.uleb128 0x31
- 36762 6d45 CE0E0000 		.long	0xece
- 36763 6d49 00000000 		.quad	.LBB1480
- 36763      00000000 
- 36764 6d51 00000000 		.quad	.LBE1480
- 36764      00000000 
- 36765 6d59 02       		.byte	0x2
- 36766 6d5a 2006     		.value	0x620
- 36767 6d5c 856D0000 		.long	0x6d85
- 36768 6d60 32       		.uleb128 0x32
- 36769 6d61 E00E0000 		.long	0xee0
- 36770 6d65 03       		.byte	0x3
- 36771 6d66 91       		.byte	0x91
- 36772 6d67 C079     		.sleb128 -832
- 36773 6d69 33       		.uleb128 0x33
- 36774 6d6a 00000000 		.quad	.LBB1481
- 36774      00000000 
- 36775 6d72 00000000 		.quad	.LBE1481
- 36775      00000000 
- 36776 6d7a 34       		.uleb128 0x34
- 36777 6d7b EC0E0000 		.long	0xeec
- 36778 6d7f 03       		.byte	0x3
- 36779 6d80 91       		.byte	0x91
- 36780 6d81 A05D     		.sleb128 -4448
- 36781 6d83 00       		.byte	0x0
- 36782 6d84 00       		.byte	0x0
- 36783 6d85 35       		.uleb128 0x35
- 36784 6d86 CE0E0000 		.long	0xece
- 36785 6d8a 00000000 		.quad	.LBB1482
- 36785      00000000 
- 36786 6d92 00000000 		.quad	.LBE1482
- 36786      00000000 
- 36787 6d9a 02       		.byte	0x2
- 36788 6d9b 2106     		.value	0x621
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 987
-
-
- 36789 6d9d 32       		.uleb128 0x32
- 36790 6d9e E00E0000 		.long	0xee0
- 36791 6da2 03       		.byte	0x3
- 36792 6da3 91       		.byte	0x91
- 36793 6da4 D079     		.sleb128 -816
- 36794 6da6 33       		.uleb128 0x33
- 36795 6da7 00000000 		.quad	.LBB1483
- 36795      00000000 
- 36796 6daf 00000000 		.quad	.LBE1483
- 36796      00000000 
- 36797 6db7 34       		.uleb128 0x34
- 36798 6db8 EC0E0000 		.long	0xeec
- 36799 6dbc 03       		.byte	0x3
- 36800 6dbd 91       		.byte	0x91
- 36801 6dbe B05D     		.sleb128 -4432
- 36802 6dc0 00       		.byte	0x0
- 36803 6dc1 00       		.byte	0x0
- 36804 6dc2 00       		.byte	0x0
- 36805 6dc3 00       		.byte	0x0
- 36806 6dc4 31       		.uleb128 0x31
- 36807 6dc5 780E0000 		.long	0xe78
- 36808 6dc9 00000000 		.quad	.LBB1484
- 36808      00000000 
- 36809 6dd1 00000000 		.quad	.LBE1484
- 36809      00000000 
- 36810 6dd9 02       		.byte	0x2
- 36811 6dda 5207     		.value	0x752
- 36812 6ddc 056E0000 		.long	0x6e05
- 36813 6de0 32       		.uleb128 0x32
- 36814 6de1 8A0E0000 		.long	0xe8a
- 36815 6de5 03       		.byte	0x3
- 36816 6de6 91       		.byte	0x91
- 36817 6de7 E079     		.sleb128 -800
- 36818 6de9 33       		.uleb128 0x33
- 36819 6dea 00000000 		.quad	.LBB1485
- 36819      00000000 
- 36820 6df2 00000000 		.quad	.LBE1485
- 36820      00000000 
- 36821 6dfa 34       		.uleb128 0x34
- 36822 6dfb 960E0000 		.long	0xe96
- 36823 6dff 03       		.byte	0x3
- 36824 6e00 91       		.byte	0x91
- 36825 6e01 C05D     		.sleb128 -4416
- 36826 6e03 00       		.byte	0x0
- 36827 6e04 00       		.byte	0x0
- 36828 6e05 31       		.uleb128 0x31
- 36829 6e06 63490000 		.long	0x4963
- 36830 6e0a 00000000 		.quad	.LBB1486
- 36830      00000000 
- 36831 6e12 00000000 		.quad	.LBE1486
- 36831      00000000 
- 36832 6e1a 02       		.byte	0x2
- 36833 6e1b 5407     		.value	0x754
- 36834 6e1d 586E0000 		.long	0x6e58
- 36835 6e21 32       		.uleb128 0x32
- 36836 6e22 7F490000 		.long	0x497f
- 36837 6e26 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 988
-
-
- 36838 6e27 91       		.byte	0x91
- 36839 6e28 F079     		.sleb128 -784
- 36840 6e2a 32       		.uleb128 0x32
- 36841 6e2b 75490000 		.long	0x4975
- 36842 6e2f 03       		.byte	0x3
- 36843 6e30 91       		.byte	0x91
- 36844 6e31 807A     		.sleb128 -768
- 36845 6e33 33       		.uleb128 0x33
- 36846 6e34 00000000 		.quad	.LBB1487
- 36846      00000000 
- 36847 6e3c 00000000 		.quad	.LBE1487
- 36847      00000000 
- 36848 6e44 34       		.uleb128 0x34
- 36849 6e45 89490000 		.long	0x4989
- 36850 6e49 03       		.byte	0x3
- 36851 6e4a 91       		.byte	0x91
- 36852 6e4b E05D     		.sleb128 -4384
- 36853 6e4d 34       		.uleb128 0x34
- 36854 6e4e 94490000 		.long	0x4994
- 36855 6e52 03       		.byte	0x3
- 36856 6e53 91       		.byte	0x91
- 36857 6e54 D05D     		.sleb128 -4400
- 36858 6e56 00       		.byte	0x0
- 36859 6e57 00       		.byte	0x0
- 36860 6e58 31       		.uleb128 0x31
- 36861 6e59 A0490000 		.long	0x49a0
- 36862 6e5d 00000000 		.quad	.LBB1488
- 36862      00000000 
- 36863 6e65 00000000 		.quad	.LBE1488
- 36863      00000000 
- 36864 6e6d 02       		.byte	0x2
- 36865 6e6e 5607     		.value	0x756
- 36866 6e70 AB6E0000 		.long	0x6eab
- 36867 6e74 32       		.uleb128 0x32
- 36868 6e75 BC490000 		.long	0x49bc
- 36869 6e79 03       		.byte	0x3
- 36870 6e7a 91       		.byte	0x91
- 36871 6e7b 907A     		.sleb128 -752
- 36872 6e7d 32       		.uleb128 0x32
- 36873 6e7e B2490000 		.long	0x49b2
- 36874 6e82 03       		.byte	0x3
- 36875 6e83 91       		.byte	0x91
- 36876 6e84 A07A     		.sleb128 -736
- 36877 6e86 33       		.uleb128 0x33
- 36878 6e87 00000000 		.quad	.LBB1489
- 36878      00000000 
- 36879 6e8f 00000000 		.quad	.LBE1489
- 36879      00000000 
- 36880 6e97 34       		.uleb128 0x34
- 36881 6e98 C6490000 		.long	0x49c6
- 36882 6e9c 03       		.byte	0x3
- 36883 6e9d 91       		.byte	0x91
- 36884 6e9e 805E     		.sleb128 -4352
- 36885 6ea0 34       		.uleb128 0x34
- 36886 6ea1 D1490000 		.long	0x49d1
- 36887 6ea5 03       		.byte	0x3
- 36888 6ea6 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 989
-
-
- 36889 6ea7 F05D     		.sleb128 -4368
- 36890 6ea9 00       		.byte	0x0
- 36891 6eaa 00       		.byte	0x0
- 36892 6eab 31       		.uleb128 0x31
- 36893 6eac A30E0000 		.long	0xea3
- 36894 6eb0 00000000 		.quad	.LBB1490
- 36894      00000000 
- 36895 6eb8 00000000 		.quad	.LBE1490
- 36895      00000000 
- 36896 6ec0 02       		.byte	0x2
- 36897 6ec1 5A07     		.value	0x75a
- 36898 6ec3 AB6F0000 		.long	0x6fab
- 36899 6ec7 32       		.uleb128 0x32
- 36900 6ec8 B50E0000 		.long	0xeb5
- 36901 6ecc 03       		.byte	0x3
- 36902 6ecd 91       		.byte	0x91
- 36903 6ece B07A     		.sleb128 -720
- 36904 6ed0 33       		.uleb128 0x33
- 36905 6ed1 00000000 		.quad	.LBB1491
- 36905      00000000 
- 36906 6ed9 00000000 		.quad	.LBE1491
- 36906      00000000 
- 36907 6ee1 34       		.uleb128 0x34
- 36908 6ee2 C10E0000 		.long	0xec1
- 36909 6ee6 03       		.byte	0x3
- 36910 6ee7 76       		.byte	0x76
- 36911 6ee8 C04E     		.sleb128 -6336
- 36912 6eea 31       		.uleb128 0x31
- 36913 6eeb CE0E0000 		.long	0xece
- 36914 6eef 00000000 		.quad	.LBB1492
- 36914      00000000 
- 36915 6ef7 00000000 		.quad	.LBE1492
- 36915      00000000 
- 36916 6eff 02       		.byte	0x2
- 36917 6f00 1F06     		.value	0x61f
- 36918 6f02 2B6F0000 		.long	0x6f2b
- 36919 6f06 32       		.uleb128 0x32
- 36920 6f07 E00E0000 		.long	0xee0
- 36921 6f0b 03       		.byte	0x3
- 36922 6f0c 91       		.byte	0x91
- 36923 6f0d C07A     		.sleb128 -704
- 36924 6f0f 33       		.uleb128 0x33
- 36925 6f10 00000000 		.quad	.LBB1493
- 36925      00000000 
- 36926 6f18 00000000 		.quad	.LBE1493
- 36926      00000000 
- 36927 6f20 34       		.uleb128 0x34
- 36928 6f21 EC0E0000 		.long	0xeec
- 36929 6f25 03       		.byte	0x3
- 36930 6f26 91       		.byte	0x91
- 36931 6f27 905E     		.sleb128 -4336
- 36932 6f29 00       		.byte	0x0
- 36933 6f2a 00       		.byte	0x0
- 36934 6f2b 31       		.uleb128 0x31
- 36935 6f2c CE0E0000 		.long	0xece
- 36936 6f30 00000000 		.quad	.LBB1494
- 36936      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 990
-
-
- 36937 6f38 00000000 		.quad	.LBE1494
- 36937      00000000 
- 36938 6f40 02       		.byte	0x2
- 36939 6f41 2006     		.value	0x620
- 36940 6f43 6C6F0000 		.long	0x6f6c
- 36941 6f47 32       		.uleb128 0x32
- 36942 6f48 E00E0000 		.long	0xee0
- 36943 6f4c 03       		.byte	0x3
- 36944 6f4d 91       		.byte	0x91
- 36945 6f4e D07A     		.sleb128 -688
- 36946 6f50 33       		.uleb128 0x33
- 36947 6f51 00000000 		.quad	.LBB1495
- 36947      00000000 
- 36948 6f59 00000000 		.quad	.LBE1495
- 36948      00000000 
- 36949 6f61 34       		.uleb128 0x34
- 36950 6f62 EC0E0000 		.long	0xeec
- 36951 6f66 03       		.byte	0x3
- 36952 6f67 91       		.byte	0x91
- 36953 6f68 A05E     		.sleb128 -4320
- 36954 6f6a 00       		.byte	0x0
- 36955 6f6b 00       		.byte	0x0
- 36956 6f6c 35       		.uleb128 0x35
- 36957 6f6d CE0E0000 		.long	0xece
- 36958 6f71 00000000 		.quad	.LBB1496
- 36958      00000000 
- 36959 6f79 00000000 		.quad	.LBE1496
- 36959      00000000 
- 36960 6f81 02       		.byte	0x2
- 36961 6f82 2106     		.value	0x621
- 36962 6f84 32       		.uleb128 0x32
- 36963 6f85 E00E0000 		.long	0xee0
- 36964 6f89 03       		.byte	0x3
- 36965 6f8a 91       		.byte	0x91
- 36966 6f8b E07A     		.sleb128 -672
- 36967 6f8d 33       		.uleb128 0x33
- 36968 6f8e 00000000 		.quad	.LBB1497
- 36968      00000000 
- 36969 6f96 00000000 		.quad	.LBE1497
- 36969      00000000 
- 36970 6f9e 34       		.uleb128 0x34
- 36971 6f9f EC0E0000 		.long	0xeec
- 36972 6fa3 03       		.byte	0x3
- 36973 6fa4 91       		.byte	0x91
- 36974 6fa5 B05E     		.sleb128 -4304
- 36975 6fa7 00       		.byte	0x0
- 36976 6fa8 00       		.byte	0x0
- 36977 6fa9 00       		.byte	0x0
- 36978 6faa 00       		.byte	0x0
- 36979 6fab 35       		.uleb128 0x35
- 36980 6fac D10B0000 		.long	0xbd1
- 36981 6fb0 00000000 		.quad	.LBB1498
- 36981      00000000 
- 36982 6fb8 00000000 		.quad	.LBE1498
- 36982      00000000 
- 36983 6fc0 02       		.byte	0x2
- 36984 6fc1 5B07     		.value	0x75b
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 991
-
-
- 36985 6fc3 32       		.uleb128 0x32
- 36986 6fc4 EF0B0000 		.long	0xbef
- 36987 6fc8 03       		.byte	0x3
- 36988 6fc9 91       		.byte	0x91
- 36989 6fca FC7A     		.sleb128 -644
- 36990 6fcc 32       		.uleb128 0x32
- 36991 6fcd E30B0000 		.long	0xbe3
- 36992 6fd1 03       		.byte	0x3
- 36993 6fd2 91       		.byte	0x91
- 36994 6fd3 807B     		.sleb128 -640
- 36995 6fd5 33       		.uleb128 0x33
- 36996 6fd6 00000000 		.quad	.LBB1499
- 36996      00000000 
- 36997 6fde 00000000 		.quad	.LBE1499
- 36997      00000000 
- 36998 6fe6 34       		.uleb128 0x34
- 36999 6fe7 FB0B0000 		.long	0xbfb
- 37000 6feb 03       		.byte	0x3
- 37001 6fec 76       		.byte	0x76
- 37002 6fed E04E     		.sleb128 -6304
- 37003 6fef 34       		.uleb128 0x34
- 37004 6ff0 070C0000 		.long	0xc07
- 37005 6ff4 03       		.byte	0x3
- 37006 6ff5 76       		.byte	0x76
- 37007 6ff6 D04E     		.sleb128 -6320
- 37008 6ff8 31       		.uleb128 0x31
- 37009 6ff9 500C0000 		.long	0xc50
- 37010 6ffd 00000000 		.quad	.LBB1500
- 37010      00000000 
- 37011 7005 00000000 		.quad	.LBE1500
- 37011      00000000 
- 37012 700d 02       		.byte	0x2
- 37013 700e 9106     		.value	0x691
- 37014 7010 4B700000 		.long	0x704b
- 37015 7014 32       		.uleb128 0x32
- 37016 7015 7A0C0000 		.long	0xc7a
- 37017 7019 03       		.byte	0x3
- 37018 701a 91       		.byte	0x91
- 37019 701b 987B     		.sleb128 -616
- 37020 701d 32       		.uleb128 0x32
- 37021 701e 6E0C0000 		.long	0xc6e
- 37022 7022 03       		.byte	0x3
- 37023 7023 91       		.byte	0x91
- 37024 7024 9C7B     		.sleb128 -612
- 37025 7026 32       		.uleb128 0x32
- 37026 7027 620C0000 		.long	0xc62
- 37027 702b 03       		.byte	0x3
- 37028 702c 91       		.byte	0x91
- 37029 702d A07B     		.sleb128 -608
- 37030 702f 33       		.uleb128 0x33
- 37031 7030 00000000 		.quad	.LBB1501
- 37031      00000000 
- 37032 7038 00000000 		.quad	.LBE1501
- 37032      00000000 
- 37033 7040 34       		.uleb128 0x34
- 37034 7041 860C0000 		.long	0xc86
- 37035 7045 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 992
-
-
- 37036 7046 91       		.byte	0x91
- 37037 7047 805F     		.sleb128 -4224
- 37038 7049 00       		.byte	0x0
- 37039 704a 00       		.byte	0x0
- 37040 704b 31       		.uleb128 0x31
- 37041 704c 910C0000 		.long	0xc91
- 37042 7050 00000000 		.quad	.LBB1502
- 37042      00000000 
- 37043 7058 00000000 		.quad	.LBE1502
- 37043      00000000 
- 37044 7060 02       		.byte	0x2
- 37045 7061 9206     		.value	0x692
- 37046 7063 BB720000 		.long	0x72bb
- 37047 7067 32       		.uleb128 0x32
- 37048 7068 A30C0000 		.long	0xca3
- 37049 706c 03       		.byte	0x3
- 37050 706d 91       		.byte	0x91
- 37051 706e B07B     		.sleb128 -592
- 37052 7070 35       		.uleb128 0x35
- 37053 7071 B00C0000 		.long	0xcb0
- 37054 7075 00000000 		.quad	.LBB1504
- 37054      00000000 
- 37055 707d 00000000 		.quad	.LBE1504
- 37055      00000000 
- 37056 7085 02       		.byte	0x2
- 37057 7086 7D03     		.value	0x37d
- 37058 7088 32       		.uleb128 0x32
- 37059 7089 CE0C0000 		.long	0xcce
- 37060 708d 03       		.byte	0x3
- 37061 708e 91       		.byte	0x91
- 37062 708f C87B     		.sleb128 -568
- 37063 7091 32       		.uleb128 0x32
- 37064 7092 C20C0000 		.long	0xcc2
- 37065 7096 03       		.byte	0x3
- 37066 7097 91       		.byte	0x91
- 37067 7098 D07B     		.sleb128 -560
- 37068 709a 33       		.uleb128 0x33
- 37069 709b 00000000 		.quad	.LBB1505
- 37069      00000000 
- 37070 70a3 00000000 		.quad	.LBE1505
- 37070      00000000 
- 37071 70ab 34       		.uleb128 0x34
- 37072 70ac DA0C0000 		.long	0xcda
- 37073 70b0 03       		.byte	0x3
- 37074 70b1 91       		.byte	0x91
- 37075 70b2 A07C     		.sleb128 -480
- 37076 70b4 34       		.uleb128 0x34
- 37077 70b5 E50C0000 		.long	0xce5
- 37078 70b9 03       		.byte	0x3
- 37079 70ba 91       		.byte	0x91
- 37080 70bb 907C     		.sleb128 -496
- 37081 70bd 34       		.uleb128 0x34
- 37082 70be F00C0000 		.long	0xcf0
- 37083 70c2 03       		.byte	0x3
- 37084 70c3 91       		.byte	0x91
- 37085 70c4 807C     		.sleb128 -512
- 37086 70c6 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 993
-
-
- 37087 70c7 FC0C0000 		.long	0xcfc
- 37088 70cb 03       		.byte	0x3
- 37089 70cc 91       		.byte	0x91
- 37090 70cd F07B     		.sleb128 -528
- 37091 70cf 34       		.uleb128 0x34
- 37092 70d0 080D0000 		.long	0xd08
- 37093 70d4 03       		.byte	0x3
- 37094 70d5 91       		.byte	0x91
- 37095 70d6 EC7B     		.sleb128 -532
- 37096 70d8 31       		.uleb128 0x31
- 37097 70d9 1F0D0000 		.long	0xd1f
- 37098 70dd 00000000 		.quad	.LBB1506
- 37098      00000000 
- 37099 70e5 00000000 		.quad	.LBE1506
- 37099      00000000 
- 37100 70ed 02       		.byte	0x2
- 37101 70ee 5603     		.value	0x356
- 37102 70f0 07710000 		.long	0x7107
- 37103 70f4 32       		.uleb128 0x32
- 37104 70f5 3A0D0000 		.long	0xd3a
- 37105 70f9 03       		.byte	0x3
- 37106 70fa 91       		.byte	0x91
- 37107 70fb B07C     		.sleb128 -464
- 37108 70fd 32       		.uleb128 0x32
- 37109 70fe 300D0000 		.long	0xd30
- 37110 7102 03       		.byte	0x3
- 37111 7103 91       		.byte	0x91
- 37112 7104 C07C     		.sleb128 -448
- 37113 7106 00       		.byte	0x0
- 37114 7107 31       		.uleb128 0x31
- 37115 7108 450D0000 		.long	0xd45
- 37116 710c 00000000 		.quad	.LBB1508
- 37116      00000000 
- 37117 7114 00000000 		.quad	.LBE1508
- 37117      00000000 
- 37118 711c 02       		.byte	0x2
- 37119 711d 5E03     		.value	0x35e
- 37120 711f 36710000 		.long	0x7136
- 37121 7123 32       		.uleb128 0x32
- 37122 7124 620D0000 		.long	0xd62
- 37123 7128 03       		.byte	0x3
- 37124 7129 91       		.byte	0x91
- 37125 712a D07C     		.sleb128 -432
- 37126 712c 32       		.uleb128 0x32
- 37127 712d 570D0000 		.long	0xd57
- 37128 7131 03       		.byte	0x3
- 37129 7132 91       		.byte	0x91
- 37130 7133 E07C     		.sleb128 -416
- 37131 7135 00       		.byte	0x0
- 37132 7136 31       		.uleb128 0x31
- 37133 7137 6E0D0000 		.long	0xd6e
- 37134 713b 00000000 		.quad	.LBB1510
- 37134      00000000 
- 37135 7143 00000000 		.quad	.LBE1510
- 37135      00000000 
- 37136 714b 02       		.byte	0x2
- 37137 714c 6403     		.value	0x364
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 994
-
-
- 37138 714e 9B710000 		.long	0x719b
- 37139 7152 32       		.uleb128 0x32
- 37140 7153 8C0D0000 		.long	0xd8c
- 37141 7157 03       		.byte	0x3
- 37142 7158 91       		.byte	0x91
- 37143 7159 F07C     		.sleb128 -400
- 37144 715b 32       		.uleb128 0x32
- 37145 715c 800D0000 		.long	0xd80
- 37146 7160 03       		.byte	0x3
- 37147 7161 91       		.byte	0x91
- 37148 7162 807D     		.sleb128 -384
- 37149 7164 33       		.uleb128 0x33
- 37150 7165 00000000 		.quad	.LBB1511
- 37150      00000000 
- 37151 716d 00000000 		.quad	.LBE1511
- 37151      00000000 
- 37152 7175 34       		.uleb128 0x34
- 37153 7176 980D0000 		.long	0xd98
- 37154 717a 03       		.byte	0x3
- 37155 717b 91       		.byte	0x91
- 37156 717c B05F     		.sleb128 -4176
- 37157 717e 34       		.uleb128 0x34
- 37158 717f A40D0000 		.long	0xda4
- 37159 7183 03       		.byte	0x3
- 37160 7184 91       		.byte	0x91
- 37161 7185 A05F     		.sleb128 -4192
- 37162 7187 34       		.uleb128 0x34
- 37163 7188 AF0D0000 		.long	0xdaf
- 37164 718c 03       		.byte	0x3
- 37165 718d 91       		.byte	0x91
- 37166 718e 905F     		.sleb128 -4208
- 37167 7190 34       		.uleb128 0x34
- 37168 7191 BB0D0000 		.long	0xdbb
- 37169 7195 03       		.byte	0x3
- 37170 7196 91       		.byte	0x91
- 37171 7197 9C7D     		.sleb128 -356
- 37172 7199 00       		.byte	0x0
- 37173 719a 00       		.byte	0x0
- 37174 719b 31       		.uleb128 0x31
- 37175 719c C70D0000 		.long	0xdc7
- 37176 71a0 00000000 		.quad	.LBB1512
- 37176      00000000 
- 37177 71a8 00000000 		.quad	.LBE1512
- 37177      00000000 
- 37178 71b0 02       		.byte	0x2
- 37179 71b1 6603     		.value	0x366
- 37180 71b3 CA710000 		.long	0x71ca
- 37181 71b7 32       		.uleb128 0x32
- 37182 71b8 E20D0000 		.long	0xde2
- 37183 71bc 03       		.byte	0x3
- 37184 71bd 91       		.byte	0x91
- 37185 71be A07D     		.sleb128 -352
- 37186 71c0 32       		.uleb128 0x32
- 37187 71c1 D80D0000 		.long	0xdd8
- 37188 71c5 03       		.byte	0x3
- 37189 71c6 91       		.byte	0x91
- 37190 71c7 B07D     		.sleb128 -336
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 995
-
-
- 37191 71c9 00       		.byte	0x0
- 37192 71ca 31       		.uleb128 0x31
- 37193 71cb 6E0D0000 		.long	0xd6e
- 37194 71cf 00000000 		.quad	.LBB1514
- 37194      00000000 
- 37195 71d7 00000000 		.quad	.LBE1514
- 37195      00000000 
- 37196 71df 02       		.byte	0x2
- 37197 71e0 6803     		.value	0x368
- 37198 71e2 2F720000 		.long	0x722f
- 37199 71e6 32       		.uleb128 0x32
- 37200 71e7 8C0D0000 		.long	0xd8c
- 37201 71eb 03       		.byte	0x3
- 37202 71ec 91       		.byte	0x91
- 37203 71ed C07D     		.sleb128 -320
- 37204 71ef 32       		.uleb128 0x32
- 37205 71f0 800D0000 		.long	0xd80
- 37206 71f4 03       		.byte	0x3
- 37207 71f5 91       		.byte	0x91
- 37208 71f6 D07D     		.sleb128 -304
- 37209 71f8 33       		.uleb128 0x33
- 37210 71f9 00000000 		.quad	.LBB1515
- 37210      00000000 
- 37211 7201 00000000 		.quad	.LBE1515
- 37211      00000000 
- 37212 7209 34       		.uleb128 0x34
- 37213 720a 980D0000 		.long	0xd98
- 37214 720e 03       		.byte	0x3
- 37215 720f 91       		.byte	0x91
- 37216 7210 E05F     		.sleb128 -4128
- 37217 7212 34       		.uleb128 0x34
- 37218 7213 A40D0000 		.long	0xda4
- 37219 7217 03       		.byte	0x3
- 37220 7218 91       		.byte	0x91
- 37221 7219 D05F     		.sleb128 -4144
- 37222 721b 34       		.uleb128 0x34
- 37223 721c AF0D0000 		.long	0xdaf
- 37224 7220 03       		.byte	0x3
- 37225 7221 91       		.byte	0x91
- 37226 7222 C05F     		.sleb128 -4160
- 37227 7224 34       		.uleb128 0x34
- 37228 7225 BB0D0000 		.long	0xdbb
- 37229 7229 03       		.byte	0x3
- 37230 722a 91       		.byte	0x91
- 37231 722b EC7D     		.sleb128 -276
- 37232 722d 00       		.byte	0x0
- 37233 722e 00       		.byte	0x0
- 37234 722f 31       		.uleb128 0x31
- 37235 7230 C70D0000 		.long	0xdc7
- 37236 7234 00000000 		.quad	.LBB1516
- 37236      00000000 
- 37237 723c 00000000 		.quad	.LBE1516
- 37237      00000000 
- 37238 7244 02       		.byte	0x2
- 37239 7245 6A03     		.value	0x36a
- 37240 7247 5E720000 		.long	0x725e
- 37241 724b 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 996
-
-
- 37242 724c E20D0000 		.long	0xde2
- 37243 7250 03       		.byte	0x3
- 37244 7251 91       		.byte	0x91
- 37245 7252 F07D     		.sleb128 -272
- 37246 7254 32       		.uleb128 0x32
- 37247 7255 D80D0000 		.long	0xdd8
- 37248 7259 03       		.byte	0x3
- 37249 725a 91       		.byte	0x91
- 37250 725b 807E     		.sleb128 -256
- 37251 725d 00       		.byte	0x0
- 37252 725e 31       		.uleb128 0x31
- 37253 725f ED0D0000 		.long	0xded
- 37254 7263 00000000 		.quad	.LBB1518
- 37254      00000000 
- 37255 726b 00000000 		.quad	.LBE1518
- 37255      00000000 
- 37256 7273 02       		.byte	0x2
- 37257 7274 6C03     		.value	0x36c
- 37258 7276 8D720000 		.long	0x728d
- 37259 727a 32       		.uleb128 0x32
- 37260 727b 0A0E0000 		.long	0xe0a
- 37261 727f 03       		.byte	0x3
- 37262 7280 91       		.byte	0x91
- 37263 7281 907E     		.sleb128 -240
- 37264 7283 32       		.uleb128 0x32
- 37265 7284 FF0D0000 		.long	0xdff
- 37266 7288 03       		.byte	0x3
- 37267 7289 91       		.byte	0x91
- 37268 728a A07E     		.sleb128 -224
- 37269 728c 00       		.byte	0x0
- 37270 728d 35       		.uleb128 0x35
- 37271 728e 1F0D0000 		.long	0xd1f
- 37272 7292 00000000 		.quad	.LBB1520
- 37272      00000000 
- 37273 729a 00000000 		.quad	.LBE1520
- 37273      00000000 
- 37274 72a2 02       		.byte	0x2
- 37275 72a3 6E03     		.value	0x36e
- 37276 72a5 32       		.uleb128 0x32
- 37277 72a6 3A0D0000 		.long	0xd3a
- 37278 72aa 03       		.byte	0x3
- 37279 72ab 91       		.byte	0x91
- 37280 72ac B07E     		.sleb128 -208
- 37281 72ae 32       		.uleb128 0x32
- 37282 72af 300D0000 		.long	0xd30
- 37283 72b3 03       		.byte	0x3
- 37284 72b4 91       		.byte	0x91
- 37285 72b5 C07E     		.sleb128 -192
- 37286 72b7 00       		.byte	0x0
- 37287 72b8 00       		.byte	0x0
- 37288 72b9 00       		.byte	0x0
- 37289 72ba 00       		.byte	0x0
- 37290 72bb 36       		.uleb128 0x36
- 37291 72bc 00000000 		.quad	.LBB1522
- 37291      00000000 
- 37292 72c4 00000000 		.quad	.LBE1522
- 37292      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 997
-
-
- 37293 72cc DA720000 		.long	0x72da
- 37294 72d0 34       		.uleb128 0x34
- 37295 72d1 180C0000 		.long	0xc18
- 37296 72d5 03       		.byte	0x3
- 37297 72d6 91       		.byte	0x91
- 37298 72d7 F05E     		.sleb128 -4240
- 37299 72d9 00       		.byte	0x0
- 37300 72da 31       		.uleb128 0x31
- 37301 72db 160E0000 		.long	0xe16
- 37302 72df 00000000 		.quad	.LBB1523
- 37302      00000000 
- 37303 72e7 00000000 		.quad	.LBE1523
- 37303      00000000 
- 37304 72ef 02       		.byte	0x2
- 37305 72f0 9406     		.value	0x694
- 37306 72f2 82730000 		.long	0x7382
- 37307 72f6 32       		.uleb128 0x32
- 37308 72f7 280E0000 		.long	0xe28
- 37309 72fb 03       		.byte	0x3
- 37310 72fc 91       		.byte	0x91
- 37311 72fd D07E     		.sleb128 -176
- 37312 72ff 33       		.uleb128 0x33
- 37313 7300 00000000 		.quad	.LBB1524
- 37313      00000000 
- 37314 7308 00000000 		.quad	.LBE1524
- 37314      00000000 
- 37315 7310 34       		.uleb128 0x34
- 37316 7311 340E0000 		.long	0xe34
- 37317 7315 09       		.byte	0x9
- 37318 7316 03       		.byte	0x3
- 37319 7317 00000000 		.quad	ShiftRowTable.6768
- 37319      00000000 
- 37320 731f 35       		.uleb128 0x35
- 37321 7320 6E0D0000 		.long	0xd6e
- 37322 7324 00000000 		.quad	.LBB1525
- 37322      00000000 
- 37323 732c 00000000 		.quad	.LBE1525
- 37323      00000000 
- 37324 7334 02       		.byte	0x2
- 37325 7335 9B02     		.value	0x29b
- 37326 7337 32       		.uleb128 0x32
- 37327 7338 8C0D0000 		.long	0xd8c
- 37328 733c 03       		.byte	0x3
- 37329 733d 91       		.byte	0x91
- 37330 733e E07E     		.sleb128 -160
- 37331 7340 32       		.uleb128 0x32
- 37332 7341 800D0000 		.long	0xd80
- 37333 7345 03       		.byte	0x3
- 37334 7346 91       		.byte	0x91
- 37335 7347 F07E     		.sleb128 -144
- 37336 7349 33       		.uleb128 0x33
- 37337 734a 00000000 		.quad	.LBB1526
- 37337      00000000 
- 37338 7352 00000000 		.quad	.LBE1526
- 37338      00000000 
- 37339 735a 34       		.uleb128 0x34
- 37340 735b 980D0000 		.long	0xd98
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 998
-
-
- 37341 735f 03       		.byte	0x3
- 37342 7360 91       		.byte	0x91
- 37343 7361 9060     		.sleb128 -4080
- 37344 7363 34       		.uleb128 0x34
- 37345 7364 A40D0000 		.long	0xda4
- 37346 7368 03       		.byte	0x3
- 37347 7369 91       		.byte	0x91
- 37348 736a 8060     		.sleb128 -4096
- 37349 736c 34       		.uleb128 0x34
- 37350 736d AF0D0000 		.long	0xdaf
- 37351 7371 03       		.byte	0x3
- 37352 7372 91       		.byte	0x91
- 37353 7373 F05F     		.sleb128 -4112
- 37354 7375 34       		.uleb128 0x34
- 37355 7376 BB0D0000 		.long	0xdbb
- 37356 737a 03       		.byte	0x3
- 37357 737b 91       		.byte	0x91
- 37358 737c 8C7F     		.sleb128 -116
- 37359 737e 00       		.byte	0x0
- 37360 737f 00       		.byte	0x0
- 37361 7380 00       		.byte	0x0
- 37362 7381 00       		.byte	0x0
- 37363 7382 36       		.uleb128 0x36
- 37364 7383 00000000 		.quad	.LBB1527
- 37364      00000000 
- 37365 738b 00000000 		.quad	.LBE1527
- 37365      00000000 
- 37366 7393 A1730000 		.long	0x73a1
- 37367 7397 34       		.uleb128 0x34
- 37368 7398 280C0000 		.long	0xc28
- 37369 739c 03       		.byte	0x3
- 37370 739d 91       		.byte	0x91
- 37371 739e E05E     		.sleb128 -4256
- 37372 73a0 00       		.byte	0x0
- 37373 73a1 31       		.uleb128 0x31
- 37374 73a2 520E0000 		.long	0xe52
- 37375 73a6 00000000 		.quad	.LBB1528
- 37375      00000000 
- 37376 73ae 00000000 		.quad	.LBE1528
- 37376      00000000 
- 37377 73b6 02       		.byte	0x2
- 37378 73b7 9606     		.value	0x696
- 37379 73b9 D0730000 		.long	0x73d0
- 37380 73bd 32       		.uleb128 0x32
- 37381 73be 6D0E0000 		.long	0xe6d
- 37382 73c2 03       		.byte	0x3
- 37383 73c3 91       		.byte	0x91
- 37384 73c4 907F     		.sleb128 -112
- 37385 73c6 32       		.uleb128 0x32
- 37386 73c7 630E0000 		.long	0xe63
- 37387 73cb 03       		.byte	0x3
- 37388 73cc 91       		.byte	0x91
- 37389 73cd A07F     		.sleb128 -96
- 37390 73cf 00       		.byte	0x0
- 37391 73d0 36       		.uleb128 0x36
- 37392 73d1 00000000 		.quad	.LBB1530
- 37392      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 999
-
-
- 37393 73d9 00000000 		.quad	.LBE1530
- 37393      00000000 
- 37394 73e1 EF730000 		.long	0x73ef
- 37395 73e5 34       		.uleb128 0x34
- 37396 73e6 380C0000 		.long	0xc38
- 37397 73ea 03       		.byte	0x3
- 37398 73eb 91       		.byte	0x91
- 37399 73ec D05E     		.sleb128 -4272
- 37400 73ee 00       		.byte	0x0
- 37401 73ef 31       		.uleb128 0x31
- 37402 73f0 780E0000 		.long	0xe78
- 37403 73f4 00000000 		.quad	.LBB1531
- 37403      00000000 
- 37404 73fc 00000000 		.quad	.LBE1531
- 37404      00000000 
- 37405 7404 02       		.byte	0x2
- 37406 7405 9806     		.value	0x698
- 37407 7407 30740000 		.long	0x7430
- 37408 740b 32       		.uleb128 0x32
- 37409 740c 8A0E0000 		.long	0xe8a
- 37410 7410 03       		.byte	0x3
- 37411 7411 91       		.byte	0x91
- 37412 7412 B07F     		.sleb128 -80
- 37413 7414 33       		.uleb128 0x33
- 37414 7415 00000000 		.quad	.LBB1532
- 37414      00000000 
- 37415 741d 00000000 		.quad	.LBE1532
- 37415      00000000 
- 37416 7425 34       		.uleb128 0x34
- 37417 7426 960E0000 		.long	0xe96
- 37418 742a 03       		.byte	0x3
- 37419 742b 91       		.byte	0x91
- 37420 742c A060     		.sleb128 -4064
- 37421 742e 00       		.byte	0x0
- 37422 742f 00       		.byte	0x0
- 37423 7430 33       		.uleb128 0x33
- 37424 7431 00000000 		.quad	.LBB1533
- 37424      00000000 
- 37425 7439 00000000 		.quad	.LBE1533
- 37425      00000000 
- 37426 7441 34       		.uleb128 0x34
- 37427 7442 440C0000 		.long	0xc44
- 37428 7446 03       		.byte	0x3
- 37429 7447 91       		.byte	0x91
- 37430 7448 C05E     		.sleb128 -4288
- 37431 744a 00       		.byte	0x0
- 37432 744b 00       		.byte	0x0
- 37433 744c 00       		.byte	0x0
- 37434 744d 00       		.byte	0x0
- 37435 744e 25       		.uleb128 0x25
- 37436 744f 00000000 		.long	.LASF353
- 37437 7453 02       		.byte	0x2
- 37438 7454 6E06     		.value	0x66e
- 37439 7456 01       		.byte	0x1
- 37440 7457 B1010000 		.long	0x1b1
- 37441 745b 03       		.byte	0x3
- 37442 745c 83740000 		.long	0x7483
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1000
-
-
- 37443 7460 26       		.uleb128 0x26
- 37444 7461 00000000 		.long	.LASF66
- 37445 7465 02       		.byte	0x2
- 37446 7466 6E06     		.value	0x66e
- 37447 7468 B1010000 		.long	0x1b1
- 37448 746c 28       		.uleb128 0x28
- 37449 746d 7500     		.string	"u"
- 37450 746f 02       		.byte	0x2
- 37451 7470 7506     		.value	0x675
- 37452 7472 27050000 		.long	0x527
- 37453 7476 27       		.uleb128 0x27
- 37454 7477 00000000 		.long	.LASF339
- 37455 747b 02       		.byte	0x2
- 37456 747c 7606     		.value	0x676
- 37457 747e 07040000 		.long	0x407
- 37458 7482 00       		.byte	0x0
- 37459 7483 2D       		.uleb128 0x2d
- 37460 7484 00000000 		.long	.LASF354
- 37461 7488 02       		.byte	0x2
- 37462 7489 6F07     		.value	0x76f
- 37463 748b 01       		.byte	0x1
- 37464 748c 00000000 		.quad	.LFB565
- 37464      00000000 
- 37465 7494 00000000 		.quad	.LFE565
- 37465      00000000 
- 37466 749c 00000000 		.long	.LLST3
- 37467 74a0 DCA80000 		.long	0xa8dc
- 37468 74a4 2E       		.uleb128 0x2e
- 37469 74a5 00000000 		.long	.LASF64
- 37470 74a9 02       		.byte	0x2
- 37471 74aa 6F07     		.value	0x76f
- 37472 74ac 89480000 		.long	0x4889
- 37473 74b0 04       		.byte	0x4
- 37474 74b1 91       		.byte	0x91
- 37475 74b2 C8BF7F   		.sleb128 -8248
- 37476 74b5 2F       		.uleb128 0x2f
- 37477 74b6 6B657900 		.string	"key"
- 37478 74ba 02       		.byte	0x2
- 37479 74bb 6F07     		.value	0x76f
- 37480 74bd 8F480000 		.long	0x488f
- 37481 74c1 04       		.byte	0x4
- 37482 74c2 91       		.byte	0x91
- 37483 74c3 C0BF7F   		.sleb128 -8256
- 37484 74c6 37       		.uleb128 0x37
- 37485 74c7 763000   		.string	"v0"
- 37486 74ca 02       		.byte	0x2
- 37487 74cb 7107     		.value	0x771
- 37488 74cd B1010000 		.long	0x1b1
- 37489 74d1 03       		.byte	0x3
- 37490 74d2 91       		.byte	0x91
- 37491 74d3 B053     		.sleb128 -5712
- 37492 74d5 37       		.uleb128 0x37
- 37493 74d6 763100   		.string	"v1"
- 37494 74d9 02       		.byte	0x2
- 37495 74da 7107     		.value	0x771
- 37496 74dc B1010000 		.long	0x1b1
- 37497 74e0 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1001
-
-
- 37498 74e1 91       		.byte	0x91
- 37499 74e2 C053     		.sleb128 -5696
- 37500 74e4 37       		.uleb128 0x37
- 37501 74e5 6B00     		.string	"k"
- 37502 74e7 02       		.byte	0x2
- 37503 74e8 7207     		.value	0x772
- 37504 74ea B1010000 		.long	0x1b1
- 37505 74ee 03       		.byte	0x3
- 37506 74ef 91       		.byte	0x91
- 37507 74f0 D053     		.sleb128 -5680
- 37508 74f2 31       		.uleb128 0x31
- 37509 74f3 AB0B0000 		.long	0xbab
- 37510 74f7 00000000 		.quad	.LBB1944
- 37510      00000000 
- 37511 74ff 00000000 		.quad	.LBE1944
- 37511      00000000 
- 37512 7507 02       		.byte	0x2
- 37513 7508 7407     		.value	0x774
- 37514 750a 34750000 		.long	0x7534
- 37515 750e 32       		.uleb128 0x32
- 37516 750f BC0B0000 		.long	0xbbc
- 37517 7513 03       		.byte	0x3
- 37518 7514 91       		.byte	0x91
- 37519 7515 E853     		.sleb128 -5656
- 37520 7517 33       		.uleb128 0x33
- 37521 7518 00000000 		.quad	.LBB1945
- 37521      00000000 
- 37522 7520 00000000 		.quad	.LBE1945
- 37522      00000000 
- 37523 7528 34       		.uleb128 0x34
- 37524 7529 C70B0000 		.long	0xbc7
- 37525 752d 04       		.byte	0x4
- 37526 752e 91       		.byte	0x91
- 37527 752f D0BF7F   		.sleb128 -8240
- 37528 7532 00       		.byte	0x0
- 37529 7533 00       		.byte	0x0
- 37530 7534 31       		.uleb128 0x31
- 37531 7535 AB0B0000 		.long	0xbab
- 37532 7539 00000000 		.quad	.LBB1946
- 37532      00000000 
- 37533 7541 00000000 		.quad	.LBE1946
- 37533      00000000 
- 37534 7549 02       		.byte	0x2
- 37535 754a 7507     		.value	0x775
- 37536 754c 76750000 		.long	0x7576
- 37537 7550 32       		.uleb128 0x32
- 37538 7551 BC0B0000 		.long	0xbbc
- 37539 7555 03       		.byte	0x3
- 37540 7556 91       		.byte	0x91
- 37541 7557 F053     		.sleb128 -5648
- 37542 7559 33       		.uleb128 0x33
- 37543 755a 00000000 		.quad	.LBB1947
- 37543      00000000 
- 37544 7562 00000000 		.quad	.LBE1947
- 37544      00000000 
- 37545 756a 34       		.uleb128 0x34
- 37546 756b C70B0000 		.long	0xbc7
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1002
-
-
- 37547 756f 04       		.byte	0x4
- 37548 7570 91       		.byte	0x91
- 37549 7571 E0BF7F   		.sleb128 -8224
- 37550 7574 00       		.byte	0x0
- 37551 7575 00       		.byte	0x0
- 37552 7576 31       		.uleb128 0x31
- 37553 7577 D10B0000 		.long	0xbd1
- 37554 757b 00000000 		.quad	.LBB1948
- 37554      00000000 
- 37555 7583 00000000 		.quad	.LBE1948
- 37555      00000000 
- 37556 758b 02       		.byte	0x2
- 37557 758c 8607     		.value	0x786
- 37558 758e 1F7A0000 		.long	0x7a1f
- 37559 7592 32       		.uleb128 0x32
- 37560 7593 EF0B0000 		.long	0xbef
- 37561 7597 03       		.byte	0x3
- 37562 7598 91       		.byte	0x91
- 37563 7599 FC53     		.sleb128 -5636
- 37564 759b 32       		.uleb128 0x32
- 37565 759c E30B0000 		.long	0xbe3
- 37566 75a0 03       		.byte	0x3
- 37567 75a1 91       		.byte	0x91
- 37568 75a2 8054     		.sleb128 -5632
- 37569 75a4 33       		.uleb128 0x33
- 37570 75a5 00000000 		.quad	.LBB1949
- 37570      00000000 
- 37571 75ad 00000000 		.quad	.LBE1949
- 37571      00000000 
- 37572 75b5 34       		.uleb128 0x34
- 37573 75b6 FB0B0000 		.long	0xbfb
- 37574 75ba 04       		.byte	0x4
- 37575 75bb 76       		.byte	0x76
- 37576 75bc C0BB7F   		.sleb128 -8768
- 37577 75bf 34       		.uleb128 0x34
- 37578 75c0 070C0000 		.long	0xc07
- 37579 75c4 04       		.byte	0x4
- 37580 75c5 76       		.byte	0x76
- 37581 75c6 B0BB7F   		.sleb128 -8784
- 37582 75c9 31       		.uleb128 0x31
- 37583 75ca 500C0000 		.long	0xc50
- 37584 75ce 00000000 		.quad	.LBB1950
- 37584      00000000 
- 37585 75d6 00000000 		.quad	.LBE1950
- 37585      00000000 
- 37586 75de 02       		.byte	0x2
- 37587 75df 9106     		.value	0x691
- 37588 75e1 1C760000 		.long	0x761c
- 37589 75e5 32       		.uleb128 0x32
- 37590 75e6 7A0C0000 		.long	0xc7a
- 37591 75ea 03       		.byte	0x3
- 37592 75eb 91       		.byte	0x91
- 37593 75ec 9854     		.sleb128 -5608
- 37594 75ee 32       		.uleb128 0x32
- 37595 75ef 6E0C0000 		.long	0xc6e
- 37596 75f3 03       		.byte	0x3
- 37597 75f4 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1003
-
-
- 37598 75f5 9C54     		.sleb128 -5604
- 37599 75f7 32       		.uleb128 0x32
- 37600 75f8 620C0000 		.long	0xc62
- 37601 75fc 03       		.byte	0x3
- 37602 75fd 91       		.byte	0x91
- 37603 75fe A054     		.sleb128 -5600
- 37604 7600 33       		.uleb128 0x33
- 37605 7601 00000000 		.quad	.LBB1951
- 37605      00000000 
- 37606 7609 00000000 		.quad	.LBE1951
- 37606      00000000 
- 37607 7611 34       		.uleb128 0x34
- 37608 7612 860C0000 		.long	0xc86
- 37609 7616 03       		.byte	0x3
- 37610 7617 91       		.byte	0x91
- 37611 7618 B040     		.sleb128 -8144
- 37612 761a 00       		.byte	0x0
- 37613 761b 00       		.byte	0x0
- 37614 761c 31       		.uleb128 0x31
- 37615 761d 910C0000 		.long	0xc91
- 37616 7621 00000000 		.quad	.LBB1952
- 37616      00000000 
- 37617 7629 00000000 		.quad	.LBE1952
- 37617      00000000 
- 37618 7631 02       		.byte	0x2
- 37619 7632 9206     		.value	0x692
- 37620 7634 8C780000 		.long	0x788c
- 37621 7638 32       		.uleb128 0x32
- 37622 7639 A30C0000 		.long	0xca3
- 37623 763d 03       		.byte	0x3
- 37624 763e 91       		.byte	0x91
- 37625 763f B054     		.sleb128 -5584
- 37626 7641 35       		.uleb128 0x35
- 37627 7642 B00C0000 		.long	0xcb0
- 37628 7646 00000000 		.quad	.LBB1954
- 37628      00000000 
- 37629 764e 00000000 		.quad	.LBE1954
- 37629      00000000 
- 37630 7656 02       		.byte	0x2
- 37631 7657 7D03     		.value	0x37d
- 37632 7659 32       		.uleb128 0x32
- 37633 765a CE0C0000 		.long	0xcce
- 37634 765e 03       		.byte	0x3
- 37635 765f 91       		.byte	0x91
- 37636 7660 C854     		.sleb128 -5560
- 37637 7662 32       		.uleb128 0x32
- 37638 7663 C20C0000 		.long	0xcc2
- 37639 7667 03       		.byte	0x3
- 37640 7668 91       		.byte	0x91
- 37641 7669 D054     		.sleb128 -5552
- 37642 766b 33       		.uleb128 0x33
- 37643 766c 00000000 		.quad	.LBB1955
- 37643      00000000 
- 37644 7674 00000000 		.quad	.LBE1955
- 37644      00000000 
- 37645 767c 34       		.uleb128 0x34
- 37646 767d DA0C0000 		.long	0xcda
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1004
-
-
- 37647 7681 03       		.byte	0x3
- 37648 7682 91       		.byte	0x91
- 37649 7683 A055     		.sleb128 -5472
- 37650 7685 34       		.uleb128 0x34
- 37651 7686 E50C0000 		.long	0xce5
- 37652 768a 03       		.byte	0x3
- 37653 768b 91       		.byte	0x91
- 37654 768c 9055     		.sleb128 -5488
- 37655 768e 34       		.uleb128 0x34
- 37656 768f F00C0000 		.long	0xcf0
- 37657 7693 03       		.byte	0x3
- 37658 7694 91       		.byte	0x91
- 37659 7695 8055     		.sleb128 -5504
- 37660 7697 34       		.uleb128 0x34
- 37661 7698 FC0C0000 		.long	0xcfc
- 37662 769c 03       		.byte	0x3
- 37663 769d 91       		.byte	0x91
- 37664 769e F054     		.sleb128 -5520
- 37665 76a0 34       		.uleb128 0x34
- 37666 76a1 080D0000 		.long	0xd08
- 37667 76a5 03       		.byte	0x3
- 37668 76a6 91       		.byte	0x91
- 37669 76a7 EC54     		.sleb128 -5524
- 37670 76a9 31       		.uleb128 0x31
- 37671 76aa 1F0D0000 		.long	0xd1f
- 37672 76ae 00000000 		.quad	.LBB1956
- 37672      00000000 
- 37673 76b6 00000000 		.quad	.LBE1956
- 37673      00000000 
- 37674 76be 02       		.byte	0x2
- 37675 76bf 5603     		.value	0x356
- 37676 76c1 D8760000 		.long	0x76d8
- 37677 76c5 32       		.uleb128 0x32
- 37678 76c6 3A0D0000 		.long	0xd3a
- 37679 76ca 03       		.byte	0x3
- 37680 76cb 91       		.byte	0x91
- 37681 76cc B055     		.sleb128 -5456
- 37682 76ce 32       		.uleb128 0x32
- 37683 76cf 300D0000 		.long	0xd30
- 37684 76d3 03       		.byte	0x3
- 37685 76d4 91       		.byte	0x91
- 37686 76d5 C055     		.sleb128 -5440
- 37687 76d7 00       		.byte	0x0
- 37688 76d8 31       		.uleb128 0x31
- 37689 76d9 450D0000 		.long	0xd45
- 37690 76dd 00000000 		.quad	.LBB1958
- 37690      00000000 
- 37691 76e5 00000000 		.quad	.LBE1958
- 37691      00000000 
- 37692 76ed 02       		.byte	0x2
- 37693 76ee 5E03     		.value	0x35e
- 37694 76f0 07770000 		.long	0x7707
- 37695 76f4 32       		.uleb128 0x32
- 37696 76f5 620D0000 		.long	0xd62
- 37697 76f9 03       		.byte	0x3
- 37698 76fa 91       		.byte	0x91
- 37699 76fb D055     		.sleb128 -5424
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1005
-
-
- 37700 76fd 32       		.uleb128 0x32
- 37701 76fe 570D0000 		.long	0xd57
- 37702 7702 03       		.byte	0x3
- 37703 7703 91       		.byte	0x91
- 37704 7704 E055     		.sleb128 -5408
- 37705 7706 00       		.byte	0x0
- 37706 7707 31       		.uleb128 0x31
- 37707 7708 6E0D0000 		.long	0xd6e
- 37708 770c 00000000 		.quad	.LBB1960
- 37708      00000000 
- 37709 7714 00000000 		.quad	.LBE1960
- 37709      00000000 
- 37710 771c 02       		.byte	0x2
- 37711 771d 6403     		.value	0x364
- 37712 771f 6C770000 		.long	0x776c
- 37713 7723 32       		.uleb128 0x32
- 37714 7724 8C0D0000 		.long	0xd8c
- 37715 7728 03       		.byte	0x3
- 37716 7729 91       		.byte	0x91
- 37717 772a F055     		.sleb128 -5392
- 37718 772c 32       		.uleb128 0x32
- 37719 772d 800D0000 		.long	0xd80
- 37720 7731 03       		.byte	0x3
- 37721 7732 91       		.byte	0x91
- 37722 7733 8056     		.sleb128 -5376
- 37723 7735 33       		.uleb128 0x33
- 37724 7736 00000000 		.quad	.LBB1961
- 37724      00000000 
- 37725 773e 00000000 		.quad	.LBE1961
- 37725      00000000 
- 37726 7746 34       		.uleb128 0x34
- 37727 7747 980D0000 		.long	0xd98
- 37728 774b 03       		.byte	0x3
- 37729 774c 91       		.byte	0x91
- 37730 774d E040     		.sleb128 -8096
- 37731 774f 34       		.uleb128 0x34
- 37732 7750 A40D0000 		.long	0xda4
- 37733 7754 03       		.byte	0x3
- 37734 7755 91       		.byte	0x91
- 37735 7756 D040     		.sleb128 -8112
- 37736 7758 34       		.uleb128 0x34
- 37737 7759 AF0D0000 		.long	0xdaf
- 37738 775d 03       		.byte	0x3
- 37739 775e 91       		.byte	0x91
- 37740 775f C040     		.sleb128 -8128
- 37741 7761 34       		.uleb128 0x34
- 37742 7762 BB0D0000 		.long	0xdbb
- 37743 7766 03       		.byte	0x3
- 37744 7767 91       		.byte	0x91
- 37745 7768 9C56     		.sleb128 -5348
- 37746 776a 00       		.byte	0x0
- 37747 776b 00       		.byte	0x0
- 37748 776c 31       		.uleb128 0x31
- 37749 776d C70D0000 		.long	0xdc7
- 37750 7771 00000000 		.quad	.LBB1962
- 37750      00000000 
- 37751 7779 00000000 		.quad	.LBE1962
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1006
-
-
- 37751      00000000 
- 37752 7781 02       		.byte	0x2
- 37753 7782 6603     		.value	0x366
- 37754 7784 9B770000 		.long	0x779b
- 37755 7788 32       		.uleb128 0x32
- 37756 7789 E20D0000 		.long	0xde2
- 37757 778d 03       		.byte	0x3
- 37758 778e 91       		.byte	0x91
- 37759 778f A056     		.sleb128 -5344
- 37760 7791 32       		.uleb128 0x32
- 37761 7792 D80D0000 		.long	0xdd8
- 37762 7796 03       		.byte	0x3
- 37763 7797 91       		.byte	0x91
- 37764 7798 B056     		.sleb128 -5328
- 37765 779a 00       		.byte	0x0
- 37766 779b 31       		.uleb128 0x31
- 37767 779c 6E0D0000 		.long	0xd6e
- 37768 77a0 00000000 		.quad	.LBB1964
- 37768      00000000 
- 37769 77a8 00000000 		.quad	.LBE1964
- 37769      00000000 
- 37770 77b0 02       		.byte	0x2
- 37771 77b1 6803     		.value	0x368
- 37772 77b3 00780000 		.long	0x7800
- 37773 77b7 32       		.uleb128 0x32
- 37774 77b8 8C0D0000 		.long	0xd8c
- 37775 77bc 03       		.byte	0x3
- 37776 77bd 91       		.byte	0x91
- 37777 77be C056     		.sleb128 -5312
- 37778 77c0 32       		.uleb128 0x32
- 37779 77c1 800D0000 		.long	0xd80
- 37780 77c5 03       		.byte	0x3
- 37781 77c6 91       		.byte	0x91
- 37782 77c7 D056     		.sleb128 -5296
- 37783 77c9 33       		.uleb128 0x33
- 37784 77ca 00000000 		.quad	.LBB1965
- 37784      00000000 
- 37785 77d2 00000000 		.quad	.LBE1965
- 37785      00000000 
- 37786 77da 34       		.uleb128 0x34
- 37787 77db 980D0000 		.long	0xd98
- 37788 77df 03       		.byte	0x3
- 37789 77e0 91       		.byte	0x91
- 37790 77e1 9041     		.sleb128 -8048
- 37791 77e3 34       		.uleb128 0x34
- 37792 77e4 A40D0000 		.long	0xda4
- 37793 77e8 03       		.byte	0x3
- 37794 77e9 91       		.byte	0x91
- 37795 77ea 8041     		.sleb128 -8064
- 37796 77ec 34       		.uleb128 0x34
- 37797 77ed AF0D0000 		.long	0xdaf
- 37798 77f1 03       		.byte	0x3
- 37799 77f2 91       		.byte	0x91
- 37800 77f3 F040     		.sleb128 -8080
- 37801 77f5 34       		.uleb128 0x34
- 37802 77f6 BB0D0000 		.long	0xdbb
- 37803 77fa 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1007
-
-
- 37804 77fb 91       		.byte	0x91
- 37805 77fc EC56     		.sleb128 -5268
- 37806 77fe 00       		.byte	0x0
- 37807 77ff 00       		.byte	0x0
- 37808 7800 31       		.uleb128 0x31
- 37809 7801 C70D0000 		.long	0xdc7
- 37810 7805 00000000 		.quad	.LBB1966
- 37810      00000000 
- 37811 780d 00000000 		.quad	.LBE1966
- 37811      00000000 
- 37812 7815 02       		.byte	0x2
- 37813 7816 6A03     		.value	0x36a
- 37814 7818 2F780000 		.long	0x782f
- 37815 781c 32       		.uleb128 0x32
- 37816 781d E20D0000 		.long	0xde2
- 37817 7821 03       		.byte	0x3
- 37818 7822 91       		.byte	0x91
- 37819 7823 F056     		.sleb128 -5264
- 37820 7825 32       		.uleb128 0x32
- 37821 7826 D80D0000 		.long	0xdd8
- 37822 782a 03       		.byte	0x3
- 37823 782b 91       		.byte	0x91
- 37824 782c 8057     		.sleb128 -5248
- 37825 782e 00       		.byte	0x0
- 37826 782f 31       		.uleb128 0x31
- 37827 7830 ED0D0000 		.long	0xded
- 37828 7834 00000000 		.quad	.LBB1968
- 37828      00000000 
- 37829 783c 00000000 		.quad	.LBE1968
- 37829      00000000 
- 37830 7844 02       		.byte	0x2
- 37831 7845 6C03     		.value	0x36c
- 37832 7847 5E780000 		.long	0x785e
- 37833 784b 32       		.uleb128 0x32
- 37834 784c 0A0E0000 		.long	0xe0a
- 37835 7850 03       		.byte	0x3
- 37836 7851 91       		.byte	0x91
- 37837 7852 9057     		.sleb128 -5232
- 37838 7854 32       		.uleb128 0x32
- 37839 7855 FF0D0000 		.long	0xdff
- 37840 7859 03       		.byte	0x3
- 37841 785a 91       		.byte	0x91
- 37842 785b A057     		.sleb128 -5216
- 37843 785d 00       		.byte	0x0
- 37844 785e 35       		.uleb128 0x35
- 37845 785f 1F0D0000 		.long	0xd1f
- 37846 7863 00000000 		.quad	.LBB1970
- 37846      00000000 
- 37847 786b 00000000 		.quad	.LBE1970
- 37847      00000000 
- 37848 7873 02       		.byte	0x2
- 37849 7874 6E03     		.value	0x36e
- 37850 7876 32       		.uleb128 0x32
- 37851 7877 3A0D0000 		.long	0xd3a
- 37852 787b 03       		.byte	0x3
- 37853 787c 91       		.byte	0x91
- 37854 787d B057     		.sleb128 -5200
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1008
-
-
- 37855 787f 32       		.uleb128 0x32
- 37856 7880 300D0000 		.long	0xd30
- 37857 7884 03       		.byte	0x3
- 37858 7885 91       		.byte	0x91
- 37859 7886 C057     		.sleb128 -5184
- 37860 7888 00       		.byte	0x0
- 37861 7889 00       		.byte	0x0
- 37862 788a 00       		.byte	0x0
- 37863 788b 00       		.byte	0x0
- 37864 788c 36       		.uleb128 0x36
- 37865 788d 00000000 		.quad	.LBB1972
- 37865      00000000 
- 37866 7895 00000000 		.quad	.LBE1972
- 37866      00000000 
- 37867 789d AB780000 		.long	0x78ab
- 37868 78a1 34       		.uleb128 0x34
- 37869 78a2 180C0000 		.long	0xc18
- 37870 78a6 03       		.byte	0x3
- 37871 78a7 91       		.byte	0x91
- 37872 78a8 A040     		.sleb128 -8160
- 37873 78aa 00       		.byte	0x0
- 37874 78ab 31       		.uleb128 0x31
- 37875 78ac 160E0000 		.long	0xe16
- 37876 78b0 00000000 		.quad	.LBB1973
- 37876      00000000 
- 37877 78b8 00000000 		.quad	.LBE1973
- 37877      00000000 
- 37878 78c0 02       		.byte	0x2
- 37879 78c1 9406     		.value	0x694
- 37880 78c3 53790000 		.long	0x7953
- 37881 78c7 32       		.uleb128 0x32
- 37882 78c8 280E0000 		.long	0xe28
- 37883 78cc 03       		.byte	0x3
- 37884 78cd 91       		.byte	0x91
- 37885 78ce D057     		.sleb128 -5168
- 37886 78d0 33       		.uleb128 0x33
- 37887 78d1 00000000 		.quad	.LBB1974
- 37887      00000000 
- 37888 78d9 00000000 		.quad	.LBE1974
- 37888      00000000 
- 37889 78e1 34       		.uleb128 0x34
- 37890 78e2 340E0000 		.long	0xe34
- 37891 78e6 09       		.byte	0x9
- 37892 78e7 03       		.byte	0x3
- 37893 78e8 00000000 		.quad	ShiftRowTable.6768
- 37893      00000000 
- 37894 78f0 35       		.uleb128 0x35
- 37895 78f1 6E0D0000 		.long	0xd6e
- 37896 78f5 00000000 		.quad	.LBB1975
- 37896      00000000 
- 37897 78fd 00000000 		.quad	.LBE1975
- 37897      00000000 
- 37898 7905 02       		.byte	0x2
- 37899 7906 9B02     		.value	0x29b
- 37900 7908 32       		.uleb128 0x32
- 37901 7909 8C0D0000 		.long	0xd8c
- 37902 790d 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1009
-
-
- 37903 790e 91       		.byte	0x91
- 37904 790f E057     		.sleb128 -5152
- 37905 7911 32       		.uleb128 0x32
- 37906 7912 800D0000 		.long	0xd80
- 37907 7916 03       		.byte	0x3
- 37908 7917 91       		.byte	0x91
- 37909 7918 F057     		.sleb128 -5136
- 37910 791a 33       		.uleb128 0x33
- 37911 791b 00000000 		.quad	.LBB1976
- 37911      00000000 
- 37912 7923 00000000 		.quad	.LBE1976
- 37912      00000000 
- 37913 792b 34       		.uleb128 0x34
- 37914 792c 980D0000 		.long	0xd98
- 37915 7930 03       		.byte	0x3
- 37916 7931 91       		.byte	0x91
- 37917 7932 C041     		.sleb128 -8000
- 37918 7934 34       		.uleb128 0x34
- 37919 7935 A40D0000 		.long	0xda4
- 37920 7939 03       		.byte	0x3
- 37921 793a 91       		.byte	0x91
- 37922 793b B041     		.sleb128 -8016
- 37923 793d 34       		.uleb128 0x34
- 37924 793e AF0D0000 		.long	0xdaf
- 37925 7942 03       		.byte	0x3
- 37926 7943 91       		.byte	0x91
- 37927 7944 A041     		.sleb128 -8032
- 37928 7946 34       		.uleb128 0x34
- 37929 7947 BB0D0000 		.long	0xdbb
- 37930 794b 03       		.byte	0x3
- 37931 794c 91       		.byte	0x91
- 37932 794d 8C58     		.sleb128 -5108
- 37933 794f 00       		.byte	0x0
- 37934 7950 00       		.byte	0x0
- 37935 7951 00       		.byte	0x0
- 37936 7952 00       		.byte	0x0
- 37937 7953 36       		.uleb128 0x36
- 37938 7954 00000000 		.quad	.LBB1977
- 37938      00000000 
- 37939 795c 00000000 		.quad	.LBE1977
- 37939      00000000 
- 37940 7964 72790000 		.long	0x7972
- 37941 7968 34       		.uleb128 0x34
- 37942 7969 280C0000 		.long	0xc28
- 37943 796d 03       		.byte	0x3
- 37944 796e 91       		.byte	0x91
- 37945 796f 9040     		.sleb128 -8176
- 37946 7971 00       		.byte	0x0
- 37947 7972 31       		.uleb128 0x31
- 37948 7973 520E0000 		.long	0xe52
- 37949 7977 00000000 		.quad	.LBB1978
- 37949      00000000 
- 37950 797f 00000000 		.quad	.LBE1978
- 37950      00000000 
- 37951 7987 02       		.byte	0x2
- 37952 7988 9606     		.value	0x696
- 37953 798a A1790000 		.long	0x79a1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1010
-
-
- 37954 798e 32       		.uleb128 0x32
- 37955 798f 6D0E0000 		.long	0xe6d
- 37956 7993 03       		.byte	0x3
- 37957 7994 91       		.byte	0x91
- 37958 7995 9058     		.sleb128 -5104
- 37959 7997 32       		.uleb128 0x32
- 37960 7998 630E0000 		.long	0xe63
- 37961 799c 03       		.byte	0x3
- 37962 799d 91       		.byte	0x91
- 37963 799e A058     		.sleb128 -5088
- 37964 79a0 00       		.byte	0x0
- 37965 79a1 36       		.uleb128 0x36
- 37966 79a2 00000000 		.quad	.LBB1980
- 37966      00000000 
- 37967 79aa 00000000 		.quad	.LBE1980
- 37967      00000000 
- 37968 79b2 C0790000 		.long	0x79c0
- 37969 79b6 34       		.uleb128 0x34
- 37970 79b7 380C0000 		.long	0xc38
- 37971 79bb 03       		.byte	0x3
- 37972 79bc 91       		.byte	0x91
- 37973 79bd 8040     		.sleb128 -8192
- 37974 79bf 00       		.byte	0x0
- 37975 79c0 31       		.uleb128 0x31
- 37976 79c1 780E0000 		.long	0xe78
- 37977 79c5 00000000 		.quad	.LBB1981
- 37977      00000000 
- 37978 79cd 00000000 		.quad	.LBE1981
- 37978      00000000 
- 37979 79d5 02       		.byte	0x2
- 37980 79d6 9806     		.value	0x698
- 37981 79d8 017A0000 		.long	0x7a01
- 37982 79dc 32       		.uleb128 0x32
- 37983 79dd 8A0E0000 		.long	0xe8a
- 37984 79e1 03       		.byte	0x3
- 37985 79e2 91       		.byte	0x91
- 37986 79e3 B058     		.sleb128 -5072
- 37987 79e5 33       		.uleb128 0x33
- 37988 79e6 00000000 		.quad	.LBB1982
- 37988      00000000 
- 37989 79ee 00000000 		.quad	.LBE1982
- 37989      00000000 
- 37990 79f6 34       		.uleb128 0x34
- 37991 79f7 960E0000 		.long	0xe96
- 37992 79fb 03       		.byte	0x3
- 37993 79fc 91       		.byte	0x91
- 37994 79fd D041     		.sleb128 -7984
- 37995 79ff 00       		.byte	0x0
- 37996 7a00 00       		.byte	0x0
- 37997 7a01 33       		.uleb128 0x33
- 37998 7a02 00000000 		.quad	.LBB1983
- 37998      00000000 
- 37999 7a0a 00000000 		.quad	.LBE1983
- 37999      00000000 
- 38000 7a12 34       		.uleb128 0x34
- 38001 7a13 440C0000 		.long	0xc44
- 38002 7a17 04       		.byte	0x4
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1011
-
-
- 38003 7a18 91       		.byte	0x91
- 38004 7a19 F0BF7F   		.sleb128 -8208
- 38005 7a1c 00       		.byte	0x0
- 38006 7a1d 00       		.byte	0x0
- 38007 7a1e 00       		.byte	0x0
- 38008 7a1f 31       		.uleb128 0x31
- 38009 7a20 A30E0000 		.long	0xea3
- 38010 7a24 00000000 		.quad	.LBB1984
- 38010      00000000 
- 38011 7a2c 00000000 		.quad	.LBE1984
- 38011      00000000 
- 38012 7a34 02       		.byte	0x2
- 38013 7a35 8607     		.value	0x786
- 38014 7a37 207B0000 		.long	0x7b20
- 38015 7a3b 32       		.uleb128 0x32
- 38016 7a3c B50E0000 		.long	0xeb5
- 38017 7a40 03       		.byte	0x3
- 38018 7a41 91       		.byte	0x91
- 38019 7a42 C058     		.sleb128 -5056
- 38020 7a44 33       		.uleb128 0x33
- 38021 7a45 00000000 		.quad	.LBB1985
- 38021      00000000 
- 38022 7a4d 00000000 		.quad	.LBE1985
- 38022      00000000 
- 38023 7a55 34       		.uleb128 0x34
- 38024 7a56 C10E0000 		.long	0xec1
- 38025 7a5a 04       		.byte	0x4
- 38026 7a5b 76       		.byte	0x76
- 38027 7a5c E0BB7F   		.sleb128 -8736
- 38028 7a5f 31       		.uleb128 0x31
- 38029 7a60 CE0E0000 		.long	0xece
- 38030 7a64 00000000 		.quad	.LBB1986
- 38030      00000000 
- 38031 7a6c 00000000 		.quad	.LBE1986
- 38031      00000000 
- 38032 7a74 02       		.byte	0x2
- 38033 7a75 1F06     		.value	0x61f
- 38034 7a77 A07A0000 		.long	0x7aa0
- 38035 7a7b 32       		.uleb128 0x32
- 38036 7a7c E00E0000 		.long	0xee0
- 38037 7a80 03       		.byte	0x3
- 38038 7a81 91       		.byte	0x91
- 38039 7a82 D058     		.sleb128 -5040
- 38040 7a84 33       		.uleb128 0x33
- 38041 7a85 00000000 		.quad	.LBB1987
- 38041      00000000 
- 38042 7a8d 00000000 		.quad	.LBE1987
- 38042      00000000 
- 38043 7a95 34       		.uleb128 0x34
- 38044 7a96 EC0E0000 		.long	0xeec
- 38045 7a9a 03       		.byte	0x3
- 38046 7a9b 91       		.byte	0x91
- 38047 7a9c E041     		.sleb128 -7968
- 38048 7a9e 00       		.byte	0x0
- 38049 7a9f 00       		.byte	0x0
- 38050 7aa0 31       		.uleb128 0x31
- 38051 7aa1 CE0E0000 		.long	0xece
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1012
-
-
- 38052 7aa5 00000000 		.quad	.LBB1988
- 38052      00000000 
- 38053 7aad 00000000 		.quad	.LBE1988
- 38053      00000000 
- 38054 7ab5 02       		.byte	0x2
- 38055 7ab6 2006     		.value	0x620
- 38056 7ab8 E17A0000 		.long	0x7ae1
- 38057 7abc 32       		.uleb128 0x32
- 38058 7abd E00E0000 		.long	0xee0
- 38059 7ac1 03       		.byte	0x3
- 38060 7ac2 91       		.byte	0x91
- 38061 7ac3 E058     		.sleb128 -5024
- 38062 7ac5 33       		.uleb128 0x33
- 38063 7ac6 00000000 		.quad	.LBB1989
- 38063      00000000 
- 38064 7ace 00000000 		.quad	.LBE1989
- 38064      00000000 
- 38065 7ad6 34       		.uleb128 0x34
- 38066 7ad7 EC0E0000 		.long	0xeec
- 38067 7adb 03       		.byte	0x3
- 38068 7adc 91       		.byte	0x91
- 38069 7add F041     		.sleb128 -7952
- 38070 7adf 00       		.byte	0x0
- 38071 7ae0 00       		.byte	0x0
- 38072 7ae1 35       		.uleb128 0x35
- 38073 7ae2 CE0E0000 		.long	0xece
- 38074 7ae6 00000000 		.quad	.LBB1990
- 38074      00000000 
- 38075 7aee 00000000 		.quad	.LBE1990
- 38075      00000000 
- 38076 7af6 02       		.byte	0x2
- 38077 7af7 2106     		.value	0x621
- 38078 7af9 32       		.uleb128 0x32
- 38079 7afa E00E0000 		.long	0xee0
- 38080 7afe 03       		.byte	0x3
- 38081 7aff 91       		.byte	0x91
- 38082 7b00 F058     		.sleb128 -5008
- 38083 7b02 33       		.uleb128 0x33
- 38084 7b03 00000000 		.quad	.LBB1991
- 38084      00000000 
- 38085 7b0b 00000000 		.quad	.LBE1991
- 38085      00000000 
- 38086 7b13 34       		.uleb128 0x34
- 38087 7b14 EC0E0000 		.long	0xeec
- 38088 7b18 03       		.byte	0x3
- 38089 7b19 91       		.byte	0x91
- 38090 7b1a 8042     		.sleb128 -7936
- 38091 7b1c 00       		.byte	0x0
- 38092 7b1d 00       		.byte	0x0
- 38093 7b1e 00       		.byte	0x0
- 38094 7b1f 00       		.byte	0x0
- 38095 7b20 31       		.uleb128 0x31
- 38096 7b21 520E0000 		.long	0xe52
- 38097 7b25 00000000 		.quad	.LBB1992
- 38097      00000000 
- 38098 7b2d 00000000 		.quad	.LBE1992
- 38098      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1013
-
-
- 38099 7b35 02       		.byte	0x2
- 38100 7b36 8607     		.value	0x786
- 38101 7b38 4F7B0000 		.long	0x7b4f
- 38102 7b3c 32       		.uleb128 0x32
- 38103 7b3d 6D0E0000 		.long	0xe6d
- 38104 7b41 03       		.byte	0x3
- 38105 7b42 91       		.byte	0x91
- 38106 7b43 8059     		.sleb128 -4992
- 38107 7b45 32       		.uleb128 0x32
- 38108 7b46 630E0000 		.long	0xe63
- 38109 7b4a 03       		.byte	0x3
- 38110 7b4b 91       		.byte	0x91
- 38111 7b4c 9059     		.sleb128 -4976
- 38112 7b4e 00       		.byte	0x0
- 38113 7b4f 31       		.uleb128 0x31
- 38114 7b50 4E740000 		.long	0x744e
- 38115 7b54 00000000 		.quad	.LBB1994
- 38115      00000000 
- 38116 7b5c 00000000 		.quad	.LBE1994
- 38116      00000000 
- 38117 7b64 02       		.byte	0x2
- 38118 7b65 8707     		.value	0x787
- 38119 7b67 DF7B0000 		.long	0x7bdf
- 38120 7b6b 32       		.uleb128 0x32
- 38121 7b6c 60740000 		.long	0x7460
- 38122 7b70 03       		.byte	0x3
- 38123 7b71 91       		.byte	0x91
- 38124 7b72 A059     		.sleb128 -4960
- 38125 7b74 33       		.uleb128 0x33
- 38126 7b75 00000000 		.quad	.LBB1995
- 38126      00000000 
- 38127 7b7d 00000000 		.quad	.LBE1995
- 38127      00000000 
- 38128 7b85 34       		.uleb128 0x34
- 38129 7b86 6C740000 		.long	0x746c
- 38130 7b8a 03       		.byte	0x3
- 38131 7b8b 91       		.byte	0x91
- 38132 7b8c A042     		.sleb128 -7904
- 38133 7b8e 34       		.uleb128 0x34
- 38134 7b8f 76740000 		.long	0x7476
- 38135 7b93 03       		.byte	0x3
- 38136 7b94 91       		.byte	0x91
- 38137 7b95 B459     		.sleb128 -4940
- 38138 7b97 35       		.uleb128 0x35
- 38139 7b98 12490000 		.long	0x4912
- 38140 7b9c 00000000 		.quad	.LBB1996
- 38140      00000000 
- 38141 7ba4 00000000 		.quad	.LBE1996
- 38141      00000000 
- 38142 7bac 02       		.byte	0x2
- 38143 7bad 7906     		.value	0x679
- 38144 7baf 32       		.uleb128 0x32
- 38145 7bb0 24490000 		.long	0x4924
- 38146 7bb4 03       		.byte	0x3
- 38147 7bb5 91       		.byte	0x91
- 38148 7bb6 B859     		.sleb128 -4936
- 38149 7bb8 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1014
-
-
- 38150 7bb9 00000000 		.quad	.LBB1997
- 38150      00000000 
- 38151 7bc1 00000000 		.quad	.LBE1997
- 38151      00000000 
- 38152 7bc9 34       		.uleb128 0x34
- 38153 7bca 2E490000 		.long	0x492e
- 38154 7bce 03       		.byte	0x3
- 38155 7bcf 91       		.byte	0x91
- 38156 7bd0 9042     		.sleb128 -7920
- 38157 7bd2 34       		.uleb128 0x34
- 38158 7bd3 3A490000 		.long	0x493a
- 38159 7bd7 03       		.byte	0x3
- 38160 7bd8 91       		.byte	0x91
- 38161 7bd9 BC59     		.sleb128 -4932
- 38162 7bdb 00       		.byte	0x0
- 38163 7bdc 00       		.byte	0x0
- 38164 7bdd 00       		.byte	0x0
- 38165 7bde 00       		.byte	0x0
- 38166 7bdf 31       		.uleb128 0x31
- 38167 7be0 A30E0000 		.long	0xea3
- 38168 7be4 00000000 		.quad	.LBB1998
- 38168      00000000 
- 38169 7bec 00000000 		.quad	.LBE1998
- 38169      00000000 
- 38170 7bf4 02       		.byte	0x2
- 38171 7bf5 8707     		.value	0x787
- 38172 7bf7 E07C0000 		.long	0x7ce0
- 38173 7bfb 32       		.uleb128 0x32
- 38174 7bfc B50E0000 		.long	0xeb5
- 38175 7c00 03       		.byte	0x3
- 38176 7c01 91       		.byte	0x91
- 38177 7c02 C059     		.sleb128 -4928
- 38178 7c04 33       		.uleb128 0x33
- 38179 7c05 00000000 		.quad	.LBB1999
- 38179      00000000 
- 38180 7c0d 00000000 		.quad	.LBE1999
- 38180      00000000 
- 38181 7c15 34       		.uleb128 0x34
- 38182 7c16 C10E0000 		.long	0xec1
- 38183 7c1a 04       		.byte	0x4
- 38184 7c1b 76       		.byte	0x76
- 38185 7c1c F0BB7F   		.sleb128 -8720
- 38186 7c1f 31       		.uleb128 0x31
- 38187 7c20 CE0E0000 		.long	0xece
- 38188 7c24 00000000 		.quad	.LBB2000
- 38188      00000000 
- 38189 7c2c 00000000 		.quad	.LBE2000
- 38189      00000000 
- 38190 7c34 02       		.byte	0x2
- 38191 7c35 1F06     		.value	0x61f
- 38192 7c37 607C0000 		.long	0x7c60
- 38193 7c3b 32       		.uleb128 0x32
- 38194 7c3c E00E0000 		.long	0xee0
- 38195 7c40 03       		.byte	0x3
- 38196 7c41 91       		.byte	0x91
- 38197 7c42 D059     		.sleb128 -4912
- 38198 7c44 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1015
-
-
- 38199 7c45 00000000 		.quad	.LBB2001
- 38199      00000000 
- 38200 7c4d 00000000 		.quad	.LBE2001
- 38200      00000000 
- 38201 7c55 34       		.uleb128 0x34
- 38202 7c56 EC0E0000 		.long	0xeec
- 38203 7c5a 03       		.byte	0x3
- 38204 7c5b 91       		.byte	0x91
- 38205 7c5c B042     		.sleb128 -7888
- 38206 7c5e 00       		.byte	0x0
- 38207 7c5f 00       		.byte	0x0
- 38208 7c60 31       		.uleb128 0x31
- 38209 7c61 CE0E0000 		.long	0xece
- 38210 7c65 00000000 		.quad	.LBB2002
- 38210      00000000 
- 38211 7c6d 00000000 		.quad	.LBE2002
- 38211      00000000 
- 38212 7c75 02       		.byte	0x2
- 38213 7c76 2006     		.value	0x620
- 38214 7c78 A17C0000 		.long	0x7ca1
- 38215 7c7c 32       		.uleb128 0x32
- 38216 7c7d E00E0000 		.long	0xee0
- 38217 7c81 03       		.byte	0x3
- 38218 7c82 91       		.byte	0x91
- 38219 7c83 E059     		.sleb128 -4896
- 38220 7c85 33       		.uleb128 0x33
- 38221 7c86 00000000 		.quad	.LBB2003
- 38221      00000000 
- 38222 7c8e 00000000 		.quad	.LBE2003
- 38222      00000000 
- 38223 7c96 34       		.uleb128 0x34
- 38224 7c97 EC0E0000 		.long	0xeec
- 38225 7c9b 03       		.byte	0x3
- 38226 7c9c 91       		.byte	0x91
- 38227 7c9d C042     		.sleb128 -7872
- 38228 7c9f 00       		.byte	0x0
- 38229 7ca0 00       		.byte	0x0
- 38230 7ca1 35       		.uleb128 0x35
- 38231 7ca2 CE0E0000 		.long	0xece
- 38232 7ca6 00000000 		.quad	.LBB2004
- 38232      00000000 
- 38233 7cae 00000000 		.quad	.LBE2004
- 38233      00000000 
- 38234 7cb6 02       		.byte	0x2
- 38235 7cb7 2106     		.value	0x621
- 38236 7cb9 32       		.uleb128 0x32
- 38237 7cba E00E0000 		.long	0xee0
- 38238 7cbe 03       		.byte	0x3
- 38239 7cbf 91       		.byte	0x91
- 38240 7cc0 F059     		.sleb128 -4880
- 38241 7cc2 33       		.uleb128 0x33
- 38242 7cc3 00000000 		.quad	.LBB2005
- 38242      00000000 
- 38243 7ccb 00000000 		.quad	.LBE2005
- 38243      00000000 
- 38244 7cd3 34       		.uleb128 0x34
- 38245 7cd4 EC0E0000 		.long	0xeec
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1016
-
-
- 38246 7cd8 03       		.byte	0x3
- 38247 7cd9 91       		.byte	0x91
- 38248 7cda D042     		.sleb128 -7856
- 38249 7cdc 00       		.byte	0x0
- 38250 7cdd 00       		.byte	0x0
- 38251 7cde 00       		.byte	0x0
- 38252 7cdf 00       		.byte	0x0
- 38253 7ce0 31       		.uleb128 0x31
- 38254 7ce1 520E0000 		.long	0xe52
- 38255 7ce5 00000000 		.quad	.LBB2006
- 38255      00000000 
- 38256 7ced 00000000 		.quad	.LBE2006
- 38256      00000000 
- 38257 7cf5 02       		.byte	0x2
- 38258 7cf6 8707     		.value	0x787
- 38259 7cf8 0F7D0000 		.long	0x7d0f
- 38260 7cfc 32       		.uleb128 0x32
- 38261 7cfd 6D0E0000 		.long	0xe6d
- 38262 7d01 03       		.byte	0x3
- 38263 7d02 91       		.byte	0x91
- 38264 7d03 805A     		.sleb128 -4864
- 38265 7d05 32       		.uleb128 0x32
- 38266 7d06 630E0000 		.long	0xe63
- 38267 7d0a 03       		.byte	0x3
- 38268 7d0b 91       		.byte	0x91
- 38269 7d0c 905A     		.sleb128 -4848
- 38270 7d0e 00       		.byte	0x0
- 38271 7d0f 31       		.uleb128 0x31
- 38272 7d10 D10B0000 		.long	0xbd1
- 38273 7d14 00000000 		.quad	.LBB2008
- 38273      00000000 
- 38274 7d1c 00000000 		.quad	.LBE2008
- 38274      00000000 
- 38275 7d24 02       		.byte	0x2
- 38276 7d25 8807     		.value	0x788
- 38277 7d27 B7810000 		.long	0x81b7
- 38278 7d2b 32       		.uleb128 0x32
- 38279 7d2c EF0B0000 		.long	0xbef
- 38280 7d30 03       		.byte	0x3
- 38281 7d31 91       		.byte	0x91
- 38282 7d32 AC5A     		.sleb128 -4820
- 38283 7d34 32       		.uleb128 0x32
- 38284 7d35 E30B0000 		.long	0xbe3
- 38285 7d39 03       		.byte	0x3
- 38286 7d3a 91       		.byte	0x91
- 38287 7d3b B05A     		.sleb128 -4816
- 38288 7d3d 33       		.uleb128 0x33
- 38289 7d3e 00000000 		.quad	.LBB2009
- 38289      00000000 
- 38290 7d46 00000000 		.quad	.LBE2009
- 38290      00000000 
- 38291 7d4e 34       		.uleb128 0x34
- 38292 7d4f FB0B0000 		.long	0xbfb
- 38293 7d53 04       		.byte	0x4
- 38294 7d54 76       		.byte	0x76
- 38295 7d55 90BC7F   		.sleb128 -8688
- 38296 7d58 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1017
-
-
- 38297 7d59 070C0000 		.long	0xc07
- 38298 7d5d 04       		.byte	0x4
- 38299 7d5e 76       		.byte	0x76
- 38300 7d5f 80BC7F   		.sleb128 -8704
- 38301 7d62 31       		.uleb128 0x31
- 38302 7d63 500C0000 		.long	0xc50
- 38303 7d67 00000000 		.quad	.LBB2010
- 38303      00000000 
- 38304 7d6f 00000000 		.quad	.LBE2010
- 38304      00000000 
- 38305 7d77 02       		.byte	0x2
- 38306 7d78 9106     		.value	0x691
- 38307 7d7a B57D0000 		.long	0x7db5
- 38308 7d7e 32       		.uleb128 0x32
- 38309 7d7f 7A0C0000 		.long	0xc7a
- 38310 7d83 03       		.byte	0x3
- 38311 7d84 91       		.byte	0x91
- 38312 7d85 C85A     		.sleb128 -4792
- 38313 7d87 32       		.uleb128 0x32
- 38314 7d88 6E0C0000 		.long	0xc6e
- 38315 7d8c 03       		.byte	0x3
- 38316 7d8d 91       		.byte	0x91
- 38317 7d8e CC5A     		.sleb128 -4788
- 38318 7d90 32       		.uleb128 0x32
- 38319 7d91 620C0000 		.long	0xc62
- 38320 7d95 03       		.byte	0x3
- 38321 7d96 91       		.byte	0x91
- 38322 7d97 D05A     		.sleb128 -4784
- 38323 7d99 33       		.uleb128 0x33
- 38324 7d9a 00000000 		.quad	.LBB2011
- 38324      00000000 
- 38325 7da2 00000000 		.quad	.LBE2011
- 38325      00000000 
- 38326 7daa 34       		.uleb128 0x34
- 38327 7dab 860C0000 		.long	0xc86
- 38328 7daf 03       		.byte	0x3
- 38329 7db0 91       		.byte	0x91
- 38330 7db1 A043     		.sleb128 -7776
- 38331 7db3 00       		.byte	0x0
- 38332 7db4 00       		.byte	0x0
- 38333 7db5 31       		.uleb128 0x31
- 38334 7db6 910C0000 		.long	0xc91
- 38335 7dba 00000000 		.quad	.LBB2012
- 38335      00000000 
- 38336 7dc2 00000000 		.quad	.LBE2012
- 38336      00000000 
- 38337 7dca 02       		.byte	0x2
- 38338 7dcb 9206     		.value	0x692
- 38339 7dcd 25800000 		.long	0x8025
- 38340 7dd1 32       		.uleb128 0x32
- 38341 7dd2 A30C0000 		.long	0xca3
- 38342 7dd6 03       		.byte	0x3
- 38343 7dd7 91       		.byte	0x91
- 38344 7dd8 E05A     		.sleb128 -4768
- 38345 7dda 35       		.uleb128 0x35
- 38346 7ddb B00C0000 		.long	0xcb0
- 38347 7ddf 00000000 		.quad	.LBB2014
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1018
-
-
- 38347      00000000 
- 38348 7de7 00000000 		.quad	.LBE2014
- 38348      00000000 
- 38349 7def 02       		.byte	0x2
- 38350 7df0 7D03     		.value	0x37d
- 38351 7df2 32       		.uleb128 0x32
- 38352 7df3 CE0C0000 		.long	0xcce
- 38353 7df7 03       		.byte	0x3
- 38354 7df8 91       		.byte	0x91
- 38355 7df9 F85A     		.sleb128 -4744
- 38356 7dfb 32       		.uleb128 0x32
- 38357 7dfc C20C0000 		.long	0xcc2
- 38358 7e00 03       		.byte	0x3
- 38359 7e01 91       		.byte	0x91
- 38360 7e02 805B     		.sleb128 -4736
- 38361 7e04 33       		.uleb128 0x33
- 38362 7e05 00000000 		.quad	.LBB2015
- 38362      00000000 
- 38363 7e0d 00000000 		.quad	.LBE2015
- 38363      00000000 
- 38364 7e15 34       		.uleb128 0x34
- 38365 7e16 DA0C0000 		.long	0xcda
- 38366 7e1a 03       		.byte	0x3
- 38367 7e1b 91       		.byte	0x91
- 38368 7e1c D05B     		.sleb128 -4656
- 38369 7e1e 34       		.uleb128 0x34
- 38370 7e1f E50C0000 		.long	0xce5
- 38371 7e23 03       		.byte	0x3
- 38372 7e24 91       		.byte	0x91
- 38373 7e25 C05B     		.sleb128 -4672
- 38374 7e27 34       		.uleb128 0x34
- 38375 7e28 F00C0000 		.long	0xcf0
- 38376 7e2c 03       		.byte	0x3
- 38377 7e2d 91       		.byte	0x91
- 38378 7e2e B05B     		.sleb128 -4688
- 38379 7e30 34       		.uleb128 0x34
- 38380 7e31 FC0C0000 		.long	0xcfc
- 38381 7e35 03       		.byte	0x3
- 38382 7e36 91       		.byte	0x91
- 38383 7e37 A05B     		.sleb128 -4704
- 38384 7e39 34       		.uleb128 0x34
- 38385 7e3a 080D0000 		.long	0xd08
- 38386 7e3e 03       		.byte	0x3
- 38387 7e3f 91       		.byte	0x91
- 38388 7e40 9C5B     		.sleb128 -4708
- 38389 7e42 31       		.uleb128 0x31
- 38390 7e43 1F0D0000 		.long	0xd1f
- 38391 7e47 00000000 		.quad	.LBB2016
- 38391      00000000 
- 38392 7e4f 00000000 		.quad	.LBE2016
- 38392      00000000 
- 38393 7e57 02       		.byte	0x2
- 38394 7e58 5603     		.value	0x356
- 38395 7e5a 717E0000 		.long	0x7e71
- 38396 7e5e 32       		.uleb128 0x32
- 38397 7e5f 3A0D0000 		.long	0xd3a
- 38398 7e63 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1019
-
-
- 38399 7e64 91       		.byte	0x91
- 38400 7e65 E05B     		.sleb128 -4640
- 38401 7e67 32       		.uleb128 0x32
- 38402 7e68 300D0000 		.long	0xd30
- 38403 7e6c 03       		.byte	0x3
- 38404 7e6d 91       		.byte	0x91
- 38405 7e6e F05B     		.sleb128 -4624
- 38406 7e70 00       		.byte	0x0
- 38407 7e71 31       		.uleb128 0x31
- 38408 7e72 450D0000 		.long	0xd45
- 38409 7e76 00000000 		.quad	.LBB2018
- 38409      00000000 
- 38410 7e7e 00000000 		.quad	.LBE2018
- 38410      00000000 
- 38411 7e86 02       		.byte	0x2
- 38412 7e87 5E03     		.value	0x35e
- 38413 7e89 A07E0000 		.long	0x7ea0
- 38414 7e8d 32       		.uleb128 0x32
- 38415 7e8e 620D0000 		.long	0xd62
- 38416 7e92 03       		.byte	0x3
- 38417 7e93 91       		.byte	0x91
- 38418 7e94 805C     		.sleb128 -4608
- 38419 7e96 32       		.uleb128 0x32
- 38420 7e97 570D0000 		.long	0xd57
- 38421 7e9b 03       		.byte	0x3
- 38422 7e9c 91       		.byte	0x91
- 38423 7e9d 905C     		.sleb128 -4592
- 38424 7e9f 00       		.byte	0x0
- 38425 7ea0 31       		.uleb128 0x31
- 38426 7ea1 6E0D0000 		.long	0xd6e
- 38427 7ea5 00000000 		.quad	.LBB2020
- 38427      00000000 
- 38428 7ead 00000000 		.quad	.LBE2020
- 38428      00000000 
- 38429 7eb5 02       		.byte	0x2
- 38430 7eb6 6403     		.value	0x364
- 38431 7eb8 057F0000 		.long	0x7f05
- 38432 7ebc 32       		.uleb128 0x32
- 38433 7ebd 8C0D0000 		.long	0xd8c
- 38434 7ec1 03       		.byte	0x3
- 38435 7ec2 91       		.byte	0x91
- 38436 7ec3 A05C     		.sleb128 -4576
- 38437 7ec5 32       		.uleb128 0x32
- 38438 7ec6 800D0000 		.long	0xd80
- 38439 7eca 03       		.byte	0x3
- 38440 7ecb 91       		.byte	0x91
- 38441 7ecc B05C     		.sleb128 -4560
- 38442 7ece 33       		.uleb128 0x33
- 38443 7ecf 00000000 		.quad	.LBB2021
- 38443      00000000 
- 38444 7ed7 00000000 		.quad	.LBE2021
- 38444      00000000 
- 38445 7edf 34       		.uleb128 0x34
- 38446 7ee0 980D0000 		.long	0xd98
- 38447 7ee4 03       		.byte	0x3
- 38448 7ee5 91       		.byte	0x91
- 38449 7ee6 D043     		.sleb128 -7728
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1020
-
-
- 38450 7ee8 34       		.uleb128 0x34
- 38451 7ee9 A40D0000 		.long	0xda4
- 38452 7eed 03       		.byte	0x3
- 38453 7eee 91       		.byte	0x91
- 38454 7eef C043     		.sleb128 -7744
- 38455 7ef1 34       		.uleb128 0x34
- 38456 7ef2 AF0D0000 		.long	0xdaf
- 38457 7ef6 03       		.byte	0x3
- 38458 7ef7 91       		.byte	0x91
- 38459 7ef8 B043     		.sleb128 -7760
- 38460 7efa 34       		.uleb128 0x34
- 38461 7efb BB0D0000 		.long	0xdbb
- 38462 7eff 03       		.byte	0x3
- 38463 7f00 91       		.byte	0x91
- 38464 7f01 CC5C     		.sleb128 -4532
- 38465 7f03 00       		.byte	0x0
- 38466 7f04 00       		.byte	0x0
- 38467 7f05 31       		.uleb128 0x31
- 38468 7f06 C70D0000 		.long	0xdc7
- 38469 7f0a 00000000 		.quad	.LBB2022
- 38469      00000000 
- 38470 7f12 00000000 		.quad	.LBE2022
- 38470      00000000 
- 38471 7f1a 02       		.byte	0x2
- 38472 7f1b 6603     		.value	0x366
- 38473 7f1d 347F0000 		.long	0x7f34
- 38474 7f21 32       		.uleb128 0x32
- 38475 7f22 E20D0000 		.long	0xde2
- 38476 7f26 03       		.byte	0x3
- 38477 7f27 91       		.byte	0x91
- 38478 7f28 D05C     		.sleb128 -4528
- 38479 7f2a 32       		.uleb128 0x32
- 38480 7f2b D80D0000 		.long	0xdd8
- 38481 7f2f 03       		.byte	0x3
- 38482 7f30 91       		.byte	0x91
- 38483 7f31 E05C     		.sleb128 -4512
- 38484 7f33 00       		.byte	0x0
- 38485 7f34 31       		.uleb128 0x31
- 38486 7f35 6E0D0000 		.long	0xd6e
- 38487 7f39 00000000 		.quad	.LBB2024
- 38487      00000000 
- 38488 7f41 00000000 		.quad	.LBE2024
- 38488      00000000 
- 38489 7f49 02       		.byte	0x2
- 38490 7f4a 6803     		.value	0x368
- 38491 7f4c 997F0000 		.long	0x7f99
- 38492 7f50 32       		.uleb128 0x32
- 38493 7f51 8C0D0000 		.long	0xd8c
- 38494 7f55 03       		.byte	0x3
- 38495 7f56 91       		.byte	0x91
- 38496 7f57 F05C     		.sleb128 -4496
- 38497 7f59 32       		.uleb128 0x32
- 38498 7f5a 800D0000 		.long	0xd80
- 38499 7f5e 03       		.byte	0x3
- 38500 7f5f 91       		.byte	0x91
- 38501 7f60 805D     		.sleb128 -4480
- 38502 7f62 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1021
-
-
- 38503 7f63 00000000 		.quad	.LBB2025
- 38503      00000000 
- 38504 7f6b 00000000 		.quad	.LBE2025
- 38504      00000000 
- 38505 7f73 34       		.uleb128 0x34
- 38506 7f74 980D0000 		.long	0xd98
- 38507 7f78 03       		.byte	0x3
- 38508 7f79 91       		.byte	0x91
- 38509 7f7a 8044     		.sleb128 -7680
- 38510 7f7c 34       		.uleb128 0x34
- 38511 7f7d A40D0000 		.long	0xda4
- 38512 7f81 03       		.byte	0x3
- 38513 7f82 91       		.byte	0x91
- 38514 7f83 F043     		.sleb128 -7696
- 38515 7f85 34       		.uleb128 0x34
- 38516 7f86 AF0D0000 		.long	0xdaf
- 38517 7f8a 03       		.byte	0x3
- 38518 7f8b 91       		.byte	0x91
- 38519 7f8c E043     		.sleb128 -7712
- 38520 7f8e 34       		.uleb128 0x34
- 38521 7f8f BB0D0000 		.long	0xdbb
- 38522 7f93 03       		.byte	0x3
- 38523 7f94 91       		.byte	0x91
- 38524 7f95 9C5D     		.sleb128 -4452
- 38525 7f97 00       		.byte	0x0
- 38526 7f98 00       		.byte	0x0
- 38527 7f99 31       		.uleb128 0x31
- 38528 7f9a C70D0000 		.long	0xdc7
- 38529 7f9e 00000000 		.quad	.LBB2026
- 38529      00000000 
- 38530 7fa6 00000000 		.quad	.LBE2026
- 38530      00000000 
- 38531 7fae 02       		.byte	0x2
- 38532 7faf 6A03     		.value	0x36a
- 38533 7fb1 C87F0000 		.long	0x7fc8
- 38534 7fb5 32       		.uleb128 0x32
- 38535 7fb6 E20D0000 		.long	0xde2
- 38536 7fba 03       		.byte	0x3
- 38537 7fbb 91       		.byte	0x91
- 38538 7fbc A05D     		.sleb128 -4448
- 38539 7fbe 32       		.uleb128 0x32
- 38540 7fbf D80D0000 		.long	0xdd8
- 38541 7fc3 03       		.byte	0x3
- 38542 7fc4 91       		.byte	0x91
- 38543 7fc5 B05D     		.sleb128 -4432
- 38544 7fc7 00       		.byte	0x0
- 38545 7fc8 31       		.uleb128 0x31
- 38546 7fc9 ED0D0000 		.long	0xded
- 38547 7fcd 00000000 		.quad	.LBB2028
- 38547      00000000 
- 38548 7fd5 00000000 		.quad	.LBE2028
- 38548      00000000 
- 38549 7fdd 02       		.byte	0x2
- 38550 7fde 6C03     		.value	0x36c
- 38551 7fe0 F77F0000 		.long	0x7ff7
- 38552 7fe4 32       		.uleb128 0x32
- 38553 7fe5 0A0E0000 		.long	0xe0a
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1022
-
-
- 38554 7fe9 03       		.byte	0x3
- 38555 7fea 91       		.byte	0x91
- 38556 7feb C05D     		.sleb128 -4416
- 38557 7fed 32       		.uleb128 0x32
- 38558 7fee FF0D0000 		.long	0xdff
- 38559 7ff2 03       		.byte	0x3
- 38560 7ff3 91       		.byte	0x91
- 38561 7ff4 D05D     		.sleb128 -4400
- 38562 7ff6 00       		.byte	0x0
- 38563 7ff7 35       		.uleb128 0x35
- 38564 7ff8 1F0D0000 		.long	0xd1f
- 38565 7ffc 00000000 		.quad	.LBB2030
- 38565      00000000 
- 38566 8004 00000000 		.quad	.LBE2030
- 38566      00000000 
- 38567 800c 02       		.byte	0x2
- 38568 800d 6E03     		.value	0x36e
- 38569 800f 32       		.uleb128 0x32
- 38570 8010 3A0D0000 		.long	0xd3a
- 38571 8014 03       		.byte	0x3
- 38572 8015 91       		.byte	0x91
- 38573 8016 E05D     		.sleb128 -4384
- 38574 8018 32       		.uleb128 0x32
- 38575 8019 300D0000 		.long	0xd30
- 38576 801d 03       		.byte	0x3
- 38577 801e 91       		.byte	0x91
- 38578 801f F05D     		.sleb128 -4368
- 38579 8021 00       		.byte	0x0
- 38580 8022 00       		.byte	0x0
- 38581 8023 00       		.byte	0x0
- 38582 8024 00       		.byte	0x0
- 38583 8025 36       		.uleb128 0x36
- 38584 8026 00000000 		.quad	.LBB2032
- 38584      00000000 
- 38585 802e 00000000 		.quad	.LBE2032
- 38585      00000000 
- 38586 8036 44800000 		.long	0x8044
- 38587 803a 34       		.uleb128 0x34
- 38588 803b 180C0000 		.long	0xc18
- 38589 803f 03       		.byte	0x3
- 38590 8040 91       		.byte	0x91
- 38591 8041 9043     		.sleb128 -7792
- 38592 8043 00       		.byte	0x0
- 38593 8044 31       		.uleb128 0x31
- 38594 8045 160E0000 		.long	0xe16
- 38595 8049 00000000 		.quad	.LBB2033
- 38595      00000000 
- 38596 8051 00000000 		.quad	.LBE2033
- 38596      00000000 
- 38597 8059 02       		.byte	0x2
- 38598 805a 9406     		.value	0x694
- 38599 805c EC800000 		.long	0x80ec
- 38600 8060 32       		.uleb128 0x32
- 38601 8061 280E0000 		.long	0xe28
- 38602 8065 03       		.byte	0x3
- 38603 8066 91       		.byte	0x91
- 38604 8067 805E     		.sleb128 -4352
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1023
-
-
- 38605 8069 33       		.uleb128 0x33
- 38606 806a 00000000 		.quad	.LBB2034
- 38606      00000000 
- 38607 8072 00000000 		.quad	.LBE2034
- 38607      00000000 
- 38608 807a 34       		.uleb128 0x34
- 38609 807b 340E0000 		.long	0xe34
- 38610 807f 09       		.byte	0x9
- 38611 8080 03       		.byte	0x3
- 38612 8081 00000000 		.quad	ShiftRowTable.6768
- 38612      00000000 
- 38613 8089 35       		.uleb128 0x35
- 38614 808a 6E0D0000 		.long	0xd6e
- 38615 808e 00000000 		.quad	.LBB2035
- 38615      00000000 
- 38616 8096 00000000 		.quad	.LBE2035
- 38616      00000000 
- 38617 809e 02       		.byte	0x2
- 38618 809f 9B02     		.value	0x29b
- 38619 80a1 32       		.uleb128 0x32
- 38620 80a2 8C0D0000 		.long	0xd8c
- 38621 80a6 03       		.byte	0x3
- 38622 80a7 91       		.byte	0x91
- 38623 80a8 905E     		.sleb128 -4336
- 38624 80aa 32       		.uleb128 0x32
- 38625 80ab 800D0000 		.long	0xd80
- 38626 80af 03       		.byte	0x3
- 38627 80b0 91       		.byte	0x91
- 38628 80b1 A05E     		.sleb128 -4320
- 38629 80b3 33       		.uleb128 0x33
- 38630 80b4 00000000 		.quad	.LBB2036
- 38630      00000000 
- 38631 80bc 00000000 		.quad	.LBE2036
- 38631      00000000 
- 38632 80c4 34       		.uleb128 0x34
- 38633 80c5 980D0000 		.long	0xd98
- 38634 80c9 03       		.byte	0x3
- 38635 80ca 91       		.byte	0x91
- 38636 80cb B044     		.sleb128 -7632
- 38637 80cd 34       		.uleb128 0x34
- 38638 80ce A40D0000 		.long	0xda4
- 38639 80d2 03       		.byte	0x3
- 38640 80d3 91       		.byte	0x91
- 38641 80d4 A044     		.sleb128 -7648
- 38642 80d6 34       		.uleb128 0x34
- 38643 80d7 AF0D0000 		.long	0xdaf
- 38644 80db 03       		.byte	0x3
- 38645 80dc 91       		.byte	0x91
- 38646 80dd 9044     		.sleb128 -7664
- 38647 80df 34       		.uleb128 0x34
- 38648 80e0 BB0D0000 		.long	0xdbb
- 38649 80e4 03       		.byte	0x3
- 38650 80e5 91       		.byte	0x91
- 38651 80e6 BC5E     		.sleb128 -4292
- 38652 80e8 00       		.byte	0x0
- 38653 80e9 00       		.byte	0x0
- 38654 80ea 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1024
-
-
- 38655 80eb 00       		.byte	0x0
- 38656 80ec 36       		.uleb128 0x36
- 38657 80ed 00000000 		.quad	.LBB2037
- 38657      00000000 
- 38658 80f5 00000000 		.quad	.LBE2037
- 38658      00000000 
- 38659 80fd 0B810000 		.long	0x810b
- 38660 8101 34       		.uleb128 0x34
- 38661 8102 280C0000 		.long	0xc28
- 38662 8106 03       		.byte	0x3
- 38663 8107 91       		.byte	0x91
- 38664 8108 8043     		.sleb128 -7808
- 38665 810a 00       		.byte	0x0
- 38666 810b 31       		.uleb128 0x31
- 38667 810c 520E0000 		.long	0xe52
- 38668 8110 00000000 		.quad	.LBB2038
- 38668      00000000 
- 38669 8118 00000000 		.quad	.LBE2038
- 38669      00000000 
- 38670 8120 02       		.byte	0x2
- 38671 8121 9606     		.value	0x696
- 38672 8123 3A810000 		.long	0x813a
- 38673 8127 32       		.uleb128 0x32
- 38674 8128 6D0E0000 		.long	0xe6d
- 38675 812c 03       		.byte	0x3
- 38676 812d 91       		.byte	0x91
- 38677 812e C05E     		.sleb128 -4288
- 38678 8130 32       		.uleb128 0x32
- 38679 8131 630E0000 		.long	0xe63
- 38680 8135 03       		.byte	0x3
- 38681 8136 91       		.byte	0x91
- 38682 8137 D05E     		.sleb128 -4272
- 38683 8139 00       		.byte	0x0
- 38684 813a 36       		.uleb128 0x36
- 38685 813b 00000000 		.quad	.LBB2040
- 38685      00000000 
- 38686 8143 00000000 		.quad	.LBE2040
- 38686      00000000 
- 38687 814b 59810000 		.long	0x8159
- 38688 814f 34       		.uleb128 0x34
- 38689 8150 380C0000 		.long	0xc38
- 38690 8154 03       		.byte	0x3
- 38691 8155 91       		.byte	0x91
- 38692 8156 F042     		.sleb128 -7824
- 38693 8158 00       		.byte	0x0
- 38694 8159 31       		.uleb128 0x31
- 38695 815a 780E0000 		.long	0xe78
- 38696 815e 00000000 		.quad	.LBB2041
- 38696      00000000 
- 38697 8166 00000000 		.quad	.LBE2041
- 38697      00000000 
- 38698 816e 02       		.byte	0x2
- 38699 816f 9806     		.value	0x698
- 38700 8171 9A810000 		.long	0x819a
- 38701 8175 32       		.uleb128 0x32
- 38702 8176 8A0E0000 		.long	0xe8a
- 38703 817a 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1025
-
-
- 38704 817b 91       		.byte	0x91
- 38705 817c E05E     		.sleb128 -4256
- 38706 817e 33       		.uleb128 0x33
- 38707 817f 00000000 		.quad	.LBB2042
- 38707      00000000 
- 38708 8187 00000000 		.quad	.LBE2042
- 38708      00000000 
- 38709 818f 34       		.uleb128 0x34
- 38710 8190 960E0000 		.long	0xe96
- 38711 8194 03       		.byte	0x3
- 38712 8195 91       		.byte	0x91
- 38713 8196 C044     		.sleb128 -7616
- 38714 8198 00       		.byte	0x0
- 38715 8199 00       		.byte	0x0
- 38716 819a 33       		.uleb128 0x33
- 38717 819b 00000000 		.quad	.LBB2043
- 38717      00000000 
- 38718 81a3 00000000 		.quad	.LBE2043
- 38718      00000000 
- 38719 81ab 34       		.uleb128 0x34
- 38720 81ac 440C0000 		.long	0xc44
- 38721 81b0 03       		.byte	0x3
- 38722 81b1 91       		.byte	0x91
- 38723 81b2 E042     		.sleb128 -7840
- 38724 81b4 00       		.byte	0x0
- 38725 81b5 00       		.byte	0x0
- 38726 81b6 00       		.byte	0x0
- 38727 81b7 31       		.uleb128 0x31
- 38728 81b8 A30E0000 		.long	0xea3
- 38729 81bc 00000000 		.quad	.LBB2044
- 38729      00000000 
- 38730 81c4 00000000 		.quad	.LBE2044
- 38730      00000000 
- 38731 81cc 02       		.byte	0x2
- 38732 81cd 8807     		.value	0x788
- 38733 81cf B8820000 		.long	0x82b8
- 38734 81d3 32       		.uleb128 0x32
- 38735 81d4 B50E0000 		.long	0xeb5
- 38736 81d8 03       		.byte	0x3
- 38737 81d9 91       		.byte	0x91
- 38738 81da F05E     		.sleb128 -4240
- 38739 81dc 33       		.uleb128 0x33
- 38740 81dd 00000000 		.quad	.LBB2045
- 38740      00000000 
- 38741 81e5 00000000 		.quad	.LBE2045
- 38741      00000000 
- 38742 81ed 34       		.uleb128 0x34
- 38743 81ee C10E0000 		.long	0xec1
- 38744 81f2 04       		.byte	0x4
- 38745 81f3 76       		.byte	0x76
- 38746 81f4 B0BC7F   		.sleb128 -8656
- 38747 81f7 31       		.uleb128 0x31
- 38748 81f8 CE0E0000 		.long	0xece
- 38749 81fc 00000000 		.quad	.LBB2046
- 38749      00000000 
- 38750 8204 00000000 		.quad	.LBE2046
- 38750      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1026
-
-
- 38751 820c 02       		.byte	0x2
- 38752 820d 1F06     		.value	0x61f
- 38753 820f 38820000 		.long	0x8238
- 38754 8213 32       		.uleb128 0x32
- 38755 8214 E00E0000 		.long	0xee0
- 38756 8218 03       		.byte	0x3
- 38757 8219 91       		.byte	0x91
- 38758 821a 805F     		.sleb128 -4224
- 38759 821c 33       		.uleb128 0x33
- 38760 821d 00000000 		.quad	.LBB2047
- 38760      00000000 
- 38761 8225 00000000 		.quad	.LBE2047
- 38761      00000000 
- 38762 822d 34       		.uleb128 0x34
- 38763 822e EC0E0000 		.long	0xeec
- 38764 8232 03       		.byte	0x3
- 38765 8233 91       		.byte	0x91
- 38766 8234 D044     		.sleb128 -7600
- 38767 8236 00       		.byte	0x0
- 38768 8237 00       		.byte	0x0
- 38769 8238 31       		.uleb128 0x31
- 38770 8239 CE0E0000 		.long	0xece
- 38771 823d 00000000 		.quad	.LBB2048
- 38771      00000000 
- 38772 8245 00000000 		.quad	.LBE2048
- 38772      00000000 
- 38773 824d 02       		.byte	0x2
- 38774 824e 2006     		.value	0x620
- 38775 8250 79820000 		.long	0x8279
- 38776 8254 32       		.uleb128 0x32
- 38777 8255 E00E0000 		.long	0xee0
- 38778 8259 03       		.byte	0x3
- 38779 825a 91       		.byte	0x91
- 38780 825b 905F     		.sleb128 -4208
- 38781 825d 33       		.uleb128 0x33
- 38782 825e 00000000 		.quad	.LBB2049
- 38782      00000000 
- 38783 8266 00000000 		.quad	.LBE2049
- 38783      00000000 
- 38784 826e 34       		.uleb128 0x34
- 38785 826f EC0E0000 		.long	0xeec
- 38786 8273 03       		.byte	0x3
- 38787 8274 91       		.byte	0x91
- 38788 8275 E044     		.sleb128 -7584
- 38789 8277 00       		.byte	0x0
- 38790 8278 00       		.byte	0x0
- 38791 8279 35       		.uleb128 0x35
- 38792 827a CE0E0000 		.long	0xece
- 38793 827e 00000000 		.quad	.LBB2050
- 38793      00000000 
- 38794 8286 00000000 		.quad	.LBE2050
- 38794      00000000 
- 38795 828e 02       		.byte	0x2
- 38796 828f 2106     		.value	0x621
- 38797 8291 32       		.uleb128 0x32
- 38798 8292 E00E0000 		.long	0xee0
- 38799 8296 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1027
-
-
- 38800 8297 91       		.byte	0x91
- 38801 8298 A05F     		.sleb128 -4192
- 38802 829a 33       		.uleb128 0x33
- 38803 829b 00000000 		.quad	.LBB2051
- 38803      00000000 
- 38804 82a3 00000000 		.quad	.LBE2051
- 38804      00000000 
- 38805 82ab 34       		.uleb128 0x34
- 38806 82ac EC0E0000 		.long	0xeec
- 38807 82b0 03       		.byte	0x3
- 38808 82b1 91       		.byte	0x91
- 38809 82b2 F044     		.sleb128 -7568
- 38810 82b4 00       		.byte	0x0
- 38811 82b5 00       		.byte	0x0
- 38812 82b6 00       		.byte	0x0
- 38813 82b7 00       		.byte	0x0
- 38814 82b8 31       		.uleb128 0x31
- 38815 82b9 520E0000 		.long	0xe52
- 38816 82bd 00000000 		.quad	.LBB2052
- 38816      00000000 
- 38817 82c5 00000000 		.quad	.LBE2052
- 38817      00000000 
- 38818 82cd 02       		.byte	0x2
- 38819 82ce 8807     		.value	0x788
- 38820 82d0 E7820000 		.long	0x82e7
- 38821 82d4 32       		.uleb128 0x32
- 38822 82d5 6D0E0000 		.long	0xe6d
- 38823 82d9 03       		.byte	0x3
- 38824 82da 91       		.byte	0x91
- 38825 82db B05F     		.sleb128 -4176
- 38826 82dd 32       		.uleb128 0x32
- 38827 82de 630E0000 		.long	0xe63
- 38828 82e2 03       		.byte	0x3
- 38829 82e3 91       		.byte	0x91
- 38830 82e4 C05F     		.sleb128 -4160
- 38831 82e6 00       		.byte	0x0
- 38832 82e7 31       		.uleb128 0x31
- 38833 82e8 4E740000 		.long	0x744e
- 38834 82ec 00000000 		.quad	.LBB2054
- 38834      00000000 
- 38835 82f4 00000000 		.quad	.LBE2054
- 38835      00000000 
- 38836 82fc 02       		.byte	0x2
- 38837 82fd 8907     		.value	0x789
- 38838 82ff 77830000 		.long	0x8377
- 38839 8303 32       		.uleb128 0x32
- 38840 8304 60740000 		.long	0x7460
- 38841 8308 03       		.byte	0x3
- 38842 8309 91       		.byte	0x91
- 38843 830a D05F     		.sleb128 -4144
- 38844 830c 33       		.uleb128 0x33
- 38845 830d 00000000 		.quad	.LBB2055
- 38845      00000000 
- 38846 8315 00000000 		.quad	.LBE2055
- 38846      00000000 
- 38847 831d 34       		.uleb128 0x34
- 38848 831e 6C740000 		.long	0x746c
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1028
-
-
- 38849 8322 03       		.byte	0x3
- 38850 8323 91       		.byte	0x91
- 38851 8324 9045     		.sleb128 -7536
- 38852 8326 34       		.uleb128 0x34
- 38853 8327 76740000 		.long	0x7476
- 38854 832b 03       		.byte	0x3
- 38855 832c 91       		.byte	0x91
- 38856 832d E45F     		.sleb128 -4124
- 38857 832f 35       		.uleb128 0x35
- 38858 8330 12490000 		.long	0x4912
- 38859 8334 00000000 		.quad	.LBB2056
- 38859      00000000 
- 38860 833c 00000000 		.quad	.LBE2056
- 38860      00000000 
- 38861 8344 02       		.byte	0x2
- 38862 8345 7906     		.value	0x679
- 38863 8347 32       		.uleb128 0x32
- 38864 8348 24490000 		.long	0x4924
- 38865 834c 03       		.byte	0x3
- 38866 834d 91       		.byte	0x91
- 38867 834e E85F     		.sleb128 -4120
- 38868 8350 33       		.uleb128 0x33
- 38869 8351 00000000 		.quad	.LBB2057
- 38869      00000000 
- 38870 8359 00000000 		.quad	.LBE2057
- 38870      00000000 
- 38871 8361 34       		.uleb128 0x34
- 38872 8362 2E490000 		.long	0x492e
- 38873 8366 03       		.byte	0x3
- 38874 8367 91       		.byte	0x91
- 38875 8368 8045     		.sleb128 -7552
- 38876 836a 34       		.uleb128 0x34
- 38877 836b 3A490000 		.long	0x493a
- 38878 836f 03       		.byte	0x3
- 38879 8370 91       		.byte	0x91
- 38880 8371 EC5F     		.sleb128 -4116
- 38881 8373 00       		.byte	0x0
- 38882 8374 00       		.byte	0x0
- 38883 8375 00       		.byte	0x0
- 38884 8376 00       		.byte	0x0
- 38885 8377 31       		.uleb128 0x31
- 38886 8378 A30E0000 		.long	0xea3
- 38887 837c 00000000 		.quad	.LBB2058
- 38887      00000000 
- 38888 8384 00000000 		.quad	.LBE2058
- 38888      00000000 
- 38889 838c 02       		.byte	0x2
- 38890 838d 8907     		.value	0x789
- 38891 838f 78840000 		.long	0x8478
- 38892 8393 32       		.uleb128 0x32
- 38893 8394 B50E0000 		.long	0xeb5
- 38894 8398 03       		.byte	0x3
- 38895 8399 91       		.byte	0x91
- 38896 839a F05F     		.sleb128 -4112
- 38897 839c 33       		.uleb128 0x33
- 38898 839d 00000000 		.quad	.LBB2059
- 38898      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1029
-
-
- 38899 83a5 00000000 		.quad	.LBE2059
- 38899      00000000 
- 38900 83ad 34       		.uleb128 0x34
- 38901 83ae C10E0000 		.long	0xec1
- 38902 83b2 04       		.byte	0x4
- 38903 83b3 76       		.byte	0x76
- 38904 83b4 C0BC7F   		.sleb128 -8640
- 38905 83b7 31       		.uleb128 0x31
- 38906 83b8 CE0E0000 		.long	0xece
- 38907 83bc 00000000 		.quad	.LBB2060
- 38907      00000000 
- 38908 83c4 00000000 		.quad	.LBE2060
- 38908      00000000 
- 38909 83cc 02       		.byte	0x2
- 38910 83cd 1F06     		.value	0x61f
- 38911 83cf F8830000 		.long	0x83f8
- 38912 83d3 32       		.uleb128 0x32
- 38913 83d4 E00E0000 		.long	0xee0
- 38914 83d8 03       		.byte	0x3
- 38915 83d9 91       		.byte	0x91
- 38916 83da 8060     		.sleb128 -4096
- 38917 83dc 33       		.uleb128 0x33
- 38918 83dd 00000000 		.quad	.LBB2061
- 38918      00000000 
- 38919 83e5 00000000 		.quad	.LBE2061
- 38919      00000000 
- 38920 83ed 34       		.uleb128 0x34
- 38921 83ee EC0E0000 		.long	0xeec
- 38922 83f2 03       		.byte	0x3
- 38923 83f3 91       		.byte	0x91
- 38924 83f4 A045     		.sleb128 -7520
- 38925 83f6 00       		.byte	0x0
- 38926 83f7 00       		.byte	0x0
- 38927 83f8 31       		.uleb128 0x31
- 38928 83f9 CE0E0000 		.long	0xece
- 38929 83fd 00000000 		.quad	.LBB2062
- 38929      00000000 
- 38930 8405 00000000 		.quad	.LBE2062
- 38930      00000000 
- 38931 840d 02       		.byte	0x2
- 38932 840e 2006     		.value	0x620
- 38933 8410 39840000 		.long	0x8439
- 38934 8414 32       		.uleb128 0x32
- 38935 8415 E00E0000 		.long	0xee0
- 38936 8419 03       		.byte	0x3
- 38937 841a 91       		.byte	0x91
- 38938 841b 9060     		.sleb128 -4080
- 38939 841d 33       		.uleb128 0x33
- 38940 841e 00000000 		.quad	.LBB2063
- 38940      00000000 
- 38941 8426 00000000 		.quad	.LBE2063
- 38941      00000000 
- 38942 842e 34       		.uleb128 0x34
- 38943 842f EC0E0000 		.long	0xeec
- 38944 8433 03       		.byte	0x3
- 38945 8434 91       		.byte	0x91
- 38946 8435 B045     		.sleb128 -7504
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1030
-
-
- 38947 8437 00       		.byte	0x0
- 38948 8438 00       		.byte	0x0
- 38949 8439 35       		.uleb128 0x35
- 38950 843a CE0E0000 		.long	0xece
- 38951 843e 00000000 		.quad	.LBB2064
- 38951      00000000 
- 38952 8446 00000000 		.quad	.LBE2064
- 38952      00000000 
- 38953 844e 02       		.byte	0x2
- 38954 844f 2106     		.value	0x621
- 38955 8451 32       		.uleb128 0x32
- 38956 8452 E00E0000 		.long	0xee0
- 38957 8456 03       		.byte	0x3
- 38958 8457 91       		.byte	0x91
- 38959 8458 A060     		.sleb128 -4064
- 38960 845a 33       		.uleb128 0x33
- 38961 845b 00000000 		.quad	.LBB2065
- 38961      00000000 
- 38962 8463 00000000 		.quad	.LBE2065
- 38962      00000000 
- 38963 846b 34       		.uleb128 0x34
- 38964 846c EC0E0000 		.long	0xeec
- 38965 8470 03       		.byte	0x3
- 38966 8471 91       		.byte	0x91
- 38967 8472 C045     		.sleb128 -7488
- 38968 8474 00       		.byte	0x0
- 38969 8475 00       		.byte	0x0
- 38970 8476 00       		.byte	0x0
- 38971 8477 00       		.byte	0x0
- 38972 8478 31       		.uleb128 0x31
- 38973 8479 520E0000 		.long	0xe52
- 38974 847d 00000000 		.quad	.LBB2066
- 38974      00000000 
- 38975 8485 00000000 		.quad	.LBE2066
- 38975      00000000 
- 38976 848d 02       		.byte	0x2
- 38977 848e 8907     		.value	0x789
- 38978 8490 A7840000 		.long	0x84a7
- 38979 8494 32       		.uleb128 0x32
- 38980 8495 6D0E0000 		.long	0xe6d
- 38981 8499 03       		.byte	0x3
- 38982 849a 91       		.byte	0x91
- 38983 849b B060     		.sleb128 -4048
- 38984 849d 32       		.uleb128 0x32
- 38985 849e 630E0000 		.long	0xe63
- 38986 84a2 03       		.byte	0x3
- 38987 84a3 91       		.byte	0x91
- 38988 84a4 C060     		.sleb128 -4032
- 38989 84a6 00       		.byte	0x0
- 38990 84a7 31       		.uleb128 0x31
- 38991 84a8 D10B0000 		.long	0xbd1
- 38992 84ac 00000000 		.quad	.LBB2068
- 38992      00000000 
- 38993 84b4 00000000 		.quad	.LBE2068
- 38993      00000000 
- 38994 84bc 02       		.byte	0x2
- 38995 84bd 8A07     		.value	0x78a
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1031
-
-
- 38996 84bf 4F890000 		.long	0x894f
- 38997 84c3 32       		.uleb128 0x32
- 38998 84c4 EF0B0000 		.long	0xbef
- 38999 84c8 03       		.byte	0x3
- 39000 84c9 91       		.byte	0x91
- 39001 84ca DC60     		.sleb128 -4004
- 39002 84cc 32       		.uleb128 0x32
- 39003 84cd E30B0000 		.long	0xbe3
- 39004 84d1 03       		.byte	0x3
- 39005 84d2 91       		.byte	0x91
- 39006 84d3 E060     		.sleb128 -4000
- 39007 84d5 33       		.uleb128 0x33
- 39008 84d6 00000000 		.quad	.LBB2069
- 39008      00000000 
- 39009 84de 00000000 		.quad	.LBE2069
- 39009      00000000 
- 39010 84e6 34       		.uleb128 0x34
- 39011 84e7 FB0B0000 		.long	0xbfb
- 39012 84eb 04       		.byte	0x4
- 39013 84ec 76       		.byte	0x76
- 39014 84ed E0BC7F   		.sleb128 -8608
- 39015 84f0 34       		.uleb128 0x34
- 39016 84f1 070C0000 		.long	0xc07
- 39017 84f5 04       		.byte	0x4
- 39018 84f6 76       		.byte	0x76
- 39019 84f7 D0BC7F   		.sleb128 -8624
- 39020 84fa 31       		.uleb128 0x31
- 39021 84fb 500C0000 		.long	0xc50
- 39022 84ff 00000000 		.quad	.LBB2070
- 39022      00000000 
- 39023 8507 00000000 		.quad	.LBE2070
- 39023      00000000 
- 39024 850f 02       		.byte	0x2
- 39025 8510 9106     		.value	0x691
- 39026 8512 4D850000 		.long	0x854d
- 39027 8516 32       		.uleb128 0x32
- 39028 8517 7A0C0000 		.long	0xc7a
- 39029 851b 03       		.byte	0x3
- 39030 851c 91       		.byte	0x91
- 39031 851d F860     		.sleb128 -3976
- 39032 851f 32       		.uleb128 0x32
- 39033 8520 6E0C0000 		.long	0xc6e
- 39034 8524 03       		.byte	0x3
- 39035 8525 91       		.byte	0x91
- 39036 8526 FC60     		.sleb128 -3972
- 39037 8528 32       		.uleb128 0x32
- 39038 8529 620C0000 		.long	0xc62
- 39039 852d 03       		.byte	0x3
- 39040 852e 91       		.byte	0x91
- 39041 852f 8061     		.sleb128 -3968
- 39042 8531 33       		.uleb128 0x33
- 39043 8532 00000000 		.quad	.LBB2071
- 39043      00000000 
- 39044 853a 00000000 		.quad	.LBE2071
- 39044      00000000 
- 39045 8542 34       		.uleb128 0x34
- 39046 8543 860C0000 		.long	0xc86
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1032
-
-
- 39047 8547 03       		.byte	0x3
- 39048 8548 91       		.byte	0x91
- 39049 8549 9046     		.sleb128 -7408
- 39050 854b 00       		.byte	0x0
- 39051 854c 00       		.byte	0x0
- 39052 854d 31       		.uleb128 0x31
- 39053 854e 910C0000 		.long	0xc91
- 39054 8552 00000000 		.quad	.LBB2072
- 39054      00000000 
- 39055 855a 00000000 		.quad	.LBE2072
- 39055      00000000 
- 39056 8562 02       		.byte	0x2
- 39057 8563 9206     		.value	0x692
- 39058 8565 BD870000 		.long	0x87bd
- 39059 8569 32       		.uleb128 0x32
- 39060 856a A30C0000 		.long	0xca3
- 39061 856e 03       		.byte	0x3
- 39062 856f 91       		.byte	0x91
- 39063 8570 9061     		.sleb128 -3952
- 39064 8572 35       		.uleb128 0x35
- 39065 8573 B00C0000 		.long	0xcb0
- 39066 8577 00000000 		.quad	.LBB2074
- 39066      00000000 
- 39067 857f 00000000 		.quad	.LBE2074
- 39067      00000000 
- 39068 8587 02       		.byte	0x2
- 39069 8588 7D03     		.value	0x37d
- 39070 858a 32       		.uleb128 0x32
- 39071 858b CE0C0000 		.long	0xcce
- 39072 858f 03       		.byte	0x3
- 39073 8590 91       		.byte	0x91
- 39074 8591 A861     		.sleb128 -3928
- 39075 8593 32       		.uleb128 0x32
- 39076 8594 C20C0000 		.long	0xcc2
- 39077 8598 03       		.byte	0x3
- 39078 8599 91       		.byte	0x91
- 39079 859a B061     		.sleb128 -3920
- 39080 859c 33       		.uleb128 0x33
- 39081 859d 00000000 		.quad	.LBB2075
- 39081      00000000 
- 39082 85a5 00000000 		.quad	.LBE2075
- 39082      00000000 
- 39083 85ad 34       		.uleb128 0x34
- 39084 85ae DA0C0000 		.long	0xcda
- 39085 85b2 03       		.byte	0x3
- 39086 85b3 91       		.byte	0x91
- 39087 85b4 8062     		.sleb128 -3840
- 39088 85b6 34       		.uleb128 0x34
- 39089 85b7 E50C0000 		.long	0xce5
- 39090 85bb 03       		.byte	0x3
- 39091 85bc 91       		.byte	0x91
- 39092 85bd F061     		.sleb128 -3856
- 39093 85bf 34       		.uleb128 0x34
- 39094 85c0 F00C0000 		.long	0xcf0
- 39095 85c4 03       		.byte	0x3
- 39096 85c5 91       		.byte	0x91
- 39097 85c6 E061     		.sleb128 -3872
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1033
-
-
- 39098 85c8 34       		.uleb128 0x34
- 39099 85c9 FC0C0000 		.long	0xcfc
- 39100 85cd 03       		.byte	0x3
- 39101 85ce 91       		.byte	0x91
- 39102 85cf D061     		.sleb128 -3888
- 39103 85d1 34       		.uleb128 0x34
- 39104 85d2 080D0000 		.long	0xd08
- 39105 85d6 03       		.byte	0x3
- 39106 85d7 91       		.byte	0x91
- 39107 85d8 CC61     		.sleb128 -3892
- 39108 85da 31       		.uleb128 0x31
- 39109 85db 1F0D0000 		.long	0xd1f
- 39110 85df 00000000 		.quad	.LBB2076
- 39110      00000000 
- 39111 85e7 00000000 		.quad	.LBE2076
- 39111      00000000 
- 39112 85ef 02       		.byte	0x2
- 39113 85f0 5603     		.value	0x356
- 39114 85f2 09860000 		.long	0x8609
- 39115 85f6 32       		.uleb128 0x32
- 39116 85f7 3A0D0000 		.long	0xd3a
- 39117 85fb 03       		.byte	0x3
- 39118 85fc 91       		.byte	0x91
- 39119 85fd 9062     		.sleb128 -3824
- 39120 85ff 32       		.uleb128 0x32
- 39121 8600 300D0000 		.long	0xd30
- 39122 8604 03       		.byte	0x3
- 39123 8605 91       		.byte	0x91
- 39124 8606 A062     		.sleb128 -3808
- 39125 8608 00       		.byte	0x0
- 39126 8609 31       		.uleb128 0x31
- 39127 860a 450D0000 		.long	0xd45
- 39128 860e 00000000 		.quad	.LBB2078
- 39128      00000000 
- 39129 8616 00000000 		.quad	.LBE2078
- 39129      00000000 
- 39130 861e 02       		.byte	0x2
- 39131 861f 5E03     		.value	0x35e
- 39132 8621 38860000 		.long	0x8638
- 39133 8625 32       		.uleb128 0x32
- 39134 8626 620D0000 		.long	0xd62
- 39135 862a 03       		.byte	0x3
- 39136 862b 91       		.byte	0x91
- 39137 862c B062     		.sleb128 -3792
- 39138 862e 32       		.uleb128 0x32
- 39139 862f 570D0000 		.long	0xd57
- 39140 8633 03       		.byte	0x3
- 39141 8634 91       		.byte	0x91
- 39142 8635 C062     		.sleb128 -3776
- 39143 8637 00       		.byte	0x0
- 39144 8638 31       		.uleb128 0x31
- 39145 8639 6E0D0000 		.long	0xd6e
- 39146 863d 00000000 		.quad	.LBB2080
- 39146      00000000 
- 39147 8645 00000000 		.quad	.LBE2080
- 39147      00000000 
- 39148 864d 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1034
-
-
- 39149 864e 6403     		.value	0x364
- 39150 8650 9D860000 		.long	0x869d
- 39151 8654 32       		.uleb128 0x32
- 39152 8655 8C0D0000 		.long	0xd8c
- 39153 8659 03       		.byte	0x3
- 39154 865a 91       		.byte	0x91
- 39155 865b D062     		.sleb128 -3760
- 39156 865d 32       		.uleb128 0x32
- 39157 865e 800D0000 		.long	0xd80
- 39158 8662 03       		.byte	0x3
- 39159 8663 91       		.byte	0x91
- 39160 8664 E062     		.sleb128 -3744
- 39161 8666 33       		.uleb128 0x33
- 39162 8667 00000000 		.quad	.LBB2081
- 39162      00000000 
- 39163 866f 00000000 		.quad	.LBE2081
- 39163      00000000 
- 39164 8677 34       		.uleb128 0x34
- 39165 8678 980D0000 		.long	0xd98
- 39166 867c 03       		.byte	0x3
- 39167 867d 91       		.byte	0x91
- 39168 867e C046     		.sleb128 -7360
- 39169 8680 34       		.uleb128 0x34
- 39170 8681 A40D0000 		.long	0xda4
- 39171 8685 03       		.byte	0x3
- 39172 8686 91       		.byte	0x91
- 39173 8687 B046     		.sleb128 -7376
- 39174 8689 34       		.uleb128 0x34
- 39175 868a AF0D0000 		.long	0xdaf
- 39176 868e 03       		.byte	0x3
- 39177 868f 91       		.byte	0x91
- 39178 8690 A046     		.sleb128 -7392
- 39179 8692 34       		.uleb128 0x34
- 39180 8693 BB0D0000 		.long	0xdbb
- 39181 8697 03       		.byte	0x3
- 39182 8698 91       		.byte	0x91
- 39183 8699 FC62     		.sleb128 -3716
- 39184 869b 00       		.byte	0x0
- 39185 869c 00       		.byte	0x0
- 39186 869d 31       		.uleb128 0x31
- 39187 869e C70D0000 		.long	0xdc7
- 39188 86a2 00000000 		.quad	.LBB2082
- 39188      00000000 
- 39189 86aa 00000000 		.quad	.LBE2082
- 39189      00000000 
- 39190 86b2 02       		.byte	0x2
- 39191 86b3 6603     		.value	0x366
- 39192 86b5 CC860000 		.long	0x86cc
- 39193 86b9 32       		.uleb128 0x32
- 39194 86ba E20D0000 		.long	0xde2
- 39195 86be 03       		.byte	0x3
- 39196 86bf 91       		.byte	0x91
- 39197 86c0 8063     		.sleb128 -3712
- 39198 86c2 32       		.uleb128 0x32
- 39199 86c3 D80D0000 		.long	0xdd8
- 39200 86c7 03       		.byte	0x3
- 39201 86c8 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1035
-
-
- 39202 86c9 9063     		.sleb128 -3696
- 39203 86cb 00       		.byte	0x0
- 39204 86cc 31       		.uleb128 0x31
- 39205 86cd 6E0D0000 		.long	0xd6e
- 39206 86d1 00000000 		.quad	.LBB2084
- 39206      00000000 
- 39207 86d9 00000000 		.quad	.LBE2084
- 39207      00000000 
- 39208 86e1 02       		.byte	0x2
- 39209 86e2 6803     		.value	0x368
- 39210 86e4 31870000 		.long	0x8731
- 39211 86e8 32       		.uleb128 0x32
- 39212 86e9 8C0D0000 		.long	0xd8c
- 39213 86ed 03       		.byte	0x3
- 39214 86ee 91       		.byte	0x91
- 39215 86ef A063     		.sleb128 -3680
- 39216 86f1 32       		.uleb128 0x32
- 39217 86f2 800D0000 		.long	0xd80
- 39218 86f6 03       		.byte	0x3
- 39219 86f7 91       		.byte	0x91
- 39220 86f8 B063     		.sleb128 -3664
- 39221 86fa 33       		.uleb128 0x33
- 39222 86fb 00000000 		.quad	.LBB2085
- 39222      00000000 
- 39223 8703 00000000 		.quad	.LBE2085
- 39223      00000000 
- 39224 870b 34       		.uleb128 0x34
- 39225 870c 980D0000 		.long	0xd98
- 39226 8710 03       		.byte	0x3
- 39227 8711 91       		.byte	0x91
- 39228 8712 F046     		.sleb128 -7312
- 39229 8714 34       		.uleb128 0x34
- 39230 8715 A40D0000 		.long	0xda4
- 39231 8719 03       		.byte	0x3
- 39232 871a 91       		.byte	0x91
- 39233 871b E046     		.sleb128 -7328
- 39234 871d 34       		.uleb128 0x34
- 39235 871e AF0D0000 		.long	0xdaf
- 39236 8722 03       		.byte	0x3
- 39237 8723 91       		.byte	0x91
- 39238 8724 D046     		.sleb128 -7344
- 39239 8726 34       		.uleb128 0x34
- 39240 8727 BB0D0000 		.long	0xdbb
- 39241 872b 03       		.byte	0x3
- 39242 872c 91       		.byte	0x91
- 39243 872d CC63     		.sleb128 -3636
- 39244 872f 00       		.byte	0x0
- 39245 8730 00       		.byte	0x0
- 39246 8731 31       		.uleb128 0x31
- 39247 8732 C70D0000 		.long	0xdc7
- 39248 8736 00000000 		.quad	.LBB2086
- 39248      00000000 
- 39249 873e 00000000 		.quad	.LBE2086
- 39249      00000000 
- 39250 8746 02       		.byte	0x2
- 39251 8747 6A03     		.value	0x36a
- 39252 8749 60870000 		.long	0x8760
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1036
-
-
- 39253 874d 32       		.uleb128 0x32
- 39254 874e E20D0000 		.long	0xde2
- 39255 8752 03       		.byte	0x3
- 39256 8753 91       		.byte	0x91
- 39257 8754 D063     		.sleb128 -3632
- 39258 8756 32       		.uleb128 0x32
- 39259 8757 D80D0000 		.long	0xdd8
- 39260 875b 03       		.byte	0x3
- 39261 875c 91       		.byte	0x91
- 39262 875d E063     		.sleb128 -3616
- 39263 875f 00       		.byte	0x0
- 39264 8760 31       		.uleb128 0x31
- 39265 8761 ED0D0000 		.long	0xded
- 39266 8765 00000000 		.quad	.LBB2088
- 39266      00000000 
- 39267 876d 00000000 		.quad	.LBE2088
- 39267      00000000 
- 39268 8775 02       		.byte	0x2
- 39269 8776 6C03     		.value	0x36c
- 39270 8778 8F870000 		.long	0x878f
- 39271 877c 32       		.uleb128 0x32
- 39272 877d 0A0E0000 		.long	0xe0a
- 39273 8781 03       		.byte	0x3
- 39274 8782 91       		.byte	0x91
- 39275 8783 F063     		.sleb128 -3600
- 39276 8785 32       		.uleb128 0x32
- 39277 8786 FF0D0000 		.long	0xdff
- 39278 878a 03       		.byte	0x3
- 39279 878b 91       		.byte	0x91
- 39280 878c 8064     		.sleb128 -3584
- 39281 878e 00       		.byte	0x0
- 39282 878f 35       		.uleb128 0x35
- 39283 8790 1F0D0000 		.long	0xd1f
- 39284 8794 00000000 		.quad	.LBB2090
- 39284      00000000 
- 39285 879c 00000000 		.quad	.LBE2090
- 39285      00000000 
- 39286 87a4 02       		.byte	0x2
- 39287 87a5 6E03     		.value	0x36e
- 39288 87a7 32       		.uleb128 0x32
- 39289 87a8 3A0D0000 		.long	0xd3a
- 39290 87ac 03       		.byte	0x3
- 39291 87ad 91       		.byte	0x91
- 39292 87ae 9064     		.sleb128 -3568
- 39293 87b0 32       		.uleb128 0x32
- 39294 87b1 300D0000 		.long	0xd30
- 39295 87b5 03       		.byte	0x3
- 39296 87b6 91       		.byte	0x91
- 39297 87b7 A064     		.sleb128 -3552
- 39298 87b9 00       		.byte	0x0
- 39299 87ba 00       		.byte	0x0
- 39300 87bb 00       		.byte	0x0
- 39301 87bc 00       		.byte	0x0
- 39302 87bd 36       		.uleb128 0x36
- 39303 87be 00000000 		.quad	.LBB2092
- 39303      00000000 
- 39304 87c6 00000000 		.quad	.LBE2092
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1037
-
-
- 39304      00000000 
- 39305 87ce DC870000 		.long	0x87dc
- 39306 87d2 34       		.uleb128 0x34
- 39307 87d3 180C0000 		.long	0xc18
- 39308 87d7 03       		.byte	0x3
- 39309 87d8 91       		.byte	0x91
- 39310 87d9 8046     		.sleb128 -7424
- 39311 87db 00       		.byte	0x0
- 39312 87dc 31       		.uleb128 0x31
- 39313 87dd 160E0000 		.long	0xe16
- 39314 87e1 00000000 		.quad	.LBB2093
- 39314      00000000 
- 39315 87e9 00000000 		.quad	.LBE2093
- 39315      00000000 
- 39316 87f1 02       		.byte	0x2
- 39317 87f2 9406     		.value	0x694
- 39318 87f4 84880000 		.long	0x8884
- 39319 87f8 32       		.uleb128 0x32
- 39320 87f9 280E0000 		.long	0xe28
- 39321 87fd 03       		.byte	0x3
- 39322 87fe 91       		.byte	0x91
- 39323 87ff B064     		.sleb128 -3536
- 39324 8801 33       		.uleb128 0x33
- 39325 8802 00000000 		.quad	.LBB2094
- 39325      00000000 
- 39326 880a 00000000 		.quad	.LBE2094
- 39326      00000000 
- 39327 8812 34       		.uleb128 0x34
- 39328 8813 340E0000 		.long	0xe34
- 39329 8817 09       		.byte	0x9
- 39330 8818 03       		.byte	0x3
- 39331 8819 00000000 		.quad	ShiftRowTable.6768
- 39331      00000000 
- 39332 8821 35       		.uleb128 0x35
- 39333 8822 6E0D0000 		.long	0xd6e
- 39334 8826 00000000 		.quad	.LBB2095
- 39334      00000000 
- 39335 882e 00000000 		.quad	.LBE2095
- 39335      00000000 
- 39336 8836 02       		.byte	0x2
- 39337 8837 9B02     		.value	0x29b
- 39338 8839 32       		.uleb128 0x32
- 39339 883a 8C0D0000 		.long	0xd8c
- 39340 883e 03       		.byte	0x3
- 39341 883f 91       		.byte	0x91
- 39342 8840 C064     		.sleb128 -3520
- 39343 8842 32       		.uleb128 0x32
- 39344 8843 800D0000 		.long	0xd80
- 39345 8847 03       		.byte	0x3
- 39346 8848 91       		.byte	0x91
- 39347 8849 D064     		.sleb128 -3504
- 39348 884b 33       		.uleb128 0x33
- 39349 884c 00000000 		.quad	.LBB2096
- 39349      00000000 
- 39350 8854 00000000 		.quad	.LBE2096
- 39350      00000000 
- 39351 885c 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1038
-
-
- 39352 885d 980D0000 		.long	0xd98
- 39353 8861 03       		.byte	0x3
- 39354 8862 91       		.byte	0x91
- 39355 8863 A047     		.sleb128 -7264
- 39356 8865 34       		.uleb128 0x34
- 39357 8866 A40D0000 		.long	0xda4
- 39358 886a 03       		.byte	0x3
- 39359 886b 91       		.byte	0x91
- 39360 886c 9047     		.sleb128 -7280
- 39361 886e 34       		.uleb128 0x34
- 39362 886f AF0D0000 		.long	0xdaf
- 39363 8873 03       		.byte	0x3
- 39364 8874 91       		.byte	0x91
- 39365 8875 8047     		.sleb128 -7296
- 39366 8877 34       		.uleb128 0x34
- 39367 8878 BB0D0000 		.long	0xdbb
- 39368 887c 03       		.byte	0x3
- 39369 887d 91       		.byte	0x91
- 39370 887e EC64     		.sleb128 -3476
- 39371 8880 00       		.byte	0x0
- 39372 8881 00       		.byte	0x0
- 39373 8882 00       		.byte	0x0
- 39374 8883 00       		.byte	0x0
- 39375 8884 36       		.uleb128 0x36
- 39376 8885 00000000 		.quad	.LBB2097
- 39376      00000000 
- 39377 888d 00000000 		.quad	.LBE2097
- 39377      00000000 
- 39378 8895 A3880000 		.long	0x88a3
- 39379 8899 34       		.uleb128 0x34
- 39380 889a 280C0000 		.long	0xc28
- 39381 889e 03       		.byte	0x3
- 39382 889f 91       		.byte	0x91
- 39383 88a0 F045     		.sleb128 -7440
- 39384 88a2 00       		.byte	0x0
- 39385 88a3 31       		.uleb128 0x31
- 39386 88a4 520E0000 		.long	0xe52
- 39387 88a8 00000000 		.quad	.LBB2098
- 39387      00000000 
- 39388 88b0 00000000 		.quad	.LBE2098
- 39388      00000000 
- 39389 88b8 02       		.byte	0x2
- 39390 88b9 9606     		.value	0x696
- 39391 88bb D2880000 		.long	0x88d2
- 39392 88bf 32       		.uleb128 0x32
- 39393 88c0 6D0E0000 		.long	0xe6d
- 39394 88c4 03       		.byte	0x3
- 39395 88c5 91       		.byte	0x91
- 39396 88c6 F064     		.sleb128 -3472
- 39397 88c8 32       		.uleb128 0x32
- 39398 88c9 630E0000 		.long	0xe63
- 39399 88cd 03       		.byte	0x3
- 39400 88ce 91       		.byte	0x91
- 39401 88cf 8065     		.sleb128 -3456
- 39402 88d1 00       		.byte	0x0
- 39403 88d2 36       		.uleb128 0x36
- 39404 88d3 00000000 		.quad	.LBB2100
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1039
-
-
- 39404      00000000 
- 39405 88db 00000000 		.quad	.LBE2100
- 39405      00000000 
- 39406 88e3 F1880000 		.long	0x88f1
- 39407 88e7 34       		.uleb128 0x34
- 39408 88e8 380C0000 		.long	0xc38
- 39409 88ec 03       		.byte	0x3
- 39410 88ed 91       		.byte	0x91
- 39411 88ee E045     		.sleb128 -7456
- 39412 88f0 00       		.byte	0x0
- 39413 88f1 31       		.uleb128 0x31
- 39414 88f2 780E0000 		.long	0xe78
- 39415 88f6 00000000 		.quad	.LBB2101
- 39415      00000000 
- 39416 88fe 00000000 		.quad	.LBE2101
- 39416      00000000 
- 39417 8906 02       		.byte	0x2
- 39418 8907 9806     		.value	0x698
- 39419 8909 32890000 		.long	0x8932
- 39420 890d 32       		.uleb128 0x32
- 39421 890e 8A0E0000 		.long	0xe8a
- 39422 8912 03       		.byte	0x3
- 39423 8913 91       		.byte	0x91
- 39424 8914 9065     		.sleb128 -3440
- 39425 8916 33       		.uleb128 0x33
- 39426 8917 00000000 		.quad	.LBB2102
- 39426      00000000 
- 39427 891f 00000000 		.quad	.LBE2102
- 39427      00000000 
- 39428 8927 34       		.uleb128 0x34
- 39429 8928 960E0000 		.long	0xe96
- 39430 892c 03       		.byte	0x3
- 39431 892d 91       		.byte	0x91
- 39432 892e B047     		.sleb128 -7248
- 39433 8930 00       		.byte	0x0
- 39434 8931 00       		.byte	0x0
- 39435 8932 33       		.uleb128 0x33
- 39436 8933 00000000 		.quad	.LBB2103
- 39436      00000000 
- 39437 893b 00000000 		.quad	.LBE2103
- 39437      00000000 
- 39438 8943 34       		.uleb128 0x34
- 39439 8944 440C0000 		.long	0xc44
- 39440 8948 03       		.byte	0x3
- 39441 8949 91       		.byte	0x91
- 39442 894a D045     		.sleb128 -7472
- 39443 894c 00       		.byte	0x0
- 39444 894d 00       		.byte	0x0
- 39445 894e 00       		.byte	0x0
- 39446 894f 31       		.uleb128 0x31
- 39447 8950 A30E0000 		.long	0xea3
- 39448 8954 00000000 		.quad	.LBB2104
- 39448      00000000 
- 39449 895c 00000000 		.quad	.LBE2104
- 39449      00000000 
- 39450 8964 02       		.byte	0x2
- 39451 8965 8A07     		.value	0x78a
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1040
-
-
- 39452 8967 508A0000 		.long	0x8a50
- 39453 896b 32       		.uleb128 0x32
- 39454 896c B50E0000 		.long	0xeb5
- 39455 8970 03       		.byte	0x3
- 39456 8971 91       		.byte	0x91
- 39457 8972 A065     		.sleb128 -3424
- 39458 8974 33       		.uleb128 0x33
- 39459 8975 00000000 		.quad	.LBB2105
- 39459      00000000 
- 39460 897d 00000000 		.quad	.LBE2105
- 39460      00000000 
- 39461 8985 34       		.uleb128 0x34
- 39462 8986 C10E0000 		.long	0xec1
- 39463 898a 04       		.byte	0x4
- 39464 898b 76       		.byte	0x76
- 39465 898c 80BD7F   		.sleb128 -8576
- 39466 898f 31       		.uleb128 0x31
- 39467 8990 CE0E0000 		.long	0xece
- 39468 8994 00000000 		.quad	.LBB2106
- 39468      00000000 
- 39469 899c 00000000 		.quad	.LBE2106
- 39469      00000000 
- 39470 89a4 02       		.byte	0x2
- 39471 89a5 1F06     		.value	0x61f
- 39472 89a7 D0890000 		.long	0x89d0
- 39473 89ab 32       		.uleb128 0x32
- 39474 89ac E00E0000 		.long	0xee0
- 39475 89b0 03       		.byte	0x3
- 39476 89b1 91       		.byte	0x91
- 39477 89b2 B065     		.sleb128 -3408
- 39478 89b4 33       		.uleb128 0x33
- 39479 89b5 00000000 		.quad	.LBB2107
- 39479      00000000 
- 39480 89bd 00000000 		.quad	.LBE2107
- 39480      00000000 
- 39481 89c5 34       		.uleb128 0x34
- 39482 89c6 EC0E0000 		.long	0xeec
- 39483 89ca 03       		.byte	0x3
- 39484 89cb 91       		.byte	0x91
- 39485 89cc C047     		.sleb128 -7232
- 39486 89ce 00       		.byte	0x0
- 39487 89cf 00       		.byte	0x0
- 39488 89d0 31       		.uleb128 0x31
- 39489 89d1 CE0E0000 		.long	0xece
- 39490 89d5 00000000 		.quad	.LBB2108
- 39490      00000000 
- 39491 89dd 00000000 		.quad	.LBE2108
- 39491      00000000 
- 39492 89e5 02       		.byte	0x2
- 39493 89e6 2006     		.value	0x620
- 39494 89e8 118A0000 		.long	0x8a11
- 39495 89ec 32       		.uleb128 0x32
- 39496 89ed E00E0000 		.long	0xee0
- 39497 89f1 03       		.byte	0x3
- 39498 89f2 91       		.byte	0x91
- 39499 89f3 C065     		.sleb128 -3392
- 39500 89f5 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1041
-
-
- 39501 89f6 00000000 		.quad	.LBB2109
- 39501      00000000 
- 39502 89fe 00000000 		.quad	.LBE2109
- 39502      00000000 
- 39503 8a06 34       		.uleb128 0x34
- 39504 8a07 EC0E0000 		.long	0xeec
- 39505 8a0b 03       		.byte	0x3
- 39506 8a0c 91       		.byte	0x91
- 39507 8a0d D047     		.sleb128 -7216
- 39508 8a0f 00       		.byte	0x0
- 39509 8a10 00       		.byte	0x0
- 39510 8a11 35       		.uleb128 0x35
- 39511 8a12 CE0E0000 		.long	0xece
- 39512 8a16 00000000 		.quad	.LBB2110
- 39512      00000000 
- 39513 8a1e 00000000 		.quad	.LBE2110
- 39513      00000000 
- 39514 8a26 02       		.byte	0x2
- 39515 8a27 2106     		.value	0x621
- 39516 8a29 32       		.uleb128 0x32
- 39517 8a2a E00E0000 		.long	0xee0
- 39518 8a2e 03       		.byte	0x3
- 39519 8a2f 91       		.byte	0x91
- 39520 8a30 D065     		.sleb128 -3376
- 39521 8a32 33       		.uleb128 0x33
- 39522 8a33 00000000 		.quad	.LBB2111
- 39522      00000000 
- 39523 8a3b 00000000 		.quad	.LBE2111
- 39523      00000000 
- 39524 8a43 34       		.uleb128 0x34
- 39525 8a44 EC0E0000 		.long	0xeec
- 39526 8a48 03       		.byte	0x3
- 39527 8a49 91       		.byte	0x91
- 39528 8a4a E047     		.sleb128 -7200
- 39529 8a4c 00       		.byte	0x0
- 39530 8a4d 00       		.byte	0x0
- 39531 8a4e 00       		.byte	0x0
- 39532 8a4f 00       		.byte	0x0
- 39533 8a50 31       		.uleb128 0x31
- 39534 8a51 520E0000 		.long	0xe52
- 39535 8a55 00000000 		.quad	.LBB2112
- 39535      00000000 
- 39536 8a5d 00000000 		.quad	.LBE2112
- 39536      00000000 
- 39537 8a65 02       		.byte	0x2
- 39538 8a66 8A07     		.value	0x78a
- 39539 8a68 7F8A0000 		.long	0x8a7f
- 39540 8a6c 32       		.uleb128 0x32
- 39541 8a6d 6D0E0000 		.long	0xe6d
- 39542 8a71 03       		.byte	0x3
- 39543 8a72 91       		.byte	0x91
- 39544 8a73 E065     		.sleb128 -3360
- 39545 8a75 32       		.uleb128 0x32
- 39546 8a76 630E0000 		.long	0xe63
- 39547 8a7a 03       		.byte	0x3
- 39548 8a7b 91       		.byte	0x91
- 39549 8a7c F065     		.sleb128 -3344
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1042
-
-
- 39550 8a7e 00       		.byte	0x0
- 39551 8a7f 31       		.uleb128 0x31
- 39552 8a80 4E740000 		.long	0x744e
- 39553 8a84 00000000 		.quad	.LBB2114
- 39553      00000000 
- 39554 8a8c 00000000 		.quad	.LBE2114
- 39554      00000000 
- 39555 8a94 02       		.byte	0x2
- 39556 8a95 8B07     		.value	0x78b
- 39557 8a97 0F8B0000 		.long	0x8b0f
- 39558 8a9b 32       		.uleb128 0x32
- 39559 8a9c 60740000 		.long	0x7460
- 39560 8aa0 03       		.byte	0x3
- 39561 8aa1 91       		.byte	0x91
- 39562 8aa2 8066     		.sleb128 -3328
- 39563 8aa4 33       		.uleb128 0x33
- 39564 8aa5 00000000 		.quad	.LBB2115
- 39564      00000000 
- 39565 8aad 00000000 		.quad	.LBE2115
- 39565      00000000 
- 39566 8ab5 34       		.uleb128 0x34
- 39567 8ab6 6C740000 		.long	0x746c
- 39568 8aba 03       		.byte	0x3
- 39569 8abb 91       		.byte	0x91
- 39570 8abc 8048     		.sleb128 -7168
- 39571 8abe 34       		.uleb128 0x34
- 39572 8abf 76740000 		.long	0x7476
- 39573 8ac3 03       		.byte	0x3
- 39574 8ac4 91       		.byte	0x91
- 39575 8ac5 9466     		.sleb128 -3308
- 39576 8ac7 35       		.uleb128 0x35
- 39577 8ac8 12490000 		.long	0x4912
- 39578 8acc 00000000 		.quad	.LBB2116
- 39578      00000000 
- 39579 8ad4 00000000 		.quad	.LBE2116
- 39579      00000000 
- 39580 8adc 02       		.byte	0x2
- 39581 8add 7906     		.value	0x679
- 39582 8adf 32       		.uleb128 0x32
- 39583 8ae0 24490000 		.long	0x4924
- 39584 8ae4 03       		.byte	0x3
- 39585 8ae5 91       		.byte	0x91
- 39586 8ae6 9866     		.sleb128 -3304
- 39587 8ae8 33       		.uleb128 0x33
- 39588 8ae9 00000000 		.quad	.LBB2117
- 39588      00000000 
- 39589 8af1 00000000 		.quad	.LBE2117
- 39589      00000000 
- 39590 8af9 34       		.uleb128 0x34
- 39591 8afa 2E490000 		.long	0x492e
- 39592 8afe 03       		.byte	0x3
- 39593 8aff 91       		.byte	0x91
- 39594 8b00 F047     		.sleb128 -7184
- 39595 8b02 34       		.uleb128 0x34
- 39596 8b03 3A490000 		.long	0x493a
- 39597 8b07 03       		.byte	0x3
- 39598 8b08 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1043
-
-
- 39599 8b09 9C66     		.sleb128 -3300
- 39600 8b0b 00       		.byte	0x0
- 39601 8b0c 00       		.byte	0x0
- 39602 8b0d 00       		.byte	0x0
- 39603 8b0e 00       		.byte	0x0
- 39604 8b0f 31       		.uleb128 0x31
- 39605 8b10 A30E0000 		.long	0xea3
- 39606 8b14 00000000 		.quad	.LBB2118
- 39606      00000000 
- 39607 8b1c 00000000 		.quad	.LBE2118
- 39607      00000000 
- 39608 8b24 02       		.byte	0x2
- 39609 8b25 8B07     		.value	0x78b
- 39610 8b27 108C0000 		.long	0x8c10
- 39611 8b2b 32       		.uleb128 0x32
- 39612 8b2c B50E0000 		.long	0xeb5
- 39613 8b30 03       		.byte	0x3
- 39614 8b31 91       		.byte	0x91
- 39615 8b32 A066     		.sleb128 -3296
- 39616 8b34 33       		.uleb128 0x33
- 39617 8b35 00000000 		.quad	.LBB2119
- 39617      00000000 
- 39618 8b3d 00000000 		.quad	.LBE2119
- 39618      00000000 
- 39619 8b45 34       		.uleb128 0x34
- 39620 8b46 C10E0000 		.long	0xec1
- 39621 8b4a 04       		.byte	0x4
- 39622 8b4b 76       		.byte	0x76
- 39623 8b4c 90BD7F   		.sleb128 -8560
- 39624 8b4f 31       		.uleb128 0x31
- 39625 8b50 CE0E0000 		.long	0xece
- 39626 8b54 00000000 		.quad	.LBB2120
- 39626      00000000 
- 39627 8b5c 00000000 		.quad	.LBE2120
- 39627      00000000 
- 39628 8b64 02       		.byte	0x2
- 39629 8b65 1F06     		.value	0x61f
- 39630 8b67 908B0000 		.long	0x8b90
- 39631 8b6b 32       		.uleb128 0x32
- 39632 8b6c E00E0000 		.long	0xee0
- 39633 8b70 03       		.byte	0x3
- 39634 8b71 91       		.byte	0x91
- 39635 8b72 B066     		.sleb128 -3280
- 39636 8b74 33       		.uleb128 0x33
- 39637 8b75 00000000 		.quad	.LBB2121
- 39637      00000000 
- 39638 8b7d 00000000 		.quad	.LBE2121
- 39638      00000000 
- 39639 8b85 34       		.uleb128 0x34
- 39640 8b86 EC0E0000 		.long	0xeec
- 39641 8b8a 03       		.byte	0x3
- 39642 8b8b 91       		.byte	0x91
- 39643 8b8c 9048     		.sleb128 -7152
- 39644 8b8e 00       		.byte	0x0
- 39645 8b8f 00       		.byte	0x0
- 39646 8b90 31       		.uleb128 0x31
- 39647 8b91 CE0E0000 		.long	0xece
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1044
-
-
- 39648 8b95 00000000 		.quad	.LBB2122
- 39648      00000000 
- 39649 8b9d 00000000 		.quad	.LBE2122
- 39649      00000000 
- 39650 8ba5 02       		.byte	0x2
- 39651 8ba6 2006     		.value	0x620
- 39652 8ba8 D18B0000 		.long	0x8bd1
- 39653 8bac 32       		.uleb128 0x32
- 39654 8bad E00E0000 		.long	0xee0
- 39655 8bb1 03       		.byte	0x3
- 39656 8bb2 91       		.byte	0x91
- 39657 8bb3 C066     		.sleb128 -3264
- 39658 8bb5 33       		.uleb128 0x33
- 39659 8bb6 00000000 		.quad	.LBB2123
- 39659      00000000 
- 39660 8bbe 00000000 		.quad	.LBE2123
- 39660      00000000 
- 39661 8bc6 34       		.uleb128 0x34
- 39662 8bc7 EC0E0000 		.long	0xeec
- 39663 8bcb 03       		.byte	0x3
- 39664 8bcc 91       		.byte	0x91
- 39665 8bcd A048     		.sleb128 -7136
- 39666 8bcf 00       		.byte	0x0
- 39667 8bd0 00       		.byte	0x0
- 39668 8bd1 35       		.uleb128 0x35
- 39669 8bd2 CE0E0000 		.long	0xece
- 39670 8bd6 00000000 		.quad	.LBB2124
- 39670      00000000 
- 39671 8bde 00000000 		.quad	.LBE2124
- 39671      00000000 
- 39672 8be6 02       		.byte	0x2
- 39673 8be7 2106     		.value	0x621
- 39674 8be9 32       		.uleb128 0x32
- 39675 8bea E00E0000 		.long	0xee0
- 39676 8bee 03       		.byte	0x3
- 39677 8bef 91       		.byte	0x91
- 39678 8bf0 D066     		.sleb128 -3248
- 39679 8bf2 33       		.uleb128 0x33
- 39680 8bf3 00000000 		.quad	.LBB2125
- 39680      00000000 
- 39681 8bfb 00000000 		.quad	.LBE2125
- 39681      00000000 
- 39682 8c03 34       		.uleb128 0x34
- 39683 8c04 EC0E0000 		.long	0xeec
- 39684 8c08 03       		.byte	0x3
- 39685 8c09 91       		.byte	0x91
- 39686 8c0a B048     		.sleb128 -7120
- 39687 8c0c 00       		.byte	0x0
- 39688 8c0d 00       		.byte	0x0
- 39689 8c0e 00       		.byte	0x0
- 39690 8c0f 00       		.byte	0x0
- 39691 8c10 31       		.uleb128 0x31
- 39692 8c11 520E0000 		.long	0xe52
- 39693 8c15 00000000 		.quad	.LBB2126
- 39693      00000000 
- 39694 8c1d 00000000 		.quad	.LBE2126
- 39694      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1045
-
-
- 39695 8c25 02       		.byte	0x2
- 39696 8c26 8B07     		.value	0x78b
- 39697 8c28 3F8C0000 		.long	0x8c3f
- 39698 8c2c 32       		.uleb128 0x32
- 39699 8c2d 6D0E0000 		.long	0xe6d
- 39700 8c31 03       		.byte	0x3
- 39701 8c32 91       		.byte	0x91
- 39702 8c33 E066     		.sleb128 -3232
- 39703 8c35 32       		.uleb128 0x32
- 39704 8c36 630E0000 		.long	0xe63
- 39705 8c3a 03       		.byte	0x3
- 39706 8c3b 91       		.byte	0x91
- 39707 8c3c F066     		.sleb128 -3216
- 39708 8c3e 00       		.byte	0x0
- 39709 8c3f 31       		.uleb128 0x31
- 39710 8c40 D10B0000 		.long	0xbd1
- 39711 8c44 00000000 		.quad	.LBB2128
- 39711      00000000 
- 39712 8c4c 00000000 		.quad	.LBE2128
- 39712      00000000 
- 39713 8c54 02       		.byte	0x2
- 39714 8c55 8C07     		.value	0x78c
- 39715 8c57 E7900000 		.long	0x90e7
- 39716 8c5b 32       		.uleb128 0x32
- 39717 8c5c EF0B0000 		.long	0xbef
- 39718 8c60 03       		.byte	0x3
- 39719 8c61 91       		.byte	0x91
- 39720 8c62 8C67     		.sleb128 -3188
- 39721 8c64 32       		.uleb128 0x32
- 39722 8c65 E30B0000 		.long	0xbe3
- 39723 8c69 03       		.byte	0x3
- 39724 8c6a 91       		.byte	0x91
- 39725 8c6b 9067     		.sleb128 -3184
- 39726 8c6d 33       		.uleb128 0x33
- 39727 8c6e 00000000 		.quad	.LBB2129
- 39727      00000000 
- 39728 8c76 00000000 		.quad	.LBE2129
- 39728      00000000 
- 39729 8c7e 34       		.uleb128 0x34
- 39730 8c7f FB0B0000 		.long	0xbfb
- 39731 8c83 04       		.byte	0x4
- 39732 8c84 76       		.byte	0x76
- 39733 8c85 B0BD7F   		.sleb128 -8528
- 39734 8c88 34       		.uleb128 0x34
- 39735 8c89 070C0000 		.long	0xc07
- 39736 8c8d 04       		.byte	0x4
- 39737 8c8e 76       		.byte	0x76
- 39738 8c8f A0BD7F   		.sleb128 -8544
- 39739 8c92 31       		.uleb128 0x31
- 39740 8c93 500C0000 		.long	0xc50
- 39741 8c97 00000000 		.quad	.LBB2130
- 39741      00000000 
- 39742 8c9f 00000000 		.quad	.LBE2130
- 39742      00000000 
- 39743 8ca7 02       		.byte	0x2
- 39744 8ca8 9106     		.value	0x691
- 39745 8caa E58C0000 		.long	0x8ce5
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1046
-
-
- 39746 8cae 32       		.uleb128 0x32
- 39747 8caf 7A0C0000 		.long	0xc7a
- 39748 8cb3 03       		.byte	0x3
- 39749 8cb4 91       		.byte	0x91
- 39750 8cb5 A867     		.sleb128 -3160
- 39751 8cb7 32       		.uleb128 0x32
- 39752 8cb8 6E0C0000 		.long	0xc6e
- 39753 8cbc 03       		.byte	0x3
- 39754 8cbd 91       		.byte	0x91
- 39755 8cbe AC67     		.sleb128 -3156
- 39756 8cc0 32       		.uleb128 0x32
- 39757 8cc1 620C0000 		.long	0xc62
- 39758 8cc5 03       		.byte	0x3
- 39759 8cc6 91       		.byte	0x91
- 39760 8cc7 B067     		.sleb128 -3152
- 39761 8cc9 33       		.uleb128 0x33
- 39762 8cca 00000000 		.quad	.LBB2131
- 39762      00000000 
- 39763 8cd2 00000000 		.quad	.LBE2131
- 39763      00000000 
- 39764 8cda 34       		.uleb128 0x34
- 39765 8cdb 860C0000 		.long	0xc86
- 39766 8cdf 03       		.byte	0x3
- 39767 8ce0 91       		.byte	0x91
- 39768 8ce1 8049     		.sleb128 -7040
- 39769 8ce3 00       		.byte	0x0
- 39770 8ce4 00       		.byte	0x0
- 39771 8ce5 31       		.uleb128 0x31
- 39772 8ce6 910C0000 		.long	0xc91
- 39773 8cea 00000000 		.quad	.LBB2132
- 39773      00000000 
- 39774 8cf2 00000000 		.quad	.LBE2132
- 39774      00000000 
- 39775 8cfa 02       		.byte	0x2
- 39776 8cfb 9206     		.value	0x692
- 39777 8cfd 558F0000 		.long	0x8f55
- 39778 8d01 32       		.uleb128 0x32
- 39779 8d02 A30C0000 		.long	0xca3
- 39780 8d06 03       		.byte	0x3
- 39781 8d07 91       		.byte	0x91
- 39782 8d08 C067     		.sleb128 -3136
- 39783 8d0a 35       		.uleb128 0x35
- 39784 8d0b B00C0000 		.long	0xcb0
- 39785 8d0f 00000000 		.quad	.LBB2134
- 39785      00000000 
- 39786 8d17 00000000 		.quad	.LBE2134
- 39786      00000000 
- 39787 8d1f 02       		.byte	0x2
- 39788 8d20 7D03     		.value	0x37d
- 39789 8d22 32       		.uleb128 0x32
- 39790 8d23 CE0C0000 		.long	0xcce
- 39791 8d27 03       		.byte	0x3
- 39792 8d28 91       		.byte	0x91
- 39793 8d29 D867     		.sleb128 -3112
- 39794 8d2b 32       		.uleb128 0x32
- 39795 8d2c C20C0000 		.long	0xcc2
- 39796 8d30 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1047
-
-
- 39797 8d31 91       		.byte	0x91
- 39798 8d32 E067     		.sleb128 -3104
- 39799 8d34 33       		.uleb128 0x33
- 39800 8d35 00000000 		.quad	.LBB2135
- 39800      00000000 
- 39801 8d3d 00000000 		.quad	.LBE2135
- 39801      00000000 
- 39802 8d45 34       		.uleb128 0x34
- 39803 8d46 DA0C0000 		.long	0xcda
- 39804 8d4a 03       		.byte	0x3
- 39805 8d4b 91       		.byte	0x91
- 39806 8d4c B068     		.sleb128 -3024
- 39807 8d4e 34       		.uleb128 0x34
- 39808 8d4f E50C0000 		.long	0xce5
- 39809 8d53 03       		.byte	0x3
- 39810 8d54 91       		.byte	0x91
- 39811 8d55 A068     		.sleb128 -3040
- 39812 8d57 34       		.uleb128 0x34
- 39813 8d58 F00C0000 		.long	0xcf0
- 39814 8d5c 03       		.byte	0x3
- 39815 8d5d 91       		.byte	0x91
- 39816 8d5e 9068     		.sleb128 -3056
- 39817 8d60 34       		.uleb128 0x34
- 39818 8d61 FC0C0000 		.long	0xcfc
- 39819 8d65 03       		.byte	0x3
- 39820 8d66 91       		.byte	0x91
- 39821 8d67 8068     		.sleb128 -3072
- 39822 8d69 34       		.uleb128 0x34
- 39823 8d6a 080D0000 		.long	0xd08
- 39824 8d6e 03       		.byte	0x3
- 39825 8d6f 91       		.byte	0x91
- 39826 8d70 FC67     		.sleb128 -3076
- 39827 8d72 31       		.uleb128 0x31
- 39828 8d73 1F0D0000 		.long	0xd1f
- 39829 8d77 00000000 		.quad	.LBB2136
- 39829      00000000 
- 39830 8d7f 00000000 		.quad	.LBE2136
- 39830      00000000 
- 39831 8d87 02       		.byte	0x2
- 39832 8d88 5603     		.value	0x356
- 39833 8d8a A18D0000 		.long	0x8da1
- 39834 8d8e 32       		.uleb128 0x32
- 39835 8d8f 3A0D0000 		.long	0xd3a
- 39836 8d93 03       		.byte	0x3
- 39837 8d94 91       		.byte	0x91
- 39838 8d95 C068     		.sleb128 -3008
- 39839 8d97 32       		.uleb128 0x32
- 39840 8d98 300D0000 		.long	0xd30
- 39841 8d9c 03       		.byte	0x3
- 39842 8d9d 91       		.byte	0x91
- 39843 8d9e D068     		.sleb128 -2992
- 39844 8da0 00       		.byte	0x0
- 39845 8da1 31       		.uleb128 0x31
- 39846 8da2 450D0000 		.long	0xd45
- 39847 8da6 00000000 		.quad	.LBB2138
- 39847      00000000 
- 39848 8dae 00000000 		.quad	.LBE2138
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1048
-
-
- 39848      00000000 
- 39849 8db6 02       		.byte	0x2
- 39850 8db7 5E03     		.value	0x35e
- 39851 8db9 D08D0000 		.long	0x8dd0
- 39852 8dbd 32       		.uleb128 0x32
- 39853 8dbe 620D0000 		.long	0xd62
- 39854 8dc2 03       		.byte	0x3
- 39855 8dc3 91       		.byte	0x91
- 39856 8dc4 E068     		.sleb128 -2976
- 39857 8dc6 32       		.uleb128 0x32
- 39858 8dc7 570D0000 		.long	0xd57
- 39859 8dcb 03       		.byte	0x3
- 39860 8dcc 91       		.byte	0x91
- 39861 8dcd F068     		.sleb128 -2960
- 39862 8dcf 00       		.byte	0x0
- 39863 8dd0 31       		.uleb128 0x31
- 39864 8dd1 6E0D0000 		.long	0xd6e
- 39865 8dd5 00000000 		.quad	.LBB2140
- 39865      00000000 
- 39866 8ddd 00000000 		.quad	.LBE2140
- 39866      00000000 
- 39867 8de5 02       		.byte	0x2
- 39868 8de6 6403     		.value	0x364
- 39869 8de8 358E0000 		.long	0x8e35
- 39870 8dec 32       		.uleb128 0x32
- 39871 8ded 8C0D0000 		.long	0xd8c
- 39872 8df1 03       		.byte	0x3
- 39873 8df2 91       		.byte	0x91
- 39874 8df3 8069     		.sleb128 -2944
- 39875 8df5 32       		.uleb128 0x32
- 39876 8df6 800D0000 		.long	0xd80
- 39877 8dfa 03       		.byte	0x3
- 39878 8dfb 91       		.byte	0x91
- 39879 8dfc 9069     		.sleb128 -2928
- 39880 8dfe 33       		.uleb128 0x33
- 39881 8dff 00000000 		.quad	.LBB2141
- 39881      00000000 
- 39882 8e07 00000000 		.quad	.LBE2141
- 39882      00000000 
- 39883 8e0f 34       		.uleb128 0x34
- 39884 8e10 980D0000 		.long	0xd98
- 39885 8e14 03       		.byte	0x3
- 39886 8e15 91       		.byte	0x91
- 39887 8e16 B049     		.sleb128 -6992
- 39888 8e18 34       		.uleb128 0x34
- 39889 8e19 A40D0000 		.long	0xda4
- 39890 8e1d 03       		.byte	0x3
- 39891 8e1e 91       		.byte	0x91
- 39892 8e1f A049     		.sleb128 -7008
- 39893 8e21 34       		.uleb128 0x34
- 39894 8e22 AF0D0000 		.long	0xdaf
- 39895 8e26 03       		.byte	0x3
- 39896 8e27 91       		.byte	0x91
- 39897 8e28 9049     		.sleb128 -7024
- 39898 8e2a 34       		.uleb128 0x34
- 39899 8e2b BB0D0000 		.long	0xdbb
- 39900 8e2f 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1049
-
-
- 39901 8e30 91       		.byte	0x91
- 39902 8e31 AC69     		.sleb128 -2900
- 39903 8e33 00       		.byte	0x0
- 39904 8e34 00       		.byte	0x0
- 39905 8e35 31       		.uleb128 0x31
- 39906 8e36 C70D0000 		.long	0xdc7
- 39907 8e3a 00000000 		.quad	.LBB2142
- 39907      00000000 
- 39908 8e42 00000000 		.quad	.LBE2142
- 39908      00000000 
- 39909 8e4a 02       		.byte	0x2
- 39910 8e4b 6603     		.value	0x366
- 39911 8e4d 648E0000 		.long	0x8e64
- 39912 8e51 32       		.uleb128 0x32
- 39913 8e52 E20D0000 		.long	0xde2
- 39914 8e56 03       		.byte	0x3
- 39915 8e57 91       		.byte	0x91
- 39916 8e58 B069     		.sleb128 -2896
- 39917 8e5a 32       		.uleb128 0x32
- 39918 8e5b D80D0000 		.long	0xdd8
- 39919 8e5f 03       		.byte	0x3
- 39920 8e60 91       		.byte	0x91
- 39921 8e61 C069     		.sleb128 -2880
- 39922 8e63 00       		.byte	0x0
- 39923 8e64 31       		.uleb128 0x31
- 39924 8e65 6E0D0000 		.long	0xd6e
- 39925 8e69 00000000 		.quad	.LBB2144
- 39925      00000000 
- 39926 8e71 00000000 		.quad	.LBE2144
- 39926      00000000 
- 39927 8e79 02       		.byte	0x2
- 39928 8e7a 6803     		.value	0x368
- 39929 8e7c C98E0000 		.long	0x8ec9
- 39930 8e80 32       		.uleb128 0x32
- 39931 8e81 8C0D0000 		.long	0xd8c
- 39932 8e85 03       		.byte	0x3
- 39933 8e86 91       		.byte	0x91
- 39934 8e87 D069     		.sleb128 -2864
- 39935 8e89 32       		.uleb128 0x32
- 39936 8e8a 800D0000 		.long	0xd80
- 39937 8e8e 03       		.byte	0x3
- 39938 8e8f 91       		.byte	0x91
- 39939 8e90 E069     		.sleb128 -2848
- 39940 8e92 33       		.uleb128 0x33
- 39941 8e93 00000000 		.quad	.LBB2145
- 39941      00000000 
- 39942 8e9b 00000000 		.quad	.LBE2145
- 39942      00000000 
- 39943 8ea3 34       		.uleb128 0x34
- 39944 8ea4 980D0000 		.long	0xd98
- 39945 8ea8 03       		.byte	0x3
- 39946 8ea9 91       		.byte	0x91
- 39947 8eaa E049     		.sleb128 -6944
- 39948 8eac 34       		.uleb128 0x34
- 39949 8ead A40D0000 		.long	0xda4
- 39950 8eb1 03       		.byte	0x3
- 39951 8eb2 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1050
-
-
- 39952 8eb3 D049     		.sleb128 -6960
- 39953 8eb5 34       		.uleb128 0x34
- 39954 8eb6 AF0D0000 		.long	0xdaf
- 39955 8eba 03       		.byte	0x3
- 39956 8ebb 91       		.byte	0x91
- 39957 8ebc C049     		.sleb128 -6976
- 39958 8ebe 34       		.uleb128 0x34
- 39959 8ebf BB0D0000 		.long	0xdbb
- 39960 8ec3 03       		.byte	0x3
- 39961 8ec4 91       		.byte	0x91
- 39962 8ec5 FC69     		.sleb128 -2820
- 39963 8ec7 00       		.byte	0x0
- 39964 8ec8 00       		.byte	0x0
- 39965 8ec9 31       		.uleb128 0x31
- 39966 8eca C70D0000 		.long	0xdc7
- 39967 8ece 00000000 		.quad	.LBB2146
- 39967      00000000 
- 39968 8ed6 00000000 		.quad	.LBE2146
- 39968      00000000 
- 39969 8ede 02       		.byte	0x2
- 39970 8edf 6A03     		.value	0x36a
- 39971 8ee1 F88E0000 		.long	0x8ef8
- 39972 8ee5 32       		.uleb128 0x32
- 39973 8ee6 E20D0000 		.long	0xde2
- 39974 8eea 03       		.byte	0x3
- 39975 8eeb 91       		.byte	0x91
- 39976 8eec 806A     		.sleb128 -2816
- 39977 8eee 32       		.uleb128 0x32
- 39978 8eef D80D0000 		.long	0xdd8
- 39979 8ef3 03       		.byte	0x3
- 39980 8ef4 91       		.byte	0x91
- 39981 8ef5 906A     		.sleb128 -2800
- 39982 8ef7 00       		.byte	0x0
- 39983 8ef8 31       		.uleb128 0x31
- 39984 8ef9 ED0D0000 		.long	0xded
- 39985 8efd 00000000 		.quad	.LBB2148
- 39985      00000000 
- 39986 8f05 00000000 		.quad	.LBE2148
- 39986      00000000 
- 39987 8f0d 02       		.byte	0x2
- 39988 8f0e 6C03     		.value	0x36c
- 39989 8f10 278F0000 		.long	0x8f27
- 39990 8f14 32       		.uleb128 0x32
- 39991 8f15 0A0E0000 		.long	0xe0a
- 39992 8f19 03       		.byte	0x3
- 39993 8f1a 91       		.byte	0x91
- 39994 8f1b A06A     		.sleb128 -2784
- 39995 8f1d 32       		.uleb128 0x32
- 39996 8f1e FF0D0000 		.long	0xdff
- 39997 8f22 03       		.byte	0x3
- 39998 8f23 91       		.byte	0x91
- 39999 8f24 B06A     		.sleb128 -2768
- 40000 8f26 00       		.byte	0x0
- 40001 8f27 35       		.uleb128 0x35
- 40002 8f28 1F0D0000 		.long	0xd1f
- 40003 8f2c 00000000 		.quad	.LBB2150
- 40003      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1051
-
-
- 40004 8f34 00000000 		.quad	.LBE2150
- 40004      00000000 
- 40005 8f3c 02       		.byte	0x2
- 40006 8f3d 6E03     		.value	0x36e
- 40007 8f3f 32       		.uleb128 0x32
- 40008 8f40 3A0D0000 		.long	0xd3a
- 40009 8f44 03       		.byte	0x3
- 40010 8f45 91       		.byte	0x91
- 40011 8f46 C06A     		.sleb128 -2752
- 40012 8f48 32       		.uleb128 0x32
- 40013 8f49 300D0000 		.long	0xd30
- 40014 8f4d 03       		.byte	0x3
- 40015 8f4e 91       		.byte	0x91
- 40016 8f4f D06A     		.sleb128 -2736
- 40017 8f51 00       		.byte	0x0
- 40018 8f52 00       		.byte	0x0
- 40019 8f53 00       		.byte	0x0
- 40020 8f54 00       		.byte	0x0
- 40021 8f55 36       		.uleb128 0x36
- 40022 8f56 00000000 		.quad	.LBB2152
- 40022      00000000 
- 40023 8f5e 00000000 		.quad	.LBE2152
- 40023      00000000 
- 40024 8f66 748F0000 		.long	0x8f74
- 40025 8f6a 34       		.uleb128 0x34
- 40026 8f6b 180C0000 		.long	0xc18
- 40027 8f6f 03       		.byte	0x3
- 40028 8f70 91       		.byte	0x91
- 40029 8f71 F048     		.sleb128 -7056
- 40030 8f73 00       		.byte	0x0
- 40031 8f74 31       		.uleb128 0x31
- 40032 8f75 160E0000 		.long	0xe16
- 40033 8f79 00000000 		.quad	.LBB2153
- 40033      00000000 
- 40034 8f81 00000000 		.quad	.LBE2153
- 40034      00000000 
- 40035 8f89 02       		.byte	0x2
- 40036 8f8a 9406     		.value	0x694
- 40037 8f8c 1C900000 		.long	0x901c
- 40038 8f90 32       		.uleb128 0x32
- 40039 8f91 280E0000 		.long	0xe28
- 40040 8f95 03       		.byte	0x3
- 40041 8f96 91       		.byte	0x91
- 40042 8f97 E06A     		.sleb128 -2720
- 40043 8f99 33       		.uleb128 0x33
- 40044 8f9a 00000000 		.quad	.LBB2154
- 40044      00000000 
- 40045 8fa2 00000000 		.quad	.LBE2154
- 40045      00000000 
- 40046 8faa 34       		.uleb128 0x34
- 40047 8fab 340E0000 		.long	0xe34
- 40048 8faf 09       		.byte	0x9
- 40049 8fb0 03       		.byte	0x3
- 40050 8fb1 00000000 		.quad	ShiftRowTable.6768
- 40050      00000000 
- 40051 8fb9 35       		.uleb128 0x35
- 40052 8fba 6E0D0000 		.long	0xd6e
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1052
-
-
- 40053 8fbe 00000000 		.quad	.LBB2155
- 40053      00000000 
- 40054 8fc6 00000000 		.quad	.LBE2155
- 40054      00000000 
- 40055 8fce 02       		.byte	0x2
- 40056 8fcf 9B02     		.value	0x29b
- 40057 8fd1 32       		.uleb128 0x32
- 40058 8fd2 8C0D0000 		.long	0xd8c
- 40059 8fd6 03       		.byte	0x3
- 40060 8fd7 91       		.byte	0x91
- 40061 8fd8 F06A     		.sleb128 -2704
- 40062 8fda 32       		.uleb128 0x32
- 40063 8fdb 800D0000 		.long	0xd80
- 40064 8fdf 03       		.byte	0x3
- 40065 8fe0 91       		.byte	0x91
- 40066 8fe1 806B     		.sleb128 -2688
- 40067 8fe3 33       		.uleb128 0x33
- 40068 8fe4 00000000 		.quad	.LBB2156
- 40068      00000000 
- 40069 8fec 00000000 		.quad	.LBE2156
- 40069      00000000 
- 40070 8ff4 34       		.uleb128 0x34
- 40071 8ff5 980D0000 		.long	0xd98
- 40072 8ff9 03       		.byte	0x3
- 40073 8ffa 91       		.byte	0x91
- 40074 8ffb 904A     		.sleb128 -6896
- 40075 8ffd 34       		.uleb128 0x34
- 40076 8ffe A40D0000 		.long	0xda4
- 40077 9002 03       		.byte	0x3
- 40078 9003 91       		.byte	0x91
- 40079 9004 804A     		.sleb128 -6912
- 40080 9006 34       		.uleb128 0x34
- 40081 9007 AF0D0000 		.long	0xdaf
- 40082 900b 03       		.byte	0x3
- 40083 900c 91       		.byte	0x91
- 40084 900d F049     		.sleb128 -6928
- 40085 900f 34       		.uleb128 0x34
- 40086 9010 BB0D0000 		.long	0xdbb
- 40087 9014 03       		.byte	0x3
- 40088 9015 91       		.byte	0x91
- 40089 9016 9C6B     		.sleb128 -2660
- 40090 9018 00       		.byte	0x0
- 40091 9019 00       		.byte	0x0
- 40092 901a 00       		.byte	0x0
- 40093 901b 00       		.byte	0x0
- 40094 901c 36       		.uleb128 0x36
- 40095 901d 00000000 		.quad	.LBB2157
- 40095      00000000 
- 40096 9025 00000000 		.quad	.LBE2157
- 40096      00000000 
- 40097 902d 3B900000 		.long	0x903b
- 40098 9031 34       		.uleb128 0x34
- 40099 9032 280C0000 		.long	0xc28
- 40100 9036 03       		.byte	0x3
- 40101 9037 91       		.byte	0x91
- 40102 9038 E048     		.sleb128 -7072
- 40103 903a 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1053
-
-
- 40104 903b 31       		.uleb128 0x31
- 40105 903c 520E0000 		.long	0xe52
- 40106 9040 00000000 		.quad	.LBB2158
- 40106      00000000 
- 40107 9048 00000000 		.quad	.LBE2158
- 40107      00000000 
- 40108 9050 02       		.byte	0x2
- 40109 9051 9606     		.value	0x696
- 40110 9053 6A900000 		.long	0x906a
- 40111 9057 32       		.uleb128 0x32
- 40112 9058 6D0E0000 		.long	0xe6d
- 40113 905c 03       		.byte	0x3
- 40114 905d 91       		.byte	0x91
- 40115 905e A06B     		.sleb128 -2656
- 40116 9060 32       		.uleb128 0x32
- 40117 9061 630E0000 		.long	0xe63
- 40118 9065 03       		.byte	0x3
- 40119 9066 91       		.byte	0x91
- 40120 9067 B06B     		.sleb128 -2640
- 40121 9069 00       		.byte	0x0
- 40122 906a 36       		.uleb128 0x36
- 40123 906b 00000000 		.quad	.LBB2160
- 40123      00000000 
- 40124 9073 00000000 		.quad	.LBE2160
- 40124      00000000 
- 40125 907b 89900000 		.long	0x9089
- 40126 907f 34       		.uleb128 0x34
- 40127 9080 380C0000 		.long	0xc38
- 40128 9084 03       		.byte	0x3
- 40129 9085 91       		.byte	0x91
- 40130 9086 D048     		.sleb128 -7088
- 40131 9088 00       		.byte	0x0
- 40132 9089 31       		.uleb128 0x31
- 40133 908a 780E0000 		.long	0xe78
- 40134 908e 00000000 		.quad	.LBB2161
- 40134      00000000 
- 40135 9096 00000000 		.quad	.LBE2161
- 40135      00000000 
- 40136 909e 02       		.byte	0x2
- 40137 909f 9806     		.value	0x698
- 40138 90a1 CA900000 		.long	0x90ca
- 40139 90a5 32       		.uleb128 0x32
- 40140 90a6 8A0E0000 		.long	0xe8a
- 40141 90aa 03       		.byte	0x3
- 40142 90ab 91       		.byte	0x91
- 40143 90ac C06B     		.sleb128 -2624
- 40144 90ae 33       		.uleb128 0x33
- 40145 90af 00000000 		.quad	.LBB2162
- 40145      00000000 
- 40146 90b7 00000000 		.quad	.LBE2162
- 40146      00000000 
- 40147 90bf 34       		.uleb128 0x34
- 40148 90c0 960E0000 		.long	0xe96
- 40149 90c4 03       		.byte	0x3
- 40150 90c5 91       		.byte	0x91
- 40151 90c6 A04A     		.sleb128 -6880
- 40152 90c8 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1054
-
-
- 40153 90c9 00       		.byte	0x0
- 40154 90ca 33       		.uleb128 0x33
- 40155 90cb 00000000 		.quad	.LBB2163
- 40155      00000000 
- 40156 90d3 00000000 		.quad	.LBE2163
- 40156      00000000 
- 40157 90db 34       		.uleb128 0x34
- 40158 90dc 440C0000 		.long	0xc44
- 40159 90e0 03       		.byte	0x3
- 40160 90e1 91       		.byte	0x91
- 40161 90e2 C048     		.sleb128 -7104
- 40162 90e4 00       		.byte	0x0
- 40163 90e5 00       		.byte	0x0
- 40164 90e6 00       		.byte	0x0
- 40165 90e7 31       		.uleb128 0x31
- 40166 90e8 A30E0000 		.long	0xea3
- 40167 90ec 00000000 		.quad	.LBB2164
- 40167      00000000 
- 40168 90f4 00000000 		.quad	.LBE2164
- 40168      00000000 
- 40169 90fc 02       		.byte	0x2
- 40170 90fd 8C07     		.value	0x78c
- 40171 90ff E8910000 		.long	0x91e8
- 40172 9103 32       		.uleb128 0x32
- 40173 9104 B50E0000 		.long	0xeb5
- 40174 9108 03       		.byte	0x3
- 40175 9109 91       		.byte	0x91
- 40176 910a D06B     		.sleb128 -2608
- 40177 910c 33       		.uleb128 0x33
- 40178 910d 00000000 		.quad	.LBB2165
- 40178      00000000 
- 40179 9115 00000000 		.quad	.LBE2165
- 40179      00000000 
- 40180 911d 34       		.uleb128 0x34
- 40181 911e C10E0000 		.long	0xec1
- 40182 9122 04       		.byte	0x4
- 40183 9123 76       		.byte	0x76
- 40184 9124 D0BD7F   		.sleb128 -8496
- 40185 9127 31       		.uleb128 0x31
- 40186 9128 CE0E0000 		.long	0xece
- 40187 912c 00000000 		.quad	.LBB2166
- 40187      00000000 
- 40188 9134 00000000 		.quad	.LBE2166
- 40188      00000000 
- 40189 913c 02       		.byte	0x2
- 40190 913d 1F06     		.value	0x61f
- 40191 913f 68910000 		.long	0x9168
- 40192 9143 32       		.uleb128 0x32
- 40193 9144 E00E0000 		.long	0xee0
- 40194 9148 03       		.byte	0x3
- 40195 9149 91       		.byte	0x91
- 40196 914a E06B     		.sleb128 -2592
- 40197 914c 33       		.uleb128 0x33
- 40198 914d 00000000 		.quad	.LBB2167
- 40198      00000000 
- 40199 9155 00000000 		.quad	.LBE2167
- 40199      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1055
-
-
- 40200 915d 34       		.uleb128 0x34
- 40201 915e EC0E0000 		.long	0xeec
- 40202 9162 03       		.byte	0x3
- 40203 9163 91       		.byte	0x91
- 40204 9164 B04A     		.sleb128 -6864
- 40205 9166 00       		.byte	0x0
- 40206 9167 00       		.byte	0x0
- 40207 9168 31       		.uleb128 0x31
- 40208 9169 CE0E0000 		.long	0xece
- 40209 916d 00000000 		.quad	.LBB2168
- 40209      00000000 
- 40210 9175 00000000 		.quad	.LBE2168
- 40210      00000000 
- 40211 917d 02       		.byte	0x2
- 40212 917e 2006     		.value	0x620
- 40213 9180 A9910000 		.long	0x91a9
- 40214 9184 32       		.uleb128 0x32
- 40215 9185 E00E0000 		.long	0xee0
- 40216 9189 03       		.byte	0x3
- 40217 918a 91       		.byte	0x91
- 40218 918b F06B     		.sleb128 -2576
- 40219 918d 33       		.uleb128 0x33
- 40220 918e 00000000 		.quad	.LBB2169
- 40220      00000000 
- 40221 9196 00000000 		.quad	.LBE2169
- 40221      00000000 
- 40222 919e 34       		.uleb128 0x34
- 40223 919f EC0E0000 		.long	0xeec
- 40224 91a3 03       		.byte	0x3
- 40225 91a4 91       		.byte	0x91
- 40226 91a5 C04A     		.sleb128 -6848
- 40227 91a7 00       		.byte	0x0
- 40228 91a8 00       		.byte	0x0
- 40229 91a9 35       		.uleb128 0x35
- 40230 91aa CE0E0000 		.long	0xece
- 40231 91ae 00000000 		.quad	.LBB2170
- 40231      00000000 
- 40232 91b6 00000000 		.quad	.LBE2170
- 40232      00000000 
- 40233 91be 02       		.byte	0x2
- 40234 91bf 2106     		.value	0x621
- 40235 91c1 32       		.uleb128 0x32
- 40236 91c2 E00E0000 		.long	0xee0
- 40237 91c6 03       		.byte	0x3
- 40238 91c7 91       		.byte	0x91
- 40239 91c8 806C     		.sleb128 -2560
- 40240 91ca 33       		.uleb128 0x33
- 40241 91cb 00000000 		.quad	.LBB2171
- 40241      00000000 
- 40242 91d3 00000000 		.quad	.LBE2171
- 40242      00000000 
- 40243 91db 34       		.uleb128 0x34
- 40244 91dc EC0E0000 		.long	0xeec
- 40245 91e0 03       		.byte	0x3
- 40246 91e1 91       		.byte	0x91
- 40247 91e2 D04A     		.sleb128 -6832
- 40248 91e4 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1056
-
-
- 40249 91e5 00       		.byte	0x0
- 40250 91e6 00       		.byte	0x0
- 40251 91e7 00       		.byte	0x0
- 40252 91e8 31       		.uleb128 0x31
- 40253 91e9 520E0000 		.long	0xe52
- 40254 91ed 00000000 		.quad	.LBB2172
- 40254      00000000 
- 40255 91f5 00000000 		.quad	.LBE2172
- 40255      00000000 
- 40256 91fd 02       		.byte	0x2
- 40257 91fe 8C07     		.value	0x78c
- 40258 9200 17920000 		.long	0x9217
- 40259 9204 32       		.uleb128 0x32
- 40260 9205 6D0E0000 		.long	0xe6d
- 40261 9209 03       		.byte	0x3
- 40262 920a 91       		.byte	0x91
- 40263 920b 906C     		.sleb128 -2544
- 40264 920d 32       		.uleb128 0x32
- 40265 920e 630E0000 		.long	0xe63
- 40266 9212 03       		.byte	0x3
- 40267 9213 91       		.byte	0x91
- 40268 9214 A06C     		.sleb128 -2528
- 40269 9216 00       		.byte	0x0
- 40270 9217 31       		.uleb128 0x31
- 40271 9218 4E740000 		.long	0x744e
- 40272 921c 00000000 		.quad	.LBB2174
- 40272      00000000 
- 40273 9224 00000000 		.quad	.LBE2174
- 40273      00000000 
- 40274 922c 02       		.byte	0x2
- 40275 922d 8D07     		.value	0x78d
- 40276 922f A7920000 		.long	0x92a7
- 40277 9233 32       		.uleb128 0x32
- 40278 9234 60740000 		.long	0x7460
- 40279 9238 03       		.byte	0x3
- 40280 9239 91       		.byte	0x91
- 40281 923a B06C     		.sleb128 -2512
- 40282 923c 33       		.uleb128 0x33
- 40283 923d 00000000 		.quad	.LBB2175
- 40283      00000000 
- 40284 9245 00000000 		.quad	.LBE2175
- 40284      00000000 
- 40285 924d 34       		.uleb128 0x34
- 40286 924e 6C740000 		.long	0x746c
- 40287 9252 03       		.byte	0x3
- 40288 9253 91       		.byte	0x91
- 40289 9254 F04A     		.sleb128 -6800
- 40290 9256 34       		.uleb128 0x34
- 40291 9257 76740000 		.long	0x7476
- 40292 925b 03       		.byte	0x3
- 40293 925c 91       		.byte	0x91
- 40294 925d C46C     		.sleb128 -2492
- 40295 925f 35       		.uleb128 0x35
- 40296 9260 12490000 		.long	0x4912
- 40297 9264 00000000 		.quad	.LBB2176
- 40297      00000000 
- 40298 926c 00000000 		.quad	.LBE2176
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1057
-
-
- 40298      00000000 
- 40299 9274 02       		.byte	0x2
- 40300 9275 7906     		.value	0x679
- 40301 9277 32       		.uleb128 0x32
- 40302 9278 24490000 		.long	0x4924
- 40303 927c 03       		.byte	0x3
- 40304 927d 91       		.byte	0x91
- 40305 927e C86C     		.sleb128 -2488
- 40306 9280 33       		.uleb128 0x33
- 40307 9281 00000000 		.quad	.LBB2177
- 40307      00000000 
- 40308 9289 00000000 		.quad	.LBE2177
- 40308      00000000 
- 40309 9291 34       		.uleb128 0x34
- 40310 9292 2E490000 		.long	0x492e
- 40311 9296 03       		.byte	0x3
- 40312 9297 91       		.byte	0x91
- 40313 9298 E04A     		.sleb128 -6816
- 40314 929a 34       		.uleb128 0x34
- 40315 929b 3A490000 		.long	0x493a
- 40316 929f 03       		.byte	0x3
- 40317 92a0 91       		.byte	0x91
- 40318 92a1 CC6C     		.sleb128 -2484
- 40319 92a3 00       		.byte	0x0
- 40320 92a4 00       		.byte	0x0
- 40321 92a5 00       		.byte	0x0
- 40322 92a6 00       		.byte	0x0
- 40323 92a7 31       		.uleb128 0x31
- 40324 92a8 A30E0000 		.long	0xea3
- 40325 92ac 00000000 		.quad	.LBB2178
- 40325      00000000 
- 40326 92b4 00000000 		.quad	.LBE2178
- 40326      00000000 
- 40327 92bc 02       		.byte	0x2
- 40328 92bd 8D07     		.value	0x78d
- 40329 92bf A8930000 		.long	0x93a8
- 40330 92c3 32       		.uleb128 0x32
- 40331 92c4 B50E0000 		.long	0xeb5
- 40332 92c8 03       		.byte	0x3
- 40333 92c9 91       		.byte	0x91
- 40334 92ca D06C     		.sleb128 -2480
- 40335 92cc 33       		.uleb128 0x33
- 40336 92cd 00000000 		.quad	.LBB2179
- 40336      00000000 
- 40337 92d5 00000000 		.quad	.LBE2179
- 40337      00000000 
- 40338 92dd 34       		.uleb128 0x34
- 40339 92de C10E0000 		.long	0xec1
- 40340 92e2 04       		.byte	0x4
- 40341 92e3 76       		.byte	0x76
- 40342 92e4 E0BD7F   		.sleb128 -8480
- 40343 92e7 31       		.uleb128 0x31
- 40344 92e8 CE0E0000 		.long	0xece
- 40345 92ec 00000000 		.quad	.LBB2180
- 40345      00000000 
- 40346 92f4 00000000 		.quad	.LBE2180
- 40346      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1058
-
-
- 40347 92fc 02       		.byte	0x2
- 40348 92fd 1F06     		.value	0x61f
- 40349 92ff 28930000 		.long	0x9328
- 40350 9303 32       		.uleb128 0x32
- 40351 9304 E00E0000 		.long	0xee0
- 40352 9308 03       		.byte	0x3
- 40353 9309 91       		.byte	0x91
- 40354 930a E06C     		.sleb128 -2464
- 40355 930c 33       		.uleb128 0x33
- 40356 930d 00000000 		.quad	.LBB2181
- 40356      00000000 
- 40357 9315 00000000 		.quad	.LBE2181
- 40357      00000000 
- 40358 931d 34       		.uleb128 0x34
- 40359 931e EC0E0000 		.long	0xeec
- 40360 9322 03       		.byte	0x3
- 40361 9323 91       		.byte	0x91
- 40362 9324 804B     		.sleb128 -6784
- 40363 9326 00       		.byte	0x0
- 40364 9327 00       		.byte	0x0
- 40365 9328 31       		.uleb128 0x31
- 40366 9329 CE0E0000 		.long	0xece
- 40367 932d 00000000 		.quad	.LBB2182
- 40367      00000000 
- 40368 9335 00000000 		.quad	.LBE2182
- 40368      00000000 
- 40369 933d 02       		.byte	0x2
- 40370 933e 2006     		.value	0x620
- 40371 9340 69930000 		.long	0x9369
- 40372 9344 32       		.uleb128 0x32
- 40373 9345 E00E0000 		.long	0xee0
- 40374 9349 03       		.byte	0x3
- 40375 934a 91       		.byte	0x91
- 40376 934b F06C     		.sleb128 -2448
- 40377 934d 33       		.uleb128 0x33
- 40378 934e 00000000 		.quad	.LBB2183
- 40378      00000000 
- 40379 9356 00000000 		.quad	.LBE2183
- 40379      00000000 
- 40380 935e 34       		.uleb128 0x34
- 40381 935f EC0E0000 		.long	0xeec
- 40382 9363 03       		.byte	0x3
- 40383 9364 91       		.byte	0x91
- 40384 9365 904B     		.sleb128 -6768
- 40385 9367 00       		.byte	0x0
- 40386 9368 00       		.byte	0x0
- 40387 9369 35       		.uleb128 0x35
- 40388 936a CE0E0000 		.long	0xece
- 40389 936e 00000000 		.quad	.LBB2184
- 40389      00000000 
- 40390 9376 00000000 		.quad	.LBE2184
- 40390      00000000 
- 40391 937e 02       		.byte	0x2
- 40392 937f 2106     		.value	0x621
- 40393 9381 32       		.uleb128 0x32
- 40394 9382 E00E0000 		.long	0xee0
- 40395 9386 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1059
-
-
- 40396 9387 91       		.byte	0x91
- 40397 9388 806D     		.sleb128 -2432
- 40398 938a 33       		.uleb128 0x33
- 40399 938b 00000000 		.quad	.LBB2185
- 40399      00000000 
- 40400 9393 00000000 		.quad	.LBE2185
- 40400      00000000 
- 40401 939b 34       		.uleb128 0x34
- 40402 939c EC0E0000 		.long	0xeec
- 40403 93a0 03       		.byte	0x3
- 40404 93a1 91       		.byte	0x91
- 40405 93a2 A04B     		.sleb128 -6752
- 40406 93a4 00       		.byte	0x0
- 40407 93a5 00       		.byte	0x0
- 40408 93a6 00       		.byte	0x0
- 40409 93a7 00       		.byte	0x0
- 40410 93a8 31       		.uleb128 0x31
- 40411 93a9 520E0000 		.long	0xe52
- 40412 93ad 00000000 		.quad	.LBB2186
- 40412      00000000 
- 40413 93b5 00000000 		.quad	.LBE2186
- 40413      00000000 
- 40414 93bd 02       		.byte	0x2
- 40415 93be 8D07     		.value	0x78d
- 40416 93c0 D7930000 		.long	0x93d7
- 40417 93c4 32       		.uleb128 0x32
- 40418 93c5 6D0E0000 		.long	0xe6d
- 40419 93c9 03       		.byte	0x3
- 40420 93ca 91       		.byte	0x91
- 40421 93cb 906D     		.sleb128 -2416
- 40422 93cd 32       		.uleb128 0x32
- 40423 93ce 630E0000 		.long	0xe63
- 40424 93d2 03       		.byte	0x3
- 40425 93d3 91       		.byte	0x91
- 40426 93d4 A06D     		.sleb128 -2400
- 40427 93d6 00       		.byte	0x0
- 40428 93d7 31       		.uleb128 0x31
- 40429 93d8 D10B0000 		.long	0xbd1
- 40430 93dc 00000000 		.quad	.LBB2188
- 40430      00000000 
- 40431 93e4 00000000 		.quad	.LBE2188
- 40431      00000000 
- 40432 93ec 02       		.byte	0x2
- 40433 93ed 8E07     		.value	0x78e
- 40434 93ef 7F980000 		.long	0x987f
- 40435 93f3 32       		.uleb128 0x32
- 40436 93f4 EF0B0000 		.long	0xbef
- 40437 93f8 03       		.byte	0x3
- 40438 93f9 91       		.byte	0x91
- 40439 93fa BC6D     		.sleb128 -2372
- 40440 93fc 32       		.uleb128 0x32
- 40441 93fd E30B0000 		.long	0xbe3
- 40442 9401 03       		.byte	0x3
- 40443 9402 91       		.byte	0x91
- 40444 9403 C06D     		.sleb128 -2368
- 40445 9405 33       		.uleb128 0x33
- 40446 9406 00000000 		.quad	.LBB2189
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1060
-
-
- 40446      00000000 
- 40447 940e 00000000 		.quad	.LBE2189
- 40447      00000000 
- 40448 9416 34       		.uleb128 0x34
- 40449 9417 FB0B0000 		.long	0xbfb
- 40450 941b 04       		.byte	0x4
- 40451 941c 76       		.byte	0x76
- 40452 941d 80BE7F   		.sleb128 -8448
- 40453 9420 34       		.uleb128 0x34
- 40454 9421 070C0000 		.long	0xc07
- 40455 9425 04       		.byte	0x4
- 40456 9426 76       		.byte	0x76
- 40457 9427 F0BD7F   		.sleb128 -8464
- 40458 942a 31       		.uleb128 0x31
- 40459 942b 500C0000 		.long	0xc50
- 40460 942f 00000000 		.quad	.LBB2190
- 40460      00000000 
- 40461 9437 00000000 		.quad	.LBE2190
- 40461      00000000 
- 40462 943f 02       		.byte	0x2
- 40463 9440 9106     		.value	0x691
- 40464 9442 7D940000 		.long	0x947d
- 40465 9446 32       		.uleb128 0x32
- 40466 9447 7A0C0000 		.long	0xc7a
- 40467 944b 03       		.byte	0x3
- 40468 944c 91       		.byte	0x91
- 40469 944d D86D     		.sleb128 -2344
- 40470 944f 32       		.uleb128 0x32
- 40471 9450 6E0C0000 		.long	0xc6e
- 40472 9454 03       		.byte	0x3
- 40473 9455 91       		.byte	0x91
- 40474 9456 DC6D     		.sleb128 -2340
- 40475 9458 32       		.uleb128 0x32
- 40476 9459 620C0000 		.long	0xc62
- 40477 945d 03       		.byte	0x3
- 40478 945e 91       		.byte	0x91
- 40479 945f E06D     		.sleb128 -2336
- 40480 9461 33       		.uleb128 0x33
- 40481 9462 00000000 		.quad	.LBB2191
- 40481      00000000 
- 40482 946a 00000000 		.quad	.LBE2191
- 40482      00000000 
- 40483 9472 34       		.uleb128 0x34
- 40484 9473 860C0000 		.long	0xc86
- 40485 9477 03       		.byte	0x3
- 40486 9478 91       		.byte	0x91
- 40487 9479 F04B     		.sleb128 -6672
- 40488 947b 00       		.byte	0x0
- 40489 947c 00       		.byte	0x0
- 40490 947d 31       		.uleb128 0x31
- 40491 947e 910C0000 		.long	0xc91
- 40492 9482 00000000 		.quad	.LBB2192
- 40492      00000000 
- 40493 948a 00000000 		.quad	.LBE2192
- 40493      00000000 
- 40494 9492 02       		.byte	0x2
- 40495 9493 9206     		.value	0x692
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1061
-
-
- 40496 9495 ED960000 		.long	0x96ed
- 40497 9499 32       		.uleb128 0x32
- 40498 949a A30C0000 		.long	0xca3
- 40499 949e 03       		.byte	0x3
- 40500 949f 91       		.byte	0x91
- 40501 94a0 F06D     		.sleb128 -2320
- 40502 94a2 35       		.uleb128 0x35
- 40503 94a3 B00C0000 		.long	0xcb0
- 40504 94a7 00000000 		.quad	.LBB2194
- 40504      00000000 
- 40505 94af 00000000 		.quad	.LBE2194
- 40505      00000000 
- 40506 94b7 02       		.byte	0x2
- 40507 94b8 7D03     		.value	0x37d
- 40508 94ba 32       		.uleb128 0x32
- 40509 94bb CE0C0000 		.long	0xcce
- 40510 94bf 03       		.byte	0x3
- 40511 94c0 91       		.byte	0x91
- 40512 94c1 886E     		.sleb128 -2296
- 40513 94c3 32       		.uleb128 0x32
- 40514 94c4 C20C0000 		.long	0xcc2
- 40515 94c8 03       		.byte	0x3
- 40516 94c9 91       		.byte	0x91
- 40517 94ca 906E     		.sleb128 -2288
- 40518 94cc 33       		.uleb128 0x33
- 40519 94cd 00000000 		.quad	.LBB2195
- 40519      00000000 
- 40520 94d5 00000000 		.quad	.LBE2195
- 40520      00000000 
- 40521 94dd 34       		.uleb128 0x34
- 40522 94de DA0C0000 		.long	0xcda
- 40523 94e2 03       		.byte	0x3
- 40524 94e3 91       		.byte	0x91
- 40525 94e4 E06E     		.sleb128 -2208
- 40526 94e6 34       		.uleb128 0x34
- 40527 94e7 E50C0000 		.long	0xce5
- 40528 94eb 03       		.byte	0x3
- 40529 94ec 91       		.byte	0x91
- 40530 94ed D06E     		.sleb128 -2224
- 40531 94ef 34       		.uleb128 0x34
- 40532 94f0 F00C0000 		.long	0xcf0
- 40533 94f4 03       		.byte	0x3
- 40534 94f5 91       		.byte	0x91
- 40535 94f6 C06E     		.sleb128 -2240
- 40536 94f8 34       		.uleb128 0x34
- 40537 94f9 FC0C0000 		.long	0xcfc
- 40538 94fd 03       		.byte	0x3
- 40539 94fe 91       		.byte	0x91
- 40540 94ff B06E     		.sleb128 -2256
- 40541 9501 34       		.uleb128 0x34
- 40542 9502 080D0000 		.long	0xd08
- 40543 9506 03       		.byte	0x3
- 40544 9507 91       		.byte	0x91
- 40545 9508 AC6E     		.sleb128 -2260
- 40546 950a 31       		.uleb128 0x31
- 40547 950b 1F0D0000 		.long	0xd1f
- 40548 950f 00000000 		.quad	.LBB2196
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1062
-
-
- 40548      00000000 
- 40549 9517 00000000 		.quad	.LBE2196
- 40549      00000000 
- 40550 951f 02       		.byte	0x2
- 40551 9520 5603     		.value	0x356
- 40552 9522 39950000 		.long	0x9539
- 40553 9526 32       		.uleb128 0x32
- 40554 9527 3A0D0000 		.long	0xd3a
- 40555 952b 03       		.byte	0x3
- 40556 952c 91       		.byte	0x91
- 40557 952d F06E     		.sleb128 -2192
- 40558 952f 32       		.uleb128 0x32
- 40559 9530 300D0000 		.long	0xd30
- 40560 9534 03       		.byte	0x3
- 40561 9535 91       		.byte	0x91
- 40562 9536 806F     		.sleb128 -2176
- 40563 9538 00       		.byte	0x0
- 40564 9539 31       		.uleb128 0x31
- 40565 953a 450D0000 		.long	0xd45
- 40566 953e 00000000 		.quad	.LBB2198
- 40566      00000000 
- 40567 9546 00000000 		.quad	.LBE2198
- 40567      00000000 
- 40568 954e 02       		.byte	0x2
- 40569 954f 5E03     		.value	0x35e
- 40570 9551 68950000 		.long	0x9568
- 40571 9555 32       		.uleb128 0x32
- 40572 9556 620D0000 		.long	0xd62
- 40573 955a 03       		.byte	0x3
- 40574 955b 91       		.byte	0x91
- 40575 955c 906F     		.sleb128 -2160
- 40576 955e 32       		.uleb128 0x32
- 40577 955f 570D0000 		.long	0xd57
- 40578 9563 03       		.byte	0x3
- 40579 9564 91       		.byte	0x91
- 40580 9565 A06F     		.sleb128 -2144
- 40581 9567 00       		.byte	0x0
- 40582 9568 31       		.uleb128 0x31
- 40583 9569 6E0D0000 		.long	0xd6e
- 40584 956d 00000000 		.quad	.LBB2200
- 40584      00000000 
- 40585 9575 00000000 		.quad	.LBE2200
- 40585      00000000 
- 40586 957d 02       		.byte	0x2
- 40587 957e 6403     		.value	0x364
- 40588 9580 CD950000 		.long	0x95cd
- 40589 9584 32       		.uleb128 0x32
- 40590 9585 8C0D0000 		.long	0xd8c
- 40591 9589 03       		.byte	0x3
- 40592 958a 91       		.byte	0x91
- 40593 958b B06F     		.sleb128 -2128
- 40594 958d 32       		.uleb128 0x32
- 40595 958e 800D0000 		.long	0xd80
- 40596 9592 03       		.byte	0x3
- 40597 9593 91       		.byte	0x91
- 40598 9594 C06F     		.sleb128 -2112
- 40599 9596 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1063
-
-
- 40600 9597 00000000 		.quad	.LBB2201
- 40600      00000000 
- 40601 959f 00000000 		.quad	.LBE2201
- 40601      00000000 
- 40602 95a7 34       		.uleb128 0x34
- 40603 95a8 980D0000 		.long	0xd98
- 40604 95ac 03       		.byte	0x3
- 40605 95ad 91       		.byte	0x91
- 40606 95ae A04C     		.sleb128 -6624
- 40607 95b0 34       		.uleb128 0x34
- 40608 95b1 A40D0000 		.long	0xda4
- 40609 95b5 03       		.byte	0x3
- 40610 95b6 91       		.byte	0x91
- 40611 95b7 904C     		.sleb128 -6640
- 40612 95b9 34       		.uleb128 0x34
- 40613 95ba AF0D0000 		.long	0xdaf
- 40614 95be 03       		.byte	0x3
- 40615 95bf 91       		.byte	0x91
- 40616 95c0 804C     		.sleb128 -6656
- 40617 95c2 34       		.uleb128 0x34
- 40618 95c3 BB0D0000 		.long	0xdbb
- 40619 95c7 03       		.byte	0x3
- 40620 95c8 91       		.byte	0x91
- 40621 95c9 DC6F     		.sleb128 -2084
- 40622 95cb 00       		.byte	0x0
- 40623 95cc 00       		.byte	0x0
- 40624 95cd 31       		.uleb128 0x31
- 40625 95ce C70D0000 		.long	0xdc7
- 40626 95d2 00000000 		.quad	.LBB2202
- 40626      00000000 
- 40627 95da 00000000 		.quad	.LBE2202
- 40627      00000000 
- 40628 95e2 02       		.byte	0x2
- 40629 95e3 6603     		.value	0x366
- 40630 95e5 FC950000 		.long	0x95fc
- 40631 95e9 32       		.uleb128 0x32
- 40632 95ea E20D0000 		.long	0xde2
- 40633 95ee 03       		.byte	0x3
- 40634 95ef 91       		.byte	0x91
- 40635 95f0 E06F     		.sleb128 -2080
- 40636 95f2 32       		.uleb128 0x32
- 40637 95f3 D80D0000 		.long	0xdd8
- 40638 95f7 03       		.byte	0x3
- 40639 95f8 91       		.byte	0x91
- 40640 95f9 F06F     		.sleb128 -2064
- 40641 95fb 00       		.byte	0x0
- 40642 95fc 31       		.uleb128 0x31
- 40643 95fd 6E0D0000 		.long	0xd6e
- 40644 9601 00000000 		.quad	.LBB2204
- 40644      00000000 
- 40645 9609 00000000 		.quad	.LBE2204
- 40645      00000000 
- 40646 9611 02       		.byte	0x2
- 40647 9612 6803     		.value	0x368
- 40648 9614 61960000 		.long	0x9661
- 40649 9618 32       		.uleb128 0x32
- 40650 9619 8C0D0000 		.long	0xd8c
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1064
-
-
- 40651 961d 03       		.byte	0x3
- 40652 961e 91       		.byte	0x91
- 40653 961f 8070     		.sleb128 -2048
- 40654 9621 32       		.uleb128 0x32
- 40655 9622 800D0000 		.long	0xd80
- 40656 9626 03       		.byte	0x3
- 40657 9627 91       		.byte	0x91
- 40658 9628 9070     		.sleb128 -2032
- 40659 962a 33       		.uleb128 0x33
- 40660 962b 00000000 		.quad	.LBB2205
- 40660      00000000 
- 40661 9633 00000000 		.quad	.LBE2205
- 40661      00000000 
- 40662 963b 34       		.uleb128 0x34
- 40663 963c 980D0000 		.long	0xd98
- 40664 9640 03       		.byte	0x3
- 40665 9641 91       		.byte	0x91
- 40666 9642 D04C     		.sleb128 -6576
- 40667 9644 34       		.uleb128 0x34
- 40668 9645 A40D0000 		.long	0xda4
- 40669 9649 03       		.byte	0x3
- 40670 964a 91       		.byte	0x91
- 40671 964b C04C     		.sleb128 -6592
- 40672 964d 34       		.uleb128 0x34
- 40673 964e AF0D0000 		.long	0xdaf
- 40674 9652 03       		.byte	0x3
- 40675 9653 91       		.byte	0x91
- 40676 9654 B04C     		.sleb128 -6608
- 40677 9656 34       		.uleb128 0x34
- 40678 9657 BB0D0000 		.long	0xdbb
- 40679 965b 03       		.byte	0x3
- 40680 965c 91       		.byte	0x91
- 40681 965d AC70     		.sleb128 -2004
- 40682 965f 00       		.byte	0x0
- 40683 9660 00       		.byte	0x0
- 40684 9661 31       		.uleb128 0x31
- 40685 9662 C70D0000 		.long	0xdc7
- 40686 9666 00000000 		.quad	.LBB2206
- 40686      00000000 
- 40687 966e 00000000 		.quad	.LBE2206
- 40687      00000000 
- 40688 9676 02       		.byte	0x2
- 40689 9677 6A03     		.value	0x36a
- 40690 9679 90960000 		.long	0x9690
- 40691 967d 32       		.uleb128 0x32
- 40692 967e E20D0000 		.long	0xde2
- 40693 9682 03       		.byte	0x3
- 40694 9683 91       		.byte	0x91
- 40695 9684 B070     		.sleb128 -2000
- 40696 9686 32       		.uleb128 0x32
- 40697 9687 D80D0000 		.long	0xdd8
- 40698 968b 03       		.byte	0x3
- 40699 968c 91       		.byte	0x91
- 40700 968d C070     		.sleb128 -1984
- 40701 968f 00       		.byte	0x0
- 40702 9690 31       		.uleb128 0x31
- 40703 9691 ED0D0000 		.long	0xded
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1065
-
-
- 40704 9695 00000000 		.quad	.LBB2208
- 40704      00000000 
- 40705 969d 00000000 		.quad	.LBE2208
- 40705      00000000 
- 40706 96a5 02       		.byte	0x2
- 40707 96a6 6C03     		.value	0x36c
- 40708 96a8 BF960000 		.long	0x96bf
- 40709 96ac 32       		.uleb128 0x32
- 40710 96ad 0A0E0000 		.long	0xe0a
- 40711 96b1 03       		.byte	0x3
- 40712 96b2 91       		.byte	0x91
- 40713 96b3 D070     		.sleb128 -1968
- 40714 96b5 32       		.uleb128 0x32
- 40715 96b6 FF0D0000 		.long	0xdff
- 40716 96ba 03       		.byte	0x3
- 40717 96bb 91       		.byte	0x91
- 40718 96bc E070     		.sleb128 -1952
- 40719 96be 00       		.byte	0x0
- 40720 96bf 35       		.uleb128 0x35
- 40721 96c0 1F0D0000 		.long	0xd1f
- 40722 96c4 00000000 		.quad	.LBB2210
- 40722      00000000 
- 40723 96cc 00000000 		.quad	.LBE2210
- 40723      00000000 
- 40724 96d4 02       		.byte	0x2
- 40725 96d5 6E03     		.value	0x36e
- 40726 96d7 32       		.uleb128 0x32
- 40727 96d8 3A0D0000 		.long	0xd3a
- 40728 96dc 03       		.byte	0x3
- 40729 96dd 91       		.byte	0x91
- 40730 96de F070     		.sleb128 -1936
- 40731 96e0 32       		.uleb128 0x32
- 40732 96e1 300D0000 		.long	0xd30
- 40733 96e5 03       		.byte	0x3
- 40734 96e6 91       		.byte	0x91
- 40735 96e7 8071     		.sleb128 -1920
- 40736 96e9 00       		.byte	0x0
- 40737 96ea 00       		.byte	0x0
- 40738 96eb 00       		.byte	0x0
- 40739 96ec 00       		.byte	0x0
- 40740 96ed 36       		.uleb128 0x36
- 40741 96ee 00000000 		.quad	.LBB2212
- 40741      00000000 
- 40742 96f6 00000000 		.quad	.LBE2212
- 40742      00000000 
- 40743 96fe 0C970000 		.long	0x970c
- 40744 9702 34       		.uleb128 0x34
- 40745 9703 180C0000 		.long	0xc18
- 40746 9707 03       		.byte	0x3
- 40747 9708 91       		.byte	0x91
- 40748 9709 E04B     		.sleb128 -6688
- 40749 970b 00       		.byte	0x0
- 40750 970c 31       		.uleb128 0x31
- 40751 970d 160E0000 		.long	0xe16
- 40752 9711 00000000 		.quad	.LBB2213
- 40752      00000000 
- 40753 9719 00000000 		.quad	.LBE2213
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1066
-
-
- 40753      00000000 
- 40754 9721 02       		.byte	0x2
- 40755 9722 9406     		.value	0x694
- 40756 9724 B4970000 		.long	0x97b4
- 40757 9728 32       		.uleb128 0x32
- 40758 9729 280E0000 		.long	0xe28
- 40759 972d 03       		.byte	0x3
- 40760 972e 91       		.byte	0x91
- 40761 972f 9071     		.sleb128 -1904
- 40762 9731 33       		.uleb128 0x33
- 40763 9732 00000000 		.quad	.LBB2214
- 40763      00000000 
- 40764 973a 00000000 		.quad	.LBE2214
- 40764      00000000 
- 40765 9742 34       		.uleb128 0x34
- 40766 9743 340E0000 		.long	0xe34
- 40767 9747 09       		.byte	0x9
- 40768 9748 03       		.byte	0x3
- 40769 9749 00000000 		.quad	ShiftRowTable.6768
- 40769      00000000 
- 40770 9751 35       		.uleb128 0x35
- 40771 9752 6E0D0000 		.long	0xd6e
- 40772 9756 00000000 		.quad	.LBB2215
- 40772      00000000 
- 40773 975e 00000000 		.quad	.LBE2215
- 40773      00000000 
- 40774 9766 02       		.byte	0x2
- 40775 9767 9B02     		.value	0x29b
- 40776 9769 32       		.uleb128 0x32
- 40777 976a 8C0D0000 		.long	0xd8c
- 40778 976e 03       		.byte	0x3
- 40779 976f 91       		.byte	0x91
- 40780 9770 A071     		.sleb128 -1888
- 40781 9772 32       		.uleb128 0x32
- 40782 9773 800D0000 		.long	0xd80
- 40783 9777 03       		.byte	0x3
- 40784 9778 91       		.byte	0x91
- 40785 9779 B071     		.sleb128 -1872
- 40786 977b 33       		.uleb128 0x33
- 40787 977c 00000000 		.quad	.LBB2216
- 40787      00000000 
- 40788 9784 00000000 		.quad	.LBE2216
- 40788      00000000 
- 40789 978c 34       		.uleb128 0x34
- 40790 978d 980D0000 		.long	0xd98
- 40791 9791 03       		.byte	0x3
- 40792 9792 91       		.byte	0x91
- 40793 9793 804D     		.sleb128 -6528
- 40794 9795 34       		.uleb128 0x34
- 40795 9796 A40D0000 		.long	0xda4
- 40796 979a 03       		.byte	0x3
- 40797 979b 91       		.byte	0x91
- 40798 979c F04C     		.sleb128 -6544
- 40799 979e 34       		.uleb128 0x34
- 40800 979f AF0D0000 		.long	0xdaf
- 40801 97a3 03       		.byte	0x3
- 40802 97a4 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1067
-
-
- 40803 97a5 E04C     		.sleb128 -6560
- 40804 97a7 34       		.uleb128 0x34
- 40805 97a8 BB0D0000 		.long	0xdbb
- 40806 97ac 03       		.byte	0x3
- 40807 97ad 91       		.byte	0x91
- 40808 97ae CC71     		.sleb128 -1844
- 40809 97b0 00       		.byte	0x0
- 40810 97b1 00       		.byte	0x0
- 40811 97b2 00       		.byte	0x0
- 40812 97b3 00       		.byte	0x0
- 40813 97b4 36       		.uleb128 0x36
- 40814 97b5 00000000 		.quad	.LBB2217
- 40814      00000000 
- 40815 97bd 00000000 		.quad	.LBE2217
- 40815      00000000 
- 40816 97c5 D3970000 		.long	0x97d3
- 40817 97c9 34       		.uleb128 0x34
- 40818 97ca 280C0000 		.long	0xc28
- 40819 97ce 03       		.byte	0x3
- 40820 97cf 91       		.byte	0x91
- 40821 97d0 D04B     		.sleb128 -6704
- 40822 97d2 00       		.byte	0x0
- 40823 97d3 31       		.uleb128 0x31
- 40824 97d4 520E0000 		.long	0xe52
- 40825 97d8 00000000 		.quad	.LBB2218
- 40825      00000000 
- 40826 97e0 00000000 		.quad	.LBE2218
- 40826      00000000 
- 40827 97e8 02       		.byte	0x2
- 40828 97e9 9606     		.value	0x696
- 40829 97eb 02980000 		.long	0x9802
- 40830 97ef 32       		.uleb128 0x32
- 40831 97f0 6D0E0000 		.long	0xe6d
- 40832 97f4 03       		.byte	0x3
- 40833 97f5 91       		.byte	0x91
- 40834 97f6 D071     		.sleb128 -1840
- 40835 97f8 32       		.uleb128 0x32
- 40836 97f9 630E0000 		.long	0xe63
- 40837 97fd 03       		.byte	0x3
- 40838 97fe 91       		.byte	0x91
- 40839 97ff E071     		.sleb128 -1824
- 40840 9801 00       		.byte	0x0
- 40841 9802 36       		.uleb128 0x36
- 40842 9803 00000000 		.quad	.LBB2220
- 40842      00000000 
- 40843 980b 00000000 		.quad	.LBE2220
- 40843      00000000 
- 40844 9813 21980000 		.long	0x9821
- 40845 9817 34       		.uleb128 0x34
- 40846 9818 380C0000 		.long	0xc38
- 40847 981c 03       		.byte	0x3
- 40848 981d 91       		.byte	0x91
- 40849 981e C04B     		.sleb128 -6720
- 40850 9820 00       		.byte	0x0
- 40851 9821 31       		.uleb128 0x31
- 40852 9822 780E0000 		.long	0xe78
- 40853 9826 00000000 		.quad	.LBB2221
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1068
-
-
- 40853      00000000 
- 40854 982e 00000000 		.quad	.LBE2221
- 40854      00000000 
- 40855 9836 02       		.byte	0x2
- 40856 9837 9806     		.value	0x698
- 40857 9839 62980000 		.long	0x9862
- 40858 983d 32       		.uleb128 0x32
- 40859 983e 8A0E0000 		.long	0xe8a
- 40860 9842 03       		.byte	0x3
- 40861 9843 91       		.byte	0x91
- 40862 9844 F071     		.sleb128 -1808
- 40863 9846 33       		.uleb128 0x33
- 40864 9847 00000000 		.quad	.LBB2222
- 40864      00000000 
- 40865 984f 00000000 		.quad	.LBE2222
- 40865      00000000 
- 40866 9857 34       		.uleb128 0x34
- 40867 9858 960E0000 		.long	0xe96
- 40868 985c 03       		.byte	0x3
- 40869 985d 91       		.byte	0x91
- 40870 985e 904D     		.sleb128 -6512
- 40871 9860 00       		.byte	0x0
- 40872 9861 00       		.byte	0x0
- 40873 9862 33       		.uleb128 0x33
- 40874 9863 00000000 		.quad	.LBB2223
- 40874      00000000 
- 40875 986b 00000000 		.quad	.LBE2223
- 40875      00000000 
- 40876 9873 34       		.uleb128 0x34
- 40877 9874 440C0000 		.long	0xc44
- 40878 9878 03       		.byte	0x3
- 40879 9879 91       		.byte	0x91
- 40880 987a B04B     		.sleb128 -6736
- 40881 987c 00       		.byte	0x0
- 40882 987d 00       		.byte	0x0
- 40883 987e 00       		.byte	0x0
- 40884 987f 31       		.uleb128 0x31
- 40885 9880 A30E0000 		.long	0xea3
- 40886 9884 00000000 		.quad	.LBB2224
- 40886      00000000 
- 40887 988c 00000000 		.quad	.LBE2224
- 40887      00000000 
- 40888 9894 02       		.byte	0x2
- 40889 9895 8E07     		.value	0x78e
- 40890 9897 80990000 		.long	0x9980
- 40891 989b 32       		.uleb128 0x32
- 40892 989c B50E0000 		.long	0xeb5
- 40893 98a0 03       		.byte	0x3
- 40894 98a1 91       		.byte	0x91
- 40895 98a2 8072     		.sleb128 -1792
- 40896 98a4 33       		.uleb128 0x33
- 40897 98a5 00000000 		.quad	.LBB2225
- 40897      00000000 
- 40898 98ad 00000000 		.quad	.LBE2225
- 40898      00000000 
- 40899 98b5 34       		.uleb128 0x34
- 40900 98b6 C10E0000 		.long	0xec1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1069
-
-
- 40901 98ba 04       		.byte	0x4
- 40902 98bb 76       		.byte	0x76
- 40903 98bc A0BE7F   		.sleb128 -8416
- 40904 98bf 31       		.uleb128 0x31
- 40905 98c0 CE0E0000 		.long	0xece
- 40906 98c4 00000000 		.quad	.LBB2226
- 40906      00000000 
- 40907 98cc 00000000 		.quad	.LBE2226
- 40907      00000000 
- 40908 98d4 02       		.byte	0x2
- 40909 98d5 1F06     		.value	0x61f
- 40910 98d7 00990000 		.long	0x9900
- 40911 98db 32       		.uleb128 0x32
- 40912 98dc E00E0000 		.long	0xee0
- 40913 98e0 03       		.byte	0x3
- 40914 98e1 91       		.byte	0x91
- 40915 98e2 9072     		.sleb128 -1776
- 40916 98e4 33       		.uleb128 0x33
- 40917 98e5 00000000 		.quad	.LBB2227
- 40917      00000000 
- 40918 98ed 00000000 		.quad	.LBE2227
- 40918      00000000 
- 40919 98f5 34       		.uleb128 0x34
- 40920 98f6 EC0E0000 		.long	0xeec
- 40921 98fa 03       		.byte	0x3
- 40922 98fb 91       		.byte	0x91
- 40923 98fc A04D     		.sleb128 -6496
- 40924 98fe 00       		.byte	0x0
- 40925 98ff 00       		.byte	0x0
- 40926 9900 31       		.uleb128 0x31
- 40927 9901 CE0E0000 		.long	0xece
- 40928 9905 00000000 		.quad	.LBB2228
- 40928      00000000 
- 40929 990d 00000000 		.quad	.LBE2228
- 40929      00000000 
- 40930 9915 02       		.byte	0x2
- 40931 9916 2006     		.value	0x620
- 40932 9918 41990000 		.long	0x9941
- 40933 991c 32       		.uleb128 0x32
- 40934 991d E00E0000 		.long	0xee0
- 40935 9921 03       		.byte	0x3
- 40936 9922 91       		.byte	0x91
- 40937 9923 A072     		.sleb128 -1760
- 40938 9925 33       		.uleb128 0x33
- 40939 9926 00000000 		.quad	.LBB2229
- 40939      00000000 
- 40940 992e 00000000 		.quad	.LBE2229
- 40940      00000000 
- 40941 9936 34       		.uleb128 0x34
- 40942 9937 EC0E0000 		.long	0xeec
- 40943 993b 03       		.byte	0x3
- 40944 993c 91       		.byte	0x91
- 40945 993d B04D     		.sleb128 -6480
- 40946 993f 00       		.byte	0x0
- 40947 9940 00       		.byte	0x0
- 40948 9941 35       		.uleb128 0x35
- 40949 9942 CE0E0000 		.long	0xece
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1070
-
-
- 40950 9946 00000000 		.quad	.LBB2230
- 40950      00000000 
- 40951 994e 00000000 		.quad	.LBE2230
- 40951      00000000 
- 40952 9956 02       		.byte	0x2
- 40953 9957 2106     		.value	0x621
- 40954 9959 32       		.uleb128 0x32
- 40955 995a E00E0000 		.long	0xee0
- 40956 995e 03       		.byte	0x3
- 40957 995f 91       		.byte	0x91
- 40958 9960 B072     		.sleb128 -1744
- 40959 9962 33       		.uleb128 0x33
- 40960 9963 00000000 		.quad	.LBB2231
- 40960      00000000 
- 40961 996b 00000000 		.quad	.LBE2231
- 40961      00000000 
- 40962 9973 34       		.uleb128 0x34
- 40963 9974 EC0E0000 		.long	0xeec
- 40964 9978 03       		.byte	0x3
- 40965 9979 91       		.byte	0x91
- 40966 997a C04D     		.sleb128 -6464
- 40967 997c 00       		.byte	0x0
- 40968 997d 00       		.byte	0x0
- 40969 997e 00       		.byte	0x0
- 40970 997f 00       		.byte	0x0
- 40971 9980 31       		.uleb128 0x31
- 40972 9981 520E0000 		.long	0xe52
- 40973 9985 00000000 		.quad	.LBB2232
- 40973      00000000 
- 40974 998d 00000000 		.quad	.LBE2232
- 40974      00000000 
- 40975 9995 02       		.byte	0x2
- 40976 9996 8E07     		.value	0x78e
- 40977 9998 AF990000 		.long	0x99af
- 40978 999c 32       		.uleb128 0x32
- 40979 999d 6D0E0000 		.long	0xe6d
- 40980 99a1 03       		.byte	0x3
- 40981 99a2 91       		.byte	0x91
- 40982 99a3 C072     		.sleb128 -1728
- 40983 99a5 32       		.uleb128 0x32
- 40984 99a6 630E0000 		.long	0xe63
- 40985 99aa 03       		.byte	0x3
- 40986 99ab 91       		.byte	0x91
- 40987 99ac D072     		.sleb128 -1712
- 40988 99ae 00       		.byte	0x0
- 40989 99af 31       		.uleb128 0x31
- 40990 99b0 4E740000 		.long	0x744e
- 40991 99b4 00000000 		.quad	.LBB2234
- 40991      00000000 
- 40992 99bc 00000000 		.quad	.LBE2234
- 40992      00000000 
- 40993 99c4 02       		.byte	0x2
- 40994 99c5 8F07     		.value	0x78f
- 40995 99c7 3F9A0000 		.long	0x9a3f
- 40996 99cb 32       		.uleb128 0x32
- 40997 99cc 60740000 		.long	0x7460
- 40998 99d0 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1071
-
-
- 40999 99d1 91       		.byte	0x91
- 41000 99d2 E072     		.sleb128 -1696
- 41001 99d4 33       		.uleb128 0x33
- 41002 99d5 00000000 		.quad	.LBB2235
- 41002      00000000 
- 41003 99dd 00000000 		.quad	.LBE2235
- 41003      00000000 
- 41004 99e5 34       		.uleb128 0x34
- 41005 99e6 6C740000 		.long	0x746c
- 41006 99ea 03       		.byte	0x3
- 41007 99eb 91       		.byte	0x91
- 41008 99ec E04D     		.sleb128 -6432
- 41009 99ee 34       		.uleb128 0x34
- 41010 99ef 76740000 		.long	0x7476
- 41011 99f3 03       		.byte	0x3
- 41012 99f4 91       		.byte	0x91
- 41013 99f5 F472     		.sleb128 -1676
- 41014 99f7 35       		.uleb128 0x35
- 41015 99f8 12490000 		.long	0x4912
- 41016 99fc 00000000 		.quad	.LBB2236
- 41016      00000000 
- 41017 9a04 00000000 		.quad	.LBE2236
- 41017      00000000 
- 41018 9a0c 02       		.byte	0x2
- 41019 9a0d 7906     		.value	0x679
- 41020 9a0f 32       		.uleb128 0x32
- 41021 9a10 24490000 		.long	0x4924
- 41022 9a14 03       		.byte	0x3
- 41023 9a15 91       		.byte	0x91
- 41024 9a16 F872     		.sleb128 -1672
- 41025 9a18 33       		.uleb128 0x33
- 41026 9a19 00000000 		.quad	.LBB2237
- 41026      00000000 
- 41027 9a21 00000000 		.quad	.LBE2237
- 41027      00000000 
- 41028 9a29 34       		.uleb128 0x34
- 41029 9a2a 2E490000 		.long	0x492e
- 41030 9a2e 03       		.byte	0x3
- 41031 9a2f 91       		.byte	0x91
- 41032 9a30 D04D     		.sleb128 -6448
- 41033 9a32 34       		.uleb128 0x34
- 41034 9a33 3A490000 		.long	0x493a
- 41035 9a37 03       		.byte	0x3
- 41036 9a38 91       		.byte	0x91
- 41037 9a39 FC72     		.sleb128 -1668
- 41038 9a3b 00       		.byte	0x0
- 41039 9a3c 00       		.byte	0x0
- 41040 9a3d 00       		.byte	0x0
- 41041 9a3e 00       		.byte	0x0
- 41042 9a3f 31       		.uleb128 0x31
- 41043 9a40 A30E0000 		.long	0xea3
- 41044 9a44 00000000 		.quad	.LBB2238
- 41044      00000000 
- 41045 9a4c 00000000 		.quad	.LBE2238
- 41045      00000000 
- 41046 9a54 02       		.byte	0x2
- 41047 9a55 8F07     		.value	0x78f
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1072
-
-
- 41048 9a57 409B0000 		.long	0x9b40
- 41049 9a5b 32       		.uleb128 0x32
- 41050 9a5c B50E0000 		.long	0xeb5
- 41051 9a60 03       		.byte	0x3
- 41052 9a61 91       		.byte	0x91
- 41053 9a62 8073     		.sleb128 -1664
- 41054 9a64 33       		.uleb128 0x33
- 41055 9a65 00000000 		.quad	.LBB2239
- 41055      00000000 
- 41056 9a6d 00000000 		.quad	.LBE2239
- 41056      00000000 
- 41057 9a75 34       		.uleb128 0x34
- 41058 9a76 C10E0000 		.long	0xec1
- 41059 9a7a 04       		.byte	0x4
- 41060 9a7b 76       		.byte	0x76
- 41061 9a7c B0BE7F   		.sleb128 -8400
- 41062 9a7f 31       		.uleb128 0x31
- 41063 9a80 CE0E0000 		.long	0xece
- 41064 9a84 00000000 		.quad	.LBB2240
- 41064      00000000 
- 41065 9a8c 00000000 		.quad	.LBE2240
- 41065      00000000 
- 41066 9a94 02       		.byte	0x2
- 41067 9a95 1F06     		.value	0x61f
- 41068 9a97 C09A0000 		.long	0x9ac0
- 41069 9a9b 32       		.uleb128 0x32
- 41070 9a9c E00E0000 		.long	0xee0
- 41071 9aa0 03       		.byte	0x3
- 41072 9aa1 91       		.byte	0x91
- 41073 9aa2 9073     		.sleb128 -1648
- 41074 9aa4 33       		.uleb128 0x33
- 41075 9aa5 00000000 		.quad	.LBB2241
- 41075      00000000 
- 41076 9aad 00000000 		.quad	.LBE2241
- 41076      00000000 
- 41077 9ab5 34       		.uleb128 0x34
- 41078 9ab6 EC0E0000 		.long	0xeec
- 41079 9aba 03       		.byte	0x3
- 41080 9abb 91       		.byte	0x91
- 41081 9abc F04D     		.sleb128 -6416
- 41082 9abe 00       		.byte	0x0
- 41083 9abf 00       		.byte	0x0
- 41084 9ac0 31       		.uleb128 0x31
- 41085 9ac1 CE0E0000 		.long	0xece
- 41086 9ac5 00000000 		.quad	.LBB2242
- 41086      00000000 
- 41087 9acd 00000000 		.quad	.LBE2242
- 41087      00000000 
- 41088 9ad5 02       		.byte	0x2
- 41089 9ad6 2006     		.value	0x620
- 41090 9ad8 019B0000 		.long	0x9b01
- 41091 9adc 32       		.uleb128 0x32
- 41092 9add E00E0000 		.long	0xee0
- 41093 9ae1 03       		.byte	0x3
- 41094 9ae2 91       		.byte	0x91
- 41095 9ae3 A073     		.sleb128 -1632
- 41096 9ae5 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1073
-
-
- 41097 9ae6 00000000 		.quad	.LBB2243
- 41097      00000000 
- 41098 9aee 00000000 		.quad	.LBE2243
- 41098      00000000 
- 41099 9af6 34       		.uleb128 0x34
- 41100 9af7 EC0E0000 		.long	0xeec
- 41101 9afb 03       		.byte	0x3
- 41102 9afc 91       		.byte	0x91
- 41103 9afd 804E     		.sleb128 -6400
- 41104 9aff 00       		.byte	0x0
- 41105 9b00 00       		.byte	0x0
- 41106 9b01 35       		.uleb128 0x35
- 41107 9b02 CE0E0000 		.long	0xece
- 41108 9b06 00000000 		.quad	.LBB2244
- 41108      00000000 
- 41109 9b0e 00000000 		.quad	.LBE2244
- 41109      00000000 
- 41110 9b16 02       		.byte	0x2
- 41111 9b17 2106     		.value	0x621
- 41112 9b19 32       		.uleb128 0x32
- 41113 9b1a E00E0000 		.long	0xee0
- 41114 9b1e 03       		.byte	0x3
- 41115 9b1f 91       		.byte	0x91
- 41116 9b20 B073     		.sleb128 -1616
- 41117 9b22 33       		.uleb128 0x33
- 41118 9b23 00000000 		.quad	.LBB2245
- 41118      00000000 
- 41119 9b2b 00000000 		.quad	.LBE2245
- 41119      00000000 
- 41120 9b33 34       		.uleb128 0x34
- 41121 9b34 EC0E0000 		.long	0xeec
- 41122 9b38 03       		.byte	0x3
- 41123 9b39 91       		.byte	0x91
- 41124 9b3a 904E     		.sleb128 -6384
- 41125 9b3c 00       		.byte	0x0
- 41126 9b3d 00       		.byte	0x0
- 41127 9b3e 00       		.byte	0x0
- 41128 9b3f 00       		.byte	0x0
- 41129 9b40 31       		.uleb128 0x31
- 41130 9b41 520E0000 		.long	0xe52
- 41131 9b45 00000000 		.quad	.LBB2246
- 41131      00000000 
- 41132 9b4d 00000000 		.quad	.LBE2246
- 41132      00000000 
- 41133 9b55 02       		.byte	0x2
- 41134 9b56 8F07     		.value	0x78f
- 41135 9b58 6F9B0000 		.long	0x9b6f
- 41136 9b5c 32       		.uleb128 0x32
- 41137 9b5d 6D0E0000 		.long	0xe6d
- 41138 9b61 03       		.byte	0x3
- 41139 9b62 91       		.byte	0x91
- 41140 9b63 C073     		.sleb128 -1600
- 41141 9b65 32       		.uleb128 0x32
- 41142 9b66 630E0000 		.long	0xe63
- 41143 9b6a 03       		.byte	0x3
- 41144 9b6b 91       		.byte	0x91
- 41145 9b6c D073     		.sleb128 -1584
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1074
-
-
- 41146 9b6e 00       		.byte	0x0
- 41147 9b6f 31       		.uleb128 0x31
- 41148 9b70 D10B0000 		.long	0xbd1
- 41149 9b74 00000000 		.quad	.LBB2248
- 41149      00000000 
- 41150 9b7c 00000000 		.quad	.LBE2248
- 41150      00000000 
- 41151 9b84 02       		.byte	0x2
- 41152 9b85 9007     		.value	0x790
- 41153 9b87 17A00000 		.long	0xa017
- 41154 9b8b 32       		.uleb128 0x32
- 41155 9b8c EF0B0000 		.long	0xbef
- 41156 9b90 03       		.byte	0x3
- 41157 9b91 91       		.byte	0x91
- 41158 9b92 EC73     		.sleb128 -1556
- 41159 9b94 32       		.uleb128 0x32
- 41160 9b95 E30B0000 		.long	0xbe3
- 41161 9b99 03       		.byte	0x3
- 41162 9b9a 91       		.byte	0x91
- 41163 9b9b F073     		.sleb128 -1552
- 41164 9b9d 33       		.uleb128 0x33
- 41165 9b9e 00000000 		.quad	.LBB2249
- 41165      00000000 
- 41166 9ba6 00000000 		.quad	.LBE2249
- 41166      00000000 
- 41167 9bae 34       		.uleb128 0x34
- 41168 9baf FB0B0000 		.long	0xbfb
- 41169 9bb3 04       		.byte	0x4
- 41170 9bb4 76       		.byte	0x76
- 41171 9bb5 D0BE7F   		.sleb128 -8368
- 41172 9bb8 34       		.uleb128 0x34
- 41173 9bb9 070C0000 		.long	0xc07
- 41174 9bbd 04       		.byte	0x4
- 41175 9bbe 76       		.byte	0x76
- 41176 9bbf C0BE7F   		.sleb128 -8384
- 41177 9bc2 31       		.uleb128 0x31
- 41178 9bc3 500C0000 		.long	0xc50
- 41179 9bc7 00000000 		.quad	.LBB2250
- 41179      00000000 
- 41180 9bcf 00000000 		.quad	.LBE2250
- 41180      00000000 
- 41181 9bd7 02       		.byte	0x2
- 41182 9bd8 9106     		.value	0x691
- 41183 9bda 159C0000 		.long	0x9c15
- 41184 9bde 32       		.uleb128 0x32
- 41185 9bdf 7A0C0000 		.long	0xc7a
- 41186 9be3 03       		.byte	0x3
- 41187 9be4 91       		.byte	0x91
- 41188 9be5 8874     		.sleb128 -1528
- 41189 9be7 32       		.uleb128 0x32
- 41190 9be8 6E0C0000 		.long	0xc6e
- 41191 9bec 03       		.byte	0x3
- 41192 9bed 91       		.byte	0x91
- 41193 9bee 8C74     		.sleb128 -1524
- 41194 9bf0 32       		.uleb128 0x32
- 41195 9bf1 620C0000 		.long	0xc62
- 41196 9bf5 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1075
-
-
- 41197 9bf6 91       		.byte	0x91
- 41198 9bf7 9074     		.sleb128 -1520
- 41199 9bf9 33       		.uleb128 0x33
- 41200 9bfa 00000000 		.quad	.LBB2251
- 41200      00000000 
- 41201 9c02 00000000 		.quad	.LBE2251
- 41201      00000000 
- 41202 9c0a 34       		.uleb128 0x34
- 41203 9c0b 860C0000 		.long	0xc86
- 41204 9c0f 03       		.byte	0x3
- 41205 9c10 91       		.byte	0x91
- 41206 9c11 E04E     		.sleb128 -6304
- 41207 9c13 00       		.byte	0x0
- 41208 9c14 00       		.byte	0x0
- 41209 9c15 31       		.uleb128 0x31
- 41210 9c16 910C0000 		.long	0xc91
- 41211 9c1a 00000000 		.quad	.LBB2252
- 41211      00000000 
- 41212 9c22 00000000 		.quad	.LBE2252
- 41212      00000000 
- 41213 9c2a 02       		.byte	0x2
- 41214 9c2b 9206     		.value	0x692
- 41215 9c2d 859E0000 		.long	0x9e85
- 41216 9c31 32       		.uleb128 0x32
- 41217 9c32 A30C0000 		.long	0xca3
- 41218 9c36 03       		.byte	0x3
- 41219 9c37 91       		.byte	0x91
- 41220 9c38 A074     		.sleb128 -1504
- 41221 9c3a 35       		.uleb128 0x35
- 41222 9c3b B00C0000 		.long	0xcb0
- 41223 9c3f 00000000 		.quad	.LBB2254
- 41223      00000000 
- 41224 9c47 00000000 		.quad	.LBE2254
- 41224      00000000 
- 41225 9c4f 02       		.byte	0x2
- 41226 9c50 7D03     		.value	0x37d
- 41227 9c52 32       		.uleb128 0x32
- 41228 9c53 CE0C0000 		.long	0xcce
- 41229 9c57 03       		.byte	0x3
- 41230 9c58 91       		.byte	0x91
- 41231 9c59 B874     		.sleb128 -1480
- 41232 9c5b 32       		.uleb128 0x32
- 41233 9c5c C20C0000 		.long	0xcc2
- 41234 9c60 03       		.byte	0x3
- 41235 9c61 91       		.byte	0x91
- 41236 9c62 C074     		.sleb128 -1472
- 41237 9c64 33       		.uleb128 0x33
- 41238 9c65 00000000 		.quad	.LBB2255
- 41238      00000000 
- 41239 9c6d 00000000 		.quad	.LBE2255
- 41239      00000000 
- 41240 9c75 34       		.uleb128 0x34
- 41241 9c76 DA0C0000 		.long	0xcda
- 41242 9c7a 03       		.byte	0x3
- 41243 9c7b 91       		.byte	0x91
- 41244 9c7c 9075     		.sleb128 -1392
- 41245 9c7e 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1076
-
-
- 41246 9c7f E50C0000 		.long	0xce5
- 41247 9c83 03       		.byte	0x3
- 41248 9c84 91       		.byte	0x91
- 41249 9c85 8075     		.sleb128 -1408
- 41250 9c87 34       		.uleb128 0x34
- 41251 9c88 F00C0000 		.long	0xcf0
- 41252 9c8c 03       		.byte	0x3
- 41253 9c8d 91       		.byte	0x91
- 41254 9c8e F074     		.sleb128 -1424
- 41255 9c90 34       		.uleb128 0x34
- 41256 9c91 FC0C0000 		.long	0xcfc
- 41257 9c95 03       		.byte	0x3
- 41258 9c96 91       		.byte	0x91
- 41259 9c97 E074     		.sleb128 -1440
- 41260 9c99 34       		.uleb128 0x34
- 41261 9c9a 080D0000 		.long	0xd08
- 41262 9c9e 03       		.byte	0x3
- 41263 9c9f 91       		.byte	0x91
- 41264 9ca0 DC74     		.sleb128 -1444
- 41265 9ca2 31       		.uleb128 0x31
- 41266 9ca3 1F0D0000 		.long	0xd1f
- 41267 9ca7 00000000 		.quad	.LBB2256
- 41267      00000000 
- 41268 9caf 00000000 		.quad	.LBE2256
- 41268      00000000 
- 41269 9cb7 02       		.byte	0x2
- 41270 9cb8 5603     		.value	0x356
- 41271 9cba D19C0000 		.long	0x9cd1
- 41272 9cbe 32       		.uleb128 0x32
- 41273 9cbf 3A0D0000 		.long	0xd3a
- 41274 9cc3 03       		.byte	0x3
- 41275 9cc4 91       		.byte	0x91
- 41276 9cc5 A075     		.sleb128 -1376
- 41277 9cc7 32       		.uleb128 0x32
- 41278 9cc8 300D0000 		.long	0xd30
- 41279 9ccc 03       		.byte	0x3
- 41280 9ccd 91       		.byte	0x91
- 41281 9cce B075     		.sleb128 -1360
- 41282 9cd0 00       		.byte	0x0
- 41283 9cd1 31       		.uleb128 0x31
- 41284 9cd2 450D0000 		.long	0xd45
- 41285 9cd6 00000000 		.quad	.LBB2258
- 41285      00000000 
- 41286 9cde 00000000 		.quad	.LBE2258
- 41286      00000000 
- 41287 9ce6 02       		.byte	0x2
- 41288 9ce7 5E03     		.value	0x35e
- 41289 9ce9 009D0000 		.long	0x9d00
- 41290 9ced 32       		.uleb128 0x32
- 41291 9cee 620D0000 		.long	0xd62
- 41292 9cf2 03       		.byte	0x3
- 41293 9cf3 91       		.byte	0x91
- 41294 9cf4 C075     		.sleb128 -1344
- 41295 9cf6 32       		.uleb128 0x32
- 41296 9cf7 570D0000 		.long	0xd57
- 41297 9cfb 03       		.byte	0x3
- 41298 9cfc 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1077
-
-
- 41299 9cfd D075     		.sleb128 -1328
- 41300 9cff 00       		.byte	0x0
- 41301 9d00 31       		.uleb128 0x31
- 41302 9d01 6E0D0000 		.long	0xd6e
- 41303 9d05 00000000 		.quad	.LBB2260
- 41303      00000000 
- 41304 9d0d 00000000 		.quad	.LBE2260
- 41304      00000000 
- 41305 9d15 02       		.byte	0x2
- 41306 9d16 6403     		.value	0x364
- 41307 9d18 659D0000 		.long	0x9d65
- 41308 9d1c 32       		.uleb128 0x32
- 41309 9d1d 8C0D0000 		.long	0xd8c
- 41310 9d21 03       		.byte	0x3
- 41311 9d22 91       		.byte	0x91
- 41312 9d23 E075     		.sleb128 -1312
- 41313 9d25 32       		.uleb128 0x32
- 41314 9d26 800D0000 		.long	0xd80
- 41315 9d2a 03       		.byte	0x3
- 41316 9d2b 91       		.byte	0x91
- 41317 9d2c F075     		.sleb128 -1296
- 41318 9d2e 33       		.uleb128 0x33
- 41319 9d2f 00000000 		.quad	.LBB2261
- 41319      00000000 
- 41320 9d37 00000000 		.quad	.LBE2261
- 41320      00000000 
- 41321 9d3f 34       		.uleb128 0x34
- 41322 9d40 980D0000 		.long	0xd98
- 41323 9d44 03       		.byte	0x3
- 41324 9d45 91       		.byte	0x91
- 41325 9d46 904F     		.sleb128 -6256
- 41326 9d48 34       		.uleb128 0x34
- 41327 9d49 A40D0000 		.long	0xda4
- 41328 9d4d 03       		.byte	0x3
- 41329 9d4e 91       		.byte	0x91
- 41330 9d4f 804F     		.sleb128 -6272
- 41331 9d51 34       		.uleb128 0x34
- 41332 9d52 AF0D0000 		.long	0xdaf
- 41333 9d56 03       		.byte	0x3
- 41334 9d57 91       		.byte	0x91
- 41335 9d58 F04E     		.sleb128 -6288
- 41336 9d5a 34       		.uleb128 0x34
- 41337 9d5b BB0D0000 		.long	0xdbb
- 41338 9d5f 03       		.byte	0x3
- 41339 9d60 91       		.byte	0x91
- 41340 9d61 8C76     		.sleb128 -1268
- 41341 9d63 00       		.byte	0x0
- 41342 9d64 00       		.byte	0x0
- 41343 9d65 31       		.uleb128 0x31
- 41344 9d66 C70D0000 		.long	0xdc7
- 41345 9d6a 00000000 		.quad	.LBB2262
- 41345      00000000 
- 41346 9d72 00000000 		.quad	.LBE2262
- 41346      00000000 
- 41347 9d7a 02       		.byte	0x2
- 41348 9d7b 6603     		.value	0x366
- 41349 9d7d 949D0000 		.long	0x9d94
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1078
-
-
- 41350 9d81 32       		.uleb128 0x32
- 41351 9d82 E20D0000 		.long	0xde2
- 41352 9d86 03       		.byte	0x3
- 41353 9d87 91       		.byte	0x91
- 41354 9d88 9076     		.sleb128 -1264
- 41355 9d8a 32       		.uleb128 0x32
- 41356 9d8b D80D0000 		.long	0xdd8
- 41357 9d8f 03       		.byte	0x3
- 41358 9d90 91       		.byte	0x91
- 41359 9d91 A076     		.sleb128 -1248
- 41360 9d93 00       		.byte	0x0
- 41361 9d94 31       		.uleb128 0x31
- 41362 9d95 6E0D0000 		.long	0xd6e
- 41363 9d99 00000000 		.quad	.LBB2264
- 41363      00000000 
- 41364 9da1 00000000 		.quad	.LBE2264
- 41364      00000000 
- 41365 9da9 02       		.byte	0x2
- 41366 9daa 6803     		.value	0x368
- 41367 9dac F99D0000 		.long	0x9df9
- 41368 9db0 32       		.uleb128 0x32
- 41369 9db1 8C0D0000 		.long	0xd8c
- 41370 9db5 03       		.byte	0x3
- 41371 9db6 91       		.byte	0x91
- 41372 9db7 B076     		.sleb128 -1232
- 41373 9db9 32       		.uleb128 0x32
- 41374 9dba 800D0000 		.long	0xd80
- 41375 9dbe 03       		.byte	0x3
- 41376 9dbf 91       		.byte	0x91
- 41377 9dc0 C076     		.sleb128 -1216
- 41378 9dc2 33       		.uleb128 0x33
- 41379 9dc3 00000000 		.quad	.LBB2265
- 41379      00000000 
- 41380 9dcb 00000000 		.quad	.LBE2265
- 41380      00000000 
- 41381 9dd3 34       		.uleb128 0x34
- 41382 9dd4 980D0000 		.long	0xd98
- 41383 9dd8 03       		.byte	0x3
- 41384 9dd9 91       		.byte	0x91
- 41385 9dda C04F     		.sleb128 -6208
- 41386 9ddc 34       		.uleb128 0x34
- 41387 9ddd A40D0000 		.long	0xda4
- 41388 9de1 03       		.byte	0x3
- 41389 9de2 91       		.byte	0x91
- 41390 9de3 B04F     		.sleb128 -6224
- 41391 9de5 34       		.uleb128 0x34
- 41392 9de6 AF0D0000 		.long	0xdaf
- 41393 9dea 03       		.byte	0x3
- 41394 9deb 91       		.byte	0x91
- 41395 9dec A04F     		.sleb128 -6240
- 41396 9dee 34       		.uleb128 0x34
- 41397 9def BB0D0000 		.long	0xdbb
- 41398 9df3 03       		.byte	0x3
- 41399 9df4 91       		.byte	0x91
- 41400 9df5 DC76     		.sleb128 -1188
- 41401 9df7 00       		.byte	0x0
- 41402 9df8 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1079
-
-
- 41403 9df9 31       		.uleb128 0x31
- 41404 9dfa C70D0000 		.long	0xdc7
- 41405 9dfe 00000000 		.quad	.LBB2266
- 41405      00000000 
- 41406 9e06 00000000 		.quad	.LBE2266
- 41406      00000000 
- 41407 9e0e 02       		.byte	0x2
- 41408 9e0f 6A03     		.value	0x36a
- 41409 9e11 289E0000 		.long	0x9e28
- 41410 9e15 32       		.uleb128 0x32
- 41411 9e16 E20D0000 		.long	0xde2
- 41412 9e1a 03       		.byte	0x3
- 41413 9e1b 91       		.byte	0x91
- 41414 9e1c E076     		.sleb128 -1184
- 41415 9e1e 32       		.uleb128 0x32
- 41416 9e1f D80D0000 		.long	0xdd8
- 41417 9e23 03       		.byte	0x3
- 41418 9e24 91       		.byte	0x91
- 41419 9e25 F076     		.sleb128 -1168
- 41420 9e27 00       		.byte	0x0
- 41421 9e28 31       		.uleb128 0x31
- 41422 9e29 ED0D0000 		.long	0xded
- 41423 9e2d 00000000 		.quad	.LBB2268
- 41423      00000000 
- 41424 9e35 00000000 		.quad	.LBE2268
- 41424      00000000 
- 41425 9e3d 02       		.byte	0x2
- 41426 9e3e 6C03     		.value	0x36c
- 41427 9e40 579E0000 		.long	0x9e57
- 41428 9e44 32       		.uleb128 0x32
- 41429 9e45 0A0E0000 		.long	0xe0a
- 41430 9e49 03       		.byte	0x3
- 41431 9e4a 91       		.byte	0x91
- 41432 9e4b 8077     		.sleb128 -1152
- 41433 9e4d 32       		.uleb128 0x32
- 41434 9e4e FF0D0000 		.long	0xdff
- 41435 9e52 03       		.byte	0x3
- 41436 9e53 91       		.byte	0x91
- 41437 9e54 9077     		.sleb128 -1136
- 41438 9e56 00       		.byte	0x0
- 41439 9e57 35       		.uleb128 0x35
- 41440 9e58 1F0D0000 		.long	0xd1f
- 41441 9e5c 00000000 		.quad	.LBB2270
- 41441      00000000 
- 41442 9e64 00000000 		.quad	.LBE2270
- 41442      00000000 
- 41443 9e6c 02       		.byte	0x2
- 41444 9e6d 6E03     		.value	0x36e
- 41445 9e6f 32       		.uleb128 0x32
- 41446 9e70 3A0D0000 		.long	0xd3a
- 41447 9e74 03       		.byte	0x3
- 41448 9e75 91       		.byte	0x91
- 41449 9e76 A077     		.sleb128 -1120
- 41450 9e78 32       		.uleb128 0x32
- 41451 9e79 300D0000 		.long	0xd30
- 41452 9e7d 03       		.byte	0x3
- 41453 9e7e 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1080
-
-
- 41454 9e7f B077     		.sleb128 -1104
- 41455 9e81 00       		.byte	0x0
- 41456 9e82 00       		.byte	0x0
- 41457 9e83 00       		.byte	0x0
- 41458 9e84 00       		.byte	0x0
- 41459 9e85 36       		.uleb128 0x36
- 41460 9e86 00000000 		.quad	.LBB2272
- 41460      00000000 
- 41461 9e8e 00000000 		.quad	.LBE2272
- 41461      00000000 
- 41462 9e96 A49E0000 		.long	0x9ea4
- 41463 9e9a 34       		.uleb128 0x34
- 41464 9e9b 180C0000 		.long	0xc18
- 41465 9e9f 03       		.byte	0x3
- 41466 9ea0 91       		.byte	0x91
- 41467 9ea1 D04E     		.sleb128 -6320
- 41468 9ea3 00       		.byte	0x0
- 41469 9ea4 31       		.uleb128 0x31
- 41470 9ea5 160E0000 		.long	0xe16
- 41471 9ea9 00000000 		.quad	.LBB2273
- 41471      00000000 
- 41472 9eb1 00000000 		.quad	.LBE2273
- 41472      00000000 
- 41473 9eb9 02       		.byte	0x2
- 41474 9eba 9406     		.value	0x694
- 41475 9ebc 4C9F0000 		.long	0x9f4c
- 41476 9ec0 32       		.uleb128 0x32
- 41477 9ec1 280E0000 		.long	0xe28
- 41478 9ec5 03       		.byte	0x3
- 41479 9ec6 91       		.byte	0x91
- 41480 9ec7 C077     		.sleb128 -1088
- 41481 9ec9 33       		.uleb128 0x33
- 41482 9eca 00000000 		.quad	.LBB2274
- 41482      00000000 
- 41483 9ed2 00000000 		.quad	.LBE2274
- 41483      00000000 
- 41484 9eda 34       		.uleb128 0x34
- 41485 9edb 340E0000 		.long	0xe34
- 41486 9edf 09       		.byte	0x9
- 41487 9ee0 03       		.byte	0x3
- 41488 9ee1 00000000 		.quad	ShiftRowTable.6768
- 41488      00000000 
- 41489 9ee9 35       		.uleb128 0x35
- 41490 9eea 6E0D0000 		.long	0xd6e
- 41491 9eee 00000000 		.quad	.LBB2275
- 41491      00000000 
- 41492 9ef6 00000000 		.quad	.LBE2275
- 41492      00000000 
- 41493 9efe 02       		.byte	0x2
- 41494 9eff 9B02     		.value	0x29b
- 41495 9f01 32       		.uleb128 0x32
- 41496 9f02 8C0D0000 		.long	0xd8c
- 41497 9f06 03       		.byte	0x3
- 41498 9f07 91       		.byte	0x91
- 41499 9f08 D077     		.sleb128 -1072
- 41500 9f0a 32       		.uleb128 0x32
- 41501 9f0b 800D0000 		.long	0xd80
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1081
-
-
- 41502 9f0f 03       		.byte	0x3
- 41503 9f10 91       		.byte	0x91
- 41504 9f11 E077     		.sleb128 -1056
- 41505 9f13 33       		.uleb128 0x33
- 41506 9f14 00000000 		.quad	.LBB2276
- 41506      00000000 
- 41507 9f1c 00000000 		.quad	.LBE2276
- 41507      00000000 
- 41508 9f24 34       		.uleb128 0x34
- 41509 9f25 980D0000 		.long	0xd98
- 41510 9f29 03       		.byte	0x3
- 41511 9f2a 91       		.byte	0x91
- 41512 9f2b F04F     		.sleb128 -6160
- 41513 9f2d 34       		.uleb128 0x34
- 41514 9f2e A40D0000 		.long	0xda4
- 41515 9f32 03       		.byte	0x3
- 41516 9f33 91       		.byte	0x91
- 41517 9f34 E04F     		.sleb128 -6176
- 41518 9f36 34       		.uleb128 0x34
- 41519 9f37 AF0D0000 		.long	0xdaf
- 41520 9f3b 03       		.byte	0x3
- 41521 9f3c 91       		.byte	0x91
- 41522 9f3d D04F     		.sleb128 -6192
- 41523 9f3f 34       		.uleb128 0x34
- 41524 9f40 BB0D0000 		.long	0xdbb
- 41525 9f44 03       		.byte	0x3
- 41526 9f45 91       		.byte	0x91
- 41527 9f46 FC77     		.sleb128 -1028
- 41528 9f48 00       		.byte	0x0
- 41529 9f49 00       		.byte	0x0
- 41530 9f4a 00       		.byte	0x0
- 41531 9f4b 00       		.byte	0x0
- 41532 9f4c 36       		.uleb128 0x36
- 41533 9f4d 00000000 		.quad	.LBB2277
- 41533      00000000 
- 41534 9f55 00000000 		.quad	.LBE2277
- 41534      00000000 
- 41535 9f5d 6B9F0000 		.long	0x9f6b
- 41536 9f61 34       		.uleb128 0x34
- 41537 9f62 280C0000 		.long	0xc28
- 41538 9f66 03       		.byte	0x3
- 41539 9f67 91       		.byte	0x91
- 41540 9f68 C04E     		.sleb128 -6336
- 41541 9f6a 00       		.byte	0x0
- 41542 9f6b 31       		.uleb128 0x31
- 41543 9f6c 520E0000 		.long	0xe52
- 41544 9f70 00000000 		.quad	.LBB2278
- 41544      00000000 
- 41545 9f78 00000000 		.quad	.LBE2278
- 41545      00000000 
- 41546 9f80 02       		.byte	0x2
- 41547 9f81 9606     		.value	0x696
- 41548 9f83 9A9F0000 		.long	0x9f9a
- 41549 9f87 32       		.uleb128 0x32
- 41550 9f88 6D0E0000 		.long	0xe6d
- 41551 9f8c 03       		.byte	0x3
- 41552 9f8d 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1082
-
-
- 41553 9f8e 8078     		.sleb128 -1024
- 41554 9f90 32       		.uleb128 0x32
- 41555 9f91 630E0000 		.long	0xe63
- 41556 9f95 03       		.byte	0x3
- 41557 9f96 91       		.byte	0x91
- 41558 9f97 9078     		.sleb128 -1008
- 41559 9f99 00       		.byte	0x0
- 41560 9f9a 36       		.uleb128 0x36
- 41561 9f9b 00000000 		.quad	.LBB2280
- 41561      00000000 
- 41562 9fa3 00000000 		.quad	.LBE2280
- 41562      00000000 
- 41563 9fab B99F0000 		.long	0x9fb9
- 41564 9faf 34       		.uleb128 0x34
- 41565 9fb0 380C0000 		.long	0xc38
- 41566 9fb4 03       		.byte	0x3
- 41567 9fb5 91       		.byte	0x91
- 41568 9fb6 B04E     		.sleb128 -6352
- 41569 9fb8 00       		.byte	0x0
- 41570 9fb9 31       		.uleb128 0x31
- 41571 9fba 780E0000 		.long	0xe78
- 41572 9fbe 00000000 		.quad	.LBB2281
- 41572      00000000 
- 41573 9fc6 00000000 		.quad	.LBE2281
- 41573      00000000 
- 41574 9fce 02       		.byte	0x2
- 41575 9fcf 9806     		.value	0x698
- 41576 9fd1 FA9F0000 		.long	0x9ffa
- 41577 9fd5 32       		.uleb128 0x32
- 41578 9fd6 8A0E0000 		.long	0xe8a
- 41579 9fda 03       		.byte	0x3
- 41580 9fdb 91       		.byte	0x91
- 41581 9fdc A078     		.sleb128 -992
- 41582 9fde 33       		.uleb128 0x33
- 41583 9fdf 00000000 		.quad	.LBB2282
- 41583      00000000 
- 41584 9fe7 00000000 		.quad	.LBE2282
- 41584      00000000 
- 41585 9fef 34       		.uleb128 0x34
- 41586 9ff0 960E0000 		.long	0xe96
- 41587 9ff4 03       		.byte	0x3
- 41588 9ff5 91       		.byte	0x91
- 41589 9ff6 8050     		.sleb128 -6144
- 41590 9ff8 00       		.byte	0x0
- 41591 9ff9 00       		.byte	0x0
- 41592 9ffa 33       		.uleb128 0x33
- 41593 9ffb 00000000 		.quad	.LBB2283
- 41593      00000000 
- 41594 a003 00000000 		.quad	.LBE2283
- 41594      00000000 
- 41595 a00b 34       		.uleb128 0x34
- 41596 a00c 440C0000 		.long	0xc44
- 41597 a010 03       		.byte	0x3
- 41598 a011 91       		.byte	0x91
- 41599 a012 A04E     		.sleb128 -6368
- 41600 a014 00       		.byte	0x0
- 41601 a015 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1083
-
-
- 41602 a016 00       		.byte	0x0
- 41603 a017 31       		.uleb128 0x31
- 41604 a018 A30E0000 		.long	0xea3
- 41605 a01c 00000000 		.quad	.LBB2284
- 41605      00000000 
- 41606 a024 00000000 		.quad	.LBE2284
- 41606      00000000 
- 41607 a02c 02       		.byte	0x2
- 41608 a02d 9007     		.value	0x790
- 41609 a02f 18A10000 		.long	0xa118
- 41610 a033 32       		.uleb128 0x32
- 41611 a034 B50E0000 		.long	0xeb5
- 41612 a038 03       		.byte	0x3
- 41613 a039 91       		.byte	0x91
- 41614 a03a B078     		.sleb128 -976
- 41615 a03c 33       		.uleb128 0x33
- 41616 a03d 00000000 		.quad	.LBB2285
- 41616      00000000 
- 41617 a045 00000000 		.quad	.LBE2285
- 41617      00000000 
- 41618 a04d 34       		.uleb128 0x34
- 41619 a04e C10E0000 		.long	0xec1
- 41620 a052 04       		.byte	0x4
- 41621 a053 76       		.byte	0x76
- 41622 a054 F0BE7F   		.sleb128 -8336
- 41623 a057 31       		.uleb128 0x31
- 41624 a058 CE0E0000 		.long	0xece
- 41625 a05c 00000000 		.quad	.LBB2286
- 41625      00000000 
- 41626 a064 00000000 		.quad	.LBE2286
- 41626      00000000 
- 41627 a06c 02       		.byte	0x2
- 41628 a06d 1F06     		.value	0x61f
- 41629 a06f 98A00000 		.long	0xa098
- 41630 a073 32       		.uleb128 0x32
- 41631 a074 E00E0000 		.long	0xee0
- 41632 a078 03       		.byte	0x3
- 41633 a079 91       		.byte	0x91
- 41634 a07a C078     		.sleb128 -960
- 41635 a07c 33       		.uleb128 0x33
- 41636 a07d 00000000 		.quad	.LBB2287
- 41636      00000000 
- 41637 a085 00000000 		.quad	.LBE2287
- 41637      00000000 
- 41638 a08d 34       		.uleb128 0x34
- 41639 a08e EC0E0000 		.long	0xeec
- 41640 a092 03       		.byte	0x3
- 41641 a093 91       		.byte	0x91
- 41642 a094 9050     		.sleb128 -6128
- 41643 a096 00       		.byte	0x0
- 41644 a097 00       		.byte	0x0
- 41645 a098 31       		.uleb128 0x31
- 41646 a099 CE0E0000 		.long	0xece
- 41647 a09d 00000000 		.quad	.LBB2288
- 41647      00000000 
- 41648 a0a5 00000000 		.quad	.LBE2288
- 41648      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1084
-
-
- 41649 a0ad 02       		.byte	0x2
- 41650 a0ae 2006     		.value	0x620
- 41651 a0b0 D9A00000 		.long	0xa0d9
- 41652 a0b4 32       		.uleb128 0x32
- 41653 a0b5 E00E0000 		.long	0xee0
- 41654 a0b9 03       		.byte	0x3
- 41655 a0ba 91       		.byte	0x91
- 41656 a0bb D078     		.sleb128 -944
- 41657 a0bd 33       		.uleb128 0x33
- 41658 a0be 00000000 		.quad	.LBB2289
- 41658      00000000 
- 41659 a0c6 00000000 		.quad	.LBE2289
- 41659      00000000 
- 41660 a0ce 34       		.uleb128 0x34
- 41661 a0cf EC0E0000 		.long	0xeec
- 41662 a0d3 03       		.byte	0x3
- 41663 a0d4 91       		.byte	0x91
- 41664 a0d5 A050     		.sleb128 -6112
- 41665 a0d7 00       		.byte	0x0
- 41666 a0d8 00       		.byte	0x0
- 41667 a0d9 35       		.uleb128 0x35
- 41668 a0da CE0E0000 		.long	0xece
- 41669 a0de 00000000 		.quad	.LBB2290
- 41669      00000000 
- 41670 a0e6 00000000 		.quad	.LBE2290
- 41670      00000000 
- 41671 a0ee 02       		.byte	0x2
- 41672 a0ef 2106     		.value	0x621
- 41673 a0f1 32       		.uleb128 0x32
- 41674 a0f2 E00E0000 		.long	0xee0
- 41675 a0f6 03       		.byte	0x3
- 41676 a0f7 91       		.byte	0x91
- 41677 a0f8 E078     		.sleb128 -928
- 41678 a0fa 33       		.uleb128 0x33
- 41679 a0fb 00000000 		.quad	.LBB2291
- 41679      00000000 
- 41680 a103 00000000 		.quad	.LBE2291
- 41680      00000000 
- 41681 a10b 34       		.uleb128 0x34
- 41682 a10c EC0E0000 		.long	0xeec
- 41683 a110 03       		.byte	0x3
- 41684 a111 91       		.byte	0x91
- 41685 a112 B050     		.sleb128 -6096
- 41686 a114 00       		.byte	0x0
- 41687 a115 00       		.byte	0x0
- 41688 a116 00       		.byte	0x0
- 41689 a117 00       		.byte	0x0
- 41690 a118 31       		.uleb128 0x31
- 41691 a119 520E0000 		.long	0xe52
- 41692 a11d 00000000 		.quad	.LBB2292
- 41692      00000000 
- 41693 a125 00000000 		.quad	.LBE2292
- 41693      00000000 
- 41694 a12d 02       		.byte	0x2
- 41695 a12e 9007     		.value	0x790
- 41696 a130 47A10000 		.long	0xa147
- 41697 a134 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1085
-
-
- 41698 a135 6D0E0000 		.long	0xe6d
- 41699 a139 03       		.byte	0x3
- 41700 a13a 91       		.byte	0x91
- 41701 a13b F078     		.sleb128 -912
- 41702 a13d 32       		.uleb128 0x32
- 41703 a13e 630E0000 		.long	0xe63
- 41704 a142 03       		.byte	0x3
- 41705 a143 91       		.byte	0x91
- 41706 a144 8079     		.sleb128 -896
- 41707 a146 00       		.byte	0x0
- 41708 a147 31       		.uleb128 0x31
- 41709 a148 4E740000 		.long	0x744e
- 41710 a14c 00000000 		.quad	.LBB2294
- 41710      00000000 
- 41711 a154 00000000 		.quad	.LBE2294
- 41711      00000000 
- 41712 a15c 02       		.byte	0x2
- 41713 a15d 9107     		.value	0x791
- 41714 a15f D7A10000 		.long	0xa1d7
- 41715 a163 32       		.uleb128 0x32
- 41716 a164 60740000 		.long	0x7460
- 41717 a168 03       		.byte	0x3
- 41718 a169 91       		.byte	0x91
- 41719 a16a 9079     		.sleb128 -880
- 41720 a16c 33       		.uleb128 0x33
- 41721 a16d 00000000 		.quad	.LBB2295
- 41721      00000000 
- 41722 a175 00000000 		.quad	.LBE2295
- 41722      00000000 
- 41723 a17d 34       		.uleb128 0x34
- 41724 a17e 6C740000 		.long	0x746c
- 41725 a182 03       		.byte	0x3
- 41726 a183 91       		.byte	0x91
- 41727 a184 D050     		.sleb128 -6064
- 41728 a186 34       		.uleb128 0x34
- 41729 a187 76740000 		.long	0x7476
- 41730 a18b 03       		.byte	0x3
- 41731 a18c 91       		.byte	0x91
- 41732 a18d A479     		.sleb128 -860
- 41733 a18f 35       		.uleb128 0x35
- 41734 a190 12490000 		.long	0x4912
- 41735 a194 00000000 		.quad	.LBB2296
- 41735      00000000 
- 41736 a19c 00000000 		.quad	.LBE2296
- 41736      00000000 
- 41737 a1a4 02       		.byte	0x2
- 41738 a1a5 7906     		.value	0x679
- 41739 a1a7 32       		.uleb128 0x32
- 41740 a1a8 24490000 		.long	0x4924
- 41741 a1ac 03       		.byte	0x3
- 41742 a1ad 91       		.byte	0x91
- 41743 a1ae A879     		.sleb128 -856
- 41744 a1b0 33       		.uleb128 0x33
- 41745 a1b1 00000000 		.quad	.LBB2297
- 41745      00000000 
- 41746 a1b9 00000000 		.quad	.LBE2297
- 41746      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1086
-
-
- 41747 a1c1 34       		.uleb128 0x34
- 41748 a1c2 2E490000 		.long	0x492e
- 41749 a1c6 03       		.byte	0x3
- 41750 a1c7 91       		.byte	0x91
- 41751 a1c8 C050     		.sleb128 -6080
- 41752 a1ca 34       		.uleb128 0x34
- 41753 a1cb 3A490000 		.long	0x493a
- 41754 a1cf 03       		.byte	0x3
- 41755 a1d0 91       		.byte	0x91
- 41756 a1d1 AC79     		.sleb128 -852
- 41757 a1d3 00       		.byte	0x0
- 41758 a1d4 00       		.byte	0x0
- 41759 a1d5 00       		.byte	0x0
- 41760 a1d6 00       		.byte	0x0
- 41761 a1d7 31       		.uleb128 0x31
- 41762 a1d8 A30E0000 		.long	0xea3
- 41763 a1dc 00000000 		.quad	.LBB2298
- 41763      00000000 
- 41764 a1e4 00000000 		.quad	.LBE2298
- 41764      00000000 
- 41765 a1ec 02       		.byte	0x2
- 41766 a1ed 9107     		.value	0x791
- 41767 a1ef D8A20000 		.long	0xa2d8
- 41768 a1f3 32       		.uleb128 0x32
- 41769 a1f4 B50E0000 		.long	0xeb5
- 41770 a1f8 03       		.byte	0x3
- 41771 a1f9 91       		.byte	0x91
- 41772 a1fa B079     		.sleb128 -848
- 41773 a1fc 33       		.uleb128 0x33
- 41774 a1fd 00000000 		.quad	.LBB2299
- 41774      00000000 
- 41775 a205 00000000 		.quad	.LBE2299
- 41775      00000000 
- 41776 a20d 34       		.uleb128 0x34
- 41777 a20e C10E0000 		.long	0xec1
- 41778 a212 04       		.byte	0x4
- 41779 a213 76       		.byte	0x76
- 41780 a214 80BF7F   		.sleb128 -8320
- 41781 a217 31       		.uleb128 0x31
- 41782 a218 CE0E0000 		.long	0xece
- 41783 a21c 00000000 		.quad	.LBB2300
- 41783      00000000 
- 41784 a224 00000000 		.quad	.LBE2300
- 41784      00000000 
- 41785 a22c 02       		.byte	0x2
- 41786 a22d 1F06     		.value	0x61f
- 41787 a22f 58A20000 		.long	0xa258
- 41788 a233 32       		.uleb128 0x32
- 41789 a234 E00E0000 		.long	0xee0
- 41790 a238 03       		.byte	0x3
- 41791 a239 91       		.byte	0x91
- 41792 a23a C079     		.sleb128 -832
- 41793 a23c 33       		.uleb128 0x33
- 41794 a23d 00000000 		.quad	.LBB2301
- 41794      00000000 
- 41795 a245 00000000 		.quad	.LBE2301
- 41795      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1087
-
-
- 41796 a24d 34       		.uleb128 0x34
- 41797 a24e EC0E0000 		.long	0xeec
- 41798 a252 03       		.byte	0x3
- 41799 a253 91       		.byte	0x91
- 41800 a254 E050     		.sleb128 -6048
- 41801 a256 00       		.byte	0x0
- 41802 a257 00       		.byte	0x0
- 41803 a258 31       		.uleb128 0x31
- 41804 a259 CE0E0000 		.long	0xece
- 41805 a25d 00000000 		.quad	.LBB2302
- 41805      00000000 
- 41806 a265 00000000 		.quad	.LBE2302
- 41806      00000000 
- 41807 a26d 02       		.byte	0x2
- 41808 a26e 2006     		.value	0x620
- 41809 a270 99A20000 		.long	0xa299
- 41810 a274 32       		.uleb128 0x32
- 41811 a275 E00E0000 		.long	0xee0
- 41812 a279 03       		.byte	0x3
- 41813 a27a 91       		.byte	0x91
- 41814 a27b D079     		.sleb128 -816
- 41815 a27d 33       		.uleb128 0x33
- 41816 a27e 00000000 		.quad	.LBB2303
- 41816      00000000 
- 41817 a286 00000000 		.quad	.LBE2303
- 41817      00000000 
- 41818 a28e 34       		.uleb128 0x34
- 41819 a28f EC0E0000 		.long	0xeec
- 41820 a293 03       		.byte	0x3
- 41821 a294 91       		.byte	0x91
- 41822 a295 F050     		.sleb128 -6032
- 41823 a297 00       		.byte	0x0
- 41824 a298 00       		.byte	0x0
- 41825 a299 35       		.uleb128 0x35
- 41826 a29a CE0E0000 		.long	0xece
- 41827 a29e 00000000 		.quad	.LBB2304
- 41827      00000000 
- 41828 a2a6 00000000 		.quad	.LBE2304
- 41828      00000000 
- 41829 a2ae 02       		.byte	0x2
- 41830 a2af 2106     		.value	0x621
- 41831 a2b1 32       		.uleb128 0x32
- 41832 a2b2 E00E0000 		.long	0xee0
- 41833 a2b6 03       		.byte	0x3
- 41834 a2b7 91       		.byte	0x91
- 41835 a2b8 E079     		.sleb128 -800
- 41836 a2ba 33       		.uleb128 0x33
- 41837 a2bb 00000000 		.quad	.LBB2305
- 41837      00000000 
- 41838 a2c3 00000000 		.quad	.LBE2305
- 41838      00000000 
- 41839 a2cb 34       		.uleb128 0x34
- 41840 a2cc EC0E0000 		.long	0xeec
- 41841 a2d0 03       		.byte	0x3
- 41842 a2d1 91       		.byte	0x91
- 41843 a2d2 8051     		.sleb128 -6016
- 41844 a2d4 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1088
-
-
- 41845 a2d5 00       		.byte	0x0
- 41846 a2d6 00       		.byte	0x0
- 41847 a2d7 00       		.byte	0x0
- 41848 a2d8 31       		.uleb128 0x31
- 41849 a2d9 520E0000 		.long	0xe52
- 41850 a2dd 00000000 		.quad	.LBB2306
- 41850      00000000 
- 41851 a2e5 00000000 		.quad	.LBE2306
- 41851      00000000 
- 41852 a2ed 02       		.byte	0x2
- 41853 a2ee 9107     		.value	0x791
- 41854 a2f0 07A30000 		.long	0xa307
- 41855 a2f4 32       		.uleb128 0x32
- 41856 a2f5 6D0E0000 		.long	0xe6d
- 41857 a2f9 03       		.byte	0x3
- 41858 a2fa 91       		.byte	0x91
- 41859 a2fb F079     		.sleb128 -784
- 41860 a2fd 32       		.uleb128 0x32
- 41861 a2fe 630E0000 		.long	0xe63
- 41862 a302 03       		.byte	0x3
- 41863 a303 91       		.byte	0x91
- 41864 a304 807A     		.sleb128 -768
- 41865 a306 00       		.byte	0x0
- 41866 a307 31       		.uleb128 0x31
- 41867 a308 D10B0000 		.long	0xbd1
- 41868 a30c 00000000 		.quad	.LBB2308
- 41868      00000000 
- 41869 a314 00000000 		.quad	.LBE2308
- 41869      00000000 
- 41870 a31c 02       		.byte	0x2
- 41871 a31d 9207     		.value	0x792
- 41872 a31f AFA70000 		.long	0xa7af
- 41873 a323 32       		.uleb128 0x32
- 41874 a324 EF0B0000 		.long	0xbef
- 41875 a328 03       		.byte	0x3
- 41876 a329 91       		.byte	0x91
- 41877 a32a 9C7A     		.sleb128 -740
- 41878 a32c 32       		.uleb128 0x32
- 41879 a32d E30B0000 		.long	0xbe3
- 41880 a331 03       		.byte	0x3
- 41881 a332 91       		.byte	0x91
- 41882 a333 A07A     		.sleb128 -736
- 41883 a335 33       		.uleb128 0x33
- 41884 a336 00000000 		.quad	.LBB2309
- 41884      00000000 
- 41885 a33e 00000000 		.quad	.LBE2309
- 41885      00000000 
- 41886 a346 34       		.uleb128 0x34
- 41887 a347 FB0B0000 		.long	0xbfb
- 41888 a34b 04       		.byte	0x4
- 41889 a34c 76       		.byte	0x76
- 41890 a34d A0BF7F   		.sleb128 -8288
- 41891 a350 34       		.uleb128 0x34
- 41892 a351 070C0000 		.long	0xc07
- 41893 a355 04       		.byte	0x4
- 41894 a356 76       		.byte	0x76
- 41895 a357 90BF7F   		.sleb128 -8304
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1089
-
-
- 41896 a35a 31       		.uleb128 0x31
- 41897 a35b 500C0000 		.long	0xc50
- 41898 a35f 00000000 		.quad	.LBB2310
- 41898      00000000 
- 41899 a367 00000000 		.quad	.LBE2310
- 41899      00000000 
- 41900 a36f 02       		.byte	0x2
- 41901 a370 9106     		.value	0x691
- 41902 a372 ADA30000 		.long	0xa3ad
- 41903 a376 32       		.uleb128 0x32
- 41904 a377 7A0C0000 		.long	0xc7a
- 41905 a37b 03       		.byte	0x3
- 41906 a37c 91       		.byte	0x91
- 41907 a37d B87A     		.sleb128 -712
- 41908 a37f 32       		.uleb128 0x32
- 41909 a380 6E0C0000 		.long	0xc6e
- 41910 a384 03       		.byte	0x3
- 41911 a385 91       		.byte	0x91
- 41912 a386 BC7A     		.sleb128 -708
- 41913 a388 32       		.uleb128 0x32
- 41914 a389 620C0000 		.long	0xc62
- 41915 a38d 03       		.byte	0x3
- 41916 a38e 91       		.byte	0x91
- 41917 a38f C07A     		.sleb128 -704
- 41918 a391 33       		.uleb128 0x33
- 41919 a392 00000000 		.quad	.LBB2311
- 41919      00000000 
- 41920 a39a 00000000 		.quad	.LBE2311
- 41920      00000000 
- 41921 a3a2 34       		.uleb128 0x34
- 41922 a3a3 860C0000 		.long	0xc86
- 41923 a3a7 03       		.byte	0x3
- 41924 a3a8 91       		.byte	0x91
- 41925 a3a9 D051     		.sleb128 -5936
- 41926 a3ab 00       		.byte	0x0
- 41927 a3ac 00       		.byte	0x0
- 41928 a3ad 31       		.uleb128 0x31
- 41929 a3ae 910C0000 		.long	0xc91
- 41930 a3b2 00000000 		.quad	.LBB2312
- 41930      00000000 
- 41931 a3ba 00000000 		.quad	.LBE2312
- 41931      00000000 
- 41932 a3c2 02       		.byte	0x2
- 41933 a3c3 9206     		.value	0x692
- 41934 a3c5 1DA60000 		.long	0xa61d
- 41935 a3c9 32       		.uleb128 0x32
- 41936 a3ca A30C0000 		.long	0xca3
- 41937 a3ce 03       		.byte	0x3
- 41938 a3cf 91       		.byte	0x91
- 41939 a3d0 D07A     		.sleb128 -688
- 41940 a3d2 35       		.uleb128 0x35
- 41941 a3d3 B00C0000 		.long	0xcb0
- 41942 a3d7 00000000 		.quad	.LBB2314
- 41942      00000000 
- 41943 a3df 00000000 		.quad	.LBE2314
- 41943      00000000 
- 41944 a3e7 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1090
-
-
- 41945 a3e8 7D03     		.value	0x37d
- 41946 a3ea 32       		.uleb128 0x32
- 41947 a3eb CE0C0000 		.long	0xcce
- 41948 a3ef 03       		.byte	0x3
- 41949 a3f0 91       		.byte	0x91
- 41950 a3f1 E87A     		.sleb128 -664
- 41951 a3f3 32       		.uleb128 0x32
- 41952 a3f4 C20C0000 		.long	0xcc2
- 41953 a3f8 03       		.byte	0x3
- 41954 a3f9 91       		.byte	0x91
- 41955 a3fa F07A     		.sleb128 -656
- 41956 a3fc 33       		.uleb128 0x33
- 41957 a3fd 00000000 		.quad	.LBB2315
- 41957      00000000 
- 41958 a405 00000000 		.quad	.LBE2315
- 41958      00000000 
- 41959 a40d 34       		.uleb128 0x34
- 41960 a40e DA0C0000 		.long	0xcda
- 41961 a412 03       		.byte	0x3
- 41962 a413 91       		.byte	0x91
- 41963 a414 C07B     		.sleb128 -576
- 41964 a416 34       		.uleb128 0x34
- 41965 a417 E50C0000 		.long	0xce5
- 41966 a41b 03       		.byte	0x3
- 41967 a41c 91       		.byte	0x91
- 41968 a41d B07B     		.sleb128 -592
- 41969 a41f 34       		.uleb128 0x34
- 41970 a420 F00C0000 		.long	0xcf0
- 41971 a424 03       		.byte	0x3
- 41972 a425 91       		.byte	0x91
- 41973 a426 A07B     		.sleb128 -608
- 41974 a428 34       		.uleb128 0x34
- 41975 a429 FC0C0000 		.long	0xcfc
- 41976 a42d 03       		.byte	0x3
- 41977 a42e 91       		.byte	0x91
- 41978 a42f 907B     		.sleb128 -624
- 41979 a431 34       		.uleb128 0x34
- 41980 a432 080D0000 		.long	0xd08
- 41981 a436 03       		.byte	0x3
- 41982 a437 91       		.byte	0x91
- 41983 a438 8C7B     		.sleb128 -628
- 41984 a43a 31       		.uleb128 0x31
- 41985 a43b 1F0D0000 		.long	0xd1f
- 41986 a43f 00000000 		.quad	.LBB2316
- 41986      00000000 
- 41987 a447 00000000 		.quad	.LBE2316
- 41987      00000000 
- 41988 a44f 02       		.byte	0x2
- 41989 a450 5603     		.value	0x356
- 41990 a452 69A40000 		.long	0xa469
- 41991 a456 32       		.uleb128 0x32
- 41992 a457 3A0D0000 		.long	0xd3a
- 41993 a45b 03       		.byte	0x3
- 41994 a45c 91       		.byte	0x91
- 41995 a45d D07B     		.sleb128 -560
- 41996 a45f 32       		.uleb128 0x32
- 41997 a460 300D0000 		.long	0xd30
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1091
-
-
- 41998 a464 03       		.byte	0x3
- 41999 a465 91       		.byte	0x91
- 42000 a466 E07B     		.sleb128 -544
- 42001 a468 00       		.byte	0x0
- 42002 a469 31       		.uleb128 0x31
- 42003 a46a 450D0000 		.long	0xd45
- 42004 a46e 00000000 		.quad	.LBB2318
- 42004      00000000 
- 42005 a476 00000000 		.quad	.LBE2318
- 42005      00000000 
- 42006 a47e 02       		.byte	0x2
- 42007 a47f 5E03     		.value	0x35e
- 42008 a481 98A40000 		.long	0xa498
- 42009 a485 32       		.uleb128 0x32
- 42010 a486 620D0000 		.long	0xd62
- 42011 a48a 03       		.byte	0x3
- 42012 a48b 91       		.byte	0x91
- 42013 a48c F07B     		.sleb128 -528
- 42014 a48e 32       		.uleb128 0x32
- 42015 a48f 570D0000 		.long	0xd57
- 42016 a493 03       		.byte	0x3
- 42017 a494 91       		.byte	0x91
- 42018 a495 807C     		.sleb128 -512
- 42019 a497 00       		.byte	0x0
- 42020 a498 31       		.uleb128 0x31
- 42021 a499 6E0D0000 		.long	0xd6e
- 42022 a49d 00000000 		.quad	.LBB2320
- 42022      00000000 
- 42023 a4a5 00000000 		.quad	.LBE2320
- 42023      00000000 
- 42024 a4ad 02       		.byte	0x2
- 42025 a4ae 6403     		.value	0x364
- 42026 a4b0 FDA40000 		.long	0xa4fd
- 42027 a4b4 32       		.uleb128 0x32
- 42028 a4b5 8C0D0000 		.long	0xd8c
- 42029 a4b9 03       		.byte	0x3
- 42030 a4ba 91       		.byte	0x91
- 42031 a4bb 907C     		.sleb128 -496
- 42032 a4bd 32       		.uleb128 0x32
- 42033 a4be 800D0000 		.long	0xd80
- 42034 a4c2 03       		.byte	0x3
- 42035 a4c3 91       		.byte	0x91
- 42036 a4c4 A07C     		.sleb128 -480
- 42037 a4c6 33       		.uleb128 0x33
- 42038 a4c7 00000000 		.quad	.LBB2321
- 42038      00000000 
- 42039 a4cf 00000000 		.quad	.LBE2321
- 42039      00000000 
- 42040 a4d7 34       		.uleb128 0x34
- 42041 a4d8 980D0000 		.long	0xd98
- 42042 a4dc 03       		.byte	0x3
- 42043 a4dd 91       		.byte	0x91
- 42044 a4de 8052     		.sleb128 -5888
- 42045 a4e0 34       		.uleb128 0x34
- 42046 a4e1 A40D0000 		.long	0xda4
- 42047 a4e5 03       		.byte	0x3
- 42048 a4e6 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1092
-
-
- 42049 a4e7 F051     		.sleb128 -5904
- 42050 a4e9 34       		.uleb128 0x34
- 42051 a4ea AF0D0000 		.long	0xdaf
- 42052 a4ee 03       		.byte	0x3
- 42053 a4ef 91       		.byte	0x91
- 42054 a4f0 E051     		.sleb128 -5920
- 42055 a4f2 34       		.uleb128 0x34
- 42056 a4f3 BB0D0000 		.long	0xdbb
- 42057 a4f7 03       		.byte	0x3
- 42058 a4f8 91       		.byte	0x91
- 42059 a4f9 BC7C     		.sleb128 -452
- 42060 a4fb 00       		.byte	0x0
- 42061 a4fc 00       		.byte	0x0
- 42062 a4fd 31       		.uleb128 0x31
- 42063 a4fe C70D0000 		.long	0xdc7
- 42064 a502 00000000 		.quad	.LBB2322
- 42064      00000000 
- 42065 a50a 00000000 		.quad	.LBE2322
- 42065      00000000 
- 42066 a512 02       		.byte	0x2
- 42067 a513 6603     		.value	0x366
- 42068 a515 2CA50000 		.long	0xa52c
- 42069 a519 32       		.uleb128 0x32
- 42070 a51a E20D0000 		.long	0xde2
- 42071 a51e 03       		.byte	0x3
- 42072 a51f 91       		.byte	0x91
- 42073 a520 C07C     		.sleb128 -448
- 42074 a522 32       		.uleb128 0x32
- 42075 a523 D80D0000 		.long	0xdd8
- 42076 a527 03       		.byte	0x3
- 42077 a528 91       		.byte	0x91
- 42078 a529 D07C     		.sleb128 -432
- 42079 a52b 00       		.byte	0x0
- 42080 a52c 31       		.uleb128 0x31
- 42081 a52d 6E0D0000 		.long	0xd6e
- 42082 a531 00000000 		.quad	.LBB2324
- 42082      00000000 
- 42083 a539 00000000 		.quad	.LBE2324
- 42083      00000000 
- 42084 a541 02       		.byte	0x2
- 42085 a542 6803     		.value	0x368
- 42086 a544 91A50000 		.long	0xa591
- 42087 a548 32       		.uleb128 0x32
- 42088 a549 8C0D0000 		.long	0xd8c
- 42089 a54d 03       		.byte	0x3
- 42090 a54e 91       		.byte	0x91
- 42091 a54f E07C     		.sleb128 -416
- 42092 a551 32       		.uleb128 0x32
- 42093 a552 800D0000 		.long	0xd80
- 42094 a556 03       		.byte	0x3
- 42095 a557 91       		.byte	0x91
- 42096 a558 F07C     		.sleb128 -400
- 42097 a55a 33       		.uleb128 0x33
- 42098 a55b 00000000 		.quad	.LBB2325
- 42098      00000000 
- 42099 a563 00000000 		.quad	.LBE2325
- 42099      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1093
-
-
- 42100 a56b 34       		.uleb128 0x34
- 42101 a56c 980D0000 		.long	0xd98
- 42102 a570 03       		.byte	0x3
- 42103 a571 91       		.byte	0x91
- 42104 a572 B052     		.sleb128 -5840
- 42105 a574 34       		.uleb128 0x34
- 42106 a575 A40D0000 		.long	0xda4
- 42107 a579 03       		.byte	0x3
- 42108 a57a 91       		.byte	0x91
- 42109 a57b A052     		.sleb128 -5856
- 42110 a57d 34       		.uleb128 0x34
- 42111 a57e AF0D0000 		.long	0xdaf
- 42112 a582 03       		.byte	0x3
- 42113 a583 91       		.byte	0x91
- 42114 a584 9052     		.sleb128 -5872
- 42115 a586 34       		.uleb128 0x34
- 42116 a587 BB0D0000 		.long	0xdbb
- 42117 a58b 03       		.byte	0x3
- 42118 a58c 91       		.byte	0x91
- 42119 a58d 8C7D     		.sleb128 -372
- 42120 a58f 00       		.byte	0x0
- 42121 a590 00       		.byte	0x0
- 42122 a591 31       		.uleb128 0x31
- 42123 a592 C70D0000 		.long	0xdc7
- 42124 a596 00000000 		.quad	.LBB2326
- 42124      00000000 
- 42125 a59e 00000000 		.quad	.LBE2326
- 42125      00000000 
- 42126 a5a6 02       		.byte	0x2
- 42127 a5a7 6A03     		.value	0x36a
- 42128 a5a9 C0A50000 		.long	0xa5c0
- 42129 a5ad 32       		.uleb128 0x32
- 42130 a5ae E20D0000 		.long	0xde2
- 42131 a5b2 03       		.byte	0x3
- 42132 a5b3 91       		.byte	0x91
- 42133 a5b4 907D     		.sleb128 -368
- 42134 a5b6 32       		.uleb128 0x32
- 42135 a5b7 D80D0000 		.long	0xdd8
- 42136 a5bb 03       		.byte	0x3
- 42137 a5bc 91       		.byte	0x91
- 42138 a5bd A07D     		.sleb128 -352
- 42139 a5bf 00       		.byte	0x0
- 42140 a5c0 31       		.uleb128 0x31
- 42141 a5c1 ED0D0000 		.long	0xded
- 42142 a5c5 00000000 		.quad	.LBB2328
- 42142      00000000 
- 42143 a5cd 00000000 		.quad	.LBE2328
- 42143      00000000 
- 42144 a5d5 02       		.byte	0x2
- 42145 a5d6 6C03     		.value	0x36c
- 42146 a5d8 EFA50000 		.long	0xa5ef
- 42147 a5dc 32       		.uleb128 0x32
- 42148 a5dd 0A0E0000 		.long	0xe0a
- 42149 a5e1 03       		.byte	0x3
- 42150 a5e2 91       		.byte	0x91
- 42151 a5e3 B07D     		.sleb128 -336
- 42152 a5e5 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1094
-
-
- 42153 a5e6 FF0D0000 		.long	0xdff
- 42154 a5ea 03       		.byte	0x3
- 42155 a5eb 91       		.byte	0x91
- 42156 a5ec C07D     		.sleb128 -320
- 42157 a5ee 00       		.byte	0x0
- 42158 a5ef 35       		.uleb128 0x35
- 42159 a5f0 1F0D0000 		.long	0xd1f
- 42160 a5f4 00000000 		.quad	.LBB2330
- 42160      00000000 
- 42161 a5fc 00000000 		.quad	.LBE2330
- 42161      00000000 
- 42162 a604 02       		.byte	0x2
- 42163 a605 6E03     		.value	0x36e
- 42164 a607 32       		.uleb128 0x32
- 42165 a608 3A0D0000 		.long	0xd3a
- 42166 a60c 03       		.byte	0x3
- 42167 a60d 91       		.byte	0x91
- 42168 a60e D07D     		.sleb128 -304
- 42169 a610 32       		.uleb128 0x32
- 42170 a611 300D0000 		.long	0xd30
- 42171 a615 03       		.byte	0x3
- 42172 a616 91       		.byte	0x91
- 42173 a617 E07D     		.sleb128 -288
- 42174 a619 00       		.byte	0x0
- 42175 a61a 00       		.byte	0x0
- 42176 a61b 00       		.byte	0x0
- 42177 a61c 00       		.byte	0x0
- 42178 a61d 36       		.uleb128 0x36
- 42179 a61e 00000000 		.quad	.LBB2332
- 42179      00000000 
- 42180 a626 00000000 		.quad	.LBE2332
- 42180      00000000 
- 42181 a62e 3CA60000 		.long	0xa63c
- 42182 a632 34       		.uleb128 0x34
- 42183 a633 180C0000 		.long	0xc18
- 42184 a637 03       		.byte	0x3
- 42185 a638 91       		.byte	0x91
- 42186 a639 C051     		.sleb128 -5952
- 42187 a63b 00       		.byte	0x0
- 42188 a63c 31       		.uleb128 0x31
- 42189 a63d 160E0000 		.long	0xe16
- 42190 a641 00000000 		.quad	.LBB2333
- 42190      00000000 
- 42191 a649 00000000 		.quad	.LBE2333
- 42191      00000000 
- 42192 a651 02       		.byte	0x2
- 42193 a652 9406     		.value	0x694
- 42194 a654 E4A60000 		.long	0xa6e4
- 42195 a658 32       		.uleb128 0x32
- 42196 a659 280E0000 		.long	0xe28
- 42197 a65d 03       		.byte	0x3
- 42198 a65e 91       		.byte	0x91
- 42199 a65f F07D     		.sleb128 -272
- 42200 a661 33       		.uleb128 0x33
- 42201 a662 00000000 		.quad	.LBB2334
- 42201      00000000 
- 42202 a66a 00000000 		.quad	.LBE2334
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1095
-
-
- 42202      00000000 
- 42203 a672 34       		.uleb128 0x34
- 42204 a673 340E0000 		.long	0xe34
- 42205 a677 09       		.byte	0x9
- 42206 a678 03       		.byte	0x3
- 42207 a679 00000000 		.quad	ShiftRowTable.6768
- 42207      00000000 
- 42208 a681 35       		.uleb128 0x35
- 42209 a682 6E0D0000 		.long	0xd6e
- 42210 a686 00000000 		.quad	.LBB2335
- 42210      00000000 
- 42211 a68e 00000000 		.quad	.LBE2335
- 42211      00000000 
- 42212 a696 02       		.byte	0x2
- 42213 a697 9B02     		.value	0x29b
- 42214 a699 32       		.uleb128 0x32
- 42215 a69a 8C0D0000 		.long	0xd8c
- 42216 a69e 03       		.byte	0x3
- 42217 a69f 91       		.byte	0x91
- 42218 a6a0 807E     		.sleb128 -256
- 42219 a6a2 32       		.uleb128 0x32
- 42220 a6a3 800D0000 		.long	0xd80
- 42221 a6a7 03       		.byte	0x3
- 42222 a6a8 91       		.byte	0x91
- 42223 a6a9 907E     		.sleb128 -240
- 42224 a6ab 33       		.uleb128 0x33
- 42225 a6ac 00000000 		.quad	.LBB2336
- 42225      00000000 
- 42226 a6b4 00000000 		.quad	.LBE2336
- 42226      00000000 
- 42227 a6bc 34       		.uleb128 0x34
- 42228 a6bd 980D0000 		.long	0xd98
- 42229 a6c1 03       		.byte	0x3
- 42230 a6c2 91       		.byte	0x91
- 42231 a6c3 E052     		.sleb128 -5792
- 42232 a6c5 34       		.uleb128 0x34
- 42233 a6c6 A40D0000 		.long	0xda4
- 42234 a6ca 03       		.byte	0x3
- 42235 a6cb 91       		.byte	0x91
- 42236 a6cc D052     		.sleb128 -5808
- 42237 a6ce 34       		.uleb128 0x34
- 42238 a6cf AF0D0000 		.long	0xdaf
- 42239 a6d3 03       		.byte	0x3
- 42240 a6d4 91       		.byte	0x91
- 42241 a6d5 C052     		.sleb128 -5824
- 42242 a6d7 34       		.uleb128 0x34
- 42243 a6d8 BB0D0000 		.long	0xdbb
- 42244 a6dc 03       		.byte	0x3
- 42245 a6dd 91       		.byte	0x91
- 42246 a6de AC7E     		.sleb128 -212
- 42247 a6e0 00       		.byte	0x0
- 42248 a6e1 00       		.byte	0x0
- 42249 a6e2 00       		.byte	0x0
- 42250 a6e3 00       		.byte	0x0
- 42251 a6e4 36       		.uleb128 0x36
- 42252 a6e5 00000000 		.quad	.LBB2337
- 42252      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1096
-
-
- 42253 a6ed 00000000 		.quad	.LBE2337
- 42253      00000000 
- 42254 a6f5 03A70000 		.long	0xa703
- 42255 a6f9 34       		.uleb128 0x34
- 42256 a6fa 280C0000 		.long	0xc28
- 42257 a6fe 03       		.byte	0x3
- 42258 a6ff 91       		.byte	0x91
- 42259 a700 B051     		.sleb128 -5968
- 42260 a702 00       		.byte	0x0
- 42261 a703 31       		.uleb128 0x31
- 42262 a704 520E0000 		.long	0xe52
- 42263 a708 00000000 		.quad	.LBB2338
- 42263      00000000 
- 42264 a710 00000000 		.quad	.LBE2338
- 42264      00000000 
- 42265 a718 02       		.byte	0x2
- 42266 a719 9606     		.value	0x696
- 42267 a71b 32A70000 		.long	0xa732
- 42268 a71f 32       		.uleb128 0x32
- 42269 a720 6D0E0000 		.long	0xe6d
- 42270 a724 03       		.byte	0x3
- 42271 a725 91       		.byte	0x91
- 42272 a726 B07E     		.sleb128 -208
- 42273 a728 32       		.uleb128 0x32
- 42274 a729 630E0000 		.long	0xe63
- 42275 a72d 03       		.byte	0x3
- 42276 a72e 91       		.byte	0x91
- 42277 a72f C07E     		.sleb128 -192
- 42278 a731 00       		.byte	0x0
- 42279 a732 36       		.uleb128 0x36
- 42280 a733 00000000 		.quad	.LBB2340
- 42280      00000000 
- 42281 a73b 00000000 		.quad	.LBE2340
- 42281      00000000 
- 42282 a743 51A70000 		.long	0xa751
- 42283 a747 34       		.uleb128 0x34
- 42284 a748 380C0000 		.long	0xc38
- 42285 a74c 03       		.byte	0x3
- 42286 a74d 91       		.byte	0x91
- 42287 a74e A051     		.sleb128 -5984
- 42288 a750 00       		.byte	0x0
- 42289 a751 31       		.uleb128 0x31
- 42290 a752 780E0000 		.long	0xe78
- 42291 a756 00000000 		.quad	.LBB2341
- 42291      00000000 
- 42292 a75e 00000000 		.quad	.LBE2341
- 42292      00000000 
- 42293 a766 02       		.byte	0x2
- 42294 a767 9806     		.value	0x698
- 42295 a769 92A70000 		.long	0xa792
- 42296 a76d 32       		.uleb128 0x32
- 42297 a76e 8A0E0000 		.long	0xe8a
- 42298 a772 03       		.byte	0x3
- 42299 a773 91       		.byte	0x91
- 42300 a774 D07E     		.sleb128 -176
- 42301 a776 33       		.uleb128 0x33
- 42302 a777 00000000 		.quad	.LBB2342
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1097
-
-
- 42302      00000000 
- 42303 a77f 00000000 		.quad	.LBE2342
- 42303      00000000 
- 42304 a787 34       		.uleb128 0x34
- 42305 a788 960E0000 		.long	0xe96
- 42306 a78c 03       		.byte	0x3
- 42307 a78d 91       		.byte	0x91
- 42308 a78e F052     		.sleb128 -5776
- 42309 a790 00       		.byte	0x0
- 42310 a791 00       		.byte	0x0
- 42311 a792 33       		.uleb128 0x33
- 42312 a793 00000000 		.quad	.LBB2343
- 42312      00000000 
- 42313 a79b 00000000 		.quad	.LBE2343
- 42313      00000000 
- 42314 a7a3 34       		.uleb128 0x34
- 42315 a7a4 440C0000 		.long	0xc44
- 42316 a7a8 03       		.byte	0x3
- 42317 a7a9 91       		.byte	0x91
- 42318 a7aa 9051     		.sleb128 -6000
- 42319 a7ac 00       		.byte	0x0
- 42320 a7ad 00       		.byte	0x0
- 42321 a7ae 00       		.byte	0x0
- 42322 a7af 31       		.uleb128 0x31
- 42323 a7b0 A30E0000 		.long	0xea3
- 42324 a7b4 00000000 		.quad	.LBB2344
- 42324      00000000 
- 42325 a7bc 00000000 		.quad	.LBE2344
- 42325      00000000 
- 42326 a7c4 02       		.byte	0x2
- 42327 a7c5 9207     		.value	0x792
- 42328 a7c7 B0A80000 		.long	0xa8b0
- 42329 a7cb 32       		.uleb128 0x32
- 42330 a7cc B50E0000 		.long	0xeb5
- 42331 a7d0 03       		.byte	0x3
- 42332 a7d1 91       		.byte	0x91
- 42333 a7d2 E07E     		.sleb128 -160
- 42334 a7d4 33       		.uleb128 0x33
- 42335 a7d5 00000000 		.quad	.LBB2345
- 42335      00000000 
- 42336 a7dd 00000000 		.quad	.LBE2345
- 42336      00000000 
- 42337 a7e5 34       		.uleb128 0x34
- 42338 a7e6 C10E0000 		.long	0xec1
- 42339 a7ea 04       		.byte	0x4
- 42340 a7eb 76       		.byte	0x76
- 42341 a7ec C0BF7F   		.sleb128 -8256
- 42342 a7ef 31       		.uleb128 0x31
- 42343 a7f0 CE0E0000 		.long	0xece
- 42344 a7f4 00000000 		.quad	.LBB2346
- 42344      00000000 
- 42345 a7fc 00000000 		.quad	.LBE2346
- 42345      00000000 
- 42346 a804 02       		.byte	0x2
- 42347 a805 1F06     		.value	0x61f
- 42348 a807 30A80000 		.long	0xa830
- 42349 a80b 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1098
-
-
- 42350 a80c E00E0000 		.long	0xee0
- 42351 a810 03       		.byte	0x3
- 42352 a811 91       		.byte	0x91
- 42353 a812 F07E     		.sleb128 -144
- 42354 a814 33       		.uleb128 0x33
- 42355 a815 00000000 		.quad	.LBB2347
- 42355      00000000 
- 42356 a81d 00000000 		.quad	.LBE2347
- 42356      00000000 
- 42357 a825 34       		.uleb128 0x34
- 42358 a826 EC0E0000 		.long	0xeec
- 42359 a82a 03       		.byte	0x3
- 42360 a82b 91       		.byte	0x91
- 42361 a82c 8053     		.sleb128 -5760
- 42362 a82e 00       		.byte	0x0
- 42363 a82f 00       		.byte	0x0
- 42364 a830 31       		.uleb128 0x31
- 42365 a831 CE0E0000 		.long	0xece
- 42366 a835 00000000 		.quad	.LBB2348
- 42366      00000000 
- 42367 a83d 00000000 		.quad	.LBE2348
- 42367      00000000 
- 42368 a845 02       		.byte	0x2
- 42369 a846 2006     		.value	0x620
- 42370 a848 71A80000 		.long	0xa871
- 42371 a84c 32       		.uleb128 0x32
- 42372 a84d E00E0000 		.long	0xee0
- 42373 a851 03       		.byte	0x3
- 42374 a852 91       		.byte	0x91
- 42375 a853 807F     		.sleb128 -128
- 42376 a855 33       		.uleb128 0x33
- 42377 a856 00000000 		.quad	.LBB2349
- 42377      00000000 
- 42378 a85e 00000000 		.quad	.LBE2349
- 42378      00000000 
- 42379 a866 34       		.uleb128 0x34
- 42380 a867 EC0E0000 		.long	0xeec
- 42381 a86b 03       		.byte	0x3
- 42382 a86c 91       		.byte	0x91
- 42383 a86d 9053     		.sleb128 -5744
- 42384 a86f 00       		.byte	0x0
- 42385 a870 00       		.byte	0x0
- 42386 a871 35       		.uleb128 0x35
- 42387 a872 CE0E0000 		.long	0xece
- 42388 a876 00000000 		.quad	.LBB2350
- 42388      00000000 
- 42389 a87e 00000000 		.quad	.LBE2350
- 42389      00000000 
- 42390 a886 02       		.byte	0x2
- 42391 a887 2106     		.value	0x621
- 42392 a889 32       		.uleb128 0x32
- 42393 a88a E00E0000 		.long	0xee0
- 42394 a88e 03       		.byte	0x3
- 42395 a88f 91       		.byte	0x91
- 42396 a890 907F     		.sleb128 -112
- 42397 a892 33       		.uleb128 0x33
- 42398 a893 00000000 		.quad	.LBB2351
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1099
-
-
- 42398      00000000 
- 42399 a89b 00000000 		.quad	.LBE2351
- 42399      00000000 
- 42400 a8a3 34       		.uleb128 0x34
- 42401 a8a4 EC0E0000 		.long	0xeec
- 42402 a8a8 03       		.byte	0x3
- 42403 a8a9 91       		.byte	0x91
- 42404 a8aa A053     		.sleb128 -5728
- 42405 a8ac 00       		.byte	0x0
- 42406 a8ad 00       		.byte	0x0
- 42407 a8ae 00       		.byte	0x0
- 42408 a8af 00       		.byte	0x0
- 42409 a8b0 35       		.uleb128 0x35
- 42410 a8b1 520E0000 		.long	0xe52
- 42411 a8b5 00000000 		.quad	.LBB2352
- 42411      00000000 
- 42412 a8bd 00000000 		.quad	.LBE2352
- 42412      00000000 
- 42413 a8c5 02       		.byte	0x2
- 42414 a8c6 9207     		.value	0x792
- 42415 a8c8 32       		.uleb128 0x32
- 42416 a8c9 6D0E0000 		.long	0xe6d
- 42417 a8cd 03       		.byte	0x3
- 42418 a8ce 91       		.byte	0x91
- 42419 a8cf A07F     		.sleb128 -96
- 42420 a8d1 32       		.uleb128 0x32
- 42421 a8d2 630E0000 		.long	0xe63
- 42422 a8d6 03       		.byte	0x3
- 42423 a8d7 91       		.byte	0x91
- 42424 a8d8 B07F     		.sleb128 -80
- 42425 a8da 00       		.byte	0x0
- 42426 a8db 00       		.byte	0x0
- 42427 a8dc 25       		.uleb128 0x25
- 42428 a8dd 00000000 		.long	.LASF355
- 42429 a8e1 02       		.byte	0x2
- 42430 a8e2 4B04     		.value	0x44b
- 42431 a8e4 01       		.byte	0x1
- 42432 a8e5 B1010000 		.long	0x1b1
- 42433 a8e9 03       		.byte	0x3
- 42434 a8ea 6EA90000 		.long	0xa96e
- 42435 a8ee 26       		.uleb128 0x26
- 42436 a8ef 00000000 		.long	.LASF66
- 42437 a8f3 02       		.byte	0x2
- 42438 a8f4 4B04     		.value	0x44b
- 42439 a8f6 B1010000 		.long	0x1b1
- 42440 a8fa 28       		.uleb128 0x28
- 42441 a8fb 723100   		.string	"r1"
- 42442 a8fe 02       		.byte	0x2
- 42443 a8ff 5004     		.value	0x450
- 42444 a901 B1010000 		.long	0x1b1
- 42445 a905 28       		.uleb128 0x28
- 42446 a906 723200   		.string	"r2"
- 42447 a909 02       		.byte	0x2
- 42448 a90a 5004     		.value	0x450
- 42449 a90c B1010000 		.long	0x1b1
- 42450 a910 28       		.uleb128 0x28
- 42451 a911 723300   		.string	"r3"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1100
-
-
- 42452 a914 02       		.byte	0x2
- 42453 a915 5004     		.value	0x450
- 42454 a917 B1010000 		.long	0x1b1
- 42455 a91b 28       		.uleb128 0x28
- 42456 a91c 663200   		.string	"f2"
- 42457 a91f 02       		.byte	0x2
- 42458 a920 5004     		.value	0x450
- 42459 a922 B1010000 		.long	0x1b1
- 42460 a926 28       		.uleb128 0x28
- 42461 a927 663400   		.string	"f4"
- 42462 a92a 02       		.byte	0x2
- 42463 a92b 5004     		.value	0x450
- 42464 a92d B1010000 		.long	0x1b1
- 42465 a931 28       		.uleb128 0x28
- 42466 a932 663800   		.string	"f8"
- 42467 a935 02       		.byte	0x2
- 42468 a936 5004     		.value	0x450
- 42469 a938 B1010000 		.long	0x1b1
- 42470 a93c 2A       		.uleb128 0x2a
- 42471 a93d 28       		.uleb128 0x28
- 42472 a93e 66753200 		.string	"fu2"
- 42473 a942 02       		.byte	0x2
- 42474 a943 6304     		.value	0x463
- 42475 a945 27050000 		.long	0x527
- 42476 a949 28       		.uleb128 0x28
- 42477 a94a 66753400 		.string	"fu4"
- 42478 a94e 02       		.byte	0x2
- 42479 a94f 6304     		.value	0x463
- 42480 a951 27050000 		.long	0x527
- 42481 a955 28       		.uleb128 0x28
- 42482 a956 66753800 		.string	"fu8"
- 42483 a95a 02       		.byte	0x2
- 42484 a95b 6304     		.value	0x463
- 42485 a95d 27050000 		.long	0x527
- 42486 a961 28       		.uleb128 0x28
- 42487 a962 697800   		.string	"ix"
- 42488 a965 02       		.byte	0x2
- 42489 a966 6404     		.value	0x464
- 42490 a968 6D000000 		.long	0x6d
- 42491 a96c 00       		.byte	0x0
- 42492 a96d 00       		.byte	0x0
- 42493 a96e 25       		.uleb128 0x25
- 42494 a96f 00000000 		.long	.LASF356
- 42495 a973 02       		.byte	0x2
- 42496 a974 F203     		.value	0x3f2
- 42497 a976 01       		.byte	0x1
- 42498 a977 FC030000 		.long	0x3fc
- 42499 a97b 03       		.byte	0x3
- 42500 a97c 8BA90000 		.long	0xa98b
- 42501 a980 2B       		.uleb128 0x2b
- 42502 a981 6200     		.string	"b"
- 42503 a983 02       		.byte	0x2
- 42504 a984 F203     		.value	0x3f2
- 42505 a986 FC030000 		.long	0x3fc
- 42506 a98a 00       		.byte	0x0
- 42507 a98b 25       		.uleb128 0x25
- 42508 a98c 00000000 		.long	.LASF357
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1101
-
-
- 42509 a990 02       		.byte	0x2
- 42510 a991 E703     		.value	0x3e7
- 42511 a993 01       		.byte	0x1
- 42512 a994 FC030000 		.long	0x3fc
- 42513 a998 03       		.byte	0x3
- 42514 a999 A8A90000 		.long	0xa9a8
- 42515 a99d 2B       		.uleb128 0x2b
- 42516 a99e 7800     		.string	"x"
- 42517 a9a0 02       		.byte	0x2
- 42518 a9a1 E703     		.value	0x3e7
- 42519 a9a3 49000000 		.long	0x49
- 42520 a9a7 00       		.byte	0x0
- 42521 a9a8 25       		.uleb128 0x25
- 42522 a9a9 00000000 		.long	.LASF358
- 42523 a9ad 02       		.byte	0x2
- 42524 a9ae FD03     		.value	0x3fd
- 42525 a9b0 01       		.byte	0x1
- 42526 a9b1 FC030000 		.long	0x3fc
- 42527 a9b5 03       		.byte	0x3
- 42528 a9b6 C5A90000 		.long	0xa9c5
- 42529 a9ba 2B       		.uleb128 0x2b
- 42530 a9bb 6200     		.string	"b"
- 42531 a9bd 02       		.byte	0x2
- 42532 a9be FD03     		.value	0x3fd
- 42533 a9c0 FC030000 		.long	0x3fc
- 42534 a9c4 00       		.byte	0x0
- 42535 a9c5 25       		.uleb128 0x25
- 42536 a9c6 00000000 		.long	.LASF359
- 42537 a9ca 02       		.byte	0x2
- 42538 a9cb 0804     		.value	0x408
- 42539 a9cd 01       		.byte	0x1
- 42540 a9ce FC030000 		.long	0x3fc
- 42541 a9d2 03       		.byte	0x3
- 42542 a9d3 E2A90000 		.long	0xa9e2
- 42543 a9d7 2B       		.uleb128 0x2b
- 42544 a9d8 6200     		.string	"b"
- 42545 a9da 02       		.byte	0x2
- 42546 a9db 0804     		.value	0x408
- 42547 a9dd FC030000 		.long	0x3fc
- 42548 a9e1 00       		.byte	0x0
- 42549 a9e2 2D       		.uleb128 0x2d
- 42550 a9e3 00000000 		.long	.LASF360
- 42551 a9e7 02       		.byte	0x2
- 42552 a9e8 9E07     		.value	0x79e
- 42553 a9ea 01       		.byte	0x1
- 42554 a9eb 00000000 		.quad	.LFB566
- 42554      00000000 
- 42555 a9f3 00000000 		.quad	.LFE566
- 42555      00000000 
- 42556 a9fb 00000000 		.long	.LLST4
- 42557 a9ff 30AF0000 		.long	0xaf30
- 42558 aa03 2F       		.uleb128 0x2f
- 42559 aa04 7200     		.string	"r"
- 42560 aa06 02       		.byte	0x2
- 42561 aa07 9E07     		.value	0x79e
- 42562 aa09 89480000 		.long	0x4889
- 42563 aa0d 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1102
-
-
- 42564 aa0e 91       		.byte	0x91
- 42565 aa0f 987A     		.sleb128 -744
- 42566 aa11 2F       		.uleb128 0x2f
- 42567 aa12 647200   		.string	"dr"
- 42568 aa15 02       		.byte	0x2
- 42569 aa16 9E07     		.value	0x79e
- 42570 aa18 140D0000 		.long	0xd14
- 42571 aa1c 03       		.byte	0x3
- 42572 aa1d 91       		.byte	0x91
- 42573 aa1e 907A     		.sleb128 -752
- 42574 aa20 2F       		.uleb128 0x2f
- 42575 aa21 4E7200   		.string	"Nr"
- 42576 aa24 02       		.byte	0x2
- 42577 aa25 9E07     		.value	0x79e
- 42578 aa27 6D000000 		.long	0x6d
- 42579 aa2b 03       		.byte	0x3
- 42580 aa2c 91       		.byte	0x91
- 42581 aa2d 8C7A     		.sleb128 -756
- 42582 aa2f 37       		.uleb128 0x37
- 42583 aa30 697800   		.string	"ix"
- 42584 aa33 02       		.byte	0x2
- 42585 aa34 A007     		.value	0x7a0
- 42586 aa36 6D000000 		.long	0x6d
- 42587 aa3a 03       		.byte	0x3
- 42588 aa3b 91       		.byte	0x91
- 42589 aa3c E87B     		.sleb128 -536
- 42590 aa3e 37       		.uleb128 0x37
- 42591 aa3f 6A7800   		.string	"jx"
- 42592 aa42 02       		.byte	0x2
- 42593 aa43 A007     		.value	0x7a0
- 42594 aa45 6D000000 		.long	0x6d
- 42595 aa49 03       		.byte	0x3
- 42596 aa4a 91       		.byte	0x91
- 42597 aa4b EC7B     		.sleb128 -532
- 42598 aa4d 35       		.uleb128 0x35
- 42599 aa4e DCA80000 		.long	0xa8dc
- 42600 aa52 00000000 		.quad	.LBB2397
- 42600      00000000 
- 42601 aa5a 00000000 		.quad	.LBE2397
- 42601      00000000 
- 42602 aa62 02       		.byte	0x2
- 42603 aa63 A607     		.value	0x7a6
- 42604 aa65 32       		.uleb128 0x32
- 42605 aa66 EEA80000 		.long	0xa8ee
- 42606 aa6a 03       		.byte	0x3
- 42607 aa6b 91       		.byte	0x91
- 42608 aa6c F07B     		.sleb128 -528
- 42609 aa6e 33       		.uleb128 0x33
- 42610 aa6f 00000000 		.quad	.LBB2398
- 42610      00000000 
- 42611 aa77 00000000 		.quad	.LBE2398
- 42611      00000000 
- 42612 aa7f 34       		.uleb128 0x34
- 42613 aa80 FAA80000 		.long	0xa8fa
- 42614 aa84 03       		.byte	0x3
- 42615 aa85 76       		.byte	0x76
- 42616 aa86 807A     		.sleb128 -768
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1103
-
-
- 42617 aa88 34       		.uleb128 0x34
- 42618 aa89 05A90000 		.long	0xa905
- 42619 aa8d 03       		.byte	0x3
- 42620 aa8e 76       		.byte	0x76
- 42621 aa8f F079     		.sleb128 -784
- 42622 aa91 34       		.uleb128 0x34
- 42623 aa92 10A90000 		.long	0xa910
- 42624 aa96 03       		.byte	0x3
- 42625 aa97 76       		.byte	0x76
- 42626 aa98 E079     		.sleb128 -800
- 42627 aa9a 34       		.uleb128 0x34
- 42628 aa9b 1BA90000 		.long	0xa91b
- 42629 aa9f 03       		.byte	0x3
- 42630 aaa0 76       		.byte	0x76
- 42631 aaa1 D079     		.sleb128 -816
- 42632 aaa3 34       		.uleb128 0x34
- 42633 aaa4 26A90000 		.long	0xa926
- 42634 aaa8 03       		.byte	0x3
- 42635 aaa9 76       		.byte	0x76
- 42636 aaaa C079     		.sleb128 -832
- 42637 aaac 34       		.uleb128 0x34
- 42638 aaad 31A90000 		.long	0xa931
- 42639 aab1 03       		.byte	0x3
- 42640 aab2 76       		.byte	0x76
- 42641 aab3 B079     		.sleb128 -848
- 42642 aab5 31       		.uleb128 0x31
- 42643 aab6 160E0000 		.long	0xe16
- 42644 aaba 00000000 		.quad	.LBB2399
- 42644      00000000 
- 42645 aac2 00000000 		.quad	.LBE2399
- 42645      00000000 
- 42646 aaca 02       		.byte	0x2
- 42647 aacb 5204     		.value	0x452
- 42648 aacd 5DAB0000 		.long	0xab5d
- 42649 aad1 32       		.uleb128 0x32
- 42650 aad2 280E0000 		.long	0xe28
- 42651 aad6 03       		.byte	0x3
- 42652 aad7 91       		.byte	0x91
- 42653 aad8 907C     		.sleb128 -496
- 42654 aada 33       		.uleb128 0x33
- 42655 aadb 00000000 		.quad	.LBB2400
- 42655      00000000 
- 42656 aae3 00000000 		.quad	.LBE2400
- 42656      00000000 
- 42657 aaeb 34       		.uleb128 0x34
- 42658 aaec 340E0000 		.long	0xe34
- 42659 aaf0 09       		.byte	0x9
- 42660 aaf1 03       		.byte	0x3
- 42661 aaf2 00000000 		.quad	ShiftRowTable.6768
- 42661      00000000 
- 42662 aafa 35       		.uleb128 0x35
- 42663 aafb 6E0D0000 		.long	0xd6e
- 42664 aaff 00000000 		.quad	.LBB2401
- 42664      00000000 
- 42665 ab07 00000000 		.quad	.LBE2401
- 42665      00000000 
- 42666 ab0f 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1104
-
-
- 42667 ab10 9B02     		.value	0x29b
- 42668 ab12 32       		.uleb128 0x32
- 42669 ab13 8C0D0000 		.long	0xd8c
- 42670 ab17 03       		.byte	0x3
- 42671 ab18 91       		.byte	0x91
- 42672 ab19 A07C     		.sleb128 -480
- 42673 ab1b 32       		.uleb128 0x32
- 42674 ab1c 800D0000 		.long	0xd80
- 42675 ab20 03       		.byte	0x3
- 42676 ab21 91       		.byte	0x91
- 42677 ab22 B07C     		.sleb128 -464
- 42678 ab24 33       		.uleb128 0x33
- 42679 ab25 00000000 		.quad	.LBB2402
- 42679      00000000 
- 42680 ab2d 00000000 		.quad	.LBE2402
- 42680      00000000 
- 42681 ab35 34       		.uleb128 0x34
- 42682 ab36 980D0000 		.long	0xd98
- 42683 ab3a 03       		.byte	0x3
- 42684 ab3b 91       		.byte	0x91
- 42685 ab3c F07A     		.sleb128 -656
- 42686 ab3e 34       		.uleb128 0x34
- 42687 ab3f A40D0000 		.long	0xda4
- 42688 ab43 03       		.byte	0x3
- 42689 ab44 91       		.byte	0x91
- 42690 ab45 E07A     		.sleb128 -672
- 42691 ab47 34       		.uleb128 0x34
- 42692 ab48 AF0D0000 		.long	0xdaf
- 42693 ab4c 03       		.byte	0x3
- 42694 ab4d 91       		.byte	0x91
- 42695 ab4e D07A     		.sleb128 -688
- 42696 ab50 34       		.uleb128 0x34
- 42697 ab51 BB0D0000 		.long	0xdbb
- 42698 ab55 03       		.byte	0x3
- 42699 ab56 91       		.byte	0x91
- 42700 ab57 CC7C     		.sleb128 -436
- 42701 ab59 00       		.byte	0x0
- 42702 ab5a 00       		.byte	0x0
- 42703 ab5b 00       		.byte	0x0
- 42704 ab5c 00       		.byte	0x0
- 42705 ab5d 31       		.uleb128 0x31
- 42706 ab5e 160E0000 		.long	0xe16
- 42707 ab62 00000000 		.quad	.LBB2403
- 42707      00000000 
- 42708 ab6a 00000000 		.quad	.LBE2403
- 42708      00000000 
- 42709 ab72 02       		.byte	0x2
- 42710 ab73 5304     		.value	0x453
- 42711 ab75 05AC0000 		.long	0xac05
- 42712 ab79 32       		.uleb128 0x32
- 42713 ab7a 280E0000 		.long	0xe28
- 42714 ab7e 03       		.byte	0x3
- 42715 ab7f 91       		.byte	0x91
- 42716 ab80 D07C     		.sleb128 -432
- 42717 ab82 33       		.uleb128 0x33
- 42718 ab83 00000000 		.quad	.LBB2404
- 42718      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1105
-
-
- 42719 ab8b 00000000 		.quad	.LBE2404
- 42719      00000000 
- 42720 ab93 34       		.uleb128 0x34
- 42721 ab94 340E0000 		.long	0xe34
- 42722 ab98 09       		.byte	0x9
- 42723 ab99 03       		.byte	0x3
- 42724 ab9a 00000000 		.quad	ShiftRowTable.6768
- 42724      00000000 
- 42725 aba2 35       		.uleb128 0x35
- 42726 aba3 6E0D0000 		.long	0xd6e
- 42727 aba7 00000000 		.quad	.LBB2405
- 42727      00000000 
- 42728 abaf 00000000 		.quad	.LBE2405
- 42728      00000000 
- 42729 abb7 02       		.byte	0x2
- 42730 abb8 9B02     		.value	0x29b
- 42731 abba 32       		.uleb128 0x32
- 42732 abbb 8C0D0000 		.long	0xd8c
- 42733 abbf 03       		.byte	0x3
- 42734 abc0 91       		.byte	0x91
- 42735 abc1 E07C     		.sleb128 -416
- 42736 abc3 32       		.uleb128 0x32
- 42737 abc4 800D0000 		.long	0xd80
- 42738 abc8 03       		.byte	0x3
- 42739 abc9 91       		.byte	0x91
- 42740 abca F07C     		.sleb128 -400
- 42741 abcc 33       		.uleb128 0x33
- 42742 abcd 00000000 		.quad	.LBB2406
- 42742      00000000 
- 42743 abd5 00000000 		.quad	.LBE2406
- 42743      00000000 
- 42744 abdd 34       		.uleb128 0x34
- 42745 abde 980D0000 		.long	0xd98
- 42746 abe2 03       		.byte	0x3
- 42747 abe3 91       		.byte	0x91
- 42748 abe4 A07B     		.sleb128 -608
- 42749 abe6 34       		.uleb128 0x34
- 42750 abe7 A40D0000 		.long	0xda4
- 42751 abeb 03       		.byte	0x3
- 42752 abec 91       		.byte	0x91
- 42753 abed 907B     		.sleb128 -624
- 42754 abef 34       		.uleb128 0x34
- 42755 abf0 AF0D0000 		.long	0xdaf
- 42756 abf4 03       		.byte	0x3
- 42757 abf5 91       		.byte	0x91
- 42758 abf6 807B     		.sleb128 -640
- 42759 abf8 34       		.uleb128 0x34
- 42760 abf9 BB0D0000 		.long	0xdbb
- 42761 abfd 03       		.byte	0x3
- 42762 abfe 91       		.byte	0x91
- 42763 abff 8C7D     		.sleb128 -372
- 42764 ac01 00       		.byte	0x0
- 42765 ac02 00       		.byte	0x0
- 42766 ac03 00       		.byte	0x0
- 42767 ac04 00       		.byte	0x0
- 42768 ac05 31       		.uleb128 0x31
- 42769 ac06 160E0000 		.long	0xe16
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1106
-
-
- 42770 ac0a 00000000 		.quad	.LBB2407
- 42770      00000000 
- 42771 ac12 00000000 		.quad	.LBE2407
- 42771      00000000 
- 42772 ac1a 02       		.byte	0x2
- 42773 ac1b 5404     		.value	0x454
- 42774 ac1d ADAC0000 		.long	0xacad
- 42775 ac21 32       		.uleb128 0x32
- 42776 ac22 280E0000 		.long	0xe28
- 42777 ac26 03       		.byte	0x3
- 42778 ac27 91       		.byte	0x91
- 42779 ac28 907D     		.sleb128 -368
- 42780 ac2a 33       		.uleb128 0x33
- 42781 ac2b 00000000 		.quad	.LBB2408
- 42781      00000000 
- 42782 ac33 00000000 		.quad	.LBE2408
- 42782      00000000 
- 42783 ac3b 34       		.uleb128 0x34
- 42784 ac3c 340E0000 		.long	0xe34
- 42785 ac40 09       		.byte	0x9
- 42786 ac41 03       		.byte	0x3
- 42787 ac42 00000000 		.quad	ShiftRowTable.6768
- 42787      00000000 
- 42788 ac4a 35       		.uleb128 0x35
- 42789 ac4b 6E0D0000 		.long	0xd6e
- 42790 ac4f 00000000 		.quad	.LBB2409
- 42790      00000000 
- 42791 ac57 00000000 		.quad	.LBE2409
- 42791      00000000 
- 42792 ac5f 02       		.byte	0x2
- 42793 ac60 9B02     		.value	0x29b
- 42794 ac62 32       		.uleb128 0x32
- 42795 ac63 8C0D0000 		.long	0xd8c
- 42796 ac67 03       		.byte	0x3
- 42797 ac68 91       		.byte	0x91
- 42798 ac69 A07D     		.sleb128 -352
- 42799 ac6b 32       		.uleb128 0x32
- 42800 ac6c 800D0000 		.long	0xd80
- 42801 ac70 03       		.byte	0x3
- 42802 ac71 91       		.byte	0x91
- 42803 ac72 B07D     		.sleb128 -336
- 42804 ac74 33       		.uleb128 0x33
- 42805 ac75 00000000 		.quad	.LBB2410
- 42805      00000000 
- 42806 ac7d 00000000 		.quad	.LBE2410
- 42806      00000000 
- 42807 ac85 34       		.uleb128 0x34
- 42808 ac86 980D0000 		.long	0xd98
- 42809 ac8a 03       		.byte	0x3
- 42810 ac8b 91       		.byte	0x91
- 42811 ac8c D07B     		.sleb128 -560
- 42812 ac8e 34       		.uleb128 0x34
- 42813 ac8f A40D0000 		.long	0xda4
- 42814 ac93 03       		.byte	0x3
- 42815 ac94 91       		.byte	0x91
- 42816 ac95 C07B     		.sleb128 -576
- 42817 ac97 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1107
-
-
- 42818 ac98 AF0D0000 		.long	0xdaf
- 42819 ac9c 03       		.byte	0x3
- 42820 ac9d 91       		.byte	0x91
- 42821 ac9e B07B     		.sleb128 -592
- 42822 aca0 34       		.uleb128 0x34
- 42823 aca1 BB0D0000 		.long	0xdbb
- 42824 aca5 03       		.byte	0x3
- 42825 aca6 91       		.byte	0x91
- 42826 aca7 CC7D     		.sleb128 -308
- 42827 aca9 00       		.byte	0x0
- 42828 acaa 00       		.byte	0x0
- 42829 acab 00       		.byte	0x0
- 42830 acac 00       		.byte	0x0
- 42831 acad 31       		.uleb128 0x31
- 42832 acae 520E0000 		.long	0xe52
- 42833 acb2 00000000 		.quad	.LBB2411
- 42833      00000000 
- 42834 acba 00000000 		.quad	.LBE2411
- 42834      00000000 
- 42835 acc2 02       		.byte	0x2
- 42836 acc3 5604     		.value	0x456
- 42837 acc5 DCAC0000 		.long	0xacdc
- 42838 acc9 32       		.uleb128 0x32
- 42839 acca 6D0E0000 		.long	0xe6d
- 42840 acce 03       		.byte	0x3
- 42841 accf 91       		.byte	0x91
- 42842 acd0 D07D     		.sleb128 -304
- 42843 acd2 32       		.uleb128 0x32
- 42844 acd3 630E0000 		.long	0xe63
- 42845 acd7 03       		.byte	0x3
- 42846 acd8 91       		.byte	0x91
- 42847 acd9 E07D     		.sleb128 -288
- 42848 acdb 00       		.byte	0x0
- 42849 acdc 31       		.uleb128 0x31
- 42850 acdd 520E0000 		.long	0xe52
- 42851 ace1 00000000 		.quad	.LBB2413
- 42851      00000000 
- 42852 ace9 00000000 		.quad	.LBE2413
- 42852      00000000 
- 42853 acf1 02       		.byte	0x2
- 42854 acf2 5704     		.value	0x457
- 42855 acf4 0BAD0000 		.long	0xad0b
- 42856 acf8 32       		.uleb128 0x32
- 42857 acf9 6D0E0000 		.long	0xe6d
- 42858 acfd 03       		.byte	0x3
- 42859 acfe 91       		.byte	0x91
- 42860 acff F07D     		.sleb128 -272
- 42861 ad01 32       		.uleb128 0x32
- 42862 ad02 630E0000 		.long	0xe63
- 42863 ad06 03       		.byte	0x3
- 42864 ad07 91       		.byte	0x91
- 42865 ad08 807E     		.sleb128 -256
- 42866 ad0a 00       		.byte	0x0
- 42867 ad0b 31       		.uleb128 0x31
- 42868 ad0c 520E0000 		.long	0xe52
- 42869 ad10 00000000 		.quad	.LBB2415
- 42869      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1108
-
-
- 42870 ad18 00000000 		.quad	.LBE2415
- 42870      00000000 
- 42871 ad20 02       		.byte	0x2
- 42872 ad21 5804     		.value	0x458
- 42873 ad23 3AAD0000 		.long	0xad3a
- 42874 ad27 32       		.uleb128 0x32
- 42875 ad28 6D0E0000 		.long	0xe6d
- 42876 ad2c 03       		.byte	0x3
- 42877 ad2d 91       		.byte	0x91
- 42878 ad2e 907E     		.sleb128 -240
- 42879 ad30 32       		.uleb128 0x32
- 42880 ad31 630E0000 		.long	0xe63
- 42881 ad35 03       		.byte	0x3
- 42882 ad36 91       		.byte	0x91
- 42883 ad37 A07E     		.sleb128 -224
- 42884 ad39 00       		.byte	0x0
- 42885 ad3a 31       		.uleb128 0x31
- 42886 ad3b 520E0000 		.long	0xe52
- 42887 ad3f 00000000 		.quad	.LBB2417
- 42887      00000000 
- 42888 ad47 00000000 		.quad	.LBE2417
- 42888      00000000 
- 42889 ad4f 02       		.byte	0x2
- 42890 ad50 5904     		.value	0x459
- 42891 ad52 69AD0000 		.long	0xad69
- 42892 ad56 32       		.uleb128 0x32
- 42893 ad57 6D0E0000 		.long	0xe6d
- 42894 ad5b 03       		.byte	0x3
- 42895 ad5c 91       		.byte	0x91
- 42896 ad5d B07E     		.sleb128 -208
- 42897 ad5f 32       		.uleb128 0x32
- 42898 ad60 630E0000 		.long	0xe63
- 42899 ad64 03       		.byte	0x3
- 42900 ad65 91       		.byte	0x91
- 42901 ad66 C07E     		.sleb128 -192
- 42902 ad68 00       		.byte	0x0
- 42903 ad69 31       		.uleb128 0x31
- 42904 ad6a 520E0000 		.long	0xe52
- 42905 ad6e 00000000 		.quad	.LBB2419
- 42905      00000000 
- 42906 ad76 00000000 		.quad	.LBE2419
- 42906      00000000 
- 42907 ad7e 02       		.byte	0x2
- 42908 ad7f 5A04     		.value	0x45a
- 42909 ad81 98AD0000 		.long	0xad98
- 42910 ad85 32       		.uleb128 0x32
- 42911 ad86 6D0E0000 		.long	0xe6d
- 42912 ad8a 03       		.byte	0x3
- 42913 ad8b 91       		.byte	0x91
- 42914 ad8c D07E     		.sleb128 -176
- 42915 ad8e 32       		.uleb128 0x32
- 42916 ad8f 630E0000 		.long	0xe63
- 42917 ad93 03       		.byte	0x3
- 42918 ad94 91       		.byte	0x91
- 42919 ad95 E07E     		.sleb128 -160
- 42920 ad97 00       		.byte	0x0
- 42921 ad98 36       		.uleb128 0x36
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1109
-
-
- 42922 ad99 00000000 		.quad	.LBB2421
- 42922      00000000 
- 42923 ada1 00000000 		.quad	.LBE2421
- 42923      00000000 
- 42924 ada9 A6AE0000 		.long	0xaea6
- 42925 adad 34       		.uleb128 0x34
- 42926 adae 3DA90000 		.long	0xa93d
- 42927 adb2 03       		.byte	0x3
- 42928 adb3 91       		.byte	0x91
- 42929 adb4 C07A     		.sleb128 -704
- 42930 adb6 34       		.uleb128 0x34
- 42931 adb7 49A90000 		.long	0xa949
- 42932 adbb 03       		.byte	0x3
- 42933 adbc 91       		.byte	0x91
- 42934 adbd B07A     		.sleb128 -720
- 42935 adbf 34       		.uleb128 0x34
- 42936 adc0 55A90000 		.long	0xa955
- 42937 adc4 03       		.byte	0x3
- 42938 adc5 91       		.byte	0x91
- 42939 adc6 A07A     		.sleb128 -736
- 42940 adc8 34       		.uleb128 0x34
- 42941 adc9 61A90000 		.long	0xa961
- 42942 adcd 03       		.byte	0x3
- 42943 adce 91       		.byte	0x91
- 42944 adcf 8C7C     		.sleb128 -500
- 42945 add1 31       		.uleb128 0x31
- 42946 add2 6EA90000 		.long	0xa96e
- 42947 add6 00000000 		.quad	.LBB2422
- 42947      00000000 
- 42948 adde 00000000 		.quad	.LBE2422
- 42948      00000000 
- 42949 ade6 02       		.byte	0x2
- 42950 ade7 6C04     		.value	0x46c
- 42951 ade9 19AE0000 		.long	0xae19
- 42952 aded 32       		.uleb128 0x32
- 42953 adee 80A90000 		.long	0xa980
- 42954 adf2 03       		.byte	0x3
- 42955 adf3 91       		.byte	0x91
- 42956 adf4 FA7E     		.sleb128 -134
- 42957 adf6 35       		.uleb128 0x35
- 42958 adf7 8BA90000 		.long	0xa98b
- 42959 adfb 00000000 		.quad	.LBB2424
- 42959      00000000 
- 42960 ae03 00000000 		.quad	.LBE2424
- 42960      00000000 
- 42961 ae0b 02       		.byte	0x2
- 42962 ae0c F403     		.value	0x3f4
- 42963 ae0e 32       		.uleb128 0x32
- 42964 ae0f 9DA90000 		.long	0xa99d
- 42965 ae13 03       		.byte	0x3
- 42966 ae14 91       		.byte	0x91
- 42967 ae15 FB7E     		.sleb128 -133
- 42968 ae17 00       		.byte	0x0
- 42969 ae18 00       		.byte	0x0
- 42970 ae19 31       		.uleb128 0x31
- 42971 ae1a A8A90000 		.long	0xa9a8
- 42972 ae1e 00000000 		.quad	.LBB2426
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1110
-
-
- 42972      00000000 
- 42973 ae26 00000000 		.quad	.LBE2426
- 42973      00000000 
- 42974 ae2e 02       		.byte	0x2
- 42975 ae2f 6D04     		.value	0x46d
- 42976 ae31 61AE0000 		.long	0xae61
- 42977 ae35 32       		.uleb128 0x32
- 42978 ae36 BAA90000 		.long	0xa9ba
- 42979 ae3a 03       		.byte	0x3
- 42980 ae3b 91       		.byte	0x91
- 42981 ae3c FC7E     		.sleb128 -132
- 42982 ae3e 35       		.uleb128 0x35
- 42983 ae3f 8BA90000 		.long	0xa98b
- 42984 ae43 00000000 		.quad	.LBB2428
- 42984      00000000 
- 42985 ae4b 00000000 		.quad	.LBE2428
- 42985      00000000 
- 42986 ae53 02       		.byte	0x2
- 42987 ae54 FF03     		.value	0x3ff
- 42988 ae56 32       		.uleb128 0x32
- 42989 ae57 9DA90000 		.long	0xa99d
- 42990 ae5b 03       		.byte	0x3
- 42991 ae5c 91       		.byte	0x91
- 42992 ae5d FD7E     		.sleb128 -131
- 42993 ae5f 00       		.byte	0x0
- 42994 ae60 00       		.byte	0x0
- 42995 ae61 35       		.uleb128 0x35
- 42996 ae62 C5A90000 		.long	0xa9c5
- 42997 ae66 00000000 		.quad	.LBB2430
- 42997      00000000 
- 42998 ae6e 00000000 		.quad	.LBE2430
- 42998      00000000 
- 42999 ae76 02       		.byte	0x2
- 43000 ae77 6E04     		.value	0x46e
- 43001 ae79 32       		.uleb128 0x32
- 43002 ae7a D7A90000 		.long	0xa9d7
- 43003 ae7e 03       		.byte	0x3
- 43004 ae7f 91       		.byte	0x91
- 43005 ae80 FE7E     		.sleb128 -130
- 43006 ae82 35       		.uleb128 0x35
- 43007 ae83 8BA90000 		.long	0xa98b
- 43008 ae87 00000000 		.quad	.LBB2432
- 43008      00000000 
- 43009 ae8f 00000000 		.quad	.LBE2432
- 43009      00000000 
- 43010 ae97 02       		.byte	0x2
- 43011 ae98 0A04     		.value	0x40a
- 43012 ae9a 32       		.uleb128 0x32
- 43013 ae9b 9DA90000 		.long	0xa99d
- 43014 ae9f 03       		.byte	0x3
- 43015 aea0 91       		.byte	0x91
- 43016 aea1 FF7E     		.sleb128 -129
- 43017 aea3 00       		.byte	0x0
- 43018 aea4 00       		.byte	0x0
- 43019 aea5 00       		.byte	0x0
- 43020 aea6 31       		.uleb128 0x31
- 43021 aea7 520E0000 		.long	0xe52
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1111
-
-
- 43022 aeab 00000000 		.quad	.LBB2434
- 43022      00000000 
- 43023 aeb3 00000000 		.quad	.LBE2434
- 43023      00000000 
- 43024 aebb 02       		.byte	0x2
- 43025 aebc 7604     		.value	0x476
- 43026 aebe D5AE0000 		.long	0xaed5
- 43027 aec2 32       		.uleb128 0x32
- 43028 aec3 6D0E0000 		.long	0xe6d
- 43029 aec7 03       		.byte	0x3
- 43030 aec8 91       		.byte	0x91
- 43031 aec9 807F     		.sleb128 -128
- 43032 aecb 32       		.uleb128 0x32
- 43033 aecc 630E0000 		.long	0xe63
- 43034 aed0 03       		.byte	0x3
- 43035 aed1 91       		.byte	0x91
- 43036 aed2 907F     		.sleb128 -112
- 43037 aed4 00       		.byte	0x0
- 43038 aed5 31       		.uleb128 0x31
- 43039 aed6 520E0000 		.long	0xe52
- 43040 aeda 00000000 		.quad	.LBB2436
- 43040      00000000 
- 43041 aee2 00000000 		.quad	.LBE2436
- 43041      00000000 
- 43042 aeea 02       		.byte	0x2
- 43043 aeeb 7704     		.value	0x477
- 43044 aeed 04AF0000 		.long	0xaf04
- 43045 aef1 32       		.uleb128 0x32
- 43046 aef2 6D0E0000 		.long	0xe6d
- 43047 aef6 03       		.byte	0x3
- 43048 aef7 91       		.byte	0x91
- 43049 aef8 A07F     		.sleb128 -96
- 43050 aefa 32       		.uleb128 0x32
- 43051 aefb 630E0000 		.long	0xe63
- 43052 aeff 03       		.byte	0x3
- 43053 af00 91       		.byte	0x91
- 43054 af01 B07F     		.sleb128 -80
- 43055 af03 00       		.byte	0x0
- 43056 af04 35       		.uleb128 0x35
- 43057 af05 520E0000 		.long	0xe52
- 43058 af09 00000000 		.quad	.LBB2438
- 43058      00000000 
- 43059 af11 00000000 		.quad	.LBE2438
- 43059      00000000 
- 43060 af19 02       		.byte	0x2
- 43061 af1a 7804     		.value	0x478
- 43062 af1c 32       		.uleb128 0x32
- 43063 af1d 6D0E0000 		.long	0xe6d
- 43064 af21 02       		.byte	0x2
- 43065 af22 91       		.byte	0x91
- 43066 af23 40       		.sleb128 -64
- 43067 af24 32       		.uleb128 0x32
- 43068 af25 630E0000 		.long	0xe63
- 43069 af29 02       		.byte	0x2
- 43070 af2a 91       		.byte	0x91
- 43071 af2b 50       		.sleb128 -48
- 43072 af2c 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1112
-
-
- 43073 af2d 00       		.byte	0x0
- 43074 af2e 00       		.byte	0x0
- 43075 af2f 00       		.byte	0x0
- 43076 af30 2D       		.uleb128 0x2d
- 43077 af31 00000000 		.long	.LASF361
- 43078 af35 02       		.byte	0x2
- 43079 af36 AC07     		.value	0x7ac
- 43080 af38 01       		.byte	0x1
- 43081 af39 00000000 		.quad	.LFB567
- 43081      00000000 
- 43082 af41 00000000 		.quad	.LFE567
- 43082      00000000 
- 43083 af49 00000000 		.long	.LLST5
- 43084 af4d 6DAF0000 		.long	0xaf6d
- 43085 af51 2F       		.uleb128 0x2f
- 43086 af52 7700     		.string	"w"
- 43087 af54 02       		.byte	0x2
- 43088 af55 AC07     		.value	0x7ac
- 43089 af57 89480000 		.long	0x4889
- 43090 af5b 02       		.byte	0x2
- 43091 af5c 91       		.byte	0x91
- 43092 af5d 68       		.sleb128 -24
- 43093 af5e 2F       		.uleb128 0x2f
- 43094 af5f 6B7700   		.string	"kw"
- 43095 af62 02       		.byte	0x2
- 43096 af63 AC07     		.value	0x7ac
- 43097 af65 140D0000 		.long	0xd14
- 43098 af69 02       		.byte	0x2
- 43099 af6a 91       		.byte	0x91
- 43100 af6b 60       		.sleb128 -32
- 43101 af6c 00       		.byte	0x0
- 43102 af6d 2D       		.uleb128 0x2d
- 43103 af6e 00000000 		.long	.LASF362
- 43104 af72 02       		.byte	0x2
- 43105 af73 B307     		.value	0x7b3
- 43106 af75 01       		.byte	0x1
- 43107 af76 00000000 		.quad	.LFB568
- 43107      00000000 
- 43108 af7e 00000000 		.quad	.LFE568
- 43108      00000000 
- 43109 af86 00000000 		.long	.LLST6
- 43110 af8a AAAF0000 		.long	0xafaa
- 43111 af8e 2F       		.uleb128 0x2f
- 43112 af8f 7700     		.string	"w"
- 43113 af91 02       		.byte	0x2
- 43114 af92 B307     		.value	0x7b3
- 43115 af94 89480000 		.long	0x4889
- 43116 af98 02       		.byte	0x2
- 43117 af99 91       		.byte	0x91
- 43118 af9a 68       		.sleb128 -24
- 43119 af9b 2F       		.uleb128 0x2f
- 43120 af9c 6B7700   		.string	"kw"
- 43121 af9f 02       		.byte	0x2
- 43122 afa0 B307     		.value	0x7b3
- 43123 afa2 140D0000 		.long	0xd14
- 43124 afa6 02       		.byte	0x2
- 43125 afa7 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1113
-
-
- 43126 afa8 60       		.sleb128 -32
- 43127 afa9 00       		.byte	0x0
- 43128 afaa 2D       		.uleb128 0x2d
- 43129 afab 00000000 		.long	.LASF363
- 43130 afaf 02       		.byte	0x2
- 43131 afb0 BA07     		.value	0x7ba
- 43132 afb2 01       		.byte	0x1
- 43133 afb3 00000000 		.quad	.LFB569
- 43133      00000000 
- 43134 afbb 00000000 		.quad	.LFE569
- 43134      00000000 
- 43135 afc3 00000000 		.long	.LLST7
- 43136 afc7 E7AF0000 		.long	0xafe7
- 43137 afcb 2F       		.uleb128 0x2f
- 43138 afcc 7700     		.string	"w"
- 43139 afce 02       		.byte	0x2
- 43140 afcf BA07     		.value	0x7ba
- 43141 afd1 89480000 		.long	0x4889
- 43142 afd5 02       		.byte	0x2
- 43143 afd6 91       		.byte	0x91
- 43144 afd7 68       		.sleb128 -24
- 43145 afd8 2F       		.uleb128 0x2f
- 43146 afd9 6B7700   		.string	"kw"
- 43147 afdc 02       		.byte	0x2
- 43148 afdd BA07     		.value	0x7ba
- 43149 afdf 140D0000 		.long	0xd14
- 43150 afe3 02       		.byte	0x2
- 43151 afe4 91       		.byte	0x91
- 43152 afe5 60       		.sleb128 -32
- 43153 afe6 00       		.byte	0x0
- 43154 afe7 25       		.uleb128 0x25
- 43155 afe8 00000000 		.long	.LASF364
- 43156 afec 02       		.byte	0x2
- 43157 afed C807     		.value	0x7c8
- 43158 afef 01       		.byte	0x1
- 43159 aff0 B1010000 		.long	0x1b1
- 43160 aff4 03       		.byte	0x3
- 43161 aff5 3EB00000 		.long	0xb03e
- 43162 aff9 26       		.uleb128 0x26
- 43163 affa 00000000 		.long	.LASF66
- 43164 affe 02       		.byte	0x2
- 43165 afff C807     		.value	0x7c8
- 43166 b001 B1010000 		.long	0x1b1
- 43167 b005 26       		.uleb128 0x26
- 43168 b006 00000000 		.long	.LASF64
- 43169 b00a 02       		.byte	0x2
- 43170 b00b C807     		.value	0x7c8
- 43171 b00d 1A0D0000 		.long	0xd1a
- 43172 b011 29       		.uleb128 0x29
- 43173 b012 21B00000 		.long	0xb021
- 43174 b016 28       		.uleb128 0x28
- 43175 b017 7600     		.string	"v"
- 43176 b019 02       		.byte	0x2
- 43177 b01a CA07     		.value	0x7ca
- 43178 b01c 27050000 		.long	0x527
- 43179 b020 00       		.byte	0x0
- 43180 b021 29       		.uleb128 0x29
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1114
-
-
- 43181 b022 31B00000 		.long	0xb031
- 43182 b026 28       		.uleb128 0x28
- 43183 b027 7600     		.string	"v"
- 43184 b029 02       		.byte	0x2
- 43185 b02a CC07     		.value	0x7cc
- 43186 b02c 27050000 		.long	0x527
- 43187 b030 00       		.byte	0x0
- 43188 b031 2A       		.uleb128 0x2a
- 43189 b032 28       		.uleb128 0x28
- 43190 b033 7600     		.string	"v"
- 43191 b035 02       		.byte	0x2
- 43192 b036 D007     		.value	0x7d0
- 43193 b038 27050000 		.long	0x527
- 43194 b03c 00       		.byte	0x0
- 43195 b03d 00       		.byte	0x0
- 43196 b03e 25       		.uleb128 0x25
- 43197 b03f 00000000 		.long	.LASF365
- 43198 b043 02       		.byte	0x2
- 43199 b044 2102     		.value	0x221
- 43200 b046 01       		.byte	0x1
- 43201 b047 B1010000 		.long	0x1b1
- 43202 b04b 03       		.byte	0x3
- 43203 b04c 69B00000 		.long	0xb069
- 43204 b050 26       		.uleb128 0x26
- 43205 b051 00000000 		.long	.LASF66
- 43206 b055 02       		.byte	0x2
- 43207 b056 2102     		.value	0x221
- 43208 b058 B1010000 		.long	0x1b1
- 43209 b05c 26       		.uleb128 0x26
- 43210 b05d 00000000 		.long	.LASF366
- 43211 b061 02       		.byte	0x2
- 43212 b062 2102     		.value	0x221
- 43213 b064 B1010000 		.long	0x1b1
- 43214 b068 00       		.byte	0x0
- 43215 b069 25       		.uleb128 0x25
- 43216 b06a 00000000 		.long	.LASF367
- 43217 b06e 02       		.byte	0x2
- 43218 b06f DC07     		.value	0x7dc
- 43219 b071 01       		.byte	0x1
- 43220 b072 B1010000 		.long	0x1b1
- 43221 b076 03       		.byte	0x3
- 43222 b077 08B10000 		.long	0xb108
- 43223 b07b 26       		.uleb128 0x26
- 43224 b07c 00000000 		.long	.LASF66
- 43225 b080 02       		.byte	0x2
- 43226 b081 DC07     		.value	0x7dc
- 43227 b083 B1010000 		.long	0x1b1
- 43228 b087 26       		.uleb128 0x26
- 43229 b088 00000000 		.long	.LASF64
- 43230 b08c 02       		.byte	0x2
- 43231 b08d DD07     		.value	0x7dd
- 43232 b08f 1A0D0000 		.long	0xd1a
- 43233 b093 27       		.uleb128 0x27
- 43234 b094 00000000 		.long	.LASF368
- 43235 b098 02       		.byte	0x2
- 43236 b099 E007     		.value	0x7e0
- 43237 b09b B1010000 		.long	0x1b1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1115
-
-
- 43238 b09f 27       		.uleb128 0x27
- 43239 b0a0 00000000 		.long	.LASF369
- 43240 b0a4 02       		.byte	0x2
- 43241 b0a5 E107     		.value	0x7e1
- 43242 b0a7 B1010000 		.long	0x1b1
- 43243 b0ab 29       		.uleb128 0x29
- 43244 b0ac BBB00000 		.long	0xb0bb
- 43245 b0b0 28       		.uleb128 0x28
- 43246 b0b1 7600     		.string	"v"
- 43247 b0b3 02       		.byte	0x2
- 43248 b0b4 E607     		.value	0x7e6
- 43249 b0b6 27050000 		.long	0x527
- 43250 b0ba 00       		.byte	0x0
- 43251 b0bb 29       		.uleb128 0x29
- 43252 b0bc CBB00000 		.long	0xb0cb
- 43253 b0c0 28       		.uleb128 0x28
- 43254 b0c1 7600     		.string	"v"
- 43255 b0c3 02       		.byte	0x2
- 43256 b0c4 EF07     		.value	0x7ef
- 43257 b0c6 27050000 		.long	0x527
- 43258 b0ca 00       		.byte	0x0
- 43259 b0cb 29       		.uleb128 0x29
- 43260 b0cc DBB00000 		.long	0xb0db
- 43261 b0d0 28       		.uleb128 0x28
- 43262 b0d1 7600     		.string	"v"
- 43263 b0d3 02       		.byte	0x2
- 43264 b0d4 F307     		.value	0x7f3
- 43265 b0d6 27050000 		.long	0x527
- 43266 b0da 00       		.byte	0x0
- 43267 b0db 29       		.uleb128 0x29
- 43268 b0dc EBB00000 		.long	0xb0eb
- 43269 b0e0 28       		.uleb128 0x28
- 43270 b0e1 7600     		.string	"v"
- 43271 b0e3 02       		.byte	0x2
- 43272 b0e4 F807     		.value	0x7f8
- 43273 b0e6 27050000 		.long	0x527
- 43274 b0ea 00       		.byte	0x0
- 43275 b0eb 29       		.uleb128 0x29
- 43276 b0ec FBB00000 		.long	0xb0fb
- 43277 b0f0 28       		.uleb128 0x28
- 43278 b0f1 7600     		.string	"v"
- 43279 b0f3 02       		.byte	0x2
- 43280 b0f4 FC07     		.value	0x7fc
- 43281 b0f6 27050000 		.long	0x527
- 43282 b0fa 00       		.byte	0x0
- 43283 b0fb 2A       		.uleb128 0x2a
- 43284 b0fc 28       		.uleb128 0x28
- 43285 b0fd 7600     		.string	"v"
- 43286 b0ff 02       		.byte	0x2
- 43287 b100 FD07     		.value	0x7fd
- 43288 b102 27050000 		.long	0x527
- 43289 b106 00       		.byte	0x0
- 43290 b107 00       		.byte	0x0
- 43291 b108 25       		.uleb128 0x25
- 43292 b109 00000000 		.long	.LASF370
- 43293 b10d 02       		.byte	0x2
- 43294 b10e 3E02     		.value	0x23e
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1116
-
-
- 43295 b110 01       		.byte	0x1
- 43296 b111 B1010000 		.long	0x1b1
- 43297 b115 03       		.byte	0x3
- 43298 b116 44B10000 		.long	0xb144
- 43299 b11a 26       		.uleb128 0x26
- 43300 b11b 00000000 		.long	.LASF66
- 43301 b11f 02       		.byte	0x2
- 43302 b120 3E02     		.value	0x23e
- 43303 b122 B1010000 		.long	0x1b1
- 43304 b126 2C       		.uleb128 0x2c
- 43305 b127 00000000 		.long	.LASF336
- 43306 b12b 02       		.byte	0x2
- 43307 b12c 4102     		.value	0x241
- 43308 b12e 1A0D0000 		.long	0xd1a
- 43309 b132 10       		.byte	0x10
- 43310 b133 00       		.byte	0x0
- 43311 b134 05       		.byte	0x5
- 43312 b135 0A       		.byte	0xa
- 43313 b136 0F       		.byte	0xf
- 43314 b137 04       		.byte	0x4
- 43315 b138 09       		.byte	0x9
- 43316 b139 0E       		.byte	0xe
- 43317 b13a 03       		.byte	0x3
- 43318 b13b 08       		.byte	0x8
- 43319 b13c 0D       		.byte	0xd
- 43320 b13d 02       		.byte	0x2
- 43321 b13e 07       		.byte	0x7
- 43322 b13f 0C       		.byte	0xc
- 43323 b140 01       		.byte	0x1
- 43324 b141 06       		.byte	0x6
- 43325 b142 0B       		.byte	0xb
- 43326 b143 00       		.byte	0x0
- 43327 b144 25       		.uleb128 0x25
- 43328 b145 00000000 		.long	.LASF371
- 43329 b149 02       		.byte	0x2
- 43330 b14a 1304     		.value	0x413
- 43331 b14c 01       		.byte	0x1
- 43332 b14d B1010000 		.long	0x1b1
- 43333 b151 03       		.byte	0x3
- 43334 b152 A8B10000 		.long	0xb1a8
- 43335 b156 26       		.uleb128 0x26
- 43336 b157 00000000 		.long	.LASF66
- 43337 b15b 02       		.byte	0x2
- 43338 b15c 1304     		.value	0x413
- 43339 b15e B1010000 		.long	0x1b1
- 43340 b162 28       		.uleb128 0x28
- 43341 b163 633000   		.string	"c0"
- 43342 b166 02       		.byte	0x2
- 43343 b167 1504     		.value	0x415
- 43344 b169 B1010000 		.long	0x1b1
- 43345 b16d 28       		.uleb128 0x28
- 43346 b16e 633100   		.string	"c1"
- 43347 b171 02       		.byte	0x2
- 43348 b172 1504     		.value	0x415
- 43349 b174 B1010000 		.long	0x1b1
- 43350 b178 28       		.uleb128 0x28
- 43351 b179 633200   		.string	"c2"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1117
-
-
- 43352 b17c 02       		.byte	0x2
- 43353 b17d 1504     		.value	0x415
- 43354 b17f B1010000 		.long	0x1b1
- 43355 b183 28       		.uleb128 0x28
- 43356 b184 633300   		.string	"c3"
- 43357 b187 02       		.byte	0x2
- 43358 b188 1504     		.value	0x415
- 43359 b18a B1010000 		.long	0x1b1
- 43360 b18e 2A       		.uleb128 0x2a
- 43361 b18f 28       		.uleb128 0x28
- 43362 b190 746D7000 		.string	"tmp"
- 43363 b194 02       		.byte	0x2
- 43364 b195 2104     		.value	0x421
- 43365 b197 27050000 		.long	0x527
- 43366 b19b 28       		.uleb128 0x28
- 43367 b19c 697800   		.string	"ix"
- 43368 b19f 02       		.byte	0x2
- 43369 b1a0 2204     		.value	0x422
- 43370 b1a2 6D000000 		.long	0x6d
- 43371 b1a6 00       		.byte	0x0
- 43372 b1a7 00       		.byte	0x0
- 43373 b1a8 25       		.uleb128 0x25
- 43374 b1a9 00000000 		.long	.LASF372
- 43375 b1ad 02       		.byte	0x2
- 43376 b1ae 0808     		.value	0x808
- 43377 b1b0 01       		.byte	0x1
- 43378 b1b1 B1010000 		.long	0x1b1
- 43379 b1b5 03       		.byte	0x3
- 43380 b1b6 1FB20000 		.long	0xb21f
- 43381 b1ba 26       		.uleb128 0x26
- 43382 b1bb 00000000 		.long	.LASF66
- 43383 b1bf 02       		.byte	0x2
- 43384 b1c0 0808     		.value	0x808
- 43385 b1c2 B1010000 		.long	0x1b1
- 43386 b1c6 26       		.uleb128 0x26
- 43387 b1c7 00000000 		.long	.LASF64
- 43388 b1cb 02       		.byte	0x2
- 43389 b1cc 0808     		.value	0x808
- 43390 b1ce B1010000 		.long	0x1b1
- 43391 b1d2 29       		.uleb128 0x29
- 43392 b1d3 E2B10000 		.long	0xb1e2
- 43393 b1d7 28       		.uleb128 0x28
- 43394 b1d8 7600     		.string	"v"
- 43395 b1da 02       		.byte	0x2
- 43396 b1db 0A08     		.value	0x80a
- 43397 b1dd 27050000 		.long	0x527
- 43398 b1e1 00       		.byte	0x0
- 43399 b1e2 29       		.uleb128 0x29
- 43400 b1e3 F2B10000 		.long	0xb1f2
- 43401 b1e7 28       		.uleb128 0x28
- 43402 b1e8 7600     		.string	"v"
- 43403 b1ea 02       		.byte	0x2
- 43404 b1eb 1108     		.value	0x811
- 43405 b1ed 27050000 		.long	0x527
- 43406 b1f1 00       		.byte	0x0
- 43407 b1f2 29       		.uleb128 0x29
- 43408 b1f3 02B20000 		.long	0xb202
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1118
-
-
- 43409 b1f7 28       		.uleb128 0x28
- 43410 b1f8 7600     		.string	"v"
- 43411 b1fa 02       		.byte	0x2
- 43412 b1fb 1508     		.value	0x815
- 43413 b1fd 27050000 		.long	0x527
- 43414 b201 00       		.byte	0x0
- 43415 b202 29       		.uleb128 0x29
- 43416 b203 12B20000 		.long	0xb212
- 43417 b207 28       		.uleb128 0x28
- 43418 b208 7600     		.string	"v"
- 43419 b20a 02       		.byte	0x2
- 43420 b20b 1908     		.value	0x819
- 43421 b20d 27050000 		.long	0x527
- 43422 b211 00       		.byte	0x0
- 43423 b212 2A       		.uleb128 0x2a
- 43424 b213 28       		.uleb128 0x28
- 43425 b214 7600     		.string	"v"
- 43426 b216 02       		.byte	0x2
- 43427 b217 1A08     		.value	0x81a
- 43428 b219 27050000 		.long	0x527
- 43429 b21d 00       		.byte	0x0
- 43430 b21e 00       		.byte	0x0
- 43431 b21f 38       		.uleb128 0x38
- 43432 b220 00000000 		.long	.LASF374
- 43433 b224 02       		.byte	0x2
- 43434 b225 2C08     		.value	0x82c
- 43435 b227 01       		.byte	0x1
- 43436 b228 B1010000 		.long	0x1b1
- 43437 b22c 00000000 		.quad	.LFB573
- 43437      00000000 
- 43438 b234 00000000 		.quad	.LFE573
- 43438      00000000 
- 43439 b23c 00000000 		.long	.LLST8
- 43440 b240 8CBF0000 		.long	0xbf8c
- 43441 b244 2E       		.uleb128 0x2e
- 43442 b245 00000000 		.long	.LASF66
- 43443 b249 02       		.byte	0x2
- 43444 b24a 2C08     		.value	0x82c
- 43445 b24c B1010000 		.long	0x1b1
- 43446 b250 03       		.byte	0x3
- 43447 b251 91       		.byte	0x91
- 43448 b252 906D     		.sleb128 -2416
- 43449 b254 2F       		.uleb128 0x2f
- 43450 b255 6B657900 		.string	"key"
- 43451 b259 02       		.byte	0x2
- 43452 b25a 2C08     		.value	0x82c
- 43453 b25c 140D0000 		.long	0xd14
- 43454 b260 03       		.byte	0x3
- 43455 b261 91       		.byte	0x91
- 43456 b262 886D     		.sleb128 -2424
- 43457 b264 2F       		.uleb128 0x2f
- 43458 b265 4E7200   		.string	"Nr"
- 43459 b268 02       		.byte	0x2
- 43460 b269 2D08     		.value	0x82d
- 43461 b26b 6D000000 		.long	0x6d
- 43462 b26f 03       		.byte	0x3
- 43463 b270 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1119
-
-
- 43464 b271 846D     		.sleb128 -2428
- 43465 b273 37       		.uleb128 0x37
- 43466 b274 697800   		.string	"ix"
- 43467 b277 02       		.byte	0x2
- 43468 b278 2F08     		.value	0x82f
- 43469 b27a 6D000000 		.long	0x6d
- 43470 b27e 03       		.byte	0x3
- 43471 b27f 91       		.byte	0x91
- 43472 b280 CC72     		.sleb128 -1716
- 43473 b282 31       		.uleb128 0x31
- 43474 b283 E7AF0000 		.long	0xafe7
- 43475 b287 00000000 		.quad	.LBB2547
- 43475      00000000 
- 43476 b28f 00000000 		.quad	.LBE2547
- 43476      00000000 
- 43477 b297 02       		.byte	0x2
- 43478 b298 3108     		.value	0x831
- 43479 b29a 64B30000 		.long	0xb364
- 43480 b29e 32       		.uleb128 0x32
- 43481 b29f 05B00000 		.long	0xb005
- 43482 b2a3 03       		.byte	0x3
- 43483 b2a4 91       		.byte	0x91
- 43484 b2a5 D072     		.sleb128 -1712
- 43485 b2a7 32       		.uleb128 0x32
- 43486 b2a8 F9AF0000 		.long	0xaff9
- 43487 b2ac 03       		.byte	0x3
- 43488 b2ad 91       		.byte	0x91
- 43489 b2ae E072     		.sleb128 -1696
- 43490 b2b0 36       		.uleb128 0x36
- 43491 b2b1 00000000 		.quad	.LBB2549
- 43491      00000000 
- 43492 b2b9 00000000 		.quad	.LBE2549
- 43492      00000000 
- 43493 b2c1 CFB20000 		.long	0xb2cf
- 43494 b2c5 34       		.uleb128 0x34
- 43495 b2c6 16B00000 		.long	0xb016
- 43496 b2ca 03       		.byte	0x3
- 43497 b2cb 91       		.byte	0x91
- 43498 b2cc C06D     		.sleb128 -2368
- 43499 b2ce 00       		.byte	0x0
- 43500 b2cf 36       		.uleb128 0x36
- 43501 b2d0 00000000 		.quad	.LBB2550
- 43501      00000000 
- 43502 b2d8 00000000 		.quad	.LBE2550
- 43502      00000000 
- 43503 b2e0 EEB20000 		.long	0xb2ee
- 43504 b2e4 34       		.uleb128 0x34
- 43505 b2e5 26B00000 		.long	0xb026
- 43506 b2e9 03       		.byte	0x3
- 43507 b2ea 91       		.byte	0x91
- 43508 b2eb B06D     		.sleb128 -2384
- 43509 b2ed 00       		.byte	0x0
- 43510 b2ee 31       		.uleb128 0x31
- 43511 b2ef 3EB00000 		.long	0xb03e
- 43512 b2f3 00000000 		.quad	.LBB2551
- 43512      00000000 
- 43513 b2fb 00000000 		.quad	.LBE2551
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1120
-
-
- 43513      00000000 
- 43514 b303 02       		.byte	0x2
- 43515 b304 CE07     		.value	0x7ce
- 43516 b306 48B30000 		.long	0xb348
- 43517 b30a 32       		.uleb128 0x32
- 43518 b30b 5CB00000 		.long	0xb05c
- 43519 b30f 03       		.byte	0x3
- 43520 b310 91       		.byte	0x91
- 43521 b311 F072     		.sleb128 -1680
- 43522 b313 32       		.uleb128 0x32
- 43523 b314 50B00000 		.long	0xb050
- 43524 b318 03       		.byte	0x3
- 43525 b319 91       		.byte	0x91
- 43526 b31a 8073     		.sleb128 -1664
- 43527 b31c 35       		.uleb128 0x35
- 43528 b31d 520E0000 		.long	0xe52
- 43529 b321 00000000 		.quad	.LBB2553
- 43529      00000000 
- 43530 b329 00000000 		.quad	.LBE2553
- 43530      00000000 
- 43531 b331 02       		.byte	0x2
- 43532 b332 2302     		.value	0x223
- 43533 b334 32       		.uleb128 0x32
- 43534 b335 6D0E0000 		.long	0xe6d
- 43535 b339 03       		.byte	0x3
- 43536 b33a 91       		.byte	0x91
- 43537 b33b 9073     		.sleb128 -1648
- 43538 b33d 32       		.uleb128 0x32
- 43539 b33e 630E0000 		.long	0xe63
- 43540 b342 03       		.byte	0x3
- 43541 b343 91       		.byte	0x91
- 43542 b344 A073     		.sleb128 -1632
- 43543 b346 00       		.byte	0x0
- 43544 b347 00       		.byte	0x0
- 43545 b348 33       		.uleb128 0x33
- 43546 b349 00000000 		.quad	.LBB2555
- 43546      00000000 
- 43547 b351 00000000 		.quad	.LBE2555
- 43547      00000000 
- 43548 b359 34       		.uleb128 0x34
- 43549 b35a 32B00000 		.long	0xb032
- 43550 b35e 03       		.byte	0x3
- 43551 b35f 91       		.byte	0x91
- 43552 b360 A06D     		.sleb128 -2400
- 43553 b362 00       		.byte	0x0
- 43554 b363 00       		.byte	0x0
- 43555 b364 31       		.uleb128 0x31
- 43556 b365 69B00000 		.long	0xb069
- 43557 b369 00000000 		.quad	.LBB2556
- 43557      00000000 
- 43558 b371 00000000 		.quad	.LBE2556
- 43558      00000000 
- 43559 b379 02       		.byte	0x2
- 43560 b37a 3408     		.value	0x834
- 43561 b37c 57BB0000 		.long	0xbb57
- 43562 b380 32       		.uleb128 0x32
- 43563 b381 87B00000 		.long	0xb087
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1121
-
-
- 43564 b385 03       		.byte	0x3
- 43565 b386 91       		.byte	0x91
- 43566 b387 B073     		.sleb128 -1616
- 43567 b389 32       		.uleb128 0x32
- 43568 b38a 7BB00000 		.long	0xb07b
- 43569 b38e 03       		.byte	0x3
- 43570 b38f 91       		.byte	0x91
- 43571 b390 C073     		.sleb128 -1600
- 43572 b392 33       		.uleb128 0x33
- 43573 b393 00000000 		.quad	.LBB2557
- 43573      00000000 
- 43574 b39b 00000000 		.quad	.LBE2557
- 43574      00000000 
- 43575 b3a3 34       		.uleb128 0x34
- 43576 b3a4 93B00000 		.long	0xb093
- 43577 b3a8 03       		.byte	0x3
- 43578 b3a9 91       		.byte	0x91
- 43579 b3aa E073     		.sleb128 -1568
- 43580 b3ac 34       		.uleb128 0x34
- 43581 b3ad 9FB00000 		.long	0xb09f
- 43582 b3b1 03       		.byte	0x3
- 43583 b3b2 91       		.byte	0x91
- 43584 b3b3 D073     		.sleb128 -1584
- 43585 b3b5 36       		.uleb128 0x36
- 43586 b3b6 00000000 		.quad	.LBB2558
- 43586      00000000 
- 43587 b3be 00000000 		.quad	.LBE2558
- 43587      00000000 
- 43588 b3c6 D4B30000 		.long	0xb3d4
- 43589 b3ca 34       		.uleb128 0x34
- 43590 b3cb B0B00000 		.long	0xb0b0
- 43591 b3cf 03       		.byte	0x3
- 43592 b3d0 91       		.byte	0x91
- 43593 b3d1 A06E     		.sleb128 -2272
- 43594 b3d3 00       		.byte	0x0
- 43595 b3d4 31       		.uleb128 0x31
- 43596 b3d5 910C0000 		.long	0xc91
- 43597 b3d9 00000000 		.quad	.LBB2559
- 43597      00000000 
- 43598 b3e1 00000000 		.quad	.LBE2559
- 43598      00000000 
- 43599 b3e9 02       		.byte	0x2
- 43600 b3ea ED07     		.value	0x7ed
- 43601 b3ec 44B60000 		.long	0xb644
- 43602 b3f0 32       		.uleb128 0x32
- 43603 b3f1 A30C0000 		.long	0xca3
- 43604 b3f5 03       		.byte	0x3
- 43605 b3f6 91       		.byte	0x91
- 43606 b3f7 F073     		.sleb128 -1552
- 43607 b3f9 35       		.uleb128 0x35
- 43608 b3fa B00C0000 		.long	0xcb0
- 43609 b3fe 00000000 		.quad	.LBB2561
- 43609      00000000 
- 43610 b406 00000000 		.quad	.LBE2561
- 43610      00000000 
- 43611 b40e 02       		.byte	0x2
- 43612 b40f 7D03     		.value	0x37d
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1122
-
-
- 43613 b411 32       		.uleb128 0x32
- 43614 b412 CE0C0000 		.long	0xcce
- 43615 b416 03       		.byte	0x3
- 43616 b417 91       		.byte	0x91
- 43617 b418 8874     		.sleb128 -1528
- 43618 b41a 32       		.uleb128 0x32
- 43619 b41b C20C0000 		.long	0xcc2
- 43620 b41f 03       		.byte	0x3
- 43621 b420 91       		.byte	0x91
- 43622 b421 9074     		.sleb128 -1520
- 43623 b423 33       		.uleb128 0x33
- 43624 b424 00000000 		.quad	.LBB2562
- 43624      00000000 
- 43625 b42c 00000000 		.quad	.LBE2562
- 43625      00000000 
- 43626 b434 34       		.uleb128 0x34
- 43627 b435 DA0C0000 		.long	0xcda
- 43628 b439 03       		.byte	0x3
- 43629 b43a 91       		.byte	0x91
- 43630 b43b E074     		.sleb128 -1440
- 43631 b43d 34       		.uleb128 0x34
- 43632 b43e E50C0000 		.long	0xce5
- 43633 b442 03       		.byte	0x3
- 43634 b443 91       		.byte	0x91
- 43635 b444 D074     		.sleb128 -1456
- 43636 b446 34       		.uleb128 0x34
- 43637 b447 F00C0000 		.long	0xcf0
- 43638 b44b 03       		.byte	0x3
- 43639 b44c 91       		.byte	0x91
- 43640 b44d C074     		.sleb128 -1472
- 43641 b44f 34       		.uleb128 0x34
- 43642 b450 FC0C0000 		.long	0xcfc
- 43643 b454 03       		.byte	0x3
- 43644 b455 91       		.byte	0x91
- 43645 b456 B074     		.sleb128 -1488
- 43646 b458 34       		.uleb128 0x34
- 43647 b459 080D0000 		.long	0xd08
- 43648 b45d 03       		.byte	0x3
- 43649 b45e 91       		.byte	0x91
- 43650 b45f AC74     		.sleb128 -1492
- 43651 b461 31       		.uleb128 0x31
- 43652 b462 1F0D0000 		.long	0xd1f
- 43653 b466 00000000 		.quad	.LBB2563
- 43653      00000000 
- 43654 b46e 00000000 		.quad	.LBE2563
- 43654      00000000 
- 43655 b476 02       		.byte	0x2
- 43656 b477 5603     		.value	0x356
- 43657 b479 90B40000 		.long	0xb490
- 43658 b47d 32       		.uleb128 0x32
- 43659 b47e 3A0D0000 		.long	0xd3a
- 43660 b482 03       		.byte	0x3
- 43661 b483 91       		.byte	0x91
- 43662 b484 F074     		.sleb128 -1424
- 43663 b486 32       		.uleb128 0x32
- 43664 b487 300D0000 		.long	0xd30
- 43665 b48b 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1123
-
-
- 43666 b48c 91       		.byte	0x91
- 43667 b48d 8075     		.sleb128 -1408
- 43668 b48f 00       		.byte	0x0
- 43669 b490 31       		.uleb128 0x31
- 43670 b491 450D0000 		.long	0xd45
- 43671 b495 00000000 		.quad	.LBB2565
- 43671      00000000 
- 43672 b49d 00000000 		.quad	.LBE2565
- 43672      00000000 
- 43673 b4a5 02       		.byte	0x2
- 43674 b4a6 5E03     		.value	0x35e
- 43675 b4a8 BFB40000 		.long	0xb4bf
- 43676 b4ac 32       		.uleb128 0x32
- 43677 b4ad 620D0000 		.long	0xd62
- 43678 b4b1 03       		.byte	0x3
- 43679 b4b2 91       		.byte	0x91
- 43680 b4b3 9075     		.sleb128 -1392
- 43681 b4b5 32       		.uleb128 0x32
- 43682 b4b6 570D0000 		.long	0xd57
- 43683 b4ba 03       		.byte	0x3
- 43684 b4bb 91       		.byte	0x91
- 43685 b4bc A075     		.sleb128 -1376
- 43686 b4be 00       		.byte	0x0
- 43687 b4bf 31       		.uleb128 0x31
- 43688 b4c0 6E0D0000 		.long	0xd6e
- 43689 b4c4 00000000 		.quad	.LBB2567
- 43689      00000000 
- 43690 b4cc 00000000 		.quad	.LBE2567
- 43690      00000000 
- 43691 b4d4 02       		.byte	0x2
- 43692 b4d5 6403     		.value	0x364
- 43693 b4d7 24B50000 		.long	0xb524
- 43694 b4db 32       		.uleb128 0x32
- 43695 b4dc 8C0D0000 		.long	0xd8c
- 43696 b4e0 03       		.byte	0x3
- 43697 b4e1 91       		.byte	0x91
- 43698 b4e2 B075     		.sleb128 -1360
- 43699 b4e4 32       		.uleb128 0x32
- 43700 b4e5 800D0000 		.long	0xd80
- 43701 b4e9 03       		.byte	0x3
- 43702 b4ea 91       		.byte	0x91
- 43703 b4eb C075     		.sleb128 -1344
- 43704 b4ed 33       		.uleb128 0x33
- 43705 b4ee 00000000 		.quad	.LBB2568
- 43705      00000000 
- 43706 b4f6 00000000 		.quad	.LBE2568
- 43706      00000000 
- 43707 b4fe 34       		.uleb128 0x34
- 43708 b4ff 980D0000 		.long	0xd98
- 43709 b503 03       		.byte	0x3
- 43710 b504 91       		.byte	0x91
- 43711 b505 D06E     		.sleb128 -2224
- 43712 b507 34       		.uleb128 0x34
- 43713 b508 A40D0000 		.long	0xda4
- 43714 b50c 03       		.byte	0x3
- 43715 b50d 91       		.byte	0x91
- 43716 b50e C06E     		.sleb128 -2240
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1124
-
-
- 43717 b510 34       		.uleb128 0x34
- 43718 b511 AF0D0000 		.long	0xdaf
- 43719 b515 03       		.byte	0x3
- 43720 b516 91       		.byte	0x91
- 43721 b517 B06E     		.sleb128 -2256
- 43722 b519 34       		.uleb128 0x34
- 43723 b51a BB0D0000 		.long	0xdbb
- 43724 b51e 03       		.byte	0x3
- 43725 b51f 91       		.byte	0x91
- 43726 b520 DC75     		.sleb128 -1316
- 43727 b522 00       		.byte	0x0
- 43728 b523 00       		.byte	0x0
- 43729 b524 31       		.uleb128 0x31
- 43730 b525 C70D0000 		.long	0xdc7
- 43731 b529 00000000 		.quad	.LBB2569
- 43731      00000000 
- 43732 b531 00000000 		.quad	.LBE2569
- 43732      00000000 
- 43733 b539 02       		.byte	0x2
- 43734 b53a 6603     		.value	0x366
- 43735 b53c 53B50000 		.long	0xb553
- 43736 b540 32       		.uleb128 0x32
- 43737 b541 E20D0000 		.long	0xde2
- 43738 b545 03       		.byte	0x3
- 43739 b546 91       		.byte	0x91
- 43740 b547 E075     		.sleb128 -1312
- 43741 b549 32       		.uleb128 0x32
- 43742 b54a D80D0000 		.long	0xdd8
- 43743 b54e 03       		.byte	0x3
- 43744 b54f 91       		.byte	0x91
- 43745 b550 F075     		.sleb128 -1296
- 43746 b552 00       		.byte	0x0
- 43747 b553 31       		.uleb128 0x31
- 43748 b554 6E0D0000 		.long	0xd6e
- 43749 b558 00000000 		.quad	.LBB2571
- 43749      00000000 
- 43750 b560 00000000 		.quad	.LBE2571
- 43750      00000000 
- 43751 b568 02       		.byte	0x2
- 43752 b569 6803     		.value	0x368
- 43753 b56b B8B50000 		.long	0xb5b8
- 43754 b56f 32       		.uleb128 0x32
- 43755 b570 8C0D0000 		.long	0xd8c
- 43756 b574 03       		.byte	0x3
- 43757 b575 91       		.byte	0x91
- 43758 b576 8076     		.sleb128 -1280
- 43759 b578 32       		.uleb128 0x32
- 43760 b579 800D0000 		.long	0xd80
- 43761 b57d 03       		.byte	0x3
- 43762 b57e 91       		.byte	0x91
- 43763 b57f 9076     		.sleb128 -1264
- 43764 b581 33       		.uleb128 0x33
- 43765 b582 00000000 		.quad	.LBB2572
- 43765      00000000 
- 43766 b58a 00000000 		.quad	.LBE2572
- 43766      00000000 
- 43767 b592 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1125
-
-
- 43768 b593 980D0000 		.long	0xd98
- 43769 b597 03       		.byte	0x3
- 43770 b598 91       		.byte	0x91
- 43771 b599 806F     		.sleb128 -2176
- 43772 b59b 34       		.uleb128 0x34
- 43773 b59c A40D0000 		.long	0xda4
- 43774 b5a0 03       		.byte	0x3
- 43775 b5a1 91       		.byte	0x91
- 43776 b5a2 F06E     		.sleb128 -2192
- 43777 b5a4 34       		.uleb128 0x34
- 43778 b5a5 AF0D0000 		.long	0xdaf
- 43779 b5a9 03       		.byte	0x3
- 43780 b5aa 91       		.byte	0x91
- 43781 b5ab E06E     		.sleb128 -2208
- 43782 b5ad 34       		.uleb128 0x34
- 43783 b5ae BB0D0000 		.long	0xdbb
- 43784 b5b2 03       		.byte	0x3
- 43785 b5b3 91       		.byte	0x91
- 43786 b5b4 AC76     		.sleb128 -1236
- 43787 b5b6 00       		.byte	0x0
- 43788 b5b7 00       		.byte	0x0
- 43789 b5b8 31       		.uleb128 0x31
- 43790 b5b9 C70D0000 		.long	0xdc7
- 43791 b5bd 00000000 		.quad	.LBB2573
- 43791      00000000 
- 43792 b5c5 00000000 		.quad	.LBE2573
- 43792      00000000 
- 43793 b5cd 02       		.byte	0x2
- 43794 b5ce 6A03     		.value	0x36a
- 43795 b5d0 E7B50000 		.long	0xb5e7
- 43796 b5d4 32       		.uleb128 0x32
- 43797 b5d5 E20D0000 		.long	0xde2
- 43798 b5d9 03       		.byte	0x3
- 43799 b5da 91       		.byte	0x91
- 43800 b5db B076     		.sleb128 -1232
- 43801 b5dd 32       		.uleb128 0x32
- 43802 b5de D80D0000 		.long	0xdd8
- 43803 b5e2 03       		.byte	0x3
- 43804 b5e3 91       		.byte	0x91
- 43805 b5e4 C076     		.sleb128 -1216
- 43806 b5e6 00       		.byte	0x0
- 43807 b5e7 31       		.uleb128 0x31
- 43808 b5e8 ED0D0000 		.long	0xded
- 43809 b5ec 00000000 		.quad	.LBB2575
- 43809      00000000 
- 43810 b5f4 00000000 		.quad	.LBE2575
- 43810      00000000 
- 43811 b5fc 02       		.byte	0x2
- 43812 b5fd 6C03     		.value	0x36c
- 43813 b5ff 16B60000 		.long	0xb616
- 43814 b603 32       		.uleb128 0x32
- 43815 b604 0A0E0000 		.long	0xe0a
- 43816 b608 03       		.byte	0x3
- 43817 b609 91       		.byte	0x91
- 43818 b60a D076     		.sleb128 -1200
- 43819 b60c 32       		.uleb128 0x32
- 43820 b60d FF0D0000 		.long	0xdff
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1126
-
-
- 43821 b611 03       		.byte	0x3
- 43822 b612 91       		.byte	0x91
- 43823 b613 E076     		.sleb128 -1184
- 43824 b615 00       		.byte	0x0
- 43825 b616 35       		.uleb128 0x35
- 43826 b617 1F0D0000 		.long	0xd1f
- 43827 b61b 00000000 		.quad	.LBB2577
- 43827      00000000 
- 43828 b623 00000000 		.quad	.LBE2577
- 43828      00000000 
- 43829 b62b 02       		.byte	0x2
- 43830 b62c 6E03     		.value	0x36e
- 43831 b62e 32       		.uleb128 0x32
- 43832 b62f 3A0D0000 		.long	0xd3a
- 43833 b633 03       		.byte	0x3
- 43834 b634 91       		.byte	0x91
- 43835 b635 F076     		.sleb128 -1168
- 43836 b637 32       		.uleb128 0x32
- 43837 b638 300D0000 		.long	0xd30
- 43838 b63c 03       		.byte	0x3
- 43839 b63d 91       		.byte	0x91
- 43840 b63e 8077     		.sleb128 -1152
- 43841 b640 00       		.byte	0x0
- 43842 b641 00       		.byte	0x0
- 43843 b642 00       		.byte	0x0
- 43844 b643 00       		.byte	0x0
- 43845 b644 36       		.uleb128 0x36
- 43846 b645 00000000 		.quad	.LBB2579
- 43846      00000000 
- 43847 b64d 00000000 		.quad	.LBE2579
- 43847      00000000 
- 43848 b655 63B60000 		.long	0xb663
- 43849 b659 34       		.uleb128 0x34
- 43850 b65a C0B00000 		.long	0xb0c0
- 43851 b65e 03       		.byte	0x3
- 43852 b65f 91       		.byte	0x91
- 43853 b660 906E     		.sleb128 -2288
- 43854 b662 00       		.byte	0x0
- 43855 b663 31       		.uleb128 0x31
- 43856 b664 08B10000 		.long	0xb108
- 43857 b668 00000000 		.quad	.LBB2580
- 43857      00000000 
- 43858 b670 00000000 		.quad	.LBE2580
- 43858      00000000 
- 43859 b678 02       		.byte	0x2
- 43860 b679 F107     		.value	0x7f1
- 43861 b67b 0BB70000 		.long	0xb70b
- 43862 b67f 32       		.uleb128 0x32
- 43863 b680 1AB10000 		.long	0xb11a
- 43864 b684 03       		.byte	0x3
- 43865 b685 91       		.byte	0x91
- 43866 b686 9077     		.sleb128 -1136
- 43867 b688 33       		.uleb128 0x33
- 43868 b689 00000000 		.quad	.LBB2581
- 43868      00000000 
- 43869 b691 00000000 		.quad	.LBE2581
- 43869      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1127
-
-
- 43870 b699 34       		.uleb128 0x34
- 43871 b69a 26B10000 		.long	0xb126
- 43872 b69e 09       		.byte	0x9
- 43873 b69f 03       		.byte	0x3
- 43874 b6a0 00000000 		.quad	ShiftRowTable.6741
- 43874      00000000 
- 43875 b6a8 35       		.uleb128 0x35
- 43876 b6a9 6E0D0000 		.long	0xd6e
- 43877 b6ad 00000000 		.quad	.LBB2582
- 43877      00000000 
- 43878 b6b5 00000000 		.quad	.LBE2582
- 43878      00000000 
- 43879 b6bd 02       		.byte	0x2
- 43880 b6be 4502     		.value	0x245
- 43881 b6c0 32       		.uleb128 0x32
- 43882 b6c1 8C0D0000 		.long	0xd8c
- 43883 b6c5 03       		.byte	0x3
- 43884 b6c6 91       		.byte	0x91
- 43885 b6c7 A077     		.sleb128 -1120
- 43886 b6c9 32       		.uleb128 0x32
- 43887 b6ca 800D0000 		.long	0xd80
- 43888 b6ce 03       		.byte	0x3
- 43889 b6cf 91       		.byte	0x91
- 43890 b6d0 B077     		.sleb128 -1104
- 43891 b6d2 33       		.uleb128 0x33
- 43892 b6d3 00000000 		.quad	.LBB2583
- 43892      00000000 
- 43893 b6db 00000000 		.quad	.LBE2583
- 43893      00000000 
- 43894 b6e3 34       		.uleb128 0x34
- 43895 b6e4 980D0000 		.long	0xd98
- 43896 b6e8 03       		.byte	0x3
- 43897 b6e9 91       		.byte	0x91
- 43898 b6ea B06F     		.sleb128 -2128
- 43899 b6ec 34       		.uleb128 0x34
- 43900 b6ed A40D0000 		.long	0xda4
- 43901 b6f1 03       		.byte	0x3
- 43902 b6f2 91       		.byte	0x91
- 43903 b6f3 A06F     		.sleb128 -2144
- 43904 b6f5 34       		.uleb128 0x34
- 43905 b6f6 AF0D0000 		.long	0xdaf
- 43906 b6fa 03       		.byte	0x3
- 43907 b6fb 91       		.byte	0x91
- 43908 b6fc 906F     		.sleb128 -2160
- 43909 b6fe 34       		.uleb128 0x34
- 43910 b6ff BB0D0000 		.long	0xdbb
- 43911 b703 03       		.byte	0x3
- 43912 b704 91       		.byte	0x91
- 43913 b705 CC77     		.sleb128 -1076
- 43914 b707 00       		.byte	0x0
- 43915 b708 00       		.byte	0x0
- 43916 b709 00       		.byte	0x0
- 43917 b70a 00       		.byte	0x0
- 43918 b70b 36       		.uleb128 0x36
- 43919 b70c 00000000 		.quad	.LBB2584
- 43919      00000000 
- 43920 b714 00000000 		.quad	.LBE2584
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1128
-
-
- 43920      00000000 
- 43921 b71c 2AB70000 		.long	0xb72a
- 43922 b720 34       		.uleb128 0x34
- 43923 b721 D0B00000 		.long	0xb0d0
- 43924 b725 03       		.byte	0x3
- 43925 b726 91       		.byte	0x91
- 43926 b727 806E     		.sleb128 -2304
- 43927 b729 00       		.byte	0x0
- 43928 b72a 31       		.uleb128 0x31
- 43929 b72b 44B10000 		.long	0xb144
- 43930 b72f 00000000 		.quad	.LBB2585
- 43930      00000000 
- 43931 b737 00000000 		.quad	.LBE2585
- 43931      00000000 
- 43932 b73f 02       		.byte	0x2
- 43933 b740 F507     		.value	0x7f5
- 43934 b742 A2BA0000 		.long	0xbaa2
- 43935 b746 32       		.uleb128 0x32
- 43936 b747 56B10000 		.long	0xb156
- 43937 b74b 03       		.byte	0x3
- 43938 b74c 91       		.byte	0x91
- 43939 b74d D077     		.sleb128 -1072
- 43940 b74f 33       		.uleb128 0x33
- 43941 b750 00000000 		.quad	.LBB2586
- 43941      00000000 
- 43942 b758 00000000 		.quad	.LBE2586
- 43942      00000000 
- 43943 b760 34       		.uleb128 0x34
- 43944 b761 62B10000 		.long	0xb162
- 43945 b765 03       		.byte	0x3
- 43946 b766 76       		.byte	0x76
- 43947 b767 806D     		.sleb128 -2432
- 43948 b769 34       		.uleb128 0x34
- 43949 b76a 6DB10000 		.long	0xb16d
- 43950 b76e 03       		.byte	0x3
- 43951 b76f 76       		.byte	0x76
- 43952 b770 F06C     		.sleb128 -2448
- 43953 b772 34       		.uleb128 0x34
- 43954 b773 78B10000 		.long	0xb178
- 43955 b777 03       		.byte	0x3
- 43956 b778 76       		.byte	0x76
- 43957 b779 E06C     		.sleb128 -2464
- 43958 b77b 34       		.uleb128 0x34
- 43959 b77c 83B10000 		.long	0xb183
- 43960 b780 03       		.byte	0x3
- 43961 b781 76       		.byte	0x76
- 43962 b782 D06C     		.sleb128 -2480
- 43963 b784 31       		.uleb128 0x31
- 43964 b785 160E0000 		.long	0xe16
- 43965 b789 00000000 		.quad	.LBB2587
- 43965      00000000 
- 43966 b791 00000000 		.quad	.LBE2587
- 43966      00000000 
- 43967 b799 02       		.byte	0x2
- 43968 b79a 1704     		.value	0x417
- 43969 b79c 2CB80000 		.long	0xb82c
- 43970 b7a0 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1129
-
-
- 43971 b7a1 280E0000 		.long	0xe28
- 43972 b7a5 03       		.byte	0x3
- 43973 b7a6 91       		.byte	0x91
- 43974 b7a7 F077     		.sleb128 -1040
- 43975 b7a9 33       		.uleb128 0x33
- 43976 b7aa 00000000 		.quad	.LBB2588
- 43976      00000000 
- 43977 b7b2 00000000 		.quad	.LBE2588
- 43977      00000000 
- 43978 b7ba 34       		.uleb128 0x34
- 43979 b7bb 340E0000 		.long	0xe34
- 43980 b7bf 09       		.byte	0x9
- 43981 b7c0 03       		.byte	0x3
- 43982 b7c1 00000000 		.quad	ShiftRowTable.6768
- 43982      00000000 
- 43983 b7c9 35       		.uleb128 0x35
- 43984 b7ca 6E0D0000 		.long	0xd6e
- 43985 b7ce 00000000 		.quad	.LBB2589
- 43985      00000000 
- 43986 b7d6 00000000 		.quad	.LBE2589
- 43986      00000000 
- 43987 b7de 02       		.byte	0x2
- 43988 b7df 9B02     		.value	0x29b
- 43989 b7e1 32       		.uleb128 0x32
- 43990 b7e2 8C0D0000 		.long	0xd8c
- 43991 b7e6 03       		.byte	0x3
- 43992 b7e7 91       		.byte	0x91
- 43993 b7e8 8078     		.sleb128 -1024
- 43994 b7ea 32       		.uleb128 0x32
- 43995 b7eb 800D0000 		.long	0xd80
- 43996 b7ef 03       		.byte	0x3
- 43997 b7f0 91       		.byte	0x91
- 43998 b7f1 9078     		.sleb128 -1008
- 43999 b7f3 33       		.uleb128 0x33
- 44000 b7f4 00000000 		.quad	.LBB2590
- 44000      00000000 
- 44001 b7fc 00000000 		.quad	.LBE2590
- 44001      00000000 
- 44002 b804 34       		.uleb128 0x34
- 44003 b805 980D0000 		.long	0xd98
- 44004 b809 03       		.byte	0x3
- 44005 b80a 91       		.byte	0x91
- 44006 b80b F06F     		.sleb128 -2064
- 44007 b80d 34       		.uleb128 0x34
- 44008 b80e A40D0000 		.long	0xda4
- 44009 b812 03       		.byte	0x3
- 44010 b813 91       		.byte	0x91
- 44011 b814 E06F     		.sleb128 -2080
- 44012 b816 34       		.uleb128 0x34
- 44013 b817 AF0D0000 		.long	0xdaf
- 44014 b81b 03       		.byte	0x3
- 44015 b81c 91       		.byte	0x91
- 44016 b81d D06F     		.sleb128 -2096
- 44017 b81f 34       		.uleb128 0x34
- 44018 b820 BB0D0000 		.long	0xdbb
- 44019 b824 03       		.byte	0x3
- 44020 b825 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1130
-
-
- 44021 b826 AC78     		.sleb128 -980
- 44022 b828 00       		.byte	0x0
- 44023 b829 00       		.byte	0x0
- 44024 b82a 00       		.byte	0x0
- 44025 b82b 00       		.byte	0x0
- 44026 b82c 31       		.uleb128 0x31
- 44027 b82d 160E0000 		.long	0xe16
- 44028 b831 00000000 		.quad	.LBB2591
- 44028      00000000 
- 44029 b839 00000000 		.quad	.LBE2591
- 44029      00000000 
- 44030 b841 02       		.byte	0x2
- 44031 b842 1804     		.value	0x418
- 44032 b844 D4B80000 		.long	0xb8d4
- 44033 b848 32       		.uleb128 0x32
- 44034 b849 280E0000 		.long	0xe28
- 44035 b84d 03       		.byte	0x3
- 44036 b84e 91       		.byte	0x91
- 44037 b84f B078     		.sleb128 -976
- 44038 b851 33       		.uleb128 0x33
- 44039 b852 00000000 		.quad	.LBB2592
- 44039      00000000 
- 44040 b85a 00000000 		.quad	.LBE2592
- 44040      00000000 
- 44041 b862 34       		.uleb128 0x34
- 44042 b863 340E0000 		.long	0xe34
- 44043 b867 09       		.byte	0x9
- 44044 b868 03       		.byte	0x3
- 44045 b869 00000000 		.quad	ShiftRowTable.6768
- 44045      00000000 
- 44046 b871 35       		.uleb128 0x35
- 44047 b872 6E0D0000 		.long	0xd6e
- 44048 b876 00000000 		.quad	.LBB2593
- 44048      00000000 
- 44049 b87e 00000000 		.quad	.LBE2593
- 44049      00000000 
- 44050 b886 02       		.byte	0x2
- 44051 b887 9B02     		.value	0x29b
- 44052 b889 32       		.uleb128 0x32
- 44053 b88a 8C0D0000 		.long	0xd8c
- 44054 b88e 03       		.byte	0x3
- 44055 b88f 91       		.byte	0x91
- 44056 b890 C078     		.sleb128 -960
- 44057 b892 32       		.uleb128 0x32
- 44058 b893 800D0000 		.long	0xd80
- 44059 b897 03       		.byte	0x3
- 44060 b898 91       		.byte	0x91
- 44061 b899 D078     		.sleb128 -944
- 44062 b89b 33       		.uleb128 0x33
- 44063 b89c 00000000 		.quad	.LBB2594
- 44063      00000000 
- 44064 b8a4 00000000 		.quad	.LBE2594
- 44064      00000000 
- 44065 b8ac 34       		.uleb128 0x34
- 44066 b8ad 980D0000 		.long	0xd98
- 44067 b8b1 03       		.byte	0x3
- 44068 b8b2 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1131
-
-
- 44069 b8b3 A070     		.sleb128 -2016
- 44070 b8b5 34       		.uleb128 0x34
- 44071 b8b6 A40D0000 		.long	0xda4
- 44072 b8ba 03       		.byte	0x3
- 44073 b8bb 91       		.byte	0x91
- 44074 b8bc 9070     		.sleb128 -2032
- 44075 b8be 34       		.uleb128 0x34
- 44076 b8bf AF0D0000 		.long	0xdaf
- 44077 b8c3 03       		.byte	0x3
- 44078 b8c4 91       		.byte	0x91
- 44079 b8c5 8070     		.sleb128 -2048
- 44080 b8c7 34       		.uleb128 0x34
- 44081 b8c8 BB0D0000 		.long	0xdbb
- 44082 b8cc 03       		.byte	0x3
- 44083 b8cd 91       		.byte	0x91
- 44084 b8ce EC78     		.sleb128 -916
- 44085 b8d0 00       		.byte	0x0
- 44086 b8d1 00       		.byte	0x0
- 44087 b8d2 00       		.byte	0x0
- 44088 b8d3 00       		.byte	0x0
- 44089 b8d4 31       		.uleb128 0x31
- 44090 b8d5 160E0000 		.long	0xe16
- 44091 b8d9 00000000 		.quad	.LBB2595
- 44091      00000000 
- 44092 b8e1 00000000 		.quad	.LBE2595
- 44092      00000000 
- 44093 b8e9 02       		.byte	0x2
- 44094 b8ea 1904     		.value	0x419
- 44095 b8ec 7CB90000 		.long	0xb97c
- 44096 b8f0 32       		.uleb128 0x32
- 44097 b8f1 280E0000 		.long	0xe28
- 44098 b8f5 03       		.byte	0x3
- 44099 b8f6 91       		.byte	0x91
- 44100 b8f7 F078     		.sleb128 -912
- 44101 b8f9 33       		.uleb128 0x33
- 44102 b8fa 00000000 		.quad	.LBB2596
- 44102      00000000 
- 44103 b902 00000000 		.quad	.LBE2596
- 44103      00000000 
- 44104 b90a 34       		.uleb128 0x34
- 44105 b90b 340E0000 		.long	0xe34
- 44106 b90f 09       		.byte	0x9
- 44107 b910 03       		.byte	0x3
- 44108 b911 00000000 		.quad	ShiftRowTable.6768
- 44108      00000000 
- 44109 b919 35       		.uleb128 0x35
- 44110 b91a 6E0D0000 		.long	0xd6e
- 44111 b91e 00000000 		.quad	.LBB2597
- 44111      00000000 
- 44112 b926 00000000 		.quad	.LBE2597
- 44112      00000000 
- 44113 b92e 02       		.byte	0x2
- 44114 b92f 9B02     		.value	0x29b
- 44115 b931 32       		.uleb128 0x32
- 44116 b932 8C0D0000 		.long	0xd8c
- 44117 b936 03       		.byte	0x3
- 44118 b937 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1132
-
-
- 44119 b938 8079     		.sleb128 -896
- 44120 b93a 32       		.uleb128 0x32
- 44121 b93b 800D0000 		.long	0xd80
- 44122 b93f 03       		.byte	0x3
- 44123 b940 91       		.byte	0x91
- 44124 b941 9079     		.sleb128 -880
- 44125 b943 33       		.uleb128 0x33
- 44126 b944 00000000 		.quad	.LBB2598
- 44126      00000000 
- 44127 b94c 00000000 		.quad	.LBE2598
- 44127      00000000 
- 44128 b954 34       		.uleb128 0x34
- 44129 b955 980D0000 		.long	0xd98
- 44130 b959 03       		.byte	0x3
- 44131 b95a 91       		.byte	0x91
- 44132 b95b D070     		.sleb128 -1968
- 44133 b95d 34       		.uleb128 0x34
- 44134 b95e A40D0000 		.long	0xda4
- 44135 b962 03       		.byte	0x3
- 44136 b963 91       		.byte	0x91
- 44137 b964 C070     		.sleb128 -1984
- 44138 b966 34       		.uleb128 0x34
- 44139 b967 AF0D0000 		.long	0xdaf
- 44140 b96b 03       		.byte	0x3
- 44141 b96c 91       		.byte	0x91
- 44142 b96d B070     		.sleb128 -2000
- 44143 b96f 34       		.uleb128 0x34
- 44144 b970 BB0D0000 		.long	0xdbb
- 44145 b974 03       		.byte	0x3
- 44146 b975 91       		.byte	0x91
- 44147 b976 AC79     		.sleb128 -852
- 44148 b978 00       		.byte	0x0
- 44149 b979 00       		.byte	0x0
- 44150 b97a 00       		.byte	0x0
- 44151 b97b 00       		.byte	0x0
- 44152 b97c 31       		.uleb128 0x31
- 44153 b97d 520E0000 		.long	0xe52
- 44154 b981 00000000 		.quad	.LBB2599
- 44154      00000000 
- 44155 b989 00000000 		.quad	.LBE2599
- 44155      00000000 
- 44156 b991 02       		.byte	0x2
- 44157 b992 1A04     		.value	0x41a
- 44158 b994 ABB90000 		.long	0xb9ab
- 44159 b998 32       		.uleb128 0x32
- 44160 b999 6D0E0000 		.long	0xe6d
- 44161 b99d 03       		.byte	0x3
- 44162 b99e 91       		.byte	0x91
- 44163 b99f B079     		.sleb128 -848
- 44164 b9a1 32       		.uleb128 0x32
- 44165 b9a2 630E0000 		.long	0xe63
- 44166 b9a6 03       		.byte	0x3
- 44167 b9a7 91       		.byte	0x91
- 44168 b9a8 C079     		.sleb128 -832
- 44169 b9aa 00       		.byte	0x0
- 44170 b9ab 36       		.uleb128 0x36
- 44171 b9ac 00000000 		.quad	.LBB2601
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1133
-
-
- 44171      00000000 
- 44172 b9b4 00000000 		.quad	.LBE2601
- 44172      00000000 
- 44173 b9bc 17BA0000 		.long	0xba17
- 44174 b9c0 34       		.uleb128 0x34
- 44175 b9c1 8FB10000 		.long	0xb18f
- 44176 b9c5 03       		.byte	0x3
- 44177 b9c6 91       		.byte	0x91
- 44178 b9c7 C06F     		.sleb128 -2112
- 44179 b9c9 34       		.uleb128 0x34
- 44180 b9ca 9BB10000 		.long	0xb19b
- 44181 b9ce 03       		.byte	0x3
- 44182 b9cf 91       		.byte	0x91
- 44183 b9d0 EC77     		.sleb128 -1044
- 44184 b9d2 35       		.uleb128 0x35
- 44185 b9d3 6EA90000 		.long	0xa96e
- 44186 b9d7 00000000 		.quad	.LBB2602
- 44186      00000000 
- 44187 b9df 00000000 		.quad	.LBE2602
- 44187      00000000 
- 44188 b9e7 02       		.byte	0x2
- 44189 b9e8 2704     		.value	0x427
- 44190 b9ea 32       		.uleb128 0x32
- 44191 b9eb 80A90000 		.long	0xa980
- 44192 b9ef 03       		.byte	0x3
- 44193 b9f0 91       		.byte	0x91
- 44194 b9f1 DE79     		.sleb128 -802
- 44195 b9f3 35       		.uleb128 0x35
- 44196 b9f4 8BA90000 		.long	0xa98b
- 44197 b9f8 00000000 		.quad	.LBB2604
- 44197      00000000 
- 44198 ba00 00000000 		.quad	.LBE2604
- 44198      00000000 
- 44199 ba08 02       		.byte	0x2
- 44200 ba09 F403     		.value	0x3f4
- 44201 ba0b 32       		.uleb128 0x32
- 44202 ba0c 9DA90000 		.long	0xa99d
- 44203 ba10 03       		.byte	0x3
- 44204 ba11 91       		.byte	0x91
- 44205 ba12 DF79     		.sleb128 -801
- 44206 ba14 00       		.byte	0x0
- 44207 ba15 00       		.byte	0x0
- 44208 ba16 00       		.byte	0x0
- 44209 ba17 31       		.uleb128 0x31
- 44210 ba18 520E0000 		.long	0xe52
- 44211 ba1c 00000000 		.quad	.LBB2606
- 44211      00000000 
- 44212 ba24 00000000 		.quad	.LBE2606
- 44212      00000000 
- 44213 ba2c 02       		.byte	0x2
- 44214 ba2d 2B04     		.value	0x42b
- 44215 ba2f 46BA0000 		.long	0xba46
- 44216 ba33 32       		.uleb128 0x32
- 44217 ba34 6D0E0000 		.long	0xe6d
- 44218 ba38 03       		.byte	0x3
- 44219 ba39 91       		.byte	0x91
- 44220 ba3a E079     		.sleb128 -800
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1134
-
-
- 44221 ba3c 32       		.uleb128 0x32
- 44222 ba3d 630E0000 		.long	0xe63
- 44223 ba41 03       		.byte	0x3
- 44224 ba42 91       		.byte	0x91
- 44225 ba43 F079     		.sleb128 -784
- 44226 ba45 00       		.byte	0x0
- 44227 ba46 31       		.uleb128 0x31
- 44228 ba47 520E0000 		.long	0xe52
- 44229 ba4b 00000000 		.quad	.LBB2608
- 44229      00000000 
- 44230 ba53 00000000 		.quad	.LBE2608
- 44230      00000000 
- 44231 ba5b 02       		.byte	0x2
- 44232 ba5c 2C04     		.value	0x42c
- 44233 ba5e 75BA0000 		.long	0xba75
- 44234 ba62 32       		.uleb128 0x32
- 44235 ba63 6D0E0000 		.long	0xe6d
- 44236 ba67 03       		.byte	0x3
- 44237 ba68 91       		.byte	0x91
- 44238 ba69 807A     		.sleb128 -768
- 44239 ba6b 32       		.uleb128 0x32
- 44240 ba6c 630E0000 		.long	0xe63
- 44241 ba70 03       		.byte	0x3
- 44242 ba71 91       		.byte	0x91
- 44243 ba72 907A     		.sleb128 -752
- 44244 ba74 00       		.byte	0x0
- 44245 ba75 35       		.uleb128 0x35
- 44246 ba76 520E0000 		.long	0xe52
- 44247 ba7a 00000000 		.quad	.LBB2610
- 44247      00000000 
- 44248 ba82 00000000 		.quad	.LBE2610
- 44248      00000000 
- 44249 ba8a 02       		.byte	0x2
- 44250 ba8b 2D04     		.value	0x42d
- 44251 ba8d 32       		.uleb128 0x32
- 44252 ba8e 6D0E0000 		.long	0xe6d
- 44253 ba92 03       		.byte	0x3
- 44254 ba93 91       		.byte	0x91
- 44255 ba94 A07A     		.sleb128 -736
- 44256 ba96 32       		.uleb128 0x32
- 44257 ba97 630E0000 		.long	0xe63
- 44258 ba9b 03       		.byte	0x3
- 44259 ba9c 91       		.byte	0x91
- 44260 ba9d B07A     		.sleb128 -720
- 44261 ba9f 00       		.byte	0x0
- 44262 baa0 00       		.byte	0x0
- 44263 baa1 00       		.byte	0x0
- 44264 baa2 36       		.uleb128 0x36
- 44265 baa3 00000000 		.quad	.LBB2612
- 44265      00000000 
- 44266 baab 00000000 		.quad	.LBE2612
- 44266      00000000 
- 44267 bab3 C1BA0000 		.long	0xbac1
- 44268 bab7 34       		.uleb128 0x34
- 44269 bab8 E0B00000 		.long	0xb0e0
- 44270 babc 03       		.byte	0x3
- 44271 babd 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1135
-
-
- 44272 babe F06D     		.sleb128 -2320
- 44273 bac0 00       		.byte	0x0
- 44274 bac1 31       		.uleb128 0x31
- 44275 bac2 3EB00000 		.long	0xb03e
- 44276 bac6 00000000 		.quad	.LBB2613
- 44276      00000000 
- 44277 bace 00000000 		.quad	.LBE2613
- 44277      00000000 
- 44278 bad6 02       		.byte	0x2
- 44279 bad7 FA07     		.value	0x7fa
- 44280 bad9 1BBB0000 		.long	0xbb1b
- 44281 badd 32       		.uleb128 0x32
- 44282 bade 5CB00000 		.long	0xb05c
- 44283 bae2 03       		.byte	0x3
- 44284 bae3 91       		.byte	0x91
- 44285 bae4 C07A     		.sleb128 -704
- 44286 bae6 32       		.uleb128 0x32
- 44287 bae7 50B00000 		.long	0xb050
- 44288 baeb 03       		.byte	0x3
- 44289 baec 91       		.byte	0x91
- 44290 baed D07A     		.sleb128 -688
- 44291 baef 35       		.uleb128 0x35
- 44292 baf0 520E0000 		.long	0xe52
- 44293 baf4 00000000 		.quad	.LBB2615
- 44293      00000000 
- 44294 bafc 00000000 		.quad	.LBE2615
- 44294      00000000 
- 44295 bb04 02       		.byte	0x2
- 44296 bb05 2302     		.value	0x223
- 44297 bb07 32       		.uleb128 0x32
- 44298 bb08 6D0E0000 		.long	0xe6d
- 44299 bb0c 03       		.byte	0x3
- 44300 bb0d 91       		.byte	0x91
- 44301 bb0e E07A     		.sleb128 -672
- 44302 bb10 32       		.uleb128 0x32
- 44303 bb11 630E0000 		.long	0xe63
- 44304 bb15 03       		.byte	0x3
- 44305 bb16 91       		.byte	0x91
- 44306 bb17 F07A     		.sleb128 -656
- 44307 bb19 00       		.byte	0x0
- 44308 bb1a 00       		.byte	0x0
- 44309 bb1b 36       		.uleb128 0x36
- 44310 bb1c 00000000 		.quad	.LBB2617
- 44310      00000000 
- 44311 bb24 00000000 		.quad	.LBE2617
- 44311      00000000 
- 44312 bb2c 3ABB0000 		.long	0xbb3a
- 44313 bb30 34       		.uleb128 0x34
- 44314 bb31 F0B00000 		.long	0xb0f0
- 44315 bb35 03       		.byte	0x3
- 44316 bb36 91       		.byte	0x91
- 44317 bb37 E06D     		.sleb128 -2336
- 44318 bb39 00       		.byte	0x0
- 44319 bb3a 33       		.uleb128 0x33
- 44320 bb3b 00000000 		.quad	.LBB2618
- 44320      00000000 
- 44321 bb43 00000000 		.quad	.LBE2618
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1136
-
-
- 44321      00000000 
- 44322 bb4b 34       		.uleb128 0x34
- 44323 bb4c FCB00000 		.long	0xb0fc
- 44324 bb50 03       		.byte	0x3
- 44325 bb51 91       		.byte	0x91
- 44326 bb52 D06D     		.sleb128 -2352
- 44327 bb54 00       		.byte	0x0
- 44328 bb55 00       		.byte	0x0
- 44329 bb56 00       		.byte	0x0
- 44330 bb57 35       		.uleb128 0x35
- 44331 bb58 A8B10000 		.long	0xb1a8
- 44332 bb5c 00000000 		.quad	.LBB2619
- 44332      00000000 
- 44333 bb64 00000000 		.quad	.LBE2619
- 44333      00000000 
- 44334 bb6c 02       		.byte	0x2
- 44335 bb6d 3608     		.value	0x836
- 44336 bb6f 32       		.uleb128 0x32
- 44337 bb70 C6B10000 		.long	0xb1c6
- 44338 bb74 03       		.byte	0x3
- 44339 bb75 91       		.byte	0x91
- 44340 bb76 807B     		.sleb128 -640
- 44341 bb78 32       		.uleb128 0x32
- 44342 bb79 BAB10000 		.long	0xb1ba
- 44343 bb7d 03       		.byte	0x3
- 44344 bb7e 91       		.byte	0x91
- 44345 bb7f 907B     		.sleb128 -624
- 44346 bb81 36       		.uleb128 0x36
- 44347 bb82 00000000 		.quad	.LBB2621
- 44347      00000000 
- 44348 bb8a 00000000 		.quad	.LBE2621
- 44348      00000000 
- 44349 bb92 A0BB0000 		.long	0xbba0
- 44350 bb96 34       		.uleb128 0x34
- 44351 bb97 D7B10000 		.long	0xb1d7
- 44352 bb9b 03       		.byte	0x3
- 44353 bb9c 91       		.byte	0x91
- 44354 bb9d A071     		.sleb128 -1888
- 44355 bb9f 00       		.byte	0x0
- 44356 bba0 31       		.uleb128 0x31
- 44357 bba1 910C0000 		.long	0xc91
- 44358 bba5 00000000 		.quad	.LBB2622
- 44358      00000000 
- 44359 bbad 00000000 		.quad	.LBE2622
- 44359      00000000 
- 44360 bbb5 02       		.byte	0x2
- 44361 bbb6 0F08     		.value	0x80f
- 44362 bbb8 10BE0000 		.long	0xbe10
- 44363 bbbc 32       		.uleb128 0x32
- 44364 bbbd A30C0000 		.long	0xca3
- 44365 bbc1 03       		.byte	0x3
- 44366 bbc2 91       		.byte	0x91
- 44367 bbc3 A07B     		.sleb128 -608
- 44368 bbc5 35       		.uleb128 0x35
- 44369 bbc6 B00C0000 		.long	0xcb0
- 44370 bbca 00000000 		.quad	.LBB2624
- 44370      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1137
-
-
- 44371 bbd2 00000000 		.quad	.LBE2624
- 44371      00000000 
- 44372 bbda 02       		.byte	0x2
- 44373 bbdb 7D03     		.value	0x37d
- 44374 bbdd 32       		.uleb128 0x32
- 44375 bbde CE0C0000 		.long	0xcce
- 44376 bbe2 03       		.byte	0x3
- 44377 bbe3 91       		.byte	0x91
- 44378 bbe4 B87B     		.sleb128 -584
- 44379 bbe6 32       		.uleb128 0x32
- 44380 bbe7 C20C0000 		.long	0xcc2
- 44381 bbeb 03       		.byte	0x3
- 44382 bbec 91       		.byte	0x91
- 44383 bbed C07B     		.sleb128 -576
- 44384 bbef 33       		.uleb128 0x33
- 44385 bbf0 00000000 		.quad	.LBB2625
- 44385      00000000 
- 44386 bbf8 00000000 		.quad	.LBE2625
- 44386      00000000 
- 44387 bc00 34       		.uleb128 0x34
- 44388 bc01 DA0C0000 		.long	0xcda
- 44389 bc05 03       		.byte	0x3
- 44390 bc06 91       		.byte	0x91
- 44391 bc07 907C     		.sleb128 -496
- 44392 bc09 34       		.uleb128 0x34
- 44393 bc0a E50C0000 		.long	0xce5
- 44394 bc0e 03       		.byte	0x3
- 44395 bc0f 91       		.byte	0x91
- 44396 bc10 807C     		.sleb128 -512
- 44397 bc12 34       		.uleb128 0x34
- 44398 bc13 F00C0000 		.long	0xcf0
- 44399 bc17 03       		.byte	0x3
- 44400 bc18 91       		.byte	0x91
- 44401 bc19 F07B     		.sleb128 -528
- 44402 bc1b 34       		.uleb128 0x34
- 44403 bc1c FC0C0000 		.long	0xcfc
- 44404 bc20 03       		.byte	0x3
- 44405 bc21 91       		.byte	0x91
- 44406 bc22 E07B     		.sleb128 -544
- 44407 bc24 34       		.uleb128 0x34
- 44408 bc25 080D0000 		.long	0xd08
- 44409 bc29 03       		.byte	0x3
- 44410 bc2a 91       		.byte	0x91
- 44411 bc2b DC7B     		.sleb128 -548
- 44412 bc2d 31       		.uleb128 0x31
- 44413 bc2e 1F0D0000 		.long	0xd1f
- 44414 bc32 00000000 		.quad	.LBB2626
- 44414      00000000 
- 44415 bc3a 00000000 		.quad	.LBE2626
- 44415      00000000 
- 44416 bc42 02       		.byte	0x2
- 44417 bc43 5603     		.value	0x356
- 44418 bc45 5CBC0000 		.long	0xbc5c
- 44419 bc49 32       		.uleb128 0x32
- 44420 bc4a 3A0D0000 		.long	0xd3a
- 44421 bc4e 03       		.byte	0x3
- 44422 bc4f 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1138
-
-
- 44423 bc50 A07C     		.sleb128 -480
- 44424 bc52 32       		.uleb128 0x32
- 44425 bc53 300D0000 		.long	0xd30
- 44426 bc57 03       		.byte	0x3
- 44427 bc58 91       		.byte	0x91
- 44428 bc59 B07C     		.sleb128 -464
- 44429 bc5b 00       		.byte	0x0
- 44430 bc5c 31       		.uleb128 0x31
- 44431 bc5d 450D0000 		.long	0xd45
- 44432 bc61 00000000 		.quad	.LBB2628
- 44432      00000000 
- 44433 bc69 00000000 		.quad	.LBE2628
- 44433      00000000 
- 44434 bc71 02       		.byte	0x2
- 44435 bc72 5E03     		.value	0x35e
- 44436 bc74 8BBC0000 		.long	0xbc8b
- 44437 bc78 32       		.uleb128 0x32
- 44438 bc79 620D0000 		.long	0xd62
- 44439 bc7d 03       		.byte	0x3
- 44440 bc7e 91       		.byte	0x91
- 44441 bc7f C07C     		.sleb128 -448
- 44442 bc81 32       		.uleb128 0x32
- 44443 bc82 570D0000 		.long	0xd57
- 44444 bc86 03       		.byte	0x3
- 44445 bc87 91       		.byte	0x91
- 44446 bc88 D07C     		.sleb128 -432
- 44447 bc8a 00       		.byte	0x0
- 44448 bc8b 31       		.uleb128 0x31
- 44449 bc8c 6E0D0000 		.long	0xd6e
- 44450 bc90 00000000 		.quad	.LBB2630
- 44450      00000000 
- 44451 bc98 00000000 		.quad	.LBE2630
- 44451      00000000 
- 44452 bca0 02       		.byte	0x2
- 44453 bca1 6403     		.value	0x364
- 44454 bca3 F0BC0000 		.long	0xbcf0
- 44455 bca7 32       		.uleb128 0x32
- 44456 bca8 8C0D0000 		.long	0xd8c
- 44457 bcac 03       		.byte	0x3
- 44458 bcad 91       		.byte	0x91
- 44459 bcae E07C     		.sleb128 -416
- 44460 bcb0 32       		.uleb128 0x32
- 44461 bcb1 800D0000 		.long	0xd80
- 44462 bcb5 03       		.byte	0x3
- 44463 bcb6 91       		.byte	0x91
- 44464 bcb7 F07C     		.sleb128 -400
- 44465 bcb9 33       		.uleb128 0x33
- 44466 bcba 00000000 		.quad	.LBB2631
- 44466      00000000 
- 44467 bcc2 00000000 		.quad	.LBE2631
- 44467      00000000 
- 44468 bcca 34       		.uleb128 0x34
- 44469 bccb 980D0000 		.long	0xd98
- 44470 bccf 03       		.byte	0x3
- 44471 bcd0 91       		.byte	0x91
- 44472 bcd1 D071     		.sleb128 -1840
- 44473 bcd3 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1139
-
-
- 44474 bcd4 A40D0000 		.long	0xda4
- 44475 bcd8 03       		.byte	0x3
- 44476 bcd9 91       		.byte	0x91
- 44477 bcda C071     		.sleb128 -1856
- 44478 bcdc 34       		.uleb128 0x34
- 44479 bcdd AF0D0000 		.long	0xdaf
- 44480 bce1 03       		.byte	0x3
- 44481 bce2 91       		.byte	0x91
- 44482 bce3 B071     		.sleb128 -1872
- 44483 bce5 34       		.uleb128 0x34
- 44484 bce6 BB0D0000 		.long	0xdbb
- 44485 bcea 03       		.byte	0x3
- 44486 bceb 91       		.byte	0x91
- 44487 bcec 8C7D     		.sleb128 -372
- 44488 bcee 00       		.byte	0x0
- 44489 bcef 00       		.byte	0x0
- 44490 bcf0 31       		.uleb128 0x31
- 44491 bcf1 C70D0000 		.long	0xdc7
- 44492 bcf5 00000000 		.quad	.LBB2632
- 44492      00000000 
- 44493 bcfd 00000000 		.quad	.LBE2632
- 44493      00000000 
- 44494 bd05 02       		.byte	0x2
- 44495 bd06 6603     		.value	0x366
- 44496 bd08 1FBD0000 		.long	0xbd1f
- 44497 bd0c 32       		.uleb128 0x32
- 44498 bd0d E20D0000 		.long	0xde2
- 44499 bd11 03       		.byte	0x3
- 44500 bd12 91       		.byte	0x91
- 44501 bd13 907D     		.sleb128 -368
- 44502 bd15 32       		.uleb128 0x32
- 44503 bd16 D80D0000 		.long	0xdd8
- 44504 bd1a 03       		.byte	0x3
- 44505 bd1b 91       		.byte	0x91
- 44506 bd1c A07D     		.sleb128 -352
- 44507 bd1e 00       		.byte	0x0
- 44508 bd1f 31       		.uleb128 0x31
- 44509 bd20 6E0D0000 		.long	0xd6e
- 44510 bd24 00000000 		.quad	.LBB2634
- 44510      00000000 
- 44511 bd2c 00000000 		.quad	.LBE2634
- 44511      00000000 
- 44512 bd34 02       		.byte	0x2
- 44513 bd35 6803     		.value	0x368
- 44514 bd37 84BD0000 		.long	0xbd84
- 44515 bd3b 32       		.uleb128 0x32
- 44516 bd3c 8C0D0000 		.long	0xd8c
- 44517 bd40 03       		.byte	0x3
- 44518 bd41 91       		.byte	0x91
- 44519 bd42 B07D     		.sleb128 -336
- 44520 bd44 32       		.uleb128 0x32
- 44521 bd45 800D0000 		.long	0xd80
- 44522 bd49 03       		.byte	0x3
- 44523 bd4a 91       		.byte	0x91
- 44524 bd4b C07D     		.sleb128 -320
- 44525 bd4d 33       		.uleb128 0x33
- 44526 bd4e 00000000 		.quad	.LBB2635
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1140
-
-
- 44526      00000000 
- 44527 bd56 00000000 		.quad	.LBE2635
- 44527      00000000 
- 44528 bd5e 34       		.uleb128 0x34
- 44529 bd5f 980D0000 		.long	0xd98
- 44530 bd63 03       		.byte	0x3
- 44531 bd64 91       		.byte	0x91
- 44532 bd65 8072     		.sleb128 -1792
- 44533 bd67 34       		.uleb128 0x34
- 44534 bd68 A40D0000 		.long	0xda4
- 44535 bd6c 03       		.byte	0x3
- 44536 bd6d 91       		.byte	0x91
- 44537 bd6e F071     		.sleb128 -1808
- 44538 bd70 34       		.uleb128 0x34
- 44539 bd71 AF0D0000 		.long	0xdaf
- 44540 bd75 03       		.byte	0x3
- 44541 bd76 91       		.byte	0x91
- 44542 bd77 E071     		.sleb128 -1824
- 44543 bd79 34       		.uleb128 0x34
- 44544 bd7a BB0D0000 		.long	0xdbb
- 44545 bd7e 03       		.byte	0x3
- 44546 bd7f 91       		.byte	0x91
- 44547 bd80 DC7D     		.sleb128 -292
- 44548 bd82 00       		.byte	0x0
- 44549 bd83 00       		.byte	0x0
- 44550 bd84 31       		.uleb128 0x31
- 44551 bd85 C70D0000 		.long	0xdc7
- 44552 bd89 00000000 		.quad	.LBB2636
- 44552      00000000 
- 44553 bd91 00000000 		.quad	.LBE2636
- 44553      00000000 
- 44554 bd99 02       		.byte	0x2
- 44555 bd9a 6A03     		.value	0x36a
- 44556 bd9c B3BD0000 		.long	0xbdb3
- 44557 bda0 32       		.uleb128 0x32
- 44558 bda1 E20D0000 		.long	0xde2
- 44559 bda5 03       		.byte	0x3
- 44560 bda6 91       		.byte	0x91
- 44561 bda7 E07D     		.sleb128 -288
- 44562 bda9 32       		.uleb128 0x32
- 44563 bdaa D80D0000 		.long	0xdd8
- 44564 bdae 03       		.byte	0x3
- 44565 bdaf 91       		.byte	0x91
- 44566 bdb0 F07D     		.sleb128 -272
- 44567 bdb2 00       		.byte	0x0
- 44568 bdb3 31       		.uleb128 0x31
- 44569 bdb4 ED0D0000 		.long	0xded
- 44570 bdb8 00000000 		.quad	.LBB2638
- 44570      00000000 
- 44571 bdc0 00000000 		.quad	.LBE2638
- 44571      00000000 
- 44572 bdc8 02       		.byte	0x2
- 44573 bdc9 6C03     		.value	0x36c
- 44574 bdcb E2BD0000 		.long	0xbde2
- 44575 bdcf 32       		.uleb128 0x32
- 44576 bdd0 0A0E0000 		.long	0xe0a
- 44577 bdd4 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1141
-
-
- 44578 bdd5 91       		.byte	0x91
- 44579 bdd6 807E     		.sleb128 -256
- 44580 bdd8 32       		.uleb128 0x32
- 44581 bdd9 FF0D0000 		.long	0xdff
- 44582 bddd 03       		.byte	0x3
- 44583 bdde 91       		.byte	0x91
- 44584 bddf 907E     		.sleb128 -240
- 44585 bde1 00       		.byte	0x0
- 44586 bde2 35       		.uleb128 0x35
- 44587 bde3 1F0D0000 		.long	0xd1f
- 44588 bde7 00000000 		.quad	.LBB2640
- 44588      00000000 
- 44589 bdef 00000000 		.quad	.LBE2640
- 44589      00000000 
- 44590 bdf7 02       		.byte	0x2
- 44591 bdf8 6E03     		.value	0x36e
- 44592 bdfa 32       		.uleb128 0x32
- 44593 bdfb 3A0D0000 		.long	0xd3a
- 44594 bdff 03       		.byte	0x3
- 44595 be00 91       		.byte	0x91
- 44596 be01 A07E     		.sleb128 -224
- 44597 be03 32       		.uleb128 0x32
- 44598 be04 300D0000 		.long	0xd30
- 44599 be08 03       		.byte	0x3
- 44600 be09 91       		.byte	0x91
- 44601 be0a B07E     		.sleb128 -208
- 44602 be0c 00       		.byte	0x0
- 44603 be0d 00       		.byte	0x0
- 44604 be0e 00       		.byte	0x0
- 44605 be0f 00       		.byte	0x0
- 44606 be10 36       		.uleb128 0x36
- 44607 be11 00000000 		.quad	.LBB2642
- 44607      00000000 
- 44608 be19 00000000 		.quad	.LBE2642
- 44608      00000000 
- 44609 be21 2FBE0000 		.long	0xbe2f
- 44610 be25 34       		.uleb128 0x34
- 44611 be26 E7B10000 		.long	0xb1e7
- 44612 be2a 03       		.byte	0x3
- 44613 be2b 91       		.byte	0x91
- 44614 be2c 9071     		.sleb128 -1904
- 44615 be2e 00       		.byte	0x0
- 44616 be2f 31       		.uleb128 0x31
- 44617 be30 08B10000 		.long	0xb108
- 44618 be34 00000000 		.quad	.LBB2643
- 44618      00000000 
- 44619 be3c 00000000 		.quad	.LBE2643
- 44619      00000000 
- 44620 be44 02       		.byte	0x2
- 44621 be45 1308     		.value	0x813
- 44622 be47 D7BE0000 		.long	0xbed7
- 44623 be4b 32       		.uleb128 0x32
- 44624 be4c 1AB10000 		.long	0xb11a
- 44625 be50 03       		.byte	0x3
- 44626 be51 91       		.byte	0x91
- 44627 be52 C07E     		.sleb128 -192
- 44628 be54 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1142
-
-
- 44629 be55 00000000 		.quad	.LBB2644
- 44629      00000000 
- 44630 be5d 00000000 		.quad	.LBE2644
- 44630      00000000 
- 44631 be65 34       		.uleb128 0x34
- 44632 be66 26B10000 		.long	0xb126
- 44633 be6a 09       		.byte	0x9
- 44634 be6b 03       		.byte	0x3
- 44635 be6c 00000000 		.quad	ShiftRowTable.6741
- 44635      00000000 
- 44636 be74 35       		.uleb128 0x35
- 44637 be75 6E0D0000 		.long	0xd6e
- 44638 be79 00000000 		.quad	.LBB2645
- 44638      00000000 
- 44639 be81 00000000 		.quad	.LBE2645
- 44639      00000000 
- 44640 be89 02       		.byte	0x2
- 44641 be8a 4502     		.value	0x245
- 44642 be8c 32       		.uleb128 0x32
- 44643 be8d 8C0D0000 		.long	0xd8c
- 44644 be91 03       		.byte	0x3
- 44645 be92 91       		.byte	0x91
- 44646 be93 D07E     		.sleb128 -176
- 44647 be95 32       		.uleb128 0x32
- 44648 be96 800D0000 		.long	0xd80
- 44649 be9a 03       		.byte	0x3
- 44650 be9b 91       		.byte	0x91
- 44651 be9c E07E     		.sleb128 -160
- 44652 be9e 33       		.uleb128 0x33
- 44653 be9f 00000000 		.quad	.LBB2646
- 44653      00000000 
- 44654 bea7 00000000 		.quad	.LBE2646
- 44654      00000000 
- 44655 beaf 34       		.uleb128 0x34
- 44656 beb0 980D0000 		.long	0xd98
- 44657 beb4 03       		.byte	0x3
- 44658 beb5 91       		.byte	0x91
- 44659 beb6 B072     		.sleb128 -1744
- 44660 beb8 34       		.uleb128 0x34
- 44661 beb9 A40D0000 		.long	0xda4
- 44662 bebd 03       		.byte	0x3
- 44663 bebe 91       		.byte	0x91
- 44664 bebf A072     		.sleb128 -1760
- 44665 bec1 34       		.uleb128 0x34
- 44666 bec2 AF0D0000 		.long	0xdaf
- 44667 bec6 03       		.byte	0x3
- 44668 bec7 91       		.byte	0x91
- 44669 bec8 9072     		.sleb128 -1776
- 44670 beca 34       		.uleb128 0x34
- 44671 becb BB0D0000 		.long	0xdbb
- 44672 becf 03       		.byte	0x3
- 44673 bed0 91       		.byte	0x91
- 44674 bed1 FC7E     		.sleb128 -132
- 44675 bed3 00       		.byte	0x0
- 44676 bed4 00       		.byte	0x0
- 44677 bed5 00       		.byte	0x0
- 44678 bed6 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1143
-
-
- 44679 bed7 36       		.uleb128 0x36
- 44680 bed8 00000000 		.quad	.LBB2647
- 44680      00000000 
- 44681 bee0 00000000 		.quad	.LBE2647
- 44681      00000000 
- 44682 bee8 F6BE0000 		.long	0xbef6
- 44683 beec 34       		.uleb128 0x34
- 44684 beed F7B10000 		.long	0xb1f7
- 44685 bef1 03       		.byte	0x3
- 44686 bef2 91       		.byte	0x91
- 44687 bef3 8071     		.sleb128 -1920
- 44688 bef5 00       		.byte	0x0
- 44689 bef6 31       		.uleb128 0x31
- 44690 bef7 3EB00000 		.long	0xb03e
- 44691 befb 00000000 		.quad	.LBB2648
- 44691      00000000 
- 44692 bf03 00000000 		.quad	.LBE2648
- 44692      00000000 
- 44693 bf0b 02       		.byte	0x2
- 44694 bf0c 1708     		.value	0x817
- 44695 bf0e 50BF0000 		.long	0xbf50
- 44696 bf12 32       		.uleb128 0x32
- 44697 bf13 5CB00000 		.long	0xb05c
- 44698 bf17 03       		.byte	0x3
- 44699 bf18 91       		.byte	0x91
- 44700 bf19 807F     		.sleb128 -128
- 44701 bf1b 32       		.uleb128 0x32
- 44702 bf1c 50B00000 		.long	0xb050
- 44703 bf20 03       		.byte	0x3
- 44704 bf21 91       		.byte	0x91
- 44705 bf22 907F     		.sleb128 -112
- 44706 bf24 35       		.uleb128 0x35
- 44707 bf25 520E0000 		.long	0xe52
- 44708 bf29 00000000 		.quad	.LBB2650
- 44708      00000000 
- 44709 bf31 00000000 		.quad	.LBE2650
- 44709      00000000 
- 44710 bf39 02       		.byte	0x2
- 44711 bf3a 2302     		.value	0x223
- 44712 bf3c 32       		.uleb128 0x32
- 44713 bf3d 6D0E0000 		.long	0xe6d
- 44714 bf41 03       		.byte	0x3
- 44715 bf42 91       		.byte	0x91
- 44716 bf43 A07F     		.sleb128 -96
- 44717 bf45 32       		.uleb128 0x32
- 44718 bf46 630E0000 		.long	0xe63
- 44719 bf4a 03       		.byte	0x3
- 44720 bf4b 91       		.byte	0x91
- 44721 bf4c B07F     		.sleb128 -80
- 44722 bf4e 00       		.byte	0x0
- 44723 bf4f 00       		.byte	0x0
- 44724 bf50 36       		.uleb128 0x36
- 44725 bf51 00000000 		.quad	.LBB2652
- 44725      00000000 
- 44726 bf59 00000000 		.quad	.LBE2652
- 44726      00000000 
- 44727 bf61 6FBF0000 		.long	0xbf6f
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1144
-
-
- 44728 bf65 34       		.uleb128 0x34
- 44729 bf66 07B20000 		.long	0xb207
- 44730 bf6a 03       		.byte	0x3
- 44731 bf6b 91       		.byte	0x91
- 44732 bf6c F070     		.sleb128 -1936
- 44733 bf6e 00       		.byte	0x0
- 44734 bf6f 33       		.uleb128 0x33
- 44735 bf70 00000000 		.quad	.LBB2653
- 44735      00000000 
- 44736 bf78 00000000 		.quad	.LBE2653
- 44736      00000000 
- 44737 bf80 34       		.uleb128 0x34
- 44738 bf81 13B20000 		.long	0xb213
- 44739 bf85 03       		.byte	0x3
- 44740 bf86 91       		.byte	0x91
- 44741 bf87 E070     		.sleb128 -1952
- 44742 bf89 00       		.byte	0x0
- 44743 bf8a 00       		.byte	0x0
- 44744 bf8b 00       		.byte	0x0
- 44745 bf8c 25       		.uleb128 0x25
- 44746 bf8d 00000000 		.long	.LASF375
- 44747 bf91 02       		.byte	0x2
- 44748 bf92 5308     		.value	0x853
- 44749 bf94 01       		.byte	0x1
- 44750 bf95 B1010000 		.long	0x1b1
- 44751 bf99 03       		.byte	0x3
- 44752 bf9a E3BF0000 		.long	0xbfe3
- 44753 bf9e 26       		.uleb128 0x26
- 44754 bf9f 00000000 		.long	.LASF66
- 44755 bfa3 02       		.byte	0x2
- 44756 bfa4 5308     		.value	0x853
- 44757 bfa6 B1010000 		.long	0x1b1
- 44758 bfaa 26       		.uleb128 0x26
- 44759 bfab 00000000 		.long	.LASF64
- 44760 bfaf 02       		.byte	0x2
- 44761 bfb0 5308     		.value	0x853
- 44762 bfb2 B1010000 		.long	0x1b1
- 44763 bfb6 29       		.uleb128 0x29
- 44764 bfb7 C6BF0000 		.long	0xbfc6
- 44765 bfbb 28       		.uleb128 0x28
- 44766 bfbc 7600     		.string	"v"
- 44767 bfbe 02       		.byte	0x2
- 44768 bfbf 5508     		.value	0x855
- 44769 bfc1 27050000 		.long	0x527
- 44770 bfc5 00       		.byte	0x0
- 44771 bfc6 29       		.uleb128 0x29
- 44772 bfc7 D6BF0000 		.long	0xbfd6
- 44773 bfcb 28       		.uleb128 0x28
- 44774 bfcc 7600     		.string	"v"
- 44775 bfce 02       		.byte	0x2
- 44776 bfcf 5908     		.value	0x859
- 44777 bfd1 27050000 		.long	0x527
- 44778 bfd5 00       		.byte	0x0
- 44779 bfd6 2A       		.uleb128 0x2a
- 44780 bfd7 28       		.uleb128 0x28
- 44781 bfd8 7600     		.string	"v"
- 44782 bfda 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1145
-
-
- 44783 bfdb 5A08     		.value	0x85a
- 44784 bfdd 27050000 		.long	0x527
- 44785 bfe1 00       		.byte	0x0
- 44786 bfe2 00       		.byte	0x0
- 44787 bfe3 25       		.uleb128 0x25
- 44788 bfe4 00000000 		.long	.LASF376
- 44789 bfe8 02       		.byte	0x2
- 44790 bfe9 7008     		.value	0x870
- 44791 bfeb 01       		.byte	0x1
- 44792 bfec B1010000 		.long	0x1b1
- 44793 bff0 03       		.byte	0x3
- 44794 bff1 82C00000 		.long	0xc082
- 44795 bff5 26       		.uleb128 0x26
- 44796 bff6 00000000 		.long	.LASF66
- 44797 bffa 02       		.byte	0x2
- 44798 bffb 7008     		.value	0x870
- 44799 bffd B1010000 		.long	0x1b1
- 44800 c001 26       		.uleb128 0x26
- 44801 c002 00000000 		.long	.LASF64
- 44802 c006 02       		.byte	0x2
- 44803 c007 7108     		.value	0x871
- 44804 c009 B1010000 		.long	0x1b1
- 44805 c00d 27       		.uleb128 0x27
- 44806 c00e 00000000 		.long	.LASF368
- 44807 c012 02       		.byte	0x2
- 44808 c013 7408     		.value	0x874
- 44809 c015 B1010000 		.long	0x1b1
- 44810 c019 27       		.uleb128 0x27
- 44811 c01a 00000000 		.long	.LASF369
- 44812 c01e 02       		.byte	0x2
- 44813 c01f 7508     		.value	0x875
- 44814 c021 B1010000 		.long	0x1b1
- 44815 c025 29       		.uleb128 0x29
- 44816 c026 35C00000 		.long	0xc035
- 44817 c02a 28       		.uleb128 0x28
- 44818 c02b 7600     		.string	"v"
- 44819 c02d 02       		.byte	0x2
- 44820 c02e 7B08     		.value	0x87b
- 44821 c030 27050000 		.long	0x527
- 44822 c034 00       		.byte	0x0
- 44823 c035 29       		.uleb128 0x29
- 44824 c036 45C00000 		.long	0xc045
- 44825 c03a 28       		.uleb128 0x28
- 44826 c03b 7600     		.string	"v"
- 44827 c03d 02       		.byte	0x2
- 44828 c03e 8E08     		.value	0x88e
- 44829 c040 27050000 		.long	0x527
- 44830 c044 00       		.byte	0x0
- 44831 c045 29       		.uleb128 0x29
- 44832 c046 55C00000 		.long	0xc055
- 44833 c04a 28       		.uleb128 0x28
- 44834 c04b 7600     		.string	"v"
- 44835 c04d 02       		.byte	0x2
- 44836 c04e 9608     		.value	0x896
- 44837 c050 27050000 		.long	0x527
- 44838 c054 00       		.byte	0x0
- 44839 c055 29       		.uleb128 0x29
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1146
-
-
- 44840 c056 65C00000 		.long	0xc065
- 44841 c05a 28       		.uleb128 0x28
- 44842 c05b 7600     		.string	"v"
- 44843 c05d 02       		.byte	0x2
- 44844 c05e 9E08     		.value	0x89e
- 44845 c060 27050000 		.long	0x527
- 44846 c064 00       		.byte	0x0
- 44847 c065 29       		.uleb128 0x29
- 44848 c066 75C00000 		.long	0xc075
- 44849 c06a 28       		.uleb128 0x28
- 44850 c06b 7600     		.string	"v"
- 44851 c06d 02       		.byte	0x2
- 44852 c06e A708     		.value	0x8a7
- 44853 c070 27050000 		.long	0x527
- 44854 c074 00       		.byte	0x0
- 44855 c075 2A       		.uleb128 0x2a
- 44856 c076 28       		.uleb128 0x28
- 44857 c077 7600     		.string	"v"
- 44858 c079 02       		.byte	0x2
- 44859 c07a A908     		.value	0x8a9
- 44860 c07c 27050000 		.long	0x527
- 44861 c080 00       		.byte	0x0
- 44862 c081 00       		.byte	0x0
- 44863 c082 25       		.uleb128 0x25
- 44864 c083 00000000 		.long	.LASF377
- 44865 c087 02       		.byte	0x2
- 44866 c088 8603     		.value	0x386
- 44867 c08a 01       		.byte	0x1
- 44868 c08b B1010000 		.long	0x1b1
- 44869 c08f 03       		.byte	0x3
- 44870 c090 A1C00000 		.long	0xc0a1
- 44871 c094 26       		.uleb128 0x26
- 44872 c095 00000000 		.long	.LASF66
- 44873 c099 02       		.byte	0x2
- 44874 c09a 8603     		.value	0x386
- 44875 c09c B1010000 		.long	0x1b1
- 44876 c0a0 00       		.byte	0x0
- 44877 c0a1 25       		.uleb128 0x25
- 44878 c0a2 00000000 		.long	.LASF378
- 44879 c0a6 02       		.byte	0x2
- 44880 c0a7 5E02     		.value	0x25e
- 44881 c0a9 01       		.byte	0x1
- 44882 c0aa B1010000 		.long	0x1b1
- 44883 c0ae 03       		.byte	0x3
- 44884 c0af DDC00000 		.long	0xc0dd
- 44885 c0b3 26       		.uleb128 0x26
- 44886 c0b4 00000000 		.long	.LASF66
- 44887 c0b8 02       		.byte	0x2
- 44888 c0b9 5E02     		.value	0x25e
- 44889 c0bb B1010000 		.long	0x1b1
- 44890 c0bf 2C       		.uleb128 0x2c
- 44891 c0c0 00000000 		.long	.LASF379
- 44892 c0c4 02       		.byte	0x2
- 44893 c0c5 6002     		.value	0x260
- 44894 c0c7 DDC00000 		.long	0xc0dd
- 44895 c0cb 10       		.byte	0x10
- 44896 c0cc 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1147
-
-
- 44897 c0cd 0D       		.byte	0xd
- 44898 c0ce 0A       		.byte	0xa
- 44899 c0cf 07       		.byte	0x7
- 44900 c0d0 04       		.byte	0x4
- 44901 c0d1 01       		.byte	0x1
- 44902 c0d2 0E       		.byte	0xe
- 44903 c0d3 0B       		.byte	0xb
- 44904 c0d4 08       		.byte	0x8
- 44905 c0d5 05       		.byte	0x5
- 44906 c0d6 02       		.byte	0x2
- 44907 c0d7 0F       		.byte	0xf
- 44908 c0d8 0C       		.byte	0xc
- 44909 c0d9 09       		.byte	0x9
- 44910 c0da 06       		.byte	0x6
- 44911 c0db 03       		.byte	0x3
- 44912 c0dc 00       		.byte	0x0
- 44913 c0dd 06       		.uleb128 0x6
- 44914 c0de 60040000 		.long	0x460
- 44915 c0e2 25       		.uleb128 0x25
- 44916 c0e3 00000000 		.long	.LASF380
- 44917 c0e7 02       		.byte	0x2
- 44918 c0e8 BA08     		.value	0x8ba
- 44919 c0ea 01       		.byte	0x1
- 44920 c0eb B1010000 		.long	0x1b1
- 44921 c0ef 03       		.byte	0x3
- 44922 c0f0 59C10000 		.long	0xc159
- 44923 c0f4 26       		.uleb128 0x26
- 44924 c0f5 00000000 		.long	.LASF66
- 44925 c0f9 02       		.byte	0x2
- 44926 c0fa BA08     		.value	0x8ba
- 44927 c0fc B1010000 		.long	0x1b1
- 44928 c100 26       		.uleb128 0x26
- 44929 c101 00000000 		.long	.LASF64
- 44930 c105 02       		.byte	0x2
- 44931 c106 BB08     		.value	0x8bb
- 44932 c108 B1010000 		.long	0x1b1
- 44933 c10c 29       		.uleb128 0x29
- 44934 c10d 1CC10000 		.long	0xc11c
- 44935 c111 28       		.uleb128 0x28
- 44936 c112 7600     		.string	"v"
- 44937 c114 02       		.byte	0x2
- 44938 c115 BD08     		.value	0x8bd
- 44939 c117 27050000 		.long	0x527
- 44940 c11b 00       		.byte	0x0
- 44941 c11c 29       		.uleb128 0x29
- 44942 c11d 2CC10000 		.long	0xc12c
- 44943 c121 28       		.uleb128 0x28
- 44944 c122 7600     		.string	"v"
- 44945 c124 02       		.byte	0x2
- 44946 c125 C508     		.value	0x8c5
- 44947 c127 27050000 		.long	0x527
- 44948 c12b 00       		.byte	0x0
- 44949 c12c 29       		.uleb128 0x29
- 44950 c12d 3CC10000 		.long	0xc13c
- 44951 c131 28       		.uleb128 0x28
- 44952 c132 7600     		.string	"v"
- 44953 c134 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1148
-
-
- 44954 c135 C908     		.value	0x8c9
- 44955 c137 27050000 		.long	0x527
- 44956 c13b 00       		.byte	0x0
- 44957 c13c 29       		.uleb128 0x29
- 44958 c13d 4CC10000 		.long	0xc14c
- 44959 c141 28       		.uleb128 0x28
- 44960 c142 7600     		.string	"v"
- 44961 c144 02       		.byte	0x2
- 44962 c145 CD08     		.value	0x8cd
- 44963 c147 27050000 		.long	0x527
- 44964 c14b 00       		.byte	0x0
- 44965 c14c 2A       		.uleb128 0x2a
- 44966 c14d 28       		.uleb128 0x28
- 44967 c14e 7600     		.string	"v"
- 44968 c150 02       		.byte	0x2
- 44969 c151 CE08     		.value	0x8ce
- 44970 c153 27050000 		.long	0x527
- 44971 c157 00       		.byte	0x0
- 44972 c158 00       		.byte	0x0
- 44973 c159 38       		.uleb128 0x38
- 44974 c15a 00000000 		.long	.LASF381
- 44975 c15e 02       		.byte	0x2
- 44976 c15f DD08     		.value	0x8dd
- 44977 c161 01       		.byte	0x1
- 44978 c162 B1010000 		.long	0x1b1
- 44979 c166 00000000 		.quad	.LFB577
- 44979      00000000 
- 44980 c16e 00000000 		.quad	.LFE577
- 44980      00000000 
- 44981 c176 00000000 		.long	.LLST9
- 44982 c17a 36D00000 		.long	0xd036
- 44983 c17e 2E       		.uleb128 0x2e
- 44984 c17f 00000000 		.long	.LASF66
- 44985 c183 02       		.byte	0x2
- 44986 c184 DD08     		.value	0x8dd
- 44987 c186 B1010000 		.long	0x1b1
- 44988 c18a 03       		.byte	0x3
- 44989 c18b 91       		.byte	0x91
- 44990 c18c F06B     		.sleb128 -2576
- 44991 c18e 2F       		.uleb128 0x2f
- 44992 c18f 6B657900 		.string	"key"
- 44993 c193 02       		.byte	0x2
- 44994 c194 DD08     		.value	0x8dd
- 44995 c196 140D0000 		.long	0xd14
- 44996 c19a 03       		.byte	0x3
- 44997 c19b 91       		.byte	0x91
- 44998 c19c E86B     		.sleb128 -2584
- 44999 c19e 2F       		.uleb128 0x2f
- 45000 c19f 4E7200   		.string	"Nr"
- 45001 c1a2 02       		.byte	0x2
- 45002 c1a3 DE08     		.value	0x8de
- 45003 c1a5 6D000000 		.long	0x6d
- 45004 c1a9 03       		.byte	0x3
- 45005 c1aa 91       		.byte	0x91
- 45006 c1ab E46B     		.sleb128 -2588
- 45007 c1ad 37       		.uleb128 0x37
- 45008 c1ae 697800   		.string	"ix"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1149
-
-
- 45009 c1b1 02       		.byte	0x2
- 45010 c1b2 E008     		.value	0x8e0
- 45011 c1b4 6D000000 		.long	0x6d
- 45012 c1b8 03       		.byte	0x3
- 45013 c1b9 91       		.byte	0x91
- 45014 c1ba CC71     		.sleb128 -1844
- 45015 c1bc 31       		.uleb128 0x31
- 45016 c1bd 8CBF0000 		.long	0xbf8c
- 45017 c1c1 00000000 		.quad	.LBB2777
- 45017      00000000 
- 45018 c1c9 00000000 		.quad	.LBE2777
- 45018      00000000 
- 45019 c1d1 02       		.byte	0x2
- 45020 c1d2 E208     		.value	0x8e2
- 45021 c1d4 9EC20000 		.long	0xc29e
- 45022 c1d8 32       		.uleb128 0x32
- 45023 c1d9 AABF0000 		.long	0xbfaa
- 45024 c1dd 03       		.byte	0x3
- 45025 c1de 91       		.byte	0x91
- 45026 c1df D071     		.sleb128 -1840
- 45027 c1e1 32       		.uleb128 0x32
- 45028 c1e2 9EBF0000 		.long	0xbf9e
- 45029 c1e6 03       		.byte	0x3
- 45030 c1e7 91       		.byte	0x91
- 45031 c1e8 E071     		.sleb128 -1824
- 45032 c1ea 36       		.uleb128 0x36
- 45033 c1eb 00000000 		.quad	.LBB2779
- 45033      00000000 
- 45034 c1f3 00000000 		.quad	.LBE2779
- 45034      00000000 
- 45035 c1fb 09C20000 		.long	0xc209
- 45036 c1ff 34       		.uleb128 0x34
- 45037 c200 BBBF0000 		.long	0xbfbb
- 45038 c204 03       		.byte	0x3
- 45039 c205 91       		.byte	0x91
- 45040 c206 A06C     		.sleb128 -2528
- 45041 c208 00       		.byte	0x0
- 45042 c209 31       		.uleb128 0x31
- 45043 c20a 3EB00000 		.long	0xb03e
- 45044 c20e 00000000 		.quad	.LBB2780
- 45044      00000000 
- 45045 c216 00000000 		.quad	.LBE2780
- 45045      00000000 
- 45046 c21e 02       		.byte	0x2
- 45047 c21f 5708     		.value	0x857
- 45048 c221 63C20000 		.long	0xc263
- 45049 c225 32       		.uleb128 0x32
- 45050 c226 5CB00000 		.long	0xb05c
- 45051 c22a 03       		.byte	0x3
- 45052 c22b 91       		.byte	0x91
- 45053 c22c F071     		.sleb128 -1808
- 45054 c22e 32       		.uleb128 0x32
- 45055 c22f 50B00000 		.long	0xb050
- 45056 c233 03       		.byte	0x3
- 45057 c234 91       		.byte	0x91
- 45058 c235 8072     		.sleb128 -1792
- 45059 c237 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1150
-
-
- 45060 c238 520E0000 		.long	0xe52
- 45061 c23c 00000000 		.quad	.LBB2782
- 45061      00000000 
- 45062 c244 00000000 		.quad	.LBE2782
- 45062      00000000 
- 45063 c24c 02       		.byte	0x2
- 45064 c24d 2302     		.value	0x223
- 45065 c24f 32       		.uleb128 0x32
- 45066 c250 6D0E0000 		.long	0xe6d
- 45067 c254 03       		.byte	0x3
- 45068 c255 91       		.byte	0x91
- 45069 c256 9072     		.sleb128 -1776
- 45070 c258 32       		.uleb128 0x32
- 45071 c259 630E0000 		.long	0xe63
- 45072 c25d 03       		.byte	0x3
- 45073 c25e 91       		.byte	0x91
- 45074 c25f A072     		.sleb128 -1760
- 45075 c261 00       		.byte	0x0
- 45076 c262 00       		.byte	0x0
- 45077 c263 36       		.uleb128 0x36
- 45078 c264 00000000 		.quad	.LBB2784
- 45078      00000000 
- 45079 c26c 00000000 		.quad	.LBE2784
- 45079      00000000 
- 45080 c274 82C20000 		.long	0xc282
- 45081 c278 34       		.uleb128 0x34
- 45082 c279 CBBF0000 		.long	0xbfcb
- 45083 c27d 03       		.byte	0x3
- 45084 c27e 91       		.byte	0x91
- 45085 c27f 906C     		.sleb128 -2544
- 45086 c281 00       		.byte	0x0
- 45087 c282 33       		.uleb128 0x33
- 45088 c283 00000000 		.quad	.LBB2785
- 45088      00000000 
- 45089 c28b 00000000 		.quad	.LBE2785
- 45089      00000000 
- 45090 c293 34       		.uleb128 0x34
- 45091 c294 D7BF0000 		.long	0xbfd7
- 45092 c298 03       		.byte	0x3
- 45093 c299 91       		.byte	0x91
- 45094 c29a 806C     		.sleb128 -2560
- 45095 c29c 00       		.byte	0x0
- 45096 c29d 00       		.byte	0x0
- 45097 c29e 31       		.uleb128 0x31
- 45098 c29f E3BF0000 		.long	0xbfe3
- 45099 c2a3 00000000 		.quad	.LBB2786
- 45099      00000000 
- 45100 c2ab 00000000 		.quad	.LBE2786
- 45100      00000000 
- 45101 c2b3 02       		.byte	0x2
- 45102 c2b4 E508     		.value	0x8e5
- 45103 c2b6 01CC0000 		.long	0xcc01
- 45104 c2ba 32       		.uleb128 0x32
- 45105 c2bb 01C00000 		.long	0xc001
- 45106 c2bf 03       		.byte	0x3
- 45107 c2c0 91       		.byte	0x91
- 45108 c2c1 B072     		.sleb128 -1744
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1151
-
-
- 45109 c2c3 32       		.uleb128 0x32
- 45110 c2c4 F5BF0000 		.long	0xbff5
- 45111 c2c8 03       		.byte	0x3
- 45112 c2c9 91       		.byte	0x91
- 45113 c2ca C072     		.sleb128 -1728
- 45114 c2cc 33       		.uleb128 0x33
- 45115 c2cd 00000000 		.quad	.LBB2787
- 45115      00000000 
- 45116 c2d5 00000000 		.quad	.LBE2787
- 45116      00000000 
- 45117 c2dd 34       		.uleb128 0x34
- 45118 c2de 0DC00000 		.long	0xc00d
- 45119 c2e2 03       		.byte	0x3
- 45120 c2e3 91       		.byte	0x91
- 45121 c2e4 E072     		.sleb128 -1696
- 45122 c2e6 34       		.uleb128 0x34
- 45123 c2e7 19C00000 		.long	0xc019
- 45124 c2eb 03       		.byte	0x3
- 45125 c2ec 91       		.byte	0x91
- 45126 c2ed D072     		.sleb128 -1712
- 45127 c2ef 36       		.uleb128 0x36
- 45128 c2f0 00000000 		.quad	.LBB2788
- 45128      00000000 
- 45129 c2f8 00000000 		.quad	.LBE2788
- 45129      00000000 
- 45130 c300 0EC30000 		.long	0xc30e
- 45131 c304 34       		.uleb128 0x34
- 45132 c305 2AC00000 		.long	0xc02a
- 45133 c309 03       		.byte	0x3
- 45134 c30a 91       		.byte	0x91
- 45135 c30b 806D     		.sleb128 -2432
- 45136 c30d 00       		.byte	0x0
- 45137 c30e 31       		.uleb128 0x31
- 45138 c30f 82C00000 		.long	0xc082
- 45139 c313 00000000 		.quad	.LBB2789
- 45139      00000000 
- 45140 c31b 00000000 		.quad	.LBE2789
- 45140      00000000 
- 45141 c323 02       		.byte	0x2
- 45142 c324 8908     		.value	0x889
- 45143 c326 7EC50000 		.long	0xc57e
- 45144 c32a 32       		.uleb128 0x32
- 45145 c32b 94C00000 		.long	0xc094
- 45146 c32f 03       		.byte	0x3
- 45147 c330 91       		.byte	0x91
- 45148 c331 F072     		.sleb128 -1680
- 45149 c333 35       		.uleb128 0x35
- 45150 c334 B00C0000 		.long	0xcb0
- 45151 c338 00000000 		.quad	.LBB2791
- 45151      00000000 
- 45152 c340 00000000 		.quad	.LBE2791
- 45152      00000000 
- 45153 c348 02       		.byte	0x2
- 45154 c349 8803     		.value	0x388
- 45155 c34b 32       		.uleb128 0x32
- 45156 c34c CE0C0000 		.long	0xcce
- 45157 c350 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1152
-
-
- 45158 c351 91       		.byte	0x91
- 45159 c352 8873     		.sleb128 -1656
- 45160 c354 32       		.uleb128 0x32
- 45161 c355 C20C0000 		.long	0xcc2
- 45162 c359 03       		.byte	0x3
- 45163 c35a 91       		.byte	0x91
- 45164 c35b 9073     		.sleb128 -1648
- 45165 c35d 33       		.uleb128 0x33
- 45166 c35e 00000000 		.quad	.LBB2792
- 45166      00000000 
- 45167 c366 00000000 		.quad	.LBE2792
- 45167      00000000 
- 45168 c36e 34       		.uleb128 0x34
- 45169 c36f DA0C0000 		.long	0xcda
- 45170 c373 03       		.byte	0x3
- 45171 c374 91       		.byte	0x91
- 45172 c375 E073     		.sleb128 -1568
- 45173 c377 34       		.uleb128 0x34
- 45174 c378 E50C0000 		.long	0xce5
- 45175 c37c 03       		.byte	0x3
- 45176 c37d 91       		.byte	0x91
- 45177 c37e D073     		.sleb128 -1584
- 45178 c380 34       		.uleb128 0x34
- 45179 c381 F00C0000 		.long	0xcf0
- 45180 c385 03       		.byte	0x3
- 45181 c386 91       		.byte	0x91
- 45182 c387 C073     		.sleb128 -1600
- 45183 c389 34       		.uleb128 0x34
- 45184 c38a FC0C0000 		.long	0xcfc
- 45185 c38e 03       		.byte	0x3
- 45186 c38f 91       		.byte	0x91
- 45187 c390 B073     		.sleb128 -1616
- 45188 c392 34       		.uleb128 0x34
- 45189 c393 080D0000 		.long	0xd08
- 45190 c397 03       		.byte	0x3
- 45191 c398 91       		.byte	0x91
- 45192 c399 AC73     		.sleb128 -1620
- 45193 c39b 31       		.uleb128 0x31
- 45194 c39c 1F0D0000 		.long	0xd1f
- 45195 c3a0 00000000 		.quad	.LBB2793
- 45195      00000000 
- 45196 c3a8 00000000 		.quad	.LBE2793
- 45196      00000000 
- 45197 c3b0 02       		.byte	0x2
- 45198 c3b1 5603     		.value	0x356
- 45199 c3b3 CAC30000 		.long	0xc3ca
- 45200 c3b7 32       		.uleb128 0x32
- 45201 c3b8 3A0D0000 		.long	0xd3a
- 45202 c3bc 03       		.byte	0x3
- 45203 c3bd 91       		.byte	0x91
- 45204 c3be F073     		.sleb128 -1552
- 45205 c3c0 32       		.uleb128 0x32
- 45206 c3c1 300D0000 		.long	0xd30
- 45207 c3c5 03       		.byte	0x3
- 45208 c3c6 91       		.byte	0x91
- 45209 c3c7 8074     		.sleb128 -1536
- 45210 c3c9 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1153
-
-
- 45211 c3ca 31       		.uleb128 0x31
- 45212 c3cb 450D0000 		.long	0xd45
- 45213 c3cf 00000000 		.quad	.LBB2795
- 45213      00000000 
- 45214 c3d7 00000000 		.quad	.LBE2795
- 45214      00000000 
- 45215 c3df 02       		.byte	0x2
- 45216 c3e0 5E03     		.value	0x35e
- 45217 c3e2 F9C30000 		.long	0xc3f9
- 45218 c3e6 32       		.uleb128 0x32
- 45219 c3e7 620D0000 		.long	0xd62
- 45220 c3eb 03       		.byte	0x3
- 45221 c3ec 91       		.byte	0x91
- 45222 c3ed 9074     		.sleb128 -1520
- 45223 c3ef 32       		.uleb128 0x32
- 45224 c3f0 570D0000 		.long	0xd57
- 45225 c3f4 03       		.byte	0x3
- 45226 c3f5 91       		.byte	0x91
- 45227 c3f6 A074     		.sleb128 -1504
- 45228 c3f8 00       		.byte	0x0
- 45229 c3f9 31       		.uleb128 0x31
- 45230 c3fa 6E0D0000 		.long	0xd6e
- 45231 c3fe 00000000 		.quad	.LBB2797
- 45231      00000000 
- 45232 c406 00000000 		.quad	.LBE2797
- 45232      00000000 
- 45233 c40e 02       		.byte	0x2
- 45234 c40f 6403     		.value	0x364
- 45235 c411 5EC40000 		.long	0xc45e
- 45236 c415 32       		.uleb128 0x32
- 45237 c416 8C0D0000 		.long	0xd8c
- 45238 c41a 03       		.byte	0x3
- 45239 c41b 91       		.byte	0x91
- 45240 c41c B074     		.sleb128 -1488
- 45241 c41e 32       		.uleb128 0x32
- 45242 c41f 800D0000 		.long	0xd80
- 45243 c423 03       		.byte	0x3
- 45244 c424 91       		.byte	0x91
- 45245 c425 C074     		.sleb128 -1472
- 45246 c427 33       		.uleb128 0x33
- 45247 c428 00000000 		.quad	.LBB2798
- 45247      00000000 
- 45248 c430 00000000 		.quad	.LBE2798
- 45248      00000000 
- 45249 c438 34       		.uleb128 0x34
- 45250 c439 980D0000 		.long	0xd98
- 45251 c43d 03       		.byte	0x3
- 45252 c43e 91       		.byte	0x91
- 45253 c43f B06D     		.sleb128 -2384
- 45254 c441 34       		.uleb128 0x34
- 45255 c442 A40D0000 		.long	0xda4
- 45256 c446 03       		.byte	0x3
- 45257 c447 91       		.byte	0x91
- 45258 c448 A06D     		.sleb128 -2400
- 45259 c44a 34       		.uleb128 0x34
- 45260 c44b AF0D0000 		.long	0xdaf
- 45261 c44f 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1154
-
-
- 45262 c450 91       		.byte	0x91
- 45263 c451 906D     		.sleb128 -2416
- 45264 c453 34       		.uleb128 0x34
- 45265 c454 BB0D0000 		.long	0xdbb
- 45266 c458 03       		.byte	0x3
- 45267 c459 91       		.byte	0x91
- 45268 c45a DC74     		.sleb128 -1444
- 45269 c45c 00       		.byte	0x0
- 45270 c45d 00       		.byte	0x0
- 45271 c45e 31       		.uleb128 0x31
- 45272 c45f C70D0000 		.long	0xdc7
- 45273 c463 00000000 		.quad	.LBB2799
- 45273      00000000 
- 45274 c46b 00000000 		.quad	.LBE2799
- 45274      00000000 
- 45275 c473 02       		.byte	0x2
- 45276 c474 6603     		.value	0x366
- 45277 c476 8DC40000 		.long	0xc48d
- 45278 c47a 32       		.uleb128 0x32
- 45279 c47b E20D0000 		.long	0xde2
- 45280 c47f 03       		.byte	0x3
- 45281 c480 91       		.byte	0x91
- 45282 c481 E074     		.sleb128 -1440
- 45283 c483 32       		.uleb128 0x32
- 45284 c484 D80D0000 		.long	0xdd8
- 45285 c488 03       		.byte	0x3
- 45286 c489 91       		.byte	0x91
- 45287 c48a F074     		.sleb128 -1424
- 45288 c48c 00       		.byte	0x0
- 45289 c48d 31       		.uleb128 0x31
- 45290 c48e 6E0D0000 		.long	0xd6e
- 45291 c492 00000000 		.quad	.LBB2801
- 45291      00000000 
- 45292 c49a 00000000 		.quad	.LBE2801
- 45292      00000000 
- 45293 c4a2 02       		.byte	0x2
- 45294 c4a3 6803     		.value	0x368
- 45295 c4a5 F2C40000 		.long	0xc4f2
- 45296 c4a9 32       		.uleb128 0x32
- 45297 c4aa 8C0D0000 		.long	0xd8c
- 45298 c4ae 03       		.byte	0x3
- 45299 c4af 91       		.byte	0x91
- 45300 c4b0 8075     		.sleb128 -1408
- 45301 c4b2 32       		.uleb128 0x32
- 45302 c4b3 800D0000 		.long	0xd80
- 45303 c4b7 03       		.byte	0x3
- 45304 c4b8 91       		.byte	0x91
- 45305 c4b9 9075     		.sleb128 -1392
- 45306 c4bb 33       		.uleb128 0x33
- 45307 c4bc 00000000 		.quad	.LBB2802
- 45307      00000000 
- 45308 c4c4 00000000 		.quad	.LBE2802
- 45308      00000000 
- 45309 c4cc 34       		.uleb128 0x34
- 45310 c4cd 980D0000 		.long	0xd98
- 45311 c4d1 03       		.byte	0x3
- 45312 c4d2 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1155
-
-
- 45313 c4d3 E06D     		.sleb128 -2336
- 45314 c4d5 34       		.uleb128 0x34
- 45315 c4d6 A40D0000 		.long	0xda4
- 45316 c4da 03       		.byte	0x3
- 45317 c4db 91       		.byte	0x91
- 45318 c4dc D06D     		.sleb128 -2352
- 45319 c4de 34       		.uleb128 0x34
- 45320 c4df AF0D0000 		.long	0xdaf
- 45321 c4e3 03       		.byte	0x3
- 45322 c4e4 91       		.byte	0x91
- 45323 c4e5 C06D     		.sleb128 -2368
- 45324 c4e7 34       		.uleb128 0x34
- 45325 c4e8 BB0D0000 		.long	0xdbb
- 45326 c4ec 03       		.byte	0x3
- 45327 c4ed 91       		.byte	0x91
- 45328 c4ee AC75     		.sleb128 -1364
- 45329 c4f0 00       		.byte	0x0
- 45330 c4f1 00       		.byte	0x0
- 45331 c4f2 31       		.uleb128 0x31
- 45332 c4f3 C70D0000 		.long	0xdc7
- 45333 c4f7 00000000 		.quad	.LBB2803
- 45333      00000000 
- 45334 c4ff 00000000 		.quad	.LBE2803
- 45334      00000000 
- 45335 c507 02       		.byte	0x2
- 45336 c508 6A03     		.value	0x36a
- 45337 c50a 21C50000 		.long	0xc521
- 45338 c50e 32       		.uleb128 0x32
- 45339 c50f E20D0000 		.long	0xde2
- 45340 c513 03       		.byte	0x3
- 45341 c514 91       		.byte	0x91
- 45342 c515 B075     		.sleb128 -1360
- 45343 c517 32       		.uleb128 0x32
- 45344 c518 D80D0000 		.long	0xdd8
- 45345 c51c 03       		.byte	0x3
- 45346 c51d 91       		.byte	0x91
- 45347 c51e C075     		.sleb128 -1344
- 45348 c520 00       		.byte	0x0
- 45349 c521 31       		.uleb128 0x31
- 45350 c522 ED0D0000 		.long	0xded
- 45351 c526 00000000 		.quad	.LBB2805
- 45351      00000000 
- 45352 c52e 00000000 		.quad	.LBE2805
- 45352      00000000 
- 45353 c536 02       		.byte	0x2
- 45354 c537 6C03     		.value	0x36c
- 45355 c539 50C50000 		.long	0xc550
- 45356 c53d 32       		.uleb128 0x32
- 45357 c53e 0A0E0000 		.long	0xe0a
- 45358 c542 03       		.byte	0x3
- 45359 c543 91       		.byte	0x91
- 45360 c544 D075     		.sleb128 -1328
- 45361 c546 32       		.uleb128 0x32
- 45362 c547 FF0D0000 		.long	0xdff
- 45363 c54b 03       		.byte	0x3
- 45364 c54c 91       		.byte	0x91
- 45365 c54d E075     		.sleb128 -1312
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1156
-
-
- 45366 c54f 00       		.byte	0x0
- 45367 c550 35       		.uleb128 0x35
- 45368 c551 1F0D0000 		.long	0xd1f
- 45369 c555 00000000 		.quad	.LBB2807
- 45369      00000000 
- 45370 c55d 00000000 		.quad	.LBE2807
- 45370      00000000 
- 45371 c565 02       		.byte	0x2
- 45372 c566 6E03     		.value	0x36e
- 45373 c568 32       		.uleb128 0x32
- 45374 c569 3A0D0000 		.long	0xd3a
- 45375 c56d 03       		.byte	0x3
- 45376 c56e 91       		.byte	0x91
- 45377 c56f F075     		.sleb128 -1296
- 45378 c571 32       		.uleb128 0x32
- 45379 c572 300D0000 		.long	0xd30
- 45380 c576 03       		.byte	0x3
- 45381 c577 91       		.byte	0x91
- 45382 c578 8076     		.sleb128 -1280
- 45383 c57a 00       		.byte	0x0
- 45384 c57b 00       		.byte	0x0
- 45385 c57c 00       		.byte	0x0
- 45386 c57d 00       		.byte	0x0
- 45387 c57e 36       		.uleb128 0x36
- 45388 c57f 00000000 		.quad	.LBB2809
- 45388      00000000 
- 45389 c587 00000000 		.quad	.LBE2809
- 45389      00000000 
- 45390 c58f 9DC50000 		.long	0xc59d
- 45391 c593 34       		.uleb128 0x34
- 45392 c594 3AC00000 		.long	0xc03a
- 45393 c598 03       		.byte	0x3
- 45394 c599 91       		.byte	0x91
- 45395 c59a F06C     		.sleb128 -2448
- 45396 c59c 00       		.byte	0x0
- 45397 c59d 31       		.uleb128 0x31
- 45398 c59e A1C00000 		.long	0xc0a1
- 45399 c5a2 00000000 		.quad	.LBB2810
- 45399      00000000 
- 45400 c5aa 00000000 		.quad	.LBE2810
- 45400      00000000 
- 45401 c5b2 02       		.byte	0x2
- 45402 c5b3 9108     		.value	0x891
- 45403 c5b5 45C60000 		.long	0xc645
- 45404 c5b9 32       		.uleb128 0x32
- 45405 c5ba B3C00000 		.long	0xc0b3
- 45406 c5be 03       		.byte	0x3
- 45407 c5bf 91       		.byte	0x91
- 45408 c5c0 9076     		.sleb128 -1264
- 45409 c5c2 33       		.uleb128 0x33
- 45410 c5c3 00000000 		.quad	.LBB2811
- 45410      00000000 
- 45411 c5cb 00000000 		.quad	.LBE2811
- 45411      00000000 
- 45412 c5d3 34       		.uleb128 0x34
- 45413 c5d4 BFC00000 		.long	0xc0bf
- 45414 c5d8 09       		.byte	0x9
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1157
-
-
- 45415 c5d9 03       		.byte	0x3
- 45416 c5da 00000000 		.quad	InvShiftRowTable.6750
- 45416      00000000 
- 45417 c5e2 35       		.uleb128 0x35
- 45418 c5e3 6E0D0000 		.long	0xd6e
- 45419 c5e7 00000000 		.quad	.LBB2812
- 45419      00000000 
- 45420 c5ef 00000000 		.quad	.LBE2812
- 45420      00000000 
- 45421 c5f7 02       		.byte	0x2
- 45422 c5f8 6402     		.value	0x264
- 45423 c5fa 32       		.uleb128 0x32
- 45424 c5fb 8C0D0000 		.long	0xd8c
- 45425 c5ff 03       		.byte	0x3
- 45426 c600 91       		.byte	0x91
- 45427 c601 A076     		.sleb128 -1248
- 45428 c603 32       		.uleb128 0x32
- 45429 c604 800D0000 		.long	0xd80
- 45430 c608 03       		.byte	0x3
- 45431 c609 91       		.byte	0x91
- 45432 c60a B076     		.sleb128 -1232
- 45433 c60c 33       		.uleb128 0x33
- 45434 c60d 00000000 		.quad	.LBB2813
- 45434      00000000 
- 45435 c615 00000000 		.quad	.LBE2813
- 45435      00000000 
- 45436 c61d 34       		.uleb128 0x34
- 45437 c61e 980D0000 		.long	0xd98
- 45438 c622 03       		.byte	0x3
- 45439 c623 91       		.byte	0x91
- 45440 c624 906E     		.sleb128 -2288
- 45441 c626 34       		.uleb128 0x34
- 45442 c627 A40D0000 		.long	0xda4
- 45443 c62b 03       		.byte	0x3
- 45444 c62c 91       		.byte	0x91
- 45445 c62d 806E     		.sleb128 -2304
- 45446 c62f 34       		.uleb128 0x34
- 45447 c630 AF0D0000 		.long	0xdaf
- 45448 c634 03       		.byte	0x3
- 45449 c635 91       		.byte	0x91
- 45450 c636 F06D     		.sleb128 -2320
- 45451 c638 34       		.uleb128 0x34
- 45452 c639 BB0D0000 		.long	0xdbb
- 45453 c63d 03       		.byte	0x3
- 45454 c63e 91       		.byte	0x91
- 45455 c63f CC76     		.sleb128 -1204
- 45456 c641 00       		.byte	0x0
- 45457 c642 00       		.byte	0x0
- 45458 c643 00       		.byte	0x0
- 45459 c644 00       		.byte	0x0
- 45460 c645 36       		.uleb128 0x36
- 45461 c646 00000000 		.quad	.LBB2814
- 45461      00000000 
- 45462 c64e 00000000 		.quad	.LBE2814
- 45462      00000000 
- 45463 c656 64C60000 		.long	0xc664
- 45464 c65a 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1158
-
-
- 45465 c65b 4AC00000 		.long	0xc04a
- 45466 c65f 03       		.byte	0x3
- 45467 c660 91       		.byte	0x91
- 45468 c661 E06C     		.sleb128 -2464
- 45469 c663 00       		.byte	0x0
- 45470 c664 31       		.uleb128 0x31
- 45471 c665 DCA80000 		.long	0xa8dc
- 45472 c669 00000000 		.quad	.LBB2815
- 45472      00000000 
- 45473 c671 00000000 		.quad	.LBE2815
- 45473      00000000 
- 45474 c679 02       		.byte	0x2
- 45475 c67a 9908     		.value	0x899
- 45476 c67c 4CCB0000 		.long	0xcb4c
- 45477 c680 32       		.uleb128 0x32
- 45478 c681 EEA80000 		.long	0xa8ee
- 45479 c685 03       		.byte	0x3
- 45480 c686 91       		.byte	0x91
- 45481 c687 D076     		.sleb128 -1200
- 45482 c689 33       		.uleb128 0x33
- 45483 c68a 00000000 		.quad	.LBB2816
- 45483      00000000 
- 45484 c692 00000000 		.quad	.LBE2816
- 45484      00000000 
- 45485 c69a 34       		.uleb128 0x34
- 45486 c69b FAA80000 		.long	0xa8fa
- 45487 c69f 03       		.byte	0x3
- 45488 c6a0 76       		.byte	0x76
- 45489 c6a1 E06B     		.sleb128 -2592
- 45490 c6a3 34       		.uleb128 0x34
- 45491 c6a4 05A90000 		.long	0xa905
- 45492 c6a8 03       		.byte	0x3
- 45493 c6a9 76       		.byte	0x76
- 45494 c6aa D06B     		.sleb128 -2608
- 45495 c6ac 34       		.uleb128 0x34
- 45496 c6ad 10A90000 		.long	0xa910
- 45497 c6b1 03       		.byte	0x3
- 45498 c6b2 76       		.byte	0x76
- 45499 c6b3 C06B     		.sleb128 -2624
- 45500 c6b5 34       		.uleb128 0x34
- 45501 c6b6 1BA90000 		.long	0xa91b
- 45502 c6ba 03       		.byte	0x3
- 45503 c6bb 76       		.byte	0x76
- 45504 c6bc B06B     		.sleb128 -2640
- 45505 c6be 34       		.uleb128 0x34
- 45506 c6bf 26A90000 		.long	0xa926
- 45507 c6c3 03       		.byte	0x3
- 45508 c6c4 76       		.byte	0x76
- 45509 c6c5 A06B     		.sleb128 -2656
- 45510 c6c7 34       		.uleb128 0x34
- 45511 c6c8 31A90000 		.long	0xa931
- 45512 c6cc 03       		.byte	0x3
- 45513 c6cd 76       		.byte	0x76
- 45514 c6ce 906B     		.sleb128 -2672
- 45515 c6d0 31       		.uleb128 0x31
- 45516 c6d1 160E0000 		.long	0xe16
- 45517 c6d5 00000000 		.quad	.LBB2817
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1159
-
-
- 45517      00000000 
- 45518 c6dd 00000000 		.quad	.LBE2817
- 45518      00000000 
- 45519 c6e5 02       		.byte	0x2
- 45520 c6e6 5204     		.value	0x452
- 45521 c6e8 78C70000 		.long	0xc778
- 45522 c6ec 32       		.uleb128 0x32
- 45523 c6ed 280E0000 		.long	0xe28
- 45524 c6f1 03       		.byte	0x3
- 45525 c6f2 91       		.byte	0x91
- 45526 c6f3 F076     		.sleb128 -1168
- 45527 c6f5 33       		.uleb128 0x33
- 45528 c6f6 00000000 		.quad	.LBB2818
- 45528      00000000 
- 45529 c6fe 00000000 		.quad	.LBE2818
- 45529      00000000 
- 45530 c706 34       		.uleb128 0x34
- 45531 c707 340E0000 		.long	0xe34
- 45532 c70b 09       		.byte	0x9
- 45533 c70c 03       		.byte	0x3
- 45534 c70d 00000000 		.quad	ShiftRowTable.6768
- 45534      00000000 
- 45535 c715 35       		.uleb128 0x35
- 45536 c716 6E0D0000 		.long	0xd6e
- 45537 c71a 00000000 		.quad	.LBB2819
- 45537      00000000 
- 45538 c722 00000000 		.quad	.LBE2819
- 45538      00000000 
- 45539 c72a 02       		.byte	0x2
- 45540 c72b 9B02     		.value	0x29b
- 45541 c72d 32       		.uleb128 0x32
- 45542 c72e 8C0D0000 		.long	0xd8c
- 45543 c732 03       		.byte	0x3
- 45544 c733 91       		.byte	0x91
- 45545 c734 8077     		.sleb128 -1152
- 45546 c736 32       		.uleb128 0x32
- 45547 c737 800D0000 		.long	0xd80
- 45548 c73b 03       		.byte	0x3
- 45549 c73c 91       		.byte	0x91
- 45550 c73d 9077     		.sleb128 -1136
- 45551 c73f 33       		.uleb128 0x33
- 45552 c740 00000000 		.quad	.LBB2820
- 45552      00000000 
- 45553 c748 00000000 		.quad	.LBE2820
- 45553      00000000 
- 45554 c750 34       		.uleb128 0x34
- 45555 c751 980D0000 		.long	0xd98
- 45556 c755 03       		.byte	0x3
- 45557 c756 91       		.byte	0x91
- 45558 c757 F06E     		.sleb128 -2192
- 45559 c759 34       		.uleb128 0x34
- 45560 c75a A40D0000 		.long	0xda4
- 45561 c75e 03       		.byte	0x3
- 45562 c75f 91       		.byte	0x91
- 45563 c760 E06E     		.sleb128 -2208
- 45564 c762 34       		.uleb128 0x34
- 45565 c763 AF0D0000 		.long	0xdaf
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1160
-
-
- 45566 c767 03       		.byte	0x3
- 45567 c768 91       		.byte	0x91
- 45568 c769 D06E     		.sleb128 -2224
- 45569 c76b 34       		.uleb128 0x34
- 45570 c76c BB0D0000 		.long	0xdbb
- 45571 c770 03       		.byte	0x3
- 45572 c771 91       		.byte	0x91
- 45573 c772 AC77     		.sleb128 -1108
- 45574 c774 00       		.byte	0x0
- 45575 c775 00       		.byte	0x0
- 45576 c776 00       		.byte	0x0
- 45577 c777 00       		.byte	0x0
- 45578 c778 31       		.uleb128 0x31
- 45579 c779 160E0000 		.long	0xe16
- 45580 c77d 00000000 		.quad	.LBB2821
- 45580      00000000 
- 45581 c785 00000000 		.quad	.LBE2821
- 45581      00000000 
- 45582 c78d 02       		.byte	0x2
- 45583 c78e 5304     		.value	0x453
- 45584 c790 20C80000 		.long	0xc820
- 45585 c794 32       		.uleb128 0x32
- 45586 c795 280E0000 		.long	0xe28
- 45587 c799 03       		.byte	0x3
- 45588 c79a 91       		.byte	0x91
- 45589 c79b B077     		.sleb128 -1104
- 45590 c79d 33       		.uleb128 0x33
- 45591 c79e 00000000 		.quad	.LBB2822
- 45591      00000000 
- 45592 c7a6 00000000 		.quad	.LBE2822
- 45592      00000000 
- 45593 c7ae 34       		.uleb128 0x34
- 45594 c7af 340E0000 		.long	0xe34
- 45595 c7b3 09       		.byte	0x9
- 45596 c7b4 03       		.byte	0x3
- 45597 c7b5 00000000 		.quad	ShiftRowTable.6768
- 45597      00000000 
- 45598 c7bd 35       		.uleb128 0x35
- 45599 c7be 6E0D0000 		.long	0xd6e
- 45600 c7c2 00000000 		.quad	.LBB2823
- 45600      00000000 
- 45601 c7ca 00000000 		.quad	.LBE2823
- 45601      00000000 
- 45602 c7d2 02       		.byte	0x2
- 45603 c7d3 9B02     		.value	0x29b
- 45604 c7d5 32       		.uleb128 0x32
- 45605 c7d6 8C0D0000 		.long	0xd8c
- 45606 c7da 03       		.byte	0x3
- 45607 c7db 91       		.byte	0x91
- 45608 c7dc C077     		.sleb128 -1088
- 45609 c7de 32       		.uleb128 0x32
- 45610 c7df 800D0000 		.long	0xd80
- 45611 c7e3 03       		.byte	0x3
- 45612 c7e4 91       		.byte	0x91
- 45613 c7e5 D077     		.sleb128 -1072
- 45614 c7e7 33       		.uleb128 0x33
- 45615 c7e8 00000000 		.quad	.LBB2824
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1161
-
-
- 45615      00000000 
- 45616 c7f0 00000000 		.quad	.LBE2824
- 45616      00000000 
- 45617 c7f8 34       		.uleb128 0x34
- 45618 c7f9 980D0000 		.long	0xd98
- 45619 c7fd 03       		.byte	0x3
- 45620 c7fe 91       		.byte	0x91
- 45621 c7ff A06F     		.sleb128 -2144
- 45622 c801 34       		.uleb128 0x34
- 45623 c802 A40D0000 		.long	0xda4
- 45624 c806 03       		.byte	0x3
- 45625 c807 91       		.byte	0x91
- 45626 c808 906F     		.sleb128 -2160
- 45627 c80a 34       		.uleb128 0x34
- 45628 c80b AF0D0000 		.long	0xdaf
- 45629 c80f 03       		.byte	0x3
- 45630 c810 91       		.byte	0x91
- 45631 c811 806F     		.sleb128 -2176
- 45632 c813 34       		.uleb128 0x34
- 45633 c814 BB0D0000 		.long	0xdbb
- 45634 c818 03       		.byte	0x3
- 45635 c819 91       		.byte	0x91
- 45636 c81a EC77     		.sleb128 -1044
- 45637 c81c 00       		.byte	0x0
- 45638 c81d 00       		.byte	0x0
- 45639 c81e 00       		.byte	0x0
- 45640 c81f 00       		.byte	0x0
- 45641 c820 31       		.uleb128 0x31
- 45642 c821 160E0000 		.long	0xe16
- 45643 c825 00000000 		.quad	.LBB2825
- 45643      00000000 
- 45644 c82d 00000000 		.quad	.LBE2825
- 45644      00000000 
- 45645 c835 02       		.byte	0x2
- 45646 c836 5404     		.value	0x454
- 45647 c838 C8C80000 		.long	0xc8c8
- 45648 c83c 32       		.uleb128 0x32
- 45649 c83d 280E0000 		.long	0xe28
- 45650 c841 03       		.byte	0x3
- 45651 c842 91       		.byte	0x91
- 45652 c843 F077     		.sleb128 -1040
- 45653 c845 33       		.uleb128 0x33
- 45654 c846 00000000 		.quad	.LBB2826
- 45654      00000000 
- 45655 c84e 00000000 		.quad	.LBE2826
- 45655      00000000 
- 45656 c856 34       		.uleb128 0x34
- 45657 c857 340E0000 		.long	0xe34
- 45658 c85b 09       		.byte	0x9
- 45659 c85c 03       		.byte	0x3
- 45660 c85d 00000000 		.quad	ShiftRowTable.6768
- 45660      00000000 
- 45661 c865 35       		.uleb128 0x35
- 45662 c866 6E0D0000 		.long	0xd6e
- 45663 c86a 00000000 		.quad	.LBB2827
- 45663      00000000 
- 45664 c872 00000000 		.quad	.LBE2827
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1162
-
-
- 45664      00000000 
- 45665 c87a 02       		.byte	0x2
- 45666 c87b 9B02     		.value	0x29b
- 45667 c87d 32       		.uleb128 0x32
- 45668 c87e 8C0D0000 		.long	0xd8c
- 45669 c882 03       		.byte	0x3
- 45670 c883 91       		.byte	0x91
- 45671 c884 8078     		.sleb128 -1024
- 45672 c886 32       		.uleb128 0x32
- 45673 c887 800D0000 		.long	0xd80
- 45674 c88b 03       		.byte	0x3
- 45675 c88c 91       		.byte	0x91
- 45676 c88d 9078     		.sleb128 -1008
- 45677 c88f 33       		.uleb128 0x33
- 45678 c890 00000000 		.quad	.LBB2828
- 45678      00000000 
- 45679 c898 00000000 		.quad	.LBE2828
- 45679      00000000 
- 45680 c8a0 34       		.uleb128 0x34
- 45681 c8a1 980D0000 		.long	0xd98
- 45682 c8a5 03       		.byte	0x3
- 45683 c8a6 91       		.byte	0x91
- 45684 c8a7 D06F     		.sleb128 -2096
- 45685 c8a9 34       		.uleb128 0x34
- 45686 c8aa A40D0000 		.long	0xda4
- 45687 c8ae 03       		.byte	0x3
- 45688 c8af 91       		.byte	0x91
- 45689 c8b0 C06F     		.sleb128 -2112
- 45690 c8b2 34       		.uleb128 0x34
- 45691 c8b3 AF0D0000 		.long	0xdaf
- 45692 c8b7 03       		.byte	0x3
- 45693 c8b8 91       		.byte	0x91
- 45694 c8b9 B06F     		.sleb128 -2128
- 45695 c8bb 34       		.uleb128 0x34
- 45696 c8bc BB0D0000 		.long	0xdbb
- 45697 c8c0 03       		.byte	0x3
- 45698 c8c1 91       		.byte	0x91
- 45699 c8c2 AC78     		.sleb128 -980
- 45700 c8c4 00       		.byte	0x0
- 45701 c8c5 00       		.byte	0x0
- 45702 c8c6 00       		.byte	0x0
- 45703 c8c7 00       		.byte	0x0
- 45704 c8c8 31       		.uleb128 0x31
- 45705 c8c9 520E0000 		.long	0xe52
- 45706 c8cd 00000000 		.quad	.LBB2829
- 45706      00000000 
- 45707 c8d5 00000000 		.quad	.LBE2829
- 45707      00000000 
- 45708 c8dd 02       		.byte	0x2
- 45709 c8de 5604     		.value	0x456
- 45710 c8e0 F7C80000 		.long	0xc8f7
- 45711 c8e4 32       		.uleb128 0x32
- 45712 c8e5 6D0E0000 		.long	0xe6d
- 45713 c8e9 03       		.byte	0x3
- 45714 c8ea 91       		.byte	0x91
- 45715 c8eb B078     		.sleb128 -976
- 45716 c8ed 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1163
-
-
- 45717 c8ee 630E0000 		.long	0xe63
- 45718 c8f2 03       		.byte	0x3
- 45719 c8f3 91       		.byte	0x91
- 45720 c8f4 C078     		.sleb128 -960
- 45721 c8f6 00       		.byte	0x0
- 45722 c8f7 31       		.uleb128 0x31
- 45723 c8f8 520E0000 		.long	0xe52
- 45724 c8fc 00000000 		.quad	.LBB2831
- 45724      00000000 
- 45725 c904 00000000 		.quad	.LBE2831
- 45725      00000000 
- 45726 c90c 02       		.byte	0x2
- 45727 c90d 5704     		.value	0x457
- 45728 c90f 26C90000 		.long	0xc926
- 45729 c913 32       		.uleb128 0x32
- 45730 c914 6D0E0000 		.long	0xe6d
- 45731 c918 03       		.byte	0x3
- 45732 c919 91       		.byte	0x91
- 45733 c91a D078     		.sleb128 -944
- 45734 c91c 32       		.uleb128 0x32
- 45735 c91d 630E0000 		.long	0xe63
- 45736 c921 03       		.byte	0x3
- 45737 c922 91       		.byte	0x91
- 45738 c923 E078     		.sleb128 -928
- 45739 c925 00       		.byte	0x0
- 45740 c926 31       		.uleb128 0x31
- 45741 c927 520E0000 		.long	0xe52
- 45742 c92b 00000000 		.quad	.LBB2833
- 45742      00000000 
- 45743 c933 00000000 		.quad	.LBE2833
- 45743      00000000 
- 45744 c93b 02       		.byte	0x2
- 45745 c93c 5804     		.value	0x458
- 45746 c93e 55C90000 		.long	0xc955
- 45747 c942 32       		.uleb128 0x32
- 45748 c943 6D0E0000 		.long	0xe6d
- 45749 c947 03       		.byte	0x3
- 45750 c948 91       		.byte	0x91
- 45751 c949 F078     		.sleb128 -912
- 45752 c94b 32       		.uleb128 0x32
- 45753 c94c 630E0000 		.long	0xe63
- 45754 c950 03       		.byte	0x3
- 45755 c951 91       		.byte	0x91
- 45756 c952 8079     		.sleb128 -896
- 45757 c954 00       		.byte	0x0
- 45758 c955 31       		.uleb128 0x31
- 45759 c956 520E0000 		.long	0xe52
- 45760 c95a 00000000 		.quad	.LBB2835
- 45760      00000000 
- 45761 c962 00000000 		.quad	.LBE2835
- 45761      00000000 
- 45762 c96a 02       		.byte	0x2
- 45763 c96b 5904     		.value	0x459
- 45764 c96d 84C90000 		.long	0xc984
- 45765 c971 32       		.uleb128 0x32
- 45766 c972 6D0E0000 		.long	0xe6d
- 45767 c976 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1164
-
-
- 45768 c977 91       		.byte	0x91
- 45769 c978 9079     		.sleb128 -880
- 45770 c97a 32       		.uleb128 0x32
- 45771 c97b 630E0000 		.long	0xe63
- 45772 c97f 03       		.byte	0x3
- 45773 c980 91       		.byte	0x91
- 45774 c981 A079     		.sleb128 -864
- 45775 c983 00       		.byte	0x0
- 45776 c984 31       		.uleb128 0x31
- 45777 c985 520E0000 		.long	0xe52
- 45778 c989 00000000 		.quad	.LBB2837
- 45778      00000000 
- 45779 c991 00000000 		.quad	.LBE2837
- 45779      00000000 
- 45780 c999 02       		.byte	0x2
- 45781 c99a 5A04     		.value	0x45a
- 45782 c99c B3C90000 		.long	0xc9b3
- 45783 c9a0 32       		.uleb128 0x32
- 45784 c9a1 6D0E0000 		.long	0xe6d
- 45785 c9a5 03       		.byte	0x3
- 45786 c9a6 91       		.byte	0x91
- 45787 c9a7 B079     		.sleb128 -848
- 45788 c9a9 32       		.uleb128 0x32
- 45789 c9aa 630E0000 		.long	0xe63
- 45790 c9ae 03       		.byte	0x3
- 45791 c9af 91       		.byte	0x91
- 45792 c9b0 C079     		.sleb128 -832
- 45793 c9b2 00       		.byte	0x0
- 45794 c9b3 36       		.uleb128 0x36
- 45795 c9b4 00000000 		.quad	.LBB2839
- 45795      00000000 
- 45796 c9bc 00000000 		.quad	.LBE2839
- 45796      00000000 
- 45797 c9c4 C1CA0000 		.long	0xcac1
- 45798 c9c8 34       		.uleb128 0x34
- 45799 c9c9 3DA90000 		.long	0xa93d
- 45800 c9cd 03       		.byte	0x3
- 45801 c9ce 91       		.byte	0x91
- 45802 c9cf C06E     		.sleb128 -2240
- 45803 c9d1 34       		.uleb128 0x34
- 45804 c9d2 49A90000 		.long	0xa949
- 45805 c9d6 03       		.byte	0x3
- 45806 c9d7 91       		.byte	0x91
- 45807 c9d8 B06E     		.sleb128 -2256
- 45808 c9da 34       		.uleb128 0x34
- 45809 c9db 55A90000 		.long	0xa955
- 45810 c9df 03       		.byte	0x3
- 45811 c9e0 91       		.byte	0x91
- 45812 c9e1 A06E     		.sleb128 -2272
- 45813 c9e3 34       		.uleb128 0x34
- 45814 c9e4 61A90000 		.long	0xa961
- 45815 c9e8 03       		.byte	0x3
- 45816 c9e9 91       		.byte	0x91
- 45817 c9ea EC76     		.sleb128 -1172
- 45818 c9ec 31       		.uleb128 0x31
- 45819 c9ed 6EA90000 		.long	0xa96e
- 45820 c9f1 00000000 		.quad	.LBB2840
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1165
-
-
- 45820      00000000 
- 45821 c9f9 00000000 		.quad	.LBE2840
- 45821      00000000 
- 45822 ca01 02       		.byte	0x2
- 45823 ca02 6C04     		.value	0x46c
- 45824 ca04 34CA0000 		.long	0xca34
- 45825 ca08 32       		.uleb128 0x32
- 45826 ca09 80A90000 		.long	0xa980
- 45827 ca0d 03       		.byte	0x3
- 45828 ca0e 91       		.byte	0x91
- 45829 ca0f DA79     		.sleb128 -806
- 45830 ca11 35       		.uleb128 0x35
- 45831 ca12 8BA90000 		.long	0xa98b
- 45832 ca16 00000000 		.quad	.LBB2842
- 45832      00000000 
- 45833 ca1e 00000000 		.quad	.LBE2842
- 45833      00000000 
- 45834 ca26 02       		.byte	0x2
- 45835 ca27 F403     		.value	0x3f4
- 45836 ca29 32       		.uleb128 0x32
- 45837 ca2a 9DA90000 		.long	0xa99d
- 45838 ca2e 03       		.byte	0x3
- 45839 ca2f 91       		.byte	0x91
- 45840 ca30 DB79     		.sleb128 -805
- 45841 ca32 00       		.byte	0x0
- 45842 ca33 00       		.byte	0x0
- 45843 ca34 31       		.uleb128 0x31
- 45844 ca35 A8A90000 		.long	0xa9a8
- 45845 ca39 00000000 		.quad	.LBB2844
- 45845      00000000 
- 45846 ca41 00000000 		.quad	.LBE2844
- 45846      00000000 
- 45847 ca49 02       		.byte	0x2
- 45848 ca4a 6D04     		.value	0x46d
- 45849 ca4c 7CCA0000 		.long	0xca7c
- 45850 ca50 32       		.uleb128 0x32
- 45851 ca51 BAA90000 		.long	0xa9ba
- 45852 ca55 03       		.byte	0x3
- 45853 ca56 91       		.byte	0x91
- 45854 ca57 DC79     		.sleb128 -804
- 45855 ca59 35       		.uleb128 0x35
- 45856 ca5a 8BA90000 		.long	0xa98b
- 45857 ca5e 00000000 		.quad	.LBB2846
- 45857      00000000 
- 45858 ca66 00000000 		.quad	.LBE2846
- 45858      00000000 
- 45859 ca6e 02       		.byte	0x2
- 45860 ca6f FF03     		.value	0x3ff
- 45861 ca71 32       		.uleb128 0x32
- 45862 ca72 9DA90000 		.long	0xa99d
- 45863 ca76 03       		.byte	0x3
- 45864 ca77 91       		.byte	0x91
- 45865 ca78 DD79     		.sleb128 -803
- 45866 ca7a 00       		.byte	0x0
- 45867 ca7b 00       		.byte	0x0
- 45868 ca7c 35       		.uleb128 0x35
- 45869 ca7d C5A90000 		.long	0xa9c5
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1166
-
-
- 45870 ca81 00000000 		.quad	.LBB2848
- 45870      00000000 
- 45871 ca89 00000000 		.quad	.LBE2848
- 45871      00000000 
- 45872 ca91 02       		.byte	0x2
- 45873 ca92 6E04     		.value	0x46e
- 45874 ca94 32       		.uleb128 0x32
- 45875 ca95 D7A90000 		.long	0xa9d7
- 45876 ca99 03       		.byte	0x3
- 45877 ca9a 91       		.byte	0x91
- 45878 ca9b DE79     		.sleb128 -802
- 45879 ca9d 35       		.uleb128 0x35
- 45880 ca9e 8BA90000 		.long	0xa98b
- 45881 caa2 00000000 		.quad	.LBB2850
- 45881      00000000 
- 45882 caaa 00000000 		.quad	.LBE2850
- 45882      00000000 
- 45883 cab2 02       		.byte	0x2
- 45884 cab3 0A04     		.value	0x40a
- 45885 cab5 32       		.uleb128 0x32
- 45886 cab6 9DA90000 		.long	0xa99d
- 45887 caba 03       		.byte	0x3
- 45888 cabb 91       		.byte	0x91
- 45889 cabc DF79     		.sleb128 -801
- 45890 cabe 00       		.byte	0x0
- 45891 cabf 00       		.byte	0x0
- 45892 cac0 00       		.byte	0x0
- 45893 cac1 31       		.uleb128 0x31
- 45894 cac2 520E0000 		.long	0xe52
- 45895 cac6 00000000 		.quad	.LBB2852
- 45895      00000000 
- 45896 cace 00000000 		.quad	.LBE2852
- 45896      00000000 
- 45897 cad6 02       		.byte	0x2
- 45898 cad7 7604     		.value	0x476
- 45899 cad9 F0CA0000 		.long	0xcaf0
- 45900 cadd 32       		.uleb128 0x32
- 45901 cade 6D0E0000 		.long	0xe6d
- 45902 cae2 03       		.byte	0x3
- 45903 cae3 91       		.byte	0x91
- 45904 cae4 E079     		.sleb128 -800
- 45905 cae6 32       		.uleb128 0x32
- 45906 cae7 630E0000 		.long	0xe63
- 45907 caeb 03       		.byte	0x3
- 45908 caec 91       		.byte	0x91
- 45909 caed F079     		.sleb128 -784
- 45910 caef 00       		.byte	0x0
- 45911 caf0 31       		.uleb128 0x31
- 45912 caf1 520E0000 		.long	0xe52
- 45913 caf5 00000000 		.quad	.LBB2854
- 45913      00000000 
- 45914 cafd 00000000 		.quad	.LBE2854
- 45914      00000000 
- 45915 cb05 02       		.byte	0x2
- 45916 cb06 7704     		.value	0x477
- 45917 cb08 1FCB0000 		.long	0xcb1f
- 45918 cb0c 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1167
-
-
- 45919 cb0d 6D0E0000 		.long	0xe6d
- 45920 cb11 03       		.byte	0x3
- 45921 cb12 91       		.byte	0x91
- 45922 cb13 807A     		.sleb128 -768
- 45923 cb15 32       		.uleb128 0x32
- 45924 cb16 630E0000 		.long	0xe63
- 45925 cb1a 03       		.byte	0x3
- 45926 cb1b 91       		.byte	0x91
- 45927 cb1c 907A     		.sleb128 -752
- 45928 cb1e 00       		.byte	0x0
- 45929 cb1f 35       		.uleb128 0x35
- 45930 cb20 520E0000 		.long	0xe52
- 45931 cb24 00000000 		.quad	.LBB2856
- 45931      00000000 
- 45932 cb2c 00000000 		.quad	.LBE2856
- 45932      00000000 
- 45933 cb34 02       		.byte	0x2
- 45934 cb35 7804     		.value	0x478
- 45935 cb37 32       		.uleb128 0x32
- 45936 cb38 6D0E0000 		.long	0xe6d
- 45937 cb3c 03       		.byte	0x3
- 45938 cb3d 91       		.byte	0x91
- 45939 cb3e A07A     		.sleb128 -736
- 45940 cb40 32       		.uleb128 0x32
- 45941 cb41 630E0000 		.long	0xe63
- 45942 cb45 03       		.byte	0x3
- 45943 cb46 91       		.byte	0x91
- 45944 cb47 B07A     		.sleb128 -720
- 45945 cb49 00       		.byte	0x0
- 45946 cb4a 00       		.byte	0x0
- 45947 cb4b 00       		.byte	0x0
- 45948 cb4c 36       		.uleb128 0x36
- 45949 cb4d 00000000 		.quad	.LBB2858
- 45949      00000000 
- 45950 cb55 00000000 		.quad	.LBE2858
- 45950      00000000 
- 45951 cb5d 6BCB0000 		.long	0xcb6b
- 45952 cb61 34       		.uleb128 0x34
- 45953 cb62 5AC00000 		.long	0xc05a
- 45954 cb66 03       		.byte	0x3
- 45955 cb67 91       		.byte	0x91
- 45956 cb68 D06C     		.sleb128 -2480
- 45957 cb6a 00       		.byte	0x0
- 45958 cb6b 31       		.uleb128 0x31
- 45959 cb6c 3EB00000 		.long	0xb03e
- 45960 cb70 00000000 		.quad	.LBB2859
- 45960      00000000 
- 45961 cb78 00000000 		.quad	.LBE2859
- 45961      00000000 
- 45962 cb80 02       		.byte	0x2
- 45963 cb81 A108     		.value	0x8a1
- 45964 cb83 C5CB0000 		.long	0xcbc5
- 45965 cb87 32       		.uleb128 0x32
- 45966 cb88 5CB00000 		.long	0xb05c
- 45967 cb8c 03       		.byte	0x3
- 45968 cb8d 91       		.byte	0x91
- 45969 cb8e C07A     		.sleb128 -704
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1168
-
-
- 45970 cb90 32       		.uleb128 0x32
- 45971 cb91 50B00000 		.long	0xb050
- 45972 cb95 03       		.byte	0x3
- 45973 cb96 91       		.byte	0x91
- 45974 cb97 D07A     		.sleb128 -688
- 45975 cb99 35       		.uleb128 0x35
- 45976 cb9a 520E0000 		.long	0xe52
- 45977 cb9e 00000000 		.quad	.LBB2861
- 45977      00000000 
- 45978 cba6 00000000 		.quad	.LBE2861
- 45978      00000000 
- 45979 cbae 02       		.byte	0x2
- 45980 cbaf 2302     		.value	0x223
- 45981 cbb1 32       		.uleb128 0x32
- 45982 cbb2 6D0E0000 		.long	0xe6d
- 45983 cbb6 03       		.byte	0x3
- 45984 cbb7 91       		.byte	0x91
- 45985 cbb8 E07A     		.sleb128 -672
- 45986 cbba 32       		.uleb128 0x32
- 45987 cbbb 630E0000 		.long	0xe63
- 45988 cbbf 03       		.byte	0x3
- 45989 cbc0 91       		.byte	0x91
- 45990 cbc1 F07A     		.sleb128 -656
- 45991 cbc3 00       		.byte	0x0
- 45992 cbc4 00       		.byte	0x0
- 45993 cbc5 36       		.uleb128 0x36
- 45994 cbc6 00000000 		.quad	.LBB2863
- 45994      00000000 
- 45995 cbce 00000000 		.quad	.LBE2863
- 45995      00000000 
- 45996 cbd6 E4CB0000 		.long	0xcbe4
- 45997 cbda 34       		.uleb128 0x34
- 45998 cbdb 6AC00000 		.long	0xc06a
- 45999 cbdf 03       		.byte	0x3
- 46000 cbe0 91       		.byte	0x91
- 46001 cbe1 C06C     		.sleb128 -2496
- 46002 cbe3 00       		.byte	0x0
- 46003 cbe4 33       		.uleb128 0x33
- 46004 cbe5 00000000 		.quad	.LBB2864
- 46004      00000000 
- 46005 cbed 00000000 		.quad	.LBE2864
- 46005      00000000 
- 46006 cbf5 34       		.uleb128 0x34
- 46007 cbf6 76C00000 		.long	0xc076
- 46008 cbfa 03       		.byte	0x3
- 46009 cbfb 91       		.byte	0x91
- 46010 cbfc B06C     		.sleb128 -2512
- 46011 cbfe 00       		.byte	0x0
- 46012 cbff 00       		.byte	0x0
- 46013 cc00 00       		.byte	0x0
- 46014 cc01 35       		.uleb128 0x35
- 46015 cc02 E2C00000 		.long	0xc0e2
- 46016 cc06 00000000 		.quad	.LBB2865
- 46016      00000000 
- 46017 cc0e 00000000 		.quad	.LBE2865
- 46017      00000000 
- 46018 cc16 02       		.byte	0x2
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1169
-
-
- 46019 cc17 E708     		.value	0x8e7
- 46020 cc19 32       		.uleb128 0x32
- 46021 cc1a 00C10000 		.long	0xc100
- 46022 cc1e 03       		.byte	0x3
- 46023 cc1f 91       		.byte	0x91
- 46024 cc20 807B     		.sleb128 -640
- 46025 cc22 32       		.uleb128 0x32
- 46026 cc23 F4C00000 		.long	0xc0f4
- 46027 cc27 03       		.byte	0x3
- 46028 cc28 91       		.byte	0x91
- 46029 cc29 907B     		.sleb128 -624
- 46030 cc2b 36       		.uleb128 0x36
- 46031 cc2c 00000000 		.quad	.LBB2867
- 46031      00000000 
- 46032 cc34 00000000 		.quad	.LBE2867
- 46032      00000000 
- 46033 cc3c 4ACC0000 		.long	0xcc4a
- 46034 cc40 34       		.uleb128 0x34
- 46035 cc41 11C10000 		.long	0xc111
- 46036 cc45 03       		.byte	0x3
- 46037 cc46 91       		.byte	0x91
- 46038 cc47 A070     		.sleb128 -2016
- 46039 cc49 00       		.byte	0x0
- 46040 cc4a 31       		.uleb128 0x31
- 46041 cc4b 82C00000 		.long	0xc082
- 46042 cc4f 00000000 		.quad	.LBB2868
- 46042      00000000 
- 46043 cc57 00000000 		.quad	.LBE2868
- 46043      00000000 
- 46044 cc5f 02       		.byte	0x2
- 46045 cc60 C308     		.value	0x8c3
- 46046 cc62 BACE0000 		.long	0xceba
- 46047 cc66 32       		.uleb128 0x32
- 46048 cc67 94C00000 		.long	0xc094
- 46049 cc6b 03       		.byte	0x3
- 46050 cc6c 91       		.byte	0x91
- 46051 cc6d A07B     		.sleb128 -608
- 46052 cc6f 35       		.uleb128 0x35
- 46053 cc70 B00C0000 		.long	0xcb0
- 46054 cc74 00000000 		.quad	.LBB2870
- 46054      00000000 
- 46055 cc7c 00000000 		.quad	.LBE2870
- 46055      00000000 
- 46056 cc84 02       		.byte	0x2
- 46057 cc85 8803     		.value	0x388
- 46058 cc87 32       		.uleb128 0x32
- 46059 cc88 CE0C0000 		.long	0xcce
- 46060 cc8c 03       		.byte	0x3
- 46061 cc8d 91       		.byte	0x91
- 46062 cc8e B87B     		.sleb128 -584
- 46063 cc90 32       		.uleb128 0x32
- 46064 cc91 C20C0000 		.long	0xcc2
- 46065 cc95 03       		.byte	0x3
- 46066 cc96 91       		.byte	0x91
- 46067 cc97 C07B     		.sleb128 -576
- 46068 cc99 33       		.uleb128 0x33
- 46069 cc9a 00000000 		.quad	.LBB2871
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1170
-
-
- 46069      00000000 
- 46070 cca2 00000000 		.quad	.LBE2871
- 46070      00000000 
- 46071 ccaa 34       		.uleb128 0x34
- 46072 ccab DA0C0000 		.long	0xcda
- 46073 ccaf 03       		.byte	0x3
- 46074 ccb0 91       		.byte	0x91
- 46075 ccb1 907C     		.sleb128 -496
- 46076 ccb3 34       		.uleb128 0x34
- 46077 ccb4 E50C0000 		.long	0xce5
- 46078 ccb8 03       		.byte	0x3
- 46079 ccb9 91       		.byte	0x91
- 46080 ccba 807C     		.sleb128 -512
- 46081 ccbc 34       		.uleb128 0x34
- 46082 ccbd F00C0000 		.long	0xcf0
- 46083 ccc1 03       		.byte	0x3
- 46084 ccc2 91       		.byte	0x91
- 46085 ccc3 F07B     		.sleb128 -528
- 46086 ccc5 34       		.uleb128 0x34
- 46087 ccc6 FC0C0000 		.long	0xcfc
- 46088 ccca 03       		.byte	0x3
- 46089 cccb 91       		.byte	0x91
- 46090 cccc E07B     		.sleb128 -544
- 46091 ccce 34       		.uleb128 0x34
- 46092 cccf 080D0000 		.long	0xd08
- 46093 ccd3 03       		.byte	0x3
- 46094 ccd4 91       		.byte	0x91
- 46095 ccd5 DC7B     		.sleb128 -548
- 46096 ccd7 31       		.uleb128 0x31
- 46097 ccd8 1F0D0000 		.long	0xd1f
- 46098 ccdc 00000000 		.quad	.LBB2872
- 46098      00000000 
- 46099 cce4 00000000 		.quad	.LBE2872
- 46099      00000000 
- 46100 ccec 02       		.byte	0x2
- 46101 cced 5603     		.value	0x356
- 46102 ccef 06CD0000 		.long	0xcd06
- 46103 ccf3 32       		.uleb128 0x32
- 46104 ccf4 3A0D0000 		.long	0xd3a
- 46105 ccf8 03       		.byte	0x3
- 46106 ccf9 91       		.byte	0x91
- 46107 ccfa A07C     		.sleb128 -480
- 46108 ccfc 32       		.uleb128 0x32
- 46109 ccfd 300D0000 		.long	0xd30
- 46110 cd01 03       		.byte	0x3
- 46111 cd02 91       		.byte	0x91
- 46112 cd03 B07C     		.sleb128 -464
- 46113 cd05 00       		.byte	0x0
- 46114 cd06 31       		.uleb128 0x31
- 46115 cd07 450D0000 		.long	0xd45
- 46116 cd0b 00000000 		.quad	.LBB2874
- 46116      00000000 
- 46117 cd13 00000000 		.quad	.LBE2874
- 46117      00000000 
- 46118 cd1b 02       		.byte	0x2
- 46119 cd1c 5E03     		.value	0x35e
- 46120 cd1e 35CD0000 		.long	0xcd35
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1171
-
-
- 46121 cd22 32       		.uleb128 0x32
- 46122 cd23 620D0000 		.long	0xd62
- 46123 cd27 03       		.byte	0x3
- 46124 cd28 91       		.byte	0x91
- 46125 cd29 C07C     		.sleb128 -448
- 46126 cd2b 32       		.uleb128 0x32
- 46127 cd2c 570D0000 		.long	0xd57
- 46128 cd30 03       		.byte	0x3
- 46129 cd31 91       		.byte	0x91
- 46130 cd32 D07C     		.sleb128 -432
- 46131 cd34 00       		.byte	0x0
- 46132 cd35 31       		.uleb128 0x31
- 46133 cd36 6E0D0000 		.long	0xd6e
- 46134 cd3a 00000000 		.quad	.LBB2876
- 46134      00000000 
- 46135 cd42 00000000 		.quad	.LBE2876
- 46135      00000000 
- 46136 cd4a 02       		.byte	0x2
- 46137 cd4b 6403     		.value	0x364
- 46138 cd4d 9ACD0000 		.long	0xcd9a
- 46139 cd51 32       		.uleb128 0x32
- 46140 cd52 8C0D0000 		.long	0xd8c
- 46141 cd56 03       		.byte	0x3
- 46142 cd57 91       		.byte	0x91
- 46143 cd58 E07C     		.sleb128 -416
- 46144 cd5a 32       		.uleb128 0x32
- 46145 cd5b 800D0000 		.long	0xd80
- 46146 cd5f 03       		.byte	0x3
- 46147 cd60 91       		.byte	0x91
- 46148 cd61 F07C     		.sleb128 -400
- 46149 cd63 33       		.uleb128 0x33
- 46150 cd64 00000000 		.quad	.LBB2877
- 46150      00000000 
- 46151 cd6c 00000000 		.quad	.LBE2877
- 46151      00000000 
- 46152 cd74 34       		.uleb128 0x34
- 46153 cd75 980D0000 		.long	0xd98
- 46154 cd79 03       		.byte	0x3
- 46155 cd7a 91       		.byte	0x91
- 46156 cd7b D070     		.sleb128 -1968
- 46157 cd7d 34       		.uleb128 0x34
- 46158 cd7e A40D0000 		.long	0xda4
- 46159 cd82 03       		.byte	0x3
- 46160 cd83 91       		.byte	0x91
- 46161 cd84 C070     		.sleb128 -1984
- 46162 cd86 34       		.uleb128 0x34
- 46163 cd87 AF0D0000 		.long	0xdaf
- 46164 cd8b 03       		.byte	0x3
- 46165 cd8c 91       		.byte	0x91
- 46166 cd8d B070     		.sleb128 -2000
- 46167 cd8f 34       		.uleb128 0x34
- 46168 cd90 BB0D0000 		.long	0xdbb
- 46169 cd94 03       		.byte	0x3
- 46170 cd95 91       		.byte	0x91
- 46171 cd96 8C7D     		.sleb128 -372
- 46172 cd98 00       		.byte	0x0
- 46173 cd99 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1172
-
-
- 46174 cd9a 31       		.uleb128 0x31
- 46175 cd9b C70D0000 		.long	0xdc7
- 46176 cd9f 00000000 		.quad	.LBB2878
- 46176      00000000 
- 46177 cda7 00000000 		.quad	.LBE2878
- 46177      00000000 
- 46178 cdaf 02       		.byte	0x2
- 46179 cdb0 6603     		.value	0x366
- 46180 cdb2 C9CD0000 		.long	0xcdc9
- 46181 cdb6 32       		.uleb128 0x32
- 46182 cdb7 E20D0000 		.long	0xde2
- 46183 cdbb 03       		.byte	0x3
- 46184 cdbc 91       		.byte	0x91
- 46185 cdbd 907D     		.sleb128 -368
- 46186 cdbf 32       		.uleb128 0x32
- 46187 cdc0 D80D0000 		.long	0xdd8
- 46188 cdc4 03       		.byte	0x3
- 46189 cdc5 91       		.byte	0x91
- 46190 cdc6 A07D     		.sleb128 -352
- 46191 cdc8 00       		.byte	0x0
- 46192 cdc9 31       		.uleb128 0x31
- 46193 cdca 6E0D0000 		.long	0xd6e
- 46194 cdce 00000000 		.quad	.LBB2880
- 46194      00000000 
- 46195 cdd6 00000000 		.quad	.LBE2880
- 46195      00000000 
- 46196 cdde 02       		.byte	0x2
- 46197 cddf 6803     		.value	0x368
- 46198 cde1 2ECE0000 		.long	0xce2e
- 46199 cde5 32       		.uleb128 0x32
- 46200 cde6 8C0D0000 		.long	0xd8c
- 46201 cdea 03       		.byte	0x3
- 46202 cdeb 91       		.byte	0x91
- 46203 cdec B07D     		.sleb128 -336
- 46204 cdee 32       		.uleb128 0x32
- 46205 cdef 800D0000 		.long	0xd80
- 46206 cdf3 03       		.byte	0x3
- 46207 cdf4 91       		.byte	0x91
- 46208 cdf5 C07D     		.sleb128 -320
- 46209 cdf7 33       		.uleb128 0x33
- 46210 cdf8 00000000 		.quad	.LBB2881
- 46210      00000000 
- 46211 ce00 00000000 		.quad	.LBE2881
- 46211      00000000 
- 46212 ce08 34       		.uleb128 0x34
- 46213 ce09 980D0000 		.long	0xd98
- 46214 ce0d 03       		.byte	0x3
- 46215 ce0e 91       		.byte	0x91
- 46216 ce0f 8071     		.sleb128 -1920
- 46217 ce11 34       		.uleb128 0x34
- 46218 ce12 A40D0000 		.long	0xda4
- 46219 ce16 03       		.byte	0x3
- 46220 ce17 91       		.byte	0x91
- 46221 ce18 F070     		.sleb128 -1936
- 46222 ce1a 34       		.uleb128 0x34
- 46223 ce1b AF0D0000 		.long	0xdaf
- 46224 ce1f 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1173
-
-
- 46225 ce20 91       		.byte	0x91
- 46226 ce21 E070     		.sleb128 -1952
- 46227 ce23 34       		.uleb128 0x34
- 46228 ce24 BB0D0000 		.long	0xdbb
- 46229 ce28 03       		.byte	0x3
- 46230 ce29 91       		.byte	0x91
- 46231 ce2a DC7D     		.sleb128 -292
- 46232 ce2c 00       		.byte	0x0
- 46233 ce2d 00       		.byte	0x0
- 46234 ce2e 31       		.uleb128 0x31
- 46235 ce2f C70D0000 		.long	0xdc7
- 46236 ce33 00000000 		.quad	.LBB2882
- 46236      00000000 
- 46237 ce3b 00000000 		.quad	.LBE2882
- 46237      00000000 
- 46238 ce43 02       		.byte	0x2
- 46239 ce44 6A03     		.value	0x36a
- 46240 ce46 5DCE0000 		.long	0xce5d
- 46241 ce4a 32       		.uleb128 0x32
- 46242 ce4b E20D0000 		.long	0xde2
- 46243 ce4f 03       		.byte	0x3
- 46244 ce50 91       		.byte	0x91
- 46245 ce51 E07D     		.sleb128 -288
- 46246 ce53 32       		.uleb128 0x32
- 46247 ce54 D80D0000 		.long	0xdd8
- 46248 ce58 03       		.byte	0x3
- 46249 ce59 91       		.byte	0x91
- 46250 ce5a F07D     		.sleb128 -272
- 46251 ce5c 00       		.byte	0x0
- 46252 ce5d 31       		.uleb128 0x31
- 46253 ce5e ED0D0000 		.long	0xded
- 46254 ce62 00000000 		.quad	.LBB2884
- 46254      00000000 
- 46255 ce6a 00000000 		.quad	.LBE2884
- 46255      00000000 
- 46256 ce72 02       		.byte	0x2
- 46257 ce73 6C03     		.value	0x36c
- 46258 ce75 8CCE0000 		.long	0xce8c
- 46259 ce79 32       		.uleb128 0x32
- 46260 ce7a 0A0E0000 		.long	0xe0a
- 46261 ce7e 03       		.byte	0x3
- 46262 ce7f 91       		.byte	0x91
- 46263 ce80 807E     		.sleb128 -256
- 46264 ce82 32       		.uleb128 0x32
- 46265 ce83 FF0D0000 		.long	0xdff
- 46266 ce87 03       		.byte	0x3
- 46267 ce88 91       		.byte	0x91
- 46268 ce89 907E     		.sleb128 -240
- 46269 ce8b 00       		.byte	0x0
- 46270 ce8c 35       		.uleb128 0x35
- 46271 ce8d 1F0D0000 		.long	0xd1f
- 46272 ce91 00000000 		.quad	.LBB2886
- 46272      00000000 
- 46273 ce99 00000000 		.quad	.LBE2886
- 46273      00000000 
- 46274 cea1 02       		.byte	0x2
- 46275 cea2 6E03     		.value	0x36e
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1174
-
-
- 46276 cea4 32       		.uleb128 0x32
- 46277 cea5 3A0D0000 		.long	0xd3a
- 46278 cea9 03       		.byte	0x3
- 46279 ceaa 91       		.byte	0x91
- 46280 ceab A07E     		.sleb128 -224
- 46281 cead 32       		.uleb128 0x32
- 46282 ceae 300D0000 		.long	0xd30
- 46283 ceb2 03       		.byte	0x3
- 46284 ceb3 91       		.byte	0x91
- 46285 ceb4 B07E     		.sleb128 -208
- 46286 ceb6 00       		.byte	0x0
- 46287 ceb7 00       		.byte	0x0
- 46288 ceb8 00       		.byte	0x0
- 46289 ceb9 00       		.byte	0x0
- 46290 ceba 36       		.uleb128 0x36
- 46291 cebb 00000000 		.quad	.LBB2888
- 46291      00000000 
- 46292 cec3 00000000 		.quad	.LBE2888
- 46292      00000000 
- 46293 cecb D9CE0000 		.long	0xced9
- 46294 cecf 34       		.uleb128 0x34
- 46295 ced0 21C10000 		.long	0xc121
- 46296 ced4 03       		.byte	0x3
- 46297 ced5 91       		.byte	0x91
- 46298 ced6 9070     		.sleb128 -2032
- 46299 ced8 00       		.byte	0x0
- 46300 ced9 31       		.uleb128 0x31
- 46301 ceda A1C00000 		.long	0xc0a1
- 46302 cede 00000000 		.quad	.LBB2889
- 46302      00000000 
- 46303 cee6 00000000 		.quad	.LBE2889
- 46303      00000000 
- 46304 ceee 02       		.byte	0x2
- 46305 ceef C708     		.value	0x8c7
- 46306 cef1 81CF0000 		.long	0xcf81
- 46307 cef5 32       		.uleb128 0x32
- 46308 cef6 B3C00000 		.long	0xc0b3
- 46309 cefa 03       		.byte	0x3
- 46310 cefb 91       		.byte	0x91
- 46311 cefc C07E     		.sleb128 -192
- 46312 cefe 33       		.uleb128 0x33
- 46313 ceff 00000000 		.quad	.LBB2890
- 46313      00000000 
- 46314 cf07 00000000 		.quad	.LBE2890
- 46314      00000000 
- 46315 cf0f 34       		.uleb128 0x34
- 46316 cf10 BFC00000 		.long	0xc0bf
- 46317 cf14 09       		.byte	0x9
- 46318 cf15 03       		.byte	0x3
- 46319 cf16 00000000 		.quad	InvShiftRowTable.6750
- 46319      00000000 
- 46320 cf1e 35       		.uleb128 0x35
- 46321 cf1f 6E0D0000 		.long	0xd6e
- 46322 cf23 00000000 		.quad	.LBB2891
- 46322      00000000 
- 46323 cf2b 00000000 		.quad	.LBE2891
- 46323      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1175
-
-
- 46324 cf33 02       		.byte	0x2
- 46325 cf34 6402     		.value	0x264
- 46326 cf36 32       		.uleb128 0x32
- 46327 cf37 8C0D0000 		.long	0xd8c
- 46328 cf3b 03       		.byte	0x3
- 46329 cf3c 91       		.byte	0x91
- 46330 cf3d D07E     		.sleb128 -176
- 46331 cf3f 32       		.uleb128 0x32
- 46332 cf40 800D0000 		.long	0xd80
- 46333 cf44 03       		.byte	0x3
- 46334 cf45 91       		.byte	0x91
- 46335 cf46 E07E     		.sleb128 -160
- 46336 cf48 33       		.uleb128 0x33
- 46337 cf49 00000000 		.quad	.LBB2892
- 46337      00000000 
- 46338 cf51 00000000 		.quad	.LBE2892
- 46338      00000000 
- 46339 cf59 34       		.uleb128 0x34
- 46340 cf5a 980D0000 		.long	0xd98
- 46341 cf5e 03       		.byte	0x3
- 46342 cf5f 91       		.byte	0x91
- 46343 cf60 B071     		.sleb128 -1872
- 46344 cf62 34       		.uleb128 0x34
- 46345 cf63 A40D0000 		.long	0xda4
- 46346 cf67 03       		.byte	0x3
- 46347 cf68 91       		.byte	0x91
- 46348 cf69 A071     		.sleb128 -1888
- 46349 cf6b 34       		.uleb128 0x34
- 46350 cf6c AF0D0000 		.long	0xdaf
- 46351 cf70 03       		.byte	0x3
- 46352 cf71 91       		.byte	0x91
- 46353 cf72 9071     		.sleb128 -1904
- 46354 cf74 34       		.uleb128 0x34
- 46355 cf75 BB0D0000 		.long	0xdbb
- 46356 cf79 03       		.byte	0x3
- 46357 cf7a 91       		.byte	0x91
- 46358 cf7b FC7E     		.sleb128 -132
- 46359 cf7d 00       		.byte	0x0
- 46360 cf7e 00       		.byte	0x0
- 46361 cf7f 00       		.byte	0x0
- 46362 cf80 00       		.byte	0x0
- 46363 cf81 36       		.uleb128 0x36
- 46364 cf82 00000000 		.quad	.LBB2893
- 46364      00000000 
- 46365 cf8a 00000000 		.quad	.LBE2893
- 46365      00000000 
- 46366 cf92 A0CF0000 		.long	0xcfa0
- 46367 cf96 34       		.uleb128 0x34
- 46368 cf97 31C10000 		.long	0xc131
- 46369 cf9b 03       		.byte	0x3
- 46370 cf9c 91       		.byte	0x91
- 46371 cf9d 8070     		.sleb128 -2048
- 46372 cf9f 00       		.byte	0x0
- 46373 cfa0 31       		.uleb128 0x31
- 46374 cfa1 3EB00000 		.long	0xb03e
- 46375 cfa5 00000000 		.quad	.LBB2894
- 46375      00000000 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1176
-
-
- 46376 cfad 00000000 		.quad	.LBE2894
- 46376      00000000 
- 46377 cfb5 02       		.byte	0x2
- 46378 cfb6 CB08     		.value	0x8cb
- 46379 cfb8 FACF0000 		.long	0xcffa
- 46380 cfbc 32       		.uleb128 0x32
- 46381 cfbd 5CB00000 		.long	0xb05c
- 46382 cfc1 03       		.byte	0x3
- 46383 cfc2 91       		.byte	0x91
- 46384 cfc3 807F     		.sleb128 -128
- 46385 cfc5 32       		.uleb128 0x32
- 46386 cfc6 50B00000 		.long	0xb050
- 46387 cfca 03       		.byte	0x3
- 46388 cfcb 91       		.byte	0x91
- 46389 cfcc 907F     		.sleb128 -112
- 46390 cfce 35       		.uleb128 0x35
- 46391 cfcf 520E0000 		.long	0xe52
- 46392 cfd3 00000000 		.quad	.LBB2896
- 46392      00000000 
- 46393 cfdb 00000000 		.quad	.LBE2896
- 46393      00000000 
- 46394 cfe3 02       		.byte	0x2
- 46395 cfe4 2302     		.value	0x223
- 46396 cfe6 32       		.uleb128 0x32
- 46397 cfe7 6D0E0000 		.long	0xe6d
- 46398 cfeb 03       		.byte	0x3
- 46399 cfec 91       		.byte	0x91
- 46400 cfed A07F     		.sleb128 -96
- 46401 cfef 32       		.uleb128 0x32
- 46402 cff0 630E0000 		.long	0xe63
- 46403 cff4 03       		.byte	0x3
- 46404 cff5 91       		.byte	0x91
- 46405 cff6 B07F     		.sleb128 -80
- 46406 cff8 00       		.byte	0x0
- 46407 cff9 00       		.byte	0x0
- 46408 cffa 36       		.uleb128 0x36
- 46409 cffb 00000000 		.quad	.LBB2898
- 46409      00000000 
- 46410 d003 00000000 		.quad	.LBE2898
- 46410      00000000 
- 46411 d00b 19D00000 		.long	0xd019
- 46412 d00f 34       		.uleb128 0x34
- 46413 d010 41C10000 		.long	0xc141
- 46414 d014 03       		.byte	0x3
- 46415 d015 91       		.byte	0x91
- 46416 d016 F06F     		.sleb128 -2064
- 46417 d018 00       		.byte	0x0
- 46418 d019 33       		.uleb128 0x33
- 46419 d01a 00000000 		.quad	.LBB2899
- 46419      00000000 
- 46420 d022 00000000 		.quad	.LBE2899
- 46420      00000000 
- 46421 d02a 34       		.uleb128 0x34
- 46422 d02b 4DC10000 		.long	0xc14d
- 46423 d02f 03       		.byte	0x3
- 46424 d030 91       		.byte	0x91
- 46425 d031 E06F     		.sleb128 -2080
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1177
-
-
- 46426 d033 00       		.byte	0x0
- 46427 d034 00       		.byte	0x0
- 46428 d035 00       		.byte	0x0
- 46429 d036 2D       		.uleb128 0x2d
- 46430 d037 00000000 		.long	.LASF382
- 46431 d03b 02       		.byte	0x2
- 46432 d03c 0309     		.value	0x903
- 46433 d03e 01       		.byte	0x1
- 46434 d03f 00000000 		.quad	.LFB578
- 46434      00000000 
- 46435 d047 00000000 		.quad	.LFE578
- 46435      00000000 
- 46436 d04f 00000000 		.long	.LLST10
- 46437 d053 67D00000 		.long	0xd067
- 46438 d057 2E       		.uleb128 0x2e
- 46439 d058 00000000 		.long	.LASF383
- 46440 d05c 02       		.byte	0x2
- 46441 d05d 0309     		.value	0x903
- 46442 d05f D0030000 		.long	0x3d0
- 46443 d063 02       		.byte	0x2
- 46444 d064 91       		.byte	0x91
- 46445 d065 68       		.sleb128 -24
- 46446 d066 00       		.byte	0x0
- 46447 d067 39       		.uleb128 0x39
- 46448 d068 00000000 		.long	.LASF384
- 46449 d06c 02       		.byte	0x2
- 46450 d06d 0D09     		.value	0x90d
- 46451 d06f 62000000 		.long	0x62
- 46452 d073 00000000 		.quad	.LFB579
- 46452      00000000 
- 46453 d07b 00000000 		.quad	.LFE579
- 46453      00000000 
- 46454 d083 00000000 		.long	.LLST11
- 46455 d087 39       		.uleb128 0x39
- 46456 d088 00000000 		.long	.LASF385
- 46457 d08c 02       		.byte	0x2
- 46458 d08d 1C09     		.value	0x91c
- 46459 d08f 62000000 		.long	0x62
- 46460 d093 00000000 		.quad	.LFB580
- 46460      00000000 
- 46461 d09b 00000000 		.quad	.LFE580
- 46461      00000000 
- 46462 d0a3 00000000 		.long	.LLST12
- 46463 d0a7 38       		.uleb128 0x38
- 46464 d0a8 00000000 		.long	.LASF386
- 46465 d0ac 02       		.byte	0x2
- 46466 d0ad 2909     		.value	0x929
- 46467 d0af 01       		.byte	0x1
- 46468 d0b0 86000000 		.long	0x86
- 46469 d0b4 00000000 		.quad	.LFB581
- 46469      00000000 
- 46470 d0bc 00000000 		.quad	.LFE581
- 46470      00000000 
- 46471 d0c4 00000000 		.long	.LLST13
- 46472 d0c8 3FD10000 		.long	0xd13f
- 46473 d0cc 2E       		.uleb128 0x2e
- 46474 d0cd 00000000 		.long	.LASF387
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1178
-
-
- 46475 d0d1 02       		.byte	0x2
- 46476 d0d2 2909     		.value	0x929
- 46477 d0d4 B9000000 		.long	0xb9
- 46478 d0d8 02       		.byte	0x2
- 46479 d0d9 91       		.byte	0x91
- 46480 d0da 58       		.sleb128 -40
- 46481 d0db 2E       		.uleb128 0x2e
- 46482 d0dc 00000000 		.long	.LASF388
- 46483 d0e0 02       		.byte	0x2
- 46484 d0e1 2909     		.value	0x929
- 46485 d0e3 AE000000 		.long	0xae
- 46486 d0e7 02       		.byte	0x2
- 46487 d0e8 91       		.byte	0x91
- 46488 d0e9 50       		.sleb128 -48
- 46489 d0ea 2E       		.uleb128 0x2e
- 46490 d0eb 00000000 		.long	.LASF389
- 46491 d0ef 02       		.byte	0x2
- 46492 d0f0 2A09     		.value	0x92a
- 46493 d0f2 62000000 		.long	0x62
- 46494 d0f6 02       		.byte	0x2
- 46495 d0f7 91       		.byte	0x91
- 46496 d0f8 4C       		.sleb128 -52
- 46497 d0f9 37       		.uleb128 0x37
- 46498 d0fa 726300   		.string	"rc"
- 46499 d0fd 02       		.byte	0x2
- 46500 d0fe 2C09     		.value	0x92c
- 46501 d100 86000000 		.long	0x86
- 46502 d104 02       		.byte	0x2
- 46503 d105 91       		.byte	0x91
- 46504 d106 64       		.sleb128 -28
- 46505 d107 37       		.uleb128 0x37
- 46506 d108 6B657900 		.string	"key"
- 46507 d10c 02       		.byte	0x2
- 46508 d10d 2D09     		.value	0x92d
- 46509 d10f 3FD10000 		.long	0xd13f
- 46510 d113 02       		.byte	0x2
- 46511 d114 91       		.byte	0x91
- 46512 d115 68       		.sleb128 -24
- 46513 d116 3A       		.uleb128 0x3a
- 46514 d117 00000000 		.long	.LASF390
- 46515 d11b 45D10000 		.long	0xd145
- 46516 d11f 01       		.byte	0x1
- 46517 d120 09       		.byte	0x9
- 46518 d121 03       		.byte	0x3
- 46519 d122 00000000 		.quad	__PRETTY_FUNCTION__.8463
- 46519      00000000 
- 46520 d12a 3A       		.uleb128 0x3a
- 46521 d12b 00000000 		.long	.LASF391
- 46522 d12f 4AD10000 		.long	0xd14a
- 46523 d133 01       		.byte	0x1
- 46524 d134 09       		.byte	0x9
- 46525 d135 03       		.byte	0x3
- 46526 d136 00000000 		.quad	__func__.8464
- 46526      00000000 
- 46527 d13e 00       		.byte	0x0
- 46528 d13f 07       		.uleb128 0x7
- 46529 d140 08       		.byte	0x8
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1179
-
-
- 46530 d141 6B040000 		.long	0x46b
- 46531 d145 06       		.uleb128 0x6
- 46532 d146 C8000000 		.long	0xc8
- 46533 d14a 06       		.uleb128 0x6
- 46534 d14b C8000000 		.long	0xc8
- 46535 d14f 38       		.uleb128 0x38
- 46536 d150 00000000 		.long	.LASF392
- 46537 d154 02       		.byte	0x2
- 46538 d155 5409     		.value	0x954
- 46539 d157 01       		.byte	0x1
- 46540 d158 86000000 		.long	0x86
- 46541 d15c 00000000 		.quad	.LFB582
- 46541      00000000 
- 46542 d164 00000000 		.quad	.LFE582
- 46542      00000000 
- 46543 d16c 00000000 		.long	.LLST14
- 46544 d170 E4D10000 		.long	0xd1e4
- 46545 d174 2E       		.uleb128 0x2e
- 46546 d175 00000000 		.long	.LASF393
- 46547 d179 02       		.byte	0x2
- 46548 d17a 5409     		.value	0x954
- 46549 d17c B9000000 		.long	0xb9
- 46550 d180 03       		.byte	0x3
- 46551 d181 91       		.byte	0x91
- 46552 d182 D87D     		.sleb128 -296
- 46553 d184 2E       		.uleb128 0x2e
- 46554 d185 00000000 		.long	.LASF388
- 46555 d189 02       		.byte	0x2
- 46556 d18a 5509     		.value	0x955
- 46557 d18c AE000000 		.long	0xae
- 46558 d190 03       		.byte	0x3
- 46559 d191 91       		.byte	0x91
- 46560 d192 D07D     		.sleb128 -304
- 46561 d194 2E       		.uleb128 0x2e
- 46562 d195 00000000 		.long	.LASF389
- 46563 d199 02       		.byte	0x2
- 46564 d19a 5609     		.value	0x956
- 46565 d19c 62000000 		.long	0x62
- 46566 d1a0 03       		.byte	0x3
- 46567 d1a1 91       		.byte	0x91
- 46568 d1a2 CC7D     		.sleb128 -308
- 46569 d1a4 30       		.uleb128 0x30
- 46570 d1a5 00000000 		.long	.LASF387
- 46571 d1a9 02       		.byte	0x2
- 46572 d1aa 5809     		.value	0x958
- 46573 d1ac 6B040000 		.long	0x46b
- 46574 d1b0 03       		.byte	0x3
- 46575 d1b1 91       		.byte	0x91
- 46576 d1b2 E07D     		.sleb128 -288
- 46577 d1b4 37       		.uleb128 0x37
- 46578 d1b5 726300   		.string	"rc"
- 46579 d1b8 02       		.byte	0x2
- 46580 d1b9 5909     		.value	0x959
- 46581 d1bb 86000000 		.long	0x86
- 46582 d1bf 02       		.byte	0x2
- 46583 d1c0 91       		.byte	0x91
- 46584 d1c1 64       		.sleb128 -28
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1180
-
-
- 46585 d1c2 33       		.uleb128 0x33
- 46586 d1c3 00000000 		.quad	.LBB2900
- 46586      00000000 
- 46587 d1cb 00000000 		.quad	.LBE2900
- 46587      00000000 
- 46588 d1d3 37       		.uleb128 0x37
- 46589 d1d4 6B657900 		.string	"key"
- 46590 d1d8 02       		.byte	0x2
- 46591 d1d9 5E09     		.value	0x95e
- 46592 d1db 3FD10000 		.long	0xd13f
- 46593 d1df 02       		.byte	0x2
- 46594 d1e0 91       		.byte	0x91
- 46595 d1e1 68       		.sleb128 -24
- 46596 d1e2 00       		.byte	0x0
- 46597 d1e3 00       		.byte	0x0
- 46598 d1e4 38       		.uleb128 0x38
- 46599 d1e5 00000000 		.long	.LASF394
- 46600 d1e9 02       		.byte	0x2
- 46601 d1ea 8009     		.value	0x980
- 46602 d1ec 01       		.byte	0x1
- 46603 d1ed B1010000 		.long	0x1b1
- 46604 d1f1 00000000 		.quad	.LFB583
- 46604      00000000 
- 46605 d1f9 00000000 		.quad	.LFE583
- 46605      00000000 
- 46606 d201 00000000 		.long	.LLST15
- 46607 d205 4BD20000 		.long	0xd24b
- 46608 d209 2E       		.uleb128 0x2e
- 46609 d20a 00000000 		.long	.LASF66
- 46610 d20e 02       		.byte	0x2
- 46611 d20f 8009     		.value	0x980
- 46612 d211 B1010000 		.long	0x1b1
- 46613 d215 02       		.byte	0x2
- 46614 d216 91       		.byte	0x91
- 46615 d217 50       		.sleb128 -48
- 46616 d218 2E       		.uleb128 0x2e
- 46617 d219 00000000 		.long	.LASF387
- 46618 d21d 02       		.byte	0x2
- 46619 d21e 8109     		.value	0x981
- 46620 d220 D8000000 		.long	0xd8
- 46621 d224 02       		.byte	0x2
- 46622 d225 91       		.byte	0x91
- 46623 d226 48       		.sleb128 -56
- 46624 d227 37       		.uleb128 0x37
- 46625 d228 6B657900 		.string	"key"
- 46626 d22c 02       		.byte	0x2
- 46627 d22d 8309     		.value	0x983
- 46628 d22f 4BD20000 		.long	0xd24b
- 46629 d233 02       		.byte	0x2
- 46630 d234 91       		.byte	0x91
- 46631 d235 68       		.sleb128 -24
- 46632 d236 3A       		.uleb128 0x3a
- 46633 d237 00000000 		.long	.LASF390
- 46634 d23b 66D20000 		.long	0xd266
- 46635 d23f 01       		.byte	0x1
- 46636 d240 09       		.byte	0x9
- 46637 d241 03       		.byte	0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1181
-
-
- 46638 d242 00000000 		.quad	__PRETTY_FUNCTION__.8500
- 46638      00000000 
- 46639 d24a 00       		.byte	0x0
- 46640 d24b 07       		.uleb128 0x7
- 46641 d24c 08       		.byte	0x8
- 46642 d24d 51D20000 		.long	0xd251
- 46643 d251 06       		.uleb128 0x6
- 46644 d252 6B040000 		.long	0x46b
- 46645 d256 09       		.uleb128 0x9
- 46646 d257 94000000 		.long	0x94
- 46647 d25b 66D20000 		.long	0xd266
- 46648 d25f 0A       		.uleb128 0xa
- 46649 d260 91000000 		.long	0x91
- 46650 d264 19       		.byte	0x19
- 46651 d265 00       		.byte	0x0
- 46652 d266 06       		.uleb128 0x6
- 46653 d267 56D20000 		.long	0xd256
- 46654 d26b 38       		.uleb128 0x38
- 46655 d26c 00000000 		.long	.LASF395
- 46656 d270 02       		.byte	0x2
- 46657 d271 A409     		.value	0x9a4
- 46658 d273 01       		.byte	0x1
- 46659 d274 B1010000 		.long	0x1b1
- 46660 d278 00000000 		.quad	.LFB584
- 46660      00000000 
- 46661 d280 00000000 		.quad	.LFE584
- 46661      00000000 
- 46662 d288 00000000 		.long	.LLST16
- 46663 d28c D2D20000 		.long	0xd2d2
- 46664 d290 2E       		.uleb128 0x2e
- 46665 d291 00000000 		.long	.LASF66
- 46666 d295 02       		.byte	0x2
- 46667 d296 A409     		.value	0x9a4
- 46668 d298 B1010000 		.long	0x1b1
- 46669 d29c 02       		.byte	0x2
- 46670 d29d 91       		.byte	0x91
- 46671 d29e 50       		.sleb128 -48
- 46672 d29f 2E       		.uleb128 0x2e
- 46673 d2a0 00000000 		.long	.LASF393
- 46674 d2a4 02       		.byte	0x2
- 46675 d2a5 A509     		.value	0x9a5
- 46676 d2a7 D8000000 		.long	0xd8
- 46677 d2ab 02       		.byte	0x2
- 46678 d2ac 91       		.byte	0x91
- 46679 d2ad 48       		.sleb128 -56
- 46680 d2ae 37       		.uleb128 0x37
- 46681 d2af 6B657900 		.string	"key"
- 46682 d2b3 02       		.byte	0x2
- 46683 d2b4 A709     		.value	0x9a7
- 46684 d2b6 4BD20000 		.long	0xd24b
- 46685 d2ba 02       		.byte	0x2
- 46686 d2bb 91       		.byte	0x91
- 46687 d2bc 68       		.sleb128 -24
- 46688 d2bd 3A       		.uleb128 0x3a
- 46689 d2be 00000000 		.long	.LASF390
- 46690 d2c2 D2D20000 		.long	0xd2d2
- 46691 d2c6 01       		.byte	0x1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1182
-
-
- 46692 d2c7 09       		.byte	0x9
- 46693 d2c8 03       		.byte	0x3
- 46694 d2c9 00000000 		.quad	__PRETTY_FUNCTION__.8521
- 46694      00000000 
- 46695 d2d1 00       		.byte	0x0
- 46696 d2d2 06       		.uleb128 0x6
- 46697 d2d3 56D20000 		.long	0xd256
- 46698 d2d7 3B       		.uleb128 0x3b
- 46699 d2d8 00000000 		.long	.LASF396
- 46700 d2dc 02       		.byte	0x2
- 46701 d2dd CC09     		.value	0x9cc
- 46702 d2df 62D30000 		.long	0xd362
- 46703 d2e3 00000000 		.quad	.LFB585
- 46703      00000000 
- 46704 d2eb 00000000 		.quad	.LFE585
- 46704      00000000 
- 46705 d2f3 00000000 		.long	.LLST17
- 46706 d2f7 62D30000 		.long	0xd362
- 46707 d2fb 30       		.uleb128 0x30
- 46708 d2fc 00000000 		.long	.LASF397
- 46709 d300 02       		.byte	0x2
- 46710 d301 CE09     		.value	0x9ce
- 46711 d303 62000000 		.long	0x62
- 46712 d307 02       		.byte	0x2
- 46713 d308 91       		.byte	0x91
- 46714 d309 48       		.sleb128 -56
- 46715 d30a 37       		.uleb128 0x37
- 46716 d30b 6100     		.string	"a"
- 46717 d30d 02       		.byte	0x2
- 46718 d30e CE09     		.value	0x9ce
- 46719 d310 62000000 		.long	0x62
- 46720 d314 02       		.byte	0x2
- 46721 d315 91       		.byte	0x91
- 46722 d316 4C       		.sleb128 -52
- 46723 d317 37       		.uleb128 0x37
- 46724 d318 6200     		.string	"b"
- 46725 d31a 02       		.byte	0x2
- 46726 d31b CE09     		.value	0x9ce
- 46727 d31d 62000000 		.long	0x62
- 46728 d321 02       		.byte	0x2
- 46729 d322 91       		.byte	0x91
- 46730 d323 50       		.sleb128 -48
- 46731 d324 37       		.uleb128 0x37
- 46732 d325 6300     		.string	"c"
- 46733 d327 02       		.byte	0x2
- 46734 d328 CE09     		.value	0x9ce
- 46735 d32a 62000000 		.long	0x62
- 46736 d32e 02       		.byte	0x2
- 46737 d32f 91       		.byte	0x91
- 46738 d330 54       		.sleb128 -44
- 46739 d331 37       		.uleb128 0x37
- 46740 d332 6400     		.string	"d"
- 46741 d334 02       		.byte	0x2
- 46742 d335 CE09     		.value	0x9ce
- 46743 d337 62000000 		.long	0x62
- 46744 d33b 02       		.byte	0x2
- 46745 d33c 91       		.byte	0x91
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1183
-
-
- 46746 d33d 58       		.sleb128 -40
- 46747 d33e 37       		.uleb128 0x37
- 46748 d33f 72657400 		.string	"ret"
- 46749 d343 02       		.byte	0x2
- 46750 d344 CF09     		.value	0x9cf
- 46751 d346 62D30000 		.long	0xd362
- 46752 d34a 02       		.byte	0x2
- 46753 d34b 91       		.byte	0x91
- 46754 d34c 5F       		.sleb128 -33
- 46755 d34d 3A       		.uleb128 0x3a
- 46756 d34e 00000000 		.long	.LASF391
- 46757 d352 79D30000 		.long	0xd379
- 46758 d356 01       		.byte	0x1
- 46759 d357 09       		.byte	0x9
- 46760 d358 03       		.byte	0x3
- 46761 d359 00000000 		.quad	__func__.8545
- 46761      00000000 
- 46762 d361 00       		.byte	0x0
- 46763 d362 02       		.uleb128 0x2
- 46764 d363 01       		.byte	0x1
- 46765 d364 02       		.byte	0x2
- 46766 d365 00000000 		.long	.LASF398
- 46767 d369 09       		.uleb128 0x9
- 46768 d36a 94000000 		.long	0x94
- 46769 d36e 79D30000 		.long	0xd379
- 46770 d372 0A       		.uleb128 0xa
- 46771 d373 91000000 		.long	0x91
- 46772 d377 22       		.byte	0x22
- 46773 d378 00       		.byte	0x0
- 46774 d379 06       		.uleb128 0x6
- 46775 d37a 69D30000 		.long	0xd369
- 46776 d37e 3C       		.uleb128 0x3c
- 46777 d37f 01       		.byte	0x1
- 46778 d380 00000000 		.long	.LASF416
- 46779 d384 02       		.byte	0x2
- 46780 d385 390A     		.value	0xa39
- 46781 d387 01       		.byte	0x1
- 46782 d388 86000000 		.long	0x86
- 46783 d38c 00000000 		.quad	.LFB586
- 46783      00000000 
- 46784 d394 00000000 		.quad	.LFE586
- 46784      00000000 
- 46785 d39c 00000000 		.long	.LLST18
- 46786 d3a0 EAD30000 		.long	0xd3ea
- 46787 d3a4 2E       		.uleb128 0x2e
- 46788 d3a5 00000000 		.long	.LASF399
- 46789 d3a9 02       		.byte	0x2
- 46790 d3aa 390A     		.value	0xa39
- 46791 d3ac EAD30000 		.long	0xd3ea
- 46792 d3b0 02       		.byte	0x2
- 46793 d3b1 91       		.byte	0x91
- 46794 d3b2 58       		.sleb128 -40
- 46795 d3b3 37       		.uleb128 0x37
- 46796 d3b4 726300   		.string	"rc"
- 46797 d3b7 02       		.byte	0x2
- 46798 d3b8 3B0A     		.value	0xa3b
- 46799 d3ba 86000000 		.long	0x86
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1184
-
-
- 46800 d3be 02       		.byte	0x2
- 46801 d3bf 91       		.byte	0x91
- 46802 d3c0 6C       		.sleb128 -20
- 46803 d3c1 3A       		.uleb128 0x3a
- 46804 d3c2 00000000 		.long	.LASF391
- 46805 d3c6 06D40000 		.long	0xd406
- 46806 d3ca 01       		.byte	0x1
- 46807 d3cb 09       		.byte	0x9
- 46808 d3cc 03       		.byte	0x3
- 46809 d3cd 00000000 		.quad	__func__.8570
- 46809      00000000 
- 46810 d3d5 3A       		.uleb128 0x3a
- 46811 d3d6 00000000 		.long	.LASF390
- 46812 d3da 0BD40000 		.long	0xd40b
- 46813 d3de 01       		.byte	0x1
- 46814 d3df 09       		.byte	0x9
- 46815 d3e0 03       		.byte	0x3
- 46816 d3e1 00000000 		.quad	__PRETTY_FUNCTION__.8571
- 46816      00000000 
- 46817 d3e9 00       		.byte	0x0
- 46818 d3ea 07       		.uleb128 0x7
- 46819 d3eb 08       		.byte	0x8
- 46820 d3ec F0D30000 		.long	0xd3f0
- 46821 d3f0 07       		.uleb128 0x7
- 46822 d3f1 08       		.byte	0x8
- 46823 d3f2 32050000 		.long	0x532
- 46824 d3f6 09       		.uleb128 0x9
- 46825 d3f7 94000000 		.long	0x94
- 46826 d3fb 06D40000 		.long	0xd406
- 46827 d3ff 0A       		.uleb128 0xa
- 46828 d400 91000000 		.long	0x91
- 46829 d404 16       		.byte	0x16
- 46830 d405 00       		.byte	0x0
- 46831 d406 06       		.uleb128 0x6
- 46832 d407 F6D30000 		.long	0xd3f6
- 46833 d40b 06       		.uleb128 0x6
- 46834 d40c F6D30000 		.long	0xd3f6
- 46835 d410 3D       		.uleb128 0x3d
- 46836 d411 00000000 		.long	.LASF400
- 46837 d415 02       		.byte	0x2
- 46838 d416 53       		.byte	0x53
- 46839 d417 1A0D0000 		.long	0xd1a
- 46840 d41b 09       		.byte	0x9
- 46841 d41c 03       		.byte	0x3
- 46842 d41d 00000000 		.quad	vec_00
- 46842      00000000 
- 46843 d425 3D       		.uleb128 0x3d
- 46844 d426 00000000 		.long	.LASF401
- 46845 d42a 02       		.byte	0x2
- 46846 d42b 57       		.byte	0x57
- 46847 d42c 1A0D0000 		.long	0xd1a
- 46848 d430 09       		.byte	0x9
- 46849 d431 03       		.byte	0x3
- 46850 d432 00000000 		.quad	vec_01
- 46850      00000000 
- 46851 d43a 3D       		.uleb128 0x3d
- 46852 d43b 00000000 		.long	.LASF402
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1185
-
-
- 46853 d43f 02       		.byte	0x2
- 46854 d440 5B       		.byte	0x5b
- 46855 d441 1A0D0000 		.long	0xd1a
- 46856 d445 09       		.byte	0x9
- 46857 d446 03       		.byte	0x3
- 46858 d447 00000000 		.quad	vec_0F
- 46858      00000000 
- 46859 d44f 3D       		.uleb128 0x3d
- 46860 d450 00000000 		.long	.LASF403
- 46861 d454 02       		.byte	0x2
- 46862 d455 5F       		.byte	0x5f
- 46863 d456 1A0D0000 		.long	0xd1a
- 46864 d45a 09       		.byte	0x9
- 46865 d45b 03       		.byte	0x3
- 46866 d45c 00000000 		.quad	vec_10
- 46866      00000000 
- 46867 d464 09       		.uleb128 0x9
- 46868 d465 FC030000 		.long	0x3fc
- 46869 d469 74D40000 		.long	0xd474
- 46870 d46d 0A       		.uleb128 0xa
- 46871 d46e 91000000 		.long	0x91
- 46872 d472 FF       		.byte	0xff
- 46873 d473 00       		.byte	0x0
- 46874 d474 30       		.uleb128 0x30
- 46875 d475 00000000 		.long	.LASF404
- 46876 d479 02       		.byte	0x2
- 46877 d47a AA02     		.value	0x2aa
- 46878 d47c 8AD40000 		.long	0xd48a
- 46879 d480 09       		.byte	0x9
- 46880 d481 03       		.byte	0x3
- 46881 d482 00000000 		.quad	KAESBlockCipherVecRijndaelSBox
- 46881      00000000 
- 46882 d48a 06       		.uleb128 0x6
- 46883 d48b 64D40000 		.long	0xd464
- 46884 d48f 09       		.uleb128 0x9
- 46885 d490 B1010000 		.long	0x1b1
- 46886 d494 9FD40000 		.long	0xd49f
- 46887 d498 0A       		.uleb128 0xa
- 46888 d499 91000000 		.long	0x91
- 46889 d49d 0F       		.byte	0xf
- 46890 d49e 00       		.byte	0x0
- 46891 d49f 30       		.uleb128 0x30
- 46892 d4a0 00000000 		.long	.LASF405
- 46893 d4a4 02       		.byte	0x2
- 46894 d4a5 1903     		.value	0x319
- 46895 d4a7 B5D40000 		.long	0xd4b5
- 46896 d4ab 09       		.byte	0x9
- 46897 d4ac 03       		.byte	0x3
- 46898 d4ad 00000000 		.quad	KAESBlockCipherVecRijndaelSBoxV
- 46898      00000000 
- 46899 d4b5 06       		.uleb128 0x6
- 46900 d4b6 8FD40000 		.long	0xd48f
- 46901 d4ba 30       		.uleb128 0x30
- 46902 d4bb 00000000 		.long	.LASF406
- 46903 d4bf 02       		.byte	0x2
- 46904 d4c0 2F03     		.value	0x32f
- 46905 d4c2 D0D40000 		.long	0xd4d0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1186
-
-
- 46906 d4c6 09       		.byte	0x9
- 46907 d4c7 03       		.byte	0x3
- 46908 d4c8 00000000 		.quad	KAESBlockCipherVecRijndaelInvSBoxV
- 46908      00000000 
- 46909 d4d0 06       		.uleb128 0x6
- 46910 d4d1 8FD40000 		.long	0xd48f
- 46911 d4d5 30       		.uleb128 0x30
- 46912 d4d6 00000000 		.long	.LASF407
- 46913 d4da 02       		.byte	0x2
- 46914 d4db 4603     		.value	0x346
- 46915 d4dd 1A0D0000 		.long	0xd1a
- 46916 d4e1 09       		.byte	0x9
- 46917 d4e2 03       		.byte	0x3
- 46918 d4e3 00000000 		.quad	lo_filter
- 46918      00000000 
- 46919 d4eb 30       		.uleb128 0x30
- 46920 d4ec 00000000 		.long	.LASF408
- 46921 d4f0 02       		.byte	0x2
- 46922 d4f1 9703     		.value	0x397
- 46923 d4f3 1A0D0000 		.long	0xd1a
- 46924 d4f7 09       		.byte	0x9
- 46925 d4f8 03       		.byte	0x3
- 46926 d4f9 00000000 		.quad	FF_tab
- 46926      00000000 
- 46927 d501 09       		.uleb128 0x9
- 46928 d502 FC030000 		.long	0x3fc
- 46929 d506 11D50000 		.long	0xd511
- 46930 d50a 0A       		.uleb128 0xa
- 46931 d50b 91000000 		.long	0x91
- 46932 d50f 07       		.byte	0x7
- 46933 d510 00       		.byte	0x0
- 46934 d511 30       		.uleb128 0x30
- 46935 d512 00000000 		.long	.LASF409
- 46936 d516 02       		.byte	0x2
- 46937 d517 DF03     		.value	0x3df
- 46938 d519 01D50000 		.long	0xd501
- 46939 d51d 09       		.byte	0x9
- 46940 d51e 03       		.byte	0x3
- 46941 d51f 00000000 		.quad	KAESBlockCipherVecFFtable
- 46941      00000000 
- 46942 d527 09       		.uleb128 0x9
- 46943 d528 07040000 		.long	0x407
- 46944 d52c 37D50000 		.long	0xd537
- 46945 d530 0A       		.uleb128 0xa
- 46946 d531 91000000 		.long	0x91
- 46947 d535 09       		.byte	0x9
- 46948 d536 00       		.byte	0x0
- 46949 d537 30       		.uleb128 0x30
- 46950 d538 00000000 		.long	.LASF410
- 46951 d53c 02       		.byte	0x2
- 46952 d53d 9E04     		.value	0x49e
- 46953 d53f 4DD50000 		.long	0xd54d
- 46954 d543 09       		.byte	0x9
- 46955 d544 03       		.byte	0x3
- 46956 d545 00000000 		.quad	KAESBlockCipherVecRcon
- 46956      00000000 
- 46957 d54d 06       		.uleb128 0x6
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1187
-
-
- 46958 d54e 27D50000 		.long	0xd527
- 46959 d552 09       		.uleb128 0x9
- 46960 d553 94000000 		.long	0x94
- 46961 d557 62D50000 		.long	0xd562
- 46962 d55b 0A       		.uleb128 0xa
- 46963 d55c 91000000 		.long	0x91
- 46964 d560 09       		.byte	0x9
- 46965 d561 00       		.byte	0x0
- 46966 d562 30       		.uleb128 0x30
- 46967 d563 00000000 		.long	.LASF411
- 46968 d567 02       		.byte	0x2
- 46969 d568 F708     		.value	0x8f7
- 46970 d56a 78D50000 		.long	0xd578
- 46971 d56e 09       		.byte	0x9
- 46972 d56f 03       		.byte	0x3
- 46973 d570 00000000 		.quad	KAESBlockCipherVecaes_ncbi_name
- 46973      00000000 
- 46974 d578 06       		.uleb128 0x6
- 46975 d579 52D50000 		.long	0xd552
- 46976 d57d 30       		.uleb128 0x30
- 46977 d57e 00000000 		.long	.LASF412
- 46978 d582 02       		.byte	0x2
- 46979 d583 240A     		.value	0xa24
- 46980 d585 93D50000 		.long	0xd593
- 46981 d589 09       		.byte	0x9
- 46982 d58a 03       		.byte	0x3
- 46983 d58b 00000000 		.quad	KAESBlockCipherVec_vt_
- 46983      00000000 
- 46984 d593 06       		.uleb128 0x6
- 46985 d594 0F030000 		.long	0x30f
- 46986 d598 00       		.byte	0x0
- 46987              		.section	.debug_abbrev
- 46988 0000 01       		.uleb128 0x1
- 46989 0001 11       		.uleb128 0x11
- 46990 0002 01       		.byte	0x1
- 46991 0003 25       		.uleb128 0x25
- 46992 0004 0E       		.uleb128 0xe
- 46993 0005 13       		.uleb128 0x13
- 46994 0006 0B       		.uleb128 0xb
- 46995 0007 03       		.uleb128 0x3
- 46996 0008 0E       		.uleb128 0xe
- 46997 0009 1B       		.uleb128 0x1b
- 46998 000a 0E       		.uleb128 0xe
- 46999 000b 11       		.uleb128 0x11
- 47000 000c 01       		.uleb128 0x1
- 47001 000d 12       		.uleb128 0x12
- 47002 000e 01       		.uleb128 0x1
- 47003 000f 10       		.uleb128 0x10
- 47004 0010 06       		.uleb128 0x6
- 47005 0011 00       		.byte	0x0
- 47006 0012 00       		.byte	0x0
- 47007 0013 02       		.uleb128 0x2
- 47008 0014 24       		.uleb128 0x24
- 47009 0015 00       		.byte	0x0
- 47010 0016 0B       		.uleb128 0xb
- 47011 0017 0B       		.uleb128 0xb
- 47012 0018 3E       		.uleb128 0x3e
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1188
-
-
- 47013 0019 0B       		.uleb128 0xb
- 47014 001a 03       		.uleb128 0x3
- 47015 001b 0E       		.uleb128 0xe
- 47016 001c 00       		.byte	0x0
- 47017 001d 00       		.byte	0x0
- 47018 001e 03       		.uleb128 0x3
- 47019 001f 24       		.uleb128 0x24
- 47020 0020 00       		.byte	0x0
- 47021 0021 0B       		.uleb128 0xb
- 47022 0022 0B       		.uleb128 0xb
- 47023 0023 3E       		.uleb128 0x3e
- 47024 0024 0B       		.uleb128 0xb
- 47025 0025 03       		.uleb128 0x3
- 47026 0026 08       		.uleb128 0x8
- 47027 0027 00       		.byte	0x0
- 47028 0028 00       		.byte	0x0
- 47029 0029 04       		.uleb128 0x4
- 47030 002a 16       		.uleb128 0x16
- 47031 002b 00       		.byte	0x0
- 47032 002c 03       		.uleb128 0x3
- 47033 002d 0E       		.uleb128 0xe
- 47034 002e 3A       		.uleb128 0x3a
- 47035 002f 0B       		.uleb128 0xb
- 47036 0030 3B       		.uleb128 0x3b
- 47037 0031 0B       		.uleb128 0xb
- 47038 0032 49       		.uleb128 0x49
- 47039 0033 13       		.uleb128 0x13
- 47040 0034 00       		.byte	0x0
- 47041 0035 00       		.byte	0x0
- 47042 0036 05       		.uleb128 0x5
- 47043 0037 24       		.uleb128 0x24
- 47044 0038 00       		.byte	0x0
- 47045 0039 0B       		.uleb128 0xb
- 47046 003a 0B       		.uleb128 0xb
- 47047 003b 3E       		.uleb128 0x3e
- 47048 003c 0B       		.uleb128 0xb
- 47049 003d 00       		.byte	0x0
- 47050 003e 00       		.byte	0x0
- 47051 003f 06       		.uleb128 0x6
- 47052 0040 26       		.uleb128 0x26
- 47053 0041 00       		.byte	0x0
- 47054 0042 49       		.uleb128 0x49
- 47055 0043 13       		.uleb128 0x13
- 47056 0044 00       		.byte	0x0
- 47057 0045 00       		.byte	0x0
- 47058 0046 07       		.uleb128 0x7
- 47059 0047 0F       		.uleb128 0xf
- 47060 0048 00       		.byte	0x0
- 47061 0049 0B       		.uleb128 0xb
- 47062 004a 0B       		.uleb128 0xb
- 47063 004b 49       		.uleb128 0x49
- 47064 004c 13       		.uleb128 0x13
- 47065 004d 00       		.byte	0x0
- 47066 004e 00       		.byte	0x0
- 47067 004f 08       		.uleb128 0x8
- 47068 0050 0F       		.uleb128 0xf
- 47069 0051 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1189
-
-
- 47070 0052 0B       		.uleb128 0xb
- 47071 0053 0B       		.uleb128 0xb
- 47072 0054 00       		.byte	0x0
- 47073 0055 00       		.byte	0x0
- 47074 0056 09       		.uleb128 0x9
- 47075 0057 01       		.uleb128 0x1
- 47076 0058 01       		.byte	0x1
- 47077 0059 49       		.uleb128 0x49
- 47078 005a 13       		.uleb128 0x13
- 47079 005b 01       		.uleb128 0x1
- 47080 005c 13       		.uleb128 0x13
- 47081 005d 00       		.byte	0x0
- 47082 005e 00       		.byte	0x0
- 47083 005f 0A       		.uleb128 0xa
- 47084 0060 21       		.uleb128 0x21
- 47085 0061 00       		.byte	0x0
- 47086 0062 49       		.uleb128 0x49
- 47087 0063 13       		.uleb128 0x13
- 47088 0064 2F       		.uleb128 0x2f
- 47089 0065 0B       		.uleb128 0xb
- 47090 0066 00       		.byte	0x0
- 47091 0067 00       		.byte	0x0
- 47092 0068 0B       		.uleb128 0xb
- 47093 0069 26       		.uleb128 0x26
- 47094 006a 00       		.byte	0x0
- 47095 006b 00       		.byte	0x0
- 47096 006c 00       		.byte	0x0
- 47097 006d 0C       		.uleb128 0xc
- 47098 006e 01       		.uleb128 0x1
- 47099 006f 01       		.byte	0x1
- 47100 0070 8742     		.uleb128 0x2107
- 47101 0072 0C       		.uleb128 0xc
- 47102 0073 49       		.uleb128 0x49
- 47103 0074 13       		.uleb128 0x13
- 47104 0075 01       		.uleb128 0x1
- 47105 0076 13       		.uleb128 0x13
- 47106 0077 00       		.byte	0x0
- 47107 0078 00       		.byte	0x0
- 47108 0079 0D       		.uleb128 0xd
- 47109 007a 04       		.uleb128 0x4
- 47110 007b 01       		.byte	0x1
- 47111 007c 0B       		.uleb128 0xb
- 47112 007d 0B       		.uleb128 0xb
- 47113 007e 3A       		.uleb128 0x3a
- 47114 007f 0B       		.uleb128 0xb
- 47115 0080 3B       		.uleb128 0x3b
- 47116 0081 0B       		.uleb128 0xb
- 47117 0082 01       		.uleb128 0x1
- 47118 0083 13       		.uleb128 0x13
- 47119 0084 00       		.byte	0x0
- 47120 0085 00       		.byte	0x0
- 47121 0086 0E       		.uleb128 0xe
- 47122 0087 28       		.uleb128 0x28
- 47123 0088 00       		.byte	0x0
- 47124 0089 03       		.uleb128 0x3
- 47125 008a 0E       		.uleb128 0xe
- 47126 008b 1C       		.uleb128 0x1c
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1190
-
-
- 47127 008c 0D       		.uleb128 0xd
- 47128 008d 00       		.byte	0x0
- 47129 008e 00       		.byte	0x0
- 47130 008f 0F       		.uleb128 0xf
- 47131 0090 04       		.uleb128 0x4
- 47132 0091 01       		.byte	0x1
- 47133 0092 0B       		.uleb128 0xb
- 47134 0093 0B       		.uleb128 0xb
- 47135 0094 3A       		.uleb128 0x3a
- 47136 0095 0B       		.uleb128 0xb
- 47137 0096 3B       		.uleb128 0x3b
- 47138 0097 05       		.uleb128 0x5
- 47139 0098 01       		.uleb128 0x1
- 47140 0099 13       		.uleb128 0x13
- 47141 009a 00       		.byte	0x0
- 47142 009b 00       		.byte	0x0
- 47143 009c 10       		.uleb128 0x10
- 47144 009d 13       		.uleb128 0x13
- 47145 009e 01       		.byte	0x1
- 47146 009f 03       		.uleb128 0x3
- 47147 00a0 0E       		.uleb128 0xe
- 47148 00a1 0B       		.uleb128 0xb
- 47149 00a2 0B       		.uleb128 0xb
- 47150 00a3 3A       		.uleb128 0x3a
- 47151 00a4 0B       		.uleb128 0xb
- 47152 00a5 3B       		.uleb128 0x3b
- 47153 00a6 0B       		.uleb128 0xb
- 47154 00a7 01       		.uleb128 0x1
- 47155 00a8 13       		.uleb128 0x13
- 47156 00a9 00       		.byte	0x0
- 47157 00aa 00       		.byte	0x0
- 47158 00ab 11       		.uleb128 0x11
- 47159 00ac 0D       		.uleb128 0xd
- 47160 00ad 00       		.byte	0x0
- 47161 00ae 03       		.uleb128 0x3
- 47162 00af 08       		.uleb128 0x8
- 47163 00b0 3A       		.uleb128 0x3a
- 47164 00b1 0B       		.uleb128 0xb
- 47165 00b2 3B       		.uleb128 0x3b
- 47166 00b3 0B       		.uleb128 0xb
- 47167 00b4 49       		.uleb128 0x49
- 47168 00b5 13       		.uleb128 0x13
- 47169 00b6 38       		.uleb128 0x38
- 47170 00b7 0A       		.uleb128 0xa
- 47171 00b8 00       		.byte	0x0
- 47172 00b9 00       		.byte	0x0
- 47173 00ba 12       		.uleb128 0x12
- 47174 00bb 0D       		.uleb128 0xd
- 47175 00bc 00       		.byte	0x0
- 47176 00bd 03       		.uleb128 0x3
- 47177 00be 0E       		.uleb128 0xe
- 47178 00bf 3A       		.uleb128 0x3a
- 47179 00c0 0B       		.uleb128 0xb
- 47180 00c1 3B       		.uleb128 0x3b
- 47181 00c2 0B       		.uleb128 0xb
- 47182 00c3 49       		.uleb128 0x49
- 47183 00c4 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1191
-
-
- 47184 00c5 38       		.uleb128 0x38
- 47185 00c6 0A       		.uleb128 0xa
- 47186 00c7 00       		.byte	0x0
- 47187 00c8 00       		.byte	0x0
- 47188 00c9 13       		.uleb128 0x13
- 47189 00ca 17       		.uleb128 0x17
- 47190 00cb 01       		.byte	0x1
- 47191 00cc 03       		.uleb128 0x3
- 47192 00cd 0E       		.uleb128 0xe
- 47193 00ce 0B       		.uleb128 0xb
- 47194 00cf 0B       		.uleb128 0xb
- 47195 00d0 3A       		.uleb128 0x3a
- 47196 00d1 0B       		.uleb128 0xb
- 47197 00d2 3B       		.uleb128 0x3b
- 47198 00d3 0B       		.uleb128 0xb
- 47199 00d4 01       		.uleb128 0x1
- 47200 00d5 13       		.uleb128 0x13
- 47201 00d6 00       		.byte	0x0
- 47202 00d7 00       		.byte	0x0
- 47203 00d8 14       		.uleb128 0x14
- 47204 00d9 0D       		.uleb128 0xd
- 47205 00da 00       		.byte	0x0
- 47206 00db 03       		.uleb128 0x3
- 47207 00dc 0E       		.uleb128 0xe
- 47208 00dd 3A       		.uleb128 0x3a
- 47209 00de 0B       		.uleb128 0xb
- 47210 00df 3B       		.uleb128 0x3b
- 47211 00e0 0B       		.uleb128 0xb
- 47212 00e1 49       		.uleb128 0x49
- 47213 00e2 13       		.uleb128 0x13
- 47214 00e3 00       		.byte	0x0
- 47215 00e4 00       		.byte	0x0
- 47216 00e5 15       		.uleb128 0x15
- 47217 00e6 0D       		.uleb128 0xd
- 47218 00e7 00       		.byte	0x0
- 47219 00e8 03       		.uleb128 0x3
- 47220 00e9 08       		.uleb128 0x8
- 47221 00ea 3A       		.uleb128 0x3a
- 47222 00eb 0B       		.uleb128 0xb
- 47223 00ec 3B       		.uleb128 0x3b
- 47224 00ed 0B       		.uleb128 0xb
- 47225 00ee 49       		.uleb128 0x49
- 47226 00ef 13       		.uleb128 0x13
- 47227 00f0 00       		.byte	0x0
- 47228 00f1 00       		.byte	0x0
- 47229 00f2 16       		.uleb128 0x16
- 47230 00f3 15       		.uleb128 0x15
- 47231 00f4 01       		.byte	0x1
- 47232 00f5 27       		.uleb128 0x27
- 47233 00f6 0C       		.uleb128 0xc
- 47234 00f7 01       		.uleb128 0x1
- 47235 00f8 13       		.uleb128 0x13
- 47236 00f9 00       		.byte	0x0
- 47237 00fa 00       		.byte	0x0
- 47238 00fb 17       		.uleb128 0x17
- 47239 00fc 05       		.uleb128 0x5
- 47240 00fd 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1192
-
-
- 47241 00fe 49       		.uleb128 0x49
- 47242 00ff 13       		.uleb128 0x13
- 47243 0100 00       		.byte	0x0
- 47244 0101 00       		.byte	0x0
- 47245 0102 18       		.uleb128 0x18
- 47246 0103 15       		.uleb128 0x15
- 47247 0104 01       		.byte	0x1
- 47248 0105 49       		.uleb128 0x49
- 47249 0106 13       		.uleb128 0x13
- 47250 0107 01       		.uleb128 0x1
- 47251 0108 13       		.uleb128 0x13
- 47252 0109 00       		.byte	0x0
- 47253 010a 00       		.byte	0x0
- 47254 010b 19       		.uleb128 0x19
- 47255 010c 18       		.uleb128 0x18
- 47256 010d 00       		.byte	0x0
- 47257 010e 00       		.byte	0x0
- 47258 010f 00       		.byte	0x0
- 47259 0110 1A       		.uleb128 0x1a
- 47260 0111 15       		.uleb128 0x15
- 47261 0112 01       		.byte	0x1
- 47262 0113 27       		.uleb128 0x27
- 47263 0114 0C       		.uleb128 0xc
- 47264 0115 49       		.uleb128 0x49
- 47265 0116 13       		.uleb128 0x13
- 47266 0117 01       		.uleb128 0x1
- 47267 0118 13       		.uleb128 0x13
- 47268 0119 00       		.byte	0x0
- 47269 011a 00       		.byte	0x0
- 47270 011b 1B       		.uleb128 0x1b
- 47271 011c 13       		.uleb128 0x13
- 47272 011d 01       		.byte	0x1
- 47273 011e 03       		.uleb128 0x3
- 47274 011f 0E       		.uleb128 0xe
- 47275 0120 0B       		.uleb128 0xb
- 47276 0121 05       		.uleb128 0x5
- 47277 0122 3A       		.uleb128 0x3a
- 47278 0123 0B       		.uleb128 0xb
- 47279 0124 3B       		.uleb128 0x3b
- 47280 0125 0B       		.uleb128 0xb
- 47281 0126 01       		.uleb128 0x1
- 47282 0127 13       		.uleb128 0x13
- 47283 0128 00       		.byte	0x0
- 47284 0129 00       		.byte	0x0
- 47285 012a 1C       		.uleb128 0x1c
- 47286 012b 17       		.uleb128 0x17
- 47287 012c 01       		.byte	0x1
- 47288 012d 0B       		.uleb128 0xb
- 47289 012e 0B       		.uleb128 0xb
- 47290 012f 3A       		.uleb128 0x3a
- 47291 0130 0B       		.uleb128 0xb
- 47292 0131 3B       		.uleb128 0x3b
- 47293 0132 0B       		.uleb128 0xb
- 47294 0133 01       		.uleb128 0x1
- 47295 0134 13       		.uleb128 0x13
- 47296 0135 00       		.byte	0x0
- 47297 0136 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1193
-
-
- 47298 0137 1D       		.uleb128 0x1d
- 47299 0138 04       		.uleb128 0x4
- 47300 0139 01       		.byte	0x1
- 47301 013a 03       		.uleb128 0x3
- 47302 013b 0E       		.uleb128 0xe
- 47303 013c 0B       		.uleb128 0xb
- 47304 013d 0B       		.uleb128 0xb
- 47305 013e 3A       		.uleb128 0x3a
- 47306 013f 0B       		.uleb128 0xb
- 47307 0140 3B       		.uleb128 0x3b
- 47308 0141 0B       		.uleb128 0xb
- 47309 0142 01       		.uleb128 0x1
- 47310 0143 13       		.uleb128 0x13
- 47311 0144 00       		.byte	0x0
- 47312 0145 00       		.byte	0x0
- 47313 0146 1E       		.uleb128 0x1e
- 47314 0147 04       		.uleb128 0x4
- 47315 0148 01       		.byte	0x1
- 47316 0149 03       		.uleb128 0x3
- 47317 014a 0E       		.uleb128 0xe
- 47318 014b 0B       		.uleb128 0xb
- 47319 014c 0B       		.uleb128 0xb
- 47320 014d 3A       		.uleb128 0x3a
- 47321 014e 0B       		.uleb128 0xb
- 47322 014f 3B       		.uleb128 0x3b
- 47323 0150 05       		.uleb128 0x5
- 47324 0151 01       		.uleb128 0x1
- 47325 0152 13       		.uleb128 0x13
- 47326 0153 00       		.byte	0x0
- 47327 0154 00       		.byte	0x0
- 47328 0155 1F       		.uleb128 0x1f
- 47329 0156 2E       		.uleb128 0x2e
- 47330 0157 01       		.byte	0x1
- 47331 0158 03       		.uleb128 0x3
- 47332 0159 0E       		.uleb128 0xe
- 47333 015a 3A       		.uleb128 0x3a
- 47334 015b 0B       		.uleb128 0xb
- 47335 015c 3B       		.uleb128 0x3b
- 47336 015d 0B       		.uleb128 0xb
- 47337 015e 27       		.uleb128 0x27
- 47338 015f 0C       		.uleb128 0xc
- 47339 0160 49       		.uleb128 0x49
- 47340 0161 13       		.uleb128 0x13
- 47341 0162 11       		.uleb128 0x11
- 47342 0163 01       		.uleb128 0x1
- 47343 0164 12       		.uleb128 0x12
- 47344 0165 01       		.uleb128 0x1
- 47345 0166 40       		.uleb128 0x40
- 47346 0167 06       		.uleb128 0x6
- 47347 0168 01       		.uleb128 0x1
- 47348 0169 13       		.uleb128 0x13
- 47349 016a 00       		.byte	0x0
- 47350 016b 00       		.byte	0x0
- 47351 016c 20       		.uleb128 0x20
- 47352 016d 05       		.uleb128 0x5
- 47353 016e 00       		.byte	0x0
- 47354 016f 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1194
-
-
- 47355 0170 08       		.uleb128 0x8
- 47356 0171 3A       		.uleb128 0x3a
- 47357 0172 0B       		.uleb128 0xb
- 47358 0173 3B       		.uleb128 0x3b
- 47359 0174 0B       		.uleb128 0xb
- 47360 0175 49       		.uleb128 0x49
- 47361 0176 13       		.uleb128 0x13
- 47362 0177 02       		.uleb128 0x2
- 47363 0178 0A       		.uleb128 0xa
- 47364 0179 00       		.byte	0x0
- 47365 017a 00       		.byte	0x0
- 47366 017b 21       		.uleb128 0x21
- 47367 017c 34       		.uleb128 0x34
- 47368 017d 00       		.byte	0x0
- 47369 017e 03       		.uleb128 0x3
- 47370 017f 08       		.uleb128 0x8
- 47371 0180 3A       		.uleb128 0x3a
- 47372 0181 0B       		.uleb128 0xb
- 47373 0182 3B       		.uleb128 0x3b
- 47374 0183 0B       		.uleb128 0xb
- 47375 0184 49       		.uleb128 0x49
- 47376 0185 13       		.uleb128 0x13
- 47377 0186 02       		.uleb128 0x2
- 47378 0187 0A       		.uleb128 0xa
- 47379 0188 00       		.byte	0x0
- 47380 0189 00       		.byte	0x0
- 47381 018a 22       		.uleb128 0x22
- 47382 018b 2E       		.uleb128 0x2e
- 47383 018c 01       		.byte	0x1
- 47384 018d 03       		.uleb128 0x3
- 47385 018e 0E       		.uleb128 0xe
- 47386 018f 3A       		.uleb128 0x3a
- 47387 0190 0B       		.uleb128 0xb
- 47388 0191 3B       		.uleb128 0x3b
- 47389 0192 0B       		.uleb128 0xb
- 47390 0193 27       		.uleb128 0x27
- 47391 0194 0C       		.uleb128 0xc
- 47392 0195 49       		.uleb128 0x49
- 47393 0196 13       		.uleb128 0x13
- 47394 0197 20       		.uleb128 0x20
- 47395 0198 0B       		.uleb128 0xb
- 47396 0199 01       		.uleb128 0x1
- 47397 019a 13       		.uleb128 0x13
- 47398 019b 00       		.byte	0x0
- 47399 019c 00       		.byte	0x0
- 47400 019d 23       		.uleb128 0x23
- 47401 019e 05       		.uleb128 0x5
- 47402 019f 00       		.byte	0x0
- 47403 01a0 03       		.uleb128 0x3
- 47404 01a1 08       		.uleb128 0x8
- 47405 01a2 3A       		.uleb128 0x3a
- 47406 01a3 0B       		.uleb128 0xb
- 47407 01a4 3B       		.uleb128 0x3b
- 47408 01a5 0B       		.uleb128 0xb
- 47409 01a6 49       		.uleb128 0x49
- 47410 01a7 13       		.uleb128 0x13
- 47411 01a8 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1195
-
-
- 47412 01a9 00       		.byte	0x0
- 47413 01aa 24       		.uleb128 0x24
- 47414 01ab 34       		.uleb128 0x34
- 47415 01ac 00       		.byte	0x0
- 47416 01ad 03       		.uleb128 0x3
- 47417 01ae 08       		.uleb128 0x8
- 47418 01af 3A       		.uleb128 0x3a
- 47419 01b0 0B       		.uleb128 0xb
- 47420 01b1 3B       		.uleb128 0x3b
- 47421 01b2 0B       		.uleb128 0xb
- 47422 01b3 49       		.uleb128 0x49
- 47423 01b4 13       		.uleb128 0x13
- 47424 01b5 00       		.byte	0x0
- 47425 01b6 00       		.byte	0x0
- 47426 01b7 25       		.uleb128 0x25
- 47427 01b8 2E       		.uleb128 0x2e
- 47428 01b9 01       		.byte	0x1
- 47429 01ba 03       		.uleb128 0x3
- 47430 01bb 0E       		.uleb128 0xe
- 47431 01bc 3A       		.uleb128 0x3a
- 47432 01bd 0B       		.uleb128 0xb
- 47433 01be 3B       		.uleb128 0x3b
- 47434 01bf 05       		.uleb128 0x5
- 47435 01c0 27       		.uleb128 0x27
- 47436 01c1 0C       		.uleb128 0xc
- 47437 01c2 49       		.uleb128 0x49
- 47438 01c3 13       		.uleb128 0x13
- 47439 01c4 20       		.uleb128 0x20
- 47440 01c5 0B       		.uleb128 0xb
- 47441 01c6 01       		.uleb128 0x1
- 47442 01c7 13       		.uleb128 0x13
- 47443 01c8 00       		.byte	0x0
- 47444 01c9 00       		.byte	0x0
- 47445 01ca 26       		.uleb128 0x26
- 47446 01cb 05       		.uleb128 0x5
- 47447 01cc 00       		.byte	0x0
- 47448 01cd 03       		.uleb128 0x3
- 47449 01ce 0E       		.uleb128 0xe
- 47450 01cf 3A       		.uleb128 0x3a
- 47451 01d0 0B       		.uleb128 0xb
- 47452 01d1 3B       		.uleb128 0x3b
- 47453 01d2 05       		.uleb128 0x5
- 47454 01d3 49       		.uleb128 0x49
- 47455 01d4 13       		.uleb128 0x13
- 47456 01d5 00       		.byte	0x0
- 47457 01d6 00       		.byte	0x0
- 47458 01d7 27       		.uleb128 0x27
- 47459 01d8 34       		.uleb128 0x34
- 47460 01d9 00       		.byte	0x0
- 47461 01da 03       		.uleb128 0x3
- 47462 01db 0E       		.uleb128 0xe
- 47463 01dc 3A       		.uleb128 0x3a
- 47464 01dd 0B       		.uleb128 0xb
- 47465 01de 3B       		.uleb128 0x3b
- 47466 01df 05       		.uleb128 0x5
- 47467 01e0 49       		.uleb128 0x49
- 47468 01e1 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1196
-
-
- 47469 01e2 00       		.byte	0x0
- 47470 01e3 00       		.byte	0x0
- 47471 01e4 28       		.uleb128 0x28
- 47472 01e5 34       		.uleb128 0x34
- 47473 01e6 00       		.byte	0x0
- 47474 01e7 03       		.uleb128 0x3
- 47475 01e8 08       		.uleb128 0x8
- 47476 01e9 3A       		.uleb128 0x3a
- 47477 01ea 0B       		.uleb128 0xb
- 47478 01eb 3B       		.uleb128 0x3b
- 47479 01ec 05       		.uleb128 0x5
- 47480 01ed 49       		.uleb128 0x49
- 47481 01ee 13       		.uleb128 0x13
- 47482 01ef 00       		.byte	0x0
- 47483 01f0 00       		.byte	0x0
- 47484 01f1 29       		.uleb128 0x29
- 47485 01f2 0B       		.uleb128 0xb
- 47486 01f3 01       		.byte	0x1
- 47487 01f4 01       		.uleb128 0x1
- 47488 01f5 13       		.uleb128 0x13
- 47489 01f6 00       		.byte	0x0
- 47490 01f7 00       		.byte	0x0
- 47491 01f8 2A       		.uleb128 0x2a
- 47492 01f9 0B       		.uleb128 0xb
- 47493 01fa 01       		.byte	0x1
- 47494 01fb 00       		.byte	0x0
- 47495 01fc 00       		.byte	0x0
- 47496 01fd 2B       		.uleb128 0x2b
- 47497 01fe 05       		.uleb128 0x5
- 47498 01ff 00       		.byte	0x0
- 47499 0200 03       		.uleb128 0x3
- 47500 0201 08       		.uleb128 0x8
- 47501 0202 3A       		.uleb128 0x3a
- 47502 0203 0B       		.uleb128 0xb
- 47503 0204 3B       		.uleb128 0x3b
- 47504 0205 05       		.uleb128 0x5
- 47505 0206 49       		.uleb128 0x49
- 47506 0207 13       		.uleb128 0x13
- 47507 0208 00       		.byte	0x0
- 47508 0209 00       		.byte	0x0
- 47509 020a 2C       		.uleb128 0x2c
- 47510 020b 34       		.uleb128 0x34
- 47511 020c 00       		.byte	0x0
- 47512 020d 03       		.uleb128 0x3
- 47513 020e 0E       		.uleb128 0xe
- 47514 020f 3A       		.uleb128 0x3a
- 47515 0210 0B       		.uleb128 0xb
- 47516 0211 3B       		.uleb128 0x3b
- 47517 0212 05       		.uleb128 0x5
- 47518 0213 49       		.uleb128 0x49
- 47519 0214 13       		.uleb128 0x13
- 47520 0215 1C       		.uleb128 0x1c
- 47521 0216 0A       		.uleb128 0xa
- 47522 0217 00       		.byte	0x0
- 47523 0218 00       		.byte	0x0
- 47524 0219 2D       		.uleb128 0x2d
- 47525 021a 2E       		.uleb128 0x2e
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1197
-
-
- 47526 021b 01       		.byte	0x1
- 47527 021c 03       		.uleb128 0x3
- 47528 021d 0E       		.uleb128 0xe
- 47529 021e 3A       		.uleb128 0x3a
- 47530 021f 0B       		.uleb128 0xb
- 47531 0220 3B       		.uleb128 0x3b
- 47532 0221 05       		.uleb128 0x5
- 47533 0222 27       		.uleb128 0x27
- 47534 0223 0C       		.uleb128 0xc
- 47535 0224 11       		.uleb128 0x11
- 47536 0225 01       		.uleb128 0x1
- 47537 0226 12       		.uleb128 0x12
- 47538 0227 01       		.uleb128 0x1
- 47539 0228 40       		.uleb128 0x40
- 47540 0229 06       		.uleb128 0x6
- 47541 022a 01       		.uleb128 0x1
- 47542 022b 13       		.uleb128 0x13
- 47543 022c 00       		.byte	0x0
- 47544 022d 00       		.byte	0x0
- 47545 022e 2E       		.uleb128 0x2e
- 47546 022f 05       		.uleb128 0x5
- 47547 0230 00       		.byte	0x0
- 47548 0231 03       		.uleb128 0x3
- 47549 0232 0E       		.uleb128 0xe
- 47550 0233 3A       		.uleb128 0x3a
- 47551 0234 0B       		.uleb128 0xb
- 47552 0235 3B       		.uleb128 0x3b
- 47553 0236 05       		.uleb128 0x5
- 47554 0237 49       		.uleb128 0x49
- 47555 0238 13       		.uleb128 0x13
- 47556 0239 02       		.uleb128 0x2
- 47557 023a 0A       		.uleb128 0xa
- 47558 023b 00       		.byte	0x0
- 47559 023c 00       		.byte	0x0
- 47560 023d 2F       		.uleb128 0x2f
- 47561 023e 05       		.uleb128 0x5
- 47562 023f 00       		.byte	0x0
- 47563 0240 03       		.uleb128 0x3
- 47564 0241 08       		.uleb128 0x8
- 47565 0242 3A       		.uleb128 0x3a
- 47566 0243 0B       		.uleb128 0xb
- 47567 0244 3B       		.uleb128 0x3b
- 47568 0245 05       		.uleb128 0x5
- 47569 0246 49       		.uleb128 0x49
- 47570 0247 13       		.uleb128 0x13
- 47571 0248 02       		.uleb128 0x2
- 47572 0249 0A       		.uleb128 0xa
- 47573 024a 00       		.byte	0x0
- 47574 024b 00       		.byte	0x0
- 47575 024c 30       		.uleb128 0x30
- 47576 024d 34       		.uleb128 0x34
- 47577 024e 00       		.byte	0x0
- 47578 024f 03       		.uleb128 0x3
- 47579 0250 0E       		.uleb128 0xe
- 47580 0251 3A       		.uleb128 0x3a
- 47581 0252 0B       		.uleb128 0xb
- 47582 0253 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1198
-
-
- 47583 0254 05       		.uleb128 0x5
- 47584 0255 49       		.uleb128 0x49
- 47585 0256 13       		.uleb128 0x13
- 47586 0257 02       		.uleb128 0x2
- 47587 0258 0A       		.uleb128 0xa
- 47588 0259 00       		.byte	0x0
- 47589 025a 00       		.byte	0x0
- 47590 025b 31       		.uleb128 0x31
- 47591 025c 1D       		.uleb128 0x1d
- 47592 025d 01       		.byte	0x1
- 47593 025e 31       		.uleb128 0x31
- 47594 025f 13       		.uleb128 0x13
- 47595 0260 11       		.uleb128 0x11
- 47596 0261 01       		.uleb128 0x1
- 47597 0262 12       		.uleb128 0x12
- 47598 0263 01       		.uleb128 0x1
- 47599 0264 58       		.uleb128 0x58
- 47600 0265 0B       		.uleb128 0xb
- 47601 0266 59       		.uleb128 0x59
- 47602 0267 05       		.uleb128 0x5
- 47603 0268 01       		.uleb128 0x1
- 47604 0269 13       		.uleb128 0x13
- 47605 026a 00       		.byte	0x0
- 47606 026b 00       		.byte	0x0
- 47607 026c 32       		.uleb128 0x32
- 47608 026d 05       		.uleb128 0x5
- 47609 026e 00       		.byte	0x0
- 47610 026f 31       		.uleb128 0x31
- 47611 0270 13       		.uleb128 0x13
- 47612 0271 02       		.uleb128 0x2
- 47613 0272 0A       		.uleb128 0xa
- 47614 0273 00       		.byte	0x0
- 47615 0274 00       		.byte	0x0
- 47616 0275 33       		.uleb128 0x33
- 47617 0276 0B       		.uleb128 0xb
- 47618 0277 01       		.byte	0x1
- 47619 0278 11       		.uleb128 0x11
- 47620 0279 01       		.uleb128 0x1
- 47621 027a 12       		.uleb128 0x12
- 47622 027b 01       		.uleb128 0x1
- 47623 027c 00       		.byte	0x0
- 47624 027d 00       		.byte	0x0
- 47625 027e 34       		.uleb128 0x34
- 47626 027f 34       		.uleb128 0x34
- 47627 0280 00       		.byte	0x0
- 47628 0281 31       		.uleb128 0x31
- 47629 0282 13       		.uleb128 0x13
- 47630 0283 02       		.uleb128 0x2
- 47631 0284 0A       		.uleb128 0xa
- 47632 0285 00       		.byte	0x0
- 47633 0286 00       		.byte	0x0
- 47634 0287 35       		.uleb128 0x35
- 47635 0288 1D       		.uleb128 0x1d
- 47636 0289 01       		.byte	0x1
- 47637 028a 31       		.uleb128 0x31
- 47638 028b 13       		.uleb128 0x13
- 47639 028c 11       		.uleb128 0x11
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1199
-
-
- 47640 028d 01       		.uleb128 0x1
- 47641 028e 12       		.uleb128 0x12
- 47642 028f 01       		.uleb128 0x1
- 47643 0290 58       		.uleb128 0x58
- 47644 0291 0B       		.uleb128 0xb
- 47645 0292 59       		.uleb128 0x59
- 47646 0293 05       		.uleb128 0x5
- 47647 0294 00       		.byte	0x0
- 47648 0295 00       		.byte	0x0
- 47649 0296 36       		.uleb128 0x36
- 47650 0297 0B       		.uleb128 0xb
- 47651 0298 01       		.byte	0x1
- 47652 0299 11       		.uleb128 0x11
- 47653 029a 01       		.uleb128 0x1
- 47654 029b 12       		.uleb128 0x12
- 47655 029c 01       		.uleb128 0x1
- 47656 029d 01       		.uleb128 0x1
- 47657 029e 13       		.uleb128 0x13
- 47658 029f 00       		.byte	0x0
- 47659 02a0 00       		.byte	0x0
- 47660 02a1 37       		.uleb128 0x37
- 47661 02a2 34       		.uleb128 0x34
- 47662 02a3 00       		.byte	0x0
- 47663 02a4 03       		.uleb128 0x3
- 47664 02a5 08       		.uleb128 0x8
- 47665 02a6 3A       		.uleb128 0x3a
- 47666 02a7 0B       		.uleb128 0xb
- 47667 02a8 3B       		.uleb128 0x3b
- 47668 02a9 05       		.uleb128 0x5
- 47669 02aa 49       		.uleb128 0x49
- 47670 02ab 13       		.uleb128 0x13
- 47671 02ac 02       		.uleb128 0x2
- 47672 02ad 0A       		.uleb128 0xa
- 47673 02ae 00       		.byte	0x0
- 47674 02af 00       		.byte	0x0
- 47675 02b0 38       		.uleb128 0x38
- 47676 02b1 2E       		.uleb128 0x2e
- 47677 02b2 01       		.byte	0x1
- 47678 02b3 03       		.uleb128 0x3
- 47679 02b4 0E       		.uleb128 0xe
- 47680 02b5 3A       		.uleb128 0x3a
- 47681 02b6 0B       		.uleb128 0xb
- 47682 02b7 3B       		.uleb128 0x3b
- 47683 02b8 05       		.uleb128 0x5
- 47684 02b9 27       		.uleb128 0x27
- 47685 02ba 0C       		.uleb128 0xc
- 47686 02bb 49       		.uleb128 0x49
- 47687 02bc 13       		.uleb128 0x13
- 47688 02bd 11       		.uleb128 0x11
- 47689 02be 01       		.uleb128 0x1
- 47690 02bf 12       		.uleb128 0x12
- 47691 02c0 01       		.uleb128 0x1
- 47692 02c1 40       		.uleb128 0x40
- 47693 02c2 06       		.uleb128 0x6
- 47694 02c3 01       		.uleb128 0x1
- 47695 02c4 13       		.uleb128 0x13
- 47696 02c5 00       		.byte	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1200
-
-
- 47697 02c6 00       		.byte	0x0
- 47698 02c7 39       		.uleb128 0x39
- 47699 02c8 2E       		.uleb128 0x2e
- 47700 02c9 00       		.byte	0x0
- 47701 02ca 03       		.uleb128 0x3
- 47702 02cb 0E       		.uleb128 0xe
- 47703 02cc 3A       		.uleb128 0x3a
- 47704 02cd 0B       		.uleb128 0xb
- 47705 02ce 3B       		.uleb128 0x3b
- 47706 02cf 05       		.uleb128 0x5
- 47707 02d0 49       		.uleb128 0x49
- 47708 02d1 13       		.uleb128 0x13
- 47709 02d2 11       		.uleb128 0x11
- 47710 02d3 01       		.uleb128 0x1
- 47711 02d4 12       		.uleb128 0x12
- 47712 02d5 01       		.uleb128 0x1
- 47713 02d6 40       		.uleb128 0x40
- 47714 02d7 06       		.uleb128 0x6
- 47715 02d8 00       		.byte	0x0
- 47716 02d9 00       		.byte	0x0
- 47717 02da 3A       		.uleb128 0x3a
- 47718 02db 34       		.uleb128 0x34
- 47719 02dc 00       		.byte	0x0
- 47720 02dd 03       		.uleb128 0x3
- 47721 02de 0E       		.uleb128 0xe
- 47722 02df 49       		.uleb128 0x49
- 47723 02e0 13       		.uleb128 0x13
- 47724 02e1 34       		.uleb128 0x34
- 47725 02e2 0C       		.uleb128 0xc
- 47726 02e3 02       		.uleb128 0x2
- 47727 02e4 0A       		.uleb128 0xa
- 47728 02e5 00       		.byte	0x0
- 47729 02e6 00       		.byte	0x0
- 47730 02e7 3B       		.uleb128 0x3b
- 47731 02e8 2E       		.uleb128 0x2e
- 47732 02e9 01       		.byte	0x1
- 47733 02ea 03       		.uleb128 0x3
- 47734 02eb 0E       		.uleb128 0xe
- 47735 02ec 3A       		.uleb128 0x3a
- 47736 02ed 0B       		.uleb128 0xb
- 47737 02ee 3B       		.uleb128 0x3b
- 47738 02ef 05       		.uleb128 0x5
- 47739 02f0 49       		.uleb128 0x49
- 47740 02f1 13       		.uleb128 0x13
- 47741 02f2 11       		.uleb128 0x11
- 47742 02f3 01       		.uleb128 0x1
- 47743 02f4 12       		.uleb128 0x12
- 47744 02f5 01       		.uleb128 0x1
- 47745 02f6 40       		.uleb128 0x40
- 47746 02f7 06       		.uleb128 0x6
- 47747 02f8 01       		.uleb128 0x1
- 47748 02f9 13       		.uleb128 0x13
- 47749 02fa 00       		.byte	0x0
- 47750 02fb 00       		.byte	0x0
- 47751 02fc 3C       		.uleb128 0x3c
- 47752 02fd 2E       		.uleb128 0x2e
- 47753 02fe 01       		.byte	0x1
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1201
-
-
- 47754 02ff 3F       		.uleb128 0x3f
- 47755 0300 0C       		.uleb128 0xc
- 47756 0301 03       		.uleb128 0x3
- 47757 0302 0E       		.uleb128 0xe
- 47758 0303 3A       		.uleb128 0x3a
- 47759 0304 0B       		.uleb128 0xb
- 47760 0305 3B       		.uleb128 0x3b
- 47761 0306 05       		.uleb128 0x5
- 47762 0307 27       		.uleb128 0x27
- 47763 0308 0C       		.uleb128 0xc
- 47764 0309 49       		.uleb128 0x49
- 47765 030a 13       		.uleb128 0x13
- 47766 030b 11       		.uleb128 0x11
- 47767 030c 01       		.uleb128 0x1
- 47768 030d 12       		.uleb128 0x12
- 47769 030e 01       		.uleb128 0x1
- 47770 030f 40       		.uleb128 0x40
- 47771 0310 06       		.uleb128 0x6
- 47772 0311 01       		.uleb128 0x1
- 47773 0312 13       		.uleb128 0x13
- 47774 0313 00       		.byte	0x0
- 47775 0314 00       		.byte	0x0
- 47776 0315 3D       		.uleb128 0x3d
- 47777 0316 34       		.uleb128 0x34
- 47778 0317 00       		.byte	0x0
- 47779 0318 03       		.uleb128 0x3
- 47780 0319 0E       		.uleb128 0xe
- 47781 031a 3A       		.uleb128 0x3a
- 47782 031b 0B       		.uleb128 0xb
- 47783 031c 3B       		.uleb128 0x3b
- 47784 031d 0B       		.uleb128 0xb
- 47785 031e 49       		.uleb128 0x49
- 47786 031f 13       		.uleb128 0x13
- 47787 0320 02       		.uleb128 0x2
- 47788 0321 0A       		.uleb128 0xa
- 47789 0322 00       		.byte	0x0
- 47790 0323 00       		.byte	0x0
- 47791 0324 00       		.byte	0x0
- 47792              		.section	.debug_pubnames,"", at progbits
- 47793 0000 29000000 		.long	0x29
- 47794 0004 0200     		.value	0x2
- 47795 0006 00000000 		.long	.Ldebug_info0
- 47796 000a 99D50000 		.long	0xd599
- 47797 000e 7ED30000 		.long	0xd37e
- 47798 0012 4B414553 		.string	"KAESBlockCipherVecMake"
- 47798      426C6F63 
- 47798      6B436970 
- 47798      68657256 
- 47798      65634D61 
- 47799 0029 00000000 		.long	0x0
- 47800              		.section	.debug_aranges,"", at progbits
- 47801 0000 2C000000 		.long	0x2c
- 47802 0004 0200     		.value	0x2
- 47803 0006 00000000 		.long	.Ldebug_info0
- 47804 000a 08       		.byte	0x8
- 47805 000b 00       		.byte	0x0
- 47806 000c 0000     		.value	0x0
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1202
-
-
- 47807 000e 0000     		.value	0x0
- 47808 0010 00000000 		.quad	.Ltext0
- 47808      00000000 
- 47809 0018 2C7D0100 		.quad	.Letext0-.Ltext0
- 47809      00000000 
- 47810 0020 00000000 		.quad	0x0
- 47810      00000000 
- 47811 0028 00000000 		.quad	0x0
- 47811      00000000 
- 47812              		.section	.debug_str,"MS", at progbits,1
- 47813              	.LASF69:
- 47814 0000 43697068 		.string	"CipherVec_AES_u"
- 47814      65725665 
- 47814      635F4145 
- 47814      535F7500 
- 47815              	.LASF287:
- 47816 0010 7263496E 		.string	"rcInsufficient"
- 47816      73756666 
- 47816      69636965 
- 47816      6E7400
- 47817              	.LASF304:
- 47818 001f 72634475 		.string	"rcDuplicate"
- 47818      706C6963 
- 47818      61746500 
- 47819              	.LASF349:
- 47820 002b 4B414553 		.string	"KAESBlockCipherVecStateMerge1"
- 47820      426C6F63 
- 47820      6B436970 
- 47820      68657256 
- 47820      65635374 
- 47821              	.LASF107:
- 47822 0049 7263436F 		.string	"rcCondition"
- 47822      6E646974 
- 47822      696F6E00 
- 47823              	.LASF221:
- 47824 0055 7263456E 		.string	"rcEncrypting"
- 47824      63727970 
- 47824      74696E67 
- 47824      00
- 47825              	.LASF334:
- 47826 0062 4B414553 		.string	"KAESBlockCipherVecVecSub"
- 47826      426C6F63 
- 47826      6B436970 
- 47826      68657256 
- 47826      65635665 
- 47827              	.LASF360:
- 47828 007b 4B414553 		.string	"KAESBlockCipherVecEqInvKeyExpansion"
- 47828      426C6F63 
- 47828      6B436970 
- 47828      68657256 
- 47828      65634571 
- 47829              	.LASF180:
- 47830 009f 72634F70 		.string	"rcOpening"
- 47830      656E696E 
- 47830      6700
- 47831              	.LASF188:
- 47832 00a9 72635065 		.string	"rcPersisting"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1203
-
-
- 47832      72736973 
- 47832      74696E67 
- 47832      00
- 47833              	.LASF226:
- 47834 00b6 72635365 		.string	"rcSending"
- 47834      6E64696E 
- 47834      6700
- 47835              	.LASF220:
- 47836 00c0 72634170 		.string	"rcAppending"
- 47836      70656E64 
- 47836      696E6700 
- 47837              	.LASF206:
- 47838 00cc 72635369 		.string	"rcSignaling"
- 47838      676E616C 
- 47838      696E6700 
- 47839              	.LASF19:
- 47840 00d8 4442475F 		.string	"DBG_BLAST"
- 47840      424C4153 
- 47840      5400
- 47841              	.LASF262:
- 47842 00e2 72635369 		.string	"rcSignalSet"
- 47842      676E616C 
- 47842      53657400 
- 47843              	.LASF208:
- 47844 00ee 72634174 		.string	"rcAttaching"
- 47844      74616368 
- 47844      696E6700 
- 47845              	.LASF140:
- 47846 00fa 72635461 		.string	"rcTable"
- 47846      626C6500 
- 47847              	.LASF374:
- 47848 0102 4B414553 		.string	"KAESBlockCipherVecCipher"
- 47848      426C6F63 
- 47848      6B436970 
- 47848      68657256 
- 47848      65634369 
- 47849              	.LASF407:
- 47850 011b 6C6F5F66 		.string	"lo_filter"
- 47850      696C7465 
- 47850      7200
- 47851              	.LASF104:
- 47852 0125 72634275 		.string	"rcBuffer"
- 47852      66666572 
- 47852      00
- 47853              	.LASF236:
- 47854 012e 72634D65 		.string	"rcMemory"
- 47854      6D6F7279 
- 47854      00
- 47855              	.LASF169:
- 47856 0137 72634C6F 		.string	"rcLocking"
- 47856      636B696E 
- 47856      6700
- 47857              	.LASF204:
- 47858 0141 72635061 		.string	"rcParsing"
- 47858      7273696E 
- 47858      6700
- 47859              	.LASF233:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1204
-
-
- 47860 014b 72635365 		.string	"rcSelf"
- 47860      6C6600
- 47861              	.LASF126:
- 47862 0152 72634D65 		.string	"rcMetadata"
- 47862      74616461 
- 47862      746100
- 47863              	.LASF249:
- 47864 015d 72634172 		.string	"rcArcHardLink"
- 47864      63486172 
- 47864      644C696E 
- 47864      6B00
- 47865              	.LASF386:
- 47866 016b 4B414553 		.string	"KAESBlockCipherVecSetEncryptKey"
- 47866      426C6F63 
- 47866      6B436970 
- 47866      68657256 
- 47866      65635365 
- 47867              	.LASF75:
- 47868 018b 7263436F 		.string	"rcCont"
- 47868      6E7400
- 47869              	.LASF257:
- 47870 0192 72634368 		.string	"rcChecksum"
- 47870      65636B73 
- 47870      756D00
- 47871              	.LASF391:
- 47872 019d 5F5F6675 		.string	"__func__"
- 47872      6E635F5F 
- 47872      00
- 47873              	.LASF301:
- 47874 01a6 7263546F 		.string	"rcTooShort"
- 47874      6F53686F 
- 47874      727400
- 47875              	.LASF131:
- 47876 01b1 72635061 		.string	"rcPagemap"
- 47876      67656D61 
- 47876      7000
- 47877              	.LASF83:
- 47878 01bb 72634170 		.string	"rcApp"
- 47878      7000
- 47879              	.LASF114:
- 47880 01c1 72634669 		.string	"rcFileDesc"
- 47880      6C654465 
- 47880      736300
- 47881              	.LASF253:
- 47882 01cc 72634974 		.string	"rcItem"
- 47882      656D00
- 47883              	.LASF354:
- 47884 01d3 4B414553 		.string	"KAESBlockCipherVecKeyExpansion256"
- 47884      426C6F63 
- 47884      6B436970 
- 47884      68657256 
- 47884      65634B65 
- 47885              	.LASF145:
- 47886 01f5 72635472 		.string	"rcTrie"
- 47886      696500
- 47887              	.LASF86:
- 47888 01fc 72634C61 		.string	"rcLastModule_v1_0"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1205
-
-
- 47888      73744D6F 
- 47888      64756C65 
- 47888      5F76315F 
- 47888      3000
- 47889              	.LASF66:
- 47890 020e 73746174 		.string	"state"
- 47890      6500
- 47891              	.LASF355:
- 47892 0214 4B414553 		.string	"KAESBlockCipherVecInvMixColumns"
- 47892      426C6F63 
- 47892      6B436970 
- 47892      68657256 
- 47892      6563496E 
- 47893              	.LASF244:
- 47894 0234 72634279 		.string	"rcByteOrder"
- 47894      74654F72 
- 47894      64657200 
- 47895              	.LASF63:
- 47896 0240 4145534B 		.string	"AESKeySchedule"
- 47896      65795363 
- 47896      68656475 
- 47896      6C6500
- 47897              	.LASF64:
- 47898 024f 726F756E 		.string	"round_keys"
- 47898      645F6B65 
- 47898      797300
- 47899              	.LASF162:
- 47900 025a 7263436F 		.string	"rcConstructing"
- 47900      6E737472 
- 47900      75637469 
- 47900      6E6700
- 47901              	.LASF10:
- 47902 0269 72635F74 		.string	"rc_t"
- 47902      00
- 47903              	.LASF238:
- 47904 026e 7263466F 		.string	"rcFormat"
- 47904      726D6174 
- 47904      00
- 47905              	.LASF296:
- 47906 0277 7263556E 		.string	"rcUnauthorized"
- 47906      61757468 
- 47906      6F72697A 
- 47906      656400
- 47907              	.LASF335:
- 47908 0286 4B414553 		.string	"KAESBlockCipherVecRotBytesLeft"
- 47908      426C6F63 
- 47908      6B436970 
- 47908      68657256 
- 47908      6563526F 
- 47909              	.LASF368:
- 47910 02a5 6D737461 		.string	"mstate"
- 47910      746500
- 47911              	.LASF176:
- 47912 02ac 72635265 		.string	"rcRemoving"
- 47912      6D6F7669 
- 47912      6E6700
- 47913              	.LASF89:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1206
-
-
- 47914 02b7 72634B72 		.string	"rcKrypto"
- 47914      7970746F 
- 47914      00
- 47915              	.LASF167:
- 47916 02c0 72635669 		.string	"rcVisiting"
- 47916      73697469 
- 47916      6E6700
- 47917              	.LASF97:
- 47918 02cb 72634172 		.string	"rcArc"
- 47918      6300
- 47919              	.LASF72:
- 47920 02d1 72634578 		.string	"rcExe"
- 47920      6500
- 47921              	.LASF302:
- 47922 02d7 7263546F 		.string	"rcTooLong"
- 47922      6F4C6F6E 
- 47922      6700
- 47923              	.LASF230:
- 47924 02e1 52434F62 		.string	"RCObject"
- 47924      6A656374 
- 47924      00
- 47925              	.LASF240:
- 47926 02ea 7263496E 		.string	"rcInterface"
- 47926      74657266 
- 47926      61636500 
- 47927              	.LASF409:
- 47928 02f6 4B414553 		.string	"KAESBlockCipherVecFFtable"
- 47928      426C6F63 
- 47928      6B436970 
- 47928      68657256 
- 47928      65634646 
- 47929              	.LASF168:
- 47930 0310 72635265 		.string	"rcResolving"
- 47930      736F6C76 
- 47930      696E6700 
- 47931              	.LASF110:
- 47932 031c 72634469 		.string	"rcDirectory"
- 47932      72656374 
- 47932      6F727900 
- 47933              	.LASF2:
- 47934 0328 6C6F6E67 		.string	"long int"
- 47934      20696E74 
- 47934      00
- 47935              	.LASF58:
- 47936 0331 41455357 		.string	"AESWord"
- 47936      6F726400 
- 47937              	.LASF198:
- 47938 0339 72635661 		.string	"rcValidating"
- 47938      6C696461 
- 47938      74696E67 
- 47938      00
- 47939              	.LASF327:
- 47940 0346 4B414553 		.string	"KAESBlockCipherVecVecAnd"
- 47940      426C6F63 
- 47940      6B436970 
- 47940      68657256 
- 47940      65635665 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1207
-
-
- 47941              	.LASF100:
- 47942 035f 72634172 		.string	"rcArgv"
- 47942      677600
- 47943              	.LASF76:
- 47944 0366 72634353 		.string	"rcCS"
- 47944      00
- 47945              	.LASF157:
- 47946 036b 72635572 		.string	"rcUri"
- 47946      6900
- 47947              	.LASF179:
- 47948 0371 72634372 		.string	"rcCreating"
- 47948      65617469 
- 47948      6E6700
- 47949              	.LASF343:
- 47950 037c 6B676173 		.string	"kgastate"
- 47950      74617465 
- 47950      00
- 47951              	.LASF337:
- 47952 0385 4B414553 		.string	"KAESBlockCipherVecVecXor"
- 47952      426C6F63 
- 47952      6B436970 
- 47952      68657256 
- 47952      65635665 
- 47953              	.LASF52:
- 47954 039e 656E6372 		.string	"encrypt"
- 47954      79707400 
- 47955              	.LASF405:
- 47956 03a6 4B414553 		.string	"KAESBlockCipherVecRijndaelSBoxV"
- 47956      426C6F63 
- 47956      6B436970 
- 47956      68657256 
- 47956      65635269 
- 47957              	.LASF16:
- 47958 03c6 76313238 		.string	"v128_u8_t"
- 47958      5F75385F 
- 47958      7400
- 47959              	.LASF24:
- 47960 03d0 4442475F 		.string	"DBG_XML"
- 47960      584D4C00 
- 47961              	.LASF341:
- 47962 03d8 73686966 		.string	"shift"
- 47962      7400
- 47963              	.LASF36:
- 47964 03de 4442475F 		.string	"DBG_MOD_COUNT"
- 47964      4D4F445F 
- 47964      434F554E 
- 47964      5400
- 47965              	.LASF81:
- 47966 03ec 72634442 		.string	"rcDB"
- 47966      00
- 47967              	.LASF375:
- 47968 03f1 4B414553 		.string	"KAESBlockCipherVecEqInvFirstRound"
- 47968      426C6F63 
- 47968      6B436970 
- 47968      68657256 
- 47968      65634571 
- 47969              	.LASF259:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1208
-
-
- 47970 0413 7263436F 		.string	"rcConnection"
- 47970      6E6E6563 
- 47970      74696F6E 
- 47970      00
- 47971              	.LASF127:
- 47972 0420 72634D67 		.string	"rcMgr"
- 47972      7200
- 47973              	.LASF289:
- 47974 0426 72635669 		.string	"rcViolated"
- 47974      6F6C6174 
- 47974      656400
- 47975              	.LASF364:
- 47976 0431 4B414553 		.string	"KAESBlockCipherVecFirstRound"
- 47976      426C6F63 
- 47976      6B436970 
- 47976      68657256 
- 47976      65634669 
- 47977              	.LASF222:
- 47978 044e 72634465 		.string	"rcDecrypting"
- 47978      63727970 
- 47978      74696E67 
- 47978      00
- 47979              	.LASF0:
- 47980 045b 7369676E 		.string	"signed char"
- 47980      65642063 
- 47980      68617200 
- 47981              	.LASF5:
- 47982 0467 75696E74 		.string	"uint8_t"
- 47982      385F7400 
- 47983              	.LASF105:
- 47984 046f 72634368 		.string	"rcChar"
- 47984      617200
- 47985              	.LASF90:
- 47986 0476 72635244 		.string	"rcRDBMS"
- 47986      424D5300 
- 47987              	.LASF379:
- 47988 047e 496E7653 		.string	"InvShiftRowTable"
- 47988      68696674 
- 47988      526F7754 
- 47988      61626C65 
- 47988      00
- 47989              	.LASF199:
- 47990 048f 72634578 		.string	"rcExecuting"
- 47990      65637574 
- 47990      696E6700 
- 47991              	.LASF390:
- 47992 049b 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 47992      45545459 
- 47992      5F46554E 
- 47992      4354494F 
- 47992      4E5F5F00 
- 47993              	.LASF17:
- 47994 04af 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 47994      4D4F445F 
- 47994      4E4F545F 
- 47994      464F554E 
- 47994      4400
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1209
-
-
- 47995              	.LASF323:
- 47996 04c1 636F6C75 		.string	"column"
- 47996      6D6E00
- 47997              	.LASF186:
- 47998 04c8 72635265 		.string	"rcReverting"
- 47998      76657274 
- 47998      696E6700 
- 47999              	.LASF102:
- 48000 04d4 72634261 		.string	"rcBarrier"
- 48000      72726965 
- 48000      7200
- 48001              	.LASF286:
- 48002 04de 72634578 		.string	"rcExhausted"
- 48002      68617573 
- 48002      74656400 
- 48003              	.LASF3:
- 48004 04ea 756E7369 		.string	"unsigned char"
- 48004      676E6564 
- 48004      20636861 
- 48004      7200
- 48005              	.LASF159:
- 48006 04f8 5243436F 		.string	"RCContext"
- 48006      6E746578 
- 48006      7400
- 48007              	.LASF122:
- 48008 0502 72634C6F 		.string	"rcLock"
- 48008      636B00
- 48009              	.LASF275:
- 48010 0509 72634261 		.string	"rcBadVersion"
- 48010      64566572 
- 48010      73696F6E 
- 48010      00
- 48011              	.LASF276:
- 48012 0516 72634465 		.string	"rcDestroyed"
- 48012      7374726F 
- 48012      79656400 
- 48013              	.LASF139:
- 48014 0522 72635374 		.string	"rcString"
- 48014      72696E67 
- 48014      00
- 48015              	.LASF101:
- 48016 052b 72634174 		.string	"rcAttr"
- 48016      747200
- 48017              	.LASF123:
- 48018 0532 72634C6F 		.string	"rcLog"
- 48018      6700
- 48019              	.LASF399:
- 48020 0538 6E65775F 		.string	"new_obj"
- 48020      6F626A00 
- 48021              	.LASF20:
- 48022 0540 4442475F 		.string	"DBG_KDB"
- 48022      4B444200 
- 48023              	.LASF227:
- 48024 0548 72635072 		.string	"rcProcessing"
- 48024      6F636573 
- 48024      73696E67 
- 48024      00
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1210
-
-
- 48025              	.LASF77:
- 48026 0555 72634646 		.string	"rcFF"
- 48026      00
- 48027              	.LASF398:
- 48028 055a 5F426F6F 		.string	"_Bool"
- 48028      6C00
- 48029              	.LASF78:
- 48030 0560 72634653 		.string	"rcFS"
- 48030      00
- 48031              	.LASF61:
- 48032 0565 62797465 		.string	"bytes"
- 48032      7300
- 48033              	.LASF165:
- 48034 056b 72634163 		.string	"rcAccessing"
- 48034      63657373 
- 48034      696E6700 
- 48035              	.LASF283:
- 48036 0577 7263496E 		.string	"rcInterrupted"
- 48036      74657272 
- 48036      75707465 
- 48036      6400
- 48037              	.LASF291:
- 48038 0585 72634E6F 		.string	"rcNotFound"
- 48038      74466F75 
- 48038      6E6400
- 48039              	.LASF336:
- 48040 0590 53686966 		.string	"ShiftRowTable"
- 48040      74526F77 
- 48040      5461626C 
- 48040      6500
- 48041              	.LASF11:
- 48042 059e 63686172 		.string	"char"
- 48042      00
- 48043              	.LASF129:
- 48044 05a3 72634E6F 		.string	"rcNode"
- 48044      646500
- 48045              	.LASF367:
- 48046 05aa 4B414553 		.string	"KAESBlockCipherVecMiddleRound"
- 48046      426C6F63 
- 48046      6B436970 
- 48046      68657256 
- 48046      65634D69 
- 48047              	.LASF34:
- 48048 05c8 4442475F 		.string	"DBG_AES"
- 48048      41455300 
- 48049              	.LASF260:
- 48050 05d0 72634572 		.string	"rcError"
- 48050      726F7200 
- 48051              	.LASF346:
- 48052 05d8 72636F6E 		.string	"rconw"
- 48052      7700
- 48053              	.LASF348:
- 48054 05de 4B414553 		.string	"KAESBlockCipherVecRotWord"
- 48054      426C6F63 
- 48054      6B436970 
- 48054      68657256 
- 48054      6563526F 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1211
-
-
- 48055              	.LASF177:
- 48056 05f8 7263436C 		.string	"rcClearing"
- 48056      65617269 
- 48056      6E6700
- 48057              	.LASF235:
- 48058 0603 72634F66 		.string	"rcOffset"
- 48058      66736574 
- 48058      00
- 48059              	.LASF181:
- 48060 060c 7263436C 		.string	"rcClosing"
- 48060      6F73696E 
- 48060      6700
- 48061              	.LASF113:
- 48062 0616 72634669 		.string	"rcFile"
- 48062      6C6500
- 48063              	.LASF142:
- 48064 061d 72635469 		.string	"rcTimeout"
- 48064      6D656F75 
- 48064      7400
- 48065              	.LASF130:
- 48066 0627 72634E75 		.string	"rcNumeral"
- 48066      6D657261 
- 48066      6C00
- 48067              	.LASF207:
- 48068 0631 72635761 		.string	"rcWaiting"
- 48068      6974696E 
- 48068      6700
- 48069              	.LASF366:
- 48070 063b 726F756E 		.string	"round_key"
- 48070      645F6B65 
- 48070      7900
- 48071              	.LASF211:
- 48072 0645 72634650 		.string	"rcFPCoding"
- 48072      436F6469 
- 48072      6E6700
- 48073              	.LASF344:
- 48074 0650 4B414553 		.string	"KAESBlockCipherVecStateShiftRight64"
- 48074      426C6F63 
- 48074      6B436970 
- 48074      68657256 
- 48074      65635374 
- 48075              	.LASF263:
- 48076 0674 72635369 		.string	"rcSize"
- 48076      7A6500
- 48077              	.LASF248:
- 48078 067b 72634469 		.string	"rcDirEntry"
- 48078      72456E74 
- 48078      727900
- 48079              	.LASF200:
- 48080 0686 72634875 		.string	"rcHuffmanCoding"
- 48080      66666D61 
- 48080      6E436F64 
- 48080      696E6700 
- 48081              	.LASF29:
- 48082 0696 4442475F 		.string	"DBG_KFG"
- 48082      4B464700 
- 48083              	.LASF67:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1212
-
-
- 48084 069e 636F6C75 		.string	"columns"
- 48084      6D6E7300 
- 48085              	.LASF281:
- 48086 06a6 72634275 		.string	"rcBusy"
- 48086      737900
- 48087              	.LASF26:
- 48088 06ad 4442475F 		.string	"DBG_SRA"
- 48088      53524100 
- 48089              	.LASF239:
- 48090 06b5 72635472 		.string	"rcTransfer"
- 48090      616E7366 
- 48090      657200
- 48091              	.LASF23:
- 48092 06c0 4442475F 		.string	"DBG_KFS"
- 48092      4B465300 
- 48093              	.LASF194:
- 48094 06c8 72635061 		.string	"rcPacking"
- 48094      636B696E 
- 48094      6700
- 48095              	.LASF190:
- 48096 06d2 7263436F 		.string	"rcCopying"
- 48096      7079696E 
- 48096      6700
- 48097              	.LASF416:
- 48098 06dc 4B414553 		.string	"KAESBlockCipherVecMake"
- 48098      426C6F63 
- 48098      6B436970 
- 48098      68657256 
- 48098      65634D61 
- 48099              	.LASF197:
- 48100 06f3 72634465 		.string	"rcDecoding"
- 48100      636F6469 
- 48100      6E6700
- 48101              	.LASF170:
- 48102 06fe 7263556E 		.string	"rcUnlocking"
- 48102      6C6F636B 
- 48102      696E6700 
- 48103              	.LASF356:
- 48104 070a 4B414553 		.string	"KAESBlockCipherVecFFmul02"
- 48104      426C6F63 
- 48104      6B436970 
- 48104      68657256 
- 48104      65634646 
- 48105              	.LASF55:
- 48106 0724 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 48106      636B4369 
- 48106      70686572 
- 48106      5665635F 
- 48106      76745F76 
- 48107              	.LASF22:
- 48108 073a 4442475F 		.string	"DBG_LEGREF"
- 48108      4C454752 
- 48108      454600
- 48109              	.LASF359:
- 48110 0745 4B414553 		.string	"KAESBlockCipherVecFFmul08"
- 48110      426C6F63 
- 48110      6B436970 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1213
-
-
- 48110      68657256 
- 48110      65634646 
- 48111              	.LASF171:
- 48112 075f 72635265 		.string	"rcRenaming"
- 48112      6E616D69 
- 48112      6E6700
- 48113              	.LASF388:
- 48114 076a 75736572 		.string	"user_key"
- 48114      5F6B6579 
- 48114      00
- 48115              	.LASF395:
- 48116 0773 4B414553 		.string	"KAESBlockCipherVecDecrypt"
- 48116      426C6F63 
- 48116      6B436970 
- 48116      68657256 
- 48116      65634465 
- 48117              	.LASF241:
- 48118 078d 72634964 		.string	"rcId"
- 48118      00
- 48119              	.LASF154:
- 48120 0792 7263436D 		.string	"rcCmd"
- 48120      6400
- 48121              	.LASF32:
- 48122 0798 4442475F 		.string	"DBG_LOADLIB"
- 48122      4C4F4144 
- 48122      4C494200 
- 48123              	.LASF350:
- 48124 07a4 4B414553 		.string	"KAESBlockCipherVecStateMerge2"
- 48124      426C6F63 
- 48124      6B436970 
- 48124      68657256 
- 48124      65635374 
- 48125              	.LASF293:
- 48126 07c2 7263556E 		.string	"rcUnlocked"
- 48126      6C6F636B 
- 48126      656400
- 48127              	.LASF94:
- 48128 07cd 52434D6F 		.string	"RCModule"
- 48128      64756C65 
- 48128      00
- 48129              	.LASF255:
- 48130 07d6 7263456E 		.string	"rcEncryption"
- 48130      63727970 
- 48130      74696F6E 
- 48130      00
- 48131              	.LASF290:
- 48132 07e3 72634578 		.string	"rcExists"
- 48132      69737473 
- 48132      00
- 48133              	.LASF43:
- 48134 07ec 43697068 		.string	"CipherVec"
- 48134      65725665 
- 48134      6300
- 48135              	.LASF396:
- 48136 07f6 4B414553 		.string	"KAESBlockCipherVecProcessorSupport"
- 48136      426C6F63 
- 48136      6B436970 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1214
-
-
- 48136      68657256 
- 48136      65635072 
- 48137              	.LASF309:
- 48138 0819 72634F70 		.string	"rcOpen"
- 48138      656E00
- 48139              	.LASF295:
- 48140 0820 72634465 		.string	"rcDeadlock"
- 48140      61646C6F 
- 48140      636B00
- 48141              	.LASF340:
- 48142 082b 4B414553 		.string	"KAESBlockCipherVecShiftXorColumns"
- 48142      426C6F63 
- 48142      6B436970 
- 48142      68657256 
- 48142      65635368 
- 48143              	.LASF232:
- 48144 084d 72634C69 		.string	"rcLink"
- 48144      6E6B00
- 48145              	.LASF219:
- 48146 0854 7263466C 		.string	"rcFlushing"
- 48146      75736869 
- 48146      6E6700
- 48147              	.LASF267:
- 48148 085f 72634E6F 		.string	"rcNoErr"
- 48148      45727200 
- 48149              	.LASF400:
- 48150 0867 7665635F 		.string	"vec_00"
- 48150      303000
- 48151              	.LASF401:
- 48152 086e 7665635F 		.string	"vec_01"
- 48152      303100
- 48153              	.LASF246:
- 48154 0875 72635461 		.string	"rcTag"
- 48154      6700
- 48155              	.LASF28:
- 48156 087b 4442475F 		.string	"DBG_ALIGN"
- 48156      414C4947 
- 48156      4E00
- 48157              	.LASF210:
- 48158 0885 72634C6F 		.string	"rcLogging"
- 48158      6767696E 
- 48158      6700
- 48159              	.LASF410:
- 48160 088f 4B414553 		.string	"KAESBlockCipherVecRcon"
- 48160      426C6F63 
- 48160      6B436970 
- 48160      68657256 
- 48160      65635263 
- 48161              	.LASF303:
- 48162 08a6 7263546F 		.string	"rcTooBig"
- 48162      6F426967 
- 48162      00
- 48163              	.LASF381:
- 48164 08af 4B414553 		.string	"KAESBlockCipherVecEqInvCipher"
- 48164      426C6F63 
- 48164      6B436970 
- 48164      68657256 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1215
-
-
- 48164      65634571 
- 48165              	.LASF147:
- 48166 08cd 72635665 		.string	"rcVector"
- 48166      63746F72 
- 48166      00
- 48167              	.LASF182:
- 48168 08d6 72635265 		.string	"rcResizing"
- 48168      73697A69 
- 48168      6E6700
- 48169              	.LASF156:
- 48170 08e1 72635175 		.string	"rcQuery"
- 48170      65727900 
- 48171              	.LASF378:
- 48172 08e9 4B414553 		.string	"KAESBlockCipherVecInvShiftRows"
- 48172      426C6F63 
- 48172      6B436970 
- 48172      68657256 
- 48172      6563496E 
- 48173              	.LASF9:
- 48174 0908 6C6F6E67 		.string	"long unsigned int"
- 48174      20756E73 
- 48174      69676E65 
- 48174      6420696E 
- 48174      7400
- 48175              	.LASF288:
- 48176 091a 72634578 		.string	"rcExcessive"
- 48176      63657373 
- 48176      69766500 
- 48177              	.LASF216:
- 48178 0926 72634576 		.string	"rcEvaluating"
- 48178      616C7561 
- 48178      74696E67 
- 48178      00
- 48179              	.LASF153:
- 48180 0933 7263526E 		.string	"rcRng"
- 48180      6700
- 48181              	.LASF161:
- 48182 0939 72634361 		.string	"rcCasting"
- 48182      7374696E 
- 48182      6700
- 48183              	.LASF383:
- 48184 0943 73656C66 		.string	"self"
- 48184      00
- 48185              	.LASF121:
- 48186 0948 72634974 		.string	"rcIterator"
- 48186      65726174 
- 48186      6F7200
- 48187              	.LASF365:
- 48188 0953 4B414553 		.string	"KAESBlockCipherVecAddRoundKey"
- 48188      426C6F63 
- 48188      6B436970 
- 48188      68657256 
- 48188      65634164 
- 48189              	.LASF56:
- 48190 0971 4B426C6F 		.string	"KBlockCipherVec"
- 48190      636B4369 
- 48190      70686572 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1216
-
-
- 48190      56656300 
- 48191              	.LASF403:
- 48192 0981 7665635F 		.string	"vec_10"
- 48192      313000
- 48193              	.LASF138:
- 48194 0988 72635374 		.string	"rcStorage"
- 48194      6F726167 
- 48194      6500
- 48195              	.LASF324:
- 48196 0992 77686963 		.string	"which"
- 48196      6800
- 48197              	.LASF382:
- 48198 0998 4B414553 		.string	"KAESBlockCipherVecDestroy"
- 48198      426C6F63 
- 48198      6B436970 
- 48198      68657256 
- 48198      65634465 
- 48199              	.LASF305:
- 48200 09b2 72634F75 		.string	"rcOutOfKDirectory"
- 48200      744F664B 
- 48200      44697265 
- 48200      63746F72 
- 48200      7900
- 48201              	.LASF347:
- 48202 09c4 4B414553 		.string	"KAESBlockCipherVecSubWord"
- 48202      426C6F63 
- 48202      6B436970 
- 48202      68657256 
- 48202      65635375 
- 48203              	.LASF250:
- 48204 09de 7263526F 		.string	"rcRow"
- 48204      7700
- 48205              	.LASF25:
- 48206 09e4 4442475F 		.string	"DBG_VDB"
- 48206      56444200 
- 48207              	.LASF150:
- 48208 09ec 72634C61 		.string	"rcLastTarget_v1_0"
- 48208      73745461 
- 48208      72676574 
- 48208      5F76315F 
- 48208      3000
- 48209              	.LASF158:
- 48210 09fe 72634C61 		.string	"rcLastTarget_v1_1"
- 48210      73745461 
- 48210      72676574 
- 48210      5F76315F 
- 48210      3100
- 48211              	.LASF137:
- 48212 0a10 72635365 		.string	"rcSemaphore"
- 48212      6D617068 
- 48212      6F726500 
- 48213              	.LASF282:
- 48214 0a1c 7263496E 		.string	"rcIncomplete"
- 48214      636F6D70 
- 48214      6C657465 
- 48214      00
- 48215              	.LASF311:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1217
-
-
- 48216 0a29 72634E6F 		.string	"rcNotOpen"
- 48216      744F7065 
- 48216      6E00
- 48217              	.LASF120:
- 48218 0a33 7263496E 		.string	"rcIndex"
- 48218      64657800 
- 48219              	.LASF27:
- 48220 0a3b 4442475F 		.string	"DBG_XARC"
- 48220      58415243 
- 48220      00
- 48221              	.LASF413:
- 48222 0a44 474E5520 		.string	"GNU C 4.4.2"
- 48222      4320342E 
- 48222      342E3200 
- 48223              	.LASF73:
- 48224 0a50 72635275 		.string	"rcRuntime"
- 48224      6E74696D 
- 48224      6500
- 48225              	.LASF112:
- 48226 0a5a 7263586D 		.string	"rcXmlDoc"
- 48226      6C446F63 
- 48226      00
- 48227              	.LASF332:
- 48228 0a63 67617465 		.string	"gate"
- 48228      00
- 48229              	.LASF12:
- 48230 0a68 6C6F6E67 		.string	"long long int"
- 48230      206C6F6E 
- 48230      6720696E 
- 48230      7400
- 48231              	.LASF193:
- 48232 0a76 7263506F 		.string	"rcPositioning"
- 48232      73697469 
- 48232      6F6E696E 
- 48232      6700
- 48233              	.LASF134:
- 48234 0a84 72635175 		.string	"rcQueue"
- 48234      65756500 
- 48235              	.LASF209:
- 48236 0a8c 72634465 		.string	"rcDetaching"
- 48236      74616368 
- 48236      696E6700 
- 48237              	.LASF124:
- 48238 0a98 72634D44 		.string	"rcMD5SumFmt"
- 48238      3553756D 
- 48238      466D7400 
- 48239              	.LASF175:
- 48240 0aa4 7263496E 		.string	"rcInserting"
- 48240      73657274 
- 48240      696E6700 
- 48241              	.LASF223:
- 48242 0ab0 7263436F 		.string	"rcComparing"
- 48242      6D706172 
- 48242      696E6700 
- 48243              	.LASF285:
- 48244 0abc 7263456D 		.string	"rcEmpty"
- 48244      70747900 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1218
-
-
- 48245              	.LASF117:
- 48246 0ac4 7263466F 		.string	"rcFormatter"
- 48246      726D6174 
- 48246      74657200 
- 48247              	.LASF369:
- 48248 0ad0 6D726F75 		.string	"mround_keys"
- 48248      6E645F6B 
- 48248      65797300 
- 48249              	.LASF15:
- 48250 0adc 646F7562 		.string	"double"
- 48250      6C6500
- 48251              	.LASF202:
- 48252 0ae3 72635265 		.string	"rcRegistering"
- 48252      67697374 
- 48252      6572696E 
- 48252      6700
- 48253              	.LASF91:
- 48254 0af1 72634E53 		.string	"rcNS"
- 48254      00
- 48255              	.LASF234:
- 48256 0af6 72635061 		.string	"rcParam"
- 48256      72616D00 
- 48257              	.LASF95:
- 48258 0afe 52435461 		.string	"RCTarget"
- 48258      72676574 
- 48258      00
- 48259              	.LASF370:
- 48260 0b07 4B414553 		.string	"KAESBlockCipherVecShiftRows"
- 48260      426C6F63 
- 48260      6B436970 
- 48260      68657256 
- 48260      65635368 
- 48261              	.LASF41:
- 48262 0b23 4442475F 		.string	"DBG_AES_OBJECT"
- 48262      4145535F 
- 48262      4F424A45 
- 48262      435400
- 48263              	.LASF331:
- 48264 0b32 6D61736B 		.string	"mask"
- 48264      00
- 48265              	.LASF256:
- 48266 0b37 72634372 		.string	"rcCrc"
- 48266      6300
- 48267              	.LASF373:
- 48268 0b3d 62737761 		.string	"bswap_32"
- 48268      705F3332 
- 48268      00
- 48269              	.LASF31:
- 48270 0b46 4442475F 		.string	"DBG_SEARCH"
- 48270      53454152 
- 48270      434800
- 48271              	.LASF84:
- 48272 0b51 7263584D 		.string	"rcXML"
- 48272      4C00
- 48273              	.LASF361:
- 48274 0b57 4B414553 		.string	"KAESBlockCipherVecEqInvKeyExpansion128"
- 48274      426C6F63 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1219
-
-
- 48274      6B436970 
- 48274      68657256 
- 48274      65634571 
- 48275              	.LASF33:
- 48276 0b7e 4442475F 		.string	"DBG_VFS"
- 48276      56465300 
- 48277              	.LASF37:
- 48278 0b86 4442475F 		.string	"DBG_AES_KEYEXP"
- 48278      4145535F 
- 48278      4B455945 
- 48278      585000
- 48279              	.LASF414:
- 48280 0b95 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
- 48280      652F726F 
- 48280      6461726D 
- 48280      65722F73 
- 48280      72615F73 
- 48281              	.LASF13:
- 48282 0bcb 666C6F61 		.string	"float"
- 48282      7400
- 48283              	.LASF178:
- 48284 0bd1 72635570 		.string	"rcUpdating"
- 48284      64617469 
- 48284      6E6700
- 48285              	.LASF384:
- 48286 0bdc 4B414553 		.string	"KAESBlockCipherVecBlockSize"
- 48286      426C6F63 
- 48286      6B436970 
- 48286      68657256 
- 48286      6563426C 
- 48287              	.LASF205:
- 48288 0bf8 7263436F 		.string	"rcConverting"
- 48288      6E766572 
- 48288      74696E67 
- 48288      00
- 48289              	.LASF191:
- 48290 0c05 7263436F 		.string	"rcConcatenating"
- 48290      6E636174 
- 48290      656E6174 
- 48290      696E6700 
- 48291              	.LASF70:
- 48292 0c15 4B426C6F 		.string	"KBlockCipher"
- 48292      636B4369 
- 48292      70686572 
- 48292      00
- 48293              	.LASF148:
- 48294 0c22 72634479 		.string	"rcDylib"
- 48294      6C696200 
- 48295              	.LASF297:
- 48296 0c2a 72635265 		.string	"rcReadonly"
- 48296      61646F6E 
- 48296      6C7900
- 48297              	.LASF392:
- 48298 0c35 4B414553 		.string	"KAESBlockCipherVecSetDecryptKey"
- 48298      426C6F63 
- 48298      6B436970 
- 48298      68657256 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1220
-
-
- 48298      65635365 
- 48299              	.LASF7:
- 48300 0c55 756E7369 		.string	"unsigned int"
- 48300      676E6564 
- 48300      20696E74 
- 48300      00
- 48301              	.LASF68:
- 48302 0c62 67726964 		.string	"grid"
- 48302      00
- 48303              	.LASF40:
- 48304 0c67 4442475F 		.string	"DBG_AES_INVCIPHER"
- 48304      4145535F 
- 48304      494E5643 
- 48304      49504845 
- 48304      5200
- 48305              	.LASF298:
- 48306 0c79 72635772 		.string	"rcWriteonly"
- 48306      6974656F 
- 48306      6E6C7900 
- 48307              	.LASF358:
- 48308 0c85 4B414553 		.string	"KAESBlockCipherVecFFmul04"
- 48308      426C6F63 
- 48308      6B436970 
- 48308      68657256 
- 48308      65634646 
- 48309              	.LASF292:
- 48310 0c9f 72634C6F 		.string	"rcLocked"
- 48310      636B6564 
- 48310      00
- 48311              	.LASF174:
- 48312 0ca8 72635072 		.string	"rcProjecting"
- 48312      6F6A6563 
- 48312      74696E67 
- 48312      00
- 48313              	.LASF79:
- 48314 0cb5 72635053 		.string	"rcPS"
- 48314      00
- 48315              	.LASF264:
- 48316 0cba 72635265 		.string	"rcRefcount"
- 48316      66636F75 
- 48316      6E7400
- 48317              	.LASF99:
- 48318 0cc5 7263546F 		.string	"rcTocEntry"
- 48318      63456E74 
- 48318      727900
- 48319              	.LASF254:
- 48320 0cd0 72634D6F 		.string	"rcMode"
- 48320      646500
- 48321              	.LASF313:
- 48322 0cd7 7263556E 		.string	"rcUnequal"
- 48322      65717561 
- 48322      6C00
- 48323              	.LASF294:
- 48324 0ce1 72634465 		.string	"rcDetached"
- 48324      74616368 
- 48324      656400
- 48325              	.LASF300:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1221
-
-
- 48326 0cec 7263496E 		.string	"rcInPlaceNotAllowed"
- 48326      506C6163 
- 48326      654E6F74 
- 48326      416C6C6F 
- 48326      77656400 
- 48327              	.LASF242:
- 48328 0d00 72635261 		.string	"rcRange"
- 48328      6E676500 
- 48329              	.LASF415:
- 48330 0d08 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 48330      652F726F 
- 48330      6461726D 
- 48330      65722F73 
- 48330      72615F73 
- 48331              	.LASF328:
- 48332 0d50 4B414553 		.string	"KAESBlockCipherVecVecDiv"
- 48332      426C6F63 
- 48332      6B436970 
- 48332      68657256 
- 48332      65635665 
- 48333              	.LASF252:
- 48334 0d69 72634C61 		.string	"rcLastObject_v1_0"
- 48334      73744F62 
- 48334      6A656374 
- 48334      5F76315F 
- 48334      3000
- 48335              	.LASF265:
- 48336 0d7b 72634C61 		.string	"rcLastObject_v1_1"
- 48336      73744F62 
- 48336      6A656374 
- 48336      5F76315F 
- 48336      3100
- 48337              	.LASF371:
- 48338 0d8d 4B414553 		.string	"KAESBlockCipherVecMixColumns"
- 48338      426C6F63 
- 48338      6B436970 
- 48338      68657256 
- 48338      65634D69 
- 48339              	.LASF329:
- 48340 0daa 4B414553 		.string	"KAESBlockCipherVecPackShuffleBytes"
- 48340      426C6F63 
- 48340      6B436970 
- 48340      68657256 
- 48340      65635061 
- 48341              	.LASF218:
- 48342 0dcd 72634C61 		.string	"rcLastContext_v1_0"
- 48342      7374436F 
- 48342      6E746578 
- 48342      745F7631 
- 48342      5F3000
- 48343              	.LASF229:
- 48344 0de0 72634C61 		.string	"rcLastContext_v1_1"
- 48344      7374436F 
- 48344      6E746578 
- 48344      745F7631 
- 48344      5F3100
- 48345              	.LASF320:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1222
-
-
- 48346 0df3 72636F6E 		.string	"rcon"
- 48346      00
- 48347              	.LASF363:
- 48348 0df8 4B414553 		.string	"KAESBlockCipherVecEqInvKeyExpansion256"
- 48348      426C6F63 
- 48348      6B436970 
- 48348      68657256 
- 48348      65634571 
- 48349              	.LASF125:
- 48350 0e1f 72634D65 		.string	"rcMemMap"
- 48350      6D4D6170 
- 48350      00
- 48351              	.LASF57:
- 48352 0e28 41455342 		.string	"AESByte"
- 48352      79746500 
- 48353              	.LASF149:
- 48354 0e30 72634578 		.string	"rcExpression"
- 48354      70726573 
- 48354      73696F6E 
- 48354      00
- 48355              	.LASF195:
- 48356 0e3d 7263556E 		.string	"rcUnpacking"
- 48356      7061636B 
- 48356      696E6700 
- 48357              	.LASF111:
- 48358 0e49 7263446F 		.string	"rcDoc"
- 48358      6300
- 48359              	.LASF18:
- 48360 0e4f 4442475F 		.string	"DBG_APP"
- 48360      41505000 
- 48361              	.LASF212:
- 48362 0e57 72634D75 		.string	"rcMultiplexing"
- 48362      6C746970 
- 48362      6C657869 
- 48362      6E6700
- 48363              	.LASF214:
- 48364 0e66 72635365 		.string	"rcSearching"
- 48364      61726368 
- 48364      696E6700 
- 48365              	.LASF408:
- 48366 0e72 46465F74 		.string	"FF_tab"
- 48366      616200
- 48367              	.LASF314:
- 48368 0e79 72634661 		.string	"rcFailed"
- 48368      696C6564 
- 48368      00
- 48369              	.LASF39:
- 48370 0e82 4442475F 		.string	"DBG_AES_INVKEYEXP"
- 48370      4145535F 
- 48370      494E564B 
- 48370      45594558 
- 48370      5000
- 48371              	.LASF357:
- 48372 0e94 4B414553 		.string	"KAESBlockCipherVecFFtab"
- 48372      426C6F63 
- 48372      6B436970 
- 48372      68657256 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1223
-
-
- 48372      65634646 
- 48373              	.LASF118:
- 48374 0eac 72634675 		.string	"rcFunctParam"
- 48374      6E637450 
- 48374      6172616D 
- 48374      00
- 48375              	.LASF279:
- 48376 0eb9 7263496E 		.string	"rcIncorrect"
- 48376      636F7272 
- 48376      65637400 
- 48377              	.LASF60:
- 48378 0ec5 776F7264 		.string	"word"
- 48378      00
- 48379              	.LASF228:
- 48380 0eca 72634964 		.string	"rcIdentifying"
- 48380      656E7469 
- 48380      6679696E 
- 48380      6700
- 48381              	.LASF243:
- 48382 0ed8 7263436F 		.string	"rcConstraint"
- 48382      6E737472 
- 48382      61696E74 
- 48382      00
- 48383              	.LASF269:
- 48384 0ee5 7263556E 		.string	"rcUnknown"
- 48384      6B6E6F77 
- 48384      6E00
- 48385              	.LASF108:
- 48386 0eef 72634375 		.string	"rcCursor"
- 48386      72736F72 
- 48386      00
- 48387              	.LASF266:
- 48388 0ef8 52435374 		.string	"RCState"
- 48388      61746500 
- 48389              	.LASF54:
- 48390 0f00 4B426C6F 		.string	"KBlockCipherByte"
- 48390      636B4369 
- 48390      70686572 
- 48390      42797465 
- 48390      00
- 48391              	.LASF45:
- 48392 0f11 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 48392      636B4369 
- 48392      70686572 
- 48392      42797465 
- 48392      5F76745F 
- 48393              	.LASF306:
- 48394 0f28 72634967 		.string	"rcIgnored"
- 48394      6E6F7265 
- 48394      6400
- 48395              	.LASF164:
- 48396 0f32 72635265 		.string	"rcReleasing"
- 48396      6C656173 
- 48396      696E6700 
- 48397              	.LASF87:
- 48398 0f3e 72634B46 		.string	"rcKFG"
- 48398      4700
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1224
-
-
- 48399              	.LASF245:
- 48400 0f44 72634D65 		.string	"rcMessage"
- 48400      73736167 
- 48400      6500
- 48401              	.LASF192:
- 48402 0f4e 7263466F 		.string	"rcFormatting"
- 48402      726D6174 
- 48402      74696E67 
- 48402      00
- 48403              	.LASF85:
- 48404 0f5b 72635352 		.string	"rcSRA"
- 48404      4100
- 48405              	.LASF261:
- 48406 0f61 7263456E 		.string	"rcEnvironment"
- 48406      7669726F 
- 48406      6E6D656E 
- 48406      7400
- 48407              	.LASF14:
- 48408 0f6f 6C6F6E67 		.string	"long long unsigned int"
- 48408      206C6F6E 
- 48408      6720756E 
- 48408      7369676E 
- 48408      65642069 
- 48409              	.LASF47:
- 48410 0f86 64657374 		.string	"destroy"
- 48410      726F7900 
- 48411              	.LASF143:
- 48412 0f8e 7263546F 		.string	"rcToken"
- 48412      6B656E00 
- 48413              	.LASF203:
- 48414 0f96 7263546F 		.string	"rcTokenizing"
- 48414      6B656E69 
- 48414      7A696E67 
- 48414      00
- 48415              	.LASF21:
- 48416 0fa3 4442475F 		.string	"DBG_REF"
- 48416      52454600 
- 48417              	.LASF404:
- 48418 0fab 4B414553 		.string	"KAESBlockCipherVecRijndaelSBox"
- 48418      426C6F63 
- 48418      6B436970 
- 48418      68657256 
- 48418      65635269 
- 48419              	.LASF184:
- 48420 0fca 72635772 		.string	"rcWriting"
- 48420      6974696E 
- 48420      6700
- 48421              	.LASF160:
- 48422 0fd4 7263416C 		.string	"rcAllocating"
- 48422      6C6F6361 
- 48422      74696E67 
- 48422      00
- 48423              	.LASF146:
- 48424 0fe1 72635479 		.string	"rcType"
- 48424      706500
- 48425              	.LASF342:
- 48426 0fe8 4B414553 		.string	"KAESBlockCipherVecStateShiftLeft32"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1225
-
-
- 48426      426C6F63 
- 48426      6B436970 
- 48426      68657256 
- 48426      65635374 
- 48427              	.LASF247:
- 48428 100b 72635265 		.string	"rcResources"
- 48428      736F7572 
- 48428      63657300 
- 48429              	.LASF128:
- 48430 1017 72634E61 		.string	"rcNamelist"
- 48430      6D656C69 
- 48430      737400
- 48431              	.LASF338:
- 48432 1022 4B414553 		.string	"KAESBlockCipherVecStateDupColumn3"
- 48432      426C6F63 
- 48432      6B436970 
- 48432      68657256 
- 48432      65635374 
- 48433              	.LASF380:
- 48434 1044 4B414553 		.string	"KAESBlockCipherVecEqInvLastRound"
- 48434      426C6F63 
- 48434      6B436970 
- 48434      68657256 
- 48434      65634571 
- 48435              	.LASF312:
- 48436 1065 7263556E 		.string	"rcUndefined"
- 48436      64656669 
- 48436      6E656400 
- 48437              	.LASF280:
- 48438 1071 7263496E 		.string	"rcInconsistent"
- 48438      636F6E73 
- 48438      69737465 
- 48438      6E7400
- 48439              	.LASF385:
- 48440 1080 4B414553 		.string	"KAESBlockCipherVecKeySize"
- 48440      426C6F63 
- 48440      6B436970 
- 48440      68657256 
- 48440      65634B65 
- 48441              	.LASF225:
- 48442 109a 72635265 		.string	"rcRetrieving"
- 48442      74726965 
- 48442      76696E67 
- 48442      00
- 48443              	.LASF387:
- 48444 10a7 656E6372 		.string	"encrypt_key"
- 48444      7970745F 
- 48444      6B657900 
- 48445              	.LASF53:
- 48446 10b3 64656372 		.string	"decrypt"
- 48446      79707400 
- 48447              	.LASF46:
- 48448 10bb 76657273 		.string	"version"
- 48448      696F6E00 
- 48449              	.LASF237:
- 48450 10c3 72634E61 		.string	"rcName"
- 48450      6D6500
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1226
-
-
- 48451              	.LASF406:
- 48452 10ca 4B414553 		.string	"KAESBlockCipherVecRijndaelInvSBoxV"
- 48452      426C6F63 
- 48452      6B436970 
- 48452      68657256 
- 48452      65635269 
- 48453              	.LASF274:
- 48454 10ed 72634E75 		.string	"rcNull"
- 48454      6C6C00
- 48455              	.LASF196:
- 48456 10f4 7263456E 		.string	"rcEncoding"
- 48456      636F6469 
- 48456      6E6700
- 48457              	.LASF115:
- 48458 10ff 72634669 		.string	"rcFileFormat"
- 48458      6C65466F 
- 48458      726D6174 
- 48458      00
- 48459              	.LASF152:
- 48460 110c 7263456E 		.string	"rcEncryptionKey"
- 48460      63727970 
- 48460      74696F6E 
- 48460      4B657900 
- 48461              	.LASF217:
- 48462 111c 7263496E 		.string	"rcInflating"
- 48462      666C6174 
- 48462      696E6700 
- 48463              	.LASF299:
- 48464 1128 72634E6F 		.string	"rcNoPerm"
- 48464      5065726D 
- 48464      00
- 48465              	.LASF330:
- 48466 1131 64657374 		.string	"dest"
- 48466      00
- 48467              	.LASF372:
- 48468 1136 4B414553 		.string	"KAESBlockCipherVecLastRound"
- 48468      426C6F63 
- 48468      6B436970 
- 48468      68657256 
- 48468      65634C61 
- 48469              	.LASF362:
- 48470 1152 4B414553 		.string	"KAESBlockCipherVecEqInvKeyExpansion192"
- 48470      426C6F63 
- 48470      6B436970 
- 48470      68657256 
- 48470      65634571 
- 48471              	.LASF187:
- 48472 1179 72635265 		.string	"rcResetting"
- 48472      73657474 
- 48472      696E6700 
- 48473              	.LASF48:
- 48474 1185 626C6F63 		.string	"block_size"
- 48474      6B5F7369 
- 48474      7A6500
- 48475              	.LASF135:
- 48476 1190 72635257 		.string	"rcRWLock"
- 48476      4C6F636B 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1227
-
-
- 48476      00
- 48477              	.LASF166:
- 48478 1199 72634C69 		.string	"rcListing"
- 48478      7374696E 
- 48478      6700
- 48479              	.LASF351:
- 48480 11a3 4B414553 		.string	"KAESBlockCipherVecKeyExpansion128"
- 48480      426C6F63 
- 48480      6B436970 
- 48480      68657256 
- 48480      65634B65 
- 48481              	.LASF402:
- 48482 11c5 7665635F 		.string	"vec_0F"
- 48482      304600
- 48483              	.LASF116:
- 48484 11cc 72634675 		.string	"rcFunction"
- 48484      6E637469 
- 48484      6F6E00
- 48485              	.LASF38:
- 48486 11d7 4442475F 		.string	"DBG_AES_CIPHER"
- 48486      4145535F 
- 48486      43495048 
- 48486      455200
- 48487              	.LASF272:
- 48488 11e6 7263556E 		.string	"rcUnrecognized"
- 48488      7265636F 
- 48488      676E697A 
- 48488      656400
- 48489              	.LASF65:
- 48490 11f5 6E756D62 		.string	"number_of_rounds"
- 48490      65725F6F 
- 48490      665F726F 
- 48490      756E6473 
- 48490      00
- 48491              	.LASF88:
- 48492 1206 7263416C 		.string	"rcAlign"
- 48492      69676E00 
- 48493              	.LASF151:
- 48494 120e 72635072 		.string	"rcProduction"
- 48494      6F647563 
- 48494      74696F6E 
- 48494      00
- 48495              	.LASF93:
- 48496 121b 72634C61 		.string	"rcLastModule_v1_1"
- 48496      73744D6F 
- 48496      64756C65 
- 48496      5F76315F 
- 48496      3100
- 48497              	.LASF376:
- 48498 122d 4B414553 		.string	"KAESBlockCipherVecEqInvMiddleRound"
- 48498      426C6F63 
- 48498      6B436970 
- 48498      68657256 
- 48498      65634571 
- 48499              	.LASF141:
- 48500 1250 72635468 		.string	"rcThread"
- 48500      72656164 
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1228
-
-
- 48500      00
- 48501              	.LASF189:
- 48502 1259 72634672 		.string	"rcFreezing"
- 48502      65657A69 
- 48502      6E6700
- 48503              	.LASF51:
- 48504 1264 7365745F 		.string	"set_decrypt_key"
- 48504      64656372 
- 48504      7970745F 
- 48504      6B657900 
- 48505              	.LASF71:
- 48506 1274 62797465 		.string	"byte"
- 48506      00
- 48507              	.LASF44:
- 48508 1279 4B426C6F 		.string	"KBlockCipher_vt"
- 48508      636B4369 
- 48508      70686572 
- 48508      5F767400 
- 48509              	.LASF393:
- 48510 1289 64656372 		.string	"decrypt_key"
- 48510      7970745F 
- 48510      6B657900 
- 48511              	.LASF258:
- 48512 1295 72635365 		.string	"rcSeed"
- 48512      656400
- 48513              	.LASF333:
- 48514 129c 4B414553 		.string	"KAESBlockCipherVecVecOr"
- 48514      426C6F63 
- 48514      6B436970 
- 48514      68657256 
- 48514      65635665 
- 48515              	.LASF215:
- 48516 12b4 72634C6F 		.string	"rcLoading"
- 48516      6164696E 
- 48516      6700
- 48517              	.LASF1:
- 48518 12be 73686F72 		.string	"short int"
- 48518      7420696E 
- 48518      7400
- 48519              	.LASF8:
- 48520 12c8 75696E74 		.string	"uint64_t"
- 48520      36345F74 
- 48520      00
- 48521              	.LASF308:
- 48522 12d1 72634C61 		.string	"rcLastState_v1_0"
- 48522      73745374 
- 48522      6174655F 
- 48522      76315F30 
- 48522      00
- 48523              	.LASF317:
- 48524 12e2 72634C61 		.string	"rcLastState_v1_1"
- 48524      73745374 
- 48524      6174655F 
- 48524      76315F31 
- 48524      00
- 48525              	.LASF82:
- 48526 12f3 72635644 		.string	"rcVDB"
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1229
-
-
- 48526      4200
- 48527              	.LASF345:
- 48528 12f9 4B414553 		.string	"KAESBlockCipherVecAesKeyGenAssistColumn1"
- 48528      426C6F63 
- 48528      6B436970 
- 48528      68657256 
- 48528      65634165 
- 48529              	.LASF353:
- 48530 1322 4B414553 		.string	"KAESBlockCipherVecAesKeyGenAssistColumn2"
- 48530      426C6F63 
- 48530      6B436970 
- 48530      68657256 
- 48530      65634165 
- 48531              	.LASF319:
- 48532 134b 4B414553 		.string	"KAESBlockCipherVecAesKeyGenAssistColumn3"
- 48532      426C6F63 
- 48532      6B436970 
- 48532      68657256 
- 48532      65634165 
- 48533              	.LASF50:
- 48534 1374 7365745F 		.string	"set_encrypt_key"
- 48534      656E6372 
- 48534      7970745F 
- 48534      6B657900 
- 48535              	.LASF80:
- 48536 1384 72635846 		.string	"rcXF"
- 48536      00
- 48537              	.LASF321:
- 48538 1389 7672636F 		.string	"vrcon"
- 48538      6E00
- 48539              	.LASF322:
- 48540 138f 4B414553 		.string	"KAESBlockCipherVecSetColumn"
- 48540      426C6F63 
- 48540      6B436970 
- 48540      68657256 
- 48540      65635365 
- 48541              	.LASF163:
- 48542 13ab 72634465 		.string	"rcDestroying"
- 48542      7374726F 
- 48542      79696E67 
- 48542      00
- 48543              	.LASF268:
- 48544 13b8 7263446F 		.string	"rcDone"
- 48544      6E6500
- 48545              	.LASF98:
- 48546 13bf 7263546F 		.string	"rcToc"
- 48546      6300
- 48547              	.LASF62:
- 48548 13c5 43697068 		.string	"CipherVecByte"
- 48548      65725665 
- 48548      63427974 
- 48548      6500
- 48549              	.LASF172:
- 48550 13d3 7263416C 		.string	"rcAliasing"
- 48550      69617369 
- 48550      6E6700
- 48551              	.LASF133:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1230
-
-
- 48552 13de 72635072 		.string	"rcProcess"
- 48552      6F636573 
- 48552      7300
- 48553              	.LASF231:
- 48554 13e8 72634E6F 		.string	"rcNoObj"
- 48554      4F626A00 
- 48555              	.LASF270:
- 48556 13f0 7263556E 		.string	"rcUnsupported"
- 48556      73757070 
- 48556      6F727465 
- 48556      6400
- 48557              	.LASF106:
- 48558 13fe 7263436F 		.string	"rcColumn"
- 48558      6C756D6E 
- 48558      00
- 48559              	.LASF271:
- 48560 1407 7263556E 		.string	"rcUnexpected"
- 48560      65787065 
- 48560      63746564 
- 48560      00
- 48561              	.LASF411:
- 48562 1414 4B414553 		.string	"KAESBlockCipherVecaes_ncbi_name"
- 48562      426C6F63 
- 48562      6B436970 
- 48562      68657256 
- 48562      65636165 
- 48563              	.LASF6:
- 48564 1434 75696E74 		.string	"uint32_t"
- 48564      33325F74 
- 48564      00
- 48565              	.LASF92:
- 48566 143d 72635646 		.string	"rcVFS"
- 48566      5300
- 48567              	.LASF30:
- 48568 1443 4442475F 		.string	"DBG_KRYPTO"
- 48568      4B525950 
- 48568      544F00
- 48569              	.LASF42:
- 48570 144e 4442475F 		.string	"DBG_AES_COUNT"
- 48570      4145535F 
- 48570      434F554E 
- 48570      5400
- 48571              	.LASF59:
- 48572 145c 41455343 		.string	"AESColumn"
- 48572      6F6C756D 
- 48572      6E00
- 48573              	.LASF397:
- 48574 1466 6C657665 		.string	"level"
- 48574      6C00
- 48575              	.LASF316:
- 48576 146c 72635772 		.string	"rcWrongType"
- 48576      6F6E6754 
- 48576      79706500 
- 48577              	.LASF251:
- 48578 1478 72634C69 		.string	"rcLibrary"
- 48578      62726172 
- 48578      7900
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1231
-
-
- 48579              	.LASF284:
- 48580 1482 72634361 		.string	"rcCanceled"
- 48580      6E63656C 
- 48580      656400
- 48581              	.LASF155:
- 48582 148d 72634461 		.string	"rcData"
- 48582      746100
- 48583              	.LASF394:
- 48584 1494 4B414553 		.string	"KAESBlockCipherVecEncrypt"
- 48584      426C6F63 
- 48584      6B436970 
- 48584      68657256 
- 48584      6563456E 
- 48585              	.LASF119:
- 48586 14ae 72634865 		.string	"rcHeader"
- 48586      61646572 
- 48586      00
- 48587              	.LASF4:
- 48588 14b7 73686F72 		.string	"short unsigned int"
- 48588      7420756E 
- 48588      7369676E 
- 48588      65642069 
- 48588      6E7400
- 48589              	.LASF325:
- 48590 14ca 4B414553 		.string	"KAESBlockCipherVecSubBytes"
- 48590      426C6F63 
- 48590      6B436970 
- 48590      68657256 
- 48590      65635375 
- 48591              	.LASF109:
- 48592 14e5 72634461 		.string	"rcDatabase"
- 48592      74616261 
- 48592      736500
- 48593              	.LASF185:
- 48594 14f0 7263436F 		.string	"rcCommitting"
- 48594      6D6D6974 
- 48594      74696E67 
- 48594      00
- 48595              	.LASF213:
- 48596 14fd 7263436C 		.string	"rcClassifying"
- 48596      61737369 
- 48596      6679696E 
- 48596      6700
- 48597              	.LASF144:
- 48598 150b 72635472 		.string	"rcTree"
- 48598      656500
- 48599              	.LASF35:
- 48600 1512 4442475F 		.string	"DBG_ARGS"
- 48600      41524753 
- 48600      00
- 48601              	.LASF173:
- 48602 151b 72635365 		.string	"rcSelecting"
- 48602      6C656374 
- 48602      696E6700 
- 48603              	.LASF74:
- 48604 1527 72635465 		.string	"rcText"
- 48604      787400
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1232
-
-
- 48605              	.LASF310:
- 48606 152e 72634F75 		.string	"rcOutoforder"
- 48606      746F666F 
- 48606      72646572 
- 48606      00
- 48607              	.LASF412:
- 48608 153b 4B414553 		.string	"KAESBlockCipherVec_vt_"
- 48608      426C6F63 
- 48608      6B436970 
- 48608      68657256 
- 48608      65635F76 
- 48609              	.LASF277:
- 48610 1552 7263496E 		.string	"rcInvalid"
- 48610      76616C69 
- 48610      6400
- 48611              	.LASF389:
- 48612 155c 75736572 		.string	"user_key_size"
- 48612      5F6B6579 
- 48612      5F73697A 
- 48612      6500
- 48613              	.LASF224:
- 48614 156a 7263496E 		.string	"rcInitializing"
- 48614      69746961 
- 48614      6C697A69 
- 48614      6E6700
- 48615              	.LASF377:
- 48616 1579 4B414553 		.string	"KAESBlockCipherVecInvSubBytes"
- 48616      426C6F63 
- 48616      6B436970 
- 48616      68657256 
- 48616      6563496E 
- 48617              	.LASF103:
- 48618 1597 7263426C 		.string	"rcBlob"
- 48618      6F6200
- 48619              	.LASF339:
- 48620 159e 74656D70 		.string	"temp"
- 48620      00
- 48621              	.LASF201:
- 48622 15a3 72635265 		.string	"rcReindexing"
- 48622      696E6465 
- 48622      78696E67 
- 48622      00
- 48623              	.LASF318:
- 48624 15b0 4B414553 		.string	"KAESBlockCipherVecStateIn"
- 48624      426C6F63 
- 48624      6B436970 
- 48624      68657256 
- 48624      65635374 
- 48625              	.LASF96:
- 48626 15ca 72634E6F 		.string	"rcNoTarg"
- 48626      54617267 
- 48626      00
- 48627              	.LASF278:
- 48628 15d3 7263436F 		.string	"rcCorrupt"
- 48628      72727570 
- 48628      7400
- 48629              	.LASF307:
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1233
-
-
- 48630 15dd 72634F75 		.string	"rcOutofrange"
- 48630      746F6672 
- 48630      616E6765 
- 48630      00
- 48631              	.LASF136:
- 48632 15ea 72635363 		.string	"rcSchema"
- 48632      68656D61 
- 48632      00
- 48633              	.LASF326:
- 48634 15f3 4B414553 		.string	"KAESBlockCipherVecSubBytesInt"
- 48634      426C6F63 
- 48634      6B436970 
- 48634      68657256 
- 48634      65635375 
- 48635              	.LASF132:
- 48636 1611 72635061 		.string	"rcPath"
- 48636      746800
- 48637              	.LASF183:
- 48638 1618 72635265 		.string	"rcReading"
- 48638      6164696E 
- 48638      6700
- 48639              	.LASF49:
- 48640 1622 6B65795F 		.string	"key_size"
- 48640      73697A65 
- 48640      00
- 48641              	.LASF315:
- 48642 162b 72634E6F 		.string	"rcNotAvailable"
- 48642      74417661 
- 48642      696C6162 
- 48642      6C6500
- 48643              	.LASF352:
- 48644 163a 4B414553 		.string	"KAESBlockCipherVecKeyExpansion192"
- 48644      426C6F63 
- 48644      6B436970 
- 48644      68657256 
- 48644      65634B65 
- 48645              	.LASF273:
- 48646 165c 7263416D 		.string	"rcAmbiguous"
- 48646      62696775 
- 48646      6F757300 
- 48647              		.ident	"GCC: (GNU) 4.4.2"
- 48648              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccMa7HLZ.s 			page 1234
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 aes-ncbi.c
-     /tmp/ccMa7HLZ.s:11     .text:0000000000000000 bswap_32
-     /tmp/ccMa7HLZ.s:47     .rodata:0000000000000000 vec_00
-     /tmp/ccMa7HLZ.s:52     .rodata:0000000000000010 vec_01
-     /tmp/ccMa7HLZ.s:72     .rodata:0000000000000020 vec_0F
-     /tmp/ccMa7HLZ.s:92     .rodata:0000000000000030 vec_10
-     /tmp/ccMa7HLZ.s:112    .rodata:0000000000000040 KAESBlockCipherVecRijndaelSBox
-     /tmp/ccMa7HLZ.s:372    .rodata:0000000000000140 KAESBlockCipherVecRijndaelSBoxV
-     /tmp/ccMa7HLZ.s:632    .rodata:0000000000000240 KAESBlockCipherVecRijndaelInvSBoxV
-     /tmp/ccMa7HLZ.s:892    .rodata:0000000000000340 lo_filter
-     /tmp/ccMa7HLZ.s:912    .rodata:0000000000000350 FF_tab
-     /tmp/ccMa7HLZ.s:932    .data:0000000000000000 KAESBlockCipherVecFFtable
-     /tmp/ccMa7HLZ.s:945    .rodata:0000000000000360 KAESBlockCipherVecRcon
-     /tmp/ccMa7HLZ.s:968    .text:0000000000000014 KAESBlockCipherVecKeyExpansion128
-     /tmp/ccMa7HLZ.s:25534  .rodata:00000000000005c0 ShiftRowTable.6768
-     /tmp/ccMa7HLZ.s:8748   .text:0000000000007c1e KAESBlockCipherVecKeyExpansion192
-     /tmp/ccMa7HLZ.s:13764  .text:000000000000cc56 KAESBlockCipherVecKeyExpansion256
-     /tmp/ccMa7HLZ.s:20329  .text:00000000000134cf KAESBlockCipherVecEqInvKeyExpansion
-     /tmp/ccMa7HLZ.s:20835  .text:0000000000013ba2 KAESBlockCipherVecEqInvKeyExpansion128
-     /tmp/ccMa7HLZ.s:20863  .text:0000000000013bcc KAESBlockCipherVecEqInvKeyExpansion192
-     /tmp/ccMa7HLZ.s:20891  .text:0000000000013bf6 KAESBlockCipherVecEqInvKeyExpansion256
-     /tmp/ccMa7HLZ.s:20935  .text:0000000000013c20 KAESBlockCipherVecCipher
-     /tmp/ccMa7HLZ.s:25514  .rodata:00000000000005b0 ShiftRowTable.6741
-     /tmp/ccMa7HLZ.s:22848  .text:0000000000015916 KAESBlockCipherVecEqInvCipher
-     /tmp/ccMa7HLZ.s:25564  .rodata:0000000000000620 InvShiftRowTable.6750
-     /tmp/ccMa7HLZ.s:24903  .rodata:0000000000000460 KAESBlockCipherVecaes_ncbi_name
-     /tmp/ccMa7HLZ.s:24907  .text:0000000000017843 KAESBlockCipherVecDestroy
-     /tmp/ccMa7HLZ.s:24926  .text:000000000001784d KAESBlockCipherVecBlockSize
-     /tmp/ccMa7HLZ.s:24946  .text:0000000000017858 KAESBlockCipherVecKeySize
-     /tmp/ccMa7HLZ.s:24971  .text:0000000000017863 KAESBlockCipherVecSetEncryptKey
-     /tmp/ccMa7HLZ.s:25554  .rodata:00000000000005e0 __func__.8464
-     /tmp/ccMa7HLZ.s:25062  .text:000000000001794c KAESBlockCipherVecSetDecryptKey
-     /tmp/ccMa7HLZ.s:25144  .text:0000000000017a0f KAESBlockCipherVecEncrypt
-     /tmp/ccMa7HLZ.s:25509  .rodata:0000000000000590 __PRETTY_FUNCTION__.8500
-     /tmp/ccMa7HLZ.s:25222  .text:0000000000017ad2 KAESBlockCipherVecDecrypt
-     /tmp/ccMa7HLZ.s:25504  .rodata:0000000000000570 __PRETTY_FUNCTION__.8521
-     /tmp/ccMa7HLZ.s:25307  .text:0000000000017b95 KAESBlockCipherVecProcessorSupport
-     /tmp/ccMa7HLZ.s:25499  .rodata:0000000000000540 __func__.8545
-     /tmp/ccMa7HLZ.s:25393  .data.rel.ro.local:0000000000000000 KAESBlockCipherVec_vt_
-     /tmp/ccMa7HLZ.s:25409  .text:0000000000017c5b KAESBlockCipherVecMake
-     /tmp/ccMa7HLZ.s:25489  .rodata:00000000000004f0 __func__.8570
-     /tmp/ccMa7HLZ.s:25494  .rodata:0000000000000510 __PRETTY_FUNCTION__.8571
-     /tmp/ccMa7HLZ.s:25559  .rodata:0000000000000600 __PRETTY_FUNCTION__.8463
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-memmove
-KDbgWriterGet
-KDbgCondToFlag
-KDbgTestModConds
-KDbgMsg
-memset
-SetRCFileFuncLine
-__assert_fail
diff --git a/libs/krypto/aes-ncbi.vecreg.pic.o.list b/libs/krypto/aes-ncbi.vecreg.pic.o.list
deleted file mode 100644
index 9088ee6..0000000
--- a/libs/krypto/aes-ncbi.vecreg.pic.o.list
+++ /dev/null
@@ -1,75192 +0,0 @@
-GAS LISTING /tmp/ccjbMjHD.s 			page 1
-
-
-   1              		.file	"aes-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 A62A0000 		.text
-   8      02007101 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.type	bswap_32, @function
-  11              	bswap_32:
-  12              	.LFB591:
-  13              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** *
-  25:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** */
-  26:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifndef _h_byteswap_
-  28:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #define _h_byteswap_
-  29:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifdef _BYTESWAP_H
-  31:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #warning "GNU byteswap.h being used"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #else
-  33:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #define _BYTESWAP_H	1234
-  34:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #include <stdint.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  37:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #ifdef __cplusplus
-  38:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** extern "C" {
-  39:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** #endif
-  40:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 2
-
-
-  41:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /* perform single instruction byte swap */
-  42:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** static __inline__ uint16_t bswap_16 ( uint16_t i )
-  43:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** {
-  44:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     register uint16_t rtn;
-  45:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     __asm__
-  46:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     (
-  47:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         "rorw $8, %w0"
-  48:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "=r" ( rtn )
-  49:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "0" ( i )
-  50:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "cc"
-  51:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     );
-  52:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     return rtn;
-  53:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** }
-  54:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** 
-  55:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** /* perform single instruction byte swap */
-  56:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** static __inline__ uint32_t bswap_32 ( uint32_t i )
-  57:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** {
-  14              		.loc 1 57 0
-  15              		.cfi_startproc
-  16 0000 55       		pushq	%rbp
-  17              	.LCFI0:
-  18              		.cfi_def_cfa_offset 16
-  19 0001 4889E5   		movq	%rsp, %rbp
-  20              		.cfi_offset 6, -16
-  21              	.LCFI1:
-  22              		.cfi_def_cfa_register 6
-  23 0004 53       		pushq	%rbx
-  24 0005 897DF4   		movl	%edi, -12(%rbp)
-  58:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     register uint32_t rtn;
-  59:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     __asm__
-  25              		.loc 1 59 0
-  26 0008 8B45F4   		movl	-12(%rbp), %eax
-  27 000b 89C3     		movl	%eax, %ebx
-  28              		.cfi_offset 3, -24
-  29              	#APP
-  30              	# 59 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h" 1
-  60              	    (
-  61:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         "bswap %0"
-  62:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "=r" ( rtn )
-  63:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "0" ( i )
-  64:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****         : "cc"
-  65:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     );
-  66:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h ****     return rtn;
-  31              		bswap %ebx
-  32              	# 0 "" 2
-  33              		.loc 1 66 0
-  34              	#NO_APP
-  35 000f 89D8     		movl	%ebx, %eax
-  67:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/byteswap.h **** }
-  36              		.loc 1 67 0
-  37 0011 5B       		popq	%rbx
-  38 0012 C9       		leave
-  39 0013 C3       		ret
-  40              		.cfi_endproc
-  41              	.LFE591:
-  42              		.size	bswap_32, .-bswap_32
-  43              		.section	.rodata
-
GAS LISTING /tmp/ccjbMjHD.s 			page 3
-
-
-  44              		.align 16
-  45              		.type	vec_00, @object
-  46              		.size	vec_00, 16
-  47              	vec_00:
-  48 0000 00000000 		.zero	16
-  48      00000000 
-  48      00000000 
-  48      00000000 
-  49              		.align 16
-  50              		.type	vec_01, @object
-  51              		.size	vec_01, 16
-  52              	vec_01:
-  53 0010 01       		.byte	1
-  54 0011 01       		.byte	1
-  55 0012 01       		.byte	1
-  56 0013 01       		.byte	1
-  57 0014 01       		.byte	1
-  58 0015 01       		.byte	1
-  59 0016 01       		.byte	1
-  60 0017 01       		.byte	1
-  61 0018 01       		.byte	1
-  62 0019 01       		.byte	1
-  63 001a 01       		.byte	1
-  64 001b 01       		.byte	1
-  65 001c 01       		.byte	1
-  66 001d 01       		.byte	1
-  67 001e 01       		.byte	1
-  68 001f 01       		.byte	1
-  69              		.align 16
-  70              		.type	vec_0F, @object
-  71              		.size	vec_0F, 16
-  72              	vec_0F:
-  73 0020 0F       		.byte	15
-  74 0021 0F       		.byte	15
-  75 0022 0F       		.byte	15
-  76 0023 0F       		.byte	15
-  77 0024 0F       		.byte	15
-  78 0025 0F       		.byte	15
-  79 0026 0F       		.byte	15
-  80 0027 0F       		.byte	15
-  81 0028 0F       		.byte	15
-  82 0029 0F       		.byte	15
-  83 002a 0F       		.byte	15
-  84 002b 0F       		.byte	15
-  85 002c 0F       		.byte	15
-  86 002d 0F       		.byte	15
-  87 002e 0F       		.byte	15
-  88 002f 0F       		.byte	15
-  89              		.align 16
-  90              		.type	vec_10, @object
-  91              		.size	vec_10, 16
-  92              	vec_10:
-  93 0030 10       		.byte	16
-  94 0031 10       		.byte	16
-  95 0032 10       		.byte	16
-  96 0033 10       		.byte	16
-  97 0034 10       		.byte	16
-
GAS LISTING /tmp/ccjbMjHD.s 			page 4
-
-
-  98 0035 10       		.byte	16
-  99 0036 10       		.byte	16
- 100 0037 10       		.byte	16
- 101 0038 10       		.byte	16
- 102 0039 10       		.byte	16
- 103 003a 10       		.byte	16
- 104 003b 10       		.byte	16
- 105 003c 10       		.byte	16
- 106 003d 10       		.byte	16
- 107 003e 10       		.byte	16
- 108 003f 10       		.byte	16
- 109              		.align 32
- 110              		.type	KAESBlockCipherVecRegRijndaelSBox, @object
- 111              		.size	KAESBlockCipherVecRegRijndaelSBox, 256
- 112              	KAESBlockCipherVecRegRijndaelSBox:
- 113 0040 63       		.byte	99
- 114 0041 7C       		.byte	124
- 115 0042 77       		.byte	119
- 116 0043 7B       		.byte	123
- 117 0044 F2       		.byte	-14
- 118 0045 6B       		.byte	107
- 119 0046 6F       		.byte	111
- 120 0047 C5       		.byte	-59
- 121 0048 30       		.byte	48
- 122 0049 01       		.byte	1
- 123 004a 67       		.byte	103
- 124 004b 2B       		.byte	43
- 125 004c FE       		.byte	-2
- 126 004d D7       		.byte	-41
- 127 004e AB       		.byte	-85
- 128 004f 76       		.byte	118
- 129 0050 CA       		.byte	-54
- 130 0051 82       		.byte	-126
- 131 0052 C9       		.byte	-55
- 132 0053 7D       		.byte	125
- 133 0054 FA       		.byte	-6
- 134 0055 59       		.byte	89
- 135 0056 47       		.byte	71
- 136 0057 F0       		.byte	-16
- 137 0058 AD       		.byte	-83
- 138 0059 D4       		.byte	-44
- 139 005a A2       		.byte	-94
- 140 005b AF       		.byte	-81
- 141 005c 9C       		.byte	-100
- 142 005d A4       		.byte	-92
- 143 005e 72       		.byte	114
- 144 005f C0       		.byte	-64
- 145 0060 B7       		.byte	-73
- 146 0061 FD       		.byte	-3
- 147 0062 93       		.byte	-109
- 148 0063 26       		.byte	38
- 149 0064 36       		.byte	54
- 150 0065 3F       		.byte	63
- 151 0066 F7       		.byte	-9
- 152 0067 CC       		.byte	-52
- 153 0068 34       		.byte	52
- 154 0069 A5       		.byte	-91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 5
-
-
- 155 006a E5       		.byte	-27
- 156 006b F1       		.byte	-15
- 157 006c 71       		.byte	113
- 158 006d D8       		.byte	-40
- 159 006e 31       		.byte	49
- 160 006f 15       		.byte	21
- 161 0070 04       		.byte	4
- 162 0071 C7       		.byte	-57
- 163 0072 23       		.byte	35
- 164 0073 C3       		.byte	-61
- 165 0074 18       		.byte	24
- 166 0075 96       		.byte	-106
- 167 0076 05       		.byte	5
- 168 0077 9A       		.byte	-102
- 169 0078 07       		.byte	7
- 170 0079 12       		.byte	18
- 171 007a 80       		.byte	-128
- 172 007b E2       		.byte	-30
- 173 007c EB       		.byte	-21
- 174 007d 27       		.byte	39
- 175 007e B2       		.byte	-78
- 176 007f 75       		.byte	117
- 177 0080 09       		.byte	9
- 178 0081 83       		.byte	-125
- 179 0082 2C       		.byte	44
- 180 0083 1A       		.byte	26
- 181 0084 1B       		.byte	27
- 182 0085 6E       		.byte	110
- 183 0086 5A       		.byte	90
- 184 0087 A0       		.byte	-96
- 185 0088 52       		.byte	82
- 186 0089 3B       		.byte	59
- 187 008a D6       		.byte	-42
- 188 008b B3       		.byte	-77
- 189 008c 29       		.byte	41
- 190 008d E3       		.byte	-29
- 191 008e 2F       		.byte	47
- 192 008f 84       		.byte	-124
- 193 0090 53       		.byte	83
- 194 0091 D1       		.byte	-47
- 195 0092 00       		.byte	0
- 196 0093 ED       		.byte	-19
- 197 0094 20       		.byte	32
- 198 0095 FC       		.byte	-4
- 199 0096 B1       		.byte	-79
- 200 0097 5B       		.byte	91
- 201 0098 6A       		.byte	106
- 202 0099 CB       		.byte	-53
- 203 009a BE       		.byte	-66
- 204 009b 39       		.byte	57
- 205 009c 4A       		.byte	74
- 206 009d 4C       		.byte	76
- 207 009e 58       		.byte	88
- 208 009f CF       		.byte	-49
- 209 00a0 D0       		.byte	-48
- 210 00a1 EF       		.byte	-17
- 211 00a2 AA       		.byte	-86
-
GAS LISTING /tmp/ccjbMjHD.s 			page 6
-
-
- 212 00a3 FB       		.byte	-5
- 213 00a4 43       		.byte	67
- 214 00a5 4D       		.byte	77
- 215 00a6 33       		.byte	51
- 216 00a7 85       		.byte	-123
- 217 00a8 45       		.byte	69
- 218 00a9 F9       		.byte	-7
- 219 00aa 02       		.byte	2
- 220 00ab 7F       		.byte	127
- 221 00ac 50       		.byte	80
- 222 00ad 3C       		.byte	60
- 223 00ae 9F       		.byte	-97
- 224 00af A8       		.byte	-88
- 225 00b0 51       		.byte	81
- 226 00b1 A3       		.byte	-93
- 227 00b2 40       		.byte	64
- 228 00b3 8F       		.byte	-113
- 229 00b4 92       		.byte	-110
- 230 00b5 9D       		.byte	-99
- 231 00b6 38       		.byte	56
- 232 00b7 F5       		.byte	-11
- 233 00b8 BC       		.byte	-68
- 234 00b9 B6       		.byte	-74
- 235 00ba DA       		.byte	-38
- 236 00bb 21       		.byte	33
- 237 00bc 10       		.byte	16
- 238 00bd FF       		.byte	-1
- 239 00be F3       		.byte	-13
- 240 00bf D2       		.byte	-46
- 241 00c0 CD       		.byte	-51
- 242 00c1 0C       		.byte	12
- 243 00c2 13       		.byte	19
- 244 00c3 EC       		.byte	-20
- 245 00c4 5F       		.byte	95
- 246 00c5 97       		.byte	-105
- 247 00c6 44       		.byte	68
- 248 00c7 17       		.byte	23
- 249 00c8 C4       		.byte	-60
- 250 00c9 A7       		.byte	-89
- 251 00ca 7E       		.byte	126
- 252 00cb 3D       		.byte	61
- 253 00cc 64       		.byte	100
- 254 00cd 5D       		.byte	93
- 255 00ce 19       		.byte	25
- 256 00cf 73       		.byte	115
- 257 00d0 60       		.byte	96
- 258 00d1 81       		.byte	-127
- 259 00d2 4F       		.byte	79
- 260 00d3 DC       		.byte	-36
- 261 00d4 22       		.byte	34
- 262 00d5 2A       		.byte	42
- 263 00d6 90       		.byte	-112
- 264 00d7 88       		.byte	-120
- 265 00d8 46       		.byte	70
- 266 00d9 EE       		.byte	-18
- 267 00da B8       		.byte	-72
- 268 00db 14       		.byte	20
-
GAS LISTING /tmp/ccjbMjHD.s 			page 7
-
-
- 269 00dc DE       		.byte	-34
- 270 00dd 5E       		.byte	94
- 271 00de 0B       		.byte	11
- 272 00df DB       		.byte	-37
- 273 00e0 E0       		.byte	-32
- 274 00e1 32       		.byte	50
- 275 00e2 3A       		.byte	58
- 276 00e3 0A       		.byte	10
- 277 00e4 49       		.byte	73
- 278 00e5 06       		.byte	6
- 279 00e6 24       		.byte	36
- 280 00e7 5C       		.byte	92
- 281 00e8 C2       		.byte	-62
- 282 00e9 D3       		.byte	-45
- 283 00ea AC       		.byte	-84
- 284 00eb 62       		.byte	98
- 285 00ec 91       		.byte	-111
- 286 00ed 95       		.byte	-107
- 287 00ee E4       		.byte	-28
- 288 00ef 79       		.byte	121
- 289 00f0 E7       		.byte	-25
- 290 00f1 C8       		.byte	-56
- 291 00f2 37       		.byte	55
- 292 00f3 6D       		.byte	109
- 293 00f4 8D       		.byte	-115
- 294 00f5 D5       		.byte	-43
- 295 00f6 4E       		.byte	78
- 296 00f7 A9       		.byte	-87
- 297 00f8 6C       		.byte	108
- 298 00f9 56       		.byte	86
- 299 00fa F4       		.byte	-12
- 300 00fb EA       		.byte	-22
- 301 00fc 65       		.byte	101
- 302 00fd 7A       		.byte	122
- 303 00fe AE       		.byte	-82
- 304 00ff 08       		.byte	8
- 305 0100 BA       		.byte	-70
- 306 0101 78       		.byte	120
- 307 0102 25       		.byte	37
- 308 0103 2E       		.byte	46
- 309 0104 1C       		.byte	28
- 310 0105 A6       		.byte	-90
- 311 0106 B4       		.byte	-76
- 312 0107 C6       		.byte	-58
- 313 0108 E8       		.byte	-24
- 314 0109 DD       		.byte	-35
- 315 010a 74       		.byte	116
- 316 010b 1F       		.byte	31
- 317 010c 4B       		.byte	75
- 318 010d BD       		.byte	-67
- 319 010e 8B       		.byte	-117
- 320 010f 8A       		.byte	-118
- 321 0110 70       		.byte	112
- 322 0111 3E       		.byte	62
- 323 0112 B5       		.byte	-75
- 324 0113 66       		.byte	102
- 325 0114 48       		.byte	72
-
GAS LISTING /tmp/ccjbMjHD.s 			page 8
-
-
- 326 0115 03       		.byte	3
- 327 0116 F6       		.byte	-10
- 328 0117 0E       		.byte	14
- 329 0118 61       		.byte	97
- 330 0119 35       		.byte	53
- 331 011a 57       		.byte	87
- 332 011b B9       		.byte	-71
- 333 011c 86       		.byte	-122
- 334 011d C1       		.byte	-63
- 335 011e 1D       		.byte	29
- 336 011f 9E       		.byte	-98
- 337 0120 E1       		.byte	-31
- 338 0121 F8       		.byte	-8
- 339 0122 98       		.byte	-104
- 340 0123 11       		.byte	17
- 341 0124 69       		.byte	105
- 342 0125 D9       		.byte	-39
- 343 0126 8E       		.byte	-114
- 344 0127 94       		.byte	-108
- 345 0128 9B       		.byte	-101
- 346 0129 1E       		.byte	30
- 347 012a 87       		.byte	-121
- 348 012b E9       		.byte	-23
- 349 012c CE       		.byte	-50
- 350 012d 55       		.byte	85
- 351 012e 28       		.byte	40
- 352 012f DF       		.byte	-33
- 353 0130 8C       		.byte	-116
- 354 0131 A1       		.byte	-95
- 355 0132 89       		.byte	-119
- 356 0133 0D       		.byte	13
- 357 0134 BF       		.byte	-65
- 358 0135 E6       		.byte	-26
- 359 0136 42       		.byte	66
- 360 0137 68       		.byte	104
- 361 0138 41       		.byte	65
- 362 0139 99       		.byte	-103
- 363 013a 2D       		.byte	45
- 364 013b 0F       		.byte	15
- 365 013c B0       		.byte	-80
- 366 013d 54       		.byte	84
- 367 013e BB       		.byte	-69
- 368 013f 16       		.byte	22
- 369              		.align 32
- 370              		.type	KAESBlockCipherVecRegRijndaelSBoxV, @object
- 371              		.size	KAESBlockCipherVecRegRijndaelSBoxV, 256
- 372              	KAESBlockCipherVecRegRijndaelSBoxV:
- 373 0140 63       		.byte	99
- 374 0141 7C       		.byte	124
- 375 0142 77       		.byte	119
- 376 0143 7B       		.byte	123
- 377 0144 F2       		.byte	-14
- 378 0145 6B       		.byte	107
- 379 0146 6F       		.byte	111
- 380 0147 C5       		.byte	-59
- 381 0148 30       		.byte	48
- 382 0149 01       		.byte	1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 9
-
-
- 383 014a 67       		.byte	103
- 384 014b 2B       		.byte	43
- 385 014c FE       		.byte	-2
- 386 014d D7       		.byte	-41
- 387 014e AB       		.byte	-85
- 388 014f 76       		.byte	118
- 389 0150 CA       		.byte	-54
- 390 0151 82       		.byte	-126
- 391 0152 C9       		.byte	-55
- 392 0153 7D       		.byte	125
- 393 0154 FA       		.byte	-6
- 394 0155 59       		.byte	89
- 395 0156 47       		.byte	71
- 396 0157 F0       		.byte	-16
- 397 0158 AD       		.byte	-83
- 398 0159 D4       		.byte	-44
- 399 015a A2       		.byte	-94
- 400 015b AF       		.byte	-81
- 401 015c 9C       		.byte	-100
- 402 015d A4       		.byte	-92
- 403 015e 72       		.byte	114
- 404 015f C0       		.byte	-64
- 405 0160 B7       		.byte	-73
- 406 0161 FD       		.byte	-3
- 407 0162 93       		.byte	-109
- 408 0163 26       		.byte	38
- 409 0164 36       		.byte	54
- 410 0165 3F       		.byte	63
- 411 0166 F7       		.byte	-9
- 412 0167 CC       		.byte	-52
- 413 0168 34       		.byte	52
- 414 0169 A5       		.byte	-91
- 415 016a E5       		.byte	-27
- 416 016b F1       		.byte	-15
- 417 016c 71       		.byte	113
- 418 016d D8       		.byte	-40
- 419 016e 31       		.byte	49
- 420 016f 15       		.byte	21
- 421 0170 04       		.byte	4
- 422 0171 C7       		.byte	-57
- 423 0172 23       		.byte	35
- 424 0173 C3       		.byte	-61
- 425 0174 18       		.byte	24
- 426 0175 96       		.byte	-106
- 427 0176 05       		.byte	5
- 428 0177 9A       		.byte	-102
- 429 0178 07       		.byte	7
- 430 0179 12       		.byte	18
- 431 017a 80       		.byte	-128
- 432 017b E2       		.byte	-30
- 433 017c EB       		.byte	-21
- 434 017d 27       		.byte	39
- 435 017e B2       		.byte	-78
- 436 017f 75       		.byte	117
- 437 0180 09       		.byte	9
- 438 0181 83       		.byte	-125
- 439 0182 2C       		.byte	44
-
GAS LISTING /tmp/ccjbMjHD.s 			page 10
-
-
- 440 0183 1A       		.byte	26
- 441 0184 1B       		.byte	27
- 442 0185 6E       		.byte	110
- 443 0186 5A       		.byte	90
- 444 0187 A0       		.byte	-96
- 445 0188 52       		.byte	82
- 446 0189 3B       		.byte	59
- 447 018a D6       		.byte	-42
- 448 018b B3       		.byte	-77
- 449 018c 29       		.byte	41
- 450 018d E3       		.byte	-29
- 451 018e 2F       		.byte	47
- 452 018f 84       		.byte	-124
- 453 0190 53       		.byte	83
- 454 0191 D1       		.byte	-47
- 455 0192 00       		.byte	0
- 456 0193 ED       		.byte	-19
- 457 0194 20       		.byte	32
- 458 0195 FC       		.byte	-4
- 459 0196 B1       		.byte	-79
- 460 0197 5B       		.byte	91
- 461 0198 6A       		.byte	106
- 462 0199 CB       		.byte	-53
- 463 019a BE       		.byte	-66
- 464 019b 39       		.byte	57
- 465 019c 4A       		.byte	74
- 466 019d 4C       		.byte	76
- 467 019e 58       		.byte	88
- 468 019f CF       		.byte	-49
- 469 01a0 D0       		.byte	-48
- 470 01a1 EF       		.byte	-17
- 471 01a2 AA       		.byte	-86
- 472 01a3 FB       		.byte	-5
- 473 01a4 43       		.byte	67
- 474 01a5 4D       		.byte	77
- 475 01a6 33       		.byte	51
- 476 01a7 85       		.byte	-123
- 477 01a8 45       		.byte	69
- 478 01a9 F9       		.byte	-7
- 479 01aa 02       		.byte	2
- 480 01ab 7F       		.byte	127
- 481 01ac 50       		.byte	80
- 482 01ad 3C       		.byte	60
- 483 01ae 9F       		.byte	-97
- 484 01af A8       		.byte	-88
- 485 01b0 51       		.byte	81
- 486 01b1 A3       		.byte	-93
- 487 01b2 40       		.byte	64
- 488 01b3 8F       		.byte	-113
- 489 01b4 92       		.byte	-110
- 490 01b5 9D       		.byte	-99
- 491 01b6 38       		.byte	56
- 492 01b7 F5       		.byte	-11
- 493 01b8 BC       		.byte	-68
- 494 01b9 B6       		.byte	-74
- 495 01ba DA       		.byte	-38
- 496 01bb 21       		.byte	33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 11
-
-
- 497 01bc 10       		.byte	16
- 498 01bd FF       		.byte	-1
- 499 01be F3       		.byte	-13
- 500 01bf D2       		.byte	-46
- 501 01c0 CD       		.byte	-51
- 502 01c1 0C       		.byte	12
- 503 01c2 13       		.byte	19
- 504 01c3 EC       		.byte	-20
- 505 01c4 5F       		.byte	95
- 506 01c5 97       		.byte	-105
- 507 01c6 44       		.byte	68
- 508 01c7 17       		.byte	23
- 509 01c8 C4       		.byte	-60
- 510 01c9 A7       		.byte	-89
- 511 01ca 7E       		.byte	126
- 512 01cb 3D       		.byte	61
- 513 01cc 64       		.byte	100
- 514 01cd 5D       		.byte	93
- 515 01ce 19       		.byte	25
- 516 01cf 73       		.byte	115
- 517 01d0 60       		.byte	96
- 518 01d1 81       		.byte	-127
- 519 01d2 4F       		.byte	79
- 520 01d3 DC       		.byte	-36
- 521 01d4 22       		.byte	34
- 522 01d5 2A       		.byte	42
- 523 01d6 90       		.byte	-112
- 524 01d7 88       		.byte	-120
- 525 01d8 46       		.byte	70
- 526 01d9 EE       		.byte	-18
- 527 01da B8       		.byte	-72
- 528 01db 14       		.byte	20
- 529 01dc DE       		.byte	-34
- 530 01dd 5E       		.byte	94
- 531 01de 0B       		.byte	11
- 532 01df DB       		.byte	-37
- 533 01e0 E0       		.byte	-32
- 534 01e1 32       		.byte	50
- 535 01e2 3A       		.byte	58
- 536 01e3 0A       		.byte	10
- 537 01e4 49       		.byte	73
- 538 01e5 06       		.byte	6
- 539 01e6 24       		.byte	36
- 540 01e7 5C       		.byte	92
- 541 01e8 C2       		.byte	-62
- 542 01e9 D3       		.byte	-45
- 543 01ea AC       		.byte	-84
- 544 01eb 62       		.byte	98
- 545 01ec 91       		.byte	-111
- 546 01ed 95       		.byte	-107
- 547 01ee E4       		.byte	-28
- 548 01ef 79       		.byte	121
- 549 01f0 E7       		.byte	-25
- 550 01f1 C8       		.byte	-56
- 551 01f2 37       		.byte	55
- 552 01f3 6D       		.byte	109
- 553 01f4 8D       		.byte	-115
-
GAS LISTING /tmp/ccjbMjHD.s 			page 12
-
-
- 554 01f5 D5       		.byte	-43
- 555 01f6 4E       		.byte	78
- 556 01f7 A9       		.byte	-87
- 557 01f8 6C       		.byte	108
- 558 01f9 56       		.byte	86
- 559 01fa F4       		.byte	-12
- 560 01fb EA       		.byte	-22
- 561 01fc 65       		.byte	101
- 562 01fd 7A       		.byte	122
- 563 01fe AE       		.byte	-82
- 564 01ff 08       		.byte	8
- 565 0200 BA       		.byte	-70
- 566 0201 78       		.byte	120
- 567 0202 25       		.byte	37
- 568 0203 2E       		.byte	46
- 569 0204 1C       		.byte	28
- 570 0205 A6       		.byte	-90
- 571 0206 B4       		.byte	-76
- 572 0207 C6       		.byte	-58
- 573 0208 E8       		.byte	-24
- 574 0209 DD       		.byte	-35
- 575 020a 74       		.byte	116
- 576 020b 1F       		.byte	31
- 577 020c 4B       		.byte	75
- 578 020d BD       		.byte	-67
- 579 020e 8B       		.byte	-117
- 580 020f 8A       		.byte	-118
- 581 0210 70       		.byte	112
- 582 0211 3E       		.byte	62
- 583 0212 B5       		.byte	-75
- 584 0213 66       		.byte	102
- 585 0214 48       		.byte	72
- 586 0215 03       		.byte	3
- 587 0216 F6       		.byte	-10
- 588 0217 0E       		.byte	14
- 589 0218 61       		.byte	97
- 590 0219 35       		.byte	53
- 591 021a 57       		.byte	87
- 592 021b B9       		.byte	-71
- 593 021c 86       		.byte	-122
- 594 021d C1       		.byte	-63
- 595 021e 1D       		.byte	29
- 596 021f 9E       		.byte	-98
- 597 0220 E1       		.byte	-31
- 598 0221 F8       		.byte	-8
- 599 0222 98       		.byte	-104
- 600 0223 11       		.byte	17
- 601 0224 69       		.byte	105
- 602 0225 D9       		.byte	-39
- 603 0226 8E       		.byte	-114
- 604 0227 94       		.byte	-108
- 605 0228 9B       		.byte	-101
- 606 0229 1E       		.byte	30
- 607 022a 87       		.byte	-121
- 608 022b E9       		.byte	-23
- 609 022c CE       		.byte	-50
- 610 022d 55       		.byte	85
-
GAS LISTING /tmp/ccjbMjHD.s 			page 13
-
-
- 611 022e 28       		.byte	40
- 612 022f DF       		.byte	-33
- 613 0230 8C       		.byte	-116
- 614 0231 A1       		.byte	-95
- 615 0232 89       		.byte	-119
- 616 0233 0D       		.byte	13
- 617 0234 BF       		.byte	-65
- 618 0235 E6       		.byte	-26
- 619 0236 42       		.byte	66
- 620 0237 68       		.byte	104
- 621 0238 41       		.byte	65
- 622 0239 99       		.byte	-103
- 623 023a 2D       		.byte	45
- 624 023b 0F       		.byte	15
- 625 023c B0       		.byte	-80
- 626 023d 54       		.byte	84
- 627 023e BB       		.byte	-69
- 628 023f 16       		.byte	22
- 629              		.align 32
- 630              		.type	KAESBlockCipherVecRegRijndaelInvSBoxV, @object
- 631              		.size	KAESBlockCipherVecRegRijndaelInvSBoxV, 256
- 632              	KAESBlockCipherVecRegRijndaelInvSBoxV:
- 633 0240 52       		.byte	82
- 634 0241 09       		.byte	9
- 635 0242 6A       		.byte	106
- 636 0243 D5       		.byte	-43
- 637 0244 30       		.byte	48
- 638 0245 36       		.byte	54
- 639 0246 A5       		.byte	-91
- 640 0247 38       		.byte	56
- 641 0248 BF       		.byte	-65
- 642 0249 40       		.byte	64
- 643 024a A3       		.byte	-93
- 644 024b 9E       		.byte	-98
- 645 024c 81       		.byte	-127
- 646 024d F3       		.byte	-13
- 647 024e D7       		.byte	-41
- 648 024f FB       		.byte	-5
- 649 0250 7C       		.byte	124
- 650 0251 E3       		.byte	-29
- 651 0252 39       		.byte	57
- 652 0253 82       		.byte	-126
- 653 0254 9B       		.byte	-101
- 654 0255 2F       		.byte	47
- 655 0256 FF       		.byte	-1
- 656 0257 87       		.byte	-121
- 657 0258 34       		.byte	52
- 658 0259 8E       		.byte	-114
- 659 025a 43       		.byte	67
- 660 025b 44       		.byte	68
- 661 025c C4       		.byte	-60
- 662 025d DE       		.byte	-34
- 663 025e E9       		.byte	-23
- 664 025f CB       		.byte	-53
- 665 0260 54       		.byte	84
- 666 0261 7B       		.byte	123
- 667 0262 94       		.byte	-108
-
GAS LISTING /tmp/ccjbMjHD.s 			page 14
-
-
- 668 0263 32       		.byte	50
- 669 0264 A6       		.byte	-90
- 670 0265 C2       		.byte	-62
- 671 0266 23       		.byte	35
- 672 0267 3D       		.byte	61
- 673 0268 EE       		.byte	-18
- 674 0269 4C       		.byte	76
- 675 026a 95       		.byte	-107
- 676 026b 0B       		.byte	11
- 677 026c 42       		.byte	66
- 678 026d FA       		.byte	-6
- 679 026e C3       		.byte	-61
- 680 026f 4E       		.byte	78
- 681 0270 08       		.byte	8
- 682 0271 2E       		.byte	46
- 683 0272 A1       		.byte	-95
- 684 0273 66       		.byte	102
- 685 0274 28       		.byte	40
- 686 0275 D9       		.byte	-39
- 687 0276 24       		.byte	36
- 688 0277 B2       		.byte	-78
- 689 0278 76       		.byte	118
- 690 0279 5B       		.byte	91
- 691 027a A2       		.byte	-94
- 692 027b 49       		.byte	73
- 693 027c 6D       		.byte	109
- 694 027d 8B       		.byte	-117
- 695 027e D1       		.byte	-47
- 696 027f 25       		.byte	37
- 697 0280 72       		.byte	114
- 698 0281 F8       		.byte	-8
- 699 0282 F6       		.byte	-10
- 700 0283 64       		.byte	100
- 701 0284 86       		.byte	-122
- 702 0285 68       		.byte	104
- 703 0286 98       		.byte	-104
- 704 0287 16       		.byte	22
- 705 0288 D4       		.byte	-44
- 706 0289 A4       		.byte	-92
- 707 028a 5C       		.byte	92
- 708 028b CC       		.byte	-52
- 709 028c 5D       		.byte	93
- 710 028d 65       		.byte	101
- 711 028e B6       		.byte	-74
- 712 028f 92       		.byte	-110
- 713 0290 6C       		.byte	108
- 714 0291 70       		.byte	112
- 715 0292 48       		.byte	72
- 716 0293 50       		.byte	80
- 717 0294 FD       		.byte	-3
- 718 0295 ED       		.byte	-19
- 719 0296 B9       		.byte	-71
- 720 0297 DA       		.byte	-38
- 721 0298 5E       		.byte	94
- 722 0299 15       		.byte	21
- 723 029a 46       		.byte	70
- 724 029b 57       		.byte	87
-
GAS LISTING /tmp/ccjbMjHD.s 			page 15
-
-
- 725 029c A7       		.byte	-89
- 726 029d 8D       		.byte	-115
- 727 029e 9D       		.byte	-99
- 728 029f 84       		.byte	-124
- 729 02a0 90       		.byte	-112
- 730 02a1 D8       		.byte	-40
- 731 02a2 AB       		.byte	-85
- 732 02a3 00       		.byte	0
- 733 02a4 8C       		.byte	-116
- 734 02a5 BC       		.byte	-68
- 735 02a6 D3       		.byte	-45
- 736 02a7 0A       		.byte	10
- 737 02a8 F7       		.byte	-9
- 738 02a9 E4       		.byte	-28
- 739 02aa 58       		.byte	88
- 740 02ab 05       		.byte	5
- 741 02ac B8       		.byte	-72
- 742 02ad B3       		.byte	-77
- 743 02ae 45       		.byte	69
- 744 02af 06       		.byte	6
- 745 02b0 D0       		.byte	-48
- 746 02b1 2C       		.byte	44
- 747 02b2 1E       		.byte	30
- 748 02b3 8F       		.byte	-113
- 749 02b4 CA       		.byte	-54
- 750 02b5 3F       		.byte	63
- 751 02b6 0F       		.byte	15
- 752 02b7 02       		.byte	2
- 753 02b8 C1       		.byte	-63
- 754 02b9 AF       		.byte	-81
- 755 02ba BD       		.byte	-67
- 756 02bb 03       		.byte	3
- 757 02bc 01       		.byte	1
- 758 02bd 13       		.byte	19
- 759 02be 8A       		.byte	-118
- 760 02bf 6B       		.byte	107
- 761 02c0 3A       		.byte	58
- 762 02c1 91       		.byte	-111
- 763 02c2 11       		.byte	17
- 764 02c3 41       		.byte	65
- 765 02c4 4F       		.byte	79
- 766 02c5 67       		.byte	103
- 767 02c6 DC       		.byte	-36
- 768 02c7 EA       		.byte	-22
- 769 02c8 97       		.byte	-105
- 770 02c9 F2       		.byte	-14
- 771 02ca CF       		.byte	-49
- 772 02cb CE       		.byte	-50
- 773 02cc F0       		.byte	-16
- 774 02cd B4       		.byte	-76
- 775 02ce E6       		.byte	-26
- 776 02cf 73       		.byte	115
- 777 02d0 96       		.byte	-106
- 778 02d1 AC       		.byte	-84
- 779 02d2 74       		.byte	116
- 780 02d3 22       		.byte	34
- 781 02d4 E7       		.byte	-25
-
GAS LISTING /tmp/ccjbMjHD.s 			page 16
-
-
- 782 02d5 AD       		.byte	-83
- 783 02d6 35       		.byte	53
- 784 02d7 85       		.byte	-123
- 785 02d8 E2       		.byte	-30
- 786 02d9 F9       		.byte	-7
- 787 02da 37       		.byte	55
- 788 02db E8       		.byte	-24
- 789 02dc 1C       		.byte	28
- 790 02dd 75       		.byte	117
- 791 02de DF       		.byte	-33
- 792 02df 6E       		.byte	110
- 793 02e0 47       		.byte	71
- 794 02e1 F1       		.byte	-15
- 795 02e2 1A       		.byte	26
- 796 02e3 71       		.byte	113
- 797 02e4 1D       		.byte	29
- 798 02e5 29       		.byte	41
- 799 02e6 C5       		.byte	-59
- 800 02e7 89       		.byte	-119
- 801 02e8 6F       		.byte	111
- 802 02e9 B7       		.byte	-73
- 803 02ea 62       		.byte	98
- 804 02eb 0E       		.byte	14
- 805 02ec AA       		.byte	-86
- 806 02ed 18       		.byte	24
- 807 02ee BE       		.byte	-66
- 808 02ef 1B       		.byte	27
- 809 02f0 FC       		.byte	-4
- 810 02f1 56       		.byte	86
- 811 02f2 3E       		.byte	62
- 812 02f3 4B       		.byte	75
- 813 02f4 C6       		.byte	-58
- 814 02f5 D2       		.byte	-46
- 815 02f6 79       		.byte	121
- 816 02f7 20       		.byte	32
- 817 02f8 9A       		.byte	-102
- 818 02f9 DB       		.byte	-37
- 819 02fa C0       		.byte	-64
- 820 02fb FE       		.byte	-2
- 821 02fc 78       		.byte	120
- 822 02fd CD       		.byte	-51
- 823 02fe 5A       		.byte	90
- 824 02ff F4       		.byte	-12
- 825 0300 1F       		.byte	31
- 826 0301 DD       		.byte	-35
- 827 0302 A8       		.byte	-88
- 828 0303 33       		.byte	51
- 829 0304 88       		.byte	-120
- 830 0305 07       		.byte	7
- 831 0306 C7       		.byte	-57
- 832 0307 31       		.byte	49
- 833 0308 B1       		.byte	-79
- 834 0309 12       		.byte	18
- 835 030a 10       		.byte	16
- 836 030b 59       		.byte	89
- 837 030c 27       		.byte	39
- 838 030d 80       		.byte	-128
-
GAS LISTING /tmp/ccjbMjHD.s 			page 17
-
-
- 839 030e EC       		.byte	-20
- 840 030f 5F       		.byte	95
- 841 0310 60       		.byte	96
- 842 0311 51       		.byte	81
- 843 0312 7F       		.byte	127
- 844 0313 A9       		.byte	-87
- 845 0314 19       		.byte	25
- 846 0315 B5       		.byte	-75
- 847 0316 4A       		.byte	74
- 848 0317 0D       		.byte	13
- 849 0318 2D       		.byte	45
- 850 0319 E5       		.byte	-27
- 851 031a 7A       		.byte	122
- 852 031b 9F       		.byte	-97
- 853 031c 93       		.byte	-109
- 854 031d C9       		.byte	-55
- 855 031e 9C       		.byte	-100
- 856 031f EF       		.byte	-17
- 857 0320 A0       		.byte	-96
- 858 0321 E0       		.byte	-32
- 859 0322 3B       		.byte	59
- 860 0323 4D       		.byte	77
- 861 0324 AE       		.byte	-82
- 862 0325 2A       		.byte	42
- 863 0326 F5       		.byte	-11
- 864 0327 B0       		.byte	-80
- 865 0328 C8       		.byte	-56
- 866 0329 EB       		.byte	-21
- 867 032a BB       		.byte	-69
- 868 032b 3C       		.byte	60
- 869 032c 83       		.byte	-125
- 870 032d 53       		.byte	83
- 871 032e 99       		.byte	-103
- 872 032f 61       		.byte	97
- 873 0330 17       		.byte	23
- 874 0331 2B       		.byte	43
- 875 0332 04       		.byte	4
- 876 0333 7E       		.byte	126
- 877 0334 BA       		.byte	-70
- 878 0335 77       		.byte	119
- 879 0336 D6       		.byte	-42
- 880 0337 26       		.byte	38
- 881 0338 E1       		.byte	-31
- 882 0339 69       		.byte	105
- 883 033a 14       		.byte	20
- 884 033b 63       		.byte	99
- 885 033c 55       		.byte	85
- 886 033d 21       		.byte	33
- 887 033e 0C       		.byte	12
- 888 033f 7D       		.byte	125
- 889              		.align 16
- 890              		.type	lo_filter, @object
- 891              		.size	lo_filter, 16
- 892              	lo_filter:
- 893 0340 00       		.byte	0
- 894 0341 FF       		.byte	-1
- 895 0342 FF       		.byte	-1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 18
-
-
- 896 0343 FF       		.byte	-1
- 897 0344 FF       		.byte	-1
- 898 0345 FF       		.byte	-1
- 899 0346 FF       		.byte	-1
- 900 0347 FF       		.byte	-1
- 901 0348 FF       		.byte	-1
- 902 0349 FF       		.byte	-1
- 903 034a FF       		.byte	-1
- 904 034b FF       		.byte	-1
- 905 034c FF       		.byte	-1
- 906 034d FF       		.byte	-1
- 907 034e FF       		.byte	-1
- 908 034f FF       		.byte	-1
- 909              		.align 16
- 910              		.type	FF_tab, @object
- 911              		.size	FF_tab, 16
- 912              	FF_tab:
- 913 0350 00       		.byte	0
- 914 0351 1B       		.byte	27
- 915 0352 36       		.byte	54
- 916 0353 2D       		.byte	45
- 917 0354 6C       		.byte	108
- 918 0355 77       		.byte	119
- 919 0356 5A       		.byte	90
- 920 0357 41       		.byte	65
- 921 0358 00       		.byte	0
- 922 0359 00       		.byte	0
- 923 035a 00       		.byte	0
- 924 035b 00       		.byte	0
- 925 035c 00       		.byte	0
- 926 035d 00       		.byte	0
- 927 035e 00       		.byte	0
- 928 035f 00       		.byte	0
- 929              		.data
- 930              		.type	KAESBlockCipherVecRegFFtable, @object
- 931              		.size	KAESBlockCipherVecRegFFtable, 8
- 932              	KAESBlockCipherVecRegFFtable:
- 933 0000 00       		.byte	0
- 934 0001 1B       		.byte	27
- 935 0002 36       		.byte	54
- 936 0003 2D       		.byte	45
- 937 0004 6C       		.byte	108
- 938 0005 77       		.byte	119
- 939 0006 5A       		.byte	90
- 940 0007 41       		.byte	65
- 941              		.section	.rodata
- 942              		.align 32
- 943              		.type	KAESBlockCipherVecRegRcon, @object
- 944              		.size	KAESBlockCipherVecRegRcon, 40
- 945              	KAESBlockCipherVecRegRcon:
- 946 0360 01000000 		.long	1
- 947 0364 02000000 		.long	2
- 948 0368 04000000 		.long	4
- 949 036c 08000000 		.long	8
- 950 0370 10000000 		.long	16
- 951 0374 20000000 		.long	32
- 952 0378 40000000 		.long	64
-
GAS LISTING /tmp/ccjbMjHD.s 			page 19
-
-
- 953 037c 80000000 		.long	128
- 954 0380 1B000000 		.long	27
- 955 0384 36000000 		.long	54
- 956              	.LC0:
- 957 0388 53756242 		.string	"SubBytes"
- 957      79746573 
- 957      00
- 958              	.LC1:
- 959 0391 25733A09 		.string	"%s:\t%0.8x %0.8x %0.8x %0.8x\n"
- 959      25302E38 
- 959      78202530 
- 959      2E387820 
- 959      25302E38 
- 960              	.LC2:
- 961 03ae 526F7442 		.string	"RotBytesLeft"
- 961      79746573 
- 961      4C656674 
- 961      00
- 962              	.LC3:
- 963 03bb 56656358 		.string	"VecXor"
- 963      6F7200
- 964              	.LC4:
- 965 03c2 53746174 		.string	"StateDupColumn3"
- 965      65447570 
- 965      436F6C75 
- 965      6D6E3300 
- 966              		.text
- 967              		.type	KAESBlockCipherVecRegKeyExpansion128, @function
- 968              	KAESBlockCipherVecRegKeyExpansion128:
- 969              	.LFB645:
- 970              		.file 2 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 20
-
-
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <krypto/extern.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "ncbi-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "aes-ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "cipher-priv.h"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "blockcipher-priv.h"
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/debug.h>
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/out.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <klib/rc.h>
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <byteswap.h>
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <string.h>
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <stdint.h>
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <stdlib.h>
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <assert.h>
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <sysalloc.h>
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <cpuid.h>
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VECREG
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include <v128.h>
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This implements the AES cipher as defined by FIPS-197 from NIST
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Notes on implmentation:
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Byte ordering in AES is not critical but unllike the original implmentation
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * bytes are not re-ordered to a big endian order upon reading them in and this
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * code will expect to run on an Intel/AMD type processor and might have issues
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * on some big endian processors.
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Many functions are written as static inline functions to
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * facilitate GCC type assembly language optimization on various processors
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This implements the Equivalent Inverse Cipher not the Inverse Cipher.  In
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * general functions will match those defined in the FIPS-197 document where they
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * do not get optimized away for Intel/AMD XMM registers and AES-NI instructions.
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * NOTE:
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * C-99 types are used for specific sized types.  An unaddornded unsigned type
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is used for many index type variables to allow the compiler choice in
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * size where size does not matter very much.  As these index variables do
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * not go above 16 any size would do but the compiler can choose the size most
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * suited for array subscripting.
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-  81:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_00 =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
GAS LISTING /tmp/ccjbMjHD.s 			page 21
-
-
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_01 =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_0F =  { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F };
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec vec_10 =  { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                       0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 };
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * These functions implment the Advanced Encryption Standard AES as defined
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * in the FIPS (Federal Information Processing Standars Publication 197
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Of Nevember 26, 2001.
- 104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Read a blocks worth of bytes into an CipherVec
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector registers it is a single instruction, without them it
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is a memmove call
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateIn) (const void * ain)
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateIn) (const void * ain)
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec vec;
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         "movdqu (%[a]),%[s]" : [s] "=x" (vec) : [a] "D" (ain)
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         );
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (&u.bytes, ain, sizeof (u));
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 22
-
-
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Write a block's worth of bytes out from an CipherVec
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector registers it is a single instruction, without them it
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * is a memmove call
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(StateOut) (const CipherVec vec, void * rout)
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec rvec = vec;
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         "movdqu %[s],(%[a])" : : [s] "x" (rvec), [a] "D" (rout)
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         );
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     memmove (rout, &vec, sizeof (vec));
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecXor) (CipherVec v1, CipherVec v2)
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] ^= u2.columns[ix];
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 23
-
-
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAnd) (CipherVec v1, CipherVec v2)
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] &= u2.columns[ix];
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecOr) (CipherVec v1, CipherVec v2)
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] |= u2.columns[ix];
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 24
-
-
- 255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecAdd) (CipherVec v1, CipherVec v2)
- 259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 + v2;
- 263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] += u2.columns[ix];
- 274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
- 283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSub) (CipherVec v1, CipherVec v2)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] -= u2.columns[ix];
- 302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
- 311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-
GAS LISTING /tmp/ccjbMjHD.s 			page 25
-
-
- 312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecMul) (CipherVec v1, CipherVec v2)
- 315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 * v2;
- 319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] *= u2.columns[ix];
- 330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
- 339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecDiv) (CipherVec v1, CipherVec v2)
- 343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
- 345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 / v2;
- 347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u1, u2; /* state and key not countries :) */
- 351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u1.state = v1;
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u2.state = v2;
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < AES_Nb; ++ix)
- 357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u1.columns[ix] /= u2.columns[ix];
- 358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u1.state;
- 360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
- 366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 26
-
-
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(PackShuffleBytes) (CipherVec dest, CipherVec mask)
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFB128 (dest, mask);
- 374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u out, in, gate;
- 378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = dest;
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     gate.state = mask;
- 382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof dest; ++ix)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if (gate.bytes[ix] & 0x80)
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = 0;
- 387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             out.bytes[ix] = in.bytes[gate.bytes[ix] & 0x0F];
- 389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
- 392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSLLBI) (CipherVec v, const int k)
- 403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec sl_mask [9] = 
- 406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
- 407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- 409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
- 410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE },
- 411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
- 412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC },
- 413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
- 414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8 },
- 415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
- 416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0 },
- 417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
- 418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0 },
- 419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
- 420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0 },
- 421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 },
- 423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- 425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         };
-
GAS LISTING /tmp/ccjbMjHD.s 			page 27
-
-
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (k <= 8);
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("mask", sl_mask[k]); */
- 432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 1", vv); */
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 2", vv); */
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("v 3", vv); */
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u vv; /* state and key not countries :) */
- 442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv.state = v;
- 445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (v); ++ix)
- 447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("SLLBI %d %x ", k, vv.bytes[ix]);
- 449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         vv.bytes[ix] <<= k;
- 450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("%x\n", vv.bytes[ix]);
- 451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv.state;
- 453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(VecSRLBI) (CipherVec v, const int k)
- 464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec sr_mask [9] = 
- 467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
- 471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F },
- 472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
- 473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F },
- 474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
- 475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
- 476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
- 477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F },
- 478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
- 479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 },
- 480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 },
- 482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-
GAS LISTING /tmp/ccjbMjHD.s 			page 28
-
-
- 483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
- 484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- 486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         };
- 487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u vv; /* state and key not countries :) */
- 495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv.state = v;
- 498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (v); ++ix)
- 500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("SRLBI %d %x ", k, vv.bytes[ix]);
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         vv.bytes[ix] >>= k;
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         KOutMsg ("%x\n", vv.bytes[ix]);
- 504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv.state;
- 506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
- 513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SetColumn) (CipherVec state, AESWord column, const int which)
- 517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [which] = column;
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = u.state;
- 525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.4
- 532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The AddRoundKey transformation is a sinple exclusive or of all 128 bits
- 534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * in the current block against a round key.  This operation is used in all
- 535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher and EqInvCipher rounds
- 536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * With vector types it is a single operation that with vector registers is
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * a single op-code.
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-
GAS LISTING /tmp/ccjbMjHD.s 			page 29
-
-
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
- 542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AddRoundKey) (CipherVec state, CipherVec round_key)
- 546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(VecXor) (state, round_key);
- 548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.2
- 553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS 197 describes the state in column major format
- 555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * while C and assembly programmers tend to think in row major
- 556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The byte order is 0,1,2,3,,...F as shown in the first diagram.
- 557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *  ShiftRows() is defined as leaving this state
- 559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- 561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 5 | 9 | D | 1 |
- 563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- 565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | F | 3 | 7 | B |
- 567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
- 571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftRows) (CipherVec state)
- 575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec ShiftRowTable
- 578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     = {  0,  5, 10, 15,  4,  9, 14,  3,  8, 13,  2,  7, 12,  1,  6, 11 };
- 580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.3.1
- 588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * InvShiftRows() is defined as leaving this state
- 590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 0 | 4 | 8 | C |
- 592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | D | 1 | 5 | 9 |
- 594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | A | E | 2 | 6 |
- 596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
-
GAS LISTING /tmp/ccjbMjHD.s 			page 30
-
-
- 597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 7 | B | F | 3 |
- 598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
- 602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvShiftRows) (CipherVec state)
- 607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVecByte InvShiftRowTable
- 609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         = {  0, 13, 10,  7,  4,  1, 14, 11,  8,  5,  2, 15, 12,  9,  6,  3 };
- 611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 3 | 7 | B | F |
- 620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 0 | 4 | 8 | C |
- 622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | 1 | 5 | 9 | D |
- 624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 2 | 6 | A | E |
- 626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
- 630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesRight) (CipherVec state)
- 634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec ShiftRowTable
- 637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     = {  3,  0,  1,  2,  7,  4,  5,  6, 11,  8,  9, 10, 15, 12, 13, 14 };
- 639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 0 | 4 | 8 | C |     | 1 | 5 | B | D |
- 648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 1 | 5 | 9 | D |     | 2 | 6 | 8 | E |
- 650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 2 | 6 | A | E |     | 3 | 7 | 9 | F |
- 652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * | 3 | 7 | B | F |     | 0 | 4 | 8 | C |
-
GAS LISTING /tmp/ccjbMjHD.s 			page 31
-
-
- 654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * +---+---+---+---+     +---+---+---+---+
- 655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
- 658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RotBytesLeft) (CipherVec state)
- 662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec ShiftRowTable
- 664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /*   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */
- 665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         = {  1,  2,  3,  0,  5,  6,  7,  4,  9, 10, 11,  8, 13, 14, 15, 12 };
- 666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.1
- 674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SubBytes replaces each byte in a state with a specific byte value from
- 679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * A Rijndael Substitution box
- 680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const 
- 682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(RijndaelSBox)[256] = 
- 683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E   
- 685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 0- */ 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 
- 686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 1- */ 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 
- 687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 2- */ 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 
- 688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 3- */ 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 
- 689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 4- */ 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 
- 690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 5- */ 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 
- 691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 6- */ 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 
- 692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 7- */ 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 
- 693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 8- */ 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 
- 694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 9- */ 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 
- 695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* A- */ 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 
- 696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* B- */ 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 
- 697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* C- */ 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 
- 698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* D- */ 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 
- 699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* E- */ 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 
- 700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* F- */ 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 
- 701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if 0
- 705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 32
-
-
- 711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (u.bytes); ++ix)
- 718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u.bytes[ix] = AESBCMEMBER(RijndaelSBox)[u.bytes[ix]];
- 720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SubWord performs the same operation as SubBytes but on
- 728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the four bytes of a column and not a whole state
- 729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(SubWord) (AESWord w)
- 732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(SubWord) (AESWord w)
- 736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESColumn col;
- 738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if 0
- 747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * InvSubBytes replaces each byte in a state with a specific byte value from
- 749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * an Inversze Rijndael Substitution box.  That is InvSubBytes undoes SubBytes
- 750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const 
- 752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint8_t AESBCMEMBER(RijndaelInvSBox)[256] = 
- 753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*        -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E   
- 755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 0- */ 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 
- 756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 1- */ 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 
- 757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 2- */ 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 
- 758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 3- */ 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 
- 759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 4- */ 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 
- 760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 5- */ 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 
- 761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 6- */ 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 
- 762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 7- */ 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 
- 763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 8- */ 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 
- 764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 9- */ 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 
- 765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* A- */ 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 
- 766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* B- */ 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 
- 767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* C- */ 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 33
-
-
- 768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* D- */ 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 
- 769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* E- */ 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 
- 770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* F- */ 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 
- 771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
- 782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (u.bytes); ++ix)
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         u.bytes[ix] = AESBCMEMBER(RijndaelInvSBox)[u.bytes[ix]];
- 787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RijndaelSBoxV)[16] = 
- 794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F
- 796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x7
- 797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC
- 798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x1
- 799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x7
- 800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x8
- 801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xC
- 802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA
- 803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD
- 804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x7
- 805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xD
- 806:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x7
- 807:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x0
- 808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8
- 809:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9
- 810:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xD
- 811:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x1
- 812:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 813:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 814:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(RijndaelInvSBoxV)[16] = 
- 816:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 817:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     -0    -1    -2    -3    -4    -5    -6    -7    -8    -9    -A    -B    -C    -D    -E    -F
- 818:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xF
- 819:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xC
- 820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4
- 821:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x2
- 822:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x9
- 823:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x8
- 824:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 34
-
-
- 825:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6
- 826:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x7
- 827:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6
- 828:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1
- 829:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF
- 830:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5
- 831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xE
- 832:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x6
- 833:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7
- 834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
- 835:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 836:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 837:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
- 838:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec lo_filter = { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 839:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
- 840:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 841:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
- 843:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 844:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 845:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 846:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytesInt) (CipherVec state, const CipherVec box [16])
- 847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 848:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec lo, hi, tmp, out;
- 849:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
- 850:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 852:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 853:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("state", state); */
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 855:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("lo", lo); */
- 856:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 860:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 861:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
- 862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecDiv) (state, vec_10);
- 863:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("hi", hi); */
- 864:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
- 865:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 867:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 871:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 873:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("tmp", tmp); */
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 875:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("out", out); */
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 877:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("hi", hi); */
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 879:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*         DEBUG_CIPHER_VECTOR ("hi", hi); */
- 880:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
- 881:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*     DEBUG_CIPHER_VECTOR ("out", out); */
-
GAS LISTING /tmp/ccjbMjHD.s 			page 35
-
-
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 883:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 884:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 885:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 886:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 887:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 888:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 889:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 890:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 891:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(SubBytes) (CipherVec state)
- 892:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 893:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelSBoxV));
- 894:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 895:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 896:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 897:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 898:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 899:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 900:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 901:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 902:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvSubBytes) (CipherVec state)
- 903:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(SubBytesInt) (state, AESBCMEMBER(RijndaelInvSBoxV));
- 905:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 906:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 907:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 908:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
- 909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.1.3
- 910:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 911:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 912:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
- 913:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * there are no psllb or psrlb instructions so shift words not bytes
- 914:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * and then cut off bits that would have been zeroed if there were
- 915:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * such instructions
- 916:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
- 917:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * 
- 918:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
- 919:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const CipherVec FF_tab = 
- 920:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** { 0x00, 0x1B, 0x36, 0x2D, 0x6C, 0x77, 0x5A, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- 921:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 922:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 923:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
- 924:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 925:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul) (register CipherVec state, const int bits)
- 928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec sl, sr;
- 930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (bits <= 8);
- 932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 36
-
-
- 939:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(VecXor)(sl, sr);
- 940:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 941:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 942:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 943:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 944:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_02) (CipherVec state)
- 945:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 946:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 947:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 948:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_02) (register CipherVec state)
- 949:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 950:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 951:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 952:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 1);
- 953:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 954:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 956:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 959:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 960:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
- 961:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 962:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 963:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 964:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_04) (CipherVec state)
- 965:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 966:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 967:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 968:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 2);
- 969:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 970:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 971:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 972:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 973:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 974:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 975:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 976:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
- 977:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 978:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 979:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
- 980:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FF_mul_08) (CipherVec state)
- 981:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 982:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 983:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 984:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 3);
- 985:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 986:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 987:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 988:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 989:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 990:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 991:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static AESByte AESBCMEMBER(FFtable)[] = { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41 };
- 992:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 993:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 995:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFtab) (uint8_t x)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 37
-
-
- 996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
- 997:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
- 998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
- 999:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFtab) (uint8_t x)
-1000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(FFtable)[x];
-1002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1003:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1004:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1005:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1006:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul02) (AESByte b)
-1007:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1008:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1009:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1010:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul02) (AESByte b)
-1011:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 1) ^ AESBCMEMBER(FFtab)(b >> 7);
-1013:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1014:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1015:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1016:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1017:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul04) (AESByte b)
-1018:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1021:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul04) (AESByte b)
-1022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 2) ^ AESBCMEMBER(FFtab)(b >> 6);
-1024:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1025:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1026:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1027:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1028:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul08) (AESByte b)
-1029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1030:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1032:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESByte AESBCMEMBER(FFmul08) (AESByte b)
-1033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (b << 3) ^ AESBCMEMBER(FFtab)(b >> 5);
-1035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1036:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1038:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1039:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-1040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1041:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1043:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MixColumns) (CipherVec state)
-1044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec c0, c1, c2, c3;
-1046:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(RotBytesLeft) (state);
-1048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c2 = AESBCMEMBER(RotBytesLeft) (c1);
-1049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c3 = AESBCMEMBER(RotBytesLeft) (c2);
-1050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(VecXor) (state, c1);
-1051:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1052:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 38
-
-
-1053:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1054:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(FF_mul_02) (c0);
-1055:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1056:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1057:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         CipherVec_AES_u tmp;
-1058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned ix;
-1059:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1060:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp.state = c0;
-1061:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof tmp; ++ix)
-1063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             tmp.bytes[ix] = AESBCMEMBER(FFmul02)(tmp.bytes[ix]);
-1064:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         c0 = tmp.state;
-1065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1066:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c2);
-1068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c3);
-1069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c0);
-1070:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return c1;
-1072:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* obsoleted 
-1073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in, out;
-1074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
-1075:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1077:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1078:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (out.bytes); ix += 4)
-1079:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1080:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s0 = in.bytes[ix + 0];
-1081:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s1 = in.bytes[ix + 1];
-1082:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s2 = in.bytes[ix + 2];
-1083:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned const s3 = in.bytes[ix + 3];
-1084:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1085:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1);
-1086:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2);
-1087:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3);
-1088:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0);
-1089:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1090:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1091:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1092:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1093:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1094:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1095:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-1096:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1098:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(InvMixColumns) (CipherVec state)
-1100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-1102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESIMC (state);
-1103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec r1, r2, r3, f2, f4, f8;
-1105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r1 = AESBCMEMBER(RotBytesLeft) (state);
-1107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r2 = AESBCMEMBER(RotBytesLeft) (r1);
-1108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r3 = AESBCMEMBER(RotBytesLeft) (r2);        
-1109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 39
-
-
-1110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(VecXor) (state, r2);
-1111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(VecXor) (state, r1);
-1112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (r2, r3);
-1113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (f8, r1);
-1114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (f8, f2);
-1115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(FF_mul) (f2,1);
-1119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(FF_mul) (f4,2);
-1120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(FF_mul) (f8,3);
-1121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         CipherVec_AES_u fu2, fu4, fu8;
-1124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         unsigned ix;
-1125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu2.state = f2;
-1127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu4.state = f4;
-1128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         fu8.state = f8;
-1129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         for (ix = 0; ix < sizeof fu2; ++ix)
-1131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu2.bytes[ix] = AESBCMEMBER(FFmul02)(fu2.bytes[ix]);
-1133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu4.bytes[ix] = AESBCMEMBER(FFmul04)(fu4.bytes[ix]);
-1134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             fu8.bytes[ix] = AESBCMEMBER(FFmul08)(fu8.bytes[ix]);
-1135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f2 = fu2.state;
-1137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f4 = fu4.state;
-1138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         f8 = fu8.state;
-1139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f2);
-1143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f4);
-1144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f8);
-1145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-1149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in, out;
-1151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix;
-1152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (out.bytes); ix += AES_Nb)
-1156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s0 = in.bytes[ix + 0];
-1158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s1 = in.bytes[ix + 1];
-1159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s2 = in.bytes[ix + 2];
-1160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord s3 = in.bytes[ix + 3];
-1161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESWord p, q;
-1162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         q =     AESBCMEMBER(FFmul08)(s0 ^ s1 ^ s2 ^ s3);
-1164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         p = q ^ AESBCMEMBER(FFmul04)(s0 ^ s2);
-1165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         q = q ^ AESBCMEMBER(FFmul04)(s1 ^ s3);
-1166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 40
-
-
-1167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 0] =      s1 ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s0 ^ s1) ^ p;
-1168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 1] = s0      ^ s2 ^ s3 ^ AESBCMEMBER(FFmul02)(s1 ^ s2) ^ q;
-1169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 2] = s0 ^ s1      ^ s3 ^ AESBCMEMBER(FFmul02)(s2 ^ s3) ^ p;
-1170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out.bytes[ix + 3] = s0 ^ s1 ^ s2      ^ AESBCMEMBER(FFmul02)(s3 ^ s0) ^ q;
-1171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
-1179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * FIPS-197 5.2
-1180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-1182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(Rcon)[] = {
-1183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x00000001, 0x00000002, 0x00000004, 0x00000008,
-1184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x00000010, 0x00000020, 0x00000040, 0x00000080,
-1185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     0x0000001B, 0x00000036
-1186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
-1187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(RotWord) (AESWord w)
-1191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(RotWord) (AESWord w)
-1195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
-1197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-1202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** AESWord AESBCMEMBER(GetWord) (const AESByte * pointer)
-1206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-1208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * not portable to architectures which require aligned multibyte reads
-1209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * but as this only runs on Intel at this point it is fine for now
-1210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-1211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return *(AESWord*)pointer;
-1212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion) (CipherVec * r, const AESByte * key, unsigned Nr, unsigned Nk)
-1218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord * w = (AESWord*)r;
-1220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESWord * pRcon;
-1221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix, limit;
-1222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 41
-
-
-1224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_KEYEXP(("%s (w (%p), key (%p), Nr (%u) Nk (%u))\n", __func__, w, key, Nr, Nk));
-1226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < Nk; ++ix)
-1228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("i (dec): %u\n", ix));
-1230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         temp = AESBCMEMBER(GetWord) (key+(ix*4));
-1231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         w[ix] = temp;
-1232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("kw[%i]: %0.8x\n", ix, temp));
-1233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     limit = AES_Nb * (Nr + 1);
-1236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     pRcon = AESBCMEMBER(Rcon);
-1237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_KEYEXP(("Nk (%u) Nr (%u) limit (%u)\n", Nk, Nr, limit));
-1238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         
-1239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (; ix < limit; ++ix)
-1240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-1241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("i (dec): %u %u\n", ix, limit));
-1243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* temp should already be set */
-1245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("temp: %0.8x\n", temp));
-1246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ((ix % Nk) == 0)
-1247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(RotWord)(temp);
-1249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after RotWord: %0.8x \n", temp));
-1250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(SubWord) (temp);
-1251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-1252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("Rcon [i/Nk]: %0.8x\n", *pRcon));
-1253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp ^= *pRcon++;
-1254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after XOR with Rcon: %0.8x \n", temp));
-1255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else if ((Nk > 6) && ((ix % Nk) == 4))
-1257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-1258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             temp = AESBCMEMBER(SubWord) (temp);
-1259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             DEBUG_KEYEXP(("after SubWord: %0.8x \n", temp));
-1260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-1261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("w[i-Nk]: %0.8x\n", w[ix-Nk]));
-1262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         temp ^= w [ix - Nk];
-1263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_KEYEXP(("kw[ix]: %0.8x\n", temp));
-1264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         w [ix] = temp;
-1265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-1266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-1271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft32) (CipherVec state)
-1275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 42
-
-
-1281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-1287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-1294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftRight64) (CipherVec state)
-1298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF
-1301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[2];
-1307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
-1308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = 0;
-1309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = 0;
-1310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-1317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateShiftLeft64) (CipherVec state)
-1321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     static const CipherVec mask = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 
-1324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-1325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = 0;
-1333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 43
-
-
-1338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W3:W3:W3:W3
-1344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-1347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn3) (CipherVec state)
-1351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0xFF);
-1354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[3];
-1359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[3];
-1360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[3];
-1361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W2:W2:W2:W2
-1372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-1375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn2) (CipherVec state)
-1379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0xAA);
-1382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[2];
-1387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[2];
-1388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[2];
-1389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-
GAS LISTING /tmp/ccjbMjHD.s 			page 44
-
-
-1395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W2:W2:W2:W2
-1400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-1403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn1) (CipherVec state)
-1407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0x55);
-1410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[1];
-1415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[1];
-1416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[0] = temp.columns[1];
-1417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W0:W0:W0
-1428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-1431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateDupColumn0) (CipherVec state)
-1435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_VEC_REG)
-1437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_PSHUFD128 (state,0x00);
-1438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] = temp.columns[0];
-1443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] = temp.columns[0];
-1444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] = temp.columns[0];
-1445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-
GAS LISTING /tmp/ccjbMjHD.s 			page 45
-
-
-1452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:X0:X1
-1457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-1460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge1) (CipherVec w, CipherVec x)
-1464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (w, x, 0x00);
-1467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u ww;
-1469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u xx;
-1470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
-1472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
-1473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
-1475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
-1476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
-1478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X2:X3:W0:W1
-1489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-1492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge2) (CipherVec w, CipherVec x)
-1496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (w, x, 0x01);
-1499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u ww;
-1501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u xx;
-1502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.state = w;
-1504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     xx.state = x;
-1505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[0] = ww.columns[2];
-1507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[1] = ww.columns[3];
-1508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[2] = xx.columns[0];
-
GAS LISTING /tmp/ccjbMjHD.s 			page 46
-
-
-1509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ww.columns[3] = xx.columns[1];
-1510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ww.state;
-1512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X0:X1:X2:X3
-1520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     X2:X3:W0:W1
-1523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-1526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(StateMerge3) (CipherVec v0, CipherVec v1)
-1530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-1532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_SHUFPD (v0, v1, 0x02);
-1533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u t0;
-1535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u t1;
-1536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.state = v0;
-1538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t1.state = v1;
-1539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[2] = t0.columns[0];
-1541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[3] = t0.columns[1];
-1542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[0] = t1.columns[2];
-1543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     t0.columns[1] = t1.columns[3];
-1544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return t0.state;
-1546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * incoming vector in words
-1552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W1:W2:W3
-1553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-1554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * output vector in words
-1555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *     W0:W0^W1:W0^W1^W2:W0^W1^W2^W3
-1556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-1559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(ShiftXorColumns) (CipherVec state)
-1563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 47
-
-
-1566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-1570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-1572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u temp;
-1574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.state = state;
-1576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[1] ^= temp.columns[0];
-1578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[2] ^= temp.columns[1];
-1579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp.columns[3] ^= temp.columns[2];
-1580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return temp.state;
-1582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-1588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssist) (register CipherVec state, const int rcon)
-1592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return op_AESKEYGENASSIST (state, rcon);
-1595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u in;
-1597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u out;
-1598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     in.state = state;
-1602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[0] = AESBCMEMBER(SubWord)(in.columns[1]);
-1604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[1] = AESBCMEMBER(RotWord)(out.columns[0]) ^ rconw;
-1605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[2] = AESBCMEMBER(SubWord)(in.columns[3]);
-1606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out.columns[3] = AESBCMEMBER(RotWord)(out.columns[2]) ^ rconw;
-1607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out.state;
-1609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-1615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn1) (register CipherVec state, const int rcon)
-1619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 48
-
-
-1623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn1) (tmp);
-1624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
-1634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-1643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn2) (register CipherVec state)
-1647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, 0);
-1651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn2) (tmp);
-1652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-1658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-1667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(AesKeyGenAssistColumn3) (register CipherVec state, const int rcon)
-1671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if (USE_AES_NI)
-1673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp = state;
-1674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = op_AESKEYGENASSIST (tmp, rcon);
-1675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return  AESBCMEMBER(StateDupColumn3) (tmp);
-1676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec vrcon;
-1679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 49
-
-
-1680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-1691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #elif USE_VEC && 1
-1695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec tmp;
-1696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     
-1698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [3] = rcon;
-1699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
-1701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
-1702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
-1703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
-1704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, u.state);
-1705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-1706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
-1707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
-1708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-1709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec_AES_u u;
-1712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord rconw;
-1713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESWord temp;
-1714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
-1716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
-1717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
-1718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
-1719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
-1720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
-1722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
-1723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** */
-1725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion128) (CipherVec * round_keys, const AESByte * key)
-1731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 971              		.loc 2 1731 0
- 972              		.cfi_startproc
- 973 0014 55       		pushq	%rbp
- 974              	.LCFI2:
- 975              		.cfi_def_cfa_offset 16
-
GAS LISTING /tmp/ccjbMjHD.s 			page 50
-
-
- 976 0015 4889E5   		movq	%rsp, %rbp
- 977              		.cfi_offset 6, -16
- 978              	.LCFI3:
- 979              		.cfi_def_cfa_register 6
- 980 0018 4155     		pushq	%r13
- 981 001a 4154     		pushq	%r12
- 982 001c 53       		pushq	%rbx
- 983 001d 4881EC68 		subq	$11112, %rsp
- 983      2B0000
- 984 0024 4889BD78 		movq	%rdi, -10632(%rbp)
- 984      D6FFFF
- 985 002b 4889B570 		movq	%rsi, -10640(%rbp)
- 985      D6FFFF
- 986              		.loc 2 1731 0
- 987 0032 488B8570 		movq	-10640(%rbp), %rax
- 987      D6FFFF
- 988 0039 48898520 		movq	%rax, -9952(%rbp)
- 988      D9FFFF
- 989              	.LBB684:
- 990              	.LBB685:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 991              		.loc 2 126 0
- 992 0040 488B8520 		movq	-9952(%rbp), %rax
- 992      D9FFFF
- 993 0047 4889C7   		movq	%rax, %rdi
- 994              	#APP
- 995              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 996              		movdqu (%rdi),%xmm0
- 997              	# 0 "" 2
- 998              	#NO_APP
- 999 004e 660F7F85 		movdqa	%xmm0, -11136(%rbp)
- 999      80D4FFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 1000              		.loc 2 129 0
- 1001 0056 660F6F85 		movdqa	-11136(%rbp), %xmm0
- 1001      80D4FFFF 
- 1002              	.LBE685:
- 1003              	.LBE684:
-1732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec state;
-1733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec kgastate;
-1734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(StateIn) (key);
- 1004              		.loc 2 1735 0
- 1005 005e F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 1005      00D9FFFF 
-1736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = state;
- 1006              		.loc 2 1736 0
- 1007 0066 488B8578 		movq	-10632(%rbp), %rax
- 1007      D6FFFF
- 1008 006d F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 1008      00D9FFFF 
- 1009 0075 F30F7F00 		movdqu	%xmm0, (%rax)
- 1010 0079 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 1010      00D9FFFF 
- 1011 0081 F30F7F85 		movdqu	%xmm0, -9936(%rbp)
- 1011      30D9FFFF 
- 1012              	.LBB686:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 51
-
-
- 1013              	.LBB687:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1014              		.loc 2 1681 0
- 1015 0089 B8010000 		movl	$1, %eax
- 1015      00
- 1016 008e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1016      00000000 
- 1017 0096 F30F7F85 		movdqu	%xmm0, -9904(%rbp)
- 1017      50D9FFFF 
- 1018 009e 89854CD9 		movl	%eax, -9908(%rbp)
- 1018      FFFF
- 1019 00a4 F30F6F85 		movdqu	-9904(%rbp), %xmm0
- 1019      50D9FFFF 
- 1020 00ac F30F7F85 		movdqu	%xmm0, -9872(%rbp)
- 1020      70D9FFFF 
- 1021 00b4 8B854CD9 		movl	-9908(%rbp), %eax
- 1021      FFFF
- 1022 00ba 89856CD9 		movl	%eax, -9876(%rbp)
- 1022      FFFF
- 1023              	.LBB688:
- 1024              	.LBB689:
- 1025              	.LBB690:
- 1026              	.LBB691:
- 1027              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** *
-  25:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
-  26:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifndef _h_v128_
-  28:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #define _h_v128_
-  29:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #include <stdint.h>
-  31:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #include <x86intrin.h>
-  32:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  33:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __cplusplus
-
GAS LISTING /tmp/ccjbMjHD.s 			page 52
-
-
-  34:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** extern "C" {
-  35:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
-  36:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  37:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int8_t   v128_i8_t  __attribute__ ((vector_size (16),__may_alias__));
-  38:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint8_t  v128_u8_t  __attribute__ ((vector_size (16),__may_alias__));
-  39:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int16_t  v128_i16_t __attribute__ ((vector_size (16),__may_alias__));
-  40:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int32_t  v128_i32_t __attribute__ ((vector_size (16),__may_alias__));
-  41:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef int64_t  v128_i64_t __attribute__ ((vector_size (16),__may_alias__));
-  42:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint16_t v128_u16_t __attribute__ ((vector_size (16),__may_alias__));
-  43:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint32_t v128_u32_t __attribute__ ((vector_size (16),__may_alias__));
-  44:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef uint64_t v128_u64_t __attribute__ ((vector_size (16),__may_alias__));
-  45:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef float    v128_f_t   __attribute__ ((vector_size (16),__may_alias__));
-  46:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef double   v128_d_t   __attribute__ ((vector_size (16),__may_alias__));
-  47:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  48:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* NOTE:
-  49:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * these types are to hide perceived flaws in the Intel/GCC code
-  50:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * don't use them outside of this file.  uint8_t, int8_t and int64_t all
-  51:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * fail to compile so the above types can't be used within this file in some 
-  52:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * places.
-  53:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  */
-  54:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef char          v128_c_t   __attribute__ ((vector_size (16),__may_alias__));
-  55:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** typedef long long int v128_lli_t __attribute__ ((vector_size (16),__may_alias__));
-  56:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  57:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  58:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #if USE_VEC_REG
-  59:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  60:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* SSE
-  61:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movss
-  62:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movaps
-  63:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movups
-  64:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movlps
-  65:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movhps
-  66:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movlhps
-  67:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****   movhlps
-  68:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
-  69:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
-  70:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __MMX__
-  71:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* MMX
-  72:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_paddb (v8qi, v8qi)
-  73:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_paddw (v4hi, v4hi)
-  74:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_paddd (v2si, v2si)
-  75:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_psubb (v8qi, v8qi)
-  76:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psubw (v4hi, v4hi)
-  77:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psubd (v2si, v2si)
-  78:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_paddsb (v8qi, v8qi)
-  79:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_paddsw (v4hi, v4hi)
-  80:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_psubsb (v8qi, v8qi)
-  81:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psubsw (v4hi, v4hi)
-  82:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_paddusb (v8qi, v8qi)
-  83:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_paddusw (v4hi, v4hi)
-  84:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_psubusb (v8qi, v8qi)
-  85:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psubusw (v4hi, v4hi)
-  86:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmullw (v4hi, v4hi)
-  87:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmulhw (v4hi, v4hi)
-  88:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_pand (di, di)
-  89:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_pandn (di,di)
-  90:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_por (di, di)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 53
-
-
-  91:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    di __builtin_ia32_pxor (di, di)
-  92:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pcmpeqb (v8qi, v8qi)
-  93:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pcmpeqw (v4hi, v4hi)
-  94:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pcmpeqd (v2si, v2si)
-  95:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pcmpgtb (v8qi, v8qi)
-  96:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pcmpgtw (v4hi, v4hi)
-  97:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pcmpgtd (v2si, v2si)
-  98:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_punpckhbw (v8qi, v8qi)
-  99:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_punpckhwd (v4hi, v4hi)
- 100:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_punpckhdq (v2si, v2si)
- 101:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_punpcklbw (v8qi, v8qi)
- 102:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_punpcklwd (v4hi, v4hi)
- 103:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_punpckldq (v2si, v2si)
- 104:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_packsswb (v4hi, v4hi)
- 105:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_packssdw (v2si, v2si)
- 106:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_packuswb (v4hi, v4hi)
- 107:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      
- 108:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psllw (v4hi, v4hi)
- 109:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pslld (v2si, v2si)
- 110:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psllq (v1di, v1di)
- 111:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psrlw (v4hi, v4hi)
- 112:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psrld (v2si, v2si)
- 113:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psrlq (v1di, v1di)
- 114:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psraw (v4hi, v4hi)
- 115:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psrad (v2si, v2si)
- 116:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psllwi (v4hi, int)
- 117:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_pslldi (v2si, int)
- 118:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psllqi (v1di, int)
- 119:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psrlwi (v4hi, int)
- 120:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psrldi (v2si, int)
- 121:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psrlqi (v1di, int)
- 122:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_psrawi (v4hi, int)
- 123:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_psradi (v2si, int)
- 124:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 125:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 126:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 127:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE__
- 128:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* SSE
- 129:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmulhuw (v4hi, v4hi)
- 130:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pavgb (v8qi, v8qi)
- 131:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pavgw (v4hi, v4hi)
- 132:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v1di __builtin_ia32_psadbw (v8qi, v8qi)
- 133:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pmaxub (v8qi, v8qi)
- 134:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pmaxsw (v4hi, v4hi)
- 135:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v8qi __builtin_ia32_pminub (v8qi, v8qi)
- 136:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pminsw (v4hi, v4hi)
- 137:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_pextrw (v4hi, int)
- 138:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4hi __builtin_ia32_pinsrw (v4hi, int, int)
- 139:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_pmovmskb (v8qi)
- 140:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_maskmovq (v8qi, v8qi, char *)
- 141:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_movntq (di *, di)
- 142:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_sfence (void)
- 143:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 144:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comieq (v4sf, v4sf)
- 145:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comineq (v4sf, v4sf)
- 146:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comilt (v4sf, v4sf)
- 147:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comile (v4sf, v4sf)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 54
-
-
- 148:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comigt (v4sf, v4sf)
- 149:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_comige (v4sf, v4sf)
- 150:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomieq (v4sf, v4sf)
- 151:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomineq (v4sf, v4sf)
- 152:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomilt (v4sf, v4sf)
- 153:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomile (v4sf, v4sf)
- 154:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomigt (v4sf, v4sf)
- 155:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_ucomige (v4sf, v4sf)
- 156:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_addps (v4sf, v4sf)
- 157:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_subps (v4sf, v4sf)
- 158:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_mulps (v4sf, v4sf)
- 159:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_divps (v4sf, v4sf)
- 160:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_addss (v4sf, v4sf)
- 161:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_subss (v4sf, v4sf)
- 162:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_mulss (v4sf, v4sf)
- 163:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_divss (v4sf, v4sf)
- 164:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpeqps (v4sf, v4sf)
- 165:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpltps (v4sf, v4sf)
- 166:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpleps (v4sf, v4sf)
- 167:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpgtps (v4sf, v4sf)
- 168:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpgeps (v4sf, v4sf)
- 169:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpunordps (v4sf, v4sf)
- 170:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpneqps (v4sf, v4sf)
- 171:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnltps (v4sf, v4sf)
- 172:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnleps (v4sf, v4sf)
- 173:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpngtps (v4sf, v4sf)
- 174:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpngeps (v4sf, v4sf)
- 175:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpordps (v4sf, v4sf)
- 176:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpeqss (v4sf, v4sf)
- 177:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpltss (v4sf, v4sf)
- 178:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpless (v4sf, v4sf)
- 179:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpunordss (v4sf, v4sf)
- 180:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpneqss (v4sf, v4sf)
- 181:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnlts (v4sf, v4sf)
- 182:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpnless (v4sf, v4sf)
- 183:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4si __builtin_ia32_cmpordss (v4sf, v4sf)
- 184:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_maxps (v4sf, v4sf)
- 185:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_maxss (v4sf, v4sf)
- 186:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_minps (v4sf, v4sf)
- 187:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_minss (v4sf, v4sf)
- 188:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_andps (v4sf, v4sf)
- 189:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_andnps (v4sf, v4sf)
- 190:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_orps (v4sf, v4sf)
- 191:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_xorps (v4sf, v4sf)
- 192:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_movss (v4sf, v4sf)
- 193:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_movhlps (v4sf, v4sf)
- 194:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_movlhps (v4sf, v4sf)
- 195:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_unpckhps (v4sf, v4sf)
- 196:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_unpcklps (v4sf, v4sf)
- 197:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_cvtpi2ps (v4sf, v2si)
- 198:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_cvtsi2ss (v4sf, int)
- 199:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_cvtps2pi (v4sf)
- 200:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_cvtss2si (v4sf)
- 201:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v2si __builtin_ia32_cvttps2pi (v4sf)
- 202:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_cvttss2si (v4sf)
- 203:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rcpps (v4sf)
- 204:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rsqrtps (v4sf)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 55
-
-
- 205:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_sqrtps (v4sf)
- 206:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rcpss (v4sf)
- 207:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_rsqrtss (v4sf)
- 208:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_sqrtss (v4sf)
- 209:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    v4sf __builtin_ia32_shufps (v4sf, v4sf, int)
- 210:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 211:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 212:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPS ( v128_u8_t vin1, v128_u8_t vin2, const int mask )
- 213:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 214:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 215:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 216:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPS (v128_u8_t vin1, v128_u8_t vin2, const int mask)
- 217:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 218:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufps ((v128_f_t)vin1, (v128_f_t)vin2, mask);
- 219:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 220:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 221:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  /*
- 222:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    void __builtin_ia32_movntps (float *, v4sf)
- 223:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****    int __builtin_ia32_movmskps (v4sf)
- 224:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 225:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadaps (float *)
- 226:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movaps machine instruction as a load from memory. 
- 227:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storeaps (float *, v4sf)
- 228:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movaps machine instruction as a store to memory. 
- 229:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadups (float *)
- 230:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movups machine instruction as a load from memory. 
- 231:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storeups (float *, v4sf)
- 232:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movups machine instruction as a store to memory. 
- 233:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadsss (float *)
- 234:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movss machine instruction as a load from memory. 
- 235:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storess (float *, v4sf)
- 236:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movss machine instruction as a store to memory. 
- 237:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadhps (v4sf, const v2sf *)
- 238:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movhps machine instruction as a load from memory. 
- 239:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_loadlps (v4sf, const v2sf *)
- 240:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movlps machine instruction as a load from memory 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storehps (v2sf *, v4sf)
- 242:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movhps machine instruction as a store to memory. 
- 243:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** void __builtin_ia32_storelps (v2sf *, v4sf)
- 244:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the movlps machine instruction as a store to memory.
- 245:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 246:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 247:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 248:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE2__
- 249:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* sse2
- 250:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdeq (v2df, v2df)
- 251:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdlt (v2df, v2df)
- 252:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdle (v2df, v2df)
- 253:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdgt (v2df, v2df)
- 254:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdge (v2df, v2df)
- 255:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_comisdneq (v2df, v2df)
- 256:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdeq (v2df, v2df)
- 257:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdlt (v2df, v2df)
- 258:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdle (v2df, v2df)
- 259:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdgt (v2df, v2df)
- 260:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdge (v2df, v2df)
- 261:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ucomisdneq (v2df, v2df)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 56
-
-
- 262:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpeqpd (v2df, v2df)
- 263:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpltpd (v2df, v2df)
- 264:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmplepd (v2df, v2df)
- 265:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpgtpd (v2df, v2df)
- 266:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpgepd (v2df, v2df)
- 267:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpunordpd (v2df, v2df)
- 268:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpneqpd (v2df, v2df)
- 269:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnltpd (v2df, v2df)
- 270:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnlepd (v2df, v2df)
- 271:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpngtpd (v2df, v2df)
- 272:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpngepd (v2df, v2df)
- 273:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpordpd (v2df, v2df)
- 274:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpeqsd (v2df, v2df)
- 275:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpltsd (v2df, v2df)
- 276:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmplesd (v2df, v2df)
- 277:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpunordsd (v2df, v2df)
- 278:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpneqsd (v2df, v2df)
- 279:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnltsd (v2df, v2df)
- 280:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpnlesd (v2df, v2df)
- 281:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cmpordsd (v2df, v2df)
- 282:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_paddq (v2di, v2di)
- 283:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psubq (v2di, v2di)
- 284:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_addpd (v2df, v2df)
- 285:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_subpd (v2df, v2df)
- 286:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_mulpd (v2df, v2df)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_divpd (v2df, v2df)
- 288:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_addsd (v2df, v2df)
- 289:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_subsd (v2df, v2df)
- 290:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_mulsd (v2df, v2df)
- 291:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_divsd (v2df, v2df)
- 292:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_minpd (v2df, v2df)
- 293:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_maxpd (v2df, v2df)
- 294:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_minsd (v2df, v2df)
- 295:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_maxsd (v2df, v2df)
- 296:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_andpd (v2df, v2df)
- 297:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_andnpd (v2df, v2df)
- 298:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_orpd (v2df, v2df)
- 299:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_xorpd (v2df, v2df)
- 300:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_movsd (v2df, v2df)
- 301:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_unpckhpd (v2df, v2df)
- 302:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_unpcklpd (v2df, v2df)
- 303:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_paddb128 (v16qi, v16qi)
- 304:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_paddw128 (v8hi, v8hi)
- 305:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_paddd128 (v4si, v4si)
- 306:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_paddq128 (v2di, v2di)
- 307:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_psubb128 (v16qi, v16qi)
- 308:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psubw128 (v8hi, v8hi)
- 309:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psubd128 (v4si, v4si)
- 310:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psubq128 (v2di, v2di)
- 311:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmullw128 (v8hi, v8hi)
- 312:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmulhw128 (v8hi, v8hi)
- 313:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pand128 (v2di, v2di)
- 314:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pandn128 (v2di, v2di)
- 315:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_por128 (v2di, v2di)
- 316:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pxor128 (v2di, v2di)
- 317:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pavgb128 (v16qi, v16qi)
- 318:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pavgw128 (v8hi, v8hi)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 57
-
-
- 319:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pcmpeqb128 (v16qi, v16qi)
- 320:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pcmpeqw128 (v8hi, v8hi)
- 321:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pcmpeqd128 (v4si, v4si)
- 322:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pcmpgtb128 (v16qi, v16qi)
- 323:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pcmpgtw128 (v8hi, v8hi)
- 324:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pcmpgtd128 (v4si, v4si)
- 325:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pmaxub128 (v16qi, v16qi)
- 326:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmaxsw128 (v8hi, v8hi)
- 327:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pminub128 (v16qi, v16qi)
- 328:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pminsw128 (v8hi, v8hi)
- 329:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_punpckhbw128 (v16qi, v16qi)
- 330:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_punpckhwd128 (v8hi, v8hi)
- 331:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_punpckhdq128 (v4si, v4si)
- 332:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_punpckhqdq128 (v2di, v2di)
- 333:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_punpcklbw128 (v16qi, v16qi)
- 334:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_punpcklwd128 (v8hi, v8hi)
- 335:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_punpckldq128 (v4si, v4si)
- 336:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_punpcklqdq128 (v2di, v2di)
- 337:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_packsswb128 (v8hi, v8hi)
- 338:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_packssdw128 (v4si, v4si)
- 339:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_packuswb128 (v8hi, v8hi)
- 340:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmulhuw128 (v8hi, v8hi)
- 341:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_maskmovdqu (v16qi, v16qi)
- 342:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_loadupd (double *)
- 343:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_storeupd (double *, v2df)
- 344:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_loadhpd (v2df, double const *)
- 345:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_loadlpd (v2df, double const *)
- 346:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_movmskpd (v2df)
- 347:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_pmovmskb128 (v16qi)
- 348:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_movnti (int *, int)
- 349:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_movntpd (double *, v2df)
- 350:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_movntdq (v2df *, v2df)
- 351:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pshufd (v4si, int)
- 352:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pshuflw (v8hi, int)
- 353:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pshufhw (v8hi, int)
- 354:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psadbw128 (v16qi, v16qi)
- 355:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_sqrtpd (v2df)
- 356:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_sqrtsd (v2df)
- 357:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_shufpd (v2df, v2df, int)
- 358:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 359:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 360:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPD (v128_u8_t vin1, v128_u8_t vin2, const int mask)
- 361:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 362:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 363:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 364:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_SHUFPD (v128_u8_t vin1, v128_u8_t vin2, const int mask)
- 365:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 367:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 368:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 369:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 370:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtdq2pd (v4si)
- 371:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cvtdq2ps (v4si)
- 372:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvtpd2dq (v2df)
- 373:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_cvtpd2pi (v2df)
- 374:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cvtpd2ps (v2df)
- 375:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvttpd2dq (v2df)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 58
-
-
- 376:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_cvttpd2pi (v2df)
- 377:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtpi2pd (v2si)
- 378:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_cvtsd2si (v2df)
- 379:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_cvttsd2si (v2df)
- 380:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      long long __builtin_ia32_cvtsd2si64 (v2df)
- 381:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      long long __builtin_ia32_cvttsd2si64 (v2df)
- 382:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvtps2dq (v4sf)
- 383:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtps2pd (v4sf)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_cvttps2dq (v4sf)
- 385:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtsi2sd (v2df, int)
- 386:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtsi642sd (v2df, long long)
- 387:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_cvtsd2ss (v4sf, v2df)
- 388:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_cvtss2sd (v2df, v4sf)
- 389:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_clflush (const void *)
- 390:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_lfence (void)
- 391:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_mfence (void)
- 392:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_loaddqu (const char *)
- 393:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_storedqu (char *, v16qi)
- 394:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v1di __builtin_ia32_pmuludq (v2si, v2si)
- 395:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmuludq128 (v4si, v4si)
- 396:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psllw128 (v8hi, v8hi)
- 397:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pslld128 (v4si, v4si)
- 398:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psllq128 (v2di, v2di)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psrlw128 (v8hi, v8hi)
- 400:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psrld128 (v4si, v4si)
- 401:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psrlq128 (v2di, v2di)
- 402:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psraw128 (v8hi, v8hi)
- 403:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psrad128 (v4si, v4si)
- 404:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pslldqi128 (v2di, int)
- 405:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psllwi128 (v8hi, int)
- 406:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pslldi128 (v4si, int)
- 407:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 408:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 409:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 410:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSLLDI128 ( v128_u8_t vin, const int bit_count )
- 411:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 412:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 413:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 414:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSLLDI128 (v128_u8_t vin, const int bit_count)
- 415:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 417:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 418:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 419:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 420:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psllqi128 (v2di, int)
- 421:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psrldqi128 (v2di, int)
- 422:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psrlwi128 (v8hi, int)
- 423:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psrldi128 (v4si, int)
- 424:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 425:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 426:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 427:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSRLDI128 ( v128_u8_t vin, const int bit_count )
- 428:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 429:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 430:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline
- 431:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSRLDI128 (v128_u8_t vin, const int bit_count)
- 432:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
-
GAS LISTING /tmp/ccjbMjHD.s 			page 59
-
-
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 434:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 435:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 436:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /*
- 437:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_psrlqi128 (v2di, int)
- 438:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psrawi128 (v8hi, int)
- 439:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psradi128 (v4si, int)
- 440:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmaddwd128 (v8hi, v8hi)
- 441:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_movq128 (v2di)
- 442:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 443:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 444:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFD128 ( v128_u8_t vin, const int mask )
- 445:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 446:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      
- 447:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 448:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFD128 (v128_u8_t vin, const int mask)
- 449:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 451:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 452:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 453:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 454:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE3__
- 455:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* sse3
- 456:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_addsubpd (v2df, v2df)
- 457:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_addsubps (v4sf, v4sf)
- 458:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_haddpd (v2df, v2df)
- 459:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_haddps (v4sf, v4sf)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_hsubpd (v2df, v2df)
- 461:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_hsubps (v4sf, v4sf)
- 462:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_lddqu (char const *)
- 463:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_monitor (void *, unsigned int, unsigned int)
- 464:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_movddup (v2df)
- 465:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_movshdup (v4sf)
- 466:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_movsldup (v4sf)
- 467:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      void __builtin_ia32_mwait (unsigned int, unsigned int)
- 468:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 469:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v2df __builtin_ia32_loadddup (double const *)
- 470:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 471:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 472:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 473:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 474:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 475:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSSE3__
- 476:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 477:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* ssse3
- 478:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  *
- 479:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * The following built-in functions are available when -mssse3 is used. All of
- 480:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * them generate the machine instruction that is part of the name with MMX
- 481:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * registers.
- 482:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  *
- 483:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  * 
- 484:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_phaddd (v2si, v2si)
- 485:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phaddw (v4hi, v4hi)
- 486:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phaddsw (v4hi, v4hi)
- 487:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_phsubd (v2si, v2si)
- 488:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phsubw (v4hi, v4hi)
- 489:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_phsubsw (v4hi, v4hi)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 60
-
-
- 490:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_pmaddubsw (v8qi, v8qi)
- 491:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_pmulhrsw (v4hi, v4hi)
- 492:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8qi __builtin_ia32_pshufb (v8qi, v8qi)
- 493:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8qi __builtin_ia32_psignb (v8qi, v8qi)
- 494:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_psignd (v2si, v2si)
- 495:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_psignw (v4hi, v4hi)
- 496:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v1di __builtin_ia32_palignr (v1di, v1di, int)
- 497:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8qi __builtin_ia32_pabsb (v8qi)
- 498:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2si __builtin_ia32_pabsd (v2si)
- 499:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4hi __builtin_ia32_pabsw (v4hi)
- 500:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -mssse3 is used.
- 501:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** All of them generate the machine instruction that is part of the name
- 502:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** with SSE registers.
- 503:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 504:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_phaddd128 (v4si, v4si)
- 505:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phaddw128 (v8hi, v8hi)
- 506:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phaddsw128 (v8hi, v8hi)
- 507:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_phsubd128 (v4si, v4si)
- 508:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phsubw128 (v8hi, v8hi)
- 509:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phsubsw128 (v8hi, v8hi)
- 510:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmaddubsw128 (v16qi, v16qi)
- 511:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmulhrsw128 (v8hi, v8hi)
- 512:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** +    v16qi __builtin_ia32_pshufb128 (v16qi, v16qi)
- 513:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_psignb128 (v16qi, v16qi)
- 514:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_psignd128 (v4si, v4si)
- 515:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_psignw128 (v8hi, v8hi)
- 516:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_palignr128 (v2di, v2di, int)
- 517:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pabsb128 (v16qi)
- 518:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pabsd128 (v4si)
- 519:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pabsw128 (v8hi)
- 520:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****  */
- 521:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 522:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 523:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFB128 (register v128_u8_t vin, register const v128_u8_t vtab)
- 524:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 525:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 527:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PSHUFB128 (register v128_u8_t vin, register const v128_u8_t vtab)
- 528:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 530:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** }
- 531:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #endif
- 532:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 533:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** #ifdef __SSE4_1__
- 534:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** /* sse4.1
- 535:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -msse4.1 is used.
- 536:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** All of them generate the machine instruction that is part of the name.
- 537:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 538:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_blendpd (v2df, v2df, const int)
- 539:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_blendps (v4sf, v4sf, const int)
- 540:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_blendvpd (v2df, v2df, v2df)
- 541:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_blendvps (v4sf, v4sf, v4sf)
- 542:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_dppd (v2df, v2df, const int)
- 543:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_dpps (v4sf, v4sf, const int)
- 544:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_insertps128 (v4sf, v4sf, const int)
- 545:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_movntdqa (v2di *);
- 546:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_mpsadbw128 (v16qi, v16qi, const int)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 61
-
-
- 547:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_packusdw128 (v4si, v4si)
- 548:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pblendvb128 (v16qi, v16qi, v16qi)
- 549:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pblendw128 (v8hi, v8hi, const int)
- 550:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pcmpeqq (v2di, v2di)
- 551:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_phminposuw128 (v8hi)
- 552:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pmaxsb128 (v16qi, v16qi)
- 553:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmaxsd128 (v4si, v4si)
- 554:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmaxud128 (v4si, v4si)
- 555:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmaxuw128 (v8hi, v8hi)
- 556:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v16qi __builtin_ia32_pminsb128 (v16qi, v16qi)
- 557:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pminsd128 (v4si, v4si)
- 558:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pminud128 (v4si, v4si)
- 559:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pminuw128 (v8hi, v8hi)
- 560:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovsxbd128 (v16qi)
- 561:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovsxbq128 (v16qi)
- 562:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmovsxbw128 (v16qi)
- 563:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovsxdq128 (v4si)
- 564:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovsxwd128 (v8hi)
- 565:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovsxwq128 (v8hi)
- 566:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovzxbd128 (v16qi)
- 567:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovzxbq128 (v16qi)
- 568:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v8hi __builtin_ia32_pmovzxbw128 (v16qi)
- 569:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovzxdq128 (v4si)
- 570:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmovzxwd128 (v8hi)
- 571:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmovzxwq128 (v8hi)
- 572:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2di __builtin_ia32_pmuldq128 (v4si, v4si)
- 573:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4si __builtin_ia32_pmulld128 (v4si, v4si)
- 574:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestc128 (v2di, v2di)
- 575:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestnzc128 (v2di, v2di)
- 576:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      int __builtin_ia32_ptestz128 (v2di, v2di)
- 577:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_roundpd (v2df, const int)
- 578:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_roundps (v4sf, const int)
- 579:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v2df __builtin_ia32_roundsd (v2df, v2df, const int)
- 580:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****      v4sf __builtin_ia32_roundss (v4sf, v4sf, const int)
- 581:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** The following built-in functions are available when -msse4.1 is used.
- 582:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** 
- 583:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4sf __builtin_ia32_vec_set_v4sf (v4sf, float, const int)
- 584:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the insertps machine instruction. 
- 585:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** int __builtin_ia32_vec_ext_v16qi (v16qi, const int)
- 586:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pextrb machine instruction. 
- 587:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v16qi __builtin_ia32_vec_set_v16qi (v16qi, int, const int)
- 588:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pinsrb machine instruction. 
- 589:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v4si __builtin_ia32_vec_set_v4si (v4si, int, const int)
- 590:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** Generates the pinsrd machine instruction. 
- 591:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** */
- 592:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 593:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PINSRUD (register v128_u8_t vin, uint32_t ii, const int off)
- 594:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     __attribute__ ((always_inline));
- 595:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** static __inline__
- 596:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** v128_u8_t op_PINSRUD (register v128_u8_t vin, uint32_t ii, const int off)
- 597:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h **** {
- 598:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_vec_set_v4si ((v128_i32_t)vin, ii, off);
- 1028              		.loc 3 598 0
- 1029 00c0 8B856CD9 		movl	-9876(%rbp), %eax
- 1029      FFFF
- 1030 00c6 F30F6F85 		movdqu	-9872(%rbp), %xmm0
- 1030      70D9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 62
-
-
- 1031 00ce 660F3A22 		pinsrd	$3, %eax, %xmm0
- 1031      C003
- 1032              	.LBE691:
- 1033              	.LBE690:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 1034              		.loc 2 519 0
- 1035 00d4 F30F7F85 		movdqu	%xmm0, -9904(%rbp)
- 1035      50D9FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1036              		.loc 2 526 0
- 1037 00dc F30F6F85 		movdqu	-9904(%rbp), %xmm0
- 1037      50D9FFFF 
- 1038              	.LBE689:
- 1039              	.LBE688:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1040              		.loc 2 1681 0
- 1041 00e4 660F7F85 		movdqa	%xmm0, -11104(%rbp)
- 1041      A0D4FFFF 
- 1042 00ec F30F6F85 		movdqu	-9936(%rbp), %xmm0
- 1042      30D9FFFF 
- 1043 00f4 F30F7F85 		movdqu	%xmm0, -9856(%rbp)
- 1043      80D9FFFF 
- 1044 00fc F30F6F85 		movdqu	-9856(%rbp), %xmm0
- 1044      80D9FFFF 
- 1045 0104 F30F7F85 		movdqu	%xmm0, -9824(%rbp)
- 1045      A0D9FFFF 
- 1046 010c 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 1046      000000
- 1047 0113 48898598 		movq	%rax, -9832(%rbp)
- 1047      D9FFFF
- 1048              	.LBB692:
- 1049              	.LBB693:
- 1050              	.LBB694:
- 1051              	.LBB695:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 1052              		.loc 2 851 0
- 1053 011a 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1053      00000000 
- 1054 0122 F30F7F85 		movdqu	%xmm0, -9792(%rbp)
- 1054      C0D9FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1055              		.loc 2 854 0
- 1056 012a 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1056      00000000 
- 1057 0132 F30F6F8D 		movdqu	-9824(%rbp), %xmm1
- 1057      A0D9FFFF 
- 1058 013a F30F7F8D 		movdqu	%xmm1, -9712(%rbp)
- 1058      10DAFFFF 
- 1059 0142 F30F7F85 		movdqu	%xmm0, -9728(%rbp)
- 1059      00DAFFFF 
- 1060              	.LBB696:
- 1061              	.LBB697:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1062              		.loc 2 206 0
- 1063 014a F30F6F85 		movdqu	-9728(%rbp), %xmm0
- 1063      00DAFFFF 
- 1064 0152 F30F6F8D 		movdqu	-9712(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 63
-
-
- 1064      10DAFFFF 
- 1065 015a 660FDBC1 		pand	%xmm1, %xmm0
- 1066              	.LBE697:
- 1067              	.LBE696:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1068              		.loc 2 854 0
- 1069 015e F30F7F85 		movdqu	%xmm0, -9744(%rbp)
- 1069      F0D9FFFF 
- 1070 0166 F30F6F85 		movdqu	-9824(%rbp), %xmm0
- 1070      A0D9FFFF 
- 1071 016e F30F7F85 		movdqu	%xmm0, -9680(%rbp)
- 1071      30DAFFFF 
- 1072              	.LBB698:
- 1073              	.LBB699:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 1074              		.loc 3 433 0
- 1075 0176 F30F6F85 		movdqu	-9680(%rbp), %xmm0
- 1075      30DAFFFF 
- 1076 017e 660F72D0 		psrld	$4, %xmm0
- 1076      04
- 1077              	.LBE699:
- 1078              	.LBE698:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 1079              		.loc 2 857 0
- 1080 0183 F30F7F85 		movdqu	%xmm0, -9760(%rbp)
- 1080      E0D9FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1081              		.loc 2 859 0
- 1082 018b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1082      00000000 
- 1083 0193 F30F6F8D 		movdqu	-9760(%rbp), %xmm1
- 1083      E0D9FFFF 
- 1084 019b F30F7F8D 		movdqu	%xmm1, -9648(%rbp)
- 1084      50DAFFFF 
- 1085 01a3 F30F7F85 		movdqu	%xmm0, -9664(%rbp)
- 1085      40DAFFFF 
- 1086              	.LBB700:
- 1087              	.LBB701:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1088              		.loc 2 206 0
- 1089 01ab F30F6F85 		movdqu	-9664(%rbp), %xmm0
- 1089      40DAFFFF 
- 1090 01b3 F30F6F8D 		movdqu	-9648(%rbp), %xmm1
- 1090      50DAFFFF 
- 1091 01bb 660FDBC1 		pand	%xmm1, %xmm0
- 1092              	.LBE701:
- 1093              	.LBE700:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1094              		.loc 2 859 0
- 1095 01bf F30F7F85 		movdqu	%xmm0, -9760(%rbp)
- 1095      E0D9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 1096              		.loc 2 866 0
- 1097 01c7 C785BCD9 		movl	$0, -9796(%rbp)
- 1097      FFFF0000 
- 1097      0000
- 1098 01d1 E9BE0100 		jmp	.L4
-
GAS LISTING /tmp/ccjbMjHD.s 			page 64
-
-
- 1098      00
- 1099              		.cfi_offset 3, -40
- 1100              		.cfi_offset 12, -32
- 1101              		.cfi_offset 13, -24
- 1102              	.L5:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 1103              		.loc 2 868 0
- 1104 01d6 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 1104      00000000 
- 1105 01de F30F7F85 		movdqu	%xmm0, -9616(%rbp)
- 1105      70DAFFFF 
- 1106 01e6 F30F6F85 		movdqu	-9760(%rbp), %xmm0
- 1106      E0D9FFFF 
- 1107 01ee F30F7F85 		movdqu	%xmm0, -9632(%rbp)
- 1107      60DAFFFF 
- 1108 01f6 F30F6F85 		movdqu	-9616(%rbp), %xmm0
- 1108      70DAFFFF 
- 1109 01fe F30F7F85 		movdqu	%xmm0, -9584(%rbp)
- 1109      90DAFFFF 
- 1110 0206 F30F6F85 		movdqu	-9632(%rbp), %xmm0
- 1110      60DAFFFF 
- 1111 020e F30F7F85 		movdqu	%xmm0, -9600(%rbp)
- 1111      80DAFFFF 
- 1112              	.LBB702:
- 1113              	.LBB703:
- 1114              	.LBB704:
- 1115              	.LBB705:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1116              		.loc 3 529 0
- 1117 0216 F30F6F8D 		movdqu	-9600(%rbp), %xmm1
- 1117      80DAFFFF 
- 1118 021e F30F6F85 		movdqu	-9584(%rbp), %xmm0
- 1118      90DAFFFF 
- 1119 0226 660F3800 		pshufb	%xmm1, %xmm0
- 1119      C1
- 1120              	.LBE705:
- 1121              	.LBE704:
- 1122              	.LBE703:
- 1123              	.LBE702:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 1124              		.loc 2 868 0
- 1125 022b F30F7F85 		movdqu	%xmm0, -9776(%rbp)
- 1125      D0D9FFFF 
- 1126 0233 F30F6F85 		movdqu	-9744(%rbp), %xmm0
- 1126      F0D9FFFF 
- 1127 023b F30F7F85 		movdqu	%xmm0, -9552(%rbp)
- 1127      B0DAFFFF 
- 1128 0243 F30F6F85 		movdqu	-9776(%rbp), %xmm0
- 1128      D0D9FFFF 
- 1129 024b F30F7F85 		movdqu	%xmm0, -9568(%rbp)
- 1129      A0DAFFFF 
- 1130              	.LBB706:
- 1131              	.LBB707:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 1132              		.loc 2 234 0
- 1133 0253 F30F6F85 		movdqu	-9568(%rbp), %xmm0
- 1133      A0DAFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 65
-
-
- 1134 025b F30F6F8D 		movdqu	-9552(%rbp), %xmm1
- 1134      B0DAFFFF 
- 1135 0263 660FEBC1 		por	%xmm1, %xmm0
- 1136              	.LBE707:
- 1137              	.LBE706:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 1138              		.loc 2 870 0
- 1139 0267 F30F7F85 		movdqu	%xmm0, -9776(%rbp)
- 1139      D0D9FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 1140              		.loc 2 872 0
- 1141 026f 8B85BCD9 		mov	-9796(%rbp), %eax
- 1141      FFFF
- 1142 0275 48C1E004 		salq	$4, %rax
- 1143 0279 48038598 		addq	-9832(%rbp), %rax
- 1143      D9FFFF
- 1144 0280 660F6F00 		movdqa	(%rax), %xmm0
- 1145 0284 F30F7F85 		movdqu	%xmm0, -9520(%rbp)
- 1145      D0DAFFFF 
- 1146 028c F30F6F85 		movdqu	-9776(%rbp), %xmm0
- 1146      D0D9FFFF 
- 1147 0294 F30F7F85 		movdqu	%xmm0, -9536(%rbp)
- 1147      C0DAFFFF 
- 1148 029c F30F6F85 		movdqu	-9520(%rbp), %xmm0
- 1148      D0DAFFFF 
- 1149 02a4 F30F7F85 		movdqu	%xmm0, -9488(%rbp)
- 1149      F0DAFFFF 
- 1150 02ac F30F6F85 		movdqu	-9536(%rbp), %xmm0
- 1150      C0DAFFFF 
- 1151 02b4 F30F7F85 		movdqu	%xmm0, -9504(%rbp)
- 1151      E0DAFFFF 
- 1152              	.LBB708:
- 1153              	.LBB709:
- 1154              	.LBB710:
- 1155              	.LBB711:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1156              		.loc 3 529 0
- 1157 02bc F30F6F8D 		movdqu	-9504(%rbp), %xmm1
- 1157      E0DAFFFF 
- 1158 02c4 F30F6F85 		movdqu	-9488(%rbp), %xmm0
- 1158      F0DAFFFF 
- 1159 02cc 660F3800 		pshufb	%xmm1, %xmm0
- 1159      C1
- 1160              	.LBE711:
- 1161              	.LBE710:
- 1162              	.LBE709:
- 1163              	.LBE708:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 1164              		.loc 2 872 0
- 1165 02d1 F30F7F85 		movdqu	%xmm0, -9776(%rbp)
- 1165      D0D9FFFF 
- 1166 02d9 F30F6F85 		movdqu	-9792(%rbp), %xmm0
- 1166      C0D9FFFF 
- 1167 02e1 F30F7F85 		movdqu	%xmm0, -9456(%rbp)
- 1167      10DBFFFF 
- 1168 02e9 F30F6F85 		movdqu	-9776(%rbp), %xmm0
- 1168      D0D9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 66
-
-
- 1169 02f1 F30F7F85 		movdqu	%xmm0, -9472(%rbp)
- 1169      00DBFFFF 
- 1170              	.LBB712:
- 1171              	.LBB713:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 1172              		.loc 2 234 0
- 1173 02f9 F30F6F85 		movdqu	-9472(%rbp), %xmm0
- 1173      00DBFFFF 
- 1174 0301 F30F6F8D 		movdqu	-9456(%rbp), %xmm1
- 1174      10DBFFFF 
- 1175 0309 660FEBC1 		por	%xmm1, %xmm0
- 1176              	.LBE713:
- 1177              	.LBE712:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 1178              		.loc 2 874 0
- 1179 030d F30F7F85 		movdqu	%xmm0, -9792(%rbp)
- 1179      C0D9FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 1180              		.loc 2 876 0
- 1181 0315 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 1181      00000000 
- 1182 031d F30F6F8D 		movdqu	-9760(%rbp), %xmm1
- 1182      E0D9FFFF 
- 1183 0325 F30F7F8D 		movdqu	%xmm1, -9424(%rbp)
- 1183      30DBFFFF 
- 1184 032d F30F7F85 		movdqu	%xmm0, -9440(%rbp)
- 1184      20DBFFFF 
- 1185              	.LBB714:
- 1186              	.LBB715:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 1187              		.loc 2 290 0
- 1188 0335 F30F6F8D 		movdqu	-9440(%rbp), %xmm1
- 1188      20DBFFFF 
- 1189 033d F30F6F85 		movdqu	-9424(%rbp), %xmm0
- 1189      30DBFFFF 
- 1190 0345 660FF8C1 		psubb	%xmm1, %xmm0
- 1191              	.LBE715:
- 1192              	.LBE714:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 1193              		.loc 2 876 0
- 1194 0349 F30F7F85 		movdqu	%xmm0, -9760(%rbp)
- 1194      E0D9FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1195              		.loc 2 878 0
- 1196 0351 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1196      00000000 
- 1197 0359 F30F6F8D 		movdqu	-9760(%rbp), %xmm1
- 1197      E0D9FFFF 
- 1198 0361 F30F7F8D 		movdqu	%xmm1, -9392(%rbp)
- 1198      50DBFFFF 
- 1199 0369 F30F7F85 		movdqu	%xmm0, -9408(%rbp)
- 1199      40DBFFFF 
- 1200              	.LBB716:
- 1201              	.LBB717:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1202              		.loc 2 206 0
- 1203 0371 F30F6F85 		movdqu	-9408(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 67
-
-
- 1203      40DBFFFF 
- 1204 0379 F30F6F8D 		movdqu	-9392(%rbp), %xmm1
- 1204      50DBFFFF 
- 1205 0381 660FDBC1 		pand	%xmm1, %xmm0
- 1206              	.LBE717:
- 1207              	.LBE716:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1208              		.loc 2 878 0
- 1209 0385 F30F7F85 		movdqu	%xmm0, -9760(%rbp)
- 1209      E0D9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 1210              		.loc 2 866 0
- 1211 038d 8385BCD9 		addl	$1, -9796(%rbp)
- 1211      FFFF01
- 1212              	.L4:
- 1213 0394 83BDBCD9 		cmpl	$15, -9796(%rbp)
- 1213      FFFF0F
- 1214 039b 0F8635FE 		jbe	.L5
- 1214      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 1215              		.loc 2 882 0
- 1216 03a1 F30F6F85 		movdqu	-9792(%rbp), %xmm0
- 1216      C0D9FFFF 
- 1217              	.LBE695:
- 1218              	.LBE694:
- 1219              	.LBE693:
- 1220              	.LBE692:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 1221              		.loc 2 1682 0
- 1222 03a9 660F7F85 		movdqa	%xmm0, -11120(%rbp)
- 1222      90D4FFFF 
- 1223              	.LBB718:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 1224              		.loc 2 1683 0
- 1225 03b1 660F6F85 		movdqa	-11120(%rbp), %xmm0
- 1225      90D4FFFF 
- 1226 03b9 F30F7F85 		movdqu	%xmm0, -10576(%rbp)
- 1226      B0D6FFFF 
- 1227 03c1 E8000000 		call	KDbgWriterGet at PLT
- 1227      00
- 1228 03c6 4885C0   		testq	%rax, %rax
- 1229 03c9 7479     		je	.L7
- 1230 03cb BF010000 		movl	$1, %edi
- 1230      00
- 1231 03d0 E8000000 		call	KDbgCondToFlag at PLT
- 1231      00
- 1232 03d5 4889C6   		movq	%rax, %rsi
- 1233 03d8 BF100000 		movl	$16, %edi
- 1233      00
- 1234 03dd E8000000 		call	KDbgTestModConds at PLT
- 1234      00
- 1235 03e2 84C0     		testb	%al, %al
- 1236 03e4 745E     		je	.L7
- 1237 03e6 8B85BCD6 		movl	-10564(%rbp), %eax
- 1237      FFFF
- 1238 03ec 89C7     		movl	%eax, %edi
- 1239 03ee E80DFCFF 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 68
-
-
- 1239      FF
- 1240 03f3 4189C5   		movl	%eax, %r13d
- 1241 03f6 8B85B8D6 		movl	-10568(%rbp), %eax
- 1241      FFFF
- 1242 03fc 89C7     		movl	%eax, %edi
- 1243 03fe E8FDFBFF 		call	bswap_32
- 1243      FF
- 1244 0403 4189C4   		movl	%eax, %r12d
- 1245 0406 8B85B4D6 		movl	-10572(%rbp), %eax
- 1245      FFFF
- 1246 040c 89C7     		movl	%eax, %edi
- 1247 040e E8EDFBFF 		call	bswap_32
- 1247      FF
- 1248 0413 89C3     		movl	%eax, %ebx
- 1249 0415 8B85B0D6 		movl	-10576(%rbp), %eax
- 1249      FFFF
- 1250 041b 89C7     		movl	%eax, %edi
- 1251 041d E8DEFBFF 		call	bswap_32
- 1251      FF
- 1252 0422 4589E9   		movl	%r13d, %r9d
- 1253 0425 4589E0   		movl	%r12d, %r8d
- 1254 0428 89D9     		movl	%ebx, %ecx
- 1255 042a 89C2     		movl	%eax, %edx
- 1256 042c 488D3500 		leaq	.LC0(%rip), %rsi
- 1256      000000
- 1257 0433 488D3D00 		leaq	.LC1(%rip), %rdi
- 1257      000000
- 1258 043a B8000000 		movl	$0, %eax
- 1258      00
- 1259 043f E8000000 		call	KDbgMsg at PLT
- 1259      00
- 1260              	.L7:
- 1261 0444 660F6F85 		movdqa	-11120(%rbp), %xmm0
- 1261      90D4FFFF 
- 1262 044c F30F7F85 		movdqu	%xmm0, -9376(%rbp)
- 1262      60DBFFFF 
- 1263              	.LBE718:
- 1264              	.LBB719:
- 1265              	.LBB720:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 1266              		.loc 2 667 0
- 1267 0454 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 1267      00000000 
- 1268 045c F30F6F8D 		movdqu	-9376(%rbp), %xmm1
- 1268      60DBFFFF 
- 1269 0464 F30F7F8D 		movdqu	%xmm1, -9344(%rbp)
- 1269      80DBFFFF 
- 1270 046c F30F7F85 		movdqu	%xmm0, -9360(%rbp)
- 1270      70DBFFFF 
- 1271 0474 F30F6F85 		movdqu	-9344(%rbp), %xmm0
- 1271      80DBFFFF 
- 1272 047c F30F7F85 		movdqu	%xmm0, -9312(%rbp)
- 1272      A0DBFFFF 
- 1273 0484 F30F6F85 		movdqu	-9360(%rbp), %xmm0
- 1273      70DBFFFF 
- 1274 048c F30F7F85 		movdqu	%xmm0, -9328(%rbp)
- 1274      90DBFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 69
-
-
- 1275              	.LBB721:
- 1276              	.LBB722:
- 1277              	.LBB723:
- 1278              	.LBB724:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1279              		.loc 3 529 0
- 1280 0494 F30F6F8D 		movdqu	-9328(%rbp), %xmm1
- 1280      90DBFFFF 
- 1281 049c F30F6F85 		movdqu	-9312(%rbp), %xmm0
- 1281      A0DBFFFF 
- 1282 04a4 660F3800 		pshufb	%xmm1, %xmm0
- 1282      C1
- 1283              	.LBE724:
- 1284              	.LBE723:
- 1285              	.LBE722:
- 1286              	.LBE721:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 1287              		.loc 2 667 0
- 1288 04a9 F30F7F85 		movdqu	%xmm0, -9376(%rbp)
- 1288      60DBFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1289              		.loc 2 668 0
- 1290 04b1 F30F6F85 		movdqu	-9376(%rbp), %xmm0
- 1290      60DBFFFF 
- 1291              	.LBE720:
- 1292              	.LBE719:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 1293              		.loc 2 1684 0
- 1294 04b9 660F7F85 		movdqa	%xmm0, -11120(%rbp)
- 1294      90D4FFFF 
- 1295              	.LBB725:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 1296              		.loc 2 1685 0
- 1297 04c1 660F6F85 		movdqa	-11120(%rbp), %xmm0
- 1297      90D4FFFF 
- 1298 04c9 F30F7F85 		movdqu	%xmm0, -10592(%rbp)
- 1298      A0D6FFFF 
- 1299 04d1 E8000000 		call	KDbgWriterGet at PLT
- 1299      00
- 1300 04d6 4885C0   		testq	%rax, %rax
- 1301 04d9 7479     		je	.L9
- 1302 04db BF010000 		movl	$1, %edi
- 1302      00
- 1303 04e0 E8000000 		call	KDbgCondToFlag at PLT
- 1303      00
- 1304 04e5 4889C6   		movq	%rax, %rsi
- 1305 04e8 BF100000 		movl	$16, %edi
- 1305      00
- 1306 04ed E8000000 		call	KDbgTestModConds at PLT
- 1306      00
- 1307 04f2 84C0     		testb	%al, %al
- 1308 04f4 745E     		je	.L9
- 1309 04f6 8B85ACD6 		movl	-10580(%rbp), %eax
- 1309      FFFF
- 1310 04fc 89C7     		movl	%eax, %edi
- 1311 04fe E8FDFAFF 		call	bswap_32
- 1311      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 70
-
-
- 1312 0503 4189C5   		movl	%eax, %r13d
- 1313 0506 8B85A8D6 		movl	-10584(%rbp), %eax
- 1313      FFFF
- 1314 050c 89C7     		movl	%eax, %edi
- 1315 050e E8EDFAFF 		call	bswap_32
- 1315      FF
- 1316 0513 4189C4   		movl	%eax, %r12d
- 1317 0516 8B85A4D6 		movl	-10588(%rbp), %eax
- 1317      FFFF
- 1318 051c 89C7     		movl	%eax, %edi
- 1319 051e E8DDFAFF 		call	bswap_32
- 1319      FF
- 1320 0523 89C3     		movl	%eax, %ebx
- 1321 0525 8B85A0D6 		movl	-10592(%rbp), %eax
- 1321      FFFF
- 1322 052b 89C7     		movl	%eax, %edi
- 1323 052d E8CEFAFF 		call	bswap_32
- 1323      FF
- 1324 0532 4589E9   		movl	%r13d, %r9d
- 1325 0535 4589E0   		movl	%r12d, %r8d
- 1326 0538 89D9     		movl	%ebx, %ecx
- 1327 053a 89C2     		movl	%eax, %edx
- 1328 053c 488D3500 		leaq	.LC2(%rip), %rsi
- 1328      000000
- 1329 0543 488D3D00 		leaq	.LC1(%rip), %rdi
- 1329      000000
- 1330 054a B8000000 		movl	$0, %eax
- 1330      00
- 1331 054f E8000000 		call	KDbgMsg at PLT
- 1331      00
- 1332              	.L9:
- 1333 0554 660F6F85 		movdqa	-11120(%rbp), %xmm0
- 1333      90D4FFFF 
- 1334 055c F30F7F85 		movdqu	%xmm0, -9280(%rbp)
- 1334      C0DBFFFF 
- 1335 0564 660F6F85 		movdqa	-11104(%rbp), %xmm0
- 1335      A0D4FFFF 
- 1336 056c F30F7F85 		movdqu	%xmm0, -9296(%rbp)
- 1336      B0DBFFFF 
- 1337              	.LBE725:
- 1338              	.LBB726:
- 1339              	.LBB727:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 1340              		.loc 2 178 0
- 1341 0574 F30F6F85 		movdqu	-9296(%rbp), %xmm0
- 1341      B0DBFFFF 
- 1342 057c F30F6F8D 		movdqu	-9280(%rbp), %xmm1
- 1342      C0DBFFFF 
- 1343 0584 660FEFC1 		pxor	%xmm1, %xmm0
- 1344              	.LBE727:
- 1345              	.LBE726:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 1346              		.loc 2 1686 0
- 1347 0588 660F7F85 		movdqa	%xmm0, -11120(%rbp)
- 1347      90D4FFFF 
- 1348              	.LBB728:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 71
-
-
- 1349              		.loc 2 1687 0
- 1350 0590 660F6F85 		movdqa	-11120(%rbp), %xmm0
- 1350      90D4FFFF 
- 1351 0598 F30F7F85 		movdqu	%xmm0, -10608(%rbp)
- 1351      90D6FFFF 
- 1352 05a0 E8000000 		call	KDbgWriterGet at PLT
- 1352      00
- 1353 05a5 4885C0   		testq	%rax, %rax
- 1354 05a8 7479     		je	.L11
- 1355 05aa BF010000 		movl	$1, %edi
- 1355      00
- 1356 05af E8000000 		call	KDbgCondToFlag at PLT
- 1356      00
- 1357 05b4 4889C6   		movq	%rax, %rsi
- 1358 05b7 BF100000 		movl	$16, %edi
- 1358      00
- 1359 05bc E8000000 		call	KDbgTestModConds at PLT
- 1359      00
- 1360 05c1 84C0     		testb	%al, %al
- 1361 05c3 745E     		je	.L11
- 1362 05c5 8B859CD6 		movl	-10596(%rbp), %eax
- 1362      FFFF
- 1363 05cb 89C7     		movl	%eax, %edi
- 1364 05cd E82EFAFF 		call	bswap_32
- 1364      FF
- 1365 05d2 4189C5   		movl	%eax, %r13d
- 1366 05d5 8B8598D6 		movl	-10600(%rbp), %eax
- 1366      FFFF
- 1367 05db 89C7     		movl	%eax, %edi
- 1368 05dd E81EFAFF 		call	bswap_32
- 1368      FF
- 1369 05e2 4189C4   		movl	%eax, %r12d
- 1370 05e5 8B8594D6 		movl	-10604(%rbp), %eax
- 1370      FFFF
- 1371 05eb 89C7     		movl	%eax, %edi
- 1372 05ed E80EFAFF 		call	bswap_32
- 1372      FF
- 1373 05f2 89C3     		movl	%eax, %ebx
- 1374 05f4 8B8590D6 		movl	-10608(%rbp), %eax
- 1374      FFFF
- 1375 05fa 89C7     		movl	%eax, %edi
- 1376 05fc E8FFF9FF 		call	bswap_32
- 1376      FF
- 1377 0601 4589E9   		movl	%r13d, %r9d
- 1378 0604 4589E0   		movl	%r12d, %r8d
- 1379 0607 89D9     		movl	%ebx, %ecx
- 1380 0609 89C2     		movl	%eax, %edx
- 1381 060b 488D3500 		leaq	.LC3(%rip), %rsi
- 1381      000000
- 1382 0612 488D3D00 		leaq	.LC1(%rip), %rdi
- 1382      000000
- 1383 0619 B8000000 		movl	$0, %eax
- 1383      00
- 1384 061e E8000000 		call	KDbgMsg at PLT
- 1384      00
- 1385              	.L11:
- 1386 0623 660F6F85 		movdqa	-11120(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 72
-
-
- 1386      90D4FFFF 
- 1387 062b F30F7F85 		movdqu	%xmm0, -9264(%rbp)
- 1387      D0DBFFFF 
- 1388 0633 F30F6F85 		movdqu	-9264(%rbp), %xmm0
- 1388      D0DBFFFF 
- 1389 063b F30F7F85 		movdqu	%xmm0, -9232(%rbp)
- 1389      F0DBFFFF 
- 1390              	.LBE728:
- 1391              	.LBB729:
- 1392              	.LBB730:
- 1393              	.LBB731:
- 1394              	.LBB732:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1395              		.loc 3 450 0
- 1396 0643 F30F6F85 		movdqu	-9232(%rbp), %xmm0
- 1396      F0DBFFFF 
- 1397 064b 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1397      FF
- 1398              	.LBE732:
- 1399              	.LBE731:
- 1400              	.LBE730:
- 1401              	.LBE729:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 1402              		.loc 2 1688 0
- 1403 0650 660F7F85 		movdqa	%xmm0, -11120(%rbp)
- 1403      90D4FFFF 
- 1404              	.LBB733:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 1405              		.loc 2 1689 0
- 1406 0658 660F6F85 		movdqa	-11120(%rbp), %xmm0
- 1406      90D4FFFF 
- 1407 0660 F30F7F85 		movdqu	%xmm0, -10624(%rbp)
- 1407      80D6FFFF 
- 1408 0668 E8000000 		call	KDbgWriterGet at PLT
- 1408      00
- 1409 066d 4885C0   		testq	%rax, %rax
- 1410 0670 7479     		je	.L13
- 1411 0672 BF010000 		movl	$1, %edi
- 1411      00
- 1412 0677 E8000000 		call	KDbgCondToFlag at PLT
- 1412      00
- 1413 067c 4889C6   		movq	%rax, %rsi
- 1414 067f BF100000 		movl	$16, %edi
- 1414      00
- 1415 0684 E8000000 		call	KDbgTestModConds at PLT
- 1415      00
- 1416 0689 84C0     		testb	%al, %al
- 1417 068b 745E     		je	.L13
- 1418 068d 8B858CD6 		movl	-10612(%rbp), %eax
- 1418      FFFF
- 1419 0693 89C7     		movl	%eax, %edi
- 1420 0695 E866F9FF 		call	bswap_32
- 1420      FF
- 1421 069a 4189C5   		movl	%eax, %r13d
- 1422 069d 8B8588D6 		movl	-10616(%rbp), %eax
- 1422      FFFF
- 1423 06a3 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 73
-
-
- 1424 06a5 E856F9FF 		call	bswap_32
- 1424      FF
- 1425 06aa 4189C4   		movl	%eax, %r12d
- 1426 06ad 8B8584D6 		movl	-10620(%rbp), %eax
- 1426      FFFF
- 1427 06b3 89C7     		movl	%eax, %edi
- 1428 06b5 E846F9FF 		call	bswap_32
- 1428      FF
- 1429 06ba 89C3     		movl	%eax, %ebx
- 1430 06bc 8B8580D6 		movl	-10624(%rbp), %eax
- 1430      FFFF
- 1431 06c2 89C7     		movl	%eax, %edi
- 1432 06c4 E837F9FF 		call	bswap_32
- 1432      FF
- 1433 06c9 4589E9   		movl	%r13d, %r9d
- 1434 06cc 4589E0   		movl	%r12d, %r8d
- 1435 06cf 89D9     		movl	%ebx, %ecx
- 1436 06d1 89C2     		movl	%eax, %edx
- 1437 06d3 488D3500 		leaq	.LC4(%rip), %rsi
- 1437      000000
- 1438 06da 488D3D00 		leaq	.LC1(%rip), %rdi
- 1438      000000
- 1439 06e1 B8000000 		movl	$0, %eax
- 1439      00
- 1440 06e6 E8000000 		call	KDbgMsg at PLT
- 1440      00
- 1441              	.L13:
- 1442              	.LBE733:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 1443              		.loc 2 1690 0
- 1444 06eb 660F6F85 		movdqa	-11120(%rbp), %xmm0
- 1444      90D4FFFF 
- 1445              	.LBE687:
- 1446              	.LBE686:
-1737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE128(rcon,offset) \
-1739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     kgastate = AESBCMEMBER(AesKeyGenAssistColumn3) (state, rcon); \
-1740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftXorColumns) (state); \
-1741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= kgastate; \
-1742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = state
-1743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x01,1);
- 1447              		.loc 2 1744 0
- 1448 06f3 F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 1448      10D9FFFF 
- 1449 06fb F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 1449      00D9FFFF 
- 1450 0703 F30F7F85 		movdqu	%xmm0, -9216(%rbp)
- 1450      00DCFFFF 
- 1451              	.LBB734:
- 1452              	.LBB735:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 1453              		.loc 2 1565 0
- 1454 070b F30F6F85 		movdqu	-9216(%rbp), %xmm0
- 1454      00DCFFFF 
- 1455 0713 660F7F85 		movdqa	%xmm0, -11088(%rbp)
- 1455      B0D4FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 74
-
-
- 1456 071b 660F6F85 		movdqa	-11088(%rbp), %xmm0
- 1456      B0D4FFFF 
- 1457 0723 F30F7F85 		movdqu	%xmm0, -9200(%rbp)
- 1457      10DCFFFF 
- 1458              	.LBB736:
- 1459              	.LBB737:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1460              		.loc 2 1278 0
- 1461 072b 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 1461      00000000 
- 1462 0733 F30F6F8D 		movdqu	-9200(%rbp), %xmm1
- 1462      10DCFFFF 
- 1463 073b F30F7F8D 		movdqu	%xmm1, -9168(%rbp)
- 1463      30DCFFFF 
- 1464 0743 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 1464      20DCFFFF 
- 1465 074b F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 1465      30DCFFFF 
- 1466 0753 F30F7F85 		movdqu	%xmm0, -9136(%rbp)
- 1466      50DCFFFF 
- 1467 075b F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 1467      20DCFFFF 
- 1468 0763 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 1468      40DCFFFF 
- 1469              	.LBB738:
- 1470              	.LBB739:
- 1471              	.LBB740:
- 1472              	.LBB741:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1473              		.loc 3 529 0
- 1474 076b F30F6F8D 		movdqu	-9152(%rbp), %xmm1
- 1474      40DCFFFF 
- 1475 0773 F30F6F85 		movdqu	-9136(%rbp), %xmm0
- 1475      50DCFFFF 
- 1476 077b 660F3800 		pshufb	%xmm1, %xmm0
- 1476      C1
- 1477              	.LBE741:
- 1478              	.LBE740:
- 1479              	.LBE739:
- 1480              	.LBE738:
- 1481              	.LBE737:
- 1482              	.LBE736:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1483              		.loc 2 1567 0
- 1484 0780 660F7F85 		movdqa	%xmm0, -11088(%rbp)
- 1484      B0D4FFFF 
- 1485 0788 660F6F85 		movdqa	-11088(%rbp), %xmm0
- 1485      B0D4FFFF 
- 1486 0790 660FEF85 		pxor	-9216(%rbp), %xmm0
- 1486      00DCFFFF 
- 1487 0798 F30F7F85 		movdqu	%xmm0, -9216(%rbp)
- 1487      00DCFFFF 
- 1488 07a0 660F6F85 		movdqa	-11088(%rbp), %xmm0
- 1488      B0D4FFFF 
- 1489 07a8 F30F7F85 		movdqu	%xmm0, -9120(%rbp)
- 1489      60DCFFFF 
- 1490              	.LBB742:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 75
-
-
- 1491              	.LBB743:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1492              		.loc 2 1278 0
- 1493 07b0 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 1493      00000000 
- 1494 07b8 F30F6F8D 		movdqu	-9120(%rbp), %xmm1
- 1494      60DCFFFF 
- 1495 07c0 F30F7F8D 		movdqu	%xmm1, -9088(%rbp)
- 1495      80DCFFFF 
- 1496 07c8 F30F7F85 		movdqu	%xmm0, -9104(%rbp)
- 1496      70DCFFFF 
- 1497 07d0 F30F6F85 		movdqu	-9088(%rbp), %xmm0
- 1497      80DCFFFF 
- 1498 07d8 F30F7F85 		movdqu	%xmm0, -9056(%rbp)
- 1498      A0DCFFFF 
- 1499 07e0 F30F6F85 		movdqu	-9104(%rbp), %xmm0
- 1499      70DCFFFF 
- 1500 07e8 F30F7F85 		movdqu	%xmm0, -9072(%rbp)
- 1500      90DCFFFF 
- 1501              	.LBB744:
- 1502              	.LBB745:
- 1503              	.LBB746:
- 1504              	.LBB747:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1505              		.loc 3 529 0
- 1506 07f0 F30F6F8D 		movdqu	-9072(%rbp), %xmm1
- 1506      90DCFFFF 
- 1507 07f8 F30F6F85 		movdqu	-9056(%rbp), %xmm0
- 1507      A0DCFFFF 
- 1508 0800 660F3800 		pshufb	%xmm1, %xmm0
- 1508      C1
- 1509              	.LBE747:
- 1510              	.LBE746:
- 1511              	.LBE745:
- 1512              	.LBE744:
- 1513              	.LBE743:
- 1514              	.LBE742:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1515              		.loc 2 1568 0
- 1516 0805 660F7F85 		movdqa	%xmm0, -11088(%rbp)
- 1516      B0D4FFFF 
- 1517 080d 660F6F85 		movdqa	-11088(%rbp), %xmm0
- 1517      B0D4FFFF 
- 1518 0815 660FEF85 		pxor	-9216(%rbp), %xmm0
- 1518      00DCFFFF 
- 1519 081d F30F7F85 		movdqu	%xmm0, -9216(%rbp)
- 1519      00DCFFFF 
- 1520 0825 660F6F85 		movdqa	-11088(%rbp), %xmm0
- 1520      B0D4FFFF 
- 1521 082d F30F7F85 		movdqu	%xmm0, -9040(%rbp)
- 1521      B0DCFFFF 
- 1522              	.LBB748:
- 1523              	.LBB749:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 1524              		.loc 2 1278 0
- 1525 0835 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 1525      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 76
-
-
- 1526 083d F30F6F8D 		movdqu	-9040(%rbp), %xmm1
- 1526      B0DCFFFF 
- 1527 0845 F30F7F8D 		movdqu	%xmm1, -9008(%rbp)
- 1527      D0DCFFFF 
- 1528 084d F30F7F85 		movdqu	%xmm0, -9024(%rbp)
- 1528      C0DCFFFF 
- 1529 0855 F30F6F85 		movdqu	-9008(%rbp), %xmm0
- 1529      D0DCFFFF 
- 1530 085d F30F7F85 		movdqu	%xmm0, -8976(%rbp)
- 1530      F0DCFFFF 
- 1531 0865 F30F6F85 		movdqu	-9024(%rbp), %xmm0
- 1531      C0DCFFFF 
- 1532 086d F30F7F85 		movdqu	%xmm0, -8992(%rbp)
- 1532      E0DCFFFF 
- 1533              	.LBB750:
- 1534              	.LBB751:
- 1535              	.LBB752:
- 1536              	.LBB753:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1537              		.loc 3 529 0
- 1538 0875 F30F6F8D 		movdqu	-8992(%rbp), %xmm1
- 1538      E0DCFFFF 
- 1539 087d F30F6F85 		movdqu	-8976(%rbp), %xmm0
- 1539      F0DCFFFF 
- 1540 0885 660F3800 		pshufb	%xmm1, %xmm0
- 1540      C1
- 1541              	.LBE753:
- 1542              	.LBE752:
- 1543              	.LBE751:
- 1544              	.LBE750:
- 1545              	.LBE749:
- 1546              	.LBE748:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 1547              		.loc 2 1569 0
- 1548 088a 660F7F85 		movdqa	%xmm0, -11088(%rbp)
- 1548      B0D4FFFF 
- 1549 0892 660F6F85 		movdqa	-11088(%rbp), %xmm0
- 1549      B0D4FFFF 
- 1550 089a 660FEF85 		pxor	-9216(%rbp), %xmm0
- 1550      00DCFFFF 
- 1551 08a2 F30F7F85 		movdqu	%xmm0, -9216(%rbp)
- 1551      00DCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1552              		.loc 2 1571 0
- 1553 08aa F30F6F85 		movdqu	-9216(%rbp), %xmm0
- 1553      00DCFFFF 
- 1554              	.LBE735:
- 1555              	.LBE734:
- 1556              		.loc 2 1744 0
- 1557 08b2 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 1557      00D9FFFF 
- 1558 08ba F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 1558      10D9FFFF 
- 1559 08c2 F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 1559      00D9FFFF 
- 1560 08ca 660FEFC1 		pxor	%xmm1, %xmm0
- 1561 08ce F30F7F85 		movdqu	%xmm0, -9984(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 77
-
-
- 1561      00D9FFFF 
- 1562 08d6 488B8578 		movq	-10632(%rbp), %rax
- 1562      D6FFFF
- 1563 08dd 4883C010 		addq	$16, %rax
- 1564 08e1 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 1564      00D9FFFF 
- 1565 08e9 F30F7F00 		movdqu	%xmm0, (%rax)
- 1566 08ed F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 1566      00D9FFFF 
- 1567 08f5 F30F7F85 		movdqu	%xmm0, -8944(%rbp)
- 1567      10DDFFFF 
- 1568              	.LBB754:
- 1569              	.LBB755:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1570              		.loc 2 1681 0
- 1571 08fd B8020000 		movl	$2, %eax
- 1571      00
- 1572 0902 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1572      00000000 
- 1573 090a F30F7F85 		movdqu	%xmm0, -8912(%rbp)
- 1573      30DDFFFF 
- 1574 0912 89852CDD 		movl	%eax, -8916(%rbp)
- 1574      FFFF
- 1575 0918 F30F6F85 		movdqu	-8912(%rbp), %xmm0
- 1575      30DDFFFF 
- 1576 0920 F30F7F85 		movdqu	%xmm0, -8880(%rbp)
- 1576      50DDFFFF 
- 1577 0928 8B852CDD 		movl	-8916(%rbp), %eax
- 1577      FFFF
- 1578 092e 89854CDD 		movl	%eax, -8884(%rbp)
- 1578      FFFF
- 1579              	.LBB756:
- 1580              	.LBB757:
- 1581              	.LBB758:
- 1582              	.LBB759:
- 1583              		.loc 3 598 0
- 1584 0934 8B854CDD 		movl	-8884(%rbp), %eax
- 1584      FFFF
- 1585 093a F30F6F85 		movdqu	-8880(%rbp), %xmm0
- 1585      50DDFFFF 
- 1586 0942 660F3A22 		pinsrd	$3, %eax, %xmm0
- 1586      C003
- 1587              	.LBE759:
- 1588              	.LBE758:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 1589              		.loc 2 519 0
- 1590 0948 F30F7F85 		movdqu	%xmm0, -8912(%rbp)
- 1590      30DDFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1591              		.loc 2 526 0
- 1592 0950 F30F6F85 		movdqu	-8912(%rbp), %xmm0
- 1592      30DDFFFF 
- 1593              	.LBE757:
- 1594              	.LBE756:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 1595              		.loc 2 1681 0
- 1596 0958 660F7F85 		movdqa	%xmm0, -11056(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 78
-
-
- 1596      D0D4FFFF 
- 1597 0960 F30F6F85 		movdqu	-8944(%rbp), %xmm0
- 1597      10DDFFFF 
- 1598 0968 F30F7F85 		movdqu	%xmm0, -8864(%rbp)
- 1598      60DDFFFF 
- 1599 0970 F30F6F85 		movdqu	-8864(%rbp), %xmm0
- 1599      60DDFFFF 
- 1600 0978 F30F7F85 		movdqu	%xmm0, -8832(%rbp)
- 1600      80DDFFFF 
- 1601 0980 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 1601      000000
- 1602 0987 48898578 		movq	%rax, -8840(%rbp)
- 1602      DDFFFF
- 1603              	.LBB760:
- 1604              	.LBB761:
- 1605              	.LBB762:
- 1606              	.LBB763:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 1607              		.loc 2 851 0
- 1608 098e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 1608      00000000 
- 1609 0996 F30F7F85 		movdqu	%xmm0, -8800(%rbp)
- 1609      A0DDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1610              		.loc 2 854 0
- 1611 099e 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1611      00000000 
- 1612 09a6 F30F6F8D 		movdqu	-8832(%rbp), %xmm1
- 1612      80DDFFFF 
- 1613 09ae F30F7F8D 		movdqu	%xmm1, -8720(%rbp)
- 1613      F0DDFFFF 
- 1614 09b6 F30F7F85 		movdqu	%xmm0, -8736(%rbp)
- 1614      E0DDFFFF 
- 1615              	.LBB764:
- 1616              	.LBB765:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1617              		.loc 2 206 0
- 1618 09be F30F6F85 		movdqu	-8736(%rbp), %xmm0
- 1618      E0DDFFFF 
- 1619 09c6 F30F6F8D 		movdqu	-8720(%rbp), %xmm1
- 1619      F0DDFFFF 
- 1620 09ce 660FDBC1 		pand	%xmm1, %xmm0
- 1621              	.LBE765:
- 1622              	.LBE764:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 1623              		.loc 2 854 0
- 1624 09d2 F30F7F85 		movdqu	%xmm0, -8752(%rbp)
- 1624      D0DDFFFF 
- 1625 09da F30F6F85 		movdqu	-8832(%rbp), %xmm0
- 1625      80DDFFFF 
- 1626 09e2 F30F7F85 		movdqu	%xmm0, -8688(%rbp)
- 1626      10DEFFFF 
- 1627              	.LBB766:
- 1628              	.LBB767:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 1629              		.loc 3 433 0
- 1630 09ea F30F6F85 		movdqu	-8688(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 79
-
-
- 1630      10DEFFFF 
- 1631 09f2 660F72D0 		psrld	$4, %xmm0
- 1631      04
- 1632              	.LBE767:
- 1633              	.LBE766:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 1634              		.loc 2 857 0
- 1635 09f7 F30F7F85 		movdqu	%xmm0, -8768(%rbp)
- 1635      C0DDFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1636              		.loc 2 859 0
- 1637 09ff 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1637      00000000 
- 1638 0a07 F30F6F8D 		movdqu	-8768(%rbp), %xmm1
- 1638      C0DDFFFF 
- 1639 0a0f F30F7F8D 		movdqu	%xmm1, -8656(%rbp)
- 1639      30DEFFFF 
- 1640 0a17 F30F7F85 		movdqu	%xmm0, -8672(%rbp)
- 1640      20DEFFFF 
- 1641              	.LBB768:
- 1642              	.LBB769:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1643              		.loc 2 206 0
- 1644 0a1f F30F6F85 		movdqu	-8672(%rbp), %xmm0
- 1644      20DEFFFF 
- 1645 0a27 F30F6F8D 		movdqu	-8656(%rbp), %xmm1
- 1645      30DEFFFF 
- 1646 0a2f 660FDBC1 		pand	%xmm1, %xmm0
- 1647              	.LBE769:
- 1648              	.LBE768:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1649              		.loc 2 859 0
- 1650 0a33 F30F7F85 		movdqu	%xmm0, -8768(%rbp)
- 1650      C0DDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 1651              		.loc 2 866 0
- 1652 0a3b C7859CDD 		movl	$0, -8804(%rbp)
- 1652      FFFF0000 
- 1652      0000
- 1653 0a45 E9BE0100 		jmp	.L14
- 1653      00
- 1654              	.L15:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 1655              		.loc 2 868 0
- 1656 0a4a 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 1656      00000000 
- 1657 0a52 F30F7F85 		movdqu	%xmm0, -8624(%rbp)
- 1657      50DEFFFF 
- 1658 0a5a F30F6F85 		movdqu	-8768(%rbp), %xmm0
- 1658      C0DDFFFF 
- 1659 0a62 F30F7F85 		movdqu	%xmm0, -8640(%rbp)
- 1659      40DEFFFF 
- 1660 0a6a F30F6F85 		movdqu	-8624(%rbp), %xmm0
- 1660      50DEFFFF 
- 1661 0a72 F30F7F85 		movdqu	%xmm0, -8592(%rbp)
- 1661      70DEFFFF 
- 1662 0a7a F30F6F85 		movdqu	-8640(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 80
-
-
- 1662      40DEFFFF 
- 1663 0a82 F30F7F85 		movdqu	%xmm0, -8608(%rbp)
- 1663      60DEFFFF 
- 1664              	.LBB770:
- 1665              	.LBB771:
- 1666              	.LBB772:
- 1667              	.LBB773:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1668              		.loc 3 529 0
- 1669 0a8a F30F6F8D 		movdqu	-8608(%rbp), %xmm1
- 1669      60DEFFFF 
- 1670 0a92 F30F6F85 		movdqu	-8592(%rbp), %xmm0
- 1670      70DEFFFF 
- 1671 0a9a 660F3800 		pshufb	%xmm1, %xmm0
- 1671      C1
- 1672              	.LBE773:
- 1673              	.LBE772:
- 1674              	.LBE771:
- 1675              	.LBE770:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 1676              		.loc 2 868 0
- 1677 0a9f F30F7F85 		movdqu	%xmm0, -8784(%rbp)
- 1677      B0DDFFFF 
- 1678 0aa7 F30F6F85 		movdqu	-8752(%rbp), %xmm0
- 1678      D0DDFFFF 
- 1679 0aaf F30F7F85 		movdqu	%xmm0, -8560(%rbp)
- 1679      90DEFFFF 
- 1680 0ab7 F30F6F85 		movdqu	-8784(%rbp), %xmm0
- 1680      B0DDFFFF 
- 1681 0abf F30F7F85 		movdqu	%xmm0, -8576(%rbp)
- 1681      80DEFFFF 
- 1682              	.LBB774:
- 1683              	.LBB775:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 1684              		.loc 2 234 0
- 1685 0ac7 F30F6F85 		movdqu	-8576(%rbp), %xmm0
- 1685      80DEFFFF 
- 1686 0acf F30F6F8D 		movdqu	-8560(%rbp), %xmm1
- 1686      90DEFFFF 
- 1687 0ad7 660FEBC1 		por	%xmm1, %xmm0
- 1688              	.LBE775:
- 1689              	.LBE774:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 1690              		.loc 2 870 0
- 1691 0adb F30F7F85 		movdqu	%xmm0, -8784(%rbp)
- 1691      B0DDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 1692              		.loc 2 872 0
- 1693 0ae3 8B859CDD 		mov	-8804(%rbp), %eax
- 1693      FFFF
- 1694 0ae9 48C1E004 		salq	$4, %rax
- 1695 0aed 48038578 		addq	-8840(%rbp), %rax
- 1695      DDFFFF
- 1696 0af4 660F6F00 		movdqa	(%rax), %xmm0
- 1697 0af8 F30F7F85 		movdqu	%xmm0, -8528(%rbp)
- 1697      B0DEFFFF 
- 1698 0b00 F30F6F85 		movdqu	-8784(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 81
-
-
- 1698      B0DDFFFF 
- 1699 0b08 F30F7F85 		movdqu	%xmm0, -8544(%rbp)
- 1699      A0DEFFFF 
- 1700 0b10 F30F6F85 		movdqu	-8528(%rbp), %xmm0
- 1700      B0DEFFFF 
- 1701 0b18 F30F7F85 		movdqu	%xmm0, -8496(%rbp)
- 1701      D0DEFFFF 
- 1702 0b20 F30F6F85 		movdqu	-8544(%rbp), %xmm0
- 1702      A0DEFFFF 
- 1703 0b28 F30F7F85 		movdqu	%xmm0, -8512(%rbp)
- 1703      C0DEFFFF 
- 1704              	.LBB776:
- 1705              	.LBB777:
- 1706              	.LBB778:
- 1707              	.LBB779:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1708              		.loc 3 529 0
- 1709 0b30 F30F6F8D 		movdqu	-8512(%rbp), %xmm1
- 1709      C0DEFFFF 
- 1710 0b38 F30F6F85 		movdqu	-8496(%rbp), %xmm0
- 1710      D0DEFFFF 
- 1711 0b40 660F3800 		pshufb	%xmm1, %xmm0
- 1711      C1
- 1712              	.LBE779:
- 1713              	.LBE778:
- 1714              	.LBE777:
- 1715              	.LBE776:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 1716              		.loc 2 872 0
- 1717 0b45 F30F7F85 		movdqu	%xmm0, -8784(%rbp)
- 1717      B0DDFFFF 
- 1718 0b4d F30F6F85 		movdqu	-8800(%rbp), %xmm0
- 1718      A0DDFFFF 
- 1719 0b55 F30F7F85 		movdqu	%xmm0, -8464(%rbp)
- 1719      F0DEFFFF 
- 1720 0b5d F30F6F85 		movdqu	-8784(%rbp), %xmm0
- 1720      B0DDFFFF 
- 1721 0b65 F30F7F85 		movdqu	%xmm0, -8480(%rbp)
- 1721      E0DEFFFF 
- 1722              	.LBB780:
- 1723              	.LBB781:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 1724              		.loc 2 234 0
- 1725 0b6d F30F6F85 		movdqu	-8480(%rbp), %xmm0
- 1725      E0DEFFFF 
- 1726 0b75 F30F6F8D 		movdqu	-8464(%rbp), %xmm1
- 1726      F0DEFFFF 
- 1727 0b7d 660FEBC1 		por	%xmm1, %xmm0
- 1728              	.LBE781:
- 1729              	.LBE780:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 1730              		.loc 2 874 0
- 1731 0b81 F30F7F85 		movdqu	%xmm0, -8800(%rbp)
- 1731      A0DDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 1732              		.loc 2 876 0
- 1733 0b89 660F6F05 		movdqa	vec_01(%rip), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 82
-
-
- 1733      00000000 
- 1734 0b91 F30F6F8D 		movdqu	-8768(%rbp), %xmm1
- 1734      C0DDFFFF 
- 1735 0b99 F30F7F8D 		movdqu	%xmm1, -8432(%rbp)
- 1735      10DFFFFF 
- 1736 0ba1 F30F7F85 		movdqu	%xmm0, -8448(%rbp)
- 1736      00DFFFFF 
- 1737              	.LBB782:
- 1738              	.LBB783:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 1739              		.loc 2 290 0
- 1740 0ba9 F30F6F8D 		movdqu	-8448(%rbp), %xmm1
- 1740      00DFFFFF 
- 1741 0bb1 F30F6F85 		movdqu	-8432(%rbp), %xmm0
- 1741      10DFFFFF 
- 1742 0bb9 660FF8C1 		psubb	%xmm1, %xmm0
- 1743              	.LBE783:
- 1744              	.LBE782:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 1745              		.loc 2 876 0
- 1746 0bbd F30F7F85 		movdqu	%xmm0, -8768(%rbp)
- 1746      C0DDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1747              		.loc 2 878 0
- 1748 0bc5 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 1748      00000000 
- 1749 0bcd F30F6F8D 		movdqu	-8768(%rbp), %xmm1
- 1749      C0DDFFFF 
- 1750 0bd5 F30F7F8D 		movdqu	%xmm1, -8400(%rbp)
- 1750      30DFFFFF 
- 1751 0bdd F30F7F85 		movdqu	%xmm0, -8416(%rbp)
- 1751      20DFFFFF 
- 1752              	.LBB784:
- 1753              	.LBB785:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 1754              		.loc 2 206 0
- 1755 0be5 F30F6F85 		movdqu	-8416(%rbp), %xmm0
- 1755      20DFFFFF 
- 1756 0bed F30F6F8D 		movdqu	-8400(%rbp), %xmm1
- 1756      30DFFFFF 
- 1757 0bf5 660FDBC1 		pand	%xmm1, %xmm0
- 1758              	.LBE785:
- 1759              	.LBE784:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 1760              		.loc 2 878 0
- 1761 0bf9 F30F7F85 		movdqu	%xmm0, -8768(%rbp)
- 1761      C0DDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 1762              		.loc 2 866 0
- 1763 0c01 83859CDD 		addl	$1, -8804(%rbp)
- 1763      FFFF01
- 1764              	.L14:
- 1765 0c08 83BD9CDD 		cmpl	$15, -8804(%rbp)
- 1765      FFFF0F
- 1766 0c0f 0F8635FE 		jbe	.L15
- 1766      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 83
-
-
- 1767              		.loc 2 882 0
- 1768 0c15 F30F6F85 		movdqu	-8800(%rbp), %xmm0
- 1768      A0DDFFFF 
- 1769              	.LBE763:
- 1770              	.LBE762:
- 1771              	.LBE761:
- 1772              	.LBE760:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 1773              		.loc 2 1682 0
- 1774 0c1d 660F7F85 		movdqa	%xmm0, -11072(%rbp)
- 1774      C0D4FFFF 
- 1775              	.LBB786:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 1776              		.loc 2 1683 0
- 1777 0c25 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1777      C0D4FFFF 
- 1778 0c2d F30F7F85 		movdqu	%xmm0, -10512(%rbp)
- 1778      F0D6FFFF 
- 1779 0c35 E8000000 		call	KDbgWriterGet at PLT
- 1779      00
- 1780 0c3a 4885C0   		testq	%rax, %rax
- 1781 0c3d 7479     		je	.L17
- 1782 0c3f BF010000 		movl	$1, %edi
- 1782      00
- 1783 0c44 E8000000 		call	KDbgCondToFlag at PLT
- 1783      00
- 1784 0c49 4889C6   		movq	%rax, %rsi
- 1785 0c4c BF100000 		movl	$16, %edi
- 1785      00
- 1786 0c51 E8000000 		call	KDbgTestModConds at PLT
- 1786      00
- 1787 0c56 84C0     		testb	%al, %al
- 1788 0c58 745E     		je	.L17
- 1789 0c5a 8B85FCD6 		movl	-10500(%rbp), %eax
- 1789      FFFF
- 1790 0c60 89C7     		movl	%eax, %edi
- 1791 0c62 E899F3FF 		call	bswap_32
- 1791      FF
- 1792 0c67 4189C5   		movl	%eax, %r13d
- 1793 0c6a 8B85F8D6 		movl	-10504(%rbp), %eax
- 1793      FFFF
- 1794 0c70 89C7     		movl	%eax, %edi
- 1795 0c72 E889F3FF 		call	bswap_32
- 1795      FF
- 1796 0c77 4189C4   		movl	%eax, %r12d
- 1797 0c7a 8B85F4D6 		movl	-10508(%rbp), %eax
- 1797      FFFF
- 1798 0c80 89C7     		movl	%eax, %edi
- 1799 0c82 E879F3FF 		call	bswap_32
- 1799      FF
- 1800 0c87 89C3     		movl	%eax, %ebx
- 1801 0c89 8B85F0D6 		movl	-10512(%rbp), %eax
- 1801      FFFF
- 1802 0c8f 89C7     		movl	%eax, %edi
- 1803 0c91 E86AF3FF 		call	bswap_32
- 1803      FF
- 1804 0c96 4589E9   		movl	%r13d, %r9d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 84
-
-
- 1805 0c99 4589E0   		movl	%r12d, %r8d
- 1806 0c9c 89D9     		movl	%ebx, %ecx
- 1807 0c9e 89C2     		movl	%eax, %edx
- 1808 0ca0 488D3500 		leaq	.LC0(%rip), %rsi
- 1808      000000
- 1809 0ca7 488D3D00 		leaq	.LC1(%rip), %rdi
- 1809      000000
- 1810 0cae B8000000 		movl	$0, %eax
- 1810      00
- 1811 0cb3 E8000000 		call	KDbgMsg at PLT
- 1811      00
- 1812              	.L17:
- 1813 0cb8 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1813      C0D4FFFF 
- 1814 0cc0 F30F7F85 		movdqu	%xmm0, -8384(%rbp)
- 1814      40DFFFFF 
- 1815              	.LBE786:
- 1816              	.LBB787:
- 1817              	.LBB788:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 1818              		.loc 2 667 0
- 1819 0cc8 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 1819      00000000 
- 1820 0cd0 F30F6F8D 		movdqu	-8384(%rbp), %xmm1
- 1820      40DFFFFF 
- 1821 0cd8 F30F7F8D 		movdqu	%xmm1, -8352(%rbp)
- 1821      60DFFFFF 
- 1822 0ce0 F30F7F85 		movdqu	%xmm0, -8368(%rbp)
- 1822      50DFFFFF 
- 1823 0ce8 F30F6F85 		movdqu	-8352(%rbp), %xmm0
- 1823      60DFFFFF 
- 1824 0cf0 F30F7F85 		movdqu	%xmm0, -8320(%rbp)
- 1824      80DFFFFF 
- 1825 0cf8 F30F6F85 		movdqu	-8368(%rbp), %xmm0
- 1825      50DFFFFF 
- 1826 0d00 F30F7F85 		movdqu	%xmm0, -8336(%rbp)
- 1826      70DFFFFF 
- 1827              	.LBB789:
- 1828              	.LBB790:
- 1829              	.LBB791:
- 1830              	.LBB792:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 1831              		.loc 3 529 0
- 1832 0d08 F30F6F8D 		movdqu	-8336(%rbp), %xmm1
- 1832      70DFFFFF 
- 1833 0d10 F30F6F85 		movdqu	-8320(%rbp), %xmm0
- 1833      80DFFFFF 
- 1834 0d18 660F3800 		pshufb	%xmm1, %xmm0
- 1834      C1
- 1835              	.LBE792:
- 1836              	.LBE791:
- 1837              	.LBE790:
- 1838              	.LBE789:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 1839              		.loc 2 667 0
- 1840 0d1d F30F7F85 		movdqu	%xmm0, -8384(%rbp)
- 1840      40DFFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 85
-
-
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 1841              		.loc 2 668 0
- 1842 0d25 F30F6F85 		movdqu	-8384(%rbp), %xmm0
- 1842      40DFFFFF 
- 1843              	.LBE788:
- 1844              	.LBE787:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 1845              		.loc 2 1684 0
- 1846 0d2d 660F7F85 		movdqa	%xmm0, -11072(%rbp)
- 1846      C0D4FFFF 
- 1847              	.LBB793:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 1848              		.loc 2 1685 0
- 1849 0d35 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1849      C0D4FFFF 
- 1850 0d3d F30F7F85 		movdqu	%xmm0, -10528(%rbp)
- 1850      E0D6FFFF 
- 1851 0d45 E8000000 		call	KDbgWriterGet at PLT
- 1851      00
- 1852 0d4a 4885C0   		testq	%rax, %rax
- 1853 0d4d 7479     		je	.L19
- 1854 0d4f BF010000 		movl	$1, %edi
- 1854      00
- 1855 0d54 E8000000 		call	KDbgCondToFlag at PLT
- 1855      00
- 1856 0d59 4889C6   		movq	%rax, %rsi
- 1857 0d5c BF100000 		movl	$16, %edi
- 1857      00
- 1858 0d61 E8000000 		call	KDbgTestModConds at PLT
- 1858      00
- 1859 0d66 84C0     		testb	%al, %al
- 1860 0d68 745E     		je	.L19
- 1861 0d6a 8B85ECD6 		movl	-10516(%rbp), %eax
- 1861      FFFF
- 1862 0d70 89C7     		movl	%eax, %edi
- 1863 0d72 E889F2FF 		call	bswap_32
- 1863      FF
- 1864 0d77 4189C5   		movl	%eax, %r13d
- 1865 0d7a 8B85E8D6 		movl	-10520(%rbp), %eax
- 1865      FFFF
- 1866 0d80 89C7     		movl	%eax, %edi
- 1867 0d82 E879F2FF 		call	bswap_32
- 1867      FF
- 1868 0d87 4189C4   		movl	%eax, %r12d
- 1869 0d8a 8B85E4D6 		movl	-10524(%rbp), %eax
- 1869      FFFF
- 1870 0d90 89C7     		movl	%eax, %edi
- 1871 0d92 E869F2FF 		call	bswap_32
- 1871      FF
- 1872 0d97 89C3     		movl	%eax, %ebx
- 1873 0d99 8B85E0D6 		movl	-10528(%rbp), %eax
- 1873      FFFF
- 1874 0d9f 89C7     		movl	%eax, %edi
- 1875 0da1 E85AF2FF 		call	bswap_32
- 1875      FF
- 1876 0da6 4589E9   		movl	%r13d, %r9d
- 1877 0da9 4589E0   		movl	%r12d, %r8d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 86
-
-
- 1878 0dac 89D9     		movl	%ebx, %ecx
- 1879 0dae 89C2     		movl	%eax, %edx
- 1880 0db0 488D3500 		leaq	.LC2(%rip), %rsi
- 1880      000000
- 1881 0db7 488D3D00 		leaq	.LC1(%rip), %rdi
- 1881      000000
- 1882 0dbe B8000000 		movl	$0, %eax
- 1882      00
- 1883 0dc3 E8000000 		call	KDbgMsg at PLT
- 1883      00
- 1884              	.L19:
- 1885 0dc8 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1885      C0D4FFFF 
- 1886 0dd0 F30F7F85 		movdqu	%xmm0, -8288(%rbp)
- 1886      A0DFFFFF 
- 1887 0dd8 660F6F85 		movdqa	-11056(%rbp), %xmm0
- 1887      D0D4FFFF 
- 1888 0de0 F30F7F85 		movdqu	%xmm0, -8304(%rbp)
- 1888      90DFFFFF 
- 1889              	.LBE793:
- 1890              	.LBB794:
- 1891              	.LBB795:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 1892              		.loc 2 178 0
- 1893 0de8 F30F6F85 		movdqu	-8304(%rbp), %xmm0
- 1893      90DFFFFF 
- 1894 0df0 F30F6F8D 		movdqu	-8288(%rbp), %xmm1
- 1894      A0DFFFFF 
- 1895 0df8 660FEFC1 		pxor	%xmm1, %xmm0
- 1896              	.LBE795:
- 1897              	.LBE794:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 1898              		.loc 2 1686 0
- 1899 0dfc 660F7F85 		movdqa	%xmm0, -11072(%rbp)
- 1899      C0D4FFFF 
- 1900              	.LBB796:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 1901              		.loc 2 1687 0
- 1902 0e04 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1902      C0D4FFFF 
- 1903 0e0c F30F7F85 		movdqu	%xmm0, -10544(%rbp)
- 1903      D0D6FFFF 
- 1904 0e14 E8000000 		call	KDbgWriterGet at PLT
- 1904      00
- 1905 0e19 4885C0   		testq	%rax, %rax
- 1906 0e1c 7479     		je	.L21
- 1907 0e1e BF010000 		movl	$1, %edi
- 1907      00
- 1908 0e23 E8000000 		call	KDbgCondToFlag at PLT
- 1908      00
- 1909 0e28 4889C6   		movq	%rax, %rsi
- 1910 0e2b BF100000 		movl	$16, %edi
- 1910      00
- 1911 0e30 E8000000 		call	KDbgTestModConds at PLT
- 1911      00
- 1912 0e35 84C0     		testb	%al, %al
- 1913 0e37 745E     		je	.L21
-
GAS LISTING /tmp/ccjbMjHD.s 			page 87
-
-
- 1914 0e39 8B85DCD6 		movl	-10532(%rbp), %eax
- 1914      FFFF
- 1915 0e3f 89C7     		movl	%eax, %edi
- 1916 0e41 E8BAF1FF 		call	bswap_32
- 1916      FF
- 1917 0e46 4189C5   		movl	%eax, %r13d
- 1918 0e49 8B85D8D6 		movl	-10536(%rbp), %eax
- 1918      FFFF
- 1919 0e4f 89C7     		movl	%eax, %edi
- 1920 0e51 E8AAF1FF 		call	bswap_32
- 1920      FF
- 1921 0e56 4189C4   		movl	%eax, %r12d
- 1922 0e59 8B85D4D6 		movl	-10540(%rbp), %eax
- 1922      FFFF
- 1923 0e5f 89C7     		movl	%eax, %edi
- 1924 0e61 E89AF1FF 		call	bswap_32
- 1924      FF
- 1925 0e66 89C3     		movl	%eax, %ebx
- 1926 0e68 8B85D0D6 		movl	-10544(%rbp), %eax
- 1926      FFFF
- 1927 0e6e 89C7     		movl	%eax, %edi
- 1928 0e70 E88BF1FF 		call	bswap_32
- 1928      FF
- 1929 0e75 4589E9   		movl	%r13d, %r9d
- 1930 0e78 4589E0   		movl	%r12d, %r8d
- 1931 0e7b 89D9     		movl	%ebx, %ecx
- 1932 0e7d 89C2     		movl	%eax, %edx
- 1933 0e7f 488D3500 		leaq	.LC3(%rip), %rsi
- 1933      000000
- 1934 0e86 488D3D00 		leaq	.LC1(%rip), %rdi
- 1934      000000
- 1935 0e8d B8000000 		movl	$0, %eax
- 1935      00
- 1936 0e92 E8000000 		call	KDbgMsg at PLT
- 1936      00
- 1937              	.L21:
- 1938 0e97 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1938      C0D4FFFF 
- 1939 0e9f F30F7F85 		movdqu	%xmm0, -8272(%rbp)
- 1939      B0DFFFFF 
- 1940 0ea7 F30F6F85 		movdqu	-8272(%rbp), %xmm0
- 1940      B0DFFFFF 
- 1941 0eaf F30F7F85 		movdqu	%xmm0, -8240(%rbp)
- 1941      D0DFFFFF 
- 1942              	.LBE796:
- 1943              	.LBB797:
- 1944              	.LBB798:
- 1945              	.LBB799:
- 1946              	.LBB800:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 1947              		.loc 3 450 0
- 1948 0eb7 F30F6F85 		movdqu	-8240(%rbp), %xmm0
- 1948      D0DFFFFF 
- 1949 0ebf 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 1949      FF
- 1950              	.LBE800:
- 1951              	.LBE799:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 88
-
-
- 1952              	.LBE798:
- 1953              	.LBE797:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 1954              		.loc 2 1688 0
- 1955 0ec4 660F7F85 		movdqa	%xmm0, -11072(%rbp)
- 1955      C0D4FFFF 
- 1956              	.LBB801:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 1957              		.loc 2 1689 0
- 1958 0ecc 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1958      C0D4FFFF 
- 1959 0ed4 F30F7F85 		movdqu	%xmm0, -10560(%rbp)
- 1959      C0D6FFFF 
- 1960 0edc E8000000 		call	KDbgWriterGet at PLT
- 1960      00
- 1961 0ee1 4885C0   		testq	%rax, %rax
- 1962 0ee4 7479     		je	.L23
- 1963 0ee6 BF010000 		movl	$1, %edi
- 1963      00
- 1964 0eeb E8000000 		call	KDbgCondToFlag at PLT
- 1964      00
- 1965 0ef0 4889C6   		movq	%rax, %rsi
- 1966 0ef3 BF100000 		movl	$16, %edi
- 1966      00
- 1967 0ef8 E8000000 		call	KDbgTestModConds at PLT
- 1967      00
- 1968 0efd 84C0     		testb	%al, %al
- 1969 0eff 745E     		je	.L23
- 1970 0f01 8B85CCD6 		movl	-10548(%rbp), %eax
- 1970      FFFF
- 1971 0f07 89C7     		movl	%eax, %edi
- 1972 0f09 E8F2F0FF 		call	bswap_32
- 1972      FF
- 1973 0f0e 4189C5   		movl	%eax, %r13d
- 1974 0f11 8B85C8D6 		movl	-10552(%rbp), %eax
- 1974      FFFF
- 1975 0f17 89C7     		movl	%eax, %edi
- 1976 0f19 E8E2F0FF 		call	bswap_32
- 1976      FF
- 1977 0f1e 4189C4   		movl	%eax, %r12d
- 1978 0f21 8B85C4D6 		movl	-10556(%rbp), %eax
- 1978      FFFF
- 1979 0f27 89C7     		movl	%eax, %edi
- 1980 0f29 E8D2F0FF 		call	bswap_32
- 1980      FF
- 1981 0f2e 89C3     		movl	%eax, %ebx
- 1982 0f30 8B85C0D6 		movl	-10560(%rbp), %eax
- 1982      FFFF
- 1983 0f36 89C7     		movl	%eax, %edi
- 1984 0f38 E8C3F0FF 		call	bswap_32
- 1984      FF
- 1985 0f3d 4589E9   		movl	%r13d, %r9d
- 1986 0f40 4589E0   		movl	%r12d, %r8d
- 1987 0f43 89D9     		movl	%ebx, %ecx
- 1988 0f45 89C2     		movl	%eax, %edx
- 1989 0f47 488D3500 		leaq	.LC4(%rip), %rsi
- 1989      000000
-
GAS LISTING /tmp/ccjbMjHD.s 			page 89
-
-
- 1990 0f4e 488D3D00 		leaq	.LC1(%rip), %rdi
- 1990      000000
- 1991 0f55 B8000000 		movl	$0, %eax
- 1991      00
- 1992 0f5a E8000000 		call	KDbgMsg at PLT
- 1992      00
- 1993              	.L23:
- 1994              	.LBE801:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 1995              		.loc 2 1690 0
- 1996 0f5f 660F6F85 		movdqa	-11072(%rbp), %xmm0
- 1996      C0D4FFFF 
- 1997              	.LBE755:
- 1998              	.LBE754:
-1745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x02,2);
- 1999              		.loc 2 1745 0
- 2000 0f67 F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 2000      10D9FFFF 
- 2001 0f6f F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 2001      00D9FFFF 
- 2002 0f77 F30F7F85 		movdqu	%xmm0, -8224(%rbp)
- 2002      E0DFFFFF 
- 2003              	.LBB802:
- 2004              	.LBB803:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2005              		.loc 2 1565 0
- 2006 0f7f F30F6F85 		movdqu	-8224(%rbp), %xmm0
- 2006      E0DFFFFF 
- 2007 0f87 660F7F85 		movdqa	%xmm0, -11040(%rbp)
- 2007      E0D4FFFF 
- 2008 0f8f 660F6F85 		movdqa	-11040(%rbp), %xmm0
- 2008      E0D4FFFF 
- 2009 0f97 F30F7F85 		movdqu	%xmm0, -8208(%rbp)
- 2009      F0DFFFFF 
- 2010              	.LBB804:
- 2011              	.LBB805:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2012              		.loc 2 1278 0
- 2013 0f9f 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 2013      00000000 
- 2014 0fa7 F30F6F8D 		movdqu	-8208(%rbp), %xmm1
- 2014      F0DFFFFF 
- 2015 0faf F30F7F8D 		movdqu	%xmm1, -8176(%rbp)
- 2015      10E0FFFF 
- 2016 0fb7 F30F7F85 		movdqu	%xmm0, -8192(%rbp)
- 2016      00E0FFFF 
- 2017 0fbf F30F6F85 		movdqu	-8176(%rbp), %xmm0
- 2017      10E0FFFF 
- 2018 0fc7 F30F7F85 		movdqu	%xmm0, -8144(%rbp)
- 2018      30E0FFFF 
- 2019 0fcf F30F6F85 		movdqu	-8192(%rbp), %xmm0
- 2019      00E0FFFF 
- 2020 0fd7 F30F7F85 		movdqu	%xmm0, -8160(%rbp)
- 2020      20E0FFFF 
- 2021              	.LBB806:
- 2022              	.LBB807:
- 2023              	.LBB808:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 90
-
-
- 2024              	.LBB809:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2025              		.loc 3 529 0
- 2026 0fdf F30F6F8D 		movdqu	-8160(%rbp), %xmm1
- 2026      20E0FFFF 
- 2027 0fe7 F30F6F85 		movdqu	-8144(%rbp), %xmm0
- 2027      30E0FFFF 
- 2028 0fef 660F3800 		pshufb	%xmm1, %xmm0
- 2028      C1
- 2029              	.LBE809:
- 2030              	.LBE808:
- 2031              	.LBE807:
- 2032              	.LBE806:
- 2033              	.LBE805:
- 2034              	.LBE804:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2035              		.loc 2 1567 0
- 2036 0ff4 660F7F85 		movdqa	%xmm0, -11040(%rbp)
- 2036      E0D4FFFF 
- 2037 0ffc 660F6F85 		movdqa	-11040(%rbp), %xmm0
- 2037      E0D4FFFF 
- 2038 1004 660FEF85 		pxor	-8224(%rbp), %xmm0
- 2038      E0DFFFFF 
- 2039 100c F30F7F85 		movdqu	%xmm0, -8224(%rbp)
- 2039      E0DFFFFF 
- 2040 1014 660F6F85 		movdqa	-11040(%rbp), %xmm0
- 2040      E0D4FFFF 
- 2041 101c F30F7F85 		movdqu	%xmm0, -8128(%rbp)
- 2041      40E0FFFF 
- 2042              	.LBB810:
- 2043              	.LBB811:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2044              		.loc 2 1278 0
- 2045 1024 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 2045      00000000 
- 2046 102c F30F6F8D 		movdqu	-8128(%rbp), %xmm1
- 2046      40E0FFFF 
- 2047 1034 F30F7F8D 		movdqu	%xmm1, -8096(%rbp)
- 2047      60E0FFFF 
- 2048 103c F30F7F85 		movdqu	%xmm0, -8112(%rbp)
- 2048      50E0FFFF 
- 2049 1044 F30F6F85 		movdqu	-8096(%rbp), %xmm0
- 2049      60E0FFFF 
- 2050 104c F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 2050      80E0FFFF 
- 2051 1054 F30F6F85 		movdqu	-8112(%rbp), %xmm0
- 2051      50E0FFFF 
- 2052 105c F30F7F85 		movdqu	%xmm0, -8080(%rbp)
- 2052      70E0FFFF 
- 2053              	.LBB812:
- 2054              	.LBB813:
- 2055              	.LBB814:
- 2056              	.LBB815:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2057              		.loc 3 529 0
- 2058 1064 F30F6F8D 		movdqu	-8080(%rbp), %xmm1
- 2058      70E0FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 91
-
-
- 2059 106c F30F6F85 		movdqu	-8064(%rbp), %xmm0
- 2059      80E0FFFF 
- 2060 1074 660F3800 		pshufb	%xmm1, %xmm0
- 2060      C1
- 2061              	.LBE815:
- 2062              	.LBE814:
- 2063              	.LBE813:
- 2064              	.LBE812:
- 2065              	.LBE811:
- 2066              	.LBE810:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2067              		.loc 2 1568 0
- 2068 1079 660F7F85 		movdqa	%xmm0, -11040(%rbp)
- 2068      E0D4FFFF 
- 2069 1081 660F6F85 		movdqa	-11040(%rbp), %xmm0
- 2069      E0D4FFFF 
- 2070 1089 660FEF85 		pxor	-8224(%rbp), %xmm0
- 2070      E0DFFFFF 
- 2071 1091 F30F7F85 		movdqu	%xmm0, -8224(%rbp)
- 2071      E0DFFFFF 
- 2072 1099 660F6F85 		movdqa	-11040(%rbp), %xmm0
- 2072      E0D4FFFF 
- 2073 10a1 F30F7F85 		movdqu	%xmm0, -8048(%rbp)
- 2073      90E0FFFF 
- 2074              	.LBB816:
- 2075              	.LBB817:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2076              		.loc 2 1278 0
- 2077 10a9 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 2077      00000000 
- 2078 10b1 F30F6F8D 		movdqu	-8048(%rbp), %xmm1
- 2078      90E0FFFF 
- 2079 10b9 F30F7F8D 		movdqu	%xmm1, -8016(%rbp)
- 2079      B0E0FFFF 
- 2080 10c1 F30F7F85 		movdqu	%xmm0, -8032(%rbp)
- 2080      A0E0FFFF 
- 2081 10c9 F30F6F85 		movdqu	-8016(%rbp), %xmm0
- 2081      B0E0FFFF 
- 2082 10d1 F30F7F85 		movdqu	%xmm0, -7984(%rbp)
- 2082      D0E0FFFF 
- 2083 10d9 F30F6F85 		movdqu	-8032(%rbp), %xmm0
- 2083      A0E0FFFF 
- 2084 10e1 F30F7F85 		movdqu	%xmm0, -8000(%rbp)
- 2084      C0E0FFFF 
- 2085              	.LBB818:
- 2086              	.LBB819:
- 2087              	.LBB820:
- 2088              	.LBB821:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2089              		.loc 3 529 0
- 2090 10e9 F30F6F8D 		movdqu	-8000(%rbp), %xmm1
- 2090      C0E0FFFF 
- 2091 10f1 F30F6F85 		movdqu	-7984(%rbp), %xmm0
- 2091      D0E0FFFF 
- 2092 10f9 660F3800 		pshufb	%xmm1, %xmm0
- 2092      C1
- 2093              	.LBE821:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 92
-
-
- 2094              	.LBE820:
- 2095              	.LBE819:
- 2096              	.LBE818:
- 2097              	.LBE817:
- 2098              	.LBE816:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2099              		.loc 2 1569 0
- 2100 10fe 660F7F85 		movdqa	%xmm0, -11040(%rbp)
- 2100      E0D4FFFF 
- 2101 1106 660F6F85 		movdqa	-11040(%rbp), %xmm0
- 2101      E0D4FFFF 
- 2102 110e 660FEF85 		pxor	-8224(%rbp), %xmm0
- 2102      E0DFFFFF 
- 2103 1116 F30F7F85 		movdqu	%xmm0, -8224(%rbp)
- 2103      E0DFFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2104              		.loc 2 1571 0
- 2105 111e F30F6F85 		movdqu	-8224(%rbp), %xmm0
- 2105      E0DFFFFF 
- 2106              	.LBE803:
- 2107              	.LBE802:
- 2108              		.loc 2 1745 0
- 2109 1126 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 2109      00D9FFFF 
- 2110 112e F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 2110      10D9FFFF 
- 2111 1136 F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 2111      00D9FFFF 
- 2112 113e 660FEFC1 		pxor	%xmm1, %xmm0
- 2113 1142 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 2113      00D9FFFF 
- 2114 114a 488B8578 		movq	-10632(%rbp), %rax
- 2114      D6FFFF
- 2115 1151 4883C020 		addq	$32, %rax
- 2116 1155 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 2116      00D9FFFF 
- 2117 115d F30F7F00 		movdqu	%xmm0, (%rax)
- 2118 1161 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 2118      00D9FFFF 
- 2119 1169 F30F7F85 		movdqu	%xmm0, -7952(%rbp)
- 2119      F0E0FFFF 
- 2120              	.LBB822:
- 2121              	.LBB823:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 2122              		.loc 2 1681 0
- 2123 1171 B8040000 		movl	$4, %eax
- 2123      00
- 2124 1176 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 2124      00000000 
- 2125 117e F30F7F85 		movdqu	%xmm0, -7920(%rbp)
- 2125      10E1FFFF 
- 2126 1186 89850CE1 		movl	%eax, -7924(%rbp)
- 2126      FFFF
- 2127 118c F30F6F85 		movdqu	-7920(%rbp), %xmm0
- 2127      10E1FFFF 
- 2128 1194 F30F7F85 		movdqu	%xmm0, -7888(%rbp)
- 2128      30E1FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 93
-
-
- 2129 119c 8B850CE1 		movl	-7924(%rbp), %eax
- 2129      FFFF
- 2130 11a2 89852CE1 		movl	%eax, -7892(%rbp)
- 2130      FFFF
- 2131              	.LBB824:
- 2132              	.LBB825:
- 2133              	.LBB826:
- 2134              	.LBB827:
- 2135              		.loc 3 598 0
- 2136 11a8 8B852CE1 		movl	-7892(%rbp), %eax
- 2136      FFFF
- 2137 11ae F30F6F85 		movdqu	-7888(%rbp), %xmm0
- 2137      30E1FFFF 
- 2138 11b6 660F3A22 		pinsrd	$3, %eax, %xmm0
- 2138      C003
- 2139              	.LBE827:
- 2140              	.LBE826:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 2141              		.loc 2 519 0
- 2142 11bc F30F7F85 		movdqu	%xmm0, -7920(%rbp)
- 2142      10E1FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2143              		.loc 2 526 0
- 2144 11c4 F30F6F85 		movdqu	-7920(%rbp), %xmm0
- 2144      10E1FFFF 
- 2145              	.LBE825:
- 2146              	.LBE824:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 2147              		.loc 2 1681 0
- 2148 11cc 660F7F85 		movdqa	%xmm0, -11008(%rbp)
- 2148      00D5FFFF 
- 2149 11d4 F30F6F85 		movdqu	-7952(%rbp), %xmm0
- 2149      F0E0FFFF 
- 2150 11dc F30F7F85 		movdqu	%xmm0, -7872(%rbp)
- 2150      40E1FFFF 
- 2151 11e4 F30F6F85 		movdqu	-7872(%rbp), %xmm0
- 2151      40E1FFFF 
- 2152 11ec F30F7F85 		movdqu	%xmm0, -7840(%rbp)
- 2152      60E1FFFF 
- 2153 11f4 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 2153      000000
- 2154 11fb 48898558 		movq	%rax, -7848(%rbp)
- 2154      E1FFFF
- 2155              	.LBB828:
- 2156              	.LBB829:
- 2157              	.LBB830:
- 2158              	.LBB831:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 2159              		.loc 2 851 0
- 2160 1202 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 2160      00000000 
- 2161 120a F30F7F85 		movdqu	%xmm0, -7808(%rbp)
- 2161      80E1FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 2162              		.loc 2 854 0
- 2163 1212 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2163      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 94
-
-
- 2164 121a F30F6F8D 		movdqu	-7840(%rbp), %xmm1
- 2164      60E1FFFF 
- 2165 1222 F30F7F8D 		movdqu	%xmm1, -7728(%rbp)
- 2165      D0E1FFFF 
- 2166 122a F30F7F85 		movdqu	%xmm0, -7744(%rbp)
- 2166      C0E1FFFF 
- 2167              	.LBB832:
- 2168              	.LBB833:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2169              		.loc 2 206 0
- 2170 1232 F30F6F85 		movdqu	-7744(%rbp), %xmm0
- 2170      C0E1FFFF 
- 2171 123a F30F6F8D 		movdqu	-7728(%rbp), %xmm1
- 2171      D0E1FFFF 
- 2172 1242 660FDBC1 		pand	%xmm1, %xmm0
- 2173              	.LBE833:
- 2174              	.LBE832:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 2175              		.loc 2 854 0
- 2176 1246 F30F7F85 		movdqu	%xmm0, -7760(%rbp)
- 2176      B0E1FFFF 
- 2177 124e F30F6F85 		movdqu	-7840(%rbp), %xmm0
- 2177      60E1FFFF 
- 2178 1256 F30F7F85 		movdqu	%xmm0, -7696(%rbp)
- 2178      F0E1FFFF 
- 2179              	.LBB834:
- 2180              	.LBB835:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 2181              		.loc 3 433 0
- 2182 125e F30F6F85 		movdqu	-7696(%rbp), %xmm0
- 2182      F0E1FFFF 
- 2183 1266 660F72D0 		psrld	$4, %xmm0
- 2183      04
- 2184              	.LBE835:
- 2185              	.LBE834:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 2186              		.loc 2 857 0
- 2187 126b F30F7F85 		movdqu	%xmm0, -7776(%rbp)
- 2187      A0E1FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2188              		.loc 2 859 0
- 2189 1273 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2189      00000000 
- 2190 127b F30F6F8D 		movdqu	-7776(%rbp), %xmm1
- 2190      A0E1FFFF 
- 2191 1283 F30F7F8D 		movdqu	%xmm1, -7664(%rbp)
- 2191      10E2FFFF 
- 2192 128b F30F7F85 		movdqu	%xmm0, -7680(%rbp)
- 2192      00E2FFFF 
- 2193              	.LBB836:
- 2194              	.LBB837:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2195              		.loc 2 206 0
- 2196 1293 F30F6F85 		movdqu	-7680(%rbp), %xmm0
- 2196      00E2FFFF 
- 2197 129b F30F6F8D 		movdqu	-7664(%rbp), %xmm1
- 2197      10E2FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 95
-
-
- 2198 12a3 660FDBC1 		pand	%xmm1, %xmm0
- 2199              	.LBE837:
- 2200              	.LBE836:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2201              		.loc 2 859 0
- 2202 12a7 F30F7F85 		movdqu	%xmm0, -7776(%rbp)
- 2202      A0E1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 2203              		.loc 2 866 0
- 2204 12af C7857CE1 		movl	$0, -7812(%rbp)
- 2204      FFFF0000 
- 2204      0000
- 2205 12b9 E9BE0100 		jmp	.L24
- 2205      00
- 2206              	.L25:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2207              		.loc 2 868 0
- 2208 12be 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 2208      00000000 
- 2209 12c6 F30F7F85 		movdqu	%xmm0, -7632(%rbp)
- 2209      30E2FFFF 
- 2210 12ce F30F6F85 		movdqu	-7776(%rbp), %xmm0
- 2210      A0E1FFFF 
- 2211 12d6 F30F7F85 		movdqu	%xmm0, -7648(%rbp)
- 2211      20E2FFFF 
- 2212 12de F30F6F85 		movdqu	-7632(%rbp), %xmm0
- 2212      30E2FFFF 
- 2213 12e6 F30F7F85 		movdqu	%xmm0, -7600(%rbp)
- 2213      50E2FFFF 
- 2214 12ee F30F6F85 		movdqu	-7648(%rbp), %xmm0
- 2214      20E2FFFF 
- 2215 12f6 F30F7F85 		movdqu	%xmm0, -7616(%rbp)
- 2215      40E2FFFF 
- 2216              	.LBB838:
- 2217              	.LBB839:
- 2218              	.LBB840:
- 2219              	.LBB841:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2220              		.loc 3 529 0
- 2221 12fe F30F6F8D 		movdqu	-7616(%rbp), %xmm1
- 2221      40E2FFFF 
- 2222 1306 F30F6F85 		movdqu	-7600(%rbp), %xmm0
- 2222      50E2FFFF 
- 2223 130e 660F3800 		pshufb	%xmm1, %xmm0
- 2223      C1
- 2224              	.LBE841:
- 2225              	.LBE840:
- 2226              	.LBE839:
- 2227              	.LBE838:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2228              		.loc 2 868 0
- 2229 1313 F30F7F85 		movdqu	%xmm0, -7792(%rbp)
- 2229      90E1FFFF 
- 2230 131b F30F6F85 		movdqu	-7760(%rbp), %xmm0
- 2230      B0E1FFFF 
- 2231 1323 F30F7F85 		movdqu	%xmm0, -7568(%rbp)
- 2231      70E2FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 96
-
-
- 2232 132b F30F6F85 		movdqu	-7792(%rbp), %xmm0
- 2232      90E1FFFF 
- 2233 1333 F30F7F85 		movdqu	%xmm0, -7584(%rbp)
- 2233      60E2FFFF 
- 2234              	.LBB842:
- 2235              	.LBB843:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2236              		.loc 2 234 0
- 2237 133b F30F6F85 		movdqu	-7584(%rbp), %xmm0
- 2237      60E2FFFF 
- 2238 1343 F30F6F8D 		movdqu	-7568(%rbp), %xmm1
- 2238      70E2FFFF 
- 2239 134b 660FEBC1 		por	%xmm1, %xmm0
- 2240              	.LBE843:
- 2241              	.LBE842:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 2242              		.loc 2 870 0
- 2243 134f F30F7F85 		movdqu	%xmm0, -7792(%rbp)
- 2243      90E1FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2244              		.loc 2 872 0
- 2245 1357 8B857CE1 		mov	-7812(%rbp), %eax
- 2245      FFFF
- 2246 135d 48C1E004 		salq	$4, %rax
- 2247 1361 48038558 		addq	-7848(%rbp), %rax
- 2247      E1FFFF
- 2248 1368 660F6F00 		movdqa	(%rax), %xmm0
- 2249 136c F30F7F85 		movdqu	%xmm0, -7536(%rbp)
- 2249      90E2FFFF 
- 2250 1374 F30F6F85 		movdqu	-7792(%rbp), %xmm0
- 2250      90E1FFFF 
- 2251 137c F30F7F85 		movdqu	%xmm0, -7552(%rbp)
- 2251      80E2FFFF 
- 2252 1384 F30F6F85 		movdqu	-7536(%rbp), %xmm0
- 2252      90E2FFFF 
- 2253 138c F30F7F85 		movdqu	%xmm0, -7504(%rbp)
- 2253      B0E2FFFF 
- 2254 1394 F30F6F85 		movdqu	-7552(%rbp), %xmm0
- 2254      80E2FFFF 
- 2255 139c F30F7F85 		movdqu	%xmm0, -7520(%rbp)
- 2255      A0E2FFFF 
- 2256              	.LBB844:
- 2257              	.LBB845:
- 2258              	.LBB846:
- 2259              	.LBB847:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2260              		.loc 3 529 0
- 2261 13a4 F30F6F8D 		movdqu	-7520(%rbp), %xmm1
- 2261      A0E2FFFF 
- 2262 13ac F30F6F85 		movdqu	-7504(%rbp), %xmm0
- 2262      B0E2FFFF 
- 2263 13b4 660F3800 		pshufb	%xmm1, %xmm0
- 2263      C1
- 2264              	.LBE847:
- 2265              	.LBE846:
- 2266              	.LBE845:
- 2267              	.LBE844:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 97
-
-
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2268              		.loc 2 872 0
- 2269 13b9 F30F7F85 		movdqu	%xmm0, -7792(%rbp)
- 2269      90E1FFFF 
- 2270 13c1 F30F6F85 		movdqu	-7808(%rbp), %xmm0
- 2270      80E1FFFF 
- 2271 13c9 F30F7F85 		movdqu	%xmm0, -7472(%rbp)
- 2271      D0E2FFFF 
- 2272 13d1 F30F6F85 		movdqu	-7792(%rbp), %xmm0
- 2272      90E1FFFF 
- 2273 13d9 F30F7F85 		movdqu	%xmm0, -7488(%rbp)
- 2273      C0E2FFFF 
- 2274              	.LBB848:
- 2275              	.LBB849:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2276              		.loc 2 234 0
- 2277 13e1 F30F6F85 		movdqu	-7488(%rbp), %xmm0
- 2277      C0E2FFFF 
- 2278 13e9 F30F6F8D 		movdqu	-7472(%rbp), %xmm1
- 2278      D0E2FFFF 
- 2279 13f1 660FEBC1 		por	%xmm1, %xmm0
- 2280              	.LBE849:
- 2281              	.LBE848:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 2282              		.loc 2 874 0
- 2283 13f5 F30F7F85 		movdqu	%xmm0, -7808(%rbp)
- 2283      80E1FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 2284              		.loc 2 876 0
- 2285 13fd 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 2285      00000000 
- 2286 1405 F30F6F8D 		movdqu	-7776(%rbp), %xmm1
- 2286      A0E1FFFF 
- 2287 140d F30F7F8D 		movdqu	%xmm1, -7440(%rbp)
- 2287      F0E2FFFF 
- 2288 1415 F30F7F85 		movdqu	%xmm0, -7456(%rbp)
- 2288      E0E2FFFF 
- 2289              	.LBB850:
- 2290              	.LBB851:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 2291              		.loc 2 290 0
- 2292 141d F30F6F8D 		movdqu	-7456(%rbp), %xmm1
- 2292      E0E2FFFF 
- 2293 1425 F30F6F85 		movdqu	-7440(%rbp), %xmm0
- 2293      F0E2FFFF 
- 2294 142d 660FF8C1 		psubb	%xmm1, %xmm0
- 2295              	.LBE851:
- 2296              	.LBE850:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 2297              		.loc 2 876 0
- 2298 1431 F30F7F85 		movdqu	%xmm0, -7776(%rbp)
- 2298      A0E1FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2299              		.loc 2 878 0
- 2300 1439 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2300      00000000 
- 2301 1441 F30F6F8D 		movdqu	-7776(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 98
-
-
- 2301      A0E1FFFF 
- 2302 1449 F30F7F8D 		movdqu	%xmm1, -7408(%rbp)
- 2302      10E3FFFF 
- 2303 1451 F30F7F85 		movdqu	%xmm0, -7424(%rbp)
- 2303      00E3FFFF 
- 2304              	.LBB852:
- 2305              	.LBB853:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2306              		.loc 2 206 0
- 2307 1459 F30F6F85 		movdqu	-7424(%rbp), %xmm0
- 2307      00E3FFFF 
- 2308 1461 F30F6F8D 		movdqu	-7408(%rbp), %xmm1
- 2308      10E3FFFF 
- 2309 1469 660FDBC1 		pand	%xmm1, %xmm0
- 2310              	.LBE853:
- 2311              	.LBE852:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2312              		.loc 2 878 0
- 2313 146d F30F7F85 		movdqu	%xmm0, -7776(%rbp)
- 2313      A0E1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 2314              		.loc 2 866 0
- 2315 1475 83857CE1 		addl	$1, -7812(%rbp)
- 2315      FFFF01
- 2316              	.L24:
- 2317 147c 83BD7CE1 		cmpl	$15, -7812(%rbp)
- 2317      FFFF0F
- 2318 1483 0F8635FE 		jbe	.L25
- 2318      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 2319              		.loc 2 882 0
- 2320 1489 F30F6F85 		movdqu	-7808(%rbp), %xmm0
- 2320      80E1FFFF 
- 2321              	.LBE831:
- 2322              	.LBE830:
- 2323              	.LBE829:
- 2324              	.LBE828:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 2325              		.loc 2 1682 0
- 2326 1491 660F7F85 		movdqa	%xmm0, -11024(%rbp)
- 2326      F0D4FFFF 
- 2327              	.LBB854:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 2328              		.loc 2 1683 0
- 2329 1499 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2329      F0D4FFFF 
- 2330 14a1 F30F7F85 		movdqu	%xmm0, -10448(%rbp)
- 2330      30D7FFFF 
- 2331 14a9 E8000000 		call	KDbgWriterGet at PLT
- 2331      00
- 2332 14ae 4885C0   		testq	%rax, %rax
- 2333 14b1 7479     		je	.L27
- 2334 14b3 BF010000 		movl	$1, %edi
- 2334      00
- 2335 14b8 E8000000 		call	KDbgCondToFlag at PLT
- 2335      00
- 2336 14bd 4889C6   		movq	%rax, %rsi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 99
-
-
- 2337 14c0 BF100000 		movl	$16, %edi
- 2337      00
- 2338 14c5 E8000000 		call	KDbgTestModConds at PLT
- 2338      00
- 2339 14ca 84C0     		testb	%al, %al
- 2340 14cc 745E     		je	.L27
- 2341 14ce 8B853CD7 		movl	-10436(%rbp), %eax
- 2341      FFFF
- 2342 14d4 89C7     		movl	%eax, %edi
- 2343 14d6 E825EBFF 		call	bswap_32
- 2343      FF
- 2344 14db 4189C5   		movl	%eax, %r13d
- 2345 14de 8B8538D7 		movl	-10440(%rbp), %eax
- 2345      FFFF
- 2346 14e4 89C7     		movl	%eax, %edi
- 2347 14e6 E815EBFF 		call	bswap_32
- 2347      FF
- 2348 14eb 4189C4   		movl	%eax, %r12d
- 2349 14ee 8B8534D7 		movl	-10444(%rbp), %eax
- 2349      FFFF
- 2350 14f4 89C7     		movl	%eax, %edi
- 2351 14f6 E805EBFF 		call	bswap_32
- 2351      FF
- 2352 14fb 89C3     		movl	%eax, %ebx
- 2353 14fd 8B8530D7 		movl	-10448(%rbp), %eax
- 2353      FFFF
- 2354 1503 89C7     		movl	%eax, %edi
- 2355 1505 E8F6EAFF 		call	bswap_32
- 2355      FF
- 2356 150a 4589E9   		movl	%r13d, %r9d
- 2357 150d 4589E0   		movl	%r12d, %r8d
- 2358 1510 89D9     		movl	%ebx, %ecx
- 2359 1512 89C2     		movl	%eax, %edx
- 2360 1514 488D3500 		leaq	.LC0(%rip), %rsi
- 2360      000000
- 2361 151b 488D3D00 		leaq	.LC1(%rip), %rdi
- 2361      000000
- 2362 1522 B8000000 		movl	$0, %eax
- 2362      00
- 2363 1527 E8000000 		call	KDbgMsg at PLT
- 2363      00
- 2364              	.L27:
- 2365 152c 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2365      F0D4FFFF 
- 2366 1534 F30F7F85 		movdqu	%xmm0, -7392(%rbp)
- 2366      20E3FFFF 
- 2367              	.LBE854:
- 2368              	.LBB855:
- 2369              	.LBB856:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 2370              		.loc 2 667 0
- 2371 153c 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 2371      00000000 
- 2372 1544 F30F6F8D 		movdqu	-7392(%rbp), %xmm1
- 2372      20E3FFFF 
- 2373 154c F30F7F8D 		movdqu	%xmm1, -7360(%rbp)
- 2373      40E3FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 100
-
-
- 2374 1554 F30F7F85 		movdqu	%xmm0, -7376(%rbp)
- 2374      30E3FFFF 
- 2375 155c F30F6F85 		movdqu	-7360(%rbp), %xmm0
- 2375      40E3FFFF 
- 2376 1564 F30F7F85 		movdqu	%xmm0, -7328(%rbp)
- 2376      60E3FFFF 
- 2377 156c F30F6F85 		movdqu	-7376(%rbp), %xmm0
- 2377      30E3FFFF 
- 2378 1574 F30F7F85 		movdqu	%xmm0, -7344(%rbp)
- 2378      50E3FFFF 
- 2379              	.LBB857:
- 2380              	.LBB858:
- 2381              	.LBB859:
- 2382              	.LBB860:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2383              		.loc 3 529 0
- 2384 157c F30F6F8D 		movdqu	-7344(%rbp), %xmm1
- 2384      50E3FFFF 
- 2385 1584 F30F6F85 		movdqu	-7328(%rbp), %xmm0
- 2385      60E3FFFF 
- 2386 158c 660F3800 		pshufb	%xmm1, %xmm0
- 2386      C1
- 2387              	.LBE860:
- 2388              	.LBE859:
- 2389              	.LBE858:
- 2390              	.LBE857:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 2391              		.loc 2 667 0
- 2392 1591 F30F7F85 		movdqu	%xmm0, -7392(%rbp)
- 2392      20E3FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2393              		.loc 2 668 0
- 2394 1599 F30F6F85 		movdqu	-7392(%rbp), %xmm0
- 2394      20E3FFFF 
- 2395              	.LBE856:
- 2396              	.LBE855:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 2397              		.loc 2 1684 0
- 2398 15a1 660F7F85 		movdqa	%xmm0, -11024(%rbp)
- 2398      F0D4FFFF 
- 2399              	.LBB861:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 2400              		.loc 2 1685 0
- 2401 15a9 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2401      F0D4FFFF 
- 2402 15b1 F30F7F85 		movdqu	%xmm0, -10464(%rbp)
- 2402      20D7FFFF 
- 2403 15b9 E8000000 		call	KDbgWriterGet at PLT
- 2403      00
- 2404 15be 4885C0   		testq	%rax, %rax
- 2405 15c1 7479     		je	.L29
- 2406 15c3 BF010000 		movl	$1, %edi
- 2406      00
- 2407 15c8 E8000000 		call	KDbgCondToFlag at PLT
- 2407      00
- 2408 15cd 4889C6   		movq	%rax, %rsi
- 2409 15d0 BF100000 		movl	$16, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 101
-
-
- 2409      00
- 2410 15d5 E8000000 		call	KDbgTestModConds at PLT
- 2410      00
- 2411 15da 84C0     		testb	%al, %al
- 2412 15dc 745E     		je	.L29
- 2413 15de 8B852CD7 		movl	-10452(%rbp), %eax
- 2413      FFFF
- 2414 15e4 89C7     		movl	%eax, %edi
- 2415 15e6 E815EAFF 		call	bswap_32
- 2415      FF
- 2416 15eb 4189C5   		movl	%eax, %r13d
- 2417 15ee 8B8528D7 		movl	-10456(%rbp), %eax
- 2417      FFFF
- 2418 15f4 89C7     		movl	%eax, %edi
- 2419 15f6 E805EAFF 		call	bswap_32
- 2419      FF
- 2420 15fb 4189C4   		movl	%eax, %r12d
- 2421 15fe 8B8524D7 		movl	-10460(%rbp), %eax
- 2421      FFFF
- 2422 1604 89C7     		movl	%eax, %edi
- 2423 1606 E8F5E9FF 		call	bswap_32
- 2423      FF
- 2424 160b 89C3     		movl	%eax, %ebx
- 2425 160d 8B8520D7 		movl	-10464(%rbp), %eax
- 2425      FFFF
- 2426 1613 89C7     		movl	%eax, %edi
- 2427 1615 E8E6E9FF 		call	bswap_32
- 2427      FF
- 2428 161a 4589E9   		movl	%r13d, %r9d
- 2429 161d 4589E0   		movl	%r12d, %r8d
- 2430 1620 89D9     		movl	%ebx, %ecx
- 2431 1622 89C2     		movl	%eax, %edx
- 2432 1624 488D3500 		leaq	.LC2(%rip), %rsi
- 2432      000000
- 2433 162b 488D3D00 		leaq	.LC1(%rip), %rdi
- 2433      000000
- 2434 1632 B8000000 		movl	$0, %eax
- 2434      00
- 2435 1637 E8000000 		call	KDbgMsg at PLT
- 2435      00
- 2436              	.L29:
- 2437 163c 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2437      F0D4FFFF 
- 2438 1644 F30F7F85 		movdqu	%xmm0, -7296(%rbp)
- 2438      80E3FFFF 
- 2439 164c 660F6F85 		movdqa	-11008(%rbp), %xmm0
- 2439      00D5FFFF 
- 2440 1654 F30F7F85 		movdqu	%xmm0, -7312(%rbp)
- 2440      70E3FFFF 
- 2441              	.LBE861:
- 2442              	.LBB862:
- 2443              	.LBB863:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 2444              		.loc 2 178 0
- 2445 165c F30F6F85 		movdqu	-7312(%rbp), %xmm0
- 2445      70E3FFFF 
- 2446 1664 F30F6F8D 		movdqu	-7296(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 102
-
-
- 2446      80E3FFFF 
- 2447 166c 660FEFC1 		pxor	%xmm1, %xmm0
- 2448              	.LBE863:
- 2449              	.LBE862:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 2450              		.loc 2 1686 0
- 2451 1670 660F7F85 		movdqa	%xmm0, -11024(%rbp)
- 2451      F0D4FFFF 
- 2452              	.LBB864:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 2453              		.loc 2 1687 0
- 2454 1678 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2454      F0D4FFFF 
- 2455 1680 F30F7F85 		movdqu	%xmm0, -10480(%rbp)
- 2455      10D7FFFF 
- 2456 1688 E8000000 		call	KDbgWriterGet at PLT
- 2456      00
- 2457 168d 4885C0   		testq	%rax, %rax
- 2458 1690 7479     		je	.L31
- 2459 1692 BF010000 		movl	$1, %edi
- 2459      00
- 2460 1697 E8000000 		call	KDbgCondToFlag at PLT
- 2460      00
- 2461 169c 4889C6   		movq	%rax, %rsi
- 2462 169f BF100000 		movl	$16, %edi
- 2462      00
- 2463 16a4 E8000000 		call	KDbgTestModConds at PLT
- 2463      00
- 2464 16a9 84C0     		testb	%al, %al
- 2465 16ab 745E     		je	.L31
- 2466 16ad 8B851CD7 		movl	-10468(%rbp), %eax
- 2466      FFFF
- 2467 16b3 89C7     		movl	%eax, %edi
- 2468 16b5 E846E9FF 		call	bswap_32
- 2468      FF
- 2469 16ba 4189C5   		movl	%eax, %r13d
- 2470 16bd 8B8518D7 		movl	-10472(%rbp), %eax
- 2470      FFFF
- 2471 16c3 89C7     		movl	%eax, %edi
- 2472 16c5 E836E9FF 		call	bswap_32
- 2472      FF
- 2473 16ca 4189C4   		movl	%eax, %r12d
- 2474 16cd 8B8514D7 		movl	-10476(%rbp), %eax
- 2474      FFFF
- 2475 16d3 89C7     		movl	%eax, %edi
- 2476 16d5 E826E9FF 		call	bswap_32
- 2476      FF
- 2477 16da 89C3     		movl	%eax, %ebx
- 2478 16dc 8B8510D7 		movl	-10480(%rbp), %eax
- 2478      FFFF
- 2479 16e2 89C7     		movl	%eax, %edi
- 2480 16e4 E817E9FF 		call	bswap_32
- 2480      FF
- 2481 16e9 4589E9   		movl	%r13d, %r9d
- 2482 16ec 4589E0   		movl	%r12d, %r8d
- 2483 16ef 89D9     		movl	%ebx, %ecx
- 2484 16f1 89C2     		movl	%eax, %edx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 103
-
-
- 2485 16f3 488D3500 		leaq	.LC3(%rip), %rsi
- 2485      000000
- 2486 16fa 488D3D00 		leaq	.LC1(%rip), %rdi
- 2486      000000
- 2487 1701 B8000000 		movl	$0, %eax
- 2487      00
- 2488 1706 E8000000 		call	KDbgMsg at PLT
- 2488      00
- 2489              	.L31:
- 2490 170b 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2490      F0D4FFFF 
- 2491 1713 F30F7F85 		movdqu	%xmm0, -7280(%rbp)
- 2491      90E3FFFF 
- 2492 171b F30F6F85 		movdqu	-7280(%rbp), %xmm0
- 2492      90E3FFFF 
- 2493 1723 F30F7F85 		movdqu	%xmm0, -7248(%rbp)
- 2493      B0E3FFFF 
- 2494              	.LBE864:
- 2495              	.LBB865:
- 2496              	.LBB866:
- 2497              	.LBB867:
- 2498              	.LBB868:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 2499              		.loc 3 450 0
- 2500 172b F30F6F85 		movdqu	-7248(%rbp), %xmm0
- 2500      B0E3FFFF 
- 2501 1733 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 2501      FF
- 2502              	.LBE868:
- 2503              	.LBE867:
- 2504              	.LBE866:
- 2505              	.LBE865:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 2506              		.loc 2 1688 0
- 2507 1738 660F7F85 		movdqa	%xmm0, -11024(%rbp)
- 2507      F0D4FFFF 
- 2508              	.LBB869:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 2509              		.loc 2 1689 0
- 2510 1740 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2510      F0D4FFFF 
- 2511 1748 F30F7F85 		movdqu	%xmm0, -10496(%rbp)
- 2511      00D7FFFF 
- 2512 1750 E8000000 		call	KDbgWriterGet at PLT
- 2512      00
- 2513 1755 4885C0   		testq	%rax, %rax
- 2514 1758 7479     		je	.L33
- 2515 175a BF010000 		movl	$1, %edi
- 2515      00
- 2516 175f E8000000 		call	KDbgCondToFlag at PLT
- 2516      00
- 2517 1764 4889C6   		movq	%rax, %rsi
- 2518 1767 BF100000 		movl	$16, %edi
- 2518      00
- 2519 176c E8000000 		call	KDbgTestModConds at PLT
- 2519      00
- 2520 1771 84C0     		testb	%al, %al
-
GAS LISTING /tmp/ccjbMjHD.s 			page 104
-
-
- 2521 1773 745E     		je	.L33
- 2522 1775 8B850CD7 		movl	-10484(%rbp), %eax
- 2522      FFFF
- 2523 177b 89C7     		movl	%eax, %edi
- 2524 177d E87EE8FF 		call	bswap_32
- 2524      FF
- 2525 1782 4189C5   		movl	%eax, %r13d
- 2526 1785 8B8508D7 		movl	-10488(%rbp), %eax
- 2526      FFFF
- 2527 178b 89C7     		movl	%eax, %edi
- 2528 178d E86EE8FF 		call	bswap_32
- 2528      FF
- 2529 1792 4189C4   		movl	%eax, %r12d
- 2530 1795 8B8504D7 		movl	-10492(%rbp), %eax
- 2530      FFFF
- 2531 179b 89C7     		movl	%eax, %edi
- 2532 179d E85EE8FF 		call	bswap_32
- 2532      FF
- 2533 17a2 89C3     		movl	%eax, %ebx
- 2534 17a4 8B8500D7 		movl	-10496(%rbp), %eax
- 2534      FFFF
- 2535 17aa 89C7     		movl	%eax, %edi
- 2536 17ac E84FE8FF 		call	bswap_32
- 2536      FF
- 2537 17b1 4589E9   		movl	%r13d, %r9d
- 2538 17b4 4589E0   		movl	%r12d, %r8d
- 2539 17b7 89D9     		movl	%ebx, %ecx
- 2540 17b9 89C2     		movl	%eax, %edx
- 2541 17bb 488D3500 		leaq	.LC4(%rip), %rsi
- 2541      000000
- 2542 17c2 488D3D00 		leaq	.LC1(%rip), %rdi
- 2542      000000
- 2543 17c9 B8000000 		movl	$0, %eax
- 2543      00
- 2544 17ce E8000000 		call	KDbgMsg at PLT
- 2544      00
- 2545              	.L33:
- 2546              	.LBE869:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 2547              		.loc 2 1690 0
- 2548 17d3 660F6F85 		movdqa	-11024(%rbp), %xmm0
- 2548      F0D4FFFF 
- 2549              	.LBE823:
- 2550              	.LBE822:
-1746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x04,3);
- 2551              		.loc 2 1746 0
- 2552 17db F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 2552      10D9FFFF 
- 2553 17e3 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 2553      00D9FFFF 
- 2554 17eb F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 2554      C0E3FFFF 
- 2555              	.LBB870:
- 2556              	.LBB871:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 2557              		.loc 2 1565 0
- 2558 17f3 F30F6F85 		movdqu	-7232(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 105
-
-
- 2558      C0E3FFFF 
- 2559 17fb 660F7F85 		movdqa	%xmm0, -10992(%rbp)
- 2559      10D5FFFF 
- 2560 1803 660F6F85 		movdqa	-10992(%rbp), %xmm0
- 2560      10D5FFFF 
- 2561 180b F30F7F85 		movdqu	%xmm0, -7216(%rbp)
- 2561      D0E3FFFF 
- 2562              	.LBB872:
- 2563              	.LBB873:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2564              		.loc 2 1278 0
- 2565 1813 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 2565      00000000 
- 2566 181b F30F6F8D 		movdqu	-7216(%rbp), %xmm1
- 2566      D0E3FFFF 
- 2567 1823 F30F7F8D 		movdqu	%xmm1, -7184(%rbp)
- 2567      F0E3FFFF 
- 2568 182b F30F7F85 		movdqu	%xmm0, -7200(%rbp)
- 2568      E0E3FFFF 
- 2569 1833 F30F6F85 		movdqu	-7184(%rbp), %xmm0
- 2569      F0E3FFFF 
- 2570 183b F30F7F85 		movdqu	%xmm0, -7152(%rbp)
- 2570      10E4FFFF 
- 2571 1843 F30F6F85 		movdqu	-7200(%rbp), %xmm0
- 2571      E0E3FFFF 
- 2572 184b F30F7F85 		movdqu	%xmm0, -7168(%rbp)
- 2572      00E4FFFF 
- 2573              	.LBB874:
- 2574              	.LBB875:
- 2575              	.LBB876:
- 2576              	.LBB877:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2577              		.loc 3 529 0
- 2578 1853 F30F6F8D 		movdqu	-7168(%rbp), %xmm1
- 2578      00E4FFFF 
- 2579 185b F30F6F85 		movdqu	-7152(%rbp), %xmm0
- 2579      10E4FFFF 
- 2580 1863 660F3800 		pshufb	%xmm1, %xmm0
- 2580      C1
- 2581              	.LBE877:
- 2582              	.LBE876:
- 2583              	.LBE875:
- 2584              	.LBE874:
- 2585              	.LBE873:
- 2586              	.LBE872:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2587              		.loc 2 1567 0
- 2588 1868 660F7F85 		movdqa	%xmm0, -10992(%rbp)
- 2588      10D5FFFF 
- 2589 1870 660F6F85 		movdqa	-10992(%rbp), %xmm0
- 2589      10D5FFFF 
- 2590 1878 660FEF85 		pxor	-7232(%rbp), %xmm0
- 2590      C0E3FFFF 
- 2591 1880 F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 2591      C0E3FFFF 
- 2592 1888 660F6F85 		movdqa	-10992(%rbp), %xmm0
- 2592      10D5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 106
-
-
- 2593 1890 F30F7F85 		movdqu	%xmm0, -7136(%rbp)
- 2593      20E4FFFF 
- 2594              	.LBB878:
- 2595              	.LBB879:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 2596              		.loc 2 1278 0
- 2597 1898 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 2597      00000000 
- 2598 18a0 F30F6F8D 		movdqu	-7136(%rbp), %xmm1
- 2598      20E4FFFF 
- 2599 18a8 F30F7F8D 		movdqu	%xmm1, -7104(%rbp)
- 2599      40E4FFFF 
- 2600 18b0 F30F7F85 		movdqu	%xmm0, -7120(%rbp)
- 2600      30E4FFFF 
- 2601 18b8 F30F6F85 		movdqu	-7104(%rbp), %xmm0
- 2601      40E4FFFF 
- 2602 18c0 F30F7F85 		movdqu	%xmm0, -7072(%rbp)
- 2602      60E4FFFF 
- 2603 18c8 F30F6F85 		movdqu	-7120(%rbp), %xmm0
- 2603      30E4FFFF 
- 2604 18d0 F30F7F85 		movdqu	%xmm0, -7088(%rbp)
- 2604      50E4FFFF 
- 2605              	.LBB880:
- 2606              	.LBB881:
- 2607              	.LBB882:
- 2608              	.LBB883:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2609              		.loc 3 529 0
- 2610 18d8 F30F6F8D 		movdqu	-7088(%rbp), %xmm1
- 2610      50E4FFFF 
- 2611 18e0 F30F6F85 		movdqu	-7072(%rbp), %xmm0
- 2611      60E4FFFF 
- 2612 18e8 660F3800 		pshufb	%xmm1, %xmm0
- 2612      C1
- 2613              	.LBE883:
- 2614              	.LBE882:
- 2615              	.LBE881:
- 2616              	.LBE880:
- 2617              	.LBE879:
- 2618              	.LBE878:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2619              		.loc 2 1568 0
- 2620 18ed 660F7F85 		movdqa	%xmm0, -10992(%rbp)
- 2620      10D5FFFF 
- 2621 18f5 660F6F85 		movdqa	-10992(%rbp), %xmm0
- 2621      10D5FFFF 
- 2622 18fd 660FEF85 		pxor	-7232(%rbp), %xmm0
- 2622      C0E3FFFF 
- 2623 1905 F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 2623      C0E3FFFF 
- 2624 190d 660F6F85 		movdqa	-10992(%rbp), %xmm0
- 2624      10D5FFFF 
- 2625 1915 F30F7F85 		movdqu	%xmm0, -7056(%rbp)
- 2625      70E4FFFF 
- 2626              	.LBB884:
- 2627              	.LBB885:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 107
-
-
- 2628              		.loc 2 1278 0
- 2629 191d 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 2629      00000000 
- 2630 1925 F30F6F8D 		movdqu	-7056(%rbp), %xmm1
- 2630      70E4FFFF 
- 2631 192d F30F7F8D 		movdqu	%xmm1, -7024(%rbp)
- 2631      90E4FFFF 
- 2632 1935 F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 2632      80E4FFFF 
- 2633 193d F30F6F85 		movdqu	-7024(%rbp), %xmm0
- 2633      90E4FFFF 
- 2634 1945 F30F7F85 		movdqu	%xmm0, -6992(%rbp)
- 2634      B0E4FFFF 
- 2635 194d F30F6F85 		movdqu	-7040(%rbp), %xmm0
- 2635      80E4FFFF 
- 2636 1955 F30F7F85 		movdqu	%xmm0, -7008(%rbp)
- 2636      A0E4FFFF 
- 2637              	.LBB886:
- 2638              	.LBB887:
- 2639              	.LBB888:
- 2640              	.LBB889:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2641              		.loc 3 529 0
- 2642 195d F30F6F8D 		movdqu	-7008(%rbp), %xmm1
- 2642      A0E4FFFF 
- 2643 1965 F30F6F85 		movdqu	-6992(%rbp), %xmm0
- 2643      B0E4FFFF 
- 2644 196d 660F3800 		pshufb	%xmm1, %xmm0
- 2644      C1
- 2645              	.LBE889:
- 2646              	.LBE888:
- 2647              	.LBE887:
- 2648              	.LBE886:
- 2649              	.LBE885:
- 2650              	.LBE884:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 2651              		.loc 2 1569 0
- 2652 1972 660F7F85 		movdqa	%xmm0, -10992(%rbp)
- 2652      10D5FFFF 
- 2653 197a 660F6F85 		movdqa	-10992(%rbp), %xmm0
- 2653      10D5FFFF 
- 2654 1982 660FEF85 		pxor	-7232(%rbp), %xmm0
- 2654      C0E3FFFF 
- 2655 198a F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 2655      C0E3FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2656              		.loc 2 1571 0
- 2657 1992 F30F6F85 		movdqu	-7232(%rbp), %xmm0
- 2657      C0E3FFFF 
- 2658              	.LBE871:
- 2659              	.LBE870:
- 2660              		.loc 2 1746 0
- 2661 199a F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 2661      00D9FFFF 
- 2662 19a2 F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 2662      10D9FFFF 
- 2663 19aa F30F6F8D 		movdqu	-9984(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 108
-
-
- 2663      00D9FFFF 
- 2664 19b2 660FEFC1 		pxor	%xmm1, %xmm0
- 2665 19b6 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 2665      00D9FFFF 
- 2666 19be 488B8578 		movq	-10632(%rbp), %rax
- 2666      D6FFFF
- 2667 19c5 4883C030 		addq	$48, %rax
- 2668 19c9 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 2668      00D9FFFF 
- 2669 19d1 F30F7F00 		movdqu	%xmm0, (%rax)
- 2670 19d5 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 2670      00D9FFFF 
- 2671 19dd F30F7F85 		movdqu	%xmm0, -6960(%rbp)
- 2671      D0E4FFFF 
- 2672              	.LBB890:
- 2673              	.LBB891:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 2674              		.loc 2 1681 0
- 2675 19e5 B8080000 		movl	$8, %eax
- 2675      00
- 2676 19ea 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 2676      00000000 
- 2677 19f2 F30F7F85 		movdqu	%xmm0, -6928(%rbp)
- 2677      F0E4FFFF 
- 2678 19fa 8985ECE4 		movl	%eax, -6932(%rbp)
- 2678      FFFF
- 2679 1a00 F30F6F85 		movdqu	-6928(%rbp), %xmm0
- 2679      F0E4FFFF 
- 2680 1a08 F30F7F85 		movdqu	%xmm0, -6896(%rbp)
- 2680      10E5FFFF 
- 2681 1a10 8B85ECE4 		movl	-6932(%rbp), %eax
- 2681      FFFF
- 2682 1a16 89850CE5 		movl	%eax, -6900(%rbp)
- 2682      FFFF
- 2683              	.LBB892:
- 2684              	.LBB893:
- 2685              	.LBB894:
- 2686              	.LBB895:
- 2687              		.loc 3 598 0
- 2688 1a1c 8B850CE5 		movl	-6900(%rbp), %eax
- 2688      FFFF
- 2689 1a22 F30F6F85 		movdqu	-6896(%rbp), %xmm0
- 2689      10E5FFFF 
- 2690 1a2a 660F3A22 		pinsrd	$3, %eax, %xmm0
- 2690      C003
- 2691              	.LBE895:
- 2692              	.LBE894:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 2693              		.loc 2 519 0
- 2694 1a30 F30F7F85 		movdqu	%xmm0, -6928(%rbp)
- 2694      F0E4FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2695              		.loc 2 526 0
- 2696 1a38 F30F6F85 		movdqu	-6928(%rbp), %xmm0
- 2696      F0E4FFFF 
- 2697              	.LBE893:
- 2698              	.LBE892:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 109
-
-
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 2699              		.loc 2 1681 0
- 2700 1a40 660F7F85 		movdqa	%xmm0, -10960(%rbp)
- 2700      30D5FFFF 
- 2701 1a48 F30F6F85 		movdqu	-6960(%rbp), %xmm0
- 2701      D0E4FFFF 
- 2702 1a50 F30F7F85 		movdqu	%xmm0, -6880(%rbp)
- 2702      20E5FFFF 
- 2703 1a58 F30F6F85 		movdqu	-6880(%rbp), %xmm0
- 2703      20E5FFFF 
- 2704 1a60 F30F7F85 		movdqu	%xmm0, -6848(%rbp)
- 2704      40E5FFFF 
- 2705 1a68 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 2705      000000
- 2706 1a6f 48898538 		movq	%rax, -6856(%rbp)
- 2706      E5FFFF
- 2707              	.LBB896:
- 2708              	.LBB897:
- 2709              	.LBB898:
- 2710              	.LBB899:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 2711              		.loc 2 851 0
- 2712 1a76 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 2712      00000000 
- 2713 1a7e F30F7F85 		movdqu	%xmm0, -6816(%rbp)
- 2713      60E5FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 2714              		.loc 2 854 0
- 2715 1a86 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2715      00000000 
- 2716 1a8e F30F6F8D 		movdqu	-6848(%rbp), %xmm1
- 2716      40E5FFFF 
- 2717 1a96 F30F7F8D 		movdqu	%xmm1, -6736(%rbp)
- 2717      B0E5FFFF 
- 2718 1a9e F30F7F85 		movdqu	%xmm0, -6752(%rbp)
- 2718      A0E5FFFF 
- 2719              	.LBB900:
- 2720              	.LBB901:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2721              		.loc 2 206 0
- 2722 1aa6 F30F6F85 		movdqu	-6752(%rbp), %xmm0
- 2722      A0E5FFFF 
- 2723 1aae F30F6F8D 		movdqu	-6736(%rbp), %xmm1
- 2723      B0E5FFFF 
- 2724 1ab6 660FDBC1 		pand	%xmm1, %xmm0
- 2725              	.LBE901:
- 2726              	.LBE900:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 2727              		.loc 2 854 0
- 2728 1aba F30F7F85 		movdqu	%xmm0, -6768(%rbp)
- 2728      90E5FFFF 
- 2729 1ac2 F30F6F85 		movdqu	-6848(%rbp), %xmm0
- 2729      40E5FFFF 
- 2730 1aca F30F7F85 		movdqu	%xmm0, -6704(%rbp)
- 2730      D0E5FFFF 
- 2731              	.LBB902:
- 2732              	.LBB903:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 110
-
-
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 2733              		.loc 3 433 0
- 2734 1ad2 F30F6F85 		movdqu	-6704(%rbp), %xmm0
- 2734      D0E5FFFF 
- 2735 1ada 660F72D0 		psrld	$4, %xmm0
- 2735      04
- 2736              	.LBE903:
- 2737              	.LBE902:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 2738              		.loc 2 857 0
- 2739 1adf F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 2739      80E5FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2740              		.loc 2 859 0
- 2741 1ae7 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2741      00000000 
- 2742 1aef F30F6F8D 		movdqu	-6784(%rbp), %xmm1
- 2742      80E5FFFF 
- 2743 1af7 F30F7F8D 		movdqu	%xmm1, -6672(%rbp)
- 2743      F0E5FFFF 
- 2744 1aff F30F7F85 		movdqu	%xmm0, -6688(%rbp)
- 2744      E0E5FFFF 
- 2745              	.LBB904:
- 2746              	.LBB905:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2747              		.loc 2 206 0
- 2748 1b07 F30F6F85 		movdqu	-6688(%rbp), %xmm0
- 2748      E0E5FFFF 
- 2749 1b0f F30F6F8D 		movdqu	-6672(%rbp), %xmm1
- 2749      F0E5FFFF 
- 2750 1b17 660FDBC1 		pand	%xmm1, %xmm0
- 2751              	.LBE905:
- 2752              	.LBE904:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2753              		.loc 2 859 0
- 2754 1b1b F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 2754      80E5FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 2755              		.loc 2 866 0
- 2756 1b23 C7855CE5 		movl	$0, -6820(%rbp)
- 2756      FFFF0000 
- 2756      0000
- 2757 1b2d E9BE0100 		jmp	.L34
- 2757      00
- 2758              	.L35:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2759              		.loc 2 868 0
- 2760 1b32 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 2760      00000000 
- 2761 1b3a F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 2761      10E6FFFF 
- 2762 1b42 F30F6F85 		movdqu	-6784(%rbp), %xmm0
- 2762      80E5FFFF 
- 2763 1b4a F30F7F85 		movdqu	%xmm0, -6656(%rbp)
- 2763      00E6FFFF 
- 2764 1b52 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 2764      10E6FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 111
-
-
- 2765 1b5a F30F7F85 		movdqu	%xmm0, -6608(%rbp)
- 2765      30E6FFFF 
- 2766 1b62 F30F6F85 		movdqu	-6656(%rbp), %xmm0
- 2766      00E6FFFF 
- 2767 1b6a F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 2767      20E6FFFF 
- 2768              	.LBB906:
- 2769              	.LBB907:
- 2770              	.LBB908:
- 2771              	.LBB909:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2772              		.loc 3 529 0
- 2773 1b72 F30F6F8D 		movdqu	-6624(%rbp), %xmm1
- 2773      20E6FFFF 
- 2774 1b7a F30F6F85 		movdqu	-6608(%rbp), %xmm0
- 2774      30E6FFFF 
- 2775 1b82 660F3800 		pshufb	%xmm1, %xmm0
- 2775      C1
- 2776              	.LBE909:
- 2777              	.LBE908:
- 2778              	.LBE907:
- 2779              	.LBE906:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 2780              		.loc 2 868 0
- 2781 1b87 F30F7F85 		movdqu	%xmm0, -6800(%rbp)
- 2781      70E5FFFF 
- 2782 1b8f F30F6F85 		movdqu	-6768(%rbp), %xmm0
- 2782      90E5FFFF 
- 2783 1b97 F30F7F85 		movdqu	%xmm0, -6576(%rbp)
- 2783      50E6FFFF 
- 2784 1b9f F30F6F85 		movdqu	-6800(%rbp), %xmm0
- 2784      70E5FFFF 
- 2785 1ba7 F30F7F85 		movdqu	%xmm0, -6592(%rbp)
- 2785      40E6FFFF 
- 2786              	.LBB910:
- 2787              	.LBB911:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2788              		.loc 2 234 0
- 2789 1baf F30F6F85 		movdqu	-6592(%rbp), %xmm0
- 2789      40E6FFFF 
- 2790 1bb7 F30F6F8D 		movdqu	-6576(%rbp), %xmm1
- 2790      50E6FFFF 
- 2791 1bbf 660FEBC1 		por	%xmm1, %xmm0
- 2792              	.LBE911:
- 2793              	.LBE910:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 2794              		.loc 2 870 0
- 2795 1bc3 F30F7F85 		movdqu	%xmm0, -6800(%rbp)
- 2795      70E5FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2796              		.loc 2 872 0
- 2797 1bcb 8B855CE5 		mov	-6820(%rbp), %eax
- 2797      FFFF
- 2798 1bd1 48C1E004 		salq	$4, %rax
- 2799 1bd5 48038538 		addq	-6856(%rbp), %rax
- 2799      E5FFFF
- 2800 1bdc 660F6F00 		movdqa	(%rax), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 112
-
-
- 2801 1be0 F30F7F85 		movdqu	%xmm0, -6544(%rbp)
- 2801      70E6FFFF 
- 2802 1be8 F30F6F85 		movdqu	-6800(%rbp), %xmm0
- 2802      70E5FFFF 
- 2803 1bf0 F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 2803      60E6FFFF 
- 2804 1bf8 F30F6F85 		movdqu	-6544(%rbp), %xmm0
- 2804      70E6FFFF 
- 2805 1c00 F30F7F85 		movdqu	%xmm0, -6512(%rbp)
- 2805      90E6FFFF 
- 2806 1c08 F30F6F85 		movdqu	-6560(%rbp), %xmm0
- 2806      60E6FFFF 
- 2807 1c10 F30F7F85 		movdqu	%xmm0, -6528(%rbp)
- 2807      80E6FFFF 
- 2808              	.LBB912:
- 2809              	.LBB913:
- 2810              	.LBB914:
- 2811              	.LBB915:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2812              		.loc 3 529 0
- 2813 1c18 F30F6F8D 		movdqu	-6528(%rbp), %xmm1
- 2813      80E6FFFF 
- 2814 1c20 F30F6F85 		movdqu	-6512(%rbp), %xmm0
- 2814      90E6FFFF 
- 2815 1c28 660F3800 		pshufb	%xmm1, %xmm0
- 2815      C1
- 2816              	.LBE915:
- 2817              	.LBE914:
- 2818              	.LBE913:
- 2819              	.LBE912:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 2820              		.loc 2 872 0
- 2821 1c2d F30F7F85 		movdqu	%xmm0, -6800(%rbp)
- 2821      70E5FFFF 
- 2822 1c35 F30F6F85 		movdqu	-6816(%rbp), %xmm0
- 2822      60E5FFFF 
- 2823 1c3d F30F7F85 		movdqu	%xmm0, -6480(%rbp)
- 2823      B0E6FFFF 
- 2824 1c45 F30F6F85 		movdqu	-6800(%rbp), %xmm0
- 2824      70E5FFFF 
- 2825 1c4d F30F7F85 		movdqu	%xmm0, -6496(%rbp)
- 2825      A0E6FFFF 
- 2826              	.LBB916:
- 2827              	.LBB917:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 2828              		.loc 2 234 0
- 2829 1c55 F30F6F85 		movdqu	-6496(%rbp), %xmm0
- 2829      A0E6FFFF 
- 2830 1c5d F30F6F8D 		movdqu	-6480(%rbp), %xmm1
- 2830      B0E6FFFF 
- 2831 1c65 660FEBC1 		por	%xmm1, %xmm0
- 2832              	.LBE917:
- 2833              	.LBE916:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 2834              		.loc 2 874 0
- 2835 1c69 F30F7F85 		movdqu	%xmm0, -6816(%rbp)
- 2835      60E5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 113
-
-
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 2836              		.loc 2 876 0
- 2837 1c71 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 2837      00000000 
- 2838 1c79 F30F6F8D 		movdqu	-6784(%rbp), %xmm1
- 2838      80E5FFFF 
- 2839 1c81 F30F7F8D 		movdqu	%xmm1, -6448(%rbp)
- 2839      D0E6FFFF 
- 2840 1c89 F30F7F85 		movdqu	%xmm0, -6464(%rbp)
- 2840      C0E6FFFF 
- 2841              	.LBB918:
- 2842              	.LBB919:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 2843              		.loc 2 290 0
- 2844 1c91 F30F6F8D 		movdqu	-6464(%rbp), %xmm1
- 2844      C0E6FFFF 
- 2845 1c99 F30F6F85 		movdqu	-6448(%rbp), %xmm0
- 2845      D0E6FFFF 
- 2846 1ca1 660FF8C1 		psubb	%xmm1, %xmm0
- 2847              	.LBE919:
- 2848              	.LBE918:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 2849              		.loc 2 876 0
- 2850 1ca5 F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 2850      80E5FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2851              		.loc 2 878 0
- 2852 1cad 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 2852      00000000 
- 2853 1cb5 F30F6F8D 		movdqu	-6784(%rbp), %xmm1
- 2853      80E5FFFF 
- 2854 1cbd F30F7F8D 		movdqu	%xmm1, -6416(%rbp)
- 2854      F0E6FFFF 
- 2855 1cc5 F30F7F85 		movdqu	%xmm0, -6432(%rbp)
- 2855      E0E6FFFF 
- 2856              	.LBB920:
- 2857              	.LBB921:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 2858              		.loc 2 206 0
- 2859 1ccd F30F6F85 		movdqu	-6432(%rbp), %xmm0
- 2859      E0E6FFFF 
- 2860 1cd5 F30F6F8D 		movdqu	-6416(%rbp), %xmm1
- 2860      F0E6FFFF 
- 2861 1cdd 660FDBC1 		pand	%xmm1, %xmm0
- 2862              	.LBE921:
- 2863              	.LBE920:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 2864              		.loc 2 878 0
- 2865 1ce1 F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 2865      80E5FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 2866              		.loc 2 866 0
- 2867 1ce9 83855CE5 		addl	$1, -6820(%rbp)
- 2867      FFFF01
- 2868              	.L34:
- 2869 1cf0 83BD5CE5 		cmpl	$15, -6820(%rbp)
- 2869      FFFF0F
-
GAS LISTING /tmp/ccjbMjHD.s 			page 114
-
-
- 2870 1cf7 0F8635FE 		jbe	.L35
- 2870      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 2871              		.loc 2 882 0
- 2872 1cfd F30F6F85 		movdqu	-6816(%rbp), %xmm0
- 2872      60E5FFFF 
- 2873              	.LBE899:
- 2874              	.LBE898:
- 2875              	.LBE897:
- 2876              	.LBE896:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 2877              		.loc 2 1682 0
- 2878 1d05 660F7F85 		movdqa	%xmm0, -10976(%rbp)
- 2878      20D5FFFF 
- 2879              	.LBB922:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 2880              		.loc 2 1683 0
- 2881 1d0d 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 2881      20D5FFFF 
- 2882 1d15 F30F7F85 		movdqu	%xmm0, -10384(%rbp)
- 2882      70D7FFFF 
- 2883 1d1d E8000000 		call	KDbgWriterGet at PLT
- 2883      00
- 2884 1d22 4885C0   		testq	%rax, %rax
- 2885 1d25 7479     		je	.L37
- 2886 1d27 BF010000 		movl	$1, %edi
- 2886      00
- 2887 1d2c E8000000 		call	KDbgCondToFlag at PLT
- 2887      00
- 2888 1d31 4889C6   		movq	%rax, %rsi
- 2889 1d34 BF100000 		movl	$16, %edi
- 2889      00
- 2890 1d39 E8000000 		call	KDbgTestModConds at PLT
- 2890      00
- 2891 1d3e 84C0     		testb	%al, %al
- 2892 1d40 745E     		je	.L37
- 2893 1d42 8B857CD7 		movl	-10372(%rbp), %eax
- 2893      FFFF
- 2894 1d48 89C7     		movl	%eax, %edi
- 2895 1d4a E8B1E2FF 		call	bswap_32
- 2895      FF
- 2896 1d4f 4189C5   		movl	%eax, %r13d
- 2897 1d52 8B8578D7 		movl	-10376(%rbp), %eax
- 2897      FFFF
- 2898 1d58 89C7     		movl	%eax, %edi
- 2899 1d5a E8A1E2FF 		call	bswap_32
- 2899      FF
- 2900 1d5f 4189C4   		movl	%eax, %r12d
- 2901 1d62 8B8574D7 		movl	-10380(%rbp), %eax
- 2901      FFFF
- 2902 1d68 89C7     		movl	%eax, %edi
- 2903 1d6a E891E2FF 		call	bswap_32
- 2903      FF
- 2904 1d6f 89C3     		movl	%eax, %ebx
- 2905 1d71 8B8570D7 		movl	-10384(%rbp), %eax
- 2905      FFFF
- 2906 1d77 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 115
-
-
- 2907 1d79 E882E2FF 		call	bswap_32
- 2907      FF
- 2908 1d7e 4589E9   		movl	%r13d, %r9d
- 2909 1d81 4589E0   		movl	%r12d, %r8d
- 2910 1d84 89D9     		movl	%ebx, %ecx
- 2911 1d86 89C2     		movl	%eax, %edx
- 2912 1d88 488D3500 		leaq	.LC0(%rip), %rsi
- 2912      000000
- 2913 1d8f 488D3D00 		leaq	.LC1(%rip), %rdi
- 2913      000000
- 2914 1d96 B8000000 		movl	$0, %eax
- 2914      00
- 2915 1d9b E8000000 		call	KDbgMsg at PLT
- 2915      00
- 2916              	.L37:
- 2917 1da0 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 2917      20D5FFFF 
- 2918 1da8 F30F7F85 		movdqu	%xmm0, -6400(%rbp)
- 2918      00E7FFFF 
- 2919              	.LBE922:
- 2920              	.LBB923:
- 2921              	.LBB924:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 2922              		.loc 2 667 0
- 2923 1db0 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 2923      00000000 
- 2924 1db8 F30F6F8D 		movdqu	-6400(%rbp), %xmm1
- 2924      00E7FFFF 
- 2925 1dc0 F30F7F8D 		movdqu	%xmm1, -6368(%rbp)
- 2925      20E7FFFF 
- 2926 1dc8 F30F7F85 		movdqu	%xmm0, -6384(%rbp)
- 2926      10E7FFFF 
- 2927 1dd0 F30F6F85 		movdqu	-6368(%rbp), %xmm0
- 2927      20E7FFFF 
- 2928 1dd8 F30F7F85 		movdqu	%xmm0, -6336(%rbp)
- 2928      40E7FFFF 
- 2929 1de0 F30F6F85 		movdqu	-6384(%rbp), %xmm0
- 2929      10E7FFFF 
- 2930 1de8 F30F7F85 		movdqu	%xmm0, -6352(%rbp)
- 2930      30E7FFFF 
- 2931              	.LBB925:
- 2932              	.LBB926:
- 2933              	.LBB927:
- 2934              	.LBB928:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 2935              		.loc 3 529 0
- 2936 1df0 F30F6F8D 		movdqu	-6352(%rbp), %xmm1
- 2936      30E7FFFF 
- 2937 1df8 F30F6F85 		movdqu	-6336(%rbp), %xmm0
- 2937      40E7FFFF 
- 2938 1e00 660F3800 		pshufb	%xmm1, %xmm0
- 2938      C1
- 2939              	.LBE928:
- 2940              	.LBE927:
- 2941              	.LBE926:
- 2942              	.LBE925:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 116
-
-
- 2943              		.loc 2 667 0
- 2944 1e05 F30F7F85 		movdqu	%xmm0, -6400(%rbp)
- 2944      00E7FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 2945              		.loc 2 668 0
- 2946 1e0d F30F6F85 		movdqu	-6400(%rbp), %xmm0
- 2946      00E7FFFF 
- 2947              	.LBE924:
- 2948              	.LBE923:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 2949              		.loc 2 1684 0
- 2950 1e15 660F7F85 		movdqa	%xmm0, -10976(%rbp)
- 2950      20D5FFFF 
- 2951              	.LBB929:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 2952              		.loc 2 1685 0
- 2953 1e1d 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 2953      20D5FFFF 
- 2954 1e25 F30F7F85 		movdqu	%xmm0, -10400(%rbp)
- 2954      60D7FFFF 
- 2955 1e2d E8000000 		call	KDbgWriterGet at PLT
- 2955      00
- 2956 1e32 4885C0   		testq	%rax, %rax
- 2957 1e35 7479     		je	.L39
- 2958 1e37 BF010000 		movl	$1, %edi
- 2958      00
- 2959 1e3c E8000000 		call	KDbgCondToFlag at PLT
- 2959      00
- 2960 1e41 4889C6   		movq	%rax, %rsi
- 2961 1e44 BF100000 		movl	$16, %edi
- 2961      00
- 2962 1e49 E8000000 		call	KDbgTestModConds at PLT
- 2962      00
- 2963 1e4e 84C0     		testb	%al, %al
- 2964 1e50 745E     		je	.L39
- 2965 1e52 8B856CD7 		movl	-10388(%rbp), %eax
- 2965      FFFF
- 2966 1e58 89C7     		movl	%eax, %edi
- 2967 1e5a E8A1E1FF 		call	bswap_32
- 2967      FF
- 2968 1e5f 4189C5   		movl	%eax, %r13d
- 2969 1e62 8B8568D7 		movl	-10392(%rbp), %eax
- 2969      FFFF
- 2970 1e68 89C7     		movl	%eax, %edi
- 2971 1e6a E891E1FF 		call	bswap_32
- 2971      FF
- 2972 1e6f 4189C4   		movl	%eax, %r12d
- 2973 1e72 8B8564D7 		movl	-10396(%rbp), %eax
- 2973      FFFF
- 2974 1e78 89C7     		movl	%eax, %edi
- 2975 1e7a E881E1FF 		call	bswap_32
- 2975      FF
- 2976 1e7f 89C3     		movl	%eax, %ebx
- 2977 1e81 8B8560D7 		movl	-10400(%rbp), %eax
- 2977      FFFF
- 2978 1e87 89C7     		movl	%eax, %edi
- 2979 1e89 E872E1FF 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 117
-
-
- 2979      FF
- 2980 1e8e 4589E9   		movl	%r13d, %r9d
- 2981 1e91 4589E0   		movl	%r12d, %r8d
- 2982 1e94 89D9     		movl	%ebx, %ecx
- 2983 1e96 89C2     		movl	%eax, %edx
- 2984 1e98 488D3500 		leaq	.LC2(%rip), %rsi
- 2984      000000
- 2985 1e9f 488D3D00 		leaq	.LC1(%rip), %rdi
- 2985      000000
- 2986 1ea6 B8000000 		movl	$0, %eax
- 2986      00
- 2987 1eab E8000000 		call	KDbgMsg at PLT
- 2987      00
- 2988              	.L39:
- 2989 1eb0 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 2989      20D5FFFF 
- 2990 1eb8 F30F7F85 		movdqu	%xmm0, -6304(%rbp)
- 2990      60E7FFFF 
- 2991 1ec0 660F6F85 		movdqa	-10960(%rbp), %xmm0
- 2991      30D5FFFF 
- 2992 1ec8 F30F7F85 		movdqu	%xmm0, -6320(%rbp)
- 2992      50E7FFFF 
- 2993              	.LBE929:
- 2994              	.LBB930:
- 2995              	.LBB931:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 2996              		.loc 2 178 0
- 2997 1ed0 F30F6F85 		movdqu	-6320(%rbp), %xmm0
- 2997      50E7FFFF 
- 2998 1ed8 F30F6F8D 		movdqu	-6304(%rbp), %xmm1
- 2998      60E7FFFF 
- 2999 1ee0 660FEFC1 		pxor	%xmm1, %xmm0
- 3000              	.LBE931:
- 3001              	.LBE930:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 3002              		.loc 2 1686 0
- 3003 1ee4 660F7F85 		movdqa	%xmm0, -10976(%rbp)
- 3003      20D5FFFF 
- 3004              	.LBB932:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 3005              		.loc 2 1687 0
- 3006 1eec 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 3006      20D5FFFF 
- 3007 1ef4 F30F7F85 		movdqu	%xmm0, -10416(%rbp)
- 3007      50D7FFFF 
- 3008 1efc E8000000 		call	KDbgWriterGet at PLT
- 3008      00
- 3009 1f01 4885C0   		testq	%rax, %rax
- 3010 1f04 7479     		je	.L41
- 3011 1f06 BF010000 		movl	$1, %edi
- 3011      00
- 3012 1f0b E8000000 		call	KDbgCondToFlag at PLT
- 3012      00
- 3013 1f10 4889C6   		movq	%rax, %rsi
- 3014 1f13 BF100000 		movl	$16, %edi
- 3014      00
- 3015 1f18 E8000000 		call	KDbgTestModConds at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 118
-
-
- 3015      00
- 3016 1f1d 84C0     		testb	%al, %al
- 3017 1f1f 745E     		je	.L41
- 3018 1f21 8B855CD7 		movl	-10404(%rbp), %eax
- 3018      FFFF
- 3019 1f27 89C7     		movl	%eax, %edi
- 3020 1f29 E8D2E0FF 		call	bswap_32
- 3020      FF
- 3021 1f2e 4189C5   		movl	%eax, %r13d
- 3022 1f31 8B8558D7 		movl	-10408(%rbp), %eax
- 3022      FFFF
- 3023 1f37 89C7     		movl	%eax, %edi
- 3024 1f39 E8C2E0FF 		call	bswap_32
- 3024      FF
- 3025 1f3e 4189C4   		movl	%eax, %r12d
- 3026 1f41 8B8554D7 		movl	-10412(%rbp), %eax
- 3026      FFFF
- 3027 1f47 89C7     		movl	%eax, %edi
- 3028 1f49 E8B2E0FF 		call	bswap_32
- 3028      FF
- 3029 1f4e 89C3     		movl	%eax, %ebx
- 3030 1f50 8B8550D7 		movl	-10416(%rbp), %eax
- 3030      FFFF
- 3031 1f56 89C7     		movl	%eax, %edi
- 3032 1f58 E8A3E0FF 		call	bswap_32
- 3032      FF
- 3033 1f5d 4589E9   		movl	%r13d, %r9d
- 3034 1f60 4589E0   		movl	%r12d, %r8d
- 3035 1f63 89D9     		movl	%ebx, %ecx
- 3036 1f65 89C2     		movl	%eax, %edx
- 3037 1f67 488D3500 		leaq	.LC3(%rip), %rsi
- 3037      000000
- 3038 1f6e 488D3D00 		leaq	.LC1(%rip), %rdi
- 3038      000000
- 3039 1f75 B8000000 		movl	$0, %eax
- 3039      00
- 3040 1f7a E8000000 		call	KDbgMsg at PLT
- 3040      00
- 3041              	.L41:
- 3042 1f7f 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 3042      20D5FFFF 
- 3043 1f87 F30F7F85 		movdqu	%xmm0, -6288(%rbp)
- 3043      70E7FFFF 
- 3044 1f8f F30F6F85 		movdqu	-6288(%rbp), %xmm0
- 3044      70E7FFFF 
- 3045 1f97 F30F7F85 		movdqu	%xmm0, -6256(%rbp)
- 3045      90E7FFFF 
- 3046              	.LBE932:
- 3047              	.LBB933:
- 3048              	.LBB934:
- 3049              	.LBB935:
- 3050              	.LBB936:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3051              		.loc 3 450 0
- 3052 1f9f F30F6F85 		movdqu	-6256(%rbp), %xmm0
- 3052      90E7FFFF 
- 3053 1fa7 660F70C0 		pshufd	$255, %xmm0, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 119
-
-
- 3053      FF
- 3054              	.LBE936:
- 3055              	.LBE935:
- 3056              	.LBE934:
- 3057              	.LBE933:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 3058              		.loc 2 1688 0
- 3059 1fac 660F7F85 		movdqa	%xmm0, -10976(%rbp)
- 3059      20D5FFFF 
- 3060              	.LBB937:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 3061              		.loc 2 1689 0
- 3062 1fb4 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 3062      20D5FFFF 
- 3063 1fbc F30F7F85 		movdqu	%xmm0, -10432(%rbp)
- 3063      40D7FFFF 
- 3064 1fc4 E8000000 		call	KDbgWriterGet at PLT
- 3064      00
- 3065 1fc9 4885C0   		testq	%rax, %rax
- 3066 1fcc 7479     		je	.L43
- 3067 1fce BF010000 		movl	$1, %edi
- 3067      00
- 3068 1fd3 E8000000 		call	KDbgCondToFlag at PLT
- 3068      00
- 3069 1fd8 4889C6   		movq	%rax, %rsi
- 3070 1fdb BF100000 		movl	$16, %edi
- 3070      00
- 3071 1fe0 E8000000 		call	KDbgTestModConds at PLT
- 3071      00
- 3072 1fe5 84C0     		testb	%al, %al
- 3073 1fe7 745E     		je	.L43
- 3074 1fe9 8B854CD7 		movl	-10420(%rbp), %eax
- 3074      FFFF
- 3075 1fef 89C7     		movl	%eax, %edi
- 3076 1ff1 E80AE0FF 		call	bswap_32
- 3076      FF
- 3077 1ff6 4189C5   		movl	%eax, %r13d
- 3078 1ff9 8B8548D7 		movl	-10424(%rbp), %eax
- 3078      FFFF
- 3079 1fff 89C7     		movl	%eax, %edi
- 3080 2001 E8FADFFF 		call	bswap_32
- 3080      FF
- 3081 2006 4189C4   		movl	%eax, %r12d
- 3082 2009 8B8544D7 		movl	-10428(%rbp), %eax
- 3082      FFFF
- 3083 200f 89C7     		movl	%eax, %edi
- 3084 2011 E8EADFFF 		call	bswap_32
- 3084      FF
- 3085 2016 89C3     		movl	%eax, %ebx
- 3086 2018 8B8540D7 		movl	-10432(%rbp), %eax
- 3086      FFFF
- 3087 201e 89C7     		movl	%eax, %edi
- 3088 2020 E8DBDFFF 		call	bswap_32
- 3088      FF
- 3089 2025 4589E9   		movl	%r13d, %r9d
- 3090 2028 4589E0   		movl	%r12d, %r8d
- 3091 202b 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 120
-
-
- 3092 202d 89C2     		movl	%eax, %edx
- 3093 202f 488D3500 		leaq	.LC4(%rip), %rsi
- 3093      000000
- 3094 2036 488D3D00 		leaq	.LC1(%rip), %rdi
- 3094      000000
- 3095 203d B8000000 		movl	$0, %eax
- 3095      00
- 3096 2042 E8000000 		call	KDbgMsg at PLT
- 3096      00
- 3097              	.L43:
- 3098              	.LBE937:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 3099              		.loc 2 1690 0
- 3100 2047 660F6F85 		movdqa	-10976(%rbp), %xmm0
- 3100      20D5FFFF 
- 3101              	.LBE891:
- 3102              	.LBE890:
-1747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x08,4);
- 3103              		.loc 2 1747 0
- 3104 204f F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 3104      10D9FFFF 
- 3105 2057 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 3105      00D9FFFF 
- 3106 205f F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 3106      A0E7FFFF 
- 3107              	.LBB938:
- 3108              	.LBB939:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3109              		.loc 2 1565 0
- 3110 2067 F30F6F85 		movdqu	-6240(%rbp), %xmm0
- 3110      A0E7FFFF 
- 3111 206f 660F7F85 		movdqa	%xmm0, -10944(%rbp)
- 3111      40D5FFFF 
- 3112 2077 660F6F85 		movdqa	-10944(%rbp), %xmm0
- 3112      40D5FFFF 
- 3113 207f F30F7F85 		movdqu	%xmm0, -6224(%rbp)
- 3113      B0E7FFFF 
- 3114              	.LBB940:
- 3115              	.LBB941:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3116              		.loc 2 1278 0
- 3117 2087 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 3117      00000000 
- 3118 208f F30F6F8D 		movdqu	-6224(%rbp), %xmm1
- 3118      B0E7FFFF 
- 3119 2097 F30F7F8D 		movdqu	%xmm1, -6192(%rbp)
- 3119      D0E7FFFF 
- 3120 209f F30F7F85 		movdqu	%xmm0, -6208(%rbp)
- 3120      C0E7FFFF 
- 3121 20a7 F30F6F85 		movdqu	-6192(%rbp), %xmm0
- 3121      D0E7FFFF 
- 3122 20af F30F7F85 		movdqu	%xmm0, -6160(%rbp)
- 3122      F0E7FFFF 
- 3123 20b7 F30F6F85 		movdqu	-6208(%rbp), %xmm0
- 3123      C0E7FFFF 
- 3124 20bf F30F7F85 		movdqu	%xmm0, -6176(%rbp)
- 3124      E0E7FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 121
-
-
- 3125              	.LBB942:
- 3126              	.LBB943:
- 3127              	.LBB944:
- 3128              	.LBB945:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3129              		.loc 3 529 0
- 3130 20c7 F30F6F8D 		movdqu	-6176(%rbp), %xmm1
- 3130      E0E7FFFF 
- 3131 20cf F30F6F85 		movdqu	-6160(%rbp), %xmm0
- 3131      F0E7FFFF 
- 3132 20d7 660F3800 		pshufb	%xmm1, %xmm0
- 3132      C1
- 3133              	.LBE945:
- 3134              	.LBE944:
- 3135              	.LBE943:
- 3136              	.LBE942:
- 3137              	.LBE941:
- 3138              	.LBE940:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3139              		.loc 2 1567 0
- 3140 20dc 660F7F85 		movdqa	%xmm0, -10944(%rbp)
- 3140      40D5FFFF 
- 3141 20e4 660F6F85 		movdqa	-10944(%rbp), %xmm0
- 3141      40D5FFFF 
- 3142 20ec 660FEF85 		pxor	-6240(%rbp), %xmm0
- 3142      A0E7FFFF 
- 3143 20f4 F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 3143      A0E7FFFF 
- 3144 20fc 660F6F85 		movdqa	-10944(%rbp), %xmm0
- 3144      40D5FFFF 
- 3145 2104 F30F7F85 		movdqu	%xmm0, -6144(%rbp)
- 3145      00E8FFFF 
- 3146              	.LBB946:
- 3147              	.LBB947:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3148              		.loc 2 1278 0
- 3149 210c 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 3149      00000000 
- 3150 2114 F30F6F8D 		movdqu	-6144(%rbp), %xmm1
- 3150      00E8FFFF 
- 3151 211c F30F7F8D 		movdqu	%xmm1, -6112(%rbp)
- 3151      20E8FFFF 
- 3152 2124 F30F7F85 		movdqu	%xmm0, -6128(%rbp)
- 3152      10E8FFFF 
- 3153 212c F30F6F85 		movdqu	-6112(%rbp), %xmm0
- 3153      20E8FFFF 
- 3154 2134 F30F7F85 		movdqu	%xmm0, -6080(%rbp)
- 3154      40E8FFFF 
- 3155 213c F30F6F85 		movdqu	-6128(%rbp), %xmm0
- 3155      10E8FFFF 
- 3156 2144 F30F7F85 		movdqu	%xmm0, -6096(%rbp)
- 3156      30E8FFFF 
- 3157              	.LBB948:
- 3158              	.LBB949:
- 3159              	.LBB950:
- 3160              	.LBB951:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 122
-
-
- 3161              		.loc 3 529 0
- 3162 214c F30F6F8D 		movdqu	-6096(%rbp), %xmm1
- 3162      30E8FFFF 
- 3163 2154 F30F6F85 		movdqu	-6080(%rbp), %xmm0
- 3163      40E8FFFF 
- 3164 215c 660F3800 		pshufb	%xmm1, %xmm0
- 3164      C1
- 3165              	.LBE951:
- 3166              	.LBE950:
- 3167              	.LBE949:
- 3168              	.LBE948:
- 3169              	.LBE947:
- 3170              	.LBE946:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3171              		.loc 2 1568 0
- 3172 2161 660F7F85 		movdqa	%xmm0, -10944(%rbp)
- 3172      40D5FFFF 
- 3173 2169 660F6F85 		movdqa	-10944(%rbp), %xmm0
- 3173      40D5FFFF 
- 3174 2171 660FEF85 		pxor	-6240(%rbp), %xmm0
- 3174      A0E7FFFF 
- 3175 2179 F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 3175      A0E7FFFF 
- 3176 2181 660F6F85 		movdqa	-10944(%rbp), %xmm0
- 3176      40D5FFFF 
- 3177 2189 F30F7F85 		movdqu	%xmm0, -6064(%rbp)
- 3177      50E8FFFF 
- 3178              	.LBB952:
- 3179              	.LBB953:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3180              		.loc 2 1278 0
- 3181 2191 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 3181      00000000 
- 3182 2199 F30F6F8D 		movdqu	-6064(%rbp), %xmm1
- 3182      50E8FFFF 
- 3183 21a1 F30F7F8D 		movdqu	%xmm1, -6032(%rbp)
- 3183      70E8FFFF 
- 3184 21a9 F30F7F85 		movdqu	%xmm0, -6048(%rbp)
- 3184      60E8FFFF 
- 3185 21b1 F30F6F85 		movdqu	-6032(%rbp), %xmm0
- 3185      70E8FFFF 
- 3186 21b9 F30F7F85 		movdqu	%xmm0, -6000(%rbp)
- 3186      90E8FFFF 
- 3187 21c1 F30F6F85 		movdqu	-6048(%rbp), %xmm0
- 3187      60E8FFFF 
- 3188 21c9 F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 3188      80E8FFFF 
- 3189              	.LBB954:
- 3190              	.LBB955:
- 3191              	.LBB956:
- 3192              	.LBB957:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3193              		.loc 3 529 0
- 3194 21d1 F30F6F8D 		movdqu	-6016(%rbp), %xmm1
- 3194      80E8FFFF 
- 3195 21d9 F30F6F85 		movdqu	-6000(%rbp), %xmm0
- 3195      90E8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 123
-
-
- 3196 21e1 660F3800 		pshufb	%xmm1, %xmm0
- 3196      C1
- 3197              	.LBE957:
- 3198              	.LBE956:
- 3199              	.LBE955:
- 3200              	.LBE954:
- 3201              	.LBE953:
- 3202              	.LBE952:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3203              		.loc 2 1569 0
- 3204 21e6 660F7F85 		movdqa	%xmm0, -10944(%rbp)
- 3204      40D5FFFF 
- 3205 21ee 660F6F85 		movdqa	-10944(%rbp), %xmm0
- 3205      40D5FFFF 
- 3206 21f6 660FEF85 		pxor	-6240(%rbp), %xmm0
- 3206      A0E7FFFF 
- 3207 21fe F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 3207      A0E7FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3208              		.loc 2 1571 0
- 3209 2206 F30F6F85 		movdqu	-6240(%rbp), %xmm0
- 3209      A0E7FFFF 
- 3210              	.LBE939:
- 3211              	.LBE938:
- 3212              		.loc 2 1747 0
- 3213 220e F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 3213      00D9FFFF 
- 3214 2216 F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 3214      10D9FFFF 
- 3215 221e F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 3215      00D9FFFF 
- 3216 2226 660FEFC1 		pxor	%xmm1, %xmm0
- 3217 222a F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 3217      00D9FFFF 
- 3218 2232 488B8578 		movq	-10632(%rbp), %rax
- 3218      D6FFFF
- 3219 2239 4883C040 		addq	$64, %rax
- 3220 223d F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 3220      00D9FFFF 
- 3221 2245 F30F7F00 		movdqu	%xmm0, (%rax)
- 3222 2249 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 3222      00D9FFFF 
- 3223 2251 F30F7F85 		movdqu	%xmm0, -5968(%rbp)
- 3223      B0E8FFFF 
- 3224              	.LBB958:
- 3225              	.LBB959:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 3226              		.loc 2 1681 0
- 3227 2259 B8100000 		movl	$16, %eax
- 3227      00
- 3228 225e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 3228      00000000 
- 3229 2266 F30F7F85 		movdqu	%xmm0, -5936(%rbp)
- 3229      D0E8FFFF 
- 3230 226e 8985CCE8 		movl	%eax, -5940(%rbp)
- 3230      FFFF
- 3231 2274 F30F6F85 		movdqu	-5936(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 124
-
-
- 3231      D0E8FFFF 
- 3232 227c F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 3232      F0E8FFFF 
- 3233 2284 8B85CCE8 		movl	-5940(%rbp), %eax
- 3233      FFFF
- 3234 228a 8985ECE8 		movl	%eax, -5908(%rbp)
- 3234      FFFF
- 3235              	.LBB960:
- 3236              	.LBB961:
- 3237              	.LBB962:
- 3238              	.LBB963:
- 3239              		.loc 3 598 0
- 3240 2290 8B85ECE8 		movl	-5908(%rbp), %eax
- 3240      FFFF
- 3241 2296 F30F6F85 		movdqu	-5904(%rbp), %xmm0
- 3241      F0E8FFFF 
- 3242 229e 660F3A22 		pinsrd	$3, %eax, %xmm0
- 3242      C003
- 3243              	.LBE963:
- 3244              	.LBE962:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 3245              		.loc 2 519 0
- 3246 22a4 F30F7F85 		movdqu	%xmm0, -5936(%rbp)
- 3246      D0E8FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3247              		.loc 2 526 0
- 3248 22ac F30F6F85 		movdqu	-5936(%rbp), %xmm0
- 3248      D0E8FFFF 
- 3249              	.LBE961:
- 3250              	.LBE960:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 3251              		.loc 2 1681 0
- 3252 22b4 660F7F85 		movdqa	%xmm0, -10912(%rbp)
- 3252      60D5FFFF 
- 3253 22bc F30F6F85 		movdqu	-5968(%rbp), %xmm0
- 3253      B0E8FFFF 
- 3254 22c4 F30F7F85 		movdqu	%xmm0, -5888(%rbp)
- 3254      00E9FFFF 
- 3255 22cc F30F6F85 		movdqu	-5888(%rbp), %xmm0
- 3255      00E9FFFF 
- 3256 22d4 F30F7F85 		movdqu	%xmm0, -5856(%rbp)
- 3256      20E9FFFF 
- 3257 22dc 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 3257      000000
- 3258 22e3 48898518 		movq	%rax, -5864(%rbp)
- 3258      E9FFFF
- 3259              	.LBB964:
- 3260              	.LBB965:
- 3261              	.LBB966:
- 3262              	.LBB967:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 3263              		.loc 2 851 0
- 3264 22ea 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 3264      00000000 
- 3265 22f2 F30F7F85 		movdqu	%xmm0, -5824(%rbp)
- 3265      40E9FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 125
-
-
- 3266              		.loc 2 854 0
- 3267 22fa 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3267      00000000 
- 3268 2302 F30F6F8D 		movdqu	-5856(%rbp), %xmm1
- 3268      20E9FFFF 
- 3269 230a F30F7F8D 		movdqu	%xmm1, -5744(%rbp)
- 3269      90E9FFFF 
- 3270 2312 F30F7F85 		movdqu	%xmm0, -5760(%rbp)
- 3270      80E9FFFF 
- 3271              	.LBB968:
- 3272              	.LBB969:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3273              		.loc 2 206 0
- 3274 231a F30F6F85 		movdqu	-5760(%rbp), %xmm0
- 3274      80E9FFFF 
- 3275 2322 F30F6F8D 		movdqu	-5744(%rbp), %xmm1
- 3275      90E9FFFF 
- 3276 232a 660FDBC1 		pand	%xmm1, %xmm0
- 3277              	.LBE969:
- 3278              	.LBE968:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 3279              		.loc 2 854 0
- 3280 232e F30F7F85 		movdqu	%xmm0, -5776(%rbp)
- 3280      70E9FFFF 
- 3281 2336 F30F6F85 		movdqu	-5856(%rbp), %xmm0
- 3281      20E9FFFF 
- 3282 233e F30F7F85 		movdqu	%xmm0, -5712(%rbp)
- 3282      B0E9FFFF 
- 3283              	.LBB970:
- 3284              	.LBB971:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 3285              		.loc 3 433 0
- 3286 2346 F30F6F85 		movdqu	-5712(%rbp), %xmm0
- 3286      B0E9FFFF 
- 3287 234e 660F72D0 		psrld	$4, %xmm0
- 3287      04
- 3288              	.LBE971:
- 3289              	.LBE970:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 3290              		.loc 2 857 0
- 3291 2353 F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 3291      60E9FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3292              		.loc 2 859 0
- 3293 235b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3293      00000000 
- 3294 2363 F30F6F8D 		movdqu	-5792(%rbp), %xmm1
- 3294      60E9FFFF 
- 3295 236b F30F7F8D 		movdqu	%xmm1, -5680(%rbp)
- 3295      D0E9FFFF 
- 3296 2373 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 3296      C0E9FFFF 
- 3297              	.LBB972:
- 3298              	.LBB973:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3299              		.loc 2 206 0
- 3300 237b F30F6F85 		movdqu	-5696(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 126
-
-
- 3300      C0E9FFFF 
- 3301 2383 F30F6F8D 		movdqu	-5680(%rbp), %xmm1
- 3301      D0E9FFFF 
- 3302 238b 660FDBC1 		pand	%xmm1, %xmm0
- 3303              	.LBE973:
- 3304              	.LBE972:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3305              		.loc 2 859 0
- 3306 238f F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 3306      60E9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 3307              		.loc 2 866 0
- 3308 2397 C7853CE9 		movl	$0, -5828(%rbp)
- 3308      FFFF0000 
- 3308      0000
- 3309 23a1 E9BE0100 		jmp	.L44
- 3309      00
- 3310              	.L45:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 3311              		.loc 2 868 0
- 3312 23a6 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 3312      00000000 
- 3313 23ae F30F7F85 		movdqu	%xmm0, -5648(%rbp)
- 3313      F0E9FFFF 
- 3314 23b6 F30F6F85 		movdqu	-5792(%rbp), %xmm0
- 3314      60E9FFFF 
- 3315 23be F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 3315      E0E9FFFF 
- 3316 23c6 F30F6F85 		movdqu	-5648(%rbp), %xmm0
- 3316      F0E9FFFF 
- 3317 23ce F30F7F85 		movdqu	%xmm0, -5616(%rbp)
- 3317      10EAFFFF 
- 3318 23d6 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 3318      E0E9FFFF 
- 3319 23de F30F7F85 		movdqu	%xmm0, -5632(%rbp)
- 3319      00EAFFFF 
- 3320              	.LBB974:
- 3321              	.LBB975:
- 3322              	.LBB976:
- 3323              	.LBB977:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3324              		.loc 3 529 0
- 3325 23e6 F30F6F8D 		movdqu	-5632(%rbp), %xmm1
- 3325      00EAFFFF 
- 3326 23ee F30F6F85 		movdqu	-5616(%rbp), %xmm0
- 3326      10EAFFFF 
- 3327 23f6 660F3800 		pshufb	%xmm1, %xmm0
- 3327      C1
- 3328              	.LBE977:
- 3329              	.LBE976:
- 3330              	.LBE975:
- 3331              	.LBE974:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 3332              		.loc 2 868 0
- 3333 23fb F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 3333      50E9FFFF 
- 3334 2403 F30F6F85 		movdqu	-5776(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 127
-
-
- 3334      70E9FFFF 
- 3335 240b F30F7F85 		movdqu	%xmm0, -5584(%rbp)
- 3335      30EAFFFF 
- 3336 2413 F30F6F85 		movdqu	-5808(%rbp), %xmm0
- 3336      50E9FFFF 
- 3337 241b F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 3337      20EAFFFF 
- 3338              	.LBB978:
- 3339              	.LBB979:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 3340              		.loc 2 234 0
- 3341 2423 F30F6F85 		movdqu	-5600(%rbp), %xmm0
- 3341      20EAFFFF 
- 3342 242b F30F6F8D 		movdqu	-5584(%rbp), %xmm1
- 3342      30EAFFFF 
- 3343 2433 660FEBC1 		por	%xmm1, %xmm0
- 3344              	.LBE979:
- 3345              	.LBE978:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 3346              		.loc 2 870 0
- 3347 2437 F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 3347      50E9FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 3348              		.loc 2 872 0
- 3349 243f 8B853CE9 		mov	-5828(%rbp), %eax
- 3349      FFFF
- 3350 2445 48C1E004 		salq	$4, %rax
- 3351 2449 48038518 		addq	-5864(%rbp), %rax
- 3351      E9FFFF
- 3352 2450 660F6F00 		movdqa	(%rax), %xmm0
- 3353 2454 F30F7F85 		movdqu	%xmm0, -5552(%rbp)
- 3353      50EAFFFF 
- 3354 245c F30F6F85 		movdqu	-5808(%rbp), %xmm0
- 3354      50E9FFFF 
- 3355 2464 F30F7F85 		movdqu	%xmm0, -5568(%rbp)
- 3355      40EAFFFF 
- 3356 246c F30F6F85 		movdqu	-5552(%rbp), %xmm0
- 3356      50EAFFFF 
- 3357 2474 F30F7F85 		movdqu	%xmm0, -5520(%rbp)
- 3357      70EAFFFF 
- 3358 247c F30F6F85 		movdqu	-5568(%rbp), %xmm0
- 3358      40EAFFFF 
- 3359 2484 F30F7F85 		movdqu	%xmm0, -5536(%rbp)
- 3359      60EAFFFF 
- 3360              	.LBB980:
- 3361              	.LBB981:
- 3362              	.LBB982:
- 3363              	.LBB983:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3364              		.loc 3 529 0
- 3365 248c F30F6F8D 		movdqu	-5536(%rbp), %xmm1
- 3365      60EAFFFF 
- 3366 2494 F30F6F85 		movdqu	-5520(%rbp), %xmm0
- 3366      70EAFFFF 
- 3367 249c 660F3800 		pshufb	%xmm1, %xmm0
- 3367      C1
- 3368              	.LBE983:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 128
-
-
- 3369              	.LBE982:
- 3370              	.LBE981:
- 3371              	.LBE980:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 3372              		.loc 2 872 0
- 3373 24a1 F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 3373      50E9FFFF 
- 3374 24a9 F30F6F85 		movdqu	-5824(%rbp), %xmm0
- 3374      40E9FFFF 
- 3375 24b1 F30F7F85 		movdqu	%xmm0, -5488(%rbp)
- 3375      90EAFFFF 
- 3376 24b9 F30F6F85 		movdqu	-5808(%rbp), %xmm0
- 3376      50E9FFFF 
- 3377 24c1 F30F7F85 		movdqu	%xmm0, -5504(%rbp)
- 3377      80EAFFFF 
- 3378              	.LBB984:
- 3379              	.LBB985:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 3380              		.loc 2 234 0
- 3381 24c9 F30F6F85 		movdqu	-5504(%rbp), %xmm0
- 3381      80EAFFFF 
- 3382 24d1 F30F6F8D 		movdqu	-5488(%rbp), %xmm1
- 3382      90EAFFFF 
- 3383 24d9 660FEBC1 		por	%xmm1, %xmm0
- 3384              	.LBE985:
- 3385              	.LBE984:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 3386              		.loc 2 874 0
- 3387 24dd F30F7F85 		movdqu	%xmm0, -5824(%rbp)
- 3387      40E9FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 3388              		.loc 2 876 0
- 3389 24e5 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 3389      00000000 
- 3390 24ed F30F6F8D 		movdqu	-5792(%rbp), %xmm1
- 3390      60E9FFFF 
- 3391 24f5 F30F7F8D 		movdqu	%xmm1, -5456(%rbp)
- 3391      B0EAFFFF 
- 3392 24fd F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 3392      A0EAFFFF 
- 3393              	.LBB986:
- 3394              	.LBB987:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 3395              		.loc 2 290 0
- 3396 2505 F30F6F8D 		movdqu	-5472(%rbp), %xmm1
- 3396      A0EAFFFF 
- 3397 250d F30F6F85 		movdqu	-5456(%rbp), %xmm0
- 3397      B0EAFFFF 
- 3398 2515 660FF8C1 		psubb	%xmm1, %xmm0
- 3399              	.LBE987:
- 3400              	.LBE986:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 3401              		.loc 2 876 0
- 3402 2519 F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 3402      60E9FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3403              		.loc 2 878 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 129
-
-
- 3404 2521 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3404      00000000 
- 3405 2529 F30F6F8D 		movdqu	-5792(%rbp), %xmm1
- 3405      60E9FFFF 
- 3406 2531 F30F7F8D 		movdqu	%xmm1, -5424(%rbp)
- 3406      D0EAFFFF 
- 3407 2539 F30F7F85 		movdqu	%xmm0, -5440(%rbp)
- 3407      C0EAFFFF 
- 3408              	.LBB988:
- 3409              	.LBB989:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3410              		.loc 2 206 0
- 3411 2541 F30F6F85 		movdqu	-5440(%rbp), %xmm0
- 3411      C0EAFFFF 
- 3412 2549 F30F6F8D 		movdqu	-5424(%rbp), %xmm1
- 3412      D0EAFFFF 
- 3413 2551 660FDBC1 		pand	%xmm1, %xmm0
- 3414              	.LBE989:
- 3415              	.LBE988:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3416              		.loc 2 878 0
- 3417 2555 F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 3417      60E9FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 3418              		.loc 2 866 0
- 3419 255d 83853CE9 		addl	$1, -5828(%rbp)
- 3419      FFFF01
- 3420              	.L44:
- 3421 2564 83BD3CE9 		cmpl	$15, -5828(%rbp)
- 3421      FFFF0F
- 3422 256b 0F8635FE 		jbe	.L45
- 3422      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 3423              		.loc 2 882 0
- 3424 2571 F30F6F85 		movdqu	-5824(%rbp), %xmm0
- 3424      40E9FFFF 
- 3425              	.LBE967:
- 3426              	.LBE966:
- 3427              	.LBE965:
- 3428              	.LBE964:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 3429              		.loc 2 1682 0
- 3430 2579 660F7F85 		movdqa	%xmm0, -10928(%rbp)
- 3430      50D5FFFF 
- 3431              	.LBB990:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 3432              		.loc 2 1683 0
- 3433 2581 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3433      50D5FFFF 
- 3434 2589 F30F7F85 		movdqu	%xmm0, -10320(%rbp)
- 3434      B0D7FFFF 
- 3435 2591 E8000000 		call	KDbgWriterGet at PLT
- 3435      00
- 3436 2596 4885C0   		testq	%rax, %rax
- 3437 2599 7479     		je	.L47
- 3438 259b BF010000 		movl	$1, %edi
- 3438      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 130
-
-
- 3439 25a0 E8000000 		call	KDbgCondToFlag at PLT
- 3439      00
- 3440 25a5 4889C6   		movq	%rax, %rsi
- 3441 25a8 BF100000 		movl	$16, %edi
- 3441      00
- 3442 25ad E8000000 		call	KDbgTestModConds at PLT
- 3442      00
- 3443 25b2 84C0     		testb	%al, %al
- 3444 25b4 745E     		je	.L47
- 3445 25b6 8B85BCD7 		movl	-10308(%rbp), %eax
- 3445      FFFF
- 3446 25bc 89C7     		movl	%eax, %edi
- 3447 25be E83DDAFF 		call	bswap_32
- 3447      FF
- 3448 25c3 4189C5   		movl	%eax, %r13d
- 3449 25c6 8B85B8D7 		movl	-10312(%rbp), %eax
- 3449      FFFF
- 3450 25cc 89C7     		movl	%eax, %edi
- 3451 25ce E82DDAFF 		call	bswap_32
- 3451      FF
- 3452 25d3 4189C4   		movl	%eax, %r12d
- 3453 25d6 8B85B4D7 		movl	-10316(%rbp), %eax
- 3453      FFFF
- 3454 25dc 89C7     		movl	%eax, %edi
- 3455 25de E81DDAFF 		call	bswap_32
- 3455      FF
- 3456 25e3 89C3     		movl	%eax, %ebx
- 3457 25e5 8B85B0D7 		movl	-10320(%rbp), %eax
- 3457      FFFF
- 3458 25eb 89C7     		movl	%eax, %edi
- 3459 25ed E80EDAFF 		call	bswap_32
- 3459      FF
- 3460 25f2 4589E9   		movl	%r13d, %r9d
- 3461 25f5 4589E0   		movl	%r12d, %r8d
- 3462 25f8 89D9     		movl	%ebx, %ecx
- 3463 25fa 89C2     		movl	%eax, %edx
- 3464 25fc 488D3500 		leaq	.LC0(%rip), %rsi
- 3464      000000
- 3465 2603 488D3D00 		leaq	.LC1(%rip), %rdi
- 3465      000000
- 3466 260a B8000000 		movl	$0, %eax
- 3466      00
- 3467 260f E8000000 		call	KDbgMsg at PLT
- 3467      00
- 3468              	.L47:
- 3469 2614 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3469      50D5FFFF 
- 3470 261c F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 3470      E0EAFFFF 
- 3471              	.LBE990:
- 3472              	.LBB991:
- 3473              	.LBB992:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 3474              		.loc 2 667 0
- 3475 2624 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 3475      00000000 
- 3476 262c F30F6F8D 		movdqu	-5408(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 131
-
-
- 3476      E0EAFFFF 
- 3477 2634 F30F7F8D 		movdqu	%xmm1, -5376(%rbp)
- 3477      00EBFFFF 
- 3478 263c F30F7F85 		movdqu	%xmm0, -5392(%rbp)
- 3478      F0EAFFFF 
- 3479 2644 F30F6F85 		movdqu	-5376(%rbp), %xmm0
- 3479      00EBFFFF 
- 3480 264c F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 3480      20EBFFFF 
- 3481 2654 F30F6F85 		movdqu	-5392(%rbp), %xmm0
- 3481      F0EAFFFF 
- 3482 265c F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 3482      10EBFFFF 
- 3483              	.LBB993:
- 3484              	.LBB994:
- 3485              	.LBB995:
- 3486              	.LBB996:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3487              		.loc 3 529 0
- 3488 2664 F30F6F8D 		movdqu	-5360(%rbp), %xmm1
- 3488      10EBFFFF 
- 3489 266c F30F6F85 		movdqu	-5344(%rbp), %xmm0
- 3489      20EBFFFF 
- 3490 2674 660F3800 		pshufb	%xmm1, %xmm0
- 3490      C1
- 3491              	.LBE996:
- 3492              	.LBE995:
- 3493              	.LBE994:
- 3494              	.LBE993:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 3495              		.loc 2 667 0
- 3496 2679 F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 3496      E0EAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3497              		.loc 2 668 0
- 3498 2681 F30F6F85 		movdqu	-5408(%rbp), %xmm0
- 3498      E0EAFFFF 
- 3499              	.LBE992:
- 3500              	.LBE991:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 3501              		.loc 2 1684 0
- 3502 2689 660F7F85 		movdqa	%xmm0, -10928(%rbp)
- 3502      50D5FFFF 
- 3503              	.LBB997:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 3504              		.loc 2 1685 0
- 3505 2691 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3505      50D5FFFF 
- 3506 2699 F30F7F85 		movdqu	%xmm0, -10336(%rbp)
- 3506      A0D7FFFF 
- 3507 26a1 E8000000 		call	KDbgWriterGet at PLT
- 3507      00
- 3508 26a6 4885C0   		testq	%rax, %rax
- 3509 26a9 7479     		je	.L49
- 3510 26ab BF010000 		movl	$1, %edi
- 3510      00
- 3511 26b0 E8000000 		call	KDbgCondToFlag at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 132
-
-
- 3511      00
- 3512 26b5 4889C6   		movq	%rax, %rsi
- 3513 26b8 BF100000 		movl	$16, %edi
- 3513      00
- 3514 26bd E8000000 		call	KDbgTestModConds at PLT
- 3514      00
- 3515 26c2 84C0     		testb	%al, %al
- 3516 26c4 745E     		je	.L49
- 3517 26c6 8B85ACD7 		movl	-10324(%rbp), %eax
- 3517      FFFF
- 3518 26cc 89C7     		movl	%eax, %edi
- 3519 26ce E82DD9FF 		call	bswap_32
- 3519      FF
- 3520 26d3 4189C5   		movl	%eax, %r13d
- 3521 26d6 8B85A8D7 		movl	-10328(%rbp), %eax
- 3521      FFFF
- 3522 26dc 89C7     		movl	%eax, %edi
- 3523 26de E81DD9FF 		call	bswap_32
- 3523      FF
- 3524 26e3 4189C4   		movl	%eax, %r12d
- 3525 26e6 8B85A4D7 		movl	-10332(%rbp), %eax
- 3525      FFFF
- 3526 26ec 89C7     		movl	%eax, %edi
- 3527 26ee E80DD9FF 		call	bswap_32
- 3527      FF
- 3528 26f3 89C3     		movl	%eax, %ebx
- 3529 26f5 8B85A0D7 		movl	-10336(%rbp), %eax
- 3529      FFFF
- 3530 26fb 89C7     		movl	%eax, %edi
- 3531 26fd E8FED8FF 		call	bswap_32
- 3531      FF
- 3532 2702 4589E9   		movl	%r13d, %r9d
- 3533 2705 4589E0   		movl	%r12d, %r8d
- 3534 2708 89D9     		movl	%ebx, %ecx
- 3535 270a 89C2     		movl	%eax, %edx
- 3536 270c 488D3500 		leaq	.LC2(%rip), %rsi
- 3536      000000
- 3537 2713 488D3D00 		leaq	.LC1(%rip), %rdi
- 3537      000000
- 3538 271a B8000000 		movl	$0, %eax
- 3538      00
- 3539 271f E8000000 		call	KDbgMsg at PLT
- 3539      00
- 3540              	.L49:
- 3541 2724 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3541      50D5FFFF 
- 3542 272c F30F7F85 		movdqu	%xmm0, -5312(%rbp)
- 3542      40EBFFFF 
- 3543 2734 660F6F85 		movdqa	-10912(%rbp), %xmm0
- 3543      60D5FFFF 
- 3544 273c F30F7F85 		movdqu	%xmm0, -5328(%rbp)
- 3544      30EBFFFF 
- 3545              	.LBE997:
- 3546              	.LBB998:
- 3547              	.LBB999:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 3548              		.loc 2 178 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 133
-
-
- 3549 2744 F30F6F85 		movdqu	-5328(%rbp), %xmm0
- 3549      30EBFFFF 
- 3550 274c F30F6F8D 		movdqu	-5312(%rbp), %xmm1
- 3550      40EBFFFF 
- 3551 2754 660FEFC1 		pxor	%xmm1, %xmm0
- 3552              	.LBE999:
- 3553              	.LBE998:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 3554              		.loc 2 1686 0
- 3555 2758 660F7F85 		movdqa	%xmm0, -10928(%rbp)
- 3555      50D5FFFF 
- 3556              	.LBB1000:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 3557              		.loc 2 1687 0
- 3558 2760 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3558      50D5FFFF 
- 3559 2768 F30F7F85 		movdqu	%xmm0, -10352(%rbp)
- 3559      90D7FFFF 
- 3560 2770 E8000000 		call	KDbgWriterGet at PLT
- 3560      00
- 3561 2775 4885C0   		testq	%rax, %rax
- 3562 2778 7479     		je	.L51
- 3563 277a BF010000 		movl	$1, %edi
- 3563      00
- 3564 277f E8000000 		call	KDbgCondToFlag at PLT
- 3564      00
- 3565 2784 4889C6   		movq	%rax, %rsi
- 3566 2787 BF100000 		movl	$16, %edi
- 3566      00
- 3567 278c E8000000 		call	KDbgTestModConds at PLT
- 3567      00
- 3568 2791 84C0     		testb	%al, %al
- 3569 2793 745E     		je	.L51
- 3570 2795 8B859CD7 		movl	-10340(%rbp), %eax
- 3570      FFFF
- 3571 279b 89C7     		movl	%eax, %edi
- 3572 279d E85ED8FF 		call	bswap_32
- 3572      FF
- 3573 27a2 4189C5   		movl	%eax, %r13d
- 3574 27a5 8B8598D7 		movl	-10344(%rbp), %eax
- 3574      FFFF
- 3575 27ab 89C7     		movl	%eax, %edi
- 3576 27ad E84ED8FF 		call	bswap_32
- 3576      FF
- 3577 27b2 4189C4   		movl	%eax, %r12d
- 3578 27b5 8B8594D7 		movl	-10348(%rbp), %eax
- 3578      FFFF
- 3579 27bb 89C7     		movl	%eax, %edi
- 3580 27bd E83ED8FF 		call	bswap_32
- 3580      FF
- 3581 27c2 89C3     		movl	%eax, %ebx
- 3582 27c4 8B8590D7 		movl	-10352(%rbp), %eax
- 3582      FFFF
- 3583 27ca 89C7     		movl	%eax, %edi
- 3584 27cc E82FD8FF 		call	bswap_32
- 3584      FF
- 3585 27d1 4589E9   		movl	%r13d, %r9d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 134
-
-
- 3586 27d4 4589E0   		movl	%r12d, %r8d
- 3587 27d7 89D9     		movl	%ebx, %ecx
- 3588 27d9 89C2     		movl	%eax, %edx
- 3589 27db 488D3500 		leaq	.LC3(%rip), %rsi
- 3589      000000
- 3590 27e2 488D3D00 		leaq	.LC1(%rip), %rdi
- 3590      000000
- 3591 27e9 B8000000 		movl	$0, %eax
- 3591      00
- 3592 27ee E8000000 		call	KDbgMsg at PLT
- 3592      00
- 3593              	.L51:
- 3594 27f3 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3594      50D5FFFF 
- 3595 27fb F30F7F85 		movdqu	%xmm0, -5296(%rbp)
- 3595      50EBFFFF 
- 3596 2803 F30F6F85 		movdqu	-5296(%rbp), %xmm0
- 3596      50EBFFFF 
- 3597 280b F30F7F85 		movdqu	%xmm0, -5264(%rbp)
- 3597      70EBFFFF 
- 3598              	.LBE1000:
- 3599              	.LBB1001:
- 3600              	.LBB1002:
- 3601              	.LBB1003:
- 3602              	.LBB1004:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 3603              		.loc 3 450 0
- 3604 2813 F30F6F85 		movdqu	-5264(%rbp), %xmm0
- 3604      70EBFFFF 
- 3605 281b 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 3605      FF
- 3606              	.LBE1004:
- 3607              	.LBE1003:
- 3608              	.LBE1002:
- 3609              	.LBE1001:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 3610              		.loc 2 1688 0
- 3611 2820 660F7F85 		movdqa	%xmm0, -10928(%rbp)
- 3611      50D5FFFF 
- 3612              	.LBB1005:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 3613              		.loc 2 1689 0
- 3614 2828 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3614      50D5FFFF 
- 3615 2830 F30F7F85 		movdqu	%xmm0, -10368(%rbp)
- 3615      80D7FFFF 
- 3616 2838 E8000000 		call	KDbgWriterGet at PLT
- 3616      00
- 3617 283d 4885C0   		testq	%rax, %rax
- 3618 2840 7479     		je	.L53
- 3619 2842 BF010000 		movl	$1, %edi
- 3619      00
- 3620 2847 E8000000 		call	KDbgCondToFlag at PLT
- 3620      00
- 3621 284c 4889C6   		movq	%rax, %rsi
- 3622 284f BF100000 		movl	$16, %edi
- 3622      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 135
-
-
- 3623 2854 E8000000 		call	KDbgTestModConds at PLT
- 3623      00
- 3624 2859 84C0     		testb	%al, %al
- 3625 285b 745E     		je	.L53
- 3626 285d 8B858CD7 		movl	-10356(%rbp), %eax
- 3626      FFFF
- 3627 2863 89C7     		movl	%eax, %edi
- 3628 2865 E896D7FF 		call	bswap_32
- 3628      FF
- 3629 286a 4189C5   		movl	%eax, %r13d
- 3630 286d 8B8588D7 		movl	-10360(%rbp), %eax
- 3630      FFFF
- 3631 2873 89C7     		movl	%eax, %edi
- 3632 2875 E886D7FF 		call	bswap_32
- 3632      FF
- 3633 287a 4189C4   		movl	%eax, %r12d
- 3634 287d 8B8584D7 		movl	-10364(%rbp), %eax
- 3634      FFFF
- 3635 2883 89C7     		movl	%eax, %edi
- 3636 2885 E876D7FF 		call	bswap_32
- 3636      FF
- 3637 288a 89C3     		movl	%eax, %ebx
- 3638 288c 8B8580D7 		movl	-10368(%rbp), %eax
- 3638      FFFF
- 3639 2892 89C7     		movl	%eax, %edi
- 3640 2894 E867D7FF 		call	bswap_32
- 3640      FF
- 3641 2899 4589E9   		movl	%r13d, %r9d
- 3642 289c 4589E0   		movl	%r12d, %r8d
- 3643 289f 89D9     		movl	%ebx, %ecx
- 3644 28a1 89C2     		movl	%eax, %edx
- 3645 28a3 488D3500 		leaq	.LC4(%rip), %rsi
- 3645      000000
- 3646 28aa 488D3D00 		leaq	.LC1(%rip), %rdi
- 3646      000000
- 3647 28b1 B8000000 		movl	$0, %eax
- 3647      00
- 3648 28b6 E8000000 		call	KDbgMsg at PLT
- 3648      00
- 3649              	.L53:
- 3650              	.LBE1005:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 3651              		.loc 2 1690 0
- 3652 28bb 660F6F85 		movdqa	-10928(%rbp), %xmm0
- 3652      50D5FFFF 
- 3653              	.LBE959:
- 3654              	.LBE958:
-1748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x10,5);
- 3655              		.loc 2 1748 0
- 3656 28c3 F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 3656      10D9FFFF 
- 3657 28cb F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 3657      00D9FFFF 
- 3658 28d3 F30F7F85 		movdqu	%xmm0, -5248(%rbp)
- 3658      80EBFFFF 
- 3659              	.LBB1006:
- 3660              	.LBB1007:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 136
-
-
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 3661              		.loc 2 1565 0
- 3662 28db F30F6F85 		movdqu	-5248(%rbp), %xmm0
- 3662      80EBFFFF 
- 3663 28e3 660F7F85 		movdqa	%xmm0, -10896(%rbp)
- 3663      70D5FFFF 
- 3664 28eb 660F6F85 		movdqa	-10896(%rbp), %xmm0
- 3664      70D5FFFF 
- 3665 28f3 F30F7F85 		movdqu	%xmm0, -5232(%rbp)
- 3665      90EBFFFF 
- 3666              	.LBB1008:
- 3667              	.LBB1009:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3668              		.loc 2 1278 0
- 3669 28fb 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 3669      00000000 
- 3670 2903 F30F6F8D 		movdqu	-5232(%rbp), %xmm1
- 3670      90EBFFFF 
- 3671 290b F30F7F8D 		movdqu	%xmm1, -5200(%rbp)
- 3671      B0EBFFFF 
- 3672 2913 F30F7F85 		movdqu	%xmm0, -5216(%rbp)
- 3672      A0EBFFFF 
- 3673 291b F30F6F85 		movdqu	-5200(%rbp), %xmm0
- 3673      B0EBFFFF 
- 3674 2923 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 3674      D0EBFFFF 
- 3675 292b F30F6F85 		movdqu	-5216(%rbp), %xmm0
- 3675      A0EBFFFF 
- 3676 2933 F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 3676      C0EBFFFF 
- 3677              	.LBB1010:
- 3678              	.LBB1011:
- 3679              	.LBB1012:
- 3680              	.LBB1013:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3681              		.loc 3 529 0
- 3682 293b F30F6F8D 		movdqu	-5184(%rbp), %xmm1
- 3682      C0EBFFFF 
- 3683 2943 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 3683      D0EBFFFF 
- 3684 294b 660F3800 		pshufb	%xmm1, %xmm0
- 3684      C1
- 3685              	.LBE1013:
- 3686              	.LBE1012:
- 3687              	.LBE1011:
- 3688              	.LBE1010:
- 3689              	.LBE1009:
- 3690              	.LBE1008:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3691              		.loc 2 1567 0
- 3692 2950 660F7F85 		movdqa	%xmm0, -10896(%rbp)
- 3692      70D5FFFF 
- 3693 2958 660F6F85 		movdqa	-10896(%rbp), %xmm0
- 3693      70D5FFFF 
- 3694 2960 660FEF85 		pxor	-5248(%rbp), %xmm0
- 3694      80EBFFFF 
- 3695 2968 F30F7F85 		movdqu	%xmm0, -5248(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 137
-
-
- 3695      80EBFFFF 
- 3696 2970 660F6F85 		movdqa	-10896(%rbp), %xmm0
- 3696      70D5FFFF 
- 3697 2978 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 3697      E0EBFFFF 
- 3698              	.LBB1014:
- 3699              	.LBB1015:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3700              		.loc 2 1278 0
- 3701 2980 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 3701      00000000 
- 3702 2988 F30F6F8D 		movdqu	-5152(%rbp), %xmm1
- 3702      E0EBFFFF 
- 3703 2990 F30F7F8D 		movdqu	%xmm1, -5120(%rbp)
- 3703      00ECFFFF 
- 3704 2998 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 3704      F0EBFFFF 
- 3705 29a0 F30F6F85 		movdqu	-5120(%rbp), %xmm0
- 3705      00ECFFFF 
- 3706 29a8 F30F7F85 		movdqu	%xmm0, -5088(%rbp)
- 3706      20ECFFFF 
- 3707 29b0 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 3707      F0EBFFFF 
- 3708 29b8 F30F7F85 		movdqu	%xmm0, -5104(%rbp)
- 3708      10ECFFFF 
- 3709              	.LBB1016:
- 3710              	.LBB1017:
- 3711              	.LBB1018:
- 3712              	.LBB1019:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3713              		.loc 3 529 0
- 3714 29c0 F30F6F8D 		movdqu	-5104(%rbp), %xmm1
- 3714      10ECFFFF 
- 3715 29c8 F30F6F85 		movdqu	-5088(%rbp), %xmm0
- 3715      20ECFFFF 
- 3716 29d0 660F3800 		pshufb	%xmm1, %xmm0
- 3716      C1
- 3717              	.LBE1019:
- 3718              	.LBE1018:
- 3719              	.LBE1017:
- 3720              	.LBE1016:
- 3721              	.LBE1015:
- 3722              	.LBE1014:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3723              		.loc 2 1568 0
- 3724 29d5 660F7F85 		movdqa	%xmm0, -10896(%rbp)
- 3724      70D5FFFF 
- 3725 29dd 660F6F85 		movdqa	-10896(%rbp), %xmm0
- 3725      70D5FFFF 
- 3726 29e5 660FEF85 		pxor	-5248(%rbp), %xmm0
- 3726      80EBFFFF 
- 3727 29ed F30F7F85 		movdqu	%xmm0, -5248(%rbp)
- 3727      80EBFFFF 
- 3728 29f5 660F6F85 		movdqa	-10896(%rbp), %xmm0
- 3728      70D5FFFF 
- 3729 29fd F30F7F85 		movdqu	%xmm0, -5072(%rbp)
- 3729      30ECFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 138
-
-
- 3730              	.LBB1020:
- 3731              	.LBB1021:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 3732              		.loc 2 1278 0
- 3733 2a05 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 3733      00000000 
- 3734 2a0d F30F6F8D 		movdqu	-5072(%rbp), %xmm1
- 3734      30ECFFFF 
- 3735 2a15 F30F7F8D 		movdqu	%xmm1, -5040(%rbp)
- 3735      50ECFFFF 
- 3736 2a1d F30F7F85 		movdqu	%xmm0, -5056(%rbp)
- 3736      40ECFFFF 
- 3737 2a25 F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 3737      50ECFFFF 
- 3738 2a2d F30F7F85 		movdqu	%xmm0, -5008(%rbp)
- 3738      70ECFFFF 
- 3739 2a35 F30F6F85 		movdqu	-5056(%rbp), %xmm0
- 3739      40ECFFFF 
- 3740 2a3d F30F7F85 		movdqu	%xmm0, -5024(%rbp)
- 3740      60ECFFFF 
- 3741              	.LBB1022:
- 3742              	.LBB1023:
- 3743              	.LBB1024:
- 3744              	.LBB1025:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3745              		.loc 3 529 0
- 3746 2a45 F30F6F8D 		movdqu	-5024(%rbp), %xmm1
- 3746      60ECFFFF 
- 3747 2a4d F30F6F85 		movdqu	-5008(%rbp), %xmm0
- 3747      70ECFFFF 
- 3748 2a55 660F3800 		pshufb	%xmm1, %xmm0
- 3748      C1
- 3749              	.LBE1025:
- 3750              	.LBE1024:
- 3751              	.LBE1023:
- 3752              	.LBE1022:
- 3753              	.LBE1021:
- 3754              	.LBE1020:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 3755              		.loc 2 1569 0
- 3756 2a5a 660F7F85 		movdqa	%xmm0, -10896(%rbp)
- 3756      70D5FFFF 
- 3757 2a62 660F6F85 		movdqa	-10896(%rbp), %xmm0
- 3757      70D5FFFF 
- 3758 2a6a 660FEF85 		pxor	-5248(%rbp), %xmm0
- 3758      80EBFFFF 
- 3759 2a72 F30F7F85 		movdqu	%xmm0, -5248(%rbp)
- 3759      80EBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3760              		.loc 2 1571 0
- 3761 2a7a F30F6F85 		movdqu	-5248(%rbp), %xmm0
- 3761      80EBFFFF 
- 3762              	.LBE1007:
- 3763              	.LBE1006:
- 3764              		.loc 2 1748 0
- 3765 2a82 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 3765      00D9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 139
-
-
- 3766 2a8a F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 3766      10D9FFFF 
- 3767 2a92 F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 3767      00D9FFFF 
- 3768 2a9a 660FEFC1 		pxor	%xmm1, %xmm0
- 3769 2a9e F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 3769      00D9FFFF 
- 3770 2aa6 488B8578 		movq	-10632(%rbp), %rax
- 3770      D6FFFF
- 3771 2aad 4883C050 		addq	$80, %rax
- 3772 2ab1 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 3772      00D9FFFF 
- 3773 2ab9 F30F7F00 		movdqu	%xmm0, (%rax)
- 3774 2abd F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 3774      00D9FFFF 
- 3775 2ac5 F30F7F85 		movdqu	%xmm0, -4976(%rbp)
- 3775      90ECFFFF 
- 3776              	.LBB1026:
- 3777              	.LBB1027:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 3778              		.loc 2 1681 0
- 3779 2acd B8200000 		movl	$32, %eax
- 3779      00
- 3780 2ad2 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 3780      00000000 
- 3781 2ada F30F7F85 		movdqu	%xmm0, -4944(%rbp)
- 3781      B0ECFFFF 
- 3782 2ae2 8985ACEC 		movl	%eax, -4948(%rbp)
- 3782      FFFF
- 3783 2ae8 F30F6F85 		movdqu	-4944(%rbp), %xmm0
- 3783      B0ECFFFF 
- 3784 2af0 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 3784      D0ECFFFF 
- 3785 2af8 8B85ACEC 		movl	-4948(%rbp), %eax
- 3785      FFFF
- 3786 2afe 8985CCEC 		movl	%eax, -4916(%rbp)
- 3786      FFFF
- 3787              	.LBB1028:
- 3788              	.LBB1029:
- 3789              	.LBB1030:
- 3790              	.LBB1031:
- 3791              		.loc 3 598 0
- 3792 2b04 8B85CCEC 		movl	-4916(%rbp), %eax
- 3792      FFFF
- 3793 2b0a F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 3793      D0ECFFFF 
- 3794 2b12 660F3A22 		pinsrd	$3, %eax, %xmm0
- 3794      C003
- 3795              	.LBE1031:
- 3796              	.LBE1030:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 3797              		.loc 2 519 0
- 3798 2b18 F30F7F85 		movdqu	%xmm0, -4944(%rbp)
- 3798      B0ECFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 3799              		.loc 2 526 0
- 3800 2b20 F30F6F85 		movdqu	-4944(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 140
-
-
- 3800      B0ECFFFF 
- 3801              	.LBE1029:
- 3802              	.LBE1028:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 3803              		.loc 2 1681 0
- 3804 2b28 660F7F85 		movdqa	%xmm0, -10864(%rbp)
- 3804      90D5FFFF 
- 3805 2b30 F30F6F85 		movdqu	-4976(%rbp), %xmm0
- 3805      90ECFFFF 
- 3806 2b38 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 3806      E0ECFFFF 
- 3807 2b40 F30F6F85 		movdqu	-4896(%rbp), %xmm0
- 3807      E0ECFFFF 
- 3808 2b48 F30F7F85 		movdqu	%xmm0, -4864(%rbp)
- 3808      00EDFFFF 
- 3809 2b50 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 3809      000000
- 3810 2b57 488985F8 		movq	%rax, -4872(%rbp)
- 3810      ECFFFF
- 3811              	.LBB1032:
- 3812              	.LBB1033:
- 3813              	.LBB1034:
- 3814              	.LBB1035:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 3815              		.loc 2 851 0
- 3816 2b5e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 3816      00000000 
- 3817 2b66 F30F7F85 		movdqu	%xmm0, -4832(%rbp)
- 3817      20EDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 3818              		.loc 2 854 0
- 3819 2b6e 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3819      00000000 
- 3820 2b76 F30F6F8D 		movdqu	-4864(%rbp), %xmm1
- 3820      00EDFFFF 
- 3821 2b7e F30F7F8D 		movdqu	%xmm1, -4752(%rbp)
- 3821      70EDFFFF 
- 3822 2b86 F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 3822      60EDFFFF 
- 3823              	.LBB1036:
- 3824              	.LBB1037:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3825              		.loc 2 206 0
- 3826 2b8e F30F6F85 		movdqu	-4768(%rbp), %xmm0
- 3826      60EDFFFF 
- 3827 2b96 F30F6F8D 		movdqu	-4752(%rbp), %xmm1
- 3827      70EDFFFF 
- 3828 2b9e 660FDBC1 		pand	%xmm1, %xmm0
- 3829              	.LBE1037:
- 3830              	.LBE1036:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 3831              		.loc 2 854 0
- 3832 2ba2 F30F7F85 		movdqu	%xmm0, -4784(%rbp)
- 3832      50EDFFFF 
- 3833 2baa F30F6F85 		movdqu	-4864(%rbp), %xmm0
- 3833      00EDFFFF 
- 3834 2bb2 F30F7F85 		movdqu	%xmm0, -4720(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 141
-
-
- 3834      90EDFFFF 
- 3835              	.LBB1038:
- 3836              	.LBB1039:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 3837              		.loc 3 433 0
- 3838 2bba F30F6F85 		movdqu	-4720(%rbp), %xmm0
- 3838      90EDFFFF 
- 3839 2bc2 660F72D0 		psrld	$4, %xmm0
- 3839      04
- 3840              	.LBE1039:
- 3841              	.LBE1038:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 3842              		.loc 2 857 0
- 3843 2bc7 F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 3843      40EDFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3844              		.loc 2 859 0
- 3845 2bcf 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3845      00000000 
- 3846 2bd7 F30F6F8D 		movdqu	-4800(%rbp), %xmm1
- 3846      40EDFFFF 
- 3847 2bdf F30F7F8D 		movdqu	%xmm1, -4688(%rbp)
- 3847      B0EDFFFF 
- 3848 2be7 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 3848      A0EDFFFF 
- 3849              	.LBB1040:
- 3850              	.LBB1041:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3851              		.loc 2 206 0
- 3852 2bef F30F6F85 		movdqu	-4704(%rbp), %xmm0
- 3852      A0EDFFFF 
- 3853 2bf7 F30F6F8D 		movdqu	-4688(%rbp), %xmm1
- 3853      B0EDFFFF 
- 3854 2bff 660FDBC1 		pand	%xmm1, %xmm0
- 3855              	.LBE1041:
- 3856              	.LBE1040:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3857              		.loc 2 859 0
- 3858 2c03 F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 3858      40EDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 3859              		.loc 2 866 0
- 3860 2c0b C7851CED 		movl	$0, -4836(%rbp)
- 3860      FFFF0000 
- 3860      0000
- 3861 2c15 E9BE0100 		jmp	.L54
- 3861      00
- 3862              	.L55:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 3863              		.loc 2 868 0
- 3864 2c1a 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 3864      00000000 
- 3865 2c22 F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 3865      D0EDFFFF 
- 3866 2c2a F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 3866      40EDFFFF 
- 3867 2c32 F30F7F85 		movdqu	%xmm0, -4672(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 142
-
-
- 3867      C0EDFFFF 
- 3868 2c3a F30F6F85 		movdqu	-4656(%rbp), %xmm0
- 3868      D0EDFFFF 
- 3869 2c42 F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 3869      F0EDFFFF 
- 3870 2c4a F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 3870      C0EDFFFF 
- 3871 2c52 F30F7F85 		movdqu	%xmm0, -4640(%rbp)
- 3871      E0EDFFFF 
- 3872              	.LBB1042:
- 3873              	.LBB1043:
- 3874              	.LBB1044:
- 3875              	.LBB1045:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3876              		.loc 3 529 0
- 3877 2c5a F30F6F8D 		movdqu	-4640(%rbp), %xmm1
- 3877      E0EDFFFF 
- 3878 2c62 F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 3878      F0EDFFFF 
- 3879 2c6a 660F3800 		pshufb	%xmm1, %xmm0
- 3879      C1
- 3880              	.LBE1045:
- 3881              	.LBE1044:
- 3882              	.LBE1043:
- 3883              	.LBE1042:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 3884              		.loc 2 868 0
- 3885 2c6f F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 3885      30EDFFFF 
- 3886 2c77 F30F6F85 		movdqu	-4784(%rbp), %xmm0
- 3886      50EDFFFF 
- 3887 2c7f F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 3887      10EEFFFF 
- 3888 2c87 F30F6F85 		movdqu	-4816(%rbp), %xmm0
- 3888      30EDFFFF 
- 3889 2c8f F30F7F85 		movdqu	%xmm0, -4608(%rbp)
- 3889      00EEFFFF 
- 3890              	.LBB1046:
- 3891              	.LBB1047:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 3892              		.loc 2 234 0
- 3893 2c97 F30F6F85 		movdqu	-4608(%rbp), %xmm0
- 3893      00EEFFFF 
- 3894 2c9f F30F6F8D 		movdqu	-4592(%rbp), %xmm1
- 3894      10EEFFFF 
- 3895 2ca7 660FEBC1 		por	%xmm1, %xmm0
- 3896              	.LBE1047:
- 3897              	.LBE1046:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 3898              		.loc 2 870 0
- 3899 2cab F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 3899      30EDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 3900              		.loc 2 872 0
- 3901 2cb3 8B851CED 		mov	-4836(%rbp), %eax
- 3901      FFFF
- 3902 2cb9 48C1E004 		salq	$4, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 143
-
-
- 3903 2cbd 480385F8 		addq	-4872(%rbp), %rax
- 3903      ECFFFF
- 3904 2cc4 660F6F00 		movdqa	(%rax), %xmm0
- 3905 2cc8 F30F7F85 		movdqu	%xmm0, -4560(%rbp)
- 3905      30EEFFFF 
- 3906 2cd0 F30F6F85 		movdqu	-4816(%rbp), %xmm0
- 3906      30EDFFFF 
- 3907 2cd8 F30F7F85 		movdqu	%xmm0, -4576(%rbp)
- 3907      20EEFFFF 
- 3908 2ce0 F30F6F85 		movdqu	-4560(%rbp), %xmm0
- 3908      30EEFFFF 
- 3909 2ce8 F30F7F85 		movdqu	%xmm0, -4528(%rbp)
- 3909      50EEFFFF 
- 3910 2cf0 F30F6F85 		movdqu	-4576(%rbp), %xmm0
- 3910      20EEFFFF 
- 3911 2cf8 F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 3911      40EEFFFF 
- 3912              	.LBB1048:
- 3913              	.LBB1049:
- 3914              	.LBB1050:
- 3915              	.LBB1051:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 3916              		.loc 3 529 0
- 3917 2d00 F30F6F8D 		movdqu	-4544(%rbp), %xmm1
- 3917      40EEFFFF 
- 3918 2d08 F30F6F85 		movdqu	-4528(%rbp), %xmm0
- 3918      50EEFFFF 
- 3919 2d10 660F3800 		pshufb	%xmm1, %xmm0
- 3919      C1
- 3920              	.LBE1051:
- 3921              	.LBE1050:
- 3922              	.LBE1049:
- 3923              	.LBE1048:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 3924              		.loc 2 872 0
- 3925 2d15 F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 3925      30EDFFFF 
- 3926 2d1d F30F6F85 		movdqu	-4832(%rbp), %xmm0
- 3926      20EDFFFF 
- 3927 2d25 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 3927      70EEFFFF 
- 3928 2d2d F30F6F85 		movdqu	-4816(%rbp), %xmm0
- 3928      30EDFFFF 
- 3929 2d35 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 3929      60EEFFFF 
- 3930              	.LBB1052:
- 3931              	.LBB1053:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 3932              		.loc 2 234 0
- 3933 2d3d F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 3933      60EEFFFF 
- 3934 2d45 F30F6F8D 		movdqu	-4496(%rbp), %xmm1
- 3934      70EEFFFF 
- 3935 2d4d 660FEBC1 		por	%xmm1, %xmm0
- 3936              	.LBE1053:
- 3937              	.LBE1052:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 144
-
-
- 3938              		.loc 2 874 0
- 3939 2d51 F30F7F85 		movdqu	%xmm0, -4832(%rbp)
- 3939      20EDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 3940              		.loc 2 876 0
- 3941 2d59 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 3941      00000000 
- 3942 2d61 F30F6F8D 		movdqu	-4800(%rbp), %xmm1
- 3942      40EDFFFF 
- 3943 2d69 F30F7F8D 		movdqu	%xmm1, -4464(%rbp)
- 3943      90EEFFFF 
- 3944 2d71 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 3944      80EEFFFF 
- 3945              	.LBB1054:
- 3946              	.LBB1055:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 3947              		.loc 2 290 0
- 3948 2d79 F30F6F8D 		movdqu	-4480(%rbp), %xmm1
- 3948      80EEFFFF 
- 3949 2d81 F30F6F85 		movdqu	-4464(%rbp), %xmm0
- 3949      90EEFFFF 
- 3950 2d89 660FF8C1 		psubb	%xmm1, %xmm0
- 3951              	.LBE1055:
- 3952              	.LBE1054:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 3953              		.loc 2 876 0
- 3954 2d8d F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 3954      40EDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3955              		.loc 2 878 0
- 3956 2d95 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 3956      00000000 
- 3957 2d9d F30F6F8D 		movdqu	-4800(%rbp), %xmm1
- 3957      40EDFFFF 
- 3958 2da5 F30F7F8D 		movdqu	%xmm1, -4432(%rbp)
- 3958      B0EEFFFF 
- 3959 2dad F30F7F85 		movdqu	%xmm0, -4448(%rbp)
- 3959      A0EEFFFF 
- 3960              	.LBB1056:
- 3961              	.LBB1057:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 3962              		.loc 2 206 0
- 3963 2db5 F30F6F85 		movdqu	-4448(%rbp), %xmm0
- 3963      A0EEFFFF 
- 3964 2dbd F30F6F8D 		movdqu	-4432(%rbp), %xmm1
- 3964      B0EEFFFF 
- 3965 2dc5 660FDBC1 		pand	%xmm1, %xmm0
- 3966              	.LBE1057:
- 3967              	.LBE1056:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 3968              		.loc 2 878 0
- 3969 2dc9 F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 3969      40EDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 3970              		.loc 2 866 0
- 3971 2dd1 83851CED 		addl	$1, -4836(%rbp)
- 3971      FFFF01
-
GAS LISTING /tmp/ccjbMjHD.s 			page 145
-
-
- 3972              	.L54:
- 3973 2dd8 83BD1CED 		cmpl	$15, -4836(%rbp)
- 3973      FFFF0F
- 3974 2ddf 0F8635FE 		jbe	.L55
- 3974      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 3975              		.loc 2 882 0
- 3976 2de5 F30F6F85 		movdqu	-4832(%rbp), %xmm0
- 3976      20EDFFFF 
- 3977              	.LBE1035:
- 3978              	.LBE1034:
- 3979              	.LBE1033:
- 3980              	.LBE1032:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 3981              		.loc 2 1682 0
- 3982 2ded 660F7F85 		movdqa	%xmm0, -10880(%rbp)
- 3982      80D5FFFF 
- 3983              	.LBB1058:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 3984              		.loc 2 1683 0
- 3985 2df5 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 3985      80D5FFFF 
- 3986 2dfd F30F7F85 		movdqu	%xmm0, -10256(%rbp)
- 3986      F0D7FFFF 
- 3987 2e05 E8000000 		call	KDbgWriterGet at PLT
- 3987      00
- 3988 2e0a 4885C0   		testq	%rax, %rax
- 3989 2e0d 7479     		je	.L57
- 3990 2e0f BF010000 		movl	$1, %edi
- 3990      00
- 3991 2e14 E8000000 		call	KDbgCondToFlag at PLT
- 3991      00
- 3992 2e19 4889C6   		movq	%rax, %rsi
- 3993 2e1c BF100000 		movl	$16, %edi
- 3993      00
- 3994 2e21 E8000000 		call	KDbgTestModConds at PLT
- 3994      00
- 3995 2e26 84C0     		testb	%al, %al
- 3996 2e28 745E     		je	.L57
- 3997 2e2a 8B85FCD7 		movl	-10244(%rbp), %eax
- 3997      FFFF
- 3998 2e30 89C7     		movl	%eax, %edi
- 3999 2e32 E8C9D1FF 		call	bswap_32
- 3999      FF
- 4000 2e37 4189C5   		movl	%eax, %r13d
- 4001 2e3a 8B85F8D7 		movl	-10248(%rbp), %eax
- 4001      FFFF
- 4002 2e40 89C7     		movl	%eax, %edi
- 4003 2e42 E8B9D1FF 		call	bswap_32
- 4003      FF
- 4004 2e47 4189C4   		movl	%eax, %r12d
- 4005 2e4a 8B85F4D7 		movl	-10252(%rbp), %eax
- 4005      FFFF
- 4006 2e50 89C7     		movl	%eax, %edi
- 4007 2e52 E8A9D1FF 		call	bswap_32
- 4007      FF
- 4008 2e57 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 146
-
-
- 4009 2e59 8B85F0D7 		movl	-10256(%rbp), %eax
- 4009      FFFF
- 4010 2e5f 89C7     		movl	%eax, %edi
- 4011 2e61 E89AD1FF 		call	bswap_32
- 4011      FF
- 4012 2e66 4589E9   		movl	%r13d, %r9d
- 4013 2e69 4589E0   		movl	%r12d, %r8d
- 4014 2e6c 89D9     		movl	%ebx, %ecx
- 4015 2e6e 89C2     		movl	%eax, %edx
- 4016 2e70 488D3500 		leaq	.LC0(%rip), %rsi
- 4016      000000
- 4017 2e77 488D3D00 		leaq	.LC1(%rip), %rdi
- 4017      000000
- 4018 2e7e B8000000 		movl	$0, %eax
- 4018      00
- 4019 2e83 E8000000 		call	KDbgMsg at PLT
- 4019      00
- 4020              	.L57:
- 4021 2e88 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 4021      80D5FFFF 
- 4022 2e90 F30F7F85 		movdqu	%xmm0, -4416(%rbp)
- 4022      C0EEFFFF 
- 4023              	.LBE1058:
- 4024              	.LBB1059:
- 4025              	.LBB1060:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 4026              		.loc 2 667 0
- 4027 2e98 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 4027      00000000 
- 4028 2ea0 F30F6F8D 		movdqu	-4416(%rbp), %xmm1
- 4028      C0EEFFFF 
- 4029 2ea8 F30F7F8D 		movdqu	%xmm1, -4384(%rbp)
- 4029      E0EEFFFF 
- 4030 2eb0 F30F7F85 		movdqu	%xmm0, -4400(%rbp)
- 4030      D0EEFFFF 
- 4031 2eb8 F30F6F85 		movdqu	-4384(%rbp), %xmm0
- 4031      E0EEFFFF 
- 4032 2ec0 F30F7F85 		movdqu	%xmm0, -4352(%rbp)
- 4032      00EFFFFF 
- 4033 2ec8 F30F6F85 		movdqu	-4400(%rbp), %xmm0
- 4033      D0EEFFFF 
- 4034 2ed0 F30F7F85 		movdqu	%xmm0, -4368(%rbp)
- 4034      F0EEFFFF 
- 4035              	.LBB1061:
- 4036              	.LBB1062:
- 4037              	.LBB1063:
- 4038              	.LBB1064:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4039              		.loc 3 529 0
- 4040 2ed8 F30F6F8D 		movdqu	-4368(%rbp), %xmm1
- 4040      F0EEFFFF 
- 4041 2ee0 F30F6F85 		movdqu	-4352(%rbp), %xmm0
- 4041      00EFFFFF 
- 4042 2ee8 660F3800 		pshufb	%xmm1, %xmm0
- 4042      C1
- 4043              	.LBE1064:
- 4044              	.LBE1063:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 147
-
-
- 4045              	.LBE1062:
- 4046              	.LBE1061:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 4047              		.loc 2 667 0
- 4048 2eed F30F7F85 		movdqu	%xmm0, -4416(%rbp)
- 4048      C0EEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4049              		.loc 2 668 0
- 4050 2ef5 F30F6F85 		movdqu	-4416(%rbp), %xmm0
- 4050      C0EEFFFF 
- 4051              	.LBE1060:
- 4052              	.LBE1059:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 4053              		.loc 2 1684 0
- 4054 2efd 660F7F85 		movdqa	%xmm0, -10880(%rbp)
- 4054      80D5FFFF 
- 4055              	.LBB1065:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 4056              		.loc 2 1685 0
- 4057 2f05 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 4057      80D5FFFF 
- 4058 2f0d F30F7F85 		movdqu	%xmm0, -10272(%rbp)
- 4058      E0D7FFFF 
- 4059 2f15 E8000000 		call	KDbgWriterGet at PLT
- 4059      00
- 4060 2f1a 4885C0   		testq	%rax, %rax
- 4061 2f1d 7479     		je	.L59
- 4062 2f1f BF010000 		movl	$1, %edi
- 4062      00
- 4063 2f24 E8000000 		call	KDbgCondToFlag at PLT
- 4063      00
- 4064 2f29 4889C6   		movq	%rax, %rsi
- 4065 2f2c BF100000 		movl	$16, %edi
- 4065      00
- 4066 2f31 E8000000 		call	KDbgTestModConds at PLT
- 4066      00
- 4067 2f36 84C0     		testb	%al, %al
- 4068 2f38 745E     		je	.L59
- 4069 2f3a 8B85ECD7 		movl	-10260(%rbp), %eax
- 4069      FFFF
- 4070 2f40 89C7     		movl	%eax, %edi
- 4071 2f42 E8B9D0FF 		call	bswap_32
- 4071      FF
- 4072 2f47 4189C5   		movl	%eax, %r13d
- 4073 2f4a 8B85E8D7 		movl	-10264(%rbp), %eax
- 4073      FFFF
- 4074 2f50 89C7     		movl	%eax, %edi
- 4075 2f52 E8A9D0FF 		call	bswap_32
- 4075      FF
- 4076 2f57 4189C4   		movl	%eax, %r12d
- 4077 2f5a 8B85E4D7 		movl	-10268(%rbp), %eax
- 4077      FFFF
- 4078 2f60 89C7     		movl	%eax, %edi
- 4079 2f62 E899D0FF 		call	bswap_32
- 4079      FF
- 4080 2f67 89C3     		movl	%eax, %ebx
- 4081 2f69 8B85E0D7 		movl	-10272(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 148
-
-
- 4081      FFFF
- 4082 2f6f 89C7     		movl	%eax, %edi
- 4083 2f71 E88AD0FF 		call	bswap_32
- 4083      FF
- 4084 2f76 4589E9   		movl	%r13d, %r9d
- 4085 2f79 4589E0   		movl	%r12d, %r8d
- 4086 2f7c 89D9     		movl	%ebx, %ecx
- 4087 2f7e 89C2     		movl	%eax, %edx
- 4088 2f80 488D3500 		leaq	.LC2(%rip), %rsi
- 4088      000000
- 4089 2f87 488D3D00 		leaq	.LC1(%rip), %rdi
- 4089      000000
- 4090 2f8e B8000000 		movl	$0, %eax
- 4090      00
- 4091 2f93 E8000000 		call	KDbgMsg at PLT
- 4091      00
- 4092              	.L59:
- 4093 2f98 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 4093      80D5FFFF 
- 4094 2fa0 F30F7F85 		movdqu	%xmm0, -4320(%rbp)
- 4094      20EFFFFF 
- 4095 2fa8 660F6F85 		movdqa	-10864(%rbp), %xmm0
- 4095      90D5FFFF 
- 4096 2fb0 F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 4096      10EFFFFF 
- 4097              	.LBE1065:
- 4098              	.LBB1066:
- 4099              	.LBB1067:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 4100              		.loc 2 178 0
- 4101 2fb8 F30F6F85 		movdqu	-4336(%rbp), %xmm0
- 4101      10EFFFFF 
- 4102 2fc0 F30F6F8D 		movdqu	-4320(%rbp), %xmm1
- 4102      20EFFFFF 
- 4103 2fc8 660FEFC1 		pxor	%xmm1, %xmm0
- 4104              	.LBE1067:
- 4105              	.LBE1066:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 4106              		.loc 2 1686 0
- 4107 2fcc 660F7F85 		movdqa	%xmm0, -10880(%rbp)
- 4107      80D5FFFF 
- 4108              	.LBB1068:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 4109              		.loc 2 1687 0
- 4110 2fd4 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 4110      80D5FFFF 
- 4111 2fdc F30F7F85 		movdqu	%xmm0, -10288(%rbp)
- 4111      D0D7FFFF 
- 4112 2fe4 E8000000 		call	KDbgWriterGet at PLT
- 4112      00
- 4113 2fe9 4885C0   		testq	%rax, %rax
- 4114 2fec 7479     		je	.L61
- 4115 2fee BF010000 		movl	$1, %edi
- 4115      00
- 4116 2ff3 E8000000 		call	KDbgCondToFlag at PLT
- 4116      00
- 4117 2ff8 4889C6   		movq	%rax, %rsi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 149
-
-
- 4118 2ffb BF100000 		movl	$16, %edi
- 4118      00
- 4119 3000 E8000000 		call	KDbgTestModConds at PLT
- 4119      00
- 4120 3005 84C0     		testb	%al, %al
- 4121 3007 745E     		je	.L61
- 4122 3009 8B85DCD7 		movl	-10276(%rbp), %eax
- 4122      FFFF
- 4123 300f 89C7     		movl	%eax, %edi
- 4124 3011 E8EACFFF 		call	bswap_32
- 4124      FF
- 4125 3016 4189C5   		movl	%eax, %r13d
- 4126 3019 8B85D8D7 		movl	-10280(%rbp), %eax
- 4126      FFFF
- 4127 301f 89C7     		movl	%eax, %edi
- 4128 3021 E8DACFFF 		call	bswap_32
- 4128      FF
- 4129 3026 4189C4   		movl	%eax, %r12d
- 4130 3029 8B85D4D7 		movl	-10284(%rbp), %eax
- 4130      FFFF
- 4131 302f 89C7     		movl	%eax, %edi
- 4132 3031 E8CACFFF 		call	bswap_32
- 4132      FF
- 4133 3036 89C3     		movl	%eax, %ebx
- 4134 3038 8B85D0D7 		movl	-10288(%rbp), %eax
- 4134      FFFF
- 4135 303e 89C7     		movl	%eax, %edi
- 4136 3040 E8BBCFFF 		call	bswap_32
- 4136      FF
- 4137 3045 4589E9   		movl	%r13d, %r9d
- 4138 3048 4589E0   		movl	%r12d, %r8d
- 4139 304b 89D9     		movl	%ebx, %ecx
- 4140 304d 89C2     		movl	%eax, %edx
- 4141 304f 488D3500 		leaq	.LC3(%rip), %rsi
- 4141      000000
- 4142 3056 488D3D00 		leaq	.LC1(%rip), %rdi
- 4142      000000
- 4143 305d B8000000 		movl	$0, %eax
- 4143      00
- 4144 3062 E8000000 		call	KDbgMsg at PLT
- 4144      00
- 4145              	.L61:
- 4146 3067 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 4146      80D5FFFF 
- 4147 306f F30F7F85 		movdqu	%xmm0, -4304(%rbp)
- 4147      30EFFFFF 
- 4148 3077 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 4148      30EFFFFF 
- 4149 307f F30F7F85 		movdqu	%xmm0, -4272(%rbp)
- 4149      50EFFFFF 
- 4150              	.LBE1068:
- 4151              	.LBB1069:
- 4152              	.LBB1070:
- 4153              	.LBB1071:
- 4154              	.LBB1072:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4155              		.loc 3 450 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 150
-
-
- 4156 3087 F30F6F85 		movdqu	-4272(%rbp), %xmm0
- 4156      50EFFFFF 
- 4157 308f 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 4157      FF
- 4158              	.LBE1072:
- 4159              	.LBE1071:
- 4160              	.LBE1070:
- 4161              	.LBE1069:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 4162              		.loc 2 1688 0
- 4163 3094 660F7F85 		movdqa	%xmm0, -10880(%rbp)
- 4163      80D5FFFF 
- 4164              	.LBB1073:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 4165              		.loc 2 1689 0
- 4166 309c 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 4166      80D5FFFF 
- 4167 30a4 F30F7F85 		movdqu	%xmm0, -10304(%rbp)
- 4167      C0D7FFFF 
- 4168 30ac E8000000 		call	KDbgWriterGet at PLT
- 4168      00
- 4169 30b1 4885C0   		testq	%rax, %rax
- 4170 30b4 7479     		je	.L63
- 4171 30b6 BF010000 		movl	$1, %edi
- 4171      00
- 4172 30bb E8000000 		call	KDbgCondToFlag at PLT
- 4172      00
- 4173 30c0 4889C6   		movq	%rax, %rsi
- 4174 30c3 BF100000 		movl	$16, %edi
- 4174      00
- 4175 30c8 E8000000 		call	KDbgTestModConds at PLT
- 4175      00
- 4176 30cd 84C0     		testb	%al, %al
- 4177 30cf 745E     		je	.L63
- 4178 30d1 8B85CCD7 		movl	-10292(%rbp), %eax
- 4178      FFFF
- 4179 30d7 89C7     		movl	%eax, %edi
- 4180 30d9 E822CFFF 		call	bswap_32
- 4180      FF
- 4181 30de 4189C5   		movl	%eax, %r13d
- 4182 30e1 8B85C8D7 		movl	-10296(%rbp), %eax
- 4182      FFFF
- 4183 30e7 89C7     		movl	%eax, %edi
- 4184 30e9 E812CFFF 		call	bswap_32
- 4184      FF
- 4185 30ee 4189C4   		movl	%eax, %r12d
- 4186 30f1 8B85C4D7 		movl	-10300(%rbp), %eax
- 4186      FFFF
- 4187 30f7 89C7     		movl	%eax, %edi
- 4188 30f9 E802CFFF 		call	bswap_32
- 4188      FF
- 4189 30fe 89C3     		movl	%eax, %ebx
- 4190 3100 8B85C0D7 		movl	-10304(%rbp), %eax
- 4190      FFFF
- 4191 3106 89C7     		movl	%eax, %edi
- 4192 3108 E8F3CEFF 		call	bswap_32
- 4192      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 151
-
-
- 4193 310d 4589E9   		movl	%r13d, %r9d
- 4194 3110 4589E0   		movl	%r12d, %r8d
- 4195 3113 89D9     		movl	%ebx, %ecx
- 4196 3115 89C2     		movl	%eax, %edx
- 4197 3117 488D3500 		leaq	.LC4(%rip), %rsi
- 4197      000000
- 4198 311e 488D3D00 		leaq	.LC1(%rip), %rdi
- 4198      000000
- 4199 3125 B8000000 		movl	$0, %eax
- 4199      00
- 4200 312a E8000000 		call	KDbgMsg at PLT
- 4200      00
- 4201              	.L63:
- 4202              	.LBE1073:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 4203              		.loc 2 1690 0
- 4204 312f 660F6F85 		movdqa	-10880(%rbp), %xmm0
- 4204      80D5FFFF 
- 4205              	.LBE1027:
- 4206              	.LBE1026:
-1749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x20,6);
- 4207              		.loc 2 1749 0
- 4208 3137 F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 4208      10D9FFFF 
- 4209 313f F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 4209      00D9FFFF 
- 4210 3147 F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 4210      60EFFFFF 
- 4211              	.LBB1074:
- 4212              	.LBB1075:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4213              		.loc 2 1565 0
- 4214 314f F30F6F85 		movdqu	-4256(%rbp), %xmm0
- 4214      60EFFFFF 
- 4215 3157 660F7F85 		movdqa	%xmm0, -10848(%rbp)
- 4215      A0D5FFFF 
- 4216 315f 660F6F85 		movdqa	-10848(%rbp), %xmm0
- 4216      A0D5FFFF 
- 4217 3167 F30F7F85 		movdqu	%xmm0, -4240(%rbp)
- 4217      70EFFFFF 
- 4218              	.LBB1076:
- 4219              	.LBB1077:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4220              		.loc 2 1278 0
- 4221 316f 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 4221      00000000 
- 4222 3177 F30F6F8D 		movdqu	-4240(%rbp), %xmm1
- 4222      70EFFFFF 
- 4223 317f F30F7F8D 		movdqu	%xmm1, -4208(%rbp)
- 4223      90EFFFFF 
- 4224 3187 F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 4224      80EFFFFF 
- 4225 318f F30F6F85 		movdqu	-4208(%rbp), %xmm0
- 4225      90EFFFFF 
- 4226 3197 F30F7F85 		movdqu	%xmm0, -4176(%rbp)
- 4226      B0EFFFFF 
- 4227 319f F30F6F85 		movdqu	-4224(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 152
-
-
- 4227      80EFFFFF 
- 4228 31a7 F30F7F85 		movdqu	%xmm0, -4192(%rbp)
- 4228      A0EFFFFF 
- 4229              	.LBB1078:
- 4230              	.LBB1079:
- 4231              	.LBB1080:
- 4232              	.LBB1081:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4233              		.loc 3 529 0
- 4234 31af F30F6F8D 		movdqu	-4192(%rbp), %xmm1
- 4234      A0EFFFFF 
- 4235 31b7 F30F6F85 		movdqu	-4176(%rbp), %xmm0
- 4235      B0EFFFFF 
- 4236 31bf 660F3800 		pshufb	%xmm1, %xmm0
- 4236      C1
- 4237              	.LBE1081:
- 4238              	.LBE1080:
- 4239              	.LBE1079:
- 4240              	.LBE1078:
- 4241              	.LBE1077:
- 4242              	.LBE1076:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4243              		.loc 2 1567 0
- 4244 31c4 660F7F85 		movdqa	%xmm0, -10848(%rbp)
- 4244      A0D5FFFF 
- 4245 31cc 660F6F85 		movdqa	-10848(%rbp), %xmm0
- 4245      A0D5FFFF 
- 4246 31d4 660FEF85 		pxor	-4256(%rbp), %xmm0
- 4246      60EFFFFF 
- 4247 31dc F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 4247      60EFFFFF 
- 4248 31e4 660F6F85 		movdqa	-10848(%rbp), %xmm0
- 4248      A0D5FFFF 
- 4249 31ec F30F7F85 		movdqu	%xmm0, -4160(%rbp)
- 4249      C0EFFFFF 
- 4250              	.LBB1082:
- 4251              	.LBB1083:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4252              		.loc 2 1278 0
- 4253 31f4 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 4253      00000000 
- 4254 31fc F30F6F8D 		movdqu	-4160(%rbp), %xmm1
- 4254      C0EFFFFF 
- 4255 3204 F30F7F8D 		movdqu	%xmm1, -4128(%rbp)
- 4255      E0EFFFFF 
- 4256 320c F30F7F85 		movdqu	%xmm0, -4144(%rbp)
- 4256      D0EFFFFF 
- 4257 3214 F30F6F85 		movdqu	-4128(%rbp), %xmm0
- 4257      E0EFFFFF 
- 4258 321c F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 4258      00F0FFFF 
- 4259 3224 F30F6F85 		movdqu	-4144(%rbp), %xmm0
- 4259      D0EFFFFF 
- 4260 322c F30F7F85 		movdqu	%xmm0, -4112(%rbp)
- 4260      F0EFFFFF 
- 4261              	.LBB1084:
- 4262              	.LBB1085:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 153
-
-
- 4263              	.LBB1086:
- 4264              	.LBB1087:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4265              		.loc 3 529 0
- 4266 3234 F30F6F8D 		movdqu	-4112(%rbp), %xmm1
- 4266      F0EFFFFF 
- 4267 323c F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 4267      00F0FFFF 
- 4268 3244 660F3800 		pshufb	%xmm1, %xmm0
- 4268      C1
- 4269              	.LBE1087:
- 4270              	.LBE1086:
- 4271              	.LBE1085:
- 4272              	.LBE1084:
- 4273              	.LBE1083:
- 4274              	.LBE1082:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4275              		.loc 2 1568 0
- 4276 3249 660F7F85 		movdqa	%xmm0, -10848(%rbp)
- 4276      A0D5FFFF 
- 4277 3251 660F6F85 		movdqa	-10848(%rbp), %xmm0
- 4277      A0D5FFFF 
- 4278 3259 660FEF85 		pxor	-4256(%rbp), %xmm0
- 4278      60EFFFFF 
- 4279 3261 F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 4279      60EFFFFF 
- 4280 3269 660F6F85 		movdqa	-10848(%rbp), %xmm0
- 4280      A0D5FFFF 
- 4281 3271 F30F7F85 		movdqu	%xmm0, -4080(%rbp)
- 4281      10F0FFFF 
- 4282              	.LBB1088:
- 4283              	.LBB1089:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4284              		.loc 2 1278 0
- 4285 3279 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 4285      00000000 
- 4286 3281 F30F6F8D 		movdqu	-4080(%rbp), %xmm1
- 4286      10F0FFFF 
- 4287 3289 F30F7F8D 		movdqu	%xmm1, -4048(%rbp)
- 4287      30F0FFFF 
- 4288 3291 F30F7F85 		movdqu	%xmm0, -4064(%rbp)
- 4288      20F0FFFF 
- 4289 3299 F30F6F85 		movdqu	-4048(%rbp), %xmm0
- 4289      30F0FFFF 
- 4290 32a1 F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 4290      50F0FFFF 
- 4291 32a9 F30F6F85 		movdqu	-4064(%rbp), %xmm0
- 4291      20F0FFFF 
- 4292 32b1 F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 4292      40F0FFFF 
- 4293              	.LBB1090:
- 4294              	.LBB1091:
- 4295              	.LBB1092:
- 4296              	.LBB1093:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4297              		.loc 3 529 0
- 4298 32b9 F30F6F8D 		movdqu	-4032(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 154
-
-
- 4298      40F0FFFF 
- 4299 32c1 F30F6F85 		movdqu	-4016(%rbp), %xmm0
- 4299      50F0FFFF 
- 4300 32c9 660F3800 		pshufb	%xmm1, %xmm0
- 4300      C1
- 4301              	.LBE1093:
- 4302              	.LBE1092:
- 4303              	.LBE1091:
- 4304              	.LBE1090:
- 4305              	.LBE1089:
- 4306              	.LBE1088:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4307              		.loc 2 1569 0
- 4308 32ce 660F7F85 		movdqa	%xmm0, -10848(%rbp)
- 4308      A0D5FFFF 
- 4309 32d6 660F6F85 		movdqa	-10848(%rbp), %xmm0
- 4309      A0D5FFFF 
- 4310 32de 660FEF85 		pxor	-4256(%rbp), %xmm0
- 4310      60EFFFFF 
- 4311 32e6 F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 4311      60EFFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4312              		.loc 2 1571 0
- 4313 32ee F30F6F85 		movdqu	-4256(%rbp), %xmm0
- 4313      60EFFFFF 
- 4314              	.LBE1075:
- 4315              	.LBE1074:
- 4316              		.loc 2 1749 0
- 4317 32f6 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 4317      00D9FFFF 
- 4318 32fe F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 4318      10D9FFFF 
- 4319 3306 F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 4319      00D9FFFF 
- 4320 330e 660FEFC1 		pxor	%xmm1, %xmm0
- 4321 3312 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 4321      00D9FFFF 
- 4322 331a 488B8578 		movq	-10632(%rbp), %rax
- 4322      D6FFFF
- 4323 3321 4883C060 		addq	$96, %rax
- 4324 3325 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 4324      00D9FFFF 
- 4325 332d F30F7F00 		movdqu	%xmm0, (%rax)
- 4326 3331 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 4326      00D9FFFF 
- 4327 3339 F30F7F85 		movdqu	%xmm0, -3984(%rbp)
- 4327      70F0FFFF 
- 4328              	.LBB1094:
- 4329              	.LBB1095:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4330              		.loc 2 1681 0
- 4331 3341 B8400000 		movl	$64, %eax
- 4331      00
- 4332 3346 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4332      00000000 
- 4333 334e F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 4333      90F0FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 155
-
-
- 4334 3356 89858CF0 		movl	%eax, -3956(%rbp)
- 4334      FFFF
- 4335 335c F30F6F85 		movdqu	-3952(%rbp), %xmm0
- 4335      90F0FFFF 
- 4336 3364 F30F7F85 		movdqu	%xmm0, -3920(%rbp)
- 4336      B0F0FFFF 
- 4337 336c 8B858CF0 		movl	-3956(%rbp), %eax
- 4337      FFFF
- 4338 3372 8985ACF0 		movl	%eax, -3924(%rbp)
- 4338      FFFF
- 4339              	.LBB1096:
- 4340              	.LBB1097:
- 4341              	.LBB1098:
- 4342              	.LBB1099:
- 4343              		.loc 3 598 0
- 4344 3378 8B85ACF0 		movl	-3924(%rbp), %eax
- 4344      FFFF
- 4345 337e F30F6F85 		movdqu	-3920(%rbp), %xmm0
- 4345      B0F0FFFF 
- 4346 3386 660F3A22 		pinsrd	$3, %eax, %xmm0
- 4346      C003
- 4347              	.LBE1099:
- 4348              	.LBE1098:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 4349              		.loc 2 519 0
- 4350 338c F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 4350      90F0FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4351              		.loc 2 526 0
- 4352 3394 F30F6F85 		movdqu	-3952(%rbp), %xmm0
- 4352      90F0FFFF 
- 4353              	.LBE1097:
- 4354              	.LBE1096:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4355              		.loc 2 1681 0
- 4356 339c 660F7F85 		movdqa	%xmm0, -10816(%rbp)
- 4356      C0D5FFFF 
- 4357 33a4 F30F6F85 		movdqu	-3984(%rbp), %xmm0
- 4357      70F0FFFF 
- 4358 33ac F30F7F85 		movdqu	%xmm0, -3904(%rbp)
- 4358      C0F0FFFF 
- 4359 33b4 F30F6F85 		movdqu	-3904(%rbp), %xmm0
- 4359      C0F0FFFF 
- 4360 33bc F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 4360      E0F0FFFF 
- 4361 33c4 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 4361      000000
- 4362 33cb 488985D8 		movq	%rax, -3880(%rbp)
- 4362      F0FFFF
- 4363              	.LBB1100:
- 4364              	.LBB1101:
- 4365              	.LBB1102:
- 4366              	.LBB1103:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 4367              		.loc 2 851 0
- 4368 33d2 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4368      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 156
-
-
- 4369 33da F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 4369      00F1FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4370              		.loc 2 854 0
- 4371 33e2 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4371      00000000 
- 4372 33ea F30F6F8D 		movdqu	-3872(%rbp), %xmm1
- 4372      E0F0FFFF 
- 4373 33f2 F30F7F8D 		movdqu	%xmm1, -3760(%rbp)
- 4373      50F1FFFF 
- 4374 33fa F30F7F85 		movdqu	%xmm0, -3776(%rbp)
- 4374      40F1FFFF 
- 4375              	.LBB1104:
- 4376              	.LBB1105:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4377              		.loc 2 206 0
- 4378 3402 F30F6F85 		movdqu	-3776(%rbp), %xmm0
- 4378      40F1FFFF 
- 4379 340a F30F6F8D 		movdqu	-3760(%rbp), %xmm1
- 4379      50F1FFFF 
- 4380 3412 660FDBC1 		pand	%xmm1, %xmm0
- 4381              	.LBE1105:
- 4382              	.LBE1104:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4383              		.loc 2 854 0
- 4384 3416 F30F7F85 		movdqu	%xmm0, -3792(%rbp)
- 4384      30F1FFFF 
- 4385 341e F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 4385      E0F0FFFF 
- 4386 3426 F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 4386      70F1FFFF 
- 4387              	.LBB1106:
- 4388              	.LBB1107:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 4389              		.loc 3 433 0
- 4390 342e F30F6F85 		movdqu	-3728(%rbp), %xmm0
- 4390      70F1FFFF 
- 4391 3436 660F72D0 		psrld	$4, %xmm0
- 4391      04
- 4392              	.LBE1107:
- 4393              	.LBE1106:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 4394              		.loc 2 857 0
- 4395 343b F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 4395      20F1FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4396              		.loc 2 859 0
- 4397 3443 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4397      00000000 
- 4398 344b F30F6F8D 		movdqu	-3808(%rbp), %xmm1
- 4398      20F1FFFF 
- 4399 3453 F30F7F8D 		movdqu	%xmm1, -3696(%rbp)
- 4399      90F1FFFF 
- 4400 345b F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 4400      80F1FFFF 
- 4401              	.LBB1108:
- 4402              	.LBB1109:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 157
-
-
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4403              		.loc 2 206 0
- 4404 3463 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 4404      80F1FFFF 
- 4405 346b F30F6F8D 		movdqu	-3696(%rbp), %xmm1
- 4405      90F1FFFF 
- 4406 3473 660FDBC1 		pand	%xmm1, %xmm0
- 4407              	.LBE1109:
- 4408              	.LBE1108:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4409              		.loc 2 859 0
- 4410 3477 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 4410      20F1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 4411              		.loc 2 866 0
- 4412 347f C785FCF0 		movl	$0, -3844(%rbp)
- 4412      FFFF0000 
- 4412      0000
- 4413 3489 E9BE0100 		jmp	.L64
- 4413      00
- 4414              	.L65:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 4415              		.loc 2 868 0
- 4416 348e 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 4416      00000000 
- 4417 3496 F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 4417      B0F1FFFF 
- 4418 349e F30F6F85 		movdqu	-3808(%rbp), %xmm0
- 4418      20F1FFFF 
- 4419 34a6 F30F7F85 		movdqu	%xmm0, -3680(%rbp)
- 4419      A0F1FFFF 
- 4420 34ae F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 4420      B0F1FFFF 
- 4421 34b6 F30F7F85 		movdqu	%xmm0, -3632(%rbp)
- 4421      D0F1FFFF 
- 4422 34be F30F6F85 		movdqu	-3680(%rbp), %xmm0
- 4422      A0F1FFFF 
- 4423 34c6 F30F7F85 		movdqu	%xmm0, -3648(%rbp)
- 4423      C0F1FFFF 
- 4424              	.LBB1110:
- 4425              	.LBB1111:
- 4426              	.LBB1112:
- 4427              	.LBB1113:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4428              		.loc 3 529 0
- 4429 34ce F30F6F8D 		movdqu	-3648(%rbp), %xmm1
- 4429      C0F1FFFF 
- 4430 34d6 F30F6F85 		movdqu	-3632(%rbp), %xmm0
- 4430      D0F1FFFF 
- 4431 34de 660F3800 		pshufb	%xmm1, %xmm0
- 4431      C1
- 4432              	.LBE1113:
- 4433              	.LBE1112:
- 4434              	.LBE1111:
- 4435              	.LBE1110:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 4436              		.loc 2 868 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 158
-
-
- 4437 34e3 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 4437      10F1FFFF 
- 4438 34eb F30F6F85 		movdqu	-3792(%rbp), %xmm0
- 4438      30F1FFFF 
- 4439 34f3 F30F7F85 		movdqu	%xmm0, -3600(%rbp)
- 4439      F0F1FFFF 
- 4440 34fb F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 4440      10F1FFFF 
- 4441 3503 F30F7F85 		movdqu	%xmm0, -3616(%rbp)
- 4441      E0F1FFFF 
- 4442              	.LBB1114:
- 4443              	.LBB1115:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 4444              		.loc 2 234 0
- 4445 350b F30F6F85 		movdqu	-3616(%rbp), %xmm0
- 4445      E0F1FFFF 
- 4446 3513 F30F6F8D 		movdqu	-3600(%rbp), %xmm1
- 4446      F0F1FFFF 
- 4447 351b 660FEBC1 		por	%xmm1, %xmm0
- 4448              	.LBE1115:
- 4449              	.LBE1114:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 4450              		.loc 2 870 0
- 4451 351f F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 4451      10F1FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 4452              		.loc 2 872 0
- 4453 3527 8B85FCF0 		mov	-3844(%rbp), %eax
- 4453      FFFF
- 4454 352d 48C1E004 		salq	$4, %rax
- 4455 3531 480385D8 		addq	-3880(%rbp), %rax
- 4455      F0FFFF
- 4456 3538 660F6F00 		movdqa	(%rax), %xmm0
- 4457 353c F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 4457      10F2FFFF 
- 4458 3544 F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 4458      10F1FFFF 
- 4459 354c F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 4459      00F2FFFF 
- 4460 3554 F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 4460      10F2FFFF 
- 4461 355c F30F7F85 		movdqu	%xmm0, -3536(%rbp)
- 4461      30F2FFFF 
- 4462 3564 F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 4462      00F2FFFF 
- 4463 356c F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 4463      20F2FFFF 
- 4464              	.LBB1116:
- 4465              	.LBB1117:
- 4466              	.LBB1118:
- 4467              	.LBB1119:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4468              		.loc 3 529 0
- 4469 3574 F30F6F8D 		movdqu	-3552(%rbp), %xmm1
- 4469      20F2FFFF 
- 4470 357c F30F6F85 		movdqu	-3536(%rbp), %xmm0
- 4470      30F2FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 159
-
-
- 4471 3584 660F3800 		pshufb	%xmm1, %xmm0
- 4471      C1
- 4472              	.LBE1119:
- 4473              	.LBE1118:
- 4474              	.LBE1117:
- 4475              	.LBE1116:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 4476              		.loc 2 872 0
- 4477 3589 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 4477      10F1FFFF 
- 4478 3591 F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 4478      00F1FFFF 
- 4479 3599 F30F7F85 		movdqu	%xmm0, -3504(%rbp)
- 4479      50F2FFFF 
- 4480 35a1 F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 4480      10F1FFFF 
- 4481 35a9 F30F7F85 		movdqu	%xmm0, -3520(%rbp)
- 4481      40F2FFFF 
- 4482              	.LBB1120:
- 4483              	.LBB1121:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 4484              		.loc 2 234 0
- 4485 35b1 F30F6F85 		movdqu	-3520(%rbp), %xmm0
- 4485      40F2FFFF 
- 4486 35b9 F30F6F8D 		movdqu	-3504(%rbp), %xmm1
- 4486      50F2FFFF 
- 4487 35c1 660FEBC1 		por	%xmm1, %xmm0
- 4488              	.LBE1121:
- 4489              	.LBE1120:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 4490              		.loc 2 874 0
- 4491 35c5 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 4491      00F1FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 4492              		.loc 2 876 0
- 4493 35cd 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 4493      00000000 
- 4494 35d5 F30F6F8D 		movdqu	-3808(%rbp), %xmm1
- 4494      20F1FFFF 
- 4495 35dd F30F7F8D 		movdqu	%xmm1, -3472(%rbp)
- 4495      70F2FFFF 
- 4496 35e5 F30F7F85 		movdqu	%xmm0, -3488(%rbp)
- 4496      60F2FFFF 
- 4497              	.LBB1122:
- 4498              	.LBB1123:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 4499              		.loc 2 290 0
- 4500 35ed F30F6F8D 		movdqu	-3488(%rbp), %xmm1
- 4500      60F2FFFF 
- 4501 35f5 F30F6F85 		movdqu	-3472(%rbp), %xmm0
- 4501      70F2FFFF 
- 4502 35fd 660FF8C1 		psubb	%xmm1, %xmm0
- 4503              	.LBE1123:
- 4504              	.LBE1122:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 4505              		.loc 2 876 0
- 4506 3601 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 160
-
-
- 4506      20F1FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4507              		.loc 2 878 0
- 4508 3609 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4508      00000000 
- 4509 3611 F30F6F8D 		movdqu	-3808(%rbp), %xmm1
- 4509      20F1FFFF 
- 4510 3619 F30F7F8D 		movdqu	%xmm1, -3440(%rbp)
- 4510      90F2FFFF 
- 4511 3621 F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 4511      80F2FFFF 
- 4512              	.LBB1124:
- 4513              	.LBB1125:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4514              		.loc 2 206 0
- 4515 3629 F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 4515      80F2FFFF 
- 4516 3631 F30F6F8D 		movdqu	-3440(%rbp), %xmm1
- 4516      90F2FFFF 
- 4517 3639 660FDBC1 		pand	%xmm1, %xmm0
- 4518              	.LBE1125:
- 4519              	.LBE1124:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4520              		.loc 2 878 0
- 4521 363d F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 4521      20F1FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 4522              		.loc 2 866 0
- 4523 3645 8385FCF0 		addl	$1, -3844(%rbp)
- 4523      FFFF01
- 4524              	.L64:
- 4525 364c 83BDFCF0 		cmpl	$15, -3844(%rbp)
- 4525      FFFF0F
- 4526 3653 0F8635FE 		jbe	.L65
- 4526      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 4527              		.loc 2 882 0
- 4528 3659 F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 4528      00F1FFFF 
- 4529              	.LBE1103:
- 4530              	.LBE1102:
- 4531              	.LBE1101:
- 4532              	.LBE1100:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 4533              		.loc 2 1682 0
- 4534 3661 660F7F85 		movdqa	%xmm0, -10832(%rbp)
- 4534      B0D5FFFF 
- 4535              	.LBB1126:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 4536              		.loc 2 1683 0
- 4537 3669 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4537      B0D5FFFF 
- 4538 3671 F30F7F85 		movdqu	%xmm0, -10192(%rbp)
- 4538      30D8FFFF 
- 4539 3679 E8000000 		call	KDbgWriterGet at PLT
- 4539      00
- 4540 367e 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 161
-
-
- 4541 3681 7479     		je	.L67
- 4542 3683 BF010000 		movl	$1, %edi
- 4542      00
- 4543 3688 E8000000 		call	KDbgCondToFlag at PLT
- 4543      00
- 4544 368d 4889C6   		movq	%rax, %rsi
- 4545 3690 BF100000 		movl	$16, %edi
- 4545      00
- 4546 3695 E8000000 		call	KDbgTestModConds at PLT
- 4546      00
- 4547 369a 84C0     		testb	%al, %al
- 4548 369c 745E     		je	.L67
- 4549 369e 8B853CD8 		movl	-10180(%rbp), %eax
- 4549      FFFF
- 4550 36a4 89C7     		movl	%eax, %edi
- 4551 36a6 E855C9FF 		call	bswap_32
- 4551      FF
- 4552 36ab 4189C5   		movl	%eax, %r13d
- 4553 36ae 8B8538D8 		movl	-10184(%rbp), %eax
- 4553      FFFF
- 4554 36b4 89C7     		movl	%eax, %edi
- 4555 36b6 E845C9FF 		call	bswap_32
- 4555      FF
- 4556 36bb 4189C4   		movl	%eax, %r12d
- 4557 36be 8B8534D8 		movl	-10188(%rbp), %eax
- 4557      FFFF
- 4558 36c4 89C7     		movl	%eax, %edi
- 4559 36c6 E835C9FF 		call	bswap_32
- 4559      FF
- 4560 36cb 89C3     		movl	%eax, %ebx
- 4561 36cd 8B8530D8 		movl	-10192(%rbp), %eax
- 4561      FFFF
- 4562 36d3 89C7     		movl	%eax, %edi
- 4563 36d5 E826C9FF 		call	bswap_32
- 4563      FF
- 4564 36da 4589E9   		movl	%r13d, %r9d
- 4565 36dd 4589E0   		movl	%r12d, %r8d
- 4566 36e0 89D9     		movl	%ebx, %ecx
- 4567 36e2 89C2     		movl	%eax, %edx
- 4568 36e4 488D3500 		leaq	.LC0(%rip), %rsi
- 4568      000000
- 4569 36eb 488D3D00 		leaq	.LC1(%rip), %rdi
- 4569      000000
- 4570 36f2 B8000000 		movl	$0, %eax
- 4570      00
- 4571 36f7 E8000000 		call	KDbgMsg at PLT
- 4571      00
- 4572              	.L67:
- 4573 36fc 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4573      B0D5FFFF 
- 4574 3704 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 4574      A0F2FFFF 
- 4575              	.LBE1126:
- 4576              	.LBB1127:
- 4577              	.LBB1128:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 4578              		.loc 2 667 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 162
-
-
- 4579 370c 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 4579      00000000 
- 4580 3714 F30F6F8D 		movdqu	-3424(%rbp), %xmm1
- 4580      A0F2FFFF 
- 4581 371c F30F7F8D 		movdqu	%xmm1, -3392(%rbp)
- 4581      C0F2FFFF 
- 4582 3724 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 4582      B0F2FFFF 
- 4583 372c F30F6F85 		movdqu	-3392(%rbp), %xmm0
- 4583      C0F2FFFF 
- 4584 3734 F30F7F85 		movdqu	%xmm0, -3360(%rbp)
- 4584      E0F2FFFF 
- 4585 373c F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 4585      B0F2FFFF 
- 4586 3744 F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 4586      D0F2FFFF 
- 4587              	.LBB1129:
- 4588              	.LBB1130:
- 4589              	.LBB1131:
- 4590              	.LBB1132:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4591              		.loc 3 529 0
- 4592 374c F30F6F8D 		movdqu	-3376(%rbp), %xmm1
- 4592      D0F2FFFF 
- 4593 3754 F30F6F85 		movdqu	-3360(%rbp), %xmm0
- 4593      E0F2FFFF 
- 4594 375c 660F3800 		pshufb	%xmm1, %xmm0
- 4594      C1
- 4595              	.LBE1132:
- 4596              	.LBE1131:
- 4597              	.LBE1130:
- 4598              	.LBE1129:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 4599              		.loc 2 667 0
- 4600 3761 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 4600      A0F2FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4601              		.loc 2 668 0
- 4602 3769 F30F6F85 		movdqu	-3424(%rbp), %xmm0
- 4602      A0F2FFFF 
- 4603              	.LBE1128:
- 4604              	.LBE1127:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 4605              		.loc 2 1684 0
- 4606 3771 660F7F85 		movdqa	%xmm0, -10832(%rbp)
- 4606      B0D5FFFF 
- 4607              	.LBB1133:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 4608              		.loc 2 1685 0
- 4609 3779 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4609      B0D5FFFF 
- 4610 3781 F30F7F85 		movdqu	%xmm0, -10208(%rbp)
- 4610      20D8FFFF 
- 4611 3789 E8000000 		call	KDbgWriterGet at PLT
- 4611      00
- 4612 378e 4885C0   		testq	%rax, %rax
- 4613 3791 7479     		je	.L69
-
GAS LISTING /tmp/ccjbMjHD.s 			page 163
-
-
- 4614 3793 BF010000 		movl	$1, %edi
- 4614      00
- 4615 3798 E8000000 		call	KDbgCondToFlag at PLT
- 4615      00
- 4616 379d 4889C6   		movq	%rax, %rsi
- 4617 37a0 BF100000 		movl	$16, %edi
- 4617      00
- 4618 37a5 E8000000 		call	KDbgTestModConds at PLT
- 4618      00
- 4619 37aa 84C0     		testb	%al, %al
- 4620 37ac 745E     		je	.L69
- 4621 37ae 8B852CD8 		movl	-10196(%rbp), %eax
- 4621      FFFF
- 4622 37b4 89C7     		movl	%eax, %edi
- 4623 37b6 E845C8FF 		call	bswap_32
- 4623      FF
- 4624 37bb 4189C5   		movl	%eax, %r13d
- 4625 37be 8B8528D8 		movl	-10200(%rbp), %eax
- 4625      FFFF
- 4626 37c4 89C7     		movl	%eax, %edi
- 4627 37c6 E835C8FF 		call	bswap_32
- 4627      FF
- 4628 37cb 4189C4   		movl	%eax, %r12d
- 4629 37ce 8B8524D8 		movl	-10204(%rbp), %eax
- 4629      FFFF
- 4630 37d4 89C7     		movl	%eax, %edi
- 4631 37d6 E825C8FF 		call	bswap_32
- 4631      FF
- 4632 37db 89C3     		movl	%eax, %ebx
- 4633 37dd 8B8520D8 		movl	-10208(%rbp), %eax
- 4633      FFFF
- 4634 37e3 89C7     		movl	%eax, %edi
- 4635 37e5 E816C8FF 		call	bswap_32
- 4635      FF
- 4636 37ea 4589E9   		movl	%r13d, %r9d
- 4637 37ed 4589E0   		movl	%r12d, %r8d
- 4638 37f0 89D9     		movl	%ebx, %ecx
- 4639 37f2 89C2     		movl	%eax, %edx
- 4640 37f4 488D3500 		leaq	.LC2(%rip), %rsi
- 4640      000000
- 4641 37fb 488D3D00 		leaq	.LC1(%rip), %rdi
- 4641      000000
- 4642 3802 B8000000 		movl	$0, %eax
- 4642      00
- 4643 3807 E8000000 		call	KDbgMsg at PLT
- 4643      00
- 4644              	.L69:
- 4645 380c 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4645      B0D5FFFF 
- 4646 3814 F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 4646      00F3FFFF 
- 4647 381c 660F6F85 		movdqa	-10816(%rbp), %xmm0
- 4647      C0D5FFFF 
- 4648 3824 F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 4648      F0F2FFFF 
- 4649              	.LBE1133:
- 4650              	.LBB1134:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 164
-
-
- 4651              	.LBB1135:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 4652              		.loc 2 178 0
- 4653 382c F30F6F85 		movdqu	-3344(%rbp), %xmm0
- 4653      F0F2FFFF 
- 4654 3834 F30F6F8D 		movdqu	-3328(%rbp), %xmm1
- 4654      00F3FFFF 
- 4655 383c 660FEFC1 		pxor	%xmm1, %xmm0
- 4656              	.LBE1135:
- 4657              	.LBE1134:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 4658              		.loc 2 1686 0
- 4659 3840 660F7F85 		movdqa	%xmm0, -10832(%rbp)
- 4659      B0D5FFFF 
- 4660              	.LBB1136:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 4661              		.loc 2 1687 0
- 4662 3848 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4662      B0D5FFFF 
- 4663 3850 F30F7F85 		movdqu	%xmm0, -10224(%rbp)
- 4663      10D8FFFF 
- 4664 3858 E8000000 		call	KDbgWriterGet at PLT
- 4664      00
- 4665 385d 4885C0   		testq	%rax, %rax
- 4666 3860 7479     		je	.L71
- 4667 3862 BF010000 		movl	$1, %edi
- 4667      00
- 4668 3867 E8000000 		call	KDbgCondToFlag at PLT
- 4668      00
- 4669 386c 4889C6   		movq	%rax, %rsi
- 4670 386f BF100000 		movl	$16, %edi
- 4670      00
- 4671 3874 E8000000 		call	KDbgTestModConds at PLT
- 4671      00
- 4672 3879 84C0     		testb	%al, %al
- 4673 387b 745E     		je	.L71
- 4674 387d 8B851CD8 		movl	-10212(%rbp), %eax
- 4674      FFFF
- 4675 3883 89C7     		movl	%eax, %edi
- 4676 3885 E876C7FF 		call	bswap_32
- 4676      FF
- 4677 388a 4189C5   		movl	%eax, %r13d
- 4678 388d 8B8518D8 		movl	-10216(%rbp), %eax
- 4678      FFFF
- 4679 3893 89C7     		movl	%eax, %edi
- 4680 3895 E866C7FF 		call	bswap_32
- 4680      FF
- 4681 389a 4189C4   		movl	%eax, %r12d
- 4682 389d 8B8514D8 		movl	-10220(%rbp), %eax
- 4682      FFFF
- 4683 38a3 89C7     		movl	%eax, %edi
- 4684 38a5 E856C7FF 		call	bswap_32
- 4684      FF
- 4685 38aa 89C3     		movl	%eax, %ebx
- 4686 38ac 8B8510D8 		movl	-10224(%rbp), %eax
- 4686      FFFF
- 4687 38b2 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 165
-
-
- 4688 38b4 E847C7FF 		call	bswap_32
- 4688      FF
- 4689 38b9 4589E9   		movl	%r13d, %r9d
- 4690 38bc 4589E0   		movl	%r12d, %r8d
- 4691 38bf 89D9     		movl	%ebx, %ecx
- 4692 38c1 89C2     		movl	%eax, %edx
- 4693 38c3 488D3500 		leaq	.LC3(%rip), %rsi
- 4693      000000
- 4694 38ca 488D3D00 		leaq	.LC1(%rip), %rdi
- 4694      000000
- 4695 38d1 B8000000 		movl	$0, %eax
- 4695      00
- 4696 38d6 E8000000 		call	KDbgMsg at PLT
- 4696      00
- 4697              	.L71:
- 4698 38db 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4698      B0D5FFFF 
- 4699 38e3 F30F7F85 		movdqu	%xmm0, -3312(%rbp)
- 4699      10F3FFFF 
- 4700 38eb F30F6F85 		movdqu	-3312(%rbp), %xmm0
- 4700      10F3FFFF 
- 4701 38f3 F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 4701      30F3FFFF 
- 4702              	.LBE1136:
- 4703              	.LBB1137:
- 4704              	.LBB1138:
- 4705              	.LBB1139:
- 4706              	.LBB1140:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 4707              		.loc 3 450 0
- 4708 38fb F30F6F85 		movdqu	-3280(%rbp), %xmm0
- 4708      30F3FFFF 
- 4709 3903 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 4709      FF
- 4710              	.LBE1140:
- 4711              	.LBE1139:
- 4712              	.LBE1138:
- 4713              	.LBE1137:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 4714              		.loc 2 1688 0
- 4715 3908 660F7F85 		movdqa	%xmm0, -10832(%rbp)
- 4715      B0D5FFFF 
- 4716              	.LBB1141:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 4717              		.loc 2 1689 0
- 4718 3910 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4718      B0D5FFFF 
- 4719 3918 F30F7F85 		movdqu	%xmm0, -10240(%rbp)
- 4719      00D8FFFF 
- 4720 3920 E8000000 		call	KDbgWriterGet at PLT
- 4720      00
- 4721 3925 4885C0   		testq	%rax, %rax
- 4722 3928 7479     		je	.L73
- 4723 392a BF010000 		movl	$1, %edi
- 4723      00
- 4724 392f E8000000 		call	KDbgCondToFlag at PLT
- 4724      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 166
-
-
- 4725 3934 4889C6   		movq	%rax, %rsi
- 4726 3937 BF100000 		movl	$16, %edi
- 4726      00
- 4727 393c E8000000 		call	KDbgTestModConds at PLT
- 4727      00
- 4728 3941 84C0     		testb	%al, %al
- 4729 3943 745E     		je	.L73
- 4730 3945 8B850CD8 		movl	-10228(%rbp), %eax
- 4730      FFFF
- 4731 394b 89C7     		movl	%eax, %edi
- 4732 394d E8AEC6FF 		call	bswap_32
- 4732      FF
- 4733 3952 4189C5   		movl	%eax, %r13d
- 4734 3955 8B8508D8 		movl	-10232(%rbp), %eax
- 4734      FFFF
- 4735 395b 89C7     		movl	%eax, %edi
- 4736 395d E89EC6FF 		call	bswap_32
- 4736      FF
- 4737 3962 4189C4   		movl	%eax, %r12d
- 4738 3965 8B8504D8 		movl	-10236(%rbp), %eax
- 4738      FFFF
- 4739 396b 89C7     		movl	%eax, %edi
- 4740 396d E88EC6FF 		call	bswap_32
- 4740      FF
- 4741 3972 89C3     		movl	%eax, %ebx
- 4742 3974 8B8500D8 		movl	-10240(%rbp), %eax
- 4742      FFFF
- 4743 397a 89C7     		movl	%eax, %edi
- 4744 397c E87FC6FF 		call	bswap_32
- 4744      FF
- 4745 3981 4589E9   		movl	%r13d, %r9d
- 4746 3984 4589E0   		movl	%r12d, %r8d
- 4747 3987 89D9     		movl	%ebx, %ecx
- 4748 3989 89C2     		movl	%eax, %edx
- 4749 398b 488D3500 		leaq	.LC4(%rip), %rsi
- 4749      000000
- 4750 3992 488D3D00 		leaq	.LC1(%rip), %rdi
- 4750      000000
- 4751 3999 B8000000 		movl	$0, %eax
- 4751      00
- 4752 399e E8000000 		call	KDbgMsg at PLT
- 4752      00
- 4753              	.L73:
- 4754              	.LBE1141:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 4755              		.loc 2 1690 0
- 4756 39a3 660F6F85 		movdqa	-10832(%rbp), %xmm0
- 4756      B0D5FFFF 
- 4757              	.LBE1095:
- 4758              	.LBE1094:
-1750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x40,7);
- 4759              		.loc 2 1750 0
- 4760 39ab F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 4760      10D9FFFF 
- 4761 39b3 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 4761      00D9FFFF 
- 4762 39bb F30F7F85 		movdqu	%xmm0, -3264(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 167
-
-
- 4762      40F3FFFF 
- 4763              	.LBB1142:
- 4764              	.LBB1143:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 4765              		.loc 2 1565 0
- 4766 39c3 F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 4766      40F3FFFF 
- 4767 39cb 660F7F85 		movdqa	%xmm0, -10800(%rbp)
- 4767      D0D5FFFF 
- 4768 39d3 660F6F85 		movdqa	-10800(%rbp), %xmm0
- 4768      D0D5FFFF 
- 4769 39db F30F7F85 		movdqu	%xmm0, -3248(%rbp)
- 4769      50F3FFFF 
- 4770              	.LBB1144:
- 4771              	.LBB1145:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4772              		.loc 2 1278 0
- 4773 39e3 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 4773      00000000 
- 4774 39eb F30F6F8D 		movdqu	-3248(%rbp), %xmm1
- 4774      50F3FFFF 
- 4775 39f3 F30F7F8D 		movdqu	%xmm1, -3216(%rbp)
- 4775      70F3FFFF 
- 4776 39fb F30F7F85 		movdqu	%xmm0, -3232(%rbp)
- 4776      60F3FFFF 
- 4777 3a03 F30F6F85 		movdqu	-3216(%rbp), %xmm0
- 4777      70F3FFFF 
- 4778 3a0b F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 4778      90F3FFFF 
- 4779 3a13 F30F6F85 		movdqu	-3232(%rbp), %xmm0
- 4779      60F3FFFF 
- 4780 3a1b F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 4780      80F3FFFF 
- 4781              	.LBB1146:
- 4782              	.LBB1147:
- 4783              	.LBB1148:
- 4784              	.LBB1149:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4785              		.loc 3 529 0
- 4786 3a23 F30F6F8D 		movdqu	-3200(%rbp), %xmm1
- 4786      80F3FFFF 
- 4787 3a2b F30F6F85 		movdqu	-3184(%rbp), %xmm0
- 4787      90F3FFFF 
- 4788 3a33 660F3800 		pshufb	%xmm1, %xmm0
- 4788      C1
- 4789              	.LBE1149:
- 4790              	.LBE1148:
- 4791              	.LBE1147:
- 4792              	.LBE1146:
- 4793              	.LBE1145:
- 4794              	.LBE1144:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4795              		.loc 2 1567 0
- 4796 3a38 660F7F85 		movdqa	%xmm0, -10800(%rbp)
- 4796      D0D5FFFF 
- 4797 3a40 660F6F85 		movdqa	-10800(%rbp), %xmm0
- 4797      D0D5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 168
-
-
- 4798 3a48 660FEF85 		pxor	-3264(%rbp), %xmm0
- 4798      40F3FFFF 
- 4799 3a50 F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 4799      40F3FFFF 
- 4800 3a58 660F6F85 		movdqa	-10800(%rbp), %xmm0
- 4800      D0D5FFFF 
- 4801 3a60 F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 4801      A0F3FFFF 
- 4802              	.LBB1150:
- 4803              	.LBB1151:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4804              		.loc 2 1278 0
- 4805 3a68 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 4805      00000000 
- 4806 3a70 F30F6F8D 		movdqu	-3168(%rbp), %xmm1
- 4806      A0F3FFFF 
- 4807 3a78 F30F7F8D 		movdqu	%xmm1, -3136(%rbp)
- 4807      C0F3FFFF 
- 4808 3a80 F30F7F85 		movdqu	%xmm0, -3152(%rbp)
- 4808      B0F3FFFF 
- 4809 3a88 F30F6F85 		movdqu	-3136(%rbp), %xmm0
- 4809      C0F3FFFF 
- 4810 3a90 F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 4810      E0F3FFFF 
- 4811 3a98 F30F6F85 		movdqu	-3152(%rbp), %xmm0
- 4811      B0F3FFFF 
- 4812 3aa0 F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 4812      D0F3FFFF 
- 4813              	.LBB1152:
- 4814              	.LBB1153:
- 4815              	.LBB1154:
- 4816              	.LBB1155:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4817              		.loc 3 529 0
- 4818 3aa8 F30F6F8D 		movdqu	-3120(%rbp), %xmm1
- 4818      D0F3FFFF 
- 4819 3ab0 F30F6F85 		movdqu	-3104(%rbp), %xmm0
- 4819      E0F3FFFF 
- 4820 3ab8 660F3800 		pshufb	%xmm1, %xmm0
- 4820      C1
- 4821              	.LBE1155:
- 4822              	.LBE1154:
- 4823              	.LBE1153:
- 4824              	.LBE1152:
- 4825              	.LBE1151:
- 4826              	.LBE1150:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4827              		.loc 2 1568 0
- 4828 3abd 660F7F85 		movdqa	%xmm0, -10800(%rbp)
- 4828      D0D5FFFF 
- 4829 3ac5 660F6F85 		movdqa	-10800(%rbp), %xmm0
- 4829      D0D5FFFF 
- 4830 3acd 660FEF85 		pxor	-3264(%rbp), %xmm0
- 4830      40F3FFFF 
- 4831 3ad5 F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 4831      40F3FFFF 
- 4832 3add 660F6F85 		movdqa	-10800(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 169
-
-
- 4832      D0D5FFFF 
- 4833 3ae5 F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 4833      F0F3FFFF 
- 4834              	.LBB1156:
- 4835              	.LBB1157:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 4836              		.loc 2 1278 0
- 4837 3aed 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 4837      00000000 
- 4838 3af5 F30F6F8D 		movdqu	-3088(%rbp), %xmm1
- 4838      F0F3FFFF 
- 4839 3afd F30F7F8D 		movdqu	%xmm1, -3056(%rbp)
- 4839      10F4FFFF 
- 4840 3b05 F30F7F85 		movdqu	%xmm0, -3072(%rbp)
- 4840      00F4FFFF 
- 4841 3b0d F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 4841      10F4FFFF 
- 4842 3b15 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 4842      30F4FFFF 
- 4843 3b1d F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 4843      00F4FFFF 
- 4844 3b25 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 4844      20F4FFFF 
- 4845              	.LBB1158:
- 4846              	.LBB1159:
- 4847              	.LBB1160:
- 4848              	.LBB1161:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4849              		.loc 3 529 0
- 4850 3b2d F30F6F8D 		movdqu	-3040(%rbp), %xmm1
- 4850      20F4FFFF 
- 4851 3b35 F30F6F85 		movdqu	-3024(%rbp), %xmm0
- 4851      30F4FFFF 
- 4852 3b3d 660F3800 		pshufb	%xmm1, %xmm0
- 4852      C1
- 4853              	.LBE1161:
- 4854              	.LBE1160:
- 4855              	.LBE1159:
- 4856              	.LBE1158:
- 4857              	.LBE1157:
- 4858              	.LBE1156:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 4859              		.loc 2 1569 0
- 4860 3b42 660F7F85 		movdqa	%xmm0, -10800(%rbp)
- 4860      D0D5FFFF 
- 4861 3b4a 660F6F85 		movdqa	-10800(%rbp), %xmm0
- 4861      D0D5FFFF 
- 4862 3b52 660FEF85 		pxor	-3264(%rbp), %xmm0
- 4862      40F3FFFF 
- 4863 3b5a F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 4863      40F3FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4864              		.loc 2 1571 0
- 4865 3b62 F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 4865      40F3FFFF 
- 4866              	.LBE1143:
- 4867              	.LBE1142:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 170
-
-
- 4868              		.loc 2 1750 0
- 4869 3b6a F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 4869      00D9FFFF 
- 4870 3b72 F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 4870      10D9FFFF 
- 4871 3b7a F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 4871      00D9FFFF 
- 4872 3b82 660FEFC1 		pxor	%xmm1, %xmm0
- 4873 3b86 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 4873      00D9FFFF 
- 4874 3b8e 488B8578 		movq	-10632(%rbp), %rax
- 4874      D6FFFF
- 4875 3b95 4883C070 		addq	$112, %rax
- 4876 3b99 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 4876      00D9FFFF 
- 4877 3ba1 F30F7F00 		movdqu	%xmm0, (%rax)
- 4878 3ba5 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 4878      00D9FFFF 
- 4879 3bad F30F7F85 		movdqu	%xmm0, -2992(%rbp)
- 4879      50F4FFFF 
- 4880              	.LBB1162:
- 4881              	.LBB1163:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4882              		.loc 2 1681 0
- 4883 3bb5 B8800000 		movl	$128, %eax
- 4883      00
- 4884 3bba 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4884      00000000 
- 4885 3bc2 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 4885      70F4FFFF 
- 4886 3bca 89856CF4 		movl	%eax, -2964(%rbp)
- 4886      FFFF
- 4887 3bd0 F30F6F85 		movdqu	-2960(%rbp), %xmm0
- 4887      70F4FFFF 
- 4888 3bd8 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 4888      90F4FFFF 
- 4889 3be0 8B856CF4 		movl	-2964(%rbp), %eax
- 4889      FFFF
- 4890 3be6 89858CF4 		movl	%eax, -2932(%rbp)
- 4890      FFFF
- 4891              	.LBB1164:
- 4892              	.LBB1165:
- 4893              	.LBB1166:
- 4894              	.LBB1167:
- 4895              		.loc 3 598 0
- 4896 3bec 8B858CF4 		movl	-2932(%rbp), %eax
- 4896      FFFF
- 4897 3bf2 F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 4897      90F4FFFF 
- 4898 3bfa 660F3A22 		pinsrd	$3, %eax, %xmm0
- 4898      C003
- 4899              	.LBE1167:
- 4900              	.LBE1166:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 4901              		.loc 2 519 0
- 4902 3c00 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 4902      70F4FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 171
-
-
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 4903              		.loc 2 526 0
- 4904 3c08 F30F6F85 		movdqu	-2960(%rbp), %xmm0
- 4904      70F4FFFF 
- 4905              	.LBE1165:
- 4906              	.LBE1164:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 4907              		.loc 2 1681 0
- 4908 3c10 660F7F85 		movdqa	%xmm0, -10768(%rbp)
- 4908      F0D5FFFF 
- 4909 3c18 F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 4909      50F4FFFF 
- 4910 3c20 F30F7F85 		movdqu	%xmm0, -2912(%rbp)
- 4910      A0F4FFFF 
- 4911 3c28 F30F6F85 		movdqu	-2912(%rbp), %xmm0
- 4911      A0F4FFFF 
- 4912 3c30 F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 4912      C0F4FFFF 
- 4913 3c38 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 4913      000000
- 4914 3c3f 488985B8 		movq	%rax, -2888(%rbp)
- 4914      F4FFFF
- 4915              	.LBB1168:
- 4916              	.LBB1169:
- 4917              	.LBB1170:
- 4918              	.LBB1171:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 4919              		.loc 2 851 0
- 4920 3c46 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 4920      00000000 
- 4921 3c4e F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 4921      E0F4FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4922              		.loc 2 854 0
- 4923 3c56 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4923      00000000 
- 4924 3c5e F30F6F8D 		movdqu	-2880(%rbp), %xmm1
- 4924      C0F4FFFF 
- 4925 3c66 F30F7F8D 		movdqu	%xmm1, -2768(%rbp)
- 4925      30F5FFFF 
- 4926 3c6e F30F7F85 		movdqu	%xmm0, -2784(%rbp)
- 4926      20F5FFFF 
- 4927              	.LBB1172:
- 4928              	.LBB1173:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4929              		.loc 2 206 0
- 4930 3c76 F30F6F85 		movdqu	-2784(%rbp), %xmm0
- 4930      20F5FFFF 
- 4931 3c7e F30F6F8D 		movdqu	-2768(%rbp), %xmm1
- 4931      30F5FFFF 
- 4932 3c86 660FDBC1 		pand	%xmm1, %xmm0
- 4933              	.LBE1173:
- 4934              	.LBE1172:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 4935              		.loc 2 854 0
- 4936 3c8a F30F7F85 		movdqu	%xmm0, -2800(%rbp)
- 4936      10F5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 172
-
-
- 4937 3c92 F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 4937      C0F4FFFF 
- 4938 3c9a F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 4938      50F5FFFF 
- 4939              	.LBB1174:
- 4940              	.LBB1175:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 4941              		.loc 3 433 0
- 4942 3ca2 F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 4942      50F5FFFF 
- 4943 3caa 660F72D0 		psrld	$4, %xmm0
- 4943      04
- 4944              	.LBE1175:
- 4945              	.LBE1174:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 4946              		.loc 2 857 0
- 4947 3caf F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 4947      00F5FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4948              		.loc 2 859 0
- 4949 3cb7 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 4949      00000000 
- 4950 3cbf F30F6F8D 		movdqu	-2816(%rbp), %xmm1
- 4950      00F5FFFF 
- 4951 3cc7 F30F7F8D 		movdqu	%xmm1, -2704(%rbp)
- 4951      70F5FFFF 
- 4952 3ccf F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 4952      60F5FFFF 
- 4953              	.LBB1176:
- 4954              	.LBB1177:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 4955              		.loc 2 206 0
- 4956 3cd7 F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 4956      60F5FFFF 
- 4957 3cdf F30F6F8D 		movdqu	-2704(%rbp), %xmm1
- 4957      70F5FFFF 
- 4958 3ce7 660FDBC1 		pand	%xmm1, %xmm0
- 4959              	.LBE1177:
- 4960              	.LBE1176:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 4961              		.loc 2 859 0
- 4962 3ceb F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 4962      00F5FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 4963              		.loc 2 866 0
- 4964 3cf3 C785DCF4 		movl	$0, -2852(%rbp)
- 4964      FFFF0000 
- 4964      0000
- 4965 3cfd E9BE0100 		jmp	.L74
- 4965      00
- 4966              	.L75:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 4967              		.loc 2 868 0
- 4968 3d02 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 4968      00000000 
- 4969 3d0a F30F7F85 		movdqu	%xmm0, -2672(%rbp)
- 4969      90F5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 173
-
-
- 4970 3d12 F30F6F85 		movdqu	-2816(%rbp), %xmm0
- 4970      00F5FFFF 
- 4971 3d1a F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 4971      80F5FFFF 
- 4972 3d22 F30F6F85 		movdqu	-2672(%rbp), %xmm0
- 4972      90F5FFFF 
- 4973 3d2a F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 4973      B0F5FFFF 
- 4974 3d32 F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 4974      80F5FFFF 
- 4975 3d3a F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 4975      A0F5FFFF 
- 4976              	.LBB1178:
- 4977              	.LBB1179:
- 4978              	.LBB1180:
- 4979              	.LBB1181:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 4980              		.loc 3 529 0
- 4981 3d42 F30F6F8D 		movdqu	-2656(%rbp), %xmm1
- 4981      A0F5FFFF 
- 4982 3d4a F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 4982      B0F5FFFF 
- 4983 3d52 660F3800 		pshufb	%xmm1, %xmm0
- 4983      C1
- 4984              	.LBE1181:
- 4985              	.LBE1180:
- 4986              	.LBE1179:
- 4987              	.LBE1178:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 4988              		.loc 2 868 0
- 4989 3d57 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 4989      F0F4FFFF 
- 4990 3d5f F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 4990      10F5FFFF 
- 4991 3d67 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 4991      D0F5FFFF 
- 4992 3d6f F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 4992      F0F4FFFF 
- 4993 3d77 F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 4993      C0F5FFFF 
- 4994              	.LBB1182:
- 4995              	.LBB1183:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 4996              		.loc 2 234 0
- 4997 3d7f F30F6F85 		movdqu	-2624(%rbp), %xmm0
- 4997      C0F5FFFF 
- 4998 3d87 F30F6F8D 		movdqu	-2608(%rbp), %xmm1
- 4998      D0F5FFFF 
- 4999 3d8f 660FEBC1 		por	%xmm1, %xmm0
- 5000              	.LBE1183:
- 5001              	.LBE1182:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 5002              		.loc 2 870 0
- 5003 3d93 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 5003      F0F4FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 5004              		.loc 2 872 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 174
-
-
- 5005 3d9b 8B85DCF4 		mov	-2852(%rbp), %eax
- 5005      FFFF
- 5006 3da1 48C1E004 		salq	$4, %rax
- 5007 3da5 480385B8 		addq	-2888(%rbp), %rax
- 5007      F4FFFF
- 5008 3dac 660F6F00 		movdqa	(%rax), %xmm0
- 5009 3db0 F30F7F85 		movdqu	%xmm0, -2576(%rbp)
- 5009      F0F5FFFF 
- 5010 3db8 F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 5010      F0F4FFFF 
- 5011 3dc0 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 5011      E0F5FFFF 
- 5012 3dc8 F30F6F85 		movdqu	-2576(%rbp), %xmm0
- 5012      F0F5FFFF 
- 5013 3dd0 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 5013      10F6FFFF 
- 5014 3dd8 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 5014      E0F5FFFF 
- 5015 3de0 F30F7F85 		movdqu	%xmm0, -2560(%rbp)
- 5015      00F6FFFF 
- 5016              	.LBB1184:
- 5017              	.LBB1185:
- 5018              	.LBB1186:
- 5019              	.LBB1187:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5020              		.loc 3 529 0
- 5021 3de8 F30F6F8D 		movdqu	-2560(%rbp), %xmm1
- 5021      00F6FFFF 
- 5022 3df0 F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 5022      10F6FFFF 
- 5023 3df8 660F3800 		pshufb	%xmm1, %xmm0
- 5023      C1
- 5024              	.LBE1187:
- 5025              	.LBE1186:
- 5026              	.LBE1185:
- 5027              	.LBE1184:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 5028              		.loc 2 872 0
- 5029 3dfd F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 5029      F0F4FFFF 
- 5030 3e05 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 5030      E0F4FFFF 
- 5031 3e0d F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 5031      30F6FFFF 
- 5032 3e15 F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 5032      F0F4FFFF 
- 5033 3e1d F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 5033      20F6FFFF 
- 5034              	.LBB1188:
- 5035              	.LBB1189:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 5036              		.loc 2 234 0
- 5037 3e25 F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 5037      20F6FFFF 
- 5038 3e2d F30F6F8D 		movdqu	-2512(%rbp), %xmm1
- 5038      30F6FFFF 
- 5039 3e35 660FEBC1 		por	%xmm1, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 175
-
-
- 5040              	.LBE1189:
- 5041              	.LBE1188:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 5042              		.loc 2 874 0
- 5043 3e39 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 5043      E0F4FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 5044              		.loc 2 876 0
- 5045 3e41 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 5045      00000000 
- 5046 3e49 F30F6F8D 		movdqu	-2816(%rbp), %xmm1
- 5046      00F5FFFF 
- 5047 3e51 F30F7F8D 		movdqu	%xmm1, -2480(%rbp)
- 5047      50F6FFFF 
- 5048 3e59 F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 5048      40F6FFFF 
- 5049              	.LBB1190:
- 5050              	.LBB1191:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 5051              		.loc 2 290 0
- 5052 3e61 F30F6F8D 		movdqu	-2496(%rbp), %xmm1
- 5052      40F6FFFF 
- 5053 3e69 F30F6F85 		movdqu	-2480(%rbp), %xmm0
- 5053      50F6FFFF 
- 5054 3e71 660FF8C1 		psubb	%xmm1, %xmm0
- 5055              	.LBE1191:
- 5056              	.LBE1190:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 5057              		.loc 2 876 0
- 5058 3e75 F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 5058      00F5FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5059              		.loc 2 878 0
- 5060 3e7d 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 5060      00000000 
- 5061 3e85 F30F6F8D 		movdqu	-2816(%rbp), %xmm1
- 5061      00F5FFFF 
- 5062 3e8d F30F7F8D 		movdqu	%xmm1, -2448(%rbp)
- 5062      70F6FFFF 
- 5063 3e95 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 5063      60F6FFFF 
- 5064              	.LBB1192:
- 5065              	.LBB1193:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 5066              		.loc 2 206 0
- 5067 3e9d F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 5067      60F6FFFF 
- 5068 3ea5 F30F6F8D 		movdqu	-2448(%rbp), %xmm1
- 5068      70F6FFFF 
- 5069 3ead 660FDBC1 		pand	%xmm1, %xmm0
- 5070              	.LBE1193:
- 5071              	.LBE1192:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5072              		.loc 2 878 0
- 5073 3eb1 F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 5073      00F5FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 176
-
-
- 5074              		.loc 2 866 0
- 5075 3eb9 8385DCF4 		addl	$1, -2852(%rbp)
- 5075      FFFF01
- 5076              	.L74:
- 5077 3ec0 83BDDCF4 		cmpl	$15, -2852(%rbp)
- 5077      FFFF0F
- 5078 3ec7 0F8635FE 		jbe	.L75
- 5078      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 5079              		.loc 2 882 0
- 5080 3ecd F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 5080      E0F4FFFF 
- 5081              	.LBE1171:
- 5082              	.LBE1170:
- 5083              	.LBE1169:
- 5084              	.LBE1168:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 5085              		.loc 2 1682 0
- 5086 3ed5 660F7F85 		movdqa	%xmm0, -10784(%rbp)
- 5086      E0D5FFFF 
- 5087              	.LBB1194:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 5088              		.loc 2 1683 0
- 5089 3edd 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5089      E0D5FFFF 
- 5090 3ee5 F30F7F85 		movdqu	%xmm0, -10128(%rbp)
- 5090      70D8FFFF 
- 5091 3eed E8000000 		call	KDbgWriterGet at PLT
- 5091      00
- 5092 3ef2 4885C0   		testq	%rax, %rax
- 5093 3ef5 7479     		je	.L77
- 5094 3ef7 BF010000 		movl	$1, %edi
- 5094      00
- 5095 3efc E8000000 		call	KDbgCondToFlag at PLT
- 5095      00
- 5096 3f01 4889C6   		movq	%rax, %rsi
- 5097 3f04 BF100000 		movl	$16, %edi
- 5097      00
- 5098 3f09 E8000000 		call	KDbgTestModConds at PLT
- 5098      00
- 5099 3f0e 84C0     		testb	%al, %al
- 5100 3f10 745E     		je	.L77
- 5101 3f12 8B857CD8 		movl	-10116(%rbp), %eax
- 5101      FFFF
- 5102 3f18 89C7     		movl	%eax, %edi
- 5103 3f1a E8E1C0FF 		call	bswap_32
- 5103      FF
- 5104 3f1f 4189C5   		movl	%eax, %r13d
- 5105 3f22 8B8578D8 		movl	-10120(%rbp), %eax
- 5105      FFFF
- 5106 3f28 89C7     		movl	%eax, %edi
- 5107 3f2a E8D1C0FF 		call	bswap_32
- 5107      FF
- 5108 3f2f 4189C4   		movl	%eax, %r12d
- 5109 3f32 8B8574D8 		movl	-10124(%rbp), %eax
- 5109      FFFF
- 5110 3f38 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 177
-
-
- 5111 3f3a E8C1C0FF 		call	bswap_32
- 5111      FF
- 5112 3f3f 89C3     		movl	%eax, %ebx
- 5113 3f41 8B8570D8 		movl	-10128(%rbp), %eax
- 5113      FFFF
- 5114 3f47 89C7     		movl	%eax, %edi
- 5115 3f49 E8B2C0FF 		call	bswap_32
- 5115      FF
- 5116 3f4e 4589E9   		movl	%r13d, %r9d
- 5117 3f51 4589E0   		movl	%r12d, %r8d
- 5118 3f54 89D9     		movl	%ebx, %ecx
- 5119 3f56 89C2     		movl	%eax, %edx
- 5120 3f58 488D3500 		leaq	.LC0(%rip), %rsi
- 5120      000000
- 5121 3f5f 488D3D00 		leaq	.LC1(%rip), %rdi
- 5121      000000
- 5122 3f66 B8000000 		movl	$0, %eax
- 5122      00
- 5123 3f6b E8000000 		call	KDbgMsg at PLT
- 5123      00
- 5124              	.L77:
- 5125 3f70 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5125      E0D5FFFF 
- 5126 3f78 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 5126      80F6FFFF 
- 5127              	.LBE1194:
- 5128              	.LBB1195:
- 5129              	.LBB1196:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 5130              		.loc 2 667 0
- 5131 3f80 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 5131      00000000 
- 5132 3f88 F30F6F8D 		movdqu	-2432(%rbp), %xmm1
- 5132      80F6FFFF 
- 5133 3f90 F30F7F8D 		movdqu	%xmm1, -2400(%rbp)
- 5133      A0F6FFFF 
- 5134 3f98 F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 5134      90F6FFFF 
- 5135 3fa0 F30F6F85 		movdqu	-2400(%rbp), %xmm0
- 5135      A0F6FFFF 
- 5136 3fa8 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 5136      C0F6FFFF 
- 5137 3fb0 F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 5137      90F6FFFF 
- 5138 3fb8 F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 5138      B0F6FFFF 
- 5139              	.LBB1197:
- 5140              	.LBB1198:
- 5141              	.LBB1199:
- 5142              	.LBB1200:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5143              		.loc 3 529 0
- 5144 3fc0 F30F6F8D 		movdqu	-2384(%rbp), %xmm1
- 5144      B0F6FFFF 
- 5145 3fc8 F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 5145      C0F6FFFF 
- 5146 3fd0 660F3800 		pshufb	%xmm1, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 178
-
-
- 5146      C1
- 5147              	.LBE1200:
- 5148              	.LBE1199:
- 5149              	.LBE1198:
- 5150              	.LBE1197:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 5151              		.loc 2 667 0
- 5152 3fd5 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 5152      80F6FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5153              		.loc 2 668 0
- 5154 3fdd F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 5154      80F6FFFF 
- 5155              	.LBE1196:
- 5156              	.LBE1195:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 5157              		.loc 2 1684 0
- 5158 3fe5 660F7F85 		movdqa	%xmm0, -10784(%rbp)
- 5158      E0D5FFFF 
- 5159              	.LBB1201:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 5160              		.loc 2 1685 0
- 5161 3fed 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5161      E0D5FFFF 
- 5162 3ff5 F30F7F85 		movdqu	%xmm0, -10144(%rbp)
- 5162      60D8FFFF 
- 5163 3ffd E8000000 		call	KDbgWriterGet at PLT
- 5163      00
- 5164 4002 4885C0   		testq	%rax, %rax
- 5165 4005 7479     		je	.L79
- 5166 4007 BF010000 		movl	$1, %edi
- 5166      00
- 5167 400c E8000000 		call	KDbgCondToFlag at PLT
- 5167      00
- 5168 4011 4889C6   		movq	%rax, %rsi
- 5169 4014 BF100000 		movl	$16, %edi
- 5169      00
- 5170 4019 E8000000 		call	KDbgTestModConds at PLT
- 5170      00
- 5171 401e 84C0     		testb	%al, %al
- 5172 4020 745E     		je	.L79
- 5173 4022 8B856CD8 		movl	-10132(%rbp), %eax
- 5173      FFFF
- 5174 4028 89C7     		movl	%eax, %edi
- 5175 402a E8D1BFFF 		call	bswap_32
- 5175      FF
- 5176 402f 4189C5   		movl	%eax, %r13d
- 5177 4032 8B8568D8 		movl	-10136(%rbp), %eax
- 5177      FFFF
- 5178 4038 89C7     		movl	%eax, %edi
- 5179 403a E8C1BFFF 		call	bswap_32
- 5179      FF
- 5180 403f 4189C4   		movl	%eax, %r12d
- 5181 4042 8B8564D8 		movl	-10140(%rbp), %eax
- 5181      FFFF
- 5182 4048 89C7     		movl	%eax, %edi
- 5183 404a E8B1BFFF 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 179
-
-
- 5183      FF
- 5184 404f 89C3     		movl	%eax, %ebx
- 5185 4051 8B8560D8 		movl	-10144(%rbp), %eax
- 5185      FFFF
- 5186 4057 89C7     		movl	%eax, %edi
- 5187 4059 E8A2BFFF 		call	bswap_32
- 5187      FF
- 5188 405e 4589E9   		movl	%r13d, %r9d
- 5189 4061 4589E0   		movl	%r12d, %r8d
- 5190 4064 89D9     		movl	%ebx, %ecx
- 5191 4066 89C2     		movl	%eax, %edx
- 5192 4068 488D3500 		leaq	.LC2(%rip), %rsi
- 5192      000000
- 5193 406f 488D3D00 		leaq	.LC1(%rip), %rdi
- 5193      000000
- 5194 4076 B8000000 		movl	$0, %eax
- 5194      00
- 5195 407b E8000000 		call	KDbgMsg at PLT
- 5195      00
- 5196              	.L79:
- 5197 4080 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5197      E0D5FFFF 
- 5198 4088 F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 5198      E0F6FFFF 
- 5199 4090 660F6F85 		movdqa	-10768(%rbp), %xmm0
- 5199      F0D5FFFF 
- 5200 4098 F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 5200      D0F6FFFF 
- 5201              	.LBE1201:
- 5202              	.LBB1202:
- 5203              	.LBB1203:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 5204              		.loc 2 178 0
- 5205 40a0 F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 5205      D0F6FFFF 
- 5206 40a8 F30F6F8D 		movdqu	-2336(%rbp), %xmm1
- 5206      E0F6FFFF 
- 5207 40b0 660FEFC1 		pxor	%xmm1, %xmm0
- 5208              	.LBE1203:
- 5209              	.LBE1202:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 5210              		.loc 2 1686 0
- 5211 40b4 660F7F85 		movdqa	%xmm0, -10784(%rbp)
- 5211      E0D5FFFF 
- 5212              	.LBB1204:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 5213              		.loc 2 1687 0
- 5214 40bc 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5214      E0D5FFFF 
- 5215 40c4 F30F7F85 		movdqu	%xmm0, -10160(%rbp)
- 5215      50D8FFFF 
- 5216 40cc E8000000 		call	KDbgWriterGet at PLT
- 5216      00
- 5217 40d1 4885C0   		testq	%rax, %rax
- 5218 40d4 7479     		je	.L81
- 5219 40d6 BF010000 		movl	$1, %edi
- 5219      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 180
-
-
- 5220 40db E8000000 		call	KDbgCondToFlag at PLT
- 5220      00
- 5221 40e0 4889C6   		movq	%rax, %rsi
- 5222 40e3 BF100000 		movl	$16, %edi
- 5222      00
- 5223 40e8 E8000000 		call	KDbgTestModConds at PLT
- 5223      00
- 5224 40ed 84C0     		testb	%al, %al
- 5225 40ef 745E     		je	.L81
- 5226 40f1 8B855CD8 		movl	-10148(%rbp), %eax
- 5226      FFFF
- 5227 40f7 89C7     		movl	%eax, %edi
- 5228 40f9 E802BFFF 		call	bswap_32
- 5228      FF
- 5229 40fe 4189C5   		movl	%eax, %r13d
- 5230 4101 8B8558D8 		movl	-10152(%rbp), %eax
- 5230      FFFF
- 5231 4107 89C7     		movl	%eax, %edi
- 5232 4109 E8F2BEFF 		call	bswap_32
- 5232      FF
- 5233 410e 4189C4   		movl	%eax, %r12d
- 5234 4111 8B8554D8 		movl	-10156(%rbp), %eax
- 5234      FFFF
- 5235 4117 89C7     		movl	%eax, %edi
- 5236 4119 E8E2BEFF 		call	bswap_32
- 5236      FF
- 5237 411e 89C3     		movl	%eax, %ebx
- 5238 4120 8B8550D8 		movl	-10160(%rbp), %eax
- 5238      FFFF
- 5239 4126 89C7     		movl	%eax, %edi
- 5240 4128 E8D3BEFF 		call	bswap_32
- 5240      FF
- 5241 412d 4589E9   		movl	%r13d, %r9d
- 5242 4130 4589E0   		movl	%r12d, %r8d
- 5243 4133 89D9     		movl	%ebx, %ecx
- 5244 4135 89C2     		movl	%eax, %edx
- 5245 4137 488D3500 		leaq	.LC3(%rip), %rsi
- 5245      000000
- 5246 413e 488D3D00 		leaq	.LC1(%rip), %rdi
- 5246      000000
- 5247 4145 B8000000 		movl	$0, %eax
- 5247      00
- 5248 414a E8000000 		call	KDbgMsg at PLT
- 5248      00
- 5249              	.L81:
- 5250 414f 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5250      E0D5FFFF 
- 5251 4157 F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 5251      F0F6FFFF 
- 5252 415f F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 5252      F0F6FFFF 
- 5253 4167 F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 5253      10F7FFFF 
- 5254              	.LBE1204:
- 5255              	.LBB1205:
- 5256              	.LBB1206:
- 5257              	.LBB1207:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 181
-
-
- 5258              	.LBB1208:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5259              		.loc 3 450 0
- 5260 416f F30F6F85 		movdqu	-2288(%rbp), %xmm0
- 5260      10F7FFFF 
- 5261 4177 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 5261      FF
- 5262              	.LBE1208:
- 5263              	.LBE1207:
- 5264              	.LBE1206:
- 5265              	.LBE1205:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 5266              		.loc 2 1688 0
- 5267 417c 660F7F85 		movdqa	%xmm0, -10784(%rbp)
- 5267      E0D5FFFF 
- 5268              	.LBB1209:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 5269              		.loc 2 1689 0
- 5270 4184 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5270      E0D5FFFF 
- 5271 418c F30F7F85 		movdqu	%xmm0, -10176(%rbp)
- 5271      40D8FFFF 
- 5272 4194 E8000000 		call	KDbgWriterGet at PLT
- 5272      00
- 5273 4199 4885C0   		testq	%rax, %rax
- 5274 419c 7479     		je	.L83
- 5275 419e BF010000 		movl	$1, %edi
- 5275      00
- 5276 41a3 E8000000 		call	KDbgCondToFlag at PLT
- 5276      00
- 5277 41a8 4889C6   		movq	%rax, %rsi
- 5278 41ab BF100000 		movl	$16, %edi
- 5278      00
- 5279 41b0 E8000000 		call	KDbgTestModConds at PLT
- 5279      00
- 5280 41b5 84C0     		testb	%al, %al
- 5281 41b7 745E     		je	.L83
- 5282 41b9 8B854CD8 		movl	-10164(%rbp), %eax
- 5282      FFFF
- 5283 41bf 89C7     		movl	%eax, %edi
- 5284 41c1 E83ABEFF 		call	bswap_32
- 5284      FF
- 5285 41c6 4189C5   		movl	%eax, %r13d
- 5286 41c9 8B8548D8 		movl	-10168(%rbp), %eax
- 5286      FFFF
- 5287 41cf 89C7     		movl	%eax, %edi
- 5288 41d1 E82ABEFF 		call	bswap_32
- 5288      FF
- 5289 41d6 4189C4   		movl	%eax, %r12d
- 5290 41d9 8B8544D8 		movl	-10172(%rbp), %eax
- 5290      FFFF
- 5291 41df 89C7     		movl	%eax, %edi
- 5292 41e1 E81ABEFF 		call	bswap_32
- 5292      FF
- 5293 41e6 89C3     		movl	%eax, %ebx
- 5294 41e8 8B8540D8 		movl	-10176(%rbp), %eax
- 5294      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 182
-
-
- 5295 41ee 89C7     		movl	%eax, %edi
- 5296 41f0 E80BBEFF 		call	bswap_32
- 5296      FF
- 5297 41f5 4589E9   		movl	%r13d, %r9d
- 5298 41f8 4589E0   		movl	%r12d, %r8d
- 5299 41fb 89D9     		movl	%ebx, %ecx
- 5300 41fd 89C2     		movl	%eax, %edx
- 5301 41ff 488D3500 		leaq	.LC4(%rip), %rsi
- 5301      000000
- 5302 4206 488D3D00 		leaq	.LC1(%rip), %rdi
- 5302      000000
- 5303 420d B8000000 		movl	$0, %eax
- 5303      00
- 5304 4212 E8000000 		call	KDbgMsg at PLT
- 5304      00
- 5305              	.L83:
- 5306              	.LBE1209:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 5307              		.loc 2 1690 0
- 5308 4217 660F6F85 		movdqa	-10784(%rbp), %xmm0
- 5308      E0D5FFFF 
- 5309              	.LBE1163:
- 5310              	.LBE1162:
-1751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x80,8);
- 5311              		.loc 2 1751 0
- 5312 421f F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 5312      10D9FFFF 
- 5313 4227 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 5313      00D9FFFF 
- 5314 422f F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 5314      20F7FFFF 
- 5315              	.LBB1210:
- 5316              	.LBB1211:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5317              		.loc 2 1565 0
- 5318 4237 F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 5318      20F7FFFF 
- 5319 423f 660F7F85 		movdqa	%xmm0, -10752(%rbp)
- 5319      00D6FFFF 
- 5320 4247 660F6F85 		movdqa	-10752(%rbp), %xmm0
- 5320      00D6FFFF 
- 5321 424f F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 5321      30F7FFFF 
- 5322              	.LBB1212:
- 5323              	.LBB1213:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5324              		.loc 2 1278 0
- 5325 4257 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 5325      00000000 
- 5326 425f F30F6F8D 		movdqu	-2256(%rbp), %xmm1
- 5326      30F7FFFF 
- 5327 4267 F30F7F8D 		movdqu	%xmm1, -2224(%rbp)
- 5327      50F7FFFF 
- 5328 426f F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 5328      40F7FFFF 
- 5329 4277 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 5329      50F7FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 183
-
-
- 5330 427f F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 5330      70F7FFFF 
- 5331 4287 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 5331      40F7FFFF 
- 5332 428f F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 5332      60F7FFFF 
- 5333              	.LBB1214:
- 5334              	.LBB1215:
- 5335              	.LBB1216:
- 5336              	.LBB1217:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5337              		.loc 3 529 0
- 5338 4297 F30F6F8D 		movdqu	-2208(%rbp), %xmm1
- 5338      60F7FFFF 
- 5339 429f F30F6F85 		movdqu	-2192(%rbp), %xmm0
- 5339      70F7FFFF 
- 5340 42a7 660F3800 		pshufb	%xmm1, %xmm0
- 5340      C1
- 5341              	.LBE1217:
- 5342              	.LBE1216:
- 5343              	.LBE1215:
- 5344              	.LBE1214:
- 5345              	.LBE1213:
- 5346              	.LBE1212:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5347              		.loc 2 1567 0
- 5348 42ac 660F7F85 		movdqa	%xmm0, -10752(%rbp)
- 5348      00D6FFFF 
- 5349 42b4 660F6F85 		movdqa	-10752(%rbp), %xmm0
- 5349      00D6FFFF 
- 5350 42bc 660FEF85 		pxor	-2272(%rbp), %xmm0
- 5350      20F7FFFF 
- 5351 42c4 F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 5351      20F7FFFF 
- 5352 42cc 660F6F85 		movdqa	-10752(%rbp), %xmm0
- 5352      00D6FFFF 
- 5353 42d4 F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 5353      80F7FFFF 
- 5354              	.LBB1218:
- 5355              	.LBB1219:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5356              		.loc 2 1278 0
- 5357 42dc 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 5357      00000000 
- 5358 42e4 F30F6F8D 		movdqu	-2176(%rbp), %xmm1
- 5358      80F7FFFF 
- 5359 42ec F30F7F8D 		movdqu	%xmm1, -2144(%rbp)
- 5359      A0F7FFFF 
- 5360 42f4 F30F7F85 		movdqu	%xmm0, -2160(%rbp)
- 5360      90F7FFFF 
- 5361 42fc F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 5361      A0F7FFFF 
- 5362 4304 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 5362      C0F7FFFF 
- 5363 430c F30F6F85 		movdqu	-2160(%rbp), %xmm0
- 5363      90F7FFFF 
- 5364 4314 F30F7F85 		movdqu	%xmm0, -2128(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 184
-
-
- 5364      B0F7FFFF 
- 5365              	.LBB1220:
- 5366              	.LBB1221:
- 5367              	.LBB1222:
- 5368              	.LBB1223:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5369              		.loc 3 529 0
- 5370 431c F30F6F8D 		movdqu	-2128(%rbp), %xmm1
- 5370      B0F7FFFF 
- 5371 4324 F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 5371      C0F7FFFF 
- 5372 432c 660F3800 		pshufb	%xmm1, %xmm0
- 5372      C1
- 5373              	.LBE1223:
- 5374              	.LBE1222:
- 5375              	.LBE1221:
- 5376              	.LBE1220:
- 5377              	.LBE1219:
- 5378              	.LBE1218:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5379              		.loc 2 1568 0
- 5380 4331 660F7F85 		movdqa	%xmm0, -10752(%rbp)
- 5380      00D6FFFF 
- 5381 4339 660F6F85 		movdqa	-10752(%rbp), %xmm0
- 5381      00D6FFFF 
- 5382 4341 660FEF85 		pxor	-2272(%rbp), %xmm0
- 5382      20F7FFFF 
- 5383 4349 F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 5383      20F7FFFF 
- 5384 4351 660F6F85 		movdqa	-10752(%rbp), %xmm0
- 5384      00D6FFFF 
- 5385 4359 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 5385      D0F7FFFF 
- 5386              	.LBB1224:
- 5387              	.LBB1225:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5388              		.loc 2 1278 0
- 5389 4361 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 5389      00000000 
- 5390 4369 F30F6F8D 		movdqu	-2096(%rbp), %xmm1
- 5390      D0F7FFFF 
- 5391 4371 F30F7F8D 		movdqu	%xmm1, -2064(%rbp)
- 5391      F0F7FFFF 
- 5392 4379 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 5392      E0F7FFFF 
- 5393 4381 F30F6F85 		movdqu	-2064(%rbp), %xmm0
- 5393      F0F7FFFF 
- 5394 4389 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 5394      10F8FFFF 
- 5395 4391 F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 5395      E0F7FFFF 
- 5396 4399 F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 5396      00F8FFFF 
- 5397              	.LBB1226:
- 5398              	.LBB1227:
- 5399              	.LBB1228:
- 5400              	.LBB1229:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 185
-
-
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5401              		.loc 3 529 0
- 5402 43a1 F30F6F8D 		movdqu	-2048(%rbp), %xmm1
- 5402      00F8FFFF 
- 5403 43a9 F30F6F85 		movdqu	-2032(%rbp), %xmm0
- 5403      10F8FFFF 
- 5404 43b1 660F3800 		pshufb	%xmm1, %xmm0
- 5404      C1
- 5405              	.LBE1229:
- 5406              	.LBE1228:
- 5407              	.LBE1227:
- 5408              	.LBE1226:
- 5409              	.LBE1225:
- 5410              	.LBE1224:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5411              		.loc 2 1569 0
- 5412 43b6 660F7F85 		movdqa	%xmm0, -10752(%rbp)
- 5412      00D6FFFF 
- 5413 43be 660F6F85 		movdqa	-10752(%rbp), %xmm0
- 5413      00D6FFFF 
- 5414 43c6 660FEF85 		pxor	-2272(%rbp), %xmm0
- 5414      20F7FFFF 
- 5415 43ce F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 5415      20F7FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5416              		.loc 2 1571 0
- 5417 43d6 F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 5417      20F7FFFF 
- 5418              	.LBE1211:
- 5419              	.LBE1210:
- 5420              		.loc 2 1751 0
- 5421 43de F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 5421      00D9FFFF 
- 5422 43e6 F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 5422      10D9FFFF 
- 5423 43ee F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 5423      00D9FFFF 
- 5424 43f6 660FEFC1 		pxor	%xmm1, %xmm0
- 5425 43fa F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 5425      00D9FFFF 
- 5426 4402 488B8578 		movq	-10632(%rbp), %rax
- 5426      D6FFFF
- 5427 4409 4883E880 		subq	$-128, %rax
- 5428 440d F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 5428      00D9FFFF 
- 5429 4415 F30F7F00 		movdqu	%xmm0, (%rax)
- 5430 4419 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 5430      00D9FFFF 
- 5431 4421 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 5431      30F8FFFF 
- 5432              	.LBB1230:
- 5433              	.LBB1231:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 5434              		.loc 2 1681 0
- 5435 4429 B81B0000 		movl	$27, %eax
- 5435      00
- 5436 442e 660F6F05 		movdqa	vec_00(%rip), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 186
-
-
- 5436      00000000 
- 5437 4436 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 5437      50F8FFFF 
- 5438 443e 89854CF8 		movl	%eax, -1972(%rbp)
- 5438      FFFF
- 5439 4444 F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 5439      50F8FFFF 
- 5440 444c F30F7F85 		movdqu	%xmm0, -1936(%rbp)
- 5440      70F8FFFF 
- 5441 4454 8B854CF8 		movl	-1972(%rbp), %eax
- 5441      FFFF
- 5442 445a 89856CF8 		movl	%eax, -1940(%rbp)
- 5442      FFFF
- 5443              	.LBB1232:
- 5444              	.LBB1233:
- 5445              	.LBB1234:
- 5446              	.LBB1235:
- 5447              		.loc 3 598 0
- 5448 4460 8B856CF8 		movl	-1940(%rbp), %eax
- 5448      FFFF
- 5449 4466 F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 5449      70F8FFFF 
- 5450 446e 660F3A22 		pinsrd	$3, %eax, %xmm0
- 5450      C003
- 5451              	.LBE1235:
- 5452              	.LBE1234:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 5453              		.loc 2 519 0
- 5454 4474 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 5454      50F8FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5455              		.loc 2 526 0
- 5456 447c F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 5456      50F8FFFF 
- 5457              	.LBE1233:
- 5458              	.LBE1232:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 5459              		.loc 2 1681 0
- 5460 4484 660F7F85 		movdqa	%xmm0, -10720(%rbp)
- 5460      20D6FFFF 
- 5461 448c F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 5461      30F8FFFF 
- 5462 4494 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 5462      80F8FFFF 
- 5463 449c F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 5463      80F8FFFF 
- 5464 44a4 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 5464      A0F8FFFF 
- 5465 44ac 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 5465      000000
- 5466 44b3 48898598 		movq	%rax, -1896(%rbp)
- 5466      F8FFFF
- 5467              	.LBB1236:
- 5468              	.LBB1237:
- 5469              	.LBB1238:
- 5470              	.LBB1239:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 187
-
-
- 5471              		.loc 2 851 0
- 5472 44ba 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 5472      00000000 
- 5473 44c2 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 5473      C0F8FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 5474              		.loc 2 854 0
- 5475 44ca 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 5475      00000000 
- 5476 44d2 F30F6F8D 		movdqu	-1888(%rbp), %xmm1
- 5476      A0F8FFFF 
- 5477 44da F30F7F8D 		movdqu	%xmm1, -1776(%rbp)
- 5477      10F9FFFF 
- 5478 44e2 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 5478      00F9FFFF 
- 5479              	.LBB1240:
- 5480              	.LBB1241:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 5481              		.loc 2 206 0
- 5482 44ea F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 5482      00F9FFFF 
- 5483 44f2 F30F6F8D 		movdqu	-1776(%rbp), %xmm1
- 5483      10F9FFFF 
- 5484 44fa 660FDBC1 		pand	%xmm1, %xmm0
- 5485              	.LBE1241:
- 5486              	.LBE1240:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 5487              		.loc 2 854 0
- 5488 44fe F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 5488      F0F8FFFF 
- 5489 4506 F30F6F85 		movdqu	-1888(%rbp), %xmm0
- 5489      A0F8FFFF 
- 5490 450e F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 5490      30F9FFFF 
- 5491              	.LBB1242:
- 5492              	.LBB1243:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 5493              		.loc 3 433 0
- 5494 4516 F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 5494      30F9FFFF 
- 5495 451e 660F72D0 		psrld	$4, %xmm0
- 5495      04
- 5496              	.LBE1243:
- 5497              	.LBE1242:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 5498              		.loc 2 857 0
- 5499 4523 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 5499      E0F8FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5500              		.loc 2 859 0
- 5501 452b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 5501      00000000 
- 5502 4533 F30F6F8D 		movdqu	-1824(%rbp), %xmm1
- 5502      E0F8FFFF 
- 5503 453b F30F7F8D 		movdqu	%xmm1, -1712(%rbp)
- 5503      50F9FFFF 
- 5504 4543 F30F7F85 		movdqu	%xmm0, -1728(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 188
-
-
- 5504      40F9FFFF 
- 5505              	.LBB1244:
- 5506              	.LBB1245:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 5507              		.loc 2 206 0
- 5508 454b F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 5508      40F9FFFF 
- 5509 4553 F30F6F8D 		movdqu	-1712(%rbp), %xmm1
- 5509      50F9FFFF 
- 5510 455b 660FDBC1 		pand	%xmm1, %xmm0
- 5511              	.LBE1245:
- 5512              	.LBE1244:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5513              		.loc 2 859 0
- 5514 455f F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 5514      E0F8FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 5515              		.loc 2 866 0
- 5516 4567 C785BCF8 		movl	$0, -1860(%rbp)
- 5516      FFFF0000 
- 5516      0000
- 5517 4571 E9BE0100 		jmp	.L84
- 5517      00
- 5518              	.L85:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 5519              		.loc 2 868 0
- 5520 4576 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 5520      00000000 
- 5521 457e F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 5521      70F9FFFF 
- 5522 4586 F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 5522      E0F8FFFF 
- 5523 458e F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 5523      60F9FFFF 
- 5524 4596 F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 5524      70F9FFFF 
- 5525 459e F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 5525      90F9FFFF 
- 5526 45a6 F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 5526      60F9FFFF 
- 5527 45ae F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 5527      80F9FFFF 
- 5528              	.LBB1246:
- 5529              	.LBB1247:
- 5530              	.LBB1248:
- 5531              	.LBB1249:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5532              		.loc 3 529 0
- 5533 45b6 F30F6F8D 		movdqu	-1664(%rbp), %xmm1
- 5533      80F9FFFF 
- 5534 45be F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 5534      90F9FFFF 
- 5535 45c6 660F3800 		pshufb	%xmm1, %xmm0
- 5535      C1
- 5536              	.LBE1249:
- 5537              	.LBE1248:
- 5538              	.LBE1247:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 189
-
-
- 5539              	.LBE1246:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 5540              		.loc 2 868 0
- 5541 45cb F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 5541      D0F8FFFF 
- 5542 45d3 F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 5542      F0F8FFFF 
- 5543 45db F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 5543      B0F9FFFF 
- 5544 45e3 F30F6F85 		movdqu	-1840(%rbp), %xmm0
- 5544      D0F8FFFF 
- 5545 45eb F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 5545      A0F9FFFF 
- 5546              	.LBB1250:
- 5547              	.LBB1251:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 5548              		.loc 2 234 0
- 5549 45f3 F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 5549      A0F9FFFF 
- 5550 45fb F30F6F8D 		movdqu	-1616(%rbp), %xmm1
- 5550      B0F9FFFF 
- 5551 4603 660FEBC1 		por	%xmm1, %xmm0
- 5552              	.LBE1251:
- 5553              	.LBE1250:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 5554              		.loc 2 870 0
- 5555 4607 F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 5555      D0F8FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 5556              		.loc 2 872 0
- 5557 460f 8B85BCF8 		mov	-1860(%rbp), %eax
- 5557      FFFF
- 5558 4615 48C1E004 		salq	$4, %rax
- 5559 4619 48038598 		addq	-1896(%rbp), %rax
- 5559      F8FFFF
- 5560 4620 660F6F00 		movdqa	(%rax), %xmm0
- 5561 4624 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 5561      D0F9FFFF 
- 5562 462c F30F6F85 		movdqu	-1840(%rbp), %xmm0
- 5562      D0F8FFFF 
- 5563 4634 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 5563      C0F9FFFF 
- 5564 463c F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 5564      D0F9FFFF 
- 5565 4644 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 5565      F0F9FFFF 
- 5566 464c F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 5566      C0F9FFFF 
- 5567 4654 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 5567      E0F9FFFF 
- 5568              	.LBB1252:
- 5569              	.LBB1253:
- 5570              	.LBB1254:
- 5571              	.LBB1255:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5572              		.loc 3 529 0
- 5573 465c F30F6F8D 		movdqu	-1568(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 190
-
-
- 5573      E0F9FFFF 
- 5574 4664 F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 5574      F0F9FFFF 
- 5575 466c 660F3800 		pshufb	%xmm1, %xmm0
- 5575      C1
- 5576              	.LBE1255:
- 5577              	.LBE1254:
- 5578              	.LBE1253:
- 5579              	.LBE1252:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 5580              		.loc 2 872 0
- 5581 4671 F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 5581      D0F8FFFF 
- 5582 4679 F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 5582      C0F8FFFF 
- 5583 4681 F30F7F85 		movdqu	%xmm0, -1520(%rbp)
- 5583      10FAFFFF 
- 5584 4689 F30F6F85 		movdqu	-1840(%rbp), %xmm0
- 5584      D0F8FFFF 
- 5585 4691 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 5585      00FAFFFF 
- 5586              	.LBB1256:
- 5587              	.LBB1257:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 5588              		.loc 2 234 0
- 5589 4699 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 5589      00FAFFFF 
- 5590 46a1 F30F6F8D 		movdqu	-1520(%rbp), %xmm1
- 5590      10FAFFFF 
- 5591 46a9 660FEBC1 		por	%xmm1, %xmm0
- 5592              	.LBE1257:
- 5593              	.LBE1256:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 5594              		.loc 2 874 0
- 5595 46ad F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 5595      C0F8FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 5596              		.loc 2 876 0
- 5597 46b5 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 5597      00000000 
- 5598 46bd F30F6F8D 		movdqu	-1824(%rbp), %xmm1
- 5598      E0F8FFFF 
- 5599 46c5 F30F7F8D 		movdqu	%xmm1, -1488(%rbp)
- 5599      30FAFFFF 
- 5600 46cd F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 5600      20FAFFFF 
- 5601              	.LBB1258:
- 5602              	.LBB1259:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 5603              		.loc 2 290 0
- 5604 46d5 F30F6F8D 		movdqu	-1504(%rbp), %xmm1
- 5604      20FAFFFF 
- 5605 46dd F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 5605      30FAFFFF 
- 5606 46e5 660FF8C1 		psubb	%xmm1, %xmm0
- 5607              	.LBE1259:
- 5608              	.LBE1258:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 191
-
-
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 5609              		.loc 2 876 0
- 5610 46e9 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 5610      E0F8FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5611              		.loc 2 878 0
- 5612 46f1 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 5612      00000000 
- 5613 46f9 F30F6F8D 		movdqu	-1824(%rbp), %xmm1
- 5613      E0F8FFFF 
- 5614 4701 F30F7F8D 		movdqu	%xmm1, -1456(%rbp)
- 5614      50FAFFFF 
- 5615 4709 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 5615      40FAFFFF 
- 5616              	.LBB1260:
- 5617              	.LBB1261:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 5618              		.loc 2 206 0
- 5619 4711 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 5619      40FAFFFF 
- 5620 4719 F30F6F8D 		movdqu	-1456(%rbp), %xmm1
- 5620      50FAFFFF 
- 5621 4721 660FDBC1 		pand	%xmm1, %xmm0
- 5622              	.LBE1261:
- 5623              	.LBE1260:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 5624              		.loc 2 878 0
- 5625 4725 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 5625      E0F8FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 5626              		.loc 2 866 0
- 5627 472d 8385BCF8 		addl	$1, -1860(%rbp)
- 5627      FFFF01
- 5628              	.L84:
- 5629 4734 83BDBCF8 		cmpl	$15, -1860(%rbp)
- 5629      FFFF0F
- 5630 473b 0F8635FE 		jbe	.L85
- 5630      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 5631              		.loc 2 882 0
- 5632 4741 F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 5632      C0F8FFFF 
- 5633              	.LBE1239:
- 5634              	.LBE1238:
- 5635              	.LBE1237:
- 5636              	.LBE1236:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 5637              		.loc 2 1682 0
- 5638 4749 660F7F85 		movdqa	%xmm0, -10736(%rbp)
- 5638      10D6FFFF 
- 5639              	.LBB1262:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 5640              		.loc 2 1683 0
- 5641 4751 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5641      10D6FFFF 
- 5642 4759 F30F7F85 		movdqu	%xmm0, -10064(%rbp)
- 5642      B0D8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 192
-
-
- 5643 4761 E8000000 		call	KDbgWriterGet at PLT
- 5643      00
- 5644 4766 4885C0   		testq	%rax, %rax
- 5645 4769 7479     		je	.L87
- 5646 476b BF010000 		movl	$1, %edi
- 5646      00
- 5647 4770 E8000000 		call	KDbgCondToFlag at PLT
- 5647      00
- 5648 4775 4889C6   		movq	%rax, %rsi
- 5649 4778 BF100000 		movl	$16, %edi
- 5649      00
- 5650 477d E8000000 		call	KDbgTestModConds at PLT
- 5650      00
- 5651 4782 84C0     		testb	%al, %al
- 5652 4784 745E     		je	.L87
- 5653 4786 8B85BCD8 		movl	-10052(%rbp), %eax
- 5653      FFFF
- 5654 478c 89C7     		movl	%eax, %edi
- 5655 478e E86DB8FF 		call	bswap_32
- 5655      FF
- 5656 4793 4189C5   		movl	%eax, %r13d
- 5657 4796 8B85B8D8 		movl	-10056(%rbp), %eax
- 5657      FFFF
- 5658 479c 89C7     		movl	%eax, %edi
- 5659 479e E85DB8FF 		call	bswap_32
- 5659      FF
- 5660 47a3 4189C4   		movl	%eax, %r12d
- 5661 47a6 8B85B4D8 		movl	-10060(%rbp), %eax
- 5661      FFFF
- 5662 47ac 89C7     		movl	%eax, %edi
- 5663 47ae E84DB8FF 		call	bswap_32
- 5663      FF
- 5664 47b3 89C3     		movl	%eax, %ebx
- 5665 47b5 8B85B0D8 		movl	-10064(%rbp), %eax
- 5665      FFFF
- 5666 47bb 89C7     		movl	%eax, %edi
- 5667 47bd E83EB8FF 		call	bswap_32
- 5667      FF
- 5668 47c2 4589E9   		movl	%r13d, %r9d
- 5669 47c5 4589E0   		movl	%r12d, %r8d
- 5670 47c8 89D9     		movl	%ebx, %ecx
- 5671 47ca 89C2     		movl	%eax, %edx
- 5672 47cc 488D3500 		leaq	.LC0(%rip), %rsi
- 5672      000000
- 5673 47d3 488D3D00 		leaq	.LC1(%rip), %rdi
- 5673      000000
- 5674 47da B8000000 		movl	$0, %eax
- 5674      00
- 5675 47df E8000000 		call	KDbgMsg at PLT
- 5675      00
- 5676              	.L87:
- 5677 47e4 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5677      10D6FFFF 
- 5678 47ec F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 5678      60FAFFFF 
- 5679              	.LBE1262:
- 5680              	.LBB1263:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 193
-
-
- 5681              	.LBB1264:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 5682              		.loc 2 667 0
- 5683 47f4 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 5683      00000000 
- 5684 47fc F30F6F8D 		movdqu	-1440(%rbp), %xmm1
- 5684      60FAFFFF 
- 5685 4804 F30F7F8D 		movdqu	%xmm1, -1408(%rbp)
- 5685      80FAFFFF 
- 5686 480c F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 5686      70FAFFFF 
- 5687 4814 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 5687      80FAFFFF 
- 5688 481c F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 5688      A0FAFFFF 
- 5689 4824 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 5689      70FAFFFF 
- 5690 482c F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 5690      90FAFFFF 
- 5691              	.LBB1265:
- 5692              	.LBB1266:
- 5693              	.LBB1267:
- 5694              	.LBB1268:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5695              		.loc 3 529 0
- 5696 4834 F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 5696      90FAFFFF 
- 5697 483c F30F6F85 		movdqu	-1376(%rbp), %xmm0
- 5697      A0FAFFFF 
- 5698 4844 660F3800 		pshufb	%xmm1, %xmm0
- 5698      C1
- 5699              	.LBE1268:
- 5700              	.LBE1267:
- 5701              	.LBE1266:
- 5702              	.LBE1265:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 5703              		.loc 2 667 0
- 5704 4849 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 5704      60FAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5705              		.loc 2 668 0
- 5706 4851 F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 5706      60FAFFFF 
- 5707              	.LBE1264:
- 5708              	.LBE1263:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 5709              		.loc 2 1684 0
- 5710 4859 660F7F85 		movdqa	%xmm0, -10736(%rbp)
- 5710      10D6FFFF 
- 5711              	.LBB1269:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 5712              		.loc 2 1685 0
- 5713 4861 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5713      10D6FFFF 
- 5714 4869 F30F7F85 		movdqu	%xmm0, -10080(%rbp)
- 5714      A0D8FFFF 
- 5715 4871 E8000000 		call	KDbgWriterGet at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 194
-
-
- 5715      00
- 5716 4876 4885C0   		testq	%rax, %rax
- 5717 4879 7479     		je	.L89
- 5718 487b BF010000 		movl	$1, %edi
- 5718      00
- 5719 4880 E8000000 		call	KDbgCondToFlag at PLT
- 5719      00
- 5720 4885 4889C6   		movq	%rax, %rsi
- 5721 4888 BF100000 		movl	$16, %edi
- 5721      00
- 5722 488d E8000000 		call	KDbgTestModConds at PLT
- 5722      00
- 5723 4892 84C0     		testb	%al, %al
- 5724 4894 745E     		je	.L89
- 5725 4896 8B85ACD8 		movl	-10068(%rbp), %eax
- 5725      FFFF
- 5726 489c 89C7     		movl	%eax, %edi
- 5727 489e E85DB7FF 		call	bswap_32
- 5727      FF
- 5728 48a3 4189C5   		movl	%eax, %r13d
- 5729 48a6 8B85A8D8 		movl	-10072(%rbp), %eax
- 5729      FFFF
- 5730 48ac 89C7     		movl	%eax, %edi
- 5731 48ae E84DB7FF 		call	bswap_32
- 5731      FF
- 5732 48b3 4189C4   		movl	%eax, %r12d
- 5733 48b6 8B85A4D8 		movl	-10076(%rbp), %eax
- 5733      FFFF
- 5734 48bc 89C7     		movl	%eax, %edi
- 5735 48be E83DB7FF 		call	bswap_32
- 5735      FF
- 5736 48c3 89C3     		movl	%eax, %ebx
- 5737 48c5 8B85A0D8 		movl	-10080(%rbp), %eax
- 5737      FFFF
- 5738 48cb 89C7     		movl	%eax, %edi
- 5739 48cd E82EB7FF 		call	bswap_32
- 5739      FF
- 5740 48d2 4589E9   		movl	%r13d, %r9d
- 5741 48d5 4589E0   		movl	%r12d, %r8d
- 5742 48d8 89D9     		movl	%ebx, %ecx
- 5743 48da 89C2     		movl	%eax, %edx
- 5744 48dc 488D3500 		leaq	.LC2(%rip), %rsi
- 5744      000000
- 5745 48e3 488D3D00 		leaq	.LC1(%rip), %rdi
- 5745      000000
- 5746 48ea B8000000 		movl	$0, %eax
- 5746      00
- 5747 48ef E8000000 		call	KDbgMsg at PLT
- 5747      00
- 5748              	.L89:
- 5749 48f4 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5749      10D6FFFF 
- 5750 48fc F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 5750      C0FAFFFF 
- 5751 4904 660F6F85 		movdqa	-10720(%rbp), %xmm0
- 5751      20D6FFFF 
- 5752 490c F30F7F85 		movdqu	%xmm0, -1360(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 195
-
-
- 5752      B0FAFFFF 
- 5753              	.LBE1269:
- 5754              	.LBB1270:
- 5755              	.LBB1271:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 5756              		.loc 2 178 0
- 5757 4914 F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 5757      B0FAFFFF 
- 5758 491c F30F6F8D 		movdqu	-1344(%rbp), %xmm1
- 5758      C0FAFFFF 
- 5759 4924 660FEFC1 		pxor	%xmm1, %xmm0
- 5760              	.LBE1271:
- 5761              	.LBE1270:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 5762              		.loc 2 1686 0
- 5763 4928 660F7F85 		movdqa	%xmm0, -10736(%rbp)
- 5763      10D6FFFF 
- 5764              	.LBB1272:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 5765              		.loc 2 1687 0
- 5766 4930 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5766      10D6FFFF 
- 5767 4938 F30F7F85 		movdqu	%xmm0, -10096(%rbp)
- 5767      90D8FFFF 
- 5768 4940 E8000000 		call	KDbgWriterGet at PLT
- 5768      00
- 5769 4945 4885C0   		testq	%rax, %rax
- 5770 4948 7479     		je	.L91
- 5771 494a BF010000 		movl	$1, %edi
- 5771      00
- 5772 494f E8000000 		call	KDbgCondToFlag at PLT
- 5772      00
- 5773 4954 4889C6   		movq	%rax, %rsi
- 5774 4957 BF100000 		movl	$16, %edi
- 5774      00
- 5775 495c E8000000 		call	KDbgTestModConds at PLT
- 5775      00
- 5776 4961 84C0     		testb	%al, %al
- 5777 4963 745E     		je	.L91
- 5778 4965 8B859CD8 		movl	-10084(%rbp), %eax
- 5778      FFFF
- 5779 496b 89C7     		movl	%eax, %edi
- 5780 496d E88EB6FF 		call	bswap_32
- 5780      FF
- 5781 4972 4189C5   		movl	%eax, %r13d
- 5782 4975 8B8598D8 		movl	-10088(%rbp), %eax
- 5782      FFFF
- 5783 497b 89C7     		movl	%eax, %edi
- 5784 497d E87EB6FF 		call	bswap_32
- 5784      FF
- 5785 4982 4189C4   		movl	%eax, %r12d
- 5786 4985 8B8594D8 		movl	-10092(%rbp), %eax
- 5786      FFFF
- 5787 498b 89C7     		movl	%eax, %edi
- 5788 498d E86EB6FF 		call	bswap_32
- 5788      FF
- 5789 4992 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 196
-
-
- 5790 4994 8B8590D8 		movl	-10096(%rbp), %eax
- 5790      FFFF
- 5791 499a 89C7     		movl	%eax, %edi
- 5792 499c E85FB6FF 		call	bswap_32
- 5792      FF
- 5793 49a1 4589E9   		movl	%r13d, %r9d
- 5794 49a4 4589E0   		movl	%r12d, %r8d
- 5795 49a7 89D9     		movl	%ebx, %ecx
- 5796 49a9 89C2     		movl	%eax, %edx
- 5797 49ab 488D3500 		leaq	.LC3(%rip), %rsi
- 5797      000000
- 5798 49b2 488D3D00 		leaq	.LC1(%rip), %rdi
- 5798      000000
- 5799 49b9 B8000000 		movl	$0, %eax
- 5799      00
- 5800 49be E8000000 		call	KDbgMsg at PLT
- 5800      00
- 5801              	.L91:
- 5802 49c3 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5802      10D6FFFF 
- 5803 49cb F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 5803      D0FAFFFF 
- 5804 49d3 F30F6F85 		movdqu	-1328(%rbp), %xmm0
- 5804      D0FAFFFF 
- 5805 49db F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 5805      F0FAFFFF 
- 5806              	.LBE1272:
- 5807              	.LBB1273:
- 5808              	.LBB1274:
- 5809              	.LBB1275:
- 5810              	.LBB1276:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 5811              		.loc 3 450 0
- 5812 49e3 F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 5812      F0FAFFFF 
- 5813 49eb 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 5813      FF
- 5814              	.LBE1276:
- 5815              	.LBE1275:
- 5816              	.LBE1274:
- 5817              	.LBE1273:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 5818              		.loc 2 1688 0
- 5819 49f0 660F7F85 		movdqa	%xmm0, -10736(%rbp)
- 5819      10D6FFFF 
- 5820              	.LBB1277:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 5821              		.loc 2 1689 0
- 5822 49f8 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5822      10D6FFFF 
- 5823 4a00 F30F7F85 		movdqu	%xmm0, -10112(%rbp)
- 5823      80D8FFFF 
- 5824 4a08 E8000000 		call	KDbgWriterGet at PLT
- 5824      00
- 5825 4a0d 4885C0   		testq	%rax, %rax
- 5826 4a10 7479     		je	.L93
- 5827 4a12 BF010000 		movl	$1, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 197
-
-
- 5827      00
- 5828 4a17 E8000000 		call	KDbgCondToFlag at PLT
- 5828      00
- 5829 4a1c 4889C6   		movq	%rax, %rsi
- 5830 4a1f BF100000 		movl	$16, %edi
- 5830      00
- 5831 4a24 E8000000 		call	KDbgTestModConds at PLT
- 5831      00
- 5832 4a29 84C0     		testb	%al, %al
- 5833 4a2b 745E     		je	.L93
- 5834 4a2d 8B858CD8 		movl	-10100(%rbp), %eax
- 5834      FFFF
- 5835 4a33 89C7     		movl	%eax, %edi
- 5836 4a35 E8C6B5FF 		call	bswap_32
- 5836      FF
- 5837 4a3a 4189C5   		movl	%eax, %r13d
- 5838 4a3d 8B8588D8 		movl	-10104(%rbp), %eax
- 5838      FFFF
- 5839 4a43 89C7     		movl	%eax, %edi
- 5840 4a45 E8B6B5FF 		call	bswap_32
- 5840      FF
- 5841 4a4a 4189C4   		movl	%eax, %r12d
- 5842 4a4d 8B8584D8 		movl	-10108(%rbp), %eax
- 5842      FFFF
- 5843 4a53 89C7     		movl	%eax, %edi
- 5844 4a55 E8A6B5FF 		call	bswap_32
- 5844      FF
- 5845 4a5a 89C3     		movl	%eax, %ebx
- 5846 4a5c 8B8580D8 		movl	-10112(%rbp), %eax
- 5846      FFFF
- 5847 4a62 89C7     		movl	%eax, %edi
- 5848 4a64 E897B5FF 		call	bswap_32
- 5848      FF
- 5849 4a69 4589E9   		movl	%r13d, %r9d
- 5850 4a6c 4589E0   		movl	%r12d, %r8d
- 5851 4a6f 89D9     		movl	%ebx, %ecx
- 5852 4a71 89C2     		movl	%eax, %edx
- 5853 4a73 488D3500 		leaq	.LC4(%rip), %rsi
- 5853      000000
- 5854 4a7a 488D3D00 		leaq	.LC1(%rip), %rdi
- 5854      000000
- 5855 4a81 B8000000 		movl	$0, %eax
- 5855      00
- 5856 4a86 E8000000 		call	KDbgMsg at PLT
- 5856      00
- 5857              	.L93:
- 5858              	.LBE1277:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 5859              		.loc 2 1690 0
- 5860 4a8b 660F6F85 		movdqa	-10736(%rbp), %xmm0
- 5860      10D6FFFF 
- 5861              	.LBE1231:
- 5862              	.LBE1230:
-1752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x1B,9);
- 5863              		.loc 2 1752 0
- 5864 4a93 F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 5864      10D9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 198
-
-
- 5865 4a9b F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 5865      00D9FFFF 
- 5866 4aa3 F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 5866      00FBFFFF 
- 5867              	.LBB1278:
- 5868              	.LBB1279:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 5869              		.loc 2 1565 0
- 5870 4aab F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 5870      00FBFFFF 
- 5871 4ab3 660F7F85 		movdqa	%xmm0, -10704(%rbp)
- 5871      30D6FFFF 
- 5872 4abb 660F6F85 		movdqa	-10704(%rbp), %xmm0
- 5872      30D6FFFF 
- 5873 4ac3 F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 5873      10FBFFFF 
- 5874              	.LBB1280:
- 5875              	.LBB1281:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5876              		.loc 2 1278 0
- 5877 4acb 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 5877      00000000 
- 5878 4ad3 F30F6F8D 		movdqu	-1264(%rbp), %xmm1
- 5878      10FBFFFF 
- 5879 4adb F30F7F8D 		movdqu	%xmm1, -1232(%rbp)
- 5879      30FBFFFF 
- 5880 4ae3 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 5880      20FBFFFF 
- 5881 4aeb F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 5881      30FBFFFF 
- 5882 4af3 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 5882      50FBFFFF 
- 5883 4afb F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 5883      20FBFFFF 
- 5884 4b03 F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 5884      40FBFFFF 
- 5885              	.LBB1282:
- 5886              	.LBB1283:
- 5887              	.LBB1284:
- 5888              	.LBB1285:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5889              		.loc 3 529 0
- 5890 4b0b F30F6F8D 		movdqu	-1216(%rbp), %xmm1
- 5890      40FBFFFF 
- 5891 4b13 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 5891      50FBFFFF 
- 5892 4b1b 660F3800 		pshufb	%xmm1, %xmm0
- 5892      C1
- 5893              	.LBE1285:
- 5894              	.LBE1284:
- 5895              	.LBE1283:
- 5896              	.LBE1282:
- 5897              	.LBE1281:
- 5898              	.LBE1280:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5899              		.loc 2 1567 0
- 5900 4b20 660F7F85 		movdqa	%xmm0, -10704(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 199
-
-
- 5900      30D6FFFF 
- 5901 4b28 660F6F85 		movdqa	-10704(%rbp), %xmm0
- 5901      30D6FFFF 
- 5902 4b30 660FEF85 		pxor	-1280(%rbp), %xmm0
- 5902      00FBFFFF 
- 5903 4b38 F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 5903      00FBFFFF 
- 5904 4b40 660F6F85 		movdqa	-10704(%rbp), %xmm0
- 5904      30D6FFFF 
- 5905 4b48 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 5905      60FBFFFF 
- 5906              	.LBB1286:
- 5907              	.LBB1287:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5908              		.loc 2 1278 0
- 5909 4b50 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 5909      00000000 
- 5910 4b58 F30F6F8D 		movdqu	-1184(%rbp), %xmm1
- 5910      60FBFFFF 
- 5911 4b60 F30F7F8D 		movdqu	%xmm1, -1152(%rbp)
- 5911      80FBFFFF 
- 5912 4b68 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 5912      70FBFFFF 
- 5913 4b70 F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 5913      80FBFFFF 
- 5914 4b78 F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 5914      A0FBFFFF 
- 5915 4b80 F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 5915      70FBFFFF 
- 5916 4b88 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 5916      90FBFFFF 
- 5917              	.LBB1288:
- 5918              	.LBB1289:
- 5919              	.LBB1290:
- 5920              	.LBB1291:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5921              		.loc 3 529 0
- 5922 4b90 F30F6F8D 		movdqu	-1136(%rbp), %xmm1
- 5922      90FBFFFF 
- 5923 4b98 F30F6F85 		movdqu	-1120(%rbp), %xmm0
- 5923      A0FBFFFF 
- 5924 4ba0 660F3800 		pshufb	%xmm1, %xmm0
- 5924      C1
- 5925              	.LBE1291:
- 5926              	.LBE1290:
- 5927              	.LBE1289:
- 5928              	.LBE1288:
- 5929              	.LBE1287:
- 5930              	.LBE1286:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5931              		.loc 2 1568 0
- 5932 4ba5 660F7F85 		movdqa	%xmm0, -10704(%rbp)
- 5932      30D6FFFF 
- 5933 4bad 660F6F85 		movdqa	-10704(%rbp), %xmm0
- 5933      30D6FFFF 
- 5934 4bb5 660FEF85 		pxor	-1280(%rbp), %xmm0
- 5934      00FBFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 200
-
-
- 5935 4bbd F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 5935      00FBFFFF 
- 5936 4bc5 660F6F85 		movdqa	-10704(%rbp), %xmm0
- 5936      30D6FFFF 
- 5937 4bcd F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 5937      B0FBFFFF 
- 5938              	.LBB1292:
- 5939              	.LBB1293:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 5940              		.loc 2 1278 0
- 5941 4bd5 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 5941      00000000 
- 5942 4bdd F30F6F8D 		movdqu	-1104(%rbp), %xmm1
- 5942      B0FBFFFF 
- 5943 4be5 F30F7F8D 		movdqu	%xmm1, -1072(%rbp)
- 5943      D0FBFFFF 
- 5944 4bed F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 5944      C0FBFFFF 
- 5945 4bf5 F30F6F85 		movdqu	-1072(%rbp), %xmm0
- 5945      D0FBFFFF 
- 5946 4bfd F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 5946      F0FBFFFF 
- 5947 4c05 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 5947      C0FBFFFF 
- 5948 4c0d F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 5948      E0FBFFFF 
- 5949              	.LBB1294:
- 5950              	.LBB1295:
- 5951              	.LBB1296:
- 5952              	.LBB1297:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 5953              		.loc 3 529 0
- 5954 4c15 F30F6F8D 		movdqu	-1056(%rbp), %xmm1
- 5954      E0FBFFFF 
- 5955 4c1d F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 5955      F0FBFFFF 
- 5956 4c25 660F3800 		pshufb	%xmm1, %xmm0
- 5956      C1
- 5957              	.LBE1297:
- 5958              	.LBE1296:
- 5959              	.LBE1295:
- 5960              	.LBE1294:
- 5961              	.LBE1293:
- 5962              	.LBE1292:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 5963              		.loc 2 1569 0
- 5964 4c2a 660F7F85 		movdqa	%xmm0, -10704(%rbp)
- 5964      30D6FFFF 
- 5965 4c32 660F6F85 		movdqa	-10704(%rbp), %xmm0
- 5965      30D6FFFF 
- 5966 4c3a 660FEF85 		pxor	-1280(%rbp), %xmm0
- 5966      00FBFFFF 
- 5967 4c42 F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 5967      00FBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 5968              		.loc 2 1571 0
- 5969 4c4a F30F6F85 		movdqu	-1280(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 201
-
-
- 5969      00FBFFFF 
- 5970              	.LBE1279:
- 5971              	.LBE1278:
- 5972              		.loc 2 1752 0
- 5973 4c52 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 5973      00D9FFFF 
- 5974 4c5a F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 5974      10D9FFFF 
- 5975 4c62 F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 5975      00D9FFFF 
- 5976 4c6a 660FEFC1 		pxor	%xmm1, %xmm0
- 5977 4c6e F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 5977      00D9FFFF 
- 5978 4c76 488B8578 		movq	-10632(%rbp), %rax
- 5978      D6FFFF
- 5979 4c7d 48059000 		addq	$144, %rax
- 5979      0000
- 5980 4c83 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 5980      00D9FFFF 
- 5981 4c8b F30F7F00 		movdqu	%xmm0, (%rax)
- 5982 4c8f F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 5982      00D9FFFF 
- 5983 4c97 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 5983      10FCFFFF 
- 5984              	.LBB1298:
- 5985              	.LBB1299:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 5986              		.loc 2 1681 0
- 5987 4c9f B8360000 		movl	$54, %eax
- 5987      00
- 5988 4ca4 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 5988      00000000 
- 5989 4cac F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 5989      30FCFFFF 
- 5990 4cb4 89852CFC 		movl	%eax, -980(%rbp)
- 5990      FFFF
- 5991 4cba F30F6F85 		movdqu	-976(%rbp), %xmm0
- 5991      30FCFFFF 
- 5992 4cc2 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 5992      50FCFFFF 
- 5993 4cca 8B852CFC 		movl	-980(%rbp), %eax
- 5993      FFFF
- 5994 4cd0 89854CFC 		movl	%eax, -948(%rbp)
- 5994      FFFF
- 5995              	.LBB1300:
- 5996              	.LBB1301:
- 5997              	.LBB1302:
- 5998              	.LBB1303:
- 5999              		.loc 3 598 0
- 6000 4cd6 8B854CFC 		movl	-948(%rbp), %eax
- 6000      FFFF
- 6001 4cdc F30F6F85 		movdqu	-944(%rbp), %xmm0
- 6001      50FCFFFF 
- 6002 4ce4 660F3A22 		pinsrd	$3, %eax, %xmm0
- 6002      C003
- 6003              	.LBE1303:
- 6004              	.LBE1302:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 202
-
-
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 6005              		.loc 2 519 0
- 6006 4cea F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 6006      30FCFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6007              		.loc 2 526 0
- 6008 4cf2 F30F6F85 		movdqu	-976(%rbp), %xmm0
- 6008      30FCFFFF 
- 6009              	.LBE1301:
- 6010              	.LBE1300:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 6011              		.loc 2 1681 0
- 6012 4cfa 660F7F85 		movdqa	%xmm0, -10672(%rbp)
- 6012      50D6FFFF 
- 6013 4d02 F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 6013      10FCFFFF 
- 6014 4d0a F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 6014      60FCFFFF 
- 6015 4d12 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 6015      60FCFFFF 
- 6016 4d1a F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 6016      80FCFFFF 
- 6017 4d22 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 6017      000000
- 6018 4d29 48898578 		movq	%rax, -904(%rbp)
- 6018      FCFFFF
- 6019              	.LBB1304:
- 6020              	.LBB1305:
- 6021              	.LBB1306:
- 6022              	.LBB1307:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 6023              		.loc 2 851 0
- 6024 4d30 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 6024      00000000 
- 6025 4d38 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 6025      A0FCFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 6026              		.loc 2 854 0
- 6027 4d40 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 6027      00000000 
- 6028 4d48 F30F6F8D 		movdqu	-896(%rbp), %xmm1
- 6028      80FCFFFF 
- 6029 4d50 F30F7F8D 		movdqu	%xmm1, -784(%rbp)
- 6029      F0FCFFFF 
- 6030 4d58 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 6030      E0FCFFFF 
- 6031              	.LBB1308:
- 6032              	.LBB1309:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 6033              		.loc 2 206 0
- 6034 4d60 F30F6F85 		movdqu	-800(%rbp), %xmm0
- 6034      E0FCFFFF 
- 6035 4d68 F30F6F8D 		movdqu	-784(%rbp), %xmm1
- 6035      F0FCFFFF 
- 6036 4d70 660FDBC1 		pand	%xmm1, %xmm0
- 6037              	.LBE1309:
- 6038              	.LBE1308:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 203
-
-
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 6039              		.loc 2 854 0
- 6040 4d74 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 6040      D0FCFFFF 
- 6041 4d7c F30F6F85 		movdqu	-896(%rbp), %xmm0
- 6041      80FCFFFF 
- 6042 4d84 F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 6042      10FDFFFF 
- 6043              	.LBB1310:
- 6044              	.LBB1311:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 6045              		.loc 3 433 0
- 6046 4d8c F30F6F85 		movdqu	-752(%rbp), %xmm0
- 6046      10FDFFFF 
- 6047 4d94 660F72D0 		psrld	$4, %xmm0
- 6047      04
- 6048              	.LBE1311:
- 6049              	.LBE1310:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 6050              		.loc 2 857 0
- 6051 4d99 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 6051      C0FCFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 6052              		.loc 2 859 0
- 6053 4da1 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 6053      00000000 
- 6054 4da9 F30F6F8D 		movdqu	-832(%rbp), %xmm1
- 6054      C0FCFFFF 
- 6055 4db1 F30F7F8D 		movdqu	%xmm1, -720(%rbp)
- 6055      30FDFFFF 
- 6056 4db9 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 6056      20FDFFFF 
- 6057              	.LBB1312:
- 6058              	.LBB1313:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 6059              		.loc 2 206 0
- 6060 4dc1 F30F6F85 		movdqu	-736(%rbp), %xmm0
- 6060      20FDFFFF 
- 6061 4dc9 F30F6F8D 		movdqu	-720(%rbp), %xmm1
- 6061      30FDFFFF 
- 6062 4dd1 660FDBC1 		pand	%xmm1, %xmm0
- 6063              	.LBE1313:
- 6064              	.LBE1312:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 6065              		.loc 2 859 0
- 6066 4dd5 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 6066      C0FCFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 6067              		.loc 2 866 0
- 6068 4ddd C7859CFC 		movl	$0, -868(%rbp)
- 6068      FFFF0000 
- 6068      0000
- 6069 4de7 E9BE0100 		jmp	.L94
- 6069      00
- 6070              	.L95:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 6071              		.loc 2 868 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 204
-
-
- 6072 4dec 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 6072      00000000 
- 6073 4df4 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 6073      50FDFFFF 
- 6074 4dfc F30F6F85 		movdqu	-832(%rbp), %xmm0
- 6074      C0FCFFFF 
- 6075 4e04 F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 6075      40FDFFFF 
- 6076 4e0c F30F6F85 		movdqu	-688(%rbp), %xmm0
- 6076      50FDFFFF 
- 6077 4e14 F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 6077      70FDFFFF 
- 6078 4e1c F30F6F85 		movdqu	-704(%rbp), %xmm0
- 6078      40FDFFFF 
- 6079 4e24 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 6079      60FDFFFF 
- 6080              	.LBB1314:
- 6081              	.LBB1315:
- 6082              	.LBB1316:
- 6083              	.LBB1317:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6084              		.loc 3 529 0
- 6085 4e2c F30F6F8D 		movdqu	-672(%rbp), %xmm1
- 6085      60FDFFFF 
- 6086 4e34 F30F6F85 		movdqu	-656(%rbp), %xmm0
- 6086      70FDFFFF 
- 6087 4e3c 660F3800 		pshufb	%xmm1, %xmm0
- 6087      C1
- 6088              	.LBE1317:
- 6089              	.LBE1316:
- 6090              	.LBE1315:
- 6091              	.LBE1314:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 6092              		.loc 2 868 0
- 6093 4e41 F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 6093      B0FCFFFF 
- 6094 4e49 F30F6F85 		movdqu	-816(%rbp), %xmm0
- 6094      D0FCFFFF 
- 6095 4e51 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 6095      90FDFFFF 
- 6096 4e59 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 6096      B0FCFFFF 
- 6097 4e61 F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 6097      80FDFFFF 
- 6098              	.LBB1318:
- 6099              	.LBB1319:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 6100              		.loc 2 234 0
- 6101 4e69 F30F6F85 		movdqu	-640(%rbp), %xmm0
- 6101      80FDFFFF 
- 6102 4e71 F30F6F8D 		movdqu	-624(%rbp), %xmm1
- 6102      90FDFFFF 
- 6103 4e79 660FEBC1 		por	%xmm1, %xmm0
- 6104              	.LBE1319:
- 6105              	.LBE1318:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 6106              		.loc 2 870 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 205
-
-
- 6107 4e7d F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 6107      B0FCFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 6108              		.loc 2 872 0
- 6109 4e85 8B859CFC 		mov	-868(%rbp), %eax
- 6109      FFFF
- 6110 4e8b 48C1E004 		salq	$4, %rax
- 6111 4e8f 48038578 		addq	-904(%rbp), %rax
- 6111      FCFFFF
- 6112 4e96 660F6F00 		movdqa	(%rax), %xmm0
- 6113 4e9a F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 6113      B0FDFFFF 
- 6114 4ea2 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 6114      B0FCFFFF 
- 6115 4eaa F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 6115      A0FDFFFF 
- 6116 4eb2 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 6116      B0FDFFFF 
- 6117 4eba F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 6117      D0FDFFFF 
- 6118 4ec2 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 6118      A0FDFFFF 
- 6119 4eca F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 6119      C0FDFFFF 
- 6120              	.LBB1320:
- 6121              	.LBB1321:
- 6122              	.LBB1322:
- 6123              	.LBB1323:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6124              		.loc 3 529 0
- 6125 4ed2 F30F6F8D 		movdqu	-576(%rbp), %xmm1
- 6125      C0FDFFFF 
- 6126 4eda F30F6F85 		movdqu	-560(%rbp), %xmm0
- 6126      D0FDFFFF 
- 6127 4ee2 660F3800 		pshufb	%xmm1, %xmm0
- 6127      C1
- 6128              	.LBE1323:
- 6129              	.LBE1322:
- 6130              	.LBE1321:
- 6131              	.LBE1320:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 6132              		.loc 2 872 0
- 6133 4ee7 F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 6133      B0FCFFFF 
- 6134 4eef F30F6F85 		movdqu	-864(%rbp), %xmm0
- 6134      A0FCFFFF 
- 6135 4ef7 F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 6135      F0FDFFFF 
- 6136 4eff F30F6F85 		movdqu	-848(%rbp), %xmm0
- 6136      B0FCFFFF 
- 6137 4f07 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 6137      E0FDFFFF 
- 6138              	.LBB1324:
- 6139              	.LBB1325:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 6140              		.loc 2 234 0
- 6141 4f0f F30F6F85 		movdqu	-544(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 206
-
-
- 6141      E0FDFFFF 
- 6142 4f17 F30F6F8D 		movdqu	-528(%rbp), %xmm1
- 6142      F0FDFFFF 
- 6143 4f1f 660FEBC1 		por	%xmm1, %xmm0
- 6144              	.LBE1325:
- 6145              	.LBE1324:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 6146              		.loc 2 874 0
- 6147 4f23 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 6147      A0FCFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 6148              		.loc 2 876 0
- 6149 4f2b 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 6149      00000000 
- 6150 4f33 F30F6F8D 		movdqu	-832(%rbp), %xmm1
- 6150      C0FCFFFF 
- 6151 4f3b F30F7F8D 		movdqu	%xmm1, -496(%rbp)
- 6151      10FEFFFF 
- 6152 4f43 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 6152      00FEFFFF 
- 6153              	.LBB1326:
- 6154              	.LBB1327:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 6155              		.loc 2 290 0
- 6156 4f4b F30F6F8D 		movdqu	-512(%rbp), %xmm1
- 6156      00FEFFFF 
- 6157 4f53 F30F6F85 		movdqu	-496(%rbp), %xmm0
- 6157      10FEFFFF 
- 6158 4f5b 660FF8C1 		psubb	%xmm1, %xmm0
- 6159              	.LBE1327:
- 6160              	.LBE1326:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 6161              		.loc 2 876 0
- 6162 4f5f F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 6162      C0FCFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 6163              		.loc 2 878 0
- 6164 4f67 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 6164      00000000 
- 6165 4f6f F30F6F8D 		movdqu	-832(%rbp), %xmm1
- 6165      C0FCFFFF 
- 6166 4f77 F30F7F8D 		movdqu	%xmm1, -464(%rbp)
- 6166      30FEFFFF 
- 6167 4f7f F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 6167      20FEFFFF 
- 6168              	.LBB1328:
- 6169              	.LBB1329:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 6170              		.loc 2 206 0
- 6171 4f87 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 6171      20FEFFFF 
- 6172 4f8f F30F6F8D 		movdqu	-464(%rbp), %xmm1
- 6172      30FEFFFF 
- 6173 4f97 660FDBC1 		pand	%xmm1, %xmm0
- 6174              	.LBE1329:
- 6175              	.LBE1328:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 207
-
-
- 6176              		.loc 2 878 0
- 6177 4f9b F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 6177      C0FCFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 6178              		.loc 2 866 0
- 6179 4fa3 83859CFC 		addl	$1, -868(%rbp)
- 6179      FFFF01
- 6180              	.L94:
- 6181 4faa 83BD9CFC 		cmpl	$15, -868(%rbp)
- 6181      FFFF0F
- 6182 4fb1 0F8635FE 		jbe	.L95
- 6182      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 6183              		.loc 2 882 0
- 6184 4fb7 F30F6F85 		movdqu	-864(%rbp), %xmm0
- 6184      A0FCFFFF 
- 6185              	.LBE1307:
- 6186              	.LBE1306:
- 6187              	.LBE1305:
- 6188              	.LBE1304:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 6189              		.loc 2 1682 0
- 6190 4fbf 660F7F85 		movdqa	%xmm0, -10688(%rbp)
- 6190      40D6FFFF 
- 6191              	.LBB1330:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 6192              		.loc 2 1683 0
- 6193 4fc7 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6193      40D6FFFF 
- 6194 4fcf F30F7F85 		movdqu	%xmm0, -10000(%rbp)
- 6194      F0D8FFFF 
- 6195 4fd7 E8000000 		call	KDbgWriterGet at PLT
- 6195      00
- 6196 4fdc 4885C0   		testq	%rax, %rax
- 6197 4fdf 7479     		je	.L97
- 6198 4fe1 BF010000 		movl	$1, %edi
- 6198      00
- 6199 4fe6 E8000000 		call	KDbgCondToFlag at PLT
- 6199      00
- 6200 4feb 4889C6   		movq	%rax, %rsi
- 6201 4fee BF100000 		movl	$16, %edi
- 6201      00
- 6202 4ff3 E8000000 		call	KDbgTestModConds at PLT
- 6202      00
- 6203 4ff8 84C0     		testb	%al, %al
- 6204 4ffa 745E     		je	.L97
- 6205 4ffc 8B85FCD8 		movl	-9988(%rbp), %eax
- 6205      FFFF
- 6206 5002 89C7     		movl	%eax, %edi
- 6207 5004 E8F7AFFF 		call	bswap_32
- 6207      FF
- 6208 5009 4189C5   		movl	%eax, %r13d
- 6209 500c 8B85F8D8 		movl	-9992(%rbp), %eax
- 6209      FFFF
- 6210 5012 89C7     		movl	%eax, %edi
- 6211 5014 E8E7AFFF 		call	bswap_32
- 6211      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 208
-
-
- 6212 5019 4189C4   		movl	%eax, %r12d
- 6213 501c 8B85F4D8 		movl	-9996(%rbp), %eax
- 6213      FFFF
- 6214 5022 89C7     		movl	%eax, %edi
- 6215 5024 E8D7AFFF 		call	bswap_32
- 6215      FF
- 6216 5029 89C3     		movl	%eax, %ebx
- 6217 502b 8B85F0D8 		movl	-10000(%rbp), %eax
- 6217      FFFF
- 6218 5031 89C7     		movl	%eax, %edi
- 6219 5033 E8C8AFFF 		call	bswap_32
- 6219      FF
- 6220 5038 4589E9   		movl	%r13d, %r9d
- 6221 503b 4589E0   		movl	%r12d, %r8d
- 6222 503e 89D9     		movl	%ebx, %ecx
- 6223 5040 89C2     		movl	%eax, %edx
- 6224 5042 488D3500 		leaq	.LC0(%rip), %rsi
- 6224      000000
- 6225 5049 488D3D00 		leaq	.LC1(%rip), %rdi
- 6225      000000
- 6226 5050 B8000000 		movl	$0, %eax
- 6226      00
- 6227 5055 E8000000 		call	KDbgMsg at PLT
- 6227      00
- 6228              	.L97:
- 6229 505a 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6229      40D6FFFF 
- 6230 5062 F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 6230      40FEFFFF 
- 6231              	.LBE1330:
- 6232              	.LBB1331:
- 6233              	.LBB1332:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 6234              		.loc 2 667 0
- 6235 506a 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 6235      00000000 
- 6236 5072 F30F6F8D 		movdqu	-448(%rbp), %xmm1
- 6236      40FEFFFF 
- 6237 507a F30F7F8D 		movdqu	%xmm1, -416(%rbp)
- 6237      60FEFFFF 
- 6238 5082 F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 6238      50FEFFFF 
- 6239 508a F30F6F85 		movdqu	-416(%rbp), %xmm0
- 6239      60FEFFFF 
- 6240 5092 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 6240      80FEFFFF 
- 6241 509a F30F6F85 		movdqu	-432(%rbp), %xmm0
- 6241      50FEFFFF 
- 6242 50a2 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 6242      70FEFFFF 
- 6243              	.LBB1333:
- 6244              	.LBB1334:
- 6245              	.LBB1335:
- 6246              	.LBB1336:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6247              		.loc 3 529 0
- 6248 50aa F30F6F8D 		movdqu	-400(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 209
-
-
- 6248      70FEFFFF 
- 6249 50b2 F30F6F85 		movdqu	-384(%rbp), %xmm0
- 6249      80FEFFFF 
- 6250 50ba 660F3800 		pshufb	%xmm1, %xmm0
- 6250      C1
- 6251              	.LBE1336:
- 6252              	.LBE1335:
- 6253              	.LBE1334:
- 6254              	.LBE1333:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 6255              		.loc 2 667 0
- 6256 50bf F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 6256      40FEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6257              		.loc 2 668 0
- 6258 50c7 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 6258      40FEFFFF 
- 6259              	.LBE1332:
- 6260              	.LBE1331:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 6261              		.loc 2 1684 0
- 6262 50cf 660F7F85 		movdqa	%xmm0, -10688(%rbp)
- 6262      40D6FFFF 
- 6263              	.LBB1337:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 6264              		.loc 2 1685 0
- 6265 50d7 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6265      40D6FFFF 
- 6266 50df F30F7F85 		movdqu	%xmm0, -10016(%rbp)
- 6266      E0D8FFFF 
- 6267 50e7 E8000000 		call	KDbgWriterGet at PLT
- 6267      00
- 6268 50ec 4885C0   		testq	%rax, %rax
- 6269 50ef 7479     		je	.L99
- 6270 50f1 BF010000 		movl	$1, %edi
- 6270      00
- 6271 50f6 E8000000 		call	KDbgCondToFlag at PLT
- 6271      00
- 6272 50fb 4889C6   		movq	%rax, %rsi
- 6273 50fe BF100000 		movl	$16, %edi
- 6273      00
- 6274 5103 E8000000 		call	KDbgTestModConds at PLT
- 6274      00
- 6275 5108 84C0     		testb	%al, %al
- 6276 510a 745E     		je	.L99
- 6277 510c 8B85ECD8 		movl	-10004(%rbp), %eax
- 6277      FFFF
- 6278 5112 89C7     		movl	%eax, %edi
- 6279 5114 E8E7AEFF 		call	bswap_32
- 6279      FF
- 6280 5119 4189C5   		movl	%eax, %r13d
- 6281 511c 8B85E8D8 		movl	-10008(%rbp), %eax
- 6281      FFFF
- 6282 5122 89C7     		movl	%eax, %edi
- 6283 5124 E8D7AEFF 		call	bswap_32
- 6283      FF
- 6284 5129 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 210
-
-
- 6285 512c 8B85E4D8 		movl	-10012(%rbp), %eax
- 6285      FFFF
- 6286 5132 89C7     		movl	%eax, %edi
- 6287 5134 E8C7AEFF 		call	bswap_32
- 6287      FF
- 6288 5139 89C3     		movl	%eax, %ebx
- 6289 513b 8B85E0D8 		movl	-10016(%rbp), %eax
- 6289      FFFF
- 6290 5141 89C7     		movl	%eax, %edi
- 6291 5143 E8B8AEFF 		call	bswap_32
- 6291      FF
- 6292 5148 4589E9   		movl	%r13d, %r9d
- 6293 514b 4589E0   		movl	%r12d, %r8d
- 6294 514e 89D9     		movl	%ebx, %ecx
- 6295 5150 89C2     		movl	%eax, %edx
- 6296 5152 488D3500 		leaq	.LC2(%rip), %rsi
- 6296      000000
- 6297 5159 488D3D00 		leaq	.LC1(%rip), %rdi
- 6297      000000
- 6298 5160 B8000000 		movl	$0, %eax
- 6298      00
- 6299 5165 E8000000 		call	KDbgMsg at PLT
- 6299      00
- 6300              	.L99:
- 6301 516a 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6301      40D6FFFF 
- 6302 5172 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 6302      A0FEFFFF 
- 6303 517a 660F6F85 		movdqa	-10672(%rbp), %xmm0
- 6303      50D6FFFF 
- 6304 5182 F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 6304      90FEFFFF 
- 6305              	.LBE1337:
- 6306              	.LBB1338:
- 6307              	.LBB1339:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 6308              		.loc 2 178 0
- 6309 518a F30F6F85 		movdqu	-368(%rbp), %xmm0
- 6309      90FEFFFF 
- 6310 5192 F30F6F8D 		movdqu	-352(%rbp), %xmm1
- 6310      A0FEFFFF 
- 6311 519a 660FEFC1 		pxor	%xmm1, %xmm0
- 6312              	.LBE1339:
- 6313              	.LBE1338:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 6314              		.loc 2 1686 0
- 6315 519e 660F7F85 		movdqa	%xmm0, -10688(%rbp)
- 6315      40D6FFFF 
- 6316              	.LBB1340:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 6317              		.loc 2 1687 0
- 6318 51a6 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6318      40D6FFFF 
- 6319 51ae F30F7F85 		movdqu	%xmm0, -10032(%rbp)
- 6319      D0D8FFFF 
- 6320 51b6 E8000000 		call	KDbgWriterGet at PLT
- 6320      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 211
-
-
- 6321 51bb 4885C0   		testq	%rax, %rax
- 6322 51be 7479     		je	.L101
- 6323 51c0 BF010000 		movl	$1, %edi
- 6323      00
- 6324 51c5 E8000000 		call	KDbgCondToFlag at PLT
- 6324      00
- 6325 51ca 4889C6   		movq	%rax, %rsi
- 6326 51cd BF100000 		movl	$16, %edi
- 6326      00
- 6327 51d2 E8000000 		call	KDbgTestModConds at PLT
- 6327      00
- 6328 51d7 84C0     		testb	%al, %al
- 6329 51d9 745E     		je	.L101
- 6330 51db 8B85DCD8 		movl	-10020(%rbp), %eax
- 6330      FFFF
- 6331 51e1 89C7     		movl	%eax, %edi
- 6332 51e3 E818AEFF 		call	bswap_32
- 6332      FF
- 6333 51e8 4189C5   		movl	%eax, %r13d
- 6334 51eb 8B85D8D8 		movl	-10024(%rbp), %eax
- 6334      FFFF
- 6335 51f1 89C7     		movl	%eax, %edi
- 6336 51f3 E808AEFF 		call	bswap_32
- 6336      FF
- 6337 51f8 4189C4   		movl	%eax, %r12d
- 6338 51fb 8B85D4D8 		movl	-10028(%rbp), %eax
- 6338      FFFF
- 6339 5201 89C7     		movl	%eax, %edi
- 6340 5203 E8F8ADFF 		call	bswap_32
- 6340      FF
- 6341 5208 89C3     		movl	%eax, %ebx
- 6342 520a 8B85D0D8 		movl	-10032(%rbp), %eax
- 6342      FFFF
- 6343 5210 89C7     		movl	%eax, %edi
- 6344 5212 E8E9ADFF 		call	bswap_32
- 6344      FF
- 6345 5217 4589E9   		movl	%r13d, %r9d
- 6346 521a 4589E0   		movl	%r12d, %r8d
- 6347 521d 89D9     		movl	%ebx, %ecx
- 6348 521f 89C2     		movl	%eax, %edx
- 6349 5221 488D3500 		leaq	.LC3(%rip), %rsi
- 6349      000000
- 6350 5228 488D3D00 		leaq	.LC1(%rip), %rdi
- 6350      000000
- 6351 522f B8000000 		movl	$0, %eax
- 6351      00
- 6352 5234 E8000000 		call	KDbgMsg at PLT
- 6352      00
- 6353              	.L101:
- 6354 5239 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6354      40D6FFFF 
- 6355 5241 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 6355      B0FEFFFF 
- 6356 5249 F30F6F85 		movdqu	-336(%rbp), %xmm0
- 6356      B0FEFFFF 
- 6357 5251 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 6357      D0FEFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 212
-
-
- 6358              	.LBE1340:
- 6359              	.LBB1341:
- 6360              	.LBB1342:
- 6361              	.LBB1343:
- 6362              	.LBB1344:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6363              		.loc 3 450 0
- 6364 5259 F30F6F85 		movdqu	-304(%rbp), %xmm0
- 6364      D0FEFFFF 
- 6365 5261 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 6365      FF
- 6366              	.LBE1344:
- 6367              	.LBE1343:
- 6368              	.LBE1342:
- 6369              	.LBE1341:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 6370              		.loc 2 1688 0
- 6371 5266 660F7F85 		movdqa	%xmm0, -10688(%rbp)
- 6371      40D6FFFF 
- 6372              	.LBB1345:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 6373              		.loc 2 1689 0
- 6374 526e 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6374      40D6FFFF 
- 6375 5276 F30F7F85 		movdqu	%xmm0, -10048(%rbp)
- 6375      C0D8FFFF 
- 6376 527e E8000000 		call	KDbgWriterGet at PLT
- 6376      00
- 6377 5283 4885C0   		testq	%rax, %rax
- 6378 5286 7479     		je	.L103
- 6379 5288 BF010000 		movl	$1, %edi
- 6379      00
- 6380 528d E8000000 		call	KDbgCondToFlag at PLT
- 6380      00
- 6381 5292 4889C6   		movq	%rax, %rsi
- 6382 5295 BF100000 		movl	$16, %edi
- 6382      00
- 6383 529a E8000000 		call	KDbgTestModConds at PLT
- 6383      00
- 6384 529f 84C0     		testb	%al, %al
- 6385 52a1 745E     		je	.L103
- 6386 52a3 8B85CCD8 		movl	-10036(%rbp), %eax
- 6386      FFFF
- 6387 52a9 89C7     		movl	%eax, %edi
- 6388 52ab E850ADFF 		call	bswap_32
- 6388      FF
- 6389 52b0 4189C5   		movl	%eax, %r13d
- 6390 52b3 8B85C8D8 		movl	-10040(%rbp), %eax
- 6390      FFFF
- 6391 52b9 89C7     		movl	%eax, %edi
- 6392 52bb E840ADFF 		call	bswap_32
- 6392      FF
- 6393 52c0 4189C4   		movl	%eax, %r12d
- 6394 52c3 8B85C4D8 		movl	-10044(%rbp), %eax
- 6394      FFFF
- 6395 52c9 89C7     		movl	%eax, %edi
- 6396 52cb E830ADFF 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 213
-
-
- 6396      FF
- 6397 52d0 89C3     		movl	%eax, %ebx
- 6398 52d2 8B85C0D8 		movl	-10048(%rbp), %eax
- 6398      FFFF
- 6399 52d8 89C7     		movl	%eax, %edi
- 6400 52da E821ADFF 		call	bswap_32
- 6400      FF
- 6401 52df 4589E9   		movl	%r13d, %r9d
- 6402 52e2 4589E0   		movl	%r12d, %r8d
- 6403 52e5 89D9     		movl	%ebx, %ecx
- 6404 52e7 89C2     		movl	%eax, %edx
- 6405 52e9 488D3500 		leaq	.LC4(%rip), %rsi
- 6405      000000
- 6406 52f0 488D3D00 		leaq	.LC1(%rip), %rdi
- 6406      000000
- 6407 52f7 B8000000 		movl	$0, %eax
- 6407      00
- 6408 52fc E8000000 		call	KDbgMsg at PLT
- 6408      00
- 6409              	.L103:
- 6410              	.LBE1345:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 6411              		.loc 2 1690 0
- 6412 5301 660F6F85 		movdqa	-10688(%rbp), %xmm0
- 6412      40D6FFFF 
- 6413              	.LBE1299:
- 6414              	.LBE1298:
-1753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE128(0x36,10);
- 6415              		.loc 2 1753 0
- 6416 5309 F30F7F85 		movdqu	%xmm0, -9968(%rbp)
- 6416      10D9FFFF 
- 6417 5311 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 6417      00D9FFFF 
- 6418 5319 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 6418      E0FEFFFF 
- 6419              	.LBB1346:
- 6420              	.LBB1347:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6421              		.loc 2 1565 0
- 6422 5321 F30F6F85 		movdqu	-288(%rbp), %xmm0
- 6422      E0FEFFFF 
- 6423 5329 660F7F85 		movdqa	%xmm0, -10656(%rbp)
- 6423      60D6FFFF 
- 6424 5331 660F6F85 		movdqa	-10656(%rbp), %xmm0
- 6424      60D6FFFF 
- 6425 5339 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 6425      F0FEFFFF 
- 6426              	.LBB1348:
- 6427              	.LBB1349:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6428              		.loc 2 1278 0
- 6429 5341 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6429      00000000 
- 6430 5349 F30F6F8D 		movdqu	-272(%rbp), %xmm1
- 6430      F0FEFFFF 
- 6431 5351 F30F7F8D 		movdqu	%xmm1, -240(%rbp)
- 6431      10FFFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 214
-
-
- 6432 5359 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 6432      00FFFFFF 
- 6433 5361 F30F6F85 		movdqu	-240(%rbp), %xmm0
- 6433      10FFFFFF 
- 6434 5369 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 6434      30FFFFFF 
- 6435 5371 F30F6F85 		movdqu	-256(%rbp), %xmm0
- 6435      00FFFFFF 
- 6436 5379 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 6436      20FFFFFF 
- 6437              	.LBB1350:
- 6438              	.LBB1351:
- 6439              	.LBB1352:
- 6440              	.LBB1353:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6441              		.loc 3 529 0
- 6442 5381 F30F6F8D 		movdqu	-224(%rbp), %xmm1
- 6442      20FFFFFF 
- 6443 5389 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 6443      30FFFFFF 
- 6444 5391 660F3800 		pshufb	%xmm1, %xmm0
- 6444      C1
- 6445              	.LBE1353:
- 6446              	.LBE1352:
- 6447              	.LBE1351:
- 6448              	.LBE1350:
- 6449              	.LBE1349:
- 6450              	.LBE1348:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6451              		.loc 2 1567 0
- 6452 5396 660F7F85 		movdqa	%xmm0, -10656(%rbp)
- 6452      60D6FFFF 
- 6453 539e 660F6F85 		movdqa	-10656(%rbp), %xmm0
- 6453      60D6FFFF 
- 6454 53a6 660FEF85 		pxor	-288(%rbp), %xmm0
- 6454      E0FEFFFF 
- 6455 53ae F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 6455      E0FEFFFF 
- 6456 53b6 660F6F85 		movdqa	-10656(%rbp), %xmm0
- 6456      60D6FFFF 
- 6457 53be F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 6457      40FFFFFF 
- 6458              	.LBB1354:
- 6459              	.LBB1355:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6460              		.loc 2 1278 0
- 6461 53c6 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6461      00000000 
- 6462 53ce F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 6462      40FFFFFF 
- 6463 53d6 F30F7F8D 		movdqu	%xmm1, -160(%rbp)
- 6463      60FFFFFF 
- 6464 53de F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 6464      50FFFFFF 
- 6465 53e6 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 6465      60FFFFFF 
- 6466 53ee F30F7F45 		movdqu	%xmm0, -128(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 215
-
-
- 6466      80
- 6467 53f3 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 6467      50FFFFFF 
- 6468 53fb F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 6468      70FFFFFF 
- 6469              	.LBB1356:
- 6470              	.LBB1357:
- 6471              	.LBB1358:
- 6472              	.LBB1359:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6473              		.loc 3 529 0
- 6474 5403 F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 6474      70FFFFFF 
- 6475 540b F30F6F45 		movdqu	-128(%rbp), %xmm0
- 6475      80
- 6476 5410 660F3800 		pshufb	%xmm1, %xmm0
- 6476      C1
- 6477              	.LBE1359:
- 6478              	.LBE1358:
- 6479              	.LBE1357:
- 6480              	.LBE1356:
- 6481              	.LBE1355:
- 6482              	.LBE1354:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6483              		.loc 2 1568 0
- 6484 5415 660F7F85 		movdqa	%xmm0, -10656(%rbp)
- 6484      60D6FFFF 
- 6485 541d 660F6F85 		movdqa	-10656(%rbp), %xmm0
- 6485      60D6FFFF 
- 6486 5425 660FEF85 		pxor	-288(%rbp), %xmm0
- 6486      E0FEFFFF 
- 6487 542d F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 6487      E0FEFFFF 
- 6488 5435 660F6F85 		movdqa	-10656(%rbp), %xmm0
- 6488      60D6FFFF 
- 6489 543d F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 6489      90
- 6490              	.LBB1360:
- 6491              	.LBB1361:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6492              		.loc 2 1278 0
- 6493 5442 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6493      00000000 
- 6494 544a F30F6F4D 		movdqu	-112(%rbp), %xmm1
- 6494      90
- 6495 544f F30F7F4D 		movdqu	%xmm1, -80(%rbp)
- 6495      B0
- 6496 5454 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 6496      A0
- 6497 5459 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 6497      B0
- 6498 545e F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 6498      D0
- 6499 5463 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 6499      A0
- 6500 5468 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 6500      C0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 216
-
-
- 6501              	.LBB1362:
- 6502              	.LBB1363:
- 6503              	.LBB1364:
- 6504              	.LBB1365:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6505              		.loc 3 529 0
- 6506 546d F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 6506      C0
- 6507 5472 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 6507      D0
- 6508 5477 660F3800 		pshufb	%xmm1, %xmm0
- 6508      C1
- 6509              	.LBE1365:
- 6510              	.LBE1364:
- 6511              	.LBE1363:
- 6512              	.LBE1362:
- 6513              	.LBE1361:
- 6514              	.LBE1360:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6515              		.loc 2 1569 0
- 6516 547c 660F7F85 		movdqa	%xmm0, -10656(%rbp)
- 6516      60D6FFFF 
- 6517 5484 660F6F85 		movdqa	-10656(%rbp), %xmm0
- 6517      60D6FFFF 
- 6518 548c 660FEF85 		pxor	-288(%rbp), %xmm0
- 6518      E0FEFFFF 
- 6519 5494 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 6519      E0FEFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6520              		.loc 2 1571 0
- 6521 549c F30F6F85 		movdqu	-288(%rbp), %xmm0
- 6521      E0FEFFFF 
- 6522              	.LBE1347:
- 6523              	.LBE1346:
- 6524              		.loc 2 1753 0
- 6525 54a4 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 6525      00D9FFFF 
- 6526 54ac F30F6F85 		movdqu	-9968(%rbp), %xmm0
- 6526      10D9FFFF 
- 6527 54b4 F30F6F8D 		movdqu	-9984(%rbp), %xmm1
- 6527      00D9FFFF 
- 6528 54bc 660FEFC1 		pxor	%xmm1, %xmm0
- 6529 54c0 F30F7F85 		movdqu	%xmm0, -9984(%rbp)
- 6529      00D9FFFF 
- 6530 54c8 488B8578 		movq	-10632(%rbp), %rax
- 6530      D6FFFF
- 6531 54cf 4805A000 		addq	$160, %rax
- 6531      0000
- 6532 54d5 F30F6F85 		movdqu	-9984(%rbp), %xmm0
- 6532      00D9FFFF 
- 6533 54dd F30F7F00 		movdqu	%xmm0, (%rax)
-1754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 6534              		.loc 2 1754 0
- 6535 54e1 4881C468 		addq	$11112, %rsp
- 6535      2B0000
- 6536 54e8 5B       		popq	%rbx
- 6537 54e9 415C     		popq	%r12
-
GAS LISTING /tmp/ccjbMjHD.s 			page 217
-
-
- 6538 54eb 415D     		popq	%r13
- 6539 54ed C9       		leave
- 6540 54ee C3       		ret
- 6541              		.cfi_endproc
- 6542              	.LFE645:
- 6543              		.size	KAESBlockCipherVecRegKeyExpansion128, .-KAESBlockCipherVecRegKeyExpansion128
- 6544              		.type	KAESBlockCipherVecRegKeyExpansion192, @function
- 6545              	KAESBlockCipherVecRegKeyExpansion192:
- 6546              	.LFB646:
-1755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion128) (CipherVec * w, const AESByte * key)
-1758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     OUTMSG(("\n\n\n%s: Not my code\n\n\n",__func__));
-1760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_128, AES_Nk_128);
-1761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC
-1766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion192) (CipherVec * round_keys, const AESByte * key)
-1768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 6547              		.loc 2 1768 0
- 6548              		.cfi_startproc
- 6549 54ef 55       		pushq	%rbp
- 6550              	.LCFI4:
- 6551              		.cfi_def_cfa_offset 16
- 6552 54f0 4889E5   		movq	%rsp, %rbp
- 6553              		.cfi_offset 6, -16
- 6554              	.LCFI5:
- 6555              		.cfi_def_cfa_register 6
- 6556 54f3 4155     		pushq	%r13
- 6557 54f5 4154     		pushq	%r12
- 6558 54f7 53       		pushq	%rbx
- 6559 54f8 4881EC38 		subq	$9016, %rsp
- 6559      230000
- 6560 54ff 4889BDA8 		movq	%rdi, -8536(%rbp)
- 6560      DEFFFF
- 6561 5506 4889B5A0 		movq	%rsi, -8544(%rbp)
- 6561      DEFFFF
- 6562              		.loc 2 1768 0
- 6563 550d 488B85A0 		movq	-8544(%rbp), %rax
- 6563      DEFFFF
- 6564 5514 48898530 		movq	%rax, -8144(%rbp)
- 6564      E0FFFF
- 6565              	.LBB1952:
- 6566              	.LBB1953:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 6567              		.loc 2 126 0
- 6568 551b 488B8530 		movq	-8144(%rbp), %rax
- 6568      E0FFFF
- 6569 5522 4889C7   		movq	%rax, %rdi
- 6570              	#APP
- 6571              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 6572              		movdqu (%rdi),%xmm0
- 6573              	# 0 "" 2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 218
-
-
- 6574              	#NO_APP
- 6575 5529 660F7F85 		movdqa	%xmm0, -8944(%rbp)
- 6575      10DDFFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 6576              		.loc 2 129 0
- 6577 5531 660F6F85 		movdqa	-8944(%rbp), %xmm0
- 6577      10DDFFFF 
- 6578              	.LBE1953:
- 6579              	.LBE1952:
-1769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* work on three blocks at a time which is two Nr worth
-1770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * we'll build it with 6 words in v0:v1 and 6 words in w0:w1
-1771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * but move them them into v0:v1:v2 before writing them to
-1772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * the key schedule
-1773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-1774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec v0, v1, v2, v3, v4;
-1776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec k;          /* we'll only need one of the key gen assist blocks at a time */
-1777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 0 */
-1779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(StateIn) (key);              /* k0    : k1    : k2     : k3           */
- 6580              		.loc 2 1779 0
- 6581 5539 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 6581      B0DCFFFF 
-1780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateIn) (key+8);            /* k2    : k3    : k4     : k5           */
- 6582              		.loc 2 1780 0
- 6583 5541 488B85A0 		movq	-8544(%rbp), %rax
- 6583      DEFFFF
- 6584 5548 4883C008 		addq	$8, %rax
- 6585 554c 48898538 		movq	%rax, -8136(%rbp)
- 6585      E0FFFF
- 6586              	.LBB1954:
- 6587              	.LBB1955:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 6588              		.loc 2 126 0
- 6589 5553 488B8538 		movq	-8136(%rbp), %rax
- 6589      E0FFFF
- 6590 555a 4889C7   		movq	%rax, %rdi
- 6591              	#APP
- 6592              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 6593              		movdqu (%rdi),%xmm0
- 6594              	# 0 "" 2
- 6595              	#NO_APP
- 6596 5561 660F7F85 		movdqa	%xmm0, -8928(%rbp)
- 6596      20DDFFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 6597              		.loc 2 129 0
- 6598 5569 660F6F85 		movdqa	-8928(%rbp), %xmm0
- 6598      20DDFFFF 
- 6599              	.LBE1955:
- 6600              	.LBE1954:
- 6601              		.loc 2 1780 0
- 6602 5571 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 6602      C0DCFFFF 
- 6603 5579 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 6603      C0DCFFFF 
- 6604 5581 F30F7F95 		movdqu	%xmm2, -8128(%rbp)
- 6604      40E0FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 219
-
-
- 6605              	.LBB1956:
- 6606              	.LBB1957:
-1301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6607              		.loc 2 1301 0
- 6608 5589 660F6F05 		movdqa	mask.7952(%rip), %xmm0
- 6608      00000000 
- 6609 5591 F30F6F8D 		movdqu	-8128(%rbp), %xmm1
- 6609      40E0FFFF 
- 6610 5599 F30F7F8D 		movdqu	%xmm1, -8096(%rbp)
- 6610      60E0FFFF 
- 6611 55a1 F30F7F85 		movdqu	%xmm0, -8112(%rbp)
- 6611      50E0FFFF 
- 6612 55a9 F30F6F85 		movdqu	-8096(%rbp), %xmm0
- 6612      60E0FFFF 
- 6613 55b1 F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 6613      80E0FFFF 
- 6614 55b9 F30F6F85 		movdqu	-8112(%rbp), %xmm0
- 6614      50E0FFFF 
- 6615 55c1 F30F7F85 		movdqu	%xmm0, -8080(%rbp)
- 6615      70E0FFFF 
- 6616              	.LBB1958:
- 6617              	.LBB1959:
- 6618              	.LBB1960:
- 6619              	.LBB1961:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6620              		.loc 3 529 0
- 6621 55c9 F30F6F8D 		movdqu	-8080(%rbp), %xmm1
- 6621      70E0FFFF 
- 6622 55d1 F30F6F85 		movdqu	-8064(%rbp), %xmm0
- 6622      80E0FFFF 
- 6623 55d9 660F3800 		pshufb	%xmm1, %xmm0
- 6623      C1
- 6624              	.LBE1961:
- 6625              	.LBE1960:
- 6626              	.LBE1959:
- 6627              	.LBE1958:
- 6628              	.LBE1957:
- 6629              	.LBE1956:
-1781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateShiftRight64) (v1);     /* k4    : k5    : 0      : 0            */
- 6630              		.loc 2 1781 0
- 6631 55de 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 6631      C0DCFFFF 
-1782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* K0:K1:K2:K3 */
- 6632              		.loc 2 1783 0
- 6633 55e6 488B85A8 		movq	-8536(%rbp), %rax
- 6633      DEFFFF
- 6634 55ed 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 6634      B0DCFFFF 
- 6635 55f5 660F7F00 		movdqa	%xmm0, (%rax)
-1784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 */
-1786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 6636              		.loc 2 1788 0
- 6637 55f9 660F6F95 		movdqa	-9024(%rbp), %xmm2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 220
-
-
- 6637      C0DCFFFF 
- 6638 5601 660F7F95 		movdqa	%xmm2, -8960(%rbp)
- 6638      00DDFFFF 
- 6639 5609 660F6F85 		movdqa	-8960(%rbp), %xmm0
- 6639      00DDFFFF 
- 6640 5611 F30F7F85 		movdqu	%xmm0, -8032(%rbp)
- 6640      A0E0FFFF 
- 6641              	.LBB1962:
- 6642              	.LBB1963:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 6643              		.loc 2 1629 0
- 6644 5619 B8010000 		movl	$1, %eax
- 6644      00
- 6645 561e 0FB6C0   		movzbl	%al, %eax
- 6646 5621 8985C0E0 		movl	%eax, -8000(%rbp)
- 6646      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 6647              		.loc 2 1630 0
- 6648 5627 F30F6F85 		movdqu	-8032(%rbp), %xmm0
- 6648      A0E0FFFF 
- 6649 562f F30F7F85 		movdqu	%xmm0, -8512(%rbp)
- 6649      C0DEFFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 6650              		.loc 2 1631 0
- 6651 5637 8B85C4DE 		movl	-8508(%rbp), %eax
- 6651      FFFF
- 6652 563d 8985C4E0 		movl	%eax, -7996(%rbp)
- 6652      FFFF
- 6653              	.LBB1964:
- 6654              	.LBB1965:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 6655              		.loc 2 740 0
- 6656 5643 8B85C4E0 		movl	-7996(%rbp), %eax
- 6656      FFFF
- 6657 5649 8985B0DE 		movl	%eax, -8528(%rbp)
- 6657      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 6658              		.loc 2 741 0
- 6659 564f C785C8E0 		movl	$0, -7992(%rbp)
- 6659      FFFF0000 
- 6659      0000
- 6660 5659 EB36     		jmp	.L106
- 6661              		.cfi_offset 3, -40
- 6662              		.cfi_offset 12, -32
- 6663              		.cfi_offset 13, -24
- 6664              	.L107:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 6665              		.loc 2 742 0
- 6666 565b 8B8DC8E0 		movl	-7992(%rbp), %ecx
- 6666      FFFF
- 6667 5661 8B85C8E0 		movl	-7992(%rbp), %eax
- 6667      FFFF
- 6668 5667 89C0     		mov	%eax, %eax
- 6669 5669 0FB68405 		movzbl	-8528(%rbp,%rax), %eax
- 6669      B0DEFFFF 
- 6670 5671 0FB6C0   		movzbl	%al, %eax
- 6671 5674 89C2     		mov	%eax, %edx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 221
-
-
- 6672 5676 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 6672      000000
- 6673 567d 0FB61402 		movzbl	(%rdx,%rax), %edx
- 6674 5681 89C8     		mov	%ecx, %eax
- 6675 5683 889405B0 		movb	%dl, -8528(%rbp,%rax)
- 6675      DEFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 6676              		.loc 2 741 0
- 6677 568a 8385C8E0 		addl	$1, -7992(%rbp)
- 6677      FFFF01
- 6678              	.L106:
- 6679 5691 83BDC8E0 		cmpl	$3, -7992(%rbp)
- 6679      FFFF03
- 6680 5698 76C1     		jbe	.L107
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 6681              		.loc 2 743 0
- 6682 569a 8B85B0DE 		movl	-8528(%rbp), %eax
- 6682      FFFF
- 6683              	.LBE1965:
- 6684              	.LBE1964:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 6685              		.loc 2 1631 0
- 6686 56a0 8985BCE0 		movl	%eax, -8004(%rbp)
- 6686      FFFF
- 6687 56a6 8B85BCE0 		movl	-8004(%rbp), %eax
- 6687      FFFF
- 6688 56ac 8985CCE0 		movl	%eax, -7988(%rbp)
- 6688      FFFF
- 6689              	.LBB1966:
- 6690              	.LBB1967:
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 6691              		.loc 2 1196 0
- 6692 56b2 8B85CCE0 		movl	-7988(%rbp), %eax
- 6692      FFFF
- 6693 56b8 C1C808   		rorl	$8, %eax
- 6694              	.LBE1967:
- 6695              	.LBE1966:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 6696              		.loc 2 1632 0
- 6697 56bb 8985BCE0 		movl	%eax, -8004(%rbp)
- 6697      FFFF
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 6698              		.loc 2 1633 0
- 6699 56c1 8B85C0E0 		movl	-8000(%rbp), %eax
- 6699      FFFF
- 6700 56c7 3185BCE0 		xorl	%eax, -8004(%rbp)
- 6700      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 6701              		.loc 2 1635 0
- 6702 56cd 8B85BCE0 		movl	-8004(%rbp), %eax
- 6702      FFFF
- 6703 56d3 8985CCDE 		movl	%eax, -8500(%rbp)
- 6703      FFFF
- 6704 56d9 8B85CCDE 		movl	-8500(%rbp), %eax
- 6704      FFFF
- 6705 56df 8985C8DE 		movl	%eax, -8504(%rbp)
- 6705      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 222
-
-
- 6706 56e5 8B85C8DE 		movl	-8504(%rbp), %eax
- 6706      FFFF
- 6707 56eb 8985C4DE 		movl	%eax, -8508(%rbp)
- 6707      FFFF
- 6708 56f1 8B85C4DE 		movl	-8508(%rbp), %eax
- 6708      FFFF
- 6709 56f7 8985C0DE 		movl	%eax, -8512(%rbp)
- 6709      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 6710              		.loc 2 1636 0
- 6711 56fd F30F6F85 		movdqu	-8512(%rbp), %xmm0
- 6711      C0DEFFFF 
- 6712              	.LBE1963:
- 6713              	.LBE1962:
- 6714              		.loc 2 1788 0
- 6715 5705 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 6715      00DDFFFF 
- 6716 570d 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 6716      B0DCFFFF 
- 6717 5715 F30F7F95 		movdqu	%xmm2, -7984(%rbp)
- 6717      D0E0FFFF 
- 6718              	.LBB1968:
- 6719              	.LBB1969:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6720              		.loc 2 1565 0
- 6721 571d F30F6F85 		movdqu	-7984(%rbp), %xmm0
- 6721      D0E0FFFF 
- 6722 5725 660F7F85 		movdqa	%xmm0, -8912(%rbp)
- 6722      30DDFFFF 
- 6723 572d 660F6F95 		movdqa	-8912(%rbp), %xmm2
- 6723      30DDFFFF 
- 6724 5735 F30F7F95 		movdqu	%xmm2, -7968(%rbp)
- 6724      E0E0FFFF 
- 6725              	.LBB1970:
- 6726              	.LBB1971:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6727              		.loc 2 1278 0
- 6728 573d 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6728      00000000 
- 6729 5745 F30F6F8D 		movdqu	-7968(%rbp), %xmm1
- 6729      E0E0FFFF 
- 6730 574d F30F7F8D 		movdqu	%xmm1, -7936(%rbp)
- 6730      00E1FFFF 
- 6731 5755 F30F7F85 		movdqu	%xmm0, -7952(%rbp)
- 6731      F0E0FFFF 
- 6732 575d F30F6F85 		movdqu	-7936(%rbp), %xmm0
- 6732      00E1FFFF 
- 6733 5765 F30F7F85 		movdqu	%xmm0, -7904(%rbp)
- 6733      20E1FFFF 
- 6734 576d F30F6F85 		movdqu	-7952(%rbp), %xmm0
- 6734      F0E0FFFF 
- 6735 5775 F30F7F85 		movdqu	%xmm0, -7920(%rbp)
- 6735      10E1FFFF 
- 6736              	.LBB1972:
- 6737              	.LBB1973:
- 6738              	.LBB1974:
- 6739              	.LBB1975:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 223
-
-
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6740              		.loc 3 529 0
- 6741 577d F30F6F8D 		movdqu	-7920(%rbp), %xmm1
- 6741      10E1FFFF 
- 6742 5785 F30F6F85 		movdqu	-7904(%rbp), %xmm0
- 6742      20E1FFFF 
- 6743 578d 660F3800 		pshufb	%xmm1, %xmm0
- 6743      C1
- 6744              	.LBE1975:
- 6745              	.LBE1974:
- 6746              	.LBE1973:
- 6747              	.LBE1972:
- 6748              	.LBE1971:
- 6749              	.LBE1970:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6750              		.loc 2 1567 0
- 6751 5792 660F7F85 		movdqa	%xmm0, -8912(%rbp)
- 6751      30DDFFFF 
- 6752 579a 660F6F85 		movdqa	-8912(%rbp), %xmm0
- 6752      30DDFFFF 
- 6753 57a2 660FEF85 		pxor	-7984(%rbp), %xmm0
- 6753      D0E0FFFF 
- 6754 57aa F30F7F85 		movdqu	%xmm0, -7984(%rbp)
- 6754      D0E0FFFF 
- 6755 57b2 660F6F85 		movdqa	-8912(%rbp), %xmm0
- 6755      30DDFFFF 
- 6756 57ba F30F7F85 		movdqu	%xmm0, -7888(%rbp)
- 6756      30E1FFFF 
- 6757              	.LBB1976:
- 6758              	.LBB1977:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6759              		.loc 2 1278 0
- 6760 57c2 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6760      00000000 
- 6761 57ca F30F6F8D 		movdqu	-7888(%rbp), %xmm1
- 6761      30E1FFFF 
- 6762 57d2 F30F7F8D 		movdqu	%xmm1, -7856(%rbp)
- 6762      50E1FFFF 
- 6763 57da F30F7F85 		movdqu	%xmm0, -7872(%rbp)
- 6763      40E1FFFF 
- 6764 57e2 F30F6F85 		movdqu	-7856(%rbp), %xmm0
- 6764      50E1FFFF 
- 6765 57ea F30F7F85 		movdqu	%xmm0, -7824(%rbp)
- 6765      70E1FFFF 
- 6766 57f2 F30F6F85 		movdqu	-7872(%rbp), %xmm0
- 6766      40E1FFFF 
- 6767 57fa F30F7F85 		movdqu	%xmm0, -7840(%rbp)
- 6767      60E1FFFF 
- 6768              	.LBB1978:
- 6769              	.LBB1979:
- 6770              	.LBB1980:
- 6771              	.LBB1981:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6772              		.loc 3 529 0
- 6773 5802 F30F6F8D 		movdqu	-7840(%rbp), %xmm1
- 6773      60E1FFFF 
- 6774 580a F30F6F85 		movdqu	-7824(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 224
-
-
- 6774      70E1FFFF 
- 6775 5812 660F3800 		pshufb	%xmm1, %xmm0
- 6775      C1
- 6776              	.LBE1981:
- 6777              	.LBE1980:
- 6778              	.LBE1979:
- 6779              	.LBE1978:
- 6780              	.LBE1977:
- 6781              	.LBE1976:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6782              		.loc 2 1568 0
- 6783 5817 660F7F85 		movdqa	%xmm0, -8912(%rbp)
- 6783      30DDFFFF 
- 6784 581f 660F6F85 		movdqa	-8912(%rbp), %xmm0
- 6784      30DDFFFF 
- 6785 5827 660FEF85 		pxor	-7984(%rbp), %xmm0
- 6785      D0E0FFFF 
- 6786 582f F30F7F85 		movdqu	%xmm0, -7984(%rbp)
- 6786      D0E0FFFF 
- 6787 5837 660F6F95 		movdqa	-8912(%rbp), %xmm2
- 6787      30DDFFFF 
- 6788 583f F30F7F95 		movdqu	%xmm2, -7808(%rbp)
- 6788      80E1FFFF 
- 6789              	.LBB1982:
- 6790              	.LBB1983:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6791              		.loc 2 1278 0
- 6792 5847 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6792      00000000 
- 6793 584f F30F6F8D 		movdqu	-7808(%rbp), %xmm1
- 6793      80E1FFFF 
- 6794 5857 F30F7F8D 		movdqu	%xmm1, -7776(%rbp)
- 6794      A0E1FFFF 
- 6795 585f F30F7F85 		movdqu	%xmm0, -7792(%rbp)
- 6795      90E1FFFF 
- 6796 5867 F30F6F85 		movdqu	-7776(%rbp), %xmm0
- 6796      A0E1FFFF 
- 6797 586f F30F7F85 		movdqu	%xmm0, -7744(%rbp)
- 6797      C0E1FFFF 
- 6798 5877 F30F6F85 		movdqu	-7792(%rbp), %xmm0
- 6798      90E1FFFF 
- 6799 587f F30F7F85 		movdqu	%xmm0, -7760(%rbp)
- 6799      B0E1FFFF 
- 6800              	.LBB1984:
- 6801              	.LBB1985:
- 6802              	.LBB1986:
- 6803              	.LBB1987:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6804              		.loc 3 529 0
- 6805 5887 F30F6F8D 		movdqu	-7760(%rbp), %xmm1
- 6805      B0E1FFFF 
- 6806 588f F30F6F85 		movdqu	-7744(%rbp), %xmm0
- 6806      C0E1FFFF 
- 6807 5897 660F3800 		pshufb	%xmm1, %xmm0
- 6807      C1
- 6808              	.LBE1987:
- 6809              	.LBE1986:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 225
-
-
- 6810              	.LBE1985:
- 6811              	.LBE1984:
- 6812              	.LBE1983:
- 6813              	.LBE1982:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6814              		.loc 2 1569 0
- 6815 589c 660F7F85 		movdqa	%xmm0, -8912(%rbp)
- 6815      30DDFFFF 
- 6816 58a4 660F6F85 		movdqa	-8912(%rbp), %xmm0
- 6816      30DDFFFF 
- 6817 58ac 660FEF85 		pxor	-7984(%rbp), %xmm0
- 6817      D0E0FFFF 
- 6818 58b4 F30F7F85 		movdqu	%xmm0, -7984(%rbp)
- 6818      D0E0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6819              		.loc 2 1571 0
- 6820 58bc F30F6F85 		movdqu	-7984(%rbp), %xmm0
- 6820      D0E0FFFF 
- 6821              	.LBE1969:
- 6822              	.LBE1968:
-1789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1, 0x01);                            /* F(k5) : F(k5) : F(k5)  : F(k5)        */
-1790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k0    : k0^k1 :k0^k1^k2:k0^k1^k2^k3   */
- 6823              		.loc 2 1790 0
- 6824 58c4 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 6824      E0DCFFFF 
-1791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k6    : k7    : k8     : k9           */
- 6825              		.loc 2 1791 0
- 6826 58cc 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 6826      E0DCFFFF 
- 6827 58d4 660FEF85 		pxor	-8960(%rbp), %xmm0
- 6827      00DDFFFF 
- 6828 58dc 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 6828      E0DCFFFF 
- 6829 58e4 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 6829      C0DCFFFF 
- 6830 58ec F30F7F95 		movdqu	%xmm2, -7728(%rbp)
- 6830      D0E1FFFF 
- 6831              	.LBB1988:
- 6832              	.LBB1989:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 6833              		.loc 2 1565 0
- 6834 58f4 F30F6F85 		movdqu	-7728(%rbp), %xmm0
- 6834      D0E1FFFF 
- 6835 58fc 660F7F85 		movdqa	%xmm0, -8896(%rbp)
- 6835      40DDFFFF 
- 6836 5904 660F6F95 		movdqa	-8896(%rbp), %xmm2
- 6836      40DDFFFF 
- 6837 590c F30F7F95 		movdqu	%xmm2, -7712(%rbp)
- 6837      E0E1FFFF 
- 6838              	.LBB1990:
- 6839              	.LBB1991:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6840              		.loc 2 1278 0
- 6841 5914 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6841      00000000 
- 6842 591c F30F6F8D 		movdqu	-7712(%rbp), %xmm1
- 6842      E0E1FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 226
-
-
- 6843 5924 F30F7F8D 		movdqu	%xmm1, -7680(%rbp)
- 6843      00E2FFFF 
- 6844 592c F30F7F85 		movdqu	%xmm0, -7696(%rbp)
- 6844      F0E1FFFF 
- 6845 5934 F30F6F85 		movdqu	-7680(%rbp), %xmm0
- 6845      00E2FFFF 
- 6846 593c F30F7F85 		movdqu	%xmm0, -7648(%rbp)
- 6846      20E2FFFF 
- 6847 5944 F30F6F85 		movdqu	-7696(%rbp), %xmm0
- 6847      F0E1FFFF 
- 6848 594c F30F7F85 		movdqu	%xmm0, -7664(%rbp)
- 6848      10E2FFFF 
- 6849              	.LBB1992:
- 6850              	.LBB1993:
- 6851              	.LBB1994:
- 6852              	.LBB1995:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6853              		.loc 3 529 0
- 6854 5954 F30F6F8D 		movdqu	-7664(%rbp), %xmm1
- 6854      10E2FFFF 
- 6855 595c F30F6F85 		movdqu	-7648(%rbp), %xmm0
- 6855      20E2FFFF 
- 6856 5964 660F3800 		pshufb	%xmm1, %xmm0
- 6856      C1
- 6857              	.LBE1995:
- 6858              	.LBE1994:
- 6859              	.LBE1993:
- 6860              	.LBE1992:
- 6861              	.LBE1991:
- 6862              	.LBE1990:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6863              		.loc 2 1567 0
- 6864 5969 660F7F85 		movdqa	%xmm0, -8896(%rbp)
- 6864      40DDFFFF 
- 6865 5971 660F6F85 		movdqa	-8896(%rbp), %xmm0
- 6865      40DDFFFF 
- 6866 5979 660FEF85 		pxor	-7728(%rbp), %xmm0
- 6866      D0E1FFFF 
- 6867 5981 F30F7F85 		movdqu	%xmm0, -7728(%rbp)
- 6867      D0E1FFFF 
- 6868 5989 660F6F85 		movdqa	-8896(%rbp), %xmm0
- 6868      40DDFFFF 
- 6869 5991 F30F7F85 		movdqu	%xmm0, -7632(%rbp)
- 6869      30E2FFFF 
- 6870              	.LBB1996:
- 6871              	.LBB1997:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6872              		.loc 2 1278 0
- 6873 5999 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6873      00000000 
- 6874 59a1 F30F6F8D 		movdqu	-7632(%rbp), %xmm1
- 6874      30E2FFFF 
- 6875 59a9 F30F7F8D 		movdqu	%xmm1, -7600(%rbp)
- 6875      50E2FFFF 
- 6876 59b1 F30F7F85 		movdqu	%xmm0, -7616(%rbp)
- 6876      40E2FFFF 
- 6877 59b9 F30F6F85 		movdqu	-7600(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 227
-
-
- 6877      50E2FFFF 
- 6878 59c1 F30F7F85 		movdqu	%xmm0, -7568(%rbp)
- 6878      70E2FFFF 
- 6879 59c9 F30F6F85 		movdqu	-7616(%rbp), %xmm0
- 6879      40E2FFFF 
- 6880 59d1 F30F7F85 		movdqu	%xmm0, -7584(%rbp)
- 6880      60E2FFFF 
- 6881              	.LBB1998:
- 6882              	.LBB1999:
- 6883              	.LBB2000:
- 6884              	.LBB2001:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6885              		.loc 3 529 0
- 6886 59d9 F30F6F8D 		movdqu	-7584(%rbp), %xmm1
- 6886      60E2FFFF 
- 6887 59e1 F30F6F85 		movdqu	-7568(%rbp), %xmm0
- 6887      70E2FFFF 
- 6888 59e9 660F3800 		pshufb	%xmm1, %xmm0
- 6888      C1
- 6889              	.LBE2001:
- 6890              	.LBE2000:
- 6891              	.LBE1999:
- 6892              	.LBE1998:
- 6893              	.LBE1997:
- 6894              	.LBE1996:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6895              		.loc 2 1568 0
- 6896 59ee 660F7F85 		movdqa	%xmm0, -8896(%rbp)
- 6896      40DDFFFF 
- 6897 59f6 660F6F85 		movdqa	-8896(%rbp), %xmm0
- 6897      40DDFFFF 
- 6898 59fe 660FEF85 		pxor	-7728(%rbp), %xmm0
- 6898      D0E1FFFF 
- 6899 5a06 F30F7F85 		movdqu	%xmm0, -7728(%rbp)
- 6899      D0E1FFFF 
- 6900 5a0e 660F6F95 		movdqa	-8896(%rbp), %xmm2
- 6900      40DDFFFF 
- 6901 5a16 F30F7F95 		movdqu	%xmm2, -7552(%rbp)
- 6901      80E2FFFF 
- 6902              	.LBB2002:
- 6903              	.LBB2003:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 6904              		.loc 2 1278 0
- 6905 5a1e 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 6905      00000000 
- 6906 5a26 F30F6F8D 		movdqu	-7552(%rbp), %xmm1
- 6906      80E2FFFF 
- 6907 5a2e F30F7F8D 		movdqu	%xmm1, -7520(%rbp)
- 6907      A0E2FFFF 
- 6908 5a36 F30F7F85 		movdqu	%xmm0, -7536(%rbp)
- 6908      90E2FFFF 
- 6909 5a3e F30F6F85 		movdqu	-7520(%rbp), %xmm0
- 6909      A0E2FFFF 
- 6910 5a46 F30F7F85 		movdqu	%xmm0, -7488(%rbp)
- 6910      C0E2FFFF 
- 6911 5a4e F30F6F85 		movdqu	-7536(%rbp), %xmm0
- 6911      90E2FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 228
-
-
- 6912 5a56 F30F7F85 		movdqu	%xmm0, -7504(%rbp)
- 6912      B0E2FFFF 
- 6913              	.LBB2004:
- 6914              	.LBB2005:
- 6915              	.LBB2006:
- 6916              	.LBB2007:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 6917              		.loc 3 529 0
- 6918 5a5e F30F6F8D 		movdqu	-7504(%rbp), %xmm1
- 6918      B0E2FFFF 
- 6919 5a66 F30F6F85 		movdqu	-7488(%rbp), %xmm0
- 6919      C0E2FFFF 
- 6920 5a6e 660F3800 		pshufb	%xmm1, %xmm0
- 6920      C1
- 6921              	.LBE2007:
- 6922              	.LBE2006:
- 6923              	.LBE2005:
- 6924              	.LBE2004:
- 6925              	.LBE2003:
- 6926              	.LBE2002:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 6927              		.loc 2 1569 0
- 6928 5a73 660F7F85 		movdqa	%xmm0, -8896(%rbp)
- 6928      40DDFFFF 
- 6929 5a7b 660F6F85 		movdqa	-8896(%rbp), %xmm0
- 6929      40DDFFFF 
- 6930 5a83 660FEF85 		pxor	-7728(%rbp), %xmm0
- 6930      D0E1FFFF 
- 6931 5a8b F30F7F85 		movdqu	%xmm0, -7728(%rbp)
- 6931      D0E1FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 6932              		.loc 2 1571 0
- 6933 5a93 F30F6F85 		movdqu	-7728(%rbp), %xmm0
- 6933      D0E1FFFF 
- 6934              	.LBE1989:
- 6935              	.LBE1988:
-1792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k4    : k4^k5 : k4^k5  : k4^k5        */
- 6936              		.loc 2 1792 0
- 6937 5a9b 660F7F85 		movdqa	%xmm0, -8976(%rbp)
- 6937      F0DCFFFF 
-1793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k9    : k9    : k9     : k9           */
- 6938              		.loc 2 1793 0
- 6939 5aa3 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 6939      E0DCFFFF 
- 6940 5aab 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 6940      00DDFFFF 
- 6941 5ab3 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 6941      00DDFFFF 
- 6942 5abb F30F7F95 		movdqu	%xmm2, -7472(%rbp)
- 6942      D0E2FFFF 
- 6943 5ac3 F30F6F85 		movdqu	-7472(%rbp), %xmm0
- 6943      D0E2FFFF 
- 6944 5acb F30F7F85 		movdqu	%xmm0, -7440(%rbp)
- 6944      F0E2FFFF 
- 6945              	.LBB2008:
- 6946              	.LBB2009:
- 6947              	.LBB2010:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 229
-
-
- 6948              	.LBB2011:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 6949              		.loc 3 450 0
- 6950 5ad3 F30F6F85 		movdqu	-7440(%rbp), %xmm0
- 6950      F0E2FFFF 
- 6951 5adb 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 6951      FF
- 6952              	.LBE2011:
- 6953              	.LBE2010:
- 6954              	.LBE2009:
- 6955              	.LBE2008:
- 6956              		.loc 2 1793 0
- 6957 5ae0 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 6957      00DDFFFF 
-1794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k10   : k11   : k10    : k11          */
- 6958              		.loc 2 1794 0
- 6959 5ae8 660F6F85 		movdqa	-8976(%rbp), %xmm0
- 6959      F0DCFFFF 
- 6960 5af0 660FEF85 		pxor	-8960(%rbp), %xmm0
- 6960      00DDFFFF 
- 6961 5af8 660F7F85 		movdqa	%xmm0, -8976(%rbp)
- 6961      F0DCFFFF 
- 6962 5b00 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 6962      C0DCFFFF 
- 6963 5b08 F30F7F95 		movdqu	%xmm2, -7408(%rbp)
- 6963      10E3FFFF 
- 6964 5b10 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 6964      E0DCFFFF 
- 6965 5b18 F30F7F85 		movdqu	%xmm0, -7424(%rbp)
- 6965      00E3FFFF 
- 6966 5b20 F30F6F85 		movdqu	-7408(%rbp), %xmm0
- 6966      10E3FFFF 
- 6967 5b28 F30F7F85 		movdqu	%xmm0, -7360(%rbp)
- 6967      40E3FFFF 
- 6968 5b30 F30F6F85 		movdqu	-7424(%rbp), %xmm0
- 6968      00E3FFFF 
- 6969 5b38 F30F7F85 		movdqu	%xmm0, -7376(%rbp)
- 6969      30E3FFFF 
- 6970              	.LBB2012:
- 6971              	.LBB2013:
- 6972              	.LBB2014:
- 6973              	.LBB2015:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 6974              		.loc 3 366 0
- 6975 5b40 F20F1085 		movsd	-7376(%rbp), %xmm0
- 6975      30E3FFFF 
- 6976 5b48 660F1685 		movhpd	-7368(%rbp), %xmm0
- 6976      38E3FFFF 
- 6977 5b50 F20F108D 		movsd	-7360(%rbp), %xmm1
- 6977      40E3FFFF 
- 6978 5b58 660F168D 		movhpd	-7352(%rbp), %xmm1
- 6978      48E3FFFF 
- 6979 5b60 660F28D1 		movapd	%xmm1, %xmm2
- 6980 5b64 660F14D0 		unpcklpd	%xmm0, %xmm2
- 6981 5b68 660F28C2 		movapd	%xmm2, %xmm0
- 6982              	.LBE2015:
- 6983              	.LBE2014:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 230
-
-
- 6984              	.LBE2013:
- 6985              	.LBE2012:
-1795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k4    : k5    : k6     : k7           */
- 6986              		.loc 2 1795 0
- 6987 5b6c 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 6987      C0DCFFFF 
-1796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* K4:K5:K6:K7 */
- 6988              		.loc 2 1796 0
- 6989 5b74 488B85A8 		movq	-8536(%rbp), %rax
- 6989      DEFFFF
- 6990 5b7b 4883C010 		addq	$16, %rax
- 6991 5b7f 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 6991      C0DCFFFF 
- 6992 5b87 660F7F00 		movdqa	%xmm0, (%rax)
- 6993 5b8b 660F6F95 		movdqa	-8992(%rbp), %xmm2
- 6993      E0DCFFFF 
- 6994 5b93 F30F7F95 		movdqu	%xmm2, -7328(%rbp)
- 6994      60E3FFFF 
- 6995 5b9b 660F6F85 		movdqa	-8976(%rbp), %xmm0
- 6995      F0DCFFFF 
- 6996 5ba3 F30F7F85 		movdqu	%xmm0, -7344(%rbp)
- 6996      50E3FFFF 
- 6997 5bab F30F6F85 		movdqu	-7328(%rbp), %xmm0
- 6997      60E3FFFF 
- 6998 5bb3 F30F7F85 		movdqu	%xmm0, -7280(%rbp)
- 6998      90E3FFFF 
- 6999 5bbb F30F6F85 		movdqu	-7344(%rbp), %xmm0
- 6999      50E3FFFF 
- 7000 5bc3 F30F7F85 		movdqu	%xmm0, -7296(%rbp)
- 7000      80E3FFFF 
- 7001              	.LBB2016:
- 7002              	.LBB2017:
- 7003              	.LBB2018:
- 7004              	.LBB2019:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 7005              		.loc 3 366 0
- 7006 5bcb F20F108D 		movsd	-7296(%rbp), %xmm1
- 7006      80E3FFFF 
- 7007 5bd3 660F168D 		movhpd	-7288(%rbp), %xmm1
- 7007      88E3FFFF 
- 7008 5bdb F20F1085 		movsd	-7280(%rbp), %xmm0
- 7008      90E3FFFF 
- 7009 5be3 660F1685 		movhpd	-7272(%rbp), %xmm0
- 7009      98E3FFFF 
- 7010 5beb 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 7010      01
- 7011              	.LBE2019:
- 7012              	.LBE2018:
- 7013              	.LBE2017:
- 7014              	.LBE2016:
-1797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k8    : k9    : k10    : k11          */
- 7015              		.loc 2 1798 0
- 7016 5bf0 660F7F85 		movdqa	%xmm0, -9008(%rbp)
- 7016      D0DCFFFF 
-1799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[2] = v2; /* K8:K9:K10:K11 */
- 7017              		.loc 2 1799 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 231
-
-
- 7018 5bf8 488B85A8 		movq	-8536(%rbp), %rax
- 7018      DEFFFF
- 7019 5bff 4883C020 		addq	$32, %rax
- 7020 5c03 660F6F95 		movdqa	-9008(%rbp), %xmm2
- 7020      D0DCFFFF 
- 7021 5c0b 660F7F10 		movdqa	%xmm2, (%rax)
- 7022 5c0f 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 7022      E0DCFFFF 
- 7023 5c17 F30F7F85 		movdqu	%xmm0, -7264(%rbp)
- 7023      A0E3FFFF 
- 7024              	.LBB2020:
- 7025              	.LBB2021:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7026              		.loc 2 1565 0
- 7027 5c1f F30F6F95 		movdqu	-7264(%rbp), %xmm2
- 7027      A0E3FFFF 
- 7028 5c27 660F7F95 		movdqa	%xmm2, -8880(%rbp)
- 7028      50DDFFFF 
- 7029 5c2f 660F6F85 		movdqa	-8880(%rbp), %xmm0
- 7029      50DDFFFF 
- 7030 5c37 F30F7F85 		movdqu	%xmm0, -7248(%rbp)
- 7030      B0E3FFFF 
- 7031              	.LBB2022:
- 7032              	.LBB2023:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7033              		.loc 2 1278 0
- 7034 5c3f 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7034      00000000 
- 7035 5c47 F30F6F8D 		movdqu	-7248(%rbp), %xmm1
- 7035      B0E3FFFF 
- 7036 5c4f F30F7F8D 		movdqu	%xmm1, -7216(%rbp)
- 7036      D0E3FFFF 
- 7037 5c57 F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 7037      C0E3FFFF 
- 7038 5c5f F30F6F85 		movdqu	-7216(%rbp), %xmm0
- 7038      D0E3FFFF 
- 7039 5c67 F30F7F85 		movdqu	%xmm0, -7184(%rbp)
- 7039      F0E3FFFF 
- 7040 5c6f F30F6F85 		movdqu	-7232(%rbp), %xmm0
- 7040      C0E3FFFF 
- 7041 5c77 F30F7F85 		movdqu	%xmm0, -7200(%rbp)
- 7041      E0E3FFFF 
- 7042              	.LBB2024:
- 7043              	.LBB2025:
- 7044              	.LBB2026:
- 7045              	.LBB2027:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7046              		.loc 3 529 0
- 7047 5c7f F30F6F8D 		movdqu	-7200(%rbp), %xmm1
- 7047      E0E3FFFF 
- 7048 5c87 F30F6F85 		movdqu	-7184(%rbp), %xmm0
- 7048      F0E3FFFF 
- 7049 5c8f 660F3800 		pshufb	%xmm1, %xmm0
- 7049      C1
- 7050              	.LBE2027:
- 7051              	.LBE2026:
- 7052              	.LBE2025:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 232
-
-
- 7053              	.LBE2024:
- 7054              	.LBE2023:
- 7055              	.LBE2022:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7056              		.loc 2 1567 0
- 7057 5c94 660F7F85 		movdqa	%xmm0, -8880(%rbp)
- 7057      50DDFFFF 
- 7058 5c9c 660F6F85 		movdqa	-8880(%rbp), %xmm0
- 7058      50DDFFFF 
- 7059 5ca4 660FEF85 		pxor	-7264(%rbp), %xmm0
- 7059      A0E3FFFF 
- 7060 5cac F30F7F85 		movdqu	%xmm0, -7264(%rbp)
- 7060      A0E3FFFF 
- 7061 5cb4 660F6F95 		movdqa	-8880(%rbp), %xmm2
- 7061      50DDFFFF 
- 7062 5cbc F30F7F95 		movdqu	%xmm2, -7168(%rbp)
- 7062      00E4FFFF 
- 7063              	.LBB2028:
- 7064              	.LBB2029:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7065              		.loc 2 1278 0
- 7066 5cc4 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7066      00000000 
- 7067 5ccc F30F6F8D 		movdqu	-7168(%rbp), %xmm1
- 7067      00E4FFFF 
- 7068 5cd4 F30F7F8D 		movdqu	%xmm1, -7136(%rbp)
- 7068      20E4FFFF 
- 7069 5cdc F30F7F85 		movdqu	%xmm0, -7152(%rbp)
- 7069      10E4FFFF 
- 7070 5ce4 F30F6F85 		movdqu	-7136(%rbp), %xmm0
- 7070      20E4FFFF 
- 7071 5cec F30F7F85 		movdqu	%xmm0, -7104(%rbp)
- 7071      40E4FFFF 
- 7072 5cf4 F30F6F85 		movdqu	-7152(%rbp), %xmm0
- 7072      10E4FFFF 
- 7073 5cfc F30F7F85 		movdqu	%xmm0, -7120(%rbp)
- 7073      30E4FFFF 
- 7074              	.LBB2030:
- 7075              	.LBB2031:
- 7076              	.LBB2032:
- 7077              	.LBB2033:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7078              		.loc 3 529 0
- 7079 5d04 F30F6F8D 		movdqu	-7120(%rbp), %xmm1
- 7079      30E4FFFF 
- 7080 5d0c F30F6F85 		movdqu	-7104(%rbp), %xmm0
- 7080      40E4FFFF 
- 7081 5d14 660F3800 		pshufb	%xmm1, %xmm0
- 7081      C1
- 7082              	.LBE2033:
- 7083              	.LBE2032:
- 7084              	.LBE2031:
- 7085              	.LBE2030:
- 7086              	.LBE2029:
- 7087              	.LBE2028:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7088              		.loc 2 1568 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 233
-
-
- 7089 5d19 660F7F85 		movdqa	%xmm0, -8880(%rbp)
- 7089      50DDFFFF 
- 7090 5d21 660F6F85 		movdqa	-8880(%rbp), %xmm0
- 7090      50DDFFFF 
- 7091 5d29 660FEF85 		pxor	-7264(%rbp), %xmm0
- 7091      A0E3FFFF 
- 7092 5d31 F30F7F85 		movdqu	%xmm0, -7264(%rbp)
- 7092      A0E3FFFF 
- 7093 5d39 660F6F85 		movdqa	-8880(%rbp), %xmm0
- 7093      50DDFFFF 
- 7094 5d41 F30F7F85 		movdqu	%xmm0, -7088(%rbp)
- 7094      50E4FFFF 
- 7095              	.LBB2034:
- 7096              	.LBB2035:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7097              		.loc 2 1278 0
- 7098 5d49 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7098      00000000 
- 7099 5d51 F30F6F8D 		movdqu	-7088(%rbp), %xmm1
- 7099      50E4FFFF 
- 7100 5d59 F30F7F8D 		movdqu	%xmm1, -7056(%rbp)
- 7100      70E4FFFF 
- 7101 5d61 F30F7F85 		movdqu	%xmm0, -7072(%rbp)
- 7101      60E4FFFF 
- 7102 5d69 F30F6F85 		movdqu	-7056(%rbp), %xmm0
- 7102      70E4FFFF 
- 7103 5d71 F30F7F85 		movdqu	%xmm0, -7024(%rbp)
- 7103      90E4FFFF 
- 7104 5d79 F30F6F85 		movdqu	-7072(%rbp), %xmm0
- 7104      60E4FFFF 
- 7105 5d81 F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 7105      80E4FFFF 
- 7106              	.LBB2036:
- 7107              	.LBB2037:
- 7108              	.LBB2038:
- 7109              	.LBB2039:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7110              		.loc 3 529 0
- 7111 5d89 F30F6F8D 		movdqu	-7040(%rbp), %xmm1
- 7111      80E4FFFF 
- 7112 5d91 F30F6F85 		movdqu	-7024(%rbp), %xmm0
- 7112      90E4FFFF 
- 7113 5d99 660F3800 		pshufb	%xmm1, %xmm0
- 7113      C1
- 7114              	.LBE2039:
- 7115              	.LBE2038:
- 7116              	.LBE2037:
- 7117              	.LBE2036:
- 7118              	.LBE2035:
- 7119              	.LBE2034:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7120              		.loc 2 1569 0
- 7121 5d9e 660F7F85 		movdqa	%xmm0, -8880(%rbp)
- 7121      50DDFFFF 
- 7122 5da6 660F6F85 		movdqa	-8880(%rbp), %xmm0
- 7122      50DDFFFF 
- 7123 5dae 660FEF85 		pxor	-7264(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 234
-
-
- 7123      A0E3FFFF 
- 7124 5db6 F30F7F85 		movdqu	%xmm0, -7264(%rbp)
- 7124      A0E3FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7125              		.loc 2 1571 0
- 7126 5dbe F30F6F85 		movdqu	-7264(%rbp), %xmm0
- 7126      A0E3FFFF 
- 7127              	.LBE2021:
- 7128              	.LBE2020:
-1800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k6    : k6^k7 :k6^k7^k8:k6^k7^k8^k9   */
- 7129              		.loc 2 1802 0
- 7130 5dc6 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 7130      B0DCFFFF 
- 7131 5dce 660F6F95 		movdqa	-8976(%rbp), %xmm2
- 7131      F0DCFFFF 
- 7132 5dd6 F30F7F95 		movdqu	%xmm2, -7008(%rbp)
- 7132      A0E4FFFF 
- 7133              	.LBB2040:
- 7134              	.LBB2041:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7135              		.loc 2 1565 0
- 7136 5dde F30F6F85 		movdqu	-7008(%rbp), %xmm0
- 7136      A0E4FFFF 
- 7137 5de6 660F7F85 		movdqa	%xmm0, -8864(%rbp)
- 7137      60DDFFFF 
- 7138 5dee 660F6F95 		movdqa	-8864(%rbp), %xmm2
- 7138      60DDFFFF 
- 7139 5df6 F30F7F95 		movdqu	%xmm2, -6992(%rbp)
- 7139      B0E4FFFF 
- 7140              	.LBB2042:
- 7141              	.LBB2043:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7142              		.loc 2 1278 0
- 7143 5dfe 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7143      00000000 
- 7144 5e06 F30F6F8D 		movdqu	-6992(%rbp), %xmm1
- 7144      B0E4FFFF 
- 7145 5e0e F30F7F8D 		movdqu	%xmm1, -6960(%rbp)
- 7145      D0E4FFFF 
- 7146 5e16 F30F7F85 		movdqu	%xmm0, -6976(%rbp)
- 7146      C0E4FFFF 
- 7147 5e1e F30F6F85 		movdqu	-6960(%rbp), %xmm0
- 7147      D0E4FFFF 
- 7148 5e26 F30F7F85 		movdqu	%xmm0, -6928(%rbp)
- 7148      F0E4FFFF 
- 7149 5e2e F30F6F85 		movdqu	-6976(%rbp), %xmm0
- 7149      C0E4FFFF 
- 7150 5e36 F30F7F85 		movdqu	%xmm0, -6944(%rbp)
- 7150      E0E4FFFF 
- 7151              	.LBB2044:
- 7152              	.LBB2045:
- 7153              	.LBB2046:
- 7154              	.LBB2047:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7155              		.loc 3 529 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 235
-
-
- 7156 5e3e F30F6F8D 		movdqu	-6944(%rbp), %xmm1
- 7156      E0E4FFFF 
- 7157 5e46 F30F6F85 		movdqu	-6928(%rbp), %xmm0
- 7157      F0E4FFFF 
- 7158 5e4e 660F3800 		pshufb	%xmm1, %xmm0
- 7158      C1
- 7159              	.LBE2047:
- 7160              	.LBE2046:
- 7161              	.LBE2045:
- 7162              	.LBE2044:
- 7163              	.LBE2043:
- 7164              	.LBE2042:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7165              		.loc 2 1567 0
- 7166 5e53 660F7F85 		movdqa	%xmm0, -8864(%rbp)
- 7166      60DDFFFF 
- 7167 5e5b 660F6F85 		movdqa	-8864(%rbp), %xmm0
- 7167      60DDFFFF 
- 7168 5e63 660FEF85 		pxor	-7008(%rbp), %xmm0
- 7168      A0E4FFFF 
- 7169 5e6b F30F7F85 		movdqu	%xmm0, -7008(%rbp)
- 7169      A0E4FFFF 
- 7170 5e73 660F6F85 		movdqa	-8864(%rbp), %xmm0
- 7170      60DDFFFF 
- 7171 5e7b F30F7F85 		movdqu	%xmm0, -6912(%rbp)
- 7171      00E5FFFF 
- 7172              	.LBB2048:
- 7173              	.LBB2049:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7174              		.loc 2 1278 0
- 7175 5e83 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7175      00000000 
- 7176 5e8b F30F6F8D 		movdqu	-6912(%rbp), %xmm1
- 7176      00E5FFFF 
- 7177 5e93 F30F7F8D 		movdqu	%xmm1, -6880(%rbp)
- 7177      20E5FFFF 
- 7178 5e9b F30F7F85 		movdqu	%xmm0, -6896(%rbp)
- 7178      10E5FFFF 
- 7179 5ea3 F30F6F85 		movdqu	-6880(%rbp), %xmm0
- 7179      20E5FFFF 
- 7180 5eab F30F7F85 		movdqu	%xmm0, -6848(%rbp)
- 7180      40E5FFFF 
- 7181 5eb3 F30F6F85 		movdqu	-6896(%rbp), %xmm0
- 7181      10E5FFFF 
- 7182 5ebb F30F7F85 		movdqu	%xmm0, -6864(%rbp)
- 7182      30E5FFFF 
- 7183              	.LBB2050:
- 7184              	.LBB2051:
- 7185              	.LBB2052:
- 7186              	.LBB2053:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7187              		.loc 3 529 0
- 7188 5ec3 F30F6F8D 		movdqu	-6864(%rbp), %xmm1
- 7188      30E5FFFF 
- 7189 5ecb F30F6F85 		movdqu	-6848(%rbp), %xmm0
- 7189      40E5FFFF 
- 7190 5ed3 660F3800 		pshufb	%xmm1, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 236
-
-
- 7190      C1
- 7191              	.LBE2053:
- 7192              	.LBE2052:
- 7193              	.LBE2051:
- 7194              	.LBE2050:
- 7195              	.LBE2049:
- 7196              	.LBE2048:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7197              		.loc 2 1568 0
- 7198 5ed8 660F7F85 		movdqa	%xmm0, -8864(%rbp)
- 7198      60DDFFFF 
- 7199 5ee0 660F6F85 		movdqa	-8864(%rbp), %xmm0
- 7199      60DDFFFF 
- 7200 5ee8 660FEF85 		pxor	-7008(%rbp), %xmm0
- 7200      A0E4FFFF 
- 7201 5ef0 F30F7F85 		movdqu	%xmm0, -7008(%rbp)
- 7201      A0E4FFFF 
- 7202 5ef8 660F6F95 		movdqa	-8864(%rbp), %xmm2
- 7202      60DDFFFF 
- 7203 5f00 F30F7F95 		movdqu	%xmm2, -6832(%rbp)
- 7203      50E5FFFF 
- 7204              	.LBB2054:
- 7205              	.LBB2055:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7206              		.loc 2 1278 0
- 7207 5f08 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7207      00000000 
- 7208 5f10 F30F6F8D 		movdqu	-6832(%rbp), %xmm1
- 7208      50E5FFFF 
- 7209 5f18 F30F7F8D 		movdqu	%xmm1, -6800(%rbp)
- 7209      70E5FFFF 
- 7210 5f20 F30F7F85 		movdqu	%xmm0, -6816(%rbp)
- 7210      60E5FFFF 
- 7211 5f28 F30F6F85 		movdqu	-6800(%rbp), %xmm0
- 7211      70E5FFFF 
- 7212 5f30 F30F7F85 		movdqu	%xmm0, -6768(%rbp)
- 7212      90E5FFFF 
- 7213 5f38 F30F6F85 		movdqu	-6816(%rbp), %xmm0
- 7213      60E5FFFF 
- 7214 5f40 F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 7214      80E5FFFF 
- 7215              	.LBB2056:
- 7216              	.LBB2057:
- 7217              	.LBB2058:
- 7218              	.LBB2059:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7219              		.loc 3 529 0
- 7220 5f48 F30F6F8D 		movdqu	-6784(%rbp), %xmm1
- 7220      80E5FFFF 
- 7221 5f50 F30F6F85 		movdqu	-6768(%rbp), %xmm0
- 7221      90E5FFFF 
- 7222 5f58 660F3800 		pshufb	%xmm1, %xmm0
- 7222      C1
- 7223              	.LBE2059:
- 7224              	.LBE2058:
- 7225              	.LBE2057:
- 7226              	.LBE2056:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 237
-
-
- 7227              	.LBE2055:
- 7228              	.LBE2054:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7229              		.loc 2 1569 0
- 7230 5f5d 660F7F85 		movdqa	%xmm0, -8864(%rbp)
- 7230      60DDFFFF 
- 7231 5f65 660F6F85 		movdqa	-8864(%rbp), %xmm0
- 7231      60DDFFFF 
- 7232 5f6d 660FEF85 		pxor	-7008(%rbp), %xmm0
- 7232      A0E4FFFF 
- 7233 5f75 F30F7F85 		movdqu	%xmm0, -7008(%rbp)
- 7233      A0E4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7234              		.loc 2 1571 0
- 7235 5f7d F30F6F85 		movdqu	-7008(%rbp), %xmm0
- 7235      A0E4FFFF 
- 7236              	.LBE2041:
- 7237              	.LBE2040:
-1803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k10   :k10^k11: k10^k11: k10^k11      */
- 7238              		.loc 2 1803 0
- 7239 5f85 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 7239      C0DCFFFF 
-1804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 7240              		.loc 2 1804 0
- 7241 5f8d 660F6F85 		movdqa	-9008(%rbp), %xmm0
- 7241      D0DCFFFF 
- 7242 5f95 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 7242      00DDFFFF 
- 7243 5f9d 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 7243      00DDFFFF 
- 7244 5fa5 F30F7F95 		movdqu	%xmm2, -6736(%rbp)
- 7244      B0E5FFFF 
- 7245              	.LBB2060:
- 7246              	.LBB2061:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 7247              		.loc 2 1681 0
- 7248 5fad B8020000 		movl	$2, %eax
- 7248      00
- 7249 5fb2 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 7249      00000000 
- 7250 5fba F30F7F85 		movdqu	%xmm0, -6704(%rbp)
- 7250      D0E5FFFF 
- 7251 5fc2 8985CCE5 		movl	%eax, -6708(%rbp)
- 7251      FFFF
- 7252 5fc8 F30F6F85 		movdqu	-6704(%rbp), %xmm0
- 7252      D0E5FFFF 
- 7253 5fd0 F30F7F85 		movdqu	%xmm0, -6672(%rbp)
- 7253      F0E5FFFF 
- 7254 5fd8 8B85CCE5 		movl	-6708(%rbp), %eax
- 7254      FFFF
- 7255 5fde 8985ECE5 		movl	%eax, -6676(%rbp)
- 7255      FFFF
- 7256              	.LBB2062:
- 7257              	.LBB2063:
- 7258              	.LBB2064:
- 7259              	.LBB2065:
- 7260              		.loc 3 598 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 238
-
-
- 7261 5fe4 8B85ECE5 		movl	-6676(%rbp), %eax
- 7261      FFFF
- 7262 5fea F30F6F85 		movdqu	-6672(%rbp), %xmm0
- 7262      F0E5FFFF 
- 7263 5ff2 660F3A22 		pinsrd	$3, %eax, %xmm0
- 7263      C003
- 7264              	.LBE2065:
- 7265              	.LBE2064:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 7266              		.loc 2 519 0
- 7267 5ff8 F30F7F85 		movdqu	%xmm0, -6704(%rbp)
- 7267      D0E5FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7268              		.loc 2 526 0
- 7269 6000 F30F6F85 		movdqu	-6704(%rbp), %xmm0
- 7269      D0E5FFFF 
- 7270              	.LBE2063:
- 7271              	.LBE2062:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 7272              		.loc 2 1681 0
- 7273 6008 660F7F85 		movdqa	%xmm0, -8832(%rbp)
- 7273      80DDFFFF 
- 7274 6010 F30F6F85 		movdqu	-6736(%rbp), %xmm0
- 7274      B0E5FFFF 
- 7275 6018 F30F7F85 		movdqu	%xmm0, -6656(%rbp)
- 7275      00E6FFFF 
- 7276 6020 F30F6F85 		movdqu	-6656(%rbp), %xmm0
- 7276      00E6FFFF 
- 7277 6028 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 7277      20E6FFFF 
- 7278 6030 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 7278      000000
- 7279 6037 48898518 		movq	%rax, -6632(%rbp)
- 7279      E6FFFF
- 7280              	.LBB2066:
- 7281              	.LBB2067:
- 7282              	.LBB2068:
- 7283              	.LBB2069:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 7284              		.loc 2 851 0
- 7285 603e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 7285      00000000 
- 7286 6046 F30F7F85 		movdqu	%xmm0, -6592(%rbp)
- 7286      40E6FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 7287              		.loc 2 854 0
- 7288 604e 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 7288      00000000 
- 7289 6056 F30F6F8D 		movdqu	-6624(%rbp), %xmm1
- 7289      20E6FFFF 
- 7290 605e F30F7F8D 		movdqu	%xmm1, -6512(%rbp)
- 7290      90E6FFFF 
- 7291 6066 F30F7F85 		movdqu	%xmm0, -6528(%rbp)
- 7291      80E6FFFF 
- 7292              	.LBB2070:
- 7293              	.LBB2071:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 239
-
-
- 7294              		.loc 2 206 0
- 7295 606e F30F6F85 		movdqu	-6528(%rbp), %xmm0
- 7295      80E6FFFF 
- 7296 6076 F30F6F8D 		movdqu	-6512(%rbp), %xmm1
- 7296      90E6FFFF 
- 7297 607e 660FDBC1 		pand	%xmm1, %xmm0
- 7298              	.LBE2071:
- 7299              	.LBE2070:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 7300              		.loc 2 854 0
- 7301 6082 F30F7F85 		movdqu	%xmm0, -6544(%rbp)
- 7301      70E6FFFF 
- 7302 608a F30F6F85 		movdqu	-6624(%rbp), %xmm0
- 7302      20E6FFFF 
- 7303 6092 F30F7F85 		movdqu	%xmm0, -6480(%rbp)
- 7303      B0E6FFFF 
- 7304              	.LBB2072:
- 7305              	.LBB2073:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 7306              		.loc 3 433 0
- 7307 609a F30F6F85 		movdqu	-6480(%rbp), %xmm0
- 7307      B0E6FFFF 
- 7308 60a2 660F72D0 		psrld	$4, %xmm0
- 7308      04
- 7309              	.LBE2073:
- 7310              	.LBE2072:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 7311              		.loc 2 857 0
- 7312 60a7 F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 7312      60E6FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 7313              		.loc 2 859 0
- 7314 60af 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 7314      00000000 
- 7315 60b7 F30F6F8D 		movdqu	-6560(%rbp), %xmm1
- 7315      60E6FFFF 
- 7316 60bf F30F7F8D 		movdqu	%xmm1, -6448(%rbp)
- 7316      D0E6FFFF 
- 7317 60c7 F30F7F85 		movdqu	%xmm0, -6464(%rbp)
- 7317      C0E6FFFF 
- 7318              	.LBB2074:
- 7319              	.LBB2075:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 7320              		.loc 2 206 0
- 7321 60cf F30F6F85 		movdqu	-6464(%rbp), %xmm0
- 7321      C0E6FFFF 
- 7322 60d7 F30F6F8D 		movdqu	-6448(%rbp), %xmm1
- 7322      D0E6FFFF 
- 7323 60df 660FDBC1 		pand	%xmm1, %xmm0
- 7324              	.LBE2075:
- 7325              	.LBE2074:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 7326              		.loc 2 859 0
- 7327 60e3 F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 7327      60E6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 7328              		.loc 2 866 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 240
-
-
- 7329 60eb C7853CE6 		movl	$0, -6596(%rbp)
- 7329      FFFF0000 
- 7329      0000
- 7330 60f5 E9BE0100 		jmp	.L108
- 7330      00
- 7331              	.L109:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 7332              		.loc 2 868 0
- 7333 60fa 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 7333      00000000 
- 7334 6102 F30F7F85 		movdqu	%xmm0, -6416(%rbp)
- 7334      F0E6FFFF 
- 7335 610a F30F6F85 		movdqu	-6560(%rbp), %xmm0
- 7335      60E6FFFF 
- 7336 6112 F30F7F85 		movdqu	%xmm0, -6432(%rbp)
- 7336      E0E6FFFF 
- 7337 611a F30F6F85 		movdqu	-6416(%rbp), %xmm0
- 7337      F0E6FFFF 
- 7338 6122 F30F7F85 		movdqu	%xmm0, -6384(%rbp)
- 7338      10E7FFFF 
- 7339 612a F30F6F85 		movdqu	-6432(%rbp), %xmm0
- 7339      E0E6FFFF 
- 7340 6132 F30F7F85 		movdqu	%xmm0, -6400(%rbp)
- 7340      00E7FFFF 
- 7341              	.LBB2076:
- 7342              	.LBB2077:
- 7343              	.LBB2078:
- 7344              	.LBB2079:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7345              		.loc 3 529 0
- 7346 613a F30F6F8D 		movdqu	-6400(%rbp), %xmm1
- 7346      00E7FFFF 
- 7347 6142 F30F6F85 		movdqu	-6384(%rbp), %xmm0
- 7347      10E7FFFF 
- 7348 614a 660F3800 		pshufb	%xmm1, %xmm0
- 7348      C1
- 7349              	.LBE2079:
- 7350              	.LBE2078:
- 7351              	.LBE2077:
- 7352              	.LBE2076:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 7353              		.loc 2 868 0
- 7354 614f F30F7F85 		movdqu	%xmm0, -6576(%rbp)
- 7354      50E6FFFF 
- 7355 6157 F30F6F85 		movdqu	-6544(%rbp), %xmm0
- 7355      70E6FFFF 
- 7356 615f F30F7F85 		movdqu	%xmm0, -6352(%rbp)
- 7356      30E7FFFF 
- 7357 6167 F30F6F85 		movdqu	-6576(%rbp), %xmm0
- 7357      50E6FFFF 
- 7358 616f F30F7F85 		movdqu	%xmm0, -6368(%rbp)
- 7358      20E7FFFF 
- 7359              	.LBB2080:
- 7360              	.LBB2081:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 7361              		.loc 2 234 0
- 7362 6177 F30F6F85 		movdqu	-6368(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 241
-
-
- 7362      20E7FFFF 
- 7363 617f F30F6F8D 		movdqu	-6352(%rbp), %xmm1
- 7363      30E7FFFF 
- 7364 6187 660FEBC1 		por	%xmm1, %xmm0
- 7365              	.LBE2081:
- 7366              	.LBE2080:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 7367              		.loc 2 870 0
- 7368 618b F30F7F85 		movdqu	%xmm0, -6576(%rbp)
- 7368      50E6FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 7369              		.loc 2 872 0
- 7370 6193 8B853CE6 		mov	-6596(%rbp), %eax
- 7370      FFFF
- 7371 6199 48C1E004 		salq	$4, %rax
- 7372 619d 48038518 		addq	-6632(%rbp), %rax
- 7372      E6FFFF
- 7373 61a4 660F6F00 		movdqa	(%rax), %xmm0
- 7374 61a8 F30F7F85 		movdqu	%xmm0, -6320(%rbp)
- 7374      50E7FFFF 
- 7375 61b0 F30F6F85 		movdqu	-6576(%rbp), %xmm0
- 7375      50E6FFFF 
- 7376 61b8 F30F7F85 		movdqu	%xmm0, -6336(%rbp)
- 7376      40E7FFFF 
- 7377 61c0 F30F6F85 		movdqu	-6320(%rbp), %xmm0
- 7377      50E7FFFF 
- 7378 61c8 F30F7F85 		movdqu	%xmm0, -6288(%rbp)
- 7378      70E7FFFF 
- 7379 61d0 F30F6F85 		movdqu	-6336(%rbp), %xmm0
- 7379      40E7FFFF 
- 7380 61d8 F30F7F85 		movdqu	%xmm0, -6304(%rbp)
- 7380      60E7FFFF 
- 7381              	.LBB2082:
- 7382              	.LBB2083:
- 7383              	.LBB2084:
- 7384              	.LBB2085:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7385              		.loc 3 529 0
- 7386 61e0 F30F6F8D 		movdqu	-6304(%rbp), %xmm1
- 7386      60E7FFFF 
- 7387 61e8 F30F6F85 		movdqu	-6288(%rbp), %xmm0
- 7387      70E7FFFF 
- 7388 61f0 660F3800 		pshufb	%xmm1, %xmm0
- 7388      C1
- 7389              	.LBE2085:
- 7390              	.LBE2084:
- 7391              	.LBE2083:
- 7392              	.LBE2082:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 7393              		.loc 2 872 0
- 7394 61f5 F30F7F85 		movdqu	%xmm0, -6576(%rbp)
- 7394      50E6FFFF 
- 7395 61fd F30F6F85 		movdqu	-6592(%rbp), %xmm0
- 7395      40E6FFFF 
- 7396 6205 F30F7F85 		movdqu	%xmm0, -6256(%rbp)
- 7396      90E7FFFF 
- 7397 620d F30F6F85 		movdqu	-6576(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 242
-
-
- 7397      50E6FFFF 
- 7398 6215 F30F7F85 		movdqu	%xmm0, -6272(%rbp)
- 7398      80E7FFFF 
- 7399              	.LBB2086:
- 7400              	.LBB2087:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 7401              		.loc 2 234 0
- 7402 621d F30F6F85 		movdqu	-6272(%rbp), %xmm0
- 7402      80E7FFFF 
- 7403 6225 F30F6F8D 		movdqu	-6256(%rbp), %xmm1
- 7403      90E7FFFF 
- 7404 622d 660FEBC1 		por	%xmm1, %xmm0
- 7405              	.LBE2087:
- 7406              	.LBE2086:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 7407              		.loc 2 874 0
- 7408 6231 F30F7F85 		movdqu	%xmm0, -6592(%rbp)
- 7408      40E6FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 7409              		.loc 2 876 0
- 7410 6239 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 7410      00000000 
- 7411 6241 F30F6F8D 		movdqu	-6560(%rbp), %xmm1
- 7411      60E6FFFF 
- 7412 6249 F30F7F8D 		movdqu	%xmm1, -6224(%rbp)
- 7412      B0E7FFFF 
- 7413 6251 F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 7413      A0E7FFFF 
- 7414              	.LBB2088:
- 7415              	.LBB2089:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 7416              		.loc 2 290 0
- 7417 6259 F30F6F8D 		movdqu	-6240(%rbp), %xmm1
- 7417      A0E7FFFF 
- 7418 6261 F30F6F85 		movdqu	-6224(%rbp), %xmm0
- 7418      B0E7FFFF 
- 7419 6269 660FF8C1 		psubb	%xmm1, %xmm0
- 7420              	.LBE2089:
- 7421              	.LBE2088:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 7422              		.loc 2 876 0
- 7423 626d F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 7423      60E6FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 7424              		.loc 2 878 0
- 7425 6275 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 7425      00000000 
- 7426 627d F30F6F8D 		movdqu	-6560(%rbp), %xmm1
- 7426      60E6FFFF 
- 7427 6285 F30F7F8D 		movdqu	%xmm1, -6192(%rbp)
- 7427      D0E7FFFF 
- 7428 628d F30F7F85 		movdqu	%xmm0, -6208(%rbp)
- 7428      C0E7FFFF 
- 7429              	.LBB2090:
- 7430              	.LBB2091:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 7431              		.loc 2 206 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 243
-
-
- 7432 6295 F30F6F85 		movdqu	-6208(%rbp), %xmm0
- 7432      C0E7FFFF 
- 7433 629d F30F6F8D 		movdqu	-6192(%rbp), %xmm1
- 7433      D0E7FFFF 
- 7434 62a5 660FDBC1 		pand	%xmm1, %xmm0
- 7435              	.LBE2091:
- 7436              	.LBE2090:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 7437              		.loc 2 878 0
- 7438 62a9 F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 7438      60E6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 7439              		.loc 2 866 0
- 7440 62b1 83853CE6 		addl	$1, -6596(%rbp)
- 7440      FFFF01
- 7441              	.L108:
- 7442 62b8 83BD3CE6 		cmpl	$15, -6596(%rbp)
- 7442      FFFF0F
- 7443 62bf 0F8635FE 		jbe	.L109
- 7443      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 7444              		.loc 2 882 0
- 7445 62c5 F30F6F85 		movdqu	-6592(%rbp), %xmm0
- 7445      40E6FFFF 
- 7446              	.LBE2069:
- 7447              	.LBE2068:
- 7448              	.LBE2067:
- 7449              	.LBE2066:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 7450              		.loc 2 1682 0
- 7451 62cd 660F7F85 		movdqa	%xmm0, -8848(%rbp)
- 7451      70DDFFFF 
- 7452              	.LBB2092:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 7453              		.loc 2 1683 0
- 7454 62d5 660F6F85 		movdqa	-8848(%rbp), %xmm0
- 7454      70DDFFFF 
- 7455 62dd F30F7F85 		movdqu	%xmm0, -8448(%rbp)
- 7455      00DFFFFF 
- 7456 62e5 E8000000 		call	KDbgWriterGet at PLT
- 7456      00
- 7457 62ea 4885C0   		testq	%rax, %rax
- 7458 62ed 7479     		je	.L111
- 7459 62ef BF010000 		movl	$1, %edi
- 7459      00
- 7460 62f4 E8000000 		call	KDbgCondToFlag at PLT
- 7460      00
- 7461 62f9 4889C6   		movq	%rax, %rsi
- 7462 62fc BF100000 		movl	$16, %edi
- 7462      00
- 7463 6301 E8000000 		call	KDbgTestModConds at PLT
- 7463      00
- 7464 6306 84C0     		testb	%al, %al
- 7465 6308 745E     		je	.L111
- 7466 630a 8B850CDF 		movl	-8436(%rbp), %eax
- 7466      FFFF
- 7467 6310 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 244
-
-
- 7468 6312 E8E99CFF 		call	bswap_32
- 7468      FF
- 7469 6317 4189C5   		movl	%eax, %r13d
- 7470 631a 8B8508DF 		movl	-8440(%rbp), %eax
- 7470      FFFF
- 7471 6320 89C7     		movl	%eax, %edi
- 7472 6322 E8D99CFF 		call	bswap_32
- 7472      FF
- 7473 6327 4189C4   		movl	%eax, %r12d
- 7474 632a 8B8504DF 		movl	-8444(%rbp), %eax
- 7474      FFFF
- 7475 6330 89C7     		movl	%eax, %edi
- 7476 6332 E8C99CFF 		call	bswap_32
- 7476      FF
- 7477 6337 89C3     		movl	%eax, %ebx
- 7478 6339 8B8500DF 		movl	-8448(%rbp), %eax
- 7478      FFFF
- 7479 633f 89C7     		movl	%eax, %edi
- 7480 6341 E8BA9CFF 		call	bswap_32
- 7480      FF
- 7481 6346 4589E9   		movl	%r13d, %r9d
- 7482 6349 4589E0   		movl	%r12d, %r8d
- 7483 634c 89D9     		movl	%ebx, %ecx
- 7484 634e 89C2     		movl	%eax, %edx
- 7485 6350 488D3500 		leaq	.LC0(%rip), %rsi
- 7485      000000
- 7486 6357 488D3D00 		leaq	.LC1(%rip), %rdi
- 7486      000000
- 7487 635e B8000000 		movl	$0, %eax
- 7487      00
- 7488 6363 E8000000 		call	KDbgMsg at PLT
- 7488      00
- 7489              	.L111:
- 7490 6368 660F6F95 		movdqa	-8848(%rbp), %xmm2
- 7490      70DDFFFF 
- 7491 6370 F30F7F95 		movdqu	%xmm2, -6176(%rbp)
- 7491      E0E7FFFF 
- 7492              	.LBE2092:
- 7493              	.LBB2093:
- 7494              	.LBB2094:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 7495              		.loc 2 667 0
- 7496 6378 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 7496      00000000 
- 7497 6380 F30F6F8D 		movdqu	-6176(%rbp), %xmm1
- 7497      E0E7FFFF 
- 7498 6388 F30F7F8D 		movdqu	%xmm1, -6144(%rbp)
- 7498      00E8FFFF 
- 7499 6390 F30F7F85 		movdqu	%xmm0, -6160(%rbp)
- 7499      F0E7FFFF 
- 7500 6398 F30F6F85 		movdqu	-6144(%rbp), %xmm0
- 7500      00E8FFFF 
- 7501 63a0 F30F7F85 		movdqu	%xmm0, -6112(%rbp)
- 7501      20E8FFFF 
- 7502 63a8 F30F6F85 		movdqu	-6160(%rbp), %xmm0
- 7502      F0E7FFFF 
- 7503 63b0 F30F7F85 		movdqu	%xmm0, -6128(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 245
-
-
- 7503      10E8FFFF 
- 7504              	.LBB2095:
- 7505              	.LBB2096:
- 7506              	.LBB2097:
- 7507              	.LBB2098:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7508              		.loc 3 529 0
- 7509 63b8 F30F6F8D 		movdqu	-6128(%rbp), %xmm1
- 7509      10E8FFFF 
- 7510 63c0 F30F6F85 		movdqu	-6112(%rbp), %xmm0
- 7510      20E8FFFF 
- 7511 63c8 660F3800 		pshufb	%xmm1, %xmm0
- 7511      C1
- 7512              	.LBE2098:
- 7513              	.LBE2097:
- 7514              	.LBE2096:
- 7515              	.LBE2095:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 7516              		.loc 2 667 0
- 7517 63cd F30F7F85 		movdqu	%xmm0, -6176(%rbp)
- 7517      E0E7FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 7518              		.loc 2 668 0
- 7519 63d5 F30F6F85 		movdqu	-6176(%rbp), %xmm0
- 7519      E0E7FFFF 
- 7520              	.LBE2094:
- 7521              	.LBE2093:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 7522              		.loc 2 1684 0
- 7523 63dd 660F7F85 		movdqa	%xmm0, -8848(%rbp)
- 7523      70DDFFFF 
- 7524              	.LBB2099:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 7525              		.loc 2 1685 0
- 7526 63e5 660F6F85 		movdqa	-8848(%rbp), %xmm0
- 7526      70DDFFFF 
- 7527 63ed F30F7F85 		movdqu	%xmm0, -8464(%rbp)
- 7527      F0DEFFFF 
- 7528 63f5 E8000000 		call	KDbgWriterGet at PLT
- 7528      00
- 7529 63fa 4885C0   		testq	%rax, %rax
- 7530 63fd 7479     		je	.L113
- 7531 63ff BF010000 		movl	$1, %edi
- 7531      00
- 7532 6404 E8000000 		call	KDbgCondToFlag at PLT
- 7532      00
- 7533 6409 4889C6   		movq	%rax, %rsi
- 7534 640c BF100000 		movl	$16, %edi
- 7534      00
- 7535 6411 E8000000 		call	KDbgTestModConds at PLT
- 7535      00
- 7536 6416 84C0     		testb	%al, %al
- 7537 6418 745E     		je	.L113
- 7538 641a 8B85FCDE 		movl	-8452(%rbp), %eax
- 7538      FFFF
- 7539 6420 89C7     		movl	%eax, %edi
- 7540 6422 E8D99BFF 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 246
-
-
- 7540      FF
- 7541 6427 4189C5   		movl	%eax, %r13d
- 7542 642a 8B85F8DE 		movl	-8456(%rbp), %eax
- 7542      FFFF
- 7543 6430 89C7     		movl	%eax, %edi
- 7544 6432 E8C99BFF 		call	bswap_32
- 7544      FF
- 7545 6437 4189C4   		movl	%eax, %r12d
- 7546 643a 8B85F4DE 		movl	-8460(%rbp), %eax
- 7546      FFFF
- 7547 6440 89C7     		movl	%eax, %edi
- 7548 6442 E8B99BFF 		call	bswap_32
- 7548      FF
- 7549 6447 89C3     		movl	%eax, %ebx
- 7550 6449 8B85F0DE 		movl	-8464(%rbp), %eax
- 7550      FFFF
- 7551 644f 89C7     		movl	%eax, %edi
- 7552 6451 E8AA9BFF 		call	bswap_32
- 7552      FF
- 7553 6456 4589E9   		movl	%r13d, %r9d
- 7554 6459 4589E0   		movl	%r12d, %r8d
- 7555 645c 89D9     		movl	%ebx, %ecx
- 7556 645e 89C2     		movl	%eax, %edx
- 7557 6460 488D3500 		leaq	.LC2(%rip), %rsi
- 7557      000000
- 7558 6467 488D3D00 		leaq	.LC1(%rip), %rdi
- 7558      000000
- 7559 646e B8000000 		movl	$0, %eax
- 7559      00
- 7560 6473 E8000000 		call	KDbgMsg at PLT
- 7560      00
- 7561              	.L113:
- 7562 6478 660F6F95 		movdqa	-8848(%rbp), %xmm2
- 7562      70DDFFFF 
- 7563 6480 F30F7F95 		movdqu	%xmm2, -6080(%rbp)
- 7563      40E8FFFF 
- 7564 6488 660F6F85 		movdqa	-8832(%rbp), %xmm0
- 7564      80DDFFFF 
- 7565 6490 F30F7F85 		movdqu	%xmm0, -6096(%rbp)
- 7565      30E8FFFF 
- 7566              	.LBE2099:
- 7567              	.LBB2100:
- 7568              	.LBB2101:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 7569              		.loc 2 178 0
- 7570 6498 F30F6F85 		movdqu	-6096(%rbp), %xmm0
- 7570      30E8FFFF 
- 7571 64a0 F30F6F8D 		movdqu	-6080(%rbp), %xmm1
- 7571      40E8FFFF 
- 7572 64a8 660FEFC1 		pxor	%xmm1, %xmm0
- 7573              	.LBE2101:
- 7574              	.LBE2100:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 7575              		.loc 2 1686 0
- 7576 64ac 660F7F85 		movdqa	%xmm0, -8848(%rbp)
- 7576      70DDFFFF 
- 7577              	.LBB2102:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 247
-
-
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 7578              		.loc 2 1687 0
- 7579 64b4 660F6F95 		movdqa	-8848(%rbp), %xmm2
- 7579      70DDFFFF 
- 7580 64bc F30F7F95 		movdqu	%xmm2, -8480(%rbp)
- 7580      E0DEFFFF 
- 7581 64c4 E8000000 		call	KDbgWriterGet at PLT
- 7581      00
- 7582 64c9 4885C0   		testq	%rax, %rax
- 7583 64cc 7479     		je	.L115
- 7584 64ce BF010000 		movl	$1, %edi
- 7584      00
- 7585 64d3 E8000000 		call	KDbgCondToFlag at PLT
- 7585      00
- 7586 64d8 4889C6   		movq	%rax, %rsi
- 7587 64db BF100000 		movl	$16, %edi
- 7587      00
- 7588 64e0 E8000000 		call	KDbgTestModConds at PLT
- 7588      00
- 7589 64e5 84C0     		testb	%al, %al
- 7590 64e7 745E     		je	.L115
- 7591 64e9 8B85ECDE 		movl	-8468(%rbp), %eax
- 7591      FFFF
- 7592 64ef 89C7     		movl	%eax, %edi
- 7593 64f1 E80A9BFF 		call	bswap_32
- 7593      FF
- 7594 64f6 4189C5   		movl	%eax, %r13d
- 7595 64f9 8B85E8DE 		movl	-8472(%rbp), %eax
- 7595      FFFF
- 7596 64ff 89C7     		movl	%eax, %edi
- 7597 6501 E8FA9AFF 		call	bswap_32
- 7597      FF
- 7598 6506 4189C4   		movl	%eax, %r12d
- 7599 6509 8B85E4DE 		movl	-8476(%rbp), %eax
- 7599      FFFF
- 7600 650f 89C7     		movl	%eax, %edi
- 7601 6511 E8EA9AFF 		call	bswap_32
- 7601      FF
- 7602 6516 89C3     		movl	%eax, %ebx
- 7603 6518 8B85E0DE 		movl	-8480(%rbp), %eax
- 7603      FFFF
- 7604 651e 89C7     		movl	%eax, %edi
- 7605 6520 E8DB9AFF 		call	bswap_32
- 7605      FF
- 7606 6525 4589E9   		movl	%r13d, %r9d
- 7607 6528 4589E0   		movl	%r12d, %r8d
- 7608 652b 89D9     		movl	%ebx, %ecx
- 7609 652d 89C2     		movl	%eax, %edx
- 7610 652f 488D3500 		leaq	.LC3(%rip), %rsi
- 7610      000000
- 7611 6536 488D3D00 		leaq	.LC1(%rip), %rdi
- 7611      000000
- 7612 653d B8000000 		movl	$0, %eax
- 7612      00
- 7613 6542 E8000000 		call	KDbgMsg at PLT
- 7613      00
- 7614              	.L115:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 248
-
-
- 7615 6547 660F6F85 		movdqa	-8848(%rbp), %xmm0
- 7615      70DDFFFF 
- 7616 654f F30F7F85 		movdqu	%xmm0, -6064(%rbp)
- 7616      50E8FFFF 
- 7617 6557 F30F6F85 		movdqu	-6064(%rbp), %xmm0
- 7617      50E8FFFF 
- 7618 655f F30F7F85 		movdqu	%xmm0, -6032(%rbp)
- 7618      70E8FFFF 
- 7619              	.LBE2102:
- 7620              	.LBB2103:
- 7621              	.LBB2104:
- 7622              	.LBB2105:
- 7623              	.LBB2106:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 7624              		.loc 3 450 0
- 7625 6567 F30F6F85 		movdqu	-6032(%rbp), %xmm0
- 7625      70E8FFFF 
- 7626 656f 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 7626      FF
- 7627              	.LBE2106:
- 7628              	.LBE2105:
- 7629              	.LBE2104:
- 7630              	.LBE2103:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 7631              		.loc 2 1688 0
- 7632 6574 660F7F85 		movdqa	%xmm0, -8848(%rbp)
- 7632      70DDFFFF 
- 7633              	.LBB2107:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 7634              		.loc 2 1689 0
- 7635 657c 660F6F95 		movdqa	-8848(%rbp), %xmm2
- 7635      70DDFFFF 
- 7636 6584 F30F7F95 		movdqu	%xmm2, -8496(%rbp)
- 7636      D0DEFFFF 
- 7637 658c E8000000 		call	KDbgWriterGet at PLT
- 7637      00
- 7638 6591 4885C0   		testq	%rax, %rax
- 7639 6594 7479     		je	.L117
- 7640 6596 BF010000 		movl	$1, %edi
- 7640      00
- 7641 659b E8000000 		call	KDbgCondToFlag at PLT
- 7641      00
- 7642 65a0 4889C6   		movq	%rax, %rsi
- 7643 65a3 BF100000 		movl	$16, %edi
- 7643      00
- 7644 65a8 E8000000 		call	KDbgTestModConds at PLT
- 7644      00
- 7645 65ad 84C0     		testb	%al, %al
- 7646 65af 745E     		je	.L117
- 7647 65b1 8B85DCDE 		movl	-8484(%rbp), %eax
- 7647      FFFF
- 7648 65b7 89C7     		movl	%eax, %edi
- 7649 65b9 E8429AFF 		call	bswap_32
- 7649      FF
- 7650 65be 4189C5   		movl	%eax, %r13d
- 7651 65c1 8B85D8DE 		movl	-8488(%rbp), %eax
- 7651      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 249
-
-
- 7652 65c7 89C7     		movl	%eax, %edi
- 7653 65c9 E8329AFF 		call	bswap_32
- 7653      FF
- 7654 65ce 4189C4   		movl	%eax, %r12d
- 7655 65d1 8B85D4DE 		movl	-8492(%rbp), %eax
- 7655      FFFF
- 7656 65d7 89C7     		movl	%eax, %edi
- 7657 65d9 E8229AFF 		call	bswap_32
- 7657      FF
- 7658 65de 89C3     		movl	%eax, %ebx
- 7659 65e0 8B85D0DE 		movl	-8496(%rbp), %eax
- 7659      FFFF
- 7660 65e6 89C7     		movl	%eax, %edi
- 7661 65e8 E8139AFF 		call	bswap_32
- 7661      FF
- 7662 65ed 4589E9   		movl	%r13d, %r9d
- 7663 65f0 4589E0   		movl	%r12d, %r8d
- 7664 65f3 89D9     		movl	%ebx, %ecx
- 7665 65f5 89C2     		movl	%eax, %edx
- 7666 65f7 488D3500 		leaq	.LC4(%rip), %rsi
- 7666      000000
- 7667 65fe 488D3D00 		leaq	.LC1(%rip), %rdi
- 7667      000000
- 7668 6605 B8000000 		movl	$0, %eax
- 7668      00
- 7669 660a E8000000 		call	KDbgMsg at PLT
- 7669      00
- 7670              	.L117:
- 7671              	.LBE2107:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 7672              		.loc 2 1690 0
- 7673 660f 660F6F85 		movdqa	-8848(%rbp), %xmm0
- 7673      70DDFFFF 
- 7674              	.LBE2061:
- 7675              	.LBE2060:
- 7676              		.loc 2 1804 0
- 7677 6617 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 7677      00DDFFFF 
-1805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x02);                             /* F(k11): F(k11): F(k11) : F(k11)       */
-1806:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k12   : k13   : k14    : k15          */
- 7678              		.loc 2 1806 0
- 7679 661f 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 7679      B0DCFFFF 
- 7680 6627 660FEF85 		pxor	-8960(%rbp), %xmm0
- 7680      00DDFFFF 
- 7681 662f 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 7681      B0DCFFFF 
-1807:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[3] = v0; /* K12:K13:K14:K15 */
- 7682              		.loc 2 1807 0
- 7683 6637 488B85A8 		movq	-8536(%rbp), %rax
- 7683      DEFFFF
- 7684 663e 4883C030 		addq	$48, %rax
- 7685 6642 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 7685      B0DCFFFF 
- 7686 664a 660F7F10 		movdqa	%xmm2, (%rax)
-1808:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k15   : k15   : k15    : k15          */
- 7687              		.loc 2 1808 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 250
-
-
- 7688 664e 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 7688      B0DCFFFF 
- 7689 6656 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 7689      00DDFFFF 
- 7690 665e 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 7690      00DDFFFF 
- 7691 6666 F30F7F95 		movdqu	%xmm2, -6016(%rbp)
- 7691      80E8FFFF 
- 7692 666e F30F6F85 		movdqu	-6016(%rbp), %xmm0
- 7692      80E8FFFF 
- 7693 6676 F30F7F85 		movdqu	%xmm0, -5984(%rbp)
- 7693      A0E8FFFF 
- 7694              	.LBB2108:
- 7695              	.LBB2109:
- 7696              	.LBB2110:
- 7697              	.LBB2111:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 7698              		.loc 3 450 0
- 7699 667e F30F6F85 		movdqu	-5984(%rbp), %xmm0
- 7699      A0E8FFFF 
- 7700 6686 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 7700      FF
- 7701              	.LBE2111:
- 7702              	.LBE2110:
- 7703              	.LBE2109:
- 7704              	.LBE2108:
- 7705              		.loc 2 1808 0
- 7706 668b 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 7706      00DDFFFF 
-1809:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k16   : k17   : k16    : k17          */
- 7707              		.loc 2 1809 0
- 7708 6693 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 7708      C0DCFFFF 
- 7709 669b 660FEF85 		pxor	-8960(%rbp), %xmm0
- 7709      00DDFFFF 
- 7710 66a3 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 7710      C0DCFFFF 
-1810:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1811:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1812:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 */
-1813:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1814:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1815:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 7711              		.loc 2 1815 0
- 7712 66ab 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 7712      C0DCFFFF 
- 7713 66b3 660F7F95 		movdqa	%xmm2, -8960(%rbp)
- 7713      00DDFFFF 
- 7714 66bb 660F6F85 		movdqa	-8960(%rbp), %xmm0
- 7714      00DDFFFF 
- 7715 66c3 F30F7F85 		movdqu	%xmm0, -5952(%rbp)
- 7715      C0E8FFFF 
- 7716              	.LBB2112:
- 7717              	.LBB2113:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 7718              		.loc 2 1629 0
- 7719 66cb B8040000 		movl	$4, %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 251
-
-
- 7719      00
- 7720 66d0 0FB6C0   		movzbl	%al, %eax
- 7721 66d3 8985E0E8 		movl	%eax, -5920(%rbp)
- 7721      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 7722              		.loc 2 1630 0
- 7723 66d9 F30F6F85 		movdqu	-5952(%rbp), %xmm0
- 7723      C0E8FFFF 
- 7724 66e1 F30F7F85 		movdqu	%xmm0, -8416(%rbp)
- 7724      20DFFFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 7725              		.loc 2 1631 0
- 7726 66e9 8B8524DF 		movl	-8412(%rbp), %eax
- 7726      FFFF
- 7727 66ef 8985E4E8 		movl	%eax, -5916(%rbp)
- 7727      FFFF
- 7728              	.LBB2114:
- 7729              	.LBB2115:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 7730              		.loc 2 740 0
- 7731 66f5 8B85E4E8 		movl	-5916(%rbp), %eax
- 7731      FFFF
- 7732 66fb 898510DF 		movl	%eax, -8432(%rbp)
- 7732      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 7733              		.loc 2 741 0
- 7734 6701 C785E8E8 		movl	$0, -5912(%rbp)
- 7734      FFFF0000 
- 7734      0000
- 7735 670b EB36     		jmp	.L118
- 7736              	.L119:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 7737              		.loc 2 742 0
- 7738 670d 8B8DE8E8 		movl	-5912(%rbp), %ecx
- 7738      FFFF
- 7739 6713 8B85E8E8 		movl	-5912(%rbp), %eax
- 7739      FFFF
- 7740 6719 89C0     		mov	%eax, %eax
- 7741 671b 0FB68405 		movzbl	-8432(%rbp,%rax), %eax
- 7741      10DFFFFF 
- 7742 6723 0FB6C0   		movzbl	%al, %eax
- 7743 6726 89C2     		mov	%eax, %edx
- 7744 6728 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 7744      000000
- 7745 672f 0FB61402 		movzbl	(%rdx,%rax), %edx
- 7746 6733 89C8     		mov	%ecx, %eax
- 7747 6735 88940510 		movb	%dl, -8432(%rbp,%rax)
- 7747      DFFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 7748              		.loc 2 741 0
- 7749 673c 8385E8E8 		addl	$1, -5912(%rbp)
- 7749      FFFF01
- 7750              	.L118:
- 7751 6743 83BDE8E8 		cmpl	$3, -5912(%rbp)
- 7751      FFFF03
- 7752 674a 76C1     		jbe	.L119
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 252
-
-
- 7753              		.loc 2 743 0
- 7754 674c 8B8510DF 		movl	-8432(%rbp), %eax
- 7754      FFFF
- 7755              	.LBE2115:
- 7756              	.LBE2114:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 7757              		.loc 2 1631 0
- 7758 6752 8985DCE8 		movl	%eax, -5924(%rbp)
- 7758      FFFF
- 7759 6758 8B85DCE8 		movl	-5924(%rbp), %eax
- 7759      FFFF
- 7760 675e 8985ECE8 		movl	%eax, -5908(%rbp)
- 7760      FFFF
- 7761              	.LBB2116:
- 7762              	.LBB2117:
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 7763              		.loc 2 1196 0
- 7764 6764 8B85ECE8 		movl	-5908(%rbp), %eax
- 7764      FFFF
- 7765 676a C1C808   		rorl	$8, %eax
- 7766              	.LBE2117:
- 7767              	.LBE2116:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 7768              		.loc 2 1632 0
- 7769 676d 8985DCE8 		movl	%eax, -5924(%rbp)
- 7769      FFFF
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 7770              		.loc 2 1633 0
- 7771 6773 8B85E0E8 		movl	-5920(%rbp), %eax
- 7771      FFFF
- 7772 6779 3185DCE8 		xorl	%eax, -5924(%rbp)
- 7772      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 7773              		.loc 2 1635 0
- 7774 677f 8B85DCE8 		movl	-5924(%rbp), %eax
- 7774      FFFF
- 7775 6785 89852CDF 		movl	%eax, -8404(%rbp)
- 7775      FFFF
- 7776 678b 8B852CDF 		movl	-8404(%rbp), %eax
- 7776      FFFF
- 7777 6791 898528DF 		movl	%eax, -8408(%rbp)
- 7777      FFFF
- 7778 6797 8B8528DF 		movl	-8408(%rbp), %eax
- 7778      FFFF
- 7779 679d 898524DF 		movl	%eax, -8412(%rbp)
- 7779      FFFF
- 7780 67a3 8B8524DF 		movl	-8412(%rbp), %eax
- 7780      FFFF
- 7781 67a9 898520DF 		movl	%eax, -8416(%rbp)
- 7781      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 7782              		.loc 2 1636 0
- 7783 67af F30F6F85 		movdqu	-8416(%rbp), %xmm0
- 7783      20DFFFFF 
- 7784              	.LBE2113:
- 7785              	.LBE2112:
- 7786              		.loc 2 1815 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 253
-
-
- 7787 67b7 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 7787      00DDFFFF 
- 7788 67bf 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 7788      B0DCFFFF 
- 7789 67c7 F30F7F95 		movdqu	%xmm2, -5904(%rbp)
- 7789      F0E8FFFF 
- 7790              	.LBB2118:
- 7791              	.LBB2119:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7792              		.loc 2 1565 0
- 7793 67cf F30F6F85 		movdqu	-5904(%rbp), %xmm0
- 7793      F0E8FFFF 
- 7794 67d7 660F7F85 		movdqa	%xmm0, -8816(%rbp)
- 7794      90DDFFFF 
- 7795 67df 660F6F95 		movdqa	-8816(%rbp), %xmm2
- 7795      90DDFFFF 
- 7796 67e7 F30F7F95 		movdqu	%xmm2, -5888(%rbp)
- 7796      00E9FFFF 
- 7797              	.LBB2120:
- 7798              	.LBB2121:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7799              		.loc 2 1278 0
- 7800 67ef 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7800      00000000 
- 7801 67f7 F30F6F8D 		movdqu	-5888(%rbp), %xmm1
- 7801      00E9FFFF 
- 7802 67ff F30F7F8D 		movdqu	%xmm1, -5856(%rbp)
- 7802      20E9FFFF 
- 7803 6807 F30F7F85 		movdqu	%xmm0, -5872(%rbp)
- 7803      10E9FFFF 
- 7804 680f F30F6F85 		movdqu	-5856(%rbp), %xmm0
- 7804      20E9FFFF 
- 7805 6817 F30F7F85 		movdqu	%xmm0, -5824(%rbp)
- 7805      40E9FFFF 
- 7806 681f F30F6F85 		movdqu	-5872(%rbp), %xmm0
- 7806      10E9FFFF 
- 7807 6827 F30F7F85 		movdqu	%xmm0, -5840(%rbp)
- 7807      30E9FFFF 
- 7808              	.LBB2122:
- 7809              	.LBB2123:
- 7810              	.LBB2124:
- 7811              	.LBB2125:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7812              		.loc 3 529 0
- 7813 682f F30F6F8D 		movdqu	-5840(%rbp), %xmm1
- 7813      30E9FFFF 
- 7814 6837 F30F6F85 		movdqu	-5824(%rbp), %xmm0
- 7814      40E9FFFF 
- 7815 683f 660F3800 		pshufb	%xmm1, %xmm0
- 7815      C1
- 7816              	.LBE2125:
- 7817              	.LBE2124:
- 7818              	.LBE2123:
- 7819              	.LBE2122:
- 7820              	.LBE2121:
- 7821              	.LBE2120:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 254
-
-
- 7822              		.loc 2 1567 0
- 7823 6844 660F7F85 		movdqa	%xmm0, -8816(%rbp)
- 7823      90DDFFFF 
- 7824 684c 660F6F85 		movdqa	-8816(%rbp), %xmm0
- 7824      90DDFFFF 
- 7825 6854 660FEF85 		pxor	-5904(%rbp), %xmm0
- 7825      F0E8FFFF 
- 7826 685c F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 7826      F0E8FFFF 
- 7827 6864 660F6F85 		movdqa	-8816(%rbp), %xmm0
- 7827      90DDFFFF 
- 7828 686c F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 7828      50E9FFFF 
- 7829              	.LBB2126:
- 7830              	.LBB2127:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7831              		.loc 2 1278 0
- 7832 6874 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7832      00000000 
- 7833 687c F30F6F8D 		movdqu	-5808(%rbp), %xmm1
- 7833      50E9FFFF 
- 7834 6884 F30F7F8D 		movdqu	%xmm1, -5776(%rbp)
- 7834      70E9FFFF 
- 7835 688c F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 7835      60E9FFFF 
- 7836 6894 F30F6F85 		movdqu	-5776(%rbp), %xmm0
- 7836      70E9FFFF 
- 7837 689c F30F7F85 		movdqu	%xmm0, -5744(%rbp)
- 7837      90E9FFFF 
- 7838 68a4 F30F6F85 		movdqu	-5792(%rbp), %xmm0
- 7838      60E9FFFF 
- 7839 68ac F30F7F85 		movdqu	%xmm0, -5760(%rbp)
- 7839      80E9FFFF 
- 7840              	.LBB2128:
- 7841              	.LBB2129:
- 7842              	.LBB2130:
- 7843              	.LBB2131:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7844              		.loc 3 529 0
- 7845 68b4 F30F6F8D 		movdqu	-5760(%rbp), %xmm1
- 7845      80E9FFFF 
- 7846 68bc F30F6F85 		movdqu	-5744(%rbp), %xmm0
- 7846      90E9FFFF 
- 7847 68c4 660F3800 		pshufb	%xmm1, %xmm0
- 7847      C1
- 7848              	.LBE2131:
- 7849              	.LBE2130:
- 7850              	.LBE2129:
- 7851              	.LBE2128:
- 7852              	.LBE2127:
- 7853              	.LBE2126:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7854              		.loc 2 1568 0
- 7855 68c9 660F7F85 		movdqa	%xmm0, -8816(%rbp)
- 7855      90DDFFFF 
- 7856 68d1 660F6F85 		movdqa	-8816(%rbp), %xmm0
- 7856      90DDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 255
-
-
- 7857 68d9 660FEF85 		pxor	-5904(%rbp), %xmm0
- 7857      F0E8FFFF 
- 7858 68e1 F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 7858      F0E8FFFF 
- 7859 68e9 660F6F95 		movdqa	-8816(%rbp), %xmm2
- 7859      90DDFFFF 
- 7860 68f1 F30F7F95 		movdqu	%xmm2, -5728(%rbp)
- 7860      A0E9FFFF 
- 7861              	.LBB2132:
- 7862              	.LBB2133:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7863              		.loc 2 1278 0
- 7864 68f9 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7864      00000000 
- 7865 6901 F30F6F8D 		movdqu	-5728(%rbp), %xmm1
- 7865      A0E9FFFF 
- 7866 6909 F30F7F8D 		movdqu	%xmm1, -5696(%rbp)
- 7866      C0E9FFFF 
- 7867 6911 F30F7F85 		movdqu	%xmm0, -5712(%rbp)
- 7867      B0E9FFFF 
- 7868 6919 F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 7868      C0E9FFFF 
- 7869 6921 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 7869      E0E9FFFF 
- 7870 6929 F30F6F85 		movdqu	-5712(%rbp), %xmm0
- 7870      B0E9FFFF 
- 7871 6931 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 7871      D0E9FFFF 
- 7872              	.LBB2134:
- 7873              	.LBB2135:
- 7874              	.LBB2136:
- 7875              	.LBB2137:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7876              		.loc 3 529 0
- 7877 6939 F30F6F8D 		movdqu	-5680(%rbp), %xmm1
- 7877      D0E9FFFF 
- 7878 6941 F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 7878      E0E9FFFF 
- 7879 6949 660F3800 		pshufb	%xmm1, %xmm0
- 7879      C1
- 7880              	.LBE2137:
- 7881              	.LBE2136:
- 7882              	.LBE2135:
- 7883              	.LBE2134:
- 7884              	.LBE2133:
- 7885              	.LBE2132:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7886              		.loc 2 1569 0
- 7887 694e 660F7F85 		movdqa	%xmm0, -8816(%rbp)
- 7887      90DDFFFF 
- 7888 6956 660F6F85 		movdqa	-8816(%rbp), %xmm0
- 7888      90DDFFFF 
- 7889 695e 660FEF85 		pxor	-5904(%rbp), %xmm0
- 7889      F0E8FFFF 
- 7890 6966 F30F7F85 		movdqu	%xmm0, -5904(%rbp)
- 7890      F0E8FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 256
-
-
- 7891              		.loc 2 1571 0
- 7892 696e F30F6F85 		movdqu	-5904(%rbp), %xmm0
- 7892      F0E8FFFF 
- 7893              	.LBE2119:
- 7894              	.LBE2118:
-1816:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x04);                             /* F(k17): F(k17): F(k17) : F(k17)       */
-1817:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k12   :k12^k13:k12^k13^k14:k12^k13^k14^k15 */
- 7895              		.loc 2 1817 0
- 7896 6976 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 7896      E0DCFFFF 
-1818:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k18   : k19   : k20    : k21          */
- 7897              		.loc 2 1818 0
- 7898 697e 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 7898      E0DCFFFF 
- 7899 6986 660FEF85 		pxor	-8960(%rbp), %xmm0
- 7899      00DDFFFF 
- 7900 698e 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 7900      E0DCFFFF 
- 7901 6996 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 7901      C0DCFFFF 
- 7902 699e F30F7F95 		movdqu	%xmm2, -5648(%rbp)
- 7902      F0E9FFFF 
- 7903              	.LBB2138:
- 7904              	.LBB2139:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 7905              		.loc 2 1565 0
- 7906 69a6 F30F6F85 		movdqu	-5648(%rbp), %xmm0
- 7906      F0E9FFFF 
- 7907 69ae 660F7F85 		movdqa	%xmm0, -8800(%rbp)
- 7907      A0DDFFFF 
- 7908 69b6 660F6F95 		movdqa	-8800(%rbp), %xmm2
- 7908      A0DDFFFF 
- 7909 69be F30F7F95 		movdqu	%xmm2, -5632(%rbp)
- 7909      00EAFFFF 
- 7910              	.LBB2140:
- 7911              	.LBB2141:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7912              		.loc 2 1278 0
- 7913 69c6 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7913      00000000 
- 7914 69ce F30F6F8D 		movdqu	-5632(%rbp), %xmm1
- 7914      00EAFFFF 
- 7915 69d6 F30F7F8D 		movdqu	%xmm1, -5600(%rbp)
- 7915      20EAFFFF 
- 7916 69de F30F7F85 		movdqu	%xmm0, -5616(%rbp)
- 7916      10EAFFFF 
- 7917 69e6 F30F6F85 		movdqu	-5600(%rbp), %xmm0
- 7917      20EAFFFF 
- 7918 69ee F30F7F85 		movdqu	%xmm0, -5568(%rbp)
- 7918      40EAFFFF 
- 7919 69f6 F30F6F85 		movdqu	-5616(%rbp), %xmm0
- 7919      10EAFFFF 
- 7920 69fe F30F7F85 		movdqu	%xmm0, -5584(%rbp)
- 7920      30EAFFFF 
- 7921              	.LBB2142:
- 7922              	.LBB2143:
- 7923              	.LBB2144:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 257
-
-
- 7924              	.LBB2145:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7925              		.loc 3 529 0
- 7926 6a06 F30F6F8D 		movdqu	-5584(%rbp), %xmm1
- 7926      30EAFFFF 
- 7927 6a0e F30F6F85 		movdqu	-5568(%rbp), %xmm0
- 7927      40EAFFFF 
- 7928 6a16 660F3800 		pshufb	%xmm1, %xmm0
- 7928      C1
- 7929              	.LBE2145:
- 7930              	.LBE2144:
- 7931              	.LBE2143:
- 7932              	.LBE2142:
- 7933              	.LBE2141:
- 7934              	.LBE2140:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7935              		.loc 2 1567 0
- 7936 6a1b 660F7F85 		movdqa	%xmm0, -8800(%rbp)
- 7936      A0DDFFFF 
- 7937 6a23 660F6F85 		movdqa	-8800(%rbp), %xmm0
- 7937      A0DDFFFF 
- 7938 6a2b 660FEF85 		pxor	-5648(%rbp), %xmm0
- 7938      F0E9FFFF 
- 7939 6a33 F30F7F85 		movdqu	%xmm0, -5648(%rbp)
- 7939      F0E9FFFF 
- 7940 6a3b 660F6F85 		movdqa	-8800(%rbp), %xmm0
- 7940      A0DDFFFF 
- 7941 6a43 F30F7F85 		movdqu	%xmm0, -5552(%rbp)
- 7941      50EAFFFF 
- 7942              	.LBB2146:
- 7943              	.LBB2147:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7944              		.loc 2 1278 0
- 7945 6a4b 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7945      00000000 
- 7946 6a53 F30F6F8D 		movdqu	-5552(%rbp), %xmm1
- 7946      50EAFFFF 
- 7947 6a5b F30F7F8D 		movdqu	%xmm1, -5520(%rbp)
- 7947      70EAFFFF 
- 7948 6a63 F30F7F85 		movdqu	%xmm0, -5536(%rbp)
- 7948      60EAFFFF 
- 7949 6a6b F30F6F85 		movdqu	-5520(%rbp), %xmm0
- 7949      70EAFFFF 
- 7950 6a73 F30F7F85 		movdqu	%xmm0, -5488(%rbp)
- 7950      90EAFFFF 
- 7951 6a7b F30F6F85 		movdqu	-5536(%rbp), %xmm0
- 7951      60EAFFFF 
- 7952 6a83 F30F7F85 		movdqu	%xmm0, -5504(%rbp)
- 7952      80EAFFFF 
- 7953              	.LBB2148:
- 7954              	.LBB2149:
- 7955              	.LBB2150:
- 7956              	.LBB2151:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7957              		.loc 3 529 0
- 7958 6a8b F30F6F8D 		movdqu	-5504(%rbp), %xmm1
- 7958      80EAFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 258
-
-
- 7959 6a93 F30F6F85 		movdqu	-5488(%rbp), %xmm0
- 7959      90EAFFFF 
- 7960 6a9b 660F3800 		pshufb	%xmm1, %xmm0
- 7960      C1
- 7961              	.LBE2151:
- 7962              	.LBE2150:
- 7963              	.LBE2149:
- 7964              	.LBE2148:
- 7965              	.LBE2147:
- 7966              	.LBE2146:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7967              		.loc 2 1568 0
- 7968 6aa0 660F7F85 		movdqa	%xmm0, -8800(%rbp)
- 7968      A0DDFFFF 
- 7969 6aa8 660F6F85 		movdqa	-8800(%rbp), %xmm0
- 7969      A0DDFFFF 
- 7970 6ab0 660FEF85 		pxor	-5648(%rbp), %xmm0
- 7970      F0E9FFFF 
- 7971 6ab8 F30F7F85 		movdqu	%xmm0, -5648(%rbp)
- 7971      F0E9FFFF 
- 7972 6ac0 660F6F95 		movdqa	-8800(%rbp), %xmm2
- 7972      A0DDFFFF 
- 7973 6ac8 F30F7F95 		movdqu	%xmm2, -5472(%rbp)
- 7973      A0EAFFFF 
- 7974              	.LBB2152:
- 7975              	.LBB2153:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 7976              		.loc 2 1278 0
- 7977 6ad0 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 7977      00000000 
- 7978 6ad8 F30F6F8D 		movdqu	-5472(%rbp), %xmm1
- 7978      A0EAFFFF 
- 7979 6ae0 F30F7F8D 		movdqu	%xmm1, -5440(%rbp)
- 7979      C0EAFFFF 
- 7980 6ae8 F30F7F85 		movdqu	%xmm0, -5456(%rbp)
- 7980      B0EAFFFF 
- 7981 6af0 F30F6F85 		movdqu	-5440(%rbp), %xmm0
- 7981      C0EAFFFF 
- 7982 6af8 F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 7982      E0EAFFFF 
- 7983 6b00 F30F6F85 		movdqu	-5456(%rbp), %xmm0
- 7983      B0EAFFFF 
- 7984 6b08 F30F7F85 		movdqu	%xmm0, -5424(%rbp)
- 7984      D0EAFFFF 
- 7985              	.LBB2154:
- 7986              	.LBB2155:
- 7987              	.LBB2156:
- 7988              	.LBB2157:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 7989              		.loc 3 529 0
- 7990 6b10 F30F6F8D 		movdqu	-5424(%rbp), %xmm1
- 7990      D0EAFFFF 
- 7991 6b18 F30F6F85 		movdqu	-5408(%rbp), %xmm0
- 7991      E0EAFFFF 
- 7992 6b20 660F3800 		pshufb	%xmm1, %xmm0
- 7992      C1
- 7993              	.LBE2157:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 259
-
-
- 7994              	.LBE2156:
- 7995              	.LBE2155:
- 7996              	.LBE2154:
- 7997              	.LBE2153:
- 7998              	.LBE2152:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 7999              		.loc 2 1569 0
- 8000 6b25 660F7F85 		movdqa	%xmm0, -8800(%rbp)
- 8000      A0DDFFFF 
- 8001 6b2d 660F6F85 		movdqa	-8800(%rbp), %xmm0
- 8001      A0DDFFFF 
- 8002 6b35 660FEF85 		pxor	-5648(%rbp), %xmm0
- 8002      F0E9FFFF 
- 8003 6b3d F30F7F85 		movdqu	%xmm0, -5648(%rbp)
- 8003      F0E9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8004              		.loc 2 1571 0
- 8005 6b45 F30F6F85 		movdqu	-5648(%rbp), %xmm0
- 8005      F0E9FFFF 
- 8006              	.LBE2139:
- 8007              	.LBE2138:
-1819:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k16   :k16^k17: k17    : 0            */
- 8008              		.loc 2 1819 0
- 8009 6b4d 660F7F85 		movdqa	%xmm0, -8976(%rbp)
- 8009      F0DCFFFF 
-1820:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k21   : k21   : k21    : k21          */
- 8010              		.loc 2 1820 0
- 8011 6b55 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 8011      E0DCFFFF 
- 8012 6b5d 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 8012      00DDFFFF 
- 8013 6b65 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 8013      00DDFFFF 
- 8014 6b6d F30F7F95 		movdqu	%xmm2, -5392(%rbp)
- 8014      F0EAFFFF 
- 8015 6b75 F30F6F85 		movdqu	-5392(%rbp), %xmm0
- 8015      F0EAFFFF 
- 8016 6b7d F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 8016      10EBFFFF 
- 8017              	.LBB2158:
- 8018              	.LBB2159:
- 8019              	.LBB2160:
- 8020              	.LBB2161:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 8021              		.loc 3 450 0
- 8022 6b85 F30F6F85 		movdqu	-5360(%rbp), %xmm0
- 8022      10EBFFFF 
- 8023 6b8d 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 8023      FF
- 8024              	.LBE2161:
- 8025              	.LBE2160:
- 8026              	.LBE2159:
- 8027              	.LBE2158:
- 8028              		.loc 2 1820 0
- 8029 6b92 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 8029      00DDFFFF 
-1821:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k22   : k23   : x      : x            */
-
GAS LISTING /tmp/ccjbMjHD.s 			page 260
-
-
- 8030              		.loc 2 1821 0
- 8031 6b9a 660F6F85 		movdqa	-8976(%rbp), %xmm0
- 8031      F0DCFFFF 
- 8032 6ba2 660FEF85 		pxor	-8960(%rbp), %xmm0
- 8032      00DDFFFF 
- 8033 6baa 660F7F85 		movdqa	%xmm0, -8976(%rbp)
- 8033      F0DCFFFF 
- 8034 6bb2 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 8034      C0DCFFFF 
- 8035 6bba F30F7F95 		movdqu	%xmm2, -5328(%rbp)
- 8035      30EBFFFF 
- 8036 6bc2 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 8036      E0DCFFFF 
- 8037 6bca F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 8037      20EBFFFF 
- 8038 6bd2 F30F6F85 		movdqu	-5328(%rbp), %xmm0
- 8038      30EBFFFF 
- 8039 6bda F30F7F85 		movdqu	%xmm0, -5280(%rbp)
- 8039      60EBFFFF 
- 8040 6be2 F30F6F85 		movdqu	-5344(%rbp), %xmm0
- 8040      20EBFFFF 
- 8041 6bea F30F7F85 		movdqu	%xmm0, -5296(%rbp)
- 8041      50EBFFFF 
- 8042              	.LBB2162:
- 8043              	.LBB2163:
- 8044              	.LBB2164:
- 8045              	.LBB2165:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 8046              		.loc 3 366 0
- 8047 6bf2 F20F1085 		movsd	-5296(%rbp), %xmm0
- 8047      50EBFFFF 
- 8048 6bfa 660F1685 		movhpd	-5288(%rbp), %xmm0
- 8048      58EBFFFF 
- 8049 6c02 F20F108D 		movsd	-5280(%rbp), %xmm1
- 8049      60EBFFFF 
- 8050 6c0a 660F168D 		movhpd	-5272(%rbp), %xmm1
- 8050      68EBFFFF 
- 8051 6c12 660F28D1 		movapd	%xmm1, %xmm2
- 8052 6c16 660F14D0 		unpcklpd	%xmm0, %xmm2
- 8053 6c1a 660F28C2 		movapd	%xmm2, %xmm0
- 8054              	.LBE2165:
- 8055              	.LBE2164:
- 8056              	.LBE2163:
- 8057              	.LBE2162:
-1822:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k16   : k17   : k18    : k19          */
- 8058              		.loc 2 1822 0
- 8059 6c1e 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 8059      C0DCFFFF 
-1823:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[4] = v1; /* K16:K17:K18:K19 */
- 8060              		.loc 2 1823 0
- 8061 6c26 488B85A8 		movq	-8536(%rbp), %rax
- 8061      DEFFFF
- 8062 6c2d 4883C040 		addq	$64, %rax
- 8063 6c31 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 8063      C0DCFFFF 
- 8064 6c39 660F7F00 		movdqa	%xmm0, (%rax)
- 8065 6c3d 660F6F95 		movdqa	-8992(%rbp), %xmm2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 261
-
-
- 8065      E0DCFFFF 
- 8066 6c45 F30F7F95 		movdqu	%xmm2, -5248(%rbp)
- 8066      80EBFFFF 
- 8067 6c4d 660F6F85 		movdqa	-8976(%rbp), %xmm0
- 8067      F0DCFFFF 
- 8068 6c55 F30F7F85 		movdqu	%xmm0, -5264(%rbp)
- 8068      70EBFFFF 
- 8069 6c5d F30F6F85 		movdqu	-5248(%rbp), %xmm0
- 8069      80EBFFFF 
- 8070 6c65 F30F7F85 		movdqu	%xmm0, -5200(%rbp)
- 8070      B0EBFFFF 
- 8071 6c6d F30F6F85 		movdqu	-5264(%rbp), %xmm0
- 8071      70EBFFFF 
- 8072 6c75 F30F7F85 		movdqu	%xmm0, -5216(%rbp)
- 8072      A0EBFFFF 
- 8073              	.LBB2166:
- 8074              	.LBB2167:
- 8075              	.LBB2168:
- 8076              	.LBB2169:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 8077              		.loc 3 366 0
- 8078 6c7d F20F108D 		movsd	-5216(%rbp), %xmm1
- 8078      A0EBFFFF 
- 8079 6c85 660F168D 		movhpd	-5208(%rbp), %xmm1
- 8079      A8EBFFFF 
- 8080 6c8d F20F1085 		movsd	-5200(%rbp), %xmm0
- 8080      B0EBFFFF 
- 8081 6c95 660F1685 		movhpd	-5192(%rbp), %xmm0
- 8081      B8EBFFFF 
- 8082 6c9d 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 8082      01
- 8083              	.LBE2169:
- 8084              	.LBE2168:
- 8085              	.LBE2167:
- 8086              	.LBE2166:
-1824:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1825:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k20   : k21   : k22    : k23          */
- 8087              		.loc 2 1825 0
- 8088 6ca2 660F7F85 		movdqa	%xmm0, -9008(%rbp)
- 8088      D0DCFFFF 
-1826:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[5] = v2; /* K20:K21:K22:K23 */
- 8089              		.loc 2 1826 0
- 8090 6caa 488B85A8 		movq	-8536(%rbp), %rax
- 8090      DEFFFF
- 8091 6cb1 4883C050 		addq	$80, %rax
- 8092 6cb5 660F6F95 		movdqa	-9008(%rbp), %xmm2
- 8092      D0DCFFFF 
- 8093 6cbd 660F7F10 		movdqa	%xmm2, (%rax)
- 8094 6cc1 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 8094      E0DCFFFF 
- 8095 6cc9 F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 8095      C0EBFFFF 
- 8096              	.LBB2170:
- 8097              	.LBB2171:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 8098              		.loc 2 1565 0
- 8099 6cd1 F30F6F95 		movdqu	-5184(%rbp), %xmm2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 262
-
-
- 8099      C0EBFFFF 
- 8100 6cd9 660F7F95 		movdqa	%xmm2, -8784(%rbp)
- 8100      B0DDFFFF 
- 8101 6ce1 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 8101      B0DDFFFF 
- 8102 6ce9 F30F7F85 		movdqu	%xmm0, -5168(%rbp)
- 8102      D0EBFFFF 
- 8103              	.LBB2172:
- 8104              	.LBB2173:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8105              		.loc 2 1278 0
- 8106 6cf1 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8106      00000000 
- 8107 6cf9 F30F6F8D 		movdqu	-5168(%rbp), %xmm1
- 8107      D0EBFFFF 
- 8108 6d01 F30F7F8D 		movdqu	%xmm1, -5136(%rbp)
- 8108      F0EBFFFF 
- 8109 6d09 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 8109      E0EBFFFF 
- 8110 6d11 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 8110      F0EBFFFF 
- 8111 6d19 F30F7F85 		movdqu	%xmm0, -5104(%rbp)
- 8111      10ECFFFF 
- 8112 6d21 F30F6F85 		movdqu	-5152(%rbp), %xmm0
- 8112      E0EBFFFF 
- 8113 6d29 F30F7F85 		movdqu	%xmm0, -5120(%rbp)
- 8113      00ECFFFF 
- 8114              	.LBB2174:
- 8115              	.LBB2175:
- 8116              	.LBB2176:
- 8117              	.LBB2177:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8118              		.loc 3 529 0
- 8119 6d31 F30F6F8D 		movdqu	-5120(%rbp), %xmm1
- 8119      00ECFFFF 
- 8120 6d39 F30F6F85 		movdqu	-5104(%rbp), %xmm0
- 8120      10ECFFFF 
- 8121 6d41 660F3800 		pshufb	%xmm1, %xmm0
- 8121      C1
- 8122              	.LBE2177:
- 8123              	.LBE2176:
- 8124              	.LBE2175:
- 8125              	.LBE2174:
- 8126              	.LBE2173:
- 8127              	.LBE2172:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8128              		.loc 2 1567 0
- 8129 6d46 660F7F85 		movdqa	%xmm0, -8784(%rbp)
- 8129      B0DDFFFF 
- 8130 6d4e 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 8130      B0DDFFFF 
- 8131 6d56 660FEF85 		pxor	-5184(%rbp), %xmm0
- 8131      C0EBFFFF 
- 8132 6d5e F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 8132      C0EBFFFF 
- 8133 6d66 660F6F95 		movdqa	-8784(%rbp), %xmm2
- 8133      B0DDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 263
-
-
- 8134 6d6e F30F7F95 		movdqu	%xmm2, -5088(%rbp)
- 8134      20ECFFFF 
- 8135              	.LBB2178:
- 8136              	.LBB2179:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8137              		.loc 2 1278 0
- 8138 6d76 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8138      00000000 
- 8139 6d7e F30F6F8D 		movdqu	-5088(%rbp), %xmm1
- 8139      20ECFFFF 
- 8140 6d86 F30F7F8D 		movdqu	%xmm1, -5056(%rbp)
- 8140      40ECFFFF 
- 8141 6d8e F30F7F85 		movdqu	%xmm0, -5072(%rbp)
- 8141      30ECFFFF 
- 8142 6d96 F30F6F85 		movdqu	-5056(%rbp), %xmm0
- 8142      40ECFFFF 
- 8143 6d9e F30F7F85 		movdqu	%xmm0, -5024(%rbp)
- 8143      60ECFFFF 
- 8144 6da6 F30F6F85 		movdqu	-5072(%rbp), %xmm0
- 8144      30ECFFFF 
- 8145 6dae F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 8145      50ECFFFF 
- 8146              	.LBB2180:
- 8147              	.LBB2181:
- 8148              	.LBB2182:
- 8149              	.LBB2183:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8150              		.loc 3 529 0
- 8151 6db6 F30F6F8D 		movdqu	-5040(%rbp), %xmm1
- 8151      50ECFFFF 
- 8152 6dbe F30F6F85 		movdqu	-5024(%rbp), %xmm0
- 8152      60ECFFFF 
- 8153 6dc6 660F3800 		pshufb	%xmm1, %xmm0
- 8153      C1
- 8154              	.LBE2183:
- 8155              	.LBE2182:
- 8156              	.LBE2181:
- 8157              	.LBE2180:
- 8158              	.LBE2179:
- 8159              	.LBE2178:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8160              		.loc 2 1568 0
- 8161 6dcb 660F7F85 		movdqa	%xmm0, -8784(%rbp)
- 8161      B0DDFFFF 
- 8162 6dd3 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 8162      B0DDFFFF 
- 8163 6ddb 660FEF85 		pxor	-5184(%rbp), %xmm0
- 8163      C0EBFFFF 
- 8164 6de3 F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 8164      C0EBFFFF 
- 8165 6deb 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 8165      B0DDFFFF 
- 8166 6df3 F30F7F85 		movdqu	%xmm0, -5008(%rbp)
- 8166      70ECFFFF 
- 8167              	.LBB2184:
- 8168              	.LBB2185:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 264
-
-
- 8169              		.loc 2 1278 0
- 8170 6dfb 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8170      00000000 
- 8171 6e03 F30F6F8D 		movdqu	-5008(%rbp), %xmm1
- 8171      70ECFFFF 
- 8172 6e0b F30F7F8D 		movdqu	%xmm1, -4976(%rbp)
- 8172      90ECFFFF 
- 8173 6e13 F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 8173      80ECFFFF 
- 8174 6e1b F30F6F85 		movdqu	-4976(%rbp), %xmm0
- 8174      90ECFFFF 
- 8175 6e23 F30F7F85 		movdqu	%xmm0, -4944(%rbp)
- 8175      B0ECFFFF 
- 8176 6e2b F30F6F85 		movdqu	-4992(%rbp), %xmm0
- 8176      80ECFFFF 
- 8177 6e33 F30F7F85 		movdqu	%xmm0, -4960(%rbp)
- 8177      A0ECFFFF 
- 8178              	.LBB2186:
- 8179              	.LBB2187:
- 8180              	.LBB2188:
- 8181              	.LBB2189:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8182              		.loc 3 529 0
- 8183 6e3b F30F6F8D 		movdqu	-4960(%rbp), %xmm1
- 8183      A0ECFFFF 
- 8184 6e43 F30F6F85 		movdqu	-4944(%rbp), %xmm0
- 8184      B0ECFFFF 
- 8185 6e4b 660F3800 		pshufb	%xmm1, %xmm0
- 8185      C1
- 8186              	.LBE2189:
- 8187              	.LBE2188:
- 8188              	.LBE2187:
- 8189              	.LBE2186:
- 8190              	.LBE2185:
- 8191              	.LBE2184:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8192              		.loc 2 1569 0
- 8193 6e50 660F7F85 		movdqa	%xmm0, -8784(%rbp)
- 8193      B0DDFFFF 
- 8194 6e58 660F6F85 		movdqa	-8784(%rbp), %xmm0
- 8194      B0DDFFFF 
- 8195 6e60 660FEF85 		pxor	-5184(%rbp), %xmm0
- 8195      C0EBFFFF 
- 8196 6e68 F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 8196      C0EBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8197              		.loc 2 1571 0
- 8198 6e70 F30F6F85 		movdqu	-5184(%rbp), %xmm0
- 8198      C0EBFFFF 
- 8199              	.LBE2171:
- 8200              	.LBE2170:
-1827:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1828:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1829:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k18   :k18^k19:k18^k19^k20:k18^k19^k20^k21 */
- 8201              		.loc 2 1829 0
- 8202 6e78 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 8202      B0DCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 265
-
-
- 8203 6e80 660F6F95 		movdqa	-8976(%rbp), %xmm2
- 8203      F0DCFFFF 
- 8204 6e88 F30F7F95 		movdqu	%xmm2, -4928(%rbp)
- 8204      C0ECFFFF 
- 8205              	.LBB2190:
- 8206              	.LBB2191:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 8207              		.loc 2 1565 0
- 8208 6e90 F30F6F85 		movdqu	-4928(%rbp), %xmm0
- 8208      C0ECFFFF 
- 8209 6e98 660F7F85 		movdqa	%xmm0, -8768(%rbp)
- 8209      C0DDFFFF 
- 8210 6ea0 660F6F95 		movdqa	-8768(%rbp), %xmm2
- 8210      C0DDFFFF 
- 8211 6ea8 F30F7F95 		movdqu	%xmm2, -4912(%rbp)
- 8211      D0ECFFFF 
- 8212              	.LBB2192:
- 8213              	.LBB2193:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8214              		.loc 2 1278 0
- 8215 6eb0 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8215      00000000 
- 8216 6eb8 F30F6F8D 		movdqu	-4912(%rbp), %xmm1
- 8216      D0ECFFFF 
- 8217 6ec0 F30F7F8D 		movdqu	%xmm1, -4880(%rbp)
- 8217      F0ECFFFF 
- 8218 6ec8 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 8218      E0ECFFFF 
- 8219 6ed0 F30F6F85 		movdqu	-4880(%rbp), %xmm0
- 8219      F0ECFFFF 
- 8220 6ed8 F30F7F85 		movdqu	%xmm0, -4848(%rbp)
- 8220      10EDFFFF 
- 8221 6ee0 F30F6F85 		movdqu	-4896(%rbp), %xmm0
- 8221      E0ECFFFF 
- 8222 6ee8 F30F7F85 		movdqu	%xmm0, -4864(%rbp)
- 8222      00EDFFFF 
- 8223              	.LBB2194:
- 8224              	.LBB2195:
- 8225              	.LBB2196:
- 8226              	.LBB2197:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8227              		.loc 3 529 0
- 8228 6ef0 F30F6F8D 		movdqu	-4864(%rbp), %xmm1
- 8228      00EDFFFF 
- 8229 6ef8 F30F6F85 		movdqu	-4848(%rbp), %xmm0
- 8229      10EDFFFF 
- 8230 6f00 660F3800 		pshufb	%xmm1, %xmm0
- 8230      C1
- 8231              	.LBE2197:
- 8232              	.LBE2196:
- 8233              	.LBE2195:
- 8234              	.LBE2194:
- 8235              	.LBE2193:
- 8236              	.LBE2192:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8237              		.loc 2 1567 0
- 8238 6f05 660F7F85 		movdqa	%xmm0, -8768(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 266
-
-
- 8238      C0DDFFFF 
- 8239 6f0d 660F6F85 		movdqa	-8768(%rbp), %xmm0
- 8239      C0DDFFFF 
- 8240 6f15 660FEF85 		pxor	-4928(%rbp), %xmm0
- 8240      C0ECFFFF 
- 8241 6f1d F30F7F85 		movdqu	%xmm0, -4928(%rbp)
- 8241      C0ECFFFF 
- 8242 6f25 660F6F85 		movdqa	-8768(%rbp), %xmm0
- 8242      C0DDFFFF 
- 8243 6f2d F30F7F85 		movdqu	%xmm0, -4832(%rbp)
- 8243      20EDFFFF 
- 8244              	.LBB2198:
- 8245              	.LBB2199:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8246              		.loc 2 1278 0
- 8247 6f35 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8247      00000000 
- 8248 6f3d F30F6F8D 		movdqu	-4832(%rbp), %xmm1
- 8248      20EDFFFF 
- 8249 6f45 F30F7F8D 		movdqu	%xmm1, -4800(%rbp)
- 8249      40EDFFFF 
- 8250 6f4d F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 8250      30EDFFFF 
- 8251 6f55 F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 8251      40EDFFFF 
- 8252 6f5d F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 8252      60EDFFFF 
- 8253 6f65 F30F6F85 		movdqu	-4816(%rbp), %xmm0
- 8253      30EDFFFF 
- 8254 6f6d F30F7F85 		movdqu	%xmm0, -4784(%rbp)
- 8254      50EDFFFF 
- 8255              	.LBB2200:
- 8256              	.LBB2201:
- 8257              	.LBB2202:
- 8258              	.LBB2203:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8259              		.loc 3 529 0
- 8260 6f75 F30F6F8D 		movdqu	-4784(%rbp), %xmm1
- 8260      50EDFFFF 
- 8261 6f7d F30F6F85 		movdqu	-4768(%rbp), %xmm0
- 8261      60EDFFFF 
- 8262 6f85 660F3800 		pshufb	%xmm1, %xmm0
- 8262      C1
- 8263              	.LBE2203:
- 8264              	.LBE2202:
- 8265              	.LBE2201:
- 8266              	.LBE2200:
- 8267              	.LBE2199:
- 8268              	.LBE2198:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8269              		.loc 2 1568 0
- 8270 6f8a 660F7F85 		movdqa	%xmm0, -8768(%rbp)
- 8270      C0DDFFFF 
- 8271 6f92 660F6F85 		movdqa	-8768(%rbp), %xmm0
- 8271      C0DDFFFF 
- 8272 6f9a 660FEF85 		pxor	-4928(%rbp), %xmm0
- 8272      C0ECFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 267
-
-
- 8273 6fa2 F30F7F85 		movdqu	%xmm0, -4928(%rbp)
- 8273      C0ECFFFF 
- 8274 6faa 660F6F95 		movdqa	-8768(%rbp), %xmm2
- 8274      C0DDFFFF 
- 8275 6fb2 F30F7F95 		movdqu	%xmm2, -4752(%rbp)
- 8275      70EDFFFF 
- 8276              	.LBB2204:
- 8277              	.LBB2205:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8278              		.loc 2 1278 0
- 8279 6fba 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8279      00000000 
- 8280 6fc2 F30F6F8D 		movdqu	-4752(%rbp), %xmm1
- 8280      70EDFFFF 
- 8281 6fca F30F7F8D 		movdqu	%xmm1, -4720(%rbp)
- 8281      90EDFFFF 
- 8282 6fd2 F30F7F85 		movdqu	%xmm0, -4736(%rbp)
- 8282      80EDFFFF 
- 8283 6fda F30F6F85 		movdqu	-4720(%rbp), %xmm0
- 8283      90EDFFFF 
- 8284 6fe2 F30F7F85 		movdqu	%xmm0, -4688(%rbp)
- 8284      B0EDFFFF 
- 8285 6fea F30F6F85 		movdqu	-4736(%rbp), %xmm0
- 8285      80EDFFFF 
- 8286 6ff2 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 8286      A0EDFFFF 
- 8287              	.LBB2206:
- 8288              	.LBB2207:
- 8289              	.LBB2208:
- 8290              	.LBB2209:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8291              		.loc 3 529 0
- 8292 6ffa F30F6F8D 		movdqu	-4704(%rbp), %xmm1
- 8292      A0EDFFFF 
- 8293 7002 F30F6F85 		movdqu	-4688(%rbp), %xmm0
- 8293      B0EDFFFF 
- 8294 700a 660F3800 		pshufb	%xmm1, %xmm0
- 8294      C1
- 8295              	.LBE2209:
- 8296              	.LBE2208:
- 8297              	.LBE2207:
- 8298              	.LBE2206:
- 8299              	.LBE2205:
- 8300              	.LBE2204:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8301              		.loc 2 1569 0
- 8302 700f 660F7F85 		movdqa	%xmm0, -8768(%rbp)
- 8302      C0DDFFFF 
- 8303 7017 660F6F85 		movdqa	-8768(%rbp), %xmm0
- 8303      C0DDFFFF 
- 8304 701f 660FEF85 		pxor	-4928(%rbp), %xmm0
- 8304      C0ECFFFF 
- 8305 7027 F30F7F85 		movdqu	%xmm0, -4928(%rbp)
- 8305      C0ECFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8306              		.loc 2 1571 0
- 8307 702f F30F6F85 		movdqu	-4928(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 268
-
-
- 8307      C0ECFFFF 
- 8308              	.LBE2191:
- 8309              	.LBE2190:
-1830:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k22   :k22^k23: k23    : 0            */
- 8310              		.loc 2 1830 0
- 8311 7037 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 8311      C0DCFFFF 
-1831:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 8312              		.loc 2 1831 0
- 8313 703f 660F6F85 		movdqa	-9008(%rbp), %xmm0
- 8313      D0DCFFFF 
- 8314 7047 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 8314      00DDFFFF 
- 8315 704f 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 8315      00DDFFFF 
- 8316 7057 F30F7F95 		movdqu	%xmm2, -4656(%rbp)
- 8316      D0EDFFFF 
- 8317              	.LBB2210:
- 8318              	.LBB2211:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 8319              		.loc 2 1681 0
- 8320 705f B8080000 		movl	$8, %eax
- 8320      00
- 8321 7064 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 8321      00000000 
- 8322 706c F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 8322      F0EDFFFF 
- 8323 7074 8985ECED 		movl	%eax, -4628(%rbp)
- 8323      FFFF
- 8324 707a F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 8324      F0EDFFFF 
- 8325 7082 F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 8325      10EEFFFF 
- 8326 708a 8B85ECED 		movl	-4628(%rbp), %eax
- 8326      FFFF
- 8327 7090 89850CEE 		movl	%eax, -4596(%rbp)
- 8327      FFFF
- 8328              	.LBB2212:
- 8329              	.LBB2213:
- 8330              	.LBB2214:
- 8331              	.LBB2215:
- 8332              		.loc 3 598 0
- 8333 7096 8B850CEE 		movl	-4596(%rbp), %eax
- 8333      FFFF
- 8334 709c F30F6F85 		movdqu	-4592(%rbp), %xmm0
- 8334      10EEFFFF 
- 8335 70a4 660F3A22 		pinsrd	$3, %eax, %xmm0
- 8335      C003
- 8336              	.LBE2215:
- 8337              	.LBE2214:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 8338              		.loc 2 519 0
- 8339 70aa F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 8339      F0EDFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8340              		.loc 2 526 0
- 8341 70b2 F30F6F85 		movdqu	-4624(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 269
-
-
- 8341      F0EDFFFF 
- 8342              	.LBE2213:
- 8343              	.LBE2212:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 8344              		.loc 2 1681 0
- 8345 70ba 660F7F85 		movdqa	%xmm0, -8736(%rbp)
- 8345      E0DDFFFF 
- 8346 70c2 F30F6F85 		movdqu	-4656(%rbp), %xmm0
- 8346      D0EDFFFF 
- 8347 70ca F30F7F85 		movdqu	%xmm0, -4576(%rbp)
- 8347      20EEFFFF 
- 8348 70d2 F30F6F85 		movdqu	-4576(%rbp), %xmm0
- 8348      20EEFFFF 
- 8349 70da F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 8349      40EEFFFF 
- 8350 70e2 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 8350      000000
- 8351 70e9 48898538 		movq	%rax, -4552(%rbp)
- 8351      EEFFFF
- 8352              	.LBB2216:
- 8353              	.LBB2217:
- 8354              	.LBB2218:
- 8355              	.LBB2219:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 8356              		.loc 2 851 0
- 8357 70f0 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 8357      00000000 
- 8358 70f8 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 8358      60EEFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 8359              		.loc 2 854 0
- 8360 7100 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 8360      00000000 
- 8361 7108 F30F6F8D 		movdqu	-4544(%rbp), %xmm1
- 8361      40EEFFFF 
- 8362 7110 F30F7F8D 		movdqu	%xmm1, -4432(%rbp)
- 8362      B0EEFFFF 
- 8363 7118 F30F7F85 		movdqu	%xmm0, -4448(%rbp)
- 8363      A0EEFFFF 
- 8364              	.LBB2220:
- 8365              	.LBB2221:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 8366              		.loc 2 206 0
- 8367 7120 F30F6F85 		movdqu	-4448(%rbp), %xmm0
- 8367      A0EEFFFF 
- 8368 7128 F30F6F8D 		movdqu	-4432(%rbp), %xmm1
- 8368      B0EEFFFF 
- 8369 7130 660FDBC1 		pand	%xmm1, %xmm0
- 8370              	.LBE2221:
- 8371              	.LBE2220:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 8372              		.loc 2 854 0
- 8373 7134 F30F7F85 		movdqu	%xmm0, -4464(%rbp)
- 8373      90EEFFFF 
- 8374 713c F30F6F85 		movdqu	-4544(%rbp), %xmm0
- 8374      40EEFFFF 
- 8375 7144 F30F7F85 		movdqu	%xmm0, -4400(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 270
-
-
- 8375      D0EEFFFF 
- 8376              	.LBB2222:
- 8377              	.LBB2223:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 8378              		.loc 3 433 0
- 8379 714c F30F6F85 		movdqu	-4400(%rbp), %xmm0
- 8379      D0EEFFFF 
- 8380 7154 660F72D0 		psrld	$4, %xmm0
- 8380      04
- 8381              	.LBE2223:
- 8382              	.LBE2222:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 8383              		.loc 2 857 0
- 8384 7159 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 8384      80EEFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 8385              		.loc 2 859 0
- 8386 7161 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 8386      00000000 
- 8387 7169 F30F6F8D 		movdqu	-4480(%rbp), %xmm1
- 8387      80EEFFFF 
- 8388 7171 F30F7F8D 		movdqu	%xmm1, -4368(%rbp)
- 8388      F0EEFFFF 
- 8389 7179 F30F7F85 		movdqu	%xmm0, -4384(%rbp)
- 8389      E0EEFFFF 
- 8390              	.LBB2224:
- 8391              	.LBB2225:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 8392              		.loc 2 206 0
- 8393 7181 F30F6F85 		movdqu	-4384(%rbp), %xmm0
- 8393      E0EEFFFF 
- 8394 7189 F30F6F8D 		movdqu	-4368(%rbp), %xmm1
- 8394      F0EEFFFF 
- 8395 7191 660FDBC1 		pand	%xmm1, %xmm0
- 8396              	.LBE2225:
- 8397              	.LBE2224:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 8398              		.loc 2 859 0
- 8399 7195 F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 8399      80EEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 8400              		.loc 2 866 0
- 8401 719d C7855CEE 		movl	$0, -4516(%rbp)
- 8401      FFFF0000 
- 8401      0000
- 8402 71a7 E9BE0100 		jmp	.L120
- 8402      00
- 8403              	.L121:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 8404              		.loc 2 868 0
- 8405 71ac 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 8405      00000000 
- 8406 71b4 F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 8406      10EFFFFF 
- 8407 71bc F30F6F85 		movdqu	-4480(%rbp), %xmm0
- 8407      80EEFFFF 
- 8408 71c4 F30F7F85 		movdqu	%xmm0, -4352(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 271
-
-
- 8408      00EFFFFF 
- 8409 71cc F30F6F85 		movdqu	-4336(%rbp), %xmm0
- 8409      10EFFFFF 
- 8410 71d4 F30F7F85 		movdqu	%xmm0, -4304(%rbp)
- 8410      30EFFFFF 
- 8411 71dc F30F6F85 		movdqu	-4352(%rbp), %xmm0
- 8411      00EFFFFF 
- 8412 71e4 F30F7F85 		movdqu	%xmm0, -4320(%rbp)
- 8412      20EFFFFF 
- 8413              	.LBB2226:
- 8414              	.LBB2227:
- 8415              	.LBB2228:
- 8416              	.LBB2229:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8417              		.loc 3 529 0
- 8418 71ec F30F6F8D 		movdqu	-4320(%rbp), %xmm1
- 8418      20EFFFFF 
- 8419 71f4 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 8419      30EFFFFF 
- 8420 71fc 660F3800 		pshufb	%xmm1, %xmm0
- 8420      C1
- 8421              	.LBE2229:
- 8422              	.LBE2228:
- 8423              	.LBE2227:
- 8424              	.LBE2226:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 8425              		.loc 2 868 0
- 8426 7201 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 8426      70EEFFFF 
- 8427 7209 F30F6F85 		movdqu	-4464(%rbp), %xmm0
- 8427      90EEFFFF 
- 8428 7211 F30F7F85 		movdqu	%xmm0, -4272(%rbp)
- 8428      50EFFFFF 
- 8429 7219 F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 8429      70EEFFFF 
- 8430 7221 F30F7F85 		movdqu	%xmm0, -4288(%rbp)
- 8430      40EFFFFF 
- 8431              	.LBB2230:
- 8432              	.LBB2231:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 8433              		.loc 2 234 0
- 8434 7229 F30F6F85 		movdqu	-4288(%rbp), %xmm0
- 8434      40EFFFFF 
- 8435 7231 F30F6F8D 		movdqu	-4272(%rbp), %xmm1
- 8435      50EFFFFF 
- 8436 7239 660FEBC1 		por	%xmm1, %xmm0
- 8437              	.LBE2231:
- 8438              	.LBE2230:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 8439              		.loc 2 870 0
- 8440 723d F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 8440      70EEFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 8441              		.loc 2 872 0
- 8442 7245 8B855CEE 		mov	-4516(%rbp), %eax
- 8442      FFFF
- 8443 724b 48C1E004 		salq	$4, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 272
-
-
- 8444 724f 48038538 		addq	-4552(%rbp), %rax
- 8444      EEFFFF
- 8445 7256 660F6F00 		movdqa	(%rax), %xmm0
- 8446 725a F30F7F85 		movdqu	%xmm0, -4240(%rbp)
- 8446      70EFFFFF 
- 8447 7262 F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 8447      70EEFFFF 
- 8448 726a F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 8448      60EFFFFF 
- 8449 7272 F30F6F85 		movdqu	-4240(%rbp), %xmm0
- 8449      70EFFFFF 
- 8450 727a F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 8450      90EFFFFF 
- 8451 7282 F30F6F85 		movdqu	-4256(%rbp), %xmm0
- 8451      60EFFFFF 
- 8452 728a F30F7F85 		movdqu	%xmm0, -4224(%rbp)
- 8452      80EFFFFF 
- 8453              	.LBB2232:
- 8454              	.LBB2233:
- 8455              	.LBB2234:
- 8456              	.LBB2235:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8457              		.loc 3 529 0
- 8458 7292 F30F6F8D 		movdqu	-4224(%rbp), %xmm1
- 8458      80EFFFFF 
- 8459 729a F30F6F85 		movdqu	-4208(%rbp), %xmm0
- 8459      90EFFFFF 
- 8460 72a2 660F3800 		pshufb	%xmm1, %xmm0
- 8460      C1
- 8461              	.LBE2235:
- 8462              	.LBE2234:
- 8463              	.LBE2233:
- 8464              	.LBE2232:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 8465              		.loc 2 872 0
- 8466 72a7 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 8466      70EEFFFF 
- 8467 72af F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 8467      60EEFFFF 
- 8468 72b7 F30F7F85 		movdqu	%xmm0, -4176(%rbp)
- 8468      B0EFFFFF 
- 8469 72bf F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 8469      70EEFFFF 
- 8470 72c7 F30F7F85 		movdqu	%xmm0, -4192(%rbp)
- 8470      A0EFFFFF 
- 8471              	.LBB2236:
- 8472              	.LBB2237:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 8473              		.loc 2 234 0
- 8474 72cf F30F6F85 		movdqu	-4192(%rbp), %xmm0
- 8474      A0EFFFFF 
- 8475 72d7 F30F6F8D 		movdqu	-4176(%rbp), %xmm1
- 8475      B0EFFFFF 
- 8476 72df 660FEBC1 		por	%xmm1, %xmm0
- 8477              	.LBE2237:
- 8478              	.LBE2236:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 273
-
-
- 8479              		.loc 2 874 0
- 8480 72e3 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 8480      60EEFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 8481              		.loc 2 876 0
- 8482 72eb 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 8482      00000000 
- 8483 72f3 F30F6F8D 		movdqu	-4480(%rbp), %xmm1
- 8483      80EEFFFF 
- 8484 72fb F30F7F8D 		movdqu	%xmm1, -4144(%rbp)
- 8484      D0EFFFFF 
- 8485 7303 F30F7F85 		movdqu	%xmm0, -4160(%rbp)
- 8485      C0EFFFFF 
- 8486              	.LBB2238:
- 8487              	.LBB2239:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 8488              		.loc 2 290 0
- 8489 730b F30F6F8D 		movdqu	-4160(%rbp), %xmm1
- 8489      C0EFFFFF 
- 8490 7313 F30F6F85 		movdqu	-4144(%rbp), %xmm0
- 8490      D0EFFFFF 
- 8491 731b 660FF8C1 		psubb	%xmm1, %xmm0
- 8492              	.LBE2239:
- 8493              	.LBE2238:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 8494              		.loc 2 876 0
- 8495 731f F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 8495      80EEFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 8496              		.loc 2 878 0
- 8497 7327 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 8497      00000000 
- 8498 732f F30F6F8D 		movdqu	-4480(%rbp), %xmm1
- 8498      80EEFFFF 
- 8499 7337 F30F7F8D 		movdqu	%xmm1, -4112(%rbp)
- 8499      F0EFFFFF 
- 8500 733f F30F7F85 		movdqu	%xmm0, -4128(%rbp)
- 8500      E0EFFFFF 
- 8501              	.LBB2240:
- 8502              	.LBB2241:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 8503              		.loc 2 206 0
- 8504 7347 F30F6F85 		movdqu	-4128(%rbp), %xmm0
- 8504      E0EFFFFF 
- 8505 734f F30F6F8D 		movdqu	-4112(%rbp), %xmm1
- 8505      F0EFFFFF 
- 8506 7357 660FDBC1 		pand	%xmm1, %xmm0
- 8507              	.LBE2241:
- 8508              	.LBE2240:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 8509              		.loc 2 878 0
- 8510 735b F30F7F85 		movdqu	%xmm0, -4480(%rbp)
- 8510      80EEFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 8511              		.loc 2 866 0
- 8512 7363 83855CEE 		addl	$1, -4516(%rbp)
- 8512      FFFF01
-
GAS LISTING /tmp/ccjbMjHD.s 			page 274
-
-
- 8513              	.L120:
- 8514 736a 83BD5CEE 		cmpl	$15, -4516(%rbp)
- 8514      FFFF0F
- 8515 7371 0F8635FE 		jbe	.L121
- 8515      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 8516              		.loc 2 882 0
- 8517 7377 F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 8517      60EEFFFF 
- 8518              	.LBE2219:
- 8519              	.LBE2218:
- 8520              	.LBE2217:
- 8521              	.LBE2216:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 8522              		.loc 2 1682 0
- 8523 737f 660F7F85 		movdqa	%xmm0, -8752(%rbp)
- 8523      D0DDFFFF 
- 8524              	.LBB2242:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 8525              		.loc 2 1683 0
- 8526 7387 660F6F85 		movdqa	-8752(%rbp), %xmm0
- 8526      D0DDFFFF 
- 8527 738f F30F7F85 		movdqu	%xmm0, -8352(%rbp)
- 8527      60DFFFFF 
- 8528 7397 E8000000 		call	KDbgWriterGet at PLT
- 8528      00
- 8529 739c 4885C0   		testq	%rax, %rax
- 8530 739f 7479     		je	.L123
- 8531 73a1 BF010000 		movl	$1, %edi
- 8531      00
- 8532 73a6 E8000000 		call	KDbgCondToFlag at PLT
- 8532      00
- 8533 73ab 4889C6   		movq	%rax, %rsi
- 8534 73ae BF100000 		movl	$16, %edi
- 8534      00
- 8535 73b3 E8000000 		call	KDbgTestModConds at PLT
- 8535      00
- 8536 73b8 84C0     		testb	%al, %al
- 8537 73ba 745E     		je	.L123
- 8538 73bc 8B856CDF 		movl	-8340(%rbp), %eax
- 8538      FFFF
- 8539 73c2 89C7     		movl	%eax, %edi
- 8540 73c4 E8378CFF 		call	bswap_32
- 8540      FF
- 8541 73c9 4189C5   		movl	%eax, %r13d
- 8542 73cc 8B8568DF 		movl	-8344(%rbp), %eax
- 8542      FFFF
- 8543 73d2 89C7     		movl	%eax, %edi
- 8544 73d4 E8278CFF 		call	bswap_32
- 8544      FF
- 8545 73d9 4189C4   		movl	%eax, %r12d
- 8546 73dc 8B8564DF 		movl	-8348(%rbp), %eax
- 8546      FFFF
- 8547 73e2 89C7     		movl	%eax, %edi
- 8548 73e4 E8178CFF 		call	bswap_32
- 8548      FF
- 8549 73e9 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 275
-
-
- 8550 73eb 8B8560DF 		movl	-8352(%rbp), %eax
- 8550      FFFF
- 8551 73f1 89C7     		movl	%eax, %edi
- 8552 73f3 E8088CFF 		call	bswap_32
- 8552      FF
- 8553 73f8 4589E9   		movl	%r13d, %r9d
- 8554 73fb 4589E0   		movl	%r12d, %r8d
- 8555 73fe 89D9     		movl	%ebx, %ecx
- 8556 7400 89C2     		movl	%eax, %edx
- 8557 7402 488D3500 		leaq	.LC0(%rip), %rsi
- 8557      000000
- 8558 7409 488D3D00 		leaq	.LC1(%rip), %rdi
- 8558      000000
- 8559 7410 B8000000 		movl	$0, %eax
- 8559      00
- 8560 7415 E8000000 		call	KDbgMsg at PLT
- 8560      00
- 8561              	.L123:
- 8562 741a 660F6F95 		movdqa	-8752(%rbp), %xmm2
- 8562      D0DDFFFF 
- 8563 7422 F30F7F95 		movdqu	%xmm2, -4096(%rbp)
- 8563      00F0FFFF 
- 8564              	.LBE2242:
- 8565              	.LBB2243:
- 8566              	.LBB2244:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 8567              		.loc 2 667 0
- 8568 742a 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 8568      00000000 
- 8569 7432 F30F6F8D 		movdqu	-4096(%rbp), %xmm1
- 8569      00F0FFFF 
- 8570 743a F30F7F8D 		movdqu	%xmm1, -4064(%rbp)
- 8570      20F0FFFF 
- 8571 7442 F30F7F85 		movdqu	%xmm0, -4080(%rbp)
- 8571      10F0FFFF 
- 8572 744a F30F6F85 		movdqu	-4064(%rbp), %xmm0
- 8572      20F0FFFF 
- 8573 7452 F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 8573      40F0FFFF 
- 8574 745a F30F6F85 		movdqu	-4080(%rbp), %xmm0
- 8574      10F0FFFF 
- 8575 7462 F30F7F85 		movdqu	%xmm0, -4048(%rbp)
- 8575      30F0FFFF 
- 8576              	.LBB2245:
- 8577              	.LBB2246:
- 8578              	.LBB2247:
- 8579              	.LBB2248:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8580              		.loc 3 529 0
- 8581 746a F30F6F8D 		movdqu	-4048(%rbp), %xmm1
- 8581      30F0FFFF 
- 8582 7472 F30F6F85 		movdqu	-4032(%rbp), %xmm0
- 8582      40F0FFFF 
- 8583 747a 660F3800 		pshufb	%xmm1, %xmm0
- 8583      C1
- 8584              	.LBE2248:
- 8585              	.LBE2247:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 276
-
-
- 8586              	.LBE2246:
- 8587              	.LBE2245:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 8588              		.loc 2 667 0
- 8589 747f F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 8589      00F0FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8590              		.loc 2 668 0
- 8591 7487 F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 8591      00F0FFFF 
- 8592              	.LBE2244:
- 8593              	.LBE2243:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 8594              		.loc 2 1684 0
- 8595 748f 660F7F85 		movdqa	%xmm0, -8752(%rbp)
- 8595      D0DDFFFF 
- 8596              	.LBB2249:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 8597              		.loc 2 1685 0
- 8598 7497 660F6F85 		movdqa	-8752(%rbp), %xmm0
- 8598      D0DDFFFF 
- 8599 749f F30F7F85 		movdqu	%xmm0, -8368(%rbp)
- 8599      50DFFFFF 
- 8600 74a7 E8000000 		call	KDbgWriterGet at PLT
- 8600      00
- 8601 74ac 4885C0   		testq	%rax, %rax
- 8602 74af 7479     		je	.L125
- 8603 74b1 BF010000 		movl	$1, %edi
- 8603      00
- 8604 74b6 E8000000 		call	KDbgCondToFlag at PLT
- 8604      00
- 8605 74bb 4889C6   		movq	%rax, %rsi
- 8606 74be BF100000 		movl	$16, %edi
- 8606      00
- 8607 74c3 E8000000 		call	KDbgTestModConds at PLT
- 8607      00
- 8608 74c8 84C0     		testb	%al, %al
- 8609 74ca 745E     		je	.L125
- 8610 74cc 8B855CDF 		movl	-8356(%rbp), %eax
- 8610      FFFF
- 8611 74d2 89C7     		movl	%eax, %edi
- 8612 74d4 E8278BFF 		call	bswap_32
- 8612      FF
- 8613 74d9 4189C5   		movl	%eax, %r13d
- 8614 74dc 8B8558DF 		movl	-8360(%rbp), %eax
- 8614      FFFF
- 8615 74e2 89C7     		movl	%eax, %edi
- 8616 74e4 E8178BFF 		call	bswap_32
- 8616      FF
- 8617 74e9 4189C4   		movl	%eax, %r12d
- 8618 74ec 8B8554DF 		movl	-8364(%rbp), %eax
- 8618      FFFF
- 8619 74f2 89C7     		movl	%eax, %edi
- 8620 74f4 E8078BFF 		call	bswap_32
- 8620      FF
- 8621 74f9 89C3     		movl	%eax, %ebx
- 8622 74fb 8B8550DF 		movl	-8368(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 277
-
-
- 8622      FFFF
- 8623 7501 89C7     		movl	%eax, %edi
- 8624 7503 E8F88AFF 		call	bswap_32
- 8624      FF
- 8625 7508 4589E9   		movl	%r13d, %r9d
- 8626 750b 4589E0   		movl	%r12d, %r8d
- 8627 750e 89D9     		movl	%ebx, %ecx
- 8628 7510 89C2     		movl	%eax, %edx
- 8629 7512 488D3500 		leaq	.LC2(%rip), %rsi
- 8629      000000
- 8630 7519 488D3D00 		leaq	.LC1(%rip), %rdi
- 8630      000000
- 8631 7520 B8000000 		movl	$0, %eax
- 8631      00
- 8632 7525 E8000000 		call	KDbgMsg at PLT
- 8632      00
- 8633              	.L125:
- 8634 752a 660F6F95 		movdqa	-8752(%rbp), %xmm2
- 8634      D0DDFFFF 
- 8635 7532 F30F7F95 		movdqu	%xmm2, -4000(%rbp)
- 8635      60F0FFFF 
- 8636 753a 660F6F85 		movdqa	-8736(%rbp), %xmm0
- 8636      E0DDFFFF 
- 8637 7542 F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 8637      50F0FFFF 
- 8638              	.LBE2249:
- 8639              	.LBB2250:
- 8640              	.LBB2251:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 8641              		.loc 2 178 0
- 8642 754a F30F6F85 		movdqu	-4016(%rbp), %xmm0
- 8642      50F0FFFF 
- 8643 7552 F30F6F8D 		movdqu	-4000(%rbp), %xmm1
- 8643      60F0FFFF 
- 8644 755a 660FEFC1 		pxor	%xmm1, %xmm0
- 8645              	.LBE2251:
- 8646              	.LBE2250:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 8647              		.loc 2 1686 0
- 8648 755e 660F7F85 		movdqa	%xmm0, -8752(%rbp)
- 8648      D0DDFFFF 
- 8649              	.LBB2252:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 8650              		.loc 2 1687 0
- 8651 7566 660F6F95 		movdqa	-8752(%rbp), %xmm2
- 8651      D0DDFFFF 
- 8652 756e F30F7F95 		movdqu	%xmm2, -8384(%rbp)
- 8652      40DFFFFF 
- 8653 7576 E8000000 		call	KDbgWriterGet at PLT
- 8653      00
- 8654 757b 4885C0   		testq	%rax, %rax
- 8655 757e 7479     		je	.L127
- 8656 7580 BF010000 		movl	$1, %edi
- 8656      00
- 8657 7585 E8000000 		call	KDbgCondToFlag at PLT
- 8657      00
- 8658 758a 4889C6   		movq	%rax, %rsi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 278
-
-
- 8659 758d BF100000 		movl	$16, %edi
- 8659      00
- 8660 7592 E8000000 		call	KDbgTestModConds at PLT
- 8660      00
- 8661 7597 84C0     		testb	%al, %al
- 8662 7599 745E     		je	.L127
- 8663 759b 8B854CDF 		movl	-8372(%rbp), %eax
- 8663      FFFF
- 8664 75a1 89C7     		movl	%eax, %edi
- 8665 75a3 E8588AFF 		call	bswap_32
- 8665      FF
- 8666 75a8 4189C5   		movl	%eax, %r13d
- 8667 75ab 8B8548DF 		movl	-8376(%rbp), %eax
- 8667      FFFF
- 8668 75b1 89C7     		movl	%eax, %edi
- 8669 75b3 E8488AFF 		call	bswap_32
- 8669      FF
- 8670 75b8 4189C4   		movl	%eax, %r12d
- 8671 75bb 8B8544DF 		movl	-8380(%rbp), %eax
- 8671      FFFF
- 8672 75c1 89C7     		movl	%eax, %edi
- 8673 75c3 E8388AFF 		call	bswap_32
- 8673      FF
- 8674 75c8 89C3     		movl	%eax, %ebx
- 8675 75ca 8B8540DF 		movl	-8384(%rbp), %eax
- 8675      FFFF
- 8676 75d0 89C7     		movl	%eax, %edi
- 8677 75d2 E8298AFF 		call	bswap_32
- 8677      FF
- 8678 75d7 4589E9   		movl	%r13d, %r9d
- 8679 75da 4589E0   		movl	%r12d, %r8d
- 8680 75dd 89D9     		movl	%ebx, %ecx
- 8681 75df 89C2     		movl	%eax, %edx
- 8682 75e1 488D3500 		leaq	.LC3(%rip), %rsi
- 8682      000000
- 8683 75e8 488D3D00 		leaq	.LC1(%rip), %rdi
- 8683      000000
- 8684 75ef B8000000 		movl	$0, %eax
- 8684      00
- 8685 75f4 E8000000 		call	KDbgMsg at PLT
- 8685      00
- 8686              	.L127:
- 8687 75f9 660F6F85 		movdqa	-8752(%rbp), %xmm0
- 8687      D0DDFFFF 
- 8688 7601 F30F7F85 		movdqu	%xmm0, -3984(%rbp)
- 8688      70F0FFFF 
- 8689 7609 F30F6F85 		movdqu	-3984(%rbp), %xmm0
- 8689      70F0FFFF 
- 8690 7611 F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 8690      90F0FFFF 
- 8691              	.LBE2252:
- 8692              	.LBB2253:
- 8693              	.LBB2254:
- 8694              	.LBB2255:
- 8695              	.LBB2256:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 8696              		.loc 3 450 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 279
-
-
- 8697 7619 F30F6F85 		movdqu	-3952(%rbp), %xmm0
- 8697      90F0FFFF 
- 8698 7621 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 8698      FF
- 8699              	.LBE2256:
- 8700              	.LBE2255:
- 8701              	.LBE2254:
- 8702              	.LBE2253:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 8703              		.loc 2 1688 0
- 8704 7626 660F7F85 		movdqa	%xmm0, -8752(%rbp)
- 8704      D0DDFFFF 
- 8705              	.LBB2257:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 8706              		.loc 2 1689 0
- 8707 762e 660F6F95 		movdqa	-8752(%rbp), %xmm2
- 8707      D0DDFFFF 
- 8708 7636 F30F7F95 		movdqu	%xmm2, -8400(%rbp)
- 8708      30DFFFFF 
- 8709 763e E8000000 		call	KDbgWriterGet at PLT
- 8709      00
- 8710 7643 4885C0   		testq	%rax, %rax
- 8711 7646 7479     		je	.L129
- 8712 7648 BF010000 		movl	$1, %edi
- 8712      00
- 8713 764d E8000000 		call	KDbgCondToFlag at PLT
- 8713      00
- 8714 7652 4889C6   		movq	%rax, %rsi
- 8715 7655 BF100000 		movl	$16, %edi
- 8715      00
- 8716 765a E8000000 		call	KDbgTestModConds at PLT
- 8716      00
- 8717 765f 84C0     		testb	%al, %al
- 8718 7661 745E     		je	.L129
- 8719 7663 8B853CDF 		movl	-8388(%rbp), %eax
- 8719      FFFF
- 8720 7669 89C7     		movl	%eax, %edi
- 8721 766b E89089FF 		call	bswap_32
- 8721      FF
- 8722 7670 4189C5   		movl	%eax, %r13d
- 8723 7673 8B8538DF 		movl	-8392(%rbp), %eax
- 8723      FFFF
- 8724 7679 89C7     		movl	%eax, %edi
- 8725 767b E88089FF 		call	bswap_32
- 8725      FF
- 8726 7680 4189C4   		movl	%eax, %r12d
- 8727 7683 8B8534DF 		movl	-8396(%rbp), %eax
- 8727      FFFF
- 8728 7689 89C7     		movl	%eax, %edi
- 8729 768b E87089FF 		call	bswap_32
- 8729      FF
- 8730 7690 89C3     		movl	%eax, %ebx
- 8731 7692 8B8530DF 		movl	-8400(%rbp), %eax
- 8731      FFFF
- 8732 7698 89C7     		movl	%eax, %edi
- 8733 769a E86189FF 		call	bswap_32
- 8733      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 280
-
-
- 8734 769f 4589E9   		movl	%r13d, %r9d
- 8735 76a2 4589E0   		movl	%r12d, %r8d
- 8736 76a5 89D9     		movl	%ebx, %ecx
- 8737 76a7 89C2     		movl	%eax, %edx
- 8738 76a9 488D3500 		leaq	.LC4(%rip), %rsi
- 8738      000000
- 8739 76b0 488D3D00 		leaq	.LC1(%rip), %rdi
- 8739      000000
- 8740 76b7 B8000000 		movl	$0, %eax
- 8740      00
- 8741 76bc E8000000 		call	KDbgMsg at PLT
- 8741      00
- 8742              	.L129:
- 8743              	.LBE2257:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 8744              		.loc 2 1690 0
- 8745 76c1 660F6F85 		movdqa	-8752(%rbp), %xmm0
- 8745      D0DDFFFF 
- 8746              	.LBE2211:
- 8747              	.LBE2210:
- 8748              		.loc 2 1831 0
- 8749 76c9 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 8749      00DDFFFF 
-1832:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x08);                             /* F(k23): F(k23): F(k23) : F(k23)       */
-1833:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k24   : k25   : k26    : k27          */
- 8750              		.loc 2 1833 0
- 8751 76d1 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 8751      B0DCFFFF 
- 8752 76d9 660FEF85 		pxor	-8960(%rbp), %xmm0
- 8752      00DDFFFF 
- 8753 76e1 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 8753      B0DCFFFF 
-1834:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v0);   /* k27   : k27   : k27    : k27          */
- 8754              		.loc 2 1834 0
- 8755 76e9 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 8755      B0DCFFFF 
- 8756 76f1 660F7F95 		movdqa	%xmm2, -8960(%rbp)
- 8756      00DDFFFF 
- 8757 76f9 660F6F85 		movdqa	-8960(%rbp), %xmm0
- 8757      00DDFFFF 
- 8758 7701 F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 8758      A0F0FFFF 
- 8759 7709 F30F6F85 		movdqu	-3936(%rbp), %xmm0
- 8759      A0F0FFFF 
- 8760 7711 F30F7F85 		movdqu	%xmm0, -3904(%rbp)
- 8760      C0F0FFFF 
- 8761              	.LBB2258:
- 8762              	.LBB2259:
- 8763              	.LBB2260:
- 8764              	.LBB2261:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 8765              		.loc 3 450 0
- 8766 7719 F30F6F85 		movdqu	-3904(%rbp), %xmm0
- 8766      C0F0FFFF 
- 8767 7721 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 8767      FF
- 8768              	.LBE2261:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 281
-
-
- 8769              	.LBE2260:
- 8770              	.LBE2259:
- 8771              	.LBE2258:
- 8772              		.loc 2 1834 0
- 8773 7726 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 8773      00DDFFFF 
-1835:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k28   : k29   : x      : x            */
- 8774              		.loc 2 1835 0
- 8775 772e 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 8775      C0DCFFFF 
- 8776 7736 660FEF95 		pxor	-8960(%rbp), %xmm2
- 8776      00DDFFFF 
- 8777 773e 660F7F95 		movdqa	%xmm2, -9024(%rbp)
- 8777      C0DCFFFF 
-1836:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1837:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[6] = v0; /* K24:K25:K26:K27 */
- 8778              		.loc 2 1837 0
- 8779 7746 488B85A8 		movq	-8536(%rbp), %rax
- 8779      DEFFFF
- 8780 774d 4883C060 		addq	$96, %rax
- 8781 7751 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 8781      B0DCFFFF 
- 8782 7759 660F7F00 		movdqa	%xmm0, (%rax)
-1838:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1839:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 4-15 = 28-39 */
-1840:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1841:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1842:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 8783              		.loc 2 1842 0
- 8784 775d 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 8784      C0DCFFFF 
- 8785 7765 660F7F95 		movdqa	%xmm2, -8960(%rbp)
- 8785      00DDFFFF 
- 8786 776d 660F6F85 		movdqa	-8960(%rbp), %xmm0
- 8786      00DDFFFF 
- 8787 7775 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 8787      E0F0FFFF 
- 8788              	.LBB2262:
- 8789              	.LBB2263:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 8790              		.loc 2 1629 0
- 8791 777d B8100000 		movl	$16, %eax
- 8791      00
- 8792 7782 0FB6C0   		movzbl	%al, %eax
- 8793 7785 898500F1 		movl	%eax, -3840(%rbp)
- 8793      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 8794              		.loc 2 1630 0
- 8795 778b F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 8795      E0F0FFFF 
- 8796 7793 F30F7F85 		movdqu	%xmm0, -8320(%rbp)
- 8796      80DFFFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 8797              		.loc 2 1631 0
- 8798 779b 8B8584DF 		movl	-8316(%rbp), %eax
- 8798      FFFF
- 8799 77a1 898504F1 		movl	%eax, -3836(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 282
-
-
- 8799      FFFF
- 8800              	.LBB2264:
- 8801              	.LBB2265:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 8802              		.loc 2 740 0
- 8803 77a7 8B8504F1 		movl	-3836(%rbp), %eax
- 8803      FFFF
- 8804 77ad 898570DF 		movl	%eax, -8336(%rbp)
- 8804      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 8805              		.loc 2 741 0
- 8806 77b3 C78508F1 		movl	$0, -3832(%rbp)
- 8806      FFFF0000 
- 8806      0000
- 8807 77bd EB36     		jmp	.L130
- 8808              	.L131:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 8809              		.loc 2 742 0
- 8810 77bf 8B8D08F1 		movl	-3832(%rbp), %ecx
- 8810      FFFF
- 8811 77c5 8B8508F1 		movl	-3832(%rbp), %eax
- 8811      FFFF
- 8812 77cb 89C0     		mov	%eax, %eax
- 8813 77cd 0FB68405 		movzbl	-8336(%rbp,%rax), %eax
- 8813      70DFFFFF 
- 8814 77d5 0FB6C0   		movzbl	%al, %eax
- 8815 77d8 89C2     		mov	%eax, %edx
- 8816 77da 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 8816      000000
- 8817 77e1 0FB61402 		movzbl	(%rdx,%rax), %edx
- 8818 77e5 89C8     		mov	%ecx, %eax
- 8819 77e7 88940570 		movb	%dl, -8336(%rbp,%rax)
- 8819      DFFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 8820              		.loc 2 741 0
- 8821 77ee 838508F1 		addl	$1, -3832(%rbp)
- 8821      FFFF01
- 8822              	.L130:
- 8823 77f5 83BD08F1 		cmpl	$3, -3832(%rbp)
- 8823      FFFF03
- 8824 77fc 76C1     		jbe	.L131
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 8825              		.loc 2 743 0
- 8826 77fe 8B8570DF 		movl	-8336(%rbp), %eax
- 8826      FFFF
- 8827              	.LBE2265:
- 8828              	.LBE2264:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 8829              		.loc 2 1631 0
- 8830 7804 8985FCF0 		movl	%eax, -3844(%rbp)
- 8830      FFFF
- 8831 780a 8B85FCF0 		movl	-3844(%rbp), %eax
- 8831      FFFF
- 8832 7810 89850CF1 		movl	%eax, -3828(%rbp)
- 8832      FFFF
- 8833              	.LBB2266:
- 8834              	.LBB2267:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 283
-
-
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 8835              		.loc 2 1196 0
- 8836 7816 8B850CF1 		movl	-3828(%rbp), %eax
- 8836      FFFF
- 8837 781c C1C808   		rorl	$8, %eax
- 8838              	.LBE2267:
- 8839              	.LBE2266:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 8840              		.loc 2 1632 0
- 8841 781f 8985FCF0 		movl	%eax, -3844(%rbp)
- 8841      FFFF
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 8842              		.loc 2 1633 0
- 8843 7825 8B8500F1 		movl	-3840(%rbp), %eax
- 8843      FFFF
- 8844 782b 3185FCF0 		xorl	%eax, -3844(%rbp)
- 8844      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 8845              		.loc 2 1635 0
- 8846 7831 8B85FCF0 		movl	-3844(%rbp), %eax
- 8846      FFFF
- 8847 7837 89858CDF 		movl	%eax, -8308(%rbp)
- 8847      FFFF
- 8848 783d 8B858CDF 		movl	-8308(%rbp), %eax
- 8848      FFFF
- 8849 7843 898588DF 		movl	%eax, -8312(%rbp)
- 8849      FFFF
- 8850 7849 8B8588DF 		movl	-8312(%rbp), %eax
- 8850      FFFF
- 8851 784f 898584DF 		movl	%eax, -8316(%rbp)
- 8851      FFFF
- 8852 7855 8B8584DF 		movl	-8316(%rbp), %eax
- 8852      FFFF
- 8853 785b 898580DF 		movl	%eax, -8320(%rbp)
- 8853      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 8854              		.loc 2 1636 0
- 8855 7861 F30F6F85 		movdqu	-8320(%rbp), %xmm0
- 8855      80DFFFFF 
- 8856              	.LBE2263:
- 8857              	.LBE2262:
- 8858              		.loc 2 1842 0
- 8859 7869 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 8859      00DDFFFF 
- 8860 7871 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 8860      B0DCFFFF 
- 8861 7879 F30F7F95 		movdqu	%xmm2, -3824(%rbp)
- 8861      10F1FFFF 
- 8862              	.LBB2268:
- 8863              	.LBB2269:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 8864              		.loc 2 1565 0
- 8865 7881 F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 8865      10F1FFFF 
- 8866 7889 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 8866      F0DDFFFF 
- 8867 7891 660F6F95 		movdqa	-8720(%rbp), %xmm2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 284
-
-
- 8867      F0DDFFFF 
- 8868 7899 F30F7F95 		movdqu	%xmm2, -3808(%rbp)
- 8868      20F1FFFF 
- 8869              	.LBB2270:
- 8870              	.LBB2271:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8871              		.loc 2 1278 0
- 8872 78a1 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8872      00000000 
- 8873 78a9 F30F6F8D 		movdqu	-3808(%rbp), %xmm1
- 8873      20F1FFFF 
- 8874 78b1 F30F7F8D 		movdqu	%xmm1, -3776(%rbp)
- 8874      40F1FFFF 
- 8875 78b9 F30F7F85 		movdqu	%xmm0, -3792(%rbp)
- 8875      30F1FFFF 
- 8876 78c1 F30F6F85 		movdqu	-3776(%rbp), %xmm0
- 8876      40F1FFFF 
- 8877 78c9 F30F7F85 		movdqu	%xmm0, -3744(%rbp)
- 8877      60F1FFFF 
- 8878 78d1 F30F6F85 		movdqu	-3792(%rbp), %xmm0
- 8878      30F1FFFF 
- 8879 78d9 F30F7F85 		movdqu	%xmm0, -3760(%rbp)
- 8879      50F1FFFF 
- 8880              	.LBB2272:
- 8881              	.LBB2273:
- 8882              	.LBB2274:
- 8883              	.LBB2275:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8884              		.loc 3 529 0
- 8885 78e1 F30F6F8D 		movdqu	-3760(%rbp), %xmm1
- 8885      50F1FFFF 
- 8886 78e9 F30F6F85 		movdqu	-3744(%rbp), %xmm0
- 8886      60F1FFFF 
- 8887 78f1 660F3800 		pshufb	%xmm1, %xmm0
- 8887      C1
- 8888              	.LBE2275:
- 8889              	.LBE2274:
- 8890              	.LBE2273:
- 8891              	.LBE2272:
- 8892              	.LBE2271:
- 8893              	.LBE2270:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8894              		.loc 2 1567 0
- 8895 78f6 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 8895      F0DDFFFF 
- 8896 78fe 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 8896      F0DDFFFF 
- 8897 7906 660FEF85 		pxor	-3824(%rbp), %xmm0
- 8897      10F1FFFF 
- 8898 790e F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 8898      10F1FFFF 
- 8899 7916 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 8899      F0DDFFFF 
- 8900 791e F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 8900      70F1FFFF 
- 8901              	.LBB2276:
- 8902              	.LBB2277:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 285
-
-
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8903              		.loc 2 1278 0
- 8904 7926 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8904      00000000 
- 8905 792e F30F6F8D 		movdqu	-3728(%rbp), %xmm1
- 8905      70F1FFFF 
- 8906 7936 F30F7F8D 		movdqu	%xmm1, -3696(%rbp)
- 8906      90F1FFFF 
- 8907 793e F30F7F85 		movdqu	%xmm0, -3712(%rbp)
- 8907      80F1FFFF 
- 8908 7946 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 8908      90F1FFFF 
- 8909 794e F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 8909      B0F1FFFF 
- 8910 7956 F30F6F85 		movdqu	-3712(%rbp), %xmm0
- 8910      80F1FFFF 
- 8911 795e F30F7F85 		movdqu	%xmm0, -3680(%rbp)
- 8911      A0F1FFFF 
- 8912              	.LBB2278:
- 8913              	.LBB2279:
- 8914              	.LBB2280:
- 8915              	.LBB2281:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8916              		.loc 3 529 0
- 8917 7966 F30F6F8D 		movdqu	-3680(%rbp), %xmm1
- 8917      A0F1FFFF 
- 8918 796e F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 8918      B0F1FFFF 
- 8919 7976 660F3800 		pshufb	%xmm1, %xmm0
- 8919      C1
- 8920              	.LBE2281:
- 8921              	.LBE2280:
- 8922              	.LBE2279:
- 8923              	.LBE2278:
- 8924              	.LBE2277:
- 8925              	.LBE2276:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8926              		.loc 2 1568 0
- 8927 797b 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 8927      F0DDFFFF 
- 8928 7983 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 8928      F0DDFFFF 
- 8929 798b 660FEF85 		pxor	-3824(%rbp), %xmm0
- 8929      10F1FFFF 
- 8930 7993 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 8930      10F1FFFF 
- 8931 799b 660F6F95 		movdqa	-8720(%rbp), %xmm2
- 8931      F0DDFFFF 
- 8932 79a3 F30F7F95 		movdqu	%xmm2, -3648(%rbp)
- 8932      C0F1FFFF 
- 8933              	.LBB2282:
- 8934              	.LBB2283:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8935              		.loc 2 1278 0
- 8936 79ab 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8936      00000000 
- 8937 79b3 F30F6F8D 		movdqu	-3648(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 286
-
-
- 8937      C0F1FFFF 
- 8938 79bb F30F7F8D 		movdqu	%xmm1, -3616(%rbp)
- 8938      E0F1FFFF 
- 8939 79c3 F30F7F85 		movdqu	%xmm0, -3632(%rbp)
- 8939      D0F1FFFF 
- 8940 79cb F30F6F85 		movdqu	-3616(%rbp), %xmm0
- 8940      E0F1FFFF 
- 8941 79d3 F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 8941      00F2FFFF 
- 8942 79db F30F6F85 		movdqu	-3632(%rbp), %xmm0
- 8942      D0F1FFFF 
- 8943 79e3 F30F7F85 		movdqu	%xmm0, -3600(%rbp)
- 8943      F0F1FFFF 
- 8944              	.LBB2284:
- 8945              	.LBB2285:
- 8946              	.LBB2286:
- 8947              	.LBB2287:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8948              		.loc 3 529 0
- 8949 79eb F30F6F8D 		movdqu	-3600(%rbp), %xmm1
- 8949      F0F1FFFF 
- 8950 79f3 F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 8950      00F2FFFF 
- 8951 79fb 660F3800 		pshufb	%xmm1, %xmm0
- 8951      C1
- 8952              	.LBE2287:
- 8953              	.LBE2286:
- 8954              	.LBE2285:
- 8955              	.LBE2284:
- 8956              	.LBE2283:
- 8957              	.LBE2282:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 8958              		.loc 2 1569 0
- 8959 7a00 660F7F85 		movdqa	%xmm0, -8720(%rbp)
- 8959      F0DDFFFF 
- 8960 7a08 660F6F85 		movdqa	-8720(%rbp), %xmm0
- 8960      F0DDFFFF 
- 8961 7a10 660FEF85 		pxor	-3824(%rbp), %xmm0
- 8961      10F1FFFF 
- 8962 7a18 F30F7F85 		movdqu	%xmm0, -3824(%rbp)
- 8962      10F1FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 8963              		.loc 2 1571 0
- 8964 7a20 F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 8964      10F1FFFF 
- 8965              	.LBE2269:
- 8966              	.LBE2268:
-1843:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x10);                             /* F(k29): F(k29): F(k29) : F(k29)       */
-1844:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k24   :k24^k25:k24^k25^k26:k24^k25^k26^k27 */
- 8967              		.loc 2 1844 0
- 8968 7a28 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 8968      E0DCFFFF 
-1845:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k30   : k31   : k32    : k33          */
- 8969              		.loc 2 1845 0
- 8970 7a30 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 8970      E0DCFFFF 
- 8971 7a38 660FEF85 		pxor	-8960(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 287
-
-
- 8971      00DDFFFF 
- 8972 7a40 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 8972      E0DCFFFF 
- 8973 7a48 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 8973      C0DCFFFF 
- 8974 7a50 F30F7F95 		movdqu	%xmm2, -3568(%rbp)
- 8974      10F2FFFF 
- 8975              	.LBB2288:
- 8976              	.LBB2289:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 8977              		.loc 2 1565 0
- 8978 7a58 F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 8978      10F2FFFF 
- 8979 7a60 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 8979      00DEFFFF 
- 8980 7a68 660F6F95 		movdqa	-8704(%rbp), %xmm2
- 8980      00DEFFFF 
- 8981 7a70 F30F7F95 		movdqu	%xmm2, -3552(%rbp)
- 8981      20F2FFFF 
- 8982              	.LBB2290:
- 8983              	.LBB2291:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 8984              		.loc 2 1278 0
- 8985 7a78 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 8985      00000000 
- 8986 7a80 F30F6F8D 		movdqu	-3552(%rbp), %xmm1
- 8986      20F2FFFF 
- 8987 7a88 F30F7F8D 		movdqu	%xmm1, -3520(%rbp)
- 8987      40F2FFFF 
- 8988 7a90 F30F7F85 		movdqu	%xmm0, -3536(%rbp)
- 8988      30F2FFFF 
- 8989 7a98 F30F6F85 		movdqu	-3520(%rbp), %xmm0
- 8989      40F2FFFF 
- 8990 7aa0 F30F7F85 		movdqu	%xmm0, -3488(%rbp)
- 8990      60F2FFFF 
- 8991 7aa8 F30F6F85 		movdqu	-3536(%rbp), %xmm0
- 8991      30F2FFFF 
- 8992 7ab0 F30F7F85 		movdqu	%xmm0, -3504(%rbp)
- 8992      50F2FFFF 
- 8993              	.LBB2292:
- 8994              	.LBB2293:
- 8995              	.LBB2294:
- 8996              	.LBB2295:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 8997              		.loc 3 529 0
- 8998 7ab8 F30F6F8D 		movdqu	-3504(%rbp), %xmm1
- 8998      50F2FFFF 
- 8999 7ac0 F30F6F85 		movdqu	-3488(%rbp), %xmm0
- 8999      60F2FFFF 
- 9000 7ac8 660F3800 		pshufb	%xmm1, %xmm0
- 9000      C1
- 9001              	.LBE2295:
- 9002              	.LBE2294:
- 9003              	.LBE2293:
- 9004              	.LBE2292:
- 9005              	.LBE2291:
- 9006              	.LBE2290:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 288
-
-
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9007              		.loc 2 1567 0
- 9008 7acd 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 9008      00DEFFFF 
- 9009 7ad5 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 9009      00DEFFFF 
- 9010 7add 660FEF85 		pxor	-3568(%rbp), %xmm0
- 9010      10F2FFFF 
- 9011 7ae5 F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 9011      10F2FFFF 
- 9012 7aed 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 9012      00DEFFFF 
- 9013 7af5 F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 9013      70F2FFFF 
- 9014              	.LBB2296:
- 9015              	.LBB2297:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9016              		.loc 2 1278 0
- 9017 7afd 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9017      00000000 
- 9018 7b05 F30F6F8D 		movdqu	-3472(%rbp), %xmm1
- 9018      70F2FFFF 
- 9019 7b0d F30F7F8D 		movdqu	%xmm1, -3440(%rbp)
- 9019      90F2FFFF 
- 9020 7b15 F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 9020      80F2FFFF 
- 9021 7b1d F30F6F85 		movdqu	-3440(%rbp), %xmm0
- 9021      90F2FFFF 
- 9022 7b25 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 9022      B0F2FFFF 
- 9023 7b2d F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 9023      80F2FFFF 
- 9024 7b35 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 9024      A0F2FFFF 
- 9025              	.LBB2298:
- 9026              	.LBB2299:
- 9027              	.LBB2300:
- 9028              	.LBB2301:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9029              		.loc 3 529 0
- 9030 7b3d F30F6F8D 		movdqu	-3424(%rbp), %xmm1
- 9030      A0F2FFFF 
- 9031 7b45 F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 9031      B0F2FFFF 
- 9032 7b4d 660F3800 		pshufb	%xmm1, %xmm0
- 9032      C1
- 9033              	.LBE2301:
- 9034              	.LBE2300:
- 9035              	.LBE2299:
- 9036              	.LBE2298:
- 9037              	.LBE2297:
- 9038              	.LBE2296:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9039              		.loc 2 1568 0
- 9040 7b52 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 9040      00DEFFFF 
- 9041 7b5a 660F6F85 		movdqa	-8704(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 289
-
-
- 9041      00DEFFFF 
- 9042 7b62 660FEF85 		pxor	-3568(%rbp), %xmm0
- 9042      10F2FFFF 
- 9043 7b6a F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 9043      10F2FFFF 
- 9044 7b72 660F6F95 		movdqa	-8704(%rbp), %xmm2
- 9044      00DEFFFF 
- 9045 7b7a F30F7F95 		movdqu	%xmm2, -3392(%rbp)
- 9045      C0F2FFFF 
- 9046              	.LBB2302:
- 9047              	.LBB2303:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9048              		.loc 2 1278 0
- 9049 7b82 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9049      00000000 
- 9050 7b8a F30F6F8D 		movdqu	-3392(%rbp), %xmm1
- 9050      C0F2FFFF 
- 9051 7b92 F30F7F8D 		movdqu	%xmm1, -3360(%rbp)
- 9051      E0F2FFFF 
- 9052 7b9a F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 9052      D0F2FFFF 
- 9053 7ba2 F30F6F85 		movdqu	-3360(%rbp), %xmm0
- 9053      E0F2FFFF 
- 9054 7baa F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 9054      00F3FFFF 
- 9055 7bb2 F30F6F85 		movdqu	-3376(%rbp), %xmm0
- 9055      D0F2FFFF 
- 9056 7bba F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 9056      F0F2FFFF 
- 9057              	.LBB2304:
- 9058              	.LBB2305:
- 9059              	.LBB2306:
- 9060              	.LBB2307:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9061              		.loc 3 529 0
- 9062 7bc2 F30F6F8D 		movdqu	-3344(%rbp), %xmm1
- 9062      F0F2FFFF 
- 9063 7bca F30F6F85 		movdqu	-3328(%rbp), %xmm0
- 9063      00F3FFFF 
- 9064 7bd2 660F3800 		pshufb	%xmm1, %xmm0
- 9064      C1
- 9065              	.LBE2307:
- 9066              	.LBE2306:
- 9067              	.LBE2305:
- 9068              	.LBE2304:
- 9069              	.LBE2303:
- 9070              	.LBE2302:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9071              		.loc 2 1569 0
- 9072 7bd7 660F7F85 		movdqa	%xmm0, -8704(%rbp)
- 9072      00DEFFFF 
- 9073 7bdf 660F6F85 		movdqa	-8704(%rbp), %xmm0
- 9073      00DEFFFF 
- 9074 7be7 660FEF85 		pxor	-3568(%rbp), %xmm0
- 9074      10F2FFFF 
- 9075 7bef F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 9075      10F2FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 290
-
-
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9076              		.loc 2 1571 0
- 9077 7bf7 F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 9077      10F2FFFF 
- 9078              	.LBE2289:
- 9079              	.LBE2288:
-1846:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k26   :k28^k29: k29    : 0            */
- 9080              		.loc 2 1846 0
- 9081 7bff 660F7F85 		movdqa	%xmm0, -8976(%rbp)
- 9081      F0DCFFFF 
-1847:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k33   : k33   : k33    : k33          */
- 9082              		.loc 2 1847 0
- 9083 7c07 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 9083      E0DCFFFF 
- 9084 7c0f 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 9084      00DDFFFF 
- 9085 7c17 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 9085      00DDFFFF 
- 9086 7c1f F30F7F95 		movdqu	%xmm2, -3312(%rbp)
- 9086      10F3FFFF 
- 9087 7c27 F30F6F85 		movdqu	-3312(%rbp), %xmm0
- 9087      10F3FFFF 
- 9088 7c2f F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 9088      30F3FFFF 
- 9089              	.LBB2308:
- 9090              	.LBB2309:
- 9091              	.LBB2310:
- 9092              	.LBB2311:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 9093              		.loc 3 450 0
- 9094 7c37 F30F6F85 		movdqu	-3280(%rbp), %xmm0
- 9094      30F3FFFF 
- 9095 7c3f 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 9095      FF
- 9096              	.LBE2311:
- 9097              	.LBE2310:
- 9098              	.LBE2309:
- 9099              	.LBE2308:
- 9100              		.loc 2 1847 0
- 9101 7c44 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 9101      00DDFFFF 
-1848:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k34   : k35   : x      : x            */
- 9102              		.loc 2 1848 0
- 9103 7c4c 660F6F85 		movdqa	-8976(%rbp), %xmm0
- 9103      F0DCFFFF 
- 9104 7c54 660FEF85 		pxor	-8960(%rbp), %xmm0
- 9104      00DDFFFF 
- 9105 7c5c 660F7F85 		movdqa	%xmm0, -8976(%rbp)
- 9105      F0DCFFFF 
- 9106 7c64 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 9106      C0DCFFFF 
- 9107 7c6c F30F7F95 		movdqu	%xmm2, -3248(%rbp)
- 9107      50F3FFFF 
- 9108 7c74 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 9108      E0DCFFFF 
- 9109 7c7c F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 9109      40F3FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 291
-
-
- 9110 7c84 F30F6F85 		movdqu	-3248(%rbp), %xmm0
- 9110      50F3FFFF 
- 9111 7c8c F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 9111      80F3FFFF 
- 9112 7c94 F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 9112      40F3FFFF 
- 9113 7c9c F30F7F85 		movdqu	%xmm0, -3216(%rbp)
- 9113      70F3FFFF 
- 9114              	.LBB2312:
- 9115              	.LBB2313:
- 9116              	.LBB2314:
- 9117              	.LBB2315:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 9118              		.loc 3 366 0
- 9119 7ca4 F20F1085 		movsd	-3216(%rbp), %xmm0
- 9119      70F3FFFF 
- 9120 7cac 660F1685 		movhpd	-3208(%rbp), %xmm0
- 9120      78F3FFFF 
- 9121 7cb4 F20F108D 		movsd	-3200(%rbp), %xmm1
- 9121      80F3FFFF 
- 9122 7cbc 660F168D 		movhpd	-3192(%rbp), %xmm1
- 9122      88F3FFFF 
- 9123 7cc4 660F28D1 		movapd	%xmm1, %xmm2
- 9124 7cc8 660F14D0 		unpcklpd	%xmm0, %xmm2
- 9125 7ccc 660F28C2 		movapd	%xmm2, %xmm0
- 9126              	.LBE2315:
- 9127              	.LBE2314:
- 9128              	.LBE2313:
- 9129              	.LBE2312:
-1849:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k28   : k29   : k30    : k31          */
- 9130              		.loc 2 1849 0
- 9131 7cd0 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 9131      C0DCFFFF 
-1850:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[7] = v1; /* K28:K29:K30:K31 */
- 9132              		.loc 2 1851 0
- 9133 7cd8 488B85A8 		movq	-8536(%rbp), %rax
- 9133      DEFFFF
- 9134 7cdf 4883C070 		addq	$112, %rax
- 9135 7ce3 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 9135      C0DCFFFF 
- 9136 7ceb 660F7F00 		movdqa	%xmm0, (%rax)
- 9137 7cef 660F6F95 		movdqa	-8992(%rbp), %xmm2
- 9137      E0DCFFFF 
- 9138 7cf7 F30F7F95 		movdqu	%xmm2, -3168(%rbp)
- 9138      A0F3FFFF 
- 9139 7cff 660F6F85 		movdqa	-8976(%rbp), %xmm0
- 9139      F0DCFFFF 
- 9140 7d07 F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 9140      90F3FFFF 
- 9141 7d0f F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 9141      A0F3FFFF 
- 9142 7d17 F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 9142      D0F3FFFF 
- 9143 7d1f F30F6F85 		movdqu	-3184(%rbp), %xmm0
- 9143      90F3FFFF 
- 9144 7d27 F30F7F85 		movdqu	%xmm0, -3136(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 292
-
-
- 9144      C0F3FFFF 
- 9145              	.LBB2316:
- 9146              	.LBB2317:
- 9147              	.LBB2318:
- 9148              	.LBB2319:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 9149              		.loc 3 366 0
- 9150 7d2f F20F108D 		movsd	-3136(%rbp), %xmm1
- 9150      C0F3FFFF 
- 9151 7d37 660F168D 		movhpd	-3128(%rbp), %xmm1
- 9151      C8F3FFFF 
- 9152 7d3f F20F1085 		movsd	-3120(%rbp), %xmm0
- 9152      D0F3FFFF 
- 9153 7d47 660F1685 		movhpd	-3112(%rbp), %xmm0
- 9153      D8F3FFFF 
- 9154 7d4f 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 9154      01
- 9155              	.LBE2319:
- 9156              	.LBE2318:
- 9157              	.LBE2317:
- 9158              	.LBE2316:
-1852:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1853:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k32   : k33   : k34    : k35          */
- 9159              		.loc 2 1853 0
- 9160 7d54 660F7F85 		movdqa	%xmm0, -9008(%rbp)
- 9160      D0DCFFFF 
-1854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[8] = v2; /* K32:K33:K34:K35 */
- 9161              		.loc 2 1854 0
- 9162 7d5c 488B85A8 		movq	-8536(%rbp), %rax
- 9162      DEFFFF
- 9163 7d63 4883E880 		subq	$-128, %rax
- 9164 7d67 660F6F95 		movdqa	-9008(%rbp), %xmm2
- 9164      D0DCFFFF 
- 9165 7d6f 660F7F10 		movdqa	%xmm2, (%rax)
- 9166 7d73 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 9166      E0DCFFFF 
- 9167 7d7b F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 9167      E0F3FFFF 
- 9168              	.LBB2320:
- 9169              	.LBB2321:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 9170              		.loc 2 1565 0
- 9171 7d83 F30F6F95 		movdqu	-3104(%rbp), %xmm2
- 9171      E0F3FFFF 
- 9172 7d8b 660F7F95 		movdqa	%xmm2, -8688(%rbp)
- 9172      10DEFFFF 
- 9173 7d93 660F6F85 		movdqa	-8688(%rbp), %xmm0
- 9173      10DEFFFF 
- 9174 7d9b F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 9174      F0F3FFFF 
- 9175              	.LBB2322:
- 9176              	.LBB2323:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9177              		.loc 2 1278 0
- 9178 7da3 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9178      00000000 
- 9179 7dab F30F6F8D 		movdqu	-3088(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 293
-
-
- 9179      F0F3FFFF 
- 9180 7db3 F30F7F8D 		movdqu	%xmm1, -3056(%rbp)
- 9180      10F4FFFF 
- 9181 7dbb F30F7F85 		movdqu	%xmm0, -3072(%rbp)
- 9181      00F4FFFF 
- 9182 7dc3 F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 9182      10F4FFFF 
- 9183 7dcb F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 9183      30F4FFFF 
- 9184 7dd3 F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 9184      00F4FFFF 
- 9185 7ddb F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 9185      20F4FFFF 
- 9186              	.LBB2324:
- 9187              	.LBB2325:
- 9188              	.LBB2326:
- 9189              	.LBB2327:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9190              		.loc 3 529 0
- 9191 7de3 F30F6F8D 		movdqu	-3040(%rbp), %xmm1
- 9191      20F4FFFF 
- 9192 7deb F30F6F85 		movdqu	-3024(%rbp), %xmm0
- 9192      30F4FFFF 
- 9193 7df3 660F3800 		pshufb	%xmm1, %xmm0
- 9193      C1
- 9194              	.LBE2327:
- 9195              	.LBE2326:
- 9196              	.LBE2325:
- 9197              	.LBE2324:
- 9198              	.LBE2323:
- 9199              	.LBE2322:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9200              		.loc 2 1567 0
- 9201 7df8 660F7F85 		movdqa	%xmm0, -8688(%rbp)
- 9201      10DEFFFF 
- 9202 7e00 660F6F85 		movdqa	-8688(%rbp), %xmm0
- 9202      10DEFFFF 
- 9203 7e08 660FEF85 		pxor	-3104(%rbp), %xmm0
- 9203      E0F3FFFF 
- 9204 7e10 F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 9204      E0F3FFFF 
- 9205 7e18 660F6F95 		movdqa	-8688(%rbp), %xmm2
- 9205      10DEFFFF 
- 9206 7e20 F30F7F95 		movdqu	%xmm2, -3008(%rbp)
- 9206      40F4FFFF 
- 9207              	.LBB2328:
- 9208              	.LBB2329:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9209              		.loc 2 1278 0
- 9210 7e28 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9210      00000000 
- 9211 7e30 F30F6F8D 		movdqu	-3008(%rbp), %xmm1
- 9211      40F4FFFF 
- 9212 7e38 F30F7F8D 		movdqu	%xmm1, -2976(%rbp)
- 9212      60F4FFFF 
- 9213 7e40 F30F7F85 		movdqu	%xmm0, -2992(%rbp)
- 9213      50F4FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 294
-
-
- 9214 7e48 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 9214      60F4FFFF 
- 9215 7e50 F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 9215      80F4FFFF 
- 9216 7e58 F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 9216      50F4FFFF 
- 9217 7e60 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 9217      70F4FFFF 
- 9218              	.LBB2330:
- 9219              	.LBB2331:
- 9220              	.LBB2332:
- 9221              	.LBB2333:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9222              		.loc 3 529 0
- 9223 7e68 F30F6F8D 		movdqu	-2960(%rbp), %xmm1
- 9223      70F4FFFF 
- 9224 7e70 F30F6F85 		movdqu	-2944(%rbp), %xmm0
- 9224      80F4FFFF 
- 9225 7e78 660F3800 		pshufb	%xmm1, %xmm0
- 9225      C1
- 9226              	.LBE2333:
- 9227              	.LBE2332:
- 9228              	.LBE2331:
- 9229              	.LBE2330:
- 9230              	.LBE2329:
- 9231              	.LBE2328:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9232              		.loc 2 1568 0
- 9233 7e7d 660F7F85 		movdqa	%xmm0, -8688(%rbp)
- 9233      10DEFFFF 
- 9234 7e85 660F6F85 		movdqa	-8688(%rbp), %xmm0
- 9234      10DEFFFF 
- 9235 7e8d 660FEF85 		pxor	-3104(%rbp), %xmm0
- 9235      E0F3FFFF 
- 9236 7e95 F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 9236      E0F3FFFF 
- 9237 7e9d 660F6F85 		movdqa	-8688(%rbp), %xmm0
- 9237      10DEFFFF 
- 9238 7ea5 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 9238      90F4FFFF 
- 9239              	.LBB2334:
- 9240              	.LBB2335:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9241              		.loc 2 1278 0
- 9242 7ead 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9242      00000000 
- 9243 7eb5 F30F6F8D 		movdqu	-2928(%rbp), %xmm1
- 9243      90F4FFFF 
- 9244 7ebd F30F7F8D 		movdqu	%xmm1, -2896(%rbp)
- 9244      B0F4FFFF 
- 9245 7ec5 F30F7F85 		movdqu	%xmm0, -2912(%rbp)
- 9245      A0F4FFFF 
- 9246 7ecd F30F6F85 		movdqu	-2896(%rbp), %xmm0
- 9246      B0F4FFFF 
- 9247 7ed5 F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 9247      D0F4FFFF 
- 9248 7edd F30F6F85 		movdqu	-2912(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 295
-
-
- 9248      A0F4FFFF 
- 9249 7ee5 F30F7F85 		movdqu	%xmm0, -2880(%rbp)
- 9249      C0F4FFFF 
- 9250              	.LBB2336:
- 9251              	.LBB2337:
- 9252              	.LBB2338:
- 9253              	.LBB2339:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9254              		.loc 3 529 0
- 9255 7eed F30F6F8D 		movdqu	-2880(%rbp), %xmm1
- 9255      C0F4FFFF 
- 9256 7ef5 F30F6F85 		movdqu	-2864(%rbp), %xmm0
- 9256      D0F4FFFF 
- 9257 7efd 660F3800 		pshufb	%xmm1, %xmm0
- 9257      C1
- 9258              	.LBE2339:
- 9259              	.LBE2338:
- 9260              	.LBE2337:
- 9261              	.LBE2336:
- 9262              	.LBE2335:
- 9263              	.LBE2334:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9264              		.loc 2 1569 0
- 9265 7f02 660F7F85 		movdqa	%xmm0, -8688(%rbp)
- 9265      10DEFFFF 
- 9266 7f0a 660F6F85 		movdqa	-8688(%rbp), %xmm0
- 9266      10DEFFFF 
- 9267 7f12 660FEF85 		pxor	-3104(%rbp), %xmm0
- 9267      E0F3FFFF 
- 9268 7f1a F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 9268      E0F3FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9269              		.loc 2 1571 0
- 9270 7f22 F30F6F85 		movdqu	-3104(%rbp), %xmm0
- 9270      E0F3FFFF 
- 9271              	.LBE2321:
- 9272              	.LBE2320:
-1855:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 2 */
-1856:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k30   :k30^k31:k30^k31^k32:k30^k31^k32^k33 */
- 9273              		.loc 2 1856 0
- 9274 7f2a 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 9274      B0DCFFFF 
- 9275 7f32 660F6F95 		movdqa	-8976(%rbp), %xmm2
- 9275      F0DCFFFF 
- 9276 7f3a F30F7F95 		movdqu	%xmm2, -2848(%rbp)
- 9276      E0F4FFFF 
- 9277              	.LBB2340:
- 9278              	.LBB2341:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 9279              		.loc 2 1565 0
- 9280 7f42 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 9280      E0F4FFFF 
- 9281 7f4a 660F7F85 		movdqa	%xmm0, -8672(%rbp)
- 9281      20DEFFFF 
- 9282 7f52 660F6F95 		movdqa	-8672(%rbp), %xmm2
- 9282      20DEFFFF 
- 9283 7f5a F30F7F95 		movdqu	%xmm2, -2832(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 296
-
-
- 9283      F0F4FFFF 
- 9284              	.LBB2342:
- 9285              	.LBB2343:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9286              		.loc 2 1278 0
- 9287 7f62 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9287      00000000 
- 9288 7f6a F30F6F8D 		movdqu	-2832(%rbp), %xmm1
- 9288      F0F4FFFF 
- 9289 7f72 F30F7F8D 		movdqu	%xmm1, -2800(%rbp)
- 9289      10F5FFFF 
- 9290 7f7a F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 9290      00F5FFFF 
- 9291 7f82 F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 9291      10F5FFFF 
- 9292 7f8a F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 9292      30F5FFFF 
- 9293 7f92 F30F6F85 		movdqu	-2816(%rbp), %xmm0
- 9293      00F5FFFF 
- 9294 7f9a F30F7F85 		movdqu	%xmm0, -2784(%rbp)
- 9294      20F5FFFF 
- 9295              	.LBB2344:
- 9296              	.LBB2345:
- 9297              	.LBB2346:
- 9298              	.LBB2347:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9299              		.loc 3 529 0
- 9300 7fa2 F30F6F8D 		movdqu	-2784(%rbp), %xmm1
- 9300      20F5FFFF 
- 9301 7faa F30F6F85 		movdqu	-2768(%rbp), %xmm0
- 9301      30F5FFFF 
- 9302 7fb2 660F3800 		pshufb	%xmm1, %xmm0
- 9302      C1
- 9303              	.LBE2347:
- 9304              	.LBE2346:
- 9305              	.LBE2345:
- 9306              	.LBE2344:
- 9307              	.LBE2343:
- 9308              	.LBE2342:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9309              		.loc 2 1567 0
- 9310 7fb7 660F7F85 		movdqa	%xmm0, -8672(%rbp)
- 9310      20DEFFFF 
- 9311 7fbf 660F6F85 		movdqa	-8672(%rbp), %xmm0
- 9311      20DEFFFF 
- 9312 7fc7 660FEF85 		pxor	-2848(%rbp), %xmm0
- 9312      E0F4FFFF 
- 9313 7fcf F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 9313      E0F4FFFF 
- 9314 7fd7 660F6F85 		movdqa	-8672(%rbp), %xmm0
- 9314      20DEFFFF 
- 9315 7fdf F30F7F85 		movdqu	%xmm0, -2752(%rbp)
- 9315      40F5FFFF 
- 9316              	.LBB2348:
- 9317              	.LBB2349:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9318              		.loc 2 1278 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 297
-
-
- 9319 7fe7 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9319      00000000 
- 9320 7fef F30F6F8D 		movdqu	-2752(%rbp), %xmm1
- 9320      40F5FFFF 
- 9321 7ff7 F30F7F8D 		movdqu	%xmm1, -2720(%rbp)
- 9321      60F5FFFF 
- 9322 7fff F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 9322      50F5FFFF 
- 9323 8007 F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 9323      60F5FFFF 
- 9324 800f F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 9324      80F5FFFF 
- 9325 8017 F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 9325      50F5FFFF 
- 9326 801f F30F7F85 		movdqu	%xmm0, -2704(%rbp)
- 9326      70F5FFFF 
- 9327              	.LBB2350:
- 9328              	.LBB2351:
- 9329              	.LBB2352:
- 9330              	.LBB2353:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9331              		.loc 3 529 0
- 9332 8027 F30F6F8D 		movdqu	-2704(%rbp), %xmm1
- 9332      70F5FFFF 
- 9333 802f F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 9333      80F5FFFF 
- 9334 8037 660F3800 		pshufb	%xmm1, %xmm0
- 9334      C1
- 9335              	.LBE2353:
- 9336              	.LBE2352:
- 9337              	.LBE2351:
- 9338              	.LBE2350:
- 9339              	.LBE2349:
- 9340              	.LBE2348:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9341              		.loc 2 1568 0
- 9342 803c 660F7F85 		movdqa	%xmm0, -8672(%rbp)
- 9342      20DEFFFF 
- 9343 8044 660F6F85 		movdqa	-8672(%rbp), %xmm0
- 9343      20DEFFFF 
- 9344 804c 660FEF85 		pxor	-2848(%rbp), %xmm0
- 9344      E0F4FFFF 
- 9345 8054 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 9345      E0F4FFFF 
- 9346 805c 660F6F95 		movdqa	-8672(%rbp), %xmm2
- 9346      20DEFFFF 
- 9347 8064 F30F7F95 		movdqu	%xmm2, -2672(%rbp)
- 9347      90F5FFFF 
- 9348              	.LBB2354:
- 9349              	.LBB2355:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9350              		.loc 2 1278 0
- 9351 806c 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9351      00000000 
- 9352 8074 F30F6F8D 		movdqu	-2672(%rbp), %xmm1
- 9352      90F5FFFF 
- 9353 807c F30F7F8D 		movdqu	%xmm1, -2640(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 298
-
-
- 9353      B0F5FFFF 
- 9354 8084 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 9354      A0F5FFFF 
- 9355 808c F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 9355      B0F5FFFF 
- 9356 8094 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 9356      D0F5FFFF 
- 9357 809c F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 9357      A0F5FFFF 
- 9358 80a4 F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 9358      C0F5FFFF 
- 9359              	.LBB2356:
- 9360              	.LBB2357:
- 9361              	.LBB2358:
- 9362              	.LBB2359:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9363              		.loc 3 529 0
- 9364 80ac F30F6F8D 		movdqu	-2624(%rbp), %xmm1
- 9364      C0F5FFFF 
- 9365 80b4 F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 9365      D0F5FFFF 
- 9366 80bc 660F3800 		pshufb	%xmm1, %xmm0
- 9366      C1
- 9367              	.LBE2359:
- 9368              	.LBE2358:
- 9369              	.LBE2357:
- 9370              	.LBE2356:
- 9371              	.LBE2355:
- 9372              	.LBE2354:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9373              		.loc 2 1569 0
- 9374 80c1 660F7F85 		movdqa	%xmm0, -8672(%rbp)
- 9374      20DEFFFF 
- 9375 80c9 660F6F85 		movdqa	-8672(%rbp), %xmm0
- 9375      20DEFFFF 
- 9376 80d1 660FEF85 		pxor	-2848(%rbp), %xmm0
- 9376      E0F4FFFF 
- 9377 80d9 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 9377      E0F4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9378              		.loc 2 1571 0
- 9379 80e1 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 9379      E0F4FFFF 
- 9380              	.LBE2341:
- 9381              	.LBE2340:
-1857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v4);       /* k26   :k26^k27: k27    : 0            */
- 9382              		.loc 2 1857 0
- 9383 80e9 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 9383      C0DCFFFF 
-1858:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 9384              		.loc 2 1858 0
- 9385 80f1 660F6F85 		movdqa	-9008(%rbp), %xmm0
- 9385      D0DCFFFF 
- 9386 80f9 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 9386      00DDFFFF 
- 9387 8101 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 9387      00DDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 299
-
-
- 9388 8109 F30F7F95 		movdqu	%xmm2, -2576(%rbp)
- 9388      F0F5FFFF 
- 9389              	.LBB2360:
- 9390              	.LBB2361:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 9391              		.loc 2 1681 0
- 9392 8111 B8200000 		movl	$32, %eax
- 9392      00
- 9393 8116 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 9393      00000000 
- 9394 811e F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 9394      10F6FFFF 
- 9395 8126 89850CF6 		movl	%eax, -2548(%rbp)
- 9395      FFFF
- 9396 812c F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 9396      10F6FFFF 
- 9397 8134 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 9397      30F6FFFF 
- 9398 813c 8B850CF6 		movl	-2548(%rbp), %eax
- 9398      FFFF
- 9399 8142 89852CF6 		movl	%eax, -2516(%rbp)
- 9399      FFFF
- 9400              	.LBB2362:
- 9401              	.LBB2363:
- 9402              	.LBB2364:
- 9403              	.LBB2365:
- 9404              		.loc 3 598 0
- 9405 8148 8B852CF6 		movl	-2516(%rbp), %eax
- 9405      FFFF
- 9406 814e F30F6F85 		movdqu	-2512(%rbp), %xmm0
- 9406      30F6FFFF 
- 9407 8156 660F3A22 		pinsrd	$3, %eax, %xmm0
- 9407      C003
- 9408              	.LBE2365:
- 9409              	.LBE2364:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 9410              		.loc 2 519 0
- 9411 815c F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 9411      10F6FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9412              		.loc 2 526 0
- 9413 8164 F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 9413      10F6FFFF 
- 9414              	.LBE2363:
- 9415              	.LBE2362:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 9416              		.loc 2 1681 0
- 9417 816c 660F7F85 		movdqa	%xmm0, -8640(%rbp)
- 9417      40DEFFFF 
- 9418 8174 F30F6F85 		movdqu	-2576(%rbp), %xmm0
- 9418      F0F5FFFF 
- 9419 817c F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 9419      40F6FFFF 
- 9420 8184 F30F6F85 		movdqu	-2496(%rbp), %xmm0
- 9420      40F6FFFF 
- 9421 818c F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 9421      60F6FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 300
-
-
- 9422 8194 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 9422      000000
- 9423 819b 48898558 		movq	%rax, -2472(%rbp)
- 9423      F6FFFF
- 9424              	.LBB2366:
- 9425              	.LBB2367:
- 9426              	.LBB2368:
- 9427              	.LBB2369:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 9428              		.loc 2 851 0
- 9429 81a2 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 9429      00000000 
- 9430 81aa F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 9430      80F6FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 9431              		.loc 2 854 0
- 9432 81b2 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 9432      00000000 
- 9433 81ba F30F6F8D 		movdqu	-2464(%rbp), %xmm1
- 9433      60F6FFFF 
- 9434 81c2 F30F7F8D 		movdqu	%xmm1, -2352(%rbp)
- 9434      D0F6FFFF 
- 9435 81ca F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 9435      C0F6FFFF 
- 9436              	.LBB2370:
- 9437              	.LBB2371:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 9438              		.loc 2 206 0
- 9439 81d2 F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 9439      C0F6FFFF 
- 9440 81da F30F6F8D 		movdqu	-2352(%rbp), %xmm1
- 9440      D0F6FFFF 
- 9441 81e2 660FDBC1 		pand	%xmm1, %xmm0
- 9442              	.LBE2371:
- 9443              	.LBE2370:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 9444              		.loc 2 854 0
- 9445 81e6 F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 9445      B0F6FFFF 
- 9446 81ee F30F6F85 		movdqu	-2464(%rbp), %xmm0
- 9446      60F6FFFF 
- 9447 81f6 F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 9447      F0F6FFFF 
- 9448              	.LBB2372:
- 9449              	.LBB2373:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 9450              		.loc 3 433 0
- 9451 81fe F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 9451      F0F6FFFF 
- 9452 8206 660F72D0 		psrld	$4, %xmm0
- 9452      04
- 9453              	.LBE2373:
- 9454              	.LBE2372:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 9455              		.loc 2 857 0
- 9456 820b F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 9456      A0F6FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 301
-
-
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 9457              		.loc 2 859 0
- 9458 8213 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 9458      00000000 
- 9459 821b F30F6F8D 		movdqu	-2400(%rbp), %xmm1
- 9459      A0F6FFFF 
- 9460 8223 F30F7F8D 		movdqu	%xmm1, -2288(%rbp)
- 9460      10F7FFFF 
- 9461 822b F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 9461      00F7FFFF 
- 9462              	.LBB2374:
- 9463              	.LBB2375:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 9464              		.loc 2 206 0
- 9465 8233 F30F6F85 		movdqu	-2304(%rbp), %xmm0
- 9465      00F7FFFF 
- 9466 823b F30F6F8D 		movdqu	-2288(%rbp), %xmm1
- 9466      10F7FFFF 
- 9467 8243 660FDBC1 		pand	%xmm1, %xmm0
- 9468              	.LBE2375:
- 9469              	.LBE2374:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 9470              		.loc 2 859 0
- 9471 8247 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 9471      A0F6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 9472              		.loc 2 866 0
- 9473 824f C7857CF6 		movl	$0, -2436(%rbp)
- 9473      FFFF0000 
- 9473      0000
- 9474 8259 E9BE0100 		jmp	.L132
- 9474      00
- 9475              	.L133:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 9476              		.loc 2 868 0
- 9477 825e 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 9477      00000000 
- 9478 8266 F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 9478      30F7FFFF 
- 9479 826e F30F6F85 		movdqu	-2400(%rbp), %xmm0
- 9479      A0F6FFFF 
- 9480 8276 F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 9480      20F7FFFF 
- 9481 827e F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 9481      30F7FFFF 
- 9482 8286 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 9482      50F7FFFF 
- 9483 828e F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 9483      20F7FFFF 
- 9484 8296 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 9484      40F7FFFF 
- 9485              	.LBB2376:
- 9486              	.LBB2377:
- 9487              	.LBB2378:
- 9488              	.LBB2379:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9489              		.loc 3 529 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 302
-
-
- 9490 829e F30F6F8D 		movdqu	-2240(%rbp), %xmm1
- 9490      40F7FFFF 
- 9491 82a6 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 9491      50F7FFFF 
- 9492 82ae 660F3800 		pshufb	%xmm1, %xmm0
- 9492      C1
- 9493              	.LBE2379:
- 9494              	.LBE2378:
- 9495              	.LBE2377:
- 9496              	.LBE2376:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 9497              		.loc 2 868 0
- 9498 82b3 F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 9498      90F6FFFF 
- 9499 82bb F30F6F85 		movdqu	-2384(%rbp), %xmm0
- 9499      B0F6FFFF 
- 9500 82c3 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 9500      70F7FFFF 
- 9501 82cb F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 9501      90F6FFFF 
- 9502 82d3 F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 9502      60F7FFFF 
- 9503              	.LBB2380:
- 9504              	.LBB2381:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 9505              		.loc 2 234 0
- 9506 82db F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 9506      60F7FFFF 
- 9507 82e3 F30F6F8D 		movdqu	-2192(%rbp), %xmm1
- 9507      70F7FFFF 
- 9508 82eb 660FEBC1 		por	%xmm1, %xmm0
- 9509              	.LBE2381:
- 9510              	.LBE2380:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 9511              		.loc 2 870 0
- 9512 82ef F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 9512      90F6FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 9513              		.loc 2 872 0
- 9514 82f7 8B857CF6 		mov	-2436(%rbp), %eax
- 9514      FFFF
- 9515 82fd 48C1E004 		salq	$4, %rax
- 9516 8301 48038558 		addq	-2472(%rbp), %rax
- 9516      F6FFFF
- 9517 8308 660F6F00 		movdqa	(%rax), %xmm0
- 9518 830c F30F7F85 		movdqu	%xmm0, -2160(%rbp)
- 9518      90F7FFFF 
- 9519 8314 F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 9519      90F6FFFF 
- 9520 831c F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 9520      80F7FFFF 
- 9521 8324 F30F6F85 		movdqu	-2160(%rbp), %xmm0
- 9521      90F7FFFF 
- 9522 832c F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 9522      B0F7FFFF 
- 9523 8334 F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 9523      80F7FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 303
-
-
- 9524 833c F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 9524      A0F7FFFF 
- 9525              	.LBB2382:
- 9526              	.LBB2383:
- 9527              	.LBB2384:
- 9528              	.LBB2385:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9529              		.loc 3 529 0
- 9530 8344 F30F6F8D 		movdqu	-2144(%rbp), %xmm1
- 9530      A0F7FFFF 
- 9531 834c F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 9531      B0F7FFFF 
- 9532 8354 660F3800 		pshufb	%xmm1, %xmm0
- 9532      C1
- 9533              	.LBE2385:
- 9534              	.LBE2384:
- 9535              	.LBE2383:
- 9536              	.LBE2382:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 9537              		.loc 2 872 0
- 9538 8359 F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 9538      90F6FFFF 
- 9539 8361 F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 9539      80F6FFFF 
- 9540 8369 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 9540      D0F7FFFF 
- 9541 8371 F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 9541      90F6FFFF 
- 9542 8379 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 9542      C0F7FFFF 
- 9543              	.LBB2386:
- 9544              	.LBB2387:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 9545              		.loc 2 234 0
- 9546 8381 F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 9546      C0F7FFFF 
- 9547 8389 F30F6F8D 		movdqu	-2096(%rbp), %xmm1
- 9547      D0F7FFFF 
- 9548 8391 660FEBC1 		por	%xmm1, %xmm0
- 9549              	.LBE2387:
- 9550              	.LBE2386:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 9551              		.loc 2 874 0
- 9552 8395 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 9552      80F6FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 9553              		.loc 2 876 0
- 9554 839d 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 9554      00000000 
- 9555 83a5 F30F6F8D 		movdqu	-2400(%rbp), %xmm1
- 9555      A0F6FFFF 
- 9556 83ad F30F7F8D 		movdqu	%xmm1, -2064(%rbp)
- 9556      F0F7FFFF 
- 9557 83b5 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 9557      E0F7FFFF 
- 9558              	.LBB2388:
- 9559              	.LBB2389:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 304
-
-
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 9560              		.loc 2 290 0
- 9561 83bd F30F6F8D 		movdqu	-2080(%rbp), %xmm1
- 9561      E0F7FFFF 
- 9562 83c5 F30F6F85 		movdqu	-2064(%rbp), %xmm0
- 9562      F0F7FFFF 
- 9563 83cd 660FF8C1 		psubb	%xmm1, %xmm0
- 9564              	.LBE2389:
- 9565              	.LBE2388:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 9566              		.loc 2 876 0
- 9567 83d1 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 9567      A0F6FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 9568              		.loc 2 878 0
- 9569 83d9 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 9569      00000000 
- 9570 83e1 F30F6F8D 		movdqu	-2400(%rbp), %xmm1
- 9570      A0F6FFFF 
- 9571 83e9 F30F7F8D 		movdqu	%xmm1, -2032(%rbp)
- 9571      10F8FFFF 
- 9572 83f1 F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 9572      00F8FFFF 
- 9573              	.LBB2390:
- 9574              	.LBB2391:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 9575              		.loc 2 206 0
- 9576 83f9 F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 9576      00F8FFFF 
- 9577 8401 F30F6F8D 		movdqu	-2032(%rbp), %xmm1
- 9577      10F8FFFF 
- 9578 8409 660FDBC1 		pand	%xmm1, %xmm0
- 9579              	.LBE2391:
- 9580              	.LBE2390:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 9581              		.loc 2 878 0
- 9582 840d F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 9582      A0F6FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 9583              		.loc 2 866 0
- 9584 8415 83857CF6 		addl	$1, -2436(%rbp)
- 9584      FFFF01
- 9585              	.L132:
- 9586 841c 83BD7CF6 		cmpl	$15, -2436(%rbp)
- 9586      FFFF0F
- 9587 8423 0F8635FE 		jbe	.L133
- 9587      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 9588              		.loc 2 882 0
- 9589 8429 F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 9589      80F6FFFF 
- 9590              	.LBE2369:
- 9591              	.LBE2368:
- 9592              	.LBE2367:
- 9593              	.LBE2366:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 9594              		.loc 2 1682 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 305
-
-
- 9595 8431 660F7F85 		movdqa	%xmm0, -8656(%rbp)
- 9595      30DEFFFF 
- 9596              	.LBB2392:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 9597              		.loc 2 1683 0
- 9598 8439 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 9598      30DEFFFF 
- 9599 8441 F30F7F85 		movdqu	%xmm0, -8256(%rbp)
- 9599      C0DFFFFF 
- 9600 8449 E8000000 		call	KDbgWriterGet at PLT
- 9600      00
- 9601 844e 4885C0   		testq	%rax, %rax
- 9602 8451 7479     		je	.L135
- 9603 8453 BF010000 		movl	$1, %edi
- 9603      00
- 9604 8458 E8000000 		call	KDbgCondToFlag at PLT
- 9604      00
- 9605 845d 4889C6   		movq	%rax, %rsi
- 9606 8460 BF100000 		movl	$16, %edi
- 9606      00
- 9607 8465 E8000000 		call	KDbgTestModConds at PLT
- 9607      00
- 9608 846a 84C0     		testb	%al, %al
- 9609 846c 745E     		je	.L135
- 9610 846e 8B85CCDF 		movl	-8244(%rbp), %eax
- 9610      FFFF
- 9611 8474 89C7     		movl	%eax, %edi
- 9612 8476 E8857BFF 		call	bswap_32
- 9612      FF
- 9613 847b 4189C5   		movl	%eax, %r13d
- 9614 847e 8B85C8DF 		movl	-8248(%rbp), %eax
- 9614      FFFF
- 9615 8484 89C7     		movl	%eax, %edi
- 9616 8486 E8757BFF 		call	bswap_32
- 9616      FF
- 9617 848b 4189C4   		movl	%eax, %r12d
- 9618 848e 8B85C4DF 		movl	-8252(%rbp), %eax
- 9618      FFFF
- 9619 8494 89C7     		movl	%eax, %edi
- 9620 8496 E8657BFF 		call	bswap_32
- 9620      FF
- 9621 849b 89C3     		movl	%eax, %ebx
- 9622 849d 8B85C0DF 		movl	-8256(%rbp), %eax
- 9622      FFFF
- 9623 84a3 89C7     		movl	%eax, %edi
- 9624 84a5 E8567BFF 		call	bswap_32
- 9624      FF
- 9625 84aa 4589E9   		movl	%r13d, %r9d
- 9626 84ad 4589E0   		movl	%r12d, %r8d
- 9627 84b0 89D9     		movl	%ebx, %ecx
- 9628 84b2 89C2     		movl	%eax, %edx
- 9629 84b4 488D3500 		leaq	.LC0(%rip), %rsi
- 9629      000000
- 9630 84bb 488D3D00 		leaq	.LC1(%rip), %rdi
- 9630      000000
- 9631 84c2 B8000000 		movl	$0, %eax
- 9631      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 306
-
-
- 9632 84c7 E8000000 		call	KDbgMsg at PLT
- 9632      00
- 9633              	.L135:
- 9634 84cc 660F6F95 		movdqa	-8656(%rbp), %xmm2
- 9634      30DEFFFF 
- 9635 84d4 F30F7F95 		movdqu	%xmm2, -2016(%rbp)
- 9635      20F8FFFF 
- 9636              	.LBE2392:
- 9637              	.LBB2393:
- 9638              	.LBB2394:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 9639              		.loc 2 667 0
- 9640 84dc 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 9640      00000000 
- 9641 84e4 F30F6F8D 		movdqu	-2016(%rbp), %xmm1
- 9641      20F8FFFF 
- 9642 84ec F30F7F8D 		movdqu	%xmm1, -1984(%rbp)
- 9642      40F8FFFF 
- 9643 84f4 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 9643      30F8FFFF 
- 9644 84fc F30F6F85 		movdqu	-1984(%rbp), %xmm0
- 9644      40F8FFFF 
- 9645 8504 F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 9645      60F8FFFF 
- 9646 850c F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 9646      30F8FFFF 
- 9647 8514 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 9647      50F8FFFF 
- 9648              	.LBB2395:
- 9649              	.LBB2396:
- 9650              	.LBB2397:
- 9651              	.LBB2398:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9652              		.loc 3 529 0
- 9653 851c F30F6F8D 		movdqu	-1968(%rbp), %xmm1
- 9653      50F8FFFF 
- 9654 8524 F30F6F85 		movdqu	-1952(%rbp), %xmm0
- 9654      60F8FFFF 
- 9655 852c 660F3800 		pshufb	%xmm1, %xmm0
- 9655      C1
- 9656              	.LBE2398:
- 9657              	.LBE2397:
- 9658              	.LBE2396:
- 9659              	.LBE2395:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 9660              		.loc 2 667 0
- 9661 8531 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 9661      20F8FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 9662              		.loc 2 668 0
- 9663 8539 F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 9663      20F8FFFF 
- 9664              	.LBE2394:
- 9665              	.LBE2393:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 9666              		.loc 2 1684 0
- 9667 8541 660F7F85 		movdqa	%xmm0, -8656(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 307
-
-
- 9667      30DEFFFF 
- 9668              	.LBB2399:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 9669              		.loc 2 1685 0
- 9670 8549 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 9670      30DEFFFF 
- 9671 8551 F30F7F85 		movdqu	%xmm0, -8272(%rbp)
- 9671      B0DFFFFF 
- 9672 8559 E8000000 		call	KDbgWriterGet at PLT
- 9672      00
- 9673 855e 4885C0   		testq	%rax, %rax
- 9674 8561 7479     		je	.L137
- 9675 8563 BF010000 		movl	$1, %edi
- 9675      00
- 9676 8568 E8000000 		call	KDbgCondToFlag at PLT
- 9676      00
- 9677 856d 4889C6   		movq	%rax, %rsi
- 9678 8570 BF100000 		movl	$16, %edi
- 9678      00
- 9679 8575 E8000000 		call	KDbgTestModConds at PLT
- 9679      00
- 9680 857a 84C0     		testb	%al, %al
- 9681 857c 745E     		je	.L137
- 9682 857e 8B85BCDF 		movl	-8260(%rbp), %eax
- 9682      FFFF
- 9683 8584 89C7     		movl	%eax, %edi
- 9684 8586 E8757AFF 		call	bswap_32
- 9684      FF
- 9685 858b 4189C5   		movl	%eax, %r13d
- 9686 858e 8B85B8DF 		movl	-8264(%rbp), %eax
- 9686      FFFF
- 9687 8594 89C7     		movl	%eax, %edi
- 9688 8596 E8657AFF 		call	bswap_32
- 9688      FF
- 9689 859b 4189C4   		movl	%eax, %r12d
- 9690 859e 8B85B4DF 		movl	-8268(%rbp), %eax
- 9690      FFFF
- 9691 85a4 89C7     		movl	%eax, %edi
- 9692 85a6 E8557AFF 		call	bswap_32
- 9692      FF
- 9693 85ab 89C3     		movl	%eax, %ebx
- 9694 85ad 8B85B0DF 		movl	-8272(%rbp), %eax
- 9694      FFFF
- 9695 85b3 89C7     		movl	%eax, %edi
- 9696 85b5 E8467AFF 		call	bswap_32
- 9696      FF
- 9697 85ba 4589E9   		movl	%r13d, %r9d
- 9698 85bd 4589E0   		movl	%r12d, %r8d
- 9699 85c0 89D9     		movl	%ebx, %ecx
- 9700 85c2 89C2     		movl	%eax, %edx
- 9701 85c4 488D3500 		leaq	.LC2(%rip), %rsi
- 9701      000000
- 9702 85cb 488D3D00 		leaq	.LC1(%rip), %rdi
- 9702      000000
- 9703 85d2 B8000000 		movl	$0, %eax
- 9703      00
- 9704 85d7 E8000000 		call	KDbgMsg at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 308
-
-
- 9704      00
- 9705              	.L137:
- 9706 85dc 660F6F95 		movdqa	-8656(%rbp), %xmm2
- 9706      30DEFFFF 
- 9707 85e4 F30F7F95 		movdqu	%xmm2, -1920(%rbp)
- 9707      80F8FFFF 
- 9708 85ec 660F6F85 		movdqa	-8640(%rbp), %xmm0
- 9708      40DEFFFF 
- 9709 85f4 F30F7F85 		movdqu	%xmm0, -1936(%rbp)
- 9709      70F8FFFF 
- 9710              	.LBE2399:
- 9711              	.LBB2400:
- 9712              	.LBB2401:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 9713              		.loc 2 178 0
- 9714 85fc F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 9714      70F8FFFF 
- 9715 8604 F30F6F8D 		movdqu	-1920(%rbp), %xmm1
- 9715      80F8FFFF 
- 9716 860c 660FEFC1 		pxor	%xmm1, %xmm0
- 9717              	.LBE2401:
- 9718              	.LBE2400:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 9719              		.loc 2 1686 0
- 9720 8610 660F7F85 		movdqa	%xmm0, -8656(%rbp)
- 9720      30DEFFFF 
- 9721              	.LBB2402:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 9722              		.loc 2 1687 0
- 9723 8618 660F6F95 		movdqa	-8656(%rbp), %xmm2
- 9723      30DEFFFF 
- 9724 8620 F30F7F95 		movdqu	%xmm2, -8288(%rbp)
- 9724      A0DFFFFF 
- 9725 8628 E8000000 		call	KDbgWriterGet at PLT
- 9725      00
- 9726 862d 4885C0   		testq	%rax, %rax
- 9727 8630 7479     		je	.L139
- 9728 8632 BF010000 		movl	$1, %edi
- 9728      00
- 9729 8637 E8000000 		call	KDbgCondToFlag at PLT
- 9729      00
- 9730 863c 4889C6   		movq	%rax, %rsi
- 9731 863f BF100000 		movl	$16, %edi
- 9731      00
- 9732 8644 E8000000 		call	KDbgTestModConds at PLT
- 9732      00
- 9733 8649 84C0     		testb	%al, %al
- 9734 864b 745E     		je	.L139
- 9735 864d 8B85ACDF 		movl	-8276(%rbp), %eax
- 9735      FFFF
- 9736 8653 89C7     		movl	%eax, %edi
- 9737 8655 E8A679FF 		call	bswap_32
- 9737      FF
- 9738 865a 4189C5   		movl	%eax, %r13d
- 9739 865d 8B85A8DF 		movl	-8280(%rbp), %eax
- 9739      FFFF
- 9740 8663 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 309
-
-
- 9741 8665 E89679FF 		call	bswap_32
- 9741      FF
- 9742 866a 4189C4   		movl	%eax, %r12d
- 9743 866d 8B85A4DF 		movl	-8284(%rbp), %eax
- 9743      FFFF
- 9744 8673 89C7     		movl	%eax, %edi
- 9745 8675 E88679FF 		call	bswap_32
- 9745      FF
- 9746 867a 89C3     		movl	%eax, %ebx
- 9747 867c 8B85A0DF 		movl	-8288(%rbp), %eax
- 9747      FFFF
- 9748 8682 89C7     		movl	%eax, %edi
- 9749 8684 E87779FF 		call	bswap_32
- 9749      FF
- 9750 8689 4589E9   		movl	%r13d, %r9d
- 9751 868c 4589E0   		movl	%r12d, %r8d
- 9752 868f 89D9     		movl	%ebx, %ecx
- 9753 8691 89C2     		movl	%eax, %edx
- 9754 8693 488D3500 		leaq	.LC3(%rip), %rsi
- 9754      000000
- 9755 869a 488D3D00 		leaq	.LC1(%rip), %rdi
- 9755      000000
- 9756 86a1 B8000000 		movl	$0, %eax
- 9756      00
- 9757 86a6 E8000000 		call	KDbgMsg at PLT
- 9757      00
- 9758              	.L139:
- 9759 86ab 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 9759      30DEFFFF 
- 9760 86b3 F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 9760      90F8FFFF 
- 9761 86bb F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 9761      90F8FFFF 
- 9762 86c3 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 9762      B0F8FFFF 
- 9763              	.LBE2402:
- 9764              	.LBB2403:
- 9765              	.LBB2404:
- 9766              	.LBB2405:
- 9767              	.LBB2406:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 9768              		.loc 3 450 0
- 9769 86cb F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 9769      B0F8FFFF 
- 9770 86d3 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 9770      FF
- 9771              	.LBE2406:
- 9772              	.LBE2405:
- 9773              	.LBE2404:
- 9774              	.LBE2403:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 9775              		.loc 2 1688 0
- 9776 86d8 660F7F85 		movdqa	%xmm0, -8656(%rbp)
- 9776      30DEFFFF 
- 9777              	.LBB2407:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 9778              		.loc 2 1689 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 310
-
-
- 9779 86e0 660F6F95 		movdqa	-8656(%rbp), %xmm2
- 9779      30DEFFFF 
- 9780 86e8 F30F7F95 		movdqu	%xmm2, -8304(%rbp)
- 9780      90DFFFFF 
- 9781 86f0 E8000000 		call	KDbgWriterGet at PLT
- 9781      00
- 9782 86f5 4885C0   		testq	%rax, %rax
- 9783 86f8 7479     		je	.L141
- 9784 86fa BF010000 		movl	$1, %edi
- 9784      00
- 9785 86ff E8000000 		call	KDbgCondToFlag at PLT
- 9785      00
- 9786 8704 4889C6   		movq	%rax, %rsi
- 9787 8707 BF100000 		movl	$16, %edi
- 9787      00
- 9788 870c E8000000 		call	KDbgTestModConds at PLT
- 9788      00
- 9789 8711 84C0     		testb	%al, %al
- 9790 8713 745E     		je	.L141
- 9791 8715 8B859CDF 		movl	-8292(%rbp), %eax
- 9791      FFFF
- 9792 871b 89C7     		movl	%eax, %edi
- 9793 871d E8DE78FF 		call	bswap_32
- 9793      FF
- 9794 8722 4189C5   		movl	%eax, %r13d
- 9795 8725 8B8598DF 		movl	-8296(%rbp), %eax
- 9795      FFFF
- 9796 872b 89C7     		movl	%eax, %edi
- 9797 872d E8CE78FF 		call	bswap_32
- 9797      FF
- 9798 8732 4189C4   		movl	%eax, %r12d
- 9799 8735 8B8594DF 		movl	-8300(%rbp), %eax
- 9799      FFFF
- 9800 873b 89C7     		movl	%eax, %edi
- 9801 873d E8BE78FF 		call	bswap_32
- 9801      FF
- 9802 8742 89C3     		movl	%eax, %ebx
- 9803 8744 8B8590DF 		movl	-8304(%rbp), %eax
- 9803      FFFF
- 9804 874a 89C7     		movl	%eax, %edi
- 9805 874c E8AF78FF 		call	bswap_32
- 9805      FF
- 9806 8751 4589E9   		movl	%r13d, %r9d
- 9807 8754 4589E0   		movl	%r12d, %r8d
- 9808 8757 89D9     		movl	%ebx, %ecx
- 9809 8759 89C2     		movl	%eax, %edx
- 9810 875b 488D3500 		leaq	.LC4(%rip), %rsi
- 9810      000000
- 9811 8762 488D3D00 		leaq	.LC1(%rip), %rdi
- 9811      000000
- 9812 8769 B8000000 		movl	$0, %eax
- 9812      00
- 9813 876e E8000000 		call	KDbgMsg at PLT
- 9813      00
- 9814              	.L141:
- 9815              	.LBE2407:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 311
-
-
- 9816              		.loc 2 1690 0
- 9817 8773 660F6F85 		movdqa	-8656(%rbp), %xmm0
- 9817      30DEFFFF 
- 9818              	.LBE2361:
- 9819              	.LBE2360:
- 9820              		.loc 2 1858 0
- 9821 877b 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 9821      00DDFFFF 
-1859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v2,0x20);                             /* F(k35): F(k35): F(k35) : F(k35)       */
-1860:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k36   : k37   : k38    : k39          */
- 9822              		.loc 2 1860 0
- 9823 8783 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 9823      B0DCFFFF 
- 9824 878b 660FEF85 		pxor	-8960(%rbp), %xmm0
- 9824      00DDFFFF 
- 9825 8793 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 9825      B0DCFFFF 
- 9826 879b 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 9826      B0DCFFFF 
- 9827 87a3 F30F7F95 		movdqu	%xmm2, -1856(%rbp)
- 9827      C0F8FFFF 
- 9828 87ab F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 9828      C0F8FFFF 
- 9829 87b3 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 9829      E0F8FFFF 
- 9830              	.LBB2408:
- 9831              	.LBB2409:
- 9832              	.LBB2410:
- 9833              	.LBB2411:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 9834              		.loc 3 450 0
- 9835 87bb F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 9835      E0F8FFFF 
- 9836 87c3 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 9836      FF
- 9837              	.LBE2411:
- 9838              	.LBE2410:
- 9839              	.LBE2409:
- 9840              	.LBE2408:
-1861:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (v0);       /* k39   : k39   : k39    : k39          */
- 9841              		.loc 2 1861 0
- 9842 87c8 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 9842      00DDFFFF 
-1862:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 ^= k;                                       /* k40   : k41   : x      : x            */
- 9843              		.loc 2 1862 0
- 9844 87d0 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 9844      C0DCFFFF 
- 9845 87d8 660FEF85 		pxor	-8960(%rbp), %xmm0
- 9845      00DDFFFF 
- 9846 87e0 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 9846      C0DCFFFF 
-1863:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1864:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[9] = v0; /* K36:K37:K38:K39 */
- 9847              		.loc 2 1864 0
- 9848 87e8 488B85A8 		movq	-8536(%rbp), %rax
- 9848      DEFFFF
- 9849 87ef 48059000 		addq	$144, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 312
-
-
- 9849      0000
- 9850 87f5 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 9850      B0DCFFFF 
- 9851 87fd 660F7F10 		movdqa	%xmm2, (%rax)
-1865:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 1 4-15 = 40-55 but we only need through 51 so we change from pattern 2 to pattern 3 */
-1867:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* start the working pattern with 6 ready words in v0:v1 */
-1868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1869:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn1)
- 9852              		.loc 2 1869 0
- 9853 8801 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 9853      C0DCFFFF 
- 9854 8809 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 9854      00DDFFFF 
- 9855 8811 660F6F95 		movdqa	-8960(%rbp), %xmm2
- 9855      00DDFFFF 
- 9856 8819 F30F7F95 		movdqu	%xmm2, -1792(%rbp)
- 9856      00F9FFFF 
- 9857              	.LBB2412:
- 9858              	.LBB2413:
-1629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rconw = (AESWord)(AESByte)rcon;
- 9859              		.loc 2 1629 0
- 9860 8821 B8400000 		movl	$64, %eax
- 9860      00
- 9861 8826 0FB6C0   		movzbl	%al, %eax
- 9862 8829 898520F9 		movl	%eax, -1760(%rbp)
- 9862      FFFF
-1630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 9863              		.loc 2 1630 0
- 9864 882f F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 9864      00F9FFFF 
- 9865 8837 F30F7F85 		movdqu	%xmm0, -8224(%rbp)
- 9865      E0DFFFFF 
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 9866              		.loc 2 1631 0
- 9867 883f 8B85E4DF 		movl	-8220(%rbp), %eax
- 9867      FFFF
- 9868 8845 898524F9 		movl	%eax, -1756(%rbp)
- 9868      FFFF
- 9869              	.LBB2414:
- 9870              	.LBB2415:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 9871              		.loc 2 740 0
- 9872 884b 8B8524F9 		movl	-1756(%rbp), %eax
- 9872      FFFF
- 9873 8851 8985D0DF 		movl	%eax, -8240(%rbp)
- 9873      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 9874              		.loc 2 741 0
- 9875 8857 C78528F9 		movl	$0, -1752(%rbp)
- 9875      FFFF0000 
- 9875      0000
- 9876 8861 EB36     		jmp	.L142
- 9877              	.L143:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 9878              		.loc 2 742 0
- 9879 8863 8B8D28F9 		movl	-1752(%rbp), %ecx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 313
-
-
- 9879      FFFF
- 9880 8869 8B8528F9 		movl	-1752(%rbp), %eax
- 9880      FFFF
- 9881 886f 89C0     		mov	%eax, %eax
- 9882 8871 0FB68405 		movzbl	-8240(%rbp,%rax), %eax
- 9882      D0DFFFFF 
- 9883 8879 0FB6C0   		movzbl	%al, %eax
- 9884 887c 89C2     		mov	%eax, %edx
- 9885 887e 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 9885      000000
- 9886 8885 0FB61402 		movzbl	(%rdx,%rax), %edx
- 9887 8889 89C8     		mov	%ecx, %eax
- 9888 888b 889405D0 		movb	%dl, -8240(%rbp,%rax)
- 9888      DFFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 9889              		.loc 2 741 0
- 9890 8892 838528F9 		addl	$1, -1752(%rbp)
- 9890      FFFF01
- 9891              	.L142:
- 9892 8899 83BD28F9 		cmpl	$3, -1752(%rbp)
- 9892      FFFF03
- 9893 88a0 76C1     		jbe	.L143
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 9894              		.loc 2 743 0
- 9895 88a2 8B85D0DF 		movl	-8240(%rbp), %eax
- 9895      FFFF
- 9896              	.LBE2415:
- 9897              	.LBE2414:
-1631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[1]);
- 9898              		.loc 2 1631 0
- 9899 88a8 89851CF9 		movl	%eax, -1764(%rbp)
- 9899      FFFF
- 9900 88ae 8B851CF9 		movl	-1764(%rbp), %eax
- 9900      FFFF
- 9901 88b4 89852CF9 		movl	%eax, -1748(%rbp)
- 9901      FFFF
- 9902              	.LBB2416:
- 9903              	.LBB2417:
-1196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (w >> 8) | (w << 24);
- 9904              		.loc 2 1196 0
- 9905 88ba 8B852CF9 		movl	-1748(%rbp), %eax
- 9905      FFFF
- 9906 88c0 C1C808   		rorl	$8, %eax
- 9907              	.LBE2417:
- 9908              	.LBE2416:
-1632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(RotWord)(temp);
- 9909              		.loc 2 1632 0
- 9910 88c3 89851CF9 		movl	%eax, -1764(%rbp)
- 9910      FFFF
-1633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp ^= rconw;
- 9911              		.loc 2 1633 0
- 9912 88c9 8B8520F9 		movl	-1760(%rbp), %eax
- 9912      FFFF
- 9913 88cf 31851CF9 		xorl	%eax, -1764(%rbp)
- 9913      FFFF
-1635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 9914              		.loc 2 1635 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 314
-
-
- 9915 88d5 8B851CF9 		movl	-1764(%rbp), %eax
- 9915      FFFF
- 9916 88db 8985ECDF 		movl	%eax, -8212(%rbp)
- 9916      FFFF
- 9917 88e1 8B85ECDF 		movl	-8212(%rbp), %eax
- 9917      FFFF
- 9918 88e7 8985E8DF 		movl	%eax, -8216(%rbp)
- 9918      FFFF
- 9919 88ed 8B85E8DF 		movl	-8216(%rbp), %eax
- 9919      FFFF
- 9920 88f3 8985E4DF 		movl	%eax, -8220(%rbp)
- 9920      FFFF
- 9921 88f9 8B85E4DF 		movl	-8220(%rbp), %eax
- 9921      FFFF
- 9922 88ff 8985E0DF 		movl	%eax, -8224(%rbp)
- 9922      FFFF
-1636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 9923              		.loc 2 1636 0
- 9924 8905 F30F6F85 		movdqu	-8224(%rbp), %xmm0
- 9924      E0DFFFFF 
- 9925              	.LBE2413:
- 9926              	.LBE2412:
- 9927              		.loc 2 1869 0
- 9928 890d 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 9928      00DDFFFF 
- 9929 8915 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 9929      B0DCFFFF 
- 9930 891d F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 9930      30F9FFFF 
- 9931              	.LBB2418:
- 9932              	.LBB2419:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 9933              		.loc 2 1565 0
- 9934 8925 F30F6F95 		movdqu	-1744(%rbp), %xmm2
- 9934      30F9FFFF 
- 9935 892d 660F7F95 		movdqa	%xmm2, -8624(%rbp)
- 9935      50DEFFFF 
- 9936 8935 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 9936      50DEFFFF 
- 9937 893d F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 9937      40F9FFFF 
- 9938              	.LBB2420:
- 9939              	.LBB2421:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9940              		.loc 2 1278 0
- 9941 8945 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9941      00000000 
- 9942 894d F30F6F8D 		movdqu	-1728(%rbp), %xmm1
- 9942      40F9FFFF 
- 9943 8955 F30F7F8D 		movdqu	%xmm1, -1696(%rbp)
- 9943      60F9FFFF 
- 9944 895d F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 9944      50F9FFFF 
- 9945 8965 F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 9945      60F9FFFF 
- 9946 896d F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 9946      80F9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 315
-
-
- 9947 8975 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 9947      50F9FFFF 
- 9948 897d F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 9948      70F9FFFF 
- 9949              	.LBB2422:
- 9950              	.LBB2423:
- 9951              	.LBB2424:
- 9952              	.LBB2425:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9953              		.loc 3 529 0
- 9954 8985 F30F6F8D 		movdqu	-1680(%rbp), %xmm1
- 9954      70F9FFFF 
- 9955 898d F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 9955      80F9FFFF 
- 9956 8995 660F3800 		pshufb	%xmm1, %xmm0
- 9956      C1
- 9957              	.LBE2425:
- 9958              	.LBE2424:
- 9959              	.LBE2423:
- 9960              	.LBE2422:
- 9961              	.LBE2421:
- 9962              	.LBE2420:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9963              		.loc 2 1567 0
- 9964 899a 660F7F85 		movdqa	%xmm0, -8624(%rbp)
- 9964      50DEFFFF 
- 9965 89a2 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 9965      50DEFFFF 
- 9966 89aa 660FEF85 		pxor	-1744(%rbp), %xmm0
- 9966      30F9FFFF 
- 9967 89b2 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 9967      30F9FFFF 
- 9968 89ba 660F6F95 		movdqa	-8624(%rbp), %xmm2
- 9968      50DEFFFF 
- 9969 89c2 F30F7F95 		movdqu	%xmm2, -1648(%rbp)
- 9969      90F9FFFF 
- 9970              	.LBB2426:
- 9971              	.LBB2427:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 9972              		.loc 2 1278 0
- 9973 89ca 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 9973      00000000 
- 9974 89d2 F30F6F8D 		movdqu	-1648(%rbp), %xmm1
- 9974      90F9FFFF 
- 9975 89da F30F7F8D 		movdqu	%xmm1, -1616(%rbp)
- 9975      B0F9FFFF 
- 9976 89e2 F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 9976      A0F9FFFF 
- 9977 89ea F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 9977      B0F9FFFF 
- 9978 89f2 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 9978      D0F9FFFF 
- 9979 89fa F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 9979      A0F9FFFF 
- 9980 8a02 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 9980      C0F9FFFF 
- 9981              	.LBB2428:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 316
-
-
- 9982              	.LBB2429:
- 9983              	.LBB2430:
- 9984              	.LBB2431:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 9985              		.loc 3 529 0
- 9986 8a0a F30F6F8D 		movdqu	-1600(%rbp), %xmm1
- 9986      C0F9FFFF 
- 9987 8a12 F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 9987      D0F9FFFF 
- 9988 8a1a 660F3800 		pshufb	%xmm1, %xmm0
- 9988      C1
- 9989              	.LBE2431:
- 9990              	.LBE2430:
- 9991              	.LBE2429:
- 9992              	.LBE2428:
- 9993              	.LBE2427:
- 9994              	.LBE2426:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 9995              		.loc 2 1568 0
- 9996 8a1f 660F7F85 		movdqa	%xmm0, -8624(%rbp)
- 9996      50DEFFFF 
- 9997 8a27 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 9997      50DEFFFF 
- 9998 8a2f 660FEF85 		pxor	-1744(%rbp), %xmm0
- 9998      30F9FFFF 
- 9999 8a37 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 9999      30F9FFFF 
- 10000 8a3f 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 10000      50DEFFFF 
- 10001 8a47 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 10001      E0F9FFFF 
- 10002              	.LBB2432:
- 10003              	.LBB2433:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 10004              		.loc 2 1278 0
- 10005 8a4f 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 10005      00000000 
- 10006 8a57 F30F6F8D 		movdqu	-1568(%rbp), %xmm1
- 10006      E0F9FFFF 
- 10007 8a5f F30F7F8D 		movdqu	%xmm1, -1536(%rbp)
- 10007      00FAFFFF 
- 10008 8a67 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 10008      F0F9FFFF 
- 10009 8a6f F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 10009      00FAFFFF 
- 10010 8a77 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 10010      20FAFFFF 
- 10011 8a7f F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 10011      F0F9FFFF 
- 10012 8a87 F30F7F85 		movdqu	%xmm0, -1520(%rbp)
- 10012      10FAFFFF 
- 10013              	.LBB2434:
- 10014              	.LBB2435:
- 10015              	.LBB2436:
- 10016              	.LBB2437:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10017              		.loc 3 529 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 317
-
-
- 10018 8a8f F30F6F8D 		movdqu	-1520(%rbp), %xmm1
- 10018      10FAFFFF 
- 10019 8a97 F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 10019      20FAFFFF 
- 10020 8a9f 660F3800 		pshufb	%xmm1, %xmm0
- 10020      C1
- 10021              	.LBE2437:
- 10022              	.LBE2436:
- 10023              	.LBE2435:
- 10024              	.LBE2434:
- 10025              	.LBE2433:
- 10026              	.LBE2432:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10027              		.loc 2 1569 0
- 10028 8aa4 660F7F85 		movdqa	%xmm0, -8624(%rbp)
- 10028      50DEFFFF 
- 10029 8aac 660F6F85 		movdqa	-8624(%rbp), %xmm0
- 10029      50DEFFFF 
- 10030 8ab4 660FEF85 		pxor	-1744(%rbp), %xmm0
- 10030      30F9FFFF 
- 10031 8abc F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 10031      30F9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10032              		.loc 2 1571 0
- 10033 8ac4 F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 10033      30F9FFFF 
- 10034              	.LBE2419:
- 10035              	.LBE2418:
-1870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         (k = v1,0x40);                             /* F(k41): F(k41): F(k41) : F(k41)       */
-1871:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3  = AESBCMEMBER(ShiftXorColumns) (v0);       /* k36   :k36^k37:k36^k37^k38:k36^k37^k38^k39 */
- 10036              		.loc 2 1871 0
- 10037 8acc 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 10037      E0DCFFFF 
- 10038 8ad4 660F6F95 		movdqa	-9024(%rbp), %xmm2
- 10038      C0DCFFFF 
- 10039 8adc F30F7F95 		movdqu	%xmm2, -1488(%rbp)
- 10039      30FAFFFF 
- 10040              	.LBB2438:
- 10041              	.LBB2439:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 10042              		.loc 2 1565 0
- 10043 8ae4 F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 10043      30FAFFFF 
- 10044 8aec 660F7F85 		movdqa	%xmm0, -8608(%rbp)
- 10044      60DEFFFF 
- 10045 8af4 660F6F95 		movdqa	-8608(%rbp), %xmm2
- 10045      60DEFFFF 
- 10046 8afc F30F7F95 		movdqu	%xmm2, -1472(%rbp)
- 10046      40FAFFFF 
- 10047              	.LBB2440:
- 10048              	.LBB2441:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 10049              		.loc 2 1278 0
- 10050 8b04 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 10050      00000000 
- 10051 8b0c F30F6F8D 		movdqu	-1472(%rbp), %xmm1
- 10051      40FAFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 318
-
-
- 10052 8b14 F30F7F8D 		movdqu	%xmm1, -1440(%rbp)
- 10052      60FAFFFF 
- 10053 8b1c F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 10053      50FAFFFF 
- 10054 8b24 F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 10054      60FAFFFF 
- 10055 8b2c F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 10055      80FAFFFF 
- 10056 8b34 F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 10056      50FAFFFF 
- 10057 8b3c F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 10057      70FAFFFF 
- 10058              	.LBB2442:
- 10059              	.LBB2443:
- 10060              	.LBB2444:
- 10061              	.LBB2445:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10062              		.loc 3 529 0
- 10063 8b44 F30F6F8D 		movdqu	-1424(%rbp), %xmm1
- 10063      70FAFFFF 
- 10064 8b4c F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 10064      80FAFFFF 
- 10065 8b54 660F3800 		pshufb	%xmm1, %xmm0
- 10065      C1
- 10066              	.LBE2445:
- 10067              	.LBE2444:
- 10068              	.LBE2443:
- 10069              	.LBE2442:
- 10070              	.LBE2441:
- 10071              	.LBE2440:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10072              		.loc 2 1567 0
- 10073 8b59 660F7F85 		movdqa	%xmm0, -8608(%rbp)
- 10073      60DEFFFF 
- 10074 8b61 660F6F85 		movdqa	-8608(%rbp), %xmm0
- 10074      60DEFFFF 
- 10075 8b69 660FEF85 		pxor	-1488(%rbp), %xmm0
- 10075      30FAFFFF 
- 10076 8b71 F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 10076      30FAFFFF 
- 10077 8b79 660F6F85 		movdqa	-8608(%rbp), %xmm0
- 10077      60DEFFFF 
- 10078 8b81 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 10078      90FAFFFF 
- 10079              	.LBB2446:
- 10080              	.LBB2447:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 10081              		.loc 2 1278 0
- 10082 8b89 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 10082      00000000 
- 10083 8b91 F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 10083      90FAFFFF 
- 10084 8b99 F30F7F8D 		movdqu	%xmm1, -1360(%rbp)
- 10084      B0FAFFFF 
- 10085 8ba1 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 10085      A0FAFFFF 
- 10086 8ba9 F30F6F85 		movdqu	-1360(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 319
-
-
- 10086      B0FAFFFF 
- 10087 8bb1 F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 10087      D0FAFFFF 
- 10088 8bb9 F30F6F85 		movdqu	-1376(%rbp), %xmm0
- 10088      A0FAFFFF 
- 10089 8bc1 F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 10089      C0FAFFFF 
- 10090              	.LBB2448:
- 10091              	.LBB2449:
- 10092              	.LBB2450:
- 10093              	.LBB2451:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10094              		.loc 3 529 0
- 10095 8bc9 F30F6F8D 		movdqu	-1344(%rbp), %xmm1
- 10095      C0FAFFFF 
- 10096 8bd1 F30F6F85 		movdqu	-1328(%rbp), %xmm0
- 10096      D0FAFFFF 
- 10097 8bd9 660F3800 		pshufb	%xmm1, %xmm0
- 10097      C1
- 10098              	.LBE2451:
- 10099              	.LBE2450:
- 10100              	.LBE2449:
- 10101              	.LBE2448:
- 10102              	.LBE2447:
- 10103              	.LBE2446:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10104              		.loc 2 1568 0
- 10105 8bde 660F7F85 		movdqa	%xmm0, -8608(%rbp)
- 10105      60DEFFFF 
- 10106 8be6 660F6F85 		movdqa	-8608(%rbp), %xmm0
- 10106      60DEFFFF 
- 10107 8bee 660FEF85 		pxor	-1488(%rbp), %xmm0
- 10107      30FAFFFF 
- 10108 8bf6 F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 10108      30FAFFFF 
- 10109 8bfe 660F6F95 		movdqa	-8608(%rbp), %xmm2
- 10109      60DEFFFF 
- 10110 8c06 F30F7F95 		movdqu	%xmm2, -1312(%rbp)
- 10110      E0FAFFFF 
- 10111              	.LBB2452:
- 10112              	.LBB2453:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 10113              		.loc 2 1278 0
- 10114 8c0e 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 10114      00000000 
- 10115 8c16 F30F6F8D 		movdqu	-1312(%rbp), %xmm1
- 10115      E0FAFFFF 
- 10116 8c1e F30F7F8D 		movdqu	%xmm1, -1280(%rbp)
- 10116      00FBFFFF 
- 10117 8c26 F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 10117      F0FAFFFF 
- 10118 8c2e F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 10118      00FBFFFF 
- 10119 8c36 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 10119      20FBFFFF 
- 10120 8c3e F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 10120      F0FAFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 320
-
-
- 10121 8c46 F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 10121      10FBFFFF 
- 10122              	.LBB2454:
- 10123              	.LBB2455:
- 10124              	.LBB2456:
- 10125              	.LBB2457:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10126              		.loc 3 529 0
- 10127 8c4e F30F6F8D 		movdqu	-1264(%rbp), %xmm1
- 10127      10FBFFFF 
- 10128 8c56 F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 10128      20FBFFFF 
- 10129 8c5e 660F3800 		pshufb	%xmm1, %xmm0
- 10129      C1
- 10130              	.LBE2457:
- 10131              	.LBE2456:
- 10132              	.LBE2455:
- 10133              	.LBE2454:
- 10134              	.LBE2453:
- 10135              	.LBE2452:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10136              		.loc 2 1569 0
- 10137 8c63 660F7F85 		movdqa	%xmm0, -8608(%rbp)
- 10137      60DEFFFF 
- 10138 8c6b 660F6F85 		movdqa	-8608(%rbp), %xmm0
- 10138      60DEFFFF 
- 10139 8c73 660FEF85 		pxor	-1488(%rbp), %xmm0
- 10139      30FAFFFF 
- 10140 8c7b F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 10140      30FAFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10141              		.loc 2 1571 0
- 10142 8c83 F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 10142      30FAFFFF 
- 10143              	.LBE2439:
- 10144              	.LBE2438:
-1872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4  = AESBCMEMBER(ShiftXorColumns) (v1);       /* k40   :k40^k41: x   5  : x            */
- 10145              		.loc 2 1872 0
- 10146 8c8b 660F7F85 		movdqa	%xmm0, -8976(%rbp)
- 10146      F0DCFFFF 
-1873:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v3 ^= k;                                       /* k42   : k43   : k44    : k45          */
- 10147              		.loc 2 1873 0
- 10148 8c93 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 10148      E0DCFFFF 
- 10149 8c9b 660FEF85 		pxor	-8960(%rbp), %xmm0
- 10149      00DDFFFF 
- 10150 8ca3 660F7F85 		movdqa	%xmm0, -8992(%rbp)
- 10150      E0DCFFFF 
-1874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(StateDupColumn3) (k = v3);   /* k45   : k45   : k45    : k45          */
- 10151              		.loc 2 1874 0
- 10152 8cab 660F6F95 		movdqa	-8992(%rbp), %xmm2
- 10152      E0DCFFFF 
- 10153 8cb3 660F7F95 		movdqa	%xmm2, -8960(%rbp)
- 10153      00DDFFFF 
- 10154 8cbb 660F6F85 		movdqa	-8960(%rbp), %xmm0
- 10154      00DDFFFF 
- 10155 8cc3 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 321
-
-
- 10155      30FBFFFF 
- 10156 8ccb F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 10156      30FBFFFF 
- 10157 8cd3 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 10157      50FBFFFF 
- 10158              	.LBB2458:
- 10159              	.LBB2459:
- 10160              	.LBB2460:
- 10161              	.LBB2461:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 10162              		.loc 3 450 0
- 10163 8cdb F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 10163      50FBFFFF 
- 10164 8ce3 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 10164      FF
- 10165              	.LBE2461:
- 10166              	.LBE2460:
- 10167              	.LBE2459:
- 10168              	.LBE2458:
- 10169              		.loc 2 1874 0
- 10170 8ce8 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 10170      00DDFFFF 
-1875:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v4 ^= k;                                       /* k46   : k47   : x      : x            */
- 10171              		.loc 2 1875 0
- 10172 8cf0 660F6F95 		movdqa	-8976(%rbp), %xmm2
- 10172      F0DCFFFF 
- 10173 8cf8 660FEF95 		pxor	-8960(%rbp), %xmm2
- 10173      00DDFFFF 
- 10174 8d00 660F7F95 		movdqa	%xmm2, -8976(%rbp)
- 10174      F0DCFFFF 
- 10175 8d08 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 10175      C0DCFFFF 
- 10176 8d10 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 10176      70FBFFFF 
- 10177 8d18 660F6F95 		movdqa	-8992(%rbp), %xmm2
- 10177      E0DCFFFF 
- 10178 8d20 F30F7F95 		movdqu	%xmm2, -1184(%rbp)
- 10178      60FBFFFF 
- 10179 8d28 F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 10179      70FBFFFF 
- 10180 8d30 F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 10180      A0FBFFFF 
- 10181 8d38 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 10181      60FBFFFF 
- 10182 8d40 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 10182      90FBFFFF 
- 10183              	.LBB2462:
- 10184              	.LBB2463:
- 10185              	.LBB2464:
- 10186              	.LBB2465:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 10187              		.loc 3 366 0
- 10188 8d48 F20F1085 		movsd	-1136(%rbp), %xmm0
- 10188      90FBFFFF 
- 10189 8d50 660F1685 		movhpd	-1128(%rbp), %xmm0
- 10189      98FBFFFF 
- 10190 8d58 F20F108D 		movsd	-1120(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 322
-
-
- 10190      A0FBFFFF 
- 10191 8d60 660F168D 		movhpd	-1112(%rbp), %xmm1
- 10191      A8FBFFFF 
- 10192 8d68 660F28D1 		movapd	%xmm1, %xmm2
- 10193 8d6c 660F14D0 		unpcklpd	%xmm0, %xmm2
- 10194 8d70 660F28C2 		movapd	%xmm2, %xmm0
- 10195              	.LBE2465:
- 10196              	.LBE2464:
- 10197              	.LBE2463:
- 10198              	.LBE2462:
-1876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(StateMerge1) (v1,v3);        /* k40   : k41   : k42    : k43          */
- 10199              		.loc 2 1876 0
- 10200 8d74 660F7F85 		movdqa	%xmm0, -9024(%rbp)
- 10200      C0DCFFFF 
-1877:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[10] = v1; /* K40:K41:K42:K43 */
- 10201              		.loc 2 1877 0
- 10202 8d7c 488B85A8 		movq	-8536(%rbp), %rax
- 10202      DEFFFF
- 10203 8d83 4805A000 		addq	$160, %rax
- 10203      0000
- 10204 8d89 660F6F85 		movdqa	-9024(%rbp), %xmm0
- 10204      C0DCFFFF 
- 10205 8d91 660F7F00 		movdqa	%xmm0, (%rax)
- 10206 8d95 660F6F95 		movdqa	-8992(%rbp), %xmm2
- 10206      E0DCFFFF 
- 10207 8d9d F30F7F95 		movdqu	%xmm2, -1088(%rbp)
- 10207      C0FBFFFF 
- 10208 8da5 660F6F85 		movdqa	-8976(%rbp), %xmm0
- 10208      F0DCFFFF 
- 10209 8dad F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 10209      B0FBFFFF 
- 10210 8db5 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 10210      C0FBFFFF 
- 10211 8dbd F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 10211      F0FBFFFF 
- 10212 8dc5 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 10212      B0FBFFFF 
- 10213 8dcd F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 10213      E0FBFFFF 
- 10214              	.LBB2466:
- 10215              	.LBB2467:
- 10216              	.LBB2468:
- 10217              	.LBB2469:
- 366:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return ( v128_u8_t ) __builtin_ia32_shufpd ((v128_d_t)vin1, (v128_d_t)vin2, mask);
- 10218              		.loc 3 366 0
- 10219 8dd5 F20F108D 		movsd	-1056(%rbp), %xmm1
- 10219      E0FBFFFF 
- 10220 8ddd 660F168D 		movhpd	-1048(%rbp), %xmm1
- 10220      E8FBFFFF 
- 10221 8de5 F20F1085 		movsd	-1040(%rbp), %xmm0
- 10221      F0FBFFFF 
- 10222 8ded 660F1685 		movhpd	-1032(%rbp), %xmm0
- 10222      F8FBFFFF 
- 10223 8df5 660FC6C1 		shufpd	$1, %xmm1, %xmm0
- 10223      01
- 10224              	.LBE2469:
- 10225              	.LBE2468:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 323
-
-
- 10226              	.LBE2467:
- 10227              	.LBE2466:
-1878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v2  = AESBCMEMBER(StateMerge2) (v3,v4);        /* k44   : k45   : k46    : k47          */
- 10228              		.loc 2 1878 0
- 10229 8dfa 660F7F85 		movdqa	%xmm0, -9008(%rbp)
- 10229      D0DCFFFF 
-1879:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[11] = v2; /* K44:K45:K46:K47 */
- 10230              		.loc 2 1879 0
- 10231 8e02 488B85A8 		movq	-8536(%rbp), %rax
- 10231      DEFFFF
- 10232 8e09 4805B000 		addq	$176, %rax
- 10232      0000
- 10233 8e0f 660F6F95 		movdqa	-9008(%rbp), %xmm2
- 10233      D0DCFFFF 
- 10234 8e17 660F7F10 		movdqa	%xmm2, (%rax)
- 10235 8e1b 660F6F85 		movdqa	-8992(%rbp), %xmm0
- 10235      E0DCFFFF 
- 10236 8e23 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 10236      00FCFFFF 
- 10237              	.LBB2470:
- 10238              	.LBB2471:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 10239              		.loc 2 1565 0
- 10240 8e2b F30F6F95 		movdqu	-1024(%rbp), %xmm2
- 10240      00FCFFFF 
- 10241 8e33 660F7F95 		movdqa	%xmm2, -8592(%rbp)
- 10241      70DEFFFF 
- 10242 8e3b 660F6F85 		movdqa	-8592(%rbp), %xmm0
- 10242      70DEFFFF 
- 10243 8e43 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 10243      10FCFFFF 
- 10244              	.LBB2472:
- 10245              	.LBB2473:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 10246              		.loc 2 1278 0
- 10247 8e4b 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 10247      00000000 
- 10248 8e53 F30F6F8D 		movdqu	-1008(%rbp), %xmm1
- 10248      10FCFFFF 
- 10249 8e5b F30F7F8D 		movdqu	%xmm1, -976(%rbp)
- 10249      30FCFFFF 
- 10250 8e63 F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 10250      20FCFFFF 
- 10251 8e6b F30F6F85 		movdqu	-976(%rbp), %xmm0
- 10251      30FCFFFF 
- 10252 8e73 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 10252      50FCFFFF 
- 10253 8e7b F30F6F85 		movdqu	-992(%rbp), %xmm0
- 10253      20FCFFFF 
- 10254 8e83 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 10254      40FCFFFF 
- 10255              	.LBB2474:
- 10256              	.LBB2475:
- 10257              	.LBB2476:
- 10258              	.LBB2477:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10259              		.loc 3 529 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 324
-
-
- 10260 8e8b F30F6F8D 		movdqu	-960(%rbp), %xmm1
- 10260      40FCFFFF 
- 10261 8e93 F30F6F85 		movdqu	-944(%rbp), %xmm0
- 10261      50FCFFFF 
- 10262 8e9b 660F3800 		pshufb	%xmm1, %xmm0
- 10262      C1
- 10263              	.LBE2477:
- 10264              	.LBE2476:
- 10265              	.LBE2475:
- 10266              	.LBE2474:
- 10267              	.LBE2473:
- 10268              	.LBE2472:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10269              		.loc 2 1567 0
- 10270 8ea0 660F7F85 		movdqa	%xmm0, -8592(%rbp)
- 10270      70DEFFFF 
- 10271 8ea8 660F6F85 		movdqa	-8592(%rbp), %xmm0
- 10271      70DEFFFF 
- 10272 8eb0 660FEF85 		pxor	-1024(%rbp), %xmm0
- 10272      00FCFFFF 
- 10273 8eb8 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 10273      00FCFFFF 
- 10274 8ec0 660F6F95 		movdqa	-8592(%rbp), %xmm2
- 10274      70DEFFFF 
- 10275 8ec8 F30F7F95 		movdqu	%xmm2, -928(%rbp)
- 10275      60FCFFFF 
- 10276              	.LBB2478:
- 10277              	.LBB2479:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 10278              		.loc 2 1278 0
- 10279 8ed0 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 10279      00000000 
- 10280 8ed8 F30F6F8D 		movdqu	-928(%rbp), %xmm1
- 10280      60FCFFFF 
- 10281 8ee0 F30F7F8D 		movdqu	%xmm1, -896(%rbp)
- 10281      80FCFFFF 
- 10282 8ee8 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 10282      70FCFFFF 
- 10283 8ef0 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 10283      80FCFFFF 
- 10284 8ef8 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 10284      A0FCFFFF 
- 10285 8f00 F30F6F85 		movdqu	-912(%rbp), %xmm0
- 10285      70FCFFFF 
- 10286 8f08 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 10286      90FCFFFF 
- 10287              	.LBB2480:
- 10288              	.LBB2481:
- 10289              	.LBB2482:
- 10290              	.LBB2483:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10291              		.loc 3 529 0
- 10292 8f10 F30F6F8D 		movdqu	-880(%rbp), %xmm1
- 10292      90FCFFFF 
- 10293 8f18 F30F6F85 		movdqu	-864(%rbp), %xmm0
- 10293      A0FCFFFF 
- 10294 8f20 660F3800 		pshufb	%xmm1, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 325
-
-
- 10294      C1
- 10295              	.LBE2483:
- 10296              	.LBE2482:
- 10297              	.LBE2481:
- 10298              	.LBE2480:
- 10299              	.LBE2479:
- 10300              	.LBE2478:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10301              		.loc 2 1568 0
- 10302 8f25 660F7F85 		movdqa	%xmm0, -8592(%rbp)
- 10302      70DEFFFF 
- 10303 8f2d 660F6F85 		movdqa	-8592(%rbp), %xmm0
- 10303      70DEFFFF 
- 10304 8f35 660FEF85 		pxor	-1024(%rbp), %xmm0
- 10304      00FCFFFF 
- 10305 8f3d F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 10305      00FCFFFF 
- 10306 8f45 660F6F85 		movdqa	-8592(%rbp), %xmm0
- 10306      70DEFFFF 
- 10307 8f4d F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 10307      B0FCFFFF 
- 10308              	.LBB2484:
- 10309              	.LBB2485:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 10310              		.loc 2 1278 0
- 10311 8f55 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 10311      00000000 
- 10312 8f5d F30F6F8D 		movdqu	-848(%rbp), %xmm1
- 10312      B0FCFFFF 
- 10313 8f65 F30F7F8D 		movdqu	%xmm1, -816(%rbp)
- 10313      D0FCFFFF 
- 10314 8f6d F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 10314      C0FCFFFF 
- 10315 8f75 F30F6F85 		movdqu	-816(%rbp), %xmm0
- 10315      D0FCFFFF 
- 10316 8f7d F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 10316      F0FCFFFF 
- 10317 8f85 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 10317      C0FCFFFF 
- 10318 8f8d F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 10318      E0FCFFFF 
- 10319              	.LBB2486:
- 10320              	.LBB2487:
- 10321              	.LBB2488:
- 10322              	.LBB2489:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10323              		.loc 3 529 0
- 10324 8f95 F30F6F8D 		movdqu	-800(%rbp), %xmm1
- 10324      E0FCFFFF 
- 10325 8f9d F30F6F85 		movdqu	-784(%rbp), %xmm0
- 10325      F0FCFFFF 
- 10326 8fa5 660F3800 		pshufb	%xmm1, %xmm0
- 10326      C1
- 10327              	.LBE2489:
- 10328              	.LBE2488:
- 10329              	.LBE2487:
- 10330              	.LBE2486:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 326
-
-
- 10331              	.LBE2485:
- 10332              	.LBE2484:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 10333              		.loc 2 1569 0
- 10334 8faa 660F7F85 		movdqa	%xmm0, -8592(%rbp)
- 10334      70DEFFFF 
- 10335 8fb2 660F6F85 		movdqa	-8592(%rbp), %xmm0
- 10335      70DEFFFF 
- 10336 8fba 660FEF85 		pxor	-1024(%rbp), %xmm0
- 10336      00FCFFFF 
- 10337 8fc2 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 10337      00FCFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10338              		.loc 2 1571 0
- 10339 8fca F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 10339      00FCFFFF 
- 10340              	.LBE2471:
- 10341              	.LBE2470:
-1880:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1881:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* pattern 3 */
-1882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v3);       /* k42   :k42^k43:k42^k43^k44:k42^k43^k44^k45  *
- 10342              		.loc 2 1882 0
- 10343 8fd2 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 10343      B0DCFFFF 
- 10344 8fda 660F6F95 		movdqa	-9008(%rbp), %xmm2
- 10344      D0DCFFFF 
- 10345 8fe2 F30F7F95 		movdqu	%xmm2, -752(%rbp)
- 10345      10FDFFFF 
- 10346              	.LBB2490:
- 10347              	.LBB2491:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 10348              		.loc 2 1681 0
- 10349 8fea B8800000 		movl	$128, %eax
- 10349      00
- 10350 8fef 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 10350      00000000 
- 10351 8ff7 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 10351      30FDFFFF 
- 10352 8fff 89852CFD 		movl	%eax, -724(%rbp)
- 10352      FFFF
- 10353 9005 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 10353      30FDFFFF 
- 10354 900d F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 10354      50FDFFFF 
- 10355 9015 8B852CFD 		movl	-724(%rbp), %eax
- 10355      FFFF
- 10356 901b 89854CFD 		movl	%eax, -692(%rbp)
- 10356      FFFF
- 10357              	.LBB2492:
- 10358              	.LBB2493:
- 10359              	.LBB2494:
- 10360              	.LBB2495:
- 10361              		.loc 3 598 0
- 10362 9021 8B854CFD 		movl	-692(%rbp), %eax
- 10362      FFFF
- 10363 9027 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 10363      50FDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 327
-
-
- 10364 902f 660F3A22 		pinsrd	$3, %eax, %xmm0
- 10364      C003
- 10365              	.LBE2495:
- 10366              	.LBE2494:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 10367              		.loc 2 519 0
- 10368 9035 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 10368      30FDFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10369              		.loc 2 526 0
- 10370 903d F30F6F85 		movdqu	-720(%rbp), %xmm0
- 10370      30FDFFFF 
- 10371              	.LBE2493:
- 10372              	.LBE2492:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 10373              		.loc 2 1681 0
- 10374 9045 660F7F85 		movdqa	%xmm0, -8560(%rbp)
- 10374      90DEFFFF 
- 10375 904d F30F6F85 		movdqu	-752(%rbp), %xmm0
- 10375      10FDFFFF 
- 10376 9055 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 10376      60FDFFFF 
- 10377 905d F30F6F85 		movdqu	-672(%rbp), %xmm0
- 10377      60FDFFFF 
- 10378 9065 F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 10378      80FDFFFF 
- 10379 906d 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 10379      000000
- 10380 9074 48898578 		movq	%rax, -648(%rbp)
- 10380      FDFFFF
- 10381              	.LBB2496:
- 10382              	.LBB2497:
- 10383              	.LBB2498:
- 10384              	.LBB2499:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 10385              		.loc 2 851 0
- 10386 907b 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 10386      00000000 
- 10387 9083 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 10387      A0FDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 10388              		.loc 2 854 0
- 10389 908b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 10389      00000000 
- 10390 9093 F30F6F8D 		movdqu	-640(%rbp), %xmm1
- 10390      80FDFFFF 
- 10391 909b F30F7F8D 		movdqu	%xmm1, -528(%rbp)
- 10391      F0FDFFFF 
- 10392 90a3 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 10392      E0FDFFFF 
- 10393              	.LBB2500:
- 10394              	.LBB2501:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 10395              		.loc 2 206 0
- 10396 90ab F30F6F85 		movdqu	-544(%rbp), %xmm0
- 10396      E0FDFFFF 
- 10397 90b3 F30F6F8D 		movdqu	-528(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 328
-
-
- 10397      F0FDFFFF 
- 10398 90bb 660FDBC1 		pand	%xmm1, %xmm0
- 10399              	.LBE2501:
- 10400              	.LBE2500:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 10401              		.loc 2 854 0
- 10402 90bf F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 10402      D0FDFFFF 
- 10403 90c7 F30F6F85 		movdqu	-640(%rbp), %xmm0
- 10403      80FDFFFF 
- 10404 90cf F30F7F85 		movdqu	%xmm0, -496(%rbp)
- 10404      10FEFFFF 
- 10405              	.LBB2502:
- 10406              	.LBB2503:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 10407              		.loc 3 433 0
- 10408 90d7 F30F6F85 		movdqu	-496(%rbp), %xmm0
- 10408      10FEFFFF 
- 10409 90df 660F72D0 		psrld	$4, %xmm0
- 10409      04
- 10410              	.LBE2503:
- 10411              	.LBE2502:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 10412              		.loc 2 857 0
- 10413 90e4 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 10413      C0FDFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 10414              		.loc 2 859 0
- 10415 90ec 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 10415      00000000 
- 10416 90f4 F30F6F8D 		movdqu	-576(%rbp), %xmm1
- 10416      C0FDFFFF 
- 10417 90fc F30F7F8D 		movdqu	%xmm1, -464(%rbp)
- 10417      30FEFFFF 
- 10418 9104 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 10418      20FEFFFF 
- 10419              	.LBB2504:
- 10420              	.LBB2505:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 10421              		.loc 2 206 0
- 10422 910c F30F6F85 		movdqu	-480(%rbp), %xmm0
- 10422      20FEFFFF 
- 10423 9114 F30F6F8D 		movdqu	-464(%rbp), %xmm1
- 10423      30FEFFFF 
- 10424 911c 660FDBC1 		pand	%xmm1, %xmm0
- 10425              	.LBE2505:
- 10426              	.LBE2504:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 10427              		.loc 2 859 0
- 10428 9120 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 10428      C0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 10429              		.loc 2 866 0
- 10430 9128 C7859CFD 		movl	$0, -612(%rbp)
- 10430      FFFF0000 
- 10430      0000
- 10431 9132 E9BE0100 		jmp	.L144
-
GAS LISTING /tmp/ccjbMjHD.s 			page 329
-
-
- 10431      00
- 10432              	.L145:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 10433              		.loc 2 868 0
- 10434 9137 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 10434      00000000 
- 10435 913f F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 10435      50FEFFFF 
- 10436 9147 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 10436      C0FDFFFF 
- 10437 914f F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 10437      40FEFFFF 
- 10438 9157 F30F6F85 		movdqu	-432(%rbp), %xmm0
- 10438      50FEFFFF 
- 10439 915f F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 10439      70FEFFFF 
- 10440 9167 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 10440      40FEFFFF 
- 10441 916f F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 10441      60FEFFFF 
- 10442              	.LBB2506:
- 10443              	.LBB2507:
- 10444              	.LBB2508:
- 10445              	.LBB2509:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10446              		.loc 3 529 0
- 10447 9177 F30F6F8D 		movdqu	-416(%rbp), %xmm1
- 10447      60FEFFFF 
- 10448 917f F30F6F85 		movdqu	-400(%rbp), %xmm0
- 10448      70FEFFFF 
- 10449 9187 660F3800 		pshufb	%xmm1, %xmm0
- 10449      C1
- 10450              	.LBE2509:
- 10451              	.LBE2508:
- 10452              	.LBE2507:
- 10453              	.LBE2506:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 10454              		.loc 2 868 0
- 10455 918c F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 10455      B0FDFFFF 
- 10456 9194 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 10456      D0FDFFFF 
- 10457 919c F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 10457      90FEFFFF 
- 10458 91a4 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 10458      B0FDFFFF 
- 10459 91ac F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 10459      80FEFFFF 
- 10460              	.LBB2510:
- 10461              	.LBB2511:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 10462              		.loc 2 234 0
- 10463 91b4 F30F6F85 		movdqu	-384(%rbp), %xmm0
- 10463      80FEFFFF 
- 10464 91bc F30F6F8D 		movdqu	-368(%rbp), %xmm1
- 10464      90FEFFFF 
- 10465 91c4 660FEBC1 		por	%xmm1, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 330
-
-
- 10466              	.LBE2511:
- 10467              	.LBE2510:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 10468              		.loc 2 870 0
- 10469 91c8 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 10469      B0FDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 10470              		.loc 2 872 0
- 10471 91d0 8B859CFD 		mov	-612(%rbp), %eax
- 10471      FFFF
- 10472 91d6 48C1E004 		salq	$4, %rax
- 10473 91da 48038578 		addq	-648(%rbp), %rax
- 10473      FDFFFF
- 10474 91e1 660F6F00 		movdqa	(%rax), %xmm0
- 10475 91e5 F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 10475      B0FEFFFF 
- 10476 91ed F30F6F85 		movdqu	-592(%rbp), %xmm0
- 10476      B0FDFFFF 
- 10477 91f5 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 10477      A0FEFFFF 
- 10478 91fd F30F6F85 		movdqu	-336(%rbp), %xmm0
- 10478      B0FEFFFF 
- 10479 9205 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 10479      D0FEFFFF 
- 10480 920d F30F6F85 		movdqu	-352(%rbp), %xmm0
- 10480      A0FEFFFF 
- 10481 9215 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 10481      C0FEFFFF 
- 10482              	.LBB2512:
- 10483              	.LBB2513:
- 10484              	.LBB2514:
- 10485              	.LBB2515:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10486              		.loc 3 529 0
- 10487 921d F30F6F8D 		movdqu	-320(%rbp), %xmm1
- 10487      C0FEFFFF 
- 10488 9225 F30F6F85 		movdqu	-304(%rbp), %xmm0
- 10488      D0FEFFFF 
- 10489 922d 660F3800 		pshufb	%xmm1, %xmm0
- 10489      C1
- 10490              	.LBE2515:
- 10491              	.LBE2514:
- 10492              	.LBE2513:
- 10493              	.LBE2512:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 10494              		.loc 2 872 0
- 10495 9232 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 10495      B0FDFFFF 
- 10496 923a F30F6F85 		movdqu	-608(%rbp), %xmm0
- 10496      A0FDFFFF 
- 10497 9242 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 10497      F0FEFFFF 
- 10498 924a F30F6F85 		movdqu	-592(%rbp), %xmm0
- 10498      B0FDFFFF 
- 10499 9252 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 10499      E0FEFFFF 
- 10500              	.LBB2516:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 331
-
-
- 10501              	.LBB2517:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 10502              		.loc 2 234 0
- 10503 925a F30F6F85 		movdqu	-288(%rbp), %xmm0
- 10503      E0FEFFFF 
- 10504 9262 F30F6F8D 		movdqu	-272(%rbp), %xmm1
- 10504      F0FEFFFF 
- 10505 926a 660FEBC1 		por	%xmm1, %xmm0
- 10506              	.LBE2517:
- 10507              	.LBE2516:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 10508              		.loc 2 874 0
- 10509 926e F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 10509      A0FDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 10510              		.loc 2 876 0
- 10511 9276 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 10511      00000000 
- 10512 927e F30F6F8D 		movdqu	-576(%rbp), %xmm1
- 10512      C0FDFFFF 
- 10513 9286 F30F7F8D 		movdqu	%xmm1, -240(%rbp)
- 10513      10FFFFFF 
- 10514 928e F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 10514      00FFFFFF 
- 10515              	.LBB2518:
- 10516              	.LBB2519:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 10517              		.loc 2 290 0
- 10518 9296 F30F6F8D 		movdqu	-256(%rbp), %xmm1
- 10518      00FFFFFF 
- 10519 929e F30F6F85 		movdqu	-240(%rbp), %xmm0
- 10519      10FFFFFF 
- 10520 92a6 660FF8C1 		psubb	%xmm1, %xmm0
- 10521              	.LBE2519:
- 10522              	.LBE2518:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 10523              		.loc 2 876 0
- 10524 92aa F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 10524      C0FDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 10525              		.loc 2 878 0
- 10526 92b2 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 10526      00000000 
- 10527 92ba F30F6F8D 		movdqu	-576(%rbp), %xmm1
- 10527      C0FDFFFF 
- 10528 92c2 F30F7F8D 		movdqu	%xmm1, -208(%rbp)
- 10528      30FFFFFF 
- 10529 92ca F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 10529      20FFFFFF 
- 10530              	.LBB2520:
- 10531              	.LBB2521:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 10532              		.loc 2 206 0
- 10533 92d2 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 10533      20FFFFFF 
- 10534 92da F30F6F8D 		movdqu	-208(%rbp), %xmm1
- 10534      30FFFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 332
-
-
- 10535 92e2 660FDBC1 		pand	%xmm1, %xmm0
- 10536              	.LBE2521:
- 10537              	.LBE2520:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 10538              		.loc 2 878 0
- 10539 92e6 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 10539      C0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 10540              		.loc 2 866 0
- 10541 92ee 83859CFD 		addl	$1, -612(%rbp)
- 10541      FFFF01
- 10542              	.L144:
- 10543 92f5 83BD9CFD 		cmpl	$15, -612(%rbp)
- 10543      FFFF0F
- 10544 92fc 0F8635FE 		jbe	.L145
- 10544      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 10545              		.loc 2 882 0
- 10546 9302 F30F6F85 		movdqu	-608(%rbp), %xmm0
- 10546      A0FDFFFF 
- 10547              	.LBE2499:
- 10548              	.LBE2498:
- 10549              	.LBE2497:
- 10550              	.LBE2496:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 10551              		.loc 2 1682 0
- 10552 930a 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 10552      80DEFFFF 
- 10553              	.LBB2522:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 10554              		.loc 2 1683 0
- 10555 9312 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 10555      80DEFFFF 
- 10556 931a F30F7F85 		movdqu	%xmm0, -8160(%rbp)
- 10556      20E0FFFF 
- 10557 9322 E8000000 		call	KDbgWriterGet at PLT
- 10557      00
- 10558 9327 4885C0   		testq	%rax, %rax
- 10559 932a 7479     		je	.L147
- 10560 932c BF010000 		movl	$1, %edi
- 10560      00
- 10561 9331 E8000000 		call	KDbgCondToFlag at PLT
- 10561      00
- 10562 9336 4889C6   		movq	%rax, %rsi
- 10563 9339 BF100000 		movl	$16, %edi
- 10563      00
- 10564 933e E8000000 		call	KDbgTestModConds at PLT
- 10564      00
- 10565 9343 84C0     		testb	%al, %al
- 10566 9345 745E     		je	.L147
- 10567 9347 8B852CE0 		movl	-8148(%rbp), %eax
- 10567      FFFF
- 10568 934d 89C7     		movl	%eax, %edi
- 10569 934f E8AC6CFF 		call	bswap_32
- 10569      FF
- 10570 9354 4189C5   		movl	%eax, %r13d
- 10571 9357 8B8528E0 		movl	-8152(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 333
-
-
- 10571      FFFF
- 10572 935d 89C7     		movl	%eax, %edi
- 10573 935f E89C6CFF 		call	bswap_32
- 10573      FF
- 10574 9364 4189C4   		movl	%eax, %r12d
- 10575 9367 8B8524E0 		movl	-8156(%rbp), %eax
- 10575      FFFF
- 10576 936d 89C7     		movl	%eax, %edi
- 10577 936f E88C6CFF 		call	bswap_32
- 10577      FF
- 10578 9374 89C3     		movl	%eax, %ebx
- 10579 9376 8B8520E0 		movl	-8160(%rbp), %eax
- 10579      FFFF
- 10580 937c 89C7     		movl	%eax, %edi
- 10581 937e E87D6CFF 		call	bswap_32
- 10581      FF
- 10582 9383 4589E9   		movl	%r13d, %r9d
- 10583 9386 4589E0   		movl	%r12d, %r8d
- 10584 9389 89D9     		movl	%ebx, %ecx
- 10585 938b 89C2     		movl	%eax, %edx
- 10586 938d 488D3500 		leaq	.LC0(%rip), %rsi
- 10586      000000
- 10587 9394 488D3D00 		leaq	.LC1(%rip), %rdi
- 10587      000000
- 10588 939b B8000000 		movl	$0, %eax
- 10588      00
- 10589 93a0 E8000000 		call	KDbgMsg at PLT
- 10589      00
- 10590              	.L147:
- 10591 93a5 660F6F95 		movdqa	-8576(%rbp), %xmm2
- 10591      80DEFFFF 
- 10592 93ad F30F7F95 		movdqu	%xmm2, -192(%rbp)
- 10592      40FFFFFF 
- 10593              	.LBE2522:
- 10594              	.LBB2523:
- 10595              	.LBB2524:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 10596              		.loc 2 667 0
- 10597 93b5 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 10597      00000000 
- 10598 93bd F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 10598      40FFFFFF 
- 10599 93c5 F30F7F8D 		movdqu	%xmm1, -160(%rbp)
- 10599      60FFFFFF 
- 10600 93cd F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 10600      50FFFFFF 
- 10601 93d5 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 10601      60FFFFFF 
- 10602 93dd F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 10602      80
- 10603 93e2 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 10603      50FFFFFF 
- 10604 93ea F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 10604      70FFFFFF 
- 10605              	.LBB2525:
- 10606              	.LBB2526:
- 10607              	.LBB2527:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 334
-
-
- 10608              	.LBB2528:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10609              		.loc 3 529 0
- 10610 93f2 F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 10610      70FFFFFF 
- 10611 93fa F30F6F45 		movdqu	-128(%rbp), %xmm0
- 10611      80
- 10612 93ff 660F3800 		pshufb	%xmm1, %xmm0
- 10612      C1
- 10613              	.LBE2528:
- 10614              	.LBE2527:
- 10615              	.LBE2526:
- 10616              	.LBE2525:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 10617              		.loc 2 667 0
- 10618 9404 F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 10618      40FFFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10619              		.loc 2 668 0
- 10620 940c F30F6F85 		movdqu	-192(%rbp), %xmm0
- 10620      40FFFFFF 
- 10621              	.LBE2524:
- 10622              	.LBE2523:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 10623              		.loc 2 1684 0
- 10624 9414 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 10624      80DEFFFF 
- 10625              	.LBB2529:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 10626              		.loc 2 1685 0
- 10627 941c 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 10627      80DEFFFF 
- 10628 9424 F30F7F85 		movdqu	%xmm0, -8176(%rbp)
- 10628      10E0FFFF 
- 10629 942c E8000000 		call	KDbgWriterGet at PLT
- 10629      00
- 10630 9431 4885C0   		testq	%rax, %rax
- 10631 9434 7479     		je	.L149
- 10632 9436 BF010000 		movl	$1, %edi
- 10632      00
- 10633 943b E8000000 		call	KDbgCondToFlag at PLT
- 10633      00
- 10634 9440 4889C6   		movq	%rax, %rsi
- 10635 9443 BF100000 		movl	$16, %edi
- 10635      00
- 10636 9448 E8000000 		call	KDbgTestModConds at PLT
- 10636      00
- 10637 944d 84C0     		testb	%al, %al
- 10638 944f 745E     		je	.L149
- 10639 9451 8B851CE0 		movl	-8164(%rbp), %eax
- 10639      FFFF
- 10640 9457 89C7     		movl	%eax, %edi
- 10641 9459 E8A26BFF 		call	bswap_32
- 10641      FF
- 10642 945e 4189C5   		movl	%eax, %r13d
- 10643 9461 8B8518E0 		movl	-8168(%rbp), %eax
- 10643      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 335
-
-
- 10644 9467 89C7     		movl	%eax, %edi
- 10645 9469 E8926BFF 		call	bswap_32
- 10645      FF
- 10646 946e 4189C4   		movl	%eax, %r12d
- 10647 9471 8B8514E0 		movl	-8172(%rbp), %eax
- 10647      FFFF
- 10648 9477 89C7     		movl	%eax, %edi
- 10649 9479 E8826BFF 		call	bswap_32
- 10649      FF
- 10650 947e 89C3     		movl	%eax, %ebx
- 10651 9480 8B8510E0 		movl	-8176(%rbp), %eax
- 10651      FFFF
- 10652 9486 89C7     		movl	%eax, %edi
- 10653 9488 E8736BFF 		call	bswap_32
- 10653      FF
- 10654 948d 4589E9   		movl	%r13d, %r9d
- 10655 9490 4589E0   		movl	%r12d, %r8d
- 10656 9493 89D9     		movl	%ebx, %ecx
- 10657 9495 89C2     		movl	%eax, %edx
- 10658 9497 488D3500 		leaq	.LC2(%rip), %rsi
- 10658      000000
- 10659 949e 488D3D00 		leaq	.LC1(%rip), %rdi
- 10659      000000
- 10660 94a5 B8000000 		movl	$0, %eax
- 10660      00
- 10661 94aa E8000000 		call	KDbgMsg at PLT
- 10661      00
- 10662              	.L149:
- 10663 94af 660F6F95 		movdqa	-8576(%rbp), %xmm2
- 10663      80DEFFFF 
- 10664 94b7 F30F7F55 		movdqu	%xmm2, -96(%rbp)
- 10664      A0
- 10665 94bc 660F6F85 		movdqa	-8560(%rbp), %xmm0
- 10665      90DEFFFF 
- 10666 94c4 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 10666      90
- 10667              	.LBE2529:
- 10668              	.LBB2530:
- 10669              	.LBB2531:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 10670              		.loc 2 178 0
- 10671 94c9 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 10671      90
- 10672 94ce F30F6F4D 		movdqu	-96(%rbp), %xmm1
- 10672      A0
- 10673 94d3 660FEFC1 		pxor	%xmm1, %xmm0
- 10674              	.LBE2531:
- 10675              	.LBE2530:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 10676              		.loc 2 1686 0
- 10677 94d7 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 10677      80DEFFFF 
- 10678              	.LBB2532:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 10679              		.loc 2 1687 0
- 10680 94df 660F6F95 		movdqa	-8576(%rbp), %xmm2
- 10680      80DEFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 336
-
-
- 10681 94e7 F30F7F95 		movdqu	%xmm2, -8192(%rbp)
- 10681      00E0FFFF 
- 10682 94ef E8000000 		call	KDbgWriterGet at PLT
- 10682      00
- 10683 94f4 4885C0   		testq	%rax, %rax
- 10684 94f7 7479     		je	.L151
- 10685 94f9 BF010000 		movl	$1, %edi
- 10685      00
- 10686 94fe E8000000 		call	KDbgCondToFlag at PLT
- 10686      00
- 10687 9503 4889C6   		movq	%rax, %rsi
- 10688 9506 BF100000 		movl	$16, %edi
- 10688      00
- 10689 950b E8000000 		call	KDbgTestModConds at PLT
- 10689      00
- 10690 9510 84C0     		testb	%al, %al
- 10691 9512 745E     		je	.L151
- 10692 9514 8B850CE0 		movl	-8180(%rbp), %eax
- 10692      FFFF
- 10693 951a 89C7     		movl	%eax, %edi
- 10694 951c E8DF6AFF 		call	bswap_32
- 10694      FF
- 10695 9521 4189C5   		movl	%eax, %r13d
- 10696 9524 8B8508E0 		movl	-8184(%rbp), %eax
- 10696      FFFF
- 10697 952a 89C7     		movl	%eax, %edi
- 10698 952c E8CF6AFF 		call	bswap_32
- 10698      FF
- 10699 9531 4189C4   		movl	%eax, %r12d
- 10700 9534 8B8504E0 		movl	-8188(%rbp), %eax
- 10700      FFFF
- 10701 953a 89C7     		movl	%eax, %edi
- 10702 953c E8BF6AFF 		call	bswap_32
- 10702      FF
- 10703 9541 89C3     		movl	%eax, %ebx
- 10704 9543 8B8500E0 		movl	-8192(%rbp), %eax
- 10704      FFFF
- 10705 9549 89C7     		movl	%eax, %edi
- 10706 954b E8B06AFF 		call	bswap_32
- 10706      FF
- 10707 9550 4589E9   		movl	%r13d, %r9d
- 10708 9553 4589E0   		movl	%r12d, %r8d
- 10709 9556 89D9     		movl	%ebx, %ecx
- 10710 9558 89C2     		movl	%eax, %edx
- 10711 955a 488D3500 		leaq	.LC3(%rip), %rsi
- 10711      000000
- 10712 9561 488D3D00 		leaq	.LC1(%rip), %rdi
- 10712      000000
- 10713 9568 B8000000 		movl	$0, %eax
- 10713      00
- 10714 956d E8000000 		call	KDbgMsg at PLT
- 10714      00
- 10715              	.L151:
- 10716 9572 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 10716      80DEFFFF 
- 10717 957a F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 10717      B0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 337
-
-
- 10718 957f F30F6F45 		movdqu	-80(%rbp), %xmm0
- 10718      B0
- 10719 9584 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 10719      D0
- 10720              	.LBE2532:
- 10721              	.LBB2533:
- 10722              	.LBB2534:
- 10723              	.LBB2535:
- 10724              	.LBB2536:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 10725              		.loc 3 450 0
- 10726 9589 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 10726      D0
- 10727 958e 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 10727      FF
- 10728              	.LBE2536:
- 10729              	.LBE2535:
- 10730              	.LBE2534:
- 10731              	.LBE2533:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 10732              		.loc 2 1688 0
- 10733 9593 660F7F85 		movdqa	%xmm0, -8576(%rbp)
- 10733      80DEFFFF 
- 10734              	.LBB2537:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 10735              		.loc 2 1689 0
- 10736 959b 660F6F95 		movdqa	-8576(%rbp), %xmm2
- 10736      80DEFFFF 
- 10737 95a3 F30F7F95 		movdqu	%xmm2, -8208(%rbp)
- 10737      F0DFFFFF 
- 10738 95ab E8000000 		call	KDbgWriterGet at PLT
- 10738      00
- 10739 95b0 4885C0   		testq	%rax, %rax
- 10740 95b3 7479     		je	.L153
- 10741 95b5 BF010000 		movl	$1, %edi
- 10741      00
- 10742 95ba E8000000 		call	KDbgCondToFlag at PLT
- 10742      00
- 10743 95bf 4889C6   		movq	%rax, %rsi
- 10744 95c2 BF100000 		movl	$16, %edi
- 10744      00
- 10745 95c7 E8000000 		call	KDbgTestModConds at PLT
- 10745      00
- 10746 95cc 84C0     		testb	%al, %al
- 10747 95ce 745E     		je	.L153
- 10748 95d0 8B85FCDF 		movl	-8196(%rbp), %eax
- 10748      FFFF
- 10749 95d6 89C7     		movl	%eax, %edi
- 10750 95d8 E8236AFF 		call	bswap_32
- 10750      FF
- 10751 95dd 4189C5   		movl	%eax, %r13d
- 10752 95e0 8B85F8DF 		movl	-8200(%rbp), %eax
- 10752      FFFF
- 10753 95e6 89C7     		movl	%eax, %edi
- 10754 95e8 E8136AFF 		call	bswap_32
- 10754      FF
- 10755 95ed 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 338
-
-
- 10756 95f0 8B85F4DF 		movl	-8204(%rbp), %eax
- 10756      FFFF
- 10757 95f6 89C7     		movl	%eax, %edi
- 10758 95f8 E8036AFF 		call	bswap_32
- 10758      FF
- 10759 95fd 89C3     		movl	%eax, %ebx
- 10760 95ff 8B85F0DF 		movl	-8208(%rbp), %eax
- 10760      FFFF
- 10761 9605 89C7     		movl	%eax, %edi
- 10762 9607 E8F469FF 		call	bswap_32
- 10762      FF
- 10763 960c 4589E9   		movl	%r13d, %r9d
- 10764 960f 4589E0   		movl	%r12d, %r8d
- 10765 9612 89D9     		movl	%ebx, %ecx
- 10766 9614 89C2     		movl	%eax, %edx
- 10767 9616 488D3500 		leaq	.LC4(%rip), %rsi
- 10767      000000
- 10768 961d 488D3D00 		leaq	.LC1(%rip), %rdi
- 10768      000000
- 10769 9624 B8000000 		movl	$0, %eax
- 10769      00
- 10770 9629 E8000000 		call	KDbgMsg at PLT
- 10770      00
- 10771              	.L153:
- 10772              	.LBE2537:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 10773              		.loc 2 1690 0
- 10774 962e 660F6F85 		movdqa	-8576(%rbp), %xmm0
- 10774      80DEFFFF 
- 10775              	.LBE2491:
- 10776              	.LBE2490:
-1883:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)
- 10777              		.loc 2 1883 0
- 10778 9636 660F7F85 		movdqa	%xmm0, -8960(%rbp)
- 10778      00DDFFFF 
-1884:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        (v2,0x80);  /* F(k47): F(k47): F(k47) : F(k47)       */
-1885:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 ^= k;                                       /* k48   : k49   : k50    : k51          */
- 10779              		.loc 2 1885 0
- 10780 963e 660F6F85 		movdqa	-9040(%rbp), %xmm0
- 10780      B0DCFFFF 
- 10781 9646 660FEF85 		pxor	-8960(%rbp), %xmm0
- 10781      00DDFFFF 
- 10782 964e 660F7F85 		movdqa	%xmm0, -9040(%rbp)
- 10782      B0DCFFFF 
-1886:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[12] = v0;                           /* K48:K49:K50:K51 */
- 10783              		.loc 2 1886 0
- 10784 9656 488B85A8 		movq	-8536(%rbp), %rax
- 10784      DEFFFF
- 10785 965d 4805C000 		addq	$192, %rax
- 10785      0000
- 10786 9663 660F6F95 		movdqa	-9040(%rbp), %xmm2
- 10786      B0DCFFFF 
- 10787 966b 660F7F10 		movdqa	%xmm2, (%rax)
-1887:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 10788              		.loc 2 1887 0
- 10789 966f 4881C438 		addq	$9016, %rsp
- 10789      230000
-
GAS LISTING /tmp/ccjbMjHD.s 			page 339
-
-
- 10790 9676 5B       		popq	%rbx
- 10791 9677 415C     		popq	%r12
- 10792 9679 415D     		popq	%r13
- 10793 967b C9       		leave
- 10794 967c C3       		ret
- 10795              		.cfi_endproc
- 10796              	.LFE646:
- 10797              		.size	KAESBlockCipherVecRegKeyExpansion192, .-KAESBlockCipherVecRegKeyExpansion192
- 10798              		.type	KAESBlockCipherVecRegKeyExpansion256, @function
- 10799              	KAESBlockCipherVecRegKeyExpansion256:
- 10800              	.LFB647:
-1888:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1889:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1890:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion192) (CipherVec * w, const AESByte * key)
-1891:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1892:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_192, AES_Nk_192);
-1893:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1894:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1895:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1896:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1897:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1898:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1899:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----- */
-1900:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1901:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC || 1
-1902:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1903:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion256) (CipherVec * round_keys, const AESByte * key)
-1904:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 10801              		.loc 2 1904 0
- 10802              		.cfi_startproc
- 10803 967d 55       		pushq	%rbp
- 10804              	.LCFI6:
- 10805              		.cfi_def_cfa_offset 16
- 10806 967e 4889E5   		movq	%rsp, %rbp
- 10807              		.cfi_offset 6, -16
- 10808              	.LCFI7:
- 10809              		.cfi_def_cfa_register 6
- 10810 9681 4155     		pushq	%r13
- 10811 9683 4154     		pushq	%r12
- 10812 9685 53       		pushq	%rbx
- 10813 9686 4881EC28 		subq	$10280, %rsp
- 10813      280000
- 10814 968d 4889BD98 		movq	%rdi, -9832(%rbp)
- 10814      D9FFFF
- 10815 9694 4889B590 		movq	%rsi, -9840(%rbp)
- 10815      D9FFFF
- 10816              		.loc 2 1904 0
- 10817 969b 488B8590 		movq	-9840(%rbp), %rax
- 10817      D9FFFF
- 10818 96a2 48898558 		movq	%rax, -9128(%rbp)
- 10818      DCFFFF
- 10819              	.LBB3188:
- 10820              	.LBB3189:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 10821              		.loc 2 126 0
- 10822 96a9 488B8558 		movq	-9128(%rbp), %rax
- 10822      DCFFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 340
-
-
- 10823 96b0 4889C7   		movq	%rax, %rdi
- 10824              	#APP
- 10825              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 10826              		movdqu (%rdi),%xmm0
- 10827              	# 0 "" 2
- 10828              	#NO_APP
- 10829 96b7 660F7F85 		movdqa	%xmm0, -10304(%rbp)
- 10829      C0D7FFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 10830              		.loc 2 129 0
- 10831 96bf 660F6F85 		movdqa	-10304(%rbp), %xmm0
- 10831      C0D7FFFF 
- 10832              	.LBE3189:
- 10833              	.LBE3188:
-1905:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec v0, v1;
-1906:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec k;
-1907:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1908:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0 = AESBCMEMBER (StateIn) (key);
- 10834              		.loc 2 1908 0
- 10835 96c7 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 10835      20DCFFFF 
-1909:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1 = AESBCMEMBER (StateIn) (key + sizeof v0);
- 10836              		.loc 2 1909 0
- 10837 96cf 488B8590 		movq	-9840(%rbp), %rax
- 10837      D9FFFF
- 10838 96d6 4883C010 		addq	$16, %rax
- 10839 96da 48898560 		movq	%rax, -9120(%rbp)
- 10839      DCFFFF
- 10840              	.LBB3190:
- 10841              	.LBB3191:
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __asm__ (
- 10842              		.loc 2 126 0
- 10843 96e1 488B8560 		movq	-9120(%rbp), %rax
- 10843      DCFFFF
- 10844 96e8 4889C7   		movq	%rax, %rdi
- 10845              	#APP
- 10846              	# 126 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 10847              		movdqu (%rdi),%xmm0
- 10848              	# 0 "" 2
- 10849              	#NO_APP
- 10850 96ef 660F7F85 		movdqa	%xmm0, -10288(%rbp)
- 10850      D0D7FFFF 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vec;
- 10851              		.loc 2 129 0
- 10852 96f7 660F6F85 		movdqa	-10288(%rbp), %xmm0
- 10852      D0D7FFFF 
- 10853              	.LBE3191:
- 10854              	.LBE3190:
- 10855              		.loc 2 1909 0
- 10856 96ff F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 10856      30DCFFFF 
-1910:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1911:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[0] = v0; /* k0  : k1  : k2  : k3  */
- 10857              		.loc 2 1911 0
- 10858 9707 488B8598 		movq	-9832(%rbp), %rax
- 10858      D9FFFF
- 10859 970e F30F6F85 		movdqu	-9184(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 341
-
-
- 10859      20DCFFFF 
- 10860 9716 F30F7F00 		movdqu	%xmm0, (%rax)
-1912:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[1] = v1; /* k4  : k5  : k6  : k7  */
- 10861              		.loc 2 1912 0
- 10862 971a 488B8598 		movq	-9832(%rbp), %rax
- 10862      D9FFFF
- 10863 9721 4883C010 		addq	$16, %rax
- 10864 9725 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 10864      30DCFFFF 
- 10865 972d F30F7F00 		movdqu	%xmm0, (%rax)
- 10866 9731 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 10866      30DCFFFF 
- 10867 9739 F30F7F85 		movdqu	%xmm0, -9104(%rbp)
- 10867      70DCFFFF 
- 10868              	.LBB3192:
- 10869              	.LBB3193:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 10870              		.loc 2 1681 0
- 10871 9741 B8010000 		movl	$1, %eax
- 10871      00
- 10872 9746 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 10872      00000000 
- 10873 974e F30F7F85 		movdqu	%xmm0, -9072(%rbp)
- 10873      90DCFFFF 
- 10874 9756 89858CDC 		movl	%eax, -9076(%rbp)
- 10874      FFFF
- 10875 975c F30F6F85 		movdqu	-9072(%rbp), %xmm0
- 10875      90DCFFFF 
- 10876 9764 F30F7F85 		movdqu	%xmm0, -9040(%rbp)
- 10876      B0DCFFFF 
- 10877 976c 8B858CDC 		movl	-9076(%rbp), %eax
- 10877      FFFF
- 10878 9772 8985ACDC 		movl	%eax, -9044(%rbp)
- 10878      FFFF
- 10879              	.LBB3194:
- 10880              	.LBB3195:
- 10881              	.LBB3196:
- 10882              	.LBB3197:
- 10883              		.loc 3 598 0
- 10884 9778 8B85ACDC 		movl	-9044(%rbp), %eax
- 10884      FFFF
- 10885 977e F30F6F85 		movdqu	-9040(%rbp), %xmm0
- 10885      B0DCFFFF 
- 10886 9786 660F3A22 		pinsrd	$3, %eax, %xmm0
- 10886      C003
- 10887              	.LBE3197:
- 10888              	.LBE3196:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 10889              		.loc 2 519 0
- 10890 978c F30F7F85 		movdqu	%xmm0, -9072(%rbp)
- 10890      90DCFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 10891              		.loc 2 526 0
- 10892 9794 F30F6F85 		movdqu	-9072(%rbp), %xmm0
- 10892      90DCFFFF 
- 10893              	.LBE3195:
- 10894              	.LBE3194:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 342
-
-
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 10895              		.loc 2 1681 0
- 10896 979c 660F7F85 		movdqa	%xmm0, -10256(%rbp)
- 10896      F0D7FFFF 
- 10897 97a4 F30F6F85 		movdqu	-9104(%rbp), %xmm0
- 10897      70DCFFFF 
- 10898 97ac F30F7F85 		movdqu	%xmm0, -9024(%rbp)
- 10898      C0DCFFFF 
- 10899 97b4 F30F6F85 		movdqu	-9024(%rbp), %xmm0
- 10899      C0DCFFFF 
- 10900 97bc F30F7F85 		movdqu	%xmm0, -8992(%rbp)
- 10900      E0DCFFFF 
- 10901 97c4 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 10901      000000
- 10902 97cb 488985D8 		movq	%rax, -9000(%rbp)
- 10902      DCFFFF
- 10903              	.LBB3198:
- 10904              	.LBB3199:
- 10905              	.LBB3200:
- 10906              	.LBB3201:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 10907              		.loc 2 851 0
- 10908 97d2 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 10908      00000000 
- 10909 97da F30F7F85 		movdqu	%xmm0, -8960(%rbp)
- 10909      00DDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 10910              		.loc 2 854 0
- 10911 97e2 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 10911      00000000 
- 10912 97ea F30F6F8D 		movdqu	-8992(%rbp), %xmm1
- 10912      E0DCFFFF 
- 10913 97f2 F30F7F8D 		movdqu	%xmm1, -8880(%rbp)
- 10913      50DDFFFF 
- 10914 97fa F30F7F85 		movdqu	%xmm0, -8896(%rbp)
- 10914      40DDFFFF 
- 10915              	.LBB3202:
- 10916              	.LBB3203:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 10917              		.loc 2 206 0
- 10918 9802 F30F6F85 		movdqu	-8896(%rbp), %xmm0
- 10918      40DDFFFF 
- 10919 980a F30F6F8D 		movdqu	-8880(%rbp), %xmm1
- 10919      50DDFFFF 
- 10920 9812 660FDBC1 		pand	%xmm1, %xmm0
- 10921              	.LBE3203:
- 10922              	.LBE3202:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 10923              		.loc 2 854 0
- 10924 9816 F30F7F85 		movdqu	%xmm0, -8912(%rbp)
- 10924      30DDFFFF 
- 10925 981e F30F6F85 		movdqu	-8992(%rbp), %xmm0
- 10925      E0DCFFFF 
- 10926 9826 F30F7F85 		movdqu	%xmm0, -8848(%rbp)
- 10926      70DDFFFF 
- 10927              	.LBB3204:
- 10928              	.LBB3205:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 343
-
-
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 10929              		.loc 3 433 0
- 10930 982e F30F6F85 		movdqu	-8848(%rbp), %xmm0
- 10930      70DDFFFF 
- 10931 9836 660F72D0 		psrld	$4, %xmm0
- 10931      04
- 10932              	.LBE3205:
- 10933              	.LBE3204:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 10934              		.loc 2 857 0
- 10935 983b F30F7F85 		movdqu	%xmm0, -8928(%rbp)
- 10935      20DDFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 10936              		.loc 2 859 0
- 10937 9843 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 10937      00000000 
- 10938 984b F30F6F8D 		movdqu	-8928(%rbp), %xmm1
- 10938      20DDFFFF 
- 10939 9853 F30F7F8D 		movdqu	%xmm1, -8816(%rbp)
- 10939      90DDFFFF 
- 10940 985b F30F7F85 		movdqu	%xmm0, -8832(%rbp)
- 10940      80DDFFFF 
- 10941              	.LBB3206:
- 10942              	.LBB3207:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 10943              		.loc 2 206 0
- 10944 9863 F30F6F85 		movdqu	-8832(%rbp), %xmm0
- 10944      80DDFFFF 
- 10945 986b F30F6F8D 		movdqu	-8816(%rbp), %xmm1
- 10945      90DDFFFF 
- 10946 9873 660FDBC1 		pand	%xmm1, %xmm0
- 10947              	.LBE3207:
- 10948              	.LBE3206:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 10949              		.loc 2 859 0
- 10950 9877 F30F7F85 		movdqu	%xmm0, -8928(%rbp)
- 10950      20DDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 10951              		.loc 2 866 0
- 10952 987f C785FCDC 		movl	$0, -8964(%rbp)
- 10952      FFFF0000 
- 10952      0000
- 10953 9889 E9BE0100 		jmp	.L156
- 10953      00
- 10954              		.cfi_offset 3, -40
- 10955              		.cfi_offset 12, -32
- 10956              		.cfi_offset 13, -24
- 10957              	.L157:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 10958              		.loc 2 868 0
- 10959 988e 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 10959      00000000 
- 10960 9896 F30F7F85 		movdqu	%xmm0, -8784(%rbp)
- 10960      B0DDFFFF 
- 10961 989e F30F6F85 		movdqu	-8928(%rbp), %xmm0
- 10961      20DDFFFF 
- 10962 98a6 F30F7F85 		movdqu	%xmm0, -8800(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 344
-
-
- 10962      A0DDFFFF 
- 10963 98ae F30F6F85 		movdqu	-8784(%rbp), %xmm0
- 10963      B0DDFFFF 
- 10964 98b6 F30F7F85 		movdqu	%xmm0, -8752(%rbp)
- 10964      D0DDFFFF 
- 10965 98be F30F6F85 		movdqu	-8800(%rbp), %xmm0
- 10965      A0DDFFFF 
- 10966 98c6 F30F7F85 		movdqu	%xmm0, -8768(%rbp)
- 10966      C0DDFFFF 
- 10967              	.LBB3208:
- 10968              	.LBB3209:
- 10969              	.LBB3210:
- 10970              	.LBB3211:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 10971              		.loc 3 529 0
- 10972 98ce F30F6F8D 		movdqu	-8768(%rbp), %xmm1
- 10972      C0DDFFFF 
- 10973 98d6 F30F6F85 		movdqu	-8752(%rbp), %xmm0
- 10973      D0DDFFFF 
- 10974 98de 660F3800 		pshufb	%xmm1, %xmm0
- 10974      C1
- 10975              	.LBE3211:
- 10976              	.LBE3210:
- 10977              	.LBE3209:
- 10978              	.LBE3208:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 10979              		.loc 2 868 0
- 10980 98e3 F30F7F85 		movdqu	%xmm0, -8944(%rbp)
- 10980      10DDFFFF 
- 10981 98eb F30F6F85 		movdqu	-8912(%rbp), %xmm0
- 10981      30DDFFFF 
- 10982 98f3 F30F7F85 		movdqu	%xmm0, -8720(%rbp)
- 10982      F0DDFFFF 
- 10983 98fb F30F6F85 		movdqu	-8944(%rbp), %xmm0
- 10983      10DDFFFF 
- 10984 9903 F30F7F85 		movdqu	%xmm0, -8736(%rbp)
- 10984      E0DDFFFF 
- 10985              	.LBB3212:
- 10986              	.LBB3213:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 10987              		.loc 2 234 0
- 10988 990b F30F6F85 		movdqu	-8736(%rbp), %xmm0
- 10988      E0DDFFFF 
- 10989 9913 F30F6F8D 		movdqu	-8720(%rbp), %xmm1
- 10989      F0DDFFFF 
- 10990 991b 660FEBC1 		por	%xmm1, %xmm0
- 10991              	.LBE3213:
- 10992              	.LBE3212:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 10993              		.loc 2 870 0
- 10994 991f F30F7F85 		movdqu	%xmm0, -8944(%rbp)
- 10994      10DDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 10995              		.loc 2 872 0
- 10996 9927 8B85FCDC 		mov	-8964(%rbp), %eax
- 10996      FFFF
- 10997 992d 48C1E004 		salq	$4, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 345
-
-
- 10998 9931 480385D8 		addq	-9000(%rbp), %rax
- 10998      DCFFFF
- 10999 9938 660F6F00 		movdqa	(%rax), %xmm0
- 11000 993c F30F7F85 		movdqu	%xmm0, -8688(%rbp)
- 11000      10DEFFFF 
- 11001 9944 F30F6F85 		movdqu	-8944(%rbp), %xmm0
- 11001      10DDFFFF 
- 11002 994c F30F7F85 		movdqu	%xmm0, -8704(%rbp)
- 11002      00DEFFFF 
- 11003 9954 F30F6F85 		movdqu	-8688(%rbp), %xmm0
- 11003      10DEFFFF 
- 11004 995c F30F7F85 		movdqu	%xmm0, -8656(%rbp)
- 11004      30DEFFFF 
- 11005 9964 F30F6F85 		movdqu	-8704(%rbp), %xmm0
- 11005      00DEFFFF 
- 11006 996c F30F7F85 		movdqu	%xmm0, -8672(%rbp)
- 11006      20DEFFFF 
- 11007              	.LBB3214:
- 11008              	.LBB3215:
- 11009              	.LBB3216:
- 11010              	.LBB3217:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11011              		.loc 3 529 0
- 11012 9974 F30F6F8D 		movdqu	-8672(%rbp), %xmm1
- 11012      20DEFFFF 
- 11013 997c F30F6F85 		movdqu	-8656(%rbp), %xmm0
- 11013      30DEFFFF 
- 11014 9984 660F3800 		pshufb	%xmm1, %xmm0
- 11014      C1
- 11015              	.LBE3217:
- 11016              	.LBE3216:
- 11017              	.LBE3215:
- 11018              	.LBE3214:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 11019              		.loc 2 872 0
- 11020 9989 F30F7F85 		movdqu	%xmm0, -8944(%rbp)
- 11020      10DDFFFF 
- 11021 9991 F30F6F85 		movdqu	-8960(%rbp), %xmm0
- 11021      00DDFFFF 
- 11022 9999 F30F7F85 		movdqu	%xmm0, -8624(%rbp)
- 11022      50DEFFFF 
- 11023 99a1 F30F6F85 		movdqu	-8944(%rbp), %xmm0
- 11023      10DDFFFF 
- 11024 99a9 F30F7F85 		movdqu	%xmm0, -8640(%rbp)
- 11024      40DEFFFF 
- 11025              	.LBB3218:
- 11026              	.LBB3219:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 11027              		.loc 2 234 0
- 11028 99b1 F30F6F85 		movdqu	-8640(%rbp), %xmm0
- 11028      40DEFFFF 
- 11029 99b9 F30F6F8D 		movdqu	-8624(%rbp), %xmm1
- 11029      50DEFFFF 
- 11030 99c1 660FEBC1 		por	%xmm1, %xmm0
- 11031              	.LBE3219:
- 11032              	.LBE3218:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 346
-
-
- 11033              		.loc 2 874 0
- 11034 99c5 F30F7F85 		movdqu	%xmm0, -8960(%rbp)
- 11034      00DDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 11035              		.loc 2 876 0
- 11036 99cd 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 11036      00000000 
- 11037 99d5 F30F6F8D 		movdqu	-8928(%rbp), %xmm1
- 11037      20DDFFFF 
- 11038 99dd F30F7F8D 		movdqu	%xmm1, -8592(%rbp)
- 11038      70DEFFFF 
- 11039 99e5 F30F7F85 		movdqu	%xmm0, -8608(%rbp)
- 11039      60DEFFFF 
- 11040              	.LBB3220:
- 11041              	.LBB3221:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 11042              		.loc 2 290 0
- 11043 99ed F30F6F8D 		movdqu	-8608(%rbp), %xmm1
- 11043      60DEFFFF 
- 11044 99f5 F30F6F85 		movdqu	-8592(%rbp), %xmm0
- 11044      70DEFFFF 
- 11045 99fd 660FF8C1 		psubb	%xmm1, %xmm0
- 11046              	.LBE3221:
- 11047              	.LBE3220:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 11048              		.loc 2 876 0
- 11049 9a01 F30F7F85 		movdqu	%xmm0, -8928(%rbp)
- 11049      20DDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11050              		.loc 2 878 0
- 11051 9a09 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 11051      00000000 
- 11052 9a11 F30F6F8D 		movdqu	-8928(%rbp), %xmm1
- 11052      20DDFFFF 
- 11053 9a19 F30F7F8D 		movdqu	%xmm1, -8560(%rbp)
- 11053      90DEFFFF 
- 11054 9a21 F30F7F85 		movdqu	%xmm0, -8576(%rbp)
- 11054      80DEFFFF 
- 11055              	.LBB3222:
- 11056              	.LBB3223:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 11057              		.loc 2 206 0
- 11058 9a29 F30F6F85 		movdqu	-8576(%rbp), %xmm0
- 11058      80DEFFFF 
- 11059 9a31 F30F6F8D 		movdqu	-8560(%rbp), %xmm1
- 11059      90DEFFFF 
- 11060 9a39 660FDBC1 		pand	%xmm1, %xmm0
- 11061              	.LBE3223:
- 11062              	.LBE3222:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11063              		.loc 2 878 0
- 11064 9a3d F30F7F85 		movdqu	%xmm0, -8928(%rbp)
- 11064      20DDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 11065              		.loc 2 866 0
- 11066 9a45 8385FCDC 		addl	$1, -8964(%rbp)
- 11066      FFFF01
-
GAS LISTING /tmp/ccjbMjHD.s 			page 347
-
-
- 11067              	.L156:
- 11068 9a4c 83BDFCDC 		cmpl	$15, -8964(%rbp)
- 11068      FFFF0F
- 11069 9a53 0F8635FE 		jbe	.L157
- 11069      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 11070              		.loc 2 882 0
- 11071 9a59 F30F6F85 		movdqu	-8960(%rbp), %xmm0
- 11071      00DDFFFF 
- 11072              	.LBE3201:
- 11073              	.LBE3200:
- 11074              	.LBE3199:
- 11075              	.LBE3198:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 11076              		.loc 2 1682 0
- 11077 9a61 660F7F85 		movdqa	%xmm0, -10272(%rbp)
- 11077      E0D7FFFF 
- 11078              	.LBB3224:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 11079              		.loc 2 1683 0
- 11080 9a69 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11080      E0D7FFFF 
- 11081 9a71 F30F7F85 		movdqu	%xmm0, -9776(%rbp)
- 11081      D0D9FFFF 
- 11082 9a79 E8000000 		call	KDbgWriterGet at PLT
- 11082      00
- 11083 9a7e 4885C0   		testq	%rax, %rax
- 11084 9a81 7479     		je	.L159
- 11085 9a83 BF010000 		movl	$1, %edi
- 11085      00
- 11086 9a88 E8000000 		call	KDbgCondToFlag at PLT
- 11086      00
- 11087 9a8d 4889C6   		movq	%rax, %rsi
- 11088 9a90 BF100000 		movl	$16, %edi
- 11088      00
- 11089 9a95 E8000000 		call	KDbgTestModConds at PLT
- 11089      00
- 11090 9a9a 84C0     		testb	%al, %al
- 11091 9a9c 745E     		je	.L159
- 11092 9a9e 8B85DCD9 		movl	-9764(%rbp), %eax
- 11092      FFFF
- 11093 9aa4 89C7     		movl	%eax, %edi
- 11094 9aa6 E85565FF 		call	bswap_32
- 11094      FF
- 11095 9aab 4189C5   		movl	%eax, %r13d
- 11096 9aae 8B85D8D9 		movl	-9768(%rbp), %eax
- 11096      FFFF
- 11097 9ab4 89C7     		movl	%eax, %edi
- 11098 9ab6 E84565FF 		call	bswap_32
- 11098      FF
- 11099 9abb 4189C4   		movl	%eax, %r12d
- 11100 9abe 8B85D4D9 		movl	-9772(%rbp), %eax
- 11100      FFFF
- 11101 9ac4 89C7     		movl	%eax, %edi
- 11102 9ac6 E83565FF 		call	bswap_32
- 11102      FF
- 11103 9acb 89C3     		movl	%eax, %ebx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 348
-
-
- 11104 9acd 8B85D0D9 		movl	-9776(%rbp), %eax
- 11104      FFFF
- 11105 9ad3 89C7     		movl	%eax, %edi
- 11106 9ad5 E82665FF 		call	bswap_32
- 11106      FF
- 11107 9ada 4589E9   		movl	%r13d, %r9d
- 11108 9add 4589E0   		movl	%r12d, %r8d
- 11109 9ae0 89D9     		movl	%ebx, %ecx
- 11110 9ae2 89C2     		movl	%eax, %edx
- 11111 9ae4 488D3500 		leaq	.LC0(%rip), %rsi
- 11111      000000
- 11112 9aeb 488D3D00 		leaq	.LC1(%rip), %rdi
- 11112      000000
- 11113 9af2 B8000000 		movl	$0, %eax
- 11113      00
- 11114 9af7 E8000000 		call	KDbgMsg at PLT
- 11114      00
- 11115              	.L159:
- 11116 9afc 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11116      E0D7FFFF 
- 11117 9b04 F30F7F85 		movdqu	%xmm0, -8544(%rbp)
- 11117      A0DEFFFF 
- 11118              	.LBE3224:
- 11119              	.LBB3225:
- 11120              	.LBB3226:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 11121              		.loc 2 667 0
- 11122 9b0c 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 11122      00000000 
- 11123 9b14 F30F6F8D 		movdqu	-8544(%rbp), %xmm1
- 11123      A0DEFFFF 
- 11124 9b1c F30F7F8D 		movdqu	%xmm1, -8512(%rbp)
- 11124      C0DEFFFF 
- 11125 9b24 F30F7F85 		movdqu	%xmm0, -8528(%rbp)
- 11125      B0DEFFFF 
- 11126 9b2c F30F6F85 		movdqu	-8512(%rbp), %xmm0
- 11126      C0DEFFFF 
- 11127 9b34 F30F7F85 		movdqu	%xmm0, -8480(%rbp)
- 11127      E0DEFFFF 
- 11128 9b3c F30F6F85 		movdqu	-8528(%rbp), %xmm0
- 11128      B0DEFFFF 
- 11129 9b44 F30F7F85 		movdqu	%xmm0, -8496(%rbp)
- 11129      D0DEFFFF 
- 11130              	.LBB3227:
- 11131              	.LBB3228:
- 11132              	.LBB3229:
- 11133              	.LBB3230:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11134              		.loc 3 529 0
- 11135 9b4c F30F6F8D 		movdqu	-8496(%rbp), %xmm1
- 11135      D0DEFFFF 
- 11136 9b54 F30F6F85 		movdqu	-8480(%rbp), %xmm0
- 11136      E0DEFFFF 
- 11137 9b5c 660F3800 		pshufb	%xmm1, %xmm0
- 11137      C1
- 11138              	.LBE3230:
- 11139              	.LBE3229:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 349
-
-
- 11140              	.LBE3228:
- 11141              	.LBE3227:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 11142              		.loc 2 667 0
- 11143 9b61 F30F7F85 		movdqu	%xmm0, -8544(%rbp)
- 11143      A0DEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11144              		.loc 2 668 0
- 11145 9b69 F30F6F85 		movdqu	-8544(%rbp), %xmm0
- 11145      A0DEFFFF 
- 11146              	.LBE3226:
- 11147              	.LBE3225:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 11148              		.loc 2 1684 0
- 11149 9b71 660F7F85 		movdqa	%xmm0, -10272(%rbp)
- 11149      E0D7FFFF 
- 11150              	.LBB3231:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 11151              		.loc 2 1685 0
- 11152 9b79 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11152      E0D7FFFF 
- 11153 9b81 F30F7F85 		movdqu	%xmm0, -9792(%rbp)
- 11153      C0D9FFFF 
- 11154 9b89 E8000000 		call	KDbgWriterGet at PLT
- 11154      00
- 11155 9b8e 4885C0   		testq	%rax, %rax
- 11156 9b91 7479     		je	.L161
- 11157 9b93 BF010000 		movl	$1, %edi
- 11157      00
- 11158 9b98 E8000000 		call	KDbgCondToFlag at PLT
- 11158      00
- 11159 9b9d 4889C6   		movq	%rax, %rsi
- 11160 9ba0 BF100000 		movl	$16, %edi
- 11160      00
- 11161 9ba5 E8000000 		call	KDbgTestModConds at PLT
- 11161      00
- 11162 9baa 84C0     		testb	%al, %al
- 11163 9bac 745E     		je	.L161
- 11164 9bae 8B85CCD9 		movl	-9780(%rbp), %eax
- 11164      FFFF
- 11165 9bb4 89C7     		movl	%eax, %edi
- 11166 9bb6 E84564FF 		call	bswap_32
- 11166      FF
- 11167 9bbb 4189C5   		movl	%eax, %r13d
- 11168 9bbe 8B85C8D9 		movl	-9784(%rbp), %eax
- 11168      FFFF
- 11169 9bc4 89C7     		movl	%eax, %edi
- 11170 9bc6 E83564FF 		call	bswap_32
- 11170      FF
- 11171 9bcb 4189C4   		movl	%eax, %r12d
- 11172 9bce 8B85C4D9 		movl	-9788(%rbp), %eax
- 11172      FFFF
- 11173 9bd4 89C7     		movl	%eax, %edi
- 11174 9bd6 E82564FF 		call	bswap_32
- 11174      FF
- 11175 9bdb 89C3     		movl	%eax, %ebx
- 11176 9bdd 8B85C0D9 		movl	-9792(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 350
-
-
- 11176      FFFF
- 11177 9be3 89C7     		movl	%eax, %edi
- 11178 9be5 E81664FF 		call	bswap_32
- 11178      FF
- 11179 9bea 4589E9   		movl	%r13d, %r9d
- 11180 9bed 4589E0   		movl	%r12d, %r8d
- 11181 9bf0 89D9     		movl	%ebx, %ecx
- 11182 9bf2 89C2     		movl	%eax, %edx
- 11183 9bf4 488D3500 		leaq	.LC2(%rip), %rsi
- 11183      000000
- 11184 9bfb 488D3D00 		leaq	.LC1(%rip), %rdi
- 11184      000000
- 11185 9c02 B8000000 		movl	$0, %eax
- 11185      00
- 11186 9c07 E8000000 		call	KDbgMsg at PLT
- 11186      00
- 11187              	.L161:
- 11188 9c0c 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11188      E0D7FFFF 
- 11189 9c14 F30F7F85 		movdqu	%xmm0, -8448(%rbp)
- 11189      00DFFFFF 
- 11190 9c1c 660F6F85 		movdqa	-10256(%rbp), %xmm0
- 11190      F0D7FFFF 
- 11191 9c24 F30F7F85 		movdqu	%xmm0, -8464(%rbp)
- 11191      F0DEFFFF 
- 11192              	.LBE3231:
- 11193              	.LBB3232:
- 11194              	.LBB3233:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 11195              		.loc 2 178 0
- 11196 9c2c F30F6F85 		movdqu	-8464(%rbp), %xmm0
- 11196      F0DEFFFF 
- 11197 9c34 F30F6F8D 		movdqu	-8448(%rbp), %xmm1
- 11197      00DFFFFF 
- 11198 9c3c 660FEFC1 		pxor	%xmm1, %xmm0
- 11199              	.LBE3233:
- 11200              	.LBE3232:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 11201              		.loc 2 1686 0
- 11202 9c40 660F7F85 		movdqa	%xmm0, -10272(%rbp)
- 11202      E0D7FFFF 
- 11203              	.LBB3234:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 11204              		.loc 2 1687 0
- 11205 9c48 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11205      E0D7FFFF 
- 11206 9c50 F30F7F85 		movdqu	%xmm0, -9808(%rbp)
- 11206      B0D9FFFF 
- 11207 9c58 E8000000 		call	KDbgWriterGet at PLT
- 11207      00
- 11208 9c5d 4885C0   		testq	%rax, %rax
- 11209 9c60 7479     		je	.L163
- 11210 9c62 BF010000 		movl	$1, %edi
- 11210      00
- 11211 9c67 E8000000 		call	KDbgCondToFlag at PLT
- 11211      00
- 11212 9c6c 4889C6   		movq	%rax, %rsi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 351
-
-
- 11213 9c6f BF100000 		movl	$16, %edi
- 11213      00
- 11214 9c74 E8000000 		call	KDbgTestModConds at PLT
- 11214      00
- 11215 9c79 84C0     		testb	%al, %al
- 11216 9c7b 745E     		je	.L163
- 11217 9c7d 8B85BCD9 		movl	-9796(%rbp), %eax
- 11217      FFFF
- 11218 9c83 89C7     		movl	%eax, %edi
- 11219 9c85 E87663FF 		call	bswap_32
- 11219      FF
- 11220 9c8a 4189C5   		movl	%eax, %r13d
- 11221 9c8d 8B85B8D9 		movl	-9800(%rbp), %eax
- 11221      FFFF
- 11222 9c93 89C7     		movl	%eax, %edi
- 11223 9c95 E86663FF 		call	bswap_32
- 11223      FF
- 11224 9c9a 4189C4   		movl	%eax, %r12d
- 11225 9c9d 8B85B4D9 		movl	-9804(%rbp), %eax
- 11225      FFFF
- 11226 9ca3 89C7     		movl	%eax, %edi
- 11227 9ca5 E85663FF 		call	bswap_32
- 11227      FF
- 11228 9caa 89C3     		movl	%eax, %ebx
- 11229 9cac 8B85B0D9 		movl	-9808(%rbp), %eax
- 11229      FFFF
- 11230 9cb2 89C7     		movl	%eax, %edi
- 11231 9cb4 E84763FF 		call	bswap_32
- 11231      FF
- 11232 9cb9 4589E9   		movl	%r13d, %r9d
- 11233 9cbc 4589E0   		movl	%r12d, %r8d
- 11234 9cbf 89D9     		movl	%ebx, %ecx
- 11235 9cc1 89C2     		movl	%eax, %edx
- 11236 9cc3 488D3500 		leaq	.LC3(%rip), %rsi
- 11236      000000
- 11237 9cca 488D3D00 		leaq	.LC1(%rip), %rdi
- 11237      000000
- 11238 9cd1 B8000000 		movl	$0, %eax
- 11238      00
- 11239 9cd6 E8000000 		call	KDbgMsg at PLT
- 11239      00
- 11240              	.L163:
- 11241 9cdb 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11241      E0D7FFFF 
- 11242 9ce3 F30F7F85 		movdqu	%xmm0, -8432(%rbp)
- 11242      10DFFFFF 
- 11243 9ceb F30F6F85 		movdqu	-8432(%rbp), %xmm0
- 11243      10DFFFFF 
- 11244 9cf3 F30F7F85 		movdqu	%xmm0, -8400(%rbp)
- 11244      30DFFFFF 
- 11245              	.LBE3234:
- 11246              	.LBB3235:
- 11247              	.LBB3236:
- 11248              	.LBB3237:
- 11249              	.LBB3238:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 11250              		.loc 3 450 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 352
-
-
- 11251 9cfb F30F6F85 		movdqu	-8400(%rbp), %xmm0
- 11251      30DFFFFF 
- 11252 9d03 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 11252      FF
- 11253              	.LBE3238:
- 11254              	.LBE3237:
- 11255              	.LBE3236:
- 11256              	.LBE3235:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 11257              		.loc 2 1688 0
- 11258 9d08 660F7F85 		movdqa	%xmm0, -10272(%rbp)
- 11258      E0D7FFFF 
- 11259              	.LBB3239:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 11260              		.loc 2 1689 0
- 11261 9d10 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11261      E0D7FFFF 
- 11262 9d18 F30F7F85 		movdqu	%xmm0, -9824(%rbp)
- 11262      A0D9FFFF 
- 11263 9d20 E8000000 		call	KDbgWriterGet at PLT
- 11263      00
- 11264 9d25 4885C0   		testq	%rax, %rax
- 11265 9d28 7479     		je	.L165
- 11266 9d2a BF010000 		movl	$1, %edi
- 11266      00
- 11267 9d2f E8000000 		call	KDbgCondToFlag at PLT
- 11267      00
- 11268 9d34 4889C6   		movq	%rax, %rsi
- 11269 9d37 BF100000 		movl	$16, %edi
- 11269      00
- 11270 9d3c E8000000 		call	KDbgTestModConds at PLT
- 11270      00
- 11271 9d41 84C0     		testb	%al, %al
- 11272 9d43 745E     		je	.L165
- 11273 9d45 8B85ACD9 		movl	-9812(%rbp), %eax
- 11273      FFFF
- 11274 9d4b 89C7     		movl	%eax, %edi
- 11275 9d4d E8AE62FF 		call	bswap_32
- 11275      FF
- 11276 9d52 4189C5   		movl	%eax, %r13d
- 11277 9d55 8B85A8D9 		movl	-9816(%rbp), %eax
- 11277      FFFF
- 11278 9d5b 89C7     		movl	%eax, %edi
- 11279 9d5d E89E62FF 		call	bswap_32
- 11279      FF
- 11280 9d62 4189C4   		movl	%eax, %r12d
- 11281 9d65 8B85A4D9 		movl	-9820(%rbp), %eax
- 11281      FFFF
- 11282 9d6b 89C7     		movl	%eax, %edi
- 11283 9d6d E88E62FF 		call	bswap_32
- 11283      FF
- 11284 9d72 89C3     		movl	%eax, %ebx
- 11285 9d74 8B85A0D9 		movl	-9824(%rbp), %eax
- 11285      FFFF
- 11286 9d7a 89C7     		movl	%eax, %edi
- 11287 9d7c E87F62FF 		call	bswap_32
- 11287      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 353
-
-
- 11288 9d81 4589E9   		movl	%r13d, %r9d
- 11289 9d84 4589E0   		movl	%r12d, %r8d
- 11290 9d87 89D9     		movl	%ebx, %ecx
- 11291 9d89 89C2     		movl	%eax, %edx
- 11292 9d8b 488D3500 		leaq	.LC4(%rip), %rsi
- 11292      000000
- 11293 9d92 488D3D00 		leaq	.LC1(%rip), %rdi
- 11293      000000
- 11294 9d99 B8000000 		movl	$0, %eax
- 11294      00
- 11295 9d9e E8000000 		call	KDbgMsg at PLT
- 11295      00
- 11296              	.L165:
- 11297              	.LBE3239:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 11298              		.loc 2 1690 0
- 11299 9da3 660F6F85 		movdqa	-10272(%rbp), %xmm0
- 11299      E0D7FFFF 
- 11300              	.LBE3193:
- 11301              	.LBE3192:
-1913:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1914:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE256_1(offset,rcon)                            \
-1915:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn3)(v1,rcon); \
-1916:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(ShiftXorColumns) (v0);            \
-1917:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v0  = AESBCMEMBER(VecXor) (v0, k);                  \
-1918:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = v0
-1919:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1920:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #define KE256_2(offset) \
-1921:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     k   = AESBCMEMBER(AesKeyGenAssistColumn2)(v0);      \
-1922:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(ShiftXorColumns) (v1);            \
-1923:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v1  = AESBCMEMBER(VecXor) (v1, k);                  \
-1924:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     round_keys[offset] = v1
-1925:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1926:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(2,0x01);    /* k8  : k9  : k10 : k11 */
- 11302              		.loc 2 1926 0
- 11303 9dab F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 11303      40DCFFFF 
- 11304 9db3 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 11304      20DCFFFF 
- 11305 9dbb F30F7F85 		movdqu	%xmm0, -8384(%rbp)
- 11305      40DFFFFF 
- 11306              	.LBB3240:
- 11307              	.LBB3241:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 11308              		.loc 2 1565 0
- 11309 9dc3 F30F6F85 		movdqu	-8384(%rbp), %xmm0
- 11309      40DFFFFF 
- 11310 9dcb 660F7F85 		movdqa	%xmm0, -10240(%rbp)
- 11310      00D8FFFF 
- 11311 9dd3 660F6F85 		movdqa	-10240(%rbp), %xmm0
- 11311      00D8FFFF 
- 11312 9ddb F30F7F85 		movdqu	%xmm0, -8368(%rbp)
- 11312      50DFFFFF 
- 11313              	.LBB3242:
- 11314              	.LBB3243:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 11315              		.loc 2 1278 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 354
-
-
- 11316 9de3 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 11316      00000000 
- 11317 9deb F30F6F8D 		movdqu	-8368(%rbp), %xmm1
- 11317      50DFFFFF 
- 11318 9df3 F30F7F8D 		movdqu	%xmm1, -8336(%rbp)
- 11318      70DFFFFF 
- 11319 9dfb F30F7F85 		movdqu	%xmm0, -8352(%rbp)
- 11319      60DFFFFF 
- 11320 9e03 F30F6F85 		movdqu	-8336(%rbp), %xmm0
- 11320      70DFFFFF 
- 11321 9e0b F30F7F85 		movdqu	%xmm0, -8304(%rbp)
- 11321      90DFFFFF 
- 11322 9e13 F30F6F85 		movdqu	-8352(%rbp), %xmm0
- 11322      60DFFFFF 
- 11323 9e1b F30F7F85 		movdqu	%xmm0, -8320(%rbp)
- 11323      80DFFFFF 
- 11324              	.LBB3244:
- 11325              	.LBB3245:
- 11326              	.LBB3246:
- 11327              	.LBB3247:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11328              		.loc 3 529 0
- 11329 9e23 F30F6F8D 		movdqu	-8320(%rbp), %xmm1
- 11329      80DFFFFF 
- 11330 9e2b F30F6F85 		movdqu	-8304(%rbp), %xmm0
- 11330      90DFFFFF 
- 11331 9e33 660F3800 		pshufb	%xmm1, %xmm0
- 11331      C1
- 11332              	.LBE3247:
- 11333              	.LBE3246:
- 11334              	.LBE3245:
- 11335              	.LBE3244:
- 11336              	.LBE3243:
- 11337              	.LBE3242:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11338              		.loc 2 1567 0
- 11339 9e38 660F7F85 		movdqa	%xmm0, -10240(%rbp)
- 11339      00D8FFFF 
- 11340 9e40 660F6F85 		movdqa	-10240(%rbp), %xmm0
- 11340      00D8FFFF 
- 11341 9e48 660FEF85 		pxor	-8384(%rbp), %xmm0
- 11341      40DFFFFF 
- 11342 9e50 F30F7F85 		movdqu	%xmm0, -8384(%rbp)
- 11342      40DFFFFF 
- 11343 9e58 660F6F85 		movdqa	-10240(%rbp), %xmm0
- 11343      00D8FFFF 
- 11344 9e60 F30F7F85 		movdqu	%xmm0, -8288(%rbp)
- 11344      A0DFFFFF 
- 11345              	.LBB3248:
- 11346              	.LBB3249:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 11347              		.loc 2 1278 0
- 11348 9e68 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 11348      00000000 
- 11349 9e70 F30F6F8D 		movdqu	-8288(%rbp), %xmm1
- 11349      A0DFFFFF 
- 11350 9e78 F30F7F8D 		movdqu	%xmm1, -8256(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 355
-
-
- 11350      C0DFFFFF 
- 11351 9e80 F30F7F85 		movdqu	%xmm0, -8272(%rbp)
- 11351      B0DFFFFF 
- 11352 9e88 F30F6F85 		movdqu	-8256(%rbp), %xmm0
- 11352      C0DFFFFF 
- 11353 9e90 F30F7F85 		movdqu	%xmm0, -8224(%rbp)
- 11353      E0DFFFFF 
- 11354 9e98 F30F6F85 		movdqu	-8272(%rbp), %xmm0
- 11354      B0DFFFFF 
- 11355 9ea0 F30F7F85 		movdqu	%xmm0, -8240(%rbp)
- 11355      D0DFFFFF 
- 11356              	.LBB3250:
- 11357              	.LBB3251:
- 11358              	.LBB3252:
- 11359              	.LBB3253:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11360              		.loc 3 529 0
- 11361 9ea8 F30F6F8D 		movdqu	-8240(%rbp), %xmm1
- 11361      D0DFFFFF 
- 11362 9eb0 F30F6F85 		movdqu	-8224(%rbp), %xmm0
- 11362      E0DFFFFF 
- 11363 9eb8 660F3800 		pshufb	%xmm1, %xmm0
- 11363      C1
- 11364              	.LBE3253:
- 11365              	.LBE3252:
- 11366              	.LBE3251:
- 11367              	.LBE3250:
- 11368              	.LBE3249:
- 11369              	.LBE3248:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11370              		.loc 2 1568 0
- 11371 9ebd 660F7F85 		movdqa	%xmm0, -10240(%rbp)
- 11371      00D8FFFF 
- 11372 9ec5 660F6F85 		movdqa	-10240(%rbp), %xmm0
- 11372      00D8FFFF 
- 11373 9ecd 660FEF85 		pxor	-8384(%rbp), %xmm0
- 11373      40DFFFFF 
- 11374 9ed5 F30F7F85 		movdqu	%xmm0, -8384(%rbp)
- 11374      40DFFFFF 
- 11375 9edd 660F6F85 		movdqa	-10240(%rbp), %xmm0
- 11375      00D8FFFF 
- 11376 9ee5 F30F7F85 		movdqu	%xmm0, -8208(%rbp)
- 11376      F0DFFFFF 
- 11377              	.LBB3254:
- 11378              	.LBB3255:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 11379              		.loc 2 1278 0
- 11380 9eed 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 11380      00000000 
- 11381 9ef5 F30F6F8D 		movdqu	-8208(%rbp), %xmm1
- 11381      F0DFFFFF 
- 11382 9efd F30F7F8D 		movdqu	%xmm1, -8176(%rbp)
- 11382      10E0FFFF 
- 11383 9f05 F30F7F85 		movdqu	%xmm0, -8192(%rbp)
- 11383      00E0FFFF 
- 11384 9f0d F30F6F85 		movdqu	-8176(%rbp), %xmm0
- 11384      10E0FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 356
-
-
- 11385 9f15 F30F7F85 		movdqu	%xmm0, -8144(%rbp)
- 11385      30E0FFFF 
- 11386 9f1d F30F6F85 		movdqu	-8192(%rbp), %xmm0
- 11386      00E0FFFF 
- 11387 9f25 F30F7F85 		movdqu	%xmm0, -8160(%rbp)
- 11387      20E0FFFF 
- 11388              	.LBB3256:
- 11389              	.LBB3257:
- 11390              	.LBB3258:
- 11391              	.LBB3259:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11392              		.loc 3 529 0
- 11393 9f2d F30F6F8D 		movdqu	-8160(%rbp), %xmm1
- 11393      20E0FFFF 
- 11394 9f35 F30F6F85 		movdqu	-8144(%rbp), %xmm0
- 11394      30E0FFFF 
- 11395 9f3d 660F3800 		pshufb	%xmm1, %xmm0
- 11395      C1
- 11396              	.LBE3259:
- 11397              	.LBE3258:
- 11398              	.LBE3257:
- 11399              	.LBE3256:
- 11400              	.LBE3255:
- 11401              	.LBE3254:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11402              		.loc 2 1569 0
- 11403 9f42 660F7F85 		movdqa	%xmm0, -10240(%rbp)
- 11403      00D8FFFF 
- 11404 9f4a 660F6F85 		movdqa	-10240(%rbp), %xmm0
- 11404      00D8FFFF 
- 11405 9f52 660FEF85 		pxor	-8384(%rbp), %xmm0
- 11405      40DFFFFF 
- 11406 9f5a F30F7F85 		movdqu	%xmm0, -8384(%rbp)
- 11406      40DFFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11407              		.loc 2 1571 0
- 11408 9f62 F30F6F85 		movdqu	-8384(%rbp), %xmm0
- 11408      40DFFFFF 
- 11409              	.LBE3241:
- 11410              	.LBE3240:
- 11411              		.loc 2 1926 0
- 11412 9f6a F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 11412      20DCFFFF 
- 11413 9f72 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 11413      20DCFFFF 
- 11414 9f7a F30F7F85 		movdqu	%xmm0, -8112(%rbp)
- 11414      50E0FFFF 
- 11415 9f82 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 11415      40DCFFFF 
- 11416 9f8a F30F7F85 		movdqu	%xmm0, -8128(%rbp)
- 11416      40E0FFFF 
- 11417              	.LBB3260:
- 11418              	.LBB3261:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 11419              		.loc 2 178 0
- 11420 9f92 F30F6F85 		movdqu	-8128(%rbp), %xmm0
- 11420      40E0FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 357
-
-
- 11421 9f9a F30F6F8D 		movdqu	-8112(%rbp), %xmm1
- 11421      50E0FFFF 
- 11422 9fa2 660FEFC1 		pxor	%xmm1, %xmm0
- 11423              	.LBE3261:
- 11424              	.LBE3260:
- 11425              		.loc 2 1926 0
- 11426 9fa6 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 11426      20DCFFFF 
- 11427 9fae 488B8598 		movq	-9832(%rbp), %rax
- 11427      D9FFFF
- 11428 9fb5 4883C020 		addq	$32, %rax
- 11429 9fb9 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 11429      20DCFFFF 
- 11430 9fc1 F30F7F00 		movdqu	%xmm0, (%rax)
- 11431 9fc5 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 11431      20DCFFFF 
- 11432 9fcd F30F7F85 		movdqu	%xmm0, -8096(%rbp)
- 11432      60E0FFFF 
- 11433              	.LBB3262:
- 11434              	.LBB3263:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 11435              		.loc 2 1656 0
- 11436 9fd5 F30F6F85 		movdqu	-8096(%rbp), %xmm0
- 11436      60E0FFFF 
- 11437 9fdd F30F7F85 		movdqu	%xmm0, -9744(%rbp)
- 11437      F0D9FFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 11438              		.loc 2 1657 0
- 11439 9fe5 8B85FCD9 		movl	-9732(%rbp), %eax
- 11439      FFFF
- 11440 9feb 898578E0 		movl	%eax, -8072(%rbp)
- 11440      FFFF
- 11441              	.LBB3264:
- 11442              	.LBB3265:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 11443              		.loc 2 740 0
- 11444 9ff1 8B8578E0 		movl	-8072(%rbp), %eax
- 11444      FFFF
- 11445 9ff7 8985E0D9 		movl	%eax, -9760(%rbp)
- 11445      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 11446              		.loc 2 741 0
- 11447 9ffd C7857CE0 		movl	$0, -8068(%rbp)
- 11447      FFFF0000 
- 11447      0000
- 11448 a007 EB36     		jmp	.L166
- 11449              	.L167:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 11450              		.loc 2 742 0
- 11451 a009 8B8D7CE0 		movl	-8068(%rbp), %ecx
- 11451      FFFF
- 11452 a00f 8B857CE0 		movl	-8068(%rbp), %eax
- 11452      FFFF
- 11453 a015 89C0     		mov	%eax, %eax
- 11454 a017 0FB68405 		movzbl	-9760(%rbp,%rax), %eax
- 11454      E0D9FFFF 
- 11455 a01f 0FB6C0   		movzbl	%al, %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 358
-
-
- 11456 a022 89C2     		mov	%eax, %edx
- 11457 a024 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 11457      000000
- 11458 a02b 0FB61402 		movzbl	(%rdx,%rax), %edx
- 11459 a02f 89C8     		mov	%ecx, %eax
- 11460 a031 889405E0 		movb	%dl, -9760(%rbp,%rax)
- 11460      D9FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 11461              		.loc 2 741 0
- 11462 a038 83857CE0 		addl	$1, -8068(%rbp)
- 11462      FFFF01
- 11463              	.L166:
- 11464 a03f 83BD7CE0 		cmpl	$3, -8068(%rbp)
- 11464      FFFF03
- 11465 a046 76C1     		jbe	.L167
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 11466              		.loc 2 743 0
- 11467 a048 8B85E0D9 		movl	-9760(%rbp), %eax
- 11467      FFFF
- 11468              	.LBE3265:
- 11469              	.LBE3264:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 11470              		.loc 2 1657 0
- 11471 a04e 898574E0 		movl	%eax, -8076(%rbp)
- 11471      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 11472              		.loc 2 1659 0
- 11473 a054 8B8574E0 		movl	-8076(%rbp), %eax
- 11473      FFFF
- 11474 a05a 8985FCD9 		movl	%eax, -9732(%rbp)
- 11474      FFFF
- 11475 a060 8B85FCD9 		movl	-9732(%rbp), %eax
- 11475      FFFF
- 11476 a066 8985F8D9 		movl	%eax, -9736(%rbp)
- 11476      FFFF
- 11477 a06c 8B85F8D9 		movl	-9736(%rbp), %eax
- 11477      FFFF
- 11478 a072 8985F4D9 		movl	%eax, -9740(%rbp)
- 11478      FFFF
- 11479 a078 8B85F4D9 		movl	-9740(%rbp), %eax
- 11479      FFFF
- 11480 a07e 8985F0D9 		movl	%eax, -9744(%rbp)
- 11480      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 11481              		.loc 2 1660 0
- 11482 a084 F30F6F85 		movdqu	-9744(%rbp), %xmm0
- 11482      F0D9FFFF 
- 11483              	.LBE3263:
- 11484              	.LBE3262:
-1927:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(3);         /* k12 : k13 : k14 : k15 */
- 11485              		.loc 2 1927 0
- 11486 a08c F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 11486      40DCFFFF 
- 11487 a094 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 11487      30DCFFFF 
- 11488 a09c F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 11488      80E0FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 359
-
-
- 11489              	.LBB3266:
- 11490              	.LBB3267:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 11491              		.loc 2 1565 0
- 11492 a0a4 F30F6F85 		movdqu	-8064(%rbp), %xmm0
- 11492      80E0FFFF 
- 11493 a0ac 660F7F85 		movdqa	%xmm0, -10224(%rbp)
- 11493      10D8FFFF 
- 11494 a0b4 660F6F85 		movdqa	-10224(%rbp), %xmm0
- 11494      10D8FFFF 
- 11495 a0bc F30F7F85 		movdqu	%xmm0, -8048(%rbp)
- 11495      90E0FFFF 
- 11496              	.LBB3268:
- 11497              	.LBB3269:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 11498              		.loc 2 1278 0
- 11499 a0c4 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 11499      00000000 
- 11500 a0cc F30F6F8D 		movdqu	-8048(%rbp), %xmm1
- 11500      90E0FFFF 
- 11501 a0d4 F30F7F8D 		movdqu	%xmm1, -8016(%rbp)
- 11501      B0E0FFFF 
- 11502 a0dc F30F7F85 		movdqu	%xmm0, -8032(%rbp)
- 11502      A0E0FFFF 
- 11503 a0e4 F30F6F85 		movdqu	-8016(%rbp), %xmm0
- 11503      B0E0FFFF 
- 11504 a0ec F30F7F85 		movdqu	%xmm0, -7984(%rbp)
- 11504      D0E0FFFF 
- 11505 a0f4 F30F6F85 		movdqu	-8032(%rbp), %xmm0
- 11505      A0E0FFFF 
- 11506 a0fc F30F7F85 		movdqu	%xmm0, -8000(%rbp)
- 11506      C0E0FFFF 
- 11507              	.LBB3270:
- 11508              	.LBB3271:
- 11509              	.LBB3272:
- 11510              	.LBB3273:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11511              		.loc 3 529 0
- 11512 a104 F30F6F8D 		movdqu	-8000(%rbp), %xmm1
- 11512      C0E0FFFF 
- 11513 a10c F30F6F85 		movdqu	-7984(%rbp), %xmm0
- 11513      D0E0FFFF 
- 11514 a114 660F3800 		pshufb	%xmm1, %xmm0
- 11514      C1
- 11515              	.LBE3273:
- 11516              	.LBE3272:
- 11517              	.LBE3271:
- 11518              	.LBE3270:
- 11519              	.LBE3269:
- 11520              	.LBE3268:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11521              		.loc 2 1567 0
- 11522 a119 660F7F85 		movdqa	%xmm0, -10224(%rbp)
- 11522      10D8FFFF 
- 11523 a121 660F6F85 		movdqa	-10224(%rbp), %xmm0
- 11523      10D8FFFF 
- 11524 a129 660FEF85 		pxor	-8064(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 360
-
-
- 11524      80E0FFFF 
- 11525 a131 F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 11525      80E0FFFF 
- 11526 a139 660F6F85 		movdqa	-10224(%rbp), %xmm0
- 11526      10D8FFFF 
- 11527 a141 F30F7F85 		movdqu	%xmm0, -7968(%rbp)
- 11527      E0E0FFFF 
- 11528              	.LBB3274:
- 11529              	.LBB3275:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 11530              		.loc 2 1278 0
- 11531 a149 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 11531      00000000 
- 11532 a151 F30F6F8D 		movdqu	-7968(%rbp), %xmm1
- 11532      E0E0FFFF 
- 11533 a159 F30F7F8D 		movdqu	%xmm1, -7936(%rbp)
- 11533      00E1FFFF 
- 11534 a161 F30F7F85 		movdqu	%xmm0, -7952(%rbp)
- 11534      F0E0FFFF 
- 11535 a169 F30F6F85 		movdqu	-7936(%rbp), %xmm0
- 11535      00E1FFFF 
- 11536 a171 F30F7F85 		movdqu	%xmm0, -7904(%rbp)
- 11536      20E1FFFF 
- 11537 a179 F30F6F85 		movdqu	-7952(%rbp), %xmm0
- 11537      F0E0FFFF 
- 11538 a181 F30F7F85 		movdqu	%xmm0, -7920(%rbp)
- 11538      10E1FFFF 
- 11539              	.LBB3276:
- 11540              	.LBB3277:
- 11541              	.LBB3278:
- 11542              	.LBB3279:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11543              		.loc 3 529 0
- 11544 a189 F30F6F8D 		movdqu	-7920(%rbp), %xmm1
- 11544      10E1FFFF 
- 11545 a191 F30F6F85 		movdqu	-7904(%rbp), %xmm0
- 11545      20E1FFFF 
- 11546 a199 660F3800 		pshufb	%xmm1, %xmm0
- 11546      C1
- 11547              	.LBE3279:
- 11548              	.LBE3278:
- 11549              	.LBE3277:
- 11550              	.LBE3276:
- 11551              	.LBE3275:
- 11552              	.LBE3274:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11553              		.loc 2 1568 0
- 11554 a19e 660F7F85 		movdqa	%xmm0, -10224(%rbp)
- 11554      10D8FFFF 
- 11555 a1a6 660F6F85 		movdqa	-10224(%rbp), %xmm0
- 11555      10D8FFFF 
- 11556 a1ae 660FEF85 		pxor	-8064(%rbp), %xmm0
- 11556      80E0FFFF 
- 11557 a1b6 F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 11557      80E0FFFF 
- 11558 a1be 660F6F85 		movdqa	-10224(%rbp), %xmm0
- 11558      10D8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 361
-
-
- 11559 a1c6 F30F7F85 		movdqu	%xmm0, -7888(%rbp)
- 11559      30E1FFFF 
- 11560              	.LBB3280:
- 11561              	.LBB3281:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 11562              		.loc 2 1278 0
- 11563 a1ce 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 11563      00000000 
- 11564 a1d6 F30F6F8D 		movdqu	-7888(%rbp), %xmm1
- 11564      30E1FFFF 
- 11565 a1de F30F7F8D 		movdqu	%xmm1, -7856(%rbp)
- 11565      50E1FFFF 
- 11566 a1e6 F30F7F85 		movdqu	%xmm0, -7872(%rbp)
- 11566      40E1FFFF 
- 11567 a1ee F30F6F85 		movdqu	-7856(%rbp), %xmm0
- 11567      50E1FFFF 
- 11568 a1f6 F30F7F85 		movdqu	%xmm0, -7824(%rbp)
- 11568      70E1FFFF 
- 11569 a1fe F30F6F85 		movdqu	-7872(%rbp), %xmm0
- 11569      40E1FFFF 
- 11570 a206 F30F7F85 		movdqu	%xmm0, -7840(%rbp)
- 11570      60E1FFFF 
- 11571              	.LBB3282:
- 11572              	.LBB3283:
- 11573              	.LBB3284:
- 11574              	.LBB3285:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11575              		.loc 3 529 0
- 11576 a20e F30F6F8D 		movdqu	-7840(%rbp), %xmm1
- 11576      60E1FFFF 
- 11577 a216 F30F6F85 		movdqu	-7824(%rbp), %xmm0
- 11577      70E1FFFF 
- 11578 a21e 660F3800 		pshufb	%xmm1, %xmm0
- 11578      C1
- 11579              	.LBE3285:
- 11580              	.LBE3284:
- 11581              	.LBE3283:
- 11582              	.LBE3282:
- 11583              	.LBE3281:
- 11584              	.LBE3280:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 11585              		.loc 2 1569 0
- 11586 a223 660F7F85 		movdqa	%xmm0, -10224(%rbp)
- 11586      10D8FFFF 
- 11587 a22b 660F6F85 		movdqa	-10224(%rbp), %xmm0
- 11587      10D8FFFF 
- 11588 a233 660FEF85 		pxor	-8064(%rbp), %xmm0
- 11588      80E0FFFF 
- 11589 a23b F30F7F85 		movdqu	%xmm0, -8064(%rbp)
- 11589      80E0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11590              		.loc 2 1571 0
- 11591 a243 F30F6F85 		movdqu	-8064(%rbp), %xmm0
- 11591      80E0FFFF 
- 11592              	.LBE3267:
- 11593              	.LBE3266:
- 11594              		.loc 2 1927 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 362
-
-
- 11595 a24b F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 11595      30DCFFFF 
- 11596 a253 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 11596      30DCFFFF 
- 11597 a25b F30F7F85 		movdqu	%xmm0, -7792(%rbp)
- 11597      90E1FFFF 
- 11598 a263 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 11598      40DCFFFF 
- 11599 a26b F30F7F85 		movdqu	%xmm0, -7808(%rbp)
- 11599      80E1FFFF 
- 11600              	.LBB3286:
- 11601              	.LBB3287:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 11602              		.loc 2 178 0
- 11603 a273 F30F6F85 		movdqu	-7808(%rbp), %xmm0
- 11603      80E1FFFF 
- 11604 a27b F30F6F8D 		movdqu	-7792(%rbp), %xmm1
- 11604      90E1FFFF 
- 11605 a283 660FEFC1 		pxor	%xmm1, %xmm0
- 11606              	.LBE3287:
- 11607              	.LBE3286:
- 11608              		.loc 2 1927 0
- 11609 a287 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 11609      30DCFFFF 
- 11610 a28f 488B8598 		movq	-9832(%rbp), %rax
- 11610      D9FFFF
- 11611 a296 4883C030 		addq	$48, %rax
- 11612 a29a F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 11612      30DCFFFF 
- 11613 a2a2 F30F7F00 		movdqu	%xmm0, (%rax)
- 11614 a2a6 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 11614      30DCFFFF 
- 11615 a2ae F30F7F85 		movdqu	%xmm0, -7760(%rbp)
- 11615      B0E1FFFF 
- 11616              	.LBB3288:
- 11617              	.LBB3289:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 11618              		.loc 2 1681 0
- 11619 a2b6 B8020000 		movl	$2, %eax
- 11619      00
- 11620 a2bb 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 11620      00000000 
- 11621 a2c3 F30F7F85 		movdqu	%xmm0, -7728(%rbp)
- 11621      D0E1FFFF 
- 11622 a2cb 8985CCE1 		movl	%eax, -7732(%rbp)
- 11622      FFFF
- 11623 a2d1 F30F6F85 		movdqu	-7728(%rbp), %xmm0
- 11623      D0E1FFFF 
- 11624 a2d9 F30F7F85 		movdqu	%xmm0, -7696(%rbp)
- 11624      F0E1FFFF 
- 11625 a2e1 8B85CCE1 		movl	-7732(%rbp), %eax
- 11625      FFFF
- 11626 a2e7 8985ECE1 		movl	%eax, -7700(%rbp)
- 11626      FFFF
- 11627              	.LBB3290:
- 11628              	.LBB3291:
- 11629              	.LBB3292:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 363
-
-
- 11630              	.LBB3293:
- 11631              		.loc 3 598 0
- 11632 a2ed 8B85ECE1 		movl	-7700(%rbp), %eax
- 11632      FFFF
- 11633 a2f3 F30F6F85 		movdqu	-7696(%rbp), %xmm0
- 11633      F0E1FFFF 
- 11634 a2fb 660F3A22 		pinsrd	$3, %eax, %xmm0
- 11634      C003
- 11635              	.LBE3293:
- 11636              	.LBE3292:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 11637              		.loc 2 519 0
- 11638 a301 F30F7F85 		movdqu	%xmm0, -7728(%rbp)
- 11638      D0E1FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11639              		.loc 2 526 0
- 11640 a309 F30F6F85 		movdqu	-7728(%rbp), %xmm0
- 11640      D0E1FFFF 
- 11641              	.LBE3291:
- 11642              	.LBE3290:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 11643              		.loc 2 1681 0
- 11644 a311 660F7F85 		movdqa	%xmm0, -10192(%rbp)
- 11644      30D8FFFF 
- 11645 a319 F30F6F85 		movdqu	-7760(%rbp), %xmm0
- 11645      B0E1FFFF 
- 11646 a321 F30F7F85 		movdqu	%xmm0, -7680(%rbp)
- 11646      00E2FFFF 
- 11647 a329 F30F6F85 		movdqu	-7680(%rbp), %xmm0
- 11647      00E2FFFF 
- 11648 a331 F30F7F85 		movdqu	%xmm0, -7648(%rbp)
- 11648      20E2FFFF 
- 11649 a339 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 11649      000000
- 11650 a340 48898518 		movq	%rax, -7656(%rbp)
- 11650      E2FFFF
- 11651              	.LBB3294:
- 11652              	.LBB3295:
- 11653              	.LBB3296:
- 11654              	.LBB3297:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 11655              		.loc 2 851 0
- 11656 a347 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 11656      00000000 
- 11657 a34f F30F7F85 		movdqu	%xmm0, -7616(%rbp)
- 11657      40E2FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 11658              		.loc 2 854 0
- 11659 a357 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 11659      00000000 
- 11660 a35f F30F6F8D 		movdqu	-7648(%rbp), %xmm1
- 11660      20E2FFFF 
- 11661 a367 F30F7F8D 		movdqu	%xmm1, -7536(%rbp)
- 11661      90E2FFFF 
- 11662 a36f F30F7F85 		movdqu	%xmm0, -7552(%rbp)
- 11662      80E2FFFF 
- 11663              	.LBB3298:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 364
-
-
- 11664              	.LBB3299:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 11665              		.loc 2 206 0
- 11666 a377 F30F6F85 		movdqu	-7552(%rbp), %xmm0
- 11666      80E2FFFF 
- 11667 a37f F30F6F8D 		movdqu	-7536(%rbp), %xmm1
- 11667      90E2FFFF 
- 11668 a387 660FDBC1 		pand	%xmm1, %xmm0
- 11669              	.LBE3299:
- 11670              	.LBE3298:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 11671              		.loc 2 854 0
- 11672 a38b F30F7F85 		movdqu	%xmm0, -7568(%rbp)
- 11672      70E2FFFF 
- 11673 a393 F30F6F85 		movdqu	-7648(%rbp), %xmm0
- 11673      20E2FFFF 
- 11674 a39b F30F7F85 		movdqu	%xmm0, -7504(%rbp)
- 11674      B0E2FFFF 
- 11675              	.LBB3300:
- 11676              	.LBB3301:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 11677              		.loc 3 433 0
- 11678 a3a3 F30F6F85 		movdqu	-7504(%rbp), %xmm0
- 11678      B0E2FFFF 
- 11679 a3ab 660F72D0 		psrld	$4, %xmm0
- 11679      04
- 11680              	.LBE3301:
- 11681              	.LBE3300:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 11682              		.loc 2 857 0
- 11683 a3b0 F30F7F85 		movdqu	%xmm0, -7584(%rbp)
- 11683      60E2FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11684              		.loc 2 859 0
- 11685 a3b8 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 11685      00000000 
- 11686 a3c0 F30F6F8D 		movdqu	-7584(%rbp), %xmm1
- 11686      60E2FFFF 
- 11687 a3c8 F30F7F8D 		movdqu	%xmm1, -7472(%rbp)
- 11687      D0E2FFFF 
- 11688 a3d0 F30F7F85 		movdqu	%xmm0, -7488(%rbp)
- 11688      C0E2FFFF 
- 11689              	.LBB3302:
- 11690              	.LBB3303:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 11691              		.loc 2 206 0
- 11692 a3d8 F30F6F85 		movdqu	-7488(%rbp), %xmm0
- 11692      C0E2FFFF 
- 11693 a3e0 F30F6F8D 		movdqu	-7472(%rbp), %xmm1
- 11693      D0E2FFFF 
- 11694 a3e8 660FDBC1 		pand	%xmm1, %xmm0
- 11695              	.LBE3303:
- 11696              	.LBE3302:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11697              		.loc 2 859 0
- 11698 a3ec F30F7F85 		movdqu	%xmm0, -7584(%rbp)
- 11698      60E2FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 365
-
-
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 11699              		.loc 2 866 0
- 11700 a3f4 C7853CE2 		movl	$0, -7620(%rbp)
- 11700      FFFF0000 
- 11700      0000
- 11701 a3fe E9BE0100 		jmp	.L168
- 11701      00
- 11702              	.L169:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 11703              		.loc 2 868 0
- 11704 a403 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 11704      00000000 
- 11705 a40b F30F7F85 		movdqu	%xmm0, -7440(%rbp)
- 11705      F0E2FFFF 
- 11706 a413 F30F6F85 		movdqu	-7584(%rbp), %xmm0
- 11706      60E2FFFF 
- 11707 a41b F30F7F85 		movdqu	%xmm0, -7456(%rbp)
- 11707      E0E2FFFF 
- 11708 a423 F30F6F85 		movdqu	-7440(%rbp), %xmm0
- 11708      F0E2FFFF 
- 11709 a42b F30F7F85 		movdqu	%xmm0, -7408(%rbp)
- 11709      10E3FFFF 
- 11710 a433 F30F6F85 		movdqu	-7456(%rbp), %xmm0
- 11710      E0E2FFFF 
- 11711 a43b F30F7F85 		movdqu	%xmm0, -7424(%rbp)
- 11711      00E3FFFF 
- 11712              	.LBB3304:
- 11713              	.LBB3305:
- 11714              	.LBB3306:
- 11715              	.LBB3307:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11716              		.loc 3 529 0
- 11717 a443 F30F6F8D 		movdqu	-7424(%rbp), %xmm1
- 11717      00E3FFFF 
- 11718 a44b F30F6F85 		movdqu	-7408(%rbp), %xmm0
- 11718      10E3FFFF 
- 11719 a453 660F3800 		pshufb	%xmm1, %xmm0
- 11719      C1
- 11720              	.LBE3307:
- 11721              	.LBE3306:
- 11722              	.LBE3305:
- 11723              	.LBE3304:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 11724              		.loc 2 868 0
- 11725 a458 F30F7F85 		movdqu	%xmm0, -7600(%rbp)
- 11725      50E2FFFF 
- 11726 a460 F30F6F85 		movdqu	-7568(%rbp), %xmm0
- 11726      70E2FFFF 
- 11727 a468 F30F7F85 		movdqu	%xmm0, -7376(%rbp)
- 11727      30E3FFFF 
- 11728 a470 F30F6F85 		movdqu	-7600(%rbp), %xmm0
- 11728      50E2FFFF 
- 11729 a478 F30F7F85 		movdqu	%xmm0, -7392(%rbp)
- 11729      20E3FFFF 
- 11730              	.LBB3308:
- 11731              	.LBB3309:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 366
-
-
- 11732              		.loc 2 234 0
- 11733 a480 F30F6F85 		movdqu	-7392(%rbp), %xmm0
- 11733      20E3FFFF 
- 11734 a488 F30F6F8D 		movdqu	-7376(%rbp), %xmm1
- 11734      30E3FFFF 
- 11735 a490 660FEBC1 		por	%xmm1, %xmm0
- 11736              	.LBE3309:
- 11737              	.LBE3308:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 11738              		.loc 2 870 0
- 11739 a494 F30F7F85 		movdqu	%xmm0, -7600(%rbp)
- 11739      50E2FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 11740              		.loc 2 872 0
- 11741 a49c 8B853CE2 		mov	-7620(%rbp), %eax
- 11741      FFFF
- 11742 a4a2 48C1E004 		salq	$4, %rax
- 11743 a4a6 48038518 		addq	-7656(%rbp), %rax
- 11743      E2FFFF
- 11744 a4ad 660F6F00 		movdqa	(%rax), %xmm0
- 11745 a4b1 F30F7F85 		movdqu	%xmm0, -7344(%rbp)
- 11745      50E3FFFF 
- 11746 a4b9 F30F6F85 		movdqu	-7600(%rbp), %xmm0
- 11746      50E2FFFF 
- 11747 a4c1 F30F7F85 		movdqu	%xmm0, -7360(%rbp)
- 11747      40E3FFFF 
- 11748 a4c9 F30F6F85 		movdqu	-7344(%rbp), %xmm0
- 11748      50E3FFFF 
- 11749 a4d1 F30F7F85 		movdqu	%xmm0, -7312(%rbp)
- 11749      70E3FFFF 
- 11750 a4d9 F30F6F85 		movdqu	-7360(%rbp), %xmm0
- 11750      40E3FFFF 
- 11751 a4e1 F30F7F85 		movdqu	%xmm0, -7328(%rbp)
- 11751      60E3FFFF 
- 11752              	.LBB3310:
- 11753              	.LBB3311:
- 11754              	.LBB3312:
- 11755              	.LBB3313:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11756              		.loc 3 529 0
- 11757 a4e9 F30F6F8D 		movdqu	-7328(%rbp), %xmm1
- 11757      60E3FFFF 
- 11758 a4f1 F30F6F85 		movdqu	-7312(%rbp), %xmm0
- 11758      70E3FFFF 
- 11759 a4f9 660F3800 		pshufb	%xmm1, %xmm0
- 11759      C1
- 11760              	.LBE3313:
- 11761              	.LBE3312:
- 11762              	.LBE3311:
- 11763              	.LBE3310:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 11764              		.loc 2 872 0
- 11765 a4fe F30F7F85 		movdqu	%xmm0, -7600(%rbp)
- 11765      50E2FFFF 
- 11766 a506 F30F6F85 		movdqu	-7616(%rbp), %xmm0
- 11766      40E2FFFF 
- 11767 a50e F30F7F85 		movdqu	%xmm0, -7280(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 367
-
-
- 11767      90E3FFFF 
- 11768 a516 F30F6F85 		movdqu	-7600(%rbp), %xmm0
- 11768      50E2FFFF 
- 11769 a51e F30F7F85 		movdqu	%xmm0, -7296(%rbp)
- 11769      80E3FFFF 
- 11770              	.LBB3314:
- 11771              	.LBB3315:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 11772              		.loc 2 234 0
- 11773 a526 F30F6F85 		movdqu	-7296(%rbp), %xmm0
- 11773      80E3FFFF 
- 11774 a52e F30F6F8D 		movdqu	-7280(%rbp), %xmm1
- 11774      90E3FFFF 
- 11775 a536 660FEBC1 		por	%xmm1, %xmm0
- 11776              	.LBE3315:
- 11777              	.LBE3314:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 11778              		.loc 2 874 0
- 11779 a53a F30F7F85 		movdqu	%xmm0, -7616(%rbp)
- 11779      40E2FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 11780              		.loc 2 876 0
- 11781 a542 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 11781      00000000 
- 11782 a54a F30F6F8D 		movdqu	-7584(%rbp), %xmm1
- 11782      60E2FFFF 
- 11783 a552 F30F7F8D 		movdqu	%xmm1, -7248(%rbp)
- 11783      B0E3FFFF 
- 11784 a55a F30F7F85 		movdqu	%xmm0, -7264(%rbp)
- 11784      A0E3FFFF 
- 11785              	.LBB3316:
- 11786              	.LBB3317:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 11787              		.loc 2 290 0
- 11788 a562 F30F6F8D 		movdqu	-7264(%rbp), %xmm1
- 11788      A0E3FFFF 
- 11789 a56a F30F6F85 		movdqu	-7248(%rbp), %xmm0
- 11789      B0E3FFFF 
- 11790 a572 660FF8C1 		psubb	%xmm1, %xmm0
- 11791              	.LBE3317:
- 11792              	.LBE3316:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 11793              		.loc 2 876 0
- 11794 a576 F30F7F85 		movdqu	%xmm0, -7584(%rbp)
- 11794      60E2FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11795              		.loc 2 878 0
- 11796 a57e 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 11796      00000000 
- 11797 a586 F30F6F8D 		movdqu	-7584(%rbp), %xmm1
- 11797      60E2FFFF 
- 11798 a58e F30F7F8D 		movdqu	%xmm1, -7216(%rbp)
- 11798      D0E3FFFF 
- 11799 a596 F30F7F85 		movdqu	%xmm0, -7232(%rbp)
- 11799      C0E3FFFF 
- 11800              	.LBB3318:
- 11801              	.LBB3319:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 368
-
-
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 11802              		.loc 2 206 0
- 11803 a59e F30F6F85 		movdqu	-7232(%rbp), %xmm0
- 11803      C0E3FFFF 
- 11804 a5a6 F30F6F8D 		movdqu	-7216(%rbp), %xmm1
- 11804      D0E3FFFF 
- 11805 a5ae 660FDBC1 		pand	%xmm1, %xmm0
- 11806              	.LBE3319:
- 11807              	.LBE3318:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 11808              		.loc 2 878 0
- 11809 a5b2 F30F7F85 		movdqu	%xmm0, -7584(%rbp)
- 11809      60E2FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 11810              		.loc 2 866 0
- 11811 a5ba 83853CE2 		addl	$1, -7620(%rbp)
- 11811      FFFF01
- 11812              	.L168:
- 11813 a5c1 83BD3CE2 		cmpl	$15, -7620(%rbp)
- 11813      FFFF0F
- 11814 a5c8 0F8635FE 		jbe	.L169
- 11814      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 11815              		.loc 2 882 0
- 11816 a5ce F30F6F85 		movdqu	-7616(%rbp), %xmm0
- 11816      40E2FFFF 
- 11817              	.LBE3297:
- 11818              	.LBE3296:
- 11819              	.LBE3295:
- 11820              	.LBE3294:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 11821              		.loc 2 1682 0
- 11822 a5d6 660F7F85 		movdqa	%xmm0, -10208(%rbp)
- 11822      20D8FFFF 
- 11823              	.LBB3320:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 11824              		.loc 2 1683 0
- 11825 a5de 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 11825      20D8FFFF 
- 11826 a5e6 F30F7F85 		movdqu	%xmm0, -9680(%rbp)
- 11826      30DAFFFF 
- 11827 a5ee E8000000 		call	KDbgWriterGet at PLT
- 11827      00
- 11828 a5f3 4885C0   		testq	%rax, %rax
- 11829 a5f6 7479     		je	.L171
- 11830 a5f8 BF010000 		movl	$1, %edi
- 11830      00
- 11831 a5fd E8000000 		call	KDbgCondToFlag at PLT
- 11831      00
- 11832 a602 4889C6   		movq	%rax, %rsi
- 11833 a605 BF100000 		movl	$16, %edi
- 11833      00
- 11834 a60a E8000000 		call	KDbgTestModConds at PLT
- 11834      00
- 11835 a60f 84C0     		testb	%al, %al
- 11836 a611 745E     		je	.L171
- 11837 a613 8B853CDA 		movl	-9668(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 369
-
-
- 11837      FFFF
- 11838 a619 89C7     		movl	%eax, %edi
- 11839 a61b E8E059FF 		call	bswap_32
- 11839      FF
- 11840 a620 4189C5   		movl	%eax, %r13d
- 11841 a623 8B8538DA 		movl	-9672(%rbp), %eax
- 11841      FFFF
- 11842 a629 89C7     		movl	%eax, %edi
- 11843 a62b E8D059FF 		call	bswap_32
- 11843      FF
- 11844 a630 4189C4   		movl	%eax, %r12d
- 11845 a633 8B8534DA 		movl	-9676(%rbp), %eax
- 11845      FFFF
- 11846 a639 89C7     		movl	%eax, %edi
- 11847 a63b E8C059FF 		call	bswap_32
- 11847      FF
- 11848 a640 89C3     		movl	%eax, %ebx
- 11849 a642 8B8530DA 		movl	-9680(%rbp), %eax
- 11849      FFFF
- 11850 a648 89C7     		movl	%eax, %edi
- 11851 a64a E8B159FF 		call	bswap_32
- 11851      FF
- 11852 a64f 4589E9   		movl	%r13d, %r9d
- 11853 a652 4589E0   		movl	%r12d, %r8d
- 11854 a655 89D9     		movl	%ebx, %ecx
- 11855 a657 89C2     		movl	%eax, %edx
- 11856 a659 488D3500 		leaq	.LC0(%rip), %rsi
- 11856      000000
- 11857 a660 488D3D00 		leaq	.LC1(%rip), %rdi
- 11857      000000
- 11858 a667 B8000000 		movl	$0, %eax
- 11858      00
- 11859 a66c E8000000 		call	KDbgMsg at PLT
- 11859      00
- 11860              	.L171:
- 11861 a671 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 11861      20D8FFFF 
- 11862 a679 F30F7F85 		movdqu	%xmm0, -7200(%rbp)
- 11862      E0E3FFFF 
- 11863              	.LBE3320:
- 11864              	.LBB3321:
- 11865              	.LBB3322:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 11866              		.loc 2 667 0
- 11867 a681 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 11867      00000000 
- 11868 a689 F30F6F8D 		movdqu	-7200(%rbp), %xmm1
- 11868      E0E3FFFF 
- 11869 a691 F30F7F8D 		movdqu	%xmm1, -7168(%rbp)
- 11869      00E4FFFF 
- 11870 a699 F30F7F85 		movdqu	%xmm0, -7184(%rbp)
- 11870      F0E3FFFF 
- 11871 a6a1 F30F6F85 		movdqu	-7168(%rbp), %xmm0
- 11871      00E4FFFF 
- 11872 a6a9 F30F7F85 		movdqu	%xmm0, -7136(%rbp)
- 11872      20E4FFFF 
- 11873 a6b1 F30F6F85 		movdqu	-7184(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 370
-
-
- 11873      F0E3FFFF 
- 11874 a6b9 F30F7F85 		movdqu	%xmm0, -7152(%rbp)
- 11874      10E4FFFF 
- 11875              	.LBB3323:
- 11876              	.LBB3324:
- 11877              	.LBB3325:
- 11878              	.LBB3326:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 11879              		.loc 3 529 0
- 11880 a6c1 F30F6F8D 		movdqu	-7152(%rbp), %xmm1
- 11880      10E4FFFF 
- 11881 a6c9 F30F6F85 		movdqu	-7136(%rbp), %xmm0
- 11881      20E4FFFF 
- 11882 a6d1 660F3800 		pshufb	%xmm1, %xmm0
- 11882      C1
- 11883              	.LBE3326:
- 11884              	.LBE3325:
- 11885              	.LBE3324:
- 11886              	.LBE3323:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 11887              		.loc 2 667 0
- 11888 a6d6 F30F7F85 		movdqu	%xmm0, -7200(%rbp)
- 11888      E0E3FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 11889              		.loc 2 668 0
- 11890 a6de F30F6F85 		movdqu	-7200(%rbp), %xmm0
- 11890      E0E3FFFF 
- 11891              	.LBE3322:
- 11892              	.LBE3321:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 11893              		.loc 2 1684 0
- 11894 a6e6 660F7F85 		movdqa	%xmm0, -10208(%rbp)
- 11894      20D8FFFF 
- 11895              	.LBB3327:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 11896              		.loc 2 1685 0
- 11897 a6ee 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 11897      20D8FFFF 
- 11898 a6f6 F30F7F85 		movdqu	%xmm0, -9696(%rbp)
- 11898      20DAFFFF 
- 11899 a6fe E8000000 		call	KDbgWriterGet at PLT
- 11899      00
- 11900 a703 4885C0   		testq	%rax, %rax
- 11901 a706 7479     		je	.L173
- 11902 a708 BF010000 		movl	$1, %edi
- 11902      00
- 11903 a70d E8000000 		call	KDbgCondToFlag at PLT
- 11903      00
- 11904 a712 4889C6   		movq	%rax, %rsi
- 11905 a715 BF100000 		movl	$16, %edi
- 11905      00
- 11906 a71a E8000000 		call	KDbgTestModConds at PLT
- 11906      00
- 11907 a71f 84C0     		testb	%al, %al
- 11908 a721 745E     		je	.L173
- 11909 a723 8B852CDA 		movl	-9684(%rbp), %eax
- 11909      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 371
-
-
- 11910 a729 89C7     		movl	%eax, %edi
- 11911 a72b E8D058FF 		call	bswap_32
- 11911      FF
- 11912 a730 4189C5   		movl	%eax, %r13d
- 11913 a733 8B8528DA 		movl	-9688(%rbp), %eax
- 11913      FFFF
- 11914 a739 89C7     		movl	%eax, %edi
- 11915 a73b E8C058FF 		call	bswap_32
- 11915      FF
- 11916 a740 4189C4   		movl	%eax, %r12d
- 11917 a743 8B8524DA 		movl	-9692(%rbp), %eax
- 11917      FFFF
- 11918 a749 89C7     		movl	%eax, %edi
- 11919 a74b E8B058FF 		call	bswap_32
- 11919      FF
- 11920 a750 89C3     		movl	%eax, %ebx
- 11921 a752 8B8520DA 		movl	-9696(%rbp), %eax
- 11921      FFFF
- 11922 a758 89C7     		movl	%eax, %edi
- 11923 a75a E8A158FF 		call	bswap_32
- 11923      FF
- 11924 a75f 4589E9   		movl	%r13d, %r9d
- 11925 a762 4589E0   		movl	%r12d, %r8d
- 11926 a765 89D9     		movl	%ebx, %ecx
- 11927 a767 89C2     		movl	%eax, %edx
- 11928 a769 488D3500 		leaq	.LC2(%rip), %rsi
- 11928      000000
- 11929 a770 488D3D00 		leaq	.LC1(%rip), %rdi
- 11929      000000
- 11930 a777 B8000000 		movl	$0, %eax
- 11930      00
- 11931 a77c E8000000 		call	KDbgMsg at PLT
- 11931      00
- 11932              	.L173:
- 11933 a781 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 11933      20D8FFFF 
- 11934 a789 F30F7F85 		movdqu	%xmm0, -7104(%rbp)
- 11934      40E4FFFF 
- 11935 a791 660F6F85 		movdqa	-10192(%rbp), %xmm0
- 11935      30D8FFFF 
- 11936 a799 F30F7F85 		movdqu	%xmm0, -7120(%rbp)
- 11936      30E4FFFF 
- 11937              	.LBE3327:
- 11938              	.LBB3328:
- 11939              	.LBB3329:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 11940              		.loc 2 178 0
- 11941 a7a1 F30F6F85 		movdqu	-7120(%rbp), %xmm0
- 11941      30E4FFFF 
- 11942 a7a9 F30F6F8D 		movdqu	-7104(%rbp), %xmm1
- 11942      40E4FFFF 
- 11943 a7b1 660FEFC1 		pxor	%xmm1, %xmm0
- 11944              	.LBE3329:
- 11945              	.LBE3328:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 11946              		.loc 2 1686 0
- 11947 a7b5 660F7F85 		movdqa	%xmm0, -10208(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 372
-
-
- 11947      20D8FFFF 
- 11948              	.LBB3330:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 11949              		.loc 2 1687 0
- 11950 a7bd 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 11950      20D8FFFF 
- 11951 a7c5 F30F7F85 		movdqu	%xmm0, -9712(%rbp)
- 11951      10DAFFFF 
- 11952 a7cd E8000000 		call	KDbgWriterGet at PLT
- 11952      00
- 11953 a7d2 4885C0   		testq	%rax, %rax
- 11954 a7d5 7479     		je	.L175
- 11955 a7d7 BF010000 		movl	$1, %edi
- 11955      00
- 11956 a7dc E8000000 		call	KDbgCondToFlag at PLT
- 11956      00
- 11957 a7e1 4889C6   		movq	%rax, %rsi
- 11958 a7e4 BF100000 		movl	$16, %edi
- 11958      00
- 11959 a7e9 E8000000 		call	KDbgTestModConds at PLT
- 11959      00
- 11960 a7ee 84C0     		testb	%al, %al
- 11961 a7f0 745E     		je	.L175
- 11962 a7f2 8B851CDA 		movl	-9700(%rbp), %eax
- 11962      FFFF
- 11963 a7f8 89C7     		movl	%eax, %edi
- 11964 a7fa E80158FF 		call	bswap_32
- 11964      FF
- 11965 a7ff 4189C5   		movl	%eax, %r13d
- 11966 a802 8B8518DA 		movl	-9704(%rbp), %eax
- 11966      FFFF
- 11967 a808 89C7     		movl	%eax, %edi
- 11968 a80a E8F157FF 		call	bswap_32
- 11968      FF
- 11969 a80f 4189C4   		movl	%eax, %r12d
- 11970 a812 8B8514DA 		movl	-9708(%rbp), %eax
- 11970      FFFF
- 11971 a818 89C7     		movl	%eax, %edi
- 11972 a81a E8E157FF 		call	bswap_32
- 11972      FF
- 11973 a81f 89C3     		movl	%eax, %ebx
- 11974 a821 8B8510DA 		movl	-9712(%rbp), %eax
- 11974      FFFF
- 11975 a827 89C7     		movl	%eax, %edi
- 11976 a829 E8D257FF 		call	bswap_32
- 11976      FF
- 11977 a82e 4589E9   		movl	%r13d, %r9d
- 11978 a831 4589E0   		movl	%r12d, %r8d
- 11979 a834 89D9     		movl	%ebx, %ecx
- 11980 a836 89C2     		movl	%eax, %edx
- 11981 a838 488D3500 		leaq	.LC3(%rip), %rsi
- 11981      000000
- 11982 a83f 488D3D00 		leaq	.LC1(%rip), %rdi
- 11982      000000
- 11983 a846 B8000000 		movl	$0, %eax
- 11983      00
- 11984 a84b E8000000 		call	KDbgMsg at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 373
-
-
- 11984      00
- 11985              	.L175:
- 11986 a850 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 11986      20D8FFFF 
- 11987 a858 F30F7F85 		movdqu	%xmm0, -7088(%rbp)
- 11987      50E4FFFF 
- 11988 a860 F30F6F85 		movdqu	-7088(%rbp), %xmm0
- 11988      50E4FFFF 
- 11989 a868 F30F7F85 		movdqu	%xmm0, -7056(%rbp)
- 11989      70E4FFFF 
- 11990              	.LBE3330:
- 11991              	.LBB3331:
- 11992              	.LBB3332:
- 11993              	.LBB3333:
- 11994              	.LBB3334:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 11995              		.loc 3 450 0
- 11996 a870 F30F6F85 		movdqu	-7056(%rbp), %xmm0
- 11996      70E4FFFF 
- 11997 a878 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 11997      FF
- 11998              	.LBE3334:
- 11999              	.LBE3333:
- 12000              	.LBE3332:
- 12001              	.LBE3331:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 12002              		.loc 2 1688 0
- 12003 a87d 660F7F85 		movdqa	%xmm0, -10208(%rbp)
- 12003      20D8FFFF 
- 12004              	.LBB3335:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 12005              		.loc 2 1689 0
- 12006 a885 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 12006      20D8FFFF 
- 12007 a88d F30F7F85 		movdqu	%xmm0, -9728(%rbp)
- 12007      00DAFFFF 
- 12008 a895 E8000000 		call	KDbgWriterGet at PLT
- 12008      00
- 12009 a89a 4885C0   		testq	%rax, %rax
- 12010 a89d 7479     		je	.L177
- 12011 a89f BF010000 		movl	$1, %edi
- 12011      00
- 12012 a8a4 E8000000 		call	KDbgCondToFlag at PLT
- 12012      00
- 12013 a8a9 4889C6   		movq	%rax, %rsi
- 12014 a8ac BF100000 		movl	$16, %edi
- 12014      00
- 12015 a8b1 E8000000 		call	KDbgTestModConds at PLT
- 12015      00
- 12016 a8b6 84C0     		testb	%al, %al
- 12017 a8b8 745E     		je	.L177
- 12018 a8ba 8B850CDA 		movl	-9716(%rbp), %eax
- 12018      FFFF
- 12019 a8c0 89C7     		movl	%eax, %edi
- 12020 a8c2 E83957FF 		call	bswap_32
- 12020      FF
- 12021 a8c7 4189C5   		movl	%eax, %r13d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 374
-
-
- 12022 a8ca 8B8508DA 		movl	-9720(%rbp), %eax
- 12022      FFFF
- 12023 a8d0 89C7     		movl	%eax, %edi
- 12024 a8d2 E82957FF 		call	bswap_32
- 12024      FF
- 12025 a8d7 4189C4   		movl	%eax, %r12d
- 12026 a8da 8B8504DA 		movl	-9724(%rbp), %eax
- 12026      FFFF
- 12027 a8e0 89C7     		movl	%eax, %edi
- 12028 a8e2 E81957FF 		call	bswap_32
- 12028      FF
- 12029 a8e7 89C3     		movl	%eax, %ebx
- 12030 a8e9 8B8500DA 		movl	-9728(%rbp), %eax
- 12030      FFFF
- 12031 a8ef 89C7     		movl	%eax, %edi
- 12032 a8f1 E80A57FF 		call	bswap_32
- 12032      FF
- 12033 a8f6 4589E9   		movl	%r13d, %r9d
- 12034 a8f9 4589E0   		movl	%r12d, %r8d
- 12035 a8fc 89D9     		movl	%ebx, %ecx
- 12036 a8fe 89C2     		movl	%eax, %edx
- 12037 a900 488D3500 		leaq	.LC4(%rip), %rsi
- 12037      000000
- 12038 a907 488D3D00 		leaq	.LC1(%rip), %rdi
- 12038      000000
- 12039 a90e B8000000 		movl	$0, %eax
- 12039      00
- 12040 a913 E8000000 		call	KDbgMsg at PLT
- 12040      00
- 12041              	.L177:
- 12042              	.LBE3335:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 12043              		.loc 2 1690 0
- 12044 a918 660F6F85 		movdqa	-10208(%rbp), %xmm0
- 12044      20D8FFFF 
- 12045              	.LBE3289:
- 12046              	.LBE3288:
-1928:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(4,0x02);    /* k16 : k17 : k18 : k19 */
- 12047              		.loc 2 1928 0
- 12048 a920 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 12048      40DCFFFF 
- 12049 a928 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12049      20DCFFFF 
- 12050 a930 F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 12050      80E4FFFF 
- 12051              	.LBB3336:
- 12052              	.LBB3337:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 12053              		.loc 2 1565 0
- 12054 a938 F30F6F85 		movdqu	-7040(%rbp), %xmm0
- 12054      80E4FFFF 
- 12055 a940 660F7F85 		movdqa	%xmm0, -10176(%rbp)
- 12055      40D8FFFF 
- 12056 a948 660F6F85 		movdqa	-10176(%rbp), %xmm0
- 12056      40D8FFFF 
- 12057 a950 F30F7F85 		movdqu	%xmm0, -7024(%rbp)
- 12057      90E4FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 375
-
-
- 12058              	.LBB3338:
- 12059              	.LBB3339:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12060              		.loc 2 1278 0
- 12061 a958 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12061      00000000 
- 12062 a960 F30F6F8D 		movdqu	-7024(%rbp), %xmm1
- 12062      90E4FFFF 
- 12063 a968 F30F7F8D 		movdqu	%xmm1, -6992(%rbp)
- 12063      B0E4FFFF 
- 12064 a970 F30F7F85 		movdqu	%xmm0, -7008(%rbp)
- 12064      A0E4FFFF 
- 12065 a978 F30F6F85 		movdqu	-6992(%rbp), %xmm0
- 12065      B0E4FFFF 
- 12066 a980 F30F7F85 		movdqu	%xmm0, -6960(%rbp)
- 12066      D0E4FFFF 
- 12067 a988 F30F6F85 		movdqu	-7008(%rbp), %xmm0
- 12067      A0E4FFFF 
- 12068 a990 F30F7F85 		movdqu	%xmm0, -6976(%rbp)
- 12068      C0E4FFFF 
- 12069              	.LBB3340:
- 12070              	.LBB3341:
- 12071              	.LBB3342:
- 12072              	.LBB3343:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12073              		.loc 3 529 0
- 12074 a998 F30F6F8D 		movdqu	-6976(%rbp), %xmm1
- 12074      C0E4FFFF 
- 12075 a9a0 F30F6F85 		movdqu	-6960(%rbp), %xmm0
- 12075      D0E4FFFF 
- 12076 a9a8 660F3800 		pshufb	%xmm1, %xmm0
- 12076      C1
- 12077              	.LBE3343:
- 12078              	.LBE3342:
- 12079              	.LBE3341:
- 12080              	.LBE3340:
- 12081              	.LBE3339:
- 12082              	.LBE3338:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12083              		.loc 2 1567 0
- 12084 a9ad 660F7F85 		movdqa	%xmm0, -10176(%rbp)
- 12084      40D8FFFF 
- 12085 a9b5 660F6F85 		movdqa	-10176(%rbp), %xmm0
- 12085      40D8FFFF 
- 12086 a9bd 660FEF85 		pxor	-7040(%rbp), %xmm0
- 12086      80E4FFFF 
- 12087 a9c5 F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 12087      80E4FFFF 
- 12088 a9cd 660F6F85 		movdqa	-10176(%rbp), %xmm0
- 12088      40D8FFFF 
- 12089 a9d5 F30F7F85 		movdqu	%xmm0, -6944(%rbp)
- 12089      E0E4FFFF 
- 12090              	.LBB3344:
- 12091              	.LBB3345:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12092              		.loc 2 1278 0
- 12093 a9dd 660F6F05 		movdqa	mask.7943(%rip), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 376
-
-
- 12093      00000000 
- 12094 a9e5 F30F6F8D 		movdqu	-6944(%rbp), %xmm1
- 12094      E0E4FFFF 
- 12095 a9ed F30F7F8D 		movdqu	%xmm1, -6912(%rbp)
- 12095      00E5FFFF 
- 12096 a9f5 F30F7F85 		movdqu	%xmm0, -6928(%rbp)
- 12096      F0E4FFFF 
- 12097 a9fd F30F6F85 		movdqu	-6912(%rbp), %xmm0
- 12097      00E5FFFF 
- 12098 aa05 F30F7F85 		movdqu	%xmm0, -6880(%rbp)
- 12098      20E5FFFF 
- 12099 aa0d F30F6F85 		movdqu	-6928(%rbp), %xmm0
- 12099      F0E4FFFF 
- 12100 aa15 F30F7F85 		movdqu	%xmm0, -6896(%rbp)
- 12100      10E5FFFF 
- 12101              	.LBB3346:
- 12102              	.LBB3347:
- 12103              	.LBB3348:
- 12104              	.LBB3349:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12105              		.loc 3 529 0
- 12106 aa1d F30F6F8D 		movdqu	-6896(%rbp), %xmm1
- 12106      10E5FFFF 
- 12107 aa25 F30F6F85 		movdqu	-6880(%rbp), %xmm0
- 12107      20E5FFFF 
- 12108 aa2d 660F3800 		pshufb	%xmm1, %xmm0
- 12108      C1
- 12109              	.LBE3349:
- 12110              	.LBE3348:
- 12111              	.LBE3347:
- 12112              	.LBE3346:
- 12113              	.LBE3345:
- 12114              	.LBE3344:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12115              		.loc 2 1568 0
- 12116 aa32 660F7F85 		movdqa	%xmm0, -10176(%rbp)
- 12116      40D8FFFF 
- 12117 aa3a 660F6F85 		movdqa	-10176(%rbp), %xmm0
- 12117      40D8FFFF 
- 12118 aa42 660FEF85 		pxor	-7040(%rbp), %xmm0
- 12118      80E4FFFF 
- 12119 aa4a F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 12119      80E4FFFF 
- 12120 aa52 660F6F85 		movdqa	-10176(%rbp), %xmm0
- 12120      40D8FFFF 
- 12121 aa5a F30F7F85 		movdqu	%xmm0, -6864(%rbp)
- 12121      30E5FFFF 
- 12122              	.LBB3350:
- 12123              	.LBB3351:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12124              		.loc 2 1278 0
- 12125 aa62 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12125      00000000 
- 12126 aa6a F30F6F8D 		movdqu	-6864(%rbp), %xmm1
- 12126      30E5FFFF 
- 12127 aa72 F30F7F8D 		movdqu	%xmm1, -6832(%rbp)
- 12127      50E5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 377
-
-
- 12128 aa7a F30F7F85 		movdqu	%xmm0, -6848(%rbp)
- 12128      40E5FFFF 
- 12129 aa82 F30F6F85 		movdqu	-6832(%rbp), %xmm0
- 12129      50E5FFFF 
- 12130 aa8a F30F7F85 		movdqu	%xmm0, -6800(%rbp)
- 12130      70E5FFFF 
- 12131 aa92 F30F6F85 		movdqu	-6848(%rbp), %xmm0
- 12131      40E5FFFF 
- 12132 aa9a F30F7F85 		movdqu	%xmm0, -6816(%rbp)
- 12132      60E5FFFF 
- 12133              	.LBB3352:
- 12134              	.LBB3353:
- 12135              	.LBB3354:
- 12136              	.LBB3355:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12137              		.loc 3 529 0
- 12138 aaa2 F30F6F8D 		movdqu	-6816(%rbp), %xmm1
- 12138      60E5FFFF 
- 12139 aaaa F30F6F85 		movdqu	-6800(%rbp), %xmm0
- 12139      70E5FFFF 
- 12140 aab2 660F3800 		pshufb	%xmm1, %xmm0
- 12140      C1
- 12141              	.LBE3355:
- 12142              	.LBE3354:
- 12143              	.LBE3353:
- 12144              	.LBE3352:
- 12145              	.LBE3351:
- 12146              	.LBE3350:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12147              		.loc 2 1569 0
- 12148 aab7 660F7F85 		movdqa	%xmm0, -10176(%rbp)
- 12148      40D8FFFF 
- 12149 aabf 660F6F85 		movdqa	-10176(%rbp), %xmm0
- 12149      40D8FFFF 
- 12150 aac7 660FEF85 		pxor	-7040(%rbp), %xmm0
- 12150      80E4FFFF 
- 12151 aacf F30F7F85 		movdqu	%xmm0, -7040(%rbp)
- 12151      80E4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12152              		.loc 2 1571 0
- 12153 aad7 F30F6F85 		movdqu	-7040(%rbp), %xmm0
- 12153      80E4FFFF 
- 12154              	.LBE3337:
- 12155              	.LBE3336:
- 12156              		.loc 2 1928 0
- 12157 aadf F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 12157      20DCFFFF 
- 12158 aae7 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12158      20DCFFFF 
- 12159 aaef F30F7F85 		movdqu	%xmm0, -6768(%rbp)
- 12159      90E5FFFF 
- 12160 aaf7 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 12160      40DCFFFF 
- 12161 aaff F30F7F85 		movdqu	%xmm0, -6784(%rbp)
- 12161      80E5FFFF 
- 12162              	.LBB3356:
- 12163              	.LBB3357:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 378
-
-
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 12164              		.loc 2 178 0
- 12165 ab07 F30F6F85 		movdqu	-6784(%rbp), %xmm0
- 12165      80E5FFFF 
- 12166 ab0f F30F6F8D 		movdqu	-6768(%rbp), %xmm1
- 12166      90E5FFFF 
- 12167 ab17 660FEFC1 		pxor	%xmm1, %xmm0
- 12168              	.LBE3357:
- 12169              	.LBE3356:
- 12170              		.loc 2 1928 0
- 12171 ab1b F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 12171      20DCFFFF 
- 12172 ab23 488B8598 		movq	-9832(%rbp), %rax
- 12172      D9FFFF
- 12173 ab2a 4883C040 		addq	$64, %rax
- 12174 ab2e F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12174      20DCFFFF 
- 12175 ab36 F30F7F00 		movdqu	%xmm0, (%rax)
- 12176 ab3a F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12176      20DCFFFF 
- 12177 ab42 F30F7F85 		movdqu	%xmm0, -6752(%rbp)
- 12177      A0E5FFFF 
- 12178              	.LBB3358:
- 12179              	.LBB3359:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 12180              		.loc 2 1656 0
- 12181 ab4a F30F6F85 		movdqu	-6752(%rbp), %xmm0
- 12181      A0E5FFFF 
- 12182 ab52 F30F7F85 		movdqu	%xmm0, -9648(%rbp)
- 12182      50DAFFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 12183              		.loc 2 1657 0
- 12184 ab5a 8B855CDA 		movl	-9636(%rbp), %eax
- 12184      FFFF
- 12185 ab60 8985B8E5 		movl	%eax, -6728(%rbp)
- 12185      FFFF
- 12186              	.LBB3360:
- 12187              	.LBB3361:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 12188              		.loc 2 740 0
- 12189 ab66 8B85B8E5 		movl	-6728(%rbp), %eax
- 12189      FFFF
- 12190 ab6c 898540DA 		movl	%eax, -9664(%rbp)
- 12190      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 12191              		.loc 2 741 0
- 12192 ab72 C785BCE5 		movl	$0, -6724(%rbp)
- 12192      FFFF0000 
- 12192      0000
- 12193 ab7c EB36     		jmp	.L178
- 12194              	.L179:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 12195              		.loc 2 742 0
- 12196 ab7e 8B8DBCE5 		movl	-6724(%rbp), %ecx
- 12196      FFFF
- 12197 ab84 8B85BCE5 		movl	-6724(%rbp), %eax
- 12197      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 379
-
-
- 12198 ab8a 89C0     		mov	%eax, %eax
- 12199 ab8c 0FB68405 		movzbl	-9664(%rbp,%rax), %eax
- 12199      40DAFFFF 
- 12200 ab94 0FB6C0   		movzbl	%al, %eax
- 12201 ab97 89C2     		mov	%eax, %edx
- 12202 ab99 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 12202      000000
- 12203 aba0 0FB61402 		movzbl	(%rdx,%rax), %edx
- 12204 aba4 89C8     		mov	%ecx, %eax
- 12205 aba6 88940540 		movb	%dl, -9664(%rbp,%rax)
- 12205      DAFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 12206              		.loc 2 741 0
- 12207 abad 8385BCE5 		addl	$1, -6724(%rbp)
- 12207      FFFF01
- 12208              	.L178:
- 12209 abb4 83BDBCE5 		cmpl	$3, -6724(%rbp)
- 12209      FFFF03
- 12210 abbb 76C1     		jbe	.L179
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 12211              		.loc 2 743 0
- 12212 abbd 8B8540DA 		movl	-9664(%rbp), %eax
- 12212      FFFF
- 12213              	.LBE3361:
- 12214              	.LBE3360:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 12215              		.loc 2 1657 0
- 12216 abc3 8985B4E5 		movl	%eax, -6732(%rbp)
- 12216      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 12217              		.loc 2 1659 0
- 12218 abc9 8B85B4E5 		movl	-6732(%rbp), %eax
- 12218      FFFF
- 12219 abcf 89855CDA 		movl	%eax, -9636(%rbp)
- 12219      FFFF
- 12220 abd5 8B855CDA 		movl	-9636(%rbp), %eax
- 12220      FFFF
- 12221 abdb 898558DA 		movl	%eax, -9640(%rbp)
- 12221      FFFF
- 12222 abe1 8B8558DA 		movl	-9640(%rbp), %eax
- 12222      FFFF
- 12223 abe7 898554DA 		movl	%eax, -9644(%rbp)
- 12223      FFFF
- 12224 abed 8B8554DA 		movl	-9644(%rbp), %eax
- 12224      FFFF
- 12225 abf3 898550DA 		movl	%eax, -9648(%rbp)
- 12225      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 12226              		.loc 2 1660 0
- 12227 abf9 F30F6F85 		movdqu	-9648(%rbp), %xmm0
- 12227      50DAFFFF 
- 12228              	.LBE3359:
- 12229              	.LBE3358:
-1929:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(5);         /* k20 : k21 : k22 : k23 */
- 12230              		.loc 2 1929 0
- 12231 ac01 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 12231      40DCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 380
-
-
- 12232 ac09 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 12232      30DCFFFF 
- 12233 ac11 F30F7F85 		movdqu	%xmm0, -6720(%rbp)
- 12233      C0E5FFFF 
- 12234              	.LBB3362:
- 12235              	.LBB3363:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 12236              		.loc 2 1565 0
- 12237 ac19 F30F6F85 		movdqu	-6720(%rbp), %xmm0
- 12237      C0E5FFFF 
- 12238 ac21 660F7F85 		movdqa	%xmm0, -10160(%rbp)
- 12238      50D8FFFF 
- 12239 ac29 660F6F85 		movdqa	-10160(%rbp), %xmm0
- 12239      50D8FFFF 
- 12240 ac31 F30F7F85 		movdqu	%xmm0, -6704(%rbp)
- 12240      D0E5FFFF 
- 12241              	.LBB3364:
- 12242              	.LBB3365:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12243              		.loc 2 1278 0
- 12244 ac39 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12244      00000000 
- 12245 ac41 F30F6F8D 		movdqu	-6704(%rbp), %xmm1
- 12245      D0E5FFFF 
- 12246 ac49 F30F7F8D 		movdqu	%xmm1, -6672(%rbp)
- 12246      F0E5FFFF 
- 12247 ac51 F30F7F85 		movdqu	%xmm0, -6688(%rbp)
- 12247      E0E5FFFF 
- 12248 ac59 F30F6F85 		movdqu	-6672(%rbp), %xmm0
- 12248      F0E5FFFF 
- 12249 ac61 F30F7F85 		movdqu	%xmm0, -6640(%rbp)
- 12249      10E6FFFF 
- 12250 ac69 F30F6F85 		movdqu	-6688(%rbp), %xmm0
- 12250      E0E5FFFF 
- 12251 ac71 F30F7F85 		movdqu	%xmm0, -6656(%rbp)
- 12251      00E6FFFF 
- 12252              	.LBB3366:
- 12253              	.LBB3367:
- 12254              	.LBB3368:
- 12255              	.LBB3369:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12256              		.loc 3 529 0
- 12257 ac79 F30F6F8D 		movdqu	-6656(%rbp), %xmm1
- 12257      00E6FFFF 
- 12258 ac81 F30F6F85 		movdqu	-6640(%rbp), %xmm0
- 12258      10E6FFFF 
- 12259 ac89 660F3800 		pshufb	%xmm1, %xmm0
- 12259      C1
- 12260              	.LBE3369:
- 12261              	.LBE3368:
- 12262              	.LBE3367:
- 12263              	.LBE3366:
- 12264              	.LBE3365:
- 12265              	.LBE3364:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12266              		.loc 2 1567 0
- 12267 ac8e 660F7F85 		movdqa	%xmm0, -10160(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 381
-
-
- 12267      50D8FFFF 
- 12268 ac96 660F6F85 		movdqa	-10160(%rbp), %xmm0
- 12268      50D8FFFF 
- 12269 ac9e 660FEF85 		pxor	-6720(%rbp), %xmm0
- 12269      C0E5FFFF 
- 12270 aca6 F30F7F85 		movdqu	%xmm0, -6720(%rbp)
- 12270      C0E5FFFF 
- 12271 acae 660F6F85 		movdqa	-10160(%rbp), %xmm0
- 12271      50D8FFFF 
- 12272 acb6 F30F7F85 		movdqu	%xmm0, -6624(%rbp)
- 12272      20E6FFFF 
- 12273              	.LBB3370:
- 12274              	.LBB3371:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12275              		.loc 2 1278 0
- 12276 acbe 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12276      00000000 
- 12277 acc6 F30F6F8D 		movdqu	-6624(%rbp), %xmm1
- 12277      20E6FFFF 
- 12278 acce F30F7F8D 		movdqu	%xmm1, -6592(%rbp)
- 12278      40E6FFFF 
- 12279 acd6 F30F7F85 		movdqu	%xmm0, -6608(%rbp)
- 12279      30E6FFFF 
- 12280 acde F30F6F85 		movdqu	-6592(%rbp), %xmm0
- 12280      40E6FFFF 
- 12281 ace6 F30F7F85 		movdqu	%xmm0, -6560(%rbp)
- 12281      60E6FFFF 
- 12282 acee F30F6F85 		movdqu	-6608(%rbp), %xmm0
- 12282      30E6FFFF 
- 12283 acf6 F30F7F85 		movdqu	%xmm0, -6576(%rbp)
- 12283      50E6FFFF 
- 12284              	.LBB3372:
- 12285              	.LBB3373:
- 12286              	.LBB3374:
- 12287              	.LBB3375:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12288              		.loc 3 529 0
- 12289 acfe F30F6F8D 		movdqu	-6576(%rbp), %xmm1
- 12289      50E6FFFF 
- 12290 ad06 F30F6F85 		movdqu	-6560(%rbp), %xmm0
- 12290      60E6FFFF 
- 12291 ad0e 660F3800 		pshufb	%xmm1, %xmm0
- 12291      C1
- 12292              	.LBE3375:
- 12293              	.LBE3374:
- 12294              	.LBE3373:
- 12295              	.LBE3372:
- 12296              	.LBE3371:
- 12297              	.LBE3370:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12298              		.loc 2 1568 0
- 12299 ad13 660F7F85 		movdqa	%xmm0, -10160(%rbp)
- 12299      50D8FFFF 
- 12300 ad1b 660F6F85 		movdqa	-10160(%rbp), %xmm0
- 12300      50D8FFFF 
- 12301 ad23 660FEF85 		pxor	-6720(%rbp), %xmm0
- 12301      C0E5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 382
-
-
- 12302 ad2b F30F7F85 		movdqu	%xmm0, -6720(%rbp)
- 12302      C0E5FFFF 
- 12303 ad33 660F6F85 		movdqa	-10160(%rbp), %xmm0
- 12303      50D8FFFF 
- 12304 ad3b F30F7F85 		movdqu	%xmm0, -6544(%rbp)
- 12304      70E6FFFF 
- 12305              	.LBB3376:
- 12306              	.LBB3377:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12307              		.loc 2 1278 0
- 12308 ad43 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12308      00000000 
- 12309 ad4b F30F6F8D 		movdqu	-6544(%rbp), %xmm1
- 12309      70E6FFFF 
- 12310 ad53 F30F7F8D 		movdqu	%xmm1, -6512(%rbp)
- 12310      90E6FFFF 
- 12311 ad5b F30F7F85 		movdqu	%xmm0, -6528(%rbp)
- 12311      80E6FFFF 
- 12312 ad63 F30F6F85 		movdqu	-6512(%rbp), %xmm0
- 12312      90E6FFFF 
- 12313 ad6b F30F7F85 		movdqu	%xmm0, -6480(%rbp)
- 12313      B0E6FFFF 
- 12314 ad73 F30F6F85 		movdqu	-6528(%rbp), %xmm0
- 12314      80E6FFFF 
- 12315 ad7b F30F7F85 		movdqu	%xmm0, -6496(%rbp)
- 12315      A0E6FFFF 
- 12316              	.LBB3378:
- 12317              	.LBB3379:
- 12318              	.LBB3380:
- 12319              	.LBB3381:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12320              		.loc 3 529 0
- 12321 ad83 F30F6F8D 		movdqu	-6496(%rbp), %xmm1
- 12321      A0E6FFFF 
- 12322 ad8b F30F6F85 		movdqu	-6480(%rbp), %xmm0
- 12322      B0E6FFFF 
- 12323 ad93 660F3800 		pshufb	%xmm1, %xmm0
- 12323      C1
- 12324              	.LBE3381:
- 12325              	.LBE3380:
- 12326              	.LBE3379:
- 12327              	.LBE3378:
- 12328              	.LBE3377:
- 12329              	.LBE3376:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12330              		.loc 2 1569 0
- 12331 ad98 660F7F85 		movdqa	%xmm0, -10160(%rbp)
- 12331      50D8FFFF 
- 12332 ada0 660F6F85 		movdqa	-10160(%rbp), %xmm0
- 12332      50D8FFFF 
- 12333 ada8 660FEF85 		pxor	-6720(%rbp), %xmm0
- 12333      C0E5FFFF 
- 12334 adb0 F30F7F85 		movdqu	%xmm0, -6720(%rbp)
- 12334      C0E5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12335              		.loc 2 1571 0
- 12336 adb8 F30F6F85 		movdqu	-6720(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 383
-
-
- 12336      C0E5FFFF 
- 12337              	.LBE3363:
- 12338              	.LBE3362:
- 12339              		.loc 2 1929 0
- 12340 adc0 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 12340      30DCFFFF 
- 12341 adc8 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 12341      30DCFFFF 
- 12342 add0 F30F7F85 		movdqu	%xmm0, -6448(%rbp)
- 12342      D0E6FFFF 
- 12343 add8 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 12343      40DCFFFF 
- 12344 ade0 F30F7F85 		movdqu	%xmm0, -6464(%rbp)
- 12344      C0E6FFFF 
- 12345              	.LBB3382:
- 12346              	.LBB3383:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 12347              		.loc 2 178 0
- 12348 ade8 F30F6F85 		movdqu	-6464(%rbp), %xmm0
- 12348      C0E6FFFF 
- 12349 adf0 F30F6F8D 		movdqu	-6448(%rbp), %xmm1
- 12349      D0E6FFFF 
- 12350 adf8 660FEFC1 		pxor	%xmm1, %xmm0
- 12351              	.LBE3383:
- 12352              	.LBE3382:
- 12353              		.loc 2 1929 0
- 12354 adfc F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 12354      30DCFFFF 
- 12355 ae04 488B8598 		movq	-9832(%rbp), %rax
- 12355      D9FFFF
- 12356 ae0b 4883C050 		addq	$80, %rax
- 12357 ae0f F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 12357      30DCFFFF 
- 12358 ae17 F30F7F00 		movdqu	%xmm0, (%rax)
- 12359 ae1b F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 12359      30DCFFFF 
- 12360 ae23 F30F7F85 		movdqu	%xmm0, -6416(%rbp)
- 12360      F0E6FFFF 
- 12361              	.LBB3384:
- 12362              	.LBB3385:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 12363              		.loc 2 1681 0
- 12364 ae2b B8040000 		movl	$4, %eax
- 12364      00
- 12365 ae30 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 12365      00000000 
- 12366 ae38 F30F7F85 		movdqu	%xmm0, -6384(%rbp)
- 12366      10E7FFFF 
- 12367 ae40 89850CE7 		movl	%eax, -6388(%rbp)
- 12367      FFFF
- 12368 ae46 F30F6F85 		movdqu	-6384(%rbp), %xmm0
- 12368      10E7FFFF 
- 12369 ae4e F30F7F85 		movdqu	%xmm0, -6352(%rbp)
- 12369      30E7FFFF 
- 12370 ae56 8B850CE7 		movl	-6388(%rbp), %eax
- 12370      FFFF
- 12371 ae5c 89852CE7 		movl	%eax, -6356(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 384
-
-
- 12371      FFFF
- 12372              	.LBB3386:
- 12373              	.LBB3387:
- 12374              	.LBB3388:
- 12375              	.LBB3389:
- 12376              		.loc 3 598 0
- 12377 ae62 8B852CE7 		movl	-6356(%rbp), %eax
- 12377      FFFF
- 12378 ae68 F30F6F85 		movdqu	-6352(%rbp), %xmm0
- 12378      30E7FFFF 
- 12379 ae70 660F3A22 		pinsrd	$3, %eax, %xmm0
- 12379      C003
- 12380              	.LBE3389:
- 12381              	.LBE3388:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 12382              		.loc 2 519 0
- 12383 ae76 F30F7F85 		movdqu	%xmm0, -6384(%rbp)
- 12383      10E7FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12384              		.loc 2 526 0
- 12385 ae7e F30F6F85 		movdqu	-6384(%rbp), %xmm0
- 12385      10E7FFFF 
- 12386              	.LBE3387:
- 12387              	.LBE3386:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 12388              		.loc 2 1681 0
- 12389 ae86 660F7F85 		movdqa	%xmm0, -10128(%rbp)
- 12389      70D8FFFF 
- 12390 ae8e F30F6F85 		movdqu	-6416(%rbp), %xmm0
- 12390      F0E6FFFF 
- 12391 ae96 F30F7F85 		movdqu	%xmm0, -6336(%rbp)
- 12391      40E7FFFF 
- 12392 ae9e F30F6F85 		movdqu	-6336(%rbp), %xmm0
- 12392      40E7FFFF 
- 12393 aea6 F30F7F85 		movdqu	%xmm0, -6304(%rbp)
- 12393      60E7FFFF 
- 12394 aeae 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 12394      000000
- 12395 aeb5 48898558 		movq	%rax, -6312(%rbp)
- 12395      E7FFFF
- 12396              	.LBB3390:
- 12397              	.LBB3391:
- 12398              	.LBB3392:
- 12399              	.LBB3393:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 12400              		.loc 2 851 0
- 12401 aebc 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 12401      00000000 
- 12402 aec4 F30F7F85 		movdqu	%xmm0, -6272(%rbp)
- 12402      80E7FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 12403              		.loc 2 854 0
- 12404 aecc 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 12404      00000000 
- 12405 aed4 F30F6F8D 		movdqu	-6304(%rbp), %xmm1
- 12405      60E7FFFF 
- 12406 aedc F30F7F8D 		movdqu	%xmm1, -6192(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 385
-
-
- 12406      D0E7FFFF 
- 12407 aee4 F30F7F85 		movdqu	%xmm0, -6208(%rbp)
- 12407      C0E7FFFF 
- 12408              	.LBB3394:
- 12409              	.LBB3395:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 12410              		.loc 2 206 0
- 12411 aeec F30F6F85 		movdqu	-6208(%rbp), %xmm0
- 12411      C0E7FFFF 
- 12412 aef4 F30F6F8D 		movdqu	-6192(%rbp), %xmm1
- 12412      D0E7FFFF 
- 12413 aefc 660FDBC1 		pand	%xmm1, %xmm0
- 12414              	.LBE3395:
- 12415              	.LBE3394:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 12416              		.loc 2 854 0
- 12417 af00 F30F7F85 		movdqu	%xmm0, -6224(%rbp)
- 12417      B0E7FFFF 
- 12418 af08 F30F6F85 		movdqu	-6304(%rbp), %xmm0
- 12418      60E7FFFF 
- 12419 af10 F30F7F85 		movdqu	%xmm0, -6160(%rbp)
- 12419      F0E7FFFF 
- 12420              	.LBB3396:
- 12421              	.LBB3397:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 12422              		.loc 3 433 0
- 12423 af18 F30F6F85 		movdqu	-6160(%rbp), %xmm0
- 12423      F0E7FFFF 
- 12424 af20 660F72D0 		psrld	$4, %xmm0
- 12424      04
- 12425              	.LBE3397:
- 12426              	.LBE3396:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 12427              		.loc 2 857 0
- 12428 af25 F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 12428      A0E7FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 12429              		.loc 2 859 0
- 12430 af2d 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 12430      00000000 
- 12431 af35 F30F6F8D 		movdqu	-6240(%rbp), %xmm1
- 12431      A0E7FFFF 
- 12432 af3d F30F7F8D 		movdqu	%xmm1, -6128(%rbp)
- 12432      10E8FFFF 
- 12433 af45 F30F7F85 		movdqu	%xmm0, -6144(%rbp)
- 12433      00E8FFFF 
- 12434              	.LBB3398:
- 12435              	.LBB3399:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 12436              		.loc 2 206 0
- 12437 af4d F30F6F85 		movdqu	-6144(%rbp), %xmm0
- 12437      00E8FFFF 
- 12438 af55 F30F6F8D 		movdqu	-6128(%rbp), %xmm1
- 12438      10E8FFFF 
- 12439 af5d 660FDBC1 		pand	%xmm1, %xmm0
- 12440              	.LBE3399:
- 12441              	.LBE3398:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 386
-
-
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 12442              		.loc 2 859 0
- 12443 af61 F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 12443      A0E7FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 12444              		.loc 2 866 0
- 12445 af69 C7857CE7 		movl	$0, -6276(%rbp)
- 12445      FFFF0000 
- 12445      0000
- 12446 af73 E9BE0100 		jmp	.L180
- 12446      00
- 12447              	.L181:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 12448              		.loc 2 868 0
- 12449 af78 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 12449      00000000 
- 12450 af80 F30F7F85 		movdqu	%xmm0, -6096(%rbp)
- 12450      30E8FFFF 
- 12451 af88 F30F6F85 		movdqu	-6240(%rbp), %xmm0
- 12451      A0E7FFFF 
- 12452 af90 F30F7F85 		movdqu	%xmm0, -6112(%rbp)
- 12452      20E8FFFF 
- 12453 af98 F30F6F85 		movdqu	-6096(%rbp), %xmm0
- 12453      30E8FFFF 
- 12454 afa0 F30F7F85 		movdqu	%xmm0, -6064(%rbp)
- 12454      50E8FFFF 
- 12455 afa8 F30F6F85 		movdqu	-6112(%rbp), %xmm0
- 12455      20E8FFFF 
- 12456 afb0 F30F7F85 		movdqu	%xmm0, -6080(%rbp)
- 12456      40E8FFFF 
- 12457              	.LBB3400:
- 12458              	.LBB3401:
- 12459              	.LBB3402:
- 12460              	.LBB3403:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12461              		.loc 3 529 0
- 12462 afb8 F30F6F8D 		movdqu	-6080(%rbp), %xmm1
- 12462      40E8FFFF 
- 12463 afc0 F30F6F85 		movdqu	-6064(%rbp), %xmm0
- 12463      50E8FFFF 
- 12464 afc8 660F3800 		pshufb	%xmm1, %xmm0
- 12464      C1
- 12465              	.LBE3403:
- 12466              	.LBE3402:
- 12467              	.LBE3401:
- 12468              	.LBE3400:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 12469              		.loc 2 868 0
- 12470 afcd F30F7F85 		movdqu	%xmm0, -6256(%rbp)
- 12470      90E7FFFF 
- 12471 afd5 F30F6F85 		movdqu	-6224(%rbp), %xmm0
- 12471      B0E7FFFF 
- 12472 afdd F30F7F85 		movdqu	%xmm0, -6032(%rbp)
- 12472      70E8FFFF 
- 12473 afe5 F30F6F85 		movdqu	-6256(%rbp), %xmm0
- 12473      90E7FFFF 
- 12474 afed F30F7F85 		movdqu	%xmm0, -6048(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 387
-
-
- 12474      60E8FFFF 
- 12475              	.LBB3404:
- 12476              	.LBB3405:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 12477              		.loc 2 234 0
- 12478 aff5 F30F6F85 		movdqu	-6048(%rbp), %xmm0
- 12478      60E8FFFF 
- 12479 affd F30F6F8D 		movdqu	-6032(%rbp), %xmm1
- 12479      70E8FFFF 
- 12480 b005 660FEBC1 		por	%xmm1, %xmm0
- 12481              	.LBE3405:
- 12482              	.LBE3404:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 12483              		.loc 2 870 0
- 12484 b009 F30F7F85 		movdqu	%xmm0, -6256(%rbp)
- 12484      90E7FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 12485              		.loc 2 872 0
- 12486 b011 8B857CE7 		mov	-6276(%rbp), %eax
- 12486      FFFF
- 12487 b017 48C1E004 		salq	$4, %rax
- 12488 b01b 48038558 		addq	-6312(%rbp), %rax
- 12488      E7FFFF
- 12489 b022 660F6F00 		movdqa	(%rax), %xmm0
- 12490 b026 F30F7F85 		movdqu	%xmm0, -6000(%rbp)
- 12490      90E8FFFF 
- 12491 b02e F30F6F85 		movdqu	-6256(%rbp), %xmm0
- 12491      90E7FFFF 
- 12492 b036 F30F7F85 		movdqu	%xmm0, -6016(%rbp)
- 12492      80E8FFFF 
- 12493 b03e F30F6F85 		movdqu	-6000(%rbp), %xmm0
- 12493      90E8FFFF 
- 12494 b046 F30F7F85 		movdqu	%xmm0, -5968(%rbp)
- 12494      B0E8FFFF 
- 12495 b04e F30F6F85 		movdqu	-6016(%rbp), %xmm0
- 12495      80E8FFFF 
- 12496 b056 F30F7F85 		movdqu	%xmm0, -5984(%rbp)
- 12496      A0E8FFFF 
- 12497              	.LBB3406:
- 12498              	.LBB3407:
- 12499              	.LBB3408:
- 12500              	.LBB3409:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12501              		.loc 3 529 0
- 12502 b05e F30F6F8D 		movdqu	-5984(%rbp), %xmm1
- 12502      A0E8FFFF 
- 12503 b066 F30F6F85 		movdqu	-5968(%rbp), %xmm0
- 12503      B0E8FFFF 
- 12504 b06e 660F3800 		pshufb	%xmm1, %xmm0
- 12504      C1
- 12505              	.LBE3409:
- 12506              	.LBE3408:
- 12507              	.LBE3407:
- 12508              	.LBE3406:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 12509              		.loc 2 872 0
- 12510 b073 F30F7F85 		movdqu	%xmm0, -6256(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 388
-
-
- 12510      90E7FFFF 
- 12511 b07b F30F6F85 		movdqu	-6272(%rbp), %xmm0
- 12511      80E7FFFF 
- 12512 b083 F30F7F85 		movdqu	%xmm0, -5936(%rbp)
- 12512      D0E8FFFF 
- 12513 b08b F30F6F85 		movdqu	-6256(%rbp), %xmm0
- 12513      90E7FFFF 
- 12514 b093 F30F7F85 		movdqu	%xmm0, -5952(%rbp)
- 12514      C0E8FFFF 
- 12515              	.LBB3410:
- 12516              	.LBB3411:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 12517              		.loc 2 234 0
- 12518 b09b F30F6F85 		movdqu	-5952(%rbp), %xmm0
- 12518      C0E8FFFF 
- 12519 b0a3 F30F6F8D 		movdqu	-5936(%rbp), %xmm1
- 12519      D0E8FFFF 
- 12520 b0ab 660FEBC1 		por	%xmm1, %xmm0
- 12521              	.LBE3411:
- 12522              	.LBE3410:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 12523              		.loc 2 874 0
- 12524 b0af F30F7F85 		movdqu	%xmm0, -6272(%rbp)
- 12524      80E7FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 12525              		.loc 2 876 0
- 12526 b0b7 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 12526      00000000 
- 12527 b0bf F30F6F8D 		movdqu	-6240(%rbp), %xmm1
- 12527      A0E7FFFF 
- 12528 b0c7 F30F7F8D 		movdqu	%xmm1, -5904(%rbp)
- 12528      F0E8FFFF 
- 12529 b0cf F30F7F85 		movdqu	%xmm0, -5920(%rbp)
- 12529      E0E8FFFF 
- 12530              	.LBB3412:
- 12531              	.LBB3413:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 12532              		.loc 2 290 0
- 12533 b0d7 F30F6F8D 		movdqu	-5920(%rbp), %xmm1
- 12533      E0E8FFFF 
- 12534 b0df F30F6F85 		movdqu	-5904(%rbp), %xmm0
- 12534      F0E8FFFF 
- 12535 b0e7 660FF8C1 		psubb	%xmm1, %xmm0
- 12536              	.LBE3413:
- 12537              	.LBE3412:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 12538              		.loc 2 876 0
- 12539 b0eb F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 12539      A0E7FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 12540              		.loc 2 878 0
- 12541 b0f3 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 12541      00000000 
- 12542 b0fb F30F6F8D 		movdqu	-6240(%rbp), %xmm1
- 12542      A0E7FFFF 
- 12543 b103 F30F7F8D 		movdqu	%xmm1, -5872(%rbp)
- 12543      10E9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 389
-
-
- 12544 b10b F30F7F85 		movdqu	%xmm0, -5888(%rbp)
- 12544      00E9FFFF 
- 12545              	.LBB3414:
- 12546              	.LBB3415:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 12547              		.loc 2 206 0
- 12548 b113 F30F6F85 		movdqu	-5888(%rbp), %xmm0
- 12548      00E9FFFF 
- 12549 b11b F30F6F8D 		movdqu	-5872(%rbp), %xmm1
- 12549      10E9FFFF 
- 12550 b123 660FDBC1 		pand	%xmm1, %xmm0
- 12551              	.LBE3415:
- 12552              	.LBE3414:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 12553              		.loc 2 878 0
- 12554 b127 F30F7F85 		movdqu	%xmm0, -6240(%rbp)
- 12554      A0E7FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 12555              		.loc 2 866 0
- 12556 b12f 83857CE7 		addl	$1, -6276(%rbp)
- 12556      FFFF01
- 12557              	.L180:
- 12558 b136 83BD7CE7 		cmpl	$15, -6276(%rbp)
- 12558      FFFF0F
- 12559 b13d 0F8635FE 		jbe	.L181
- 12559      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 12560              		.loc 2 882 0
- 12561 b143 F30F6F85 		movdqu	-6272(%rbp), %xmm0
- 12561      80E7FFFF 
- 12562              	.LBE3393:
- 12563              	.LBE3392:
- 12564              	.LBE3391:
- 12565              	.LBE3390:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 12566              		.loc 2 1682 0
- 12567 b14b 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 12567      60D8FFFF 
- 12568              	.LBB3416:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 12569              		.loc 2 1683 0
- 12570 b153 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12570      60D8FFFF 
- 12571 b15b F30F7F85 		movdqu	%xmm0, -9584(%rbp)
- 12571      90DAFFFF 
- 12572 b163 E8000000 		call	KDbgWriterGet at PLT
- 12572      00
- 12573 b168 4885C0   		testq	%rax, %rax
- 12574 b16b 7479     		je	.L183
- 12575 b16d BF010000 		movl	$1, %edi
- 12575      00
- 12576 b172 E8000000 		call	KDbgCondToFlag at PLT
- 12576      00
- 12577 b177 4889C6   		movq	%rax, %rsi
- 12578 b17a BF100000 		movl	$16, %edi
- 12578      00
- 12579 b17f E8000000 		call	KDbgTestModConds at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 390
-
-
- 12579      00
- 12580 b184 84C0     		testb	%al, %al
- 12581 b186 745E     		je	.L183
- 12582 b188 8B859CDA 		movl	-9572(%rbp), %eax
- 12582      FFFF
- 12583 b18e 89C7     		movl	%eax, %edi
- 12584 b190 E86B4EFF 		call	bswap_32
- 12584      FF
- 12585 b195 4189C5   		movl	%eax, %r13d
- 12586 b198 8B8598DA 		movl	-9576(%rbp), %eax
- 12586      FFFF
- 12587 b19e 89C7     		movl	%eax, %edi
- 12588 b1a0 E85B4EFF 		call	bswap_32
- 12588      FF
- 12589 b1a5 4189C4   		movl	%eax, %r12d
- 12590 b1a8 8B8594DA 		movl	-9580(%rbp), %eax
- 12590      FFFF
- 12591 b1ae 89C7     		movl	%eax, %edi
- 12592 b1b0 E84B4EFF 		call	bswap_32
- 12592      FF
- 12593 b1b5 89C3     		movl	%eax, %ebx
- 12594 b1b7 8B8590DA 		movl	-9584(%rbp), %eax
- 12594      FFFF
- 12595 b1bd 89C7     		movl	%eax, %edi
- 12596 b1bf E83C4EFF 		call	bswap_32
- 12596      FF
- 12597 b1c4 4589E9   		movl	%r13d, %r9d
- 12598 b1c7 4589E0   		movl	%r12d, %r8d
- 12599 b1ca 89D9     		movl	%ebx, %ecx
- 12600 b1cc 89C2     		movl	%eax, %edx
- 12601 b1ce 488D3500 		leaq	.LC0(%rip), %rsi
- 12601      000000
- 12602 b1d5 488D3D00 		leaq	.LC1(%rip), %rdi
- 12602      000000
- 12603 b1dc B8000000 		movl	$0, %eax
- 12603      00
- 12604 b1e1 E8000000 		call	KDbgMsg at PLT
- 12604      00
- 12605              	.L183:
- 12606 b1e6 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12606      60D8FFFF 
- 12607 b1ee F30F7F85 		movdqu	%xmm0, -5856(%rbp)
- 12607      20E9FFFF 
- 12608              	.LBE3416:
- 12609              	.LBB3417:
- 12610              	.LBB3418:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 12611              		.loc 2 667 0
- 12612 b1f6 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 12612      00000000 
- 12613 b1fe F30F6F8D 		movdqu	-5856(%rbp), %xmm1
- 12613      20E9FFFF 
- 12614 b206 F30F7F8D 		movdqu	%xmm1, -5824(%rbp)
- 12614      40E9FFFF 
- 12615 b20e F30F7F85 		movdqu	%xmm0, -5840(%rbp)
- 12615      30E9FFFF 
- 12616 b216 F30F6F85 		movdqu	-5824(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 391
-
-
- 12616      40E9FFFF 
- 12617 b21e F30F7F85 		movdqu	%xmm0, -5792(%rbp)
- 12617      60E9FFFF 
- 12618 b226 F30F6F85 		movdqu	-5840(%rbp), %xmm0
- 12618      30E9FFFF 
- 12619 b22e F30F7F85 		movdqu	%xmm0, -5808(%rbp)
- 12619      50E9FFFF 
- 12620              	.LBB3419:
- 12621              	.LBB3420:
- 12622              	.LBB3421:
- 12623              	.LBB3422:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12624              		.loc 3 529 0
- 12625 b236 F30F6F8D 		movdqu	-5808(%rbp), %xmm1
- 12625      50E9FFFF 
- 12626 b23e F30F6F85 		movdqu	-5792(%rbp), %xmm0
- 12626      60E9FFFF 
- 12627 b246 660F3800 		pshufb	%xmm1, %xmm0
- 12627      C1
- 12628              	.LBE3422:
- 12629              	.LBE3421:
- 12630              	.LBE3420:
- 12631              	.LBE3419:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 12632              		.loc 2 667 0
- 12633 b24b F30F7F85 		movdqu	%xmm0, -5856(%rbp)
- 12633      20E9FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12634              		.loc 2 668 0
- 12635 b253 F30F6F85 		movdqu	-5856(%rbp), %xmm0
- 12635      20E9FFFF 
- 12636              	.LBE3418:
- 12637              	.LBE3417:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 12638              		.loc 2 1684 0
- 12639 b25b 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 12639      60D8FFFF 
- 12640              	.LBB3423:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 12641              		.loc 2 1685 0
- 12642 b263 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12642      60D8FFFF 
- 12643 b26b F30F7F85 		movdqu	%xmm0, -9600(%rbp)
- 12643      80DAFFFF 
- 12644 b273 E8000000 		call	KDbgWriterGet at PLT
- 12644      00
- 12645 b278 4885C0   		testq	%rax, %rax
- 12646 b27b 7479     		je	.L185
- 12647 b27d BF010000 		movl	$1, %edi
- 12647      00
- 12648 b282 E8000000 		call	KDbgCondToFlag at PLT
- 12648      00
- 12649 b287 4889C6   		movq	%rax, %rsi
- 12650 b28a BF100000 		movl	$16, %edi
- 12650      00
- 12651 b28f E8000000 		call	KDbgTestModConds at PLT
- 12651      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 392
-
-
- 12652 b294 84C0     		testb	%al, %al
- 12653 b296 745E     		je	.L185
- 12654 b298 8B858CDA 		movl	-9588(%rbp), %eax
- 12654      FFFF
- 12655 b29e 89C7     		movl	%eax, %edi
- 12656 b2a0 E85B4DFF 		call	bswap_32
- 12656      FF
- 12657 b2a5 4189C5   		movl	%eax, %r13d
- 12658 b2a8 8B8588DA 		movl	-9592(%rbp), %eax
- 12658      FFFF
- 12659 b2ae 89C7     		movl	%eax, %edi
- 12660 b2b0 E84B4DFF 		call	bswap_32
- 12660      FF
- 12661 b2b5 4189C4   		movl	%eax, %r12d
- 12662 b2b8 8B8584DA 		movl	-9596(%rbp), %eax
- 12662      FFFF
- 12663 b2be 89C7     		movl	%eax, %edi
- 12664 b2c0 E83B4DFF 		call	bswap_32
- 12664      FF
- 12665 b2c5 89C3     		movl	%eax, %ebx
- 12666 b2c7 8B8580DA 		movl	-9600(%rbp), %eax
- 12666      FFFF
- 12667 b2cd 89C7     		movl	%eax, %edi
- 12668 b2cf E82C4DFF 		call	bswap_32
- 12668      FF
- 12669 b2d4 4589E9   		movl	%r13d, %r9d
- 12670 b2d7 4589E0   		movl	%r12d, %r8d
- 12671 b2da 89D9     		movl	%ebx, %ecx
- 12672 b2dc 89C2     		movl	%eax, %edx
- 12673 b2de 488D3500 		leaq	.LC2(%rip), %rsi
- 12673      000000
- 12674 b2e5 488D3D00 		leaq	.LC1(%rip), %rdi
- 12674      000000
- 12675 b2ec B8000000 		movl	$0, %eax
- 12675      00
- 12676 b2f1 E8000000 		call	KDbgMsg at PLT
- 12676      00
- 12677              	.L185:
- 12678 b2f6 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12678      60D8FFFF 
- 12679 b2fe F30F7F85 		movdqu	%xmm0, -5760(%rbp)
- 12679      80E9FFFF 
- 12680 b306 660F6F85 		movdqa	-10128(%rbp), %xmm0
- 12680      70D8FFFF 
- 12681 b30e F30F7F85 		movdqu	%xmm0, -5776(%rbp)
- 12681      70E9FFFF 
- 12682              	.LBE3423:
- 12683              	.LBB3424:
- 12684              	.LBB3425:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 12685              		.loc 2 178 0
- 12686 b316 F30F6F85 		movdqu	-5776(%rbp), %xmm0
- 12686      70E9FFFF 
- 12687 b31e F30F6F8D 		movdqu	-5760(%rbp), %xmm1
- 12687      80E9FFFF 
- 12688 b326 660FEFC1 		pxor	%xmm1, %xmm0
- 12689              	.LBE3425:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 393
-
-
- 12690              	.LBE3424:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 12691              		.loc 2 1686 0
- 12692 b32a 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 12692      60D8FFFF 
- 12693              	.LBB3426:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 12694              		.loc 2 1687 0
- 12695 b332 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12695      60D8FFFF 
- 12696 b33a F30F7F85 		movdqu	%xmm0, -9616(%rbp)
- 12696      70DAFFFF 
- 12697 b342 E8000000 		call	KDbgWriterGet at PLT
- 12697      00
- 12698 b347 4885C0   		testq	%rax, %rax
- 12699 b34a 7479     		je	.L187
- 12700 b34c BF010000 		movl	$1, %edi
- 12700      00
- 12701 b351 E8000000 		call	KDbgCondToFlag at PLT
- 12701      00
- 12702 b356 4889C6   		movq	%rax, %rsi
- 12703 b359 BF100000 		movl	$16, %edi
- 12703      00
- 12704 b35e E8000000 		call	KDbgTestModConds at PLT
- 12704      00
- 12705 b363 84C0     		testb	%al, %al
- 12706 b365 745E     		je	.L187
- 12707 b367 8B857CDA 		movl	-9604(%rbp), %eax
- 12707      FFFF
- 12708 b36d 89C7     		movl	%eax, %edi
- 12709 b36f E88C4CFF 		call	bswap_32
- 12709      FF
- 12710 b374 4189C5   		movl	%eax, %r13d
- 12711 b377 8B8578DA 		movl	-9608(%rbp), %eax
- 12711      FFFF
- 12712 b37d 89C7     		movl	%eax, %edi
- 12713 b37f E87C4CFF 		call	bswap_32
- 12713      FF
- 12714 b384 4189C4   		movl	%eax, %r12d
- 12715 b387 8B8574DA 		movl	-9612(%rbp), %eax
- 12715      FFFF
- 12716 b38d 89C7     		movl	%eax, %edi
- 12717 b38f E86C4CFF 		call	bswap_32
- 12717      FF
- 12718 b394 89C3     		movl	%eax, %ebx
- 12719 b396 8B8570DA 		movl	-9616(%rbp), %eax
- 12719      FFFF
- 12720 b39c 89C7     		movl	%eax, %edi
- 12721 b39e E85D4CFF 		call	bswap_32
- 12721      FF
- 12722 b3a3 4589E9   		movl	%r13d, %r9d
- 12723 b3a6 4589E0   		movl	%r12d, %r8d
- 12724 b3a9 89D9     		movl	%ebx, %ecx
- 12725 b3ab 89C2     		movl	%eax, %edx
- 12726 b3ad 488D3500 		leaq	.LC3(%rip), %rsi
- 12726      000000
- 12727 b3b4 488D3D00 		leaq	.LC1(%rip), %rdi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 394
-
-
- 12727      000000
- 12728 b3bb B8000000 		movl	$0, %eax
- 12728      00
- 12729 b3c0 E8000000 		call	KDbgMsg at PLT
- 12729      00
- 12730              	.L187:
- 12731 b3c5 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12731      60D8FFFF 
- 12732 b3cd F30F7F85 		movdqu	%xmm0, -5744(%rbp)
- 12732      90E9FFFF 
- 12733 b3d5 F30F6F85 		movdqu	-5744(%rbp), %xmm0
- 12733      90E9FFFF 
- 12734 b3dd F30F7F85 		movdqu	%xmm0, -5712(%rbp)
- 12734      B0E9FFFF 
- 12735              	.LBE3426:
- 12736              	.LBB3427:
- 12737              	.LBB3428:
- 12738              	.LBB3429:
- 12739              	.LBB3430:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 12740              		.loc 3 450 0
- 12741 b3e5 F30F6F85 		movdqu	-5712(%rbp), %xmm0
- 12741      B0E9FFFF 
- 12742 b3ed 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 12742      FF
- 12743              	.LBE3430:
- 12744              	.LBE3429:
- 12745              	.LBE3428:
- 12746              	.LBE3427:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 12747              		.loc 2 1688 0
- 12748 b3f2 660F7F85 		movdqa	%xmm0, -10144(%rbp)
- 12748      60D8FFFF 
- 12749              	.LBB3431:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 12750              		.loc 2 1689 0
- 12751 b3fa 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12751      60D8FFFF 
- 12752 b402 F30F7F85 		movdqu	%xmm0, -9632(%rbp)
- 12752      60DAFFFF 
- 12753 b40a E8000000 		call	KDbgWriterGet at PLT
- 12753      00
- 12754 b40f 4885C0   		testq	%rax, %rax
- 12755 b412 7479     		je	.L189
- 12756 b414 BF010000 		movl	$1, %edi
- 12756      00
- 12757 b419 E8000000 		call	KDbgCondToFlag at PLT
- 12757      00
- 12758 b41e 4889C6   		movq	%rax, %rsi
- 12759 b421 BF100000 		movl	$16, %edi
- 12759      00
- 12760 b426 E8000000 		call	KDbgTestModConds at PLT
- 12760      00
- 12761 b42b 84C0     		testb	%al, %al
- 12762 b42d 745E     		je	.L189
- 12763 b42f 8B856CDA 		movl	-9620(%rbp), %eax
- 12763      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 395
-
-
- 12764 b435 89C7     		movl	%eax, %edi
- 12765 b437 E8C44BFF 		call	bswap_32
- 12765      FF
- 12766 b43c 4189C5   		movl	%eax, %r13d
- 12767 b43f 8B8568DA 		movl	-9624(%rbp), %eax
- 12767      FFFF
- 12768 b445 89C7     		movl	%eax, %edi
- 12769 b447 E8B44BFF 		call	bswap_32
- 12769      FF
- 12770 b44c 4189C4   		movl	%eax, %r12d
- 12771 b44f 8B8564DA 		movl	-9628(%rbp), %eax
- 12771      FFFF
- 12772 b455 89C7     		movl	%eax, %edi
- 12773 b457 E8A44BFF 		call	bswap_32
- 12773      FF
- 12774 b45c 89C3     		movl	%eax, %ebx
- 12775 b45e 8B8560DA 		movl	-9632(%rbp), %eax
- 12775      FFFF
- 12776 b464 89C7     		movl	%eax, %edi
- 12777 b466 E8954BFF 		call	bswap_32
- 12777      FF
- 12778 b46b 4589E9   		movl	%r13d, %r9d
- 12779 b46e 4589E0   		movl	%r12d, %r8d
- 12780 b471 89D9     		movl	%ebx, %ecx
- 12781 b473 89C2     		movl	%eax, %edx
- 12782 b475 488D3500 		leaq	.LC4(%rip), %rsi
- 12782      000000
- 12783 b47c 488D3D00 		leaq	.LC1(%rip), %rdi
- 12783      000000
- 12784 b483 B8000000 		movl	$0, %eax
- 12784      00
- 12785 b488 E8000000 		call	KDbgMsg at PLT
- 12785      00
- 12786              	.L189:
- 12787              	.LBE3431:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 12788              		.loc 2 1690 0
- 12789 b48d 660F6F85 		movdqa	-10144(%rbp), %xmm0
- 12789      60D8FFFF 
- 12790              	.LBE3385:
- 12791              	.LBE3384:
-1930:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(6,0x04);    /* k24 : k25 : k26 : k27 */
- 12792              		.loc 2 1930 0
- 12793 b495 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 12793      40DCFFFF 
- 12794 b49d F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12794      20DCFFFF 
- 12795 b4a5 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 12795      C0E9FFFF 
- 12796              	.LBB3432:
- 12797              	.LBB3433:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 12798              		.loc 2 1565 0
- 12799 b4ad F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 12799      C0E9FFFF 
- 12800 b4b5 660F7F85 		movdqa	%xmm0, -10112(%rbp)
- 12800      80D8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 396
-
-
- 12801 b4bd 660F6F85 		movdqa	-10112(%rbp), %xmm0
- 12801      80D8FFFF 
- 12802 b4c5 F30F7F85 		movdqu	%xmm0, -5680(%rbp)
- 12802      D0E9FFFF 
- 12803              	.LBB3434:
- 12804              	.LBB3435:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12805              		.loc 2 1278 0
- 12806 b4cd 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12806      00000000 
- 12807 b4d5 F30F6F8D 		movdqu	-5680(%rbp), %xmm1
- 12807      D0E9FFFF 
- 12808 b4dd F30F7F8D 		movdqu	%xmm1, -5648(%rbp)
- 12808      F0E9FFFF 
- 12809 b4e5 F30F7F85 		movdqu	%xmm0, -5664(%rbp)
- 12809      E0E9FFFF 
- 12810 b4ed F30F6F85 		movdqu	-5648(%rbp), %xmm0
- 12810      F0E9FFFF 
- 12811 b4f5 F30F7F85 		movdqu	%xmm0, -5616(%rbp)
- 12811      10EAFFFF 
- 12812 b4fd F30F6F85 		movdqu	-5664(%rbp), %xmm0
- 12812      E0E9FFFF 
- 12813 b505 F30F7F85 		movdqu	%xmm0, -5632(%rbp)
- 12813      00EAFFFF 
- 12814              	.LBB3436:
- 12815              	.LBB3437:
- 12816              	.LBB3438:
- 12817              	.LBB3439:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12818              		.loc 3 529 0
- 12819 b50d F30F6F8D 		movdqu	-5632(%rbp), %xmm1
- 12819      00EAFFFF 
- 12820 b515 F30F6F85 		movdqu	-5616(%rbp), %xmm0
- 12820      10EAFFFF 
- 12821 b51d 660F3800 		pshufb	%xmm1, %xmm0
- 12821      C1
- 12822              	.LBE3439:
- 12823              	.LBE3438:
- 12824              	.LBE3437:
- 12825              	.LBE3436:
- 12826              	.LBE3435:
- 12827              	.LBE3434:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12828              		.loc 2 1567 0
- 12829 b522 660F7F85 		movdqa	%xmm0, -10112(%rbp)
- 12829      80D8FFFF 
- 12830 b52a 660F6F85 		movdqa	-10112(%rbp), %xmm0
- 12830      80D8FFFF 
- 12831 b532 660FEF85 		pxor	-5696(%rbp), %xmm0
- 12831      C0E9FFFF 
- 12832 b53a F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 12832      C0E9FFFF 
- 12833 b542 660F6F85 		movdqa	-10112(%rbp), %xmm0
- 12833      80D8FFFF 
- 12834 b54a F30F7F85 		movdqu	%xmm0, -5600(%rbp)
- 12834      20EAFFFF 
- 12835              	.LBB3440:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 397
-
-
- 12836              	.LBB3441:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12837              		.loc 2 1278 0
- 12838 b552 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12838      00000000 
- 12839 b55a F30F6F8D 		movdqu	-5600(%rbp), %xmm1
- 12839      20EAFFFF 
- 12840 b562 F30F7F8D 		movdqu	%xmm1, -5568(%rbp)
- 12840      40EAFFFF 
- 12841 b56a F30F7F85 		movdqu	%xmm0, -5584(%rbp)
- 12841      30EAFFFF 
- 12842 b572 F30F6F85 		movdqu	-5568(%rbp), %xmm0
- 12842      40EAFFFF 
- 12843 b57a F30F7F85 		movdqu	%xmm0, -5536(%rbp)
- 12843      60EAFFFF 
- 12844 b582 F30F6F85 		movdqu	-5584(%rbp), %xmm0
- 12844      30EAFFFF 
- 12845 b58a F30F7F85 		movdqu	%xmm0, -5552(%rbp)
- 12845      50EAFFFF 
- 12846              	.LBB3442:
- 12847              	.LBB3443:
- 12848              	.LBB3444:
- 12849              	.LBB3445:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12850              		.loc 3 529 0
- 12851 b592 F30F6F8D 		movdqu	-5552(%rbp), %xmm1
- 12851      50EAFFFF 
- 12852 b59a F30F6F85 		movdqu	-5536(%rbp), %xmm0
- 12852      60EAFFFF 
- 12853 b5a2 660F3800 		pshufb	%xmm1, %xmm0
- 12853      C1
- 12854              	.LBE3445:
- 12855              	.LBE3444:
- 12856              	.LBE3443:
- 12857              	.LBE3442:
- 12858              	.LBE3441:
- 12859              	.LBE3440:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12860              		.loc 2 1568 0
- 12861 b5a7 660F7F85 		movdqa	%xmm0, -10112(%rbp)
- 12861      80D8FFFF 
- 12862 b5af 660F6F85 		movdqa	-10112(%rbp), %xmm0
- 12862      80D8FFFF 
- 12863 b5b7 660FEF85 		pxor	-5696(%rbp), %xmm0
- 12863      C0E9FFFF 
- 12864 b5bf F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 12864      C0E9FFFF 
- 12865 b5c7 660F6F85 		movdqa	-10112(%rbp), %xmm0
- 12865      80D8FFFF 
- 12866 b5cf F30F7F85 		movdqu	%xmm0, -5520(%rbp)
- 12866      70EAFFFF 
- 12867              	.LBB3446:
- 12868              	.LBB3447:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12869              		.loc 2 1278 0
- 12870 b5d7 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12870      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 398
-
-
- 12871 b5df F30F6F8D 		movdqu	-5520(%rbp), %xmm1
- 12871      70EAFFFF 
- 12872 b5e7 F30F7F8D 		movdqu	%xmm1, -5488(%rbp)
- 12872      90EAFFFF 
- 12873 b5ef F30F7F85 		movdqu	%xmm0, -5504(%rbp)
- 12873      80EAFFFF 
- 12874 b5f7 F30F6F85 		movdqu	-5488(%rbp), %xmm0
- 12874      90EAFFFF 
- 12875 b5ff F30F7F85 		movdqu	%xmm0, -5456(%rbp)
- 12875      B0EAFFFF 
- 12876 b607 F30F6F85 		movdqu	-5504(%rbp), %xmm0
- 12876      80EAFFFF 
- 12877 b60f F30F7F85 		movdqu	%xmm0, -5472(%rbp)
- 12877      A0EAFFFF 
- 12878              	.LBB3448:
- 12879              	.LBB3449:
- 12880              	.LBB3450:
- 12881              	.LBB3451:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 12882              		.loc 3 529 0
- 12883 b617 F30F6F8D 		movdqu	-5472(%rbp), %xmm1
- 12883      A0EAFFFF 
- 12884 b61f F30F6F85 		movdqu	-5456(%rbp), %xmm0
- 12884      B0EAFFFF 
- 12885 b627 660F3800 		pshufb	%xmm1, %xmm0
- 12885      C1
- 12886              	.LBE3451:
- 12887              	.LBE3450:
- 12888              	.LBE3449:
- 12889              	.LBE3448:
- 12890              	.LBE3447:
- 12891              	.LBE3446:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 12892              		.loc 2 1569 0
- 12893 b62c 660F7F85 		movdqa	%xmm0, -10112(%rbp)
- 12893      80D8FFFF 
- 12894 b634 660F6F85 		movdqa	-10112(%rbp), %xmm0
- 12894      80D8FFFF 
- 12895 b63c 660FEF85 		pxor	-5696(%rbp), %xmm0
- 12895      C0E9FFFF 
- 12896 b644 F30F7F85 		movdqu	%xmm0, -5696(%rbp)
- 12896      C0E9FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 12897              		.loc 2 1571 0
- 12898 b64c F30F6F85 		movdqu	-5696(%rbp), %xmm0
- 12898      C0E9FFFF 
- 12899              	.LBE3433:
- 12900              	.LBE3432:
- 12901              		.loc 2 1930 0
- 12902 b654 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 12902      20DCFFFF 
- 12903 b65c F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12903      20DCFFFF 
- 12904 b664 F30F7F85 		movdqu	%xmm0, -5424(%rbp)
- 12904      D0EAFFFF 
- 12905 b66c F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 12905      40DCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 399
-
-
- 12906 b674 F30F7F85 		movdqu	%xmm0, -5440(%rbp)
- 12906      C0EAFFFF 
- 12907              	.LBB3452:
- 12908              	.LBB3453:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 12909              		.loc 2 178 0
- 12910 b67c F30F6F85 		movdqu	-5440(%rbp), %xmm0
- 12910      C0EAFFFF 
- 12911 b684 F30F6F8D 		movdqu	-5424(%rbp), %xmm1
- 12911      D0EAFFFF 
- 12912 b68c 660FEFC1 		pxor	%xmm1, %xmm0
- 12913              	.LBE3453:
- 12914              	.LBE3452:
- 12915              		.loc 2 1930 0
- 12916 b690 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 12916      20DCFFFF 
- 12917 b698 488B8598 		movq	-9832(%rbp), %rax
- 12917      D9FFFF
- 12918 b69f 4883C060 		addq	$96, %rax
- 12919 b6a3 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12919      20DCFFFF 
- 12920 b6ab F30F7F00 		movdqu	%xmm0, (%rax)
- 12921 b6af F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 12921      20DCFFFF 
- 12922 b6b7 F30F7F85 		movdqu	%xmm0, -5408(%rbp)
- 12922      E0EAFFFF 
- 12923              	.LBB3454:
- 12924              	.LBB3455:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 12925              		.loc 2 1656 0
- 12926 b6bf F30F6F85 		movdqu	-5408(%rbp), %xmm0
- 12926      E0EAFFFF 
- 12927 b6c7 F30F7F85 		movdqu	%xmm0, -9552(%rbp)
- 12927      B0DAFFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 12928              		.loc 2 1657 0
- 12929 b6cf 8B85BCDA 		movl	-9540(%rbp), %eax
- 12929      FFFF
- 12930 b6d5 8985F8EA 		movl	%eax, -5384(%rbp)
- 12930      FFFF
- 12931              	.LBB3456:
- 12932              	.LBB3457:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 12933              		.loc 2 740 0
- 12934 b6db 8B85F8EA 		movl	-5384(%rbp), %eax
- 12934      FFFF
- 12935 b6e1 8985A0DA 		movl	%eax, -9568(%rbp)
- 12935      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 12936              		.loc 2 741 0
- 12937 b6e7 C785FCEA 		movl	$0, -5380(%rbp)
- 12937      FFFF0000 
- 12937      0000
- 12938 b6f1 EB36     		jmp	.L190
- 12939              	.L191:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 12940              		.loc 2 742 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 400
-
-
- 12941 b6f3 8B8DFCEA 		movl	-5380(%rbp), %ecx
- 12941      FFFF
- 12942 b6f9 8B85FCEA 		movl	-5380(%rbp), %eax
- 12942      FFFF
- 12943 b6ff 89C0     		mov	%eax, %eax
- 12944 b701 0FB68405 		movzbl	-9568(%rbp,%rax), %eax
- 12944      A0DAFFFF 
- 12945 b709 0FB6C0   		movzbl	%al, %eax
- 12946 b70c 89C2     		mov	%eax, %edx
- 12947 b70e 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 12947      000000
- 12948 b715 0FB61402 		movzbl	(%rdx,%rax), %edx
- 12949 b719 89C8     		mov	%ecx, %eax
- 12950 b71b 889405A0 		movb	%dl, -9568(%rbp,%rax)
- 12950      DAFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 12951              		.loc 2 741 0
- 12952 b722 8385FCEA 		addl	$1, -5380(%rbp)
- 12952      FFFF01
- 12953              	.L190:
- 12954 b729 83BDFCEA 		cmpl	$3, -5380(%rbp)
- 12954      FFFF03
- 12955 b730 76C1     		jbe	.L191
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 12956              		.loc 2 743 0
- 12957 b732 8B85A0DA 		movl	-9568(%rbp), %eax
- 12957      FFFF
- 12958              	.LBE3457:
- 12959              	.LBE3456:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 12960              		.loc 2 1657 0
- 12961 b738 8985F4EA 		movl	%eax, -5388(%rbp)
- 12961      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 12962              		.loc 2 1659 0
- 12963 b73e 8B85F4EA 		movl	-5388(%rbp), %eax
- 12963      FFFF
- 12964 b744 8985BCDA 		movl	%eax, -9540(%rbp)
- 12964      FFFF
- 12965 b74a 8B85BCDA 		movl	-9540(%rbp), %eax
- 12965      FFFF
- 12966 b750 8985B8DA 		movl	%eax, -9544(%rbp)
- 12966      FFFF
- 12967 b756 8B85B8DA 		movl	-9544(%rbp), %eax
- 12967      FFFF
- 12968 b75c 8985B4DA 		movl	%eax, -9548(%rbp)
- 12968      FFFF
- 12969 b762 8B85B4DA 		movl	-9548(%rbp), %eax
- 12969      FFFF
- 12970 b768 8985B0DA 		movl	%eax, -9552(%rbp)
- 12970      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 12971              		.loc 2 1660 0
- 12972 b76e F30F6F85 		movdqu	-9552(%rbp), %xmm0
- 12972      B0DAFFFF 
- 12973              	.LBE3455:
- 12974              	.LBE3454:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 401
-
-
-1931:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(7);         /* k28 : k29 : k30 : k31 */
- 12975              		.loc 2 1931 0
- 12976 b776 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 12976      40DCFFFF 
- 12977 b77e F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 12977      30DCFFFF 
- 12978 b786 F30F7F85 		movdqu	%xmm0, -5376(%rbp)
- 12978      00EBFFFF 
- 12979              	.LBB3458:
- 12980              	.LBB3459:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 12981              		.loc 2 1565 0
- 12982 b78e F30F6F85 		movdqu	-5376(%rbp), %xmm0
- 12982      00EBFFFF 
- 12983 b796 660F7F85 		movdqa	%xmm0, -10096(%rbp)
- 12983      90D8FFFF 
- 12984 b79e 660F6F85 		movdqa	-10096(%rbp), %xmm0
- 12984      90D8FFFF 
- 12985 b7a6 F30F7F85 		movdqu	%xmm0, -5360(%rbp)
- 12985      10EBFFFF 
- 12986              	.LBB3460:
- 12987              	.LBB3461:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 12988              		.loc 2 1278 0
- 12989 b7ae 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 12989      00000000 
- 12990 b7b6 F30F6F8D 		movdqu	-5360(%rbp), %xmm1
- 12990      10EBFFFF 
- 12991 b7be F30F7F8D 		movdqu	%xmm1, -5328(%rbp)
- 12991      30EBFFFF 
- 12992 b7c6 F30F7F85 		movdqu	%xmm0, -5344(%rbp)
- 12992      20EBFFFF 
- 12993 b7ce F30F6F85 		movdqu	-5328(%rbp), %xmm0
- 12993      30EBFFFF 
- 12994 b7d6 F30F7F85 		movdqu	%xmm0, -5296(%rbp)
- 12994      50EBFFFF 
- 12995 b7de F30F6F85 		movdqu	-5344(%rbp), %xmm0
- 12995      20EBFFFF 
- 12996 b7e6 F30F7F85 		movdqu	%xmm0, -5312(%rbp)
- 12996      40EBFFFF 
- 12997              	.LBB3462:
- 12998              	.LBB3463:
- 12999              	.LBB3464:
- 13000              	.LBB3465:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13001              		.loc 3 529 0
- 13002 b7ee F30F6F8D 		movdqu	-5312(%rbp), %xmm1
- 13002      40EBFFFF 
- 13003 b7f6 F30F6F85 		movdqu	-5296(%rbp), %xmm0
- 13003      50EBFFFF 
- 13004 b7fe 660F3800 		pshufb	%xmm1, %xmm0
- 13004      C1
- 13005              	.LBE3465:
- 13006              	.LBE3464:
- 13007              	.LBE3463:
- 13008              	.LBE3462:
- 13009              	.LBE3461:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 402
-
-
- 13010              	.LBE3460:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13011              		.loc 2 1567 0
- 13012 b803 660F7F85 		movdqa	%xmm0, -10096(%rbp)
- 13012      90D8FFFF 
- 13013 b80b 660F6F85 		movdqa	-10096(%rbp), %xmm0
- 13013      90D8FFFF 
- 13014 b813 660FEF85 		pxor	-5376(%rbp), %xmm0
- 13014      00EBFFFF 
- 13015 b81b F30F7F85 		movdqu	%xmm0, -5376(%rbp)
- 13015      00EBFFFF 
- 13016 b823 660F6F85 		movdqa	-10096(%rbp), %xmm0
- 13016      90D8FFFF 
- 13017 b82b F30F7F85 		movdqu	%xmm0, -5280(%rbp)
- 13017      60EBFFFF 
- 13018              	.LBB3466:
- 13019              	.LBB3467:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13020              		.loc 2 1278 0
- 13021 b833 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13021      00000000 
- 13022 b83b F30F6F8D 		movdqu	-5280(%rbp), %xmm1
- 13022      60EBFFFF 
- 13023 b843 F30F7F8D 		movdqu	%xmm1, -5248(%rbp)
- 13023      80EBFFFF 
- 13024 b84b F30F7F85 		movdqu	%xmm0, -5264(%rbp)
- 13024      70EBFFFF 
- 13025 b853 F30F6F85 		movdqu	-5248(%rbp), %xmm0
- 13025      80EBFFFF 
- 13026 b85b F30F7F85 		movdqu	%xmm0, -5216(%rbp)
- 13026      A0EBFFFF 
- 13027 b863 F30F6F85 		movdqu	-5264(%rbp), %xmm0
- 13027      70EBFFFF 
- 13028 b86b F30F7F85 		movdqu	%xmm0, -5232(%rbp)
- 13028      90EBFFFF 
- 13029              	.LBB3468:
- 13030              	.LBB3469:
- 13031              	.LBB3470:
- 13032              	.LBB3471:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13033              		.loc 3 529 0
- 13034 b873 F30F6F8D 		movdqu	-5232(%rbp), %xmm1
- 13034      90EBFFFF 
- 13035 b87b F30F6F85 		movdqu	-5216(%rbp), %xmm0
- 13035      A0EBFFFF 
- 13036 b883 660F3800 		pshufb	%xmm1, %xmm0
- 13036      C1
- 13037              	.LBE3471:
- 13038              	.LBE3470:
- 13039              	.LBE3469:
- 13040              	.LBE3468:
- 13041              	.LBE3467:
- 13042              	.LBE3466:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13043              		.loc 2 1568 0
- 13044 b888 660F7F85 		movdqa	%xmm0, -10096(%rbp)
- 13044      90D8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 403
-
-
- 13045 b890 660F6F85 		movdqa	-10096(%rbp), %xmm0
- 13045      90D8FFFF 
- 13046 b898 660FEF85 		pxor	-5376(%rbp), %xmm0
- 13046      00EBFFFF 
- 13047 b8a0 F30F7F85 		movdqu	%xmm0, -5376(%rbp)
- 13047      00EBFFFF 
- 13048 b8a8 660F6F85 		movdqa	-10096(%rbp), %xmm0
- 13048      90D8FFFF 
- 13049 b8b0 F30F7F85 		movdqu	%xmm0, -5200(%rbp)
- 13049      B0EBFFFF 
- 13050              	.LBB3472:
- 13051              	.LBB3473:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13052              		.loc 2 1278 0
- 13053 b8b8 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13053      00000000 
- 13054 b8c0 F30F6F8D 		movdqu	-5200(%rbp), %xmm1
- 13054      B0EBFFFF 
- 13055 b8c8 F30F7F8D 		movdqu	%xmm1, -5168(%rbp)
- 13055      D0EBFFFF 
- 13056 b8d0 F30F7F85 		movdqu	%xmm0, -5184(%rbp)
- 13056      C0EBFFFF 
- 13057 b8d8 F30F6F85 		movdqu	-5168(%rbp), %xmm0
- 13057      D0EBFFFF 
- 13058 b8e0 F30F7F85 		movdqu	%xmm0, -5136(%rbp)
- 13058      F0EBFFFF 
- 13059 b8e8 F30F6F85 		movdqu	-5184(%rbp), %xmm0
- 13059      C0EBFFFF 
- 13060 b8f0 F30F7F85 		movdqu	%xmm0, -5152(%rbp)
- 13060      E0EBFFFF 
- 13061              	.LBB3474:
- 13062              	.LBB3475:
- 13063              	.LBB3476:
- 13064              	.LBB3477:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13065              		.loc 3 529 0
- 13066 b8f8 F30F6F8D 		movdqu	-5152(%rbp), %xmm1
- 13066      E0EBFFFF 
- 13067 b900 F30F6F85 		movdqu	-5136(%rbp), %xmm0
- 13067      F0EBFFFF 
- 13068 b908 660F3800 		pshufb	%xmm1, %xmm0
- 13068      C1
- 13069              	.LBE3477:
- 13070              	.LBE3476:
- 13071              	.LBE3475:
- 13072              	.LBE3474:
- 13073              	.LBE3473:
- 13074              	.LBE3472:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13075              		.loc 2 1569 0
- 13076 b90d 660F7F85 		movdqa	%xmm0, -10096(%rbp)
- 13076      90D8FFFF 
- 13077 b915 660F6F85 		movdqa	-10096(%rbp), %xmm0
- 13077      90D8FFFF 
- 13078 b91d 660FEF85 		pxor	-5376(%rbp), %xmm0
- 13078      00EBFFFF 
- 13079 b925 F30F7F85 		movdqu	%xmm0, -5376(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 404
-
-
- 13079      00EBFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13080              		.loc 2 1571 0
- 13081 b92d F30F6F85 		movdqu	-5376(%rbp), %xmm0
- 13081      00EBFFFF 
- 13082              	.LBE3459:
- 13083              	.LBE3458:
- 13084              		.loc 2 1931 0
- 13085 b935 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 13085      30DCFFFF 
- 13086 b93d F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 13086      30DCFFFF 
- 13087 b945 F30F7F85 		movdqu	%xmm0, -5104(%rbp)
- 13087      10ECFFFF 
- 13088 b94d F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 13088      40DCFFFF 
- 13089 b955 F30F7F85 		movdqu	%xmm0, -5120(%rbp)
- 13089      00ECFFFF 
- 13090              	.LBB3478:
- 13091              	.LBB3479:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 13092              		.loc 2 178 0
- 13093 b95d F30F6F85 		movdqu	-5120(%rbp), %xmm0
- 13093      00ECFFFF 
- 13094 b965 F30F6F8D 		movdqu	-5104(%rbp), %xmm1
- 13094      10ECFFFF 
- 13095 b96d 660FEFC1 		pxor	%xmm1, %xmm0
- 13096              	.LBE3479:
- 13097              	.LBE3478:
- 13098              		.loc 2 1931 0
- 13099 b971 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 13099      30DCFFFF 
- 13100 b979 488B8598 		movq	-9832(%rbp), %rax
- 13100      D9FFFF
- 13101 b980 4883C070 		addq	$112, %rax
- 13102 b984 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 13102      30DCFFFF 
- 13103 b98c F30F7F00 		movdqu	%xmm0, (%rax)
- 13104 b990 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 13104      30DCFFFF 
- 13105 b998 F30F7F85 		movdqu	%xmm0, -5072(%rbp)
- 13105      30ECFFFF 
- 13106              	.LBB3480:
- 13107              	.LBB3481:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13108              		.loc 2 1681 0
- 13109 b9a0 B8080000 		movl	$8, %eax
- 13109      00
- 13110 b9a5 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13110      00000000 
- 13111 b9ad F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 13111      50ECFFFF 
- 13112 b9b5 89854CEC 		movl	%eax, -5044(%rbp)
- 13112      FFFF
- 13113 b9bb F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 13113      50ECFFFF 
- 13114 b9c3 F30F7F85 		movdqu	%xmm0, -5008(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 405
-
-
- 13114      70ECFFFF 
- 13115 b9cb 8B854CEC 		movl	-5044(%rbp), %eax
- 13115      FFFF
- 13116 b9d1 89856CEC 		movl	%eax, -5012(%rbp)
- 13116      FFFF
- 13117              	.LBB3482:
- 13118              	.LBB3483:
- 13119              	.LBB3484:
- 13120              	.LBB3485:
- 13121              		.loc 3 598 0
- 13122 b9d7 8B856CEC 		movl	-5012(%rbp), %eax
- 13122      FFFF
- 13123 b9dd F30F6F85 		movdqu	-5008(%rbp), %xmm0
- 13123      70ECFFFF 
- 13124 b9e5 660F3A22 		pinsrd	$3, %eax, %xmm0
- 13124      C003
- 13125              	.LBE3485:
- 13126              	.LBE3484:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 13127              		.loc 2 519 0
- 13128 b9eb F30F7F85 		movdqu	%xmm0, -5040(%rbp)
- 13128      50ECFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13129              		.loc 2 526 0
- 13130 b9f3 F30F6F85 		movdqu	-5040(%rbp), %xmm0
- 13130      50ECFFFF 
- 13131              	.LBE3483:
- 13132              	.LBE3482:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13133              		.loc 2 1681 0
- 13134 b9fb 660F7F85 		movdqa	%xmm0, -10064(%rbp)
- 13134      B0D8FFFF 
- 13135 ba03 F30F6F85 		movdqu	-5072(%rbp), %xmm0
- 13135      30ECFFFF 
- 13136 ba0b F30F7F85 		movdqu	%xmm0, -4992(%rbp)
- 13136      80ECFFFF 
- 13137 ba13 F30F6F85 		movdqu	-4992(%rbp), %xmm0
- 13137      80ECFFFF 
- 13138 ba1b F30F7F85 		movdqu	%xmm0, -4960(%rbp)
- 13138      A0ECFFFF 
- 13139 ba23 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 13139      000000
- 13140 ba2a 48898598 		movq	%rax, -4968(%rbp)
- 13140      ECFFFF
- 13141              	.LBB3486:
- 13142              	.LBB3487:
- 13143              	.LBB3488:
- 13144              	.LBB3489:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 13145              		.loc 2 851 0
- 13146 ba31 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13146      00000000 
- 13147 ba39 F30F7F85 		movdqu	%xmm0, -4928(%rbp)
- 13147      C0ECFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13148              		.loc 2 854 0
- 13149 ba41 660F6F05 		movdqa	vec_0F(%rip), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 406
-
-
- 13149      00000000 
- 13150 ba49 F30F6F8D 		movdqu	-4960(%rbp), %xmm1
- 13150      A0ECFFFF 
- 13151 ba51 F30F7F8D 		movdqu	%xmm1, -4848(%rbp)
- 13151      10EDFFFF 
- 13152 ba59 F30F7F85 		movdqu	%xmm0, -4864(%rbp)
- 13152      00EDFFFF 
- 13153              	.LBB3490:
- 13154              	.LBB3491:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 13155              		.loc 2 206 0
- 13156 ba61 F30F6F85 		movdqu	-4864(%rbp), %xmm0
- 13156      00EDFFFF 
- 13157 ba69 F30F6F8D 		movdqu	-4848(%rbp), %xmm1
- 13157      10EDFFFF 
- 13158 ba71 660FDBC1 		pand	%xmm1, %xmm0
- 13159              	.LBE3491:
- 13160              	.LBE3490:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13161              		.loc 2 854 0
- 13162 ba75 F30F7F85 		movdqu	%xmm0, -4880(%rbp)
- 13162      F0ECFFFF 
- 13163 ba7d F30F6F85 		movdqu	-4960(%rbp), %xmm0
- 13163      A0ECFFFF 
- 13164 ba85 F30F7F85 		movdqu	%xmm0, -4816(%rbp)
- 13164      30EDFFFF 
- 13165              	.LBB3492:
- 13166              	.LBB3493:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 13167              		.loc 3 433 0
- 13168 ba8d F30F6F85 		movdqu	-4816(%rbp), %xmm0
- 13168      30EDFFFF 
- 13169 ba95 660F72D0 		psrld	$4, %xmm0
- 13169      04
- 13170              	.LBE3493:
- 13171              	.LBE3492:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 13172              		.loc 2 857 0
- 13173 ba9a F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 13173      E0ECFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13174              		.loc 2 859 0
- 13175 baa2 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 13175      00000000 
- 13176 baaa F30F6F8D 		movdqu	-4896(%rbp), %xmm1
- 13176      E0ECFFFF 
- 13177 bab2 F30F7F8D 		movdqu	%xmm1, -4784(%rbp)
- 13177      50EDFFFF 
- 13178 baba F30F7F85 		movdqu	%xmm0, -4800(%rbp)
- 13178      40EDFFFF 
- 13179              	.LBB3494:
- 13180              	.LBB3495:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 13181              		.loc 2 206 0
- 13182 bac2 F30F6F85 		movdqu	-4800(%rbp), %xmm0
- 13182      40EDFFFF 
- 13183 baca F30F6F8D 		movdqu	-4784(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 407
-
-
- 13183      50EDFFFF 
- 13184 bad2 660FDBC1 		pand	%xmm1, %xmm0
- 13185              	.LBE3495:
- 13186              	.LBE3494:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13187              		.loc 2 859 0
- 13188 bad6 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 13188      E0ECFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 13189              		.loc 2 866 0
- 13190 bade C785BCEC 		movl	$0, -4932(%rbp)
- 13190      FFFF0000 
- 13190      0000
- 13191 bae8 E9BE0100 		jmp	.L192
- 13191      00
- 13192              	.L193:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 13193              		.loc 2 868 0
- 13194 baed 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 13194      00000000 
- 13195 baf5 F30F7F85 		movdqu	%xmm0, -4752(%rbp)
- 13195      70EDFFFF 
- 13196 bafd F30F6F85 		movdqu	-4896(%rbp), %xmm0
- 13196      E0ECFFFF 
- 13197 bb05 F30F7F85 		movdqu	%xmm0, -4768(%rbp)
- 13197      60EDFFFF 
- 13198 bb0d F30F6F85 		movdqu	-4752(%rbp), %xmm0
- 13198      70EDFFFF 
- 13199 bb15 F30F7F85 		movdqu	%xmm0, -4720(%rbp)
- 13199      90EDFFFF 
- 13200 bb1d F30F6F85 		movdqu	-4768(%rbp), %xmm0
- 13200      60EDFFFF 
- 13201 bb25 F30F7F85 		movdqu	%xmm0, -4736(%rbp)
- 13201      80EDFFFF 
- 13202              	.LBB3496:
- 13203              	.LBB3497:
- 13204              	.LBB3498:
- 13205              	.LBB3499:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13206              		.loc 3 529 0
- 13207 bb2d F30F6F8D 		movdqu	-4736(%rbp), %xmm1
- 13207      80EDFFFF 
- 13208 bb35 F30F6F85 		movdqu	-4720(%rbp), %xmm0
- 13208      90EDFFFF 
- 13209 bb3d 660F3800 		pshufb	%xmm1, %xmm0
- 13209      C1
- 13210              	.LBE3499:
- 13211              	.LBE3498:
- 13212              	.LBE3497:
- 13213              	.LBE3496:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 13214              		.loc 2 868 0
- 13215 bb42 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 13215      D0ECFFFF 
- 13216 bb4a F30F6F85 		movdqu	-4880(%rbp), %xmm0
- 13216      F0ECFFFF 
- 13217 bb52 F30F7F85 		movdqu	%xmm0, -4688(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 408
-
-
- 13217      B0EDFFFF 
- 13218 bb5a F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 13218      D0ECFFFF 
- 13219 bb62 F30F7F85 		movdqu	%xmm0, -4704(%rbp)
- 13219      A0EDFFFF 
- 13220              	.LBB3500:
- 13221              	.LBB3501:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 13222              		.loc 2 234 0
- 13223 bb6a F30F6F85 		movdqu	-4704(%rbp), %xmm0
- 13223      A0EDFFFF 
- 13224 bb72 F30F6F8D 		movdqu	-4688(%rbp), %xmm1
- 13224      B0EDFFFF 
- 13225 bb7a 660FEBC1 		por	%xmm1, %xmm0
- 13226              	.LBE3501:
- 13227              	.LBE3500:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 13228              		.loc 2 870 0
- 13229 bb7e F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 13229      D0ECFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 13230              		.loc 2 872 0
- 13231 bb86 8B85BCEC 		mov	-4932(%rbp), %eax
- 13231      FFFF
- 13232 bb8c 48C1E004 		salq	$4, %rax
- 13233 bb90 48038598 		addq	-4968(%rbp), %rax
- 13233      ECFFFF
- 13234 bb97 660F6F00 		movdqa	(%rax), %xmm0
- 13235 bb9b F30F7F85 		movdqu	%xmm0, -4656(%rbp)
- 13235      D0EDFFFF 
- 13236 bba3 F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 13236      D0ECFFFF 
- 13237 bbab F30F7F85 		movdqu	%xmm0, -4672(%rbp)
- 13237      C0EDFFFF 
- 13238 bbb3 F30F6F85 		movdqu	-4656(%rbp), %xmm0
- 13238      D0EDFFFF 
- 13239 bbbb F30F7F85 		movdqu	%xmm0, -4624(%rbp)
- 13239      F0EDFFFF 
- 13240 bbc3 F30F6F85 		movdqu	-4672(%rbp), %xmm0
- 13240      C0EDFFFF 
- 13241 bbcb F30F7F85 		movdqu	%xmm0, -4640(%rbp)
- 13241      E0EDFFFF 
- 13242              	.LBB3502:
- 13243              	.LBB3503:
- 13244              	.LBB3504:
- 13245              	.LBB3505:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13246              		.loc 3 529 0
- 13247 bbd3 F30F6F8D 		movdqu	-4640(%rbp), %xmm1
- 13247      E0EDFFFF 
- 13248 bbdb F30F6F85 		movdqu	-4624(%rbp), %xmm0
- 13248      F0EDFFFF 
- 13249 bbe3 660F3800 		pshufb	%xmm1, %xmm0
- 13249      C1
- 13250              	.LBE3505:
- 13251              	.LBE3504:
- 13252              	.LBE3503:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 409
-
-
- 13253              	.LBE3502:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 13254              		.loc 2 872 0
- 13255 bbe8 F30F7F85 		movdqu	%xmm0, -4912(%rbp)
- 13255      D0ECFFFF 
- 13256 bbf0 F30F6F85 		movdqu	-4928(%rbp), %xmm0
- 13256      C0ECFFFF 
- 13257 bbf8 F30F7F85 		movdqu	%xmm0, -4592(%rbp)
- 13257      10EEFFFF 
- 13258 bc00 F30F6F85 		movdqu	-4912(%rbp), %xmm0
- 13258      D0ECFFFF 
- 13259 bc08 F30F7F85 		movdqu	%xmm0, -4608(%rbp)
- 13259      00EEFFFF 
- 13260              	.LBB3506:
- 13261              	.LBB3507:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 13262              		.loc 2 234 0
- 13263 bc10 F30F6F85 		movdqu	-4608(%rbp), %xmm0
- 13263      00EEFFFF 
- 13264 bc18 F30F6F8D 		movdqu	-4592(%rbp), %xmm1
- 13264      10EEFFFF 
- 13265 bc20 660FEBC1 		por	%xmm1, %xmm0
- 13266              	.LBE3507:
- 13267              	.LBE3506:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 13268              		.loc 2 874 0
- 13269 bc24 F30F7F85 		movdqu	%xmm0, -4928(%rbp)
- 13269      C0ECFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 13270              		.loc 2 876 0
- 13271 bc2c 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 13271      00000000 
- 13272 bc34 F30F6F8D 		movdqu	-4896(%rbp), %xmm1
- 13272      E0ECFFFF 
- 13273 bc3c F30F7F8D 		movdqu	%xmm1, -4560(%rbp)
- 13273      30EEFFFF 
- 13274 bc44 F30F7F85 		movdqu	%xmm0, -4576(%rbp)
- 13274      20EEFFFF 
- 13275              	.LBB3508:
- 13276              	.LBB3509:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 13277              		.loc 2 290 0
- 13278 bc4c F30F6F8D 		movdqu	-4576(%rbp), %xmm1
- 13278      20EEFFFF 
- 13279 bc54 F30F6F85 		movdqu	-4560(%rbp), %xmm0
- 13279      30EEFFFF 
- 13280 bc5c 660FF8C1 		psubb	%xmm1, %xmm0
- 13281              	.LBE3509:
- 13282              	.LBE3508:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 13283              		.loc 2 876 0
- 13284 bc60 F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 13284      E0ECFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13285              		.loc 2 878 0
- 13286 bc68 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 13286      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 410
-
-
- 13287 bc70 F30F6F8D 		movdqu	-4896(%rbp), %xmm1
- 13287      E0ECFFFF 
- 13288 bc78 F30F7F8D 		movdqu	%xmm1, -4528(%rbp)
- 13288      50EEFFFF 
- 13289 bc80 F30F7F85 		movdqu	%xmm0, -4544(%rbp)
- 13289      40EEFFFF 
- 13290              	.LBB3510:
- 13291              	.LBB3511:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 13292              		.loc 2 206 0
- 13293 bc88 F30F6F85 		movdqu	-4544(%rbp), %xmm0
- 13293      40EEFFFF 
- 13294 bc90 F30F6F8D 		movdqu	-4528(%rbp), %xmm1
- 13294      50EEFFFF 
- 13295 bc98 660FDBC1 		pand	%xmm1, %xmm0
- 13296              	.LBE3511:
- 13297              	.LBE3510:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13298              		.loc 2 878 0
- 13299 bc9c F30F7F85 		movdqu	%xmm0, -4896(%rbp)
- 13299      E0ECFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 13300              		.loc 2 866 0
- 13301 bca4 8385BCEC 		addl	$1, -4932(%rbp)
- 13301      FFFF01
- 13302              	.L192:
- 13303 bcab 83BDBCEC 		cmpl	$15, -4932(%rbp)
- 13303      FFFF0F
- 13304 bcb2 0F8635FE 		jbe	.L193
- 13304      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 13305              		.loc 2 882 0
- 13306 bcb8 F30F6F85 		movdqu	-4928(%rbp), %xmm0
- 13306      C0ECFFFF 
- 13307              	.LBE3489:
- 13308              	.LBE3488:
- 13309              	.LBE3487:
- 13310              	.LBE3486:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 13311              		.loc 2 1682 0
- 13312 bcc0 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 13312      A0D8FFFF 
- 13313              	.LBB3512:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 13314              		.loc 2 1683 0
- 13315 bcc8 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13315      A0D8FFFF 
- 13316 bcd0 F30F7F85 		movdqu	%xmm0, -9488(%rbp)
- 13316      F0DAFFFF 
- 13317 bcd8 E8000000 		call	KDbgWriterGet at PLT
- 13317      00
- 13318 bcdd 4885C0   		testq	%rax, %rax
- 13319 bce0 7479     		je	.L195
- 13320 bce2 BF010000 		movl	$1, %edi
- 13320      00
- 13321 bce7 E8000000 		call	KDbgCondToFlag at PLT
- 13321      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 411
-
-
- 13322 bcec 4889C6   		movq	%rax, %rsi
- 13323 bcef BF100000 		movl	$16, %edi
- 13323      00
- 13324 bcf4 E8000000 		call	KDbgTestModConds at PLT
- 13324      00
- 13325 bcf9 84C0     		testb	%al, %al
- 13326 bcfb 745E     		je	.L195
- 13327 bcfd 8B85FCDA 		movl	-9476(%rbp), %eax
- 13327      FFFF
- 13328 bd03 89C7     		movl	%eax, %edi
- 13329 bd05 E8F642FF 		call	bswap_32
- 13329      FF
- 13330 bd0a 4189C5   		movl	%eax, %r13d
- 13331 bd0d 8B85F8DA 		movl	-9480(%rbp), %eax
- 13331      FFFF
- 13332 bd13 89C7     		movl	%eax, %edi
- 13333 bd15 E8E642FF 		call	bswap_32
- 13333      FF
- 13334 bd1a 4189C4   		movl	%eax, %r12d
- 13335 bd1d 8B85F4DA 		movl	-9484(%rbp), %eax
- 13335      FFFF
- 13336 bd23 89C7     		movl	%eax, %edi
- 13337 bd25 E8D642FF 		call	bswap_32
- 13337      FF
- 13338 bd2a 89C3     		movl	%eax, %ebx
- 13339 bd2c 8B85F0DA 		movl	-9488(%rbp), %eax
- 13339      FFFF
- 13340 bd32 89C7     		movl	%eax, %edi
- 13341 bd34 E8C742FF 		call	bswap_32
- 13341      FF
- 13342 bd39 4589E9   		movl	%r13d, %r9d
- 13343 bd3c 4589E0   		movl	%r12d, %r8d
- 13344 bd3f 89D9     		movl	%ebx, %ecx
- 13345 bd41 89C2     		movl	%eax, %edx
- 13346 bd43 488D3500 		leaq	.LC0(%rip), %rsi
- 13346      000000
- 13347 bd4a 488D3D00 		leaq	.LC1(%rip), %rdi
- 13347      000000
- 13348 bd51 B8000000 		movl	$0, %eax
- 13348      00
- 13349 bd56 E8000000 		call	KDbgMsg at PLT
- 13349      00
- 13350              	.L195:
- 13351 bd5b 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13351      A0D8FFFF 
- 13352 bd63 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 13352      60EEFFFF 
- 13353              	.LBE3512:
- 13354              	.LBB3513:
- 13355              	.LBB3514:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 13356              		.loc 2 667 0
- 13357 bd6b 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 13357      00000000 
- 13358 bd73 F30F6F8D 		movdqu	-4512(%rbp), %xmm1
- 13358      60EEFFFF 
- 13359 bd7b F30F7F8D 		movdqu	%xmm1, -4480(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 412
-
-
- 13359      80EEFFFF 
- 13360 bd83 F30F7F85 		movdqu	%xmm0, -4496(%rbp)
- 13360      70EEFFFF 
- 13361 bd8b F30F6F85 		movdqu	-4480(%rbp), %xmm0
- 13361      80EEFFFF 
- 13362 bd93 F30F7F85 		movdqu	%xmm0, -4448(%rbp)
- 13362      A0EEFFFF 
- 13363 bd9b F30F6F85 		movdqu	-4496(%rbp), %xmm0
- 13363      70EEFFFF 
- 13364 bda3 F30F7F85 		movdqu	%xmm0, -4464(%rbp)
- 13364      90EEFFFF 
- 13365              	.LBB3515:
- 13366              	.LBB3516:
- 13367              	.LBB3517:
- 13368              	.LBB3518:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13369              		.loc 3 529 0
- 13370 bdab F30F6F8D 		movdqu	-4464(%rbp), %xmm1
- 13370      90EEFFFF 
- 13371 bdb3 F30F6F85 		movdqu	-4448(%rbp), %xmm0
- 13371      A0EEFFFF 
- 13372 bdbb 660F3800 		pshufb	%xmm1, %xmm0
- 13372      C1
- 13373              	.LBE3518:
- 13374              	.LBE3517:
- 13375              	.LBE3516:
- 13376              	.LBE3515:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 13377              		.loc 2 667 0
- 13378 bdc0 F30F7F85 		movdqu	%xmm0, -4512(%rbp)
- 13378      60EEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13379              		.loc 2 668 0
- 13380 bdc8 F30F6F85 		movdqu	-4512(%rbp), %xmm0
- 13380      60EEFFFF 
- 13381              	.LBE3514:
- 13382              	.LBE3513:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 13383              		.loc 2 1684 0
- 13384 bdd0 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 13384      A0D8FFFF 
- 13385              	.LBB3519:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 13386              		.loc 2 1685 0
- 13387 bdd8 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13387      A0D8FFFF 
- 13388 bde0 F30F7F85 		movdqu	%xmm0, -9504(%rbp)
- 13388      E0DAFFFF 
- 13389 bde8 E8000000 		call	KDbgWriterGet at PLT
- 13389      00
- 13390 bded 4885C0   		testq	%rax, %rax
- 13391 bdf0 7479     		je	.L197
- 13392 bdf2 BF010000 		movl	$1, %edi
- 13392      00
- 13393 bdf7 E8000000 		call	KDbgCondToFlag at PLT
- 13393      00
- 13394 bdfc 4889C6   		movq	%rax, %rsi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 413
-
-
- 13395 bdff BF100000 		movl	$16, %edi
- 13395      00
- 13396 be04 E8000000 		call	KDbgTestModConds at PLT
- 13396      00
- 13397 be09 84C0     		testb	%al, %al
- 13398 be0b 745E     		je	.L197
- 13399 be0d 8B85ECDA 		movl	-9492(%rbp), %eax
- 13399      FFFF
- 13400 be13 89C7     		movl	%eax, %edi
- 13401 be15 E8E641FF 		call	bswap_32
- 13401      FF
- 13402 be1a 4189C5   		movl	%eax, %r13d
- 13403 be1d 8B85E8DA 		movl	-9496(%rbp), %eax
- 13403      FFFF
- 13404 be23 89C7     		movl	%eax, %edi
- 13405 be25 E8D641FF 		call	bswap_32
- 13405      FF
- 13406 be2a 4189C4   		movl	%eax, %r12d
- 13407 be2d 8B85E4DA 		movl	-9500(%rbp), %eax
- 13407      FFFF
- 13408 be33 89C7     		movl	%eax, %edi
- 13409 be35 E8C641FF 		call	bswap_32
- 13409      FF
- 13410 be3a 89C3     		movl	%eax, %ebx
- 13411 be3c 8B85E0DA 		movl	-9504(%rbp), %eax
- 13411      FFFF
- 13412 be42 89C7     		movl	%eax, %edi
- 13413 be44 E8B741FF 		call	bswap_32
- 13413      FF
- 13414 be49 4589E9   		movl	%r13d, %r9d
- 13415 be4c 4589E0   		movl	%r12d, %r8d
- 13416 be4f 89D9     		movl	%ebx, %ecx
- 13417 be51 89C2     		movl	%eax, %edx
- 13418 be53 488D3500 		leaq	.LC2(%rip), %rsi
- 13418      000000
- 13419 be5a 488D3D00 		leaq	.LC1(%rip), %rdi
- 13419      000000
- 13420 be61 B8000000 		movl	$0, %eax
- 13420      00
- 13421 be66 E8000000 		call	KDbgMsg at PLT
- 13421      00
- 13422              	.L197:
- 13423 be6b 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13423      A0D8FFFF 
- 13424 be73 F30F7F85 		movdqu	%xmm0, -4416(%rbp)
- 13424      C0EEFFFF 
- 13425 be7b 660F6F85 		movdqa	-10064(%rbp), %xmm0
- 13425      B0D8FFFF 
- 13426 be83 F30F7F85 		movdqu	%xmm0, -4432(%rbp)
- 13426      B0EEFFFF 
- 13427              	.LBE3519:
- 13428              	.LBB3520:
- 13429              	.LBB3521:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 13430              		.loc 2 178 0
- 13431 be8b F30F6F85 		movdqu	-4432(%rbp), %xmm0
- 13431      B0EEFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 414
-
-
- 13432 be93 F30F6F8D 		movdqu	-4416(%rbp), %xmm1
- 13432      C0EEFFFF 
- 13433 be9b 660FEFC1 		pxor	%xmm1, %xmm0
- 13434              	.LBE3521:
- 13435              	.LBE3520:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 13436              		.loc 2 1686 0
- 13437 be9f 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 13437      A0D8FFFF 
- 13438              	.LBB3522:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 13439              		.loc 2 1687 0
- 13440 bea7 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13440      A0D8FFFF 
- 13441 beaf F30F7F85 		movdqu	%xmm0, -9520(%rbp)
- 13441      D0DAFFFF 
- 13442 beb7 E8000000 		call	KDbgWriterGet at PLT
- 13442      00
- 13443 bebc 4885C0   		testq	%rax, %rax
- 13444 bebf 7479     		je	.L199
- 13445 bec1 BF010000 		movl	$1, %edi
- 13445      00
- 13446 bec6 E8000000 		call	KDbgCondToFlag at PLT
- 13446      00
- 13447 becb 4889C6   		movq	%rax, %rsi
- 13448 bece BF100000 		movl	$16, %edi
- 13448      00
- 13449 bed3 E8000000 		call	KDbgTestModConds at PLT
- 13449      00
- 13450 bed8 84C0     		testb	%al, %al
- 13451 beda 745E     		je	.L199
- 13452 bedc 8B85DCDA 		movl	-9508(%rbp), %eax
- 13452      FFFF
- 13453 bee2 89C7     		movl	%eax, %edi
- 13454 bee4 E81741FF 		call	bswap_32
- 13454      FF
- 13455 bee9 4189C5   		movl	%eax, %r13d
- 13456 beec 8B85D8DA 		movl	-9512(%rbp), %eax
- 13456      FFFF
- 13457 bef2 89C7     		movl	%eax, %edi
- 13458 bef4 E80741FF 		call	bswap_32
- 13458      FF
- 13459 bef9 4189C4   		movl	%eax, %r12d
- 13460 befc 8B85D4DA 		movl	-9516(%rbp), %eax
- 13460      FFFF
- 13461 bf02 89C7     		movl	%eax, %edi
- 13462 bf04 E8F740FF 		call	bswap_32
- 13462      FF
- 13463 bf09 89C3     		movl	%eax, %ebx
- 13464 bf0b 8B85D0DA 		movl	-9520(%rbp), %eax
- 13464      FFFF
- 13465 bf11 89C7     		movl	%eax, %edi
- 13466 bf13 E8E840FF 		call	bswap_32
- 13466      FF
- 13467 bf18 4589E9   		movl	%r13d, %r9d
- 13468 bf1b 4589E0   		movl	%r12d, %r8d
- 13469 bf1e 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 415
-
-
- 13470 bf20 89C2     		movl	%eax, %edx
- 13471 bf22 488D3500 		leaq	.LC3(%rip), %rsi
- 13471      000000
- 13472 bf29 488D3D00 		leaq	.LC1(%rip), %rdi
- 13472      000000
- 13473 bf30 B8000000 		movl	$0, %eax
- 13473      00
- 13474 bf35 E8000000 		call	KDbgMsg at PLT
- 13474      00
- 13475              	.L199:
- 13476 bf3a 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13476      A0D8FFFF 
- 13477 bf42 F30F7F85 		movdqu	%xmm0, -4400(%rbp)
- 13477      D0EEFFFF 
- 13478 bf4a F30F6F85 		movdqu	-4400(%rbp), %xmm0
- 13478      D0EEFFFF 
- 13479 bf52 F30F7F85 		movdqu	%xmm0, -4368(%rbp)
- 13479      F0EEFFFF 
- 13480              	.LBE3522:
- 13481              	.LBB3523:
- 13482              	.LBB3524:
- 13483              	.LBB3525:
- 13484              	.LBB3526:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 13485              		.loc 3 450 0
- 13486 bf5a F30F6F85 		movdqu	-4368(%rbp), %xmm0
- 13486      F0EEFFFF 
- 13487 bf62 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 13487      FF
- 13488              	.LBE3526:
- 13489              	.LBE3525:
- 13490              	.LBE3524:
- 13491              	.LBE3523:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 13492              		.loc 2 1688 0
- 13493 bf67 660F7F85 		movdqa	%xmm0, -10080(%rbp)
- 13493      A0D8FFFF 
- 13494              	.LBB3527:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 13495              		.loc 2 1689 0
- 13496 bf6f 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13496      A0D8FFFF 
- 13497 bf77 F30F7F85 		movdqu	%xmm0, -9536(%rbp)
- 13497      C0DAFFFF 
- 13498 bf7f E8000000 		call	KDbgWriterGet at PLT
- 13498      00
- 13499 bf84 4885C0   		testq	%rax, %rax
- 13500 bf87 7479     		je	.L201
- 13501 bf89 BF010000 		movl	$1, %edi
- 13501      00
- 13502 bf8e E8000000 		call	KDbgCondToFlag at PLT
- 13502      00
- 13503 bf93 4889C6   		movq	%rax, %rsi
- 13504 bf96 BF100000 		movl	$16, %edi
- 13504      00
- 13505 bf9b E8000000 		call	KDbgTestModConds at PLT
- 13505      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 416
-
-
- 13506 bfa0 84C0     		testb	%al, %al
- 13507 bfa2 745E     		je	.L201
- 13508 bfa4 8B85CCDA 		movl	-9524(%rbp), %eax
- 13508      FFFF
- 13509 bfaa 89C7     		movl	%eax, %edi
- 13510 bfac E84F40FF 		call	bswap_32
- 13510      FF
- 13511 bfb1 4189C5   		movl	%eax, %r13d
- 13512 bfb4 8B85C8DA 		movl	-9528(%rbp), %eax
- 13512      FFFF
- 13513 bfba 89C7     		movl	%eax, %edi
- 13514 bfbc E83F40FF 		call	bswap_32
- 13514      FF
- 13515 bfc1 4189C4   		movl	%eax, %r12d
- 13516 bfc4 8B85C4DA 		movl	-9532(%rbp), %eax
- 13516      FFFF
- 13517 bfca 89C7     		movl	%eax, %edi
- 13518 bfcc E82F40FF 		call	bswap_32
- 13518      FF
- 13519 bfd1 89C3     		movl	%eax, %ebx
- 13520 bfd3 8B85C0DA 		movl	-9536(%rbp), %eax
- 13520      FFFF
- 13521 bfd9 89C7     		movl	%eax, %edi
- 13522 bfdb E82040FF 		call	bswap_32
- 13522      FF
- 13523 bfe0 4589E9   		movl	%r13d, %r9d
- 13524 bfe3 4589E0   		movl	%r12d, %r8d
- 13525 bfe6 89D9     		movl	%ebx, %ecx
- 13526 bfe8 89C2     		movl	%eax, %edx
- 13527 bfea 488D3500 		leaq	.LC4(%rip), %rsi
- 13527      000000
- 13528 bff1 488D3D00 		leaq	.LC1(%rip), %rdi
- 13528      000000
- 13529 bff8 B8000000 		movl	$0, %eax
- 13529      00
- 13530 bffd E8000000 		call	KDbgMsg at PLT
- 13530      00
- 13531              	.L201:
- 13532              	.LBE3527:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 13533              		.loc 2 1690 0
- 13534 c002 660F6F85 		movdqa	-10080(%rbp), %xmm0
- 13534      A0D8FFFF 
- 13535              	.LBE3481:
- 13536              	.LBE3480:
-1932:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(8,0x08);    /* k32 : k33 : k34 : k35 */
- 13537              		.loc 2 1932 0
- 13538 c00a F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 13538      40DCFFFF 
- 13539 c012 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 13539      20DCFFFF 
- 13540 c01a F30F7F85 		movdqu	%xmm0, -4352(%rbp)
- 13540      00EFFFFF 
- 13541              	.LBB3528:
- 13542              	.LBB3529:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 13543              		.loc 2 1565 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 417
-
-
- 13544 c022 F30F6F85 		movdqu	-4352(%rbp), %xmm0
- 13544      00EFFFFF 
- 13545 c02a 660F7F85 		movdqa	%xmm0, -10048(%rbp)
- 13545      C0D8FFFF 
- 13546 c032 660F6F85 		movdqa	-10048(%rbp), %xmm0
- 13546      C0D8FFFF 
- 13547 c03a F30F7F85 		movdqu	%xmm0, -4336(%rbp)
- 13547      10EFFFFF 
- 13548              	.LBB3530:
- 13549              	.LBB3531:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13550              		.loc 2 1278 0
- 13551 c042 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13551      00000000 
- 13552 c04a F30F6F8D 		movdqu	-4336(%rbp), %xmm1
- 13552      10EFFFFF 
- 13553 c052 F30F7F8D 		movdqu	%xmm1, -4304(%rbp)
- 13553      30EFFFFF 
- 13554 c05a F30F7F85 		movdqu	%xmm0, -4320(%rbp)
- 13554      20EFFFFF 
- 13555 c062 F30F6F85 		movdqu	-4304(%rbp), %xmm0
- 13555      30EFFFFF 
- 13556 c06a F30F7F85 		movdqu	%xmm0, -4272(%rbp)
- 13556      50EFFFFF 
- 13557 c072 F30F6F85 		movdqu	-4320(%rbp), %xmm0
- 13557      20EFFFFF 
- 13558 c07a F30F7F85 		movdqu	%xmm0, -4288(%rbp)
- 13558      40EFFFFF 
- 13559              	.LBB3532:
- 13560              	.LBB3533:
- 13561              	.LBB3534:
- 13562              	.LBB3535:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13563              		.loc 3 529 0
- 13564 c082 F30F6F8D 		movdqu	-4288(%rbp), %xmm1
- 13564      40EFFFFF 
- 13565 c08a F30F6F85 		movdqu	-4272(%rbp), %xmm0
- 13565      50EFFFFF 
- 13566 c092 660F3800 		pshufb	%xmm1, %xmm0
- 13566      C1
- 13567              	.LBE3535:
- 13568              	.LBE3534:
- 13569              	.LBE3533:
- 13570              	.LBE3532:
- 13571              	.LBE3531:
- 13572              	.LBE3530:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13573              		.loc 2 1567 0
- 13574 c097 660F7F85 		movdqa	%xmm0, -10048(%rbp)
- 13574      C0D8FFFF 
- 13575 c09f 660F6F85 		movdqa	-10048(%rbp), %xmm0
- 13575      C0D8FFFF 
- 13576 c0a7 660FEF85 		pxor	-4352(%rbp), %xmm0
- 13576      00EFFFFF 
- 13577 c0af F30F7F85 		movdqu	%xmm0, -4352(%rbp)
- 13577      00EFFFFF 
- 13578 c0b7 660F6F85 		movdqa	-10048(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 418
-
-
- 13578      C0D8FFFF 
- 13579 c0bf F30F7F85 		movdqu	%xmm0, -4256(%rbp)
- 13579      60EFFFFF 
- 13580              	.LBB3536:
- 13581              	.LBB3537:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13582              		.loc 2 1278 0
- 13583 c0c7 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13583      00000000 
- 13584 c0cf F30F6F8D 		movdqu	-4256(%rbp), %xmm1
- 13584      60EFFFFF 
- 13585 c0d7 F30F7F8D 		movdqu	%xmm1, -4224(%rbp)
- 13585      80EFFFFF 
- 13586 c0df F30F7F85 		movdqu	%xmm0, -4240(%rbp)
- 13586      70EFFFFF 
- 13587 c0e7 F30F6F85 		movdqu	-4224(%rbp), %xmm0
- 13587      80EFFFFF 
- 13588 c0ef F30F7F85 		movdqu	%xmm0, -4192(%rbp)
- 13588      A0EFFFFF 
- 13589 c0f7 F30F6F85 		movdqu	-4240(%rbp), %xmm0
- 13589      70EFFFFF 
- 13590 c0ff F30F7F85 		movdqu	%xmm0, -4208(%rbp)
- 13590      90EFFFFF 
- 13591              	.LBB3538:
- 13592              	.LBB3539:
- 13593              	.LBB3540:
- 13594              	.LBB3541:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13595              		.loc 3 529 0
- 13596 c107 F30F6F8D 		movdqu	-4208(%rbp), %xmm1
- 13596      90EFFFFF 
- 13597 c10f F30F6F85 		movdqu	-4192(%rbp), %xmm0
- 13597      A0EFFFFF 
- 13598 c117 660F3800 		pshufb	%xmm1, %xmm0
- 13598      C1
- 13599              	.LBE3541:
- 13600              	.LBE3540:
- 13601              	.LBE3539:
- 13602              	.LBE3538:
- 13603              	.LBE3537:
- 13604              	.LBE3536:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13605              		.loc 2 1568 0
- 13606 c11c 660F7F85 		movdqa	%xmm0, -10048(%rbp)
- 13606      C0D8FFFF 
- 13607 c124 660F6F85 		movdqa	-10048(%rbp), %xmm0
- 13607      C0D8FFFF 
- 13608 c12c 660FEF85 		pxor	-4352(%rbp), %xmm0
- 13608      00EFFFFF 
- 13609 c134 F30F7F85 		movdqu	%xmm0, -4352(%rbp)
- 13609      00EFFFFF 
- 13610 c13c 660F6F85 		movdqa	-10048(%rbp), %xmm0
- 13610      C0D8FFFF 
- 13611 c144 F30F7F85 		movdqu	%xmm0, -4176(%rbp)
- 13611      B0EFFFFF 
- 13612              	.LBB3542:
- 13613              	.LBB3543:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 419
-
-
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13614              		.loc 2 1278 0
- 13615 c14c 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13615      00000000 
- 13616 c154 F30F6F8D 		movdqu	-4176(%rbp), %xmm1
- 13616      B0EFFFFF 
- 13617 c15c F30F7F8D 		movdqu	%xmm1, -4144(%rbp)
- 13617      D0EFFFFF 
- 13618 c164 F30F7F85 		movdqu	%xmm0, -4160(%rbp)
- 13618      C0EFFFFF 
- 13619 c16c F30F6F85 		movdqu	-4144(%rbp), %xmm0
- 13619      D0EFFFFF 
- 13620 c174 F30F7F85 		movdqu	%xmm0, -4112(%rbp)
- 13620      F0EFFFFF 
- 13621 c17c F30F6F85 		movdqu	-4160(%rbp), %xmm0
- 13621      C0EFFFFF 
- 13622 c184 F30F7F85 		movdqu	%xmm0, -4128(%rbp)
- 13622      E0EFFFFF 
- 13623              	.LBB3544:
- 13624              	.LBB3545:
- 13625              	.LBB3546:
- 13626              	.LBB3547:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13627              		.loc 3 529 0
- 13628 c18c F30F6F8D 		movdqu	-4128(%rbp), %xmm1
- 13628      E0EFFFFF 
- 13629 c194 F30F6F85 		movdqu	-4112(%rbp), %xmm0
- 13629      F0EFFFFF 
- 13630 c19c 660F3800 		pshufb	%xmm1, %xmm0
- 13630      C1
- 13631              	.LBE3547:
- 13632              	.LBE3546:
- 13633              	.LBE3545:
- 13634              	.LBE3544:
- 13635              	.LBE3543:
- 13636              	.LBE3542:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13637              		.loc 2 1569 0
- 13638 c1a1 660F7F85 		movdqa	%xmm0, -10048(%rbp)
- 13638      C0D8FFFF 
- 13639 c1a9 660F6F85 		movdqa	-10048(%rbp), %xmm0
- 13639      C0D8FFFF 
- 13640 c1b1 660FEF85 		pxor	-4352(%rbp), %xmm0
- 13640      00EFFFFF 
- 13641 c1b9 F30F7F85 		movdqu	%xmm0, -4352(%rbp)
- 13641      00EFFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13642              		.loc 2 1571 0
- 13643 c1c1 F30F6F85 		movdqu	-4352(%rbp), %xmm0
- 13643      00EFFFFF 
- 13644              	.LBE3529:
- 13645              	.LBE3528:
- 13646              		.loc 2 1932 0
- 13647 c1c9 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 13647      20DCFFFF 
- 13648 c1d1 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 13648      20DCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 420
-
-
- 13649 c1d9 F30F7F85 		movdqu	%xmm0, -4080(%rbp)
- 13649      10F0FFFF 
- 13650 c1e1 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 13650      40DCFFFF 
- 13651 c1e9 F30F7F85 		movdqu	%xmm0, -4096(%rbp)
- 13651      00F0FFFF 
- 13652              	.LBB3548:
- 13653              	.LBB3549:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 13654              		.loc 2 178 0
- 13655 c1f1 F30F6F85 		movdqu	-4096(%rbp), %xmm0
- 13655      00F0FFFF 
- 13656 c1f9 F30F6F8D 		movdqu	-4080(%rbp), %xmm1
- 13656      10F0FFFF 
- 13657 c201 660FEFC1 		pxor	%xmm1, %xmm0
- 13658              	.LBE3549:
- 13659              	.LBE3548:
- 13660              		.loc 2 1932 0
- 13661 c205 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 13661      20DCFFFF 
- 13662 c20d 488B8598 		movq	-9832(%rbp), %rax
- 13662      D9FFFF
- 13663 c214 4883E880 		subq	$-128, %rax
- 13664 c218 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 13664      20DCFFFF 
- 13665 c220 F30F7F00 		movdqu	%xmm0, (%rax)
- 13666 c224 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 13666      20DCFFFF 
- 13667 c22c F30F7F85 		movdqu	%xmm0, -4064(%rbp)
- 13667      20F0FFFF 
- 13668              	.LBB3550:
- 13669              	.LBB3551:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 13670              		.loc 2 1656 0
- 13671 c234 F30F6F85 		movdqu	-4064(%rbp), %xmm0
- 13671      20F0FFFF 
- 13672 c23c F30F7F85 		movdqu	%xmm0, -9456(%rbp)
- 13672      10DBFFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 13673              		.loc 2 1657 0
- 13674 c244 8B851CDB 		movl	-9444(%rbp), %eax
- 13674      FFFF
- 13675 c24a 898538F0 		movl	%eax, -4040(%rbp)
- 13675      FFFF
- 13676              	.LBB3552:
- 13677              	.LBB3553:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 13678              		.loc 2 740 0
- 13679 c250 8B8538F0 		movl	-4040(%rbp), %eax
- 13679      FFFF
- 13680 c256 898500DB 		movl	%eax, -9472(%rbp)
- 13680      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 13681              		.loc 2 741 0
- 13682 c25c C7853CF0 		movl	$0, -4036(%rbp)
- 13682      FFFF0000 
- 13682      0000
-
GAS LISTING /tmp/ccjbMjHD.s 			page 421
-
-
- 13683 c266 EB36     		jmp	.L202
- 13684              	.L203:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 13685              		.loc 2 742 0
- 13686 c268 8B8D3CF0 		movl	-4036(%rbp), %ecx
- 13686      FFFF
- 13687 c26e 8B853CF0 		movl	-4036(%rbp), %eax
- 13687      FFFF
- 13688 c274 89C0     		mov	%eax, %eax
- 13689 c276 0FB68405 		movzbl	-9472(%rbp,%rax), %eax
- 13689      00DBFFFF 
- 13690 c27e 0FB6C0   		movzbl	%al, %eax
- 13691 c281 89C2     		mov	%eax, %edx
- 13692 c283 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 13692      000000
- 13693 c28a 0FB61402 		movzbl	(%rdx,%rax), %edx
- 13694 c28e 89C8     		mov	%ecx, %eax
- 13695 c290 88940500 		movb	%dl, -9472(%rbp,%rax)
- 13695      DBFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 13696              		.loc 2 741 0
- 13697 c297 83853CF0 		addl	$1, -4036(%rbp)
- 13697      FFFF01
- 13698              	.L202:
- 13699 c29e 83BD3CF0 		cmpl	$3, -4036(%rbp)
- 13699      FFFF03
- 13700 c2a5 76C1     		jbe	.L203
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 13701              		.loc 2 743 0
- 13702 c2a7 8B8500DB 		movl	-9472(%rbp), %eax
- 13702      FFFF
- 13703              	.LBE3553:
- 13704              	.LBE3552:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 13705              		.loc 2 1657 0
- 13706 c2ad 898534F0 		movl	%eax, -4044(%rbp)
- 13706      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 13707              		.loc 2 1659 0
- 13708 c2b3 8B8534F0 		movl	-4044(%rbp), %eax
- 13708      FFFF
- 13709 c2b9 89851CDB 		movl	%eax, -9444(%rbp)
- 13709      FFFF
- 13710 c2bf 8B851CDB 		movl	-9444(%rbp), %eax
- 13710      FFFF
- 13711 c2c5 898518DB 		movl	%eax, -9448(%rbp)
- 13711      FFFF
- 13712 c2cb 8B8518DB 		movl	-9448(%rbp), %eax
- 13712      FFFF
- 13713 c2d1 898514DB 		movl	%eax, -9452(%rbp)
- 13713      FFFF
- 13714 c2d7 8B8514DB 		movl	-9452(%rbp), %eax
- 13714      FFFF
- 13715 c2dd 898510DB 		movl	%eax, -9456(%rbp)
- 13715      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 13716              		.loc 2 1660 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 422
-
-
- 13717 c2e3 F30F6F85 		movdqu	-9456(%rbp), %xmm0
- 13717      10DBFFFF 
- 13718              	.LBE3551:
- 13719              	.LBE3550:
-1933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(9);         /* k36 : k37 : k38 : k39 */
- 13720              		.loc 2 1933 0
- 13721 c2eb F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 13721      40DCFFFF 
- 13722 c2f3 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 13722      30DCFFFF 
- 13723 c2fb F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 13723      40F0FFFF 
- 13724              	.LBB3554:
- 13725              	.LBB3555:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 13726              		.loc 2 1565 0
- 13727 c303 F30F6F85 		movdqu	-4032(%rbp), %xmm0
- 13727      40F0FFFF 
- 13728 c30b 660F7F85 		movdqa	%xmm0, -10032(%rbp)
- 13728      D0D8FFFF 
- 13729 c313 660F6F85 		movdqa	-10032(%rbp), %xmm0
- 13729      D0D8FFFF 
- 13730 c31b F30F7F85 		movdqu	%xmm0, -4016(%rbp)
- 13730      50F0FFFF 
- 13731              	.LBB3556:
- 13732              	.LBB3557:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13733              		.loc 2 1278 0
- 13734 c323 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13734      00000000 
- 13735 c32b F30F6F8D 		movdqu	-4016(%rbp), %xmm1
- 13735      50F0FFFF 
- 13736 c333 F30F7F8D 		movdqu	%xmm1, -3984(%rbp)
- 13736      70F0FFFF 
- 13737 c33b F30F7F85 		movdqu	%xmm0, -4000(%rbp)
- 13737      60F0FFFF 
- 13738 c343 F30F6F85 		movdqu	-3984(%rbp), %xmm0
- 13738      70F0FFFF 
- 13739 c34b F30F7F85 		movdqu	%xmm0, -3952(%rbp)
- 13739      90F0FFFF 
- 13740 c353 F30F6F85 		movdqu	-4000(%rbp), %xmm0
- 13740      60F0FFFF 
- 13741 c35b F30F7F85 		movdqu	%xmm0, -3968(%rbp)
- 13741      80F0FFFF 
- 13742              	.LBB3558:
- 13743              	.LBB3559:
- 13744              	.LBB3560:
- 13745              	.LBB3561:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13746              		.loc 3 529 0
- 13747 c363 F30F6F8D 		movdqu	-3968(%rbp), %xmm1
- 13747      80F0FFFF 
- 13748 c36b F30F6F85 		movdqu	-3952(%rbp), %xmm0
- 13748      90F0FFFF 
- 13749 c373 660F3800 		pshufb	%xmm1, %xmm0
- 13749      C1
- 13750              	.LBE3561:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 423
-
-
- 13751              	.LBE3560:
- 13752              	.LBE3559:
- 13753              	.LBE3558:
- 13754              	.LBE3557:
- 13755              	.LBE3556:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13756              		.loc 2 1567 0
- 13757 c378 660F7F85 		movdqa	%xmm0, -10032(%rbp)
- 13757      D0D8FFFF 
- 13758 c380 660F6F85 		movdqa	-10032(%rbp), %xmm0
- 13758      D0D8FFFF 
- 13759 c388 660FEF85 		pxor	-4032(%rbp), %xmm0
- 13759      40F0FFFF 
- 13760 c390 F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 13760      40F0FFFF 
- 13761 c398 660F6F85 		movdqa	-10032(%rbp), %xmm0
- 13761      D0D8FFFF 
- 13762 c3a0 F30F7F85 		movdqu	%xmm0, -3936(%rbp)
- 13762      A0F0FFFF 
- 13763              	.LBB3562:
- 13764              	.LBB3563:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13765              		.loc 2 1278 0
- 13766 c3a8 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13766      00000000 
- 13767 c3b0 F30F6F8D 		movdqu	-3936(%rbp), %xmm1
- 13767      A0F0FFFF 
- 13768 c3b8 F30F7F8D 		movdqu	%xmm1, -3904(%rbp)
- 13768      C0F0FFFF 
- 13769 c3c0 F30F7F85 		movdqu	%xmm0, -3920(%rbp)
- 13769      B0F0FFFF 
- 13770 c3c8 F30F6F85 		movdqu	-3904(%rbp), %xmm0
- 13770      C0F0FFFF 
- 13771 c3d0 F30F7F85 		movdqu	%xmm0, -3872(%rbp)
- 13771      E0F0FFFF 
- 13772 c3d8 F30F6F85 		movdqu	-3920(%rbp), %xmm0
- 13772      B0F0FFFF 
- 13773 c3e0 F30F7F85 		movdqu	%xmm0, -3888(%rbp)
- 13773      D0F0FFFF 
- 13774              	.LBB3564:
- 13775              	.LBB3565:
- 13776              	.LBB3566:
- 13777              	.LBB3567:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13778              		.loc 3 529 0
- 13779 c3e8 F30F6F8D 		movdqu	-3888(%rbp), %xmm1
- 13779      D0F0FFFF 
- 13780 c3f0 F30F6F85 		movdqu	-3872(%rbp), %xmm0
- 13780      E0F0FFFF 
- 13781 c3f8 660F3800 		pshufb	%xmm1, %xmm0
- 13781      C1
- 13782              	.LBE3567:
- 13783              	.LBE3566:
- 13784              	.LBE3565:
- 13785              	.LBE3564:
- 13786              	.LBE3563:
- 13787              	.LBE3562:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 424
-
-
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13788              		.loc 2 1568 0
- 13789 c3fd 660F7F85 		movdqa	%xmm0, -10032(%rbp)
- 13789      D0D8FFFF 
- 13790 c405 660F6F85 		movdqa	-10032(%rbp), %xmm0
- 13790      D0D8FFFF 
- 13791 c40d 660FEF85 		pxor	-4032(%rbp), %xmm0
- 13791      40F0FFFF 
- 13792 c415 F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 13792      40F0FFFF 
- 13793 c41d 660F6F85 		movdqa	-10032(%rbp), %xmm0
- 13793      D0D8FFFF 
- 13794 c425 F30F7F85 		movdqu	%xmm0, -3856(%rbp)
- 13794      F0F0FFFF 
- 13795              	.LBB3568:
- 13796              	.LBB3569:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 13797              		.loc 2 1278 0
- 13798 c42d 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 13798      00000000 
- 13799 c435 F30F6F8D 		movdqu	-3856(%rbp), %xmm1
- 13799      F0F0FFFF 
- 13800 c43d F30F7F8D 		movdqu	%xmm1, -3824(%rbp)
- 13800      10F1FFFF 
- 13801 c445 F30F7F85 		movdqu	%xmm0, -3840(%rbp)
- 13801      00F1FFFF 
- 13802 c44d F30F6F85 		movdqu	-3824(%rbp), %xmm0
- 13802      10F1FFFF 
- 13803 c455 F30F7F85 		movdqu	%xmm0, -3792(%rbp)
- 13803      30F1FFFF 
- 13804 c45d F30F6F85 		movdqu	-3840(%rbp), %xmm0
- 13804      00F1FFFF 
- 13805 c465 F30F7F85 		movdqu	%xmm0, -3808(%rbp)
- 13805      20F1FFFF 
- 13806              	.LBB3570:
- 13807              	.LBB3571:
- 13808              	.LBB3572:
- 13809              	.LBB3573:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13810              		.loc 3 529 0
- 13811 c46d F30F6F8D 		movdqu	-3808(%rbp), %xmm1
- 13811      20F1FFFF 
- 13812 c475 F30F6F85 		movdqu	-3792(%rbp), %xmm0
- 13812      30F1FFFF 
- 13813 c47d 660F3800 		pshufb	%xmm1, %xmm0
- 13813      C1
- 13814              	.LBE3573:
- 13815              	.LBE3572:
- 13816              	.LBE3571:
- 13817              	.LBE3570:
- 13818              	.LBE3569:
- 13819              	.LBE3568:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 13820              		.loc 2 1569 0
- 13821 c482 660F7F85 		movdqa	%xmm0, -10032(%rbp)
- 13821      D0D8FFFF 
- 13822 c48a 660F6F85 		movdqa	-10032(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 425
-
-
- 13822      D0D8FFFF 
- 13823 c492 660FEF85 		pxor	-4032(%rbp), %xmm0
- 13823      40F0FFFF 
- 13824 c49a F30F7F85 		movdqu	%xmm0, -4032(%rbp)
- 13824      40F0FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13825              		.loc 2 1571 0
- 13826 c4a2 F30F6F85 		movdqu	-4032(%rbp), %xmm0
- 13826      40F0FFFF 
- 13827              	.LBE3555:
- 13828              	.LBE3554:
- 13829              		.loc 2 1933 0
- 13830 c4aa F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 13830      30DCFFFF 
- 13831 c4b2 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 13831      30DCFFFF 
- 13832 c4ba F30F7F85 		movdqu	%xmm0, -3760(%rbp)
- 13832      50F1FFFF 
- 13833 c4c2 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 13833      40DCFFFF 
- 13834 c4ca F30F7F85 		movdqu	%xmm0, -3776(%rbp)
- 13834      40F1FFFF 
- 13835              	.LBB3574:
- 13836              	.LBB3575:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 13837              		.loc 2 178 0
- 13838 c4d2 F30F6F85 		movdqu	-3776(%rbp), %xmm0
- 13838      40F1FFFF 
- 13839 c4da F30F6F8D 		movdqu	-3760(%rbp), %xmm1
- 13839      50F1FFFF 
- 13840 c4e2 660FEFC1 		pxor	%xmm1, %xmm0
- 13841              	.LBE3575:
- 13842              	.LBE3574:
- 13843              		.loc 2 1933 0
- 13844 c4e6 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 13844      30DCFFFF 
- 13845 c4ee 488B8598 		movq	-9832(%rbp), %rax
- 13845      D9FFFF
- 13846 c4f5 48059000 		addq	$144, %rax
- 13846      0000
- 13847 c4fb F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 13847      30DCFFFF 
- 13848 c503 F30F7F00 		movdqu	%xmm0, (%rax)
- 13849 c507 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 13849      30DCFFFF 
- 13850 c50f F30F7F85 		movdqu	%xmm0, -3728(%rbp)
- 13850      70F1FFFF 
- 13851              	.LBB3576:
- 13852              	.LBB3577:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13853              		.loc 2 1681 0
- 13854 c517 B8100000 		movl	$16, %eax
- 13854      00
- 13855 c51c 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13855      00000000 
- 13856 c524 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 13856      90F1FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 426
-
-
- 13857 c52c 89858CF1 		movl	%eax, -3700(%rbp)
- 13857      FFFF
- 13858 c532 F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 13858      90F1FFFF 
- 13859 c53a F30F7F85 		movdqu	%xmm0, -3664(%rbp)
- 13859      B0F1FFFF 
- 13860 c542 8B858CF1 		movl	-3700(%rbp), %eax
- 13860      FFFF
- 13861 c548 8985ACF1 		movl	%eax, -3668(%rbp)
- 13861      FFFF
- 13862              	.LBB3578:
- 13863              	.LBB3579:
- 13864              	.LBB3580:
- 13865              	.LBB3581:
- 13866              		.loc 3 598 0
- 13867 c54e 8B85ACF1 		movl	-3668(%rbp), %eax
- 13867      FFFF
- 13868 c554 F30F6F85 		movdqu	-3664(%rbp), %xmm0
- 13868      B0F1FFFF 
- 13869 c55c 660F3A22 		pinsrd	$3, %eax, %xmm0
- 13869      C003
- 13870              	.LBE3581:
- 13871              	.LBE3580:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 13872              		.loc 2 519 0
- 13873 c562 F30F7F85 		movdqu	%xmm0, -3696(%rbp)
- 13873      90F1FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 13874              		.loc 2 526 0
- 13875 c56a F30F6F85 		movdqu	-3696(%rbp), %xmm0
- 13875      90F1FFFF 
- 13876              	.LBE3579:
- 13877              	.LBE3578:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 13878              		.loc 2 1681 0
- 13879 c572 660F7F85 		movdqa	%xmm0, -10000(%rbp)
- 13879      F0D8FFFF 
- 13880 c57a F30F6F85 		movdqu	-3728(%rbp), %xmm0
- 13880      70F1FFFF 
- 13881 c582 F30F7F85 		movdqu	%xmm0, -3648(%rbp)
- 13881      C0F1FFFF 
- 13882 c58a F30F6F85 		movdqu	-3648(%rbp), %xmm0
- 13882      C0F1FFFF 
- 13883 c592 F30F7F85 		movdqu	%xmm0, -3616(%rbp)
- 13883      E0F1FFFF 
- 13884 c59a 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 13884      000000
- 13885 c5a1 488985D8 		movq	%rax, -3624(%rbp)
- 13885      F1FFFF
- 13886              	.LBB3582:
- 13887              	.LBB3583:
- 13888              	.LBB3584:
- 13889              	.LBB3585:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 13890              		.loc 2 851 0
- 13891 c5a8 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 13891      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 427
-
-
- 13892 c5b0 F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 13892      00F2FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13893              		.loc 2 854 0
- 13894 c5b8 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 13894      00000000 
- 13895 c5c0 F30F6F8D 		movdqu	-3616(%rbp), %xmm1
- 13895      E0F1FFFF 
- 13896 c5c8 F30F7F8D 		movdqu	%xmm1, -3504(%rbp)
- 13896      50F2FFFF 
- 13897 c5d0 F30F7F85 		movdqu	%xmm0, -3520(%rbp)
- 13897      40F2FFFF 
- 13898              	.LBB3586:
- 13899              	.LBB3587:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 13900              		.loc 2 206 0
- 13901 c5d8 F30F6F85 		movdqu	-3520(%rbp), %xmm0
- 13901      40F2FFFF 
- 13902 c5e0 F30F6F8D 		movdqu	-3504(%rbp), %xmm1
- 13902      50F2FFFF 
- 13903 c5e8 660FDBC1 		pand	%xmm1, %xmm0
- 13904              	.LBE3587:
- 13905              	.LBE3586:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 13906              		.loc 2 854 0
- 13907 c5ec F30F7F85 		movdqu	%xmm0, -3536(%rbp)
- 13907      30F2FFFF 
- 13908 c5f4 F30F6F85 		movdqu	-3616(%rbp), %xmm0
- 13908      E0F1FFFF 
- 13909 c5fc F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 13909      70F2FFFF 
- 13910              	.LBB3588:
- 13911              	.LBB3589:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 13912              		.loc 3 433 0
- 13913 c604 F30F6F85 		movdqu	-3472(%rbp), %xmm0
- 13913      70F2FFFF 
- 13914 c60c 660F72D0 		psrld	$4, %xmm0
- 13914      04
- 13915              	.LBE3589:
- 13916              	.LBE3588:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 13917              		.loc 2 857 0
- 13918 c611 F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 13918      20F2FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13919              		.loc 2 859 0
- 13920 c619 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 13920      00000000 
- 13921 c621 F30F6F8D 		movdqu	-3552(%rbp), %xmm1
- 13921      20F2FFFF 
- 13922 c629 F30F7F8D 		movdqu	%xmm1, -3440(%rbp)
- 13922      90F2FFFF 
- 13923 c631 F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 13923      80F2FFFF 
- 13924              	.LBB3590:
- 13925              	.LBB3591:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 428
-
-
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 13926              		.loc 2 206 0
- 13927 c639 F30F6F85 		movdqu	-3456(%rbp), %xmm0
- 13927      80F2FFFF 
- 13928 c641 F30F6F8D 		movdqu	-3440(%rbp), %xmm1
- 13928      90F2FFFF 
- 13929 c649 660FDBC1 		pand	%xmm1, %xmm0
- 13930              	.LBE3591:
- 13931              	.LBE3590:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 13932              		.loc 2 859 0
- 13933 c64d F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 13933      20F2FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 13934              		.loc 2 866 0
- 13935 c655 C785FCF1 		movl	$0, -3588(%rbp)
- 13935      FFFF0000 
- 13935      0000
- 13936 c65f E9BE0100 		jmp	.L204
- 13936      00
- 13937              	.L205:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 13938              		.loc 2 868 0
- 13939 c664 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 13939      00000000 
- 13940 c66c F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 13940      B0F2FFFF 
- 13941 c674 F30F6F85 		movdqu	-3552(%rbp), %xmm0
- 13941      20F2FFFF 
- 13942 c67c F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 13942      A0F2FFFF 
- 13943 c684 F30F6F85 		movdqu	-3408(%rbp), %xmm0
- 13943      B0F2FFFF 
- 13944 c68c F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 13944      D0F2FFFF 
- 13945 c694 F30F6F85 		movdqu	-3424(%rbp), %xmm0
- 13945      A0F2FFFF 
- 13946 c69c F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 13946      C0F2FFFF 
- 13947              	.LBB3592:
- 13948              	.LBB3593:
- 13949              	.LBB3594:
- 13950              	.LBB3595:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13951              		.loc 3 529 0
- 13952 c6a4 F30F6F8D 		movdqu	-3392(%rbp), %xmm1
- 13952      C0F2FFFF 
- 13953 c6ac F30F6F85 		movdqu	-3376(%rbp), %xmm0
- 13953      D0F2FFFF 
- 13954 c6b4 660F3800 		pshufb	%xmm1, %xmm0
- 13954      C1
- 13955              	.LBE3595:
- 13956              	.LBE3594:
- 13957              	.LBE3593:
- 13958              	.LBE3592:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 13959              		.loc 2 868 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 429
-
-
- 13960 c6b9 F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 13960      10F2FFFF 
- 13961 c6c1 F30F6F85 		movdqu	-3536(%rbp), %xmm0
- 13961      30F2FFFF 
- 13962 c6c9 F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 13962      F0F2FFFF 
- 13963 c6d1 F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 13963      10F2FFFF 
- 13964 c6d9 F30F7F85 		movdqu	%xmm0, -3360(%rbp)
- 13964      E0F2FFFF 
- 13965              	.LBB3596:
- 13966              	.LBB3597:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 13967              		.loc 2 234 0
- 13968 c6e1 F30F6F85 		movdqu	-3360(%rbp), %xmm0
- 13968      E0F2FFFF 
- 13969 c6e9 F30F6F8D 		movdqu	-3344(%rbp), %xmm1
- 13969      F0F2FFFF 
- 13970 c6f1 660FEBC1 		por	%xmm1, %xmm0
- 13971              	.LBE3597:
- 13972              	.LBE3596:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 13973              		.loc 2 870 0
- 13974 c6f5 F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 13974      10F2FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 13975              		.loc 2 872 0
- 13976 c6fd 8B85FCF1 		mov	-3588(%rbp), %eax
- 13976      FFFF
- 13977 c703 48C1E004 		salq	$4, %rax
- 13978 c707 480385D8 		addq	-3624(%rbp), %rax
- 13978      F1FFFF
- 13979 c70e 660F6F00 		movdqa	(%rax), %xmm0
- 13980 c712 F30F7F85 		movdqu	%xmm0, -3312(%rbp)
- 13980      10F3FFFF 
- 13981 c71a F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 13981      10F2FFFF 
- 13982 c722 F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 13982      00F3FFFF 
- 13983 c72a F30F6F85 		movdqu	-3312(%rbp), %xmm0
- 13983      10F3FFFF 
- 13984 c732 F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 13984      30F3FFFF 
- 13985 c73a F30F6F85 		movdqu	-3328(%rbp), %xmm0
- 13985      00F3FFFF 
- 13986 c742 F30F7F85 		movdqu	%xmm0, -3296(%rbp)
- 13986      20F3FFFF 
- 13987              	.LBB3598:
- 13988              	.LBB3599:
- 13989              	.LBB3600:
- 13990              	.LBB3601:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 13991              		.loc 3 529 0
- 13992 c74a F30F6F8D 		movdqu	-3296(%rbp), %xmm1
- 13992      20F3FFFF 
- 13993 c752 F30F6F85 		movdqu	-3280(%rbp), %xmm0
- 13993      30F3FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 430
-
-
- 13994 c75a 660F3800 		pshufb	%xmm1, %xmm0
- 13994      C1
- 13995              	.LBE3601:
- 13996              	.LBE3600:
- 13997              	.LBE3599:
- 13998              	.LBE3598:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 13999              		.loc 2 872 0
- 14000 c75f F30F7F85 		movdqu	%xmm0, -3568(%rbp)
- 14000      10F2FFFF 
- 14001 c767 F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 14001      00F2FFFF 
- 14002 c76f F30F7F85 		movdqu	%xmm0, -3248(%rbp)
- 14002      50F3FFFF 
- 14003 c777 F30F6F85 		movdqu	-3568(%rbp), %xmm0
- 14003      10F2FFFF 
- 14004 c77f F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 14004      40F3FFFF 
- 14005              	.LBB3602:
- 14006              	.LBB3603:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 14007              		.loc 2 234 0
- 14008 c787 F30F6F85 		movdqu	-3264(%rbp), %xmm0
- 14008      40F3FFFF 
- 14009 c78f F30F6F8D 		movdqu	-3248(%rbp), %xmm1
- 14009      50F3FFFF 
- 14010 c797 660FEBC1 		por	%xmm1, %xmm0
- 14011              	.LBE3603:
- 14012              	.LBE3602:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 14013              		.loc 2 874 0
- 14014 c79b F30F7F85 		movdqu	%xmm0, -3584(%rbp)
- 14014      00F2FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 14015              		.loc 2 876 0
- 14016 c7a3 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 14016      00000000 
- 14017 c7ab F30F6F8D 		movdqu	-3552(%rbp), %xmm1
- 14017      20F2FFFF 
- 14018 c7b3 F30F7F8D 		movdqu	%xmm1, -3216(%rbp)
- 14018      70F3FFFF 
- 14019 c7bb F30F7F85 		movdqu	%xmm0, -3232(%rbp)
- 14019      60F3FFFF 
- 14020              	.LBB3604:
- 14021              	.LBB3605:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 14022              		.loc 2 290 0
- 14023 c7c3 F30F6F8D 		movdqu	-3232(%rbp), %xmm1
- 14023      60F3FFFF 
- 14024 c7cb F30F6F85 		movdqu	-3216(%rbp), %xmm0
- 14024      70F3FFFF 
- 14025 c7d3 660FF8C1 		psubb	%xmm1, %xmm0
- 14026              	.LBE3605:
- 14027              	.LBE3604:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 14028              		.loc 2 876 0
- 14029 c7d7 F30F7F85 		movdqu	%xmm0, -3552(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 431
-
-
- 14029      20F2FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14030              		.loc 2 878 0
- 14031 c7df 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 14031      00000000 
- 14032 c7e7 F30F6F8D 		movdqu	-3552(%rbp), %xmm1
- 14032      20F2FFFF 
- 14033 c7ef F30F7F8D 		movdqu	%xmm1, -3184(%rbp)
- 14033      90F3FFFF 
- 14034 c7f7 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 14034      80F3FFFF 
- 14035              	.LBB3606:
- 14036              	.LBB3607:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 14037              		.loc 2 206 0
- 14038 c7ff F30F6F85 		movdqu	-3200(%rbp), %xmm0
- 14038      80F3FFFF 
- 14039 c807 F30F6F8D 		movdqu	-3184(%rbp), %xmm1
- 14039      90F3FFFF 
- 14040 c80f 660FDBC1 		pand	%xmm1, %xmm0
- 14041              	.LBE3607:
- 14042              	.LBE3606:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14043              		.loc 2 878 0
- 14044 c813 F30F7F85 		movdqu	%xmm0, -3552(%rbp)
- 14044      20F2FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 14045              		.loc 2 866 0
- 14046 c81b 8385FCF1 		addl	$1, -3588(%rbp)
- 14046      FFFF01
- 14047              	.L204:
- 14048 c822 83BDFCF1 		cmpl	$15, -3588(%rbp)
- 14048      FFFF0F
- 14049 c829 0F8635FE 		jbe	.L205
- 14049      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 14050              		.loc 2 882 0
- 14051 c82f F30F6F85 		movdqu	-3584(%rbp), %xmm0
- 14051      00F2FFFF 
- 14052              	.LBE3585:
- 14053              	.LBE3584:
- 14054              	.LBE3583:
- 14055              	.LBE3582:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 14056              		.loc 2 1682 0
- 14057 c837 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 14057      E0D8FFFF 
- 14058              	.LBB3608:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 14059              		.loc 2 1683 0
- 14060 c83f 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14060      E0D8FFFF 
- 14061 c847 F30F7F85 		movdqu	%xmm0, -9392(%rbp)
- 14061      50DBFFFF 
- 14062 c84f E8000000 		call	KDbgWriterGet at PLT
- 14062      00
- 14063 c854 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 432
-
-
- 14064 c857 7479     		je	.L207
- 14065 c859 BF010000 		movl	$1, %edi
- 14065      00
- 14066 c85e E8000000 		call	KDbgCondToFlag at PLT
- 14066      00
- 14067 c863 4889C6   		movq	%rax, %rsi
- 14068 c866 BF100000 		movl	$16, %edi
- 14068      00
- 14069 c86b E8000000 		call	KDbgTestModConds at PLT
- 14069      00
- 14070 c870 84C0     		testb	%al, %al
- 14071 c872 745E     		je	.L207
- 14072 c874 8B855CDB 		movl	-9380(%rbp), %eax
- 14072      FFFF
- 14073 c87a 89C7     		movl	%eax, %edi
- 14074 c87c E87F37FF 		call	bswap_32
- 14074      FF
- 14075 c881 4189C5   		movl	%eax, %r13d
- 14076 c884 8B8558DB 		movl	-9384(%rbp), %eax
- 14076      FFFF
- 14077 c88a 89C7     		movl	%eax, %edi
- 14078 c88c E86F37FF 		call	bswap_32
- 14078      FF
- 14079 c891 4189C4   		movl	%eax, %r12d
- 14080 c894 8B8554DB 		movl	-9388(%rbp), %eax
- 14080      FFFF
- 14081 c89a 89C7     		movl	%eax, %edi
- 14082 c89c E85F37FF 		call	bswap_32
- 14082      FF
- 14083 c8a1 89C3     		movl	%eax, %ebx
- 14084 c8a3 8B8550DB 		movl	-9392(%rbp), %eax
- 14084      FFFF
- 14085 c8a9 89C7     		movl	%eax, %edi
- 14086 c8ab E85037FF 		call	bswap_32
- 14086      FF
- 14087 c8b0 4589E9   		movl	%r13d, %r9d
- 14088 c8b3 4589E0   		movl	%r12d, %r8d
- 14089 c8b6 89D9     		movl	%ebx, %ecx
- 14090 c8b8 89C2     		movl	%eax, %edx
- 14091 c8ba 488D3500 		leaq	.LC0(%rip), %rsi
- 14091      000000
- 14092 c8c1 488D3D00 		leaq	.LC1(%rip), %rdi
- 14092      000000
- 14093 c8c8 B8000000 		movl	$0, %eax
- 14093      00
- 14094 c8cd E8000000 		call	KDbgMsg at PLT
- 14094      00
- 14095              	.L207:
- 14096 c8d2 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14096      E0D8FFFF 
- 14097 c8da F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 14097      A0F3FFFF 
- 14098              	.LBE3608:
- 14099              	.LBB3609:
- 14100              	.LBB3610:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 14101              		.loc 2 667 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 433
-
-
- 14102 c8e2 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 14102      00000000 
- 14103 c8ea F30F6F8D 		movdqu	-3168(%rbp), %xmm1
- 14103      A0F3FFFF 
- 14104 c8f2 F30F7F8D 		movdqu	%xmm1, -3136(%rbp)
- 14104      C0F3FFFF 
- 14105 c8fa F30F7F85 		movdqu	%xmm0, -3152(%rbp)
- 14105      B0F3FFFF 
- 14106 c902 F30F6F85 		movdqu	-3136(%rbp), %xmm0
- 14106      C0F3FFFF 
- 14107 c90a F30F7F85 		movdqu	%xmm0, -3104(%rbp)
- 14107      E0F3FFFF 
- 14108 c912 F30F6F85 		movdqu	-3152(%rbp), %xmm0
- 14108      B0F3FFFF 
- 14109 c91a F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 14109      D0F3FFFF 
- 14110              	.LBB3611:
- 14111              	.LBB3612:
- 14112              	.LBB3613:
- 14113              	.LBB3614:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14114              		.loc 3 529 0
- 14115 c922 F30F6F8D 		movdqu	-3120(%rbp), %xmm1
- 14115      D0F3FFFF 
- 14116 c92a F30F6F85 		movdqu	-3104(%rbp), %xmm0
- 14116      E0F3FFFF 
- 14117 c932 660F3800 		pshufb	%xmm1, %xmm0
- 14117      C1
- 14118              	.LBE3614:
- 14119              	.LBE3613:
- 14120              	.LBE3612:
- 14121              	.LBE3611:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 14122              		.loc 2 667 0
- 14123 c937 F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 14123      A0F3FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14124              		.loc 2 668 0
- 14125 c93f F30F6F85 		movdqu	-3168(%rbp), %xmm0
- 14125      A0F3FFFF 
- 14126              	.LBE3610:
- 14127              	.LBE3609:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 14128              		.loc 2 1684 0
- 14129 c947 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 14129      E0D8FFFF 
- 14130              	.LBB3615:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 14131              		.loc 2 1685 0
- 14132 c94f 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14132      E0D8FFFF 
- 14133 c957 F30F7F85 		movdqu	%xmm0, -9408(%rbp)
- 14133      40DBFFFF 
- 14134 c95f E8000000 		call	KDbgWriterGet at PLT
- 14134      00
- 14135 c964 4885C0   		testq	%rax, %rax
- 14136 c967 7479     		je	.L209
-
GAS LISTING /tmp/ccjbMjHD.s 			page 434
-
-
- 14137 c969 BF010000 		movl	$1, %edi
- 14137      00
- 14138 c96e E8000000 		call	KDbgCondToFlag at PLT
- 14138      00
- 14139 c973 4889C6   		movq	%rax, %rsi
- 14140 c976 BF100000 		movl	$16, %edi
- 14140      00
- 14141 c97b E8000000 		call	KDbgTestModConds at PLT
- 14141      00
- 14142 c980 84C0     		testb	%al, %al
- 14143 c982 745E     		je	.L209
- 14144 c984 8B854CDB 		movl	-9396(%rbp), %eax
- 14144      FFFF
- 14145 c98a 89C7     		movl	%eax, %edi
- 14146 c98c E86F36FF 		call	bswap_32
- 14146      FF
- 14147 c991 4189C5   		movl	%eax, %r13d
- 14148 c994 8B8548DB 		movl	-9400(%rbp), %eax
- 14148      FFFF
- 14149 c99a 89C7     		movl	%eax, %edi
- 14150 c99c E85F36FF 		call	bswap_32
- 14150      FF
- 14151 c9a1 4189C4   		movl	%eax, %r12d
- 14152 c9a4 8B8544DB 		movl	-9404(%rbp), %eax
- 14152      FFFF
- 14153 c9aa 89C7     		movl	%eax, %edi
- 14154 c9ac E84F36FF 		call	bswap_32
- 14154      FF
- 14155 c9b1 89C3     		movl	%eax, %ebx
- 14156 c9b3 8B8540DB 		movl	-9408(%rbp), %eax
- 14156      FFFF
- 14157 c9b9 89C7     		movl	%eax, %edi
- 14158 c9bb E84036FF 		call	bswap_32
- 14158      FF
- 14159 c9c0 4589E9   		movl	%r13d, %r9d
- 14160 c9c3 4589E0   		movl	%r12d, %r8d
- 14161 c9c6 89D9     		movl	%ebx, %ecx
- 14162 c9c8 89C2     		movl	%eax, %edx
- 14163 c9ca 488D3500 		leaq	.LC2(%rip), %rsi
- 14163      000000
- 14164 c9d1 488D3D00 		leaq	.LC1(%rip), %rdi
- 14164      000000
- 14165 c9d8 B8000000 		movl	$0, %eax
- 14165      00
- 14166 c9dd E8000000 		call	KDbgMsg at PLT
- 14166      00
- 14167              	.L209:
- 14168 c9e2 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14168      E0D8FFFF 
- 14169 c9ea F30F7F85 		movdqu	%xmm0, -3072(%rbp)
- 14169      00F4FFFF 
- 14170 c9f2 660F6F85 		movdqa	-10000(%rbp), %xmm0
- 14170      F0D8FFFF 
- 14171 c9fa F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 14171      F0F3FFFF 
- 14172              	.LBE3615:
- 14173              	.LBB3616:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 435
-
-
- 14174              	.LBB3617:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 14175              		.loc 2 178 0
- 14176 ca02 F30F6F85 		movdqu	-3088(%rbp), %xmm0
- 14176      F0F3FFFF 
- 14177 ca0a F30F6F8D 		movdqu	-3072(%rbp), %xmm1
- 14177      00F4FFFF 
- 14178 ca12 660FEFC1 		pxor	%xmm1, %xmm0
- 14179              	.LBE3617:
- 14180              	.LBE3616:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 14181              		.loc 2 1686 0
- 14182 ca16 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 14182      E0D8FFFF 
- 14183              	.LBB3618:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 14184              		.loc 2 1687 0
- 14185 ca1e 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14185      E0D8FFFF 
- 14186 ca26 F30F7F85 		movdqu	%xmm0, -9424(%rbp)
- 14186      30DBFFFF 
- 14187 ca2e E8000000 		call	KDbgWriterGet at PLT
- 14187      00
- 14188 ca33 4885C0   		testq	%rax, %rax
- 14189 ca36 7479     		je	.L211
- 14190 ca38 BF010000 		movl	$1, %edi
- 14190      00
- 14191 ca3d E8000000 		call	KDbgCondToFlag at PLT
- 14191      00
- 14192 ca42 4889C6   		movq	%rax, %rsi
- 14193 ca45 BF100000 		movl	$16, %edi
- 14193      00
- 14194 ca4a E8000000 		call	KDbgTestModConds at PLT
- 14194      00
- 14195 ca4f 84C0     		testb	%al, %al
- 14196 ca51 745E     		je	.L211
- 14197 ca53 8B853CDB 		movl	-9412(%rbp), %eax
- 14197      FFFF
- 14198 ca59 89C7     		movl	%eax, %edi
- 14199 ca5b E8A035FF 		call	bswap_32
- 14199      FF
- 14200 ca60 4189C5   		movl	%eax, %r13d
- 14201 ca63 8B8538DB 		movl	-9416(%rbp), %eax
- 14201      FFFF
- 14202 ca69 89C7     		movl	%eax, %edi
- 14203 ca6b E89035FF 		call	bswap_32
- 14203      FF
- 14204 ca70 4189C4   		movl	%eax, %r12d
- 14205 ca73 8B8534DB 		movl	-9420(%rbp), %eax
- 14205      FFFF
- 14206 ca79 89C7     		movl	%eax, %edi
- 14207 ca7b E88035FF 		call	bswap_32
- 14207      FF
- 14208 ca80 89C3     		movl	%eax, %ebx
- 14209 ca82 8B8530DB 		movl	-9424(%rbp), %eax
- 14209      FFFF
- 14210 ca88 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 436
-
-
- 14211 ca8a E87135FF 		call	bswap_32
- 14211      FF
- 14212 ca8f 4589E9   		movl	%r13d, %r9d
- 14213 ca92 4589E0   		movl	%r12d, %r8d
- 14214 ca95 89D9     		movl	%ebx, %ecx
- 14215 ca97 89C2     		movl	%eax, %edx
- 14216 ca99 488D3500 		leaq	.LC3(%rip), %rsi
- 14216      000000
- 14217 caa0 488D3D00 		leaq	.LC1(%rip), %rdi
- 14217      000000
- 14218 caa7 B8000000 		movl	$0, %eax
- 14218      00
- 14219 caac E8000000 		call	KDbgMsg at PLT
- 14219      00
- 14220              	.L211:
- 14221 cab1 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14221      E0D8FFFF 
- 14222 cab9 F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 14222      10F4FFFF 
- 14223 cac1 F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 14223      10F4FFFF 
- 14224 cac9 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 14224      30F4FFFF 
- 14225              	.LBE3618:
- 14226              	.LBB3619:
- 14227              	.LBB3620:
- 14228              	.LBB3621:
- 14229              	.LBB3622:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 14230              		.loc 3 450 0
- 14231 cad1 F30F6F85 		movdqu	-3024(%rbp), %xmm0
- 14231      30F4FFFF 
- 14232 cad9 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 14232      FF
- 14233              	.LBE3622:
- 14234              	.LBE3621:
- 14235              	.LBE3620:
- 14236              	.LBE3619:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 14237              		.loc 2 1688 0
- 14238 cade 660F7F85 		movdqa	%xmm0, -10016(%rbp)
- 14238      E0D8FFFF 
- 14239              	.LBB3623:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 14240              		.loc 2 1689 0
- 14241 cae6 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14241      E0D8FFFF 
- 14242 caee F30F7F85 		movdqu	%xmm0, -9440(%rbp)
- 14242      20DBFFFF 
- 14243 caf6 E8000000 		call	KDbgWriterGet at PLT
- 14243      00
- 14244 cafb 4885C0   		testq	%rax, %rax
- 14245 cafe 7479     		je	.L213
- 14246 cb00 BF010000 		movl	$1, %edi
- 14246      00
- 14247 cb05 E8000000 		call	KDbgCondToFlag at PLT
- 14247      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 437
-
-
- 14248 cb0a 4889C6   		movq	%rax, %rsi
- 14249 cb0d BF100000 		movl	$16, %edi
- 14249      00
- 14250 cb12 E8000000 		call	KDbgTestModConds at PLT
- 14250      00
- 14251 cb17 84C0     		testb	%al, %al
- 14252 cb19 745E     		je	.L213
- 14253 cb1b 8B852CDB 		movl	-9428(%rbp), %eax
- 14253      FFFF
- 14254 cb21 89C7     		movl	%eax, %edi
- 14255 cb23 E8D834FF 		call	bswap_32
- 14255      FF
- 14256 cb28 4189C5   		movl	%eax, %r13d
- 14257 cb2b 8B8528DB 		movl	-9432(%rbp), %eax
- 14257      FFFF
- 14258 cb31 89C7     		movl	%eax, %edi
- 14259 cb33 E8C834FF 		call	bswap_32
- 14259      FF
- 14260 cb38 4189C4   		movl	%eax, %r12d
- 14261 cb3b 8B8524DB 		movl	-9436(%rbp), %eax
- 14261      FFFF
- 14262 cb41 89C7     		movl	%eax, %edi
- 14263 cb43 E8B834FF 		call	bswap_32
- 14263      FF
- 14264 cb48 89C3     		movl	%eax, %ebx
- 14265 cb4a 8B8520DB 		movl	-9440(%rbp), %eax
- 14265      FFFF
- 14266 cb50 89C7     		movl	%eax, %edi
- 14267 cb52 E8A934FF 		call	bswap_32
- 14267      FF
- 14268 cb57 4589E9   		movl	%r13d, %r9d
- 14269 cb5a 4589E0   		movl	%r12d, %r8d
- 14270 cb5d 89D9     		movl	%ebx, %ecx
- 14271 cb5f 89C2     		movl	%eax, %edx
- 14272 cb61 488D3500 		leaq	.LC4(%rip), %rsi
- 14272      000000
- 14273 cb68 488D3D00 		leaq	.LC1(%rip), %rdi
- 14273      000000
- 14274 cb6f B8000000 		movl	$0, %eax
- 14274      00
- 14275 cb74 E8000000 		call	KDbgMsg at PLT
- 14275      00
- 14276              	.L213:
- 14277              	.LBE3623:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 14278              		.loc 2 1690 0
- 14279 cb79 660F6F85 		movdqa	-10016(%rbp), %xmm0
- 14279      E0D8FFFF 
- 14280              	.LBE3577:
- 14281              	.LBE3576:
-1934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(10,0x10);   /* k40 : k41 : k42 : k43 */
- 14282              		.loc 2 1934 0
- 14283 cb81 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 14283      40DCFFFF 
- 14284 cb89 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 14284      20DCFFFF 
- 14285 cb91 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 438
-
-
- 14285      40F4FFFF 
- 14286              	.LBB3624:
- 14287              	.LBB3625:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 14288              		.loc 2 1565 0
- 14289 cb99 F30F6F85 		movdqu	-3008(%rbp), %xmm0
- 14289      40F4FFFF 
- 14290 cba1 660F7F85 		movdqa	%xmm0, -9984(%rbp)
- 14290      00D9FFFF 
- 14291 cba9 660F6F85 		movdqa	-9984(%rbp), %xmm0
- 14291      00D9FFFF 
- 14292 cbb1 F30F7F85 		movdqu	%xmm0, -2992(%rbp)
- 14292      50F4FFFF 
- 14293              	.LBB3626:
- 14294              	.LBB3627:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 14295              		.loc 2 1278 0
- 14296 cbb9 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 14296      00000000 
- 14297 cbc1 F30F6F8D 		movdqu	-2992(%rbp), %xmm1
- 14297      50F4FFFF 
- 14298 cbc9 F30F7F8D 		movdqu	%xmm1, -2960(%rbp)
- 14298      70F4FFFF 
- 14299 cbd1 F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 14299      60F4FFFF 
- 14300 cbd9 F30F6F85 		movdqu	-2960(%rbp), %xmm0
- 14300      70F4FFFF 
- 14301 cbe1 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 14301      90F4FFFF 
- 14302 cbe9 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 14302      60F4FFFF 
- 14303 cbf1 F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 14303      80F4FFFF 
- 14304              	.LBB3628:
- 14305              	.LBB3629:
- 14306              	.LBB3630:
- 14307              	.LBB3631:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14308              		.loc 3 529 0
- 14309 cbf9 F30F6F8D 		movdqu	-2944(%rbp), %xmm1
- 14309      80F4FFFF 
- 14310 cc01 F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 14310      90F4FFFF 
- 14311 cc09 660F3800 		pshufb	%xmm1, %xmm0
- 14311      C1
- 14312              	.LBE3631:
- 14313              	.LBE3630:
- 14314              	.LBE3629:
- 14315              	.LBE3628:
- 14316              	.LBE3627:
- 14317              	.LBE3626:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14318              		.loc 2 1567 0
- 14319 cc0e 660F7F85 		movdqa	%xmm0, -9984(%rbp)
- 14319      00D9FFFF 
- 14320 cc16 660F6F85 		movdqa	-9984(%rbp), %xmm0
- 14320      00D9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 439
-
-
- 14321 cc1e 660FEF85 		pxor	-3008(%rbp), %xmm0
- 14321      40F4FFFF 
- 14322 cc26 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 14322      40F4FFFF 
- 14323 cc2e 660F6F85 		movdqa	-9984(%rbp), %xmm0
- 14323      00D9FFFF 
- 14324 cc36 F30F7F85 		movdqu	%xmm0, -2912(%rbp)
- 14324      A0F4FFFF 
- 14325              	.LBB3632:
- 14326              	.LBB3633:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 14327              		.loc 2 1278 0
- 14328 cc3e 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 14328      00000000 
- 14329 cc46 F30F6F8D 		movdqu	-2912(%rbp), %xmm1
- 14329      A0F4FFFF 
- 14330 cc4e F30F7F8D 		movdqu	%xmm1, -2880(%rbp)
- 14330      C0F4FFFF 
- 14331 cc56 F30F7F85 		movdqu	%xmm0, -2896(%rbp)
- 14331      B0F4FFFF 
- 14332 cc5e F30F6F85 		movdqu	-2880(%rbp), %xmm0
- 14332      C0F4FFFF 
- 14333 cc66 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 14333      E0F4FFFF 
- 14334 cc6e F30F6F85 		movdqu	-2896(%rbp), %xmm0
- 14334      B0F4FFFF 
- 14335 cc76 F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 14335      D0F4FFFF 
- 14336              	.LBB3634:
- 14337              	.LBB3635:
- 14338              	.LBB3636:
- 14339              	.LBB3637:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14340              		.loc 3 529 0
- 14341 cc7e F30F6F8D 		movdqu	-2864(%rbp), %xmm1
- 14341      D0F4FFFF 
- 14342 cc86 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 14342      E0F4FFFF 
- 14343 cc8e 660F3800 		pshufb	%xmm1, %xmm0
- 14343      C1
- 14344              	.LBE3637:
- 14345              	.LBE3636:
- 14346              	.LBE3635:
- 14347              	.LBE3634:
- 14348              	.LBE3633:
- 14349              	.LBE3632:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14350              		.loc 2 1568 0
- 14351 cc93 660F7F85 		movdqa	%xmm0, -9984(%rbp)
- 14351      00D9FFFF 
- 14352 cc9b 660F6F85 		movdqa	-9984(%rbp), %xmm0
- 14352      00D9FFFF 
- 14353 cca3 660FEF85 		pxor	-3008(%rbp), %xmm0
- 14353      40F4FFFF 
- 14354 ccab F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 14354      40F4FFFF 
- 14355 ccb3 660F6F85 		movdqa	-9984(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 440
-
-
- 14355      00D9FFFF 
- 14356 ccbb F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 14356      F0F4FFFF 
- 14357              	.LBB3638:
- 14358              	.LBB3639:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 14359              		.loc 2 1278 0
- 14360 ccc3 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 14360      00000000 
- 14361 cccb F30F6F8D 		movdqu	-2832(%rbp), %xmm1
- 14361      F0F4FFFF 
- 14362 ccd3 F30F7F8D 		movdqu	%xmm1, -2800(%rbp)
- 14362      10F5FFFF 
- 14363 ccdb F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 14363      00F5FFFF 
- 14364 cce3 F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 14364      10F5FFFF 
- 14365 cceb F30F7F85 		movdqu	%xmm0, -2768(%rbp)
- 14365      30F5FFFF 
- 14366 ccf3 F30F6F85 		movdqu	-2816(%rbp), %xmm0
- 14366      00F5FFFF 
- 14367 ccfb F30F7F85 		movdqu	%xmm0, -2784(%rbp)
- 14367      20F5FFFF 
- 14368              	.LBB3640:
- 14369              	.LBB3641:
- 14370              	.LBB3642:
- 14371              	.LBB3643:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14372              		.loc 3 529 0
- 14373 cd03 F30F6F8D 		movdqu	-2784(%rbp), %xmm1
- 14373      20F5FFFF 
- 14374 cd0b F30F6F85 		movdqu	-2768(%rbp), %xmm0
- 14374      30F5FFFF 
- 14375 cd13 660F3800 		pshufb	%xmm1, %xmm0
- 14375      C1
- 14376              	.LBE3643:
- 14377              	.LBE3642:
- 14378              	.LBE3641:
- 14379              	.LBE3640:
- 14380              	.LBE3639:
- 14381              	.LBE3638:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14382              		.loc 2 1569 0
- 14383 cd18 660F7F85 		movdqa	%xmm0, -9984(%rbp)
- 14383      00D9FFFF 
- 14384 cd20 660F6F85 		movdqa	-9984(%rbp), %xmm0
- 14384      00D9FFFF 
- 14385 cd28 660FEF85 		pxor	-3008(%rbp), %xmm0
- 14385      40F4FFFF 
- 14386 cd30 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 14386      40F4FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14387              		.loc 2 1571 0
- 14388 cd38 F30F6F85 		movdqu	-3008(%rbp), %xmm0
- 14388      40F4FFFF 
- 14389              	.LBE3625:
- 14390              	.LBE3624:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 441
-
-
- 14391              		.loc 2 1934 0
- 14392 cd40 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 14392      20DCFFFF 
- 14393 cd48 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 14393      20DCFFFF 
- 14394 cd50 F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 14394      50F5FFFF 
- 14395 cd58 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 14395      40DCFFFF 
- 14396 cd60 F30F7F85 		movdqu	%xmm0, -2752(%rbp)
- 14396      40F5FFFF 
- 14397              	.LBB3644:
- 14398              	.LBB3645:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 14399              		.loc 2 178 0
- 14400 cd68 F30F6F85 		movdqu	-2752(%rbp), %xmm0
- 14400      40F5FFFF 
- 14401 cd70 F30F6F8D 		movdqu	-2736(%rbp), %xmm1
- 14401      50F5FFFF 
- 14402 cd78 660FEFC1 		pxor	%xmm1, %xmm0
- 14403              	.LBE3645:
- 14404              	.LBE3644:
- 14405              		.loc 2 1934 0
- 14406 cd7c F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 14406      20DCFFFF 
- 14407 cd84 488B8598 		movq	-9832(%rbp), %rax
- 14407      D9FFFF
- 14408 cd8b 4805A000 		addq	$160, %rax
- 14408      0000
- 14409 cd91 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 14409      20DCFFFF 
- 14410 cd99 F30F7F00 		movdqu	%xmm0, (%rax)
- 14411 cd9d F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 14411      20DCFFFF 
- 14412 cda5 F30F7F85 		movdqu	%xmm0, -2720(%rbp)
- 14412      60F5FFFF 
- 14413              	.LBB3646:
- 14414              	.LBB3647:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 14415              		.loc 2 1656 0
- 14416 cdad F30F6F85 		movdqu	-2720(%rbp), %xmm0
- 14416      60F5FFFF 
- 14417 cdb5 F30F7F85 		movdqu	%xmm0, -9360(%rbp)
- 14417      70DBFFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 14418              		.loc 2 1657 0
- 14419 cdbd 8B857CDB 		movl	-9348(%rbp), %eax
- 14419      FFFF
- 14420 cdc3 898578F5 		movl	%eax, -2696(%rbp)
- 14420      FFFF
- 14421              	.LBB3648:
- 14422              	.LBB3649:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 14423              		.loc 2 740 0
- 14424 cdc9 8B8578F5 		movl	-2696(%rbp), %eax
- 14424      FFFF
- 14425 cdcf 898560DB 		movl	%eax, -9376(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 442
-
-
- 14425      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 14426              		.loc 2 741 0
- 14427 cdd5 C7857CF5 		movl	$0, -2692(%rbp)
- 14427      FFFF0000 
- 14427      0000
- 14428 cddf EB36     		jmp	.L214
- 14429              	.L215:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 14430              		.loc 2 742 0
- 14431 cde1 8B8D7CF5 		movl	-2692(%rbp), %ecx
- 14431      FFFF
- 14432 cde7 8B857CF5 		movl	-2692(%rbp), %eax
- 14432      FFFF
- 14433 cded 89C0     		mov	%eax, %eax
- 14434 cdef 0FB68405 		movzbl	-9376(%rbp,%rax), %eax
- 14434      60DBFFFF 
- 14435 cdf7 0FB6C0   		movzbl	%al, %eax
- 14436 cdfa 89C2     		mov	%eax, %edx
- 14437 cdfc 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 14437      000000
- 14438 ce03 0FB61402 		movzbl	(%rdx,%rax), %edx
- 14439 ce07 89C8     		mov	%ecx, %eax
- 14440 ce09 88940560 		movb	%dl, -9376(%rbp,%rax)
- 14440      DBFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 14441              		.loc 2 741 0
- 14442 ce10 83857CF5 		addl	$1, -2692(%rbp)
- 14442      FFFF01
- 14443              	.L214:
- 14444 ce17 83BD7CF5 		cmpl	$3, -2692(%rbp)
- 14444      FFFF03
- 14445 ce1e 76C1     		jbe	.L215
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 14446              		.loc 2 743 0
- 14447 ce20 8B8560DB 		movl	-9376(%rbp), %eax
- 14447      FFFF
- 14448              	.LBE3649:
- 14449              	.LBE3648:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 14450              		.loc 2 1657 0
- 14451 ce26 898574F5 		movl	%eax, -2700(%rbp)
- 14451      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 14452              		.loc 2 1659 0
- 14453 ce2c 8B8574F5 		movl	-2700(%rbp), %eax
- 14453      FFFF
- 14454 ce32 89857CDB 		movl	%eax, -9348(%rbp)
- 14454      FFFF
- 14455 ce38 8B857CDB 		movl	-9348(%rbp), %eax
- 14455      FFFF
- 14456 ce3e 898578DB 		movl	%eax, -9352(%rbp)
- 14456      FFFF
- 14457 ce44 8B8578DB 		movl	-9352(%rbp), %eax
- 14457      FFFF
- 14458 ce4a 898574DB 		movl	%eax, -9356(%rbp)
- 14458      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 443
-
-
- 14459 ce50 8B8574DB 		movl	-9356(%rbp), %eax
- 14459      FFFF
- 14460 ce56 898570DB 		movl	%eax, -9360(%rbp)
- 14460      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 14461              		.loc 2 1660 0
- 14462 ce5c F30F6F85 		movdqu	-9360(%rbp), %xmm0
- 14462      70DBFFFF 
- 14463              	.LBE3647:
- 14464              	.LBE3646:
-1935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(11);        /* k44 : k45 : k46 : k47 */
- 14465              		.loc 2 1935 0
- 14466 ce64 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 14466      40DCFFFF 
- 14467 ce6c F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 14467      30DCFFFF 
- 14468 ce74 F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 14468      80F5FFFF 
- 14469              	.LBB3650:
- 14470              	.LBB3651:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 14471              		.loc 2 1565 0
- 14472 ce7c F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 14472      80F5FFFF 
- 14473 ce84 660F7F85 		movdqa	%xmm0, -9968(%rbp)
- 14473      10D9FFFF 
- 14474 ce8c 660F6F85 		movdqa	-9968(%rbp), %xmm0
- 14474      10D9FFFF 
- 14475 ce94 F30F7F85 		movdqu	%xmm0, -2672(%rbp)
- 14475      90F5FFFF 
- 14476              	.LBB3652:
- 14477              	.LBB3653:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 14478              		.loc 2 1278 0
- 14479 ce9c 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 14479      00000000 
- 14480 cea4 F30F6F8D 		movdqu	-2672(%rbp), %xmm1
- 14480      90F5FFFF 
- 14481 ceac F30F7F8D 		movdqu	%xmm1, -2640(%rbp)
- 14481      B0F5FFFF 
- 14482 ceb4 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 14482      A0F5FFFF 
- 14483 cebc F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 14483      B0F5FFFF 
- 14484 cec4 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 14484      D0F5FFFF 
- 14485 cecc F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 14485      A0F5FFFF 
- 14486 ced4 F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 14486      C0F5FFFF 
- 14487              	.LBB3654:
- 14488              	.LBB3655:
- 14489              	.LBB3656:
- 14490              	.LBB3657:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14491              		.loc 3 529 0
- 14492 cedc F30F6F8D 		movdqu	-2624(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 444
-
-
- 14492      C0F5FFFF 
- 14493 cee4 F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 14493      D0F5FFFF 
- 14494 ceec 660F3800 		pshufb	%xmm1, %xmm0
- 14494      C1
- 14495              	.LBE3657:
- 14496              	.LBE3656:
- 14497              	.LBE3655:
- 14498              	.LBE3654:
- 14499              	.LBE3653:
- 14500              	.LBE3652:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14501              		.loc 2 1567 0
- 14502 cef1 660F7F85 		movdqa	%xmm0, -9968(%rbp)
- 14502      10D9FFFF 
- 14503 cef9 660F6F85 		movdqa	-9968(%rbp), %xmm0
- 14503      10D9FFFF 
- 14504 cf01 660FEF85 		pxor	-2688(%rbp), %xmm0
- 14504      80F5FFFF 
- 14505 cf09 F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 14505      80F5FFFF 
- 14506 cf11 660F6F85 		movdqa	-9968(%rbp), %xmm0
- 14506      10D9FFFF 
- 14507 cf19 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 14507      E0F5FFFF 
- 14508              	.LBB3658:
- 14509              	.LBB3659:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 14510              		.loc 2 1278 0
- 14511 cf21 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 14511      00000000 
- 14512 cf29 F30F6F8D 		movdqu	-2592(%rbp), %xmm1
- 14512      E0F5FFFF 
- 14513 cf31 F30F7F8D 		movdqu	%xmm1, -2560(%rbp)
- 14513      00F6FFFF 
- 14514 cf39 F30F7F85 		movdqu	%xmm0, -2576(%rbp)
- 14514      F0F5FFFF 
- 14515 cf41 F30F6F85 		movdqu	-2560(%rbp), %xmm0
- 14515      00F6FFFF 
- 14516 cf49 F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 14516      20F6FFFF 
- 14517 cf51 F30F6F85 		movdqu	-2576(%rbp), %xmm0
- 14517      F0F5FFFF 
- 14518 cf59 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 14518      10F6FFFF 
- 14519              	.LBB3660:
- 14520              	.LBB3661:
- 14521              	.LBB3662:
- 14522              	.LBB3663:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14523              		.loc 3 529 0
- 14524 cf61 F30F6F8D 		movdqu	-2544(%rbp), %xmm1
- 14524      10F6FFFF 
- 14525 cf69 F30F6F85 		movdqu	-2528(%rbp), %xmm0
- 14525      20F6FFFF 
- 14526 cf71 660F3800 		pshufb	%xmm1, %xmm0
- 14526      C1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 445
-
-
- 14527              	.LBE3663:
- 14528              	.LBE3662:
- 14529              	.LBE3661:
- 14530              	.LBE3660:
- 14531              	.LBE3659:
- 14532              	.LBE3658:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14533              		.loc 2 1568 0
- 14534 cf76 660F7F85 		movdqa	%xmm0, -9968(%rbp)
- 14534      10D9FFFF 
- 14535 cf7e 660F6F85 		movdqa	-9968(%rbp), %xmm0
- 14535      10D9FFFF 
- 14536 cf86 660FEF85 		pxor	-2688(%rbp), %xmm0
- 14536      80F5FFFF 
- 14537 cf8e F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 14537      80F5FFFF 
- 14538 cf96 660F6F85 		movdqa	-9968(%rbp), %xmm0
- 14538      10D9FFFF 
- 14539 cf9e F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 14539      30F6FFFF 
- 14540              	.LBB3664:
- 14541              	.LBB3665:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 14542              		.loc 2 1278 0
- 14543 cfa6 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 14543      00000000 
- 14544 cfae F30F6F8D 		movdqu	-2512(%rbp), %xmm1
- 14544      30F6FFFF 
- 14545 cfb6 F30F7F8D 		movdqu	%xmm1, -2480(%rbp)
- 14545      50F6FFFF 
- 14546 cfbe F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 14546      40F6FFFF 
- 14547 cfc6 F30F6F85 		movdqu	-2480(%rbp), %xmm0
- 14547      50F6FFFF 
- 14548 cfce F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 14548      70F6FFFF 
- 14549 cfd6 F30F6F85 		movdqu	-2496(%rbp), %xmm0
- 14549      40F6FFFF 
- 14550 cfde F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 14550      60F6FFFF 
- 14551              	.LBB3666:
- 14552              	.LBB3667:
- 14553              	.LBB3668:
- 14554              	.LBB3669:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14555              		.loc 3 529 0
- 14556 cfe6 F30F6F8D 		movdqu	-2464(%rbp), %xmm1
- 14556      60F6FFFF 
- 14557 cfee F30F6F85 		movdqu	-2448(%rbp), %xmm0
- 14557      70F6FFFF 
- 14558 cff6 660F3800 		pshufb	%xmm1, %xmm0
- 14558      C1
- 14559              	.LBE3669:
- 14560              	.LBE3668:
- 14561              	.LBE3667:
- 14562              	.LBE3666:
- 14563              	.LBE3665:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 446
-
-
- 14564              	.LBE3664:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 14565              		.loc 2 1569 0
- 14566 cffb 660F7F85 		movdqa	%xmm0, -9968(%rbp)
- 14566      10D9FFFF 
- 14567 d003 660F6F85 		movdqa	-9968(%rbp), %xmm0
- 14567      10D9FFFF 
- 14568 d00b 660FEF85 		pxor	-2688(%rbp), %xmm0
- 14568      80F5FFFF 
- 14569 d013 F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 14569      80F5FFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14570              		.loc 2 1571 0
- 14571 d01b F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 14571      80F5FFFF 
- 14572              	.LBE3651:
- 14573              	.LBE3650:
- 14574              		.loc 2 1935 0
- 14575 d023 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 14575      30DCFFFF 
- 14576 d02b F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 14576      30DCFFFF 
- 14577 d033 F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 14577      90F6FFFF 
- 14578 d03b F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 14578      40DCFFFF 
- 14579 d043 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 14579      80F6FFFF 
- 14580              	.LBB3670:
- 14581              	.LBB3671:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 14582              		.loc 2 178 0
- 14583 d04b F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 14583      80F6FFFF 
- 14584 d053 F30F6F8D 		movdqu	-2416(%rbp), %xmm1
- 14584      90F6FFFF 
- 14585 d05b 660FEFC1 		pxor	%xmm1, %xmm0
- 14586              	.LBE3671:
- 14587              	.LBE3670:
- 14588              		.loc 2 1935 0
- 14589 d05f F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 14589      30DCFFFF 
- 14590 d067 488B8598 		movq	-9832(%rbp), %rax
- 14590      D9FFFF
- 14591 d06e 4805B000 		addq	$176, %rax
- 14591      0000
- 14592 d074 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 14592      30DCFFFF 
- 14593 d07c F30F7F00 		movdqu	%xmm0, (%rax)
- 14594 d080 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 14594      30DCFFFF 
- 14595 d088 F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 14595      B0F6FFFF 
- 14596              	.LBB3672:
- 14597              	.LBB3673:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 14598              		.loc 2 1681 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 447
-
-
- 14599 d090 B8200000 		movl	$32, %eax
- 14599      00
- 14600 d095 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 14600      00000000 
- 14601 d09d F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 14601      D0F6FFFF 
- 14602 d0a5 8985CCF6 		movl	%eax, -2356(%rbp)
- 14602      FFFF
- 14603 d0ab F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 14603      D0F6FFFF 
- 14604 d0b3 F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 14604      F0F6FFFF 
- 14605 d0bb 8B85CCF6 		movl	-2356(%rbp), %eax
- 14605      FFFF
- 14606 d0c1 8985ECF6 		movl	%eax, -2324(%rbp)
- 14606      FFFF
- 14607              	.LBB3674:
- 14608              	.LBB3675:
- 14609              	.LBB3676:
- 14610              	.LBB3677:
- 14611              		.loc 3 598 0
- 14612 d0c7 8B85ECF6 		movl	-2324(%rbp), %eax
- 14612      FFFF
- 14613 d0cd F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 14613      F0F6FFFF 
- 14614 d0d5 660F3A22 		pinsrd	$3, %eax, %xmm0
- 14614      C003
- 14615              	.LBE3677:
- 14616              	.LBE3676:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 14617              		.loc 2 519 0
- 14618 d0db F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 14618      D0F6FFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14619              		.loc 2 526 0
- 14620 d0e3 F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 14620      D0F6FFFF 
- 14621              	.LBE3675:
- 14622              	.LBE3674:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 14623              		.loc 2 1681 0
- 14624 d0eb 660F7F85 		movdqa	%xmm0, -9936(%rbp)
- 14624      30D9FFFF 
- 14625 d0f3 F30F6F85 		movdqu	-2384(%rbp), %xmm0
- 14625      B0F6FFFF 
- 14626 d0fb F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 14626      00F7FFFF 
- 14627 d103 F30F6F85 		movdqu	-2304(%rbp), %xmm0
- 14627      00F7FFFF 
- 14628 d10b F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 14628      20F7FFFF 
- 14629 d113 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 14629      000000
- 14630 d11a 48898518 		movq	%rax, -2280(%rbp)
- 14630      F7FFFF
- 14631              	.LBB3678:
- 14632              	.LBB3679:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 448
-
-
- 14633              	.LBB3680:
- 14634              	.LBB3681:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 14635              		.loc 2 851 0
- 14636 d121 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 14636      00000000 
- 14637 d129 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 14637      40F7FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 14638              		.loc 2 854 0
- 14639 d131 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 14639      00000000 
- 14640 d139 F30F6F8D 		movdqu	-2272(%rbp), %xmm1
- 14640      20F7FFFF 
- 14641 d141 F30F7F8D 		movdqu	%xmm1, -2160(%rbp)
- 14641      90F7FFFF 
- 14642 d149 F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 14642      80F7FFFF 
- 14643              	.LBB3682:
- 14644              	.LBB3683:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 14645              		.loc 2 206 0
- 14646 d151 F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 14646      80F7FFFF 
- 14647 d159 F30F6F8D 		movdqu	-2160(%rbp), %xmm1
- 14647      90F7FFFF 
- 14648 d161 660FDBC1 		pand	%xmm1, %xmm0
- 14649              	.LBE3683:
- 14650              	.LBE3682:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 14651              		.loc 2 854 0
- 14652 d165 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 14652      70F7FFFF 
- 14653 d16d F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 14653      20F7FFFF 
- 14654 d175 F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 14654      B0F7FFFF 
- 14655              	.LBB3684:
- 14656              	.LBB3685:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 14657              		.loc 3 433 0
- 14658 d17d F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 14658      B0F7FFFF 
- 14659 d185 660F72D0 		psrld	$4, %xmm0
- 14659      04
- 14660              	.LBE3685:
- 14661              	.LBE3684:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 14662              		.loc 2 857 0
- 14663 d18a F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 14663      60F7FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14664              		.loc 2 859 0
- 14665 d192 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 14665      00000000 
- 14666 d19a F30F6F8D 		movdqu	-2208(%rbp), %xmm1
- 14666      60F7FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 449
-
-
- 14667 d1a2 F30F7F8D 		movdqu	%xmm1, -2096(%rbp)
- 14667      D0F7FFFF 
- 14668 d1aa F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 14668      C0F7FFFF 
- 14669              	.LBB3686:
- 14670              	.LBB3687:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 14671              		.loc 2 206 0
- 14672 d1b2 F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 14672      C0F7FFFF 
- 14673 d1ba F30F6F8D 		movdqu	-2096(%rbp), %xmm1
- 14673      D0F7FFFF 
- 14674 d1c2 660FDBC1 		pand	%xmm1, %xmm0
- 14675              	.LBE3687:
- 14676              	.LBE3686:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14677              		.loc 2 859 0
- 14678 d1c6 F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 14678      60F7FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 14679              		.loc 2 866 0
- 14680 d1ce C7853CF7 		movl	$0, -2244(%rbp)
- 14680      FFFF0000 
- 14680      0000
- 14681 d1d8 E9BE0100 		jmp	.L216
- 14681      00
- 14682              	.L217:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 14683              		.loc 2 868 0
- 14684 d1dd 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 14684      00000000 
- 14685 d1e5 F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 14685      F0F7FFFF 
- 14686 d1ed F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 14686      60F7FFFF 
- 14687 d1f5 F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 14687      E0F7FFFF 
- 14688 d1fd F30F6F85 		movdqu	-2064(%rbp), %xmm0
- 14688      F0F7FFFF 
- 14689 d205 F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 14689      10F8FFFF 
- 14690 d20d F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 14690      E0F7FFFF 
- 14691 d215 F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 14691      00F8FFFF 
- 14692              	.LBB3688:
- 14693              	.LBB3689:
- 14694              	.LBB3690:
- 14695              	.LBB3691:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14696              		.loc 3 529 0
- 14697 d21d F30F6F8D 		movdqu	-2048(%rbp), %xmm1
- 14697      00F8FFFF 
- 14698 d225 F30F6F85 		movdqu	-2032(%rbp), %xmm0
- 14698      10F8FFFF 
- 14699 d22d 660F3800 		pshufb	%xmm1, %xmm0
- 14699      C1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 450
-
-
- 14700              	.LBE3691:
- 14701              	.LBE3690:
- 14702              	.LBE3689:
- 14703              	.LBE3688:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 14704              		.loc 2 868 0
- 14705 d232 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 14705      50F7FFFF 
- 14706 d23a F30F6F85 		movdqu	-2192(%rbp), %xmm0
- 14706      70F7FFFF 
- 14707 d242 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 14707      30F8FFFF 
- 14708 d24a F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 14708      50F7FFFF 
- 14709 d252 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 14709      20F8FFFF 
- 14710              	.LBB3692:
- 14711              	.LBB3693:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 14712              		.loc 2 234 0
- 14713 d25a F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 14713      20F8FFFF 
- 14714 d262 F30F6F8D 		movdqu	-2000(%rbp), %xmm1
- 14714      30F8FFFF 
- 14715 d26a 660FEBC1 		por	%xmm1, %xmm0
- 14716              	.LBE3693:
- 14717              	.LBE3692:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 14718              		.loc 2 870 0
- 14719 d26e F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 14719      50F7FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 14720              		.loc 2 872 0
- 14721 d276 8B853CF7 		mov	-2244(%rbp), %eax
- 14721      FFFF
- 14722 d27c 48C1E004 		salq	$4, %rax
- 14723 d280 48038518 		addq	-2280(%rbp), %rax
- 14723      F7FFFF
- 14724 d287 660F6F00 		movdqa	(%rax), %xmm0
- 14725 d28b F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 14725      50F8FFFF 
- 14726 d293 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 14726      50F7FFFF 
- 14727 d29b F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 14727      40F8FFFF 
- 14728 d2a3 F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 14728      50F8FFFF 
- 14729 d2ab F30F7F85 		movdqu	%xmm0, -1936(%rbp)
- 14729      70F8FFFF 
- 14730 d2b3 F30F6F85 		movdqu	-1984(%rbp), %xmm0
- 14730      40F8FFFF 
- 14731 d2bb F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 14731      60F8FFFF 
- 14732              	.LBB3694:
- 14733              	.LBB3695:
- 14734              	.LBB3696:
- 14735              	.LBB3697:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 451
-
-
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14736              		.loc 3 529 0
- 14737 d2c3 F30F6F8D 		movdqu	-1952(%rbp), %xmm1
- 14737      60F8FFFF 
- 14738 d2cb F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 14738      70F8FFFF 
- 14739 d2d3 660F3800 		pshufb	%xmm1, %xmm0
- 14739      C1
- 14740              	.LBE3697:
- 14741              	.LBE3696:
- 14742              	.LBE3695:
- 14743              	.LBE3694:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 14744              		.loc 2 872 0
- 14745 d2d8 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 14745      50F7FFFF 
- 14746 d2e0 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 14746      40F7FFFF 
- 14747 d2e8 F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 14747      90F8FFFF 
- 14748 d2f0 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 14748      50F7FFFF 
- 14749 d2f8 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 14749      80F8FFFF 
- 14750              	.LBB3698:
- 14751              	.LBB3699:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 14752              		.loc 2 234 0
- 14753 d300 F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 14753      80F8FFFF 
- 14754 d308 F30F6F8D 		movdqu	-1904(%rbp), %xmm1
- 14754      90F8FFFF 
- 14755 d310 660FEBC1 		por	%xmm1, %xmm0
- 14756              	.LBE3699:
- 14757              	.LBE3698:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 14758              		.loc 2 874 0
- 14759 d314 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 14759      40F7FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 14760              		.loc 2 876 0
- 14761 d31c 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 14761      00000000 
- 14762 d324 F30F6F8D 		movdqu	-2208(%rbp), %xmm1
- 14762      60F7FFFF 
- 14763 d32c F30F7F8D 		movdqu	%xmm1, -1872(%rbp)
- 14763      B0F8FFFF 
- 14764 d334 F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 14764      A0F8FFFF 
- 14765              	.LBB3700:
- 14766              	.LBB3701:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 14767              		.loc 2 290 0
- 14768 d33c F30F6F8D 		movdqu	-1888(%rbp), %xmm1
- 14768      A0F8FFFF 
- 14769 d344 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 14769      B0F8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 452
-
-
- 14770 d34c 660FF8C1 		psubb	%xmm1, %xmm0
- 14771              	.LBE3701:
- 14772              	.LBE3700:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 14773              		.loc 2 876 0
- 14774 d350 F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 14774      60F7FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14775              		.loc 2 878 0
- 14776 d358 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 14776      00000000 
- 14777 d360 F30F6F8D 		movdqu	-2208(%rbp), %xmm1
- 14777      60F7FFFF 
- 14778 d368 F30F7F8D 		movdqu	%xmm1, -1840(%rbp)
- 14778      D0F8FFFF 
- 14779 d370 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 14779      C0F8FFFF 
- 14780              	.LBB3702:
- 14781              	.LBB3703:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 14782              		.loc 2 206 0
- 14783 d378 F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 14783      C0F8FFFF 
- 14784 d380 F30F6F8D 		movdqu	-1840(%rbp), %xmm1
- 14784      D0F8FFFF 
- 14785 d388 660FDBC1 		pand	%xmm1, %xmm0
- 14786              	.LBE3703:
- 14787              	.LBE3702:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 14788              		.loc 2 878 0
- 14789 d38c F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 14789      60F7FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 14790              		.loc 2 866 0
- 14791 d394 83853CF7 		addl	$1, -2244(%rbp)
- 14791      FFFF01
- 14792              	.L216:
- 14793 d39b 83BD3CF7 		cmpl	$15, -2244(%rbp)
- 14793      FFFF0F
- 14794 d3a2 0F8635FE 		jbe	.L217
- 14794      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 14795              		.loc 2 882 0
- 14796 d3a8 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 14796      40F7FFFF 
- 14797              	.LBE3681:
- 14798              	.LBE3680:
- 14799              	.LBE3679:
- 14800              	.LBE3678:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 14801              		.loc 2 1682 0
- 14802 d3b0 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 14802      20D9FFFF 
- 14803              	.LBB3704:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 14804              		.loc 2 1683 0
- 14805 d3b8 660F6F85 		movdqa	-9952(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 453
-
-
- 14805      20D9FFFF 
- 14806 d3c0 F30F7F85 		movdqu	%xmm0, -9296(%rbp)
- 14806      B0DBFFFF 
- 14807 d3c8 E8000000 		call	KDbgWriterGet at PLT
- 14807      00
- 14808 d3cd 4885C0   		testq	%rax, %rax
- 14809 d3d0 7479     		je	.L219
- 14810 d3d2 BF010000 		movl	$1, %edi
- 14810      00
- 14811 d3d7 E8000000 		call	KDbgCondToFlag at PLT
- 14811      00
- 14812 d3dc 4889C6   		movq	%rax, %rsi
- 14813 d3df BF100000 		movl	$16, %edi
- 14813      00
- 14814 d3e4 E8000000 		call	KDbgTestModConds at PLT
- 14814      00
- 14815 d3e9 84C0     		testb	%al, %al
- 14816 d3eb 745E     		je	.L219
- 14817 d3ed 8B85BCDB 		movl	-9284(%rbp), %eax
- 14817      FFFF
- 14818 d3f3 89C7     		movl	%eax, %edi
- 14819 d3f5 E8062CFF 		call	bswap_32
- 14819      FF
- 14820 d3fa 4189C5   		movl	%eax, %r13d
- 14821 d3fd 8B85B8DB 		movl	-9288(%rbp), %eax
- 14821      FFFF
- 14822 d403 89C7     		movl	%eax, %edi
- 14823 d405 E8F62BFF 		call	bswap_32
- 14823      FF
- 14824 d40a 4189C4   		movl	%eax, %r12d
- 14825 d40d 8B85B4DB 		movl	-9292(%rbp), %eax
- 14825      FFFF
- 14826 d413 89C7     		movl	%eax, %edi
- 14827 d415 E8E62BFF 		call	bswap_32
- 14827      FF
- 14828 d41a 89C3     		movl	%eax, %ebx
- 14829 d41c 8B85B0DB 		movl	-9296(%rbp), %eax
- 14829      FFFF
- 14830 d422 89C7     		movl	%eax, %edi
- 14831 d424 E8D72BFF 		call	bswap_32
- 14831      FF
- 14832 d429 4589E9   		movl	%r13d, %r9d
- 14833 d42c 4589E0   		movl	%r12d, %r8d
- 14834 d42f 89D9     		movl	%ebx, %ecx
- 14835 d431 89C2     		movl	%eax, %edx
- 14836 d433 488D3500 		leaq	.LC0(%rip), %rsi
- 14836      000000
- 14837 d43a 488D3D00 		leaq	.LC1(%rip), %rdi
- 14837      000000
- 14838 d441 B8000000 		movl	$0, %eax
- 14838      00
- 14839 d446 E8000000 		call	KDbgMsg at PLT
- 14839      00
- 14840              	.L219:
- 14841 d44b 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 14841      20D9FFFF 
- 14842 d453 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 454
-
-
- 14842      E0F8FFFF 
- 14843              	.LBE3704:
- 14844              	.LBB3705:
- 14845              	.LBB3706:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 14846              		.loc 2 667 0
- 14847 d45b 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 14847      00000000 
- 14848 d463 F30F6F8D 		movdqu	-1824(%rbp), %xmm1
- 14848      E0F8FFFF 
- 14849 d46b F30F7F8D 		movdqu	%xmm1, -1792(%rbp)
- 14849      00F9FFFF 
- 14850 d473 F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 14850      F0F8FFFF 
- 14851 d47b F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 14851      00F9FFFF 
- 14852 d483 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 14852      20F9FFFF 
- 14853 d48b F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 14853      F0F8FFFF 
- 14854 d493 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 14854      10F9FFFF 
- 14855              	.LBB3707:
- 14856              	.LBB3708:
- 14857              	.LBB3709:
- 14858              	.LBB3710:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 14859              		.loc 3 529 0
- 14860 d49b F30F6F8D 		movdqu	-1776(%rbp), %xmm1
- 14860      10F9FFFF 
- 14861 d4a3 F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 14861      20F9FFFF 
- 14862 d4ab 660F3800 		pshufb	%xmm1, %xmm0
- 14862      C1
- 14863              	.LBE3710:
- 14864              	.LBE3709:
- 14865              	.LBE3708:
- 14866              	.LBE3707:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 14867              		.loc 2 667 0
- 14868 d4b0 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 14868      E0F8FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 14869              		.loc 2 668 0
- 14870 d4b8 F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 14870      E0F8FFFF 
- 14871              	.LBE3706:
- 14872              	.LBE3705:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 14873              		.loc 2 1684 0
- 14874 d4c0 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 14874      20D9FFFF 
- 14875              	.LBB3711:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 14876              		.loc 2 1685 0
- 14877 d4c8 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 14877      20D9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 455
-
-
- 14878 d4d0 F30F7F85 		movdqu	%xmm0, -9312(%rbp)
- 14878      A0DBFFFF 
- 14879 d4d8 E8000000 		call	KDbgWriterGet at PLT
- 14879      00
- 14880 d4dd 4885C0   		testq	%rax, %rax
- 14881 d4e0 7479     		je	.L221
- 14882 d4e2 BF010000 		movl	$1, %edi
- 14882      00
- 14883 d4e7 E8000000 		call	KDbgCondToFlag at PLT
- 14883      00
- 14884 d4ec 4889C6   		movq	%rax, %rsi
- 14885 d4ef BF100000 		movl	$16, %edi
- 14885      00
- 14886 d4f4 E8000000 		call	KDbgTestModConds at PLT
- 14886      00
- 14887 d4f9 84C0     		testb	%al, %al
- 14888 d4fb 745E     		je	.L221
- 14889 d4fd 8B85ACDB 		movl	-9300(%rbp), %eax
- 14889      FFFF
- 14890 d503 89C7     		movl	%eax, %edi
- 14891 d505 E8F62AFF 		call	bswap_32
- 14891      FF
- 14892 d50a 4189C5   		movl	%eax, %r13d
- 14893 d50d 8B85A8DB 		movl	-9304(%rbp), %eax
- 14893      FFFF
- 14894 d513 89C7     		movl	%eax, %edi
- 14895 d515 E8E62AFF 		call	bswap_32
- 14895      FF
- 14896 d51a 4189C4   		movl	%eax, %r12d
- 14897 d51d 8B85A4DB 		movl	-9308(%rbp), %eax
- 14897      FFFF
- 14898 d523 89C7     		movl	%eax, %edi
- 14899 d525 E8D62AFF 		call	bswap_32
- 14899      FF
- 14900 d52a 89C3     		movl	%eax, %ebx
- 14901 d52c 8B85A0DB 		movl	-9312(%rbp), %eax
- 14901      FFFF
- 14902 d532 89C7     		movl	%eax, %edi
- 14903 d534 E8C72AFF 		call	bswap_32
- 14903      FF
- 14904 d539 4589E9   		movl	%r13d, %r9d
- 14905 d53c 4589E0   		movl	%r12d, %r8d
- 14906 d53f 89D9     		movl	%ebx, %ecx
- 14907 d541 89C2     		movl	%eax, %edx
- 14908 d543 488D3500 		leaq	.LC2(%rip), %rsi
- 14908      000000
- 14909 d54a 488D3D00 		leaq	.LC1(%rip), %rdi
- 14909      000000
- 14910 d551 B8000000 		movl	$0, %eax
- 14910      00
- 14911 d556 E8000000 		call	KDbgMsg at PLT
- 14911      00
- 14912              	.L221:
- 14913 d55b 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 14913      20D9FFFF 
- 14914 d563 F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 14914      40F9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 456
-
-
- 14915 d56b 660F6F85 		movdqa	-9936(%rbp), %xmm0
- 14915      30D9FFFF 
- 14916 d573 F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 14916      30F9FFFF 
- 14917              	.LBE3711:
- 14918              	.LBB3712:
- 14919              	.LBB3713:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 14920              		.loc 2 178 0
- 14921 d57b F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 14921      30F9FFFF 
- 14922 d583 F30F6F8D 		movdqu	-1728(%rbp), %xmm1
- 14922      40F9FFFF 
- 14923 d58b 660FEFC1 		pxor	%xmm1, %xmm0
- 14924              	.LBE3713:
- 14925              	.LBE3712:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 14926              		.loc 2 1686 0
- 14927 d58f 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 14927      20D9FFFF 
- 14928              	.LBB3714:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 14929              		.loc 2 1687 0
- 14930 d597 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 14930      20D9FFFF 
- 14931 d59f F30F7F85 		movdqu	%xmm0, -9328(%rbp)
- 14931      90DBFFFF 
- 14932 d5a7 E8000000 		call	KDbgWriterGet at PLT
- 14932      00
- 14933 d5ac 4885C0   		testq	%rax, %rax
- 14934 d5af 7479     		je	.L223
- 14935 d5b1 BF010000 		movl	$1, %edi
- 14935      00
- 14936 d5b6 E8000000 		call	KDbgCondToFlag at PLT
- 14936      00
- 14937 d5bb 4889C6   		movq	%rax, %rsi
- 14938 d5be BF100000 		movl	$16, %edi
- 14938      00
- 14939 d5c3 E8000000 		call	KDbgTestModConds at PLT
- 14939      00
- 14940 d5c8 84C0     		testb	%al, %al
- 14941 d5ca 745E     		je	.L223
- 14942 d5cc 8B859CDB 		movl	-9316(%rbp), %eax
- 14942      FFFF
- 14943 d5d2 89C7     		movl	%eax, %edi
- 14944 d5d4 E8272AFF 		call	bswap_32
- 14944      FF
- 14945 d5d9 4189C5   		movl	%eax, %r13d
- 14946 d5dc 8B8598DB 		movl	-9320(%rbp), %eax
- 14946      FFFF
- 14947 d5e2 89C7     		movl	%eax, %edi
- 14948 d5e4 E8172AFF 		call	bswap_32
- 14948      FF
- 14949 d5e9 4189C4   		movl	%eax, %r12d
- 14950 d5ec 8B8594DB 		movl	-9324(%rbp), %eax
- 14950      FFFF
- 14951 d5f2 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 457
-
-
- 14952 d5f4 E8072AFF 		call	bswap_32
- 14952      FF
- 14953 d5f9 89C3     		movl	%eax, %ebx
- 14954 d5fb 8B8590DB 		movl	-9328(%rbp), %eax
- 14954      FFFF
- 14955 d601 89C7     		movl	%eax, %edi
- 14956 d603 E8F829FF 		call	bswap_32
- 14956      FF
- 14957 d608 4589E9   		movl	%r13d, %r9d
- 14958 d60b 4589E0   		movl	%r12d, %r8d
- 14959 d60e 89D9     		movl	%ebx, %ecx
- 14960 d610 89C2     		movl	%eax, %edx
- 14961 d612 488D3500 		leaq	.LC3(%rip), %rsi
- 14961      000000
- 14962 d619 488D3D00 		leaq	.LC1(%rip), %rdi
- 14962      000000
- 14963 d620 B8000000 		movl	$0, %eax
- 14963      00
- 14964 d625 E8000000 		call	KDbgMsg at PLT
- 14964      00
- 14965              	.L223:
- 14966 d62a 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 14966      20D9FFFF 
- 14967 d632 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 14967      50F9FFFF 
- 14968 d63a F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 14968      50F9FFFF 
- 14969 d642 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 14969      70F9FFFF 
- 14970              	.LBE3714:
- 14971              	.LBB3715:
- 14972              	.LBB3716:
- 14973              	.LBB3717:
- 14974              	.LBB3718:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 14975              		.loc 3 450 0
- 14976 d64a F30F6F85 		movdqu	-1680(%rbp), %xmm0
- 14976      70F9FFFF 
- 14977 d652 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 14977      FF
- 14978              	.LBE3718:
- 14979              	.LBE3717:
- 14980              	.LBE3716:
- 14981              	.LBE3715:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 14982              		.loc 2 1688 0
- 14983 d657 660F7F85 		movdqa	%xmm0, -9952(%rbp)
- 14983      20D9FFFF 
- 14984              	.LBB3719:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 14985              		.loc 2 1689 0
- 14986 d65f 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 14986      20D9FFFF 
- 14987 d667 F30F7F85 		movdqu	%xmm0, -9344(%rbp)
- 14987      80DBFFFF 
- 14988 d66f E8000000 		call	KDbgWriterGet at PLT
- 14988      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 458
-
-
- 14989 d674 4885C0   		testq	%rax, %rax
- 14990 d677 7479     		je	.L225
- 14991 d679 BF010000 		movl	$1, %edi
- 14991      00
- 14992 d67e E8000000 		call	KDbgCondToFlag at PLT
- 14992      00
- 14993 d683 4889C6   		movq	%rax, %rsi
- 14994 d686 BF100000 		movl	$16, %edi
- 14994      00
- 14995 d68b E8000000 		call	KDbgTestModConds at PLT
- 14995      00
- 14996 d690 84C0     		testb	%al, %al
- 14997 d692 745E     		je	.L225
- 14998 d694 8B858CDB 		movl	-9332(%rbp), %eax
- 14998      FFFF
- 14999 d69a 89C7     		movl	%eax, %edi
- 15000 d69c E85F29FF 		call	bswap_32
- 15000      FF
- 15001 d6a1 4189C5   		movl	%eax, %r13d
- 15002 d6a4 8B8588DB 		movl	-9336(%rbp), %eax
- 15002      FFFF
- 15003 d6aa 89C7     		movl	%eax, %edi
- 15004 d6ac E84F29FF 		call	bswap_32
- 15004      FF
- 15005 d6b1 4189C4   		movl	%eax, %r12d
- 15006 d6b4 8B8584DB 		movl	-9340(%rbp), %eax
- 15006      FFFF
- 15007 d6ba 89C7     		movl	%eax, %edi
- 15008 d6bc E83F29FF 		call	bswap_32
- 15008      FF
- 15009 d6c1 89C3     		movl	%eax, %ebx
- 15010 d6c3 8B8580DB 		movl	-9344(%rbp), %eax
- 15010      FFFF
- 15011 d6c9 89C7     		movl	%eax, %edi
- 15012 d6cb E83029FF 		call	bswap_32
- 15012      FF
- 15013 d6d0 4589E9   		movl	%r13d, %r9d
- 15014 d6d3 4589E0   		movl	%r12d, %r8d
- 15015 d6d6 89D9     		movl	%ebx, %ecx
- 15016 d6d8 89C2     		movl	%eax, %edx
- 15017 d6da 488D3500 		leaq	.LC4(%rip), %rsi
- 15017      000000
- 15018 d6e1 488D3D00 		leaq	.LC1(%rip), %rdi
- 15018      000000
- 15019 d6e8 B8000000 		movl	$0, %eax
- 15019      00
- 15020 d6ed E8000000 		call	KDbgMsg at PLT
- 15020      00
- 15021              	.L225:
- 15022              	.LBE3719:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
- 15023              		.loc 2 1690 0
- 15024 d6f2 660F6F85 		movdqa	-9952(%rbp), %xmm0
- 15024      20D9FFFF 
- 15025              	.LBE3673:
- 15026              	.LBE3672:
-1936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(12,0x20);   /* k48 : k49 : k50 : k51 */
-
GAS LISTING /tmp/ccjbMjHD.s 			page 459
-
-
- 15027              		.loc 2 1936 0
- 15028 d6fa F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 15028      40DCFFFF 
- 15029 d702 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 15029      20DCFFFF 
- 15030 d70a F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 15030      80F9FFFF 
- 15031              	.LBB3720:
- 15032              	.LBB3721:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 15033              		.loc 2 1565 0
- 15034 d712 F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 15034      80F9FFFF 
- 15035 d71a 660F7F85 		movdqa	%xmm0, -9920(%rbp)
- 15035      40D9FFFF 
- 15036 d722 660F6F85 		movdqa	-9920(%rbp), %xmm0
- 15036      40D9FFFF 
- 15037 d72a F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 15037      90F9FFFF 
- 15038              	.LBB3722:
- 15039              	.LBB3723:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15040              		.loc 2 1278 0
- 15041 d732 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15041      00000000 
- 15042 d73a F30F6F8D 		movdqu	-1648(%rbp), %xmm1
- 15042      90F9FFFF 
- 15043 d742 F30F7F8D 		movdqu	%xmm1, -1616(%rbp)
- 15043      B0F9FFFF 
- 15044 d74a F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 15044      A0F9FFFF 
- 15045 d752 F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 15045      B0F9FFFF 
- 15046 d75a F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 15046      D0F9FFFF 
- 15047 d762 F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 15047      A0F9FFFF 
- 15048 d76a F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 15048      C0F9FFFF 
- 15049              	.LBB3724:
- 15050              	.LBB3725:
- 15051              	.LBB3726:
- 15052              	.LBB3727:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15053              		.loc 3 529 0
- 15054 d772 F30F6F8D 		movdqu	-1600(%rbp), %xmm1
- 15054      C0F9FFFF 
- 15055 d77a F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 15055      D0F9FFFF 
- 15056 d782 660F3800 		pshufb	%xmm1, %xmm0
- 15056      C1
- 15057              	.LBE3727:
- 15058              	.LBE3726:
- 15059              	.LBE3725:
- 15060              	.LBE3724:
- 15061              	.LBE3723:
- 15062              	.LBE3722:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 460
-
-
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15063              		.loc 2 1567 0
- 15064 d787 660F7F85 		movdqa	%xmm0, -9920(%rbp)
- 15064      40D9FFFF 
- 15065 d78f 660F6F85 		movdqa	-9920(%rbp), %xmm0
- 15065      40D9FFFF 
- 15066 d797 660FEF85 		pxor	-1664(%rbp), %xmm0
- 15066      80F9FFFF 
- 15067 d79f F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 15067      80F9FFFF 
- 15068 d7a7 660F6F85 		movdqa	-9920(%rbp), %xmm0
- 15068      40D9FFFF 
- 15069 d7af F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 15069      E0F9FFFF 
- 15070              	.LBB3728:
- 15071              	.LBB3729:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15072              		.loc 2 1278 0
- 15073 d7b7 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15073      00000000 
- 15074 d7bf F30F6F8D 		movdqu	-1568(%rbp), %xmm1
- 15074      E0F9FFFF 
- 15075 d7c7 F30F7F8D 		movdqu	%xmm1, -1536(%rbp)
- 15075      00FAFFFF 
- 15076 d7cf F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 15076      F0F9FFFF 
- 15077 d7d7 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 15077      00FAFFFF 
- 15078 d7df F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 15078      20FAFFFF 
- 15079 d7e7 F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 15079      F0F9FFFF 
- 15080 d7ef F30F7F85 		movdqu	%xmm0, -1520(%rbp)
- 15080      10FAFFFF 
- 15081              	.LBB3730:
- 15082              	.LBB3731:
- 15083              	.LBB3732:
- 15084              	.LBB3733:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15085              		.loc 3 529 0
- 15086 d7f7 F30F6F8D 		movdqu	-1520(%rbp), %xmm1
- 15086      10FAFFFF 
- 15087 d7ff F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 15087      20FAFFFF 
- 15088 d807 660F3800 		pshufb	%xmm1, %xmm0
- 15088      C1
- 15089              	.LBE3733:
- 15090              	.LBE3732:
- 15091              	.LBE3731:
- 15092              	.LBE3730:
- 15093              	.LBE3729:
- 15094              	.LBE3728:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15095              		.loc 2 1568 0
- 15096 d80c 660F7F85 		movdqa	%xmm0, -9920(%rbp)
- 15096      40D9FFFF 
- 15097 d814 660F6F85 		movdqa	-9920(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 461
-
-
- 15097      40D9FFFF 
- 15098 d81c 660FEF85 		pxor	-1664(%rbp), %xmm0
- 15098      80F9FFFF 
- 15099 d824 F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 15099      80F9FFFF 
- 15100 d82c 660F6F85 		movdqa	-9920(%rbp), %xmm0
- 15100      40D9FFFF 
- 15101 d834 F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 15101      30FAFFFF 
- 15102              	.LBB3734:
- 15103              	.LBB3735:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15104              		.loc 2 1278 0
- 15105 d83c 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15105      00000000 
- 15106 d844 F30F6F8D 		movdqu	-1488(%rbp), %xmm1
- 15106      30FAFFFF 
- 15107 d84c F30F7F8D 		movdqu	%xmm1, -1456(%rbp)
- 15107      50FAFFFF 
- 15108 d854 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 15108      40FAFFFF 
- 15109 d85c F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 15109      50FAFFFF 
- 15110 d864 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 15110      70FAFFFF 
- 15111 d86c F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 15111      40FAFFFF 
- 15112 d874 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 15112      60FAFFFF 
- 15113              	.LBB3736:
- 15114              	.LBB3737:
- 15115              	.LBB3738:
- 15116              	.LBB3739:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15117              		.loc 3 529 0
- 15118 d87c F30F6F8D 		movdqu	-1440(%rbp), %xmm1
- 15118      60FAFFFF 
- 15119 d884 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 15119      70FAFFFF 
- 15120 d88c 660F3800 		pshufb	%xmm1, %xmm0
- 15120      C1
- 15121              	.LBE3739:
- 15122              	.LBE3738:
- 15123              	.LBE3737:
- 15124              	.LBE3736:
- 15125              	.LBE3735:
- 15126              	.LBE3734:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15127              		.loc 2 1569 0
- 15128 d891 660F7F85 		movdqa	%xmm0, -9920(%rbp)
- 15128      40D9FFFF 
- 15129 d899 660F6F85 		movdqa	-9920(%rbp), %xmm0
- 15129      40D9FFFF 
- 15130 d8a1 660FEF85 		pxor	-1664(%rbp), %xmm0
- 15130      80F9FFFF 
- 15131 d8a9 F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 15131      80F9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 462
-
-
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15132              		.loc 2 1571 0
- 15133 d8b1 F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 15133      80F9FFFF 
- 15134              	.LBE3721:
- 15135              	.LBE3720:
- 15136              		.loc 2 1936 0
- 15137 d8b9 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 15137      20DCFFFF 
- 15138 d8c1 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 15138      20DCFFFF 
- 15139 d8c9 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 15139      90FAFFFF 
- 15140 d8d1 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 15140      40DCFFFF 
- 15141 d8d9 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 15141      80FAFFFF 
- 15142              	.LBB3740:
- 15143              	.LBB3741:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 15144              		.loc 2 178 0
- 15145 d8e1 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 15145      80FAFFFF 
- 15146 d8e9 F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 15146      90FAFFFF 
- 15147 d8f1 660FEFC1 		pxor	%xmm1, %xmm0
- 15148              	.LBE3741:
- 15149              	.LBE3740:
- 15150              		.loc 2 1936 0
- 15151 d8f5 F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 15151      20DCFFFF 
- 15152 d8fd 488B8598 		movq	-9832(%rbp), %rax
- 15152      D9FFFF
- 15153 d904 4805C000 		addq	$192, %rax
- 15153      0000
- 15154 d90a F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 15154      20DCFFFF 
- 15155 d912 F30F7F00 		movdqu	%xmm0, (%rax)
- 15156 d916 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 15156      20DCFFFF 
- 15157 d91e F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 15157      A0FAFFFF 
- 15158              	.LBB3742:
- 15159              	.LBB3743:
-1656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.state = state;
- 15160              		.loc 2 1656 0
- 15161 d926 F30F6F85 		movdqu	-1376(%rbp), %xmm0
- 15161      A0FAFFFF 
- 15162 d92e F30F7F85 		movdqu	%xmm0, -9264(%rbp)
- 15162      D0DBFFFF 
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 15163              		.loc 2 1657 0
- 15164 d936 8B85DCDB 		movl	-9252(%rbp), %eax
- 15164      FFFF
- 15165 d93c 8985B8FA 		movl	%eax, -1352(%rbp)
- 15165      FFFF
- 15166              	.LBB3744:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 463
-
-
- 15167              	.LBB3745:
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     col.word = w;
- 15168              		.loc 2 740 0
- 15169 d942 8B85B8FA 		movl	-1352(%rbp), %eax
- 15169      FFFF
- 15170 d948 8985C0DB 		movl	%eax, -9280(%rbp)
- 15170      FFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 15171              		.loc 2 741 0
- 15172 d94e C785BCFA 		movl	$0, -1348(%rbp)
- 15172      FFFF0000 
- 15172      0000
- 15173 d958 EB36     		jmp	.L226
- 15174              	.L227:
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         col.bytes[ix] = AESBCMEMBER(RijndaelSBox)[(unsigned)col.bytes[ix]];
- 15175              		.loc 2 742 0
- 15176 d95a 8B8DBCFA 		movl	-1348(%rbp), %ecx
- 15176      FFFF
- 15177 d960 8B85BCFA 		movl	-1348(%rbp), %eax
- 15177      FFFF
- 15178 d966 89C0     		mov	%eax, %eax
- 15179 d968 0FB68405 		movzbl	-9280(%rbp,%rax), %eax
- 15179      C0DBFFFF 
- 15180 d970 0FB6C0   		movzbl	%al, %eax
- 15181 d973 89C2     		mov	%eax, %edx
- 15182 d975 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBox(%rip), %rax
- 15182      000000
- 15183 d97c 0FB61402 		movzbl	(%rdx,%rax), %edx
- 15184 d980 89C8     		mov	%ecx, %eax
- 15185 d982 889405C0 		movb	%dl, -9280(%rbp,%rax)
- 15185      DBFFFF
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (col); ++ix)
- 15186              		.loc 2 741 0
- 15187 d989 8385BCFA 		addl	$1, -1348(%rbp)
- 15187      FFFF01
- 15188              	.L226:
- 15189 d990 83BDBCFA 		cmpl	$3, -1348(%rbp)
- 15189      FFFF03
- 15190 d997 76C1     		jbe	.L227
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return col.word;
- 15191              		.loc 2 743 0
- 15192 d999 8B85C0DB 		movl	-9280(%rbp), %eax
- 15192      FFFF
- 15193              	.LBE3745:
- 15194              	.LBE3744:
-1657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     temp  = AESBCMEMBER(SubWord)(u.columns[3]);
- 15195              		.loc 2 1657 0
- 15196 d99f 8985B4FA 		movl	%eax, -1356(%rbp)
- 15196      FFFF
-1659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     u.columns [0] = u.columns [1] = u.columns [2] = u.columns [3] = temp;
- 15197              		.loc 2 1659 0
- 15198 d9a5 8B85B4FA 		movl	-1356(%rbp), %eax
- 15198      FFFF
- 15199 d9ab 8985DCDB 		movl	%eax, -9252(%rbp)
- 15199      FFFF
- 15200 d9b1 8B85DCDB 		movl	-9252(%rbp), %eax
- 15200      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 464
-
-
- 15201 d9b7 8985D8DB 		movl	%eax, -9256(%rbp)
- 15201      FFFF
- 15202 d9bd 8B85D8DB 		movl	-9256(%rbp), %eax
- 15202      FFFF
- 15203 d9c3 8985D4DB 		movl	%eax, -9260(%rbp)
- 15203      FFFF
- 15204 d9c9 8B85D4DB 		movl	-9260(%rbp), %eax
- 15204      FFFF
- 15205 d9cf 8985D0DB 		movl	%eax, -9264(%rbp)
- 15205      FFFF
-1660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return u.state;
- 15206              		.loc 2 1660 0
- 15207 d9d5 F30F6F85 		movdqu	-9264(%rbp), %xmm0
- 15207      D0DBFFFF 
- 15208              	.LBE3743:
- 15209              	.LBE3742:
-1937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_2(13);        /* k52 : k53 : k54 : k55 */
- 15210              		.loc 2 1937 0
- 15211 d9dd F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 15211      40DCFFFF 
- 15212 d9e5 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 15212      30DCFFFF 
- 15213 d9ed F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 15213      C0FAFFFF 
- 15214              	.LBB3746:
- 15215              	.LBB3747:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 15216              		.loc 2 1565 0
- 15217 d9f5 F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 15217      C0FAFFFF 
- 15218 d9fd 660F7F85 		movdqa	%xmm0, -9904(%rbp)
- 15218      50D9FFFF 
- 15219 da05 660F6F85 		movdqa	-9904(%rbp), %xmm0
- 15219      50D9FFFF 
- 15220 da0d F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 15220      D0FAFFFF 
- 15221              	.LBB3748:
- 15222              	.LBB3749:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15223              		.loc 2 1278 0
- 15224 da15 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15224      00000000 
- 15225 da1d F30F6F8D 		movdqu	-1328(%rbp), %xmm1
- 15225      D0FAFFFF 
- 15226 da25 F30F7F8D 		movdqu	%xmm1, -1296(%rbp)
- 15226      F0FAFFFF 
- 15227 da2d F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 15227      E0FAFFFF 
- 15228 da35 F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 15228      F0FAFFFF 
- 15229 da3d F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 15229      10FBFFFF 
- 15230 da45 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 15230      E0FAFFFF 
- 15231 da4d F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 15231      00FBFFFF 
- 15232              	.LBB3750:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 465
-
-
- 15233              	.LBB3751:
- 15234              	.LBB3752:
- 15235              	.LBB3753:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15236              		.loc 3 529 0
- 15237 da55 F30F6F8D 		movdqu	-1280(%rbp), %xmm1
- 15237      00FBFFFF 
- 15238 da5d F30F6F85 		movdqu	-1264(%rbp), %xmm0
- 15238      10FBFFFF 
- 15239 da65 660F3800 		pshufb	%xmm1, %xmm0
- 15239      C1
- 15240              	.LBE3753:
- 15241              	.LBE3752:
- 15242              	.LBE3751:
- 15243              	.LBE3750:
- 15244              	.LBE3749:
- 15245              	.LBE3748:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15246              		.loc 2 1567 0
- 15247 da6a 660F7F85 		movdqa	%xmm0, -9904(%rbp)
- 15247      50D9FFFF 
- 15248 da72 660F6F85 		movdqa	-9904(%rbp), %xmm0
- 15248      50D9FFFF 
- 15249 da7a 660FEF85 		pxor	-1344(%rbp), %xmm0
- 15249      C0FAFFFF 
- 15250 da82 F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 15250      C0FAFFFF 
- 15251 da8a 660F6F85 		movdqa	-9904(%rbp), %xmm0
- 15251      50D9FFFF 
- 15252 da92 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 15252      20FBFFFF 
- 15253              	.LBB3754:
- 15254              	.LBB3755:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15255              		.loc 2 1278 0
- 15256 da9a 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15256      00000000 
- 15257 daa2 F30F6F8D 		movdqu	-1248(%rbp), %xmm1
- 15257      20FBFFFF 
- 15258 daaa F30F7F8D 		movdqu	%xmm1, -1216(%rbp)
- 15258      40FBFFFF 
- 15259 dab2 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 15259      30FBFFFF 
- 15260 daba F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 15260      40FBFFFF 
- 15261 dac2 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 15261      60FBFFFF 
- 15262 daca F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 15262      30FBFFFF 
- 15263 dad2 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 15263      50FBFFFF 
- 15264              	.LBB3756:
- 15265              	.LBB3757:
- 15266              	.LBB3758:
- 15267              	.LBB3759:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15268              		.loc 3 529 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 466
-
-
- 15269 dada F30F6F8D 		movdqu	-1200(%rbp), %xmm1
- 15269      50FBFFFF 
- 15270 dae2 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 15270      60FBFFFF 
- 15271 daea 660F3800 		pshufb	%xmm1, %xmm0
- 15271      C1
- 15272              	.LBE3759:
- 15273              	.LBE3758:
- 15274              	.LBE3757:
- 15275              	.LBE3756:
- 15276              	.LBE3755:
- 15277              	.LBE3754:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15278              		.loc 2 1568 0
- 15279 daef 660F7F85 		movdqa	%xmm0, -9904(%rbp)
- 15279      50D9FFFF 
- 15280 daf7 660F6F85 		movdqa	-9904(%rbp), %xmm0
- 15280      50D9FFFF 
- 15281 daff 660FEF85 		pxor	-1344(%rbp), %xmm0
- 15281      C0FAFFFF 
- 15282 db07 F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 15282      C0FAFFFF 
- 15283 db0f 660F6F85 		movdqa	-9904(%rbp), %xmm0
- 15283      50D9FFFF 
- 15284 db17 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 15284      70FBFFFF 
- 15285              	.LBB3760:
- 15286              	.LBB3761:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15287              		.loc 2 1278 0
- 15288 db1f 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15288      00000000 
- 15289 db27 F30F6F8D 		movdqu	-1168(%rbp), %xmm1
- 15289      70FBFFFF 
- 15290 db2f F30F7F8D 		movdqu	%xmm1, -1136(%rbp)
- 15290      90FBFFFF 
- 15291 db37 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 15291      80FBFFFF 
- 15292 db3f F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 15292      90FBFFFF 
- 15293 db47 F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 15293      B0FBFFFF 
- 15294 db4f F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 15294      80FBFFFF 
- 15295 db57 F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 15295      A0FBFFFF 
- 15296              	.LBB3762:
- 15297              	.LBB3763:
- 15298              	.LBB3764:
- 15299              	.LBB3765:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15300              		.loc 3 529 0
- 15301 db5f F30F6F8D 		movdqu	-1120(%rbp), %xmm1
- 15301      A0FBFFFF 
- 15302 db67 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 15302      B0FBFFFF 
- 15303 db6f 660F3800 		pshufb	%xmm1, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 467
-
-
- 15303      C1
- 15304              	.LBE3765:
- 15305              	.LBE3764:
- 15306              	.LBE3763:
- 15307              	.LBE3762:
- 15308              	.LBE3761:
- 15309              	.LBE3760:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15310              		.loc 2 1569 0
- 15311 db74 660F7F85 		movdqa	%xmm0, -9904(%rbp)
- 15311      50D9FFFF 
- 15312 db7c 660F6F85 		movdqa	-9904(%rbp), %xmm0
- 15312      50D9FFFF 
- 15313 db84 660FEF85 		pxor	-1344(%rbp), %xmm0
- 15313      C0FAFFFF 
- 15314 db8c F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 15314      C0FAFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15315              		.loc 2 1571 0
- 15316 db94 F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 15316      C0FAFFFF 
- 15317              	.LBE3747:
- 15318              	.LBE3746:
- 15319              		.loc 2 1937 0
- 15320 db9c F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 15320      30DCFFFF 
- 15321 dba4 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 15321      30DCFFFF 
- 15322 dbac F30F7F85 		movdqu	%xmm0, -1072(%rbp)
- 15322      D0FBFFFF 
- 15323 dbb4 F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 15323      40DCFFFF 
- 15324 dbbc F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 15324      C0FBFFFF 
- 15325              	.LBB3766:
- 15326              	.LBB3767:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 15327              		.loc 2 178 0
- 15328 dbc4 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 15328      C0FBFFFF 
- 15329 dbcc F30F6F8D 		movdqu	-1072(%rbp), %xmm1
- 15329      D0FBFFFF 
- 15330 dbd4 660FEFC1 		pxor	%xmm1, %xmm0
- 15331              	.LBE3767:
- 15332              	.LBE3766:
- 15333              		.loc 2 1937 0
- 15334 dbd8 F30F7F85 		movdqu	%xmm0, -9168(%rbp)
- 15334      30DCFFFF 
- 15335 dbe0 488B8598 		movq	-9832(%rbp), %rax
- 15335      D9FFFF
- 15336 dbe7 4805D000 		addq	$208, %rax
- 15336      0000
- 15337 dbed F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 15337      30DCFFFF 
- 15338 dbf5 F30F7F00 		movdqu	%xmm0, (%rax)
- 15339 dbf9 F30F6F85 		movdqu	-9168(%rbp), %xmm0
- 15339      30DCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 468
-
-
- 15340 dc01 F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 15340      F0FBFFFF 
- 15341              	.LBB3768:
- 15342              	.LBB3769:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 15343              		.loc 2 1681 0
- 15344 dc09 B8400000 		movl	$64, %eax
- 15344      00
- 15345 dc0e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 15345      00000000 
- 15346 dc16 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 15346      10FCFFFF 
- 15347 dc1e 89850CFC 		movl	%eax, -1012(%rbp)
- 15347      FFFF
- 15348 dc24 F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 15348      10FCFFFF 
- 15349 dc2c F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 15349      30FCFFFF 
- 15350 dc34 8B850CFC 		movl	-1012(%rbp), %eax
- 15350      FFFF
- 15351 dc3a 89852CFC 		movl	%eax, -980(%rbp)
- 15351      FFFF
- 15352              	.LBB3770:
- 15353              	.LBB3771:
- 15354              	.LBB3772:
- 15355              	.LBB3773:
- 15356              		.loc 3 598 0
- 15357 dc40 8B852CFC 		movl	-980(%rbp), %eax
- 15357      FFFF
- 15358 dc46 F30F6F85 		movdqu	-976(%rbp), %xmm0
- 15358      30FCFFFF 
- 15359 dc4e 660F3A22 		pinsrd	$3, %eax, %xmm0
- 15359      C003
- 15360              	.LBE3773:
- 15361              	.LBE3772:
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_PINSRUD (state, column, which);
- 15362              		.loc 2 519 0
- 15363 dc54 F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 15363      10FCFFFF 
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15364              		.loc 2 526 0
- 15365 dc5c F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 15365      10FCFFFF 
- 15366              	.LBE3771:
- 15367              	.LBE3770:
-1681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vrcon = AESBCMEMBER(SetColumn) (vec_00, (AESWord)rcon, 3);
- 15368              		.loc 2 1681 0
- 15369 dc64 660F7F85 		movdqa	%xmm0, -9872(%rbp)
- 15369      70D9FFFF 
- 15370 dc6c F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 15370      F0FBFFFF 
- 15371 dc74 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 15371      40FCFFFF 
- 15372 dc7c F30F6F85 		movdqu	-960(%rbp), %xmm0
- 15372      40FCFFFF 
- 15373 dc84 F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 15373      60FCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 469
-
-
- 15374 dc8c 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 15374      000000
- 15375 dc93 48898558 		movq	%rax, -936(%rbp)
- 15375      FCFFFF
- 15376              	.LBB3774:
- 15377              	.LBB3775:
- 15378              	.LBB3776:
- 15379              	.LBB3777:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 15380              		.loc 2 851 0
- 15381 dc9a 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 15381      00000000 
- 15382 dca2 F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 15382      80FCFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 15383              		.loc 2 854 0
- 15384 dcaa 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 15384      00000000 
- 15385 dcb2 F30F6F8D 		movdqu	-928(%rbp), %xmm1
- 15385      60FCFFFF 
- 15386 dcba F30F7F8D 		movdqu	%xmm1, -816(%rbp)
- 15386      D0FCFFFF 
- 15387 dcc2 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 15387      C0FCFFFF 
- 15388              	.LBB3778:
- 15389              	.LBB3779:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 15390              		.loc 2 206 0
- 15391 dcca F30F6F85 		movdqu	-832(%rbp), %xmm0
- 15391      C0FCFFFF 
- 15392 dcd2 F30F6F8D 		movdqu	-816(%rbp), %xmm1
- 15392      D0FCFFFF 
- 15393 dcda 660FDBC1 		pand	%xmm1, %xmm0
- 15394              	.LBE3779:
- 15395              	.LBE3778:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 15396              		.loc 2 854 0
- 15397 dcde F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 15397      B0FCFFFF 
- 15398 dce6 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 15398      60FCFFFF 
- 15399 dcee F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 15399      F0FCFFFF 
- 15400              	.LBB3780:
- 15401              	.LBB3781:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 15402              		.loc 3 433 0
- 15403 dcf6 F30F6F85 		movdqu	-784(%rbp), %xmm0
- 15403      F0FCFFFF 
- 15404 dcfe 660F72D0 		psrld	$4, %xmm0
- 15404      04
- 15405              	.LBE3781:
- 15406              	.LBE3780:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 15407              		.loc 2 857 0
- 15408 dd03 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 15408      A0FCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 470
-
-
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 15409              		.loc 2 859 0
- 15410 dd0b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 15410      00000000 
- 15411 dd13 F30F6F8D 		movdqu	-864(%rbp), %xmm1
- 15411      A0FCFFFF 
- 15412 dd1b F30F7F8D 		movdqu	%xmm1, -752(%rbp)
- 15412      10FDFFFF 
- 15413 dd23 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 15413      00FDFFFF 
- 15414              	.LBB3782:
- 15415              	.LBB3783:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 15416              		.loc 2 206 0
- 15417 dd2b F30F6F85 		movdqu	-768(%rbp), %xmm0
- 15417      00FDFFFF 
- 15418 dd33 F30F6F8D 		movdqu	-752(%rbp), %xmm1
- 15418      10FDFFFF 
- 15419 dd3b 660FDBC1 		pand	%xmm1, %xmm0
- 15420              	.LBE3783:
- 15421              	.LBE3782:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 15422              		.loc 2 859 0
- 15423 dd3f F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 15423      A0FCFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 15424              		.loc 2 866 0
- 15425 dd47 C7857CFC 		movl	$0, -900(%rbp)
- 15425      FFFF0000 
- 15425      0000
- 15426 dd51 E9BE0100 		jmp	.L228
- 15426      00
- 15427              	.L229:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 15428              		.loc 2 868 0
- 15429 dd56 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 15429      00000000 
- 15430 dd5e F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 15430      30FDFFFF 
- 15431 dd66 F30F6F85 		movdqu	-864(%rbp), %xmm0
- 15431      A0FCFFFF 
- 15432 dd6e F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 15432      20FDFFFF 
- 15433 dd76 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 15433      30FDFFFF 
- 15434 dd7e F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 15434      50FDFFFF 
- 15435 dd86 F30F6F85 		movdqu	-736(%rbp), %xmm0
- 15435      20FDFFFF 
- 15436 dd8e F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 15436      40FDFFFF 
- 15437              	.LBB3784:
- 15438              	.LBB3785:
- 15439              	.LBB3786:
- 15440              	.LBB3787:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15441              		.loc 3 529 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 471
-
-
- 15442 dd96 F30F6F8D 		movdqu	-704(%rbp), %xmm1
- 15442      40FDFFFF 
- 15443 dd9e F30F6F85 		movdqu	-688(%rbp), %xmm0
- 15443      50FDFFFF 
- 15444 dda6 660F3800 		pshufb	%xmm1, %xmm0
- 15444      C1
- 15445              	.LBE3787:
- 15446              	.LBE3786:
- 15447              	.LBE3785:
- 15448              	.LBE3784:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 15449              		.loc 2 868 0
- 15450 ddab F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 15450      90FCFFFF 
- 15451 ddb3 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 15451      B0FCFFFF 
- 15452 ddbb F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 15452      70FDFFFF 
- 15453 ddc3 F30F6F85 		movdqu	-880(%rbp), %xmm0
- 15453      90FCFFFF 
- 15454 ddcb F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 15454      60FDFFFF 
- 15455              	.LBB3788:
- 15456              	.LBB3789:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 15457              		.loc 2 234 0
- 15458 ddd3 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 15458      60FDFFFF 
- 15459 dddb F30F6F8D 		movdqu	-656(%rbp), %xmm1
- 15459      70FDFFFF 
- 15460 dde3 660FEBC1 		por	%xmm1, %xmm0
- 15461              	.LBE3789:
- 15462              	.LBE3788:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 15463              		.loc 2 870 0
- 15464 dde7 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 15464      90FCFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 15465              		.loc 2 872 0
- 15466 ddef 8B857CFC 		mov	-900(%rbp), %eax
- 15466      FFFF
- 15467 ddf5 48C1E004 		salq	$4, %rax
- 15468 ddf9 48038558 		addq	-936(%rbp), %rax
- 15468      FCFFFF
- 15469 de00 660F6F00 		movdqa	(%rax), %xmm0
- 15470 de04 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 15470      90FDFFFF 
- 15471 de0c F30F6F85 		movdqu	-880(%rbp), %xmm0
- 15471      90FCFFFF 
- 15472 de14 F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 15472      80FDFFFF 
- 15473 de1c F30F6F85 		movdqu	-624(%rbp), %xmm0
- 15473      90FDFFFF 
- 15474 de24 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 15474      B0FDFFFF 
- 15475 de2c F30F6F85 		movdqu	-640(%rbp), %xmm0
- 15475      80FDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 472
-
-
- 15476 de34 F30F7F85 		movdqu	%xmm0, -608(%rbp)
- 15476      A0FDFFFF 
- 15477              	.LBB3790:
- 15478              	.LBB3791:
- 15479              	.LBB3792:
- 15480              	.LBB3793:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15481              		.loc 3 529 0
- 15482 de3c F30F6F8D 		movdqu	-608(%rbp), %xmm1
- 15482      A0FDFFFF 
- 15483 de44 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 15483      B0FDFFFF 
- 15484 de4c 660F3800 		pshufb	%xmm1, %xmm0
- 15484      C1
- 15485              	.LBE3793:
- 15486              	.LBE3792:
- 15487              	.LBE3791:
- 15488              	.LBE3790:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 15489              		.loc 2 872 0
- 15490 de51 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 15490      90FCFFFF 
- 15491 de59 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 15491      80FCFFFF 
- 15492 de61 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 15492      D0FDFFFF 
- 15493 de69 F30F6F85 		movdqu	-880(%rbp), %xmm0
- 15493      90FCFFFF 
- 15494 de71 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 15494      C0FDFFFF 
- 15495              	.LBB3794:
- 15496              	.LBB3795:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 15497              		.loc 2 234 0
- 15498 de79 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 15498      C0FDFFFF 
- 15499 de81 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 15499      D0FDFFFF 
- 15500 de89 660FEBC1 		por	%xmm1, %xmm0
- 15501              	.LBE3795:
- 15502              	.LBE3794:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 15503              		.loc 2 874 0
- 15504 de8d F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 15504      80FCFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 15505              		.loc 2 876 0
- 15506 de95 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 15506      00000000 
- 15507 de9d F30F6F8D 		movdqu	-864(%rbp), %xmm1
- 15507      A0FCFFFF 
- 15508 dea5 F30F7F8D 		movdqu	%xmm1, -528(%rbp)
- 15508      F0FDFFFF 
- 15509 dead F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 15509      E0FDFFFF 
- 15510              	.LBB3796:
- 15511              	.LBB3797:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 473
-
-
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 15512              		.loc 2 290 0
- 15513 deb5 F30F6F8D 		movdqu	-544(%rbp), %xmm1
- 15513      E0FDFFFF 
- 15514 debd F30F6F85 		movdqu	-528(%rbp), %xmm0
- 15514      F0FDFFFF 
- 15515 dec5 660FF8C1 		psubb	%xmm1, %xmm0
- 15516              	.LBE3797:
- 15517              	.LBE3796:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 15518              		.loc 2 876 0
- 15519 dec9 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 15519      A0FCFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 15520              		.loc 2 878 0
- 15521 ded1 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 15521      00000000 
- 15522 ded9 F30F6F8D 		movdqu	-864(%rbp), %xmm1
- 15522      A0FCFFFF 
- 15523 dee1 F30F7F8D 		movdqu	%xmm1, -496(%rbp)
- 15523      10FEFFFF 
- 15524 dee9 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 15524      00FEFFFF 
- 15525              	.LBB3798:
- 15526              	.LBB3799:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 15527              		.loc 2 206 0
- 15528 def1 F30F6F85 		movdqu	-512(%rbp), %xmm0
- 15528      00FEFFFF 
- 15529 def9 F30F6F8D 		movdqu	-496(%rbp), %xmm1
- 15529      10FEFFFF 
- 15530 df01 660FDBC1 		pand	%xmm1, %xmm0
- 15531              	.LBE3799:
- 15532              	.LBE3798:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 15533              		.loc 2 878 0
- 15534 df05 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 15534      A0FCFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 15535              		.loc 2 866 0
- 15536 df0d 83857CFC 		addl	$1, -900(%rbp)
- 15536      FFFF01
- 15537              	.L228:
- 15538 df14 83BD7CFC 		cmpl	$15, -900(%rbp)
- 15538      FFFF0F
- 15539 df1b 0F8635FE 		jbe	.L229
- 15539      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 15540              		.loc 2 882 0
- 15541 df21 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 15541      80FCFFFF 
- 15542              	.LBE3777:
- 15543              	.LBE3776:
- 15544              	.LBE3775:
- 15545              	.LBE3774:
-1682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(SubBytes) (state);
- 15546              		.loc 2 1682 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 474
-
-
- 15547 df29 660F7F85 		movdqa	%xmm0, -9888(%rbp)
- 15547      60D9FFFF 
- 15548              	.LBB3800:
-1683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("SubBytes", tmp);
- 15549              		.loc 2 1683 0
- 15550 df31 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15550      60D9FFFF 
- 15551 df39 F30F7F85 		movdqu	%xmm0, -9200(%rbp)
- 15551      10DCFFFF 
- 15552 df41 E8000000 		call	KDbgWriterGet at PLT
- 15552      00
- 15553 df46 4885C0   		testq	%rax, %rax
- 15554 df49 7479     		je	.L231
- 15555 df4b BF010000 		movl	$1, %edi
- 15555      00
- 15556 df50 E8000000 		call	KDbgCondToFlag at PLT
- 15556      00
- 15557 df55 4889C6   		movq	%rax, %rsi
- 15558 df58 BF100000 		movl	$16, %edi
- 15558      00
- 15559 df5d E8000000 		call	KDbgTestModConds at PLT
- 15559      00
- 15560 df62 84C0     		testb	%al, %al
- 15561 df64 745E     		je	.L231
- 15562 df66 8B851CDC 		movl	-9188(%rbp), %eax
- 15562      FFFF
- 15563 df6c 89C7     		movl	%eax, %edi
- 15564 df6e E88D20FF 		call	bswap_32
- 15564      FF
- 15565 df73 4189C5   		movl	%eax, %r13d
- 15566 df76 8B8518DC 		movl	-9192(%rbp), %eax
- 15566      FFFF
- 15567 df7c 89C7     		movl	%eax, %edi
- 15568 df7e E87D20FF 		call	bswap_32
- 15568      FF
- 15569 df83 4189C4   		movl	%eax, %r12d
- 15570 df86 8B8514DC 		movl	-9196(%rbp), %eax
- 15570      FFFF
- 15571 df8c 89C7     		movl	%eax, %edi
- 15572 df8e E86D20FF 		call	bswap_32
- 15572      FF
- 15573 df93 89C3     		movl	%eax, %ebx
- 15574 df95 8B8510DC 		movl	-9200(%rbp), %eax
- 15574      FFFF
- 15575 df9b 89C7     		movl	%eax, %edi
- 15576 df9d E85E20FF 		call	bswap_32
- 15576      FF
- 15577 dfa2 4589E9   		movl	%r13d, %r9d
- 15578 dfa5 4589E0   		movl	%r12d, %r8d
- 15579 dfa8 89D9     		movl	%ebx, %ecx
- 15580 dfaa 89C2     		movl	%eax, %edx
- 15581 dfac 488D3500 		leaq	.LC0(%rip), %rsi
- 15581      000000
- 15582 dfb3 488D3D00 		leaq	.LC1(%rip), %rdi
- 15582      000000
- 15583 dfba B8000000 		movl	$0, %eax
- 15583      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 475
-
-
- 15584 dfbf E8000000 		call	KDbgMsg at PLT
- 15584      00
- 15585              	.L231:
- 15586 dfc4 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15586      60D9FFFF 
- 15587 dfcc F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 15587      20FEFFFF 
- 15588              	.LBE3800:
- 15589              	.LBB3801:
- 15590              	.LBB3802:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 15591              		.loc 2 667 0
- 15592 dfd4 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 15592      00000000 
- 15593 dfdc F30F6F8D 		movdqu	-480(%rbp), %xmm1
- 15593      20FEFFFF 
- 15594 dfe4 F30F7F8D 		movdqu	%xmm1, -448(%rbp)
- 15594      40FEFFFF 
- 15595 dfec F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 15595      30FEFFFF 
- 15596 dff4 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 15596      40FEFFFF 
- 15597 dffc F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 15597      60FEFFFF 
- 15598 e004 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 15598      30FEFFFF 
- 15599 e00c F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 15599      50FEFFFF 
- 15600              	.LBB3803:
- 15601              	.LBB3804:
- 15602              	.LBB3805:
- 15603              	.LBB3806:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15604              		.loc 3 529 0
- 15605 e014 F30F6F8D 		movdqu	-432(%rbp), %xmm1
- 15605      50FEFFFF 
- 15606 e01c F30F6F85 		movdqu	-416(%rbp), %xmm0
- 15606      60FEFFFF 
- 15607 e024 660F3800 		pshufb	%xmm1, %xmm0
- 15607      C1
- 15608              	.LBE3806:
- 15609              	.LBE3805:
- 15610              	.LBE3804:
- 15611              	.LBE3803:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 15612              		.loc 2 667 0
- 15613 e029 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 15613      20FEFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15614              		.loc 2 668 0
- 15615 e031 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 15615      20FEFFFF 
- 15616              	.LBE3802:
- 15617              	.LBE3801:
-1684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(RotBytesLeft) (tmp);
- 15618              		.loc 2 1684 0
- 15619 e039 660F7F85 		movdqa	%xmm0, -9888(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 476
-
-
- 15619      60D9FFFF 
- 15620              	.LBB3807:
-1685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("RotBytesLeft", tmp);
- 15621              		.loc 2 1685 0
- 15622 e041 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15622      60D9FFFF 
- 15623 e049 F30F7F85 		movdqu	%xmm0, -9216(%rbp)
- 15623      00DCFFFF 
- 15624 e051 E8000000 		call	KDbgWriterGet at PLT
- 15624      00
- 15625 e056 4885C0   		testq	%rax, %rax
- 15626 e059 7479     		je	.L233
- 15627 e05b BF010000 		movl	$1, %edi
- 15627      00
- 15628 e060 E8000000 		call	KDbgCondToFlag at PLT
- 15628      00
- 15629 e065 4889C6   		movq	%rax, %rsi
- 15630 e068 BF100000 		movl	$16, %edi
- 15630      00
- 15631 e06d E8000000 		call	KDbgTestModConds at PLT
- 15631      00
- 15632 e072 84C0     		testb	%al, %al
- 15633 e074 745E     		je	.L233
- 15634 e076 8B850CDC 		movl	-9204(%rbp), %eax
- 15634      FFFF
- 15635 e07c 89C7     		movl	%eax, %edi
- 15636 e07e E87D1FFF 		call	bswap_32
- 15636      FF
- 15637 e083 4189C5   		movl	%eax, %r13d
- 15638 e086 8B8508DC 		movl	-9208(%rbp), %eax
- 15638      FFFF
- 15639 e08c 89C7     		movl	%eax, %edi
- 15640 e08e E86D1FFF 		call	bswap_32
- 15640      FF
- 15641 e093 4189C4   		movl	%eax, %r12d
- 15642 e096 8B8504DC 		movl	-9212(%rbp), %eax
- 15642      FFFF
- 15643 e09c 89C7     		movl	%eax, %edi
- 15644 e09e E85D1FFF 		call	bswap_32
- 15644      FF
- 15645 e0a3 89C3     		movl	%eax, %ebx
- 15646 e0a5 8B8500DC 		movl	-9216(%rbp), %eax
- 15646      FFFF
- 15647 e0ab 89C7     		movl	%eax, %edi
- 15648 e0ad E84E1FFF 		call	bswap_32
- 15648      FF
- 15649 e0b2 4589E9   		movl	%r13d, %r9d
- 15650 e0b5 4589E0   		movl	%r12d, %r8d
- 15651 e0b8 89D9     		movl	%ebx, %ecx
- 15652 e0ba 89C2     		movl	%eax, %edx
- 15653 e0bc 488D3500 		leaq	.LC2(%rip), %rsi
- 15653      000000
- 15654 e0c3 488D3D00 		leaq	.LC1(%rip), %rdi
- 15654      000000
- 15655 e0ca B8000000 		movl	$0, %eax
- 15655      00
- 15656 e0cf E8000000 		call	KDbgMsg at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 477
-
-
- 15656      00
- 15657              	.L233:
- 15658 e0d4 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15658      60D9FFFF 
- 15659 e0dc F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 15659      80FEFFFF 
- 15660 e0e4 660F6F85 		movdqa	-9872(%rbp), %xmm0
- 15660      70D9FFFF 
- 15661 e0ec F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 15661      70FEFFFF 
- 15662              	.LBE3807:
- 15663              	.LBB3808:
- 15664              	.LBB3809:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 15665              		.loc 2 178 0
- 15666 e0f4 F30F6F85 		movdqu	-400(%rbp), %xmm0
- 15666      70FEFFFF 
- 15667 e0fc F30F6F8D 		movdqu	-384(%rbp), %xmm1
- 15667      80FEFFFF 
- 15668 e104 660FEFC1 		pxor	%xmm1, %xmm0
- 15669              	.LBE3809:
- 15670              	.LBE3808:
-1686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(VecXor)(tmp, vrcon);
- 15671              		.loc 2 1686 0
- 15672 e108 660F7F85 		movdqa	%xmm0, -9888(%rbp)
- 15672      60D9FFFF 
- 15673              	.LBB3810:
-1687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("VecXor", tmp);
- 15674              		.loc 2 1687 0
- 15675 e110 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15675      60D9FFFF 
- 15676 e118 F30F7F85 		movdqu	%xmm0, -9232(%rbp)
- 15676      F0DBFFFF 
- 15677 e120 E8000000 		call	KDbgWriterGet at PLT
- 15677      00
- 15678 e125 4885C0   		testq	%rax, %rax
- 15679 e128 7479     		je	.L235
- 15680 e12a BF010000 		movl	$1, %edi
- 15680      00
- 15681 e12f E8000000 		call	KDbgCondToFlag at PLT
- 15681      00
- 15682 e134 4889C6   		movq	%rax, %rsi
- 15683 e137 BF100000 		movl	$16, %edi
- 15683      00
- 15684 e13c E8000000 		call	KDbgTestModConds at PLT
- 15684      00
- 15685 e141 84C0     		testb	%al, %al
- 15686 e143 745E     		je	.L235
- 15687 e145 8B85FCDB 		movl	-9220(%rbp), %eax
- 15687      FFFF
- 15688 e14b 89C7     		movl	%eax, %edi
- 15689 e14d E8AE1EFF 		call	bswap_32
- 15689      FF
- 15690 e152 4189C5   		movl	%eax, %r13d
- 15691 e155 8B85F8DB 		movl	-9224(%rbp), %eax
- 15691      FFFF
- 15692 e15b 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 478
-
-
- 15693 e15d E89E1EFF 		call	bswap_32
- 15693      FF
- 15694 e162 4189C4   		movl	%eax, %r12d
- 15695 e165 8B85F4DB 		movl	-9228(%rbp), %eax
- 15695      FFFF
- 15696 e16b 89C7     		movl	%eax, %edi
- 15697 e16d E88E1EFF 		call	bswap_32
- 15697      FF
- 15698 e172 89C3     		movl	%eax, %ebx
- 15699 e174 8B85F0DB 		movl	-9232(%rbp), %eax
- 15699      FFFF
- 15700 e17a 89C7     		movl	%eax, %edi
- 15701 e17c E87F1EFF 		call	bswap_32
- 15701      FF
- 15702 e181 4589E9   		movl	%r13d, %r9d
- 15703 e184 4589E0   		movl	%r12d, %r8d
- 15704 e187 89D9     		movl	%ebx, %ecx
- 15705 e189 89C2     		movl	%eax, %edx
- 15706 e18b 488D3500 		leaq	.LC3(%rip), %rsi
- 15706      000000
- 15707 e192 488D3D00 		leaq	.LC1(%rip), %rdi
- 15707      000000
- 15708 e199 B8000000 		movl	$0, %eax
- 15708      00
- 15709 e19e E8000000 		call	KDbgMsg at PLT
- 15709      00
- 15710              	.L235:
- 15711 e1a3 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15711      60D9FFFF 
- 15712 e1ab F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 15712      90FEFFFF 
- 15713 e1b3 F30F6F85 		movdqu	-368(%rbp), %xmm0
- 15713      90FEFFFF 
- 15714 e1bb F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 15714      B0FEFFFF 
- 15715              	.LBE3810:
- 15716              	.LBB3811:
- 15717              	.LBB3812:
- 15718              	.LBB3813:
- 15719              	.LBB3814:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufd ((v128_i32_t)vin, mask);
- 15720              		.loc 3 450 0
- 15721 e1c3 F30F6F85 		movdqu	-336(%rbp), %xmm0
- 15721      B0FEFFFF 
- 15722 e1cb 660F70C0 		pshufd	$255, %xmm0, %xmm0
- 15722      FF
- 15723              	.LBE3814:
- 15724              	.LBE3813:
- 15725              	.LBE3812:
- 15726              	.LBE3811:
-1688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     tmp = AESBCMEMBER(StateDupColumn3) (tmp);
- 15727              		.loc 2 1688 0
- 15728 e1d0 660F7F85 		movdqa	%xmm0, -9888(%rbp)
- 15728      60D9FFFF 
- 15729              	.LBB3815:
-1689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("StateDupColumn3", tmp);
- 15730              		.loc 2 1689 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 479
-
-
- 15731 e1d8 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15731      60D9FFFF 
- 15732 e1e0 F30F7F85 		movdqu	%xmm0, -9248(%rbp)
- 15732      E0DBFFFF 
- 15733 e1e8 E8000000 		call	KDbgWriterGet at PLT
- 15733      00
- 15734 e1ed 4885C0   		testq	%rax, %rax
- 15735 e1f0 7479     		je	.L237
- 15736 e1f2 BF010000 		movl	$1, %edi
- 15736      00
- 15737 e1f7 E8000000 		call	KDbgCondToFlag at PLT
- 15737      00
- 15738 e1fc 4889C6   		movq	%rax, %rsi
- 15739 e1ff BF100000 		movl	$16, %edi
- 15739      00
- 15740 e204 E8000000 		call	KDbgTestModConds at PLT
- 15740      00
- 15741 e209 84C0     		testb	%al, %al
- 15742 e20b 745E     		je	.L237
- 15743 e20d 8B85ECDB 		movl	-9236(%rbp), %eax
- 15743      FFFF
- 15744 e213 89C7     		movl	%eax, %edi
- 15745 e215 E8E61DFF 		call	bswap_32
- 15745      FF
- 15746 e21a 4189C5   		movl	%eax, %r13d
- 15747 e21d 8B85E8DB 		movl	-9240(%rbp), %eax
- 15747      FFFF
- 15748 e223 89C7     		movl	%eax, %edi
- 15749 e225 E8D61DFF 		call	bswap_32
- 15749      FF
- 15750 e22a 4189C4   		movl	%eax, %r12d
- 15751 e22d 8B85E4DB 		movl	-9244(%rbp), %eax
- 15751      FFFF
- 15752 e233 89C7     		movl	%eax, %edi
- 15753 e235 E8C61DFF 		call	bswap_32
- 15753      FF
- 15754 e23a 89C3     		movl	%eax, %ebx
- 15755 e23c 8B85E0DB 		movl	-9248(%rbp), %eax
- 15755      FFFF
- 15756 e242 89C7     		movl	%eax, %edi
- 15757 e244 E8B71DFF 		call	bswap_32
- 15757      FF
- 15758 e249 4589E9   		movl	%r13d, %r9d
- 15759 e24c 4589E0   		movl	%r12d, %r8d
- 15760 e24f 89D9     		movl	%ebx, %ecx
- 15761 e251 89C2     		movl	%eax, %edx
- 15762 e253 488D3500 		leaq	.LC4(%rip), %rsi
- 15762      000000
- 15763 e25a 488D3D00 		leaq	.LC1(%rip), %rdi
- 15763      000000
- 15764 e261 B8000000 		movl	$0, %eax
- 15764      00
- 15765 e266 E8000000 		call	KDbgMsg at PLT
- 15765      00
- 15766              	.L237:
- 15767              	.LBE3815:
-1690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return tmp;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 480
-
-
- 15768              		.loc 2 1690 0
- 15769 e26b 660F6F85 		movdqa	-9888(%rbp), %xmm0
- 15769      60D9FFFF 
- 15770              	.LBE3769:
- 15771              	.LBE3768:
-1938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     KE256_1(14,0x40);   /* k56 : k57 : k58 : k59 */
- 15772              		.loc 2 1938 0
- 15773 e273 F30F7F85 		movdqu	%xmm0, -9152(%rbp)
- 15773      40DCFFFF 
- 15774 e27b F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 15774      20DCFFFF 
- 15775 e283 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 15775      C0FEFFFF 
- 15776              	.LBB3816:
- 15777              	.LBB3817:
-1565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     register CipherVec shift = state;
- 15778              		.loc 2 1565 0
- 15779 e28b F30F6F85 		movdqu	-320(%rbp), %xmm0
- 15779      C0FEFFFF 
- 15780 e293 660F7F85 		movdqa	%xmm0, -9856(%rbp)
- 15780      80D9FFFF 
- 15781 e29b 660F6F85 		movdqa	-9856(%rbp), %xmm0
- 15781      80D9FFFF 
- 15782 e2a3 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 15782      D0FEFFFF 
- 15783              	.LBB3818:
- 15784              	.LBB3819:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15785              		.loc 2 1278 0
- 15786 e2ab 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15786      00000000 
- 15787 e2b3 F30F6F8D 		movdqu	-304(%rbp), %xmm1
- 15787      D0FEFFFF 
- 15788 e2bb F30F7F8D 		movdqu	%xmm1, -272(%rbp)
- 15788      F0FEFFFF 
- 15789 e2c3 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 15789      E0FEFFFF 
- 15790 e2cb F30F6F85 		movdqu	-272(%rbp), %xmm0
- 15790      F0FEFFFF 
- 15791 e2d3 F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 15791      10FFFFFF 
- 15792 e2db F30F6F85 		movdqu	-288(%rbp), %xmm0
- 15792      E0FEFFFF 
- 15793 e2e3 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 15793      00FFFFFF 
- 15794              	.LBB3820:
- 15795              	.LBB3821:
- 15796              	.LBB3822:
- 15797              	.LBB3823:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15798              		.loc 3 529 0
- 15799 e2eb F30F6F8D 		movdqu	-256(%rbp), %xmm1
- 15799      00FFFFFF 
- 15800 e2f3 F30F6F85 		movdqu	-240(%rbp), %xmm0
- 15800      10FFFFFF 
- 15801 e2fb 660F3800 		pshufb	%xmm1, %xmm0
- 15801      C1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 481
-
-
- 15802              	.LBE3823:
- 15803              	.LBE3822:
- 15804              	.LBE3821:
- 15805              	.LBE3820:
- 15806              	.LBE3819:
- 15807              	.LBE3818:
-1567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15808              		.loc 2 1567 0
- 15809 e300 660F7F85 		movdqa	%xmm0, -9856(%rbp)
- 15809      80D9FFFF 
- 15810 e308 660F6F85 		movdqa	-9856(%rbp), %xmm0
- 15810      80D9FFFF 
- 15811 e310 660FEF85 		pxor	-320(%rbp), %xmm0
- 15811      C0FEFFFF 
- 15812 e318 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 15812      C0FEFFFF 
- 15813 e320 660F6F85 		movdqa	-9856(%rbp), %xmm0
- 15813      80D9FFFF 
- 15814 e328 F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 15814      20FFFFFF 
- 15815              	.LBB3824:
- 15816              	.LBB3825:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15817              		.loc 2 1278 0
- 15818 e330 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15818      00000000 
- 15819 e338 F30F6F8D 		movdqu	-224(%rbp), %xmm1
- 15819      20FFFFFF 
- 15820 e340 F30F7F8D 		movdqu	%xmm1, -192(%rbp)
- 15820      40FFFFFF 
- 15821 e348 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 15821      30FFFFFF 
- 15822 e350 F30F6F85 		movdqu	-192(%rbp), %xmm0
- 15822      40FFFFFF 
- 15823 e358 F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 15823      60FFFFFF 
- 15824 e360 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 15824      30FFFFFF 
- 15825 e368 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 15825      50FFFFFF 
- 15826              	.LBB3826:
- 15827              	.LBB3827:
- 15828              	.LBB3828:
- 15829              	.LBB3829:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15830              		.loc 3 529 0
- 15831 e370 F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 15831      50FFFFFF 
- 15832 e378 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 15832      60FFFFFF 
- 15833 e380 660F3800 		pshufb	%xmm1, %xmm0
- 15833      C1
- 15834              	.LBE3829:
- 15835              	.LBE3828:
- 15836              	.LBE3827:
- 15837              	.LBE3826:
- 15838              	.LBE3825:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 482
-
-
- 15839              	.LBE3824:
-1568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15840              		.loc 2 1568 0
- 15841 e385 660F7F85 		movdqa	%xmm0, -9856(%rbp)
- 15841      80D9FFFF 
- 15842 e38d 660F6F85 		movdqa	-9856(%rbp), %xmm0
- 15842      80D9FFFF 
- 15843 e395 660FEF85 		pxor	-320(%rbp), %xmm0
- 15843      C0FEFFFF 
- 15844 e39d F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 15844      C0FEFFFF 
- 15845 e3a5 660F6F85 		movdqa	-9856(%rbp), %xmm0
- 15845      80D9FFFF 
- 15846 e3ad F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 15846      70FFFFFF 
- 15847              	.LBB3830:
- 15848              	.LBB3831:
-1278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(PackShuffleBytes) (state, mask);
- 15849              		.loc 2 1278 0
- 15850 e3b5 660F6F05 		movdqa	mask.7943(%rip), %xmm0
- 15850      00000000 
- 15851 e3bd F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 15851      70FFFFFF 
- 15852 e3c5 F30F7F4D 		movdqu	%xmm1, -112(%rbp)
- 15852      90
- 15853 e3ca F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 15853      80
- 15854 e3cf F30F6F45 		movdqu	-112(%rbp), %xmm0
- 15854      90
- 15855 e3d4 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 15855      B0
- 15856 e3d9 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 15856      80
- 15857 e3de F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 15857      A0
- 15858              	.LBB3832:
- 15859              	.LBB3833:
- 15860              	.LBB3834:
- 15861              	.LBB3835:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15862              		.loc 3 529 0
- 15863 e3e3 F30F6F4D 		movdqu	-96(%rbp), %xmm1
- 15863      A0
- 15864 e3e8 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 15864      B0
- 15865 e3ed 660F3800 		pshufb	%xmm1, %xmm0
- 15865      C1
- 15866              	.LBE3835:
- 15867              	.LBE3834:
- 15868              	.LBE3833:
- 15869              	.LBE3832:
- 15870              	.LBE3831:
- 15871              	.LBE3830:
-1569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state ^= shift = AESBCMEMBER(StateShiftLeft32) (shift);
- 15872              		.loc 2 1569 0
- 15873 e3f2 660F7F85 		movdqa	%xmm0, -9856(%rbp)
- 15873      80D9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 483
-
-
- 15874 e3fa 660F6F85 		movdqa	-9856(%rbp), %xmm0
- 15874      80D9FFFF 
- 15875 e402 660FEF85 		pxor	-320(%rbp), %xmm0
- 15875      C0FEFFFF 
- 15876 e40a F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 15876      C0FEFFFF 
-1571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 15877              		.loc 2 1571 0
- 15878 e412 F30F6F85 		movdqu	-320(%rbp), %xmm0
- 15878      C0FEFFFF 
- 15879              	.LBE3817:
- 15880              	.LBE3816:
- 15881              		.loc 2 1938 0
- 15882 e41a F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 15882      20DCFFFF 
- 15883 e422 F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 15883      20DCFFFF 
- 15884 e42a F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 15884      D0
- 15885 e42f F30F6F85 		movdqu	-9152(%rbp), %xmm0
- 15885      40DCFFFF 
- 15886 e437 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 15886      C0
- 15887              	.LBB3836:
- 15888              	.LBB3837:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 15889              		.loc 2 178 0
- 15890 e43c F30F6F45 		movdqu	-64(%rbp), %xmm0
- 15890      C0
- 15891 e441 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 15891      D0
- 15892 e446 660FEFC1 		pxor	%xmm1, %xmm0
- 15893              	.LBE3837:
- 15894              	.LBE3836:
- 15895              		.loc 2 1938 0
- 15896 e44a F30F7F85 		movdqu	%xmm0, -9184(%rbp)
- 15896      20DCFFFF 
- 15897 e452 488B8598 		movq	-9832(%rbp), %rax
- 15897      D9FFFF
- 15898 e459 4805E000 		addq	$224, %rax
- 15898      0000
- 15899 e45f F30F6F85 		movdqu	-9184(%rbp), %xmm0
- 15899      20DCFFFF 
- 15900 e467 F30F7F00 		movdqu	%xmm0, (%rax)
-1939:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 15901              		.loc 2 1939 0
- 15902 e46b 4881C428 		addq	$10280, %rsp
- 15902      280000
- 15903 e472 5B       		popq	%rbx
- 15904 e473 415C     		popq	%r12
- 15905 e475 415D     		popq	%r13
- 15906 e477 C9       		leave
- 15907 e478 C3       		ret
- 15908              		.cfi_endproc
- 15909              	.LFE647:
- 15910              		.size	KAESBlockCipherVecRegKeyExpansion256, .-KAESBlockCipherVecRegKeyExpansion256
- 15911              		.section	.rodata
-
GAS LISTING /tmp/ccjbMjHD.s 			page 484
-
-
- 15912              	.LC5:
- 15913 03d2 73746174 		.string	"state"
- 15913      6500
- 15914              	.LC6:
- 15915 03d8 737200   		.string	"sr"
- 15916              	.LC7:
- 15917 03db 736C00   		.string	"sl"
- 15918              		.text
- 15919              		.type	KAESBlockCipherVecRegEqInvKeyExpansion, @function
- 15920              	KAESBlockCipherVecRegEqInvKeyExpansion:
- 15921              	.LFB648:
-1940:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-1941:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1942:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(KeyExpansion256) (CipherVec * w, const AESByte * key)
-1943:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1944:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeyExpansion) (w, key, AES_Nr_256, AES_Nk_256);
-1945:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-1946:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-1947:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1948:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1949:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1950:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion) (CipherVec * r, const CipherVec * dr, unsigned Nr)
-1951:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 15922              		.loc 2 1951 0
- 15923              		.cfi_startproc
- 15924 e479 55       		pushq	%rbp
- 15925              	.LCFI8:
- 15926              		.cfi_def_cfa_offset 16
- 15927 e47a 4889E5   		movq	%rsp, %rbp
- 15928              		.cfi_offset 6, -16
- 15929              	.LCFI9:
- 15930              		.cfi_def_cfa_register 6
- 15931 e47d 4156     		pushq	%r14
- 15932 e47f 4155     		pushq	%r13
- 15933 e481 4154     		pushq	%r12
- 15934 e483 53       		pushq	%rbx
- 15935 e484 4881EC80 		subq	$1920, %rsp
- 15935      070000
- 15936 e48b 4889BDE8 		movq	%rdi, -1816(%rbp)
- 15936      F8FFFF
- 15937 e492 4889B5E0 		movq	%rsi, -1824(%rbp)
- 15937      F8FFFF
- 15938 e499 8995DCF8 		movl	%edx, -1828(%rbp)
- 15938      FFFF
-1952:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix, jx;
-1953:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1954:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     jx = Nr;
- 15939              		.loc 2 1954 0
- 15940 e49f 8B85DCF8 		movl	-1828(%rbp), %eax
- 15940      FFFF
- 15941 e4a5 89858CF9 		movl	%eax, -1652(%rbp)
- 15941      FFFF
-1955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     ix = 0;
- 15942              		.loc 2 1955 0
- 15943 e4ab C78588F9 		movl	$0, -1656(%rbp)
- 15943      FFFF0000 
- 15943      0000
-
GAS LISTING /tmp/ccjbMjHD.s 			page 485
-
-
-1956:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix++] = dr[jx--];
- 15944              		.loc 2 1956 0
- 15945 e4b5 8B8588F9 		mov	-1656(%rbp), %eax
- 15945      FFFF
- 15946 e4bb 48C1E004 		salq	$4, %rax
- 15947 e4bf 480385E8 		addq	-1816(%rbp), %rax
- 15947      F8FFFF
- 15948 e4c6 8B958CF9 		mov	-1652(%rbp), %edx
- 15948      FFFF
- 15949 e4cc 48C1E204 		salq	$4, %rdx
- 15950 e4d0 480395E0 		addq	-1824(%rbp), %rdx
- 15950      F8FFFF
- 15951 e4d7 660F6F02 		movdqa	(%rdx), %xmm0
- 15952 e4db 660F7F00 		movdqa	%xmm0, (%rax)
- 15953 e4df 838588F9 		addl	$1, -1656(%rbp)
- 15953      FFFF01
- 15954 e4e6 83AD8CF9 		subl	$1, -1652(%rbp)
- 15954      FFFF01
-1957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     while (jx)
- 15955              		.loc 2 1957 0
- 15956 e4ed E9000F00 		jmp	.L240
- 15956      00
- 15957              		.cfi_offset 3, -48
- 15958              		.cfi_offset 12, -40
- 15959              		.cfi_offset 13, -32
- 15960              		.cfi_offset 14, -24
- 15961              	.L259:
-1958:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         r[ix++] = AESBCMEMBER(InvMixColumns)(dr[jx--]);
- 15962              		.loc 2 1958 0
- 15963 e4f2 8B8588F9 		mov	-1656(%rbp), %eax
- 15963      FFFF
- 15964 e4f8 48C1E004 		salq	$4, %rax
- 15965 e4fc 4889C3   		movq	%rax, %rbx
- 15966 e4ff 48039DE8 		addq	-1816(%rbp), %rbx
- 15966      F8FFFF
- 15967 e506 8B858CF9 		mov	-1652(%rbp), %eax
- 15967      FFFF
- 15968 e50c 48C1E004 		salq	$4, %rax
- 15969 e510 480385E0 		addq	-1824(%rbp), %rax
- 15969      F8FFFF
- 15970 e517 660F6F00 		movdqa	(%rax), %xmm0
- 15971 e51b 83AD8CF9 		subl	$1, -1652(%rbp)
- 15971      FFFF01
- 15972 e522 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 15972      90F9FFFF 
- 15973 e52a F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 15973      90F9FFFF 
- 15974 e532 F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 15974      A0F9FFFF 
- 15975              	.LBB3943:
- 15976              	.LBB3944:
- 15977              	.LBB3945:
- 15978              	.LBB3946:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 15979              		.loc 2 667 0
- 15980 e53a 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 15980      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 486
-
-
- 15981 e542 F30F6F8D 		movdqu	-1632(%rbp), %xmm1
- 15981      A0F9FFFF 
- 15982 e54a F30F7F8D 		movdqu	%xmm1, -1600(%rbp)
- 15982      C0F9FFFF 
- 15983 e552 F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 15983      B0F9FFFF 
- 15984 e55a F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 15984      C0F9FFFF 
- 15985 e562 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 15985      E0F9FFFF 
- 15986 e56a F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 15986      B0F9FFFF 
- 15987 e572 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 15987      D0F9FFFF 
- 15988              	.LBB3947:
- 15989              	.LBB3948:
- 15990              	.LBB3949:
- 15991              	.LBB3950:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 15992              		.loc 3 529 0
- 15993 e57a F30F6F8D 		movdqu	-1584(%rbp), %xmm1
- 15993      D0F9FFFF 
- 15994 e582 F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 15994      E0F9FFFF 
- 15995 e58a 660F3800 		pshufb	%xmm1, %xmm0
- 15995      C1
- 15996              	.LBE3950:
- 15997              	.LBE3949:
- 15998              	.LBE3948:
- 15999              	.LBE3947:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 16000              		.loc 2 667 0
- 16001 e58f F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 16001      A0F9FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16002              		.loc 2 668 0
- 16003 e597 F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 16003      A0F9FFFF 
- 16004              	.LBE3946:
- 16005              	.LBE3945:
-1106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r1 = AESBCMEMBER(RotBytesLeft) (state);
- 16006              		.loc 2 1106 0
- 16007 e59f 660F7F85 		movdqa	%xmm0, -1856(%rbp)
- 16007      C0F8FFFF 
- 16008 e5a7 660F6F85 		movdqa	-1856(%rbp), %xmm0
- 16008      C0F8FFFF 
- 16009 e5af F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 16009      F0F9FFFF 
- 16010              	.LBB3951:
- 16011              	.LBB3952:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 16012              		.loc 2 667 0
- 16013 e5b7 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 16013      00000000 
- 16014 e5bf F30F6F8D 		movdqu	-1552(%rbp), %xmm1
- 16014      F0F9FFFF 
- 16015 e5c7 F30F7F8D 		movdqu	%xmm1, -1520(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 487
-
-
- 16015      10FAFFFF 
- 16016 e5cf F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 16016      00FAFFFF 
- 16017 e5d7 F30F6F85 		movdqu	-1520(%rbp), %xmm0
- 16017      10FAFFFF 
- 16018 e5df F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 16018      30FAFFFF 
- 16019 e5e7 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 16019      00FAFFFF 
- 16020 e5ef F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 16020      20FAFFFF 
- 16021              	.LBB3953:
- 16022              	.LBB3954:
- 16023              	.LBB3955:
- 16024              	.LBB3956:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 16025              		.loc 3 529 0
- 16026 e5f7 F30F6F8D 		movdqu	-1504(%rbp), %xmm1
- 16026      20FAFFFF 
- 16027 e5ff F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 16027      30FAFFFF 
- 16028 e607 660F3800 		pshufb	%xmm1, %xmm0
- 16028      C1
- 16029              	.LBE3956:
- 16030              	.LBE3955:
- 16031              	.LBE3954:
- 16032              	.LBE3953:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 16033              		.loc 2 667 0
- 16034 e60c F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 16034      F0F9FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16035              		.loc 2 668 0
- 16036 e614 F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 16036      F0F9FFFF 
- 16037              	.LBE3952:
- 16038              	.LBE3951:
-1107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r2 = AESBCMEMBER(RotBytesLeft) (r1);
- 16039              		.loc 2 1107 0
- 16040 e61c 660F7F85 		movdqa	%xmm0, -1872(%rbp)
- 16040      B0F8FFFF 
- 16041 e624 660F6F8D 		movdqa	-1872(%rbp), %xmm1
- 16041      B0F8FFFF 
- 16042 e62c F30F7F8D 		movdqu	%xmm1, -1472(%rbp)
- 16042      40FAFFFF 
- 16043              	.LBB3957:
- 16044              	.LBB3958:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 16045              		.loc 2 667 0
- 16046 e634 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 16046      00000000 
- 16047 e63c F30F6F8D 		movdqu	-1472(%rbp), %xmm1
- 16047      40FAFFFF 
- 16048 e644 F30F7F8D 		movdqu	%xmm1, -1440(%rbp)
- 16048      60FAFFFF 
- 16049 e64c F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 16049      50FAFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 488
-
-
- 16050 e654 F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 16050      60FAFFFF 
- 16051 e65c F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 16051      80FAFFFF 
- 16052 e664 F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 16052      50FAFFFF 
- 16053 e66c F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 16053      70FAFFFF 
- 16054              	.LBB3959:
- 16055              	.LBB3960:
- 16056              	.LBB3961:
- 16057              	.LBB3962:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 16058              		.loc 3 529 0
- 16059 e674 F30F6F8D 		movdqu	-1424(%rbp), %xmm1
- 16059      70FAFFFF 
- 16060 e67c F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 16060      80FAFFFF 
- 16061 e684 660F3800 		pshufb	%xmm1, %xmm0
- 16061      C1
- 16062              	.LBE3962:
- 16063              	.LBE3961:
- 16064              	.LBE3960:
- 16065              	.LBE3959:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 16066              		.loc 2 667 0
- 16067 e689 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 16067      40FAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16068              		.loc 2 668 0
- 16069 e691 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 16069      40FAFFFF 
- 16070              	.LBE3958:
- 16071              	.LBE3957:
-1108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r3 = AESBCMEMBER(RotBytesLeft) (r2);        
- 16072              		.loc 2 1108 0
- 16073 e699 660F7F85 		movdqa	%xmm0, -1888(%rbp)
- 16073      A0F8FFFF 
- 16074 e6a1 F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 16074      90F9FFFF 
- 16075 e6a9 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 16075      A0FAFFFF 
- 16076 e6b1 660F6F85 		movdqa	-1872(%rbp), %xmm0
- 16076      B0F8FFFF 
- 16077 e6b9 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 16077      90FAFFFF 
- 16078              	.LBB3963:
- 16079              	.LBB3964:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16080              		.loc 2 178 0
- 16081 e6c1 F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 16081      90FAFFFF 
- 16082 e6c9 F30F6F8D 		movdqu	-1376(%rbp), %xmm1
- 16082      A0FAFFFF 
- 16083 e6d1 660FEFC1 		pxor	%xmm1, %xmm0
- 16084              	.LBE3964:
- 16085              	.LBE3963:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 489
-
-
-1110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(VecXor) (state, r2);
- 16086              		.loc 2 1110 0
- 16087 e6d5 660F7F85 		movdqa	%xmm0, -1920(%rbp)
- 16087      80F8FFFF 
- 16088 e6dd F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 16088      90F9FFFF 
- 16089 e6e5 F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 16089      C0FAFFFF 
- 16090 e6ed 660F6F8D 		movdqa	-1856(%rbp), %xmm1
- 16090      C0F8FFFF 
- 16091 e6f5 F30F7F8D 		movdqu	%xmm1, -1360(%rbp)
- 16091      B0FAFFFF 
- 16092              	.LBB3965:
- 16093              	.LBB3966:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16094              		.loc 2 178 0
- 16095 e6fd F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 16095      B0FAFFFF 
- 16096 e705 F30F6F8D 		movdqu	-1344(%rbp), %xmm1
- 16096      C0FAFFFF 
- 16097 e70d 660FEFC1 		pxor	%xmm1, %xmm0
- 16098              	.LBE3966:
- 16099              	.LBE3965:
-1111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(VecXor) (state, r1);
- 16100              		.loc 2 1111 0
- 16101 e711 660F7F85 		movdqa	%xmm0, -1904(%rbp)
- 16101      90F8FFFF 
- 16102 e719 660F6F85 		movdqa	-1872(%rbp), %xmm0
- 16102      B0F8FFFF 
- 16103 e721 F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 16103      E0FAFFFF 
- 16104 e729 660F6F8D 		movdqa	-1888(%rbp), %xmm1
- 16104      A0F8FFFF 
- 16105 e731 F30F7F8D 		movdqu	%xmm1, -1328(%rbp)
- 16105      D0FAFFFF 
- 16106              	.LBB3967:
- 16107              	.LBB3968:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16108              		.loc 2 178 0
- 16109 e739 F30F6F85 		movdqu	-1328(%rbp), %xmm0
- 16109      D0FAFFFF 
- 16110 e741 F30F6F8D 		movdqu	-1312(%rbp), %xmm1
- 16110      E0FAFFFF 
- 16111 e749 660FEFC1 		pxor	%xmm1, %xmm0
- 16112              	.LBE3968:
- 16113              	.LBE3967:
-1112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (r2, r3);
- 16114              		.loc 2 1112 0
- 16115 e74d 660F7F85 		movdqa	%xmm0, -1936(%rbp)
- 16115      70F8FFFF 
- 16116 e755 660F6F85 		movdqa	-1936(%rbp), %xmm0
- 16116      70F8FFFF 
- 16117 e75d F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 16117      00FBFFFF 
- 16118 e765 660F6F8D 		movdqa	-1856(%rbp), %xmm1
- 16118      C0F8FFFF 
- 16119 e76d F30F7F8D 		movdqu	%xmm1, -1296(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 490
-
-
- 16119      F0FAFFFF 
- 16120              	.LBB3969:
- 16121              	.LBB3970:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16122              		.loc 2 178 0
- 16123 e775 F30F6F85 		movdqu	-1296(%rbp), %xmm0
- 16123      F0FAFFFF 
- 16124 e77d F30F6F8D 		movdqu	-1280(%rbp), %xmm1
- 16124      00FBFFFF 
- 16125 e785 660FEFC1 		pxor	%xmm1, %xmm0
- 16126              	.LBE3970:
- 16127              	.LBE3969:
-1113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (f8, r1);
- 16128              		.loc 2 1113 0
- 16129 e789 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 16129      90F9FFFF 
- 16130 e791 660F6F85 		movdqa	-1936(%rbp), %xmm0
- 16130      70F8FFFF 
- 16131 e799 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 16131      20FBFFFF 
- 16132 e7a1 660F6F8D 		movdqa	-1904(%rbp), %xmm1
- 16132      90F8FFFF 
- 16133 e7a9 F30F7F8D 		movdqu	%xmm1, -1264(%rbp)
- 16133      10FBFFFF 
- 16134              	.LBB3971:
- 16135              	.LBB3972:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16136              		.loc 2 178 0
- 16137 e7b1 F30F6F85 		movdqu	-1264(%rbp), %xmm0
- 16137      10FBFFFF 
- 16138 e7b9 F30F6F8D 		movdqu	-1248(%rbp), %xmm1
- 16138      20FBFFFF 
- 16139 e7c1 660FEFC1 		pxor	%xmm1, %xmm0
- 16140              	.LBE3972:
- 16141              	.LBE3971:
-1114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (f8, f2);
- 16142              		.loc 2 1114 0
- 16143 e7c5 660F7F85 		movdqa	%xmm0, -1936(%rbp)
- 16143      70F8FFFF 
- 16144 e7cd 660F6F85 		movdqa	-1904(%rbp), %xmm0
- 16144      90F8FFFF 
- 16145 e7d5 F30F7F85 		movdqu	%xmm0, -1216(%rbp)
- 16145      40FBFFFF 
- 16146              	.LBB3973:
- 16147              	.LBB3974:
- 16148              	.LBB3975:
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 16149              		.loc 2 933 0
- 16150 e7dd F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 16150      40FBFFFF 
- 16151 e7e5 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 16151      10F9FFFF 
- 16152 e7ed E8000000 		call	KDbgWriterGet at PLT
- 16152      00
- 16153 e7f2 4885C0   		testq	%rax, %rax
- 16154 e7f5 747B     		je	.L242
- 16155 e7f7 BF010000 		movl	$1, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 491
-
-
- 16155      00
- 16156 e7fc E8000000 		call	KDbgCondToFlag at PLT
- 16156      00
- 16157 e801 4889C6   		movq	%rax, %rsi
- 16158 e804 BF100000 		movl	$16, %edi
- 16158      00
- 16159 e809 E8000000 		call	KDbgTestModConds at PLT
- 16159      00
- 16160 e80e 84C0     		testb	%al, %al
- 16161 e810 7460     		je	.L242
- 16162 e812 8B851CF9 		movl	-1764(%rbp), %eax
- 16162      FFFF
- 16163 e818 89C7     		movl	%eax, %edi
- 16164 e81a E8E117FF 		call	bswap_32
- 16164      FF
- 16165 e81f 4189C6   		movl	%eax, %r14d
- 16166 e822 8B8518F9 		movl	-1768(%rbp), %eax
- 16166      FFFF
- 16167 e828 89C7     		movl	%eax, %edi
- 16168 e82a E8D117FF 		call	bswap_32
- 16168      FF
- 16169 e82f 4189C5   		movl	%eax, %r13d
- 16170 e832 8B8514F9 		movl	-1772(%rbp), %eax
- 16170      FFFF
- 16171 e838 89C7     		movl	%eax, %edi
- 16172 e83a E8C117FF 		call	bswap_32
- 16172      FF
- 16173 e83f 4189C4   		movl	%eax, %r12d
- 16174 e842 8B8510F9 		movl	-1776(%rbp), %eax
- 16174      FFFF
- 16175 e848 89C7     		movl	%eax, %edi
- 16176 e84a E8B117FF 		call	bswap_32
- 16176      FF
- 16177 e84f 4589F1   		movl	%r14d, %r9d
- 16178 e852 4589E8   		movl	%r13d, %r8d
- 16179 e855 4489E1   		movl	%r12d, %ecx
- 16180 e858 89C2     		movl	%eax, %edx
- 16181 e85a 488D3500 		leaq	.LC5(%rip), %rsi
- 16181      000000
- 16182 e861 488D3D00 		leaq	.LC1(%rip), %rdi
- 16182      000000
- 16183 e868 B8000000 		movl	$0, %eax
- 16183      00
- 16184 e86d E8000000 		call	KDbgMsg at PLT
- 16184      00
- 16185              	.L242:
- 16186              	.LBE3975:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 16187              		.loc 2 934 0
- 16188 e872 B8070000 		movl	$7, %eax
- 16188      00
- 16189 e877 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 16189      40FBFFFF 
- 16190 e87f F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 16190      80FBFFFF 
- 16191 e887 89857CFB 		movl	%eax, -1156(%rbp)
- 16191      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 492
-
-
- 16192 e88d F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 16192      80FBFFFF 
- 16193 e895 F30F7F85 		movdqu	%xmm0, -1120(%rbp)
- 16193      A0FBFFFF 
- 16194 e89d 8B857CFB 		movl	-1156(%rbp), %eax
- 16194      FFFF
- 16195 e8a3 89859CFB 		movl	%eax, -1124(%rbp)
- 16195      FFFF
- 16196              	.LBB3976:
- 16197              	.LBB3977:
- 16198              	.LBB3978:
- 16199              	.LBB3979:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 16200              		.loc 3 433 0
- 16201 e8a9 F30F6F85 		movdqu	-1120(%rbp), %xmm0
- 16201      A0FBFFFF 
- 16202 e8b1 8B859CFB 		movl	-1124(%rbp), %eax
- 16202      FFFF
- 16203 e8b7 89856CF8 		movl	%eax, -1940(%rbp)
- 16203      FFFF
- 16204 e8bd 660F6E8D 		movd	-1940(%rbp), %xmm1
- 16204      6CF8FFFF 
- 16205 e8c5 660FD2C1 		psrld	%xmm1, %xmm0
- 16206              	.LBE3979:
- 16207              	.LBE3978:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 16208              		.loc 2 488 0
- 16209 e8c9 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 16209      80FBFFFF 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 16210              		.loc 2 489 0
- 16211 e8d1 B8080000 		movl	$8, %eax
- 16211      00
- 16212 e8d6 83BD7CFB 		cmpl	$8, -1156(%rbp)
- 16212      FFFF08
- 16213 e8dd 0F4E857C 		cmovle	-1156(%rbp), %eax
- 16213      FBFFFF
- 16214 e8e4 4898     		cltq
- 16215 e8e6 4889C2   		movq	%rax, %rdx
- 16216 e8e9 48C1E204 		salq	$4, %rdx
- 16217 e8ed 488D0500 		leaq	sr_mask.7327(%rip), %rax
- 16217      000000
- 16218 e8f4 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 16218      02
- 16219 e8f9 F30F6F8D 		movdqu	-1152(%rbp), %xmm1
- 16219      80FBFFFF 
- 16220 e901 F30F7F8D 		movdqu	%xmm1, -1088(%rbp)
- 16220      C0FBFFFF 
- 16221 e909 F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 16221      B0FBFFFF 
- 16222              	.LBB3980:
- 16223              	.LBB3981:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 16224              		.loc 2 206 0
- 16225 e911 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 16225      B0FBFFFF 
- 16226 e919 F30F6F8D 		movdqu	-1088(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 493
-
-
- 16226      C0FBFFFF 
- 16227 e921 660FDBC1 		pand	%xmm1, %xmm0
- 16228              	.LBE3981:
- 16229              	.LBE3980:
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 16230              		.loc 2 489 0
- 16231 e925 F30F7F85 		movdqu	%xmm0, -1152(%rbp)
- 16231      80FBFFFF 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 16232              		.loc 2 490 0
- 16233 e92d F30F6F85 		movdqu	-1152(%rbp), %xmm0
- 16233      80FBFFFF 
- 16234              	.LBE3977:
- 16235              	.LBE3976:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 16236              		.loc 2 934 0
- 16237 e935 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 16237      50FBFFFF 
- 16238              	.LBB3982:
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 16239              		.loc 2 935 0
- 16240 e93d F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 16240      50FBFFFF 
- 16241 e945 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 16241      00F9FFFF 
- 16242 e94d E8000000 		call	KDbgWriterGet at PLT
- 16242      00
- 16243 e952 4885C0   		testq	%rax, %rax
- 16244 e955 747B     		je	.L244
- 16245 e957 BF010000 		movl	$1, %edi
- 16245      00
- 16246 e95c E8000000 		call	KDbgCondToFlag at PLT
- 16246      00
- 16247 e961 4889C6   		movq	%rax, %rsi
- 16248 e964 BF100000 		movl	$16, %edi
- 16248      00
- 16249 e969 E8000000 		call	KDbgTestModConds at PLT
- 16249      00
- 16250 e96e 84C0     		testb	%al, %al
- 16251 e970 7460     		je	.L244
- 16252 e972 8B850CF9 		movl	-1780(%rbp), %eax
- 16252      FFFF
- 16253 e978 89C7     		movl	%eax, %edi
- 16254 e97a E88116FF 		call	bswap_32
- 16254      FF
- 16255 e97f 4189C6   		movl	%eax, %r14d
- 16256 e982 8B8508F9 		movl	-1784(%rbp), %eax
- 16256      FFFF
- 16257 e988 89C7     		movl	%eax, %edi
- 16258 e98a E87116FF 		call	bswap_32
- 16258      FF
- 16259 e98f 4189C5   		movl	%eax, %r13d
- 16260 e992 8B8504F9 		movl	-1788(%rbp), %eax
- 16260      FFFF
- 16261 e998 89C7     		movl	%eax, %edi
- 16262 e99a E86116FF 		call	bswap_32
- 16262      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 494
-
-
- 16263 e99f 4189C4   		movl	%eax, %r12d
- 16264 e9a2 8B8500F9 		movl	-1792(%rbp), %eax
- 16264      FFFF
- 16265 e9a8 89C7     		movl	%eax, %edi
- 16266 e9aa E85116FF 		call	bswap_32
- 16266      FF
- 16267 e9af 4589F1   		movl	%r14d, %r9d
- 16268 e9b2 4589E8   		movl	%r13d, %r8d
- 16269 e9b5 4489E1   		movl	%r12d, %ecx
- 16270 e9b8 89C2     		movl	%eax, %edx
- 16271 e9ba 488D3500 		leaq	.LC6(%rip), %rsi
- 16271      000000
- 16272 e9c1 488D3D00 		leaq	.LC1(%rip), %rdi
- 16272      000000
- 16273 e9c8 B8000000 		movl	$0, %eax
- 16273      00
- 16274 e9cd E8000000 		call	KDbgMsg at PLT
- 16274      00
- 16275              	.L244:
- 16276 e9d2 F30F6F85 		movdqu	-1216(%rbp), %xmm0
- 16276      40FBFFFF 
- 16277 e9da F30F7F85 		movdqu	%xmm0, -1056(%rbp)
- 16277      E0FBFFFF 
- 16278              	.LBE3982:
- 16279              	.LBB3983:
- 16280              	.LBB3984:
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 16281              		.loc 2 426 0
- 16282 e9e2 F30F6F85 		movdqu	-1056(%rbp), %xmm0
- 16282      E0FBFFFF 
- 16283 e9ea F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 16283      F0FBFFFF 
- 16284 e9f2 F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 16284      F0FBFFFF 
- 16285 e9fa F30F7F85 		movdqu	%xmm0, -1008(%rbp)
- 16285      10FCFFFF 
- 16286              	.LBB3985:
- 16287              	.LBB3986:
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 16288              		.loc 3 416 0
- 16289 ea02 F30F6F85 		movdqu	-1008(%rbp), %xmm0
- 16289      10FCFFFF 
- 16290 ea0a 660F72F0 		pslld	$1, %xmm0
- 16290      01
- 16291              	.LBE3986:
- 16292              	.LBE3985:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 16293              		.loc 2 433 0
- 16294 ea0f F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 16294      F0FBFFFF 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 16295              		.loc 2 435 0
- 16296 ea17 B8010000 		movl	$1, %eax
- 16296      00
- 16297 ea1c 4898     		cltq
- 16298 ea1e 4889C2   		movq	%rax, %rdx
- 16299 ea21 48C1E204 		salq	$4, %rdx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 495
-
-
- 16300 ea25 488D0500 		leaq	sl_mask.7310(%rip), %rax
- 16300      000000
- 16301 ea2c 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 16301      02
- 16302 ea31 F30F6F8D 		movdqu	-1040(%rbp), %xmm1
- 16302      F0FBFFFF 
- 16303 ea39 F30F7F8D 		movdqu	%xmm1, -976(%rbp)
- 16303      30FCFFFF 
- 16304 ea41 F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 16304      20FCFFFF 
- 16305              	.LBB3987:
- 16306              	.LBB3988:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 16307              		.loc 2 206 0
- 16308 ea49 F30F6F85 		movdqu	-992(%rbp), %xmm0
- 16308      20FCFFFF 
- 16309 ea51 F30F6F8D 		movdqu	-976(%rbp), %xmm1
- 16309      30FCFFFF 
- 16310 ea59 660FDBC1 		pand	%xmm1, %xmm0
- 16311              	.LBE3988:
- 16312              	.LBE3987:
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 16313              		.loc 2 435 0
- 16314 ea5d F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 16314      F0FBFFFF 
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 16315              		.loc 2 437 0
- 16316 ea65 F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 16316      F0FBFFFF 
- 16317              	.LBE3984:
- 16318              	.LBE3983:
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 16319              		.loc 2 936 0
- 16320 ea6d F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 16320      60FBFFFF 
- 16321              	.LBB3989:
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 16322              		.loc 2 937 0
- 16323 ea75 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 16323      60FBFFFF 
- 16324 ea7d F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 16324      F0F8FFFF 
- 16325 ea85 E8000000 		call	KDbgWriterGet at PLT
- 16325      00
- 16326 ea8a 4885C0   		testq	%rax, %rax
- 16327 ea8d 747B     		je	.L246
- 16328 ea8f BF010000 		movl	$1, %edi
- 16328      00
- 16329 ea94 E8000000 		call	KDbgCondToFlag at PLT
- 16329      00
- 16330 ea99 4889C6   		movq	%rax, %rsi
- 16331 ea9c BF100000 		movl	$16, %edi
- 16331      00
- 16332 eaa1 E8000000 		call	KDbgTestModConds at PLT
- 16332      00
- 16333 eaa6 84C0     		testb	%al, %al
- 16334 eaa8 7460     		je	.L246
-
GAS LISTING /tmp/ccjbMjHD.s 			page 496
-
-
- 16335 eaaa 8B85FCF8 		movl	-1796(%rbp), %eax
- 16335      FFFF
- 16336 eab0 89C7     		movl	%eax, %edi
- 16337 eab2 E84915FF 		call	bswap_32
- 16337      FF
- 16338 eab7 4189C6   		movl	%eax, %r14d
- 16339 eaba 8B85F8F8 		movl	-1800(%rbp), %eax
- 16339      FFFF
- 16340 eac0 89C7     		movl	%eax, %edi
- 16341 eac2 E83915FF 		call	bswap_32
- 16341      FF
- 16342 eac7 4189C5   		movl	%eax, %r13d
- 16343 eaca 8B85F4F8 		movl	-1804(%rbp), %eax
- 16343      FFFF
- 16344 ead0 89C7     		movl	%eax, %edi
- 16345 ead2 E82915FF 		call	bswap_32
- 16345      FF
- 16346 ead7 4189C4   		movl	%eax, %r12d
- 16347 eada 8B85F0F8 		movl	-1808(%rbp), %eax
- 16347      FFFF
- 16348 eae0 89C7     		movl	%eax, %edi
- 16349 eae2 E81915FF 		call	bswap_32
- 16349      FF
- 16350 eae7 4589F1   		movl	%r14d, %r9d
- 16351 eaea 4589E8   		movl	%r13d, %r8d
- 16352 eaed 4489E1   		movl	%r12d, %ecx
- 16353 eaf0 89C2     		movl	%eax, %edx
- 16354 eaf2 488D3500 		leaq	.LC7(%rip), %rsi
- 16354      000000
- 16355 eaf9 488D3D00 		leaq	.LC1(%rip), %rdi
- 16355      000000
- 16356 eb00 B8000000 		movl	$0, %eax
- 16356      00
- 16357 eb05 E8000000 		call	KDbgMsg at PLT
- 16357      00
- 16358              	.L246:
- 16359              	.LBE3989:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 16360              		.loc 2 938 0
- 16361 eb0a 660F6F05 		movdqa	FF_tab(%rip), %xmm0
- 16361      00000000 
- 16362 eb12 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 16362      50FCFFFF 
- 16363 eb1a F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 16363      50FBFFFF 
- 16364 eb22 F30F7F85 		movdqu	%xmm0, -960(%rbp)
- 16364      40FCFFFF 
- 16365 eb2a F30F6F85 		movdqu	-944(%rbp), %xmm0
- 16365      50FCFFFF 
- 16366 eb32 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 16366      70FCFFFF 
- 16367 eb3a F30F6F85 		movdqu	-960(%rbp), %xmm0
- 16367      40FCFFFF 
- 16368 eb42 F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 16368      60FCFFFF 
- 16369              	.LBB3990:
- 16370              	.LBB3991:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 497
-
-
- 16371              	.LBB3992:
- 16372              	.LBB3993:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 16373              		.loc 3 529 0
- 16374 eb4a F30F6F8D 		movdqu	-928(%rbp), %xmm1
- 16374      60FCFFFF 
- 16375 eb52 F30F6F85 		movdqu	-912(%rbp), %xmm0
- 16375      70FCFFFF 
- 16376 eb5a 660F3800 		pshufb	%xmm1, %xmm0
- 16376      C1
- 16377              	.LBE3993:
- 16378              	.LBE3992:
- 16379              	.LBE3991:
- 16380              	.LBE3990:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 16381              		.loc 2 938 0
- 16382 eb5f F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 16382      50FBFFFF 
- 16383 eb67 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 16383      60FBFFFF 
- 16384 eb6f F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 16384      90FCFFFF 
- 16385 eb77 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 16385      50FBFFFF 
- 16386 eb7f F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 16386      80FCFFFF 
- 16387              	.LBB3994:
- 16388              	.LBB3995:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16389              		.loc 2 178 0
- 16390 eb87 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 16390      80FCFFFF 
- 16391 eb8f F30F6F8D 		movdqu	-880(%rbp), %xmm1
- 16391      90FCFFFF 
- 16392 eb97 660FEFC1 		pxor	%xmm1, %xmm0
- 16393              	.LBE3995:
- 16394              	.LBE3994:
- 16395              	.LBE3974:
- 16396              	.LBE3973:
-1118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(FF_mul) (f2,1);
- 16397              		.loc 2 1118 0
- 16398 eb9b 660F7F85 		movdqa	%xmm0, -1904(%rbp)
- 16398      90F8FFFF 
- 16399 eba3 660F6F85 		movdqa	-1920(%rbp), %xmm0
- 16399      80F8FFFF 
- 16400 ebab F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 16400      B0FCFFFF 
- 16401              	.LBB3996:
- 16402              	.LBB3997:
- 16403              	.LBB3998:
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 16404              		.loc 2 933 0
- 16405 ebb3 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 16405      B0FCFFFF 
- 16406 ebbb F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 16406      40F9FFFF 
- 16407 ebc3 E8000000 		call	KDbgWriterGet at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 498
-
-
- 16407      00
- 16408 ebc8 4885C0   		testq	%rax, %rax
- 16409 ebcb 747B     		je	.L248
- 16410 ebcd BF010000 		movl	$1, %edi
- 16410      00
- 16411 ebd2 E8000000 		call	KDbgCondToFlag at PLT
- 16411      00
- 16412 ebd7 4889C6   		movq	%rax, %rsi
- 16413 ebda BF100000 		movl	$16, %edi
- 16413      00
- 16414 ebdf E8000000 		call	KDbgTestModConds at PLT
- 16414      00
- 16415 ebe4 84C0     		testb	%al, %al
- 16416 ebe6 7460     		je	.L248
- 16417 ebe8 8B854CF9 		movl	-1716(%rbp), %eax
- 16417      FFFF
- 16418 ebee 89C7     		movl	%eax, %edi
- 16419 ebf0 E80B14FF 		call	bswap_32
- 16419      FF
- 16420 ebf5 4189C6   		movl	%eax, %r14d
- 16421 ebf8 8B8548F9 		movl	-1720(%rbp), %eax
- 16421      FFFF
- 16422 ebfe 89C7     		movl	%eax, %edi
- 16423 ec00 E8FB13FF 		call	bswap_32
- 16423      FF
- 16424 ec05 4189C5   		movl	%eax, %r13d
- 16425 ec08 8B8544F9 		movl	-1724(%rbp), %eax
- 16425      FFFF
- 16426 ec0e 89C7     		movl	%eax, %edi
- 16427 ec10 E8EB13FF 		call	bswap_32
- 16427      FF
- 16428 ec15 4189C4   		movl	%eax, %r12d
- 16429 ec18 8B8540F9 		movl	-1728(%rbp), %eax
- 16429      FFFF
- 16430 ec1e 89C7     		movl	%eax, %edi
- 16431 ec20 E8DB13FF 		call	bswap_32
- 16431      FF
- 16432 ec25 4589F1   		movl	%r14d, %r9d
- 16433 ec28 4589E8   		movl	%r13d, %r8d
- 16434 ec2b 4489E1   		movl	%r12d, %ecx
- 16435 ec2e 89C2     		movl	%eax, %edx
- 16436 ec30 488D3500 		leaq	.LC5(%rip), %rsi
- 16436      000000
- 16437 ec37 488D3D00 		leaq	.LC1(%rip), %rdi
- 16437      000000
- 16438 ec3e B8000000 		movl	$0, %eax
- 16438      00
- 16439 ec43 E8000000 		call	KDbgMsg at PLT
- 16439      00
- 16440              	.L248:
- 16441              	.LBE3998:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 16442              		.loc 2 934 0
- 16443 ec48 B8060000 		movl	$6, %eax
- 16443      00
- 16444 ec4d F30F6F85 		movdqu	-848(%rbp), %xmm0
- 16444      B0FCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 499
-
-
- 16445 ec55 F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 16445      F0FCFFFF 
- 16446 ec5d 8985ECFC 		movl	%eax, -788(%rbp)
- 16446      FFFF
- 16447 ec63 F30F6F85 		movdqu	-784(%rbp), %xmm0
- 16447      F0FCFFFF 
- 16448 ec6b F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 16448      10FDFFFF 
- 16449 ec73 8B85ECFC 		movl	-788(%rbp), %eax
- 16449      FFFF
- 16450 ec79 89850CFD 		movl	%eax, -756(%rbp)
- 16450      FFFF
- 16451              	.LBB3999:
- 16452              	.LBB4000:
- 16453              	.LBB4001:
- 16454              	.LBB4002:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 16455              		.loc 3 433 0
- 16456 ec7f F30F6F85 		movdqu	-752(%rbp), %xmm0
- 16456      10FDFFFF 
- 16457 ec87 8B850CFD 		movl	-756(%rbp), %eax
- 16457      FFFF
- 16458 ec8d 898568F8 		movl	%eax, -1944(%rbp)
- 16458      FFFF
- 16459 ec93 660F6E8D 		movd	-1944(%rbp), %xmm1
- 16459      68F8FFFF 
- 16460 ec9b 660FD2C1 		psrld	%xmm1, %xmm0
- 16461              	.LBE4002:
- 16462              	.LBE4001:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 16463              		.loc 2 488 0
- 16464 ec9f F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 16464      F0FCFFFF 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 16465              		.loc 2 489 0
- 16466 eca7 B8080000 		movl	$8, %eax
- 16466      00
- 16467 ecac 83BDECFC 		cmpl	$8, -788(%rbp)
- 16467      FFFF08
- 16468 ecb3 0F4E85EC 		cmovle	-788(%rbp), %eax
- 16468      FCFFFF
- 16469 ecba 4898     		cltq
- 16470 ecbc 4889C2   		movq	%rax, %rdx
- 16471 ecbf 48C1E204 		salq	$4, %rdx
- 16472 ecc3 488D0500 		leaq	sr_mask.7327(%rip), %rax
- 16472      000000
- 16473 ecca 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 16473      02
- 16474 eccf F30F6F8D 		movdqu	-784(%rbp), %xmm1
- 16474      F0FCFFFF 
- 16475 ecd7 F30F7F8D 		movdqu	%xmm1, -720(%rbp)
- 16475      30FDFFFF 
- 16476 ecdf F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 16476      20FDFFFF 
- 16477              	.LBB4003:
- 16478              	.LBB4004:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 500
-
-
- 16479              		.loc 2 206 0
- 16480 ece7 F30F6F85 		movdqu	-736(%rbp), %xmm0
- 16480      20FDFFFF 
- 16481 ecef F30F6F8D 		movdqu	-720(%rbp), %xmm1
- 16481      30FDFFFF 
- 16482 ecf7 660FDBC1 		pand	%xmm1, %xmm0
- 16483              	.LBE4004:
- 16484              	.LBE4003:
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 16485              		.loc 2 489 0
- 16486 ecfb F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 16486      F0FCFFFF 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 16487              		.loc 2 490 0
- 16488 ed03 F30F6F85 		movdqu	-784(%rbp), %xmm0
- 16488      F0FCFFFF 
- 16489              	.LBE4000:
- 16490              	.LBE3999:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 16491              		.loc 2 934 0
- 16492 ed0b F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 16492      C0FCFFFF 
- 16493              	.LBB4005:
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 16494              		.loc 2 935 0
- 16495 ed13 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 16495      C0FCFFFF 
- 16496 ed1b F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 16496      30F9FFFF 
- 16497 ed23 E8000000 		call	KDbgWriterGet at PLT
- 16497      00
- 16498 ed28 4885C0   		testq	%rax, %rax
- 16499 ed2b 747B     		je	.L250
- 16500 ed2d BF010000 		movl	$1, %edi
- 16500      00
- 16501 ed32 E8000000 		call	KDbgCondToFlag at PLT
- 16501      00
- 16502 ed37 4889C6   		movq	%rax, %rsi
- 16503 ed3a BF100000 		movl	$16, %edi
- 16503      00
- 16504 ed3f E8000000 		call	KDbgTestModConds at PLT
- 16504      00
- 16505 ed44 84C0     		testb	%al, %al
- 16506 ed46 7460     		je	.L250
- 16507 ed48 8B853CF9 		movl	-1732(%rbp), %eax
- 16507      FFFF
- 16508 ed4e 89C7     		movl	%eax, %edi
- 16509 ed50 E8AB12FF 		call	bswap_32
- 16509      FF
- 16510 ed55 4189C6   		movl	%eax, %r14d
- 16511 ed58 8B8538F9 		movl	-1736(%rbp), %eax
- 16511      FFFF
- 16512 ed5e 89C7     		movl	%eax, %edi
- 16513 ed60 E89B12FF 		call	bswap_32
- 16513      FF
- 16514 ed65 4189C5   		movl	%eax, %r13d
- 16515 ed68 8B8534F9 		movl	-1740(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 501
-
-
- 16515      FFFF
- 16516 ed6e 89C7     		movl	%eax, %edi
- 16517 ed70 E88B12FF 		call	bswap_32
- 16517      FF
- 16518 ed75 4189C4   		movl	%eax, %r12d
- 16519 ed78 8B8530F9 		movl	-1744(%rbp), %eax
- 16519      FFFF
- 16520 ed7e 89C7     		movl	%eax, %edi
- 16521 ed80 E87B12FF 		call	bswap_32
- 16521      FF
- 16522 ed85 4589F1   		movl	%r14d, %r9d
- 16523 ed88 4589E8   		movl	%r13d, %r8d
- 16524 ed8b 4489E1   		movl	%r12d, %ecx
- 16525 ed8e 89C2     		movl	%eax, %edx
- 16526 ed90 488D3500 		leaq	.LC6(%rip), %rsi
- 16526      000000
- 16527 ed97 488D3D00 		leaq	.LC1(%rip), %rdi
- 16527      000000
- 16528 ed9e B8000000 		movl	$0, %eax
- 16528      00
- 16529 eda3 E8000000 		call	KDbgMsg at PLT
- 16529      00
- 16530              	.L250:
- 16531 eda8 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 16531      B0FCFFFF 
- 16532 edb0 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 16532      50FDFFFF 
- 16533              	.LBE4005:
- 16534              	.LBB4006:
- 16535              	.LBB4007:
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 16536              		.loc 2 426 0
- 16537 edb8 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 16537      50FDFFFF 
- 16538 edc0 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 16538      60FDFFFF 
- 16539 edc8 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 16539      60FDFFFF 
- 16540 edd0 F30F7F85 		movdqu	%xmm0, -640(%rbp)
- 16540      80FDFFFF 
- 16541              	.LBB4008:
- 16542              	.LBB4009:
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 16543              		.loc 3 416 0
- 16544 edd8 F30F6F85 		movdqu	-640(%rbp), %xmm0
- 16544      80FDFFFF 
- 16545 ede0 660F72F0 		pslld	$2, %xmm0
- 16545      02
- 16546              	.LBE4009:
- 16547              	.LBE4008:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 16548              		.loc 2 433 0
- 16549 ede5 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 16549      60FDFFFF 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 16550              		.loc 2 435 0
- 16551 eded B8020000 		movl	$2, %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 502
-
-
- 16551      00
- 16552 edf2 4898     		cltq
- 16553 edf4 4889C2   		movq	%rax, %rdx
- 16554 edf7 48C1E204 		salq	$4, %rdx
- 16555 edfb 488D0500 		leaq	sl_mask.7310(%rip), %rax
- 16555      000000
- 16556 ee02 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 16556      02
- 16557 ee07 F30F6F8D 		movdqu	-672(%rbp), %xmm1
- 16557      60FDFFFF 
- 16558 ee0f F30F7F8D 		movdqu	%xmm1, -608(%rbp)
- 16558      A0FDFFFF 
- 16559 ee17 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 16559      90FDFFFF 
- 16560              	.LBB4010:
- 16561              	.LBB4011:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 16562              		.loc 2 206 0
- 16563 ee1f F30F6F85 		movdqu	-624(%rbp), %xmm0
- 16563      90FDFFFF 
- 16564 ee27 F30F6F8D 		movdqu	-608(%rbp), %xmm1
- 16564      A0FDFFFF 
- 16565 ee2f 660FDBC1 		pand	%xmm1, %xmm0
- 16566              	.LBE4011:
- 16567              	.LBE4010:
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 16568              		.loc 2 435 0
- 16569 ee33 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 16569      60FDFFFF 
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 16570              		.loc 2 437 0
- 16571 ee3b F30F6F85 		movdqu	-672(%rbp), %xmm0
- 16571      60FDFFFF 
- 16572              	.LBE4007:
- 16573              	.LBE4006:
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 16574              		.loc 2 936 0
- 16575 ee43 F30F7F85 		movdqu	%xmm0, -816(%rbp)
- 16575      D0FCFFFF 
- 16576              	.LBB4012:
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 16577              		.loc 2 937 0
- 16578 ee4b F30F6F85 		movdqu	-816(%rbp), %xmm0
- 16578      D0FCFFFF 
- 16579 ee53 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 16579      20F9FFFF 
- 16580 ee5b E8000000 		call	KDbgWriterGet at PLT
- 16580      00
- 16581 ee60 4885C0   		testq	%rax, %rax
- 16582 ee63 747B     		je	.L252
- 16583 ee65 BF010000 		movl	$1, %edi
- 16583      00
- 16584 ee6a E8000000 		call	KDbgCondToFlag at PLT
- 16584      00
- 16585 ee6f 4889C6   		movq	%rax, %rsi
- 16586 ee72 BF100000 		movl	$16, %edi
- 16586      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 503
-
-
- 16587 ee77 E8000000 		call	KDbgTestModConds at PLT
- 16587      00
- 16588 ee7c 84C0     		testb	%al, %al
- 16589 ee7e 7460     		je	.L252
- 16590 ee80 8B852CF9 		movl	-1748(%rbp), %eax
- 16590      FFFF
- 16591 ee86 89C7     		movl	%eax, %edi
- 16592 ee88 E87311FF 		call	bswap_32
- 16592      FF
- 16593 ee8d 4189C6   		movl	%eax, %r14d
- 16594 ee90 8B8528F9 		movl	-1752(%rbp), %eax
- 16594      FFFF
- 16595 ee96 89C7     		movl	%eax, %edi
- 16596 ee98 E86311FF 		call	bswap_32
- 16596      FF
- 16597 ee9d 4189C5   		movl	%eax, %r13d
- 16598 eea0 8B8524F9 		movl	-1756(%rbp), %eax
- 16598      FFFF
- 16599 eea6 89C7     		movl	%eax, %edi
- 16600 eea8 E85311FF 		call	bswap_32
- 16600      FF
- 16601 eead 4189C4   		movl	%eax, %r12d
- 16602 eeb0 8B8520F9 		movl	-1760(%rbp), %eax
- 16602      FFFF
- 16603 eeb6 89C7     		movl	%eax, %edi
- 16604 eeb8 E84311FF 		call	bswap_32
- 16604      FF
- 16605 eebd 4589F1   		movl	%r14d, %r9d
- 16606 eec0 4589E8   		movl	%r13d, %r8d
- 16607 eec3 4489E1   		movl	%r12d, %ecx
- 16608 eec6 89C2     		movl	%eax, %edx
- 16609 eec8 488D3500 		leaq	.LC7(%rip), %rsi
- 16609      000000
- 16610 eecf 488D3D00 		leaq	.LC1(%rip), %rdi
- 16610      000000
- 16611 eed6 B8000000 		movl	$0, %eax
- 16611      00
- 16612 eedb E8000000 		call	KDbgMsg at PLT
- 16612      00
- 16613              	.L252:
- 16614              	.LBE4012:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 16615              		.loc 2 938 0
- 16616 eee0 660F6F05 		movdqa	FF_tab(%rip), %xmm0
- 16616      00000000 
- 16617 eee8 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 16617      C0FDFFFF 
- 16618 eef0 F30F6F85 		movdqu	-832(%rbp), %xmm0
- 16618      C0FCFFFF 
- 16619 eef8 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 16619      B0FDFFFF 
- 16620 ef00 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 16620      C0FDFFFF 
- 16621 ef08 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 16621      E0FDFFFF 
- 16622 ef10 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 16622      B0FDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 504
-
-
- 16623 ef18 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 16623      D0FDFFFF 
- 16624              	.LBB4013:
- 16625              	.LBB4014:
- 16626              	.LBB4015:
- 16627              	.LBB4016:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 16628              		.loc 3 529 0
- 16629 ef20 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 16629      D0FDFFFF 
- 16630 ef28 F30F6F85 		movdqu	-544(%rbp), %xmm0
- 16630      E0FDFFFF 
- 16631 ef30 660F3800 		pshufb	%xmm1, %xmm0
- 16631      C1
- 16632              	.LBE4016:
- 16633              	.LBE4015:
- 16634              	.LBE4014:
- 16635              	.LBE4013:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 16636              		.loc 2 938 0
- 16637 ef35 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 16637      C0FCFFFF 
- 16638 ef3d F30F6F85 		movdqu	-816(%rbp), %xmm0
- 16638      D0FCFFFF 
- 16639 ef45 F30F7F85 		movdqu	%xmm0, -512(%rbp)
- 16639      00FEFFFF 
- 16640 ef4d F30F6F85 		movdqu	-832(%rbp), %xmm0
- 16640      C0FCFFFF 
- 16641 ef55 F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 16641      F0FDFFFF 
- 16642              	.LBB4017:
- 16643              	.LBB4018:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16644              		.loc 2 178 0
- 16645 ef5d F30F6F85 		movdqu	-528(%rbp), %xmm0
- 16645      F0FDFFFF 
- 16646 ef65 F30F6F8D 		movdqu	-512(%rbp), %xmm1
- 16646      00FEFFFF 
- 16647 ef6d 660FEFC1 		pxor	%xmm1, %xmm0
- 16648              	.LBE4018:
- 16649              	.LBE4017:
- 16650              	.LBE3997:
- 16651              	.LBE3996:
-1119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(FF_mul) (f4,2);
- 16652              		.loc 2 1119 0
- 16653 ef71 660F7F85 		movdqa	%xmm0, -1920(%rbp)
- 16653      80F8FFFF 
- 16654 ef79 660F6F85 		movdqa	-1936(%rbp), %xmm0
- 16654      70F8FFFF 
- 16655 ef81 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 16655      20FEFFFF 
- 16656              	.LBB4019:
- 16657              	.LBB4020:
- 16658              	.LBB4021:
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 16659              		.loc 2 933 0
- 16660 ef89 F30F6F85 		movdqu	-480(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 505
-
-
- 16660      20FEFFFF 
- 16661 ef91 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 16661      70F9FFFF 
- 16662 ef99 E8000000 		call	KDbgWriterGet at PLT
- 16662      00
- 16663 ef9e 4885C0   		testq	%rax, %rax
- 16664 efa1 747B     		je	.L254
- 16665 efa3 BF010000 		movl	$1, %edi
- 16665      00
- 16666 efa8 E8000000 		call	KDbgCondToFlag at PLT
- 16666      00
- 16667 efad 4889C6   		movq	%rax, %rsi
- 16668 efb0 BF100000 		movl	$16, %edi
- 16668      00
- 16669 efb5 E8000000 		call	KDbgTestModConds at PLT
- 16669      00
- 16670 efba 84C0     		testb	%al, %al
- 16671 efbc 7460     		je	.L254
- 16672 efbe 8B857CF9 		movl	-1668(%rbp), %eax
- 16672      FFFF
- 16673 efc4 89C7     		movl	%eax, %edi
- 16674 efc6 E83510FF 		call	bswap_32
- 16674      FF
- 16675 efcb 4189C6   		movl	%eax, %r14d
- 16676 efce 8B8578F9 		movl	-1672(%rbp), %eax
- 16676      FFFF
- 16677 efd4 89C7     		movl	%eax, %edi
- 16678 efd6 E82510FF 		call	bswap_32
- 16678      FF
- 16679 efdb 4189C5   		movl	%eax, %r13d
- 16680 efde 8B8574F9 		movl	-1676(%rbp), %eax
- 16680      FFFF
- 16681 efe4 89C7     		movl	%eax, %edi
- 16682 efe6 E81510FF 		call	bswap_32
- 16682      FF
- 16683 efeb 4189C4   		movl	%eax, %r12d
- 16684 efee 8B8570F9 		movl	-1680(%rbp), %eax
- 16684      FFFF
- 16685 eff4 89C7     		movl	%eax, %edi
- 16686 eff6 E80510FF 		call	bswap_32
- 16686      FF
- 16687 effb 4589F1   		movl	%r14d, %r9d
- 16688 effe 4589E8   		movl	%r13d, %r8d
- 16689 f001 4489E1   		movl	%r12d, %ecx
- 16690 f004 89C2     		movl	%eax, %edx
- 16691 f006 488D3500 		leaq	.LC5(%rip), %rsi
- 16691      000000
- 16692 f00d 488D3D00 		leaq	.LC1(%rip), %rdi
- 16692      000000
- 16693 f014 B8000000 		movl	$0, %eax
- 16693      00
- 16694 f019 E8000000 		call	KDbgMsg at PLT
- 16694      00
- 16695              	.L254:
- 16696              	.LBE4021:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 16697              		.loc 2 934 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 506
-
-
- 16698 f01e B8050000 		movl	$5, %eax
- 16698      00
- 16699 f023 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 16699      20FEFFFF 
- 16700 f02b F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 16700      60FEFFFF 
- 16701 f033 89855CFE 		movl	%eax, -420(%rbp)
- 16701      FFFF
- 16702 f039 F30F6F85 		movdqu	-416(%rbp), %xmm0
- 16702      60FEFFFF 
- 16703 f041 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 16703      80FEFFFF 
- 16704 f049 8B855CFE 		movl	-420(%rbp), %eax
- 16704      FFFF
- 16705 f04f 89857CFE 		movl	%eax, -388(%rbp)
- 16705      FFFF
- 16706              	.LBB4022:
- 16707              	.LBB4023:
- 16708              	.LBB4024:
- 16709              	.LBB4025:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 16710              		.loc 3 433 0
- 16711 f055 F30F6F85 		movdqu	-384(%rbp), %xmm0
- 16711      80FEFFFF 
- 16712 f05d 8B857CFE 		movl	-388(%rbp), %eax
- 16712      FFFF
- 16713 f063 898564F8 		movl	%eax, -1948(%rbp)
- 16713      FFFF
- 16714 f069 660F6E8D 		movd	-1948(%rbp), %xmm1
- 16714      64F8FFFF 
- 16715 f071 660FD2C1 		psrld	%xmm1, %xmm0
- 16716              	.LBE4025:
- 16717              	.LBE4024:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 16718              		.loc 2 488 0
- 16719 f075 F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 16719      60FEFFFF 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 16720              		.loc 2 489 0
- 16721 f07d B8080000 		movl	$8, %eax
- 16721      00
- 16722 f082 83BD5CFE 		cmpl	$8, -420(%rbp)
- 16722      FFFF08
- 16723 f089 0F4E855C 		cmovle	-420(%rbp), %eax
- 16723      FEFFFF
- 16724 f090 4898     		cltq
- 16725 f092 4889C2   		movq	%rax, %rdx
- 16726 f095 48C1E204 		salq	$4, %rdx
- 16727 f099 488D0500 		leaq	sr_mask.7327(%rip), %rax
- 16727      000000
- 16728 f0a0 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 16728      02
- 16729 f0a5 F30F6F8D 		movdqu	-416(%rbp), %xmm1
- 16729      60FEFFFF 
- 16730 f0ad F30F7F8D 		movdqu	%xmm1, -352(%rbp)
- 16730      A0FEFFFF 
- 16731 f0b5 F30F7F85 		movdqu	%xmm0, -368(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 507
-
-
- 16731      90FEFFFF 
- 16732              	.LBB4026:
- 16733              	.LBB4027:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 16734              		.loc 2 206 0
- 16735 f0bd F30F6F85 		movdqu	-368(%rbp), %xmm0
- 16735      90FEFFFF 
- 16736 f0c5 F30F6F8D 		movdqu	-352(%rbp), %xmm1
- 16736      A0FEFFFF 
- 16737 f0cd 660FDBC1 		pand	%xmm1, %xmm0
- 16738              	.LBE4027:
- 16739              	.LBE4026:
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 16740              		.loc 2 489 0
- 16741 f0d1 F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 16741      60FEFFFF 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 16742              		.loc 2 490 0
- 16743 f0d9 F30F6F85 		movdqu	-416(%rbp), %xmm0
- 16743      60FEFFFF 
- 16744              	.LBE4023:
- 16745              	.LBE4022:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 16746              		.loc 2 934 0
- 16747 f0e1 F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 16747      30FEFFFF 
- 16748              	.LBB4028:
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 16749              		.loc 2 935 0
- 16750 f0e9 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 16750      30FEFFFF 
- 16751 f0f1 F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 16751      60F9FFFF 
- 16752 f0f9 E8000000 		call	KDbgWriterGet at PLT
- 16752      00
- 16753 f0fe 4885C0   		testq	%rax, %rax
- 16754 f101 747B     		je	.L256
- 16755 f103 BF010000 		movl	$1, %edi
- 16755      00
- 16756 f108 E8000000 		call	KDbgCondToFlag at PLT
- 16756      00
- 16757 f10d 4889C6   		movq	%rax, %rsi
- 16758 f110 BF100000 		movl	$16, %edi
- 16758      00
- 16759 f115 E8000000 		call	KDbgTestModConds at PLT
- 16759      00
- 16760 f11a 84C0     		testb	%al, %al
- 16761 f11c 7460     		je	.L256
- 16762 f11e 8B856CF9 		movl	-1684(%rbp), %eax
- 16762      FFFF
- 16763 f124 89C7     		movl	%eax, %edi
- 16764 f126 E8D50EFF 		call	bswap_32
- 16764      FF
- 16765 f12b 4189C6   		movl	%eax, %r14d
- 16766 f12e 8B8568F9 		movl	-1688(%rbp), %eax
- 16766      FFFF
- 16767 f134 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 508
-
-
- 16768 f136 E8C50EFF 		call	bswap_32
- 16768      FF
- 16769 f13b 4189C5   		movl	%eax, %r13d
- 16770 f13e 8B8564F9 		movl	-1692(%rbp), %eax
- 16770      FFFF
- 16771 f144 89C7     		movl	%eax, %edi
- 16772 f146 E8B50EFF 		call	bswap_32
- 16772      FF
- 16773 f14b 4189C4   		movl	%eax, %r12d
- 16774 f14e 8B8560F9 		movl	-1696(%rbp), %eax
- 16774      FFFF
- 16775 f154 89C7     		movl	%eax, %edi
- 16776 f156 E8A50EFF 		call	bswap_32
- 16776      FF
- 16777 f15b 4589F1   		movl	%r14d, %r9d
- 16778 f15e 4589E8   		movl	%r13d, %r8d
- 16779 f161 4489E1   		movl	%r12d, %ecx
- 16780 f164 89C2     		movl	%eax, %edx
- 16781 f166 488D3500 		leaq	.LC6(%rip), %rsi
- 16781      000000
- 16782 f16d 488D3D00 		leaq	.LC1(%rip), %rdi
- 16782      000000
- 16783 f174 B8000000 		movl	$0, %eax
- 16783      00
- 16784 f179 E8000000 		call	KDbgMsg at PLT
- 16784      00
- 16785              	.L256:
- 16786 f17e F30F6F85 		movdqu	-480(%rbp), %xmm0
- 16786      20FEFFFF 
- 16787 f186 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 16787      C0FEFFFF 
- 16788              	.LBE4028:
- 16789              	.LBB4029:
- 16790              	.LBB4030:
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 16791              		.loc 2 426 0
- 16792 f18e F30F6F85 		movdqu	-320(%rbp), %xmm0
- 16792      C0FEFFFF 
- 16793 f196 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 16793      D0FEFFFF 
- 16794 f19e F30F6F85 		movdqu	-304(%rbp), %xmm0
- 16794      D0FEFFFF 
- 16795 f1a6 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 16795      F0FEFFFF 
- 16796              	.LBB4031:
- 16797              	.LBB4032:
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 16798              		.loc 3 416 0
- 16799 f1ae F30F6F85 		movdqu	-272(%rbp), %xmm0
- 16799      F0FEFFFF 
- 16800 f1b6 660F72F0 		pslld	$3, %xmm0
- 16800      03
- 16801              	.LBE4032:
- 16802              	.LBE4031:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 16803              		.loc 2 433 0
- 16804 f1bb F30F7F85 		movdqu	%xmm0, -304(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 509
-
-
- 16804      D0FEFFFF 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 16805              		.loc 2 435 0
- 16806 f1c3 B8030000 		movl	$3, %eax
- 16806      00
- 16807 f1c8 4898     		cltq
- 16808 f1ca 4889C2   		movq	%rax, %rdx
- 16809 f1cd 48C1E204 		salq	$4, %rdx
- 16810 f1d1 488D0500 		leaq	sl_mask.7310(%rip), %rax
- 16810      000000
- 16811 f1d8 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 16811      02
- 16812 f1dd F30F6F8D 		movdqu	-304(%rbp), %xmm1
- 16812      D0FEFFFF 
- 16813 f1e5 F30F7F8D 		movdqu	%xmm1, -240(%rbp)
- 16813      10FFFFFF 
- 16814 f1ed F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 16814      00FFFFFF 
- 16815              	.LBB4033:
- 16816              	.LBB4034:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 16817              		.loc 2 206 0
- 16818 f1f5 F30F6F85 		movdqu	-256(%rbp), %xmm0
- 16818      00FFFFFF 
- 16819 f1fd F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 16819      10FFFFFF 
- 16820 f205 660FDBC1 		pand	%xmm1, %xmm0
- 16821              	.LBE4034:
- 16822              	.LBE4033:
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 16823              		.loc 2 435 0
- 16824 f209 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 16824      D0FEFFFF 
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 16825              		.loc 2 437 0
- 16826 f211 F30F6F85 		movdqu	-304(%rbp), %xmm0
- 16826      D0FEFFFF 
- 16827              	.LBE4030:
- 16828              	.LBE4029:
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 16829              		.loc 2 936 0
- 16830 f219 F30F7F85 		movdqu	%xmm0, -448(%rbp)
- 16830      40FEFFFF 
- 16831              	.LBB4035:
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 16832              		.loc 2 937 0
- 16833 f221 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 16833      40FEFFFF 
- 16834 f229 F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 16834      50F9FFFF 
- 16835 f231 E8000000 		call	KDbgWriterGet at PLT
- 16835      00
- 16836 f236 4885C0   		testq	%rax, %rax
- 16837 f239 747B     		je	.L258
- 16838 f23b BF010000 		movl	$1, %edi
- 16838      00
- 16839 f240 E8000000 		call	KDbgCondToFlag at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 510
-
-
- 16839      00
- 16840 f245 4889C6   		movq	%rax, %rsi
- 16841 f248 BF100000 		movl	$16, %edi
- 16841      00
- 16842 f24d E8000000 		call	KDbgTestModConds at PLT
- 16842      00
- 16843 f252 84C0     		testb	%al, %al
- 16844 f254 7460     		je	.L258
- 16845 f256 8B855CF9 		movl	-1700(%rbp), %eax
- 16845      FFFF
- 16846 f25c 89C7     		movl	%eax, %edi
- 16847 f25e E89D0DFF 		call	bswap_32
- 16847      FF
- 16848 f263 4189C6   		movl	%eax, %r14d
- 16849 f266 8B8558F9 		movl	-1704(%rbp), %eax
- 16849      FFFF
- 16850 f26c 89C7     		movl	%eax, %edi
- 16851 f26e E88D0DFF 		call	bswap_32
- 16851      FF
- 16852 f273 4189C5   		movl	%eax, %r13d
- 16853 f276 8B8554F9 		movl	-1708(%rbp), %eax
- 16853      FFFF
- 16854 f27c 89C7     		movl	%eax, %edi
- 16855 f27e E87D0DFF 		call	bswap_32
- 16855      FF
- 16856 f283 4189C4   		movl	%eax, %r12d
- 16857 f286 8B8550F9 		movl	-1712(%rbp), %eax
- 16857      FFFF
- 16858 f28c 89C7     		movl	%eax, %edi
- 16859 f28e E86D0DFF 		call	bswap_32
- 16859      FF
- 16860 f293 4589F1   		movl	%r14d, %r9d
- 16861 f296 4589E8   		movl	%r13d, %r8d
- 16862 f299 4489E1   		movl	%r12d, %ecx
- 16863 f29c 89C2     		movl	%eax, %edx
- 16864 f29e 488D3500 		leaq	.LC7(%rip), %rsi
- 16864      000000
- 16865 f2a5 488D3D00 		leaq	.LC1(%rip), %rdi
- 16865      000000
- 16866 f2ac B8000000 		movl	$0, %eax
- 16866      00
- 16867 f2b1 E8000000 		call	KDbgMsg at PLT
- 16867      00
- 16868              	.L258:
- 16869              	.LBE4035:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 16870              		.loc 2 938 0
- 16871 f2b6 660F6F05 		movdqa	FF_tab(%rip), %xmm0
- 16871      00000000 
- 16872 f2be F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 16872      30FFFFFF 
- 16873 f2c6 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 16873      30FEFFFF 
- 16874 f2ce F30F7F85 		movdqu	%xmm0, -224(%rbp)
- 16874      20FFFFFF 
- 16875 f2d6 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 16875      30FFFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 511
-
-
- 16876 f2de F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 16876      50FFFFFF 
- 16877 f2e6 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 16877      20FFFFFF 
- 16878 f2ee F30F7F85 		movdqu	%xmm0, -192(%rbp)
- 16878      40FFFFFF 
- 16879              	.LBB4036:
- 16880              	.LBB4037:
- 16881              	.LBB4038:
- 16882              	.LBB4039:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 16883              		.loc 3 529 0
- 16884 f2f6 F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 16884      40FFFFFF 
- 16885 f2fe F30F6F85 		movdqu	-176(%rbp), %xmm0
- 16885      50FFFFFF 
- 16886 f306 660F3800 		pshufb	%xmm1, %xmm0
- 16886      C1
- 16887              	.LBE4039:
- 16888              	.LBE4038:
- 16889              	.LBE4037:
- 16890              	.LBE4036:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 16891              		.loc 2 938 0
- 16892 f30b F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 16892      30FEFFFF 
- 16893 f313 F30F6F85 		movdqu	-448(%rbp), %xmm0
- 16893      40FEFFFF 
- 16894 f31b F30F7F85 		movdqu	%xmm0, -144(%rbp)
- 16894      70FFFFFF 
- 16895 f323 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 16895      30FEFFFF 
- 16896 f32b F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 16896      60FFFFFF 
- 16897              	.LBB4040:
- 16898              	.LBB4041:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16899              		.loc 2 178 0
- 16900 f333 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 16900      60FFFFFF 
- 16901 f33b F30F6F8D 		movdqu	-144(%rbp), %xmm1
- 16901      70FFFFFF 
- 16902 f343 660FEFC1 		pxor	%xmm1, %xmm0
- 16903              	.LBE4041:
- 16904              	.LBE4040:
- 16905              	.LBE4020:
- 16906              	.LBE4019:
-1120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(FF_mul) (f8,3);
- 16907              		.loc 2 1120 0
- 16908 f347 660F7F85 		movdqa	%xmm0, -1936(%rbp)
- 16908      70F8FFFF 
- 16909 f34f F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 16909      90F9FFFF 
- 16910 f357 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 16910      90
- 16911 f35c 660F6F85 		movdqa	-1904(%rbp), %xmm0
- 16911      90F8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 512
-
-
- 16912 f364 F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 16912      80
- 16913              	.LBB4042:
- 16914              	.LBB4043:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16915              		.loc 2 178 0
- 16916 f369 F30F6F45 		movdqu	-128(%rbp), %xmm0
- 16916      80
- 16917 f36e F30F6F4D 		movdqu	-112(%rbp), %xmm1
- 16917      90
- 16918 f373 660FEFC1 		pxor	%xmm1, %xmm0
- 16919              	.LBE4043:
- 16920              	.LBE4042:
-1142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f2);
- 16921              		.loc 2 1142 0
- 16922 f377 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 16922      90F9FFFF 
- 16923 f37f F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 16923      90F9FFFF 
- 16924 f387 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 16924      B0
- 16925 f38c 660F6F8D 		movdqa	-1920(%rbp), %xmm1
- 16925      80F8FFFF 
- 16926 f394 F30F7F4D 		movdqu	%xmm1, -96(%rbp)
- 16926      A0
- 16927              	.LBB4044:
- 16928              	.LBB4045:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16929              		.loc 2 178 0
- 16930 f399 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 16930      A0
- 16931 f39e F30F6F4D 		movdqu	-80(%rbp), %xmm1
- 16931      B0
- 16932 f3a3 660FEFC1 		pxor	%xmm1, %xmm0
- 16933              	.LBE4045:
- 16934              	.LBE4044:
-1143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f4);
- 16935              		.loc 2 1143 0
- 16936 f3a7 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 16936      90F9FFFF 
- 16937 f3af F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 16937      90F9FFFF 
- 16938 f3b7 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 16938      D0
- 16939 f3bc 660F6F85 		movdqa	-1936(%rbp), %xmm0
- 16939      70F8FFFF 
- 16940 f3c4 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 16940      C0
- 16941              	.LBB4046:
- 16942              	.LBB4047:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 16943              		.loc 2 178 0
- 16944 f3c9 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 16944      C0
- 16945 f3ce F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 16945      D0
- 16946 f3d3 660FEFC1 		pxor	%xmm1, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 513
-
-
- 16947              	.LBE4047:
- 16948              	.LBE4046:
-1144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f8);
- 16949              		.loc 2 1144 0
- 16950 f3d7 F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 16950      90F9FFFF 
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 16951              		.loc 2 1148 0
- 16952 f3df F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 16952      90F9FFFF 
- 16953              	.LBE3944:
- 16954              	.LBE3943:
- 16955              		.loc 2 1958 0
- 16956 f3e7 660F7F03 		movdqa	%xmm0, (%rbx)
- 16957 f3eb 838588F9 		addl	$1, -1656(%rbp)
- 16957      FFFF01
- 16958              	.L240:
-1957:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     while (jx)
- 16959              		.loc 2 1957 0
- 16960 f3f2 83BD8CF9 		cmpl	$0, -1652(%rbp)
- 16960      FFFF00
- 16961 f3f9 0F85F3F0 		jne	.L259
- 16961      FFFF
-1959:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r[ix] = dr[jx];
- 16962              		.loc 2 1959 0
- 16963 f3ff 8B8588F9 		mov	-1656(%rbp), %eax
- 16963      FFFF
- 16964 f405 48C1E004 		salq	$4, %rax
- 16965 f409 480385E8 		addq	-1816(%rbp), %rax
- 16965      F8FFFF
- 16966 f410 8B958CF9 		mov	-1652(%rbp), %edx
- 16966      FFFF
- 16967 f416 48C1E204 		salq	$4, %rdx
- 16968 f41a 480395E0 		addq	-1824(%rbp), %rdx
- 16968      F8FFFF
- 16969 f421 660F6F02 		movdqa	(%rdx), %xmm0
- 16970 f425 660F7F00 		movdqa	%xmm0, (%rax)
-1960:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 16971              		.loc 2 1960 0
- 16972 f429 4881C480 		addq	$1920, %rsp
- 16972      070000
- 16973 f430 5B       		popq	%rbx
- 16974 f431 415C     		popq	%r12
- 16975 f433 415D     		popq	%r13
- 16976 f435 415E     		popq	%r14
- 16977 f437 C9       		leave
- 16978 f438 C3       		ret
- 16979              		.cfi_endproc
- 16980              	.LFE648:
- 16981              		.size	KAESBlockCipherVecRegEqInvKeyExpansion, .-KAESBlockCipherVecRegEqInvKeyExpansion
- 16982              		.type	KAESBlockCipherVecRegEqInvKeyExpansion128, @function
- 16983              	KAESBlockCipherVecRegEqInvKeyExpansion128:
- 16984              	.LFB649:
-1961:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1962:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1963:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1964:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion128) (CipherVec * w, const CipherVec * kw)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 514
-
-
-1965:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 16985              		.loc 2 1965 0
- 16986              		.cfi_startproc
- 16987 f439 55       		pushq	%rbp
- 16988              	.LCFI10:
- 16989              		.cfi_def_cfa_offset 16
- 16990 f43a 4889E5   		movq	%rsp, %rbp
- 16991              		.cfi_offset 6, -16
- 16992              	.LCFI11:
- 16993              		.cfi_def_cfa_register 6
- 16994 f43d 4883EC10 		subq	$16, %rsp
- 16995 f441 48897DF8 		movq	%rdi, -8(%rbp)
- 16996 f445 488975F0 		movq	%rsi, -16(%rbp)
-1966:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_128);
- 16997              		.loc 2 1966 0
- 16998 f449 488B4DF0 		movq	-16(%rbp), %rcx
- 16999 f44d 488B45F8 		movq	-8(%rbp), %rax
- 17000 f451 BA0A0000 		movl	$10, %edx
- 17000      00
- 17001 f456 4889CE   		movq	%rcx, %rsi
- 17002 f459 4889C7   		movq	%rax, %rdi
- 17003 f45c E818F0FF 		call	KAESBlockCipherVecRegEqInvKeyExpansion
- 17003      FF
-1967:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 17004              		.loc 2 1967 0
- 17005 f461 C9       		leave
- 17006 f462 C3       		ret
- 17007              		.cfi_endproc
- 17008              	.LFE649:
- 17009              		.size	KAESBlockCipherVecRegEqInvKeyExpansion128, .-KAESBlockCipherVecRegEqInvKeyExpansion128
- 17010              		.type	KAESBlockCipherVecRegEqInvKeyExpansion192, @function
- 17011              	KAESBlockCipherVecRegEqInvKeyExpansion192:
- 17012              	.LFB650:
-1968:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1969:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1970:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1971:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion192) (CipherVec * w, const CipherVec * kw)
-1972:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 17013              		.loc 2 1972 0
- 17014              		.cfi_startproc
- 17015 f463 55       		pushq	%rbp
- 17016              	.LCFI12:
- 17017              		.cfi_def_cfa_offset 16
- 17018 f464 4889E5   		movq	%rsp, %rbp
- 17019              		.cfi_offset 6, -16
- 17020              	.LCFI13:
- 17021              		.cfi_def_cfa_register 6
- 17022 f467 4883EC10 		subq	$16, %rsp
- 17023 f46b 48897DF8 		movq	%rdi, -8(%rbp)
- 17024 f46f 488975F0 		movq	%rsi, -16(%rbp)
-1973:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_192);
- 17025              		.loc 2 1973 0
- 17026 f473 488B4DF0 		movq	-16(%rbp), %rcx
- 17027 f477 488B45F8 		movq	-8(%rbp), %rax
- 17028 f47b BA0C0000 		movl	$12, %edx
- 17028      00
- 17029 f480 4889CE   		movq	%rcx, %rsi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 515
-
-
- 17030 f483 4889C7   		movq	%rax, %rdi
- 17031 f486 E8EEEFFF 		call	KAESBlockCipherVecRegEqInvKeyExpansion
- 17031      FF
-1974:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 17032              		.loc 2 1974 0
- 17033 f48b C9       		leave
- 17034 f48c C3       		ret
- 17035              		.cfi_endproc
- 17036              	.LFE650:
- 17037              		.size	KAESBlockCipherVecRegEqInvKeyExpansion192, .-KAESBlockCipherVecRegEqInvKeyExpansion192
- 17038              		.type	KAESBlockCipherVecRegEqInvKeyExpansion256, @function
- 17039              	KAESBlockCipherVecRegEqInvKeyExpansion256:
- 17040              	.LFB651:
-1975:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1976:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1977:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-1978:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(EqInvKeyExpansion256) (CipherVec * w, const CipherVec * kw)
-1979:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 17041              		.loc 2 1979 0
- 17042              		.cfi_startproc
- 17043 f48d 55       		pushq	%rbp
- 17044              	.LCFI14:
- 17045              		.cfi_def_cfa_offset 16
- 17046 f48e 4889E5   		movq	%rsp, %rbp
- 17047              		.cfi_offset 6, -16
- 17048              	.LCFI15:
- 17049              		.cfi_def_cfa_register 6
- 17050 f491 4883EC10 		subq	$16, %rsp
- 17051 f495 48897DF8 		movq	%rdi, -8(%rbp)
- 17052 f499 488975F0 		movq	%rsi, -16(%rbp)
-1980:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(EqInvKeyExpansion) (w, kw, AES_Nr_256);
- 17053              		.loc 2 1980 0
- 17054 f49d 488B4DF0 		movq	-16(%rbp), %rcx
- 17055 f4a1 488B45F8 		movq	-8(%rbp), %rax
- 17056 f4a5 BA0E0000 		movl	$14, %edx
- 17056      00
- 17057 f4aa 4889CE   		movq	%rcx, %rsi
- 17058 f4ad 4889C7   		movq	%rax, %rdi
- 17059 f4b0 E8C4EFFF 		call	KAESBlockCipherVecRegEqInvKeyExpansion
- 17059      FF
-1981:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 17060              		.loc 2 1981 0
- 17061 f4b5 C9       		leave
- 17062 f4b6 C3       		ret
- 17063              		.cfi_endproc
- 17064              	.LFE651:
- 17065              		.size	KAESBlockCipherVecRegEqInvKeyExpansion256, .-KAESBlockCipherVecRegEqInvKeyExpansion256
- 17066              		.section	.rodata
- 17067              	.LC8:
- 17068 03de 53746172 		.string	"Start of Round"
- 17068      74206F66 
- 17068      20526F75 
- 17068      6E6400
- 17069              	.LC9:
- 17070 03ed 526F756E 		.string	"Round Key"
- 17070      64204B65 
- 17070      7900
-
GAS LISTING /tmp/ccjbMjHD.s 			page 516
-
-
- 17071              	.LC10:
- 17072 03f7 456E6420 		.string	"End 1st Round"
- 17072      31737420 
- 17072      526F756E 
- 17072      6400
- 17073              	.LC11:
- 17074 0405 41667465 		.string	"After SubBytes"
- 17074      72205375 
- 17074      62427974 
- 17074      657300
- 17075              	.LC12:
- 17076 0414 41667465 		.string	"After ShiftRow"
- 17076      72205368 
- 17076      69667452 
- 17076      6F7700
- 17077              	.LC13:
- 17078 0423 41667465 		.string	"After MixColum"
- 17078      72204D69 
- 17078      78436F6C 
- 17078      756D00
- 17079              	.LC14:
- 17080 0432 456E6420 		.string	"End of Round"
- 17080      6F662052 
- 17080      6F756E64 
- 17080      00
- 17081              		.text
- 17082              		.type	KAESBlockCipherVecRegCipher, @function
- 17083              	KAESBlockCipherVecRegCipher:
- 17084              	.LFB655:
-1982:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1983:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1984:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-1985:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher First Round
-1986:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-1987:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1988:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-1989:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-1990:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1991:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-1992:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(FirstRound) (CipherVec state, const CipherVec round_keys)
-1993:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-1994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
-1995:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-1997:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-1998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-1999:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End 1st Round", state);
-2001:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2003:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2004:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2005:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2006:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2007:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-2008:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     register const CipherVec round_keys)
-2009:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-
GAS LISTING /tmp/ccjbMjHD.s 			page 517
-
-
-2010:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2011:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2012:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(MiddleRound) (register CipherVec state,
-2013:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     register const CipherVec round_keys)
-2014:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2015:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2016:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mstate;
-2017:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mround_keys;
-2018:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
-2021:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", mstate);
-2023:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2024:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2025:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2026:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2027:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENC (state, round_keys);
-2028:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
-2030:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
-2032:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
-2034:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-2036:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(MixColumns) (state);
-2038:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2039:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* ommited n on purpose */
-2040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After MixColum", state);
-2041:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2043:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-2045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
-2046:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2051:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2052:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-2053:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2054:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2055:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2056:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(LastRound) (register CipherVec state, register CipherVec round_keys)
-2057:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
-2059:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2060:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2061:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESENCLAST (state, round_keys);
-2062:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
-2064:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
-2066:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 518
-
-
-2067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
-2068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
-2070:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2072:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
-2074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
-2075:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2077:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2078:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2079:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2080:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2081:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Cipher
-2082:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2083:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2084:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * 
-2085:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** This implementation as stated
-2086:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * above for simplifaction broke out the three types of rounds into
-2087:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * first round, middle rounds, and last round.  This approach was taken
-2088:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for ease of coding for optimization using smaller bytes of code
-2089:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * but inlining of the functions for efficiency
-2090:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2091:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__ 
-2092:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Cipher) (CipherVec state, const CipherVec * key,
-2093:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                             unsigned Nr)
-2094:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 17085              		.loc 2 2094 0
- 17086              		.cfi_startproc
- 17087 f4b7 55       		pushq	%rbp
- 17088              	.LCFI16:
- 17089              		.cfi_def_cfa_offset 16
- 17090 f4b8 4889E5   		movq	%rsp, %rbp
- 17091              		.cfi_offset 6, -16
- 17092              	.LCFI17:
- 17093              		.cfi_def_cfa_register 6
- 17094 f4bb 4155     		pushq	%r13
- 17095 f4bd 4154     		pushq	%r12
- 17096 f4bf 53       		pushq	%rbx
- 17097 f4c0 4881EC58 		subq	$2648, %rsp
- 17097      0A0000
- 17098 f4c7 660F7F85 		movdqa	%xmm0, -2576(%rbp)
- 17098      F0F5FFFF 
- 17099 f4cf 4889BDE8 		movq	%rdi, -2584(%rbp)
- 17099      F5FFFF
- 17100 f4d6 89B5E4F5 		movl	%esi, -2588(%rbp)
- 17100      FFFF
-2095:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
- 17101              		.loc 2 2095 0
- 17102 f4dc C7853CF7 		movl	$0, -2244(%rbp)
- 17102      FFFF0000 
- 17102      0000
-2096:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2097:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(FirstRound) (state, key[ix++]);
- 17103              		.loc 2 2097 0
- 17104 f4e6 8B853CF7 		mov	-2244(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 519
-
-
- 17104      FFFF
- 17105 f4ec 48C1E004 		salq	$4, %rax
- 17106 f4f0 480385E8 		addq	-2584(%rbp), %rax
- 17106      F5FFFF
- 17107 f4f7 660F6F00 		movdqa	(%rax), %xmm0
- 17108 f4fb 83853CF7 		addl	$1, -2244(%rbp)
- 17108      FFFF01
- 17109 f502 660F6F8D 		movdqa	-2576(%rbp), %xmm1
- 17109      F0F5FFFF 
- 17110 f50a F30F7F8D 		movdqu	%xmm1, -2224(%rbp)
- 17110      50F7FFFF 
- 17111 f512 F30F7F85 		movdqu	%xmm0, -2240(%rbp)
- 17111      40F7FFFF 
- 17112              	.LBB4199:
- 17113              	.LBB4200:
- 17114              	.LBB4201:
-1994:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
- 17115              		.loc 2 1994 0
- 17116 f51a F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 17116      50F7FFFF 
- 17117 f522 F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 17117      20F6FFFF 
- 17118              		.cfi_offset 3, -40
- 17119              		.cfi_offset 12, -32
- 17120              		.cfi_offset 13, -24
- 17121 f52a E8000000 		call	KDbgWriterGet at PLT
- 17121      00
- 17122 f52f 4885C0   		testq	%rax, %rax
- 17123 f532 7479     		je	.L269
- 17124 f534 BF010000 		movl	$1, %edi
- 17124      00
- 17125 f539 E8000000 		call	KDbgCondToFlag at PLT
- 17125      00
- 17126 f53e 4889C6   		movq	%rax, %rsi
- 17127 f541 BF100000 		movl	$16, %edi
- 17127      00
- 17128 f546 E8000000 		call	KDbgTestModConds at PLT
- 17128      00
- 17129 f54b 84C0     		testb	%al, %al
- 17130 f54d 745E     		je	.L269
- 17131 f54f 8B852CF6 		movl	-2516(%rbp), %eax
- 17131      FFFF
- 17132 f555 89C7     		movl	%eax, %edi
- 17133 f557 E8A40AFF 		call	bswap_32
- 17133      FF
- 17134 f55c 4189C5   		movl	%eax, %r13d
- 17135 f55f 8B8528F6 		movl	-2520(%rbp), %eax
- 17135      FFFF
- 17136 f565 89C7     		movl	%eax, %edi
- 17137 f567 E8940AFF 		call	bswap_32
- 17137      FF
- 17138 f56c 4189C4   		movl	%eax, %r12d
- 17139 f56f 8B8524F6 		movl	-2524(%rbp), %eax
- 17139      FFFF
- 17140 f575 89C7     		movl	%eax, %edi
- 17141 f577 E8840AFF 		call	bswap_32
- 17141      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 520
-
-
- 17142 f57c 89C3     		movl	%eax, %ebx
- 17143 f57e 8B8520F6 		movl	-2528(%rbp), %eax
- 17143      FFFF
- 17144 f584 89C7     		movl	%eax, %edi
- 17145 f586 E8750AFF 		call	bswap_32
- 17145      FF
- 17146 f58b 4589E9   		movl	%r13d, %r9d
- 17147 f58e 4589E0   		movl	%r12d, %r8d
- 17148 f591 89D9     		movl	%ebx, %ecx
- 17149 f593 89C2     		movl	%eax, %edx
- 17150 f595 488D3500 		leaq	.LC8(%rip), %rsi
- 17150      000000
- 17151 f59c 488D3D00 		leaq	.LC1(%rip), %rdi
- 17151      000000
- 17152 f5a3 B8000000 		movl	$0, %eax
- 17152      00
- 17153 f5a8 E8000000 		call	KDbgMsg at PLT
- 17153      00
- 17154              	.L269:
- 17155              	.LBE4201:
- 17156              	.LBB4202:
-1996:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 17157              		.loc 2 1996 0
- 17158 f5ad F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 17158      40F7FFFF 
- 17159 f5b5 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 17159      10F6FFFF 
- 17160 f5bd E8000000 		call	KDbgWriterGet at PLT
- 17160      00
- 17161 f5c2 4885C0   		testq	%rax, %rax
- 17162 f5c5 7479     		je	.L271
- 17163 f5c7 BF010000 		movl	$1, %edi
- 17163      00
- 17164 f5cc E8000000 		call	KDbgCondToFlag at PLT
- 17164      00
- 17165 f5d1 4889C6   		movq	%rax, %rsi
- 17166 f5d4 BF100000 		movl	$16, %edi
- 17166      00
- 17167 f5d9 E8000000 		call	KDbgTestModConds at PLT
- 17167      00
- 17168 f5de 84C0     		testb	%al, %al
- 17169 f5e0 745E     		je	.L271
- 17170 f5e2 8B851CF6 		movl	-2532(%rbp), %eax
- 17170      FFFF
- 17171 f5e8 89C7     		movl	%eax, %edi
- 17172 f5ea E8110AFF 		call	bswap_32
- 17172      FF
- 17173 f5ef 4189C5   		movl	%eax, %r13d
- 17174 f5f2 8B8518F6 		movl	-2536(%rbp), %eax
- 17174      FFFF
- 17175 f5f8 89C7     		movl	%eax, %edi
- 17176 f5fa E8010AFF 		call	bswap_32
- 17176      FF
- 17177 f5ff 4189C4   		movl	%eax, %r12d
- 17178 f602 8B8514F6 		movl	-2540(%rbp), %eax
- 17178      FFFF
- 17179 f608 89C7     		movl	%eax, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 521
-
-
- 17180 f60a E8F109FF 		call	bswap_32
- 17180      FF
- 17181 f60f 89C3     		movl	%eax, %ebx
- 17182 f611 8B8510F6 		movl	-2544(%rbp), %eax
- 17182      FFFF
- 17183 f617 89C7     		movl	%eax, %edi
- 17184 f619 E8E209FF 		call	bswap_32
- 17184      FF
- 17185 f61e 4589E9   		movl	%r13d, %r9d
- 17186 f621 4589E0   		movl	%r12d, %r8d
- 17187 f624 89D9     		movl	%ebx, %ecx
- 17188 f626 89C2     		movl	%eax, %edx
- 17189 f628 488D3500 		leaq	.LC9(%rip), %rsi
- 17189      000000
- 17190 f62f 488D3D00 		leaq	.LC1(%rip), %rdi
- 17190      000000
- 17191 f636 B8000000 		movl	$0, %eax
- 17191      00
- 17192 f63b E8000000 		call	KDbgMsg at PLT
- 17192      00
- 17193              	.L271:
- 17194 f640 F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 17194      50F7FFFF 
- 17195 f648 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 17195      70F7FFFF 
- 17196 f650 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 17196      40F7FFFF 
- 17197 f658 F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 17197      60F7FFFF 
- 17198 f660 F30F6F85 		movdqu	-2192(%rbp), %xmm0
- 17198      70F7FFFF 
- 17199 f668 F30F7F85 		movdqu	%xmm0, -2160(%rbp)
- 17199      90F7FFFF 
- 17200 f670 F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 17200      60F7FFFF 
- 17201 f678 F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 17201      80F7FFFF 
- 17202              	.LBE4202:
- 17203              	.LBB4203:
- 17204              	.LBB4204:
- 17205              	.LBB4205:
- 17206              	.LBB4206:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 17207              		.loc 2 178 0
- 17208 f680 F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 17208      80F7FFFF 
- 17209 f688 F30F6F8D 		movdqu	-2160(%rbp), %xmm1
- 17209      90F7FFFF 
- 17210 f690 660FEFC1 		pxor	%xmm1, %xmm0
- 17211              	.LBE4206:
- 17212              	.LBE4205:
- 17213              	.LBE4204:
- 17214              	.LBE4203:
-1998:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 17215              		.loc 2 1998 0
- 17216 f694 F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 17216      50F7FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 522
-
-
- 17217              	.LBB4207:
-2000:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End 1st Round", state);
- 17218              		.loc 2 2000 0
- 17219 f69c F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 17219      50F7FFFF 
- 17220 f6a4 F30F7F85 		movdqu	%xmm0, -2560(%rbp)
- 17220      00F6FFFF 
- 17221 f6ac E8000000 		call	KDbgWriterGet at PLT
- 17221      00
- 17222 f6b1 4885C0   		testq	%rax, %rax
- 17223 f6b4 7479     		je	.L273
- 17224 f6b6 BF010000 		movl	$1, %edi
- 17224      00
- 17225 f6bb E8000000 		call	KDbgCondToFlag at PLT
- 17225      00
- 17226 f6c0 4889C6   		movq	%rax, %rsi
- 17227 f6c3 BF100000 		movl	$16, %edi
- 17227      00
- 17228 f6c8 E8000000 		call	KDbgTestModConds at PLT
- 17228      00
- 17229 f6cd 84C0     		testb	%al, %al
- 17230 f6cf 745E     		je	.L273
- 17231 f6d1 8B850CF6 		movl	-2548(%rbp), %eax
- 17231      FFFF
- 17232 f6d7 89C7     		movl	%eax, %edi
- 17233 f6d9 E82209FF 		call	bswap_32
- 17233      FF
- 17234 f6de 4189C5   		movl	%eax, %r13d
- 17235 f6e1 8B8508F6 		movl	-2552(%rbp), %eax
- 17235      FFFF
- 17236 f6e7 89C7     		movl	%eax, %edi
- 17237 f6e9 E81209FF 		call	bswap_32
- 17237      FF
- 17238 f6ee 4189C4   		movl	%eax, %r12d
- 17239 f6f1 8B8504F6 		movl	-2556(%rbp), %eax
- 17239      FFFF
- 17240 f6f7 89C7     		movl	%eax, %edi
- 17241 f6f9 E80209FF 		call	bswap_32
- 17241      FF
- 17242 f6fe 89C3     		movl	%eax, %ebx
- 17243 f700 8B8500F6 		movl	-2560(%rbp), %eax
- 17243      FFFF
- 17244 f706 89C7     		movl	%eax, %edi
- 17245 f708 E8F308FF 		call	bswap_32
- 17245      FF
- 17246 f70d 4589E9   		movl	%r13d, %r9d
- 17247 f710 4589E0   		movl	%r12d, %r8d
- 17248 f713 89D9     		movl	%ebx, %ecx
- 17249 f715 89C2     		movl	%eax, %edx
- 17250 f717 488D3500 		leaq	.LC10(%rip), %rsi
- 17250      000000
- 17251 f71e 488D3D00 		leaq	.LC1(%rip), %rdi
- 17251      000000
- 17252 f725 B8000000 		movl	$0, %eax
- 17252      00
- 17253 f72a E8000000 		call	KDbgMsg at PLT
- 17253      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 523
-
-
- 17254              	.L273:
- 17255              	.LBE4207:
-2002:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17256              		.loc 2 2002 0
- 17257 f72f F30F6F85 		movdqu	-2224(%rbp), %xmm0
- 17257      50F7FFFF 
- 17258              	.LBE4200:
- 17259              	.LBE4199:
- 17260              		.loc 2 2097 0
- 17261 f737 660F7F85 		movdqa	%xmm0, -2576(%rbp)
- 17261      F0F5FFFF 
-2098:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 17262              		.loc 2 2099 0
- 17263 f73f E9110F00 		jmp	.L274
- 17263      00
- 17264              	.L299:
-2100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(MiddleRound) (state, key[ix] );
- 17265              		.loc 2 2100 0
- 17266 f744 8B853CF7 		mov	-2244(%rbp), %eax
- 17266      FFFF
- 17267 f74a 48C1E004 		salq	$4, %rax
- 17268 f74e 480385E8 		addq	-2584(%rbp), %rax
- 17268      F5FFFF
- 17269 f755 660F6F00 		movdqa	(%rax), %xmm0
- 17270 f759 660F6F8D 		movdqa	-2576(%rbp), %xmm1
- 17270      F0F5FFFF 
- 17271 f761 F30F7F8D 		movdqu	%xmm1, -2128(%rbp)
- 17271      B0F7FFFF 
- 17272 f769 F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 17272      A0F7FFFF 
- 17273              	.LBB4208:
- 17274              	.LBB4209:
-2019:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 17275              		.loc 2 2019 0
- 17276 f771 F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 17276      B0F7FFFF 
- 17277 f779 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 17277      D0F7FFFF 
-2020:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
- 17278              		.loc 2 2020 0
- 17279 f781 F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 17279      A0F7FFFF 
- 17280 f789 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 17280      C0F7FFFF 
- 17281              	.LBB4210:
-2022:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", mstate);
- 17282              		.loc 2 2022 0
- 17283 f791 F30F6F85 		movdqu	-2096(%rbp), %xmm0
- 17283      D0F7FFFF 
- 17284 f799 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 17284      80F6FFFF 
- 17285 f7a1 E8000000 		call	KDbgWriterGet at PLT
- 17285      00
- 17286 f7a6 4885C0   		testq	%rax, %rax
- 17287 f7a9 7479     		je	.L276
- 17288 f7ab BF010000 		movl	$1, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 524
-
-
- 17288      00
- 17289 f7b0 E8000000 		call	KDbgCondToFlag at PLT
- 17289      00
- 17290 f7b5 4889C6   		movq	%rax, %rsi
- 17291 f7b8 BF100000 		movl	$16, %edi
- 17291      00
- 17292 f7bd E8000000 		call	KDbgTestModConds at PLT
- 17292      00
- 17293 f7c2 84C0     		testb	%al, %al
- 17294 f7c4 745E     		je	.L276
- 17295 f7c6 8B858CF6 		movl	-2420(%rbp), %eax
- 17295      FFFF
- 17296 f7cc 89C7     		movl	%eax, %edi
- 17297 f7ce E82D08FF 		call	bswap_32
- 17297      FF
- 17298 f7d3 4189C5   		movl	%eax, %r13d
- 17299 f7d6 8B8588F6 		movl	-2424(%rbp), %eax
- 17299      FFFF
- 17300 f7dc 89C7     		movl	%eax, %edi
- 17301 f7de E81D08FF 		call	bswap_32
- 17301      FF
- 17302 f7e3 4189C4   		movl	%eax, %r12d
- 17303 f7e6 8B8584F6 		movl	-2428(%rbp), %eax
- 17303      FFFF
- 17304 f7ec 89C7     		movl	%eax, %edi
- 17305 f7ee E80D08FF 		call	bswap_32
- 17305      FF
- 17306 f7f3 89C3     		movl	%eax, %ebx
- 17307 f7f5 8B8580F6 		movl	-2432(%rbp), %eax
- 17307      FFFF
- 17308 f7fb 89C7     		movl	%eax, %edi
- 17309 f7fd E8FE07FF 		call	bswap_32
- 17309      FF
- 17310 f802 4589E9   		movl	%r13d, %r9d
- 17311 f805 4589E0   		movl	%r12d, %r8d
- 17312 f808 89D9     		movl	%ebx, %ecx
- 17313 f80a 89C2     		movl	%eax, %edx
- 17314 f80c 488D3500 		leaq	.LC8(%rip), %rsi
- 17314      000000
- 17315 f813 488D3D00 		leaq	.LC1(%rip), %rdi
- 17315      000000
- 17316 f81a B8000000 		movl	$0, %eax
- 17316      00
- 17317 f81f E8000000 		call	KDbgMsg at PLT
- 17317      00
- 17318              	.L276:
- 17319 f824 F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 17319      B0F7FFFF 
- 17320 f82c F30F7F85 		movdqu	%xmm0, -2080(%rbp)
- 17320      E0F7FFFF 
- 17321 f834 F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 17321      E0F7FFFF 
- 17322 f83c F30F7F85 		movdqu	%xmm0, -2048(%rbp)
- 17322      00F8FFFF 
- 17323 f844 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 17323      000000
- 17324 f84b 488985F8 		movq	%rax, -2056(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 525
-
-
- 17324      F7FFFF
- 17325              	.LBE4210:
- 17326              	.LBB4211:
- 17327              	.LBB4212:
- 17328              	.LBB4213:
- 17329              	.LBB4214:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 17330              		.loc 2 851 0
- 17331 f852 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 17331      00000000 
- 17332 f85a F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 17332      20F8FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 17333              		.loc 2 854 0
- 17334 f862 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 17334      00000000 
- 17335 f86a F30F6F8D 		movdqu	-2048(%rbp), %xmm1
- 17335      00F8FFFF 
- 17336 f872 F30F7F8D 		movdqu	%xmm1, -1936(%rbp)
- 17336      70F8FFFF 
- 17337 f87a F30F7F85 		movdqu	%xmm0, -1952(%rbp)
- 17337      60F8FFFF 
- 17338              	.LBB4215:
- 17339              	.LBB4216:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 17340              		.loc 2 206 0
- 17341 f882 F30F6F85 		movdqu	-1952(%rbp), %xmm0
- 17341      60F8FFFF 
- 17342 f88a F30F6F8D 		movdqu	-1936(%rbp), %xmm1
- 17342      70F8FFFF 
- 17343 f892 660FDBC1 		pand	%xmm1, %xmm0
- 17344              	.LBE4216:
- 17345              	.LBE4215:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 17346              		.loc 2 854 0
- 17347 f896 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 17347      50F8FFFF 
- 17348 f89e F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 17348      00F8FFFF 
- 17349 f8a6 F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 17349      90F8FFFF 
- 17350              	.LBB4217:
- 17351              	.LBB4218:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 17352              		.loc 3 433 0
- 17353 f8ae F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 17353      90F8FFFF 
- 17354 f8b6 660F72D0 		psrld	$4, %xmm0
- 17354      04
- 17355              	.LBE4218:
- 17356              	.LBE4217:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 17357              		.loc 2 857 0
- 17358 f8bb F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 17358      40F8FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 17359              		.loc 2 859 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 526
-
-
- 17360 f8c3 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 17360      00000000 
- 17361 f8cb F30F6F8D 		movdqu	-1984(%rbp), %xmm1
- 17361      40F8FFFF 
- 17362 f8d3 F30F7F8D 		movdqu	%xmm1, -1872(%rbp)
- 17362      B0F8FFFF 
- 17363 f8db F30F7F85 		movdqu	%xmm0, -1888(%rbp)
- 17363      A0F8FFFF 
- 17364              	.LBB4219:
- 17365              	.LBB4220:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 17366              		.loc 2 206 0
- 17367 f8e3 F30F6F85 		movdqu	-1888(%rbp), %xmm0
- 17367      A0F8FFFF 
- 17368 f8eb F30F6F8D 		movdqu	-1872(%rbp), %xmm1
- 17368      B0F8FFFF 
- 17369 f8f3 660FDBC1 		pand	%xmm1, %xmm0
- 17370              	.LBE4220:
- 17371              	.LBE4219:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 17372              		.loc 2 859 0
- 17373 f8f7 F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 17373      40F8FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 17374              		.loc 2 866 0
- 17375 f8ff C7851CF8 		movl	$0, -2020(%rbp)
- 17375      FFFF0000 
- 17375      0000
- 17376 f909 E9BE0100 		jmp	.L277
- 17376      00
- 17377              	.L278:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 17378              		.loc 2 868 0
- 17379 f90e 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 17379      00000000 
- 17380 f916 F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 17380      D0F8FFFF 
- 17381 f91e F30F6F85 		movdqu	-1984(%rbp), %xmm0
- 17381      40F8FFFF 
- 17382 f926 F30F7F85 		movdqu	%xmm0, -1856(%rbp)
- 17382      C0F8FFFF 
- 17383 f92e F30F6F85 		movdqu	-1840(%rbp), %xmm0
- 17383      D0F8FFFF 
- 17384 f936 F30F7F85 		movdqu	%xmm0, -1808(%rbp)
- 17384      F0F8FFFF 
- 17385 f93e F30F6F85 		movdqu	-1856(%rbp), %xmm0
- 17385      C0F8FFFF 
- 17386 f946 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 17386      E0F8FFFF 
- 17387              	.LBB4221:
- 17388              	.LBB4222:
- 17389              	.LBB4223:
- 17390              	.LBB4224:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 17391              		.loc 3 529 0
- 17392 f94e F30F6F8D 		movdqu	-1824(%rbp), %xmm1
- 17392      E0F8FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 527
-
-
- 17393 f956 F30F6F85 		movdqu	-1808(%rbp), %xmm0
- 17393      F0F8FFFF 
- 17394 f95e 660F3800 		pshufb	%xmm1, %xmm0
- 17394      C1
- 17395              	.LBE4224:
- 17396              	.LBE4223:
- 17397              	.LBE4222:
- 17398              	.LBE4221:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 17399              		.loc 2 868 0
- 17400 f963 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 17400      30F8FFFF 
- 17401 f96b F30F6F85 		movdqu	-1968(%rbp), %xmm0
- 17401      50F8FFFF 
- 17402 f973 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 17402      10F9FFFF 
- 17403 f97b F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 17403      30F8FFFF 
- 17404 f983 F30F7F85 		movdqu	%xmm0, -1792(%rbp)
- 17404      00F9FFFF 
- 17405              	.LBB4225:
- 17406              	.LBB4226:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 17407              		.loc 2 234 0
- 17408 f98b F30F6F85 		movdqu	-1792(%rbp), %xmm0
- 17408      00F9FFFF 
- 17409 f993 F30F6F8D 		movdqu	-1776(%rbp), %xmm1
- 17409      10F9FFFF 
- 17410 f99b 660FEBC1 		por	%xmm1, %xmm0
- 17411              	.LBE4226:
- 17412              	.LBE4225:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 17413              		.loc 2 870 0
- 17414 f99f F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 17414      30F8FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 17415              		.loc 2 872 0
- 17416 f9a7 8B851CF8 		mov	-2020(%rbp), %eax
- 17416      FFFF
- 17417 f9ad 48C1E004 		salq	$4, %rax
- 17418 f9b1 480385F8 		addq	-2056(%rbp), %rax
- 17418      F7FFFF
- 17419 f9b8 660F6F00 		movdqa	(%rax), %xmm0
- 17420 f9bc F30F7F85 		movdqu	%xmm0, -1744(%rbp)
- 17420      30F9FFFF 
- 17421 f9c4 F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 17421      30F8FFFF 
- 17422 f9cc F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 17422      20F9FFFF 
- 17423 f9d4 F30F6F85 		movdqu	-1744(%rbp), %xmm0
- 17423      30F9FFFF 
- 17424 f9dc F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 17424      50F9FFFF 
- 17425 f9e4 F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 17425      20F9FFFF 
- 17426 f9ec F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 17426      40F9FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 528
-
-
- 17427              	.LBB4227:
- 17428              	.LBB4228:
- 17429              	.LBB4229:
- 17430              	.LBB4230:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 17431              		.loc 3 529 0
- 17432 f9f4 F30F6F8D 		movdqu	-1728(%rbp), %xmm1
- 17432      40F9FFFF 
- 17433 f9fc F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 17433      50F9FFFF 
- 17434 fa04 660F3800 		pshufb	%xmm1, %xmm0
- 17434      C1
- 17435              	.LBE4230:
- 17436              	.LBE4229:
- 17437              	.LBE4228:
- 17438              	.LBE4227:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 17439              		.loc 2 872 0
- 17440 fa09 F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 17440      30F8FFFF 
- 17441 fa11 F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 17441      20F8FFFF 
- 17442 fa19 F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 17442      70F9FFFF 
- 17443 fa21 F30F6F85 		movdqu	-2000(%rbp), %xmm0
- 17443      30F8FFFF 
- 17444 fa29 F30F7F85 		movdqu	%xmm0, -1696(%rbp)
- 17444      60F9FFFF 
- 17445              	.LBB4231:
- 17446              	.LBB4232:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 17447              		.loc 2 234 0
- 17448 fa31 F30F6F85 		movdqu	-1696(%rbp), %xmm0
- 17448      60F9FFFF 
- 17449 fa39 F30F6F8D 		movdqu	-1680(%rbp), %xmm1
- 17449      70F9FFFF 
- 17450 fa41 660FEBC1 		por	%xmm1, %xmm0
- 17451              	.LBE4232:
- 17452              	.LBE4231:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 17453              		.loc 2 874 0
- 17454 fa45 F30F7F85 		movdqu	%xmm0, -2016(%rbp)
- 17454      20F8FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 17455              		.loc 2 876 0
- 17456 fa4d 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 17456      00000000 
- 17457 fa55 F30F6F8D 		movdqu	-1984(%rbp), %xmm1
- 17457      40F8FFFF 
- 17458 fa5d F30F7F8D 		movdqu	%xmm1, -1648(%rbp)
- 17458      90F9FFFF 
- 17459 fa65 F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 17459      80F9FFFF 
- 17460              	.LBB4233:
- 17461              	.LBB4234:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 17462              		.loc 2 290 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 529
-
-
- 17463 fa6d F30F6F8D 		movdqu	-1664(%rbp), %xmm1
- 17463      80F9FFFF 
- 17464 fa75 F30F6F85 		movdqu	-1648(%rbp), %xmm0
- 17464      90F9FFFF 
- 17465 fa7d 660FF8C1 		psubb	%xmm1, %xmm0
- 17466              	.LBE4234:
- 17467              	.LBE4233:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 17468              		.loc 2 876 0
- 17469 fa81 F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 17469      40F8FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 17470              		.loc 2 878 0
- 17471 fa89 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 17471      00000000 
- 17472 fa91 F30F6F8D 		movdqu	-1984(%rbp), %xmm1
- 17472      40F8FFFF 
- 17473 fa99 F30F7F8D 		movdqu	%xmm1, -1616(%rbp)
- 17473      B0F9FFFF 
- 17474 faa1 F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 17474      A0F9FFFF 
- 17475              	.LBB4235:
- 17476              	.LBB4236:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 17477              		.loc 2 206 0
- 17478 faa9 F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 17478      A0F9FFFF 
- 17479 fab1 F30F6F8D 		movdqu	-1616(%rbp), %xmm1
- 17479      B0F9FFFF 
- 17480 fab9 660FDBC1 		pand	%xmm1, %xmm0
- 17481              	.LBE4236:
- 17482              	.LBE4235:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 17483              		.loc 2 878 0
- 17484 fabd F30F7F85 		movdqu	%xmm0, -1984(%rbp)
- 17484      40F8FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 17485              		.loc 2 866 0
- 17486 fac5 83851CF8 		addl	$1, -2020(%rbp)
- 17486      FFFF01
- 17487              	.L277:
- 17488 facc 83BD1CF8 		cmpl	$15, -2020(%rbp)
- 17488      FFFF0F
- 17489 fad3 0F8635FE 		jbe	.L278
- 17489      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 17490              		.loc 2 882 0
- 17491 fad9 F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 17491      20F8FFFF 
- 17492              	.LBE4214:
- 17493              	.LBE4213:
- 17494              	.LBE4212:
- 17495              	.LBE4211:
-2029:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
- 17496              		.loc 2 2029 0
- 17497 fae1 F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 17497      B0F7FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 530
-
-
- 17498              	.LBB4237:
-2031:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
- 17499              		.loc 2 2031 0
- 17500 fae9 F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 17500      B0F7FFFF 
- 17501 faf1 F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 17501      70F6FFFF 
- 17502 faf9 E8000000 		call	KDbgWriterGet at PLT
- 17502      00
- 17503 fafe 4885C0   		testq	%rax, %rax
- 17504 fb01 7479     		je	.L280
- 17505 fb03 BF010000 		movl	$1, %edi
- 17505      00
- 17506 fb08 E8000000 		call	KDbgCondToFlag at PLT
- 17506      00
- 17507 fb0d 4889C6   		movq	%rax, %rsi
- 17508 fb10 BF100000 		movl	$16, %edi
- 17508      00
- 17509 fb15 E8000000 		call	KDbgTestModConds at PLT
- 17509      00
- 17510 fb1a 84C0     		testb	%al, %al
- 17511 fb1c 745E     		je	.L280
- 17512 fb1e 8B857CF6 		movl	-2436(%rbp), %eax
- 17512      FFFF
- 17513 fb24 89C7     		movl	%eax, %edi
- 17514 fb26 E8D504FF 		call	bswap_32
- 17514      FF
- 17515 fb2b 4189C5   		movl	%eax, %r13d
- 17516 fb2e 8B8578F6 		movl	-2440(%rbp), %eax
- 17516      FFFF
- 17517 fb34 89C7     		movl	%eax, %edi
- 17518 fb36 E8C504FF 		call	bswap_32
- 17518      FF
- 17519 fb3b 4189C4   		movl	%eax, %r12d
- 17520 fb3e 8B8574F6 		movl	-2444(%rbp), %eax
- 17520      FFFF
- 17521 fb44 89C7     		movl	%eax, %edi
- 17522 fb46 E8B504FF 		call	bswap_32
- 17522      FF
- 17523 fb4b 89C3     		movl	%eax, %ebx
- 17524 fb4d 8B8570F6 		movl	-2448(%rbp), %eax
- 17524      FFFF
- 17525 fb53 89C7     		movl	%eax, %edi
- 17526 fb55 E8A604FF 		call	bswap_32
- 17526      FF
- 17527 fb5a 4589E9   		movl	%r13d, %r9d
- 17528 fb5d 4589E0   		movl	%r12d, %r8d
- 17529 fb60 89D9     		movl	%ebx, %ecx
- 17530 fb62 89C2     		movl	%eax, %edx
- 17531 fb64 488D3500 		leaq	.LC11(%rip), %rsi
- 17531      000000
- 17532 fb6b 488D3D00 		leaq	.LC1(%rip), %rdi
- 17532      000000
- 17533 fb72 B8000000 		movl	$0, %eax
- 17533      00
- 17534 fb77 E8000000 		call	KDbgMsg at PLT
- 17534      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 531
-
-
- 17535              	.L280:
- 17536 fb7c F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 17536      B0F7FFFF 
- 17537 fb84 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 17537      C0F9FFFF 
- 17538              	.LBE4237:
- 17539              	.LBB4238:
- 17540              	.LBB4239:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17541              		.loc 2 581 0
- 17542 fb8c 660F6F05 		movdqa	ShiftRowTable.7358(%rip), %xmm0
- 17542      00000000 
- 17543 fb94 F30F6F8D 		movdqu	-1600(%rbp), %xmm1
- 17543      C0F9FFFF 
- 17544 fb9c F30F7F8D 		movdqu	%xmm1, -1568(%rbp)
- 17544      E0F9FFFF 
- 17545 fba4 F30F7F85 		movdqu	%xmm0, -1584(%rbp)
- 17545      D0F9FFFF 
- 17546 fbac F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 17546      E0F9FFFF 
- 17547 fbb4 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 17547      00FAFFFF 
- 17548 fbbc F30F6F85 		movdqu	-1584(%rbp), %xmm0
- 17548      D0F9FFFF 
- 17549 fbc4 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 17549      F0F9FFFF 
- 17550              	.LBB4240:
- 17551              	.LBB4241:
- 17552              	.LBB4242:
- 17553              	.LBB4243:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 17554              		.loc 3 529 0
- 17555 fbcc F30F6F8D 		movdqu	-1552(%rbp), %xmm1
- 17555      F0F9FFFF 
- 17556 fbd4 F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 17556      00FAFFFF 
- 17557 fbdc 660F3800 		pshufb	%xmm1, %xmm0
- 17557      C1
- 17558              	.LBE4243:
- 17559              	.LBE4242:
- 17560              	.LBE4241:
- 17561              	.LBE4240:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17562              		.loc 2 581 0
- 17563 fbe1 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 17563      C0F9FFFF 
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17564              		.loc 2 582 0
- 17565 fbe9 F30F6F85 		movdqu	-1600(%rbp), %xmm0
- 17565      C0F9FFFF 
- 17566              	.LBE4239:
- 17567              	.LBE4238:
-2033:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
- 17568              		.loc 2 2033 0
- 17569 fbf1 F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 17569      B0F7FFFF 
- 17570              	.LBB4244:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 532
-
-
-2035:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
- 17571              		.loc 2 2035 0
- 17572 fbf9 F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 17572      B0F7FFFF 
- 17573 fc01 F30F7F85 		movdqu	%xmm0, -2464(%rbp)
- 17573      60F6FFFF 
- 17574 fc09 E8000000 		call	KDbgWriterGet at PLT
- 17574      00
- 17575 fc0e 4885C0   		testq	%rax, %rax
- 17576 fc11 7479     		je	.L282
- 17577 fc13 BF010000 		movl	$1, %edi
- 17577      00
- 17578 fc18 E8000000 		call	KDbgCondToFlag at PLT
- 17578      00
- 17579 fc1d 4889C6   		movq	%rax, %rsi
- 17580 fc20 BF100000 		movl	$16, %edi
- 17580      00
- 17581 fc25 E8000000 		call	KDbgTestModConds at PLT
- 17581      00
- 17582 fc2a 84C0     		testb	%al, %al
- 17583 fc2c 745E     		je	.L282
- 17584 fc2e 8B856CF6 		movl	-2452(%rbp), %eax
- 17584      FFFF
- 17585 fc34 89C7     		movl	%eax, %edi
- 17586 fc36 E8C503FF 		call	bswap_32
- 17586      FF
- 17587 fc3b 4189C5   		movl	%eax, %r13d
- 17588 fc3e 8B8568F6 		movl	-2456(%rbp), %eax
- 17588      FFFF
- 17589 fc44 89C7     		movl	%eax, %edi
- 17590 fc46 E8B503FF 		call	bswap_32
- 17590      FF
- 17591 fc4b 4189C4   		movl	%eax, %r12d
- 17592 fc4e 8B8564F6 		movl	-2460(%rbp), %eax
- 17592      FFFF
- 17593 fc54 89C7     		movl	%eax, %edi
- 17594 fc56 E8A503FF 		call	bswap_32
- 17594      FF
- 17595 fc5b 89C3     		movl	%eax, %ebx
- 17596 fc5d 8B8560F6 		movl	-2464(%rbp), %eax
- 17596      FFFF
- 17597 fc63 89C7     		movl	%eax, %edi
- 17598 fc65 E89603FF 		call	bswap_32
- 17598      FF
- 17599 fc6a 4589E9   		movl	%r13d, %r9d
- 17600 fc6d 4589E0   		movl	%r12d, %r8d
- 17601 fc70 89D9     		movl	%ebx, %ecx
- 17602 fc72 89C2     		movl	%eax, %edx
- 17603 fc74 488D3500 		leaq	.LC12(%rip), %rsi
- 17603      000000
- 17604 fc7b 488D3D00 		leaq	.LC1(%rip), %rdi
- 17604      000000
- 17605 fc82 B8000000 		movl	$0, %eax
- 17605      00
- 17606 fc87 E8000000 		call	KDbgMsg at PLT
- 17606      00
- 17607              	.L282:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 533
-
-
- 17608 fc8c F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 17608      B0F7FFFF 
- 17609 fc94 F30F7F85 		movdqu	%xmm0, -1520(%rbp)
- 17609      10FAFFFF 
- 17610 fc9c F30F6F85 		movdqu	-1520(%rbp), %xmm0
- 17610      10FAFFFF 
- 17611 fca4 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 17611      20FAFFFF 
- 17612              	.LBE4244:
- 17613              	.LBB4245:
- 17614              	.LBB4246:
- 17615              	.LBB4247:
- 17616              	.LBB4248:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17617              		.loc 2 667 0
- 17618 fcac 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 17618      00000000 
- 17619 fcb4 F30F6F8D 		movdqu	-1504(%rbp), %xmm1
- 17619      20FAFFFF 
- 17620 fcbc F30F7F8D 		movdqu	%xmm1, -1472(%rbp)
- 17620      40FAFFFF 
- 17621 fcc4 F30F7F85 		movdqu	%xmm0, -1488(%rbp)
- 17621      30FAFFFF 
- 17622 fccc F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 17622      40FAFFFF 
- 17623 fcd4 F30F7F85 		movdqu	%xmm0, -1440(%rbp)
- 17623      60FAFFFF 
- 17624 fcdc F30F6F85 		movdqu	-1488(%rbp), %xmm0
- 17624      30FAFFFF 
- 17625 fce4 F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 17625      50FAFFFF 
- 17626              	.LBB4249:
- 17627              	.LBB4250:
- 17628              	.LBB4251:
- 17629              	.LBB4252:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 17630              		.loc 3 529 0
- 17631 fcec F30F6F8D 		movdqu	-1456(%rbp), %xmm1
- 17631      50FAFFFF 
- 17632 fcf4 F30F6F85 		movdqu	-1440(%rbp), %xmm0
- 17632      60FAFFFF 
- 17633 fcfc 660F3800 		pshufb	%xmm1, %xmm0
- 17633      C1
- 17634              	.LBE4252:
- 17635              	.LBE4251:
- 17636              	.LBE4250:
- 17637              	.LBE4249:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17638              		.loc 2 667 0
- 17639 fd01 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 17639      20FAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17640              		.loc 2 668 0
- 17641 fd09 F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 17641      20FAFFFF 
- 17642              	.LBE4248:
- 17643              	.LBE4247:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 534
-
-
-1047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(RotBytesLeft) (state);
- 17644              		.loc 2 1047 0
- 17645 fd11 660F7F85 		movdqa	%xmm0, -2624(%rbp)
- 17645      C0F5FFFF 
- 17646 fd19 660F6F85 		movdqa	-2624(%rbp), %xmm0
- 17646      C0F5FFFF 
- 17647 fd21 F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 17647      70FAFFFF 
- 17648              	.LBB4253:
- 17649              	.LBB4254:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17650              		.loc 2 667 0
- 17651 fd29 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 17651      00000000 
- 17652 fd31 F30F6F8D 		movdqu	-1424(%rbp), %xmm1
- 17652      70FAFFFF 
- 17653 fd39 F30F7F8D 		movdqu	%xmm1, -1392(%rbp)
- 17653      90FAFFFF 
- 17654 fd41 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 17654      80FAFFFF 
- 17655 fd49 F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 17655      90FAFFFF 
- 17656 fd51 F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 17656      B0FAFFFF 
- 17657 fd59 F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 17657      80FAFFFF 
- 17658 fd61 F30F7F85 		movdqu	%xmm0, -1376(%rbp)
- 17658      A0FAFFFF 
- 17659              	.LBB4255:
- 17660              	.LBB4256:
- 17661              	.LBB4257:
- 17662              	.LBB4258:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 17663              		.loc 3 529 0
- 17664 fd69 F30F6F8D 		movdqu	-1376(%rbp), %xmm1
- 17664      A0FAFFFF 
- 17665 fd71 F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 17665      B0FAFFFF 
- 17666 fd79 660F3800 		pshufb	%xmm1, %xmm0
- 17666      C1
- 17667              	.LBE4258:
- 17668              	.LBE4257:
- 17669              	.LBE4256:
- 17670              	.LBE4255:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17671              		.loc 2 667 0
- 17672 fd7e F30F7F85 		movdqu	%xmm0, -1424(%rbp)
- 17672      70FAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17673              		.loc 2 668 0
- 17674 fd86 F30F6F85 		movdqu	-1424(%rbp), %xmm0
- 17674      70FAFFFF 
- 17675              	.LBE4254:
- 17676              	.LBE4253:
-1048:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c2 = AESBCMEMBER(RotBytesLeft) (c1);
- 17677              		.loc 2 1048 0
- 17678 fd8e 660F7F85 		movdqa	%xmm0, -2640(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 535
-
-
- 17678      B0F5FFFF 
- 17679 fd96 660F6F8D 		movdqa	-2640(%rbp), %xmm1
- 17679      B0F5FFFF 
- 17680 fd9e F30F7F8D 		movdqu	%xmm1, -1344(%rbp)
- 17680      C0FAFFFF 
- 17681              	.LBB4259:
- 17682              	.LBB4260:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17683              		.loc 2 667 0
- 17684 fda6 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 17684      00000000 
- 17685 fdae F30F6F8D 		movdqu	-1344(%rbp), %xmm1
- 17685      C0FAFFFF 
- 17686 fdb6 F30F7F8D 		movdqu	%xmm1, -1312(%rbp)
- 17686      E0FAFFFF 
- 17687 fdbe F30F7F85 		movdqu	%xmm0, -1328(%rbp)
- 17687      D0FAFFFF 
- 17688 fdc6 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 17688      E0FAFFFF 
- 17689 fdce F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 17689      00FBFFFF 
- 17690 fdd6 F30F6F85 		movdqu	-1328(%rbp), %xmm0
- 17690      D0FAFFFF 
- 17691 fdde F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 17691      F0FAFFFF 
- 17692              	.LBB4261:
- 17693              	.LBB4262:
- 17694              	.LBB4263:
- 17695              	.LBB4264:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 17696              		.loc 3 529 0
- 17697 fde6 F30F6F8D 		movdqu	-1296(%rbp), %xmm1
- 17697      F0FAFFFF 
- 17698 fdee F30F6F85 		movdqu	-1280(%rbp), %xmm0
- 17698      00FBFFFF 
- 17699 fdf6 660F3800 		pshufb	%xmm1, %xmm0
- 17699      C1
- 17700              	.LBE4264:
- 17701              	.LBE4263:
- 17702              	.LBE4262:
- 17703              	.LBE4261:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 17704              		.loc 2 667 0
- 17705 fdfb F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 17705      C0FAFFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 17706              		.loc 2 668 0
- 17707 fe03 F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 17707      C0FAFFFF 
- 17708              	.LBE4260:
- 17709              	.LBE4259:
-1049:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c3 = AESBCMEMBER(RotBytesLeft) (c2);
- 17710              		.loc 2 1049 0
- 17711 fe0b 660F7F85 		movdqa	%xmm0, -2656(%rbp)
- 17711      A0F5FFFF 
- 17712 fe13 F30F6F85 		movdqu	-1520(%rbp), %xmm0
- 17712      10FAFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 536
-
-
- 17713 fe1b F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 17713      20FBFFFF 
- 17714 fe23 660F6F85 		movdqa	-2624(%rbp), %xmm0
- 17714      C0F5FFFF 
- 17715 fe2b F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 17715      10FBFFFF 
- 17716              	.LBB4265:
- 17717              	.LBB4266:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 17718              		.loc 2 178 0
- 17719 fe33 F30F6F85 		movdqu	-1264(%rbp), %xmm0
- 17719      10FBFFFF 
- 17720 fe3b F30F6F8D 		movdqu	-1248(%rbp), %xmm1
- 17720      20FBFFFF 
- 17721 fe43 660FEFC1 		pxor	%xmm1, %xmm0
- 17722              	.LBE4266:
- 17723              	.LBE4265:
-1050:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(VecXor) (state, c1);
- 17724              		.loc 2 1050 0
- 17725 fe47 660F7F85 		movdqa	%xmm0, -2608(%rbp)
- 17725      D0F5FFFF 
- 17726 fe4f 660F6F8D 		movdqa	-2608(%rbp), %xmm1
- 17726      D0F5FFFF 
- 17727 fe57 F30F7F8D 		movdqu	%xmm1, -1232(%rbp)
- 17727      30FBFFFF 
- 17728              	.LBB4267:
- 17729              	.LBB4268:
- 17730              	.LBB4269:
- 950:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 17731              		.loc 2 950 0
- 17732 fe5f F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 17732      30FBFFFF 
- 17733 fe67 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 17733      A0F6FFFF 
- 17734 fe6f E8000000 		call	KDbgWriterGet at PLT
- 17734      00
- 17735 fe74 4885C0   		testq	%rax, %rax
- 17736 fe77 7479     		je	.L284
- 17737 fe79 BF010000 		movl	$1, %edi
- 17737      00
- 17738 fe7e E8000000 		call	KDbgCondToFlag at PLT
- 17738      00
- 17739 fe83 4889C6   		movq	%rax, %rsi
- 17740 fe86 BF100000 		movl	$16, %edi
- 17740      00
- 17741 fe8b E8000000 		call	KDbgTestModConds at PLT
- 17741      00
- 17742 fe90 84C0     		testb	%al, %al
- 17743 fe92 745E     		je	.L284
- 17744 fe94 8B85ACF6 		movl	-2388(%rbp), %eax
- 17744      FFFF
- 17745 fe9a 89C7     		movl	%eax, %edi
- 17746 fe9c E85F01FF 		call	bswap_32
- 17746      FF
- 17747 fea1 4189C5   		movl	%eax, %r13d
- 17748 fea4 8B85A8F6 		movl	-2392(%rbp), %eax
- 17748      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 537
-
-
- 17749 feaa 89C7     		movl	%eax, %edi
- 17750 feac E84F01FF 		call	bswap_32
- 17750      FF
- 17751 feb1 4189C4   		movl	%eax, %r12d
- 17752 feb4 8B85A4F6 		movl	-2396(%rbp), %eax
- 17752      FFFF
- 17753 feba 89C7     		movl	%eax, %edi
- 17754 febc E83F01FF 		call	bswap_32
- 17754      FF
- 17755 fec1 89C3     		movl	%eax, %ebx
- 17756 fec3 8B85A0F6 		movl	-2400(%rbp), %eax
- 17756      FFFF
- 17757 fec9 89C7     		movl	%eax, %edi
- 17758 fecb E83001FF 		call	bswap_32
- 17758      FF
- 17759 fed0 4589E9   		movl	%r13d, %r9d
- 17760 fed3 4589E0   		movl	%r12d, %r8d
- 17761 fed6 89D9     		movl	%ebx, %ecx
- 17762 fed8 89C2     		movl	%eax, %edx
- 17763 feda 488D3500 		leaq	.LC5(%rip), %rsi
- 17763      000000
- 17764 fee1 488D3D00 		leaq	.LC1(%rip), %rdi
- 17764      000000
- 17765 fee8 B8000000 		movl	$0, %eax
- 17765      00
- 17766 feed E8000000 		call	KDbgMsg at PLT
- 17766      00
- 17767              	.L284:
- 17768 fef2 F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 17768      30FBFFFF 
- 17769 fefa F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 17769      50FBFFFF 
- 17770              	.LBE4269:
- 17771              	.LBB4270:
- 17772              	.LBB4271:
- 17773              	.LBB4272:
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 17774              		.loc 2 933 0
- 17775 ff02 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 17775      50FBFFFF 
- 17776 ff0a F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 17776      D0F6FFFF 
- 17777 ff12 E8000000 		call	KDbgWriterGet at PLT
- 17777      00
- 17778 ff17 4885C0   		testq	%rax, %rax
- 17779 ff1a 7479     		je	.L286
- 17780 ff1c BF010000 		movl	$1, %edi
- 17780      00
- 17781 ff21 E8000000 		call	KDbgCondToFlag at PLT
- 17781      00
- 17782 ff26 4889C6   		movq	%rax, %rsi
- 17783 ff29 BF100000 		movl	$16, %edi
- 17783      00
- 17784 ff2e E8000000 		call	KDbgTestModConds at PLT
- 17784      00
- 17785 ff33 84C0     		testb	%al, %al
- 17786 ff35 745E     		je	.L286
-
GAS LISTING /tmp/ccjbMjHD.s 			page 538
-
-
- 17787 ff37 8B85DCF6 		movl	-2340(%rbp), %eax
- 17787      FFFF
- 17788 ff3d 89C7     		movl	%eax, %edi
- 17789 ff3f E8BC00FF 		call	bswap_32
- 17789      FF
- 17790 ff44 4189C5   		movl	%eax, %r13d
- 17791 ff47 8B85D8F6 		movl	-2344(%rbp), %eax
- 17791      FFFF
- 17792 ff4d 89C7     		movl	%eax, %edi
- 17793 ff4f E8AC00FF 		call	bswap_32
- 17793      FF
- 17794 ff54 4189C4   		movl	%eax, %r12d
- 17795 ff57 8B85D4F6 		movl	-2348(%rbp), %eax
- 17795      FFFF
- 17796 ff5d 89C7     		movl	%eax, %edi
- 17797 ff5f E89C00FF 		call	bswap_32
- 17797      FF
- 17798 ff64 89C3     		movl	%eax, %ebx
- 17799 ff66 8B85D0F6 		movl	-2352(%rbp), %eax
- 17799      FFFF
- 17800 ff6c 89C7     		movl	%eax, %edi
- 17801 ff6e E88D00FF 		call	bswap_32
- 17801      FF
- 17802 ff73 4589E9   		movl	%r13d, %r9d
- 17803 ff76 4589E0   		movl	%r12d, %r8d
- 17804 ff79 89D9     		movl	%ebx, %ecx
- 17805 ff7b 89C2     		movl	%eax, %edx
- 17806 ff7d 488D3500 		leaq	.LC5(%rip), %rsi
- 17806      000000
- 17807 ff84 488D3D00 		leaq	.LC1(%rip), %rdi
- 17807      000000
- 17808 ff8b B8000000 		movl	$0, %eax
- 17808      00
- 17809 ff90 E8000000 		call	KDbgMsg at PLT
- 17809      00
- 17810              	.L286:
- 17811              	.LBE4272:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 17812              		.loc 2 934 0
- 17813 ff95 B8070000 		movl	$7, %eax
- 17813      00
- 17814 ff9a F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 17814      50FBFFFF 
- 17815 ffa2 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 17815      90FBFFFF 
- 17816 ffaa 89858CFB 		movl	%eax, -1140(%rbp)
- 17816      FFFF
- 17817 ffb0 F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 17817      90FBFFFF 
- 17818 ffb8 F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 17818      B0FBFFFF 
- 17819 ffc0 8B858CFB 		movl	-1140(%rbp), %eax
- 17819      FFFF
- 17820 ffc6 8985ACFB 		movl	%eax, -1108(%rbp)
- 17820      FFFF
- 17821              	.LBB4273:
- 17822              	.LBB4274:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 539
-
-
- 17823              	.LBB4275:
- 17824              	.LBB4276:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 17825              		.loc 3 433 0
- 17826 ffcc F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 17826      B0FBFFFF 
- 17827 ffd4 8B85ACFB 		movl	-1108(%rbp), %eax
- 17827      FFFF
- 17828 ffda 89859CF5 		movl	%eax, -2660(%rbp)
- 17828      FFFF
- 17829 ffe0 660F6E8D 		movd	-2660(%rbp), %xmm1
- 17829      9CF5FFFF 
- 17830 ffe8 660FD2C1 		psrld	%xmm1, %xmm0
- 17831              	.LBE4276:
- 17832              	.LBE4275:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 17833              		.loc 2 488 0
- 17834 ffec F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 17834      90FBFFFF 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 17835              		.loc 2 489 0
- 17836 fff4 B8080000 		movl	$8, %eax
- 17836      00
- 17837 fff9 83BD8CFB 		cmpl	$8, -1140(%rbp)
- 17837      FFFF08
- 17838 10000 0F4E858C 		cmovle	-1140(%rbp), %eax
- 17838      FBFFFF
- 17839 10007 4898     		cltq
- 17840 10009 4889C2   		movq	%rax, %rdx
- 17841 1000c 48C1E204 		salq	$4, %rdx
- 17842 10010 488D0500 		leaq	sr_mask.7327(%rip), %rax
- 17842      000000
- 17843 10017 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 17843      02
- 17844 1001c F30F6F8D 		movdqu	-1136(%rbp), %xmm1
- 17844      90FBFFFF 
- 17845 10024 F30F7F8D 		movdqu	%xmm1, -1072(%rbp)
- 17845      D0FBFFFF 
- 17846 1002c F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 17846      C0FBFFFF 
- 17847              	.LBB4277:
- 17848              	.LBB4278:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 17849              		.loc 2 206 0
- 17850 10034 F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 17850      C0FBFFFF 
- 17851 1003c F30F6F8D 		movdqu	-1072(%rbp), %xmm1
- 17851      D0FBFFFF 
- 17852 10044 660FDBC1 		pand	%xmm1, %xmm0
- 17853              	.LBE4278:
- 17854              	.LBE4277:
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 17855              		.loc 2 489 0
- 17856 10048 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 17856      90FBFFFF 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 17857              		.loc 2 490 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 540
-
-
- 17858 10050 F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 17858      90FBFFFF 
- 17859              	.LBE4274:
- 17860              	.LBE4273:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 17861              		.loc 2 934 0
- 17862 10058 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 17862      60FBFFFF 
- 17863              	.LBB4279:
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 17864              		.loc 2 935 0
- 17865 10060 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 17865      60FBFFFF 
- 17866 10068 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 17866      C0F6FFFF 
- 17867 10070 E8000000 		call	KDbgWriterGet at PLT
- 17867      00
- 17868 10075 4885C0   		testq	%rax, %rax
- 17869 10078 7479     		je	.L288
- 17870 1007a BF010000 		movl	$1, %edi
- 17870      00
- 17871 1007f E8000000 		call	KDbgCondToFlag at PLT
- 17871      00
- 17872 10084 4889C6   		movq	%rax, %rsi
- 17873 10087 BF100000 		movl	$16, %edi
- 17873      00
- 17874 1008c E8000000 		call	KDbgTestModConds at PLT
- 17874      00
- 17875 10091 84C0     		testb	%al, %al
- 17876 10093 745E     		je	.L288
- 17877 10095 8B85CCF6 		movl	-2356(%rbp), %eax
- 17877      FFFF
- 17878 1009b 89C7     		movl	%eax, %edi
- 17879 1009d E85EFFFE 		call	bswap_32
- 17879      FF
- 17880 100a2 4189C5   		movl	%eax, %r13d
- 17881 100a5 8B85C8F6 		movl	-2360(%rbp), %eax
- 17881      FFFF
- 17882 100ab 89C7     		movl	%eax, %edi
- 17883 100ad E84EFFFE 		call	bswap_32
- 17883      FF
- 17884 100b2 4189C4   		movl	%eax, %r12d
- 17885 100b5 8B85C4F6 		movl	-2364(%rbp), %eax
- 17885      FFFF
- 17886 100bb 89C7     		movl	%eax, %edi
- 17887 100bd E83EFFFE 		call	bswap_32
- 17887      FF
- 17888 100c2 89C3     		movl	%eax, %ebx
- 17889 100c4 8B85C0F6 		movl	-2368(%rbp), %eax
- 17889      FFFF
- 17890 100ca 89C7     		movl	%eax, %edi
- 17891 100cc E82FFFFE 		call	bswap_32
- 17891      FF
- 17892 100d1 4589E9   		movl	%r13d, %r9d
- 17893 100d4 4589E0   		movl	%r12d, %r8d
- 17894 100d7 89D9     		movl	%ebx, %ecx
- 17895 100d9 89C2     		movl	%eax, %edx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 541
-
-
- 17896 100db 488D3500 		leaq	.LC6(%rip), %rsi
- 17896      000000
- 17897 100e2 488D3D00 		leaq	.LC1(%rip), %rdi
- 17897      000000
- 17898 100e9 B8000000 		movl	$0, %eax
- 17898      00
- 17899 100ee E8000000 		call	KDbgMsg at PLT
- 17899      00
- 17900              	.L288:
- 17901 100f3 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 17901      50FBFFFF 
- 17902 100fb F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 17902      F0FBFFFF 
- 17903              	.LBE4279:
- 17904              	.LBB4280:
- 17905              	.LBB4281:
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 17906              		.loc 2 426 0
- 17907 10103 F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 17907      F0FBFFFF 
- 17908 1010b F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 17908      00FCFFFF 
- 17909 10113 F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 17909      00FCFFFF 
- 17910 1011b F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 17910      20FCFFFF 
- 17911              	.LBB4282:
- 17912              	.LBB4283:
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 17913              		.loc 3 416 0
- 17914 10123 F30F6F85 		movdqu	-992(%rbp), %xmm0
- 17914      20FCFFFF 
- 17915 1012b 660F72F0 		pslld	$1, %xmm0
- 17915      01
- 17916              	.LBE4283:
- 17917              	.LBE4282:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 17918              		.loc 2 433 0
- 17919 10130 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 17919      00FCFFFF 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 17920              		.loc 2 435 0
- 17921 10138 B8010000 		movl	$1, %eax
- 17921      00
- 17922 1013d 4898     		cltq
- 17923 1013f 4889C2   		movq	%rax, %rdx
- 17924 10142 48C1E204 		salq	$4, %rdx
- 17925 10146 488D0500 		leaq	sl_mask.7310(%rip), %rax
- 17925      000000
- 17926 1014d 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 17926      02
- 17927 10152 F30F6F8D 		movdqu	-1024(%rbp), %xmm1
- 17927      00FCFFFF 
- 17928 1015a F30F7F8D 		movdqu	%xmm1, -960(%rbp)
- 17928      40FCFFFF 
- 17929 10162 F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 17929      30FCFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 542
-
-
- 17930              	.LBB4284:
- 17931              	.LBB4285:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 17932              		.loc 2 206 0
- 17933 1016a F30F6F85 		movdqu	-976(%rbp), %xmm0
- 17933      30FCFFFF 
- 17934 10172 F30F6F8D 		movdqu	-960(%rbp), %xmm1
- 17934      40FCFFFF 
- 17935 1017a 660FDBC1 		pand	%xmm1, %xmm0
- 17936              	.LBE4285:
- 17937              	.LBE4284:
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 17938              		.loc 2 435 0
- 17939 1017e F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 17939      00FCFFFF 
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 17940              		.loc 2 437 0
- 17941 10186 F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 17941      00FCFFFF 
- 17942              	.LBE4281:
- 17943              	.LBE4280:
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 17944              		.loc 2 936 0
- 17945 1018e F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 17945      70FBFFFF 
- 17946              	.LBB4286:
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 17947              		.loc 2 937 0
- 17948 10196 F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 17948      70FBFFFF 
- 17949 1019e F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 17949      B0F6FFFF 
- 17950 101a6 E8000000 		call	KDbgWriterGet at PLT
- 17950      00
- 17951 101ab 4885C0   		testq	%rax, %rax
- 17952 101ae 7479     		je	.L290
- 17953 101b0 BF010000 		movl	$1, %edi
- 17953      00
- 17954 101b5 E8000000 		call	KDbgCondToFlag at PLT
- 17954      00
- 17955 101ba 4889C6   		movq	%rax, %rsi
- 17956 101bd BF100000 		movl	$16, %edi
- 17956      00
- 17957 101c2 E8000000 		call	KDbgTestModConds at PLT
- 17957      00
- 17958 101c7 84C0     		testb	%al, %al
- 17959 101c9 745E     		je	.L290
- 17960 101cb 8B85BCF6 		movl	-2372(%rbp), %eax
- 17960      FFFF
- 17961 101d1 89C7     		movl	%eax, %edi
- 17962 101d3 E828FEFE 		call	bswap_32
- 17962      FF
- 17963 101d8 4189C5   		movl	%eax, %r13d
- 17964 101db 8B85B8F6 		movl	-2376(%rbp), %eax
- 17964      FFFF
- 17965 101e1 89C7     		movl	%eax, %edi
- 17966 101e3 E818FEFE 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 543
-
-
- 17966      FF
- 17967 101e8 4189C4   		movl	%eax, %r12d
- 17968 101eb 8B85B4F6 		movl	-2380(%rbp), %eax
- 17968      FFFF
- 17969 101f1 89C7     		movl	%eax, %edi
- 17970 101f3 E808FEFE 		call	bswap_32
- 17970      FF
- 17971 101f8 89C3     		movl	%eax, %ebx
- 17972 101fa 8B85B0F6 		movl	-2384(%rbp), %eax
- 17972      FFFF
- 17973 10200 89C7     		movl	%eax, %edi
- 17974 10202 E8F9FDFE 		call	bswap_32
- 17974      FF
- 17975 10207 4589E9   		movl	%r13d, %r9d
- 17976 1020a 4589E0   		movl	%r12d, %r8d
- 17977 1020d 89D9     		movl	%ebx, %ecx
- 17978 1020f 89C2     		movl	%eax, %edx
- 17979 10211 488D3500 		leaq	.LC7(%rip), %rsi
- 17979      000000
- 17980 10218 488D3D00 		leaq	.LC1(%rip), %rdi
- 17980      000000
- 17981 1021f B8000000 		movl	$0, %eax
- 17981      00
- 17982 10224 E8000000 		call	KDbgMsg at PLT
- 17982      00
- 17983              	.L290:
- 17984              	.LBE4286:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 17985              		.loc 2 938 0
- 17986 10229 660F6F05 		movdqa	FF_tab(%rip), %xmm0
- 17986      00000000 
- 17987 10231 F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 17987      60FCFFFF 
- 17988 10239 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 17988      60FBFFFF 
- 17989 10241 F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 17989      50FCFFFF 
- 17990 10249 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 17990      60FCFFFF 
- 17991 10251 F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 17991      80FCFFFF 
- 17992 10259 F30F6F85 		movdqu	-944(%rbp), %xmm0
- 17992      50FCFFFF 
- 17993 10261 F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 17993      70FCFFFF 
- 17994              	.LBB4287:
- 17995              	.LBB4288:
- 17996              	.LBB4289:
- 17997              	.LBB4290:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 17998              		.loc 3 529 0
- 17999 10269 F30F6F8D 		movdqu	-912(%rbp), %xmm1
- 17999      70FCFFFF 
- 18000 10271 F30F6F85 		movdqu	-896(%rbp), %xmm0
- 18000      80FCFFFF 
- 18001 10279 660F3800 		pshufb	%xmm1, %xmm0
- 18001      C1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 544
-
-
- 18002              	.LBE4290:
- 18003              	.LBE4289:
- 18004              	.LBE4288:
- 18005              	.LBE4287:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 18006              		.loc 2 938 0
- 18007 1027e F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 18007      60FBFFFF 
- 18008 10286 F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 18008      70FBFFFF 
- 18009 1028e F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 18009      A0FCFFFF 
- 18010 10296 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 18010      60FBFFFF 
- 18011 1029e F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 18011      90FCFFFF 
- 18012              	.LBB4291:
- 18013              	.LBB4292:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18014              		.loc 2 178 0
- 18015 102a6 F30F6F85 		movdqu	-880(%rbp), %xmm0
- 18015      90FCFFFF 
- 18016 102ae F30F6F8D 		movdqu	-864(%rbp), %xmm1
- 18016      A0FCFFFF 
- 18017 102b6 660FEFC1 		pxor	%xmm1, %xmm0
- 18018              	.LBE4292:
- 18019              	.LBE4291:
- 18020              	.LBE4271:
- 18021              	.LBE4270:
- 952:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(FF_mul) (state, 1);
- 18022              		.loc 2 952 0
- 18023 102ba F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 18023      30FBFFFF 
- 18024              	.LBB4293:
- 953:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 18025              		.loc 2 953 0
- 18026 102c2 F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 18026      30FBFFFF 
- 18027 102ca F30F7F85 		movdqu	%xmm0, -2416(%rbp)
- 18027      90F6FFFF 
- 18028 102d2 E8000000 		call	KDbgWriterGet at PLT
- 18028      00
- 18029 102d7 4885C0   		testq	%rax, %rax
- 18030 102da 7479     		je	.L292
- 18031 102dc BF010000 		movl	$1, %edi
- 18031      00
- 18032 102e1 E8000000 		call	KDbgCondToFlag at PLT
- 18032      00
- 18033 102e6 4889C6   		movq	%rax, %rsi
- 18034 102e9 BF100000 		movl	$16, %edi
- 18034      00
- 18035 102ee E8000000 		call	KDbgTestModConds at PLT
- 18035      00
- 18036 102f3 84C0     		testb	%al, %al
- 18037 102f5 745E     		je	.L292
- 18038 102f7 8B859CF6 		movl	-2404(%rbp), %eax
- 18038      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 545
-
-
- 18039 102fd 89C7     		movl	%eax, %edi
- 18040 102ff E8FCFCFE 		call	bswap_32
- 18040      FF
- 18041 10304 4189C5   		movl	%eax, %r13d
- 18042 10307 8B8598F6 		movl	-2408(%rbp), %eax
- 18042      FFFF
- 18043 1030d 89C7     		movl	%eax, %edi
- 18044 1030f E8ECFCFE 		call	bswap_32
- 18044      FF
- 18045 10314 4189C4   		movl	%eax, %r12d
- 18046 10317 8B8594F6 		movl	-2412(%rbp), %eax
- 18046      FFFF
- 18047 1031d 89C7     		movl	%eax, %edi
- 18048 1031f E8DCFCFE 		call	bswap_32
- 18048      FF
- 18049 10324 89C3     		movl	%eax, %ebx
- 18050 10326 8B8590F6 		movl	-2416(%rbp), %eax
- 18050      FFFF
- 18051 1032c 89C7     		movl	%eax, %edi
- 18052 1032e E8CDFCFE 		call	bswap_32
- 18052      FF
- 18053 10333 4589E9   		movl	%r13d, %r9d
- 18054 10336 4589E0   		movl	%r12d, %r8d
- 18055 10339 89D9     		movl	%ebx, %ecx
- 18056 1033b 89C2     		movl	%eax, %edx
- 18057 1033d 488D3500 		leaq	.LC5(%rip), %rsi
- 18057      000000
- 18058 10344 488D3D00 		leaq	.LC1(%rip), %rdi
- 18058      000000
- 18059 1034b B8000000 		movl	$0, %eax
- 18059      00
- 18060 10350 E8000000 		call	KDbgMsg at PLT
- 18060      00
- 18061              	.L292:
- 18062              	.LBE4293:
- 955:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18063              		.loc 2 955 0
- 18064 10355 F30F6F85 		movdqu	-1232(%rbp), %xmm0
- 18064      30FBFFFF 
- 18065              	.LBE4268:
- 18066              	.LBE4267:
-1054:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c0 = AESBCMEMBER(FF_mul_02) (c0);
- 18067              		.loc 2 1054 0
- 18068 1035d 660F7F85 		movdqa	%xmm0, -2608(%rbp)
- 18068      D0F5FFFF 
- 18069 10365 660F6F85 		movdqa	-2624(%rbp), %xmm0
- 18069      C0F5FFFF 
- 18070 1036d F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 18070      C0FCFFFF 
- 18071 10375 660F6F8D 		movdqa	-2640(%rbp), %xmm1
- 18071      B0F5FFFF 
- 18072 1037d F30F7F8D 		movdqu	%xmm1, -848(%rbp)
- 18072      B0FCFFFF 
- 18073              	.LBB4294:
- 18074              	.LBB4295:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18075              		.loc 2 178 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 546
-
-
- 18076 10385 F30F6F85 		movdqu	-848(%rbp), %xmm0
- 18076      B0FCFFFF 
- 18077 1038d F30F6F8D 		movdqu	-832(%rbp), %xmm1
- 18077      C0FCFFFF 
- 18078 10395 660FEFC1 		pxor	%xmm1, %xmm0
- 18079              	.LBE4295:
- 18080              	.LBE4294:
-1067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c2);
- 18081              		.loc 2 1067 0
- 18082 10399 660F7F85 		movdqa	%xmm0, -2624(%rbp)
- 18082      C0F5FFFF 
- 18083 103a1 660F6F85 		movdqa	-2624(%rbp), %xmm0
- 18083      C0F5FFFF 
- 18084 103a9 F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 18084      E0FCFFFF 
- 18085 103b1 660F6F8D 		movdqa	-2656(%rbp), %xmm1
- 18085      A0F5FFFF 
- 18086 103b9 F30F7F8D 		movdqu	%xmm1, -816(%rbp)
- 18086      D0FCFFFF 
- 18087              	.LBB4296:
- 18088              	.LBB4297:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18089              		.loc 2 178 0
- 18090 103c1 F30F6F85 		movdqu	-816(%rbp), %xmm0
- 18090      D0FCFFFF 
- 18091 103c9 F30F6F8D 		movdqu	-800(%rbp), %xmm1
- 18091      E0FCFFFF 
- 18092 103d1 660FEFC1 		pxor	%xmm1, %xmm0
- 18093              	.LBE4297:
- 18094              	.LBE4296:
-1068:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c3);
- 18095              		.loc 2 1068 0
- 18096 103d5 660F7F85 		movdqa	%xmm0, -2624(%rbp)
- 18096      C0F5FFFF 
- 18097 103dd 660F6F85 		movdqa	-2624(%rbp), %xmm0
- 18097      C0F5FFFF 
- 18098 103e5 F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 18098      00FDFFFF 
- 18099 103ed 660F6F8D 		movdqa	-2608(%rbp), %xmm1
- 18099      D0F5FFFF 
- 18100 103f5 F30F7F8D 		movdqu	%xmm1, -784(%rbp)
- 18100      F0FCFFFF 
- 18101              	.LBB4298:
- 18102              	.LBB4299:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18103              		.loc 2 178 0
- 18104 103fd F30F6F85 		movdqu	-784(%rbp), %xmm0
- 18104      F0FCFFFF 
- 18105 10405 F30F6F8D 		movdqu	-768(%rbp), %xmm1
- 18105      00FDFFFF 
- 18106 1040d 660FEFC1 		pxor	%xmm1, %xmm0
- 18107              	.LBE4299:
- 18108              	.LBE4298:
-1069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     c1 = AESBCMEMBER(VecXor) (c1, c0);
- 18109              		.loc 2 1069 0
- 18110 10411 660F7F85 		movdqa	%xmm0, -2624(%rbp)
- 18110      C0F5FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 547
-
-
-1071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return c1;
- 18111              		.loc 2 1071 0
- 18112 10419 660F6F85 		movdqa	-2624(%rbp), %xmm0
- 18112      C0F5FFFF 
- 18113              	.LBE4246:
- 18114              	.LBE4245:
-2037:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(MixColumns) (state);
- 18115              		.loc 2 2037 0
- 18116 10421 F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 18116      B0F7FFFF 
- 18117              	.LBB4300:
-2040:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After MixColum", state);
- 18118              		.loc 2 2040 0
- 18119 10429 F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 18119      B0F7FFFF 
- 18120 10431 F30F7F85 		movdqu	%xmm0, -2480(%rbp)
- 18120      50F6FFFF 
- 18121 10439 E8000000 		call	KDbgWriterGet at PLT
- 18121      00
- 18122 1043e 4885C0   		testq	%rax, %rax
- 18123 10441 7479     		je	.L294
- 18124 10443 BF010000 		movl	$1, %edi
- 18124      00
- 18125 10448 E8000000 		call	KDbgCondToFlag at PLT
- 18125      00
- 18126 1044d 4889C6   		movq	%rax, %rsi
- 18127 10450 BF100000 		movl	$16, %edi
- 18127      00
- 18128 10455 E8000000 		call	KDbgTestModConds at PLT
- 18128      00
- 18129 1045a 84C0     		testb	%al, %al
- 18130 1045c 745E     		je	.L294
- 18131 1045e 8B855CF6 		movl	-2468(%rbp), %eax
- 18131      FFFF
- 18132 10464 89C7     		movl	%eax, %edi
- 18133 10466 E895FBFE 		call	bswap_32
- 18133      FF
- 18134 1046b 4189C5   		movl	%eax, %r13d
- 18135 1046e 8B8558F6 		movl	-2472(%rbp), %eax
- 18135      FFFF
- 18136 10474 89C7     		movl	%eax, %edi
- 18137 10476 E885FBFE 		call	bswap_32
- 18137      FF
- 18138 1047b 4189C4   		movl	%eax, %r12d
- 18139 1047e 8B8554F6 		movl	-2476(%rbp), %eax
- 18139      FFFF
- 18140 10484 89C7     		movl	%eax, %edi
- 18141 10486 E875FBFE 		call	bswap_32
- 18141      FF
- 18142 1048b 89C3     		movl	%eax, %ebx
- 18143 1048d 8B8550F6 		movl	-2480(%rbp), %eax
- 18143      FFFF
- 18144 10493 89C7     		movl	%eax, %edi
- 18145 10495 E866FBFE 		call	bswap_32
- 18145      FF
- 18146 1049a 4589E9   		movl	%r13d, %r9d
- 18147 1049d 4589E0   		movl	%r12d, %r8d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 548
-
-
- 18148 104a0 89D9     		movl	%ebx, %ecx
- 18149 104a2 89C2     		movl	%eax, %edx
- 18150 104a4 488D3500 		leaq	.LC13(%rip), %rsi
- 18150      000000
- 18151 104ab 488D3D00 		leaq	.LC1(%rip), %rdi
- 18151      000000
- 18152 104b2 B8000000 		movl	$0, %eax
- 18152      00
- 18153 104b7 E8000000 		call	KDbgMsg at PLT
- 18153      00
- 18154              	.L294:
- 18155 104bc F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 18155      B0F7FFFF 
- 18156 104c4 F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 18156      20FDFFFF 
- 18157 104cc F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 18157      A0F7FFFF 
- 18158 104d4 F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 18158      10FDFFFF 
- 18159 104dc F30F6F85 		movdqu	-736(%rbp), %xmm0
- 18159      20FDFFFF 
- 18160 104e4 F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 18160      40FDFFFF 
- 18161 104ec F30F6F85 		movdqu	-752(%rbp), %xmm0
- 18161      10FDFFFF 
- 18162 104f4 F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 18162      30FDFFFF 
- 18163              	.LBE4300:
- 18164              	.LBB4301:
- 18165              	.LBB4302:
- 18166              	.LBB4303:
- 18167              	.LBB4304:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18168              		.loc 2 178 0
- 18169 104fc F30F6F85 		movdqu	-720(%rbp), %xmm0
- 18169      30FDFFFF 
- 18170 10504 F30F6F8D 		movdqu	-704(%rbp), %xmm1
- 18170      40FDFFFF 
- 18171 1050c 660FEFC1 		pxor	%xmm1, %xmm0
- 18172              	.LBE4304:
- 18173              	.LBE4303:
- 18174              	.LBE4302:
- 18175              	.LBE4301:
-2042:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 18176              		.loc 2 2042 0
- 18177 10510 F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 18177      B0F7FFFF 
- 18178              	.LBB4305:
-2044:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 18179              		.loc 2 2044 0
- 18180 10518 F30F6F85 		movdqu	-2144(%rbp), %xmm0
- 18180      A0F7FFFF 
- 18181 10520 F30F7F85 		movdqu	%xmm0, -2496(%rbp)
- 18181      40F6FFFF 
- 18182 10528 E8000000 		call	KDbgWriterGet at PLT
- 18182      00
- 18183 1052d 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 549
-
-
- 18184 10530 7479     		je	.L296
- 18185 10532 BF010000 		movl	$1, %edi
- 18185      00
- 18186 10537 E8000000 		call	KDbgCondToFlag at PLT
- 18186      00
- 18187 1053c 4889C6   		movq	%rax, %rsi
- 18188 1053f BF100000 		movl	$16, %edi
- 18188      00
- 18189 10544 E8000000 		call	KDbgTestModConds at PLT
- 18189      00
- 18190 10549 84C0     		testb	%al, %al
- 18191 1054b 745E     		je	.L296
- 18192 1054d 8B854CF6 		movl	-2484(%rbp), %eax
- 18192      FFFF
- 18193 10553 89C7     		movl	%eax, %edi
- 18194 10555 E8A6FAFE 		call	bswap_32
- 18194      FF
- 18195 1055a 4189C5   		movl	%eax, %r13d
- 18196 1055d 8B8548F6 		movl	-2488(%rbp), %eax
- 18196      FFFF
- 18197 10563 89C7     		movl	%eax, %edi
- 18198 10565 E896FAFE 		call	bswap_32
- 18198      FF
- 18199 1056a 4189C4   		movl	%eax, %r12d
- 18200 1056d 8B8544F6 		movl	-2492(%rbp), %eax
- 18200      FFFF
- 18201 10573 89C7     		movl	%eax, %edi
- 18202 10575 E886FAFE 		call	bswap_32
- 18202      FF
- 18203 1057a 89C3     		movl	%eax, %ebx
- 18204 1057c 8B8540F6 		movl	-2496(%rbp), %eax
- 18204      FFFF
- 18205 10582 89C7     		movl	%eax, %edi
- 18206 10584 E877FAFE 		call	bswap_32
- 18206      FF
- 18207 10589 4589E9   		movl	%r13d, %r9d
- 18208 1058c 4589E0   		movl	%r12d, %r8d
- 18209 1058f 89D9     		movl	%ebx, %ecx
- 18210 10591 89C2     		movl	%eax, %edx
- 18211 10593 488D3500 		leaq	.LC9(%rip), %rsi
- 18211      000000
- 18212 1059a 488D3D00 		leaq	.LC1(%rip), %rdi
- 18212      000000
- 18213 105a1 B8000000 		movl	$0, %eax
- 18213      00
- 18214 105a6 E8000000 		call	KDbgMsg at PLT
- 18214      00
- 18215              	.L296:
- 18216              	.LBE4305:
- 18217              	.LBB4306:
-2045:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
- 18218              		.loc 2 2045 0
- 18219 105ab F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 18219      B0F7FFFF 
- 18220 105b3 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 18220      30F6FFFF 
- 18221 105bb E8000000 		call	KDbgWriterGet at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 550
-
-
- 18221      00
- 18222 105c0 4885C0   		testq	%rax, %rax
- 18223 105c3 7479     		je	.L298
- 18224 105c5 BF010000 		movl	$1, %edi
- 18224      00
- 18225 105ca E8000000 		call	KDbgCondToFlag at PLT
- 18225      00
- 18226 105cf 4889C6   		movq	%rax, %rsi
- 18227 105d2 BF100000 		movl	$16, %edi
- 18227      00
- 18228 105d7 E8000000 		call	KDbgTestModConds at PLT
- 18228      00
- 18229 105dc 84C0     		testb	%al, %al
- 18230 105de 745E     		je	.L298
- 18231 105e0 8B853CF6 		movl	-2500(%rbp), %eax
- 18231      FFFF
- 18232 105e6 89C7     		movl	%eax, %edi
- 18233 105e8 E813FAFE 		call	bswap_32
- 18233      FF
- 18234 105ed 4189C5   		movl	%eax, %r13d
- 18235 105f0 8B8538F6 		movl	-2504(%rbp), %eax
- 18235      FFFF
- 18236 105f6 89C7     		movl	%eax, %edi
- 18237 105f8 E803FAFE 		call	bswap_32
- 18237      FF
- 18238 105fd 4189C4   		movl	%eax, %r12d
- 18239 10600 8B8534F6 		movl	-2508(%rbp), %eax
- 18239      FFFF
- 18240 10606 89C7     		movl	%eax, %edi
- 18241 10608 E8F3F9FE 		call	bswap_32
- 18241      FF
- 18242 1060d 89C3     		movl	%eax, %ebx
- 18243 1060f 8B8530F6 		movl	-2512(%rbp), %eax
- 18243      FFFF
- 18244 10615 89C7     		movl	%eax, %edi
- 18245 10617 E8E4F9FE 		call	bswap_32
- 18245      FF
- 18246 1061c 4589E9   		movl	%r13d, %r9d
- 18247 1061f 4589E0   		movl	%r12d, %r8d
- 18248 10622 89D9     		movl	%ebx, %ecx
- 18249 10624 89C2     		movl	%eax, %edx
- 18250 10626 488D3500 		leaq	.LC14(%rip), %rsi
- 18250      000000
- 18251 1062d 488D3D00 		leaq	.LC1(%rip), %rdi
- 18251      000000
- 18252 10634 B8000000 		movl	$0, %eax
- 18252      00
- 18253 10639 E8000000 		call	KDbgMsg at PLT
- 18253      00
- 18254              	.L298:
- 18255              	.LBE4306:
-2047:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18256              		.loc 2 2047 0
- 18257 1063e F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 18257      B0F7FFFF 
- 18258              	.LBE4209:
- 18259              	.LBE4208:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 551
-
-
- 18260              		.loc 2 2100 0
- 18261 10646 660F7F85 		movdqa	%xmm0, -2576(%rbp)
- 18261      F0F5FFFF 
-2099:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 18262              		.loc 2 2099 0
- 18263 1064e 83853CF7 		addl	$1, -2244(%rbp)
- 18263      FFFF01
- 18264              	.L274:
- 18265 10655 8B853CF7 		movl	-2244(%rbp), %eax
- 18265      FFFF
- 18266 1065b 3B85E4F5 		cmpl	-2588(%rbp), %eax
- 18266      FFFF
- 18267 10661 0F82DDF0 		jb	.L299
- 18267      FFFF
-2101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(LastRound) (state, key[ix]);
- 18268              		.loc 2 2102 0
- 18269 10667 8B853CF7 		mov	-2244(%rbp), %eax
- 18269      FFFF
- 18270 1066d 48C1E004 		salq	$4, %rax
- 18271 10671 480385E8 		addq	-2584(%rbp), %rax
- 18271      F5FFFF
- 18272 10678 660F6F00 		movdqa	(%rax), %xmm0
- 18273 1067c 660F6F8D 		movdqa	-2576(%rbp), %xmm1
- 18273      F0F5FFFF 
- 18274 10684 F30F7F8D 		movdqu	%xmm1, -672(%rbp)
- 18274      60FDFFFF 
- 18275 1068c F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 18275      50FDFFFF 
- 18276              	.LBB4307:
- 18277              	.LBB4308:
- 18278              	.LBB4309:
-2058:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Start of Round", state);
- 18279              		.loc 2 2058 0
- 18280 10694 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18280      60FDFFFF 
- 18281 1069c F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 18281      20F7FFFF 
- 18282 106a4 E8000000 		call	KDbgWriterGet at PLT
- 18282      00
- 18283 106a9 4885C0   		testq	%rax, %rax
- 18284 106ac 7479     		je	.L301
- 18285 106ae BF010000 		movl	$1, %edi
- 18285      00
- 18286 106b3 E8000000 		call	KDbgCondToFlag at PLT
- 18286      00
- 18287 106b8 4889C6   		movq	%rax, %rsi
- 18288 106bb BF100000 		movl	$16, %edi
- 18288      00
- 18289 106c0 E8000000 		call	KDbgTestModConds at PLT
- 18289      00
- 18290 106c5 84C0     		testb	%al, %al
- 18291 106c7 745E     		je	.L301
- 18292 106c9 8B852CF7 		movl	-2260(%rbp), %eax
- 18292      FFFF
- 18293 106cf 89C7     		movl	%eax, %edi
- 18294 106d1 E82AF9FE 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 552
-
-
- 18294      FF
- 18295 106d6 4189C5   		movl	%eax, %r13d
- 18296 106d9 8B8528F7 		movl	-2264(%rbp), %eax
- 18296      FFFF
- 18297 106df 89C7     		movl	%eax, %edi
- 18298 106e1 E81AF9FE 		call	bswap_32
- 18298      FF
- 18299 106e6 4189C4   		movl	%eax, %r12d
- 18300 106e9 8B8524F7 		movl	-2268(%rbp), %eax
- 18300      FFFF
- 18301 106ef 89C7     		movl	%eax, %edi
- 18302 106f1 E80AF9FE 		call	bswap_32
- 18302      FF
- 18303 106f6 89C3     		movl	%eax, %ebx
- 18304 106f8 8B8520F7 		movl	-2272(%rbp), %eax
- 18304      FFFF
- 18305 106fe 89C7     		movl	%eax, %edi
- 18306 10700 E8FBF8FE 		call	bswap_32
- 18306      FF
- 18307 10705 4589E9   		movl	%r13d, %r9d
- 18308 10708 4589E0   		movl	%r12d, %r8d
- 18309 1070b 89D9     		movl	%ebx, %ecx
- 18310 1070d 89C2     		movl	%eax, %edx
- 18311 1070f 488D3500 		leaq	.LC8(%rip), %rsi
- 18311      000000
- 18312 10716 488D3D00 		leaq	.LC1(%rip), %rdi
- 18312      000000
- 18313 1071d B8000000 		movl	$0, %eax
- 18313      00
- 18314 10722 E8000000 		call	KDbgMsg at PLT
- 18314      00
- 18315              	.L301:
- 18316 10727 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18316      60FDFFFF 
- 18317 1072f F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 18317      70FDFFFF 
- 18318 10737 F30F6F85 		movdqu	-656(%rbp), %xmm0
- 18318      70FDFFFF 
- 18319 1073f F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 18319      90FDFFFF 
- 18320 10747 488D0500 		leaq	KAESBlockCipherVecRegRijndaelSBoxV(%rip), %rax
- 18320      000000
- 18321 1074e 48898588 		movq	%rax, -632(%rbp)
- 18321      FDFFFF
- 18322              	.LBE4309:
- 18323              	.LBB4310:
- 18324              	.LBB4311:
- 18325              	.LBB4312:
- 18326              	.LBB4313:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 18327              		.loc 2 851 0
- 18328 10755 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 18328      00000000 
- 18329 1075d F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 18329      B0FDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 18330              		.loc 2 854 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 553
-
-
- 18331 10765 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 18331      00000000 
- 18332 1076d F30F6F8D 		movdqu	-624(%rbp), %xmm1
- 18332      90FDFFFF 
- 18333 10775 F30F7F8D 		movdqu	%xmm1, -512(%rbp)
- 18333      00FEFFFF 
- 18334 1077d F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 18334      F0FDFFFF 
- 18335              	.LBB4314:
- 18336              	.LBB4315:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 18337              		.loc 2 206 0
- 18338 10785 F30F6F85 		movdqu	-528(%rbp), %xmm0
- 18338      F0FDFFFF 
- 18339 1078d F30F6F8D 		movdqu	-512(%rbp), %xmm1
- 18339      00FEFFFF 
- 18340 10795 660FDBC1 		pand	%xmm1, %xmm0
- 18341              	.LBE4315:
- 18342              	.LBE4314:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 18343              		.loc 2 854 0
- 18344 10799 F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 18344      E0FDFFFF 
- 18345 107a1 F30F6F85 		movdqu	-624(%rbp), %xmm0
- 18345      90FDFFFF 
- 18346 107a9 F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 18346      20FEFFFF 
- 18347              	.LBB4316:
- 18348              	.LBB4317:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 18349              		.loc 3 433 0
- 18350 107b1 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 18350      20FEFFFF 
- 18351 107b9 660F72D0 		psrld	$4, %xmm0
- 18351      04
- 18352              	.LBE4317:
- 18353              	.LBE4316:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 18354              		.loc 2 857 0
- 18355 107be F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 18355      D0FDFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18356              		.loc 2 859 0
- 18357 107c6 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 18357      00000000 
- 18358 107ce F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 18358      D0FDFFFF 
- 18359 107d6 F30F7F8D 		movdqu	%xmm1, -448(%rbp)
- 18359      40FEFFFF 
- 18360 107de F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 18360      30FEFFFF 
- 18361              	.LBB4318:
- 18362              	.LBB4319:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 18363              		.loc 2 206 0
- 18364 107e6 F30F6F85 		movdqu	-464(%rbp), %xmm0
- 18364      30FEFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 554
-
-
- 18365 107ee F30F6F8D 		movdqu	-448(%rbp), %xmm1
- 18365      40FEFFFF 
- 18366 107f6 660FDBC1 		pand	%xmm1, %xmm0
- 18367              	.LBE4319:
- 18368              	.LBE4318:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18369              		.loc 2 859 0
- 18370 107fa F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 18370      D0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 18371              		.loc 2 866 0
- 18372 10802 C785ACFD 		movl	$0, -596(%rbp)
- 18372      FFFF0000 
- 18372      0000
- 18373 1080c E9BE0100 		jmp	.L302
- 18373      00
- 18374              	.L303:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 18375              		.loc 2 868 0
- 18376 10811 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 18376      00000000 
- 18377 10819 F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 18377      60FEFFFF 
- 18378 10821 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 18378      D0FDFFFF 
- 18379 10829 F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 18379      50FEFFFF 
- 18380 10831 F30F6F85 		movdqu	-416(%rbp), %xmm0
- 18380      60FEFFFF 
- 18381 10839 F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 18381      80FEFFFF 
- 18382 10841 F30F6F85 		movdqu	-432(%rbp), %xmm0
- 18382      50FEFFFF 
- 18383 10849 F30F7F85 		movdqu	%xmm0, -400(%rbp)
- 18383      70FEFFFF 
- 18384              	.LBB4320:
- 18385              	.LBB4321:
- 18386              	.LBB4322:
- 18387              	.LBB4323:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 18388              		.loc 3 529 0
- 18389 10851 F30F6F8D 		movdqu	-400(%rbp), %xmm1
- 18389      70FEFFFF 
- 18390 10859 F30F6F85 		movdqu	-384(%rbp), %xmm0
- 18390      80FEFFFF 
- 18391 10861 660F3800 		pshufb	%xmm1, %xmm0
- 18391      C1
- 18392              	.LBE4323:
- 18393              	.LBE4322:
- 18394              	.LBE4321:
- 18395              	.LBE4320:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 18396              		.loc 2 868 0
- 18397 10866 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 18397      C0FDFFFF 
- 18398 1086e F30F6F85 		movdqu	-544(%rbp), %xmm0
- 18398      E0FDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 555
-
-
- 18399 10876 F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 18399      A0FEFFFF 
- 18400 1087e F30F6F85 		movdqu	-576(%rbp), %xmm0
- 18400      C0FDFFFF 
- 18401 10886 F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 18401      90FEFFFF 
- 18402              	.LBB4324:
- 18403              	.LBB4325:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 18404              		.loc 2 234 0
- 18405 1088e F30F6F85 		movdqu	-368(%rbp), %xmm0
- 18405      90FEFFFF 
- 18406 10896 F30F6F8D 		movdqu	-352(%rbp), %xmm1
- 18406      A0FEFFFF 
- 18407 1089e 660FEBC1 		por	%xmm1, %xmm0
- 18408              	.LBE4325:
- 18409              	.LBE4324:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 18410              		.loc 2 870 0
- 18411 108a2 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 18411      C0FDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 18412              		.loc 2 872 0
- 18413 108aa 8B85ACFD 		mov	-596(%rbp), %eax
- 18413      FFFF
- 18414 108b0 48C1E004 		salq	$4, %rax
- 18415 108b4 48038588 		addq	-632(%rbp), %rax
- 18415      FDFFFF
- 18416 108bb 660F6F00 		movdqa	(%rax), %xmm0
- 18417 108bf F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 18417      C0FEFFFF 
- 18418 108c7 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 18418      C0FDFFFF 
- 18419 108cf F30F7F85 		movdqu	%xmm0, -336(%rbp)
- 18419      B0FEFFFF 
- 18420 108d7 F30F6F85 		movdqu	-320(%rbp), %xmm0
- 18420      C0FEFFFF 
- 18421 108df F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 18421      E0FEFFFF 
- 18422 108e7 F30F6F85 		movdqu	-336(%rbp), %xmm0
- 18422      B0FEFFFF 
- 18423 108ef F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 18423      D0FEFFFF 
- 18424              	.LBB4326:
- 18425              	.LBB4327:
- 18426              	.LBB4328:
- 18427              	.LBB4329:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 18428              		.loc 3 529 0
- 18429 108f7 F30F6F8D 		movdqu	-304(%rbp), %xmm1
- 18429      D0FEFFFF 
- 18430 108ff F30F6F85 		movdqu	-288(%rbp), %xmm0
- 18430      E0FEFFFF 
- 18431 10907 660F3800 		pshufb	%xmm1, %xmm0
- 18431      C1
- 18432              	.LBE4329:
- 18433              	.LBE4328:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 556
-
-
- 18434              	.LBE4327:
- 18435              	.LBE4326:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 18436              		.loc 2 872 0
- 18437 1090c F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 18437      C0FDFFFF 
- 18438 10914 F30F6F85 		movdqu	-592(%rbp), %xmm0
- 18438      B0FDFFFF 
- 18439 1091c F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 18439      00FFFFFF 
- 18440 10924 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 18440      C0FDFFFF 
- 18441 1092c F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 18441      F0FEFFFF 
- 18442              	.LBB4330:
- 18443              	.LBB4331:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 18444              		.loc 2 234 0
- 18445 10934 F30F6F85 		movdqu	-272(%rbp), %xmm0
- 18445      F0FEFFFF 
- 18446 1093c F30F6F8D 		movdqu	-256(%rbp), %xmm1
- 18446      00FFFFFF 
- 18447 10944 660FEBC1 		por	%xmm1, %xmm0
- 18448              	.LBE4331:
- 18449              	.LBE4330:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 18450              		.loc 2 874 0
- 18451 10948 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 18451      B0FDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 18452              		.loc 2 876 0
- 18453 10950 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 18453      00000000 
- 18454 10958 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 18454      D0FDFFFF 
- 18455 10960 F30F7F8D 		movdqu	%xmm1, -224(%rbp)
- 18455      20FFFFFF 
- 18456 10968 F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 18456      10FFFFFF 
- 18457              	.LBB4332:
- 18458              	.LBB4333:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 18459              		.loc 2 290 0
- 18460 10970 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 18460      10FFFFFF 
- 18461 10978 F30F6F85 		movdqu	-224(%rbp), %xmm0
- 18461      20FFFFFF 
- 18462 10980 660FF8C1 		psubb	%xmm1, %xmm0
- 18463              	.LBE4333:
- 18464              	.LBE4332:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 18465              		.loc 2 876 0
- 18466 10984 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 18466      D0FDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18467              		.loc 2 878 0
- 18468 1098c 660F6F05 		movdqa	vec_0F(%rip), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 557
-
-
- 18468      00000000 
- 18469 10994 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 18469      D0FDFFFF 
- 18470 1099c F30F7F8D 		movdqu	%xmm1, -192(%rbp)
- 18470      40FFFFFF 
- 18471 109a4 F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 18471      30FFFFFF 
- 18472              	.LBB4334:
- 18473              	.LBB4335:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 18474              		.loc 2 206 0
- 18475 109ac F30F6F85 		movdqu	-208(%rbp), %xmm0
- 18475      30FFFFFF 
- 18476 109b4 F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 18476      40FFFFFF 
- 18477 109bc 660FDBC1 		pand	%xmm1, %xmm0
- 18478              	.LBE4335:
- 18479              	.LBE4334:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 18480              		.loc 2 878 0
- 18481 109c0 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 18481      D0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 18482              		.loc 2 866 0
- 18483 109c8 8385ACFD 		addl	$1, -596(%rbp)
- 18483      FFFF01
- 18484              	.L302:
- 18485 109cf 83BDACFD 		cmpl	$15, -596(%rbp)
- 18485      FFFF0F
- 18486 109d6 0F8635FE 		jbe	.L303
- 18486      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 18487              		.loc 2 882 0
- 18488 109dc F30F6F85 		movdqu	-592(%rbp), %xmm0
- 18488      B0FDFFFF 
- 18489              	.LBE4313:
- 18490              	.LBE4312:
- 18491              	.LBE4311:
- 18492              	.LBE4310:
-2063:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(SubBytes) (state);
- 18493              		.loc 2 2063 0
- 18494 109e4 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 18494      60FDFFFF 
- 18495              	.LBB4336:
-2065:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After SubBytes", state);
- 18496              		.loc 2 2065 0
- 18497 109ec F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18497      60FDFFFF 
- 18498 109f4 F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 18498      10F7FFFF 
- 18499 109fc E8000000 		call	KDbgWriterGet at PLT
- 18499      00
- 18500 10a01 4885C0   		testq	%rax, %rax
- 18501 10a04 7479     		je	.L305
- 18502 10a06 BF010000 		movl	$1, %edi
- 18502      00
- 18503 10a0b E8000000 		call	KDbgCondToFlag at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 558
-
-
- 18503      00
- 18504 10a10 4889C6   		movq	%rax, %rsi
- 18505 10a13 BF100000 		movl	$16, %edi
- 18505      00
- 18506 10a18 E8000000 		call	KDbgTestModConds at PLT
- 18506      00
- 18507 10a1d 84C0     		testb	%al, %al
- 18508 10a1f 745E     		je	.L305
- 18509 10a21 8B851CF7 		movl	-2276(%rbp), %eax
- 18509      FFFF
- 18510 10a27 89C7     		movl	%eax, %edi
- 18511 10a29 E8D2F5FE 		call	bswap_32
- 18511      FF
- 18512 10a2e 4189C5   		movl	%eax, %r13d
- 18513 10a31 8B8518F7 		movl	-2280(%rbp), %eax
- 18513      FFFF
- 18514 10a37 89C7     		movl	%eax, %edi
- 18515 10a39 E8C2F5FE 		call	bswap_32
- 18515      FF
- 18516 10a3e 4189C4   		movl	%eax, %r12d
- 18517 10a41 8B8514F7 		movl	-2284(%rbp), %eax
- 18517      FFFF
- 18518 10a47 89C7     		movl	%eax, %edi
- 18519 10a49 E8B2F5FE 		call	bswap_32
- 18519      FF
- 18520 10a4e 89C3     		movl	%eax, %ebx
- 18521 10a50 8B8510F7 		movl	-2288(%rbp), %eax
- 18521      FFFF
- 18522 10a56 89C7     		movl	%eax, %edi
- 18523 10a58 E8A3F5FE 		call	bswap_32
- 18523      FF
- 18524 10a5d 4589E9   		movl	%r13d, %r9d
- 18525 10a60 4589E0   		movl	%r12d, %r8d
- 18526 10a63 89D9     		movl	%ebx, %ecx
- 18527 10a65 89C2     		movl	%eax, %edx
- 18528 10a67 488D3500 		leaq	.LC11(%rip), %rsi
- 18528      000000
- 18529 10a6e 488D3D00 		leaq	.LC1(%rip), %rdi
- 18529      000000
- 18530 10a75 B8000000 		movl	$0, %eax
- 18530      00
- 18531 10a7a E8000000 		call	KDbgMsg at PLT
- 18531      00
- 18532              	.L305:
- 18533 10a7f F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18533      60FDFFFF 
- 18534 10a87 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 18534      50FFFFFF 
- 18535              	.LBE4336:
- 18536              	.LBB4337:
- 18537              	.LBB4338:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 18538              		.loc 2 581 0
- 18539 10a8f 660F6F05 		movdqa	ShiftRowTable.7358(%rip), %xmm0
- 18539      00000000 
- 18540 10a97 F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 18540      50FFFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 559
-
-
- 18541 10a9f F30F7F8D 		movdqu	%xmm1, -144(%rbp)
- 18541      70FFFFFF 
- 18542 10aa7 F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 18542      60FFFFFF 
- 18543 10aaf F30F6F85 		movdqu	-144(%rbp), %xmm0
- 18543      70FFFFFF 
- 18544 10ab7 F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 18544      90
- 18545 10abc F30F6F85 		movdqu	-160(%rbp), %xmm0
- 18545      60FFFFFF 
- 18546 10ac4 F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 18546      80
- 18547              	.LBB4339:
- 18548              	.LBB4340:
- 18549              	.LBB4341:
- 18550              	.LBB4342:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 18551              		.loc 3 529 0
- 18552 10ac9 F30F6F4D 		movdqu	-128(%rbp), %xmm1
- 18552      80
- 18553 10ace F30F6F45 		movdqu	-112(%rbp), %xmm0
- 18553      90
- 18554 10ad3 660F3800 		pshufb	%xmm1, %xmm0
- 18554      C1
- 18555              	.LBE4342:
- 18556              	.LBE4341:
- 18557              	.LBE4340:
- 18558              	.LBE4339:
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 18559              		.loc 2 581 0
- 18560 10ad8 F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 18560      50FFFFFF 
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18561              		.loc 2 582 0
- 18562 10ae0 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 18562      50FFFFFF 
- 18563              	.LBE4338:
- 18564              	.LBE4337:
-2067:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(ShiftRows) (state);
- 18565              		.loc 2 2067 0
- 18566 10ae8 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 18566      60FDFFFF 
- 18567              	.LBB4343:
-2069:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("After ShiftRow", state);
- 18568              		.loc 2 2069 0
- 18569 10af0 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18569      60FDFFFF 
- 18570 10af8 F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 18570      00F7FFFF 
- 18571 10b00 E8000000 		call	KDbgWriterGet at PLT
- 18571      00
- 18572 10b05 4885C0   		testq	%rax, %rax
- 18573 10b08 7479     		je	.L307
- 18574 10b0a BF010000 		movl	$1, %edi
- 18574      00
- 18575 10b0f E8000000 		call	KDbgCondToFlag at PLT
- 18575      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 560
-
-
- 18576 10b14 4889C6   		movq	%rax, %rsi
- 18577 10b17 BF100000 		movl	$16, %edi
- 18577      00
- 18578 10b1c E8000000 		call	KDbgTestModConds at PLT
- 18578      00
- 18579 10b21 84C0     		testb	%al, %al
- 18580 10b23 745E     		je	.L307
- 18581 10b25 8B850CF7 		movl	-2292(%rbp), %eax
- 18581      FFFF
- 18582 10b2b 89C7     		movl	%eax, %edi
- 18583 10b2d E8CEF4FE 		call	bswap_32
- 18583      FF
- 18584 10b32 4189C5   		movl	%eax, %r13d
- 18585 10b35 8B8508F7 		movl	-2296(%rbp), %eax
- 18585      FFFF
- 18586 10b3b 89C7     		movl	%eax, %edi
- 18587 10b3d E8BEF4FE 		call	bswap_32
- 18587      FF
- 18588 10b42 4189C4   		movl	%eax, %r12d
- 18589 10b45 8B8504F7 		movl	-2300(%rbp), %eax
- 18589      FFFF
- 18590 10b4b 89C7     		movl	%eax, %edi
- 18591 10b4d E8AEF4FE 		call	bswap_32
- 18591      FF
- 18592 10b52 89C3     		movl	%eax, %ebx
- 18593 10b54 8B8500F7 		movl	-2304(%rbp), %eax
- 18593      FFFF
- 18594 10b5a 89C7     		movl	%eax, %edi
- 18595 10b5c E89FF4FE 		call	bswap_32
- 18595      FF
- 18596 10b61 4589E9   		movl	%r13d, %r9d
- 18597 10b64 4589E0   		movl	%r12d, %r8d
- 18598 10b67 89D9     		movl	%ebx, %ecx
- 18599 10b69 89C2     		movl	%eax, %edx
- 18600 10b6b 488D3500 		leaq	.LC12(%rip), %rsi
- 18600      000000
- 18601 10b72 488D3D00 		leaq	.LC1(%rip), %rdi
- 18601      000000
- 18602 10b79 B8000000 		movl	$0, %eax
- 18602      00
- 18603 10b7e E8000000 		call	KDbgMsg at PLT
- 18603      00
- 18604              	.L307:
- 18605 10b83 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18605      60FDFFFF 
- 18606 10b8b F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 18606      B0
- 18607 10b90 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 18607      50FDFFFF 
- 18608 10b98 F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 18608      A0
- 18609 10b9d F30F6F45 		movdqu	-80(%rbp), %xmm0
- 18609      B0
- 18610 10ba2 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 18610      D0
- 18611 10ba7 F30F6F45 		movdqu	-96(%rbp), %xmm0
- 18611      A0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 561
-
-
- 18612 10bac F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 18612      C0
- 18613              	.LBE4343:
- 18614              	.LBB4344:
- 18615              	.LBB4345:
- 18616              	.LBB4346:
- 18617              	.LBB4347:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18618              		.loc 2 178 0
- 18619 10bb1 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 18619      C0
- 18620 10bb6 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 18620      D0
- 18621 10bbb 660FEFC1 		pxor	%xmm1, %xmm0
- 18622              	.LBE4347:
- 18623              	.LBE4346:
- 18624              	.LBE4345:
- 18625              	.LBE4344:
-2071:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 18626              		.loc 2 2071 0
- 18627 10bbf F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 18627      60FDFFFF 
- 18628              	.LBB4348:
-2073:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("Round Key", round_keys);
- 18629              		.loc 2 2073 0
- 18630 10bc7 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 18630      50FDFFFF 
- 18631 10bcf F30F7F85 		movdqu	%xmm0, -2320(%rbp)
- 18631      F0F6FFFF 
- 18632 10bd7 E8000000 		call	KDbgWriterGet at PLT
- 18632      00
- 18633 10bdc 4885C0   		testq	%rax, %rax
- 18634 10bdf 7479     		je	.L309
- 18635 10be1 BF010000 		movl	$1, %edi
- 18635      00
- 18636 10be6 E8000000 		call	KDbgCondToFlag at PLT
- 18636      00
- 18637 10beb 4889C6   		movq	%rax, %rsi
- 18638 10bee BF100000 		movl	$16, %edi
- 18638      00
- 18639 10bf3 E8000000 		call	KDbgTestModConds at PLT
- 18639      00
- 18640 10bf8 84C0     		testb	%al, %al
- 18641 10bfa 745E     		je	.L309
- 18642 10bfc 8B85FCF6 		movl	-2308(%rbp), %eax
- 18642      FFFF
- 18643 10c02 89C7     		movl	%eax, %edi
- 18644 10c04 E8F7F3FE 		call	bswap_32
- 18644      FF
- 18645 10c09 4189C5   		movl	%eax, %r13d
- 18646 10c0c 8B85F8F6 		movl	-2312(%rbp), %eax
- 18646      FFFF
- 18647 10c12 89C7     		movl	%eax, %edi
- 18648 10c14 E8E7F3FE 		call	bswap_32
- 18648      FF
- 18649 10c19 4189C4   		movl	%eax, %r12d
- 18650 10c1c 8B85F4F6 		movl	-2316(%rbp), %eax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 562
-
-
- 18650      FFFF
- 18651 10c22 89C7     		movl	%eax, %edi
- 18652 10c24 E8D7F3FE 		call	bswap_32
- 18652      FF
- 18653 10c29 89C3     		movl	%eax, %ebx
- 18654 10c2b 8B85F0F6 		movl	-2320(%rbp), %eax
- 18654      FFFF
- 18655 10c31 89C7     		movl	%eax, %edi
- 18656 10c33 E8C8F3FE 		call	bswap_32
- 18656      FF
- 18657 10c38 4589E9   		movl	%r13d, %r9d
- 18658 10c3b 4589E0   		movl	%r12d, %r8d
- 18659 10c3e 89D9     		movl	%ebx, %ecx
- 18660 10c40 89C2     		movl	%eax, %edx
- 18661 10c42 488D3500 		leaq	.LC9(%rip), %rsi
- 18661      000000
- 18662 10c49 488D3D00 		leaq	.LC1(%rip), %rdi
- 18662      000000
- 18663 10c50 B8000000 		movl	$0, %eax
- 18663      00
- 18664 10c55 E8000000 		call	KDbgMsg at PLT
- 18664      00
- 18665              	.L309:
- 18666              	.LBE4348:
- 18667              	.LBB4349:
-2074:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR("End of Round", state);
- 18668              		.loc 2 2074 0
- 18669 10c5a F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18669      60FDFFFF 
- 18670 10c62 F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 18670      E0F6FFFF 
- 18671 10c6a E8000000 		call	KDbgWriterGet at PLT
- 18671      00
- 18672 10c6f 4885C0   		testq	%rax, %rax
- 18673 10c72 7479     		je	.L311
- 18674 10c74 BF010000 		movl	$1, %edi
- 18674      00
- 18675 10c79 E8000000 		call	KDbgCondToFlag at PLT
- 18675      00
- 18676 10c7e 4889C6   		movq	%rax, %rsi
- 18677 10c81 BF100000 		movl	$16, %edi
- 18677      00
- 18678 10c86 E8000000 		call	KDbgTestModConds at PLT
- 18678      00
- 18679 10c8b 84C0     		testb	%al, %al
- 18680 10c8d 745E     		je	.L311
- 18681 10c8f 8B85ECF6 		movl	-2324(%rbp), %eax
- 18681      FFFF
- 18682 10c95 89C7     		movl	%eax, %edi
- 18683 10c97 E864F3FE 		call	bswap_32
- 18683      FF
- 18684 10c9c 4189C5   		movl	%eax, %r13d
- 18685 10c9f 8B85E8F6 		movl	-2328(%rbp), %eax
- 18685      FFFF
- 18686 10ca5 89C7     		movl	%eax, %edi
- 18687 10ca7 E854F3FE 		call	bswap_32
- 18687      FF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 563
-
-
- 18688 10cac 4189C4   		movl	%eax, %r12d
- 18689 10caf 8B85E4F6 		movl	-2332(%rbp), %eax
- 18689      FFFF
- 18690 10cb5 89C7     		movl	%eax, %edi
- 18691 10cb7 E844F3FE 		call	bswap_32
- 18691      FF
- 18692 10cbc 89C3     		movl	%eax, %ebx
- 18693 10cbe 8B85E0F6 		movl	-2336(%rbp), %eax
- 18693      FFFF
- 18694 10cc4 89C7     		movl	%eax, %edi
- 18695 10cc6 E835F3FE 		call	bswap_32
- 18695      FF
- 18696 10ccb 4589E9   		movl	%r13d, %r9d
- 18697 10cce 4589E0   		movl	%r12d, %r8d
- 18698 10cd1 89D9     		movl	%ebx, %ecx
- 18699 10cd3 89C2     		movl	%eax, %edx
- 18700 10cd5 488D3500 		leaq	.LC14(%rip), %rsi
- 18700      000000
- 18701 10cdc 488D3D00 		leaq	.LC1(%rip), %rdi
- 18701      000000
- 18702 10ce3 B8000000 		movl	$0, %eax
- 18702      00
- 18703 10ce8 E8000000 		call	KDbgMsg at PLT
- 18703      00
- 18704              	.L311:
- 18705              	.LBE4349:
-2076:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18706              		.loc 2 2076 0
- 18707 10ced F30F6F85 		movdqu	-672(%rbp), %xmm0
- 18707      60FDFFFF 
- 18708              	.LBE4308:
- 18709              	.LBE4307:
-2103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 18710              		.loc 2 2103 0
- 18711 10cf5 4881C458 		addq	$2648, %rsp
- 18711      0A0000
- 18712 10cfc 5B       		popq	%rbx
- 18713 10cfd 415C     		popq	%r12
- 18714 10cff 415D     		popq	%r13
- 18715 10d01 C9       		leave
- 18716 10d02 C3       		ret
- 18717              		.cfi_endproc
- 18718              	.LFE655:
- 18719              		.size	KAESBlockCipherVecRegCipher, .-KAESBlockCipherVecRegCipher
- 18720              		.section	.rodata
- 18721              	.LC15:
- 18722 043f 41667465 		.string	"After InvSubBy"
- 18722      7220496E 
- 18722      76537562 
- 18722      427900
- 18723              	.LC16:
- 18724 044e 41667465 		.string	"After InvShift"
- 18724      7220496E 
- 18724      76536869 
- 18724      667400
- 18725              	.LC17:
- 18726 045d 41667465 		.string	"After InvMixCo"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 564
-
-
- 18726      7220496E 
- 18726      764D6978 
- 18726      436F00
- 18727              		.text
- 18728              		.type	KAESBlockCipherVecRegEqInvCipher, @function
- 18729              	KAESBlockCipherVecRegEqInvCipher:
- 18730              	.LFB659:
-2104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 
-2107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Section 5.1 of FIPS 197
-2108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This set of routines implements our structured wrapping of the 
-2110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   FIPS-197 Section 5.3.5 Equivalent Inverse Cipher.  In particular
-2111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   figure 15 Pseudo Code for the Equivalent Inverse Cipher.
-2112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The FIPS pseudocode has a single function which we have broken out 
-2114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   into three kinds of rounds - first round, middle rounds and last
-2115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   round as we have also done with the cipher rountine.
-2116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The EqInvCipher operates on whole cipher blocks so the Byte and Block
-2118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   code is the same here until subroutines of the round functions are
-2119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   called.  
-2120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* 
-2123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * First round of equivalent inverse cipher is merely an XOR against the
-2124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * round key.
-2125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-2128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvFirstRound) (CipherVec state, CipherVec round_keys)
-2132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-2134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(AddRoundKey) (state, round_keys);
-2136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-2138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
-2139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * middle rounds of the equivalent inverse cipher perform four steps
-2145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvSubBytes (inverse substitute bytes
-2146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvShiftRows (inverse shift rows
-2147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   InvMixColumns (inverse mix columns)
-2148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   AddRoundKey   (xor against the round key)
-2149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the AES-NI instruction set from until implments all four steps with 
-2151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * a single instruction
-2152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 565
-
-
-2154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-2156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                          register CipherVec round_keys)
-2157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvMiddleRound) (register CipherVec state,
-2161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                          register CipherVec round_keys)
-2162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mstate;
-2165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec mround_keys;
-2166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
-2169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", mstate);
-2172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* 
-2174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * AES-NI implmentation
-2175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDEC (state, round_keys);
-2179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else /* #if USE_AES_NI */
-2181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * All other implementations
-2184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
-2186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", mstate);
-2191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
-2194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", mstate);
-2199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvMixColumns) (state);
-2202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # if _DEBUGGING
-2204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvMixCo", mstate);
-2207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** # endif
-2208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-
GAS LISTING /tmp/ccjbMjHD.s 			page 566
-
-
-2211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if _DEBUGGING
-2213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
-2214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", mround_keys);
-2216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", mstate);
-2218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif /* #if USE_AES_NI */
-2219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The final round of the equivalent inverse cipher is the same as 
-2226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the middle rounds with the ommission of the InvMixColumns step.
-2227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-2230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        register CipherVec round_keys)
-2231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __attribute__ ((always_inline));
-2232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvLastRound) (register CipherVec state,
-2235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                        register CipherVec round_keys)
-2236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
-2238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = op_AESDECLAST (state, round_keys);
-2241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #else
-2242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
-2244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", state);
-2246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
-2248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", state);
-2250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
-2252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
-2254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
-2255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
-2257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
-2258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /*
-2261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The EqInvCipher functions (is defined in Figure 15 'Pseudo Code for
-2262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for the Equivalent Inverse Cipher.  This implementation as stated
-2263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * above for simplifaction broke out the three types of rounds into
-2264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * first round, middle rounds, and last round.  This approach was taken
-2265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * for ease of coding for optimization using smaller bytes of code
-2266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * but inlining of the functions for efficiency
-2267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-
GAS LISTING /tmp/ccjbMjHD.s 			page 567
-
-
-2268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static /*__inline__*/
-2269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(EqInvCipher) (CipherVec state, const CipherVec * key,
-2270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                     unsigned Nr)
-2271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 18731              		.loc 2 2271 0
- 18732              		.cfi_startproc
- 18733 10d03 55       		pushq	%rbp
- 18734              	.LCFI18:
- 18735              		.cfi_def_cfa_offset 16
- 18736 10d04 4889E5   		movq	%rsp, %rbp
- 18737              		.cfi_offset 6, -16
- 18738              	.LCFI19:
- 18739              		.cfi_def_cfa_register 6
- 18740 10d07 4155     		pushq	%r13
- 18741 10d09 4154     		pushq	%r12
- 18742 10d0b 53       		pushq	%rbx
- 18743 10d0c 4881EC08 		subq	$3592, %rsp
- 18743      0E0000
- 18744 10d13 660F7F85 		movdqa	%xmm0, -3488(%rbp)
- 18744      60F2FFFF 
- 18745 10d1b 4889BD58 		movq	%rdi, -3496(%rbp)
- 18745      F2FFFF
- 18746 10d22 89B554F2 		movl	%esi, -3500(%rbp)
- 18746      FFFF
-2272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     unsigned ix = 0;
- 18747              		.loc 2 2272 0
- 18748 10d28 C785ECF3 		movl	$0, -3092(%rbp)
- 18748      FFFF0000 
- 18748      0000
-2273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(EqInvFirstRound) (state, key[ix++]);
- 18749              		.loc 2 2274 0
- 18750 10d32 8B85ECF3 		mov	-3092(%rbp), %eax
- 18750      FFFF
- 18751 10d38 48C1E004 		salq	$4, %rax
- 18752 10d3c 48038558 		addq	-3496(%rbp), %rax
- 18752      F2FFFF
- 18753 10d43 660F6F00 		movdqa	(%rax), %xmm0
- 18754 10d47 8385ECF3 		addl	$1, -3092(%rbp)
- 18754      FFFF01
- 18755 10d4e 660F6F8D 		movdqa	-3488(%rbp), %xmm1
- 18755      60F2FFFF 
- 18756 10d56 F30F7F8D 		movdqu	%xmm1, -3072(%rbp)
- 18756      00F4FFFF 
- 18757 10d5e F30F7F85 		movdqu	%xmm0, -3088(%rbp)
- 18757      F0F3FFFF 
- 18758              	.LBB4551:
- 18759              	.LBB4552:
- 18760              	.LBB4553:
-2133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
- 18761              		.loc 2 2133 0
- 18762 10d66 F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 18762      00F4FFFF 
- 18763 10d6e F30F7F85 		movdqu	%xmm0, -3440(%rbp)
- 18763      90F2FFFF 
- 18764              		.cfi_offset 3, -40
- 18765              		.cfi_offset 12, -32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 568
-
-
- 18766              		.cfi_offset 13, -24
- 18767 10d76 E8000000 		call	KDbgWriterGet at PLT
- 18767      00
- 18768 10d7b 4885C0   		testq	%rax, %rax
- 18769 10d7e 7479     		je	.L315
- 18770 10d80 BF030000 		movl	$3, %edi
- 18770      00
- 18771 10d85 E8000000 		call	KDbgCondToFlag at PLT
- 18771      00
- 18772 10d8a 4889C6   		movq	%rax, %rsi
- 18773 10d8d BF100000 		movl	$16, %edi
- 18773      00
- 18774 10d92 E8000000 		call	KDbgTestModConds at PLT
- 18774      00
- 18775 10d97 84C0     		testb	%al, %al
- 18776 10d99 745E     		je	.L315
- 18777 10d9b 8B859CF2 		movl	-3428(%rbp), %eax
- 18777      FFFF
- 18778 10da1 89C7     		movl	%eax, %edi
- 18779 10da3 E858F2FE 		call	bswap_32
- 18779      FF
- 18780 10da8 4189C5   		movl	%eax, %r13d
- 18781 10dab 8B8598F2 		movl	-3432(%rbp), %eax
- 18781      FFFF
- 18782 10db1 89C7     		movl	%eax, %edi
- 18783 10db3 E848F2FE 		call	bswap_32
- 18783      FF
- 18784 10db8 4189C4   		movl	%eax, %r12d
- 18785 10dbb 8B8594F2 		movl	-3436(%rbp), %eax
- 18785      FFFF
- 18786 10dc1 89C7     		movl	%eax, %edi
- 18787 10dc3 E838F2FE 		call	bswap_32
- 18787      FF
- 18788 10dc8 89C3     		movl	%eax, %ebx
- 18789 10dca 8B8590F2 		movl	-3440(%rbp), %eax
- 18789      FFFF
- 18790 10dd0 89C7     		movl	%eax, %edi
- 18791 10dd2 E829F2FE 		call	bswap_32
- 18791      FF
- 18792 10dd7 4589E9   		movl	%r13d, %r9d
- 18793 10dda 4589E0   		movl	%r12d, %r8d
- 18794 10ddd 89D9     		movl	%ebx, %ecx
- 18795 10ddf 89C2     		movl	%eax, %edx
- 18796 10de1 488D3500 		leaq	.LC8(%rip), %rsi
- 18796      000000
- 18797 10de8 488D3D00 		leaq	.LC1(%rip), %rdi
- 18797      000000
- 18798 10def B8000000 		movl	$0, %eax
- 18798      00
- 18799 10df4 E8000000 		call	KDbgMsg at PLT
- 18799      00
- 18800              	.L315:
- 18801 10df9 F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 18801      00F4FFFF 
- 18802 10e01 F30F7F85 		movdqu	%xmm0, -3040(%rbp)
- 18802      20F4FFFF 
- 18803 10e09 F30F6F85 		movdqu	-3088(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 569
-
-
- 18803      F0F3FFFF 
- 18804 10e11 F30F7F85 		movdqu	%xmm0, -3056(%rbp)
- 18804      10F4FFFF 
- 18805 10e19 F30F6F85 		movdqu	-3040(%rbp), %xmm0
- 18805      20F4FFFF 
- 18806 10e21 F30F7F85 		movdqu	%xmm0, -3008(%rbp)
- 18806      40F4FFFF 
- 18807 10e29 F30F6F85 		movdqu	-3056(%rbp), %xmm0
- 18807      10F4FFFF 
- 18808 10e31 F30F7F85 		movdqu	%xmm0, -3024(%rbp)
- 18808      30F4FFFF 
- 18809              	.LBE4553:
- 18810              	.LBB4554:
- 18811              	.LBB4555:
- 18812              	.LBB4556:
- 18813              	.LBB4557:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 18814              		.loc 2 178 0
- 18815 10e39 F30F6F85 		movdqu	-3024(%rbp), %xmm0
- 18815      30F4FFFF 
- 18816 10e41 F30F6F8D 		movdqu	-3008(%rbp), %xmm1
- 18816      40F4FFFF 
- 18817 10e49 660FEFC1 		pxor	%xmm1, %xmm0
- 18818              	.LBE4557:
- 18819              	.LBE4556:
- 18820              	.LBE4555:
- 18821              	.LBE4554:
-2135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state =  AESBCMEMBER(AddRoundKey) (state, round_keys);
- 18822              		.loc 2 2135 0
- 18823 10e4d F30F7F85 		movdqu	%xmm0, -3072(%rbp)
- 18823      00F4FFFF 
- 18824              	.LBB4558:
-2137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
- 18825              		.loc 2 2137 0
- 18826 10e55 F30F6F85 		movdqu	-3088(%rbp), %xmm0
- 18826      F0F3FFFF 
- 18827 10e5d F30F7F85 		movdqu	%xmm0, -3456(%rbp)
- 18827      80F2FFFF 
- 18828 10e65 E8000000 		call	KDbgWriterGet at PLT
- 18828      00
- 18829 10e6a 4885C0   		testq	%rax, %rax
- 18830 10e6d 7479     		je	.L317
- 18831 10e6f BF030000 		movl	$3, %edi
- 18831      00
- 18832 10e74 E8000000 		call	KDbgCondToFlag at PLT
- 18832      00
- 18833 10e79 4889C6   		movq	%rax, %rsi
- 18834 10e7c BF100000 		movl	$16, %edi
- 18834      00
- 18835 10e81 E8000000 		call	KDbgTestModConds at PLT
- 18835      00
- 18836 10e86 84C0     		testb	%al, %al
- 18837 10e88 745E     		je	.L317
- 18838 10e8a 8B858CF2 		movl	-3444(%rbp), %eax
- 18838      FFFF
- 18839 10e90 89C7     		movl	%eax, %edi
- 18840 10e92 E869F1FE 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 570
-
-
- 18840      FF
- 18841 10e97 4189C5   		movl	%eax, %r13d
- 18842 10e9a 8B8588F2 		movl	-3448(%rbp), %eax
- 18842      FFFF
- 18843 10ea0 89C7     		movl	%eax, %edi
- 18844 10ea2 E859F1FE 		call	bswap_32
- 18844      FF
- 18845 10ea7 4189C4   		movl	%eax, %r12d
- 18846 10eaa 8B8584F2 		movl	-3452(%rbp), %eax
- 18846      FFFF
- 18847 10eb0 89C7     		movl	%eax, %edi
- 18848 10eb2 E849F1FE 		call	bswap_32
- 18848      FF
- 18849 10eb7 89C3     		movl	%eax, %ebx
- 18850 10eb9 8B8580F2 		movl	-3456(%rbp), %eax
- 18850      FFFF
- 18851 10ebf 89C7     		movl	%eax, %edi
- 18852 10ec1 E83AF1FE 		call	bswap_32
- 18852      FF
- 18853 10ec6 4589E9   		movl	%r13d, %r9d
- 18854 10ec9 4589E0   		movl	%r12d, %r8d
- 18855 10ecc 89D9     		movl	%ebx, %ecx
- 18856 10ece 89C2     		movl	%eax, %edx
- 18857 10ed0 488D3500 		leaq	.LC9(%rip), %rsi
- 18857      000000
- 18858 10ed7 488D3D00 		leaq	.LC1(%rip), %rdi
- 18858      000000
- 18859 10ede B8000000 		movl	$0, %eax
- 18859      00
- 18860 10ee3 E8000000 		call	KDbgMsg at PLT
- 18860      00
- 18861              	.L317:
- 18862              	.LBE4558:
- 18863              	.LBB4559:
-2138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
- 18864              		.loc 2 2138 0
- 18865 10ee8 F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 18865      00F4FFFF 
- 18866 10ef0 F30F7F85 		movdqu	%xmm0, -3472(%rbp)
- 18866      70F2FFFF 
- 18867 10ef8 E8000000 		call	KDbgWriterGet at PLT
- 18867      00
- 18868 10efd 4885C0   		testq	%rax, %rax
- 18869 10f00 7479     		je	.L319
- 18870 10f02 BF030000 		movl	$3, %edi
- 18870      00
- 18871 10f07 E8000000 		call	KDbgCondToFlag at PLT
- 18871      00
- 18872 10f0c 4889C6   		movq	%rax, %rsi
- 18873 10f0f BF100000 		movl	$16, %edi
- 18873      00
- 18874 10f14 E8000000 		call	KDbgTestModConds at PLT
- 18874      00
- 18875 10f19 84C0     		testb	%al, %al
- 18876 10f1b 745E     		je	.L319
- 18877 10f1d 8B857CF2 		movl	-3460(%rbp), %eax
- 18877      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 571
-
-
- 18878 10f23 89C7     		movl	%eax, %edi
- 18879 10f25 E8D6F0FE 		call	bswap_32
- 18879      FF
- 18880 10f2a 4189C5   		movl	%eax, %r13d
- 18881 10f2d 8B8578F2 		movl	-3464(%rbp), %eax
- 18881      FFFF
- 18882 10f33 89C7     		movl	%eax, %edi
- 18883 10f35 E8C6F0FE 		call	bswap_32
- 18883      FF
- 18884 10f3a 4189C4   		movl	%eax, %r12d
- 18885 10f3d 8B8574F2 		movl	-3468(%rbp), %eax
- 18885      FFFF
- 18886 10f43 89C7     		movl	%eax, %edi
- 18887 10f45 E8B6F0FE 		call	bswap_32
- 18887      FF
- 18888 10f4a 89C3     		movl	%eax, %ebx
- 18889 10f4c 8B8570F2 		movl	-3472(%rbp), %eax
- 18889      FFFF
- 18890 10f52 89C7     		movl	%eax, %edi
- 18891 10f54 E8A7F0FE 		call	bswap_32
- 18891      FF
- 18892 10f59 4589E9   		movl	%r13d, %r9d
- 18893 10f5c 4589E0   		movl	%r12d, %r8d
- 18894 10f5f 89D9     		movl	%ebx, %ecx
- 18895 10f61 89C2     		movl	%eax, %edx
- 18896 10f63 488D3500 		leaq	.LC14(%rip), %rsi
- 18896      000000
- 18897 10f6a 488D3D00 		leaq	.LC1(%rip), %rdi
- 18897      000000
- 18898 10f71 B8000000 		movl	$0, %eax
- 18898      00
- 18899 10f76 E8000000 		call	KDbgMsg at PLT
- 18899      00
- 18900              	.L319:
- 18901              	.LBE4559:
-2139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 18902              		.loc 2 2139 0
- 18903 10f7b F30F6F85 		movdqu	-3072(%rbp), %xmm0
- 18903      00F4FFFF 
- 18904              	.LBE4552:
- 18905              	.LBE4551:
- 18906              		.loc 2 2274 0
- 18907 10f83 660F7F85 		movdqa	%xmm0, -3488(%rbp)
- 18907      60F2FFFF 
-2275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 18908              		.loc 2 2276 0
- 18909 10f8b E99B1600 		jmp	.L320
- 18909      00
- 18910              	.L353:
-2277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvMiddleRound) (state, key[ix] );
- 18911              		.loc 2 2277 0
- 18912 10f90 8B85ECF3 		mov	-3092(%rbp), %eax
- 18912      FFFF
- 18913 10f96 48C1E004 		salq	$4, %rax
- 18914 10f9a 48038558 		addq	-3496(%rbp), %rax
- 18914      F2FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 572
-
-
- 18915 10fa1 660F6F00 		movdqa	(%rax), %xmm0
- 18916 10fa5 660F6F8D 		movdqa	-3488(%rbp), %xmm1
- 18916      60F2FFFF 
- 18917 10fad F30F7F8D 		movdqu	%xmm1, -2976(%rbp)
- 18917      60F4FFFF 
- 18918 10fb5 F30F7F85 		movdqu	%xmm0, -2992(%rbp)
- 18918      50F4FFFF 
- 18919              	.LBB4560:
- 18920              	.LBB4561:
-2167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 18921              		.loc 2 2167 0
- 18922 10fbd F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 18922      60F4FFFF 
- 18923 10fc5 F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 18923      80F4FFFF 
-2168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mround_keys = round_keys;
- 18924              		.loc 2 2168 0
- 18925 10fcd F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 18925      50F4FFFF 
- 18926 10fd5 F30F7F85 		movdqu	%xmm0, -2960(%rbp)
- 18926      70F4FFFF 
- 18927              	.LBB4562:
-2171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", mstate);
- 18928              		.loc 2 2171 0
- 18929 10fdd F30F6F85 		movdqu	-2944(%rbp), %xmm0
- 18929      80F4FFFF 
- 18930 10fe5 F30F7F85 		movdqu	%xmm0, -3344(%rbp)
- 18930      F0F2FFFF 
- 18931 10fed E8000000 		call	KDbgWriterGet at PLT
- 18931      00
- 18932 10ff2 4885C0   		testq	%rax, %rax
- 18933 10ff5 7479     		je	.L322
- 18934 10ff7 BF030000 		movl	$3, %edi
- 18934      00
- 18935 10ffc E8000000 		call	KDbgCondToFlag at PLT
- 18935      00
- 18936 11001 4889C6   		movq	%rax, %rsi
- 18937 11004 BF100000 		movl	$16, %edi
- 18937      00
- 18938 11009 E8000000 		call	KDbgTestModConds at PLT
- 18938      00
- 18939 1100e 84C0     		testb	%al, %al
- 18940 11010 745E     		je	.L322
- 18941 11012 8B85FCF2 		movl	-3332(%rbp), %eax
- 18941      FFFF
- 18942 11018 89C7     		movl	%eax, %edi
- 18943 1101a E8E1EFFE 		call	bswap_32
- 18943      FF
- 18944 1101f 4189C5   		movl	%eax, %r13d
- 18945 11022 8B85F8F2 		movl	-3336(%rbp), %eax
- 18945      FFFF
- 18946 11028 89C7     		movl	%eax, %edi
- 18947 1102a E8D1EFFE 		call	bswap_32
- 18947      FF
- 18948 1102f 4189C4   		movl	%eax, %r12d
- 18949 11032 8B85F4F2 		movl	-3340(%rbp), %eax
- 18949      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 573
-
-
- 18950 11038 89C7     		movl	%eax, %edi
- 18951 1103a E8C1EFFE 		call	bswap_32
- 18951      FF
- 18952 1103f 89C3     		movl	%eax, %ebx
- 18953 11041 8B85F0F2 		movl	-3344(%rbp), %eax
- 18953      FFFF
- 18954 11047 89C7     		movl	%eax, %edi
- 18955 11049 E8B2EFFE 		call	bswap_32
- 18955      FF
- 18956 1104e 4589E9   		movl	%r13d, %r9d
- 18957 11051 4589E0   		movl	%r12d, %r8d
- 18958 11054 89D9     		movl	%ebx, %ecx
- 18959 11056 89C2     		movl	%eax, %edx
- 18960 11058 488D3500 		leaq	.LC8(%rip), %rsi
- 18960      000000
- 18961 1105f 488D3D00 		leaq	.LC1(%rip), %rdi
- 18961      000000
- 18962 11066 B8000000 		movl	$0, %eax
- 18962      00
- 18963 1106b E8000000 		call	KDbgMsg at PLT
- 18963      00
- 18964              	.L322:
- 18965 11070 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 18965      60F4FFFF 
- 18966 11078 F30F7F85 		movdqu	%xmm0, -2928(%rbp)
- 18966      90F4FFFF 
- 18967 11080 F30F6F85 		movdqu	-2928(%rbp), %xmm0
- 18967      90F4FFFF 
- 18968 11088 F30F7F85 		movdqu	%xmm0, -2896(%rbp)
- 18968      B0F4FFFF 
- 18969 11090 488D0500 		leaq	KAESBlockCipherVecRegRijndaelInvSBoxV(%rip), %rax
- 18969      000000
- 18970 11097 488985A8 		movq	%rax, -2904(%rbp)
- 18970      F4FFFF
- 18971              	.LBE4562:
- 18972              	.LBB4563:
- 18973              	.LBB4564:
- 18974              	.LBB4565:
- 18975              	.LBB4566:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 18976              		.loc 2 851 0
- 18977 1109e 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 18977      00000000 
- 18978 110a6 F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 18978      D0F4FFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 18979              		.loc 2 854 0
- 18980 110ae 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 18980      00000000 
- 18981 110b6 F30F6F8D 		movdqu	-2896(%rbp), %xmm1
- 18981      B0F4FFFF 
- 18982 110be F30F7F8D 		movdqu	%xmm1, -2784(%rbp)
- 18982      20F5FFFF 
- 18983 110c6 F30F7F85 		movdqu	%xmm0, -2800(%rbp)
- 18983      10F5FFFF 
- 18984              	.LBB4567:
- 18985              	.LBB4568:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 574
-
-
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 18986              		.loc 2 206 0
- 18987 110ce F30F6F85 		movdqu	-2800(%rbp), %xmm0
- 18987      10F5FFFF 
- 18988 110d6 F30F6F8D 		movdqu	-2784(%rbp), %xmm1
- 18988      20F5FFFF 
- 18989 110de 660FDBC1 		pand	%xmm1, %xmm0
- 18990              	.LBE4568:
- 18991              	.LBE4567:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 18992              		.loc 2 854 0
- 18993 110e2 F30F7F85 		movdqu	%xmm0, -2816(%rbp)
- 18993      00F5FFFF 
- 18994 110ea F30F6F85 		movdqu	-2896(%rbp), %xmm0
- 18994      B0F4FFFF 
- 18995 110f2 F30F7F85 		movdqu	%xmm0, -2752(%rbp)
- 18995      40F5FFFF 
- 18996              	.LBB4569:
- 18997              	.LBB4570:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 18998              		.loc 3 433 0
- 18999 110fa F30F6F85 		movdqu	-2752(%rbp), %xmm0
- 18999      40F5FFFF 
- 19000 11102 660F72D0 		psrld	$4, %xmm0
- 19000      04
- 19001              	.LBE4570:
- 19002              	.LBE4569:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 19003              		.loc 2 857 0
- 19004 11107 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 19004      F0F4FFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 19005              		.loc 2 859 0
- 19006 1110f 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 19006      00000000 
- 19007 11117 F30F6F8D 		movdqu	-2832(%rbp), %xmm1
- 19007      F0F4FFFF 
- 19008 1111f F30F7F8D 		movdqu	%xmm1, -2720(%rbp)
- 19008      60F5FFFF 
- 19009 11127 F30F7F85 		movdqu	%xmm0, -2736(%rbp)
- 19009      50F5FFFF 
- 19010              	.LBB4571:
- 19011              	.LBB4572:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 19012              		.loc 2 206 0
- 19013 1112f F30F6F85 		movdqu	-2736(%rbp), %xmm0
- 19013      50F5FFFF 
- 19014 11137 F30F6F8D 		movdqu	-2720(%rbp), %xmm1
- 19014      60F5FFFF 
- 19015 1113f 660FDBC1 		pand	%xmm1, %xmm0
- 19016              	.LBE4572:
- 19017              	.LBE4571:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 19018              		.loc 2 859 0
- 19019 11143 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 19019      F0F4FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 575
-
-
- 19020              		.loc 2 866 0
- 19021 1114b C785CCF4 		movl	$0, -2868(%rbp)
- 19021      FFFF0000 
- 19021      0000
- 19022 11155 E9BE0100 		jmp	.L323
- 19022      00
- 19023              	.L324:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 19024              		.loc 2 868 0
- 19025 1115a 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 19025      00000000 
- 19026 11162 F30F7F85 		movdqu	%xmm0, -2688(%rbp)
- 19026      80F5FFFF 
- 19027 1116a F30F6F85 		movdqu	-2832(%rbp), %xmm0
- 19027      F0F4FFFF 
- 19028 11172 F30F7F85 		movdqu	%xmm0, -2704(%rbp)
- 19028      70F5FFFF 
- 19029 1117a F30F6F85 		movdqu	-2688(%rbp), %xmm0
- 19029      80F5FFFF 
- 19030 11182 F30F7F85 		movdqu	%xmm0, -2656(%rbp)
- 19030      A0F5FFFF 
- 19031 1118a F30F6F85 		movdqu	-2704(%rbp), %xmm0
- 19031      70F5FFFF 
- 19032 11192 F30F7F85 		movdqu	%xmm0, -2672(%rbp)
- 19032      90F5FFFF 
- 19033              	.LBB4573:
- 19034              	.LBB4574:
- 19035              	.LBB4575:
- 19036              	.LBB4576:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19037              		.loc 3 529 0
- 19038 1119a F30F6F8D 		movdqu	-2672(%rbp), %xmm1
- 19038      90F5FFFF 
- 19039 111a2 F30F6F85 		movdqu	-2656(%rbp), %xmm0
- 19039      A0F5FFFF 
- 19040 111aa 660F3800 		pshufb	%xmm1, %xmm0
- 19040      C1
- 19041              	.LBE4576:
- 19042              	.LBE4575:
- 19043              	.LBE4574:
- 19044              	.LBE4573:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 19045              		.loc 2 868 0
- 19046 111af F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 19046      E0F4FFFF 
- 19047 111b7 F30F6F85 		movdqu	-2816(%rbp), %xmm0
- 19047      00F5FFFF 
- 19048 111bf F30F7F85 		movdqu	%xmm0, -2624(%rbp)
- 19048      C0F5FFFF 
- 19049 111c7 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 19049      E0F4FFFF 
- 19050 111cf F30F7F85 		movdqu	%xmm0, -2640(%rbp)
- 19050      B0F5FFFF 
- 19051              	.LBB4577:
- 19052              	.LBB4578:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 19053              		.loc 2 234 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 576
-
-
- 19054 111d7 F30F6F85 		movdqu	-2640(%rbp), %xmm0
- 19054      B0F5FFFF 
- 19055 111df F30F6F8D 		movdqu	-2624(%rbp), %xmm1
- 19055      C0F5FFFF 
- 19056 111e7 660FEBC1 		por	%xmm1, %xmm0
- 19057              	.LBE4578:
- 19058              	.LBE4577:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 19059              		.loc 2 870 0
- 19060 111eb F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 19060      E0F4FFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 19061              		.loc 2 872 0
- 19062 111f3 8B85CCF4 		mov	-2868(%rbp), %eax
- 19062      FFFF
- 19063 111f9 48C1E004 		salq	$4, %rax
- 19064 111fd 480385A8 		addq	-2904(%rbp), %rax
- 19064      F4FFFF
- 19065 11204 660F6F00 		movdqa	(%rax), %xmm0
- 19066 11208 F30F7F85 		movdqu	%xmm0, -2592(%rbp)
- 19066      E0F5FFFF 
- 19067 11210 F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 19067      E0F4FFFF 
- 19068 11218 F30F7F85 		movdqu	%xmm0, -2608(%rbp)
- 19068      D0F5FFFF 
- 19069 11220 F30F6F85 		movdqu	-2592(%rbp), %xmm0
- 19069      E0F5FFFF 
- 19070 11228 F30F7F85 		movdqu	%xmm0, -2560(%rbp)
- 19070      00F6FFFF 
- 19071 11230 F30F6F85 		movdqu	-2608(%rbp), %xmm0
- 19071      D0F5FFFF 
- 19072 11238 F30F7F85 		movdqu	%xmm0, -2576(%rbp)
- 19072      F0F5FFFF 
- 19073              	.LBB4579:
- 19074              	.LBB4580:
- 19075              	.LBB4581:
- 19076              	.LBB4582:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19077              		.loc 3 529 0
- 19078 11240 F30F6F8D 		movdqu	-2576(%rbp), %xmm1
- 19078      F0F5FFFF 
- 19079 11248 F30F6F85 		movdqu	-2560(%rbp), %xmm0
- 19079      00F6FFFF 
- 19080 11250 660F3800 		pshufb	%xmm1, %xmm0
- 19080      C1
- 19081              	.LBE4582:
- 19082              	.LBE4581:
- 19083              	.LBE4580:
- 19084              	.LBE4579:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 19085              		.loc 2 872 0
- 19086 11255 F30F7F85 		movdqu	%xmm0, -2848(%rbp)
- 19086      E0F4FFFF 
- 19087 1125d F30F6F85 		movdqu	-2864(%rbp), %xmm0
- 19087      D0F4FFFF 
- 19088 11265 F30F7F85 		movdqu	%xmm0, -2528(%rbp)
- 19088      20F6FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 577
-
-
- 19089 1126d F30F6F85 		movdqu	-2848(%rbp), %xmm0
- 19089      E0F4FFFF 
- 19090 11275 F30F7F85 		movdqu	%xmm0, -2544(%rbp)
- 19090      10F6FFFF 
- 19091              	.LBB4583:
- 19092              	.LBB4584:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 19093              		.loc 2 234 0
- 19094 1127d F30F6F85 		movdqu	-2544(%rbp), %xmm0
- 19094      10F6FFFF 
- 19095 11285 F30F6F8D 		movdqu	-2528(%rbp), %xmm1
- 19095      20F6FFFF 
- 19096 1128d 660FEBC1 		por	%xmm1, %xmm0
- 19097              	.LBE4584:
- 19098              	.LBE4583:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 19099              		.loc 2 874 0
- 19100 11291 F30F7F85 		movdqu	%xmm0, -2864(%rbp)
- 19100      D0F4FFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 19101              		.loc 2 876 0
- 19102 11299 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 19102      00000000 
- 19103 112a1 F30F6F8D 		movdqu	-2832(%rbp), %xmm1
- 19103      F0F4FFFF 
- 19104 112a9 F30F7F8D 		movdqu	%xmm1, -2496(%rbp)
- 19104      40F6FFFF 
- 19105 112b1 F30F7F85 		movdqu	%xmm0, -2512(%rbp)
- 19105      30F6FFFF 
- 19106              	.LBB4585:
- 19107              	.LBB4586:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 19108              		.loc 2 290 0
- 19109 112b9 F30F6F8D 		movdqu	-2512(%rbp), %xmm1
- 19109      30F6FFFF 
- 19110 112c1 F30F6F85 		movdqu	-2496(%rbp), %xmm0
- 19110      40F6FFFF 
- 19111 112c9 660FF8C1 		psubb	%xmm1, %xmm0
- 19112              	.LBE4586:
- 19113              	.LBE4585:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 19114              		.loc 2 876 0
- 19115 112cd F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 19115      F0F4FFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 19116              		.loc 2 878 0
- 19117 112d5 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 19117      00000000 
- 19118 112dd F30F6F8D 		movdqu	-2832(%rbp), %xmm1
- 19118      F0F4FFFF 
- 19119 112e5 F30F7F8D 		movdqu	%xmm1, -2464(%rbp)
- 19119      60F6FFFF 
- 19120 112ed F30F7F85 		movdqu	%xmm0, -2480(%rbp)
- 19120      50F6FFFF 
- 19121              	.LBB4587:
- 19122              	.LBB4588:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 578
-
-
- 19123              		.loc 2 206 0
- 19124 112f5 F30F6F85 		movdqu	-2480(%rbp), %xmm0
- 19124      50F6FFFF 
- 19125 112fd F30F6F8D 		movdqu	-2464(%rbp), %xmm1
- 19125      60F6FFFF 
- 19126 11305 660FDBC1 		pand	%xmm1, %xmm0
- 19127              	.LBE4588:
- 19128              	.LBE4587:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 19129              		.loc 2 878 0
- 19130 11309 F30F7F85 		movdqu	%xmm0, -2832(%rbp)
- 19130      F0F4FFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 19131              		.loc 2 866 0
- 19132 11311 8385CCF4 		addl	$1, -2868(%rbp)
- 19132      FFFF01
- 19133              	.L323:
- 19134 11318 83BDCCF4 		cmpl	$15, -2868(%rbp)
- 19134      FFFF0F
- 19135 1131f 0F8635FE 		jbe	.L324
- 19135      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 19136              		.loc 2 882 0
- 19137 11325 F30F6F85 		movdqu	-2864(%rbp), %xmm0
- 19137      D0F4FFFF 
- 19138              	.LBE4566:
- 19139              	.LBE4565:
- 19140              	.LBE4564:
- 19141              	.LBE4563:
-2185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
- 19142              		.loc 2 2185 0
- 19143 1132d F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 19143      60F4FFFF 
-2188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 19144              		.loc 2 2188 0
- 19145 11335 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 19145      60F4FFFF 
- 19146 1133d F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 19146      80F4FFFF 
- 19147              	.LBB4589:
-2190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", mstate);
- 19148              		.loc 2 2190 0
- 19149 11345 F30F6F85 		movdqu	-2944(%rbp), %xmm0
- 19149      80F4FFFF 
- 19150 1134d F30F7F85 		movdqu	%xmm0, -3360(%rbp)
- 19150      E0F2FFFF 
- 19151 11355 E8000000 		call	KDbgWriterGet at PLT
- 19151      00
- 19152 1135a 4885C0   		testq	%rax, %rax
- 19153 1135d 7479     		je	.L326
- 19154 1135f BF030000 		movl	$3, %edi
- 19154      00
- 19155 11364 E8000000 		call	KDbgCondToFlag at PLT
- 19155      00
- 19156 11369 4889C6   		movq	%rax, %rsi
- 19157 1136c BF100000 		movl	$16, %edi
- 19157      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 579
-
-
- 19158 11371 E8000000 		call	KDbgTestModConds at PLT
- 19158      00
- 19159 11376 84C0     		testb	%al, %al
- 19160 11378 745E     		je	.L326
- 19161 1137a 8B85ECF2 		movl	-3348(%rbp), %eax
- 19161      FFFF
- 19162 11380 89C7     		movl	%eax, %edi
- 19163 11382 E879ECFE 		call	bswap_32
- 19163      FF
- 19164 11387 4189C5   		movl	%eax, %r13d
- 19165 1138a 8B85E8F2 		movl	-3352(%rbp), %eax
- 19165      FFFF
- 19166 11390 89C7     		movl	%eax, %edi
- 19167 11392 E869ECFE 		call	bswap_32
- 19167      FF
- 19168 11397 4189C4   		movl	%eax, %r12d
- 19169 1139a 8B85E4F2 		movl	-3356(%rbp), %eax
- 19169      FFFF
- 19170 113a0 89C7     		movl	%eax, %edi
- 19171 113a2 E859ECFE 		call	bswap_32
- 19171      FF
- 19172 113a7 89C3     		movl	%eax, %ebx
- 19173 113a9 8B85E0F2 		movl	-3360(%rbp), %eax
- 19173      FFFF
- 19174 113af 89C7     		movl	%eax, %edi
- 19175 113b1 E84AECFE 		call	bswap_32
- 19175      FF
- 19176 113b6 4589E9   		movl	%r13d, %r9d
- 19177 113b9 4589E0   		movl	%r12d, %r8d
- 19178 113bc 89D9     		movl	%ebx, %ecx
- 19179 113be 89C2     		movl	%eax, %edx
- 19180 113c0 488D3500 		leaq	.LC15(%rip), %rsi
- 19180      000000
- 19181 113c7 488D3D00 		leaq	.LC1(%rip), %rdi
- 19181      000000
- 19182 113ce B8000000 		movl	$0, %eax
- 19182      00
- 19183 113d3 E8000000 		call	KDbgMsg at PLT
- 19183      00
- 19184              	.L326:
- 19185 113d8 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 19185      60F4FFFF 
- 19186 113e0 F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 19186      70F6FFFF 
- 19187              	.LBE4589:
- 19188              	.LBB4590:
- 19189              	.LBB4591:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 19190              		.loc 2 612 0
- 19191 113e8 660F6F05 		movdqa	InvShiftRowTable.7367(%rip), %xmm0
- 19191      00000000 
- 19192 113f0 F30F6F8D 		movdqu	-2448(%rbp), %xmm1
- 19192      70F6FFFF 
- 19193 113f8 F30F7F8D 		movdqu	%xmm1, -2416(%rbp)
- 19193      90F6FFFF 
- 19194 11400 F30F7F85 		movdqu	%xmm0, -2432(%rbp)
- 19194      80F6FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 580
-
-
- 19195 11408 F30F6F85 		movdqu	-2416(%rbp), %xmm0
- 19195      90F6FFFF 
- 19196 11410 F30F7F85 		movdqu	%xmm0, -2384(%rbp)
- 19196      B0F6FFFF 
- 19197 11418 F30F6F85 		movdqu	-2432(%rbp), %xmm0
- 19197      80F6FFFF 
- 19198 11420 F30F7F85 		movdqu	%xmm0, -2400(%rbp)
- 19198      A0F6FFFF 
- 19199              	.LBB4592:
- 19200              	.LBB4593:
- 19201              	.LBB4594:
- 19202              	.LBB4595:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19203              		.loc 3 529 0
- 19204 11428 F30F6F8D 		movdqu	-2400(%rbp), %xmm1
- 19204      A0F6FFFF 
- 19205 11430 F30F6F85 		movdqu	-2384(%rbp), %xmm0
- 19205      B0F6FFFF 
- 19206 11438 660F3800 		pshufb	%xmm1, %xmm0
- 19206      C1
- 19207              	.LBE4595:
- 19208              	.LBE4594:
- 19209              	.LBE4593:
- 19210              	.LBE4592:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 19211              		.loc 2 612 0
- 19212 1143d F30F7F85 		movdqu	%xmm0, -2448(%rbp)
- 19212      70F6FFFF 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19213              		.loc 2 613 0
- 19214 11445 F30F6F85 		movdqu	-2448(%rbp), %xmm0
- 19214      70F6FFFF 
- 19215              	.LBE4591:
- 19216              	.LBE4590:
-2193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
- 19217              		.loc 2 2193 0
- 19218 1144d F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 19218      60F4FFFF 
-2196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 19219              		.loc 2 2196 0
- 19220 11455 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 19220      60F4FFFF 
- 19221 1145d F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 19221      80F4FFFF 
- 19222              	.LBB4596:
-2198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", mstate);
- 19223              		.loc 2 2198 0
- 19224 11465 F30F6F85 		movdqu	-2944(%rbp), %xmm0
- 19224      80F4FFFF 
- 19225 1146d F30F7F85 		movdqu	%xmm0, -3376(%rbp)
- 19225      D0F2FFFF 
- 19226 11475 E8000000 		call	KDbgWriterGet at PLT
- 19226      00
- 19227 1147a 4885C0   		testq	%rax, %rax
- 19228 1147d 7479     		je	.L328
- 19229 1147f BF030000 		movl	$3, %edi
- 19229      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 581
-
-
- 19230 11484 E8000000 		call	KDbgCondToFlag at PLT
- 19230      00
- 19231 11489 4889C6   		movq	%rax, %rsi
- 19232 1148c BF100000 		movl	$16, %edi
- 19232      00
- 19233 11491 E8000000 		call	KDbgTestModConds at PLT
- 19233      00
- 19234 11496 84C0     		testb	%al, %al
- 19235 11498 745E     		je	.L328
- 19236 1149a 8B85DCF2 		movl	-3364(%rbp), %eax
- 19236      FFFF
- 19237 114a0 89C7     		movl	%eax, %edi
- 19238 114a2 E859EBFE 		call	bswap_32
- 19238      FF
- 19239 114a7 4189C5   		movl	%eax, %r13d
- 19240 114aa 8B85D8F2 		movl	-3368(%rbp), %eax
- 19240      FFFF
- 19241 114b0 89C7     		movl	%eax, %edi
- 19242 114b2 E849EBFE 		call	bswap_32
- 19242      FF
- 19243 114b7 4189C4   		movl	%eax, %r12d
- 19244 114ba 8B85D4F2 		movl	-3372(%rbp), %eax
- 19244      FFFF
- 19245 114c0 89C7     		movl	%eax, %edi
- 19246 114c2 E839EBFE 		call	bswap_32
- 19246      FF
- 19247 114c7 89C3     		movl	%eax, %ebx
- 19248 114c9 8B85D0F2 		movl	-3376(%rbp), %eax
- 19248      FFFF
- 19249 114cf 89C7     		movl	%eax, %edi
- 19250 114d1 E82AEBFE 		call	bswap_32
- 19250      FF
- 19251 114d6 4589E9   		movl	%r13d, %r9d
- 19252 114d9 4589E0   		movl	%r12d, %r8d
- 19253 114dc 89D9     		movl	%ebx, %ecx
- 19254 114de 89C2     		movl	%eax, %edx
- 19255 114e0 488D3500 		leaq	.LC16(%rip), %rsi
- 19255      000000
- 19256 114e7 488D3D00 		leaq	.LC1(%rip), %rdi
- 19256      000000
- 19257 114ee B8000000 		movl	$0, %eax
- 19257      00
- 19258 114f3 E8000000 		call	KDbgMsg at PLT
- 19258      00
- 19259              	.L328:
- 19260 114f8 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 19260      60F4FFFF 
- 19261 11500 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 19261      C0F6FFFF 
- 19262 11508 F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 19262      C0F6FFFF 
- 19263 11510 F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 19263      D0F6FFFF 
- 19264              	.LBE4596:
- 19265              	.LBB4597:
- 19266              	.LBB4598:
- 19267              	.LBB4599:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 582
-
-
- 19268              	.LBB4600:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19269              		.loc 2 667 0
- 19270 11518 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 19270      00000000 
- 19271 11520 F30F6F8D 		movdqu	-2352(%rbp), %xmm1
- 19271      D0F6FFFF 
- 19272 11528 F30F7F8D 		movdqu	%xmm1, -2320(%rbp)
- 19272      F0F6FFFF 
- 19273 11530 F30F7F85 		movdqu	%xmm0, -2336(%rbp)
- 19273      E0F6FFFF 
- 19274 11538 F30F6F85 		movdqu	-2320(%rbp), %xmm0
- 19274      F0F6FFFF 
- 19275 11540 F30F7F85 		movdqu	%xmm0, -2288(%rbp)
- 19275      10F7FFFF 
- 19276 11548 F30F6F85 		movdqu	-2336(%rbp), %xmm0
- 19276      E0F6FFFF 
- 19277 11550 F30F7F85 		movdqu	%xmm0, -2304(%rbp)
- 19277      00F7FFFF 
- 19278              	.LBB4601:
- 19279              	.LBB4602:
- 19280              	.LBB4603:
- 19281              	.LBB4604:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19282              		.loc 3 529 0
- 19283 11558 F30F6F8D 		movdqu	-2304(%rbp), %xmm1
- 19283      00F7FFFF 
- 19284 11560 F30F6F85 		movdqu	-2288(%rbp), %xmm0
- 19284      10F7FFFF 
- 19285 11568 660F3800 		pshufb	%xmm1, %xmm0
- 19285      C1
- 19286              	.LBE4604:
- 19287              	.LBE4603:
- 19288              	.LBE4602:
- 19289              	.LBE4601:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19290              		.loc 2 667 0
- 19291 1156d F30F7F85 		movdqu	%xmm0, -2352(%rbp)
- 19291      D0F6FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19292              		.loc 2 668 0
- 19293 11575 F30F6F85 		movdqu	-2352(%rbp), %xmm0
- 19293      D0F6FFFF 
- 19294              	.LBE4600:
- 19295              	.LBE4599:
-1106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r1 = AESBCMEMBER(RotBytesLeft) (state);
- 19296              		.loc 2 1106 0
- 19297 1157d 660F7F85 		movdqa	%xmm0, -3520(%rbp)
- 19297      40F2FFFF 
- 19298 11585 660F6F85 		movdqa	-3520(%rbp), %xmm0
- 19298      40F2FFFF 
- 19299 1158d F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 19299      20F7FFFF 
- 19300              	.LBB4605:
- 19301              	.LBB4606:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19302              		.loc 2 667 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 583
-
-
- 19303 11595 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 19303      00000000 
- 19304 1159d F30F6F8D 		movdqu	-2272(%rbp), %xmm1
- 19304      20F7FFFF 
- 19305 115a5 F30F7F8D 		movdqu	%xmm1, -2240(%rbp)
- 19305      40F7FFFF 
- 19306 115ad F30F7F85 		movdqu	%xmm0, -2256(%rbp)
- 19306      30F7FFFF 
- 19307 115b5 F30F6F85 		movdqu	-2240(%rbp), %xmm0
- 19307      40F7FFFF 
- 19308 115bd F30F7F85 		movdqu	%xmm0, -2208(%rbp)
- 19308      60F7FFFF 
- 19309 115c5 F30F6F85 		movdqu	-2256(%rbp), %xmm0
- 19309      30F7FFFF 
- 19310 115cd F30F7F85 		movdqu	%xmm0, -2224(%rbp)
- 19310      50F7FFFF 
- 19311              	.LBB4607:
- 19312              	.LBB4608:
- 19313              	.LBB4609:
- 19314              	.LBB4610:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19315              		.loc 3 529 0
- 19316 115d5 F30F6F8D 		movdqu	-2224(%rbp), %xmm1
- 19316      50F7FFFF 
- 19317 115dd F30F6F85 		movdqu	-2208(%rbp), %xmm0
- 19317      60F7FFFF 
- 19318 115e5 660F3800 		pshufb	%xmm1, %xmm0
- 19318      C1
- 19319              	.LBE4610:
- 19320              	.LBE4609:
- 19321              	.LBE4608:
- 19322              	.LBE4607:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19323              		.loc 2 667 0
- 19324 115ea F30F7F85 		movdqu	%xmm0, -2272(%rbp)
- 19324      20F7FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19325              		.loc 2 668 0
- 19326 115f2 F30F6F85 		movdqu	-2272(%rbp), %xmm0
- 19326      20F7FFFF 
- 19327              	.LBE4606:
- 19328              	.LBE4605:
-1107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r2 = AESBCMEMBER(RotBytesLeft) (r1);
- 19329              		.loc 2 1107 0
- 19330 115fa 660F7F85 		movdqa	%xmm0, -3536(%rbp)
- 19330      30F2FFFF 
- 19331 11602 660F6F8D 		movdqa	-3536(%rbp), %xmm1
- 19331      30F2FFFF 
- 19332 1160a F30F7F8D 		movdqu	%xmm1, -2192(%rbp)
- 19332      70F7FFFF 
- 19333              	.LBB4611:
- 19334              	.LBB4612:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19335              		.loc 2 667 0
- 19336 11612 660F6F05 		movdqa	ShiftRowTable.7385(%rip), %xmm0
- 19336      00000000 
- 19337 1161a F30F6F8D 		movdqu	-2192(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 584
-
-
- 19337      70F7FFFF 
- 19338 11622 F30F7F8D 		movdqu	%xmm1, -2160(%rbp)
- 19338      90F7FFFF 
- 19339 1162a F30F7F85 		movdqu	%xmm0, -2176(%rbp)
- 19339      80F7FFFF 
- 19340 11632 F30F6F85 		movdqu	-2160(%rbp), %xmm0
- 19340      90F7FFFF 
- 19341 1163a F30F7F85 		movdqu	%xmm0, -2128(%rbp)
- 19341      B0F7FFFF 
- 19342 11642 F30F6F85 		movdqu	-2176(%rbp), %xmm0
- 19342      80F7FFFF 
- 19343 1164a F30F7F85 		movdqu	%xmm0, -2144(%rbp)
- 19343      A0F7FFFF 
- 19344              	.LBB4613:
- 19345              	.LBB4614:
- 19346              	.LBB4615:
- 19347              	.LBB4616:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19348              		.loc 3 529 0
- 19349 11652 F30F6F8D 		movdqu	-2144(%rbp), %xmm1
- 19349      A0F7FFFF 
- 19350 1165a F30F6F85 		movdqu	-2128(%rbp), %xmm0
- 19350      B0F7FFFF 
- 19351 11662 660F3800 		pshufb	%xmm1, %xmm0
- 19351      C1
- 19352              	.LBE4616:
- 19353              	.LBE4615:
- 19354              	.LBE4614:
- 19355              	.LBE4613:
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, ShiftRowTable);
- 19356              		.loc 2 667 0
- 19357 11667 F30F7F85 		movdqu	%xmm0, -2192(%rbp)
- 19357      70F7FFFF 
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 19358              		.loc 2 668 0
- 19359 1166f F30F6F85 		movdqu	-2192(%rbp), %xmm0
- 19359      70F7FFFF 
- 19360              	.LBE4612:
- 19361              	.LBE4611:
-1108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     r3 = AESBCMEMBER(RotBytesLeft) (r2);        
- 19362              		.loc 2 1108 0
- 19363 11677 660F7F85 		movdqa	%xmm0, -3552(%rbp)
- 19363      20F2FFFF 
- 19364 1167f F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 19364      C0F6FFFF 
- 19365 11687 F30F7F85 		movdqu	%xmm0, -2096(%rbp)
- 19365      D0F7FFFF 
- 19366 1168f 660F6F85 		movdqa	-3536(%rbp), %xmm0
- 19366      30F2FFFF 
- 19367 11697 F30F7F85 		movdqu	%xmm0, -2112(%rbp)
- 19367      C0F7FFFF 
- 19368              	.LBB4617:
- 19369              	.LBB4618:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19370              		.loc 2 178 0
- 19371 1169f F30F6F85 		movdqu	-2112(%rbp), %xmm0
- 19371      C0F7FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 585
-
-
- 19372 116a7 F30F6F8D 		movdqu	-2096(%rbp), %xmm1
- 19372      D0F7FFFF 
- 19373 116af 660FEFC1 		pxor	%xmm1, %xmm0
- 19374              	.LBE4618:
- 19375              	.LBE4617:
-1110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(VecXor) (state, r2);
- 19376              		.loc 2 1110 0
- 19377 116b3 660F7F85 		movdqa	%xmm0, -3584(%rbp)
- 19377      00F2FFFF 
- 19378 116bb F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 19378      C0F6FFFF 
- 19379 116c3 F30F7F85 		movdqu	%xmm0, -2064(%rbp)
- 19379      F0F7FFFF 
- 19380 116cb 660F6F8D 		movdqa	-3520(%rbp), %xmm1
- 19380      40F2FFFF 
- 19381 116d3 F30F7F8D 		movdqu	%xmm1, -2080(%rbp)
- 19381      E0F7FFFF 
- 19382              	.LBB4619:
- 19383              	.LBB4620:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19384              		.loc 2 178 0
- 19385 116db F30F6F85 		movdqu	-2080(%rbp), %xmm0
- 19385      E0F7FFFF 
- 19386 116e3 F30F6F8D 		movdqu	-2064(%rbp), %xmm1
- 19386      F0F7FFFF 
- 19387 116eb 660FEFC1 		pxor	%xmm1, %xmm0
- 19388              	.LBE4620:
- 19389              	.LBE4619:
-1111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(VecXor) (state, r1);
- 19390              		.loc 2 1111 0
- 19391 116ef 660F7F85 		movdqa	%xmm0, -3568(%rbp)
- 19391      10F2FFFF 
- 19392 116f7 660F6F85 		movdqa	-3536(%rbp), %xmm0
- 19392      30F2FFFF 
- 19393 116ff F30F7F85 		movdqu	%xmm0, -2032(%rbp)
- 19393      10F8FFFF 
- 19394 11707 660F6F8D 		movdqa	-3552(%rbp), %xmm1
- 19394      20F2FFFF 
- 19395 1170f F30F7F8D 		movdqu	%xmm1, -2048(%rbp)
- 19395      00F8FFFF 
- 19396              	.LBB4621:
- 19397              	.LBB4622:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19398              		.loc 2 178 0
- 19399 11717 F30F6F85 		movdqu	-2048(%rbp), %xmm0
- 19399      00F8FFFF 
- 19400 1171f F30F6F8D 		movdqu	-2032(%rbp), %xmm1
- 19400      10F8FFFF 
- 19401 11727 660FEFC1 		pxor	%xmm1, %xmm0
- 19402              	.LBE4622:
- 19403              	.LBE4621:
-1112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (r2, r3);
- 19404              		.loc 2 1112 0
- 19405 1172b 660F7F85 		movdqa	%xmm0, -3600(%rbp)
- 19405      F0F1FFFF 
- 19406 11733 660F6F85 		movdqa	-3600(%rbp), %xmm0
- 19406      F0F1FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 586
-
-
- 19407 1173b F30F7F85 		movdqu	%xmm0, -2000(%rbp)
- 19407      30F8FFFF 
- 19408 11743 660F6F8D 		movdqa	-3520(%rbp), %xmm1
- 19408      40F2FFFF 
- 19409 1174b F30F7F8D 		movdqu	%xmm1, -2016(%rbp)
- 19409      20F8FFFF 
- 19410              	.LBB4623:
- 19411              	.LBB4624:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19412              		.loc 2 178 0
- 19413 11753 F30F6F85 		movdqu	-2016(%rbp), %xmm0
- 19413      20F8FFFF 
- 19414 1175b F30F6F8D 		movdqu	-2000(%rbp), %xmm1
- 19414      30F8FFFF 
- 19415 11763 660FEFC1 		pxor	%xmm1, %xmm0
- 19416              	.LBE4624:
- 19417              	.LBE4623:
-1113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (f8, r1);
- 19418              		.loc 2 1113 0
- 19419 11767 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 19419      C0F6FFFF 
- 19420 1176f 660F6F85 		movdqa	-3600(%rbp), %xmm0
- 19420      F0F1FFFF 
- 19421 11777 F30F7F85 		movdqu	%xmm0, -1968(%rbp)
- 19421      50F8FFFF 
- 19422 1177f 660F6F8D 		movdqa	-3568(%rbp), %xmm1
- 19422      10F2FFFF 
- 19423 11787 F30F7F8D 		movdqu	%xmm1, -1984(%rbp)
- 19423      40F8FFFF 
- 19424              	.LBB4625:
- 19425              	.LBB4626:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19426              		.loc 2 178 0
- 19427 1178f F30F6F85 		movdqu	-1984(%rbp), %xmm0
- 19427      40F8FFFF 
- 19428 11797 F30F6F8D 		movdqu	-1968(%rbp), %xmm1
- 19428      50F8FFFF 
- 19429 1179f 660FEFC1 		pxor	%xmm1, %xmm0
- 19430              	.LBE4626:
- 19431              	.LBE4625:
-1114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(VecXor) (f8, f2);
- 19432              		.loc 2 1114 0
- 19433 117a3 660F7F85 		movdqa	%xmm0, -3600(%rbp)
- 19433      F0F1FFFF 
- 19434 117ab 660F6F85 		movdqa	-3568(%rbp), %xmm0
- 19434      10F2FFFF 
- 19435 117b3 F30F7F85 		movdqu	%xmm0, -1936(%rbp)
- 19435      70F8FFFF 
- 19436              	.LBB4627:
- 19437              	.LBB4628:
- 19438              	.LBB4629:
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 19439              		.loc 2 933 0
- 19440 117bb F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 19440      70F8FFFF 
- 19441 117c3 F30F7F85 		movdqu	%xmm0, -3296(%rbp)
- 19441      20F3FFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 587
-
-
- 19442 117cb E8000000 		call	KDbgWriterGet at PLT
- 19442      00
- 19443 117d0 4885C0   		testq	%rax, %rax
- 19444 117d3 7479     		je	.L330
- 19445 117d5 BF010000 		movl	$1, %edi
- 19445      00
- 19446 117da E8000000 		call	KDbgCondToFlag at PLT
- 19446      00
- 19447 117df 4889C6   		movq	%rax, %rsi
- 19448 117e2 BF100000 		movl	$16, %edi
- 19448      00
- 19449 117e7 E8000000 		call	KDbgTestModConds at PLT
- 19449      00
- 19450 117ec 84C0     		testb	%al, %al
- 19451 117ee 745E     		je	.L330
- 19452 117f0 8B852CF3 		movl	-3284(%rbp), %eax
- 19452      FFFF
- 19453 117f6 89C7     		movl	%eax, %edi
- 19454 117f8 E803E8FE 		call	bswap_32
- 19454      FF
- 19455 117fd 4189C5   		movl	%eax, %r13d
- 19456 11800 8B8528F3 		movl	-3288(%rbp), %eax
- 19456      FFFF
- 19457 11806 89C7     		movl	%eax, %edi
- 19458 11808 E8F3E7FE 		call	bswap_32
- 19458      FF
- 19459 1180d 4189C4   		movl	%eax, %r12d
- 19460 11810 8B8524F3 		movl	-3292(%rbp), %eax
- 19460      FFFF
- 19461 11816 89C7     		movl	%eax, %edi
- 19462 11818 E8E3E7FE 		call	bswap_32
- 19462      FF
- 19463 1181d 89C3     		movl	%eax, %ebx
- 19464 1181f 8B8520F3 		movl	-3296(%rbp), %eax
- 19464      FFFF
- 19465 11825 89C7     		movl	%eax, %edi
- 19466 11827 E8D4E7FE 		call	bswap_32
- 19466      FF
- 19467 1182c 4589E9   		movl	%r13d, %r9d
- 19468 1182f 4589E0   		movl	%r12d, %r8d
- 19469 11832 89D9     		movl	%ebx, %ecx
- 19470 11834 89C2     		movl	%eax, %edx
- 19471 11836 488D3500 		leaq	.LC5(%rip), %rsi
- 19471      000000
- 19472 1183d 488D3D00 		leaq	.LC1(%rip), %rdi
- 19472      000000
- 19473 11844 B8000000 		movl	$0, %eax
- 19473      00
- 19474 11849 E8000000 		call	KDbgMsg at PLT
- 19474      00
- 19475              	.L330:
- 19476              	.LBE4629:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 19477              		.loc 2 934 0
- 19478 1184e B8070000 		movl	$7, %eax
- 19478      00
- 19479 11853 F30F6F85 		movdqu	-1936(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 588
-
-
- 19479      70F8FFFF 
- 19480 1185b F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 19480      B0F8FFFF 
- 19481 11863 8985ACF8 		movl	%eax, -1876(%rbp)
- 19481      FFFF
- 19482 11869 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 19482      B0F8FFFF 
- 19483 11871 F30F7F85 		movdqu	%xmm0, -1840(%rbp)
- 19483      D0F8FFFF 
- 19484 11879 8B85ACF8 		movl	-1876(%rbp), %eax
- 19484      FFFF
- 19485 1187f 8985CCF8 		movl	%eax, -1844(%rbp)
- 19485      FFFF
- 19486              	.LBB4630:
- 19487              	.LBB4631:
- 19488              	.LBB4632:
- 19489              	.LBB4633:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 19490              		.loc 3 433 0
- 19491 11885 F30F6F85 		movdqu	-1840(%rbp), %xmm0
- 19491      D0F8FFFF 
- 19492 1188d 8B85CCF8 		movl	-1844(%rbp), %eax
- 19492      FFFF
- 19493 11893 8985ECF1 		movl	%eax, -3604(%rbp)
- 19493      FFFF
- 19494 11899 660F6E8D 		movd	-3604(%rbp), %xmm1
- 19494      ECF1FFFF 
- 19495 118a1 660FD2C1 		psrld	%xmm1, %xmm0
- 19496              	.LBE4633:
- 19497              	.LBE4632:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 19498              		.loc 2 488 0
- 19499 118a5 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 19499      B0F8FFFF 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 19500              		.loc 2 489 0
- 19501 118ad B8080000 		movl	$8, %eax
- 19501      00
- 19502 118b2 83BDACF8 		cmpl	$8, -1876(%rbp)
- 19502      FFFF08
- 19503 118b9 0F4E85AC 		cmovle	-1876(%rbp), %eax
- 19503      F8FFFF
- 19504 118c0 4898     		cltq
- 19505 118c2 4889C2   		movq	%rax, %rdx
- 19506 118c5 48C1E204 		salq	$4, %rdx
- 19507 118c9 488D0500 		leaq	sr_mask.7327(%rip), %rax
- 19507      000000
- 19508 118d0 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 19508      02
- 19509 118d5 F30F6F8D 		movdqu	-1872(%rbp), %xmm1
- 19509      B0F8FFFF 
- 19510 118dd F30F7F8D 		movdqu	%xmm1, -1808(%rbp)
- 19510      F0F8FFFF 
- 19511 118e5 F30F7F85 		movdqu	%xmm0, -1824(%rbp)
- 19511      E0F8FFFF 
- 19512              	.LBB4634:
- 19513              	.LBB4635:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 589
-
-
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 19514              		.loc 2 206 0
- 19515 118ed F30F6F85 		movdqu	-1824(%rbp), %xmm0
- 19515      E0F8FFFF 
- 19516 118f5 F30F6F8D 		movdqu	-1808(%rbp), %xmm1
- 19516      F0F8FFFF 
- 19517 118fd 660FDBC1 		pand	%xmm1, %xmm0
- 19518              	.LBE4635:
- 19519              	.LBE4634:
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 19520              		.loc 2 489 0
- 19521 11901 F30F7F85 		movdqu	%xmm0, -1872(%rbp)
- 19521      B0F8FFFF 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 19522              		.loc 2 490 0
- 19523 11909 F30F6F85 		movdqu	-1872(%rbp), %xmm0
- 19523      B0F8FFFF 
- 19524              	.LBE4631:
- 19525              	.LBE4630:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 19526              		.loc 2 934 0
- 19527 11911 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 19527      80F8FFFF 
- 19528              	.LBB4636:
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 19529              		.loc 2 935 0
- 19530 11919 F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 19530      80F8FFFF 
- 19531 11921 F30F7F85 		movdqu	%xmm0, -3312(%rbp)
- 19531      10F3FFFF 
- 19532 11929 E8000000 		call	KDbgWriterGet at PLT
- 19532      00
- 19533 1192e 4885C0   		testq	%rax, %rax
- 19534 11931 7479     		je	.L332
- 19535 11933 BF010000 		movl	$1, %edi
- 19535      00
- 19536 11938 E8000000 		call	KDbgCondToFlag at PLT
- 19536      00
- 19537 1193d 4889C6   		movq	%rax, %rsi
- 19538 11940 BF100000 		movl	$16, %edi
- 19538      00
- 19539 11945 E8000000 		call	KDbgTestModConds at PLT
- 19539      00
- 19540 1194a 84C0     		testb	%al, %al
- 19541 1194c 745E     		je	.L332
- 19542 1194e 8B851CF3 		movl	-3300(%rbp), %eax
- 19542      FFFF
- 19543 11954 89C7     		movl	%eax, %edi
- 19544 11956 E8A5E6FE 		call	bswap_32
- 19544      FF
- 19545 1195b 4189C5   		movl	%eax, %r13d
- 19546 1195e 8B8518F3 		movl	-3304(%rbp), %eax
- 19546      FFFF
- 19547 11964 89C7     		movl	%eax, %edi
- 19548 11966 E895E6FE 		call	bswap_32
- 19548      FF
- 19549 1196b 4189C4   		movl	%eax, %r12d
-
GAS LISTING /tmp/ccjbMjHD.s 			page 590
-
-
- 19550 1196e 8B8514F3 		movl	-3308(%rbp), %eax
- 19550      FFFF
- 19551 11974 89C7     		movl	%eax, %edi
- 19552 11976 E885E6FE 		call	bswap_32
- 19552      FF
- 19553 1197b 89C3     		movl	%eax, %ebx
- 19554 1197d 8B8510F3 		movl	-3312(%rbp), %eax
- 19554      FFFF
- 19555 11983 89C7     		movl	%eax, %edi
- 19556 11985 E876E6FE 		call	bswap_32
- 19556      FF
- 19557 1198a 4589E9   		movl	%r13d, %r9d
- 19558 1198d 4589E0   		movl	%r12d, %r8d
- 19559 11990 89D9     		movl	%ebx, %ecx
- 19560 11992 89C2     		movl	%eax, %edx
- 19561 11994 488D3500 		leaq	.LC6(%rip), %rsi
- 19561      000000
- 19562 1199b 488D3D00 		leaq	.LC1(%rip), %rdi
- 19562      000000
- 19563 119a2 B8000000 		movl	$0, %eax
- 19563      00
- 19564 119a7 E8000000 		call	KDbgMsg at PLT
- 19564      00
- 19565              	.L332:
- 19566 119ac F30F6F85 		movdqu	-1936(%rbp), %xmm0
- 19566      70F8FFFF 
- 19567 119b4 F30F7F85 		movdqu	%xmm0, -1776(%rbp)
- 19567      10F9FFFF 
- 19568              	.LBE4636:
- 19569              	.LBB4637:
- 19570              	.LBB4638:
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 19571              		.loc 2 426 0
- 19572 119bc F30F6F85 		movdqu	-1776(%rbp), %xmm0
- 19572      10F9FFFF 
- 19573 119c4 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 19573      20F9FFFF 
- 19574 119cc F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 19574      20F9FFFF 
- 19575 119d4 F30F7F85 		movdqu	%xmm0, -1728(%rbp)
- 19575      40F9FFFF 
- 19576              	.LBB4639:
- 19577              	.LBB4640:
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 19578              		.loc 3 416 0
- 19579 119dc F30F6F85 		movdqu	-1728(%rbp), %xmm0
- 19579      40F9FFFF 
- 19580 119e4 660F72F0 		pslld	$1, %xmm0
- 19580      01
- 19581              	.LBE4640:
- 19582              	.LBE4639:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 19583              		.loc 2 433 0
- 19584 119e9 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 19584      20F9FFFF 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 19585              		.loc 2 435 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 591
-
-
- 19586 119f1 B8010000 		movl	$1, %eax
- 19586      00
- 19587 119f6 4898     		cltq
- 19588 119f8 4889C2   		movq	%rax, %rdx
- 19589 119fb 48C1E204 		salq	$4, %rdx
- 19590 119ff 488D0500 		leaq	sl_mask.7310(%rip), %rax
- 19590      000000
- 19591 11a06 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 19591      02
- 19592 11a0b F30F6F8D 		movdqu	-1760(%rbp), %xmm1
- 19592      20F9FFFF 
- 19593 11a13 F30F7F8D 		movdqu	%xmm1, -1696(%rbp)
- 19593      60F9FFFF 
- 19594 11a1b F30F7F85 		movdqu	%xmm0, -1712(%rbp)
- 19594      50F9FFFF 
- 19595              	.LBB4641:
- 19596              	.LBB4642:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 19597              		.loc 2 206 0
- 19598 11a23 F30F6F85 		movdqu	-1712(%rbp), %xmm0
- 19598      50F9FFFF 
- 19599 11a2b F30F6F8D 		movdqu	-1696(%rbp), %xmm1
- 19599      60F9FFFF 
- 19600 11a33 660FDBC1 		pand	%xmm1, %xmm0
- 19601              	.LBE4642:
- 19602              	.LBE4641:
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 19603              		.loc 2 435 0
- 19604 11a37 F30F7F85 		movdqu	%xmm0, -1760(%rbp)
- 19604      20F9FFFF 
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 19605              		.loc 2 437 0
- 19606 11a3f F30F6F85 		movdqu	-1760(%rbp), %xmm0
- 19606      20F9FFFF 
- 19607              	.LBE4638:
- 19608              	.LBE4637:
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 19609              		.loc 2 936 0
- 19610 11a47 F30F7F85 		movdqu	%xmm0, -1904(%rbp)
- 19610      90F8FFFF 
- 19611              	.LBB4643:
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 19612              		.loc 2 937 0
- 19613 11a4f F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 19613      90F8FFFF 
- 19614 11a57 F30F7F85 		movdqu	%xmm0, -3328(%rbp)
- 19614      00F3FFFF 
- 19615 11a5f E8000000 		call	KDbgWriterGet at PLT
- 19615      00
- 19616 11a64 4885C0   		testq	%rax, %rax
- 19617 11a67 7479     		je	.L334
- 19618 11a69 BF010000 		movl	$1, %edi
- 19618      00
- 19619 11a6e E8000000 		call	KDbgCondToFlag at PLT
- 19619      00
- 19620 11a73 4889C6   		movq	%rax, %rsi
- 19621 11a76 BF100000 		movl	$16, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 592
-
-
- 19621      00
- 19622 11a7b E8000000 		call	KDbgTestModConds at PLT
- 19622      00
- 19623 11a80 84C0     		testb	%al, %al
- 19624 11a82 745E     		je	.L334
- 19625 11a84 8B850CF3 		movl	-3316(%rbp), %eax
- 19625      FFFF
- 19626 11a8a 89C7     		movl	%eax, %edi
- 19627 11a8c E86FE5FE 		call	bswap_32
- 19627      FF
- 19628 11a91 4189C5   		movl	%eax, %r13d
- 19629 11a94 8B8508F3 		movl	-3320(%rbp), %eax
- 19629      FFFF
- 19630 11a9a 89C7     		movl	%eax, %edi
- 19631 11a9c E85FE5FE 		call	bswap_32
- 19631      FF
- 19632 11aa1 4189C4   		movl	%eax, %r12d
- 19633 11aa4 8B8504F3 		movl	-3324(%rbp), %eax
- 19633      FFFF
- 19634 11aaa 89C7     		movl	%eax, %edi
- 19635 11aac E84FE5FE 		call	bswap_32
- 19635      FF
- 19636 11ab1 89C3     		movl	%eax, %ebx
- 19637 11ab3 8B8500F3 		movl	-3328(%rbp), %eax
- 19637      FFFF
- 19638 11ab9 89C7     		movl	%eax, %edi
- 19639 11abb E840E5FE 		call	bswap_32
- 19639      FF
- 19640 11ac0 4589E9   		movl	%r13d, %r9d
- 19641 11ac3 4589E0   		movl	%r12d, %r8d
- 19642 11ac6 89D9     		movl	%ebx, %ecx
- 19643 11ac8 89C2     		movl	%eax, %edx
- 19644 11aca 488D3500 		leaq	.LC7(%rip), %rsi
- 19644      000000
- 19645 11ad1 488D3D00 		leaq	.LC1(%rip), %rdi
- 19645      000000
- 19646 11ad8 B8000000 		movl	$0, %eax
- 19646      00
- 19647 11add E8000000 		call	KDbgMsg at PLT
- 19647      00
- 19648              	.L334:
- 19649              	.LBE4643:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 19650              		.loc 2 938 0
- 19651 11ae2 660F6F05 		movdqa	FF_tab(%rip), %xmm0
- 19651      00000000 
- 19652 11aea F30F7F85 		movdqu	%xmm0, -1664(%rbp)
- 19652      80F9FFFF 
- 19653 11af2 F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 19653      80F8FFFF 
- 19654 11afa F30F7F85 		movdqu	%xmm0, -1680(%rbp)
- 19654      70F9FFFF 
- 19655 11b02 F30F6F85 		movdqu	-1664(%rbp), %xmm0
- 19655      80F9FFFF 
- 19656 11b0a F30F7F85 		movdqu	%xmm0, -1632(%rbp)
- 19656      A0F9FFFF 
- 19657 11b12 F30F6F85 		movdqu	-1680(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 593
-
-
- 19657      70F9FFFF 
- 19658 11b1a F30F7F85 		movdqu	%xmm0, -1648(%rbp)
- 19658      90F9FFFF 
- 19659              	.LBB4644:
- 19660              	.LBB4645:
- 19661              	.LBB4646:
- 19662              	.LBB4647:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19663              		.loc 3 529 0
- 19664 11b22 F30F6F8D 		movdqu	-1648(%rbp), %xmm1
- 19664      90F9FFFF 
- 19665 11b2a F30F6F85 		movdqu	-1632(%rbp), %xmm0
- 19665      A0F9FFFF 
- 19666 11b32 660F3800 		pshufb	%xmm1, %xmm0
- 19666      C1
- 19667              	.LBE4647:
- 19668              	.LBE4646:
- 19669              	.LBE4645:
- 19670              	.LBE4644:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 19671              		.loc 2 938 0
- 19672 11b37 F30F7F85 		movdqu	%xmm0, -1920(%rbp)
- 19672      80F8FFFF 
- 19673 11b3f F30F6F85 		movdqu	-1904(%rbp), %xmm0
- 19673      90F8FFFF 
- 19674 11b47 F30F7F85 		movdqu	%xmm0, -1600(%rbp)
- 19674      C0F9FFFF 
- 19675 11b4f F30F6F85 		movdqu	-1920(%rbp), %xmm0
- 19675      80F8FFFF 
- 19676 11b57 F30F7F85 		movdqu	%xmm0, -1616(%rbp)
- 19676      B0F9FFFF 
- 19677              	.LBB4648:
- 19678              	.LBB4649:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19679              		.loc 2 178 0
- 19680 11b5f F30F6F85 		movdqu	-1616(%rbp), %xmm0
- 19680      B0F9FFFF 
- 19681 11b67 F30F6F8D 		movdqu	-1600(%rbp), %xmm1
- 19681      C0F9FFFF 
- 19682 11b6f 660FEFC1 		pxor	%xmm1, %xmm0
- 19683              	.LBE4649:
- 19684              	.LBE4648:
- 19685              	.LBE4628:
- 19686              	.LBE4627:
-1118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f2 = AESBCMEMBER(FF_mul) (f2,1);
- 19687              		.loc 2 1118 0
- 19688 11b73 660F7F85 		movdqa	%xmm0, -3568(%rbp)
- 19688      10F2FFFF 
- 19689 11b7b 660F6F85 		movdqa	-3584(%rbp), %xmm0
- 19689      00F2FFFF 
- 19690 11b83 F30F7F85 		movdqu	%xmm0, -1568(%rbp)
- 19690      E0F9FFFF 
- 19691              	.LBB4650:
- 19692              	.LBB4651:
- 19693              	.LBB4652:
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 19694              		.loc 2 933 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 594
-
-
- 19695 11b8b F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 19695      E0F9FFFF 
- 19696 11b93 F30F7F85 		movdqu	%xmm0, -3248(%rbp)
- 19696      50F3FFFF 
- 19697 11b9b E8000000 		call	KDbgWriterGet at PLT
- 19697      00
- 19698 11ba0 4885C0   		testq	%rax, %rax
- 19699 11ba3 7479     		je	.L336
- 19700 11ba5 BF010000 		movl	$1, %edi
- 19700      00
- 19701 11baa E8000000 		call	KDbgCondToFlag at PLT
- 19701      00
- 19702 11baf 4889C6   		movq	%rax, %rsi
- 19703 11bb2 BF100000 		movl	$16, %edi
- 19703      00
- 19704 11bb7 E8000000 		call	KDbgTestModConds at PLT
- 19704      00
- 19705 11bbc 84C0     		testb	%al, %al
- 19706 11bbe 745E     		je	.L336
- 19707 11bc0 8B855CF3 		movl	-3236(%rbp), %eax
- 19707      FFFF
- 19708 11bc6 89C7     		movl	%eax, %edi
- 19709 11bc8 E833E4FE 		call	bswap_32
- 19709      FF
- 19710 11bcd 4189C5   		movl	%eax, %r13d
- 19711 11bd0 8B8558F3 		movl	-3240(%rbp), %eax
- 19711      FFFF
- 19712 11bd6 89C7     		movl	%eax, %edi
- 19713 11bd8 E823E4FE 		call	bswap_32
- 19713      FF
- 19714 11bdd 4189C4   		movl	%eax, %r12d
- 19715 11be0 8B8554F3 		movl	-3244(%rbp), %eax
- 19715      FFFF
- 19716 11be6 89C7     		movl	%eax, %edi
- 19717 11be8 E813E4FE 		call	bswap_32
- 19717      FF
- 19718 11bed 89C3     		movl	%eax, %ebx
- 19719 11bef 8B8550F3 		movl	-3248(%rbp), %eax
- 19719      FFFF
- 19720 11bf5 89C7     		movl	%eax, %edi
- 19721 11bf7 E804E4FE 		call	bswap_32
- 19721      FF
- 19722 11bfc 4589E9   		movl	%r13d, %r9d
- 19723 11bff 4589E0   		movl	%r12d, %r8d
- 19724 11c02 89D9     		movl	%ebx, %ecx
- 19725 11c04 89C2     		movl	%eax, %edx
- 19726 11c06 488D3500 		leaq	.LC5(%rip), %rsi
- 19726      000000
- 19727 11c0d 488D3D00 		leaq	.LC1(%rip), %rdi
- 19727      000000
- 19728 11c14 B8000000 		movl	$0, %eax
- 19728      00
- 19729 11c19 E8000000 		call	KDbgMsg at PLT
- 19729      00
- 19730              	.L336:
- 19731              	.LBE4652:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
-
GAS LISTING /tmp/ccjbMjHD.s 			page 595
-
-
- 19732              		.loc 2 934 0
- 19733 11c1e B8060000 		movl	$6, %eax
- 19733      00
- 19734 11c23 F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 19734      E0F9FFFF 
- 19735 11c2b F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 19735      20FAFFFF 
- 19736 11c33 89851CFA 		movl	%eax, -1508(%rbp)
- 19736      FFFF
- 19737 11c39 F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 19737      20FAFFFF 
- 19738 11c41 F30F7F85 		movdqu	%xmm0, -1472(%rbp)
- 19738      40FAFFFF 
- 19739 11c49 8B851CFA 		movl	-1508(%rbp), %eax
- 19739      FFFF
- 19740 11c4f 89853CFA 		movl	%eax, -1476(%rbp)
- 19740      FFFF
- 19741              	.LBB4653:
- 19742              	.LBB4654:
- 19743              	.LBB4655:
- 19744              	.LBB4656:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 19745              		.loc 3 433 0
- 19746 11c55 F30F6F85 		movdqu	-1472(%rbp), %xmm0
- 19746      40FAFFFF 
- 19747 11c5d 8B853CFA 		movl	-1476(%rbp), %eax
- 19747      FFFF
- 19748 11c63 8985E8F1 		movl	%eax, -3608(%rbp)
- 19748      FFFF
- 19749 11c69 660F6E8D 		movd	-3608(%rbp), %xmm1
- 19749      E8F1FFFF 
- 19750 11c71 660FD2C1 		psrld	%xmm1, %xmm0
- 19751              	.LBE4656:
- 19752              	.LBE4655:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 19753              		.loc 2 488 0
- 19754 11c75 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 19754      20FAFFFF 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 19755              		.loc 2 489 0
- 19756 11c7d B8080000 		movl	$8, %eax
- 19756      00
- 19757 11c82 83BD1CFA 		cmpl	$8, -1508(%rbp)
- 19757      FFFF08
- 19758 11c89 0F4E851C 		cmovle	-1508(%rbp), %eax
- 19758      FAFFFF
- 19759 11c90 4898     		cltq
- 19760 11c92 4889C2   		movq	%rax, %rdx
- 19761 11c95 48C1E204 		salq	$4, %rdx
- 19762 11c99 488D0500 		leaq	sr_mask.7327(%rip), %rax
- 19762      000000
- 19763 11ca0 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 19763      02
- 19764 11ca5 F30F6F8D 		movdqu	-1504(%rbp), %xmm1
- 19764      20FAFFFF 
- 19765 11cad F30F7F8D 		movdqu	%xmm1, -1440(%rbp)
- 19765      60FAFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 596
-
-
- 19766 11cb5 F30F7F85 		movdqu	%xmm0, -1456(%rbp)
- 19766      50FAFFFF 
- 19767              	.LBB4657:
- 19768              	.LBB4658:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 19769              		.loc 2 206 0
- 19770 11cbd F30F6F85 		movdqu	-1456(%rbp), %xmm0
- 19770      50FAFFFF 
- 19771 11cc5 F30F6F8D 		movdqu	-1440(%rbp), %xmm1
- 19771      60FAFFFF 
- 19772 11ccd 660FDBC1 		pand	%xmm1, %xmm0
- 19773              	.LBE4658:
- 19774              	.LBE4657:
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 19775              		.loc 2 489 0
- 19776 11cd1 F30F7F85 		movdqu	%xmm0, -1504(%rbp)
- 19776      20FAFFFF 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 19777              		.loc 2 490 0
- 19778 11cd9 F30F6F85 		movdqu	-1504(%rbp), %xmm0
- 19778      20FAFFFF 
- 19779              	.LBE4654:
- 19780              	.LBE4653:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 19781              		.loc 2 934 0
- 19782 11ce1 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 19782      F0F9FFFF 
- 19783              	.LBB4659:
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 19784              		.loc 2 935 0
- 19785 11ce9 F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 19785      F0F9FFFF 
- 19786 11cf1 F30F7F85 		movdqu	%xmm0, -3264(%rbp)
- 19786      40F3FFFF 
- 19787 11cf9 E8000000 		call	KDbgWriterGet at PLT
- 19787      00
- 19788 11cfe 4885C0   		testq	%rax, %rax
- 19789 11d01 7479     		je	.L338
- 19790 11d03 BF010000 		movl	$1, %edi
- 19790      00
- 19791 11d08 E8000000 		call	KDbgCondToFlag at PLT
- 19791      00
- 19792 11d0d 4889C6   		movq	%rax, %rsi
- 19793 11d10 BF100000 		movl	$16, %edi
- 19793      00
- 19794 11d15 E8000000 		call	KDbgTestModConds at PLT
- 19794      00
- 19795 11d1a 84C0     		testb	%al, %al
- 19796 11d1c 745E     		je	.L338
- 19797 11d1e 8B854CF3 		movl	-3252(%rbp), %eax
- 19797      FFFF
- 19798 11d24 89C7     		movl	%eax, %edi
- 19799 11d26 E8D5E2FE 		call	bswap_32
- 19799      FF
- 19800 11d2b 4189C5   		movl	%eax, %r13d
- 19801 11d2e 8B8548F3 		movl	-3256(%rbp), %eax
- 19801      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 597
-
-
- 19802 11d34 89C7     		movl	%eax, %edi
- 19803 11d36 E8C5E2FE 		call	bswap_32
- 19803      FF
- 19804 11d3b 4189C4   		movl	%eax, %r12d
- 19805 11d3e 8B8544F3 		movl	-3260(%rbp), %eax
- 19805      FFFF
- 19806 11d44 89C7     		movl	%eax, %edi
- 19807 11d46 E8B5E2FE 		call	bswap_32
- 19807      FF
- 19808 11d4b 89C3     		movl	%eax, %ebx
- 19809 11d4d 8B8540F3 		movl	-3264(%rbp), %eax
- 19809      FFFF
- 19810 11d53 89C7     		movl	%eax, %edi
- 19811 11d55 E8A6E2FE 		call	bswap_32
- 19811      FF
- 19812 11d5a 4589E9   		movl	%r13d, %r9d
- 19813 11d5d 4589E0   		movl	%r12d, %r8d
- 19814 11d60 89D9     		movl	%ebx, %ecx
- 19815 11d62 89C2     		movl	%eax, %edx
- 19816 11d64 488D3500 		leaq	.LC6(%rip), %rsi
- 19816      000000
- 19817 11d6b 488D3D00 		leaq	.LC1(%rip), %rdi
- 19817      000000
- 19818 11d72 B8000000 		movl	$0, %eax
- 19818      00
- 19819 11d77 E8000000 		call	KDbgMsg at PLT
- 19819      00
- 19820              	.L338:
- 19821 11d7c F30F6F85 		movdqu	-1568(%rbp), %xmm0
- 19821      E0F9FFFF 
- 19822 11d84 F30F7F85 		movdqu	%xmm0, -1408(%rbp)
- 19822      80FAFFFF 
- 19823              	.LBE4659:
- 19824              	.LBB4660:
- 19825              	.LBB4661:
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 19826              		.loc 2 426 0
- 19827 11d8c F30F6F85 		movdqu	-1408(%rbp), %xmm0
- 19827      80FAFFFF 
- 19828 11d94 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 19828      90FAFFFF 
- 19829 11d9c F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 19829      90FAFFFF 
- 19830 11da4 F30F7F85 		movdqu	%xmm0, -1360(%rbp)
- 19830      B0FAFFFF 
- 19831              	.LBB4662:
- 19832              	.LBB4663:
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 19833              		.loc 3 416 0
- 19834 11dac F30F6F85 		movdqu	-1360(%rbp), %xmm0
- 19834      B0FAFFFF 
- 19835 11db4 660F72F0 		pslld	$2, %xmm0
- 19835      02
- 19836              	.LBE4663:
- 19837              	.LBE4662:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 19838              		.loc 2 433 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 598
-
-
- 19839 11db9 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 19839      90FAFFFF 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 19840              		.loc 2 435 0
- 19841 11dc1 B8020000 		movl	$2, %eax
- 19841      00
- 19842 11dc6 4898     		cltq
- 19843 11dc8 4889C2   		movq	%rax, %rdx
- 19844 11dcb 48C1E204 		salq	$4, %rdx
- 19845 11dcf 488D0500 		leaq	sl_mask.7310(%rip), %rax
- 19845      000000
- 19846 11dd6 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 19846      02
- 19847 11ddb F30F6F8D 		movdqu	-1392(%rbp), %xmm1
- 19847      90FAFFFF 
- 19848 11de3 F30F7F8D 		movdqu	%xmm1, -1328(%rbp)
- 19848      D0FAFFFF 
- 19849 11deb F30F7F85 		movdqu	%xmm0, -1344(%rbp)
- 19849      C0FAFFFF 
- 19850              	.LBB4664:
- 19851              	.LBB4665:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 19852              		.loc 2 206 0
- 19853 11df3 F30F6F85 		movdqu	-1344(%rbp), %xmm0
- 19853      C0FAFFFF 
- 19854 11dfb F30F6F8D 		movdqu	-1328(%rbp), %xmm1
- 19854      D0FAFFFF 
- 19855 11e03 660FDBC1 		pand	%xmm1, %xmm0
- 19856              	.LBE4665:
- 19857              	.LBE4664:
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 19858              		.loc 2 435 0
- 19859 11e07 F30F7F85 		movdqu	%xmm0, -1392(%rbp)
- 19859      90FAFFFF 
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 19860              		.loc 2 437 0
- 19861 11e0f F30F6F85 		movdqu	-1392(%rbp), %xmm0
- 19861      90FAFFFF 
- 19862              	.LBE4661:
- 19863              	.LBE4660:
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 19864              		.loc 2 936 0
- 19865 11e17 F30F7F85 		movdqu	%xmm0, -1536(%rbp)
- 19865      00FAFFFF 
- 19866              	.LBB4666:
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 19867              		.loc 2 937 0
- 19868 11e1f F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 19868      00FAFFFF 
- 19869 11e27 F30F7F85 		movdqu	%xmm0, -3280(%rbp)
- 19869      30F3FFFF 
- 19870 11e2f E8000000 		call	KDbgWriterGet at PLT
- 19870      00
- 19871 11e34 4885C0   		testq	%rax, %rax
- 19872 11e37 7479     		je	.L340
- 19873 11e39 BF010000 		movl	$1, %edi
- 19873      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 599
-
-
- 19874 11e3e E8000000 		call	KDbgCondToFlag at PLT
- 19874      00
- 19875 11e43 4889C6   		movq	%rax, %rsi
- 19876 11e46 BF100000 		movl	$16, %edi
- 19876      00
- 19877 11e4b E8000000 		call	KDbgTestModConds at PLT
- 19877      00
- 19878 11e50 84C0     		testb	%al, %al
- 19879 11e52 745E     		je	.L340
- 19880 11e54 8B853CF3 		movl	-3268(%rbp), %eax
- 19880      FFFF
- 19881 11e5a 89C7     		movl	%eax, %edi
- 19882 11e5c E89FE1FE 		call	bswap_32
- 19882      FF
- 19883 11e61 4189C5   		movl	%eax, %r13d
- 19884 11e64 8B8538F3 		movl	-3272(%rbp), %eax
- 19884      FFFF
- 19885 11e6a 89C7     		movl	%eax, %edi
- 19886 11e6c E88FE1FE 		call	bswap_32
- 19886      FF
- 19887 11e71 4189C4   		movl	%eax, %r12d
- 19888 11e74 8B8534F3 		movl	-3276(%rbp), %eax
- 19888      FFFF
- 19889 11e7a 89C7     		movl	%eax, %edi
- 19890 11e7c E87FE1FE 		call	bswap_32
- 19890      FF
- 19891 11e81 89C3     		movl	%eax, %ebx
- 19892 11e83 8B8530F3 		movl	-3280(%rbp), %eax
- 19892      FFFF
- 19893 11e89 89C7     		movl	%eax, %edi
- 19894 11e8b E870E1FE 		call	bswap_32
- 19894      FF
- 19895 11e90 4589E9   		movl	%r13d, %r9d
- 19896 11e93 4589E0   		movl	%r12d, %r8d
- 19897 11e96 89D9     		movl	%ebx, %ecx
- 19898 11e98 89C2     		movl	%eax, %edx
- 19899 11e9a 488D3500 		leaq	.LC7(%rip), %rsi
- 19899      000000
- 19900 11ea1 488D3D00 		leaq	.LC1(%rip), %rdi
- 19900      000000
- 19901 11ea8 B8000000 		movl	$0, %eax
- 19901      00
- 19902 11ead E8000000 		call	KDbgMsg at PLT
- 19902      00
- 19903              	.L340:
- 19904              	.LBE4666:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 19905              		.loc 2 938 0
- 19906 11eb2 660F6F05 		movdqa	FF_tab(%rip), %xmm0
- 19906      00000000 
- 19907 11eba F30F7F85 		movdqu	%xmm0, -1296(%rbp)
- 19907      F0FAFFFF 
- 19908 11ec2 F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 19908      F0F9FFFF 
- 19909 11eca F30F7F85 		movdqu	%xmm0, -1312(%rbp)
- 19909      E0FAFFFF 
- 19910 11ed2 F30F6F85 		movdqu	-1296(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 600
-
-
- 19910      F0FAFFFF 
- 19911 11eda F30F7F85 		movdqu	%xmm0, -1264(%rbp)
- 19911      10FBFFFF 
- 19912 11ee2 F30F6F85 		movdqu	-1312(%rbp), %xmm0
- 19912      E0FAFFFF 
- 19913 11eea F30F7F85 		movdqu	%xmm0, -1280(%rbp)
- 19913      00FBFFFF 
- 19914              	.LBB4667:
- 19915              	.LBB4668:
- 19916              	.LBB4669:
- 19917              	.LBB4670:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 19918              		.loc 3 529 0
- 19919 11ef2 F30F6F8D 		movdqu	-1280(%rbp), %xmm1
- 19919      00FBFFFF 
- 19920 11efa F30F6F85 		movdqu	-1264(%rbp), %xmm0
- 19920      10FBFFFF 
- 19921 11f02 660F3800 		pshufb	%xmm1, %xmm0
- 19921      C1
- 19922              	.LBE4670:
- 19923              	.LBE4669:
- 19924              	.LBE4668:
- 19925              	.LBE4667:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 19926              		.loc 2 938 0
- 19927 11f07 F30F7F85 		movdqu	%xmm0, -1552(%rbp)
- 19927      F0F9FFFF 
- 19928 11f0f F30F6F85 		movdqu	-1536(%rbp), %xmm0
- 19928      00FAFFFF 
- 19929 11f17 F30F7F85 		movdqu	%xmm0, -1232(%rbp)
- 19929      30FBFFFF 
- 19930 11f1f F30F6F85 		movdqu	-1552(%rbp), %xmm0
- 19930      F0F9FFFF 
- 19931 11f27 F30F7F85 		movdqu	%xmm0, -1248(%rbp)
- 19931      20FBFFFF 
- 19932              	.LBB4671:
- 19933              	.LBB4672:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 19934              		.loc 2 178 0
- 19935 11f2f F30F6F85 		movdqu	-1248(%rbp), %xmm0
- 19935      20FBFFFF 
- 19936 11f37 F30F6F8D 		movdqu	-1232(%rbp), %xmm1
- 19936      30FBFFFF 
- 19937 11f3f 660FEFC1 		pxor	%xmm1, %xmm0
- 19938              	.LBE4672:
- 19939              	.LBE4671:
- 19940              	.LBE4651:
- 19941              	.LBE4650:
-1119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f4 = AESBCMEMBER(FF_mul) (f4,2);
- 19942              		.loc 2 1119 0
- 19943 11f43 660F7F85 		movdqa	%xmm0, -3584(%rbp)
- 19943      00F2FFFF 
- 19944 11f4b 660F6F85 		movdqa	-3600(%rbp), %xmm0
- 19944      F0F1FFFF 
- 19945 11f53 F30F7F85 		movdqu	%xmm0, -1200(%rbp)
- 19945      50FBFFFF 
- 19946              	.LBB4673:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 601
-
-
- 19947              	.LBB4674:
- 19948              	.LBB4675:
- 933:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("state", state);
- 19949              		.loc 2 933 0
- 19950 11f5b F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 19950      50FBFFFF 
- 19951 11f63 F30F7F85 		movdqu	%xmm0, -3200(%rbp)
- 19951      80F3FFFF 
- 19952 11f6b E8000000 		call	KDbgWriterGet at PLT
- 19952      00
- 19953 11f70 4885C0   		testq	%rax, %rax
- 19954 11f73 7479     		je	.L342
- 19955 11f75 BF010000 		movl	$1, %edi
- 19955      00
- 19956 11f7a E8000000 		call	KDbgCondToFlag at PLT
- 19956      00
- 19957 11f7f 4889C6   		movq	%rax, %rsi
- 19958 11f82 BF100000 		movl	$16, %edi
- 19958      00
- 19959 11f87 E8000000 		call	KDbgTestModConds at PLT
- 19959      00
- 19960 11f8c 84C0     		testb	%al, %al
- 19961 11f8e 745E     		je	.L342
- 19962 11f90 8B858CF3 		movl	-3188(%rbp), %eax
- 19962      FFFF
- 19963 11f96 89C7     		movl	%eax, %edi
- 19964 11f98 E863E0FE 		call	bswap_32
- 19964      FF
- 19965 11f9d 4189C5   		movl	%eax, %r13d
- 19966 11fa0 8B8588F3 		movl	-3192(%rbp), %eax
- 19966      FFFF
- 19967 11fa6 89C7     		movl	%eax, %edi
- 19968 11fa8 E853E0FE 		call	bswap_32
- 19968      FF
- 19969 11fad 4189C4   		movl	%eax, %r12d
- 19970 11fb0 8B8584F3 		movl	-3196(%rbp), %eax
- 19970      FFFF
- 19971 11fb6 89C7     		movl	%eax, %edi
- 19972 11fb8 E843E0FE 		call	bswap_32
- 19972      FF
- 19973 11fbd 89C3     		movl	%eax, %ebx
- 19974 11fbf 8B8580F3 		movl	-3200(%rbp), %eax
- 19974      FFFF
- 19975 11fc5 89C7     		movl	%eax, %edi
- 19976 11fc7 E834E0FE 		call	bswap_32
- 19976      FF
- 19977 11fcc 4589E9   		movl	%r13d, %r9d
- 19978 11fcf 4589E0   		movl	%r12d, %r8d
- 19979 11fd2 89D9     		movl	%ebx, %ecx
- 19980 11fd4 89C2     		movl	%eax, %edx
- 19981 11fd6 488D3500 		leaq	.LC5(%rip), %rsi
- 19981      000000
- 19982 11fdd 488D3D00 		leaq	.LC1(%rip), %rdi
- 19982      000000
- 19983 11fe4 B8000000 		movl	$0, %eax
- 19983      00
- 19984 11fe9 E8000000 		call	KDbgMsg at PLT
-
GAS LISTING /tmp/ccjbMjHD.s 			page 602
-
-
- 19984      00
- 19985              	.L342:
- 19986              	.LBE4675:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 19987              		.loc 2 934 0
- 19988 11fee B8050000 		movl	$5, %eax
- 19988      00
- 19989 11ff3 F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 19989      50FBFFFF 
- 19990 11ffb F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 19990      90FBFFFF 
- 19991 12003 89858CFB 		movl	%eax, -1140(%rbp)
- 19991      FFFF
- 19992 12009 F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 19992      90FBFFFF 
- 19993 12011 F30F7F85 		movdqu	%xmm0, -1104(%rbp)
- 19993      B0FBFFFF 
- 19994 12019 8B858CFB 		movl	-1140(%rbp), %eax
- 19994      FFFF
- 19995 1201f 8985ACFB 		movl	%eax, -1108(%rbp)
- 19995      FFFF
- 19996              	.LBB4676:
- 19997              	.LBB4677:
- 19998              	.LBB4678:
- 19999              	.LBB4679:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 20000              		.loc 3 433 0
- 20001 12025 F30F6F85 		movdqu	-1104(%rbp), %xmm0
- 20001      B0FBFFFF 
- 20002 1202d 8B85ACFB 		movl	-1108(%rbp), %eax
- 20002      FFFF
- 20003 12033 8985E4F1 		movl	%eax, -3612(%rbp)
- 20003      FFFF
- 20004 12039 660F6E8D 		movd	-3612(%rbp), %xmm1
- 20004      E4F1FFFF 
- 20005 12041 660FD2C1 		psrld	%xmm1, %xmm0
- 20006              	.LBE4679:
- 20007              	.LBE4678:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = op_PSRLDI128 (v, k);
- 20008              		.loc 2 488 0
- 20009 12045 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 20009      90FBFFFF 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 20010              		.loc 2 489 0
- 20011 1204d B8080000 		movl	$8, %eax
- 20011      00
- 20012 12052 83BD8CFB 		cmpl	$8, -1140(%rbp)
- 20012      FFFF08
- 20013 12059 0F4E858C 		cmovle	-1140(%rbp), %eax
- 20013      FBFFFF
- 20014 12060 4898     		cltq
- 20015 12062 4889C2   		movq	%rax, %rdx
- 20016 12065 48C1E204 		salq	$4, %rdx
- 20017 12069 488D0500 		leaq	sr_mask.7327(%rip), %rax
- 20017      000000
- 20018 12070 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 20018      02
-
GAS LISTING /tmp/ccjbMjHD.s 			page 603
-
-
- 20019 12075 F30F6F8D 		movdqu	-1136(%rbp), %xmm1
- 20019      90FBFFFF 
- 20020 1207d F30F7F8D 		movdqu	%xmm1, -1072(%rbp)
- 20020      D0FBFFFF 
- 20021 12085 F30F7F85 		movdqu	%xmm0, -1088(%rbp)
- 20021      C0FBFFFF 
- 20022              	.LBB4680:
- 20023              	.LBB4681:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 20024              		.loc 2 206 0
- 20025 1208d F30F6F85 		movdqu	-1088(%rbp), %xmm0
- 20025      C0FBFFFF 
- 20026 12095 F30F6F8D 		movdqu	-1072(%rbp), %xmm1
- 20026      D0FBFFFF 
- 20027 1209d 660FDBC1 		pand	%xmm1, %xmm0
- 20028              	.LBE4681:
- 20029              	.LBE4680:
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     v = AESBCMEMBER(VecAnd) (v, sr_mask[(k<8)?k:8]);
- 20030              		.loc 2 489 0
- 20031 120a1 F30F7F85 		movdqu	%xmm0, -1136(%rbp)
- 20031      90FBFFFF 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v;
- 20032              		.loc 2 490 0
- 20033 120a9 F30F6F85 		movdqu	-1136(%rbp), %xmm0
- 20033      90FBFFFF 
- 20034              	.LBE4677:
- 20035              	.LBE4676:
- 934:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(VecSRLBI) (state, 8 - bits);
- 20036              		.loc 2 934 0
- 20037 120b1 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 20037      60FBFFFF 
- 20038              	.LBB4682:
- 935:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sr", sr);
- 20039              		.loc 2 935 0
- 20040 120b9 F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 20040      60FBFFFF 
- 20041 120c1 F30F7F85 		movdqu	%xmm0, -3216(%rbp)
- 20041      70F3FFFF 
- 20042 120c9 E8000000 		call	KDbgWriterGet at PLT
- 20042      00
- 20043 120ce 4885C0   		testq	%rax, %rax
- 20044 120d1 7479     		je	.L344
- 20045 120d3 BF010000 		movl	$1, %edi
- 20045      00
- 20046 120d8 E8000000 		call	KDbgCondToFlag at PLT
- 20046      00
- 20047 120dd 4889C6   		movq	%rax, %rsi
- 20048 120e0 BF100000 		movl	$16, %edi
- 20048      00
- 20049 120e5 E8000000 		call	KDbgTestModConds at PLT
- 20049      00
- 20050 120ea 84C0     		testb	%al, %al
- 20051 120ec 745E     		je	.L344
- 20052 120ee 8B857CF3 		movl	-3204(%rbp), %eax
- 20052      FFFF
- 20053 120f4 89C7     		movl	%eax, %edi
- 20054 120f6 E805DFFE 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 604
-
-
- 20054      FF
- 20055 120fb 4189C5   		movl	%eax, %r13d
- 20056 120fe 8B8578F3 		movl	-3208(%rbp), %eax
- 20056      FFFF
- 20057 12104 89C7     		movl	%eax, %edi
- 20058 12106 E8F5DEFE 		call	bswap_32
- 20058      FF
- 20059 1210b 4189C4   		movl	%eax, %r12d
- 20060 1210e 8B8574F3 		movl	-3212(%rbp), %eax
- 20060      FFFF
- 20061 12114 89C7     		movl	%eax, %edi
- 20062 12116 E8E5DEFE 		call	bswap_32
- 20062      FF
- 20063 1211b 89C3     		movl	%eax, %ebx
- 20064 1211d 8B8570F3 		movl	-3216(%rbp), %eax
- 20064      FFFF
- 20065 12123 89C7     		movl	%eax, %edi
- 20066 12125 E8D6DEFE 		call	bswap_32
- 20066      FF
- 20067 1212a 4589E9   		movl	%r13d, %r9d
- 20068 1212d 4589E0   		movl	%r12d, %r8d
- 20069 12130 89D9     		movl	%ebx, %ecx
- 20070 12132 89C2     		movl	%eax, %edx
- 20071 12134 488D3500 		leaq	.LC6(%rip), %rsi
- 20071      000000
- 20072 1213b 488D3D00 		leaq	.LC1(%rip), %rdi
- 20072      000000
- 20073 12142 B8000000 		movl	$0, %eax
- 20073      00
- 20074 12147 E8000000 		call	KDbgMsg at PLT
- 20074      00
- 20075              	.L344:
- 20076 1214c F30F6F85 		movdqu	-1200(%rbp), %xmm0
- 20076      50FBFFFF 
- 20077 12154 F30F7F85 		movdqu	%xmm0, -1040(%rbp)
- 20077      F0FBFFFF 
- 20078              	.LBE4682:
- 20079              	.LBB4683:
- 20080              	.LBB4684:
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     CipherVec vv = v;
- 20081              		.loc 2 426 0
- 20082 1215c F30F6F85 		movdqu	-1040(%rbp), %xmm0
- 20082      F0FBFFFF 
- 20083 12164 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 20083      00FCFFFF 
- 20084 1216c F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 20084      00FCFFFF 
- 20085 12174 F30F7F85 		movdqu	%xmm0, -992(%rbp)
- 20085      20FCFFFF 
- 20086              	.LBB4685:
- 20087              	.LBB4686:
- 416:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pslldi128 ((v128_i32_t)vin, bit_count);
- 20088              		.loc 3 416 0
- 20089 1217c F30F6F85 		movdqu	-992(%rbp), %xmm0
- 20089      20FCFFFF 
- 20090 12184 660F72F0 		pslld	$3, %xmm0
- 20090      03
-
GAS LISTING /tmp/ccjbMjHD.s 			page 605
-
-
- 20091              	.LBE4686:
- 20092              	.LBE4685:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = op_PSLLDI128 (vv, k);
- 20093              		.loc 2 433 0
- 20094 12189 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 20094      00FCFFFF 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 20095              		.loc 2 435 0
- 20096 12191 B8030000 		movl	$3, %eax
- 20096      00
- 20097 12196 4898     		cltq
- 20098 12198 4889C2   		movq	%rax, %rdx
- 20099 1219b 48C1E204 		salq	$4, %rdx
- 20100 1219f 488D0500 		leaq	sl_mask.7310(%rip), %rax
- 20100      000000
- 20101 121a6 660F6F04 		movdqa	(%rdx,%rax), %xmm0
- 20101      02
- 20102 121ab F30F6F8D 		movdqu	-1024(%rbp), %xmm1
- 20102      00FCFFFF 
- 20103 121b3 F30F7F8D 		movdqu	%xmm1, -960(%rbp)
- 20103      40FCFFFF 
- 20104 121bb F30F7F85 		movdqu	%xmm0, -976(%rbp)
- 20104      30FCFFFF 
- 20105              	.LBB4687:
- 20106              	.LBB4688:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 20107              		.loc 2 206 0
- 20108 121c3 F30F6F85 		movdqu	-976(%rbp), %xmm0
- 20108      30FCFFFF 
- 20109 121cb F30F6F8D 		movdqu	-960(%rbp), %xmm1
- 20109      40FCFFFF 
- 20110 121d3 660FDBC1 		pand	%xmm1, %xmm0
- 20111              	.LBE4688:
- 20112              	.LBE4687:
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     vv = AESBCMEMBER(VecAnd) (vv, sl_mask[k]);
- 20113              		.loc 2 435 0
- 20114 121d7 F30F7F85 		movdqu	%xmm0, -1024(%rbp)
- 20114      00FCFFFF 
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return vv;
- 20115              		.loc 2 437 0
- 20116 121df F30F6F85 		movdqu	-1024(%rbp), %xmm0
- 20116      00FCFFFF 
- 20117              	.LBE4684:
- 20118              	.LBE4683:
- 936:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sl = AESBCMEMBER(VecSLLBI) (state, bits);
- 20119              		.loc 2 936 0
- 20120 121e7 F30F7F85 		movdqu	%xmm0, -1168(%rbp)
- 20120      70FBFFFF 
- 20121              	.LBB4689:
- 937:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_CIPHER_VECTOR ("sl", sl);
- 20122              		.loc 2 937 0
- 20123 121ef F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 20123      70FBFFFF 
- 20124 121f7 F30F7F85 		movdqu	%xmm0, -3232(%rbp)
- 20124      60F3FFFF 
- 20125 121ff E8000000 		call	KDbgWriterGet at PLT
- 20125      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 606
-
-
- 20126 12204 4885C0   		testq	%rax, %rax
- 20127 12207 7479     		je	.L346
- 20128 12209 BF010000 		movl	$1, %edi
- 20128      00
- 20129 1220e E8000000 		call	KDbgCondToFlag at PLT
- 20129      00
- 20130 12213 4889C6   		movq	%rax, %rsi
- 20131 12216 BF100000 		movl	$16, %edi
- 20131      00
- 20132 1221b E8000000 		call	KDbgTestModConds at PLT
- 20132      00
- 20133 12220 84C0     		testb	%al, %al
- 20134 12222 745E     		je	.L346
- 20135 12224 8B856CF3 		movl	-3220(%rbp), %eax
- 20135      FFFF
- 20136 1222a 89C7     		movl	%eax, %edi
- 20137 1222c E8CFDDFE 		call	bswap_32
- 20137      FF
- 20138 12231 4189C5   		movl	%eax, %r13d
- 20139 12234 8B8568F3 		movl	-3224(%rbp), %eax
- 20139      FFFF
- 20140 1223a 89C7     		movl	%eax, %edi
- 20141 1223c E8BFDDFE 		call	bswap_32
- 20141      FF
- 20142 12241 4189C4   		movl	%eax, %r12d
- 20143 12244 8B8564F3 		movl	-3228(%rbp), %eax
- 20143      FFFF
- 20144 1224a 89C7     		movl	%eax, %edi
- 20145 1224c E8AFDDFE 		call	bswap_32
- 20145      FF
- 20146 12251 89C3     		movl	%eax, %ebx
- 20147 12253 8B8560F3 		movl	-3232(%rbp), %eax
- 20147      FFFF
- 20148 12259 89C7     		movl	%eax, %edi
- 20149 1225b E8A0DDFE 		call	bswap_32
- 20149      FF
- 20150 12260 4589E9   		movl	%r13d, %r9d
- 20151 12263 4589E0   		movl	%r12d, %r8d
- 20152 12266 89D9     		movl	%ebx, %ecx
- 20153 12268 89C2     		movl	%eax, %edx
- 20154 1226a 488D3500 		leaq	.LC7(%rip), %rsi
- 20154      000000
- 20155 12271 488D3D00 		leaq	.LC1(%rip), %rdi
- 20155      000000
- 20156 12278 B8000000 		movl	$0, %eax
- 20156      00
- 20157 1227d E8000000 		call	KDbgMsg at PLT
- 20157      00
- 20158              	.L346:
- 20159              	.LBE4689:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 20160              		.loc 2 938 0
- 20161 12282 660F6F05 		movdqa	FF_tab(%rip), %xmm0
- 20161      00000000 
- 20162 1228a F30F7F85 		movdqu	%xmm0, -928(%rbp)
- 20162      60FCFFFF 
- 20163 12292 F30F6F85 		movdqu	-1184(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 607
-
-
- 20163      60FBFFFF 
- 20164 1229a F30F7F85 		movdqu	%xmm0, -944(%rbp)
- 20164      50FCFFFF 
- 20165 122a2 F30F6F85 		movdqu	-928(%rbp), %xmm0
- 20165      60FCFFFF 
- 20166 122aa F30F7F85 		movdqu	%xmm0, -896(%rbp)
- 20166      80FCFFFF 
- 20167 122b2 F30F6F85 		movdqu	-944(%rbp), %xmm0
- 20167      50FCFFFF 
- 20168 122ba F30F7F85 		movdqu	%xmm0, -912(%rbp)
- 20168      70FCFFFF 
- 20169              	.LBB4690:
- 20170              	.LBB4691:
- 20171              	.LBB4692:
- 20172              	.LBB4693:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 20173              		.loc 3 529 0
- 20174 122c2 F30F6F8D 		movdqu	-912(%rbp), %xmm1
- 20174      70FCFFFF 
- 20175 122ca F30F6F85 		movdqu	-896(%rbp), %xmm0
- 20175      80FCFFFF 
- 20176 122d2 660F3800 		pshufb	%xmm1, %xmm0
- 20176      C1
- 20177              	.LBE4693:
- 20178              	.LBE4692:
- 20179              	.LBE4691:
- 20180              	.LBE4690:
- 938:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     sr = AESBCMEMBER(PackShuffleBytes) (FF_tab, sr);
- 20181              		.loc 2 938 0
- 20182 122d7 F30F7F85 		movdqu	%xmm0, -1184(%rbp)
- 20182      60FBFFFF 
- 20183 122df F30F6F85 		movdqu	-1168(%rbp), %xmm0
- 20183      70FBFFFF 
- 20184 122e7 F30F7F85 		movdqu	%xmm0, -864(%rbp)
- 20184      A0FCFFFF 
- 20185 122ef F30F6F85 		movdqu	-1184(%rbp), %xmm0
- 20185      60FBFFFF 
- 20186 122f7 F30F7F85 		movdqu	%xmm0, -880(%rbp)
- 20186      90FCFFFF 
- 20187              	.LBB4694:
- 20188              	.LBB4695:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20189              		.loc 2 178 0
- 20190 122ff F30F6F85 		movdqu	-880(%rbp), %xmm0
- 20190      90FCFFFF 
- 20191 12307 F30F6F8D 		movdqu	-864(%rbp), %xmm1
- 20191      A0FCFFFF 
- 20192 1230f 660FEFC1 		pxor	%xmm1, %xmm0
- 20193              	.LBE4695:
- 20194              	.LBE4694:
- 20195              	.LBE4674:
- 20196              	.LBE4673:
-1120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     f8 = AESBCMEMBER(FF_mul) (f8,3);
- 20197              		.loc 2 1120 0
- 20198 12313 660F7F85 		movdqa	%xmm0, -3600(%rbp)
- 20198      F0F1FFFF 
- 20199 1231b F30F6F85 		movdqu	-2368(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 608
-
-
- 20199      C0F6FFFF 
- 20200 12323 F30F7F85 		movdqu	%xmm0, -832(%rbp)
- 20200      C0FCFFFF 
- 20201 1232b 660F6F85 		movdqa	-3568(%rbp), %xmm0
- 20201      10F2FFFF 
- 20202 12333 F30F7F85 		movdqu	%xmm0, -848(%rbp)
- 20202      B0FCFFFF 
- 20203              	.LBB4696:
- 20204              	.LBB4697:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20205              		.loc 2 178 0
- 20206 1233b F30F6F85 		movdqu	-848(%rbp), %xmm0
- 20206      B0FCFFFF 
- 20207 12343 F30F6F8D 		movdqu	-832(%rbp), %xmm1
- 20207      C0FCFFFF 
- 20208 1234b 660FEFC1 		pxor	%xmm1, %xmm0
- 20209              	.LBE4697:
- 20210              	.LBE4696:
-1142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f2);
- 20211              		.loc 2 1142 0
- 20212 1234f F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 20212      C0F6FFFF 
- 20213 12357 F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 20213      C0F6FFFF 
- 20214 1235f F30F7F85 		movdqu	%xmm0, -800(%rbp)
- 20214      E0FCFFFF 
- 20215 12367 660F6F8D 		movdqa	-3584(%rbp), %xmm1
- 20215      00F2FFFF 
- 20216 1236f F30F7F8D 		movdqu	%xmm1, -816(%rbp)
- 20216      D0FCFFFF 
- 20217              	.LBB4698:
- 20218              	.LBB4699:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20219              		.loc 2 178 0
- 20220 12377 F30F6F85 		movdqu	-816(%rbp), %xmm0
- 20220      D0FCFFFF 
- 20221 1237f F30F6F8D 		movdqu	-800(%rbp), %xmm1
- 20221      E0FCFFFF 
- 20222 12387 660FEFC1 		pxor	%xmm1, %xmm0
- 20223              	.LBE4699:
- 20224              	.LBE4698:
-1143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f4);
- 20225              		.loc 2 1143 0
- 20226 1238b F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 20226      C0F6FFFF 
- 20227 12393 F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 20227      C0F6FFFF 
- 20228 1239b F30F7F85 		movdqu	%xmm0, -768(%rbp)
- 20228      00FDFFFF 
- 20229 123a3 660F6F85 		movdqa	-3600(%rbp), %xmm0
- 20229      F0F1FFFF 
- 20230 123ab F30F7F85 		movdqu	%xmm0, -784(%rbp)
- 20230      F0FCFFFF 
- 20231              	.LBB4700:
- 20232              	.LBB4701:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20233              		.loc 2 178 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 609
-
-
- 20234 123b3 F30F6F85 		movdqu	-784(%rbp), %xmm0
- 20234      F0FCFFFF 
- 20235 123bb F30F6F8D 		movdqu	-768(%rbp), %xmm1
- 20235      00FDFFFF 
- 20236 123c3 660FEFC1 		pxor	%xmm1, %xmm0
- 20237              	.LBE4701:
- 20238              	.LBE4700:
-1144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(VecXor) (state, f8);
- 20239              		.loc 2 1144 0
- 20240 123c7 F30F7F85 		movdqu	%xmm0, -2368(%rbp)
- 20240      C0F6FFFF 
-1148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20241              		.loc 2 1148 0
- 20242 123cf F30F6F85 		movdqu	-2368(%rbp), %xmm0
- 20242      C0F6FFFF 
- 20243              	.LBE4598:
- 20244              	.LBE4597:
-2201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvMixColumns) (state);
- 20245              		.loc 2 2201 0
- 20246 123d7 F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 20246      60F4FFFF 
-2204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 20247              		.loc 2 2204 0
- 20248 123df F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 20248      60F4FFFF 
- 20249 123e7 F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 20249      80F4FFFF 
- 20250              	.LBB4702:
-2206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvMixCo", mstate);
- 20251              		.loc 2 2206 0
- 20252 123ef F30F6F85 		movdqu	-2944(%rbp), %xmm0
- 20252      80F4FFFF 
- 20253 123f7 F30F7F85 		movdqu	%xmm0, -3392(%rbp)
- 20253      C0F2FFFF 
- 20254 123ff E8000000 		call	KDbgWriterGet at PLT
- 20254      00
- 20255 12404 4885C0   		testq	%rax, %rax
- 20256 12407 7479     		je	.L348
- 20257 12409 BF030000 		movl	$3, %edi
- 20257      00
- 20258 1240e E8000000 		call	KDbgCondToFlag at PLT
- 20258      00
- 20259 12413 4889C6   		movq	%rax, %rsi
- 20260 12416 BF100000 		movl	$16, %edi
- 20260      00
- 20261 1241b E8000000 		call	KDbgTestModConds at PLT
- 20261      00
- 20262 12420 84C0     		testb	%al, %al
- 20263 12422 745E     		je	.L348
- 20264 12424 8B85CCF2 		movl	-3380(%rbp), %eax
- 20264      FFFF
- 20265 1242a 89C7     		movl	%eax, %edi
- 20266 1242c E8CFDBFE 		call	bswap_32
- 20266      FF
- 20267 12431 4189C5   		movl	%eax, %r13d
- 20268 12434 8B85C8F2 		movl	-3384(%rbp), %eax
- 20268      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 610
-
-
- 20269 1243a 89C7     		movl	%eax, %edi
- 20270 1243c E8BFDBFE 		call	bswap_32
- 20270      FF
- 20271 12441 4189C4   		movl	%eax, %r12d
- 20272 12444 8B85C4F2 		movl	-3388(%rbp), %eax
- 20272      FFFF
- 20273 1244a 89C7     		movl	%eax, %edi
- 20274 1244c E8AFDBFE 		call	bswap_32
- 20274      FF
- 20275 12451 89C3     		movl	%eax, %ebx
- 20276 12453 8B85C0F2 		movl	-3392(%rbp), %eax
- 20276      FFFF
- 20277 12459 89C7     		movl	%eax, %edi
- 20278 1245b E8A0DBFE 		call	bswap_32
- 20278      FF
- 20279 12460 4589E9   		movl	%r13d, %r9d
- 20280 12463 4589E0   		movl	%r12d, %r8d
- 20281 12466 89D9     		movl	%ebx, %ecx
- 20282 12468 89C2     		movl	%eax, %edx
- 20283 1246a 488D3500 		leaq	.LC17(%rip), %rsi
- 20283      000000
- 20284 12471 488D3D00 		leaq	.LC1(%rip), %rdi
- 20284      000000
- 20285 12478 B8000000 		movl	$0, %eax
- 20285      00
- 20286 1247d E8000000 		call	KDbgMsg at PLT
- 20286      00
- 20287              	.L348:
- 20288 12482 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 20288      60F4FFFF 
- 20289 1248a F30F7F85 		movdqu	%xmm0, -736(%rbp)
- 20289      20FDFFFF 
- 20290 12492 F30F6F85 		movdqu	-2992(%rbp), %xmm0
- 20290      50F4FFFF 
- 20291 1249a F30F7F85 		movdqu	%xmm0, -752(%rbp)
- 20291      10FDFFFF 
- 20292 124a2 F30F6F85 		movdqu	-736(%rbp), %xmm0
- 20292      20FDFFFF 
- 20293 124aa F30F7F85 		movdqu	%xmm0, -704(%rbp)
- 20293      40FDFFFF 
- 20294 124b2 F30F6F85 		movdqu	-752(%rbp), %xmm0
- 20294      10FDFFFF 
- 20295 124ba F30F7F85 		movdqu	%xmm0, -720(%rbp)
- 20295      30FDFFFF 
- 20296              	.LBE4702:
- 20297              	.LBB4703:
- 20298              	.LBB4704:
- 20299              	.LBB4705:
- 20300              	.LBB4706:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20301              		.loc 2 178 0
- 20302 124c2 F30F6F85 		movdqu	-720(%rbp), %xmm0
- 20302      30FDFFFF 
- 20303 124ca F30F6F8D 		movdqu	-704(%rbp), %xmm1
- 20303      40FDFFFF 
- 20304 124d2 660FEFC1 		pxor	%xmm1, %xmm0
- 20305              	.LBE4706:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 611
-
-
- 20306              	.LBE4705:
- 20307              	.LBE4704:
- 20308              	.LBE4703:
-2209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 20309              		.loc 2 2209 0
- 20310 124d6 F30F7F85 		movdqu	%xmm0, -2976(%rbp)
- 20310      60F4FFFF 
-2213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     mstate = state;
- 20311              		.loc 2 2213 0
- 20312 124de F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 20312      60F4FFFF 
- 20313 124e6 F30F7F85 		movdqu	%xmm0, -2944(%rbp)
- 20313      80F4FFFF 
- 20314              	.LBB4707:
-2215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", mround_keys);
- 20315              		.loc 2 2215 0
- 20316 124ee F30F6F85 		movdqu	-2960(%rbp), %xmm0
- 20316      70F4FFFF 
- 20317 124f6 F30F7F85 		movdqu	%xmm0, -3408(%rbp)
- 20317      B0F2FFFF 
- 20318 124fe E8000000 		call	KDbgWriterGet at PLT
- 20318      00
- 20319 12503 4885C0   		testq	%rax, %rax
- 20320 12506 7479     		je	.L350
- 20321 12508 BF030000 		movl	$3, %edi
- 20321      00
- 20322 1250d E8000000 		call	KDbgCondToFlag at PLT
- 20322      00
- 20323 12512 4889C6   		movq	%rax, %rsi
- 20324 12515 BF100000 		movl	$16, %edi
- 20324      00
- 20325 1251a E8000000 		call	KDbgTestModConds at PLT
- 20325      00
- 20326 1251f 84C0     		testb	%al, %al
- 20327 12521 745E     		je	.L350
- 20328 12523 8B85BCF2 		movl	-3396(%rbp), %eax
- 20328      FFFF
- 20329 12529 89C7     		movl	%eax, %edi
- 20330 1252b E8D0DAFE 		call	bswap_32
- 20330      FF
- 20331 12530 4189C5   		movl	%eax, %r13d
- 20332 12533 8B85B8F2 		movl	-3400(%rbp), %eax
- 20332      FFFF
- 20333 12539 89C7     		movl	%eax, %edi
- 20334 1253b E8C0DAFE 		call	bswap_32
- 20334      FF
- 20335 12540 4189C4   		movl	%eax, %r12d
- 20336 12543 8B85B4F2 		movl	-3404(%rbp), %eax
- 20336      FFFF
- 20337 12549 89C7     		movl	%eax, %edi
- 20338 1254b E8B0DAFE 		call	bswap_32
- 20338      FF
- 20339 12550 89C3     		movl	%eax, %ebx
- 20340 12552 8B85B0F2 		movl	-3408(%rbp), %eax
- 20340      FFFF
- 20341 12558 89C7     		movl	%eax, %edi
- 20342 1255a E8A1DAFE 		call	bswap_32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 612
-
-
- 20342      FF
- 20343 1255f 4589E9   		movl	%r13d, %r9d
- 20344 12562 4589E0   		movl	%r12d, %r8d
- 20345 12565 89D9     		movl	%ebx, %ecx
- 20346 12567 89C2     		movl	%eax, %edx
- 20347 12569 488D3500 		leaq	.LC9(%rip), %rsi
- 20347      000000
- 20348 12570 488D3D00 		leaq	.LC1(%rip), %rdi
- 20348      000000
- 20349 12577 B8000000 		movl	$0, %eax
- 20349      00
- 20350 1257c E8000000 		call	KDbgMsg at PLT
- 20350      00
- 20351              	.L350:
- 20352              	.LBE4707:
- 20353              	.LBB4708:
-2217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", mstate);
- 20354              		.loc 2 2217 0
- 20355 12581 F30F6F85 		movdqu	-2944(%rbp), %xmm0
- 20355      80F4FFFF 
- 20356 12589 F30F7F85 		movdqu	%xmm0, -3424(%rbp)
- 20356      A0F2FFFF 
- 20357 12591 E8000000 		call	KDbgWriterGet at PLT
- 20357      00
- 20358 12596 4885C0   		testq	%rax, %rax
- 20359 12599 7479     		je	.L352
- 20360 1259b BF030000 		movl	$3, %edi
- 20360      00
- 20361 125a0 E8000000 		call	KDbgCondToFlag at PLT
- 20361      00
- 20362 125a5 4889C6   		movq	%rax, %rsi
- 20363 125a8 BF100000 		movl	$16, %edi
- 20363      00
- 20364 125ad E8000000 		call	KDbgTestModConds at PLT
- 20364      00
- 20365 125b2 84C0     		testb	%al, %al
- 20366 125b4 745E     		je	.L352
- 20367 125b6 8B85ACF2 		movl	-3412(%rbp), %eax
- 20367      FFFF
- 20368 125bc 89C7     		movl	%eax, %edi
- 20369 125be E83DDAFE 		call	bswap_32
- 20369      FF
- 20370 125c3 4189C5   		movl	%eax, %r13d
- 20371 125c6 8B85A8F2 		movl	-3416(%rbp), %eax
- 20371      FFFF
- 20372 125cc 89C7     		movl	%eax, %edi
- 20373 125ce E82DDAFE 		call	bswap_32
- 20373      FF
- 20374 125d3 4189C4   		movl	%eax, %r12d
- 20375 125d6 8B85A4F2 		movl	-3420(%rbp), %eax
- 20375      FFFF
- 20376 125dc 89C7     		movl	%eax, %edi
- 20377 125de E81DDAFE 		call	bswap_32
- 20377      FF
- 20378 125e3 89C3     		movl	%eax, %ebx
- 20379 125e5 8B85A0F2 		movl	-3424(%rbp), %eax
- 20379      FFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 613
-
-
- 20380 125eb 89C7     		movl	%eax, %edi
- 20381 125ed E80EDAFE 		call	bswap_32
- 20381      FF
- 20382 125f2 4589E9   		movl	%r13d, %r9d
- 20383 125f5 4589E0   		movl	%r12d, %r8d
- 20384 125f8 89D9     		movl	%ebx, %ecx
- 20385 125fa 89C2     		movl	%eax, %edx
- 20386 125fc 488D3500 		leaq	.LC14(%rip), %rsi
- 20386      000000
- 20387 12603 488D3D00 		leaq	.LC1(%rip), %rdi
- 20387      000000
- 20388 1260a B8000000 		movl	$0, %eax
- 20388      00
- 20389 1260f E8000000 		call	KDbgMsg at PLT
- 20389      00
- 20390              	.L352:
- 20391              	.LBE4708:
-2220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20392              		.loc 2 2220 0
- 20393 12614 F30F6F85 		movdqu	-2976(%rbp), %xmm0
- 20393      60F4FFFF 
- 20394              	.LBE4561:
- 20395              	.LBE4560:
- 20396              		.loc 2 2277 0
- 20397 1261c 660F7F85 		movdqa	%xmm0, -3488(%rbp)
- 20397      60F2FFFF 
-2276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for ( ; ix < Nr; ++ix)
- 20398              		.loc 2 2276 0
- 20399 12624 8385ECF3 		addl	$1, -3092(%rbp)
- 20399      FFFF01
- 20400              	.L320:
- 20401 1262b 8B85ECF3 		movl	-3092(%rbp), %eax
- 20401      FFFF
- 20402 12631 3B8554F2 		cmpl	-3500(%rbp), %eax
- 20402      FFFF
- 20403 12637 0F8253E9 		jb	.L353
- 20403      FFFF
-2278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return AESBCMEMBER(EqInvLastRound) (state, key[ix]);
- 20404              		.loc 2 2279 0
- 20405 1263d 8B85ECF3 		mov	-3092(%rbp), %eax
- 20405      FFFF
- 20406 12643 48C1E004 		salq	$4, %rax
- 20407 12647 48038558 		addq	-3496(%rbp), %rax
- 20407      F2FFFF
- 20408 1264e 660F6F00 		movdqa	(%rax), %xmm0
- 20409 12652 660F6F8D 		movdqa	-3488(%rbp), %xmm1
- 20409      60F2FFFF 
- 20410 1265a F30F7F8D 		movdqu	%xmm1, -672(%rbp)
- 20410      60FDFFFF 
- 20411 12662 F30F7F85 		movdqu	%xmm0, -688(%rbp)
- 20411      50FDFFFF 
- 20412              	.LBB4709:
- 20413              	.LBB4710:
- 20414              	.LBB4711:
-2237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Start of Round", state);
- 20415              		.loc 2 2237 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 614
-
-
- 20416 1266a F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20416      60FDFFFF 
- 20417 12672 F30F7F85 		movdqu	%xmm0, -3120(%rbp)
- 20417      D0F3FFFF 
- 20418 1267a E8000000 		call	KDbgWriterGet at PLT
- 20418      00
- 20419 1267f 4885C0   		testq	%rax, %rax
- 20420 12682 7479     		je	.L355
- 20421 12684 BF030000 		movl	$3, %edi
- 20421      00
- 20422 12689 E8000000 		call	KDbgCondToFlag at PLT
- 20422      00
- 20423 1268e 4889C6   		movq	%rax, %rsi
- 20424 12691 BF100000 		movl	$16, %edi
- 20424      00
- 20425 12696 E8000000 		call	KDbgTestModConds at PLT
- 20425      00
- 20426 1269b 84C0     		testb	%al, %al
- 20427 1269d 745E     		je	.L355
- 20428 1269f 8B85DCF3 		movl	-3108(%rbp), %eax
- 20428      FFFF
- 20429 126a5 89C7     		movl	%eax, %edi
- 20430 126a7 E854D9FE 		call	bswap_32
- 20430      FF
- 20431 126ac 4189C5   		movl	%eax, %r13d
- 20432 126af 8B85D8F3 		movl	-3112(%rbp), %eax
- 20432      FFFF
- 20433 126b5 89C7     		movl	%eax, %edi
- 20434 126b7 E844D9FE 		call	bswap_32
- 20434      FF
- 20435 126bc 4189C4   		movl	%eax, %r12d
- 20436 126bf 8B85D4F3 		movl	-3116(%rbp), %eax
- 20436      FFFF
- 20437 126c5 89C7     		movl	%eax, %edi
- 20438 126c7 E834D9FE 		call	bswap_32
- 20438      FF
- 20439 126cc 89C3     		movl	%eax, %ebx
- 20440 126ce 8B85D0F3 		movl	-3120(%rbp), %eax
- 20440      FFFF
- 20441 126d4 89C7     		movl	%eax, %edi
- 20442 126d6 E825D9FE 		call	bswap_32
- 20442      FF
- 20443 126db 4589E9   		movl	%r13d, %r9d
- 20444 126de 4589E0   		movl	%r12d, %r8d
- 20445 126e1 89D9     		movl	%ebx, %ecx
- 20446 126e3 89C2     		movl	%eax, %edx
- 20447 126e5 488D3500 		leaq	.LC8(%rip), %rsi
- 20447      000000
- 20448 126ec 488D3D00 		leaq	.LC1(%rip), %rdi
- 20448      000000
- 20449 126f3 B8000000 		movl	$0, %eax
- 20449      00
- 20450 126f8 E8000000 		call	KDbgMsg at PLT
- 20450      00
- 20451              	.L355:
- 20452 126fd F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20452      60FDFFFF 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 615
-
-
- 20453 12705 F30F7F85 		movdqu	%xmm0, -656(%rbp)
- 20453      70FDFFFF 
- 20454 1270d F30F6F85 		movdqu	-656(%rbp), %xmm0
- 20454      70FDFFFF 
- 20455 12715 F30F7F85 		movdqu	%xmm0, -624(%rbp)
- 20455      90FDFFFF 
- 20456 1271d 488D0500 		leaq	KAESBlockCipherVecRegRijndaelInvSBoxV(%rip), %rax
- 20456      000000
- 20457 12724 48898588 		movq	%rax, -632(%rbp)
- 20457      FDFFFF
- 20458              	.LBE4711:
- 20459              	.LBB4712:
- 20460              	.LBB4713:
- 20461              	.LBB4714:
- 20462              	.LBB4715:
- 851:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     out = vec_00;
- 20463              		.loc 2 851 0
- 20464 1272b 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 20464      00000000 
- 20465 12733 F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 20465      B0FDFFFF 
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 20466              		.loc 2 854 0
- 20467 1273b 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 20467      00000000 
- 20468 12743 F30F6F8D 		movdqu	-624(%rbp), %xmm1
- 20468      90FDFFFF 
- 20469 1274b F30F7F8D 		movdqu	%xmm1, -512(%rbp)
- 20469      00FEFFFF 
- 20470 12753 F30F7F85 		movdqu	%xmm0, -528(%rbp)
- 20470      F0FDFFFF 
- 20471              	.LBB4716:
- 20472              	.LBB4717:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 20473              		.loc 2 206 0
- 20474 1275b F30F6F85 		movdqu	-528(%rbp), %xmm0
- 20474      F0FDFFFF 
- 20475 12763 F30F6F8D 		movdqu	-512(%rbp), %xmm1
- 20475      00FEFFFF 
- 20476 1276b 660FDBC1 		pand	%xmm1, %xmm0
- 20477              	.LBE4717:
- 20478              	.LBE4716:
- 854:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     lo = AESBCMEMBER(VecAnd) (state, vec_0F);
- 20479              		.loc 2 854 0
- 20480 1276f F30F7F85 		movdqu	%xmm0, -544(%rbp)
- 20480      E0FDFFFF 
- 20481 12777 F30F6F85 		movdqu	-624(%rbp), %xmm0
- 20481      90FDFFFF 
- 20482 1277f F30F7F85 		movdqu	%xmm0, -480(%rbp)
- 20482      20FEFFFF 
- 20483              	.LBB4718:
- 20484              	.LBB4719:
- 433:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_psrldi128 ((v128_i32_t)vin, bit_count);
- 20485              		.loc 3 433 0
- 20486 12787 F30F6F85 		movdqu	-480(%rbp), %xmm0
- 20486      20FEFFFF 
- 20487 1278f 660F72D0 		psrld	$4, %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 616
-
-
- 20487      04
- 20488              	.LBE4719:
- 20489              	.LBE4718:
- 857:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = op_PSRLDI128 (state, 4);
- 20490              		.loc 2 857 0
- 20491 12794 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 20491      D0FDFFFF 
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 20492              		.loc 2 859 0
- 20493 1279c 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 20493      00000000 
- 20494 127a4 F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 20494      D0FDFFFF 
- 20495 127ac F30F7F8D 		movdqu	%xmm1, -448(%rbp)
- 20495      40FEFFFF 
- 20496 127b4 F30F7F85 		movdqu	%xmm0, -464(%rbp)
- 20496      30FEFFFF 
- 20497              	.LBB4720:
- 20498              	.LBB4721:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 20499              		.loc 2 206 0
- 20500 127bc F30F6F85 		movdqu	-464(%rbp), %xmm0
- 20500      30FEFFFF 
- 20501 127c4 F30F6F8D 		movdqu	-448(%rbp), %xmm1
- 20501      40FEFFFF 
- 20502 127cc 660FDBC1 		pand	%xmm1, %xmm0
- 20503              	.LBE4721:
- 20504              	.LBE4720:
- 859:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     hi = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 20505              		.loc 2 859 0
- 20506 127d0 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 20506      D0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 20507              		.loc 2 866 0
- 20508 127d8 C785ACFD 		movl	$0, -596(%rbp)
- 20508      FFFF0000 
- 20508      0000
- 20509 127e2 E9BE0100 		jmp	.L356
- 20509      00
- 20510              	.L357:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 20511              		.loc 2 868 0
- 20512 127e7 660F6F05 		movdqa	lo_filter(%rip), %xmm0
- 20512      00000000 
- 20513 127ef F30F7F85 		movdqu	%xmm0, -416(%rbp)
- 20513      60FEFFFF 
- 20514 127f7 F30F6F85 		movdqu	-560(%rbp), %xmm0
- 20514      D0FDFFFF 
- 20515 127ff F30F7F85 		movdqu	%xmm0, -432(%rbp)
- 20515      50FEFFFF 
- 20516 12807 F30F6F85 		movdqu	-416(%rbp), %xmm0
- 20516      60FEFFFF 
- 20517 1280f F30F7F85 		movdqu	%xmm0, -384(%rbp)
- 20517      80FEFFFF 
- 20518 12817 F30F6F85 		movdqu	-432(%rbp), %xmm0
- 20518      50FEFFFF 
- 20519 1281f F30F7F85 		movdqu	%xmm0, -400(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 617
-
-
- 20519      70FEFFFF 
- 20520              	.LBB4722:
- 20521              	.LBB4723:
- 20522              	.LBB4724:
- 20523              	.LBB4725:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 20524              		.loc 3 529 0
- 20525 12827 F30F6F8D 		movdqu	-400(%rbp), %xmm1
- 20525      70FEFFFF 
- 20526 1282f F30F6F85 		movdqu	-384(%rbp), %xmm0
- 20526      80FEFFFF 
- 20527 12837 660F3800 		pshufb	%xmm1, %xmm0
- 20527      C1
- 20528              	.LBE4725:
- 20529              	.LBE4724:
- 20530              	.LBE4723:
- 20531              	.LBE4722:
- 868:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (lo_filter, hi);
- 20532              		.loc 2 868 0
- 20533 1283c F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 20533      C0FDFFFF 
- 20534 12844 F30F6F85 		movdqu	-544(%rbp), %xmm0
- 20534      E0FDFFFF 
- 20535 1284c F30F7F85 		movdqu	%xmm0, -352(%rbp)
- 20535      A0FEFFFF 
- 20536 12854 F30F6F85 		movdqu	-576(%rbp), %xmm0
- 20536      C0FDFFFF 
- 20537 1285c F30F7F85 		movdqu	%xmm0, -368(%rbp)
- 20537      90FEFFFF 
- 20538              	.LBB4726:
- 20539              	.LBB4727:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 20540              		.loc 2 234 0
- 20541 12864 F30F6F85 		movdqu	-368(%rbp), %xmm0
- 20541      90FEFFFF 
- 20542 1286c F30F6F8D 		movdqu	-352(%rbp), %xmm1
- 20542      A0FEFFFF 
- 20543 12874 660FEBC1 		por	%xmm1, %xmm0
- 20544              	.LBE4727:
- 20545              	.LBE4726:
- 870:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(VecOr) (lo, tmp);
- 20546              		.loc 2 870 0
- 20547 12878 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 20547      C0FDFFFF 
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 20548              		.loc 2 872 0
- 20549 12880 8B85ACFD 		mov	-596(%rbp), %eax
- 20549      FFFF
- 20550 12886 48C1E004 		salq	$4, %rax
- 20551 1288a 48038588 		addq	-632(%rbp), %rax
- 20551      FDFFFF
- 20552 12891 660F6F00 		movdqa	(%rax), %xmm0
- 20553 12895 F30F7F85 		movdqu	%xmm0, -320(%rbp)
- 20553      C0FEFFFF 
- 20554 1289d F30F6F85 		movdqu	-576(%rbp), %xmm0
- 20554      C0FDFFFF 
- 20555 128a5 F30F7F85 		movdqu	%xmm0, -336(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 618
-
-
- 20555      B0FEFFFF 
- 20556 128ad F30F6F85 		movdqu	-320(%rbp), %xmm0
- 20556      C0FEFFFF 
- 20557 128b5 F30F7F85 		movdqu	%xmm0, -288(%rbp)
- 20557      E0FEFFFF 
- 20558 128bd F30F6F85 		movdqu	-336(%rbp), %xmm0
- 20558      B0FEFFFF 
- 20559 128c5 F30F7F85 		movdqu	%xmm0, -304(%rbp)
- 20559      D0FEFFFF 
- 20560              	.LBB4728:
- 20561              	.LBB4729:
- 20562              	.LBB4730:
- 20563              	.LBB4731:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 20564              		.loc 3 529 0
- 20565 128cd F30F6F8D 		movdqu	-304(%rbp), %xmm1
- 20565      D0FEFFFF 
- 20566 128d5 F30F6F85 		movdqu	-288(%rbp), %xmm0
- 20566      E0FEFFFF 
- 20567 128dd 660F3800 		pshufb	%xmm1, %xmm0
- 20567      C1
- 20568              	.LBE4731:
- 20569              	.LBE4730:
- 20570              	.LBE4729:
- 20571              	.LBE4728:
- 872:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         tmp = AESBCMEMBER(PackShuffleBytes) (box[ix], tmp);
- 20572              		.loc 2 872 0
- 20573 128e2 F30F7F85 		movdqu	%xmm0, -576(%rbp)
- 20573      C0FDFFFF 
- 20574 128ea F30F6F85 		movdqu	-592(%rbp), %xmm0
- 20574      B0FDFFFF 
- 20575 128f2 F30F7F85 		movdqu	%xmm0, -256(%rbp)
- 20575      00FFFFFF 
- 20576 128fa F30F6F85 		movdqu	-576(%rbp), %xmm0
- 20576      C0FDFFFF 
- 20577 12902 F30F7F85 		movdqu	%xmm0, -272(%rbp)
- 20577      F0FEFFFF 
- 20578              	.LBB4732:
- 20579              	.LBB4733:
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 | v2;
- 20580              		.loc 2 234 0
- 20581 1290a F30F6F85 		movdqu	-272(%rbp), %xmm0
- 20581      F0FEFFFF 
- 20582 12912 F30F6F8D 		movdqu	-256(%rbp), %xmm1
- 20582      00FFFFFF 
- 20583 1291a 660FEBC1 		por	%xmm1, %xmm0
- 20584              	.LBE4733:
- 20585              	.LBE4732:
- 874:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         out = AESBCMEMBER(VecOr) (out, tmp);
- 20586              		.loc 2 874 0
- 20587 1291e F30F7F85 		movdqu	%xmm0, -592(%rbp)
- 20587      B0FDFFFF 
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 20588              		.loc 2 876 0
- 20589 12926 660F6F05 		movdqa	vec_01(%rip), %xmm0
- 20589      00000000 
- 20590 1292e F30F6F8D 		movdqu	-560(%rbp), %xmm1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 619
-
-
- 20590      D0FDFFFF 
- 20591 12936 F30F7F8D 		movdqu	%xmm1, -224(%rbp)
- 20591      20FFFFFF 
- 20592 1293e F30F7F85 		movdqu	%xmm0, -240(%rbp)
- 20592      10FFFFFF 
- 20593              	.LBB4734:
- 20594              	.LBB4735:
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 - v2;
- 20595              		.loc 2 290 0
- 20596 12946 F30F6F8D 		movdqu	-240(%rbp), %xmm1
- 20596      10FFFFFF 
- 20597 1294e F30F6F85 		movdqu	-224(%rbp), %xmm0
- 20597      20FFFFFF 
- 20598 12956 660FF8C1 		psubb	%xmm1, %xmm0
- 20599              	.LBE4735:
- 20600              	.LBE4734:
- 876:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecSub) (hi, vec_01);
- 20601              		.loc 2 876 0
- 20602 1295a F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 20602      D0FDFFFF 
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 20603              		.loc 2 878 0
- 20604 12962 660F6F05 		movdqa	vec_0F(%rip), %xmm0
- 20604      00000000 
- 20605 1296a F30F6F8D 		movdqu	-560(%rbp), %xmm1
- 20605      D0FDFFFF 
- 20606 12972 F30F7F8D 		movdqu	%xmm1, -192(%rbp)
- 20606      40FFFFFF 
- 20607 1297a F30F7F85 		movdqu	%xmm0, -208(%rbp)
- 20607      30FFFFFF 
- 20608              	.LBB4736:
- 20609              	.LBB4737:
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 & v2;
- 20610              		.loc 2 206 0
- 20611 12982 F30F6F85 		movdqu	-208(%rbp), %xmm0
- 20611      30FFFFFF 
- 20612 1298a F30F6F8D 		movdqu	-192(%rbp), %xmm1
- 20612      40FFFFFF 
- 20613 12992 660FDBC1 		pand	%xmm1, %xmm0
- 20614              	.LBE4737:
- 20615              	.LBE4736:
- 878:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         hi  = AESBCMEMBER(VecAnd) (hi, vec_0F);
- 20616              		.loc 2 878 0
- 20617 12996 F30F7F85 		movdqu	%xmm0, -560(%rbp)
- 20617      D0FDFFFF 
- 866:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     for (ix = 0; ix < sizeof (state); ++ix)
- 20618              		.loc 2 866 0
- 20619 1299e 8385ACFD 		addl	$1, -596(%rbp)
- 20619      FFFF01
- 20620              	.L356:
- 20621 129a5 83BDACFD 		cmpl	$15, -596(%rbp)
- 20621      FFFF0F
- 20622 129ac 0F8635FE 		jbe	.L357
- 20622      FFFF
- 882:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return out;
- 20623              		.loc 2 882 0
- 20624 129b2 F30F6F85 		movdqu	-592(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 620
-
-
- 20624      B0FDFFFF 
- 20625              	.LBE4715:
- 20626              	.LBE4714:
- 20627              	.LBE4713:
- 20628              	.LBE4712:
-2243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvSubBytes) (state);
- 20629              		.loc 2 2243 0
- 20630 129ba F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 20630      60FDFFFF 
- 20631              	.LBB4738:
-2245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvSubBy", state);
- 20632              		.loc 2 2245 0
- 20633 129c2 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20633      60FDFFFF 
- 20634 129ca F30F7F85 		movdqu	%xmm0, -3136(%rbp)
- 20634      C0F3FFFF 
- 20635 129d2 E8000000 		call	KDbgWriterGet at PLT
- 20635      00
- 20636 129d7 4885C0   		testq	%rax, %rax
- 20637 129da 7479     		je	.L359
- 20638 129dc BF030000 		movl	$3, %edi
- 20638      00
- 20639 129e1 E8000000 		call	KDbgCondToFlag at PLT
- 20639      00
- 20640 129e6 4889C6   		movq	%rax, %rsi
- 20641 129e9 BF100000 		movl	$16, %edi
- 20641      00
- 20642 129ee E8000000 		call	KDbgTestModConds at PLT
- 20642      00
- 20643 129f3 84C0     		testb	%al, %al
- 20644 129f5 745E     		je	.L359
- 20645 129f7 8B85CCF3 		movl	-3124(%rbp), %eax
- 20645      FFFF
- 20646 129fd 89C7     		movl	%eax, %edi
- 20647 129ff E8FCD5FE 		call	bswap_32
- 20647      FF
- 20648 12a04 4189C5   		movl	%eax, %r13d
- 20649 12a07 8B85C8F3 		movl	-3128(%rbp), %eax
- 20649      FFFF
- 20650 12a0d 89C7     		movl	%eax, %edi
- 20651 12a0f E8ECD5FE 		call	bswap_32
- 20651      FF
- 20652 12a14 4189C4   		movl	%eax, %r12d
- 20653 12a17 8B85C4F3 		movl	-3132(%rbp), %eax
- 20653      FFFF
- 20654 12a1d 89C7     		movl	%eax, %edi
- 20655 12a1f E8DCD5FE 		call	bswap_32
- 20655      FF
- 20656 12a24 89C3     		movl	%eax, %ebx
- 20657 12a26 8B85C0F3 		movl	-3136(%rbp), %eax
- 20657      FFFF
- 20658 12a2c 89C7     		movl	%eax, %edi
- 20659 12a2e E8CDD5FE 		call	bswap_32
- 20659      FF
- 20660 12a33 4589E9   		movl	%r13d, %r9d
- 20661 12a36 4589E0   		movl	%r12d, %r8d
- 20662 12a39 89D9     		movl	%ebx, %ecx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 621
-
-
- 20663 12a3b 89C2     		movl	%eax, %edx
- 20664 12a3d 488D3500 		leaq	.LC15(%rip), %rsi
- 20664      000000
- 20665 12a44 488D3D00 		leaq	.LC1(%rip), %rdi
- 20665      000000
- 20666 12a4b B8000000 		movl	$0, %eax
- 20666      00
- 20667 12a50 E8000000 		call	KDbgMsg at PLT
- 20667      00
- 20668              	.L359:
- 20669 12a55 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20669      60FDFFFF 
- 20670 12a5d F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 20670      50FFFFFF 
- 20671              	.LBE4738:
- 20672              	.LBB4739:
- 20673              	.LBB4740:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 20674              		.loc 2 612 0
- 20675 12a65 660F6F05 		movdqa	InvShiftRowTable.7367(%rip), %xmm0
- 20675      00000000 
- 20676 12a6d F30F6F8D 		movdqu	-176(%rbp), %xmm1
- 20676      50FFFFFF 
- 20677 12a75 F30F7F8D 		movdqu	%xmm1, -144(%rbp)
- 20677      70FFFFFF 
- 20678 12a7d F30F7F85 		movdqu	%xmm0, -160(%rbp)
- 20678      60FFFFFF 
- 20679 12a85 F30F6F85 		movdqu	-144(%rbp), %xmm0
- 20679      70FFFFFF 
- 20680 12a8d F30F7F45 		movdqu	%xmm0, -112(%rbp)
- 20680      90
- 20681 12a92 F30F6F85 		movdqu	-160(%rbp), %xmm0
- 20681      60FFFFFF 
- 20682 12a9a F30F7F45 		movdqu	%xmm0, -128(%rbp)
- 20682      80
- 20683              	.LBB4741:
- 20684              	.LBB4742:
- 20685              	.LBB4743:
- 20686              	.LBB4744:
- 529:/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h ****     return (v128_u8_t)__builtin_ia32_pshufb128 ((v128_c_t)vin, (v128_c_t)vtab);
- 20687              		.loc 3 529 0
- 20688 12a9f F30F6F4D 		movdqu	-128(%rbp), %xmm1
- 20688      80
- 20689 12aa4 F30F6F45 		movdqu	-112(%rbp), %xmm0
- 20689      90
- 20690 12aa9 660F3800 		pshufb	%xmm1, %xmm0
- 20690      C1
- 20691              	.LBE4744:
- 20692              	.LBE4743:
- 20693              	.LBE4742:
- 20694              	.LBE4741:
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(PackShuffleBytes) (state, InvShiftRowTable);
- 20695              		.loc 2 612 0
- 20696 12aae F30F7F85 		movdqu	%xmm0, -176(%rbp)
- 20696      50FFFFFF 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20697              		.loc 2 613 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 622
-
-
- 20698 12ab6 F30F6F85 		movdqu	-176(%rbp), %xmm0
- 20698      50FFFFFF 
- 20699              	.LBE4740:
- 20700              	.LBE4739:
-2247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(InvShiftRows) (state);
- 20701              		.loc 2 2247 0
- 20702 12abe F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 20702      60FDFFFF 
- 20703              	.LBB4745:
-2249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("After InvShift", state);
- 20704              		.loc 2 2249 0
- 20705 12ac6 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20705      60FDFFFF 
- 20706 12ace F30F7F85 		movdqu	%xmm0, -3152(%rbp)
- 20706      B0F3FFFF 
- 20707 12ad6 E8000000 		call	KDbgWriterGet at PLT
- 20707      00
- 20708 12adb 4885C0   		testq	%rax, %rax
- 20709 12ade 7479     		je	.L361
- 20710 12ae0 BF030000 		movl	$3, %edi
- 20710      00
- 20711 12ae5 E8000000 		call	KDbgCondToFlag at PLT
- 20711      00
- 20712 12aea 4889C6   		movq	%rax, %rsi
- 20713 12aed BF100000 		movl	$16, %edi
- 20713      00
- 20714 12af2 E8000000 		call	KDbgTestModConds at PLT
- 20714      00
- 20715 12af7 84C0     		testb	%al, %al
- 20716 12af9 745E     		je	.L361
- 20717 12afb 8B85BCF3 		movl	-3140(%rbp), %eax
- 20717      FFFF
- 20718 12b01 89C7     		movl	%eax, %edi
- 20719 12b03 E8F8D4FE 		call	bswap_32
- 20719      FF
- 20720 12b08 4189C5   		movl	%eax, %r13d
- 20721 12b0b 8B85B8F3 		movl	-3144(%rbp), %eax
- 20721      FFFF
- 20722 12b11 89C7     		movl	%eax, %edi
- 20723 12b13 E8E8D4FE 		call	bswap_32
- 20723      FF
- 20724 12b18 4189C4   		movl	%eax, %r12d
- 20725 12b1b 8B85B4F3 		movl	-3148(%rbp), %eax
- 20725      FFFF
- 20726 12b21 89C7     		movl	%eax, %edi
- 20727 12b23 E8D8D4FE 		call	bswap_32
- 20727      FF
- 20728 12b28 89C3     		movl	%eax, %ebx
- 20729 12b2a 8B85B0F3 		movl	-3152(%rbp), %eax
- 20729      FFFF
- 20730 12b30 89C7     		movl	%eax, %edi
- 20731 12b32 E8C9D4FE 		call	bswap_32
- 20731      FF
- 20732 12b37 4589E9   		movl	%r13d, %r9d
- 20733 12b3a 4589E0   		movl	%r12d, %r8d
- 20734 12b3d 89D9     		movl	%ebx, %ecx
- 20735 12b3f 89C2     		movl	%eax, %edx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 623
-
-
- 20736 12b41 488D3500 		leaq	.LC16(%rip), %rsi
- 20736      000000
- 20737 12b48 488D3D00 		leaq	.LC1(%rip), %rdi
- 20737      000000
- 20738 12b4f B8000000 		movl	$0, %eax
- 20738      00
- 20739 12b54 E8000000 		call	KDbgMsg at PLT
- 20739      00
- 20740              	.L361:
- 20741 12b59 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20741      60FDFFFF 
- 20742 12b61 F30F7F45 		movdqu	%xmm0, -80(%rbp)
- 20742      B0
- 20743 12b66 F30F6F85 		movdqu	-688(%rbp), %xmm0
- 20743      50FDFFFF 
- 20744 12b6e F30F7F45 		movdqu	%xmm0, -96(%rbp)
- 20744      A0
- 20745 12b73 F30F6F45 		movdqu	-80(%rbp), %xmm0
- 20745      B0
- 20746 12b78 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 20746      D0
- 20747 12b7d F30F6F45 		movdqu	-96(%rbp), %xmm0
- 20747      A0
- 20748 12b82 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 20748      C0
- 20749              	.LBE4745:
- 20750              	.LBB4746:
- 20751              	.LBB4747:
- 20752              	.LBB4748:
- 20753              	.LBB4749:
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return v1 ^ v2;
- 20754              		.loc 2 178 0
- 20755 12b87 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 20755      C0
- 20756 12b8c F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 20756      D0
- 20757 12b91 660FEFC1 		pxor	%xmm1, %xmm0
- 20758              	.LBE4749:
- 20759              	.LBE4748:
- 20760              	.LBE4747:
- 20761              	.LBE4746:
-2251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     state = AESBCMEMBER(AddRoundKey) (state, round_keys);
- 20762              		.loc 2 2251 0
- 20763 12b95 F30F7F85 		movdqu	%xmm0, -672(%rbp)
- 20763      60FDFFFF 
- 20764              	.LBB4750:
-2253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("Round Key", round_keys);
- 20765              		.loc 2 2253 0
- 20766 12b9d F30F6F85 		movdqu	-688(%rbp), %xmm0
- 20766      50FDFFFF 
- 20767 12ba5 F30F7F85 		movdqu	%xmm0, -3168(%rbp)
- 20767      A0F3FFFF 
- 20768 12bad E8000000 		call	KDbgWriterGet at PLT
- 20768      00
- 20769 12bb2 4885C0   		testq	%rax, %rax
- 20770 12bb5 7479     		je	.L363
- 20771 12bb7 BF030000 		movl	$3, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 624
-
-
- 20771      00
- 20772 12bbc E8000000 		call	KDbgCondToFlag at PLT
- 20772      00
- 20773 12bc1 4889C6   		movq	%rax, %rsi
- 20774 12bc4 BF100000 		movl	$16, %edi
- 20774      00
- 20775 12bc9 E8000000 		call	KDbgTestModConds at PLT
- 20775      00
- 20776 12bce 84C0     		testb	%al, %al
- 20777 12bd0 745E     		je	.L363
- 20778 12bd2 8B85ACF3 		movl	-3156(%rbp), %eax
- 20778      FFFF
- 20779 12bd8 89C7     		movl	%eax, %edi
- 20780 12bda E821D4FE 		call	bswap_32
- 20780      FF
- 20781 12bdf 4189C5   		movl	%eax, %r13d
- 20782 12be2 8B85A8F3 		movl	-3160(%rbp), %eax
- 20782      FFFF
- 20783 12be8 89C7     		movl	%eax, %edi
- 20784 12bea E811D4FE 		call	bswap_32
- 20784      FF
- 20785 12bef 4189C4   		movl	%eax, %r12d
- 20786 12bf2 8B85A4F3 		movl	-3164(%rbp), %eax
- 20786      FFFF
- 20787 12bf8 89C7     		movl	%eax, %edi
- 20788 12bfa E801D4FE 		call	bswap_32
- 20788      FF
- 20789 12bff 89C3     		movl	%eax, %ebx
- 20790 12c01 8B85A0F3 		movl	-3168(%rbp), %eax
- 20790      FFFF
- 20791 12c07 89C7     		movl	%eax, %edi
- 20792 12c09 E8F2D3FE 		call	bswap_32
- 20792      FF
- 20793 12c0e 4589E9   		movl	%r13d, %r9d
- 20794 12c11 4589E0   		movl	%r12d, %r8d
- 20795 12c14 89D9     		movl	%ebx, %ecx
- 20796 12c16 89C2     		movl	%eax, %edx
- 20797 12c18 488D3500 		leaq	.LC9(%rip), %rsi
- 20797      000000
- 20798 12c1f 488D3D00 		leaq	.LC1(%rip), %rdi
- 20798      000000
- 20799 12c26 B8000000 		movl	$0, %eax
- 20799      00
- 20800 12c2b E8000000 		call	KDbgMsg at PLT
- 20800      00
- 20801              	.L363:
- 20802              	.LBE4750:
- 20803              	.LBB4751:
-2254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_INVCIPHER_VECTOR("End of Round", state);
- 20804              		.loc 2 2254 0
- 20805 12c30 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20805      60FDFFFF 
- 20806 12c38 F30F7F85 		movdqu	%xmm0, -3184(%rbp)
- 20806      90F3FFFF 
- 20807 12c40 E8000000 		call	KDbgWriterGet at PLT
- 20807      00
- 20808 12c45 4885C0   		testq	%rax, %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 625
-
-
- 20809 12c48 7479     		je	.L365
- 20810 12c4a BF030000 		movl	$3, %edi
- 20810      00
- 20811 12c4f E8000000 		call	KDbgCondToFlag at PLT
- 20811      00
- 20812 12c54 4889C6   		movq	%rax, %rsi
- 20813 12c57 BF100000 		movl	$16, %edi
- 20813      00
- 20814 12c5c E8000000 		call	KDbgTestModConds at PLT
- 20814      00
- 20815 12c61 84C0     		testb	%al, %al
- 20816 12c63 745E     		je	.L365
- 20817 12c65 8B859CF3 		movl	-3172(%rbp), %eax
- 20817      FFFF
- 20818 12c6b 89C7     		movl	%eax, %edi
- 20819 12c6d E88ED3FE 		call	bswap_32
- 20819      FF
- 20820 12c72 4189C5   		movl	%eax, %r13d
- 20821 12c75 8B8598F3 		movl	-3176(%rbp), %eax
- 20821      FFFF
- 20822 12c7b 89C7     		movl	%eax, %edi
- 20823 12c7d E87ED3FE 		call	bswap_32
- 20823      FF
- 20824 12c82 4189C4   		movl	%eax, %r12d
- 20825 12c85 8B8594F3 		movl	-3180(%rbp), %eax
- 20825      FFFF
- 20826 12c8b 89C7     		movl	%eax, %edi
- 20827 12c8d E86ED3FE 		call	bswap_32
- 20827      FF
- 20828 12c92 89C3     		movl	%eax, %ebx
- 20829 12c94 8B8590F3 		movl	-3184(%rbp), %eax
- 20829      FFFF
- 20830 12c9a 89C7     		movl	%eax, %edi
- 20831 12c9c E85FD3FE 		call	bswap_32
- 20831      FF
- 20832 12ca1 4589E9   		movl	%r13d, %r9d
- 20833 12ca4 4589E0   		movl	%r12d, %r8d
- 20834 12ca7 89D9     		movl	%ebx, %ecx
- 20835 12ca9 89C2     		movl	%eax, %edx
- 20836 12cab 488D3500 		leaq	.LC14(%rip), %rsi
- 20836      000000
- 20837 12cb2 488D3D00 		leaq	.LC1(%rip), %rdi
- 20837      000000
- 20838 12cb9 B8000000 		movl	$0, %eax
- 20838      00
- 20839 12cbe E8000000 		call	KDbgMsg at PLT
- 20839      00
- 20840              	.L365:
- 20841              	.LBE4751:
-2256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 20842              		.loc 2 2256 0
- 20843 12cc3 F30F6F85 		movdqu	-672(%rbp), %xmm0
- 20843      60FDFFFF 
- 20844              	.LBE4710:
- 20845              	.LBE4709:
-2280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20846              		.loc 2 2280 0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 626
-
-
- 20847 12ccb 4881C408 		addq	$3592, %rsp
- 20847      0E0000
- 20848 12cd2 5B       		popq	%rbx
- 20849 12cd3 415C     		popq	%r12
- 20850 12cd5 415D     		popq	%r13
- 20851 12cd7 C9       		leave
- 20852 12cd8 C3       		ret
- 20853              		.cfi_endproc
- 20854              	.LFE659:
- 20855              		.size	KAESBlockCipherVecRegEqInvCipher, .-KAESBlockCipherVecRegEqInvCipher
- 20856              		.section	.rodata
- 20857              		.type	KAESBlockCipherVecRegaes_ncbi_name, @object
- 20858              		.size	KAESBlockCipherVecRegaes_ncbi_name, 10
- 20859              	KAESBlockCipherVecRegaes_ncbi_name:
- 20860 046c 4145535F 		.string	"AES_CLASS"
- 20860      434C4153 
- 20860      5300
- 20861              		.text
- 20862              		.type	KAESBlockCipherVecRegDestroy, @function
- 20863              	KAESBlockCipherVecRegDestroy:
- 20864              	.LFB660:
-2281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ======================================================================
-2284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * This section of the file is the use of the cipher defined above within
-2285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * our BlockCipherObject.
-2286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * These are the functions that will be directly referenced in the vector
-2288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * table for the block cipher.  These are not specifically derived from
-2289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * the FIPS-197 document.
-2290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #include "blockcipher-impl.h"
-2292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** typedef struct AES_CLASS AES_CLASS;
-2294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const char AESBCMEMBER(aes_ncbi_name) [] = CLASS_STRING(AES_CLASS);
-2296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Destroy
-2300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-2301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   to create this key (key schedule)
-2302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-2304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-2305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** void AESBCMEMBER(Destroy) (const BLOCKCIPHER_VEC_IMPL * self)
-2308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20865              		.loc 2 2308 0
- 20866              		.cfi_startproc
- 20867 12cd9 55       		pushq	%rbp
- 20868              	.LCFI20:
- 20869              		.cfi_def_cfa_offset 16
- 20870 12cda 4889E5   		movq	%rsp, %rbp
- 20871              		.cfi_offset 6, -16
- 20872              	.LCFI21:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 627
-
-
- 20873              		.cfi_def_cfa_register 6
- 20874 12cdd 48897DF8 		movq	%rdi, -8(%rbp)
-2309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* we use a constant object so do nothing */
-2310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20875              		.loc 2 2310 0
- 20876 12ce1 C9       		leave
- 20877 12ce2 C3       		ret
- 20878              		.cfi_endproc
- 20879              	.LFE660:
- 20880              		.size	KAESBlockCipherVecRegDestroy, .-KAESBlockCipherVecRegDestroy
- 20881              		.type	KAESBlockCipherVecRegBlockSize, @function
- 20882              	KAESBlockCipherVecRegBlockSize:
- 20883              	.LFB661:
-2311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * BlockSize
-2315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint32_t AESBCMEMBER(BlockSize) ()
-2318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20884              		.loc 2 2318 0
- 20885              		.cfi_startproc
- 20886 12ce3 55       		pushq	%rbp
- 20887              	.LCFI22:
- 20888              		.cfi_def_cfa_offset 16
- 20889 12ce4 4889E5   		movq	%rsp, %rbp
- 20890              		.cfi_offset 6, -16
- 20891              	.LCFI23:
- 20892              		.cfi_def_cfa_register 6
-2319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESBlock);
- 20893              		.loc 2 2319 0
- 20894 12ce7 B8100000 		movl	$16, %eax
- 20894      00
-2320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20895              		.loc 2 2320 0
- 20896 12cec C9       		leave
- 20897 12ced C3       		ret
- 20898              		.cfi_endproc
- 20899              	.LFE661:
- 20900              		.size	KAESBlockCipherVecRegBlockSize, .-KAESBlockCipherVecRegBlockSize
- 20901              		.type	KAESBlockCipherVecRegKeySize, @function
- 20902              	KAESBlockCipherVecRegKeySize:
- 20903              	.LFB662:
-2321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * KeySize
-2325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-2326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   to create this key (key schedule)
-2327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-2329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-2330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** uint32_t AESBCMEMBER(KeySize) ()
-2333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-
GAS LISTING /tmp/ccjbMjHD.s 			page 628
-
-
- 20904              		.loc 2 2333 0
- 20905              		.cfi_startproc
- 20906 12cee 55       		pushq	%rbp
- 20907              	.LCFI24:
- 20908              		.cfi_def_cfa_offset 16
- 20909 12cef 4889E5   		movq	%rsp, %rbp
- 20910              		.cfi_offset 6, -16
- 20911              	.LCFI25:
- 20912              		.cfi_def_cfa_register 6
-2334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return (uint32_t) sizeof (AESKeySchedule);
- 20913              		.loc 2 2334 0
- 20914 12cf2 B8000100 		movl	$256, %eax
- 20914      00
-2335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 20915              		.loc 2 2335 0
- 20916 12cf7 C9       		leave
- 20917 12cf8 C3       		ret
- 20918              		.cfi_endproc
- 20919              	.LFE662:
- 20920              		.size	KAESBlockCipherVecRegKeySize, .-KAESBlockCipherVecRegKeySize
- 20921              		.section	.rodata
- 20922 0476 0000     		.align 8
- 20923              	.LC18:
- 20924 0478 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
- 20924      652F726F 
- 20924      6461726D 
- 20924      65722F73 
- 20924      72615F73 
- 20925              		.text
- 20926              		.type	KAESBlockCipherVecRegSetEncryptKey, @function
- 20927              	KAESBlockCipherVecRegSetEncryptKey:
- 20928              	.LFB663:
-2336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SetEncryptKey
-2340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The KCipher calls this to have the block cipher build an encryption
-2341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   key in the KCipher object
-2342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(SetEncryptKey) (void * encrypt_key, const char * user_key,
-2346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  uint32_t user_key_size)
-2347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 20929              		.loc 2 2347 0
- 20930              		.cfi_startproc
- 20931 12cf9 55       		pushq	%rbp
- 20932              	.LCFI26:
- 20933              		.cfi_def_cfa_offset 16
- 20934 12cfa 4889E5   		movq	%rsp, %rbp
- 20935              		.cfi_offset 6, -16
- 20936              	.LCFI27:
- 20937              		.cfi_def_cfa_register 6
- 20938 12cfd 4883EC30 		subq	$48, %rsp
- 20939 12d01 48897DE8 		movq	%rdi, -24(%rbp)
- 20940 12d05 488975E0 		movq	%rsi, -32(%rbp)
- 20941 12d09 8955DC   		movl	%edx, -36(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 629
-
-
-2348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESKeySchedule * key;
-2350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = 0;
- 20942              		.loc 2 2351 0
- 20943 12d0c C745F400 		movl	$0, -12(%rbp)
- 20943      000000
-2352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     key = encrypt_key;
- 20944              		.loc 2 2352 0
- 20945 12d13 488B45E8 		movq	-24(%rbp), %rax
- 20946 12d17 488945F8 		movq	%rax, -8(%rbp)
-2353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (user_key_size)
- 20947              		.loc 2 2354 0
- 20948 12d1b 8B45DC   		movl	-36(%rbp), %eax
- 20949 12d1e 83F818   		cmpl	$24, %eax
- 20950 12d21 7430     		je	.L376
- 20951 12d23 83F820   		cmpl	$32, %eax
- 20952 12d26 744E     		je	.L377
- 20953 12d28 83F810   		cmpl	$16, %eax
- 20954 12d2b 756C     		jne	.L380
- 20955              	.L375:
-2355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_128 * sizeof (AESWord):
-2357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_128;
- 20956              		.loc 2 2357 0
- 20957 12d2d 488B45F8 		movq	-8(%rbp), %rax
- 20958 12d31 C780F000 		movl	$10, 240(%rax)
- 20958      00000A00 
- 20958      0000
-2358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion128) (key->round_keys, (AESByte*)user_key);
- 20959              		.loc 2 2358 0
- 20960 12d3b 488B55E0 		movq	-32(%rbp), %rdx
- 20961 12d3f 488B45F8 		movq	-8(%rbp), %rax
- 20962 12d43 4889D6   		movq	%rdx, %rsi
- 20963 12d46 4889C7   		movq	%rax, %rdi
- 20964 12d49 E8C6D2FE 		call	KAESBlockCipherVecRegKeyExpansion128
- 20964      FF
-2359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 20965              		.loc 2 2359 0
- 20966 12d4e E98A0000 		jmp	.L378
- 20966      00
- 20967              	.L376:
-2360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_192 * sizeof (AESWord):
-2362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_192;
- 20968              		.loc 2 2362 0
- 20969 12d53 488B45F8 		movq	-8(%rbp), %rax
- 20970 12d57 C780F000 		movl	$12, 240(%rax)
- 20970      00000C00 
- 20970      0000
-2363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion192) (key->round_keys, (AESByte*)user_key);
- 20971              		.loc 2 2363 0
- 20972 12d61 488B55E0 		movq	-32(%rbp), %rdx
- 20973 12d65 488B45F8 		movq	-8(%rbp), %rax
- 20974 12d69 4889D6   		movq	%rdx, %rsi
- 20975 12d6c 4889C7   		movq	%rax, %rdi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 630
-
-
- 20976 12d6f E87B27FF 		call	KAESBlockCipherVecRegKeyExpansion192
- 20976      FF
-2364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 20977              		.loc 2 2364 0
- 20978 12d74 EB67     		jmp	.L378
- 20979              	.L377:
-2365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nk_256 * sizeof (AESWord):
-2367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = AES_Nr_256;
- 20980              		.loc 2 2367 0
- 20981 12d76 488B45F8 		movq	-8(%rbp), %rax
- 20982 12d7a C780F000 		movl	$14, 240(%rax)
- 20982      00000E00 
- 20982      0000
-2368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESBCMEMBER(KeyExpansion256) (key->round_keys, (AESByte*)user_key);
- 20983              		.loc 2 2368 0
- 20984 12d84 488B55E0 		movq	-32(%rbp), %rdx
- 20985 12d88 488B45F8 		movq	-8(%rbp), %rax
- 20986 12d8c 4889D6   		movq	%rdx, %rsi
- 20987 12d8f 4889C7   		movq	%rax, %rdi
- 20988 12d92 E8E668FF 		call	KAESBlockCipherVecRegKeyExpansion256
- 20988      FF
-2369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 20989              		.loc 2 2369 0
- 20990 12d97 EB44     		jmp	.L378
- 20991              	.L380:
-2370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key->number_of_rounds = 0;
- 20992              		.loc 2 2372 0
- 20993 12d99 488B45F8 		movq	-8(%rbp), %rax
- 20994 12d9d C780F000 		movl	$0, 240(%rax)
- 20994      00000000 
- 20994      0000
-2373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         memset (key, 0, sizeof (*key));
- 20995              		.loc 2 2373 0
- 20996 12da7 488B45F8 		movq	-8(%rbp), %rax
- 20997 12dab BA000100 		movl	$256, %edx
- 20997      00
- 20998 12db0 BE000000 		movl	$0, %esi
- 20998      00
- 20999 12db5 4889C7   		movq	%rax, %rdi
- 21000 12db8 E8000000 		call	memset at PLT
- 21000      00
-2374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcUpdating, rcParam, rcInvalid);
- 21001              		.loc 2 2374 0
- 21002 12dbd B9460900 		movl	$2374, %ecx
- 21002      00
- 21003 12dc2 488D1500 		leaq	__func__.9027(%rip), %rdx
- 21003      000000
- 21004 12dc9 488D3500 		leaq	.LC18(%rip), %rsi
- 21004      000000
- 21005 12dd0 BFCA8F04 		movl	$-2029744182, %edi
- 21005      87
- 21006 12dd5 E8000000 		call	SetRCFileFuncLine at PLT
- 21006      00
- 21007 12dda 8945F4   		movl	%eax, -12(%rbp)
-
GAS LISTING /tmp/ccjbMjHD.s 			page 631
-
-
- 21008              	.L378:
-2375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 21009              		.loc 2 2377 0
- 21010 12ddd 8B45F4   		movl	-12(%rbp), %eax
-2378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 21011              		.loc 2 2378 0
- 21012 12de0 C9       		leave
- 21013 12de1 C3       		ret
- 21014              		.cfi_endproc
- 21015              	.LFE663:
- 21016              		.size	KAESBlockCipherVecRegSetEncryptKey, .-KAESBlockCipherVecRegSetEncryptKey
- 21017              		.type	KAESBlockCipherVecRegSetDecryptKey, @function
- 21018              	KAESBlockCipherVecRegSetDecryptKey:
- 21019              	.LFB664:
-2379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * SetDecryptKey
-2383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   The KCipher calls this to have the block cipher build an decryption
-2384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   key in the KCipher object
-2385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(SetDecryptKey) (void * decrypt_key,
-2389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  const char * user_key,
-2390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                  uint32_t user_key_size)
-2391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 21020              		.loc 2 2391 0
- 21021              		.cfi_startproc
- 21022 12de2 55       		pushq	%rbp
- 21023              	.LCFI28:
- 21024              		.cfi_def_cfa_offset 16
- 21025 12de3 4889E5   		movq	%rsp, %rbp
- 21026              		.cfi_offset 6, -16
- 21027              	.LCFI29:
- 21028              		.cfi_def_cfa_register 6
- 21029 12de6 4881EC30 		subq	$304, %rsp
- 21029      010000
- 21030 12ded 4889BDE8 		movq	%rdi, -280(%rbp)
- 21030      FEFFFF
- 21031 12df4 4889B5E0 		movq	%rsi, -288(%rbp)
- 21031      FEFFFF
- 21032 12dfb 8995DCFE 		movl	%edx, -292(%rbp)
- 21032      FFFF
-2392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESKeySchedule encrypt_key;
-2393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-2394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc = AESBCMEMBER(SetEncryptKey) (&encrypt_key, user_key, user_key_size);
- 21033              		.loc 2 2395 0
- 21034 12e01 8B95DCFE 		movl	-292(%rbp), %edx
- 21034      FFFF
- 21035 12e07 488B8DE0 		movq	-288(%rbp), %rcx
- 21035      FEFFFF
- 21036 12e0e 488D85F0 		leaq	-272(%rbp), %rax
- 21036      FEFFFF
-
GAS LISTING /tmp/ccjbMjHD.s 			page 632
-
-
- 21037 12e15 4889CE   		movq	%rcx, %rsi
- 21038 12e18 4889C7   		movq	%rax, %rdi
- 21039 12e1b E8D9FEFF 		call	KAESBlockCipherVecRegSetEncryptKey
- 21039      FF
- 21040 12e20 8945F4   		movl	%eax, -12(%rbp)
-2396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (rc == 0)
- 21041              		.loc 2 2396 0
- 21042 12e23 837DF400 		cmpl	$0, -12(%rbp)
- 21043 12e27 7577     		jne	.L382
- 21044              	.LBB4752:
-2397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         AESKeySchedule * key;
-2399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         key = decrypt_key;
- 21045              		.loc 2 2400 0
- 21046 12e29 488B85E8 		movq	-280(%rbp), %rax
- 21046      FEFFFF
- 21047 12e30 488945F8 		movq	%rax, -8(%rbp)
-2401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         switch (key->number_of_rounds = encrypt_key.number_of_rounds)
- 21048              		.loc 2 2402 0
- 21049 12e34 8B55E0   		movl	-32(%rbp), %edx
- 21050 12e37 488B45F8 		movq	-8(%rbp), %rax
- 21051 12e3b 8990F000 		movl	%edx, 240(%rax)
- 21051      0000
- 21052 12e41 488B45F8 		movq	-8(%rbp), %rax
- 21053 12e45 8B80F000 		movl	240(%rax), %eax
- 21053      0000
- 21054 12e4b 83F80C   		cmpl	$12, %eax
- 21055 12e4e 7422     		je	.L384
- 21056 12e50 83F80E   		cmpl	$14, %eax
- 21057 12e53 7435     		je	.L385
- 21058 12e55 83F80A   		cmpl	$10, %eax
- 21059 12e58 7546     		jne	.L382
- 21060              	.L383:
-2403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-2404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_128:
-2405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion128) (key->round_keys,
- 21061              		.loc 2 2405 0
- 21062 12e5a 488B45F8 		movq	-8(%rbp), %rax
- 21063 12e5e 488D95F0 		leaq	-272(%rbp), %rdx
- 21063      FEFFFF
- 21064 12e65 4889D6   		movq	%rdx, %rsi
- 21065 12e68 4889C7   		movq	%rax, %rdi
- 21066 12e6b E8C9C5FF 		call	KAESBlockCipherVecRegEqInvKeyExpansion128
- 21066      FF
-2406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
- 21067              		.loc 2 2407 0
- 21068 12e70 EB2E     		jmp	.L382
- 21069              	.L384:
-2408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_192:
-2410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion192) (key->round_keys,
- 21070              		.loc 2 2410 0
- 21071 12e72 488B45F8 		movq	-8(%rbp), %rax
- 21072 12e76 488D95F0 		leaq	-272(%rbp), %rdx
-
GAS LISTING /tmp/ccjbMjHD.s 			page 633
-
-
- 21072      FEFFFF
- 21073 12e7d 4889D6   		movq	%rdx, %rsi
- 21074 12e80 4889C7   		movq	%rax, %rdi
- 21075 12e83 E8DBC5FF 		call	KAESBlockCipherVecRegEqInvKeyExpansion192
- 21075      FF
-2411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
- 21076              		.loc 2 2412 0
- 21077 12e88 EB16     		jmp	.L382
- 21078              	.L385:
-2413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         case AES_Nr_256:
-2415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             AESBCMEMBER(EqInvKeyExpansion256) (key->round_keys,
- 21079              		.loc 2 2415 0
- 21080 12e8a 488B45F8 		movq	-8(%rbp), %rax
- 21081 12e8e 488D95F0 		leaq	-272(%rbp), %rdx
- 21081      FEFFFF
- 21082 12e95 4889D6   		movq	%rdx, %rsi
- 21083 12e98 4889C7   		movq	%rax, %rdi
- 21084 12e9b E8EDC5FF 		call	KAESBlockCipherVecRegEqInvKeyExpansion256
- 21084      FF
- 21085              	.L382:
- 21086              	.LBE4752:
-2416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                                encrypt_key.round_keys);
-2417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             break;
-2418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-2419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 21087              		.loc 2 2420 0
- 21088 12ea0 8B45F4   		movl	-12(%rbp), %eax
-2421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 21089              		.loc 2 2421 0
- 21090 12ea3 C9       		leave
- 21091 12ea4 C3       		ret
- 21092              		.cfi_endproc
- 21093              	.LFE664:
- 21094              		.size	KAESBlockCipherVecRegSetDecryptKey, .-KAESBlockCipherVecRegSetDecryptKey
- 21095              		.section	.rodata
- 21096              	.LC19:
- 21097 04ae 6B657900 		.string	"key"
- 21098              		.text
- 21099              		.type	KAESBlockCipherVecRegEncrypt, @function
- 21100              	KAESBlockCipherVecRegEncrypt:
- 21101              	.LFB665:
-2422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Encrypt
-2426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Perform an encryption of a single block.  Chained modes and stream
-2428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   cipher modes will call this multiple times.
-2429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Encrypt) (CipherVec state,
-2433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                 const void * encrypt_key)
-2434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-
GAS LISTING /tmp/ccjbMjHD.s 			page 634
-
-
- 21102              		.loc 2 2434 0
- 21103              		.cfi_startproc
- 21104 12ea5 55       		pushq	%rbp
- 21105              	.LCFI30:
- 21106              		.cfi_def_cfa_offset 16
- 21107 12ea6 4889E5   		movq	%rsp, %rbp
- 21108              		.cfi_offset 6, -16
- 21109              	.LCFI31:
- 21110              		.cfi_def_cfa_register 6
- 21111 12ea9 4883EC30 		subq	$48, %rsp
- 21112 12ead 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21112      E0
- 21113 12eb2 48897DD8 		movq	%rdi, -40(%rbp)
-2435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = encrypt_key;
- 21114              		.loc 2 2435 0
- 21115 12eb6 488B45D8 		movq	-40(%rbp), %rax
- 21116 12eba 488945F8 		movq	%rax, -8(%rbp)
-2436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
- 21117              		.loc 2 2436 0
- 21118 12ebe 48837DF8 		cmpq	$0, -8(%rbp)
- 21118      00
- 21119 12ec3 751F     		jne	.L388
- 21120 12ec5 488D0D00 		leaq	__PRETTY_FUNCTION__.9063(%rip), %rcx
- 21120      000000
- 21121 12ecc BA840900 		movl	$2436, %edx
- 21121      00
- 21122 12ed1 488D3500 		leaq	.LC18(%rip), %rsi
- 21122      000000
- 21123 12ed8 488D3D00 		leaq	.LC19(%rip), %rdi
- 21123      000000
- 21124 12edf E8000000 		call	__assert_fail at PLT
- 21124      00
- 21125              	.L388:
-2437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
- 21126              		.loc 2 2438 0
- 21127 12ee4 488B45F8 		movq	-8(%rbp), %rax
- 21128 12ee8 8B80F000 		movl	240(%rax), %eax
- 21128      0000
- 21129 12eee 83F80C   		cmpl	$12, %eax
- 21130 12ef1 7436     		je	.L391
- 21131 12ef3 83F80E   		cmpl	$14, %eax
- 21132 12ef6 744E     		je	.L392
- 21133 12ef8 83F80A   		cmpl	$10, %eax
- 21134 12efb 740F     		je	.L390
-2439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00;
- 21135              		.loc 2 2441 0
- 21136 12efd 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 21136      00000000 
- 21137 12f05 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21137      E0
-2442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 21138              		.loc 2 2442 0
- 21139 12f0a EB55     		jmp	.L393
- 21140              	.L390:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 635
-
-
-2443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_128:
-2445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_128);
- 21141              		.loc 2 2445 0
- 21142 12f0c 488B45F8 		movq	-8(%rbp), %rax
- 21143 12f10 660F6F45 		movdqa	-32(%rbp), %xmm0
- 21143      E0
- 21144 12f15 BE0A0000 		movl	$10, %esi
- 21144      00
- 21145 12f1a 4889C7   		movq	%rax, %rdi
- 21146 12f1d E895C5FF 		call	KAESBlockCipherVecRegCipher
- 21146      FF
- 21147 12f22 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21147      E0
-2446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 21148              		.loc 2 2446 0
- 21149 12f27 EB38     		jmp	.L393
- 21150              	.L391:
-2447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_192:
-2449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_192);
- 21151              		.loc 2 2449 0
- 21152 12f29 488B45F8 		movq	-8(%rbp), %rax
- 21153 12f2d 660F6F45 		movdqa	-32(%rbp), %xmm0
- 21153      E0
- 21154 12f32 BE0C0000 		movl	$12, %esi
- 21154      00
- 21155 12f37 4889C7   		movq	%rax, %rdi
- 21156 12f3a E878C5FF 		call	KAESBlockCipherVecRegCipher
- 21156      FF
- 21157 12f3f 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21157      E0
-2450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 21158              		.loc 2 2450 0
- 21159 12f44 EB1B     		jmp	.L393
- 21160              	.L392:
-2451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_256:
-2453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(Cipher) (state, key->round_keys, AES_Nr_256);
- 21161              		.loc 2 2453 0
- 21162 12f46 488B45F8 		movq	-8(%rbp), %rax
- 21163 12f4a 660F6F45 		movdqa	-32(%rbp), %xmm0
- 21163      E0
- 21164 12f4f BE0E0000 		movl	$14, %esi
- 21164      00
- 21165 12f54 4889C7   		movq	%rax, %rdi
- 21166 12f57 E85BC5FF 		call	KAESBlockCipherVecRegCipher
- 21166      FF
- 21167 12f5c 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21167      E0
- 21168              	.L393:
-2454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 21169              		.loc 2 2457 0
- 21170 12f61 660F6F45 		movdqa	-32(%rbp), %xmm0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 636
-
-
- 21170      E0
-2458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 21171              		.loc 2 2458 0
- 21172 12f66 C9       		leave
- 21173 12f67 C3       		ret
- 21174              		.cfi_endproc
- 21175              	.LFE665:
- 21176              		.size	KAESBlockCipherVecRegEncrypt, .-KAESBlockCipherVecRegEncrypt
- 21177              		.type	KAESBlockCipherVecRegDecrypt, @function
- 21178              	KAESBlockCipherVecRegDecrypt:
- 21179              	.LFB666:
-2459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Decrypt
-2463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Perform a decryption of a single block.  Chained modes and stream
-2465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   cipher modes will call this multiple times.
-2466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static
-2468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** CipherVec AESBCMEMBER(Decrypt) (CipherVec state,
-2469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                 const void * decrypt_key)
-2470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 21180              		.loc 2 2470 0
- 21181              		.cfi_startproc
- 21182 12f68 55       		pushq	%rbp
- 21183              	.LCFI32:
- 21184              		.cfi_def_cfa_offset 16
- 21185 12f69 4889E5   		movq	%rsp, %rbp
- 21186              		.cfi_offset 6, -16
- 21187              	.LCFI33:
- 21188              		.cfi_def_cfa_register 6
- 21189 12f6c 4883EC30 		subq	$48, %rsp
- 21190 12f70 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21190      E0
- 21191 12f75 48897DD8 		movq	%rdi, -40(%rbp)
-2471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     const AESKeySchedule * key = decrypt_key;
- 21192              		.loc 2 2471 0
- 21193 12f79 488B45D8 		movq	-40(%rbp), %rax
- 21194 12f7d 488945F8 		movq	%rax, -8(%rbp)
-2472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     assert (key);
- 21195              		.loc 2 2473 0
- 21196 12f81 48837DF8 		cmpq	$0, -8(%rbp)
- 21196      00
- 21197 12f86 751F     		jne	.L396
- 21198 12f88 488D0D00 		leaq	__PRETTY_FUNCTION__.9084(%rip), %rcx
- 21198      000000
- 21199 12f8f BAA90900 		movl	$2473, %edx
- 21199      00
- 21200 12f94 488D3500 		leaq	.LC18(%rip), %rsi
- 21200      000000
- 21201 12f9b 488D3D00 		leaq	.LC19(%rip), %rdi
- 21201      000000
- 21202 12fa2 E8000000 		call	__assert_fail at PLT
- 21202      00
- 21203              	.L396:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 637
-
-
-2474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     switch (key->number_of_rounds)
- 21204              		.loc 2 2475 0
- 21205 12fa7 488B45F8 		movq	-8(%rbp), %rax
- 21206 12fab 8B80F000 		movl	240(%rax), %eax
- 21206      0000
- 21207 12fb1 83F80C   		cmpl	$12, %eax
- 21208 12fb4 7436     		je	.L399
- 21209 12fb6 83F80E   		cmpl	$14, %eax
- 21210 12fb9 744E     		je	.L400
- 21211 12fbb 83F80A   		cmpl	$10, %eax
- 21212 12fbe 740F     		je	.L398
-2476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     default:
-2478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = vec_00; /* for an illegal cipher key schedule just write zeroes */
- 21213              		.loc 2 2478 0
- 21214 12fc0 660F6F05 		movdqa	vec_00(%rip), %xmm0
- 21214      00000000 
- 21215 12fc8 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21215      E0
-2479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 21216              		.loc 2 2479 0
- 21217 12fcd EB55     		jmp	.L401
- 21218              	.L398:
-2480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_128:
-2482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 21219              		.loc 2 2482 0
- 21220 12fcf 488B45F8 		movq	-8(%rbp), %rax
- 21221 12fd3 660F6F45 		movdqa	-32(%rbp), %xmm0
- 21221      E0
- 21222 12fd8 BE0A0000 		movl	$10, %esi
- 21222      00
- 21223 12fdd 4889C7   		movq	%rax, %rdi
- 21224 12fe0 E81EDDFF 		call	KAESBlockCipherVecRegEqInvCipher
- 21224      FF
- 21225 12fe5 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21225      E0
-2483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_128);
-2484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 21226              		.loc 2 2484 0
- 21227 12fea EB38     		jmp	.L401
- 21228              	.L399:
-2485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_192:
-2487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 21229              		.loc 2 2487 0
- 21230 12fec 488B45F8 		movq	-8(%rbp), %rax
- 21231 12ff0 660F6F45 		movdqa	-32(%rbp), %xmm0
- 21231      E0
- 21232 12ff5 BE0C0000 		movl	$12, %esi
- 21232      00
- 21233 12ffa 4889C7   		movq	%rax, %rdi
- 21234 12ffd E801DDFF 		call	KAESBlockCipherVecRegEqInvCipher
- 21234      FF
- 21235 13002 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21235      E0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 638
-
-
-2488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_192);
-2489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
- 21236              		.loc 2 2489 0
- 21237 13007 EB1B     		jmp	.L401
- 21238              	.L400:
-2490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     case AES_Nr_256:
-2492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         state = AESBCMEMBER(EqInvCipher) (state, key->round_keys,
- 21239              		.loc 2 2492 0
- 21240 13009 488B45F8 		movq	-8(%rbp), %rax
- 21241 1300d 660F6F45 		movdqa	-32(%rbp), %xmm0
- 21241      E0
- 21242 13012 BE0E0000 		movl	$14, %esi
- 21242      00
- 21243 13017 4889C7   		movq	%rax, %rdi
- 21244 1301a E8E4DCFF 		call	KAESBlockCipherVecRegEqInvCipher
- 21244      FF
- 21245 1301f 660F7F45 		movdqa	%xmm0, -32(%rbp)
- 21245      E0
- 21246              	.L401:
-2493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****                                           AES_Nr_256);
-2494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         break;
-2495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return state;
- 21247              		.loc 2 2497 0
- 21248 13024 660F6F45 		movdqa	-32(%rbp), %xmm0
- 21248      E0
-2498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 21249              		.loc 2 2498 0
- 21250 13029 C9       		leave
- 21251 1302a C3       		ret
- 21252              		.cfi_endproc
- 21253              	.LFE666:
- 21254              		.size	KAESBlockCipherVecRegDecrypt, .-KAESBlockCipherVecRegDecrypt
- 21255              		.section	.rodata
- 21256 04b2 00000000 		.align 8
- 21256      0000
- 21257              	.LC20:
- 21258 04b8 25733A20 		.string	"%s: level %x a %x, b %x c %x d %x\n"
- 21258      6C657665 
- 21258      6C202578 
- 21258      20612025 
- 21258      782C2062 
- 21259              	.LC21:
- 21260 04db 25733A20 		.string	"%s: failed no SSSE3\n"
- 21260      6661696C 
- 21260      6564206E 
- 21260      6F205353 
- 21260      5345330A 
- 21261              	.LC22:
- 21262 04f0 25733A20 		.string	"%s: failed no SSE3\n"
- 21262      6661696C 
- 21262      6564206E 
- 21262      6F205353 
- 21262      45330A00 
- 21263              	.LC23:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 639
-
-
- 21264 0504 25733A20 		.string	"%s: failed no SSE2\n"
- 21264      6661696C 
- 21264      6564206E 
- 21264      6F205353 
- 21264      45320A00 
- 21265              	.LC24:
- 21266 0518 25733A20 		.string	"%s: failed no SSE\n"
- 21266      6661696C 
- 21266      6564206E 
- 21266      6F205353 
- 21266      450A00
- 21267              	.LC25:
- 21268 052b 25733A20 		.string	"%s: passed\n"
- 21268      70617373 
- 21268      65640A00 
- 21269              		.text
- 21270              		.type	KAESBlockCipherVecRegProcessorSupport, @function
- 21271              	KAESBlockCipherVecRegProcessorSupport:
- 21272              	.LFB667:
-2499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * MakeProcessorSupport
-2503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Run-time check for support of this particular AES implmentation by
-2505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * checking the flags given via the cpuid instruction.
-2506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static __inline__
-2508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** bool AESBCMEMBER(ProcessorSupport) ()
-2509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 21273              		.loc 2 2509 0
- 21274              		.cfi_startproc
- 21275 1302b 55       		pushq	%rbp
- 21276              	.LCFI34:
- 21277              		.cfi_def_cfa_offset 16
- 21278 1302c 4889E5   		movq	%rsp, %rbp
- 21279              		.cfi_offset 6, -16
- 21280              	.LCFI35:
- 21281              		.cfi_def_cfa_register 6
- 21282 1302f 53       		pushq	%rbx
- 21283 13030 4883EC38 		subq	$56, %rsp
-2510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     uint32_t level = 1, a, b, c, d;
- 21284              		.loc 2 2510 0
- 21285 13034 C745D801 		movl	$1, -40(%rbp)
- 21285      000000
-2511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     bool ret = true;
- 21286              		.loc 2 2511 0
- 21287 1303b C645EF01 		movb	$1, -17(%rbp)
-2512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     __cpuid (level, a, b, c, d);
- 21288              		.loc 2 2513 0
- 21289 1303f 8B45D8   		movl	-40(%rbp), %eax
- 21290              	#APP
- 21291              	# 2513 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c" 1
- 2514              	
- 2515              	    DEBUG_OBJECT(("%s: level %x a %x, b %x c %x d %x\n",__func__, level, a,b,c,d));
- 21292              		cpuid
-
GAS LISTING /tmp/ccjbMjHD.s 			page 640
-
-
- 21293              		
- 21294              	# 0 "" 2
- 21295              	#NO_APP
- 21296 13044 8945DC   		movl	%eax, -36(%rbp)
- 21297 13047 895DE0   		movl	%ebx, -32(%rbp)
- 21298 1304a 894DE4   		movl	%ecx, -28(%rbp)
- 21299 1304d 8955E8   		movl	%edx, -24(%rbp)
- 21300              		.loc 2 2515 0
- 21301              		.cfi_offset 3, -24
- 21302 13050 E8000000 		call	KDbgWriterGet at PLT
- 21302      00
- 21303 13055 4885C0   		testq	%rax, %rax
- 21304 13058 744F     		je	.L405
- 21305 1305a BF040000 		movl	$4, %edi
- 21305      00
- 21306 1305f E8000000 		call	KDbgCondToFlag at PLT
- 21306      00
- 21307 13064 4889C6   		movq	%rax, %rsi
- 21308 13067 BF100000 		movl	$16, %edi
- 21308      00
- 21309 1306c E8000000 		call	KDbgTestModConds at PLT
- 21309      00
- 21310 13071 84C0     		testb	%al, %al
- 21311 13073 7434     		je	.L405
- 21312 13075 8B75E4   		movl	-28(%rbp), %esi
- 21313 13078 8B5DE0   		movl	-32(%rbp), %ebx
- 21314 1307b 8B55DC   		movl	-36(%rbp), %edx
- 21315 1307e 8B45D8   		movl	-40(%rbp), %eax
- 21316 13081 8B4DE8   		movl	-24(%rbp), %ecx
- 21317 13084 890C24   		movl	%ecx, (%rsp)
- 21318 13087 4189F1   		movl	%esi, %r9d
- 21319 1308a 4189D8   		movl	%ebx, %r8d
- 21320 1308d 89D1     		movl	%edx, %ecx
- 21321 1308f 89C2     		movl	%eax, %edx
- 21322 13091 488D3500 		leaq	__func__.9108(%rip), %rsi
- 21322      000000
- 21323 13098 488D3D00 		leaq	.LC20(%rip), %rdi
- 21323      000000
- 21324 1309f B8000000 		movl	$0, %eax
- 21324      00
- 21325 130a4 E8000000 		call	KDbgMsg at PLT
- 21325      00
- 21326              	.L405:
-2516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_AES_NI
-2518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * Only one flag tells whether the AES-NI instructions
-2520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * are implmented in this CPU
-2521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if ( ! (c & bit_AES))
-2523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no AES\n",__func__));
-2525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     } else
-2527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #if USE_VEC_REG
-
GAS LISTING /tmp/ccjbMjHD.s 			page 641
-
-
-2530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /*
-2531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * Several flags indicate different levels of SSE
-2532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * instruction implmentation
-2533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      *
-2534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * we require SSE4.1
-2535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      *
-2536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      * that dates from 2006 so is most likely good enough
-2537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****      */
-2538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* if ( ! (c & (bit_SSE4_2))
-2539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
-2541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
-2542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else */
-2545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ( ! (c & bit_SSE4_1))
- 21327              		.loc 2 2545 0
- 21328 130a9 8B45E4   		movl	-28(%rbp), %eax
- 21329 130ac 25000008 		andl	$524288, %eax
- 21329      00
- 21330 130b1 85C0     		testl	%eax, %eax
- 21331 130b3 7546     		jne	.L406
-2546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
- 21332              		.loc 2 2547 0
- 21333 130b5 E8000000 		call	KDbgWriterGet at PLT
- 21333      00
- 21334 130ba 4885C0   		testq	%rax, %rax
- 21335 130bd 7433     		je	.L408
- 21336 130bf BF040000 		movl	$4, %edi
- 21336      00
- 21337 130c4 E8000000 		call	KDbgCondToFlag at PLT
- 21337      00
- 21338 130c9 4889C6   		movq	%rax, %rsi
- 21339 130cc BF100000 		movl	$16, %edi
- 21339      00
- 21340 130d1 E8000000 		call	KDbgTestModConds at PLT
- 21340      00
- 21341 130d6 84C0     		testb	%al, %al
- 21342 130d8 7418     		je	.L408
- 21343 130da 488D3500 		leaq	__func__.9108(%rip), %rsi
- 21343      000000
- 21344 130e1 488D3D00 		leaq	.LC21(%rip), %rdi
- 21344      000000
- 21345 130e8 B8000000 		movl	$0, %eax
- 21345      00
- 21346 130ed E8000000 		call	KDbgMsg at PLT
- 21346      00
- 21347              	.L408:
-2548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 21348              		.loc 2 2548 0
- 21349 130f2 C645EF00 		movb	$0, -17(%rbp)
- 21350 130f6 E93E0100 		jmp	.L409
- 21350      00
- 21351              	.L406:
-2549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 642
-
-
-2551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (c & bit_SSSE3))
- 21352              		.loc 2 2551 0
- 21353 130fb 8B45E4   		movl	-28(%rbp), %eax
- 21354 130fe 25000200 		andl	$512, %eax
- 21354      00
- 21355 13103 85C0     		testl	%eax, %eax
- 21356 13105 7546     		jne	.L410
-2552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSSE3\n",__func__));
- 21357              		.loc 2 2553 0
- 21358 13107 E8000000 		call	KDbgWriterGet at PLT
- 21358      00
- 21359 1310c 4885C0   		testq	%rax, %rax
- 21360 1310f 7433     		je	.L412
- 21361 13111 BF040000 		movl	$4, %edi
- 21361      00
- 21362 13116 E8000000 		call	KDbgCondToFlag at PLT
- 21362      00
- 21363 1311b 4889C6   		movq	%rax, %rsi
- 21364 1311e BF100000 		movl	$16, %edi
- 21364      00
- 21365 13123 E8000000 		call	KDbgTestModConds at PLT
- 21365      00
- 21366 13128 84C0     		testb	%al, %al
- 21367 1312a 7418     		je	.L412
- 21368 1312c 488D3500 		leaq	__func__.9108(%rip), %rsi
- 21368      000000
- 21369 13133 488D3D00 		leaq	.LC21(%rip), %rdi
- 21369      000000
- 21370 1313a B8000000 		movl	$0, %eax
- 21370      00
- 21371 1313f E8000000 		call	KDbgMsg at PLT
- 21371      00
- 21372              	.L412:
-2554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 21373              		.loc 2 2554 0
- 21374 13144 C645EF00 		movb	$0, -17(%rbp)
- 21375 13148 E9EC0000 		jmp	.L409
- 21375      00
- 21376              	.L410:
-2555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (c & bit_SSE3))
- 21377              		.loc 2 2557 0
- 21378 1314d 8B45E4   		movl	-28(%rbp), %eax
- 21379 13150 83E001   		andl	$1, %eax
- 21380 13153 85C0     		testl	%eax, %eax
- 21381 13155 7546     		jne	.L413
-2558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE3\n",__func__));
- 21382              		.loc 2 2559 0
- 21383 13157 E8000000 		call	KDbgWriterGet at PLT
- 21383      00
- 21384 1315c 4885C0   		testq	%rax, %rax
- 21385 1315f 7433     		je	.L415
- 21386 13161 BF040000 		movl	$4, %edi
- 21386      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 643
-
-
- 21387 13166 E8000000 		call	KDbgCondToFlag at PLT
- 21387      00
- 21388 1316b 4889C6   		movq	%rax, %rsi
- 21389 1316e BF100000 		movl	$16, %edi
- 21389      00
- 21390 13173 E8000000 		call	KDbgTestModConds at PLT
- 21390      00
- 21391 13178 84C0     		testb	%al, %al
- 21392 1317a 7418     		je	.L415
- 21393 1317c 488D3500 		leaq	__func__.9108(%rip), %rsi
- 21393      000000
- 21394 13183 488D3D00 		leaq	.LC22(%rip), %rdi
- 21394      000000
- 21395 1318a B8000000 		movl	$0, %eax
- 21395      00
- 21396 1318f E8000000 		call	KDbgMsg at PLT
- 21396      00
- 21397              	.L415:
-2560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 21398              		.loc 2 2560 0
- 21399 13194 C645EF00 		movb	$0, -17(%rbp)
- 21400 13198 E99C0000 		jmp	.L409
- 21400      00
- 21401              	.L413:
-2561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (d & bit_SSE2))
- 21402              		.loc 2 2563 0
- 21403 1319d 8B45E8   		movl	-24(%rbp), %eax
- 21404 131a0 25000000 		andl	$67108864, %eax
- 21404      04
- 21405 131a5 85C0     		testl	%eax, %eax
- 21406 131a7 7543     		jne	.L416
-2564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE2\n",__func__));
- 21407              		.loc 2 2565 0
- 21408 131a9 E8000000 		call	KDbgWriterGet at PLT
- 21408      00
- 21409 131ae 4885C0   		testq	%rax, %rax
- 21410 131b1 7433     		je	.L418
- 21411 131b3 BF040000 		movl	$4, %edi
- 21411      00
- 21412 131b8 E8000000 		call	KDbgCondToFlag at PLT
- 21412      00
- 21413 131bd 4889C6   		movq	%rax, %rsi
- 21414 131c0 BF100000 		movl	$16, %edi
- 21414      00
- 21415 131c5 E8000000 		call	KDbgTestModConds at PLT
- 21415      00
- 21416 131ca 84C0     		testb	%al, %al
- 21417 131cc 7418     		je	.L418
- 21418 131ce 488D3500 		leaq	__func__.9108(%rip), %rsi
- 21418      000000
- 21419 131d5 488D3D00 		leaq	.LC23(%rip), %rdi
- 21419      000000
- 21420 131dc B8000000 		movl	$0, %eax
- 21420      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 644
-
-
- 21421 131e1 E8000000 		call	KDbgMsg at PLT
- 21421      00
- 21422              	.L418:
-2566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 21423              		.loc 2 2566 0
- 21424 131e6 C645EF00 		movb	$0, -17(%rbp)
- 21425 131ea EB4D     		jmp	.L409
- 21426              	.L416:
-2567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else if ( ! (d & bit_SSE))
- 21427              		.loc 2 2569 0
- 21428 131ec 8B45E8   		movl	-24(%rbp), %eax
- 21429 131ef 25000000 		andl	$33554432, %eax
- 21429      02
- 21430 131f4 85C0     		testl	%eax, %eax
- 21431 131f6 7541     		jne	.L409
-2570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         DEBUG_OBJECT(("%s: failed no SSE\n",__func__));
- 21432              		.loc 2 2571 0
- 21433 131f8 E8000000 		call	KDbgWriterGet at PLT
- 21433      00
- 21434 131fd 4885C0   		testq	%rax, %rax
- 21435 13200 7433     		je	.L420
- 21436 13202 BF040000 		movl	$4, %edi
- 21436      00
- 21437 13207 E8000000 		call	KDbgCondToFlag at PLT
- 21437      00
- 21438 1320c 4889C6   		movq	%rax, %rsi
- 21439 1320f BF100000 		movl	$16, %edi
- 21439      00
- 21440 13214 E8000000 		call	KDbgTestModConds at PLT
- 21440      00
- 21441 13219 84C0     		testb	%al, %al
- 21442 1321b 7418     		je	.L420
- 21443 1321d 488D3500 		leaq	__func__.9108(%rip), %rsi
- 21443      000000
- 21444 13224 488D3D00 		leaq	.LC24(%rip), %rdi
- 21444      000000
- 21445 1322b B8000000 		movl	$0, %eax
- 21445      00
- 21446 13230 E8000000 		call	KDbgMsg at PLT
- 21446      00
- 21447              	.L420:
-2572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         ret = false;
- 21448              		.loc 2 2572 0
- 21449 13235 C645EF00 		movb	$0, -17(%rbp)
- 21450              	.L409:
-2573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** #endif
-2575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: passed\n",__func__));
- 21451              		.loc 2 2575 0
- 21452 13239 E8000000 		call	KDbgWriterGet at PLT
- 21452      00
- 21453 1323e 4885C0   		testq	%rax, %rax
- 21454 13241 7433     		je	.L422
- 21455 13243 BF040000 		movl	$4, %edi
-
GAS LISTING /tmp/ccjbMjHD.s 			page 645
-
-
- 21455      00
- 21456 13248 E8000000 		call	KDbgCondToFlag at PLT
- 21456      00
- 21457 1324d 4889C6   		movq	%rax, %rsi
- 21458 13250 BF100000 		movl	$16, %edi
- 21458      00
- 21459 13255 E8000000 		call	KDbgTestModConds at PLT
- 21459      00
- 21460 1325a 84C0     		testb	%al, %al
- 21461 1325c 7418     		je	.L422
- 21462 1325e 488D3500 		leaq	__func__.9108(%rip), %rsi
- 21462      000000
- 21463 13265 488D3D00 		leaq	.LC25(%rip), %rdi
- 21463      000000
- 21464 1326c B8000000 		movl	$0, %eax
- 21464      00
- 21465 13271 E8000000 		call	KDbgMsg at PLT
- 21465      00
- 21466              	.L422:
-2576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return ret;
- 21467              		.loc 2 2576 0
- 21468 13276 0FB645EF 		movzbl	-17(%rbp), %eax
-2577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 21469              		.loc 2 2577 0
- 21470 1327a 4883C438 		addq	$56, %rsp
- 21471 1327e 5B       		popq	%rbx
- 21472 1327f C9       		leave
- 21473 13280 C3       		ret
- 21474              		.cfi_endproc
- 21475              	.LFE667:
- 21476              		.size	KAESBlockCipherVecRegProcessorSupport, .-KAESBlockCipherVecRegProcessorSupport
- 21477              		.section	.data.rel.ro.local,"aw", at progbits
- 21478              		.align 32
- 21479              		.type	KAESBlockCipherVecReg_vt_, @object
- 21480              		.size	KAESBlockCipherVecReg_vt_, 64
- 21481              	KAESBlockCipherVecReg_vt_:
- 21482 0000 01000000 		.long	1
- 21483 0004 01000000 		.long	1
- 21484 0008 00000000 		.quad	KAESBlockCipherVecRegDestroy
- 21484      00000000 
- 21485 0010 00000000 		.quad	KAESBlockCipherVecRegBlockSize
- 21485      00000000 
- 21486 0018 00000000 		.quad	KAESBlockCipherVecRegKeySize
- 21486      00000000 
- 21487 0020 00000000 		.quad	KAESBlockCipherVecRegSetEncryptKey
- 21487      00000000 
- 21488 0028 00000000 		.quad	KAESBlockCipherVecRegSetDecryptKey
- 21488      00000000 
- 21489 0030 00000000 		.quad	KAESBlockCipherVecRegEncrypt
- 21489      00000000 
- 21490 0038 00000000 		.quad	KAESBlockCipherVecRegDecrypt
- 21490      00000000 
- 21491              		.section	.rodata
- 21492              	.LC26:
- 21493 0537 25733A20 		.string	"%s: %p\n"
- 21493      25700A00 
- 21494              		.text
-
GAS LISTING /tmp/ccjbMjHD.s 			page 646
-
-
- 21495              	.globl KAESBlockCipherVecRegMake
- 21496              		.type	KAESBlockCipherVecRegMake, @function
- 21497              	KAESBlockCipherVecRegMake:
- 21498              	.LFB668:
-2578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Init
-2582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   Initialize the fields of this object.  The derived class will call this
-2584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *   during it's initialization.
-2585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * self      object to initialze
-2587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * vt        the virtual table of the derived class
-2588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * mgr       the cipher manager that is the construction factory block cipher
-2589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           objects hold references to the manager while the manager merely
-2590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           points at the block ciphers when all block ciphers are destroyed
-2591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           the manager loses its references and it too can be destroyed if not
-2592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *           held elsewhere
-2593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * name      ASCIZ c-string the name of this class
-2594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** static const
-2596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** KBlockCipherVec_vt_v1 AESBCMEMBER(_vt_) = 
-2597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
-2598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     { 1, 1 },
-2599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Destroy),
-2601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(BlockSize),
-2602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(KeySize),
-2603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(SetEncryptKey),
-2604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(SetDecryptKey),
-2605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Encrypt),
-2606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     AESBCMEMBER(Decrypt)
-2607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** };
-2608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** /* ----------------------------------------------------------------------
-2611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Make
-2612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  *
-2613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * Create a new AES Block Cipher object.
-2614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * The processor is checked to see if this particular version is supported on
-2615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  * this particular CPU.
-2616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****  */
-2617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** rc_t AESBCMEMBER(Make) (KBlockCipher ** new_obj)
-2618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** {
- 21499              		.loc 2 2618 0
- 21500              		.cfi_startproc
- 21501 13281 55       		pushq	%rbp
- 21502              	.LCFI36:
- 21503              		.cfi_def_cfa_offset 16
- 21504 13282 4889E5   		movq	%rsp, %rbp
- 21505              		.cfi_offset 6, -16
- 21506              	.LCFI37:
- 21507              		.cfi_def_cfa_register 6
- 21508 13285 4883EC20 		subq	$32, %rsp
- 21509 13289 48897DE8 		movq	%rdi, -24(%rbp)
-2619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     rc_t rc;
-
GAS LISTING /tmp/ccjbMjHD.s 			page 647
-
-
-2620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     DEBUG_OBJECT(("%s: %p\n",__func__,new_obj));
- 21510              		.loc 2 2621 0
- 21511 1328d E8000000 		call	KDbgWriterGet at PLT
- 21511      00
- 21512 13292 4885C0   		testq	%rax, %rax
- 21513 13295 743A     		je	.L426
- 21514 13297 BF040000 		movl	$4, %edi
- 21514      00
- 21515 1329c E8000000 		call	KDbgCondToFlag at PLT
- 21515      00
- 21516 132a1 4889C6   		movq	%rax, %rsi
- 21517 132a4 BF100000 		movl	$16, %edi
- 21517      00
- 21518 132a9 E8000000 		call	KDbgTestModConds at PLT
- 21518      00
- 21519 132ae 84C0     		testb	%al, %al
- 21520 132b0 741F     		je	.L426
- 21521 132b2 488B45E8 		movq	-24(%rbp), %rax
- 21522 132b6 4889C2   		movq	%rax, %rdx
- 21523 132b9 488D3500 		leaq	__func__.9198(%rip), %rsi
- 21523      000000
- 21524 132c0 488D3D00 		leaq	.LC26(%rip), %rdi
- 21524      000000
- 21525 132c7 B8000000 		movl	$0, %eax
- 21525      00
- 21526 132cc E8000000 		call	KDbgMsg at PLT
- 21526      00
- 21527              	.L426:
-2622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     /* Check parameter first */
-2624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     if (new_obj == NULL)
- 21528              		.loc 2 2624 0
- 21529 132d1 48837DE8 		cmpq	$0, -24(%rbp)
- 21529      00
- 21530 132d6 7522     		jne	.L427
-2625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
- 21531              		.loc 2 2625 0
- 21532 132d8 B9410A00 		movl	$2625, %ecx
- 21532      00
- 21533 132dd 488D1500 		leaq	__func__.9198(%rip), %rdx
- 21533      000000
- 21534 132e4 488D3500 		leaq	.LC18(%rip), %rsi
- 21534      000000
- 21535 132eb BF878F00 		movl	$-2030006393, %edi
- 21535      87
- 21536 132f0 E8000000 		call	SetRCFileFuncLine at PLT
- 21536      00
- 21537 132f5 8945FC   		movl	%eax, -4(%rbp)
- 21538 132f8 EB53     		jmp	.L428
- 21539              	.L427:
-2626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     else
-2628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     {
-2629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         *new_obj = NULL;
- 21540              		.loc 2 2629 0
- 21541 132fa 488B45E8 		movq	-24(%rbp), %rax
-
GAS LISTING /tmp/ccjbMjHD.s 			page 648
-
-
- 21542 132fe 48C70000 		movq	$0, (%rax)
- 21542      000000
-2630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         /* check for processor support of this flavor */
-2632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         if ( ! AESBCMEMBER(ProcessorSupport)())
- 21543              		.loc 2 2632 0
- 21544 13305 B8000000 		movl	$0, %eax
- 21544      00
- 21545 1330a E81CFDFF 		call	KAESBlockCipherVecRegProcessorSupport
- 21545      FF
- 21546 1330f 83F001   		xorl	$1, %eax
- 21547 13312 84C0     		testb	%al, %al
- 21548 13314 7422     		je	.L429
-2633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
- 21549              		.loc 2 2633 0
- 21550 13316 B9490A00 		movl	$2633, %ecx
- 21550      00
- 21551 1331b 488D1500 		leaq	__func__.9198(%rip), %rdx
- 21551      000000
- 21552 13322 488D3500 		leaq	.LC18(%rip), %rsi
- 21552      000000
- 21553 13329 BF038500 		movl	$-2030009085, %edi
- 21553      87
- 21554 1332e E8000000 		call	SetRCFileFuncLine at PLT
- 21554      00
- 21555 13333 8945FC   		movl	%eax, -4(%rbp)
- 21556 13336 EB15     		jmp	.L428
- 21557              	.L429:
-2634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** 
-2635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         else
-2636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         {
-2637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             rc = 0;
- 21558              		.loc 2 2637 0
- 21559 13338 C745FC00 		movl	$0, -4(%rbp)
- 21559      000000
-2638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****             *new_obj = (KBlockCipher*)&(AESBCMEMBER(_vt_));
- 21560              		.loc 2 2638 0
- 21561 1333f 488D1500 		leaq	KAESBlockCipherVecReg_vt_(%rip), %rdx
- 21561      000000
- 21562 13346 488B45E8 		movq	-24(%rbp), %rax
- 21563 1334a 488910   		movq	%rdx, (%rax)
- 21564              	.L428:
-2639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****         }
-2640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     }
-2641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c ****     return rc;
- 21565              		.loc 2 2641 0
- 21566 1334d 8B45FC   		movl	-4(%rbp), %eax
-2642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c **** }
- 21567              		.loc 2 2642 0
- 21568 13350 C9       		leave
- 21569 13351 C3       		ret
- 21570              		.cfi_endproc
- 21571              	.LFE668:
- 21572              		.size	KAESBlockCipherVecRegMake, .-KAESBlockCipherVecRegMake
- 21573              		.section	.rodata
- 21574 053f 00       		.align 16
- 21575              		.type	__func__.9198, @object
-
GAS LISTING /tmp/ccjbMjHD.s 			page 649
-
-
- 21576              		.size	__func__.9198, 26
- 21577              	__func__.9198:
- 21578 0540 4B414553 		.string	"KAESBlockCipherVecRegMake"
- 21578      426C6F63 
- 21578      6B436970 
- 21578      68657256 
- 21578      65635265 
- 21579 055a 00000000 		.align 16
- 21579      0000
- 21580              		.type	__PRETTY_FUNCTION__.9199, @object
- 21581              		.size	__PRETTY_FUNCTION__.9199, 26
- 21582              	__PRETTY_FUNCTION__.9199:
- 21583 0560 4B414553 		.string	"KAESBlockCipherVecRegMake"
- 21583      426C6F63 
- 21583      6B436970 
- 21583      68657256 
- 21583      65635265 
- 21584 057a 00000000 		.align 32
- 21584      0000
- 21585              		.type	__func__.9108, @object
- 21586              		.size	__func__.9108, 38
- 21587              	__func__.9108:
- 21588 0580 4B414553 		.string	"KAESBlockCipherVecRegProcessorSupport"
- 21588      426C6F63 
- 21588      6B436970 
- 21588      68657256 
- 21588      65635265 
- 21589 05a6 00000000 		.align 16
- 21589      00000000 
- 21589      0000
- 21590              		.type	__PRETTY_FUNCTION__.9084, @object
- 21591              		.size	__PRETTY_FUNCTION__.9084, 29
- 21592              	__PRETTY_FUNCTION__.9084:
- 21593 05b0 4B414553 		.string	"KAESBlockCipherVecRegDecrypt"
- 21593      426C6F63 
- 21593      6B436970 
- 21593      68657256 
- 21593      65635265 
- 21594 05cd 000000   		.align 16
- 21595              		.type	__PRETTY_FUNCTION__.9063, @object
- 21596              		.size	__PRETTY_FUNCTION__.9063, 29
- 21597              	__PRETTY_FUNCTION__.9063:
- 21598 05d0 4B414553 		.string	"KAESBlockCipherVecRegEncrypt"
- 21598      426C6F63 
- 21598      6B436970 
- 21598      68657256 
- 21598      65635265 
- 21599 05ed 000000   		.align 16
- 21600              		.type	ShiftRowTable.7358, @object
- 21601              		.size	ShiftRowTable.7358, 16
- 21602              	ShiftRowTable.7358:
- 21603 05f0 00       		.byte	0
- 21604 05f1 05       		.byte	5
- 21605 05f2 0A       		.byte	10
- 21606 05f3 0F       		.byte	15
- 21607 05f4 04       		.byte	4
- 21608 05f5 09       		.byte	9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 650
-
-
- 21609 05f6 0E       		.byte	14
- 21610 05f7 03       		.byte	3
- 21611 05f8 08       		.byte	8
- 21612 05f9 0D       		.byte	13
- 21613 05fa 02       		.byte	2
- 21614 05fb 07       		.byte	7
- 21615 05fc 0C       		.byte	12
- 21616 05fd 01       		.byte	1
- 21617 05fe 06       		.byte	6
- 21618 05ff 0B       		.byte	11
- 21619              		.align 16
- 21620              		.type	ShiftRowTable.7385, @object
- 21621              		.size	ShiftRowTable.7385, 16
- 21622              	ShiftRowTable.7385:
- 21623 0600 01       		.byte	1
- 21624 0601 02       		.byte	2
- 21625 0602 03       		.byte	3
- 21626 0603 00       		.byte	0
- 21627 0604 05       		.byte	5
- 21628 0605 06       		.byte	6
- 21629 0606 07       		.byte	7
- 21630 0607 04       		.byte	4
- 21631 0608 09       		.byte	9
- 21632 0609 0A       		.byte	10
- 21633 060a 0B       		.byte	11
- 21634 060b 08       		.byte	8
- 21635 060c 0D       		.byte	13
- 21636 060d 0E       		.byte	14
- 21637 060e 0F       		.byte	15
- 21638 060f 0C       		.byte	12
- 21639              		.align 16
- 21640              		.type	__PRETTY_FUNCTION__.7467, @object
- 21641              		.size	__PRETTY_FUNCTION__.7467, 28
- 21642              	__PRETTY_FUNCTION__.7467:
- 21643 0610 4B414553 		.string	"KAESBlockCipherVecRegFF_mul"
- 21643      426C6F63 
- 21643      6B436970 
- 21643      68657256 
- 21643      65635265 
- 21644 062c 00000000 		.align 32
- 21644      00000000 
- 21644      00000000 
- 21644      00000000 
- 21644      00000000 
- 21645              		.type	sr_mask.7327, @object
- 21646              		.size	sr_mask.7327, 144
- 21647              	sr_mask.7327:
- 21648 0640 FF       		.byte	-1
- 21649 0641 FF       		.byte	-1
- 21650 0642 FF       		.byte	-1
- 21651 0643 FF       		.byte	-1
- 21652 0644 FF       		.byte	-1
- 21653 0645 FF       		.byte	-1
- 21654 0646 FF       		.byte	-1
- 21655 0647 FF       		.byte	-1
- 21656 0648 FF       		.byte	-1
- 21657 0649 FF       		.byte	-1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 651
-
-
- 21658 064a FF       		.byte	-1
- 21659 064b FF       		.byte	-1
- 21660 064c FF       		.byte	-1
- 21661 064d FF       		.byte	-1
- 21662 064e FF       		.byte	-1
- 21663 064f FF       		.byte	-1
- 21664 0650 7F       		.byte	127
- 21665 0651 7F       		.byte	127
- 21666 0652 7F       		.byte	127
- 21667 0653 7F       		.byte	127
- 21668 0654 7F       		.byte	127
- 21669 0655 7F       		.byte	127
- 21670 0656 7F       		.byte	127
- 21671 0657 7F       		.byte	127
- 21672 0658 7F       		.byte	127
- 21673 0659 7F       		.byte	127
- 21674 065a 7F       		.byte	127
- 21675 065b 7F       		.byte	127
- 21676 065c 7F       		.byte	127
- 21677 065d 7F       		.byte	127
- 21678 065e 7F       		.byte	127
- 21679 065f 7F       		.byte	127
- 21680 0660 3F       		.byte	63
- 21681 0661 3F       		.byte	63
- 21682 0662 3F       		.byte	63
- 21683 0663 3F       		.byte	63
- 21684 0664 3F       		.byte	63
- 21685 0665 3F       		.byte	63
- 21686 0666 3F       		.byte	63
- 21687 0667 3F       		.byte	63
- 21688 0668 3F       		.byte	63
- 21689 0669 3F       		.byte	63
- 21690 066a 3F       		.byte	63
- 21691 066b 3F       		.byte	63
- 21692 066c 3F       		.byte	63
- 21693 066d 3F       		.byte	63
- 21694 066e 3F       		.byte	63
- 21695 066f 3F       		.byte	63
- 21696 0670 1F       		.byte	31
- 21697 0671 1F       		.byte	31
- 21698 0672 1F       		.byte	31
- 21699 0673 1F       		.byte	31
- 21700 0674 1F       		.byte	31
- 21701 0675 1F       		.byte	31
- 21702 0676 1F       		.byte	31
- 21703 0677 1F       		.byte	31
- 21704 0678 1F       		.byte	31
- 21705 0679 1F       		.byte	31
- 21706 067a 1F       		.byte	31
- 21707 067b 1F       		.byte	31
- 21708 067c 1F       		.byte	31
- 21709 067d 1F       		.byte	31
- 21710 067e 1F       		.byte	31
- 21711 067f 1F       		.byte	31
- 21712 0680 0F       		.byte	15
- 21713 0681 0F       		.byte	15
- 21714 0682 0F       		.byte	15
-
GAS LISTING /tmp/ccjbMjHD.s 			page 652
-
-
- 21715 0683 0F       		.byte	15
- 21716 0684 0F       		.byte	15
- 21717 0685 0F       		.byte	15
- 21718 0686 0F       		.byte	15
- 21719 0687 0F       		.byte	15
- 21720 0688 0F       		.byte	15
- 21721 0689 0F       		.byte	15
- 21722 068a 0F       		.byte	15
- 21723 068b 0F       		.byte	15
- 21724 068c 0F       		.byte	15
- 21725 068d 0F       		.byte	15
- 21726 068e 0F       		.byte	15
- 21727 068f 0F       		.byte	15
- 21728 0690 07       		.byte	7
- 21729 0691 07       		.byte	7
- 21730 0692 07       		.byte	7
- 21731 0693 07       		.byte	7
- 21732 0694 07       		.byte	7
- 21733 0695 07       		.byte	7
- 21734 0696 07       		.byte	7
- 21735 0697 07       		.byte	7
- 21736 0698 07       		.byte	7
- 21737 0699 07       		.byte	7
- 21738 069a 07       		.byte	7
- 21739 069b 07       		.byte	7
- 21740 069c 07       		.byte	7
- 21741 069d 07       		.byte	7
- 21742 069e 07       		.byte	7
- 21743 069f 07       		.byte	7
- 21744 06a0 03       		.byte	3
- 21745 06a1 03       		.byte	3
- 21746 06a2 03       		.byte	3
- 21747 06a3 03       		.byte	3
- 21748 06a4 03       		.byte	3
- 21749 06a5 03       		.byte	3
- 21750 06a6 03       		.byte	3
- 21751 06a7 03       		.byte	3
- 21752 06a8 03       		.byte	3
- 21753 06a9 03       		.byte	3
- 21754 06aa 03       		.byte	3
- 21755 06ab 03       		.byte	3
- 21756 06ac 03       		.byte	3
- 21757 06ad 03       		.byte	3
- 21758 06ae 03       		.byte	3
- 21759 06af 03       		.byte	3
- 21760 06b0 01       		.byte	1
- 21761 06b1 01       		.byte	1
- 21762 06b2 01       		.byte	1
- 21763 06b3 01       		.byte	1
- 21764 06b4 01       		.byte	1
- 21765 06b5 01       		.byte	1
- 21766 06b6 01       		.byte	1
- 21767 06b7 01       		.byte	1
- 21768 06b8 01       		.byte	1
- 21769 06b9 01       		.byte	1
- 21770 06ba 01       		.byte	1
- 21771 06bb 01       		.byte	1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 653
-
-
- 21772 06bc 01       		.byte	1
- 21773 06bd 01       		.byte	1
- 21774 06be 01       		.byte	1
- 21775 06bf 01       		.byte	1
- 21776 06c0 00       		.byte	0
- 21777 06c1 00       		.byte	0
- 21778 06c2 00       		.byte	0
- 21779 06c3 00       		.byte	0
- 21780 06c4 00       		.byte	0
- 21781 06c5 00       		.byte	0
- 21782 06c6 00       		.byte	0
- 21783 06c7 00       		.byte	0
- 21784 06c8 00       		.byte	0
- 21785 06c9 00       		.byte	0
- 21786 06ca 00       		.byte	0
- 21787 06cb 00       		.byte	0
- 21788 06cc 00       		.byte	0
- 21789 06cd 00       		.byte	0
- 21790 06ce 00       		.byte	0
- 21791 06cf 00       		.byte	0
- 21792              		.align 16
- 21793              		.type	__PRETTY_FUNCTION__.7312, @object
- 21794              		.size	__PRETTY_FUNCTION__.7312, 30
- 21795              	__PRETTY_FUNCTION__.7312:
- 21796 06d0 4B414553 		.string	"KAESBlockCipherVecRegVecSLLBI"
- 21796      426C6F63 
- 21796      6B436970 
- 21796      68657256 
- 21796      65635265 
- 21797 06ee 00000000 		.align 32
- 21797      00000000 
- 21797      00000000 
- 21797      00000000 
- 21797      0000
- 21798              		.type	sl_mask.7310, @object
- 21799              		.size	sl_mask.7310, 144
- 21800              	sl_mask.7310:
- 21801 0700 FF       		.byte	-1
- 21802 0701 FF       		.byte	-1
- 21803 0702 FF       		.byte	-1
- 21804 0703 FF       		.byte	-1
- 21805 0704 FF       		.byte	-1
- 21806 0705 FF       		.byte	-1
- 21807 0706 FF       		.byte	-1
- 21808 0707 FF       		.byte	-1
- 21809 0708 FF       		.byte	-1
- 21810 0709 FF       		.byte	-1
- 21811 070a FF       		.byte	-1
- 21812 070b FF       		.byte	-1
- 21813 070c FF       		.byte	-1
- 21814 070d FF       		.byte	-1
- 21815 070e FF       		.byte	-1
- 21816 070f FF       		.byte	-1
- 21817 0710 FE       		.byte	-2
- 21818 0711 FE       		.byte	-2
- 21819 0712 FE       		.byte	-2
- 21820 0713 FE       		.byte	-2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 654
-
-
- 21821 0714 FE       		.byte	-2
- 21822 0715 FE       		.byte	-2
- 21823 0716 FE       		.byte	-2
- 21824 0717 FE       		.byte	-2
- 21825 0718 FE       		.byte	-2
- 21826 0719 FE       		.byte	-2
- 21827 071a FE       		.byte	-2
- 21828 071b FE       		.byte	-2
- 21829 071c FE       		.byte	-2
- 21830 071d FE       		.byte	-2
- 21831 071e FE       		.byte	-2
- 21832 071f FE       		.byte	-2
- 21833 0720 FC       		.byte	-4
- 21834 0721 FC       		.byte	-4
- 21835 0722 FC       		.byte	-4
- 21836 0723 FC       		.byte	-4
- 21837 0724 FC       		.byte	-4
- 21838 0725 FC       		.byte	-4
- 21839 0726 FC       		.byte	-4
- 21840 0727 FC       		.byte	-4
- 21841 0728 FC       		.byte	-4
- 21842 0729 FC       		.byte	-4
- 21843 072a FC       		.byte	-4
- 21844 072b FC       		.byte	-4
- 21845 072c FC       		.byte	-4
- 21846 072d FC       		.byte	-4
- 21847 072e FC       		.byte	-4
- 21848 072f FC       		.byte	-4
- 21849 0730 F8       		.byte	-8
- 21850 0731 F8       		.byte	-8
- 21851 0732 F8       		.byte	-8
- 21852 0733 F8       		.byte	-8
- 21853 0734 F8       		.byte	-8
- 21854 0735 F8       		.byte	-8
- 21855 0736 F8       		.byte	-8
- 21856 0737 F8       		.byte	-8
- 21857 0738 F8       		.byte	-8
- 21858 0739 F8       		.byte	-8
- 21859 073a F8       		.byte	-8
- 21860 073b F8       		.byte	-8
- 21861 073c F8       		.byte	-8
- 21862 073d F8       		.byte	-8
- 21863 073e F8       		.byte	-8
- 21864 073f F8       		.byte	-8
- 21865 0740 F0       		.byte	-16
- 21866 0741 F0       		.byte	-16
- 21867 0742 F0       		.byte	-16
- 21868 0743 F0       		.byte	-16
- 21869 0744 F0       		.byte	-16
- 21870 0745 F0       		.byte	-16
- 21871 0746 F0       		.byte	-16
- 21872 0747 F0       		.byte	-16
- 21873 0748 F0       		.byte	-16
- 21874 0749 F0       		.byte	-16
- 21875 074a F0       		.byte	-16
- 21876 074b F0       		.byte	-16
- 21877 074c F0       		.byte	-16
-
GAS LISTING /tmp/ccjbMjHD.s 			page 655
-
-
- 21878 074d F0       		.byte	-16
- 21879 074e F0       		.byte	-16
- 21880 074f F0       		.byte	-16
- 21881 0750 E0       		.byte	-32
- 21882 0751 E0       		.byte	-32
- 21883 0752 E0       		.byte	-32
- 21884 0753 E0       		.byte	-32
- 21885 0754 E0       		.byte	-32
- 21886 0755 E0       		.byte	-32
- 21887 0756 E0       		.byte	-32
- 21888 0757 E0       		.byte	-32
- 21889 0758 E0       		.byte	-32
- 21890 0759 E0       		.byte	-32
- 21891 075a E0       		.byte	-32
- 21892 075b E0       		.byte	-32
- 21893 075c E0       		.byte	-32
- 21894 075d E0       		.byte	-32
- 21895 075e E0       		.byte	-32
- 21896 075f E0       		.byte	-32
- 21897 0760 C0       		.byte	-64
- 21898 0761 C0       		.byte	-64
- 21899 0762 C0       		.byte	-64
- 21900 0763 C0       		.byte	-64
- 21901 0764 C0       		.byte	-64
- 21902 0765 C0       		.byte	-64
- 21903 0766 C0       		.byte	-64
- 21904 0767 C0       		.byte	-64
- 21905 0768 C0       		.byte	-64
- 21906 0769 C0       		.byte	-64
- 21907 076a C0       		.byte	-64
- 21908 076b C0       		.byte	-64
- 21909 076c C0       		.byte	-64
- 21910 076d C0       		.byte	-64
- 21911 076e C0       		.byte	-64
- 21912 076f C0       		.byte	-64
- 21913 0770 80       		.byte	-128
- 21914 0771 80       		.byte	-128
- 21915 0772 80       		.byte	-128
- 21916 0773 80       		.byte	-128
- 21917 0774 80       		.byte	-128
- 21918 0775 80       		.byte	-128
- 21919 0776 80       		.byte	-128
- 21920 0777 80       		.byte	-128
- 21921 0778 80       		.byte	-128
- 21922 0779 80       		.byte	-128
- 21923 077a 80       		.byte	-128
- 21924 077b 80       		.byte	-128
- 21925 077c 80       		.byte	-128
- 21926 077d 80       		.byte	-128
- 21927 077e 80       		.byte	-128
- 21928 077f 80       		.byte	-128
- 21929 0780 00       		.byte	0
- 21930 0781 00       		.byte	0
- 21931 0782 00       		.byte	0
- 21932 0783 00       		.byte	0
- 21933 0784 00       		.byte	0
- 21934 0785 00       		.byte	0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 656
-
-
- 21935 0786 00       		.byte	0
- 21936 0787 00       		.byte	0
- 21937 0788 00       		.byte	0
- 21938 0789 00       		.byte	0
- 21939 078a 00       		.byte	0
- 21940 078b 00       		.byte	0
- 21941 078c 00       		.byte	0
- 21942 078d 00       		.byte	0
- 21943 078e 00       		.byte	0
- 21944 078f 00       		.byte	0
- 21945 0790 00000000 		.align 32
- 21945      00000000 
- 21945      00000000 
- 21945      00000000 
- 21946              		.type	__func__.9027, @object
- 21947              		.size	__func__.9027, 35
- 21948              	__func__.9027:
- 21949 07a0 4B414553 		.string	"KAESBlockCipherVecRegSetEncryptKey"
- 21949      426C6F63 
- 21949      6B436970 
- 21949      68657256 
- 21949      65635265 
- 21950 07c3 00000000 		.align 32
- 21950      00000000 
- 21950      00000000 
- 21950      00000000 
- 21950      00000000 
- 21951              		.type	__PRETTY_FUNCTION__.9026, @object
- 21952              		.size	__PRETTY_FUNCTION__.9026, 35
- 21953              	__PRETTY_FUNCTION__.9026:
- 21954 07e0 4B414553 		.string	"KAESBlockCipherVecRegSetEncryptKey"
- 21954      426C6F63 
- 21954      6B436970 
- 21954      68657256 
- 21954      65635265 
- 21955 0803 00000000 		.align 16
- 21955      00000000 
- 21955      00000000 
- 21955      00
- 21956              		.type	mask.7943, @object
- 21957              		.size	mask.7943, 16
- 21958              	mask.7943:
- 21959 0810 FF       		.byte	-1
- 21960 0811 FF       		.byte	-1
- 21961 0812 FF       		.byte	-1
- 21962 0813 FF       		.byte	-1
- 21963 0814 00       		.byte	0
- 21964 0815 01       		.byte	1
- 21965 0816 02       		.byte	2
- 21966 0817 03       		.byte	3
- 21967 0818 04       		.byte	4
- 21968 0819 05       		.byte	5
- 21969 081a 06       		.byte	6
- 21970 081b 07       		.byte	7
- 21971 081c 08       		.byte	8
- 21972 081d 09       		.byte	9
- 21973 081e 0A       		.byte	10
-
GAS LISTING /tmp/ccjbMjHD.s 			page 657
-
-
- 21974 081f 0B       		.byte	11
- 21975              		.align 16
- 21976              		.type	mask.7952, @object
- 21977              		.size	mask.7952, 16
- 21978              	mask.7952:
- 21979 0820 08       		.byte	8
- 21980 0821 09       		.byte	9
- 21981 0822 0A       		.byte	10
- 21982 0823 0B       		.byte	11
- 21983 0824 0C       		.byte	12
- 21984 0825 0D       		.byte	13
- 21985 0826 0E       		.byte	14
- 21986 0827 0F       		.byte	15
- 21987 0828 FF       		.byte	-1
- 21988 0829 FF       		.byte	-1
- 21989 082a FF       		.byte	-1
- 21990 082b FF       		.byte	-1
- 21991 082c FF       		.byte	-1
- 21992 082d FF       		.byte	-1
- 21993 082e FF       		.byte	-1
- 21994 082f FF       		.byte	-1
- 21995              		.align 16
- 21996              		.type	InvShiftRowTable.7367, @object
- 21997              		.size	InvShiftRowTable.7367, 16
- 21998              	InvShiftRowTable.7367:
- 21999 0830 00       		.byte	0
- 22000 0831 0D       		.byte	13
- 22001 0832 0A       		.byte	10
- 22002 0833 07       		.byte	7
- 22003 0834 04       		.byte	4
- 22004 0835 01       		.byte	1
- 22005 0836 0E       		.byte	14
- 22006 0837 0B       		.byte	11
- 22007 0838 08       		.byte	8
- 22008 0839 05       		.byte	5
- 22009 083a 02       		.byte	2
- 22010 083b 0F       		.byte	15
- 22011 083c 0C       		.byte	12
- 22012 083d 09       		.byte	9
- 22013 083e 06       		.byte	6
- 22014 083f 03       		.byte	3
- 22015              		.text
- 22016              	.Letext0:
- 22017              		.section	.debug_loc,"", at progbits
- 22018              	.Ldebug_loc0:
- 22019              	.LLST0:
- 22020 0000 00000000 		.quad	.LFB591-.Ltext0
- 22020      00000000 
- 22021 0008 01000000 		.quad	.LCFI0-.Ltext0
- 22021      00000000 
- 22022 0010 0200     		.value	0x2
- 22023 0012 77       		.byte	0x77
- 22024 0013 08       		.sleb128 8
- 22025 0014 01000000 		.quad	.LCFI0-.Ltext0
- 22025      00000000 
- 22026 001c 04000000 		.quad	.LCFI1-.Ltext0
- 22026      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 658
-
-
- 22027 0024 0200     		.value	0x2
- 22028 0026 77       		.byte	0x77
- 22029 0027 10       		.sleb128 16
- 22030 0028 04000000 		.quad	.LCFI1-.Ltext0
- 22030      00000000 
- 22031 0030 14000000 		.quad	.LFE591-.Ltext0
- 22031      00000000 
- 22032 0038 0200     		.value	0x2
- 22033 003a 76       		.byte	0x76
- 22034 003b 10       		.sleb128 16
- 22035 003c 00000000 		.quad	0x0
- 22035      00000000 
- 22036 0044 00000000 		.quad	0x0
- 22036      00000000 
- 22037              	.LLST1:
- 22038 004c 14000000 		.quad	.LFB645-.Ltext0
- 22038      00000000 
- 22039 0054 15000000 		.quad	.LCFI2-.Ltext0
- 22039      00000000 
- 22040 005c 0200     		.value	0x2
- 22041 005e 77       		.byte	0x77
- 22042 005f 08       		.sleb128 8
- 22043 0060 15000000 		.quad	.LCFI2-.Ltext0
- 22043      00000000 
- 22044 0068 18000000 		.quad	.LCFI3-.Ltext0
- 22044      00000000 
- 22045 0070 0200     		.value	0x2
- 22046 0072 77       		.byte	0x77
- 22047 0073 10       		.sleb128 16
- 22048 0074 18000000 		.quad	.LCFI3-.Ltext0
- 22048      00000000 
- 22049 007c EF540000 		.quad	.LFE645-.Ltext0
- 22049      00000000 
- 22050 0084 0200     		.value	0x2
- 22051 0086 76       		.byte	0x76
- 22052 0087 10       		.sleb128 16
- 22053 0088 00000000 		.quad	0x0
- 22053      00000000 
- 22054 0090 00000000 		.quad	0x0
- 22054      00000000 
- 22055              	.LLST2:
- 22056 0098 EF540000 		.quad	.LFB646-.Ltext0
- 22056      00000000 
- 22057 00a0 F0540000 		.quad	.LCFI4-.Ltext0
- 22057      00000000 
- 22058 00a8 0200     		.value	0x2
- 22059 00aa 77       		.byte	0x77
- 22060 00ab 08       		.sleb128 8
- 22061 00ac F0540000 		.quad	.LCFI4-.Ltext0
- 22061      00000000 
- 22062 00b4 F3540000 		.quad	.LCFI5-.Ltext0
- 22062      00000000 
- 22063 00bc 0200     		.value	0x2
- 22064 00be 77       		.byte	0x77
- 22065 00bf 10       		.sleb128 16
- 22066 00c0 F3540000 		.quad	.LCFI5-.Ltext0
- 22066      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 659
-
-
- 22067 00c8 7D960000 		.quad	.LFE646-.Ltext0
- 22067      00000000 
- 22068 00d0 0200     		.value	0x2
- 22069 00d2 76       		.byte	0x76
- 22070 00d3 10       		.sleb128 16
- 22071 00d4 00000000 		.quad	0x0
- 22071      00000000 
- 22072 00dc 00000000 		.quad	0x0
- 22072      00000000 
- 22073              	.LLST3:
- 22074 00e4 7D960000 		.quad	.LFB647-.Ltext0
- 22074      00000000 
- 22075 00ec 7E960000 		.quad	.LCFI6-.Ltext0
- 22075      00000000 
- 22076 00f4 0200     		.value	0x2
- 22077 00f6 77       		.byte	0x77
- 22078 00f7 08       		.sleb128 8
- 22079 00f8 7E960000 		.quad	.LCFI6-.Ltext0
- 22079      00000000 
- 22080 0100 81960000 		.quad	.LCFI7-.Ltext0
- 22080      00000000 
- 22081 0108 0200     		.value	0x2
- 22082 010a 77       		.byte	0x77
- 22083 010b 10       		.sleb128 16
- 22084 010c 81960000 		.quad	.LCFI7-.Ltext0
- 22084      00000000 
- 22085 0114 79E40000 		.quad	.LFE647-.Ltext0
- 22085      00000000 
- 22086 011c 0200     		.value	0x2
- 22087 011e 76       		.byte	0x76
- 22088 011f 10       		.sleb128 16
- 22089 0120 00000000 		.quad	0x0
- 22089      00000000 
- 22090 0128 00000000 		.quad	0x0
- 22090      00000000 
- 22091              	.LLST4:
- 22092 0130 79E40000 		.quad	.LFB648-.Ltext0
- 22092      00000000 
- 22093 0138 7AE40000 		.quad	.LCFI8-.Ltext0
- 22093      00000000 
- 22094 0140 0200     		.value	0x2
- 22095 0142 77       		.byte	0x77
- 22096 0143 08       		.sleb128 8
- 22097 0144 7AE40000 		.quad	.LCFI8-.Ltext0
- 22097      00000000 
- 22098 014c 7DE40000 		.quad	.LCFI9-.Ltext0
- 22098      00000000 
- 22099 0154 0200     		.value	0x2
- 22100 0156 77       		.byte	0x77
- 22101 0157 10       		.sleb128 16
- 22102 0158 7DE40000 		.quad	.LCFI9-.Ltext0
- 22102      00000000 
- 22103 0160 39F40000 		.quad	.LFE648-.Ltext0
- 22103      00000000 
- 22104 0168 0200     		.value	0x2
- 22105 016a 76       		.byte	0x76
- 22106 016b 10       		.sleb128 16
-
GAS LISTING /tmp/ccjbMjHD.s 			page 660
-
-
- 22107 016c 00000000 		.quad	0x0
- 22107      00000000 
- 22108 0174 00000000 		.quad	0x0
- 22108      00000000 
- 22109              	.LLST5:
- 22110 017c 39F40000 		.quad	.LFB649-.Ltext0
- 22110      00000000 
- 22111 0184 3AF40000 		.quad	.LCFI10-.Ltext0
- 22111      00000000 
- 22112 018c 0200     		.value	0x2
- 22113 018e 77       		.byte	0x77
- 22114 018f 08       		.sleb128 8
- 22115 0190 3AF40000 		.quad	.LCFI10-.Ltext0
- 22115      00000000 
- 22116 0198 3DF40000 		.quad	.LCFI11-.Ltext0
- 22116      00000000 
- 22117 01a0 0200     		.value	0x2
- 22118 01a2 77       		.byte	0x77
- 22119 01a3 10       		.sleb128 16
- 22120 01a4 3DF40000 		.quad	.LCFI11-.Ltext0
- 22120      00000000 
- 22121 01ac 63F40000 		.quad	.LFE649-.Ltext0
- 22121      00000000 
- 22122 01b4 0200     		.value	0x2
- 22123 01b6 76       		.byte	0x76
- 22124 01b7 10       		.sleb128 16
- 22125 01b8 00000000 		.quad	0x0
- 22125      00000000 
- 22126 01c0 00000000 		.quad	0x0
- 22126      00000000 
- 22127              	.LLST6:
- 22128 01c8 63F40000 		.quad	.LFB650-.Ltext0
- 22128      00000000 
- 22129 01d0 64F40000 		.quad	.LCFI12-.Ltext0
- 22129      00000000 
- 22130 01d8 0200     		.value	0x2
- 22131 01da 77       		.byte	0x77
- 22132 01db 08       		.sleb128 8
- 22133 01dc 64F40000 		.quad	.LCFI12-.Ltext0
- 22133      00000000 
- 22134 01e4 67F40000 		.quad	.LCFI13-.Ltext0
- 22134      00000000 
- 22135 01ec 0200     		.value	0x2
- 22136 01ee 77       		.byte	0x77
- 22137 01ef 10       		.sleb128 16
- 22138 01f0 67F40000 		.quad	.LCFI13-.Ltext0
- 22138      00000000 
- 22139 01f8 8DF40000 		.quad	.LFE650-.Ltext0
- 22139      00000000 
- 22140 0200 0200     		.value	0x2
- 22141 0202 76       		.byte	0x76
- 22142 0203 10       		.sleb128 16
- 22143 0204 00000000 		.quad	0x0
- 22143      00000000 
- 22144 020c 00000000 		.quad	0x0
- 22144      00000000 
- 22145              	.LLST7:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 661
-
-
- 22146 0214 8DF40000 		.quad	.LFB651-.Ltext0
- 22146      00000000 
- 22147 021c 8EF40000 		.quad	.LCFI14-.Ltext0
- 22147      00000000 
- 22148 0224 0200     		.value	0x2
- 22149 0226 77       		.byte	0x77
- 22150 0227 08       		.sleb128 8
- 22151 0228 8EF40000 		.quad	.LCFI14-.Ltext0
- 22151      00000000 
- 22152 0230 91F40000 		.quad	.LCFI15-.Ltext0
- 22152      00000000 
- 22153 0238 0200     		.value	0x2
- 22154 023a 77       		.byte	0x77
- 22155 023b 10       		.sleb128 16
- 22156 023c 91F40000 		.quad	.LCFI15-.Ltext0
- 22156      00000000 
- 22157 0244 B7F40000 		.quad	.LFE651-.Ltext0
- 22157      00000000 
- 22158 024c 0200     		.value	0x2
- 22159 024e 76       		.byte	0x76
- 22160 024f 10       		.sleb128 16
- 22161 0250 00000000 		.quad	0x0
- 22161      00000000 
- 22162 0258 00000000 		.quad	0x0
- 22162      00000000 
- 22163              	.LLST8:
- 22164 0260 B7F40000 		.quad	.LFB655-.Ltext0
- 22164      00000000 
- 22165 0268 B8F40000 		.quad	.LCFI16-.Ltext0
- 22165      00000000 
- 22166 0270 0200     		.value	0x2
- 22167 0272 77       		.byte	0x77
- 22168 0273 08       		.sleb128 8
- 22169 0274 B8F40000 		.quad	.LCFI16-.Ltext0
- 22169      00000000 
- 22170 027c BBF40000 		.quad	.LCFI17-.Ltext0
- 22170      00000000 
- 22171 0284 0200     		.value	0x2
- 22172 0286 77       		.byte	0x77
- 22173 0287 10       		.sleb128 16
- 22174 0288 BBF40000 		.quad	.LCFI17-.Ltext0
- 22174      00000000 
- 22175 0290 030D0100 		.quad	.LFE655-.Ltext0
- 22175      00000000 
- 22176 0298 0200     		.value	0x2
- 22177 029a 76       		.byte	0x76
- 22178 029b 10       		.sleb128 16
- 22179 029c 00000000 		.quad	0x0
- 22179      00000000 
- 22180 02a4 00000000 		.quad	0x0
- 22180      00000000 
- 22181              	.LLST9:
- 22182 02ac 030D0100 		.quad	.LFB659-.Ltext0
- 22182      00000000 
- 22183 02b4 040D0100 		.quad	.LCFI18-.Ltext0
- 22183      00000000 
- 22184 02bc 0200     		.value	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 662
-
-
- 22185 02be 77       		.byte	0x77
- 22186 02bf 08       		.sleb128 8
- 22187 02c0 040D0100 		.quad	.LCFI18-.Ltext0
- 22187      00000000 
- 22188 02c8 070D0100 		.quad	.LCFI19-.Ltext0
- 22188      00000000 
- 22189 02d0 0200     		.value	0x2
- 22190 02d2 77       		.byte	0x77
- 22191 02d3 10       		.sleb128 16
- 22192 02d4 070D0100 		.quad	.LCFI19-.Ltext0
- 22192      00000000 
- 22193 02dc D92C0100 		.quad	.LFE659-.Ltext0
- 22193      00000000 
- 22194 02e4 0200     		.value	0x2
- 22195 02e6 76       		.byte	0x76
- 22196 02e7 10       		.sleb128 16
- 22197 02e8 00000000 		.quad	0x0
- 22197      00000000 
- 22198 02f0 00000000 		.quad	0x0
- 22198      00000000 
- 22199              	.LLST10:
- 22200 02f8 D92C0100 		.quad	.LFB660-.Ltext0
- 22200      00000000 
- 22201 0300 DA2C0100 		.quad	.LCFI20-.Ltext0
- 22201      00000000 
- 22202 0308 0200     		.value	0x2
- 22203 030a 77       		.byte	0x77
- 22204 030b 08       		.sleb128 8
- 22205 030c DA2C0100 		.quad	.LCFI20-.Ltext0
- 22205      00000000 
- 22206 0314 DD2C0100 		.quad	.LCFI21-.Ltext0
- 22206      00000000 
- 22207 031c 0200     		.value	0x2
- 22208 031e 77       		.byte	0x77
- 22209 031f 10       		.sleb128 16
- 22210 0320 DD2C0100 		.quad	.LCFI21-.Ltext0
- 22210      00000000 
- 22211 0328 E32C0100 		.quad	.LFE660-.Ltext0
- 22211      00000000 
- 22212 0330 0200     		.value	0x2
- 22213 0332 76       		.byte	0x76
- 22214 0333 10       		.sleb128 16
- 22215 0334 00000000 		.quad	0x0
- 22215      00000000 
- 22216 033c 00000000 		.quad	0x0
- 22216      00000000 
- 22217              	.LLST11:
- 22218 0344 E32C0100 		.quad	.LFB661-.Ltext0
- 22218      00000000 
- 22219 034c E42C0100 		.quad	.LCFI22-.Ltext0
- 22219      00000000 
- 22220 0354 0200     		.value	0x2
- 22221 0356 77       		.byte	0x77
- 22222 0357 08       		.sleb128 8
- 22223 0358 E42C0100 		.quad	.LCFI22-.Ltext0
- 22223      00000000 
- 22224 0360 E72C0100 		.quad	.LCFI23-.Ltext0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 663
-
-
- 22224      00000000 
- 22225 0368 0200     		.value	0x2
- 22226 036a 77       		.byte	0x77
- 22227 036b 10       		.sleb128 16
- 22228 036c E72C0100 		.quad	.LCFI23-.Ltext0
- 22228      00000000 
- 22229 0374 EE2C0100 		.quad	.LFE661-.Ltext0
- 22229      00000000 
- 22230 037c 0200     		.value	0x2
- 22231 037e 76       		.byte	0x76
- 22232 037f 10       		.sleb128 16
- 22233 0380 00000000 		.quad	0x0
- 22233      00000000 
- 22234 0388 00000000 		.quad	0x0
- 22234      00000000 
- 22235              	.LLST12:
- 22236 0390 EE2C0100 		.quad	.LFB662-.Ltext0
- 22236      00000000 
- 22237 0398 EF2C0100 		.quad	.LCFI24-.Ltext0
- 22237      00000000 
- 22238 03a0 0200     		.value	0x2
- 22239 03a2 77       		.byte	0x77
- 22240 03a3 08       		.sleb128 8
- 22241 03a4 EF2C0100 		.quad	.LCFI24-.Ltext0
- 22241      00000000 
- 22242 03ac F22C0100 		.quad	.LCFI25-.Ltext0
- 22242      00000000 
- 22243 03b4 0200     		.value	0x2
- 22244 03b6 77       		.byte	0x77
- 22245 03b7 10       		.sleb128 16
- 22246 03b8 F22C0100 		.quad	.LCFI25-.Ltext0
- 22246      00000000 
- 22247 03c0 F92C0100 		.quad	.LFE662-.Ltext0
- 22247      00000000 
- 22248 03c8 0200     		.value	0x2
- 22249 03ca 76       		.byte	0x76
- 22250 03cb 10       		.sleb128 16
- 22251 03cc 00000000 		.quad	0x0
- 22251      00000000 
- 22252 03d4 00000000 		.quad	0x0
- 22252      00000000 
- 22253              	.LLST13:
- 22254 03dc F92C0100 		.quad	.LFB663-.Ltext0
- 22254      00000000 
- 22255 03e4 FA2C0100 		.quad	.LCFI26-.Ltext0
- 22255      00000000 
- 22256 03ec 0200     		.value	0x2
- 22257 03ee 77       		.byte	0x77
- 22258 03ef 08       		.sleb128 8
- 22259 03f0 FA2C0100 		.quad	.LCFI26-.Ltext0
- 22259      00000000 
- 22260 03f8 FD2C0100 		.quad	.LCFI27-.Ltext0
- 22260      00000000 
- 22261 0400 0200     		.value	0x2
- 22262 0402 77       		.byte	0x77
- 22263 0403 10       		.sleb128 16
- 22264 0404 FD2C0100 		.quad	.LCFI27-.Ltext0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 664
-
-
- 22264      00000000 
- 22265 040c E22D0100 		.quad	.LFE663-.Ltext0
- 22265      00000000 
- 22266 0414 0200     		.value	0x2
- 22267 0416 76       		.byte	0x76
- 22268 0417 10       		.sleb128 16
- 22269 0418 00000000 		.quad	0x0
- 22269      00000000 
- 22270 0420 00000000 		.quad	0x0
- 22270      00000000 
- 22271              	.LLST14:
- 22272 0428 E22D0100 		.quad	.LFB664-.Ltext0
- 22272      00000000 
- 22273 0430 E32D0100 		.quad	.LCFI28-.Ltext0
- 22273      00000000 
- 22274 0438 0200     		.value	0x2
- 22275 043a 77       		.byte	0x77
- 22276 043b 08       		.sleb128 8
- 22277 043c E32D0100 		.quad	.LCFI28-.Ltext0
- 22277      00000000 
- 22278 0444 E62D0100 		.quad	.LCFI29-.Ltext0
- 22278      00000000 
- 22279 044c 0200     		.value	0x2
- 22280 044e 77       		.byte	0x77
- 22281 044f 10       		.sleb128 16
- 22282 0450 E62D0100 		.quad	.LCFI29-.Ltext0
- 22282      00000000 
- 22283 0458 A52E0100 		.quad	.LFE664-.Ltext0
- 22283      00000000 
- 22284 0460 0200     		.value	0x2
- 22285 0462 76       		.byte	0x76
- 22286 0463 10       		.sleb128 16
- 22287 0464 00000000 		.quad	0x0
- 22287      00000000 
- 22288 046c 00000000 		.quad	0x0
- 22288      00000000 
- 22289              	.LLST15:
- 22290 0474 A52E0100 		.quad	.LFB665-.Ltext0
- 22290      00000000 
- 22291 047c A62E0100 		.quad	.LCFI30-.Ltext0
- 22291      00000000 
- 22292 0484 0200     		.value	0x2
- 22293 0486 77       		.byte	0x77
- 22294 0487 08       		.sleb128 8
- 22295 0488 A62E0100 		.quad	.LCFI30-.Ltext0
- 22295      00000000 
- 22296 0490 A92E0100 		.quad	.LCFI31-.Ltext0
- 22296      00000000 
- 22297 0498 0200     		.value	0x2
- 22298 049a 77       		.byte	0x77
- 22299 049b 10       		.sleb128 16
- 22300 049c A92E0100 		.quad	.LCFI31-.Ltext0
- 22300      00000000 
- 22301 04a4 682F0100 		.quad	.LFE665-.Ltext0
- 22301      00000000 
- 22302 04ac 0200     		.value	0x2
- 22303 04ae 76       		.byte	0x76
-
GAS LISTING /tmp/ccjbMjHD.s 			page 665
-
-
- 22304 04af 10       		.sleb128 16
- 22305 04b0 00000000 		.quad	0x0
- 22305      00000000 
- 22306 04b8 00000000 		.quad	0x0
- 22306      00000000 
- 22307              	.LLST16:
- 22308 04c0 682F0100 		.quad	.LFB666-.Ltext0
- 22308      00000000 
- 22309 04c8 692F0100 		.quad	.LCFI32-.Ltext0
- 22309      00000000 
- 22310 04d0 0200     		.value	0x2
- 22311 04d2 77       		.byte	0x77
- 22312 04d3 08       		.sleb128 8
- 22313 04d4 692F0100 		.quad	.LCFI32-.Ltext0
- 22313      00000000 
- 22314 04dc 6C2F0100 		.quad	.LCFI33-.Ltext0
- 22314      00000000 
- 22315 04e4 0200     		.value	0x2
- 22316 04e6 77       		.byte	0x77
- 22317 04e7 10       		.sleb128 16
- 22318 04e8 6C2F0100 		.quad	.LCFI33-.Ltext0
- 22318      00000000 
- 22319 04f0 2B300100 		.quad	.LFE666-.Ltext0
- 22319      00000000 
- 22320 04f8 0200     		.value	0x2
- 22321 04fa 76       		.byte	0x76
- 22322 04fb 10       		.sleb128 16
- 22323 04fc 00000000 		.quad	0x0
- 22323      00000000 
- 22324 0504 00000000 		.quad	0x0
- 22324      00000000 
- 22325              	.LLST17:
- 22326 050c 2B300100 		.quad	.LFB667-.Ltext0
- 22326      00000000 
- 22327 0514 2C300100 		.quad	.LCFI34-.Ltext0
- 22327      00000000 
- 22328 051c 0200     		.value	0x2
- 22329 051e 77       		.byte	0x77
- 22330 051f 08       		.sleb128 8
- 22331 0520 2C300100 		.quad	.LCFI34-.Ltext0
- 22331      00000000 
- 22332 0528 2F300100 		.quad	.LCFI35-.Ltext0
- 22332      00000000 
- 22333 0530 0200     		.value	0x2
- 22334 0532 77       		.byte	0x77
- 22335 0533 10       		.sleb128 16
- 22336 0534 2F300100 		.quad	.LCFI35-.Ltext0
- 22336      00000000 
- 22337 053c 81320100 		.quad	.LFE667-.Ltext0
- 22337      00000000 
- 22338 0544 0200     		.value	0x2
- 22339 0546 76       		.byte	0x76
- 22340 0547 10       		.sleb128 16
- 22341 0548 00000000 		.quad	0x0
- 22341      00000000 
- 22342 0550 00000000 		.quad	0x0
- 22342      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 666
-
-
- 22343              	.LLST18:
- 22344 0558 81320100 		.quad	.LFB668-.Ltext0
- 22344      00000000 
- 22345 0560 82320100 		.quad	.LCFI36-.Ltext0
- 22345      00000000 
- 22346 0568 0200     		.value	0x2
- 22347 056a 77       		.byte	0x77
- 22348 056b 08       		.sleb128 8
- 22349 056c 82320100 		.quad	.LCFI36-.Ltext0
- 22349      00000000 
- 22350 0574 85320100 		.quad	.LCFI37-.Ltext0
- 22350      00000000 
- 22351 057c 0200     		.value	0x2
- 22352 057e 77       		.byte	0x77
- 22353 057f 10       		.sleb128 16
- 22354 0580 85320100 		.quad	.LCFI37-.Ltext0
- 22354      00000000 
- 22355 0588 52330100 		.quad	.LFE668-.Ltext0
- 22355      00000000 
- 22356 0590 0200     		.value	0x2
- 22357 0592 76       		.byte	0x76
- 22358 0593 10       		.sleb128 16
- 22359 0594 00000000 		.quad	0x0
- 22359      00000000 
- 22360 059c 00000000 		.quad	0x0
- 22360      00000000 
- 22361              		.file 4 "/usr/include/stdint.h"
- 22362              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
- 22363              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
- 22364              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 22365              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi-priv.h"
- 22366              		.file 9 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 22367              		.file 10 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
- 22368              		.section	.debug_info
- 22369 0000 57180100 		.long	0x11857
- 22370 0004 0200     		.value	0x2
- 22371 0006 00000000 		.long	.Ldebug_abbrev0
- 22372 000a 08       		.byte	0x8
- 22373 000b 01       		.uleb128 0x1
- 22374 000c 00000000 		.long	.LASF425
- 22375 0010 01       		.byte	0x1
- 22376 0011 00000000 		.long	.LASF426
- 22377 0015 00000000 		.long	.LASF427
- 22378 0019 00000000 		.quad	.Ltext0
- 22378      00000000 
- 22379 0021 00000000 		.quad	.Letext0
- 22379      00000000 
- 22380 0029 00000000 		.long	.Ldebug_line0
- 22381 002d 02       		.uleb128 0x2
- 22382 002e 01       		.byte	0x1
- 22383 002f 06       		.byte	0x6
- 22384 0030 00000000 		.long	.LASF0
- 22385 0034 02       		.uleb128 0x2
- 22386 0035 02       		.byte	0x2
- 22387 0036 05       		.byte	0x5
- 22388 0037 00000000 		.long	.LASF1
- 22389 003b 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 667
-
-
- 22390 003c 00000000 		.long	.LASF3
- 22391 0040 04       		.byte	0x4
- 22392 0041 27       		.byte	0x27
- 22393 0042 46000000 		.long	0x46
- 22394 0046 04       		.uleb128 0x4
- 22395 0047 04       		.byte	0x4
- 22396 0048 05       		.byte	0x5
- 22397 0049 696E7400 		.string	"int"
- 22398 004d 02       		.uleb128 0x2
- 22399 004e 08       		.byte	0x8
- 22400 004f 05       		.byte	0x5
- 22401 0050 00000000 		.long	.LASF2
- 22402 0054 03       		.uleb128 0x3
- 22403 0055 00000000 		.long	.LASF4
- 22404 0059 04       		.byte	0x4
- 22405 005a 31       		.byte	0x31
- 22406 005b 5F000000 		.long	0x5f
- 22407 005f 02       		.uleb128 0x2
- 22408 0060 01       		.byte	0x1
- 22409 0061 08       		.byte	0x8
- 22410 0062 00000000 		.long	.LASF5
- 22411 0066 02       		.uleb128 0x2
- 22412 0067 02       		.byte	0x2
- 22413 0068 07       		.byte	0x7
- 22414 0069 00000000 		.long	.LASF6
- 22415 006d 03       		.uleb128 0x3
- 22416 006e 00000000 		.long	.LASF7
- 22417 0072 04       		.byte	0x4
- 22418 0073 34       		.byte	0x34
- 22419 0074 78000000 		.long	0x78
- 22420 0078 02       		.uleb128 0x2
- 22421 0079 04       		.byte	0x4
- 22422 007a 07       		.byte	0x7
- 22423 007b 00000000 		.long	.LASF8
- 22424 007f 03       		.uleb128 0x3
- 22425 0080 00000000 		.long	.LASF9
- 22426 0084 04       		.byte	0x4
- 22427 0085 38       		.byte	0x38
- 22428 0086 8A000000 		.long	0x8a
- 22429 008a 02       		.uleb128 0x2
- 22430 008b 08       		.byte	0x8
- 22431 008c 07       		.byte	0x7
- 22432 008d 00000000 		.long	.LASF10
- 22433 0091 03       		.uleb128 0x3
- 22434 0092 00000000 		.long	.LASF11
- 22435 0096 05       		.byte	0x5
- 22436 0097 30       		.byte	0x30
- 22437 0098 6D000000 		.long	0x6d
- 22438 009c 05       		.uleb128 0x5
- 22439 009d 08       		.byte	0x8
- 22440 009e 07       		.byte	0x7
- 22441 009f 02       		.uleb128 0x2
- 22442 00a0 01       		.byte	0x1
- 22443 00a1 06       		.byte	0x6
- 22444 00a2 00000000 		.long	.LASF12
- 22445 00a6 02       		.uleb128 0x2
- 22446 00a7 08       		.byte	0x8
-
GAS LISTING /tmp/ccjbMjHD.s 			page 668
-
-
- 22447 00a8 05       		.byte	0x5
- 22448 00a9 00000000 		.long	.LASF13
- 22449 00ad 02       		.uleb128 0x2
- 22450 00ae 04       		.byte	0x4
- 22451 00af 04       		.byte	0x4
- 22452 00b0 00000000 		.long	.LASF14
- 22453 00b4 06       		.uleb128 0x6
- 22454 00b5 46000000 		.long	0x46
- 22455 00b9 07       		.uleb128 0x7
- 22456 00ba 08       		.byte	0x8
- 22457 00bb BF000000 		.long	0xbf
- 22458 00bf 06       		.uleb128 0x6
- 22459 00c0 9F000000 		.long	0x9f
- 22460 00c4 08       		.uleb128 0x8
- 22461 00c5 08       		.byte	0x8
- 22462 00c6 07       		.uleb128 0x7
- 22463 00c7 08       		.byte	0x8
- 22464 00c8 9F000000 		.long	0x9f
- 22465 00cc 02       		.uleb128 0x2
- 22466 00cd 08       		.byte	0x8
- 22467 00ce 07       		.byte	0x7
- 22468 00cf 00000000 		.long	.LASF15
- 22469 00d3 07       		.uleb128 0x7
- 22470 00d4 08       		.byte	0x8
- 22471 00d5 D9000000 		.long	0xd9
- 22472 00d9 09       		.uleb128 0x9
- 22473 00da 02       		.uleb128 0x2
- 22474 00db 08       		.byte	0x8
- 22475 00dc 04       		.byte	0x4
- 22476 00dd 00000000 		.long	.LASF16
- 22477 00e1 0A       		.uleb128 0xa
- 22478 00e2 01       		.byte	0x1
- 22479 00e3 DA000000 		.long	0xda
- 22480 00e7 03       		.uleb128 0x3
- 22481 00e8 00000000 		.long	.LASF17
- 22482 00ec 03       		.byte	0x3
- 22483 00ed 26       		.byte	0x26
- 22484 00ee F2000000 		.long	0xf2
- 22485 00f2 0A       		.uleb128 0xa
- 22486 00f3 01       		.byte	0x1
- 22487 00f4 54000000 		.long	0x54
- 22488 00f8 0A       		.uleb128 0xa
- 22489 00f9 01       		.byte	0x1
- 22490 00fa 3B000000 		.long	0x3b
- 22491 00fe 0A       		.uleb128 0xa
- 22492 00ff 01       		.byte	0x1
- 22493 0100 9F000000 		.long	0x9f
- 22494 0104 0B       		.uleb128 0xb
- 22495 0105 04       		.byte	0x4
- 22496 0106 06       		.byte	0x6
- 22497 0107 D6       		.byte	0xd6
- 22498 0108 85010000 		.long	0x185
- 22499 010c 0C       		.uleb128 0xc
- 22500 010d 00000000 		.long	.LASF18
- 22501 0111 7F       		.sleb128 -1
- 22502 0112 0C       		.uleb128 0xc
- 22503 0113 00000000 		.long	.LASF19
-
GAS LISTING /tmp/ccjbMjHD.s 			page 669
-
-
- 22504 0117 00       		.sleb128 0
- 22505 0118 0C       		.uleb128 0xc
- 22506 0119 00000000 		.long	.LASF20
- 22507 011d 01       		.sleb128 1
- 22508 011e 0C       		.uleb128 0xc
- 22509 011f 00000000 		.long	.LASF21
- 22510 0123 02       		.sleb128 2
- 22511 0124 0C       		.uleb128 0xc
- 22512 0125 00000000 		.long	.LASF22
- 22513 0129 03       		.sleb128 3
- 22514 012a 0C       		.uleb128 0xc
- 22515 012b 00000000 		.long	.LASF23
- 22516 012f 04       		.sleb128 4
- 22517 0130 0C       		.uleb128 0xc
- 22518 0131 00000000 		.long	.LASF24
- 22519 0135 05       		.sleb128 5
- 22520 0136 0C       		.uleb128 0xc
- 22521 0137 00000000 		.long	.LASF25
- 22522 013b 06       		.sleb128 6
- 22523 013c 0C       		.uleb128 0xc
- 22524 013d 00000000 		.long	.LASF26
- 22525 0141 07       		.sleb128 7
- 22526 0142 0C       		.uleb128 0xc
- 22527 0143 00000000 		.long	.LASF27
- 22528 0147 08       		.sleb128 8
- 22529 0148 0C       		.uleb128 0xc
- 22530 0149 00000000 		.long	.LASF28
- 22531 014d 09       		.sleb128 9
- 22532 014e 0C       		.uleb128 0xc
- 22533 014f 00000000 		.long	.LASF29
- 22534 0153 0A       		.sleb128 10
- 22535 0154 0C       		.uleb128 0xc
- 22536 0155 00000000 		.long	.LASF30
- 22537 0159 0B       		.sleb128 11
- 22538 015a 0C       		.uleb128 0xc
- 22539 015b 00000000 		.long	.LASF31
- 22540 015f 0C       		.sleb128 12
- 22541 0160 0C       		.uleb128 0xc
- 22542 0161 00000000 		.long	.LASF32
- 22543 0165 0D       		.sleb128 13
- 22544 0166 0C       		.uleb128 0xc
- 22545 0167 00000000 		.long	.LASF33
- 22546 016b 0E       		.sleb128 14
- 22547 016c 0C       		.uleb128 0xc
- 22548 016d 00000000 		.long	.LASF34
- 22549 0171 0F       		.sleb128 15
- 22550 0172 0C       		.uleb128 0xc
- 22551 0173 00000000 		.long	.LASF35
- 22552 0177 10       		.sleb128 16
- 22553 0178 0C       		.uleb128 0xc
- 22554 0179 00000000 		.long	.LASF36
- 22555 017d 11       		.sleb128 17
- 22556 017e 0C       		.uleb128 0xc
- 22557 017f 00000000 		.long	.LASF37
- 22558 0183 12       		.sleb128 18
- 22559 0184 00       		.byte	0x0
- 22560 0185 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 670
-
-
- 22561 0186 04       		.byte	0x4
- 22562 0187 06       		.byte	0x6
- 22563 0188 6701     		.value	0x167
- 22564 018a B3010000 		.long	0x1b3
- 22565 018e 0C       		.uleb128 0xc
- 22566 018f 00000000 		.long	.LASF38
- 22567 0193 00       		.sleb128 0
- 22568 0194 0C       		.uleb128 0xc
- 22569 0195 00000000 		.long	.LASF39
- 22570 0199 01       		.sleb128 1
- 22571 019a 0C       		.uleb128 0xc
- 22572 019b 00000000 		.long	.LASF40
- 22573 019f 02       		.sleb128 2
- 22574 01a0 0C       		.uleb128 0xc
- 22575 01a1 00000000 		.long	.LASF41
- 22576 01a5 03       		.sleb128 3
- 22577 01a6 0C       		.uleb128 0xc
- 22578 01a7 00000000 		.long	.LASF42
- 22579 01ab 04       		.sleb128 4
- 22580 01ac 0C       		.uleb128 0xc
- 22581 01ad 00000000 		.long	.LASF43
- 22582 01b1 05       		.sleb128 5
- 22583 01b2 00       		.byte	0x0
- 22584 01b3 03       		.uleb128 0x3
- 22585 01b4 00000000 		.long	.LASF44
- 22586 01b8 07       		.byte	0x7
- 22587 01b9 3B       		.byte	0x3b
- 22588 01ba E7000000 		.long	0xe7
- 22589 01be 03       		.uleb128 0x3
- 22590 01bf 00000000 		.long	.LASF45
- 22591 01c3 07       		.byte	0x7
- 22592 01c4 43       		.byte	0x43
- 22593 01c5 C9010000 		.long	0x1c9
- 22594 01c9 0E       		.uleb128 0xe
- 22595 01ca 00000000 		.long	.LASF45
- 22596 01ce 08       		.byte	0x8
- 22597 01cf 07       		.byte	0x7
- 22598 01d0 43       		.byte	0x43
- 22599 01d1 F2010000 		.long	0x1f2
- 22600 01d5 0F       		.uleb128 0xf
- 22601 01d6 6D616A00 		.string	"maj"
- 22602 01da 07       		.byte	0x7
- 22603 01db 46       		.byte	0x46
- 22604 01dc 6D000000 		.long	0x6d
- 22605 01e0 02       		.byte	0x2
- 22606 01e1 23       		.byte	0x23
- 22607 01e2 00       		.uleb128 0x0
- 22608 01e3 0F       		.uleb128 0xf
- 22609 01e4 6D696E00 		.string	"min"
- 22610 01e8 07       		.byte	0x7
- 22611 01e9 47       		.byte	0x47
- 22612 01ea 6D000000 		.long	0x6d
- 22613 01ee 02       		.byte	0x2
- 22614 01ef 23       		.byte	0x23
- 22615 01f0 04       		.uleb128 0x4
- 22616 01f1 00       		.byte	0x0
- 22617 01f2 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 671
-
-
- 22618 01f3 00000000 		.long	.LASF46
- 22619 01f7 07       		.byte	0x7
- 22620 01f8 52       		.byte	0x52
- 22621 01f9 FD010000 		.long	0x1fd
- 22622 01fd 0E       		.uleb128 0xe
- 22623 01fe 00000000 		.long	.LASF46
- 22624 0202 40       		.byte	0x40
- 22625 0203 07       		.byte	0x7
- 22626 0204 52       		.byte	0x52
- 22627 0205 7A020000 		.long	0x27a
- 22628 0209 10       		.uleb128 0x10
- 22629 020a 00000000 		.long	.LASF47
- 22630 020e 07       		.byte	0x7
- 22631 020f 5E       		.byte	0x5e
- 22632 0210 BE010000 		.long	0x1be
- 22633 0214 02       		.byte	0x2
- 22634 0215 23       		.byte	0x23
- 22635 0216 00       		.uleb128 0x0
- 22636 0217 10       		.uleb128 0x10
- 22637 0218 00000000 		.long	.LASF48
- 22638 021c 07       		.byte	0x7
- 22639 021d 63       		.byte	0x63
- 22640 021e BE020000 		.long	0x2be
- 22641 0222 02       		.byte	0x2
- 22642 0223 23       		.byte	0x23
- 22643 0224 08       		.uleb128 0x8
- 22644 0225 10       		.uleb128 0x10
- 22645 0226 00000000 		.long	.LASF49
- 22646 022a 07       		.byte	0x7
- 22647 022b 65       		.byte	0x65
- 22648 022c CF020000 		.long	0x2cf
- 22649 0230 02       		.byte	0x2
- 22650 0231 23       		.byte	0x23
- 22651 0232 10       		.uleb128 0x10
- 22652 0233 10       		.uleb128 0x10
- 22653 0234 00000000 		.long	.LASF50
- 22654 0238 07       		.byte	0x7
- 22655 0239 67       		.byte	0x67
- 22656 023a CF020000 		.long	0x2cf
- 22657 023e 02       		.byte	0x2
- 22658 023f 23       		.byte	0x23
- 22659 0240 18       		.uleb128 0x18
- 22660 0241 10       		.uleb128 0x10
- 22661 0242 00000000 		.long	.LASF51
- 22662 0246 07       		.byte	0x7
- 22663 0247 69       		.byte	0x69
- 22664 0248 EF020000 		.long	0x2ef
- 22665 024c 02       		.byte	0x2
- 22666 024d 23       		.byte	0x23
- 22667 024e 20       		.uleb128 0x20
- 22668 024f 10       		.uleb128 0x10
- 22669 0250 00000000 		.long	.LASF52
- 22670 0254 07       		.byte	0x7
- 22671 0255 6D       		.byte	0x6d
- 22672 0256 EF020000 		.long	0x2ef
- 22673 025a 02       		.byte	0x2
- 22674 025b 23       		.byte	0x23
-
GAS LISTING /tmp/ccjbMjHD.s 			page 672
-
-
- 22675 025c 28       		.uleb128 0x28
- 22676 025d 10       		.uleb128 0x10
- 22677 025e 00000000 		.long	.LASF53
- 22678 0262 07       		.byte	0x7
- 22679 0263 71       		.byte	0x71
- 22680 0264 0B030000 		.long	0x30b
- 22681 0268 02       		.byte	0x2
- 22682 0269 23       		.byte	0x23
- 22683 026a 30       		.uleb128 0x30
- 22684 026b 10       		.uleb128 0x10
- 22685 026c 00000000 		.long	.LASF54
- 22686 0270 07       		.byte	0x7
- 22687 0271 75       		.byte	0x75
- 22688 0272 0B030000 		.long	0x30b
- 22689 0276 02       		.byte	0x2
- 22690 0277 23       		.byte	0x23
- 22691 0278 38       		.uleb128 0x38
- 22692 0279 00       		.byte	0x0
- 22693 027a 03       		.uleb128 0x3
- 22694 027b 00000000 		.long	.LASF55
- 22695 027f 07       		.byte	0x7
- 22696 0280 53       		.byte	0x53
- 22697 0281 85020000 		.long	0x285
- 22698 0285 11       		.uleb128 0x11
- 22699 0286 00000000 		.long	.LASF55
- 22700 028a 40       		.byte	0x40
- 22701 028b 07       		.byte	0x7
- 22702 028c 53       		.byte	0x53
- 22703 028d A7020000 		.long	0x2a7
- 22704 0291 12       		.uleb128 0x12
- 22705 0292 00000000 		.long	.LASF47
- 22706 0296 07       		.byte	0x7
- 22707 0297 7F       		.byte	0x7f
- 22708 0298 BE010000 		.long	0x1be
- 22709 029c 13       		.uleb128 0x13
- 22710 029d 763100   		.string	"v1"
- 22711 02a0 07       		.byte	0x7
- 22712 02a1 80       		.byte	0x80
- 22713 02a2 F2010000 		.long	0x1f2
- 22714 02a6 00       		.byte	0x0
- 22715 02a7 14       		.uleb128 0x14
- 22716 02a8 01       		.byte	0x1
- 22717 02a9 B3020000 		.long	0x2b3
- 22718 02ad 15       		.uleb128 0x15
- 22719 02ae B3020000 		.long	0x2b3
- 22720 02b2 00       		.byte	0x0
- 22721 02b3 07       		.uleb128 0x7
- 22722 02b4 08       		.byte	0x8
- 22723 02b5 B9020000 		.long	0x2b9
- 22724 02b9 06       		.uleb128 0x6
- 22725 02ba 7A020000 		.long	0x27a
- 22726 02be 07       		.uleb128 0x7
- 22727 02bf 08       		.byte	0x8
- 22728 02c0 A7020000 		.long	0x2a7
- 22729 02c4 16       		.uleb128 0x16
- 22730 02c5 6D000000 		.long	0x6d
- 22731 02c9 CF020000 		.long	0x2cf
-
GAS LISTING /tmp/ccjbMjHD.s 			page 673
-
-
- 22732 02cd 17       		.uleb128 0x17
- 22733 02ce 00       		.byte	0x0
- 22734 02cf 07       		.uleb128 0x7
- 22735 02d0 08       		.byte	0x8
- 22736 02d1 C4020000 		.long	0x2c4
- 22737 02d5 18       		.uleb128 0x18
- 22738 02d6 01       		.byte	0x1
- 22739 02d7 91000000 		.long	0x91
- 22740 02db EF020000 		.long	0x2ef
- 22741 02df 15       		.uleb128 0x15
- 22742 02e0 C4000000 		.long	0xc4
- 22743 02e4 15       		.uleb128 0x15
- 22744 02e5 B9000000 		.long	0xb9
- 22745 02e9 15       		.uleb128 0x15
- 22746 02ea 6D000000 		.long	0x6d
- 22747 02ee 00       		.byte	0x0
- 22748 02ef 07       		.uleb128 0x7
- 22749 02f0 08       		.byte	0x8
- 22750 02f1 D5020000 		.long	0x2d5
- 22751 02f5 14       		.uleb128 0x14
- 22752 02f6 01       		.byte	0x1
- 22753 02f7 0B030000 		.long	0x30b
- 22754 02fb 15       		.uleb128 0x15
- 22755 02fc B9000000 		.long	0xb9
- 22756 0300 15       		.uleb128 0x15
- 22757 0301 C6000000 		.long	0xc6
- 22758 0305 15       		.uleb128 0x15
- 22759 0306 D3000000 		.long	0xd3
- 22760 030a 00       		.byte	0x0
- 22761 030b 07       		.uleb128 0x7
- 22762 030c 08       		.byte	0x8
- 22763 030d F5020000 		.long	0x2f5
- 22764 0311 03       		.uleb128 0x3
- 22765 0312 00000000 		.long	.LASF56
- 22766 0316 07       		.byte	0x7
- 22767 0317 84       		.byte	0x84
- 22768 0318 1C030000 		.long	0x31c
- 22769 031c 0E       		.uleb128 0xe
- 22770 031d 00000000 		.long	.LASF56
- 22771 0321 40       		.byte	0x40
- 22772 0322 07       		.byte	0x7
- 22773 0323 84       		.byte	0x84
- 22774 0324 99030000 		.long	0x399
- 22775 0328 10       		.uleb128 0x10
- 22776 0329 00000000 		.long	.LASF47
- 22777 032d 07       		.byte	0x7
- 22778 032e 90       		.byte	0x90
- 22779 032f BE010000 		.long	0x1be
- 22780 0333 02       		.byte	0x2
- 22781 0334 23       		.byte	0x23
- 22782 0335 00       		.uleb128 0x0
- 22783 0336 10       		.uleb128 0x10
- 22784 0337 00000000 		.long	.LASF48
- 22785 033b 07       		.byte	0x7
- 22786 033c 95       		.byte	0x95
- 22787 033d DD030000 		.long	0x3dd
- 22788 0341 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 674
-
-
- 22789 0342 23       		.byte	0x23
- 22790 0343 08       		.uleb128 0x8
- 22791 0344 10       		.uleb128 0x10
- 22792 0345 00000000 		.long	.LASF49
- 22793 0349 07       		.byte	0x7
- 22794 034a 97       		.byte	0x97
- 22795 034b CF020000 		.long	0x2cf
- 22796 034f 02       		.byte	0x2
- 22797 0350 23       		.byte	0x23
- 22798 0351 10       		.uleb128 0x10
- 22799 0352 10       		.uleb128 0x10
- 22800 0353 00000000 		.long	.LASF50
- 22801 0357 07       		.byte	0x7
- 22802 0358 99       		.byte	0x99
- 22803 0359 CF020000 		.long	0x2cf
- 22804 035d 02       		.byte	0x2
- 22805 035e 23       		.byte	0x23
- 22806 035f 18       		.uleb128 0x18
- 22807 0360 10       		.uleb128 0x10
- 22808 0361 00000000 		.long	.LASF51
- 22809 0365 07       		.byte	0x7
- 22810 0366 9B       		.byte	0x9b
- 22811 0367 EF020000 		.long	0x2ef
- 22812 036b 02       		.byte	0x2
- 22813 036c 23       		.byte	0x23
- 22814 036d 20       		.uleb128 0x20
- 22815 036e 10       		.uleb128 0x10
- 22816 036f 00000000 		.long	.LASF52
- 22817 0373 07       		.byte	0x7
- 22818 0374 9F       		.byte	0x9f
- 22819 0375 EF020000 		.long	0x2ef
- 22820 0379 02       		.byte	0x2
- 22821 037a 23       		.byte	0x23
- 22822 037b 28       		.uleb128 0x28
- 22823 037c 10       		.uleb128 0x10
- 22824 037d 00000000 		.long	.LASF53
- 22825 0381 07       		.byte	0x7
- 22826 0382 A3       		.byte	0xa3
- 22827 0383 F8030000 		.long	0x3f8
- 22828 0387 02       		.byte	0x2
- 22829 0388 23       		.byte	0x23
- 22830 0389 30       		.uleb128 0x30
- 22831 038a 10       		.uleb128 0x10
- 22832 038b 00000000 		.long	.LASF54
- 22833 038f 07       		.byte	0x7
- 22834 0390 A6       		.byte	0xa6
- 22835 0391 F8030000 		.long	0x3f8
- 22836 0395 02       		.byte	0x2
- 22837 0396 23       		.byte	0x23
- 22838 0397 38       		.uleb128 0x38
- 22839 0398 00       		.byte	0x0
- 22840 0399 03       		.uleb128 0x3
- 22841 039a 00000000 		.long	.LASF57
- 22842 039e 07       		.byte	0x7
- 22843 039f 85       		.byte	0x85
- 22844 03a0 A4030000 		.long	0x3a4
- 22845 03a4 11       		.uleb128 0x11
-
GAS LISTING /tmp/ccjbMjHD.s 			page 675
-
-
- 22846 03a5 00000000 		.long	.LASF57
- 22847 03a9 40       		.byte	0x40
- 22848 03aa 07       		.byte	0x7
- 22849 03ab 85       		.byte	0x85
- 22850 03ac C6030000 		.long	0x3c6
- 22851 03b0 12       		.uleb128 0x12
- 22852 03b1 00000000 		.long	.LASF47
- 22853 03b5 07       		.byte	0x7
- 22854 03b6 AF       		.byte	0xaf
- 22855 03b7 BE010000 		.long	0x1be
- 22856 03bb 13       		.uleb128 0x13
- 22857 03bc 763100   		.string	"v1"
- 22858 03bf 07       		.byte	0x7
- 22859 03c0 B0       		.byte	0xb0
- 22860 03c1 11030000 		.long	0x311
- 22861 03c5 00       		.byte	0x0
- 22862 03c6 14       		.uleb128 0x14
- 22863 03c7 01       		.byte	0x1
- 22864 03c8 D2030000 		.long	0x3d2
- 22865 03cc 15       		.uleb128 0x15
- 22866 03cd D2030000 		.long	0x3d2
- 22867 03d1 00       		.byte	0x0
- 22868 03d2 07       		.uleb128 0x7
- 22869 03d3 08       		.byte	0x8
- 22870 03d4 D8030000 		.long	0x3d8
- 22871 03d8 06       		.uleb128 0x6
- 22872 03d9 99030000 		.long	0x399
- 22873 03dd 07       		.uleb128 0x7
- 22874 03de 08       		.byte	0x8
- 22875 03df C6030000 		.long	0x3c6
- 22876 03e3 18       		.uleb128 0x18
- 22877 03e4 01       		.byte	0x1
- 22878 03e5 B3010000 		.long	0x1b3
- 22879 03e9 F8030000 		.long	0x3f8
- 22880 03ed 15       		.uleb128 0x15
- 22881 03ee B3010000 		.long	0x1b3
- 22882 03f2 15       		.uleb128 0x15
- 22883 03f3 D3000000 		.long	0xd3
- 22884 03f7 00       		.byte	0x0
- 22885 03f8 07       		.uleb128 0x7
- 22886 03f9 08       		.byte	0x8
- 22887 03fa E3030000 		.long	0x3e3
- 22888 03fe 03       		.uleb128 0x3
- 22889 03ff 00000000 		.long	.LASF58
- 22890 0403 08       		.byte	0x8
- 22891 0404 9D       		.byte	0x9d
- 22892 0405 54000000 		.long	0x54
- 22893 0409 03       		.uleb128 0x3
- 22894 040a 00000000 		.long	.LASF59
- 22895 040e 08       		.byte	0x8
- 22896 040f 9E       		.byte	0x9e
- 22897 0410 6D000000 		.long	0x6d
- 22898 0414 03       		.uleb128 0x3
- 22899 0415 00000000 		.long	.LASF60
- 22900 0419 08       		.byte	0x8
- 22901 041a 9F       		.byte	0x9f
- 22902 041b 1F040000 		.long	0x41f
-
GAS LISTING /tmp/ccjbMjHD.s 			page 676
-
-
- 22903 041f 11       		.uleb128 0x11
- 22904 0420 00000000 		.long	.LASF60
- 22905 0424 04       		.byte	0x4
- 22906 0425 08       		.byte	0x8
- 22907 0426 9F       		.byte	0x9f
- 22908 0427 42040000 		.long	0x442
- 22909 042b 12       		.uleb128 0x12
- 22910 042c 00000000 		.long	.LASF61
- 22911 0430 08       		.byte	0x8
- 22912 0431 A2       		.byte	0xa2
- 22913 0432 09040000 		.long	0x409
- 22914 0436 12       		.uleb128 0x12
- 22915 0437 00000000 		.long	.LASF62
- 22916 043b 08       		.byte	0x8
- 22917 043c A3       		.byte	0xa3
- 22918 043d 42040000 		.long	0x442
- 22919 0441 00       		.byte	0x0
- 22920 0442 19       		.uleb128 0x19
- 22921 0443 FE030000 		.long	0x3fe
- 22922 0447 52040000 		.long	0x452
- 22923 044b 1A       		.uleb128 0x1a
- 22924 044c 9C000000 		.long	0x9c
- 22925 0450 03       		.byte	0x3
- 22926 0451 00       		.byte	0x0
- 22927 0452 19       		.uleb128 0x19
- 22928 0453 FE030000 		.long	0x3fe
- 22929 0457 62040000 		.long	0x462
- 22930 045b 1A       		.uleb128 0x1a
- 22931 045c 9C000000 		.long	0x9c
- 22932 0460 0F       		.byte	0xf
- 22933 0461 00       		.byte	0x0
- 22934 0462 03       		.uleb128 0x3
- 22935 0463 00000000 		.long	.LASF63
- 22936 0467 08       		.byte	0x8
- 22937 0468 AC       		.byte	0xac
- 22938 0469 E7000000 		.long	0xe7
- 22939 046d 03       		.uleb128 0x3
- 22940 046e 00000000 		.long	.LASF64
- 22941 0472 08       		.byte	0x8
- 22942 0473 B0       		.byte	0xb0
- 22943 0474 78040000 		.long	0x478
- 22944 0478 1B       		.uleb128 0x1b
- 22945 0479 00000000 		.long	.LASF64
- 22946 047d 0001     		.value	0x100
- 22947 047f 08       		.byte	0x8
- 22948 0480 B0       		.byte	0xb0
- 22949 0481 A3040000 		.long	0x4a3
- 22950 0485 10       		.uleb128 0x10
- 22951 0486 00000000 		.long	.LASF65
- 22952 048a 08       		.byte	0x8
- 22953 048b B3       		.byte	0xb3
- 22954 048c A3040000 		.long	0x4a3
- 22955 0490 02       		.byte	0x2
- 22956 0491 23       		.byte	0x23
- 22957 0492 00       		.uleb128 0x0
- 22958 0493 10       		.uleb128 0x10
- 22959 0494 00000000 		.long	.LASF66
-
GAS LISTING /tmp/ccjbMjHD.s 			page 677
-
-
- 22960 0498 08       		.byte	0x8
- 22961 0499 B4       		.byte	0xb4
- 22962 049a 6D000000 		.long	0x6d
- 22963 049e 03       		.byte	0x3
- 22964 049f 23       		.byte	0x23
- 22965 04a0 F001     		.uleb128 0xf0
- 22966 04a2 00       		.byte	0x0
- 22967 04a3 19       		.uleb128 0x19
- 22968 04a4 B3010000 		.long	0x1b3
- 22969 04a8 B3040000 		.long	0x4b3
- 22970 04ac 1A       		.uleb128 0x1a
- 22971 04ad 9C000000 		.long	0x9c
- 22972 04b1 0E       		.byte	0xe
- 22973 04b2 00       		.byte	0x0
- 22974 04b3 1C       		.uleb128 0x1c
- 22975 04b4 10       		.byte	0x10
- 22976 04b5 08       		.byte	0x8
- 22977 04b6 C0       		.byte	0xc0
- 22978 04b7 F3040000 		.long	0x4f3
- 22979 04bb 12       		.uleb128 0x12
- 22980 04bc 00000000 		.long	.LASF67
- 22981 04c0 08       		.byte	0x8
- 22982 04c1 C1       		.byte	0xc1
- 22983 04c2 B3010000 		.long	0x1b3
- 22984 04c6 13       		.uleb128 0x13
- 22985 04c7 75363400 		.string	"u64"
- 22986 04cb 08       		.byte	0x8
- 22987 04cc C2       		.byte	0xc2
- 22988 04cd F3040000 		.long	0x4f3
- 22989 04d1 12       		.uleb128 0x12
- 22990 04d2 00000000 		.long	.LASF68
- 22991 04d6 08       		.byte	0x8
- 22992 04d7 C3       		.byte	0xc3
- 22993 04d8 03050000 		.long	0x503
- 22994 04dc 12       		.uleb128 0x12
- 22995 04dd 00000000 		.long	.LASF62
- 22996 04e1 08       		.byte	0x8
- 22997 04e2 C4       		.byte	0xc4
- 22998 04e3 52040000 		.long	0x452
- 22999 04e7 12       		.uleb128 0x12
- 23000 04e8 00000000 		.long	.LASF69
- 23001 04ec 08       		.byte	0x8
- 23002 04ed C5       		.byte	0xc5
- 23003 04ee 13050000 		.long	0x513
- 23004 04f2 00       		.byte	0x0
- 23005 04f3 19       		.uleb128 0x19
- 23006 04f4 7F000000 		.long	0x7f
- 23007 04f8 03050000 		.long	0x503
- 23008 04fc 1A       		.uleb128 0x1a
- 23009 04fd 9C000000 		.long	0x9c
- 23010 0501 01       		.byte	0x1
- 23011 0502 00       		.byte	0x0
- 23012 0503 19       		.uleb128 0x19
- 23013 0504 09040000 		.long	0x409
- 23014 0508 13050000 		.long	0x513
- 23015 050c 1A       		.uleb128 0x1a
- 23016 050d 9C000000 		.long	0x9c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 678
-
-
- 23017 0511 03       		.byte	0x3
- 23018 0512 00       		.byte	0x0
- 23019 0513 19       		.uleb128 0x19
- 23020 0514 FE030000 		.long	0x3fe
- 23021 0518 29050000 		.long	0x529
- 23022 051c 1A       		.uleb128 0x1a
- 23023 051d 9C000000 		.long	0x9c
- 23024 0521 03       		.byte	0x3
- 23025 0522 1A       		.uleb128 0x1a
- 23026 0523 9C000000 		.long	0x9c
- 23027 0527 03       		.byte	0x3
- 23028 0528 00       		.byte	0x0
- 23029 0529 03       		.uleb128 0x3
- 23030 052a 00000000 		.long	.LASF70
- 23031 052e 08       		.byte	0x8
- 23032 052f C6       		.byte	0xc6
- 23033 0530 B3040000 		.long	0x4b3
- 23034 0534 03       		.uleb128 0x3
- 23035 0535 00000000 		.long	.LASF71
- 23036 0539 09       		.byte	0x9
- 23037 053a 40       		.byte	0x40
- 23038 053b 3F050000 		.long	0x53f
- 23039 053f 11       		.uleb128 0x11
- 23040 0540 00000000 		.long	.LASF71
- 23041 0544 40       		.byte	0x40
- 23042 0545 09       		.byte	0x9
- 23043 0546 40       		.byte	0x40
- 23044 0547 62050000 		.long	0x562
- 23045 054b 12       		.uleb128 0x12
- 23046 054c 00000000 		.long	.LASF72
- 23047 0550 09       		.byte	0x9
- 23048 0551 43       		.byte	0x43
- 23049 0552 7A020000 		.long	0x27a
- 23050 0556 13       		.uleb128 0x13
- 23051 0557 76656300 		.string	"vec"
- 23052 055b 09       		.byte	0x9
- 23053 055c 44       		.byte	0x44
- 23054 055d 99030000 		.long	0x399
- 23055 0561 00       		.byte	0x0
- 23056 0562 1D       		.uleb128 0x1d
- 23057 0563 00000000 		.long	.LASF95
- 23058 0567 04       		.byte	0x4
- 23059 0568 0A       		.byte	0xa
- 23060 0569 5A       		.byte	0x5a
- 23061 056a F3050000 		.long	0x5f3
- 23062 056e 0C       		.uleb128 0xc
- 23063 056f 00000000 		.long	.LASF73
- 23064 0573 00       		.sleb128 0
- 23065 0574 0C       		.uleb128 0xc
- 23066 0575 00000000 		.long	.LASF74
- 23067 0579 01       		.sleb128 1
- 23068 057a 0C       		.uleb128 0xc
- 23069 057b 00000000 		.long	.LASF75
- 23070 057f 02       		.sleb128 2
- 23071 0580 0C       		.uleb128 0xc
- 23072 0581 00000000 		.long	.LASF76
- 23073 0585 03       		.sleb128 3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 679
-
-
- 23074 0586 0C       		.uleb128 0xc
- 23075 0587 00000000 		.long	.LASF77
- 23076 058b 04       		.sleb128 4
- 23077 058c 0C       		.uleb128 0xc
- 23078 058d 00000000 		.long	.LASF78
- 23079 0591 05       		.sleb128 5
- 23080 0592 0C       		.uleb128 0xc
- 23081 0593 00000000 		.long	.LASF79
- 23082 0597 06       		.sleb128 6
- 23083 0598 0C       		.uleb128 0xc
- 23084 0599 00000000 		.long	.LASF80
- 23085 059d 07       		.sleb128 7
- 23086 059e 0C       		.uleb128 0xc
- 23087 059f 00000000 		.long	.LASF81
- 23088 05a3 08       		.sleb128 8
- 23089 05a4 0C       		.uleb128 0xc
- 23090 05a5 00000000 		.long	.LASF82
- 23091 05a9 09       		.sleb128 9
- 23092 05aa 0C       		.uleb128 0xc
- 23093 05ab 00000000 		.long	.LASF83
- 23094 05af 0A       		.sleb128 10
- 23095 05b0 0C       		.uleb128 0xc
- 23096 05b1 00000000 		.long	.LASF84
- 23097 05b5 0B       		.sleb128 11
- 23098 05b6 0C       		.uleb128 0xc
- 23099 05b7 00000000 		.long	.LASF85
- 23100 05bb 0C       		.sleb128 12
- 23101 05bc 0C       		.uleb128 0xc
- 23102 05bd 00000000 		.long	.LASF86
- 23103 05c1 0D       		.sleb128 13
- 23104 05c2 0C       		.uleb128 0xc
- 23105 05c3 00000000 		.long	.LASF87
- 23106 05c7 0E       		.sleb128 14
- 23107 05c8 0C       		.uleb128 0xc
- 23108 05c9 00000000 		.long	.LASF88
- 23109 05cd 0E       		.sleb128 14
- 23110 05ce 0C       		.uleb128 0xc
- 23111 05cf 00000000 		.long	.LASF89
- 23112 05d3 0F       		.sleb128 15
- 23113 05d4 0C       		.uleb128 0xc
- 23114 05d5 00000000 		.long	.LASF90
- 23115 05d9 10       		.sleb128 16
- 23116 05da 0C       		.uleb128 0xc
- 23117 05db 00000000 		.long	.LASF91
- 23118 05df 11       		.sleb128 17
- 23119 05e0 0C       		.uleb128 0xc
- 23120 05e1 00000000 		.long	.LASF92
- 23121 05e5 12       		.sleb128 18
- 23122 05e6 0C       		.uleb128 0xc
- 23123 05e7 00000000 		.long	.LASF93
- 23124 05eb 13       		.sleb128 19
- 23125 05ec 0C       		.uleb128 0xc
- 23126 05ed 00000000 		.long	.LASF94
- 23127 05f1 14       		.sleb128 20
- 23128 05f2 00       		.byte	0x0
- 23129 05f3 1D       		.uleb128 0x1d
- 23130 05f4 00000000 		.long	.LASF96
-
GAS LISTING /tmp/ccjbMjHD.s 			page 680
-
-
- 23131 05f8 04       		.byte	0x4
- 23132 05f9 0A       		.byte	0xa
- 23133 05fa 77       		.byte	0x77
- 23134 05fb 7A070000 		.long	0x77a
- 23135 05ff 0C       		.uleb128 0xc
- 23136 0600 00000000 		.long	.LASF97
- 23137 0604 00       		.sleb128 0
- 23138 0605 0C       		.uleb128 0xc
- 23139 0606 00000000 		.long	.LASF98
- 23140 060a 01       		.sleb128 1
- 23141 060b 0C       		.uleb128 0xc
- 23142 060c 00000000 		.long	.LASF99
- 23143 0610 02       		.sleb128 2
- 23144 0611 0C       		.uleb128 0xc
- 23145 0612 00000000 		.long	.LASF100
- 23146 0616 03       		.sleb128 3
- 23147 0617 0C       		.uleb128 0xc
- 23148 0618 00000000 		.long	.LASF101
- 23149 061c 04       		.sleb128 4
- 23150 061d 0C       		.uleb128 0xc
- 23151 061e 00000000 		.long	.LASF102
- 23152 0622 05       		.sleb128 5
- 23153 0623 0C       		.uleb128 0xc
- 23154 0624 00000000 		.long	.LASF103
- 23155 0628 06       		.sleb128 6
- 23156 0629 0C       		.uleb128 0xc
- 23157 062a 00000000 		.long	.LASF104
- 23158 062e 07       		.sleb128 7
- 23159 062f 0C       		.uleb128 0xc
- 23160 0630 00000000 		.long	.LASF105
- 23161 0634 08       		.sleb128 8
- 23162 0635 0C       		.uleb128 0xc
- 23163 0636 00000000 		.long	.LASF106
- 23164 063a 09       		.sleb128 9
- 23165 063b 0C       		.uleb128 0xc
- 23166 063c 00000000 		.long	.LASF107
- 23167 0640 0A       		.sleb128 10
- 23168 0641 0C       		.uleb128 0xc
- 23169 0642 00000000 		.long	.LASF108
- 23170 0646 0B       		.sleb128 11
- 23171 0647 0C       		.uleb128 0xc
- 23172 0648 00000000 		.long	.LASF109
- 23173 064c 0C       		.sleb128 12
- 23174 064d 0C       		.uleb128 0xc
- 23175 064e 00000000 		.long	.LASF110
- 23176 0652 0D       		.sleb128 13
- 23177 0653 0C       		.uleb128 0xc
- 23178 0654 00000000 		.long	.LASF111
- 23179 0658 0E       		.sleb128 14
- 23180 0659 0C       		.uleb128 0xc
- 23181 065a 00000000 		.long	.LASF112
- 23182 065e 0F       		.sleb128 15
- 23183 065f 0C       		.uleb128 0xc
- 23184 0660 00000000 		.long	.LASF113
- 23185 0664 10       		.sleb128 16
- 23186 0665 0C       		.uleb128 0xc
- 23187 0666 00000000 		.long	.LASF114
-
GAS LISTING /tmp/ccjbMjHD.s 			page 681
-
-
- 23188 066a 11       		.sleb128 17
- 23189 066b 0C       		.uleb128 0xc
- 23190 066c 00000000 		.long	.LASF115
- 23191 0670 12       		.sleb128 18
- 23192 0671 0C       		.uleb128 0xc
- 23193 0672 00000000 		.long	.LASF116
- 23194 0676 13       		.sleb128 19
- 23195 0677 0C       		.uleb128 0xc
- 23196 0678 00000000 		.long	.LASF117
- 23197 067c 14       		.sleb128 20
- 23198 067d 0C       		.uleb128 0xc
- 23199 067e 00000000 		.long	.LASF118
- 23200 0682 15       		.sleb128 21
- 23201 0683 0C       		.uleb128 0xc
- 23202 0684 00000000 		.long	.LASF119
- 23203 0688 16       		.sleb128 22
- 23204 0689 0C       		.uleb128 0xc
- 23205 068a 00000000 		.long	.LASF120
- 23206 068e 17       		.sleb128 23
- 23207 068f 0C       		.uleb128 0xc
- 23208 0690 00000000 		.long	.LASF121
- 23209 0694 18       		.sleb128 24
- 23210 0695 0C       		.uleb128 0xc
- 23211 0696 00000000 		.long	.LASF122
- 23212 069a 19       		.sleb128 25
- 23213 069b 0C       		.uleb128 0xc
- 23214 069c 00000000 		.long	.LASF123
- 23215 06a0 1A       		.sleb128 26
- 23216 06a1 0C       		.uleb128 0xc
- 23217 06a2 00000000 		.long	.LASF124
- 23218 06a6 1B       		.sleb128 27
- 23219 06a7 0C       		.uleb128 0xc
- 23220 06a8 00000000 		.long	.LASF125
- 23221 06ac 1C       		.sleb128 28
- 23222 06ad 0C       		.uleb128 0xc
- 23223 06ae 00000000 		.long	.LASF126
- 23224 06b2 1D       		.sleb128 29
- 23225 06b3 0C       		.uleb128 0xc
- 23226 06b4 00000000 		.long	.LASF127
- 23227 06b8 1E       		.sleb128 30
- 23228 06b9 0C       		.uleb128 0xc
- 23229 06ba 00000000 		.long	.LASF128
- 23230 06be 1F       		.sleb128 31
- 23231 06bf 0C       		.uleb128 0xc
- 23232 06c0 00000000 		.long	.LASF129
- 23233 06c4 20       		.sleb128 32
- 23234 06c5 0C       		.uleb128 0xc
- 23235 06c6 00000000 		.long	.LASF130
- 23236 06ca 21       		.sleb128 33
- 23237 06cb 0C       		.uleb128 0xc
- 23238 06cc 00000000 		.long	.LASF131
- 23239 06d0 22       		.sleb128 34
- 23240 06d1 0C       		.uleb128 0xc
- 23241 06d2 00000000 		.long	.LASF132
- 23242 06d6 23       		.sleb128 35
- 23243 06d7 0C       		.uleb128 0xc
- 23244 06d8 00000000 		.long	.LASF133
-
GAS LISTING /tmp/ccjbMjHD.s 			page 682
-
-
- 23245 06dc 24       		.sleb128 36
- 23246 06dd 0C       		.uleb128 0xc
- 23247 06de 00000000 		.long	.LASF134
- 23248 06e2 25       		.sleb128 37
- 23249 06e3 0C       		.uleb128 0xc
- 23250 06e4 00000000 		.long	.LASF135
- 23251 06e8 26       		.sleb128 38
- 23252 06e9 0C       		.uleb128 0xc
- 23253 06ea 00000000 		.long	.LASF136
- 23254 06ee 27       		.sleb128 39
- 23255 06ef 0C       		.uleb128 0xc
- 23256 06f0 00000000 		.long	.LASF137
- 23257 06f4 28       		.sleb128 40
- 23258 06f5 0C       		.uleb128 0xc
- 23259 06f6 00000000 		.long	.LASF138
- 23260 06fa 29       		.sleb128 41
- 23261 06fb 0C       		.uleb128 0xc
- 23262 06fc 00000000 		.long	.LASF139
- 23263 0700 2A       		.sleb128 42
- 23264 0701 0C       		.uleb128 0xc
- 23265 0702 00000000 		.long	.LASF140
- 23266 0706 2B       		.sleb128 43
- 23267 0707 0C       		.uleb128 0xc
- 23268 0708 00000000 		.long	.LASF141
- 23269 070c 2C       		.sleb128 44
- 23270 070d 0C       		.uleb128 0xc
- 23271 070e 00000000 		.long	.LASF142
- 23272 0712 2D       		.sleb128 45
- 23273 0713 0C       		.uleb128 0xc
- 23274 0714 00000000 		.long	.LASF143
- 23275 0718 2E       		.sleb128 46
- 23276 0719 0C       		.uleb128 0xc
- 23277 071a 00000000 		.long	.LASF144
- 23278 071e 2F       		.sleb128 47
- 23279 071f 0C       		.uleb128 0xc
- 23280 0720 00000000 		.long	.LASF145
- 23281 0724 30       		.sleb128 48
- 23282 0725 0C       		.uleb128 0xc
- 23283 0726 00000000 		.long	.LASF146
- 23284 072a 31       		.sleb128 49
- 23285 072b 0C       		.uleb128 0xc
- 23286 072c 00000000 		.long	.LASF147
- 23287 0730 32       		.sleb128 50
- 23288 0731 0C       		.uleb128 0xc
- 23289 0732 00000000 		.long	.LASF148
- 23290 0736 33       		.sleb128 51
- 23291 0737 0C       		.uleb128 0xc
- 23292 0738 00000000 		.long	.LASF149
- 23293 073c 34       		.sleb128 52
- 23294 073d 0C       		.uleb128 0xc
- 23295 073e 00000000 		.long	.LASF150
- 23296 0742 35       		.sleb128 53
- 23297 0743 0C       		.uleb128 0xc
- 23298 0744 00000000 		.long	.LASF151
- 23299 0748 36       		.sleb128 54
- 23300 0749 0C       		.uleb128 0xc
- 23301 074a 00000000 		.long	.LASF152
-
GAS LISTING /tmp/ccjbMjHD.s 			page 683
-
-
- 23302 074e 36       		.sleb128 54
- 23303 074f 0C       		.uleb128 0xc
- 23304 0750 00000000 		.long	.LASF153
- 23305 0754 37       		.sleb128 55
- 23306 0755 0C       		.uleb128 0xc
- 23307 0756 00000000 		.long	.LASF154
- 23308 075a 38       		.sleb128 56
- 23309 075b 0C       		.uleb128 0xc
- 23310 075c 00000000 		.long	.LASF155
- 23311 0760 39       		.sleb128 57
- 23312 0761 0C       		.uleb128 0xc
- 23313 0762 00000000 		.long	.LASF156
- 23314 0766 3A       		.sleb128 58
- 23315 0767 0C       		.uleb128 0xc
- 23316 0768 00000000 		.long	.LASF157
- 23317 076c 3B       		.sleb128 59
- 23318 076d 0C       		.uleb128 0xc
- 23319 076e 00000000 		.long	.LASF158
- 23320 0772 3C       		.sleb128 60
- 23321 0773 0C       		.uleb128 0xc
- 23322 0774 00000000 		.long	.LASF159
- 23323 0778 3D       		.sleb128 61
- 23324 0779 00       		.byte	0x0
- 23325 077a 1D       		.uleb128 0x1d
- 23326 077b 00000000 		.long	.LASF160
- 23327 077f 04       		.byte	0x4
- 23328 0780 0A       		.byte	0xa
- 23329 0781 BD       		.byte	0xbd
- 23330 0782 30090000 		.long	0x930
- 23331 0786 0C       		.uleb128 0xc
- 23332 0787 00000000 		.long	.LASF161
- 23333 078b 00       		.sleb128 0
- 23334 078c 0C       		.uleb128 0xc
- 23335 078d 00000000 		.long	.LASF162
- 23336 0791 01       		.sleb128 1
- 23337 0792 0C       		.uleb128 0xc
- 23338 0793 00000000 		.long	.LASF163
- 23339 0797 02       		.sleb128 2
- 23340 0798 0C       		.uleb128 0xc
- 23341 0799 00000000 		.long	.LASF164
- 23342 079d 03       		.sleb128 3
- 23343 079e 0C       		.uleb128 0xc
- 23344 079f 00000000 		.long	.LASF165
- 23345 07a3 04       		.sleb128 4
- 23346 07a4 0C       		.uleb128 0xc
- 23347 07a5 00000000 		.long	.LASF166
- 23348 07a9 05       		.sleb128 5
- 23349 07aa 0C       		.uleb128 0xc
- 23350 07ab 00000000 		.long	.LASF167
- 23351 07af 06       		.sleb128 6
- 23352 07b0 0C       		.uleb128 0xc
- 23353 07b1 00000000 		.long	.LASF168
- 23354 07b5 07       		.sleb128 7
- 23355 07b6 0C       		.uleb128 0xc
- 23356 07b7 00000000 		.long	.LASF169
- 23357 07bb 08       		.sleb128 8
- 23358 07bc 0C       		.uleb128 0xc
-
GAS LISTING /tmp/ccjbMjHD.s 			page 684
-
-
- 23359 07bd 00000000 		.long	.LASF170
- 23360 07c1 09       		.sleb128 9
- 23361 07c2 0C       		.uleb128 0xc
- 23362 07c3 00000000 		.long	.LASF171
- 23363 07c7 0A       		.sleb128 10
- 23364 07c8 0C       		.uleb128 0xc
- 23365 07c9 00000000 		.long	.LASF172
- 23366 07cd 0B       		.sleb128 11
- 23367 07ce 0C       		.uleb128 0xc
- 23368 07cf 00000000 		.long	.LASF173
- 23369 07d3 0C       		.sleb128 12
- 23370 07d4 0C       		.uleb128 0xc
- 23371 07d5 00000000 		.long	.LASF174
- 23372 07d9 0D       		.sleb128 13
- 23373 07da 0C       		.uleb128 0xc
- 23374 07db 00000000 		.long	.LASF175
- 23375 07df 0E       		.sleb128 14
- 23376 07e0 0C       		.uleb128 0xc
- 23377 07e1 00000000 		.long	.LASF176
- 23378 07e5 0F       		.sleb128 15
- 23379 07e6 0C       		.uleb128 0xc
- 23380 07e7 00000000 		.long	.LASF177
- 23381 07eb 10       		.sleb128 16
- 23382 07ec 0C       		.uleb128 0xc
- 23383 07ed 00000000 		.long	.LASF178
- 23384 07f1 11       		.sleb128 17
- 23385 07f2 0C       		.uleb128 0xc
- 23386 07f3 00000000 		.long	.LASF179
- 23387 07f7 12       		.sleb128 18
- 23388 07f8 0C       		.uleb128 0xc
- 23389 07f9 00000000 		.long	.LASF180
- 23390 07fd 13       		.sleb128 19
- 23391 07fe 0C       		.uleb128 0xc
- 23392 07ff 00000000 		.long	.LASF181
- 23393 0803 14       		.sleb128 20
- 23394 0804 0C       		.uleb128 0xc
- 23395 0805 00000000 		.long	.LASF182
- 23396 0809 15       		.sleb128 21
- 23397 080a 0C       		.uleb128 0xc
- 23398 080b 00000000 		.long	.LASF183
- 23399 080f 16       		.sleb128 22
- 23400 0810 0C       		.uleb128 0xc
- 23401 0811 00000000 		.long	.LASF184
- 23402 0815 17       		.sleb128 23
- 23403 0816 0C       		.uleb128 0xc
- 23404 0817 00000000 		.long	.LASF185
- 23405 081b 18       		.sleb128 24
- 23406 081c 0C       		.uleb128 0xc
- 23407 081d 00000000 		.long	.LASF186
- 23408 0821 19       		.sleb128 25
- 23409 0822 0C       		.uleb128 0xc
- 23410 0823 00000000 		.long	.LASF187
- 23411 0827 1A       		.sleb128 26
- 23412 0828 0C       		.uleb128 0xc
- 23413 0829 00000000 		.long	.LASF188
- 23414 082d 1B       		.sleb128 27
- 23415 082e 0C       		.uleb128 0xc
-
GAS LISTING /tmp/ccjbMjHD.s 			page 685
-
-
- 23416 082f 00000000 		.long	.LASF189
- 23417 0833 1C       		.sleb128 28
- 23418 0834 0C       		.uleb128 0xc
- 23419 0835 00000000 		.long	.LASF190
- 23420 0839 1D       		.sleb128 29
- 23421 083a 0C       		.uleb128 0xc
- 23422 083b 00000000 		.long	.LASF191
- 23423 083f 1E       		.sleb128 30
- 23424 0840 0C       		.uleb128 0xc
- 23425 0841 00000000 		.long	.LASF192
- 23426 0845 1F       		.sleb128 31
- 23427 0846 0C       		.uleb128 0xc
- 23428 0847 00000000 		.long	.LASF193
- 23429 084b 20       		.sleb128 32
- 23430 084c 0C       		.uleb128 0xc
- 23431 084d 00000000 		.long	.LASF194
- 23432 0851 21       		.sleb128 33
- 23433 0852 0C       		.uleb128 0xc
- 23434 0853 00000000 		.long	.LASF195
- 23435 0857 22       		.sleb128 34
- 23436 0858 0C       		.uleb128 0xc
- 23437 0859 00000000 		.long	.LASF196
- 23438 085d 23       		.sleb128 35
- 23439 085e 0C       		.uleb128 0xc
- 23440 085f 00000000 		.long	.LASF197
- 23441 0863 24       		.sleb128 36
- 23442 0864 0C       		.uleb128 0xc
- 23443 0865 00000000 		.long	.LASF198
- 23444 0869 25       		.sleb128 37
- 23445 086a 0C       		.uleb128 0xc
- 23446 086b 00000000 		.long	.LASF199
- 23447 086f 26       		.sleb128 38
- 23448 0870 0C       		.uleb128 0xc
- 23449 0871 00000000 		.long	.LASF200
- 23450 0875 27       		.sleb128 39
- 23451 0876 0C       		.uleb128 0xc
- 23452 0877 00000000 		.long	.LASF201
- 23453 087b 28       		.sleb128 40
- 23454 087c 0C       		.uleb128 0xc
- 23455 087d 00000000 		.long	.LASF202
- 23456 0881 29       		.sleb128 41
- 23457 0882 0C       		.uleb128 0xc
- 23458 0883 00000000 		.long	.LASF203
- 23459 0887 2A       		.sleb128 42
- 23460 0888 0C       		.uleb128 0xc
- 23461 0889 00000000 		.long	.LASF204
- 23462 088d 2B       		.sleb128 43
- 23463 088e 0C       		.uleb128 0xc
- 23464 088f 00000000 		.long	.LASF205
- 23465 0893 2C       		.sleb128 44
- 23466 0894 0C       		.uleb128 0xc
- 23467 0895 00000000 		.long	.LASF206
- 23468 0899 2D       		.sleb128 45
- 23469 089a 0C       		.uleb128 0xc
- 23470 089b 00000000 		.long	.LASF207
- 23471 089f 2E       		.sleb128 46
- 23472 08a0 0C       		.uleb128 0xc
-
GAS LISTING /tmp/ccjbMjHD.s 			page 686
-
-
- 23473 08a1 00000000 		.long	.LASF208
- 23474 08a5 2F       		.sleb128 47
- 23475 08a6 0C       		.uleb128 0xc
- 23476 08a7 00000000 		.long	.LASF209
- 23477 08ab 30       		.sleb128 48
- 23478 08ac 0C       		.uleb128 0xc
- 23479 08ad 00000000 		.long	.LASF210
- 23480 08b1 31       		.sleb128 49
- 23481 08b2 0C       		.uleb128 0xc
- 23482 08b3 00000000 		.long	.LASF211
- 23483 08b7 32       		.sleb128 50
- 23484 08b8 0C       		.uleb128 0xc
- 23485 08b9 00000000 		.long	.LASF212
- 23486 08bd 33       		.sleb128 51
- 23487 08be 0C       		.uleb128 0xc
- 23488 08bf 00000000 		.long	.LASF213
- 23489 08c3 34       		.sleb128 52
- 23490 08c4 0C       		.uleb128 0xc
- 23491 08c5 00000000 		.long	.LASF214
- 23492 08c9 35       		.sleb128 53
- 23493 08ca 0C       		.uleb128 0xc
- 23494 08cb 00000000 		.long	.LASF215
- 23495 08cf 36       		.sleb128 54
- 23496 08d0 0C       		.uleb128 0xc
- 23497 08d1 00000000 		.long	.LASF216
- 23498 08d5 37       		.sleb128 55
- 23499 08d6 0C       		.uleb128 0xc
- 23500 08d7 00000000 		.long	.LASF217
- 23501 08db 38       		.sleb128 56
- 23502 08dc 0C       		.uleb128 0xc
- 23503 08dd 00000000 		.long	.LASF218
- 23504 08e1 39       		.sleb128 57
- 23505 08e2 0C       		.uleb128 0xc
- 23506 08e3 00000000 		.long	.LASF219
- 23507 08e7 3A       		.sleb128 58
- 23508 08e8 0C       		.uleb128 0xc
- 23509 08e9 00000000 		.long	.LASF220
- 23510 08ed 3A       		.sleb128 58
- 23511 08ee 0C       		.uleb128 0xc
- 23512 08ef 00000000 		.long	.LASF221
- 23513 08f3 3B       		.sleb128 59
- 23514 08f4 0C       		.uleb128 0xc
- 23515 08f5 00000000 		.long	.LASF222
- 23516 08f9 3C       		.sleb128 60
- 23517 08fa 0C       		.uleb128 0xc
- 23518 08fb 00000000 		.long	.LASF223
- 23519 08ff 3D       		.sleb128 61
- 23520 0900 0C       		.uleb128 0xc
- 23521 0901 00000000 		.long	.LASF224
- 23522 0905 3E       		.sleb128 62
- 23523 0906 0C       		.uleb128 0xc
- 23524 0907 00000000 		.long	.LASF225
- 23525 090b 3F       		.sleb128 63
- 23526 090c 0C       		.uleb128 0xc
- 23527 090d 00000000 		.long	.LASF226
- 23528 0911 C000     		.sleb128 64
- 23529 0913 0C       		.uleb128 0xc
-
GAS LISTING /tmp/ccjbMjHD.s 			page 687
-
-
- 23530 0914 00000000 		.long	.LASF227
- 23531 0918 C100     		.sleb128 65
- 23532 091a 0C       		.uleb128 0xc
- 23533 091b 00000000 		.long	.LASF228
- 23534 091f C200     		.sleb128 66
- 23535 0921 0C       		.uleb128 0xc
- 23536 0922 00000000 		.long	.LASF229
- 23537 0926 C300     		.sleb128 67
- 23538 0928 0C       		.uleb128 0xc
- 23539 0929 00000000 		.long	.LASF230
- 23540 092d C400     		.sleb128 68
- 23541 092f 00       		.byte	0x0
- 23542 0930 1E       		.uleb128 0x1e
- 23543 0931 00000000 		.long	.LASF231
- 23544 0935 04       		.byte	0x4
- 23545 0936 0A       		.byte	0xa
- 23546 0937 0A01     		.value	0x10a
- 23547 0939 2F0A0000 		.long	0xa2f
- 23548 093d 0C       		.uleb128 0xc
- 23549 093e 00000000 		.long	.LASF232
- 23550 0942 00       		.sleb128 0
- 23551 0943 0C       		.uleb128 0xc
- 23552 0944 00000000 		.long	.LASF233
- 23553 0948 3D       		.sleb128 61
- 23554 0949 0C       		.uleb128 0xc
- 23555 094a 00000000 		.long	.LASF234
- 23556 094e 3E       		.sleb128 62
- 23557 094f 0C       		.uleb128 0xc
- 23558 0950 00000000 		.long	.LASF235
- 23559 0954 3F       		.sleb128 63
- 23560 0955 0C       		.uleb128 0xc
- 23561 0956 00000000 		.long	.LASF236
- 23562 095a C000     		.sleb128 64
- 23563 095c 0C       		.uleb128 0xc
- 23564 095d 00000000 		.long	.LASF237
- 23565 0961 C100     		.sleb128 65
- 23566 0963 0C       		.uleb128 0xc
- 23567 0964 00000000 		.long	.LASF238
- 23568 0968 C200     		.sleb128 66
- 23569 096a 0C       		.uleb128 0xc
- 23570 096b 00000000 		.long	.LASF239
- 23571 096f C300     		.sleb128 67
- 23572 0971 0C       		.uleb128 0xc
- 23573 0972 00000000 		.long	.LASF240
- 23574 0976 C400     		.sleb128 68
- 23575 0978 0C       		.uleb128 0xc
- 23576 0979 00000000 		.long	.LASF241
- 23577 097d C500     		.sleb128 69
- 23578 097f 0C       		.uleb128 0xc
- 23579 0980 00000000 		.long	.LASF242
- 23580 0984 C600     		.sleb128 70
- 23581 0986 0C       		.uleb128 0xc
- 23582 0987 00000000 		.long	.LASF243
- 23583 098b C700     		.sleb128 71
- 23584 098d 0C       		.uleb128 0xc
- 23585 098e 00000000 		.long	.LASF244
- 23586 0992 C800     		.sleb128 72
-
GAS LISTING /tmp/ccjbMjHD.s 			page 688
-
-
- 23587 0994 0C       		.uleb128 0xc
- 23588 0995 00000000 		.long	.LASF245
- 23589 0999 C900     		.sleb128 73
- 23590 099b 0C       		.uleb128 0xc
- 23591 099c 00000000 		.long	.LASF246
- 23592 09a0 CA00     		.sleb128 74
- 23593 09a2 0C       		.uleb128 0xc
- 23594 09a3 00000000 		.long	.LASF247
- 23595 09a7 CB00     		.sleb128 75
- 23596 09a9 0C       		.uleb128 0xc
- 23597 09aa 00000000 		.long	.LASF248
- 23598 09ae CC00     		.sleb128 76
- 23599 09b0 0C       		.uleb128 0xc
- 23600 09b1 00000000 		.long	.LASF249
- 23601 09b5 CD00     		.sleb128 77
- 23602 09b7 0C       		.uleb128 0xc
- 23603 09b8 00000000 		.long	.LASF250
- 23604 09bc CE00     		.sleb128 78
- 23605 09be 0C       		.uleb128 0xc
- 23606 09bf 00000000 		.long	.LASF251
- 23607 09c3 CF00     		.sleb128 79
- 23608 09c5 0C       		.uleb128 0xc
- 23609 09c6 00000000 		.long	.LASF252
- 23610 09ca D000     		.sleb128 80
- 23611 09cc 0C       		.uleb128 0xc
- 23612 09cd 00000000 		.long	.LASF253
- 23613 09d1 D100     		.sleb128 81
- 23614 09d3 0C       		.uleb128 0xc
- 23615 09d4 00000000 		.long	.LASF254
- 23616 09d8 D100     		.sleb128 81
- 23617 09da 0C       		.uleb128 0xc
- 23618 09db 00000000 		.long	.LASF255
- 23619 09df D200     		.sleb128 82
- 23620 09e1 0C       		.uleb128 0xc
- 23621 09e2 00000000 		.long	.LASF256
- 23622 09e6 D300     		.sleb128 83
- 23623 09e8 0C       		.uleb128 0xc
- 23624 09e9 00000000 		.long	.LASF257
- 23625 09ed D400     		.sleb128 84
- 23626 09ef 0C       		.uleb128 0xc
- 23627 09f0 00000000 		.long	.LASF258
- 23628 09f4 D500     		.sleb128 85
- 23629 09f6 0C       		.uleb128 0xc
- 23630 09f7 00000000 		.long	.LASF259
- 23631 09fb D600     		.sleb128 86
- 23632 09fd 0C       		.uleb128 0xc
- 23633 09fe 00000000 		.long	.LASF260
- 23634 0a02 D700     		.sleb128 87
- 23635 0a04 0C       		.uleb128 0xc
- 23636 0a05 00000000 		.long	.LASF261
- 23637 0a09 D800     		.sleb128 88
- 23638 0a0b 0C       		.uleb128 0xc
- 23639 0a0c 00000000 		.long	.LASF262
- 23640 0a10 D900     		.sleb128 89
- 23641 0a12 0C       		.uleb128 0xc
- 23642 0a13 00000000 		.long	.LASF263
- 23643 0a17 DA00     		.sleb128 90
-
GAS LISTING /tmp/ccjbMjHD.s 			page 689
-
-
- 23644 0a19 0C       		.uleb128 0xc
- 23645 0a1a 00000000 		.long	.LASF264
- 23646 0a1e DB00     		.sleb128 91
- 23647 0a20 0C       		.uleb128 0xc
- 23648 0a21 00000000 		.long	.LASF265
- 23649 0a25 DC00     		.sleb128 92
- 23650 0a27 0C       		.uleb128 0xc
- 23651 0a28 00000000 		.long	.LASF266
- 23652 0a2c DD00     		.sleb128 93
- 23653 0a2e 00       		.byte	0x0
- 23654 0a2f 1E       		.uleb128 0x1e
- 23655 0a30 00000000 		.long	.LASF267
- 23656 0a34 04       		.byte	0x4
- 23657 0a35 0A       		.byte	0xa
- 23658 0a36 3401     		.value	0x134
- 23659 0a38 6F0B0000 		.long	0xb6f
- 23660 0a3c 0C       		.uleb128 0xc
- 23661 0a3d 00000000 		.long	.LASF268
- 23662 0a41 00       		.sleb128 0
- 23663 0a42 0C       		.uleb128 0xc
- 23664 0a43 00000000 		.long	.LASF269
- 23665 0a47 01       		.sleb128 1
- 23666 0a48 0C       		.uleb128 0xc
- 23667 0a49 00000000 		.long	.LASF270
- 23668 0a4d 02       		.sleb128 2
- 23669 0a4e 0C       		.uleb128 0xc
- 23670 0a4f 00000000 		.long	.LASF271
- 23671 0a53 03       		.sleb128 3
- 23672 0a54 0C       		.uleb128 0xc
- 23673 0a55 00000000 		.long	.LASF272
- 23674 0a59 04       		.sleb128 4
- 23675 0a5a 0C       		.uleb128 0xc
- 23676 0a5b 00000000 		.long	.LASF273
- 23677 0a5f 05       		.sleb128 5
- 23678 0a60 0C       		.uleb128 0xc
- 23679 0a61 00000000 		.long	.LASF274
- 23680 0a65 06       		.sleb128 6
- 23681 0a66 0C       		.uleb128 0xc
- 23682 0a67 00000000 		.long	.LASF275
- 23683 0a6b 07       		.sleb128 7
- 23684 0a6c 0C       		.uleb128 0xc
- 23685 0a6d 00000000 		.long	.LASF276
- 23686 0a71 08       		.sleb128 8
- 23687 0a72 0C       		.uleb128 0xc
- 23688 0a73 00000000 		.long	.LASF277
- 23689 0a77 09       		.sleb128 9
- 23690 0a78 0C       		.uleb128 0xc
- 23691 0a79 00000000 		.long	.LASF278
- 23692 0a7d 0A       		.sleb128 10
- 23693 0a7e 0C       		.uleb128 0xc
- 23694 0a7f 00000000 		.long	.LASF279
- 23695 0a83 0B       		.sleb128 11
- 23696 0a84 0C       		.uleb128 0xc
- 23697 0a85 00000000 		.long	.LASF280
- 23698 0a89 0C       		.sleb128 12
- 23699 0a8a 0C       		.uleb128 0xc
- 23700 0a8b 00000000 		.long	.LASF281
-
GAS LISTING /tmp/ccjbMjHD.s 			page 690
-
-
- 23701 0a8f 0D       		.sleb128 13
- 23702 0a90 0C       		.uleb128 0xc
- 23703 0a91 00000000 		.long	.LASF282
- 23704 0a95 0E       		.sleb128 14
- 23705 0a96 0C       		.uleb128 0xc
- 23706 0a97 00000000 		.long	.LASF283
- 23707 0a9b 0F       		.sleb128 15
- 23708 0a9c 0C       		.uleb128 0xc
- 23709 0a9d 00000000 		.long	.LASF284
- 23710 0aa1 10       		.sleb128 16
- 23711 0aa2 0C       		.uleb128 0xc
- 23712 0aa3 00000000 		.long	.LASF285
- 23713 0aa7 11       		.sleb128 17
- 23714 0aa8 0C       		.uleb128 0xc
- 23715 0aa9 00000000 		.long	.LASF286
- 23716 0aad 12       		.sleb128 18
- 23717 0aae 0C       		.uleb128 0xc
- 23718 0aaf 00000000 		.long	.LASF287
- 23719 0ab3 13       		.sleb128 19
- 23720 0ab4 0C       		.uleb128 0xc
- 23721 0ab5 00000000 		.long	.LASF288
- 23722 0ab9 14       		.sleb128 20
- 23723 0aba 0C       		.uleb128 0xc
- 23724 0abb 00000000 		.long	.LASF289
- 23725 0abf 15       		.sleb128 21
- 23726 0ac0 0C       		.uleb128 0xc
- 23727 0ac1 00000000 		.long	.LASF290
- 23728 0ac5 16       		.sleb128 22
- 23729 0ac6 0C       		.uleb128 0xc
- 23730 0ac7 00000000 		.long	.LASF291
- 23731 0acb 17       		.sleb128 23
- 23732 0acc 0C       		.uleb128 0xc
- 23733 0acd 00000000 		.long	.LASF292
- 23734 0ad1 18       		.sleb128 24
- 23735 0ad2 0C       		.uleb128 0xc
- 23736 0ad3 00000000 		.long	.LASF293
- 23737 0ad7 19       		.sleb128 25
- 23738 0ad8 0C       		.uleb128 0xc
- 23739 0ad9 00000000 		.long	.LASF294
- 23740 0add 1A       		.sleb128 26
- 23741 0ade 0C       		.uleb128 0xc
- 23742 0adf 00000000 		.long	.LASF295
- 23743 0ae3 1B       		.sleb128 27
- 23744 0ae4 0C       		.uleb128 0xc
- 23745 0ae5 00000000 		.long	.LASF296
- 23746 0ae9 1C       		.sleb128 28
- 23747 0aea 0C       		.uleb128 0xc
- 23748 0aeb 00000000 		.long	.LASF297
- 23749 0aef 1D       		.sleb128 29
- 23750 0af0 0C       		.uleb128 0xc
- 23751 0af1 00000000 		.long	.LASF298
- 23752 0af5 1E       		.sleb128 30
- 23753 0af6 0C       		.uleb128 0xc
- 23754 0af7 00000000 		.long	.LASF299
- 23755 0afb 1F       		.sleb128 31
- 23756 0afc 0C       		.uleb128 0xc
- 23757 0afd 00000000 		.long	.LASF300
-
GAS LISTING /tmp/ccjbMjHD.s 			page 691
-
-
- 23758 0b01 20       		.sleb128 32
- 23759 0b02 0C       		.uleb128 0xc
- 23760 0b03 00000000 		.long	.LASF301
- 23761 0b07 21       		.sleb128 33
- 23762 0b08 0C       		.uleb128 0xc
- 23763 0b09 00000000 		.long	.LASF302
- 23764 0b0d 22       		.sleb128 34
- 23765 0b0e 0C       		.uleb128 0xc
- 23766 0b0f 00000000 		.long	.LASF303
- 23767 0b13 23       		.sleb128 35
- 23768 0b14 0C       		.uleb128 0xc
- 23769 0b15 00000000 		.long	.LASF304
- 23770 0b19 24       		.sleb128 36
- 23771 0b1a 0C       		.uleb128 0xc
- 23772 0b1b 00000000 		.long	.LASF305
- 23773 0b1f 25       		.sleb128 37
- 23774 0b20 0C       		.uleb128 0xc
- 23775 0b21 00000000 		.long	.LASF306
- 23776 0b25 26       		.sleb128 38
- 23777 0b26 0C       		.uleb128 0xc
- 23778 0b27 00000000 		.long	.LASF307
- 23779 0b2b 27       		.sleb128 39
- 23780 0b2c 0C       		.uleb128 0xc
- 23781 0b2d 00000000 		.long	.LASF308
- 23782 0b31 28       		.sleb128 40
- 23783 0b32 0C       		.uleb128 0xc
- 23784 0b33 00000000 		.long	.LASF309
- 23785 0b37 29       		.sleb128 41
- 23786 0b38 0C       		.uleb128 0xc
- 23787 0b39 00000000 		.long	.LASF310
- 23788 0b3d 29       		.sleb128 41
- 23789 0b3e 0C       		.uleb128 0xc
- 23790 0b3f 00000000 		.long	.LASF311
- 23791 0b43 2A       		.sleb128 42
- 23792 0b44 0C       		.uleb128 0xc
- 23793 0b45 00000000 		.long	.LASF312
- 23794 0b49 2B       		.sleb128 43
- 23795 0b4a 0C       		.uleb128 0xc
- 23796 0b4b 00000000 		.long	.LASF313
- 23797 0b4f 2C       		.sleb128 44
- 23798 0b50 0C       		.uleb128 0xc
- 23799 0b51 00000000 		.long	.LASF314
- 23800 0b55 2D       		.sleb128 45
- 23801 0b56 0C       		.uleb128 0xc
- 23802 0b57 00000000 		.long	.LASF315
- 23803 0b5b 2E       		.sleb128 46
- 23804 0b5c 0C       		.uleb128 0xc
- 23805 0b5d 00000000 		.long	.LASF316
- 23806 0b61 2F       		.sleb128 47
- 23807 0b62 0C       		.uleb128 0xc
- 23808 0b63 00000000 		.long	.LASF317
- 23809 0b67 30       		.sleb128 48
- 23810 0b68 0C       		.uleb128 0xc
- 23811 0b69 00000000 		.long	.LASF318
- 23812 0b6d 31       		.sleb128 49
- 23813 0b6e 00       		.byte	0x0
- 23814 0b6f 1F       		.uleb128 0x1f
-
GAS LISTING /tmp/ccjbMjHD.s 			page 692
-
-
- 23815 0b70 00000000 		.long	.LASF386
- 23816 0b74 01       		.byte	0x1
- 23817 0b75 38       		.byte	0x38
- 23818 0b76 01       		.byte	0x1
- 23819 0b77 6D000000 		.long	0x6d
- 23820 0b7b 00000000 		.quad	.LFB591
- 23820      00000000 
- 23821 0b83 00000000 		.quad	.LFE591
- 23821      00000000 
- 23822 0b8b 00000000 		.long	.LLST0
- 23823 0b8f AD0B0000 		.long	0xbad
- 23824 0b93 20       		.uleb128 0x20
- 23825 0b94 6900     		.string	"i"
- 23826 0b96 01       		.byte	0x1
- 23827 0b97 38       		.byte	0x38
- 23828 0b98 6D000000 		.long	0x6d
- 23829 0b9c 02       		.byte	0x2
- 23830 0b9d 91       		.byte	0x91
- 23831 0b9e 64       		.sleb128 -28
- 23832 0b9f 21       		.uleb128 0x21
- 23833 0ba0 72746E00 		.string	"rtn"
- 23834 0ba4 01       		.byte	0x1
- 23835 0ba5 3A       		.byte	0x3a
- 23836 0ba6 6D000000 		.long	0x6d
- 23837 0baa 01       		.byte	0x1
- 23838 0bab 53       		.byte	0x53
- 23839 0bac 00       		.byte	0x0
- 23840 0bad 22       		.uleb128 0x22
- 23841 0bae 00000000 		.long	.LASF319
- 23842 0bb2 02       		.byte	0x2
- 23843 0bb3 79       		.byte	0x79
- 23844 0bb4 01       		.byte	0x1
- 23845 0bb5 B3010000 		.long	0x1b3
- 23846 0bb9 03       		.byte	0x3
- 23847 0bba D50B0000 		.long	0xbd5
- 23848 0bbe 23       		.uleb128 0x23
- 23849 0bbf 61696E00 		.string	"ain"
- 23850 0bc3 02       		.byte	0x2
- 23851 0bc4 79       		.byte	0x79
- 23852 0bc5 D3000000 		.long	0xd3
- 23853 0bc9 24       		.uleb128 0x24
- 23854 0bca 76656300 		.string	"vec"
- 23855 0bce 02       		.byte	0x2
- 23856 0bcf 7D       		.byte	0x7d
- 23857 0bd0 B3010000 		.long	0x1b3
- 23858 0bd4 00       		.byte	0x0
- 23859 0bd5 25       		.uleb128 0x25
- 23860 0bd6 00000000 		.long	.LASF320
- 23861 0bda 02       		.byte	0x2
- 23862 0bdb 8606     		.value	0x686
- 23863 0bdd 01       		.byte	0x1
- 23864 0bde B3010000 		.long	0x1b3
- 23865 0be2 03       		.byte	0x3
- 23866 0be3 540C0000 		.long	0xc54
- 23867 0be7 26       		.uleb128 0x26
- 23868 0be8 00000000 		.long	.LASF67
- 23869 0bec 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 693
-
-
- 23870 0bed 8606     		.value	0x686
- 23871 0bef B3010000 		.long	0x1b3
- 23872 0bf3 26       		.uleb128 0x26
- 23873 0bf4 00000000 		.long	.LASF321
- 23874 0bf8 02       		.byte	0x2
- 23875 0bf9 8606     		.value	0x686
- 23876 0bfb B4000000 		.long	0xb4
- 23877 0bff 27       		.uleb128 0x27
- 23878 0c00 00000000 		.long	.LASF322
- 23879 0c04 02       		.byte	0x2
- 23880 0c05 8E06     		.value	0x68e
- 23881 0c07 B3010000 		.long	0x1b3
- 23882 0c0b 28       		.uleb128 0x28
- 23883 0c0c 746D7000 		.string	"tmp"
- 23884 0c10 02       		.byte	0x2
- 23885 0c11 8F06     		.value	0x68f
- 23886 0c13 B3010000 		.long	0x1b3
- 23887 0c17 29       		.uleb128 0x29
- 23888 0c18 270C0000 		.long	0xc27
- 23889 0c1c 28       		.uleb128 0x28
- 23890 0c1d 7600     		.string	"v"
- 23891 0c1f 02       		.byte	0x2
- 23892 0c20 9306     		.value	0x693
- 23893 0c22 29050000 		.long	0x529
- 23894 0c26 00       		.byte	0x0
- 23895 0c27 29       		.uleb128 0x29
- 23896 0c28 370C0000 		.long	0xc37
- 23897 0c2c 28       		.uleb128 0x28
- 23898 0c2d 7600     		.string	"v"
- 23899 0c2f 02       		.byte	0x2
- 23900 0c30 9506     		.value	0x695
- 23901 0c32 29050000 		.long	0x529
- 23902 0c36 00       		.byte	0x0
- 23903 0c37 29       		.uleb128 0x29
- 23904 0c38 470C0000 		.long	0xc47
- 23905 0c3c 28       		.uleb128 0x28
- 23906 0c3d 7600     		.string	"v"
- 23907 0c3f 02       		.byte	0x2
- 23908 0c40 9706     		.value	0x697
- 23909 0c42 29050000 		.long	0x529
- 23910 0c46 00       		.byte	0x0
- 23911 0c47 2A       		.uleb128 0x2a
- 23912 0c48 28       		.uleb128 0x28
- 23913 0c49 7600     		.string	"v"
- 23914 0c4b 02       		.byte	0x2
- 23915 0c4c 9906     		.value	0x699
- 23916 0c4e 29050000 		.long	0x529
- 23917 0c52 00       		.byte	0x0
- 23918 0c53 00       		.byte	0x0
- 23919 0c54 25       		.uleb128 0x25
- 23920 0c55 00000000 		.long	.LASF323
- 23921 0c59 02       		.byte	0x2
- 23922 0c5a 0402     		.value	0x204
- 23923 0c5c 01       		.byte	0x1
- 23924 0c5d B3010000 		.long	0x1b3
- 23925 0c61 03       		.byte	0x3
- 23926 0c62 8B0C0000 		.long	0xc8b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 694
-
-
- 23927 0c66 26       		.uleb128 0x26
- 23928 0c67 00000000 		.long	.LASF67
- 23929 0c6b 02       		.byte	0x2
- 23930 0c6c 0402     		.value	0x204
- 23931 0c6e B3010000 		.long	0x1b3
- 23932 0c72 26       		.uleb128 0x26
- 23933 0c73 00000000 		.long	.LASF324
- 23934 0c77 02       		.byte	0x2
- 23935 0c78 0402     		.value	0x204
- 23936 0c7a 09040000 		.long	0x409
- 23937 0c7e 26       		.uleb128 0x26
- 23938 0c7f 00000000 		.long	.LASF325
- 23939 0c83 02       		.byte	0x2
- 23940 0c84 0402     		.value	0x204
- 23941 0c86 B4000000 		.long	0xb4
- 23942 0c8a 00       		.byte	0x0
- 23943 0c8b 25       		.uleb128 0x25
- 23944 0c8c 00000000 		.long	.LASF326
- 23945 0c90 03       		.byte	0x3
- 23946 0c91 5402     		.value	0x254
- 23947 0c93 01       		.byte	0x1
- 23948 0c94 E7000000 		.long	0xe7
- 23949 0c98 03       		.byte	0x3
- 23950 0c99 C10C0000 		.long	0xcc1
- 23951 0c9d 2B       		.uleb128 0x2b
- 23952 0c9e 76696E00 		.string	"vin"
- 23953 0ca2 03       		.byte	0x3
- 23954 0ca3 5402     		.value	0x254
- 23955 0ca5 E7000000 		.long	0xe7
- 23956 0ca9 2B       		.uleb128 0x2b
- 23957 0caa 696900   		.string	"ii"
- 23958 0cad 03       		.byte	0x3
- 23959 0cae 5402     		.value	0x254
- 23960 0cb0 6D000000 		.long	0x6d
- 23961 0cb4 2B       		.uleb128 0x2b
- 23962 0cb5 6F666600 		.string	"off"
- 23963 0cb9 03       		.byte	0x3
- 23964 0cba 5402     		.value	0x254
- 23965 0cbc B4000000 		.long	0xb4
- 23966 0cc0 00       		.byte	0x0
- 23967 0cc1 25       		.uleb128 0x25
- 23968 0cc2 00000000 		.long	.LASF327
- 23969 0cc6 02       		.byte	0x2
- 23970 0cc7 7B03     		.value	0x37b
- 23971 0cc9 01       		.byte	0x1
- 23972 0cca B3010000 		.long	0x1b3
- 23973 0cce 03       		.byte	0x3
- 23974 0ccf E00C0000 		.long	0xce0
- 23975 0cd3 26       		.uleb128 0x26
- 23976 0cd4 00000000 		.long	.LASF67
- 23977 0cd8 02       		.byte	0x2
- 23978 0cd9 7B03     		.value	0x37b
- 23979 0cdb B3010000 		.long	0x1b3
- 23980 0cdf 00       		.byte	0x0
- 23981 0ce0 25       		.uleb128 0x25
- 23982 0ce1 00000000 		.long	.LASF328
- 23983 0ce5 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 695
-
-
- 23984 0ce6 4E03     		.value	0x34e
- 23985 0ce8 01       		.byte	0x1
- 23986 0ce9 B3010000 		.long	0x1b3
- 23987 0ced 03       		.byte	0x3
- 23988 0cee 440D0000 		.long	0xd44
- 23989 0cf2 26       		.uleb128 0x26
- 23990 0cf3 00000000 		.long	.LASF67
- 23991 0cf7 02       		.byte	0x2
- 23992 0cf8 4E03     		.value	0x34e
- 23993 0cfa B3010000 		.long	0x1b3
- 23994 0cfe 2B       		.uleb128 0x2b
- 23995 0cff 626F7800 		.string	"box"
- 23996 0d03 02       		.byte	0x2
- 23997 0d04 4E03     		.value	0x34e
- 23998 0d06 440D0000 		.long	0xd44
- 23999 0d0a 28       		.uleb128 0x28
- 24000 0d0b 6C6F00   		.string	"lo"
- 24001 0d0e 02       		.byte	0x2
- 24002 0d0f 5003     		.value	0x350
- 24003 0d11 B3010000 		.long	0x1b3
- 24004 0d15 28       		.uleb128 0x28
- 24005 0d16 686900   		.string	"hi"
- 24006 0d19 02       		.byte	0x2
- 24007 0d1a 5003     		.value	0x350
- 24008 0d1c B3010000 		.long	0x1b3
- 24009 0d20 28       		.uleb128 0x28
- 24010 0d21 746D7000 		.string	"tmp"
- 24011 0d25 02       		.byte	0x2
- 24012 0d26 5003     		.value	0x350
- 24013 0d28 B3010000 		.long	0x1b3
- 24014 0d2c 28       		.uleb128 0x28
- 24015 0d2d 6F757400 		.string	"out"
- 24016 0d31 02       		.byte	0x2
- 24017 0d32 5003     		.value	0x350
- 24018 0d34 B3010000 		.long	0x1b3
- 24019 0d38 28       		.uleb128 0x28
- 24020 0d39 697800   		.string	"ix"
- 24021 0d3c 02       		.byte	0x2
- 24022 0d3d 5103     		.value	0x351
- 24023 0d3f 78000000 		.long	0x78
- 24024 0d43 00       		.byte	0x0
- 24025 0d44 07       		.uleb128 0x7
- 24026 0d45 08       		.byte	0x8
- 24027 0d46 4A0D0000 		.long	0xd4a
- 24028 0d4a 06       		.uleb128 0x6
- 24029 0d4b B3010000 		.long	0x1b3
- 24030 0d4f 22       		.uleb128 0x22
- 24031 0d50 00000000 		.long	.LASF329
- 24032 0d54 02       		.byte	0x2
- 24033 0d55 CA       		.byte	0xca
- 24034 0d56 01       		.byte	0x1
- 24035 0d57 B3010000 		.long	0x1b3
- 24036 0d5b 03       		.byte	0x3
- 24037 0d5c 750D0000 		.long	0xd75
- 24038 0d60 23       		.uleb128 0x23
- 24039 0d61 763100   		.string	"v1"
- 24040 0d64 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 696
-
-
- 24041 0d65 CA       		.byte	0xca
- 24042 0d66 B3010000 		.long	0x1b3
- 24043 0d6a 23       		.uleb128 0x23
- 24044 0d6b 763200   		.string	"v2"
- 24045 0d6e 02       		.byte	0x2
- 24046 0d6f CA       		.byte	0xca
- 24047 0d70 B3010000 		.long	0x1b3
- 24048 0d74 00       		.byte	0x0
- 24049 0d75 25       		.uleb128 0x25
- 24050 0d76 00000000 		.long	.LASF330
- 24051 0d7a 03       		.byte	0x3
- 24052 0d7b AF01     		.value	0x1af
- 24053 0d7d 01       		.byte	0x1
- 24054 0d7e E7000000 		.long	0xe7
- 24055 0d82 03       		.byte	0x3
- 24056 0d83 A00D0000 		.long	0xda0
- 24057 0d87 2B       		.uleb128 0x2b
- 24058 0d88 76696E00 		.string	"vin"
- 24059 0d8c 03       		.byte	0x3
- 24060 0d8d AF01     		.value	0x1af
- 24061 0d8f E7000000 		.long	0xe7
- 24062 0d93 26       		.uleb128 0x26
- 24063 0d94 00000000 		.long	.LASF331
- 24064 0d98 03       		.byte	0x3
- 24065 0d99 AF01     		.value	0x1af
- 24066 0d9b B4000000 		.long	0xb4
- 24067 0d9f 00       		.byte	0x0
- 24068 0da0 25       		.uleb128 0x25
- 24069 0da1 00000000 		.long	.LASF332
- 24070 0da5 02       		.byte	0x2
- 24071 0da6 7101     		.value	0x171
- 24072 0da8 01       		.byte	0x1
- 24073 0da9 B3010000 		.long	0x1b3
- 24074 0dad 03       		.byte	0x3
- 24075 0dae CB0D0000 		.long	0xdcb
- 24076 0db2 26       		.uleb128 0x26
- 24077 0db3 00000000 		.long	.LASF333
- 24078 0db7 02       		.byte	0x2
- 24079 0db8 7101     		.value	0x171
- 24080 0dba B3010000 		.long	0x1b3
- 24081 0dbe 26       		.uleb128 0x26
- 24082 0dbf 00000000 		.long	.LASF334
- 24083 0dc3 02       		.byte	0x2
- 24084 0dc4 7101     		.value	0x171
- 24085 0dc6 B3010000 		.long	0x1b3
- 24086 0dca 00       		.byte	0x0
- 24087 0dcb 25       		.uleb128 0x25
- 24088 0dcc 00000000 		.long	.LASF335
- 24089 0dd0 03       		.byte	0x3
- 24090 0dd1 0F02     		.value	0x20f
- 24091 0dd3 01       		.byte	0x1
- 24092 0dd4 E7000000 		.long	0xe7
- 24093 0dd8 03       		.byte	0x3
- 24094 0dd9 F60D0000 		.long	0xdf6
- 24095 0ddd 2B       		.uleb128 0x2b
- 24096 0dde 76696E00 		.string	"vin"
- 24097 0de2 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 697
-
-
- 24098 0de3 0F02     		.value	0x20f
- 24099 0de5 E7000000 		.long	0xe7
- 24100 0de9 26       		.uleb128 0x26
- 24101 0dea 00000000 		.long	.LASF336
- 24102 0dee 03       		.byte	0x3
- 24103 0def 0F02     		.value	0x20f
- 24104 0df1 F60D0000 		.long	0xdf6
- 24105 0df5 00       		.byte	0x0
- 24106 0df6 06       		.uleb128 0x6
- 24107 0df7 E7000000 		.long	0xe7
- 24108 0dfb 22       		.uleb128 0x22
- 24109 0dfc 00000000 		.long	.LASF337
- 24110 0e00 02       		.byte	0x2
- 24111 0e01 E6       		.byte	0xe6
- 24112 0e02 01       		.byte	0x1
- 24113 0e03 B3010000 		.long	0x1b3
- 24114 0e07 03       		.byte	0x3
- 24115 0e08 210E0000 		.long	0xe21
- 24116 0e0c 23       		.uleb128 0x23
- 24117 0e0d 763100   		.string	"v1"
- 24118 0e10 02       		.byte	0x2
- 24119 0e11 E6       		.byte	0xe6
- 24120 0e12 B3010000 		.long	0x1b3
- 24121 0e16 23       		.uleb128 0x23
- 24122 0e17 763200   		.string	"v2"
- 24123 0e1a 02       		.byte	0x2
- 24124 0e1b E6       		.byte	0xe6
- 24125 0e1c B3010000 		.long	0x1b3
- 24126 0e20 00       		.byte	0x0
- 24127 0e21 25       		.uleb128 0x25
- 24128 0e22 00000000 		.long	.LASF338
- 24129 0e26 02       		.byte	0x2
- 24130 0e27 1E01     		.value	0x11e
- 24131 0e29 01       		.byte	0x1
- 24132 0e2a B3010000 		.long	0x1b3
- 24133 0e2e 03       		.byte	0x3
- 24134 0e2f 4A0E0000 		.long	0xe4a
- 24135 0e33 2B       		.uleb128 0x2b
- 24136 0e34 763100   		.string	"v1"
- 24137 0e37 02       		.byte	0x2
- 24138 0e38 1E01     		.value	0x11e
- 24139 0e3a B3010000 		.long	0x1b3
- 24140 0e3e 2B       		.uleb128 0x2b
- 24141 0e3f 763200   		.string	"v2"
- 24142 0e42 02       		.byte	0x2
- 24143 0e43 1E01     		.value	0x11e
- 24144 0e45 B3010000 		.long	0x1b3
- 24145 0e49 00       		.byte	0x0
- 24146 0e4a 25       		.uleb128 0x25
- 24147 0e4b 00000000 		.long	.LASF339
- 24148 0e4f 02       		.byte	0x2
- 24149 0e50 9502     		.value	0x295
- 24150 0e52 01       		.byte	0x1
- 24151 0e53 B3010000 		.long	0x1b3
- 24152 0e57 03       		.byte	0x3
- 24153 0e58 860E0000 		.long	0xe86
- 24154 0e5c 26       		.uleb128 0x26
-
GAS LISTING /tmp/ccjbMjHD.s 			page 698
-
-
- 24155 0e5d 00000000 		.long	.LASF67
- 24156 0e61 02       		.byte	0x2
- 24157 0e62 9502     		.value	0x295
- 24158 0e64 B3010000 		.long	0x1b3
- 24159 0e68 2C       		.uleb128 0x2c
- 24160 0e69 00000000 		.long	.LASF340
- 24161 0e6d 02       		.byte	0x2
- 24162 0e6e 9702     		.value	0x297
- 24163 0e70 4A0D0000 		.long	0xd4a
- 24164 0e74 10       		.byte	0x10
- 24165 0e75 01       		.byte	0x1
- 24166 0e76 02       		.byte	0x2
- 24167 0e77 03       		.byte	0x3
- 24168 0e78 00       		.byte	0x0
- 24169 0e79 05       		.byte	0x5
- 24170 0e7a 06       		.byte	0x6
- 24171 0e7b 07       		.byte	0x7
- 24172 0e7c 04       		.byte	0x4
- 24173 0e7d 09       		.byte	0x9
- 24174 0e7e 0A       		.byte	0xa
- 24175 0e7f 0B       		.byte	0xb
- 24176 0e80 08       		.byte	0x8
- 24177 0e81 0D       		.byte	0xd
- 24178 0e82 0E       		.byte	0xe
- 24179 0e83 0F       		.byte	0xf
- 24180 0e84 0C       		.byte	0xc
- 24181 0e85 00       		.byte	0x0
- 24182 0e86 22       		.uleb128 0x22
- 24183 0e87 00000000 		.long	.LASF341
- 24184 0e8b 02       		.byte	0x2
- 24185 0e8c AE       		.byte	0xae
- 24186 0e8d 01       		.byte	0x1
- 24187 0e8e B3010000 		.long	0x1b3
- 24188 0e92 03       		.byte	0x3
- 24189 0e93 AC0E0000 		.long	0xeac
- 24190 0e97 23       		.uleb128 0x23
- 24191 0e98 763100   		.string	"v1"
- 24192 0e9b 02       		.byte	0x2
- 24193 0e9c AE       		.byte	0xae
- 24194 0e9d B3010000 		.long	0x1b3
- 24195 0ea1 23       		.uleb128 0x23
- 24196 0ea2 763200   		.string	"v2"
- 24197 0ea5 02       		.byte	0x2
- 24198 0ea6 AE       		.byte	0xae
- 24199 0ea7 B3010000 		.long	0x1b3
- 24200 0eab 00       		.byte	0x0
- 24201 0eac 25       		.uleb128 0x25
- 24202 0ead 00000000 		.long	.LASF342
- 24203 0eb1 02       		.byte	0x2
- 24204 0eb2 4605     		.value	0x546
- 24205 0eb4 01       		.byte	0x1
- 24206 0eb5 B3010000 		.long	0x1b3
- 24207 0eb9 03       		.byte	0x3
- 24208 0eba CB0E0000 		.long	0xecb
- 24209 0ebe 26       		.uleb128 0x26
- 24210 0ebf 00000000 		.long	.LASF67
- 24211 0ec3 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 699
-
-
- 24212 0ec4 4605     		.value	0x546
- 24213 0ec6 B3010000 		.long	0x1b3
- 24214 0eca 00       		.byte	0x0
- 24215 0ecb 25       		.uleb128 0x25
- 24216 0ecc 00000000 		.long	.LASF343
- 24217 0ed0 03       		.byte	0x3
- 24218 0ed1 C001     		.value	0x1c0
- 24219 0ed3 01       		.byte	0x1
- 24220 0ed4 E7000000 		.long	0xe7
- 24221 0ed8 03       		.byte	0x3
- 24222 0ed9 F60E0000 		.long	0xef6
- 24223 0edd 2B       		.uleb128 0x2b
- 24224 0ede 76696E00 		.string	"vin"
- 24225 0ee2 03       		.byte	0x3
- 24226 0ee3 C001     		.value	0x1c0
- 24227 0ee5 E7000000 		.long	0xe7
- 24228 0ee9 26       		.uleb128 0x26
- 24229 0eea 00000000 		.long	.LASF334
- 24230 0eee 03       		.byte	0x3
- 24231 0eef C001     		.value	0x1c0
- 24232 0ef1 B4000000 		.long	0xb4
- 24233 0ef5 00       		.byte	0x0
- 24234 0ef6 25       		.uleb128 0x25
- 24235 0ef7 00000000 		.long	.LASF344
- 24236 0efb 02       		.byte	0x2
- 24237 0efc 1A06     		.value	0x61a
- 24238 0efe 01       		.byte	0x1
- 24239 0eff B3010000 		.long	0x1b3
- 24240 0f03 03       		.byte	0x3
- 24241 0f04 210F0000 		.long	0xf21
- 24242 0f08 26       		.uleb128 0x26
- 24243 0f09 00000000 		.long	.LASF67
- 24244 0f0d 02       		.byte	0x2
- 24245 0f0e 1A06     		.value	0x61a
- 24246 0f10 B3010000 		.long	0x1b3
- 24247 0f14 27       		.uleb128 0x27
- 24248 0f15 00000000 		.long	.LASF345
- 24249 0f19 02       		.byte	0x2
- 24250 0f1a 1D06     		.value	0x61d
- 24251 0f1c B3010000 		.long	0x1b3
- 24252 0f20 00       		.byte	0x0
- 24253 0f21 25       		.uleb128 0x25
- 24254 0f22 00000000 		.long	.LASF346
- 24255 0f26 02       		.byte	0x2
- 24256 0f27 FA04     		.value	0x4fa
- 24257 0f29 01       		.byte	0x1
- 24258 0f2a B3010000 		.long	0x1b3
- 24259 0f2e 03       		.byte	0x3
- 24260 0f2f 5D0F0000 		.long	0xf5d
- 24261 0f33 26       		.uleb128 0x26
- 24262 0f34 00000000 		.long	.LASF67
- 24263 0f38 02       		.byte	0x2
- 24264 0f39 FA04     		.value	0x4fa
- 24265 0f3b B3010000 		.long	0x1b3
- 24266 0f3f 2C       		.uleb128 0x2c
- 24267 0f40 00000000 		.long	.LASF334
- 24268 0f44 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 700
-
-
- 24269 0f45 FD04     		.value	0x4fd
- 24270 0f47 4A0D0000 		.long	0xd4a
- 24271 0f4b 10       		.byte	0x10
- 24272 0f4c FF       		.byte	0xff
- 24273 0f4d FF       		.byte	0xff
- 24274 0f4e FF       		.byte	0xff
- 24275 0f4f FF       		.byte	0xff
- 24276 0f50 00       		.byte	0x0
- 24277 0f51 01       		.byte	0x1
- 24278 0f52 02       		.byte	0x2
- 24279 0f53 03       		.byte	0x3
- 24280 0f54 04       		.byte	0x4
- 24281 0f55 05       		.byte	0x5
- 24282 0f56 06       		.byte	0x6
- 24283 0f57 07       		.byte	0x7
- 24284 0f58 08       		.byte	0x8
- 24285 0f59 09       		.byte	0x9
- 24286 0f5a 0A       		.byte	0xa
- 24287 0f5b 0B       		.byte	0xb
- 24288 0f5c 00       		.byte	0x0
- 24289 0f5d 2D       		.uleb128 0x2d
- 24290 0f5e 00000000 		.long	.LASF359
- 24291 0f62 02       		.byte	0x2
- 24292 0f63 C206     		.value	0x6c2
- 24293 0f65 01       		.byte	0x1
- 24294 0f66 00000000 		.quad	.LFB645
- 24294      00000000 
- 24295 0f6e 00000000 		.quad	.LFE645
- 24295      00000000 
- 24296 0f76 00000000 		.long	.LLST1
- 24297 0f7a 24560000 		.long	0x5624
- 24298 0f7e 2E       		.uleb128 0x2e
- 24299 0f7f 00000000 		.long	.LASF65
- 24300 0f83 02       		.byte	0x2
- 24301 0f84 C206     		.value	0x6c2
- 24302 0f86 24560000 		.long	0x5624
- 24303 0f8a 04       		.byte	0x4
- 24304 0f8b 91       		.byte	0x91
- 24305 0f8c E8AC7F   		.sleb128 -10648
- 24306 0f8f 2F       		.uleb128 0x2f
- 24307 0f90 6B657900 		.string	"key"
- 24308 0f94 02       		.byte	0x2
- 24309 0f95 C206     		.value	0x6c2
- 24310 0f97 2A560000 		.long	0x562a
- 24311 0f9b 04       		.byte	0x4
- 24312 0f9c 91       		.byte	0x91
- 24313 0f9d E0AC7F   		.sleb128 -10656
- 24314 0fa0 30       		.uleb128 0x30
- 24315 0fa1 00000000 		.long	.LASF67
- 24316 0fa5 02       		.byte	0x2
- 24317 0fa6 C406     		.value	0x6c4
- 24318 0fa8 B3010000 		.long	0x1b3
- 24319 0fac 04       		.byte	0x4
- 24320 0fad 91       		.byte	0x91
- 24321 0fae F0B17F   		.sleb128 -10000
- 24322 0fb1 30       		.uleb128 0x30
- 24323 0fb2 00000000 		.long	.LASF347
-
GAS LISTING /tmp/ccjbMjHD.s 			page 701
-
-
- 24324 0fb6 02       		.byte	0x2
- 24325 0fb7 C506     		.value	0x6c5
- 24326 0fb9 B3010000 		.long	0x1b3
- 24327 0fbd 04       		.byte	0x4
- 24328 0fbe 91       		.byte	0x91
- 24329 0fbf 80B27F   		.sleb128 -9984
- 24330 0fc2 31       		.uleb128 0x31
- 24331 0fc3 AD0B0000 		.long	0xbad
- 24332 0fc7 00000000 		.quad	.LBB684
- 24332      00000000 
- 24333 0fcf 00000000 		.quad	.LBE684
- 24333      00000000 
- 24334 0fd7 02       		.byte	0x2
- 24335 0fd8 C706     		.value	0x6c7
- 24336 0fda 05100000 		.long	0x1005
- 24337 0fde 32       		.uleb128 0x32
- 24338 0fdf BE0B0000 		.long	0xbbe
- 24339 0fe3 04       		.byte	0x4
- 24340 0fe4 91       		.byte	0x91
- 24341 0fe5 90B27F   		.sleb128 -9968
- 24342 0fe8 33       		.uleb128 0x33
- 24343 0fe9 00000000 		.quad	.LBB685
- 24343      00000000 
- 24344 0ff1 00000000 		.quad	.LBE685
- 24344      00000000 
- 24345 0ff9 34       		.uleb128 0x34
- 24346 0ffa C90B0000 		.long	0xbc9
- 24347 0ffe 04       		.byte	0x4
- 24348 0fff 76       		.byte	0x76
- 24349 1000 80A97F   		.sleb128 -11136
- 24350 1003 00       		.byte	0x0
- 24351 1004 00       		.byte	0x0
- 24352 1005 31       		.uleb128 0x31
- 24353 1006 D50B0000 		.long	0xbd5
- 24354 100a 00000000 		.quad	.LBB686
- 24354      00000000 
- 24355 1012 00000000 		.quad	.LBE686
- 24355      00000000 
- 24356 101a 02       		.byte	0x2
- 24357 101b D006     		.value	0x6d0
- 24358 101d 18150000 		.long	0x1518
- 24359 1021 32       		.uleb128 0x32
- 24360 1022 F30B0000 		.long	0xbf3
- 24361 1026 04       		.byte	0x4
- 24362 1027 91       		.byte	0x91
- 24363 1028 9CB27F   		.sleb128 -9956
- 24364 102b 32       		.uleb128 0x32
- 24365 102c E70B0000 		.long	0xbe7
- 24366 1030 04       		.byte	0x4
- 24367 1031 91       		.byte	0x91
- 24368 1032 A0B27F   		.sleb128 -9952
- 24369 1035 33       		.uleb128 0x33
- 24370 1036 00000000 		.quad	.LBB687
- 24370      00000000 
- 24371 103e 00000000 		.quad	.LBE687
- 24371      00000000 
- 24372 1046 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 702
-
-
- 24373 1047 FF0B0000 		.long	0xbff
- 24374 104b 04       		.byte	0x4
- 24375 104c 76       		.byte	0x76
- 24376 104d A0A97F   		.sleb128 -11104
- 24377 1050 34       		.uleb128 0x34
- 24378 1051 0B0C0000 		.long	0xc0b
- 24379 1055 04       		.byte	0x4
- 24380 1056 76       		.byte	0x76
- 24381 1057 90A97F   		.sleb128 -11120
- 24382 105a 31       		.uleb128 0x31
- 24383 105b 540C0000 		.long	0xc54
- 24384 105f 00000000 		.quad	.LBB688
- 24384      00000000 
- 24385 1067 00000000 		.quad	.LBE688
- 24385      00000000 
- 24386 106f 02       		.byte	0x2
- 24387 1070 9106     		.value	0x691
- 24388 1072 CC100000 		.long	0x10cc
- 24389 1076 32       		.uleb128 0x32
- 24390 1077 7E0C0000 		.long	0xc7e
- 24391 107b 04       		.byte	0x4
- 24392 107c 91       		.byte	0x91
- 24393 107d B8B27F   		.sleb128 -9928
- 24394 1080 32       		.uleb128 0x32
- 24395 1081 720C0000 		.long	0xc72
- 24396 1085 04       		.byte	0x4
- 24397 1086 91       		.byte	0x91
- 24398 1087 BCB27F   		.sleb128 -9924
- 24399 108a 32       		.uleb128 0x32
- 24400 108b 660C0000 		.long	0xc66
- 24401 108f 04       		.byte	0x4
- 24402 1090 91       		.byte	0x91
- 24403 1091 C0B27F   		.sleb128 -9920
- 24404 1094 35       		.uleb128 0x35
- 24405 1095 8B0C0000 		.long	0xc8b
- 24406 1099 00000000 		.quad	.LBB690
- 24406      00000000 
- 24407 10a1 00000000 		.quad	.LBE690
- 24407      00000000 
- 24408 10a9 02       		.byte	0x2
- 24409 10aa 0702     		.value	0x207
- 24410 10ac 32       		.uleb128 0x32
- 24411 10ad B40C0000 		.long	0xcb4
- 24412 10b1 04       		.byte	0x4
- 24413 10b2 91       		.byte	0x91
- 24414 10b3 D8B27F   		.sleb128 -9896
- 24415 10b6 32       		.uleb128 0x32
- 24416 10b7 A90C0000 		.long	0xca9
- 24417 10bb 04       		.byte	0x4
- 24418 10bc 91       		.byte	0x91
- 24419 10bd DCB27F   		.sleb128 -9892
- 24420 10c0 32       		.uleb128 0x32
- 24421 10c1 9D0C0000 		.long	0xc9d
- 24422 10c5 04       		.byte	0x4
- 24423 10c6 91       		.byte	0x91
- 24424 10c7 E0B27F   		.sleb128 -9888
- 24425 10ca 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 703
-
-
- 24426 10cb 00       		.byte	0x0
- 24427 10cc 31       		.uleb128 0x31
- 24428 10cd C10C0000 		.long	0xcc1
- 24429 10d1 00000000 		.quad	.LBB692
- 24429      00000000 
- 24430 10d9 00000000 		.quad	.LBE692
- 24430      00000000 
- 24431 10e1 02       		.byte	0x2
- 24432 10e2 9206     		.value	0x692
- 24433 10e4 73130000 		.long	0x1373
- 24434 10e8 32       		.uleb128 0x32
- 24435 10e9 D30C0000 		.long	0xcd3
- 24436 10ed 04       		.byte	0x4
- 24437 10ee 91       		.byte	0x91
- 24438 10ef F0B27F   		.sleb128 -9872
- 24439 10f2 35       		.uleb128 0x35
- 24440 10f3 E00C0000 		.long	0xce0
- 24441 10f7 00000000 		.quad	.LBB694
- 24441      00000000 
- 24442 10ff 00000000 		.quad	.LBE694
- 24442      00000000 
- 24443 1107 02       		.byte	0x2
- 24444 1108 7D03     		.value	0x37d
- 24445 110a 32       		.uleb128 0x32
- 24446 110b FE0C0000 		.long	0xcfe
- 24447 110f 04       		.byte	0x4
- 24448 1110 91       		.byte	0x91
- 24449 1111 88B37F   		.sleb128 -9848
- 24450 1114 32       		.uleb128 0x32
- 24451 1115 F20C0000 		.long	0xcf2
- 24452 1119 04       		.byte	0x4
- 24453 111a 91       		.byte	0x91
- 24454 111b 90B37F   		.sleb128 -9840
- 24455 111e 33       		.uleb128 0x33
- 24456 111f 00000000 		.quad	.LBB695
- 24456      00000000 
- 24457 1127 00000000 		.quad	.LBE695
- 24457      00000000 
- 24458 112f 34       		.uleb128 0x34
- 24459 1130 0A0D0000 		.long	0xd0a
- 24460 1134 04       		.byte	0x4
- 24461 1135 91       		.byte	0x91
- 24462 1136 E0B37F   		.sleb128 -9760
- 24463 1139 34       		.uleb128 0x34
- 24464 113a 150D0000 		.long	0xd15
- 24465 113e 04       		.byte	0x4
- 24466 113f 91       		.byte	0x91
- 24467 1140 D0B37F   		.sleb128 -9776
- 24468 1143 34       		.uleb128 0x34
- 24469 1144 200D0000 		.long	0xd20
- 24470 1148 04       		.byte	0x4
- 24471 1149 91       		.byte	0x91
- 24472 114a C0B37F   		.sleb128 -9792
- 24473 114d 34       		.uleb128 0x34
- 24474 114e 2C0D0000 		.long	0xd2c
- 24475 1152 04       		.byte	0x4
- 24476 1153 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 704
-
-
- 24477 1154 B0B37F   		.sleb128 -9808
- 24478 1157 34       		.uleb128 0x34
- 24479 1158 380D0000 		.long	0xd38
- 24480 115c 04       		.byte	0x4
- 24481 115d 91       		.byte	0x91
- 24482 115e ACB37F   		.sleb128 -9812
- 24483 1161 31       		.uleb128 0x31
- 24484 1162 4F0D0000 		.long	0xd4f
- 24485 1166 00000000 		.quad	.LBB696
- 24485      00000000 
- 24486 116e 00000000 		.quad	.LBE696
- 24486      00000000 
- 24487 1176 02       		.byte	0x2
- 24488 1177 5603     		.value	0x356
- 24489 1179 92110000 		.long	0x1192
- 24490 117d 32       		.uleb128 0x32
- 24491 117e 6A0D0000 		.long	0xd6a
- 24492 1182 04       		.byte	0x4
- 24493 1183 91       		.byte	0x91
- 24494 1184 F0B37F   		.sleb128 -9744
- 24495 1187 32       		.uleb128 0x32
- 24496 1188 600D0000 		.long	0xd60
- 24497 118c 04       		.byte	0x4
- 24498 118d 91       		.byte	0x91
- 24499 118e 80B47F   		.sleb128 -9728
- 24500 1191 00       		.byte	0x0
- 24501 1192 31       		.uleb128 0x31
- 24502 1193 750D0000 		.long	0xd75
- 24503 1197 00000000 		.quad	.LBB698
- 24503      00000000 
- 24504 119f 00000000 		.quad	.LBE698
- 24504      00000000 
- 24505 11a7 02       		.byte	0x2
- 24506 11a8 5903     		.value	0x359
- 24507 11aa C3110000 		.long	0x11c3
- 24508 11ae 32       		.uleb128 0x32
- 24509 11af 930D0000 		.long	0xd93
- 24510 11b3 04       		.byte	0x4
- 24511 11b4 91       		.byte	0x91
- 24512 11b5 9CB47F   		.sleb128 -9700
- 24513 11b8 32       		.uleb128 0x32
- 24514 11b9 870D0000 		.long	0xd87
- 24515 11bd 04       		.byte	0x4
- 24516 11be 91       		.byte	0x91
- 24517 11bf A0B47F   		.sleb128 -9696
- 24518 11c2 00       		.byte	0x0
- 24519 11c3 31       		.uleb128 0x31
- 24520 11c4 4F0D0000 		.long	0xd4f
- 24521 11c8 00000000 		.quad	.LBB700
- 24521      00000000 
- 24522 11d0 00000000 		.quad	.LBE700
- 24522      00000000 
- 24523 11d8 02       		.byte	0x2
- 24524 11d9 5B03     		.value	0x35b
- 24525 11db F4110000 		.long	0x11f4
- 24526 11df 32       		.uleb128 0x32
- 24527 11e0 6A0D0000 		.long	0xd6a
-
GAS LISTING /tmp/ccjbMjHD.s 			page 705
-
-
- 24528 11e4 04       		.byte	0x4
- 24529 11e5 91       		.byte	0x91
- 24530 11e6 B0B47F   		.sleb128 -9680
- 24531 11e9 32       		.uleb128 0x32
- 24532 11ea 600D0000 		.long	0xd60
- 24533 11ee 04       		.byte	0x4
- 24534 11ef 91       		.byte	0x91
- 24535 11f0 C0B47F   		.sleb128 -9664
- 24536 11f3 00       		.byte	0x0
- 24537 11f4 31       		.uleb128 0x31
- 24538 11f5 A00D0000 		.long	0xda0
- 24539 11f9 00000000 		.quad	.LBB702
- 24539      00000000 
- 24540 1201 00000000 		.quad	.LBE702
- 24540      00000000 
- 24541 1209 02       		.byte	0x2
- 24542 120a 6403     		.value	0x364
- 24543 120c 52120000 		.long	0x1252
- 24544 1210 32       		.uleb128 0x32
- 24545 1211 BE0D0000 		.long	0xdbe
- 24546 1215 04       		.byte	0x4
- 24547 1216 91       		.byte	0x91
- 24548 1217 D0B47F   		.sleb128 -9648
- 24549 121a 32       		.uleb128 0x32
- 24550 121b B20D0000 		.long	0xdb2
- 24551 121f 04       		.byte	0x4
- 24552 1220 91       		.byte	0x91
- 24553 1221 E0B47F   		.sleb128 -9632
- 24554 1224 35       		.uleb128 0x35
- 24555 1225 CB0D0000 		.long	0xdcb
- 24556 1229 00000000 		.quad	.LBB704
- 24556      00000000 
- 24557 1231 00000000 		.quad	.LBE704
- 24557      00000000 
- 24558 1239 02       		.byte	0x2
- 24559 123a 7501     		.value	0x175
- 24560 123c 32       		.uleb128 0x32
- 24561 123d E90D0000 		.long	0xde9
- 24562 1241 04       		.byte	0x4
- 24563 1242 91       		.byte	0x91
- 24564 1243 F0B47F   		.sleb128 -9616
- 24565 1246 32       		.uleb128 0x32
- 24566 1247 DD0D0000 		.long	0xddd
- 24567 124b 04       		.byte	0x4
- 24568 124c 91       		.byte	0x91
- 24569 124d 80B57F   		.sleb128 -9600
- 24570 1250 00       		.byte	0x0
- 24571 1251 00       		.byte	0x0
- 24572 1252 31       		.uleb128 0x31
- 24573 1253 FB0D0000 		.long	0xdfb
- 24574 1257 00000000 		.quad	.LBB706
- 24574      00000000 
- 24575 125f 00000000 		.quad	.LBE706
- 24575      00000000 
- 24576 1267 02       		.byte	0x2
- 24577 1268 6603     		.value	0x366
- 24578 126a 83120000 		.long	0x1283
-
GAS LISTING /tmp/ccjbMjHD.s 			page 706
-
-
- 24579 126e 32       		.uleb128 0x32
- 24580 126f 160E0000 		.long	0xe16
- 24581 1273 04       		.byte	0x4
- 24582 1274 91       		.byte	0x91
- 24583 1275 90B57F   		.sleb128 -9584
- 24584 1278 32       		.uleb128 0x32
- 24585 1279 0C0E0000 		.long	0xe0c
- 24586 127d 04       		.byte	0x4
- 24587 127e 91       		.byte	0x91
- 24588 127f A0B57F   		.sleb128 -9568
- 24589 1282 00       		.byte	0x0
- 24590 1283 31       		.uleb128 0x31
- 24591 1284 A00D0000 		.long	0xda0
- 24592 1288 00000000 		.quad	.LBB708
- 24592      00000000 
- 24593 1290 00000000 		.quad	.LBE708
- 24593      00000000 
- 24594 1298 02       		.byte	0x2
- 24595 1299 6803     		.value	0x368
- 24596 129b E1120000 		.long	0x12e1
- 24597 129f 32       		.uleb128 0x32
- 24598 12a0 BE0D0000 		.long	0xdbe
- 24599 12a4 04       		.byte	0x4
- 24600 12a5 91       		.byte	0x91
- 24601 12a6 B0B57F   		.sleb128 -9552
- 24602 12a9 32       		.uleb128 0x32
- 24603 12aa B20D0000 		.long	0xdb2
- 24604 12ae 04       		.byte	0x4
- 24605 12af 91       		.byte	0x91
- 24606 12b0 C0B57F   		.sleb128 -9536
- 24607 12b3 35       		.uleb128 0x35
- 24608 12b4 CB0D0000 		.long	0xdcb
- 24609 12b8 00000000 		.quad	.LBB710
- 24609      00000000 
- 24610 12c0 00000000 		.quad	.LBE710
- 24610      00000000 
- 24611 12c8 02       		.byte	0x2
- 24612 12c9 7501     		.value	0x175
- 24613 12cb 32       		.uleb128 0x32
- 24614 12cc E90D0000 		.long	0xde9
- 24615 12d0 04       		.byte	0x4
- 24616 12d1 91       		.byte	0x91
- 24617 12d2 D0B57F   		.sleb128 -9520
- 24618 12d5 32       		.uleb128 0x32
- 24619 12d6 DD0D0000 		.long	0xddd
- 24620 12da 04       		.byte	0x4
- 24621 12db 91       		.byte	0x91
- 24622 12dc E0B57F   		.sleb128 -9504
- 24623 12df 00       		.byte	0x0
- 24624 12e0 00       		.byte	0x0
- 24625 12e1 31       		.uleb128 0x31
- 24626 12e2 FB0D0000 		.long	0xdfb
- 24627 12e6 00000000 		.quad	.LBB712
- 24627      00000000 
- 24628 12ee 00000000 		.quad	.LBE712
- 24628      00000000 
- 24629 12f6 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 707
-
-
- 24630 12f7 6A03     		.value	0x36a
- 24631 12f9 12130000 		.long	0x1312
- 24632 12fd 32       		.uleb128 0x32
- 24633 12fe 160E0000 		.long	0xe16
- 24634 1302 04       		.byte	0x4
- 24635 1303 91       		.byte	0x91
- 24636 1304 F0B57F   		.sleb128 -9488
- 24637 1307 32       		.uleb128 0x32
- 24638 1308 0C0E0000 		.long	0xe0c
- 24639 130c 04       		.byte	0x4
- 24640 130d 91       		.byte	0x91
- 24641 130e 80B67F   		.sleb128 -9472
- 24642 1311 00       		.byte	0x0
- 24643 1312 31       		.uleb128 0x31
- 24644 1313 210E0000 		.long	0xe21
- 24645 1317 00000000 		.quad	.LBB714
- 24645      00000000 
- 24646 131f 00000000 		.quad	.LBE714
- 24646      00000000 
- 24647 1327 02       		.byte	0x2
- 24648 1328 6C03     		.value	0x36c
- 24649 132a 43130000 		.long	0x1343
- 24650 132e 32       		.uleb128 0x32
- 24651 132f 3E0E0000 		.long	0xe3e
- 24652 1333 04       		.byte	0x4
- 24653 1334 91       		.byte	0x91
- 24654 1335 90B67F   		.sleb128 -9456
- 24655 1338 32       		.uleb128 0x32
- 24656 1339 330E0000 		.long	0xe33
- 24657 133d 04       		.byte	0x4
- 24658 133e 91       		.byte	0x91
- 24659 133f A0B67F   		.sleb128 -9440
- 24660 1342 00       		.byte	0x0
- 24661 1343 35       		.uleb128 0x35
- 24662 1344 4F0D0000 		.long	0xd4f
- 24663 1348 00000000 		.quad	.LBB716
- 24663      00000000 
- 24664 1350 00000000 		.quad	.LBE716
- 24664      00000000 
- 24665 1358 02       		.byte	0x2
- 24666 1359 6E03     		.value	0x36e
- 24667 135b 32       		.uleb128 0x32
- 24668 135c 6A0D0000 		.long	0xd6a
- 24669 1360 04       		.byte	0x4
- 24670 1361 91       		.byte	0x91
- 24671 1362 B0B67F   		.sleb128 -9424
- 24672 1365 32       		.uleb128 0x32
- 24673 1366 600D0000 		.long	0xd60
- 24674 136a 04       		.byte	0x4
- 24675 136b 91       		.byte	0x91
- 24676 136c C0B67F   		.sleb128 -9408
- 24677 136f 00       		.byte	0x0
- 24678 1370 00       		.byte	0x0
- 24679 1371 00       		.byte	0x0
- 24680 1372 00       		.byte	0x0
- 24681 1373 36       		.uleb128 0x36
- 24682 1374 00000000 		.quad	.LBB718
-
GAS LISTING /tmp/ccjbMjHD.s 			page 708
-
-
- 24682      00000000 
- 24683 137c 00000000 		.quad	.LBE718
- 24683      00000000 
- 24684 1384 93130000 		.long	0x1393
- 24685 1388 34       		.uleb128 0x34
- 24686 1389 1C0C0000 		.long	0xc1c
- 24687 138d 04       		.byte	0x4
- 24688 138e 91       		.byte	0x91
- 24689 138f A0AD7F   		.sleb128 -10592
- 24690 1392 00       		.byte	0x0
- 24691 1393 31       		.uleb128 0x31
- 24692 1394 4A0E0000 		.long	0xe4a
- 24693 1398 00000000 		.quad	.LBB719
- 24693      00000000 
- 24694 13a0 00000000 		.quad	.LBE719
- 24694      00000000 
- 24695 13a8 02       		.byte	0x2
- 24696 13a9 9406     		.value	0x694
- 24697 13ab 35140000 		.long	0x1435
- 24698 13af 32       		.uleb128 0x32
- 24699 13b0 5C0E0000 		.long	0xe5c
- 24700 13b4 04       		.byte	0x4
- 24701 13b5 91       		.byte	0x91
- 24702 13b6 D0B67F   		.sleb128 -9392
- 24703 13b9 33       		.uleb128 0x33
- 24704 13ba 00000000 		.quad	.LBB720
- 24704      00000000 
- 24705 13c2 00000000 		.quad	.LBE720
- 24705      00000000 
- 24706 13ca 34       		.uleb128 0x34
- 24707 13cb 680E0000 		.long	0xe68
- 24708 13cf 09       		.byte	0x9
- 24709 13d0 03       		.byte	0x3
- 24710 13d1 00000000 		.quad	ShiftRowTable.7385
- 24710      00000000 
- 24711 13d9 35       		.uleb128 0x35
- 24712 13da A00D0000 		.long	0xda0
- 24713 13de 00000000 		.quad	.LBB721
- 24713      00000000 
- 24714 13e6 00000000 		.quad	.LBE721
- 24714      00000000 
- 24715 13ee 02       		.byte	0x2
- 24716 13ef 9B02     		.value	0x29b
- 24717 13f1 32       		.uleb128 0x32
- 24718 13f2 BE0D0000 		.long	0xdbe
- 24719 13f6 04       		.byte	0x4
- 24720 13f7 91       		.byte	0x91
- 24721 13f8 E0B67F   		.sleb128 -9376
- 24722 13fb 32       		.uleb128 0x32
- 24723 13fc B20D0000 		.long	0xdb2
- 24724 1400 04       		.byte	0x4
- 24725 1401 91       		.byte	0x91
- 24726 1402 F0B67F   		.sleb128 -9360
- 24727 1405 35       		.uleb128 0x35
- 24728 1406 CB0D0000 		.long	0xdcb
- 24729 140a 00000000 		.quad	.LBB723
- 24729      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 709
-
-
- 24730 1412 00000000 		.quad	.LBE723
- 24730      00000000 
- 24731 141a 02       		.byte	0x2
- 24732 141b 7501     		.value	0x175
- 24733 141d 32       		.uleb128 0x32
- 24734 141e E90D0000 		.long	0xde9
- 24735 1422 04       		.byte	0x4
- 24736 1423 91       		.byte	0x91
- 24737 1424 80B77F   		.sleb128 -9344
- 24738 1427 32       		.uleb128 0x32
- 24739 1428 DD0D0000 		.long	0xddd
- 24740 142c 04       		.byte	0x4
- 24741 142d 91       		.byte	0x91
- 24742 142e 90B77F   		.sleb128 -9328
- 24743 1431 00       		.byte	0x0
- 24744 1432 00       		.byte	0x0
- 24745 1433 00       		.byte	0x0
- 24746 1434 00       		.byte	0x0
- 24747 1435 36       		.uleb128 0x36
- 24748 1436 00000000 		.quad	.LBB725
- 24748      00000000 
- 24749 143e 00000000 		.quad	.LBE725
- 24749      00000000 
- 24750 1446 55140000 		.long	0x1455
- 24751 144a 34       		.uleb128 0x34
- 24752 144b 2C0C0000 		.long	0xc2c
- 24753 144f 04       		.byte	0x4
- 24754 1450 91       		.byte	0x91
- 24755 1451 90AD7F   		.sleb128 -10608
- 24756 1454 00       		.byte	0x0
- 24757 1455 31       		.uleb128 0x31
- 24758 1456 860E0000 		.long	0xe86
- 24759 145a 00000000 		.quad	.LBB726
- 24759      00000000 
- 24760 1462 00000000 		.quad	.LBE726
- 24760      00000000 
- 24761 146a 02       		.byte	0x2
- 24762 146b 9606     		.value	0x696
- 24763 146d 86140000 		.long	0x1486
- 24764 1471 32       		.uleb128 0x32
- 24765 1472 A10E0000 		.long	0xea1
- 24766 1476 04       		.byte	0x4
- 24767 1477 91       		.byte	0x91
- 24768 1478 A0B77F   		.sleb128 -9312
- 24769 147b 32       		.uleb128 0x32
- 24770 147c 970E0000 		.long	0xe97
- 24771 1480 04       		.byte	0x4
- 24772 1481 91       		.byte	0x91
- 24773 1482 B0B77F   		.sleb128 -9296
- 24774 1485 00       		.byte	0x0
- 24775 1486 36       		.uleb128 0x36
- 24776 1487 00000000 		.quad	.LBB728
- 24776      00000000 
- 24777 148f 00000000 		.quad	.LBE728
- 24777      00000000 
- 24778 1497 A6140000 		.long	0x14a6
- 24779 149b 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 710
-
-
- 24780 149c 3C0C0000 		.long	0xc3c
- 24781 14a0 04       		.byte	0x4
- 24782 14a1 91       		.byte	0x91
- 24783 14a2 80AD7F   		.sleb128 -10624
- 24784 14a5 00       		.byte	0x0
- 24785 14a6 31       		.uleb128 0x31
- 24786 14a7 AC0E0000 		.long	0xeac
- 24787 14ab 00000000 		.quad	.LBB729
- 24787      00000000 
- 24788 14b3 00000000 		.quad	.LBE729
- 24788      00000000 
- 24789 14bb 02       		.byte	0x2
- 24790 14bc 9806     		.value	0x698
- 24791 14be FA140000 		.long	0x14fa
- 24792 14c2 32       		.uleb128 0x32
- 24793 14c3 BE0E0000 		.long	0xebe
- 24794 14c7 04       		.byte	0x4
- 24795 14c8 91       		.byte	0x91
- 24796 14c9 C0B77F   		.sleb128 -9280
- 24797 14cc 35       		.uleb128 0x35
- 24798 14cd CB0E0000 		.long	0xecb
- 24799 14d1 00000000 		.quad	.LBB731
- 24799      00000000 
- 24800 14d9 00000000 		.quad	.LBE731
- 24800      00000000 
- 24801 14e1 02       		.byte	0x2
- 24802 14e2 4905     		.value	0x549
- 24803 14e4 32       		.uleb128 0x32
- 24804 14e5 E90E0000 		.long	0xee9
- 24805 14e9 04       		.byte	0x4
- 24806 14ea 91       		.byte	0x91
- 24807 14eb DCB77F   		.sleb128 -9252
- 24808 14ee 32       		.uleb128 0x32
- 24809 14ef DD0E0000 		.long	0xedd
- 24810 14f3 04       		.byte	0x4
- 24811 14f4 91       		.byte	0x91
- 24812 14f5 E0B77F   		.sleb128 -9248
- 24813 14f8 00       		.byte	0x0
- 24814 14f9 00       		.byte	0x0
- 24815 14fa 33       		.uleb128 0x33
- 24816 14fb 00000000 		.quad	.LBB733
- 24816      00000000 
- 24817 1503 00000000 		.quad	.LBE733
- 24817      00000000 
- 24818 150b 34       		.uleb128 0x34
- 24819 150c 480C0000 		.long	0xc48
- 24820 1510 04       		.byte	0x4
- 24821 1511 91       		.byte	0x91
- 24822 1512 F0AC7F   		.sleb128 -10640
- 24823 1515 00       		.byte	0x0
- 24824 1516 00       		.byte	0x0
- 24825 1517 00       		.byte	0x0
- 24826 1518 31       		.uleb128 0x31
- 24827 1519 F60E0000 		.long	0xef6
- 24828 151d 00000000 		.quad	.LBB734
- 24828      00000000 
- 24829 1525 00000000 		.quad	.LBE734
-
GAS LISTING /tmp/ccjbMjHD.s 			page 711
-
-
- 24829      00000000 
- 24830 152d 02       		.byte	0x2
- 24831 152e D006     		.value	0x6d0
- 24832 1530 3D170000 		.long	0x173d
- 24833 1534 32       		.uleb128 0x32
- 24834 1535 080F0000 		.long	0xf08
- 24835 1539 04       		.byte	0x4
- 24836 153a 91       		.byte	0x91
- 24837 153b F0B77F   		.sleb128 -9232
- 24838 153e 33       		.uleb128 0x33
- 24839 153f 00000000 		.quad	.LBB735
- 24839      00000000 
- 24840 1547 00000000 		.quad	.LBE735
- 24840      00000000 
- 24841 154f 34       		.uleb128 0x34
- 24842 1550 140F0000 		.long	0xf14
- 24843 1554 04       		.byte	0x4
- 24844 1555 76       		.byte	0x76
- 24845 1556 B0A97F   		.sleb128 -11088
- 24846 1559 31       		.uleb128 0x31
- 24847 155a 210F0000 		.long	0xf21
- 24848 155e 00000000 		.quad	.LBB736
- 24848      00000000 
- 24849 1566 00000000 		.quad	.LBE736
- 24849      00000000 
- 24850 156e 02       		.byte	0x2
- 24851 156f 1F06     		.value	0x61f
- 24852 1571 FB150000 		.long	0x15fb
- 24853 1575 32       		.uleb128 0x32
- 24854 1576 330F0000 		.long	0xf33
- 24855 157a 04       		.byte	0x4
- 24856 157b 91       		.byte	0x91
- 24857 157c 80B87F   		.sleb128 -9216
- 24858 157f 33       		.uleb128 0x33
- 24859 1580 00000000 		.quad	.LBB737
- 24859      00000000 
- 24860 1588 00000000 		.quad	.LBE737
- 24860      00000000 
- 24861 1590 34       		.uleb128 0x34
- 24862 1591 3F0F0000 		.long	0xf3f
- 24863 1595 09       		.byte	0x9
- 24864 1596 03       		.byte	0x3
- 24865 1597 00000000 		.quad	mask.7943
- 24865      00000000 
- 24866 159f 35       		.uleb128 0x35
- 24867 15a0 A00D0000 		.long	0xda0
- 24868 15a4 00000000 		.quad	.LBB738
- 24868      00000000 
- 24869 15ac 00000000 		.quad	.LBE738
- 24869      00000000 
- 24870 15b4 02       		.byte	0x2
- 24871 15b5 FE04     		.value	0x4fe
- 24872 15b7 32       		.uleb128 0x32
- 24873 15b8 BE0D0000 		.long	0xdbe
- 24874 15bc 04       		.byte	0x4
- 24875 15bd 91       		.byte	0x91
- 24876 15be 90B87F   		.sleb128 -9200
-
GAS LISTING /tmp/ccjbMjHD.s 			page 712
-
-
- 24877 15c1 32       		.uleb128 0x32
- 24878 15c2 B20D0000 		.long	0xdb2
- 24879 15c6 04       		.byte	0x4
- 24880 15c7 91       		.byte	0x91
- 24881 15c8 A0B87F   		.sleb128 -9184
- 24882 15cb 35       		.uleb128 0x35
- 24883 15cc CB0D0000 		.long	0xdcb
- 24884 15d0 00000000 		.quad	.LBB740
- 24884      00000000 
- 24885 15d8 00000000 		.quad	.LBE740
- 24885      00000000 
- 24886 15e0 02       		.byte	0x2
- 24887 15e1 7501     		.value	0x175
- 24888 15e3 32       		.uleb128 0x32
- 24889 15e4 E90D0000 		.long	0xde9
- 24890 15e8 04       		.byte	0x4
- 24891 15e9 91       		.byte	0x91
- 24892 15ea B0B87F   		.sleb128 -9168
- 24893 15ed 32       		.uleb128 0x32
- 24894 15ee DD0D0000 		.long	0xddd
- 24895 15f2 04       		.byte	0x4
- 24896 15f3 91       		.byte	0x91
- 24897 15f4 C0B87F   		.sleb128 -9152
- 24898 15f7 00       		.byte	0x0
- 24899 15f8 00       		.byte	0x0
- 24900 15f9 00       		.byte	0x0
- 24901 15fa 00       		.byte	0x0
- 24902 15fb 31       		.uleb128 0x31
- 24903 15fc 210F0000 		.long	0xf21
- 24904 1600 00000000 		.quad	.LBB742
- 24904      00000000 
- 24905 1608 00000000 		.quad	.LBE742
- 24905      00000000 
- 24906 1610 02       		.byte	0x2
- 24907 1611 2006     		.value	0x620
- 24908 1613 9D160000 		.long	0x169d
- 24909 1617 32       		.uleb128 0x32
- 24910 1618 330F0000 		.long	0xf33
- 24911 161c 04       		.byte	0x4
- 24912 161d 91       		.byte	0x91
- 24913 161e D0B87F   		.sleb128 -9136
- 24914 1621 33       		.uleb128 0x33
- 24915 1622 00000000 		.quad	.LBB743
- 24915      00000000 
- 24916 162a 00000000 		.quad	.LBE743
- 24916      00000000 
- 24917 1632 34       		.uleb128 0x34
- 24918 1633 3F0F0000 		.long	0xf3f
- 24919 1637 09       		.byte	0x9
- 24920 1638 03       		.byte	0x3
- 24921 1639 00000000 		.quad	mask.7943
- 24921      00000000 
- 24922 1641 35       		.uleb128 0x35
- 24923 1642 A00D0000 		.long	0xda0
- 24924 1646 00000000 		.quad	.LBB744
- 24924      00000000 
- 24925 164e 00000000 		.quad	.LBE744
-
GAS LISTING /tmp/ccjbMjHD.s 			page 713
-
-
- 24925      00000000 
- 24926 1656 02       		.byte	0x2
- 24927 1657 FE04     		.value	0x4fe
- 24928 1659 32       		.uleb128 0x32
- 24929 165a BE0D0000 		.long	0xdbe
- 24930 165e 04       		.byte	0x4
- 24931 165f 91       		.byte	0x91
- 24932 1660 E0B87F   		.sleb128 -9120
- 24933 1663 32       		.uleb128 0x32
- 24934 1664 B20D0000 		.long	0xdb2
- 24935 1668 04       		.byte	0x4
- 24936 1669 91       		.byte	0x91
- 24937 166a F0B87F   		.sleb128 -9104
- 24938 166d 35       		.uleb128 0x35
- 24939 166e CB0D0000 		.long	0xdcb
- 24940 1672 00000000 		.quad	.LBB746
- 24940      00000000 
- 24941 167a 00000000 		.quad	.LBE746
- 24941      00000000 
- 24942 1682 02       		.byte	0x2
- 24943 1683 7501     		.value	0x175
- 24944 1685 32       		.uleb128 0x32
- 24945 1686 E90D0000 		.long	0xde9
- 24946 168a 04       		.byte	0x4
- 24947 168b 91       		.byte	0x91
- 24948 168c 80B97F   		.sleb128 -9088
- 24949 168f 32       		.uleb128 0x32
- 24950 1690 DD0D0000 		.long	0xddd
- 24951 1694 04       		.byte	0x4
- 24952 1695 91       		.byte	0x91
- 24953 1696 90B97F   		.sleb128 -9072
- 24954 1699 00       		.byte	0x0
- 24955 169a 00       		.byte	0x0
- 24956 169b 00       		.byte	0x0
- 24957 169c 00       		.byte	0x0
- 24958 169d 35       		.uleb128 0x35
- 24959 169e 210F0000 		.long	0xf21
- 24960 16a2 00000000 		.quad	.LBB748
- 24960      00000000 
- 24961 16aa 00000000 		.quad	.LBE748
- 24961      00000000 
- 24962 16b2 02       		.byte	0x2
- 24963 16b3 2106     		.value	0x621
- 24964 16b5 32       		.uleb128 0x32
- 24965 16b6 330F0000 		.long	0xf33
- 24966 16ba 04       		.byte	0x4
- 24967 16bb 91       		.byte	0x91
- 24968 16bc A0B97F   		.sleb128 -9056
- 24969 16bf 33       		.uleb128 0x33
- 24970 16c0 00000000 		.quad	.LBB749
- 24970      00000000 
- 24971 16c8 00000000 		.quad	.LBE749
- 24971      00000000 
- 24972 16d0 34       		.uleb128 0x34
- 24973 16d1 3F0F0000 		.long	0xf3f
- 24974 16d5 09       		.byte	0x9
- 24975 16d6 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 714
-
-
- 24976 16d7 00000000 		.quad	mask.7943
- 24976      00000000 
- 24977 16df 35       		.uleb128 0x35
- 24978 16e0 A00D0000 		.long	0xda0
- 24979 16e4 00000000 		.quad	.LBB750
- 24979      00000000 
- 24980 16ec 00000000 		.quad	.LBE750
- 24980      00000000 
- 24981 16f4 02       		.byte	0x2
- 24982 16f5 FE04     		.value	0x4fe
- 24983 16f7 32       		.uleb128 0x32
- 24984 16f8 BE0D0000 		.long	0xdbe
- 24985 16fc 04       		.byte	0x4
- 24986 16fd 91       		.byte	0x91
- 24987 16fe B0B97F   		.sleb128 -9040
- 24988 1701 32       		.uleb128 0x32
- 24989 1702 B20D0000 		.long	0xdb2
- 24990 1706 04       		.byte	0x4
- 24991 1707 91       		.byte	0x91
- 24992 1708 C0B97F   		.sleb128 -9024
- 24993 170b 35       		.uleb128 0x35
- 24994 170c CB0D0000 		.long	0xdcb
- 24995 1710 00000000 		.quad	.LBB752
- 24995      00000000 
- 24996 1718 00000000 		.quad	.LBE752
- 24996      00000000 
- 24997 1720 02       		.byte	0x2
- 24998 1721 7501     		.value	0x175
- 24999 1723 32       		.uleb128 0x32
- 25000 1724 E90D0000 		.long	0xde9
- 25001 1728 04       		.byte	0x4
- 25002 1729 91       		.byte	0x91
- 25003 172a D0B97F   		.sleb128 -9008
- 25004 172d 32       		.uleb128 0x32
- 25005 172e DD0D0000 		.long	0xddd
- 25006 1732 04       		.byte	0x4
- 25007 1733 91       		.byte	0x91
- 25008 1734 E0B97F   		.sleb128 -8992
- 25009 1737 00       		.byte	0x0
- 25010 1738 00       		.byte	0x0
- 25011 1739 00       		.byte	0x0
- 25012 173a 00       		.byte	0x0
- 25013 173b 00       		.byte	0x0
- 25014 173c 00       		.byte	0x0
- 25015 173d 31       		.uleb128 0x31
- 25016 173e D50B0000 		.long	0xbd5
- 25017 1742 00000000 		.quad	.LBB754
- 25017      00000000 
- 25018 174a 00000000 		.quad	.LBE754
- 25018      00000000 
- 25019 1752 02       		.byte	0x2
- 25020 1753 D106     		.value	0x6d1
- 25021 1755 501C0000 		.long	0x1c50
- 25022 1759 32       		.uleb128 0x32
- 25023 175a F30B0000 		.long	0xbf3
- 25024 175e 04       		.byte	0x4
- 25025 175f 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 715
-
-
- 25026 1760 FCB97F   		.sleb128 -8964
- 25027 1763 32       		.uleb128 0x32
- 25028 1764 E70B0000 		.long	0xbe7
- 25029 1768 04       		.byte	0x4
- 25030 1769 91       		.byte	0x91
- 25031 176a 80BA7F   		.sleb128 -8960
- 25032 176d 33       		.uleb128 0x33
- 25033 176e 00000000 		.quad	.LBB755
- 25033      00000000 
- 25034 1776 00000000 		.quad	.LBE755
- 25034      00000000 
- 25035 177e 34       		.uleb128 0x34
- 25036 177f FF0B0000 		.long	0xbff
- 25037 1783 04       		.byte	0x4
- 25038 1784 76       		.byte	0x76
- 25039 1785 D0A97F   		.sleb128 -11056
- 25040 1788 34       		.uleb128 0x34
- 25041 1789 0B0C0000 		.long	0xc0b
- 25042 178d 04       		.byte	0x4
- 25043 178e 76       		.byte	0x76
- 25044 178f C0A97F   		.sleb128 -11072
- 25045 1792 31       		.uleb128 0x31
- 25046 1793 540C0000 		.long	0xc54
- 25047 1797 00000000 		.quad	.LBB756
- 25047      00000000 
- 25048 179f 00000000 		.quad	.LBE756
- 25048      00000000 
- 25049 17a7 02       		.byte	0x2
- 25050 17a8 9106     		.value	0x691
- 25051 17aa 04180000 		.long	0x1804
- 25052 17ae 32       		.uleb128 0x32
- 25053 17af 7E0C0000 		.long	0xc7e
- 25054 17b3 04       		.byte	0x4
- 25055 17b4 91       		.byte	0x91
- 25056 17b5 98BA7F   		.sleb128 -8936
- 25057 17b8 32       		.uleb128 0x32
- 25058 17b9 720C0000 		.long	0xc72
- 25059 17bd 04       		.byte	0x4
- 25060 17be 91       		.byte	0x91
- 25061 17bf 9CBA7F   		.sleb128 -8932
- 25062 17c2 32       		.uleb128 0x32
- 25063 17c3 660C0000 		.long	0xc66
- 25064 17c7 04       		.byte	0x4
- 25065 17c8 91       		.byte	0x91
- 25066 17c9 A0BA7F   		.sleb128 -8928
- 25067 17cc 35       		.uleb128 0x35
- 25068 17cd 8B0C0000 		.long	0xc8b
- 25069 17d1 00000000 		.quad	.LBB758
- 25069      00000000 
- 25070 17d9 00000000 		.quad	.LBE758
- 25070      00000000 
- 25071 17e1 02       		.byte	0x2
- 25072 17e2 0702     		.value	0x207
- 25073 17e4 32       		.uleb128 0x32
- 25074 17e5 B40C0000 		.long	0xcb4
- 25075 17e9 04       		.byte	0x4
- 25076 17ea 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 716
-
-
- 25077 17eb B8BA7F   		.sleb128 -8904
- 25078 17ee 32       		.uleb128 0x32
- 25079 17ef A90C0000 		.long	0xca9
- 25080 17f3 04       		.byte	0x4
- 25081 17f4 91       		.byte	0x91
- 25082 17f5 BCBA7F   		.sleb128 -8900
- 25083 17f8 32       		.uleb128 0x32
- 25084 17f9 9D0C0000 		.long	0xc9d
- 25085 17fd 04       		.byte	0x4
- 25086 17fe 91       		.byte	0x91
- 25087 17ff C0BA7F   		.sleb128 -8896
- 25088 1802 00       		.byte	0x0
- 25089 1803 00       		.byte	0x0
- 25090 1804 31       		.uleb128 0x31
- 25091 1805 C10C0000 		.long	0xcc1
- 25092 1809 00000000 		.quad	.LBB760
- 25092      00000000 
- 25093 1811 00000000 		.quad	.LBE760
- 25093      00000000 
- 25094 1819 02       		.byte	0x2
- 25095 181a 9206     		.value	0x692
- 25096 181c AB1A0000 		.long	0x1aab
- 25097 1820 32       		.uleb128 0x32
- 25098 1821 D30C0000 		.long	0xcd3
- 25099 1825 04       		.byte	0x4
- 25100 1826 91       		.byte	0x91
- 25101 1827 D0BA7F   		.sleb128 -8880
- 25102 182a 35       		.uleb128 0x35
- 25103 182b E00C0000 		.long	0xce0
- 25104 182f 00000000 		.quad	.LBB762
- 25104      00000000 
- 25105 1837 00000000 		.quad	.LBE762
- 25105      00000000 
- 25106 183f 02       		.byte	0x2
- 25107 1840 7D03     		.value	0x37d
- 25108 1842 32       		.uleb128 0x32
- 25109 1843 FE0C0000 		.long	0xcfe
- 25110 1847 04       		.byte	0x4
- 25111 1848 91       		.byte	0x91
- 25112 1849 E8BA7F   		.sleb128 -8856
- 25113 184c 32       		.uleb128 0x32
- 25114 184d F20C0000 		.long	0xcf2
- 25115 1851 04       		.byte	0x4
- 25116 1852 91       		.byte	0x91
- 25117 1853 F0BA7F   		.sleb128 -8848
- 25118 1856 33       		.uleb128 0x33
- 25119 1857 00000000 		.quad	.LBB763
- 25119      00000000 
- 25120 185f 00000000 		.quad	.LBE763
- 25120      00000000 
- 25121 1867 34       		.uleb128 0x34
- 25122 1868 0A0D0000 		.long	0xd0a
- 25123 186c 04       		.byte	0x4
- 25124 186d 91       		.byte	0x91
- 25125 186e C0BB7F   		.sleb128 -8768
- 25126 1871 34       		.uleb128 0x34
- 25127 1872 150D0000 		.long	0xd15
-
GAS LISTING /tmp/ccjbMjHD.s 			page 717
-
-
- 25128 1876 04       		.byte	0x4
- 25129 1877 91       		.byte	0x91
- 25130 1878 B0BB7F   		.sleb128 -8784
- 25131 187b 34       		.uleb128 0x34
- 25132 187c 200D0000 		.long	0xd20
- 25133 1880 04       		.byte	0x4
- 25134 1881 91       		.byte	0x91
- 25135 1882 A0BB7F   		.sleb128 -8800
- 25136 1885 34       		.uleb128 0x34
- 25137 1886 2C0D0000 		.long	0xd2c
- 25138 188a 04       		.byte	0x4
- 25139 188b 91       		.byte	0x91
- 25140 188c 90BB7F   		.sleb128 -8816
- 25141 188f 34       		.uleb128 0x34
- 25142 1890 380D0000 		.long	0xd38
- 25143 1894 04       		.byte	0x4
- 25144 1895 91       		.byte	0x91
- 25145 1896 8CBB7F   		.sleb128 -8820
- 25146 1899 31       		.uleb128 0x31
- 25147 189a 4F0D0000 		.long	0xd4f
- 25148 189e 00000000 		.quad	.LBB764
- 25148      00000000 
- 25149 18a6 00000000 		.quad	.LBE764
- 25149      00000000 
- 25150 18ae 02       		.byte	0x2
- 25151 18af 5603     		.value	0x356
- 25152 18b1 CA180000 		.long	0x18ca
- 25153 18b5 32       		.uleb128 0x32
- 25154 18b6 6A0D0000 		.long	0xd6a
- 25155 18ba 04       		.byte	0x4
- 25156 18bb 91       		.byte	0x91
- 25157 18bc D0BB7F   		.sleb128 -8752
- 25158 18bf 32       		.uleb128 0x32
- 25159 18c0 600D0000 		.long	0xd60
- 25160 18c4 04       		.byte	0x4
- 25161 18c5 91       		.byte	0x91
- 25162 18c6 E0BB7F   		.sleb128 -8736
- 25163 18c9 00       		.byte	0x0
- 25164 18ca 31       		.uleb128 0x31
- 25165 18cb 750D0000 		.long	0xd75
- 25166 18cf 00000000 		.quad	.LBB766
- 25166      00000000 
- 25167 18d7 00000000 		.quad	.LBE766
- 25167      00000000 
- 25168 18df 02       		.byte	0x2
- 25169 18e0 5903     		.value	0x359
- 25170 18e2 FB180000 		.long	0x18fb
- 25171 18e6 32       		.uleb128 0x32
- 25172 18e7 930D0000 		.long	0xd93
- 25173 18eb 04       		.byte	0x4
- 25174 18ec 91       		.byte	0x91
- 25175 18ed FCBB7F   		.sleb128 -8708
- 25176 18f0 32       		.uleb128 0x32
- 25177 18f1 870D0000 		.long	0xd87
- 25178 18f5 04       		.byte	0x4
- 25179 18f6 91       		.byte	0x91
- 25180 18f7 80BC7F   		.sleb128 -8704
-
GAS LISTING /tmp/ccjbMjHD.s 			page 718
-
-
- 25181 18fa 00       		.byte	0x0
- 25182 18fb 31       		.uleb128 0x31
- 25183 18fc 4F0D0000 		.long	0xd4f
- 25184 1900 00000000 		.quad	.LBB768
- 25184      00000000 
- 25185 1908 00000000 		.quad	.LBE768
- 25185      00000000 
- 25186 1910 02       		.byte	0x2
- 25187 1911 5B03     		.value	0x35b
- 25188 1913 2C190000 		.long	0x192c
- 25189 1917 32       		.uleb128 0x32
- 25190 1918 6A0D0000 		.long	0xd6a
- 25191 191c 04       		.byte	0x4
- 25192 191d 91       		.byte	0x91
- 25193 191e 90BC7F   		.sleb128 -8688
- 25194 1921 32       		.uleb128 0x32
- 25195 1922 600D0000 		.long	0xd60
- 25196 1926 04       		.byte	0x4
- 25197 1927 91       		.byte	0x91
- 25198 1928 A0BC7F   		.sleb128 -8672
- 25199 192b 00       		.byte	0x0
- 25200 192c 31       		.uleb128 0x31
- 25201 192d A00D0000 		.long	0xda0
- 25202 1931 00000000 		.quad	.LBB770
- 25202      00000000 
- 25203 1939 00000000 		.quad	.LBE770
- 25203      00000000 
- 25204 1941 02       		.byte	0x2
- 25205 1942 6403     		.value	0x364
- 25206 1944 8A190000 		.long	0x198a
- 25207 1948 32       		.uleb128 0x32
- 25208 1949 BE0D0000 		.long	0xdbe
- 25209 194d 04       		.byte	0x4
- 25210 194e 91       		.byte	0x91
- 25211 194f B0BC7F   		.sleb128 -8656
- 25212 1952 32       		.uleb128 0x32
- 25213 1953 B20D0000 		.long	0xdb2
- 25214 1957 04       		.byte	0x4
- 25215 1958 91       		.byte	0x91
- 25216 1959 C0BC7F   		.sleb128 -8640
- 25217 195c 35       		.uleb128 0x35
- 25218 195d CB0D0000 		.long	0xdcb
- 25219 1961 00000000 		.quad	.LBB772
- 25219      00000000 
- 25220 1969 00000000 		.quad	.LBE772
- 25220      00000000 
- 25221 1971 02       		.byte	0x2
- 25222 1972 7501     		.value	0x175
- 25223 1974 32       		.uleb128 0x32
- 25224 1975 E90D0000 		.long	0xde9
- 25225 1979 04       		.byte	0x4
- 25226 197a 91       		.byte	0x91
- 25227 197b D0BC7F   		.sleb128 -8624
- 25228 197e 32       		.uleb128 0x32
- 25229 197f DD0D0000 		.long	0xddd
- 25230 1983 04       		.byte	0x4
- 25231 1984 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 719
-
-
- 25232 1985 E0BC7F   		.sleb128 -8608
- 25233 1988 00       		.byte	0x0
- 25234 1989 00       		.byte	0x0
- 25235 198a 31       		.uleb128 0x31
- 25236 198b FB0D0000 		.long	0xdfb
- 25237 198f 00000000 		.quad	.LBB774
- 25237      00000000 
- 25238 1997 00000000 		.quad	.LBE774
- 25238      00000000 
- 25239 199f 02       		.byte	0x2
- 25240 19a0 6603     		.value	0x366
- 25241 19a2 BB190000 		.long	0x19bb
- 25242 19a6 32       		.uleb128 0x32
- 25243 19a7 160E0000 		.long	0xe16
- 25244 19ab 04       		.byte	0x4
- 25245 19ac 91       		.byte	0x91
- 25246 19ad F0BC7F   		.sleb128 -8592
- 25247 19b0 32       		.uleb128 0x32
- 25248 19b1 0C0E0000 		.long	0xe0c
- 25249 19b5 04       		.byte	0x4
- 25250 19b6 91       		.byte	0x91
- 25251 19b7 80BD7F   		.sleb128 -8576
- 25252 19ba 00       		.byte	0x0
- 25253 19bb 31       		.uleb128 0x31
- 25254 19bc A00D0000 		.long	0xda0
- 25255 19c0 00000000 		.quad	.LBB776
- 25255      00000000 
- 25256 19c8 00000000 		.quad	.LBE776
- 25256      00000000 
- 25257 19d0 02       		.byte	0x2
- 25258 19d1 6803     		.value	0x368
- 25259 19d3 191A0000 		.long	0x1a19
- 25260 19d7 32       		.uleb128 0x32
- 25261 19d8 BE0D0000 		.long	0xdbe
- 25262 19dc 04       		.byte	0x4
- 25263 19dd 91       		.byte	0x91
- 25264 19de 90BD7F   		.sleb128 -8560
- 25265 19e1 32       		.uleb128 0x32
- 25266 19e2 B20D0000 		.long	0xdb2
- 25267 19e6 04       		.byte	0x4
- 25268 19e7 91       		.byte	0x91
- 25269 19e8 A0BD7F   		.sleb128 -8544
- 25270 19eb 35       		.uleb128 0x35
- 25271 19ec CB0D0000 		.long	0xdcb
- 25272 19f0 00000000 		.quad	.LBB778
- 25272      00000000 
- 25273 19f8 00000000 		.quad	.LBE778
- 25273      00000000 
- 25274 1a00 02       		.byte	0x2
- 25275 1a01 7501     		.value	0x175
- 25276 1a03 32       		.uleb128 0x32
- 25277 1a04 E90D0000 		.long	0xde9
- 25278 1a08 04       		.byte	0x4
- 25279 1a09 91       		.byte	0x91
- 25280 1a0a B0BD7F   		.sleb128 -8528
- 25281 1a0d 32       		.uleb128 0x32
- 25282 1a0e DD0D0000 		.long	0xddd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 720
-
-
- 25283 1a12 04       		.byte	0x4
- 25284 1a13 91       		.byte	0x91
- 25285 1a14 C0BD7F   		.sleb128 -8512
- 25286 1a17 00       		.byte	0x0
- 25287 1a18 00       		.byte	0x0
- 25288 1a19 31       		.uleb128 0x31
- 25289 1a1a FB0D0000 		.long	0xdfb
- 25290 1a1e 00000000 		.quad	.LBB780
- 25290      00000000 
- 25291 1a26 00000000 		.quad	.LBE780
- 25291      00000000 
- 25292 1a2e 02       		.byte	0x2
- 25293 1a2f 6A03     		.value	0x36a
- 25294 1a31 4A1A0000 		.long	0x1a4a
- 25295 1a35 32       		.uleb128 0x32
- 25296 1a36 160E0000 		.long	0xe16
- 25297 1a3a 04       		.byte	0x4
- 25298 1a3b 91       		.byte	0x91
- 25299 1a3c D0BD7F   		.sleb128 -8496
- 25300 1a3f 32       		.uleb128 0x32
- 25301 1a40 0C0E0000 		.long	0xe0c
- 25302 1a44 04       		.byte	0x4
- 25303 1a45 91       		.byte	0x91
- 25304 1a46 E0BD7F   		.sleb128 -8480
- 25305 1a49 00       		.byte	0x0
- 25306 1a4a 31       		.uleb128 0x31
- 25307 1a4b 210E0000 		.long	0xe21
- 25308 1a4f 00000000 		.quad	.LBB782
- 25308      00000000 
- 25309 1a57 00000000 		.quad	.LBE782
- 25309      00000000 
- 25310 1a5f 02       		.byte	0x2
- 25311 1a60 6C03     		.value	0x36c
- 25312 1a62 7B1A0000 		.long	0x1a7b
- 25313 1a66 32       		.uleb128 0x32
- 25314 1a67 3E0E0000 		.long	0xe3e
- 25315 1a6b 04       		.byte	0x4
- 25316 1a6c 91       		.byte	0x91
- 25317 1a6d F0BD7F   		.sleb128 -8464
- 25318 1a70 32       		.uleb128 0x32
- 25319 1a71 330E0000 		.long	0xe33
- 25320 1a75 04       		.byte	0x4
- 25321 1a76 91       		.byte	0x91
- 25322 1a77 80BE7F   		.sleb128 -8448
- 25323 1a7a 00       		.byte	0x0
- 25324 1a7b 35       		.uleb128 0x35
- 25325 1a7c 4F0D0000 		.long	0xd4f
- 25326 1a80 00000000 		.quad	.LBB784
- 25326      00000000 
- 25327 1a88 00000000 		.quad	.LBE784
- 25327      00000000 
- 25328 1a90 02       		.byte	0x2
- 25329 1a91 6E03     		.value	0x36e
- 25330 1a93 32       		.uleb128 0x32
- 25331 1a94 6A0D0000 		.long	0xd6a
- 25332 1a98 04       		.byte	0x4
- 25333 1a99 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 721
-
-
- 25334 1a9a 90BE7F   		.sleb128 -8432
- 25335 1a9d 32       		.uleb128 0x32
- 25336 1a9e 600D0000 		.long	0xd60
- 25337 1aa2 04       		.byte	0x4
- 25338 1aa3 91       		.byte	0x91
- 25339 1aa4 A0BE7F   		.sleb128 -8416
- 25340 1aa7 00       		.byte	0x0
- 25341 1aa8 00       		.byte	0x0
- 25342 1aa9 00       		.byte	0x0
- 25343 1aaa 00       		.byte	0x0
- 25344 1aab 36       		.uleb128 0x36
- 25345 1aac 00000000 		.quad	.LBB786
- 25345      00000000 
- 25346 1ab4 00000000 		.quad	.LBE786
- 25346      00000000 
- 25347 1abc CB1A0000 		.long	0x1acb
- 25348 1ac0 34       		.uleb128 0x34
- 25349 1ac1 1C0C0000 		.long	0xc1c
- 25350 1ac5 04       		.byte	0x4
- 25351 1ac6 91       		.byte	0x91
- 25352 1ac7 E0AD7F   		.sleb128 -10528
- 25353 1aca 00       		.byte	0x0
- 25354 1acb 31       		.uleb128 0x31
- 25355 1acc 4A0E0000 		.long	0xe4a
- 25356 1ad0 00000000 		.quad	.LBB787
- 25356      00000000 
- 25357 1ad8 00000000 		.quad	.LBE787
- 25357      00000000 
- 25358 1ae0 02       		.byte	0x2
- 25359 1ae1 9406     		.value	0x694
- 25360 1ae3 6D1B0000 		.long	0x1b6d
- 25361 1ae7 32       		.uleb128 0x32
- 25362 1ae8 5C0E0000 		.long	0xe5c
- 25363 1aec 04       		.byte	0x4
- 25364 1aed 91       		.byte	0x91
- 25365 1aee B0BE7F   		.sleb128 -8400
- 25366 1af1 33       		.uleb128 0x33
- 25367 1af2 00000000 		.quad	.LBB788
- 25367      00000000 
- 25368 1afa 00000000 		.quad	.LBE788
- 25368      00000000 
- 25369 1b02 34       		.uleb128 0x34
- 25370 1b03 680E0000 		.long	0xe68
- 25371 1b07 09       		.byte	0x9
- 25372 1b08 03       		.byte	0x3
- 25373 1b09 00000000 		.quad	ShiftRowTable.7385
- 25373      00000000 
- 25374 1b11 35       		.uleb128 0x35
- 25375 1b12 A00D0000 		.long	0xda0
- 25376 1b16 00000000 		.quad	.LBB789
- 25376      00000000 
- 25377 1b1e 00000000 		.quad	.LBE789
- 25377      00000000 
- 25378 1b26 02       		.byte	0x2
- 25379 1b27 9B02     		.value	0x29b
- 25380 1b29 32       		.uleb128 0x32
- 25381 1b2a BE0D0000 		.long	0xdbe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 722
-
-
- 25382 1b2e 04       		.byte	0x4
- 25383 1b2f 91       		.byte	0x91
- 25384 1b30 C0BE7F   		.sleb128 -8384
- 25385 1b33 32       		.uleb128 0x32
- 25386 1b34 B20D0000 		.long	0xdb2
- 25387 1b38 04       		.byte	0x4
- 25388 1b39 91       		.byte	0x91
- 25389 1b3a D0BE7F   		.sleb128 -8368
- 25390 1b3d 35       		.uleb128 0x35
- 25391 1b3e CB0D0000 		.long	0xdcb
- 25392 1b42 00000000 		.quad	.LBB791
- 25392      00000000 
- 25393 1b4a 00000000 		.quad	.LBE791
- 25393      00000000 
- 25394 1b52 02       		.byte	0x2
- 25395 1b53 7501     		.value	0x175
- 25396 1b55 32       		.uleb128 0x32
- 25397 1b56 E90D0000 		.long	0xde9
- 25398 1b5a 04       		.byte	0x4
- 25399 1b5b 91       		.byte	0x91
- 25400 1b5c E0BE7F   		.sleb128 -8352
- 25401 1b5f 32       		.uleb128 0x32
- 25402 1b60 DD0D0000 		.long	0xddd
- 25403 1b64 04       		.byte	0x4
- 25404 1b65 91       		.byte	0x91
- 25405 1b66 F0BE7F   		.sleb128 -8336
- 25406 1b69 00       		.byte	0x0
- 25407 1b6a 00       		.byte	0x0
- 25408 1b6b 00       		.byte	0x0
- 25409 1b6c 00       		.byte	0x0
- 25410 1b6d 36       		.uleb128 0x36
- 25411 1b6e 00000000 		.quad	.LBB793
- 25411      00000000 
- 25412 1b76 00000000 		.quad	.LBE793
- 25412      00000000 
- 25413 1b7e 8D1B0000 		.long	0x1b8d
- 25414 1b82 34       		.uleb128 0x34
- 25415 1b83 2C0C0000 		.long	0xc2c
- 25416 1b87 04       		.byte	0x4
- 25417 1b88 91       		.byte	0x91
- 25418 1b89 D0AD7F   		.sleb128 -10544
- 25419 1b8c 00       		.byte	0x0
- 25420 1b8d 31       		.uleb128 0x31
- 25421 1b8e 860E0000 		.long	0xe86
- 25422 1b92 00000000 		.quad	.LBB794
- 25422      00000000 
- 25423 1b9a 00000000 		.quad	.LBE794
- 25423      00000000 
- 25424 1ba2 02       		.byte	0x2
- 25425 1ba3 9606     		.value	0x696
- 25426 1ba5 BE1B0000 		.long	0x1bbe
- 25427 1ba9 32       		.uleb128 0x32
- 25428 1baa A10E0000 		.long	0xea1
- 25429 1bae 04       		.byte	0x4
- 25430 1baf 91       		.byte	0x91
- 25431 1bb0 80BF7F   		.sleb128 -8320
- 25432 1bb3 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 723
-
-
- 25433 1bb4 970E0000 		.long	0xe97
- 25434 1bb8 04       		.byte	0x4
- 25435 1bb9 91       		.byte	0x91
- 25436 1bba 90BF7F   		.sleb128 -8304
- 25437 1bbd 00       		.byte	0x0
- 25438 1bbe 36       		.uleb128 0x36
- 25439 1bbf 00000000 		.quad	.LBB796
- 25439      00000000 
- 25440 1bc7 00000000 		.quad	.LBE796
- 25440      00000000 
- 25441 1bcf DE1B0000 		.long	0x1bde
- 25442 1bd3 34       		.uleb128 0x34
- 25443 1bd4 3C0C0000 		.long	0xc3c
- 25444 1bd8 04       		.byte	0x4
- 25445 1bd9 91       		.byte	0x91
- 25446 1bda C0AD7F   		.sleb128 -10560
- 25447 1bdd 00       		.byte	0x0
- 25448 1bde 31       		.uleb128 0x31
- 25449 1bdf AC0E0000 		.long	0xeac
- 25450 1be3 00000000 		.quad	.LBB797
- 25450      00000000 
- 25451 1beb 00000000 		.quad	.LBE797
- 25451      00000000 
- 25452 1bf3 02       		.byte	0x2
- 25453 1bf4 9806     		.value	0x698
- 25454 1bf6 321C0000 		.long	0x1c32
- 25455 1bfa 32       		.uleb128 0x32
- 25456 1bfb BE0E0000 		.long	0xebe
- 25457 1bff 04       		.byte	0x4
- 25458 1c00 91       		.byte	0x91
- 25459 1c01 A0BF7F   		.sleb128 -8288
- 25460 1c04 35       		.uleb128 0x35
- 25461 1c05 CB0E0000 		.long	0xecb
- 25462 1c09 00000000 		.quad	.LBB799
- 25462      00000000 
- 25463 1c11 00000000 		.quad	.LBE799
- 25463      00000000 
- 25464 1c19 02       		.byte	0x2
- 25465 1c1a 4905     		.value	0x549
- 25466 1c1c 32       		.uleb128 0x32
- 25467 1c1d E90E0000 		.long	0xee9
- 25468 1c21 04       		.byte	0x4
- 25469 1c22 91       		.byte	0x91
- 25470 1c23 BCBF7F   		.sleb128 -8260
- 25471 1c26 32       		.uleb128 0x32
- 25472 1c27 DD0E0000 		.long	0xedd
- 25473 1c2b 04       		.byte	0x4
- 25474 1c2c 91       		.byte	0x91
- 25475 1c2d C0BF7F   		.sleb128 -8256
- 25476 1c30 00       		.byte	0x0
- 25477 1c31 00       		.byte	0x0
- 25478 1c32 33       		.uleb128 0x33
- 25479 1c33 00000000 		.quad	.LBB801
- 25479      00000000 
- 25480 1c3b 00000000 		.quad	.LBE801
- 25480      00000000 
- 25481 1c43 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 724
-
-
- 25482 1c44 480C0000 		.long	0xc48
- 25483 1c48 04       		.byte	0x4
- 25484 1c49 91       		.byte	0x91
- 25485 1c4a B0AD7F   		.sleb128 -10576
- 25486 1c4d 00       		.byte	0x0
- 25487 1c4e 00       		.byte	0x0
- 25488 1c4f 00       		.byte	0x0
- 25489 1c50 31       		.uleb128 0x31
- 25490 1c51 F60E0000 		.long	0xef6
- 25491 1c55 00000000 		.quad	.LBB802
- 25491      00000000 
- 25492 1c5d 00000000 		.quad	.LBE802
- 25492      00000000 
- 25493 1c65 02       		.byte	0x2
- 25494 1c66 D106     		.value	0x6d1
- 25495 1c68 681E0000 		.long	0x1e68
- 25496 1c6c 32       		.uleb128 0x32
- 25497 1c6d 080F0000 		.long	0xf08
- 25498 1c71 04       		.byte	0x4
- 25499 1c72 91       		.byte	0x91
- 25500 1c73 D0BF7F   		.sleb128 -8240
- 25501 1c76 33       		.uleb128 0x33
- 25502 1c77 00000000 		.quad	.LBB803
- 25502      00000000 
- 25503 1c7f 00000000 		.quad	.LBE803
- 25503      00000000 
- 25504 1c87 34       		.uleb128 0x34
- 25505 1c88 140F0000 		.long	0xf14
- 25506 1c8c 04       		.byte	0x4
- 25507 1c8d 76       		.byte	0x76
- 25508 1c8e E0A97F   		.sleb128 -11040
- 25509 1c91 31       		.uleb128 0x31
- 25510 1c92 210F0000 		.long	0xf21
- 25511 1c96 00000000 		.quad	.LBB804
- 25511      00000000 
- 25512 1c9e 00000000 		.quad	.LBE804
- 25512      00000000 
- 25513 1ca6 02       		.byte	0x2
- 25514 1ca7 1F06     		.value	0x61f
- 25515 1ca9 301D0000 		.long	0x1d30
- 25516 1cad 32       		.uleb128 0x32
- 25517 1cae 330F0000 		.long	0xf33
- 25518 1cb2 04       		.byte	0x4
- 25519 1cb3 91       		.byte	0x91
- 25520 1cb4 E0BF7F   		.sleb128 -8224
- 25521 1cb7 33       		.uleb128 0x33
- 25522 1cb8 00000000 		.quad	.LBB805
- 25522      00000000 
- 25523 1cc0 00000000 		.quad	.LBE805
- 25523      00000000 
- 25524 1cc8 34       		.uleb128 0x34
- 25525 1cc9 3F0F0000 		.long	0xf3f
- 25526 1ccd 09       		.byte	0x9
- 25527 1cce 03       		.byte	0x3
- 25528 1ccf 00000000 		.quad	mask.7943
- 25528      00000000 
- 25529 1cd7 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 725
-
-
- 25530 1cd8 A00D0000 		.long	0xda0
- 25531 1cdc 00000000 		.quad	.LBB806
- 25531      00000000 
- 25532 1ce4 00000000 		.quad	.LBE806
- 25532      00000000 
- 25533 1cec 02       		.byte	0x2
- 25534 1ced FE04     		.value	0x4fe
- 25535 1cef 32       		.uleb128 0x32
- 25536 1cf0 BE0D0000 		.long	0xdbe
- 25537 1cf4 04       		.byte	0x4
- 25538 1cf5 91       		.byte	0x91
- 25539 1cf6 F0BF7F   		.sleb128 -8208
- 25540 1cf9 32       		.uleb128 0x32
- 25541 1cfa B20D0000 		.long	0xdb2
- 25542 1cfe 03       		.byte	0x3
- 25543 1cff 91       		.byte	0x91
- 25544 1d00 8040     		.sleb128 -8192
- 25545 1d02 35       		.uleb128 0x35
- 25546 1d03 CB0D0000 		.long	0xdcb
- 25547 1d07 00000000 		.quad	.LBB808
- 25547      00000000 
- 25548 1d0f 00000000 		.quad	.LBE808
- 25548      00000000 
- 25549 1d17 02       		.byte	0x2
- 25550 1d18 7501     		.value	0x175
- 25551 1d1a 32       		.uleb128 0x32
- 25552 1d1b E90D0000 		.long	0xde9
- 25553 1d1f 03       		.byte	0x3
- 25554 1d20 91       		.byte	0x91
- 25555 1d21 9040     		.sleb128 -8176
- 25556 1d23 32       		.uleb128 0x32
- 25557 1d24 DD0D0000 		.long	0xddd
- 25558 1d28 03       		.byte	0x3
- 25559 1d29 91       		.byte	0x91
- 25560 1d2a A040     		.sleb128 -8160
- 25561 1d2c 00       		.byte	0x0
- 25562 1d2d 00       		.byte	0x0
- 25563 1d2e 00       		.byte	0x0
- 25564 1d2f 00       		.byte	0x0
- 25565 1d30 31       		.uleb128 0x31
- 25566 1d31 210F0000 		.long	0xf21
- 25567 1d35 00000000 		.quad	.LBB810
- 25567      00000000 
- 25568 1d3d 00000000 		.quad	.LBE810
- 25568      00000000 
- 25569 1d45 02       		.byte	0x2
- 25570 1d46 2006     		.value	0x620
- 25571 1d48 CD1D0000 		.long	0x1dcd
- 25572 1d4c 32       		.uleb128 0x32
- 25573 1d4d 330F0000 		.long	0xf33
- 25574 1d51 03       		.byte	0x3
- 25575 1d52 91       		.byte	0x91
- 25576 1d53 B040     		.sleb128 -8144
- 25577 1d55 33       		.uleb128 0x33
- 25578 1d56 00000000 		.quad	.LBB811
- 25578      00000000 
- 25579 1d5e 00000000 		.quad	.LBE811
-
GAS LISTING /tmp/ccjbMjHD.s 			page 726
-
-
- 25579      00000000 
- 25580 1d66 34       		.uleb128 0x34
- 25581 1d67 3F0F0000 		.long	0xf3f
- 25582 1d6b 09       		.byte	0x9
- 25583 1d6c 03       		.byte	0x3
- 25584 1d6d 00000000 		.quad	mask.7943
- 25584      00000000 
- 25585 1d75 35       		.uleb128 0x35
- 25586 1d76 A00D0000 		.long	0xda0
- 25587 1d7a 00000000 		.quad	.LBB812
- 25587      00000000 
- 25588 1d82 00000000 		.quad	.LBE812
- 25588      00000000 
- 25589 1d8a 02       		.byte	0x2
- 25590 1d8b FE04     		.value	0x4fe
- 25591 1d8d 32       		.uleb128 0x32
- 25592 1d8e BE0D0000 		.long	0xdbe
- 25593 1d92 03       		.byte	0x3
- 25594 1d93 91       		.byte	0x91
- 25595 1d94 C040     		.sleb128 -8128
- 25596 1d96 32       		.uleb128 0x32
- 25597 1d97 B20D0000 		.long	0xdb2
- 25598 1d9b 03       		.byte	0x3
- 25599 1d9c 91       		.byte	0x91
- 25600 1d9d D040     		.sleb128 -8112
- 25601 1d9f 35       		.uleb128 0x35
- 25602 1da0 CB0D0000 		.long	0xdcb
- 25603 1da4 00000000 		.quad	.LBB814
- 25603      00000000 
- 25604 1dac 00000000 		.quad	.LBE814
- 25604      00000000 
- 25605 1db4 02       		.byte	0x2
- 25606 1db5 7501     		.value	0x175
- 25607 1db7 32       		.uleb128 0x32
- 25608 1db8 E90D0000 		.long	0xde9
- 25609 1dbc 03       		.byte	0x3
- 25610 1dbd 91       		.byte	0x91
- 25611 1dbe E040     		.sleb128 -8096
- 25612 1dc0 32       		.uleb128 0x32
- 25613 1dc1 DD0D0000 		.long	0xddd
- 25614 1dc5 03       		.byte	0x3
- 25615 1dc6 91       		.byte	0x91
- 25616 1dc7 F040     		.sleb128 -8080
- 25617 1dc9 00       		.byte	0x0
- 25618 1dca 00       		.byte	0x0
- 25619 1dcb 00       		.byte	0x0
- 25620 1dcc 00       		.byte	0x0
- 25621 1dcd 35       		.uleb128 0x35
- 25622 1dce 210F0000 		.long	0xf21
- 25623 1dd2 00000000 		.quad	.LBB816
- 25623      00000000 
- 25624 1dda 00000000 		.quad	.LBE816
- 25624      00000000 
- 25625 1de2 02       		.byte	0x2
- 25626 1de3 2106     		.value	0x621
- 25627 1de5 32       		.uleb128 0x32
- 25628 1de6 330F0000 		.long	0xf33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 727
-
-
- 25629 1dea 03       		.byte	0x3
- 25630 1deb 91       		.byte	0x91
- 25631 1dec 8041     		.sleb128 -8064
- 25632 1dee 33       		.uleb128 0x33
- 25633 1def 00000000 		.quad	.LBB817
- 25633      00000000 
- 25634 1df7 00000000 		.quad	.LBE817
- 25634      00000000 
- 25635 1dff 34       		.uleb128 0x34
- 25636 1e00 3F0F0000 		.long	0xf3f
- 25637 1e04 09       		.byte	0x9
- 25638 1e05 03       		.byte	0x3
- 25639 1e06 00000000 		.quad	mask.7943
- 25639      00000000 
- 25640 1e0e 35       		.uleb128 0x35
- 25641 1e0f A00D0000 		.long	0xda0
- 25642 1e13 00000000 		.quad	.LBB818
- 25642      00000000 
- 25643 1e1b 00000000 		.quad	.LBE818
- 25643      00000000 
- 25644 1e23 02       		.byte	0x2
- 25645 1e24 FE04     		.value	0x4fe
- 25646 1e26 32       		.uleb128 0x32
- 25647 1e27 BE0D0000 		.long	0xdbe
- 25648 1e2b 03       		.byte	0x3
- 25649 1e2c 91       		.byte	0x91
- 25650 1e2d 9041     		.sleb128 -8048
- 25651 1e2f 32       		.uleb128 0x32
- 25652 1e30 B20D0000 		.long	0xdb2
- 25653 1e34 03       		.byte	0x3
- 25654 1e35 91       		.byte	0x91
- 25655 1e36 A041     		.sleb128 -8032
- 25656 1e38 35       		.uleb128 0x35
- 25657 1e39 CB0D0000 		.long	0xdcb
- 25658 1e3d 00000000 		.quad	.LBB820
- 25658      00000000 
- 25659 1e45 00000000 		.quad	.LBE820
- 25659      00000000 
- 25660 1e4d 02       		.byte	0x2
- 25661 1e4e 7501     		.value	0x175
- 25662 1e50 32       		.uleb128 0x32
- 25663 1e51 E90D0000 		.long	0xde9
- 25664 1e55 03       		.byte	0x3
- 25665 1e56 91       		.byte	0x91
- 25666 1e57 B041     		.sleb128 -8016
- 25667 1e59 32       		.uleb128 0x32
- 25668 1e5a DD0D0000 		.long	0xddd
- 25669 1e5e 03       		.byte	0x3
- 25670 1e5f 91       		.byte	0x91
- 25671 1e60 C041     		.sleb128 -8000
- 25672 1e62 00       		.byte	0x0
- 25673 1e63 00       		.byte	0x0
- 25674 1e64 00       		.byte	0x0
- 25675 1e65 00       		.byte	0x0
- 25676 1e66 00       		.byte	0x0
- 25677 1e67 00       		.byte	0x0
- 25678 1e68 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 728
-
-
- 25679 1e69 D50B0000 		.long	0xbd5
- 25680 1e6d 00000000 		.quad	.LBB822
- 25680      00000000 
- 25681 1e75 00000000 		.quad	.LBE822
- 25681      00000000 
- 25682 1e7d 02       		.byte	0x2
- 25683 1e7e D206     		.value	0x6d2
- 25684 1e80 4B230000 		.long	0x234b
- 25685 1e84 32       		.uleb128 0x32
- 25686 1e85 F30B0000 		.long	0xbf3
- 25687 1e89 03       		.byte	0x3
- 25688 1e8a 91       		.byte	0x91
- 25689 1e8b DC41     		.sleb128 -7972
- 25690 1e8d 32       		.uleb128 0x32
- 25691 1e8e E70B0000 		.long	0xbe7
- 25692 1e92 03       		.byte	0x3
- 25693 1e93 91       		.byte	0x91
- 25694 1e94 E041     		.sleb128 -7968
- 25695 1e96 33       		.uleb128 0x33
- 25696 1e97 00000000 		.quad	.LBB823
- 25696      00000000 
- 25697 1e9f 00000000 		.quad	.LBE823
- 25697      00000000 
- 25698 1ea7 34       		.uleb128 0x34
- 25699 1ea8 FF0B0000 		.long	0xbff
- 25700 1eac 04       		.byte	0x4
- 25701 1ead 76       		.byte	0x76
- 25702 1eae 80AA7F   		.sleb128 -11008
- 25703 1eb1 34       		.uleb128 0x34
- 25704 1eb2 0B0C0000 		.long	0xc0b
- 25705 1eb6 04       		.byte	0x4
- 25706 1eb7 76       		.byte	0x76
- 25707 1eb8 F0A97F   		.sleb128 -11024
- 25708 1ebb 31       		.uleb128 0x31
- 25709 1ebc 540C0000 		.long	0xc54
- 25710 1ec0 00000000 		.quad	.LBB824
- 25710      00000000 
- 25711 1ec8 00000000 		.quad	.LBE824
- 25711      00000000 
- 25712 1ed0 02       		.byte	0x2
- 25713 1ed1 9106     		.value	0x691
- 25714 1ed3 271F0000 		.long	0x1f27
- 25715 1ed7 32       		.uleb128 0x32
- 25716 1ed8 7E0C0000 		.long	0xc7e
- 25717 1edc 03       		.byte	0x3
- 25718 1edd 91       		.byte	0x91
- 25719 1ede F841     		.sleb128 -7944
- 25720 1ee0 32       		.uleb128 0x32
- 25721 1ee1 720C0000 		.long	0xc72
- 25722 1ee5 03       		.byte	0x3
- 25723 1ee6 91       		.byte	0x91
- 25724 1ee7 FC41     		.sleb128 -7940
- 25725 1ee9 32       		.uleb128 0x32
- 25726 1eea 660C0000 		.long	0xc66
- 25727 1eee 03       		.byte	0x3
- 25728 1eef 91       		.byte	0x91
- 25729 1ef0 8042     		.sleb128 -7936
-
GAS LISTING /tmp/ccjbMjHD.s 			page 729
-
-
- 25730 1ef2 35       		.uleb128 0x35
- 25731 1ef3 8B0C0000 		.long	0xc8b
- 25732 1ef7 00000000 		.quad	.LBB826
- 25732      00000000 
- 25733 1eff 00000000 		.quad	.LBE826
- 25733      00000000 
- 25734 1f07 02       		.byte	0x2
- 25735 1f08 0702     		.value	0x207
- 25736 1f0a 32       		.uleb128 0x32
- 25737 1f0b B40C0000 		.long	0xcb4
- 25738 1f0f 03       		.byte	0x3
- 25739 1f10 91       		.byte	0x91
- 25740 1f11 9842     		.sleb128 -7912
- 25741 1f13 32       		.uleb128 0x32
- 25742 1f14 A90C0000 		.long	0xca9
- 25743 1f18 03       		.byte	0x3
- 25744 1f19 91       		.byte	0x91
- 25745 1f1a 9C42     		.sleb128 -7908
- 25746 1f1c 32       		.uleb128 0x32
- 25747 1f1d 9D0C0000 		.long	0xc9d
- 25748 1f21 03       		.byte	0x3
- 25749 1f22 91       		.byte	0x91
- 25750 1f23 A042     		.sleb128 -7904
- 25751 1f25 00       		.byte	0x0
- 25752 1f26 00       		.byte	0x0
- 25753 1f27 31       		.uleb128 0x31
- 25754 1f28 C10C0000 		.long	0xcc1
- 25755 1f2c 00000000 		.quad	.LBB828
- 25755      00000000 
- 25756 1f34 00000000 		.quad	.LBE828
- 25756      00000000 
- 25757 1f3c 02       		.byte	0x2
- 25758 1f3d 9206     		.value	0x692
- 25759 1f3f B0210000 		.long	0x21b0
- 25760 1f43 32       		.uleb128 0x32
- 25761 1f44 D30C0000 		.long	0xcd3
- 25762 1f48 03       		.byte	0x3
- 25763 1f49 91       		.byte	0x91
- 25764 1f4a B042     		.sleb128 -7888
- 25765 1f4c 35       		.uleb128 0x35
- 25766 1f4d E00C0000 		.long	0xce0
- 25767 1f51 00000000 		.quad	.LBB830
- 25767      00000000 
- 25768 1f59 00000000 		.quad	.LBE830
- 25768      00000000 
- 25769 1f61 02       		.byte	0x2
- 25770 1f62 7D03     		.value	0x37d
- 25771 1f64 32       		.uleb128 0x32
- 25772 1f65 FE0C0000 		.long	0xcfe
- 25773 1f69 03       		.byte	0x3
- 25774 1f6a 91       		.byte	0x91
- 25775 1f6b C842     		.sleb128 -7864
- 25776 1f6d 32       		.uleb128 0x32
- 25777 1f6e F20C0000 		.long	0xcf2
- 25778 1f72 03       		.byte	0x3
- 25779 1f73 91       		.byte	0x91
- 25780 1f74 D042     		.sleb128 -7856
-
GAS LISTING /tmp/ccjbMjHD.s 			page 730
-
-
- 25781 1f76 33       		.uleb128 0x33
- 25782 1f77 00000000 		.quad	.LBB831
- 25782      00000000 
- 25783 1f7f 00000000 		.quad	.LBE831
- 25783      00000000 
- 25784 1f87 34       		.uleb128 0x34
- 25785 1f88 0A0D0000 		.long	0xd0a
- 25786 1f8c 03       		.byte	0x3
- 25787 1f8d 91       		.byte	0x91
- 25788 1f8e A043     		.sleb128 -7776
- 25789 1f90 34       		.uleb128 0x34
- 25790 1f91 150D0000 		.long	0xd15
- 25791 1f95 03       		.byte	0x3
- 25792 1f96 91       		.byte	0x91
- 25793 1f97 9043     		.sleb128 -7792
- 25794 1f99 34       		.uleb128 0x34
- 25795 1f9a 200D0000 		.long	0xd20
- 25796 1f9e 03       		.byte	0x3
- 25797 1f9f 91       		.byte	0x91
- 25798 1fa0 8043     		.sleb128 -7808
- 25799 1fa2 34       		.uleb128 0x34
- 25800 1fa3 2C0D0000 		.long	0xd2c
- 25801 1fa7 03       		.byte	0x3
- 25802 1fa8 91       		.byte	0x91
- 25803 1fa9 F042     		.sleb128 -7824
- 25804 1fab 34       		.uleb128 0x34
- 25805 1fac 380D0000 		.long	0xd38
- 25806 1fb0 03       		.byte	0x3
- 25807 1fb1 91       		.byte	0x91
- 25808 1fb2 EC42     		.sleb128 -7828
- 25809 1fb4 31       		.uleb128 0x31
- 25810 1fb5 4F0D0000 		.long	0xd4f
- 25811 1fb9 00000000 		.quad	.LBB832
- 25811      00000000 
- 25812 1fc1 00000000 		.quad	.LBE832
- 25812      00000000 
- 25813 1fc9 02       		.byte	0x2
- 25814 1fca 5603     		.value	0x356
- 25815 1fcc E31F0000 		.long	0x1fe3
- 25816 1fd0 32       		.uleb128 0x32
- 25817 1fd1 6A0D0000 		.long	0xd6a
- 25818 1fd5 03       		.byte	0x3
- 25819 1fd6 91       		.byte	0x91
- 25820 1fd7 B043     		.sleb128 -7760
- 25821 1fd9 32       		.uleb128 0x32
- 25822 1fda 600D0000 		.long	0xd60
- 25823 1fde 03       		.byte	0x3
- 25824 1fdf 91       		.byte	0x91
- 25825 1fe0 C043     		.sleb128 -7744
- 25826 1fe2 00       		.byte	0x0
- 25827 1fe3 31       		.uleb128 0x31
- 25828 1fe4 750D0000 		.long	0xd75
- 25829 1fe8 00000000 		.quad	.LBB834
- 25829      00000000 
- 25830 1ff0 00000000 		.quad	.LBE834
- 25830      00000000 
- 25831 1ff8 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 731
-
-
- 25832 1ff9 5903     		.value	0x359
- 25833 1ffb 12200000 		.long	0x2012
- 25834 1fff 32       		.uleb128 0x32
- 25835 2000 930D0000 		.long	0xd93
- 25836 2004 03       		.byte	0x3
- 25837 2005 91       		.byte	0x91
- 25838 2006 DC43     		.sleb128 -7716
- 25839 2008 32       		.uleb128 0x32
- 25840 2009 870D0000 		.long	0xd87
- 25841 200d 03       		.byte	0x3
- 25842 200e 91       		.byte	0x91
- 25843 200f E043     		.sleb128 -7712
- 25844 2011 00       		.byte	0x0
- 25845 2012 31       		.uleb128 0x31
- 25846 2013 4F0D0000 		.long	0xd4f
- 25847 2017 00000000 		.quad	.LBB836
- 25847      00000000 
- 25848 201f 00000000 		.quad	.LBE836
- 25848      00000000 
- 25849 2027 02       		.byte	0x2
- 25850 2028 5B03     		.value	0x35b
- 25851 202a 41200000 		.long	0x2041
- 25852 202e 32       		.uleb128 0x32
- 25853 202f 6A0D0000 		.long	0xd6a
- 25854 2033 03       		.byte	0x3
- 25855 2034 91       		.byte	0x91
- 25856 2035 F043     		.sleb128 -7696
- 25857 2037 32       		.uleb128 0x32
- 25858 2038 600D0000 		.long	0xd60
- 25859 203c 03       		.byte	0x3
- 25860 203d 91       		.byte	0x91
- 25861 203e 8044     		.sleb128 -7680
- 25862 2040 00       		.byte	0x0
- 25863 2041 31       		.uleb128 0x31
- 25864 2042 A00D0000 		.long	0xda0
- 25865 2046 00000000 		.quad	.LBB838
- 25865      00000000 
- 25866 204e 00000000 		.quad	.LBE838
- 25866      00000000 
- 25867 2056 02       		.byte	0x2
- 25868 2057 6403     		.value	0x364
- 25869 2059 9B200000 		.long	0x209b
- 25870 205d 32       		.uleb128 0x32
- 25871 205e BE0D0000 		.long	0xdbe
- 25872 2062 03       		.byte	0x3
- 25873 2063 91       		.byte	0x91
- 25874 2064 9044     		.sleb128 -7664
- 25875 2066 32       		.uleb128 0x32
- 25876 2067 B20D0000 		.long	0xdb2
- 25877 206b 03       		.byte	0x3
- 25878 206c 91       		.byte	0x91
- 25879 206d A044     		.sleb128 -7648
- 25880 206f 35       		.uleb128 0x35
- 25881 2070 CB0D0000 		.long	0xdcb
- 25882 2074 00000000 		.quad	.LBB840
- 25882      00000000 
- 25883 207c 00000000 		.quad	.LBE840
-
GAS LISTING /tmp/ccjbMjHD.s 			page 732
-
-
- 25883      00000000 
- 25884 2084 02       		.byte	0x2
- 25885 2085 7501     		.value	0x175
- 25886 2087 32       		.uleb128 0x32
- 25887 2088 E90D0000 		.long	0xde9
- 25888 208c 03       		.byte	0x3
- 25889 208d 91       		.byte	0x91
- 25890 208e B044     		.sleb128 -7632
- 25891 2090 32       		.uleb128 0x32
- 25892 2091 DD0D0000 		.long	0xddd
- 25893 2095 03       		.byte	0x3
- 25894 2096 91       		.byte	0x91
- 25895 2097 C044     		.sleb128 -7616
- 25896 2099 00       		.byte	0x0
- 25897 209a 00       		.byte	0x0
- 25898 209b 31       		.uleb128 0x31
- 25899 209c FB0D0000 		.long	0xdfb
- 25900 20a0 00000000 		.quad	.LBB842
- 25900      00000000 
- 25901 20a8 00000000 		.quad	.LBE842
- 25901      00000000 
- 25902 20b0 02       		.byte	0x2
- 25903 20b1 6603     		.value	0x366
- 25904 20b3 CA200000 		.long	0x20ca
- 25905 20b7 32       		.uleb128 0x32
- 25906 20b8 160E0000 		.long	0xe16
- 25907 20bc 03       		.byte	0x3
- 25908 20bd 91       		.byte	0x91
- 25909 20be D044     		.sleb128 -7600
- 25910 20c0 32       		.uleb128 0x32
- 25911 20c1 0C0E0000 		.long	0xe0c
- 25912 20c5 03       		.byte	0x3
- 25913 20c6 91       		.byte	0x91
- 25914 20c7 E044     		.sleb128 -7584
- 25915 20c9 00       		.byte	0x0
- 25916 20ca 31       		.uleb128 0x31
- 25917 20cb A00D0000 		.long	0xda0
- 25918 20cf 00000000 		.quad	.LBB844
- 25918      00000000 
- 25919 20d7 00000000 		.quad	.LBE844
- 25919      00000000 
- 25920 20df 02       		.byte	0x2
- 25921 20e0 6803     		.value	0x368
- 25922 20e2 24210000 		.long	0x2124
- 25923 20e6 32       		.uleb128 0x32
- 25924 20e7 BE0D0000 		.long	0xdbe
- 25925 20eb 03       		.byte	0x3
- 25926 20ec 91       		.byte	0x91
- 25927 20ed F044     		.sleb128 -7568
- 25928 20ef 32       		.uleb128 0x32
- 25929 20f0 B20D0000 		.long	0xdb2
- 25930 20f4 03       		.byte	0x3
- 25931 20f5 91       		.byte	0x91
- 25932 20f6 8045     		.sleb128 -7552
- 25933 20f8 35       		.uleb128 0x35
- 25934 20f9 CB0D0000 		.long	0xdcb
- 25935 20fd 00000000 		.quad	.LBB846
-
GAS LISTING /tmp/ccjbMjHD.s 			page 733
-
-
- 25935      00000000 
- 25936 2105 00000000 		.quad	.LBE846
- 25936      00000000 
- 25937 210d 02       		.byte	0x2
- 25938 210e 7501     		.value	0x175
- 25939 2110 32       		.uleb128 0x32
- 25940 2111 E90D0000 		.long	0xde9
- 25941 2115 03       		.byte	0x3
- 25942 2116 91       		.byte	0x91
- 25943 2117 9045     		.sleb128 -7536
- 25944 2119 32       		.uleb128 0x32
- 25945 211a DD0D0000 		.long	0xddd
- 25946 211e 03       		.byte	0x3
- 25947 211f 91       		.byte	0x91
- 25948 2120 A045     		.sleb128 -7520
- 25949 2122 00       		.byte	0x0
- 25950 2123 00       		.byte	0x0
- 25951 2124 31       		.uleb128 0x31
- 25952 2125 FB0D0000 		.long	0xdfb
- 25953 2129 00000000 		.quad	.LBB848
- 25953      00000000 
- 25954 2131 00000000 		.quad	.LBE848
- 25954      00000000 
- 25955 2139 02       		.byte	0x2
- 25956 213a 6A03     		.value	0x36a
- 25957 213c 53210000 		.long	0x2153
- 25958 2140 32       		.uleb128 0x32
- 25959 2141 160E0000 		.long	0xe16
- 25960 2145 03       		.byte	0x3
- 25961 2146 91       		.byte	0x91
- 25962 2147 B045     		.sleb128 -7504
- 25963 2149 32       		.uleb128 0x32
- 25964 214a 0C0E0000 		.long	0xe0c
- 25965 214e 03       		.byte	0x3
- 25966 214f 91       		.byte	0x91
- 25967 2150 C045     		.sleb128 -7488
- 25968 2152 00       		.byte	0x0
- 25969 2153 31       		.uleb128 0x31
- 25970 2154 210E0000 		.long	0xe21
- 25971 2158 00000000 		.quad	.LBB850
- 25971      00000000 
- 25972 2160 00000000 		.quad	.LBE850
- 25972      00000000 
- 25973 2168 02       		.byte	0x2
- 25974 2169 6C03     		.value	0x36c
- 25975 216b 82210000 		.long	0x2182
- 25976 216f 32       		.uleb128 0x32
- 25977 2170 3E0E0000 		.long	0xe3e
- 25978 2174 03       		.byte	0x3
- 25979 2175 91       		.byte	0x91
- 25980 2176 D045     		.sleb128 -7472
- 25981 2178 32       		.uleb128 0x32
- 25982 2179 330E0000 		.long	0xe33
- 25983 217d 03       		.byte	0x3
- 25984 217e 91       		.byte	0x91
- 25985 217f E045     		.sleb128 -7456
- 25986 2181 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 734
-
-
- 25987 2182 35       		.uleb128 0x35
- 25988 2183 4F0D0000 		.long	0xd4f
- 25989 2187 00000000 		.quad	.LBB852
- 25989      00000000 
- 25990 218f 00000000 		.quad	.LBE852
- 25990      00000000 
- 25991 2197 02       		.byte	0x2
- 25992 2198 6E03     		.value	0x36e
- 25993 219a 32       		.uleb128 0x32
- 25994 219b 6A0D0000 		.long	0xd6a
- 25995 219f 03       		.byte	0x3
- 25996 21a0 91       		.byte	0x91
- 25997 21a1 F045     		.sleb128 -7440
- 25998 21a3 32       		.uleb128 0x32
- 25999 21a4 600D0000 		.long	0xd60
- 26000 21a8 03       		.byte	0x3
- 26001 21a9 91       		.byte	0x91
- 26002 21aa 8046     		.sleb128 -7424
- 26003 21ac 00       		.byte	0x0
- 26004 21ad 00       		.byte	0x0
- 26005 21ae 00       		.byte	0x0
- 26006 21af 00       		.byte	0x0
- 26007 21b0 36       		.uleb128 0x36
- 26008 21b1 00000000 		.quad	.LBB854
- 26008      00000000 
- 26009 21b9 00000000 		.quad	.LBE854
- 26009      00000000 
- 26010 21c1 D0210000 		.long	0x21d0
- 26011 21c5 34       		.uleb128 0x34
- 26012 21c6 1C0C0000 		.long	0xc1c
- 26013 21ca 04       		.byte	0x4
- 26014 21cb 91       		.byte	0x91
- 26015 21cc A0AE7F   		.sleb128 -10464
- 26016 21cf 00       		.byte	0x0
- 26017 21d0 31       		.uleb128 0x31
- 26018 21d1 4A0E0000 		.long	0xe4a
- 26019 21d5 00000000 		.quad	.LBB855
- 26019      00000000 
- 26020 21dd 00000000 		.quad	.LBE855
- 26020      00000000 
- 26021 21e5 02       		.byte	0x2
- 26022 21e6 9406     		.value	0x694
- 26023 21e8 6D220000 		.long	0x226d
- 26024 21ec 32       		.uleb128 0x32
- 26025 21ed 5C0E0000 		.long	0xe5c
- 26026 21f1 03       		.byte	0x3
- 26027 21f2 91       		.byte	0x91
- 26028 21f3 9046     		.sleb128 -7408
- 26029 21f5 33       		.uleb128 0x33
- 26030 21f6 00000000 		.quad	.LBB856
- 26030      00000000 
- 26031 21fe 00000000 		.quad	.LBE856
- 26031      00000000 
- 26032 2206 34       		.uleb128 0x34
- 26033 2207 680E0000 		.long	0xe68
- 26034 220b 09       		.byte	0x9
- 26035 220c 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 735
-
-
- 26036 220d 00000000 		.quad	ShiftRowTable.7385
- 26036      00000000 
- 26037 2215 35       		.uleb128 0x35
- 26038 2216 A00D0000 		.long	0xda0
- 26039 221a 00000000 		.quad	.LBB857
- 26039      00000000 
- 26040 2222 00000000 		.quad	.LBE857
- 26040      00000000 
- 26041 222a 02       		.byte	0x2
- 26042 222b 9B02     		.value	0x29b
- 26043 222d 32       		.uleb128 0x32
- 26044 222e BE0D0000 		.long	0xdbe
- 26045 2232 03       		.byte	0x3
- 26046 2233 91       		.byte	0x91
- 26047 2234 A046     		.sleb128 -7392
- 26048 2236 32       		.uleb128 0x32
- 26049 2237 B20D0000 		.long	0xdb2
- 26050 223b 03       		.byte	0x3
- 26051 223c 91       		.byte	0x91
- 26052 223d B046     		.sleb128 -7376
- 26053 223f 35       		.uleb128 0x35
- 26054 2240 CB0D0000 		.long	0xdcb
- 26055 2244 00000000 		.quad	.LBB859
- 26055      00000000 
- 26056 224c 00000000 		.quad	.LBE859
- 26056      00000000 
- 26057 2254 02       		.byte	0x2
- 26058 2255 7501     		.value	0x175
- 26059 2257 32       		.uleb128 0x32
- 26060 2258 E90D0000 		.long	0xde9
- 26061 225c 03       		.byte	0x3
- 26062 225d 91       		.byte	0x91
- 26063 225e C046     		.sleb128 -7360
- 26064 2260 32       		.uleb128 0x32
- 26065 2261 DD0D0000 		.long	0xddd
- 26066 2265 03       		.byte	0x3
- 26067 2266 91       		.byte	0x91
- 26068 2267 D046     		.sleb128 -7344
- 26069 2269 00       		.byte	0x0
- 26070 226a 00       		.byte	0x0
- 26071 226b 00       		.byte	0x0
- 26072 226c 00       		.byte	0x0
- 26073 226d 36       		.uleb128 0x36
- 26074 226e 00000000 		.quad	.LBB861
- 26074      00000000 
- 26075 2276 00000000 		.quad	.LBE861
- 26075      00000000 
- 26076 227e 8D220000 		.long	0x228d
- 26077 2282 34       		.uleb128 0x34
- 26078 2283 2C0C0000 		.long	0xc2c
- 26079 2287 04       		.byte	0x4
- 26080 2288 91       		.byte	0x91
- 26081 2289 90AE7F   		.sleb128 -10480
- 26082 228c 00       		.byte	0x0
- 26083 228d 31       		.uleb128 0x31
- 26084 228e 860E0000 		.long	0xe86
- 26085 2292 00000000 		.quad	.LBB862
-
GAS LISTING /tmp/ccjbMjHD.s 			page 736
-
-
- 26085      00000000 
- 26086 229a 00000000 		.quad	.LBE862
- 26086      00000000 
- 26087 22a2 02       		.byte	0x2
- 26088 22a3 9606     		.value	0x696
- 26089 22a5 BC220000 		.long	0x22bc
- 26090 22a9 32       		.uleb128 0x32
- 26091 22aa A10E0000 		.long	0xea1
- 26092 22ae 03       		.byte	0x3
- 26093 22af 91       		.byte	0x91
- 26094 22b0 E046     		.sleb128 -7328
- 26095 22b2 32       		.uleb128 0x32
- 26096 22b3 970E0000 		.long	0xe97
- 26097 22b7 03       		.byte	0x3
- 26098 22b8 91       		.byte	0x91
- 26099 22b9 F046     		.sleb128 -7312
- 26100 22bb 00       		.byte	0x0
- 26101 22bc 36       		.uleb128 0x36
- 26102 22bd 00000000 		.quad	.LBB864
- 26102      00000000 
- 26103 22c5 00000000 		.quad	.LBE864
- 26103      00000000 
- 26104 22cd DC220000 		.long	0x22dc
- 26105 22d1 34       		.uleb128 0x34
- 26106 22d2 3C0C0000 		.long	0xc3c
- 26107 22d6 04       		.byte	0x4
- 26108 22d7 91       		.byte	0x91
- 26109 22d8 80AE7F   		.sleb128 -10496
- 26110 22db 00       		.byte	0x0
- 26111 22dc 31       		.uleb128 0x31
- 26112 22dd AC0E0000 		.long	0xeac
- 26113 22e1 00000000 		.quad	.LBB865
- 26113      00000000 
- 26114 22e9 00000000 		.quad	.LBE865
- 26114      00000000 
- 26115 22f1 02       		.byte	0x2
- 26116 22f2 9806     		.value	0x698
- 26117 22f4 2D230000 		.long	0x232d
- 26118 22f8 32       		.uleb128 0x32
- 26119 22f9 BE0E0000 		.long	0xebe
- 26120 22fd 03       		.byte	0x3
- 26121 22fe 91       		.byte	0x91
- 26122 22ff 8047     		.sleb128 -7296
- 26123 2301 35       		.uleb128 0x35
- 26124 2302 CB0E0000 		.long	0xecb
- 26125 2306 00000000 		.quad	.LBB867
- 26125      00000000 
- 26126 230e 00000000 		.quad	.LBE867
- 26126      00000000 
- 26127 2316 02       		.byte	0x2
- 26128 2317 4905     		.value	0x549
- 26129 2319 32       		.uleb128 0x32
- 26130 231a E90E0000 		.long	0xee9
- 26131 231e 03       		.byte	0x3
- 26132 231f 91       		.byte	0x91
- 26133 2320 9C47     		.sleb128 -7268
- 26134 2322 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 737
-
-
- 26135 2323 DD0E0000 		.long	0xedd
- 26136 2327 03       		.byte	0x3
- 26137 2328 91       		.byte	0x91
- 26138 2329 A047     		.sleb128 -7264
- 26139 232b 00       		.byte	0x0
- 26140 232c 00       		.byte	0x0
- 26141 232d 33       		.uleb128 0x33
- 26142 232e 00000000 		.quad	.LBB869
- 26142      00000000 
- 26143 2336 00000000 		.quad	.LBE869
- 26143      00000000 
- 26144 233e 34       		.uleb128 0x34
- 26145 233f 480C0000 		.long	0xc48
- 26146 2343 04       		.byte	0x4
- 26147 2344 91       		.byte	0x91
- 26148 2345 F0AD7F   		.sleb128 -10512
- 26149 2348 00       		.byte	0x0
- 26150 2349 00       		.byte	0x0
- 26151 234a 00       		.byte	0x0
- 26152 234b 31       		.uleb128 0x31
- 26153 234c F60E0000 		.long	0xef6
- 26154 2350 00000000 		.quad	.LBB870
- 26154      00000000 
- 26155 2358 00000000 		.quad	.LBE870
- 26155      00000000 
- 26156 2360 02       		.byte	0x2
- 26157 2361 D206     		.value	0x6d2
- 26158 2363 60250000 		.long	0x2560
- 26159 2367 32       		.uleb128 0x32
- 26160 2368 080F0000 		.long	0xf08
- 26161 236c 03       		.byte	0x3
- 26162 236d 91       		.byte	0x91
- 26163 236e B047     		.sleb128 -7248
- 26164 2370 33       		.uleb128 0x33
- 26165 2371 00000000 		.quad	.LBB871
- 26165      00000000 
- 26166 2379 00000000 		.quad	.LBE871
- 26166      00000000 
- 26167 2381 34       		.uleb128 0x34
- 26168 2382 140F0000 		.long	0xf14
- 26169 2386 04       		.byte	0x4
- 26170 2387 76       		.byte	0x76
- 26171 2388 90AA7F   		.sleb128 -10992
- 26172 238b 31       		.uleb128 0x31
- 26173 238c 210F0000 		.long	0xf21
- 26174 2390 00000000 		.quad	.LBB872
- 26174      00000000 
- 26175 2398 00000000 		.quad	.LBE872
- 26175      00000000 
- 26176 23a0 02       		.byte	0x2
- 26177 23a1 1F06     		.value	0x61f
- 26178 23a3 28240000 		.long	0x2428
- 26179 23a7 32       		.uleb128 0x32
- 26180 23a8 330F0000 		.long	0xf33
- 26181 23ac 03       		.byte	0x3
- 26182 23ad 91       		.byte	0x91
- 26183 23ae C047     		.sleb128 -7232
-
GAS LISTING /tmp/ccjbMjHD.s 			page 738
-
-
- 26184 23b0 33       		.uleb128 0x33
- 26185 23b1 00000000 		.quad	.LBB873
- 26185      00000000 
- 26186 23b9 00000000 		.quad	.LBE873
- 26186      00000000 
- 26187 23c1 34       		.uleb128 0x34
- 26188 23c2 3F0F0000 		.long	0xf3f
- 26189 23c6 09       		.byte	0x9
- 26190 23c7 03       		.byte	0x3
- 26191 23c8 00000000 		.quad	mask.7943
- 26191      00000000 
- 26192 23d0 35       		.uleb128 0x35
- 26193 23d1 A00D0000 		.long	0xda0
- 26194 23d5 00000000 		.quad	.LBB874
- 26194      00000000 
- 26195 23dd 00000000 		.quad	.LBE874
- 26195      00000000 
- 26196 23e5 02       		.byte	0x2
- 26197 23e6 FE04     		.value	0x4fe
- 26198 23e8 32       		.uleb128 0x32
- 26199 23e9 BE0D0000 		.long	0xdbe
- 26200 23ed 03       		.byte	0x3
- 26201 23ee 91       		.byte	0x91
- 26202 23ef D047     		.sleb128 -7216
- 26203 23f1 32       		.uleb128 0x32
- 26204 23f2 B20D0000 		.long	0xdb2
- 26205 23f6 03       		.byte	0x3
- 26206 23f7 91       		.byte	0x91
- 26207 23f8 E047     		.sleb128 -7200
- 26208 23fa 35       		.uleb128 0x35
- 26209 23fb CB0D0000 		.long	0xdcb
- 26210 23ff 00000000 		.quad	.LBB876
- 26210      00000000 
- 26211 2407 00000000 		.quad	.LBE876
- 26211      00000000 
- 26212 240f 02       		.byte	0x2
- 26213 2410 7501     		.value	0x175
- 26214 2412 32       		.uleb128 0x32
- 26215 2413 E90D0000 		.long	0xde9
- 26216 2417 03       		.byte	0x3
- 26217 2418 91       		.byte	0x91
- 26218 2419 F047     		.sleb128 -7184
- 26219 241b 32       		.uleb128 0x32
- 26220 241c DD0D0000 		.long	0xddd
- 26221 2420 03       		.byte	0x3
- 26222 2421 91       		.byte	0x91
- 26223 2422 8048     		.sleb128 -7168
- 26224 2424 00       		.byte	0x0
- 26225 2425 00       		.byte	0x0
- 26226 2426 00       		.byte	0x0
- 26227 2427 00       		.byte	0x0
- 26228 2428 31       		.uleb128 0x31
- 26229 2429 210F0000 		.long	0xf21
- 26230 242d 00000000 		.quad	.LBB878
- 26230      00000000 
- 26231 2435 00000000 		.quad	.LBE878
- 26231      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 739
-
-
- 26232 243d 02       		.byte	0x2
- 26233 243e 2006     		.value	0x620
- 26234 2440 C5240000 		.long	0x24c5
- 26235 2444 32       		.uleb128 0x32
- 26236 2445 330F0000 		.long	0xf33
- 26237 2449 03       		.byte	0x3
- 26238 244a 91       		.byte	0x91
- 26239 244b 9048     		.sleb128 -7152
- 26240 244d 33       		.uleb128 0x33
- 26241 244e 00000000 		.quad	.LBB879
- 26241      00000000 
- 26242 2456 00000000 		.quad	.LBE879
- 26242      00000000 
- 26243 245e 34       		.uleb128 0x34
- 26244 245f 3F0F0000 		.long	0xf3f
- 26245 2463 09       		.byte	0x9
- 26246 2464 03       		.byte	0x3
- 26247 2465 00000000 		.quad	mask.7943
- 26247      00000000 
- 26248 246d 35       		.uleb128 0x35
- 26249 246e A00D0000 		.long	0xda0
- 26250 2472 00000000 		.quad	.LBB880
- 26250      00000000 
- 26251 247a 00000000 		.quad	.LBE880
- 26251      00000000 
- 26252 2482 02       		.byte	0x2
- 26253 2483 FE04     		.value	0x4fe
- 26254 2485 32       		.uleb128 0x32
- 26255 2486 BE0D0000 		.long	0xdbe
- 26256 248a 03       		.byte	0x3
- 26257 248b 91       		.byte	0x91
- 26258 248c A048     		.sleb128 -7136
- 26259 248e 32       		.uleb128 0x32
- 26260 248f B20D0000 		.long	0xdb2
- 26261 2493 03       		.byte	0x3
- 26262 2494 91       		.byte	0x91
- 26263 2495 B048     		.sleb128 -7120
- 26264 2497 35       		.uleb128 0x35
- 26265 2498 CB0D0000 		.long	0xdcb
- 26266 249c 00000000 		.quad	.LBB882
- 26266      00000000 
- 26267 24a4 00000000 		.quad	.LBE882
- 26267      00000000 
- 26268 24ac 02       		.byte	0x2
- 26269 24ad 7501     		.value	0x175
- 26270 24af 32       		.uleb128 0x32
- 26271 24b0 E90D0000 		.long	0xde9
- 26272 24b4 03       		.byte	0x3
- 26273 24b5 91       		.byte	0x91
- 26274 24b6 C048     		.sleb128 -7104
- 26275 24b8 32       		.uleb128 0x32
- 26276 24b9 DD0D0000 		.long	0xddd
- 26277 24bd 03       		.byte	0x3
- 26278 24be 91       		.byte	0x91
- 26279 24bf D048     		.sleb128 -7088
- 26280 24c1 00       		.byte	0x0
- 26281 24c2 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 740
-
-
- 26282 24c3 00       		.byte	0x0
- 26283 24c4 00       		.byte	0x0
- 26284 24c5 35       		.uleb128 0x35
- 26285 24c6 210F0000 		.long	0xf21
- 26286 24ca 00000000 		.quad	.LBB884
- 26286      00000000 
- 26287 24d2 00000000 		.quad	.LBE884
- 26287      00000000 
- 26288 24da 02       		.byte	0x2
- 26289 24db 2106     		.value	0x621
- 26290 24dd 32       		.uleb128 0x32
- 26291 24de 330F0000 		.long	0xf33
- 26292 24e2 03       		.byte	0x3
- 26293 24e3 91       		.byte	0x91
- 26294 24e4 E048     		.sleb128 -7072
- 26295 24e6 33       		.uleb128 0x33
- 26296 24e7 00000000 		.quad	.LBB885
- 26296      00000000 
- 26297 24ef 00000000 		.quad	.LBE885
- 26297      00000000 
- 26298 24f7 34       		.uleb128 0x34
- 26299 24f8 3F0F0000 		.long	0xf3f
- 26300 24fc 09       		.byte	0x9
- 26301 24fd 03       		.byte	0x3
- 26302 24fe 00000000 		.quad	mask.7943
- 26302      00000000 
- 26303 2506 35       		.uleb128 0x35
- 26304 2507 A00D0000 		.long	0xda0
- 26305 250b 00000000 		.quad	.LBB886
- 26305      00000000 
- 26306 2513 00000000 		.quad	.LBE886
- 26306      00000000 
- 26307 251b 02       		.byte	0x2
- 26308 251c FE04     		.value	0x4fe
- 26309 251e 32       		.uleb128 0x32
- 26310 251f BE0D0000 		.long	0xdbe
- 26311 2523 03       		.byte	0x3
- 26312 2524 91       		.byte	0x91
- 26313 2525 F048     		.sleb128 -7056
- 26314 2527 32       		.uleb128 0x32
- 26315 2528 B20D0000 		.long	0xdb2
- 26316 252c 03       		.byte	0x3
- 26317 252d 91       		.byte	0x91
- 26318 252e 8049     		.sleb128 -7040
- 26319 2530 35       		.uleb128 0x35
- 26320 2531 CB0D0000 		.long	0xdcb
- 26321 2535 00000000 		.quad	.LBB888
- 26321      00000000 
- 26322 253d 00000000 		.quad	.LBE888
- 26322      00000000 
- 26323 2545 02       		.byte	0x2
- 26324 2546 7501     		.value	0x175
- 26325 2548 32       		.uleb128 0x32
- 26326 2549 E90D0000 		.long	0xde9
- 26327 254d 03       		.byte	0x3
- 26328 254e 91       		.byte	0x91
- 26329 254f 9049     		.sleb128 -7024
-
GAS LISTING /tmp/ccjbMjHD.s 			page 741
-
-
- 26330 2551 32       		.uleb128 0x32
- 26331 2552 DD0D0000 		.long	0xddd
- 26332 2556 03       		.byte	0x3
- 26333 2557 91       		.byte	0x91
- 26334 2558 A049     		.sleb128 -7008
- 26335 255a 00       		.byte	0x0
- 26336 255b 00       		.byte	0x0
- 26337 255c 00       		.byte	0x0
- 26338 255d 00       		.byte	0x0
- 26339 255e 00       		.byte	0x0
- 26340 255f 00       		.byte	0x0
- 26341 2560 31       		.uleb128 0x31
- 26342 2561 D50B0000 		.long	0xbd5
- 26343 2565 00000000 		.quad	.LBB890
- 26343      00000000 
- 26344 256d 00000000 		.quad	.LBE890
- 26344      00000000 
- 26345 2575 02       		.byte	0x2
- 26346 2576 D306     		.value	0x6d3
- 26347 2578 432A0000 		.long	0x2a43
- 26348 257c 32       		.uleb128 0x32
- 26349 257d F30B0000 		.long	0xbf3
- 26350 2581 03       		.byte	0x3
- 26351 2582 91       		.byte	0x91
- 26352 2583 BC49     		.sleb128 -6980
- 26353 2585 32       		.uleb128 0x32
- 26354 2586 E70B0000 		.long	0xbe7
- 26355 258a 03       		.byte	0x3
- 26356 258b 91       		.byte	0x91
- 26357 258c C049     		.sleb128 -6976
- 26358 258e 33       		.uleb128 0x33
- 26359 258f 00000000 		.quad	.LBB891
- 26359      00000000 
- 26360 2597 00000000 		.quad	.LBE891
- 26360      00000000 
- 26361 259f 34       		.uleb128 0x34
- 26362 25a0 FF0B0000 		.long	0xbff
- 26363 25a4 04       		.byte	0x4
- 26364 25a5 76       		.byte	0x76
- 26365 25a6 B0AA7F   		.sleb128 -10960
- 26366 25a9 34       		.uleb128 0x34
- 26367 25aa 0B0C0000 		.long	0xc0b
- 26368 25ae 04       		.byte	0x4
- 26369 25af 76       		.byte	0x76
- 26370 25b0 A0AA7F   		.sleb128 -10976
- 26371 25b3 31       		.uleb128 0x31
- 26372 25b4 540C0000 		.long	0xc54
- 26373 25b8 00000000 		.quad	.LBB892
- 26373      00000000 
- 26374 25c0 00000000 		.quad	.LBE892
- 26374      00000000 
- 26375 25c8 02       		.byte	0x2
- 26376 25c9 9106     		.value	0x691
- 26377 25cb 1F260000 		.long	0x261f
- 26378 25cf 32       		.uleb128 0x32
- 26379 25d0 7E0C0000 		.long	0xc7e
- 26380 25d4 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 742
-
-
- 26381 25d5 91       		.byte	0x91
- 26382 25d6 D849     		.sleb128 -6952
- 26383 25d8 32       		.uleb128 0x32
- 26384 25d9 720C0000 		.long	0xc72
- 26385 25dd 03       		.byte	0x3
- 26386 25de 91       		.byte	0x91
- 26387 25df DC49     		.sleb128 -6948
- 26388 25e1 32       		.uleb128 0x32
- 26389 25e2 660C0000 		.long	0xc66
- 26390 25e6 03       		.byte	0x3
- 26391 25e7 91       		.byte	0x91
- 26392 25e8 E049     		.sleb128 -6944
- 26393 25ea 35       		.uleb128 0x35
- 26394 25eb 8B0C0000 		.long	0xc8b
- 26395 25ef 00000000 		.quad	.LBB894
- 26395      00000000 
- 26396 25f7 00000000 		.quad	.LBE894
- 26396      00000000 
- 26397 25ff 02       		.byte	0x2
- 26398 2600 0702     		.value	0x207
- 26399 2602 32       		.uleb128 0x32
- 26400 2603 B40C0000 		.long	0xcb4
- 26401 2607 03       		.byte	0x3
- 26402 2608 91       		.byte	0x91
- 26403 2609 F849     		.sleb128 -6920
- 26404 260b 32       		.uleb128 0x32
- 26405 260c A90C0000 		.long	0xca9
- 26406 2610 03       		.byte	0x3
- 26407 2611 91       		.byte	0x91
- 26408 2612 FC49     		.sleb128 -6916
- 26409 2614 32       		.uleb128 0x32
- 26410 2615 9D0C0000 		.long	0xc9d
- 26411 2619 03       		.byte	0x3
- 26412 261a 91       		.byte	0x91
- 26413 261b 804A     		.sleb128 -6912
- 26414 261d 00       		.byte	0x0
- 26415 261e 00       		.byte	0x0
- 26416 261f 31       		.uleb128 0x31
- 26417 2620 C10C0000 		.long	0xcc1
- 26418 2624 00000000 		.quad	.LBB896
- 26418      00000000 
- 26419 262c 00000000 		.quad	.LBE896
- 26419      00000000 
- 26420 2634 02       		.byte	0x2
- 26421 2635 9206     		.value	0x692
- 26422 2637 A8280000 		.long	0x28a8
- 26423 263b 32       		.uleb128 0x32
- 26424 263c D30C0000 		.long	0xcd3
- 26425 2640 03       		.byte	0x3
- 26426 2641 91       		.byte	0x91
- 26427 2642 904A     		.sleb128 -6896
- 26428 2644 35       		.uleb128 0x35
- 26429 2645 E00C0000 		.long	0xce0
- 26430 2649 00000000 		.quad	.LBB898
- 26430      00000000 
- 26431 2651 00000000 		.quad	.LBE898
- 26431      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 743
-
-
- 26432 2659 02       		.byte	0x2
- 26433 265a 7D03     		.value	0x37d
- 26434 265c 32       		.uleb128 0x32
- 26435 265d FE0C0000 		.long	0xcfe
- 26436 2661 03       		.byte	0x3
- 26437 2662 91       		.byte	0x91
- 26438 2663 A84A     		.sleb128 -6872
- 26439 2665 32       		.uleb128 0x32
- 26440 2666 F20C0000 		.long	0xcf2
- 26441 266a 03       		.byte	0x3
- 26442 266b 91       		.byte	0x91
- 26443 266c B04A     		.sleb128 -6864
- 26444 266e 33       		.uleb128 0x33
- 26445 266f 00000000 		.quad	.LBB899
- 26445      00000000 
- 26446 2677 00000000 		.quad	.LBE899
- 26446      00000000 
- 26447 267f 34       		.uleb128 0x34
- 26448 2680 0A0D0000 		.long	0xd0a
- 26449 2684 03       		.byte	0x3
- 26450 2685 91       		.byte	0x91
- 26451 2686 804B     		.sleb128 -6784
- 26452 2688 34       		.uleb128 0x34
- 26453 2689 150D0000 		.long	0xd15
- 26454 268d 03       		.byte	0x3
- 26455 268e 91       		.byte	0x91
- 26456 268f F04A     		.sleb128 -6800
- 26457 2691 34       		.uleb128 0x34
- 26458 2692 200D0000 		.long	0xd20
- 26459 2696 03       		.byte	0x3
- 26460 2697 91       		.byte	0x91
- 26461 2698 E04A     		.sleb128 -6816
- 26462 269a 34       		.uleb128 0x34
- 26463 269b 2C0D0000 		.long	0xd2c
- 26464 269f 03       		.byte	0x3
- 26465 26a0 91       		.byte	0x91
- 26466 26a1 D04A     		.sleb128 -6832
- 26467 26a3 34       		.uleb128 0x34
- 26468 26a4 380D0000 		.long	0xd38
- 26469 26a8 03       		.byte	0x3
- 26470 26a9 91       		.byte	0x91
- 26471 26aa CC4A     		.sleb128 -6836
- 26472 26ac 31       		.uleb128 0x31
- 26473 26ad 4F0D0000 		.long	0xd4f
- 26474 26b1 00000000 		.quad	.LBB900
- 26474      00000000 
- 26475 26b9 00000000 		.quad	.LBE900
- 26475      00000000 
- 26476 26c1 02       		.byte	0x2
- 26477 26c2 5603     		.value	0x356
- 26478 26c4 DB260000 		.long	0x26db
- 26479 26c8 32       		.uleb128 0x32
- 26480 26c9 6A0D0000 		.long	0xd6a
- 26481 26cd 03       		.byte	0x3
- 26482 26ce 91       		.byte	0x91
- 26483 26cf 904B     		.sleb128 -6768
- 26484 26d1 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 744
-
-
- 26485 26d2 600D0000 		.long	0xd60
- 26486 26d6 03       		.byte	0x3
- 26487 26d7 91       		.byte	0x91
- 26488 26d8 A04B     		.sleb128 -6752
- 26489 26da 00       		.byte	0x0
- 26490 26db 31       		.uleb128 0x31
- 26491 26dc 750D0000 		.long	0xd75
- 26492 26e0 00000000 		.quad	.LBB902
- 26492      00000000 
- 26493 26e8 00000000 		.quad	.LBE902
- 26493      00000000 
- 26494 26f0 02       		.byte	0x2
- 26495 26f1 5903     		.value	0x359
- 26496 26f3 0A270000 		.long	0x270a
- 26497 26f7 32       		.uleb128 0x32
- 26498 26f8 930D0000 		.long	0xd93
- 26499 26fc 03       		.byte	0x3
- 26500 26fd 91       		.byte	0x91
- 26501 26fe BC4B     		.sleb128 -6724
- 26502 2700 32       		.uleb128 0x32
- 26503 2701 870D0000 		.long	0xd87
- 26504 2705 03       		.byte	0x3
- 26505 2706 91       		.byte	0x91
- 26506 2707 C04B     		.sleb128 -6720
- 26507 2709 00       		.byte	0x0
- 26508 270a 31       		.uleb128 0x31
- 26509 270b 4F0D0000 		.long	0xd4f
- 26510 270f 00000000 		.quad	.LBB904
- 26510      00000000 
- 26511 2717 00000000 		.quad	.LBE904
- 26511      00000000 
- 26512 271f 02       		.byte	0x2
- 26513 2720 5B03     		.value	0x35b
- 26514 2722 39270000 		.long	0x2739
- 26515 2726 32       		.uleb128 0x32
- 26516 2727 6A0D0000 		.long	0xd6a
- 26517 272b 03       		.byte	0x3
- 26518 272c 91       		.byte	0x91
- 26519 272d D04B     		.sleb128 -6704
- 26520 272f 32       		.uleb128 0x32
- 26521 2730 600D0000 		.long	0xd60
- 26522 2734 03       		.byte	0x3
- 26523 2735 91       		.byte	0x91
- 26524 2736 E04B     		.sleb128 -6688
- 26525 2738 00       		.byte	0x0
- 26526 2739 31       		.uleb128 0x31
- 26527 273a A00D0000 		.long	0xda0
- 26528 273e 00000000 		.quad	.LBB906
- 26528      00000000 
- 26529 2746 00000000 		.quad	.LBE906
- 26529      00000000 
- 26530 274e 02       		.byte	0x2
- 26531 274f 6403     		.value	0x364
- 26532 2751 93270000 		.long	0x2793
- 26533 2755 32       		.uleb128 0x32
- 26534 2756 BE0D0000 		.long	0xdbe
- 26535 275a 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 745
-
-
- 26536 275b 91       		.byte	0x91
- 26537 275c F04B     		.sleb128 -6672
- 26538 275e 32       		.uleb128 0x32
- 26539 275f B20D0000 		.long	0xdb2
- 26540 2763 03       		.byte	0x3
- 26541 2764 91       		.byte	0x91
- 26542 2765 804C     		.sleb128 -6656
- 26543 2767 35       		.uleb128 0x35
- 26544 2768 CB0D0000 		.long	0xdcb
- 26545 276c 00000000 		.quad	.LBB908
- 26545      00000000 
- 26546 2774 00000000 		.quad	.LBE908
- 26546      00000000 
- 26547 277c 02       		.byte	0x2
- 26548 277d 7501     		.value	0x175
- 26549 277f 32       		.uleb128 0x32
- 26550 2780 E90D0000 		.long	0xde9
- 26551 2784 03       		.byte	0x3
- 26552 2785 91       		.byte	0x91
- 26553 2786 904C     		.sleb128 -6640
- 26554 2788 32       		.uleb128 0x32
- 26555 2789 DD0D0000 		.long	0xddd
- 26556 278d 03       		.byte	0x3
- 26557 278e 91       		.byte	0x91
- 26558 278f A04C     		.sleb128 -6624
- 26559 2791 00       		.byte	0x0
- 26560 2792 00       		.byte	0x0
- 26561 2793 31       		.uleb128 0x31
- 26562 2794 FB0D0000 		.long	0xdfb
- 26563 2798 00000000 		.quad	.LBB910
- 26563      00000000 
- 26564 27a0 00000000 		.quad	.LBE910
- 26564      00000000 
- 26565 27a8 02       		.byte	0x2
- 26566 27a9 6603     		.value	0x366
- 26567 27ab C2270000 		.long	0x27c2
- 26568 27af 32       		.uleb128 0x32
- 26569 27b0 160E0000 		.long	0xe16
- 26570 27b4 03       		.byte	0x3
- 26571 27b5 91       		.byte	0x91
- 26572 27b6 B04C     		.sleb128 -6608
- 26573 27b8 32       		.uleb128 0x32
- 26574 27b9 0C0E0000 		.long	0xe0c
- 26575 27bd 03       		.byte	0x3
- 26576 27be 91       		.byte	0x91
- 26577 27bf C04C     		.sleb128 -6592
- 26578 27c1 00       		.byte	0x0
- 26579 27c2 31       		.uleb128 0x31
- 26580 27c3 A00D0000 		.long	0xda0
- 26581 27c7 00000000 		.quad	.LBB912
- 26581      00000000 
- 26582 27cf 00000000 		.quad	.LBE912
- 26582      00000000 
- 26583 27d7 02       		.byte	0x2
- 26584 27d8 6803     		.value	0x368
- 26585 27da 1C280000 		.long	0x281c
- 26586 27de 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 746
-
-
- 26587 27df BE0D0000 		.long	0xdbe
- 26588 27e3 03       		.byte	0x3
- 26589 27e4 91       		.byte	0x91
- 26590 27e5 D04C     		.sleb128 -6576
- 26591 27e7 32       		.uleb128 0x32
- 26592 27e8 B20D0000 		.long	0xdb2
- 26593 27ec 03       		.byte	0x3
- 26594 27ed 91       		.byte	0x91
- 26595 27ee E04C     		.sleb128 -6560
- 26596 27f0 35       		.uleb128 0x35
- 26597 27f1 CB0D0000 		.long	0xdcb
- 26598 27f5 00000000 		.quad	.LBB914
- 26598      00000000 
- 26599 27fd 00000000 		.quad	.LBE914
- 26599      00000000 
- 26600 2805 02       		.byte	0x2
- 26601 2806 7501     		.value	0x175
- 26602 2808 32       		.uleb128 0x32
- 26603 2809 E90D0000 		.long	0xde9
- 26604 280d 03       		.byte	0x3
- 26605 280e 91       		.byte	0x91
- 26606 280f F04C     		.sleb128 -6544
- 26607 2811 32       		.uleb128 0x32
- 26608 2812 DD0D0000 		.long	0xddd
- 26609 2816 03       		.byte	0x3
- 26610 2817 91       		.byte	0x91
- 26611 2818 804D     		.sleb128 -6528
- 26612 281a 00       		.byte	0x0
- 26613 281b 00       		.byte	0x0
- 26614 281c 31       		.uleb128 0x31
- 26615 281d FB0D0000 		.long	0xdfb
- 26616 2821 00000000 		.quad	.LBB916
- 26616      00000000 
- 26617 2829 00000000 		.quad	.LBE916
- 26617      00000000 
- 26618 2831 02       		.byte	0x2
- 26619 2832 6A03     		.value	0x36a
- 26620 2834 4B280000 		.long	0x284b
- 26621 2838 32       		.uleb128 0x32
- 26622 2839 160E0000 		.long	0xe16
- 26623 283d 03       		.byte	0x3
- 26624 283e 91       		.byte	0x91
- 26625 283f 904D     		.sleb128 -6512
- 26626 2841 32       		.uleb128 0x32
- 26627 2842 0C0E0000 		.long	0xe0c
- 26628 2846 03       		.byte	0x3
- 26629 2847 91       		.byte	0x91
- 26630 2848 A04D     		.sleb128 -6496
- 26631 284a 00       		.byte	0x0
- 26632 284b 31       		.uleb128 0x31
- 26633 284c 210E0000 		.long	0xe21
- 26634 2850 00000000 		.quad	.LBB918
- 26634      00000000 
- 26635 2858 00000000 		.quad	.LBE918
- 26635      00000000 
- 26636 2860 02       		.byte	0x2
- 26637 2861 6C03     		.value	0x36c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 747
-
-
- 26638 2863 7A280000 		.long	0x287a
- 26639 2867 32       		.uleb128 0x32
- 26640 2868 3E0E0000 		.long	0xe3e
- 26641 286c 03       		.byte	0x3
- 26642 286d 91       		.byte	0x91
- 26643 286e B04D     		.sleb128 -6480
- 26644 2870 32       		.uleb128 0x32
- 26645 2871 330E0000 		.long	0xe33
- 26646 2875 03       		.byte	0x3
- 26647 2876 91       		.byte	0x91
- 26648 2877 C04D     		.sleb128 -6464
- 26649 2879 00       		.byte	0x0
- 26650 287a 35       		.uleb128 0x35
- 26651 287b 4F0D0000 		.long	0xd4f
- 26652 287f 00000000 		.quad	.LBB920
- 26652      00000000 
- 26653 2887 00000000 		.quad	.LBE920
- 26653      00000000 
- 26654 288f 02       		.byte	0x2
- 26655 2890 6E03     		.value	0x36e
- 26656 2892 32       		.uleb128 0x32
- 26657 2893 6A0D0000 		.long	0xd6a
- 26658 2897 03       		.byte	0x3
- 26659 2898 91       		.byte	0x91
- 26660 2899 D04D     		.sleb128 -6448
- 26661 289b 32       		.uleb128 0x32
- 26662 289c 600D0000 		.long	0xd60
- 26663 28a0 03       		.byte	0x3
- 26664 28a1 91       		.byte	0x91
- 26665 28a2 E04D     		.sleb128 -6432
- 26666 28a4 00       		.byte	0x0
- 26667 28a5 00       		.byte	0x0
- 26668 28a6 00       		.byte	0x0
- 26669 28a7 00       		.byte	0x0
- 26670 28a8 36       		.uleb128 0x36
- 26671 28a9 00000000 		.quad	.LBB922
- 26671      00000000 
- 26672 28b1 00000000 		.quad	.LBE922
- 26672      00000000 
- 26673 28b9 C8280000 		.long	0x28c8
- 26674 28bd 34       		.uleb128 0x34
- 26675 28be 1C0C0000 		.long	0xc1c
- 26676 28c2 04       		.byte	0x4
- 26677 28c3 91       		.byte	0x91
- 26678 28c4 E0AE7F   		.sleb128 -10400
- 26679 28c7 00       		.byte	0x0
- 26680 28c8 31       		.uleb128 0x31
- 26681 28c9 4A0E0000 		.long	0xe4a
- 26682 28cd 00000000 		.quad	.LBB923
- 26682      00000000 
- 26683 28d5 00000000 		.quad	.LBE923
- 26683      00000000 
- 26684 28dd 02       		.byte	0x2
- 26685 28de 9406     		.value	0x694
- 26686 28e0 65290000 		.long	0x2965
- 26687 28e4 32       		.uleb128 0x32
- 26688 28e5 5C0E0000 		.long	0xe5c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 748
-
-
- 26689 28e9 03       		.byte	0x3
- 26690 28ea 91       		.byte	0x91
- 26691 28eb F04D     		.sleb128 -6416
- 26692 28ed 33       		.uleb128 0x33
- 26693 28ee 00000000 		.quad	.LBB924
- 26693      00000000 
- 26694 28f6 00000000 		.quad	.LBE924
- 26694      00000000 
- 26695 28fe 34       		.uleb128 0x34
- 26696 28ff 680E0000 		.long	0xe68
- 26697 2903 09       		.byte	0x9
- 26698 2904 03       		.byte	0x3
- 26699 2905 00000000 		.quad	ShiftRowTable.7385
- 26699      00000000 
- 26700 290d 35       		.uleb128 0x35
- 26701 290e A00D0000 		.long	0xda0
- 26702 2912 00000000 		.quad	.LBB925
- 26702      00000000 
- 26703 291a 00000000 		.quad	.LBE925
- 26703      00000000 
- 26704 2922 02       		.byte	0x2
- 26705 2923 9B02     		.value	0x29b
- 26706 2925 32       		.uleb128 0x32
- 26707 2926 BE0D0000 		.long	0xdbe
- 26708 292a 03       		.byte	0x3
- 26709 292b 91       		.byte	0x91
- 26710 292c 804E     		.sleb128 -6400
- 26711 292e 32       		.uleb128 0x32
- 26712 292f B20D0000 		.long	0xdb2
- 26713 2933 03       		.byte	0x3
- 26714 2934 91       		.byte	0x91
- 26715 2935 904E     		.sleb128 -6384
- 26716 2937 35       		.uleb128 0x35
- 26717 2938 CB0D0000 		.long	0xdcb
- 26718 293c 00000000 		.quad	.LBB927
- 26718      00000000 
- 26719 2944 00000000 		.quad	.LBE927
- 26719      00000000 
- 26720 294c 02       		.byte	0x2
- 26721 294d 7501     		.value	0x175
- 26722 294f 32       		.uleb128 0x32
- 26723 2950 E90D0000 		.long	0xde9
- 26724 2954 03       		.byte	0x3
- 26725 2955 91       		.byte	0x91
- 26726 2956 A04E     		.sleb128 -6368
- 26727 2958 32       		.uleb128 0x32
- 26728 2959 DD0D0000 		.long	0xddd
- 26729 295d 03       		.byte	0x3
- 26730 295e 91       		.byte	0x91
- 26731 295f B04E     		.sleb128 -6352
- 26732 2961 00       		.byte	0x0
- 26733 2962 00       		.byte	0x0
- 26734 2963 00       		.byte	0x0
- 26735 2964 00       		.byte	0x0
- 26736 2965 36       		.uleb128 0x36
- 26737 2966 00000000 		.quad	.LBB929
- 26737      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 749
-
-
- 26738 296e 00000000 		.quad	.LBE929
- 26738      00000000 
- 26739 2976 85290000 		.long	0x2985
- 26740 297a 34       		.uleb128 0x34
- 26741 297b 2C0C0000 		.long	0xc2c
- 26742 297f 04       		.byte	0x4
- 26743 2980 91       		.byte	0x91
- 26744 2981 D0AE7F   		.sleb128 -10416
- 26745 2984 00       		.byte	0x0
- 26746 2985 31       		.uleb128 0x31
- 26747 2986 860E0000 		.long	0xe86
- 26748 298a 00000000 		.quad	.LBB930
- 26748      00000000 
- 26749 2992 00000000 		.quad	.LBE930
- 26749      00000000 
- 26750 299a 02       		.byte	0x2
- 26751 299b 9606     		.value	0x696
- 26752 299d B4290000 		.long	0x29b4
- 26753 29a1 32       		.uleb128 0x32
- 26754 29a2 A10E0000 		.long	0xea1
- 26755 29a6 03       		.byte	0x3
- 26756 29a7 91       		.byte	0x91
- 26757 29a8 C04E     		.sleb128 -6336
- 26758 29aa 32       		.uleb128 0x32
- 26759 29ab 970E0000 		.long	0xe97
- 26760 29af 03       		.byte	0x3
- 26761 29b0 91       		.byte	0x91
- 26762 29b1 D04E     		.sleb128 -6320
- 26763 29b3 00       		.byte	0x0
- 26764 29b4 36       		.uleb128 0x36
- 26765 29b5 00000000 		.quad	.LBB932
- 26765      00000000 
- 26766 29bd 00000000 		.quad	.LBE932
- 26766      00000000 
- 26767 29c5 D4290000 		.long	0x29d4
- 26768 29c9 34       		.uleb128 0x34
- 26769 29ca 3C0C0000 		.long	0xc3c
- 26770 29ce 04       		.byte	0x4
- 26771 29cf 91       		.byte	0x91
- 26772 29d0 C0AE7F   		.sleb128 -10432
- 26773 29d3 00       		.byte	0x0
- 26774 29d4 31       		.uleb128 0x31
- 26775 29d5 AC0E0000 		.long	0xeac
- 26776 29d9 00000000 		.quad	.LBB933
- 26776      00000000 
- 26777 29e1 00000000 		.quad	.LBE933
- 26777      00000000 
- 26778 29e9 02       		.byte	0x2
- 26779 29ea 9806     		.value	0x698
- 26780 29ec 252A0000 		.long	0x2a25
- 26781 29f0 32       		.uleb128 0x32
- 26782 29f1 BE0E0000 		.long	0xebe
- 26783 29f5 03       		.byte	0x3
- 26784 29f6 91       		.byte	0x91
- 26785 29f7 E04E     		.sleb128 -6304
- 26786 29f9 35       		.uleb128 0x35
- 26787 29fa CB0E0000 		.long	0xecb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 750
-
-
- 26788 29fe 00000000 		.quad	.LBB935
- 26788      00000000 
- 26789 2a06 00000000 		.quad	.LBE935
- 26789      00000000 
- 26790 2a0e 02       		.byte	0x2
- 26791 2a0f 4905     		.value	0x549
- 26792 2a11 32       		.uleb128 0x32
- 26793 2a12 E90E0000 		.long	0xee9
- 26794 2a16 03       		.byte	0x3
- 26795 2a17 91       		.byte	0x91
- 26796 2a18 FC4E     		.sleb128 -6276
- 26797 2a1a 32       		.uleb128 0x32
- 26798 2a1b DD0E0000 		.long	0xedd
- 26799 2a1f 03       		.byte	0x3
- 26800 2a20 91       		.byte	0x91
- 26801 2a21 804F     		.sleb128 -6272
- 26802 2a23 00       		.byte	0x0
- 26803 2a24 00       		.byte	0x0
- 26804 2a25 33       		.uleb128 0x33
- 26805 2a26 00000000 		.quad	.LBB937
- 26805      00000000 
- 26806 2a2e 00000000 		.quad	.LBE937
- 26806      00000000 
- 26807 2a36 34       		.uleb128 0x34
- 26808 2a37 480C0000 		.long	0xc48
- 26809 2a3b 04       		.byte	0x4
- 26810 2a3c 91       		.byte	0x91
- 26811 2a3d B0AE7F   		.sleb128 -10448
- 26812 2a40 00       		.byte	0x0
- 26813 2a41 00       		.byte	0x0
- 26814 2a42 00       		.byte	0x0
- 26815 2a43 31       		.uleb128 0x31
- 26816 2a44 F60E0000 		.long	0xef6
- 26817 2a48 00000000 		.quad	.LBB938
- 26817      00000000 
- 26818 2a50 00000000 		.quad	.LBE938
- 26818      00000000 
- 26819 2a58 02       		.byte	0x2
- 26820 2a59 D306     		.value	0x6d3
- 26821 2a5b 582C0000 		.long	0x2c58
- 26822 2a5f 32       		.uleb128 0x32
- 26823 2a60 080F0000 		.long	0xf08
- 26824 2a64 03       		.byte	0x3
- 26825 2a65 91       		.byte	0x91
- 26826 2a66 904F     		.sleb128 -6256
- 26827 2a68 33       		.uleb128 0x33
- 26828 2a69 00000000 		.quad	.LBB939
- 26828      00000000 
- 26829 2a71 00000000 		.quad	.LBE939
- 26829      00000000 
- 26830 2a79 34       		.uleb128 0x34
- 26831 2a7a 140F0000 		.long	0xf14
- 26832 2a7e 04       		.byte	0x4
- 26833 2a7f 76       		.byte	0x76
- 26834 2a80 C0AA7F   		.sleb128 -10944
- 26835 2a83 31       		.uleb128 0x31
- 26836 2a84 210F0000 		.long	0xf21
-
GAS LISTING /tmp/ccjbMjHD.s 			page 751
-
-
- 26837 2a88 00000000 		.quad	.LBB940
- 26837      00000000 
- 26838 2a90 00000000 		.quad	.LBE940
- 26838      00000000 
- 26839 2a98 02       		.byte	0x2
- 26840 2a99 1F06     		.value	0x61f
- 26841 2a9b 202B0000 		.long	0x2b20
- 26842 2a9f 32       		.uleb128 0x32
- 26843 2aa0 330F0000 		.long	0xf33
- 26844 2aa4 03       		.byte	0x3
- 26845 2aa5 91       		.byte	0x91
- 26846 2aa6 A04F     		.sleb128 -6240
- 26847 2aa8 33       		.uleb128 0x33
- 26848 2aa9 00000000 		.quad	.LBB941
- 26848      00000000 
- 26849 2ab1 00000000 		.quad	.LBE941
- 26849      00000000 
- 26850 2ab9 34       		.uleb128 0x34
- 26851 2aba 3F0F0000 		.long	0xf3f
- 26852 2abe 09       		.byte	0x9
- 26853 2abf 03       		.byte	0x3
- 26854 2ac0 00000000 		.quad	mask.7943
- 26854      00000000 
- 26855 2ac8 35       		.uleb128 0x35
- 26856 2ac9 A00D0000 		.long	0xda0
- 26857 2acd 00000000 		.quad	.LBB942
- 26857      00000000 
- 26858 2ad5 00000000 		.quad	.LBE942
- 26858      00000000 
- 26859 2add 02       		.byte	0x2
- 26860 2ade FE04     		.value	0x4fe
- 26861 2ae0 32       		.uleb128 0x32
- 26862 2ae1 BE0D0000 		.long	0xdbe
- 26863 2ae5 03       		.byte	0x3
- 26864 2ae6 91       		.byte	0x91
- 26865 2ae7 B04F     		.sleb128 -6224
- 26866 2ae9 32       		.uleb128 0x32
- 26867 2aea B20D0000 		.long	0xdb2
- 26868 2aee 03       		.byte	0x3
- 26869 2aef 91       		.byte	0x91
- 26870 2af0 C04F     		.sleb128 -6208
- 26871 2af2 35       		.uleb128 0x35
- 26872 2af3 CB0D0000 		.long	0xdcb
- 26873 2af7 00000000 		.quad	.LBB944
- 26873      00000000 
- 26874 2aff 00000000 		.quad	.LBE944
- 26874      00000000 
- 26875 2b07 02       		.byte	0x2
- 26876 2b08 7501     		.value	0x175
- 26877 2b0a 32       		.uleb128 0x32
- 26878 2b0b E90D0000 		.long	0xde9
- 26879 2b0f 03       		.byte	0x3
- 26880 2b10 91       		.byte	0x91
- 26881 2b11 D04F     		.sleb128 -6192
- 26882 2b13 32       		.uleb128 0x32
- 26883 2b14 DD0D0000 		.long	0xddd
- 26884 2b18 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 752
-
-
- 26885 2b19 91       		.byte	0x91
- 26886 2b1a E04F     		.sleb128 -6176
- 26887 2b1c 00       		.byte	0x0
- 26888 2b1d 00       		.byte	0x0
- 26889 2b1e 00       		.byte	0x0
- 26890 2b1f 00       		.byte	0x0
- 26891 2b20 31       		.uleb128 0x31
- 26892 2b21 210F0000 		.long	0xf21
- 26893 2b25 00000000 		.quad	.LBB946
- 26893      00000000 
- 26894 2b2d 00000000 		.quad	.LBE946
- 26894      00000000 
- 26895 2b35 02       		.byte	0x2
- 26896 2b36 2006     		.value	0x620
- 26897 2b38 BD2B0000 		.long	0x2bbd
- 26898 2b3c 32       		.uleb128 0x32
- 26899 2b3d 330F0000 		.long	0xf33
- 26900 2b41 03       		.byte	0x3
- 26901 2b42 91       		.byte	0x91
- 26902 2b43 F04F     		.sleb128 -6160
- 26903 2b45 33       		.uleb128 0x33
- 26904 2b46 00000000 		.quad	.LBB947
- 26904      00000000 
- 26905 2b4e 00000000 		.quad	.LBE947
- 26905      00000000 
- 26906 2b56 34       		.uleb128 0x34
- 26907 2b57 3F0F0000 		.long	0xf3f
- 26908 2b5b 09       		.byte	0x9
- 26909 2b5c 03       		.byte	0x3
- 26910 2b5d 00000000 		.quad	mask.7943
- 26910      00000000 
- 26911 2b65 35       		.uleb128 0x35
- 26912 2b66 A00D0000 		.long	0xda0
- 26913 2b6a 00000000 		.quad	.LBB948
- 26913      00000000 
- 26914 2b72 00000000 		.quad	.LBE948
- 26914      00000000 
- 26915 2b7a 02       		.byte	0x2
- 26916 2b7b FE04     		.value	0x4fe
- 26917 2b7d 32       		.uleb128 0x32
- 26918 2b7e BE0D0000 		.long	0xdbe
- 26919 2b82 03       		.byte	0x3
- 26920 2b83 91       		.byte	0x91
- 26921 2b84 8050     		.sleb128 -6144
- 26922 2b86 32       		.uleb128 0x32
- 26923 2b87 B20D0000 		.long	0xdb2
- 26924 2b8b 03       		.byte	0x3
- 26925 2b8c 91       		.byte	0x91
- 26926 2b8d 9050     		.sleb128 -6128
- 26927 2b8f 35       		.uleb128 0x35
- 26928 2b90 CB0D0000 		.long	0xdcb
- 26929 2b94 00000000 		.quad	.LBB950
- 26929      00000000 
- 26930 2b9c 00000000 		.quad	.LBE950
- 26930      00000000 
- 26931 2ba4 02       		.byte	0x2
- 26932 2ba5 7501     		.value	0x175
-
GAS LISTING /tmp/ccjbMjHD.s 			page 753
-
-
- 26933 2ba7 32       		.uleb128 0x32
- 26934 2ba8 E90D0000 		.long	0xde9
- 26935 2bac 03       		.byte	0x3
- 26936 2bad 91       		.byte	0x91
- 26937 2bae A050     		.sleb128 -6112
- 26938 2bb0 32       		.uleb128 0x32
- 26939 2bb1 DD0D0000 		.long	0xddd
- 26940 2bb5 03       		.byte	0x3
- 26941 2bb6 91       		.byte	0x91
- 26942 2bb7 B050     		.sleb128 -6096
- 26943 2bb9 00       		.byte	0x0
- 26944 2bba 00       		.byte	0x0
- 26945 2bbb 00       		.byte	0x0
- 26946 2bbc 00       		.byte	0x0
- 26947 2bbd 35       		.uleb128 0x35
- 26948 2bbe 210F0000 		.long	0xf21
- 26949 2bc2 00000000 		.quad	.LBB952
- 26949      00000000 
- 26950 2bca 00000000 		.quad	.LBE952
- 26950      00000000 
- 26951 2bd2 02       		.byte	0x2
- 26952 2bd3 2106     		.value	0x621
- 26953 2bd5 32       		.uleb128 0x32
- 26954 2bd6 330F0000 		.long	0xf33
- 26955 2bda 03       		.byte	0x3
- 26956 2bdb 91       		.byte	0x91
- 26957 2bdc C050     		.sleb128 -6080
- 26958 2bde 33       		.uleb128 0x33
- 26959 2bdf 00000000 		.quad	.LBB953
- 26959      00000000 
- 26960 2be7 00000000 		.quad	.LBE953
- 26960      00000000 
- 26961 2bef 34       		.uleb128 0x34
- 26962 2bf0 3F0F0000 		.long	0xf3f
- 26963 2bf4 09       		.byte	0x9
- 26964 2bf5 03       		.byte	0x3
- 26965 2bf6 00000000 		.quad	mask.7943
- 26965      00000000 
- 26966 2bfe 35       		.uleb128 0x35
- 26967 2bff A00D0000 		.long	0xda0
- 26968 2c03 00000000 		.quad	.LBB954
- 26968      00000000 
- 26969 2c0b 00000000 		.quad	.LBE954
- 26969      00000000 
- 26970 2c13 02       		.byte	0x2
- 26971 2c14 FE04     		.value	0x4fe
- 26972 2c16 32       		.uleb128 0x32
- 26973 2c17 BE0D0000 		.long	0xdbe
- 26974 2c1b 03       		.byte	0x3
- 26975 2c1c 91       		.byte	0x91
- 26976 2c1d D050     		.sleb128 -6064
- 26977 2c1f 32       		.uleb128 0x32
- 26978 2c20 B20D0000 		.long	0xdb2
- 26979 2c24 03       		.byte	0x3
- 26980 2c25 91       		.byte	0x91
- 26981 2c26 E050     		.sleb128 -6048
- 26982 2c28 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 754
-
-
- 26983 2c29 CB0D0000 		.long	0xdcb
- 26984 2c2d 00000000 		.quad	.LBB956
- 26984      00000000 
- 26985 2c35 00000000 		.quad	.LBE956
- 26985      00000000 
- 26986 2c3d 02       		.byte	0x2
- 26987 2c3e 7501     		.value	0x175
- 26988 2c40 32       		.uleb128 0x32
- 26989 2c41 E90D0000 		.long	0xde9
- 26990 2c45 03       		.byte	0x3
- 26991 2c46 91       		.byte	0x91
- 26992 2c47 F050     		.sleb128 -6032
- 26993 2c49 32       		.uleb128 0x32
- 26994 2c4a DD0D0000 		.long	0xddd
- 26995 2c4e 03       		.byte	0x3
- 26996 2c4f 91       		.byte	0x91
- 26997 2c50 8051     		.sleb128 -6016
- 26998 2c52 00       		.byte	0x0
- 26999 2c53 00       		.byte	0x0
- 27000 2c54 00       		.byte	0x0
- 27001 2c55 00       		.byte	0x0
- 27002 2c56 00       		.byte	0x0
- 27003 2c57 00       		.byte	0x0
- 27004 2c58 31       		.uleb128 0x31
- 27005 2c59 D50B0000 		.long	0xbd5
- 27006 2c5d 00000000 		.quad	.LBB958
- 27006      00000000 
- 27007 2c65 00000000 		.quad	.LBE958
- 27007      00000000 
- 27008 2c6d 02       		.byte	0x2
- 27009 2c6e D406     		.value	0x6d4
- 27010 2c70 3B310000 		.long	0x313b
- 27011 2c74 32       		.uleb128 0x32
- 27012 2c75 F30B0000 		.long	0xbf3
- 27013 2c79 03       		.byte	0x3
- 27014 2c7a 91       		.byte	0x91
- 27015 2c7b 9C51     		.sleb128 -5988
- 27016 2c7d 32       		.uleb128 0x32
- 27017 2c7e E70B0000 		.long	0xbe7
- 27018 2c82 03       		.byte	0x3
- 27019 2c83 91       		.byte	0x91
- 27020 2c84 A051     		.sleb128 -5984
- 27021 2c86 33       		.uleb128 0x33
- 27022 2c87 00000000 		.quad	.LBB959
- 27022      00000000 
- 27023 2c8f 00000000 		.quad	.LBE959
- 27023      00000000 
- 27024 2c97 34       		.uleb128 0x34
- 27025 2c98 FF0B0000 		.long	0xbff
- 27026 2c9c 04       		.byte	0x4
- 27027 2c9d 76       		.byte	0x76
- 27028 2c9e E0AA7F   		.sleb128 -10912
- 27029 2ca1 34       		.uleb128 0x34
- 27030 2ca2 0B0C0000 		.long	0xc0b
- 27031 2ca6 04       		.byte	0x4
- 27032 2ca7 76       		.byte	0x76
- 27033 2ca8 D0AA7F   		.sleb128 -10928
-
GAS LISTING /tmp/ccjbMjHD.s 			page 755
-
-
- 27034 2cab 31       		.uleb128 0x31
- 27035 2cac 540C0000 		.long	0xc54
- 27036 2cb0 00000000 		.quad	.LBB960
- 27036      00000000 
- 27037 2cb8 00000000 		.quad	.LBE960
- 27037      00000000 
- 27038 2cc0 02       		.byte	0x2
- 27039 2cc1 9106     		.value	0x691
- 27040 2cc3 172D0000 		.long	0x2d17
- 27041 2cc7 32       		.uleb128 0x32
- 27042 2cc8 7E0C0000 		.long	0xc7e
- 27043 2ccc 03       		.byte	0x3
- 27044 2ccd 91       		.byte	0x91
- 27045 2cce B851     		.sleb128 -5960
- 27046 2cd0 32       		.uleb128 0x32
- 27047 2cd1 720C0000 		.long	0xc72
- 27048 2cd5 03       		.byte	0x3
- 27049 2cd6 91       		.byte	0x91
- 27050 2cd7 BC51     		.sleb128 -5956
- 27051 2cd9 32       		.uleb128 0x32
- 27052 2cda 660C0000 		.long	0xc66
- 27053 2cde 03       		.byte	0x3
- 27054 2cdf 91       		.byte	0x91
- 27055 2ce0 C051     		.sleb128 -5952
- 27056 2ce2 35       		.uleb128 0x35
- 27057 2ce3 8B0C0000 		.long	0xc8b
- 27058 2ce7 00000000 		.quad	.LBB962
- 27058      00000000 
- 27059 2cef 00000000 		.quad	.LBE962
- 27059      00000000 
- 27060 2cf7 02       		.byte	0x2
- 27061 2cf8 0702     		.value	0x207
- 27062 2cfa 32       		.uleb128 0x32
- 27063 2cfb B40C0000 		.long	0xcb4
- 27064 2cff 03       		.byte	0x3
- 27065 2d00 91       		.byte	0x91
- 27066 2d01 D851     		.sleb128 -5928
- 27067 2d03 32       		.uleb128 0x32
- 27068 2d04 A90C0000 		.long	0xca9
- 27069 2d08 03       		.byte	0x3
- 27070 2d09 91       		.byte	0x91
- 27071 2d0a DC51     		.sleb128 -5924
- 27072 2d0c 32       		.uleb128 0x32
- 27073 2d0d 9D0C0000 		.long	0xc9d
- 27074 2d11 03       		.byte	0x3
- 27075 2d12 91       		.byte	0x91
- 27076 2d13 E051     		.sleb128 -5920
- 27077 2d15 00       		.byte	0x0
- 27078 2d16 00       		.byte	0x0
- 27079 2d17 31       		.uleb128 0x31
- 27080 2d18 C10C0000 		.long	0xcc1
- 27081 2d1c 00000000 		.quad	.LBB964
- 27081      00000000 
- 27082 2d24 00000000 		.quad	.LBE964
- 27082      00000000 
- 27083 2d2c 02       		.byte	0x2
- 27084 2d2d 9206     		.value	0x692
-
GAS LISTING /tmp/ccjbMjHD.s 			page 756
-
-
- 27085 2d2f A02F0000 		.long	0x2fa0
- 27086 2d33 32       		.uleb128 0x32
- 27087 2d34 D30C0000 		.long	0xcd3
- 27088 2d38 03       		.byte	0x3
- 27089 2d39 91       		.byte	0x91
- 27090 2d3a F051     		.sleb128 -5904
- 27091 2d3c 35       		.uleb128 0x35
- 27092 2d3d E00C0000 		.long	0xce0
- 27093 2d41 00000000 		.quad	.LBB966
- 27093      00000000 
- 27094 2d49 00000000 		.quad	.LBE966
- 27094      00000000 
- 27095 2d51 02       		.byte	0x2
- 27096 2d52 7D03     		.value	0x37d
- 27097 2d54 32       		.uleb128 0x32
- 27098 2d55 FE0C0000 		.long	0xcfe
- 27099 2d59 03       		.byte	0x3
- 27100 2d5a 91       		.byte	0x91
- 27101 2d5b 8852     		.sleb128 -5880
- 27102 2d5d 32       		.uleb128 0x32
- 27103 2d5e F20C0000 		.long	0xcf2
- 27104 2d62 03       		.byte	0x3
- 27105 2d63 91       		.byte	0x91
- 27106 2d64 9052     		.sleb128 -5872
- 27107 2d66 33       		.uleb128 0x33
- 27108 2d67 00000000 		.quad	.LBB967
- 27108      00000000 
- 27109 2d6f 00000000 		.quad	.LBE967
- 27109      00000000 
- 27110 2d77 34       		.uleb128 0x34
- 27111 2d78 0A0D0000 		.long	0xd0a
- 27112 2d7c 03       		.byte	0x3
- 27113 2d7d 91       		.byte	0x91
- 27114 2d7e E052     		.sleb128 -5792
- 27115 2d80 34       		.uleb128 0x34
- 27116 2d81 150D0000 		.long	0xd15
- 27117 2d85 03       		.byte	0x3
- 27118 2d86 91       		.byte	0x91
- 27119 2d87 D052     		.sleb128 -5808
- 27120 2d89 34       		.uleb128 0x34
- 27121 2d8a 200D0000 		.long	0xd20
- 27122 2d8e 03       		.byte	0x3
- 27123 2d8f 91       		.byte	0x91
- 27124 2d90 C052     		.sleb128 -5824
- 27125 2d92 34       		.uleb128 0x34
- 27126 2d93 2C0D0000 		.long	0xd2c
- 27127 2d97 03       		.byte	0x3
- 27128 2d98 91       		.byte	0x91
- 27129 2d99 B052     		.sleb128 -5840
- 27130 2d9b 34       		.uleb128 0x34
- 27131 2d9c 380D0000 		.long	0xd38
- 27132 2da0 03       		.byte	0x3
- 27133 2da1 91       		.byte	0x91
- 27134 2da2 AC52     		.sleb128 -5844
- 27135 2da4 31       		.uleb128 0x31
- 27136 2da5 4F0D0000 		.long	0xd4f
- 27137 2da9 00000000 		.quad	.LBB968
-
GAS LISTING /tmp/ccjbMjHD.s 			page 757
-
-
- 27137      00000000 
- 27138 2db1 00000000 		.quad	.LBE968
- 27138      00000000 
- 27139 2db9 02       		.byte	0x2
- 27140 2dba 5603     		.value	0x356
- 27141 2dbc D32D0000 		.long	0x2dd3
- 27142 2dc0 32       		.uleb128 0x32
- 27143 2dc1 6A0D0000 		.long	0xd6a
- 27144 2dc5 03       		.byte	0x3
- 27145 2dc6 91       		.byte	0x91
- 27146 2dc7 F052     		.sleb128 -5776
- 27147 2dc9 32       		.uleb128 0x32
- 27148 2dca 600D0000 		.long	0xd60
- 27149 2dce 03       		.byte	0x3
- 27150 2dcf 91       		.byte	0x91
- 27151 2dd0 8053     		.sleb128 -5760
- 27152 2dd2 00       		.byte	0x0
- 27153 2dd3 31       		.uleb128 0x31
- 27154 2dd4 750D0000 		.long	0xd75
- 27155 2dd8 00000000 		.quad	.LBB970
- 27155      00000000 
- 27156 2de0 00000000 		.quad	.LBE970
- 27156      00000000 
- 27157 2de8 02       		.byte	0x2
- 27158 2de9 5903     		.value	0x359
- 27159 2deb 022E0000 		.long	0x2e02
- 27160 2def 32       		.uleb128 0x32
- 27161 2df0 930D0000 		.long	0xd93
- 27162 2df4 03       		.byte	0x3
- 27163 2df5 91       		.byte	0x91
- 27164 2df6 9C53     		.sleb128 -5732
- 27165 2df8 32       		.uleb128 0x32
- 27166 2df9 870D0000 		.long	0xd87
- 27167 2dfd 03       		.byte	0x3
- 27168 2dfe 91       		.byte	0x91
- 27169 2dff A053     		.sleb128 -5728
- 27170 2e01 00       		.byte	0x0
- 27171 2e02 31       		.uleb128 0x31
- 27172 2e03 4F0D0000 		.long	0xd4f
- 27173 2e07 00000000 		.quad	.LBB972
- 27173      00000000 
- 27174 2e0f 00000000 		.quad	.LBE972
- 27174      00000000 
- 27175 2e17 02       		.byte	0x2
- 27176 2e18 5B03     		.value	0x35b
- 27177 2e1a 312E0000 		.long	0x2e31
- 27178 2e1e 32       		.uleb128 0x32
- 27179 2e1f 6A0D0000 		.long	0xd6a
- 27180 2e23 03       		.byte	0x3
- 27181 2e24 91       		.byte	0x91
- 27182 2e25 B053     		.sleb128 -5712
- 27183 2e27 32       		.uleb128 0x32
- 27184 2e28 600D0000 		.long	0xd60
- 27185 2e2c 03       		.byte	0x3
- 27186 2e2d 91       		.byte	0x91
- 27187 2e2e C053     		.sleb128 -5696
- 27188 2e30 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 758
-
-
- 27189 2e31 31       		.uleb128 0x31
- 27190 2e32 A00D0000 		.long	0xda0
- 27191 2e36 00000000 		.quad	.LBB974
- 27191      00000000 
- 27192 2e3e 00000000 		.quad	.LBE974
- 27192      00000000 
- 27193 2e46 02       		.byte	0x2
- 27194 2e47 6403     		.value	0x364
- 27195 2e49 8B2E0000 		.long	0x2e8b
- 27196 2e4d 32       		.uleb128 0x32
- 27197 2e4e BE0D0000 		.long	0xdbe
- 27198 2e52 03       		.byte	0x3
- 27199 2e53 91       		.byte	0x91
- 27200 2e54 D053     		.sleb128 -5680
- 27201 2e56 32       		.uleb128 0x32
- 27202 2e57 B20D0000 		.long	0xdb2
- 27203 2e5b 03       		.byte	0x3
- 27204 2e5c 91       		.byte	0x91
- 27205 2e5d E053     		.sleb128 -5664
- 27206 2e5f 35       		.uleb128 0x35
- 27207 2e60 CB0D0000 		.long	0xdcb
- 27208 2e64 00000000 		.quad	.LBB976
- 27208      00000000 
- 27209 2e6c 00000000 		.quad	.LBE976
- 27209      00000000 
- 27210 2e74 02       		.byte	0x2
- 27211 2e75 7501     		.value	0x175
- 27212 2e77 32       		.uleb128 0x32
- 27213 2e78 E90D0000 		.long	0xde9
- 27214 2e7c 03       		.byte	0x3
- 27215 2e7d 91       		.byte	0x91
- 27216 2e7e F053     		.sleb128 -5648
- 27217 2e80 32       		.uleb128 0x32
- 27218 2e81 DD0D0000 		.long	0xddd
- 27219 2e85 03       		.byte	0x3
- 27220 2e86 91       		.byte	0x91
- 27221 2e87 8054     		.sleb128 -5632
- 27222 2e89 00       		.byte	0x0
- 27223 2e8a 00       		.byte	0x0
- 27224 2e8b 31       		.uleb128 0x31
- 27225 2e8c FB0D0000 		.long	0xdfb
- 27226 2e90 00000000 		.quad	.LBB978
- 27226      00000000 
- 27227 2e98 00000000 		.quad	.LBE978
- 27227      00000000 
- 27228 2ea0 02       		.byte	0x2
- 27229 2ea1 6603     		.value	0x366
- 27230 2ea3 BA2E0000 		.long	0x2eba
- 27231 2ea7 32       		.uleb128 0x32
- 27232 2ea8 160E0000 		.long	0xe16
- 27233 2eac 03       		.byte	0x3
- 27234 2ead 91       		.byte	0x91
- 27235 2eae 9054     		.sleb128 -5616
- 27236 2eb0 32       		.uleb128 0x32
- 27237 2eb1 0C0E0000 		.long	0xe0c
- 27238 2eb5 03       		.byte	0x3
- 27239 2eb6 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 759
-
-
- 27240 2eb7 A054     		.sleb128 -5600
- 27241 2eb9 00       		.byte	0x0
- 27242 2eba 31       		.uleb128 0x31
- 27243 2ebb A00D0000 		.long	0xda0
- 27244 2ebf 00000000 		.quad	.LBB980
- 27244      00000000 
- 27245 2ec7 00000000 		.quad	.LBE980
- 27245      00000000 
- 27246 2ecf 02       		.byte	0x2
- 27247 2ed0 6803     		.value	0x368
- 27248 2ed2 142F0000 		.long	0x2f14
- 27249 2ed6 32       		.uleb128 0x32
- 27250 2ed7 BE0D0000 		.long	0xdbe
- 27251 2edb 03       		.byte	0x3
- 27252 2edc 91       		.byte	0x91
- 27253 2edd B054     		.sleb128 -5584
- 27254 2edf 32       		.uleb128 0x32
- 27255 2ee0 B20D0000 		.long	0xdb2
- 27256 2ee4 03       		.byte	0x3
- 27257 2ee5 91       		.byte	0x91
- 27258 2ee6 C054     		.sleb128 -5568
- 27259 2ee8 35       		.uleb128 0x35
- 27260 2ee9 CB0D0000 		.long	0xdcb
- 27261 2eed 00000000 		.quad	.LBB982
- 27261      00000000 
- 27262 2ef5 00000000 		.quad	.LBE982
- 27262      00000000 
- 27263 2efd 02       		.byte	0x2
- 27264 2efe 7501     		.value	0x175
- 27265 2f00 32       		.uleb128 0x32
- 27266 2f01 E90D0000 		.long	0xde9
- 27267 2f05 03       		.byte	0x3
- 27268 2f06 91       		.byte	0x91
- 27269 2f07 D054     		.sleb128 -5552
- 27270 2f09 32       		.uleb128 0x32
- 27271 2f0a DD0D0000 		.long	0xddd
- 27272 2f0e 03       		.byte	0x3
- 27273 2f0f 91       		.byte	0x91
- 27274 2f10 E054     		.sleb128 -5536
- 27275 2f12 00       		.byte	0x0
- 27276 2f13 00       		.byte	0x0
- 27277 2f14 31       		.uleb128 0x31
- 27278 2f15 FB0D0000 		.long	0xdfb
- 27279 2f19 00000000 		.quad	.LBB984
- 27279      00000000 
- 27280 2f21 00000000 		.quad	.LBE984
- 27280      00000000 
- 27281 2f29 02       		.byte	0x2
- 27282 2f2a 6A03     		.value	0x36a
- 27283 2f2c 432F0000 		.long	0x2f43
- 27284 2f30 32       		.uleb128 0x32
- 27285 2f31 160E0000 		.long	0xe16
- 27286 2f35 03       		.byte	0x3
- 27287 2f36 91       		.byte	0x91
- 27288 2f37 F054     		.sleb128 -5520
- 27289 2f39 32       		.uleb128 0x32
- 27290 2f3a 0C0E0000 		.long	0xe0c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 760
-
-
- 27291 2f3e 03       		.byte	0x3
- 27292 2f3f 91       		.byte	0x91
- 27293 2f40 8055     		.sleb128 -5504
- 27294 2f42 00       		.byte	0x0
- 27295 2f43 31       		.uleb128 0x31
- 27296 2f44 210E0000 		.long	0xe21
- 27297 2f48 00000000 		.quad	.LBB986
- 27297      00000000 
- 27298 2f50 00000000 		.quad	.LBE986
- 27298      00000000 
- 27299 2f58 02       		.byte	0x2
- 27300 2f59 6C03     		.value	0x36c
- 27301 2f5b 722F0000 		.long	0x2f72
- 27302 2f5f 32       		.uleb128 0x32
- 27303 2f60 3E0E0000 		.long	0xe3e
- 27304 2f64 03       		.byte	0x3
- 27305 2f65 91       		.byte	0x91
- 27306 2f66 9055     		.sleb128 -5488
- 27307 2f68 32       		.uleb128 0x32
- 27308 2f69 330E0000 		.long	0xe33
- 27309 2f6d 03       		.byte	0x3
- 27310 2f6e 91       		.byte	0x91
- 27311 2f6f A055     		.sleb128 -5472
- 27312 2f71 00       		.byte	0x0
- 27313 2f72 35       		.uleb128 0x35
- 27314 2f73 4F0D0000 		.long	0xd4f
- 27315 2f77 00000000 		.quad	.LBB988
- 27315      00000000 
- 27316 2f7f 00000000 		.quad	.LBE988
- 27316      00000000 
- 27317 2f87 02       		.byte	0x2
- 27318 2f88 6E03     		.value	0x36e
- 27319 2f8a 32       		.uleb128 0x32
- 27320 2f8b 6A0D0000 		.long	0xd6a
- 27321 2f8f 03       		.byte	0x3
- 27322 2f90 91       		.byte	0x91
- 27323 2f91 B055     		.sleb128 -5456
- 27324 2f93 32       		.uleb128 0x32
- 27325 2f94 600D0000 		.long	0xd60
- 27326 2f98 03       		.byte	0x3
- 27327 2f99 91       		.byte	0x91
- 27328 2f9a C055     		.sleb128 -5440
- 27329 2f9c 00       		.byte	0x0
- 27330 2f9d 00       		.byte	0x0
- 27331 2f9e 00       		.byte	0x0
- 27332 2f9f 00       		.byte	0x0
- 27333 2fa0 36       		.uleb128 0x36
- 27334 2fa1 00000000 		.quad	.LBB990
- 27334      00000000 
- 27335 2fa9 00000000 		.quad	.LBE990
- 27335      00000000 
- 27336 2fb1 C02F0000 		.long	0x2fc0
- 27337 2fb5 34       		.uleb128 0x34
- 27338 2fb6 1C0C0000 		.long	0xc1c
- 27339 2fba 04       		.byte	0x4
- 27340 2fbb 91       		.byte	0x91
- 27341 2fbc A0AF7F   		.sleb128 -10336
-
GAS LISTING /tmp/ccjbMjHD.s 			page 761
-
-
- 27342 2fbf 00       		.byte	0x0
- 27343 2fc0 31       		.uleb128 0x31
- 27344 2fc1 4A0E0000 		.long	0xe4a
- 27345 2fc5 00000000 		.quad	.LBB991
- 27345      00000000 
- 27346 2fcd 00000000 		.quad	.LBE991
- 27346      00000000 
- 27347 2fd5 02       		.byte	0x2
- 27348 2fd6 9406     		.value	0x694
- 27349 2fd8 5D300000 		.long	0x305d
- 27350 2fdc 32       		.uleb128 0x32
- 27351 2fdd 5C0E0000 		.long	0xe5c
- 27352 2fe1 03       		.byte	0x3
- 27353 2fe2 91       		.byte	0x91
- 27354 2fe3 D055     		.sleb128 -5424
- 27355 2fe5 33       		.uleb128 0x33
- 27356 2fe6 00000000 		.quad	.LBB992
- 27356      00000000 
- 27357 2fee 00000000 		.quad	.LBE992
- 27357      00000000 
- 27358 2ff6 34       		.uleb128 0x34
- 27359 2ff7 680E0000 		.long	0xe68
- 27360 2ffb 09       		.byte	0x9
- 27361 2ffc 03       		.byte	0x3
- 27362 2ffd 00000000 		.quad	ShiftRowTable.7385
- 27362      00000000 
- 27363 3005 35       		.uleb128 0x35
- 27364 3006 A00D0000 		.long	0xda0
- 27365 300a 00000000 		.quad	.LBB993
- 27365      00000000 
- 27366 3012 00000000 		.quad	.LBE993
- 27366      00000000 
- 27367 301a 02       		.byte	0x2
- 27368 301b 9B02     		.value	0x29b
- 27369 301d 32       		.uleb128 0x32
- 27370 301e BE0D0000 		.long	0xdbe
- 27371 3022 03       		.byte	0x3
- 27372 3023 91       		.byte	0x91
- 27373 3024 E055     		.sleb128 -5408
- 27374 3026 32       		.uleb128 0x32
- 27375 3027 B20D0000 		.long	0xdb2
- 27376 302b 03       		.byte	0x3
- 27377 302c 91       		.byte	0x91
- 27378 302d F055     		.sleb128 -5392
- 27379 302f 35       		.uleb128 0x35
- 27380 3030 CB0D0000 		.long	0xdcb
- 27381 3034 00000000 		.quad	.LBB995
- 27381      00000000 
- 27382 303c 00000000 		.quad	.LBE995
- 27382      00000000 
- 27383 3044 02       		.byte	0x2
- 27384 3045 7501     		.value	0x175
- 27385 3047 32       		.uleb128 0x32
- 27386 3048 E90D0000 		.long	0xde9
- 27387 304c 03       		.byte	0x3
- 27388 304d 91       		.byte	0x91
- 27389 304e 8056     		.sleb128 -5376
-
GAS LISTING /tmp/ccjbMjHD.s 			page 762
-
-
- 27390 3050 32       		.uleb128 0x32
- 27391 3051 DD0D0000 		.long	0xddd
- 27392 3055 03       		.byte	0x3
- 27393 3056 91       		.byte	0x91
- 27394 3057 9056     		.sleb128 -5360
- 27395 3059 00       		.byte	0x0
- 27396 305a 00       		.byte	0x0
- 27397 305b 00       		.byte	0x0
- 27398 305c 00       		.byte	0x0
- 27399 305d 36       		.uleb128 0x36
- 27400 305e 00000000 		.quad	.LBB997
- 27400      00000000 
- 27401 3066 00000000 		.quad	.LBE997
- 27401      00000000 
- 27402 306e 7D300000 		.long	0x307d
- 27403 3072 34       		.uleb128 0x34
- 27404 3073 2C0C0000 		.long	0xc2c
- 27405 3077 04       		.byte	0x4
- 27406 3078 91       		.byte	0x91
- 27407 3079 90AF7F   		.sleb128 -10352
- 27408 307c 00       		.byte	0x0
- 27409 307d 31       		.uleb128 0x31
- 27410 307e 860E0000 		.long	0xe86
- 27411 3082 00000000 		.quad	.LBB998
- 27411      00000000 
- 27412 308a 00000000 		.quad	.LBE998
- 27412      00000000 
- 27413 3092 02       		.byte	0x2
- 27414 3093 9606     		.value	0x696
- 27415 3095 AC300000 		.long	0x30ac
- 27416 3099 32       		.uleb128 0x32
- 27417 309a A10E0000 		.long	0xea1
- 27418 309e 03       		.byte	0x3
- 27419 309f 91       		.byte	0x91
- 27420 30a0 A056     		.sleb128 -5344
- 27421 30a2 32       		.uleb128 0x32
- 27422 30a3 970E0000 		.long	0xe97
- 27423 30a7 03       		.byte	0x3
- 27424 30a8 91       		.byte	0x91
- 27425 30a9 B056     		.sleb128 -5328
- 27426 30ab 00       		.byte	0x0
- 27427 30ac 36       		.uleb128 0x36
- 27428 30ad 00000000 		.quad	.LBB1000
- 27428      00000000 
- 27429 30b5 00000000 		.quad	.LBE1000
- 27429      00000000 
- 27430 30bd CC300000 		.long	0x30cc
- 27431 30c1 34       		.uleb128 0x34
- 27432 30c2 3C0C0000 		.long	0xc3c
- 27433 30c6 04       		.byte	0x4
- 27434 30c7 91       		.byte	0x91
- 27435 30c8 80AF7F   		.sleb128 -10368
- 27436 30cb 00       		.byte	0x0
- 27437 30cc 31       		.uleb128 0x31
- 27438 30cd AC0E0000 		.long	0xeac
- 27439 30d1 00000000 		.quad	.LBB1001
- 27439      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 763
-
-
- 27440 30d9 00000000 		.quad	.LBE1001
- 27440      00000000 
- 27441 30e1 02       		.byte	0x2
- 27442 30e2 9806     		.value	0x698
- 27443 30e4 1D310000 		.long	0x311d
- 27444 30e8 32       		.uleb128 0x32
- 27445 30e9 BE0E0000 		.long	0xebe
- 27446 30ed 03       		.byte	0x3
- 27447 30ee 91       		.byte	0x91
- 27448 30ef C056     		.sleb128 -5312
- 27449 30f1 35       		.uleb128 0x35
- 27450 30f2 CB0E0000 		.long	0xecb
- 27451 30f6 00000000 		.quad	.LBB1003
- 27451      00000000 
- 27452 30fe 00000000 		.quad	.LBE1003
- 27452      00000000 
- 27453 3106 02       		.byte	0x2
- 27454 3107 4905     		.value	0x549
- 27455 3109 32       		.uleb128 0x32
- 27456 310a E90E0000 		.long	0xee9
- 27457 310e 03       		.byte	0x3
- 27458 310f 91       		.byte	0x91
- 27459 3110 DC56     		.sleb128 -5284
- 27460 3112 32       		.uleb128 0x32
- 27461 3113 DD0E0000 		.long	0xedd
- 27462 3117 03       		.byte	0x3
- 27463 3118 91       		.byte	0x91
- 27464 3119 E056     		.sleb128 -5280
- 27465 311b 00       		.byte	0x0
- 27466 311c 00       		.byte	0x0
- 27467 311d 33       		.uleb128 0x33
- 27468 311e 00000000 		.quad	.LBB1005
- 27468      00000000 
- 27469 3126 00000000 		.quad	.LBE1005
- 27469      00000000 
- 27470 312e 34       		.uleb128 0x34
- 27471 312f 480C0000 		.long	0xc48
- 27472 3133 04       		.byte	0x4
- 27473 3134 91       		.byte	0x91
- 27474 3135 F0AE7F   		.sleb128 -10384
- 27475 3138 00       		.byte	0x0
- 27476 3139 00       		.byte	0x0
- 27477 313a 00       		.byte	0x0
- 27478 313b 31       		.uleb128 0x31
- 27479 313c F60E0000 		.long	0xef6
- 27480 3140 00000000 		.quad	.LBB1006
- 27480      00000000 
- 27481 3148 00000000 		.quad	.LBE1006
- 27481      00000000 
- 27482 3150 02       		.byte	0x2
- 27483 3151 D406     		.value	0x6d4
- 27484 3153 50330000 		.long	0x3350
- 27485 3157 32       		.uleb128 0x32
- 27486 3158 080F0000 		.long	0xf08
- 27487 315c 03       		.byte	0x3
- 27488 315d 91       		.byte	0x91
- 27489 315e F056     		.sleb128 -5264
-
GAS LISTING /tmp/ccjbMjHD.s 			page 764
-
-
- 27490 3160 33       		.uleb128 0x33
- 27491 3161 00000000 		.quad	.LBB1007
- 27491      00000000 
- 27492 3169 00000000 		.quad	.LBE1007
- 27492      00000000 
- 27493 3171 34       		.uleb128 0x34
- 27494 3172 140F0000 		.long	0xf14
- 27495 3176 04       		.byte	0x4
- 27496 3177 76       		.byte	0x76
- 27497 3178 F0AA7F   		.sleb128 -10896
- 27498 317b 31       		.uleb128 0x31
- 27499 317c 210F0000 		.long	0xf21
- 27500 3180 00000000 		.quad	.LBB1008
- 27500      00000000 
- 27501 3188 00000000 		.quad	.LBE1008
- 27501      00000000 
- 27502 3190 02       		.byte	0x2
- 27503 3191 1F06     		.value	0x61f
- 27504 3193 18320000 		.long	0x3218
- 27505 3197 32       		.uleb128 0x32
- 27506 3198 330F0000 		.long	0xf33
- 27507 319c 03       		.byte	0x3
- 27508 319d 91       		.byte	0x91
- 27509 319e 8057     		.sleb128 -5248
- 27510 31a0 33       		.uleb128 0x33
- 27511 31a1 00000000 		.quad	.LBB1009
- 27511      00000000 
- 27512 31a9 00000000 		.quad	.LBE1009
- 27512      00000000 
- 27513 31b1 34       		.uleb128 0x34
- 27514 31b2 3F0F0000 		.long	0xf3f
- 27515 31b6 09       		.byte	0x9
- 27516 31b7 03       		.byte	0x3
- 27517 31b8 00000000 		.quad	mask.7943
- 27517      00000000 
- 27518 31c0 35       		.uleb128 0x35
- 27519 31c1 A00D0000 		.long	0xda0
- 27520 31c5 00000000 		.quad	.LBB1010
- 27520      00000000 
- 27521 31cd 00000000 		.quad	.LBE1010
- 27521      00000000 
- 27522 31d5 02       		.byte	0x2
- 27523 31d6 FE04     		.value	0x4fe
- 27524 31d8 32       		.uleb128 0x32
- 27525 31d9 BE0D0000 		.long	0xdbe
- 27526 31dd 03       		.byte	0x3
- 27527 31de 91       		.byte	0x91
- 27528 31df 9057     		.sleb128 -5232
- 27529 31e1 32       		.uleb128 0x32
- 27530 31e2 B20D0000 		.long	0xdb2
- 27531 31e6 03       		.byte	0x3
- 27532 31e7 91       		.byte	0x91
- 27533 31e8 A057     		.sleb128 -5216
- 27534 31ea 35       		.uleb128 0x35
- 27535 31eb CB0D0000 		.long	0xdcb
- 27536 31ef 00000000 		.quad	.LBB1012
- 27536      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 765
-
-
- 27537 31f7 00000000 		.quad	.LBE1012
- 27537      00000000 
- 27538 31ff 02       		.byte	0x2
- 27539 3200 7501     		.value	0x175
- 27540 3202 32       		.uleb128 0x32
- 27541 3203 E90D0000 		.long	0xde9
- 27542 3207 03       		.byte	0x3
- 27543 3208 91       		.byte	0x91
- 27544 3209 B057     		.sleb128 -5200
- 27545 320b 32       		.uleb128 0x32
- 27546 320c DD0D0000 		.long	0xddd
- 27547 3210 03       		.byte	0x3
- 27548 3211 91       		.byte	0x91
- 27549 3212 C057     		.sleb128 -5184
- 27550 3214 00       		.byte	0x0
- 27551 3215 00       		.byte	0x0
- 27552 3216 00       		.byte	0x0
- 27553 3217 00       		.byte	0x0
- 27554 3218 31       		.uleb128 0x31
- 27555 3219 210F0000 		.long	0xf21
- 27556 321d 00000000 		.quad	.LBB1014
- 27556      00000000 
- 27557 3225 00000000 		.quad	.LBE1014
- 27557      00000000 
- 27558 322d 02       		.byte	0x2
- 27559 322e 2006     		.value	0x620
- 27560 3230 B5320000 		.long	0x32b5
- 27561 3234 32       		.uleb128 0x32
- 27562 3235 330F0000 		.long	0xf33
- 27563 3239 03       		.byte	0x3
- 27564 323a 91       		.byte	0x91
- 27565 323b D057     		.sleb128 -5168
- 27566 323d 33       		.uleb128 0x33
- 27567 323e 00000000 		.quad	.LBB1015
- 27567      00000000 
- 27568 3246 00000000 		.quad	.LBE1015
- 27568      00000000 
- 27569 324e 34       		.uleb128 0x34
- 27570 324f 3F0F0000 		.long	0xf3f
- 27571 3253 09       		.byte	0x9
- 27572 3254 03       		.byte	0x3
- 27573 3255 00000000 		.quad	mask.7943
- 27573      00000000 
- 27574 325d 35       		.uleb128 0x35
- 27575 325e A00D0000 		.long	0xda0
- 27576 3262 00000000 		.quad	.LBB1016
- 27576      00000000 
- 27577 326a 00000000 		.quad	.LBE1016
- 27577      00000000 
- 27578 3272 02       		.byte	0x2
- 27579 3273 FE04     		.value	0x4fe
- 27580 3275 32       		.uleb128 0x32
- 27581 3276 BE0D0000 		.long	0xdbe
- 27582 327a 03       		.byte	0x3
- 27583 327b 91       		.byte	0x91
- 27584 327c E057     		.sleb128 -5152
- 27585 327e 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 766
-
-
- 27586 327f B20D0000 		.long	0xdb2
- 27587 3283 03       		.byte	0x3
- 27588 3284 91       		.byte	0x91
- 27589 3285 F057     		.sleb128 -5136
- 27590 3287 35       		.uleb128 0x35
- 27591 3288 CB0D0000 		.long	0xdcb
- 27592 328c 00000000 		.quad	.LBB1018
- 27592      00000000 
- 27593 3294 00000000 		.quad	.LBE1018
- 27593      00000000 
- 27594 329c 02       		.byte	0x2
- 27595 329d 7501     		.value	0x175
- 27596 329f 32       		.uleb128 0x32
- 27597 32a0 E90D0000 		.long	0xde9
- 27598 32a4 03       		.byte	0x3
- 27599 32a5 91       		.byte	0x91
- 27600 32a6 8058     		.sleb128 -5120
- 27601 32a8 32       		.uleb128 0x32
- 27602 32a9 DD0D0000 		.long	0xddd
- 27603 32ad 03       		.byte	0x3
- 27604 32ae 91       		.byte	0x91
- 27605 32af 9058     		.sleb128 -5104
- 27606 32b1 00       		.byte	0x0
- 27607 32b2 00       		.byte	0x0
- 27608 32b3 00       		.byte	0x0
- 27609 32b4 00       		.byte	0x0
- 27610 32b5 35       		.uleb128 0x35
- 27611 32b6 210F0000 		.long	0xf21
- 27612 32ba 00000000 		.quad	.LBB1020
- 27612      00000000 
- 27613 32c2 00000000 		.quad	.LBE1020
- 27613      00000000 
- 27614 32ca 02       		.byte	0x2
- 27615 32cb 2106     		.value	0x621
- 27616 32cd 32       		.uleb128 0x32
- 27617 32ce 330F0000 		.long	0xf33
- 27618 32d2 03       		.byte	0x3
- 27619 32d3 91       		.byte	0x91
- 27620 32d4 A058     		.sleb128 -5088
- 27621 32d6 33       		.uleb128 0x33
- 27622 32d7 00000000 		.quad	.LBB1021
- 27622      00000000 
- 27623 32df 00000000 		.quad	.LBE1021
- 27623      00000000 
- 27624 32e7 34       		.uleb128 0x34
- 27625 32e8 3F0F0000 		.long	0xf3f
- 27626 32ec 09       		.byte	0x9
- 27627 32ed 03       		.byte	0x3
- 27628 32ee 00000000 		.quad	mask.7943
- 27628      00000000 
- 27629 32f6 35       		.uleb128 0x35
- 27630 32f7 A00D0000 		.long	0xda0
- 27631 32fb 00000000 		.quad	.LBB1022
- 27631      00000000 
- 27632 3303 00000000 		.quad	.LBE1022
- 27632      00000000 
- 27633 330b 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 767
-
-
- 27634 330c FE04     		.value	0x4fe
- 27635 330e 32       		.uleb128 0x32
- 27636 330f BE0D0000 		.long	0xdbe
- 27637 3313 03       		.byte	0x3
- 27638 3314 91       		.byte	0x91
- 27639 3315 B058     		.sleb128 -5072
- 27640 3317 32       		.uleb128 0x32
- 27641 3318 B20D0000 		.long	0xdb2
- 27642 331c 03       		.byte	0x3
- 27643 331d 91       		.byte	0x91
- 27644 331e C058     		.sleb128 -5056
- 27645 3320 35       		.uleb128 0x35
- 27646 3321 CB0D0000 		.long	0xdcb
- 27647 3325 00000000 		.quad	.LBB1024
- 27647      00000000 
- 27648 332d 00000000 		.quad	.LBE1024
- 27648      00000000 
- 27649 3335 02       		.byte	0x2
- 27650 3336 7501     		.value	0x175
- 27651 3338 32       		.uleb128 0x32
- 27652 3339 E90D0000 		.long	0xde9
- 27653 333d 03       		.byte	0x3
- 27654 333e 91       		.byte	0x91
- 27655 333f D058     		.sleb128 -5040
- 27656 3341 32       		.uleb128 0x32
- 27657 3342 DD0D0000 		.long	0xddd
- 27658 3346 03       		.byte	0x3
- 27659 3347 91       		.byte	0x91
- 27660 3348 E058     		.sleb128 -5024
- 27661 334a 00       		.byte	0x0
- 27662 334b 00       		.byte	0x0
- 27663 334c 00       		.byte	0x0
- 27664 334d 00       		.byte	0x0
- 27665 334e 00       		.byte	0x0
- 27666 334f 00       		.byte	0x0
- 27667 3350 31       		.uleb128 0x31
- 27668 3351 D50B0000 		.long	0xbd5
- 27669 3355 00000000 		.quad	.LBB1026
- 27669      00000000 
- 27670 335d 00000000 		.quad	.LBE1026
- 27670      00000000 
- 27671 3365 02       		.byte	0x2
- 27672 3366 D506     		.value	0x6d5
- 27673 3368 33380000 		.long	0x3833
- 27674 336c 32       		.uleb128 0x32
- 27675 336d F30B0000 		.long	0xbf3
- 27676 3371 03       		.byte	0x3
- 27677 3372 91       		.byte	0x91
- 27678 3373 FC58     		.sleb128 -4996
- 27679 3375 32       		.uleb128 0x32
- 27680 3376 E70B0000 		.long	0xbe7
- 27681 337a 03       		.byte	0x3
- 27682 337b 91       		.byte	0x91
- 27683 337c 8059     		.sleb128 -4992
- 27684 337e 33       		.uleb128 0x33
- 27685 337f 00000000 		.quad	.LBB1027
- 27685      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 768
-
-
- 27686 3387 00000000 		.quad	.LBE1027
- 27686      00000000 
- 27687 338f 34       		.uleb128 0x34
- 27688 3390 FF0B0000 		.long	0xbff
- 27689 3394 04       		.byte	0x4
- 27690 3395 76       		.byte	0x76
- 27691 3396 90AB7F   		.sleb128 -10864
- 27692 3399 34       		.uleb128 0x34
- 27693 339a 0B0C0000 		.long	0xc0b
- 27694 339e 04       		.byte	0x4
- 27695 339f 76       		.byte	0x76
- 27696 33a0 80AB7F   		.sleb128 -10880
- 27697 33a3 31       		.uleb128 0x31
- 27698 33a4 540C0000 		.long	0xc54
- 27699 33a8 00000000 		.quad	.LBB1028
- 27699      00000000 
- 27700 33b0 00000000 		.quad	.LBE1028
- 27700      00000000 
- 27701 33b8 02       		.byte	0x2
- 27702 33b9 9106     		.value	0x691
- 27703 33bb 0F340000 		.long	0x340f
- 27704 33bf 32       		.uleb128 0x32
- 27705 33c0 7E0C0000 		.long	0xc7e
- 27706 33c4 03       		.byte	0x3
- 27707 33c5 91       		.byte	0x91
- 27708 33c6 9859     		.sleb128 -4968
- 27709 33c8 32       		.uleb128 0x32
- 27710 33c9 720C0000 		.long	0xc72
- 27711 33cd 03       		.byte	0x3
- 27712 33ce 91       		.byte	0x91
- 27713 33cf 9C59     		.sleb128 -4964
- 27714 33d1 32       		.uleb128 0x32
- 27715 33d2 660C0000 		.long	0xc66
- 27716 33d6 03       		.byte	0x3
- 27717 33d7 91       		.byte	0x91
- 27718 33d8 A059     		.sleb128 -4960
- 27719 33da 35       		.uleb128 0x35
- 27720 33db 8B0C0000 		.long	0xc8b
- 27721 33df 00000000 		.quad	.LBB1030
- 27721      00000000 
- 27722 33e7 00000000 		.quad	.LBE1030
- 27722      00000000 
- 27723 33ef 02       		.byte	0x2
- 27724 33f0 0702     		.value	0x207
- 27725 33f2 32       		.uleb128 0x32
- 27726 33f3 B40C0000 		.long	0xcb4
- 27727 33f7 03       		.byte	0x3
- 27728 33f8 91       		.byte	0x91
- 27729 33f9 B859     		.sleb128 -4936
- 27730 33fb 32       		.uleb128 0x32
- 27731 33fc A90C0000 		.long	0xca9
- 27732 3400 03       		.byte	0x3
- 27733 3401 91       		.byte	0x91
- 27734 3402 BC59     		.sleb128 -4932
- 27735 3404 32       		.uleb128 0x32
- 27736 3405 9D0C0000 		.long	0xc9d
- 27737 3409 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 769
-
-
- 27738 340a 91       		.byte	0x91
- 27739 340b C059     		.sleb128 -4928
- 27740 340d 00       		.byte	0x0
- 27741 340e 00       		.byte	0x0
- 27742 340f 31       		.uleb128 0x31
- 27743 3410 C10C0000 		.long	0xcc1
- 27744 3414 00000000 		.quad	.LBB1032
- 27744      00000000 
- 27745 341c 00000000 		.quad	.LBE1032
- 27745      00000000 
- 27746 3424 02       		.byte	0x2
- 27747 3425 9206     		.value	0x692
- 27748 3427 98360000 		.long	0x3698
- 27749 342b 32       		.uleb128 0x32
- 27750 342c D30C0000 		.long	0xcd3
- 27751 3430 03       		.byte	0x3
- 27752 3431 91       		.byte	0x91
- 27753 3432 D059     		.sleb128 -4912
- 27754 3434 35       		.uleb128 0x35
- 27755 3435 E00C0000 		.long	0xce0
- 27756 3439 00000000 		.quad	.LBB1034
- 27756      00000000 
- 27757 3441 00000000 		.quad	.LBE1034
- 27757      00000000 
- 27758 3449 02       		.byte	0x2
- 27759 344a 7D03     		.value	0x37d
- 27760 344c 32       		.uleb128 0x32
- 27761 344d FE0C0000 		.long	0xcfe
- 27762 3451 03       		.byte	0x3
- 27763 3452 91       		.byte	0x91
- 27764 3453 E859     		.sleb128 -4888
- 27765 3455 32       		.uleb128 0x32
- 27766 3456 F20C0000 		.long	0xcf2
- 27767 345a 03       		.byte	0x3
- 27768 345b 91       		.byte	0x91
- 27769 345c F059     		.sleb128 -4880
- 27770 345e 33       		.uleb128 0x33
- 27771 345f 00000000 		.quad	.LBB1035
- 27771      00000000 
- 27772 3467 00000000 		.quad	.LBE1035
- 27772      00000000 
- 27773 346f 34       		.uleb128 0x34
- 27774 3470 0A0D0000 		.long	0xd0a
- 27775 3474 03       		.byte	0x3
- 27776 3475 91       		.byte	0x91
- 27777 3476 C05A     		.sleb128 -4800
- 27778 3478 34       		.uleb128 0x34
- 27779 3479 150D0000 		.long	0xd15
- 27780 347d 03       		.byte	0x3
- 27781 347e 91       		.byte	0x91
- 27782 347f B05A     		.sleb128 -4816
- 27783 3481 34       		.uleb128 0x34
- 27784 3482 200D0000 		.long	0xd20
- 27785 3486 03       		.byte	0x3
- 27786 3487 91       		.byte	0x91
- 27787 3488 A05A     		.sleb128 -4832
- 27788 348a 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 770
-
-
- 27789 348b 2C0D0000 		.long	0xd2c
- 27790 348f 03       		.byte	0x3
- 27791 3490 91       		.byte	0x91
- 27792 3491 905A     		.sleb128 -4848
- 27793 3493 34       		.uleb128 0x34
- 27794 3494 380D0000 		.long	0xd38
- 27795 3498 03       		.byte	0x3
- 27796 3499 91       		.byte	0x91
- 27797 349a 8C5A     		.sleb128 -4852
- 27798 349c 31       		.uleb128 0x31
- 27799 349d 4F0D0000 		.long	0xd4f
- 27800 34a1 00000000 		.quad	.LBB1036
- 27800      00000000 
- 27801 34a9 00000000 		.quad	.LBE1036
- 27801      00000000 
- 27802 34b1 02       		.byte	0x2
- 27803 34b2 5603     		.value	0x356
- 27804 34b4 CB340000 		.long	0x34cb
- 27805 34b8 32       		.uleb128 0x32
- 27806 34b9 6A0D0000 		.long	0xd6a
- 27807 34bd 03       		.byte	0x3
- 27808 34be 91       		.byte	0x91
- 27809 34bf D05A     		.sleb128 -4784
- 27810 34c1 32       		.uleb128 0x32
- 27811 34c2 600D0000 		.long	0xd60
- 27812 34c6 03       		.byte	0x3
- 27813 34c7 91       		.byte	0x91
- 27814 34c8 E05A     		.sleb128 -4768
- 27815 34ca 00       		.byte	0x0
- 27816 34cb 31       		.uleb128 0x31
- 27817 34cc 750D0000 		.long	0xd75
- 27818 34d0 00000000 		.quad	.LBB1038
- 27818      00000000 
- 27819 34d8 00000000 		.quad	.LBE1038
- 27819      00000000 
- 27820 34e0 02       		.byte	0x2
- 27821 34e1 5903     		.value	0x359
- 27822 34e3 FA340000 		.long	0x34fa
- 27823 34e7 32       		.uleb128 0x32
- 27824 34e8 930D0000 		.long	0xd93
- 27825 34ec 03       		.byte	0x3
- 27826 34ed 91       		.byte	0x91
- 27827 34ee FC5A     		.sleb128 -4740
- 27828 34f0 32       		.uleb128 0x32
- 27829 34f1 870D0000 		.long	0xd87
- 27830 34f5 03       		.byte	0x3
- 27831 34f6 91       		.byte	0x91
- 27832 34f7 805B     		.sleb128 -4736
- 27833 34f9 00       		.byte	0x0
- 27834 34fa 31       		.uleb128 0x31
- 27835 34fb 4F0D0000 		.long	0xd4f
- 27836 34ff 00000000 		.quad	.LBB1040
- 27836      00000000 
- 27837 3507 00000000 		.quad	.LBE1040
- 27837      00000000 
- 27838 350f 02       		.byte	0x2
- 27839 3510 5B03     		.value	0x35b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 771
-
-
- 27840 3512 29350000 		.long	0x3529
- 27841 3516 32       		.uleb128 0x32
- 27842 3517 6A0D0000 		.long	0xd6a
- 27843 351b 03       		.byte	0x3
- 27844 351c 91       		.byte	0x91
- 27845 351d 905B     		.sleb128 -4720
- 27846 351f 32       		.uleb128 0x32
- 27847 3520 600D0000 		.long	0xd60
- 27848 3524 03       		.byte	0x3
- 27849 3525 91       		.byte	0x91
- 27850 3526 A05B     		.sleb128 -4704
- 27851 3528 00       		.byte	0x0
- 27852 3529 31       		.uleb128 0x31
- 27853 352a A00D0000 		.long	0xda0
- 27854 352e 00000000 		.quad	.LBB1042
- 27854      00000000 
- 27855 3536 00000000 		.quad	.LBE1042
- 27855      00000000 
- 27856 353e 02       		.byte	0x2
- 27857 353f 6403     		.value	0x364
- 27858 3541 83350000 		.long	0x3583
- 27859 3545 32       		.uleb128 0x32
- 27860 3546 BE0D0000 		.long	0xdbe
- 27861 354a 03       		.byte	0x3
- 27862 354b 91       		.byte	0x91
- 27863 354c B05B     		.sleb128 -4688
- 27864 354e 32       		.uleb128 0x32
- 27865 354f B20D0000 		.long	0xdb2
- 27866 3553 03       		.byte	0x3
- 27867 3554 91       		.byte	0x91
- 27868 3555 C05B     		.sleb128 -4672
- 27869 3557 35       		.uleb128 0x35
- 27870 3558 CB0D0000 		.long	0xdcb
- 27871 355c 00000000 		.quad	.LBB1044
- 27871      00000000 
- 27872 3564 00000000 		.quad	.LBE1044
- 27872      00000000 
- 27873 356c 02       		.byte	0x2
- 27874 356d 7501     		.value	0x175
- 27875 356f 32       		.uleb128 0x32
- 27876 3570 E90D0000 		.long	0xde9
- 27877 3574 03       		.byte	0x3
- 27878 3575 91       		.byte	0x91
- 27879 3576 D05B     		.sleb128 -4656
- 27880 3578 32       		.uleb128 0x32
- 27881 3579 DD0D0000 		.long	0xddd
- 27882 357d 03       		.byte	0x3
- 27883 357e 91       		.byte	0x91
- 27884 357f E05B     		.sleb128 -4640
- 27885 3581 00       		.byte	0x0
- 27886 3582 00       		.byte	0x0
- 27887 3583 31       		.uleb128 0x31
- 27888 3584 FB0D0000 		.long	0xdfb
- 27889 3588 00000000 		.quad	.LBB1046
- 27889      00000000 
- 27890 3590 00000000 		.quad	.LBE1046
- 27890      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 772
-
-
- 27891 3598 02       		.byte	0x2
- 27892 3599 6603     		.value	0x366
- 27893 359b B2350000 		.long	0x35b2
- 27894 359f 32       		.uleb128 0x32
- 27895 35a0 160E0000 		.long	0xe16
- 27896 35a4 03       		.byte	0x3
- 27897 35a5 91       		.byte	0x91
- 27898 35a6 F05B     		.sleb128 -4624
- 27899 35a8 32       		.uleb128 0x32
- 27900 35a9 0C0E0000 		.long	0xe0c
- 27901 35ad 03       		.byte	0x3
- 27902 35ae 91       		.byte	0x91
- 27903 35af 805C     		.sleb128 -4608
- 27904 35b1 00       		.byte	0x0
- 27905 35b2 31       		.uleb128 0x31
- 27906 35b3 A00D0000 		.long	0xda0
- 27907 35b7 00000000 		.quad	.LBB1048
- 27907      00000000 
- 27908 35bf 00000000 		.quad	.LBE1048
- 27908      00000000 
- 27909 35c7 02       		.byte	0x2
- 27910 35c8 6803     		.value	0x368
- 27911 35ca 0C360000 		.long	0x360c
- 27912 35ce 32       		.uleb128 0x32
- 27913 35cf BE0D0000 		.long	0xdbe
- 27914 35d3 03       		.byte	0x3
- 27915 35d4 91       		.byte	0x91
- 27916 35d5 905C     		.sleb128 -4592
- 27917 35d7 32       		.uleb128 0x32
- 27918 35d8 B20D0000 		.long	0xdb2
- 27919 35dc 03       		.byte	0x3
- 27920 35dd 91       		.byte	0x91
- 27921 35de A05C     		.sleb128 -4576
- 27922 35e0 35       		.uleb128 0x35
- 27923 35e1 CB0D0000 		.long	0xdcb
- 27924 35e5 00000000 		.quad	.LBB1050
- 27924      00000000 
- 27925 35ed 00000000 		.quad	.LBE1050
- 27925      00000000 
- 27926 35f5 02       		.byte	0x2
- 27927 35f6 7501     		.value	0x175
- 27928 35f8 32       		.uleb128 0x32
- 27929 35f9 E90D0000 		.long	0xde9
- 27930 35fd 03       		.byte	0x3
- 27931 35fe 91       		.byte	0x91
- 27932 35ff B05C     		.sleb128 -4560
- 27933 3601 32       		.uleb128 0x32
- 27934 3602 DD0D0000 		.long	0xddd
- 27935 3606 03       		.byte	0x3
- 27936 3607 91       		.byte	0x91
- 27937 3608 C05C     		.sleb128 -4544
- 27938 360a 00       		.byte	0x0
- 27939 360b 00       		.byte	0x0
- 27940 360c 31       		.uleb128 0x31
- 27941 360d FB0D0000 		.long	0xdfb
- 27942 3611 00000000 		.quad	.LBB1052
- 27942      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 773
-
-
- 27943 3619 00000000 		.quad	.LBE1052
- 27943      00000000 
- 27944 3621 02       		.byte	0x2
- 27945 3622 6A03     		.value	0x36a
- 27946 3624 3B360000 		.long	0x363b
- 27947 3628 32       		.uleb128 0x32
- 27948 3629 160E0000 		.long	0xe16
- 27949 362d 03       		.byte	0x3
- 27950 362e 91       		.byte	0x91
- 27951 362f D05C     		.sleb128 -4528
- 27952 3631 32       		.uleb128 0x32
- 27953 3632 0C0E0000 		.long	0xe0c
- 27954 3636 03       		.byte	0x3
- 27955 3637 91       		.byte	0x91
- 27956 3638 E05C     		.sleb128 -4512
- 27957 363a 00       		.byte	0x0
- 27958 363b 31       		.uleb128 0x31
- 27959 363c 210E0000 		.long	0xe21
- 27960 3640 00000000 		.quad	.LBB1054
- 27960      00000000 
- 27961 3648 00000000 		.quad	.LBE1054
- 27961      00000000 
- 27962 3650 02       		.byte	0x2
- 27963 3651 6C03     		.value	0x36c
- 27964 3653 6A360000 		.long	0x366a
- 27965 3657 32       		.uleb128 0x32
- 27966 3658 3E0E0000 		.long	0xe3e
- 27967 365c 03       		.byte	0x3
- 27968 365d 91       		.byte	0x91
- 27969 365e F05C     		.sleb128 -4496
- 27970 3660 32       		.uleb128 0x32
- 27971 3661 330E0000 		.long	0xe33
- 27972 3665 03       		.byte	0x3
- 27973 3666 91       		.byte	0x91
- 27974 3667 805D     		.sleb128 -4480
- 27975 3669 00       		.byte	0x0
- 27976 366a 35       		.uleb128 0x35
- 27977 366b 4F0D0000 		.long	0xd4f
- 27978 366f 00000000 		.quad	.LBB1056
- 27978      00000000 
- 27979 3677 00000000 		.quad	.LBE1056
- 27979      00000000 
- 27980 367f 02       		.byte	0x2
- 27981 3680 6E03     		.value	0x36e
- 27982 3682 32       		.uleb128 0x32
- 27983 3683 6A0D0000 		.long	0xd6a
- 27984 3687 03       		.byte	0x3
- 27985 3688 91       		.byte	0x91
- 27986 3689 905D     		.sleb128 -4464
- 27987 368b 32       		.uleb128 0x32
- 27988 368c 600D0000 		.long	0xd60
- 27989 3690 03       		.byte	0x3
- 27990 3691 91       		.byte	0x91
- 27991 3692 A05D     		.sleb128 -4448
- 27992 3694 00       		.byte	0x0
- 27993 3695 00       		.byte	0x0
- 27994 3696 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 774
-
-
- 27995 3697 00       		.byte	0x0
- 27996 3698 36       		.uleb128 0x36
- 27997 3699 00000000 		.quad	.LBB1058
- 27997      00000000 
- 27998 36a1 00000000 		.quad	.LBE1058
- 27998      00000000 
- 27999 36a9 B8360000 		.long	0x36b8
- 28000 36ad 34       		.uleb128 0x34
- 28001 36ae 1C0C0000 		.long	0xc1c
- 28002 36b2 04       		.byte	0x4
- 28003 36b3 91       		.byte	0x91
- 28004 36b4 E0AF7F   		.sleb128 -10272
- 28005 36b7 00       		.byte	0x0
- 28006 36b8 31       		.uleb128 0x31
- 28007 36b9 4A0E0000 		.long	0xe4a
- 28008 36bd 00000000 		.quad	.LBB1059
- 28008      00000000 
- 28009 36c5 00000000 		.quad	.LBE1059
- 28009      00000000 
- 28010 36cd 02       		.byte	0x2
- 28011 36ce 9406     		.value	0x694
- 28012 36d0 55370000 		.long	0x3755
- 28013 36d4 32       		.uleb128 0x32
- 28014 36d5 5C0E0000 		.long	0xe5c
- 28015 36d9 03       		.byte	0x3
- 28016 36da 91       		.byte	0x91
- 28017 36db B05D     		.sleb128 -4432
- 28018 36dd 33       		.uleb128 0x33
- 28019 36de 00000000 		.quad	.LBB1060
- 28019      00000000 
- 28020 36e6 00000000 		.quad	.LBE1060
- 28020      00000000 
- 28021 36ee 34       		.uleb128 0x34
- 28022 36ef 680E0000 		.long	0xe68
- 28023 36f3 09       		.byte	0x9
- 28024 36f4 03       		.byte	0x3
- 28025 36f5 00000000 		.quad	ShiftRowTable.7385
- 28025      00000000 
- 28026 36fd 35       		.uleb128 0x35
- 28027 36fe A00D0000 		.long	0xda0
- 28028 3702 00000000 		.quad	.LBB1061
- 28028      00000000 
- 28029 370a 00000000 		.quad	.LBE1061
- 28029      00000000 
- 28030 3712 02       		.byte	0x2
- 28031 3713 9B02     		.value	0x29b
- 28032 3715 32       		.uleb128 0x32
- 28033 3716 BE0D0000 		.long	0xdbe
- 28034 371a 03       		.byte	0x3
- 28035 371b 91       		.byte	0x91
- 28036 371c C05D     		.sleb128 -4416
- 28037 371e 32       		.uleb128 0x32
- 28038 371f B20D0000 		.long	0xdb2
- 28039 3723 03       		.byte	0x3
- 28040 3724 91       		.byte	0x91
- 28041 3725 D05D     		.sleb128 -4400
- 28042 3727 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 775
-
-
- 28043 3728 CB0D0000 		.long	0xdcb
- 28044 372c 00000000 		.quad	.LBB1063
- 28044      00000000 
- 28045 3734 00000000 		.quad	.LBE1063
- 28045      00000000 
- 28046 373c 02       		.byte	0x2
- 28047 373d 7501     		.value	0x175
- 28048 373f 32       		.uleb128 0x32
- 28049 3740 E90D0000 		.long	0xde9
- 28050 3744 03       		.byte	0x3
- 28051 3745 91       		.byte	0x91
- 28052 3746 E05D     		.sleb128 -4384
- 28053 3748 32       		.uleb128 0x32
- 28054 3749 DD0D0000 		.long	0xddd
- 28055 374d 03       		.byte	0x3
- 28056 374e 91       		.byte	0x91
- 28057 374f F05D     		.sleb128 -4368
- 28058 3751 00       		.byte	0x0
- 28059 3752 00       		.byte	0x0
- 28060 3753 00       		.byte	0x0
- 28061 3754 00       		.byte	0x0
- 28062 3755 36       		.uleb128 0x36
- 28063 3756 00000000 		.quad	.LBB1065
- 28063      00000000 
- 28064 375e 00000000 		.quad	.LBE1065
- 28064      00000000 
- 28065 3766 75370000 		.long	0x3775
- 28066 376a 34       		.uleb128 0x34
- 28067 376b 2C0C0000 		.long	0xc2c
- 28068 376f 04       		.byte	0x4
- 28069 3770 91       		.byte	0x91
- 28070 3771 D0AF7F   		.sleb128 -10288
- 28071 3774 00       		.byte	0x0
- 28072 3775 31       		.uleb128 0x31
- 28073 3776 860E0000 		.long	0xe86
- 28074 377a 00000000 		.quad	.LBB1066
- 28074      00000000 
- 28075 3782 00000000 		.quad	.LBE1066
- 28075      00000000 
- 28076 378a 02       		.byte	0x2
- 28077 378b 9606     		.value	0x696
- 28078 378d A4370000 		.long	0x37a4
- 28079 3791 32       		.uleb128 0x32
- 28080 3792 A10E0000 		.long	0xea1
- 28081 3796 03       		.byte	0x3
- 28082 3797 91       		.byte	0x91
- 28083 3798 805E     		.sleb128 -4352
- 28084 379a 32       		.uleb128 0x32
- 28085 379b 970E0000 		.long	0xe97
- 28086 379f 03       		.byte	0x3
- 28087 37a0 91       		.byte	0x91
- 28088 37a1 905E     		.sleb128 -4336
- 28089 37a3 00       		.byte	0x0
- 28090 37a4 36       		.uleb128 0x36
- 28091 37a5 00000000 		.quad	.LBB1068
- 28091      00000000 
- 28092 37ad 00000000 		.quad	.LBE1068
-
GAS LISTING /tmp/ccjbMjHD.s 			page 776
-
-
- 28092      00000000 
- 28093 37b5 C4370000 		.long	0x37c4
- 28094 37b9 34       		.uleb128 0x34
- 28095 37ba 3C0C0000 		.long	0xc3c
- 28096 37be 04       		.byte	0x4
- 28097 37bf 91       		.byte	0x91
- 28098 37c0 C0AF7F   		.sleb128 -10304
- 28099 37c3 00       		.byte	0x0
- 28100 37c4 31       		.uleb128 0x31
- 28101 37c5 AC0E0000 		.long	0xeac
- 28102 37c9 00000000 		.quad	.LBB1069
- 28102      00000000 
- 28103 37d1 00000000 		.quad	.LBE1069
- 28103      00000000 
- 28104 37d9 02       		.byte	0x2
- 28105 37da 9806     		.value	0x698
- 28106 37dc 15380000 		.long	0x3815
- 28107 37e0 32       		.uleb128 0x32
- 28108 37e1 BE0E0000 		.long	0xebe
- 28109 37e5 03       		.byte	0x3
- 28110 37e6 91       		.byte	0x91
- 28111 37e7 A05E     		.sleb128 -4320
- 28112 37e9 35       		.uleb128 0x35
- 28113 37ea CB0E0000 		.long	0xecb
- 28114 37ee 00000000 		.quad	.LBB1071
- 28114      00000000 
- 28115 37f6 00000000 		.quad	.LBE1071
- 28115      00000000 
- 28116 37fe 02       		.byte	0x2
- 28117 37ff 4905     		.value	0x549
- 28118 3801 32       		.uleb128 0x32
- 28119 3802 E90E0000 		.long	0xee9
- 28120 3806 03       		.byte	0x3
- 28121 3807 91       		.byte	0x91
- 28122 3808 BC5E     		.sleb128 -4292
- 28123 380a 32       		.uleb128 0x32
- 28124 380b DD0E0000 		.long	0xedd
- 28125 380f 03       		.byte	0x3
- 28126 3810 91       		.byte	0x91
- 28127 3811 C05E     		.sleb128 -4288
- 28128 3813 00       		.byte	0x0
- 28129 3814 00       		.byte	0x0
- 28130 3815 33       		.uleb128 0x33
- 28131 3816 00000000 		.quad	.LBB1073
- 28131      00000000 
- 28132 381e 00000000 		.quad	.LBE1073
- 28132      00000000 
- 28133 3826 34       		.uleb128 0x34
- 28134 3827 480C0000 		.long	0xc48
- 28135 382b 04       		.byte	0x4
- 28136 382c 91       		.byte	0x91
- 28137 382d B0AF7F   		.sleb128 -10320
- 28138 3830 00       		.byte	0x0
- 28139 3831 00       		.byte	0x0
- 28140 3832 00       		.byte	0x0
- 28141 3833 31       		.uleb128 0x31
- 28142 3834 F60E0000 		.long	0xef6
-
GAS LISTING /tmp/ccjbMjHD.s 			page 777
-
-
- 28143 3838 00000000 		.quad	.LBB1074
- 28143      00000000 
- 28144 3840 00000000 		.quad	.LBE1074
- 28144      00000000 
- 28145 3848 02       		.byte	0x2
- 28146 3849 D506     		.value	0x6d5
- 28147 384b 483A0000 		.long	0x3a48
- 28148 384f 32       		.uleb128 0x32
- 28149 3850 080F0000 		.long	0xf08
- 28150 3854 03       		.byte	0x3
- 28151 3855 91       		.byte	0x91
- 28152 3856 D05E     		.sleb128 -4272
- 28153 3858 33       		.uleb128 0x33
- 28154 3859 00000000 		.quad	.LBB1075
- 28154      00000000 
- 28155 3861 00000000 		.quad	.LBE1075
- 28155      00000000 
- 28156 3869 34       		.uleb128 0x34
- 28157 386a 140F0000 		.long	0xf14
- 28158 386e 04       		.byte	0x4
- 28159 386f 76       		.byte	0x76
- 28160 3870 A0AB7F   		.sleb128 -10848
- 28161 3873 31       		.uleb128 0x31
- 28162 3874 210F0000 		.long	0xf21
- 28163 3878 00000000 		.quad	.LBB1076
- 28163      00000000 
- 28164 3880 00000000 		.quad	.LBE1076
- 28164      00000000 
- 28165 3888 02       		.byte	0x2
- 28166 3889 1F06     		.value	0x61f
- 28167 388b 10390000 		.long	0x3910
- 28168 388f 32       		.uleb128 0x32
- 28169 3890 330F0000 		.long	0xf33
- 28170 3894 03       		.byte	0x3
- 28171 3895 91       		.byte	0x91
- 28172 3896 E05E     		.sleb128 -4256
- 28173 3898 33       		.uleb128 0x33
- 28174 3899 00000000 		.quad	.LBB1077
- 28174      00000000 
- 28175 38a1 00000000 		.quad	.LBE1077
- 28175      00000000 
- 28176 38a9 34       		.uleb128 0x34
- 28177 38aa 3F0F0000 		.long	0xf3f
- 28178 38ae 09       		.byte	0x9
- 28179 38af 03       		.byte	0x3
- 28180 38b0 00000000 		.quad	mask.7943
- 28180      00000000 
- 28181 38b8 35       		.uleb128 0x35
- 28182 38b9 A00D0000 		.long	0xda0
- 28183 38bd 00000000 		.quad	.LBB1078
- 28183      00000000 
- 28184 38c5 00000000 		.quad	.LBE1078
- 28184      00000000 
- 28185 38cd 02       		.byte	0x2
- 28186 38ce FE04     		.value	0x4fe
- 28187 38d0 32       		.uleb128 0x32
- 28188 38d1 BE0D0000 		.long	0xdbe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 778
-
-
- 28189 38d5 03       		.byte	0x3
- 28190 38d6 91       		.byte	0x91
- 28191 38d7 F05E     		.sleb128 -4240
- 28192 38d9 32       		.uleb128 0x32
- 28193 38da B20D0000 		.long	0xdb2
- 28194 38de 03       		.byte	0x3
- 28195 38df 91       		.byte	0x91
- 28196 38e0 805F     		.sleb128 -4224
- 28197 38e2 35       		.uleb128 0x35
- 28198 38e3 CB0D0000 		.long	0xdcb
- 28199 38e7 00000000 		.quad	.LBB1080
- 28199      00000000 
- 28200 38ef 00000000 		.quad	.LBE1080
- 28200      00000000 
- 28201 38f7 02       		.byte	0x2
- 28202 38f8 7501     		.value	0x175
- 28203 38fa 32       		.uleb128 0x32
- 28204 38fb E90D0000 		.long	0xde9
- 28205 38ff 03       		.byte	0x3
- 28206 3900 91       		.byte	0x91
- 28207 3901 905F     		.sleb128 -4208
- 28208 3903 32       		.uleb128 0x32
- 28209 3904 DD0D0000 		.long	0xddd
- 28210 3908 03       		.byte	0x3
- 28211 3909 91       		.byte	0x91
- 28212 390a A05F     		.sleb128 -4192
- 28213 390c 00       		.byte	0x0
- 28214 390d 00       		.byte	0x0
- 28215 390e 00       		.byte	0x0
- 28216 390f 00       		.byte	0x0
- 28217 3910 31       		.uleb128 0x31
- 28218 3911 210F0000 		.long	0xf21
- 28219 3915 00000000 		.quad	.LBB1082
- 28219      00000000 
- 28220 391d 00000000 		.quad	.LBE1082
- 28220      00000000 
- 28221 3925 02       		.byte	0x2
- 28222 3926 2006     		.value	0x620
- 28223 3928 AD390000 		.long	0x39ad
- 28224 392c 32       		.uleb128 0x32
- 28225 392d 330F0000 		.long	0xf33
- 28226 3931 03       		.byte	0x3
- 28227 3932 91       		.byte	0x91
- 28228 3933 B05F     		.sleb128 -4176
- 28229 3935 33       		.uleb128 0x33
- 28230 3936 00000000 		.quad	.LBB1083
- 28230      00000000 
- 28231 393e 00000000 		.quad	.LBE1083
- 28231      00000000 
- 28232 3946 34       		.uleb128 0x34
- 28233 3947 3F0F0000 		.long	0xf3f
- 28234 394b 09       		.byte	0x9
- 28235 394c 03       		.byte	0x3
- 28236 394d 00000000 		.quad	mask.7943
- 28236      00000000 
- 28237 3955 35       		.uleb128 0x35
- 28238 3956 A00D0000 		.long	0xda0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 779
-
-
- 28239 395a 00000000 		.quad	.LBB1084
- 28239      00000000 
- 28240 3962 00000000 		.quad	.LBE1084
- 28240      00000000 
- 28241 396a 02       		.byte	0x2
- 28242 396b FE04     		.value	0x4fe
- 28243 396d 32       		.uleb128 0x32
- 28244 396e BE0D0000 		.long	0xdbe
- 28245 3972 03       		.byte	0x3
- 28246 3973 91       		.byte	0x91
- 28247 3974 C05F     		.sleb128 -4160
- 28248 3976 32       		.uleb128 0x32
- 28249 3977 B20D0000 		.long	0xdb2
- 28250 397b 03       		.byte	0x3
- 28251 397c 91       		.byte	0x91
- 28252 397d D05F     		.sleb128 -4144
- 28253 397f 35       		.uleb128 0x35
- 28254 3980 CB0D0000 		.long	0xdcb
- 28255 3984 00000000 		.quad	.LBB1086
- 28255      00000000 
- 28256 398c 00000000 		.quad	.LBE1086
- 28256      00000000 
- 28257 3994 02       		.byte	0x2
- 28258 3995 7501     		.value	0x175
- 28259 3997 32       		.uleb128 0x32
- 28260 3998 E90D0000 		.long	0xde9
- 28261 399c 03       		.byte	0x3
- 28262 399d 91       		.byte	0x91
- 28263 399e E05F     		.sleb128 -4128
- 28264 39a0 32       		.uleb128 0x32
- 28265 39a1 DD0D0000 		.long	0xddd
- 28266 39a5 03       		.byte	0x3
- 28267 39a6 91       		.byte	0x91
- 28268 39a7 F05F     		.sleb128 -4112
- 28269 39a9 00       		.byte	0x0
- 28270 39aa 00       		.byte	0x0
- 28271 39ab 00       		.byte	0x0
- 28272 39ac 00       		.byte	0x0
- 28273 39ad 35       		.uleb128 0x35
- 28274 39ae 210F0000 		.long	0xf21
- 28275 39b2 00000000 		.quad	.LBB1088
- 28275      00000000 
- 28276 39ba 00000000 		.quad	.LBE1088
- 28276      00000000 
- 28277 39c2 02       		.byte	0x2
- 28278 39c3 2106     		.value	0x621
- 28279 39c5 32       		.uleb128 0x32
- 28280 39c6 330F0000 		.long	0xf33
- 28281 39ca 03       		.byte	0x3
- 28282 39cb 91       		.byte	0x91
- 28283 39cc 8060     		.sleb128 -4096
- 28284 39ce 33       		.uleb128 0x33
- 28285 39cf 00000000 		.quad	.LBB1089
- 28285      00000000 
- 28286 39d7 00000000 		.quad	.LBE1089
- 28286      00000000 
- 28287 39df 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 780
-
-
- 28288 39e0 3F0F0000 		.long	0xf3f
- 28289 39e4 09       		.byte	0x9
- 28290 39e5 03       		.byte	0x3
- 28291 39e6 00000000 		.quad	mask.7943
- 28291      00000000 
- 28292 39ee 35       		.uleb128 0x35
- 28293 39ef A00D0000 		.long	0xda0
- 28294 39f3 00000000 		.quad	.LBB1090
- 28294      00000000 
- 28295 39fb 00000000 		.quad	.LBE1090
- 28295      00000000 
- 28296 3a03 02       		.byte	0x2
- 28297 3a04 FE04     		.value	0x4fe
- 28298 3a06 32       		.uleb128 0x32
- 28299 3a07 BE0D0000 		.long	0xdbe
- 28300 3a0b 03       		.byte	0x3
- 28301 3a0c 91       		.byte	0x91
- 28302 3a0d 9060     		.sleb128 -4080
- 28303 3a0f 32       		.uleb128 0x32
- 28304 3a10 B20D0000 		.long	0xdb2
- 28305 3a14 03       		.byte	0x3
- 28306 3a15 91       		.byte	0x91
- 28307 3a16 A060     		.sleb128 -4064
- 28308 3a18 35       		.uleb128 0x35
- 28309 3a19 CB0D0000 		.long	0xdcb
- 28310 3a1d 00000000 		.quad	.LBB1092
- 28310      00000000 
- 28311 3a25 00000000 		.quad	.LBE1092
- 28311      00000000 
- 28312 3a2d 02       		.byte	0x2
- 28313 3a2e 7501     		.value	0x175
- 28314 3a30 32       		.uleb128 0x32
- 28315 3a31 E90D0000 		.long	0xde9
- 28316 3a35 03       		.byte	0x3
- 28317 3a36 91       		.byte	0x91
- 28318 3a37 B060     		.sleb128 -4048
- 28319 3a39 32       		.uleb128 0x32
- 28320 3a3a DD0D0000 		.long	0xddd
- 28321 3a3e 03       		.byte	0x3
- 28322 3a3f 91       		.byte	0x91
- 28323 3a40 C060     		.sleb128 -4032
- 28324 3a42 00       		.byte	0x0
- 28325 3a43 00       		.byte	0x0
- 28326 3a44 00       		.byte	0x0
- 28327 3a45 00       		.byte	0x0
- 28328 3a46 00       		.byte	0x0
- 28329 3a47 00       		.byte	0x0
- 28330 3a48 31       		.uleb128 0x31
- 28331 3a49 D50B0000 		.long	0xbd5
- 28332 3a4d 00000000 		.quad	.LBB1094
- 28332      00000000 
- 28333 3a55 00000000 		.quad	.LBE1094
- 28333      00000000 
- 28334 3a5d 02       		.byte	0x2
- 28335 3a5e D606     		.value	0x6d6
- 28336 3a60 2B3F0000 		.long	0x3f2b
- 28337 3a64 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 781
-
-
- 28338 3a65 F30B0000 		.long	0xbf3
- 28339 3a69 03       		.byte	0x3
- 28340 3a6a 91       		.byte	0x91
- 28341 3a6b DC60     		.sleb128 -4004
- 28342 3a6d 32       		.uleb128 0x32
- 28343 3a6e E70B0000 		.long	0xbe7
- 28344 3a72 03       		.byte	0x3
- 28345 3a73 91       		.byte	0x91
- 28346 3a74 E060     		.sleb128 -4000
- 28347 3a76 33       		.uleb128 0x33
- 28348 3a77 00000000 		.quad	.LBB1095
- 28348      00000000 
- 28349 3a7f 00000000 		.quad	.LBE1095
- 28349      00000000 
- 28350 3a87 34       		.uleb128 0x34
- 28351 3a88 FF0B0000 		.long	0xbff
- 28352 3a8c 04       		.byte	0x4
- 28353 3a8d 76       		.byte	0x76
- 28354 3a8e C0AB7F   		.sleb128 -10816
- 28355 3a91 34       		.uleb128 0x34
- 28356 3a92 0B0C0000 		.long	0xc0b
- 28357 3a96 04       		.byte	0x4
- 28358 3a97 76       		.byte	0x76
- 28359 3a98 B0AB7F   		.sleb128 -10832
- 28360 3a9b 31       		.uleb128 0x31
- 28361 3a9c 540C0000 		.long	0xc54
- 28362 3aa0 00000000 		.quad	.LBB1096
- 28362      00000000 
- 28363 3aa8 00000000 		.quad	.LBE1096
- 28363      00000000 
- 28364 3ab0 02       		.byte	0x2
- 28365 3ab1 9106     		.value	0x691
- 28366 3ab3 073B0000 		.long	0x3b07
- 28367 3ab7 32       		.uleb128 0x32
- 28368 3ab8 7E0C0000 		.long	0xc7e
- 28369 3abc 03       		.byte	0x3
- 28370 3abd 91       		.byte	0x91
- 28371 3abe F860     		.sleb128 -3976
- 28372 3ac0 32       		.uleb128 0x32
- 28373 3ac1 720C0000 		.long	0xc72
- 28374 3ac5 03       		.byte	0x3
- 28375 3ac6 91       		.byte	0x91
- 28376 3ac7 FC60     		.sleb128 -3972
- 28377 3ac9 32       		.uleb128 0x32
- 28378 3aca 660C0000 		.long	0xc66
- 28379 3ace 03       		.byte	0x3
- 28380 3acf 91       		.byte	0x91
- 28381 3ad0 8061     		.sleb128 -3968
- 28382 3ad2 35       		.uleb128 0x35
- 28383 3ad3 8B0C0000 		.long	0xc8b
- 28384 3ad7 00000000 		.quad	.LBB1098
- 28384      00000000 
- 28385 3adf 00000000 		.quad	.LBE1098
- 28385      00000000 
- 28386 3ae7 02       		.byte	0x2
- 28387 3ae8 0702     		.value	0x207
- 28388 3aea 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 782
-
-
- 28389 3aeb B40C0000 		.long	0xcb4
- 28390 3aef 03       		.byte	0x3
- 28391 3af0 91       		.byte	0x91
- 28392 3af1 9861     		.sleb128 -3944
- 28393 3af3 32       		.uleb128 0x32
- 28394 3af4 A90C0000 		.long	0xca9
- 28395 3af8 03       		.byte	0x3
- 28396 3af9 91       		.byte	0x91
- 28397 3afa 9C61     		.sleb128 -3940
- 28398 3afc 32       		.uleb128 0x32
- 28399 3afd 9D0C0000 		.long	0xc9d
- 28400 3b01 03       		.byte	0x3
- 28401 3b02 91       		.byte	0x91
- 28402 3b03 A061     		.sleb128 -3936
- 28403 3b05 00       		.byte	0x0
- 28404 3b06 00       		.byte	0x0
- 28405 3b07 31       		.uleb128 0x31
- 28406 3b08 C10C0000 		.long	0xcc1
- 28407 3b0c 00000000 		.quad	.LBB1100
- 28407      00000000 
- 28408 3b14 00000000 		.quad	.LBE1100
- 28408      00000000 
- 28409 3b1c 02       		.byte	0x2
- 28410 3b1d 9206     		.value	0x692
- 28411 3b1f 903D0000 		.long	0x3d90
- 28412 3b23 32       		.uleb128 0x32
- 28413 3b24 D30C0000 		.long	0xcd3
- 28414 3b28 03       		.byte	0x3
- 28415 3b29 91       		.byte	0x91
- 28416 3b2a B061     		.sleb128 -3920
- 28417 3b2c 35       		.uleb128 0x35
- 28418 3b2d E00C0000 		.long	0xce0
- 28419 3b31 00000000 		.quad	.LBB1102
- 28419      00000000 
- 28420 3b39 00000000 		.quad	.LBE1102
- 28420      00000000 
- 28421 3b41 02       		.byte	0x2
- 28422 3b42 7D03     		.value	0x37d
- 28423 3b44 32       		.uleb128 0x32
- 28424 3b45 FE0C0000 		.long	0xcfe
- 28425 3b49 03       		.byte	0x3
- 28426 3b4a 91       		.byte	0x91
- 28427 3b4b C861     		.sleb128 -3896
- 28428 3b4d 32       		.uleb128 0x32
- 28429 3b4e F20C0000 		.long	0xcf2
- 28430 3b52 03       		.byte	0x3
- 28431 3b53 91       		.byte	0x91
- 28432 3b54 D061     		.sleb128 -3888
- 28433 3b56 33       		.uleb128 0x33
- 28434 3b57 00000000 		.quad	.LBB1103
- 28434      00000000 
- 28435 3b5f 00000000 		.quad	.LBE1103
- 28435      00000000 
- 28436 3b67 34       		.uleb128 0x34
- 28437 3b68 0A0D0000 		.long	0xd0a
- 28438 3b6c 03       		.byte	0x3
- 28439 3b6d 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 783
-
-
- 28440 3b6e A062     		.sleb128 -3808
- 28441 3b70 34       		.uleb128 0x34
- 28442 3b71 150D0000 		.long	0xd15
- 28443 3b75 03       		.byte	0x3
- 28444 3b76 91       		.byte	0x91
- 28445 3b77 9062     		.sleb128 -3824
- 28446 3b79 34       		.uleb128 0x34
- 28447 3b7a 200D0000 		.long	0xd20
- 28448 3b7e 03       		.byte	0x3
- 28449 3b7f 91       		.byte	0x91
- 28450 3b80 8062     		.sleb128 -3840
- 28451 3b82 34       		.uleb128 0x34
- 28452 3b83 2C0D0000 		.long	0xd2c
- 28453 3b87 03       		.byte	0x3
- 28454 3b88 91       		.byte	0x91
- 28455 3b89 F061     		.sleb128 -3856
- 28456 3b8b 34       		.uleb128 0x34
- 28457 3b8c 380D0000 		.long	0xd38
- 28458 3b90 03       		.byte	0x3
- 28459 3b91 91       		.byte	0x91
- 28460 3b92 EC61     		.sleb128 -3860
- 28461 3b94 31       		.uleb128 0x31
- 28462 3b95 4F0D0000 		.long	0xd4f
- 28463 3b99 00000000 		.quad	.LBB1104
- 28463      00000000 
- 28464 3ba1 00000000 		.quad	.LBE1104
- 28464      00000000 
- 28465 3ba9 02       		.byte	0x2
- 28466 3baa 5603     		.value	0x356
- 28467 3bac C33B0000 		.long	0x3bc3
- 28468 3bb0 32       		.uleb128 0x32
- 28469 3bb1 6A0D0000 		.long	0xd6a
- 28470 3bb5 03       		.byte	0x3
- 28471 3bb6 91       		.byte	0x91
- 28472 3bb7 B062     		.sleb128 -3792
- 28473 3bb9 32       		.uleb128 0x32
- 28474 3bba 600D0000 		.long	0xd60
- 28475 3bbe 03       		.byte	0x3
- 28476 3bbf 91       		.byte	0x91
- 28477 3bc0 C062     		.sleb128 -3776
- 28478 3bc2 00       		.byte	0x0
- 28479 3bc3 31       		.uleb128 0x31
- 28480 3bc4 750D0000 		.long	0xd75
- 28481 3bc8 00000000 		.quad	.LBB1106
- 28481      00000000 
- 28482 3bd0 00000000 		.quad	.LBE1106
- 28482      00000000 
- 28483 3bd8 02       		.byte	0x2
- 28484 3bd9 5903     		.value	0x359
- 28485 3bdb F23B0000 		.long	0x3bf2
- 28486 3bdf 32       		.uleb128 0x32
- 28487 3be0 930D0000 		.long	0xd93
- 28488 3be4 03       		.byte	0x3
- 28489 3be5 91       		.byte	0x91
- 28490 3be6 DC62     		.sleb128 -3748
- 28491 3be8 32       		.uleb128 0x32
- 28492 3be9 870D0000 		.long	0xd87
-
GAS LISTING /tmp/ccjbMjHD.s 			page 784
-
-
- 28493 3bed 03       		.byte	0x3
- 28494 3bee 91       		.byte	0x91
- 28495 3bef E062     		.sleb128 -3744
- 28496 3bf1 00       		.byte	0x0
- 28497 3bf2 31       		.uleb128 0x31
- 28498 3bf3 4F0D0000 		.long	0xd4f
- 28499 3bf7 00000000 		.quad	.LBB1108
- 28499      00000000 
- 28500 3bff 00000000 		.quad	.LBE1108
- 28500      00000000 
- 28501 3c07 02       		.byte	0x2
- 28502 3c08 5B03     		.value	0x35b
- 28503 3c0a 213C0000 		.long	0x3c21
- 28504 3c0e 32       		.uleb128 0x32
- 28505 3c0f 6A0D0000 		.long	0xd6a
- 28506 3c13 03       		.byte	0x3
- 28507 3c14 91       		.byte	0x91
- 28508 3c15 F062     		.sleb128 -3728
- 28509 3c17 32       		.uleb128 0x32
- 28510 3c18 600D0000 		.long	0xd60
- 28511 3c1c 03       		.byte	0x3
- 28512 3c1d 91       		.byte	0x91
- 28513 3c1e 8063     		.sleb128 -3712
- 28514 3c20 00       		.byte	0x0
- 28515 3c21 31       		.uleb128 0x31
- 28516 3c22 A00D0000 		.long	0xda0
- 28517 3c26 00000000 		.quad	.LBB1110
- 28517      00000000 
- 28518 3c2e 00000000 		.quad	.LBE1110
- 28518      00000000 
- 28519 3c36 02       		.byte	0x2
- 28520 3c37 6403     		.value	0x364
- 28521 3c39 7B3C0000 		.long	0x3c7b
- 28522 3c3d 32       		.uleb128 0x32
- 28523 3c3e BE0D0000 		.long	0xdbe
- 28524 3c42 03       		.byte	0x3
- 28525 3c43 91       		.byte	0x91
- 28526 3c44 9063     		.sleb128 -3696
- 28527 3c46 32       		.uleb128 0x32
- 28528 3c47 B20D0000 		.long	0xdb2
- 28529 3c4b 03       		.byte	0x3
- 28530 3c4c 91       		.byte	0x91
- 28531 3c4d A063     		.sleb128 -3680
- 28532 3c4f 35       		.uleb128 0x35
- 28533 3c50 CB0D0000 		.long	0xdcb
- 28534 3c54 00000000 		.quad	.LBB1112
- 28534      00000000 
- 28535 3c5c 00000000 		.quad	.LBE1112
- 28535      00000000 
- 28536 3c64 02       		.byte	0x2
- 28537 3c65 7501     		.value	0x175
- 28538 3c67 32       		.uleb128 0x32
- 28539 3c68 E90D0000 		.long	0xde9
- 28540 3c6c 03       		.byte	0x3
- 28541 3c6d 91       		.byte	0x91
- 28542 3c6e B063     		.sleb128 -3664
- 28543 3c70 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 785
-
-
- 28544 3c71 DD0D0000 		.long	0xddd
- 28545 3c75 03       		.byte	0x3
- 28546 3c76 91       		.byte	0x91
- 28547 3c77 C063     		.sleb128 -3648
- 28548 3c79 00       		.byte	0x0
- 28549 3c7a 00       		.byte	0x0
- 28550 3c7b 31       		.uleb128 0x31
- 28551 3c7c FB0D0000 		.long	0xdfb
- 28552 3c80 00000000 		.quad	.LBB1114
- 28552      00000000 
- 28553 3c88 00000000 		.quad	.LBE1114
- 28553      00000000 
- 28554 3c90 02       		.byte	0x2
- 28555 3c91 6603     		.value	0x366
- 28556 3c93 AA3C0000 		.long	0x3caa
- 28557 3c97 32       		.uleb128 0x32
- 28558 3c98 160E0000 		.long	0xe16
- 28559 3c9c 03       		.byte	0x3
- 28560 3c9d 91       		.byte	0x91
- 28561 3c9e D063     		.sleb128 -3632
- 28562 3ca0 32       		.uleb128 0x32
- 28563 3ca1 0C0E0000 		.long	0xe0c
- 28564 3ca5 03       		.byte	0x3
- 28565 3ca6 91       		.byte	0x91
- 28566 3ca7 E063     		.sleb128 -3616
- 28567 3ca9 00       		.byte	0x0
- 28568 3caa 31       		.uleb128 0x31
- 28569 3cab A00D0000 		.long	0xda0
- 28570 3caf 00000000 		.quad	.LBB1116
- 28570      00000000 
- 28571 3cb7 00000000 		.quad	.LBE1116
- 28571      00000000 
- 28572 3cbf 02       		.byte	0x2
- 28573 3cc0 6803     		.value	0x368
- 28574 3cc2 043D0000 		.long	0x3d04
- 28575 3cc6 32       		.uleb128 0x32
- 28576 3cc7 BE0D0000 		.long	0xdbe
- 28577 3ccb 03       		.byte	0x3
- 28578 3ccc 91       		.byte	0x91
- 28579 3ccd F063     		.sleb128 -3600
- 28580 3ccf 32       		.uleb128 0x32
- 28581 3cd0 B20D0000 		.long	0xdb2
- 28582 3cd4 03       		.byte	0x3
- 28583 3cd5 91       		.byte	0x91
- 28584 3cd6 8064     		.sleb128 -3584
- 28585 3cd8 35       		.uleb128 0x35
- 28586 3cd9 CB0D0000 		.long	0xdcb
- 28587 3cdd 00000000 		.quad	.LBB1118
- 28587      00000000 
- 28588 3ce5 00000000 		.quad	.LBE1118
- 28588      00000000 
- 28589 3ced 02       		.byte	0x2
- 28590 3cee 7501     		.value	0x175
- 28591 3cf0 32       		.uleb128 0x32
- 28592 3cf1 E90D0000 		.long	0xde9
- 28593 3cf5 03       		.byte	0x3
- 28594 3cf6 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 786
-
-
- 28595 3cf7 9064     		.sleb128 -3568
- 28596 3cf9 32       		.uleb128 0x32
- 28597 3cfa DD0D0000 		.long	0xddd
- 28598 3cfe 03       		.byte	0x3
- 28599 3cff 91       		.byte	0x91
- 28600 3d00 A064     		.sleb128 -3552
- 28601 3d02 00       		.byte	0x0
- 28602 3d03 00       		.byte	0x0
- 28603 3d04 31       		.uleb128 0x31
- 28604 3d05 FB0D0000 		.long	0xdfb
- 28605 3d09 00000000 		.quad	.LBB1120
- 28605      00000000 
- 28606 3d11 00000000 		.quad	.LBE1120
- 28606      00000000 
- 28607 3d19 02       		.byte	0x2
- 28608 3d1a 6A03     		.value	0x36a
- 28609 3d1c 333D0000 		.long	0x3d33
- 28610 3d20 32       		.uleb128 0x32
- 28611 3d21 160E0000 		.long	0xe16
- 28612 3d25 03       		.byte	0x3
- 28613 3d26 91       		.byte	0x91
- 28614 3d27 B064     		.sleb128 -3536
- 28615 3d29 32       		.uleb128 0x32
- 28616 3d2a 0C0E0000 		.long	0xe0c
- 28617 3d2e 03       		.byte	0x3
- 28618 3d2f 91       		.byte	0x91
- 28619 3d30 C064     		.sleb128 -3520
- 28620 3d32 00       		.byte	0x0
- 28621 3d33 31       		.uleb128 0x31
- 28622 3d34 210E0000 		.long	0xe21
- 28623 3d38 00000000 		.quad	.LBB1122
- 28623      00000000 
- 28624 3d40 00000000 		.quad	.LBE1122
- 28624      00000000 
- 28625 3d48 02       		.byte	0x2
- 28626 3d49 6C03     		.value	0x36c
- 28627 3d4b 623D0000 		.long	0x3d62
- 28628 3d4f 32       		.uleb128 0x32
- 28629 3d50 3E0E0000 		.long	0xe3e
- 28630 3d54 03       		.byte	0x3
- 28631 3d55 91       		.byte	0x91
- 28632 3d56 D064     		.sleb128 -3504
- 28633 3d58 32       		.uleb128 0x32
- 28634 3d59 330E0000 		.long	0xe33
- 28635 3d5d 03       		.byte	0x3
- 28636 3d5e 91       		.byte	0x91
- 28637 3d5f E064     		.sleb128 -3488
- 28638 3d61 00       		.byte	0x0
- 28639 3d62 35       		.uleb128 0x35
- 28640 3d63 4F0D0000 		.long	0xd4f
- 28641 3d67 00000000 		.quad	.LBB1124
- 28641      00000000 
- 28642 3d6f 00000000 		.quad	.LBE1124
- 28642      00000000 
- 28643 3d77 02       		.byte	0x2
- 28644 3d78 6E03     		.value	0x36e
- 28645 3d7a 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 787
-
-
- 28646 3d7b 6A0D0000 		.long	0xd6a
- 28647 3d7f 03       		.byte	0x3
- 28648 3d80 91       		.byte	0x91
- 28649 3d81 F064     		.sleb128 -3472
- 28650 3d83 32       		.uleb128 0x32
- 28651 3d84 600D0000 		.long	0xd60
- 28652 3d88 03       		.byte	0x3
- 28653 3d89 91       		.byte	0x91
- 28654 3d8a 8065     		.sleb128 -3456
- 28655 3d8c 00       		.byte	0x0
- 28656 3d8d 00       		.byte	0x0
- 28657 3d8e 00       		.byte	0x0
- 28658 3d8f 00       		.byte	0x0
- 28659 3d90 36       		.uleb128 0x36
- 28660 3d91 00000000 		.quad	.LBB1126
- 28660      00000000 
- 28661 3d99 00000000 		.quad	.LBE1126
- 28661      00000000 
- 28662 3da1 B03D0000 		.long	0x3db0
- 28663 3da5 34       		.uleb128 0x34
- 28664 3da6 1C0C0000 		.long	0xc1c
- 28665 3daa 04       		.byte	0x4
- 28666 3dab 91       		.byte	0x91
- 28667 3dac A0B07F   		.sleb128 -10208
- 28668 3daf 00       		.byte	0x0
- 28669 3db0 31       		.uleb128 0x31
- 28670 3db1 4A0E0000 		.long	0xe4a
- 28671 3db5 00000000 		.quad	.LBB1127
- 28671      00000000 
- 28672 3dbd 00000000 		.quad	.LBE1127
- 28672      00000000 
- 28673 3dc5 02       		.byte	0x2
- 28674 3dc6 9406     		.value	0x694
- 28675 3dc8 4D3E0000 		.long	0x3e4d
- 28676 3dcc 32       		.uleb128 0x32
- 28677 3dcd 5C0E0000 		.long	0xe5c
- 28678 3dd1 03       		.byte	0x3
- 28679 3dd2 91       		.byte	0x91
- 28680 3dd3 9065     		.sleb128 -3440
- 28681 3dd5 33       		.uleb128 0x33
- 28682 3dd6 00000000 		.quad	.LBB1128
- 28682      00000000 
- 28683 3dde 00000000 		.quad	.LBE1128
- 28683      00000000 
- 28684 3de6 34       		.uleb128 0x34
- 28685 3de7 680E0000 		.long	0xe68
- 28686 3deb 09       		.byte	0x9
- 28687 3dec 03       		.byte	0x3
- 28688 3ded 00000000 		.quad	ShiftRowTable.7385
- 28688      00000000 
- 28689 3df5 35       		.uleb128 0x35
- 28690 3df6 A00D0000 		.long	0xda0
- 28691 3dfa 00000000 		.quad	.LBB1129
- 28691      00000000 
- 28692 3e02 00000000 		.quad	.LBE1129
- 28692      00000000 
- 28693 3e0a 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 788
-
-
- 28694 3e0b 9B02     		.value	0x29b
- 28695 3e0d 32       		.uleb128 0x32
- 28696 3e0e BE0D0000 		.long	0xdbe
- 28697 3e12 03       		.byte	0x3
- 28698 3e13 91       		.byte	0x91
- 28699 3e14 A065     		.sleb128 -3424
- 28700 3e16 32       		.uleb128 0x32
- 28701 3e17 B20D0000 		.long	0xdb2
- 28702 3e1b 03       		.byte	0x3
- 28703 3e1c 91       		.byte	0x91
- 28704 3e1d B065     		.sleb128 -3408
- 28705 3e1f 35       		.uleb128 0x35
- 28706 3e20 CB0D0000 		.long	0xdcb
- 28707 3e24 00000000 		.quad	.LBB1131
- 28707      00000000 
- 28708 3e2c 00000000 		.quad	.LBE1131
- 28708      00000000 
- 28709 3e34 02       		.byte	0x2
- 28710 3e35 7501     		.value	0x175
- 28711 3e37 32       		.uleb128 0x32
- 28712 3e38 E90D0000 		.long	0xde9
- 28713 3e3c 03       		.byte	0x3
- 28714 3e3d 91       		.byte	0x91
- 28715 3e3e C065     		.sleb128 -3392
- 28716 3e40 32       		.uleb128 0x32
- 28717 3e41 DD0D0000 		.long	0xddd
- 28718 3e45 03       		.byte	0x3
- 28719 3e46 91       		.byte	0x91
- 28720 3e47 D065     		.sleb128 -3376
- 28721 3e49 00       		.byte	0x0
- 28722 3e4a 00       		.byte	0x0
- 28723 3e4b 00       		.byte	0x0
- 28724 3e4c 00       		.byte	0x0
- 28725 3e4d 36       		.uleb128 0x36
- 28726 3e4e 00000000 		.quad	.LBB1133
- 28726      00000000 
- 28727 3e56 00000000 		.quad	.LBE1133
- 28727      00000000 
- 28728 3e5e 6D3E0000 		.long	0x3e6d
- 28729 3e62 34       		.uleb128 0x34
- 28730 3e63 2C0C0000 		.long	0xc2c
- 28731 3e67 04       		.byte	0x4
- 28732 3e68 91       		.byte	0x91
- 28733 3e69 90B07F   		.sleb128 -10224
- 28734 3e6c 00       		.byte	0x0
- 28735 3e6d 31       		.uleb128 0x31
- 28736 3e6e 860E0000 		.long	0xe86
- 28737 3e72 00000000 		.quad	.LBB1134
- 28737      00000000 
- 28738 3e7a 00000000 		.quad	.LBE1134
- 28738      00000000 
- 28739 3e82 02       		.byte	0x2
- 28740 3e83 9606     		.value	0x696
- 28741 3e85 9C3E0000 		.long	0x3e9c
- 28742 3e89 32       		.uleb128 0x32
- 28743 3e8a A10E0000 		.long	0xea1
- 28744 3e8e 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 789
-
-
- 28745 3e8f 91       		.byte	0x91
- 28746 3e90 E065     		.sleb128 -3360
- 28747 3e92 32       		.uleb128 0x32
- 28748 3e93 970E0000 		.long	0xe97
- 28749 3e97 03       		.byte	0x3
- 28750 3e98 91       		.byte	0x91
- 28751 3e99 F065     		.sleb128 -3344
- 28752 3e9b 00       		.byte	0x0
- 28753 3e9c 36       		.uleb128 0x36
- 28754 3e9d 00000000 		.quad	.LBB1136
- 28754      00000000 
- 28755 3ea5 00000000 		.quad	.LBE1136
- 28755      00000000 
- 28756 3ead BC3E0000 		.long	0x3ebc
- 28757 3eb1 34       		.uleb128 0x34
- 28758 3eb2 3C0C0000 		.long	0xc3c
- 28759 3eb6 04       		.byte	0x4
- 28760 3eb7 91       		.byte	0x91
- 28761 3eb8 80B07F   		.sleb128 -10240
- 28762 3ebb 00       		.byte	0x0
- 28763 3ebc 31       		.uleb128 0x31
- 28764 3ebd AC0E0000 		.long	0xeac
- 28765 3ec1 00000000 		.quad	.LBB1137
- 28765      00000000 
- 28766 3ec9 00000000 		.quad	.LBE1137
- 28766      00000000 
- 28767 3ed1 02       		.byte	0x2
- 28768 3ed2 9806     		.value	0x698
- 28769 3ed4 0D3F0000 		.long	0x3f0d
- 28770 3ed8 32       		.uleb128 0x32
- 28771 3ed9 BE0E0000 		.long	0xebe
- 28772 3edd 03       		.byte	0x3
- 28773 3ede 91       		.byte	0x91
- 28774 3edf 8066     		.sleb128 -3328
- 28775 3ee1 35       		.uleb128 0x35
- 28776 3ee2 CB0E0000 		.long	0xecb
- 28777 3ee6 00000000 		.quad	.LBB1139
- 28777      00000000 
- 28778 3eee 00000000 		.quad	.LBE1139
- 28778      00000000 
- 28779 3ef6 02       		.byte	0x2
- 28780 3ef7 4905     		.value	0x549
- 28781 3ef9 32       		.uleb128 0x32
- 28782 3efa E90E0000 		.long	0xee9
- 28783 3efe 03       		.byte	0x3
- 28784 3eff 91       		.byte	0x91
- 28785 3f00 9C66     		.sleb128 -3300
- 28786 3f02 32       		.uleb128 0x32
- 28787 3f03 DD0E0000 		.long	0xedd
- 28788 3f07 03       		.byte	0x3
- 28789 3f08 91       		.byte	0x91
- 28790 3f09 A066     		.sleb128 -3296
- 28791 3f0b 00       		.byte	0x0
- 28792 3f0c 00       		.byte	0x0
- 28793 3f0d 33       		.uleb128 0x33
- 28794 3f0e 00000000 		.quad	.LBB1141
- 28794      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 790
-
-
- 28795 3f16 00000000 		.quad	.LBE1141
- 28795      00000000 
- 28796 3f1e 34       		.uleb128 0x34
- 28797 3f1f 480C0000 		.long	0xc48
- 28798 3f23 04       		.byte	0x4
- 28799 3f24 91       		.byte	0x91
- 28800 3f25 F0AF7F   		.sleb128 -10256
- 28801 3f28 00       		.byte	0x0
- 28802 3f29 00       		.byte	0x0
- 28803 3f2a 00       		.byte	0x0
- 28804 3f2b 31       		.uleb128 0x31
- 28805 3f2c F60E0000 		.long	0xef6
- 28806 3f30 00000000 		.quad	.LBB1142
- 28806      00000000 
- 28807 3f38 00000000 		.quad	.LBE1142
- 28807      00000000 
- 28808 3f40 02       		.byte	0x2
- 28809 3f41 D606     		.value	0x6d6
- 28810 3f43 40410000 		.long	0x4140
- 28811 3f47 32       		.uleb128 0x32
- 28812 3f48 080F0000 		.long	0xf08
- 28813 3f4c 03       		.byte	0x3
- 28814 3f4d 91       		.byte	0x91
- 28815 3f4e B066     		.sleb128 -3280
- 28816 3f50 33       		.uleb128 0x33
- 28817 3f51 00000000 		.quad	.LBB1143
- 28817      00000000 
- 28818 3f59 00000000 		.quad	.LBE1143
- 28818      00000000 
- 28819 3f61 34       		.uleb128 0x34
- 28820 3f62 140F0000 		.long	0xf14
- 28821 3f66 04       		.byte	0x4
- 28822 3f67 76       		.byte	0x76
- 28823 3f68 D0AB7F   		.sleb128 -10800
- 28824 3f6b 31       		.uleb128 0x31
- 28825 3f6c 210F0000 		.long	0xf21
- 28826 3f70 00000000 		.quad	.LBB1144
- 28826      00000000 
- 28827 3f78 00000000 		.quad	.LBE1144
- 28827      00000000 
- 28828 3f80 02       		.byte	0x2
- 28829 3f81 1F06     		.value	0x61f
- 28830 3f83 08400000 		.long	0x4008
- 28831 3f87 32       		.uleb128 0x32
- 28832 3f88 330F0000 		.long	0xf33
- 28833 3f8c 03       		.byte	0x3
- 28834 3f8d 91       		.byte	0x91
- 28835 3f8e C066     		.sleb128 -3264
- 28836 3f90 33       		.uleb128 0x33
- 28837 3f91 00000000 		.quad	.LBB1145
- 28837      00000000 
- 28838 3f99 00000000 		.quad	.LBE1145
- 28838      00000000 
- 28839 3fa1 34       		.uleb128 0x34
- 28840 3fa2 3F0F0000 		.long	0xf3f
- 28841 3fa6 09       		.byte	0x9
- 28842 3fa7 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 791
-
-
- 28843 3fa8 00000000 		.quad	mask.7943
- 28843      00000000 
- 28844 3fb0 35       		.uleb128 0x35
- 28845 3fb1 A00D0000 		.long	0xda0
- 28846 3fb5 00000000 		.quad	.LBB1146
- 28846      00000000 
- 28847 3fbd 00000000 		.quad	.LBE1146
- 28847      00000000 
- 28848 3fc5 02       		.byte	0x2
- 28849 3fc6 FE04     		.value	0x4fe
- 28850 3fc8 32       		.uleb128 0x32
- 28851 3fc9 BE0D0000 		.long	0xdbe
- 28852 3fcd 03       		.byte	0x3
- 28853 3fce 91       		.byte	0x91
- 28854 3fcf D066     		.sleb128 -3248
- 28855 3fd1 32       		.uleb128 0x32
- 28856 3fd2 B20D0000 		.long	0xdb2
- 28857 3fd6 03       		.byte	0x3
- 28858 3fd7 91       		.byte	0x91
- 28859 3fd8 E066     		.sleb128 -3232
- 28860 3fda 35       		.uleb128 0x35
- 28861 3fdb CB0D0000 		.long	0xdcb
- 28862 3fdf 00000000 		.quad	.LBB1148
- 28862      00000000 
- 28863 3fe7 00000000 		.quad	.LBE1148
- 28863      00000000 
- 28864 3fef 02       		.byte	0x2
- 28865 3ff0 7501     		.value	0x175
- 28866 3ff2 32       		.uleb128 0x32
- 28867 3ff3 E90D0000 		.long	0xde9
- 28868 3ff7 03       		.byte	0x3
- 28869 3ff8 91       		.byte	0x91
- 28870 3ff9 F066     		.sleb128 -3216
- 28871 3ffb 32       		.uleb128 0x32
- 28872 3ffc DD0D0000 		.long	0xddd
- 28873 4000 03       		.byte	0x3
- 28874 4001 91       		.byte	0x91
- 28875 4002 8067     		.sleb128 -3200
- 28876 4004 00       		.byte	0x0
- 28877 4005 00       		.byte	0x0
- 28878 4006 00       		.byte	0x0
- 28879 4007 00       		.byte	0x0
- 28880 4008 31       		.uleb128 0x31
- 28881 4009 210F0000 		.long	0xf21
- 28882 400d 00000000 		.quad	.LBB1150
- 28882      00000000 
- 28883 4015 00000000 		.quad	.LBE1150
- 28883      00000000 
- 28884 401d 02       		.byte	0x2
- 28885 401e 2006     		.value	0x620
- 28886 4020 A5400000 		.long	0x40a5
- 28887 4024 32       		.uleb128 0x32
- 28888 4025 330F0000 		.long	0xf33
- 28889 4029 03       		.byte	0x3
- 28890 402a 91       		.byte	0x91
- 28891 402b 9067     		.sleb128 -3184
- 28892 402d 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 792
-
-
- 28893 402e 00000000 		.quad	.LBB1151
- 28893      00000000 
- 28894 4036 00000000 		.quad	.LBE1151
- 28894      00000000 
- 28895 403e 34       		.uleb128 0x34
- 28896 403f 3F0F0000 		.long	0xf3f
- 28897 4043 09       		.byte	0x9
- 28898 4044 03       		.byte	0x3
- 28899 4045 00000000 		.quad	mask.7943
- 28899      00000000 
- 28900 404d 35       		.uleb128 0x35
- 28901 404e A00D0000 		.long	0xda0
- 28902 4052 00000000 		.quad	.LBB1152
- 28902      00000000 
- 28903 405a 00000000 		.quad	.LBE1152
- 28903      00000000 
- 28904 4062 02       		.byte	0x2
- 28905 4063 FE04     		.value	0x4fe
- 28906 4065 32       		.uleb128 0x32
- 28907 4066 BE0D0000 		.long	0xdbe
- 28908 406a 03       		.byte	0x3
- 28909 406b 91       		.byte	0x91
- 28910 406c A067     		.sleb128 -3168
- 28911 406e 32       		.uleb128 0x32
- 28912 406f B20D0000 		.long	0xdb2
- 28913 4073 03       		.byte	0x3
- 28914 4074 91       		.byte	0x91
- 28915 4075 B067     		.sleb128 -3152
- 28916 4077 35       		.uleb128 0x35
- 28917 4078 CB0D0000 		.long	0xdcb
- 28918 407c 00000000 		.quad	.LBB1154
- 28918      00000000 
- 28919 4084 00000000 		.quad	.LBE1154
- 28919      00000000 
- 28920 408c 02       		.byte	0x2
- 28921 408d 7501     		.value	0x175
- 28922 408f 32       		.uleb128 0x32
- 28923 4090 E90D0000 		.long	0xde9
- 28924 4094 03       		.byte	0x3
- 28925 4095 91       		.byte	0x91
- 28926 4096 C067     		.sleb128 -3136
- 28927 4098 32       		.uleb128 0x32
- 28928 4099 DD0D0000 		.long	0xddd
- 28929 409d 03       		.byte	0x3
- 28930 409e 91       		.byte	0x91
- 28931 409f D067     		.sleb128 -3120
- 28932 40a1 00       		.byte	0x0
- 28933 40a2 00       		.byte	0x0
- 28934 40a3 00       		.byte	0x0
- 28935 40a4 00       		.byte	0x0
- 28936 40a5 35       		.uleb128 0x35
- 28937 40a6 210F0000 		.long	0xf21
- 28938 40aa 00000000 		.quad	.LBB1156
- 28938      00000000 
- 28939 40b2 00000000 		.quad	.LBE1156
- 28939      00000000 
- 28940 40ba 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 793
-
-
- 28941 40bb 2106     		.value	0x621
- 28942 40bd 32       		.uleb128 0x32
- 28943 40be 330F0000 		.long	0xf33
- 28944 40c2 03       		.byte	0x3
- 28945 40c3 91       		.byte	0x91
- 28946 40c4 E067     		.sleb128 -3104
- 28947 40c6 33       		.uleb128 0x33
- 28948 40c7 00000000 		.quad	.LBB1157
- 28948      00000000 
- 28949 40cf 00000000 		.quad	.LBE1157
- 28949      00000000 
- 28950 40d7 34       		.uleb128 0x34
- 28951 40d8 3F0F0000 		.long	0xf3f
- 28952 40dc 09       		.byte	0x9
- 28953 40dd 03       		.byte	0x3
- 28954 40de 00000000 		.quad	mask.7943
- 28954      00000000 
- 28955 40e6 35       		.uleb128 0x35
- 28956 40e7 A00D0000 		.long	0xda0
- 28957 40eb 00000000 		.quad	.LBB1158
- 28957      00000000 
- 28958 40f3 00000000 		.quad	.LBE1158
- 28958      00000000 
- 28959 40fb 02       		.byte	0x2
- 28960 40fc FE04     		.value	0x4fe
- 28961 40fe 32       		.uleb128 0x32
- 28962 40ff BE0D0000 		.long	0xdbe
- 28963 4103 03       		.byte	0x3
- 28964 4104 91       		.byte	0x91
- 28965 4105 F067     		.sleb128 -3088
- 28966 4107 32       		.uleb128 0x32
- 28967 4108 B20D0000 		.long	0xdb2
- 28968 410c 03       		.byte	0x3
- 28969 410d 91       		.byte	0x91
- 28970 410e 8068     		.sleb128 -3072
- 28971 4110 35       		.uleb128 0x35
- 28972 4111 CB0D0000 		.long	0xdcb
- 28973 4115 00000000 		.quad	.LBB1160
- 28973      00000000 
- 28974 411d 00000000 		.quad	.LBE1160
- 28974      00000000 
- 28975 4125 02       		.byte	0x2
- 28976 4126 7501     		.value	0x175
- 28977 4128 32       		.uleb128 0x32
- 28978 4129 E90D0000 		.long	0xde9
- 28979 412d 03       		.byte	0x3
- 28980 412e 91       		.byte	0x91
- 28981 412f 9068     		.sleb128 -3056
- 28982 4131 32       		.uleb128 0x32
- 28983 4132 DD0D0000 		.long	0xddd
- 28984 4136 03       		.byte	0x3
- 28985 4137 91       		.byte	0x91
- 28986 4138 A068     		.sleb128 -3040
- 28987 413a 00       		.byte	0x0
- 28988 413b 00       		.byte	0x0
- 28989 413c 00       		.byte	0x0
- 28990 413d 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 794
-
-
- 28991 413e 00       		.byte	0x0
- 28992 413f 00       		.byte	0x0
- 28993 4140 31       		.uleb128 0x31
- 28994 4141 D50B0000 		.long	0xbd5
- 28995 4145 00000000 		.quad	.LBB1162
- 28995      00000000 
- 28996 414d 00000000 		.quad	.LBE1162
- 28996      00000000 
- 28997 4155 02       		.byte	0x2
- 28998 4156 D706     		.value	0x6d7
- 28999 4158 23460000 		.long	0x4623
- 29000 415c 32       		.uleb128 0x32
- 29001 415d F30B0000 		.long	0xbf3
- 29002 4161 03       		.byte	0x3
- 29003 4162 91       		.byte	0x91
- 29004 4163 BC68     		.sleb128 -3012
- 29005 4165 32       		.uleb128 0x32
- 29006 4166 E70B0000 		.long	0xbe7
- 29007 416a 03       		.byte	0x3
- 29008 416b 91       		.byte	0x91
- 29009 416c C068     		.sleb128 -3008
- 29010 416e 33       		.uleb128 0x33
- 29011 416f 00000000 		.quad	.LBB1163
- 29011      00000000 
- 29012 4177 00000000 		.quad	.LBE1163
- 29012      00000000 
- 29013 417f 34       		.uleb128 0x34
- 29014 4180 FF0B0000 		.long	0xbff
- 29015 4184 04       		.byte	0x4
- 29016 4185 76       		.byte	0x76
- 29017 4186 F0AB7F   		.sleb128 -10768
- 29018 4189 34       		.uleb128 0x34
- 29019 418a 0B0C0000 		.long	0xc0b
- 29020 418e 04       		.byte	0x4
- 29021 418f 76       		.byte	0x76
- 29022 4190 E0AB7F   		.sleb128 -10784
- 29023 4193 31       		.uleb128 0x31
- 29024 4194 540C0000 		.long	0xc54
- 29025 4198 00000000 		.quad	.LBB1164
- 29025      00000000 
- 29026 41a0 00000000 		.quad	.LBE1164
- 29026      00000000 
- 29027 41a8 02       		.byte	0x2
- 29028 41a9 9106     		.value	0x691
- 29029 41ab FF410000 		.long	0x41ff
- 29030 41af 32       		.uleb128 0x32
- 29031 41b0 7E0C0000 		.long	0xc7e
- 29032 41b4 03       		.byte	0x3
- 29033 41b5 91       		.byte	0x91
- 29034 41b6 D868     		.sleb128 -2984
- 29035 41b8 32       		.uleb128 0x32
- 29036 41b9 720C0000 		.long	0xc72
- 29037 41bd 03       		.byte	0x3
- 29038 41be 91       		.byte	0x91
- 29039 41bf DC68     		.sleb128 -2980
- 29040 41c1 32       		.uleb128 0x32
- 29041 41c2 660C0000 		.long	0xc66
-
GAS LISTING /tmp/ccjbMjHD.s 			page 795
-
-
- 29042 41c6 03       		.byte	0x3
- 29043 41c7 91       		.byte	0x91
- 29044 41c8 E068     		.sleb128 -2976
- 29045 41ca 35       		.uleb128 0x35
- 29046 41cb 8B0C0000 		.long	0xc8b
- 29047 41cf 00000000 		.quad	.LBB1166
- 29047      00000000 
- 29048 41d7 00000000 		.quad	.LBE1166
- 29048      00000000 
- 29049 41df 02       		.byte	0x2
- 29050 41e0 0702     		.value	0x207
- 29051 41e2 32       		.uleb128 0x32
- 29052 41e3 B40C0000 		.long	0xcb4
- 29053 41e7 03       		.byte	0x3
- 29054 41e8 91       		.byte	0x91
- 29055 41e9 F868     		.sleb128 -2952
- 29056 41eb 32       		.uleb128 0x32
- 29057 41ec A90C0000 		.long	0xca9
- 29058 41f0 03       		.byte	0x3
- 29059 41f1 91       		.byte	0x91
- 29060 41f2 FC68     		.sleb128 -2948
- 29061 41f4 32       		.uleb128 0x32
- 29062 41f5 9D0C0000 		.long	0xc9d
- 29063 41f9 03       		.byte	0x3
- 29064 41fa 91       		.byte	0x91
- 29065 41fb 8069     		.sleb128 -2944
- 29066 41fd 00       		.byte	0x0
- 29067 41fe 00       		.byte	0x0
- 29068 41ff 31       		.uleb128 0x31
- 29069 4200 C10C0000 		.long	0xcc1
- 29070 4204 00000000 		.quad	.LBB1168
- 29070      00000000 
- 29071 420c 00000000 		.quad	.LBE1168
- 29071      00000000 
- 29072 4214 02       		.byte	0x2
- 29073 4215 9206     		.value	0x692
- 29074 4217 88440000 		.long	0x4488
- 29075 421b 32       		.uleb128 0x32
- 29076 421c D30C0000 		.long	0xcd3
- 29077 4220 03       		.byte	0x3
- 29078 4221 91       		.byte	0x91
- 29079 4222 9069     		.sleb128 -2928
- 29080 4224 35       		.uleb128 0x35
- 29081 4225 E00C0000 		.long	0xce0
- 29082 4229 00000000 		.quad	.LBB1170
- 29082      00000000 
- 29083 4231 00000000 		.quad	.LBE1170
- 29083      00000000 
- 29084 4239 02       		.byte	0x2
- 29085 423a 7D03     		.value	0x37d
- 29086 423c 32       		.uleb128 0x32
- 29087 423d FE0C0000 		.long	0xcfe
- 29088 4241 03       		.byte	0x3
- 29089 4242 91       		.byte	0x91
- 29090 4243 A869     		.sleb128 -2904
- 29091 4245 32       		.uleb128 0x32
- 29092 4246 F20C0000 		.long	0xcf2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 796
-
-
- 29093 424a 03       		.byte	0x3
- 29094 424b 91       		.byte	0x91
- 29095 424c B069     		.sleb128 -2896
- 29096 424e 33       		.uleb128 0x33
- 29097 424f 00000000 		.quad	.LBB1171
- 29097      00000000 
- 29098 4257 00000000 		.quad	.LBE1171
- 29098      00000000 
- 29099 425f 34       		.uleb128 0x34
- 29100 4260 0A0D0000 		.long	0xd0a
- 29101 4264 03       		.byte	0x3
- 29102 4265 91       		.byte	0x91
- 29103 4266 806A     		.sleb128 -2816
- 29104 4268 34       		.uleb128 0x34
- 29105 4269 150D0000 		.long	0xd15
- 29106 426d 03       		.byte	0x3
- 29107 426e 91       		.byte	0x91
- 29108 426f F069     		.sleb128 -2832
- 29109 4271 34       		.uleb128 0x34
- 29110 4272 200D0000 		.long	0xd20
- 29111 4276 03       		.byte	0x3
- 29112 4277 91       		.byte	0x91
- 29113 4278 E069     		.sleb128 -2848
- 29114 427a 34       		.uleb128 0x34
- 29115 427b 2C0D0000 		.long	0xd2c
- 29116 427f 03       		.byte	0x3
- 29117 4280 91       		.byte	0x91
- 29118 4281 D069     		.sleb128 -2864
- 29119 4283 34       		.uleb128 0x34
- 29120 4284 380D0000 		.long	0xd38
- 29121 4288 03       		.byte	0x3
- 29122 4289 91       		.byte	0x91
- 29123 428a CC69     		.sleb128 -2868
- 29124 428c 31       		.uleb128 0x31
- 29125 428d 4F0D0000 		.long	0xd4f
- 29126 4291 00000000 		.quad	.LBB1172
- 29126      00000000 
- 29127 4299 00000000 		.quad	.LBE1172
- 29127      00000000 
- 29128 42a1 02       		.byte	0x2
- 29129 42a2 5603     		.value	0x356
- 29130 42a4 BB420000 		.long	0x42bb
- 29131 42a8 32       		.uleb128 0x32
- 29132 42a9 6A0D0000 		.long	0xd6a
- 29133 42ad 03       		.byte	0x3
- 29134 42ae 91       		.byte	0x91
- 29135 42af 906A     		.sleb128 -2800
- 29136 42b1 32       		.uleb128 0x32
- 29137 42b2 600D0000 		.long	0xd60
- 29138 42b6 03       		.byte	0x3
- 29139 42b7 91       		.byte	0x91
- 29140 42b8 A06A     		.sleb128 -2784
- 29141 42ba 00       		.byte	0x0
- 29142 42bb 31       		.uleb128 0x31
- 29143 42bc 750D0000 		.long	0xd75
- 29144 42c0 00000000 		.quad	.LBB1174
- 29144      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 797
-
-
- 29145 42c8 00000000 		.quad	.LBE1174
- 29145      00000000 
- 29146 42d0 02       		.byte	0x2
- 29147 42d1 5903     		.value	0x359
- 29148 42d3 EA420000 		.long	0x42ea
- 29149 42d7 32       		.uleb128 0x32
- 29150 42d8 930D0000 		.long	0xd93
- 29151 42dc 03       		.byte	0x3
- 29152 42dd 91       		.byte	0x91
- 29153 42de BC6A     		.sleb128 -2756
- 29154 42e0 32       		.uleb128 0x32
- 29155 42e1 870D0000 		.long	0xd87
- 29156 42e5 03       		.byte	0x3
- 29157 42e6 91       		.byte	0x91
- 29158 42e7 C06A     		.sleb128 -2752
- 29159 42e9 00       		.byte	0x0
- 29160 42ea 31       		.uleb128 0x31
- 29161 42eb 4F0D0000 		.long	0xd4f
- 29162 42ef 00000000 		.quad	.LBB1176
- 29162      00000000 
- 29163 42f7 00000000 		.quad	.LBE1176
- 29163      00000000 
- 29164 42ff 02       		.byte	0x2
- 29165 4300 5B03     		.value	0x35b
- 29166 4302 19430000 		.long	0x4319
- 29167 4306 32       		.uleb128 0x32
- 29168 4307 6A0D0000 		.long	0xd6a
- 29169 430b 03       		.byte	0x3
- 29170 430c 91       		.byte	0x91
- 29171 430d D06A     		.sleb128 -2736
- 29172 430f 32       		.uleb128 0x32
- 29173 4310 600D0000 		.long	0xd60
- 29174 4314 03       		.byte	0x3
- 29175 4315 91       		.byte	0x91
- 29176 4316 E06A     		.sleb128 -2720
- 29177 4318 00       		.byte	0x0
- 29178 4319 31       		.uleb128 0x31
- 29179 431a A00D0000 		.long	0xda0
- 29180 431e 00000000 		.quad	.LBB1178
- 29180      00000000 
- 29181 4326 00000000 		.quad	.LBE1178
- 29181      00000000 
- 29182 432e 02       		.byte	0x2
- 29183 432f 6403     		.value	0x364
- 29184 4331 73430000 		.long	0x4373
- 29185 4335 32       		.uleb128 0x32
- 29186 4336 BE0D0000 		.long	0xdbe
- 29187 433a 03       		.byte	0x3
- 29188 433b 91       		.byte	0x91
- 29189 433c F06A     		.sleb128 -2704
- 29190 433e 32       		.uleb128 0x32
- 29191 433f B20D0000 		.long	0xdb2
- 29192 4343 03       		.byte	0x3
- 29193 4344 91       		.byte	0x91
- 29194 4345 806B     		.sleb128 -2688
- 29195 4347 35       		.uleb128 0x35
- 29196 4348 CB0D0000 		.long	0xdcb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 798
-
-
- 29197 434c 00000000 		.quad	.LBB1180
- 29197      00000000 
- 29198 4354 00000000 		.quad	.LBE1180
- 29198      00000000 
- 29199 435c 02       		.byte	0x2
- 29200 435d 7501     		.value	0x175
- 29201 435f 32       		.uleb128 0x32
- 29202 4360 E90D0000 		.long	0xde9
- 29203 4364 03       		.byte	0x3
- 29204 4365 91       		.byte	0x91
- 29205 4366 906B     		.sleb128 -2672
- 29206 4368 32       		.uleb128 0x32
- 29207 4369 DD0D0000 		.long	0xddd
- 29208 436d 03       		.byte	0x3
- 29209 436e 91       		.byte	0x91
- 29210 436f A06B     		.sleb128 -2656
- 29211 4371 00       		.byte	0x0
- 29212 4372 00       		.byte	0x0
- 29213 4373 31       		.uleb128 0x31
- 29214 4374 FB0D0000 		.long	0xdfb
- 29215 4378 00000000 		.quad	.LBB1182
- 29215      00000000 
- 29216 4380 00000000 		.quad	.LBE1182
- 29216      00000000 
- 29217 4388 02       		.byte	0x2
- 29218 4389 6603     		.value	0x366
- 29219 438b A2430000 		.long	0x43a2
- 29220 438f 32       		.uleb128 0x32
- 29221 4390 160E0000 		.long	0xe16
- 29222 4394 03       		.byte	0x3
- 29223 4395 91       		.byte	0x91
- 29224 4396 B06B     		.sleb128 -2640
- 29225 4398 32       		.uleb128 0x32
- 29226 4399 0C0E0000 		.long	0xe0c
- 29227 439d 03       		.byte	0x3
- 29228 439e 91       		.byte	0x91
- 29229 439f C06B     		.sleb128 -2624
- 29230 43a1 00       		.byte	0x0
- 29231 43a2 31       		.uleb128 0x31
- 29232 43a3 A00D0000 		.long	0xda0
- 29233 43a7 00000000 		.quad	.LBB1184
- 29233      00000000 
- 29234 43af 00000000 		.quad	.LBE1184
- 29234      00000000 
- 29235 43b7 02       		.byte	0x2
- 29236 43b8 6803     		.value	0x368
- 29237 43ba FC430000 		.long	0x43fc
- 29238 43be 32       		.uleb128 0x32
- 29239 43bf BE0D0000 		.long	0xdbe
- 29240 43c3 03       		.byte	0x3
- 29241 43c4 91       		.byte	0x91
- 29242 43c5 D06B     		.sleb128 -2608
- 29243 43c7 32       		.uleb128 0x32
- 29244 43c8 B20D0000 		.long	0xdb2
- 29245 43cc 03       		.byte	0x3
- 29246 43cd 91       		.byte	0x91
- 29247 43ce E06B     		.sleb128 -2592
-
GAS LISTING /tmp/ccjbMjHD.s 			page 799
-
-
- 29248 43d0 35       		.uleb128 0x35
- 29249 43d1 CB0D0000 		.long	0xdcb
- 29250 43d5 00000000 		.quad	.LBB1186
- 29250      00000000 
- 29251 43dd 00000000 		.quad	.LBE1186
- 29251      00000000 
- 29252 43e5 02       		.byte	0x2
- 29253 43e6 7501     		.value	0x175
- 29254 43e8 32       		.uleb128 0x32
- 29255 43e9 E90D0000 		.long	0xde9
- 29256 43ed 03       		.byte	0x3
- 29257 43ee 91       		.byte	0x91
- 29258 43ef F06B     		.sleb128 -2576
- 29259 43f1 32       		.uleb128 0x32
- 29260 43f2 DD0D0000 		.long	0xddd
- 29261 43f6 03       		.byte	0x3
- 29262 43f7 91       		.byte	0x91
- 29263 43f8 806C     		.sleb128 -2560
- 29264 43fa 00       		.byte	0x0
- 29265 43fb 00       		.byte	0x0
- 29266 43fc 31       		.uleb128 0x31
- 29267 43fd FB0D0000 		.long	0xdfb
- 29268 4401 00000000 		.quad	.LBB1188
- 29268      00000000 
- 29269 4409 00000000 		.quad	.LBE1188
- 29269      00000000 
- 29270 4411 02       		.byte	0x2
- 29271 4412 6A03     		.value	0x36a
- 29272 4414 2B440000 		.long	0x442b
- 29273 4418 32       		.uleb128 0x32
- 29274 4419 160E0000 		.long	0xe16
- 29275 441d 03       		.byte	0x3
- 29276 441e 91       		.byte	0x91
- 29277 441f 906C     		.sleb128 -2544
- 29278 4421 32       		.uleb128 0x32
- 29279 4422 0C0E0000 		.long	0xe0c
- 29280 4426 03       		.byte	0x3
- 29281 4427 91       		.byte	0x91
- 29282 4428 A06C     		.sleb128 -2528
- 29283 442a 00       		.byte	0x0
- 29284 442b 31       		.uleb128 0x31
- 29285 442c 210E0000 		.long	0xe21
- 29286 4430 00000000 		.quad	.LBB1190
- 29286      00000000 
- 29287 4438 00000000 		.quad	.LBE1190
- 29287      00000000 
- 29288 4440 02       		.byte	0x2
- 29289 4441 6C03     		.value	0x36c
- 29290 4443 5A440000 		.long	0x445a
- 29291 4447 32       		.uleb128 0x32
- 29292 4448 3E0E0000 		.long	0xe3e
- 29293 444c 03       		.byte	0x3
- 29294 444d 91       		.byte	0x91
- 29295 444e B06C     		.sleb128 -2512
- 29296 4450 32       		.uleb128 0x32
- 29297 4451 330E0000 		.long	0xe33
- 29298 4455 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 800
-
-
- 29299 4456 91       		.byte	0x91
- 29300 4457 C06C     		.sleb128 -2496
- 29301 4459 00       		.byte	0x0
- 29302 445a 35       		.uleb128 0x35
- 29303 445b 4F0D0000 		.long	0xd4f
- 29304 445f 00000000 		.quad	.LBB1192
- 29304      00000000 
- 29305 4467 00000000 		.quad	.LBE1192
- 29305      00000000 
- 29306 446f 02       		.byte	0x2
- 29307 4470 6E03     		.value	0x36e
- 29308 4472 32       		.uleb128 0x32
- 29309 4473 6A0D0000 		.long	0xd6a
- 29310 4477 03       		.byte	0x3
- 29311 4478 91       		.byte	0x91
- 29312 4479 D06C     		.sleb128 -2480
- 29313 447b 32       		.uleb128 0x32
- 29314 447c 600D0000 		.long	0xd60
- 29315 4480 03       		.byte	0x3
- 29316 4481 91       		.byte	0x91
- 29317 4482 E06C     		.sleb128 -2464
- 29318 4484 00       		.byte	0x0
- 29319 4485 00       		.byte	0x0
- 29320 4486 00       		.byte	0x0
- 29321 4487 00       		.byte	0x0
- 29322 4488 36       		.uleb128 0x36
- 29323 4489 00000000 		.quad	.LBB1194
- 29323      00000000 
- 29324 4491 00000000 		.quad	.LBE1194
- 29324      00000000 
- 29325 4499 A8440000 		.long	0x44a8
- 29326 449d 34       		.uleb128 0x34
- 29327 449e 1C0C0000 		.long	0xc1c
- 29328 44a2 04       		.byte	0x4
- 29329 44a3 91       		.byte	0x91
- 29330 44a4 E0B07F   		.sleb128 -10144
- 29331 44a7 00       		.byte	0x0
- 29332 44a8 31       		.uleb128 0x31
- 29333 44a9 4A0E0000 		.long	0xe4a
- 29334 44ad 00000000 		.quad	.LBB1195
- 29334      00000000 
- 29335 44b5 00000000 		.quad	.LBE1195
- 29335      00000000 
- 29336 44bd 02       		.byte	0x2
- 29337 44be 9406     		.value	0x694
- 29338 44c0 45450000 		.long	0x4545
- 29339 44c4 32       		.uleb128 0x32
- 29340 44c5 5C0E0000 		.long	0xe5c
- 29341 44c9 03       		.byte	0x3
- 29342 44ca 91       		.byte	0x91
- 29343 44cb F06C     		.sleb128 -2448
- 29344 44cd 33       		.uleb128 0x33
- 29345 44ce 00000000 		.quad	.LBB1196
- 29345      00000000 
- 29346 44d6 00000000 		.quad	.LBE1196
- 29346      00000000 
- 29347 44de 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 801
-
-
- 29348 44df 680E0000 		.long	0xe68
- 29349 44e3 09       		.byte	0x9
- 29350 44e4 03       		.byte	0x3
- 29351 44e5 00000000 		.quad	ShiftRowTable.7385
- 29351      00000000 
- 29352 44ed 35       		.uleb128 0x35
- 29353 44ee A00D0000 		.long	0xda0
- 29354 44f2 00000000 		.quad	.LBB1197
- 29354      00000000 
- 29355 44fa 00000000 		.quad	.LBE1197
- 29355      00000000 
- 29356 4502 02       		.byte	0x2
- 29357 4503 9B02     		.value	0x29b
- 29358 4505 32       		.uleb128 0x32
- 29359 4506 BE0D0000 		.long	0xdbe
- 29360 450a 03       		.byte	0x3
- 29361 450b 91       		.byte	0x91
- 29362 450c 806D     		.sleb128 -2432
- 29363 450e 32       		.uleb128 0x32
- 29364 450f B20D0000 		.long	0xdb2
- 29365 4513 03       		.byte	0x3
- 29366 4514 91       		.byte	0x91
- 29367 4515 906D     		.sleb128 -2416
- 29368 4517 35       		.uleb128 0x35
- 29369 4518 CB0D0000 		.long	0xdcb
- 29370 451c 00000000 		.quad	.LBB1199
- 29370      00000000 
- 29371 4524 00000000 		.quad	.LBE1199
- 29371      00000000 
- 29372 452c 02       		.byte	0x2
- 29373 452d 7501     		.value	0x175
- 29374 452f 32       		.uleb128 0x32
- 29375 4530 E90D0000 		.long	0xde9
- 29376 4534 03       		.byte	0x3
- 29377 4535 91       		.byte	0x91
- 29378 4536 A06D     		.sleb128 -2400
- 29379 4538 32       		.uleb128 0x32
- 29380 4539 DD0D0000 		.long	0xddd
- 29381 453d 03       		.byte	0x3
- 29382 453e 91       		.byte	0x91
- 29383 453f B06D     		.sleb128 -2384
- 29384 4541 00       		.byte	0x0
- 29385 4542 00       		.byte	0x0
- 29386 4543 00       		.byte	0x0
- 29387 4544 00       		.byte	0x0
- 29388 4545 36       		.uleb128 0x36
- 29389 4546 00000000 		.quad	.LBB1201
- 29389      00000000 
- 29390 454e 00000000 		.quad	.LBE1201
- 29390      00000000 
- 29391 4556 65450000 		.long	0x4565
- 29392 455a 34       		.uleb128 0x34
- 29393 455b 2C0C0000 		.long	0xc2c
- 29394 455f 04       		.byte	0x4
- 29395 4560 91       		.byte	0x91
- 29396 4561 D0B07F   		.sleb128 -10160
- 29397 4564 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 802
-
-
- 29398 4565 31       		.uleb128 0x31
- 29399 4566 860E0000 		.long	0xe86
- 29400 456a 00000000 		.quad	.LBB1202
- 29400      00000000 
- 29401 4572 00000000 		.quad	.LBE1202
- 29401      00000000 
- 29402 457a 02       		.byte	0x2
- 29403 457b 9606     		.value	0x696
- 29404 457d 94450000 		.long	0x4594
- 29405 4581 32       		.uleb128 0x32
- 29406 4582 A10E0000 		.long	0xea1
- 29407 4586 03       		.byte	0x3
- 29408 4587 91       		.byte	0x91
- 29409 4588 C06D     		.sleb128 -2368
- 29410 458a 32       		.uleb128 0x32
- 29411 458b 970E0000 		.long	0xe97
- 29412 458f 03       		.byte	0x3
- 29413 4590 91       		.byte	0x91
- 29414 4591 D06D     		.sleb128 -2352
- 29415 4593 00       		.byte	0x0
- 29416 4594 36       		.uleb128 0x36
- 29417 4595 00000000 		.quad	.LBB1204
- 29417      00000000 
- 29418 459d 00000000 		.quad	.LBE1204
- 29418      00000000 
- 29419 45a5 B4450000 		.long	0x45b4
- 29420 45a9 34       		.uleb128 0x34
- 29421 45aa 3C0C0000 		.long	0xc3c
- 29422 45ae 04       		.byte	0x4
- 29423 45af 91       		.byte	0x91
- 29424 45b0 C0B07F   		.sleb128 -10176
- 29425 45b3 00       		.byte	0x0
- 29426 45b4 31       		.uleb128 0x31
- 29427 45b5 AC0E0000 		.long	0xeac
- 29428 45b9 00000000 		.quad	.LBB1205
- 29428      00000000 
- 29429 45c1 00000000 		.quad	.LBE1205
- 29429      00000000 
- 29430 45c9 02       		.byte	0x2
- 29431 45ca 9806     		.value	0x698
- 29432 45cc 05460000 		.long	0x4605
- 29433 45d0 32       		.uleb128 0x32
- 29434 45d1 BE0E0000 		.long	0xebe
- 29435 45d5 03       		.byte	0x3
- 29436 45d6 91       		.byte	0x91
- 29437 45d7 E06D     		.sleb128 -2336
- 29438 45d9 35       		.uleb128 0x35
- 29439 45da CB0E0000 		.long	0xecb
- 29440 45de 00000000 		.quad	.LBB1207
- 29440      00000000 
- 29441 45e6 00000000 		.quad	.LBE1207
- 29441      00000000 
- 29442 45ee 02       		.byte	0x2
- 29443 45ef 4905     		.value	0x549
- 29444 45f1 32       		.uleb128 0x32
- 29445 45f2 E90E0000 		.long	0xee9
- 29446 45f6 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 803
-
-
- 29447 45f7 91       		.byte	0x91
- 29448 45f8 FC6D     		.sleb128 -2308
- 29449 45fa 32       		.uleb128 0x32
- 29450 45fb DD0E0000 		.long	0xedd
- 29451 45ff 03       		.byte	0x3
- 29452 4600 91       		.byte	0x91
- 29453 4601 806E     		.sleb128 -2304
- 29454 4603 00       		.byte	0x0
- 29455 4604 00       		.byte	0x0
- 29456 4605 33       		.uleb128 0x33
- 29457 4606 00000000 		.quad	.LBB1209
- 29457      00000000 
- 29458 460e 00000000 		.quad	.LBE1209
- 29458      00000000 
- 29459 4616 34       		.uleb128 0x34
- 29460 4617 480C0000 		.long	0xc48
- 29461 461b 04       		.byte	0x4
- 29462 461c 91       		.byte	0x91
- 29463 461d B0B07F   		.sleb128 -10192
- 29464 4620 00       		.byte	0x0
- 29465 4621 00       		.byte	0x0
- 29466 4622 00       		.byte	0x0
- 29467 4623 31       		.uleb128 0x31
- 29468 4624 F60E0000 		.long	0xef6
- 29469 4628 00000000 		.quad	.LBB1210
- 29469      00000000 
- 29470 4630 00000000 		.quad	.LBE1210
- 29470      00000000 
- 29471 4638 02       		.byte	0x2
- 29472 4639 D706     		.value	0x6d7
- 29473 463b 38480000 		.long	0x4838
- 29474 463f 32       		.uleb128 0x32
- 29475 4640 080F0000 		.long	0xf08
- 29476 4644 03       		.byte	0x3
- 29477 4645 91       		.byte	0x91
- 29478 4646 906E     		.sleb128 -2288
- 29479 4648 33       		.uleb128 0x33
- 29480 4649 00000000 		.quad	.LBB1211
- 29480      00000000 
- 29481 4651 00000000 		.quad	.LBE1211
- 29481      00000000 
- 29482 4659 34       		.uleb128 0x34
- 29483 465a 140F0000 		.long	0xf14
- 29484 465e 04       		.byte	0x4
- 29485 465f 76       		.byte	0x76
- 29486 4660 80AC7F   		.sleb128 -10752
- 29487 4663 31       		.uleb128 0x31
- 29488 4664 210F0000 		.long	0xf21
- 29489 4668 00000000 		.quad	.LBB1212
- 29489      00000000 
- 29490 4670 00000000 		.quad	.LBE1212
- 29490      00000000 
- 29491 4678 02       		.byte	0x2
- 29492 4679 1F06     		.value	0x61f
- 29493 467b 00470000 		.long	0x4700
- 29494 467f 32       		.uleb128 0x32
- 29495 4680 330F0000 		.long	0xf33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 804
-
-
- 29496 4684 03       		.byte	0x3
- 29497 4685 91       		.byte	0x91
- 29498 4686 A06E     		.sleb128 -2272
- 29499 4688 33       		.uleb128 0x33
- 29500 4689 00000000 		.quad	.LBB1213
- 29500      00000000 
- 29501 4691 00000000 		.quad	.LBE1213
- 29501      00000000 
- 29502 4699 34       		.uleb128 0x34
- 29503 469a 3F0F0000 		.long	0xf3f
- 29504 469e 09       		.byte	0x9
- 29505 469f 03       		.byte	0x3
- 29506 46a0 00000000 		.quad	mask.7943
- 29506      00000000 
- 29507 46a8 35       		.uleb128 0x35
- 29508 46a9 A00D0000 		.long	0xda0
- 29509 46ad 00000000 		.quad	.LBB1214
- 29509      00000000 
- 29510 46b5 00000000 		.quad	.LBE1214
- 29510      00000000 
- 29511 46bd 02       		.byte	0x2
- 29512 46be FE04     		.value	0x4fe
- 29513 46c0 32       		.uleb128 0x32
- 29514 46c1 BE0D0000 		.long	0xdbe
- 29515 46c5 03       		.byte	0x3
- 29516 46c6 91       		.byte	0x91
- 29517 46c7 B06E     		.sleb128 -2256
- 29518 46c9 32       		.uleb128 0x32
- 29519 46ca B20D0000 		.long	0xdb2
- 29520 46ce 03       		.byte	0x3
- 29521 46cf 91       		.byte	0x91
- 29522 46d0 C06E     		.sleb128 -2240
- 29523 46d2 35       		.uleb128 0x35
- 29524 46d3 CB0D0000 		.long	0xdcb
- 29525 46d7 00000000 		.quad	.LBB1216
- 29525      00000000 
- 29526 46df 00000000 		.quad	.LBE1216
- 29526      00000000 
- 29527 46e7 02       		.byte	0x2
- 29528 46e8 7501     		.value	0x175
- 29529 46ea 32       		.uleb128 0x32
- 29530 46eb E90D0000 		.long	0xde9
- 29531 46ef 03       		.byte	0x3
- 29532 46f0 91       		.byte	0x91
- 29533 46f1 D06E     		.sleb128 -2224
- 29534 46f3 32       		.uleb128 0x32
- 29535 46f4 DD0D0000 		.long	0xddd
- 29536 46f8 03       		.byte	0x3
- 29537 46f9 91       		.byte	0x91
- 29538 46fa E06E     		.sleb128 -2208
- 29539 46fc 00       		.byte	0x0
- 29540 46fd 00       		.byte	0x0
- 29541 46fe 00       		.byte	0x0
- 29542 46ff 00       		.byte	0x0
- 29543 4700 31       		.uleb128 0x31
- 29544 4701 210F0000 		.long	0xf21
- 29545 4705 00000000 		.quad	.LBB1218
-
GAS LISTING /tmp/ccjbMjHD.s 			page 805
-
-
- 29545      00000000 
- 29546 470d 00000000 		.quad	.LBE1218
- 29546      00000000 
- 29547 4715 02       		.byte	0x2
- 29548 4716 2006     		.value	0x620
- 29549 4718 9D470000 		.long	0x479d
- 29550 471c 32       		.uleb128 0x32
- 29551 471d 330F0000 		.long	0xf33
- 29552 4721 03       		.byte	0x3
- 29553 4722 91       		.byte	0x91
- 29554 4723 F06E     		.sleb128 -2192
- 29555 4725 33       		.uleb128 0x33
- 29556 4726 00000000 		.quad	.LBB1219
- 29556      00000000 
- 29557 472e 00000000 		.quad	.LBE1219
- 29557      00000000 
- 29558 4736 34       		.uleb128 0x34
- 29559 4737 3F0F0000 		.long	0xf3f
- 29560 473b 09       		.byte	0x9
- 29561 473c 03       		.byte	0x3
- 29562 473d 00000000 		.quad	mask.7943
- 29562      00000000 
- 29563 4745 35       		.uleb128 0x35
- 29564 4746 A00D0000 		.long	0xda0
- 29565 474a 00000000 		.quad	.LBB1220
- 29565      00000000 
- 29566 4752 00000000 		.quad	.LBE1220
- 29566      00000000 
- 29567 475a 02       		.byte	0x2
- 29568 475b FE04     		.value	0x4fe
- 29569 475d 32       		.uleb128 0x32
- 29570 475e BE0D0000 		.long	0xdbe
- 29571 4762 03       		.byte	0x3
- 29572 4763 91       		.byte	0x91
- 29573 4764 806F     		.sleb128 -2176
- 29574 4766 32       		.uleb128 0x32
- 29575 4767 B20D0000 		.long	0xdb2
- 29576 476b 03       		.byte	0x3
- 29577 476c 91       		.byte	0x91
- 29578 476d 906F     		.sleb128 -2160
- 29579 476f 35       		.uleb128 0x35
- 29580 4770 CB0D0000 		.long	0xdcb
- 29581 4774 00000000 		.quad	.LBB1222
- 29581      00000000 
- 29582 477c 00000000 		.quad	.LBE1222
- 29582      00000000 
- 29583 4784 02       		.byte	0x2
- 29584 4785 7501     		.value	0x175
- 29585 4787 32       		.uleb128 0x32
- 29586 4788 E90D0000 		.long	0xde9
- 29587 478c 03       		.byte	0x3
- 29588 478d 91       		.byte	0x91
- 29589 478e A06F     		.sleb128 -2144
- 29590 4790 32       		.uleb128 0x32
- 29591 4791 DD0D0000 		.long	0xddd
- 29592 4795 03       		.byte	0x3
- 29593 4796 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 806
-
-
- 29594 4797 B06F     		.sleb128 -2128
- 29595 4799 00       		.byte	0x0
- 29596 479a 00       		.byte	0x0
- 29597 479b 00       		.byte	0x0
- 29598 479c 00       		.byte	0x0
- 29599 479d 35       		.uleb128 0x35
- 29600 479e 210F0000 		.long	0xf21
- 29601 47a2 00000000 		.quad	.LBB1224
- 29601      00000000 
- 29602 47aa 00000000 		.quad	.LBE1224
- 29602      00000000 
- 29603 47b2 02       		.byte	0x2
- 29604 47b3 2106     		.value	0x621
- 29605 47b5 32       		.uleb128 0x32
- 29606 47b6 330F0000 		.long	0xf33
- 29607 47ba 03       		.byte	0x3
- 29608 47bb 91       		.byte	0x91
- 29609 47bc C06F     		.sleb128 -2112
- 29610 47be 33       		.uleb128 0x33
- 29611 47bf 00000000 		.quad	.LBB1225
- 29611      00000000 
- 29612 47c7 00000000 		.quad	.LBE1225
- 29612      00000000 
- 29613 47cf 34       		.uleb128 0x34
- 29614 47d0 3F0F0000 		.long	0xf3f
- 29615 47d4 09       		.byte	0x9
- 29616 47d5 03       		.byte	0x3
- 29617 47d6 00000000 		.quad	mask.7943
- 29617      00000000 
- 29618 47de 35       		.uleb128 0x35
- 29619 47df A00D0000 		.long	0xda0
- 29620 47e3 00000000 		.quad	.LBB1226
- 29620      00000000 
- 29621 47eb 00000000 		.quad	.LBE1226
- 29621      00000000 
- 29622 47f3 02       		.byte	0x2
- 29623 47f4 FE04     		.value	0x4fe
- 29624 47f6 32       		.uleb128 0x32
- 29625 47f7 BE0D0000 		.long	0xdbe
- 29626 47fb 03       		.byte	0x3
- 29627 47fc 91       		.byte	0x91
- 29628 47fd D06F     		.sleb128 -2096
- 29629 47ff 32       		.uleb128 0x32
- 29630 4800 B20D0000 		.long	0xdb2
- 29631 4804 03       		.byte	0x3
- 29632 4805 91       		.byte	0x91
- 29633 4806 E06F     		.sleb128 -2080
- 29634 4808 35       		.uleb128 0x35
- 29635 4809 CB0D0000 		.long	0xdcb
- 29636 480d 00000000 		.quad	.LBB1228
- 29636      00000000 
- 29637 4815 00000000 		.quad	.LBE1228
- 29637      00000000 
- 29638 481d 02       		.byte	0x2
- 29639 481e 7501     		.value	0x175
- 29640 4820 32       		.uleb128 0x32
- 29641 4821 E90D0000 		.long	0xde9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 807
-
-
- 29642 4825 03       		.byte	0x3
- 29643 4826 91       		.byte	0x91
- 29644 4827 F06F     		.sleb128 -2064
- 29645 4829 32       		.uleb128 0x32
- 29646 482a DD0D0000 		.long	0xddd
- 29647 482e 03       		.byte	0x3
- 29648 482f 91       		.byte	0x91
- 29649 4830 8070     		.sleb128 -2048
- 29650 4832 00       		.byte	0x0
- 29651 4833 00       		.byte	0x0
- 29652 4834 00       		.byte	0x0
- 29653 4835 00       		.byte	0x0
- 29654 4836 00       		.byte	0x0
- 29655 4837 00       		.byte	0x0
- 29656 4838 31       		.uleb128 0x31
- 29657 4839 D50B0000 		.long	0xbd5
- 29658 483d 00000000 		.quad	.LBB1230
- 29658      00000000 
- 29659 4845 00000000 		.quad	.LBE1230
- 29659      00000000 
- 29660 484d 02       		.byte	0x2
- 29661 484e D806     		.value	0x6d8
- 29662 4850 1B4D0000 		.long	0x4d1b
- 29663 4854 32       		.uleb128 0x32
- 29664 4855 F30B0000 		.long	0xbf3
- 29665 4859 03       		.byte	0x3
- 29666 485a 91       		.byte	0x91
- 29667 485b 9C70     		.sleb128 -2020
- 29668 485d 32       		.uleb128 0x32
- 29669 485e E70B0000 		.long	0xbe7
- 29670 4862 03       		.byte	0x3
- 29671 4863 91       		.byte	0x91
- 29672 4864 A070     		.sleb128 -2016
- 29673 4866 33       		.uleb128 0x33
- 29674 4867 00000000 		.quad	.LBB1231
- 29674      00000000 
- 29675 486f 00000000 		.quad	.LBE1231
- 29675      00000000 
- 29676 4877 34       		.uleb128 0x34
- 29677 4878 FF0B0000 		.long	0xbff
- 29678 487c 04       		.byte	0x4
- 29679 487d 76       		.byte	0x76
- 29680 487e A0AC7F   		.sleb128 -10720
- 29681 4881 34       		.uleb128 0x34
- 29682 4882 0B0C0000 		.long	0xc0b
- 29683 4886 04       		.byte	0x4
- 29684 4887 76       		.byte	0x76
- 29685 4888 90AC7F   		.sleb128 -10736
- 29686 488b 31       		.uleb128 0x31
- 29687 488c 540C0000 		.long	0xc54
- 29688 4890 00000000 		.quad	.LBB1232
- 29688      00000000 
- 29689 4898 00000000 		.quad	.LBE1232
- 29689      00000000 
- 29690 48a0 02       		.byte	0x2
- 29691 48a1 9106     		.value	0x691
- 29692 48a3 F7480000 		.long	0x48f7
-
GAS LISTING /tmp/ccjbMjHD.s 			page 808
-
-
- 29693 48a7 32       		.uleb128 0x32
- 29694 48a8 7E0C0000 		.long	0xc7e
- 29695 48ac 03       		.byte	0x3
- 29696 48ad 91       		.byte	0x91
- 29697 48ae B870     		.sleb128 -1992
- 29698 48b0 32       		.uleb128 0x32
- 29699 48b1 720C0000 		.long	0xc72
- 29700 48b5 03       		.byte	0x3
- 29701 48b6 91       		.byte	0x91
- 29702 48b7 BC70     		.sleb128 -1988
- 29703 48b9 32       		.uleb128 0x32
- 29704 48ba 660C0000 		.long	0xc66
- 29705 48be 03       		.byte	0x3
- 29706 48bf 91       		.byte	0x91
- 29707 48c0 C070     		.sleb128 -1984
- 29708 48c2 35       		.uleb128 0x35
- 29709 48c3 8B0C0000 		.long	0xc8b
- 29710 48c7 00000000 		.quad	.LBB1234
- 29710      00000000 
- 29711 48cf 00000000 		.quad	.LBE1234
- 29711      00000000 
- 29712 48d7 02       		.byte	0x2
- 29713 48d8 0702     		.value	0x207
- 29714 48da 32       		.uleb128 0x32
- 29715 48db B40C0000 		.long	0xcb4
- 29716 48df 03       		.byte	0x3
- 29717 48e0 91       		.byte	0x91
- 29718 48e1 D870     		.sleb128 -1960
- 29719 48e3 32       		.uleb128 0x32
- 29720 48e4 A90C0000 		.long	0xca9
- 29721 48e8 03       		.byte	0x3
- 29722 48e9 91       		.byte	0x91
- 29723 48ea DC70     		.sleb128 -1956
- 29724 48ec 32       		.uleb128 0x32
- 29725 48ed 9D0C0000 		.long	0xc9d
- 29726 48f1 03       		.byte	0x3
- 29727 48f2 91       		.byte	0x91
- 29728 48f3 E070     		.sleb128 -1952
- 29729 48f5 00       		.byte	0x0
- 29730 48f6 00       		.byte	0x0
- 29731 48f7 31       		.uleb128 0x31
- 29732 48f8 C10C0000 		.long	0xcc1
- 29733 48fc 00000000 		.quad	.LBB1236
- 29733      00000000 
- 29734 4904 00000000 		.quad	.LBE1236
- 29734      00000000 
- 29735 490c 02       		.byte	0x2
- 29736 490d 9206     		.value	0x692
- 29737 490f 804B0000 		.long	0x4b80
- 29738 4913 32       		.uleb128 0x32
- 29739 4914 D30C0000 		.long	0xcd3
- 29740 4918 03       		.byte	0x3
- 29741 4919 91       		.byte	0x91
- 29742 491a F070     		.sleb128 -1936
- 29743 491c 35       		.uleb128 0x35
- 29744 491d E00C0000 		.long	0xce0
- 29745 4921 00000000 		.quad	.LBB1238
-
GAS LISTING /tmp/ccjbMjHD.s 			page 809
-
-
- 29745      00000000 
- 29746 4929 00000000 		.quad	.LBE1238
- 29746      00000000 
- 29747 4931 02       		.byte	0x2
- 29748 4932 7D03     		.value	0x37d
- 29749 4934 32       		.uleb128 0x32
- 29750 4935 FE0C0000 		.long	0xcfe
- 29751 4939 03       		.byte	0x3
- 29752 493a 91       		.byte	0x91
- 29753 493b 8871     		.sleb128 -1912
- 29754 493d 32       		.uleb128 0x32
- 29755 493e F20C0000 		.long	0xcf2
- 29756 4942 03       		.byte	0x3
- 29757 4943 91       		.byte	0x91
- 29758 4944 9071     		.sleb128 -1904
- 29759 4946 33       		.uleb128 0x33
- 29760 4947 00000000 		.quad	.LBB1239
- 29760      00000000 
- 29761 494f 00000000 		.quad	.LBE1239
- 29761      00000000 
- 29762 4957 34       		.uleb128 0x34
- 29763 4958 0A0D0000 		.long	0xd0a
- 29764 495c 03       		.byte	0x3
- 29765 495d 91       		.byte	0x91
- 29766 495e E071     		.sleb128 -1824
- 29767 4960 34       		.uleb128 0x34
- 29768 4961 150D0000 		.long	0xd15
- 29769 4965 03       		.byte	0x3
- 29770 4966 91       		.byte	0x91
- 29771 4967 D071     		.sleb128 -1840
- 29772 4969 34       		.uleb128 0x34
- 29773 496a 200D0000 		.long	0xd20
- 29774 496e 03       		.byte	0x3
- 29775 496f 91       		.byte	0x91
- 29776 4970 C071     		.sleb128 -1856
- 29777 4972 34       		.uleb128 0x34
- 29778 4973 2C0D0000 		.long	0xd2c
- 29779 4977 03       		.byte	0x3
- 29780 4978 91       		.byte	0x91
- 29781 4979 B071     		.sleb128 -1872
- 29782 497b 34       		.uleb128 0x34
- 29783 497c 380D0000 		.long	0xd38
- 29784 4980 03       		.byte	0x3
- 29785 4981 91       		.byte	0x91
- 29786 4982 AC71     		.sleb128 -1876
- 29787 4984 31       		.uleb128 0x31
- 29788 4985 4F0D0000 		.long	0xd4f
- 29789 4989 00000000 		.quad	.LBB1240
- 29789      00000000 
- 29790 4991 00000000 		.quad	.LBE1240
- 29790      00000000 
- 29791 4999 02       		.byte	0x2
- 29792 499a 5603     		.value	0x356
- 29793 499c B3490000 		.long	0x49b3
- 29794 49a0 32       		.uleb128 0x32
- 29795 49a1 6A0D0000 		.long	0xd6a
- 29796 49a5 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 810
-
-
- 29797 49a6 91       		.byte	0x91
- 29798 49a7 F071     		.sleb128 -1808
- 29799 49a9 32       		.uleb128 0x32
- 29800 49aa 600D0000 		.long	0xd60
- 29801 49ae 03       		.byte	0x3
- 29802 49af 91       		.byte	0x91
- 29803 49b0 8072     		.sleb128 -1792
- 29804 49b2 00       		.byte	0x0
- 29805 49b3 31       		.uleb128 0x31
- 29806 49b4 750D0000 		.long	0xd75
- 29807 49b8 00000000 		.quad	.LBB1242
- 29807      00000000 
- 29808 49c0 00000000 		.quad	.LBE1242
- 29808      00000000 
- 29809 49c8 02       		.byte	0x2
- 29810 49c9 5903     		.value	0x359
- 29811 49cb E2490000 		.long	0x49e2
- 29812 49cf 32       		.uleb128 0x32
- 29813 49d0 930D0000 		.long	0xd93
- 29814 49d4 03       		.byte	0x3
- 29815 49d5 91       		.byte	0x91
- 29816 49d6 9C72     		.sleb128 -1764
- 29817 49d8 32       		.uleb128 0x32
- 29818 49d9 870D0000 		.long	0xd87
- 29819 49dd 03       		.byte	0x3
- 29820 49de 91       		.byte	0x91
- 29821 49df A072     		.sleb128 -1760
- 29822 49e1 00       		.byte	0x0
- 29823 49e2 31       		.uleb128 0x31
- 29824 49e3 4F0D0000 		.long	0xd4f
- 29825 49e7 00000000 		.quad	.LBB1244
- 29825      00000000 
- 29826 49ef 00000000 		.quad	.LBE1244
- 29826      00000000 
- 29827 49f7 02       		.byte	0x2
- 29828 49f8 5B03     		.value	0x35b
- 29829 49fa 114A0000 		.long	0x4a11
- 29830 49fe 32       		.uleb128 0x32
- 29831 49ff 6A0D0000 		.long	0xd6a
- 29832 4a03 03       		.byte	0x3
- 29833 4a04 91       		.byte	0x91
- 29834 4a05 B072     		.sleb128 -1744
- 29835 4a07 32       		.uleb128 0x32
- 29836 4a08 600D0000 		.long	0xd60
- 29837 4a0c 03       		.byte	0x3
- 29838 4a0d 91       		.byte	0x91
- 29839 4a0e C072     		.sleb128 -1728
- 29840 4a10 00       		.byte	0x0
- 29841 4a11 31       		.uleb128 0x31
- 29842 4a12 A00D0000 		.long	0xda0
- 29843 4a16 00000000 		.quad	.LBB1246
- 29843      00000000 
- 29844 4a1e 00000000 		.quad	.LBE1246
- 29844      00000000 
- 29845 4a26 02       		.byte	0x2
- 29846 4a27 6403     		.value	0x364
- 29847 4a29 6B4A0000 		.long	0x4a6b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 811
-
-
- 29848 4a2d 32       		.uleb128 0x32
- 29849 4a2e BE0D0000 		.long	0xdbe
- 29850 4a32 03       		.byte	0x3
- 29851 4a33 91       		.byte	0x91
- 29852 4a34 D072     		.sleb128 -1712
- 29853 4a36 32       		.uleb128 0x32
- 29854 4a37 B20D0000 		.long	0xdb2
- 29855 4a3b 03       		.byte	0x3
- 29856 4a3c 91       		.byte	0x91
- 29857 4a3d E072     		.sleb128 -1696
- 29858 4a3f 35       		.uleb128 0x35
- 29859 4a40 CB0D0000 		.long	0xdcb
- 29860 4a44 00000000 		.quad	.LBB1248
- 29860      00000000 
- 29861 4a4c 00000000 		.quad	.LBE1248
- 29861      00000000 
- 29862 4a54 02       		.byte	0x2
- 29863 4a55 7501     		.value	0x175
- 29864 4a57 32       		.uleb128 0x32
- 29865 4a58 E90D0000 		.long	0xde9
- 29866 4a5c 03       		.byte	0x3
- 29867 4a5d 91       		.byte	0x91
- 29868 4a5e F072     		.sleb128 -1680
- 29869 4a60 32       		.uleb128 0x32
- 29870 4a61 DD0D0000 		.long	0xddd
- 29871 4a65 03       		.byte	0x3
- 29872 4a66 91       		.byte	0x91
- 29873 4a67 8073     		.sleb128 -1664
- 29874 4a69 00       		.byte	0x0
- 29875 4a6a 00       		.byte	0x0
- 29876 4a6b 31       		.uleb128 0x31
- 29877 4a6c FB0D0000 		.long	0xdfb
- 29878 4a70 00000000 		.quad	.LBB1250
- 29878      00000000 
- 29879 4a78 00000000 		.quad	.LBE1250
- 29879      00000000 
- 29880 4a80 02       		.byte	0x2
- 29881 4a81 6603     		.value	0x366
- 29882 4a83 9A4A0000 		.long	0x4a9a
- 29883 4a87 32       		.uleb128 0x32
- 29884 4a88 160E0000 		.long	0xe16
- 29885 4a8c 03       		.byte	0x3
- 29886 4a8d 91       		.byte	0x91
- 29887 4a8e 9073     		.sleb128 -1648
- 29888 4a90 32       		.uleb128 0x32
- 29889 4a91 0C0E0000 		.long	0xe0c
- 29890 4a95 03       		.byte	0x3
- 29891 4a96 91       		.byte	0x91
- 29892 4a97 A073     		.sleb128 -1632
- 29893 4a99 00       		.byte	0x0
- 29894 4a9a 31       		.uleb128 0x31
- 29895 4a9b A00D0000 		.long	0xda0
- 29896 4a9f 00000000 		.quad	.LBB1252
- 29896      00000000 
- 29897 4aa7 00000000 		.quad	.LBE1252
- 29897      00000000 
- 29898 4aaf 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 812
-
-
- 29899 4ab0 6803     		.value	0x368
- 29900 4ab2 F44A0000 		.long	0x4af4
- 29901 4ab6 32       		.uleb128 0x32
- 29902 4ab7 BE0D0000 		.long	0xdbe
- 29903 4abb 03       		.byte	0x3
- 29904 4abc 91       		.byte	0x91
- 29905 4abd B073     		.sleb128 -1616
- 29906 4abf 32       		.uleb128 0x32
- 29907 4ac0 B20D0000 		.long	0xdb2
- 29908 4ac4 03       		.byte	0x3
- 29909 4ac5 91       		.byte	0x91
- 29910 4ac6 C073     		.sleb128 -1600
- 29911 4ac8 35       		.uleb128 0x35
- 29912 4ac9 CB0D0000 		.long	0xdcb
- 29913 4acd 00000000 		.quad	.LBB1254
- 29913      00000000 
- 29914 4ad5 00000000 		.quad	.LBE1254
- 29914      00000000 
- 29915 4add 02       		.byte	0x2
- 29916 4ade 7501     		.value	0x175
- 29917 4ae0 32       		.uleb128 0x32
- 29918 4ae1 E90D0000 		.long	0xde9
- 29919 4ae5 03       		.byte	0x3
- 29920 4ae6 91       		.byte	0x91
- 29921 4ae7 D073     		.sleb128 -1584
- 29922 4ae9 32       		.uleb128 0x32
- 29923 4aea DD0D0000 		.long	0xddd
- 29924 4aee 03       		.byte	0x3
- 29925 4aef 91       		.byte	0x91
- 29926 4af0 E073     		.sleb128 -1568
- 29927 4af2 00       		.byte	0x0
- 29928 4af3 00       		.byte	0x0
- 29929 4af4 31       		.uleb128 0x31
- 29930 4af5 FB0D0000 		.long	0xdfb
- 29931 4af9 00000000 		.quad	.LBB1256
- 29931      00000000 
- 29932 4b01 00000000 		.quad	.LBE1256
- 29932      00000000 
- 29933 4b09 02       		.byte	0x2
- 29934 4b0a 6A03     		.value	0x36a
- 29935 4b0c 234B0000 		.long	0x4b23
- 29936 4b10 32       		.uleb128 0x32
- 29937 4b11 160E0000 		.long	0xe16
- 29938 4b15 03       		.byte	0x3
- 29939 4b16 91       		.byte	0x91
- 29940 4b17 F073     		.sleb128 -1552
- 29941 4b19 32       		.uleb128 0x32
- 29942 4b1a 0C0E0000 		.long	0xe0c
- 29943 4b1e 03       		.byte	0x3
- 29944 4b1f 91       		.byte	0x91
- 29945 4b20 8074     		.sleb128 -1536
- 29946 4b22 00       		.byte	0x0
- 29947 4b23 31       		.uleb128 0x31
- 29948 4b24 210E0000 		.long	0xe21
- 29949 4b28 00000000 		.quad	.LBB1258
- 29949      00000000 
- 29950 4b30 00000000 		.quad	.LBE1258
-
GAS LISTING /tmp/ccjbMjHD.s 			page 813
-
-
- 29950      00000000 
- 29951 4b38 02       		.byte	0x2
- 29952 4b39 6C03     		.value	0x36c
- 29953 4b3b 524B0000 		.long	0x4b52
- 29954 4b3f 32       		.uleb128 0x32
- 29955 4b40 3E0E0000 		.long	0xe3e
- 29956 4b44 03       		.byte	0x3
- 29957 4b45 91       		.byte	0x91
- 29958 4b46 9074     		.sleb128 -1520
- 29959 4b48 32       		.uleb128 0x32
- 29960 4b49 330E0000 		.long	0xe33
- 29961 4b4d 03       		.byte	0x3
- 29962 4b4e 91       		.byte	0x91
- 29963 4b4f A074     		.sleb128 -1504
- 29964 4b51 00       		.byte	0x0
- 29965 4b52 35       		.uleb128 0x35
- 29966 4b53 4F0D0000 		.long	0xd4f
- 29967 4b57 00000000 		.quad	.LBB1260
- 29967      00000000 
- 29968 4b5f 00000000 		.quad	.LBE1260
- 29968      00000000 
- 29969 4b67 02       		.byte	0x2
- 29970 4b68 6E03     		.value	0x36e
- 29971 4b6a 32       		.uleb128 0x32
- 29972 4b6b 6A0D0000 		.long	0xd6a
- 29973 4b6f 03       		.byte	0x3
- 29974 4b70 91       		.byte	0x91
- 29975 4b71 B074     		.sleb128 -1488
- 29976 4b73 32       		.uleb128 0x32
- 29977 4b74 600D0000 		.long	0xd60
- 29978 4b78 03       		.byte	0x3
- 29979 4b79 91       		.byte	0x91
- 29980 4b7a C074     		.sleb128 -1472
- 29981 4b7c 00       		.byte	0x0
- 29982 4b7d 00       		.byte	0x0
- 29983 4b7e 00       		.byte	0x0
- 29984 4b7f 00       		.byte	0x0
- 29985 4b80 36       		.uleb128 0x36
- 29986 4b81 00000000 		.quad	.LBB1262
- 29986      00000000 
- 29987 4b89 00000000 		.quad	.LBE1262
- 29987      00000000 
- 29988 4b91 A04B0000 		.long	0x4ba0
- 29989 4b95 34       		.uleb128 0x34
- 29990 4b96 1C0C0000 		.long	0xc1c
- 29991 4b9a 04       		.byte	0x4
- 29992 4b9b 91       		.byte	0x91
- 29993 4b9c A0B17F   		.sleb128 -10080
- 29994 4b9f 00       		.byte	0x0
- 29995 4ba0 31       		.uleb128 0x31
- 29996 4ba1 4A0E0000 		.long	0xe4a
- 29997 4ba5 00000000 		.quad	.LBB1263
- 29997      00000000 
- 29998 4bad 00000000 		.quad	.LBE1263
- 29998      00000000 
- 29999 4bb5 02       		.byte	0x2
- 30000 4bb6 9406     		.value	0x694
-
GAS LISTING /tmp/ccjbMjHD.s 			page 814
-
-
- 30001 4bb8 3D4C0000 		.long	0x4c3d
- 30002 4bbc 32       		.uleb128 0x32
- 30003 4bbd 5C0E0000 		.long	0xe5c
- 30004 4bc1 03       		.byte	0x3
- 30005 4bc2 91       		.byte	0x91
- 30006 4bc3 D074     		.sleb128 -1456
- 30007 4bc5 33       		.uleb128 0x33
- 30008 4bc6 00000000 		.quad	.LBB1264
- 30008      00000000 
- 30009 4bce 00000000 		.quad	.LBE1264
- 30009      00000000 
- 30010 4bd6 34       		.uleb128 0x34
- 30011 4bd7 680E0000 		.long	0xe68
- 30012 4bdb 09       		.byte	0x9
- 30013 4bdc 03       		.byte	0x3
- 30014 4bdd 00000000 		.quad	ShiftRowTable.7385
- 30014      00000000 
- 30015 4be5 35       		.uleb128 0x35
- 30016 4be6 A00D0000 		.long	0xda0
- 30017 4bea 00000000 		.quad	.LBB1265
- 30017      00000000 
- 30018 4bf2 00000000 		.quad	.LBE1265
- 30018      00000000 
- 30019 4bfa 02       		.byte	0x2
- 30020 4bfb 9B02     		.value	0x29b
- 30021 4bfd 32       		.uleb128 0x32
- 30022 4bfe BE0D0000 		.long	0xdbe
- 30023 4c02 03       		.byte	0x3
- 30024 4c03 91       		.byte	0x91
- 30025 4c04 E074     		.sleb128 -1440
- 30026 4c06 32       		.uleb128 0x32
- 30027 4c07 B20D0000 		.long	0xdb2
- 30028 4c0b 03       		.byte	0x3
- 30029 4c0c 91       		.byte	0x91
- 30030 4c0d F074     		.sleb128 -1424
- 30031 4c0f 35       		.uleb128 0x35
- 30032 4c10 CB0D0000 		.long	0xdcb
- 30033 4c14 00000000 		.quad	.LBB1267
- 30033      00000000 
- 30034 4c1c 00000000 		.quad	.LBE1267
- 30034      00000000 
- 30035 4c24 02       		.byte	0x2
- 30036 4c25 7501     		.value	0x175
- 30037 4c27 32       		.uleb128 0x32
- 30038 4c28 E90D0000 		.long	0xde9
- 30039 4c2c 03       		.byte	0x3
- 30040 4c2d 91       		.byte	0x91
- 30041 4c2e 8075     		.sleb128 -1408
- 30042 4c30 32       		.uleb128 0x32
- 30043 4c31 DD0D0000 		.long	0xddd
- 30044 4c35 03       		.byte	0x3
- 30045 4c36 91       		.byte	0x91
- 30046 4c37 9075     		.sleb128 -1392
- 30047 4c39 00       		.byte	0x0
- 30048 4c3a 00       		.byte	0x0
- 30049 4c3b 00       		.byte	0x0
- 30050 4c3c 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 815
-
-
- 30051 4c3d 36       		.uleb128 0x36
- 30052 4c3e 00000000 		.quad	.LBB1269
- 30052      00000000 
- 30053 4c46 00000000 		.quad	.LBE1269
- 30053      00000000 
- 30054 4c4e 5D4C0000 		.long	0x4c5d
- 30055 4c52 34       		.uleb128 0x34
- 30056 4c53 2C0C0000 		.long	0xc2c
- 30057 4c57 04       		.byte	0x4
- 30058 4c58 91       		.byte	0x91
- 30059 4c59 90B17F   		.sleb128 -10096
- 30060 4c5c 00       		.byte	0x0
- 30061 4c5d 31       		.uleb128 0x31
- 30062 4c5e 860E0000 		.long	0xe86
- 30063 4c62 00000000 		.quad	.LBB1270
- 30063      00000000 
- 30064 4c6a 00000000 		.quad	.LBE1270
- 30064      00000000 
- 30065 4c72 02       		.byte	0x2
- 30066 4c73 9606     		.value	0x696
- 30067 4c75 8C4C0000 		.long	0x4c8c
- 30068 4c79 32       		.uleb128 0x32
- 30069 4c7a A10E0000 		.long	0xea1
- 30070 4c7e 03       		.byte	0x3
- 30071 4c7f 91       		.byte	0x91
- 30072 4c80 A075     		.sleb128 -1376
- 30073 4c82 32       		.uleb128 0x32
- 30074 4c83 970E0000 		.long	0xe97
- 30075 4c87 03       		.byte	0x3
- 30076 4c88 91       		.byte	0x91
- 30077 4c89 B075     		.sleb128 -1360
- 30078 4c8b 00       		.byte	0x0
- 30079 4c8c 36       		.uleb128 0x36
- 30080 4c8d 00000000 		.quad	.LBB1272
- 30080      00000000 
- 30081 4c95 00000000 		.quad	.LBE1272
- 30081      00000000 
- 30082 4c9d AC4C0000 		.long	0x4cac
- 30083 4ca1 34       		.uleb128 0x34
- 30084 4ca2 3C0C0000 		.long	0xc3c
- 30085 4ca6 04       		.byte	0x4
- 30086 4ca7 91       		.byte	0x91
- 30087 4ca8 80B17F   		.sleb128 -10112
- 30088 4cab 00       		.byte	0x0
- 30089 4cac 31       		.uleb128 0x31
- 30090 4cad AC0E0000 		.long	0xeac
- 30091 4cb1 00000000 		.quad	.LBB1273
- 30091      00000000 
- 30092 4cb9 00000000 		.quad	.LBE1273
- 30092      00000000 
- 30093 4cc1 02       		.byte	0x2
- 30094 4cc2 9806     		.value	0x698
- 30095 4cc4 FD4C0000 		.long	0x4cfd
- 30096 4cc8 32       		.uleb128 0x32
- 30097 4cc9 BE0E0000 		.long	0xebe
- 30098 4ccd 03       		.byte	0x3
- 30099 4cce 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 816
-
-
- 30100 4ccf C075     		.sleb128 -1344
- 30101 4cd1 35       		.uleb128 0x35
- 30102 4cd2 CB0E0000 		.long	0xecb
- 30103 4cd6 00000000 		.quad	.LBB1275
- 30103      00000000 
- 30104 4cde 00000000 		.quad	.LBE1275
- 30104      00000000 
- 30105 4ce6 02       		.byte	0x2
- 30106 4ce7 4905     		.value	0x549
- 30107 4ce9 32       		.uleb128 0x32
- 30108 4cea E90E0000 		.long	0xee9
- 30109 4cee 03       		.byte	0x3
- 30110 4cef 91       		.byte	0x91
- 30111 4cf0 DC75     		.sleb128 -1316
- 30112 4cf2 32       		.uleb128 0x32
- 30113 4cf3 DD0E0000 		.long	0xedd
- 30114 4cf7 03       		.byte	0x3
- 30115 4cf8 91       		.byte	0x91
- 30116 4cf9 E075     		.sleb128 -1312
- 30117 4cfb 00       		.byte	0x0
- 30118 4cfc 00       		.byte	0x0
- 30119 4cfd 33       		.uleb128 0x33
- 30120 4cfe 00000000 		.quad	.LBB1277
- 30120      00000000 
- 30121 4d06 00000000 		.quad	.LBE1277
- 30121      00000000 
- 30122 4d0e 34       		.uleb128 0x34
- 30123 4d0f 480C0000 		.long	0xc48
- 30124 4d13 04       		.byte	0x4
- 30125 4d14 91       		.byte	0x91
- 30126 4d15 F0B07F   		.sleb128 -10128
- 30127 4d18 00       		.byte	0x0
- 30128 4d19 00       		.byte	0x0
- 30129 4d1a 00       		.byte	0x0
- 30130 4d1b 31       		.uleb128 0x31
- 30131 4d1c F60E0000 		.long	0xef6
- 30132 4d20 00000000 		.quad	.LBB1278
- 30132      00000000 
- 30133 4d28 00000000 		.quad	.LBE1278
- 30133      00000000 
- 30134 4d30 02       		.byte	0x2
- 30135 4d31 D806     		.value	0x6d8
- 30136 4d33 304F0000 		.long	0x4f30
- 30137 4d37 32       		.uleb128 0x32
- 30138 4d38 080F0000 		.long	0xf08
- 30139 4d3c 03       		.byte	0x3
- 30140 4d3d 91       		.byte	0x91
- 30141 4d3e F075     		.sleb128 -1296
- 30142 4d40 33       		.uleb128 0x33
- 30143 4d41 00000000 		.quad	.LBB1279
- 30143      00000000 
- 30144 4d49 00000000 		.quad	.LBE1279
- 30144      00000000 
- 30145 4d51 34       		.uleb128 0x34
- 30146 4d52 140F0000 		.long	0xf14
- 30147 4d56 04       		.byte	0x4
- 30148 4d57 76       		.byte	0x76
-
GAS LISTING /tmp/ccjbMjHD.s 			page 817
-
-
- 30149 4d58 B0AC7F   		.sleb128 -10704
- 30150 4d5b 31       		.uleb128 0x31
- 30151 4d5c 210F0000 		.long	0xf21
- 30152 4d60 00000000 		.quad	.LBB1280
- 30152      00000000 
- 30153 4d68 00000000 		.quad	.LBE1280
- 30153      00000000 
- 30154 4d70 02       		.byte	0x2
- 30155 4d71 1F06     		.value	0x61f
- 30156 4d73 F84D0000 		.long	0x4df8
- 30157 4d77 32       		.uleb128 0x32
- 30158 4d78 330F0000 		.long	0xf33
- 30159 4d7c 03       		.byte	0x3
- 30160 4d7d 91       		.byte	0x91
- 30161 4d7e 8076     		.sleb128 -1280
- 30162 4d80 33       		.uleb128 0x33
- 30163 4d81 00000000 		.quad	.LBB1281
- 30163      00000000 
- 30164 4d89 00000000 		.quad	.LBE1281
- 30164      00000000 
- 30165 4d91 34       		.uleb128 0x34
- 30166 4d92 3F0F0000 		.long	0xf3f
- 30167 4d96 09       		.byte	0x9
- 30168 4d97 03       		.byte	0x3
- 30169 4d98 00000000 		.quad	mask.7943
- 30169      00000000 
- 30170 4da0 35       		.uleb128 0x35
- 30171 4da1 A00D0000 		.long	0xda0
- 30172 4da5 00000000 		.quad	.LBB1282
- 30172      00000000 
- 30173 4dad 00000000 		.quad	.LBE1282
- 30173      00000000 
- 30174 4db5 02       		.byte	0x2
- 30175 4db6 FE04     		.value	0x4fe
- 30176 4db8 32       		.uleb128 0x32
- 30177 4db9 BE0D0000 		.long	0xdbe
- 30178 4dbd 03       		.byte	0x3
- 30179 4dbe 91       		.byte	0x91
- 30180 4dbf 9076     		.sleb128 -1264
- 30181 4dc1 32       		.uleb128 0x32
- 30182 4dc2 B20D0000 		.long	0xdb2
- 30183 4dc6 03       		.byte	0x3
- 30184 4dc7 91       		.byte	0x91
- 30185 4dc8 A076     		.sleb128 -1248
- 30186 4dca 35       		.uleb128 0x35
- 30187 4dcb CB0D0000 		.long	0xdcb
- 30188 4dcf 00000000 		.quad	.LBB1284
- 30188      00000000 
- 30189 4dd7 00000000 		.quad	.LBE1284
- 30189      00000000 
- 30190 4ddf 02       		.byte	0x2
- 30191 4de0 7501     		.value	0x175
- 30192 4de2 32       		.uleb128 0x32
- 30193 4de3 E90D0000 		.long	0xde9
- 30194 4de7 03       		.byte	0x3
- 30195 4de8 91       		.byte	0x91
- 30196 4de9 B076     		.sleb128 -1232
-
GAS LISTING /tmp/ccjbMjHD.s 			page 818
-
-
- 30197 4deb 32       		.uleb128 0x32
- 30198 4dec DD0D0000 		.long	0xddd
- 30199 4df0 03       		.byte	0x3
- 30200 4df1 91       		.byte	0x91
- 30201 4df2 C076     		.sleb128 -1216
- 30202 4df4 00       		.byte	0x0
- 30203 4df5 00       		.byte	0x0
- 30204 4df6 00       		.byte	0x0
- 30205 4df7 00       		.byte	0x0
- 30206 4df8 31       		.uleb128 0x31
- 30207 4df9 210F0000 		.long	0xf21
- 30208 4dfd 00000000 		.quad	.LBB1286
- 30208      00000000 
- 30209 4e05 00000000 		.quad	.LBE1286
- 30209      00000000 
- 30210 4e0d 02       		.byte	0x2
- 30211 4e0e 2006     		.value	0x620
- 30212 4e10 954E0000 		.long	0x4e95
- 30213 4e14 32       		.uleb128 0x32
- 30214 4e15 330F0000 		.long	0xf33
- 30215 4e19 03       		.byte	0x3
- 30216 4e1a 91       		.byte	0x91
- 30217 4e1b D076     		.sleb128 -1200
- 30218 4e1d 33       		.uleb128 0x33
- 30219 4e1e 00000000 		.quad	.LBB1287
- 30219      00000000 
- 30220 4e26 00000000 		.quad	.LBE1287
- 30220      00000000 
- 30221 4e2e 34       		.uleb128 0x34
- 30222 4e2f 3F0F0000 		.long	0xf3f
- 30223 4e33 09       		.byte	0x9
- 30224 4e34 03       		.byte	0x3
- 30225 4e35 00000000 		.quad	mask.7943
- 30225      00000000 
- 30226 4e3d 35       		.uleb128 0x35
- 30227 4e3e A00D0000 		.long	0xda0
- 30228 4e42 00000000 		.quad	.LBB1288
- 30228      00000000 
- 30229 4e4a 00000000 		.quad	.LBE1288
- 30229      00000000 
- 30230 4e52 02       		.byte	0x2
- 30231 4e53 FE04     		.value	0x4fe
- 30232 4e55 32       		.uleb128 0x32
- 30233 4e56 BE0D0000 		.long	0xdbe
- 30234 4e5a 03       		.byte	0x3
- 30235 4e5b 91       		.byte	0x91
- 30236 4e5c E076     		.sleb128 -1184
- 30237 4e5e 32       		.uleb128 0x32
- 30238 4e5f B20D0000 		.long	0xdb2
- 30239 4e63 03       		.byte	0x3
- 30240 4e64 91       		.byte	0x91
- 30241 4e65 F076     		.sleb128 -1168
- 30242 4e67 35       		.uleb128 0x35
- 30243 4e68 CB0D0000 		.long	0xdcb
- 30244 4e6c 00000000 		.quad	.LBB1290
- 30244      00000000 
- 30245 4e74 00000000 		.quad	.LBE1290
-
GAS LISTING /tmp/ccjbMjHD.s 			page 819
-
-
- 30245      00000000 
- 30246 4e7c 02       		.byte	0x2
- 30247 4e7d 7501     		.value	0x175
- 30248 4e7f 32       		.uleb128 0x32
- 30249 4e80 E90D0000 		.long	0xde9
- 30250 4e84 03       		.byte	0x3
- 30251 4e85 91       		.byte	0x91
- 30252 4e86 8077     		.sleb128 -1152
- 30253 4e88 32       		.uleb128 0x32
- 30254 4e89 DD0D0000 		.long	0xddd
- 30255 4e8d 03       		.byte	0x3
- 30256 4e8e 91       		.byte	0x91
- 30257 4e8f 9077     		.sleb128 -1136
- 30258 4e91 00       		.byte	0x0
- 30259 4e92 00       		.byte	0x0
- 30260 4e93 00       		.byte	0x0
- 30261 4e94 00       		.byte	0x0
- 30262 4e95 35       		.uleb128 0x35
- 30263 4e96 210F0000 		.long	0xf21
- 30264 4e9a 00000000 		.quad	.LBB1292
- 30264      00000000 
- 30265 4ea2 00000000 		.quad	.LBE1292
- 30265      00000000 
- 30266 4eaa 02       		.byte	0x2
- 30267 4eab 2106     		.value	0x621
- 30268 4ead 32       		.uleb128 0x32
- 30269 4eae 330F0000 		.long	0xf33
- 30270 4eb2 03       		.byte	0x3
- 30271 4eb3 91       		.byte	0x91
- 30272 4eb4 A077     		.sleb128 -1120
- 30273 4eb6 33       		.uleb128 0x33
- 30274 4eb7 00000000 		.quad	.LBB1293
- 30274      00000000 
- 30275 4ebf 00000000 		.quad	.LBE1293
- 30275      00000000 
- 30276 4ec7 34       		.uleb128 0x34
- 30277 4ec8 3F0F0000 		.long	0xf3f
- 30278 4ecc 09       		.byte	0x9
- 30279 4ecd 03       		.byte	0x3
- 30280 4ece 00000000 		.quad	mask.7943
- 30280      00000000 
- 30281 4ed6 35       		.uleb128 0x35
- 30282 4ed7 A00D0000 		.long	0xda0
- 30283 4edb 00000000 		.quad	.LBB1294
- 30283      00000000 
- 30284 4ee3 00000000 		.quad	.LBE1294
- 30284      00000000 
- 30285 4eeb 02       		.byte	0x2
- 30286 4eec FE04     		.value	0x4fe
- 30287 4eee 32       		.uleb128 0x32
- 30288 4eef BE0D0000 		.long	0xdbe
- 30289 4ef3 03       		.byte	0x3
- 30290 4ef4 91       		.byte	0x91
- 30291 4ef5 B077     		.sleb128 -1104
- 30292 4ef7 32       		.uleb128 0x32
- 30293 4ef8 B20D0000 		.long	0xdb2
- 30294 4efc 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 820
-
-
- 30295 4efd 91       		.byte	0x91
- 30296 4efe C077     		.sleb128 -1088
- 30297 4f00 35       		.uleb128 0x35
- 30298 4f01 CB0D0000 		.long	0xdcb
- 30299 4f05 00000000 		.quad	.LBB1296
- 30299      00000000 
- 30300 4f0d 00000000 		.quad	.LBE1296
- 30300      00000000 
- 30301 4f15 02       		.byte	0x2
- 30302 4f16 7501     		.value	0x175
- 30303 4f18 32       		.uleb128 0x32
- 30304 4f19 E90D0000 		.long	0xde9
- 30305 4f1d 03       		.byte	0x3
- 30306 4f1e 91       		.byte	0x91
- 30307 4f1f D077     		.sleb128 -1072
- 30308 4f21 32       		.uleb128 0x32
- 30309 4f22 DD0D0000 		.long	0xddd
- 30310 4f26 03       		.byte	0x3
- 30311 4f27 91       		.byte	0x91
- 30312 4f28 E077     		.sleb128 -1056
- 30313 4f2a 00       		.byte	0x0
- 30314 4f2b 00       		.byte	0x0
- 30315 4f2c 00       		.byte	0x0
- 30316 4f2d 00       		.byte	0x0
- 30317 4f2e 00       		.byte	0x0
- 30318 4f2f 00       		.byte	0x0
- 30319 4f30 31       		.uleb128 0x31
- 30320 4f31 D50B0000 		.long	0xbd5
- 30321 4f35 00000000 		.quad	.LBB1298
- 30321      00000000 
- 30322 4f3d 00000000 		.quad	.LBE1298
- 30322      00000000 
- 30323 4f45 02       		.byte	0x2
- 30324 4f46 D906     		.value	0x6d9
- 30325 4f48 13540000 		.long	0x5413
- 30326 4f4c 32       		.uleb128 0x32
- 30327 4f4d F30B0000 		.long	0xbf3
- 30328 4f51 03       		.byte	0x3
- 30329 4f52 91       		.byte	0x91
- 30330 4f53 FC77     		.sleb128 -1028
- 30331 4f55 32       		.uleb128 0x32
- 30332 4f56 E70B0000 		.long	0xbe7
- 30333 4f5a 03       		.byte	0x3
- 30334 4f5b 91       		.byte	0x91
- 30335 4f5c 8078     		.sleb128 -1024
- 30336 4f5e 33       		.uleb128 0x33
- 30337 4f5f 00000000 		.quad	.LBB1299
- 30337      00000000 
- 30338 4f67 00000000 		.quad	.LBE1299
- 30338      00000000 
- 30339 4f6f 34       		.uleb128 0x34
- 30340 4f70 FF0B0000 		.long	0xbff
- 30341 4f74 04       		.byte	0x4
- 30342 4f75 76       		.byte	0x76
- 30343 4f76 D0AC7F   		.sleb128 -10672
- 30344 4f79 34       		.uleb128 0x34
- 30345 4f7a 0B0C0000 		.long	0xc0b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 821
-
-
- 30346 4f7e 04       		.byte	0x4
- 30347 4f7f 76       		.byte	0x76
- 30348 4f80 C0AC7F   		.sleb128 -10688
- 30349 4f83 31       		.uleb128 0x31
- 30350 4f84 540C0000 		.long	0xc54
- 30351 4f88 00000000 		.quad	.LBB1300
- 30351      00000000 
- 30352 4f90 00000000 		.quad	.LBE1300
- 30352      00000000 
- 30353 4f98 02       		.byte	0x2
- 30354 4f99 9106     		.value	0x691
- 30355 4f9b EF4F0000 		.long	0x4fef
- 30356 4f9f 32       		.uleb128 0x32
- 30357 4fa0 7E0C0000 		.long	0xc7e
- 30358 4fa4 03       		.byte	0x3
- 30359 4fa5 91       		.byte	0x91
- 30360 4fa6 9878     		.sleb128 -1000
- 30361 4fa8 32       		.uleb128 0x32
- 30362 4fa9 720C0000 		.long	0xc72
- 30363 4fad 03       		.byte	0x3
- 30364 4fae 91       		.byte	0x91
- 30365 4faf 9C78     		.sleb128 -996
- 30366 4fb1 32       		.uleb128 0x32
- 30367 4fb2 660C0000 		.long	0xc66
- 30368 4fb6 03       		.byte	0x3
- 30369 4fb7 91       		.byte	0x91
- 30370 4fb8 A078     		.sleb128 -992
- 30371 4fba 35       		.uleb128 0x35
- 30372 4fbb 8B0C0000 		.long	0xc8b
- 30373 4fbf 00000000 		.quad	.LBB1302
- 30373      00000000 
- 30374 4fc7 00000000 		.quad	.LBE1302
- 30374      00000000 
- 30375 4fcf 02       		.byte	0x2
- 30376 4fd0 0702     		.value	0x207
- 30377 4fd2 32       		.uleb128 0x32
- 30378 4fd3 B40C0000 		.long	0xcb4
- 30379 4fd7 03       		.byte	0x3
- 30380 4fd8 91       		.byte	0x91
- 30381 4fd9 B878     		.sleb128 -968
- 30382 4fdb 32       		.uleb128 0x32
- 30383 4fdc A90C0000 		.long	0xca9
- 30384 4fe0 03       		.byte	0x3
- 30385 4fe1 91       		.byte	0x91
- 30386 4fe2 BC78     		.sleb128 -964
- 30387 4fe4 32       		.uleb128 0x32
- 30388 4fe5 9D0C0000 		.long	0xc9d
- 30389 4fe9 03       		.byte	0x3
- 30390 4fea 91       		.byte	0x91
- 30391 4feb C078     		.sleb128 -960
- 30392 4fed 00       		.byte	0x0
- 30393 4fee 00       		.byte	0x0
- 30394 4fef 31       		.uleb128 0x31
- 30395 4ff0 C10C0000 		.long	0xcc1
- 30396 4ff4 00000000 		.quad	.LBB1304
- 30396      00000000 
- 30397 4ffc 00000000 		.quad	.LBE1304
-
GAS LISTING /tmp/ccjbMjHD.s 			page 822
-
-
- 30397      00000000 
- 30398 5004 02       		.byte	0x2
- 30399 5005 9206     		.value	0x692
- 30400 5007 78520000 		.long	0x5278
- 30401 500b 32       		.uleb128 0x32
- 30402 500c D30C0000 		.long	0xcd3
- 30403 5010 03       		.byte	0x3
- 30404 5011 91       		.byte	0x91
- 30405 5012 D078     		.sleb128 -944
- 30406 5014 35       		.uleb128 0x35
- 30407 5015 E00C0000 		.long	0xce0
- 30408 5019 00000000 		.quad	.LBB1306
- 30408      00000000 
- 30409 5021 00000000 		.quad	.LBE1306
- 30409      00000000 
- 30410 5029 02       		.byte	0x2
- 30411 502a 7D03     		.value	0x37d
- 30412 502c 32       		.uleb128 0x32
- 30413 502d FE0C0000 		.long	0xcfe
- 30414 5031 03       		.byte	0x3
- 30415 5032 91       		.byte	0x91
- 30416 5033 E878     		.sleb128 -920
- 30417 5035 32       		.uleb128 0x32
- 30418 5036 F20C0000 		.long	0xcf2
- 30419 503a 03       		.byte	0x3
- 30420 503b 91       		.byte	0x91
- 30421 503c F078     		.sleb128 -912
- 30422 503e 33       		.uleb128 0x33
- 30423 503f 00000000 		.quad	.LBB1307
- 30423      00000000 
- 30424 5047 00000000 		.quad	.LBE1307
- 30424      00000000 
- 30425 504f 34       		.uleb128 0x34
- 30426 5050 0A0D0000 		.long	0xd0a
- 30427 5054 03       		.byte	0x3
- 30428 5055 91       		.byte	0x91
- 30429 5056 C079     		.sleb128 -832
- 30430 5058 34       		.uleb128 0x34
- 30431 5059 150D0000 		.long	0xd15
- 30432 505d 03       		.byte	0x3
- 30433 505e 91       		.byte	0x91
- 30434 505f B079     		.sleb128 -848
- 30435 5061 34       		.uleb128 0x34
- 30436 5062 200D0000 		.long	0xd20
- 30437 5066 03       		.byte	0x3
- 30438 5067 91       		.byte	0x91
- 30439 5068 A079     		.sleb128 -864
- 30440 506a 34       		.uleb128 0x34
- 30441 506b 2C0D0000 		.long	0xd2c
- 30442 506f 03       		.byte	0x3
- 30443 5070 91       		.byte	0x91
- 30444 5071 9079     		.sleb128 -880
- 30445 5073 34       		.uleb128 0x34
- 30446 5074 380D0000 		.long	0xd38
- 30447 5078 03       		.byte	0x3
- 30448 5079 91       		.byte	0x91
- 30449 507a 8C79     		.sleb128 -884
-
GAS LISTING /tmp/ccjbMjHD.s 			page 823
-
-
- 30450 507c 31       		.uleb128 0x31
- 30451 507d 4F0D0000 		.long	0xd4f
- 30452 5081 00000000 		.quad	.LBB1308
- 30452      00000000 
- 30453 5089 00000000 		.quad	.LBE1308
- 30453      00000000 
- 30454 5091 02       		.byte	0x2
- 30455 5092 5603     		.value	0x356
- 30456 5094 AB500000 		.long	0x50ab
- 30457 5098 32       		.uleb128 0x32
- 30458 5099 6A0D0000 		.long	0xd6a
- 30459 509d 03       		.byte	0x3
- 30460 509e 91       		.byte	0x91
- 30461 509f D079     		.sleb128 -816
- 30462 50a1 32       		.uleb128 0x32
- 30463 50a2 600D0000 		.long	0xd60
- 30464 50a6 03       		.byte	0x3
- 30465 50a7 91       		.byte	0x91
- 30466 50a8 E079     		.sleb128 -800
- 30467 50aa 00       		.byte	0x0
- 30468 50ab 31       		.uleb128 0x31
- 30469 50ac 750D0000 		.long	0xd75
- 30470 50b0 00000000 		.quad	.LBB1310
- 30470      00000000 
- 30471 50b8 00000000 		.quad	.LBE1310
- 30471      00000000 
- 30472 50c0 02       		.byte	0x2
- 30473 50c1 5903     		.value	0x359
- 30474 50c3 DA500000 		.long	0x50da
- 30475 50c7 32       		.uleb128 0x32
- 30476 50c8 930D0000 		.long	0xd93
- 30477 50cc 03       		.byte	0x3
- 30478 50cd 91       		.byte	0x91
- 30479 50ce FC79     		.sleb128 -772
- 30480 50d0 32       		.uleb128 0x32
- 30481 50d1 870D0000 		.long	0xd87
- 30482 50d5 03       		.byte	0x3
- 30483 50d6 91       		.byte	0x91
- 30484 50d7 807A     		.sleb128 -768
- 30485 50d9 00       		.byte	0x0
- 30486 50da 31       		.uleb128 0x31
- 30487 50db 4F0D0000 		.long	0xd4f
- 30488 50df 00000000 		.quad	.LBB1312
- 30488      00000000 
- 30489 50e7 00000000 		.quad	.LBE1312
- 30489      00000000 
- 30490 50ef 02       		.byte	0x2
- 30491 50f0 5B03     		.value	0x35b
- 30492 50f2 09510000 		.long	0x5109
- 30493 50f6 32       		.uleb128 0x32
- 30494 50f7 6A0D0000 		.long	0xd6a
- 30495 50fb 03       		.byte	0x3
- 30496 50fc 91       		.byte	0x91
- 30497 50fd 907A     		.sleb128 -752
- 30498 50ff 32       		.uleb128 0x32
- 30499 5100 600D0000 		.long	0xd60
- 30500 5104 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 824
-
-
- 30501 5105 91       		.byte	0x91
- 30502 5106 A07A     		.sleb128 -736
- 30503 5108 00       		.byte	0x0
- 30504 5109 31       		.uleb128 0x31
- 30505 510a A00D0000 		.long	0xda0
- 30506 510e 00000000 		.quad	.LBB1314
- 30506      00000000 
- 30507 5116 00000000 		.quad	.LBE1314
- 30507      00000000 
- 30508 511e 02       		.byte	0x2
- 30509 511f 6403     		.value	0x364
- 30510 5121 63510000 		.long	0x5163
- 30511 5125 32       		.uleb128 0x32
- 30512 5126 BE0D0000 		.long	0xdbe
- 30513 512a 03       		.byte	0x3
- 30514 512b 91       		.byte	0x91
- 30515 512c B07A     		.sleb128 -720
- 30516 512e 32       		.uleb128 0x32
- 30517 512f B20D0000 		.long	0xdb2
- 30518 5133 03       		.byte	0x3
- 30519 5134 91       		.byte	0x91
- 30520 5135 C07A     		.sleb128 -704
- 30521 5137 35       		.uleb128 0x35
- 30522 5138 CB0D0000 		.long	0xdcb
- 30523 513c 00000000 		.quad	.LBB1316
- 30523      00000000 
- 30524 5144 00000000 		.quad	.LBE1316
- 30524      00000000 
- 30525 514c 02       		.byte	0x2
- 30526 514d 7501     		.value	0x175
- 30527 514f 32       		.uleb128 0x32
- 30528 5150 E90D0000 		.long	0xde9
- 30529 5154 03       		.byte	0x3
- 30530 5155 91       		.byte	0x91
- 30531 5156 D07A     		.sleb128 -688
- 30532 5158 32       		.uleb128 0x32
- 30533 5159 DD0D0000 		.long	0xddd
- 30534 515d 03       		.byte	0x3
- 30535 515e 91       		.byte	0x91
- 30536 515f E07A     		.sleb128 -672
- 30537 5161 00       		.byte	0x0
- 30538 5162 00       		.byte	0x0
- 30539 5163 31       		.uleb128 0x31
- 30540 5164 FB0D0000 		.long	0xdfb
- 30541 5168 00000000 		.quad	.LBB1318
- 30541      00000000 
- 30542 5170 00000000 		.quad	.LBE1318
- 30542      00000000 
- 30543 5178 02       		.byte	0x2
- 30544 5179 6603     		.value	0x366
- 30545 517b 92510000 		.long	0x5192
- 30546 517f 32       		.uleb128 0x32
- 30547 5180 160E0000 		.long	0xe16
- 30548 5184 03       		.byte	0x3
- 30549 5185 91       		.byte	0x91
- 30550 5186 F07A     		.sleb128 -656
- 30551 5188 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 825
-
-
- 30552 5189 0C0E0000 		.long	0xe0c
- 30553 518d 03       		.byte	0x3
- 30554 518e 91       		.byte	0x91
- 30555 518f 807B     		.sleb128 -640
- 30556 5191 00       		.byte	0x0
- 30557 5192 31       		.uleb128 0x31
- 30558 5193 A00D0000 		.long	0xda0
- 30559 5197 00000000 		.quad	.LBB1320
- 30559      00000000 
- 30560 519f 00000000 		.quad	.LBE1320
- 30560      00000000 
- 30561 51a7 02       		.byte	0x2
- 30562 51a8 6803     		.value	0x368
- 30563 51aa EC510000 		.long	0x51ec
- 30564 51ae 32       		.uleb128 0x32
- 30565 51af BE0D0000 		.long	0xdbe
- 30566 51b3 03       		.byte	0x3
- 30567 51b4 91       		.byte	0x91
- 30568 51b5 907B     		.sleb128 -624
- 30569 51b7 32       		.uleb128 0x32
- 30570 51b8 B20D0000 		.long	0xdb2
- 30571 51bc 03       		.byte	0x3
- 30572 51bd 91       		.byte	0x91
- 30573 51be A07B     		.sleb128 -608
- 30574 51c0 35       		.uleb128 0x35
- 30575 51c1 CB0D0000 		.long	0xdcb
- 30576 51c5 00000000 		.quad	.LBB1322
- 30576      00000000 
- 30577 51cd 00000000 		.quad	.LBE1322
- 30577      00000000 
- 30578 51d5 02       		.byte	0x2
- 30579 51d6 7501     		.value	0x175
- 30580 51d8 32       		.uleb128 0x32
- 30581 51d9 E90D0000 		.long	0xde9
- 30582 51dd 03       		.byte	0x3
- 30583 51de 91       		.byte	0x91
- 30584 51df B07B     		.sleb128 -592
- 30585 51e1 32       		.uleb128 0x32
- 30586 51e2 DD0D0000 		.long	0xddd
- 30587 51e6 03       		.byte	0x3
- 30588 51e7 91       		.byte	0x91
- 30589 51e8 C07B     		.sleb128 -576
- 30590 51ea 00       		.byte	0x0
- 30591 51eb 00       		.byte	0x0
- 30592 51ec 31       		.uleb128 0x31
- 30593 51ed FB0D0000 		.long	0xdfb
- 30594 51f1 00000000 		.quad	.LBB1324
- 30594      00000000 
- 30595 51f9 00000000 		.quad	.LBE1324
- 30595      00000000 
- 30596 5201 02       		.byte	0x2
- 30597 5202 6A03     		.value	0x36a
- 30598 5204 1B520000 		.long	0x521b
- 30599 5208 32       		.uleb128 0x32
- 30600 5209 160E0000 		.long	0xe16
- 30601 520d 03       		.byte	0x3
- 30602 520e 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 826
-
-
- 30603 520f D07B     		.sleb128 -560
- 30604 5211 32       		.uleb128 0x32
- 30605 5212 0C0E0000 		.long	0xe0c
- 30606 5216 03       		.byte	0x3
- 30607 5217 91       		.byte	0x91
- 30608 5218 E07B     		.sleb128 -544
- 30609 521a 00       		.byte	0x0
- 30610 521b 31       		.uleb128 0x31
- 30611 521c 210E0000 		.long	0xe21
- 30612 5220 00000000 		.quad	.LBB1326
- 30612      00000000 
- 30613 5228 00000000 		.quad	.LBE1326
- 30613      00000000 
- 30614 5230 02       		.byte	0x2
- 30615 5231 6C03     		.value	0x36c
- 30616 5233 4A520000 		.long	0x524a
- 30617 5237 32       		.uleb128 0x32
- 30618 5238 3E0E0000 		.long	0xe3e
- 30619 523c 03       		.byte	0x3
- 30620 523d 91       		.byte	0x91
- 30621 523e F07B     		.sleb128 -528
- 30622 5240 32       		.uleb128 0x32
- 30623 5241 330E0000 		.long	0xe33
- 30624 5245 03       		.byte	0x3
- 30625 5246 91       		.byte	0x91
- 30626 5247 807C     		.sleb128 -512
- 30627 5249 00       		.byte	0x0
- 30628 524a 35       		.uleb128 0x35
- 30629 524b 4F0D0000 		.long	0xd4f
- 30630 524f 00000000 		.quad	.LBB1328
- 30630      00000000 
- 30631 5257 00000000 		.quad	.LBE1328
- 30631      00000000 
- 30632 525f 02       		.byte	0x2
- 30633 5260 6E03     		.value	0x36e
- 30634 5262 32       		.uleb128 0x32
- 30635 5263 6A0D0000 		.long	0xd6a
- 30636 5267 03       		.byte	0x3
- 30637 5268 91       		.byte	0x91
- 30638 5269 907C     		.sleb128 -496
- 30639 526b 32       		.uleb128 0x32
- 30640 526c 600D0000 		.long	0xd60
- 30641 5270 03       		.byte	0x3
- 30642 5271 91       		.byte	0x91
- 30643 5272 A07C     		.sleb128 -480
- 30644 5274 00       		.byte	0x0
- 30645 5275 00       		.byte	0x0
- 30646 5276 00       		.byte	0x0
- 30647 5277 00       		.byte	0x0
- 30648 5278 36       		.uleb128 0x36
- 30649 5279 00000000 		.quad	.LBB1330
- 30649      00000000 
- 30650 5281 00000000 		.quad	.LBE1330
- 30650      00000000 
- 30651 5289 98520000 		.long	0x5298
- 30652 528d 34       		.uleb128 0x34
- 30653 528e 1C0C0000 		.long	0xc1c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 827
-
-
- 30654 5292 04       		.byte	0x4
- 30655 5293 91       		.byte	0x91
- 30656 5294 E0B17F   		.sleb128 -10016
- 30657 5297 00       		.byte	0x0
- 30658 5298 31       		.uleb128 0x31
- 30659 5299 4A0E0000 		.long	0xe4a
- 30660 529d 00000000 		.quad	.LBB1331
- 30660      00000000 
- 30661 52a5 00000000 		.quad	.LBE1331
- 30661      00000000 
- 30662 52ad 02       		.byte	0x2
- 30663 52ae 9406     		.value	0x694
- 30664 52b0 35530000 		.long	0x5335
- 30665 52b4 32       		.uleb128 0x32
- 30666 52b5 5C0E0000 		.long	0xe5c
- 30667 52b9 03       		.byte	0x3
- 30668 52ba 91       		.byte	0x91
- 30669 52bb B07C     		.sleb128 -464
- 30670 52bd 33       		.uleb128 0x33
- 30671 52be 00000000 		.quad	.LBB1332
- 30671      00000000 
- 30672 52c6 00000000 		.quad	.LBE1332
- 30672      00000000 
- 30673 52ce 34       		.uleb128 0x34
- 30674 52cf 680E0000 		.long	0xe68
- 30675 52d3 09       		.byte	0x9
- 30676 52d4 03       		.byte	0x3
- 30677 52d5 00000000 		.quad	ShiftRowTable.7385
- 30677      00000000 
- 30678 52dd 35       		.uleb128 0x35
- 30679 52de A00D0000 		.long	0xda0
- 30680 52e2 00000000 		.quad	.LBB1333
- 30680      00000000 
- 30681 52ea 00000000 		.quad	.LBE1333
- 30681      00000000 
- 30682 52f2 02       		.byte	0x2
- 30683 52f3 9B02     		.value	0x29b
- 30684 52f5 32       		.uleb128 0x32
- 30685 52f6 BE0D0000 		.long	0xdbe
- 30686 52fa 03       		.byte	0x3
- 30687 52fb 91       		.byte	0x91
- 30688 52fc C07C     		.sleb128 -448
- 30689 52fe 32       		.uleb128 0x32
- 30690 52ff B20D0000 		.long	0xdb2
- 30691 5303 03       		.byte	0x3
- 30692 5304 91       		.byte	0x91
- 30693 5305 D07C     		.sleb128 -432
- 30694 5307 35       		.uleb128 0x35
- 30695 5308 CB0D0000 		.long	0xdcb
- 30696 530c 00000000 		.quad	.LBB1335
- 30696      00000000 
- 30697 5314 00000000 		.quad	.LBE1335
- 30697      00000000 
- 30698 531c 02       		.byte	0x2
- 30699 531d 7501     		.value	0x175
- 30700 531f 32       		.uleb128 0x32
- 30701 5320 E90D0000 		.long	0xde9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 828
-
-
- 30702 5324 03       		.byte	0x3
- 30703 5325 91       		.byte	0x91
- 30704 5326 E07C     		.sleb128 -416
- 30705 5328 32       		.uleb128 0x32
- 30706 5329 DD0D0000 		.long	0xddd
- 30707 532d 03       		.byte	0x3
- 30708 532e 91       		.byte	0x91
- 30709 532f F07C     		.sleb128 -400
- 30710 5331 00       		.byte	0x0
- 30711 5332 00       		.byte	0x0
- 30712 5333 00       		.byte	0x0
- 30713 5334 00       		.byte	0x0
- 30714 5335 36       		.uleb128 0x36
- 30715 5336 00000000 		.quad	.LBB1337
- 30715      00000000 
- 30716 533e 00000000 		.quad	.LBE1337
- 30716      00000000 
- 30717 5346 55530000 		.long	0x5355
- 30718 534a 34       		.uleb128 0x34
- 30719 534b 2C0C0000 		.long	0xc2c
- 30720 534f 04       		.byte	0x4
- 30721 5350 91       		.byte	0x91
- 30722 5351 D0B17F   		.sleb128 -10032
- 30723 5354 00       		.byte	0x0
- 30724 5355 31       		.uleb128 0x31
- 30725 5356 860E0000 		.long	0xe86
- 30726 535a 00000000 		.quad	.LBB1338
- 30726      00000000 
- 30727 5362 00000000 		.quad	.LBE1338
- 30727      00000000 
- 30728 536a 02       		.byte	0x2
- 30729 536b 9606     		.value	0x696
- 30730 536d 84530000 		.long	0x5384
- 30731 5371 32       		.uleb128 0x32
- 30732 5372 A10E0000 		.long	0xea1
- 30733 5376 03       		.byte	0x3
- 30734 5377 91       		.byte	0x91
- 30735 5378 807D     		.sleb128 -384
- 30736 537a 32       		.uleb128 0x32
- 30737 537b 970E0000 		.long	0xe97
- 30738 537f 03       		.byte	0x3
- 30739 5380 91       		.byte	0x91
- 30740 5381 907D     		.sleb128 -368
- 30741 5383 00       		.byte	0x0
- 30742 5384 36       		.uleb128 0x36
- 30743 5385 00000000 		.quad	.LBB1340
- 30743      00000000 
- 30744 538d 00000000 		.quad	.LBE1340
- 30744      00000000 
- 30745 5395 A4530000 		.long	0x53a4
- 30746 5399 34       		.uleb128 0x34
- 30747 539a 3C0C0000 		.long	0xc3c
- 30748 539e 04       		.byte	0x4
- 30749 539f 91       		.byte	0x91
- 30750 53a0 C0B17F   		.sleb128 -10048
- 30751 53a3 00       		.byte	0x0
- 30752 53a4 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 829
-
-
- 30753 53a5 AC0E0000 		.long	0xeac
- 30754 53a9 00000000 		.quad	.LBB1341
- 30754      00000000 
- 30755 53b1 00000000 		.quad	.LBE1341
- 30755      00000000 
- 30756 53b9 02       		.byte	0x2
- 30757 53ba 9806     		.value	0x698
- 30758 53bc F5530000 		.long	0x53f5
- 30759 53c0 32       		.uleb128 0x32
- 30760 53c1 BE0E0000 		.long	0xebe
- 30761 53c5 03       		.byte	0x3
- 30762 53c6 91       		.byte	0x91
- 30763 53c7 A07D     		.sleb128 -352
- 30764 53c9 35       		.uleb128 0x35
- 30765 53ca CB0E0000 		.long	0xecb
- 30766 53ce 00000000 		.quad	.LBB1343
- 30766      00000000 
- 30767 53d6 00000000 		.quad	.LBE1343
- 30767      00000000 
- 30768 53de 02       		.byte	0x2
- 30769 53df 4905     		.value	0x549
- 30770 53e1 32       		.uleb128 0x32
- 30771 53e2 E90E0000 		.long	0xee9
- 30772 53e6 03       		.byte	0x3
- 30773 53e7 91       		.byte	0x91
- 30774 53e8 BC7D     		.sleb128 -324
- 30775 53ea 32       		.uleb128 0x32
- 30776 53eb DD0E0000 		.long	0xedd
- 30777 53ef 03       		.byte	0x3
- 30778 53f0 91       		.byte	0x91
- 30779 53f1 C07D     		.sleb128 -320
- 30780 53f3 00       		.byte	0x0
- 30781 53f4 00       		.byte	0x0
- 30782 53f5 33       		.uleb128 0x33
- 30783 53f6 00000000 		.quad	.LBB1345
- 30783      00000000 
- 30784 53fe 00000000 		.quad	.LBE1345
- 30784      00000000 
- 30785 5406 34       		.uleb128 0x34
- 30786 5407 480C0000 		.long	0xc48
- 30787 540b 04       		.byte	0x4
- 30788 540c 91       		.byte	0x91
- 30789 540d B0B17F   		.sleb128 -10064
- 30790 5410 00       		.byte	0x0
- 30791 5411 00       		.byte	0x0
- 30792 5412 00       		.byte	0x0
- 30793 5413 35       		.uleb128 0x35
- 30794 5414 F60E0000 		.long	0xef6
- 30795 5418 00000000 		.quad	.LBB1346
- 30795      00000000 
- 30796 5420 00000000 		.quad	.LBE1346
- 30796      00000000 
- 30797 5428 02       		.byte	0x2
- 30798 5429 D906     		.value	0x6d9
- 30799 542b 32       		.uleb128 0x32
- 30800 542c 080F0000 		.long	0xf08
- 30801 5430 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 830
-
-
- 30802 5431 91       		.byte	0x91
- 30803 5432 D07D     		.sleb128 -304
- 30804 5434 33       		.uleb128 0x33
- 30805 5435 00000000 		.quad	.LBB1347
- 30805      00000000 
- 30806 543d 00000000 		.quad	.LBE1347
- 30806      00000000 
- 30807 5445 34       		.uleb128 0x34
- 30808 5446 140F0000 		.long	0xf14
- 30809 544a 04       		.byte	0x4
- 30810 544b 76       		.byte	0x76
- 30811 544c E0AC7F   		.sleb128 -10656
- 30812 544f 31       		.uleb128 0x31
- 30813 5450 210F0000 		.long	0xf21
- 30814 5454 00000000 		.quad	.LBB1348
- 30814      00000000 
- 30815 545c 00000000 		.quad	.LBE1348
- 30815      00000000 
- 30816 5464 02       		.byte	0x2
- 30817 5465 1F06     		.value	0x61f
- 30818 5467 EC540000 		.long	0x54ec
- 30819 546b 32       		.uleb128 0x32
- 30820 546c 330F0000 		.long	0xf33
- 30821 5470 03       		.byte	0x3
- 30822 5471 91       		.byte	0x91
- 30823 5472 E07D     		.sleb128 -288
- 30824 5474 33       		.uleb128 0x33
- 30825 5475 00000000 		.quad	.LBB1349
- 30825      00000000 
- 30826 547d 00000000 		.quad	.LBE1349
- 30826      00000000 
- 30827 5485 34       		.uleb128 0x34
- 30828 5486 3F0F0000 		.long	0xf3f
- 30829 548a 09       		.byte	0x9
- 30830 548b 03       		.byte	0x3
- 30831 548c 00000000 		.quad	mask.7943
- 30831      00000000 
- 30832 5494 35       		.uleb128 0x35
- 30833 5495 A00D0000 		.long	0xda0
- 30834 5499 00000000 		.quad	.LBB1350
- 30834      00000000 
- 30835 54a1 00000000 		.quad	.LBE1350
- 30835      00000000 
- 30836 54a9 02       		.byte	0x2
- 30837 54aa FE04     		.value	0x4fe
- 30838 54ac 32       		.uleb128 0x32
- 30839 54ad BE0D0000 		.long	0xdbe
- 30840 54b1 03       		.byte	0x3
- 30841 54b2 91       		.byte	0x91
- 30842 54b3 F07D     		.sleb128 -272
- 30843 54b5 32       		.uleb128 0x32
- 30844 54b6 B20D0000 		.long	0xdb2
- 30845 54ba 03       		.byte	0x3
- 30846 54bb 91       		.byte	0x91
- 30847 54bc 807E     		.sleb128 -256
- 30848 54be 35       		.uleb128 0x35
- 30849 54bf CB0D0000 		.long	0xdcb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 831
-
-
- 30850 54c3 00000000 		.quad	.LBB1352
- 30850      00000000 
- 30851 54cb 00000000 		.quad	.LBE1352
- 30851      00000000 
- 30852 54d3 02       		.byte	0x2
- 30853 54d4 7501     		.value	0x175
- 30854 54d6 32       		.uleb128 0x32
- 30855 54d7 E90D0000 		.long	0xde9
- 30856 54db 03       		.byte	0x3
- 30857 54dc 91       		.byte	0x91
- 30858 54dd 907E     		.sleb128 -240
- 30859 54df 32       		.uleb128 0x32
- 30860 54e0 DD0D0000 		.long	0xddd
- 30861 54e4 03       		.byte	0x3
- 30862 54e5 91       		.byte	0x91
- 30863 54e6 A07E     		.sleb128 -224
- 30864 54e8 00       		.byte	0x0
- 30865 54e9 00       		.byte	0x0
- 30866 54ea 00       		.byte	0x0
- 30867 54eb 00       		.byte	0x0
- 30868 54ec 31       		.uleb128 0x31
- 30869 54ed 210F0000 		.long	0xf21
- 30870 54f1 00000000 		.quad	.LBB1354
- 30870      00000000 
- 30871 54f9 00000000 		.quad	.LBE1354
- 30871      00000000 
- 30872 5501 02       		.byte	0x2
- 30873 5502 2006     		.value	0x620
- 30874 5504 89550000 		.long	0x5589
- 30875 5508 32       		.uleb128 0x32
- 30876 5509 330F0000 		.long	0xf33
- 30877 550d 03       		.byte	0x3
- 30878 550e 91       		.byte	0x91
- 30879 550f B07E     		.sleb128 -208
- 30880 5511 33       		.uleb128 0x33
- 30881 5512 00000000 		.quad	.LBB1355
- 30881      00000000 
- 30882 551a 00000000 		.quad	.LBE1355
- 30882      00000000 
- 30883 5522 34       		.uleb128 0x34
- 30884 5523 3F0F0000 		.long	0xf3f
- 30885 5527 09       		.byte	0x9
- 30886 5528 03       		.byte	0x3
- 30887 5529 00000000 		.quad	mask.7943
- 30887      00000000 
- 30888 5531 35       		.uleb128 0x35
- 30889 5532 A00D0000 		.long	0xda0
- 30890 5536 00000000 		.quad	.LBB1356
- 30890      00000000 
- 30891 553e 00000000 		.quad	.LBE1356
- 30891      00000000 
- 30892 5546 02       		.byte	0x2
- 30893 5547 FE04     		.value	0x4fe
- 30894 5549 32       		.uleb128 0x32
- 30895 554a BE0D0000 		.long	0xdbe
- 30896 554e 03       		.byte	0x3
- 30897 554f 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 832
-
-
- 30898 5550 C07E     		.sleb128 -192
- 30899 5552 32       		.uleb128 0x32
- 30900 5553 B20D0000 		.long	0xdb2
- 30901 5557 03       		.byte	0x3
- 30902 5558 91       		.byte	0x91
- 30903 5559 D07E     		.sleb128 -176
- 30904 555b 35       		.uleb128 0x35
- 30905 555c CB0D0000 		.long	0xdcb
- 30906 5560 00000000 		.quad	.LBB1358
- 30906      00000000 
- 30907 5568 00000000 		.quad	.LBE1358
- 30907      00000000 
- 30908 5570 02       		.byte	0x2
- 30909 5571 7501     		.value	0x175
- 30910 5573 32       		.uleb128 0x32
- 30911 5574 E90D0000 		.long	0xde9
- 30912 5578 03       		.byte	0x3
- 30913 5579 91       		.byte	0x91
- 30914 557a E07E     		.sleb128 -160
- 30915 557c 32       		.uleb128 0x32
- 30916 557d DD0D0000 		.long	0xddd
- 30917 5581 03       		.byte	0x3
- 30918 5582 91       		.byte	0x91
- 30919 5583 F07E     		.sleb128 -144
- 30920 5585 00       		.byte	0x0
- 30921 5586 00       		.byte	0x0
- 30922 5587 00       		.byte	0x0
- 30923 5588 00       		.byte	0x0
- 30924 5589 35       		.uleb128 0x35
- 30925 558a 210F0000 		.long	0xf21
- 30926 558e 00000000 		.quad	.LBB1360
- 30926      00000000 
- 30927 5596 00000000 		.quad	.LBE1360
- 30927      00000000 
- 30928 559e 02       		.byte	0x2
- 30929 559f 2106     		.value	0x621
- 30930 55a1 32       		.uleb128 0x32
- 30931 55a2 330F0000 		.long	0xf33
- 30932 55a6 03       		.byte	0x3
- 30933 55a7 91       		.byte	0x91
- 30934 55a8 807F     		.sleb128 -128
- 30935 55aa 33       		.uleb128 0x33
- 30936 55ab 00000000 		.quad	.LBB1361
- 30936      00000000 
- 30937 55b3 00000000 		.quad	.LBE1361
- 30937      00000000 
- 30938 55bb 34       		.uleb128 0x34
- 30939 55bc 3F0F0000 		.long	0xf3f
- 30940 55c0 09       		.byte	0x9
- 30941 55c1 03       		.byte	0x3
- 30942 55c2 00000000 		.quad	mask.7943
- 30942      00000000 
- 30943 55ca 35       		.uleb128 0x35
- 30944 55cb A00D0000 		.long	0xda0
- 30945 55cf 00000000 		.quad	.LBB1362
- 30945      00000000 
- 30946 55d7 00000000 		.quad	.LBE1362
-
GAS LISTING /tmp/ccjbMjHD.s 			page 833
-
-
- 30946      00000000 
- 30947 55df 02       		.byte	0x2
- 30948 55e0 FE04     		.value	0x4fe
- 30949 55e2 32       		.uleb128 0x32
- 30950 55e3 BE0D0000 		.long	0xdbe
- 30951 55e7 03       		.byte	0x3
- 30952 55e8 91       		.byte	0x91
- 30953 55e9 907F     		.sleb128 -112
- 30954 55eb 32       		.uleb128 0x32
- 30955 55ec B20D0000 		.long	0xdb2
- 30956 55f0 03       		.byte	0x3
- 30957 55f1 91       		.byte	0x91
- 30958 55f2 A07F     		.sleb128 -96
- 30959 55f4 35       		.uleb128 0x35
- 30960 55f5 CB0D0000 		.long	0xdcb
- 30961 55f9 00000000 		.quad	.LBB1364
- 30961      00000000 
- 30962 5601 00000000 		.quad	.LBE1364
- 30962      00000000 
- 30963 5609 02       		.byte	0x2
- 30964 560a 7501     		.value	0x175
- 30965 560c 32       		.uleb128 0x32
- 30966 560d E90D0000 		.long	0xde9
- 30967 5611 03       		.byte	0x3
- 30968 5612 91       		.byte	0x91
- 30969 5613 B07F     		.sleb128 -80
- 30970 5615 32       		.uleb128 0x32
- 30971 5616 DD0D0000 		.long	0xddd
- 30972 561a 02       		.byte	0x2
- 30973 561b 91       		.byte	0x91
- 30974 561c 40       		.sleb128 -64
- 30975 561d 00       		.byte	0x0
- 30976 561e 00       		.byte	0x0
- 30977 561f 00       		.byte	0x0
- 30978 5620 00       		.byte	0x0
- 30979 5621 00       		.byte	0x0
- 30980 5622 00       		.byte	0x0
- 30981 5623 00       		.byte	0x0
- 30982 5624 07       		.uleb128 0x7
- 30983 5625 08       		.byte	0x8
- 30984 5626 B3010000 		.long	0x1b3
- 30985 562a 07       		.uleb128 0x7
- 30986 562b 08       		.byte	0x8
- 30987 562c 30560000 		.long	0x5630
- 30988 5630 06       		.uleb128 0x6
- 30989 5631 FE030000 		.long	0x3fe
- 30990 5635 25       		.uleb128 0x25
- 30991 5636 00000000 		.long	.LASF348
- 30992 563a 02       		.byte	0x2
- 30993 563b 1105     		.value	0x511
- 30994 563d 01       		.byte	0x1
- 30995 563e B3010000 		.long	0x1b3
- 30996 5642 03       		.byte	0x3
- 30997 5643 71560000 		.long	0x5671
- 30998 5647 26       		.uleb128 0x26
- 30999 5648 00000000 		.long	.LASF67
- 31000 564c 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 834
-
-
- 31001 564d 1105     		.value	0x511
- 31002 564f B3010000 		.long	0x1b3
- 31003 5653 2C       		.uleb128 0x2c
- 31004 5654 00000000 		.long	.LASF334
- 31005 5658 02       		.byte	0x2
- 31006 5659 1405     		.value	0x514
- 31007 565b 4A0D0000 		.long	0xd4a
- 31008 565f 10       		.byte	0x10
- 31009 5660 08       		.byte	0x8
- 31010 5661 09       		.byte	0x9
- 31011 5662 0A       		.byte	0xa
- 31012 5663 0B       		.byte	0xb
- 31013 5664 0C       		.byte	0xc
- 31014 5665 0D       		.byte	0xd
- 31015 5666 0E       		.byte	0xe
- 31016 5667 0F       		.byte	0xf
- 31017 5668 FF       		.byte	0xff
- 31018 5669 FF       		.byte	0xff
- 31019 566a FF       		.byte	0xff
- 31020 566b FF       		.byte	0xff
- 31021 566c FF       		.byte	0xff
- 31022 566d FF       		.byte	0xff
- 31023 566e FF       		.byte	0xff
- 31024 566f FF       		.byte	0xff
- 31025 5670 00       		.byte	0x0
- 31026 5671 25       		.uleb128 0x25
- 31027 5672 00000000 		.long	.LASF349
- 31028 5676 02       		.byte	0x2
- 31029 5677 5206     		.value	0x652
- 31030 5679 01       		.byte	0x1
- 31031 567a B3010000 		.long	0x1b3
- 31032 567e 03       		.byte	0x3
- 31033 567f BE560000 		.long	0x56be
- 31034 5683 26       		.uleb128 0x26
- 31035 5684 00000000 		.long	.LASF67
- 31036 5688 02       		.byte	0x2
- 31037 5689 5206     		.value	0x652
- 31038 568b B3010000 		.long	0x1b3
- 31039 568f 26       		.uleb128 0x26
- 31040 5690 00000000 		.long	.LASF321
- 31041 5694 02       		.byte	0x2
- 31042 5695 5206     		.value	0x652
- 31043 5697 B4000000 		.long	0xb4
- 31044 569b 28       		.uleb128 0x28
- 31045 569c 7500     		.string	"u"
- 31046 569e 02       		.byte	0x2
- 31047 569f 5906     		.value	0x659
- 31048 56a1 29050000 		.long	0x529
- 31049 56a5 27       		.uleb128 0x27
- 31050 56a6 00000000 		.long	.LASF350
- 31051 56aa 02       		.byte	0x2
- 31052 56ab 5A06     		.value	0x65a
- 31053 56ad 09040000 		.long	0x409
- 31054 56b1 27       		.uleb128 0x27
- 31055 56b2 00000000 		.long	.LASF351
- 31056 56b6 02       		.byte	0x2
- 31057 56b7 5B06     		.value	0x65b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 835
-
-
- 31058 56b9 09040000 		.long	0x409
- 31059 56bd 00       		.byte	0x0
- 31060 56be 25       		.uleb128 0x25
- 31061 56bf 00000000 		.long	.LASF352
- 31062 56c3 02       		.byte	0x2
- 31063 56c4 DF02     		.value	0x2df
- 31064 56c6 01       		.byte	0x1
- 31065 56c7 09040000 		.long	0x409
- 31066 56cb 03       		.byte	0x3
- 31067 56cc F2560000 		.long	0x56f2
- 31068 56d0 2B       		.uleb128 0x2b
- 31069 56d1 7700     		.string	"w"
- 31070 56d3 02       		.byte	0x2
- 31071 56d4 DF02     		.value	0x2df
- 31072 56d6 09040000 		.long	0x409
- 31073 56da 28       		.uleb128 0x28
- 31074 56db 636F6C00 		.string	"col"
- 31075 56df 02       		.byte	0x2
- 31076 56e0 E102     		.value	0x2e1
- 31077 56e2 14040000 		.long	0x414
- 31078 56e6 28       		.uleb128 0x28
- 31079 56e7 697800   		.string	"ix"
- 31080 56ea 02       		.byte	0x2
- 31081 56eb E202     		.value	0x2e2
- 31082 56ed 78000000 		.long	0x78
- 31083 56f1 00       		.byte	0x0
- 31084 56f2 25       		.uleb128 0x25
- 31085 56f3 00000000 		.long	.LASF353
- 31086 56f7 02       		.byte	0x2
- 31087 56f8 AA04     		.value	0x4aa
- 31088 56fa 01       		.byte	0x1
- 31089 56fb 09040000 		.long	0x409
- 31090 56ff 03       		.byte	0x3
- 31091 5700 0F570000 		.long	0x570f
- 31092 5704 2B       		.uleb128 0x2b
- 31093 5705 7700     		.string	"w"
- 31094 5707 02       		.byte	0x2
- 31095 5708 AA04     		.value	0x4aa
- 31096 570a 09040000 		.long	0x409
- 31097 570e 00       		.byte	0x0
- 31098 570f 25       		.uleb128 0x25
- 31099 5710 00000000 		.long	.LASF354
- 31100 5714 02       		.byte	0x2
- 31101 5715 B705     		.value	0x5b7
- 31102 5717 01       		.byte	0x1
- 31103 5718 B3010000 		.long	0x1b3
- 31104 571c 03       		.byte	0x3
- 31105 571d 36570000 		.long	0x5736
- 31106 5721 2B       		.uleb128 0x2b
- 31107 5722 7700     		.string	"w"
- 31108 5724 02       		.byte	0x2
- 31109 5725 B705     		.value	0x5b7
- 31110 5727 B3010000 		.long	0x1b3
- 31111 572b 2B       		.uleb128 0x2b
- 31112 572c 7800     		.string	"x"
- 31113 572e 02       		.byte	0x2
- 31114 572f B705     		.value	0x5b7
-
GAS LISTING /tmp/ccjbMjHD.s 			page 836
-
-
- 31115 5731 B3010000 		.long	0x1b3
- 31116 5735 00       		.byte	0x0
- 31117 5736 25       		.uleb128 0x25
- 31118 5737 00000000 		.long	.LASF355
- 31119 573b 03       		.byte	0x3
- 31120 573c 6C01     		.value	0x16c
- 31121 573e 01       		.byte	0x1
- 31122 573f E7000000 		.long	0xe7
- 31123 5743 03       		.byte	0x3
- 31124 5744 6D570000 		.long	0x576d
- 31125 5748 26       		.uleb128 0x26
- 31126 5749 00000000 		.long	.LASF356
- 31127 574d 03       		.byte	0x3
- 31128 574e 6C01     		.value	0x16c
- 31129 5750 E7000000 		.long	0xe7
- 31130 5754 26       		.uleb128 0x26
- 31131 5755 00000000 		.long	.LASF357
- 31132 5759 03       		.byte	0x3
- 31133 575a 6C01     		.value	0x16c
- 31134 575c E7000000 		.long	0xe7
- 31135 5760 26       		.uleb128 0x26
- 31136 5761 00000000 		.long	.LASF334
- 31137 5765 03       		.byte	0x3
- 31138 5766 6C01     		.value	0x16c
- 31139 5768 B4000000 		.long	0xb4
- 31140 576c 00       		.byte	0x0
- 31141 576d 25       		.uleb128 0x25
- 31142 576e 00000000 		.long	.LASF358
- 31143 5772 02       		.byte	0x2
- 31144 5773 D705     		.value	0x5d7
- 31145 5775 01       		.byte	0x1
- 31146 5776 B3010000 		.long	0x1b3
- 31147 577a 03       		.byte	0x3
- 31148 577b 94570000 		.long	0x5794
- 31149 577f 2B       		.uleb128 0x2b
- 31150 5780 7700     		.string	"w"
- 31151 5782 02       		.byte	0x2
- 31152 5783 D705     		.value	0x5d7
- 31153 5785 B3010000 		.long	0x1b3
- 31154 5789 2B       		.uleb128 0x2b
- 31155 578a 7800     		.string	"x"
- 31156 578c 02       		.byte	0x2
- 31157 578d D705     		.value	0x5d7
- 31158 578f B3010000 		.long	0x1b3
- 31159 5793 00       		.byte	0x0
- 31160 5794 2D       		.uleb128 0x2d
- 31161 5795 00000000 		.long	.LASF360
- 31162 5799 02       		.byte	0x2
- 31163 579a E706     		.value	0x6e7
- 31164 579c 01       		.byte	0x1
- 31165 579d 00000000 		.quad	.LFB646
- 31165      00000000 
- 31166 57a5 00000000 		.quad	.LFE646
- 31166      00000000 
- 31167 57ad 00000000 		.long	.LLST2
- 31168 57b1 8F940000 		.long	0x948f
- 31169 57b5 2E       		.uleb128 0x2e
-
GAS LISTING /tmp/ccjbMjHD.s 			page 837
-
-
- 31170 57b6 00000000 		.long	.LASF65
- 31171 57ba 02       		.byte	0x2
- 31172 57bb E706     		.value	0x6e7
- 31173 57bd 24560000 		.long	0x5624
- 31174 57c1 04       		.byte	0x4
- 31175 57c2 91       		.byte	0x91
- 31176 57c3 98BD7F   		.sleb128 -8552
- 31177 57c6 2F       		.uleb128 0x2f
- 31178 57c7 6B657900 		.string	"key"
- 31179 57cb 02       		.byte	0x2
- 31180 57cc E706     		.value	0x6e7
- 31181 57ce 2A560000 		.long	0x562a
- 31182 57d2 04       		.byte	0x4
- 31183 57d3 91       		.byte	0x91
- 31184 57d4 90BD7F   		.sleb128 -8560
- 31185 57d7 37       		.uleb128 0x37
- 31186 57d8 763000   		.string	"v0"
- 31187 57db 02       		.byte	0x2
- 31188 57dc EF06     		.value	0x6ef
- 31189 57de B3010000 		.long	0x1b3
- 31190 57e2 04       		.byte	0x4
- 31191 57e3 76       		.byte	0x76
- 31192 57e4 B0B97F   		.sleb128 -9040
- 31193 57e7 37       		.uleb128 0x37
- 31194 57e8 763100   		.string	"v1"
- 31195 57eb 02       		.byte	0x2
- 31196 57ec EF06     		.value	0x6ef
- 31197 57ee B3010000 		.long	0x1b3
- 31198 57f2 04       		.byte	0x4
- 31199 57f3 76       		.byte	0x76
- 31200 57f4 C0B97F   		.sleb128 -9024
- 31201 57f7 37       		.uleb128 0x37
- 31202 57f8 763200   		.string	"v2"
- 31203 57fb 02       		.byte	0x2
- 31204 57fc EF06     		.value	0x6ef
- 31205 57fe B3010000 		.long	0x1b3
- 31206 5802 04       		.byte	0x4
- 31207 5803 76       		.byte	0x76
- 31208 5804 D0B97F   		.sleb128 -9008
- 31209 5807 37       		.uleb128 0x37
- 31210 5808 763300   		.string	"v3"
- 31211 580b 02       		.byte	0x2
- 31212 580c EF06     		.value	0x6ef
- 31213 580e B3010000 		.long	0x1b3
- 31214 5812 04       		.byte	0x4
- 31215 5813 76       		.byte	0x76
- 31216 5814 E0B97F   		.sleb128 -8992
- 31217 5817 37       		.uleb128 0x37
- 31218 5818 763400   		.string	"v4"
- 31219 581b 02       		.byte	0x2
- 31220 581c EF06     		.value	0x6ef
- 31221 581e B3010000 		.long	0x1b3
- 31222 5822 04       		.byte	0x4
- 31223 5823 76       		.byte	0x76
- 31224 5824 F0B97F   		.sleb128 -8976
- 31225 5827 37       		.uleb128 0x37
- 31226 5828 6B00     		.string	"k"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 838
-
-
- 31227 582a 02       		.byte	0x2
- 31228 582b F006     		.value	0x6f0
- 31229 582d B3010000 		.long	0x1b3
- 31230 5831 04       		.byte	0x4
- 31231 5832 76       		.byte	0x76
- 31232 5833 80BA7F   		.sleb128 -8960
- 31233 5836 31       		.uleb128 0x31
- 31234 5837 AD0B0000 		.long	0xbad
- 31235 583b 00000000 		.quad	.LBB1952
- 31235      00000000 
- 31236 5843 00000000 		.quad	.LBE1952
- 31236      00000000 
- 31237 584b 02       		.byte	0x2
- 31238 584c F306     		.value	0x6f3
- 31239 584e 78580000 		.long	0x5878
- 31240 5852 32       		.uleb128 0x32
- 31241 5853 BE0B0000 		.long	0xbbe
- 31242 5857 03       		.byte	0x3
- 31243 5858 91       		.byte	0x91
- 31244 5859 A040     		.sleb128 -8160
- 31245 585b 33       		.uleb128 0x33
- 31246 585c 00000000 		.quad	.LBB1953
- 31246      00000000 
- 31247 5864 00000000 		.quad	.LBE1953
- 31247      00000000 
- 31248 586c 34       		.uleb128 0x34
- 31249 586d C90B0000 		.long	0xbc9
- 31250 5871 04       		.byte	0x4
- 31251 5872 76       		.byte	0x76
- 31252 5873 90BA7F   		.sleb128 -8944
- 31253 5876 00       		.byte	0x0
- 31254 5877 00       		.byte	0x0
- 31255 5878 31       		.uleb128 0x31
- 31256 5879 AD0B0000 		.long	0xbad
- 31257 587d 00000000 		.quad	.LBB1954
- 31257      00000000 
- 31258 5885 00000000 		.quad	.LBE1954
- 31258      00000000 
- 31259 588d 02       		.byte	0x2
- 31260 588e F406     		.value	0x6f4
- 31261 5890 BA580000 		.long	0x58ba
- 31262 5894 32       		.uleb128 0x32
- 31263 5895 BE0B0000 		.long	0xbbe
- 31264 5899 03       		.byte	0x3
- 31265 589a 91       		.byte	0x91
- 31266 589b A840     		.sleb128 -8152
- 31267 589d 33       		.uleb128 0x33
- 31268 589e 00000000 		.quad	.LBB1955
- 31268      00000000 
- 31269 58a6 00000000 		.quad	.LBE1955
- 31269      00000000 
- 31270 58ae 34       		.uleb128 0x34
- 31271 58af C90B0000 		.long	0xbc9
- 31272 58b3 04       		.byte	0x4
- 31273 58b4 76       		.byte	0x76
- 31274 58b5 A0BA7F   		.sleb128 -8928
- 31275 58b8 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 839
-
-
- 31276 58b9 00       		.byte	0x0
- 31277 58ba 31       		.uleb128 0x31
- 31278 58bb 35560000 		.long	0x5635
- 31279 58bf 00000000 		.quad	.LBB1956
- 31279      00000000 
- 31280 58c7 00000000 		.quad	.LBE1956
- 31280      00000000 
- 31281 58cf 02       		.byte	0x2
- 31282 58d0 F506     		.value	0x6f5
- 31283 58d2 57590000 		.long	0x5957
- 31284 58d6 32       		.uleb128 0x32
- 31285 58d7 47560000 		.long	0x5647
- 31286 58db 03       		.byte	0x3
- 31287 58dc 91       		.byte	0x91
- 31288 58dd B040     		.sleb128 -8144
- 31289 58df 33       		.uleb128 0x33
- 31290 58e0 00000000 		.quad	.LBB1957
- 31290      00000000 
- 31291 58e8 00000000 		.quad	.LBE1957
- 31291      00000000 
- 31292 58f0 34       		.uleb128 0x34
- 31293 58f1 53560000 		.long	0x5653
- 31294 58f5 09       		.byte	0x9
- 31295 58f6 03       		.byte	0x3
- 31296 58f7 00000000 		.quad	mask.7952
- 31296      00000000 
- 31297 58ff 35       		.uleb128 0x35
- 31298 5900 A00D0000 		.long	0xda0
- 31299 5904 00000000 		.quad	.LBB1958
- 31299      00000000 
- 31300 590c 00000000 		.quad	.LBE1958
- 31300      00000000 
- 31301 5914 02       		.byte	0x2
- 31302 5915 1505     		.value	0x515
- 31303 5917 32       		.uleb128 0x32
- 31304 5918 BE0D0000 		.long	0xdbe
- 31305 591c 03       		.byte	0x3
- 31306 591d 91       		.byte	0x91
- 31307 591e C040     		.sleb128 -8128
- 31308 5920 32       		.uleb128 0x32
- 31309 5921 B20D0000 		.long	0xdb2
- 31310 5925 03       		.byte	0x3
- 31311 5926 91       		.byte	0x91
- 31312 5927 D040     		.sleb128 -8112
- 31313 5929 35       		.uleb128 0x35
- 31314 592a CB0D0000 		.long	0xdcb
- 31315 592e 00000000 		.quad	.LBB1960
- 31315      00000000 
- 31316 5936 00000000 		.quad	.LBE1960
- 31316      00000000 
- 31317 593e 02       		.byte	0x2
- 31318 593f 7501     		.value	0x175
- 31319 5941 32       		.uleb128 0x32
- 31320 5942 E90D0000 		.long	0xde9
- 31321 5946 03       		.byte	0x3
- 31322 5947 91       		.byte	0x91
- 31323 5948 E040     		.sleb128 -8096
-
GAS LISTING /tmp/ccjbMjHD.s 			page 840
-
-
- 31324 594a 32       		.uleb128 0x32
- 31325 594b DD0D0000 		.long	0xddd
- 31326 594f 03       		.byte	0x3
- 31327 5950 91       		.byte	0x91
- 31328 5951 F040     		.sleb128 -8080
- 31329 5953 00       		.byte	0x0
- 31330 5954 00       		.byte	0x0
- 31331 5955 00       		.byte	0x0
- 31332 5956 00       		.byte	0x0
- 31333 5957 31       		.uleb128 0x31
- 31334 5958 71560000 		.long	0x5671
- 31335 595c 00000000 		.quad	.LBB1962
- 31335      00000000 
- 31336 5964 00000000 		.quad	.LBE1962
- 31336      00000000 
- 31337 596c 02       		.byte	0x2
- 31338 596d FC06     		.value	0x6fc
- 31339 596f 215A0000 		.long	0x5a21
- 31340 5973 32       		.uleb128 0x32
- 31341 5974 8F560000 		.long	0x568f
- 31342 5978 03       		.byte	0x3
- 31343 5979 91       		.byte	0x91
- 31344 597a 8C41     		.sleb128 -8052
- 31345 597c 32       		.uleb128 0x32
- 31346 597d 83560000 		.long	0x5683
- 31347 5981 03       		.byte	0x3
- 31348 5982 91       		.byte	0x91
- 31349 5983 9041     		.sleb128 -8048
- 31350 5985 33       		.uleb128 0x33
- 31351 5986 00000000 		.quad	.LBB1963
- 31351      00000000 
- 31352 598e 00000000 		.quad	.LBE1963
- 31352      00000000 
- 31353 5996 34       		.uleb128 0x34
- 31354 5997 9B560000 		.long	0x569b
- 31355 599b 04       		.byte	0x4
- 31356 599c 91       		.byte	0x91
- 31357 599d B0BD7F   		.sleb128 -8528
- 31358 59a0 34       		.uleb128 0x34
- 31359 59a1 A5560000 		.long	0x56a5
- 31360 59a5 03       		.byte	0x3
- 31361 59a6 91       		.byte	0x91
- 31362 59a7 B041     		.sleb128 -8016
- 31363 59a9 34       		.uleb128 0x34
- 31364 59aa B1560000 		.long	0x56b1
- 31365 59ae 03       		.byte	0x3
- 31366 59af 91       		.byte	0x91
- 31367 59b0 AC41     		.sleb128 -8020
- 31368 59b2 31       		.uleb128 0x31
- 31369 59b3 BE560000 		.long	0x56be
- 31370 59b7 00000000 		.quad	.LBB1964
- 31370      00000000 
- 31371 59bf 00000000 		.quad	.LBE1964
- 31371      00000000 
- 31372 59c7 02       		.byte	0x2
- 31373 59c8 5F06     		.value	0x65f
- 31374 59ca FD590000 		.long	0x59fd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 841
-
-
- 31375 59ce 32       		.uleb128 0x32
- 31376 59cf D0560000 		.long	0x56d0
- 31377 59d3 03       		.byte	0x3
- 31378 59d4 91       		.byte	0x91
- 31379 59d5 B441     		.sleb128 -8012
- 31380 59d7 33       		.uleb128 0x33
- 31381 59d8 00000000 		.quad	.LBB1965
- 31381      00000000 
- 31382 59e0 00000000 		.quad	.LBE1965
- 31382      00000000 
- 31383 59e8 34       		.uleb128 0x34
- 31384 59e9 DA560000 		.long	0x56da
- 31385 59ed 04       		.byte	0x4
- 31386 59ee 91       		.byte	0x91
- 31387 59ef A0BD7F   		.sleb128 -8544
- 31388 59f2 34       		.uleb128 0x34
- 31389 59f3 E6560000 		.long	0x56e6
- 31390 59f7 03       		.byte	0x3
- 31391 59f8 91       		.byte	0x91
- 31392 59f9 B841     		.sleb128 -8008
- 31393 59fb 00       		.byte	0x0
- 31394 59fc 00       		.byte	0x0
- 31395 59fd 35       		.uleb128 0x35
- 31396 59fe F2560000 		.long	0x56f2
- 31397 5a02 00000000 		.quad	.LBB1966
- 31397      00000000 
- 31398 5a0a 00000000 		.quad	.LBE1966
- 31398      00000000 
- 31399 5a12 02       		.byte	0x2
- 31400 5a13 6006     		.value	0x660
- 31401 5a15 32       		.uleb128 0x32
- 31402 5a16 04570000 		.long	0x5704
- 31403 5a1a 03       		.byte	0x3
- 31404 5a1b 91       		.byte	0x91
- 31405 5a1c BC41     		.sleb128 -8004
- 31406 5a1e 00       		.byte	0x0
- 31407 5a1f 00       		.byte	0x0
- 31408 5a20 00       		.byte	0x0
- 31409 5a21 31       		.uleb128 0x31
- 31410 5a22 F60E0000 		.long	0xef6
- 31411 5a26 00000000 		.quad	.LBB1968
- 31411      00000000 
- 31412 5a2e 00000000 		.quad	.LBE1968
- 31412      00000000 
- 31413 5a36 02       		.byte	0x2
- 31414 5a37 FE06     		.value	0x6fe
- 31415 5a39 365C0000 		.long	0x5c36
- 31416 5a3d 32       		.uleb128 0x32
- 31417 5a3e 080F0000 		.long	0xf08
- 31418 5a42 03       		.byte	0x3
- 31419 5a43 91       		.byte	0x91
- 31420 5a44 C041     		.sleb128 -8000
- 31421 5a46 33       		.uleb128 0x33
- 31422 5a47 00000000 		.quad	.LBB1969
- 31422      00000000 
- 31423 5a4f 00000000 		.quad	.LBE1969
- 31423      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 842
-
-
- 31424 5a57 34       		.uleb128 0x34
- 31425 5a58 140F0000 		.long	0xf14
- 31426 5a5c 04       		.byte	0x4
- 31427 5a5d 76       		.byte	0x76
- 31428 5a5e B0BA7F   		.sleb128 -8912
- 31429 5a61 31       		.uleb128 0x31
- 31430 5a62 210F0000 		.long	0xf21
- 31431 5a66 00000000 		.quad	.LBB1970
- 31431      00000000 
- 31432 5a6e 00000000 		.quad	.LBE1970
- 31432      00000000 
- 31433 5a76 02       		.byte	0x2
- 31434 5a77 1F06     		.value	0x61f
- 31435 5a79 FE5A0000 		.long	0x5afe
- 31436 5a7d 32       		.uleb128 0x32
- 31437 5a7e 330F0000 		.long	0xf33
- 31438 5a82 03       		.byte	0x3
- 31439 5a83 91       		.byte	0x91
- 31440 5a84 D041     		.sleb128 -7984
- 31441 5a86 33       		.uleb128 0x33
- 31442 5a87 00000000 		.quad	.LBB1971
- 31442      00000000 
- 31443 5a8f 00000000 		.quad	.LBE1971
- 31443      00000000 
- 31444 5a97 34       		.uleb128 0x34
- 31445 5a98 3F0F0000 		.long	0xf3f
- 31446 5a9c 09       		.byte	0x9
- 31447 5a9d 03       		.byte	0x3
- 31448 5a9e 00000000 		.quad	mask.7943
- 31448      00000000 
- 31449 5aa6 35       		.uleb128 0x35
- 31450 5aa7 A00D0000 		.long	0xda0
- 31451 5aab 00000000 		.quad	.LBB1972
- 31451      00000000 
- 31452 5ab3 00000000 		.quad	.LBE1972
- 31452      00000000 
- 31453 5abb 02       		.byte	0x2
- 31454 5abc FE04     		.value	0x4fe
- 31455 5abe 32       		.uleb128 0x32
- 31456 5abf BE0D0000 		.long	0xdbe
- 31457 5ac3 03       		.byte	0x3
- 31458 5ac4 91       		.byte	0x91
- 31459 5ac5 E041     		.sleb128 -7968
- 31460 5ac7 32       		.uleb128 0x32
- 31461 5ac8 B20D0000 		.long	0xdb2
- 31462 5acc 03       		.byte	0x3
- 31463 5acd 91       		.byte	0x91
- 31464 5ace F041     		.sleb128 -7952
- 31465 5ad0 35       		.uleb128 0x35
- 31466 5ad1 CB0D0000 		.long	0xdcb
- 31467 5ad5 00000000 		.quad	.LBB1974
- 31467      00000000 
- 31468 5add 00000000 		.quad	.LBE1974
- 31468      00000000 
- 31469 5ae5 02       		.byte	0x2
- 31470 5ae6 7501     		.value	0x175
- 31471 5ae8 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 843
-
-
- 31472 5ae9 E90D0000 		.long	0xde9
- 31473 5aed 03       		.byte	0x3
- 31474 5aee 91       		.byte	0x91
- 31475 5aef 8042     		.sleb128 -7936
- 31476 5af1 32       		.uleb128 0x32
- 31477 5af2 DD0D0000 		.long	0xddd
- 31478 5af6 03       		.byte	0x3
- 31479 5af7 91       		.byte	0x91
- 31480 5af8 9042     		.sleb128 -7920
- 31481 5afa 00       		.byte	0x0
- 31482 5afb 00       		.byte	0x0
- 31483 5afc 00       		.byte	0x0
- 31484 5afd 00       		.byte	0x0
- 31485 5afe 31       		.uleb128 0x31
- 31486 5aff 210F0000 		.long	0xf21
- 31487 5b03 00000000 		.quad	.LBB1976
- 31487      00000000 
- 31488 5b0b 00000000 		.quad	.LBE1976
- 31488      00000000 
- 31489 5b13 02       		.byte	0x2
- 31490 5b14 2006     		.value	0x620
- 31491 5b16 9B5B0000 		.long	0x5b9b
- 31492 5b1a 32       		.uleb128 0x32
- 31493 5b1b 330F0000 		.long	0xf33
- 31494 5b1f 03       		.byte	0x3
- 31495 5b20 91       		.byte	0x91
- 31496 5b21 A042     		.sleb128 -7904
- 31497 5b23 33       		.uleb128 0x33
- 31498 5b24 00000000 		.quad	.LBB1977
- 31498      00000000 
- 31499 5b2c 00000000 		.quad	.LBE1977
- 31499      00000000 
- 31500 5b34 34       		.uleb128 0x34
- 31501 5b35 3F0F0000 		.long	0xf3f
- 31502 5b39 09       		.byte	0x9
- 31503 5b3a 03       		.byte	0x3
- 31504 5b3b 00000000 		.quad	mask.7943
- 31504      00000000 
- 31505 5b43 35       		.uleb128 0x35
- 31506 5b44 A00D0000 		.long	0xda0
- 31507 5b48 00000000 		.quad	.LBB1978
- 31507      00000000 
- 31508 5b50 00000000 		.quad	.LBE1978
- 31508      00000000 
- 31509 5b58 02       		.byte	0x2
- 31510 5b59 FE04     		.value	0x4fe
- 31511 5b5b 32       		.uleb128 0x32
- 31512 5b5c BE0D0000 		.long	0xdbe
- 31513 5b60 03       		.byte	0x3
- 31514 5b61 91       		.byte	0x91
- 31515 5b62 B042     		.sleb128 -7888
- 31516 5b64 32       		.uleb128 0x32
- 31517 5b65 B20D0000 		.long	0xdb2
- 31518 5b69 03       		.byte	0x3
- 31519 5b6a 91       		.byte	0x91
- 31520 5b6b C042     		.sleb128 -7872
- 31521 5b6d 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 844
-
-
- 31522 5b6e CB0D0000 		.long	0xdcb
- 31523 5b72 00000000 		.quad	.LBB1980
- 31523      00000000 
- 31524 5b7a 00000000 		.quad	.LBE1980
- 31524      00000000 
- 31525 5b82 02       		.byte	0x2
- 31526 5b83 7501     		.value	0x175
- 31527 5b85 32       		.uleb128 0x32
- 31528 5b86 E90D0000 		.long	0xde9
- 31529 5b8a 03       		.byte	0x3
- 31530 5b8b 91       		.byte	0x91
- 31531 5b8c D042     		.sleb128 -7856
- 31532 5b8e 32       		.uleb128 0x32
- 31533 5b8f DD0D0000 		.long	0xddd
- 31534 5b93 03       		.byte	0x3
- 31535 5b94 91       		.byte	0x91
- 31536 5b95 E042     		.sleb128 -7840
- 31537 5b97 00       		.byte	0x0
- 31538 5b98 00       		.byte	0x0
- 31539 5b99 00       		.byte	0x0
- 31540 5b9a 00       		.byte	0x0
- 31541 5b9b 35       		.uleb128 0x35
- 31542 5b9c 210F0000 		.long	0xf21
- 31543 5ba0 00000000 		.quad	.LBB1982
- 31543      00000000 
- 31544 5ba8 00000000 		.quad	.LBE1982
- 31544      00000000 
- 31545 5bb0 02       		.byte	0x2
- 31546 5bb1 2106     		.value	0x621
- 31547 5bb3 32       		.uleb128 0x32
- 31548 5bb4 330F0000 		.long	0xf33
- 31549 5bb8 03       		.byte	0x3
- 31550 5bb9 91       		.byte	0x91
- 31551 5bba F042     		.sleb128 -7824
- 31552 5bbc 33       		.uleb128 0x33
- 31553 5bbd 00000000 		.quad	.LBB1983
- 31553      00000000 
- 31554 5bc5 00000000 		.quad	.LBE1983
- 31554      00000000 
- 31555 5bcd 34       		.uleb128 0x34
- 31556 5bce 3F0F0000 		.long	0xf3f
- 31557 5bd2 09       		.byte	0x9
- 31558 5bd3 03       		.byte	0x3
- 31559 5bd4 00000000 		.quad	mask.7943
- 31559      00000000 
- 31560 5bdc 35       		.uleb128 0x35
- 31561 5bdd A00D0000 		.long	0xda0
- 31562 5be1 00000000 		.quad	.LBB1984
- 31562      00000000 
- 31563 5be9 00000000 		.quad	.LBE1984
- 31563      00000000 
- 31564 5bf1 02       		.byte	0x2
- 31565 5bf2 FE04     		.value	0x4fe
- 31566 5bf4 32       		.uleb128 0x32
- 31567 5bf5 BE0D0000 		.long	0xdbe
- 31568 5bf9 03       		.byte	0x3
- 31569 5bfa 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 845
-
-
- 31570 5bfb 8043     		.sleb128 -7808
- 31571 5bfd 32       		.uleb128 0x32
- 31572 5bfe B20D0000 		.long	0xdb2
- 31573 5c02 03       		.byte	0x3
- 31574 5c03 91       		.byte	0x91
- 31575 5c04 9043     		.sleb128 -7792
- 31576 5c06 35       		.uleb128 0x35
- 31577 5c07 CB0D0000 		.long	0xdcb
- 31578 5c0b 00000000 		.quad	.LBB1986
- 31578      00000000 
- 31579 5c13 00000000 		.quad	.LBE1986
- 31579      00000000 
- 31580 5c1b 02       		.byte	0x2
- 31581 5c1c 7501     		.value	0x175
- 31582 5c1e 32       		.uleb128 0x32
- 31583 5c1f E90D0000 		.long	0xde9
- 31584 5c23 03       		.byte	0x3
- 31585 5c24 91       		.byte	0x91
- 31586 5c25 A043     		.sleb128 -7776
- 31587 5c27 32       		.uleb128 0x32
- 31588 5c28 DD0D0000 		.long	0xddd
- 31589 5c2c 03       		.byte	0x3
- 31590 5c2d 91       		.byte	0x91
- 31591 5c2e B043     		.sleb128 -7760
- 31592 5c30 00       		.byte	0x0
- 31593 5c31 00       		.byte	0x0
- 31594 5c32 00       		.byte	0x0
- 31595 5c33 00       		.byte	0x0
- 31596 5c34 00       		.byte	0x0
- 31597 5c35 00       		.byte	0x0
- 31598 5c36 31       		.uleb128 0x31
- 31599 5c37 F60E0000 		.long	0xef6
- 31600 5c3b 00000000 		.quad	.LBB1988
- 31600      00000000 
- 31601 5c43 00000000 		.quad	.LBE1988
- 31601      00000000 
- 31602 5c4b 02       		.byte	0x2
- 31603 5c4c 0007     		.value	0x700
- 31604 5c4e 4B5E0000 		.long	0x5e4b
- 31605 5c52 32       		.uleb128 0x32
- 31606 5c53 080F0000 		.long	0xf08
- 31607 5c57 03       		.byte	0x3
- 31608 5c58 91       		.byte	0x91
- 31609 5c59 C043     		.sleb128 -7744
- 31610 5c5b 33       		.uleb128 0x33
- 31611 5c5c 00000000 		.quad	.LBB1989
- 31611      00000000 
- 31612 5c64 00000000 		.quad	.LBE1989
- 31612      00000000 
- 31613 5c6c 34       		.uleb128 0x34
- 31614 5c6d 140F0000 		.long	0xf14
- 31615 5c71 04       		.byte	0x4
- 31616 5c72 76       		.byte	0x76
- 31617 5c73 C0BA7F   		.sleb128 -8896
- 31618 5c76 31       		.uleb128 0x31
- 31619 5c77 210F0000 		.long	0xf21
- 31620 5c7b 00000000 		.quad	.LBB1990
-
GAS LISTING /tmp/ccjbMjHD.s 			page 846
-
-
- 31620      00000000 
- 31621 5c83 00000000 		.quad	.LBE1990
- 31621      00000000 
- 31622 5c8b 02       		.byte	0x2
- 31623 5c8c 1F06     		.value	0x61f
- 31624 5c8e 135D0000 		.long	0x5d13
- 31625 5c92 32       		.uleb128 0x32
- 31626 5c93 330F0000 		.long	0xf33
- 31627 5c97 03       		.byte	0x3
- 31628 5c98 91       		.byte	0x91
- 31629 5c99 D043     		.sleb128 -7728
- 31630 5c9b 33       		.uleb128 0x33
- 31631 5c9c 00000000 		.quad	.LBB1991
- 31631      00000000 
- 31632 5ca4 00000000 		.quad	.LBE1991
- 31632      00000000 
- 31633 5cac 34       		.uleb128 0x34
- 31634 5cad 3F0F0000 		.long	0xf3f
- 31635 5cb1 09       		.byte	0x9
- 31636 5cb2 03       		.byte	0x3
- 31637 5cb3 00000000 		.quad	mask.7943
- 31637      00000000 
- 31638 5cbb 35       		.uleb128 0x35
- 31639 5cbc A00D0000 		.long	0xda0
- 31640 5cc0 00000000 		.quad	.LBB1992
- 31640      00000000 
- 31641 5cc8 00000000 		.quad	.LBE1992
- 31641      00000000 
- 31642 5cd0 02       		.byte	0x2
- 31643 5cd1 FE04     		.value	0x4fe
- 31644 5cd3 32       		.uleb128 0x32
- 31645 5cd4 BE0D0000 		.long	0xdbe
- 31646 5cd8 03       		.byte	0x3
- 31647 5cd9 91       		.byte	0x91
- 31648 5cda E043     		.sleb128 -7712
- 31649 5cdc 32       		.uleb128 0x32
- 31650 5cdd B20D0000 		.long	0xdb2
- 31651 5ce1 03       		.byte	0x3
- 31652 5ce2 91       		.byte	0x91
- 31653 5ce3 F043     		.sleb128 -7696
- 31654 5ce5 35       		.uleb128 0x35
- 31655 5ce6 CB0D0000 		.long	0xdcb
- 31656 5cea 00000000 		.quad	.LBB1994
- 31656      00000000 
- 31657 5cf2 00000000 		.quad	.LBE1994
- 31657      00000000 
- 31658 5cfa 02       		.byte	0x2
- 31659 5cfb 7501     		.value	0x175
- 31660 5cfd 32       		.uleb128 0x32
- 31661 5cfe E90D0000 		.long	0xde9
- 31662 5d02 03       		.byte	0x3
- 31663 5d03 91       		.byte	0x91
- 31664 5d04 8044     		.sleb128 -7680
- 31665 5d06 32       		.uleb128 0x32
- 31666 5d07 DD0D0000 		.long	0xddd
- 31667 5d0b 03       		.byte	0x3
- 31668 5d0c 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 847
-
-
- 31669 5d0d 9044     		.sleb128 -7664
- 31670 5d0f 00       		.byte	0x0
- 31671 5d10 00       		.byte	0x0
- 31672 5d11 00       		.byte	0x0
- 31673 5d12 00       		.byte	0x0
- 31674 5d13 31       		.uleb128 0x31
- 31675 5d14 210F0000 		.long	0xf21
- 31676 5d18 00000000 		.quad	.LBB1996
- 31676      00000000 
- 31677 5d20 00000000 		.quad	.LBE1996
- 31677      00000000 
- 31678 5d28 02       		.byte	0x2
- 31679 5d29 2006     		.value	0x620
- 31680 5d2b B05D0000 		.long	0x5db0
- 31681 5d2f 32       		.uleb128 0x32
- 31682 5d30 330F0000 		.long	0xf33
- 31683 5d34 03       		.byte	0x3
- 31684 5d35 91       		.byte	0x91
- 31685 5d36 A044     		.sleb128 -7648
- 31686 5d38 33       		.uleb128 0x33
- 31687 5d39 00000000 		.quad	.LBB1997
- 31687      00000000 
- 31688 5d41 00000000 		.quad	.LBE1997
- 31688      00000000 
- 31689 5d49 34       		.uleb128 0x34
- 31690 5d4a 3F0F0000 		.long	0xf3f
- 31691 5d4e 09       		.byte	0x9
- 31692 5d4f 03       		.byte	0x3
- 31693 5d50 00000000 		.quad	mask.7943
- 31693      00000000 
- 31694 5d58 35       		.uleb128 0x35
- 31695 5d59 A00D0000 		.long	0xda0
- 31696 5d5d 00000000 		.quad	.LBB1998
- 31696      00000000 
- 31697 5d65 00000000 		.quad	.LBE1998
- 31697      00000000 
- 31698 5d6d 02       		.byte	0x2
- 31699 5d6e FE04     		.value	0x4fe
- 31700 5d70 32       		.uleb128 0x32
- 31701 5d71 BE0D0000 		.long	0xdbe
- 31702 5d75 03       		.byte	0x3
- 31703 5d76 91       		.byte	0x91
- 31704 5d77 B044     		.sleb128 -7632
- 31705 5d79 32       		.uleb128 0x32
- 31706 5d7a B20D0000 		.long	0xdb2
- 31707 5d7e 03       		.byte	0x3
- 31708 5d7f 91       		.byte	0x91
- 31709 5d80 C044     		.sleb128 -7616
- 31710 5d82 35       		.uleb128 0x35
- 31711 5d83 CB0D0000 		.long	0xdcb
- 31712 5d87 00000000 		.quad	.LBB2000
- 31712      00000000 
- 31713 5d8f 00000000 		.quad	.LBE2000
- 31713      00000000 
- 31714 5d97 02       		.byte	0x2
- 31715 5d98 7501     		.value	0x175
- 31716 5d9a 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 848
-
-
- 31717 5d9b E90D0000 		.long	0xde9
- 31718 5d9f 03       		.byte	0x3
- 31719 5da0 91       		.byte	0x91
- 31720 5da1 D044     		.sleb128 -7600
- 31721 5da3 32       		.uleb128 0x32
- 31722 5da4 DD0D0000 		.long	0xddd
- 31723 5da8 03       		.byte	0x3
- 31724 5da9 91       		.byte	0x91
- 31725 5daa E044     		.sleb128 -7584
- 31726 5dac 00       		.byte	0x0
- 31727 5dad 00       		.byte	0x0
- 31728 5dae 00       		.byte	0x0
- 31729 5daf 00       		.byte	0x0
- 31730 5db0 35       		.uleb128 0x35
- 31731 5db1 210F0000 		.long	0xf21
- 31732 5db5 00000000 		.quad	.LBB2002
- 31732      00000000 
- 31733 5dbd 00000000 		.quad	.LBE2002
- 31733      00000000 
- 31734 5dc5 02       		.byte	0x2
- 31735 5dc6 2106     		.value	0x621
- 31736 5dc8 32       		.uleb128 0x32
- 31737 5dc9 330F0000 		.long	0xf33
- 31738 5dcd 03       		.byte	0x3
- 31739 5dce 91       		.byte	0x91
- 31740 5dcf F044     		.sleb128 -7568
- 31741 5dd1 33       		.uleb128 0x33
- 31742 5dd2 00000000 		.quad	.LBB2003
- 31742      00000000 
- 31743 5dda 00000000 		.quad	.LBE2003
- 31743      00000000 
- 31744 5de2 34       		.uleb128 0x34
- 31745 5de3 3F0F0000 		.long	0xf3f
- 31746 5de7 09       		.byte	0x9
- 31747 5de8 03       		.byte	0x3
- 31748 5de9 00000000 		.quad	mask.7943
- 31748      00000000 
- 31749 5df1 35       		.uleb128 0x35
- 31750 5df2 A00D0000 		.long	0xda0
- 31751 5df6 00000000 		.quad	.LBB2004
- 31751      00000000 
- 31752 5dfe 00000000 		.quad	.LBE2004
- 31752      00000000 
- 31753 5e06 02       		.byte	0x2
- 31754 5e07 FE04     		.value	0x4fe
- 31755 5e09 32       		.uleb128 0x32
- 31756 5e0a BE0D0000 		.long	0xdbe
- 31757 5e0e 03       		.byte	0x3
- 31758 5e0f 91       		.byte	0x91
- 31759 5e10 8045     		.sleb128 -7552
- 31760 5e12 32       		.uleb128 0x32
- 31761 5e13 B20D0000 		.long	0xdb2
- 31762 5e17 03       		.byte	0x3
- 31763 5e18 91       		.byte	0x91
- 31764 5e19 9045     		.sleb128 -7536
- 31765 5e1b 35       		.uleb128 0x35
- 31766 5e1c CB0D0000 		.long	0xdcb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 849
-
-
- 31767 5e20 00000000 		.quad	.LBB2006
- 31767      00000000 
- 31768 5e28 00000000 		.quad	.LBE2006
- 31768      00000000 
- 31769 5e30 02       		.byte	0x2
- 31770 5e31 7501     		.value	0x175
- 31771 5e33 32       		.uleb128 0x32
- 31772 5e34 E90D0000 		.long	0xde9
- 31773 5e38 03       		.byte	0x3
- 31774 5e39 91       		.byte	0x91
- 31775 5e3a A045     		.sleb128 -7520
- 31776 5e3c 32       		.uleb128 0x32
- 31777 5e3d DD0D0000 		.long	0xddd
- 31778 5e41 03       		.byte	0x3
- 31779 5e42 91       		.byte	0x91
- 31780 5e43 B045     		.sleb128 -7504
- 31781 5e45 00       		.byte	0x0
- 31782 5e46 00       		.byte	0x0
- 31783 5e47 00       		.byte	0x0
- 31784 5e48 00       		.byte	0x0
- 31785 5e49 00       		.byte	0x0
- 31786 5e4a 00       		.byte	0x0
- 31787 5e4b 31       		.uleb128 0x31
- 31788 5e4c AC0E0000 		.long	0xeac
- 31789 5e50 00000000 		.quad	.LBB2008
- 31789      00000000 
- 31790 5e58 00000000 		.quad	.LBE2008
- 31790      00000000 
- 31791 5e60 02       		.byte	0x2
- 31792 5e61 0107     		.value	0x701
- 31793 5e63 9C5E0000 		.long	0x5e9c
- 31794 5e67 32       		.uleb128 0x32
- 31795 5e68 BE0E0000 		.long	0xebe
- 31796 5e6c 03       		.byte	0x3
- 31797 5e6d 91       		.byte	0x91
- 31798 5e6e C045     		.sleb128 -7488
- 31799 5e70 35       		.uleb128 0x35
- 31800 5e71 CB0E0000 		.long	0xecb
- 31801 5e75 00000000 		.quad	.LBB2010
- 31801      00000000 
- 31802 5e7d 00000000 		.quad	.LBE2010
- 31802      00000000 
- 31803 5e85 02       		.byte	0x2
- 31804 5e86 4905     		.value	0x549
- 31805 5e88 32       		.uleb128 0x32
- 31806 5e89 E90E0000 		.long	0xee9
- 31807 5e8d 03       		.byte	0x3
- 31808 5e8e 91       		.byte	0x91
- 31809 5e8f DC45     		.sleb128 -7460
- 31810 5e91 32       		.uleb128 0x32
- 31811 5e92 DD0E0000 		.long	0xedd
- 31812 5e96 03       		.byte	0x3
- 31813 5e97 91       		.byte	0x91
- 31814 5e98 E045     		.sleb128 -7456
- 31815 5e9a 00       		.byte	0x0
- 31816 5e9b 00       		.byte	0x0
- 31817 5e9c 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 850
-
-
- 31818 5e9d 0F570000 		.long	0x570f
- 31819 5ea1 00000000 		.quad	.LBB2012
- 31819      00000000 
- 31820 5ea9 00000000 		.quad	.LBE2012
- 31820      00000000 
- 31821 5eb1 02       		.byte	0x2
- 31822 5eb2 0307     		.value	0x703
- 31823 5eb4 FF5E0000 		.long	0x5eff
- 31824 5eb8 32       		.uleb128 0x32
- 31825 5eb9 2B570000 		.long	0x572b
- 31826 5ebd 03       		.byte	0x3
- 31827 5ebe 91       		.byte	0x91
- 31828 5ebf F045     		.sleb128 -7440
- 31829 5ec1 32       		.uleb128 0x32
- 31830 5ec2 21570000 		.long	0x5721
- 31831 5ec6 03       		.byte	0x3
- 31832 5ec7 91       		.byte	0x91
- 31833 5ec8 8046     		.sleb128 -7424
- 31834 5eca 35       		.uleb128 0x35
- 31835 5ecb 36570000 		.long	0x5736
- 31836 5ecf 00000000 		.quad	.LBB2014
- 31836      00000000 
- 31837 5ed7 00000000 		.quad	.LBE2014
- 31837      00000000 
- 31838 5edf 02       		.byte	0x2
- 31839 5ee0 BA05     		.value	0x5ba
- 31840 5ee2 32       		.uleb128 0x32
- 31841 5ee3 60570000 		.long	0x5760
- 31842 5ee7 03       		.byte	0x3
- 31843 5ee8 91       		.byte	0x91
- 31844 5ee9 9C46     		.sleb128 -7396
- 31845 5eeb 32       		.uleb128 0x32
- 31846 5eec 54570000 		.long	0x5754
- 31847 5ef0 03       		.byte	0x3
- 31848 5ef1 91       		.byte	0x91
- 31849 5ef2 A046     		.sleb128 -7392
- 31850 5ef4 32       		.uleb128 0x32
- 31851 5ef5 48570000 		.long	0x5748
- 31852 5ef9 03       		.byte	0x3
- 31853 5efa 91       		.byte	0x91
- 31854 5efb B046     		.sleb128 -7376
- 31855 5efd 00       		.byte	0x0
- 31856 5efe 00       		.byte	0x0
- 31857 5eff 31       		.uleb128 0x31
- 31858 5f00 6D570000 		.long	0x576d
- 31859 5f04 00000000 		.quad	.LBB2016
- 31859      00000000 
- 31860 5f0c 00000000 		.quad	.LBE2016
- 31860      00000000 
- 31861 5f14 02       		.byte	0x2
- 31862 5f15 0607     		.value	0x706
- 31863 5f17 625F0000 		.long	0x5f62
- 31864 5f1b 32       		.uleb128 0x32
- 31865 5f1c 89570000 		.long	0x5789
- 31866 5f20 03       		.byte	0x3
- 31867 5f21 91       		.byte	0x91
- 31868 5f22 C046     		.sleb128 -7360
-
GAS LISTING /tmp/ccjbMjHD.s 			page 851
-
-
- 31869 5f24 32       		.uleb128 0x32
- 31870 5f25 7F570000 		.long	0x577f
- 31871 5f29 03       		.byte	0x3
- 31872 5f2a 91       		.byte	0x91
- 31873 5f2b D046     		.sleb128 -7344
- 31874 5f2d 35       		.uleb128 0x35
- 31875 5f2e 36570000 		.long	0x5736
- 31876 5f32 00000000 		.quad	.LBB2018
- 31876      00000000 
- 31877 5f3a 00000000 		.quad	.LBE2018
- 31877      00000000 
- 31878 5f42 02       		.byte	0x2
- 31879 5f43 DA05     		.value	0x5da
- 31880 5f45 32       		.uleb128 0x32
- 31881 5f46 60570000 		.long	0x5760
- 31882 5f4a 03       		.byte	0x3
- 31883 5f4b 91       		.byte	0x91
- 31884 5f4c EC46     		.sleb128 -7316
- 31885 5f4e 32       		.uleb128 0x32
- 31886 5f4f 54570000 		.long	0x5754
- 31887 5f53 03       		.byte	0x3
- 31888 5f54 91       		.byte	0x91
- 31889 5f55 F046     		.sleb128 -7312
- 31890 5f57 32       		.uleb128 0x32
- 31891 5f58 48570000 		.long	0x5748
- 31892 5f5c 03       		.byte	0x3
- 31893 5f5d 91       		.byte	0x91
- 31894 5f5e 8047     		.sleb128 -7296
- 31895 5f60 00       		.byte	0x0
- 31896 5f61 00       		.byte	0x0
- 31897 5f62 31       		.uleb128 0x31
- 31898 5f63 F60E0000 		.long	0xef6
- 31899 5f67 00000000 		.quad	.LBB2020
- 31899      00000000 
- 31900 5f6f 00000000 		.quad	.LBE2020
- 31900      00000000 
- 31901 5f77 02       		.byte	0x2
- 31902 5f78 0A07     		.value	0x70a
- 31903 5f7a 77610000 		.long	0x6177
- 31904 5f7e 32       		.uleb128 0x32
- 31905 5f7f 080F0000 		.long	0xf08
- 31906 5f83 03       		.byte	0x3
- 31907 5f84 91       		.byte	0x91
- 31908 5f85 9047     		.sleb128 -7280
- 31909 5f87 33       		.uleb128 0x33
- 31910 5f88 00000000 		.quad	.LBB2021
- 31910      00000000 
- 31911 5f90 00000000 		.quad	.LBE2021
- 31911      00000000 
- 31912 5f98 34       		.uleb128 0x34
- 31913 5f99 140F0000 		.long	0xf14
- 31914 5f9d 04       		.byte	0x4
- 31915 5f9e 76       		.byte	0x76
- 31916 5f9f D0BA7F   		.sleb128 -8880
- 31917 5fa2 31       		.uleb128 0x31
- 31918 5fa3 210F0000 		.long	0xf21
- 31919 5fa7 00000000 		.quad	.LBB2022
-
GAS LISTING /tmp/ccjbMjHD.s 			page 852
-
-
- 31919      00000000 
- 31920 5faf 00000000 		.quad	.LBE2022
- 31920      00000000 
- 31921 5fb7 02       		.byte	0x2
- 31922 5fb8 1F06     		.value	0x61f
- 31923 5fba 3F600000 		.long	0x603f
- 31924 5fbe 32       		.uleb128 0x32
- 31925 5fbf 330F0000 		.long	0xf33
- 31926 5fc3 03       		.byte	0x3
- 31927 5fc4 91       		.byte	0x91
- 31928 5fc5 A047     		.sleb128 -7264
- 31929 5fc7 33       		.uleb128 0x33
- 31930 5fc8 00000000 		.quad	.LBB2023
- 31930      00000000 
- 31931 5fd0 00000000 		.quad	.LBE2023
- 31931      00000000 
- 31932 5fd8 34       		.uleb128 0x34
- 31933 5fd9 3F0F0000 		.long	0xf3f
- 31934 5fdd 09       		.byte	0x9
- 31935 5fde 03       		.byte	0x3
- 31936 5fdf 00000000 		.quad	mask.7943
- 31936      00000000 
- 31937 5fe7 35       		.uleb128 0x35
- 31938 5fe8 A00D0000 		.long	0xda0
- 31939 5fec 00000000 		.quad	.LBB2024
- 31939      00000000 
- 31940 5ff4 00000000 		.quad	.LBE2024
- 31940      00000000 
- 31941 5ffc 02       		.byte	0x2
- 31942 5ffd FE04     		.value	0x4fe
- 31943 5fff 32       		.uleb128 0x32
- 31944 6000 BE0D0000 		.long	0xdbe
- 31945 6004 03       		.byte	0x3
- 31946 6005 91       		.byte	0x91
- 31947 6006 B047     		.sleb128 -7248
- 31948 6008 32       		.uleb128 0x32
- 31949 6009 B20D0000 		.long	0xdb2
- 31950 600d 03       		.byte	0x3
- 31951 600e 91       		.byte	0x91
- 31952 600f C047     		.sleb128 -7232
- 31953 6011 35       		.uleb128 0x35
- 31954 6012 CB0D0000 		.long	0xdcb
- 31955 6016 00000000 		.quad	.LBB2026
- 31955      00000000 
- 31956 601e 00000000 		.quad	.LBE2026
- 31956      00000000 
- 31957 6026 02       		.byte	0x2
- 31958 6027 7501     		.value	0x175
- 31959 6029 32       		.uleb128 0x32
- 31960 602a E90D0000 		.long	0xde9
- 31961 602e 03       		.byte	0x3
- 31962 602f 91       		.byte	0x91
- 31963 6030 D047     		.sleb128 -7216
- 31964 6032 32       		.uleb128 0x32
- 31965 6033 DD0D0000 		.long	0xddd
- 31966 6037 03       		.byte	0x3
- 31967 6038 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 853
-
-
- 31968 6039 E047     		.sleb128 -7200
- 31969 603b 00       		.byte	0x0
- 31970 603c 00       		.byte	0x0
- 31971 603d 00       		.byte	0x0
- 31972 603e 00       		.byte	0x0
- 31973 603f 31       		.uleb128 0x31
- 31974 6040 210F0000 		.long	0xf21
- 31975 6044 00000000 		.quad	.LBB2028
- 31975      00000000 
- 31976 604c 00000000 		.quad	.LBE2028
- 31976      00000000 
- 31977 6054 02       		.byte	0x2
- 31978 6055 2006     		.value	0x620
- 31979 6057 DC600000 		.long	0x60dc
- 31980 605b 32       		.uleb128 0x32
- 31981 605c 330F0000 		.long	0xf33
- 31982 6060 03       		.byte	0x3
- 31983 6061 91       		.byte	0x91
- 31984 6062 F047     		.sleb128 -7184
- 31985 6064 33       		.uleb128 0x33
- 31986 6065 00000000 		.quad	.LBB2029
- 31986      00000000 
- 31987 606d 00000000 		.quad	.LBE2029
- 31987      00000000 
- 31988 6075 34       		.uleb128 0x34
- 31989 6076 3F0F0000 		.long	0xf3f
- 31990 607a 09       		.byte	0x9
- 31991 607b 03       		.byte	0x3
- 31992 607c 00000000 		.quad	mask.7943
- 31992      00000000 
- 31993 6084 35       		.uleb128 0x35
- 31994 6085 A00D0000 		.long	0xda0
- 31995 6089 00000000 		.quad	.LBB2030
- 31995      00000000 
- 31996 6091 00000000 		.quad	.LBE2030
- 31996      00000000 
- 31997 6099 02       		.byte	0x2
- 31998 609a FE04     		.value	0x4fe
- 31999 609c 32       		.uleb128 0x32
- 32000 609d BE0D0000 		.long	0xdbe
- 32001 60a1 03       		.byte	0x3
- 32002 60a2 91       		.byte	0x91
- 32003 60a3 8048     		.sleb128 -7168
- 32004 60a5 32       		.uleb128 0x32
- 32005 60a6 B20D0000 		.long	0xdb2
- 32006 60aa 03       		.byte	0x3
- 32007 60ab 91       		.byte	0x91
- 32008 60ac 9048     		.sleb128 -7152
- 32009 60ae 35       		.uleb128 0x35
- 32010 60af CB0D0000 		.long	0xdcb
- 32011 60b3 00000000 		.quad	.LBB2032
- 32011      00000000 
- 32012 60bb 00000000 		.quad	.LBE2032
- 32012      00000000 
- 32013 60c3 02       		.byte	0x2
- 32014 60c4 7501     		.value	0x175
- 32015 60c6 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 854
-
-
- 32016 60c7 E90D0000 		.long	0xde9
- 32017 60cb 03       		.byte	0x3
- 32018 60cc 91       		.byte	0x91
- 32019 60cd A048     		.sleb128 -7136
- 32020 60cf 32       		.uleb128 0x32
- 32021 60d0 DD0D0000 		.long	0xddd
- 32022 60d4 03       		.byte	0x3
- 32023 60d5 91       		.byte	0x91
- 32024 60d6 B048     		.sleb128 -7120
- 32025 60d8 00       		.byte	0x0
- 32026 60d9 00       		.byte	0x0
- 32027 60da 00       		.byte	0x0
- 32028 60db 00       		.byte	0x0
- 32029 60dc 35       		.uleb128 0x35
- 32030 60dd 210F0000 		.long	0xf21
- 32031 60e1 00000000 		.quad	.LBB2034
- 32031      00000000 
- 32032 60e9 00000000 		.quad	.LBE2034
- 32032      00000000 
- 32033 60f1 02       		.byte	0x2
- 32034 60f2 2106     		.value	0x621
- 32035 60f4 32       		.uleb128 0x32
- 32036 60f5 330F0000 		.long	0xf33
- 32037 60f9 03       		.byte	0x3
- 32038 60fa 91       		.byte	0x91
- 32039 60fb C048     		.sleb128 -7104
- 32040 60fd 33       		.uleb128 0x33
- 32041 60fe 00000000 		.quad	.LBB2035
- 32041      00000000 
- 32042 6106 00000000 		.quad	.LBE2035
- 32042      00000000 
- 32043 610e 34       		.uleb128 0x34
- 32044 610f 3F0F0000 		.long	0xf3f
- 32045 6113 09       		.byte	0x9
- 32046 6114 03       		.byte	0x3
- 32047 6115 00000000 		.quad	mask.7943
- 32047      00000000 
- 32048 611d 35       		.uleb128 0x35
- 32049 611e A00D0000 		.long	0xda0
- 32050 6122 00000000 		.quad	.LBB2036
- 32050      00000000 
- 32051 612a 00000000 		.quad	.LBE2036
- 32051      00000000 
- 32052 6132 02       		.byte	0x2
- 32053 6133 FE04     		.value	0x4fe
- 32054 6135 32       		.uleb128 0x32
- 32055 6136 BE0D0000 		.long	0xdbe
- 32056 613a 03       		.byte	0x3
- 32057 613b 91       		.byte	0x91
- 32058 613c D048     		.sleb128 -7088
- 32059 613e 32       		.uleb128 0x32
- 32060 613f B20D0000 		.long	0xdb2
- 32061 6143 03       		.byte	0x3
- 32062 6144 91       		.byte	0x91
- 32063 6145 E048     		.sleb128 -7072
- 32064 6147 35       		.uleb128 0x35
- 32065 6148 CB0D0000 		.long	0xdcb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 855
-
-
- 32066 614c 00000000 		.quad	.LBB2038
- 32066      00000000 
- 32067 6154 00000000 		.quad	.LBE2038
- 32067      00000000 
- 32068 615c 02       		.byte	0x2
- 32069 615d 7501     		.value	0x175
- 32070 615f 32       		.uleb128 0x32
- 32071 6160 E90D0000 		.long	0xde9
- 32072 6164 03       		.byte	0x3
- 32073 6165 91       		.byte	0x91
- 32074 6166 F048     		.sleb128 -7056
- 32075 6168 32       		.uleb128 0x32
- 32076 6169 DD0D0000 		.long	0xddd
- 32077 616d 03       		.byte	0x3
- 32078 616e 91       		.byte	0x91
- 32079 616f 8049     		.sleb128 -7040
- 32080 6171 00       		.byte	0x0
- 32081 6172 00       		.byte	0x0
- 32082 6173 00       		.byte	0x0
- 32083 6174 00       		.byte	0x0
- 32084 6175 00       		.byte	0x0
- 32085 6176 00       		.byte	0x0
- 32086 6177 31       		.uleb128 0x31
- 32087 6178 F60E0000 		.long	0xef6
- 32088 617c 00000000 		.quad	.LBB2040
- 32088      00000000 
- 32089 6184 00000000 		.quad	.LBE2040
- 32089      00000000 
- 32090 618c 02       		.byte	0x2
- 32091 618d 0B07     		.value	0x70b
- 32092 618f 8C630000 		.long	0x638c
- 32093 6193 32       		.uleb128 0x32
- 32094 6194 080F0000 		.long	0xf08
- 32095 6198 03       		.byte	0x3
- 32096 6199 91       		.byte	0x91
- 32097 619a 9049     		.sleb128 -7024
- 32098 619c 33       		.uleb128 0x33
- 32099 619d 00000000 		.quad	.LBB2041
- 32099      00000000 
- 32100 61a5 00000000 		.quad	.LBE2041
- 32100      00000000 
- 32101 61ad 34       		.uleb128 0x34
- 32102 61ae 140F0000 		.long	0xf14
- 32103 61b2 04       		.byte	0x4
- 32104 61b3 76       		.byte	0x76
- 32105 61b4 E0BA7F   		.sleb128 -8864
- 32106 61b7 31       		.uleb128 0x31
- 32107 61b8 210F0000 		.long	0xf21
- 32108 61bc 00000000 		.quad	.LBB2042
- 32108      00000000 
- 32109 61c4 00000000 		.quad	.LBE2042
- 32109      00000000 
- 32110 61cc 02       		.byte	0x2
- 32111 61cd 1F06     		.value	0x61f
- 32112 61cf 54620000 		.long	0x6254
- 32113 61d3 32       		.uleb128 0x32
- 32114 61d4 330F0000 		.long	0xf33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 856
-
-
- 32115 61d8 03       		.byte	0x3
- 32116 61d9 91       		.byte	0x91
- 32117 61da A049     		.sleb128 -7008
- 32118 61dc 33       		.uleb128 0x33
- 32119 61dd 00000000 		.quad	.LBB2043
- 32119      00000000 
- 32120 61e5 00000000 		.quad	.LBE2043
- 32120      00000000 
- 32121 61ed 34       		.uleb128 0x34
- 32122 61ee 3F0F0000 		.long	0xf3f
- 32123 61f2 09       		.byte	0x9
- 32124 61f3 03       		.byte	0x3
- 32125 61f4 00000000 		.quad	mask.7943
- 32125      00000000 
- 32126 61fc 35       		.uleb128 0x35
- 32127 61fd A00D0000 		.long	0xda0
- 32128 6201 00000000 		.quad	.LBB2044
- 32128      00000000 
- 32129 6209 00000000 		.quad	.LBE2044
- 32129      00000000 
- 32130 6211 02       		.byte	0x2
- 32131 6212 FE04     		.value	0x4fe
- 32132 6214 32       		.uleb128 0x32
- 32133 6215 BE0D0000 		.long	0xdbe
- 32134 6219 03       		.byte	0x3
- 32135 621a 91       		.byte	0x91
- 32136 621b B049     		.sleb128 -6992
- 32137 621d 32       		.uleb128 0x32
- 32138 621e B20D0000 		.long	0xdb2
- 32139 6222 03       		.byte	0x3
- 32140 6223 91       		.byte	0x91
- 32141 6224 C049     		.sleb128 -6976
- 32142 6226 35       		.uleb128 0x35
- 32143 6227 CB0D0000 		.long	0xdcb
- 32144 622b 00000000 		.quad	.LBB2046
- 32144      00000000 
- 32145 6233 00000000 		.quad	.LBE2046
- 32145      00000000 
- 32146 623b 02       		.byte	0x2
- 32147 623c 7501     		.value	0x175
- 32148 623e 32       		.uleb128 0x32
- 32149 623f E90D0000 		.long	0xde9
- 32150 6243 03       		.byte	0x3
- 32151 6244 91       		.byte	0x91
- 32152 6245 D049     		.sleb128 -6960
- 32153 6247 32       		.uleb128 0x32
- 32154 6248 DD0D0000 		.long	0xddd
- 32155 624c 03       		.byte	0x3
- 32156 624d 91       		.byte	0x91
- 32157 624e E049     		.sleb128 -6944
- 32158 6250 00       		.byte	0x0
- 32159 6251 00       		.byte	0x0
- 32160 6252 00       		.byte	0x0
- 32161 6253 00       		.byte	0x0
- 32162 6254 31       		.uleb128 0x31
- 32163 6255 210F0000 		.long	0xf21
- 32164 6259 00000000 		.quad	.LBB2048
-
GAS LISTING /tmp/ccjbMjHD.s 			page 857
-
-
- 32164      00000000 
- 32165 6261 00000000 		.quad	.LBE2048
- 32165      00000000 
- 32166 6269 02       		.byte	0x2
- 32167 626a 2006     		.value	0x620
- 32168 626c F1620000 		.long	0x62f1
- 32169 6270 32       		.uleb128 0x32
- 32170 6271 330F0000 		.long	0xf33
- 32171 6275 03       		.byte	0x3
- 32172 6276 91       		.byte	0x91
- 32173 6277 F049     		.sleb128 -6928
- 32174 6279 33       		.uleb128 0x33
- 32175 627a 00000000 		.quad	.LBB2049
- 32175      00000000 
- 32176 6282 00000000 		.quad	.LBE2049
- 32176      00000000 
- 32177 628a 34       		.uleb128 0x34
- 32178 628b 3F0F0000 		.long	0xf3f
- 32179 628f 09       		.byte	0x9
- 32180 6290 03       		.byte	0x3
- 32181 6291 00000000 		.quad	mask.7943
- 32181      00000000 
- 32182 6299 35       		.uleb128 0x35
- 32183 629a A00D0000 		.long	0xda0
- 32184 629e 00000000 		.quad	.LBB2050
- 32184      00000000 
- 32185 62a6 00000000 		.quad	.LBE2050
- 32185      00000000 
- 32186 62ae 02       		.byte	0x2
- 32187 62af FE04     		.value	0x4fe
- 32188 62b1 32       		.uleb128 0x32
- 32189 62b2 BE0D0000 		.long	0xdbe
- 32190 62b6 03       		.byte	0x3
- 32191 62b7 91       		.byte	0x91
- 32192 62b8 804A     		.sleb128 -6912
- 32193 62ba 32       		.uleb128 0x32
- 32194 62bb B20D0000 		.long	0xdb2
- 32195 62bf 03       		.byte	0x3
- 32196 62c0 91       		.byte	0x91
- 32197 62c1 904A     		.sleb128 -6896
- 32198 62c3 35       		.uleb128 0x35
- 32199 62c4 CB0D0000 		.long	0xdcb
- 32200 62c8 00000000 		.quad	.LBB2052
- 32200      00000000 
- 32201 62d0 00000000 		.quad	.LBE2052
- 32201      00000000 
- 32202 62d8 02       		.byte	0x2
- 32203 62d9 7501     		.value	0x175
- 32204 62db 32       		.uleb128 0x32
- 32205 62dc E90D0000 		.long	0xde9
- 32206 62e0 03       		.byte	0x3
- 32207 62e1 91       		.byte	0x91
- 32208 62e2 A04A     		.sleb128 -6880
- 32209 62e4 32       		.uleb128 0x32
- 32210 62e5 DD0D0000 		.long	0xddd
- 32211 62e9 03       		.byte	0x3
- 32212 62ea 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 858
-
-
- 32213 62eb B04A     		.sleb128 -6864
- 32214 62ed 00       		.byte	0x0
- 32215 62ee 00       		.byte	0x0
- 32216 62ef 00       		.byte	0x0
- 32217 62f0 00       		.byte	0x0
- 32218 62f1 35       		.uleb128 0x35
- 32219 62f2 210F0000 		.long	0xf21
- 32220 62f6 00000000 		.quad	.LBB2054
- 32220      00000000 
- 32221 62fe 00000000 		.quad	.LBE2054
- 32221      00000000 
- 32222 6306 02       		.byte	0x2
- 32223 6307 2106     		.value	0x621
- 32224 6309 32       		.uleb128 0x32
- 32225 630a 330F0000 		.long	0xf33
- 32226 630e 03       		.byte	0x3
- 32227 630f 91       		.byte	0x91
- 32228 6310 C04A     		.sleb128 -6848
- 32229 6312 33       		.uleb128 0x33
- 32230 6313 00000000 		.quad	.LBB2055
- 32230      00000000 
- 32231 631b 00000000 		.quad	.LBE2055
- 32231      00000000 
- 32232 6323 34       		.uleb128 0x34
- 32233 6324 3F0F0000 		.long	0xf3f
- 32234 6328 09       		.byte	0x9
- 32235 6329 03       		.byte	0x3
- 32236 632a 00000000 		.quad	mask.7943
- 32236      00000000 
- 32237 6332 35       		.uleb128 0x35
- 32238 6333 A00D0000 		.long	0xda0
- 32239 6337 00000000 		.quad	.LBB2056
- 32239      00000000 
- 32240 633f 00000000 		.quad	.LBE2056
- 32240      00000000 
- 32241 6347 02       		.byte	0x2
- 32242 6348 FE04     		.value	0x4fe
- 32243 634a 32       		.uleb128 0x32
- 32244 634b BE0D0000 		.long	0xdbe
- 32245 634f 03       		.byte	0x3
- 32246 6350 91       		.byte	0x91
- 32247 6351 D04A     		.sleb128 -6832
- 32248 6353 32       		.uleb128 0x32
- 32249 6354 B20D0000 		.long	0xdb2
- 32250 6358 03       		.byte	0x3
- 32251 6359 91       		.byte	0x91
- 32252 635a E04A     		.sleb128 -6816
- 32253 635c 35       		.uleb128 0x35
- 32254 635d CB0D0000 		.long	0xdcb
- 32255 6361 00000000 		.quad	.LBB2058
- 32255      00000000 
- 32256 6369 00000000 		.quad	.LBE2058
- 32256      00000000 
- 32257 6371 02       		.byte	0x2
- 32258 6372 7501     		.value	0x175
- 32259 6374 32       		.uleb128 0x32
- 32260 6375 E90D0000 		.long	0xde9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 859
-
-
- 32261 6379 03       		.byte	0x3
- 32262 637a 91       		.byte	0x91
- 32263 637b F04A     		.sleb128 -6800
- 32264 637d 32       		.uleb128 0x32
- 32265 637e DD0D0000 		.long	0xddd
- 32266 6382 03       		.byte	0x3
- 32267 6383 91       		.byte	0x91
- 32268 6384 804B     		.sleb128 -6784
- 32269 6386 00       		.byte	0x0
- 32270 6387 00       		.byte	0x0
- 32271 6388 00       		.byte	0x0
- 32272 6389 00       		.byte	0x0
- 32273 638a 00       		.byte	0x0
- 32274 638b 00       		.byte	0x0
- 32275 638c 31       		.uleb128 0x31
- 32276 638d D50B0000 		.long	0xbd5
- 32277 6391 00000000 		.quad	.LBB2060
- 32277      00000000 
- 32278 6399 00000000 		.quad	.LBE2060
- 32278      00000000 
- 32279 63a1 02       		.byte	0x2
- 32280 63a2 0C07     		.value	0x70c
- 32281 63a4 6F680000 		.long	0x686f
- 32282 63a8 32       		.uleb128 0x32
- 32283 63a9 F30B0000 		.long	0xbf3
- 32284 63ad 03       		.byte	0x3
- 32285 63ae 91       		.byte	0x91
- 32286 63af 9C4B     		.sleb128 -6756
- 32287 63b1 32       		.uleb128 0x32
- 32288 63b2 E70B0000 		.long	0xbe7
- 32289 63b6 03       		.byte	0x3
- 32290 63b7 91       		.byte	0x91
- 32291 63b8 A04B     		.sleb128 -6752
- 32292 63ba 33       		.uleb128 0x33
- 32293 63bb 00000000 		.quad	.LBB2061
- 32293      00000000 
- 32294 63c3 00000000 		.quad	.LBE2061
- 32294      00000000 
- 32295 63cb 34       		.uleb128 0x34
- 32296 63cc FF0B0000 		.long	0xbff
- 32297 63d0 04       		.byte	0x4
- 32298 63d1 76       		.byte	0x76
- 32299 63d2 80BB7F   		.sleb128 -8832
- 32300 63d5 34       		.uleb128 0x34
- 32301 63d6 0B0C0000 		.long	0xc0b
- 32302 63da 04       		.byte	0x4
- 32303 63db 76       		.byte	0x76
- 32304 63dc F0BA7F   		.sleb128 -8848
- 32305 63df 31       		.uleb128 0x31
- 32306 63e0 540C0000 		.long	0xc54
- 32307 63e4 00000000 		.quad	.LBB2062
- 32307      00000000 
- 32308 63ec 00000000 		.quad	.LBE2062
- 32308      00000000 
- 32309 63f4 02       		.byte	0x2
- 32310 63f5 9106     		.value	0x691
- 32311 63f7 4B640000 		.long	0x644b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 860
-
-
- 32312 63fb 32       		.uleb128 0x32
- 32313 63fc 7E0C0000 		.long	0xc7e
- 32314 6400 03       		.byte	0x3
- 32315 6401 91       		.byte	0x91
- 32316 6402 B84B     		.sleb128 -6728
- 32317 6404 32       		.uleb128 0x32
- 32318 6405 720C0000 		.long	0xc72
- 32319 6409 03       		.byte	0x3
- 32320 640a 91       		.byte	0x91
- 32321 640b BC4B     		.sleb128 -6724
- 32322 640d 32       		.uleb128 0x32
- 32323 640e 660C0000 		.long	0xc66
- 32324 6412 03       		.byte	0x3
- 32325 6413 91       		.byte	0x91
- 32326 6414 C04B     		.sleb128 -6720
- 32327 6416 35       		.uleb128 0x35
- 32328 6417 8B0C0000 		.long	0xc8b
- 32329 641b 00000000 		.quad	.LBB2064
- 32329      00000000 
- 32330 6423 00000000 		.quad	.LBE2064
- 32330      00000000 
- 32331 642b 02       		.byte	0x2
- 32332 642c 0702     		.value	0x207
- 32333 642e 32       		.uleb128 0x32
- 32334 642f B40C0000 		.long	0xcb4
- 32335 6433 03       		.byte	0x3
- 32336 6434 91       		.byte	0x91
- 32337 6435 D84B     		.sleb128 -6696
- 32338 6437 32       		.uleb128 0x32
- 32339 6438 A90C0000 		.long	0xca9
- 32340 643c 03       		.byte	0x3
- 32341 643d 91       		.byte	0x91
- 32342 643e DC4B     		.sleb128 -6692
- 32343 6440 32       		.uleb128 0x32
- 32344 6441 9D0C0000 		.long	0xc9d
- 32345 6445 03       		.byte	0x3
- 32346 6446 91       		.byte	0x91
- 32347 6447 E04B     		.sleb128 -6688
- 32348 6449 00       		.byte	0x0
- 32349 644a 00       		.byte	0x0
- 32350 644b 31       		.uleb128 0x31
- 32351 644c C10C0000 		.long	0xcc1
- 32352 6450 00000000 		.quad	.LBB2066
- 32352      00000000 
- 32353 6458 00000000 		.quad	.LBE2066
- 32353      00000000 
- 32354 6460 02       		.byte	0x2
- 32355 6461 9206     		.value	0x692
- 32356 6463 D4660000 		.long	0x66d4
- 32357 6467 32       		.uleb128 0x32
- 32358 6468 D30C0000 		.long	0xcd3
- 32359 646c 03       		.byte	0x3
- 32360 646d 91       		.byte	0x91
- 32361 646e F04B     		.sleb128 -6672
- 32362 6470 35       		.uleb128 0x35
- 32363 6471 E00C0000 		.long	0xce0
- 32364 6475 00000000 		.quad	.LBB2068
-
GAS LISTING /tmp/ccjbMjHD.s 			page 861
-
-
- 32364      00000000 
- 32365 647d 00000000 		.quad	.LBE2068
- 32365      00000000 
- 32366 6485 02       		.byte	0x2
- 32367 6486 7D03     		.value	0x37d
- 32368 6488 32       		.uleb128 0x32
- 32369 6489 FE0C0000 		.long	0xcfe
- 32370 648d 03       		.byte	0x3
- 32371 648e 91       		.byte	0x91
- 32372 648f 884C     		.sleb128 -6648
- 32373 6491 32       		.uleb128 0x32
- 32374 6492 F20C0000 		.long	0xcf2
- 32375 6496 03       		.byte	0x3
- 32376 6497 91       		.byte	0x91
- 32377 6498 904C     		.sleb128 -6640
- 32378 649a 33       		.uleb128 0x33
- 32379 649b 00000000 		.quad	.LBB2069
- 32379      00000000 
- 32380 64a3 00000000 		.quad	.LBE2069
- 32380      00000000 
- 32381 64ab 34       		.uleb128 0x34
- 32382 64ac 0A0D0000 		.long	0xd0a
- 32383 64b0 03       		.byte	0x3
- 32384 64b1 91       		.byte	0x91
- 32385 64b2 E04C     		.sleb128 -6560
- 32386 64b4 34       		.uleb128 0x34
- 32387 64b5 150D0000 		.long	0xd15
- 32388 64b9 03       		.byte	0x3
- 32389 64ba 91       		.byte	0x91
- 32390 64bb D04C     		.sleb128 -6576
- 32391 64bd 34       		.uleb128 0x34
- 32392 64be 200D0000 		.long	0xd20
- 32393 64c2 03       		.byte	0x3
- 32394 64c3 91       		.byte	0x91
- 32395 64c4 C04C     		.sleb128 -6592
- 32396 64c6 34       		.uleb128 0x34
- 32397 64c7 2C0D0000 		.long	0xd2c
- 32398 64cb 03       		.byte	0x3
- 32399 64cc 91       		.byte	0x91
- 32400 64cd B04C     		.sleb128 -6608
- 32401 64cf 34       		.uleb128 0x34
- 32402 64d0 380D0000 		.long	0xd38
- 32403 64d4 03       		.byte	0x3
- 32404 64d5 91       		.byte	0x91
- 32405 64d6 AC4C     		.sleb128 -6612
- 32406 64d8 31       		.uleb128 0x31
- 32407 64d9 4F0D0000 		.long	0xd4f
- 32408 64dd 00000000 		.quad	.LBB2070
- 32408      00000000 
- 32409 64e5 00000000 		.quad	.LBE2070
- 32409      00000000 
- 32410 64ed 02       		.byte	0x2
- 32411 64ee 5603     		.value	0x356
- 32412 64f0 07650000 		.long	0x6507
- 32413 64f4 32       		.uleb128 0x32
- 32414 64f5 6A0D0000 		.long	0xd6a
- 32415 64f9 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 862
-
-
- 32416 64fa 91       		.byte	0x91
- 32417 64fb F04C     		.sleb128 -6544
- 32418 64fd 32       		.uleb128 0x32
- 32419 64fe 600D0000 		.long	0xd60
- 32420 6502 03       		.byte	0x3
- 32421 6503 91       		.byte	0x91
- 32422 6504 804D     		.sleb128 -6528
- 32423 6506 00       		.byte	0x0
- 32424 6507 31       		.uleb128 0x31
- 32425 6508 750D0000 		.long	0xd75
- 32426 650c 00000000 		.quad	.LBB2072
- 32426      00000000 
- 32427 6514 00000000 		.quad	.LBE2072
- 32427      00000000 
- 32428 651c 02       		.byte	0x2
- 32429 651d 5903     		.value	0x359
- 32430 651f 36650000 		.long	0x6536
- 32431 6523 32       		.uleb128 0x32
- 32432 6524 930D0000 		.long	0xd93
- 32433 6528 03       		.byte	0x3
- 32434 6529 91       		.byte	0x91
- 32435 652a 9C4D     		.sleb128 -6500
- 32436 652c 32       		.uleb128 0x32
- 32437 652d 870D0000 		.long	0xd87
- 32438 6531 03       		.byte	0x3
- 32439 6532 91       		.byte	0x91
- 32440 6533 A04D     		.sleb128 -6496
- 32441 6535 00       		.byte	0x0
- 32442 6536 31       		.uleb128 0x31
- 32443 6537 4F0D0000 		.long	0xd4f
- 32444 653b 00000000 		.quad	.LBB2074
- 32444      00000000 
- 32445 6543 00000000 		.quad	.LBE2074
- 32445      00000000 
- 32446 654b 02       		.byte	0x2
- 32447 654c 5B03     		.value	0x35b
- 32448 654e 65650000 		.long	0x6565
- 32449 6552 32       		.uleb128 0x32
- 32450 6553 6A0D0000 		.long	0xd6a
- 32451 6557 03       		.byte	0x3
- 32452 6558 91       		.byte	0x91
- 32453 6559 B04D     		.sleb128 -6480
- 32454 655b 32       		.uleb128 0x32
- 32455 655c 600D0000 		.long	0xd60
- 32456 6560 03       		.byte	0x3
- 32457 6561 91       		.byte	0x91
- 32458 6562 C04D     		.sleb128 -6464
- 32459 6564 00       		.byte	0x0
- 32460 6565 31       		.uleb128 0x31
- 32461 6566 A00D0000 		.long	0xda0
- 32462 656a 00000000 		.quad	.LBB2076
- 32462      00000000 
- 32463 6572 00000000 		.quad	.LBE2076
- 32463      00000000 
- 32464 657a 02       		.byte	0x2
- 32465 657b 6403     		.value	0x364
- 32466 657d BF650000 		.long	0x65bf
-
GAS LISTING /tmp/ccjbMjHD.s 			page 863
-
-
- 32467 6581 32       		.uleb128 0x32
- 32468 6582 BE0D0000 		.long	0xdbe
- 32469 6586 03       		.byte	0x3
- 32470 6587 91       		.byte	0x91
- 32471 6588 D04D     		.sleb128 -6448
- 32472 658a 32       		.uleb128 0x32
- 32473 658b B20D0000 		.long	0xdb2
- 32474 658f 03       		.byte	0x3
- 32475 6590 91       		.byte	0x91
- 32476 6591 E04D     		.sleb128 -6432
- 32477 6593 35       		.uleb128 0x35
- 32478 6594 CB0D0000 		.long	0xdcb
- 32479 6598 00000000 		.quad	.LBB2078
- 32479      00000000 
- 32480 65a0 00000000 		.quad	.LBE2078
- 32480      00000000 
- 32481 65a8 02       		.byte	0x2
- 32482 65a9 7501     		.value	0x175
- 32483 65ab 32       		.uleb128 0x32
- 32484 65ac E90D0000 		.long	0xde9
- 32485 65b0 03       		.byte	0x3
- 32486 65b1 91       		.byte	0x91
- 32487 65b2 F04D     		.sleb128 -6416
- 32488 65b4 32       		.uleb128 0x32
- 32489 65b5 DD0D0000 		.long	0xddd
- 32490 65b9 03       		.byte	0x3
- 32491 65ba 91       		.byte	0x91
- 32492 65bb 804E     		.sleb128 -6400
- 32493 65bd 00       		.byte	0x0
- 32494 65be 00       		.byte	0x0
- 32495 65bf 31       		.uleb128 0x31
- 32496 65c0 FB0D0000 		.long	0xdfb
- 32497 65c4 00000000 		.quad	.LBB2080
- 32497      00000000 
- 32498 65cc 00000000 		.quad	.LBE2080
- 32498      00000000 
- 32499 65d4 02       		.byte	0x2
- 32500 65d5 6603     		.value	0x366
- 32501 65d7 EE650000 		.long	0x65ee
- 32502 65db 32       		.uleb128 0x32
- 32503 65dc 160E0000 		.long	0xe16
- 32504 65e0 03       		.byte	0x3
- 32505 65e1 91       		.byte	0x91
- 32506 65e2 904E     		.sleb128 -6384
- 32507 65e4 32       		.uleb128 0x32
- 32508 65e5 0C0E0000 		.long	0xe0c
- 32509 65e9 03       		.byte	0x3
- 32510 65ea 91       		.byte	0x91
- 32511 65eb A04E     		.sleb128 -6368
- 32512 65ed 00       		.byte	0x0
- 32513 65ee 31       		.uleb128 0x31
- 32514 65ef A00D0000 		.long	0xda0
- 32515 65f3 00000000 		.quad	.LBB2082
- 32515      00000000 
- 32516 65fb 00000000 		.quad	.LBE2082
- 32516      00000000 
- 32517 6603 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 864
-
-
- 32518 6604 6803     		.value	0x368
- 32519 6606 48660000 		.long	0x6648
- 32520 660a 32       		.uleb128 0x32
- 32521 660b BE0D0000 		.long	0xdbe
- 32522 660f 03       		.byte	0x3
- 32523 6610 91       		.byte	0x91
- 32524 6611 B04E     		.sleb128 -6352
- 32525 6613 32       		.uleb128 0x32
- 32526 6614 B20D0000 		.long	0xdb2
- 32527 6618 03       		.byte	0x3
- 32528 6619 91       		.byte	0x91
- 32529 661a C04E     		.sleb128 -6336
- 32530 661c 35       		.uleb128 0x35
- 32531 661d CB0D0000 		.long	0xdcb
- 32532 6621 00000000 		.quad	.LBB2084
- 32532      00000000 
- 32533 6629 00000000 		.quad	.LBE2084
- 32533      00000000 
- 32534 6631 02       		.byte	0x2
- 32535 6632 7501     		.value	0x175
- 32536 6634 32       		.uleb128 0x32
- 32537 6635 E90D0000 		.long	0xde9
- 32538 6639 03       		.byte	0x3
- 32539 663a 91       		.byte	0x91
- 32540 663b D04E     		.sleb128 -6320
- 32541 663d 32       		.uleb128 0x32
- 32542 663e DD0D0000 		.long	0xddd
- 32543 6642 03       		.byte	0x3
- 32544 6643 91       		.byte	0x91
- 32545 6644 E04E     		.sleb128 -6304
- 32546 6646 00       		.byte	0x0
- 32547 6647 00       		.byte	0x0
- 32548 6648 31       		.uleb128 0x31
- 32549 6649 FB0D0000 		.long	0xdfb
- 32550 664d 00000000 		.quad	.LBB2086
- 32550      00000000 
- 32551 6655 00000000 		.quad	.LBE2086
- 32551      00000000 
- 32552 665d 02       		.byte	0x2
- 32553 665e 6A03     		.value	0x36a
- 32554 6660 77660000 		.long	0x6677
- 32555 6664 32       		.uleb128 0x32
- 32556 6665 160E0000 		.long	0xe16
- 32557 6669 03       		.byte	0x3
- 32558 666a 91       		.byte	0x91
- 32559 666b F04E     		.sleb128 -6288
- 32560 666d 32       		.uleb128 0x32
- 32561 666e 0C0E0000 		.long	0xe0c
- 32562 6672 03       		.byte	0x3
- 32563 6673 91       		.byte	0x91
- 32564 6674 804F     		.sleb128 -6272
- 32565 6676 00       		.byte	0x0
- 32566 6677 31       		.uleb128 0x31
- 32567 6678 210E0000 		.long	0xe21
- 32568 667c 00000000 		.quad	.LBB2088
- 32568      00000000 
- 32569 6684 00000000 		.quad	.LBE2088
-
GAS LISTING /tmp/ccjbMjHD.s 			page 865
-
-
- 32569      00000000 
- 32570 668c 02       		.byte	0x2
- 32571 668d 6C03     		.value	0x36c
- 32572 668f A6660000 		.long	0x66a6
- 32573 6693 32       		.uleb128 0x32
- 32574 6694 3E0E0000 		.long	0xe3e
- 32575 6698 03       		.byte	0x3
- 32576 6699 91       		.byte	0x91
- 32577 669a 904F     		.sleb128 -6256
- 32578 669c 32       		.uleb128 0x32
- 32579 669d 330E0000 		.long	0xe33
- 32580 66a1 03       		.byte	0x3
- 32581 66a2 91       		.byte	0x91
- 32582 66a3 A04F     		.sleb128 -6240
- 32583 66a5 00       		.byte	0x0
- 32584 66a6 35       		.uleb128 0x35
- 32585 66a7 4F0D0000 		.long	0xd4f
- 32586 66ab 00000000 		.quad	.LBB2090
- 32586      00000000 
- 32587 66b3 00000000 		.quad	.LBE2090
- 32587      00000000 
- 32588 66bb 02       		.byte	0x2
- 32589 66bc 6E03     		.value	0x36e
- 32590 66be 32       		.uleb128 0x32
- 32591 66bf 6A0D0000 		.long	0xd6a
- 32592 66c3 03       		.byte	0x3
- 32593 66c4 91       		.byte	0x91
- 32594 66c5 B04F     		.sleb128 -6224
- 32595 66c7 32       		.uleb128 0x32
- 32596 66c8 600D0000 		.long	0xd60
- 32597 66cc 03       		.byte	0x3
- 32598 66cd 91       		.byte	0x91
- 32599 66ce C04F     		.sleb128 -6208
- 32600 66d0 00       		.byte	0x0
- 32601 66d1 00       		.byte	0x0
- 32602 66d2 00       		.byte	0x0
- 32603 66d3 00       		.byte	0x0
- 32604 66d4 36       		.uleb128 0x36
- 32605 66d5 00000000 		.quad	.LBB2092
- 32605      00000000 
- 32606 66dd 00000000 		.quad	.LBE2092
- 32606      00000000 
- 32607 66e5 F4660000 		.long	0x66f4
- 32608 66e9 34       		.uleb128 0x34
- 32609 66ea 1C0C0000 		.long	0xc1c
- 32610 66ee 04       		.byte	0x4
- 32611 66ef 91       		.byte	0x91
- 32612 66f0 F0BD7F   		.sleb128 -8464
- 32613 66f3 00       		.byte	0x0
- 32614 66f4 31       		.uleb128 0x31
- 32615 66f5 4A0E0000 		.long	0xe4a
- 32616 66f9 00000000 		.quad	.LBB2093
- 32616      00000000 
- 32617 6701 00000000 		.quad	.LBE2093
- 32617      00000000 
- 32618 6709 02       		.byte	0x2
- 32619 670a 9406     		.value	0x694
-
GAS LISTING /tmp/ccjbMjHD.s 			page 866
-
-
- 32620 670c 91670000 		.long	0x6791
- 32621 6710 32       		.uleb128 0x32
- 32622 6711 5C0E0000 		.long	0xe5c
- 32623 6715 03       		.byte	0x3
- 32624 6716 91       		.byte	0x91
- 32625 6717 D04F     		.sleb128 -6192
- 32626 6719 33       		.uleb128 0x33
- 32627 671a 00000000 		.quad	.LBB2094
- 32627      00000000 
- 32628 6722 00000000 		.quad	.LBE2094
- 32628      00000000 
- 32629 672a 34       		.uleb128 0x34
- 32630 672b 680E0000 		.long	0xe68
- 32631 672f 09       		.byte	0x9
- 32632 6730 03       		.byte	0x3
- 32633 6731 00000000 		.quad	ShiftRowTable.7385
- 32633      00000000 
- 32634 6739 35       		.uleb128 0x35
- 32635 673a A00D0000 		.long	0xda0
- 32636 673e 00000000 		.quad	.LBB2095
- 32636      00000000 
- 32637 6746 00000000 		.quad	.LBE2095
- 32637      00000000 
- 32638 674e 02       		.byte	0x2
- 32639 674f 9B02     		.value	0x29b
- 32640 6751 32       		.uleb128 0x32
- 32641 6752 BE0D0000 		.long	0xdbe
- 32642 6756 03       		.byte	0x3
- 32643 6757 91       		.byte	0x91
- 32644 6758 E04F     		.sleb128 -6176
- 32645 675a 32       		.uleb128 0x32
- 32646 675b B20D0000 		.long	0xdb2
- 32647 675f 03       		.byte	0x3
- 32648 6760 91       		.byte	0x91
- 32649 6761 F04F     		.sleb128 -6160
- 32650 6763 35       		.uleb128 0x35
- 32651 6764 CB0D0000 		.long	0xdcb
- 32652 6768 00000000 		.quad	.LBB2097
- 32652      00000000 
- 32653 6770 00000000 		.quad	.LBE2097
- 32653      00000000 
- 32654 6778 02       		.byte	0x2
- 32655 6779 7501     		.value	0x175
- 32656 677b 32       		.uleb128 0x32
- 32657 677c E90D0000 		.long	0xde9
- 32658 6780 03       		.byte	0x3
- 32659 6781 91       		.byte	0x91
- 32660 6782 8050     		.sleb128 -6144
- 32661 6784 32       		.uleb128 0x32
- 32662 6785 DD0D0000 		.long	0xddd
- 32663 6789 03       		.byte	0x3
- 32664 678a 91       		.byte	0x91
- 32665 678b 9050     		.sleb128 -6128
- 32666 678d 00       		.byte	0x0
- 32667 678e 00       		.byte	0x0
- 32668 678f 00       		.byte	0x0
- 32669 6790 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 867
-
-
- 32670 6791 36       		.uleb128 0x36
- 32671 6792 00000000 		.quad	.LBB2099
- 32671      00000000 
- 32672 679a 00000000 		.quad	.LBE2099
- 32672      00000000 
- 32673 67a2 B1670000 		.long	0x67b1
- 32674 67a6 34       		.uleb128 0x34
- 32675 67a7 2C0C0000 		.long	0xc2c
- 32676 67ab 04       		.byte	0x4
- 32677 67ac 91       		.byte	0x91
- 32678 67ad E0BD7F   		.sleb128 -8480
- 32679 67b0 00       		.byte	0x0
- 32680 67b1 31       		.uleb128 0x31
- 32681 67b2 860E0000 		.long	0xe86
- 32682 67b6 00000000 		.quad	.LBB2100
- 32682      00000000 
- 32683 67be 00000000 		.quad	.LBE2100
- 32683      00000000 
- 32684 67c6 02       		.byte	0x2
- 32685 67c7 9606     		.value	0x696
- 32686 67c9 E0670000 		.long	0x67e0
- 32687 67cd 32       		.uleb128 0x32
- 32688 67ce A10E0000 		.long	0xea1
- 32689 67d2 03       		.byte	0x3
- 32690 67d3 91       		.byte	0x91
- 32691 67d4 A050     		.sleb128 -6112
- 32692 67d6 32       		.uleb128 0x32
- 32693 67d7 970E0000 		.long	0xe97
- 32694 67db 03       		.byte	0x3
- 32695 67dc 91       		.byte	0x91
- 32696 67dd B050     		.sleb128 -6096
- 32697 67df 00       		.byte	0x0
- 32698 67e0 36       		.uleb128 0x36
- 32699 67e1 00000000 		.quad	.LBB2102
- 32699      00000000 
- 32700 67e9 00000000 		.quad	.LBE2102
- 32700      00000000 
- 32701 67f1 00680000 		.long	0x6800
- 32702 67f5 34       		.uleb128 0x34
- 32703 67f6 3C0C0000 		.long	0xc3c
- 32704 67fa 04       		.byte	0x4
- 32705 67fb 91       		.byte	0x91
- 32706 67fc D0BD7F   		.sleb128 -8496
- 32707 67ff 00       		.byte	0x0
- 32708 6800 31       		.uleb128 0x31
- 32709 6801 AC0E0000 		.long	0xeac
- 32710 6805 00000000 		.quad	.LBB2103
- 32710      00000000 
- 32711 680d 00000000 		.quad	.LBE2103
- 32711      00000000 
- 32712 6815 02       		.byte	0x2
- 32713 6816 9806     		.value	0x698
- 32714 6818 51680000 		.long	0x6851
- 32715 681c 32       		.uleb128 0x32
- 32716 681d BE0E0000 		.long	0xebe
- 32717 6821 03       		.byte	0x3
- 32718 6822 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 868
-
-
- 32719 6823 C050     		.sleb128 -6080
- 32720 6825 35       		.uleb128 0x35
- 32721 6826 CB0E0000 		.long	0xecb
- 32722 682a 00000000 		.quad	.LBB2105
- 32722      00000000 
- 32723 6832 00000000 		.quad	.LBE2105
- 32723      00000000 
- 32724 683a 02       		.byte	0x2
- 32725 683b 4905     		.value	0x549
- 32726 683d 32       		.uleb128 0x32
- 32727 683e E90E0000 		.long	0xee9
- 32728 6842 03       		.byte	0x3
- 32729 6843 91       		.byte	0x91
- 32730 6844 DC50     		.sleb128 -6052
- 32731 6846 32       		.uleb128 0x32
- 32732 6847 DD0E0000 		.long	0xedd
- 32733 684b 03       		.byte	0x3
- 32734 684c 91       		.byte	0x91
- 32735 684d E050     		.sleb128 -6048
- 32736 684f 00       		.byte	0x0
- 32737 6850 00       		.byte	0x0
- 32738 6851 33       		.uleb128 0x33
- 32739 6852 00000000 		.quad	.LBB2107
- 32739      00000000 
- 32740 685a 00000000 		.quad	.LBE2107
- 32740      00000000 
- 32741 6862 34       		.uleb128 0x34
- 32742 6863 480C0000 		.long	0xc48
- 32743 6867 04       		.byte	0x4
- 32744 6868 91       		.byte	0x91
- 32745 6869 C0BD7F   		.sleb128 -8512
- 32746 686c 00       		.byte	0x0
- 32747 686d 00       		.byte	0x0
- 32748 686e 00       		.byte	0x0
- 32749 686f 31       		.uleb128 0x31
- 32750 6870 AC0E0000 		.long	0xeac
- 32751 6874 00000000 		.quad	.LBB2108
- 32751      00000000 
- 32752 687c 00000000 		.quad	.LBE2108
- 32752      00000000 
- 32753 6884 02       		.byte	0x2
- 32754 6885 1007     		.value	0x710
- 32755 6887 C0680000 		.long	0x68c0
- 32756 688b 32       		.uleb128 0x32
- 32757 688c BE0E0000 		.long	0xebe
- 32758 6890 03       		.byte	0x3
- 32759 6891 91       		.byte	0x91
- 32760 6892 F050     		.sleb128 -6032
- 32761 6894 35       		.uleb128 0x35
- 32762 6895 CB0E0000 		.long	0xecb
- 32763 6899 00000000 		.quad	.LBB2110
- 32763      00000000 
- 32764 68a1 00000000 		.quad	.LBE2110
- 32764      00000000 
- 32765 68a9 02       		.byte	0x2
- 32766 68aa 4905     		.value	0x549
- 32767 68ac 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 869
-
-
- 32768 68ad E90E0000 		.long	0xee9
- 32769 68b1 03       		.byte	0x3
- 32770 68b2 91       		.byte	0x91
- 32771 68b3 8C51     		.sleb128 -6004
- 32772 68b5 32       		.uleb128 0x32
- 32773 68b6 DD0E0000 		.long	0xedd
- 32774 68ba 03       		.byte	0x3
- 32775 68bb 91       		.byte	0x91
- 32776 68bc 9051     		.sleb128 -6000
- 32777 68be 00       		.byte	0x0
- 32778 68bf 00       		.byte	0x0
- 32779 68c0 31       		.uleb128 0x31
- 32780 68c1 71560000 		.long	0x5671
- 32781 68c5 00000000 		.quad	.LBB2112
- 32781      00000000 
- 32782 68cd 00000000 		.quad	.LBE2112
- 32782      00000000 
- 32783 68d5 02       		.byte	0x2
- 32784 68d6 1707     		.value	0x717
- 32785 68d8 8A690000 		.long	0x698a
- 32786 68dc 32       		.uleb128 0x32
- 32787 68dd 8F560000 		.long	0x568f
- 32788 68e1 03       		.byte	0x3
- 32789 68e2 91       		.byte	0x91
- 32790 68e3 AC51     		.sleb128 -5972
- 32791 68e5 32       		.uleb128 0x32
- 32792 68e6 83560000 		.long	0x5683
- 32793 68ea 03       		.byte	0x3
- 32794 68eb 91       		.byte	0x91
- 32795 68ec B051     		.sleb128 -5968
- 32796 68ee 33       		.uleb128 0x33
- 32797 68ef 00000000 		.quad	.LBB2113
- 32797      00000000 
- 32798 68f7 00000000 		.quad	.LBE2113
- 32798      00000000 
- 32799 68ff 34       		.uleb128 0x34
- 32800 6900 9B560000 		.long	0x569b
- 32801 6904 04       		.byte	0x4
- 32802 6905 91       		.byte	0x91
- 32803 6906 90BE7F   		.sleb128 -8432
- 32804 6909 34       		.uleb128 0x34
- 32805 690a A5560000 		.long	0x56a5
- 32806 690e 03       		.byte	0x3
- 32807 690f 91       		.byte	0x91
- 32808 6910 D051     		.sleb128 -5936
- 32809 6912 34       		.uleb128 0x34
- 32810 6913 B1560000 		.long	0x56b1
- 32811 6917 03       		.byte	0x3
- 32812 6918 91       		.byte	0x91
- 32813 6919 CC51     		.sleb128 -5940
- 32814 691b 31       		.uleb128 0x31
- 32815 691c BE560000 		.long	0x56be
- 32816 6920 00000000 		.quad	.LBB2114
- 32816      00000000 
- 32817 6928 00000000 		.quad	.LBE2114
- 32817      00000000 
- 32818 6930 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 870
-
-
- 32819 6931 5F06     		.value	0x65f
- 32820 6933 66690000 		.long	0x6966
- 32821 6937 32       		.uleb128 0x32
- 32822 6938 D0560000 		.long	0x56d0
- 32823 693c 03       		.byte	0x3
- 32824 693d 91       		.byte	0x91
- 32825 693e D451     		.sleb128 -5932
- 32826 6940 33       		.uleb128 0x33
- 32827 6941 00000000 		.quad	.LBB2115
- 32827      00000000 
- 32828 6949 00000000 		.quad	.LBE2115
- 32828      00000000 
- 32829 6951 34       		.uleb128 0x34
- 32830 6952 DA560000 		.long	0x56da
- 32831 6956 04       		.byte	0x4
- 32832 6957 91       		.byte	0x91
- 32833 6958 80BE7F   		.sleb128 -8448
- 32834 695b 34       		.uleb128 0x34
- 32835 695c E6560000 		.long	0x56e6
- 32836 6960 03       		.byte	0x3
- 32837 6961 91       		.byte	0x91
- 32838 6962 D851     		.sleb128 -5928
- 32839 6964 00       		.byte	0x0
- 32840 6965 00       		.byte	0x0
- 32841 6966 35       		.uleb128 0x35
- 32842 6967 F2560000 		.long	0x56f2
- 32843 696b 00000000 		.quad	.LBB2116
- 32843      00000000 
- 32844 6973 00000000 		.quad	.LBE2116
- 32844      00000000 
- 32845 697b 02       		.byte	0x2
- 32846 697c 6006     		.value	0x660
- 32847 697e 32       		.uleb128 0x32
- 32848 697f 04570000 		.long	0x5704
- 32849 6983 03       		.byte	0x3
- 32850 6984 91       		.byte	0x91
- 32851 6985 DC51     		.sleb128 -5924
- 32852 6987 00       		.byte	0x0
- 32853 6988 00       		.byte	0x0
- 32854 6989 00       		.byte	0x0
- 32855 698a 31       		.uleb128 0x31
- 32856 698b F60E0000 		.long	0xef6
- 32857 698f 00000000 		.quad	.LBB2118
- 32857      00000000 
- 32858 6997 00000000 		.quad	.LBE2118
- 32858      00000000 
- 32859 699f 02       		.byte	0x2
- 32860 69a0 1907     		.value	0x719
- 32861 69a2 9F6B0000 		.long	0x6b9f
- 32862 69a6 32       		.uleb128 0x32
- 32863 69a7 080F0000 		.long	0xf08
- 32864 69ab 03       		.byte	0x3
- 32865 69ac 91       		.byte	0x91
- 32866 69ad E051     		.sleb128 -5920
- 32867 69af 33       		.uleb128 0x33
- 32868 69b0 00000000 		.quad	.LBB2119
- 32868      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 871
-
-
- 32869 69b8 00000000 		.quad	.LBE2119
- 32869      00000000 
- 32870 69c0 34       		.uleb128 0x34
- 32871 69c1 140F0000 		.long	0xf14
- 32872 69c5 04       		.byte	0x4
- 32873 69c6 76       		.byte	0x76
- 32874 69c7 90BB7F   		.sleb128 -8816
- 32875 69ca 31       		.uleb128 0x31
- 32876 69cb 210F0000 		.long	0xf21
- 32877 69cf 00000000 		.quad	.LBB2120
- 32877      00000000 
- 32878 69d7 00000000 		.quad	.LBE2120
- 32878      00000000 
- 32879 69df 02       		.byte	0x2
- 32880 69e0 1F06     		.value	0x61f
- 32881 69e2 676A0000 		.long	0x6a67
- 32882 69e6 32       		.uleb128 0x32
- 32883 69e7 330F0000 		.long	0xf33
- 32884 69eb 03       		.byte	0x3
- 32885 69ec 91       		.byte	0x91
- 32886 69ed F051     		.sleb128 -5904
- 32887 69ef 33       		.uleb128 0x33
- 32888 69f0 00000000 		.quad	.LBB2121
- 32888      00000000 
- 32889 69f8 00000000 		.quad	.LBE2121
- 32889      00000000 
- 32890 6a00 34       		.uleb128 0x34
- 32891 6a01 3F0F0000 		.long	0xf3f
- 32892 6a05 09       		.byte	0x9
- 32893 6a06 03       		.byte	0x3
- 32894 6a07 00000000 		.quad	mask.7943
- 32894      00000000 
- 32895 6a0f 35       		.uleb128 0x35
- 32896 6a10 A00D0000 		.long	0xda0
- 32897 6a14 00000000 		.quad	.LBB2122
- 32897      00000000 
- 32898 6a1c 00000000 		.quad	.LBE2122
- 32898      00000000 
- 32899 6a24 02       		.byte	0x2
- 32900 6a25 FE04     		.value	0x4fe
- 32901 6a27 32       		.uleb128 0x32
- 32902 6a28 BE0D0000 		.long	0xdbe
- 32903 6a2c 03       		.byte	0x3
- 32904 6a2d 91       		.byte	0x91
- 32905 6a2e 8052     		.sleb128 -5888
- 32906 6a30 32       		.uleb128 0x32
- 32907 6a31 B20D0000 		.long	0xdb2
- 32908 6a35 03       		.byte	0x3
- 32909 6a36 91       		.byte	0x91
- 32910 6a37 9052     		.sleb128 -5872
- 32911 6a39 35       		.uleb128 0x35
- 32912 6a3a CB0D0000 		.long	0xdcb
- 32913 6a3e 00000000 		.quad	.LBB2124
- 32913      00000000 
- 32914 6a46 00000000 		.quad	.LBE2124
- 32914      00000000 
- 32915 6a4e 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 872
-
-
- 32916 6a4f 7501     		.value	0x175
- 32917 6a51 32       		.uleb128 0x32
- 32918 6a52 E90D0000 		.long	0xde9
- 32919 6a56 03       		.byte	0x3
- 32920 6a57 91       		.byte	0x91
- 32921 6a58 A052     		.sleb128 -5856
- 32922 6a5a 32       		.uleb128 0x32
- 32923 6a5b DD0D0000 		.long	0xddd
- 32924 6a5f 03       		.byte	0x3
- 32925 6a60 91       		.byte	0x91
- 32926 6a61 B052     		.sleb128 -5840
- 32927 6a63 00       		.byte	0x0
- 32928 6a64 00       		.byte	0x0
- 32929 6a65 00       		.byte	0x0
- 32930 6a66 00       		.byte	0x0
- 32931 6a67 31       		.uleb128 0x31
- 32932 6a68 210F0000 		.long	0xf21
- 32933 6a6c 00000000 		.quad	.LBB2126
- 32933      00000000 
- 32934 6a74 00000000 		.quad	.LBE2126
- 32934      00000000 
- 32935 6a7c 02       		.byte	0x2
- 32936 6a7d 2006     		.value	0x620
- 32937 6a7f 046B0000 		.long	0x6b04
- 32938 6a83 32       		.uleb128 0x32
- 32939 6a84 330F0000 		.long	0xf33
- 32940 6a88 03       		.byte	0x3
- 32941 6a89 91       		.byte	0x91
- 32942 6a8a C052     		.sleb128 -5824
- 32943 6a8c 33       		.uleb128 0x33
- 32944 6a8d 00000000 		.quad	.LBB2127
- 32944      00000000 
- 32945 6a95 00000000 		.quad	.LBE2127
- 32945      00000000 
- 32946 6a9d 34       		.uleb128 0x34
- 32947 6a9e 3F0F0000 		.long	0xf3f
- 32948 6aa2 09       		.byte	0x9
- 32949 6aa3 03       		.byte	0x3
- 32950 6aa4 00000000 		.quad	mask.7943
- 32950      00000000 
- 32951 6aac 35       		.uleb128 0x35
- 32952 6aad A00D0000 		.long	0xda0
- 32953 6ab1 00000000 		.quad	.LBB2128
- 32953      00000000 
- 32954 6ab9 00000000 		.quad	.LBE2128
- 32954      00000000 
- 32955 6ac1 02       		.byte	0x2
- 32956 6ac2 FE04     		.value	0x4fe
- 32957 6ac4 32       		.uleb128 0x32
- 32958 6ac5 BE0D0000 		.long	0xdbe
- 32959 6ac9 03       		.byte	0x3
- 32960 6aca 91       		.byte	0x91
- 32961 6acb D052     		.sleb128 -5808
- 32962 6acd 32       		.uleb128 0x32
- 32963 6ace B20D0000 		.long	0xdb2
- 32964 6ad2 03       		.byte	0x3
- 32965 6ad3 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 873
-
-
- 32966 6ad4 E052     		.sleb128 -5792
- 32967 6ad6 35       		.uleb128 0x35
- 32968 6ad7 CB0D0000 		.long	0xdcb
- 32969 6adb 00000000 		.quad	.LBB2130
- 32969      00000000 
- 32970 6ae3 00000000 		.quad	.LBE2130
- 32970      00000000 
- 32971 6aeb 02       		.byte	0x2
- 32972 6aec 7501     		.value	0x175
- 32973 6aee 32       		.uleb128 0x32
- 32974 6aef E90D0000 		.long	0xde9
- 32975 6af3 03       		.byte	0x3
- 32976 6af4 91       		.byte	0x91
- 32977 6af5 F052     		.sleb128 -5776
- 32978 6af7 32       		.uleb128 0x32
- 32979 6af8 DD0D0000 		.long	0xddd
- 32980 6afc 03       		.byte	0x3
- 32981 6afd 91       		.byte	0x91
- 32982 6afe 8053     		.sleb128 -5760
- 32983 6b00 00       		.byte	0x0
- 32984 6b01 00       		.byte	0x0
- 32985 6b02 00       		.byte	0x0
- 32986 6b03 00       		.byte	0x0
- 32987 6b04 35       		.uleb128 0x35
- 32988 6b05 210F0000 		.long	0xf21
- 32989 6b09 00000000 		.quad	.LBB2132
- 32989      00000000 
- 32990 6b11 00000000 		.quad	.LBE2132
- 32990      00000000 
- 32991 6b19 02       		.byte	0x2
- 32992 6b1a 2106     		.value	0x621
- 32993 6b1c 32       		.uleb128 0x32
- 32994 6b1d 330F0000 		.long	0xf33
- 32995 6b21 03       		.byte	0x3
- 32996 6b22 91       		.byte	0x91
- 32997 6b23 9053     		.sleb128 -5744
- 32998 6b25 33       		.uleb128 0x33
- 32999 6b26 00000000 		.quad	.LBB2133
- 32999      00000000 
- 33000 6b2e 00000000 		.quad	.LBE2133
- 33000      00000000 
- 33001 6b36 34       		.uleb128 0x34
- 33002 6b37 3F0F0000 		.long	0xf3f
- 33003 6b3b 09       		.byte	0x9
- 33004 6b3c 03       		.byte	0x3
- 33005 6b3d 00000000 		.quad	mask.7943
- 33005      00000000 
- 33006 6b45 35       		.uleb128 0x35
- 33007 6b46 A00D0000 		.long	0xda0
- 33008 6b4a 00000000 		.quad	.LBB2134
- 33008      00000000 
- 33009 6b52 00000000 		.quad	.LBE2134
- 33009      00000000 
- 33010 6b5a 02       		.byte	0x2
- 33011 6b5b FE04     		.value	0x4fe
- 33012 6b5d 32       		.uleb128 0x32
- 33013 6b5e BE0D0000 		.long	0xdbe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 874
-
-
- 33014 6b62 03       		.byte	0x3
- 33015 6b63 91       		.byte	0x91
- 33016 6b64 A053     		.sleb128 -5728
- 33017 6b66 32       		.uleb128 0x32
- 33018 6b67 B20D0000 		.long	0xdb2
- 33019 6b6b 03       		.byte	0x3
- 33020 6b6c 91       		.byte	0x91
- 33021 6b6d B053     		.sleb128 -5712
- 33022 6b6f 35       		.uleb128 0x35
- 33023 6b70 CB0D0000 		.long	0xdcb
- 33024 6b74 00000000 		.quad	.LBB2136
- 33024      00000000 
- 33025 6b7c 00000000 		.quad	.LBE2136
- 33025      00000000 
- 33026 6b84 02       		.byte	0x2
- 33027 6b85 7501     		.value	0x175
- 33028 6b87 32       		.uleb128 0x32
- 33029 6b88 E90D0000 		.long	0xde9
- 33030 6b8c 03       		.byte	0x3
- 33031 6b8d 91       		.byte	0x91
- 33032 6b8e C053     		.sleb128 -5696
- 33033 6b90 32       		.uleb128 0x32
- 33034 6b91 DD0D0000 		.long	0xddd
- 33035 6b95 03       		.byte	0x3
- 33036 6b96 91       		.byte	0x91
- 33037 6b97 D053     		.sleb128 -5680
- 33038 6b99 00       		.byte	0x0
- 33039 6b9a 00       		.byte	0x0
- 33040 6b9b 00       		.byte	0x0
- 33041 6b9c 00       		.byte	0x0
- 33042 6b9d 00       		.byte	0x0
- 33043 6b9e 00       		.byte	0x0
- 33044 6b9f 31       		.uleb128 0x31
- 33045 6ba0 F60E0000 		.long	0xef6
- 33046 6ba4 00000000 		.quad	.LBB2138
- 33046      00000000 
- 33047 6bac 00000000 		.quad	.LBE2138
- 33047      00000000 
- 33048 6bb4 02       		.byte	0x2
- 33049 6bb5 1B07     		.value	0x71b
- 33050 6bb7 B46D0000 		.long	0x6db4
- 33051 6bbb 32       		.uleb128 0x32
- 33052 6bbc 080F0000 		.long	0xf08
- 33053 6bc0 03       		.byte	0x3
- 33054 6bc1 91       		.byte	0x91
- 33055 6bc2 E053     		.sleb128 -5664
- 33056 6bc4 33       		.uleb128 0x33
- 33057 6bc5 00000000 		.quad	.LBB2139
- 33057      00000000 
- 33058 6bcd 00000000 		.quad	.LBE2139
- 33058      00000000 
- 33059 6bd5 34       		.uleb128 0x34
- 33060 6bd6 140F0000 		.long	0xf14
- 33061 6bda 04       		.byte	0x4
- 33062 6bdb 76       		.byte	0x76
- 33063 6bdc A0BB7F   		.sleb128 -8800
- 33064 6bdf 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 875
-
-
- 33065 6be0 210F0000 		.long	0xf21
- 33066 6be4 00000000 		.quad	.LBB2140
- 33066      00000000 
- 33067 6bec 00000000 		.quad	.LBE2140
- 33067      00000000 
- 33068 6bf4 02       		.byte	0x2
- 33069 6bf5 1F06     		.value	0x61f
- 33070 6bf7 7C6C0000 		.long	0x6c7c
- 33071 6bfb 32       		.uleb128 0x32
- 33072 6bfc 330F0000 		.long	0xf33
- 33073 6c00 03       		.byte	0x3
- 33074 6c01 91       		.byte	0x91
- 33075 6c02 F053     		.sleb128 -5648
- 33076 6c04 33       		.uleb128 0x33
- 33077 6c05 00000000 		.quad	.LBB2141
- 33077      00000000 
- 33078 6c0d 00000000 		.quad	.LBE2141
- 33078      00000000 
- 33079 6c15 34       		.uleb128 0x34
- 33080 6c16 3F0F0000 		.long	0xf3f
- 33081 6c1a 09       		.byte	0x9
- 33082 6c1b 03       		.byte	0x3
- 33083 6c1c 00000000 		.quad	mask.7943
- 33083      00000000 
- 33084 6c24 35       		.uleb128 0x35
- 33085 6c25 A00D0000 		.long	0xda0
- 33086 6c29 00000000 		.quad	.LBB2142
- 33086      00000000 
- 33087 6c31 00000000 		.quad	.LBE2142
- 33087      00000000 
- 33088 6c39 02       		.byte	0x2
- 33089 6c3a FE04     		.value	0x4fe
- 33090 6c3c 32       		.uleb128 0x32
- 33091 6c3d BE0D0000 		.long	0xdbe
- 33092 6c41 03       		.byte	0x3
- 33093 6c42 91       		.byte	0x91
- 33094 6c43 8054     		.sleb128 -5632
- 33095 6c45 32       		.uleb128 0x32
- 33096 6c46 B20D0000 		.long	0xdb2
- 33097 6c4a 03       		.byte	0x3
- 33098 6c4b 91       		.byte	0x91
- 33099 6c4c 9054     		.sleb128 -5616
- 33100 6c4e 35       		.uleb128 0x35
- 33101 6c4f CB0D0000 		.long	0xdcb
- 33102 6c53 00000000 		.quad	.LBB2144
- 33102      00000000 
- 33103 6c5b 00000000 		.quad	.LBE2144
- 33103      00000000 
- 33104 6c63 02       		.byte	0x2
- 33105 6c64 7501     		.value	0x175
- 33106 6c66 32       		.uleb128 0x32
- 33107 6c67 E90D0000 		.long	0xde9
- 33108 6c6b 03       		.byte	0x3
- 33109 6c6c 91       		.byte	0x91
- 33110 6c6d A054     		.sleb128 -5600
- 33111 6c6f 32       		.uleb128 0x32
- 33112 6c70 DD0D0000 		.long	0xddd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 876
-
-
- 33113 6c74 03       		.byte	0x3
- 33114 6c75 91       		.byte	0x91
- 33115 6c76 B054     		.sleb128 -5584
- 33116 6c78 00       		.byte	0x0
- 33117 6c79 00       		.byte	0x0
- 33118 6c7a 00       		.byte	0x0
- 33119 6c7b 00       		.byte	0x0
- 33120 6c7c 31       		.uleb128 0x31
- 33121 6c7d 210F0000 		.long	0xf21
- 33122 6c81 00000000 		.quad	.LBB2146
- 33122      00000000 
- 33123 6c89 00000000 		.quad	.LBE2146
- 33123      00000000 
- 33124 6c91 02       		.byte	0x2
- 33125 6c92 2006     		.value	0x620
- 33126 6c94 196D0000 		.long	0x6d19
- 33127 6c98 32       		.uleb128 0x32
- 33128 6c99 330F0000 		.long	0xf33
- 33129 6c9d 03       		.byte	0x3
- 33130 6c9e 91       		.byte	0x91
- 33131 6c9f C054     		.sleb128 -5568
- 33132 6ca1 33       		.uleb128 0x33
- 33133 6ca2 00000000 		.quad	.LBB2147
- 33133      00000000 
- 33134 6caa 00000000 		.quad	.LBE2147
- 33134      00000000 
- 33135 6cb2 34       		.uleb128 0x34
- 33136 6cb3 3F0F0000 		.long	0xf3f
- 33137 6cb7 09       		.byte	0x9
- 33138 6cb8 03       		.byte	0x3
- 33139 6cb9 00000000 		.quad	mask.7943
- 33139      00000000 
- 33140 6cc1 35       		.uleb128 0x35
- 33141 6cc2 A00D0000 		.long	0xda0
- 33142 6cc6 00000000 		.quad	.LBB2148
- 33142      00000000 
- 33143 6cce 00000000 		.quad	.LBE2148
- 33143      00000000 
- 33144 6cd6 02       		.byte	0x2
- 33145 6cd7 FE04     		.value	0x4fe
- 33146 6cd9 32       		.uleb128 0x32
- 33147 6cda BE0D0000 		.long	0xdbe
- 33148 6cde 03       		.byte	0x3
- 33149 6cdf 91       		.byte	0x91
- 33150 6ce0 D054     		.sleb128 -5552
- 33151 6ce2 32       		.uleb128 0x32
- 33152 6ce3 B20D0000 		.long	0xdb2
- 33153 6ce7 03       		.byte	0x3
- 33154 6ce8 91       		.byte	0x91
- 33155 6ce9 E054     		.sleb128 -5536
- 33156 6ceb 35       		.uleb128 0x35
- 33157 6cec CB0D0000 		.long	0xdcb
- 33158 6cf0 00000000 		.quad	.LBB2150
- 33158      00000000 
- 33159 6cf8 00000000 		.quad	.LBE2150
- 33159      00000000 
- 33160 6d00 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 877
-
-
- 33161 6d01 7501     		.value	0x175
- 33162 6d03 32       		.uleb128 0x32
- 33163 6d04 E90D0000 		.long	0xde9
- 33164 6d08 03       		.byte	0x3
- 33165 6d09 91       		.byte	0x91
- 33166 6d0a F054     		.sleb128 -5520
- 33167 6d0c 32       		.uleb128 0x32
- 33168 6d0d DD0D0000 		.long	0xddd
- 33169 6d11 03       		.byte	0x3
- 33170 6d12 91       		.byte	0x91
- 33171 6d13 8055     		.sleb128 -5504
- 33172 6d15 00       		.byte	0x0
- 33173 6d16 00       		.byte	0x0
- 33174 6d17 00       		.byte	0x0
- 33175 6d18 00       		.byte	0x0
- 33176 6d19 35       		.uleb128 0x35
- 33177 6d1a 210F0000 		.long	0xf21
- 33178 6d1e 00000000 		.quad	.LBB2152
- 33178      00000000 
- 33179 6d26 00000000 		.quad	.LBE2152
- 33179      00000000 
- 33180 6d2e 02       		.byte	0x2
- 33181 6d2f 2106     		.value	0x621
- 33182 6d31 32       		.uleb128 0x32
- 33183 6d32 330F0000 		.long	0xf33
- 33184 6d36 03       		.byte	0x3
- 33185 6d37 91       		.byte	0x91
- 33186 6d38 9055     		.sleb128 -5488
- 33187 6d3a 33       		.uleb128 0x33
- 33188 6d3b 00000000 		.quad	.LBB2153
- 33188      00000000 
- 33189 6d43 00000000 		.quad	.LBE2153
- 33189      00000000 
- 33190 6d4b 34       		.uleb128 0x34
- 33191 6d4c 3F0F0000 		.long	0xf3f
- 33192 6d50 09       		.byte	0x9
- 33193 6d51 03       		.byte	0x3
- 33194 6d52 00000000 		.quad	mask.7943
- 33194      00000000 
- 33195 6d5a 35       		.uleb128 0x35
- 33196 6d5b A00D0000 		.long	0xda0
- 33197 6d5f 00000000 		.quad	.LBB2154
- 33197      00000000 
- 33198 6d67 00000000 		.quad	.LBE2154
- 33198      00000000 
- 33199 6d6f 02       		.byte	0x2
- 33200 6d70 FE04     		.value	0x4fe
- 33201 6d72 32       		.uleb128 0x32
- 33202 6d73 BE0D0000 		.long	0xdbe
- 33203 6d77 03       		.byte	0x3
- 33204 6d78 91       		.byte	0x91
- 33205 6d79 A055     		.sleb128 -5472
- 33206 6d7b 32       		.uleb128 0x32
- 33207 6d7c B20D0000 		.long	0xdb2
- 33208 6d80 03       		.byte	0x3
- 33209 6d81 91       		.byte	0x91
- 33210 6d82 B055     		.sleb128 -5456
-
GAS LISTING /tmp/ccjbMjHD.s 			page 878
-
-
- 33211 6d84 35       		.uleb128 0x35
- 33212 6d85 CB0D0000 		.long	0xdcb
- 33213 6d89 00000000 		.quad	.LBB2156
- 33213      00000000 
- 33214 6d91 00000000 		.quad	.LBE2156
- 33214      00000000 
- 33215 6d99 02       		.byte	0x2
- 33216 6d9a 7501     		.value	0x175
- 33217 6d9c 32       		.uleb128 0x32
- 33218 6d9d E90D0000 		.long	0xde9
- 33219 6da1 03       		.byte	0x3
- 33220 6da2 91       		.byte	0x91
- 33221 6da3 C055     		.sleb128 -5440
- 33222 6da5 32       		.uleb128 0x32
- 33223 6da6 DD0D0000 		.long	0xddd
- 33224 6daa 03       		.byte	0x3
- 33225 6dab 91       		.byte	0x91
- 33226 6dac D055     		.sleb128 -5424
- 33227 6dae 00       		.byte	0x0
- 33228 6daf 00       		.byte	0x0
- 33229 6db0 00       		.byte	0x0
- 33230 6db1 00       		.byte	0x0
- 33231 6db2 00       		.byte	0x0
- 33232 6db3 00       		.byte	0x0
- 33233 6db4 31       		.uleb128 0x31
- 33234 6db5 AC0E0000 		.long	0xeac
- 33235 6db9 00000000 		.quad	.LBB2158
- 33235      00000000 
- 33236 6dc1 00000000 		.quad	.LBE2158
- 33236      00000000 
- 33237 6dc9 02       		.byte	0x2
- 33238 6dca 1C07     		.value	0x71c
- 33239 6dcc 056E0000 		.long	0x6e05
- 33240 6dd0 32       		.uleb128 0x32
- 33241 6dd1 BE0E0000 		.long	0xebe
- 33242 6dd5 03       		.byte	0x3
- 33243 6dd6 91       		.byte	0x91
- 33244 6dd7 E055     		.sleb128 -5408
- 33245 6dd9 35       		.uleb128 0x35
- 33246 6dda CB0E0000 		.long	0xecb
- 33247 6dde 00000000 		.quad	.LBB2160
- 33247      00000000 
- 33248 6de6 00000000 		.quad	.LBE2160
- 33248      00000000 
- 33249 6dee 02       		.byte	0x2
- 33250 6def 4905     		.value	0x549
- 33251 6df1 32       		.uleb128 0x32
- 33252 6df2 E90E0000 		.long	0xee9
- 33253 6df6 03       		.byte	0x3
- 33254 6df7 91       		.byte	0x91
- 33255 6df8 FC55     		.sleb128 -5380
- 33256 6dfa 32       		.uleb128 0x32
- 33257 6dfb DD0E0000 		.long	0xedd
- 33258 6dff 03       		.byte	0x3
- 33259 6e00 91       		.byte	0x91
- 33260 6e01 8056     		.sleb128 -5376
- 33261 6e03 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 879
-
-
- 33262 6e04 00       		.byte	0x0
- 33263 6e05 31       		.uleb128 0x31
- 33264 6e06 0F570000 		.long	0x570f
- 33265 6e0a 00000000 		.quad	.LBB2162
- 33265      00000000 
- 33266 6e12 00000000 		.quad	.LBE2162
- 33266      00000000 
- 33267 6e1a 02       		.byte	0x2
- 33268 6e1b 1E07     		.value	0x71e
- 33269 6e1d 686E0000 		.long	0x6e68
- 33270 6e21 32       		.uleb128 0x32
- 33271 6e22 2B570000 		.long	0x572b
- 33272 6e26 03       		.byte	0x3
- 33273 6e27 91       		.byte	0x91
- 33274 6e28 9056     		.sleb128 -5360
- 33275 6e2a 32       		.uleb128 0x32
- 33276 6e2b 21570000 		.long	0x5721
- 33277 6e2f 03       		.byte	0x3
- 33278 6e30 91       		.byte	0x91
- 33279 6e31 A056     		.sleb128 -5344
- 33280 6e33 35       		.uleb128 0x35
- 33281 6e34 36570000 		.long	0x5736
- 33282 6e38 00000000 		.quad	.LBB2164
- 33282      00000000 
- 33283 6e40 00000000 		.quad	.LBE2164
- 33283      00000000 
- 33284 6e48 02       		.byte	0x2
- 33285 6e49 BA05     		.value	0x5ba
- 33286 6e4b 32       		.uleb128 0x32
- 33287 6e4c 60570000 		.long	0x5760
- 33288 6e50 03       		.byte	0x3
- 33289 6e51 91       		.byte	0x91
- 33290 6e52 BC56     		.sleb128 -5316
- 33291 6e54 32       		.uleb128 0x32
- 33292 6e55 54570000 		.long	0x5754
- 33293 6e59 03       		.byte	0x3
- 33294 6e5a 91       		.byte	0x91
- 33295 6e5b C056     		.sleb128 -5312
- 33296 6e5d 32       		.uleb128 0x32
- 33297 6e5e 48570000 		.long	0x5748
- 33298 6e62 03       		.byte	0x3
- 33299 6e63 91       		.byte	0x91
- 33300 6e64 D056     		.sleb128 -5296
- 33301 6e66 00       		.byte	0x0
- 33302 6e67 00       		.byte	0x0
- 33303 6e68 31       		.uleb128 0x31
- 33304 6e69 6D570000 		.long	0x576d
- 33305 6e6d 00000000 		.quad	.LBB2166
- 33305      00000000 
- 33306 6e75 00000000 		.quad	.LBE2166
- 33306      00000000 
- 33307 6e7d 02       		.byte	0x2
- 33308 6e7e 2107     		.value	0x721
- 33309 6e80 CB6E0000 		.long	0x6ecb
- 33310 6e84 32       		.uleb128 0x32
- 33311 6e85 89570000 		.long	0x5789
- 33312 6e89 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 880
-
-
- 33313 6e8a 91       		.byte	0x91
- 33314 6e8b E056     		.sleb128 -5280
- 33315 6e8d 32       		.uleb128 0x32
- 33316 6e8e 7F570000 		.long	0x577f
- 33317 6e92 03       		.byte	0x3
- 33318 6e93 91       		.byte	0x91
- 33319 6e94 F056     		.sleb128 -5264
- 33320 6e96 35       		.uleb128 0x35
- 33321 6e97 36570000 		.long	0x5736
- 33322 6e9b 00000000 		.quad	.LBB2168
- 33322      00000000 
- 33323 6ea3 00000000 		.quad	.LBE2168
- 33323      00000000 
- 33324 6eab 02       		.byte	0x2
- 33325 6eac DA05     		.value	0x5da
- 33326 6eae 32       		.uleb128 0x32
- 33327 6eaf 60570000 		.long	0x5760
- 33328 6eb3 03       		.byte	0x3
- 33329 6eb4 91       		.byte	0x91
- 33330 6eb5 8C57     		.sleb128 -5236
- 33331 6eb7 32       		.uleb128 0x32
- 33332 6eb8 54570000 		.long	0x5754
- 33333 6ebc 03       		.byte	0x3
- 33334 6ebd 91       		.byte	0x91
- 33335 6ebe 9057     		.sleb128 -5232
- 33336 6ec0 32       		.uleb128 0x32
- 33337 6ec1 48570000 		.long	0x5748
- 33338 6ec5 03       		.byte	0x3
- 33339 6ec6 91       		.byte	0x91
- 33340 6ec7 A057     		.sleb128 -5216
- 33341 6ec9 00       		.byte	0x0
- 33342 6eca 00       		.byte	0x0
- 33343 6ecb 31       		.uleb128 0x31
- 33344 6ecc F60E0000 		.long	0xef6
- 33345 6ed0 00000000 		.quad	.LBB2170
- 33345      00000000 
- 33346 6ed8 00000000 		.quad	.LBE2170
- 33346      00000000 
- 33347 6ee0 02       		.byte	0x2
- 33348 6ee1 2507     		.value	0x725
- 33349 6ee3 E0700000 		.long	0x70e0
- 33350 6ee7 32       		.uleb128 0x32
- 33351 6ee8 080F0000 		.long	0xf08
- 33352 6eec 03       		.byte	0x3
- 33353 6eed 91       		.byte	0x91
- 33354 6eee B057     		.sleb128 -5200
- 33355 6ef0 33       		.uleb128 0x33
- 33356 6ef1 00000000 		.quad	.LBB2171
- 33356      00000000 
- 33357 6ef9 00000000 		.quad	.LBE2171
- 33357      00000000 
- 33358 6f01 34       		.uleb128 0x34
- 33359 6f02 140F0000 		.long	0xf14
- 33360 6f06 04       		.byte	0x4
- 33361 6f07 76       		.byte	0x76
- 33362 6f08 B0BB7F   		.sleb128 -8784
- 33363 6f0b 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 881
-
-
- 33364 6f0c 210F0000 		.long	0xf21
- 33365 6f10 00000000 		.quad	.LBB2172
- 33365      00000000 
- 33366 6f18 00000000 		.quad	.LBE2172
- 33366      00000000 
- 33367 6f20 02       		.byte	0x2
- 33368 6f21 1F06     		.value	0x61f
- 33369 6f23 A86F0000 		.long	0x6fa8
- 33370 6f27 32       		.uleb128 0x32
- 33371 6f28 330F0000 		.long	0xf33
- 33372 6f2c 03       		.byte	0x3
- 33373 6f2d 91       		.byte	0x91
- 33374 6f2e C057     		.sleb128 -5184
- 33375 6f30 33       		.uleb128 0x33
- 33376 6f31 00000000 		.quad	.LBB2173
- 33376      00000000 
- 33377 6f39 00000000 		.quad	.LBE2173
- 33377      00000000 
- 33378 6f41 34       		.uleb128 0x34
- 33379 6f42 3F0F0000 		.long	0xf3f
- 33380 6f46 09       		.byte	0x9
- 33381 6f47 03       		.byte	0x3
- 33382 6f48 00000000 		.quad	mask.7943
- 33382      00000000 
- 33383 6f50 35       		.uleb128 0x35
- 33384 6f51 A00D0000 		.long	0xda0
- 33385 6f55 00000000 		.quad	.LBB2174
- 33385      00000000 
- 33386 6f5d 00000000 		.quad	.LBE2174
- 33386      00000000 
- 33387 6f65 02       		.byte	0x2
- 33388 6f66 FE04     		.value	0x4fe
- 33389 6f68 32       		.uleb128 0x32
- 33390 6f69 BE0D0000 		.long	0xdbe
- 33391 6f6d 03       		.byte	0x3
- 33392 6f6e 91       		.byte	0x91
- 33393 6f6f D057     		.sleb128 -5168
- 33394 6f71 32       		.uleb128 0x32
- 33395 6f72 B20D0000 		.long	0xdb2
- 33396 6f76 03       		.byte	0x3
- 33397 6f77 91       		.byte	0x91
- 33398 6f78 E057     		.sleb128 -5152
- 33399 6f7a 35       		.uleb128 0x35
- 33400 6f7b CB0D0000 		.long	0xdcb
- 33401 6f7f 00000000 		.quad	.LBB2176
- 33401      00000000 
- 33402 6f87 00000000 		.quad	.LBE2176
- 33402      00000000 
- 33403 6f8f 02       		.byte	0x2
- 33404 6f90 7501     		.value	0x175
- 33405 6f92 32       		.uleb128 0x32
- 33406 6f93 E90D0000 		.long	0xde9
- 33407 6f97 03       		.byte	0x3
- 33408 6f98 91       		.byte	0x91
- 33409 6f99 F057     		.sleb128 -5136
- 33410 6f9b 32       		.uleb128 0x32
- 33411 6f9c DD0D0000 		.long	0xddd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 882
-
-
- 33412 6fa0 03       		.byte	0x3
- 33413 6fa1 91       		.byte	0x91
- 33414 6fa2 8058     		.sleb128 -5120
- 33415 6fa4 00       		.byte	0x0
- 33416 6fa5 00       		.byte	0x0
- 33417 6fa6 00       		.byte	0x0
- 33418 6fa7 00       		.byte	0x0
- 33419 6fa8 31       		.uleb128 0x31
- 33420 6fa9 210F0000 		.long	0xf21
- 33421 6fad 00000000 		.quad	.LBB2178
- 33421      00000000 
- 33422 6fb5 00000000 		.quad	.LBE2178
- 33422      00000000 
- 33423 6fbd 02       		.byte	0x2
- 33424 6fbe 2006     		.value	0x620
- 33425 6fc0 45700000 		.long	0x7045
- 33426 6fc4 32       		.uleb128 0x32
- 33427 6fc5 330F0000 		.long	0xf33
- 33428 6fc9 03       		.byte	0x3
- 33429 6fca 91       		.byte	0x91
- 33430 6fcb 9058     		.sleb128 -5104
- 33431 6fcd 33       		.uleb128 0x33
- 33432 6fce 00000000 		.quad	.LBB2179
- 33432      00000000 
- 33433 6fd6 00000000 		.quad	.LBE2179
- 33433      00000000 
- 33434 6fde 34       		.uleb128 0x34
- 33435 6fdf 3F0F0000 		.long	0xf3f
- 33436 6fe3 09       		.byte	0x9
- 33437 6fe4 03       		.byte	0x3
- 33438 6fe5 00000000 		.quad	mask.7943
- 33438      00000000 
- 33439 6fed 35       		.uleb128 0x35
- 33440 6fee A00D0000 		.long	0xda0
- 33441 6ff2 00000000 		.quad	.LBB2180
- 33441      00000000 
- 33442 6ffa 00000000 		.quad	.LBE2180
- 33442      00000000 
- 33443 7002 02       		.byte	0x2
- 33444 7003 FE04     		.value	0x4fe
- 33445 7005 32       		.uleb128 0x32
- 33446 7006 BE0D0000 		.long	0xdbe
- 33447 700a 03       		.byte	0x3
- 33448 700b 91       		.byte	0x91
- 33449 700c A058     		.sleb128 -5088
- 33450 700e 32       		.uleb128 0x32
- 33451 700f B20D0000 		.long	0xdb2
- 33452 7013 03       		.byte	0x3
- 33453 7014 91       		.byte	0x91
- 33454 7015 B058     		.sleb128 -5072
- 33455 7017 35       		.uleb128 0x35
- 33456 7018 CB0D0000 		.long	0xdcb
- 33457 701c 00000000 		.quad	.LBB2182
- 33457      00000000 
- 33458 7024 00000000 		.quad	.LBE2182
- 33458      00000000 
- 33459 702c 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 883
-
-
- 33460 702d 7501     		.value	0x175
- 33461 702f 32       		.uleb128 0x32
- 33462 7030 E90D0000 		.long	0xde9
- 33463 7034 03       		.byte	0x3
- 33464 7035 91       		.byte	0x91
- 33465 7036 C058     		.sleb128 -5056
- 33466 7038 32       		.uleb128 0x32
- 33467 7039 DD0D0000 		.long	0xddd
- 33468 703d 03       		.byte	0x3
- 33469 703e 91       		.byte	0x91
- 33470 703f D058     		.sleb128 -5040
- 33471 7041 00       		.byte	0x0
- 33472 7042 00       		.byte	0x0
- 33473 7043 00       		.byte	0x0
- 33474 7044 00       		.byte	0x0
- 33475 7045 35       		.uleb128 0x35
- 33476 7046 210F0000 		.long	0xf21
- 33477 704a 00000000 		.quad	.LBB2184
- 33477      00000000 
- 33478 7052 00000000 		.quad	.LBE2184
- 33478      00000000 
- 33479 705a 02       		.byte	0x2
- 33480 705b 2106     		.value	0x621
- 33481 705d 32       		.uleb128 0x32
- 33482 705e 330F0000 		.long	0xf33
- 33483 7062 03       		.byte	0x3
- 33484 7063 91       		.byte	0x91
- 33485 7064 E058     		.sleb128 -5024
- 33486 7066 33       		.uleb128 0x33
- 33487 7067 00000000 		.quad	.LBB2185
- 33487      00000000 
- 33488 706f 00000000 		.quad	.LBE2185
- 33488      00000000 
- 33489 7077 34       		.uleb128 0x34
- 33490 7078 3F0F0000 		.long	0xf3f
- 33491 707c 09       		.byte	0x9
- 33492 707d 03       		.byte	0x3
- 33493 707e 00000000 		.quad	mask.7943
- 33493      00000000 
- 33494 7086 35       		.uleb128 0x35
- 33495 7087 A00D0000 		.long	0xda0
- 33496 708b 00000000 		.quad	.LBB2186
- 33496      00000000 
- 33497 7093 00000000 		.quad	.LBE2186
- 33497      00000000 
- 33498 709b 02       		.byte	0x2
- 33499 709c FE04     		.value	0x4fe
- 33500 709e 32       		.uleb128 0x32
- 33501 709f BE0D0000 		.long	0xdbe
- 33502 70a3 03       		.byte	0x3
- 33503 70a4 91       		.byte	0x91
- 33504 70a5 F058     		.sleb128 -5008
- 33505 70a7 32       		.uleb128 0x32
- 33506 70a8 B20D0000 		.long	0xdb2
- 33507 70ac 03       		.byte	0x3
- 33508 70ad 91       		.byte	0x91
- 33509 70ae 8059     		.sleb128 -4992
-
GAS LISTING /tmp/ccjbMjHD.s 			page 884
-
-
- 33510 70b0 35       		.uleb128 0x35
- 33511 70b1 CB0D0000 		.long	0xdcb
- 33512 70b5 00000000 		.quad	.LBB2188
- 33512      00000000 
- 33513 70bd 00000000 		.quad	.LBE2188
- 33513      00000000 
- 33514 70c5 02       		.byte	0x2
- 33515 70c6 7501     		.value	0x175
- 33516 70c8 32       		.uleb128 0x32
- 33517 70c9 E90D0000 		.long	0xde9
- 33518 70cd 03       		.byte	0x3
- 33519 70ce 91       		.byte	0x91
- 33520 70cf 9059     		.sleb128 -4976
- 33521 70d1 32       		.uleb128 0x32
- 33522 70d2 DD0D0000 		.long	0xddd
- 33523 70d6 03       		.byte	0x3
- 33524 70d7 91       		.byte	0x91
- 33525 70d8 A059     		.sleb128 -4960
- 33526 70da 00       		.byte	0x0
- 33527 70db 00       		.byte	0x0
- 33528 70dc 00       		.byte	0x0
- 33529 70dd 00       		.byte	0x0
- 33530 70de 00       		.byte	0x0
- 33531 70df 00       		.byte	0x0
- 33532 70e0 31       		.uleb128 0x31
- 33533 70e1 F60E0000 		.long	0xef6
- 33534 70e5 00000000 		.quad	.LBB2190
- 33534      00000000 
- 33535 70ed 00000000 		.quad	.LBE2190
- 33535      00000000 
- 33536 70f5 02       		.byte	0x2
- 33537 70f6 2607     		.value	0x726
- 33538 70f8 F5720000 		.long	0x72f5
- 33539 70fc 32       		.uleb128 0x32
- 33540 70fd 080F0000 		.long	0xf08
- 33541 7101 03       		.byte	0x3
- 33542 7102 91       		.byte	0x91
- 33543 7103 B059     		.sleb128 -4944
- 33544 7105 33       		.uleb128 0x33
- 33545 7106 00000000 		.quad	.LBB2191
- 33545      00000000 
- 33546 710e 00000000 		.quad	.LBE2191
- 33546      00000000 
- 33547 7116 34       		.uleb128 0x34
- 33548 7117 140F0000 		.long	0xf14
- 33549 711b 04       		.byte	0x4
- 33550 711c 76       		.byte	0x76
- 33551 711d C0BB7F   		.sleb128 -8768
- 33552 7120 31       		.uleb128 0x31
- 33553 7121 210F0000 		.long	0xf21
- 33554 7125 00000000 		.quad	.LBB2192
- 33554      00000000 
- 33555 712d 00000000 		.quad	.LBE2192
- 33555      00000000 
- 33556 7135 02       		.byte	0x2
- 33557 7136 1F06     		.value	0x61f
- 33558 7138 BD710000 		.long	0x71bd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 885
-
-
- 33559 713c 32       		.uleb128 0x32
- 33560 713d 330F0000 		.long	0xf33
- 33561 7141 03       		.byte	0x3
- 33562 7142 91       		.byte	0x91
- 33563 7143 C059     		.sleb128 -4928
- 33564 7145 33       		.uleb128 0x33
- 33565 7146 00000000 		.quad	.LBB2193
- 33565      00000000 
- 33566 714e 00000000 		.quad	.LBE2193
- 33566      00000000 
- 33567 7156 34       		.uleb128 0x34
- 33568 7157 3F0F0000 		.long	0xf3f
- 33569 715b 09       		.byte	0x9
- 33570 715c 03       		.byte	0x3
- 33571 715d 00000000 		.quad	mask.7943
- 33571      00000000 
- 33572 7165 35       		.uleb128 0x35
- 33573 7166 A00D0000 		.long	0xda0
- 33574 716a 00000000 		.quad	.LBB2194
- 33574      00000000 
- 33575 7172 00000000 		.quad	.LBE2194
- 33575      00000000 
- 33576 717a 02       		.byte	0x2
- 33577 717b FE04     		.value	0x4fe
- 33578 717d 32       		.uleb128 0x32
- 33579 717e BE0D0000 		.long	0xdbe
- 33580 7182 03       		.byte	0x3
- 33581 7183 91       		.byte	0x91
- 33582 7184 D059     		.sleb128 -4912
- 33583 7186 32       		.uleb128 0x32
- 33584 7187 B20D0000 		.long	0xdb2
- 33585 718b 03       		.byte	0x3
- 33586 718c 91       		.byte	0x91
- 33587 718d E059     		.sleb128 -4896
- 33588 718f 35       		.uleb128 0x35
- 33589 7190 CB0D0000 		.long	0xdcb
- 33590 7194 00000000 		.quad	.LBB2196
- 33590      00000000 
- 33591 719c 00000000 		.quad	.LBE2196
- 33591      00000000 
- 33592 71a4 02       		.byte	0x2
- 33593 71a5 7501     		.value	0x175
- 33594 71a7 32       		.uleb128 0x32
- 33595 71a8 E90D0000 		.long	0xde9
- 33596 71ac 03       		.byte	0x3
- 33597 71ad 91       		.byte	0x91
- 33598 71ae F059     		.sleb128 -4880
- 33599 71b0 32       		.uleb128 0x32
- 33600 71b1 DD0D0000 		.long	0xddd
- 33601 71b5 03       		.byte	0x3
- 33602 71b6 91       		.byte	0x91
- 33603 71b7 805A     		.sleb128 -4864
- 33604 71b9 00       		.byte	0x0
- 33605 71ba 00       		.byte	0x0
- 33606 71bb 00       		.byte	0x0
- 33607 71bc 00       		.byte	0x0
- 33608 71bd 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 886
-
-
- 33609 71be 210F0000 		.long	0xf21
- 33610 71c2 00000000 		.quad	.LBB2198
- 33610      00000000 
- 33611 71ca 00000000 		.quad	.LBE2198
- 33611      00000000 
- 33612 71d2 02       		.byte	0x2
- 33613 71d3 2006     		.value	0x620
- 33614 71d5 5A720000 		.long	0x725a
- 33615 71d9 32       		.uleb128 0x32
- 33616 71da 330F0000 		.long	0xf33
- 33617 71de 03       		.byte	0x3
- 33618 71df 91       		.byte	0x91
- 33619 71e0 905A     		.sleb128 -4848
- 33620 71e2 33       		.uleb128 0x33
- 33621 71e3 00000000 		.quad	.LBB2199
- 33621      00000000 
- 33622 71eb 00000000 		.quad	.LBE2199
- 33622      00000000 
- 33623 71f3 34       		.uleb128 0x34
- 33624 71f4 3F0F0000 		.long	0xf3f
- 33625 71f8 09       		.byte	0x9
- 33626 71f9 03       		.byte	0x3
- 33627 71fa 00000000 		.quad	mask.7943
- 33627      00000000 
- 33628 7202 35       		.uleb128 0x35
- 33629 7203 A00D0000 		.long	0xda0
- 33630 7207 00000000 		.quad	.LBB2200
- 33630      00000000 
- 33631 720f 00000000 		.quad	.LBE2200
- 33631      00000000 
- 33632 7217 02       		.byte	0x2
- 33633 7218 FE04     		.value	0x4fe
- 33634 721a 32       		.uleb128 0x32
- 33635 721b BE0D0000 		.long	0xdbe
- 33636 721f 03       		.byte	0x3
- 33637 7220 91       		.byte	0x91
- 33638 7221 A05A     		.sleb128 -4832
- 33639 7223 32       		.uleb128 0x32
- 33640 7224 B20D0000 		.long	0xdb2
- 33641 7228 03       		.byte	0x3
- 33642 7229 91       		.byte	0x91
- 33643 722a B05A     		.sleb128 -4816
- 33644 722c 35       		.uleb128 0x35
- 33645 722d CB0D0000 		.long	0xdcb
- 33646 7231 00000000 		.quad	.LBB2202
- 33646      00000000 
- 33647 7239 00000000 		.quad	.LBE2202
- 33647      00000000 
- 33648 7241 02       		.byte	0x2
- 33649 7242 7501     		.value	0x175
- 33650 7244 32       		.uleb128 0x32
- 33651 7245 E90D0000 		.long	0xde9
- 33652 7249 03       		.byte	0x3
- 33653 724a 91       		.byte	0x91
- 33654 724b C05A     		.sleb128 -4800
- 33655 724d 32       		.uleb128 0x32
- 33656 724e DD0D0000 		.long	0xddd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 887
-
-
- 33657 7252 03       		.byte	0x3
- 33658 7253 91       		.byte	0x91
- 33659 7254 D05A     		.sleb128 -4784
- 33660 7256 00       		.byte	0x0
- 33661 7257 00       		.byte	0x0
- 33662 7258 00       		.byte	0x0
- 33663 7259 00       		.byte	0x0
- 33664 725a 35       		.uleb128 0x35
- 33665 725b 210F0000 		.long	0xf21
- 33666 725f 00000000 		.quad	.LBB2204
- 33666      00000000 
- 33667 7267 00000000 		.quad	.LBE2204
- 33667      00000000 
- 33668 726f 02       		.byte	0x2
- 33669 7270 2106     		.value	0x621
- 33670 7272 32       		.uleb128 0x32
- 33671 7273 330F0000 		.long	0xf33
- 33672 7277 03       		.byte	0x3
- 33673 7278 91       		.byte	0x91
- 33674 7279 E05A     		.sleb128 -4768
- 33675 727b 33       		.uleb128 0x33
- 33676 727c 00000000 		.quad	.LBB2205
- 33676      00000000 
- 33677 7284 00000000 		.quad	.LBE2205
- 33677      00000000 
- 33678 728c 34       		.uleb128 0x34
- 33679 728d 3F0F0000 		.long	0xf3f
- 33680 7291 09       		.byte	0x9
- 33681 7292 03       		.byte	0x3
- 33682 7293 00000000 		.quad	mask.7943
- 33682      00000000 
- 33683 729b 35       		.uleb128 0x35
- 33684 729c A00D0000 		.long	0xda0
- 33685 72a0 00000000 		.quad	.LBB2206
- 33685      00000000 
- 33686 72a8 00000000 		.quad	.LBE2206
- 33686      00000000 
- 33687 72b0 02       		.byte	0x2
- 33688 72b1 FE04     		.value	0x4fe
- 33689 72b3 32       		.uleb128 0x32
- 33690 72b4 BE0D0000 		.long	0xdbe
- 33691 72b8 03       		.byte	0x3
- 33692 72b9 91       		.byte	0x91
- 33693 72ba F05A     		.sleb128 -4752
- 33694 72bc 32       		.uleb128 0x32
- 33695 72bd B20D0000 		.long	0xdb2
- 33696 72c1 03       		.byte	0x3
- 33697 72c2 91       		.byte	0x91
- 33698 72c3 805B     		.sleb128 -4736
- 33699 72c5 35       		.uleb128 0x35
- 33700 72c6 CB0D0000 		.long	0xdcb
- 33701 72ca 00000000 		.quad	.LBB2208
- 33701      00000000 
- 33702 72d2 00000000 		.quad	.LBE2208
- 33702      00000000 
- 33703 72da 02       		.byte	0x2
- 33704 72db 7501     		.value	0x175
-
GAS LISTING /tmp/ccjbMjHD.s 			page 888
-
-
- 33705 72dd 32       		.uleb128 0x32
- 33706 72de E90D0000 		.long	0xde9
- 33707 72e2 03       		.byte	0x3
- 33708 72e3 91       		.byte	0x91
- 33709 72e4 905B     		.sleb128 -4720
- 33710 72e6 32       		.uleb128 0x32
- 33711 72e7 DD0D0000 		.long	0xddd
- 33712 72eb 03       		.byte	0x3
- 33713 72ec 91       		.byte	0x91
- 33714 72ed A05B     		.sleb128 -4704
- 33715 72ef 00       		.byte	0x0
- 33716 72f0 00       		.byte	0x0
- 33717 72f1 00       		.byte	0x0
- 33718 72f2 00       		.byte	0x0
- 33719 72f3 00       		.byte	0x0
- 33720 72f4 00       		.byte	0x0
- 33721 72f5 31       		.uleb128 0x31
- 33722 72f6 D50B0000 		.long	0xbd5
- 33723 72fa 00000000 		.quad	.LBB2210
- 33723      00000000 
- 33724 7302 00000000 		.quad	.LBE2210
- 33724      00000000 
- 33725 730a 02       		.byte	0x2
- 33726 730b 2707     		.value	0x727
- 33727 730d D8770000 		.long	0x77d8
- 33728 7311 32       		.uleb128 0x32
- 33729 7312 F30B0000 		.long	0xbf3
- 33730 7316 03       		.byte	0x3
- 33731 7317 91       		.byte	0x91
- 33732 7318 BC5B     		.sleb128 -4676
- 33733 731a 32       		.uleb128 0x32
- 33734 731b E70B0000 		.long	0xbe7
- 33735 731f 03       		.byte	0x3
- 33736 7320 91       		.byte	0x91
- 33737 7321 C05B     		.sleb128 -4672
- 33738 7323 33       		.uleb128 0x33
- 33739 7324 00000000 		.quad	.LBB2211
- 33739      00000000 
- 33740 732c 00000000 		.quad	.LBE2211
- 33740      00000000 
- 33741 7334 34       		.uleb128 0x34
- 33742 7335 FF0B0000 		.long	0xbff
- 33743 7339 04       		.byte	0x4
- 33744 733a 76       		.byte	0x76
- 33745 733b E0BB7F   		.sleb128 -8736
- 33746 733e 34       		.uleb128 0x34
- 33747 733f 0B0C0000 		.long	0xc0b
- 33748 7343 04       		.byte	0x4
- 33749 7344 76       		.byte	0x76
- 33750 7345 D0BB7F   		.sleb128 -8752
- 33751 7348 31       		.uleb128 0x31
- 33752 7349 540C0000 		.long	0xc54
- 33753 734d 00000000 		.quad	.LBB2212
- 33753      00000000 
- 33754 7355 00000000 		.quad	.LBE2212
- 33754      00000000 
- 33755 735d 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 889
-
-
- 33756 735e 9106     		.value	0x691
- 33757 7360 B4730000 		.long	0x73b4
- 33758 7364 32       		.uleb128 0x32
- 33759 7365 7E0C0000 		.long	0xc7e
- 33760 7369 03       		.byte	0x3
- 33761 736a 91       		.byte	0x91
- 33762 736b D85B     		.sleb128 -4648
- 33763 736d 32       		.uleb128 0x32
- 33764 736e 720C0000 		.long	0xc72
- 33765 7372 03       		.byte	0x3
- 33766 7373 91       		.byte	0x91
- 33767 7374 DC5B     		.sleb128 -4644
- 33768 7376 32       		.uleb128 0x32
- 33769 7377 660C0000 		.long	0xc66
- 33770 737b 03       		.byte	0x3
- 33771 737c 91       		.byte	0x91
- 33772 737d E05B     		.sleb128 -4640
- 33773 737f 35       		.uleb128 0x35
- 33774 7380 8B0C0000 		.long	0xc8b
- 33775 7384 00000000 		.quad	.LBB2214
- 33775      00000000 
- 33776 738c 00000000 		.quad	.LBE2214
- 33776      00000000 
- 33777 7394 02       		.byte	0x2
- 33778 7395 0702     		.value	0x207
- 33779 7397 32       		.uleb128 0x32
- 33780 7398 B40C0000 		.long	0xcb4
- 33781 739c 03       		.byte	0x3
- 33782 739d 91       		.byte	0x91
- 33783 739e F85B     		.sleb128 -4616
- 33784 73a0 32       		.uleb128 0x32
- 33785 73a1 A90C0000 		.long	0xca9
- 33786 73a5 03       		.byte	0x3
- 33787 73a6 91       		.byte	0x91
- 33788 73a7 FC5B     		.sleb128 -4612
- 33789 73a9 32       		.uleb128 0x32
- 33790 73aa 9D0C0000 		.long	0xc9d
- 33791 73ae 03       		.byte	0x3
- 33792 73af 91       		.byte	0x91
- 33793 73b0 805C     		.sleb128 -4608
- 33794 73b2 00       		.byte	0x0
- 33795 73b3 00       		.byte	0x0
- 33796 73b4 31       		.uleb128 0x31
- 33797 73b5 C10C0000 		.long	0xcc1
- 33798 73b9 00000000 		.quad	.LBB2216
- 33798      00000000 
- 33799 73c1 00000000 		.quad	.LBE2216
- 33799      00000000 
- 33800 73c9 02       		.byte	0x2
- 33801 73ca 9206     		.value	0x692
- 33802 73cc 3D760000 		.long	0x763d
- 33803 73d0 32       		.uleb128 0x32
- 33804 73d1 D30C0000 		.long	0xcd3
- 33805 73d5 03       		.byte	0x3
- 33806 73d6 91       		.byte	0x91
- 33807 73d7 905C     		.sleb128 -4592
- 33808 73d9 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 890
-
-
- 33809 73da E00C0000 		.long	0xce0
- 33810 73de 00000000 		.quad	.LBB2218
- 33810      00000000 
- 33811 73e6 00000000 		.quad	.LBE2218
- 33811      00000000 
- 33812 73ee 02       		.byte	0x2
- 33813 73ef 7D03     		.value	0x37d
- 33814 73f1 32       		.uleb128 0x32
- 33815 73f2 FE0C0000 		.long	0xcfe
- 33816 73f6 03       		.byte	0x3
- 33817 73f7 91       		.byte	0x91
- 33818 73f8 A85C     		.sleb128 -4568
- 33819 73fa 32       		.uleb128 0x32
- 33820 73fb F20C0000 		.long	0xcf2
- 33821 73ff 03       		.byte	0x3
- 33822 7400 91       		.byte	0x91
- 33823 7401 B05C     		.sleb128 -4560
- 33824 7403 33       		.uleb128 0x33
- 33825 7404 00000000 		.quad	.LBB2219
- 33825      00000000 
- 33826 740c 00000000 		.quad	.LBE2219
- 33826      00000000 
- 33827 7414 34       		.uleb128 0x34
- 33828 7415 0A0D0000 		.long	0xd0a
- 33829 7419 03       		.byte	0x3
- 33830 741a 91       		.byte	0x91
- 33831 741b 805D     		.sleb128 -4480
- 33832 741d 34       		.uleb128 0x34
- 33833 741e 150D0000 		.long	0xd15
- 33834 7422 03       		.byte	0x3
- 33835 7423 91       		.byte	0x91
- 33836 7424 F05C     		.sleb128 -4496
- 33837 7426 34       		.uleb128 0x34
- 33838 7427 200D0000 		.long	0xd20
- 33839 742b 03       		.byte	0x3
- 33840 742c 91       		.byte	0x91
- 33841 742d E05C     		.sleb128 -4512
- 33842 742f 34       		.uleb128 0x34
- 33843 7430 2C0D0000 		.long	0xd2c
- 33844 7434 03       		.byte	0x3
- 33845 7435 91       		.byte	0x91
- 33846 7436 D05C     		.sleb128 -4528
- 33847 7438 34       		.uleb128 0x34
- 33848 7439 380D0000 		.long	0xd38
- 33849 743d 03       		.byte	0x3
- 33850 743e 91       		.byte	0x91
- 33851 743f CC5C     		.sleb128 -4532
- 33852 7441 31       		.uleb128 0x31
- 33853 7442 4F0D0000 		.long	0xd4f
- 33854 7446 00000000 		.quad	.LBB2220
- 33854      00000000 
- 33855 744e 00000000 		.quad	.LBE2220
- 33855      00000000 
- 33856 7456 02       		.byte	0x2
- 33857 7457 5603     		.value	0x356
- 33858 7459 70740000 		.long	0x7470
- 33859 745d 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 891
-
-
- 33860 745e 6A0D0000 		.long	0xd6a
- 33861 7462 03       		.byte	0x3
- 33862 7463 91       		.byte	0x91
- 33863 7464 905D     		.sleb128 -4464
- 33864 7466 32       		.uleb128 0x32
- 33865 7467 600D0000 		.long	0xd60
- 33866 746b 03       		.byte	0x3
- 33867 746c 91       		.byte	0x91
- 33868 746d A05D     		.sleb128 -4448
- 33869 746f 00       		.byte	0x0
- 33870 7470 31       		.uleb128 0x31
- 33871 7471 750D0000 		.long	0xd75
- 33872 7475 00000000 		.quad	.LBB2222
- 33872      00000000 
- 33873 747d 00000000 		.quad	.LBE2222
- 33873      00000000 
- 33874 7485 02       		.byte	0x2
- 33875 7486 5903     		.value	0x359
- 33876 7488 9F740000 		.long	0x749f
- 33877 748c 32       		.uleb128 0x32
- 33878 748d 930D0000 		.long	0xd93
- 33879 7491 03       		.byte	0x3
- 33880 7492 91       		.byte	0x91
- 33881 7493 BC5D     		.sleb128 -4420
- 33882 7495 32       		.uleb128 0x32
- 33883 7496 870D0000 		.long	0xd87
- 33884 749a 03       		.byte	0x3
- 33885 749b 91       		.byte	0x91
- 33886 749c C05D     		.sleb128 -4416
- 33887 749e 00       		.byte	0x0
- 33888 749f 31       		.uleb128 0x31
- 33889 74a0 4F0D0000 		.long	0xd4f
- 33890 74a4 00000000 		.quad	.LBB2224
- 33890      00000000 
- 33891 74ac 00000000 		.quad	.LBE2224
- 33891      00000000 
- 33892 74b4 02       		.byte	0x2
- 33893 74b5 5B03     		.value	0x35b
- 33894 74b7 CE740000 		.long	0x74ce
- 33895 74bb 32       		.uleb128 0x32
- 33896 74bc 6A0D0000 		.long	0xd6a
- 33897 74c0 03       		.byte	0x3
- 33898 74c1 91       		.byte	0x91
- 33899 74c2 D05D     		.sleb128 -4400
- 33900 74c4 32       		.uleb128 0x32
- 33901 74c5 600D0000 		.long	0xd60
- 33902 74c9 03       		.byte	0x3
- 33903 74ca 91       		.byte	0x91
- 33904 74cb E05D     		.sleb128 -4384
- 33905 74cd 00       		.byte	0x0
- 33906 74ce 31       		.uleb128 0x31
- 33907 74cf A00D0000 		.long	0xda0
- 33908 74d3 00000000 		.quad	.LBB2226
- 33908      00000000 
- 33909 74db 00000000 		.quad	.LBE2226
- 33909      00000000 
- 33910 74e3 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 892
-
-
- 33911 74e4 6403     		.value	0x364
- 33912 74e6 28750000 		.long	0x7528
- 33913 74ea 32       		.uleb128 0x32
- 33914 74eb BE0D0000 		.long	0xdbe
- 33915 74ef 03       		.byte	0x3
- 33916 74f0 91       		.byte	0x91
- 33917 74f1 F05D     		.sleb128 -4368
- 33918 74f3 32       		.uleb128 0x32
- 33919 74f4 B20D0000 		.long	0xdb2
- 33920 74f8 03       		.byte	0x3
- 33921 74f9 91       		.byte	0x91
- 33922 74fa 805E     		.sleb128 -4352
- 33923 74fc 35       		.uleb128 0x35
- 33924 74fd CB0D0000 		.long	0xdcb
- 33925 7501 00000000 		.quad	.LBB2228
- 33925      00000000 
- 33926 7509 00000000 		.quad	.LBE2228
- 33926      00000000 
- 33927 7511 02       		.byte	0x2
- 33928 7512 7501     		.value	0x175
- 33929 7514 32       		.uleb128 0x32
- 33930 7515 E90D0000 		.long	0xde9
- 33931 7519 03       		.byte	0x3
- 33932 751a 91       		.byte	0x91
- 33933 751b 905E     		.sleb128 -4336
- 33934 751d 32       		.uleb128 0x32
- 33935 751e DD0D0000 		.long	0xddd
- 33936 7522 03       		.byte	0x3
- 33937 7523 91       		.byte	0x91
- 33938 7524 A05E     		.sleb128 -4320
- 33939 7526 00       		.byte	0x0
- 33940 7527 00       		.byte	0x0
- 33941 7528 31       		.uleb128 0x31
- 33942 7529 FB0D0000 		.long	0xdfb
- 33943 752d 00000000 		.quad	.LBB2230
- 33943      00000000 
- 33944 7535 00000000 		.quad	.LBE2230
- 33944      00000000 
- 33945 753d 02       		.byte	0x2
- 33946 753e 6603     		.value	0x366
- 33947 7540 57750000 		.long	0x7557
- 33948 7544 32       		.uleb128 0x32
- 33949 7545 160E0000 		.long	0xe16
- 33950 7549 03       		.byte	0x3
- 33951 754a 91       		.byte	0x91
- 33952 754b B05E     		.sleb128 -4304
- 33953 754d 32       		.uleb128 0x32
- 33954 754e 0C0E0000 		.long	0xe0c
- 33955 7552 03       		.byte	0x3
- 33956 7553 91       		.byte	0x91
- 33957 7554 C05E     		.sleb128 -4288
- 33958 7556 00       		.byte	0x0
- 33959 7557 31       		.uleb128 0x31
- 33960 7558 A00D0000 		.long	0xda0
- 33961 755c 00000000 		.quad	.LBB2232
- 33961      00000000 
- 33962 7564 00000000 		.quad	.LBE2232
-
GAS LISTING /tmp/ccjbMjHD.s 			page 893
-
-
- 33962      00000000 
- 33963 756c 02       		.byte	0x2
- 33964 756d 6803     		.value	0x368
- 33965 756f B1750000 		.long	0x75b1
- 33966 7573 32       		.uleb128 0x32
- 33967 7574 BE0D0000 		.long	0xdbe
- 33968 7578 03       		.byte	0x3
- 33969 7579 91       		.byte	0x91
- 33970 757a D05E     		.sleb128 -4272
- 33971 757c 32       		.uleb128 0x32
- 33972 757d B20D0000 		.long	0xdb2
- 33973 7581 03       		.byte	0x3
- 33974 7582 91       		.byte	0x91
- 33975 7583 E05E     		.sleb128 -4256
- 33976 7585 35       		.uleb128 0x35
- 33977 7586 CB0D0000 		.long	0xdcb
- 33978 758a 00000000 		.quad	.LBB2234
- 33978      00000000 
- 33979 7592 00000000 		.quad	.LBE2234
- 33979      00000000 
- 33980 759a 02       		.byte	0x2
- 33981 759b 7501     		.value	0x175
- 33982 759d 32       		.uleb128 0x32
- 33983 759e E90D0000 		.long	0xde9
- 33984 75a2 03       		.byte	0x3
- 33985 75a3 91       		.byte	0x91
- 33986 75a4 F05E     		.sleb128 -4240
- 33987 75a6 32       		.uleb128 0x32
- 33988 75a7 DD0D0000 		.long	0xddd
- 33989 75ab 03       		.byte	0x3
- 33990 75ac 91       		.byte	0x91
- 33991 75ad 805F     		.sleb128 -4224
- 33992 75af 00       		.byte	0x0
- 33993 75b0 00       		.byte	0x0
- 33994 75b1 31       		.uleb128 0x31
- 33995 75b2 FB0D0000 		.long	0xdfb
- 33996 75b6 00000000 		.quad	.LBB2236
- 33996      00000000 
- 33997 75be 00000000 		.quad	.LBE2236
- 33997      00000000 
- 33998 75c6 02       		.byte	0x2
- 33999 75c7 6A03     		.value	0x36a
- 34000 75c9 E0750000 		.long	0x75e0
- 34001 75cd 32       		.uleb128 0x32
- 34002 75ce 160E0000 		.long	0xe16
- 34003 75d2 03       		.byte	0x3
- 34004 75d3 91       		.byte	0x91
- 34005 75d4 905F     		.sleb128 -4208
- 34006 75d6 32       		.uleb128 0x32
- 34007 75d7 0C0E0000 		.long	0xe0c
- 34008 75db 03       		.byte	0x3
- 34009 75dc 91       		.byte	0x91
- 34010 75dd A05F     		.sleb128 -4192
- 34011 75df 00       		.byte	0x0
- 34012 75e0 31       		.uleb128 0x31
- 34013 75e1 210E0000 		.long	0xe21
- 34014 75e5 00000000 		.quad	.LBB2238
-
GAS LISTING /tmp/ccjbMjHD.s 			page 894
-
-
- 34014      00000000 
- 34015 75ed 00000000 		.quad	.LBE2238
- 34015      00000000 
- 34016 75f5 02       		.byte	0x2
- 34017 75f6 6C03     		.value	0x36c
- 34018 75f8 0F760000 		.long	0x760f
- 34019 75fc 32       		.uleb128 0x32
- 34020 75fd 3E0E0000 		.long	0xe3e
- 34021 7601 03       		.byte	0x3
- 34022 7602 91       		.byte	0x91
- 34023 7603 B05F     		.sleb128 -4176
- 34024 7605 32       		.uleb128 0x32
- 34025 7606 330E0000 		.long	0xe33
- 34026 760a 03       		.byte	0x3
- 34027 760b 91       		.byte	0x91
- 34028 760c C05F     		.sleb128 -4160
- 34029 760e 00       		.byte	0x0
- 34030 760f 35       		.uleb128 0x35
- 34031 7610 4F0D0000 		.long	0xd4f
- 34032 7614 00000000 		.quad	.LBB2240
- 34032      00000000 
- 34033 761c 00000000 		.quad	.LBE2240
- 34033      00000000 
- 34034 7624 02       		.byte	0x2
- 34035 7625 6E03     		.value	0x36e
- 34036 7627 32       		.uleb128 0x32
- 34037 7628 6A0D0000 		.long	0xd6a
- 34038 762c 03       		.byte	0x3
- 34039 762d 91       		.byte	0x91
- 34040 762e D05F     		.sleb128 -4144
- 34041 7630 32       		.uleb128 0x32
- 34042 7631 600D0000 		.long	0xd60
- 34043 7635 03       		.byte	0x3
- 34044 7636 91       		.byte	0x91
- 34045 7637 E05F     		.sleb128 -4128
- 34046 7639 00       		.byte	0x0
- 34047 763a 00       		.byte	0x0
- 34048 763b 00       		.byte	0x0
- 34049 763c 00       		.byte	0x0
- 34050 763d 36       		.uleb128 0x36
- 34051 763e 00000000 		.quad	.LBB2242
- 34051      00000000 
- 34052 7646 00000000 		.quad	.LBE2242
- 34052      00000000 
- 34053 764e 5D760000 		.long	0x765d
- 34054 7652 34       		.uleb128 0x34
- 34055 7653 1C0C0000 		.long	0xc1c
- 34056 7657 04       		.byte	0x4
- 34057 7658 91       		.byte	0x91
- 34058 7659 D0BE7F   		.sleb128 -8368
- 34059 765c 00       		.byte	0x0
- 34060 765d 31       		.uleb128 0x31
- 34061 765e 4A0E0000 		.long	0xe4a
- 34062 7662 00000000 		.quad	.LBB2243
- 34062      00000000 
- 34063 766a 00000000 		.quad	.LBE2243
- 34063      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 895
-
-
- 34064 7672 02       		.byte	0x2
- 34065 7673 9406     		.value	0x694
- 34066 7675 FA760000 		.long	0x76fa
- 34067 7679 32       		.uleb128 0x32
- 34068 767a 5C0E0000 		.long	0xe5c
- 34069 767e 03       		.byte	0x3
- 34070 767f 91       		.byte	0x91
- 34071 7680 F05F     		.sleb128 -4112
- 34072 7682 33       		.uleb128 0x33
- 34073 7683 00000000 		.quad	.LBB2244
- 34073      00000000 
- 34074 768b 00000000 		.quad	.LBE2244
- 34074      00000000 
- 34075 7693 34       		.uleb128 0x34
- 34076 7694 680E0000 		.long	0xe68
- 34077 7698 09       		.byte	0x9
- 34078 7699 03       		.byte	0x3
- 34079 769a 00000000 		.quad	ShiftRowTable.7385
- 34079      00000000 
- 34080 76a2 35       		.uleb128 0x35
- 34081 76a3 A00D0000 		.long	0xda0
- 34082 76a7 00000000 		.quad	.LBB2245
- 34082      00000000 
- 34083 76af 00000000 		.quad	.LBE2245
- 34083      00000000 
- 34084 76b7 02       		.byte	0x2
- 34085 76b8 9B02     		.value	0x29b
- 34086 76ba 32       		.uleb128 0x32
- 34087 76bb BE0D0000 		.long	0xdbe
- 34088 76bf 03       		.byte	0x3
- 34089 76c0 91       		.byte	0x91
- 34090 76c1 8060     		.sleb128 -4096
- 34091 76c3 32       		.uleb128 0x32
- 34092 76c4 B20D0000 		.long	0xdb2
- 34093 76c8 03       		.byte	0x3
- 34094 76c9 91       		.byte	0x91
- 34095 76ca 9060     		.sleb128 -4080
- 34096 76cc 35       		.uleb128 0x35
- 34097 76cd CB0D0000 		.long	0xdcb
- 34098 76d1 00000000 		.quad	.LBB2247
- 34098      00000000 
- 34099 76d9 00000000 		.quad	.LBE2247
- 34099      00000000 
- 34100 76e1 02       		.byte	0x2
- 34101 76e2 7501     		.value	0x175
- 34102 76e4 32       		.uleb128 0x32
- 34103 76e5 E90D0000 		.long	0xde9
- 34104 76e9 03       		.byte	0x3
- 34105 76ea 91       		.byte	0x91
- 34106 76eb A060     		.sleb128 -4064
- 34107 76ed 32       		.uleb128 0x32
- 34108 76ee DD0D0000 		.long	0xddd
- 34109 76f2 03       		.byte	0x3
- 34110 76f3 91       		.byte	0x91
- 34111 76f4 B060     		.sleb128 -4048
- 34112 76f6 00       		.byte	0x0
- 34113 76f7 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 896
-
-
- 34114 76f8 00       		.byte	0x0
- 34115 76f9 00       		.byte	0x0
- 34116 76fa 36       		.uleb128 0x36
- 34117 76fb 00000000 		.quad	.LBB2249
- 34117      00000000 
- 34118 7703 00000000 		.quad	.LBE2249
- 34118      00000000 
- 34119 770b 1A770000 		.long	0x771a
- 34120 770f 34       		.uleb128 0x34
- 34121 7710 2C0C0000 		.long	0xc2c
- 34122 7714 04       		.byte	0x4
- 34123 7715 91       		.byte	0x91
- 34124 7716 C0BE7F   		.sleb128 -8384
- 34125 7719 00       		.byte	0x0
- 34126 771a 31       		.uleb128 0x31
- 34127 771b 860E0000 		.long	0xe86
- 34128 771f 00000000 		.quad	.LBB2250
- 34128      00000000 
- 34129 7727 00000000 		.quad	.LBE2250
- 34129      00000000 
- 34130 772f 02       		.byte	0x2
- 34131 7730 9606     		.value	0x696
- 34132 7732 49770000 		.long	0x7749
- 34133 7736 32       		.uleb128 0x32
- 34134 7737 A10E0000 		.long	0xea1
- 34135 773b 03       		.byte	0x3
- 34136 773c 91       		.byte	0x91
- 34137 773d C060     		.sleb128 -4032
- 34138 773f 32       		.uleb128 0x32
- 34139 7740 970E0000 		.long	0xe97
- 34140 7744 03       		.byte	0x3
- 34141 7745 91       		.byte	0x91
- 34142 7746 D060     		.sleb128 -4016
- 34143 7748 00       		.byte	0x0
- 34144 7749 36       		.uleb128 0x36
- 34145 774a 00000000 		.quad	.LBB2252
- 34145      00000000 
- 34146 7752 00000000 		.quad	.LBE2252
- 34146      00000000 
- 34147 775a 69770000 		.long	0x7769
- 34148 775e 34       		.uleb128 0x34
- 34149 775f 3C0C0000 		.long	0xc3c
- 34150 7763 04       		.byte	0x4
- 34151 7764 91       		.byte	0x91
- 34152 7765 B0BE7F   		.sleb128 -8400
- 34153 7768 00       		.byte	0x0
- 34154 7769 31       		.uleb128 0x31
- 34155 776a AC0E0000 		.long	0xeac
- 34156 776e 00000000 		.quad	.LBB2253
- 34156      00000000 
- 34157 7776 00000000 		.quad	.LBE2253
- 34157      00000000 
- 34158 777e 02       		.byte	0x2
- 34159 777f 9806     		.value	0x698
- 34160 7781 BA770000 		.long	0x77ba
- 34161 7785 32       		.uleb128 0x32
- 34162 7786 BE0E0000 		.long	0xebe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 897
-
-
- 34163 778a 03       		.byte	0x3
- 34164 778b 91       		.byte	0x91
- 34165 778c E060     		.sleb128 -4000
- 34166 778e 35       		.uleb128 0x35
- 34167 778f CB0E0000 		.long	0xecb
- 34168 7793 00000000 		.quad	.LBB2255
- 34168      00000000 
- 34169 779b 00000000 		.quad	.LBE2255
- 34169      00000000 
- 34170 77a3 02       		.byte	0x2
- 34171 77a4 4905     		.value	0x549
- 34172 77a6 32       		.uleb128 0x32
- 34173 77a7 E90E0000 		.long	0xee9
- 34174 77ab 03       		.byte	0x3
- 34175 77ac 91       		.byte	0x91
- 34176 77ad FC60     		.sleb128 -3972
- 34177 77af 32       		.uleb128 0x32
- 34178 77b0 DD0E0000 		.long	0xedd
- 34179 77b4 03       		.byte	0x3
- 34180 77b5 91       		.byte	0x91
- 34181 77b6 8061     		.sleb128 -3968
- 34182 77b8 00       		.byte	0x0
- 34183 77b9 00       		.byte	0x0
- 34184 77ba 33       		.uleb128 0x33
- 34185 77bb 00000000 		.quad	.LBB2257
- 34185      00000000 
- 34186 77c3 00000000 		.quad	.LBE2257
- 34186      00000000 
- 34187 77cb 34       		.uleb128 0x34
- 34188 77cc 480C0000 		.long	0xc48
- 34189 77d0 04       		.byte	0x4
- 34190 77d1 91       		.byte	0x91
- 34191 77d2 A0BE7F   		.sleb128 -8416
- 34192 77d5 00       		.byte	0x0
- 34193 77d6 00       		.byte	0x0
- 34194 77d7 00       		.byte	0x0
- 34195 77d8 31       		.uleb128 0x31
- 34196 77d9 AC0E0000 		.long	0xeac
- 34197 77dd 00000000 		.quad	.LBB2258
- 34197      00000000 
- 34198 77e5 00000000 		.quad	.LBE2258
- 34198      00000000 
- 34199 77ed 02       		.byte	0x2
- 34200 77ee 2A07     		.value	0x72a
- 34201 77f0 29780000 		.long	0x7829
- 34202 77f4 32       		.uleb128 0x32
- 34203 77f5 BE0E0000 		.long	0xebe
- 34204 77f9 03       		.byte	0x3
- 34205 77fa 91       		.byte	0x91
- 34206 77fb 9061     		.sleb128 -3952
- 34207 77fd 35       		.uleb128 0x35
- 34208 77fe CB0E0000 		.long	0xecb
- 34209 7802 00000000 		.quad	.LBB2260
- 34209      00000000 
- 34210 780a 00000000 		.quad	.LBE2260
- 34210      00000000 
- 34211 7812 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 898
-
-
- 34212 7813 4905     		.value	0x549
- 34213 7815 32       		.uleb128 0x32
- 34214 7816 E90E0000 		.long	0xee9
- 34215 781a 03       		.byte	0x3
- 34216 781b 91       		.byte	0x91
- 34217 781c AC61     		.sleb128 -3924
- 34218 781e 32       		.uleb128 0x32
- 34219 781f DD0E0000 		.long	0xedd
- 34220 7823 03       		.byte	0x3
- 34221 7824 91       		.byte	0x91
- 34222 7825 B061     		.sleb128 -3920
- 34223 7827 00       		.byte	0x0
- 34224 7828 00       		.byte	0x0
- 34225 7829 31       		.uleb128 0x31
- 34226 782a 71560000 		.long	0x5671
- 34227 782e 00000000 		.quad	.LBB2262
- 34227      00000000 
- 34228 7836 00000000 		.quad	.LBE2262
- 34228      00000000 
- 34229 783e 02       		.byte	0x2
- 34230 783f 3207     		.value	0x732
- 34231 7841 F3780000 		.long	0x78f3
- 34232 7845 32       		.uleb128 0x32
- 34233 7846 8F560000 		.long	0x568f
- 34234 784a 03       		.byte	0x3
- 34235 784b 91       		.byte	0x91
- 34236 784c CC61     		.sleb128 -3892
- 34237 784e 32       		.uleb128 0x32
- 34238 784f 83560000 		.long	0x5683
- 34239 7853 03       		.byte	0x3
- 34240 7854 91       		.byte	0x91
- 34241 7855 D061     		.sleb128 -3888
- 34242 7857 33       		.uleb128 0x33
- 34243 7858 00000000 		.quad	.LBB2263
- 34243      00000000 
- 34244 7860 00000000 		.quad	.LBE2263
- 34244      00000000 
- 34245 7868 34       		.uleb128 0x34
- 34246 7869 9B560000 		.long	0x569b
- 34247 786d 04       		.byte	0x4
- 34248 786e 91       		.byte	0x91
- 34249 786f F0BE7F   		.sleb128 -8336
- 34250 7872 34       		.uleb128 0x34
- 34251 7873 A5560000 		.long	0x56a5
- 34252 7877 03       		.byte	0x3
- 34253 7878 91       		.byte	0x91
- 34254 7879 F061     		.sleb128 -3856
- 34255 787b 34       		.uleb128 0x34
- 34256 787c B1560000 		.long	0x56b1
- 34257 7880 03       		.byte	0x3
- 34258 7881 91       		.byte	0x91
- 34259 7882 EC61     		.sleb128 -3860
- 34260 7884 31       		.uleb128 0x31
- 34261 7885 BE560000 		.long	0x56be
- 34262 7889 00000000 		.quad	.LBB2264
- 34262      00000000 
- 34263 7891 00000000 		.quad	.LBE2264
-
GAS LISTING /tmp/ccjbMjHD.s 			page 899
-
-
- 34263      00000000 
- 34264 7899 02       		.byte	0x2
- 34265 789a 5F06     		.value	0x65f
- 34266 789c CF780000 		.long	0x78cf
- 34267 78a0 32       		.uleb128 0x32
- 34268 78a1 D0560000 		.long	0x56d0
- 34269 78a5 03       		.byte	0x3
- 34270 78a6 91       		.byte	0x91
- 34271 78a7 F461     		.sleb128 -3852
- 34272 78a9 33       		.uleb128 0x33
- 34273 78aa 00000000 		.quad	.LBB2265
- 34273      00000000 
- 34274 78b2 00000000 		.quad	.LBE2265
- 34274      00000000 
- 34275 78ba 34       		.uleb128 0x34
- 34276 78bb DA560000 		.long	0x56da
- 34277 78bf 04       		.byte	0x4
- 34278 78c0 91       		.byte	0x91
- 34279 78c1 E0BE7F   		.sleb128 -8352
- 34280 78c4 34       		.uleb128 0x34
- 34281 78c5 E6560000 		.long	0x56e6
- 34282 78c9 03       		.byte	0x3
- 34283 78ca 91       		.byte	0x91
- 34284 78cb F861     		.sleb128 -3848
- 34285 78cd 00       		.byte	0x0
- 34286 78ce 00       		.byte	0x0
- 34287 78cf 35       		.uleb128 0x35
- 34288 78d0 F2560000 		.long	0x56f2
- 34289 78d4 00000000 		.quad	.LBB2266
- 34289      00000000 
- 34290 78dc 00000000 		.quad	.LBE2266
- 34290      00000000 
- 34291 78e4 02       		.byte	0x2
- 34292 78e5 6006     		.value	0x660
- 34293 78e7 32       		.uleb128 0x32
- 34294 78e8 04570000 		.long	0x5704
- 34295 78ec 03       		.byte	0x3
- 34296 78ed 91       		.byte	0x91
- 34297 78ee FC61     		.sleb128 -3844
- 34298 78f0 00       		.byte	0x0
- 34299 78f1 00       		.byte	0x0
- 34300 78f2 00       		.byte	0x0
- 34301 78f3 31       		.uleb128 0x31
- 34302 78f4 F60E0000 		.long	0xef6
- 34303 78f8 00000000 		.quad	.LBB2268
- 34303      00000000 
- 34304 7900 00000000 		.quad	.LBE2268
- 34304      00000000 
- 34305 7908 02       		.byte	0x2
- 34306 7909 3407     		.value	0x734
- 34307 790b 087B0000 		.long	0x7b08
- 34308 790f 32       		.uleb128 0x32
- 34309 7910 080F0000 		.long	0xf08
- 34310 7914 03       		.byte	0x3
- 34311 7915 91       		.byte	0x91
- 34312 7916 8062     		.sleb128 -3840
- 34313 7918 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 900
-
-
- 34314 7919 00000000 		.quad	.LBB2269
- 34314      00000000 
- 34315 7921 00000000 		.quad	.LBE2269
- 34315      00000000 
- 34316 7929 34       		.uleb128 0x34
- 34317 792a 140F0000 		.long	0xf14
- 34318 792e 04       		.byte	0x4
- 34319 792f 76       		.byte	0x76
- 34320 7930 F0BB7F   		.sleb128 -8720
- 34321 7933 31       		.uleb128 0x31
- 34322 7934 210F0000 		.long	0xf21
- 34323 7938 00000000 		.quad	.LBB2270
- 34323      00000000 
- 34324 7940 00000000 		.quad	.LBE2270
- 34324      00000000 
- 34325 7948 02       		.byte	0x2
- 34326 7949 1F06     		.value	0x61f
- 34327 794b D0790000 		.long	0x79d0
- 34328 794f 32       		.uleb128 0x32
- 34329 7950 330F0000 		.long	0xf33
- 34330 7954 03       		.byte	0x3
- 34331 7955 91       		.byte	0x91
- 34332 7956 9062     		.sleb128 -3824
- 34333 7958 33       		.uleb128 0x33
- 34334 7959 00000000 		.quad	.LBB2271
- 34334      00000000 
- 34335 7961 00000000 		.quad	.LBE2271
- 34335      00000000 
- 34336 7969 34       		.uleb128 0x34
- 34337 796a 3F0F0000 		.long	0xf3f
- 34338 796e 09       		.byte	0x9
- 34339 796f 03       		.byte	0x3
- 34340 7970 00000000 		.quad	mask.7943
- 34340      00000000 
- 34341 7978 35       		.uleb128 0x35
- 34342 7979 A00D0000 		.long	0xda0
- 34343 797d 00000000 		.quad	.LBB2272
- 34343      00000000 
- 34344 7985 00000000 		.quad	.LBE2272
- 34344      00000000 
- 34345 798d 02       		.byte	0x2
- 34346 798e FE04     		.value	0x4fe
- 34347 7990 32       		.uleb128 0x32
- 34348 7991 BE0D0000 		.long	0xdbe
- 34349 7995 03       		.byte	0x3
- 34350 7996 91       		.byte	0x91
- 34351 7997 A062     		.sleb128 -3808
- 34352 7999 32       		.uleb128 0x32
- 34353 799a B20D0000 		.long	0xdb2
- 34354 799e 03       		.byte	0x3
- 34355 799f 91       		.byte	0x91
- 34356 79a0 B062     		.sleb128 -3792
- 34357 79a2 35       		.uleb128 0x35
- 34358 79a3 CB0D0000 		.long	0xdcb
- 34359 79a7 00000000 		.quad	.LBB2274
- 34359      00000000 
- 34360 79af 00000000 		.quad	.LBE2274
-
GAS LISTING /tmp/ccjbMjHD.s 			page 901
-
-
- 34360      00000000 
- 34361 79b7 02       		.byte	0x2
- 34362 79b8 7501     		.value	0x175
- 34363 79ba 32       		.uleb128 0x32
- 34364 79bb E90D0000 		.long	0xde9
- 34365 79bf 03       		.byte	0x3
- 34366 79c0 91       		.byte	0x91
- 34367 79c1 C062     		.sleb128 -3776
- 34368 79c3 32       		.uleb128 0x32
- 34369 79c4 DD0D0000 		.long	0xddd
- 34370 79c8 03       		.byte	0x3
- 34371 79c9 91       		.byte	0x91
- 34372 79ca D062     		.sleb128 -3760
- 34373 79cc 00       		.byte	0x0
- 34374 79cd 00       		.byte	0x0
- 34375 79ce 00       		.byte	0x0
- 34376 79cf 00       		.byte	0x0
- 34377 79d0 31       		.uleb128 0x31
- 34378 79d1 210F0000 		.long	0xf21
- 34379 79d5 00000000 		.quad	.LBB2276
- 34379      00000000 
- 34380 79dd 00000000 		.quad	.LBE2276
- 34380      00000000 
- 34381 79e5 02       		.byte	0x2
- 34382 79e6 2006     		.value	0x620
- 34383 79e8 6D7A0000 		.long	0x7a6d
- 34384 79ec 32       		.uleb128 0x32
- 34385 79ed 330F0000 		.long	0xf33
- 34386 79f1 03       		.byte	0x3
- 34387 79f2 91       		.byte	0x91
- 34388 79f3 E062     		.sleb128 -3744
- 34389 79f5 33       		.uleb128 0x33
- 34390 79f6 00000000 		.quad	.LBB2277
- 34390      00000000 
- 34391 79fe 00000000 		.quad	.LBE2277
- 34391      00000000 
- 34392 7a06 34       		.uleb128 0x34
- 34393 7a07 3F0F0000 		.long	0xf3f
- 34394 7a0b 09       		.byte	0x9
- 34395 7a0c 03       		.byte	0x3
- 34396 7a0d 00000000 		.quad	mask.7943
- 34396      00000000 
- 34397 7a15 35       		.uleb128 0x35
- 34398 7a16 A00D0000 		.long	0xda0
- 34399 7a1a 00000000 		.quad	.LBB2278
- 34399      00000000 
- 34400 7a22 00000000 		.quad	.LBE2278
- 34400      00000000 
- 34401 7a2a 02       		.byte	0x2
- 34402 7a2b FE04     		.value	0x4fe
- 34403 7a2d 32       		.uleb128 0x32
- 34404 7a2e BE0D0000 		.long	0xdbe
- 34405 7a32 03       		.byte	0x3
- 34406 7a33 91       		.byte	0x91
- 34407 7a34 F062     		.sleb128 -3728
- 34408 7a36 32       		.uleb128 0x32
- 34409 7a37 B20D0000 		.long	0xdb2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 902
-
-
- 34410 7a3b 03       		.byte	0x3
- 34411 7a3c 91       		.byte	0x91
- 34412 7a3d 8063     		.sleb128 -3712
- 34413 7a3f 35       		.uleb128 0x35
- 34414 7a40 CB0D0000 		.long	0xdcb
- 34415 7a44 00000000 		.quad	.LBB2280
- 34415      00000000 
- 34416 7a4c 00000000 		.quad	.LBE2280
- 34416      00000000 
- 34417 7a54 02       		.byte	0x2
- 34418 7a55 7501     		.value	0x175
- 34419 7a57 32       		.uleb128 0x32
- 34420 7a58 E90D0000 		.long	0xde9
- 34421 7a5c 03       		.byte	0x3
- 34422 7a5d 91       		.byte	0x91
- 34423 7a5e 9063     		.sleb128 -3696
- 34424 7a60 32       		.uleb128 0x32
- 34425 7a61 DD0D0000 		.long	0xddd
- 34426 7a65 03       		.byte	0x3
- 34427 7a66 91       		.byte	0x91
- 34428 7a67 A063     		.sleb128 -3680
- 34429 7a69 00       		.byte	0x0
- 34430 7a6a 00       		.byte	0x0
- 34431 7a6b 00       		.byte	0x0
- 34432 7a6c 00       		.byte	0x0
- 34433 7a6d 35       		.uleb128 0x35
- 34434 7a6e 210F0000 		.long	0xf21
- 34435 7a72 00000000 		.quad	.LBB2282
- 34435      00000000 
- 34436 7a7a 00000000 		.quad	.LBE2282
- 34436      00000000 
- 34437 7a82 02       		.byte	0x2
- 34438 7a83 2106     		.value	0x621
- 34439 7a85 32       		.uleb128 0x32
- 34440 7a86 330F0000 		.long	0xf33
- 34441 7a8a 03       		.byte	0x3
- 34442 7a8b 91       		.byte	0x91
- 34443 7a8c B063     		.sleb128 -3664
- 34444 7a8e 33       		.uleb128 0x33
- 34445 7a8f 00000000 		.quad	.LBB2283
- 34445      00000000 
- 34446 7a97 00000000 		.quad	.LBE2283
- 34446      00000000 
- 34447 7a9f 34       		.uleb128 0x34
- 34448 7aa0 3F0F0000 		.long	0xf3f
- 34449 7aa4 09       		.byte	0x9
- 34450 7aa5 03       		.byte	0x3
- 34451 7aa6 00000000 		.quad	mask.7943
- 34451      00000000 
- 34452 7aae 35       		.uleb128 0x35
- 34453 7aaf A00D0000 		.long	0xda0
- 34454 7ab3 00000000 		.quad	.LBB2284
- 34454      00000000 
- 34455 7abb 00000000 		.quad	.LBE2284
- 34455      00000000 
- 34456 7ac3 02       		.byte	0x2
- 34457 7ac4 FE04     		.value	0x4fe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 903
-
-
- 34458 7ac6 32       		.uleb128 0x32
- 34459 7ac7 BE0D0000 		.long	0xdbe
- 34460 7acb 03       		.byte	0x3
- 34461 7acc 91       		.byte	0x91
- 34462 7acd C063     		.sleb128 -3648
- 34463 7acf 32       		.uleb128 0x32
- 34464 7ad0 B20D0000 		.long	0xdb2
- 34465 7ad4 03       		.byte	0x3
- 34466 7ad5 91       		.byte	0x91
- 34467 7ad6 D063     		.sleb128 -3632
- 34468 7ad8 35       		.uleb128 0x35
- 34469 7ad9 CB0D0000 		.long	0xdcb
- 34470 7add 00000000 		.quad	.LBB2286
- 34470      00000000 
- 34471 7ae5 00000000 		.quad	.LBE2286
- 34471      00000000 
- 34472 7aed 02       		.byte	0x2
- 34473 7aee 7501     		.value	0x175
- 34474 7af0 32       		.uleb128 0x32
- 34475 7af1 E90D0000 		.long	0xde9
- 34476 7af5 03       		.byte	0x3
- 34477 7af6 91       		.byte	0x91
- 34478 7af7 E063     		.sleb128 -3616
- 34479 7af9 32       		.uleb128 0x32
- 34480 7afa DD0D0000 		.long	0xddd
- 34481 7afe 03       		.byte	0x3
- 34482 7aff 91       		.byte	0x91
- 34483 7b00 F063     		.sleb128 -3600
- 34484 7b02 00       		.byte	0x0
- 34485 7b03 00       		.byte	0x0
- 34486 7b04 00       		.byte	0x0
- 34487 7b05 00       		.byte	0x0
- 34488 7b06 00       		.byte	0x0
- 34489 7b07 00       		.byte	0x0
- 34490 7b08 31       		.uleb128 0x31
- 34491 7b09 F60E0000 		.long	0xef6
- 34492 7b0d 00000000 		.quad	.LBB2288
- 34492      00000000 
- 34493 7b15 00000000 		.quad	.LBE2288
- 34493      00000000 
- 34494 7b1d 02       		.byte	0x2
- 34495 7b1e 3607     		.value	0x736
- 34496 7b20 1D7D0000 		.long	0x7d1d
- 34497 7b24 32       		.uleb128 0x32
- 34498 7b25 080F0000 		.long	0xf08
- 34499 7b29 03       		.byte	0x3
- 34500 7b2a 91       		.byte	0x91
- 34501 7b2b 8064     		.sleb128 -3584
- 34502 7b2d 33       		.uleb128 0x33
- 34503 7b2e 00000000 		.quad	.LBB2289
- 34503      00000000 
- 34504 7b36 00000000 		.quad	.LBE2289
- 34504      00000000 
- 34505 7b3e 34       		.uleb128 0x34
- 34506 7b3f 140F0000 		.long	0xf14
- 34507 7b43 04       		.byte	0x4
- 34508 7b44 76       		.byte	0x76
-
GAS LISTING /tmp/ccjbMjHD.s 			page 904
-
-
- 34509 7b45 80BC7F   		.sleb128 -8704
- 34510 7b48 31       		.uleb128 0x31
- 34511 7b49 210F0000 		.long	0xf21
- 34512 7b4d 00000000 		.quad	.LBB2290
- 34512      00000000 
- 34513 7b55 00000000 		.quad	.LBE2290
- 34513      00000000 
- 34514 7b5d 02       		.byte	0x2
- 34515 7b5e 1F06     		.value	0x61f
- 34516 7b60 E57B0000 		.long	0x7be5
- 34517 7b64 32       		.uleb128 0x32
- 34518 7b65 330F0000 		.long	0xf33
- 34519 7b69 03       		.byte	0x3
- 34520 7b6a 91       		.byte	0x91
- 34521 7b6b 9064     		.sleb128 -3568
- 34522 7b6d 33       		.uleb128 0x33
- 34523 7b6e 00000000 		.quad	.LBB2291
- 34523      00000000 
- 34524 7b76 00000000 		.quad	.LBE2291
- 34524      00000000 
- 34525 7b7e 34       		.uleb128 0x34
- 34526 7b7f 3F0F0000 		.long	0xf3f
- 34527 7b83 09       		.byte	0x9
- 34528 7b84 03       		.byte	0x3
- 34529 7b85 00000000 		.quad	mask.7943
- 34529      00000000 
- 34530 7b8d 35       		.uleb128 0x35
- 34531 7b8e A00D0000 		.long	0xda0
- 34532 7b92 00000000 		.quad	.LBB2292
- 34532      00000000 
- 34533 7b9a 00000000 		.quad	.LBE2292
- 34533      00000000 
- 34534 7ba2 02       		.byte	0x2
- 34535 7ba3 FE04     		.value	0x4fe
- 34536 7ba5 32       		.uleb128 0x32
- 34537 7ba6 BE0D0000 		.long	0xdbe
- 34538 7baa 03       		.byte	0x3
- 34539 7bab 91       		.byte	0x91
- 34540 7bac A064     		.sleb128 -3552
- 34541 7bae 32       		.uleb128 0x32
- 34542 7baf B20D0000 		.long	0xdb2
- 34543 7bb3 03       		.byte	0x3
- 34544 7bb4 91       		.byte	0x91
- 34545 7bb5 B064     		.sleb128 -3536
- 34546 7bb7 35       		.uleb128 0x35
- 34547 7bb8 CB0D0000 		.long	0xdcb
- 34548 7bbc 00000000 		.quad	.LBB2294
- 34548      00000000 
- 34549 7bc4 00000000 		.quad	.LBE2294
- 34549      00000000 
- 34550 7bcc 02       		.byte	0x2
- 34551 7bcd 7501     		.value	0x175
- 34552 7bcf 32       		.uleb128 0x32
- 34553 7bd0 E90D0000 		.long	0xde9
- 34554 7bd4 03       		.byte	0x3
- 34555 7bd5 91       		.byte	0x91
- 34556 7bd6 C064     		.sleb128 -3520
-
GAS LISTING /tmp/ccjbMjHD.s 			page 905
-
-
- 34557 7bd8 32       		.uleb128 0x32
- 34558 7bd9 DD0D0000 		.long	0xddd
- 34559 7bdd 03       		.byte	0x3
- 34560 7bde 91       		.byte	0x91
- 34561 7bdf D064     		.sleb128 -3504
- 34562 7be1 00       		.byte	0x0
- 34563 7be2 00       		.byte	0x0
- 34564 7be3 00       		.byte	0x0
- 34565 7be4 00       		.byte	0x0
- 34566 7be5 31       		.uleb128 0x31
- 34567 7be6 210F0000 		.long	0xf21
- 34568 7bea 00000000 		.quad	.LBB2296
- 34568      00000000 
- 34569 7bf2 00000000 		.quad	.LBE2296
- 34569      00000000 
- 34570 7bfa 02       		.byte	0x2
- 34571 7bfb 2006     		.value	0x620
- 34572 7bfd 827C0000 		.long	0x7c82
- 34573 7c01 32       		.uleb128 0x32
- 34574 7c02 330F0000 		.long	0xf33
- 34575 7c06 03       		.byte	0x3
- 34576 7c07 91       		.byte	0x91
- 34577 7c08 E064     		.sleb128 -3488
- 34578 7c0a 33       		.uleb128 0x33
- 34579 7c0b 00000000 		.quad	.LBB2297
- 34579      00000000 
- 34580 7c13 00000000 		.quad	.LBE2297
- 34580      00000000 
- 34581 7c1b 34       		.uleb128 0x34
- 34582 7c1c 3F0F0000 		.long	0xf3f
- 34583 7c20 09       		.byte	0x9
- 34584 7c21 03       		.byte	0x3
- 34585 7c22 00000000 		.quad	mask.7943
- 34585      00000000 
- 34586 7c2a 35       		.uleb128 0x35
- 34587 7c2b A00D0000 		.long	0xda0
- 34588 7c2f 00000000 		.quad	.LBB2298
- 34588      00000000 
- 34589 7c37 00000000 		.quad	.LBE2298
- 34589      00000000 
- 34590 7c3f 02       		.byte	0x2
- 34591 7c40 FE04     		.value	0x4fe
- 34592 7c42 32       		.uleb128 0x32
- 34593 7c43 BE0D0000 		.long	0xdbe
- 34594 7c47 03       		.byte	0x3
- 34595 7c48 91       		.byte	0x91
- 34596 7c49 F064     		.sleb128 -3472
- 34597 7c4b 32       		.uleb128 0x32
- 34598 7c4c B20D0000 		.long	0xdb2
- 34599 7c50 03       		.byte	0x3
- 34600 7c51 91       		.byte	0x91
- 34601 7c52 8065     		.sleb128 -3456
- 34602 7c54 35       		.uleb128 0x35
- 34603 7c55 CB0D0000 		.long	0xdcb
- 34604 7c59 00000000 		.quad	.LBB2300
- 34604      00000000 
- 34605 7c61 00000000 		.quad	.LBE2300
-
GAS LISTING /tmp/ccjbMjHD.s 			page 906
-
-
- 34605      00000000 
- 34606 7c69 02       		.byte	0x2
- 34607 7c6a 7501     		.value	0x175
- 34608 7c6c 32       		.uleb128 0x32
- 34609 7c6d E90D0000 		.long	0xde9
- 34610 7c71 03       		.byte	0x3
- 34611 7c72 91       		.byte	0x91
- 34612 7c73 9065     		.sleb128 -3440
- 34613 7c75 32       		.uleb128 0x32
- 34614 7c76 DD0D0000 		.long	0xddd
- 34615 7c7a 03       		.byte	0x3
- 34616 7c7b 91       		.byte	0x91
- 34617 7c7c A065     		.sleb128 -3424
- 34618 7c7e 00       		.byte	0x0
- 34619 7c7f 00       		.byte	0x0
- 34620 7c80 00       		.byte	0x0
- 34621 7c81 00       		.byte	0x0
- 34622 7c82 35       		.uleb128 0x35
- 34623 7c83 210F0000 		.long	0xf21
- 34624 7c87 00000000 		.quad	.LBB2302
- 34624      00000000 
- 34625 7c8f 00000000 		.quad	.LBE2302
- 34625      00000000 
- 34626 7c97 02       		.byte	0x2
- 34627 7c98 2106     		.value	0x621
- 34628 7c9a 32       		.uleb128 0x32
- 34629 7c9b 330F0000 		.long	0xf33
- 34630 7c9f 03       		.byte	0x3
- 34631 7ca0 91       		.byte	0x91
- 34632 7ca1 B065     		.sleb128 -3408
- 34633 7ca3 33       		.uleb128 0x33
- 34634 7ca4 00000000 		.quad	.LBB2303
- 34634      00000000 
- 34635 7cac 00000000 		.quad	.LBE2303
- 34635      00000000 
- 34636 7cb4 34       		.uleb128 0x34
- 34637 7cb5 3F0F0000 		.long	0xf3f
- 34638 7cb9 09       		.byte	0x9
- 34639 7cba 03       		.byte	0x3
- 34640 7cbb 00000000 		.quad	mask.7943
- 34640      00000000 
- 34641 7cc3 35       		.uleb128 0x35
- 34642 7cc4 A00D0000 		.long	0xda0
- 34643 7cc8 00000000 		.quad	.LBB2304
- 34643      00000000 
- 34644 7cd0 00000000 		.quad	.LBE2304
- 34644      00000000 
- 34645 7cd8 02       		.byte	0x2
- 34646 7cd9 FE04     		.value	0x4fe
- 34647 7cdb 32       		.uleb128 0x32
- 34648 7cdc BE0D0000 		.long	0xdbe
- 34649 7ce0 03       		.byte	0x3
- 34650 7ce1 91       		.byte	0x91
- 34651 7ce2 C065     		.sleb128 -3392
- 34652 7ce4 32       		.uleb128 0x32
- 34653 7ce5 B20D0000 		.long	0xdb2
- 34654 7ce9 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 907
-
-
- 34655 7cea 91       		.byte	0x91
- 34656 7ceb D065     		.sleb128 -3376
- 34657 7ced 35       		.uleb128 0x35
- 34658 7cee CB0D0000 		.long	0xdcb
- 34659 7cf2 00000000 		.quad	.LBB2306
- 34659      00000000 
- 34660 7cfa 00000000 		.quad	.LBE2306
- 34660      00000000 
- 34661 7d02 02       		.byte	0x2
- 34662 7d03 7501     		.value	0x175
- 34663 7d05 32       		.uleb128 0x32
- 34664 7d06 E90D0000 		.long	0xde9
- 34665 7d0a 03       		.byte	0x3
- 34666 7d0b 91       		.byte	0x91
- 34667 7d0c E065     		.sleb128 -3360
- 34668 7d0e 32       		.uleb128 0x32
- 34669 7d0f DD0D0000 		.long	0xddd
- 34670 7d13 03       		.byte	0x3
- 34671 7d14 91       		.byte	0x91
- 34672 7d15 F065     		.sleb128 -3344
- 34673 7d17 00       		.byte	0x0
- 34674 7d18 00       		.byte	0x0
- 34675 7d19 00       		.byte	0x0
- 34676 7d1a 00       		.byte	0x0
- 34677 7d1b 00       		.byte	0x0
- 34678 7d1c 00       		.byte	0x0
- 34679 7d1d 31       		.uleb128 0x31
- 34680 7d1e AC0E0000 		.long	0xeac
- 34681 7d22 00000000 		.quad	.LBB2308
- 34681      00000000 
- 34682 7d2a 00000000 		.quad	.LBE2308
- 34682      00000000 
- 34683 7d32 02       		.byte	0x2
- 34684 7d33 3707     		.value	0x737
- 34685 7d35 6E7D0000 		.long	0x7d6e
- 34686 7d39 32       		.uleb128 0x32
- 34687 7d3a BE0E0000 		.long	0xebe
- 34688 7d3e 03       		.byte	0x3
- 34689 7d3f 91       		.byte	0x91
- 34690 7d40 8066     		.sleb128 -3328
- 34691 7d42 35       		.uleb128 0x35
- 34692 7d43 CB0E0000 		.long	0xecb
- 34693 7d47 00000000 		.quad	.LBB2310
- 34693      00000000 
- 34694 7d4f 00000000 		.quad	.LBE2310
- 34694      00000000 
- 34695 7d57 02       		.byte	0x2
- 34696 7d58 4905     		.value	0x549
- 34697 7d5a 32       		.uleb128 0x32
- 34698 7d5b E90E0000 		.long	0xee9
- 34699 7d5f 03       		.byte	0x3
- 34700 7d60 91       		.byte	0x91
- 34701 7d61 9C66     		.sleb128 -3300
- 34702 7d63 32       		.uleb128 0x32
- 34703 7d64 DD0E0000 		.long	0xedd
- 34704 7d68 03       		.byte	0x3
- 34705 7d69 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 908
-
-
- 34706 7d6a A066     		.sleb128 -3296
- 34707 7d6c 00       		.byte	0x0
- 34708 7d6d 00       		.byte	0x0
- 34709 7d6e 31       		.uleb128 0x31
- 34710 7d6f 0F570000 		.long	0x570f
- 34711 7d73 00000000 		.quad	.LBB2312
- 34711      00000000 
- 34712 7d7b 00000000 		.quad	.LBE2312
- 34712      00000000 
- 34713 7d83 02       		.byte	0x2
- 34714 7d84 3907     		.value	0x739
- 34715 7d86 D17D0000 		.long	0x7dd1
- 34716 7d8a 32       		.uleb128 0x32
- 34717 7d8b 2B570000 		.long	0x572b
- 34718 7d8f 03       		.byte	0x3
- 34719 7d90 91       		.byte	0x91
- 34720 7d91 B066     		.sleb128 -3280
- 34721 7d93 32       		.uleb128 0x32
- 34722 7d94 21570000 		.long	0x5721
- 34723 7d98 03       		.byte	0x3
- 34724 7d99 91       		.byte	0x91
- 34725 7d9a C066     		.sleb128 -3264
- 34726 7d9c 35       		.uleb128 0x35
- 34727 7d9d 36570000 		.long	0x5736
- 34728 7da1 00000000 		.quad	.LBB2314
- 34728      00000000 
- 34729 7da9 00000000 		.quad	.LBE2314
- 34729      00000000 
- 34730 7db1 02       		.byte	0x2
- 34731 7db2 BA05     		.value	0x5ba
- 34732 7db4 32       		.uleb128 0x32
- 34733 7db5 60570000 		.long	0x5760
- 34734 7db9 03       		.byte	0x3
- 34735 7dba 91       		.byte	0x91
- 34736 7dbb DC66     		.sleb128 -3236
- 34737 7dbd 32       		.uleb128 0x32
- 34738 7dbe 54570000 		.long	0x5754
- 34739 7dc2 03       		.byte	0x3
- 34740 7dc3 91       		.byte	0x91
- 34741 7dc4 E066     		.sleb128 -3232
- 34742 7dc6 32       		.uleb128 0x32
- 34743 7dc7 48570000 		.long	0x5748
- 34744 7dcb 03       		.byte	0x3
- 34745 7dcc 91       		.byte	0x91
- 34746 7dcd F066     		.sleb128 -3216
- 34747 7dcf 00       		.byte	0x0
- 34748 7dd0 00       		.byte	0x0
- 34749 7dd1 31       		.uleb128 0x31
- 34750 7dd2 6D570000 		.long	0x576d
- 34751 7dd6 00000000 		.quad	.LBB2316
- 34751      00000000 
- 34752 7dde 00000000 		.quad	.LBE2316
- 34752      00000000 
- 34753 7de6 02       		.byte	0x2
- 34754 7de7 3D07     		.value	0x73d
- 34755 7de9 347E0000 		.long	0x7e34
- 34756 7ded 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 909
-
-
- 34757 7dee 89570000 		.long	0x5789
- 34758 7df2 03       		.byte	0x3
- 34759 7df3 91       		.byte	0x91
- 34760 7df4 8067     		.sleb128 -3200
- 34761 7df6 32       		.uleb128 0x32
- 34762 7df7 7F570000 		.long	0x577f
- 34763 7dfb 03       		.byte	0x3
- 34764 7dfc 91       		.byte	0x91
- 34765 7dfd 9067     		.sleb128 -3184
- 34766 7dff 35       		.uleb128 0x35
- 34767 7e00 36570000 		.long	0x5736
- 34768 7e04 00000000 		.quad	.LBB2318
- 34768      00000000 
- 34769 7e0c 00000000 		.quad	.LBE2318
- 34769      00000000 
- 34770 7e14 02       		.byte	0x2
- 34771 7e15 DA05     		.value	0x5da
- 34772 7e17 32       		.uleb128 0x32
- 34773 7e18 60570000 		.long	0x5760
- 34774 7e1c 03       		.byte	0x3
- 34775 7e1d 91       		.byte	0x91
- 34776 7e1e AC67     		.sleb128 -3156
- 34777 7e20 32       		.uleb128 0x32
- 34778 7e21 54570000 		.long	0x5754
- 34779 7e25 03       		.byte	0x3
- 34780 7e26 91       		.byte	0x91
- 34781 7e27 B067     		.sleb128 -3152
- 34782 7e29 32       		.uleb128 0x32
- 34783 7e2a 48570000 		.long	0x5748
- 34784 7e2e 03       		.byte	0x3
- 34785 7e2f 91       		.byte	0x91
- 34786 7e30 C067     		.sleb128 -3136
- 34787 7e32 00       		.byte	0x0
- 34788 7e33 00       		.byte	0x0
- 34789 7e34 31       		.uleb128 0x31
- 34790 7e35 F60E0000 		.long	0xef6
- 34791 7e39 00000000 		.quad	.LBB2320
- 34791      00000000 
- 34792 7e41 00000000 		.quad	.LBE2320
- 34792      00000000 
- 34793 7e49 02       		.byte	0x2
- 34794 7e4a 4007     		.value	0x740
- 34795 7e4c 49800000 		.long	0x8049
- 34796 7e50 32       		.uleb128 0x32
- 34797 7e51 080F0000 		.long	0xf08
- 34798 7e55 03       		.byte	0x3
- 34799 7e56 91       		.byte	0x91
- 34800 7e57 D067     		.sleb128 -3120
- 34801 7e59 33       		.uleb128 0x33
- 34802 7e5a 00000000 		.quad	.LBB2321
- 34802      00000000 
- 34803 7e62 00000000 		.quad	.LBE2321
- 34803      00000000 
- 34804 7e6a 34       		.uleb128 0x34
- 34805 7e6b 140F0000 		.long	0xf14
- 34806 7e6f 04       		.byte	0x4
- 34807 7e70 76       		.byte	0x76
-
GAS LISTING /tmp/ccjbMjHD.s 			page 910
-
-
- 34808 7e71 90BC7F   		.sleb128 -8688
- 34809 7e74 31       		.uleb128 0x31
- 34810 7e75 210F0000 		.long	0xf21
- 34811 7e79 00000000 		.quad	.LBB2322
- 34811      00000000 
- 34812 7e81 00000000 		.quad	.LBE2322
- 34812      00000000 
- 34813 7e89 02       		.byte	0x2
- 34814 7e8a 1F06     		.value	0x61f
- 34815 7e8c 117F0000 		.long	0x7f11
- 34816 7e90 32       		.uleb128 0x32
- 34817 7e91 330F0000 		.long	0xf33
- 34818 7e95 03       		.byte	0x3
- 34819 7e96 91       		.byte	0x91
- 34820 7e97 E067     		.sleb128 -3104
- 34821 7e99 33       		.uleb128 0x33
- 34822 7e9a 00000000 		.quad	.LBB2323
- 34822      00000000 
- 34823 7ea2 00000000 		.quad	.LBE2323
- 34823      00000000 
- 34824 7eaa 34       		.uleb128 0x34
- 34825 7eab 3F0F0000 		.long	0xf3f
- 34826 7eaf 09       		.byte	0x9
- 34827 7eb0 03       		.byte	0x3
- 34828 7eb1 00000000 		.quad	mask.7943
- 34828      00000000 
- 34829 7eb9 35       		.uleb128 0x35
- 34830 7eba A00D0000 		.long	0xda0
- 34831 7ebe 00000000 		.quad	.LBB2324
- 34831      00000000 
- 34832 7ec6 00000000 		.quad	.LBE2324
- 34832      00000000 
- 34833 7ece 02       		.byte	0x2
- 34834 7ecf FE04     		.value	0x4fe
- 34835 7ed1 32       		.uleb128 0x32
- 34836 7ed2 BE0D0000 		.long	0xdbe
- 34837 7ed6 03       		.byte	0x3
- 34838 7ed7 91       		.byte	0x91
- 34839 7ed8 F067     		.sleb128 -3088
- 34840 7eda 32       		.uleb128 0x32
- 34841 7edb B20D0000 		.long	0xdb2
- 34842 7edf 03       		.byte	0x3
- 34843 7ee0 91       		.byte	0x91
- 34844 7ee1 8068     		.sleb128 -3072
- 34845 7ee3 35       		.uleb128 0x35
- 34846 7ee4 CB0D0000 		.long	0xdcb
- 34847 7ee8 00000000 		.quad	.LBB2326
- 34847      00000000 
- 34848 7ef0 00000000 		.quad	.LBE2326
- 34848      00000000 
- 34849 7ef8 02       		.byte	0x2
- 34850 7ef9 7501     		.value	0x175
- 34851 7efb 32       		.uleb128 0x32
- 34852 7efc E90D0000 		.long	0xde9
- 34853 7f00 03       		.byte	0x3
- 34854 7f01 91       		.byte	0x91
- 34855 7f02 9068     		.sleb128 -3056
-
GAS LISTING /tmp/ccjbMjHD.s 			page 911
-
-
- 34856 7f04 32       		.uleb128 0x32
- 34857 7f05 DD0D0000 		.long	0xddd
- 34858 7f09 03       		.byte	0x3
- 34859 7f0a 91       		.byte	0x91
- 34860 7f0b A068     		.sleb128 -3040
- 34861 7f0d 00       		.byte	0x0
- 34862 7f0e 00       		.byte	0x0
- 34863 7f0f 00       		.byte	0x0
- 34864 7f10 00       		.byte	0x0
- 34865 7f11 31       		.uleb128 0x31
- 34866 7f12 210F0000 		.long	0xf21
- 34867 7f16 00000000 		.quad	.LBB2328
- 34867      00000000 
- 34868 7f1e 00000000 		.quad	.LBE2328
- 34868      00000000 
- 34869 7f26 02       		.byte	0x2
- 34870 7f27 2006     		.value	0x620
- 34871 7f29 AE7F0000 		.long	0x7fae
- 34872 7f2d 32       		.uleb128 0x32
- 34873 7f2e 330F0000 		.long	0xf33
- 34874 7f32 03       		.byte	0x3
- 34875 7f33 91       		.byte	0x91
- 34876 7f34 B068     		.sleb128 -3024
- 34877 7f36 33       		.uleb128 0x33
- 34878 7f37 00000000 		.quad	.LBB2329
- 34878      00000000 
- 34879 7f3f 00000000 		.quad	.LBE2329
- 34879      00000000 
- 34880 7f47 34       		.uleb128 0x34
- 34881 7f48 3F0F0000 		.long	0xf3f
- 34882 7f4c 09       		.byte	0x9
- 34883 7f4d 03       		.byte	0x3
- 34884 7f4e 00000000 		.quad	mask.7943
- 34884      00000000 
- 34885 7f56 35       		.uleb128 0x35
- 34886 7f57 A00D0000 		.long	0xda0
- 34887 7f5b 00000000 		.quad	.LBB2330
- 34887      00000000 
- 34888 7f63 00000000 		.quad	.LBE2330
- 34888      00000000 
- 34889 7f6b 02       		.byte	0x2
- 34890 7f6c FE04     		.value	0x4fe
- 34891 7f6e 32       		.uleb128 0x32
- 34892 7f6f BE0D0000 		.long	0xdbe
- 34893 7f73 03       		.byte	0x3
- 34894 7f74 91       		.byte	0x91
- 34895 7f75 C068     		.sleb128 -3008
- 34896 7f77 32       		.uleb128 0x32
- 34897 7f78 B20D0000 		.long	0xdb2
- 34898 7f7c 03       		.byte	0x3
- 34899 7f7d 91       		.byte	0x91
- 34900 7f7e D068     		.sleb128 -2992
- 34901 7f80 35       		.uleb128 0x35
- 34902 7f81 CB0D0000 		.long	0xdcb
- 34903 7f85 00000000 		.quad	.LBB2332
- 34903      00000000 
- 34904 7f8d 00000000 		.quad	.LBE2332
-
GAS LISTING /tmp/ccjbMjHD.s 			page 912
-
-
- 34904      00000000 
- 34905 7f95 02       		.byte	0x2
- 34906 7f96 7501     		.value	0x175
- 34907 7f98 32       		.uleb128 0x32
- 34908 7f99 E90D0000 		.long	0xde9
- 34909 7f9d 03       		.byte	0x3
- 34910 7f9e 91       		.byte	0x91
- 34911 7f9f E068     		.sleb128 -2976
- 34912 7fa1 32       		.uleb128 0x32
- 34913 7fa2 DD0D0000 		.long	0xddd
- 34914 7fa6 03       		.byte	0x3
- 34915 7fa7 91       		.byte	0x91
- 34916 7fa8 F068     		.sleb128 -2960
- 34917 7faa 00       		.byte	0x0
- 34918 7fab 00       		.byte	0x0
- 34919 7fac 00       		.byte	0x0
- 34920 7fad 00       		.byte	0x0
- 34921 7fae 35       		.uleb128 0x35
- 34922 7faf 210F0000 		.long	0xf21
- 34923 7fb3 00000000 		.quad	.LBB2334
- 34923      00000000 
- 34924 7fbb 00000000 		.quad	.LBE2334
- 34924      00000000 
- 34925 7fc3 02       		.byte	0x2
- 34926 7fc4 2106     		.value	0x621
- 34927 7fc6 32       		.uleb128 0x32
- 34928 7fc7 330F0000 		.long	0xf33
- 34929 7fcb 03       		.byte	0x3
- 34930 7fcc 91       		.byte	0x91
- 34931 7fcd 8069     		.sleb128 -2944
- 34932 7fcf 33       		.uleb128 0x33
- 34933 7fd0 00000000 		.quad	.LBB2335
- 34933      00000000 
- 34934 7fd8 00000000 		.quad	.LBE2335
- 34934      00000000 
- 34935 7fe0 34       		.uleb128 0x34
- 34936 7fe1 3F0F0000 		.long	0xf3f
- 34937 7fe5 09       		.byte	0x9
- 34938 7fe6 03       		.byte	0x3
- 34939 7fe7 00000000 		.quad	mask.7943
- 34939      00000000 
- 34940 7fef 35       		.uleb128 0x35
- 34941 7ff0 A00D0000 		.long	0xda0
- 34942 7ff4 00000000 		.quad	.LBB2336
- 34942      00000000 
- 34943 7ffc 00000000 		.quad	.LBE2336
- 34943      00000000 
- 34944 8004 02       		.byte	0x2
- 34945 8005 FE04     		.value	0x4fe
- 34946 8007 32       		.uleb128 0x32
- 34947 8008 BE0D0000 		.long	0xdbe
- 34948 800c 03       		.byte	0x3
- 34949 800d 91       		.byte	0x91
- 34950 800e 9069     		.sleb128 -2928
- 34951 8010 32       		.uleb128 0x32
- 34952 8011 B20D0000 		.long	0xdb2
- 34953 8015 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 913
-
-
- 34954 8016 91       		.byte	0x91
- 34955 8017 A069     		.sleb128 -2912
- 34956 8019 35       		.uleb128 0x35
- 34957 801a CB0D0000 		.long	0xdcb
- 34958 801e 00000000 		.quad	.LBB2338
- 34958      00000000 
- 34959 8026 00000000 		.quad	.LBE2338
- 34959      00000000 
- 34960 802e 02       		.byte	0x2
- 34961 802f 7501     		.value	0x175
- 34962 8031 32       		.uleb128 0x32
- 34963 8032 E90D0000 		.long	0xde9
- 34964 8036 03       		.byte	0x3
- 34965 8037 91       		.byte	0x91
- 34966 8038 B069     		.sleb128 -2896
- 34967 803a 32       		.uleb128 0x32
- 34968 803b DD0D0000 		.long	0xddd
- 34969 803f 03       		.byte	0x3
- 34970 8040 91       		.byte	0x91
- 34971 8041 C069     		.sleb128 -2880
- 34972 8043 00       		.byte	0x0
- 34973 8044 00       		.byte	0x0
- 34974 8045 00       		.byte	0x0
- 34975 8046 00       		.byte	0x0
- 34976 8047 00       		.byte	0x0
- 34977 8048 00       		.byte	0x0
- 34978 8049 31       		.uleb128 0x31
- 34979 804a F60E0000 		.long	0xef6
- 34980 804e 00000000 		.quad	.LBB2340
- 34980      00000000 
- 34981 8056 00000000 		.quad	.LBE2340
- 34981      00000000 
- 34982 805e 02       		.byte	0x2
- 34983 805f 4107     		.value	0x741
- 34984 8061 5E820000 		.long	0x825e
- 34985 8065 32       		.uleb128 0x32
- 34986 8066 080F0000 		.long	0xf08
- 34987 806a 03       		.byte	0x3
- 34988 806b 91       		.byte	0x91
- 34989 806c D069     		.sleb128 -2864
- 34990 806e 33       		.uleb128 0x33
- 34991 806f 00000000 		.quad	.LBB2341
- 34991      00000000 
- 34992 8077 00000000 		.quad	.LBE2341
- 34992      00000000 
- 34993 807f 34       		.uleb128 0x34
- 34994 8080 140F0000 		.long	0xf14
- 34995 8084 04       		.byte	0x4
- 34996 8085 76       		.byte	0x76
- 34997 8086 A0BC7F   		.sleb128 -8672
- 34998 8089 31       		.uleb128 0x31
- 34999 808a 210F0000 		.long	0xf21
- 35000 808e 00000000 		.quad	.LBB2342
- 35000      00000000 
- 35001 8096 00000000 		.quad	.LBE2342
- 35001      00000000 
- 35002 809e 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 914
-
-
- 35003 809f 1F06     		.value	0x61f
- 35004 80a1 26810000 		.long	0x8126
- 35005 80a5 32       		.uleb128 0x32
- 35006 80a6 330F0000 		.long	0xf33
- 35007 80aa 03       		.byte	0x3
- 35008 80ab 91       		.byte	0x91
- 35009 80ac E069     		.sleb128 -2848
- 35010 80ae 33       		.uleb128 0x33
- 35011 80af 00000000 		.quad	.LBB2343
- 35011      00000000 
- 35012 80b7 00000000 		.quad	.LBE2343
- 35012      00000000 
- 35013 80bf 34       		.uleb128 0x34
- 35014 80c0 3F0F0000 		.long	0xf3f
- 35015 80c4 09       		.byte	0x9
- 35016 80c5 03       		.byte	0x3
- 35017 80c6 00000000 		.quad	mask.7943
- 35017      00000000 
- 35018 80ce 35       		.uleb128 0x35
- 35019 80cf A00D0000 		.long	0xda0
- 35020 80d3 00000000 		.quad	.LBB2344
- 35020      00000000 
- 35021 80db 00000000 		.quad	.LBE2344
- 35021      00000000 
- 35022 80e3 02       		.byte	0x2
- 35023 80e4 FE04     		.value	0x4fe
- 35024 80e6 32       		.uleb128 0x32
- 35025 80e7 BE0D0000 		.long	0xdbe
- 35026 80eb 03       		.byte	0x3
- 35027 80ec 91       		.byte	0x91
- 35028 80ed F069     		.sleb128 -2832
- 35029 80ef 32       		.uleb128 0x32
- 35030 80f0 B20D0000 		.long	0xdb2
- 35031 80f4 03       		.byte	0x3
- 35032 80f5 91       		.byte	0x91
- 35033 80f6 806A     		.sleb128 -2816
- 35034 80f8 35       		.uleb128 0x35
- 35035 80f9 CB0D0000 		.long	0xdcb
- 35036 80fd 00000000 		.quad	.LBB2346
- 35036      00000000 
- 35037 8105 00000000 		.quad	.LBE2346
- 35037      00000000 
- 35038 810d 02       		.byte	0x2
- 35039 810e 7501     		.value	0x175
- 35040 8110 32       		.uleb128 0x32
- 35041 8111 E90D0000 		.long	0xde9
- 35042 8115 03       		.byte	0x3
- 35043 8116 91       		.byte	0x91
- 35044 8117 906A     		.sleb128 -2800
- 35045 8119 32       		.uleb128 0x32
- 35046 811a DD0D0000 		.long	0xddd
- 35047 811e 03       		.byte	0x3
- 35048 811f 91       		.byte	0x91
- 35049 8120 A06A     		.sleb128 -2784
- 35050 8122 00       		.byte	0x0
- 35051 8123 00       		.byte	0x0
- 35052 8124 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 915
-
-
- 35053 8125 00       		.byte	0x0
- 35054 8126 31       		.uleb128 0x31
- 35055 8127 210F0000 		.long	0xf21
- 35056 812b 00000000 		.quad	.LBB2348
- 35056      00000000 
- 35057 8133 00000000 		.quad	.LBE2348
- 35057      00000000 
- 35058 813b 02       		.byte	0x2
- 35059 813c 2006     		.value	0x620
- 35060 813e C3810000 		.long	0x81c3
- 35061 8142 32       		.uleb128 0x32
- 35062 8143 330F0000 		.long	0xf33
- 35063 8147 03       		.byte	0x3
- 35064 8148 91       		.byte	0x91
- 35065 8149 B06A     		.sleb128 -2768
- 35066 814b 33       		.uleb128 0x33
- 35067 814c 00000000 		.quad	.LBB2349
- 35067      00000000 
- 35068 8154 00000000 		.quad	.LBE2349
- 35068      00000000 
- 35069 815c 34       		.uleb128 0x34
- 35070 815d 3F0F0000 		.long	0xf3f
- 35071 8161 09       		.byte	0x9
- 35072 8162 03       		.byte	0x3
- 35073 8163 00000000 		.quad	mask.7943
- 35073      00000000 
- 35074 816b 35       		.uleb128 0x35
- 35075 816c A00D0000 		.long	0xda0
- 35076 8170 00000000 		.quad	.LBB2350
- 35076      00000000 
- 35077 8178 00000000 		.quad	.LBE2350
- 35077      00000000 
- 35078 8180 02       		.byte	0x2
- 35079 8181 FE04     		.value	0x4fe
- 35080 8183 32       		.uleb128 0x32
- 35081 8184 BE0D0000 		.long	0xdbe
- 35082 8188 03       		.byte	0x3
- 35083 8189 91       		.byte	0x91
- 35084 818a C06A     		.sleb128 -2752
- 35085 818c 32       		.uleb128 0x32
- 35086 818d B20D0000 		.long	0xdb2
- 35087 8191 03       		.byte	0x3
- 35088 8192 91       		.byte	0x91
- 35089 8193 D06A     		.sleb128 -2736
- 35090 8195 35       		.uleb128 0x35
- 35091 8196 CB0D0000 		.long	0xdcb
- 35092 819a 00000000 		.quad	.LBB2352
- 35092      00000000 
- 35093 81a2 00000000 		.quad	.LBE2352
- 35093      00000000 
- 35094 81aa 02       		.byte	0x2
- 35095 81ab 7501     		.value	0x175
- 35096 81ad 32       		.uleb128 0x32
- 35097 81ae E90D0000 		.long	0xde9
- 35098 81b2 03       		.byte	0x3
- 35099 81b3 91       		.byte	0x91
- 35100 81b4 E06A     		.sleb128 -2720
-
GAS LISTING /tmp/ccjbMjHD.s 			page 916
-
-
- 35101 81b6 32       		.uleb128 0x32
- 35102 81b7 DD0D0000 		.long	0xddd
- 35103 81bb 03       		.byte	0x3
- 35104 81bc 91       		.byte	0x91
- 35105 81bd F06A     		.sleb128 -2704
- 35106 81bf 00       		.byte	0x0
- 35107 81c0 00       		.byte	0x0
- 35108 81c1 00       		.byte	0x0
- 35109 81c2 00       		.byte	0x0
- 35110 81c3 35       		.uleb128 0x35
- 35111 81c4 210F0000 		.long	0xf21
- 35112 81c8 00000000 		.quad	.LBB2354
- 35112      00000000 
- 35113 81d0 00000000 		.quad	.LBE2354
- 35113      00000000 
- 35114 81d8 02       		.byte	0x2
- 35115 81d9 2106     		.value	0x621
- 35116 81db 32       		.uleb128 0x32
- 35117 81dc 330F0000 		.long	0xf33
- 35118 81e0 03       		.byte	0x3
- 35119 81e1 91       		.byte	0x91
- 35120 81e2 806B     		.sleb128 -2688
- 35121 81e4 33       		.uleb128 0x33
- 35122 81e5 00000000 		.quad	.LBB2355
- 35122      00000000 
- 35123 81ed 00000000 		.quad	.LBE2355
- 35123      00000000 
- 35124 81f5 34       		.uleb128 0x34
- 35125 81f6 3F0F0000 		.long	0xf3f
- 35126 81fa 09       		.byte	0x9
- 35127 81fb 03       		.byte	0x3
- 35128 81fc 00000000 		.quad	mask.7943
- 35128      00000000 
- 35129 8204 35       		.uleb128 0x35
- 35130 8205 A00D0000 		.long	0xda0
- 35131 8209 00000000 		.quad	.LBB2356
- 35131      00000000 
- 35132 8211 00000000 		.quad	.LBE2356
- 35132      00000000 
- 35133 8219 02       		.byte	0x2
- 35134 821a FE04     		.value	0x4fe
- 35135 821c 32       		.uleb128 0x32
- 35136 821d BE0D0000 		.long	0xdbe
- 35137 8221 03       		.byte	0x3
- 35138 8222 91       		.byte	0x91
- 35139 8223 906B     		.sleb128 -2672
- 35140 8225 32       		.uleb128 0x32
- 35141 8226 B20D0000 		.long	0xdb2
- 35142 822a 03       		.byte	0x3
- 35143 822b 91       		.byte	0x91
- 35144 822c A06B     		.sleb128 -2656
- 35145 822e 35       		.uleb128 0x35
- 35146 822f CB0D0000 		.long	0xdcb
- 35147 8233 00000000 		.quad	.LBB2358
- 35147      00000000 
- 35148 823b 00000000 		.quad	.LBE2358
- 35148      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 917
-
-
- 35149 8243 02       		.byte	0x2
- 35150 8244 7501     		.value	0x175
- 35151 8246 32       		.uleb128 0x32
- 35152 8247 E90D0000 		.long	0xde9
- 35153 824b 03       		.byte	0x3
- 35154 824c 91       		.byte	0x91
- 35155 824d B06B     		.sleb128 -2640
- 35156 824f 32       		.uleb128 0x32
- 35157 8250 DD0D0000 		.long	0xddd
- 35158 8254 03       		.byte	0x3
- 35159 8255 91       		.byte	0x91
- 35160 8256 C06B     		.sleb128 -2624
- 35161 8258 00       		.byte	0x0
- 35162 8259 00       		.byte	0x0
- 35163 825a 00       		.byte	0x0
- 35164 825b 00       		.byte	0x0
- 35165 825c 00       		.byte	0x0
- 35166 825d 00       		.byte	0x0
- 35167 825e 31       		.uleb128 0x31
- 35168 825f D50B0000 		.long	0xbd5
- 35169 8263 00000000 		.quad	.LBB2360
- 35169      00000000 
- 35170 826b 00000000 		.quad	.LBE2360
- 35170      00000000 
- 35171 8273 02       		.byte	0x2
- 35172 8274 4207     		.value	0x742
- 35173 8276 41870000 		.long	0x8741
- 35174 827a 32       		.uleb128 0x32
- 35175 827b F30B0000 		.long	0xbf3
- 35176 827f 03       		.byte	0x3
- 35177 8280 91       		.byte	0x91
- 35178 8281 DC6B     		.sleb128 -2596
- 35179 8283 32       		.uleb128 0x32
- 35180 8284 E70B0000 		.long	0xbe7
- 35181 8288 03       		.byte	0x3
- 35182 8289 91       		.byte	0x91
- 35183 828a E06B     		.sleb128 -2592
- 35184 828c 33       		.uleb128 0x33
- 35185 828d 00000000 		.quad	.LBB2361
- 35185      00000000 
- 35186 8295 00000000 		.quad	.LBE2361
- 35186      00000000 
- 35187 829d 34       		.uleb128 0x34
- 35188 829e FF0B0000 		.long	0xbff
- 35189 82a2 04       		.byte	0x4
- 35190 82a3 76       		.byte	0x76
- 35191 82a4 C0BC7F   		.sleb128 -8640
- 35192 82a7 34       		.uleb128 0x34
- 35193 82a8 0B0C0000 		.long	0xc0b
- 35194 82ac 04       		.byte	0x4
- 35195 82ad 76       		.byte	0x76
- 35196 82ae B0BC7F   		.sleb128 -8656
- 35197 82b1 31       		.uleb128 0x31
- 35198 82b2 540C0000 		.long	0xc54
- 35199 82b6 00000000 		.quad	.LBB2362
- 35199      00000000 
- 35200 82be 00000000 		.quad	.LBE2362
-
GAS LISTING /tmp/ccjbMjHD.s 			page 918
-
-
- 35200      00000000 
- 35201 82c6 02       		.byte	0x2
- 35202 82c7 9106     		.value	0x691
- 35203 82c9 1D830000 		.long	0x831d
- 35204 82cd 32       		.uleb128 0x32
- 35205 82ce 7E0C0000 		.long	0xc7e
- 35206 82d2 03       		.byte	0x3
- 35207 82d3 91       		.byte	0x91
- 35208 82d4 F86B     		.sleb128 -2568
- 35209 82d6 32       		.uleb128 0x32
- 35210 82d7 720C0000 		.long	0xc72
- 35211 82db 03       		.byte	0x3
- 35212 82dc 91       		.byte	0x91
- 35213 82dd FC6B     		.sleb128 -2564
- 35214 82df 32       		.uleb128 0x32
- 35215 82e0 660C0000 		.long	0xc66
- 35216 82e4 03       		.byte	0x3
- 35217 82e5 91       		.byte	0x91
- 35218 82e6 806C     		.sleb128 -2560
- 35219 82e8 35       		.uleb128 0x35
- 35220 82e9 8B0C0000 		.long	0xc8b
- 35221 82ed 00000000 		.quad	.LBB2364
- 35221      00000000 
- 35222 82f5 00000000 		.quad	.LBE2364
- 35222      00000000 
- 35223 82fd 02       		.byte	0x2
- 35224 82fe 0702     		.value	0x207
- 35225 8300 32       		.uleb128 0x32
- 35226 8301 B40C0000 		.long	0xcb4
- 35227 8305 03       		.byte	0x3
- 35228 8306 91       		.byte	0x91
- 35229 8307 986C     		.sleb128 -2536
- 35230 8309 32       		.uleb128 0x32
- 35231 830a A90C0000 		.long	0xca9
- 35232 830e 03       		.byte	0x3
- 35233 830f 91       		.byte	0x91
- 35234 8310 9C6C     		.sleb128 -2532
- 35235 8312 32       		.uleb128 0x32
- 35236 8313 9D0C0000 		.long	0xc9d
- 35237 8317 03       		.byte	0x3
- 35238 8318 91       		.byte	0x91
- 35239 8319 A06C     		.sleb128 -2528
- 35240 831b 00       		.byte	0x0
- 35241 831c 00       		.byte	0x0
- 35242 831d 31       		.uleb128 0x31
- 35243 831e C10C0000 		.long	0xcc1
- 35244 8322 00000000 		.quad	.LBB2366
- 35244      00000000 
- 35245 832a 00000000 		.quad	.LBE2366
- 35245      00000000 
- 35246 8332 02       		.byte	0x2
- 35247 8333 9206     		.value	0x692
- 35248 8335 A6850000 		.long	0x85a6
- 35249 8339 32       		.uleb128 0x32
- 35250 833a D30C0000 		.long	0xcd3
- 35251 833e 03       		.byte	0x3
- 35252 833f 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 919
-
-
- 35253 8340 B06C     		.sleb128 -2512
- 35254 8342 35       		.uleb128 0x35
- 35255 8343 E00C0000 		.long	0xce0
- 35256 8347 00000000 		.quad	.LBB2368
- 35256      00000000 
- 35257 834f 00000000 		.quad	.LBE2368
- 35257      00000000 
- 35258 8357 02       		.byte	0x2
- 35259 8358 7D03     		.value	0x37d
- 35260 835a 32       		.uleb128 0x32
- 35261 835b FE0C0000 		.long	0xcfe
- 35262 835f 03       		.byte	0x3
- 35263 8360 91       		.byte	0x91
- 35264 8361 C86C     		.sleb128 -2488
- 35265 8363 32       		.uleb128 0x32
- 35266 8364 F20C0000 		.long	0xcf2
- 35267 8368 03       		.byte	0x3
- 35268 8369 91       		.byte	0x91
- 35269 836a D06C     		.sleb128 -2480
- 35270 836c 33       		.uleb128 0x33
- 35271 836d 00000000 		.quad	.LBB2369
- 35271      00000000 
- 35272 8375 00000000 		.quad	.LBE2369
- 35272      00000000 
- 35273 837d 34       		.uleb128 0x34
- 35274 837e 0A0D0000 		.long	0xd0a
- 35275 8382 03       		.byte	0x3
- 35276 8383 91       		.byte	0x91
- 35277 8384 A06D     		.sleb128 -2400
- 35278 8386 34       		.uleb128 0x34
- 35279 8387 150D0000 		.long	0xd15
- 35280 838b 03       		.byte	0x3
- 35281 838c 91       		.byte	0x91
- 35282 838d 906D     		.sleb128 -2416
- 35283 838f 34       		.uleb128 0x34
- 35284 8390 200D0000 		.long	0xd20
- 35285 8394 03       		.byte	0x3
- 35286 8395 91       		.byte	0x91
- 35287 8396 806D     		.sleb128 -2432
- 35288 8398 34       		.uleb128 0x34
- 35289 8399 2C0D0000 		.long	0xd2c
- 35290 839d 03       		.byte	0x3
- 35291 839e 91       		.byte	0x91
- 35292 839f F06C     		.sleb128 -2448
- 35293 83a1 34       		.uleb128 0x34
- 35294 83a2 380D0000 		.long	0xd38
- 35295 83a6 03       		.byte	0x3
- 35296 83a7 91       		.byte	0x91
- 35297 83a8 EC6C     		.sleb128 -2452
- 35298 83aa 31       		.uleb128 0x31
- 35299 83ab 4F0D0000 		.long	0xd4f
- 35300 83af 00000000 		.quad	.LBB2370
- 35300      00000000 
- 35301 83b7 00000000 		.quad	.LBE2370
- 35301      00000000 
- 35302 83bf 02       		.byte	0x2
- 35303 83c0 5603     		.value	0x356
-
GAS LISTING /tmp/ccjbMjHD.s 			page 920
-
-
- 35304 83c2 D9830000 		.long	0x83d9
- 35305 83c6 32       		.uleb128 0x32
- 35306 83c7 6A0D0000 		.long	0xd6a
- 35307 83cb 03       		.byte	0x3
- 35308 83cc 91       		.byte	0x91
- 35309 83cd B06D     		.sleb128 -2384
- 35310 83cf 32       		.uleb128 0x32
- 35311 83d0 600D0000 		.long	0xd60
- 35312 83d4 03       		.byte	0x3
- 35313 83d5 91       		.byte	0x91
- 35314 83d6 C06D     		.sleb128 -2368
- 35315 83d8 00       		.byte	0x0
- 35316 83d9 31       		.uleb128 0x31
- 35317 83da 750D0000 		.long	0xd75
- 35318 83de 00000000 		.quad	.LBB2372
- 35318      00000000 
- 35319 83e6 00000000 		.quad	.LBE2372
- 35319      00000000 
- 35320 83ee 02       		.byte	0x2
- 35321 83ef 5903     		.value	0x359
- 35322 83f1 08840000 		.long	0x8408
- 35323 83f5 32       		.uleb128 0x32
- 35324 83f6 930D0000 		.long	0xd93
- 35325 83fa 03       		.byte	0x3
- 35326 83fb 91       		.byte	0x91
- 35327 83fc DC6D     		.sleb128 -2340
- 35328 83fe 32       		.uleb128 0x32
- 35329 83ff 870D0000 		.long	0xd87
- 35330 8403 03       		.byte	0x3
- 35331 8404 91       		.byte	0x91
- 35332 8405 E06D     		.sleb128 -2336
- 35333 8407 00       		.byte	0x0
- 35334 8408 31       		.uleb128 0x31
- 35335 8409 4F0D0000 		.long	0xd4f
- 35336 840d 00000000 		.quad	.LBB2374
- 35336      00000000 
- 35337 8415 00000000 		.quad	.LBE2374
- 35337      00000000 
- 35338 841d 02       		.byte	0x2
- 35339 841e 5B03     		.value	0x35b
- 35340 8420 37840000 		.long	0x8437
- 35341 8424 32       		.uleb128 0x32
- 35342 8425 6A0D0000 		.long	0xd6a
- 35343 8429 03       		.byte	0x3
- 35344 842a 91       		.byte	0x91
- 35345 842b F06D     		.sleb128 -2320
- 35346 842d 32       		.uleb128 0x32
- 35347 842e 600D0000 		.long	0xd60
- 35348 8432 03       		.byte	0x3
- 35349 8433 91       		.byte	0x91
- 35350 8434 806E     		.sleb128 -2304
- 35351 8436 00       		.byte	0x0
- 35352 8437 31       		.uleb128 0x31
- 35353 8438 A00D0000 		.long	0xda0
- 35354 843c 00000000 		.quad	.LBB2376
- 35354      00000000 
- 35355 8444 00000000 		.quad	.LBE2376
-
GAS LISTING /tmp/ccjbMjHD.s 			page 921
-
-
- 35355      00000000 
- 35356 844c 02       		.byte	0x2
- 35357 844d 6403     		.value	0x364
- 35358 844f 91840000 		.long	0x8491
- 35359 8453 32       		.uleb128 0x32
- 35360 8454 BE0D0000 		.long	0xdbe
- 35361 8458 03       		.byte	0x3
- 35362 8459 91       		.byte	0x91
- 35363 845a 906E     		.sleb128 -2288
- 35364 845c 32       		.uleb128 0x32
- 35365 845d B20D0000 		.long	0xdb2
- 35366 8461 03       		.byte	0x3
- 35367 8462 91       		.byte	0x91
- 35368 8463 A06E     		.sleb128 -2272
- 35369 8465 35       		.uleb128 0x35
- 35370 8466 CB0D0000 		.long	0xdcb
- 35371 846a 00000000 		.quad	.LBB2378
- 35371      00000000 
- 35372 8472 00000000 		.quad	.LBE2378
- 35372      00000000 
- 35373 847a 02       		.byte	0x2
- 35374 847b 7501     		.value	0x175
- 35375 847d 32       		.uleb128 0x32
- 35376 847e E90D0000 		.long	0xde9
- 35377 8482 03       		.byte	0x3
- 35378 8483 91       		.byte	0x91
- 35379 8484 B06E     		.sleb128 -2256
- 35380 8486 32       		.uleb128 0x32
- 35381 8487 DD0D0000 		.long	0xddd
- 35382 848b 03       		.byte	0x3
- 35383 848c 91       		.byte	0x91
- 35384 848d C06E     		.sleb128 -2240
- 35385 848f 00       		.byte	0x0
- 35386 8490 00       		.byte	0x0
- 35387 8491 31       		.uleb128 0x31
- 35388 8492 FB0D0000 		.long	0xdfb
- 35389 8496 00000000 		.quad	.LBB2380
- 35389      00000000 
- 35390 849e 00000000 		.quad	.LBE2380
- 35390      00000000 
- 35391 84a6 02       		.byte	0x2
- 35392 84a7 6603     		.value	0x366
- 35393 84a9 C0840000 		.long	0x84c0
- 35394 84ad 32       		.uleb128 0x32
- 35395 84ae 160E0000 		.long	0xe16
- 35396 84b2 03       		.byte	0x3
- 35397 84b3 91       		.byte	0x91
- 35398 84b4 D06E     		.sleb128 -2224
- 35399 84b6 32       		.uleb128 0x32
- 35400 84b7 0C0E0000 		.long	0xe0c
- 35401 84bb 03       		.byte	0x3
- 35402 84bc 91       		.byte	0x91
- 35403 84bd E06E     		.sleb128 -2208
- 35404 84bf 00       		.byte	0x0
- 35405 84c0 31       		.uleb128 0x31
- 35406 84c1 A00D0000 		.long	0xda0
- 35407 84c5 00000000 		.quad	.LBB2382
-
GAS LISTING /tmp/ccjbMjHD.s 			page 922
-
-
- 35407      00000000 
- 35408 84cd 00000000 		.quad	.LBE2382
- 35408      00000000 
- 35409 84d5 02       		.byte	0x2
- 35410 84d6 6803     		.value	0x368
- 35411 84d8 1A850000 		.long	0x851a
- 35412 84dc 32       		.uleb128 0x32
- 35413 84dd BE0D0000 		.long	0xdbe
- 35414 84e1 03       		.byte	0x3
- 35415 84e2 91       		.byte	0x91
- 35416 84e3 F06E     		.sleb128 -2192
- 35417 84e5 32       		.uleb128 0x32
- 35418 84e6 B20D0000 		.long	0xdb2
- 35419 84ea 03       		.byte	0x3
- 35420 84eb 91       		.byte	0x91
- 35421 84ec 806F     		.sleb128 -2176
- 35422 84ee 35       		.uleb128 0x35
- 35423 84ef CB0D0000 		.long	0xdcb
- 35424 84f3 00000000 		.quad	.LBB2384
- 35424      00000000 
- 35425 84fb 00000000 		.quad	.LBE2384
- 35425      00000000 
- 35426 8503 02       		.byte	0x2
- 35427 8504 7501     		.value	0x175
- 35428 8506 32       		.uleb128 0x32
- 35429 8507 E90D0000 		.long	0xde9
- 35430 850b 03       		.byte	0x3
- 35431 850c 91       		.byte	0x91
- 35432 850d 906F     		.sleb128 -2160
- 35433 850f 32       		.uleb128 0x32
- 35434 8510 DD0D0000 		.long	0xddd
- 35435 8514 03       		.byte	0x3
- 35436 8515 91       		.byte	0x91
- 35437 8516 A06F     		.sleb128 -2144
- 35438 8518 00       		.byte	0x0
- 35439 8519 00       		.byte	0x0
- 35440 851a 31       		.uleb128 0x31
- 35441 851b FB0D0000 		.long	0xdfb
- 35442 851f 00000000 		.quad	.LBB2386
- 35442      00000000 
- 35443 8527 00000000 		.quad	.LBE2386
- 35443      00000000 
- 35444 852f 02       		.byte	0x2
- 35445 8530 6A03     		.value	0x36a
- 35446 8532 49850000 		.long	0x8549
- 35447 8536 32       		.uleb128 0x32
- 35448 8537 160E0000 		.long	0xe16
- 35449 853b 03       		.byte	0x3
- 35450 853c 91       		.byte	0x91
- 35451 853d B06F     		.sleb128 -2128
- 35452 853f 32       		.uleb128 0x32
- 35453 8540 0C0E0000 		.long	0xe0c
- 35454 8544 03       		.byte	0x3
- 35455 8545 91       		.byte	0x91
- 35456 8546 C06F     		.sleb128 -2112
- 35457 8548 00       		.byte	0x0
- 35458 8549 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 923
-
-
- 35459 854a 210E0000 		.long	0xe21
- 35460 854e 00000000 		.quad	.LBB2388
- 35460      00000000 
- 35461 8556 00000000 		.quad	.LBE2388
- 35461      00000000 
- 35462 855e 02       		.byte	0x2
- 35463 855f 6C03     		.value	0x36c
- 35464 8561 78850000 		.long	0x8578
- 35465 8565 32       		.uleb128 0x32
- 35466 8566 3E0E0000 		.long	0xe3e
- 35467 856a 03       		.byte	0x3
- 35468 856b 91       		.byte	0x91
- 35469 856c D06F     		.sleb128 -2096
- 35470 856e 32       		.uleb128 0x32
- 35471 856f 330E0000 		.long	0xe33
- 35472 8573 03       		.byte	0x3
- 35473 8574 91       		.byte	0x91
- 35474 8575 E06F     		.sleb128 -2080
- 35475 8577 00       		.byte	0x0
- 35476 8578 35       		.uleb128 0x35
- 35477 8579 4F0D0000 		.long	0xd4f
- 35478 857d 00000000 		.quad	.LBB2390
- 35478      00000000 
- 35479 8585 00000000 		.quad	.LBE2390
- 35479      00000000 
- 35480 858d 02       		.byte	0x2
- 35481 858e 6E03     		.value	0x36e
- 35482 8590 32       		.uleb128 0x32
- 35483 8591 6A0D0000 		.long	0xd6a
- 35484 8595 03       		.byte	0x3
- 35485 8596 91       		.byte	0x91
- 35486 8597 F06F     		.sleb128 -2064
- 35487 8599 32       		.uleb128 0x32
- 35488 859a 600D0000 		.long	0xd60
- 35489 859e 03       		.byte	0x3
- 35490 859f 91       		.byte	0x91
- 35491 85a0 8070     		.sleb128 -2048
- 35492 85a2 00       		.byte	0x0
- 35493 85a3 00       		.byte	0x0
- 35494 85a4 00       		.byte	0x0
- 35495 85a5 00       		.byte	0x0
- 35496 85a6 36       		.uleb128 0x36
- 35497 85a7 00000000 		.quad	.LBB2392
- 35497      00000000 
- 35498 85af 00000000 		.quad	.LBE2392
- 35498      00000000 
- 35499 85b7 C6850000 		.long	0x85c6
- 35500 85bb 34       		.uleb128 0x34
- 35501 85bc 1C0C0000 		.long	0xc1c
- 35502 85c0 04       		.byte	0x4
- 35503 85c1 91       		.byte	0x91
- 35504 85c2 B0BF7F   		.sleb128 -8272
- 35505 85c5 00       		.byte	0x0
- 35506 85c6 31       		.uleb128 0x31
- 35507 85c7 4A0E0000 		.long	0xe4a
- 35508 85cb 00000000 		.quad	.LBB2393
- 35508      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 924
-
-
- 35509 85d3 00000000 		.quad	.LBE2393
- 35509      00000000 
- 35510 85db 02       		.byte	0x2
- 35511 85dc 9406     		.value	0x694
- 35512 85de 63860000 		.long	0x8663
- 35513 85e2 32       		.uleb128 0x32
- 35514 85e3 5C0E0000 		.long	0xe5c
- 35515 85e7 03       		.byte	0x3
- 35516 85e8 91       		.byte	0x91
- 35517 85e9 9070     		.sleb128 -2032
- 35518 85eb 33       		.uleb128 0x33
- 35519 85ec 00000000 		.quad	.LBB2394
- 35519      00000000 
- 35520 85f4 00000000 		.quad	.LBE2394
- 35520      00000000 
- 35521 85fc 34       		.uleb128 0x34
- 35522 85fd 680E0000 		.long	0xe68
- 35523 8601 09       		.byte	0x9
- 35524 8602 03       		.byte	0x3
- 35525 8603 00000000 		.quad	ShiftRowTable.7385
- 35525      00000000 
- 35526 860b 35       		.uleb128 0x35
- 35527 860c A00D0000 		.long	0xda0
- 35528 8610 00000000 		.quad	.LBB2395
- 35528      00000000 
- 35529 8618 00000000 		.quad	.LBE2395
- 35529      00000000 
- 35530 8620 02       		.byte	0x2
- 35531 8621 9B02     		.value	0x29b
- 35532 8623 32       		.uleb128 0x32
- 35533 8624 BE0D0000 		.long	0xdbe
- 35534 8628 03       		.byte	0x3
- 35535 8629 91       		.byte	0x91
- 35536 862a A070     		.sleb128 -2016
- 35537 862c 32       		.uleb128 0x32
- 35538 862d B20D0000 		.long	0xdb2
- 35539 8631 03       		.byte	0x3
- 35540 8632 91       		.byte	0x91
- 35541 8633 B070     		.sleb128 -2000
- 35542 8635 35       		.uleb128 0x35
- 35543 8636 CB0D0000 		.long	0xdcb
- 35544 863a 00000000 		.quad	.LBB2397
- 35544      00000000 
- 35545 8642 00000000 		.quad	.LBE2397
- 35545      00000000 
- 35546 864a 02       		.byte	0x2
- 35547 864b 7501     		.value	0x175
- 35548 864d 32       		.uleb128 0x32
- 35549 864e E90D0000 		.long	0xde9
- 35550 8652 03       		.byte	0x3
- 35551 8653 91       		.byte	0x91
- 35552 8654 C070     		.sleb128 -1984
- 35553 8656 32       		.uleb128 0x32
- 35554 8657 DD0D0000 		.long	0xddd
- 35555 865b 03       		.byte	0x3
- 35556 865c 91       		.byte	0x91
- 35557 865d D070     		.sleb128 -1968
-
GAS LISTING /tmp/ccjbMjHD.s 			page 925
-
-
- 35558 865f 00       		.byte	0x0
- 35559 8660 00       		.byte	0x0
- 35560 8661 00       		.byte	0x0
- 35561 8662 00       		.byte	0x0
- 35562 8663 36       		.uleb128 0x36
- 35563 8664 00000000 		.quad	.LBB2399
- 35563      00000000 
- 35564 866c 00000000 		.quad	.LBE2399
- 35564      00000000 
- 35565 8674 83860000 		.long	0x8683
- 35566 8678 34       		.uleb128 0x34
- 35567 8679 2C0C0000 		.long	0xc2c
- 35568 867d 04       		.byte	0x4
- 35569 867e 91       		.byte	0x91
- 35570 867f A0BF7F   		.sleb128 -8288
- 35571 8682 00       		.byte	0x0
- 35572 8683 31       		.uleb128 0x31
- 35573 8684 860E0000 		.long	0xe86
- 35574 8688 00000000 		.quad	.LBB2400
- 35574      00000000 
- 35575 8690 00000000 		.quad	.LBE2400
- 35575      00000000 
- 35576 8698 02       		.byte	0x2
- 35577 8699 9606     		.value	0x696
- 35578 869b B2860000 		.long	0x86b2
- 35579 869f 32       		.uleb128 0x32
- 35580 86a0 A10E0000 		.long	0xea1
- 35581 86a4 03       		.byte	0x3
- 35582 86a5 91       		.byte	0x91
- 35583 86a6 E070     		.sleb128 -1952
- 35584 86a8 32       		.uleb128 0x32
- 35585 86a9 970E0000 		.long	0xe97
- 35586 86ad 03       		.byte	0x3
- 35587 86ae 91       		.byte	0x91
- 35588 86af F070     		.sleb128 -1936
- 35589 86b1 00       		.byte	0x0
- 35590 86b2 36       		.uleb128 0x36
- 35591 86b3 00000000 		.quad	.LBB2402
- 35591      00000000 
- 35592 86bb 00000000 		.quad	.LBE2402
- 35592      00000000 
- 35593 86c3 D2860000 		.long	0x86d2
- 35594 86c7 34       		.uleb128 0x34
- 35595 86c8 3C0C0000 		.long	0xc3c
- 35596 86cc 04       		.byte	0x4
- 35597 86cd 91       		.byte	0x91
- 35598 86ce 90BF7F   		.sleb128 -8304
- 35599 86d1 00       		.byte	0x0
- 35600 86d2 31       		.uleb128 0x31
- 35601 86d3 AC0E0000 		.long	0xeac
- 35602 86d7 00000000 		.quad	.LBB2403
- 35602      00000000 
- 35603 86df 00000000 		.quad	.LBE2403
- 35603      00000000 
- 35604 86e7 02       		.byte	0x2
- 35605 86e8 9806     		.value	0x698
- 35606 86ea 23870000 		.long	0x8723
-
GAS LISTING /tmp/ccjbMjHD.s 			page 926
-
-
- 35607 86ee 32       		.uleb128 0x32
- 35608 86ef BE0E0000 		.long	0xebe
- 35609 86f3 03       		.byte	0x3
- 35610 86f4 91       		.byte	0x91
- 35611 86f5 8071     		.sleb128 -1920
- 35612 86f7 35       		.uleb128 0x35
- 35613 86f8 CB0E0000 		.long	0xecb
- 35614 86fc 00000000 		.quad	.LBB2405
- 35614      00000000 
- 35615 8704 00000000 		.quad	.LBE2405
- 35615      00000000 
- 35616 870c 02       		.byte	0x2
- 35617 870d 4905     		.value	0x549
- 35618 870f 32       		.uleb128 0x32
- 35619 8710 E90E0000 		.long	0xee9
- 35620 8714 03       		.byte	0x3
- 35621 8715 91       		.byte	0x91
- 35622 8716 9C71     		.sleb128 -1892
- 35623 8718 32       		.uleb128 0x32
- 35624 8719 DD0E0000 		.long	0xedd
- 35625 871d 03       		.byte	0x3
- 35626 871e 91       		.byte	0x91
- 35627 871f A071     		.sleb128 -1888
- 35628 8721 00       		.byte	0x0
- 35629 8722 00       		.byte	0x0
- 35630 8723 33       		.uleb128 0x33
- 35631 8724 00000000 		.quad	.LBB2407
- 35631      00000000 
- 35632 872c 00000000 		.quad	.LBE2407
- 35632      00000000 
- 35633 8734 34       		.uleb128 0x34
- 35634 8735 480C0000 		.long	0xc48
- 35635 8739 04       		.byte	0x4
- 35636 873a 91       		.byte	0x91
- 35637 873b 80BF7F   		.sleb128 -8320
- 35638 873e 00       		.byte	0x0
- 35639 873f 00       		.byte	0x0
- 35640 8740 00       		.byte	0x0
- 35641 8741 31       		.uleb128 0x31
- 35642 8742 AC0E0000 		.long	0xeac
- 35643 8746 00000000 		.quad	.LBB2408
- 35643      00000000 
- 35644 874e 00000000 		.quad	.LBE2408
- 35644      00000000 
- 35645 8756 02       		.byte	0x2
- 35646 8757 4507     		.value	0x745
- 35647 8759 92870000 		.long	0x8792
- 35648 875d 32       		.uleb128 0x32
- 35649 875e BE0E0000 		.long	0xebe
- 35650 8762 03       		.byte	0x3
- 35651 8763 91       		.byte	0x91
- 35652 8764 B071     		.sleb128 -1872
- 35653 8766 35       		.uleb128 0x35
- 35654 8767 CB0E0000 		.long	0xecb
- 35655 876b 00000000 		.quad	.LBB2410
- 35655      00000000 
- 35656 8773 00000000 		.quad	.LBE2410
-
GAS LISTING /tmp/ccjbMjHD.s 			page 927
-
-
- 35656      00000000 
- 35657 877b 02       		.byte	0x2
- 35658 877c 4905     		.value	0x549
- 35659 877e 32       		.uleb128 0x32
- 35660 877f E90E0000 		.long	0xee9
- 35661 8783 03       		.byte	0x3
- 35662 8784 91       		.byte	0x91
- 35663 8785 CC71     		.sleb128 -1844
- 35664 8787 32       		.uleb128 0x32
- 35665 8788 DD0E0000 		.long	0xedd
- 35666 878c 03       		.byte	0x3
- 35667 878d 91       		.byte	0x91
- 35668 878e D071     		.sleb128 -1840
- 35669 8790 00       		.byte	0x0
- 35670 8791 00       		.byte	0x0
- 35671 8792 31       		.uleb128 0x31
- 35672 8793 71560000 		.long	0x5671
- 35673 8797 00000000 		.quad	.LBB2412
- 35673      00000000 
- 35674 879f 00000000 		.quad	.LBE2412
- 35674      00000000 
- 35675 87a7 02       		.byte	0x2
- 35676 87a8 4D07     		.value	0x74d
- 35677 87aa 5C880000 		.long	0x885c
- 35678 87ae 32       		.uleb128 0x32
- 35679 87af 8F560000 		.long	0x568f
- 35680 87b3 03       		.byte	0x3
- 35681 87b4 91       		.byte	0x91
- 35682 87b5 EC71     		.sleb128 -1812
- 35683 87b7 32       		.uleb128 0x32
- 35684 87b8 83560000 		.long	0x5683
- 35685 87bc 03       		.byte	0x3
- 35686 87bd 91       		.byte	0x91
- 35687 87be F071     		.sleb128 -1808
- 35688 87c0 33       		.uleb128 0x33
- 35689 87c1 00000000 		.quad	.LBB2413
- 35689      00000000 
- 35690 87c9 00000000 		.quad	.LBE2413
- 35690      00000000 
- 35691 87d1 34       		.uleb128 0x34
- 35692 87d2 9B560000 		.long	0x569b
- 35693 87d6 04       		.byte	0x4
- 35694 87d7 91       		.byte	0x91
- 35695 87d8 D0BF7F   		.sleb128 -8240
- 35696 87db 34       		.uleb128 0x34
- 35697 87dc A5560000 		.long	0x56a5
- 35698 87e0 03       		.byte	0x3
- 35699 87e1 91       		.byte	0x91
- 35700 87e2 9072     		.sleb128 -1776
- 35701 87e4 34       		.uleb128 0x34
- 35702 87e5 B1560000 		.long	0x56b1
- 35703 87e9 03       		.byte	0x3
- 35704 87ea 91       		.byte	0x91
- 35705 87eb 8C72     		.sleb128 -1780
- 35706 87ed 31       		.uleb128 0x31
- 35707 87ee BE560000 		.long	0x56be
- 35708 87f2 00000000 		.quad	.LBB2414
-
GAS LISTING /tmp/ccjbMjHD.s 			page 928
-
-
- 35708      00000000 
- 35709 87fa 00000000 		.quad	.LBE2414
- 35709      00000000 
- 35710 8802 02       		.byte	0x2
- 35711 8803 5F06     		.value	0x65f
- 35712 8805 38880000 		.long	0x8838
- 35713 8809 32       		.uleb128 0x32
- 35714 880a D0560000 		.long	0x56d0
- 35715 880e 03       		.byte	0x3
- 35716 880f 91       		.byte	0x91
- 35717 8810 9472     		.sleb128 -1772
- 35718 8812 33       		.uleb128 0x33
- 35719 8813 00000000 		.quad	.LBB2415
- 35719      00000000 
- 35720 881b 00000000 		.quad	.LBE2415
- 35720      00000000 
- 35721 8823 34       		.uleb128 0x34
- 35722 8824 DA560000 		.long	0x56da
- 35723 8828 04       		.byte	0x4
- 35724 8829 91       		.byte	0x91
- 35725 882a C0BF7F   		.sleb128 -8256
- 35726 882d 34       		.uleb128 0x34
- 35727 882e E6560000 		.long	0x56e6
- 35728 8832 03       		.byte	0x3
- 35729 8833 91       		.byte	0x91
- 35730 8834 9872     		.sleb128 -1768
- 35731 8836 00       		.byte	0x0
- 35732 8837 00       		.byte	0x0
- 35733 8838 35       		.uleb128 0x35
- 35734 8839 F2560000 		.long	0x56f2
- 35735 883d 00000000 		.quad	.LBB2416
- 35735      00000000 
- 35736 8845 00000000 		.quad	.LBE2416
- 35736      00000000 
- 35737 884d 02       		.byte	0x2
- 35738 884e 6006     		.value	0x660
- 35739 8850 32       		.uleb128 0x32
- 35740 8851 04570000 		.long	0x5704
- 35741 8855 03       		.byte	0x3
- 35742 8856 91       		.byte	0x91
- 35743 8857 9C72     		.sleb128 -1764
- 35744 8859 00       		.byte	0x0
- 35745 885a 00       		.byte	0x0
- 35746 885b 00       		.byte	0x0
- 35747 885c 31       		.uleb128 0x31
- 35748 885d F60E0000 		.long	0xef6
- 35749 8861 00000000 		.quad	.LBB2418
- 35749      00000000 
- 35750 8869 00000000 		.quad	.LBE2418
- 35750      00000000 
- 35751 8871 02       		.byte	0x2
- 35752 8872 4F07     		.value	0x74f
- 35753 8874 718A0000 		.long	0x8a71
- 35754 8878 32       		.uleb128 0x32
- 35755 8879 080F0000 		.long	0xf08
- 35756 887d 03       		.byte	0x3
- 35757 887e 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 929
-
-
- 35758 887f A072     		.sleb128 -1760
- 35759 8881 33       		.uleb128 0x33
- 35760 8882 00000000 		.quad	.LBB2419
- 35760      00000000 
- 35761 888a 00000000 		.quad	.LBE2419
- 35761      00000000 
- 35762 8892 34       		.uleb128 0x34
- 35763 8893 140F0000 		.long	0xf14
- 35764 8897 04       		.byte	0x4
- 35765 8898 76       		.byte	0x76
- 35766 8899 D0BC7F   		.sleb128 -8624
- 35767 889c 31       		.uleb128 0x31
- 35768 889d 210F0000 		.long	0xf21
- 35769 88a1 00000000 		.quad	.LBB2420
- 35769      00000000 
- 35770 88a9 00000000 		.quad	.LBE2420
- 35770      00000000 
- 35771 88b1 02       		.byte	0x2
- 35772 88b2 1F06     		.value	0x61f
- 35773 88b4 39890000 		.long	0x8939
- 35774 88b8 32       		.uleb128 0x32
- 35775 88b9 330F0000 		.long	0xf33
- 35776 88bd 03       		.byte	0x3
- 35777 88be 91       		.byte	0x91
- 35778 88bf B072     		.sleb128 -1744
- 35779 88c1 33       		.uleb128 0x33
- 35780 88c2 00000000 		.quad	.LBB2421
- 35780      00000000 
- 35781 88ca 00000000 		.quad	.LBE2421
- 35781      00000000 
- 35782 88d2 34       		.uleb128 0x34
- 35783 88d3 3F0F0000 		.long	0xf3f
- 35784 88d7 09       		.byte	0x9
- 35785 88d8 03       		.byte	0x3
- 35786 88d9 00000000 		.quad	mask.7943
- 35786      00000000 
- 35787 88e1 35       		.uleb128 0x35
- 35788 88e2 A00D0000 		.long	0xda0
- 35789 88e6 00000000 		.quad	.LBB2422
- 35789      00000000 
- 35790 88ee 00000000 		.quad	.LBE2422
- 35790      00000000 
- 35791 88f6 02       		.byte	0x2
- 35792 88f7 FE04     		.value	0x4fe
- 35793 88f9 32       		.uleb128 0x32
- 35794 88fa BE0D0000 		.long	0xdbe
- 35795 88fe 03       		.byte	0x3
- 35796 88ff 91       		.byte	0x91
- 35797 8900 C072     		.sleb128 -1728
- 35798 8902 32       		.uleb128 0x32
- 35799 8903 B20D0000 		.long	0xdb2
- 35800 8907 03       		.byte	0x3
- 35801 8908 91       		.byte	0x91
- 35802 8909 D072     		.sleb128 -1712
- 35803 890b 35       		.uleb128 0x35
- 35804 890c CB0D0000 		.long	0xdcb
- 35805 8910 00000000 		.quad	.LBB2424
-
GAS LISTING /tmp/ccjbMjHD.s 			page 930
-
-
- 35805      00000000 
- 35806 8918 00000000 		.quad	.LBE2424
- 35806      00000000 
- 35807 8920 02       		.byte	0x2
- 35808 8921 7501     		.value	0x175
- 35809 8923 32       		.uleb128 0x32
- 35810 8924 E90D0000 		.long	0xde9
- 35811 8928 03       		.byte	0x3
- 35812 8929 91       		.byte	0x91
- 35813 892a E072     		.sleb128 -1696
- 35814 892c 32       		.uleb128 0x32
- 35815 892d DD0D0000 		.long	0xddd
- 35816 8931 03       		.byte	0x3
- 35817 8932 91       		.byte	0x91
- 35818 8933 F072     		.sleb128 -1680
- 35819 8935 00       		.byte	0x0
- 35820 8936 00       		.byte	0x0
- 35821 8937 00       		.byte	0x0
- 35822 8938 00       		.byte	0x0
- 35823 8939 31       		.uleb128 0x31
- 35824 893a 210F0000 		.long	0xf21
- 35825 893e 00000000 		.quad	.LBB2426
- 35825      00000000 
- 35826 8946 00000000 		.quad	.LBE2426
- 35826      00000000 
- 35827 894e 02       		.byte	0x2
- 35828 894f 2006     		.value	0x620
- 35829 8951 D6890000 		.long	0x89d6
- 35830 8955 32       		.uleb128 0x32
- 35831 8956 330F0000 		.long	0xf33
- 35832 895a 03       		.byte	0x3
- 35833 895b 91       		.byte	0x91
- 35834 895c 8073     		.sleb128 -1664
- 35835 895e 33       		.uleb128 0x33
- 35836 895f 00000000 		.quad	.LBB2427
- 35836      00000000 
- 35837 8967 00000000 		.quad	.LBE2427
- 35837      00000000 
- 35838 896f 34       		.uleb128 0x34
- 35839 8970 3F0F0000 		.long	0xf3f
- 35840 8974 09       		.byte	0x9
- 35841 8975 03       		.byte	0x3
- 35842 8976 00000000 		.quad	mask.7943
- 35842      00000000 
- 35843 897e 35       		.uleb128 0x35
- 35844 897f A00D0000 		.long	0xda0
- 35845 8983 00000000 		.quad	.LBB2428
- 35845      00000000 
- 35846 898b 00000000 		.quad	.LBE2428
- 35846      00000000 
- 35847 8993 02       		.byte	0x2
- 35848 8994 FE04     		.value	0x4fe
- 35849 8996 32       		.uleb128 0x32
- 35850 8997 BE0D0000 		.long	0xdbe
- 35851 899b 03       		.byte	0x3
- 35852 899c 91       		.byte	0x91
- 35853 899d 9073     		.sleb128 -1648
-
GAS LISTING /tmp/ccjbMjHD.s 			page 931
-
-
- 35854 899f 32       		.uleb128 0x32
- 35855 89a0 B20D0000 		.long	0xdb2
- 35856 89a4 03       		.byte	0x3
- 35857 89a5 91       		.byte	0x91
- 35858 89a6 A073     		.sleb128 -1632
- 35859 89a8 35       		.uleb128 0x35
- 35860 89a9 CB0D0000 		.long	0xdcb
- 35861 89ad 00000000 		.quad	.LBB2430
- 35861      00000000 
- 35862 89b5 00000000 		.quad	.LBE2430
- 35862      00000000 
- 35863 89bd 02       		.byte	0x2
- 35864 89be 7501     		.value	0x175
- 35865 89c0 32       		.uleb128 0x32
- 35866 89c1 E90D0000 		.long	0xde9
- 35867 89c5 03       		.byte	0x3
- 35868 89c6 91       		.byte	0x91
- 35869 89c7 B073     		.sleb128 -1616
- 35870 89c9 32       		.uleb128 0x32
- 35871 89ca DD0D0000 		.long	0xddd
- 35872 89ce 03       		.byte	0x3
- 35873 89cf 91       		.byte	0x91
- 35874 89d0 C073     		.sleb128 -1600
- 35875 89d2 00       		.byte	0x0
- 35876 89d3 00       		.byte	0x0
- 35877 89d4 00       		.byte	0x0
- 35878 89d5 00       		.byte	0x0
- 35879 89d6 35       		.uleb128 0x35
- 35880 89d7 210F0000 		.long	0xf21
- 35881 89db 00000000 		.quad	.LBB2432
- 35881      00000000 
- 35882 89e3 00000000 		.quad	.LBE2432
- 35882      00000000 
- 35883 89eb 02       		.byte	0x2
- 35884 89ec 2106     		.value	0x621
- 35885 89ee 32       		.uleb128 0x32
- 35886 89ef 330F0000 		.long	0xf33
- 35887 89f3 03       		.byte	0x3
- 35888 89f4 91       		.byte	0x91
- 35889 89f5 D073     		.sleb128 -1584
- 35890 89f7 33       		.uleb128 0x33
- 35891 89f8 00000000 		.quad	.LBB2433
- 35891      00000000 
- 35892 8a00 00000000 		.quad	.LBE2433
- 35892      00000000 
- 35893 8a08 34       		.uleb128 0x34
- 35894 8a09 3F0F0000 		.long	0xf3f
- 35895 8a0d 09       		.byte	0x9
- 35896 8a0e 03       		.byte	0x3
- 35897 8a0f 00000000 		.quad	mask.7943
- 35897      00000000 
- 35898 8a17 35       		.uleb128 0x35
- 35899 8a18 A00D0000 		.long	0xda0
- 35900 8a1c 00000000 		.quad	.LBB2434
- 35900      00000000 
- 35901 8a24 00000000 		.quad	.LBE2434
- 35901      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 932
-
-
- 35902 8a2c 02       		.byte	0x2
- 35903 8a2d FE04     		.value	0x4fe
- 35904 8a2f 32       		.uleb128 0x32
- 35905 8a30 BE0D0000 		.long	0xdbe
- 35906 8a34 03       		.byte	0x3
- 35907 8a35 91       		.byte	0x91
- 35908 8a36 E073     		.sleb128 -1568
- 35909 8a38 32       		.uleb128 0x32
- 35910 8a39 B20D0000 		.long	0xdb2
- 35911 8a3d 03       		.byte	0x3
- 35912 8a3e 91       		.byte	0x91
- 35913 8a3f F073     		.sleb128 -1552
- 35914 8a41 35       		.uleb128 0x35
- 35915 8a42 CB0D0000 		.long	0xdcb
- 35916 8a46 00000000 		.quad	.LBB2436
- 35916      00000000 
- 35917 8a4e 00000000 		.quad	.LBE2436
- 35917      00000000 
- 35918 8a56 02       		.byte	0x2
- 35919 8a57 7501     		.value	0x175
- 35920 8a59 32       		.uleb128 0x32
- 35921 8a5a E90D0000 		.long	0xde9
- 35922 8a5e 03       		.byte	0x3
- 35923 8a5f 91       		.byte	0x91
- 35924 8a60 8074     		.sleb128 -1536
- 35925 8a62 32       		.uleb128 0x32
- 35926 8a63 DD0D0000 		.long	0xddd
- 35927 8a67 03       		.byte	0x3
- 35928 8a68 91       		.byte	0x91
- 35929 8a69 9074     		.sleb128 -1520
- 35930 8a6b 00       		.byte	0x0
- 35931 8a6c 00       		.byte	0x0
- 35932 8a6d 00       		.byte	0x0
- 35933 8a6e 00       		.byte	0x0
- 35934 8a6f 00       		.byte	0x0
- 35935 8a70 00       		.byte	0x0
- 35936 8a71 31       		.uleb128 0x31
- 35937 8a72 F60E0000 		.long	0xef6
- 35938 8a76 00000000 		.quad	.LBB2438
- 35938      00000000 
- 35939 8a7e 00000000 		.quad	.LBE2438
- 35939      00000000 
- 35940 8a86 02       		.byte	0x2
- 35941 8a87 5007     		.value	0x750
- 35942 8a89 868C0000 		.long	0x8c86
- 35943 8a8d 32       		.uleb128 0x32
- 35944 8a8e 080F0000 		.long	0xf08
- 35945 8a92 03       		.byte	0x3
- 35946 8a93 91       		.byte	0x91
- 35947 8a94 A074     		.sleb128 -1504
- 35948 8a96 33       		.uleb128 0x33
- 35949 8a97 00000000 		.quad	.LBB2439
- 35949      00000000 
- 35950 8a9f 00000000 		.quad	.LBE2439
- 35950      00000000 
- 35951 8aa7 34       		.uleb128 0x34
- 35952 8aa8 140F0000 		.long	0xf14
-
GAS LISTING /tmp/ccjbMjHD.s 			page 933
-
-
- 35953 8aac 04       		.byte	0x4
- 35954 8aad 76       		.byte	0x76
- 35955 8aae E0BC7F   		.sleb128 -8608
- 35956 8ab1 31       		.uleb128 0x31
- 35957 8ab2 210F0000 		.long	0xf21
- 35958 8ab6 00000000 		.quad	.LBB2440
- 35958      00000000 
- 35959 8abe 00000000 		.quad	.LBE2440
- 35959      00000000 
- 35960 8ac6 02       		.byte	0x2
- 35961 8ac7 1F06     		.value	0x61f
- 35962 8ac9 4E8B0000 		.long	0x8b4e
- 35963 8acd 32       		.uleb128 0x32
- 35964 8ace 330F0000 		.long	0xf33
- 35965 8ad2 03       		.byte	0x3
- 35966 8ad3 91       		.byte	0x91
- 35967 8ad4 B074     		.sleb128 -1488
- 35968 8ad6 33       		.uleb128 0x33
- 35969 8ad7 00000000 		.quad	.LBB2441
- 35969      00000000 
- 35970 8adf 00000000 		.quad	.LBE2441
- 35970      00000000 
- 35971 8ae7 34       		.uleb128 0x34
- 35972 8ae8 3F0F0000 		.long	0xf3f
- 35973 8aec 09       		.byte	0x9
- 35974 8aed 03       		.byte	0x3
- 35975 8aee 00000000 		.quad	mask.7943
- 35975      00000000 
- 35976 8af6 35       		.uleb128 0x35
- 35977 8af7 A00D0000 		.long	0xda0
- 35978 8afb 00000000 		.quad	.LBB2442
- 35978      00000000 
- 35979 8b03 00000000 		.quad	.LBE2442
- 35979      00000000 
- 35980 8b0b 02       		.byte	0x2
- 35981 8b0c FE04     		.value	0x4fe
- 35982 8b0e 32       		.uleb128 0x32
- 35983 8b0f BE0D0000 		.long	0xdbe
- 35984 8b13 03       		.byte	0x3
- 35985 8b14 91       		.byte	0x91
- 35986 8b15 C074     		.sleb128 -1472
- 35987 8b17 32       		.uleb128 0x32
- 35988 8b18 B20D0000 		.long	0xdb2
- 35989 8b1c 03       		.byte	0x3
- 35990 8b1d 91       		.byte	0x91
- 35991 8b1e D074     		.sleb128 -1456
- 35992 8b20 35       		.uleb128 0x35
- 35993 8b21 CB0D0000 		.long	0xdcb
- 35994 8b25 00000000 		.quad	.LBB2444
- 35994      00000000 
- 35995 8b2d 00000000 		.quad	.LBE2444
- 35995      00000000 
- 35996 8b35 02       		.byte	0x2
- 35997 8b36 7501     		.value	0x175
- 35998 8b38 32       		.uleb128 0x32
- 35999 8b39 E90D0000 		.long	0xde9
- 36000 8b3d 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 934
-
-
- 36001 8b3e 91       		.byte	0x91
- 36002 8b3f E074     		.sleb128 -1440
- 36003 8b41 32       		.uleb128 0x32
- 36004 8b42 DD0D0000 		.long	0xddd
- 36005 8b46 03       		.byte	0x3
- 36006 8b47 91       		.byte	0x91
- 36007 8b48 F074     		.sleb128 -1424
- 36008 8b4a 00       		.byte	0x0
- 36009 8b4b 00       		.byte	0x0
- 36010 8b4c 00       		.byte	0x0
- 36011 8b4d 00       		.byte	0x0
- 36012 8b4e 31       		.uleb128 0x31
- 36013 8b4f 210F0000 		.long	0xf21
- 36014 8b53 00000000 		.quad	.LBB2446
- 36014      00000000 
- 36015 8b5b 00000000 		.quad	.LBE2446
- 36015      00000000 
- 36016 8b63 02       		.byte	0x2
- 36017 8b64 2006     		.value	0x620
- 36018 8b66 EB8B0000 		.long	0x8beb
- 36019 8b6a 32       		.uleb128 0x32
- 36020 8b6b 330F0000 		.long	0xf33
- 36021 8b6f 03       		.byte	0x3
- 36022 8b70 91       		.byte	0x91
- 36023 8b71 8075     		.sleb128 -1408
- 36024 8b73 33       		.uleb128 0x33
- 36025 8b74 00000000 		.quad	.LBB2447
- 36025      00000000 
- 36026 8b7c 00000000 		.quad	.LBE2447
- 36026      00000000 
- 36027 8b84 34       		.uleb128 0x34
- 36028 8b85 3F0F0000 		.long	0xf3f
- 36029 8b89 09       		.byte	0x9
- 36030 8b8a 03       		.byte	0x3
- 36031 8b8b 00000000 		.quad	mask.7943
- 36031      00000000 
- 36032 8b93 35       		.uleb128 0x35
- 36033 8b94 A00D0000 		.long	0xda0
- 36034 8b98 00000000 		.quad	.LBB2448
- 36034      00000000 
- 36035 8ba0 00000000 		.quad	.LBE2448
- 36035      00000000 
- 36036 8ba8 02       		.byte	0x2
- 36037 8ba9 FE04     		.value	0x4fe
- 36038 8bab 32       		.uleb128 0x32
- 36039 8bac BE0D0000 		.long	0xdbe
- 36040 8bb0 03       		.byte	0x3
- 36041 8bb1 91       		.byte	0x91
- 36042 8bb2 9075     		.sleb128 -1392
- 36043 8bb4 32       		.uleb128 0x32
- 36044 8bb5 B20D0000 		.long	0xdb2
- 36045 8bb9 03       		.byte	0x3
- 36046 8bba 91       		.byte	0x91
- 36047 8bbb A075     		.sleb128 -1376
- 36048 8bbd 35       		.uleb128 0x35
- 36049 8bbe CB0D0000 		.long	0xdcb
- 36050 8bc2 00000000 		.quad	.LBB2450
-
GAS LISTING /tmp/ccjbMjHD.s 			page 935
-
-
- 36050      00000000 
- 36051 8bca 00000000 		.quad	.LBE2450
- 36051      00000000 
- 36052 8bd2 02       		.byte	0x2
- 36053 8bd3 7501     		.value	0x175
- 36054 8bd5 32       		.uleb128 0x32
- 36055 8bd6 E90D0000 		.long	0xde9
- 36056 8bda 03       		.byte	0x3
- 36057 8bdb 91       		.byte	0x91
- 36058 8bdc B075     		.sleb128 -1360
- 36059 8bde 32       		.uleb128 0x32
- 36060 8bdf DD0D0000 		.long	0xddd
- 36061 8be3 03       		.byte	0x3
- 36062 8be4 91       		.byte	0x91
- 36063 8be5 C075     		.sleb128 -1344
- 36064 8be7 00       		.byte	0x0
- 36065 8be8 00       		.byte	0x0
- 36066 8be9 00       		.byte	0x0
- 36067 8bea 00       		.byte	0x0
- 36068 8beb 35       		.uleb128 0x35
- 36069 8bec 210F0000 		.long	0xf21
- 36070 8bf0 00000000 		.quad	.LBB2452
- 36070      00000000 
- 36071 8bf8 00000000 		.quad	.LBE2452
- 36071      00000000 
- 36072 8c00 02       		.byte	0x2
- 36073 8c01 2106     		.value	0x621
- 36074 8c03 32       		.uleb128 0x32
- 36075 8c04 330F0000 		.long	0xf33
- 36076 8c08 03       		.byte	0x3
- 36077 8c09 91       		.byte	0x91
- 36078 8c0a D075     		.sleb128 -1328
- 36079 8c0c 33       		.uleb128 0x33
- 36080 8c0d 00000000 		.quad	.LBB2453
- 36080      00000000 
- 36081 8c15 00000000 		.quad	.LBE2453
- 36081      00000000 
- 36082 8c1d 34       		.uleb128 0x34
- 36083 8c1e 3F0F0000 		.long	0xf3f
- 36084 8c22 09       		.byte	0x9
- 36085 8c23 03       		.byte	0x3
- 36086 8c24 00000000 		.quad	mask.7943
- 36086      00000000 
- 36087 8c2c 35       		.uleb128 0x35
- 36088 8c2d A00D0000 		.long	0xda0
- 36089 8c31 00000000 		.quad	.LBB2454
- 36089      00000000 
- 36090 8c39 00000000 		.quad	.LBE2454
- 36090      00000000 
- 36091 8c41 02       		.byte	0x2
- 36092 8c42 FE04     		.value	0x4fe
- 36093 8c44 32       		.uleb128 0x32
- 36094 8c45 BE0D0000 		.long	0xdbe
- 36095 8c49 03       		.byte	0x3
- 36096 8c4a 91       		.byte	0x91
- 36097 8c4b E075     		.sleb128 -1312
- 36098 8c4d 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 936
-
-
- 36099 8c4e B20D0000 		.long	0xdb2
- 36100 8c52 03       		.byte	0x3
- 36101 8c53 91       		.byte	0x91
- 36102 8c54 F075     		.sleb128 -1296
- 36103 8c56 35       		.uleb128 0x35
- 36104 8c57 CB0D0000 		.long	0xdcb
- 36105 8c5b 00000000 		.quad	.LBB2456
- 36105      00000000 
- 36106 8c63 00000000 		.quad	.LBE2456
- 36106      00000000 
- 36107 8c6b 02       		.byte	0x2
- 36108 8c6c 7501     		.value	0x175
- 36109 8c6e 32       		.uleb128 0x32
- 36110 8c6f E90D0000 		.long	0xde9
- 36111 8c73 03       		.byte	0x3
- 36112 8c74 91       		.byte	0x91
- 36113 8c75 8076     		.sleb128 -1280
- 36114 8c77 32       		.uleb128 0x32
- 36115 8c78 DD0D0000 		.long	0xddd
- 36116 8c7c 03       		.byte	0x3
- 36117 8c7d 91       		.byte	0x91
- 36118 8c7e 9076     		.sleb128 -1264
- 36119 8c80 00       		.byte	0x0
- 36120 8c81 00       		.byte	0x0
- 36121 8c82 00       		.byte	0x0
- 36122 8c83 00       		.byte	0x0
- 36123 8c84 00       		.byte	0x0
- 36124 8c85 00       		.byte	0x0
- 36125 8c86 31       		.uleb128 0x31
- 36126 8c87 AC0E0000 		.long	0xeac
- 36127 8c8b 00000000 		.quad	.LBB2458
- 36127      00000000 
- 36128 8c93 00000000 		.quad	.LBE2458
- 36128      00000000 
- 36129 8c9b 02       		.byte	0x2
- 36130 8c9c 5207     		.value	0x752
- 36131 8c9e D78C0000 		.long	0x8cd7
- 36132 8ca2 32       		.uleb128 0x32
- 36133 8ca3 BE0E0000 		.long	0xebe
- 36134 8ca7 03       		.byte	0x3
- 36135 8ca8 91       		.byte	0x91
- 36136 8ca9 A076     		.sleb128 -1248
- 36137 8cab 35       		.uleb128 0x35
- 36138 8cac CB0E0000 		.long	0xecb
- 36139 8cb0 00000000 		.quad	.LBB2460
- 36139      00000000 
- 36140 8cb8 00000000 		.quad	.LBE2460
- 36140      00000000 
- 36141 8cc0 02       		.byte	0x2
- 36142 8cc1 4905     		.value	0x549
- 36143 8cc3 32       		.uleb128 0x32
- 36144 8cc4 E90E0000 		.long	0xee9
- 36145 8cc8 03       		.byte	0x3
- 36146 8cc9 91       		.byte	0x91
- 36147 8cca BC76     		.sleb128 -1220
- 36148 8ccc 32       		.uleb128 0x32
- 36149 8ccd DD0E0000 		.long	0xedd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 937
-
-
- 36150 8cd1 03       		.byte	0x3
- 36151 8cd2 91       		.byte	0x91
- 36152 8cd3 C076     		.sleb128 -1216
- 36153 8cd5 00       		.byte	0x0
- 36154 8cd6 00       		.byte	0x0
- 36155 8cd7 31       		.uleb128 0x31
- 36156 8cd8 0F570000 		.long	0x570f
- 36157 8cdc 00000000 		.quad	.LBB2462
- 36157      00000000 
- 36158 8ce4 00000000 		.quad	.LBE2462
- 36158      00000000 
- 36159 8cec 02       		.byte	0x2
- 36160 8ced 5407     		.value	0x754
- 36161 8cef 3A8D0000 		.long	0x8d3a
- 36162 8cf3 32       		.uleb128 0x32
- 36163 8cf4 2B570000 		.long	0x572b
- 36164 8cf8 03       		.byte	0x3
- 36165 8cf9 91       		.byte	0x91
- 36166 8cfa D076     		.sleb128 -1200
- 36167 8cfc 32       		.uleb128 0x32
- 36168 8cfd 21570000 		.long	0x5721
- 36169 8d01 03       		.byte	0x3
- 36170 8d02 91       		.byte	0x91
- 36171 8d03 E076     		.sleb128 -1184
- 36172 8d05 35       		.uleb128 0x35
- 36173 8d06 36570000 		.long	0x5736
- 36174 8d0a 00000000 		.quad	.LBB2464
- 36174      00000000 
- 36175 8d12 00000000 		.quad	.LBE2464
- 36175      00000000 
- 36176 8d1a 02       		.byte	0x2
- 36177 8d1b BA05     		.value	0x5ba
- 36178 8d1d 32       		.uleb128 0x32
- 36179 8d1e 60570000 		.long	0x5760
- 36180 8d22 03       		.byte	0x3
- 36181 8d23 91       		.byte	0x91
- 36182 8d24 FC76     		.sleb128 -1156
- 36183 8d26 32       		.uleb128 0x32
- 36184 8d27 54570000 		.long	0x5754
- 36185 8d2b 03       		.byte	0x3
- 36186 8d2c 91       		.byte	0x91
- 36187 8d2d 8077     		.sleb128 -1152
- 36188 8d2f 32       		.uleb128 0x32
- 36189 8d30 48570000 		.long	0x5748
- 36190 8d34 03       		.byte	0x3
- 36191 8d35 91       		.byte	0x91
- 36192 8d36 9077     		.sleb128 -1136
- 36193 8d38 00       		.byte	0x0
- 36194 8d39 00       		.byte	0x0
- 36195 8d3a 31       		.uleb128 0x31
- 36196 8d3b 6D570000 		.long	0x576d
- 36197 8d3f 00000000 		.quad	.LBB2466
- 36197      00000000 
- 36198 8d47 00000000 		.quad	.LBE2466
- 36198      00000000 
- 36199 8d4f 02       		.byte	0x2
- 36200 8d50 5607     		.value	0x756
-
GAS LISTING /tmp/ccjbMjHD.s 			page 938
-
-
- 36201 8d52 9D8D0000 		.long	0x8d9d
- 36202 8d56 32       		.uleb128 0x32
- 36203 8d57 89570000 		.long	0x5789
- 36204 8d5b 03       		.byte	0x3
- 36205 8d5c 91       		.byte	0x91
- 36206 8d5d A077     		.sleb128 -1120
- 36207 8d5f 32       		.uleb128 0x32
- 36208 8d60 7F570000 		.long	0x577f
- 36209 8d64 03       		.byte	0x3
- 36210 8d65 91       		.byte	0x91
- 36211 8d66 B077     		.sleb128 -1104
- 36212 8d68 35       		.uleb128 0x35
- 36213 8d69 36570000 		.long	0x5736
- 36214 8d6d 00000000 		.quad	.LBB2468
- 36214      00000000 
- 36215 8d75 00000000 		.quad	.LBE2468
- 36215      00000000 
- 36216 8d7d 02       		.byte	0x2
- 36217 8d7e DA05     		.value	0x5da
- 36218 8d80 32       		.uleb128 0x32
- 36219 8d81 60570000 		.long	0x5760
- 36220 8d85 03       		.byte	0x3
- 36221 8d86 91       		.byte	0x91
- 36222 8d87 CC77     		.sleb128 -1076
- 36223 8d89 32       		.uleb128 0x32
- 36224 8d8a 54570000 		.long	0x5754
- 36225 8d8e 03       		.byte	0x3
- 36226 8d8f 91       		.byte	0x91
- 36227 8d90 D077     		.sleb128 -1072
- 36228 8d92 32       		.uleb128 0x32
- 36229 8d93 48570000 		.long	0x5748
- 36230 8d97 03       		.byte	0x3
- 36231 8d98 91       		.byte	0x91
- 36232 8d99 E077     		.sleb128 -1056
- 36233 8d9b 00       		.byte	0x0
- 36234 8d9c 00       		.byte	0x0
- 36235 8d9d 31       		.uleb128 0x31
- 36236 8d9e F60E0000 		.long	0xef6
- 36237 8da2 00000000 		.quad	.LBB2470
- 36237      00000000 
- 36238 8daa 00000000 		.quad	.LBE2470
- 36238      00000000 
- 36239 8db2 02       		.byte	0x2
- 36240 8db3 5A07     		.value	0x75a
- 36241 8db5 B28F0000 		.long	0x8fb2
- 36242 8db9 32       		.uleb128 0x32
- 36243 8dba 080F0000 		.long	0xf08
- 36244 8dbe 03       		.byte	0x3
- 36245 8dbf 91       		.byte	0x91
- 36246 8dc0 F077     		.sleb128 -1040
- 36247 8dc2 33       		.uleb128 0x33
- 36248 8dc3 00000000 		.quad	.LBB2471
- 36248      00000000 
- 36249 8dcb 00000000 		.quad	.LBE2471
- 36249      00000000 
- 36250 8dd3 34       		.uleb128 0x34
- 36251 8dd4 140F0000 		.long	0xf14
-
GAS LISTING /tmp/ccjbMjHD.s 			page 939
-
-
- 36252 8dd8 04       		.byte	0x4
- 36253 8dd9 76       		.byte	0x76
- 36254 8dda F0BC7F   		.sleb128 -8592
- 36255 8ddd 31       		.uleb128 0x31
- 36256 8dde 210F0000 		.long	0xf21
- 36257 8de2 00000000 		.quad	.LBB2472
- 36257      00000000 
- 36258 8dea 00000000 		.quad	.LBE2472
- 36258      00000000 
- 36259 8df2 02       		.byte	0x2
- 36260 8df3 1F06     		.value	0x61f
- 36261 8df5 7A8E0000 		.long	0x8e7a
- 36262 8df9 32       		.uleb128 0x32
- 36263 8dfa 330F0000 		.long	0xf33
- 36264 8dfe 03       		.byte	0x3
- 36265 8dff 91       		.byte	0x91
- 36266 8e00 8078     		.sleb128 -1024
- 36267 8e02 33       		.uleb128 0x33
- 36268 8e03 00000000 		.quad	.LBB2473
- 36268      00000000 
- 36269 8e0b 00000000 		.quad	.LBE2473
- 36269      00000000 
- 36270 8e13 34       		.uleb128 0x34
- 36271 8e14 3F0F0000 		.long	0xf3f
- 36272 8e18 09       		.byte	0x9
- 36273 8e19 03       		.byte	0x3
- 36274 8e1a 00000000 		.quad	mask.7943
- 36274      00000000 
- 36275 8e22 35       		.uleb128 0x35
- 36276 8e23 A00D0000 		.long	0xda0
- 36277 8e27 00000000 		.quad	.LBB2474
- 36277      00000000 
- 36278 8e2f 00000000 		.quad	.LBE2474
- 36278      00000000 
- 36279 8e37 02       		.byte	0x2
- 36280 8e38 FE04     		.value	0x4fe
- 36281 8e3a 32       		.uleb128 0x32
- 36282 8e3b BE0D0000 		.long	0xdbe
- 36283 8e3f 03       		.byte	0x3
- 36284 8e40 91       		.byte	0x91
- 36285 8e41 9078     		.sleb128 -1008
- 36286 8e43 32       		.uleb128 0x32
- 36287 8e44 B20D0000 		.long	0xdb2
- 36288 8e48 03       		.byte	0x3
- 36289 8e49 91       		.byte	0x91
- 36290 8e4a A078     		.sleb128 -992
- 36291 8e4c 35       		.uleb128 0x35
- 36292 8e4d CB0D0000 		.long	0xdcb
- 36293 8e51 00000000 		.quad	.LBB2476
- 36293      00000000 
- 36294 8e59 00000000 		.quad	.LBE2476
- 36294      00000000 
- 36295 8e61 02       		.byte	0x2
- 36296 8e62 7501     		.value	0x175
- 36297 8e64 32       		.uleb128 0x32
- 36298 8e65 E90D0000 		.long	0xde9
- 36299 8e69 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 940
-
-
- 36300 8e6a 91       		.byte	0x91
- 36301 8e6b B078     		.sleb128 -976
- 36302 8e6d 32       		.uleb128 0x32
- 36303 8e6e DD0D0000 		.long	0xddd
- 36304 8e72 03       		.byte	0x3
- 36305 8e73 91       		.byte	0x91
- 36306 8e74 C078     		.sleb128 -960
- 36307 8e76 00       		.byte	0x0
- 36308 8e77 00       		.byte	0x0
- 36309 8e78 00       		.byte	0x0
- 36310 8e79 00       		.byte	0x0
- 36311 8e7a 31       		.uleb128 0x31
- 36312 8e7b 210F0000 		.long	0xf21
- 36313 8e7f 00000000 		.quad	.LBB2478
- 36313      00000000 
- 36314 8e87 00000000 		.quad	.LBE2478
- 36314      00000000 
- 36315 8e8f 02       		.byte	0x2
- 36316 8e90 2006     		.value	0x620
- 36317 8e92 178F0000 		.long	0x8f17
- 36318 8e96 32       		.uleb128 0x32
- 36319 8e97 330F0000 		.long	0xf33
- 36320 8e9b 03       		.byte	0x3
- 36321 8e9c 91       		.byte	0x91
- 36322 8e9d D078     		.sleb128 -944
- 36323 8e9f 33       		.uleb128 0x33
- 36324 8ea0 00000000 		.quad	.LBB2479
- 36324      00000000 
- 36325 8ea8 00000000 		.quad	.LBE2479
- 36325      00000000 
- 36326 8eb0 34       		.uleb128 0x34
- 36327 8eb1 3F0F0000 		.long	0xf3f
- 36328 8eb5 09       		.byte	0x9
- 36329 8eb6 03       		.byte	0x3
- 36330 8eb7 00000000 		.quad	mask.7943
- 36330      00000000 
- 36331 8ebf 35       		.uleb128 0x35
- 36332 8ec0 A00D0000 		.long	0xda0
- 36333 8ec4 00000000 		.quad	.LBB2480
- 36333      00000000 
- 36334 8ecc 00000000 		.quad	.LBE2480
- 36334      00000000 
- 36335 8ed4 02       		.byte	0x2
- 36336 8ed5 FE04     		.value	0x4fe
- 36337 8ed7 32       		.uleb128 0x32
- 36338 8ed8 BE0D0000 		.long	0xdbe
- 36339 8edc 03       		.byte	0x3
- 36340 8edd 91       		.byte	0x91
- 36341 8ede E078     		.sleb128 -928
- 36342 8ee0 32       		.uleb128 0x32
- 36343 8ee1 B20D0000 		.long	0xdb2
- 36344 8ee5 03       		.byte	0x3
- 36345 8ee6 91       		.byte	0x91
- 36346 8ee7 F078     		.sleb128 -912
- 36347 8ee9 35       		.uleb128 0x35
- 36348 8eea CB0D0000 		.long	0xdcb
- 36349 8eee 00000000 		.quad	.LBB2482
-
GAS LISTING /tmp/ccjbMjHD.s 			page 941
-
-
- 36349      00000000 
- 36350 8ef6 00000000 		.quad	.LBE2482
- 36350      00000000 
- 36351 8efe 02       		.byte	0x2
- 36352 8eff 7501     		.value	0x175
- 36353 8f01 32       		.uleb128 0x32
- 36354 8f02 E90D0000 		.long	0xde9
- 36355 8f06 03       		.byte	0x3
- 36356 8f07 91       		.byte	0x91
- 36357 8f08 8079     		.sleb128 -896
- 36358 8f0a 32       		.uleb128 0x32
- 36359 8f0b DD0D0000 		.long	0xddd
- 36360 8f0f 03       		.byte	0x3
- 36361 8f10 91       		.byte	0x91
- 36362 8f11 9079     		.sleb128 -880
- 36363 8f13 00       		.byte	0x0
- 36364 8f14 00       		.byte	0x0
- 36365 8f15 00       		.byte	0x0
- 36366 8f16 00       		.byte	0x0
- 36367 8f17 35       		.uleb128 0x35
- 36368 8f18 210F0000 		.long	0xf21
- 36369 8f1c 00000000 		.quad	.LBB2484
- 36369      00000000 
- 36370 8f24 00000000 		.quad	.LBE2484
- 36370      00000000 
- 36371 8f2c 02       		.byte	0x2
- 36372 8f2d 2106     		.value	0x621
- 36373 8f2f 32       		.uleb128 0x32
- 36374 8f30 330F0000 		.long	0xf33
- 36375 8f34 03       		.byte	0x3
- 36376 8f35 91       		.byte	0x91
- 36377 8f36 A079     		.sleb128 -864
- 36378 8f38 33       		.uleb128 0x33
- 36379 8f39 00000000 		.quad	.LBB2485
- 36379      00000000 
- 36380 8f41 00000000 		.quad	.LBE2485
- 36380      00000000 
- 36381 8f49 34       		.uleb128 0x34
- 36382 8f4a 3F0F0000 		.long	0xf3f
- 36383 8f4e 09       		.byte	0x9
- 36384 8f4f 03       		.byte	0x3
- 36385 8f50 00000000 		.quad	mask.7943
- 36385      00000000 
- 36386 8f58 35       		.uleb128 0x35
- 36387 8f59 A00D0000 		.long	0xda0
- 36388 8f5d 00000000 		.quad	.LBB2486
- 36388      00000000 
- 36389 8f65 00000000 		.quad	.LBE2486
- 36389      00000000 
- 36390 8f6d 02       		.byte	0x2
- 36391 8f6e FE04     		.value	0x4fe
- 36392 8f70 32       		.uleb128 0x32
- 36393 8f71 BE0D0000 		.long	0xdbe
- 36394 8f75 03       		.byte	0x3
- 36395 8f76 91       		.byte	0x91
- 36396 8f77 B079     		.sleb128 -848
- 36397 8f79 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 942
-
-
- 36398 8f7a B20D0000 		.long	0xdb2
- 36399 8f7e 03       		.byte	0x3
- 36400 8f7f 91       		.byte	0x91
- 36401 8f80 C079     		.sleb128 -832
- 36402 8f82 35       		.uleb128 0x35
- 36403 8f83 CB0D0000 		.long	0xdcb
- 36404 8f87 00000000 		.quad	.LBB2488
- 36404      00000000 
- 36405 8f8f 00000000 		.quad	.LBE2488
- 36405      00000000 
- 36406 8f97 02       		.byte	0x2
- 36407 8f98 7501     		.value	0x175
- 36408 8f9a 32       		.uleb128 0x32
- 36409 8f9b E90D0000 		.long	0xde9
- 36410 8f9f 03       		.byte	0x3
- 36411 8fa0 91       		.byte	0x91
- 36412 8fa1 D079     		.sleb128 -816
- 36413 8fa3 32       		.uleb128 0x32
- 36414 8fa4 DD0D0000 		.long	0xddd
- 36415 8fa8 03       		.byte	0x3
- 36416 8fa9 91       		.byte	0x91
- 36417 8faa E079     		.sleb128 -800
- 36418 8fac 00       		.byte	0x0
- 36419 8fad 00       		.byte	0x0
- 36420 8fae 00       		.byte	0x0
- 36421 8faf 00       		.byte	0x0
- 36422 8fb0 00       		.byte	0x0
- 36423 8fb1 00       		.byte	0x0
- 36424 8fb2 35       		.uleb128 0x35
- 36425 8fb3 D50B0000 		.long	0xbd5
- 36426 8fb7 00000000 		.quad	.LBB2490
- 36426      00000000 
- 36427 8fbf 00000000 		.quad	.LBE2490
- 36427      00000000 
- 36428 8fc7 02       		.byte	0x2
- 36429 8fc8 5B07     		.value	0x75b
- 36430 8fca 32       		.uleb128 0x32
- 36431 8fcb F30B0000 		.long	0xbf3
- 36432 8fcf 03       		.byte	0x3
- 36433 8fd0 91       		.byte	0x91
- 36434 8fd1 FC79     		.sleb128 -772
- 36435 8fd3 32       		.uleb128 0x32
- 36436 8fd4 E70B0000 		.long	0xbe7
- 36437 8fd8 03       		.byte	0x3
- 36438 8fd9 91       		.byte	0x91
- 36439 8fda 807A     		.sleb128 -768
- 36440 8fdc 33       		.uleb128 0x33
- 36441 8fdd 00000000 		.quad	.LBB2491
- 36441      00000000 
- 36442 8fe5 00000000 		.quad	.LBE2491
- 36442      00000000 
- 36443 8fed 34       		.uleb128 0x34
- 36444 8fee FF0B0000 		.long	0xbff
- 36445 8ff2 04       		.byte	0x4
- 36446 8ff3 76       		.byte	0x76
- 36447 8ff4 90BD7F   		.sleb128 -8560
- 36448 8ff7 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 943
-
-
- 36449 8ff8 0B0C0000 		.long	0xc0b
- 36450 8ffc 04       		.byte	0x4
- 36451 8ffd 76       		.byte	0x76
- 36452 8ffe 80BD7F   		.sleb128 -8576
- 36453 9001 31       		.uleb128 0x31
- 36454 9002 540C0000 		.long	0xc54
- 36455 9006 00000000 		.quad	.LBB2492
- 36455      00000000 
- 36456 900e 00000000 		.quad	.LBE2492
- 36456      00000000 
- 36457 9016 02       		.byte	0x2
- 36458 9017 9106     		.value	0x691
- 36459 9019 6D900000 		.long	0x906d
- 36460 901d 32       		.uleb128 0x32
- 36461 901e 7E0C0000 		.long	0xc7e
- 36462 9022 03       		.byte	0x3
- 36463 9023 91       		.byte	0x91
- 36464 9024 987A     		.sleb128 -744
- 36465 9026 32       		.uleb128 0x32
- 36466 9027 720C0000 		.long	0xc72
- 36467 902b 03       		.byte	0x3
- 36468 902c 91       		.byte	0x91
- 36469 902d 9C7A     		.sleb128 -740
- 36470 902f 32       		.uleb128 0x32
- 36471 9030 660C0000 		.long	0xc66
- 36472 9034 03       		.byte	0x3
- 36473 9035 91       		.byte	0x91
- 36474 9036 A07A     		.sleb128 -736
- 36475 9038 35       		.uleb128 0x35
- 36476 9039 8B0C0000 		.long	0xc8b
- 36477 903d 00000000 		.quad	.LBB2494
- 36477      00000000 
- 36478 9045 00000000 		.quad	.LBE2494
- 36478      00000000 
- 36479 904d 02       		.byte	0x2
- 36480 904e 0702     		.value	0x207
- 36481 9050 32       		.uleb128 0x32
- 36482 9051 B40C0000 		.long	0xcb4
- 36483 9055 03       		.byte	0x3
- 36484 9056 91       		.byte	0x91
- 36485 9057 B87A     		.sleb128 -712
- 36486 9059 32       		.uleb128 0x32
- 36487 905a A90C0000 		.long	0xca9
- 36488 905e 03       		.byte	0x3
- 36489 905f 91       		.byte	0x91
- 36490 9060 BC7A     		.sleb128 -708
- 36491 9062 32       		.uleb128 0x32
- 36492 9063 9D0C0000 		.long	0xc9d
- 36493 9067 03       		.byte	0x3
- 36494 9068 91       		.byte	0x91
- 36495 9069 C07A     		.sleb128 -704
- 36496 906b 00       		.byte	0x0
- 36497 906c 00       		.byte	0x0
- 36498 906d 31       		.uleb128 0x31
- 36499 906e C10C0000 		.long	0xcc1
- 36500 9072 00000000 		.quad	.LBB2496
- 36500      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 944
-
-
- 36501 907a 00000000 		.quad	.LBE2496
- 36501      00000000 
- 36502 9082 02       		.byte	0x2
- 36503 9083 9206     		.value	0x692
- 36504 9085 F6920000 		.long	0x92f6
- 36505 9089 32       		.uleb128 0x32
- 36506 908a D30C0000 		.long	0xcd3
- 36507 908e 03       		.byte	0x3
- 36508 908f 91       		.byte	0x91
- 36509 9090 D07A     		.sleb128 -688
- 36510 9092 35       		.uleb128 0x35
- 36511 9093 E00C0000 		.long	0xce0
- 36512 9097 00000000 		.quad	.LBB2498
- 36512      00000000 
- 36513 909f 00000000 		.quad	.LBE2498
- 36513      00000000 
- 36514 90a7 02       		.byte	0x2
- 36515 90a8 7D03     		.value	0x37d
- 36516 90aa 32       		.uleb128 0x32
- 36517 90ab FE0C0000 		.long	0xcfe
- 36518 90af 03       		.byte	0x3
- 36519 90b0 91       		.byte	0x91
- 36520 90b1 E87A     		.sleb128 -664
- 36521 90b3 32       		.uleb128 0x32
- 36522 90b4 F20C0000 		.long	0xcf2
- 36523 90b8 03       		.byte	0x3
- 36524 90b9 91       		.byte	0x91
- 36525 90ba F07A     		.sleb128 -656
- 36526 90bc 33       		.uleb128 0x33
- 36527 90bd 00000000 		.quad	.LBB2499
- 36527      00000000 
- 36528 90c5 00000000 		.quad	.LBE2499
- 36528      00000000 
- 36529 90cd 34       		.uleb128 0x34
- 36530 90ce 0A0D0000 		.long	0xd0a
- 36531 90d2 03       		.byte	0x3
- 36532 90d3 91       		.byte	0x91
- 36533 90d4 C07B     		.sleb128 -576
- 36534 90d6 34       		.uleb128 0x34
- 36535 90d7 150D0000 		.long	0xd15
- 36536 90db 03       		.byte	0x3
- 36537 90dc 91       		.byte	0x91
- 36538 90dd B07B     		.sleb128 -592
- 36539 90df 34       		.uleb128 0x34
- 36540 90e0 200D0000 		.long	0xd20
- 36541 90e4 03       		.byte	0x3
- 36542 90e5 91       		.byte	0x91
- 36543 90e6 A07B     		.sleb128 -608
- 36544 90e8 34       		.uleb128 0x34
- 36545 90e9 2C0D0000 		.long	0xd2c
- 36546 90ed 03       		.byte	0x3
- 36547 90ee 91       		.byte	0x91
- 36548 90ef 907B     		.sleb128 -624
- 36549 90f1 34       		.uleb128 0x34
- 36550 90f2 380D0000 		.long	0xd38
- 36551 90f6 03       		.byte	0x3
- 36552 90f7 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 945
-
-
- 36553 90f8 8C7B     		.sleb128 -628
- 36554 90fa 31       		.uleb128 0x31
- 36555 90fb 4F0D0000 		.long	0xd4f
- 36556 90ff 00000000 		.quad	.LBB2500
- 36556      00000000 
- 36557 9107 00000000 		.quad	.LBE2500
- 36557      00000000 
- 36558 910f 02       		.byte	0x2
- 36559 9110 5603     		.value	0x356
- 36560 9112 29910000 		.long	0x9129
- 36561 9116 32       		.uleb128 0x32
- 36562 9117 6A0D0000 		.long	0xd6a
- 36563 911b 03       		.byte	0x3
- 36564 911c 91       		.byte	0x91
- 36565 911d D07B     		.sleb128 -560
- 36566 911f 32       		.uleb128 0x32
- 36567 9120 600D0000 		.long	0xd60
- 36568 9124 03       		.byte	0x3
- 36569 9125 91       		.byte	0x91
- 36570 9126 E07B     		.sleb128 -544
- 36571 9128 00       		.byte	0x0
- 36572 9129 31       		.uleb128 0x31
- 36573 912a 750D0000 		.long	0xd75
- 36574 912e 00000000 		.quad	.LBB2502
- 36574      00000000 
- 36575 9136 00000000 		.quad	.LBE2502
- 36575      00000000 
- 36576 913e 02       		.byte	0x2
- 36577 913f 5903     		.value	0x359
- 36578 9141 58910000 		.long	0x9158
- 36579 9145 32       		.uleb128 0x32
- 36580 9146 930D0000 		.long	0xd93
- 36581 914a 03       		.byte	0x3
- 36582 914b 91       		.byte	0x91
- 36583 914c FC7B     		.sleb128 -516
- 36584 914e 32       		.uleb128 0x32
- 36585 914f 870D0000 		.long	0xd87
- 36586 9153 03       		.byte	0x3
- 36587 9154 91       		.byte	0x91
- 36588 9155 807C     		.sleb128 -512
- 36589 9157 00       		.byte	0x0
- 36590 9158 31       		.uleb128 0x31
- 36591 9159 4F0D0000 		.long	0xd4f
- 36592 915d 00000000 		.quad	.LBB2504
- 36592      00000000 
- 36593 9165 00000000 		.quad	.LBE2504
- 36593      00000000 
- 36594 916d 02       		.byte	0x2
- 36595 916e 5B03     		.value	0x35b
- 36596 9170 87910000 		.long	0x9187
- 36597 9174 32       		.uleb128 0x32
- 36598 9175 6A0D0000 		.long	0xd6a
- 36599 9179 03       		.byte	0x3
- 36600 917a 91       		.byte	0x91
- 36601 917b 907C     		.sleb128 -496
- 36602 917d 32       		.uleb128 0x32
- 36603 917e 600D0000 		.long	0xd60
-
GAS LISTING /tmp/ccjbMjHD.s 			page 946
-
-
- 36604 9182 03       		.byte	0x3
- 36605 9183 91       		.byte	0x91
- 36606 9184 A07C     		.sleb128 -480
- 36607 9186 00       		.byte	0x0
- 36608 9187 31       		.uleb128 0x31
- 36609 9188 A00D0000 		.long	0xda0
- 36610 918c 00000000 		.quad	.LBB2506
- 36610      00000000 
- 36611 9194 00000000 		.quad	.LBE2506
- 36611      00000000 
- 36612 919c 02       		.byte	0x2
- 36613 919d 6403     		.value	0x364
- 36614 919f E1910000 		.long	0x91e1
- 36615 91a3 32       		.uleb128 0x32
- 36616 91a4 BE0D0000 		.long	0xdbe
- 36617 91a8 03       		.byte	0x3
- 36618 91a9 91       		.byte	0x91
- 36619 91aa B07C     		.sleb128 -464
- 36620 91ac 32       		.uleb128 0x32
- 36621 91ad B20D0000 		.long	0xdb2
- 36622 91b1 03       		.byte	0x3
- 36623 91b2 91       		.byte	0x91
- 36624 91b3 C07C     		.sleb128 -448
- 36625 91b5 35       		.uleb128 0x35
- 36626 91b6 CB0D0000 		.long	0xdcb
- 36627 91ba 00000000 		.quad	.LBB2508
- 36627      00000000 
- 36628 91c2 00000000 		.quad	.LBE2508
- 36628      00000000 
- 36629 91ca 02       		.byte	0x2
- 36630 91cb 7501     		.value	0x175
- 36631 91cd 32       		.uleb128 0x32
- 36632 91ce E90D0000 		.long	0xde9
- 36633 91d2 03       		.byte	0x3
- 36634 91d3 91       		.byte	0x91
- 36635 91d4 D07C     		.sleb128 -432
- 36636 91d6 32       		.uleb128 0x32
- 36637 91d7 DD0D0000 		.long	0xddd
- 36638 91db 03       		.byte	0x3
- 36639 91dc 91       		.byte	0x91
- 36640 91dd E07C     		.sleb128 -416
- 36641 91df 00       		.byte	0x0
- 36642 91e0 00       		.byte	0x0
- 36643 91e1 31       		.uleb128 0x31
- 36644 91e2 FB0D0000 		.long	0xdfb
- 36645 91e6 00000000 		.quad	.LBB2510
- 36645      00000000 
- 36646 91ee 00000000 		.quad	.LBE2510
- 36646      00000000 
- 36647 91f6 02       		.byte	0x2
- 36648 91f7 6603     		.value	0x366
- 36649 91f9 10920000 		.long	0x9210
- 36650 91fd 32       		.uleb128 0x32
- 36651 91fe 160E0000 		.long	0xe16
- 36652 9202 03       		.byte	0x3
- 36653 9203 91       		.byte	0x91
- 36654 9204 F07C     		.sleb128 -400
-
GAS LISTING /tmp/ccjbMjHD.s 			page 947
-
-
- 36655 9206 32       		.uleb128 0x32
- 36656 9207 0C0E0000 		.long	0xe0c
- 36657 920b 03       		.byte	0x3
- 36658 920c 91       		.byte	0x91
- 36659 920d 807D     		.sleb128 -384
- 36660 920f 00       		.byte	0x0
- 36661 9210 31       		.uleb128 0x31
- 36662 9211 A00D0000 		.long	0xda0
- 36663 9215 00000000 		.quad	.LBB2512
- 36663      00000000 
- 36664 921d 00000000 		.quad	.LBE2512
- 36664      00000000 
- 36665 9225 02       		.byte	0x2
- 36666 9226 6803     		.value	0x368
- 36667 9228 6A920000 		.long	0x926a
- 36668 922c 32       		.uleb128 0x32
- 36669 922d BE0D0000 		.long	0xdbe
- 36670 9231 03       		.byte	0x3
- 36671 9232 91       		.byte	0x91
- 36672 9233 907D     		.sleb128 -368
- 36673 9235 32       		.uleb128 0x32
- 36674 9236 B20D0000 		.long	0xdb2
- 36675 923a 03       		.byte	0x3
- 36676 923b 91       		.byte	0x91
- 36677 923c A07D     		.sleb128 -352
- 36678 923e 35       		.uleb128 0x35
- 36679 923f CB0D0000 		.long	0xdcb
- 36680 9243 00000000 		.quad	.LBB2514
- 36680      00000000 
- 36681 924b 00000000 		.quad	.LBE2514
- 36681      00000000 
- 36682 9253 02       		.byte	0x2
- 36683 9254 7501     		.value	0x175
- 36684 9256 32       		.uleb128 0x32
- 36685 9257 E90D0000 		.long	0xde9
- 36686 925b 03       		.byte	0x3
- 36687 925c 91       		.byte	0x91
- 36688 925d B07D     		.sleb128 -336
- 36689 925f 32       		.uleb128 0x32
- 36690 9260 DD0D0000 		.long	0xddd
- 36691 9264 03       		.byte	0x3
- 36692 9265 91       		.byte	0x91
- 36693 9266 C07D     		.sleb128 -320
- 36694 9268 00       		.byte	0x0
- 36695 9269 00       		.byte	0x0
- 36696 926a 31       		.uleb128 0x31
- 36697 926b FB0D0000 		.long	0xdfb
- 36698 926f 00000000 		.quad	.LBB2516
- 36698      00000000 
- 36699 9277 00000000 		.quad	.LBE2516
- 36699      00000000 
- 36700 927f 02       		.byte	0x2
- 36701 9280 6A03     		.value	0x36a
- 36702 9282 99920000 		.long	0x9299
- 36703 9286 32       		.uleb128 0x32
- 36704 9287 160E0000 		.long	0xe16
- 36705 928b 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 948
-
-
- 36706 928c 91       		.byte	0x91
- 36707 928d D07D     		.sleb128 -304
- 36708 928f 32       		.uleb128 0x32
- 36709 9290 0C0E0000 		.long	0xe0c
- 36710 9294 03       		.byte	0x3
- 36711 9295 91       		.byte	0x91
- 36712 9296 E07D     		.sleb128 -288
- 36713 9298 00       		.byte	0x0
- 36714 9299 31       		.uleb128 0x31
- 36715 929a 210E0000 		.long	0xe21
- 36716 929e 00000000 		.quad	.LBB2518
- 36716      00000000 
- 36717 92a6 00000000 		.quad	.LBE2518
- 36717      00000000 
- 36718 92ae 02       		.byte	0x2
- 36719 92af 6C03     		.value	0x36c
- 36720 92b1 C8920000 		.long	0x92c8
- 36721 92b5 32       		.uleb128 0x32
- 36722 92b6 3E0E0000 		.long	0xe3e
- 36723 92ba 03       		.byte	0x3
- 36724 92bb 91       		.byte	0x91
- 36725 92bc F07D     		.sleb128 -272
- 36726 92be 32       		.uleb128 0x32
- 36727 92bf 330E0000 		.long	0xe33
- 36728 92c3 03       		.byte	0x3
- 36729 92c4 91       		.byte	0x91
- 36730 92c5 807E     		.sleb128 -256
- 36731 92c7 00       		.byte	0x0
- 36732 92c8 35       		.uleb128 0x35
- 36733 92c9 4F0D0000 		.long	0xd4f
- 36734 92cd 00000000 		.quad	.LBB2520
- 36734      00000000 
- 36735 92d5 00000000 		.quad	.LBE2520
- 36735      00000000 
- 36736 92dd 02       		.byte	0x2
- 36737 92de 6E03     		.value	0x36e
- 36738 92e0 32       		.uleb128 0x32
- 36739 92e1 6A0D0000 		.long	0xd6a
- 36740 92e5 03       		.byte	0x3
- 36741 92e6 91       		.byte	0x91
- 36742 92e7 907E     		.sleb128 -240
- 36743 92e9 32       		.uleb128 0x32
- 36744 92ea 600D0000 		.long	0xd60
- 36745 92ee 03       		.byte	0x3
- 36746 92ef 91       		.byte	0x91
- 36747 92f0 A07E     		.sleb128 -224
- 36748 92f2 00       		.byte	0x0
- 36749 92f3 00       		.byte	0x0
- 36750 92f4 00       		.byte	0x0
- 36751 92f5 00       		.byte	0x0
- 36752 92f6 36       		.uleb128 0x36
- 36753 92f7 00000000 		.quad	.LBB2522
- 36753      00000000 
- 36754 92ff 00000000 		.quad	.LBE2522
- 36754      00000000 
- 36755 9307 15930000 		.long	0x9315
- 36756 930b 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 949
-
-
- 36757 930c 1C0C0000 		.long	0xc1c
- 36758 9310 03       		.byte	0x3
- 36759 9311 91       		.byte	0x91
- 36760 9312 9040     		.sleb128 -8176
- 36761 9314 00       		.byte	0x0
- 36762 9315 31       		.uleb128 0x31
- 36763 9316 4A0E0000 		.long	0xe4a
- 36764 931a 00000000 		.quad	.LBB2523
- 36764      00000000 
- 36765 9322 00000000 		.quad	.LBE2523
- 36765      00000000 
- 36766 932a 02       		.byte	0x2
- 36767 932b 9406     		.value	0x694
- 36768 932d B2930000 		.long	0x93b2
- 36769 9331 32       		.uleb128 0x32
- 36770 9332 5C0E0000 		.long	0xe5c
- 36771 9336 03       		.byte	0x3
- 36772 9337 91       		.byte	0x91
- 36773 9338 B07E     		.sleb128 -208
- 36774 933a 33       		.uleb128 0x33
- 36775 933b 00000000 		.quad	.LBB2524
- 36775      00000000 
- 36776 9343 00000000 		.quad	.LBE2524
- 36776      00000000 
- 36777 934b 34       		.uleb128 0x34
- 36778 934c 680E0000 		.long	0xe68
- 36779 9350 09       		.byte	0x9
- 36780 9351 03       		.byte	0x3
- 36781 9352 00000000 		.quad	ShiftRowTable.7385
- 36781      00000000 
- 36782 935a 35       		.uleb128 0x35
- 36783 935b A00D0000 		.long	0xda0
- 36784 935f 00000000 		.quad	.LBB2525
- 36784      00000000 
- 36785 9367 00000000 		.quad	.LBE2525
- 36785      00000000 
- 36786 936f 02       		.byte	0x2
- 36787 9370 9B02     		.value	0x29b
- 36788 9372 32       		.uleb128 0x32
- 36789 9373 BE0D0000 		.long	0xdbe
- 36790 9377 03       		.byte	0x3
- 36791 9378 91       		.byte	0x91
- 36792 9379 C07E     		.sleb128 -192
- 36793 937b 32       		.uleb128 0x32
- 36794 937c B20D0000 		.long	0xdb2
- 36795 9380 03       		.byte	0x3
- 36796 9381 91       		.byte	0x91
- 36797 9382 D07E     		.sleb128 -176
- 36798 9384 35       		.uleb128 0x35
- 36799 9385 CB0D0000 		.long	0xdcb
- 36800 9389 00000000 		.quad	.LBB2527
- 36800      00000000 
- 36801 9391 00000000 		.quad	.LBE2527
- 36801      00000000 
- 36802 9399 02       		.byte	0x2
- 36803 939a 7501     		.value	0x175
- 36804 939c 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 950
-
-
- 36805 939d E90D0000 		.long	0xde9
- 36806 93a1 03       		.byte	0x3
- 36807 93a2 91       		.byte	0x91
- 36808 93a3 E07E     		.sleb128 -160
- 36809 93a5 32       		.uleb128 0x32
- 36810 93a6 DD0D0000 		.long	0xddd
- 36811 93aa 03       		.byte	0x3
- 36812 93ab 91       		.byte	0x91
- 36813 93ac F07E     		.sleb128 -144
- 36814 93ae 00       		.byte	0x0
- 36815 93af 00       		.byte	0x0
- 36816 93b0 00       		.byte	0x0
- 36817 93b1 00       		.byte	0x0
- 36818 93b2 36       		.uleb128 0x36
- 36819 93b3 00000000 		.quad	.LBB2529
- 36819      00000000 
- 36820 93bb 00000000 		.quad	.LBE2529
- 36820      00000000 
- 36821 93c3 D1930000 		.long	0x93d1
- 36822 93c7 34       		.uleb128 0x34
- 36823 93c8 2C0C0000 		.long	0xc2c
- 36824 93cc 03       		.byte	0x3
- 36825 93cd 91       		.byte	0x91
- 36826 93ce 8040     		.sleb128 -8192
- 36827 93d0 00       		.byte	0x0
- 36828 93d1 31       		.uleb128 0x31
- 36829 93d2 860E0000 		.long	0xe86
- 36830 93d6 00000000 		.quad	.LBB2530
- 36830      00000000 
- 36831 93de 00000000 		.quad	.LBE2530
- 36831      00000000 
- 36832 93e6 02       		.byte	0x2
- 36833 93e7 9606     		.value	0x696
- 36834 93e9 00940000 		.long	0x9400
- 36835 93ed 32       		.uleb128 0x32
- 36836 93ee A10E0000 		.long	0xea1
- 36837 93f2 03       		.byte	0x3
- 36838 93f3 91       		.byte	0x91
- 36839 93f4 807F     		.sleb128 -128
- 36840 93f6 32       		.uleb128 0x32
- 36841 93f7 970E0000 		.long	0xe97
- 36842 93fb 03       		.byte	0x3
- 36843 93fc 91       		.byte	0x91
- 36844 93fd 907F     		.sleb128 -112
- 36845 93ff 00       		.byte	0x0
- 36846 9400 36       		.uleb128 0x36
- 36847 9401 00000000 		.quad	.LBB2532
- 36847      00000000 
- 36848 9409 00000000 		.quad	.LBE2532
- 36848      00000000 
- 36849 9411 20940000 		.long	0x9420
- 36850 9415 34       		.uleb128 0x34
- 36851 9416 3C0C0000 		.long	0xc3c
- 36852 941a 04       		.byte	0x4
- 36853 941b 91       		.byte	0x91
- 36854 941c F0BF7F   		.sleb128 -8208
- 36855 941f 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 951
-
-
- 36856 9420 31       		.uleb128 0x31
- 36857 9421 AC0E0000 		.long	0xeac
- 36858 9425 00000000 		.quad	.LBB2533
- 36858      00000000 
- 36859 942d 00000000 		.quad	.LBE2533
- 36859      00000000 
- 36860 9435 02       		.byte	0x2
- 36861 9436 9806     		.value	0x698
- 36862 9438 70940000 		.long	0x9470
- 36863 943c 32       		.uleb128 0x32
- 36864 943d BE0E0000 		.long	0xebe
- 36865 9441 03       		.byte	0x3
- 36866 9442 91       		.byte	0x91
- 36867 9443 A07F     		.sleb128 -96
- 36868 9445 35       		.uleb128 0x35
- 36869 9446 CB0E0000 		.long	0xecb
- 36870 944a 00000000 		.quad	.LBB2535
- 36870      00000000 
- 36871 9452 00000000 		.quad	.LBE2535
- 36871      00000000 
- 36872 945a 02       		.byte	0x2
- 36873 945b 4905     		.value	0x549
- 36874 945d 32       		.uleb128 0x32
- 36875 945e E90E0000 		.long	0xee9
- 36876 9462 03       		.byte	0x3
- 36877 9463 91       		.byte	0x91
- 36878 9464 BC7F     		.sleb128 -68
- 36879 9466 32       		.uleb128 0x32
- 36880 9467 DD0E0000 		.long	0xedd
- 36881 946b 02       		.byte	0x2
- 36882 946c 91       		.byte	0x91
- 36883 946d 40       		.sleb128 -64
- 36884 946e 00       		.byte	0x0
- 36885 946f 00       		.byte	0x0
- 36886 9470 33       		.uleb128 0x33
- 36887 9471 00000000 		.quad	.LBB2537
- 36887      00000000 
- 36888 9479 00000000 		.quad	.LBE2537
- 36888      00000000 
- 36889 9481 34       		.uleb128 0x34
- 36890 9482 480C0000 		.long	0xc48
- 36891 9486 04       		.byte	0x4
- 36892 9487 91       		.byte	0x91
- 36893 9488 E0BF7F   		.sleb128 -8224
- 36894 948b 00       		.byte	0x0
- 36895 948c 00       		.byte	0x0
- 36896 948d 00       		.byte	0x0
- 36897 948e 00       		.byte	0x0
- 36898 948f 25       		.uleb128 0x25
- 36899 9490 00000000 		.long	.LASF361
- 36900 9494 02       		.byte	0x2
- 36901 9495 6E06     		.value	0x66e
- 36902 9497 01       		.byte	0x1
- 36903 9498 B3010000 		.long	0x1b3
- 36904 949c 03       		.byte	0x3
- 36905 949d C4940000 		.long	0x94c4
- 36906 94a1 26       		.uleb128 0x26
-
GAS LISTING /tmp/ccjbMjHD.s 			page 952
-
-
- 36907 94a2 00000000 		.long	.LASF67
- 36908 94a6 02       		.byte	0x2
- 36909 94a7 6E06     		.value	0x66e
- 36910 94a9 B3010000 		.long	0x1b3
- 36911 94ad 28       		.uleb128 0x28
- 36912 94ae 7500     		.string	"u"
- 36913 94b0 02       		.byte	0x2
- 36914 94b1 7506     		.value	0x675
- 36915 94b3 29050000 		.long	0x529
- 36916 94b7 27       		.uleb128 0x27
- 36917 94b8 00000000 		.long	.LASF351
- 36918 94bc 02       		.byte	0x2
- 36919 94bd 7606     		.value	0x676
- 36920 94bf 09040000 		.long	0x409
- 36921 94c3 00       		.byte	0x0
- 36922 94c4 2D       		.uleb128 0x2d
- 36923 94c5 00000000 		.long	.LASF362
- 36924 94c9 02       		.byte	0x2
- 36925 94ca 6F07     		.value	0x76f
- 36926 94cc 01       		.byte	0x1
- 36927 94cd 00000000 		.quad	.LFB647
- 36927      00000000 
- 36928 94d5 00000000 		.quad	.LFE647
- 36928      00000000 
- 36929 94dd 00000000 		.long	.LLST3
- 36930 94e1 0AD90000 		.long	0xd90a
- 36931 94e5 2E       		.uleb128 0x2e
- 36932 94e6 00000000 		.long	.LASF65
- 36933 94ea 02       		.byte	0x2
- 36934 94eb 6F07     		.value	0x76f
- 36935 94ed 24560000 		.long	0x5624
- 36936 94f1 04       		.byte	0x4
- 36937 94f2 91       		.byte	0x91
- 36938 94f3 88B37F   		.sleb128 -9848
- 36939 94f6 2F       		.uleb128 0x2f
- 36940 94f7 6B657900 		.string	"key"
- 36941 94fb 02       		.byte	0x2
- 36942 94fc 6F07     		.value	0x76f
- 36943 94fe 2A560000 		.long	0x562a
- 36944 9502 04       		.byte	0x4
- 36945 9503 91       		.byte	0x91
- 36946 9504 80B37F   		.sleb128 -9856
- 36947 9507 37       		.uleb128 0x37
- 36948 9508 763000   		.string	"v0"
- 36949 950b 02       		.byte	0x2
- 36950 950c 7107     		.value	0x771
- 36951 950e B3010000 		.long	0x1b3
- 36952 9512 04       		.byte	0x4
- 36953 9513 91       		.byte	0x91
- 36954 9514 90B87F   		.sleb128 -9200
- 36955 9517 37       		.uleb128 0x37
- 36956 9518 763100   		.string	"v1"
- 36957 951b 02       		.byte	0x2
- 36958 951c 7107     		.value	0x771
- 36959 951e B3010000 		.long	0x1b3
- 36960 9522 04       		.byte	0x4
- 36961 9523 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 953
-
-
- 36962 9524 A0B87F   		.sleb128 -9184
- 36963 9527 37       		.uleb128 0x37
- 36964 9528 6B00     		.string	"k"
- 36965 952a 02       		.byte	0x2
- 36966 952b 7207     		.value	0x772
- 36967 952d B3010000 		.long	0x1b3
- 36968 9531 04       		.byte	0x4
- 36969 9532 91       		.byte	0x91
- 36970 9533 B0B87F   		.sleb128 -9168
- 36971 9536 31       		.uleb128 0x31
- 36972 9537 AD0B0000 		.long	0xbad
- 36973 953b 00000000 		.quad	.LBB3188
- 36973      00000000 
- 36974 9543 00000000 		.quad	.LBE3188
- 36974      00000000 
- 36975 954b 02       		.byte	0x2
- 36976 954c 7407     		.value	0x774
- 36977 954e 79950000 		.long	0x9579
- 36978 9552 32       		.uleb128 0x32
- 36979 9553 BE0B0000 		.long	0xbbe
- 36980 9557 04       		.byte	0x4
- 36981 9558 91       		.byte	0x91
- 36982 9559 C8B87F   		.sleb128 -9144
- 36983 955c 33       		.uleb128 0x33
- 36984 955d 00000000 		.quad	.LBB3189
- 36984      00000000 
- 36985 9565 00000000 		.quad	.LBE3189
- 36985      00000000 
- 36986 956d 34       		.uleb128 0x34
- 36987 956e C90B0000 		.long	0xbc9
- 36988 9572 04       		.byte	0x4
- 36989 9573 76       		.byte	0x76
- 36990 9574 C0AF7F   		.sleb128 -10304
- 36991 9577 00       		.byte	0x0
- 36992 9578 00       		.byte	0x0
- 36993 9579 31       		.uleb128 0x31
- 36994 957a AD0B0000 		.long	0xbad
- 36995 957e 00000000 		.quad	.LBB3190
- 36995      00000000 
- 36996 9586 00000000 		.quad	.LBE3190
- 36996      00000000 
- 36997 958e 02       		.byte	0x2
- 36998 958f 7507     		.value	0x775
- 36999 9591 BC950000 		.long	0x95bc
- 37000 9595 32       		.uleb128 0x32
- 37001 9596 BE0B0000 		.long	0xbbe
- 37002 959a 04       		.byte	0x4
- 37003 959b 91       		.byte	0x91
- 37004 959c D0B87F   		.sleb128 -9136
- 37005 959f 33       		.uleb128 0x33
- 37006 95a0 00000000 		.quad	.LBB3191
- 37006      00000000 
- 37007 95a8 00000000 		.quad	.LBE3191
- 37007      00000000 
- 37008 95b0 34       		.uleb128 0x34
- 37009 95b1 C90B0000 		.long	0xbc9
- 37010 95b5 04       		.byte	0x4
-
GAS LISTING /tmp/ccjbMjHD.s 			page 954
-
-
- 37011 95b6 76       		.byte	0x76
- 37012 95b7 D0AF7F   		.sleb128 -10288
- 37013 95ba 00       		.byte	0x0
- 37014 95bb 00       		.byte	0x0
- 37015 95bc 31       		.uleb128 0x31
- 37016 95bd D50B0000 		.long	0xbd5
- 37017 95c1 00000000 		.quad	.LBB3192
- 37017      00000000 
- 37018 95c9 00000000 		.quad	.LBE3192
- 37018      00000000 
- 37019 95d1 02       		.byte	0x2
- 37020 95d2 8607     		.value	0x786
- 37021 95d4 CF9A0000 		.long	0x9acf
- 37022 95d8 32       		.uleb128 0x32
- 37023 95d9 F30B0000 		.long	0xbf3
- 37024 95dd 04       		.byte	0x4
- 37025 95de 91       		.byte	0x91
- 37026 95df DCB87F   		.sleb128 -9124
- 37027 95e2 32       		.uleb128 0x32
- 37028 95e3 E70B0000 		.long	0xbe7
- 37029 95e7 04       		.byte	0x4
- 37030 95e8 91       		.byte	0x91
- 37031 95e9 E0B87F   		.sleb128 -9120
- 37032 95ec 33       		.uleb128 0x33
- 37033 95ed 00000000 		.quad	.LBB3193
- 37033      00000000 
- 37034 95f5 00000000 		.quad	.LBE3193
- 37034      00000000 
- 37035 95fd 34       		.uleb128 0x34
- 37036 95fe FF0B0000 		.long	0xbff
- 37037 9602 04       		.byte	0x4
- 37038 9603 76       		.byte	0x76
- 37039 9604 F0AF7F   		.sleb128 -10256
- 37040 9607 34       		.uleb128 0x34
- 37041 9608 0B0C0000 		.long	0xc0b
- 37042 960c 04       		.byte	0x4
- 37043 960d 76       		.byte	0x76
- 37044 960e E0AF7F   		.sleb128 -10272
- 37045 9611 31       		.uleb128 0x31
- 37046 9612 540C0000 		.long	0xc54
- 37047 9616 00000000 		.quad	.LBB3194
- 37047      00000000 
- 37048 961e 00000000 		.quad	.LBE3194
- 37048      00000000 
- 37049 9626 02       		.byte	0x2
- 37050 9627 9106     		.value	0x691
- 37051 9629 83960000 		.long	0x9683
- 37052 962d 32       		.uleb128 0x32
- 37053 962e 7E0C0000 		.long	0xc7e
- 37054 9632 04       		.byte	0x4
- 37055 9633 91       		.byte	0x91
- 37056 9634 F8B87F   		.sleb128 -9096
- 37057 9637 32       		.uleb128 0x32
- 37058 9638 720C0000 		.long	0xc72
- 37059 963c 04       		.byte	0x4
- 37060 963d 91       		.byte	0x91
- 37061 963e FCB87F   		.sleb128 -9092
-
GAS LISTING /tmp/ccjbMjHD.s 			page 955
-
-
- 37062 9641 32       		.uleb128 0x32
- 37063 9642 660C0000 		.long	0xc66
- 37064 9646 04       		.byte	0x4
- 37065 9647 91       		.byte	0x91
- 37066 9648 80B97F   		.sleb128 -9088
- 37067 964b 35       		.uleb128 0x35
- 37068 964c 8B0C0000 		.long	0xc8b
- 37069 9650 00000000 		.quad	.LBB3196
- 37069      00000000 
- 37070 9658 00000000 		.quad	.LBE3196
- 37070      00000000 
- 37071 9660 02       		.byte	0x2
- 37072 9661 0702     		.value	0x207
- 37073 9663 32       		.uleb128 0x32
- 37074 9664 B40C0000 		.long	0xcb4
- 37075 9668 04       		.byte	0x4
- 37076 9669 91       		.byte	0x91
- 37077 966a 98B97F   		.sleb128 -9064
- 37078 966d 32       		.uleb128 0x32
- 37079 966e A90C0000 		.long	0xca9
- 37080 9672 04       		.byte	0x4
- 37081 9673 91       		.byte	0x91
- 37082 9674 9CB97F   		.sleb128 -9060
- 37083 9677 32       		.uleb128 0x32
- 37084 9678 9D0C0000 		.long	0xc9d
- 37085 967c 04       		.byte	0x4
- 37086 967d 91       		.byte	0x91
- 37087 967e A0B97F   		.sleb128 -9056
- 37088 9681 00       		.byte	0x0
- 37089 9682 00       		.byte	0x0
- 37090 9683 31       		.uleb128 0x31
- 37091 9684 C10C0000 		.long	0xcc1
- 37092 9688 00000000 		.quad	.LBB3198
- 37092      00000000 
- 37093 9690 00000000 		.quad	.LBE3198
- 37093      00000000 
- 37094 9698 02       		.byte	0x2
- 37095 9699 9206     		.value	0x692
- 37096 969b 2A990000 		.long	0x992a
- 37097 969f 32       		.uleb128 0x32
- 37098 96a0 D30C0000 		.long	0xcd3
- 37099 96a4 04       		.byte	0x4
- 37100 96a5 91       		.byte	0x91
- 37101 96a6 B0B97F   		.sleb128 -9040
- 37102 96a9 35       		.uleb128 0x35
- 37103 96aa E00C0000 		.long	0xce0
- 37104 96ae 00000000 		.quad	.LBB3200
- 37104      00000000 
- 37105 96b6 00000000 		.quad	.LBE3200
- 37105      00000000 
- 37106 96be 02       		.byte	0x2
- 37107 96bf 7D03     		.value	0x37d
- 37108 96c1 32       		.uleb128 0x32
- 37109 96c2 FE0C0000 		.long	0xcfe
- 37110 96c6 04       		.byte	0x4
- 37111 96c7 91       		.byte	0x91
- 37112 96c8 C8B97F   		.sleb128 -9016
-
GAS LISTING /tmp/ccjbMjHD.s 			page 956
-
-
- 37113 96cb 32       		.uleb128 0x32
- 37114 96cc F20C0000 		.long	0xcf2
- 37115 96d0 04       		.byte	0x4
- 37116 96d1 91       		.byte	0x91
- 37117 96d2 D0B97F   		.sleb128 -9008
- 37118 96d5 33       		.uleb128 0x33
- 37119 96d6 00000000 		.quad	.LBB3201
- 37119      00000000 
- 37120 96de 00000000 		.quad	.LBE3201
- 37120      00000000 
- 37121 96e6 34       		.uleb128 0x34
- 37122 96e7 0A0D0000 		.long	0xd0a
- 37123 96eb 04       		.byte	0x4
- 37124 96ec 91       		.byte	0x91
- 37125 96ed A0BA7F   		.sleb128 -8928
- 37126 96f0 34       		.uleb128 0x34
- 37127 96f1 150D0000 		.long	0xd15
- 37128 96f5 04       		.byte	0x4
- 37129 96f6 91       		.byte	0x91
- 37130 96f7 90BA7F   		.sleb128 -8944
- 37131 96fa 34       		.uleb128 0x34
- 37132 96fb 200D0000 		.long	0xd20
- 37133 96ff 04       		.byte	0x4
- 37134 9700 91       		.byte	0x91
- 37135 9701 80BA7F   		.sleb128 -8960
- 37136 9704 34       		.uleb128 0x34
- 37137 9705 2C0D0000 		.long	0xd2c
- 37138 9709 04       		.byte	0x4
- 37139 970a 91       		.byte	0x91
- 37140 970b F0B97F   		.sleb128 -8976
- 37141 970e 34       		.uleb128 0x34
- 37142 970f 380D0000 		.long	0xd38
- 37143 9713 04       		.byte	0x4
- 37144 9714 91       		.byte	0x91
- 37145 9715 ECB97F   		.sleb128 -8980
- 37146 9718 31       		.uleb128 0x31
- 37147 9719 4F0D0000 		.long	0xd4f
- 37148 971d 00000000 		.quad	.LBB3202
- 37148      00000000 
- 37149 9725 00000000 		.quad	.LBE3202
- 37149      00000000 
- 37150 972d 02       		.byte	0x2
- 37151 972e 5603     		.value	0x356
- 37152 9730 49970000 		.long	0x9749
- 37153 9734 32       		.uleb128 0x32
- 37154 9735 6A0D0000 		.long	0xd6a
- 37155 9739 04       		.byte	0x4
- 37156 973a 91       		.byte	0x91
- 37157 973b B0BA7F   		.sleb128 -8912
- 37158 973e 32       		.uleb128 0x32
- 37159 973f 600D0000 		.long	0xd60
- 37160 9743 04       		.byte	0x4
- 37161 9744 91       		.byte	0x91
- 37162 9745 C0BA7F   		.sleb128 -8896
- 37163 9748 00       		.byte	0x0
- 37164 9749 31       		.uleb128 0x31
- 37165 974a 750D0000 		.long	0xd75
-
GAS LISTING /tmp/ccjbMjHD.s 			page 957
-
-
- 37166 974e 00000000 		.quad	.LBB3204
- 37166      00000000 
- 37167 9756 00000000 		.quad	.LBE3204
- 37167      00000000 
- 37168 975e 02       		.byte	0x2
- 37169 975f 5903     		.value	0x359
- 37170 9761 7A970000 		.long	0x977a
- 37171 9765 32       		.uleb128 0x32
- 37172 9766 930D0000 		.long	0xd93
- 37173 976a 04       		.byte	0x4
- 37174 976b 91       		.byte	0x91
- 37175 976c DCBA7F   		.sleb128 -8868
- 37176 976f 32       		.uleb128 0x32
- 37177 9770 870D0000 		.long	0xd87
- 37178 9774 04       		.byte	0x4
- 37179 9775 91       		.byte	0x91
- 37180 9776 E0BA7F   		.sleb128 -8864
- 37181 9779 00       		.byte	0x0
- 37182 977a 31       		.uleb128 0x31
- 37183 977b 4F0D0000 		.long	0xd4f
- 37184 977f 00000000 		.quad	.LBB3206
- 37184      00000000 
- 37185 9787 00000000 		.quad	.LBE3206
- 37185      00000000 
- 37186 978f 02       		.byte	0x2
- 37187 9790 5B03     		.value	0x35b
- 37188 9792 AB970000 		.long	0x97ab
- 37189 9796 32       		.uleb128 0x32
- 37190 9797 6A0D0000 		.long	0xd6a
- 37191 979b 04       		.byte	0x4
- 37192 979c 91       		.byte	0x91
- 37193 979d F0BA7F   		.sleb128 -8848
- 37194 97a0 32       		.uleb128 0x32
- 37195 97a1 600D0000 		.long	0xd60
- 37196 97a5 04       		.byte	0x4
- 37197 97a6 91       		.byte	0x91
- 37198 97a7 80BB7F   		.sleb128 -8832
- 37199 97aa 00       		.byte	0x0
- 37200 97ab 31       		.uleb128 0x31
- 37201 97ac A00D0000 		.long	0xda0
- 37202 97b0 00000000 		.quad	.LBB3208
- 37202      00000000 
- 37203 97b8 00000000 		.quad	.LBE3208
- 37203      00000000 
- 37204 97c0 02       		.byte	0x2
- 37205 97c1 6403     		.value	0x364
- 37206 97c3 09980000 		.long	0x9809
- 37207 97c7 32       		.uleb128 0x32
- 37208 97c8 BE0D0000 		.long	0xdbe
- 37209 97cc 04       		.byte	0x4
- 37210 97cd 91       		.byte	0x91
- 37211 97ce 90BB7F   		.sleb128 -8816
- 37212 97d1 32       		.uleb128 0x32
- 37213 97d2 B20D0000 		.long	0xdb2
- 37214 97d6 04       		.byte	0x4
- 37215 97d7 91       		.byte	0x91
- 37216 97d8 A0BB7F   		.sleb128 -8800
-
GAS LISTING /tmp/ccjbMjHD.s 			page 958
-
-
- 37217 97db 35       		.uleb128 0x35
- 37218 97dc CB0D0000 		.long	0xdcb
- 37219 97e0 00000000 		.quad	.LBB3210
- 37219      00000000 
- 37220 97e8 00000000 		.quad	.LBE3210
- 37220      00000000 
- 37221 97f0 02       		.byte	0x2
- 37222 97f1 7501     		.value	0x175
- 37223 97f3 32       		.uleb128 0x32
- 37224 97f4 E90D0000 		.long	0xde9
- 37225 97f8 04       		.byte	0x4
- 37226 97f9 91       		.byte	0x91
- 37227 97fa B0BB7F   		.sleb128 -8784
- 37228 97fd 32       		.uleb128 0x32
- 37229 97fe DD0D0000 		.long	0xddd
- 37230 9802 04       		.byte	0x4
- 37231 9803 91       		.byte	0x91
- 37232 9804 C0BB7F   		.sleb128 -8768
- 37233 9807 00       		.byte	0x0
- 37234 9808 00       		.byte	0x0
- 37235 9809 31       		.uleb128 0x31
- 37236 980a FB0D0000 		.long	0xdfb
- 37237 980e 00000000 		.quad	.LBB3212
- 37237      00000000 
- 37238 9816 00000000 		.quad	.LBE3212
- 37238      00000000 
- 37239 981e 02       		.byte	0x2
- 37240 981f 6603     		.value	0x366
- 37241 9821 3A980000 		.long	0x983a
- 37242 9825 32       		.uleb128 0x32
- 37243 9826 160E0000 		.long	0xe16
- 37244 982a 04       		.byte	0x4
- 37245 982b 91       		.byte	0x91
- 37246 982c D0BB7F   		.sleb128 -8752
- 37247 982f 32       		.uleb128 0x32
- 37248 9830 0C0E0000 		.long	0xe0c
- 37249 9834 04       		.byte	0x4
- 37250 9835 91       		.byte	0x91
- 37251 9836 E0BB7F   		.sleb128 -8736
- 37252 9839 00       		.byte	0x0
- 37253 983a 31       		.uleb128 0x31
- 37254 983b A00D0000 		.long	0xda0
- 37255 983f 00000000 		.quad	.LBB3214
- 37255      00000000 
- 37256 9847 00000000 		.quad	.LBE3214
- 37256      00000000 
- 37257 984f 02       		.byte	0x2
- 37258 9850 6803     		.value	0x368
- 37259 9852 98980000 		.long	0x9898
- 37260 9856 32       		.uleb128 0x32
- 37261 9857 BE0D0000 		.long	0xdbe
- 37262 985b 04       		.byte	0x4
- 37263 985c 91       		.byte	0x91
- 37264 985d F0BB7F   		.sleb128 -8720
- 37265 9860 32       		.uleb128 0x32
- 37266 9861 B20D0000 		.long	0xdb2
- 37267 9865 04       		.byte	0x4
-
GAS LISTING /tmp/ccjbMjHD.s 			page 959
-
-
- 37268 9866 91       		.byte	0x91
- 37269 9867 80BC7F   		.sleb128 -8704
- 37270 986a 35       		.uleb128 0x35
- 37271 986b CB0D0000 		.long	0xdcb
- 37272 986f 00000000 		.quad	.LBB3216
- 37272      00000000 
- 37273 9877 00000000 		.quad	.LBE3216
- 37273      00000000 
- 37274 987f 02       		.byte	0x2
- 37275 9880 7501     		.value	0x175
- 37276 9882 32       		.uleb128 0x32
- 37277 9883 E90D0000 		.long	0xde9
- 37278 9887 04       		.byte	0x4
- 37279 9888 91       		.byte	0x91
- 37280 9889 90BC7F   		.sleb128 -8688
- 37281 988c 32       		.uleb128 0x32
- 37282 988d DD0D0000 		.long	0xddd
- 37283 9891 04       		.byte	0x4
- 37284 9892 91       		.byte	0x91
- 37285 9893 A0BC7F   		.sleb128 -8672
- 37286 9896 00       		.byte	0x0
- 37287 9897 00       		.byte	0x0
- 37288 9898 31       		.uleb128 0x31
- 37289 9899 FB0D0000 		.long	0xdfb
- 37290 989d 00000000 		.quad	.LBB3218
- 37290      00000000 
- 37291 98a5 00000000 		.quad	.LBE3218
- 37291      00000000 
- 37292 98ad 02       		.byte	0x2
- 37293 98ae 6A03     		.value	0x36a
- 37294 98b0 C9980000 		.long	0x98c9
- 37295 98b4 32       		.uleb128 0x32
- 37296 98b5 160E0000 		.long	0xe16
- 37297 98b9 04       		.byte	0x4
- 37298 98ba 91       		.byte	0x91
- 37299 98bb B0BC7F   		.sleb128 -8656
- 37300 98be 32       		.uleb128 0x32
- 37301 98bf 0C0E0000 		.long	0xe0c
- 37302 98c3 04       		.byte	0x4
- 37303 98c4 91       		.byte	0x91
- 37304 98c5 C0BC7F   		.sleb128 -8640
- 37305 98c8 00       		.byte	0x0
- 37306 98c9 31       		.uleb128 0x31
- 37307 98ca 210E0000 		.long	0xe21
- 37308 98ce 00000000 		.quad	.LBB3220
- 37308      00000000 
- 37309 98d6 00000000 		.quad	.LBE3220
- 37309      00000000 
- 37310 98de 02       		.byte	0x2
- 37311 98df 6C03     		.value	0x36c
- 37312 98e1 FA980000 		.long	0x98fa
- 37313 98e5 32       		.uleb128 0x32
- 37314 98e6 3E0E0000 		.long	0xe3e
- 37315 98ea 04       		.byte	0x4
- 37316 98eb 91       		.byte	0x91
- 37317 98ec D0BC7F   		.sleb128 -8624
- 37318 98ef 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 960
-
-
- 37319 98f0 330E0000 		.long	0xe33
- 37320 98f4 04       		.byte	0x4
- 37321 98f5 91       		.byte	0x91
- 37322 98f6 E0BC7F   		.sleb128 -8608
- 37323 98f9 00       		.byte	0x0
- 37324 98fa 35       		.uleb128 0x35
- 37325 98fb 4F0D0000 		.long	0xd4f
- 37326 98ff 00000000 		.quad	.LBB3222
- 37326      00000000 
- 37327 9907 00000000 		.quad	.LBE3222
- 37327      00000000 
- 37328 990f 02       		.byte	0x2
- 37329 9910 6E03     		.value	0x36e
- 37330 9912 32       		.uleb128 0x32
- 37331 9913 6A0D0000 		.long	0xd6a
- 37332 9917 04       		.byte	0x4
- 37333 9918 91       		.byte	0x91
- 37334 9919 F0BC7F   		.sleb128 -8592
- 37335 991c 32       		.uleb128 0x32
- 37336 991d 600D0000 		.long	0xd60
- 37337 9921 04       		.byte	0x4
- 37338 9922 91       		.byte	0x91
- 37339 9923 80BD7F   		.sleb128 -8576
- 37340 9926 00       		.byte	0x0
- 37341 9927 00       		.byte	0x0
- 37342 9928 00       		.byte	0x0
- 37343 9929 00       		.byte	0x0
- 37344 992a 36       		.uleb128 0x36
- 37345 992b 00000000 		.quad	.LBB3224
- 37345      00000000 
- 37346 9933 00000000 		.quad	.LBE3224
- 37346      00000000 
- 37347 993b 4A990000 		.long	0x994a
- 37348 993f 34       		.uleb128 0x34
- 37349 9940 1C0C0000 		.long	0xc1c
- 37350 9944 04       		.byte	0x4
- 37351 9945 91       		.byte	0x91
- 37352 9946 C0B37F   		.sleb128 -9792
- 37353 9949 00       		.byte	0x0
- 37354 994a 31       		.uleb128 0x31
- 37355 994b 4A0E0000 		.long	0xe4a
- 37356 994f 00000000 		.quad	.LBB3225
- 37356      00000000 
- 37357 9957 00000000 		.quad	.LBE3225
- 37357      00000000 
- 37358 995f 02       		.byte	0x2
- 37359 9960 9406     		.value	0x694
- 37360 9962 EC990000 		.long	0x99ec
- 37361 9966 32       		.uleb128 0x32
- 37362 9967 5C0E0000 		.long	0xe5c
- 37363 996b 04       		.byte	0x4
- 37364 996c 91       		.byte	0x91
- 37365 996d 90BD7F   		.sleb128 -8560
- 37366 9970 33       		.uleb128 0x33
- 37367 9971 00000000 		.quad	.LBB3226
- 37367      00000000 
- 37368 9979 00000000 		.quad	.LBE3226
-
GAS LISTING /tmp/ccjbMjHD.s 			page 961
-
-
- 37368      00000000 
- 37369 9981 34       		.uleb128 0x34
- 37370 9982 680E0000 		.long	0xe68
- 37371 9986 09       		.byte	0x9
- 37372 9987 03       		.byte	0x3
- 37373 9988 00000000 		.quad	ShiftRowTable.7385
- 37373      00000000 
- 37374 9990 35       		.uleb128 0x35
- 37375 9991 A00D0000 		.long	0xda0
- 37376 9995 00000000 		.quad	.LBB3227
- 37376      00000000 
- 37377 999d 00000000 		.quad	.LBE3227
- 37377      00000000 
- 37378 99a5 02       		.byte	0x2
- 37379 99a6 9B02     		.value	0x29b
- 37380 99a8 32       		.uleb128 0x32
- 37381 99a9 BE0D0000 		.long	0xdbe
- 37382 99ad 04       		.byte	0x4
- 37383 99ae 91       		.byte	0x91
- 37384 99af A0BD7F   		.sleb128 -8544
- 37385 99b2 32       		.uleb128 0x32
- 37386 99b3 B20D0000 		.long	0xdb2
- 37387 99b7 04       		.byte	0x4
- 37388 99b8 91       		.byte	0x91
- 37389 99b9 B0BD7F   		.sleb128 -8528
- 37390 99bc 35       		.uleb128 0x35
- 37391 99bd CB0D0000 		.long	0xdcb
- 37392 99c1 00000000 		.quad	.LBB3229
- 37392      00000000 
- 37393 99c9 00000000 		.quad	.LBE3229
- 37393      00000000 
- 37394 99d1 02       		.byte	0x2
- 37395 99d2 7501     		.value	0x175
- 37396 99d4 32       		.uleb128 0x32
- 37397 99d5 E90D0000 		.long	0xde9
- 37398 99d9 04       		.byte	0x4
- 37399 99da 91       		.byte	0x91
- 37400 99db C0BD7F   		.sleb128 -8512
- 37401 99de 32       		.uleb128 0x32
- 37402 99df DD0D0000 		.long	0xddd
- 37403 99e3 04       		.byte	0x4
- 37404 99e4 91       		.byte	0x91
- 37405 99e5 D0BD7F   		.sleb128 -8496
- 37406 99e8 00       		.byte	0x0
- 37407 99e9 00       		.byte	0x0
- 37408 99ea 00       		.byte	0x0
- 37409 99eb 00       		.byte	0x0
- 37410 99ec 36       		.uleb128 0x36
- 37411 99ed 00000000 		.quad	.LBB3231
- 37411      00000000 
- 37412 99f5 00000000 		.quad	.LBE3231
- 37412      00000000 
- 37413 99fd 0C9A0000 		.long	0x9a0c
- 37414 9a01 34       		.uleb128 0x34
- 37415 9a02 2C0C0000 		.long	0xc2c
- 37416 9a06 04       		.byte	0x4
- 37417 9a07 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 962
-
-
- 37418 9a08 B0B37F   		.sleb128 -9808
- 37419 9a0b 00       		.byte	0x0
- 37420 9a0c 31       		.uleb128 0x31
- 37421 9a0d 860E0000 		.long	0xe86
- 37422 9a11 00000000 		.quad	.LBB3232
- 37422      00000000 
- 37423 9a19 00000000 		.quad	.LBE3232
- 37423      00000000 
- 37424 9a21 02       		.byte	0x2
- 37425 9a22 9606     		.value	0x696
- 37426 9a24 3D9A0000 		.long	0x9a3d
- 37427 9a28 32       		.uleb128 0x32
- 37428 9a29 A10E0000 		.long	0xea1
- 37429 9a2d 04       		.byte	0x4
- 37430 9a2e 91       		.byte	0x91
- 37431 9a2f E0BD7F   		.sleb128 -8480
- 37432 9a32 32       		.uleb128 0x32
- 37433 9a33 970E0000 		.long	0xe97
- 37434 9a37 04       		.byte	0x4
- 37435 9a38 91       		.byte	0x91
- 37436 9a39 F0BD7F   		.sleb128 -8464
- 37437 9a3c 00       		.byte	0x0
- 37438 9a3d 36       		.uleb128 0x36
- 37439 9a3e 00000000 		.quad	.LBB3234
- 37439      00000000 
- 37440 9a46 00000000 		.quad	.LBE3234
- 37440      00000000 
- 37441 9a4e 5D9A0000 		.long	0x9a5d
- 37442 9a52 34       		.uleb128 0x34
- 37443 9a53 3C0C0000 		.long	0xc3c
- 37444 9a57 04       		.byte	0x4
- 37445 9a58 91       		.byte	0x91
- 37446 9a59 A0B37F   		.sleb128 -9824
- 37447 9a5c 00       		.byte	0x0
- 37448 9a5d 31       		.uleb128 0x31
- 37449 9a5e AC0E0000 		.long	0xeac
- 37450 9a62 00000000 		.quad	.LBB3235
- 37450      00000000 
- 37451 9a6a 00000000 		.quad	.LBE3235
- 37451      00000000 
- 37452 9a72 02       		.byte	0x2
- 37453 9a73 9806     		.value	0x698
- 37454 9a75 B19A0000 		.long	0x9ab1
- 37455 9a79 32       		.uleb128 0x32
- 37456 9a7a BE0E0000 		.long	0xebe
- 37457 9a7e 04       		.byte	0x4
- 37458 9a7f 91       		.byte	0x91
- 37459 9a80 80BE7F   		.sleb128 -8448
- 37460 9a83 35       		.uleb128 0x35
- 37461 9a84 CB0E0000 		.long	0xecb
- 37462 9a88 00000000 		.quad	.LBB3237
- 37462      00000000 
- 37463 9a90 00000000 		.quad	.LBE3237
- 37463      00000000 
- 37464 9a98 02       		.byte	0x2
- 37465 9a99 4905     		.value	0x549
- 37466 9a9b 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 963
-
-
- 37467 9a9c E90E0000 		.long	0xee9
- 37468 9aa0 04       		.byte	0x4
- 37469 9aa1 91       		.byte	0x91
- 37470 9aa2 9CBE7F   		.sleb128 -8420
- 37471 9aa5 32       		.uleb128 0x32
- 37472 9aa6 DD0E0000 		.long	0xedd
- 37473 9aaa 04       		.byte	0x4
- 37474 9aab 91       		.byte	0x91
- 37475 9aac A0BE7F   		.sleb128 -8416
- 37476 9aaf 00       		.byte	0x0
- 37477 9ab0 00       		.byte	0x0
- 37478 9ab1 33       		.uleb128 0x33
- 37479 9ab2 00000000 		.quad	.LBB3239
- 37479      00000000 
- 37480 9aba 00000000 		.quad	.LBE3239
- 37480      00000000 
- 37481 9ac2 34       		.uleb128 0x34
- 37482 9ac3 480C0000 		.long	0xc48
- 37483 9ac7 04       		.byte	0x4
- 37484 9ac8 91       		.byte	0x91
- 37485 9ac9 90B37F   		.sleb128 -9840
- 37486 9acc 00       		.byte	0x0
- 37487 9acd 00       		.byte	0x0
- 37488 9ace 00       		.byte	0x0
- 37489 9acf 31       		.uleb128 0x31
- 37490 9ad0 F60E0000 		.long	0xef6
- 37491 9ad4 00000000 		.quad	.LBB3240
- 37491      00000000 
- 37492 9adc 00000000 		.quad	.LBE3240
- 37492      00000000 
- 37493 9ae4 02       		.byte	0x2
- 37494 9ae5 8607     		.value	0x786
- 37495 9ae7 F19C0000 		.long	0x9cf1
- 37496 9aeb 32       		.uleb128 0x32
- 37497 9aec 080F0000 		.long	0xf08
- 37498 9af0 04       		.byte	0x4
- 37499 9af1 91       		.byte	0x91
- 37500 9af2 B0BE7F   		.sleb128 -8400
- 37501 9af5 33       		.uleb128 0x33
- 37502 9af6 00000000 		.quad	.LBB3241
- 37502      00000000 
- 37503 9afe 00000000 		.quad	.LBE3241
- 37503      00000000 
- 37504 9b06 34       		.uleb128 0x34
- 37505 9b07 140F0000 		.long	0xf14
- 37506 9b0b 04       		.byte	0x4
- 37507 9b0c 76       		.byte	0x76
- 37508 9b0d 80B07F   		.sleb128 -10240
- 37509 9b10 31       		.uleb128 0x31
- 37510 9b11 210F0000 		.long	0xf21
- 37511 9b15 00000000 		.quad	.LBB3242
- 37511      00000000 
- 37512 9b1d 00000000 		.quad	.LBE3242
- 37512      00000000 
- 37513 9b25 02       		.byte	0x2
- 37514 9b26 1F06     		.value	0x61f
- 37515 9b28 B29B0000 		.long	0x9bb2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 964
-
-
- 37516 9b2c 32       		.uleb128 0x32
- 37517 9b2d 330F0000 		.long	0xf33
- 37518 9b31 04       		.byte	0x4
- 37519 9b32 91       		.byte	0x91
- 37520 9b33 C0BE7F   		.sleb128 -8384
- 37521 9b36 33       		.uleb128 0x33
- 37522 9b37 00000000 		.quad	.LBB3243
- 37522      00000000 
- 37523 9b3f 00000000 		.quad	.LBE3243
- 37523      00000000 
- 37524 9b47 34       		.uleb128 0x34
- 37525 9b48 3F0F0000 		.long	0xf3f
- 37526 9b4c 09       		.byte	0x9
- 37527 9b4d 03       		.byte	0x3
- 37528 9b4e 00000000 		.quad	mask.7943
- 37528      00000000 
- 37529 9b56 35       		.uleb128 0x35
- 37530 9b57 A00D0000 		.long	0xda0
- 37531 9b5b 00000000 		.quad	.LBB3244
- 37531      00000000 
- 37532 9b63 00000000 		.quad	.LBE3244
- 37532      00000000 
- 37533 9b6b 02       		.byte	0x2
- 37534 9b6c FE04     		.value	0x4fe
- 37535 9b6e 32       		.uleb128 0x32
- 37536 9b6f BE0D0000 		.long	0xdbe
- 37537 9b73 04       		.byte	0x4
- 37538 9b74 91       		.byte	0x91
- 37539 9b75 D0BE7F   		.sleb128 -8368
- 37540 9b78 32       		.uleb128 0x32
- 37541 9b79 B20D0000 		.long	0xdb2
- 37542 9b7d 04       		.byte	0x4
- 37543 9b7e 91       		.byte	0x91
- 37544 9b7f E0BE7F   		.sleb128 -8352
- 37545 9b82 35       		.uleb128 0x35
- 37546 9b83 CB0D0000 		.long	0xdcb
- 37547 9b87 00000000 		.quad	.LBB3246
- 37547      00000000 
- 37548 9b8f 00000000 		.quad	.LBE3246
- 37548      00000000 
- 37549 9b97 02       		.byte	0x2
- 37550 9b98 7501     		.value	0x175
- 37551 9b9a 32       		.uleb128 0x32
- 37552 9b9b E90D0000 		.long	0xde9
- 37553 9b9f 04       		.byte	0x4
- 37554 9ba0 91       		.byte	0x91
- 37555 9ba1 F0BE7F   		.sleb128 -8336
- 37556 9ba4 32       		.uleb128 0x32
- 37557 9ba5 DD0D0000 		.long	0xddd
- 37558 9ba9 04       		.byte	0x4
- 37559 9baa 91       		.byte	0x91
- 37560 9bab 80BF7F   		.sleb128 -8320
- 37561 9bae 00       		.byte	0x0
- 37562 9baf 00       		.byte	0x0
- 37563 9bb0 00       		.byte	0x0
- 37564 9bb1 00       		.byte	0x0
- 37565 9bb2 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 965
-
-
- 37566 9bb3 210F0000 		.long	0xf21
- 37567 9bb7 00000000 		.quad	.LBB3248
- 37567      00000000 
- 37568 9bbf 00000000 		.quad	.LBE3248
- 37568      00000000 
- 37569 9bc7 02       		.byte	0x2
- 37570 9bc8 2006     		.value	0x620
- 37571 9bca 549C0000 		.long	0x9c54
- 37572 9bce 32       		.uleb128 0x32
- 37573 9bcf 330F0000 		.long	0xf33
- 37574 9bd3 04       		.byte	0x4
- 37575 9bd4 91       		.byte	0x91
- 37576 9bd5 90BF7F   		.sleb128 -8304
- 37577 9bd8 33       		.uleb128 0x33
- 37578 9bd9 00000000 		.quad	.LBB3249
- 37578      00000000 
- 37579 9be1 00000000 		.quad	.LBE3249
- 37579      00000000 
- 37580 9be9 34       		.uleb128 0x34
- 37581 9bea 3F0F0000 		.long	0xf3f
- 37582 9bee 09       		.byte	0x9
- 37583 9bef 03       		.byte	0x3
- 37584 9bf0 00000000 		.quad	mask.7943
- 37584      00000000 
- 37585 9bf8 35       		.uleb128 0x35
- 37586 9bf9 A00D0000 		.long	0xda0
- 37587 9bfd 00000000 		.quad	.LBB3250
- 37587      00000000 
- 37588 9c05 00000000 		.quad	.LBE3250
- 37588      00000000 
- 37589 9c0d 02       		.byte	0x2
- 37590 9c0e FE04     		.value	0x4fe
- 37591 9c10 32       		.uleb128 0x32
- 37592 9c11 BE0D0000 		.long	0xdbe
- 37593 9c15 04       		.byte	0x4
- 37594 9c16 91       		.byte	0x91
- 37595 9c17 A0BF7F   		.sleb128 -8288
- 37596 9c1a 32       		.uleb128 0x32
- 37597 9c1b B20D0000 		.long	0xdb2
- 37598 9c1f 04       		.byte	0x4
- 37599 9c20 91       		.byte	0x91
- 37600 9c21 B0BF7F   		.sleb128 -8272
- 37601 9c24 35       		.uleb128 0x35
- 37602 9c25 CB0D0000 		.long	0xdcb
- 37603 9c29 00000000 		.quad	.LBB3252
- 37603      00000000 
- 37604 9c31 00000000 		.quad	.LBE3252
- 37604      00000000 
- 37605 9c39 02       		.byte	0x2
- 37606 9c3a 7501     		.value	0x175
- 37607 9c3c 32       		.uleb128 0x32
- 37608 9c3d E90D0000 		.long	0xde9
- 37609 9c41 04       		.byte	0x4
- 37610 9c42 91       		.byte	0x91
- 37611 9c43 C0BF7F   		.sleb128 -8256
- 37612 9c46 32       		.uleb128 0x32
- 37613 9c47 DD0D0000 		.long	0xddd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 966
-
-
- 37614 9c4b 04       		.byte	0x4
- 37615 9c4c 91       		.byte	0x91
- 37616 9c4d D0BF7F   		.sleb128 -8240
- 37617 9c50 00       		.byte	0x0
- 37618 9c51 00       		.byte	0x0
- 37619 9c52 00       		.byte	0x0
- 37620 9c53 00       		.byte	0x0
- 37621 9c54 35       		.uleb128 0x35
- 37622 9c55 210F0000 		.long	0xf21
- 37623 9c59 00000000 		.quad	.LBB3254
- 37623      00000000 
- 37624 9c61 00000000 		.quad	.LBE3254
- 37624      00000000 
- 37625 9c69 02       		.byte	0x2
- 37626 9c6a 2106     		.value	0x621
- 37627 9c6c 32       		.uleb128 0x32
- 37628 9c6d 330F0000 		.long	0xf33
- 37629 9c71 04       		.byte	0x4
- 37630 9c72 91       		.byte	0x91
- 37631 9c73 E0BF7F   		.sleb128 -8224
- 37632 9c76 33       		.uleb128 0x33
- 37633 9c77 00000000 		.quad	.LBB3255
- 37633      00000000 
- 37634 9c7f 00000000 		.quad	.LBE3255
- 37634      00000000 
- 37635 9c87 34       		.uleb128 0x34
- 37636 9c88 3F0F0000 		.long	0xf3f
- 37637 9c8c 09       		.byte	0x9
- 37638 9c8d 03       		.byte	0x3
- 37639 9c8e 00000000 		.quad	mask.7943
- 37639      00000000 
- 37640 9c96 35       		.uleb128 0x35
- 37641 9c97 A00D0000 		.long	0xda0
- 37642 9c9b 00000000 		.quad	.LBB3256
- 37642      00000000 
- 37643 9ca3 00000000 		.quad	.LBE3256
- 37643      00000000 
- 37644 9cab 02       		.byte	0x2
- 37645 9cac FE04     		.value	0x4fe
- 37646 9cae 32       		.uleb128 0x32
- 37647 9caf BE0D0000 		.long	0xdbe
- 37648 9cb3 04       		.byte	0x4
- 37649 9cb4 91       		.byte	0x91
- 37650 9cb5 F0BF7F   		.sleb128 -8208
- 37651 9cb8 32       		.uleb128 0x32
- 37652 9cb9 B20D0000 		.long	0xdb2
- 37653 9cbd 03       		.byte	0x3
- 37654 9cbe 91       		.byte	0x91
- 37655 9cbf 8040     		.sleb128 -8192
- 37656 9cc1 35       		.uleb128 0x35
- 37657 9cc2 CB0D0000 		.long	0xdcb
- 37658 9cc6 00000000 		.quad	.LBB3258
- 37658      00000000 
- 37659 9cce 00000000 		.quad	.LBE3258
- 37659      00000000 
- 37660 9cd6 02       		.byte	0x2
- 37661 9cd7 7501     		.value	0x175
-
GAS LISTING /tmp/ccjbMjHD.s 			page 967
-
-
- 37662 9cd9 32       		.uleb128 0x32
- 37663 9cda E90D0000 		.long	0xde9
- 37664 9cde 03       		.byte	0x3
- 37665 9cdf 91       		.byte	0x91
- 37666 9ce0 9040     		.sleb128 -8176
- 37667 9ce2 32       		.uleb128 0x32
- 37668 9ce3 DD0D0000 		.long	0xddd
- 37669 9ce7 03       		.byte	0x3
- 37670 9ce8 91       		.byte	0x91
- 37671 9ce9 A040     		.sleb128 -8160
- 37672 9ceb 00       		.byte	0x0
- 37673 9cec 00       		.byte	0x0
- 37674 9ced 00       		.byte	0x0
- 37675 9cee 00       		.byte	0x0
- 37676 9cef 00       		.byte	0x0
- 37677 9cf0 00       		.byte	0x0
- 37678 9cf1 31       		.uleb128 0x31
- 37679 9cf2 860E0000 		.long	0xe86
- 37680 9cf6 00000000 		.quad	.LBB3260
- 37680      00000000 
- 37681 9cfe 00000000 		.quad	.LBE3260
- 37681      00000000 
- 37682 9d06 02       		.byte	0x2
- 37683 9d07 8607     		.value	0x786
- 37684 9d09 209D0000 		.long	0x9d20
- 37685 9d0d 32       		.uleb128 0x32
- 37686 9d0e A10E0000 		.long	0xea1
- 37687 9d12 03       		.byte	0x3
- 37688 9d13 91       		.byte	0x91
- 37689 9d14 B040     		.sleb128 -8144
- 37690 9d16 32       		.uleb128 0x32
- 37691 9d17 970E0000 		.long	0xe97
- 37692 9d1b 03       		.byte	0x3
- 37693 9d1c 91       		.byte	0x91
- 37694 9d1d C040     		.sleb128 -8128
- 37695 9d1f 00       		.byte	0x0
- 37696 9d20 31       		.uleb128 0x31
- 37697 9d21 8F940000 		.long	0x948f
- 37698 9d25 00000000 		.quad	.LBB3262
- 37698      00000000 
- 37699 9d2d 00000000 		.quad	.LBE3262
- 37699      00000000 
- 37700 9d35 02       		.byte	0x2
- 37701 9d36 8707     		.value	0x787
- 37702 9d38 B29D0000 		.long	0x9db2
- 37703 9d3c 32       		.uleb128 0x32
- 37704 9d3d A1940000 		.long	0x94a1
- 37705 9d41 03       		.byte	0x3
- 37706 9d42 91       		.byte	0x91
- 37707 9d43 D040     		.sleb128 -8112
- 37708 9d45 33       		.uleb128 0x33
- 37709 9d46 00000000 		.quad	.LBB3263
- 37709      00000000 
- 37710 9d4e 00000000 		.quad	.LBE3263
- 37710      00000000 
- 37711 9d56 34       		.uleb128 0x34
- 37712 9d57 AD940000 		.long	0x94ad
-
GAS LISTING /tmp/ccjbMjHD.s 			page 968
-
-
- 37713 9d5b 04       		.byte	0x4
- 37714 9d5c 91       		.byte	0x91
- 37715 9d5d E0B37F   		.sleb128 -9760
- 37716 9d60 34       		.uleb128 0x34
- 37717 9d61 B7940000 		.long	0x94b7
- 37718 9d65 03       		.byte	0x3
- 37719 9d66 91       		.byte	0x91
- 37720 9d67 E440     		.sleb128 -8092
- 37721 9d69 35       		.uleb128 0x35
- 37722 9d6a BE560000 		.long	0x56be
- 37723 9d6e 00000000 		.quad	.LBB3264
- 37723      00000000 
- 37724 9d76 00000000 		.quad	.LBE3264
- 37724      00000000 
- 37725 9d7e 02       		.byte	0x2
- 37726 9d7f 7906     		.value	0x679
- 37727 9d81 32       		.uleb128 0x32
- 37728 9d82 D0560000 		.long	0x56d0
- 37729 9d86 03       		.byte	0x3
- 37730 9d87 91       		.byte	0x91
- 37731 9d88 E840     		.sleb128 -8088
- 37732 9d8a 33       		.uleb128 0x33
- 37733 9d8b 00000000 		.quad	.LBB3265
- 37733      00000000 
- 37734 9d93 00000000 		.quad	.LBE3265
- 37734      00000000 
- 37735 9d9b 34       		.uleb128 0x34
- 37736 9d9c DA560000 		.long	0x56da
- 37737 9da0 04       		.byte	0x4
- 37738 9da1 91       		.byte	0x91
- 37739 9da2 D0B37F   		.sleb128 -9776
- 37740 9da5 34       		.uleb128 0x34
- 37741 9da6 E6560000 		.long	0x56e6
- 37742 9daa 03       		.byte	0x3
- 37743 9dab 91       		.byte	0x91
- 37744 9dac EC40     		.sleb128 -8084
- 37745 9dae 00       		.byte	0x0
- 37746 9daf 00       		.byte	0x0
- 37747 9db0 00       		.byte	0x0
- 37748 9db1 00       		.byte	0x0
- 37749 9db2 31       		.uleb128 0x31
- 37750 9db3 F60E0000 		.long	0xef6
- 37751 9db7 00000000 		.quad	.LBB3266
- 37751      00000000 
- 37752 9dbf 00000000 		.quad	.LBE3266
- 37752      00000000 
- 37753 9dc7 02       		.byte	0x2
- 37754 9dc8 8707     		.value	0x787
- 37755 9dca C79F0000 		.long	0x9fc7
- 37756 9dce 32       		.uleb128 0x32
- 37757 9dcf 080F0000 		.long	0xf08
- 37758 9dd3 03       		.byte	0x3
- 37759 9dd4 91       		.byte	0x91
- 37760 9dd5 F040     		.sleb128 -8080
- 37761 9dd7 33       		.uleb128 0x33
- 37762 9dd8 00000000 		.quad	.LBB3267
- 37762      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 969
-
-
- 37763 9de0 00000000 		.quad	.LBE3267
- 37763      00000000 
- 37764 9de8 34       		.uleb128 0x34
- 37765 9de9 140F0000 		.long	0xf14
- 37766 9ded 04       		.byte	0x4
- 37767 9dee 76       		.byte	0x76
- 37768 9def 90B07F   		.sleb128 -10224
- 37769 9df2 31       		.uleb128 0x31
- 37770 9df3 210F0000 		.long	0xf21
- 37771 9df7 00000000 		.quad	.LBB3268
- 37771      00000000 
- 37772 9dff 00000000 		.quad	.LBE3268
- 37772      00000000 
- 37773 9e07 02       		.byte	0x2
- 37774 9e08 1F06     		.value	0x61f
- 37775 9e0a 8F9E0000 		.long	0x9e8f
- 37776 9e0e 32       		.uleb128 0x32
- 37777 9e0f 330F0000 		.long	0xf33
- 37778 9e13 03       		.byte	0x3
- 37779 9e14 91       		.byte	0x91
- 37780 9e15 8041     		.sleb128 -8064
- 37781 9e17 33       		.uleb128 0x33
- 37782 9e18 00000000 		.quad	.LBB3269
- 37782      00000000 
- 37783 9e20 00000000 		.quad	.LBE3269
- 37783      00000000 
- 37784 9e28 34       		.uleb128 0x34
- 37785 9e29 3F0F0000 		.long	0xf3f
- 37786 9e2d 09       		.byte	0x9
- 37787 9e2e 03       		.byte	0x3
- 37788 9e2f 00000000 		.quad	mask.7943
- 37788      00000000 
- 37789 9e37 35       		.uleb128 0x35
- 37790 9e38 A00D0000 		.long	0xda0
- 37791 9e3c 00000000 		.quad	.LBB3270
- 37791      00000000 
- 37792 9e44 00000000 		.quad	.LBE3270
- 37792      00000000 
- 37793 9e4c 02       		.byte	0x2
- 37794 9e4d FE04     		.value	0x4fe
- 37795 9e4f 32       		.uleb128 0x32
- 37796 9e50 BE0D0000 		.long	0xdbe
- 37797 9e54 03       		.byte	0x3
- 37798 9e55 91       		.byte	0x91
- 37799 9e56 9041     		.sleb128 -8048
- 37800 9e58 32       		.uleb128 0x32
- 37801 9e59 B20D0000 		.long	0xdb2
- 37802 9e5d 03       		.byte	0x3
- 37803 9e5e 91       		.byte	0x91
- 37804 9e5f A041     		.sleb128 -8032
- 37805 9e61 35       		.uleb128 0x35
- 37806 9e62 CB0D0000 		.long	0xdcb
- 37807 9e66 00000000 		.quad	.LBB3272
- 37807      00000000 
- 37808 9e6e 00000000 		.quad	.LBE3272
- 37808      00000000 
- 37809 9e76 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 970
-
-
- 37810 9e77 7501     		.value	0x175
- 37811 9e79 32       		.uleb128 0x32
- 37812 9e7a E90D0000 		.long	0xde9
- 37813 9e7e 03       		.byte	0x3
- 37814 9e7f 91       		.byte	0x91
- 37815 9e80 B041     		.sleb128 -8016
- 37816 9e82 32       		.uleb128 0x32
- 37817 9e83 DD0D0000 		.long	0xddd
- 37818 9e87 03       		.byte	0x3
- 37819 9e88 91       		.byte	0x91
- 37820 9e89 C041     		.sleb128 -8000
- 37821 9e8b 00       		.byte	0x0
- 37822 9e8c 00       		.byte	0x0
- 37823 9e8d 00       		.byte	0x0
- 37824 9e8e 00       		.byte	0x0
- 37825 9e8f 31       		.uleb128 0x31
- 37826 9e90 210F0000 		.long	0xf21
- 37827 9e94 00000000 		.quad	.LBB3274
- 37827      00000000 
- 37828 9e9c 00000000 		.quad	.LBE3274
- 37828      00000000 
- 37829 9ea4 02       		.byte	0x2
- 37830 9ea5 2006     		.value	0x620
- 37831 9ea7 2C9F0000 		.long	0x9f2c
- 37832 9eab 32       		.uleb128 0x32
- 37833 9eac 330F0000 		.long	0xf33
- 37834 9eb0 03       		.byte	0x3
- 37835 9eb1 91       		.byte	0x91
- 37836 9eb2 D041     		.sleb128 -7984
- 37837 9eb4 33       		.uleb128 0x33
- 37838 9eb5 00000000 		.quad	.LBB3275
- 37838      00000000 
- 37839 9ebd 00000000 		.quad	.LBE3275
- 37839      00000000 
- 37840 9ec5 34       		.uleb128 0x34
- 37841 9ec6 3F0F0000 		.long	0xf3f
- 37842 9eca 09       		.byte	0x9
- 37843 9ecb 03       		.byte	0x3
- 37844 9ecc 00000000 		.quad	mask.7943
- 37844      00000000 
- 37845 9ed4 35       		.uleb128 0x35
- 37846 9ed5 A00D0000 		.long	0xda0
- 37847 9ed9 00000000 		.quad	.LBB3276
- 37847      00000000 
- 37848 9ee1 00000000 		.quad	.LBE3276
- 37848      00000000 
- 37849 9ee9 02       		.byte	0x2
- 37850 9eea FE04     		.value	0x4fe
- 37851 9eec 32       		.uleb128 0x32
- 37852 9eed BE0D0000 		.long	0xdbe
- 37853 9ef1 03       		.byte	0x3
- 37854 9ef2 91       		.byte	0x91
- 37855 9ef3 E041     		.sleb128 -7968
- 37856 9ef5 32       		.uleb128 0x32
- 37857 9ef6 B20D0000 		.long	0xdb2
- 37858 9efa 03       		.byte	0x3
- 37859 9efb 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 971
-
-
- 37860 9efc F041     		.sleb128 -7952
- 37861 9efe 35       		.uleb128 0x35
- 37862 9eff CB0D0000 		.long	0xdcb
- 37863 9f03 00000000 		.quad	.LBB3278
- 37863      00000000 
- 37864 9f0b 00000000 		.quad	.LBE3278
- 37864      00000000 
- 37865 9f13 02       		.byte	0x2
- 37866 9f14 7501     		.value	0x175
- 37867 9f16 32       		.uleb128 0x32
- 37868 9f17 E90D0000 		.long	0xde9
- 37869 9f1b 03       		.byte	0x3
- 37870 9f1c 91       		.byte	0x91
- 37871 9f1d 8042     		.sleb128 -7936
- 37872 9f1f 32       		.uleb128 0x32
- 37873 9f20 DD0D0000 		.long	0xddd
- 37874 9f24 03       		.byte	0x3
- 37875 9f25 91       		.byte	0x91
- 37876 9f26 9042     		.sleb128 -7920
- 37877 9f28 00       		.byte	0x0
- 37878 9f29 00       		.byte	0x0
- 37879 9f2a 00       		.byte	0x0
- 37880 9f2b 00       		.byte	0x0
- 37881 9f2c 35       		.uleb128 0x35
- 37882 9f2d 210F0000 		.long	0xf21
- 37883 9f31 00000000 		.quad	.LBB3280
- 37883      00000000 
- 37884 9f39 00000000 		.quad	.LBE3280
- 37884      00000000 
- 37885 9f41 02       		.byte	0x2
- 37886 9f42 2106     		.value	0x621
- 37887 9f44 32       		.uleb128 0x32
- 37888 9f45 330F0000 		.long	0xf33
- 37889 9f49 03       		.byte	0x3
- 37890 9f4a 91       		.byte	0x91
- 37891 9f4b A042     		.sleb128 -7904
- 37892 9f4d 33       		.uleb128 0x33
- 37893 9f4e 00000000 		.quad	.LBB3281
- 37893      00000000 
- 37894 9f56 00000000 		.quad	.LBE3281
- 37894      00000000 
- 37895 9f5e 34       		.uleb128 0x34
- 37896 9f5f 3F0F0000 		.long	0xf3f
- 37897 9f63 09       		.byte	0x9
- 37898 9f64 03       		.byte	0x3
- 37899 9f65 00000000 		.quad	mask.7943
- 37899      00000000 
- 37900 9f6d 35       		.uleb128 0x35
- 37901 9f6e A00D0000 		.long	0xda0
- 37902 9f72 00000000 		.quad	.LBB3282
- 37902      00000000 
- 37903 9f7a 00000000 		.quad	.LBE3282
- 37903      00000000 
- 37904 9f82 02       		.byte	0x2
- 37905 9f83 FE04     		.value	0x4fe
- 37906 9f85 32       		.uleb128 0x32
- 37907 9f86 BE0D0000 		.long	0xdbe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 972
-
-
- 37908 9f8a 03       		.byte	0x3
- 37909 9f8b 91       		.byte	0x91
- 37910 9f8c B042     		.sleb128 -7888
- 37911 9f8e 32       		.uleb128 0x32
- 37912 9f8f B20D0000 		.long	0xdb2
- 37913 9f93 03       		.byte	0x3
- 37914 9f94 91       		.byte	0x91
- 37915 9f95 C042     		.sleb128 -7872
- 37916 9f97 35       		.uleb128 0x35
- 37917 9f98 CB0D0000 		.long	0xdcb
- 37918 9f9c 00000000 		.quad	.LBB3284
- 37918      00000000 
- 37919 9fa4 00000000 		.quad	.LBE3284
- 37919      00000000 
- 37920 9fac 02       		.byte	0x2
- 37921 9fad 7501     		.value	0x175
- 37922 9faf 32       		.uleb128 0x32
- 37923 9fb0 E90D0000 		.long	0xde9
- 37924 9fb4 03       		.byte	0x3
- 37925 9fb5 91       		.byte	0x91
- 37926 9fb6 D042     		.sleb128 -7856
- 37927 9fb8 32       		.uleb128 0x32
- 37928 9fb9 DD0D0000 		.long	0xddd
- 37929 9fbd 03       		.byte	0x3
- 37930 9fbe 91       		.byte	0x91
- 37931 9fbf E042     		.sleb128 -7840
- 37932 9fc1 00       		.byte	0x0
- 37933 9fc2 00       		.byte	0x0
- 37934 9fc3 00       		.byte	0x0
- 37935 9fc4 00       		.byte	0x0
- 37936 9fc5 00       		.byte	0x0
- 37937 9fc6 00       		.byte	0x0
- 37938 9fc7 31       		.uleb128 0x31
- 37939 9fc8 860E0000 		.long	0xe86
- 37940 9fcc 00000000 		.quad	.LBB3286
- 37940      00000000 
- 37941 9fd4 00000000 		.quad	.LBE3286
- 37941      00000000 
- 37942 9fdc 02       		.byte	0x2
- 37943 9fdd 8707     		.value	0x787
- 37944 9fdf F69F0000 		.long	0x9ff6
- 37945 9fe3 32       		.uleb128 0x32
- 37946 9fe4 A10E0000 		.long	0xea1
- 37947 9fe8 03       		.byte	0x3
- 37948 9fe9 91       		.byte	0x91
- 37949 9fea F042     		.sleb128 -7824
- 37950 9fec 32       		.uleb128 0x32
- 37951 9fed 970E0000 		.long	0xe97
- 37952 9ff1 03       		.byte	0x3
- 37953 9ff2 91       		.byte	0x91
- 37954 9ff3 8043     		.sleb128 -7808
- 37955 9ff5 00       		.byte	0x0
- 37956 9ff6 31       		.uleb128 0x31
- 37957 9ff7 D50B0000 		.long	0xbd5
- 37958 9ffb 00000000 		.quad	.LBB3288
- 37958      00000000 
- 37959 a003 00000000 		.quad	.LBE3288
-
GAS LISTING /tmp/ccjbMjHD.s 			page 973
-
-
- 37959      00000000 
- 37960 a00b 02       		.byte	0x2
- 37961 a00c 8807     		.value	0x788
- 37962 a00e D9A40000 		.long	0xa4d9
- 37963 a012 32       		.uleb128 0x32
- 37964 a013 F30B0000 		.long	0xbf3
- 37965 a017 03       		.byte	0x3
- 37966 a018 91       		.byte	0x91
- 37967 a019 9C43     		.sleb128 -7780
- 37968 a01b 32       		.uleb128 0x32
- 37969 a01c E70B0000 		.long	0xbe7
- 37970 a020 03       		.byte	0x3
- 37971 a021 91       		.byte	0x91
- 37972 a022 A043     		.sleb128 -7776
- 37973 a024 33       		.uleb128 0x33
- 37974 a025 00000000 		.quad	.LBB3289
- 37974      00000000 
- 37975 a02d 00000000 		.quad	.LBE3289
- 37975      00000000 
- 37976 a035 34       		.uleb128 0x34
- 37977 a036 FF0B0000 		.long	0xbff
- 37978 a03a 04       		.byte	0x4
- 37979 a03b 76       		.byte	0x76
- 37980 a03c B0B07F   		.sleb128 -10192
- 37981 a03f 34       		.uleb128 0x34
- 37982 a040 0B0C0000 		.long	0xc0b
- 37983 a044 04       		.byte	0x4
- 37984 a045 76       		.byte	0x76
- 37985 a046 A0B07F   		.sleb128 -10208
- 37986 a049 31       		.uleb128 0x31
- 37987 a04a 540C0000 		.long	0xc54
- 37988 a04e 00000000 		.quad	.LBB3290
- 37988      00000000 
- 37989 a056 00000000 		.quad	.LBE3290
- 37989      00000000 
- 37990 a05e 02       		.byte	0x2
- 37991 a05f 9106     		.value	0x691
- 37992 a061 B5A00000 		.long	0xa0b5
- 37993 a065 32       		.uleb128 0x32
- 37994 a066 7E0C0000 		.long	0xc7e
- 37995 a06a 03       		.byte	0x3
- 37996 a06b 91       		.byte	0x91
- 37997 a06c B843     		.sleb128 -7752
- 37998 a06e 32       		.uleb128 0x32
- 37999 a06f 720C0000 		.long	0xc72
- 38000 a073 03       		.byte	0x3
- 38001 a074 91       		.byte	0x91
- 38002 a075 BC43     		.sleb128 -7748
- 38003 a077 32       		.uleb128 0x32
- 38004 a078 660C0000 		.long	0xc66
- 38005 a07c 03       		.byte	0x3
- 38006 a07d 91       		.byte	0x91
- 38007 a07e C043     		.sleb128 -7744
- 38008 a080 35       		.uleb128 0x35
- 38009 a081 8B0C0000 		.long	0xc8b
- 38010 a085 00000000 		.quad	.LBB3292
- 38010      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 974
-
-
- 38011 a08d 00000000 		.quad	.LBE3292
- 38011      00000000 
- 38012 a095 02       		.byte	0x2
- 38013 a096 0702     		.value	0x207
- 38014 a098 32       		.uleb128 0x32
- 38015 a099 B40C0000 		.long	0xcb4
- 38016 a09d 03       		.byte	0x3
- 38017 a09e 91       		.byte	0x91
- 38018 a09f D843     		.sleb128 -7720
- 38019 a0a1 32       		.uleb128 0x32
- 38020 a0a2 A90C0000 		.long	0xca9
- 38021 a0a6 03       		.byte	0x3
- 38022 a0a7 91       		.byte	0x91
- 38023 a0a8 DC43     		.sleb128 -7716
- 38024 a0aa 32       		.uleb128 0x32
- 38025 a0ab 9D0C0000 		.long	0xc9d
- 38026 a0af 03       		.byte	0x3
- 38027 a0b0 91       		.byte	0x91
- 38028 a0b1 E043     		.sleb128 -7712
- 38029 a0b3 00       		.byte	0x0
- 38030 a0b4 00       		.byte	0x0
- 38031 a0b5 31       		.uleb128 0x31
- 38032 a0b6 C10C0000 		.long	0xcc1
- 38033 a0ba 00000000 		.quad	.LBB3294
- 38033      00000000 
- 38034 a0c2 00000000 		.quad	.LBE3294
- 38034      00000000 
- 38035 a0ca 02       		.byte	0x2
- 38036 a0cb 9206     		.value	0x692
- 38037 a0cd 3EA30000 		.long	0xa33e
- 38038 a0d1 32       		.uleb128 0x32
- 38039 a0d2 D30C0000 		.long	0xcd3
- 38040 a0d6 03       		.byte	0x3
- 38041 a0d7 91       		.byte	0x91
- 38042 a0d8 F043     		.sleb128 -7696
- 38043 a0da 35       		.uleb128 0x35
- 38044 a0db E00C0000 		.long	0xce0
- 38045 a0df 00000000 		.quad	.LBB3296
- 38045      00000000 
- 38046 a0e7 00000000 		.quad	.LBE3296
- 38046      00000000 
- 38047 a0ef 02       		.byte	0x2
- 38048 a0f0 7D03     		.value	0x37d
- 38049 a0f2 32       		.uleb128 0x32
- 38050 a0f3 FE0C0000 		.long	0xcfe
- 38051 a0f7 03       		.byte	0x3
- 38052 a0f8 91       		.byte	0x91
- 38053 a0f9 8844     		.sleb128 -7672
- 38054 a0fb 32       		.uleb128 0x32
- 38055 a0fc F20C0000 		.long	0xcf2
- 38056 a100 03       		.byte	0x3
- 38057 a101 91       		.byte	0x91
- 38058 a102 9044     		.sleb128 -7664
- 38059 a104 33       		.uleb128 0x33
- 38060 a105 00000000 		.quad	.LBB3297
- 38060      00000000 
- 38061 a10d 00000000 		.quad	.LBE3297
-
GAS LISTING /tmp/ccjbMjHD.s 			page 975
-
-
- 38061      00000000 
- 38062 a115 34       		.uleb128 0x34
- 38063 a116 0A0D0000 		.long	0xd0a
- 38064 a11a 03       		.byte	0x3
- 38065 a11b 91       		.byte	0x91
- 38066 a11c E044     		.sleb128 -7584
- 38067 a11e 34       		.uleb128 0x34
- 38068 a11f 150D0000 		.long	0xd15
- 38069 a123 03       		.byte	0x3
- 38070 a124 91       		.byte	0x91
- 38071 a125 D044     		.sleb128 -7600
- 38072 a127 34       		.uleb128 0x34
- 38073 a128 200D0000 		.long	0xd20
- 38074 a12c 03       		.byte	0x3
- 38075 a12d 91       		.byte	0x91
- 38076 a12e C044     		.sleb128 -7616
- 38077 a130 34       		.uleb128 0x34
- 38078 a131 2C0D0000 		.long	0xd2c
- 38079 a135 03       		.byte	0x3
- 38080 a136 91       		.byte	0x91
- 38081 a137 B044     		.sleb128 -7632
- 38082 a139 34       		.uleb128 0x34
- 38083 a13a 380D0000 		.long	0xd38
- 38084 a13e 03       		.byte	0x3
- 38085 a13f 91       		.byte	0x91
- 38086 a140 AC44     		.sleb128 -7636
- 38087 a142 31       		.uleb128 0x31
- 38088 a143 4F0D0000 		.long	0xd4f
- 38089 a147 00000000 		.quad	.LBB3298
- 38089      00000000 
- 38090 a14f 00000000 		.quad	.LBE3298
- 38090      00000000 
- 38091 a157 02       		.byte	0x2
- 38092 a158 5603     		.value	0x356
- 38093 a15a 71A10000 		.long	0xa171
- 38094 a15e 32       		.uleb128 0x32
- 38095 a15f 6A0D0000 		.long	0xd6a
- 38096 a163 03       		.byte	0x3
- 38097 a164 91       		.byte	0x91
- 38098 a165 F044     		.sleb128 -7568
- 38099 a167 32       		.uleb128 0x32
- 38100 a168 600D0000 		.long	0xd60
- 38101 a16c 03       		.byte	0x3
- 38102 a16d 91       		.byte	0x91
- 38103 a16e 8045     		.sleb128 -7552
- 38104 a170 00       		.byte	0x0
- 38105 a171 31       		.uleb128 0x31
- 38106 a172 750D0000 		.long	0xd75
- 38107 a176 00000000 		.quad	.LBB3300
- 38107      00000000 
- 38108 a17e 00000000 		.quad	.LBE3300
- 38108      00000000 
- 38109 a186 02       		.byte	0x2
- 38110 a187 5903     		.value	0x359
- 38111 a189 A0A10000 		.long	0xa1a0
- 38112 a18d 32       		.uleb128 0x32
- 38113 a18e 930D0000 		.long	0xd93
-
GAS LISTING /tmp/ccjbMjHD.s 			page 976
-
-
- 38114 a192 03       		.byte	0x3
- 38115 a193 91       		.byte	0x91
- 38116 a194 9C45     		.sleb128 -7524
- 38117 a196 32       		.uleb128 0x32
- 38118 a197 870D0000 		.long	0xd87
- 38119 a19b 03       		.byte	0x3
- 38120 a19c 91       		.byte	0x91
- 38121 a19d A045     		.sleb128 -7520
- 38122 a19f 00       		.byte	0x0
- 38123 a1a0 31       		.uleb128 0x31
- 38124 a1a1 4F0D0000 		.long	0xd4f
- 38125 a1a5 00000000 		.quad	.LBB3302
- 38125      00000000 
- 38126 a1ad 00000000 		.quad	.LBE3302
- 38126      00000000 
- 38127 a1b5 02       		.byte	0x2
- 38128 a1b6 5B03     		.value	0x35b
- 38129 a1b8 CFA10000 		.long	0xa1cf
- 38130 a1bc 32       		.uleb128 0x32
- 38131 a1bd 6A0D0000 		.long	0xd6a
- 38132 a1c1 03       		.byte	0x3
- 38133 a1c2 91       		.byte	0x91
- 38134 a1c3 B045     		.sleb128 -7504
- 38135 a1c5 32       		.uleb128 0x32
- 38136 a1c6 600D0000 		.long	0xd60
- 38137 a1ca 03       		.byte	0x3
- 38138 a1cb 91       		.byte	0x91
- 38139 a1cc C045     		.sleb128 -7488
- 38140 a1ce 00       		.byte	0x0
- 38141 a1cf 31       		.uleb128 0x31
- 38142 a1d0 A00D0000 		.long	0xda0
- 38143 a1d4 00000000 		.quad	.LBB3304
- 38143      00000000 
- 38144 a1dc 00000000 		.quad	.LBE3304
- 38144      00000000 
- 38145 a1e4 02       		.byte	0x2
- 38146 a1e5 6403     		.value	0x364
- 38147 a1e7 29A20000 		.long	0xa229
- 38148 a1eb 32       		.uleb128 0x32
- 38149 a1ec BE0D0000 		.long	0xdbe
- 38150 a1f0 03       		.byte	0x3
- 38151 a1f1 91       		.byte	0x91
- 38152 a1f2 D045     		.sleb128 -7472
- 38153 a1f4 32       		.uleb128 0x32
- 38154 a1f5 B20D0000 		.long	0xdb2
- 38155 a1f9 03       		.byte	0x3
- 38156 a1fa 91       		.byte	0x91
- 38157 a1fb E045     		.sleb128 -7456
- 38158 a1fd 35       		.uleb128 0x35
- 38159 a1fe CB0D0000 		.long	0xdcb
- 38160 a202 00000000 		.quad	.LBB3306
- 38160      00000000 
- 38161 a20a 00000000 		.quad	.LBE3306
- 38161      00000000 
- 38162 a212 02       		.byte	0x2
- 38163 a213 7501     		.value	0x175
- 38164 a215 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 977
-
-
- 38165 a216 E90D0000 		.long	0xde9
- 38166 a21a 03       		.byte	0x3
- 38167 a21b 91       		.byte	0x91
- 38168 a21c F045     		.sleb128 -7440
- 38169 a21e 32       		.uleb128 0x32
- 38170 a21f DD0D0000 		.long	0xddd
- 38171 a223 03       		.byte	0x3
- 38172 a224 91       		.byte	0x91
- 38173 a225 8046     		.sleb128 -7424
- 38174 a227 00       		.byte	0x0
- 38175 a228 00       		.byte	0x0
- 38176 a229 31       		.uleb128 0x31
- 38177 a22a FB0D0000 		.long	0xdfb
- 38178 a22e 00000000 		.quad	.LBB3308
- 38178      00000000 
- 38179 a236 00000000 		.quad	.LBE3308
- 38179      00000000 
- 38180 a23e 02       		.byte	0x2
- 38181 a23f 6603     		.value	0x366
- 38182 a241 58A20000 		.long	0xa258
- 38183 a245 32       		.uleb128 0x32
- 38184 a246 160E0000 		.long	0xe16
- 38185 a24a 03       		.byte	0x3
- 38186 a24b 91       		.byte	0x91
- 38187 a24c 9046     		.sleb128 -7408
- 38188 a24e 32       		.uleb128 0x32
- 38189 a24f 0C0E0000 		.long	0xe0c
- 38190 a253 03       		.byte	0x3
- 38191 a254 91       		.byte	0x91
- 38192 a255 A046     		.sleb128 -7392
- 38193 a257 00       		.byte	0x0
- 38194 a258 31       		.uleb128 0x31
- 38195 a259 A00D0000 		.long	0xda0
- 38196 a25d 00000000 		.quad	.LBB3310
- 38196      00000000 
- 38197 a265 00000000 		.quad	.LBE3310
- 38197      00000000 
- 38198 a26d 02       		.byte	0x2
- 38199 a26e 6803     		.value	0x368
- 38200 a270 B2A20000 		.long	0xa2b2
- 38201 a274 32       		.uleb128 0x32
- 38202 a275 BE0D0000 		.long	0xdbe
- 38203 a279 03       		.byte	0x3
- 38204 a27a 91       		.byte	0x91
- 38205 a27b B046     		.sleb128 -7376
- 38206 a27d 32       		.uleb128 0x32
- 38207 a27e B20D0000 		.long	0xdb2
- 38208 a282 03       		.byte	0x3
- 38209 a283 91       		.byte	0x91
- 38210 a284 C046     		.sleb128 -7360
- 38211 a286 35       		.uleb128 0x35
- 38212 a287 CB0D0000 		.long	0xdcb
- 38213 a28b 00000000 		.quad	.LBB3312
- 38213      00000000 
- 38214 a293 00000000 		.quad	.LBE3312
- 38214      00000000 
- 38215 a29b 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 978
-
-
- 38216 a29c 7501     		.value	0x175
- 38217 a29e 32       		.uleb128 0x32
- 38218 a29f E90D0000 		.long	0xde9
- 38219 a2a3 03       		.byte	0x3
- 38220 a2a4 91       		.byte	0x91
- 38221 a2a5 D046     		.sleb128 -7344
- 38222 a2a7 32       		.uleb128 0x32
- 38223 a2a8 DD0D0000 		.long	0xddd
- 38224 a2ac 03       		.byte	0x3
- 38225 a2ad 91       		.byte	0x91
- 38226 a2ae E046     		.sleb128 -7328
- 38227 a2b0 00       		.byte	0x0
- 38228 a2b1 00       		.byte	0x0
- 38229 a2b2 31       		.uleb128 0x31
- 38230 a2b3 FB0D0000 		.long	0xdfb
- 38231 a2b7 00000000 		.quad	.LBB3314
- 38231      00000000 
- 38232 a2bf 00000000 		.quad	.LBE3314
- 38232      00000000 
- 38233 a2c7 02       		.byte	0x2
- 38234 a2c8 6A03     		.value	0x36a
- 38235 a2ca E1A20000 		.long	0xa2e1
- 38236 a2ce 32       		.uleb128 0x32
- 38237 a2cf 160E0000 		.long	0xe16
- 38238 a2d3 03       		.byte	0x3
- 38239 a2d4 91       		.byte	0x91
- 38240 a2d5 F046     		.sleb128 -7312
- 38241 a2d7 32       		.uleb128 0x32
- 38242 a2d8 0C0E0000 		.long	0xe0c
- 38243 a2dc 03       		.byte	0x3
- 38244 a2dd 91       		.byte	0x91
- 38245 a2de 8047     		.sleb128 -7296
- 38246 a2e0 00       		.byte	0x0
- 38247 a2e1 31       		.uleb128 0x31
- 38248 a2e2 210E0000 		.long	0xe21
- 38249 a2e6 00000000 		.quad	.LBB3316
- 38249      00000000 
- 38250 a2ee 00000000 		.quad	.LBE3316
- 38250      00000000 
- 38251 a2f6 02       		.byte	0x2
- 38252 a2f7 6C03     		.value	0x36c
- 38253 a2f9 10A30000 		.long	0xa310
- 38254 a2fd 32       		.uleb128 0x32
- 38255 a2fe 3E0E0000 		.long	0xe3e
- 38256 a302 03       		.byte	0x3
- 38257 a303 91       		.byte	0x91
- 38258 a304 9047     		.sleb128 -7280
- 38259 a306 32       		.uleb128 0x32
- 38260 a307 330E0000 		.long	0xe33
- 38261 a30b 03       		.byte	0x3
- 38262 a30c 91       		.byte	0x91
- 38263 a30d A047     		.sleb128 -7264
- 38264 a30f 00       		.byte	0x0
- 38265 a310 35       		.uleb128 0x35
- 38266 a311 4F0D0000 		.long	0xd4f
- 38267 a315 00000000 		.quad	.LBB3318
- 38267      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 979
-
-
- 38268 a31d 00000000 		.quad	.LBE3318
- 38268      00000000 
- 38269 a325 02       		.byte	0x2
- 38270 a326 6E03     		.value	0x36e
- 38271 a328 32       		.uleb128 0x32
- 38272 a329 6A0D0000 		.long	0xd6a
- 38273 a32d 03       		.byte	0x3
- 38274 a32e 91       		.byte	0x91
- 38275 a32f B047     		.sleb128 -7248
- 38276 a331 32       		.uleb128 0x32
- 38277 a332 600D0000 		.long	0xd60
- 38278 a336 03       		.byte	0x3
- 38279 a337 91       		.byte	0x91
- 38280 a338 C047     		.sleb128 -7232
- 38281 a33a 00       		.byte	0x0
- 38282 a33b 00       		.byte	0x0
- 38283 a33c 00       		.byte	0x0
- 38284 a33d 00       		.byte	0x0
- 38285 a33e 36       		.uleb128 0x36
- 38286 a33f 00000000 		.quad	.LBB3320
- 38286      00000000 
- 38287 a347 00000000 		.quad	.LBE3320
- 38287      00000000 
- 38288 a34f 5EA30000 		.long	0xa35e
- 38289 a353 34       		.uleb128 0x34
- 38290 a354 1C0C0000 		.long	0xc1c
- 38291 a358 04       		.byte	0x4
- 38292 a359 91       		.byte	0x91
- 38293 a35a A0B47F   		.sleb128 -9696
- 38294 a35d 00       		.byte	0x0
- 38295 a35e 31       		.uleb128 0x31
- 38296 a35f 4A0E0000 		.long	0xe4a
- 38297 a363 00000000 		.quad	.LBB3321
- 38297      00000000 
- 38298 a36b 00000000 		.quad	.LBE3321
- 38298      00000000 
- 38299 a373 02       		.byte	0x2
- 38300 a374 9406     		.value	0x694
- 38301 a376 FBA30000 		.long	0xa3fb
- 38302 a37a 32       		.uleb128 0x32
- 38303 a37b 5C0E0000 		.long	0xe5c
- 38304 a37f 03       		.byte	0x3
- 38305 a380 91       		.byte	0x91
- 38306 a381 D047     		.sleb128 -7216
- 38307 a383 33       		.uleb128 0x33
- 38308 a384 00000000 		.quad	.LBB3322
- 38308      00000000 
- 38309 a38c 00000000 		.quad	.LBE3322
- 38309      00000000 
- 38310 a394 34       		.uleb128 0x34
- 38311 a395 680E0000 		.long	0xe68
- 38312 a399 09       		.byte	0x9
- 38313 a39a 03       		.byte	0x3
- 38314 a39b 00000000 		.quad	ShiftRowTable.7385
- 38314      00000000 
- 38315 a3a3 35       		.uleb128 0x35
- 38316 a3a4 A00D0000 		.long	0xda0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 980
-
-
- 38317 a3a8 00000000 		.quad	.LBB3323
- 38317      00000000 
- 38318 a3b0 00000000 		.quad	.LBE3323
- 38318      00000000 
- 38319 a3b8 02       		.byte	0x2
- 38320 a3b9 9B02     		.value	0x29b
- 38321 a3bb 32       		.uleb128 0x32
- 38322 a3bc BE0D0000 		.long	0xdbe
- 38323 a3c0 03       		.byte	0x3
- 38324 a3c1 91       		.byte	0x91
- 38325 a3c2 E047     		.sleb128 -7200
- 38326 a3c4 32       		.uleb128 0x32
- 38327 a3c5 B20D0000 		.long	0xdb2
- 38328 a3c9 03       		.byte	0x3
- 38329 a3ca 91       		.byte	0x91
- 38330 a3cb F047     		.sleb128 -7184
- 38331 a3cd 35       		.uleb128 0x35
- 38332 a3ce CB0D0000 		.long	0xdcb
- 38333 a3d2 00000000 		.quad	.LBB3325
- 38333      00000000 
- 38334 a3da 00000000 		.quad	.LBE3325
- 38334      00000000 
- 38335 a3e2 02       		.byte	0x2
- 38336 a3e3 7501     		.value	0x175
- 38337 a3e5 32       		.uleb128 0x32
- 38338 a3e6 E90D0000 		.long	0xde9
- 38339 a3ea 03       		.byte	0x3
- 38340 a3eb 91       		.byte	0x91
- 38341 a3ec 8048     		.sleb128 -7168
- 38342 a3ee 32       		.uleb128 0x32
- 38343 a3ef DD0D0000 		.long	0xddd
- 38344 a3f3 03       		.byte	0x3
- 38345 a3f4 91       		.byte	0x91
- 38346 a3f5 9048     		.sleb128 -7152
- 38347 a3f7 00       		.byte	0x0
- 38348 a3f8 00       		.byte	0x0
- 38349 a3f9 00       		.byte	0x0
- 38350 a3fa 00       		.byte	0x0
- 38351 a3fb 36       		.uleb128 0x36
- 38352 a3fc 00000000 		.quad	.LBB3327
- 38352      00000000 
- 38353 a404 00000000 		.quad	.LBE3327
- 38353      00000000 
- 38354 a40c 1BA40000 		.long	0xa41b
- 38355 a410 34       		.uleb128 0x34
- 38356 a411 2C0C0000 		.long	0xc2c
- 38357 a415 04       		.byte	0x4
- 38358 a416 91       		.byte	0x91
- 38359 a417 90B47F   		.sleb128 -9712
- 38360 a41a 00       		.byte	0x0
- 38361 a41b 31       		.uleb128 0x31
- 38362 a41c 860E0000 		.long	0xe86
- 38363 a420 00000000 		.quad	.LBB3328
- 38363      00000000 
- 38364 a428 00000000 		.quad	.LBE3328
- 38364      00000000 
- 38365 a430 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 981
-
-
- 38366 a431 9606     		.value	0x696
- 38367 a433 4AA40000 		.long	0xa44a
- 38368 a437 32       		.uleb128 0x32
- 38369 a438 A10E0000 		.long	0xea1
- 38370 a43c 03       		.byte	0x3
- 38371 a43d 91       		.byte	0x91
- 38372 a43e A048     		.sleb128 -7136
- 38373 a440 32       		.uleb128 0x32
- 38374 a441 970E0000 		.long	0xe97
- 38375 a445 03       		.byte	0x3
- 38376 a446 91       		.byte	0x91
- 38377 a447 B048     		.sleb128 -7120
- 38378 a449 00       		.byte	0x0
- 38379 a44a 36       		.uleb128 0x36
- 38380 a44b 00000000 		.quad	.LBB3330
- 38380      00000000 
- 38381 a453 00000000 		.quad	.LBE3330
- 38381      00000000 
- 38382 a45b 6AA40000 		.long	0xa46a
- 38383 a45f 34       		.uleb128 0x34
- 38384 a460 3C0C0000 		.long	0xc3c
- 38385 a464 04       		.byte	0x4
- 38386 a465 91       		.byte	0x91
- 38387 a466 80B47F   		.sleb128 -9728
- 38388 a469 00       		.byte	0x0
- 38389 a46a 31       		.uleb128 0x31
- 38390 a46b AC0E0000 		.long	0xeac
- 38391 a46f 00000000 		.quad	.LBB3331
- 38391      00000000 
- 38392 a477 00000000 		.quad	.LBE3331
- 38392      00000000 
- 38393 a47f 02       		.byte	0x2
- 38394 a480 9806     		.value	0x698
- 38395 a482 BBA40000 		.long	0xa4bb
- 38396 a486 32       		.uleb128 0x32
- 38397 a487 BE0E0000 		.long	0xebe
- 38398 a48b 03       		.byte	0x3
- 38399 a48c 91       		.byte	0x91
- 38400 a48d C048     		.sleb128 -7104
- 38401 a48f 35       		.uleb128 0x35
- 38402 a490 CB0E0000 		.long	0xecb
- 38403 a494 00000000 		.quad	.LBB3333
- 38403      00000000 
- 38404 a49c 00000000 		.quad	.LBE3333
- 38404      00000000 
- 38405 a4a4 02       		.byte	0x2
- 38406 a4a5 4905     		.value	0x549
- 38407 a4a7 32       		.uleb128 0x32
- 38408 a4a8 E90E0000 		.long	0xee9
- 38409 a4ac 03       		.byte	0x3
- 38410 a4ad 91       		.byte	0x91
- 38411 a4ae DC48     		.sleb128 -7076
- 38412 a4b0 32       		.uleb128 0x32
- 38413 a4b1 DD0E0000 		.long	0xedd
- 38414 a4b5 03       		.byte	0x3
- 38415 a4b6 91       		.byte	0x91
- 38416 a4b7 E048     		.sleb128 -7072
-
GAS LISTING /tmp/ccjbMjHD.s 			page 982
-
-
- 38417 a4b9 00       		.byte	0x0
- 38418 a4ba 00       		.byte	0x0
- 38419 a4bb 33       		.uleb128 0x33
- 38420 a4bc 00000000 		.quad	.LBB3335
- 38420      00000000 
- 38421 a4c4 00000000 		.quad	.LBE3335
- 38421      00000000 
- 38422 a4cc 34       		.uleb128 0x34
- 38423 a4cd 480C0000 		.long	0xc48
- 38424 a4d1 04       		.byte	0x4
- 38425 a4d2 91       		.byte	0x91
- 38426 a4d3 F0B37F   		.sleb128 -9744
- 38427 a4d6 00       		.byte	0x0
- 38428 a4d7 00       		.byte	0x0
- 38429 a4d8 00       		.byte	0x0
- 38430 a4d9 31       		.uleb128 0x31
- 38431 a4da F60E0000 		.long	0xef6
- 38432 a4de 00000000 		.quad	.LBB3336
- 38432      00000000 
- 38433 a4e6 00000000 		.quad	.LBE3336
- 38433      00000000 
- 38434 a4ee 02       		.byte	0x2
- 38435 a4ef 8807     		.value	0x788
- 38436 a4f1 EEA60000 		.long	0xa6ee
- 38437 a4f5 32       		.uleb128 0x32
- 38438 a4f6 080F0000 		.long	0xf08
- 38439 a4fa 03       		.byte	0x3
- 38440 a4fb 91       		.byte	0x91
- 38441 a4fc F048     		.sleb128 -7056
- 38442 a4fe 33       		.uleb128 0x33
- 38443 a4ff 00000000 		.quad	.LBB3337
- 38443      00000000 
- 38444 a507 00000000 		.quad	.LBE3337
- 38444      00000000 
- 38445 a50f 34       		.uleb128 0x34
- 38446 a510 140F0000 		.long	0xf14
- 38447 a514 04       		.byte	0x4
- 38448 a515 76       		.byte	0x76
- 38449 a516 C0B07F   		.sleb128 -10176
- 38450 a519 31       		.uleb128 0x31
- 38451 a51a 210F0000 		.long	0xf21
- 38452 a51e 00000000 		.quad	.LBB3338
- 38452      00000000 
- 38453 a526 00000000 		.quad	.LBE3338
- 38453      00000000 
- 38454 a52e 02       		.byte	0x2
- 38455 a52f 1F06     		.value	0x61f
- 38456 a531 B6A50000 		.long	0xa5b6
- 38457 a535 32       		.uleb128 0x32
- 38458 a536 330F0000 		.long	0xf33
- 38459 a53a 03       		.byte	0x3
- 38460 a53b 91       		.byte	0x91
- 38461 a53c 8049     		.sleb128 -7040
- 38462 a53e 33       		.uleb128 0x33
- 38463 a53f 00000000 		.quad	.LBB3339
- 38463      00000000 
- 38464 a547 00000000 		.quad	.LBE3339
-
GAS LISTING /tmp/ccjbMjHD.s 			page 983
-
-
- 38464      00000000 
- 38465 a54f 34       		.uleb128 0x34
- 38466 a550 3F0F0000 		.long	0xf3f
- 38467 a554 09       		.byte	0x9
- 38468 a555 03       		.byte	0x3
- 38469 a556 00000000 		.quad	mask.7943
- 38469      00000000 
- 38470 a55e 35       		.uleb128 0x35
- 38471 a55f A00D0000 		.long	0xda0
- 38472 a563 00000000 		.quad	.LBB3340
- 38472      00000000 
- 38473 a56b 00000000 		.quad	.LBE3340
- 38473      00000000 
- 38474 a573 02       		.byte	0x2
- 38475 a574 FE04     		.value	0x4fe
- 38476 a576 32       		.uleb128 0x32
- 38477 a577 BE0D0000 		.long	0xdbe
- 38478 a57b 03       		.byte	0x3
- 38479 a57c 91       		.byte	0x91
- 38480 a57d 9049     		.sleb128 -7024
- 38481 a57f 32       		.uleb128 0x32
- 38482 a580 B20D0000 		.long	0xdb2
- 38483 a584 03       		.byte	0x3
- 38484 a585 91       		.byte	0x91
- 38485 a586 A049     		.sleb128 -7008
- 38486 a588 35       		.uleb128 0x35
- 38487 a589 CB0D0000 		.long	0xdcb
- 38488 a58d 00000000 		.quad	.LBB3342
- 38488      00000000 
- 38489 a595 00000000 		.quad	.LBE3342
- 38489      00000000 
- 38490 a59d 02       		.byte	0x2
- 38491 a59e 7501     		.value	0x175
- 38492 a5a0 32       		.uleb128 0x32
- 38493 a5a1 E90D0000 		.long	0xde9
- 38494 a5a5 03       		.byte	0x3
- 38495 a5a6 91       		.byte	0x91
- 38496 a5a7 B049     		.sleb128 -6992
- 38497 a5a9 32       		.uleb128 0x32
- 38498 a5aa DD0D0000 		.long	0xddd
- 38499 a5ae 03       		.byte	0x3
- 38500 a5af 91       		.byte	0x91
- 38501 a5b0 C049     		.sleb128 -6976
- 38502 a5b2 00       		.byte	0x0
- 38503 a5b3 00       		.byte	0x0
- 38504 a5b4 00       		.byte	0x0
- 38505 a5b5 00       		.byte	0x0
- 38506 a5b6 31       		.uleb128 0x31
- 38507 a5b7 210F0000 		.long	0xf21
- 38508 a5bb 00000000 		.quad	.LBB3344
- 38508      00000000 
- 38509 a5c3 00000000 		.quad	.LBE3344
- 38509      00000000 
- 38510 a5cb 02       		.byte	0x2
- 38511 a5cc 2006     		.value	0x620
- 38512 a5ce 53A60000 		.long	0xa653
- 38513 a5d2 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 984
-
-
- 38514 a5d3 330F0000 		.long	0xf33
- 38515 a5d7 03       		.byte	0x3
- 38516 a5d8 91       		.byte	0x91
- 38517 a5d9 D049     		.sleb128 -6960
- 38518 a5db 33       		.uleb128 0x33
- 38519 a5dc 00000000 		.quad	.LBB3345
- 38519      00000000 
- 38520 a5e4 00000000 		.quad	.LBE3345
- 38520      00000000 
- 38521 a5ec 34       		.uleb128 0x34
- 38522 a5ed 3F0F0000 		.long	0xf3f
- 38523 a5f1 09       		.byte	0x9
- 38524 a5f2 03       		.byte	0x3
- 38525 a5f3 00000000 		.quad	mask.7943
- 38525      00000000 
- 38526 a5fb 35       		.uleb128 0x35
- 38527 a5fc A00D0000 		.long	0xda0
- 38528 a600 00000000 		.quad	.LBB3346
- 38528      00000000 
- 38529 a608 00000000 		.quad	.LBE3346
- 38529      00000000 
- 38530 a610 02       		.byte	0x2
- 38531 a611 FE04     		.value	0x4fe
- 38532 a613 32       		.uleb128 0x32
- 38533 a614 BE0D0000 		.long	0xdbe
- 38534 a618 03       		.byte	0x3
- 38535 a619 91       		.byte	0x91
- 38536 a61a E049     		.sleb128 -6944
- 38537 a61c 32       		.uleb128 0x32
- 38538 a61d B20D0000 		.long	0xdb2
- 38539 a621 03       		.byte	0x3
- 38540 a622 91       		.byte	0x91
- 38541 a623 F049     		.sleb128 -6928
- 38542 a625 35       		.uleb128 0x35
- 38543 a626 CB0D0000 		.long	0xdcb
- 38544 a62a 00000000 		.quad	.LBB3348
- 38544      00000000 
- 38545 a632 00000000 		.quad	.LBE3348
- 38545      00000000 
- 38546 a63a 02       		.byte	0x2
- 38547 a63b 7501     		.value	0x175
- 38548 a63d 32       		.uleb128 0x32
- 38549 a63e E90D0000 		.long	0xde9
- 38550 a642 03       		.byte	0x3
- 38551 a643 91       		.byte	0x91
- 38552 a644 804A     		.sleb128 -6912
- 38553 a646 32       		.uleb128 0x32
- 38554 a647 DD0D0000 		.long	0xddd
- 38555 a64b 03       		.byte	0x3
- 38556 a64c 91       		.byte	0x91
- 38557 a64d 904A     		.sleb128 -6896
- 38558 a64f 00       		.byte	0x0
- 38559 a650 00       		.byte	0x0
- 38560 a651 00       		.byte	0x0
- 38561 a652 00       		.byte	0x0
- 38562 a653 35       		.uleb128 0x35
- 38563 a654 210F0000 		.long	0xf21
-
GAS LISTING /tmp/ccjbMjHD.s 			page 985
-
-
- 38564 a658 00000000 		.quad	.LBB3350
- 38564      00000000 
- 38565 a660 00000000 		.quad	.LBE3350
- 38565      00000000 
- 38566 a668 02       		.byte	0x2
- 38567 a669 2106     		.value	0x621
- 38568 a66b 32       		.uleb128 0x32
- 38569 a66c 330F0000 		.long	0xf33
- 38570 a670 03       		.byte	0x3
- 38571 a671 91       		.byte	0x91
- 38572 a672 A04A     		.sleb128 -6880
- 38573 a674 33       		.uleb128 0x33
- 38574 a675 00000000 		.quad	.LBB3351
- 38574      00000000 
- 38575 a67d 00000000 		.quad	.LBE3351
- 38575      00000000 
- 38576 a685 34       		.uleb128 0x34
- 38577 a686 3F0F0000 		.long	0xf3f
- 38578 a68a 09       		.byte	0x9
- 38579 a68b 03       		.byte	0x3
- 38580 a68c 00000000 		.quad	mask.7943
- 38580      00000000 
- 38581 a694 35       		.uleb128 0x35
- 38582 a695 A00D0000 		.long	0xda0
- 38583 a699 00000000 		.quad	.LBB3352
- 38583      00000000 
- 38584 a6a1 00000000 		.quad	.LBE3352
- 38584      00000000 
- 38585 a6a9 02       		.byte	0x2
- 38586 a6aa FE04     		.value	0x4fe
- 38587 a6ac 32       		.uleb128 0x32
- 38588 a6ad BE0D0000 		.long	0xdbe
- 38589 a6b1 03       		.byte	0x3
- 38590 a6b2 91       		.byte	0x91
- 38591 a6b3 B04A     		.sleb128 -6864
- 38592 a6b5 32       		.uleb128 0x32
- 38593 a6b6 B20D0000 		.long	0xdb2
- 38594 a6ba 03       		.byte	0x3
- 38595 a6bb 91       		.byte	0x91
- 38596 a6bc C04A     		.sleb128 -6848
- 38597 a6be 35       		.uleb128 0x35
- 38598 a6bf CB0D0000 		.long	0xdcb
- 38599 a6c3 00000000 		.quad	.LBB3354
- 38599      00000000 
- 38600 a6cb 00000000 		.quad	.LBE3354
- 38600      00000000 
- 38601 a6d3 02       		.byte	0x2
- 38602 a6d4 7501     		.value	0x175
- 38603 a6d6 32       		.uleb128 0x32
- 38604 a6d7 E90D0000 		.long	0xde9
- 38605 a6db 03       		.byte	0x3
- 38606 a6dc 91       		.byte	0x91
- 38607 a6dd D04A     		.sleb128 -6832
- 38608 a6df 32       		.uleb128 0x32
- 38609 a6e0 DD0D0000 		.long	0xddd
- 38610 a6e4 03       		.byte	0x3
- 38611 a6e5 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 986
-
-
- 38612 a6e6 E04A     		.sleb128 -6816
- 38613 a6e8 00       		.byte	0x0
- 38614 a6e9 00       		.byte	0x0
- 38615 a6ea 00       		.byte	0x0
- 38616 a6eb 00       		.byte	0x0
- 38617 a6ec 00       		.byte	0x0
- 38618 a6ed 00       		.byte	0x0
- 38619 a6ee 31       		.uleb128 0x31
- 38620 a6ef 860E0000 		.long	0xe86
- 38621 a6f3 00000000 		.quad	.LBB3356
- 38621      00000000 
- 38622 a6fb 00000000 		.quad	.LBE3356
- 38622      00000000 
- 38623 a703 02       		.byte	0x2
- 38624 a704 8807     		.value	0x788
- 38625 a706 1DA70000 		.long	0xa71d
- 38626 a70a 32       		.uleb128 0x32
- 38627 a70b A10E0000 		.long	0xea1
- 38628 a70f 03       		.byte	0x3
- 38629 a710 91       		.byte	0x91
- 38630 a711 F04A     		.sleb128 -6800
- 38631 a713 32       		.uleb128 0x32
- 38632 a714 970E0000 		.long	0xe97
- 38633 a718 03       		.byte	0x3
- 38634 a719 91       		.byte	0x91
- 38635 a71a 804B     		.sleb128 -6784
- 38636 a71c 00       		.byte	0x0
- 38637 a71d 31       		.uleb128 0x31
- 38638 a71e 8F940000 		.long	0x948f
- 38639 a722 00000000 		.quad	.LBB3358
- 38639      00000000 
- 38640 a72a 00000000 		.quad	.LBE3358
- 38640      00000000 
- 38641 a732 02       		.byte	0x2
- 38642 a733 8907     		.value	0x789
- 38643 a735 AFA70000 		.long	0xa7af
- 38644 a739 32       		.uleb128 0x32
- 38645 a73a A1940000 		.long	0x94a1
- 38646 a73e 03       		.byte	0x3
- 38647 a73f 91       		.byte	0x91
- 38648 a740 904B     		.sleb128 -6768
- 38649 a742 33       		.uleb128 0x33
- 38650 a743 00000000 		.quad	.LBB3359
- 38650      00000000 
- 38651 a74b 00000000 		.quad	.LBE3359
- 38651      00000000 
- 38652 a753 34       		.uleb128 0x34
- 38653 a754 AD940000 		.long	0x94ad
- 38654 a758 04       		.byte	0x4
- 38655 a759 91       		.byte	0x91
- 38656 a75a C0B47F   		.sleb128 -9664
- 38657 a75d 34       		.uleb128 0x34
- 38658 a75e B7940000 		.long	0x94b7
- 38659 a762 03       		.byte	0x3
- 38660 a763 91       		.byte	0x91
- 38661 a764 A44B     		.sleb128 -6748
- 38662 a766 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 987
-
-
- 38663 a767 BE560000 		.long	0x56be
- 38664 a76b 00000000 		.quad	.LBB3360
- 38664      00000000 
- 38665 a773 00000000 		.quad	.LBE3360
- 38665      00000000 
- 38666 a77b 02       		.byte	0x2
- 38667 a77c 7906     		.value	0x679
- 38668 a77e 32       		.uleb128 0x32
- 38669 a77f D0560000 		.long	0x56d0
- 38670 a783 03       		.byte	0x3
- 38671 a784 91       		.byte	0x91
- 38672 a785 A84B     		.sleb128 -6744
- 38673 a787 33       		.uleb128 0x33
- 38674 a788 00000000 		.quad	.LBB3361
- 38674      00000000 
- 38675 a790 00000000 		.quad	.LBE3361
- 38675      00000000 
- 38676 a798 34       		.uleb128 0x34
- 38677 a799 DA560000 		.long	0x56da
- 38678 a79d 04       		.byte	0x4
- 38679 a79e 91       		.byte	0x91
- 38680 a79f B0B47F   		.sleb128 -9680
- 38681 a7a2 34       		.uleb128 0x34
- 38682 a7a3 E6560000 		.long	0x56e6
- 38683 a7a7 03       		.byte	0x3
- 38684 a7a8 91       		.byte	0x91
- 38685 a7a9 AC4B     		.sleb128 -6740
- 38686 a7ab 00       		.byte	0x0
- 38687 a7ac 00       		.byte	0x0
- 38688 a7ad 00       		.byte	0x0
- 38689 a7ae 00       		.byte	0x0
- 38690 a7af 31       		.uleb128 0x31
- 38691 a7b0 F60E0000 		.long	0xef6
- 38692 a7b4 00000000 		.quad	.LBB3362
- 38692      00000000 
- 38693 a7bc 00000000 		.quad	.LBE3362
- 38693      00000000 
- 38694 a7c4 02       		.byte	0x2
- 38695 a7c5 8907     		.value	0x789
- 38696 a7c7 C4A90000 		.long	0xa9c4
- 38697 a7cb 32       		.uleb128 0x32
- 38698 a7cc 080F0000 		.long	0xf08
- 38699 a7d0 03       		.byte	0x3
- 38700 a7d1 91       		.byte	0x91
- 38701 a7d2 B04B     		.sleb128 -6736
- 38702 a7d4 33       		.uleb128 0x33
- 38703 a7d5 00000000 		.quad	.LBB3363
- 38703      00000000 
- 38704 a7dd 00000000 		.quad	.LBE3363
- 38704      00000000 
- 38705 a7e5 34       		.uleb128 0x34
- 38706 a7e6 140F0000 		.long	0xf14
- 38707 a7ea 04       		.byte	0x4
- 38708 a7eb 76       		.byte	0x76
- 38709 a7ec D0B07F   		.sleb128 -10160
- 38710 a7ef 31       		.uleb128 0x31
- 38711 a7f0 210F0000 		.long	0xf21
-
GAS LISTING /tmp/ccjbMjHD.s 			page 988
-
-
- 38712 a7f4 00000000 		.quad	.LBB3364
- 38712      00000000 
- 38713 a7fc 00000000 		.quad	.LBE3364
- 38713      00000000 
- 38714 a804 02       		.byte	0x2
- 38715 a805 1F06     		.value	0x61f
- 38716 a807 8CA80000 		.long	0xa88c
- 38717 a80b 32       		.uleb128 0x32
- 38718 a80c 330F0000 		.long	0xf33
- 38719 a810 03       		.byte	0x3
- 38720 a811 91       		.byte	0x91
- 38721 a812 C04B     		.sleb128 -6720
- 38722 a814 33       		.uleb128 0x33
- 38723 a815 00000000 		.quad	.LBB3365
- 38723      00000000 
- 38724 a81d 00000000 		.quad	.LBE3365
- 38724      00000000 
- 38725 a825 34       		.uleb128 0x34
- 38726 a826 3F0F0000 		.long	0xf3f
- 38727 a82a 09       		.byte	0x9
- 38728 a82b 03       		.byte	0x3
- 38729 a82c 00000000 		.quad	mask.7943
- 38729      00000000 
- 38730 a834 35       		.uleb128 0x35
- 38731 a835 A00D0000 		.long	0xda0
- 38732 a839 00000000 		.quad	.LBB3366
- 38732      00000000 
- 38733 a841 00000000 		.quad	.LBE3366
- 38733      00000000 
- 38734 a849 02       		.byte	0x2
- 38735 a84a FE04     		.value	0x4fe
- 38736 a84c 32       		.uleb128 0x32
- 38737 a84d BE0D0000 		.long	0xdbe
- 38738 a851 03       		.byte	0x3
- 38739 a852 91       		.byte	0x91
- 38740 a853 D04B     		.sleb128 -6704
- 38741 a855 32       		.uleb128 0x32
- 38742 a856 B20D0000 		.long	0xdb2
- 38743 a85a 03       		.byte	0x3
- 38744 a85b 91       		.byte	0x91
- 38745 a85c E04B     		.sleb128 -6688
- 38746 a85e 35       		.uleb128 0x35
- 38747 a85f CB0D0000 		.long	0xdcb
- 38748 a863 00000000 		.quad	.LBB3368
- 38748      00000000 
- 38749 a86b 00000000 		.quad	.LBE3368
- 38749      00000000 
- 38750 a873 02       		.byte	0x2
- 38751 a874 7501     		.value	0x175
- 38752 a876 32       		.uleb128 0x32
- 38753 a877 E90D0000 		.long	0xde9
- 38754 a87b 03       		.byte	0x3
- 38755 a87c 91       		.byte	0x91
- 38756 a87d F04B     		.sleb128 -6672
- 38757 a87f 32       		.uleb128 0x32
- 38758 a880 DD0D0000 		.long	0xddd
- 38759 a884 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 989
-
-
- 38760 a885 91       		.byte	0x91
- 38761 a886 804C     		.sleb128 -6656
- 38762 a888 00       		.byte	0x0
- 38763 a889 00       		.byte	0x0
- 38764 a88a 00       		.byte	0x0
- 38765 a88b 00       		.byte	0x0
- 38766 a88c 31       		.uleb128 0x31
- 38767 a88d 210F0000 		.long	0xf21
- 38768 a891 00000000 		.quad	.LBB3370
- 38768      00000000 
- 38769 a899 00000000 		.quad	.LBE3370
- 38769      00000000 
- 38770 a8a1 02       		.byte	0x2
- 38771 a8a2 2006     		.value	0x620
- 38772 a8a4 29A90000 		.long	0xa929
- 38773 a8a8 32       		.uleb128 0x32
- 38774 a8a9 330F0000 		.long	0xf33
- 38775 a8ad 03       		.byte	0x3
- 38776 a8ae 91       		.byte	0x91
- 38777 a8af 904C     		.sleb128 -6640
- 38778 a8b1 33       		.uleb128 0x33
- 38779 a8b2 00000000 		.quad	.LBB3371
- 38779      00000000 
- 38780 a8ba 00000000 		.quad	.LBE3371
- 38780      00000000 
- 38781 a8c2 34       		.uleb128 0x34
- 38782 a8c3 3F0F0000 		.long	0xf3f
- 38783 a8c7 09       		.byte	0x9
- 38784 a8c8 03       		.byte	0x3
- 38785 a8c9 00000000 		.quad	mask.7943
- 38785      00000000 
- 38786 a8d1 35       		.uleb128 0x35
- 38787 a8d2 A00D0000 		.long	0xda0
- 38788 a8d6 00000000 		.quad	.LBB3372
- 38788      00000000 
- 38789 a8de 00000000 		.quad	.LBE3372
- 38789      00000000 
- 38790 a8e6 02       		.byte	0x2
- 38791 a8e7 FE04     		.value	0x4fe
- 38792 a8e9 32       		.uleb128 0x32
- 38793 a8ea BE0D0000 		.long	0xdbe
- 38794 a8ee 03       		.byte	0x3
- 38795 a8ef 91       		.byte	0x91
- 38796 a8f0 A04C     		.sleb128 -6624
- 38797 a8f2 32       		.uleb128 0x32
- 38798 a8f3 B20D0000 		.long	0xdb2
- 38799 a8f7 03       		.byte	0x3
- 38800 a8f8 91       		.byte	0x91
- 38801 a8f9 B04C     		.sleb128 -6608
- 38802 a8fb 35       		.uleb128 0x35
- 38803 a8fc CB0D0000 		.long	0xdcb
- 38804 a900 00000000 		.quad	.LBB3374
- 38804      00000000 
- 38805 a908 00000000 		.quad	.LBE3374
- 38805      00000000 
- 38806 a910 02       		.byte	0x2
- 38807 a911 7501     		.value	0x175
-
GAS LISTING /tmp/ccjbMjHD.s 			page 990
-
-
- 38808 a913 32       		.uleb128 0x32
- 38809 a914 E90D0000 		.long	0xde9
- 38810 a918 03       		.byte	0x3
- 38811 a919 91       		.byte	0x91
- 38812 a91a C04C     		.sleb128 -6592
- 38813 a91c 32       		.uleb128 0x32
- 38814 a91d DD0D0000 		.long	0xddd
- 38815 a921 03       		.byte	0x3
- 38816 a922 91       		.byte	0x91
- 38817 a923 D04C     		.sleb128 -6576
- 38818 a925 00       		.byte	0x0
- 38819 a926 00       		.byte	0x0
- 38820 a927 00       		.byte	0x0
- 38821 a928 00       		.byte	0x0
- 38822 a929 35       		.uleb128 0x35
- 38823 a92a 210F0000 		.long	0xf21
- 38824 a92e 00000000 		.quad	.LBB3376
- 38824      00000000 
- 38825 a936 00000000 		.quad	.LBE3376
- 38825      00000000 
- 38826 a93e 02       		.byte	0x2
- 38827 a93f 2106     		.value	0x621
- 38828 a941 32       		.uleb128 0x32
- 38829 a942 330F0000 		.long	0xf33
- 38830 a946 03       		.byte	0x3
- 38831 a947 91       		.byte	0x91
- 38832 a948 E04C     		.sleb128 -6560
- 38833 a94a 33       		.uleb128 0x33
- 38834 a94b 00000000 		.quad	.LBB3377
- 38834      00000000 
- 38835 a953 00000000 		.quad	.LBE3377
- 38835      00000000 
- 38836 a95b 34       		.uleb128 0x34
- 38837 a95c 3F0F0000 		.long	0xf3f
- 38838 a960 09       		.byte	0x9
- 38839 a961 03       		.byte	0x3
- 38840 a962 00000000 		.quad	mask.7943
- 38840      00000000 
- 38841 a96a 35       		.uleb128 0x35
- 38842 a96b A00D0000 		.long	0xda0
- 38843 a96f 00000000 		.quad	.LBB3378
- 38843      00000000 
- 38844 a977 00000000 		.quad	.LBE3378
- 38844      00000000 
- 38845 a97f 02       		.byte	0x2
- 38846 a980 FE04     		.value	0x4fe
- 38847 a982 32       		.uleb128 0x32
- 38848 a983 BE0D0000 		.long	0xdbe
- 38849 a987 03       		.byte	0x3
- 38850 a988 91       		.byte	0x91
- 38851 a989 F04C     		.sleb128 -6544
- 38852 a98b 32       		.uleb128 0x32
- 38853 a98c B20D0000 		.long	0xdb2
- 38854 a990 03       		.byte	0x3
- 38855 a991 91       		.byte	0x91
- 38856 a992 804D     		.sleb128 -6528
- 38857 a994 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 991
-
-
- 38858 a995 CB0D0000 		.long	0xdcb
- 38859 a999 00000000 		.quad	.LBB3380
- 38859      00000000 
- 38860 a9a1 00000000 		.quad	.LBE3380
- 38860      00000000 
- 38861 a9a9 02       		.byte	0x2
- 38862 a9aa 7501     		.value	0x175
- 38863 a9ac 32       		.uleb128 0x32
- 38864 a9ad E90D0000 		.long	0xde9
- 38865 a9b1 03       		.byte	0x3
- 38866 a9b2 91       		.byte	0x91
- 38867 a9b3 904D     		.sleb128 -6512
- 38868 a9b5 32       		.uleb128 0x32
- 38869 a9b6 DD0D0000 		.long	0xddd
- 38870 a9ba 03       		.byte	0x3
- 38871 a9bb 91       		.byte	0x91
- 38872 a9bc A04D     		.sleb128 -6496
- 38873 a9be 00       		.byte	0x0
- 38874 a9bf 00       		.byte	0x0
- 38875 a9c0 00       		.byte	0x0
- 38876 a9c1 00       		.byte	0x0
- 38877 a9c2 00       		.byte	0x0
- 38878 a9c3 00       		.byte	0x0
- 38879 a9c4 31       		.uleb128 0x31
- 38880 a9c5 860E0000 		.long	0xe86
- 38881 a9c9 00000000 		.quad	.LBB3382
- 38881      00000000 
- 38882 a9d1 00000000 		.quad	.LBE3382
- 38882      00000000 
- 38883 a9d9 02       		.byte	0x2
- 38884 a9da 8907     		.value	0x789
- 38885 a9dc F3A90000 		.long	0xa9f3
- 38886 a9e0 32       		.uleb128 0x32
- 38887 a9e1 A10E0000 		.long	0xea1
- 38888 a9e5 03       		.byte	0x3
- 38889 a9e6 91       		.byte	0x91
- 38890 a9e7 B04D     		.sleb128 -6480
- 38891 a9e9 32       		.uleb128 0x32
- 38892 a9ea 970E0000 		.long	0xe97
- 38893 a9ee 03       		.byte	0x3
- 38894 a9ef 91       		.byte	0x91
- 38895 a9f0 C04D     		.sleb128 -6464
- 38896 a9f2 00       		.byte	0x0
- 38897 a9f3 31       		.uleb128 0x31
- 38898 a9f4 D50B0000 		.long	0xbd5
- 38899 a9f8 00000000 		.quad	.LBB3384
- 38899      00000000 
- 38900 aa00 00000000 		.quad	.LBE3384
- 38900      00000000 
- 38901 aa08 02       		.byte	0x2
- 38902 aa09 8A07     		.value	0x78a
- 38903 aa0b D6AE0000 		.long	0xaed6
- 38904 aa0f 32       		.uleb128 0x32
- 38905 aa10 F30B0000 		.long	0xbf3
- 38906 aa14 03       		.byte	0x3
- 38907 aa15 91       		.byte	0x91
- 38908 aa16 DC4D     		.sleb128 -6436
-
GAS LISTING /tmp/ccjbMjHD.s 			page 992
-
-
- 38909 aa18 32       		.uleb128 0x32
- 38910 aa19 E70B0000 		.long	0xbe7
- 38911 aa1d 03       		.byte	0x3
- 38912 aa1e 91       		.byte	0x91
- 38913 aa1f E04D     		.sleb128 -6432
- 38914 aa21 33       		.uleb128 0x33
- 38915 aa22 00000000 		.quad	.LBB3385
- 38915      00000000 
- 38916 aa2a 00000000 		.quad	.LBE3385
- 38916      00000000 
- 38917 aa32 34       		.uleb128 0x34
- 38918 aa33 FF0B0000 		.long	0xbff
- 38919 aa37 04       		.byte	0x4
- 38920 aa38 76       		.byte	0x76
- 38921 aa39 F0B07F   		.sleb128 -10128
- 38922 aa3c 34       		.uleb128 0x34
- 38923 aa3d 0B0C0000 		.long	0xc0b
- 38924 aa41 04       		.byte	0x4
- 38925 aa42 76       		.byte	0x76
- 38926 aa43 E0B07F   		.sleb128 -10144
- 38927 aa46 31       		.uleb128 0x31
- 38928 aa47 540C0000 		.long	0xc54
- 38929 aa4b 00000000 		.quad	.LBB3386
- 38929      00000000 
- 38930 aa53 00000000 		.quad	.LBE3386
- 38930      00000000 
- 38931 aa5b 02       		.byte	0x2
- 38932 aa5c 9106     		.value	0x691
- 38933 aa5e B2AA0000 		.long	0xaab2
- 38934 aa62 32       		.uleb128 0x32
- 38935 aa63 7E0C0000 		.long	0xc7e
- 38936 aa67 03       		.byte	0x3
- 38937 aa68 91       		.byte	0x91
- 38938 aa69 F84D     		.sleb128 -6408
- 38939 aa6b 32       		.uleb128 0x32
- 38940 aa6c 720C0000 		.long	0xc72
- 38941 aa70 03       		.byte	0x3
- 38942 aa71 91       		.byte	0x91
- 38943 aa72 FC4D     		.sleb128 -6404
- 38944 aa74 32       		.uleb128 0x32
- 38945 aa75 660C0000 		.long	0xc66
- 38946 aa79 03       		.byte	0x3
- 38947 aa7a 91       		.byte	0x91
- 38948 aa7b 804E     		.sleb128 -6400
- 38949 aa7d 35       		.uleb128 0x35
- 38950 aa7e 8B0C0000 		.long	0xc8b
- 38951 aa82 00000000 		.quad	.LBB3388
- 38951      00000000 
- 38952 aa8a 00000000 		.quad	.LBE3388
- 38952      00000000 
- 38953 aa92 02       		.byte	0x2
- 38954 aa93 0702     		.value	0x207
- 38955 aa95 32       		.uleb128 0x32
- 38956 aa96 B40C0000 		.long	0xcb4
- 38957 aa9a 03       		.byte	0x3
- 38958 aa9b 91       		.byte	0x91
- 38959 aa9c 984E     		.sleb128 -6376
-
GAS LISTING /tmp/ccjbMjHD.s 			page 993
-
-
- 38960 aa9e 32       		.uleb128 0x32
- 38961 aa9f A90C0000 		.long	0xca9
- 38962 aaa3 03       		.byte	0x3
- 38963 aaa4 91       		.byte	0x91
- 38964 aaa5 9C4E     		.sleb128 -6372
- 38965 aaa7 32       		.uleb128 0x32
- 38966 aaa8 9D0C0000 		.long	0xc9d
- 38967 aaac 03       		.byte	0x3
- 38968 aaad 91       		.byte	0x91
- 38969 aaae A04E     		.sleb128 -6368
- 38970 aab0 00       		.byte	0x0
- 38971 aab1 00       		.byte	0x0
- 38972 aab2 31       		.uleb128 0x31
- 38973 aab3 C10C0000 		.long	0xcc1
- 38974 aab7 00000000 		.quad	.LBB3390
- 38974      00000000 
- 38975 aabf 00000000 		.quad	.LBE3390
- 38975      00000000 
- 38976 aac7 02       		.byte	0x2
- 38977 aac8 9206     		.value	0x692
- 38978 aaca 3BAD0000 		.long	0xad3b
- 38979 aace 32       		.uleb128 0x32
- 38980 aacf D30C0000 		.long	0xcd3
- 38981 aad3 03       		.byte	0x3
- 38982 aad4 91       		.byte	0x91
- 38983 aad5 B04E     		.sleb128 -6352
- 38984 aad7 35       		.uleb128 0x35
- 38985 aad8 E00C0000 		.long	0xce0
- 38986 aadc 00000000 		.quad	.LBB3392
- 38986      00000000 
- 38987 aae4 00000000 		.quad	.LBE3392
- 38987      00000000 
- 38988 aaec 02       		.byte	0x2
- 38989 aaed 7D03     		.value	0x37d
- 38990 aaef 32       		.uleb128 0x32
- 38991 aaf0 FE0C0000 		.long	0xcfe
- 38992 aaf4 03       		.byte	0x3
- 38993 aaf5 91       		.byte	0x91
- 38994 aaf6 C84E     		.sleb128 -6328
- 38995 aaf8 32       		.uleb128 0x32
- 38996 aaf9 F20C0000 		.long	0xcf2
- 38997 aafd 03       		.byte	0x3
- 38998 aafe 91       		.byte	0x91
- 38999 aaff D04E     		.sleb128 -6320
- 39000 ab01 33       		.uleb128 0x33
- 39001 ab02 00000000 		.quad	.LBB3393
- 39001      00000000 
- 39002 ab0a 00000000 		.quad	.LBE3393
- 39002      00000000 
- 39003 ab12 34       		.uleb128 0x34
- 39004 ab13 0A0D0000 		.long	0xd0a
- 39005 ab17 03       		.byte	0x3
- 39006 ab18 91       		.byte	0x91
- 39007 ab19 A04F     		.sleb128 -6240
- 39008 ab1b 34       		.uleb128 0x34
- 39009 ab1c 150D0000 		.long	0xd15
- 39010 ab20 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 994
-
-
- 39011 ab21 91       		.byte	0x91
- 39012 ab22 904F     		.sleb128 -6256
- 39013 ab24 34       		.uleb128 0x34
- 39014 ab25 200D0000 		.long	0xd20
- 39015 ab29 03       		.byte	0x3
- 39016 ab2a 91       		.byte	0x91
- 39017 ab2b 804F     		.sleb128 -6272
- 39018 ab2d 34       		.uleb128 0x34
- 39019 ab2e 2C0D0000 		.long	0xd2c
- 39020 ab32 03       		.byte	0x3
- 39021 ab33 91       		.byte	0x91
- 39022 ab34 F04E     		.sleb128 -6288
- 39023 ab36 34       		.uleb128 0x34
- 39024 ab37 380D0000 		.long	0xd38
- 39025 ab3b 03       		.byte	0x3
- 39026 ab3c 91       		.byte	0x91
- 39027 ab3d EC4E     		.sleb128 -6292
- 39028 ab3f 31       		.uleb128 0x31
- 39029 ab40 4F0D0000 		.long	0xd4f
- 39030 ab44 00000000 		.quad	.LBB3394
- 39030      00000000 
- 39031 ab4c 00000000 		.quad	.LBE3394
- 39031      00000000 
- 39032 ab54 02       		.byte	0x2
- 39033 ab55 5603     		.value	0x356
- 39034 ab57 6EAB0000 		.long	0xab6e
- 39035 ab5b 32       		.uleb128 0x32
- 39036 ab5c 6A0D0000 		.long	0xd6a
- 39037 ab60 03       		.byte	0x3
- 39038 ab61 91       		.byte	0x91
- 39039 ab62 B04F     		.sleb128 -6224
- 39040 ab64 32       		.uleb128 0x32
- 39041 ab65 600D0000 		.long	0xd60
- 39042 ab69 03       		.byte	0x3
- 39043 ab6a 91       		.byte	0x91
- 39044 ab6b C04F     		.sleb128 -6208
- 39045 ab6d 00       		.byte	0x0
- 39046 ab6e 31       		.uleb128 0x31
- 39047 ab6f 750D0000 		.long	0xd75
- 39048 ab73 00000000 		.quad	.LBB3396
- 39048      00000000 
- 39049 ab7b 00000000 		.quad	.LBE3396
- 39049      00000000 
- 39050 ab83 02       		.byte	0x2
- 39051 ab84 5903     		.value	0x359
- 39052 ab86 9DAB0000 		.long	0xab9d
- 39053 ab8a 32       		.uleb128 0x32
- 39054 ab8b 930D0000 		.long	0xd93
- 39055 ab8f 03       		.byte	0x3
- 39056 ab90 91       		.byte	0x91
- 39057 ab91 DC4F     		.sleb128 -6180
- 39058 ab93 32       		.uleb128 0x32
- 39059 ab94 870D0000 		.long	0xd87
- 39060 ab98 03       		.byte	0x3
- 39061 ab99 91       		.byte	0x91
- 39062 ab9a E04F     		.sleb128 -6176
- 39063 ab9c 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 995
-
-
- 39064 ab9d 31       		.uleb128 0x31
- 39065 ab9e 4F0D0000 		.long	0xd4f
- 39066 aba2 00000000 		.quad	.LBB3398
- 39066      00000000 
- 39067 abaa 00000000 		.quad	.LBE3398
- 39067      00000000 
- 39068 abb2 02       		.byte	0x2
- 39069 abb3 5B03     		.value	0x35b
- 39070 abb5 CCAB0000 		.long	0xabcc
- 39071 abb9 32       		.uleb128 0x32
- 39072 abba 6A0D0000 		.long	0xd6a
- 39073 abbe 03       		.byte	0x3
- 39074 abbf 91       		.byte	0x91
- 39075 abc0 F04F     		.sleb128 -6160
- 39076 abc2 32       		.uleb128 0x32
- 39077 abc3 600D0000 		.long	0xd60
- 39078 abc7 03       		.byte	0x3
- 39079 abc8 91       		.byte	0x91
- 39080 abc9 8050     		.sleb128 -6144
- 39081 abcb 00       		.byte	0x0
- 39082 abcc 31       		.uleb128 0x31
- 39083 abcd A00D0000 		.long	0xda0
- 39084 abd1 00000000 		.quad	.LBB3400
- 39084      00000000 
- 39085 abd9 00000000 		.quad	.LBE3400
- 39085      00000000 
- 39086 abe1 02       		.byte	0x2
- 39087 abe2 6403     		.value	0x364
- 39088 abe4 26AC0000 		.long	0xac26
- 39089 abe8 32       		.uleb128 0x32
- 39090 abe9 BE0D0000 		.long	0xdbe
- 39091 abed 03       		.byte	0x3
- 39092 abee 91       		.byte	0x91
- 39093 abef 9050     		.sleb128 -6128
- 39094 abf1 32       		.uleb128 0x32
- 39095 abf2 B20D0000 		.long	0xdb2
- 39096 abf6 03       		.byte	0x3
- 39097 abf7 91       		.byte	0x91
- 39098 abf8 A050     		.sleb128 -6112
- 39099 abfa 35       		.uleb128 0x35
- 39100 abfb CB0D0000 		.long	0xdcb
- 39101 abff 00000000 		.quad	.LBB3402
- 39101      00000000 
- 39102 ac07 00000000 		.quad	.LBE3402
- 39102      00000000 
- 39103 ac0f 02       		.byte	0x2
- 39104 ac10 7501     		.value	0x175
- 39105 ac12 32       		.uleb128 0x32
- 39106 ac13 E90D0000 		.long	0xde9
- 39107 ac17 03       		.byte	0x3
- 39108 ac18 91       		.byte	0x91
- 39109 ac19 B050     		.sleb128 -6096
- 39110 ac1b 32       		.uleb128 0x32
- 39111 ac1c DD0D0000 		.long	0xddd
- 39112 ac20 03       		.byte	0x3
- 39113 ac21 91       		.byte	0x91
- 39114 ac22 C050     		.sleb128 -6080
-
GAS LISTING /tmp/ccjbMjHD.s 			page 996
-
-
- 39115 ac24 00       		.byte	0x0
- 39116 ac25 00       		.byte	0x0
- 39117 ac26 31       		.uleb128 0x31
- 39118 ac27 FB0D0000 		.long	0xdfb
- 39119 ac2b 00000000 		.quad	.LBB3404
- 39119      00000000 
- 39120 ac33 00000000 		.quad	.LBE3404
- 39120      00000000 
- 39121 ac3b 02       		.byte	0x2
- 39122 ac3c 6603     		.value	0x366
- 39123 ac3e 55AC0000 		.long	0xac55
- 39124 ac42 32       		.uleb128 0x32
- 39125 ac43 160E0000 		.long	0xe16
- 39126 ac47 03       		.byte	0x3
- 39127 ac48 91       		.byte	0x91
- 39128 ac49 D050     		.sleb128 -6064
- 39129 ac4b 32       		.uleb128 0x32
- 39130 ac4c 0C0E0000 		.long	0xe0c
- 39131 ac50 03       		.byte	0x3
- 39132 ac51 91       		.byte	0x91
- 39133 ac52 E050     		.sleb128 -6048
- 39134 ac54 00       		.byte	0x0
- 39135 ac55 31       		.uleb128 0x31
- 39136 ac56 A00D0000 		.long	0xda0
- 39137 ac5a 00000000 		.quad	.LBB3406
- 39137      00000000 
- 39138 ac62 00000000 		.quad	.LBE3406
- 39138      00000000 
- 39139 ac6a 02       		.byte	0x2
- 39140 ac6b 6803     		.value	0x368
- 39141 ac6d AFAC0000 		.long	0xacaf
- 39142 ac71 32       		.uleb128 0x32
- 39143 ac72 BE0D0000 		.long	0xdbe
- 39144 ac76 03       		.byte	0x3
- 39145 ac77 91       		.byte	0x91
- 39146 ac78 F050     		.sleb128 -6032
- 39147 ac7a 32       		.uleb128 0x32
- 39148 ac7b B20D0000 		.long	0xdb2
- 39149 ac7f 03       		.byte	0x3
- 39150 ac80 91       		.byte	0x91
- 39151 ac81 8051     		.sleb128 -6016
- 39152 ac83 35       		.uleb128 0x35
- 39153 ac84 CB0D0000 		.long	0xdcb
- 39154 ac88 00000000 		.quad	.LBB3408
- 39154      00000000 
- 39155 ac90 00000000 		.quad	.LBE3408
- 39155      00000000 
- 39156 ac98 02       		.byte	0x2
- 39157 ac99 7501     		.value	0x175
- 39158 ac9b 32       		.uleb128 0x32
- 39159 ac9c E90D0000 		.long	0xde9
- 39160 aca0 03       		.byte	0x3
- 39161 aca1 91       		.byte	0x91
- 39162 aca2 9051     		.sleb128 -6000
- 39163 aca4 32       		.uleb128 0x32
- 39164 aca5 DD0D0000 		.long	0xddd
- 39165 aca9 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 997
-
-
- 39166 acaa 91       		.byte	0x91
- 39167 acab A051     		.sleb128 -5984
- 39168 acad 00       		.byte	0x0
- 39169 acae 00       		.byte	0x0
- 39170 acaf 31       		.uleb128 0x31
- 39171 acb0 FB0D0000 		.long	0xdfb
- 39172 acb4 00000000 		.quad	.LBB3410
- 39172      00000000 
- 39173 acbc 00000000 		.quad	.LBE3410
- 39173      00000000 
- 39174 acc4 02       		.byte	0x2
- 39175 acc5 6A03     		.value	0x36a
- 39176 acc7 DEAC0000 		.long	0xacde
- 39177 accb 32       		.uleb128 0x32
- 39178 accc 160E0000 		.long	0xe16
- 39179 acd0 03       		.byte	0x3
- 39180 acd1 91       		.byte	0x91
- 39181 acd2 B051     		.sleb128 -5968
- 39182 acd4 32       		.uleb128 0x32
- 39183 acd5 0C0E0000 		.long	0xe0c
- 39184 acd9 03       		.byte	0x3
- 39185 acda 91       		.byte	0x91
- 39186 acdb C051     		.sleb128 -5952
- 39187 acdd 00       		.byte	0x0
- 39188 acde 31       		.uleb128 0x31
- 39189 acdf 210E0000 		.long	0xe21
- 39190 ace3 00000000 		.quad	.LBB3412
- 39190      00000000 
- 39191 aceb 00000000 		.quad	.LBE3412
- 39191      00000000 
- 39192 acf3 02       		.byte	0x2
- 39193 acf4 6C03     		.value	0x36c
- 39194 acf6 0DAD0000 		.long	0xad0d
- 39195 acfa 32       		.uleb128 0x32
- 39196 acfb 3E0E0000 		.long	0xe3e
- 39197 acff 03       		.byte	0x3
- 39198 ad00 91       		.byte	0x91
- 39199 ad01 D051     		.sleb128 -5936
- 39200 ad03 32       		.uleb128 0x32
- 39201 ad04 330E0000 		.long	0xe33
- 39202 ad08 03       		.byte	0x3
- 39203 ad09 91       		.byte	0x91
- 39204 ad0a E051     		.sleb128 -5920
- 39205 ad0c 00       		.byte	0x0
- 39206 ad0d 35       		.uleb128 0x35
- 39207 ad0e 4F0D0000 		.long	0xd4f
- 39208 ad12 00000000 		.quad	.LBB3414
- 39208      00000000 
- 39209 ad1a 00000000 		.quad	.LBE3414
- 39209      00000000 
- 39210 ad22 02       		.byte	0x2
- 39211 ad23 6E03     		.value	0x36e
- 39212 ad25 32       		.uleb128 0x32
- 39213 ad26 6A0D0000 		.long	0xd6a
- 39214 ad2a 03       		.byte	0x3
- 39215 ad2b 91       		.byte	0x91
- 39216 ad2c F051     		.sleb128 -5904
-
GAS LISTING /tmp/ccjbMjHD.s 			page 998
-
-
- 39217 ad2e 32       		.uleb128 0x32
- 39218 ad2f 600D0000 		.long	0xd60
- 39219 ad33 03       		.byte	0x3
- 39220 ad34 91       		.byte	0x91
- 39221 ad35 8052     		.sleb128 -5888
- 39222 ad37 00       		.byte	0x0
- 39223 ad38 00       		.byte	0x0
- 39224 ad39 00       		.byte	0x0
- 39225 ad3a 00       		.byte	0x0
- 39226 ad3b 36       		.uleb128 0x36
- 39227 ad3c 00000000 		.quad	.LBB3416
- 39227      00000000 
- 39228 ad44 00000000 		.quad	.LBE3416
- 39228      00000000 
- 39229 ad4c 5BAD0000 		.long	0xad5b
- 39230 ad50 34       		.uleb128 0x34
- 39231 ad51 1C0C0000 		.long	0xc1c
- 39232 ad55 04       		.byte	0x4
- 39233 ad56 91       		.byte	0x91
- 39234 ad57 80B57F   		.sleb128 -9600
- 39235 ad5a 00       		.byte	0x0
- 39236 ad5b 31       		.uleb128 0x31
- 39237 ad5c 4A0E0000 		.long	0xe4a
- 39238 ad60 00000000 		.quad	.LBB3417
- 39238      00000000 
- 39239 ad68 00000000 		.quad	.LBE3417
- 39239      00000000 
- 39240 ad70 02       		.byte	0x2
- 39241 ad71 9406     		.value	0x694
- 39242 ad73 F8AD0000 		.long	0xadf8
- 39243 ad77 32       		.uleb128 0x32
- 39244 ad78 5C0E0000 		.long	0xe5c
- 39245 ad7c 03       		.byte	0x3
- 39246 ad7d 91       		.byte	0x91
- 39247 ad7e 9052     		.sleb128 -5872
- 39248 ad80 33       		.uleb128 0x33
- 39249 ad81 00000000 		.quad	.LBB3418
- 39249      00000000 
- 39250 ad89 00000000 		.quad	.LBE3418
- 39250      00000000 
- 39251 ad91 34       		.uleb128 0x34
- 39252 ad92 680E0000 		.long	0xe68
- 39253 ad96 09       		.byte	0x9
- 39254 ad97 03       		.byte	0x3
- 39255 ad98 00000000 		.quad	ShiftRowTable.7385
- 39255      00000000 
- 39256 ada0 35       		.uleb128 0x35
- 39257 ada1 A00D0000 		.long	0xda0
- 39258 ada5 00000000 		.quad	.LBB3419
- 39258      00000000 
- 39259 adad 00000000 		.quad	.LBE3419
- 39259      00000000 
- 39260 adb5 02       		.byte	0x2
- 39261 adb6 9B02     		.value	0x29b
- 39262 adb8 32       		.uleb128 0x32
- 39263 adb9 BE0D0000 		.long	0xdbe
- 39264 adbd 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 999
-
-
- 39265 adbe 91       		.byte	0x91
- 39266 adbf A052     		.sleb128 -5856
- 39267 adc1 32       		.uleb128 0x32
- 39268 adc2 B20D0000 		.long	0xdb2
- 39269 adc6 03       		.byte	0x3
- 39270 adc7 91       		.byte	0x91
- 39271 adc8 B052     		.sleb128 -5840
- 39272 adca 35       		.uleb128 0x35
- 39273 adcb CB0D0000 		.long	0xdcb
- 39274 adcf 00000000 		.quad	.LBB3421
- 39274      00000000 
- 39275 add7 00000000 		.quad	.LBE3421
- 39275      00000000 
- 39276 addf 02       		.byte	0x2
- 39277 ade0 7501     		.value	0x175
- 39278 ade2 32       		.uleb128 0x32
- 39279 ade3 E90D0000 		.long	0xde9
- 39280 ade7 03       		.byte	0x3
- 39281 ade8 91       		.byte	0x91
- 39282 ade9 C052     		.sleb128 -5824
- 39283 adeb 32       		.uleb128 0x32
- 39284 adec DD0D0000 		.long	0xddd
- 39285 adf0 03       		.byte	0x3
- 39286 adf1 91       		.byte	0x91
- 39287 adf2 D052     		.sleb128 -5808
- 39288 adf4 00       		.byte	0x0
- 39289 adf5 00       		.byte	0x0
- 39290 adf6 00       		.byte	0x0
- 39291 adf7 00       		.byte	0x0
- 39292 adf8 36       		.uleb128 0x36
- 39293 adf9 00000000 		.quad	.LBB3423
- 39293      00000000 
- 39294 ae01 00000000 		.quad	.LBE3423
- 39294      00000000 
- 39295 ae09 18AE0000 		.long	0xae18
- 39296 ae0d 34       		.uleb128 0x34
- 39297 ae0e 2C0C0000 		.long	0xc2c
- 39298 ae12 04       		.byte	0x4
- 39299 ae13 91       		.byte	0x91
- 39300 ae14 F0B47F   		.sleb128 -9616
- 39301 ae17 00       		.byte	0x0
- 39302 ae18 31       		.uleb128 0x31
- 39303 ae19 860E0000 		.long	0xe86
- 39304 ae1d 00000000 		.quad	.LBB3424
- 39304      00000000 
- 39305 ae25 00000000 		.quad	.LBE3424
- 39305      00000000 
- 39306 ae2d 02       		.byte	0x2
- 39307 ae2e 9606     		.value	0x696
- 39308 ae30 47AE0000 		.long	0xae47
- 39309 ae34 32       		.uleb128 0x32
- 39310 ae35 A10E0000 		.long	0xea1
- 39311 ae39 03       		.byte	0x3
- 39312 ae3a 91       		.byte	0x91
- 39313 ae3b E052     		.sleb128 -5792
- 39314 ae3d 32       		.uleb128 0x32
- 39315 ae3e 970E0000 		.long	0xe97
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1000
-
-
- 39316 ae42 03       		.byte	0x3
- 39317 ae43 91       		.byte	0x91
- 39318 ae44 F052     		.sleb128 -5776
- 39319 ae46 00       		.byte	0x0
- 39320 ae47 36       		.uleb128 0x36
- 39321 ae48 00000000 		.quad	.LBB3426
- 39321      00000000 
- 39322 ae50 00000000 		.quad	.LBE3426
- 39322      00000000 
- 39323 ae58 67AE0000 		.long	0xae67
- 39324 ae5c 34       		.uleb128 0x34
- 39325 ae5d 3C0C0000 		.long	0xc3c
- 39326 ae61 04       		.byte	0x4
- 39327 ae62 91       		.byte	0x91
- 39328 ae63 E0B47F   		.sleb128 -9632
- 39329 ae66 00       		.byte	0x0
- 39330 ae67 31       		.uleb128 0x31
- 39331 ae68 AC0E0000 		.long	0xeac
- 39332 ae6c 00000000 		.quad	.LBB3427
- 39332      00000000 
- 39333 ae74 00000000 		.quad	.LBE3427
- 39333      00000000 
- 39334 ae7c 02       		.byte	0x2
- 39335 ae7d 9806     		.value	0x698
- 39336 ae7f B8AE0000 		.long	0xaeb8
- 39337 ae83 32       		.uleb128 0x32
- 39338 ae84 BE0E0000 		.long	0xebe
- 39339 ae88 03       		.byte	0x3
- 39340 ae89 91       		.byte	0x91
- 39341 ae8a 8053     		.sleb128 -5760
- 39342 ae8c 35       		.uleb128 0x35
- 39343 ae8d CB0E0000 		.long	0xecb
- 39344 ae91 00000000 		.quad	.LBB3429
- 39344      00000000 
- 39345 ae99 00000000 		.quad	.LBE3429
- 39345      00000000 
- 39346 aea1 02       		.byte	0x2
- 39347 aea2 4905     		.value	0x549
- 39348 aea4 32       		.uleb128 0x32
- 39349 aea5 E90E0000 		.long	0xee9
- 39350 aea9 03       		.byte	0x3
- 39351 aeaa 91       		.byte	0x91
- 39352 aeab 9C53     		.sleb128 -5732
- 39353 aead 32       		.uleb128 0x32
- 39354 aeae DD0E0000 		.long	0xedd
- 39355 aeb2 03       		.byte	0x3
- 39356 aeb3 91       		.byte	0x91
- 39357 aeb4 A053     		.sleb128 -5728
- 39358 aeb6 00       		.byte	0x0
- 39359 aeb7 00       		.byte	0x0
- 39360 aeb8 33       		.uleb128 0x33
- 39361 aeb9 00000000 		.quad	.LBB3431
- 39361      00000000 
- 39362 aec1 00000000 		.quad	.LBE3431
- 39362      00000000 
- 39363 aec9 34       		.uleb128 0x34
- 39364 aeca 480C0000 		.long	0xc48
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1001
-
-
- 39365 aece 04       		.byte	0x4
- 39366 aecf 91       		.byte	0x91
- 39367 aed0 D0B47F   		.sleb128 -9648
- 39368 aed3 00       		.byte	0x0
- 39369 aed4 00       		.byte	0x0
- 39370 aed5 00       		.byte	0x0
- 39371 aed6 31       		.uleb128 0x31
- 39372 aed7 F60E0000 		.long	0xef6
- 39373 aedb 00000000 		.quad	.LBB3432
- 39373      00000000 
- 39374 aee3 00000000 		.quad	.LBE3432
- 39374      00000000 
- 39375 aeeb 02       		.byte	0x2
- 39376 aeec 8A07     		.value	0x78a
- 39377 aeee EBB00000 		.long	0xb0eb
- 39378 aef2 32       		.uleb128 0x32
- 39379 aef3 080F0000 		.long	0xf08
- 39380 aef7 03       		.byte	0x3
- 39381 aef8 91       		.byte	0x91
- 39382 aef9 B053     		.sleb128 -5712
- 39383 aefb 33       		.uleb128 0x33
- 39384 aefc 00000000 		.quad	.LBB3433
- 39384      00000000 
- 39385 af04 00000000 		.quad	.LBE3433
- 39385      00000000 
- 39386 af0c 34       		.uleb128 0x34
- 39387 af0d 140F0000 		.long	0xf14
- 39388 af11 04       		.byte	0x4
- 39389 af12 76       		.byte	0x76
- 39390 af13 80B17F   		.sleb128 -10112
- 39391 af16 31       		.uleb128 0x31
- 39392 af17 210F0000 		.long	0xf21
- 39393 af1b 00000000 		.quad	.LBB3434
- 39393      00000000 
- 39394 af23 00000000 		.quad	.LBE3434
- 39394      00000000 
- 39395 af2b 02       		.byte	0x2
- 39396 af2c 1F06     		.value	0x61f
- 39397 af2e B3AF0000 		.long	0xafb3
- 39398 af32 32       		.uleb128 0x32
- 39399 af33 330F0000 		.long	0xf33
- 39400 af37 03       		.byte	0x3
- 39401 af38 91       		.byte	0x91
- 39402 af39 C053     		.sleb128 -5696
- 39403 af3b 33       		.uleb128 0x33
- 39404 af3c 00000000 		.quad	.LBB3435
- 39404      00000000 
- 39405 af44 00000000 		.quad	.LBE3435
- 39405      00000000 
- 39406 af4c 34       		.uleb128 0x34
- 39407 af4d 3F0F0000 		.long	0xf3f
- 39408 af51 09       		.byte	0x9
- 39409 af52 03       		.byte	0x3
- 39410 af53 00000000 		.quad	mask.7943
- 39410      00000000 
- 39411 af5b 35       		.uleb128 0x35
- 39412 af5c A00D0000 		.long	0xda0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1002
-
-
- 39413 af60 00000000 		.quad	.LBB3436
- 39413      00000000 
- 39414 af68 00000000 		.quad	.LBE3436
- 39414      00000000 
- 39415 af70 02       		.byte	0x2
- 39416 af71 FE04     		.value	0x4fe
- 39417 af73 32       		.uleb128 0x32
- 39418 af74 BE0D0000 		.long	0xdbe
- 39419 af78 03       		.byte	0x3
- 39420 af79 91       		.byte	0x91
- 39421 af7a D053     		.sleb128 -5680
- 39422 af7c 32       		.uleb128 0x32
- 39423 af7d B20D0000 		.long	0xdb2
- 39424 af81 03       		.byte	0x3
- 39425 af82 91       		.byte	0x91
- 39426 af83 E053     		.sleb128 -5664
- 39427 af85 35       		.uleb128 0x35
- 39428 af86 CB0D0000 		.long	0xdcb
- 39429 af8a 00000000 		.quad	.LBB3438
- 39429      00000000 
- 39430 af92 00000000 		.quad	.LBE3438
- 39430      00000000 
- 39431 af9a 02       		.byte	0x2
- 39432 af9b 7501     		.value	0x175
- 39433 af9d 32       		.uleb128 0x32
- 39434 af9e E90D0000 		.long	0xde9
- 39435 afa2 03       		.byte	0x3
- 39436 afa3 91       		.byte	0x91
- 39437 afa4 F053     		.sleb128 -5648
- 39438 afa6 32       		.uleb128 0x32
- 39439 afa7 DD0D0000 		.long	0xddd
- 39440 afab 03       		.byte	0x3
- 39441 afac 91       		.byte	0x91
- 39442 afad 8054     		.sleb128 -5632
- 39443 afaf 00       		.byte	0x0
- 39444 afb0 00       		.byte	0x0
- 39445 afb1 00       		.byte	0x0
- 39446 afb2 00       		.byte	0x0
- 39447 afb3 31       		.uleb128 0x31
- 39448 afb4 210F0000 		.long	0xf21
- 39449 afb8 00000000 		.quad	.LBB3440
- 39449      00000000 
- 39450 afc0 00000000 		.quad	.LBE3440
- 39450      00000000 
- 39451 afc8 02       		.byte	0x2
- 39452 afc9 2006     		.value	0x620
- 39453 afcb 50B00000 		.long	0xb050
- 39454 afcf 32       		.uleb128 0x32
- 39455 afd0 330F0000 		.long	0xf33
- 39456 afd4 03       		.byte	0x3
- 39457 afd5 91       		.byte	0x91
- 39458 afd6 9054     		.sleb128 -5616
- 39459 afd8 33       		.uleb128 0x33
- 39460 afd9 00000000 		.quad	.LBB3441
- 39460      00000000 
- 39461 afe1 00000000 		.quad	.LBE3441
- 39461      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1003
-
-
- 39462 afe9 34       		.uleb128 0x34
- 39463 afea 3F0F0000 		.long	0xf3f
- 39464 afee 09       		.byte	0x9
- 39465 afef 03       		.byte	0x3
- 39466 aff0 00000000 		.quad	mask.7943
- 39466      00000000 
- 39467 aff8 35       		.uleb128 0x35
- 39468 aff9 A00D0000 		.long	0xda0
- 39469 affd 00000000 		.quad	.LBB3442
- 39469      00000000 
- 39470 b005 00000000 		.quad	.LBE3442
- 39470      00000000 
- 39471 b00d 02       		.byte	0x2
- 39472 b00e FE04     		.value	0x4fe
- 39473 b010 32       		.uleb128 0x32
- 39474 b011 BE0D0000 		.long	0xdbe
- 39475 b015 03       		.byte	0x3
- 39476 b016 91       		.byte	0x91
- 39477 b017 A054     		.sleb128 -5600
- 39478 b019 32       		.uleb128 0x32
- 39479 b01a B20D0000 		.long	0xdb2
- 39480 b01e 03       		.byte	0x3
- 39481 b01f 91       		.byte	0x91
- 39482 b020 B054     		.sleb128 -5584
- 39483 b022 35       		.uleb128 0x35
- 39484 b023 CB0D0000 		.long	0xdcb
- 39485 b027 00000000 		.quad	.LBB3444
- 39485      00000000 
- 39486 b02f 00000000 		.quad	.LBE3444
- 39486      00000000 
- 39487 b037 02       		.byte	0x2
- 39488 b038 7501     		.value	0x175
- 39489 b03a 32       		.uleb128 0x32
- 39490 b03b E90D0000 		.long	0xde9
- 39491 b03f 03       		.byte	0x3
- 39492 b040 91       		.byte	0x91
- 39493 b041 C054     		.sleb128 -5568
- 39494 b043 32       		.uleb128 0x32
- 39495 b044 DD0D0000 		.long	0xddd
- 39496 b048 03       		.byte	0x3
- 39497 b049 91       		.byte	0x91
- 39498 b04a D054     		.sleb128 -5552
- 39499 b04c 00       		.byte	0x0
- 39500 b04d 00       		.byte	0x0
- 39501 b04e 00       		.byte	0x0
- 39502 b04f 00       		.byte	0x0
- 39503 b050 35       		.uleb128 0x35
- 39504 b051 210F0000 		.long	0xf21
- 39505 b055 00000000 		.quad	.LBB3446
- 39505      00000000 
- 39506 b05d 00000000 		.quad	.LBE3446
- 39506      00000000 
- 39507 b065 02       		.byte	0x2
- 39508 b066 2106     		.value	0x621
- 39509 b068 32       		.uleb128 0x32
- 39510 b069 330F0000 		.long	0xf33
- 39511 b06d 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1004
-
-
- 39512 b06e 91       		.byte	0x91
- 39513 b06f E054     		.sleb128 -5536
- 39514 b071 33       		.uleb128 0x33
- 39515 b072 00000000 		.quad	.LBB3447
- 39515      00000000 
- 39516 b07a 00000000 		.quad	.LBE3447
- 39516      00000000 
- 39517 b082 34       		.uleb128 0x34
- 39518 b083 3F0F0000 		.long	0xf3f
- 39519 b087 09       		.byte	0x9
- 39520 b088 03       		.byte	0x3
- 39521 b089 00000000 		.quad	mask.7943
- 39521      00000000 
- 39522 b091 35       		.uleb128 0x35
- 39523 b092 A00D0000 		.long	0xda0
- 39524 b096 00000000 		.quad	.LBB3448
- 39524      00000000 
- 39525 b09e 00000000 		.quad	.LBE3448
- 39525      00000000 
- 39526 b0a6 02       		.byte	0x2
- 39527 b0a7 FE04     		.value	0x4fe
- 39528 b0a9 32       		.uleb128 0x32
- 39529 b0aa BE0D0000 		.long	0xdbe
- 39530 b0ae 03       		.byte	0x3
- 39531 b0af 91       		.byte	0x91
- 39532 b0b0 F054     		.sleb128 -5520
- 39533 b0b2 32       		.uleb128 0x32
- 39534 b0b3 B20D0000 		.long	0xdb2
- 39535 b0b7 03       		.byte	0x3
- 39536 b0b8 91       		.byte	0x91
- 39537 b0b9 8055     		.sleb128 -5504
- 39538 b0bb 35       		.uleb128 0x35
- 39539 b0bc CB0D0000 		.long	0xdcb
- 39540 b0c0 00000000 		.quad	.LBB3450
- 39540      00000000 
- 39541 b0c8 00000000 		.quad	.LBE3450
- 39541      00000000 
- 39542 b0d0 02       		.byte	0x2
- 39543 b0d1 7501     		.value	0x175
- 39544 b0d3 32       		.uleb128 0x32
- 39545 b0d4 E90D0000 		.long	0xde9
- 39546 b0d8 03       		.byte	0x3
- 39547 b0d9 91       		.byte	0x91
- 39548 b0da 9055     		.sleb128 -5488
- 39549 b0dc 32       		.uleb128 0x32
- 39550 b0dd DD0D0000 		.long	0xddd
- 39551 b0e1 03       		.byte	0x3
- 39552 b0e2 91       		.byte	0x91
- 39553 b0e3 A055     		.sleb128 -5472
- 39554 b0e5 00       		.byte	0x0
- 39555 b0e6 00       		.byte	0x0
- 39556 b0e7 00       		.byte	0x0
- 39557 b0e8 00       		.byte	0x0
- 39558 b0e9 00       		.byte	0x0
- 39559 b0ea 00       		.byte	0x0
- 39560 b0eb 31       		.uleb128 0x31
- 39561 b0ec 860E0000 		.long	0xe86
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1005
-
-
- 39562 b0f0 00000000 		.quad	.LBB3452
- 39562      00000000 
- 39563 b0f8 00000000 		.quad	.LBE3452
- 39563      00000000 
- 39564 b100 02       		.byte	0x2
- 39565 b101 8A07     		.value	0x78a
- 39566 b103 1AB10000 		.long	0xb11a
- 39567 b107 32       		.uleb128 0x32
- 39568 b108 A10E0000 		.long	0xea1
- 39569 b10c 03       		.byte	0x3
- 39570 b10d 91       		.byte	0x91
- 39571 b10e B055     		.sleb128 -5456
- 39572 b110 32       		.uleb128 0x32
- 39573 b111 970E0000 		.long	0xe97
- 39574 b115 03       		.byte	0x3
- 39575 b116 91       		.byte	0x91
- 39576 b117 C055     		.sleb128 -5440
- 39577 b119 00       		.byte	0x0
- 39578 b11a 31       		.uleb128 0x31
- 39579 b11b 8F940000 		.long	0x948f
- 39580 b11f 00000000 		.quad	.LBB3454
- 39580      00000000 
- 39581 b127 00000000 		.quad	.LBE3454
- 39581      00000000 
- 39582 b12f 02       		.byte	0x2
- 39583 b130 8B07     		.value	0x78b
- 39584 b132 ACB10000 		.long	0xb1ac
- 39585 b136 32       		.uleb128 0x32
- 39586 b137 A1940000 		.long	0x94a1
- 39587 b13b 03       		.byte	0x3
- 39588 b13c 91       		.byte	0x91
- 39589 b13d D055     		.sleb128 -5424
- 39590 b13f 33       		.uleb128 0x33
- 39591 b140 00000000 		.quad	.LBB3455
- 39591      00000000 
- 39592 b148 00000000 		.quad	.LBE3455
- 39592      00000000 
- 39593 b150 34       		.uleb128 0x34
- 39594 b151 AD940000 		.long	0x94ad
- 39595 b155 04       		.byte	0x4
- 39596 b156 91       		.byte	0x91
- 39597 b157 A0B57F   		.sleb128 -9568
- 39598 b15a 34       		.uleb128 0x34
- 39599 b15b B7940000 		.long	0x94b7
- 39600 b15f 03       		.byte	0x3
- 39601 b160 91       		.byte	0x91
- 39602 b161 E455     		.sleb128 -5404
- 39603 b163 35       		.uleb128 0x35
- 39604 b164 BE560000 		.long	0x56be
- 39605 b168 00000000 		.quad	.LBB3456
- 39605      00000000 
- 39606 b170 00000000 		.quad	.LBE3456
- 39606      00000000 
- 39607 b178 02       		.byte	0x2
- 39608 b179 7906     		.value	0x679
- 39609 b17b 32       		.uleb128 0x32
- 39610 b17c D0560000 		.long	0x56d0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1006
-
-
- 39611 b180 03       		.byte	0x3
- 39612 b181 91       		.byte	0x91
- 39613 b182 E855     		.sleb128 -5400
- 39614 b184 33       		.uleb128 0x33
- 39615 b185 00000000 		.quad	.LBB3457
- 39615      00000000 
- 39616 b18d 00000000 		.quad	.LBE3457
- 39616      00000000 
- 39617 b195 34       		.uleb128 0x34
- 39618 b196 DA560000 		.long	0x56da
- 39619 b19a 04       		.byte	0x4
- 39620 b19b 91       		.byte	0x91
- 39621 b19c 90B57F   		.sleb128 -9584
- 39622 b19f 34       		.uleb128 0x34
- 39623 b1a0 E6560000 		.long	0x56e6
- 39624 b1a4 03       		.byte	0x3
- 39625 b1a5 91       		.byte	0x91
- 39626 b1a6 EC55     		.sleb128 -5396
- 39627 b1a8 00       		.byte	0x0
- 39628 b1a9 00       		.byte	0x0
- 39629 b1aa 00       		.byte	0x0
- 39630 b1ab 00       		.byte	0x0
- 39631 b1ac 31       		.uleb128 0x31
- 39632 b1ad F60E0000 		.long	0xef6
- 39633 b1b1 00000000 		.quad	.LBB3458
- 39633      00000000 
- 39634 b1b9 00000000 		.quad	.LBE3458
- 39634      00000000 
- 39635 b1c1 02       		.byte	0x2
- 39636 b1c2 8B07     		.value	0x78b
- 39637 b1c4 C1B30000 		.long	0xb3c1
- 39638 b1c8 32       		.uleb128 0x32
- 39639 b1c9 080F0000 		.long	0xf08
- 39640 b1cd 03       		.byte	0x3
- 39641 b1ce 91       		.byte	0x91
- 39642 b1cf F055     		.sleb128 -5392
- 39643 b1d1 33       		.uleb128 0x33
- 39644 b1d2 00000000 		.quad	.LBB3459
- 39644      00000000 
- 39645 b1da 00000000 		.quad	.LBE3459
- 39645      00000000 
- 39646 b1e2 34       		.uleb128 0x34
- 39647 b1e3 140F0000 		.long	0xf14
- 39648 b1e7 04       		.byte	0x4
- 39649 b1e8 76       		.byte	0x76
- 39650 b1e9 90B17F   		.sleb128 -10096
- 39651 b1ec 31       		.uleb128 0x31
- 39652 b1ed 210F0000 		.long	0xf21
- 39653 b1f1 00000000 		.quad	.LBB3460
- 39653      00000000 
- 39654 b1f9 00000000 		.quad	.LBE3460
- 39654      00000000 
- 39655 b201 02       		.byte	0x2
- 39656 b202 1F06     		.value	0x61f
- 39657 b204 89B20000 		.long	0xb289
- 39658 b208 32       		.uleb128 0x32
- 39659 b209 330F0000 		.long	0xf33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1007
-
-
- 39660 b20d 03       		.byte	0x3
- 39661 b20e 91       		.byte	0x91
- 39662 b20f 8056     		.sleb128 -5376
- 39663 b211 33       		.uleb128 0x33
- 39664 b212 00000000 		.quad	.LBB3461
- 39664      00000000 
- 39665 b21a 00000000 		.quad	.LBE3461
- 39665      00000000 
- 39666 b222 34       		.uleb128 0x34
- 39667 b223 3F0F0000 		.long	0xf3f
- 39668 b227 09       		.byte	0x9
- 39669 b228 03       		.byte	0x3
- 39670 b229 00000000 		.quad	mask.7943
- 39670      00000000 
- 39671 b231 35       		.uleb128 0x35
- 39672 b232 A00D0000 		.long	0xda0
- 39673 b236 00000000 		.quad	.LBB3462
- 39673      00000000 
- 39674 b23e 00000000 		.quad	.LBE3462
- 39674      00000000 
- 39675 b246 02       		.byte	0x2
- 39676 b247 FE04     		.value	0x4fe
- 39677 b249 32       		.uleb128 0x32
- 39678 b24a BE0D0000 		.long	0xdbe
- 39679 b24e 03       		.byte	0x3
- 39680 b24f 91       		.byte	0x91
- 39681 b250 9056     		.sleb128 -5360
- 39682 b252 32       		.uleb128 0x32
- 39683 b253 B20D0000 		.long	0xdb2
- 39684 b257 03       		.byte	0x3
- 39685 b258 91       		.byte	0x91
- 39686 b259 A056     		.sleb128 -5344
- 39687 b25b 35       		.uleb128 0x35
- 39688 b25c CB0D0000 		.long	0xdcb
- 39689 b260 00000000 		.quad	.LBB3464
- 39689      00000000 
- 39690 b268 00000000 		.quad	.LBE3464
- 39690      00000000 
- 39691 b270 02       		.byte	0x2
- 39692 b271 7501     		.value	0x175
- 39693 b273 32       		.uleb128 0x32
- 39694 b274 E90D0000 		.long	0xde9
- 39695 b278 03       		.byte	0x3
- 39696 b279 91       		.byte	0x91
- 39697 b27a B056     		.sleb128 -5328
- 39698 b27c 32       		.uleb128 0x32
- 39699 b27d DD0D0000 		.long	0xddd
- 39700 b281 03       		.byte	0x3
- 39701 b282 91       		.byte	0x91
- 39702 b283 C056     		.sleb128 -5312
- 39703 b285 00       		.byte	0x0
- 39704 b286 00       		.byte	0x0
- 39705 b287 00       		.byte	0x0
- 39706 b288 00       		.byte	0x0
- 39707 b289 31       		.uleb128 0x31
- 39708 b28a 210F0000 		.long	0xf21
- 39709 b28e 00000000 		.quad	.LBB3466
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1008
-
-
- 39709      00000000 
- 39710 b296 00000000 		.quad	.LBE3466
- 39710      00000000 
- 39711 b29e 02       		.byte	0x2
- 39712 b29f 2006     		.value	0x620
- 39713 b2a1 26B30000 		.long	0xb326
- 39714 b2a5 32       		.uleb128 0x32
- 39715 b2a6 330F0000 		.long	0xf33
- 39716 b2aa 03       		.byte	0x3
- 39717 b2ab 91       		.byte	0x91
- 39718 b2ac D056     		.sleb128 -5296
- 39719 b2ae 33       		.uleb128 0x33
- 39720 b2af 00000000 		.quad	.LBB3467
- 39720      00000000 
- 39721 b2b7 00000000 		.quad	.LBE3467
- 39721      00000000 
- 39722 b2bf 34       		.uleb128 0x34
- 39723 b2c0 3F0F0000 		.long	0xf3f
- 39724 b2c4 09       		.byte	0x9
- 39725 b2c5 03       		.byte	0x3
- 39726 b2c6 00000000 		.quad	mask.7943
- 39726      00000000 
- 39727 b2ce 35       		.uleb128 0x35
- 39728 b2cf A00D0000 		.long	0xda0
- 39729 b2d3 00000000 		.quad	.LBB3468
- 39729      00000000 
- 39730 b2db 00000000 		.quad	.LBE3468
- 39730      00000000 
- 39731 b2e3 02       		.byte	0x2
- 39732 b2e4 FE04     		.value	0x4fe
- 39733 b2e6 32       		.uleb128 0x32
- 39734 b2e7 BE0D0000 		.long	0xdbe
- 39735 b2eb 03       		.byte	0x3
- 39736 b2ec 91       		.byte	0x91
- 39737 b2ed E056     		.sleb128 -5280
- 39738 b2ef 32       		.uleb128 0x32
- 39739 b2f0 B20D0000 		.long	0xdb2
- 39740 b2f4 03       		.byte	0x3
- 39741 b2f5 91       		.byte	0x91
- 39742 b2f6 F056     		.sleb128 -5264
- 39743 b2f8 35       		.uleb128 0x35
- 39744 b2f9 CB0D0000 		.long	0xdcb
- 39745 b2fd 00000000 		.quad	.LBB3470
- 39745      00000000 
- 39746 b305 00000000 		.quad	.LBE3470
- 39746      00000000 
- 39747 b30d 02       		.byte	0x2
- 39748 b30e 7501     		.value	0x175
- 39749 b310 32       		.uleb128 0x32
- 39750 b311 E90D0000 		.long	0xde9
- 39751 b315 03       		.byte	0x3
- 39752 b316 91       		.byte	0x91
- 39753 b317 8057     		.sleb128 -5248
- 39754 b319 32       		.uleb128 0x32
- 39755 b31a DD0D0000 		.long	0xddd
- 39756 b31e 03       		.byte	0x3
- 39757 b31f 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1009
-
-
- 39758 b320 9057     		.sleb128 -5232
- 39759 b322 00       		.byte	0x0
- 39760 b323 00       		.byte	0x0
- 39761 b324 00       		.byte	0x0
- 39762 b325 00       		.byte	0x0
- 39763 b326 35       		.uleb128 0x35
- 39764 b327 210F0000 		.long	0xf21
- 39765 b32b 00000000 		.quad	.LBB3472
- 39765      00000000 
- 39766 b333 00000000 		.quad	.LBE3472
- 39766      00000000 
- 39767 b33b 02       		.byte	0x2
- 39768 b33c 2106     		.value	0x621
- 39769 b33e 32       		.uleb128 0x32
- 39770 b33f 330F0000 		.long	0xf33
- 39771 b343 03       		.byte	0x3
- 39772 b344 91       		.byte	0x91
- 39773 b345 A057     		.sleb128 -5216
- 39774 b347 33       		.uleb128 0x33
- 39775 b348 00000000 		.quad	.LBB3473
- 39775      00000000 
- 39776 b350 00000000 		.quad	.LBE3473
- 39776      00000000 
- 39777 b358 34       		.uleb128 0x34
- 39778 b359 3F0F0000 		.long	0xf3f
- 39779 b35d 09       		.byte	0x9
- 39780 b35e 03       		.byte	0x3
- 39781 b35f 00000000 		.quad	mask.7943
- 39781      00000000 
- 39782 b367 35       		.uleb128 0x35
- 39783 b368 A00D0000 		.long	0xda0
- 39784 b36c 00000000 		.quad	.LBB3474
- 39784      00000000 
- 39785 b374 00000000 		.quad	.LBE3474
- 39785      00000000 
- 39786 b37c 02       		.byte	0x2
- 39787 b37d FE04     		.value	0x4fe
- 39788 b37f 32       		.uleb128 0x32
- 39789 b380 BE0D0000 		.long	0xdbe
- 39790 b384 03       		.byte	0x3
- 39791 b385 91       		.byte	0x91
- 39792 b386 B057     		.sleb128 -5200
- 39793 b388 32       		.uleb128 0x32
- 39794 b389 B20D0000 		.long	0xdb2
- 39795 b38d 03       		.byte	0x3
- 39796 b38e 91       		.byte	0x91
- 39797 b38f C057     		.sleb128 -5184
- 39798 b391 35       		.uleb128 0x35
- 39799 b392 CB0D0000 		.long	0xdcb
- 39800 b396 00000000 		.quad	.LBB3476
- 39800      00000000 
- 39801 b39e 00000000 		.quad	.LBE3476
- 39801      00000000 
- 39802 b3a6 02       		.byte	0x2
- 39803 b3a7 7501     		.value	0x175
- 39804 b3a9 32       		.uleb128 0x32
- 39805 b3aa E90D0000 		.long	0xde9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1010
-
-
- 39806 b3ae 03       		.byte	0x3
- 39807 b3af 91       		.byte	0x91
- 39808 b3b0 D057     		.sleb128 -5168
- 39809 b3b2 32       		.uleb128 0x32
- 39810 b3b3 DD0D0000 		.long	0xddd
- 39811 b3b7 03       		.byte	0x3
- 39812 b3b8 91       		.byte	0x91
- 39813 b3b9 E057     		.sleb128 -5152
- 39814 b3bb 00       		.byte	0x0
- 39815 b3bc 00       		.byte	0x0
- 39816 b3bd 00       		.byte	0x0
- 39817 b3be 00       		.byte	0x0
- 39818 b3bf 00       		.byte	0x0
- 39819 b3c0 00       		.byte	0x0
- 39820 b3c1 31       		.uleb128 0x31
- 39821 b3c2 860E0000 		.long	0xe86
- 39822 b3c6 00000000 		.quad	.LBB3478
- 39822      00000000 
- 39823 b3ce 00000000 		.quad	.LBE3478
- 39823      00000000 
- 39824 b3d6 02       		.byte	0x2
- 39825 b3d7 8B07     		.value	0x78b
- 39826 b3d9 F0B30000 		.long	0xb3f0
- 39827 b3dd 32       		.uleb128 0x32
- 39828 b3de A10E0000 		.long	0xea1
- 39829 b3e2 03       		.byte	0x3
- 39830 b3e3 91       		.byte	0x91
- 39831 b3e4 F057     		.sleb128 -5136
- 39832 b3e6 32       		.uleb128 0x32
- 39833 b3e7 970E0000 		.long	0xe97
- 39834 b3eb 03       		.byte	0x3
- 39835 b3ec 91       		.byte	0x91
- 39836 b3ed 8058     		.sleb128 -5120
- 39837 b3ef 00       		.byte	0x0
- 39838 b3f0 31       		.uleb128 0x31
- 39839 b3f1 D50B0000 		.long	0xbd5
- 39840 b3f5 00000000 		.quad	.LBB3480
- 39840      00000000 
- 39841 b3fd 00000000 		.quad	.LBE3480
- 39841      00000000 
- 39842 b405 02       		.byte	0x2
- 39843 b406 8C07     		.value	0x78c
- 39844 b408 D3B80000 		.long	0xb8d3
- 39845 b40c 32       		.uleb128 0x32
- 39846 b40d F30B0000 		.long	0xbf3
- 39847 b411 03       		.byte	0x3
- 39848 b412 91       		.byte	0x91
- 39849 b413 9C58     		.sleb128 -5092
- 39850 b415 32       		.uleb128 0x32
- 39851 b416 E70B0000 		.long	0xbe7
- 39852 b41a 03       		.byte	0x3
- 39853 b41b 91       		.byte	0x91
- 39854 b41c A058     		.sleb128 -5088
- 39855 b41e 33       		.uleb128 0x33
- 39856 b41f 00000000 		.quad	.LBB3481
- 39856      00000000 
- 39857 b427 00000000 		.quad	.LBE3481
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1011
-
-
- 39857      00000000 
- 39858 b42f 34       		.uleb128 0x34
- 39859 b430 FF0B0000 		.long	0xbff
- 39860 b434 04       		.byte	0x4
- 39861 b435 76       		.byte	0x76
- 39862 b436 B0B17F   		.sleb128 -10064
- 39863 b439 34       		.uleb128 0x34
- 39864 b43a 0B0C0000 		.long	0xc0b
- 39865 b43e 04       		.byte	0x4
- 39866 b43f 76       		.byte	0x76
- 39867 b440 A0B17F   		.sleb128 -10080
- 39868 b443 31       		.uleb128 0x31
- 39869 b444 540C0000 		.long	0xc54
- 39870 b448 00000000 		.quad	.LBB3482
- 39870      00000000 
- 39871 b450 00000000 		.quad	.LBE3482
- 39871      00000000 
- 39872 b458 02       		.byte	0x2
- 39873 b459 9106     		.value	0x691
- 39874 b45b AFB40000 		.long	0xb4af
- 39875 b45f 32       		.uleb128 0x32
- 39876 b460 7E0C0000 		.long	0xc7e
- 39877 b464 03       		.byte	0x3
- 39878 b465 91       		.byte	0x91
- 39879 b466 B858     		.sleb128 -5064
- 39880 b468 32       		.uleb128 0x32
- 39881 b469 720C0000 		.long	0xc72
- 39882 b46d 03       		.byte	0x3
- 39883 b46e 91       		.byte	0x91
- 39884 b46f BC58     		.sleb128 -5060
- 39885 b471 32       		.uleb128 0x32
- 39886 b472 660C0000 		.long	0xc66
- 39887 b476 03       		.byte	0x3
- 39888 b477 91       		.byte	0x91
- 39889 b478 C058     		.sleb128 -5056
- 39890 b47a 35       		.uleb128 0x35
- 39891 b47b 8B0C0000 		.long	0xc8b
- 39892 b47f 00000000 		.quad	.LBB3484
- 39892      00000000 
- 39893 b487 00000000 		.quad	.LBE3484
- 39893      00000000 
- 39894 b48f 02       		.byte	0x2
- 39895 b490 0702     		.value	0x207
- 39896 b492 32       		.uleb128 0x32
- 39897 b493 B40C0000 		.long	0xcb4
- 39898 b497 03       		.byte	0x3
- 39899 b498 91       		.byte	0x91
- 39900 b499 D858     		.sleb128 -5032
- 39901 b49b 32       		.uleb128 0x32
- 39902 b49c A90C0000 		.long	0xca9
- 39903 b4a0 03       		.byte	0x3
- 39904 b4a1 91       		.byte	0x91
- 39905 b4a2 DC58     		.sleb128 -5028
- 39906 b4a4 32       		.uleb128 0x32
- 39907 b4a5 9D0C0000 		.long	0xc9d
- 39908 b4a9 03       		.byte	0x3
- 39909 b4aa 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1012
-
-
- 39910 b4ab E058     		.sleb128 -5024
- 39911 b4ad 00       		.byte	0x0
- 39912 b4ae 00       		.byte	0x0
- 39913 b4af 31       		.uleb128 0x31
- 39914 b4b0 C10C0000 		.long	0xcc1
- 39915 b4b4 00000000 		.quad	.LBB3486
- 39915      00000000 
- 39916 b4bc 00000000 		.quad	.LBE3486
- 39916      00000000 
- 39917 b4c4 02       		.byte	0x2
- 39918 b4c5 9206     		.value	0x692
- 39919 b4c7 38B70000 		.long	0xb738
- 39920 b4cb 32       		.uleb128 0x32
- 39921 b4cc D30C0000 		.long	0xcd3
- 39922 b4d0 03       		.byte	0x3
- 39923 b4d1 91       		.byte	0x91
- 39924 b4d2 F058     		.sleb128 -5008
- 39925 b4d4 35       		.uleb128 0x35
- 39926 b4d5 E00C0000 		.long	0xce0
- 39927 b4d9 00000000 		.quad	.LBB3488
- 39927      00000000 
- 39928 b4e1 00000000 		.quad	.LBE3488
- 39928      00000000 
- 39929 b4e9 02       		.byte	0x2
- 39930 b4ea 7D03     		.value	0x37d
- 39931 b4ec 32       		.uleb128 0x32
- 39932 b4ed FE0C0000 		.long	0xcfe
- 39933 b4f1 03       		.byte	0x3
- 39934 b4f2 91       		.byte	0x91
- 39935 b4f3 8859     		.sleb128 -4984
- 39936 b4f5 32       		.uleb128 0x32
- 39937 b4f6 F20C0000 		.long	0xcf2
- 39938 b4fa 03       		.byte	0x3
- 39939 b4fb 91       		.byte	0x91
- 39940 b4fc 9059     		.sleb128 -4976
- 39941 b4fe 33       		.uleb128 0x33
- 39942 b4ff 00000000 		.quad	.LBB3489
- 39942      00000000 
- 39943 b507 00000000 		.quad	.LBE3489
- 39943      00000000 
- 39944 b50f 34       		.uleb128 0x34
- 39945 b510 0A0D0000 		.long	0xd0a
- 39946 b514 03       		.byte	0x3
- 39947 b515 91       		.byte	0x91
- 39948 b516 E059     		.sleb128 -4896
- 39949 b518 34       		.uleb128 0x34
- 39950 b519 150D0000 		.long	0xd15
- 39951 b51d 03       		.byte	0x3
- 39952 b51e 91       		.byte	0x91
- 39953 b51f D059     		.sleb128 -4912
- 39954 b521 34       		.uleb128 0x34
- 39955 b522 200D0000 		.long	0xd20
- 39956 b526 03       		.byte	0x3
- 39957 b527 91       		.byte	0x91
- 39958 b528 C059     		.sleb128 -4928
- 39959 b52a 34       		.uleb128 0x34
- 39960 b52b 2C0D0000 		.long	0xd2c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1013
-
-
- 39961 b52f 03       		.byte	0x3
- 39962 b530 91       		.byte	0x91
- 39963 b531 B059     		.sleb128 -4944
- 39964 b533 34       		.uleb128 0x34
- 39965 b534 380D0000 		.long	0xd38
- 39966 b538 03       		.byte	0x3
- 39967 b539 91       		.byte	0x91
- 39968 b53a AC59     		.sleb128 -4948
- 39969 b53c 31       		.uleb128 0x31
- 39970 b53d 4F0D0000 		.long	0xd4f
- 39971 b541 00000000 		.quad	.LBB3490
- 39971      00000000 
- 39972 b549 00000000 		.quad	.LBE3490
- 39972      00000000 
- 39973 b551 02       		.byte	0x2
- 39974 b552 5603     		.value	0x356
- 39975 b554 6BB50000 		.long	0xb56b
- 39976 b558 32       		.uleb128 0x32
- 39977 b559 6A0D0000 		.long	0xd6a
- 39978 b55d 03       		.byte	0x3
- 39979 b55e 91       		.byte	0x91
- 39980 b55f F059     		.sleb128 -4880
- 39981 b561 32       		.uleb128 0x32
- 39982 b562 600D0000 		.long	0xd60
- 39983 b566 03       		.byte	0x3
- 39984 b567 91       		.byte	0x91
- 39985 b568 805A     		.sleb128 -4864
- 39986 b56a 00       		.byte	0x0
- 39987 b56b 31       		.uleb128 0x31
- 39988 b56c 750D0000 		.long	0xd75
- 39989 b570 00000000 		.quad	.LBB3492
- 39989      00000000 
- 39990 b578 00000000 		.quad	.LBE3492
- 39990      00000000 
- 39991 b580 02       		.byte	0x2
- 39992 b581 5903     		.value	0x359
- 39993 b583 9AB50000 		.long	0xb59a
- 39994 b587 32       		.uleb128 0x32
- 39995 b588 930D0000 		.long	0xd93
- 39996 b58c 03       		.byte	0x3
- 39997 b58d 91       		.byte	0x91
- 39998 b58e 9C5A     		.sleb128 -4836
- 39999 b590 32       		.uleb128 0x32
- 40000 b591 870D0000 		.long	0xd87
- 40001 b595 03       		.byte	0x3
- 40002 b596 91       		.byte	0x91
- 40003 b597 A05A     		.sleb128 -4832
- 40004 b599 00       		.byte	0x0
- 40005 b59a 31       		.uleb128 0x31
- 40006 b59b 4F0D0000 		.long	0xd4f
- 40007 b59f 00000000 		.quad	.LBB3494
- 40007      00000000 
- 40008 b5a7 00000000 		.quad	.LBE3494
- 40008      00000000 
- 40009 b5af 02       		.byte	0x2
- 40010 b5b0 5B03     		.value	0x35b
- 40011 b5b2 C9B50000 		.long	0xb5c9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1014
-
-
- 40012 b5b6 32       		.uleb128 0x32
- 40013 b5b7 6A0D0000 		.long	0xd6a
- 40014 b5bb 03       		.byte	0x3
- 40015 b5bc 91       		.byte	0x91
- 40016 b5bd B05A     		.sleb128 -4816
- 40017 b5bf 32       		.uleb128 0x32
- 40018 b5c0 600D0000 		.long	0xd60
- 40019 b5c4 03       		.byte	0x3
- 40020 b5c5 91       		.byte	0x91
- 40021 b5c6 C05A     		.sleb128 -4800
- 40022 b5c8 00       		.byte	0x0
- 40023 b5c9 31       		.uleb128 0x31
- 40024 b5ca A00D0000 		.long	0xda0
- 40025 b5ce 00000000 		.quad	.LBB3496
- 40025      00000000 
- 40026 b5d6 00000000 		.quad	.LBE3496
- 40026      00000000 
- 40027 b5de 02       		.byte	0x2
- 40028 b5df 6403     		.value	0x364
- 40029 b5e1 23B60000 		.long	0xb623
- 40030 b5e5 32       		.uleb128 0x32
- 40031 b5e6 BE0D0000 		.long	0xdbe
- 40032 b5ea 03       		.byte	0x3
- 40033 b5eb 91       		.byte	0x91
- 40034 b5ec D05A     		.sleb128 -4784
- 40035 b5ee 32       		.uleb128 0x32
- 40036 b5ef B20D0000 		.long	0xdb2
- 40037 b5f3 03       		.byte	0x3
- 40038 b5f4 91       		.byte	0x91
- 40039 b5f5 E05A     		.sleb128 -4768
- 40040 b5f7 35       		.uleb128 0x35
- 40041 b5f8 CB0D0000 		.long	0xdcb
- 40042 b5fc 00000000 		.quad	.LBB3498
- 40042      00000000 
- 40043 b604 00000000 		.quad	.LBE3498
- 40043      00000000 
- 40044 b60c 02       		.byte	0x2
- 40045 b60d 7501     		.value	0x175
- 40046 b60f 32       		.uleb128 0x32
- 40047 b610 E90D0000 		.long	0xde9
- 40048 b614 03       		.byte	0x3
- 40049 b615 91       		.byte	0x91
- 40050 b616 F05A     		.sleb128 -4752
- 40051 b618 32       		.uleb128 0x32
- 40052 b619 DD0D0000 		.long	0xddd
- 40053 b61d 03       		.byte	0x3
- 40054 b61e 91       		.byte	0x91
- 40055 b61f 805B     		.sleb128 -4736
- 40056 b621 00       		.byte	0x0
- 40057 b622 00       		.byte	0x0
- 40058 b623 31       		.uleb128 0x31
- 40059 b624 FB0D0000 		.long	0xdfb
- 40060 b628 00000000 		.quad	.LBB3500
- 40060      00000000 
- 40061 b630 00000000 		.quad	.LBE3500
- 40061      00000000 
- 40062 b638 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1015
-
-
- 40063 b639 6603     		.value	0x366
- 40064 b63b 52B60000 		.long	0xb652
- 40065 b63f 32       		.uleb128 0x32
- 40066 b640 160E0000 		.long	0xe16
- 40067 b644 03       		.byte	0x3
- 40068 b645 91       		.byte	0x91
- 40069 b646 905B     		.sleb128 -4720
- 40070 b648 32       		.uleb128 0x32
- 40071 b649 0C0E0000 		.long	0xe0c
- 40072 b64d 03       		.byte	0x3
- 40073 b64e 91       		.byte	0x91
- 40074 b64f A05B     		.sleb128 -4704
- 40075 b651 00       		.byte	0x0
- 40076 b652 31       		.uleb128 0x31
- 40077 b653 A00D0000 		.long	0xda0
- 40078 b657 00000000 		.quad	.LBB3502
- 40078      00000000 
- 40079 b65f 00000000 		.quad	.LBE3502
- 40079      00000000 
- 40080 b667 02       		.byte	0x2
- 40081 b668 6803     		.value	0x368
- 40082 b66a ACB60000 		.long	0xb6ac
- 40083 b66e 32       		.uleb128 0x32
- 40084 b66f BE0D0000 		.long	0xdbe
- 40085 b673 03       		.byte	0x3
- 40086 b674 91       		.byte	0x91
- 40087 b675 B05B     		.sleb128 -4688
- 40088 b677 32       		.uleb128 0x32
- 40089 b678 B20D0000 		.long	0xdb2
- 40090 b67c 03       		.byte	0x3
- 40091 b67d 91       		.byte	0x91
- 40092 b67e C05B     		.sleb128 -4672
- 40093 b680 35       		.uleb128 0x35
- 40094 b681 CB0D0000 		.long	0xdcb
- 40095 b685 00000000 		.quad	.LBB3504
- 40095      00000000 
- 40096 b68d 00000000 		.quad	.LBE3504
- 40096      00000000 
- 40097 b695 02       		.byte	0x2
- 40098 b696 7501     		.value	0x175
- 40099 b698 32       		.uleb128 0x32
- 40100 b699 E90D0000 		.long	0xde9
- 40101 b69d 03       		.byte	0x3
- 40102 b69e 91       		.byte	0x91
- 40103 b69f D05B     		.sleb128 -4656
- 40104 b6a1 32       		.uleb128 0x32
- 40105 b6a2 DD0D0000 		.long	0xddd
- 40106 b6a6 03       		.byte	0x3
- 40107 b6a7 91       		.byte	0x91
- 40108 b6a8 E05B     		.sleb128 -4640
- 40109 b6aa 00       		.byte	0x0
- 40110 b6ab 00       		.byte	0x0
- 40111 b6ac 31       		.uleb128 0x31
- 40112 b6ad FB0D0000 		.long	0xdfb
- 40113 b6b1 00000000 		.quad	.LBB3506
- 40113      00000000 
- 40114 b6b9 00000000 		.quad	.LBE3506
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1016
-
-
- 40114      00000000 
- 40115 b6c1 02       		.byte	0x2
- 40116 b6c2 6A03     		.value	0x36a
- 40117 b6c4 DBB60000 		.long	0xb6db
- 40118 b6c8 32       		.uleb128 0x32
- 40119 b6c9 160E0000 		.long	0xe16
- 40120 b6cd 03       		.byte	0x3
- 40121 b6ce 91       		.byte	0x91
- 40122 b6cf F05B     		.sleb128 -4624
- 40123 b6d1 32       		.uleb128 0x32
- 40124 b6d2 0C0E0000 		.long	0xe0c
- 40125 b6d6 03       		.byte	0x3
- 40126 b6d7 91       		.byte	0x91
- 40127 b6d8 805C     		.sleb128 -4608
- 40128 b6da 00       		.byte	0x0
- 40129 b6db 31       		.uleb128 0x31
- 40130 b6dc 210E0000 		.long	0xe21
- 40131 b6e0 00000000 		.quad	.LBB3508
- 40131      00000000 
- 40132 b6e8 00000000 		.quad	.LBE3508
- 40132      00000000 
- 40133 b6f0 02       		.byte	0x2
- 40134 b6f1 6C03     		.value	0x36c
- 40135 b6f3 0AB70000 		.long	0xb70a
- 40136 b6f7 32       		.uleb128 0x32
- 40137 b6f8 3E0E0000 		.long	0xe3e
- 40138 b6fc 03       		.byte	0x3
- 40139 b6fd 91       		.byte	0x91
- 40140 b6fe 905C     		.sleb128 -4592
- 40141 b700 32       		.uleb128 0x32
- 40142 b701 330E0000 		.long	0xe33
- 40143 b705 03       		.byte	0x3
- 40144 b706 91       		.byte	0x91
- 40145 b707 A05C     		.sleb128 -4576
- 40146 b709 00       		.byte	0x0
- 40147 b70a 35       		.uleb128 0x35
- 40148 b70b 4F0D0000 		.long	0xd4f
- 40149 b70f 00000000 		.quad	.LBB3510
- 40149      00000000 
- 40150 b717 00000000 		.quad	.LBE3510
- 40150      00000000 
- 40151 b71f 02       		.byte	0x2
- 40152 b720 6E03     		.value	0x36e
- 40153 b722 32       		.uleb128 0x32
- 40154 b723 6A0D0000 		.long	0xd6a
- 40155 b727 03       		.byte	0x3
- 40156 b728 91       		.byte	0x91
- 40157 b729 B05C     		.sleb128 -4560
- 40158 b72b 32       		.uleb128 0x32
- 40159 b72c 600D0000 		.long	0xd60
- 40160 b730 03       		.byte	0x3
- 40161 b731 91       		.byte	0x91
- 40162 b732 C05C     		.sleb128 -4544
- 40163 b734 00       		.byte	0x0
- 40164 b735 00       		.byte	0x0
- 40165 b736 00       		.byte	0x0
- 40166 b737 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1017
-
-
- 40167 b738 36       		.uleb128 0x36
- 40168 b739 00000000 		.quad	.LBB3512
- 40168      00000000 
- 40169 b741 00000000 		.quad	.LBE3512
- 40169      00000000 
- 40170 b749 58B70000 		.long	0xb758
- 40171 b74d 34       		.uleb128 0x34
- 40172 b74e 1C0C0000 		.long	0xc1c
- 40173 b752 04       		.byte	0x4
- 40174 b753 91       		.byte	0x91
- 40175 b754 E0B57F   		.sleb128 -9504
- 40176 b757 00       		.byte	0x0
- 40177 b758 31       		.uleb128 0x31
- 40178 b759 4A0E0000 		.long	0xe4a
- 40179 b75d 00000000 		.quad	.LBB3513
- 40179      00000000 
- 40180 b765 00000000 		.quad	.LBE3513
- 40180      00000000 
- 40181 b76d 02       		.byte	0x2
- 40182 b76e 9406     		.value	0x694
- 40183 b770 F5B70000 		.long	0xb7f5
- 40184 b774 32       		.uleb128 0x32
- 40185 b775 5C0E0000 		.long	0xe5c
- 40186 b779 03       		.byte	0x3
- 40187 b77a 91       		.byte	0x91
- 40188 b77b D05C     		.sleb128 -4528
- 40189 b77d 33       		.uleb128 0x33
- 40190 b77e 00000000 		.quad	.LBB3514
- 40190      00000000 
- 40191 b786 00000000 		.quad	.LBE3514
- 40191      00000000 
- 40192 b78e 34       		.uleb128 0x34
- 40193 b78f 680E0000 		.long	0xe68
- 40194 b793 09       		.byte	0x9
- 40195 b794 03       		.byte	0x3
- 40196 b795 00000000 		.quad	ShiftRowTable.7385
- 40196      00000000 
- 40197 b79d 35       		.uleb128 0x35
- 40198 b79e A00D0000 		.long	0xda0
- 40199 b7a2 00000000 		.quad	.LBB3515
- 40199      00000000 
- 40200 b7aa 00000000 		.quad	.LBE3515
- 40200      00000000 
- 40201 b7b2 02       		.byte	0x2
- 40202 b7b3 9B02     		.value	0x29b
- 40203 b7b5 32       		.uleb128 0x32
- 40204 b7b6 BE0D0000 		.long	0xdbe
- 40205 b7ba 03       		.byte	0x3
- 40206 b7bb 91       		.byte	0x91
- 40207 b7bc E05C     		.sleb128 -4512
- 40208 b7be 32       		.uleb128 0x32
- 40209 b7bf B20D0000 		.long	0xdb2
- 40210 b7c3 03       		.byte	0x3
- 40211 b7c4 91       		.byte	0x91
- 40212 b7c5 F05C     		.sleb128 -4496
- 40213 b7c7 35       		.uleb128 0x35
- 40214 b7c8 CB0D0000 		.long	0xdcb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1018
-
-
- 40215 b7cc 00000000 		.quad	.LBB3517
- 40215      00000000 
- 40216 b7d4 00000000 		.quad	.LBE3517
- 40216      00000000 
- 40217 b7dc 02       		.byte	0x2
- 40218 b7dd 7501     		.value	0x175
- 40219 b7df 32       		.uleb128 0x32
- 40220 b7e0 E90D0000 		.long	0xde9
- 40221 b7e4 03       		.byte	0x3
- 40222 b7e5 91       		.byte	0x91
- 40223 b7e6 805D     		.sleb128 -4480
- 40224 b7e8 32       		.uleb128 0x32
- 40225 b7e9 DD0D0000 		.long	0xddd
- 40226 b7ed 03       		.byte	0x3
- 40227 b7ee 91       		.byte	0x91
- 40228 b7ef 905D     		.sleb128 -4464
- 40229 b7f1 00       		.byte	0x0
- 40230 b7f2 00       		.byte	0x0
- 40231 b7f3 00       		.byte	0x0
- 40232 b7f4 00       		.byte	0x0
- 40233 b7f5 36       		.uleb128 0x36
- 40234 b7f6 00000000 		.quad	.LBB3519
- 40234      00000000 
- 40235 b7fe 00000000 		.quad	.LBE3519
- 40235      00000000 
- 40236 b806 15B80000 		.long	0xb815
- 40237 b80a 34       		.uleb128 0x34
- 40238 b80b 2C0C0000 		.long	0xc2c
- 40239 b80f 04       		.byte	0x4
- 40240 b810 91       		.byte	0x91
- 40241 b811 D0B57F   		.sleb128 -9520
- 40242 b814 00       		.byte	0x0
- 40243 b815 31       		.uleb128 0x31
- 40244 b816 860E0000 		.long	0xe86
- 40245 b81a 00000000 		.quad	.LBB3520
- 40245      00000000 
- 40246 b822 00000000 		.quad	.LBE3520
- 40246      00000000 
- 40247 b82a 02       		.byte	0x2
- 40248 b82b 9606     		.value	0x696
- 40249 b82d 44B80000 		.long	0xb844
- 40250 b831 32       		.uleb128 0x32
- 40251 b832 A10E0000 		.long	0xea1
- 40252 b836 03       		.byte	0x3
- 40253 b837 91       		.byte	0x91
- 40254 b838 A05D     		.sleb128 -4448
- 40255 b83a 32       		.uleb128 0x32
- 40256 b83b 970E0000 		.long	0xe97
- 40257 b83f 03       		.byte	0x3
- 40258 b840 91       		.byte	0x91
- 40259 b841 B05D     		.sleb128 -4432
- 40260 b843 00       		.byte	0x0
- 40261 b844 36       		.uleb128 0x36
- 40262 b845 00000000 		.quad	.LBB3522
- 40262      00000000 
- 40263 b84d 00000000 		.quad	.LBE3522
- 40263      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1019
-
-
- 40264 b855 64B80000 		.long	0xb864
- 40265 b859 34       		.uleb128 0x34
- 40266 b85a 3C0C0000 		.long	0xc3c
- 40267 b85e 04       		.byte	0x4
- 40268 b85f 91       		.byte	0x91
- 40269 b860 C0B57F   		.sleb128 -9536
- 40270 b863 00       		.byte	0x0
- 40271 b864 31       		.uleb128 0x31
- 40272 b865 AC0E0000 		.long	0xeac
- 40273 b869 00000000 		.quad	.LBB3523
- 40273      00000000 
- 40274 b871 00000000 		.quad	.LBE3523
- 40274      00000000 
- 40275 b879 02       		.byte	0x2
- 40276 b87a 9806     		.value	0x698
- 40277 b87c B5B80000 		.long	0xb8b5
- 40278 b880 32       		.uleb128 0x32
- 40279 b881 BE0E0000 		.long	0xebe
- 40280 b885 03       		.byte	0x3
- 40281 b886 91       		.byte	0x91
- 40282 b887 C05D     		.sleb128 -4416
- 40283 b889 35       		.uleb128 0x35
- 40284 b88a CB0E0000 		.long	0xecb
- 40285 b88e 00000000 		.quad	.LBB3525
- 40285      00000000 
- 40286 b896 00000000 		.quad	.LBE3525
- 40286      00000000 
- 40287 b89e 02       		.byte	0x2
- 40288 b89f 4905     		.value	0x549
- 40289 b8a1 32       		.uleb128 0x32
- 40290 b8a2 E90E0000 		.long	0xee9
- 40291 b8a6 03       		.byte	0x3
- 40292 b8a7 91       		.byte	0x91
- 40293 b8a8 DC5D     		.sleb128 -4388
- 40294 b8aa 32       		.uleb128 0x32
- 40295 b8ab DD0E0000 		.long	0xedd
- 40296 b8af 03       		.byte	0x3
- 40297 b8b0 91       		.byte	0x91
- 40298 b8b1 E05D     		.sleb128 -4384
- 40299 b8b3 00       		.byte	0x0
- 40300 b8b4 00       		.byte	0x0
- 40301 b8b5 33       		.uleb128 0x33
- 40302 b8b6 00000000 		.quad	.LBB3527
- 40302      00000000 
- 40303 b8be 00000000 		.quad	.LBE3527
- 40303      00000000 
- 40304 b8c6 34       		.uleb128 0x34
- 40305 b8c7 480C0000 		.long	0xc48
- 40306 b8cb 04       		.byte	0x4
- 40307 b8cc 91       		.byte	0x91
- 40308 b8cd B0B57F   		.sleb128 -9552
- 40309 b8d0 00       		.byte	0x0
- 40310 b8d1 00       		.byte	0x0
- 40311 b8d2 00       		.byte	0x0
- 40312 b8d3 31       		.uleb128 0x31
- 40313 b8d4 F60E0000 		.long	0xef6
- 40314 b8d8 00000000 		.quad	.LBB3528
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1020
-
-
- 40314      00000000 
- 40315 b8e0 00000000 		.quad	.LBE3528
- 40315      00000000 
- 40316 b8e8 02       		.byte	0x2
- 40317 b8e9 8C07     		.value	0x78c
- 40318 b8eb E8BA0000 		.long	0xbae8
- 40319 b8ef 32       		.uleb128 0x32
- 40320 b8f0 080F0000 		.long	0xf08
- 40321 b8f4 03       		.byte	0x3
- 40322 b8f5 91       		.byte	0x91
- 40323 b8f6 F05D     		.sleb128 -4368
- 40324 b8f8 33       		.uleb128 0x33
- 40325 b8f9 00000000 		.quad	.LBB3529
- 40325      00000000 
- 40326 b901 00000000 		.quad	.LBE3529
- 40326      00000000 
- 40327 b909 34       		.uleb128 0x34
- 40328 b90a 140F0000 		.long	0xf14
- 40329 b90e 04       		.byte	0x4
- 40330 b90f 76       		.byte	0x76
- 40331 b910 C0B17F   		.sleb128 -10048
- 40332 b913 31       		.uleb128 0x31
- 40333 b914 210F0000 		.long	0xf21
- 40334 b918 00000000 		.quad	.LBB3530
- 40334      00000000 
- 40335 b920 00000000 		.quad	.LBE3530
- 40335      00000000 
- 40336 b928 02       		.byte	0x2
- 40337 b929 1F06     		.value	0x61f
- 40338 b92b B0B90000 		.long	0xb9b0
- 40339 b92f 32       		.uleb128 0x32
- 40340 b930 330F0000 		.long	0xf33
- 40341 b934 03       		.byte	0x3
- 40342 b935 91       		.byte	0x91
- 40343 b936 805E     		.sleb128 -4352
- 40344 b938 33       		.uleb128 0x33
- 40345 b939 00000000 		.quad	.LBB3531
- 40345      00000000 
- 40346 b941 00000000 		.quad	.LBE3531
- 40346      00000000 
- 40347 b949 34       		.uleb128 0x34
- 40348 b94a 3F0F0000 		.long	0xf3f
- 40349 b94e 09       		.byte	0x9
- 40350 b94f 03       		.byte	0x3
- 40351 b950 00000000 		.quad	mask.7943
- 40351      00000000 
- 40352 b958 35       		.uleb128 0x35
- 40353 b959 A00D0000 		.long	0xda0
- 40354 b95d 00000000 		.quad	.LBB3532
- 40354      00000000 
- 40355 b965 00000000 		.quad	.LBE3532
- 40355      00000000 
- 40356 b96d 02       		.byte	0x2
- 40357 b96e FE04     		.value	0x4fe
- 40358 b970 32       		.uleb128 0x32
- 40359 b971 BE0D0000 		.long	0xdbe
- 40360 b975 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1021
-
-
- 40361 b976 91       		.byte	0x91
- 40362 b977 905E     		.sleb128 -4336
- 40363 b979 32       		.uleb128 0x32
- 40364 b97a B20D0000 		.long	0xdb2
- 40365 b97e 03       		.byte	0x3
- 40366 b97f 91       		.byte	0x91
- 40367 b980 A05E     		.sleb128 -4320
- 40368 b982 35       		.uleb128 0x35
- 40369 b983 CB0D0000 		.long	0xdcb
- 40370 b987 00000000 		.quad	.LBB3534
- 40370      00000000 
- 40371 b98f 00000000 		.quad	.LBE3534
- 40371      00000000 
- 40372 b997 02       		.byte	0x2
- 40373 b998 7501     		.value	0x175
- 40374 b99a 32       		.uleb128 0x32
- 40375 b99b E90D0000 		.long	0xde9
- 40376 b99f 03       		.byte	0x3
- 40377 b9a0 91       		.byte	0x91
- 40378 b9a1 B05E     		.sleb128 -4304
- 40379 b9a3 32       		.uleb128 0x32
- 40380 b9a4 DD0D0000 		.long	0xddd
- 40381 b9a8 03       		.byte	0x3
- 40382 b9a9 91       		.byte	0x91
- 40383 b9aa C05E     		.sleb128 -4288
- 40384 b9ac 00       		.byte	0x0
- 40385 b9ad 00       		.byte	0x0
- 40386 b9ae 00       		.byte	0x0
- 40387 b9af 00       		.byte	0x0
- 40388 b9b0 31       		.uleb128 0x31
- 40389 b9b1 210F0000 		.long	0xf21
- 40390 b9b5 00000000 		.quad	.LBB3536
- 40390      00000000 
- 40391 b9bd 00000000 		.quad	.LBE3536
- 40391      00000000 
- 40392 b9c5 02       		.byte	0x2
- 40393 b9c6 2006     		.value	0x620
- 40394 b9c8 4DBA0000 		.long	0xba4d
- 40395 b9cc 32       		.uleb128 0x32
- 40396 b9cd 330F0000 		.long	0xf33
- 40397 b9d1 03       		.byte	0x3
- 40398 b9d2 91       		.byte	0x91
- 40399 b9d3 D05E     		.sleb128 -4272
- 40400 b9d5 33       		.uleb128 0x33
- 40401 b9d6 00000000 		.quad	.LBB3537
- 40401      00000000 
- 40402 b9de 00000000 		.quad	.LBE3537
- 40402      00000000 
- 40403 b9e6 34       		.uleb128 0x34
- 40404 b9e7 3F0F0000 		.long	0xf3f
- 40405 b9eb 09       		.byte	0x9
- 40406 b9ec 03       		.byte	0x3
- 40407 b9ed 00000000 		.quad	mask.7943
- 40407      00000000 
- 40408 b9f5 35       		.uleb128 0x35
- 40409 b9f6 A00D0000 		.long	0xda0
- 40410 b9fa 00000000 		.quad	.LBB3538
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1022
-
-
- 40410      00000000 
- 40411 ba02 00000000 		.quad	.LBE3538
- 40411      00000000 
- 40412 ba0a 02       		.byte	0x2
- 40413 ba0b FE04     		.value	0x4fe
- 40414 ba0d 32       		.uleb128 0x32
- 40415 ba0e BE0D0000 		.long	0xdbe
- 40416 ba12 03       		.byte	0x3
- 40417 ba13 91       		.byte	0x91
- 40418 ba14 E05E     		.sleb128 -4256
- 40419 ba16 32       		.uleb128 0x32
- 40420 ba17 B20D0000 		.long	0xdb2
- 40421 ba1b 03       		.byte	0x3
- 40422 ba1c 91       		.byte	0x91
- 40423 ba1d F05E     		.sleb128 -4240
- 40424 ba1f 35       		.uleb128 0x35
- 40425 ba20 CB0D0000 		.long	0xdcb
- 40426 ba24 00000000 		.quad	.LBB3540
- 40426      00000000 
- 40427 ba2c 00000000 		.quad	.LBE3540
- 40427      00000000 
- 40428 ba34 02       		.byte	0x2
- 40429 ba35 7501     		.value	0x175
- 40430 ba37 32       		.uleb128 0x32
- 40431 ba38 E90D0000 		.long	0xde9
- 40432 ba3c 03       		.byte	0x3
- 40433 ba3d 91       		.byte	0x91
- 40434 ba3e 805F     		.sleb128 -4224
- 40435 ba40 32       		.uleb128 0x32
- 40436 ba41 DD0D0000 		.long	0xddd
- 40437 ba45 03       		.byte	0x3
- 40438 ba46 91       		.byte	0x91
- 40439 ba47 905F     		.sleb128 -4208
- 40440 ba49 00       		.byte	0x0
- 40441 ba4a 00       		.byte	0x0
- 40442 ba4b 00       		.byte	0x0
- 40443 ba4c 00       		.byte	0x0
- 40444 ba4d 35       		.uleb128 0x35
- 40445 ba4e 210F0000 		.long	0xf21
- 40446 ba52 00000000 		.quad	.LBB3542
- 40446      00000000 
- 40447 ba5a 00000000 		.quad	.LBE3542
- 40447      00000000 
- 40448 ba62 02       		.byte	0x2
- 40449 ba63 2106     		.value	0x621
- 40450 ba65 32       		.uleb128 0x32
- 40451 ba66 330F0000 		.long	0xf33
- 40452 ba6a 03       		.byte	0x3
- 40453 ba6b 91       		.byte	0x91
- 40454 ba6c A05F     		.sleb128 -4192
- 40455 ba6e 33       		.uleb128 0x33
- 40456 ba6f 00000000 		.quad	.LBB3543
- 40456      00000000 
- 40457 ba77 00000000 		.quad	.LBE3543
- 40457      00000000 
- 40458 ba7f 34       		.uleb128 0x34
- 40459 ba80 3F0F0000 		.long	0xf3f
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1023
-
-
- 40460 ba84 09       		.byte	0x9
- 40461 ba85 03       		.byte	0x3
- 40462 ba86 00000000 		.quad	mask.7943
- 40462      00000000 
- 40463 ba8e 35       		.uleb128 0x35
- 40464 ba8f A00D0000 		.long	0xda0
- 40465 ba93 00000000 		.quad	.LBB3544
- 40465      00000000 
- 40466 ba9b 00000000 		.quad	.LBE3544
- 40466      00000000 
- 40467 baa3 02       		.byte	0x2
- 40468 baa4 FE04     		.value	0x4fe
- 40469 baa6 32       		.uleb128 0x32
- 40470 baa7 BE0D0000 		.long	0xdbe
- 40471 baab 03       		.byte	0x3
- 40472 baac 91       		.byte	0x91
- 40473 baad B05F     		.sleb128 -4176
- 40474 baaf 32       		.uleb128 0x32
- 40475 bab0 B20D0000 		.long	0xdb2
- 40476 bab4 03       		.byte	0x3
- 40477 bab5 91       		.byte	0x91
- 40478 bab6 C05F     		.sleb128 -4160
- 40479 bab8 35       		.uleb128 0x35
- 40480 bab9 CB0D0000 		.long	0xdcb
- 40481 babd 00000000 		.quad	.LBB3546
- 40481      00000000 
- 40482 bac5 00000000 		.quad	.LBE3546
- 40482      00000000 
- 40483 bacd 02       		.byte	0x2
- 40484 bace 7501     		.value	0x175
- 40485 bad0 32       		.uleb128 0x32
- 40486 bad1 E90D0000 		.long	0xde9
- 40487 bad5 03       		.byte	0x3
- 40488 bad6 91       		.byte	0x91
- 40489 bad7 D05F     		.sleb128 -4144
- 40490 bad9 32       		.uleb128 0x32
- 40491 bada DD0D0000 		.long	0xddd
- 40492 bade 03       		.byte	0x3
- 40493 badf 91       		.byte	0x91
- 40494 bae0 E05F     		.sleb128 -4128
- 40495 bae2 00       		.byte	0x0
- 40496 bae3 00       		.byte	0x0
- 40497 bae4 00       		.byte	0x0
- 40498 bae5 00       		.byte	0x0
- 40499 bae6 00       		.byte	0x0
- 40500 bae7 00       		.byte	0x0
- 40501 bae8 31       		.uleb128 0x31
- 40502 bae9 860E0000 		.long	0xe86
- 40503 baed 00000000 		.quad	.LBB3548
- 40503      00000000 
- 40504 baf5 00000000 		.quad	.LBE3548
- 40504      00000000 
- 40505 bafd 02       		.byte	0x2
- 40506 bafe 8C07     		.value	0x78c
- 40507 bb00 17BB0000 		.long	0xbb17
- 40508 bb04 32       		.uleb128 0x32
- 40509 bb05 A10E0000 		.long	0xea1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1024
-
-
- 40510 bb09 03       		.byte	0x3
- 40511 bb0a 91       		.byte	0x91
- 40512 bb0b F05F     		.sleb128 -4112
- 40513 bb0d 32       		.uleb128 0x32
- 40514 bb0e 970E0000 		.long	0xe97
- 40515 bb12 03       		.byte	0x3
- 40516 bb13 91       		.byte	0x91
- 40517 bb14 8060     		.sleb128 -4096
- 40518 bb16 00       		.byte	0x0
- 40519 bb17 31       		.uleb128 0x31
- 40520 bb18 8F940000 		.long	0x948f
- 40521 bb1c 00000000 		.quad	.LBB3550
- 40521      00000000 
- 40522 bb24 00000000 		.quad	.LBE3550
- 40522      00000000 
- 40523 bb2c 02       		.byte	0x2
- 40524 bb2d 8D07     		.value	0x78d
- 40525 bb2f A9BB0000 		.long	0xbba9
- 40526 bb33 32       		.uleb128 0x32
- 40527 bb34 A1940000 		.long	0x94a1
- 40528 bb38 03       		.byte	0x3
- 40529 bb39 91       		.byte	0x91
- 40530 bb3a 9060     		.sleb128 -4080
- 40531 bb3c 33       		.uleb128 0x33
- 40532 bb3d 00000000 		.quad	.LBB3551
- 40532      00000000 
- 40533 bb45 00000000 		.quad	.LBE3551
- 40533      00000000 
- 40534 bb4d 34       		.uleb128 0x34
- 40535 bb4e AD940000 		.long	0x94ad
- 40536 bb52 04       		.byte	0x4
- 40537 bb53 91       		.byte	0x91
- 40538 bb54 80B67F   		.sleb128 -9472
- 40539 bb57 34       		.uleb128 0x34
- 40540 bb58 B7940000 		.long	0x94b7
- 40541 bb5c 03       		.byte	0x3
- 40542 bb5d 91       		.byte	0x91
- 40543 bb5e A460     		.sleb128 -4060
- 40544 bb60 35       		.uleb128 0x35
- 40545 bb61 BE560000 		.long	0x56be
- 40546 bb65 00000000 		.quad	.LBB3552
- 40546      00000000 
- 40547 bb6d 00000000 		.quad	.LBE3552
- 40547      00000000 
- 40548 bb75 02       		.byte	0x2
- 40549 bb76 7906     		.value	0x679
- 40550 bb78 32       		.uleb128 0x32
- 40551 bb79 D0560000 		.long	0x56d0
- 40552 bb7d 03       		.byte	0x3
- 40553 bb7e 91       		.byte	0x91
- 40554 bb7f A860     		.sleb128 -4056
- 40555 bb81 33       		.uleb128 0x33
- 40556 bb82 00000000 		.quad	.LBB3553
- 40556      00000000 
- 40557 bb8a 00000000 		.quad	.LBE3553
- 40557      00000000 
- 40558 bb92 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1025
-
-
- 40559 bb93 DA560000 		.long	0x56da
- 40560 bb97 04       		.byte	0x4
- 40561 bb98 91       		.byte	0x91
- 40562 bb99 F0B57F   		.sleb128 -9488
- 40563 bb9c 34       		.uleb128 0x34
- 40564 bb9d E6560000 		.long	0x56e6
- 40565 bba1 03       		.byte	0x3
- 40566 bba2 91       		.byte	0x91
- 40567 bba3 AC60     		.sleb128 -4052
- 40568 bba5 00       		.byte	0x0
- 40569 bba6 00       		.byte	0x0
- 40570 bba7 00       		.byte	0x0
- 40571 bba8 00       		.byte	0x0
- 40572 bba9 31       		.uleb128 0x31
- 40573 bbaa F60E0000 		.long	0xef6
- 40574 bbae 00000000 		.quad	.LBB3554
- 40574      00000000 
- 40575 bbb6 00000000 		.quad	.LBE3554
- 40575      00000000 
- 40576 bbbe 02       		.byte	0x2
- 40577 bbbf 8D07     		.value	0x78d
- 40578 bbc1 BEBD0000 		.long	0xbdbe
- 40579 bbc5 32       		.uleb128 0x32
- 40580 bbc6 080F0000 		.long	0xf08
- 40581 bbca 03       		.byte	0x3
- 40582 bbcb 91       		.byte	0x91
- 40583 bbcc B060     		.sleb128 -4048
- 40584 bbce 33       		.uleb128 0x33
- 40585 bbcf 00000000 		.quad	.LBB3555
- 40585      00000000 
- 40586 bbd7 00000000 		.quad	.LBE3555
- 40586      00000000 
- 40587 bbdf 34       		.uleb128 0x34
- 40588 bbe0 140F0000 		.long	0xf14
- 40589 bbe4 04       		.byte	0x4
- 40590 bbe5 76       		.byte	0x76
- 40591 bbe6 D0B17F   		.sleb128 -10032
- 40592 bbe9 31       		.uleb128 0x31
- 40593 bbea 210F0000 		.long	0xf21
- 40594 bbee 00000000 		.quad	.LBB3556
- 40594      00000000 
- 40595 bbf6 00000000 		.quad	.LBE3556
- 40595      00000000 
- 40596 bbfe 02       		.byte	0x2
- 40597 bbff 1F06     		.value	0x61f
- 40598 bc01 86BC0000 		.long	0xbc86
- 40599 bc05 32       		.uleb128 0x32
- 40600 bc06 330F0000 		.long	0xf33
- 40601 bc0a 03       		.byte	0x3
- 40602 bc0b 91       		.byte	0x91
- 40603 bc0c C060     		.sleb128 -4032
- 40604 bc0e 33       		.uleb128 0x33
- 40605 bc0f 00000000 		.quad	.LBB3557
- 40605      00000000 
- 40606 bc17 00000000 		.quad	.LBE3557
- 40606      00000000 
- 40607 bc1f 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1026
-
-
- 40608 bc20 3F0F0000 		.long	0xf3f
- 40609 bc24 09       		.byte	0x9
- 40610 bc25 03       		.byte	0x3
- 40611 bc26 00000000 		.quad	mask.7943
- 40611      00000000 
- 40612 bc2e 35       		.uleb128 0x35
- 40613 bc2f A00D0000 		.long	0xda0
- 40614 bc33 00000000 		.quad	.LBB3558
- 40614      00000000 
- 40615 bc3b 00000000 		.quad	.LBE3558
- 40615      00000000 
- 40616 bc43 02       		.byte	0x2
- 40617 bc44 FE04     		.value	0x4fe
- 40618 bc46 32       		.uleb128 0x32
- 40619 bc47 BE0D0000 		.long	0xdbe
- 40620 bc4b 03       		.byte	0x3
- 40621 bc4c 91       		.byte	0x91
- 40622 bc4d D060     		.sleb128 -4016
- 40623 bc4f 32       		.uleb128 0x32
- 40624 bc50 B20D0000 		.long	0xdb2
- 40625 bc54 03       		.byte	0x3
- 40626 bc55 91       		.byte	0x91
- 40627 bc56 E060     		.sleb128 -4000
- 40628 bc58 35       		.uleb128 0x35
- 40629 bc59 CB0D0000 		.long	0xdcb
- 40630 bc5d 00000000 		.quad	.LBB3560
- 40630      00000000 
- 40631 bc65 00000000 		.quad	.LBE3560
- 40631      00000000 
- 40632 bc6d 02       		.byte	0x2
- 40633 bc6e 7501     		.value	0x175
- 40634 bc70 32       		.uleb128 0x32
- 40635 bc71 E90D0000 		.long	0xde9
- 40636 bc75 03       		.byte	0x3
- 40637 bc76 91       		.byte	0x91
- 40638 bc77 F060     		.sleb128 -3984
- 40639 bc79 32       		.uleb128 0x32
- 40640 bc7a DD0D0000 		.long	0xddd
- 40641 bc7e 03       		.byte	0x3
- 40642 bc7f 91       		.byte	0x91
- 40643 bc80 8061     		.sleb128 -3968
- 40644 bc82 00       		.byte	0x0
- 40645 bc83 00       		.byte	0x0
- 40646 bc84 00       		.byte	0x0
- 40647 bc85 00       		.byte	0x0
- 40648 bc86 31       		.uleb128 0x31
- 40649 bc87 210F0000 		.long	0xf21
- 40650 bc8b 00000000 		.quad	.LBB3562
- 40650      00000000 
- 40651 bc93 00000000 		.quad	.LBE3562
- 40651      00000000 
- 40652 bc9b 02       		.byte	0x2
- 40653 bc9c 2006     		.value	0x620
- 40654 bc9e 23BD0000 		.long	0xbd23
- 40655 bca2 32       		.uleb128 0x32
- 40656 bca3 330F0000 		.long	0xf33
- 40657 bca7 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1027
-
-
- 40658 bca8 91       		.byte	0x91
- 40659 bca9 9061     		.sleb128 -3952
- 40660 bcab 33       		.uleb128 0x33
- 40661 bcac 00000000 		.quad	.LBB3563
- 40661      00000000 
- 40662 bcb4 00000000 		.quad	.LBE3563
- 40662      00000000 
- 40663 bcbc 34       		.uleb128 0x34
- 40664 bcbd 3F0F0000 		.long	0xf3f
- 40665 bcc1 09       		.byte	0x9
- 40666 bcc2 03       		.byte	0x3
- 40667 bcc3 00000000 		.quad	mask.7943
- 40667      00000000 
- 40668 bccb 35       		.uleb128 0x35
- 40669 bccc A00D0000 		.long	0xda0
- 40670 bcd0 00000000 		.quad	.LBB3564
- 40670      00000000 
- 40671 bcd8 00000000 		.quad	.LBE3564
- 40671      00000000 
- 40672 bce0 02       		.byte	0x2
- 40673 bce1 FE04     		.value	0x4fe
- 40674 bce3 32       		.uleb128 0x32
- 40675 bce4 BE0D0000 		.long	0xdbe
- 40676 bce8 03       		.byte	0x3
- 40677 bce9 91       		.byte	0x91
- 40678 bcea A061     		.sleb128 -3936
- 40679 bcec 32       		.uleb128 0x32
- 40680 bced B20D0000 		.long	0xdb2
- 40681 bcf1 03       		.byte	0x3
- 40682 bcf2 91       		.byte	0x91
- 40683 bcf3 B061     		.sleb128 -3920
- 40684 bcf5 35       		.uleb128 0x35
- 40685 bcf6 CB0D0000 		.long	0xdcb
- 40686 bcfa 00000000 		.quad	.LBB3566
- 40686      00000000 
- 40687 bd02 00000000 		.quad	.LBE3566
- 40687      00000000 
- 40688 bd0a 02       		.byte	0x2
- 40689 bd0b 7501     		.value	0x175
- 40690 bd0d 32       		.uleb128 0x32
- 40691 bd0e E90D0000 		.long	0xde9
- 40692 bd12 03       		.byte	0x3
- 40693 bd13 91       		.byte	0x91
- 40694 bd14 C061     		.sleb128 -3904
- 40695 bd16 32       		.uleb128 0x32
- 40696 bd17 DD0D0000 		.long	0xddd
- 40697 bd1b 03       		.byte	0x3
- 40698 bd1c 91       		.byte	0x91
- 40699 bd1d D061     		.sleb128 -3888
- 40700 bd1f 00       		.byte	0x0
- 40701 bd20 00       		.byte	0x0
- 40702 bd21 00       		.byte	0x0
- 40703 bd22 00       		.byte	0x0
- 40704 bd23 35       		.uleb128 0x35
- 40705 bd24 210F0000 		.long	0xf21
- 40706 bd28 00000000 		.quad	.LBB3568
- 40706      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1028
-
-
- 40707 bd30 00000000 		.quad	.LBE3568
- 40707      00000000 
- 40708 bd38 02       		.byte	0x2
- 40709 bd39 2106     		.value	0x621
- 40710 bd3b 32       		.uleb128 0x32
- 40711 bd3c 330F0000 		.long	0xf33
- 40712 bd40 03       		.byte	0x3
- 40713 bd41 91       		.byte	0x91
- 40714 bd42 E061     		.sleb128 -3872
- 40715 bd44 33       		.uleb128 0x33
- 40716 bd45 00000000 		.quad	.LBB3569
- 40716      00000000 
- 40717 bd4d 00000000 		.quad	.LBE3569
- 40717      00000000 
- 40718 bd55 34       		.uleb128 0x34
- 40719 bd56 3F0F0000 		.long	0xf3f
- 40720 bd5a 09       		.byte	0x9
- 40721 bd5b 03       		.byte	0x3
- 40722 bd5c 00000000 		.quad	mask.7943
- 40722      00000000 
- 40723 bd64 35       		.uleb128 0x35
- 40724 bd65 A00D0000 		.long	0xda0
- 40725 bd69 00000000 		.quad	.LBB3570
- 40725      00000000 
- 40726 bd71 00000000 		.quad	.LBE3570
- 40726      00000000 
- 40727 bd79 02       		.byte	0x2
- 40728 bd7a FE04     		.value	0x4fe
- 40729 bd7c 32       		.uleb128 0x32
- 40730 bd7d BE0D0000 		.long	0xdbe
- 40731 bd81 03       		.byte	0x3
- 40732 bd82 91       		.byte	0x91
- 40733 bd83 F061     		.sleb128 -3856
- 40734 bd85 32       		.uleb128 0x32
- 40735 bd86 B20D0000 		.long	0xdb2
- 40736 bd8a 03       		.byte	0x3
- 40737 bd8b 91       		.byte	0x91
- 40738 bd8c 8062     		.sleb128 -3840
- 40739 bd8e 35       		.uleb128 0x35
- 40740 bd8f CB0D0000 		.long	0xdcb
- 40741 bd93 00000000 		.quad	.LBB3572
- 40741      00000000 
- 40742 bd9b 00000000 		.quad	.LBE3572
- 40742      00000000 
- 40743 bda3 02       		.byte	0x2
- 40744 bda4 7501     		.value	0x175
- 40745 bda6 32       		.uleb128 0x32
- 40746 bda7 E90D0000 		.long	0xde9
- 40747 bdab 03       		.byte	0x3
- 40748 bdac 91       		.byte	0x91
- 40749 bdad 9062     		.sleb128 -3824
- 40750 bdaf 32       		.uleb128 0x32
- 40751 bdb0 DD0D0000 		.long	0xddd
- 40752 bdb4 03       		.byte	0x3
- 40753 bdb5 91       		.byte	0x91
- 40754 bdb6 A062     		.sleb128 -3808
- 40755 bdb8 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1029
-
-
- 40756 bdb9 00       		.byte	0x0
- 40757 bdba 00       		.byte	0x0
- 40758 bdbb 00       		.byte	0x0
- 40759 bdbc 00       		.byte	0x0
- 40760 bdbd 00       		.byte	0x0
- 40761 bdbe 31       		.uleb128 0x31
- 40762 bdbf 860E0000 		.long	0xe86
- 40763 bdc3 00000000 		.quad	.LBB3574
- 40763      00000000 
- 40764 bdcb 00000000 		.quad	.LBE3574
- 40764      00000000 
- 40765 bdd3 02       		.byte	0x2
- 40766 bdd4 8D07     		.value	0x78d
- 40767 bdd6 EDBD0000 		.long	0xbded
- 40768 bdda 32       		.uleb128 0x32
- 40769 bddb A10E0000 		.long	0xea1
- 40770 bddf 03       		.byte	0x3
- 40771 bde0 91       		.byte	0x91
- 40772 bde1 B062     		.sleb128 -3792
- 40773 bde3 32       		.uleb128 0x32
- 40774 bde4 970E0000 		.long	0xe97
- 40775 bde8 03       		.byte	0x3
- 40776 bde9 91       		.byte	0x91
- 40777 bdea C062     		.sleb128 -3776
- 40778 bdec 00       		.byte	0x0
- 40779 bded 31       		.uleb128 0x31
- 40780 bdee D50B0000 		.long	0xbd5
- 40781 bdf2 00000000 		.quad	.LBB3576
- 40781      00000000 
- 40782 bdfa 00000000 		.quad	.LBE3576
- 40782      00000000 
- 40783 be02 02       		.byte	0x2
- 40784 be03 8E07     		.value	0x78e
- 40785 be05 D0C20000 		.long	0xc2d0
- 40786 be09 32       		.uleb128 0x32
- 40787 be0a F30B0000 		.long	0xbf3
- 40788 be0e 03       		.byte	0x3
- 40789 be0f 91       		.byte	0x91
- 40790 be10 DC62     		.sleb128 -3748
- 40791 be12 32       		.uleb128 0x32
- 40792 be13 E70B0000 		.long	0xbe7
- 40793 be17 03       		.byte	0x3
- 40794 be18 91       		.byte	0x91
- 40795 be19 E062     		.sleb128 -3744
- 40796 be1b 33       		.uleb128 0x33
- 40797 be1c 00000000 		.quad	.LBB3577
- 40797      00000000 
- 40798 be24 00000000 		.quad	.LBE3577
- 40798      00000000 
- 40799 be2c 34       		.uleb128 0x34
- 40800 be2d FF0B0000 		.long	0xbff
- 40801 be31 04       		.byte	0x4
- 40802 be32 76       		.byte	0x76
- 40803 be33 F0B17F   		.sleb128 -10000
- 40804 be36 34       		.uleb128 0x34
- 40805 be37 0B0C0000 		.long	0xc0b
- 40806 be3b 04       		.byte	0x4
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1030
-
-
- 40807 be3c 76       		.byte	0x76
- 40808 be3d E0B17F   		.sleb128 -10016
- 40809 be40 31       		.uleb128 0x31
- 40810 be41 540C0000 		.long	0xc54
- 40811 be45 00000000 		.quad	.LBB3578
- 40811      00000000 
- 40812 be4d 00000000 		.quad	.LBE3578
- 40812      00000000 
- 40813 be55 02       		.byte	0x2
- 40814 be56 9106     		.value	0x691
- 40815 be58 ACBE0000 		.long	0xbeac
- 40816 be5c 32       		.uleb128 0x32
- 40817 be5d 7E0C0000 		.long	0xc7e
- 40818 be61 03       		.byte	0x3
- 40819 be62 91       		.byte	0x91
- 40820 be63 F862     		.sleb128 -3720
- 40821 be65 32       		.uleb128 0x32
- 40822 be66 720C0000 		.long	0xc72
- 40823 be6a 03       		.byte	0x3
- 40824 be6b 91       		.byte	0x91
- 40825 be6c FC62     		.sleb128 -3716
- 40826 be6e 32       		.uleb128 0x32
- 40827 be6f 660C0000 		.long	0xc66
- 40828 be73 03       		.byte	0x3
- 40829 be74 91       		.byte	0x91
- 40830 be75 8063     		.sleb128 -3712
- 40831 be77 35       		.uleb128 0x35
- 40832 be78 8B0C0000 		.long	0xc8b
- 40833 be7c 00000000 		.quad	.LBB3580
- 40833      00000000 
- 40834 be84 00000000 		.quad	.LBE3580
- 40834      00000000 
- 40835 be8c 02       		.byte	0x2
- 40836 be8d 0702     		.value	0x207
- 40837 be8f 32       		.uleb128 0x32
- 40838 be90 B40C0000 		.long	0xcb4
- 40839 be94 03       		.byte	0x3
- 40840 be95 91       		.byte	0x91
- 40841 be96 9863     		.sleb128 -3688
- 40842 be98 32       		.uleb128 0x32
- 40843 be99 A90C0000 		.long	0xca9
- 40844 be9d 03       		.byte	0x3
- 40845 be9e 91       		.byte	0x91
- 40846 be9f 9C63     		.sleb128 -3684
- 40847 bea1 32       		.uleb128 0x32
- 40848 bea2 9D0C0000 		.long	0xc9d
- 40849 bea6 03       		.byte	0x3
- 40850 bea7 91       		.byte	0x91
- 40851 bea8 A063     		.sleb128 -3680
- 40852 beaa 00       		.byte	0x0
- 40853 beab 00       		.byte	0x0
- 40854 beac 31       		.uleb128 0x31
- 40855 bead C10C0000 		.long	0xcc1
- 40856 beb1 00000000 		.quad	.LBB3582
- 40856      00000000 
- 40857 beb9 00000000 		.quad	.LBE3582
- 40857      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1031
-
-
- 40858 bec1 02       		.byte	0x2
- 40859 bec2 9206     		.value	0x692
- 40860 bec4 35C10000 		.long	0xc135
- 40861 bec8 32       		.uleb128 0x32
- 40862 bec9 D30C0000 		.long	0xcd3
- 40863 becd 03       		.byte	0x3
- 40864 bece 91       		.byte	0x91
- 40865 becf B063     		.sleb128 -3664
- 40866 bed1 35       		.uleb128 0x35
- 40867 bed2 E00C0000 		.long	0xce0
- 40868 bed6 00000000 		.quad	.LBB3584
- 40868      00000000 
- 40869 bede 00000000 		.quad	.LBE3584
- 40869      00000000 
- 40870 bee6 02       		.byte	0x2
- 40871 bee7 7D03     		.value	0x37d
- 40872 bee9 32       		.uleb128 0x32
- 40873 beea FE0C0000 		.long	0xcfe
- 40874 beee 03       		.byte	0x3
- 40875 beef 91       		.byte	0x91
- 40876 bef0 C863     		.sleb128 -3640
- 40877 bef2 32       		.uleb128 0x32
- 40878 bef3 F20C0000 		.long	0xcf2
- 40879 bef7 03       		.byte	0x3
- 40880 bef8 91       		.byte	0x91
- 40881 bef9 D063     		.sleb128 -3632
- 40882 befb 33       		.uleb128 0x33
- 40883 befc 00000000 		.quad	.LBB3585
- 40883      00000000 
- 40884 bf04 00000000 		.quad	.LBE3585
- 40884      00000000 
- 40885 bf0c 34       		.uleb128 0x34
- 40886 bf0d 0A0D0000 		.long	0xd0a
- 40887 bf11 03       		.byte	0x3
- 40888 bf12 91       		.byte	0x91
- 40889 bf13 A064     		.sleb128 -3552
- 40890 bf15 34       		.uleb128 0x34
- 40891 bf16 150D0000 		.long	0xd15
- 40892 bf1a 03       		.byte	0x3
- 40893 bf1b 91       		.byte	0x91
- 40894 bf1c 9064     		.sleb128 -3568
- 40895 bf1e 34       		.uleb128 0x34
- 40896 bf1f 200D0000 		.long	0xd20
- 40897 bf23 03       		.byte	0x3
- 40898 bf24 91       		.byte	0x91
- 40899 bf25 8064     		.sleb128 -3584
- 40900 bf27 34       		.uleb128 0x34
- 40901 bf28 2C0D0000 		.long	0xd2c
- 40902 bf2c 03       		.byte	0x3
- 40903 bf2d 91       		.byte	0x91
- 40904 bf2e F063     		.sleb128 -3600
- 40905 bf30 34       		.uleb128 0x34
- 40906 bf31 380D0000 		.long	0xd38
- 40907 bf35 03       		.byte	0x3
- 40908 bf36 91       		.byte	0x91
- 40909 bf37 EC63     		.sleb128 -3604
- 40910 bf39 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1032
-
-
- 40911 bf3a 4F0D0000 		.long	0xd4f
- 40912 bf3e 00000000 		.quad	.LBB3586
- 40912      00000000 
- 40913 bf46 00000000 		.quad	.LBE3586
- 40913      00000000 
- 40914 bf4e 02       		.byte	0x2
- 40915 bf4f 5603     		.value	0x356
- 40916 bf51 68BF0000 		.long	0xbf68
- 40917 bf55 32       		.uleb128 0x32
- 40918 bf56 6A0D0000 		.long	0xd6a
- 40919 bf5a 03       		.byte	0x3
- 40920 bf5b 91       		.byte	0x91
- 40921 bf5c B064     		.sleb128 -3536
- 40922 bf5e 32       		.uleb128 0x32
- 40923 bf5f 600D0000 		.long	0xd60
- 40924 bf63 03       		.byte	0x3
- 40925 bf64 91       		.byte	0x91
- 40926 bf65 C064     		.sleb128 -3520
- 40927 bf67 00       		.byte	0x0
- 40928 bf68 31       		.uleb128 0x31
- 40929 bf69 750D0000 		.long	0xd75
- 40930 bf6d 00000000 		.quad	.LBB3588
- 40930      00000000 
- 40931 bf75 00000000 		.quad	.LBE3588
- 40931      00000000 
- 40932 bf7d 02       		.byte	0x2
- 40933 bf7e 5903     		.value	0x359
- 40934 bf80 97BF0000 		.long	0xbf97
- 40935 bf84 32       		.uleb128 0x32
- 40936 bf85 930D0000 		.long	0xd93
- 40937 bf89 03       		.byte	0x3
- 40938 bf8a 91       		.byte	0x91
- 40939 bf8b DC64     		.sleb128 -3492
- 40940 bf8d 32       		.uleb128 0x32
- 40941 bf8e 870D0000 		.long	0xd87
- 40942 bf92 03       		.byte	0x3
- 40943 bf93 91       		.byte	0x91
- 40944 bf94 E064     		.sleb128 -3488
- 40945 bf96 00       		.byte	0x0
- 40946 bf97 31       		.uleb128 0x31
- 40947 bf98 4F0D0000 		.long	0xd4f
- 40948 bf9c 00000000 		.quad	.LBB3590
- 40948      00000000 
- 40949 bfa4 00000000 		.quad	.LBE3590
- 40949      00000000 
- 40950 bfac 02       		.byte	0x2
- 40951 bfad 5B03     		.value	0x35b
- 40952 bfaf C6BF0000 		.long	0xbfc6
- 40953 bfb3 32       		.uleb128 0x32
- 40954 bfb4 6A0D0000 		.long	0xd6a
- 40955 bfb8 03       		.byte	0x3
- 40956 bfb9 91       		.byte	0x91
- 40957 bfba F064     		.sleb128 -3472
- 40958 bfbc 32       		.uleb128 0x32
- 40959 bfbd 600D0000 		.long	0xd60
- 40960 bfc1 03       		.byte	0x3
- 40961 bfc2 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1033
-
-
- 40962 bfc3 8065     		.sleb128 -3456
- 40963 bfc5 00       		.byte	0x0
- 40964 bfc6 31       		.uleb128 0x31
- 40965 bfc7 A00D0000 		.long	0xda0
- 40966 bfcb 00000000 		.quad	.LBB3592
- 40966      00000000 
- 40967 bfd3 00000000 		.quad	.LBE3592
- 40967      00000000 
- 40968 bfdb 02       		.byte	0x2
- 40969 bfdc 6403     		.value	0x364
- 40970 bfde 20C00000 		.long	0xc020
- 40971 bfe2 32       		.uleb128 0x32
- 40972 bfe3 BE0D0000 		.long	0xdbe
- 40973 bfe7 03       		.byte	0x3
- 40974 bfe8 91       		.byte	0x91
- 40975 bfe9 9065     		.sleb128 -3440
- 40976 bfeb 32       		.uleb128 0x32
- 40977 bfec B20D0000 		.long	0xdb2
- 40978 bff0 03       		.byte	0x3
- 40979 bff1 91       		.byte	0x91
- 40980 bff2 A065     		.sleb128 -3424
- 40981 bff4 35       		.uleb128 0x35
- 40982 bff5 CB0D0000 		.long	0xdcb
- 40983 bff9 00000000 		.quad	.LBB3594
- 40983      00000000 
- 40984 c001 00000000 		.quad	.LBE3594
- 40984      00000000 
- 40985 c009 02       		.byte	0x2
- 40986 c00a 7501     		.value	0x175
- 40987 c00c 32       		.uleb128 0x32
- 40988 c00d E90D0000 		.long	0xde9
- 40989 c011 03       		.byte	0x3
- 40990 c012 91       		.byte	0x91
- 40991 c013 B065     		.sleb128 -3408
- 40992 c015 32       		.uleb128 0x32
- 40993 c016 DD0D0000 		.long	0xddd
- 40994 c01a 03       		.byte	0x3
- 40995 c01b 91       		.byte	0x91
- 40996 c01c C065     		.sleb128 -3392
- 40997 c01e 00       		.byte	0x0
- 40998 c01f 00       		.byte	0x0
- 40999 c020 31       		.uleb128 0x31
- 41000 c021 FB0D0000 		.long	0xdfb
- 41001 c025 00000000 		.quad	.LBB3596
- 41001      00000000 
- 41002 c02d 00000000 		.quad	.LBE3596
- 41002      00000000 
- 41003 c035 02       		.byte	0x2
- 41004 c036 6603     		.value	0x366
- 41005 c038 4FC00000 		.long	0xc04f
- 41006 c03c 32       		.uleb128 0x32
- 41007 c03d 160E0000 		.long	0xe16
- 41008 c041 03       		.byte	0x3
- 41009 c042 91       		.byte	0x91
- 41010 c043 D065     		.sleb128 -3376
- 41011 c045 32       		.uleb128 0x32
- 41012 c046 0C0E0000 		.long	0xe0c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1034
-
-
- 41013 c04a 03       		.byte	0x3
- 41014 c04b 91       		.byte	0x91
- 41015 c04c E065     		.sleb128 -3360
- 41016 c04e 00       		.byte	0x0
- 41017 c04f 31       		.uleb128 0x31
- 41018 c050 A00D0000 		.long	0xda0
- 41019 c054 00000000 		.quad	.LBB3598
- 41019      00000000 
- 41020 c05c 00000000 		.quad	.LBE3598
- 41020      00000000 
- 41021 c064 02       		.byte	0x2
- 41022 c065 6803     		.value	0x368
- 41023 c067 A9C00000 		.long	0xc0a9
- 41024 c06b 32       		.uleb128 0x32
- 41025 c06c BE0D0000 		.long	0xdbe
- 41026 c070 03       		.byte	0x3
- 41027 c071 91       		.byte	0x91
- 41028 c072 F065     		.sleb128 -3344
- 41029 c074 32       		.uleb128 0x32
- 41030 c075 B20D0000 		.long	0xdb2
- 41031 c079 03       		.byte	0x3
- 41032 c07a 91       		.byte	0x91
- 41033 c07b 8066     		.sleb128 -3328
- 41034 c07d 35       		.uleb128 0x35
- 41035 c07e CB0D0000 		.long	0xdcb
- 41036 c082 00000000 		.quad	.LBB3600
- 41036      00000000 
- 41037 c08a 00000000 		.quad	.LBE3600
- 41037      00000000 
- 41038 c092 02       		.byte	0x2
- 41039 c093 7501     		.value	0x175
- 41040 c095 32       		.uleb128 0x32
- 41041 c096 E90D0000 		.long	0xde9
- 41042 c09a 03       		.byte	0x3
- 41043 c09b 91       		.byte	0x91
- 41044 c09c 9066     		.sleb128 -3312
- 41045 c09e 32       		.uleb128 0x32
- 41046 c09f DD0D0000 		.long	0xddd
- 41047 c0a3 03       		.byte	0x3
- 41048 c0a4 91       		.byte	0x91
- 41049 c0a5 A066     		.sleb128 -3296
- 41050 c0a7 00       		.byte	0x0
- 41051 c0a8 00       		.byte	0x0
- 41052 c0a9 31       		.uleb128 0x31
- 41053 c0aa FB0D0000 		.long	0xdfb
- 41054 c0ae 00000000 		.quad	.LBB3602
- 41054      00000000 
- 41055 c0b6 00000000 		.quad	.LBE3602
- 41055      00000000 
- 41056 c0be 02       		.byte	0x2
- 41057 c0bf 6A03     		.value	0x36a
- 41058 c0c1 D8C00000 		.long	0xc0d8
- 41059 c0c5 32       		.uleb128 0x32
- 41060 c0c6 160E0000 		.long	0xe16
- 41061 c0ca 03       		.byte	0x3
- 41062 c0cb 91       		.byte	0x91
- 41063 c0cc B066     		.sleb128 -3280
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1035
-
-
- 41064 c0ce 32       		.uleb128 0x32
- 41065 c0cf 0C0E0000 		.long	0xe0c
- 41066 c0d3 03       		.byte	0x3
- 41067 c0d4 91       		.byte	0x91
- 41068 c0d5 C066     		.sleb128 -3264
- 41069 c0d7 00       		.byte	0x0
- 41070 c0d8 31       		.uleb128 0x31
- 41071 c0d9 210E0000 		.long	0xe21
- 41072 c0dd 00000000 		.quad	.LBB3604
- 41072      00000000 
- 41073 c0e5 00000000 		.quad	.LBE3604
- 41073      00000000 
- 41074 c0ed 02       		.byte	0x2
- 41075 c0ee 6C03     		.value	0x36c
- 41076 c0f0 07C10000 		.long	0xc107
- 41077 c0f4 32       		.uleb128 0x32
- 41078 c0f5 3E0E0000 		.long	0xe3e
- 41079 c0f9 03       		.byte	0x3
- 41080 c0fa 91       		.byte	0x91
- 41081 c0fb D066     		.sleb128 -3248
- 41082 c0fd 32       		.uleb128 0x32
- 41083 c0fe 330E0000 		.long	0xe33
- 41084 c102 03       		.byte	0x3
- 41085 c103 91       		.byte	0x91
- 41086 c104 E066     		.sleb128 -3232
- 41087 c106 00       		.byte	0x0
- 41088 c107 35       		.uleb128 0x35
- 41089 c108 4F0D0000 		.long	0xd4f
- 41090 c10c 00000000 		.quad	.LBB3606
- 41090      00000000 
- 41091 c114 00000000 		.quad	.LBE3606
- 41091      00000000 
- 41092 c11c 02       		.byte	0x2
- 41093 c11d 6E03     		.value	0x36e
- 41094 c11f 32       		.uleb128 0x32
- 41095 c120 6A0D0000 		.long	0xd6a
- 41096 c124 03       		.byte	0x3
- 41097 c125 91       		.byte	0x91
- 41098 c126 F066     		.sleb128 -3216
- 41099 c128 32       		.uleb128 0x32
- 41100 c129 600D0000 		.long	0xd60
- 41101 c12d 03       		.byte	0x3
- 41102 c12e 91       		.byte	0x91
- 41103 c12f 8067     		.sleb128 -3200
- 41104 c131 00       		.byte	0x0
- 41105 c132 00       		.byte	0x0
- 41106 c133 00       		.byte	0x0
- 41107 c134 00       		.byte	0x0
- 41108 c135 36       		.uleb128 0x36
- 41109 c136 00000000 		.quad	.LBB3608
- 41109      00000000 
- 41110 c13e 00000000 		.quad	.LBE3608
- 41110      00000000 
- 41111 c146 55C10000 		.long	0xc155
- 41112 c14a 34       		.uleb128 0x34
- 41113 c14b 1C0C0000 		.long	0xc1c
- 41114 c14f 04       		.byte	0x4
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1036
-
-
- 41115 c150 91       		.byte	0x91
- 41116 c151 C0B67F   		.sleb128 -9408
- 41117 c154 00       		.byte	0x0
- 41118 c155 31       		.uleb128 0x31
- 41119 c156 4A0E0000 		.long	0xe4a
- 41120 c15a 00000000 		.quad	.LBB3609
- 41120      00000000 
- 41121 c162 00000000 		.quad	.LBE3609
- 41121      00000000 
- 41122 c16a 02       		.byte	0x2
- 41123 c16b 9406     		.value	0x694
- 41124 c16d F2C10000 		.long	0xc1f2
- 41125 c171 32       		.uleb128 0x32
- 41126 c172 5C0E0000 		.long	0xe5c
- 41127 c176 03       		.byte	0x3
- 41128 c177 91       		.byte	0x91
- 41129 c178 9067     		.sleb128 -3184
- 41130 c17a 33       		.uleb128 0x33
- 41131 c17b 00000000 		.quad	.LBB3610
- 41131      00000000 
- 41132 c183 00000000 		.quad	.LBE3610
- 41132      00000000 
- 41133 c18b 34       		.uleb128 0x34
- 41134 c18c 680E0000 		.long	0xe68
- 41135 c190 09       		.byte	0x9
- 41136 c191 03       		.byte	0x3
- 41137 c192 00000000 		.quad	ShiftRowTable.7385
- 41137      00000000 
- 41138 c19a 35       		.uleb128 0x35
- 41139 c19b A00D0000 		.long	0xda0
- 41140 c19f 00000000 		.quad	.LBB3611
- 41140      00000000 
- 41141 c1a7 00000000 		.quad	.LBE3611
- 41141      00000000 
- 41142 c1af 02       		.byte	0x2
- 41143 c1b0 9B02     		.value	0x29b
- 41144 c1b2 32       		.uleb128 0x32
- 41145 c1b3 BE0D0000 		.long	0xdbe
- 41146 c1b7 03       		.byte	0x3
- 41147 c1b8 91       		.byte	0x91
- 41148 c1b9 A067     		.sleb128 -3168
- 41149 c1bb 32       		.uleb128 0x32
- 41150 c1bc B20D0000 		.long	0xdb2
- 41151 c1c0 03       		.byte	0x3
- 41152 c1c1 91       		.byte	0x91
- 41153 c1c2 B067     		.sleb128 -3152
- 41154 c1c4 35       		.uleb128 0x35
- 41155 c1c5 CB0D0000 		.long	0xdcb
- 41156 c1c9 00000000 		.quad	.LBB3613
- 41156      00000000 
- 41157 c1d1 00000000 		.quad	.LBE3613
- 41157      00000000 
- 41158 c1d9 02       		.byte	0x2
- 41159 c1da 7501     		.value	0x175
- 41160 c1dc 32       		.uleb128 0x32
- 41161 c1dd E90D0000 		.long	0xde9
- 41162 c1e1 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1037
-
-
- 41163 c1e2 91       		.byte	0x91
- 41164 c1e3 C067     		.sleb128 -3136
- 41165 c1e5 32       		.uleb128 0x32
- 41166 c1e6 DD0D0000 		.long	0xddd
- 41167 c1ea 03       		.byte	0x3
- 41168 c1eb 91       		.byte	0x91
- 41169 c1ec D067     		.sleb128 -3120
- 41170 c1ee 00       		.byte	0x0
- 41171 c1ef 00       		.byte	0x0
- 41172 c1f0 00       		.byte	0x0
- 41173 c1f1 00       		.byte	0x0
- 41174 c1f2 36       		.uleb128 0x36
- 41175 c1f3 00000000 		.quad	.LBB3615
- 41175      00000000 
- 41176 c1fb 00000000 		.quad	.LBE3615
- 41176      00000000 
- 41177 c203 12C20000 		.long	0xc212
- 41178 c207 34       		.uleb128 0x34
- 41179 c208 2C0C0000 		.long	0xc2c
- 41180 c20c 04       		.byte	0x4
- 41181 c20d 91       		.byte	0x91
- 41182 c20e B0B67F   		.sleb128 -9424
- 41183 c211 00       		.byte	0x0
- 41184 c212 31       		.uleb128 0x31
- 41185 c213 860E0000 		.long	0xe86
- 41186 c217 00000000 		.quad	.LBB3616
- 41186      00000000 
- 41187 c21f 00000000 		.quad	.LBE3616
- 41187      00000000 
- 41188 c227 02       		.byte	0x2
- 41189 c228 9606     		.value	0x696
- 41190 c22a 41C20000 		.long	0xc241
- 41191 c22e 32       		.uleb128 0x32
- 41192 c22f A10E0000 		.long	0xea1
- 41193 c233 03       		.byte	0x3
- 41194 c234 91       		.byte	0x91
- 41195 c235 E067     		.sleb128 -3104
- 41196 c237 32       		.uleb128 0x32
- 41197 c238 970E0000 		.long	0xe97
- 41198 c23c 03       		.byte	0x3
- 41199 c23d 91       		.byte	0x91
- 41200 c23e F067     		.sleb128 -3088
- 41201 c240 00       		.byte	0x0
- 41202 c241 36       		.uleb128 0x36
- 41203 c242 00000000 		.quad	.LBB3618
- 41203      00000000 
- 41204 c24a 00000000 		.quad	.LBE3618
- 41204      00000000 
- 41205 c252 61C20000 		.long	0xc261
- 41206 c256 34       		.uleb128 0x34
- 41207 c257 3C0C0000 		.long	0xc3c
- 41208 c25b 04       		.byte	0x4
- 41209 c25c 91       		.byte	0x91
- 41210 c25d A0B67F   		.sleb128 -9440
- 41211 c260 00       		.byte	0x0
- 41212 c261 31       		.uleb128 0x31
- 41213 c262 AC0E0000 		.long	0xeac
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1038
-
-
- 41214 c266 00000000 		.quad	.LBB3619
- 41214      00000000 
- 41215 c26e 00000000 		.quad	.LBE3619
- 41215      00000000 
- 41216 c276 02       		.byte	0x2
- 41217 c277 9806     		.value	0x698
- 41218 c279 B2C20000 		.long	0xc2b2
- 41219 c27d 32       		.uleb128 0x32
- 41220 c27e BE0E0000 		.long	0xebe
- 41221 c282 03       		.byte	0x3
- 41222 c283 91       		.byte	0x91
- 41223 c284 8068     		.sleb128 -3072
- 41224 c286 35       		.uleb128 0x35
- 41225 c287 CB0E0000 		.long	0xecb
- 41226 c28b 00000000 		.quad	.LBB3621
- 41226      00000000 
- 41227 c293 00000000 		.quad	.LBE3621
- 41227      00000000 
- 41228 c29b 02       		.byte	0x2
- 41229 c29c 4905     		.value	0x549
- 41230 c29e 32       		.uleb128 0x32
- 41231 c29f E90E0000 		.long	0xee9
- 41232 c2a3 03       		.byte	0x3
- 41233 c2a4 91       		.byte	0x91
- 41234 c2a5 9C68     		.sleb128 -3044
- 41235 c2a7 32       		.uleb128 0x32
- 41236 c2a8 DD0E0000 		.long	0xedd
- 41237 c2ac 03       		.byte	0x3
- 41238 c2ad 91       		.byte	0x91
- 41239 c2ae A068     		.sleb128 -3040
- 41240 c2b0 00       		.byte	0x0
- 41241 c2b1 00       		.byte	0x0
- 41242 c2b2 33       		.uleb128 0x33
- 41243 c2b3 00000000 		.quad	.LBB3623
- 41243      00000000 
- 41244 c2bb 00000000 		.quad	.LBE3623
- 41244      00000000 
- 41245 c2c3 34       		.uleb128 0x34
- 41246 c2c4 480C0000 		.long	0xc48
- 41247 c2c8 04       		.byte	0x4
- 41248 c2c9 91       		.byte	0x91
- 41249 c2ca 90B67F   		.sleb128 -9456
- 41250 c2cd 00       		.byte	0x0
- 41251 c2ce 00       		.byte	0x0
- 41252 c2cf 00       		.byte	0x0
- 41253 c2d0 31       		.uleb128 0x31
- 41254 c2d1 F60E0000 		.long	0xef6
- 41255 c2d5 00000000 		.quad	.LBB3624
- 41255      00000000 
- 41256 c2dd 00000000 		.quad	.LBE3624
- 41256      00000000 
- 41257 c2e5 02       		.byte	0x2
- 41258 c2e6 8E07     		.value	0x78e
- 41259 c2e8 E5C40000 		.long	0xc4e5
- 41260 c2ec 32       		.uleb128 0x32
- 41261 c2ed 080F0000 		.long	0xf08
- 41262 c2f1 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1039
-
-
- 41263 c2f2 91       		.byte	0x91
- 41264 c2f3 B068     		.sleb128 -3024
- 41265 c2f5 33       		.uleb128 0x33
- 41266 c2f6 00000000 		.quad	.LBB3625
- 41266      00000000 
- 41267 c2fe 00000000 		.quad	.LBE3625
- 41267      00000000 
- 41268 c306 34       		.uleb128 0x34
- 41269 c307 140F0000 		.long	0xf14
- 41270 c30b 04       		.byte	0x4
- 41271 c30c 76       		.byte	0x76
- 41272 c30d 80B27F   		.sleb128 -9984
- 41273 c310 31       		.uleb128 0x31
- 41274 c311 210F0000 		.long	0xf21
- 41275 c315 00000000 		.quad	.LBB3626
- 41275      00000000 
- 41276 c31d 00000000 		.quad	.LBE3626
- 41276      00000000 
- 41277 c325 02       		.byte	0x2
- 41278 c326 1F06     		.value	0x61f
- 41279 c328 ADC30000 		.long	0xc3ad
- 41280 c32c 32       		.uleb128 0x32
- 41281 c32d 330F0000 		.long	0xf33
- 41282 c331 03       		.byte	0x3
- 41283 c332 91       		.byte	0x91
- 41284 c333 C068     		.sleb128 -3008
- 41285 c335 33       		.uleb128 0x33
- 41286 c336 00000000 		.quad	.LBB3627
- 41286      00000000 
- 41287 c33e 00000000 		.quad	.LBE3627
- 41287      00000000 
- 41288 c346 34       		.uleb128 0x34
- 41289 c347 3F0F0000 		.long	0xf3f
- 41290 c34b 09       		.byte	0x9
- 41291 c34c 03       		.byte	0x3
- 41292 c34d 00000000 		.quad	mask.7943
- 41292      00000000 
- 41293 c355 35       		.uleb128 0x35
- 41294 c356 A00D0000 		.long	0xda0
- 41295 c35a 00000000 		.quad	.LBB3628
- 41295      00000000 
- 41296 c362 00000000 		.quad	.LBE3628
- 41296      00000000 
- 41297 c36a 02       		.byte	0x2
- 41298 c36b FE04     		.value	0x4fe
- 41299 c36d 32       		.uleb128 0x32
- 41300 c36e BE0D0000 		.long	0xdbe
- 41301 c372 03       		.byte	0x3
- 41302 c373 91       		.byte	0x91
- 41303 c374 D068     		.sleb128 -2992
- 41304 c376 32       		.uleb128 0x32
- 41305 c377 B20D0000 		.long	0xdb2
- 41306 c37b 03       		.byte	0x3
- 41307 c37c 91       		.byte	0x91
- 41308 c37d E068     		.sleb128 -2976
- 41309 c37f 35       		.uleb128 0x35
- 41310 c380 CB0D0000 		.long	0xdcb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1040
-
-
- 41311 c384 00000000 		.quad	.LBB3630
- 41311      00000000 
- 41312 c38c 00000000 		.quad	.LBE3630
- 41312      00000000 
- 41313 c394 02       		.byte	0x2
- 41314 c395 7501     		.value	0x175
- 41315 c397 32       		.uleb128 0x32
- 41316 c398 E90D0000 		.long	0xde9
- 41317 c39c 03       		.byte	0x3
- 41318 c39d 91       		.byte	0x91
- 41319 c39e F068     		.sleb128 -2960
- 41320 c3a0 32       		.uleb128 0x32
- 41321 c3a1 DD0D0000 		.long	0xddd
- 41322 c3a5 03       		.byte	0x3
- 41323 c3a6 91       		.byte	0x91
- 41324 c3a7 8069     		.sleb128 -2944
- 41325 c3a9 00       		.byte	0x0
- 41326 c3aa 00       		.byte	0x0
- 41327 c3ab 00       		.byte	0x0
- 41328 c3ac 00       		.byte	0x0
- 41329 c3ad 31       		.uleb128 0x31
- 41330 c3ae 210F0000 		.long	0xf21
- 41331 c3b2 00000000 		.quad	.LBB3632
- 41331      00000000 
- 41332 c3ba 00000000 		.quad	.LBE3632
- 41332      00000000 
- 41333 c3c2 02       		.byte	0x2
- 41334 c3c3 2006     		.value	0x620
- 41335 c3c5 4AC40000 		.long	0xc44a
- 41336 c3c9 32       		.uleb128 0x32
- 41337 c3ca 330F0000 		.long	0xf33
- 41338 c3ce 03       		.byte	0x3
- 41339 c3cf 91       		.byte	0x91
- 41340 c3d0 9069     		.sleb128 -2928
- 41341 c3d2 33       		.uleb128 0x33
- 41342 c3d3 00000000 		.quad	.LBB3633
- 41342      00000000 
- 41343 c3db 00000000 		.quad	.LBE3633
- 41343      00000000 
- 41344 c3e3 34       		.uleb128 0x34
- 41345 c3e4 3F0F0000 		.long	0xf3f
- 41346 c3e8 09       		.byte	0x9
- 41347 c3e9 03       		.byte	0x3
- 41348 c3ea 00000000 		.quad	mask.7943
- 41348      00000000 
- 41349 c3f2 35       		.uleb128 0x35
- 41350 c3f3 A00D0000 		.long	0xda0
- 41351 c3f7 00000000 		.quad	.LBB3634
- 41351      00000000 
- 41352 c3ff 00000000 		.quad	.LBE3634
- 41352      00000000 
- 41353 c407 02       		.byte	0x2
- 41354 c408 FE04     		.value	0x4fe
- 41355 c40a 32       		.uleb128 0x32
- 41356 c40b BE0D0000 		.long	0xdbe
- 41357 c40f 03       		.byte	0x3
- 41358 c410 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1041
-
-
- 41359 c411 A069     		.sleb128 -2912
- 41360 c413 32       		.uleb128 0x32
- 41361 c414 B20D0000 		.long	0xdb2
- 41362 c418 03       		.byte	0x3
- 41363 c419 91       		.byte	0x91
- 41364 c41a B069     		.sleb128 -2896
- 41365 c41c 35       		.uleb128 0x35
- 41366 c41d CB0D0000 		.long	0xdcb
- 41367 c421 00000000 		.quad	.LBB3636
- 41367      00000000 
- 41368 c429 00000000 		.quad	.LBE3636
- 41368      00000000 
- 41369 c431 02       		.byte	0x2
- 41370 c432 7501     		.value	0x175
- 41371 c434 32       		.uleb128 0x32
- 41372 c435 E90D0000 		.long	0xde9
- 41373 c439 03       		.byte	0x3
- 41374 c43a 91       		.byte	0x91
- 41375 c43b C069     		.sleb128 -2880
- 41376 c43d 32       		.uleb128 0x32
- 41377 c43e DD0D0000 		.long	0xddd
- 41378 c442 03       		.byte	0x3
- 41379 c443 91       		.byte	0x91
- 41380 c444 D069     		.sleb128 -2864
- 41381 c446 00       		.byte	0x0
- 41382 c447 00       		.byte	0x0
- 41383 c448 00       		.byte	0x0
- 41384 c449 00       		.byte	0x0
- 41385 c44a 35       		.uleb128 0x35
- 41386 c44b 210F0000 		.long	0xf21
- 41387 c44f 00000000 		.quad	.LBB3638
- 41387      00000000 
- 41388 c457 00000000 		.quad	.LBE3638
- 41388      00000000 
- 41389 c45f 02       		.byte	0x2
- 41390 c460 2106     		.value	0x621
- 41391 c462 32       		.uleb128 0x32
- 41392 c463 330F0000 		.long	0xf33
- 41393 c467 03       		.byte	0x3
- 41394 c468 91       		.byte	0x91
- 41395 c469 E069     		.sleb128 -2848
- 41396 c46b 33       		.uleb128 0x33
- 41397 c46c 00000000 		.quad	.LBB3639
- 41397      00000000 
- 41398 c474 00000000 		.quad	.LBE3639
- 41398      00000000 
- 41399 c47c 34       		.uleb128 0x34
- 41400 c47d 3F0F0000 		.long	0xf3f
- 41401 c481 09       		.byte	0x9
- 41402 c482 03       		.byte	0x3
- 41403 c483 00000000 		.quad	mask.7943
- 41403      00000000 
- 41404 c48b 35       		.uleb128 0x35
- 41405 c48c A00D0000 		.long	0xda0
- 41406 c490 00000000 		.quad	.LBB3640
- 41406      00000000 
- 41407 c498 00000000 		.quad	.LBE3640
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1042
-
-
- 41407      00000000 
- 41408 c4a0 02       		.byte	0x2
- 41409 c4a1 FE04     		.value	0x4fe
- 41410 c4a3 32       		.uleb128 0x32
- 41411 c4a4 BE0D0000 		.long	0xdbe
- 41412 c4a8 03       		.byte	0x3
- 41413 c4a9 91       		.byte	0x91
- 41414 c4aa F069     		.sleb128 -2832
- 41415 c4ac 32       		.uleb128 0x32
- 41416 c4ad B20D0000 		.long	0xdb2
- 41417 c4b1 03       		.byte	0x3
- 41418 c4b2 91       		.byte	0x91
- 41419 c4b3 806A     		.sleb128 -2816
- 41420 c4b5 35       		.uleb128 0x35
- 41421 c4b6 CB0D0000 		.long	0xdcb
- 41422 c4ba 00000000 		.quad	.LBB3642
- 41422      00000000 
- 41423 c4c2 00000000 		.quad	.LBE3642
- 41423      00000000 
- 41424 c4ca 02       		.byte	0x2
- 41425 c4cb 7501     		.value	0x175
- 41426 c4cd 32       		.uleb128 0x32
- 41427 c4ce E90D0000 		.long	0xde9
- 41428 c4d2 03       		.byte	0x3
- 41429 c4d3 91       		.byte	0x91
- 41430 c4d4 906A     		.sleb128 -2800
- 41431 c4d6 32       		.uleb128 0x32
- 41432 c4d7 DD0D0000 		.long	0xddd
- 41433 c4db 03       		.byte	0x3
- 41434 c4dc 91       		.byte	0x91
- 41435 c4dd A06A     		.sleb128 -2784
- 41436 c4df 00       		.byte	0x0
- 41437 c4e0 00       		.byte	0x0
- 41438 c4e1 00       		.byte	0x0
- 41439 c4e2 00       		.byte	0x0
- 41440 c4e3 00       		.byte	0x0
- 41441 c4e4 00       		.byte	0x0
- 41442 c4e5 31       		.uleb128 0x31
- 41443 c4e6 860E0000 		.long	0xe86
- 41444 c4ea 00000000 		.quad	.LBB3644
- 41444      00000000 
- 41445 c4f2 00000000 		.quad	.LBE3644
- 41445      00000000 
- 41446 c4fa 02       		.byte	0x2
- 41447 c4fb 8E07     		.value	0x78e
- 41448 c4fd 14C50000 		.long	0xc514
- 41449 c501 32       		.uleb128 0x32
- 41450 c502 A10E0000 		.long	0xea1
- 41451 c506 03       		.byte	0x3
- 41452 c507 91       		.byte	0x91
- 41453 c508 B06A     		.sleb128 -2768
- 41454 c50a 32       		.uleb128 0x32
- 41455 c50b 970E0000 		.long	0xe97
- 41456 c50f 03       		.byte	0x3
- 41457 c510 91       		.byte	0x91
- 41458 c511 C06A     		.sleb128 -2752
- 41459 c513 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1043
-
-
- 41460 c514 31       		.uleb128 0x31
- 41461 c515 8F940000 		.long	0x948f
- 41462 c519 00000000 		.quad	.LBB3646
- 41462      00000000 
- 41463 c521 00000000 		.quad	.LBE3646
- 41463      00000000 
- 41464 c529 02       		.byte	0x2
- 41465 c52a 8F07     		.value	0x78f
- 41466 c52c A6C50000 		.long	0xc5a6
- 41467 c530 32       		.uleb128 0x32
- 41468 c531 A1940000 		.long	0x94a1
- 41469 c535 03       		.byte	0x3
- 41470 c536 91       		.byte	0x91
- 41471 c537 D06A     		.sleb128 -2736
- 41472 c539 33       		.uleb128 0x33
- 41473 c53a 00000000 		.quad	.LBB3647
- 41473      00000000 
- 41474 c542 00000000 		.quad	.LBE3647
- 41474      00000000 
- 41475 c54a 34       		.uleb128 0x34
- 41476 c54b AD940000 		.long	0x94ad
- 41477 c54f 04       		.byte	0x4
- 41478 c550 91       		.byte	0x91
- 41479 c551 E0B67F   		.sleb128 -9376
- 41480 c554 34       		.uleb128 0x34
- 41481 c555 B7940000 		.long	0x94b7
- 41482 c559 03       		.byte	0x3
- 41483 c55a 91       		.byte	0x91
- 41484 c55b E46A     		.sleb128 -2716
- 41485 c55d 35       		.uleb128 0x35
- 41486 c55e BE560000 		.long	0x56be
- 41487 c562 00000000 		.quad	.LBB3648
- 41487      00000000 
- 41488 c56a 00000000 		.quad	.LBE3648
- 41488      00000000 
- 41489 c572 02       		.byte	0x2
- 41490 c573 7906     		.value	0x679
- 41491 c575 32       		.uleb128 0x32
- 41492 c576 D0560000 		.long	0x56d0
- 41493 c57a 03       		.byte	0x3
- 41494 c57b 91       		.byte	0x91
- 41495 c57c E86A     		.sleb128 -2712
- 41496 c57e 33       		.uleb128 0x33
- 41497 c57f 00000000 		.quad	.LBB3649
- 41497      00000000 
- 41498 c587 00000000 		.quad	.LBE3649
- 41498      00000000 
- 41499 c58f 34       		.uleb128 0x34
- 41500 c590 DA560000 		.long	0x56da
- 41501 c594 04       		.byte	0x4
- 41502 c595 91       		.byte	0x91
- 41503 c596 D0B67F   		.sleb128 -9392
- 41504 c599 34       		.uleb128 0x34
- 41505 c59a E6560000 		.long	0x56e6
- 41506 c59e 03       		.byte	0x3
- 41507 c59f 91       		.byte	0x91
- 41508 c5a0 EC6A     		.sleb128 -2708
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1044
-
-
- 41509 c5a2 00       		.byte	0x0
- 41510 c5a3 00       		.byte	0x0
- 41511 c5a4 00       		.byte	0x0
- 41512 c5a5 00       		.byte	0x0
- 41513 c5a6 31       		.uleb128 0x31
- 41514 c5a7 F60E0000 		.long	0xef6
- 41515 c5ab 00000000 		.quad	.LBB3650
- 41515      00000000 
- 41516 c5b3 00000000 		.quad	.LBE3650
- 41516      00000000 
- 41517 c5bb 02       		.byte	0x2
- 41518 c5bc 8F07     		.value	0x78f
- 41519 c5be BBC70000 		.long	0xc7bb
- 41520 c5c2 32       		.uleb128 0x32
- 41521 c5c3 080F0000 		.long	0xf08
- 41522 c5c7 03       		.byte	0x3
- 41523 c5c8 91       		.byte	0x91
- 41524 c5c9 F06A     		.sleb128 -2704
- 41525 c5cb 33       		.uleb128 0x33
- 41526 c5cc 00000000 		.quad	.LBB3651
- 41526      00000000 
- 41527 c5d4 00000000 		.quad	.LBE3651
- 41527      00000000 
- 41528 c5dc 34       		.uleb128 0x34
- 41529 c5dd 140F0000 		.long	0xf14
- 41530 c5e1 04       		.byte	0x4
- 41531 c5e2 76       		.byte	0x76
- 41532 c5e3 90B27F   		.sleb128 -9968
- 41533 c5e6 31       		.uleb128 0x31
- 41534 c5e7 210F0000 		.long	0xf21
- 41535 c5eb 00000000 		.quad	.LBB3652
- 41535      00000000 
- 41536 c5f3 00000000 		.quad	.LBE3652
- 41536      00000000 
- 41537 c5fb 02       		.byte	0x2
- 41538 c5fc 1F06     		.value	0x61f
- 41539 c5fe 83C60000 		.long	0xc683
- 41540 c602 32       		.uleb128 0x32
- 41541 c603 330F0000 		.long	0xf33
- 41542 c607 03       		.byte	0x3
- 41543 c608 91       		.byte	0x91
- 41544 c609 806B     		.sleb128 -2688
- 41545 c60b 33       		.uleb128 0x33
- 41546 c60c 00000000 		.quad	.LBB3653
- 41546      00000000 
- 41547 c614 00000000 		.quad	.LBE3653
- 41547      00000000 
- 41548 c61c 34       		.uleb128 0x34
- 41549 c61d 3F0F0000 		.long	0xf3f
- 41550 c621 09       		.byte	0x9
- 41551 c622 03       		.byte	0x3
- 41552 c623 00000000 		.quad	mask.7943
- 41552      00000000 
- 41553 c62b 35       		.uleb128 0x35
- 41554 c62c A00D0000 		.long	0xda0
- 41555 c630 00000000 		.quad	.LBB3654
- 41555      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1045
-
-
- 41556 c638 00000000 		.quad	.LBE3654
- 41556      00000000 
- 41557 c640 02       		.byte	0x2
- 41558 c641 FE04     		.value	0x4fe
- 41559 c643 32       		.uleb128 0x32
- 41560 c644 BE0D0000 		.long	0xdbe
- 41561 c648 03       		.byte	0x3
- 41562 c649 91       		.byte	0x91
- 41563 c64a 906B     		.sleb128 -2672
- 41564 c64c 32       		.uleb128 0x32
- 41565 c64d B20D0000 		.long	0xdb2
- 41566 c651 03       		.byte	0x3
- 41567 c652 91       		.byte	0x91
- 41568 c653 A06B     		.sleb128 -2656
- 41569 c655 35       		.uleb128 0x35
- 41570 c656 CB0D0000 		.long	0xdcb
- 41571 c65a 00000000 		.quad	.LBB3656
- 41571      00000000 
- 41572 c662 00000000 		.quad	.LBE3656
- 41572      00000000 
- 41573 c66a 02       		.byte	0x2
- 41574 c66b 7501     		.value	0x175
- 41575 c66d 32       		.uleb128 0x32
- 41576 c66e E90D0000 		.long	0xde9
- 41577 c672 03       		.byte	0x3
- 41578 c673 91       		.byte	0x91
- 41579 c674 B06B     		.sleb128 -2640
- 41580 c676 32       		.uleb128 0x32
- 41581 c677 DD0D0000 		.long	0xddd
- 41582 c67b 03       		.byte	0x3
- 41583 c67c 91       		.byte	0x91
- 41584 c67d C06B     		.sleb128 -2624
- 41585 c67f 00       		.byte	0x0
- 41586 c680 00       		.byte	0x0
- 41587 c681 00       		.byte	0x0
- 41588 c682 00       		.byte	0x0
- 41589 c683 31       		.uleb128 0x31
- 41590 c684 210F0000 		.long	0xf21
- 41591 c688 00000000 		.quad	.LBB3658
- 41591      00000000 
- 41592 c690 00000000 		.quad	.LBE3658
- 41592      00000000 
- 41593 c698 02       		.byte	0x2
- 41594 c699 2006     		.value	0x620
- 41595 c69b 20C70000 		.long	0xc720
- 41596 c69f 32       		.uleb128 0x32
- 41597 c6a0 330F0000 		.long	0xf33
- 41598 c6a4 03       		.byte	0x3
- 41599 c6a5 91       		.byte	0x91
- 41600 c6a6 D06B     		.sleb128 -2608
- 41601 c6a8 33       		.uleb128 0x33
- 41602 c6a9 00000000 		.quad	.LBB3659
- 41602      00000000 
- 41603 c6b1 00000000 		.quad	.LBE3659
- 41603      00000000 
- 41604 c6b9 34       		.uleb128 0x34
- 41605 c6ba 3F0F0000 		.long	0xf3f
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1046
-
-
- 41606 c6be 09       		.byte	0x9
- 41607 c6bf 03       		.byte	0x3
- 41608 c6c0 00000000 		.quad	mask.7943
- 41608      00000000 
- 41609 c6c8 35       		.uleb128 0x35
- 41610 c6c9 A00D0000 		.long	0xda0
- 41611 c6cd 00000000 		.quad	.LBB3660
- 41611      00000000 
- 41612 c6d5 00000000 		.quad	.LBE3660
- 41612      00000000 
- 41613 c6dd 02       		.byte	0x2
- 41614 c6de FE04     		.value	0x4fe
- 41615 c6e0 32       		.uleb128 0x32
- 41616 c6e1 BE0D0000 		.long	0xdbe
- 41617 c6e5 03       		.byte	0x3
- 41618 c6e6 91       		.byte	0x91
- 41619 c6e7 E06B     		.sleb128 -2592
- 41620 c6e9 32       		.uleb128 0x32
- 41621 c6ea B20D0000 		.long	0xdb2
- 41622 c6ee 03       		.byte	0x3
- 41623 c6ef 91       		.byte	0x91
- 41624 c6f0 F06B     		.sleb128 -2576
- 41625 c6f2 35       		.uleb128 0x35
- 41626 c6f3 CB0D0000 		.long	0xdcb
- 41627 c6f7 00000000 		.quad	.LBB3662
- 41627      00000000 
- 41628 c6ff 00000000 		.quad	.LBE3662
- 41628      00000000 
- 41629 c707 02       		.byte	0x2
- 41630 c708 7501     		.value	0x175
- 41631 c70a 32       		.uleb128 0x32
- 41632 c70b E90D0000 		.long	0xde9
- 41633 c70f 03       		.byte	0x3
- 41634 c710 91       		.byte	0x91
- 41635 c711 806C     		.sleb128 -2560
- 41636 c713 32       		.uleb128 0x32
- 41637 c714 DD0D0000 		.long	0xddd
- 41638 c718 03       		.byte	0x3
- 41639 c719 91       		.byte	0x91
- 41640 c71a 906C     		.sleb128 -2544
- 41641 c71c 00       		.byte	0x0
- 41642 c71d 00       		.byte	0x0
- 41643 c71e 00       		.byte	0x0
- 41644 c71f 00       		.byte	0x0
- 41645 c720 35       		.uleb128 0x35
- 41646 c721 210F0000 		.long	0xf21
- 41647 c725 00000000 		.quad	.LBB3664
- 41647      00000000 
- 41648 c72d 00000000 		.quad	.LBE3664
- 41648      00000000 
- 41649 c735 02       		.byte	0x2
- 41650 c736 2106     		.value	0x621
- 41651 c738 32       		.uleb128 0x32
- 41652 c739 330F0000 		.long	0xf33
- 41653 c73d 03       		.byte	0x3
- 41654 c73e 91       		.byte	0x91
- 41655 c73f A06C     		.sleb128 -2528
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1047
-
-
- 41656 c741 33       		.uleb128 0x33
- 41657 c742 00000000 		.quad	.LBB3665
- 41657      00000000 
- 41658 c74a 00000000 		.quad	.LBE3665
- 41658      00000000 
- 41659 c752 34       		.uleb128 0x34
- 41660 c753 3F0F0000 		.long	0xf3f
- 41661 c757 09       		.byte	0x9
- 41662 c758 03       		.byte	0x3
- 41663 c759 00000000 		.quad	mask.7943
- 41663      00000000 
- 41664 c761 35       		.uleb128 0x35
- 41665 c762 A00D0000 		.long	0xda0
- 41666 c766 00000000 		.quad	.LBB3666
- 41666      00000000 
- 41667 c76e 00000000 		.quad	.LBE3666
- 41667      00000000 
- 41668 c776 02       		.byte	0x2
- 41669 c777 FE04     		.value	0x4fe
- 41670 c779 32       		.uleb128 0x32
- 41671 c77a BE0D0000 		.long	0xdbe
- 41672 c77e 03       		.byte	0x3
- 41673 c77f 91       		.byte	0x91
- 41674 c780 B06C     		.sleb128 -2512
- 41675 c782 32       		.uleb128 0x32
- 41676 c783 B20D0000 		.long	0xdb2
- 41677 c787 03       		.byte	0x3
- 41678 c788 91       		.byte	0x91
- 41679 c789 C06C     		.sleb128 -2496
- 41680 c78b 35       		.uleb128 0x35
- 41681 c78c CB0D0000 		.long	0xdcb
- 41682 c790 00000000 		.quad	.LBB3668
- 41682      00000000 
- 41683 c798 00000000 		.quad	.LBE3668
- 41683      00000000 
- 41684 c7a0 02       		.byte	0x2
- 41685 c7a1 7501     		.value	0x175
- 41686 c7a3 32       		.uleb128 0x32
- 41687 c7a4 E90D0000 		.long	0xde9
- 41688 c7a8 03       		.byte	0x3
- 41689 c7a9 91       		.byte	0x91
- 41690 c7aa D06C     		.sleb128 -2480
- 41691 c7ac 32       		.uleb128 0x32
- 41692 c7ad DD0D0000 		.long	0xddd
- 41693 c7b1 03       		.byte	0x3
- 41694 c7b2 91       		.byte	0x91
- 41695 c7b3 E06C     		.sleb128 -2464
- 41696 c7b5 00       		.byte	0x0
- 41697 c7b6 00       		.byte	0x0
- 41698 c7b7 00       		.byte	0x0
- 41699 c7b8 00       		.byte	0x0
- 41700 c7b9 00       		.byte	0x0
- 41701 c7ba 00       		.byte	0x0
- 41702 c7bb 31       		.uleb128 0x31
- 41703 c7bc 860E0000 		.long	0xe86
- 41704 c7c0 00000000 		.quad	.LBB3670
- 41704      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1048
-
-
- 41705 c7c8 00000000 		.quad	.LBE3670
- 41705      00000000 
- 41706 c7d0 02       		.byte	0x2
- 41707 c7d1 8F07     		.value	0x78f
- 41708 c7d3 EAC70000 		.long	0xc7ea
- 41709 c7d7 32       		.uleb128 0x32
- 41710 c7d8 A10E0000 		.long	0xea1
- 41711 c7dc 03       		.byte	0x3
- 41712 c7dd 91       		.byte	0x91
- 41713 c7de F06C     		.sleb128 -2448
- 41714 c7e0 32       		.uleb128 0x32
- 41715 c7e1 970E0000 		.long	0xe97
- 41716 c7e5 03       		.byte	0x3
- 41717 c7e6 91       		.byte	0x91
- 41718 c7e7 806D     		.sleb128 -2432
- 41719 c7e9 00       		.byte	0x0
- 41720 c7ea 31       		.uleb128 0x31
- 41721 c7eb D50B0000 		.long	0xbd5
- 41722 c7ef 00000000 		.quad	.LBB3672
- 41722      00000000 
- 41723 c7f7 00000000 		.quad	.LBE3672
- 41723      00000000 
- 41724 c7ff 02       		.byte	0x2
- 41725 c800 9007     		.value	0x790
- 41726 c802 CDCC0000 		.long	0xcccd
- 41727 c806 32       		.uleb128 0x32
- 41728 c807 F30B0000 		.long	0xbf3
- 41729 c80b 03       		.byte	0x3
- 41730 c80c 91       		.byte	0x91
- 41731 c80d 9C6D     		.sleb128 -2404
- 41732 c80f 32       		.uleb128 0x32
- 41733 c810 E70B0000 		.long	0xbe7
- 41734 c814 03       		.byte	0x3
- 41735 c815 91       		.byte	0x91
- 41736 c816 A06D     		.sleb128 -2400
- 41737 c818 33       		.uleb128 0x33
- 41738 c819 00000000 		.quad	.LBB3673
- 41738      00000000 
- 41739 c821 00000000 		.quad	.LBE3673
- 41739      00000000 
- 41740 c829 34       		.uleb128 0x34
- 41741 c82a FF0B0000 		.long	0xbff
- 41742 c82e 04       		.byte	0x4
- 41743 c82f 76       		.byte	0x76
- 41744 c830 B0B27F   		.sleb128 -9936
- 41745 c833 34       		.uleb128 0x34
- 41746 c834 0B0C0000 		.long	0xc0b
- 41747 c838 04       		.byte	0x4
- 41748 c839 76       		.byte	0x76
- 41749 c83a A0B27F   		.sleb128 -9952
- 41750 c83d 31       		.uleb128 0x31
- 41751 c83e 540C0000 		.long	0xc54
- 41752 c842 00000000 		.quad	.LBB3674
- 41752      00000000 
- 41753 c84a 00000000 		.quad	.LBE3674
- 41753      00000000 
- 41754 c852 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1049
-
-
- 41755 c853 9106     		.value	0x691
- 41756 c855 A9C80000 		.long	0xc8a9
- 41757 c859 32       		.uleb128 0x32
- 41758 c85a 7E0C0000 		.long	0xc7e
- 41759 c85e 03       		.byte	0x3
- 41760 c85f 91       		.byte	0x91
- 41761 c860 B86D     		.sleb128 -2376
- 41762 c862 32       		.uleb128 0x32
- 41763 c863 720C0000 		.long	0xc72
- 41764 c867 03       		.byte	0x3
- 41765 c868 91       		.byte	0x91
- 41766 c869 BC6D     		.sleb128 -2372
- 41767 c86b 32       		.uleb128 0x32
- 41768 c86c 660C0000 		.long	0xc66
- 41769 c870 03       		.byte	0x3
- 41770 c871 91       		.byte	0x91
- 41771 c872 C06D     		.sleb128 -2368
- 41772 c874 35       		.uleb128 0x35
- 41773 c875 8B0C0000 		.long	0xc8b
- 41774 c879 00000000 		.quad	.LBB3676
- 41774      00000000 
- 41775 c881 00000000 		.quad	.LBE3676
- 41775      00000000 
- 41776 c889 02       		.byte	0x2
- 41777 c88a 0702     		.value	0x207
- 41778 c88c 32       		.uleb128 0x32
- 41779 c88d B40C0000 		.long	0xcb4
- 41780 c891 03       		.byte	0x3
- 41781 c892 91       		.byte	0x91
- 41782 c893 D86D     		.sleb128 -2344
- 41783 c895 32       		.uleb128 0x32
- 41784 c896 A90C0000 		.long	0xca9
- 41785 c89a 03       		.byte	0x3
- 41786 c89b 91       		.byte	0x91
- 41787 c89c DC6D     		.sleb128 -2340
- 41788 c89e 32       		.uleb128 0x32
- 41789 c89f 9D0C0000 		.long	0xc9d
- 41790 c8a3 03       		.byte	0x3
- 41791 c8a4 91       		.byte	0x91
- 41792 c8a5 E06D     		.sleb128 -2336
- 41793 c8a7 00       		.byte	0x0
- 41794 c8a8 00       		.byte	0x0
- 41795 c8a9 31       		.uleb128 0x31
- 41796 c8aa C10C0000 		.long	0xcc1
- 41797 c8ae 00000000 		.quad	.LBB3678
- 41797      00000000 
- 41798 c8b6 00000000 		.quad	.LBE3678
- 41798      00000000 
- 41799 c8be 02       		.byte	0x2
- 41800 c8bf 9206     		.value	0x692
- 41801 c8c1 32CB0000 		.long	0xcb32
- 41802 c8c5 32       		.uleb128 0x32
- 41803 c8c6 D30C0000 		.long	0xcd3
- 41804 c8ca 03       		.byte	0x3
- 41805 c8cb 91       		.byte	0x91
- 41806 c8cc F06D     		.sleb128 -2320
- 41807 c8ce 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1050
-
-
- 41808 c8cf E00C0000 		.long	0xce0
- 41809 c8d3 00000000 		.quad	.LBB3680
- 41809      00000000 
- 41810 c8db 00000000 		.quad	.LBE3680
- 41810      00000000 
- 41811 c8e3 02       		.byte	0x2
- 41812 c8e4 7D03     		.value	0x37d
- 41813 c8e6 32       		.uleb128 0x32
- 41814 c8e7 FE0C0000 		.long	0xcfe
- 41815 c8eb 03       		.byte	0x3
- 41816 c8ec 91       		.byte	0x91
- 41817 c8ed 886E     		.sleb128 -2296
- 41818 c8ef 32       		.uleb128 0x32
- 41819 c8f0 F20C0000 		.long	0xcf2
- 41820 c8f4 03       		.byte	0x3
- 41821 c8f5 91       		.byte	0x91
- 41822 c8f6 906E     		.sleb128 -2288
- 41823 c8f8 33       		.uleb128 0x33
- 41824 c8f9 00000000 		.quad	.LBB3681
- 41824      00000000 
- 41825 c901 00000000 		.quad	.LBE3681
- 41825      00000000 
- 41826 c909 34       		.uleb128 0x34
- 41827 c90a 0A0D0000 		.long	0xd0a
- 41828 c90e 03       		.byte	0x3
- 41829 c90f 91       		.byte	0x91
- 41830 c910 E06E     		.sleb128 -2208
- 41831 c912 34       		.uleb128 0x34
- 41832 c913 150D0000 		.long	0xd15
- 41833 c917 03       		.byte	0x3
- 41834 c918 91       		.byte	0x91
- 41835 c919 D06E     		.sleb128 -2224
- 41836 c91b 34       		.uleb128 0x34
- 41837 c91c 200D0000 		.long	0xd20
- 41838 c920 03       		.byte	0x3
- 41839 c921 91       		.byte	0x91
- 41840 c922 C06E     		.sleb128 -2240
- 41841 c924 34       		.uleb128 0x34
- 41842 c925 2C0D0000 		.long	0xd2c
- 41843 c929 03       		.byte	0x3
- 41844 c92a 91       		.byte	0x91
- 41845 c92b B06E     		.sleb128 -2256
- 41846 c92d 34       		.uleb128 0x34
- 41847 c92e 380D0000 		.long	0xd38
- 41848 c932 03       		.byte	0x3
- 41849 c933 91       		.byte	0x91
- 41850 c934 AC6E     		.sleb128 -2260
- 41851 c936 31       		.uleb128 0x31
- 41852 c937 4F0D0000 		.long	0xd4f
- 41853 c93b 00000000 		.quad	.LBB3682
- 41853      00000000 
- 41854 c943 00000000 		.quad	.LBE3682
- 41854      00000000 
- 41855 c94b 02       		.byte	0x2
- 41856 c94c 5603     		.value	0x356
- 41857 c94e 65C90000 		.long	0xc965
- 41858 c952 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1051
-
-
- 41859 c953 6A0D0000 		.long	0xd6a
- 41860 c957 03       		.byte	0x3
- 41861 c958 91       		.byte	0x91
- 41862 c959 F06E     		.sleb128 -2192
- 41863 c95b 32       		.uleb128 0x32
- 41864 c95c 600D0000 		.long	0xd60
- 41865 c960 03       		.byte	0x3
- 41866 c961 91       		.byte	0x91
- 41867 c962 806F     		.sleb128 -2176
- 41868 c964 00       		.byte	0x0
- 41869 c965 31       		.uleb128 0x31
- 41870 c966 750D0000 		.long	0xd75
- 41871 c96a 00000000 		.quad	.LBB3684
- 41871      00000000 
- 41872 c972 00000000 		.quad	.LBE3684
- 41872      00000000 
- 41873 c97a 02       		.byte	0x2
- 41874 c97b 5903     		.value	0x359
- 41875 c97d 94C90000 		.long	0xc994
- 41876 c981 32       		.uleb128 0x32
- 41877 c982 930D0000 		.long	0xd93
- 41878 c986 03       		.byte	0x3
- 41879 c987 91       		.byte	0x91
- 41880 c988 9C6F     		.sleb128 -2148
- 41881 c98a 32       		.uleb128 0x32
- 41882 c98b 870D0000 		.long	0xd87
- 41883 c98f 03       		.byte	0x3
- 41884 c990 91       		.byte	0x91
- 41885 c991 A06F     		.sleb128 -2144
- 41886 c993 00       		.byte	0x0
- 41887 c994 31       		.uleb128 0x31
- 41888 c995 4F0D0000 		.long	0xd4f
- 41889 c999 00000000 		.quad	.LBB3686
- 41889      00000000 
- 41890 c9a1 00000000 		.quad	.LBE3686
- 41890      00000000 
- 41891 c9a9 02       		.byte	0x2
- 41892 c9aa 5B03     		.value	0x35b
- 41893 c9ac C3C90000 		.long	0xc9c3
- 41894 c9b0 32       		.uleb128 0x32
- 41895 c9b1 6A0D0000 		.long	0xd6a
- 41896 c9b5 03       		.byte	0x3
- 41897 c9b6 91       		.byte	0x91
- 41898 c9b7 B06F     		.sleb128 -2128
- 41899 c9b9 32       		.uleb128 0x32
- 41900 c9ba 600D0000 		.long	0xd60
- 41901 c9be 03       		.byte	0x3
- 41902 c9bf 91       		.byte	0x91
- 41903 c9c0 C06F     		.sleb128 -2112
- 41904 c9c2 00       		.byte	0x0
- 41905 c9c3 31       		.uleb128 0x31
- 41906 c9c4 A00D0000 		.long	0xda0
- 41907 c9c8 00000000 		.quad	.LBB3688
- 41907      00000000 
- 41908 c9d0 00000000 		.quad	.LBE3688
- 41908      00000000 
- 41909 c9d8 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1052
-
-
- 41910 c9d9 6403     		.value	0x364
- 41911 c9db 1DCA0000 		.long	0xca1d
- 41912 c9df 32       		.uleb128 0x32
- 41913 c9e0 BE0D0000 		.long	0xdbe
- 41914 c9e4 03       		.byte	0x3
- 41915 c9e5 91       		.byte	0x91
- 41916 c9e6 D06F     		.sleb128 -2096
- 41917 c9e8 32       		.uleb128 0x32
- 41918 c9e9 B20D0000 		.long	0xdb2
- 41919 c9ed 03       		.byte	0x3
- 41920 c9ee 91       		.byte	0x91
- 41921 c9ef E06F     		.sleb128 -2080
- 41922 c9f1 35       		.uleb128 0x35
- 41923 c9f2 CB0D0000 		.long	0xdcb
- 41924 c9f6 00000000 		.quad	.LBB3690
- 41924      00000000 
- 41925 c9fe 00000000 		.quad	.LBE3690
- 41925      00000000 
- 41926 ca06 02       		.byte	0x2
- 41927 ca07 7501     		.value	0x175
- 41928 ca09 32       		.uleb128 0x32
- 41929 ca0a E90D0000 		.long	0xde9
- 41930 ca0e 03       		.byte	0x3
- 41931 ca0f 91       		.byte	0x91
- 41932 ca10 F06F     		.sleb128 -2064
- 41933 ca12 32       		.uleb128 0x32
- 41934 ca13 DD0D0000 		.long	0xddd
- 41935 ca17 03       		.byte	0x3
- 41936 ca18 91       		.byte	0x91
- 41937 ca19 8070     		.sleb128 -2048
- 41938 ca1b 00       		.byte	0x0
- 41939 ca1c 00       		.byte	0x0
- 41940 ca1d 31       		.uleb128 0x31
- 41941 ca1e FB0D0000 		.long	0xdfb
- 41942 ca22 00000000 		.quad	.LBB3692
- 41942      00000000 
- 41943 ca2a 00000000 		.quad	.LBE3692
- 41943      00000000 
- 41944 ca32 02       		.byte	0x2
- 41945 ca33 6603     		.value	0x366
- 41946 ca35 4CCA0000 		.long	0xca4c
- 41947 ca39 32       		.uleb128 0x32
- 41948 ca3a 160E0000 		.long	0xe16
- 41949 ca3e 03       		.byte	0x3
- 41950 ca3f 91       		.byte	0x91
- 41951 ca40 9070     		.sleb128 -2032
- 41952 ca42 32       		.uleb128 0x32
- 41953 ca43 0C0E0000 		.long	0xe0c
- 41954 ca47 03       		.byte	0x3
- 41955 ca48 91       		.byte	0x91
- 41956 ca49 A070     		.sleb128 -2016
- 41957 ca4b 00       		.byte	0x0
- 41958 ca4c 31       		.uleb128 0x31
- 41959 ca4d A00D0000 		.long	0xda0
- 41960 ca51 00000000 		.quad	.LBB3694
- 41960      00000000 
- 41961 ca59 00000000 		.quad	.LBE3694
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1053
-
-
- 41961      00000000 
- 41962 ca61 02       		.byte	0x2
- 41963 ca62 6803     		.value	0x368
- 41964 ca64 A6CA0000 		.long	0xcaa6
- 41965 ca68 32       		.uleb128 0x32
- 41966 ca69 BE0D0000 		.long	0xdbe
- 41967 ca6d 03       		.byte	0x3
- 41968 ca6e 91       		.byte	0x91
- 41969 ca6f B070     		.sleb128 -2000
- 41970 ca71 32       		.uleb128 0x32
- 41971 ca72 B20D0000 		.long	0xdb2
- 41972 ca76 03       		.byte	0x3
- 41973 ca77 91       		.byte	0x91
- 41974 ca78 C070     		.sleb128 -1984
- 41975 ca7a 35       		.uleb128 0x35
- 41976 ca7b CB0D0000 		.long	0xdcb
- 41977 ca7f 00000000 		.quad	.LBB3696
- 41977      00000000 
- 41978 ca87 00000000 		.quad	.LBE3696
- 41978      00000000 
- 41979 ca8f 02       		.byte	0x2
- 41980 ca90 7501     		.value	0x175
- 41981 ca92 32       		.uleb128 0x32
- 41982 ca93 E90D0000 		.long	0xde9
- 41983 ca97 03       		.byte	0x3
- 41984 ca98 91       		.byte	0x91
- 41985 ca99 D070     		.sleb128 -1968
- 41986 ca9b 32       		.uleb128 0x32
- 41987 ca9c DD0D0000 		.long	0xddd
- 41988 caa0 03       		.byte	0x3
- 41989 caa1 91       		.byte	0x91
- 41990 caa2 E070     		.sleb128 -1952
- 41991 caa4 00       		.byte	0x0
- 41992 caa5 00       		.byte	0x0
- 41993 caa6 31       		.uleb128 0x31
- 41994 caa7 FB0D0000 		.long	0xdfb
- 41995 caab 00000000 		.quad	.LBB3698
- 41995      00000000 
- 41996 cab3 00000000 		.quad	.LBE3698
- 41996      00000000 
- 41997 cabb 02       		.byte	0x2
- 41998 cabc 6A03     		.value	0x36a
- 41999 cabe D5CA0000 		.long	0xcad5
- 42000 cac2 32       		.uleb128 0x32
- 42001 cac3 160E0000 		.long	0xe16
- 42002 cac7 03       		.byte	0x3
- 42003 cac8 91       		.byte	0x91
- 42004 cac9 F070     		.sleb128 -1936
- 42005 cacb 32       		.uleb128 0x32
- 42006 cacc 0C0E0000 		.long	0xe0c
- 42007 cad0 03       		.byte	0x3
- 42008 cad1 91       		.byte	0x91
- 42009 cad2 8071     		.sleb128 -1920
- 42010 cad4 00       		.byte	0x0
- 42011 cad5 31       		.uleb128 0x31
- 42012 cad6 210E0000 		.long	0xe21
- 42013 cada 00000000 		.quad	.LBB3700
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1054
-
-
- 42013      00000000 
- 42014 cae2 00000000 		.quad	.LBE3700
- 42014      00000000 
- 42015 caea 02       		.byte	0x2
- 42016 caeb 6C03     		.value	0x36c
- 42017 caed 04CB0000 		.long	0xcb04
- 42018 caf1 32       		.uleb128 0x32
- 42019 caf2 3E0E0000 		.long	0xe3e
- 42020 caf6 03       		.byte	0x3
- 42021 caf7 91       		.byte	0x91
- 42022 caf8 9071     		.sleb128 -1904
- 42023 cafa 32       		.uleb128 0x32
- 42024 cafb 330E0000 		.long	0xe33
- 42025 caff 03       		.byte	0x3
- 42026 cb00 91       		.byte	0x91
- 42027 cb01 A071     		.sleb128 -1888
- 42028 cb03 00       		.byte	0x0
- 42029 cb04 35       		.uleb128 0x35
- 42030 cb05 4F0D0000 		.long	0xd4f
- 42031 cb09 00000000 		.quad	.LBB3702
- 42031      00000000 
- 42032 cb11 00000000 		.quad	.LBE3702
- 42032      00000000 
- 42033 cb19 02       		.byte	0x2
- 42034 cb1a 6E03     		.value	0x36e
- 42035 cb1c 32       		.uleb128 0x32
- 42036 cb1d 6A0D0000 		.long	0xd6a
- 42037 cb21 03       		.byte	0x3
- 42038 cb22 91       		.byte	0x91
- 42039 cb23 B071     		.sleb128 -1872
- 42040 cb25 32       		.uleb128 0x32
- 42041 cb26 600D0000 		.long	0xd60
- 42042 cb2a 03       		.byte	0x3
- 42043 cb2b 91       		.byte	0x91
- 42044 cb2c C071     		.sleb128 -1856
- 42045 cb2e 00       		.byte	0x0
- 42046 cb2f 00       		.byte	0x0
- 42047 cb30 00       		.byte	0x0
- 42048 cb31 00       		.byte	0x0
- 42049 cb32 36       		.uleb128 0x36
- 42050 cb33 00000000 		.quad	.LBB3704
- 42050      00000000 
- 42051 cb3b 00000000 		.quad	.LBE3704
- 42051      00000000 
- 42052 cb43 52CB0000 		.long	0xcb52
- 42053 cb47 34       		.uleb128 0x34
- 42054 cb48 1C0C0000 		.long	0xc1c
- 42055 cb4c 04       		.byte	0x4
- 42056 cb4d 91       		.byte	0x91
- 42057 cb4e A0B77F   		.sleb128 -9312
- 42058 cb51 00       		.byte	0x0
- 42059 cb52 31       		.uleb128 0x31
- 42060 cb53 4A0E0000 		.long	0xe4a
- 42061 cb57 00000000 		.quad	.LBB3705
- 42061      00000000 
- 42062 cb5f 00000000 		.quad	.LBE3705
- 42062      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1055
-
-
- 42063 cb67 02       		.byte	0x2
- 42064 cb68 9406     		.value	0x694
- 42065 cb6a EFCB0000 		.long	0xcbef
- 42066 cb6e 32       		.uleb128 0x32
- 42067 cb6f 5C0E0000 		.long	0xe5c
- 42068 cb73 03       		.byte	0x3
- 42069 cb74 91       		.byte	0x91
- 42070 cb75 D071     		.sleb128 -1840
- 42071 cb77 33       		.uleb128 0x33
- 42072 cb78 00000000 		.quad	.LBB3706
- 42072      00000000 
- 42073 cb80 00000000 		.quad	.LBE3706
- 42073      00000000 
- 42074 cb88 34       		.uleb128 0x34
- 42075 cb89 680E0000 		.long	0xe68
- 42076 cb8d 09       		.byte	0x9
- 42077 cb8e 03       		.byte	0x3
- 42078 cb8f 00000000 		.quad	ShiftRowTable.7385
- 42078      00000000 
- 42079 cb97 35       		.uleb128 0x35
- 42080 cb98 A00D0000 		.long	0xda0
- 42081 cb9c 00000000 		.quad	.LBB3707
- 42081      00000000 
- 42082 cba4 00000000 		.quad	.LBE3707
- 42082      00000000 
- 42083 cbac 02       		.byte	0x2
- 42084 cbad 9B02     		.value	0x29b
- 42085 cbaf 32       		.uleb128 0x32
- 42086 cbb0 BE0D0000 		.long	0xdbe
- 42087 cbb4 03       		.byte	0x3
- 42088 cbb5 91       		.byte	0x91
- 42089 cbb6 E071     		.sleb128 -1824
- 42090 cbb8 32       		.uleb128 0x32
- 42091 cbb9 B20D0000 		.long	0xdb2
- 42092 cbbd 03       		.byte	0x3
- 42093 cbbe 91       		.byte	0x91
- 42094 cbbf F071     		.sleb128 -1808
- 42095 cbc1 35       		.uleb128 0x35
- 42096 cbc2 CB0D0000 		.long	0xdcb
- 42097 cbc6 00000000 		.quad	.LBB3709
- 42097      00000000 
- 42098 cbce 00000000 		.quad	.LBE3709
- 42098      00000000 
- 42099 cbd6 02       		.byte	0x2
- 42100 cbd7 7501     		.value	0x175
- 42101 cbd9 32       		.uleb128 0x32
- 42102 cbda E90D0000 		.long	0xde9
- 42103 cbde 03       		.byte	0x3
- 42104 cbdf 91       		.byte	0x91
- 42105 cbe0 8072     		.sleb128 -1792
- 42106 cbe2 32       		.uleb128 0x32
- 42107 cbe3 DD0D0000 		.long	0xddd
- 42108 cbe7 03       		.byte	0x3
- 42109 cbe8 91       		.byte	0x91
- 42110 cbe9 9072     		.sleb128 -1776
- 42111 cbeb 00       		.byte	0x0
- 42112 cbec 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1056
-
-
- 42113 cbed 00       		.byte	0x0
- 42114 cbee 00       		.byte	0x0
- 42115 cbef 36       		.uleb128 0x36
- 42116 cbf0 00000000 		.quad	.LBB3711
- 42116      00000000 
- 42117 cbf8 00000000 		.quad	.LBE3711
- 42117      00000000 
- 42118 cc00 0FCC0000 		.long	0xcc0f
- 42119 cc04 34       		.uleb128 0x34
- 42120 cc05 2C0C0000 		.long	0xc2c
- 42121 cc09 04       		.byte	0x4
- 42122 cc0a 91       		.byte	0x91
- 42123 cc0b 90B77F   		.sleb128 -9328
- 42124 cc0e 00       		.byte	0x0
- 42125 cc0f 31       		.uleb128 0x31
- 42126 cc10 860E0000 		.long	0xe86
- 42127 cc14 00000000 		.quad	.LBB3712
- 42127      00000000 
- 42128 cc1c 00000000 		.quad	.LBE3712
- 42128      00000000 
- 42129 cc24 02       		.byte	0x2
- 42130 cc25 9606     		.value	0x696
- 42131 cc27 3ECC0000 		.long	0xcc3e
- 42132 cc2b 32       		.uleb128 0x32
- 42133 cc2c A10E0000 		.long	0xea1
- 42134 cc30 03       		.byte	0x3
- 42135 cc31 91       		.byte	0x91
- 42136 cc32 A072     		.sleb128 -1760
- 42137 cc34 32       		.uleb128 0x32
- 42138 cc35 970E0000 		.long	0xe97
- 42139 cc39 03       		.byte	0x3
- 42140 cc3a 91       		.byte	0x91
- 42141 cc3b B072     		.sleb128 -1744
- 42142 cc3d 00       		.byte	0x0
- 42143 cc3e 36       		.uleb128 0x36
- 42144 cc3f 00000000 		.quad	.LBB3714
- 42144      00000000 
- 42145 cc47 00000000 		.quad	.LBE3714
- 42145      00000000 
- 42146 cc4f 5ECC0000 		.long	0xcc5e
- 42147 cc53 34       		.uleb128 0x34
- 42148 cc54 3C0C0000 		.long	0xc3c
- 42149 cc58 04       		.byte	0x4
- 42150 cc59 91       		.byte	0x91
- 42151 cc5a 80B77F   		.sleb128 -9344
- 42152 cc5d 00       		.byte	0x0
- 42153 cc5e 31       		.uleb128 0x31
- 42154 cc5f AC0E0000 		.long	0xeac
- 42155 cc63 00000000 		.quad	.LBB3715
- 42155      00000000 
- 42156 cc6b 00000000 		.quad	.LBE3715
- 42156      00000000 
- 42157 cc73 02       		.byte	0x2
- 42158 cc74 9806     		.value	0x698
- 42159 cc76 AFCC0000 		.long	0xccaf
- 42160 cc7a 32       		.uleb128 0x32
- 42161 cc7b BE0E0000 		.long	0xebe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1057
-
-
- 42162 cc7f 03       		.byte	0x3
- 42163 cc80 91       		.byte	0x91
- 42164 cc81 C072     		.sleb128 -1728
- 42165 cc83 35       		.uleb128 0x35
- 42166 cc84 CB0E0000 		.long	0xecb
- 42167 cc88 00000000 		.quad	.LBB3717
- 42167      00000000 
- 42168 cc90 00000000 		.quad	.LBE3717
- 42168      00000000 
- 42169 cc98 02       		.byte	0x2
- 42170 cc99 4905     		.value	0x549
- 42171 cc9b 32       		.uleb128 0x32
- 42172 cc9c E90E0000 		.long	0xee9
- 42173 cca0 03       		.byte	0x3
- 42174 cca1 91       		.byte	0x91
- 42175 cca2 DC72     		.sleb128 -1700
- 42176 cca4 32       		.uleb128 0x32
- 42177 cca5 DD0E0000 		.long	0xedd
- 42178 cca9 03       		.byte	0x3
- 42179 ccaa 91       		.byte	0x91
- 42180 ccab E072     		.sleb128 -1696
- 42181 ccad 00       		.byte	0x0
- 42182 ccae 00       		.byte	0x0
- 42183 ccaf 33       		.uleb128 0x33
- 42184 ccb0 00000000 		.quad	.LBB3719
- 42184      00000000 
- 42185 ccb8 00000000 		.quad	.LBE3719
- 42185      00000000 
- 42186 ccc0 34       		.uleb128 0x34
- 42187 ccc1 480C0000 		.long	0xc48
- 42188 ccc5 04       		.byte	0x4
- 42189 ccc6 91       		.byte	0x91
- 42190 ccc7 F0B67F   		.sleb128 -9360
- 42191 ccca 00       		.byte	0x0
- 42192 cccb 00       		.byte	0x0
- 42193 cccc 00       		.byte	0x0
- 42194 cccd 31       		.uleb128 0x31
- 42195 ccce F60E0000 		.long	0xef6
- 42196 ccd2 00000000 		.quad	.LBB3720
- 42196      00000000 
- 42197 ccda 00000000 		.quad	.LBE3720
- 42197      00000000 
- 42198 cce2 02       		.byte	0x2
- 42199 cce3 9007     		.value	0x790
- 42200 cce5 E2CE0000 		.long	0xcee2
- 42201 cce9 32       		.uleb128 0x32
- 42202 ccea 080F0000 		.long	0xf08
- 42203 ccee 03       		.byte	0x3
- 42204 ccef 91       		.byte	0x91
- 42205 ccf0 F072     		.sleb128 -1680
- 42206 ccf2 33       		.uleb128 0x33
- 42207 ccf3 00000000 		.quad	.LBB3721
- 42207      00000000 
- 42208 ccfb 00000000 		.quad	.LBE3721
- 42208      00000000 
- 42209 cd03 34       		.uleb128 0x34
- 42210 cd04 140F0000 		.long	0xf14
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1058
-
-
- 42211 cd08 04       		.byte	0x4
- 42212 cd09 76       		.byte	0x76
- 42213 cd0a C0B27F   		.sleb128 -9920
- 42214 cd0d 31       		.uleb128 0x31
- 42215 cd0e 210F0000 		.long	0xf21
- 42216 cd12 00000000 		.quad	.LBB3722
- 42216      00000000 
- 42217 cd1a 00000000 		.quad	.LBE3722
- 42217      00000000 
- 42218 cd22 02       		.byte	0x2
- 42219 cd23 1F06     		.value	0x61f
- 42220 cd25 AACD0000 		.long	0xcdaa
- 42221 cd29 32       		.uleb128 0x32
- 42222 cd2a 330F0000 		.long	0xf33
- 42223 cd2e 03       		.byte	0x3
- 42224 cd2f 91       		.byte	0x91
- 42225 cd30 8073     		.sleb128 -1664
- 42226 cd32 33       		.uleb128 0x33
- 42227 cd33 00000000 		.quad	.LBB3723
- 42227      00000000 
- 42228 cd3b 00000000 		.quad	.LBE3723
- 42228      00000000 
- 42229 cd43 34       		.uleb128 0x34
- 42230 cd44 3F0F0000 		.long	0xf3f
- 42231 cd48 09       		.byte	0x9
- 42232 cd49 03       		.byte	0x3
- 42233 cd4a 00000000 		.quad	mask.7943
- 42233      00000000 
- 42234 cd52 35       		.uleb128 0x35
- 42235 cd53 A00D0000 		.long	0xda0
- 42236 cd57 00000000 		.quad	.LBB3724
- 42236      00000000 
- 42237 cd5f 00000000 		.quad	.LBE3724
- 42237      00000000 
- 42238 cd67 02       		.byte	0x2
- 42239 cd68 FE04     		.value	0x4fe
- 42240 cd6a 32       		.uleb128 0x32
- 42241 cd6b BE0D0000 		.long	0xdbe
- 42242 cd6f 03       		.byte	0x3
- 42243 cd70 91       		.byte	0x91
- 42244 cd71 9073     		.sleb128 -1648
- 42245 cd73 32       		.uleb128 0x32
- 42246 cd74 B20D0000 		.long	0xdb2
- 42247 cd78 03       		.byte	0x3
- 42248 cd79 91       		.byte	0x91
- 42249 cd7a A073     		.sleb128 -1632
- 42250 cd7c 35       		.uleb128 0x35
- 42251 cd7d CB0D0000 		.long	0xdcb
- 42252 cd81 00000000 		.quad	.LBB3726
- 42252      00000000 
- 42253 cd89 00000000 		.quad	.LBE3726
- 42253      00000000 
- 42254 cd91 02       		.byte	0x2
- 42255 cd92 7501     		.value	0x175
- 42256 cd94 32       		.uleb128 0x32
- 42257 cd95 E90D0000 		.long	0xde9
- 42258 cd99 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1059
-
-
- 42259 cd9a 91       		.byte	0x91
- 42260 cd9b B073     		.sleb128 -1616
- 42261 cd9d 32       		.uleb128 0x32
- 42262 cd9e DD0D0000 		.long	0xddd
- 42263 cda2 03       		.byte	0x3
- 42264 cda3 91       		.byte	0x91
- 42265 cda4 C073     		.sleb128 -1600
- 42266 cda6 00       		.byte	0x0
- 42267 cda7 00       		.byte	0x0
- 42268 cda8 00       		.byte	0x0
- 42269 cda9 00       		.byte	0x0
- 42270 cdaa 31       		.uleb128 0x31
- 42271 cdab 210F0000 		.long	0xf21
- 42272 cdaf 00000000 		.quad	.LBB3728
- 42272      00000000 
- 42273 cdb7 00000000 		.quad	.LBE3728
- 42273      00000000 
- 42274 cdbf 02       		.byte	0x2
- 42275 cdc0 2006     		.value	0x620
- 42276 cdc2 47CE0000 		.long	0xce47
- 42277 cdc6 32       		.uleb128 0x32
- 42278 cdc7 330F0000 		.long	0xf33
- 42279 cdcb 03       		.byte	0x3
- 42280 cdcc 91       		.byte	0x91
- 42281 cdcd D073     		.sleb128 -1584
- 42282 cdcf 33       		.uleb128 0x33
- 42283 cdd0 00000000 		.quad	.LBB3729
- 42283      00000000 
- 42284 cdd8 00000000 		.quad	.LBE3729
- 42284      00000000 
- 42285 cde0 34       		.uleb128 0x34
- 42286 cde1 3F0F0000 		.long	0xf3f
- 42287 cde5 09       		.byte	0x9
- 42288 cde6 03       		.byte	0x3
- 42289 cde7 00000000 		.quad	mask.7943
- 42289      00000000 
- 42290 cdef 35       		.uleb128 0x35
- 42291 cdf0 A00D0000 		.long	0xda0
- 42292 cdf4 00000000 		.quad	.LBB3730
- 42292      00000000 
- 42293 cdfc 00000000 		.quad	.LBE3730
- 42293      00000000 
- 42294 ce04 02       		.byte	0x2
- 42295 ce05 FE04     		.value	0x4fe
- 42296 ce07 32       		.uleb128 0x32
- 42297 ce08 BE0D0000 		.long	0xdbe
- 42298 ce0c 03       		.byte	0x3
- 42299 ce0d 91       		.byte	0x91
- 42300 ce0e E073     		.sleb128 -1568
- 42301 ce10 32       		.uleb128 0x32
- 42302 ce11 B20D0000 		.long	0xdb2
- 42303 ce15 03       		.byte	0x3
- 42304 ce16 91       		.byte	0x91
- 42305 ce17 F073     		.sleb128 -1552
- 42306 ce19 35       		.uleb128 0x35
- 42307 ce1a CB0D0000 		.long	0xdcb
- 42308 ce1e 00000000 		.quad	.LBB3732
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1060
-
-
- 42308      00000000 
- 42309 ce26 00000000 		.quad	.LBE3732
- 42309      00000000 
- 42310 ce2e 02       		.byte	0x2
- 42311 ce2f 7501     		.value	0x175
- 42312 ce31 32       		.uleb128 0x32
- 42313 ce32 E90D0000 		.long	0xde9
- 42314 ce36 03       		.byte	0x3
- 42315 ce37 91       		.byte	0x91
- 42316 ce38 8074     		.sleb128 -1536
- 42317 ce3a 32       		.uleb128 0x32
- 42318 ce3b DD0D0000 		.long	0xddd
- 42319 ce3f 03       		.byte	0x3
- 42320 ce40 91       		.byte	0x91
- 42321 ce41 9074     		.sleb128 -1520
- 42322 ce43 00       		.byte	0x0
- 42323 ce44 00       		.byte	0x0
- 42324 ce45 00       		.byte	0x0
- 42325 ce46 00       		.byte	0x0
- 42326 ce47 35       		.uleb128 0x35
- 42327 ce48 210F0000 		.long	0xf21
- 42328 ce4c 00000000 		.quad	.LBB3734
- 42328      00000000 
- 42329 ce54 00000000 		.quad	.LBE3734
- 42329      00000000 
- 42330 ce5c 02       		.byte	0x2
- 42331 ce5d 2106     		.value	0x621
- 42332 ce5f 32       		.uleb128 0x32
- 42333 ce60 330F0000 		.long	0xf33
- 42334 ce64 03       		.byte	0x3
- 42335 ce65 91       		.byte	0x91
- 42336 ce66 A074     		.sleb128 -1504
- 42337 ce68 33       		.uleb128 0x33
- 42338 ce69 00000000 		.quad	.LBB3735
- 42338      00000000 
- 42339 ce71 00000000 		.quad	.LBE3735
- 42339      00000000 
- 42340 ce79 34       		.uleb128 0x34
- 42341 ce7a 3F0F0000 		.long	0xf3f
- 42342 ce7e 09       		.byte	0x9
- 42343 ce7f 03       		.byte	0x3
- 42344 ce80 00000000 		.quad	mask.7943
- 42344      00000000 
- 42345 ce88 35       		.uleb128 0x35
- 42346 ce89 A00D0000 		.long	0xda0
- 42347 ce8d 00000000 		.quad	.LBB3736
- 42347      00000000 
- 42348 ce95 00000000 		.quad	.LBE3736
- 42348      00000000 
- 42349 ce9d 02       		.byte	0x2
- 42350 ce9e FE04     		.value	0x4fe
- 42351 cea0 32       		.uleb128 0x32
- 42352 cea1 BE0D0000 		.long	0xdbe
- 42353 cea5 03       		.byte	0x3
- 42354 cea6 91       		.byte	0x91
- 42355 cea7 B074     		.sleb128 -1488
- 42356 cea9 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1061
-
-
- 42357 ceaa B20D0000 		.long	0xdb2
- 42358 ceae 03       		.byte	0x3
- 42359 ceaf 91       		.byte	0x91
- 42360 ceb0 C074     		.sleb128 -1472
- 42361 ceb2 35       		.uleb128 0x35
- 42362 ceb3 CB0D0000 		.long	0xdcb
- 42363 ceb7 00000000 		.quad	.LBB3738
- 42363      00000000 
- 42364 cebf 00000000 		.quad	.LBE3738
- 42364      00000000 
- 42365 cec7 02       		.byte	0x2
- 42366 cec8 7501     		.value	0x175
- 42367 ceca 32       		.uleb128 0x32
- 42368 cecb E90D0000 		.long	0xde9
- 42369 cecf 03       		.byte	0x3
- 42370 ced0 91       		.byte	0x91
- 42371 ced1 D074     		.sleb128 -1456
- 42372 ced3 32       		.uleb128 0x32
- 42373 ced4 DD0D0000 		.long	0xddd
- 42374 ced8 03       		.byte	0x3
- 42375 ced9 91       		.byte	0x91
- 42376 ceda E074     		.sleb128 -1440
- 42377 cedc 00       		.byte	0x0
- 42378 cedd 00       		.byte	0x0
- 42379 cede 00       		.byte	0x0
- 42380 cedf 00       		.byte	0x0
- 42381 cee0 00       		.byte	0x0
- 42382 cee1 00       		.byte	0x0
- 42383 cee2 31       		.uleb128 0x31
- 42384 cee3 860E0000 		.long	0xe86
- 42385 cee7 00000000 		.quad	.LBB3740
- 42385      00000000 
- 42386 ceef 00000000 		.quad	.LBE3740
- 42386      00000000 
- 42387 cef7 02       		.byte	0x2
- 42388 cef8 9007     		.value	0x790
- 42389 cefa 11CF0000 		.long	0xcf11
- 42390 cefe 32       		.uleb128 0x32
- 42391 ceff A10E0000 		.long	0xea1
- 42392 cf03 03       		.byte	0x3
- 42393 cf04 91       		.byte	0x91
- 42394 cf05 F074     		.sleb128 -1424
- 42395 cf07 32       		.uleb128 0x32
- 42396 cf08 970E0000 		.long	0xe97
- 42397 cf0c 03       		.byte	0x3
- 42398 cf0d 91       		.byte	0x91
- 42399 cf0e 8075     		.sleb128 -1408
- 42400 cf10 00       		.byte	0x0
- 42401 cf11 31       		.uleb128 0x31
- 42402 cf12 8F940000 		.long	0x948f
- 42403 cf16 00000000 		.quad	.LBB3742
- 42403      00000000 
- 42404 cf1e 00000000 		.quad	.LBE3742
- 42404      00000000 
- 42405 cf26 02       		.byte	0x2
- 42406 cf27 9107     		.value	0x791
- 42407 cf29 A3CF0000 		.long	0xcfa3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1062
-
-
- 42408 cf2d 32       		.uleb128 0x32
- 42409 cf2e A1940000 		.long	0x94a1
- 42410 cf32 03       		.byte	0x3
- 42411 cf33 91       		.byte	0x91
- 42412 cf34 9075     		.sleb128 -1392
- 42413 cf36 33       		.uleb128 0x33
- 42414 cf37 00000000 		.quad	.LBB3743
- 42414      00000000 
- 42415 cf3f 00000000 		.quad	.LBE3743
- 42415      00000000 
- 42416 cf47 34       		.uleb128 0x34
- 42417 cf48 AD940000 		.long	0x94ad
- 42418 cf4c 04       		.byte	0x4
- 42419 cf4d 91       		.byte	0x91
- 42420 cf4e C0B77F   		.sleb128 -9280
- 42421 cf51 34       		.uleb128 0x34
- 42422 cf52 B7940000 		.long	0x94b7
- 42423 cf56 03       		.byte	0x3
- 42424 cf57 91       		.byte	0x91
- 42425 cf58 A475     		.sleb128 -1372
- 42426 cf5a 35       		.uleb128 0x35
- 42427 cf5b BE560000 		.long	0x56be
- 42428 cf5f 00000000 		.quad	.LBB3744
- 42428      00000000 
- 42429 cf67 00000000 		.quad	.LBE3744
- 42429      00000000 
- 42430 cf6f 02       		.byte	0x2
- 42431 cf70 7906     		.value	0x679
- 42432 cf72 32       		.uleb128 0x32
- 42433 cf73 D0560000 		.long	0x56d0
- 42434 cf77 03       		.byte	0x3
- 42435 cf78 91       		.byte	0x91
- 42436 cf79 A875     		.sleb128 -1368
- 42437 cf7b 33       		.uleb128 0x33
- 42438 cf7c 00000000 		.quad	.LBB3745
- 42438      00000000 
- 42439 cf84 00000000 		.quad	.LBE3745
- 42439      00000000 
- 42440 cf8c 34       		.uleb128 0x34
- 42441 cf8d DA560000 		.long	0x56da
- 42442 cf91 04       		.byte	0x4
- 42443 cf92 91       		.byte	0x91
- 42444 cf93 B0B77F   		.sleb128 -9296
- 42445 cf96 34       		.uleb128 0x34
- 42446 cf97 E6560000 		.long	0x56e6
- 42447 cf9b 03       		.byte	0x3
- 42448 cf9c 91       		.byte	0x91
- 42449 cf9d AC75     		.sleb128 -1364
- 42450 cf9f 00       		.byte	0x0
- 42451 cfa0 00       		.byte	0x0
- 42452 cfa1 00       		.byte	0x0
- 42453 cfa2 00       		.byte	0x0
- 42454 cfa3 31       		.uleb128 0x31
- 42455 cfa4 F60E0000 		.long	0xef6
- 42456 cfa8 00000000 		.quad	.LBB3746
- 42456      00000000 
- 42457 cfb0 00000000 		.quad	.LBE3746
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1063
-
-
- 42457      00000000 
- 42458 cfb8 02       		.byte	0x2
- 42459 cfb9 9107     		.value	0x791
- 42460 cfbb B8D10000 		.long	0xd1b8
- 42461 cfbf 32       		.uleb128 0x32
- 42462 cfc0 080F0000 		.long	0xf08
- 42463 cfc4 03       		.byte	0x3
- 42464 cfc5 91       		.byte	0x91
- 42465 cfc6 B075     		.sleb128 -1360
- 42466 cfc8 33       		.uleb128 0x33
- 42467 cfc9 00000000 		.quad	.LBB3747
- 42467      00000000 
- 42468 cfd1 00000000 		.quad	.LBE3747
- 42468      00000000 
- 42469 cfd9 34       		.uleb128 0x34
- 42470 cfda 140F0000 		.long	0xf14
- 42471 cfde 04       		.byte	0x4
- 42472 cfdf 76       		.byte	0x76
- 42473 cfe0 D0B27F   		.sleb128 -9904
- 42474 cfe3 31       		.uleb128 0x31
- 42475 cfe4 210F0000 		.long	0xf21
- 42476 cfe8 00000000 		.quad	.LBB3748
- 42476      00000000 
- 42477 cff0 00000000 		.quad	.LBE3748
- 42477      00000000 
- 42478 cff8 02       		.byte	0x2
- 42479 cff9 1F06     		.value	0x61f
- 42480 cffb 80D00000 		.long	0xd080
- 42481 cfff 32       		.uleb128 0x32
- 42482 d000 330F0000 		.long	0xf33
- 42483 d004 03       		.byte	0x3
- 42484 d005 91       		.byte	0x91
- 42485 d006 C075     		.sleb128 -1344
- 42486 d008 33       		.uleb128 0x33
- 42487 d009 00000000 		.quad	.LBB3749
- 42487      00000000 
- 42488 d011 00000000 		.quad	.LBE3749
- 42488      00000000 
- 42489 d019 34       		.uleb128 0x34
- 42490 d01a 3F0F0000 		.long	0xf3f
- 42491 d01e 09       		.byte	0x9
- 42492 d01f 03       		.byte	0x3
- 42493 d020 00000000 		.quad	mask.7943
- 42493      00000000 
- 42494 d028 35       		.uleb128 0x35
- 42495 d029 A00D0000 		.long	0xda0
- 42496 d02d 00000000 		.quad	.LBB3750
- 42496      00000000 
- 42497 d035 00000000 		.quad	.LBE3750
- 42497      00000000 
- 42498 d03d 02       		.byte	0x2
- 42499 d03e FE04     		.value	0x4fe
- 42500 d040 32       		.uleb128 0x32
- 42501 d041 BE0D0000 		.long	0xdbe
- 42502 d045 03       		.byte	0x3
- 42503 d046 91       		.byte	0x91
- 42504 d047 D075     		.sleb128 -1328
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1064
-
-
- 42505 d049 32       		.uleb128 0x32
- 42506 d04a B20D0000 		.long	0xdb2
- 42507 d04e 03       		.byte	0x3
- 42508 d04f 91       		.byte	0x91
- 42509 d050 E075     		.sleb128 -1312
- 42510 d052 35       		.uleb128 0x35
- 42511 d053 CB0D0000 		.long	0xdcb
- 42512 d057 00000000 		.quad	.LBB3752
- 42512      00000000 
- 42513 d05f 00000000 		.quad	.LBE3752
- 42513      00000000 
- 42514 d067 02       		.byte	0x2
- 42515 d068 7501     		.value	0x175
- 42516 d06a 32       		.uleb128 0x32
- 42517 d06b E90D0000 		.long	0xde9
- 42518 d06f 03       		.byte	0x3
- 42519 d070 91       		.byte	0x91
- 42520 d071 F075     		.sleb128 -1296
- 42521 d073 32       		.uleb128 0x32
- 42522 d074 DD0D0000 		.long	0xddd
- 42523 d078 03       		.byte	0x3
- 42524 d079 91       		.byte	0x91
- 42525 d07a 8076     		.sleb128 -1280
- 42526 d07c 00       		.byte	0x0
- 42527 d07d 00       		.byte	0x0
- 42528 d07e 00       		.byte	0x0
- 42529 d07f 00       		.byte	0x0
- 42530 d080 31       		.uleb128 0x31
- 42531 d081 210F0000 		.long	0xf21
- 42532 d085 00000000 		.quad	.LBB3754
- 42532      00000000 
- 42533 d08d 00000000 		.quad	.LBE3754
- 42533      00000000 
- 42534 d095 02       		.byte	0x2
- 42535 d096 2006     		.value	0x620
- 42536 d098 1DD10000 		.long	0xd11d
- 42537 d09c 32       		.uleb128 0x32
- 42538 d09d 330F0000 		.long	0xf33
- 42539 d0a1 03       		.byte	0x3
- 42540 d0a2 91       		.byte	0x91
- 42541 d0a3 9076     		.sleb128 -1264
- 42542 d0a5 33       		.uleb128 0x33
- 42543 d0a6 00000000 		.quad	.LBB3755
- 42543      00000000 
- 42544 d0ae 00000000 		.quad	.LBE3755
- 42544      00000000 
- 42545 d0b6 34       		.uleb128 0x34
- 42546 d0b7 3F0F0000 		.long	0xf3f
- 42547 d0bb 09       		.byte	0x9
- 42548 d0bc 03       		.byte	0x3
- 42549 d0bd 00000000 		.quad	mask.7943
- 42549      00000000 
- 42550 d0c5 35       		.uleb128 0x35
- 42551 d0c6 A00D0000 		.long	0xda0
- 42552 d0ca 00000000 		.quad	.LBB3756
- 42552      00000000 
- 42553 d0d2 00000000 		.quad	.LBE3756
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1065
-
-
- 42553      00000000 
- 42554 d0da 02       		.byte	0x2
- 42555 d0db FE04     		.value	0x4fe
- 42556 d0dd 32       		.uleb128 0x32
- 42557 d0de BE0D0000 		.long	0xdbe
- 42558 d0e2 03       		.byte	0x3
- 42559 d0e3 91       		.byte	0x91
- 42560 d0e4 A076     		.sleb128 -1248
- 42561 d0e6 32       		.uleb128 0x32
- 42562 d0e7 B20D0000 		.long	0xdb2
- 42563 d0eb 03       		.byte	0x3
- 42564 d0ec 91       		.byte	0x91
- 42565 d0ed B076     		.sleb128 -1232
- 42566 d0ef 35       		.uleb128 0x35
- 42567 d0f0 CB0D0000 		.long	0xdcb
- 42568 d0f4 00000000 		.quad	.LBB3758
- 42568      00000000 
- 42569 d0fc 00000000 		.quad	.LBE3758
- 42569      00000000 
- 42570 d104 02       		.byte	0x2
- 42571 d105 7501     		.value	0x175
- 42572 d107 32       		.uleb128 0x32
- 42573 d108 E90D0000 		.long	0xde9
- 42574 d10c 03       		.byte	0x3
- 42575 d10d 91       		.byte	0x91
- 42576 d10e C076     		.sleb128 -1216
- 42577 d110 32       		.uleb128 0x32
- 42578 d111 DD0D0000 		.long	0xddd
- 42579 d115 03       		.byte	0x3
- 42580 d116 91       		.byte	0x91
- 42581 d117 D076     		.sleb128 -1200
- 42582 d119 00       		.byte	0x0
- 42583 d11a 00       		.byte	0x0
- 42584 d11b 00       		.byte	0x0
- 42585 d11c 00       		.byte	0x0
- 42586 d11d 35       		.uleb128 0x35
- 42587 d11e 210F0000 		.long	0xf21
- 42588 d122 00000000 		.quad	.LBB3760
- 42588      00000000 
- 42589 d12a 00000000 		.quad	.LBE3760
- 42589      00000000 
- 42590 d132 02       		.byte	0x2
- 42591 d133 2106     		.value	0x621
- 42592 d135 32       		.uleb128 0x32
- 42593 d136 330F0000 		.long	0xf33
- 42594 d13a 03       		.byte	0x3
- 42595 d13b 91       		.byte	0x91
- 42596 d13c E076     		.sleb128 -1184
- 42597 d13e 33       		.uleb128 0x33
- 42598 d13f 00000000 		.quad	.LBB3761
- 42598      00000000 
- 42599 d147 00000000 		.quad	.LBE3761
- 42599      00000000 
- 42600 d14f 34       		.uleb128 0x34
- 42601 d150 3F0F0000 		.long	0xf3f
- 42602 d154 09       		.byte	0x9
- 42603 d155 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1066
-
-
- 42604 d156 00000000 		.quad	mask.7943
- 42604      00000000 
- 42605 d15e 35       		.uleb128 0x35
- 42606 d15f A00D0000 		.long	0xda0
- 42607 d163 00000000 		.quad	.LBB3762
- 42607      00000000 
- 42608 d16b 00000000 		.quad	.LBE3762
- 42608      00000000 
- 42609 d173 02       		.byte	0x2
- 42610 d174 FE04     		.value	0x4fe
- 42611 d176 32       		.uleb128 0x32
- 42612 d177 BE0D0000 		.long	0xdbe
- 42613 d17b 03       		.byte	0x3
- 42614 d17c 91       		.byte	0x91
- 42615 d17d F076     		.sleb128 -1168
- 42616 d17f 32       		.uleb128 0x32
- 42617 d180 B20D0000 		.long	0xdb2
- 42618 d184 03       		.byte	0x3
- 42619 d185 91       		.byte	0x91
- 42620 d186 8077     		.sleb128 -1152
- 42621 d188 35       		.uleb128 0x35
- 42622 d189 CB0D0000 		.long	0xdcb
- 42623 d18d 00000000 		.quad	.LBB3764
- 42623      00000000 
- 42624 d195 00000000 		.quad	.LBE3764
- 42624      00000000 
- 42625 d19d 02       		.byte	0x2
- 42626 d19e 7501     		.value	0x175
- 42627 d1a0 32       		.uleb128 0x32
- 42628 d1a1 E90D0000 		.long	0xde9
- 42629 d1a5 03       		.byte	0x3
- 42630 d1a6 91       		.byte	0x91
- 42631 d1a7 9077     		.sleb128 -1136
- 42632 d1a9 32       		.uleb128 0x32
- 42633 d1aa DD0D0000 		.long	0xddd
- 42634 d1ae 03       		.byte	0x3
- 42635 d1af 91       		.byte	0x91
- 42636 d1b0 A077     		.sleb128 -1120
- 42637 d1b2 00       		.byte	0x0
- 42638 d1b3 00       		.byte	0x0
- 42639 d1b4 00       		.byte	0x0
- 42640 d1b5 00       		.byte	0x0
- 42641 d1b6 00       		.byte	0x0
- 42642 d1b7 00       		.byte	0x0
- 42643 d1b8 31       		.uleb128 0x31
- 42644 d1b9 860E0000 		.long	0xe86
- 42645 d1bd 00000000 		.quad	.LBB3766
- 42645      00000000 
- 42646 d1c5 00000000 		.quad	.LBE3766
- 42646      00000000 
- 42647 d1cd 02       		.byte	0x2
- 42648 d1ce 9107     		.value	0x791
- 42649 d1d0 E7D10000 		.long	0xd1e7
- 42650 d1d4 32       		.uleb128 0x32
- 42651 d1d5 A10E0000 		.long	0xea1
- 42652 d1d9 03       		.byte	0x3
- 42653 d1da 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1067
-
-
- 42654 d1db B077     		.sleb128 -1104
- 42655 d1dd 32       		.uleb128 0x32
- 42656 d1de 970E0000 		.long	0xe97
- 42657 d1e2 03       		.byte	0x3
- 42658 d1e3 91       		.byte	0x91
- 42659 d1e4 C077     		.sleb128 -1088
- 42660 d1e6 00       		.byte	0x0
- 42661 d1e7 31       		.uleb128 0x31
- 42662 d1e8 D50B0000 		.long	0xbd5
- 42663 d1ec 00000000 		.quad	.LBB3768
- 42663      00000000 
- 42664 d1f4 00000000 		.quad	.LBE3768
- 42664      00000000 
- 42665 d1fc 02       		.byte	0x2
- 42666 d1fd 9207     		.value	0x792
- 42667 d1ff CAD60000 		.long	0xd6ca
- 42668 d203 32       		.uleb128 0x32
- 42669 d204 F30B0000 		.long	0xbf3
- 42670 d208 03       		.byte	0x3
- 42671 d209 91       		.byte	0x91
- 42672 d20a DC77     		.sleb128 -1060
- 42673 d20c 32       		.uleb128 0x32
- 42674 d20d E70B0000 		.long	0xbe7
- 42675 d211 03       		.byte	0x3
- 42676 d212 91       		.byte	0x91
- 42677 d213 E077     		.sleb128 -1056
- 42678 d215 33       		.uleb128 0x33
- 42679 d216 00000000 		.quad	.LBB3769
- 42679      00000000 
- 42680 d21e 00000000 		.quad	.LBE3769
- 42680      00000000 
- 42681 d226 34       		.uleb128 0x34
- 42682 d227 FF0B0000 		.long	0xbff
- 42683 d22b 04       		.byte	0x4
- 42684 d22c 76       		.byte	0x76
- 42685 d22d F0B27F   		.sleb128 -9872
- 42686 d230 34       		.uleb128 0x34
- 42687 d231 0B0C0000 		.long	0xc0b
- 42688 d235 04       		.byte	0x4
- 42689 d236 76       		.byte	0x76
- 42690 d237 E0B27F   		.sleb128 -9888
- 42691 d23a 31       		.uleb128 0x31
- 42692 d23b 540C0000 		.long	0xc54
- 42693 d23f 00000000 		.quad	.LBB3770
- 42693      00000000 
- 42694 d247 00000000 		.quad	.LBE3770
- 42694      00000000 
- 42695 d24f 02       		.byte	0x2
- 42696 d250 9106     		.value	0x691
- 42697 d252 A6D20000 		.long	0xd2a6
- 42698 d256 32       		.uleb128 0x32
- 42699 d257 7E0C0000 		.long	0xc7e
- 42700 d25b 03       		.byte	0x3
- 42701 d25c 91       		.byte	0x91
- 42702 d25d F877     		.sleb128 -1032
- 42703 d25f 32       		.uleb128 0x32
- 42704 d260 720C0000 		.long	0xc72
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1068
-
-
- 42705 d264 03       		.byte	0x3
- 42706 d265 91       		.byte	0x91
- 42707 d266 FC77     		.sleb128 -1028
- 42708 d268 32       		.uleb128 0x32
- 42709 d269 660C0000 		.long	0xc66
- 42710 d26d 03       		.byte	0x3
- 42711 d26e 91       		.byte	0x91
- 42712 d26f 8078     		.sleb128 -1024
- 42713 d271 35       		.uleb128 0x35
- 42714 d272 8B0C0000 		.long	0xc8b
- 42715 d276 00000000 		.quad	.LBB3772
- 42715      00000000 
- 42716 d27e 00000000 		.quad	.LBE3772
- 42716      00000000 
- 42717 d286 02       		.byte	0x2
- 42718 d287 0702     		.value	0x207
- 42719 d289 32       		.uleb128 0x32
- 42720 d28a B40C0000 		.long	0xcb4
- 42721 d28e 03       		.byte	0x3
- 42722 d28f 91       		.byte	0x91
- 42723 d290 9878     		.sleb128 -1000
- 42724 d292 32       		.uleb128 0x32
- 42725 d293 A90C0000 		.long	0xca9
- 42726 d297 03       		.byte	0x3
- 42727 d298 91       		.byte	0x91
- 42728 d299 9C78     		.sleb128 -996
- 42729 d29b 32       		.uleb128 0x32
- 42730 d29c 9D0C0000 		.long	0xc9d
- 42731 d2a0 03       		.byte	0x3
- 42732 d2a1 91       		.byte	0x91
- 42733 d2a2 A078     		.sleb128 -992
- 42734 d2a4 00       		.byte	0x0
- 42735 d2a5 00       		.byte	0x0
- 42736 d2a6 31       		.uleb128 0x31
- 42737 d2a7 C10C0000 		.long	0xcc1
- 42738 d2ab 00000000 		.quad	.LBB3774
- 42738      00000000 
- 42739 d2b3 00000000 		.quad	.LBE3774
- 42739      00000000 
- 42740 d2bb 02       		.byte	0x2
- 42741 d2bc 9206     		.value	0x692
- 42742 d2be 2FD50000 		.long	0xd52f
- 42743 d2c2 32       		.uleb128 0x32
- 42744 d2c3 D30C0000 		.long	0xcd3
- 42745 d2c7 03       		.byte	0x3
- 42746 d2c8 91       		.byte	0x91
- 42747 d2c9 B078     		.sleb128 -976
- 42748 d2cb 35       		.uleb128 0x35
- 42749 d2cc E00C0000 		.long	0xce0
- 42750 d2d0 00000000 		.quad	.LBB3776
- 42750      00000000 
- 42751 d2d8 00000000 		.quad	.LBE3776
- 42751      00000000 
- 42752 d2e0 02       		.byte	0x2
- 42753 d2e1 7D03     		.value	0x37d
- 42754 d2e3 32       		.uleb128 0x32
- 42755 d2e4 FE0C0000 		.long	0xcfe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1069
-
-
- 42756 d2e8 03       		.byte	0x3
- 42757 d2e9 91       		.byte	0x91
- 42758 d2ea C878     		.sleb128 -952
- 42759 d2ec 32       		.uleb128 0x32
- 42760 d2ed F20C0000 		.long	0xcf2
- 42761 d2f1 03       		.byte	0x3
- 42762 d2f2 91       		.byte	0x91
- 42763 d2f3 D078     		.sleb128 -944
- 42764 d2f5 33       		.uleb128 0x33
- 42765 d2f6 00000000 		.quad	.LBB3777
- 42765      00000000 
- 42766 d2fe 00000000 		.quad	.LBE3777
- 42766      00000000 
- 42767 d306 34       		.uleb128 0x34
- 42768 d307 0A0D0000 		.long	0xd0a
- 42769 d30b 03       		.byte	0x3
- 42770 d30c 91       		.byte	0x91
- 42771 d30d A079     		.sleb128 -864
- 42772 d30f 34       		.uleb128 0x34
- 42773 d310 150D0000 		.long	0xd15
- 42774 d314 03       		.byte	0x3
- 42775 d315 91       		.byte	0x91
- 42776 d316 9079     		.sleb128 -880
- 42777 d318 34       		.uleb128 0x34
- 42778 d319 200D0000 		.long	0xd20
- 42779 d31d 03       		.byte	0x3
- 42780 d31e 91       		.byte	0x91
- 42781 d31f 8079     		.sleb128 -896
- 42782 d321 34       		.uleb128 0x34
- 42783 d322 2C0D0000 		.long	0xd2c
- 42784 d326 03       		.byte	0x3
- 42785 d327 91       		.byte	0x91
- 42786 d328 F078     		.sleb128 -912
- 42787 d32a 34       		.uleb128 0x34
- 42788 d32b 380D0000 		.long	0xd38
- 42789 d32f 03       		.byte	0x3
- 42790 d330 91       		.byte	0x91
- 42791 d331 EC78     		.sleb128 -916
- 42792 d333 31       		.uleb128 0x31
- 42793 d334 4F0D0000 		.long	0xd4f
- 42794 d338 00000000 		.quad	.LBB3778
- 42794      00000000 
- 42795 d340 00000000 		.quad	.LBE3778
- 42795      00000000 
- 42796 d348 02       		.byte	0x2
- 42797 d349 5603     		.value	0x356
- 42798 d34b 62D30000 		.long	0xd362
- 42799 d34f 32       		.uleb128 0x32
- 42800 d350 6A0D0000 		.long	0xd6a
- 42801 d354 03       		.byte	0x3
- 42802 d355 91       		.byte	0x91
- 42803 d356 B079     		.sleb128 -848
- 42804 d358 32       		.uleb128 0x32
- 42805 d359 600D0000 		.long	0xd60
- 42806 d35d 03       		.byte	0x3
- 42807 d35e 91       		.byte	0x91
- 42808 d35f C079     		.sleb128 -832
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1070
-
-
- 42809 d361 00       		.byte	0x0
- 42810 d362 31       		.uleb128 0x31
- 42811 d363 750D0000 		.long	0xd75
- 42812 d367 00000000 		.quad	.LBB3780
- 42812      00000000 
- 42813 d36f 00000000 		.quad	.LBE3780
- 42813      00000000 
- 42814 d377 02       		.byte	0x2
- 42815 d378 5903     		.value	0x359
- 42816 d37a 91D30000 		.long	0xd391
- 42817 d37e 32       		.uleb128 0x32
- 42818 d37f 930D0000 		.long	0xd93
- 42819 d383 03       		.byte	0x3
- 42820 d384 91       		.byte	0x91
- 42821 d385 DC79     		.sleb128 -804
- 42822 d387 32       		.uleb128 0x32
- 42823 d388 870D0000 		.long	0xd87
- 42824 d38c 03       		.byte	0x3
- 42825 d38d 91       		.byte	0x91
- 42826 d38e E079     		.sleb128 -800
- 42827 d390 00       		.byte	0x0
- 42828 d391 31       		.uleb128 0x31
- 42829 d392 4F0D0000 		.long	0xd4f
- 42830 d396 00000000 		.quad	.LBB3782
- 42830      00000000 
- 42831 d39e 00000000 		.quad	.LBE3782
- 42831      00000000 
- 42832 d3a6 02       		.byte	0x2
- 42833 d3a7 5B03     		.value	0x35b
- 42834 d3a9 C0D30000 		.long	0xd3c0
- 42835 d3ad 32       		.uleb128 0x32
- 42836 d3ae 6A0D0000 		.long	0xd6a
- 42837 d3b2 03       		.byte	0x3
- 42838 d3b3 91       		.byte	0x91
- 42839 d3b4 F079     		.sleb128 -784
- 42840 d3b6 32       		.uleb128 0x32
- 42841 d3b7 600D0000 		.long	0xd60
- 42842 d3bb 03       		.byte	0x3
- 42843 d3bc 91       		.byte	0x91
- 42844 d3bd 807A     		.sleb128 -768
- 42845 d3bf 00       		.byte	0x0
- 42846 d3c0 31       		.uleb128 0x31
- 42847 d3c1 A00D0000 		.long	0xda0
- 42848 d3c5 00000000 		.quad	.LBB3784
- 42848      00000000 
- 42849 d3cd 00000000 		.quad	.LBE3784
- 42849      00000000 
- 42850 d3d5 02       		.byte	0x2
- 42851 d3d6 6403     		.value	0x364
- 42852 d3d8 1AD40000 		.long	0xd41a
- 42853 d3dc 32       		.uleb128 0x32
- 42854 d3dd BE0D0000 		.long	0xdbe
- 42855 d3e1 03       		.byte	0x3
- 42856 d3e2 91       		.byte	0x91
- 42857 d3e3 907A     		.sleb128 -752
- 42858 d3e5 32       		.uleb128 0x32
- 42859 d3e6 B20D0000 		.long	0xdb2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1071
-
-
- 42860 d3ea 03       		.byte	0x3
- 42861 d3eb 91       		.byte	0x91
- 42862 d3ec A07A     		.sleb128 -736
- 42863 d3ee 35       		.uleb128 0x35
- 42864 d3ef CB0D0000 		.long	0xdcb
- 42865 d3f3 00000000 		.quad	.LBB3786
- 42865      00000000 
- 42866 d3fb 00000000 		.quad	.LBE3786
- 42866      00000000 
- 42867 d403 02       		.byte	0x2
- 42868 d404 7501     		.value	0x175
- 42869 d406 32       		.uleb128 0x32
- 42870 d407 E90D0000 		.long	0xde9
- 42871 d40b 03       		.byte	0x3
- 42872 d40c 91       		.byte	0x91
- 42873 d40d B07A     		.sleb128 -720
- 42874 d40f 32       		.uleb128 0x32
- 42875 d410 DD0D0000 		.long	0xddd
- 42876 d414 03       		.byte	0x3
- 42877 d415 91       		.byte	0x91
- 42878 d416 C07A     		.sleb128 -704
- 42879 d418 00       		.byte	0x0
- 42880 d419 00       		.byte	0x0
- 42881 d41a 31       		.uleb128 0x31
- 42882 d41b FB0D0000 		.long	0xdfb
- 42883 d41f 00000000 		.quad	.LBB3788
- 42883      00000000 
- 42884 d427 00000000 		.quad	.LBE3788
- 42884      00000000 
- 42885 d42f 02       		.byte	0x2
- 42886 d430 6603     		.value	0x366
- 42887 d432 49D40000 		.long	0xd449
- 42888 d436 32       		.uleb128 0x32
- 42889 d437 160E0000 		.long	0xe16
- 42890 d43b 03       		.byte	0x3
- 42891 d43c 91       		.byte	0x91
- 42892 d43d D07A     		.sleb128 -688
- 42893 d43f 32       		.uleb128 0x32
- 42894 d440 0C0E0000 		.long	0xe0c
- 42895 d444 03       		.byte	0x3
- 42896 d445 91       		.byte	0x91
- 42897 d446 E07A     		.sleb128 -672
- 42898 d448 00       		.byte	0x0
- 42899 d449 31       		.uleb128 0x31
- 42900 d44a A00D0000 		.long	0xda0
- 42901 d44e 00000000 		.quad	.LBB3790
- 42901      00000000 
- 42902 d456 00000000 		.quad	.LBE3790
- 42902      00000000 
- 42903 d45e 02       		.byte	0x2
- 42904 d45f 6803     		.value	0x368
- 42905 d461 A3D40000 		.long	0xd4a3
- 42906 d465 32       		.uleb128 0x32
- 42907 d466 BE0D0000 		.long	0xdbe
- 42908 d46a 03       		.byte	0x3
- 42909 d46b 91       		.byte	0x91
- 42910 d46c F07A     		.sleb128 -656
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1072
-
-
- 42911 d46e 32       		.uleb128 0x32
- 42912 d46f B20D0000 		.long	0xdb2
- 42913 d473 03       		.byte	0x3
- 42914 d474 91       		.byte	0x91
- 42915 d475 807B     		.sleb128 -640
- 42916 d477 35       		.uleb128 0x35
- 42917 d478 CB0D0000 		.long	0xdcb
- 42918 d47c 00000000 		.quad	.LBB3792
- 42918      00000000 
- 42919 d484 00000000 		.quad	.LBE3792
- 42919      00000000 
- 42920 d48c 02       		.byte	0x2
- 42921 d48d 7501     		.value	0x175
- 42922 d48f 32       		.uleb128 0x32
- 42923 d490 E90D0000 		.long	0xde9
- 42924 d494 03       		.byte	0x3
- 42925 d495 91       		.byte	0x91
- 42926 d496 907B     		.sleb128 -624
- 42927 d498 32       		.uleb128 0x32
- 42928 d499 DD0D0000 		.long	0xddd
- 42929 d49d 03       		.byte	0x3
- 42930 d49e 91       		.byte	0x91
- 42931 d49f A07B     		.sleb128 -608
- 42932 d4a1 00       		.byte	0x0
- 42933 d4a2 00       		.byte	0x0
- 42934 d4a3 31       		.uleb128 0x31
- 42935 d4a4 FB0D0000 		.long	0xdfb
- 42936 d4a8 00000000 		.quad	.LBB3794
- 42936      00000000 
- 42937 d4b0 00000000 		.quad	.LBE3794
- 42937      00000000 
- 42938 d4b8 02       		.byte	0x2
- 42939 d4b9 6A03     		.value	0x36a
- 42940 d4bb D2D40000 		.long	0xd4d2
- 42941 d4bf 32       		.uleb128 0x32
- 42942 d4c0 160E0000 		.long	0xe16
- 42943 d4c4 03       		.byte	0x3
- 42944 d4c5 91       		.byte	0x91
- 42945 d4c6 B07B     		.sleb128 -592
- 42946 d4c8 32       		.uleb128 0x32
- 42947 d4c9 0C0E0000 		.long	0xe0c
- 42948 d4cd 03       		.byte	0x3
- 42949 d4ce 91       		.byte	0x91
- 42950 d4cf C07B     		.sleb128 -576
- 42951 d4d1 00       		.byte	0x0
- 42952 d4d2 31       		.uleb128 0x31
- 42953 d4d3 210E0000 		.long	0xe21
- 42954 d4d7 00000000 		.quad	.LBB3796
- 42954      00000000 
- 42955 d4df 00000000 		.quad	.LBE3796
- 42955      00000000 
- 42956 d4e7 02       		.byte	0x2
- 42957 d4e8 6C03     		.value	0x36c
- 42958 d4ea 01D50000 		.long	0xd501
- 42959 d4ee 32       		.uleb128 0x32
- 42960 d4ef 3E0E0000 		.long	0xe3e
- 42961 d4f3 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1073
-
-
- 42962 d4f4 91       		.byte	0x91
- 42963 d4f5 D07B     		.sleb128 -560
- 42964 d4f7 32       		.uleb128 0x32
- 42965 d4f8 330E0000 		.long	0xe33
- 42966 d4fc 03       		.byte	0x3
- 42967 d4fd 91       		.byte	0x91
- 42968 d4fe E07B     		.sleb128 -544
- 42969 d500 00       		.byte	0x0
- 42970 d501 35       		.uleb128 0x35
- 42971 d502 4F0D0000 		.long	0xd4f
- 42972 d506 00000000 		.quad	.LBB3798
- 42972      00000000 
- 42973 d50e 00000000 		.quad	.LBE3798
- 42973      00000000 
- 42974 d516 02       		.byte	0x2
- 42975 d517 6E03     		.value	0x36e
- 42976 d519 32       		.uleb128 0x32
- 42977 d51a 6A0D0000 		.long	0xd6a
- 42978 d51e 03       		.byte	0x3
- 42979 d51f 91       		.byte	0x91
- 42980 d520 F07B     		.sleb128 -528
- 42981 d522 32       		.uleb128 0x32
- 42982 d523 600D0000 		.long	0xd60
- 42983 d527 03       		.byte	0x3
- 42984 d528 91       		.byte	0x91
- 42985 d529 807C     		.sleb128 -512
- 42986 d52b 00       		.byte	0x0
- 42987 d52c 00       		.byte	0x0
- 42988 d52d 00       		.byte	0x0
- 42989 d52e 00       		.byte	0x0
- 42990 d52f 36       		.uleb128 0x36
- 42991 d530 00000000 		.quad	.LBB3800
- 42991      00000000 
- 42992 d538 00000000 		.quad	.LBE3800
- 42992      00000000 
- 42993 d540 4FD50000 		.long	0xd54f
- 42994 d544 34       		.uleb128 0x34
- 42995 d545 1C0C0000 		.long	0xc1c
- 42996 d549 04       		.byte	0x4
- 42997 d54a 91       		.byte	0x91
- 42998 d54b 80B87F   		.sleb128 -9216
- 42999 d54e 00       		.byte	0x0
- 43000 d54f 31       		.uleb128 0x31
- 43001 d550 4A0E0000 		.long	0xe4a
- 43002 d554 00000000 		.quad	.LBB3801
- 43002      00000000 
- 43003 d55c 00000000 		.quad	.LBE3801
- 43003      00000000 
- 43004 d564 02       		.byte	0x2
- 43005 d565 9406     		.value	0x694
- 43006 d567 ECD50000 		.long	0xd5ec
- 43007 d56b 32       		.uleb128 0x32
- 43008 d56c 5C0E0000 		.long	0xe5c
- 43009 d570 03       		.byte	0x3
- 43010 d571 91       		.byte	0x91
- 43011 d572 907C     		.sleb128 -496
- 43012 d574 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1074
-
-
- 43013 d575 00000000 		.quad	.LBB3802
- 43013      00000000 
- 43014 d57d 00000000 		.quad	.LBE3802
- 43014      00000000 
- 43015 d585 34       		.uleb128 0x34
- 43016 d586 680E0000 		.long	0xe68
- 43017 d58a 09       		.byte	0x9
- 43018 d58b 03       		.byte	0x3
- 43019 d58c 00000000 		.quad	ShiftRowTable.7385
- 43019      00000000 
- 43020 d594 35       		.uleb128 0x35
- 43021 d595 A00D0000 		.long	0xda0
- 43022 d599 00000000 		.quad	.LBB3803
- 43022      00000000 
- 43023 d5a1 00000000 		.quad	.LBE3803
- 43023      00000000 
- 43024 d5a9 02       		.byte	0x2
- 43025 d5aa 9B02     		.value	0x29b
- 43026 d5ac 32       		.uleb128 0x32
- 43027 d5ad BE0D0000 		.long	0xdbe
- 43028 d5b1 03       		.byte	0x3
- 43029 d5b2 91       		.byte	0x91
- 43030 d5b3 A07C     		.sleb128 -480
- 43031 d5b5 32       		.uleb128 0x32
- 43032 d5b6 B20D0000 		.long	0xdb2
- 43033 d5ba 03       		.byte	0x3
- 43034 d5bb 91       		.byte	0x91
- 43035 d5bc B07C     		.sleb128 -464
- 43036 d5be 35       		.uleb128 0x35
- 43037 d5bf CB0D0000 		.long	0xdcb
- 43038 d5c3 00000000 		.quad	.LBB3805
- 43038      00000000 
- 43039 d5cb 00000000 		.quad	.LBE3805
- 43039      00000000 
- 43040 d5d3 02       		.byte	0x2
- 43041 d5d4 7501     		.value	0x175
- 43042 d5d6 32       		.uleb128 0x32
- 43043 d5d7 E90D0000 		.long	0xde9
- 43044 d5db 03       		.byte	0x3
- 43045 d5dc 91       		.byte	0x91
- 43046 d5dd C07C     		.sleb128 -448
- 43047 d5df 32       		.uleb128 0x32
- 43048 d5e0 DD0D0000 		.long	0xddd
- 43049 d5e4 03       		.byte	0x3
- 43050 d5e5 91       		.byte	0x91
- 43051 d5e6 D07C     		.sleb128 -432
- 43052 d5e8 00       		.byte	0x0
- 43053 d5e9 00       		.byte	0x0
- 43054 d5ea 00       		.byte	0x0
- 43055 d5eb 00       		.byte	0x0
- 43056 d5ec 36       		.uleb128 0x36
- 43057 d5ed 00000000 		.quad	.LBB3807
- 43057      00000000 
- 43058 d5f5 00000000 		.quad	.LBE3807
- 43058      00000000 
- 43059 d5fd 0CD60000 		.long	0xd60c
- 43060 d601 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1075
-
-
- 43061 d602 2C0C0000 		.long	0xc2c
- 43062 d606 04       		.byte	0x4
- 43063 d607 91       		.byte	0x91
- 43064 d608 F0B77F   		.sleb128 -9232
- 43065 d60b 00       		.byte	0x0
- 43066 d60c 31       		.uleb128 0x31
- 43067 d60d 860E0000 		.long	0xe86
- 43068 d611 00000000 		.quad	.LBB3808
- 43068      00000000 
- 43069 d619 00000000 		.quad	.LBE3808
- 43069      00000000 
- 43070 d621 02       		.byte	0x2
- 43071 d622 9606     		.value	0x696
- 43072 d624 3BD60000 		.long	0xd63b
- 43073 d628 32       		.uleb128 0x32
- 43074 d629 A10E0000 		.long	0xea1
- 43075 d62d 03       		.byte	0x3
- 43076 d62e 91       		.byte	0x91
- 43077 d62f E07C     		.sleb128 -416
- 43078 d631 32       		.uleb128 0x32
- 43079 d632 970E0000 		.long	0xe97
- 43080 d636 03       		.byte	0x3
- 43081 d637 91       		.byte	0x91
- 43082 d638 F07C     		.sleb128 -400
- 43083 d63a 00       		.byte	0x0
- 43084 d63b 36       		.uleb128 0x36
- 43085 d63c 00000000 		.quad	.LBB3810
- 43085      00000000 
- 43086 d644 00000000 		.quad	.LBE3810
- 43086      00000000 
- 43087 d64c 5BD60000 		.long	0xd65b
- 43088 d650 34       		.uleb128 0x34
- 43089 d651 3C0C0000 		.long	0xc3c
- 43090 d655 04       		.byte	0x4
- 43091 d656 91       		.byte	0x91
- 43092 d657 E0B77F   		.sleb128 -9248
- 43093 d65a 00       		.byte	0x0
- 43094 d65b 31       		.uleb128 0x31
- 43095 d65c AC0E0000 		.long	0xeac
- 43096 d660 00000000 		.quad	.LBB3811
- 43096      00000000 
- 43097 d668 00000000 		.quad	.LBE3811
- 43097      00000000 
- 43098 d670 02       		.byte	0x2
- 43099 d671 9806     		.value	0x698
- 43100 d673 ACD60000 		.long	0xd6ac
- 43101 d677 32       		.uleb128 0x32
- 43102 d678 BE0E0000 		.long	0xebe
- 43103 d67c 03       		.byte	0x3
- 43104 d67d 91       		.byte	0x91
- 43105 d67e 807D     		.sleb128 -384
- 43106 d680 35       		.uleb128 0x35
- 43107 d681 CB0E0000 		.long	0xecb
- 43108 d685 00000000 		.quad	.LBB3813
- 43108      00000000 
- 43109 d68d 00000000 		.quad	.LBE3813
- 43109      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1076
-
-
- 43110 d695 02       		.byte	0x2
- 43111 d696 4905     		.value	0x549
- 43112 d698 32       		.uleb128 0x32
- 43113 d699 E90E0000 		.long	0xee9
- 43114 d69d 03       		.byte	0x3
- 43115 d69e 91       		.byte	0x91
- 43116 d69f 9C7D     		.sleb128 -356
- 43117 d6a1 32       		.uleb128 0x32
- 43118 d6a2 DD0E0000 		.long	0xedd
- 43119 d6a6 03       		.byte	0x3
- 43120 d6a7 91       		.byte	0x91
- 43121 d6a8 A07D     		.sleb128 -352
- 43122 d6aa 00       		.byte	0x0
- 43123 d6ab 00       		.byte	0x0
- 43124 d6ac 33       		.uleb128 0x33
- 43125 d6ad 00000000 		.quad	.LBB3815
- 43125      00000000 
- 43126 d6b5 00000000 		.quad	.LBE3815
- 43126      00000000 
- 43127 d6bd 34       		.uleb128 0x34
- 43128 d6be 480C0000 		.long	0xc48
- 43129 d6c2 04       		.byte	0x4
- 43130 d6c3 91       		.byte	0x91
- 43131 d6c4 D0B77F   		.sleb128 -9264
- 43132 d6c7 00       		.byte	0x0
- 43133 d6c8 00       		.byte	0x0
- 43134 d6c9 00       		.byte	0x0
- 43135 d6ca 31       		.uleb128 0x31
- 43136 d6cb F60E0000 		.long	0xef6
- 43137 d6cf 00000000 		.quad	.LBB3816
- 43137      00000000 
- 43138 d6d7 00000000 		.quad	.LBE3816
- 43138      00000000 
- 43139 d6df 02       		.byte	0x2
- 43140 d6e0 9207     		.value	0x792
- 43141 d6e2 DFD80000 		.long	0xd8df
- 43142 d6e6 32       		.uleb128 0x32
- 43143 d6e7 080F0000 		.long	0xf08
- 43144 d6eb 03       		.byte	0x3
- 43145 d6ec 91       		.byte	0x91
- 43146 d6ed B07D     		.sleb128 -336
- 43147 d6ef 33       		.uleb128 0x33
- 43148 d6f0 00000000 		.quad	.LBB3817
- 43148      00000000 
- 43149 d6f8 00000000 		.quad	.LBE3817
- 43149      00000000 
- 43150 d700 34       		.uleb128 0x34
- 43151 d701 140F0000 		.long	0xf14
- 43152 d705 04       		.byte	0x4
- 43153 d706 76       		.byte	0x76
- 43154 d707 80B37F   		.sleb128 -9856
- 43155 d70a 31       		.uleb128 0x31
- 43156 d70b 210F0000 		.long	0xf21
- 43157 d70f 00000000 		.quad	.LBB3818
- 43157      00000000 
- 43158 d717 00000000 		.quad	.LBE3818
- 43158      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1077
-
-
- 43159 d71f 02       		.byte	0x2
- 43160 d720 1F06     		.value	0x61f
- 43161 d722 A7D70000 		.long	0xd7a7
- 43162 d726 32       		.uleb128 0x32
- 43163 d727 330F0000 		.long	0xf33
- 43164 d72b 03       		.byte	0x3
- 43165 d72c 91       		.byte	0x91
- 43166 d72d C07D     		.sleb128 -320
- 43167 d72f 33       		.uleb128 0x33
- 43168 d730 00000000 		.quad	.LBB3819
- 43168      00000000 
- 43169 d738 00000000 		.quad	.LBE3819
- 43169      00000000 
- 43170 d740 34       		.uleb128 0x34
- 43171 d741 3F0F0000 		.long	0xf3f
- 43172 d745 09       		.byte	0x9
- 43173 d746 03       		.byte	0x3
- 43174 d747 00000000 		.quad	mask.7943
- 43174      00000000 
- 43175 d74f 35       		.uleb128 0x35
- 43176 d750 A00D0000 		.long	0xda0
- 43177 d754 00000000 		.quad	.LBB3820
- 43177      00000000 
- 43178 d75c 00000000 		.quad	.LBE3820
- 43178      00000000 
- 43179 d764 02       		.byte	0x2
- 43180 d765 FE04     		.value	0x4fe
- 43181 d767 32       		.uleb128 0x32
- 43182 d768 BE0D0000 		.long	0xdbe
- 43183 d76c 03       		.byte	0x3
- 43184 d76d 91       		.byte	0x91
- 43185 d76e D07D     		.sleb128 -304
- 43186 d770 32       		.uleb128 0x32
- 43187 d771 B20D0000 		.long	0xdb2
- 43188 d775 03       		.byte	0x3
- 43189 d776 91       		.byte	0x91
- 43190 d777 E07D     		.sleb128 -288
- 43191 d779 35       		.uleb128 0x35
- 43192 d77a CB0D0000 		.long	0xdcb
- 43193 d77e 00000000 		.quad	.LBB3822
- 43193      00000000 
- 43194 d786 00000000 		.quad	.LBE3822
- 43194      00000000 
- 43195 d78e 02       		.byte	0x2
- 43196 d78f 7501     		.value	0x175
- 43197 d791 32       		.uleb128 0x32
- 43198 d792 E90D0000 		.long	0xde9
- 43199 d796 03       		.byte	0x3
- 43200 d797 91       		.byte	0x91
- 43201 d798 F07D     		.sleb128 -272
- 43202 d79a 32       		.uleb128 0x32
- 43203 d79b DD0D0000 		.long	0xddd
- 43204 d79f 03       		.byte	0x3
- 43205 d7a0 91       		.byte	0x91
- 43206 d7a1 807E     		.sleb128 -256
- 43207 d7a3 00       		.byte	0x0
- 43208 d7a4 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1078
-
-
- 43209 d7a5 00       		.byte	0x0
- 43210 d7a6 00       		.byte	0x0
- 43211 d7a7 31       		.uleb128 0x31
- 43212 d7a8 210F0000 		.long	0xf21
- 43213 d7ac 00000000 		.quad	.LBB3824
- 43213      00000000 
- 43214 d7b4 00000000 		.quad	.LBE3824
- 43214      00000000 
- 43215 d7bc 02       		.byte	0x2
- 43216 d7bd 2006     		.value	0x620
- 43217 d7bf 44D80000 		.long	0xd844
- 43218 d7c3 32       		.uleb128 0x32
- 43219 d7c4 330F0000 		.long	0xf33
- 43220 d7c8 03       		.byte	0x3
- 43221 d7c9 91       		.byte	0x91
- 43222 d7ca 907E     		.sleb128 -240
- 43223 d7cc 33       		.uleb128 0x33
- 43224 d7cd 00000000 		.quad	.LBB3825
- 43224      00000000 
- 43225 d7d5 00000000 		.quad	.LBE3825
- 43225      00000000 
- 43226 d7dd 34       		.uleb128 0x34
- 43227 d7de 3F0F0000 		.long	0xf3f
- 43228 d7e2 09       		.byte	0x9
- 43229 d7e3 03       		.byte	0x3
- 43230 d7e4 00000000 		.quad	mask.7943
- 43230      00000000 
- 43231 d7ec 35       		.uleb128 0x35
- 43232 d7ed A00D0000 		.long	0xda0
- 43233 d7f1 00000000 		.quad	.LBB3826
- 43233      00000000 
- 43234 d7f9 00000000 		.quad	.LBE3826
- 43234      00000000 
- 43235 d801 02       		.byte	0x2
- 43236 d802 FE04     		.value	0x4fe
- 43237 d804 32       		.uleb128 0x32
- 43238 d805 BE0D0000 		.long	0xdbe
- 43239 d809 03       		.byte	0x3
- 43240 d80a 91       		.byte	0x91
- 43241 d80b A07E     		.sleb128 -224
- 43242 d80d 32       		.uleb128 0x32
- 43243 d80e B20D0000 		.long	0xdb2
- 43244 d812 03       		.byte	0x3
- 43245 d813 91       		.byte	0x91
- 43246 d814 B07E     		.sleb128 -208
- 43247 d816 35       		.uleb128 0x35
- 43248 d817 CB0D0000 		.long	0xdcb
- 43249 d81b 00000000 		.quad	.LBB3828
- 43249      00000000 
- 43250 d823 00000000 		.quad	.LBE3828
- 43250      00000000 
- 43251 d82b 02       		.byte	0x2
- 43252 d82c 7501     		.value	0x175
- 43253 d82e 32       		.uleb128 0x32
- 43254 d82f E90D0000 		.long	0xde9
- 43255 d833 03       		.byte	0x3
- 43256 d834 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1079
-
-
- 43257 d835 C07E     		.sleb128 -192
- 43258 d837 32       		.uleb128 0x32
- 43259 d838 DD0D0000 		.long	0xddd
- 43260 d83c 03       		.byte	0x3
- 43261 d83d 91       		.byte	0x91
- 43262 d83e D07E     		.sleb128 -176
- 43263 d840 00       		.byte	0x0
- 43264 d841 00       		.byte	0x0
- 43265 d842 00       		.byte	0x0
- 43266 d843 00       		.byte	0x0
- 43267 d844 35       		.uleb128 0x35
- 43268 d845 210F0000 		.long	0xf21
- 43269 d849 00000000 		.quad	.LBB3830
- 43269      00000000 
- 43270 d851 00000000 		.quad	.LBE3830
- 43270      00000000 
- 43271 d859 02       		.byte	0x2
- 43272 d85a 2106     		.value	0x621
- 43273 d85c 32       		.uleb128 0x32
- 43274 d85d 330F0000 		.long	0xf33
- 43275 d861 03       		.byte	0x3
- 43276 d862 91       		.byte	0x91
- 43277 d863 E07E     		.sleb128 -160
- 43278 d865 33       		.uleb128 0x33
- 43279 d866 00000000 		.quad	.LBB3831
- 43279      00000000 
- 43280 d86e 00000000 		.quad	.LBE3831
- 43280      00000000 
- 43281 d876 34       		.uleb128 0x34
- 43282 d877 3F0F0000 		.long	0xf3f
- 43283 d87b 09       		.byte	0x9
- 43284 d87c 03       		.byte	0x3
- 43285 d87d 00000000 		.quad	mask.7943
- 43285      00000000 
- 43286 d885 35       		.uleb128 0x35
- 43287 d886 A00D0000 		.long	0xda0
- 43288 d88a 00000000 		.quad	.LBB3832
- 43288      00000000 
- 43289 d892 00000000 		.quad	.LBE3832
- 43289      00000000 
- 43290 d89a 02       		.byte	0x2
- 43291 d89b FE04     		.value	0x4fe
- 43292 d89d 32       		.uleb128 0x32
- 43293 d89e BE0D0000 		.long	0xdbe
- 43294 d8a2 03       		.byte	0x3
- 43295 d8a3 91       		.byte	0x91
- 43296 d8a4 F07E     		.sleb128 -144
- 43297 d8a6 32       		.uleb128 0x32
- 43298 d8a7 B20D0000 		.long	0xdb2
- 43299 d8ab 03       		.byte	0x3
- 43300 d8ac 91       		.byte	0x91
- 43301 d8ad 807F     		.sleb128 -128
- 43302 d8af 35       		.uleb128 0x35
- 43303 d8b0 CB0D0000 		.long	0xdcb
- 43304 d8b4 00000000 		.quad	.LBB3834
- 43304      00000000 
- 43305 d8bc 00000000 		.quad	.LBE3834
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1080
-
-
- 43305      00000000 
- 43306 d8c4 02       		.byte	0x2
- 43307 d8c5 7501     		.value	0x175
- 43308 d8c7 32       		.uleb128 0x32
- 43309 d8c8 E90D0000 		.long	0xde9
- 43310 d8cc 03       		.byte	0x3
- 43311 d8cd 91       		.byte	0x91
- 43312 d8ce 907F     		.sleb128 -112
- 43313 d8d0 32       		.uleb128 0x32
- 43314 d8d1 DD0D0000 		.long	0xddd
- 43315 d8d5 03       		.byte	0x3
- 43316 d8d6 91       		.byte	0x91
- 43317 d8d7 A07F     		.sleb128 -96
- 43318 d8d9 00       		.byte	0x0
- 43319 d8da 00       		.byte	0x0
- 43320 d8db 00       		.byte	0x0
- 43321 d8dc 00       		.byte	0x0
- 43322 d8dd 00       		.byte	0x0
- 43323 d8de 00       		.byte	0x0
- 43324 d8df 35       		.uleb128 0x35
- 43325 d8e0 860E0000 		.long	0xe86
- 43326 d8e4 00000000 		.quad	.LBB3836
- 43326      00000000 
- 43327 d8ec 00000000 		.quad	.LBE3836
- 43327      00000000 
- 43328 d8f4 02       		.byte	0x2
- 43329 d8f5 9207     		.value	0x792
- 43330 d8f7 32       		.uleb128 0x32
- 43331 d8f8 A10E0000 		.long	0xea1
- 43332 d8fc 03       		.byte	0x3
- 43333 d8fd 91       		.byte	0x91
- 43334 d8fe B07F     		.sleb128 -80
- 43335 d900 32       		.uleb128 0x32
- 43336 d901 970E0000 		.long	0xe97
- 43337 d905 02       		.byte	0x2
- 43338 d906 91       		.byte	0x91
- 43339 d907 40       		.sleb128 -64
- 43340 d908 00       		.byte	0x0
- 43341 d909 00       		.byte	0x0
- 43342 d90a 25       		.uleb128 0x25
- 43343 d90b 00000000 		.long	.LASF363
- 43344 d90f 02       		.byte	0x2
- 43345 d910 4B04     		.value	0x44b
- 43346 d912 01       		.byte	0x1
- 43347 d913 B3010000 		.long	0x1b3
- 43348 d917 03       		.byte	0x3
- 43349 d918 6BD90000 		.long	0xd96b
- 43350 d91c 26       		.uleb128 0x26
- 43351 d91d 00000000 		.long	.LASF67
- 43352 d921 02       		.byte	0x2
- 43353 d922 4B04     		.value	0x44b
- 43354 d924 B3010000 		.long	0x1b3
- 43355 d928 28       		.uleb128 0x28
- 43356 d929 723100   		.string	"r1"
- 43357 d92c 02       		.byte	0x2
- 43358 d92d 5004     		.value	0x450
- 43359 d92f B3010000 		.long	0x1b3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1081
-
-
- 43360 d933 28       		.uleb128 0x28
- 43361 d934 723200   		.string	"r2"
- 43362 d937 02       		.byte	0x2
- 43363 d938 5004     		.value	0x450
- 43364 d93a B3010000 		.long	0x1b3
- 43365 d93e 28       		.uleb128 0x28
- 43366 d93f 723300   		.string	"r3"
- 43367 d942 02       		.byte	0x2
- 43368 d943 5004     		.value	0x450
- 43369 d945 B3010000 		.long	0x1b3
- 43370 d949 28       		.uleb128 0x28
- 43371 d94a 663200   		.string	"f2"
- 43372 d94d 02       		.byte	0x2
- 43373 d94e 5004     		.value	0x450
- 43374 d950 B3010000 		.long	0x1b3
- 43375 d954 28       		.uleb128 0x28
- 43376 d955 663400   		.string	"f4"
- 43377 d958 02       		.byte	0x2
- 43378 d959 5004     		.value	0x450
- 43379 d95b B3010000 		.long	0x1b3
- 43380 d95f 28       		.uleb128 0x28
- 43381 d960 663800   		.string	"f8"
- 43382 d963 02       		.byte	0x2
- 43383 d964 5004     		.value	0x450
- 43384 d966 B3010000 		.long	0x1b3
- 43385 d96a 00       		.byte	0x0
- 43386 d96b 25       		.uleb128 0x25
- 43387 d96c 00000000 		.long	.LASF364
- 43388 d970 02       		.byte	0x2
- 43389 d971 9F03     		.value	0x39f
- 43390 d973 01       		.byte	0x1
- 43391 d974 B3010000 		.long	0x1b3
- 43392 d978 03       		.byte	0x3
- 43393 d979 E6D90000 		.long	0xd9e6
- 43394 d97d 26       		.uleb128 0x26
- 43395 d97e 00000000 		.long	.LASF67
- 43396 d982 02       		.byte	0x2
- 43397 d983 9F03     		.value	0x39f
- 43398 d985 B3010000 		.long	0x1b3
- 43399 d989 26       		.uleb128 0x26
- 43400 d98a 00000000 		.long	.LASF365
- 43401 d98e 02       		.byte	0x2
- 43402 d98f 9F03     		.value	0x39f
- 43403 d991 B4000000 		.long	0xb4
- 43404 d995 28       		.uleb128 0x28
- 43405 d996 736C00   		.string	"sl"
- 43406 d999 02       		.byte	0x2
- 43407 d99a A103     		.value	0x3a1
- 43408 d99c B3010000 		.long	0x1b3
- 43409 d9a0 28       		.uleb128 0x28
- 43410 d9a1 737200   		.string	"sr"
- 43411 d9a4 02       		.byte	0x2
- 43412 d9a5 A103     		.value	0x3a1
- 43413 d9a7 B3010000 		.long	0x1b3
- 43414 d9ab 38       		.uleb128 0x38
- 43415 d9ac 00000000 		.long	.LASF366
- 43416 d9b0 F6D90000 		.long	0xd9f6
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1082
-
-
- 43417 d9b4 01       		.byte	0x1
- 43418 d9b5 00000000 		.long	.LASF364
- 43419 d9b9 29       		.uleb128 0x29
- 43420 d9ba C9D90000 		.long	0xd9c9
- 43421 d9be 28       		.uleb128 0x28
- 43422 d9bf 7600     		.string	"v"
- 43423 d9c1 02       		.byte	0x2
- 43424 d9c2 A503     		.value	0x3a5
- 43425 d9c4 29050000 		.long	0x529
- 43426 d9c8 00       		.byte	0x0
- 43427 d9c9 29       		.uleb128 0x29
- 43428 d9ca D9D90000 		.long	0xd9d9
- 43429 d9ce 28       		.uleb128 0x28
- 43430 d9cf 7600     		.string	"v"
- 43431 d9d1 02       		.byte	0x2
- 43432 d9d2 A703     		.value	0x3a7
- 43433 d9d4 29050000 		.long	0x529
- 43434 d9d8 00       		.byte	0x0
- 43435 d9d9 2A       		.uleb128 0x2a
- 43436 d9da 28       		.uleb128 0x28
- 43437 d9db 7600     		.string	"v"
- 43438 d9dd 02       		.byte	0x2
- 43439 d9de A903     		.value	0x3a9
- 43440 d9e0 29050000 		.long	0x529
- 43441 d9e4 00       		.byte	0x0
- 43442 d9e5 00       		.byte	0x0
- 43443 d9e6 19       		.uleb128 0x19
- 43444 d9e7 9F000000 		.long	0x9f
- 43445 d9eb F6D90000 		.long	0xd9f6
- 43446 d9ef 1A       		.uleb128 0x1a
- 43447 d9f0 9C000000 		.long	0x9c
- 43448 d9f4 1B       		.byte	0x1b
- 43449 d9f5 00       		.byte	0x0
- 43450 d9f6 06       		.uleb128 0x6
- 43451 d9f7 E6D90000 		.long	0xd9e6
- 43452 d9fb 25       		.uleb128 0x25
- 43453 d9fc 00000000 		.long	.LASF367
- 43454 da00 02       		.byte	0x2
- 43455 da01 CF01     		.value	0x1cf
- 43456 da03 01       		.byte	0x1
- 43457 da04 B3010000 		.long	0x1b3
- 43458 da08 03       		.byte	0x3
- 43459 da09 BFDA0000 		.long	0xdabf
- 43460 da0d 2B       		.uleb128 0x2b
- 43461 da0e 7600     		.string	"v"
- 43462 da10 02       		.byte	0x2
- 43463 da11 CF01     		.value	0x1cf
- 43464 da13 B3010000 		.long	0x1b3
- 43465 da17 2B       		.uleb128 0x2b
- 43466 da18 6B00     		.string	"k"
- 43467 da1a 02       		.byte	0x2
- 43468 da1b CF01     		.value	0x1cf
- 43469 da1d B4000000 		.long	0xb4
- 43470 da21 2C       		.uleb128 0x2c
- 43471 da22 00000000 		.long	.LASF368
- 43472 da26 02       		.byte	0x2
- 43473 da27 D201     		.value	0x1d2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1083
-
-
- 43474 da29 CFDA0000 		.long	0xdacf
- 43475 da2d 90       		.byte	0x90
- 43476 da2e FF       		.byte	0xff
- 43477 da2f FF       		.byte	0xff
- 43478 da30 FF       		.byte	0xff
- 43479 da31 FF       		.byte	0xff
- 43480 da32 FF       		.byte	0xff
- 43481 da33 FF       		.byte	0xff
- 43482 da34 FF       		.byte	0xff
- 43483 da35 FF       		.byte	0xff
- 43484 da36 FF       		.byte	0xff
- 43485 da37 FF       		.byte	0xff
- 43486 da38 FF       		.byte	0xff
- 43487 da39 FF       		.byte	0xff
- 43488 da3a FF       		.byte	0xff
- 43489 da3b FF       		.byte	0xff
- 43490 da3c FF       		.byte	0xff
- 43491 da3d FF       		.byte	0xff
- 43492 da3e 7F       		.byte	0x7f
- 43493 da3f 7F       		.byte	0x7f
- 43494 da40 7F       		.byte	0x7f
- 43495 da41 7F       		.byte	0x7f
- 43496 da42 7F       		.byte	0x7f
- 43497 da43 7F       		.byte	0x7f
- 43498 da44 7F       		.byte	0x7f
- 43499 da45 7F       		.byte	0x7f
- 43500 da46 7F       		.byte	0x7f
- 43501 da47 7F       		.byte	0x7f
- 43502 da48 7F       		.byte	0x7f
- 43503 da49 7F       		.byte	0x7f
- 43504 da4a 7F       		.byte	0x7f
- 43505 da4b 7F       		.byte	0x7f
- 43506 da4c 7F       		.byte	0x7f
- 43507 da4d 7F       		.byte	0x7f
- 43508 da4e 3F       		.byte	0x3f
- 43509 da4f 3F       		.byte	0x3f
- 43510 da50 3F       		.byte	0x3f
- 43511 da51 3F       		.byte	0x3f
- 43512 da52 3F       		.byte	0x3f
- 43513 da53 3F       		.byte	0x3f
- 43514 da54 3F       		.byte	0x3f
- 43515 da55 3F       		.byte	0x3f
- 43516 da56 3F       		.byte	0x3f
- 43517 da57 3F       		.byte	0x3f
- 43518 da58 3F       		.byte	0x3f
- 43519 da59 3F       		.byte	0x3f
- 43520 da5a 3F       		.byte	0x3f
- 43521 da5b 3F       		.byte	0x3f
- 43522 da5c 3F       		.byte	0x3f
- 43523 da5d 3F       		.byte	0x3f
- 43524 da5e 1F       		.byte	0x1f
- 43525 da5f 1F       		.byte	0x1f
- 43526 da60 1F       		.byte	0x1f
- 43527 da61 1F       		.byte	0x1f
- 43528 da62 1F       		.byte	0x1f
- 43529 da63 1F       		.byte	0x1f
- 43530 da64 1F       		.byte	0x1f
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1084
-
-
- 43531 da65 1F       		.byte	0x1f
- 43532 da66 1F       		.byte	0x1f
- 43533 da67 1F       		.byte	0x1f
- 43534 da68 1F       		.byte	0x1f
- 43535 da69 1F       		.byte	0x1f
- 43536 da6a 1F       		.byte	0x1f
- 43537 da6b 1F       		.byte	0x1f
- 43538 da6c 1F       		.byte	0x1f
- 43539 da6d 1F       		.byte	0x1f
- 43540 da6e 0F       		.byte	0xf
- 43541 da6f 0F       		.byte	0xf
- 43542 da70 0F       		.byte	0xf
- 43543 da71 0F       		.byte	0xf
- 43544 da72 0F       		.byte	0xf
- 43545 da73 0F       		.byte	0xf
- 43546 da74 0F       		.byte	0xf
- 43547 da75 0F       		.byte	0xf
- 43548 da76 0F       		.byte	0xf
- 43549 da77 0F       		.byte	0xf
- 43550 da78 0F       		.byte	0xf
- 43551 da79 0F       		.byte	0xf
- 43552 da7a 0F       		.byte	0xf
- 43553 da7b 0F       		.byte	0xf
- 43554 da7c 0F       		.byte	0xf
- 43555 da7d 0F       		.byte	0xf
- 43556 da7e 07       		.byte	0x7
- 43557 da7f 07       		.byte	0x7
- 43558 da80 07       		.byte	0x7
- 43559 da81 07       		.byte	0x7
- 43560 da82 07       		.byte	0x7
- 43561 da83 07       		.byte	0x7
- 43562 da84 07       		.byte	0x7
- 43563 da85 07       		.byte	0x7
- 43564 da86 07       		.byte	0x7
- 43565 da87 07       		.byte	0x7
- 43566 da88 07       		.byte	0x7
- 43567 da89 07       		.byte	0x7
- 43568 da8a 07       		.byte	0x7
- 43569 da8b 07       		.byte	0x7
- 43570 da8c 07       		.byte	0x7
- 43571 da8d 07       		.byte	0x7
- 43572 da8e 03       		.byte	0x3
- 43573 da8f 03       		.byte	0x3
- 43574 da90 03       		.byte	0x3
- 43575 da91 03       		.byte	0x3
- 43576 da92 03       		.byte	0x3
- 43577 da93 03       		.byte	0x3
- 43578 da94 03       		.byte	0x3
- 43579 da95 03       		.byte	0x3
- 43580 da96 03       		.byte	0x3
- 43581 da97 03       		.byte	0x3
- 43582 da98 03       		.byte	0x3
- 43583 da99 03       		.byte	0x3
- 43584 da9a 03       		.byte	0x3
- 43585 da9b 03       		.byte	0x3
- 43586 da9c 03       		.byte	0x3
- 43587 da9d 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1085
-
-
- 43588 da9e 01       		.byte	0x1
- 43589 da9f 01       		.byte	0x1
- 43590 daa0 01       		.byte	0x1
- 43591 daa1 01       		.byte	0x1
- 43592 daa2 01       		.byte	0x1
- 43593 daa3 01       		.byte	0x1
- 43594 daa4 01       		.byte	0x1
- 43595 daa5 01       		.byte	0x1
- 43596 daa6 01       		.byte	0x1
- 43597 daa7 01       		.byte	0x1
- 43598 daa8 01       		.byte	0x1
- 43599 daa9 01       		.byte	0x1
- 43600 daaa 01       		.byte	0x1
- 43601 daab 01       		.byte	0x1
- 43602 daac 01       		.byte	0x1
- 43603 daad 01       		.byte	0x1
- 43604 daae 00       		.byte	0x0
- 43605 daaf 00       		.byte	0x0
- 43606 dab0 00       		.byte	0x0
- 43607 dab1 00       		.byte	0x0
- 43608 dab2 00       		.byte	0x0
- 43609 dab3 00       		.byte	0x0
- 43610 dab4 00       		.byte	0x0
- 43611 dab5 00       		.byte	0x0
- 43612 dab6 00       		.byte	0x0
- 43613 dab7 00       		.byte	0x0
- 43614 dab8 00       		.byte	0x0
- 43615 dab9 00       		.byte	0x0
- 43616 daba 00       		.byte	0x0
- 43617 dabb 00       		.byte	0x0
- 43618 dabc 00       		.byte	0x0
- 43619 dabd 00       		.byte	0x0
- 43620 dabe 00       		.byte	0x0
- 43621 dabf 19       		.uleb128 0x19
- 43622 dac0 B3010000 		.long	0x1b3
- 43623 dac4 CFDA0000 		.long	0xdacf
- 43624 dac8 1A       		.uleb128 0x1a
- 43625 dac9 9C000000 		.long	0x9c
- 43626 dacd 08       		.byte	0x8
- 43627 dace 00       		.byte	0x0
- 43628 dacf 06       		.uleb128 0x6
- 43629 dad0 BFDA0000 		.long	0xdabf
- 43630 dad4 25       		.uleb128 0x25
- 43631 dad5 00000000 		.long	.LASF369
- 43632 dad9 02       		.byte	0x2
- 43633 dada 9201     		.value	0x192
- 43634 dadc 01       		.byte	0x1
- 43635 dadd B3010000 		.long	0x1b3
- 43636 dae1 03       		.byte	0x3
- 43637 dae2 B1DB0000 		.long	0xdbb1
- 43638 dae6 2B       		.uleb128 0x2b
- 43639 dae7 7600     		.string	"v"
- 43640 dae9 02       		.byte	0x2
- 43641 daea 9201     		.value	0x192
- 43642 daec B3010000 		.long	0x1b3
- 43643 daf0 2B       		.uleb128 0x2b
- 43644 daf1 6B00     		.string	"k"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1086
-
-
- 43645 daf3 02       		.byte	0x2
- 43646 daf4 9201     		.value	0x192
- 43647 daf6 B4000000 		.long	0xb4
- 43648 dafa 2C       		.uleb128 0x2c
- 43649 dafb 00000000 		.long	.LASF370
- 43650 daff 02       		.byte	0x2
- 43651 db00 9501     		.value	0x195
- 43652 db02 B1DB0000 		.long	0xdbb1
- 43653 db06 90       		.byte	0x90
- 43654 db07 FF       		.byte	0xff
- 43655 db08 FF       		.byte	0xff
- 43656 db09 FF       		.byte	0xff
- 43657 db0a FF       		.byte	0xff
- 43658 db0b FF       		.byte	0xff
- 43659 db0c FF       		.byte	0xff
- 43660 db0d FF       		.byte	0xff
- 43661 db0e FF       		.byte	0xff
- 43662 db0f FF       		.byte	0xff
- 43663 db10 FF       		.byte	0xff
- 43664 db11 FF       		.byte	0xff
- 43665 db12 FF       		.byte	0xff
- 43666 db13 FF       		.byte	0xff
- 43667 db14 FF       		.byte	0xff
- 43668 db15 FF       		.byte	0xff
- 43669 db16 FF       		.byte	0xff
- 43670 db17 FE       		.byte	0xfe
- 43671 db18 FE       		.byte	0xfe
- 43672 db19 FE       		.byte	0xfe
- 43673 db1a FE       		.byte	0xfe
- 43674 db1b FE       		.byte	0xfe
- 43675 db1c FE       		.byte	0xfe
- 43676 db1d FE       		.byte	0xfe
- 43677 db1e FE       		.byte	0xfe
- 43678 db1f FE       		.byte	0xfe
- 43679 db20 FE       		.byte	0xfe
- 43680 db21 FE       		.byte	0xfe
- 43681 db22 FE       		.byte	0xfe
- 43682 db23 FE       		.byte	0xfe
- 43683 db24 FE       		.byte	0xfe
- 43684 db25 FE       		.byte	0xfe
- 43685 db26 FE       		.byte	0xfe
- 43686 db27 FC       		.byte	0xfc
- 43687 db28 FC       		.byte	0xfc
- 43688 db29 FC       		.byte	0xfc
- 43689 db2a FC       		.byte	0xfc
- 43690 db2b FC       		.byte	0xfc
- 43691 db2c FC       		.byte	0xfc
- 43692 db2d FC       		.byte	0xfc
- 43693 db2e FC       		.byte	0xfc
- 43694 db2f FC       		.byte	0xfc
- 43695 db30 FC       		.byte	0xfc
- 43696 db31 FC       		.byte	0xfc
- 43697 db32 FC       		.byte	0xfc
- 43698 db33 FC       		.byte	0xfc
- 43699 db34 FC       		.byte	0xfc
- 43700 db35 FC       		.byte	0xfc
- 43701 db36 FC       		.byte	0xfc
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1087
-
-
- 43702 db37 F8       		.byte	0xf8
- 43703 db38 F8       		.byte	0xf8
- 43704 db39 F8       		.byte	0xf8
- 43705 db3a F8       		.byte	0xf8
- 43706 db3b F8       		.byte	0xf8
- 43707 db3c F8       		.byte	0xf8
- 43708 db3d F8       		.byte	0xf8
- 43709 db3e F8       		.byte	0xf8
- 43710 db3f F8       		.byte	0xf8
- 43711 db40 F8       		.byte	0xf8
- 43712 db41 F8       		.byte	0xf8
- 43713 db42 F8       		.byte	0xf8
- 43714 db43 F8       		.byte	0xf8
- 43715 db44 F8       		.byte	0xf8
- 43716 db45 F8       		.byte	0xf8
- 43717 db46 F8       		.byte	0xf8
- 43718 db47 F0       		.byte	0xf0
- 43719 db48 F0       		.byte	0xf0
- 43720 db49 F0       		.byte	0xf0
- 43721 db4a F0       		.byte	0xf0
- 43722 db4b F0       		.byte	0xf0
- 43723 db4c F0       		.byte	0xf0
- 43724 db4d F0       		.byte	0xf0
- 43725 db4e F0       		.byte	0xf0
- 43726 db4f F0       		.byte	0xf0
- 43727 db50 F0       		.byte	0xf0
- 43728 db51 F0       		.byte	0xf0
- 43729 db52 F0       		.byte	0xf0
- 43730 db53 F0       		.byte	0xf0
- 43731 db54 F0       		.byte	0xf0
- 43732 db55 F0       		.byte	0xf0
- 43733 db56 F0       		.byte	0xf0
- 43734 db57 E0       		.byte	0xe0
- 43735 db58 E0       		.byte	0xe0
- 43736 db59 E0       		.byte	0xe0
- 43737 db5a E0       		.byte	0xe0
- 43738 db5b E0       		.byte	0xe0
- 43739 db5c E0       		.byte	0xe0
- 43740 db5d E0       		.byte	0xe0
- 43741 db5e E0       		.byte	0xe0
- 43742 db5f E0       		.byte	0xe0
- 43743 db60 E0       		.byte	0xe0
- 43744 db61 E0       		.byte	0xe0
- 43745 db62 E0       		.byte	0xe0
- 43746 db63 E0       		.byte	0xe0
- 43747 db64 E0       		.byte	0xe0
- 43748 db65 E0       		.byte	0xe0
- 43749 db66 E0       		.byte	0xe0
- 43750 db67 C0       		.byte	0xc0
- 43751 db68 C0       		.byte	0xc0
- 43752 db69 C0       		.byte	0xc0
- 43753 db6a C0       		.byte	0xc0
- 43754 db6b C0       		.byte	0xc0
- 43755 db6c C0       		.byte	0xc0
- 43756 db6d C0       		.byte	0xc0
- 43757 db6e C0       		.byte	0xc0
- 43758 db6f C0       		.byte	0xc0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1088
-
-
- 43759 db70 C0       		.byte	0xc0
- 43760 db71 C0       		.byte	0xc0
- 43761 db72 C0       		.byte	0xc0
- 43762 db73 C0       		.byte	0xc0
- 43763 db74 C0       		.byte	0xc0
- 43764 db75 C0       		.byte	0xc0
- 43765 db76 C0       		.byte	0xc0
- 43766 db77 80       		.byte	0x80
- 43767 db78 80       		.byte	0x80
- 43768 db79 80       		.byte	0x80
- 43769 db7a 80       		.byte	0x80
- 43770 db7b 80       		.byte	0x80
- 43771 db7c 80       		.byte	0x80
- 43772 db7d 80       		.byte	0x80
- 43773 db7e 80       		.byte	0x80
- 43774 db7f 80       		.byte	0x80
- 43775 db80 80       		.byte	0x80
- 43776 db81 80       		.byte	0x80
- 43777 db82 80       		.byte	0x80
- 43778 db83 80       		.byte	0x80
- 43779 db84 80       		.byte	0x80
- 43780 db85 80       		.byte	0x80
- 43781 db86 80       		.byte	0x80
- 43782 db87 00       		.byte	0x0
- 43783 db88 00       		.byte	0x0
- 43784 db89 00       		.byte	0x0
- 43785 db8a 00       		.byte	0x0
- 43786 db8b 00       		.byte	0x0
- 43787 db8c 00       		.byte	0x0
- 43788 db8d 00       		.byte	0x0
- 43789 db8e 00       		.byte	0x0
- 43790 db8f 00       		.byte	0x0
- 43791 db90 00       		.byte	0x0
- 43792 db91 00       		.byte	0x0
- 43793 db92 00       		.byte	0x0
- 43794 db93 00       		.byte	0x0
- 43795 db94 00       		.byte	0x0
- 43796 db95 00       		.byte	0x0
- 43797 db96 00       		.byte	0x0
- 43798 db97 28       		.uleb128 0x28
- 43799 db98 767600   		.string	"vv"
- 43800 db9b 02       		.byte	0x2
- 43801 db9c AA01     		.value	0x1aa
- 43802 db9e B3010000 		.long	0x1b3
- 43803 dba2 38       		.uleb128 0x38
- 43804 dba3 00000000 		.long	.LASF366
- 43805 dba7 C6DB0000 		.long	0xdbc6
- 43806 dbab 01       		.byte	0x1
- 43807 dbac 00000000 		.long	.LASF369
- 43808 dbb0 00       		.byte	0x0
- 43809 dbb1 06       		.uleb128 0x6
- 43810 dbb2 BFDA0000 		.long	0xdabf
- 43811 dbb6 19       		.uleb128 0x19
- 43812 dbb7 9F000000 		.long	0x9f
- 43813 dbbb C6DB0000 		.long	0xdbc6
- 43814 dbbf 1A       		.uleb128 0x1a
- 43815 dbc0 9C000000 		.long	0x9c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1089
-
-
- 43816 dbc4 1D       		.byte	0x1d
- 43817 dbc5 00       		.byte	0x0
- 43818 dbc6 06       		.uleb128 0x6
- 43819 dbc7 B6DB0000 		.long	0xdbb6
- 43820 dbcb 25       		.uleb128 0x25
- 43821 dbcc 00000000 		.long	.LASF371
- 43822 dbd0 03       		.byte	0x3
- 43823 dbd1 9E01     		.value	0x19e
- 43824 dbd3 01       		.byte	0x1
- 43825 dbd4 E7000000 		.long	0xe7
- 43826 dbd8 03       		.byte	0x3
- 43827 dbd9 F6DB0000 		.long	0xdbf6
- 43828 dbdd 2B       		.uleb128 0x2b
- 43829 dbde 76696E00 		.string	"vin"
- 43830 dbe2 03       		.byte	0x3
- 43831 dbe3 9E01     		.value	0x19e
- 43832 dbe5 E7000000 		.long	0xe7
- 43833 dbe9 26       		.uleb128 0x26
- 43834 dbea 00000000 		.long	.LASF331
- 43835 dbee 03       		.byte	0x3
- 43836 dbef 9E01     		.value	0x19e
- 43837 dbf1 B4000000 		.long	0xb4
- 43838 dbf5 00       		.byte	0x0
- 43839 dbf6 2D       		.uleb128 0x2d
- 43840 dbf7 00000000 		.long	.LASF372
- 43841 dbfb 02       		.byte	0x2
- 43842 dbfc 9E07     		.value	0x79e
- 43843 dbfe 01       		.byte	0x1
- 43844 dbff 00000000 		.quad	.LFB648
- 43844      00000000 
- 43845 dc07 00000000 		.quad	.LFE648
- 43845      00000000 
- 43846 dc0f 00000000 		.long	.LLST4
- 43847 dc13 26E80000 		.long	0xe826
- 43848 dc17 2F       		.uleb128 0x2f
- 43849 dc18 7200     		.string	"r"
- 43850 dc1a 02       		.byte	0x2
- 43851 dc1b 9E07     		.value	0x79e
- 43852 dc1d 24560000 		.long	0x5624
- 43853 dc21 03       		.byte	0x3
- 43854 dc22 91       		.byte	0x91
- 43855 dc23 D871     		.sleb128 -1832
- 43856 dc25 2F       		.uleb128 0x2f
- 43857 dc26 647200   		.string	"dr"
- 43858 dc29 02       		.byte	0x2
- 43859 dc2a 9E07     		.value	0x79e
- 43860 dc2c 440D0000 		.long	0xd44
- 43861 dc30 03       		.byte	0x3
- 43862 dc31 91       		.byte	0x91
- 43863 dc32 D071     		.sleb128 -1840
- 43864 dc34 2F       		.uleb128 0x2f
- 43865 dc35 4E7200   		.string	"Nr"
- 43866 dc38 02       		.byte	0x2
- 43867 dc39 9E07     		.value	0x79e
- 43868 dc3b 78000000 		.long	0x78
- 43869 dc3f 03       		.byte	0x3
- 43870 dc40 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1090
-
-
- 43871 dc41 CC71     		.sleb128 -1844
- 43872 dc43 37       		.uleb128 0x37
- 43873 dc44 697800   		.string	"ix"
- 43874 dc47 02       		.byte	0x2
- 43875 dc48 A007     		.value	0x7a0
- 43876 dc4a 78000000 		.long	0x78
- 43877 dc4e 03       		.byte	0x3
- 43878 dc4f 91       		.byte	0x91
- 43879 dc50 F872     		.sleb128 -1672
- 43880 dc52 37       		.uleb128 0x37
- 43881 dc53 6A7800   		.string	"jx"
- 43882 dc56 02       		.byte	0x2
- 43883 dc57 A007     		.value	0x7a0
- 43884 dc59 78000000 		.long	0x78
- 43885 dc5d 03       		.byte	0x3
- 43886 dc5e 91       		.byte	0x91
- 43887 dc5f FC72     		.sleb128 -1668
- 43888 dc61 35       		.uleb128 0x35
- 43889 dc62 0AD90000 		.long	0xd90a
- 43890 dc66 00000000 		.quad	.LBB3943
- 43890      00000000 
- 43891 dc6e 00000000 		.quad	.LBE3943
- 43891      00000000 
- 43892 dc76 02       		.byte	0x2
- 43893 dc77 A607     		.value	0x7a6
- 43894 dc79 32       		.uleb128 0x32
- 43895 dc7a 1CD90000 		.long	0xd91c
- 43896 dc7e 03       		.byte	0x3
- 43897 dc7f 91       		.byte	0x91
- 43898 dc80 8073     		.sleb128 -1664
- 43899 dc82 33       		.uleb128 0x33
- 43900 dc83 00000000 		.quad	.LBB3944
- 43900      00000000 
- 43901 dc8b 00000000 		.quad	.LBE3944
- 43901      00000000 
- 43902 dc93 34       		.uleb128 0x34
- 43903 dc94 28D90000 		.long	0xd928
- 43904 dc98 03       		.byte	0x3
- 43905 dc99 76       		.byte	0x76
- 43906 dc9a C071     		.sleb128 -1856
- 43907 dc9c 34       		.uleb128 0x34
- 43908 dc9d 33D90000 		.long	0xd933
- 43909 dca1 03       		.byte	0x3
- 43910 dca2 76       		.byte	0x76
- 43911 dca3 B071     		.sleb128 -1872
- 43912 dca5 34       		.uleb128 0x34
- 43913 dca6 3ED90000 		.long	0xd93e
- 43914 dcaa 03       		.byte	0x3
- 43915 dcab 76       		.byte	0x76
- 43916 dcac A071     		.sleb128 -1888
- 43917 dcae 34       		.uleb128 0x34
- 43918 dcaf 49D90000 		.long	0xd949
- 43919 dcb3 03       		.byte	0x3
- 43920 dcb4 76       		.byte	0x76
- 43921 dcb5 9071     		.sleb128 -1904
- 43922 dcb7 34       		.uleb128 0x34
- 43923 dcb8 54D90000 		.long	0xd954
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1091
-
-
- 43924 dcbc 03       		.byte	0x3
- 43925 dcbd 76       		.byte	0x76
- 43926 dcbe 8071     		.sleb128 -1920
- 43927 dcc0 34       		.uleb128 0x34
- 43928 dcc1 5FD90000 		.long	0xd95f
- 43929 dcc5 03       		.byte	0x3
- 43930 dcc6 76       		.byte	0x76
- 43931 dcc7 F070     		.sleb128 -1936
- 43932 dcc9 31       		.uleb128 0x31
- 43933 dcca 4A0E0000 		.long	0xe4a
- 43934 dcce 00000000 		.quad	.LBB3945
- 43934      00000000 
- 43935 dcd6 00000000 		.quad	.LBE3945
- 43935      00000000 
- 43936 dcde 02       		.byte	0x2
- 43937 dcdf 5204     		.value	0x452
- 43938 dce1 66DD0000 		.long	0xdd66
- 43939 dce5 32       		.uleb128 0x32
- 43940 dce6 5C0E0000 		.long	0xe5c
- 43941 dcea 03       		.byte	0x3
- 43942 dceb 91       		.byte	0x91
- 43943 dcec 9073     		.sleb128 -1648
- 43944 dcee 33       		.uleb128 0x33
- 43945 dcef 00000000 		.quad	.LBB3946
- 43945      00000000 
- 43946 dcf7 00000000 		.quad	.LBE3946
- 43946      00000000 
- 43947 dcff 34       		.uleb128 0x34
- 43948 dd00 680E0000 		.long	0xe68
- 43949 dd04 09       		.byte	0x9
- 43950 dd05 03       		.byte	0x3
- 43951 dd06 00000000 		.quad	ShiftRowTable.7385
- 43951      00000000 
- 43952 dd0e 35       		.uleb128 0x35
- 43953 dd0f A00D0000 		.long	0xda0
- 43954 dd13 00000000 		.quad	.LBB3947
- 43954      00000000 
- 43955 dd1b 00000000 		.quad	.LBE3947
- 43955      00000000 
- 43956 dd23 02       		.byte	0x2
- 43957 dd24 9B02     		.value	0x29b
- 43958 dd26 32       		.uleb128 0x32
- 43959 dd27 BE0D0000 		.long	0xdbe
- 43960 dd2b 03       		.byte	0x3
- 43961 dd2c 91       		.byte	0x91
- 43962 dd2d A073     		.sleb128 -1632
- 43963 dd2f 32       		.uleb128 0x32
- 43964 dd30 B20D0000 		.long	0xdb2
- 43965 dd34 03       		.byte	0x3
- 43966 dd35 91       		.byte	0x91
- 43967 dd36 B073     		.sleb128 -1616
- 43968 dd38 35       		.uleb128 0x35
- 43969 dd39 CB0D0000 		.long	0xdcb
- 43970 dd3d 00000000 		.quad	.LBB3949
- 43970      00000000 
- 43971 dd45 00000000 		.quad	.LBE3949
- 43971      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1092
-
-
- 43972 dd4d 02       		.byte	0x2
- 43973 dd4e 7501     		.value	0x175
- 43974 dd50 32       		.uleb128 0x32
- 43975 dd51 E90D0000 		.long	0xde9
- 43976 dd55 03       		.byte	0x3
- 43977 dd56 91       		.byte	0x91
- 43978 dd57 C073     		.sleb128 -1600
- 43979 dd59 32       		.uleb128 0x32
- 43980 dd5a DD0D0000 		.long	0xddd
- 43981 dd5e 03       		.byte	0x3
- 43982 dd5f 91       		.byte	0x91
- 43983 dd60 D073     		.sleb128 -1584
- 43984 dd62 00       		.byte	0x0
- 43985 dd63 00       		.byte	0x0
- 43986 dd64 00       		.byte	0x0
- 43987 dd65 00       		.byte	0x0
- 43988 dd66 31       		.uleb128 0x31
- 43989 dd67 4A0E0000 		.long	0xe4a
- 43990 dd6b 00000000 		.quad	.LBB3951
- 43990      00000000 
- 43991 dd73 00000000 		.quad	.LBE3951
- 43991      00000000 
- 43992 dd7b 02       		.byte	0x2
- 43993 dd7c 5304     		.value	0x453
- 43994 dd7e 03DE0000 		.long	0xde03
- 43995 dd82 32       		.uleb128 0x32
- 43996 dd83 5C0E0000 		.long	0xe5c
- 43997 dd87 03       		.byte	0x3
- 43998 dd88 91       		.byte	0x91
- 43999 dd89 E073     		.sleb128 -1568
- 44000 dd8b 33       		.uleb128 0x33
- 44001 dd8c 00000000 		.quad	.LBB3952
- 44001      00000000 
- 44002 dd94 00000000 		.quad	.LBE3952
- 44002      00000000 
- 44003 dd9c 34       		.uleb128 0x34
- 44004 dd9d 680E0000 		.long	0xe68
- 44005 dda1 09       		.byte	0x9
- 44006 dda2 03       		.byte	0x3
- 44007 dda3 00000000 		.quad	ShiftRowTable.7385
- 44007      00000000 
- 44008 ddab 35       		.uleb128 0x35
- 44009 ddac A00D0000 		.long	0xda0
- 44010 ddb0 00000000 		.quad	.LBB3953
- 44010      00000000 
- 44011 ddb8 00000000 		.quad	.LBE3953
- 44011      00000000 
- 44012 ddc0 02       		.byte	0x2
- 44013 ddc1 9B02     		.value	0x29b
- 44014 ddc3 32       		.uleb128 0x32
- 44015 ddc4 BE0D0000 		.long	0xdbe
- 44016 ddc8 03       		.byte	0x3
- 44017 ddc9 91       		.byte	0x91
- 44018 ddca F073     		.sleb128 -1552
- 44019 ddcc 32       		.uleb128 0x32
- 44020 ddcd B20D0000 		.long	0xdb2
- 44021 ddd1 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1093
-
-
- 44022 ddd2 91       		.byte	0x91
- 44023 ddd3 8074     		.sleb128 -1536
- 44024 ddd5 35       		.uleb128 0x35
- 44025 ddd6 CB0D0000 		.long	0xdcb
- 44026 ddda 00000000 		.quad	.LBB3955
- 44026      00000000 
- 44027 dde2 00000000 		.quad	.LBE3955
- 44027      00000000 
- 44028 ddea 02       		.byte	0x2
- 44029 ddeb 7501     		.value	0x175
- 44030 dded 32       		.uleb128 0x32
- 44031 ddee E90D0000 		.long	0xde9
- 44032 ddf2 03       		.byte	0x3
- 44033 ddf3 91       		.byte	0x91
- 44034 ddf4 9074     		.sleb128 -1520
- 44035 ddf6 32       		.uleb128 0x32
- 44036 ddf7 DD0D0000 		.long	0xddd
- 44037 ddfb 03       		.byte	0x3
- 44038 ddfc 91       		.byte	0x91
- 44039 ddfd A074     		.sleb128 -1504
- 44040 ddff 00       		.byte	0x0
- 44041 de00 00       		.byte	0x0
- 44042 de01 00       		.byte	0x0
- 44043 de02 00       		.byte	0x0
- 44044 de03 31       		.uleb128 0x31
- 44045 de04 4A0E0000 		.long	0xe4a
- 44046 de08 00000000 		.quad	.LBB3957
- 44046      00000000 
- 44047 de10 00000000 		.quad	.LBE3957
- 44047      00000000 
- 44048 de18 02       		.byte	0x2
- 44049 de19 5404     		.value	0x454
- 44050 de1b A0DE0000 		.long	0xdea0
- 44051 de1f 32       		.uleb128 0x32
- 44052 de20 5C0E0000 		.long	0xe5c
- 44053 de24 03       		.byte	0x3
- 44054 de25 91       		.byte	0x91
- 44055 de26 B074     		.sleb128 -1488
- 44056 de28 33       		.uleb128 0x33
- 44057 de29 00000000 		.quad	.LBB3958
- 44057      00000000 
- 44058 de31 00000000 		.quad	.LBE3958
- 44058      00000000 
- 44059 de39 34       		.uleb128 0x34
- 44060 de3a 680E0000 		.long	0xe68
- 44061 de3e 09       		.byte	0x9
- 44062 de3f 03       		.byte	0x3
- 44063 de40 00000000 		.quad	ShiftRowTable.7385
- 44063      00000000 
- 44064 de48 35       		.uleb128 0x35
- 44065 de49 A00D0000 		.long	0xda0
- 44066 de4d 00000000 		.quad	.LBB3959
- 44066      00000000 
- 44067 de55 00000000 		.quad	.LBE3959
- 44067      00000000 
- 44068 de5d 02       		.byte	0x2
- 44069 de5e 9B02     		.value	0x29b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1094
-
-
- 44070 de60 32       		.uleb128 0x32
- 44071 de61 BE0D0000 		.long	0xdbe
- 44072 de65 03       		.byte	0x3
- 44073 de66 91       		.byte	0x91
- 44074 de67 C074     		.sleb128 -1472
- 44075 de69 32       		.uleb128 0x32
- 44076 de6a B20D0000 		.long	0xdb2
- 44077 de6e 03       		.byte	0x3
- 44078 de6f 91       		.byte	0x91
- 44079 de70 D074     		.sleb128 -1456
- 44080 de72 35       		.uleb128 0x35
- 44081 de73 CB0D0000 		.long	0xdcb
- 44082 de77 00000000 		.quad	.LBB3961
- 44082      00000000 
- 44083 de7f 00000000 		.quad	.LBE3961
- 44083      00000000 
- 44084 de87 02       		.byte	0x2
- 44085 de88 7501     		.value	0x175
- 44086 de8a 32       		.uleb128 0x32
- 44087 de8b E90D0000 		.long	0xde9
- 44088 de8f 03       		.byte	0x3
- 44089 de90 91       		.byte	0x91
- 44090 de91 E074     		.sleb128 -1440
- 44091 de93 32       		.uleb128 0x32
- 44092 de94 DD0D0000 		.long	0xddd
- 44093 de98 03       		.byte	0x3
- 44094 de99 91       		.byte	0x91
- 44095 de9a F074     		.sleb128 -1424
- 44096 de9c 00       		.byte	0x0
- 44097 de9d 00       		.byte	0x0
- 44098 de9e 00       		.byte	0x0
- 44099 de9f 00       		.byte	0x0
- 44100 dea0 31       		.uleb128 0x31
- 44101 dea1 860E0000 		.long	0xe86
- 44102 dea5 00000000 		.quad	.LBB3963
- 44102      00000000 
- 44103 dead 00000000 		.quad	.LBE3963
- 44103      00000000 
- 44104 deb5 02       		.byte	0x2
- 44105 deb6 5604     		.value	0x456
- 44106 deb8 CFDE0000 		.long	0xdecf
- 44107 debc 32       		.uleb128 0x32
- 44108 debd A10E0000 		.long	0xea1
- 44109 dec1 03       		.byte	0x3
- 44110 dec2 91       		.byte	0x91
- 44111 dec3 8075     		.sleb128 -1408
- 44112 dec5 32       		.uleb128 0x32
- 44113 dec6 970E0000 		.long	0xe97
- 44114 deca 03       		.byte	0x3
- 44115 decb 91       		.byte	0x91
- 44116 decc 9075     		.sleb128 -1392
- 44117 dece 00       		.byte	0x0
- 44118 decf 31       		.uleb128 0x31
- 44119 ded0 860E0000 		.long	0xe86
- 44120 ded4 00000000 		.quad	.LBB3965
- 44120      00000000 
- 44121 dedc 00000000 		.quad	.LBE3965
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1095
-
-
- 44121      00000000 
- 44122 dee4 02       		.byte	0x2
- 44123 dee5 5704     		.value	0x457
- 44124 dee7 FEDE0000 		.long	0xdefe
- 44125 deeb 32       		.uleb128 0x32
- 44126 deec A10E0000 		.long	0xea1
- 44127 def0 03       		.byte	0x3
- 44128 def1 91       		.byte	0x91
- 44129 def2 A075     		.sleb128 -1376
- 44130 def4 32       		.uleb128 0x32
- 44131 def5 970E0000 		.long	0xe97
- 44132 def9 03       		.byte	0x3
- 44133 defa 91       		.byte	0x91
- 44134 defb B075     		.sleb128 -1360
- 44135 defd 00       		.byte	0x0
- 44136 defe 31       		.uleb128 0x31
- 44137 deff 860E0000 		.long	0xe86
- 44138 df03 00000000 		.quad	.LBB3967
- 44138      00000000 
- 44139 df0b 00000000 		.quad	.LBE3967
- 44139      00000000 
- 44140 df13 02       		.byte	0x2
- 44141 df14 5804     		.value	0x458
- 44142 df16 2DDF0000 		.long	0xdf2d
- 44143 df1a 32       		.uleb128 0x32
- 44144 df1b A10E0000 		.long	0xea1
- 44145 df1f 03       		.byte	0x3
- 44146 df20 91       		.byte	0x91
- 44147 df21 C075     		.sleb128 -1344
- 44148 df23 32       		.uleb128 0x32
- 44149 df24 970E0000 		.long	0xe97
- 44150 df28 03       		.byte	0x3
- 44151 df29 91       		.byte	0x91
- 44152 df2a D075     		.sleb128 -1328
- 44153 df2c 00       		.byte	0x0
- 44154 df2d 31       		.uleb128 0x31
- 44155 df2e 860E0000 		.long	0xe86
- 44156 df32 00000000 		.quad	.LBB3969
- 44156      00000000 
- 44157 df3a 00000000 		.quad	.LBE3969
- 44157      00000000 
- 44158 df42 02       		.byte	0x2
- 44159 df43 5904     		.value	0x459
- 44160 df45 5CDF0000 		.long	0xdf5c
- 44161 df49 32       		.uleb128 0x32
- 44162 df4a A10E0000 		.long	0xea1
- 44163 df4e 03       		.byte	0x3
- 44164 df4f 91       		.byte	0x91
- 44165 df50 E075     		.sleb128 -1312
- 44166 df52 32       		.uleb128 0x32
- 44167 df53 970E0000 		.long	0xe97
- 44168 df57 03       		.byte	0x3
- 44169 df58 91       		.byte	0x91
- 44170 df59 F075     		.sleb128 -1296
- 44171 df5b 00       		.byte	0x0
- 44172 df5c 31       		.uleb128 0x31
- 44173 df5d 860E0000 		.long	0xe86
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1096
-
-
- 44174 df61 00000000 		.quad	.LBB3971
- 44174      00000000 
- 44175 df69 00000000 		.quad	.LBE3971
- 44175      00000000 
- 44176 df71 02       		.byte	0x2
- 44177 df72 5A04     		.value	0x45a
- 44178 df74 8BDF0000 		.long	0xdf8b
- 44179 df78 32       		.uleb128 0x32
- 44180 df79 A10E0000 		.long	0xea1
- 44181 df7d 03       		.byte	0x3
- 44182 df7e 91       		.byte	0x91
- 44183 df7f 8076     		.sleb128 -1280
- 44184 df81 32       		.uleb128 0x32
- 44185 df82 970E0000 		.long	0xe97
- 44186 df86 03       		.byte	0x3
- 44187 df87 91       		.byte	0x91
- 44188 df88 9076     		.sleb128 -1264
- 44189 df8a 00       		.byte	0x0
- 44190 df8b 31       		.uleb128 0x31
- 44191 df8c 6BD90000 		.long	0xd96b
- 44192 df90 00000000 		.quad	.LBB3973
- 44192      00000000 
- 44193 df98 00000000 		.quad	.LBE3973
- 44193      00000000 
- 44194 dfa0 02       		.byte	0x2
- 44195 dfa1 5E04     		.value	0x45e
- 44196 dfa3 3BE20000 		.long	0xe23b
- 44197 dfa7 32       		.uleb128 0x32
- 44198 dfa8 89D90000 		.long	0xd989
- 44199 dfac 03       		.byte	0x3
- 44200 dfad 91       		.byte	0x91
- 44201 dfae AC76     		.sleb128 -1236
- 44202 dfb0 32       		.uleb128 0x32
- 44203 dfb1 7DD90000 		.long	0xd97d
- 44204 dfb5 03       		.byte	0x3
- 44205 dfb6 91       		.byte	0x91
- 44206 dfb7 B076     		.sleb128 -1232
- 44207 dfb9 33       		.uleb128 0x33
- 44208 dfba 00000000 		.quad	.LBB3974
- 44208      00000000 
- 44209 dfc2 00000000 		.quad	.LBE3974
- 44209      00000000 
- 44210 dfca 34       		.uleb128 0x34
- 44211 dfcb 95D90000 		.long	0xd995
- 44212 dfcf 03       		.byte	0x3
- 44213 dfd0 91       		.byte	0x91
- 44214 dfd1 D076     		.sleb128 -1200
- 44215 dfd3 34       		.uleb128 0x34
- 44216 dfd4 A0D90000 		.long	0xd9a0
- 44217 dfd8 03       		.byte	0x3
- 44218 dfd9 91       		.byte	0x91
- 44219 dfda C076     		.sleb128 -1216
- 44220 dfdc 34       		.uleb128 0x34
- 44221 dfdd ABD90000 		.long	0xd9ab
- 44222 dfe1 09       		.byte	0x9
- 44223 dfe2 03       		.byte	0x3
- 44224 dfe3 00000000 		.quad	__PRETTY_FUNCTION__.7467
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1097
-
-
- 44224      00000000 
- 44225 dfeb 36       		.uleb128 0x36
- 44226 dfec 00000000 		.quad	.LBB3975
- 44226      00000000 
- 44227 dff4 00000000 		.quad	.LBE3975
- 44227      00000000 
- 44228 dffc 0AE00000 		.long	0xe00a
- 44229 e000 34       		.uleb128 0x34
- 44230 e001 BED90000 		.long	0xd9be
- 44231 e005 03       		.byte	0x3
- 44232 e006 91       		.byte	0x91
- 44233 e007 8072     		.sleb128 -1792
- 44234 e009 00       		.byte	0x0
- 44235 e00a 31       		.uleb128 0x31
- 44236 e00b FBD90000 		.long	0xd9fb
- 44237 e00f 00000000 		.quad	.LBB3976
- 44237      00000000 
- 44238 e017 00000000 		.quad	.LBE3976
- 44238      00000000 
- 44239 e01f 02       		.byte	0x2
- 44240 e020 A603     		.value	0x3a6
- 44241 e022 B4E00000 		.long	0xe0b4
- 44242 e026 32       		.uleb128 0x32
- 44243 e027 17DA0000 		.long	0xda17
- 44244 e02b 03       		.byte	0x3
- 44245 e02c 91       		.byte	0x91
- 44246 e02d EC76     		.sleb128 -1172
- 44247 e02f 32       		.uleb128 0x32
- 44248 e030 0DDA0000 		.long	0xda0d
- 44249 e034 03       		.byte	0x3
- 44250 e035 91       		.byte	0x91
- 44251 e036 F076     		.sleb128 -1168
- 44252 e038 33       		.uleb128 0x33
- 44253 e039 00000000 		.quad	.LBB3977
- 44253      00000000 
- 44254 e041 00000000 		.quad	.LBE3977
- 44254      00000000 
- 44255 e049 34       		.uleb128 0x34
- 44256 e04a 21DA0000 		.long	0xda21
- 44257 e04e 09       		.byte	0x9
- 44258 e04f 03       		.byte	0x3
- 44259 e050 00000000 		.quad	sr_mask.7327
- 44259      00000000 
- 44260 e058 31       		.uleb128 0x31
- 44261 e059 750D0000 		.long	0xd75
- 44262 e05d 00000000 		.quad	.LBB3978
- 44262      00000000 
- 44263 e065 00000000 		.quad	.LBE3978
- 44263      00000000 
- 44264 e06d 02       		.byte	0x2
- 44265 e06e E801     		.value	0x1e8
- 44266 e070 87E00000 		.long	0xe087
- 44267 e074 32       		.uleb128 0x32
- 44268 e075 930D0000 		.long	0xd93
- 44269 e079 03       		.byte	0x3
- 44270 e07a 91       		.byte	0x91
- 44271 e07b 8C77     		.sleb128 -1140
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1098
-
-
- 44272 e07d 32       		.uleb128 0x32
- 44273 e07e 870D0000 		.long	0xd87
- 44274 e082 03       		.byte	0x3
- 44275 e083 91       		.byte	0x91
- 44276 e084 9077     		.sleb128 -1136
- 44277 e086 00       		.byte	0x0
- 44278 e087 35       		.uleb128 0x35
- 44279 e088 4F0D0000 		.long	0xd4f
- 44280 e08c 00000000 		.quad	.LBB3980
- 44280      00000000 
- 44281 e094 00000000 		.quad	.LBE3980
- 44281      00000000 
- 44282 e09c 02       		.byte	0x2
- 44283 e09d E901     		.value	0x1e9
- 44284 e09f 32       		.uleb128 0x32
- 44285 e0a0 6A0D0000 		.long	0xd6a
- 44286 e0a4 03       		.byte	0x3
- 44287 e0a5 91       		.byte	0x91
- 44288 e0a6 A077     		.sleb128 -1120
- 44289 e0a8 32       		.uleb128 0x32
- 44290 e0a9 600D0000 		.long	0xd60
- 44291 e0ad 03       		.byte	0x3
- 44292 e0ae 91       		.byte	0x91
- 44293 e0af B077     		.sleb128 -1104
- 44294 e0b1 00       		.byte	0x0
- 44295 e0b2 00       		.byte	0x0
- 44296 e0b3 00       		.byte	0x0
- 44297 e0b4 36       		.uleb128 0x36
- 44298 e0b5 00000000 		.quad	.LBB3982
- 44298      00000000 
- 44299 e0bd 00000000 		.quad	.LBE3982
- 44299      00000000 
- 44300 e0c5 D3E00000 		.long	0xe0d3
- 44301 e0c9 34       		.uleb128 0x34
- 44302 e0ca CED90000 		.long	0xd9ce
- 44303 e0ce 03       		.byte	0x3
- 44304 e0cf 91       		.byte	0x91
- 44305 e0d0 F071     		.sleb128 -1808
- 44306 e0d2 00       		.byte	0x0
- 44307 e0d3 31       		.uleb128 0x31
- 44308 e0d4 D4DA0000 		.long	0xdad4
- 44309 e0d8 00000000 		.quad	.LBB3983
- 44309      00000000 
- 44310 e0e0 00000000 		.quad	.LBE3983
- 44310      00000000 
- 44311 e0e8 02       		.byte	0x2
- 44312 e0e9 A803     		.value	0x3a8
- 44313 e0eb 95E10000 		.long	0xe195
- 44314 e0ef 32       		.uleb128 0x32
- 44315 e0f0 F0DA0000 		.long	0xdaf0
- 44316 e0f4 03       		.byte	0x3
- 44317 e0f5 91       		.byte	0x91
- 44318 e0f6 CC77     		.sleb128 -1076
- 44319 e0f8 32       		.uleb128 0x32
- 44320 e0f9 E6DA0000 		.long	0xdae6
- 44321 e0fd 03       		.byte	0x3
- 44322 e0fe 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1099
-
-
- 44323 e0ff D077     		.sleb128 -1072
- 44324 e101 33       		.uleb128 0x33
- 44325 e102 00000000 		.quad	.LBB3984
- 44325      00000000 
- 44326 e10a 00000000 		.quad	.LBE3984
- 44326      00000000 
- 44327 e112 34       		.uleb128 0x34
- 44328 e113 97DB0000 		.long	0xdb97
- 44329 e117 03       		.byte	0x3
- 44330 e118 91       		.byte	0x91
- 44331 e119 E077     		.sleb128 -1056
- 44332 e11b 34       		.uleb128 0x34
- 44333 e11c FADA0000 		.long	0xdafa
- 44334 e120 09       		.byte	0x9
- 44335 e121 03       		.byte	0x3
- 44336 e122 00000000 		.quad	sl_mask.7310
- 44336      00000000 
- 44337 e12a 34       		.uleb128 0x34
- 44338 e12b A2DB0000 		.long	0xdba2
- 44339 e12f 09       		.byte	0x9
- 44340 e130 03       		.byte	0x3
- 44341 e131 00000000 		.quad	__PRETTY_FUNCTION__.7312
- 44341      00000000 
- 44342 e139 31       		.uleb128 0x31
- 44343 e13a CBDB0000 		.long	0xdbcb
- 44344 e13e 00000000 		.quad	.LBB3985
- 44344      00000000 
- 44345 e146 00000000 		.quad	.LBE3985
- 44345      00000000 
- 44346 e14e 02       		.byte	0x2
- 44347 e14f B101     		.value	0x1b1
- 44348 e151 68E10000 		.long	0xe168
- 44349 e155 32       		.uleb128 0x32
- 44350 e156 E9DB0000 		.long	0xdbe9
- 44351 e15a 03       		.byte	0x3
- 44352 e15b 91       		.byte	0x91
- 44353 e15c FC77     		.sleb128 -1028
- 44354 e15e 32       		.uleb128 0x32
- 44355 e15f DDDB0000 		.long	0xdbdd
- 44356 e163 03       		.byte	0x3
- 44357 e164 91       		.byte	0x91
- 44358 e165 8078     		.sleb128 -1024
- 44359 e167 00       		.byte	0x0
- 44360 e168 35       		.uleb128 0x35
- 44361 e169 4F0D0000 		.long	0xd4f
- 44362 e16d 00000000 		.quad	.LBB3987
- 44362      00000000 
- 44363 e175 00000000 		.quad	.LBE3987
- 44363      00000000 
- 44364 e17d 02       		.byte	0x2
- 44365 e17e B301     		.value	0x1b3
- 44366 e180 32       		.uleb128 0x32
- 44367 e181 6A0D0000 		.long	0xd6a
- 44368 e185 03       		.byte	0x3
- 44369 e186 91       		.byte	0x91
- 44370 e187 9078     		.sleb128 -1008
- 44371 e189 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1100
-
-
- 44372 e18a 600D0000 		.long	0xd60
- 44373 e18e 03       		.byte	0x3
- 44374 e18f 91       		.byte	0x91
- 44375 e190 A078     		.sleb128 -992
- 44376 e192 00       		.byte	0x0
- 44377 e193 00       		.byte	0x0
- 44378 e194 00       		.byte	0x0
- 44379 e195 36       		.uleb128 0x36
- 44380 e196 00000000 		.quad	.LBB3989
- 44380      00000000 
- 44381 e19e 00000000 		.quad	.LBE3989
- 44381      00000000 
- 44382 e1a6 B4E10000 		.long	0xe1b4
- 44383 e1aa 34       		.uleb128 0x34
- 44384 e1ab DAD90000 		.long	0xd9da
- 44385 e1af 03       		.byte	0x3
- 44386 e1b0 91       		.byte	0x91
- 44387 e1b1 E071     		.sleb128 -1824
- 44388 e1b3 00       		.byte	0x0
- 44389 e1b4 31       		.uleb128 0x31
- 44390 e1b5 A00D0000 		.long	0xda0
- 44391 e1b9 00000000 		.quad	.LBB3990
- 44391      00000000 
- 44392 e1c1 00000000 		.quad	.LBE3990
- 44392      00000000 
- 44393 e1c9 02       		.byte	0x2
- 44394 e1ca AA03     		.value	0x3aa
- 44395 e1cc 0EE20000 		.long	0xe20e
- 44396 e1d0 32       		.uleb128 0x32
- 44397 e1d1 BE0D0000 		.long	0xdbe
- 44398 e1d5 03       		.byte	0x3
- 44399 e1d6 91       		.byte	0x91
- 44400 e1d7 B078     		.sleb128 -976
- 44401 e1d9 32       		.uleb128 0x32
- 44402 e1da B20D0000 		.long	0xdb2
- 44403 e1de 03       		.byte	0x3
- 44404 e1df 91       		.byte	0x91
- 44405 e1e0 C078     		.sleb128 -960
- 44406 e1e2 35       		.uleb128 0x35
- 44407 e1e3 CB0D0000 		.long	0xdcb
- 44408 e1e7 00000000 		.quad	.LBB3992
- 44408      00000000 
- 44409 e1ef 00000000 		.quad	.LBE3992
- 44409      00000000 
- 44410 e1f7 02       		.byte	0x2
- 44411 e1f8 7501     		.value	0x175
- 44412 e1fa 32       		.uleb128 0x32
- 44413 e1fb E90D0000 		.long	0xde9
- 44414 e1ff 03       		.byte	0x3
- 44415 e200 91       		.byte	0x91
- 44416 e201 D078     		.sleb128 -944
- 44417 e203 32       		.uleb128 0x32
- 44418 e204 DD0D0000 		.long	0xddd
- 44419 e208 03       		.byte	0x3
- 44420 e209 91       		.byte	0x91
- 44421 e20a E078     		.sleb128 -928
- 44422 e20c 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1101
-
-
- 44423 e20d 00       		.byte	0x0
- 44424 e20e 35       		.uleb128 0x35
- 44425 e20f 860E0000 		.long	0xe86
- 44426 e213 00000000 		.quad	.LBB3994
- 44426      00000000 
- 44427 e21b 00000000 		.quad	.LBE3994
- 44427      00000000 
- 44428 e223 02       		.byte	0x2
- 44429 e224 AB03     		.value	0x3ab
- 44430 e226 32       		.uleb128 0x32
- 44431 e227 A10E0000 		.long	0xea1
- 44432 e22b 03       		.byte	0x3
- 44433 e22c 91       		.byte	0x91
- 44434 e22d F078     		.sleb128 -912
- 44435 e22f 32       		.uleb128 0x32
- 44436 e230 970E0000 		.long	0xe97
- 44437 e234 03       		.byte	0x3
- 44438 e235 91       		.byte	0x91
- 44439 e236 8079     		.sleb128 -896
- 44440 e238 00       		.byte	0x0
- 44441 e239 00       		.byte	0x0
- 44442 e23a 00       		.byte	0x0
- 44443 e23b 31       		.uleb128 0x31
- 44444 e23c 6BD90000 		.long	0xd96b
- 44445 e240 00000000 		.quad	.LBB3996
- 44445      00000000 
- 44446 e248 00000000 		.quad	.LBE3996
- 44446      00000000 
- 44447 e250 02       		.byte	0x2
- 44448 e251 5F04     		.value	0x45f
- 44449 e253 EBE40000 		.long	0xe4eb
- 44450 e257 32       		.uleb128 0x32
- 44451 e258 89D90000 		.long	0xd989
- 44452 e25c 03       		.byte	0x3
- 44453 e25d 91       		.byte	0x91
- 44454 e25e 9C79     		.sleb128 -868
- 44455 e260 32       		.uleb128 0x32
- 44456 e261 7DD90000 		.long	0xd97d
- 44457 e265 03       		.byte	0x3
- 44458 e266 91       		.byte	0x91
- 44459 e267 A079     		.sleb128 -864
- 44460 e269 33       		.uleb128 0x33
- 44461 e26a 00000000 		.quad	.LBB3997
- 44461      00000000 
- 44462 e272 00000000 		.quad	.LBE3997
- 44462      00000000 
- 44463 e27a 34       		.uleb128 0x34
- 44464 e27b 95D90000 		.long	0xd995
- 44465 e27f 03       		.byte	0x3
- 44466 e280 91       		.byte	0x91
- 44467 e281 C079     		.sleb128 -832
- 44468 e283 34       		.uleb128 0x34
- 44469 e284 A0D90000 		.long	0xd9a0
- 44470 e288 03       		.byte	0x3
- 44471 e289 91       		.byte	0x91
- 44472 e28a B079     		.sleb128 -848
- 44473 e28c 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1102
-
-
- 44474 e28d ABD90000 		.long	0xd9ab
- 44475 e291 09       		.byte	0x9
- 44476 e292 03       		.byte	0x3
- 44477 e293 00000000 		.quad	__PRETTY_FUNCTION__.7467
- 44477      00000000 
- 44478 e29b 36       		.uleb128 0x36
- 44479 e29c 00000000 		.quad	.LBB3998
- 44479      00000000 
- 44480 e2a4 00000000 		.quad	.LBE3998
- 44480      00000000 
- 44481 e2ac BAE20000 		.long	0xe2ba
- 44482 e2b0 34       		.uleb128 0x34
- 44483 e2b1 BED90000 		.long	0xd9be
- 44484 e2b5 03       		.byte	0x3
- 44485 e2b6 91       		.byte	0x91
- 44486 e2b7 B072     		.sleb128 -1744
- 44487 e2b9 00       		.byte	0x0
- 44488 e2ba 31       		.uleb128 0x31
- 44489 e2bb FBD90000 		.long	0xd9fb
- 44490 e2bf 00000000 		.quad	.LBB3999
- 44490      00000000 
- 44491 e2c7 00000000 		.quad	.LBE3999
- 44491      00000000 
- 44492 e2cf 02       		.byte	0x2
- 44493 e2d0 A603     		.value	0x3a6
- 44494 e2d2 64E30000 		.long	0xe364
- 44495 e2d6 32       		.uleb128 0x32
- 44496 e2d7 17DA0000 		.long	0xda17
- 44497 e2db 03       		.byte	0x3
- 44498 e2dc 91       		.byte	0x91
- 44499 e2dd DC79     		.sleb128 -804
- 44500 e2df 32       		.uleb128 0x32
- 44501 e2e0 0DDA0000 		.long	0xda0d
- 44502 e2e4 03       		.byte	0x3
- 44503 e2e5 91       		.byte	0x91
- 44504 e2e6 E079     		.sleb128 -800
- 44505 e2e8 33       		.uleb128 0x33
- 44506 e2e9 00000000 		.quad	.LBB4000
- 44506      00000000 
- 44507 e2f1 00000000 		.quad	.LBE4000
- 44507      00000000 
- 44508 e2f9 34       		.uleb128 0x34
- 44509 e2fa 21DA0000 		.long	0xda21
- 44510 e2fe 09       		.byte	0x9
- 44511 e2ff 03       		.byte	0x3
- 44512 e300 00000000 		.quad	sr_mask.7327
- 44512      00000000 
- 44513 e308 31       		.uleb128 0x31
- 44514 e309 750D0000 		.long	0xd75
- 44515 e30d 00000000 		.quad	.LBB4001
- 44515      00000000 
- 44516 e315 00000000 		.quad	.LBE4001
- 44516      00000000 
- 44517 e31d 02       		.byte	0x2
- 44518 e31e E801     		.value	0x1e8
- 44519 e320 37E30000 		.long	0xe337
- 44520 e324 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1103
-
-
- 44521 e325 930D0000 		.long	0xd93
- 44522 e329 03       		.byte	0x3
- 44523 e32a 91       		.byte	0x91
- 44524 e32b FC79     		.sleb128 -772
- 44525 e32d 32       		.uleb128 0x32
- 44526 e32e 870D0000 		.long	0xd87
- 44527 e332 03       		.byte	0x3
- 44528 e333 91       		.byte	0x91
- 44529 e334 807A     		.sleb128 -768
- 44530 e336 00       		.byte	0x0
- 44531 e337 35       		.uleb128 0x35
- 44532 e338 4F0D0000 		.long	0xd4f
- 44533 e33c 00000000 		.quad	.LBB4003
- 44533      00000000 
- 44534 e344 00000000 		.quad	.LBE4003
- 44534      00000000 
- 44535 e34c 02       		.byte	0x2
- 44536 e34d E901     		.value	0x1e9
- 44537 e34f 32       		.uleb128 0x32
- 44538 e350 6A0D0000 		.long	0xd6a
- 44539 e354 03       		.byte	0x3
- 44540 e355 91       		.byte	0x91
- 44541 e356 907A     		.sleb128 -752
- 44542 e358 32       		.uleb128 0x32
- 44543 e359 600D0000 		.long	0xd60
- 44544 e35d 03       		.byte	0x3
- 44545 e35e 91       		.byte	0x91
- 44546 e35f A07A     		.sleb128 -736
- 44547 e361 00       		.byte	0x0
- 44548 e362 00       		.byte	0x0
- 44549 e363 00       		.byte	0x0
- 44550 e364 36       		.uleb128 0x36
- 44551 e365 00000000 		.quad	.LBB4005
- 44551      00000000 
- 44552 e36d 00000000 		.quad	.LBE4005
- 44552      00000000 
- 44553 e375 83E30000 		.long	0xe383
- 44554 e379 34       		.uleb128 0x34
- 44555 e37a CED90000 		.long	0xd9ce
- 44556 e37e 03       		.byte	0x3
- 44557 e37f 91       		.byte	0x91
- 44558 e380 A072     		.sleb128 -1760
- 44559 e382 00       		.byte	0x0
- 44560 e383 31       		.uleb128 0x31
- 44561 e384 D4DA0000 		.long	0xdad4
- 44562 e388 00000000 		.quad	.LBB4006
- 44562      00000000 
- 44563 e390 00000000 		.quad	.LBE4006
- 44563      00000000 
- 44564 e398 02       		.byte	0x2
- 44565 e399 A803     		.value	0x3a8
- 44566 e39b 45E40000 		.long	0xe445
- 44567 e39f 32       		.uleb128 0x32
- 44568 e3a0 F0DA0000 		.long	0xdaf0
- 44569 e3a4 03       		.byte	0x3
- 44570 e3a5 91       		.byte	0x91
- 44571 e3a6 BC7A     		.sleb128 -708
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1104
-
-
- 44572 e3a8 32       		.uleb128 0x32
- 44573 e3a9 E6DA0000 		.long	0xdae6
- 44574 e3ad 03       		.byte	0x3
- 44575 e3ae 91       		.byte	0x91
- 44576 e3af C07A     		.sleb128 -704
- 44577 e3b1 33       		.uleb128 0x33
- 44578 e3b2 00000000 		.quad	.LBB4007
- 44578      00000000 
- 44579 e3ba 00000000 		.quad	.LBE4007
- 44579      00000000 
- 44580 e3c2 34       		.uleb128 0x34
- 44581 e3c3 97DB0000 		.long	0xdb97
- 44582 e3c7 03       		.byte	0x3
- 44583 e3c8 91       		.byte	0x91
- 44584 e3c9 D07A     		.sleb128 -688
- 44585 e3cb 34       		.uleb128 0x34
- 44586 e3cc FADA0000 		.long	0xdafa
- 44587 e3d0 09       		.byte	0x9
- 44588 e3d1 03       		.byte	0x3
- 44589 e3d2 00000000 		.quad	sl_mask.7310
- 44589      00000000 
- 44590 e3da 34       		.uleb128 0x34
- 44591 e3db A2DB0000 		.long	0xdba2
- 44592 e3df 09       		.byte	0x9
- 44593 e3e0 03       		.byte	0x3
- 44594 e3e1 00000000 		.quad	__PRETTY_FUNCTION__.7312
- 44594      00000000 
- 44595 e3e9 31       		.uleb128 0x31
- 44596 e3ea CBDB0000 		.long	0xdbcb
- 44597 e3ee 00000000 		.quad	.LBB4008
- 44597      00000000 
- 44598 e3f6 00000000 		.quad	.LBE4008
- 44598      00000000 
- 44599 e3fe 02       		.byte	0x2
- 44600 e3ff B101     		.value	0x1b1
- 44601 e401 18E40000 		.long	0xe418
- 44602 e405 32       		.uleb128 0x32
- 44603 e406 E9DB0000 		.long	0xdbe9
- 44604 e40a 03       		.byte	0x3
- 44605 e40b 91       		.byte	0x91
- 44606 e40c EC7A     		.sleb128 -660
- 44607 e40e 32       		.uleb128 0x32
- 44608 e40f DDDB0000 		.long	0xdbdd
- 44609 e413 03       		.byte	0x3
- 44610 e414 91       		.byte	0x91
- 44611 e415 F07A     		.sleb128 -656
- 44612 e417 00       		.byte	0x0
- 44613 e418 35       		.uleb128 0x35
- 44614 e419 4F0D0000 		.long	0xd4f
- 44615 e41d 00000000 		.quad	.LBB4010
- 44615      00000000 
- 44616 e425 00000000 		.quad	.LBE4010
- 44616      00000000 
- 44617 e42d 02       		.byte	0x2
- 44618 e42e B301     		.value	0x1b3
- 44619 e430 32       		.uleb128 0x32
- 44620 e431 6A0D0000 		.long	0xd6a
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1105
-
-
- 44621 e435 03       		.byte	0x3
- 44622 e436 91       		.byte	0x91
- 44623 e437 807B     		.sleb128 -640
- 44624 e439 32       		.uleb128 0x32
- 44625 e43a 600D0000 		.long	0xd60
- 44626 e43e 03       		.byte	0x3
- 44627 e43f 91       		.byte	0x91
- 44628 e440 907B     		.sleb128 -624
- 44629 e442 00       		.byte	0x0
- 44630 e443 00       		.byte	0x0
- 44631 e444 00       		.byte	0x0
- 44632 e445 36       		.uleb128 0x36
- 44633 e446 00000000 		.quad	.LBB4012
- 44633      00000000 
- 44634 e44e 00000000 		.quad	.LBE4012
- 44634      00000000 
- 44635 e456 64E40000 		.long	0xe464
- 44636 e45a 34       		.uleb128 0x34
- 44637 e45b DAD90000 		.long	0xd9da
- 44638 e45f 03       		.byte	0x3
- 44639 e460 91       		.byte	0x91
- 44640 e461 9072     		.sleb128 -1776
- 44641 e463 00       		.byte	0x0
- 44642 e464 31       		.uleb128 0x31
- 44643 e465 A00D0000 		.long	0xda0
- 44644 e469 00000000 		.quad	.LBB4013
- 44644      00000000 
- 44645 e471 00000000 		.quad	.LBE4013
- 44645      00000000 
- 44646 e479 02       		.byte	0x2
- 44647 e47a AA03     		.value	0x3aa
- 44648 e47c BEE40000 		.long	0xe4be
- 44649 e480 32       		.uleb128 0x32
- 44650 e481 BE0D0000 		.long	0xdbe
- 44651 e485 03       		.byte	0x3
- 44652 e486 91       		.byte	0x91
- 44653 e487 A07B     		.sleb128 -608
- 44654 e489 32       		.uleb128 0x32
- 44655 e48a B20D0000 		.long	0xdb2
- 44656 e48e 03       		.byte	0x3
- 44657 e48f 91       		.byte	0x91
- 44658 e490 B07B     		.sleb128 -592
- 44659 e492 35       		.uleb128 0x35
- 44660 e493 CB0D0000 		.long	0xdcb
- 44661 e497 00000000 		.quad	.LBB4015
- 44661      00000000 
- 44662 e49f 00000000 		.quad	.LBE4015
- 44662      00000000 
- 44663 e4a7 02       		.byte	0x2
- 44664 e4a8 7501     		.value	0x175
- 44665 e4aa 32       		.uleb128 0x32
- 44666 e4ab E90D0000 		.long	0xde9
- 44667 e4af 03       		.byte	0x3
- 44668 e4b0 91       		.byte	0x91
- 44669 e4b1 C07B     		.sleb128 -576
- 44670 e4b3 32       		.uleb128 0x32
- 44671 e4b4 DD0D0000 		.long	0xddd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1106
-
-
- 44672 e4b8 03       		.byte	0x3
- 44673 e4b9 91       		.byte	0x91
- 44674 e4ba D07B     		.sleb128 -560
- 44675 e4bc 00       		.byte	0x0
- 44676 e4bd 00       		.byte	0x0
- 44677 e4be 35       		.uleb128 0x35
- 44678 e4bf 860E0000 		.long	0xe86
- 44679 e4c3 00000000 		.quad	.LBB4017
- 44679      00000000 
- 44680 e4cb 00000000 		.quad	.LBE4017
- 44680      00000000 
- 44681 e4d3 02       		.byte	0x2
- 44682 e4d4 AB03     		.value	0x3ab
- 44683 e4d6 32       		.uleb128 0x32
- 44684 e4d7 A10E0000 		.long	0xea1
- 44685 e4db 03       		.byte	0x3
- 44686 e4dc 91       		.byte	0x91
- 44687 e4dd E07B     		.sleb128 -544
- 44688 e4df 32       		.uleb128 0x32
- 44689 e4e0 970E0000 		.long	0xe97
- 44690 e4e4 03       		.byte	0x3
- 44691 e4e5 91       		.byte	0x91
- 44692 e4e6 F07B     		.sleb128 -528
- 44693 e4e8 00       		.byte	0x0
- 44694 e4e9 00       		.byte	0x0
- 44695 e4ea 00       		.byte	0x0
- 44696 e4eb 31       		.uleb128 0x31
- 44697 e4ec 6BD90000 		.long	0xd96b
- 44698 e4f0 00000000 		.quad	.LBB4019
- 44698      00000000 
- 44699 e4f8 00000000 		.quad	.LBE4019
- 44699      00000000 
- 44700 e500 02       		.byte	0x2
- 44701 e501 6004     		.value	0x460
- 44702 e503 9BE70000 		.long	0xe79b
- 44703 e507 32       		.uleb128 0x32
- 44704 e508 89D90000 		.long	0xd989
- 44705 e50c 03       		.byte	0x3
- 44706 e50d 91       		.byte	0x91
- 44707 e50e 8C7C     		.sleb128 -500
- 44708 e510 32       		.uleb128 0x32
- 44709 e511 7DD90000 		.long	0xd97d
- 44710 e515 03       		.byte	0x3
- 44711 e516 91       		.byte	0x91
- 44712 e517 907C     		.sleb128 -496
- 44713 e519 33       		.uleb128 0x33
- 44714 e51a 00000000 		.quad	.LBB4020
- 44714      00000000 
- 44715 e522 00000000 		.quad	.LBE4020
- 44715      00000000 
- 44716 e52a 34       		.uleb128 0x34
- 44717 e52b 95D90000 		.long	0xd995
- 44718 e52f 03       		.byte	0x3
- 44719 e530 91       		.byte	0x91
- 44720 e531 B07C     		.sleb128 -464
- 44721 e533 34       		.uleb128 0x34
- 44722 e534 A0D90000 		.long	0xd9a0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1107
-
-
- 44723 e538 03       		.byte	0x3
- 44724 e539 91       		.byte	0x91
- 44725 e53a A07C     		.sleb128 -480
- 44726 e53c 34       		.uleb128 0x34
- 44727 e53d ABD90000 		.long	0xd9ab
- 44728 e541 09       		.byte	0x9
- 44729 e542 03       		.byte	0x3
- 44730 e543 00000000 		.quad	__PRETTY_FUNCTION__.7467
- 44730      00000000 
- 44731 e54b 36       		.uleb128 0x36
- 44732 e54c 00000000 		.quad	.LBB4021
- 44732      00000000 
- 44733 e554 00000000 		.quad	.LBE4021
- 44733      00000000 
- 44734 e55c 6AE50000 		.long	0xe56a
- 44735 e560 34       		.uleb128 0x34
- 44736 e561 BED90000 		.long	0xd9be
- 44737 e565 03       		.byte	0x3
- 44738 e566 91       		.byte	0x91
- 44739 e567 E072     		.sleb128 -1696
- 44740 e569 00       		.byte	0x0
- 44741 e56a 31       		.uleb128 0x31
- 44742 e56b FBD90000 		.long	0xd9fb
- 44743 e56f 00000000 		.quad	.LBB4022
- 44743      00000000 
- 44744 e577 00000000 		.quad	.LBE4022
- 44744      00000000 
- 44745 e57f 02       		.byte	0x2
- 44746 e580 A603     		.value	0x3a6
- 44747 e582 14E60000 		.long	0xe614
- 44748 e586 32       		.uleb128 0x32
- 44749 e587 17DA0000 		.long	0xda17
- 44750 e58b 03       		.byte	0x3
- 44751 e58c 91       		.byte	0x91
- 44752 e58d CC7C     		.sleb128 -436
- 44753 e58f 32       		.uleb128 0x32
- 44754 e590 0DDA0000 		.long	0xda0d
- 44755 e594 03       		.byte	0x3
- 44756 e595 91       		.byte	0x91
- 44757 e596 D07C     		.sleb128 -432
- 44758 e598 33       		.uleb128 0x33
- 44759 e599 00000000 		.quad	.LBB4023
- 44759      00000000 
- 44760 e5a1 00000000 		.quad	.LBE4023
- 44760      00000000 
- 44761 e5a9 34       		.uleb128 0x34
- 44762 e5aa 21DA0000 		.long	0xda21
- 44763 e5ae 09       		.byte	0x9
- 44764 e5af 03       		.byte	0x3
- 44765 e5b0 00000000 		.quad	sr_mask.7327
- 44765      00000000 
- 44766 e5b8 31       		.uleb128 0x31
- 44767 e5b9 750D0000 		.long	0xd75
- 44768 e5bd 00000000 		.quad	.LBB4024
- 44768      00000000 
- 44769 e5c5 00000000 		.quad	.LBE4024
- 44769      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1108
-
-
- 44770 e5cd 02       		.byte	0x2
- 44771 e5ce E801     		.value	0x1e8
- 44772 e5d0 E7E50000 		.long	0xe5e7
- 44773 e5d4 32       		.uleb128 0x32
- 44774 e5d5 930D0000 		.long	0xd93
- 44775 e5d9 03       		.byte	0x3
- 44776 e5da 91       		.byte	0x91
- 44777 e5db EC7C     		.sleb128 -404
- 44778 e5dd 32       		.uleb128 0x32
- 44779 e5de 870D0000 		.long	0xd87
- 44780 e5e2 03       		.byte	0x3
- 44781 e5e3 91       		.byte	0x91
- 44782 e5e4 F07C     		.sleb128 -400
- 44783 e5e6 00       		.byte	0x0
- 44784 e5e7 35       		.uleb128 0x35
- 44785 e5e8 4F0D0000 		.long	0xd4f
- 44786 e5ec 00000000 		.quad	.LBB4026
- 44786      00000000 
- 44787 e5f4 00000000 		.quad	.LBE4026
- 44787      00000000 
- 44788 e5fc 02       		.byte	0x2
- 44789 e5fd E901     		.value	0x1e9
- 44790 e5ff 32       		.uleb128 0x32
- 44791 e600 6A0D0000 		.long	0xd6a
- 44792 e604 03       		.byte	0x3
- 44793 e605 91       		.byte	0x91
- 44794 e606 807D     		.sleb128 -384
- 44795 e608 32       		.uleb128 0x32
- 44796 e609 600D0000 		.long	0xd60
- 44797 e60d 03       		.byte	0x3
- 44798 e60e 91       		.byte	0x91
- 44799 e60f 907D     		.sleb128 -368
- 44800 e611 00       		.byte	0x0
- 44801 e612 00       		.byte	0x0
- 44802 e613 00       		.byte	0x0
- 44803 e614 36       		.uleb128 0x36
- 44804 e615 00000000 		.quad	.LBB4028
- 44804      00000000 
- 44805 e61d 00000000 		.quad	.LBE4028
- 44805      00000000 
- 44806 e625 33E60000 		.long	0xe633
- 44807 e629 34       		.uleb128 0x34
- 44808 e62a CED90000 		.long	0xd9ce
- 44809 e62e 03       		.byte	0x3
- 44810 e62f 91       		.byte	0x91
- 44811 e630 D072     		.sleb128 -1712
- 44812 e632 00       		.byte	0x0
- 44813 e633 31       		.uleb128 0x31
- 44814 e634 D4DA0000 		.long	0xdad4
- 44815 e638 00000000 		.quad	.LBB4029
- 44815      00000000 
- 44816 e640 00000000 		.quad	.LBE4029
- 44816      00000000 
- 44817 e648 02       		.byte	0x2
- 44818 e649 A803     		.value	0x3a8
- 44819 e64b F5E60000 		.long	0xe6f5
- 44820 e64f 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1109
-
-
- 44821 e650 F0DA0000 		.long	0xdaf0
- 44822 e654 03       		.byte	0x3
- 44823 e655 91       		.byte	0x91
- 44824 e656 AC7D     		.sleb128 -340
- 44825 e658 32       		.uleb128 0x32
- 44826 e659 E6DA0000 		.long	0xdae6
- 44827 e65d 03       		.byte	0x3
- 44828 e65e 91       		.byte	0x91
- 44829 e65f B07D     		.sleb128 -336
- 44830 e661 33       		.uleb128 0x33
- 44831 e662 00000000 		.quad	.LBB4030
- 44831      00000000 
- 44832 e66a 00000000 		.quad	.LBE4030
- 44832      00000000 
- 44833 e672 34       		.uleb128 0x34
- 44834 e673 97DB0000 		.long	0xdb97
- 44835 e677 03       		.byte	0x3
- 44836 e678 91       		.byte	0x91
- 44837 e679 C07D     		.sleb128 -320
- 44838 e67b 34       		.uleb128 0x34
- 44839 e67c FADA0000 		.long	0xdafa
- 44840 e680 09       		.byte	0x9
- 44841 e681 03       		.byte	0x3
- 44842 e682 00000000 		.quad	sl_mask.7310
- 44842      00000000 
- 44843 e68a 34       		.uleb128 0x34
- 44844 e68b A2DB0000 		.long	0xdba2
- 44845 e68f 09       		.byte	0x9
- 44846 e690 03       		.byte	0x3
- 44847 e691 00000000 		.quad	__PRETTY_FUNCTION__.7312
- 44847      00000000 
- 44848 e699 31       		.uleb128 0x31
- 44849 e69a CBDB0000 		.long	0xdbcb
- 44850 e69e 00000000 		.quad	.LBB4031
- 44850      00000000 
- 44851 e6a6 00000000 		.quad	.LBE4031
- 44851      00000000 
- 44852 e6ae 02       		.byte	0x2
- 44853 e6af B101     		.value	0x1b1
- 44854 e6b1 C8E60000 		.long	0xe6c8
- 44855 e6b5 32       		.uleb128 0x32
- 44856 e6b6 E9DB0000 		.long	0xdbe9
- 44857 e6ba 03       		.byte	0x3
- 44858 e6bb 91       		.byte	0x91
- 44859 e6bc DC7D     		.sleb128 -292
- 44860 e6be 32       		.uleb128 0x32
- 44861 e6bf DDDB0000 		.long	0xdbdd
- 44862 e6c3 03       		.byte	0x3
- 44863 e6c4 91       		.byte	0x91
- 44864 e6c5 E07D     		.sleb128 -288
- 44865 e6c7 00       		.byte	0x0
- 44866 e6c8 35       		.uleb128 0x35
- 44867 e6c9 4F0D0000 		.long	0xd4f
- 44868 e6cd 00000000 		.quad	.LBB4033
- 44868      00000000 
- 44869 e6d5 00000000 		.quad	.LBE4033
- 44869      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1110
-
-
- 44870 e6dd 02       		.byte	0x2
- 44871 e6de B301     		.value	0x1b3
- 44872 e6e0 32       		.uleb128 0x32
- 44873 e6e1 6A0D0000 		.long	0xd6a
- 44874 e6e5 03       		.byte	0x3
- 44875 e6e6 91       		.byte	0x91
- 44876 e6e7 F07D     		.sleb128 -272
- 44877 e6e9 32       		.uleb128 0x32
- 44878 e6ea 600D0000 		.long	0xd60
- 44879 e6ee 03       		.byte	0x3
- 44880 e6ef 91       		.byte	0x91
- 44881 e6f0 807E     		.sleb128 -256
- 44882 e6f2 00       		.byte	0x0
- 44883 e6f3 00       		.byte	0x0
- 44884 e6f4 00       		.byte	0x0
- 44885 e6f5 36       		.uleb128 0x36
- 44886 e6f6 00000000 		.quad	.LBB4035
- 44886      00000000 
- 44887 e6fe 00000000 		.quad	.LBE4035
- 44887      00000000 
- 44888 e706 14E70000 		.long	0xe714
- 44889 e70a 34       		.uleb128 0x34
- 44890 e70b DAD90000 		.long	0xd9da
- 44891 e70f 03       		.byte	0x3
- 44892 e710 91       		.byte	0x91
- 44893 e711 C072     		.sleb128 -1728
- 44894 e713 00       		.byte	0x0
- 44895 e714 31       		.uleb128 0x31
- 44896 e715 A00D0000 		.long	0xda0
- 44897 e719 00000000 		.quad	.LBB4036
- 44897      00000000 
- 44898 e721 00000000 		.quad	.LBE4036
- 44898      00000000 
- 44899 e729 02       		.byte	0x2
- 44900 e72a AA03     		.value	0x3aa
- 44901 e72c 6EE70000 		.long	0xe76e
- 44902 e730 32       		.uleb128 0x32
- 44903 e731 BE0D0000 		.long	0xdbe
- 44904 e735 03       		.byte	0x3
- 44905 e736 91       		.byte	0x91
- 44906 e737 907E     		.sleb128 -240
- 44907 e739 32       		.uleb128 0x32
- 44908 e73a B20D0000 		.long	0xdb2
- 44909 e73e 03       		.byte	0x3
- 44910 e73f 91       		.byte	0x91
- 44911 e740 A07E     		.sleb128 -224
- 44912 e742 35       		.uleb128 0x35
- 44913 e743 CB0D0000 		.long	0xdcb
- 44914 e747 00000000 		.quad	.LBB4038
- 44914      00000000 
- 44915 e74f 00000000 		.quad	.LBE4038
- 44915      00000000 
- 44916 e757 02       		.byte	0x2
- 44917 e758 7501     		.value	0x175
- 44918 e75a 32       		.uleb128 0x32
- 44919 e75b E90D0000 		.long	0xde9
- 44920 e75f 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1111
-
-
- 44921 e760 91       		.byte	0x91
- 44922 e761 B07E     		.sleb128 -208
- 44923 e763 32       		.uleb128 0x32
- 44924 e764 DD0D0000 		.long	0xddd
- 44925 e768 03       		.byte	0x3
- 44926 e769 91       		.byte	0x91
- 44927 e76a C07E     		.sleb128 -192
- 44928 e76c 00       		.byte	0x0
- 44929 e76d 00       		.byte	0x0
- 44930 e76e 35       		.uleb128 0x35
- 44931 e76f 860E0000 		.long	0xe86
- 44932 e773 00000000 		.quad	.LBB4040
- 44932      00000000 
- 44933 e77b 00000000 		.quad	.LBE4040
- 44933      00000000 
- 44934 e783 02       		.byte	0x2
- 44935 e784 AB03     		.value	0x3ab
- 44936 e786 32       		.uleb128 0x32
- 44937 e787 A10E0000 		.long	0xea1
- 44938 e78b 03       		.byte	0x3
- 44939 e78c 91       		.byte	0x91
- 44940 e78d D07E     		.sleb128 -176
- 44941 e78f 32       		.uleb128 0x32
- 44942 e790 970E0000 		.long	0xe97
- 44943 e794 03       		.byte	0x3
- 44944 e795 91       		.byte	0x91
- 44945 e796 E07E     		.sleb128 -160
- 44946 e798 00       		.byte	0x0
- 44947 e799 00       		.byte	0x0
- 44948 e79a 00       		.byte	0x0
- 44949 e79b 31       		.uleb128 0x31
- 44950 e79c 860E0000 		.long	0xe86
- 44951 e7a0 00000000 		.quad	.LBB4042
- 44951      00000000 
- 44952 e7a8 00000000 		.quad	.LBE4042
- 44952      00000000 
- 44953 e7b0 02       		.byte	0x2
- 44954 e7b1 7604     		.value	0x476
- 44955 e7b3 CAE70000 		.long	0xe7ca
- 44956 e7b7 32       		.uleb128 0x32
- 44957 e7b8 A10E0000 		.long	0xea1
- 44958 e7bc 03       		.byte	0x3
- 44959 e7bd 91       		.byte	0x91
- 44960 e7be F07E     		.sleb128 -144
- 44961 e7c0 32       		.uleb128 0x32
- 44962 e7c1 970E0000 		.long	0xe97
- 44963 e7c5 03       		.byte	0x3
- 44964 e7c6 91       		.byte	0x91
- 44965 e7c7 807F     		.sleb128 -128
- 44966 e7c9 00       		.byte	0x0
- 44967 e7ca 31       		.uleb128 0x31
- 44968 e7cb 860E0000 		.long	0xe86
- 44969 e7cf 00000000 		.quad	.LBB4044
- 44969      00000000 
- 44970 e7d7 00000000 		.quad	.LBE4044
- 44970      00000000 
- 44971 e7df 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1112
-
-
- 44972 e7e0 7704     		.value	0x477
- 44973 e7e2 F9E70000 		.long	0xe7f9
- 44974 e7e6 32       		.uleb128 0x32
- 44975 e7e7 A10E0000 		.long	0xea1
- 44976 e7eb 03       		.byte	0x3
- 44977 e7ec 91       		.byte	0x91
- 44978 e7ed 907F     		.sleb128 -112
- 44979 e7ef 32       		.uleb128 0x32
- 44980 e7f0 970E0000 		.long	0xe97
- 44981 e7f4 03       		.byte	0x3
- 44982 e7f5 91       		.byte	0x91
- 44983 e7f6 A07F     		.sleb128 -96
- 44984 e7f8 00       		.byte	0x0
- 44985 e7f9 35       		.uleb128 0x35
- 44986 e7fa 860E0000 		.long	0xe86
- 44987 e7fe 00000000 		.quad	.LBB4046
- 44987      00000000 
- 44988 e806 00000000 		.quad	.LBE4046
- 44988      00000000 
- 44989 e80e 02       		.byte	0x2
- 44990 e80f 7804     		.value	0x478
- 44991 e811 32       		.uleb128 0x32
- 44992 e812 A10E0000 		.long	0xea1
- 44993 e816 03       		.byte	0x3
- 44994 e817 91       		.byte	0x91
- 44995 e818 B07F     		.sleb128 -80
- 44996 e81a 32       		.uleb128 0x32
- 44997 e81b 970E0000 		.long	0xe97
- 44998 e81f 02       		.byte	0x2
- 44999 e820 91       		.byte	0x91
- 45000 e821 40       		.sleb128 -64
- 45001 e822 00       		.byte	0x0
- 45002 e823 00       		.byte	0x0
- 45003 e824 00       		.byte	0x0
- 45004 e825 00       		.byte	0x0
- 45005 e826 2D       		.uleb128 0x2d
- 45006 e827 00000000 		.long	.LASF373
- 45007 e82b 02       		.byte	0x2
- 45008 e82c AC07     		.value	0x7ac
- 45009 e82e 01       		.byte	0x1
- 45010 e82f 00000000 		.quad	.LFB649
- 45010      00000000 
- 45011 e837 00000000 		.quad	.LFE649
- 45011      00000000 
- 45012 e83f 00000000 		.long	.LLST5
- 45013 e843 63E80000 		.long	0xe863
- 45014 e847 2F       		.uleb128 0x2f
- 45015 e848 7700     		.string	"w"
- 45016 e84a 02       		.byte	0x2
- 45017 e84b AC07     		.value	0x7ac
- 45018 e84d 24560000 		.long	0x5624
- 45019 e851 02       		.byte	0x2
- 45020 e852 91       		.byte	0x91
- 45021 e853 68       		.sleb128 -24
- 45022 e854 2F       		.uleb128 0x2f
- 45023 e855 6B7700   		.string	"kw"
- 45024 e858 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1113
-
-
- 45025 e859 AC07     		.value	0x7ac
- 45026 e85b 440D0000 		.long	0xd44
- 45027 e85f 02       		.byte	0x2
- 45028 e860 91       		.byte	0x91
- 45029 e861 60       		.sleb128 -32
- 45030 e862 00       		.byte	0x0
- 45031 e863 2D       		.uleb128 0x2d
- 45032 e864 00000000 		.long	.LASF374
- 45033 e868 02       		.byte	0x2
- 45034 e869 B307     		.value	0x7b3
- 45035 e86b 01       		.byte	0x1
- 45036 e86c 00000000 		.quad	.LFB650
- 45036      00000000 
- 45037 e874 00000000 		.quad	.LFE650
- 45037      00000000 
- 45038 e87c 00000000 		.long	.LLST6
- 45039 e880 A0E80000 		.long	0xe8a0
- 45040 e884 2F       		.uleb128 0x2f
- 45041 e885 7700     		.string	"w"
- 45042 e887 02       		.byte	0x2
- 45043 e888 B307     		.value	0x7b3
- 45044 e88a 24560000 		.long	0x5624
- 45045 e88e 02       		.byte	0x2
- 45046 e88f 91       		.byte	0x91
- 45047 e890 68       		.sleb128 -24
- 45048 e891 2F       		.uleb128 0x2f
- 45049 e892 6B7700   		.string	"kw"
- 45050 e895 02       		.byte	0x2
- 45051 e896 B307     		.value	0x7b3
- 45052 e898 440D0000 		.long	0xd44
- 45053 e89c 02       		.byte	0x2
- 45054 e89d 91       		.byte	0x91
- 45055 e89e 60       		.sleb128 -32
- 45056 e89f 00       		.byte	0x0
- 45057 e8a0 2D       		.uleb128 0x2d
- 45058 e8a1 00000000 		.long	.LASF375
- 45059 e8a5 02       		.byte	0x2
- 45060 e8a6 BA07     		.value	0x7ba
- 45061 e8a8 01       		.byte	0x1
- 45062 e8a9 00000000 		.quad	.LFB651
- 45062      00000000 
- 45063 e8b1 00000000 		.quad	.LFE651
- 45063      00000000 
- 45064 e8b9 00000000 		.long	.LLST7
- 45065 e8bd DDE80000 		.long	0xe8dd
- 45066 e8c1 2F       		.uleb128 0x2f
- 45067 e8c2 7700     		.string	"w"
- 45068 e8c4 02       		.byte	0x2
- 45069 e8c5 BA07     		.value	0x7ba
- 45070 e8c7 24560000 		.long	0x5624
- 45071 e8cb 02       		.byte	0x2
- 45072 e8cc 91       		.byte	0x91
- 45073 e8cd 68       		.sleb128 -24
- 45074 e8ce 2F       		.uleb128 0x2f
- 45075 e8cf 6B7700   		.string	"kw"
- 45076 e8d2 02       		.byte	0x2
- 45077 e8d3 BA07     		.value	0x7ba
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1114
-
-
- 45078 e8d5 440D0000 		.long	0xd44
- 45079 e8d9 02       		.byte	0x2
- 45080 e8da 91       		.byte	0x91
- 45081 e8db 60       		.sleb128 -32
- 45082 e8dc 00       		.byte	0x0
- 45083 e8dd 25       		.uleb128 0x25
- 45084 e8de 00000000 		.long	.LASF376
- 45085 e8e2 02       		.byte	0x2
- 45086 e8e3 C807     		.value	0x7c8
- 45087 e8e5 01       		.byte	0x1
- 45088 e8e6 B3010000 		.long	0x1b3
- 45089 e8ea 03       		.byte	0x3
- 45090 e8eb 34E90000 		.long	0xe934
- 45091 e8ef 26       		.uleb128 0x26
- 45092 e8f0 00000000 		.long	.LASF67
- 45093 e8f4 02       		.byte	0x2
- 45094 e8f5 C807     		.value	0x7c8
- 45095 e8f7 B3010000 		.long	0x1b3
- 45096 e8fb 26       		.uleb128 0x26
- 45097 e8fc 00000000 		.long	.LASF65
- 45098 e900 02       		.byte	0x2
- 45099 e901 C807     		.value	0x7c8
- 45100 e903 4A0D0000 		.long	0xd4a
- 45101 e907 29       		.uleb128 0x29
- 45102 e908 17E90000 		.long	0xe917
- 45103 e90c 28       		.uleb128 0x28
- 45104 e90d 7600     		.string	"v"
- 45105 e90f 02       		.byte	0x2
- 45106 e910 CA07     		.value	0x7ca
- 45107 e912 29050000 		.long	0x529
- 45108 e916 00       		.byte	0x0
- 45109 e917 29       		.uleb128 0x29
- 45110 e918 27E90000 		.long	0xe927
- 45111 e91c 28       		.uleb128 0x28
- 45112 e91d 7600     		.string	"v"
- 45113 e91f 02       		.byte	0x2
- 45114 e920 CC07     		.value	0x7cc
- 45115 e922 29050000 		.long	0x529
- 45116 e926 00       		.byte	0x0
- 45117 e927 2A       		.uleb128 0x2a
- 45118 e928 28       		.uleb128 0x28
- 45119 e929 7600     		.string	"v"
- 45120 e92b 02       		.byte	0x2
- 45121 e92c D007     		.value	0x7d0
- 45122 e92e 29050000 		.long	0x529
- 45123 e932 00       		.byte	0x0
- 45124 e933 00       		.byte	0x0
- 45125 e934 25       		.uleb128 0x25
- 45126 e935 00000000 		.long	.LASF377
- 45127 e939 02       		.byte	0x2
- 45128 e93a 2102     		.value	0x221
- 45129 e93c 01       		.byte	0x1
- 45130 e93d B3010000 		.long	0x1b3
- 45131 e941 03       		.byte	0x3
- 45132 e942 5FE90000 		.long	0xe95f
- 45133 e946 26       		.uleb128 0x26
- 45134 e947 00000000 		.long	.LASF67
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1115
-
-
- 45135 e94b 02       		.byte	0x2
- 45136 e94c 2102     		.value	0x221
- 45137 e94e B3010000 		.long	0x1b3
- 45138 e952 26       		.uleb128 0x26
- 45139 e953 00000000 		.long	.LASF378
- 45140 e957 02       		.byte	0x2
- 45141 e958 2102     		.value	0x221
- 45142 e95a B3010000 		.long	0x1b3
- 45143 e95e 00       		.byte	0x0
- 45144 e95f 25       		.uleb128 0x25
- 45145 e960 00000000 		.long	.LASF379
- 45146 e964 02       		.byte	0x2
- 45147 e965 DC07     		.value	0x7dc
- 45148 e967 01       		.byte	0x1
- 45149 e968 B3010000 		.long	0x1b3
- 45150 e96c 03       		.byte	0x3
- 45151 e96d FEE90000 		.long	0xe9fe
- 45152 e971 26       		.uleb128 0x26
- 45153 e972 00000000 		.long	.LASF67
- 45154 e976 02       		.byte	0x2
- 45155 e977 DC07     		.value	0x7dc
- 45156 e979 B3010000 		.long	0x1b3
- 45157 e97d 26       		.uleb128 0x26
- 45158 e97e 00000000 		.long	.LASF65
- 45159 e982 02       		.byte	0x2
- 45160 e983 DD07     		.value	0x7dd
- 45161 e985 4A0D0000 		.long	0xd4a
- 45162 e989 27       		.uleb128 0x27
- 45163 e98a 00000000 		.long	.LASF380
- 45164 e98e 02       		.byte	0x2
- 45165 e98f E007     		.value	0x7e0
- 45166 e991 B3010000 		.long	0x1b3
- 45167 e995 27       		.uleb128 0x27
- 45168 e996 00000000 		.long	.LASF381
- 45169 e99a 02       		.byte	0x2
- 45170 e99b E107     		.value	0x7e1
- 45171 e99d B3010000 		.long	0x1b3
- 45172 e9a1 29       		.uleb128 0x29
- 45173 e9a2 B1E90000 		.long	0xe9b1
- 45174 e9a6 28       		.uleb128 0x28
- 45175 e9a7 7600     		.string	"v"
- 45176 e9a9 02       		.byte	0x2
- 45177 e9aa E607     		.value	0x7e6
- 45178 e9ac 29050000 		.long	0x529
- 45179 e9b0 00       		.byte	0x0
- 45180 e9b1 29       		.uleb128 0x29
- 45181 e9b2 C1E90000 		.long	0xe9c1
- 45182 e9b6 28       		.uleb128 0x28
- 45183 e9b7 7600     		.string	"v"
- 45184 e9b9 02       		.byte	0x2
- 45185 e9ba EF07     		.value	0x7ef
- 45186 e9bc 29050000 		.long	0x529
- 45187 e9c0 00       		.byte	0x0
- 45188 e9c1 29       		.uleb128 0x29
- 45189 e9c2 D1E90000 		.long	0xe9d1
- 45190 e9c6 28       		.uleb128 0x28
- 45191 e9c7 7600     		.string	"v"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1116
-
-
- 45192 e9c9 02       		.byte	0x2
- 45193 e9ca F307     		.value	0x7f3
- 45194 e9cc 29050000 		.long	0x529
- 45195 e9d0 00       		.byte	0x0
- 45196 e9d1 29       		.uleb128 0x29
- 45197 e9d2 E1E90000 		.long	0xe9e1
- 45198 e9d6 28       		.uleb128 0x28
- 45199 e9d7 7600     		.string	"v"
- 45200 e9d9 02       		.byte	0x2
- 45201 e9da F807     		.value	0x7f8
- 45202 e9dc 29050000 		.long	0x529
- 45203 e9e0 00       		.byte	0x0
- 45204 e9e1 29       		.uleb128 0x29
- 45205 e9e2 F1E90000 		.long	0xe9f1
- 45206 e9e6 28       		.uleb128 0x28
- 45207 e9e7 7600     		.string	"v"
- 45208 e9e9 02       		.byte	0x2
- 45209 e9ea FC07     		.value	0x7fc
- 45210 e9ec 29050000 		.long	0x529
- 45211 e9f0 00       		.byte	0x0
- 45212 e9f1 2A       		.uleb128 0x2a
- 45213 e9f2 28       		.uleb128 0x28
- 45214 e9f3 7600     		.string	"v"
- 45215 e9f5 02       		.byte	0x2
- 45216 e9f6 FD07     		.value	0x7fd
- 45217 e9f8 29050000 		.long	0x529
- 45218 e9fc 00       		.byte	0x0
- 45219 e9fd 00       		.byte	0x0
- 45220 e9fe 25       		.uleb128 0x25
- 45221 e9ff 00000000 		.long	.LASF382
- 45222 ea03 02       		.byte	0x2
- 45223 ea04 3E02     		.value	0x23e
- 45224 ea06 01       		.byte	0x1
- 45225 ea07 B3010000 		.long	0x1b3
- 45226 ea0b 03       		.byte	0x3
- 45227 ea0c 3AEA0000 		.long	0xea3a
- 45228 ea10 26       		.uleb128 0x26
- 45229 ea11 00000000 		.long	.LASF67
- 45230 ea15 02       		.byte	0x2
- 45231 ea16 3E02     		.value	0x23e
- 45232 ea18 B3010000 		.long	0x1b3
- 45233 ea1c 2C       		.uleb128 0x2c
- 45234 ea1d 00000000 		.long	.LASF340
- 45235 ea21 02       		.byte	0x2
- 45236 ea22 4102     		.value	0x241
- 45237 ea24 4A0D0000 		.long	0xd4a
- 45238 ea28 10       		.byte	0x10
- 45239 ea29 00       		.byte	0x0
- 45240 ea2a 05       		.byte	0x5
- 45241 ea2b 0A       		.byte	0xa
- 45242 ea2c 0F       		.byte	0xf
- 45243 ea2d 04       		.byte	0x4
- 45244 ea2e 09       		.byte	0x9
- 45245 ea2f 0E       		.byte	0xe
- 45246 ea30 03       		.byte	0x3
- 45247 ea31 08       		.byte	0x8
- 45248 ea32 0D       		.byte	0xd
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1117
-
-
- 45249 ea33 02       		.byte	0x2
- 45250 ea34 07       		.byte	0x7
- 45251 ea35 0C       		.byte	0xc
- 45252 ea36 01       		.byte	0x1
- 45253 ea37 06       		.byte	0x6
- 45254 ea38 0B       		.byte	0xb
- 45255 ea39 00       		.byte	0x0
- 45256 ea3a 25       		.uleb128 0x25
- 45257 ea3b 00000000 		.long	.LASF383
- 45258 ea3f 02       		.byte	0x2
- 45259 ea40 1304     		.value	0x413
- 45260 ea42 01       		.byte	0x1
- 45261 ea43 B3010000 		.long	0x1b3
- 45262 ea47 03       		.byte	0x3
- 45263 ea48 85EA0000 		.long	0xea85
- 45264 ea4c 26       		.uleb128 0x26
- 45265 ea4d 00000000 		.long	.LASF67
- 45266 ea51 02       		.byte	0x2
- 45267 ea52 1304     		.value	0x413
- 45268 ea54 B3010000 		.long	0x1b3
- 45269 ea58 28       		.uleb128 0x28
- 45270 ea59 633000   		.string	"c0"
- 45271 ea5c 02       		.byte	0x2
- 45272 ea5d 1504     		.value	0x415
- 45273 ea5f B3010000 		.long	0x1b3
- 45274 ea63 28       		.uleb128 0x28
- 45275 ea64 633100   		.string	"c1"
- 45276 ea67 02       		.byte	0x2
- 45277 ea68 1504     		.value	0x415
- 45278 ea6a B3010000 		.long	0x1b3
- 45279 ea6e 28       		.uleb128 0x28
- 45280 ea6f 633200   		.string	"c2"
- 45281 ea72 02       		.byte	0x2
- 45282 ea73 1504     		.value	0x415
- 45283 ea75 B3010000 		.long	0x1b3
- 45284 ea79 28       		.uleb128 0x28
- 45285 ea7a 633300   		.string	"c3"
- 45286 ea7d 02       		.byte	0x2
- 45287 ea7e 1504     		.value	0x415
- 45288 ea80 B3010000 		.long	0x1b3
- 45289 ea84 00       		.byte	0x0
- 45290 ea85 25       		.uleb128 0x25
- 45291 ea86 00000000 		.long	.LASF384
- 45292 ea8a 02       		.byte	0x2
- 45293 ea8b B403     		.value	0x3b4
- 45294 ea8d 01       		.byte	0x1
- 45295 ea8e B3010000 		.long	0x1b3
- 45296 ea92 03       		.byte	0x3
- 45297 ea93 C0EA0000 		.long	0xeac0
- 45298 ea97 26       		.uleb128 0x26
- 45299 ea98 00000000 		.long	.LASF67
- 45300 ea9c 02       		.byte	0x2
- 45301 ea9d B403     		.value	0x3b4
- 45302 ea9f B3010000 		.long	0x1b3
- 45303 eaa3 29       		.uleb128 0x29
- 45304 eaa4 B3EA0000 		.long	0xeab3
- 45305 eaa8 28       		.uleb128 0x28
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1118
-
-
- 45306 eaa9 7600     		.string	"v"
- 45307 eaab 02       		.byte	0x2
- 45308 eaac B603     		.value	0x3b6
- 45309 eaae 29050000 		.long	0x529
- 45310 eab2 00       		.byte	0x0
- 45311 eab3 2A       		.uleb128 0x2a
- 45312 eab4 28       		.uleb128 0x28
- 45313 eab5 7600     		.string	"v"
- 45314 eab7 02       		.byte	0x2
- 45315 eab8 B903     		.value	0x3b9
- 45316 eaba 29050000 		.long	0x529
- 45317 eabe 00       		.byte	0x0
- 45318 eabf 00       		.byte	0x0
- 45319 eac0 25       		.uleb128 0x25
- 45320 eac1 00000000 		.long	.LASF385
- 45321 eac5 02       		.byte	0x2
- 45322 eac6 0808     		.value	0x808
- 45323 eac8 01       		.byte	0x1
- 45324 eac9 B3010000 		.long	0x1b3
- 45325 eacd 03       		.byte	0x3
- 45326 eace 37EB0000 		.long	0xeb37
- 45327 ead2 26       		.uleb128 0x26
- 45328 ead3 00000000 		.long	.LASF67
- 45329 ead7 02       		.byte	0x2
- 45330 ead8 0808     		.value	0x808
- 45331 eada B3010000 		.long	0x1b3
- 45332 eade 26       		.uleb128 0x26
- 45333 eadf 00000000 		.long	.LASF65
- 45334 eae3 02       		.byte	0x2
- 45335 eae4 0808     		.value	0x808
- 45336 eae6 B3010000 		.long	0x1b3
- 45337 eaea 29       		.uleb128 0x29
- 45338 eaeb FAEA0000 		.long	0xeafa
- 45339 eaef 28       		.uleb128 0x28
- 45340 eaf0 7600     		.string	"v"
- 45341 eaf2 02       		.byte	0x2
- 45342 eaf3 0A08     		.value	0x80a
- 45343 eaf5 29050000 		.long	0x529
- 45344 eaf9 00       		.byte	0x0
- 45345 eafa 29       		.uleb128 0x29
- 45346 eafb 0AEB0000 		.long	0xeb0a
- 45347 eaff 28       		.uleb128 0x28
- 45348 eb00 7600     		.string	"v"
- 45349 eb02 02       		.byte	0x2
- 45350 eb03 1108     		.value	0x811
- 45351 eb05 29050000 		.long	0x529
- 45352 eb09 00       		.byte	0x0
- 45353 eb0a 29       		.uleb128 0x29
- 45354 eb0b 1AEB0000 		.long	0xeb1a
- 45355 eb0f 28       		.uleb128 0x28
- 45356 eb10 7600     		.string	"v"
- 45357 eb12 02       		.byte	0x2
- 45358 eb13 1508     		.value	0x815
- 45359 eb15 29050000 		.long	0x529
- 45360 eb19 00       		.byte	0x0
- 45361 eb1a 29       		.uleb128 0x29
- 45362 eb1b 2AEB0000 		.long	0xeb2a
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1119
-
-
- 45363 eb1f 28       		.uleb128 0x28
- 45364 eb20 7600     		.string	"v"
- 45365 eb22 02       		.byte	0x2
- 45366 eb23 1908     		.value	0x819
- 45367 eb25 29050000 		.long	0x529
- 45368 eb29 00       		.byte	0x0
- 45369 eb2a 2A       		.uleb128 0x2a
- 45370 eb2b 28       		.uleb128 0x28
- 45371 eb2c 7600     		.string	"v"
- 45372 eb2e 02       		.byte	0x2
- 45373 eb2f 1A08     		.value	0x81a
- 45374 eb31 29050000 		.long	0x529
- 45375 eb35 00       		.byte	0x0
- 45376 eb36 00       		.byte	0x0
- 45377 eb37 39       		.uleb128 0x39
- 45378 eb38 00000000 		.long	.LASF387
- 45379 eb3c 02       		.byte	0x2
- 45380 eb3d 2C08     		.value	0x82c
- 45381 eb3f 01       		.byte	0x1
- 45382 eb40 B3010000 		.long	0x1b3
- 45383 eb44 00000000 		.quad	.LFB655
- 45383      00000000 
- 45384 eb4c 00000000 		.quad	.LFE655
- 45384      00000000 
- 45385 eb54 00000000 		.long	.LLST8
- 45386 eb58 42FB0000 		.long	0xfb42
- 45387 eb5c 2E       		.uleb128 0x2e
- 45388 eb5d 00000000 		.long	.LASF67
- 45389 eb61 02       		.byte	0x2
- 45390 eb62 2C08     		.value	0x82c
- 45391 eb64 B3010000 		.long	0x1b3
- 45392 eb68 03       		.byte	0x3
- 45393 eb69 91       		.byte	0x91
- 45394 eb6a E06B     		.sleb128 -2592
- 45395 eb6c 2F       		.uleb128 0x2f
- 45396 eb6d 6B657900 		.string	"key"
- 45397 eb71 02       		.byte	0x2
- 45398 eb72 2C08     		.value	0x82c
- 45399 eb74 440D0000 		.long	0xd44
- 45400 eb78 03       		.byte	0x3
- 45401 eb79 91       		.byte	0x91
- 45402 eb7a D86B     		.sleb128 -2600
- 45403 eb7c 2F       		.uleb128 0x2f
- 45404 eb7d 4E7200   		.string	"Nr"
- 45405 eb80 02       		.byte	0x2
- 45406 eb81 2D08     		.value	0x82d
- 45407 eb83 78000000 		.long	0x78
- 45408 eb87 03       		.byte	0x3
- 45409 eb88 91       		.byte	0x91
- 45410 eb89 D46B     		.sleb128 -2604
- 45411 eb8b 37       		.uleb128 0x37
- 45412 eb8c 697800   		.string	"ix"
- 45413 eb8f 02       		.byte	0x2
- 45414 eb90 2F08     		.value	0x82f
- 45415 eb92 78000000 		.long	0x78
- 45416 eb96 03       		.byte	0x3
- 45417 eb97 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1120
-
-
- 45418 eb98 AC6E     		.sleb128 -2260
- 45419 eb9a 31       		.uleb128 0x31
- 45420 eb9b DDE80000 		.long	0xe8dd
- 45421 eb9f 00000000 		.quad	.LBB4199
- 45421      00000000 
- 45422 eba7 00000000 		.quad	.LBE4199
- 45422      00000000 
- 45423 ebaf 02       		.byte	0x2
- 45424 ebb0 3108     		.value	0x831
- 45425 ebb2 7CEC0000 		.long	0xec7c
- 45426 ebb6 32       		.uleb128 0x32
- 45427 ebb7 FBE80000 		.long	0xe8fb
- 45428 ebbb 03       		.byte	0x3
- 45429 ebbc 91       		.byte	0x91
- 45430 ebbd B06E     		.sleb128 -2256
- 45431 ebbf 32       		.uleb128 0x32
- 45432 ebc0 EFE80000 		.long	0xe8ef
- 45433 ebc4 03       		.byte	0x3
- 45434 ebc5 91       		.byte	0x91
- 45435 ebc6 C06E     		.sleb128 -2240
- 45436 ebc8 36       		.uleb128 0x36
- 45437 ebc9 00000000 		.quad	.LBB4201
- 45437      00000000 
- 45438 ebd1 00000000 		.quad	.LBE4201
- 45438      00000000 
- 45439 ebd9 E7EB0000 		.long	0xebe7
- 45440 ebdd 34       		.uleb128 0x34
- 45441 ebde 0CE90000 		.long	0xe90c
- 45442 ebe2 03       		.byte	0x3
- 45443 ebe3 91       		.byte	0x91
- 45444 ebe4 906C     		.sleb128 -2544
- 45445 ebe6 00       		.byte	0x0
- 45446 ebe7 36       		.uleb128 0x36
- 45447 ebe8 00000000 		.quad	.LBB4202
- 45447      00000000 
- 45448 ebf0 00000000 		.quad	.LBE4202
- 45448      00000000 
- 45449 ebf8 06EC0000 		.long	0xec06
- 45450 ebfc 34       		.uleb128 0x34
- 45451 ebfd 1CE90000 		.long	0xe91c
- 45452 ec01 03       		.byte	0x3
- 45453 ec02 91       		.byte	0x91
- 45454 ec03 806C     		.sleb128 -2560
- 45455 ec05 00       		.byte	0x0
- 45456 ec06 31       		.uleb128 0x31
- 45457 ec07 34E90000 		.long	0xe934
- 45458 ec0b 00000000 		.quad	.LBB4203
- 45458      00000000 
- 45459 ec13 00000000 		.quad	.LBE4203
- 45459      00000000 
- 45460 ec1b 02       		.byte	0x2
- 45461 ec1c CE07     		.value	0x7ce
- 45462 ec1e 60EC0000 		.long	0xec60
- 45463 ec22 32       		.uleb128 0x32
- 45464 ec23 52E90000 		.long	0xe952
- 45465 ec27 03       		.byte	0x3
- 45466 ec28 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1121
-
-
- 45467 ec29 D06E     		.sleb128 -2224
- 45468 ec2b 32       		.uleb128 0x32
- 45469 ec2c 46E90000 		.long	0xe946
- 45470 ec30 03       		.byte	0x3
- 45471 ec31 91       		.byte	0x91
- 45472 ec32 E06E     		.sleb128 -2208
- 45473 ec34 35       		.uleb128 0x35
- 45474 ec35 860E0000 		.long	0xe86
- 45475 ec39 00000000 		.quad	.LBB4205
- 45475      00000000 
- 45476 ec41 00000000 		.quad	.LBE4205
- 45476      00000000 
- 45477 ec49 02       		.byte	0x2
- 45478 ec4a 2302     		.value	0x223
- 45479 ec4c 32       		.uleb128 0x32
- 45480 ec4d A10E0000 		.long	0xea1
- 45481 ec51 03       		.byte	0x3
- 45482 ec52 91       		.byte	0x91
- 45483 ec53 F06E     		.sleb128 -2192
- 45484 ec55 32       		.uleb128 0x32
- 45485 ec56 970E0000 		.long	0xe97
- 45486 ec5a 03       		.byte	0x3
- 45487 ec5b 91       		.byte	0x91
- 45488 ec5c 806F     		.sleb128 -2176
- 45489 ec5e 00       		.byte	0x0
- 45490 ec5f 00       		.byte	0x0
- 45491 ec60 33       		.uleb128 0x33
- 45492 ec61 00000000 		.quad	.LBB4207
- 45492      00000000 
- 45493 ec69 00000000 		.quad	.LBE4207
- 45493      00000000 
- 45494 ec71 34       		.uleb128 0x34
- 45495 ec72 28E90000 		.long	0xe928
- 45496 ec76 03       		.byte	0x3
- 45497 ec77 91       		.byte	0x91
- 45498 ec78 F06B     		.sleb128 -2576
- 45499 ec7a 00       		.byte	0x0
- 45500 ec7b 00       		.byte	0x0
- 45501 ec7c 31       		.uleb128 0x31
- 45502 ec7d 5FE90000 		.long	0xe95f
- 45503 ec81 00000000 		.quad	.LBB4208
- 45503      00000000 
- 45504 ec89 00000000 		.quad	.LBE4208
- 45504      00000000 
- 45505 ec91 02       		.byte	0x2
- 45506 ec92 3408     		.value	0x834
- 45507 ec94 00F70000 		.long	0xf700
- 45508 ec98 32       		.uleb128 0x32
- 45509 ec99 7DE90000 		.long	0xe97d
- 45510 ec9d 03       		.byte	0x3
- 45511 ec9e 91       		.byte	0x91
- 45512 ec9f 906F     		.sleb128 -2160
- 45513 eca1 32       		.uleb128 0x32
- 45514 eca2 71E90000 		.long	0xe971
- 45515 eca6 03       		.byte	0x3
- 45516 eca7 91       		.byte	0x91
- 45517 eca8 A06F     		.sleb128 -2144
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1122
-
-
- 45518 ecaa 33       		.uleb128 0x33
- 45519 ecab 00000000 		.quad	.LBB4209
- 45519      00000000 
- 45520 ecb3 00000000 		.quad	.LBE4209
- 45520      00000000 
- 45521 ecbb 34       		.uleb128 0x34
- 45522 ecbc 89E90000 		.long	0xe989
- 45523 ecc0 03       		.byte	0x3
- 45524 ecc1 91       		.byte	0x91
- 45525 ecc2 C06F     		.sleb128 -2112
- 45526 ecc4 34       		.uleb128 0x34
- 45527 ecc5 95E90000 		.long	0xe995
- 45528 ecc9 03       		.byte	0x3
- 45529 ecca 91       		.byte	0x91
- 45530 eccb B06F     		.sleb128 -2128
- 45531 eccd 36       		.uleb128 0x36
- 45532 ecce 00000000 		.quad	.LBB4210
- 45532      00000000 
- 45533 ecd6 00000000 		.quad	.LBE4210
- 45533      00000000 
- 45534 ecde ECEC0000 		.long	0xecec
- 45535 ece2 34       		.uleb128 0x34
- 45536 ece3 A6E90000 		.long	0xe9a6
- 45537 ece7 03       		.byte	0x3
- 45538 ece8 91       		.byte	0x91
- 45539 ece9 F06C     		.sleb128 -2448
- 45540 eceb 00       		.byte	0x0
- 45541 ecec 31       		.uleb128 0x31
- 45542 eced C10C0000 		.long	0xcc1
- 45543 ecf1 00000000 		.quad	.LBB4211
- 45543      00000000 
- 45544 ecf9 00000000 		.quad	.LBE4211
- 45544      00000000 
- 45545 ed01 02       		.byte	0x2
- 45546 ed02 ED07     		.value	0x7ed
- 45547 ed04 75EF0000 		.long	0xef75
- 45548 ed08 32       		.uleb128 0x32
- 45549 ed09 D30C0000 		.long	0xcd3
- 45550 ed0d 03       		.byte	0x3
- 45551 ed0e 91       		.byte	0x91
- 45552 ed0f D06F     		.sleb128 -2096
- 45553 ed11 35       		.uleb128 0x35
- 45554 ed12 E00C0000 		.long	0xce0
- 45555 ed16 00000000 		.quad	.LBB4213
- 45555      00000000 
- 45556 ed1e 00000000 		.quad	.LBE4213
- 45556      00000000 
- 45557 ed26 02       		.byte	0x2
- 45558 ed27 7D03     		.value	0x37d
- 45559 ed29 32       		.uleb128 0x32
- 45560 ed2a FE0C0000 		.long	0xcfe
- 45561 ed2e 03       		.byte	0x3
- 45562 ed2f 91       		.byte	0x91
- 45563 ed30 E86F     		.sleb128 -2072
- 45564 ed32 32       		.uleb128 0x32
- 45565 ed33 F20C0000 		.long	0xcf2
- 45566 ed37 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1123
-
-
- 45567 ed38 91       		.byte	0x91
- 45568 ed39 F06F     		.sleb128 -2064
- 45569 ed3b 33       		.uleb128 0x33
- 45570 ed3c 00000000 		.quad	.LBB4214
- 45570      00000000 
- 45571 ed44 00000000 		.quad	.LBE4214
- 45571      00000000 
- 45572 ed4c 34       		.uleb128 0x34
- 45573 ed4d 0A0D0000 		.long	0xd0a
- 45574 ed51 03       		.byte	0x3
- 45575 ed52 91       		.byte	0x91
- 45576 ed53 C070     		.sleb128 -1984
- 45577 ed55 34       		.uleb128 0x34
- 45578 ed56 150D0000 		.long	0xd15
- 45579 ed5a 03       		.byte	0x3
- 45580 ed5b 91       		.byte	0x91
- 45581 ed5c B070     		.sleb128 -2000
- 45582 ed5e 34       		.uleb128 0x34
- 45583 ed5f 200D0000 		.long	0xd20
- 45584 ed63 03       		.byte	0x3
- 45585 ed64 91       		.byte	0x91
- 45586 ed65 A070     		.sleb128 -2016
- 45587 ed67 34       		.uleb128 0x34
- 45588 ed68 2C0D0000 		.long	0xd2c
- 45589 ed6c 03       		.byte	0x3
- 45590 ed6d 91       		.byte	0x91
- 45591 ed6e 9070     		.sleb128 -2032
- 45592 ed70 34       		.uleb128 0x34
- 45593 ed71 380D0000 		.long	0xd38
- 45594 ed75 03       		.byte	0x3
- 45595 ed76 91       		.byte	0x91
- 45596 ed77 8C70     		.sleb128 -2036
- 45597 ed79 31       		.uleb128 0x31
- 45598 ed7a 4F0D0000 		.long	0xd4f
- 45599 ed7e 00000000 		.quad	.LBB4215
- 45599      00000000 
- 45600 ed86 00000000 		.quad	.LBE4215
- 45600      00000000 
- 45601 ed8e 02       		.byte	0x2
- 45602 ed8f 5603     		.value	0x356
- 45603 ed91 A8ED0000 		.long	0xeda8
- 45604 ed95 32       		.uleb128 0x32
- 45605 ed96 6A0D0000 		.long	0xd6a
- 45606 ed9a 03       		.byte	0x3
- 45607 ed9b 91       		.byte	0x91
- 45608 ed9c D070     		.sleb128 -1968
- 45609 ed9e 32       		.uleb128 0x32
- 45610 ed9f 600D0000 		.long	0xd60
- 45611 eda3 03       		.byte	0x3
- 45612 eda4 91       		.byte	0x91
- 45613 eda5 E070     		.sleb128 -1952
- 45614 eda7 00       		.byte	0x0
- 45615 eda8 31       		.uleb128 0x31
- 45616 eda9 750D0000 		.long	0xd75
- 45617 edad 00000000 		.quad	.LBB4217
- 45617      00000000 
- 45618 edb5 00000000 		.quad	.LBE4217
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1124
-
-
- 45618      00000000 
- 45619 edbd 02       		.byte	0x2
- 45620 edbe 5903     		.value	0x359
- 45621 edc0 D7ED0000 		.long	0xedd7
- 45622 edc4 32       		.uleb128 0x32
- 45623 edc5 930D0000 		.long	0xd93
- 45624 edc9 03       		.byte	0x3
- 45625 edca 91       		.byte	0x91
- 45626 edcb FC70     		.sleb128 -1924
- 45627 edcd 32       		.uleb128 0x32
- 45628 edce 870D0000 		.long	0xd87
- 45629 edd2 03       		.byte	0x3
- 45630 edd3 91       		.byte	0x91
- 45631 edd4 8071     		.sleb128 -1920
- 45632 edd6 00       		.byte	0x0
- 45633 edd7 31       		.uleb128 0x31
- 45634 edd8 4F0D0000 		.long	0xd4f
- 45635 eddc 00000000 		.quad	.LBB4219
- 45635      00000000 
- 45636 ede4 00000000 		.quad	.LBE4219
- 45636      00000000 
- 45637 edec 02       		.byte	0x2
- 45638 eded 5B03     		.value	0x35b
- 45639 edef 06EE0000 		.long	0xee06
- 45640 edf3 32       		.uleb128 0x32
- 45641 edf4 6A0D0000 		.long	0xd6a
- 45642 edf8 03       		.byte	0x3
- 45643 edf9 91       		.byte	0x91
- 45644 edfa 9071     		.sleb128 -1904
- 45645 edfc 32       		.uleb128 0x32
- 45646 edfd 600D0000 		.long	0xd60
- 45647 ee01 03       		.byte	0x3
- 45648 ee02 91       		.byte	0x91
- 45649 ee03 A071     		.sleb128 -1888
- 45650 ee05 00       		.byte	0x0
- 45651 ee06 31       		.uleb128 0x31
- 45652 ee07 A00D0000 		.long	0xda0
- 45653 ee0b 00000000 		.quad	.LBB4221
- 45653      00000000 
- 45654 ee13 00000000 		.quad	.LBE4221
- 45654      00000000 
- 45655 ee1b 02       		.byte	0x2
- 45656 ee1c 6403     		.value	0x364
- 45657 ee1e 60EE0000 		.long	0xee60
- 45658 ee22 32       		.uleb128 0x32
- 45659 ee23 BE0D0000 		.long	0xdbe
- 45660 ee27 03       		.byte	0x3
- 45661 ee28 91       		.byte	0x91
- 45662 ee29 B071     		.sleb128 -1872
- 45663 ee2b 32       		.uleb128 0x32
- 45664 ee2c B20D0000 		.long	0xdb2
- 45665 ee30 03       		.byte	0x3
- 45666 ee31 91       		.byte	0x91
- 45667 ee32 C071     		.sleb128 -1856
- 45668 ee34 35       		.uleb128 0x35
- 45669 ee35 CB0D0000 		.long	0xdcb
- 45670 ee39 00000000 		.quad	.LBB4223
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1125
-
-
- 45670      00000000 
- 45671 ee41 00000000 		.quad	.LBE4223
- 45671      00000000 
- 45672 ee49 02       		.byte	0x2
- 45673 ee4a 7501     		.value	0x175
- 45674 ee4c 32       		.uleb128 0x32
- 45675 ee4d E90D0000 		.long	0xde9
- 45676 ee51 03       		.byte	0x3
- 45677 ee52 91       		.byte	0x91
- 45678 ee53 D071     		.sleb128 -1840
- 45679 ee55 32       		.uleb128 0x32
- 45680 ee56 DD0D0000 		.long	0xddd
- 45681 ee5a 03       		.byte	0x3
- 45682 ee5b 91       		.byte	0x91
- 45683 ee5c E071     		.sleb128 -1824
- 45684 ee5e 00       		.byte	0x0
- 45685 ee5f 00       		.byte	0x0
- 45686 ee60 31       		.uleb128 0x31
- 45687 ee61 FB0D0000 		.long	0xdfb
- 45688 ee65 00000000 		.quad	.LBB4225
- 45688      00000000 
- 45689 ee6d 00000000 		.quad	.LBE4225
- 45689      00000000 
- 45690 ee75 02       		.byte	0x2
- 45691 ee76 6603     		.value	0x366
- 45692 ee78 8FEE0000 		.long	0xee8f
- 45693 ee7c 32       		.uleb128 0x32
- 45694 ee7d 160E0000 		.long	0xe16
- 45695 ee81 03       		.byte	0x3
- 45696 ee82 91       		.byte	0x91
- 45697 ee83 F071     		.sleb128 -1808
- 45698 ee85 32       		.uleb128 0x32
- 45699 ee86 0C0E0000 		.long	0xe0c
- 45700 ee8a 03       		.byte	0x3
- 45701 ee8b 91       		.byte	0x91
- 45702 ee8c 8072     		.sleb128 -1792
- 45703 ee8e 00       		.byte	0x0
- 45704 ee8f 31       		.uleb128 0x31
- 45705 ee90 A00D0000 		.long	0xda0
- 45706 ee94 00000000 		.quad	.LBB4227
- 45706      00000000 
- 45707 ee9c 00000000 		.quad	.LBE4227
- 45707      00000000 
- 45708 eea4 02       		.byte	0x2
- 45709 eea5 6803     		.value	0x368
- 45710 eea7 E9EE0000 		.long	0xeee9
- 45711 eeab 32       		.uleb128 0x32
- 45712 eeac BE0D0000 		.long	0xdbe
- 45713 eeb0 03       		.byte	0x3
- 45714 eeb1 91       		.byte	0x91
- 45715 eeb2 9072     		.sleb128 -1776
- 45716 eeb4 32       		.uleb128 0x32
- 45717 eeb5 B20D0000 		.long	0xdb2
- 45718 eeb9 03       		.byte	0x3
- 45719 eeba 91       		.byte	0x91
- 45720 eebb A072     		.sleb128 -1760
- 45721 eebd 35       		.uleb128 0x35
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1126
-
-
- 45722 eebe CB0D0000 		.long	0xdcb
- 45723 eec2 00000000 		.quad	.LBB4229
- 45723      00000000 
- 45724 eeca 00000000 		.quad	.LBE4229
- 45724      00000000 
- 45725 eed2 02       		.byte	0x2
- 45726 eed3 7501     		.value	0x175
- 45727 eed5 32       		.uleb128 0x32
- 45728 eed6 E90D0000 		.long	0xde9
- 45729 eeda 03       		.byte	0x3
- 45730 eedb 91       		.byte	0x91
- 45731 eedc B072     		.sleb128 -1744
- 45732 eede 32       		.uleb128 0x32
- 45733 eedf DD0D0000 		.long	0xddd
- 45734 eee3 03       		.byte	0x3
- 45735 eee4 91       		.byte	0x91
- 45736 eee5 C072     		.sleb128 -1728
- 45737 eee7 00       		.byte	0x0
- 45738 eee8 00       		.byte	0x0
- 45739 eee9 31       		.uleb128 0x31
- 45740 eeea FB0D0000 		.long	0xdfb
- 45741 eeee 00000000 		.quad	.LBB4231
- 45741      00000000 
- 45742 eef6 00000000 		.quad	.LBE4231
- 45742      00000000 
- 45743 eefe 02       		.byte	0x2
- 45744 eeff 6A03     		.value	0x36a
- 45745 ef01 18EF0000 		.long	0xef18
- 45746 ef05 32       		.uleb128 0x32
- 45747 ef06 160E0000 		.long	0xe16
- 45748 ef0a 03       		.byte	0x3
- 45749 ef0b 91       		.byte	0x91
- 45750 ef0c D072     		.sleb128 -1712
- 45751 ef0e 32       		.uleb128 0x32
- 45752 ef0f 0C0E0000 		.long	0xe0c
- 45753 ef13 03       		.byte	0x3
- 45754 ef14 91       		.byte	0x91
- 45755 ef15 E072     		.sleb128 -1696
- 45756 ef17 00       		.byte	0x0
- 45757 ef18 31       		.uleb128 0x31
- 45758 ef19 210E0000 		.long	0xe21
- 45759 ef1d 00000000 		.quad	.LBB4233
- 45759      00000000 
- 45760 ef25 00000000 		.quad	.LBE4233
- 45760      00000000 
- 45761 ef2d 02       		.byte	0x2
- 45762 ef2e 6C03     		.value	0x36c
- 45763 ef30 47EF0000 		.long	0xef47
- 45764 ef34 32       		.uleb128 0x32
- 45765 ef35 3E0E0000 		.long	0xe3e
- 45766 ef39 03       		.byte	0x3
- 45767 ef3a 91       		.byte	0x91
- 45768 ef3b F072     		.sleb128 -1680
- 45769 ef3d 32       		.uleb128 0x32
- 45770 ef3e 330E0000 		.long	0xe33
- 45771 ef42 03       		.byte	0x3
- 45772 ef43 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1127
-
-
- 45773 ef44 8073     		.sleb128 -1664
- 45774 ef46 00       		.byte	0x0
- 45775 ef47 35       		.uleb128 0x35
- 45776 ef48 4F0D0000 		.long	0xd4f
- 45777 ef4c 00000000 		.quad	.LBB4235
- 45777      00000000 
- 45778 ef54 00000000 		.quad	.LBE4235
- 45778      00000000 
- 45779 ef5c 02       		.byte	0x2
- 45780 ef5d 6E03     		.value	0x36e
- 45781 ef5f 32       		.uleb128 0x32
- 45782 ef60 6A0D0000 		.long	0xd6a
- 45783 ef64 03       		.byte	0x3
- 45784 ef65 91       		.byte	0x91
- 45785 ef66 9073     		.sleb128 -1648
- 45786 ef68 32       		.uleb128 0x32
- 45787 ef69 600D0000 		.long	0xd60
- 45788 ef6d 03       		.byte	0x3
- 45789 ef6e 91       		.byte	0x91
- 45790 ef6f A073     		.sleb128 -1632
- 45791 ef71 00       		.byte	0x0
- 45792 ef72 00       		.byte	0x0
- 45793 ef73 00       		.byte	0x0
- 45794 ef74 00       		.byte	0x0
- 45795 ef75 36       		.uleb128 0x36
- 45796 ef76 00000000 		.quad	.LBB4237
- 45796      00000000 
- 45797 ef7e 00000000 		.quad	.LBE4237
- 45797      00000000 
- 45798 ef86 94EF0000 		.long	0xef94
- 45799 ef8a 34       		.uleb128 0x34
- 45800 ef8b B6E90000 		.long	0xe9b6
- 45801 ef8f 03       		.byte	0x3
- 45802 ef90 91       		.byte	0x91
- 45803 ef91 E06C     		.sleb128 -2464
- 45804 ef93 00       		.byte	0x0
- 45805 ef94 31       		.uleb128 0x31
- 45806 ef95 FEE90000 		.long	0xe9fe
- 45807 ef99 00000000 		.quad	.LBB4238
- 45807      00000000 
- 45808 efa1 00000000 		.quad	.LBE4238
- 45808      00000000 
- 45809 efa9 02       		.byte	0x2
- 45810 efaa F107     		.value	0x7f1
- 45811 efac 31F00000 		.long	0xf031
- 45812 efb0 32       		.uleb128 0x32
- 45813 efb1 10EA0000 		.long	0xea10
- 45814 efb5 03       		.byte	0x3
- 45815 efb6 91       		.byte	0x91
- 45816 efb7 B073     		.sleb128 -1616
- 45817 efb9 33       		.uleb128 0x33
- 45818 efba 00000000 		.quad	.LBB4239
- 45818      00000000 
- 45819 efc2 00000000 		.quad	.LBE4239
- 45819      00000000 
- 45820 efca 34       		.uleb128 0x34
- 45821 efcb 1CEA0000 		.long	0xea1c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1128
-
-
- 45822 efcf 09       		.byte	0x9
- 45823 efd0 03       		.byte	0x3
- 45824 efd1 00000000 		.quad	ShiftRowTable.7358
- 45824      00000000 
- 45825 efd9 35       		.uleb128 0x35
- 45826 efda A00D0000 		.long	0xda0
- 45827 efde 00000000 		.quad	.LBB4240
- 45827      00000000 
- 45828 efe6 00000000 		.quad	.LBE4240
- 45828      00000000 
- 45829 efee 02       		.byte	0x2
- 45830 efef 4502     		.value	0x245
- 45831 eff1 32       		.uleb128 0x32
- 45832 eff2 BE0D0000 		.long	0xdbe
- 45833 eff6 03       		.byte	0x3
- 45834 eff7 91       		.byte	0x91
- 45835 eff8 C073     		.sleb128 -1600
- 45836 effa 32       		.uleb128 0x32
- 45837 effb B20D0000 		.long	0xdb2
- 45838 efff 03       		.byte	0x3
- 45839 f000 91       		.byte	0x91
- 45840 f001 D073     		.sleb128 -1584
- 45841 f003 35       		.uleb128 0x35
- 45842 f004 CB0D0000 		.long	0xdcb
- 45843 f008 00000000 		.quad	.LBB4242
- 45843      00000000 
- 45844 f010 00000000 		.quad	.LBE4242
- 45844      00000000 
- 45845 f018 02       		.byte	0x2
- 45846 f019 7501     		.value	0x175
- 45847 f01b 32       		.uleb128 0x32
- 45848 f01c E90D0000 		.long	0xde9
- 45849 f020 03       		.byte	0x3
- 45850 f021 91       		.byte	0x91
- 45851 f022 E073     		.sleb128 -1568
- 45852 f024 32       		.uleb128 0x32
- 45853 f025 DD0D0000 		.long	0xddd
- 45854 f029 03       		.byte	0x3
- 45855 f02a 91       		.byte	0x91
- 45856 f02b F073     		.sleb128 -1552
- 45857 f02d 00       		.byte	0x0
- 45858 f02e 00       		.byte	0x0
- 45859 f02f 00       		.byte	0x0
- 45860 f030 00       		.byte	0x0
- 45861 f031 36       		.uleb128 0x36
- 45862 f032 00000000 		.quad	.LBB4244
- 45862      00000000 
- 45863 f03a 00000000 		.quad	.LBE4244
- 45863      00000000 
- 45864 f042 50F00000 		.long	0xf050
- 45865 f046 34       		.uleb128 0x34
- 45866 f047 C6E90000 		.long	0xe9c6
- 45867 f04b 03       		.byte	0x3
- 45868 f04c 91       		.byte	0x91
- 45869 f04d D06C     		.sleb128 -2480
- 45870 f04f 00       		.byte	0x0
- 45871 f050 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1129
-
-
- 45872 f051 3AEA0000 		.long	0xea3a
- 45873 f055 00000000 		.quad	.LBB4245
- 45873      00000000 
- 45874 f05d 00000000 		.quad	.LBE4245
- 45874      00000000 
- 45875 f065 02       		.byte	0x2
- 45876 f066 F507     		.value	0x7f5
- 45877 f068 4BF60000 		.long	0xf64b
- 45878 f06c 32       		.uleb128 0x32
- 45879 f06d 4CEA0000 		.long	0xea4c
- 45880 f071 03       		.byte	0x3
- 45881 f072 91       		.byte	0x91
- 45882 f073 8074     		.sleb128 -1536
- 45883 f075 33       		.uleb128 0x33
- 45884 f076 00000000 		.quad	.LBB4246
- 45884      00000000 
- 45885 f07e 00000000 		.quad	.LBE4246
- 45885      00000000 
- 45886 f086 34       		.uleb128 0x34
- 45887 f087 58EA0000 		.long	0xea58
- 45888 f08b 03       		.byte	0x3
- 45889 f08c 76       		.byte	0x76
- 45890 f08d D06B     		.sleb128 -2608
- 45891 f08f 34       		.uleb128 0x34
- 45892 f090 63EA0000 		.long	0xea63
- 45893 f094 03       		.byte	0x3
- 45894 f095 76       		.byte	0x76
- 45895 f096 C06B     		.sleb128 -2624
- 45896 f098 34       		.uleb128 0x34
- 45897 f099 6EEA0000 		.long	0xea6e
- 45898 f09d 03       		.byte	0x3
- 45899 f09e 76       		.byte	0x76
- 45900 f09f B06B     		.sleb128 -2640
- 45901 f0a1 34       		.uleb128 0x34
- 45902 f0a2 79EA0000 		.long	0xea79
- 45903 f0a6 03       		.byte	0x3
- 45904 f0a7 76       		.byte	0x76
- 45905 f0a8 A06B     		.sleb128 -2656
- 45906 f0aa 31       		.uleb128 0x31
- 45907 f0ab 4A0E0000 		.long	0xe4a
- 45908 f0af 00000000 		.quad	.LBB4247
- 45908      00000000 
- 45909 f0b7 00000000 		.quad	.LBE4247
- 45909      00000000 
- 45910 f0bf 02       		.byte	0x2
- 45911 f0c0 1704     		.value	0x417
- 45912 f0c2 47F10000 		.long	0xf147
- 45913 f0c6 32       		.uleb128 0x32
- 45914 f0c7 5C0E0000 		.long	0xe5c
- 45915 f0cb 03       		.byte	0x3
- 45916 f0cc 91       		.byte	0x91
- 45917 f0cd 9074     		.sleb128 -1520
- 45918 f0cf 33       		.uleb128 0x33
- 45919 f0d0 00000000 		.quad	.LBB4248
- 45919      00000000 
- 45920 f0d8 00000000 		.quad	.LBE4248
- 45920      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1130
-
-
- 45921 f0e0 34       		.uleb128 0x34
- 45922 f0e1 680E0000 		.long	0xe68
- 45923 f0e5 09       		.byte	0x9
- 45924 f0e6 03       		.byte	0x3
- 45925 f0e7 00000000 		.quad	ShiftRowTable.7385
- 45925      00000000 
- 45926 f0ef 35       		.uleb128 0x35
- 45927 f0f0 A00D0000 		.long	0xda0
- 45928 f0f4 00000000 		.quad	.LBB4249
- 45928      00000000 
- 45929 f0fc 00000000 		.quad	.LBE4249
- 45929      00000000 
- 45930 f104 02       		.byte	0x2
- 45931 f105 9B02     		.value	0x29b
- 45932 f107 32       		.uleb128 0x32
- 45933 f108 BE0D0000 		.long	0xdbe
- 45934 f10c 03       		.byte	0x3
- 45935 f10d 91       		.byte	0x91
- 45936 f10e A074     		.sleb128 -1504
- 45937 f110 32       		.uleb128 0x32
- 45938 f111 B20D0000 		.long	0xdb2
- 45939 f115 03       		.byte	0x3
- 45940 f116 91       		.byte	0x91
- 45941 f117 B074     		.sleb128 -1488
- 45942 f119 35       		.uleb128 0x35
- 45943 f11a CB0D0000 		.long	0xdcb
- 45944 f11e 00000000 		.quad	.LBB4251
- 45944      00000000 
- 45945 f126 00000000 		.quad	.LBE4251
- 45945      00000000 
- 45946 f12e 02       		.byte	0x2
- 45947 f12f 7501     		.value	0x175
- 45948 f131 32       		.uleb128 0x32
- 45949 f132 E90D0000 		.long	0xde9
- 45950 f136 03       		.byte	0x3
- 45951 f137 91       		.byte	0x91
- 45952 f138 C074     		.sleb128 -1472
- 45953 f13a 32       		.uleb128 0x32
- 45954 f13b DD0D0000 		.long	0xddd
- 45955 f13f 03       		.byte	0x3
- 45956 f140 91       		.byte	0x91
- 45957 f141 D074     		.sleb128 -1456
- 45958 f143 00       		.byte	0x0
- 45959 f144 00       		.byte	0x0
- 45960 f145 00       		.byte	0x0
- 45961 f146 00       		.byte	0x0
- 45962 f147 31       		.uleb128 0x31
- 45963 f148 4A0E0000 		.long	0xe4a
- 45964 f14c 00000000 		.quad	.LBB4253
- 45964      00000000 
- 45965 f154 00000000 		.quad	.LBE4253
- 45965      00000000 
- 45966 f15c 02       		.byte	0x2
- 45967 f15d 1804     		.value	0x418
- 45968 f15f E4F10000 		.long	0xf1e4
- 45969 f163 32       		.uleb128 0x32
- 45970 f164 5C0E0000 		.long	0xe5c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1131
-
-
- 45971 f168 03       		.byte	0x3
- 45972 f169 91       		.byte	0x91
- 45973 f16a E074     		.sleb128 -1440
- 45974 f16c 33       		.uleb128 0x33
- 45975 f16d 00000000 		.quad	.LBB4254
- 45975      00000000 
- 45976 f175 00000000 		.quad	.LBE4254
- 45976      00000000 
- 45977 f17d 34       		.uleb128 0x34
- 45978 f17e 680E0000 		.long	0xe68
- 45979 f182 09       		.byte	0x9
- 45980 f183 03       		.byte	0x3
- 45981 f184 00000000 		.quad	ShiftRowTable.7385
- 45981      00000000 
- 45982 f18c 35       		.uleb128 0x35
- 45983 f18d A00D0000 		.long	0xda0
- 45984 f191 00000000 		.quad	.LBB4255
- 45984      00000000 
- 45985 f199 00000000 		.quad	.LBE4255
- 45985      00000000 
- 45986 f1a1 02       		.byte	0x2
- 45987 f1a2 9B02     		.value	0x29b
- 45988 f1a4 32       		.uleb128 0x32
- 45989 f1a5 BE0D0000 		.long	0xdbe
- 45990 f1a9 03       		.byte	0x3
- 45991 f1aa 91       		.byte	0x91
- 45992 f1ab F074     		.sleb128 -1424
- 45993 f1ad 32       		.uleb128 0x32
- 45994 f1ae B20D0000 		.long	0xdb2
- 45995 f1b2 03       		.byte	0x3
- 45996 f1b3 91       		.byte	0x91
- 45997 f1b4 8075     		.sleb128 -1408
- 45998 f1b6 35       		.uleb128 0x35
- 45999 f1b7 CB0D0000 		.long	0xdcb
- 46000 f1bb 00000000 		.quad	.LBB4257
- 46000      00000000 
- 46001 f1c3 00000000 		.quad	.LBE4257
- 46001      00000000 
- 46002 f1cb 02       		.byte	0x2
- 46003 f1cc 7501     		.value	0x175
- 46004 f1ce 32       		.uleb128 0x32
- 46005 f1cf E90D0000 		.long	0xde9
- 46006 f1d3 03       		.byte	0x3
- 46007 f1d4 91       		.byte	0x91
- 46008 f1d5 9075     		.sleb128 -1392
- 46009 f1d7 32       		.uleb128 0x32
- 46010 f1d8 DD0D0000 		.long	0xddd
- 46011 f1dc 03       		.byte	0x3
- 46012 f1dd 91       		.byte	0x91
- 46013 f1de A075     		.sleb128 -1376
- 46014 f1e0 00       		.byte	0x0
- 46015 f1e1 00       		.byte	0x0
- 46016 f1e2 00       		.byte	0x0
- 46017 f1e3 00       		.byte	0x0
- 46018 f1e4 31       		.uleb128 0x31
- 46019 f1e5 4A0E0000 		.long	0xe4a
- 46020 f1e9 00000000 		.quad	.LBB4259
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1132
-
-
- 46020      00000000 
- 46021 f1f1 00000000 		.quad	.LBE4259
- 46021      00000000 
- 46022 f1f9 02       		.byte	0x2
- 46023 f1fa 1904     		.value	0x419
- 46024 f1fc 81F20000 		.long	0xf281
- 46025 f200 32       		.uleb128 0x32
- 46026 f201 5C0E0000 		.long	0xe5c
- 46027 f205 03       		.byte	0x3
- 46028 f206 91       		.byte	0x91
- 46029 f207 B075     		.sleb128 -1360
- 46030 f209 33       		.uleb128 0x33
- 46031 f20a 00000000 		.quad	.LBB4260
- 46031      00000000 
- 46032 f212 00000000 		.quad	.LBE4260
- 46032      00000000 
- 46033 f21a 34       		.uleb128 0x34
- 46034 f21b 680E0000 		.long	0xe68
- 46035 f21f 09       		.byte	0x9
- 46036 f220 03       		.byte	0x3
- 46037 f221 00000000 		.quad	ShiftRowTable.7385
- 46037      00000000 
- 46038 f229 35       		.uleb128 0x35
- 46039 f22a A00D0000 		.long	0xda0
- 46040 f22e 00000000 		.quad	.LBB4261
- 46040      00000000 
- 46041 f236 00000000 		.quad	.LBE4261
- 46041      00000000 
- 46042 f23e 02       		.byte	0x2
- 46043 f23f 9B02     		.value	0x29b
- 46044 f241 32       		.uleb128 0x32
- 46045 f242 BE0D0000 		.long	0xdbe
- 46046 f246 03       		.byte	0x3
- 46047 f247 91       		.byte	0x91
- 46048 f248 C075     		.sleb128 -1344
- 46049 f24a 32       		.uleb128 0x32
- 46050 f24b B20D0000 		.long	0xdb2
- 46051 f24f 03       		.byte	0x3
- 46052 f250 91       		.byte	0x91
- 46053 f251 D075     		.sleb128 -1328
- 46054 f253 35       		.uleb128 0x35
- 46055 f254 CB0D0000 		.long	0xdcb
- 46056 f258 00000000 		.quad	.LBB4263
- 46056      00000000 
- 46057 f260 00000000 		.quad	.LBE4263
- 46057      00000000 
- 46058 f268 02       		.byte	0x2
- 46059 f269 7501     		.value	0x175
- 46060 f26b 32       		.uleb128 0x32
- 46061 f26c E90D0000 		.long	0xde9
- 46062 f270 03       		.byte	0x3
- 46063 f271 91       		.byte	0x91
- 46064 f272 E075     		.sleb128 -1312
- 46065 f274 32       		.uleb128 0x32
- 46066 f275 DD0D0000 		.long	0xddd
- 46067 f279 03       		.byte	0x3
- 46068 f27a 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1133
-
-
- 46069 f27b F075     		.sleb128 -1296
- 46070 f27d 00       		.byte	0x0
- 46071 f27e 00       		.byte	0x0
- 46072 f27f 00       		.byte	0x0
- 46073 f280 00       		.byte	0x0
- 46074 f281 31       		.uleb128 0x31
- 46075 f282 860E0000 		.long	0xe86
- 46076 f286 00000000 		.quad	.LBB4265
- 46076      00000000 
- 46077 f28e 00000000 		.quad	.LBE4265
- 46077      00000000 
- 46078 f296 02       		.byte	0x2
- 46079 f297 1A04     		.value	0x41a
- 46080 f299 B0F20000 		.long	0xf2b0
- 46081 f29d 32       		.uleb128 0x32
- 46082 f29e A10E0000 		.long	0xea1
- 46083 f2a2 03       		.byte	0x3
- 46084 f2a3 91       		.byte	0x91
- 46085 f2a4 8076     		.sleb128 -1280
- 46086 f2a6 32       		.uleb128 0x32
- 46087 f2a7 970E0000 		.long	0xe97
- 46088 f2ab 03       		.byte	0x3
- 46089 f2ac 91       		.byte	0x91
- 46090 f2ad 9076     		.sleb128 -1264
- 46091 f2af 00       		.byte	0x0
- 46092 f2b0 31       		.uleb128 0x31
- 46093 f2b1 85EA0000 		.long	0xea85
- 46094 f2b5 00000000 		.quad	.LBB4267
- 46094      00000000 
- 46095 f2bd 00000000 		.quad	.LBE4267
- 46095      00000000 
- 46096 f2c5 02       		.byte	0x2
- 46097 f2c6 1E04     		.value	0x41e
- 46098 f2c8 C0F50000 		.long	0xf5c0
- 46099 f2cc 32       		.uleb128 0x32
- 46100 f2cd 97EA0000 		.long	0xea97
- 46101 f2d1 03       		.byte	0x3
- 46102 f2d2 91       		.byte	0x91
- 46103 f2d3 A076     		.sleb128 -1248
- 46104 f2d5 36       		.uleb128 0x36
- 46105 f2d6 00000000 		.quad	.LBB4269
- 46105      00000000 
- 46106 f2de 00000000 		.quad	.LBE4269
- 46106      00000000 
- 46107 f2e6 F4F20000 		.long	0xf2f4
- 46108 f2ea 34       		.uleb128 0x34
- 46109 f2eb A8EA0000 		.long	0xeaa8
- 46110 f2ef 03       		.byte	0x3
- 46111 f2f0 91       		.byte	0x91
- 46112 f2f1 906D     		.sleb128 -2416
- 46113 f2f3 00       		.byte	0x0
- 46114 f2f4 31       		.uleb128 0x31
- 46115 f2f5 6BD90000 		.long	0xd96b
- 46116 f2f9 00000000 		.quad	.LBB4270
- 46116      00000000 
- 46117 f301 00000000 		.quad	.LBE4270
- 46117      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1134
-
-
- 46118 f309 02       		.byte	0x2
- 46119 f30a B803     		.value	0x3b8
- 46120 f30c A4F50000 		.long	0xf5a4
- 46121 f310 32       		.uleb128 0x32
- 46122 f311 89D90000 		.long	0xd989
- 46123 f315 03       		.byte	0x3
- 46124 f316 91       		.byte	0x91
- 46125 f317 BC76     		.sleb128 -1220
- 46126 f319 32       		.uleb128 0x32
- 46127 f31a 7DD90000 		.long	0xd97d
- 46128 f31e 03       		.byte	0x3
- 46129 f31f 91       		.byte	0x91
- 46130 f320 C076     		.sleb128 -1216
- 46131 f322 33       		.uleb128 0x33
- 46132 f323 00000000 		.quad	.LBB4271
- 46132      00000000 
- 46133 f32b 00000000 		.quad	.LBE4271
- 46133      00000000 
- 46134 f333 34       		.uleb128 0x34
- 46135 f334 95D90000 		.long	0xd995
- 46136 f338 03       		.byte	0x3
- 46137 f339 91       		.byte	0x91
- 46138 f33a E076     		.sleb128 -1184
- 46139 f33c 34       		.uleb128 0x34
- 46140 f33d A0D90000 		.long	0xd9a0
- 46141 f341 03       		.byte	0x3
- 46142 f342 91       		.byte	0x91
- 46143 f343 D076     		.sleb128 -1200
- 46144 f345 34       		.uleb128 0x34
- 46145 f346 ABD90000 		.long	0xd9ab
- 46146 f34a 09       		.byte	0x9
- 46147 f34b 03       		.byte	0x3
- 46148 f34c 00000000 		.quad	__PRETTY_FUNCTION__.7467
- 46148      00000000 
- 46149 f354 36       		.uleb128 0x36
- 46150 f355 00000000 		.quad	.LBB4272
- 46150      00000000 
- 46151 f35d 00000000 		.quad	.LBE4272
- 46151      00000000 
- 46152 f365 73F30000 		.long	0xf373
- 46153 f369 34       		.uleb128 0x34
- 46154 f36a BED90000 		.long	0xd9be
- 46155 f36e 03       		.byte	0x3
- 46156 f36f 91       		.byte	0x91
- 46157 f370 C06D     		.sleb128 -2368
- 46158 f372 00       		.byte	0x0
- 46159 f373 31       		.uleb128 0x31
- 46160 f374 FBD90000 		.long	0xd9fb
- 46161 f378 00000000 		.quad	.LBB4273
- 46161      00000000 
- 46162 f380 00000000 		.quad	.LBE4273
- 46162      00000000 
- 46163 f388 02       		.byte	0x2
- 46164 f389 A603     		.value	0x3a6
- 46165 f38b 1DF40000 		.long	0xf41d
- 46166 f38f 32       		.uleb128 0x32
- 46167 f390 17DA0000 		.long	0xda17
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1135
-
-
- 46168 f394 03       		.byte	0x3
- 46169 f395 91       		.byte	0x91
- 46170 f396 FC76     		.sleb128 -1156
- 46171 f398 32       		.uleb128 0x32
- 46172 f399 0DDA0000 		.long	0xda0d
- 46173 f39d 03       		.byte	0x3
- 46174 f39e 91       		.byte	0x91
- 46175 f39f 8077     		.sleb128 -1152
- 46176 f3a1 33       		.uleb128 0x33
- 46177 f3a2 00000000 		.quad	.LBB4274
- 46177      00000000 
- 46178 f3aa 00000000 		.quad	.LBE4274
- 46178      00000000 
- 46179 f3b2 34       		.uleb128 0x34
- 46180 f3b3 21DA0000 		.long	0xda21
- 46181 f3b7 09       		.byte	0x9
- 46182 f3b8 03       		.byte	0x3
- 46183 f3b9 00000000 		.quad	sr_mask.7327
- 46183      00000000 
- 46184 f3c1 31       		.uleb128 0x31
- 46185 f3c2 750D0000 		.long	0xd75
- 46186 f3c6 00000000 		.quad	.LBB4275
- 46186      00000000 
- 46187 f3ce 00000000 		.quad	.LBE4275
- 46187      00000000 
- 46188 f3d6 02       		.byte	0x2
- 46189 f3d7 E801     		.value	0x1e8
- 46190 f3d9 F0F30000 		.long	0xf3f0
- 46191 f3dd 32       		.uleb128 0x32
- 46192 f3de 930D0000 		.long	0xd93
- 46193 f3e2 03       		.byte	0x3
- 46194 f3e3 91       		.byte	0x91
- 46195 f3e4 9C77     		.sleb128 -1124
- 46196 f3e6 32       		.uleb128 0x32
- 46197 f3e7 870D0000 		.long	0xd87
- 46198 f3eb 03       		.byte	0x3
- 46199 f3ec 91       		.byte	0x91
- 46200 f3ed A077     		.sleb128 -1120
- 46201 f3ef 00       		.byte	0x0
- 46202 f3f0 35       		.uleb128 0x35
- 46203 f3f1 4F0D0000 		.long	0xd4f
- 46204 f3f5 00000000 		.quad	.LBB4277
- 46204      00000000 
- 46205 f3fd 00000000 		.quad	.LBE4277
- 46205      00000000 
- 46206 f405 02       		.byte	0x2
- 46207 f406 E901     		.value	0x1e9
- 46208 f408 32       		.uleb128 0x32
- 46209 f409 6A0D0000 		.long	0xd6a
- 46210 f40d 03       		.byte	0x3
- 46211 f40e 91       		.byte	0x91
- 46212 f40f B077     		.sleb128 -1104
- 46213 f411 32       		.uleb128 0x32
- 46214 f412 600D0000 		.long	0xd60
- 46215 f416 03       		.byte	0x3
- 46216 f417 91       		.byte	0x91
- 46217 f418 C077     		.sleb128 -1088
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1136
-
-
- 46218 f41a 00       		.byte	0x0
- 46219 f41b 00       		.byte	0x0
- 46220 f41c 00       		.byte	0x0
- 46221 f41d 36       		.uleb128 0x36
- 46222 f41e 00000000 		.quad	.LBB4279
- 46222      00000000 
- 46223 f426 00000000 		.quad	.LBE4279
- 46223      00000000 
- 46224 f42e 3CF40000 		.long	0xf43c
- 46225 f432 34       		.uleb128 0x34
- 46226 f433 CED90000 		.long	0xd9ce
- 46227 f437 03       		.byte	0x3
- 46228 f438 91       		.byte	0x91
- 46229 f439 B06D     		.sleb128 -2384
- 46230 f43b 00       		.byte	0x0
- 46231 f43c 31       		.uleb128 0x31
- 46232 f43d D4DA0000 		.long	0xdad4
- 46233 f441 00000000 		.quad	.LBB4280
- 46233      00000000 
- 46234 f449 00000000 		.quad	.LBE4280
- 46234      00000000 
- 46235 f451 02       		.byte	0x2
- 46236 f452 A803     		.value	0x3a8
- 46237 f454 FEF40000 		.long	0xf4fe
- 46238 f458 32       		.uleb128 0x32
- 46239 f459 F0DA0000 		.long	0xdaf0
- 46240 f45d 03       		.byte	0x3
- 46241 f45e 91       		.byte	0x91
- 46242 f45f DC77     		.sleb128 -1060
- 46243 f461 32       		.uleb128 0x32
- 46244 f462 E6DA0000 		.long	0xdae6
- 46245 f466 03       		.byte	0x3
- 46246 f467 91       		.byte	0x91
- 46247 f468 E077     		.sleb128 -1056
- 46248 f46a 33       		.uleb128 0x33
- 46249 f46b 00000000 		.quad	.LBB4281
- 46249      00000000 
- 46250 f473 00000000 		.quad	.LBE4281
- 46250      00000000 
- 46251 f47b 34       		.uleb128 0x34
- 46252 f47c 97DB0000 		.long	0xdb97
- 46253 f480 03       		.byte	0x3
- 46254 f481 91       		.byte	0x91
- 46255 f482 F077     		.sleb128 -1040
- 46256 f484 34       		.uleb128 0x34
- 46257 f485 FADA0000 		.long	0xdafa
- 46258 f489 09       		.byte	0x9
- 46259 f48a 03       		.byte	0x3
- 46260 f48b 00000000 		.quad	sl_mask.7310
- 46260      00000000 
- 46261 f493 34       		.uleb128 0x34
- 46262 f494 A2DB0000 		.long	0xdba2
- 46263 f498 09       		.byte	0x9
- 46264 f499 03       		.byte	0x3
- 46265 f49a 00000000 		.quad	__PRETTY_FUNCTION__.7312
- 46265      00000000 
- 46266 f4a2 31       		.uleb128 0x31
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1137
-
-
- 46267 f4a3 CBDB0000 		.long	0xdbcb
- 46268 f4a7 00000000 		.quad	.LBB4282
- 46268      00000000 
- 46269 f4af 00000000 		.quad	.LBE4282
- 46269      00000000 
- 46270 f4b7 02       		.byte	0x2
- 46271 f4b8 B101     		.value	0x1b1
- 46272 f4ba D1F40000 		.long	0xf4d1
- 46273 f4be 32       		.uleb128 0x32
- 46274 f4bf E9DB0000 		.long	0xdbe9
- 46275 f4c3 03       		.byte	0x3
- 46276 f4c4 91       		.byte	0x91
- 46277 f4c5 8C78     		.sleb128 -1012
- 46278 f4c7 32       		.uleb128 0x32
- 46279 f4c8 DDDB0000 		.long	0xdbdd
- 46280 f4cc 03       		.byte	0x3
- 46281 f4cd 91       		.byte	0x91
- 46282 f4ce 9078     		.sleb128 -1008
- 46283 f4d0 00       		.byte	0x0
- 46284 f4d1 35       		.uleb128 0x35
- 46285 f4d2 4F0D0000 		.long	0xd4f
- 46286 f4d6 00000000 		.quad	.LBB4284
- 46286      00000000 
- 46287 f4de 00000000 		.quad	.LBE4284
- 46287      00000000 
- 46288 f4e6 02       		.byte	0x2
- 46289 f4e7 B301     		.value	0x1b3
- 46290 f4e9 32       		.uleb128 0x32
- 46291 f4ea 6A0D0000 		.long	0xd6a
- 46292 f4ee 03       		.byte	0x3
- 46293 f4ef 91       		.byte	0x91
- 46294 f4f0 A078     		.sleb128 -992
- 46295 f4f2 32       		.uleb128 0x32
- 46296 f4f3 600D0000 		.long	0xd60
- 46297 f4f7 03       		.byte	0x3
- 46298 f4f8 91       		.byte	0x91
- 46299 f4f9 B078     		.sleb128 -976
- 46300 f4fb 00       		.byte	0x0
- 46301 f4fc 00       		.byte	0x0
- 46302 f4fd 00       		.byte	0x0
- 46303 f4fe 36       		.uleb128 0x36
- 46304 f4ff 00000000 		.quad	.LBB4286
- 46304      00000000 
- 46305 f507 00000000 		.quad	.LBE4286
- 46305      00000000 
- 46306 f50f 1DF50000 		.long	0xf51d
- 46307 f513 34       		.uleb128 0x34
- 46308 f514 DAD90000 		.long	0xd9da
- 46309 f518 03       		.byte	0x3
- 46310 f519 91       		.byte	0x91
- 46311 f51a A06D     		.sleb128 -2400
- 46312 f51c 00       		.byte	0x0
- 46313 f51d 31       		.uleb128 0x31
- 46314 f51e A00D0000 		.long	0xda0
- 46315 f522 00000000 		.quad	.LBB4287
- 46315      00000000 
- 46316 f52a 00000000 		.quad	.LBE4287
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1138
-
-
- 46316      00000000 
- 46317 f532 02       		.byte	0x2
- 46318 f533 AA03     		.value	0x3aa
- 46319 f535 77F50000 		.long	0xf577
- 46320 f539 32       		.uleb128 0x32
- 46321 f53a BE0D0000 		.long	0xdbe
- 46322 f53e 03       		.byte	0x3
- 46323 f53f 91       		.byte	0x91
- 46324 f540 C078     		.sleb128 -960
- 46325 f542 32       		.uleb128 0x32
- 46326 f543 B20D0000 		.long	0xdb2
- 46327 f547 03       		.byte	0x3
- 46328 f548 91       		.byte	0x91
- 46329 f549 D078     		.sleb128 -944
- 46330 f54b 35       		.uleb128 0x35
- 46331 f54c CB0D0000 		.long	0xdcb
- 46332 f550 00000000 		.quad	.LBB4289
- 46332      00000000 
- 46333 f558 00000000 		.quad	.LBE4289
- 46333      00000000 
- 46334 f560 02       		.byte	0x2
- 46335 f561 7501     		.value	0x175
- 46336 f563 32       		.uleb128 0x32
- 46337 f564 E90D0000 		.long	0xde9
- 46338 f568 03       		.byte	0x3
- 46339 f569 91       		.byte	0x91
- 46340 f56a E078     		.sleb128 -928
- 46341 f56c 32       		.uleb128 0x32
- 46342 f56d DD0D0000 		.long	0xddd
- 46343 f571 03       		.byte	0x3
- 46344 f572 91       		.byte	0x91
- 46345 f573 F078     		.sleb128 -912
- 46346 f575 00       		.byte	0x0
- 46347 f576 00       		.byte	0x0
- 46348 f577 35       		.uleb128 0x35
- 46349 f578 860E0000 		.long	0xe86
- 46350 f57c 00000000 		.quad	.LBB4291
- 46350      00000000 
- 46351 f584 00000000 		.quad	.LBE4291
- 46351      00000000 
- 46352 f58c 02       		.byte	0x2
- 46353 f58d AB03     		.value	0x3ab
- 46354 f58f 32       		.uleb128 0x32
- 46355 f590 A10E0000 		.long	0xea1
- 46356 f594 03       		.byte	0x3
- 46357 f595 91       		.byte	0x91
- 46358 f596 8079     		.sleb128 -896
- 46359 f598 32       		.uleb128 0x32
- 46360 f599 970E0000 		.long	0xe97
- 46361 f59d 03       		.byte	0x3
- 46362 f59e 91       		.byte	0x91
- 46363 f59f 9079     		.sleb128 -880
- 46364 f5a1 00       		.byte	0x0
- 46365 f5a2 00       		.byte	0x0
- 46366 f5a3 00       		.byte	0x0
- 46367 f5a4 33       		.uleb128 0x33
- 46368 f5a5 00000000 		.quad	.LBB4293
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1139
-
-
- 46368      00000000 
- 46369 f5ad 00000000 		.quad	.LBE4293
- 46369      00000000 
- 46370 f5b5 34       		.uleb128 0x34
- 46371 f5b6 B4EA0000 		.long	0xeab4
- 46372 f5ba 03       		.byte	0x3
- 46373 f5bb 91       		.byte	0x91
- 46374 f5bc 806D     		.sleb128 -2432
- 46375 f5be 00       		.byte	0x0
- 46376 f5bf 00       		.byte	0x0
- 46377 f5c0 31       		.uleb128 0x31
- 46378 f5c1 860E0000 		.long	0xe86
- 46379 f5c5 00000000 		.quad	.LBB4294
- 46379      00000000 
- 46380 f5cd 00000000 		.quad	.LBE4294
- 46380      00000000 
- 46381 f5d5 02       		.byte	0x2
- 46382 f5d6 2B04     		.value	0x42b
- 46383 f5d8 EFF50000 		.long	0xf5ef
- 46384 f5dc 32       		.uleb128 0x32
- 46385 f5dd A10E0000 		.long	0xea1
- 46386 f5e1 03       		.byte	0x3
- 46387 f5e2 91       		.byte	0x91
- 46388 f5e3 A079     		.sleb128 -864
- 46389 f5e5 32       		.uleb128 0x32
- 46390 f5e6 970E0000 		.long	0xe97
- 46391 f5ea 03       		.byte	0x3
- 46392 f5eb 91       		.byte	0x91
- 46393 f5ec B079     		.sleb128 -848
- 46394 f5ee 00       		.byte	0x0
- 46395 f5ef 31       		.uleb128 0x31
- 46396 f5f0 860E0000 		.long	0xe86
- 46397 f5f4 00000000 		.quad	.LBB4296
- 46397      00000000 
- 46398 f5fc 00000000 		.quad	.LBE4296
- 46398      00000000 
- 46399 f604 02       		.byte	0x2
- 46400 f605 2C04     		.value	0x42c
- 46401 f607 1EF60000 		.long	0xf61e
- 46402 f60b 32       		.uleb128 0x32
- 46403 f60c A10E0000 		.long	0xea1
- 46404 f610 03       		.byte	0x3
- 46405 f611 91       		.byte	0x91
- 46406 f612 C079     		.sleb128 -832
- 46407 f614 32       		.uleb128 0x32
- 46408 f615 970E0000 		.long	0xe97
- 46409 f619 03       		.byte	0x3
- 46410 f61a 91       		.byte	0x91
- 46411 f61b D079     		.sleb128 -816
- 46412 f61d 00       		.byte	0x0
- 46413 f61e 35       		.uleb128 0x35
- 46414 f61f 860E0000 		.long	0xe86
- 46415 f623 00000000 		.quad	.LBB4298
- 46415      00000000 
- 46416 f62b 00000000 		.quad	.LBE4298
- 46416      00000000 
- 46417 f633 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1140
-
-
- 46418 f634 2D04     		.value	0x42d
- 46419 f636 32       		.uleb128 0x32
- 46420 f637 A10E0000 		.long	0xea1
- 46421 f63b 03       		.byte	0x3
- 46422 f63c 91       		.byte	0x91
- 46423 f63d E079     		.sleb128 -800
- 46424 f63f 32       		.uleb128 0x32
- 46425 f640 970E0000 		.long	0xe97
- 46426 f644 03       		.byte	0x3
- 46427 f645 91       		.byte	0x91
- 46428 f646 F079     		.sleb128 -784
- 46429 f648 00       		.byte	0x0
- 46430 f649 00       		.byte	0x0
- 46431 f64a 00       		.byte	0x0
- 46432 f64b 36       		.uleb128 0x36
- 46433 f64c 00000000 		.quad	.LBB4300
- 46433      00000000 
- 46434 f654 00000000 		.quad	.LBE4300
- 46434      00000000 
- 46435 f65c 6AF60000 		.long	0xf66a
- 46436 f660 34       		.uleb128 0x34
- 46437 f661 D6E90000 		.long	0xe9d6
- 46438 f665 03       		.byte	0x3
- 46439 f666 91       		.byte	0x91
- 46440 f667 C06C     		.sleb128 -2496
- 46441 f669 00       		.byte	0x0
- 46442 f66a 31       		.uleb128 0x31
- 46443 f66b 34E90000 		.long	0xe934
- 46444 f66f 00000000 		.quad	.LBB4301
- 46444      00000000 
- 46445 f677 00000000 		.quad	.LBE4301
- 46445      00000000 
- 46446 f67f 02       		.byte	0x2
- 46447 f680 FA07     		.value	0x7fa
- 46448 f682 C4F60000 		.long	0xf6c4
- 46449 f686 32       		.uleb128 0x32
- 46450 f687 52E90000 		.long	0xe952
- 46451 f68b 03       		.byte	0x3
- 46452 f68c 91       		.byte	0x91
- 46453 f68d 807A     		.sleb128 -768
- 46454 f68f 32       		.uleb128 0x32
- 46455 f690 46E90000 		.long	0xe946
- 46456 f694 03       		.byte	0x3
- 46457 f695 91       		.byte	0x91
- 46458 f696 907A     		.sleb128 -752
- 46459 f698 35       		.uleb128 0x35
- 46460 f699 860E0000 		.long	0xe86
- 46461 f69d 00000000 		.quad	.LBB4303
- 46461      00000000 
- 46462 f6a5 00000000 		.quad	.LBE4303
- 46462      00000000 
- 46463 f6ad 02       		.byte	0x2
- 46464 f6ae 2302     		.value	0x223
- 46465 f6b0 32       		.uleb128 0x32
- 46466 f6b1 A10E0000 		.long	0xea1
- 46467 f6b5 03       		.byte	0x3
- 46468 f6b6 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1141
-
-
- 46469 f6b7 A07A     		.sleb128 -736
- 46470 f6b9 32       		.uleb128 0x32
- 46471 f6ba 970E0000 		.long	0xe97
- 46472 f6be 03       		.byte	0x3
- 46473 f6bf 91       		.byte	0x91
- 46474 f6c0 B07A     		.sleb128 -720
- 46475 f6c2 00       		.byte	0x0
- 46476 f6c3 00       		.byte	0x0
- 46477 f6c4 36       		.uleb128 0x36
- 46478 f6c5 00000000 		.quad	.LBB4305
- 46478      00000000 
- 46479 f6cd 00000000 		.quad	.LBE4305
- 46479      00000000 
- 46480 f6d5 E3F60000 		.long	0xf6e3
- 46481 f6d9 34       		.uleb128 0x34
- 46482 f6da E6E90000 		.long	0xe9e6
- 46483 f6de 03       		.byte	0x3
- 46484 f6df 91       		.byte	0x91
- 46485 f6e0 B06C     		.sleb128 -2512
- 46486 f6e2 00       		.byte	0x0
- 46487 f6e3 33       		.uleb128 0x33
- 46488 f6e4 00000000 		.quad	.LBB4306
- 46488      00000000 
- 46489 f6ec 00000000 		.quad	.LBE4306
- 46489      00000000 
- 46490 f6f4 34       		.uleb128 0x34
- 46491 f6f5 F2E90000 		.long	0xe9f2
- 46492 f6f9 03       		.byte	0x3
- 46493 f6fa 91       		.byte	0x91
- 46494 f6fb A06C     		.sleb128 -2528
- 46495 f6fd 00       		.byte	0x0
- 46496 f6fe 00       		.byte	0x0
- 46497 f6ff 00       		.byte	0x0
- 46498 f700 35       		.uleb128 0x35
- 46499 f701 C0EA0000 		.long	0xeac0
- 46500 f705 00000000 		.quad	.LBB4307
- 46500      00000000 
- 46501 f70d 00000000 		.quad	.LBE4307
- 46501      00000000 
- 46502 f715 02       		.byte	0x2
- 46503 f716 3608     		.value	0x836
- 46504 f718 32       		.uleb128 0x32
- 46505 f719 DEEA0000 		.long	0xeade
- 46506 f71d 03       		.byte	0x3
- 46507 f71e 91       		.byte	0x91
- 46508 f71f C07A     		.sleb128 -704
- 46509 f721 32       		.uleb128 0x32
- 46510 f722 D2EA0000 		.long	0xead2
- 46511 f726 03       		.byte	0x3
- 46512 f727 91       		.byte	0x91
- 46513 f728 D07A     		.sleb128 -688
- 46514 f72a 36       		.uleb128 0x36
- 46515 f72b 00000000 		.quad	.LBB4309
- 46515      00000000 
- 46516 f733 00000000 		.quad	.LBE4309
- 46516      00000000 
- 46517 f73b 49F70000 		.long	0xf749
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1142
-
-
- 46518 f73f 34       		.uleb128 0x34
- 46519 f740 EFEA0000 		.long	0xeaef
- 46520 f744 03       		.byte	0x3
- 46521 f745 91       		.byte	0x91
- 46522 f746 906E     		.sleb128 -2288
- 46523 f748 00       		.byte	0x0
- 46524 f749 31       		.uleb128 0x31
- 46525 f74a C10C0000 		.long	0xcc1
- 46526 f74e 00000000 		.quad	.LBB4310
- 46526      00000000 
- 46527 f756 00000000 		.quad	.LBE4310
- 46527      00000000 
- 46528 f75e 02       		.byte	0x2
- 46529 f75f 0F08     		.value	0x80f
- 46530 f761 D2F90000 		.long	0xf9d2
- 46531 f765 32       		.uleb128 0x32
- 46532 f766 D30C0000 		.long	0xcd3
- 46533 f76a 03       		.byte	0x3
- 46534 f76b 91       		.byte	0x91
- 46535 f76c E07A     		.sleb128 -672
- 46536 f76e 35       		.uleb128 0x35
- 46537 f76f E00C0000 		.long	0xce0
- 46538 f773 00000000 		.quad	.LBB4312
- 46538      00000000 
- 46539 f77b 00000000 		.quad	.LBE4312
- 46539      00000000 
- 46540 f783 02       		.byte	0x2
- 46541 f784 7D03     		.value	0x37d
- 46542 f786 32       		.uleb128 0x32
- 46543 f787 FE0C0000 		.long	0xcfe
- 46544 f78b 03       		.byte	0x3
- 46545 f78c 91       		.byte	0x91
- 46546 f78d F87A     		.sleb128 -648
- 46547 f78f 32       		.uleb128 0x32
- 46548 f790 F20C0000 		.long	0xcf2
- 46549 f794 03       		.byte	0x3
- 46550 f795 91       		.byte	0x91
- 46551 f796 807B     		.sleb128 -640
- 46552 f798 33       		.uleb128 0x33
- 46553 f799 00000000 		.quad	.LBB4313
- 46553      00000000 
- 46554 f7a1 00000000 		.quad	.LBE4313
- 46554      00000000 
- 46555 f7a9 34       		.uleb128 0x34
- 46556 f7aa 0A0D0000 		.long	0xd0a
- 46557 f7ae 03       		.byte	0x3
- 46558 f7af 91       		.byte	0x91
- 46559 f7b0 D07B     		.sleb128 -560
- 46560 f7b2 34       		.uleb128 0x34
- 46561 f7b3 150D0000 		.long	0xd15
- 46562 f7b7 03       		.byte	0x3
- 46563 f7b8 91       		.byte	0x91
- 46564 f7b9 C07B     		.sleb128 -576
- 46565 f7bb 34       		.uleb128 0x34
- 46566 f7bc 200D0000 		.long	0xd20
- 46567 f7c0 03       		.byte	0x3
- 46568 f7c1 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1143
-
-
- 46569 f7c2 B07B     		.sleb128 -592
- 46570 f7c4 34       		.uleb128 0x34
- 46571 f7c5 2C0D0000 		.long	0xd2c
- 46572 f7c9 03       		.byte	0x3
- 46573 f7ca 91       		.byte	0x91
- 46574 f7cb A07B     		.sleb128 -608
- 46575 f7cd 34       		.uleb128 0x34
- 46576 f7ce 380D0000 		.long	0xd38
- 46577 f7d2 03       		.byte	0x3
- 46578 f7d3 91       		.byte	0x91
- 46579 f7d4 9C7B     		.sleb128 -612
- 46580 f7d6 31       		.uleb128 0x31
- 46581 f7d7 4F0D0000 		.long	0xd4f
- 46582 f7db 00000000 		.quad	.LBB4314
- 46582      00000000 
- 46583 f7e3 00000000 		.quad	.LBE4314
- 46583      00000000 
- 46584 f7eb 02       		.byte	0x2
- 46585 f7ec 5603     		.value	0x356
- 46586 f7ee 05F80000 		.long	0xf805
- 46587 f7f2 32       		.uleb128 0x32
- 46588 f7f3 6A0D0000 		.long	0xd6a
- 46589 f7f7 03       		.byte	0x3
- 46590 f7f8 91       		.byte	0x91
- 46591 f7f9 E07B     		.sleb128 -544
- 46592 f7fb 32       		.uleb128 0x32
- 46593 f7fc 600D0000 		.long	0xd60
- 46594 f800 03       		.byte	0x3
- 46595 f801 91       		.byte	0x91
- 46596 f802 F07B     		.sleb128 -528
- 46597 f804 00       		.byte	0x0
- 46598 f805 31       		.uleb128 0x31
- 46599 f806 750D0000 		.long	0xd75
- 46600 f80a 00000000 		.quad	.LBB4316
- 46600      00000000 
- 46601 f812 00000000 		.quad	.LBE4316
- 46601      00000000 
- 46602 f81a 02       		.byte	0x2
- 46603 f81b 5903     		.value	0x359
- 46604 f81d 34F80000 		.long	0xf834
- 46605 f821 32       		.uleb128 0x32
- 46606 f822 930D0000 		.long	0xd93
- 46607 f826 03       		.byte	0x3
- 46608 f827 91       		.byte	0x91
- 46609 f828 8C7C     		.sleb128 -500
- 46610 f82a 32       		.uleb128 0x32
- 46611 f82b 870D0000 		.long	0xd87
- 46612 f82f 03       		.byte	0x3
- 46613 f830 91       		.byte	0x91
- 46614 f831 907C     		.sleb128 -496
- 46615 f833 00       		.byte	0x0
- 46616 f834 31       		.uleb128 0x31
- 46617 f835 4F0D0000 		.long	0xd4f
- 46618 f839 00000000 		.quad	.LBB4318
- 46618      00000000 
- 46619 f841 00000000 		.quad	.LBE4318
- 46619      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1144
-
-
- 46620 f849 02       		.byte	0x2
- 46621 f84a 5B03     		.value	0x35b
- 46622 f84c 63F80000 		.long	0xf863
- 46623 f850 32       		.uleb128 0x32
- 46624 f851 6A0D0000 		.long	0xd6a
- 46625 f855 03       		.byte	0x3
- 46626 f856 91       		.byte	0x91
- 46627 f857 A07C     		.sleb128 -480
- 46628 f859 32       		.uleb128 0x32
- 46629 f85a 600D0000 		.long	0xd60
- 46630 f85e 03       		.byte	0x3
- 46631 f85f 91       		.byte	0x91
- 46632 f860 B07C     		.sleb128 -464
- 46633 f862 00       		.byte	0x0
- 46634 f863 31       		.uleb128 0x31
- 46635 f864 A00D0000 		.long	0xda0
- 46636 f868 00000000 		.quad	.LBB4320
- 46636      00000000 
- 46637 f870 00000000 		.quad	.LBE4320
- 46637      00000000 
- 46638 f878 02       		.byte	0x2
- 46639 f879 6403     		.value	0x364
- 46640 f87b BDF80000 		.long	0xf8bd
- 46641 f87f 32       		.uleb128 0x32
- 46642 f880 BE0D0000 		.long	0xdbe
- 46643 f884 03       		.byte	0x3
- 46644 f885 91       		.byte	0x91
- 46645 f886 C07C     		.sleb128 -448
- 46646 f888 32       		.uleb128 0x32
- 46647 f889 B20D0000 		.long	0xdb2
- 46648 f88d 03       		.byte	0x3
- 46649 f88e 91       		.byte	0x91
- 46650 f88f D07C     		.sleb128 -432
- 46651 f891 35       		.uleb128 0x35
- 46652 f892 CB0D0000 		.long	0xdcb
- 46653 f896 00000000 		.quad	.LBB4322
- 46653      00000000 
- 46654 f89e 00000000 		.quad	.LBE4322
- 46654      00000000 
- 46655 f8a6 02       		.byte	0x2
- 46656 f8a7 7501     		.value	0x175
- 46657 f8a9 32       		.uleb128 0x32
- 46658 f8aa E90D0000 		.long	0xde9
- 46659 f8ae 03       		.byte	0x3
- 46660 f8af 91       		.byte	0x91
- 46661 f8b0 E07C     		.sleb128 -416
- 46662 f8b2 32       		.uleb128 0x32
- 46663 f8b3 DD0D0000 		.long	0xddd
- 46664 f8b7 03       		.byte	0x3
- 46665 f8b8 91       		.byte	0x91
- 46666 f8b9 F07C     		.sleb128 -400
- 46667 f8bb 00       		.byte	0x0
- 46668 f8bc 00       		.byte	0x0
- 46669 f8bd 31       		.uleb128 0x31
- 46670 f8be FB0D0000 		.long	0xdfb
- 46671 f8c2 00000000 		.quad	.LBB4324
- 46671      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1145
-
-
- 46672 f8ca 00000000 		.quad	.LBE4324
- 46672      00000000 
- 46673 f8d2 02       		.byte	0x2
- 46674 f8d3 6603     		.value	0x366
- 46675 f8d5 ECF80000 		.long	0xf8ec
- 46676 f8d9 32       		.uleb128 0x32
- 46677 f8da 160E0000 		.long	0xe16
- 46678 f8de 03       		.byte	0x3
- 46679 f8df 91       		.byte	0x91
- 46680 f8e0 807D     		.sleb128 -384
- 46681 f8e2 32       		.uleb128 0x32
- 46682 f8e3 0C0E0000 		.long	0xe0c
- 46683 f8e7 03       		.byte	0x3
- 46684 f8e8 91       		.byte	0x91
- 46685 f8e9 907D     		.sleb128 -368
- 46686 f8eb 00       		.byte	0x0
- 46687 f8ec 31       		.uleb128 0x31
- 46688 f8ed A00D0000 		.long	0xda0
- 46689 f8f1 00000000 		.quad	.LBB4326
- 46689      00000000 
- 46690 f8f9 00000000 		.quad	.LBE4326
- 46690      00000000 
- 46691 f901 02       		.byte	0x2
- 46692 f902 6803     		.value	0x368
- 46693 f904 46F90000 		.long	0xf946
- 46694 f908 32       		.uleb128 0x32
- 46695 f909 BE0D0000 		.long	0xdbe
- 46696 f90d 03       		.byte	0x3
- 46697 f90e 91       		.byte	0x91
- 46698 f90f A07D     		.sleb128 -352
- 46699 f911 32       		.uleb128 0x32
- 46700 f912 B20D0000 		.long	0xdb2
- 46701 f916 03       		.byte	0x3
- 46702 f917 91       		.byte	0x91
- 46703 f918 B07D     		.sleb128 -336
- 46704 f91a 35       		.uleb128 0x35
- 46705 f91b CB0D0000 		.long	0xdcb
- 46706 f91f 00000000 		.quad	.LBB4328
- 46706      00000000 
- 46707 f927 00000000 		.quad	.LBE4328
- 46707      00000000 
- 46708 f92f 02       		.byte	0x2
- 46709 f930 7501     		.value	0x175
- 46710 f932 32       		.uleb128 0x32
- 46711 f933 E90D0000 		.long	0xde9
- 46712 f937 03       		.byte	0x3
- 46713 f938 91       		.byte	0x91
- 46714 f939 C07D     		.sleb128 -320
- 46715 f93b 32       		.uleb128 0x32
- 46716 f93c DD0D0000 		.long	0xddd
- 46717 f940 03       		.byte	0x3
- 46718 f941 91       		.byte	0x91
- 46719 f942 D07D     		.sleb128 -304
- 46720 f944 00       		.byte	0x0
- 46721 f945 00       		.byte	0x0
- 46722 f946 31       		.uleb128 0x31
- 46723 f947 FB0D0000 		.long	0xdfb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1146
-
-
- 46724 f94b 00000000 		.quad	.LBB4330
- 46724      00000000 
- 46725 f953 00000000 		.quad	.LBE4330
- 46725      00000000 
- 46726 f95b 02       		.byte	0x2
- 46727 f95c 6A03     		.value	0x36a
- 46728 f95e 75F90000 		.long	0xf975
- 46729 f962 32       		.uleb128 0x32
- 46730 f963 160E0000 		.long	0xe16
- 46731 f967 03       		.byte	0x3
- 46732 f968 91       		.byte	0x91
- 46733 f969 E07D     		.sleb128 -288
- 46734 f96b 32       		.uleb128 0x32
- 46735 f96c 0C0E0000 		.long	0xe0c
- 46736 f970 03       		.byte	0x3
- 46737 f971 91       		.byte	0x91
- 46738 f972 F07D     		.sleb128 -272
- 46739 f974 00       		.byte	0x0
- 46740 f975 31       		.uleb128 0x31
- 46741 f976 210E0000 		.long	0xe21
- 46742 f97a 00000000 		.quad	.LBB4332
- 46742      00000000 
- 46743 f982 00000000 		.quad	.LBE4332
- 46743      00000000 
- 46744 f98a 02       		.byte	0x2
- 46745 f98b 6C03     		.value	0x36c
- 46746 f98d A4F90000 		.long	0xf9a4
- 46747 f991 32       		.uleb128 0x32
- 46748 f992 3E0E0000 		.long	0xe3e
- 46749 f996 03       		.byte	0x3
- 46750 f997 91       		.byte	0x91
- 46751 f998 807E     		.sleb128 -256
- 46752 f99a 32       		.uleb128 0x32
- 46753 f99b 330E0000 		.long	0xe33
- 46754 f99f 03       		.byte	0x3
- 46755 f9a0 91       		.byte	0x91
- 46756 f9a1 907E     		.sleb128 -240
- 46757 f9a3 00       		.byte	0x0
- 46758 f9a4 35       		.uleb128 0x35
- 46759 f9a5 4F0D0000 		.long	0xd4f
- 46760 f9a9 00000000 		.quad	.LBB4334
- 46760      00000000 
- 46761 f9b1 00000000 		.quad	.LBE4334
- 46761      00000000 
- 46762 f9b9 02       		.byte	0x2
- 46763 f9ba 6E03     		.value	0x36e
- 46764 f9bc 32       		.uleb128 0x32
- 46765 f9bd 6A0D0000 		.long	0xd6a
- 46766 f9c1 03       		.byte	0x3
- 46767 f9c2 91       		.byte	0x91
- 46768 f9c3 A07E     		.sleb128 -224
- 46769 f9c5 32       		.uleb128 0x32
- 46770 f9c6 600D0000 		.long	0xd60
- 46771 f9ca 03       		.byte	0x3
- 46772 f9cb 91       		.byte	0x91
- 46773 f9cc B07E     		.sleb128 -208
- 46774 f9ce 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1147
-
-
- 46775 f9cf 00       		.byte	0x0
- 46776 f9d0 00       		.byte	0x0
- 46777 f9d1 00       		.byte	0x0
- 46778 f9d2 36       		.uleb128 0x36
- 46779 f9d3 00000000 		.quad	.LBB4336
- 46779      00000000 
- 46780 f9db 00000000 		.quad	.LBE4336
- 46780      00000000 
- 46781 f9e3 F1F90000 		.long	0xf9f1
- 46782 f9e7 34       		.uleb128 0x34
- 46783 f9e8 FFEA0000 		.long	0xeaff
- 46784 f9ec 03       		.byte	0x3
- 46785 f9ed 91       		.byte	0x91
- 46786 f9ee 806E     		.sleb128 -2304
- 46787 f9f0 00       		.byte	0x0
- 46788 f9f1 31       		.uleb128 0x31
- 46789 f9f2 FEE90000 		.long	0xe9fe
- 46790 f9f6 00000000 		.quad	.LBB4337
- 46790      00000000 
- 46791 f9fe 00000000 		.quad	.LBE4337
- 46791      00000000 
- 46792 fa06 02       		.byte	0x2
- 46793 fa07 1308     		.value	0x813
- 46794 fa09 8EFA0000 		.long	0xfa8e
- 46795 fa0d 32       		.uleb128 0x32
- 46796 fa0e 10EA0000 		.long	0xea10
- 46797 fa12 03       		.byte	0x3
- 46798 fa13 91       		.byte	0x91
- 46799 fa14 C07E     		.sleb128 -192
- 46800 fa16 33       		.uleb128 0x33
- 46801 fa17 00000000 		.quad	.LBB4338
- 46801      00000000 
- 46802 fa1f 00000000 		.quad	.LBE4338
- 46802      00000000 
- 46803 fa27 34       		.uleb128 0x34
- 46804 fa28 1CEA0000 		.long	0xea1c
- 46805 fa2c 09       		.byte	0x9
- 46806 fa2d 03       		.byte	0x3
- 46807 fa2e 00000000 		.quad	ShiftRowTable.7358
- 46807      00000000 
- 46808 fa36 35       		.uleb128 0x35
- 46809 fa37 A00D0000 		.long	0xda0
- 46810 fa3b 00000000 		.quad	.LBB4339
- 46810      00000000 
- 46811 fa43 00000000 		.quad	.LBE4339
- 46811      00000000 
- 46812 fa4b 02       		.byte	0x2
- 46813 fa4c 4502     		.value	0x245
- 46814 fa4e 32       		.uleb128 0x32
- 46815 fa4f BE0D0000 		.long	0xdbe
- 46816 fa53 03       		.byte	0x3
- 46817 fa54 91       		.byte	0x91
- 46818 fa55 D07E     		.sleb128 -176
- 46819 fa57 32       		.uleb128 0x32
- 46820 fa58 B20D0000 		.long	0xdb2
- 46821 fa5c 03       		.byte	0x3
- 46822 fa5d 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1148
-
-
- 46823 fa5e E07E     		.sleb128 -160
- 46824 fa60 35       		.uleb128 0x35
- 46825 fa61 CB0D0000 		.long	0xdcb
- 46826 fa65 00000000 		.quad	.LBB4341
- 46826      00000000 
- 46827 fa6d 00000000 		.quad	.LBE4341
- 46827      00000000 
- 46828 fa75 02       		.byte	0x2
- 46829 fa76 7501     		.value	0x175
- 46830 fa78 32       		.uleb128 0x32
- 46831 fa79 E90D0000 		.long	0xde9
- 46832 fa7d 03       		.byte	0x3
- 46833 fa7e 91       		.byte	0x91
- 46834 fa7f F07E     		.sleb128 -144
- 46835 fa81 32       		.uleb128 0x32
- 46836 fa82 DD0D0000 		.long	0xddd
- 46837 fa86 03       		.byte	0x3
- 46838 fa87 91       		.byte	0x91
- 46839 fa88 807F     		.sleb128 -128
- 46840 fa8a 00       		.byte	0x0
- 46841 fa8b 00       		.byte	0x0
- 46842 fa8c 00       		.byte	0x0
- 46843 fa8d 00       		.byte	0x0
- 46844 fa8e 36       		.uleb128 0x36
- 46845 fa8f 00000000 		.quad	.LBB4343
- 46845      00000000 
- 46846 fa97 00000000 		.quad	.LBE4343
- 46846      00000000 
- 46847 fa9f ADFA0000 		.long	0xfaad
- 46848 faa3 34       		.uleb128 0x34
- 46849 faa4 0FEB0000 		.long	0xeb0f
- 46850 faa8 03       		.byte	0x3
- 46851 faa9 91       		.byte	0x91
- 46852 faaa F06D     		.sleb128 -2320
- 46853 faac 00       		.byte	0x0
- 46854 faad 31       		.uleb128 0x31
- 46855 faae 34E90000 		.long	0xe934
- 46856 fab2 00000000 		.quad	.LBB4344
- 46856      00000000 
- 46857 faba 00000000 		.quad	.LBE4344
- 46857      00000000 
- 46858 fac2 02       		.byte	0x2
- 46859 fac3 1708     		.value	0x817
- 46860 fac5 06FB0000 		.long	0xfb06
- 46861 fac9 32       		.uleb128 0x32
- 46862 faca 52E90000 		.long	0xe952
- 46863 face 03       		.byte	0x3
- 46864 facf 91       		.byte	0x91
- 46865 fad0 907F     		.sleb128 -112
- 46866 fad2 32       		.uleb128 0x32
- 46867 fad3 46E90000 		.long	0xe946
- 46868 fad7 03       		.byte	0x3
- 46869 fad8 91       		.byte	0x91
- 46870 fad9 A07F     		.sleb128 -96
- 46871 fadb 35       		.uleb128 0x35
- 46872 fadc 860E0000 		.long	0xe86
- 46873 fae0 00000000 		.quad	.LBB4346
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1149
-
-
- 46873      00000000 
- 46874 fae8 00000000 		.quad	.LBE4346
- 46874      00000000 
- 46875 faf0 02       		.byte	0x2
- 46876 faf1 2302     		.value	0x223
- 46877 faf3 32       		.uleb128 0x32
- 46878 faf4 A10E0000 		.long	0xea1
- 46879 faf8 03       		.byte	0x3
- 46880 faf9 91       		.byte	0x91
- 46881 fafa B07F     		.sleb128 -80
- 46882 fafc 32       		.uleb128 0x32
- 46883 fafd 970E0000 		.long	0xe97
- 46884 fb01 02       		.byte	0x2
- 46885 fb02 91       		.byte	0x91
- 46886 fb03 40       		.sleb128 -64
- 46887 fb04 00       		.byte	0x0
- 46888 fb05 00       		.byte	0x0
- 46889 fb06 36       		.uleb128 0x36
- 46890 fb07 00000000 		.quad	.LBB4348
- 46890      00000000 
- 46891 fb0f 00000000 		.quad	.LBE4348
- 46891      00000000 
- 46892 fb17 25FB0000 		.long	0xfb25
- 46893 fb1b 34       		.uleb128 0x34
- 46894 fb1c 1FEB0000 		.long	0xeb1f
- 46895 fb20 03       		.byte	0x3
- 46896 fb21 91       		.byte	0x91
- 46897 fb22 E06D     		.sleb128 -2336
- 46898 fb24 00       		.byte	0x0
- 46899 fb25 33       		.uleb128 0x33
- 46900 fb26 00000000 		.quad	.LBB4349
- 46900      00000000 
- 46901 fb2e 00000000 		.quad	.LBE4349
- 46901      00000000 
- 46902 fb36 34       		.uleb128 0x34
- 46903 fb37 2BEB0000 		.long	0xeb2b
- 46904 fb3b 03       		.byte	0x3
- 46905 fb3c 91       		.byte	0x91
- 46906 fb3d D06D     		.sleb128 -2352
- 46907 fb3f 00       		.byte	0x0
- 46908 fb40 00       		.byte	0x0
- 46909 fb41 00       		.byte	0x0
- 46910 fb42 25       		.uleb128 0x25
- 46911 fb43 00000000 		.long	.LASF388
- 46912 fb47 02       		.byte	0x2
- 46913 fb48 5308     		.value	0x853
- 46914 fb4a 01       		.byte	0x1
- 46915 fb4b B3010000 		.long	0x1b3
- 46916 fb4f 03       		.byte	0x3
- 46917 fb50 99FB0000 		.long	0xfb99
- 46918 fb54 26       		.uleb128 0x26
- 46919 fb55 00000000 		.long	.LASF67
- 46920 fb59 02       		.byte	0x2
- 46921 fb5a 5308     		.value	0x853
- 46922 fb5c B3010000 		.long	0x1b3
- 46923 fb60 26       		.uleb128 0x26
- 46924 fb61 00000000 		.long	.LASF65
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1150
-
-
- 46925 fb65 02       		.byte	0x2
- 46926 fb66 5308     		.value	0x853
- 46927 fb68 B3010000 		.long	0x1b3
- 46928 fb6c 29       		.uleb128 0x29
- 46929 fb6d 7CFB0000 		.long	0xfb7c
- 46930 fb71 28       		.uleb128 0x28
- 46931 fb72 7600     		.string	"v"
- 46932 fb74 02       		.byte	0x2
- 46933 fb75 5508     		.value	0x855
- 46934 fb77 29050000 		.long	0x529
- 46935 fb7b 00       		.byte	0x0
- 46936 fb7c 29       		.uleb128 0x29
- 46937 fb7d 8CFB0000 		.long	0xfb8c
- 46938 fb81 28       		.uleb128 0x28
- 46939 fb82 7600     		.string	"v"
- 46940 fb84 02       		.byte	0x2
- 46941 fb85 5908     		.value	0x859
- 46942 fb87 29050000 		.long	0x529
- 46943 fb8b 00       		.byte	0x0
- 46944 fb8c 2A       		.uleb128 0x2a
- 46945 fb8d 28       		.uleb128 0x28
- 46946 fb8e 7600     		.string	"v"
- 46947 fb90 02       		.byte	0x2
- 46948 fb91 5A08     		.value	0x85a
- 46949 fb93 29050000 		.long	0x529
- 46950 fb97 00       		.byte	0x0
- 46951 fb98 00       		.byte	0x0
- 46952 fb99 25       		.uleb128 0x25
- 46953 fb9a 00000000 		.long	.LASF389
- 46954 fb9e 02       		.byte	0x2
- 46955 fb9f 7008     		.value	0x870
- 46956 fba1 01       		.byte	0x1
- 46957 fba2 B3010000 		.long	0x1b3
- 46958 fba6 03       		.byte	0x3
- 46959 fba7 38FC0000 		.long	0xfc38
- 46960 fbab 26       		.uleb128 0x26
- 46961 fbac 00000000 		.long	.LASF67
- 46962 fbb0 02       		.byte	0x2
- 46963 fbb1 7008     		.value	0x870
- 46964 fbb3 B3010000 		.long	0x1b3
- 46965 fbb7 26       		.uleb128 0x26
- 46966 fbb8 00000000 		.long	.LASF65
- 46967 fbbc 02       		.byte	0x2
- 46968 fbbd 7108     		.value	0x871
- 46969 fbbf B3010000 		.long	0x1b3
- 46970 fbc3 27       		.uleb128 0x27
- 46971 fbc4 00000000 		.long	.LASF380
- 46972 fbc8 02       		.byte	0x2
- 46973 fbc9 7408     		.value	0x874
- 46974 fbcb B3010000 		.long	0x1b3
- 46975 fbcf 27       		.uleb128 0x27
- 46976 fbd0 00000000 		.long	.LASF381
- 46977 fbd4 02       		.byte	0x2
- 46978 fbd5 7508     		.value	0x875
- 46979 fbd7 B3010000 		.long	0x1b3
- 46980 fbdb 29       		.uleb128 0x29
- 46981 fbdc EBFB0000 		.long	0xfbeb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1151
-
-
- 46982 fbe0 28       		.uleb128 0x28
- 46983 fbe1 7600     		.string	"v"
- 46984 fbe3 02       		.byte	0x2
- 46985 fbe4 7B08     		.value	0x87b
- 46986 fbe6 29050000 		.long	0x529
- 46987 fbea 00       		.byte	0x0
- 46988 fbeb 29       		.uleb128 0x29
- 46989 fbec FBFB0000 		.long	0xfbfb
- 46990 fbf0 28       		.uleb128 0x28
- 46991 fbf1 7600     		.string	"v"
- 46992 fbf3 02       		.byte	0x2
- 46993 fbf4 8E08     		.value	0x88e
- 46994 fbf6 29050000 		.long	0x529
- 46995 fbfa 00       		.byte	0x0
- 46996 fbfb 29       		.uleb128 0x29
- 46997 fbfc 0BFC0000 		.long	0xfc0b
- 46998 fc00 28       		.uleb128 0x28
- 46999 fc01 7600     		.string	"v"
- 47000 fc03 02       		.byte	0x2
- 47001 fc04 9608     		.value	0x896
- 47002 fc06 29050000 		.long	0x529
- 47003 fc0a 00       		.byte	0x0
- 47004 fc0b 29       		.uleb128 0x29
- 47005 fc0c 1BFC0000 		.long	0xfc1b
- 47006 fc10 28       		.uleb128 0x28
- 47007 fc11 7600     		.string	"v"
- 47008 fc13 02       		.byte	0x2
- 47009 fc14 9E08     		.value	0x89e
- 47010 fc16 29050000 		.long	0x529
- 47011 fc1a 00       		.byte	0x0
- 47012 fc1b 29       		.uleb128 0x29
- 47013 fc1c 2BFC0000 		.long	0xfc2b
- 47014 fc20 28       		.uleb128 0x28
- 47015 fc21 7600     		.string	"v"
- 47016 fc23 02       		.byte	0x2
- 47017 fc24 A708     		.value	0x8a7
- 47018 fc26 29050000 		.long	0x529
- 47019 fc2a 00       		.byte	0x0
- 47020 fc2b 2A       		.uleb128 0x2a
- 47021 fc2c 28       		.uleb128 0x28
- 47022 fc2d 7600     		.string	"v"
- 47023 fc2f 02       		.byte	0x2
- 47024 fc30 A908     		.value	0x8a9
- 47025 fc32 29050000 		.long	0x529
- 47026 fc36 00       		.byte	0x0
- 47027 fc37 00       		.byte	0x0
- 47028 fc38 25       		.uleb128 0x25
- 47029 fc39 00000000 		.long	.LASF390
- 47030 fc3d 02       		.byte	0x2
- 47031 fc3e 8603     		.value	0x386
- 47032 fc40 01       		.byte	0x1
- 47033 fc41 B3010000 		.long	0x1b3
- 47034 fc45 03       		.byte	0x3
- 47035 fc46 57FC0000 		.long	0xfc57
- 47036 fc4a 26       		.uleb128 0x26
- 47037 fc4b 00000000 		.long	.LASF67
- 47038 fc4f 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1152
-
-
- 47039 fc50 8603     		.value	0x386
- 47040 fc52 B3010000 		.long	0x1b3
- 47041 fc56 00       		.byte	0x0
- 47042 fc57 25       		.uleb128 0x25
- 47043 fc58 00000000 		.long	.LASF391
- 47044 fc5c 02       		.byte	0x2
- 47045 fc5d 5E02     		.value	0x25e
- 47046 fc5f 01       		.byte	0x1
- 47047 fc60 B3010000 		.long	0x1b3
- 47048 fc64 03       		.byte	0x3
- 47049 fc65 93FC0000 		.long	0xfc93
- 47050 fc69 26       		.uleb128 0x26
- 47051 fc6a 00000000 		.long	.LASF67
- 47052 fc6e 02       		.byte	0x2
- 47053 fc6f 5E02     		.value	0x25e
- 47054 fc71 B3010000 		.long	0x1b3
- 47055 fc75 2C       		.uleb128 0x2c
- 47056 fc76 00000000 		.long	.LASF392
- 47057 fc7a 02       		.byte	0x2
- 47058 fc7b 6002     		.value	0x260
- 47059 fc7d 93FC0000 		.long	0xfc93
- 47060 fc81 10       		.byte	0x10
- 47061 fc82 00       		.byte	0x0
- 47062 fc83 0D       		.byte	0xd
- 47063 fc84 0A       		.byte	0xa
- 47064 fc85 07       		.byte	0x7
- 47065 fc86 04       		.byte	0x4
- 47066 fc87 01       		.byte	0x1
- 47067 fc88 0E       		.byte	0xe
- 47068 fc89 0B       		.byte	0xb
- 47069 fc8a 08       		.byte	0x8
- 47070 fc8b 05       		.byte	0x5
- 47071 fc8c 02       		.byte	0x2
- 47072 fc8d 0F       		.byte	0xf
- 47073 fc8e 0C       		.byte	0xc
- 47074 fc8f 09       		.byte	0x9
- 47075 fc90 06       		.byte	0x6
- 47076 fc91 03       		.byte	0x3
- 47077 fc92 00       		.byte	0x0
- 47078 fc93 06       		.uleb128 0x6
- 47079 fc94 62040000 		.long	0x462
- 47080 fc98 25       		.uleb128 0x25
- 47081 fc99 00000000 		.long	.LASF393
- 47082 fc9d 02       		.byte	0x2
- 47083 fc9e BA08     		.value	0x8ba
- 47084 fca0 01       		.byte	0x1
- 47085 fca1 B3010000 		.long	0x1b3
- 47086 fca5 03       		.byte	0x3
- 47087 fca6 0FFD0000 		.long	0xfd0f
- 47088 fcaa 26       		.uleb128 0x26
- 47089 fcab 00000000 		.long	.LASF67
- 47090 fcaf 02       		.byte	0x2
- 47091 fcb0 BA08     		.value	0x8ba
- 47092 fcb2 B3010000 		.long	0x1b3
- 47093 fcb6 26       		.uleb128 0x26
- 47094 fcb7 00000000 		.long	.LASF65
- 47095 fcbb 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1153
-
-
- 47096 fcbc BB08     		.value	0x8bb
- 47097 fcbe B3010000 		.long	0x1b3
- 47098 fcc2 29       		.uleb128 0x29
- 47099 fcc3 D2FC0000 		.long	0xfcd2
- 47100 fcc7 28       		.uleb128 0x28
- 47101 fcc8 7600     		.string	"v"
- 47102 fcca 02       		.byte	0x2
- 47103 fccb BD08     		.value	0x8bd
- 47104 fccd 29050000 		.long	0x529
- 47105 fcd1 00       		.byte	0x0
- 47106 fcd2 29       		.uleb128 0x29
- 47107 fcd3 E2FC0000 		.long	0xfce2
- 47108 fcd7 28       		.uleb128 0x28
- 47109 fcd8 7600     		.string	"v"
- 47110 fcda 02       		.byte	0x2
- 47111 fcdb C508     		.value	0x8c5
- 47112 fcdd 29050000 		.long	0x529
- 47113 fce1 00       		.byte	0x0
- 47114 fce2 29       		.uleb128 0x29
- 47115 fce3 F2FC0000 		.long	0xfcf2
- 47116 fce7 28       		.uleb128 0x28
- 47117 fce8 7600     		.string	"v"
- 47118 fcea 02       		.byte	0x2
- 47119 fceb C908     		.value	0x8c9
- 47120 fced 29050000 		.long	0x529
- 47121 fcf1 00       		.byte	0x0
- 47122 fcf2 29       		.uleb128 0x29
- 47123 fcf3 02FD0000 		.long	0xfd02
- 47124 fcf7 28       		.uleb128 0x28
- 47125 fcf8 7600     		.string	"v"
- 47126 fcfa 02       		.byte	0x2
- 47127 fcfb CD08     		.value	0x8cd
- 47128 fcfd 29050000 		.long	0x529
- 47129 fd01 00       		.byte	0x0
- 47130 fd02 2A       		.uleb128 0x2a
- 47131 fd03 28       		.uleb128 0x28
- 47132 fd04 7600     		.string	"v"
- 47133 fd06 02       		.byte	0x2
- 47134 fd07 CE08     		.value	0x8ce
- 47135 fd09 29050000 		.long	0x529
- 47136 fd0d 00       		.byte	0x0
- 47137 fd0e 00       		.byte	0x0
- 47138 fd0f 39       		.uleb128 0x39
- 47139 fd10 00000000 		.long	.LASF394
- 47140 fd14 02       		.byte	0x2
- 47141 fd15 DD08     		.value	0x8dd
- 47142 fd17 01       		.byte	0x1
- 47143 fd18 B3010000 		.long	0x1b3
- 47144 fd1c 00000000 		.quad	.LFB659
- 47144      00000000 
- 47145 fd24 00000000 		.quad	.LFE659
- 47145      00000000 
- 47146 fd2c 00000000 		.long	.LLST9
- 47147 fd30 E8120100 		.long	0x112e8
- 47148 fd34 2E       		.uleb128 0x2e
- 47149 fd35 00000000 		.long	.LASF67
- 47150 fd39 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1154
-
-
- 47151 fd3a DD08     		.value	0x8dd
- 47152 fd3c B3010000 		.long	0x1b3
- 47153 fd40 03       		.byte	0x3
- 47154 fd41 91       		.byte	0x91
- 47155 fd42 D064     		.sleb128 -3504
- 47156 fd44 2F       		.uleb128 0x2f
- 47157 fd45 6B657900 		.string	"key"
- 47158 fd49 02       		.byte	0x2
- 47159 fd4a DD08     		.value	0x8dd
- 47160 fd4c 440D0000 		.long	0xd44
- 47161 fd50 03       		.byte	0x3
- 47162 fd51 91       		.byte	0x91
- 47163 fd52 C864     		.sleb128 -3512
- 47164 fd54 2F       		.uleb128 0x2f
- 47165 fd55 4E7200   		.string	"Nr"
- 47166 fd58 02       		.byte	0x2
- 47167 fd59 DE08     		.value	0x8de
- 47168 fd5b 78000000 		.long	0x78
- 47169 fd5f 03       		.byte	0x3
- 47170 fd60 91       		.byte	0x91
- 47171 fd61 C464     		.sleb128 -3516
- 47172 fd63 37       		.uleb128 0x37
- 47173 fd64 697800   		.string	"ix"
- 47174 fd67 02       		.byte	0x2
- 47175 fd68 E008     		.value	0x8e0
- 47176 fd6a 78000000 		.long	0x78
- 47177 fd6e 03       		.byte	0x3
- 47178 fd6f 91       		.byte	0x91
- 47179 fd70 DC67     		.sleb128 -3108
- 47180 fd72 31       		.uleb128 0x31
- 47181 fd73 42FB0000 		.long	0xfb42
- 47182 fd77 00000000 		.quad	.LBB4551
- 47182      00000000 
- 47183 fd7f 00000000 		.quad	.LBE4551
- 47183      00000000 
- 47184 fd87 02       		.byte	0x2
- 47185 fd88 E208     		.value	0x8e2
- 47186 fd8a 54FE0000 		.long	0xfe54
- 47187 fd8e 32       		.uleb128 0x32
- 47188 fd8f 60FB0000 		.long	0xfb60
- 47189 fd93 03       		.byte	0x3
- 47190 fd94 91       		.byte	0x91
- 47191 fd95 E067     		.sleb128 -3104
- 47192 fd97 32       		.uleb128 0x32
- 47193 fd98 54FB0000 		.long	0xfb54
- 47194 fd9c 03       		.byte	0x3
- 47195 fd9d 91       		.byte	0x91
- 47196 fd9e F067     		.sleb128 -3088
- 47197 fda0 36       		.uleb128 0x36
- 47198 fda1 00000000 		.quad	.LBB4553
- 47198      00000000 
- 47199 fda9 00000000 		.quad	.LBE4553
- 47199      00000000 
- 47200 fdb1 BFFD0000 		.long	0xfdbf
- 47201 fdb5 34       		.uleb128 0x34
- 47202 fdb6 71FB0000 		.long	0xfb71
- 47203 fdba 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1155
-
-
- 47204 fdbb 91       		.byte	0x91
- 47205 fdbc 8065     		.sleb128 -3456
- 47206 fdbe 00       		.byte	0x0
- 47207 fdbf 31       		.uleb128 0x31
- 47208 fdc0 34E90000 		.long	0xe934
- 47209 fdc4 00000000 		.quad	.LBB4554
- 47209      00000000 
- 47210 fdcc 00000000 		.quad	.LBE4554
- 47210      00000000 
- 47211 fdd4 02       		.byte	0x2
- 47212 fdd5 5708     		.value	0x857
- 47213 fdd7 19FE0000 		.long	0xfe19
- 47214 fddb 32       		.uleb128 0x32
- 47215 fddc 52E90000 		.long	0xe952
- 47216 fde0 03       		.byte	0x3
- 47217 fde1 91       		.byte	0x91
- 47218 fde2 8068     		.sleb128 -3072
- 47219 fde4 32       		.uleb128 0x32
- 47220 fde5 46E90000 		.long	0xe946
- 47221 fde9 03       		.byte	0x3
- 47222 fdea 91       		.byte	0x91
- 47223 fdeb 9068     		.sleb128 -3056
- 47224 fded 35       		.uleb128 0x35
- 47225 fdee 860E0000 		.long	0xe86
- 47226 fdf2 00000000 		.quad	.LBB4556
- 47226      00000000 
- 47227 fdfa 00000000 		.quad	.LBE4556
- 47227      00000000 
- 47228 fe02 02       		.byte	0x2
- 47229 fe03 2302     		.value	0x223
- 47230 fe05 32       		.uleb128 0x32
- 47231 fe06 A10E0000 		.long	0xea1
- 47232 fe0a 03       		.byte	0x3
- 47233 fe0b 91       		.byte	0x91
- 47234 fe0c A068     		.sleb128 -3040
- 47235 fe0e 32       		.uleb128 0x32
- 47236 fe0f 970E0000 		.long	0xe97
- 47237 fe13 03       		.byte	0x3
- 47238 fe14 91       		.byte	0x91
- 47239 fe15 B068     		.sleb128 -3024
- 47240 fe17 00       		.byte	0x0
- 47241 fe18 00       		.byte	0x0
- 47242 fe19 36       		.uleb128 0x36
- 47243 fe1a 00000000 		.quad	.LBB4558
- 47243      00000000 
- 47244 fe22 00000000 		.quad	.LBE4558
- 47244      00000000 
- 47245 fe2a 38FE0000 		.long	0xfe38
- 47246 fe2e 34       		.uleb128 0x34
- 47247 fe2f 81FB0000 		.long	0xfb81
- 47248 fe33 03       		.byte	0x3
- 47249 fe34 91       		.byte	0x91
- 47250 fe35 F064     		.sleb128 -3472
- 47251 fe37 00       		.byte	0x0
- 47252 fe38 33       		.uleb128 0x33
- 47253 fe39 00000000 		.quad	.LBB4559
- 47253      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1156
-
-
- 47254 fe41 00000000 		.quad	.LBE4559
- 47254      00000000 
- 47255 fe49 34       		.uleb128 0x34
- 47256 fe4a 8DFB0000 		.long	0xfb8d
- 47257 fe4e 03       		.byte	0x3
- 47258 fe4f 91       		.byte	0x91
- 47259 fe50 E064     		.sleb128 -3488
- 47260 fe52 00       		.byte	0x0
- 47261 fe53 00       		.byte	0x0
- 47262 fe54 31       		.uleb128 0x31
- 47263 fe55 99FB0000 		.long	0xfb99
- 47264 fe59 00000000 		.quad	.LBB4560
- 47264      00000000 
- 47265 fe61 00000000 		.quad	.LBE4560
- 47265      00000000 
- 47266 fe69 02       		.byte	0x2
- 47267 fe6a E508     		.value	0x8e5
- 47268 fe6c A60E0100 		.long	0x10ea6
- 47269 fe70 32       		.uleb128 0x32
- 47270 fe71 B7FB0000 		.long	0xfbb7
- 47271 fe75 03       		.byte	0x3
- 47272 fe76 91       		.byte	0x91
- 47273 fe77 C068     		.sleb128 -3008
- 47274 fe79 32       		.uleb128 0x32
- 47275 fe7a ABFB0000 		.long	0xfbab
- 47276 fe7e 03       		.byte	0x3
- 47277 fe7f 91       		.byte	0x91
- 47278 fe80 D068     		.sleb128 -2992
- 47279 fe82 33       		.uleb128 0x33
- 47280 fe83 00000000 		.quad	.LBB4561
- 47280      00000000 
- 47281 fe8b 00000000 		.quad	.LBE4561
- 47281      00000000 
- 47282 fe93 34       		.uleb128 0x34
- 47283 fe94 C3FB0000 		.long	0xfbc3
- 47284 fe98 03       		.byte	0x3
- 47285 fe99 91       		.byte	0x91
- 47286 fe9a F068     		.sleb128 -2960
- 47287 fe9c 34       		.uleb128 0x34
- 47288 fe9d CFFB0000 		.long	0xfbcf
- 47289 fea1 03       		.byte	0x3
- 47290 fea2 91       		.byte	0x91
- 47291 fea3 E068     		.sleb128 -2976
- 47292 fea5 36       		.uleb128 0x36
- 47293 fea6 00000000 		.quad	.LBB4562
- 47293      00000000 
- 47294 feae 00000000 		.quad	.LBE4562
- 47294      00000000 
- 47295 feb6 C4FE0000 		.long	0xfec4
- 47296 feba 34       		.uleb128 0x34
- 47297 febb E0FB0000 		.long	0xfbe0
- 47298 febf 03       		.byte	0x3
- 47299 fec0 91       		.byte	0x91
- 47300 fec1 E065     		.sleb128 -3360
- 47301 fec3 00       		.byte	0x0
- 47302 fec4 31       		.uleb128 0x31
- 47303 fec5 38FC0000 		.long	0xfc38
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1157
-
-
- 47304 fec9 00000000 		.quad	.LBB4563
- 47304      00000000 
- 47305 fed1 00000000 		.quad	.LBE4563
- 47305      00000000 
- 47306 fed9 02       		.byte	0x2
- 47307 feda 8908     		.value	0x889
- 47308 fedc 4D010100 		.long	0x1014d
- 47309 fee0 32       		.uleb128 0x32
- 47310 fee1 4AFC0000 		.long	0xfc4a
- 47311 fee5 03       		.byte	0x3
- 47312 fee6 91       		.byte	0x91
- 47313 fee7 8069     		.sleb128 -2944
- 47314 fee9 35       		.uleb128 0x35
- 47315 feea E00C0000 		.long	0xce0
- 47316 feee 00000000 		.quad	.LBB4565
- 47316      00000000 
- 47317 fef6 00000000 		.quad	.LBE4565
- 47317      00000000 
- 47318 fefe 02       		.byte	0x2
- 47319 feff 8803     		.value	0x388
- 47320 ff01 32       		.uleb128 0x32
- 47321 ff02 FE0C0000 		.long	0xcfe
- 47322 ff06 03       		.byte	0x3
- 47323 ff07 91       		.byte	0x91
- 47324 ff08 9869     		.sleb128 -2920
- 47325 ff0a 32       		.uleb128 0x32
- 47326 ff0b F20C0000 		.long	0xcf2
- 47327 ff0f 03       		.byte	0x3
- 47328 ff10 91       		.byte	0x91
- 47329 ff11 A069     		.sleb128 -2912
- 47330 ff13 33       		.uleb128 0x33
- 47331 ff14 00000000 		.quad	.LBB4566
- 47331      00000000 
- 47332 ff1c 00000000 		.quad	.LBE4566
- 47332      00000000 
- 47333 ff24 34       		.uleb128 0x34
- 47334 ff25 0A0D0000 		.long	0xd0a
- 47335 ff29 03       		.byte	0x3
- 47336 ff2a 91       		.byte	0x91
- 47337 ff2b F069     		.sleb128 -2832
- 47338 ff2d 34       		.uleb128 0x34
- 47339 ff2e 150D0000 		.long	0xd15
- 47340 ff32 03       		.byte	0x3
- 47341 ff33 91       		.byte	0x91
- 47342 ff34 E069     		.sleb128 -2848
- 47343 ff36 34       		.uleb128 0x34
- 47344 ff37 200D0000 		.long	0xd20
- 47345 ff3b 03       		.byte	0x3
- 47346 ff3c 91       		.byte	0x91
- 47347 ff3d D069     		.sleb128 -2864
- 47348 ff3f 34       		.uleb128 0x34
- 47349 ff40 2C0D0000 		.long	0xd2c
- 47350 ff44 03       		.byte	0x3
- 47351 ff45 91       		.byte	0x91
- 47352 ff46 C069     		.sleb128 -2880
- 47353 ff48 34       		.uleb128 0x34
- 47354 ff49 380D0000 		.long	0xd38
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1158
-
-
- 47355 ff4d 03       		.byte	0x3
- 47356 ff4e 91       		.byte	0x91
- 47357 ff4f BC69     		.sleb128 -2884
- 47358 ff51 31       		.uleb128 0x31
- 47359 ff52 4F0D0000 		.long	0xd4f
- 47360 ff56 00000000 		.quad	.LBB4567
- 47360      00000000 
- 47361 ff5e 00000000 		.quad	.LBE4567
- 47361      00000000 
- 47362 ff66 02       		.byte	0x2
- 47363 ff67 5603     		.value	0x356
- 47364 ff69 80FF0000 		.long	0xff80
- 47365 ff6d 32       		.uleb128 0x32
- 47366 ff6e 6A0D0000 		.long	0xd6a
- 47367 ff72 03       		.byte	0x3
- 47368 ff73 91       		.byte	0x91
- 47369 ff74 806A     		.sleb128 -2816
- 47370 ff76 32       		.uleb128 0x32
- 47371 ff77 600D0000 		.long	0xd60
- 47372 ff7b 03       		.byte	0x3
- 47373 ff7c 91       		.byte	0x91
- 47374 ff7d 906A     		.sleb128 -2800
- 47375 ff7f 00       		.byte	0x0
- 47376 ff80 31       		.uleb128 0x31
- 47377 ff81 750D0000 		.long	0xd75
- 47378 ff85 00000000 		.quad	.LBB4569
- 47378      00000000 
- 47379 ff8d 00000000 		.quad	.LBE4569
- 47379      00000000 
- 47380 ff95 02       		.byte	0x2
- 47381 ff96 5903     		.value	0x359
- 47382 ff98 AFFF0000 		.long	0xffaf
- 47383 ff9c 32       		.uleb128 0x32
- 47384 ff9d 930D0000 		.long	0xd93
- 47385 ffa1 03       		.byte	0x3
- 47386 ffa2 91       		.byte	0x91
- 47387 ffa3 AC6A     		.sleb128 -2772
- 47388 ffa5 32       		.uleb128 0x32
- 47389 ffa6 870D0000 		.long	0xd87
- 47390 ffaa 03       		.byte	0x3
- 47391 ffab 91       		.byte	0x91
- 47392 ffac B06A     		.sleb128 -2768
- 47393 ffae 00       		.byte	0x0
- 47394 ffaf 31       		.uleb128 0x31
- 47395 ffb0 4F0D0000 		.long	0xd4f
- 47396 ffb4 00000000 		.quad	.LBB4571
- 47396      00000000 
- 47397 ffbc 00000000 		.quad	.LBE4571
- 47397      00000000 
- 47398 ffc4 02       		.byte	0x2
- 47399 ffc5 5B03     		.value	0x35b
- 47400 ffc7 DEFF0000 		.long	0xffde
- 47401 ffcb 32       		.uleb128 0x32
- 47402 ffcc 6A0D0000 		.long	0xd6a
- 47403 ffd0 03       		.byte	0x3
- 47404 ffd1 91       		.byte	0x91
- 47405 ffd2 C06A     		.sleb128 -2752
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1159
-
-
- 47406 ffd4 32       		.uleb128 0x32
- 47407 ffd5 600D0000 		.long	0xd60
- 47408 ffd9 03       		.byte	0x3
- 47409 ffda 91       		.byte	0x91
- 47410 ffdb D06A     		.sleb128 -2736
- 47411 ffdd 00       		.byte	0x0
- 47412 ffde 31       		.uleb128 0x31
- 47413 ffdf A00D0000 		.long	0xda0
- 47414 ffe3 00000000 		.quad	.LBB4573
- 47414      00000000 
- 47415 ffeb 00000000 		.quad	.LBE4573
- 47415      00000000 
- 47416 fff3 02       		.byte	0x2
- 47417 fff4 6403     		.value	0x364
- 47418 fff6 38000100 		.long	0x10038
- 47419 fffa 32       		.uleb128 0x32
- 47420 fffb BE0D0000 		.long	0xdbe
- 47421 ffff 03       		.byte	0x3
- 47422 10000 91       		.byte	0x91
- 47423 10001 E06A     		.sleb128 -2720
- 47424 10003 32       		.uleb128 0x32
- 47425 10004 B20D0000 		.long	0xdb2
- 47426 10008 03       		.byte	0x3
- 47427 10009 91       		.byte	0x91
- 47428 1000a F06A     		.sleb128 -2704
- 47429 1000c 35       		.uleb128 0x35
- 47430 1000d CB0D0000 		.long	0xdcb
- 47431 10011 00000000 		.quad	.LBB4575
- 47431      00000000 
- 47432 10019 00000000 		.quad	.LBE4575
- 47432      00000000 
- 47433 10021 02       		.byte	0x2
- 47434 10022 7501     		.value	0x175
- 47435 10024 32       		.uleb128 0x32
- 47436 10025 E90D0000 		.long	0xde9
- 47437 10029 03       		.byte	0x3
- 47438 1002a 91       		.byte	0x91
- 47439 1002b 806B     		.sleb128 -2688
- 47440 1002d 32       		.uleb128 0x32
- 47441 1002e DD0D0000 		.long	0xddd
- 47442 10032 03       		.byte	0x3
- 47443 10033 91       		.byte	0x91
- 47444 10034 906B     		.sleb128 -2672
- 47445 10036 00       		.byte	0x0
- 47446 10037 00       		.byte	0x0
- 47447 10038 31       		.uleb128 0x31
- 47448 10039 FB0D0000 		.long	0xdfb
- 47449 1003d 00000000 		.quad	.LBB4577
- 47449      00000000 
- 47450 10045 00000000 		.quad	.LBE4577
- 47450      00000000 
- 47451 1004d 02       		.byte	0x2
- 47452 1004e 6603     		.value	0x366
- 47453 10050 67000100 		.long	0x10067
- 47454 10054 32       		.uleb128 0x32
- 47455 10055 160E0000 		.long	0xe16
- 47456 10059 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1160
-
-
- 47457 1005a 91       		.byte	0x91
- 47458 1005b A06B     		.sleb128 -2656
- 47459 1005d 32       		.uleb128 0x32
- 47460 1005e 0C0E0000 		.long	0xe0c
- 47461 10062 03       		.byte	0x3
- 47462 10063 91       		.byte	0x91
- 47463 10064 B06B     		.sleb128 -2640
- 47464 10066 00       		.byte	0x0
- 47465 10067 31       		.uleb128 0x31
- 47466 10068 A00D0000 		.long	0xda0
- 47467 1006c 00000000 		.quad	.LBB4579
- 47467      00000000 
- 47468 10074 00000000 		.quad	.LBE4579
- 47468      00000000 
- 47469 1007c 02       		.byte	0x2
- 47470 1007d 6803     		.value	0x368
- 47471 1007f C1000100 		.long	0x100c1
- 47472 10083 32       		.uleb128 0x32
- 47473 10084 BE0D0000 		.long	0xdbe
- 47474 10088 03       		.byte	0x3
- 47475 10089 91       		.byte	0x91
- 47476 1008a C06B     		.sleb128 -2624
- 47477 1008c 32       		.uleb128 0x32
- 47478 1008d B20D0000 		.long	0xdb2
- 47479 10091 03       		.byte	0x3
- 47480 10092 91       		.byte	0x91
- 47481 10093 D06B     		.sleb128 -2608
- 47482 10095 35       		.uleb128 0x35
- 47483 10096 CB0D0000 		.long	0xdcb
- 47484 1009a 00000000 		.quad	.LBB4581
- 47484      00000000 
- 47485 100a2 00000000 		.quad	.LBE4581
- 47485      00000000 
- 47486 100aa 02       		.byte	0x2
- 47487 100ab 7501     		.value	0x175
- 47488 100ad 32       		.uleb128 0x32
- 47489 100ae E90D0000 		.long	0xde9
- 47490 100b2 03       		.byte	0x3
- 47491 100b3 91       		.byte	0x91
- 47492 100b4 E06B     		.sleb128 -2592
- 47493 100b6 32       		.uleb128 0x32
- 47494 100b7 DD0D0000 		.long	0xddd
- 47495 100bb 03       		.byte	0x3
- 47496 100bc 91       		.byte	0x91
- 47497 100bd F06B     		.sleb128 -2576
- 47498 100bf 00       		.byte	0x0
- 47499 100c0 00       		.byte	0x0
- 47500 100c1 31       		.uleb128 0x31
- 47501 100c2 FB0D0000 		.long	0xdfb
- 47502 100c6 00000000 		.quad	.LBB4583
- 47502      00000000 
- 47503 100ce 00000000 		.quad	.LBE4583
- 47503      00000000 
- 47504 100d6 02       		.byte	0x2
- 47505 100d7 6A03     		.value	0x36a
- 47506 100d9 F0000100 		.long	0x100f0
- 47507 100dd 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1161
-
-
- 47508 100de 160E0000 		.long	0xe16
- 47509 100e2 03       		.byte	0x3
- 47510 100e3 91       		.byte	0x91
- 47511 100e4 806C     		.sleb128 -2560
- 47512 100e6 32       		.uleb128 0x32
- 47513 100e7 0C0E0000 		.long	0xe0c
- 47514 100eb 03       		.byte	0x3
- 47515 100ec 91       		.byte	0x91
- 47516 100ed 906C     		.sleb128 -2544
- 47517 100ef 00       		.byte	0x0
- 47518 100f0 31       		.uleb128 0x31
- 47519 100f1 210E0000 		.long	0xe21
- 47520 100f5 00000000 		.quad	.LBB4585
- 47520      00000000 
- 47521 100fd 00000000 		.quad	.LBE4585
- 47521      00000000 
- 47522 10105 02       		.byte	0x2
- 47523 10106 6C03     		.value	0x36c
- 47524 10108 1F010100 		.long	0x1011f
- 47525 1010c 32       		.uleb128 0x32
- 47526 1010d 3E0E0000 		.long	0xe3e
- 47527 10111 03       		.byte	0x3
- 47528 10112 91       		.byte	0x91
- 47529 10113 A06C     		.sleb128 -2528
- 47530 10115 32       		.uleb128 0x32
- 47531 10116 330E0000 		.long	0xe33
- 47532 1011a 03       		.byte	0x3
- 47533 1011b 91       		.byte	0x91
- 47534 1011c B06C     		.sleb128 -2512
- 47535 1011e 00       		.byte	0x0
- 47536 1011f 35       		.uleb128 0x35
- 47537 10120 4F0D0000 		.long	0xd4f
- 47538 10124 00000000 		.quad	.LBB4587
- 47538      00000000 
- 47539 1012c 00000000 		.quad	.LBE4587
- 47539      00000000 
- 47540 10134 02       		.byte	0x2
- 47541 10135 6E03     		.value	0x36e
- 47542 10137 32       		.uleb128 0x32
- 47543 10138 6A0D0000 		.long	0xd6a
- 47544 1013c 03       		.byte	0x3
- 47545 1013d 91       		.byte	0x91
- 47546 1013e C06C     		.sleb128 -2496
- 47547 10140 32       		.uleb128 0x32
- 47548 10141 600D0000 		.long	0xd60
- 47549 10145 03       		.byte	0x3
- 47550 10146 91       		.byte	0x91
- 47551 10147 D06C     		.sleb128 -2480
- 47552 10149 00       		.byte	0x0
- 47553 1014a 00       		.byte	0x0
- 47554 1014b 00       		.byte	0x0
- 47555 1014c 00       		.byte	0x0
- 47556 1014d 36       		.uleb128 0x36
- 47557 1014e 00000000 		.quad	.LBB4589
- 47557      00000000 
- 47558 10156 00000000 		.quad	.LBE4589
- 47558      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1162
-
-
- 47559 1015e 6C010100 		.long	0x1016c
- 47560 10162 34       		.uleb128 0x34
- 47561 10163 F0FB0000 		.long	0xfbf0
- 47562 10167 03       		.byte	0x3
- 47563 10168 91       		.byte	0x91
- 47564 10169 D065     		.sleb128 -3376
- 47565 1016b 00       		.byte	0x0
- 47566 1016c 31       		.uleb128 0x31
- 47567 1016d 57FC0000 		.long	0xfc57
- 47568 10171 00000000 		.quad	.LBB4590
- 47568      00000000 
- 47569 10179 00000000 		.quad	.LBE4590
- 47569      00000000 
- 47570 10181 02       		.byte	0x2
- 47571 10182 9108     		.value	0x891
- 47572 10184 09020100 		.long	0x10209
- 47573 10188 32       		.uleb128 0x32
- 47574 10189 69FC0000 		.long	0xfc69
- 47575 1018d 03       		.byte	0x3
- 47576 1018e 91       		.byte	0x91
- 47577 1018f E06C     		.sleb128 -2464
- 47578 10191 33       		.uleb128 0x33
- 47579 10192 00000000 		.quad	.LBB4591
- 47579      00000000 
- 47580 1019a 00000000 		.quad	.LBE4591
- 47580      00000000 
- 47581 101a2 34       		.uleb128 0x34
- 47582 101a3 75FC0000 		.long	0xfc75
- 47583 101a7 09       		.byte	0x9
- 47584 101a8 03       		.byte	0x3
- 47585 101a9 00000000 		.quad	InvShiftRowTable.7367
- 47585      00000000 
- 47586 101b1 35       		.uleb128 0x35
- 47587 101b2 A00D0000 		.long	0xda0
- 47588 101b6 00000000 		.quad	.LBB4592
- 47588      00000000 
- 47589 101be 00000000 		.quad	.LBE4592
- 47589      00000000 
- 47590 101c6 02       		.byte	0x2
- 47591 101c7 6402     		.value	0x264
- 47592 101c9 32       		.uleb128 0x32
- 47593 101ca BE0D0000 		.long	0xdbe
- 47594 101ce 03       		.byte	0x3
- 47595 101cf 91       		.byte	0x91
- 47596 101d0 F06C     		.sleb128 -2448
- 47597 101d2 32       		.uleb128 0x32
- 47598 101d3 B20D0000 		.long	0xdb2
- 47599 101d7 03       		.byte	0x3
- 47600 101d8 91       		.byte	0x91
- 47601 101d9 806D     		.sleb128 -2432
- 47602 101db 35       		.uleb128 0x35
- 47603 101dc CB0D0000 		.long	0xdcb
- 47604 101e0 00000000 		.quad	.LBB4594
- 47604      00000000 
- 47605 101e8 00000000 		.quad	.LBE4594
- 47605      00000000 
- 47606 101f0 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1163
-
-
- 47607 101f1 7501     		.value	0x175
- 47608 101f3 32       		.uleb128 0x32
- 47609 101f4 E90D0000 		.long	0xde9
- 47610 101f8 03       		.byte	0x3
- 47611 101f9 91       		.byte	0x91
- 47612 101fa 906D     		.sleb128 -2416
- 47613 101fc 32       		.uleb128 0x32
- 47614 101fd DD0D0000 		.long	0xddd
- 47615 10201 03       		.byte	0x3
- 47616 10202 91       		.byte	0x91
- 47617 10203 A06D     		.sleb128 -2400
- 47618 10205 00       		.byte	0x0
- 47619 10206 00       		.byte	0x0
- 47620 10207 00       		.byte	0x0
- 47621 10208 00       		.byte	0x0
- 47622 10209 36       		.uleb128 0x36
- 47623 1020a 00000000 		.quad	.LBB4596
- 47623      00000000 
- 47624 10212 00000000 		.quad	.LBE4596
- 47624      00000000 
- 47625 1021a 28020100 		.long	0x10228
- 47626 1021e 34       		.uleb128 0x34
- 47627 1021f 00FC0000 		.long	0xfc00
- 47628 10223 03       		.byte	0x3
- 47629 10224 91       		.byte	0x91
- 47630 10225 C065     		.sleb128 -3392
- 47631 10227 00       		.byte	0x0
- 47632 10228 31       		.uleb128 0x31
- 47633 10229 0AD90000 		.long	0xd90a
- 47634 1022d 00000000 		.quad	.LBB4597
- 47634      00000000 
- 47635 10235 00000000 		.quad	.LBE4597
- 47635      00000000 
- 47636 1023d 02       		.byte	0x2
- 47637 1023e 9908     		.value	0x899
- 47638 10240 F10D0100 		.long	0x10df1
- 47639 10244 32       		.uleb128 0x32
- 47640 10245 1CD90000 		.long	0xd91c
- 47641 10249 03       		.byte	0x3
- 47642 1024a 91       		.byte	0x91
- 47643 1024b B06D     		.sleb128 -2384
- 47644 1024d 33       		.uleb128 0x33
- 47645 1024e 00000000 		.quad	.LBB4598
- 47645      00000000 
- 47646 10256 00000000 		.quad	.LBE4598
- 47646      00000000 
- 47647 1025e 34       		.uleb128 0x34
- 47648 1025f 28D90000 		.long	0xd928
- 47649 10263 03       		.byte	0x3
- 47650 10264 76       		.byte	0x76
- 47651 10265 C064     		.sleb128 -3520
- 47652 10267 34       		.uleb128 0x34
- 47653 10268 33D90000 		.long	0xd933
- 47654 1026c 03       		.byte	0x3
- 47655 1026d 76       		.byte	0x76
- 47656 1026e B064     		.sleb128 -3536
- 47657 10270 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1164
-
-
- 47658 10271 3ED90000 		.long	0xd93e
- 47659 10275 03       		.byte	0x3
- 47660 10276 76       		.byte	0x76
- 47661 10277 A064     		.sleb128 -3552
- 47662 10279 34       		.uleb128 0x34
- 47663 1027a 49D90000 		.long	0xd949
- 47664 1027e 03       		.byte	0x3
- 47665 1027f 76       		.byte	0x76
- 47666 10280 9064     		.sleb128 -3568
- 47667 10282 34       		.uleb128 0x34
- 47668 10283 54D90000 		.long	0xd954
- 47669 10287 03       		.byte	0x3
- 47670 10288 76       		.byte	0x76
- 47671 10289 8064     		.sleb128 -3584
- 47672 1028b 34       		.uleb128 0x34
- 47673 1028c 5FD90000 		.long	0xd95f
- 47674 10290 03       		.byte	0x3
- 47675 10291 76       		.byte	0x76
- 47676 10292 F063     		.sleb128 -3600
- 47677 10294 31       		.uleb128 0x31
- 47678 10295 4A0E0000 		.long	0xe4a
- 47679 10299 00000000 		.quad	.LBB4599
- 47679      00000000 
- 47680 102a1 00000000 		.quad	.LBE4599
- 47680      00000000 
- 47681 102a9 02       		.byte	0x2
- 47682 102aa 5204     		.value	0x452
- 47683 102ac 31030100 		.long	0x10331
- 47684 102b0 32       		.uleb128 0x32
- 47685 102b1 5C0E0000 		.long	0xe5c
- 47686 102b5 03       		.byte	0x3
- 47687 102b6 91       		.byte	0x91
- 47688 102b7 C06D     		.sleb128 -2368
- 47689 102b9 33       		.uleb128 0x33
- 47690 102ba 00000000 		.quad	.LBB4600
- 47690      00000000 
- 47691 102c2 00000000 		.quad	.LBE4600
- 47691      00000000 
- 47692 102ca 34       		.uleb128 0x34
- 47693 102cb 680E0000 		.long	0xe68
- 47694 102cf 09       		.byte	0x9
- 47695 102d0 03       		.byte	0x3
- 47696 102d1 00000000 		.quad	ShiftRowTable.7385
- 47696      00000000 
- 47697 102d9 35       		.uleb128 0x35
- 47698 102da A00D0000 		.long	0xda0
- 47699 102de 00000000 		.quad	.LBB4601
- 47699      00000000 
- 47700 102e6 00000000 		.quad	.LBE4601
- 47700      00000000 
- 47701 102ee 02       		.byte	0x2
- 47702 102ef 9B02     		.value	0x29b
- 47703 102f1 32       		.uleb128 0x32
- 47704 102f2 BE0D0000 		.long	0xdbe
- 47705 102f6 03       		.byte	0x3
- 47706 102f7 91       		.byte	0x91
- 47707 102f8 D06D     		.sleb128 -2352
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1165
-
-
- 47708 102fa 32       		.uleb128 0x32
- 47709 102fb B20D0000 		.long	0xdb2
- 47710 102ff 03       		.byte	0x3
- 47711 10300 91       		.byte	0x91
- 47712 10301 E06D     		.sleb128 -2336
- 47713 10303 35       		.uleb128 0x35
- 47714 10304 CB0D0000 		.long	0xdcb
- 47715 10308 00000000 		.quad	.LBB4603
- 47715      00000000 
- 47716 10310 00000000 		.quad	.LBE4603
- 47716      00000000 
- 47717 10318 02       		.byte	0x2
- 47718 10319 7501     		.value	0x175
- 47719 1031b 32       		.uleb128 0x32
- 47720 1031c E90D0000 		.long	0xde9
- 47721 10320 03       		.byte	0x3
- 47722 10321 91       		.byte	0x91
- 47723 10322 F06D     		.sleb128 -2320
- 47724 10324 32       		.uleb128 0x32
- 47725 10325 DD0D0000 		.long	0xddd
- 47726 10329 03       		.byte	0x3
- 47727 1032a 91       		.byte	0x91
- 47728 1032b 806E     		.sleb128 -2304
- 47729 1032d 00       		.byte	0x0
- 47730 1032e 00       		.byte	0x0
- 47731 1032f 00       		.byte	0x0
- 47732 10330 00       		.byte	0x0
- 47733 10331 31       		.uleb128 0x31
- 47734 10332 4A0E0000 		.long	0xe4a
- 47735 10336 00000000 		.quad	.LBB4605
- 47735      00000000 
- 47736 1033e 00000000 		.quad	.LBE4605
- 47736      00000000 
- 47737 10346 02       		.byte	0x2
- 47738 10347 5304     		.value	0x453
- 47739 10349 CE030100 		.long	0x103ce
- 47740 1034d 32       		.uleb128 0x32
- 47741 1034e 5C0E0000 		.long	0xe5c
- 47742 10352 03       		.byte	0x3
- 47743 10353 91       		.byte	0x91
- 47744 10354 906E     		.sleb128 -2288
- 47745 10356 33       		.uleb128 0x33
- 47746 10357 00000000 		.quad	.LBB4606
- 47746      00000000 
- 47747 1035f 00000000 		.quad	.LBE4606
- 47747      00000000 
- 47748 10367 34       		.uleb128 0x34
- 47749 10368 680E0000 		.long	0xe68
- 47750 1036c 09       		.byte	0x9
- 47751 1036d 03       		.byte	0x3
- 47752 1036e 00000000 		.quad	ShiftRowTable.7385
- 47752      00000000 
- 47753 10376 35       		.uleb128 0x35
- 47754 10377 A00D0000 		.long	0xda0
- 47755 1037b 00000000 		.quad	.LBB4607
- 47755      00000000 
- 47756 10383 00000000 		.quad	.LBE4607
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1166
-
-
- 47756      00000000 
- 47757 1038b 02       		.byte	0x2
- 47758 1038c 9B02     		.value	0x29b
- 47759 1038e 32       		.uleb128 0x32
- 47760 1038f BE0D0000 		.long	0xdbe
- 47761 10393 03       		.byte	0x3
- 47762 10394 91       		.byte	0x91
- 47763 10395 A06E     		.sleb128 -2272
- 47764 10397 32       		.uleb128 0x32
- 47765 10398 B20D0000 		.long	0xdb2
- 47766 1039c 03       		.byte	0x3
- 47767 1039d 91       		.byte	0x91
- 47768 1039e B06E     		.sleb128 -2256
- 47769 103a0 35       		.uleb128 0x35
- 47770 103a1 CB0D0000 		.long	0xdcb
- 47771 103a5 00000000 		.quad	.LBB4609
- 47771      00000000 
- 47772 103ad 00000000 		.quad	.LBE4609
- 47772      00000000 
- 47773 103b5 02       		.byte	0x2
- 47774 103b6 7501     		.value	0x175
- 47775 103b8 32       		.uleb128 0x32
- 47776 103b9 E90D0000 		.long	0xde9
- 47777 103bd 03       		.byte	0x3
- 47778 103be 91       		.byte	0x91
- 47779 103bf C06E     		.sleb128 -2240
- 47780 103c1 32       		.uleb128 0x32
- 47781 103c2 DD0D0000 		.long	0xddd
- 47782 103c6 03       		.byte	0x3
- 47783 103c7 91       		.byte	0x91
- 47784 103c8 D06E     		.sleb128 -2224
- 47785 103ca 00       		.byte	0x0
- 47786 103cb 00       		.byte	0x0
- 47787 103cc 00       		.byte	0x0
- 47788 103cd 00       		.byte	0x0
- 47789 103ce 31       		.uleb128 0x31
- 47790 103cf 4A0E0000 		.long	0xe4a
- 47791 103d3 00000000 		.quad	.LBB4611
- 47791      00000000 
- 47792 103db 00000000 		.quad	.LBE4611
- 47792      00000000 
- 47793 103e3 02       		.byte	0x2
- 47794 103e4 5404     		.value	0x454
- 47795 103e6 6B040100 		.long	0x1046b
- 47796 103ea 32       		.uleb128 0x32
- 47797 103eb 5C0E0000 		.long	0xe5c
- 47798 103ef 03       		.byte	0x3
- 47799 103f0 91       		.byte	0x91
- 47800 103f1 E06E     		.sleb128 -2208
- 47801 103f3 33       		.uleb128 0x33
- 47802 103f4 00000000 		.quad	.LBB4612
- 47802      00000000 
- 47803 103fc 00000000 		.quad	.LBE4612
- 47803      00000000 
- 47804 10404 34       		.uleb128 0x34
- 47805 10405 680E0000 		.long	0xe68
- 47806 10409 09       		.byte	0x9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1167
-
-
- 47807 1040a 03       		.byte	0x3
- 47808 1040b 00000000 		.quad	ShiftRowTable.7385
- 47808      00000000 
- 47809 10413 35       		.uleb128 0x35
- 47810 10414 A00D0000 		.long	0xda0
- 47811 10418 00000000 		.quad	.LBB4613
- 47811      00000000 
- 47812 10420 00000000 		.quad	.LBE4613
- 47812      00000000 
- 47813 10428 02       		.byte	0x2
- 47814 10429 9B02     		.value	0x29b
- 47815 1042b 32       		.uleb128 0x32
- 47816 1042c BE0D0000 		.long	0xdbe
- 47817 10430 03       		.byte	0x3
- 47818 10431 91       		.byte	0x91
- 47819 10432 F06E     		.sleb128 -2192
- 47820 10434 32       		.uleb128 0x32
- 47821 10435 B20D0000 		.long	0xdb2
- 47822 10439 03       		.byte	0x3
- 47823 1043a 91       		.byte	0x91
- 47824 1043b 806F     		.sleb128 -2176
- 47825 1043d 35       		.uleb128 0x35
- 47826 1043e CB0D0000 		.long	0xdcb
- 47827 10442 00000000 		.quad	.LBB4615
- 47827      00000000 
- 47828 1044a 00000000 		.quad	.LBE4615
- 47828      00000000 
- 47829 10452 02       		.byte	0x2
- 47830 10453 7501     		.value	0x175
- 47831 10455 32       		.uleb128 0x32
- 47832 10456 E90D0000 		.long	0xde9
- 47833 1045a 03       		.byte	0x3
- 47834 1045b 91       		.byte	0x91
- 47835 1045c 906F     		.sleb128 -2160
- 47836 1045e 32       		.uleb128 0x32
- 47837 1045f DD0D0000 		.long	0xddd
- 47838 10463 03       		.byte	0x3
- 47839 10464 91       		.byte	0x91
- 47840 10465 A06F     		.sleb128 -2144
- 47841 10467 00       		.byte	0x0
- 47842 10468 00       		.byte	0x0
- 47843 10469 00       		.byte	0x0
- 47844 1046a 00       		.byte	0x0
- 47845 1046b 31       		.uleb128 0x31
- 47846 1046c 860E0000 		.long	0xe86
- 47847 10470 00000000 		.quad	.LBB4617
- 47847      00000000 
- 47848 10478 00000000 		.quad	.LBE4617
- 47848      00000000 
- 47849 10480 02       		.byte	0x2
- 47850 10481 5604     		.value	0x456
- 47851 10483 9A040100 		.long	0x1049a
- 47852 10487 32       		.uleb128 0x32
- 47853 10488 A10E0000 		.long	0xea1
- 47854 1048c 03       		.byte	0x3
- 47855 1048d 91       		.byte	0x91
- 47856 1048e B06F     		.sleb128 -2128
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1168
-
-
- 47857 10490 32       		.uleb128 0x32
- 47858 10491 970E0000 		.long	0xe97
- 47859 10495 03       		.byte	0x3
- 47860 10496 91       		.byte	0x91
- 47861 10497 C06F     		.sleb128 -2112
- 47862 10499 00       		.byte	0x0
- 47863 1049a 31       		.uleb128 0x31
- 47864 1049b 860E0000 		.long	0xe86
- 47865 1049f 00000000 		.quad	.LBB4619
- 47865      00000000 
- 47866 104a7 00000000 		.quad	.LBE4619
- 47866      00000000 
- 47867 104af 02       		.byte	0x2
- 47868 104b0 5704     		.value	0x457
- 47869 104b2 C9040100 		.long	0x104c9
- 47870 104b6 32       		.uleb128 0x32
- 47871 104b7 A10E0000 		.long	0xea1
- 47872 104bb 03       		.byte	0x3
- 47873 104bc 91       		.byte	0x91
- 47874 104bd D06F     		.sleb128 -2096
- 47875 104bf 32       		.uleb128 0x32
- 47876 104c0 970E0000 		.long	0xe97
- 47877 104c4 03       		.byte	0x3
- 47878 104c5 91       		.byte	0x91
- 47879 104c6 E06F     		.sleb128 -2080
- 47880 104c8 00       		.byte	0x0
- 47881 104c9 31       		.uleb128 0x31
- 47882 104ca 860E0000 		.long	0xe86
- 47883 104ce 00000000 		.quad	.LBB4621
- 47883      00000000 
- 47884 104d6 00000000 		.quad	.LBE4621
- 47884      00000000 
- 47885 104de 02       		.byte	0x2
- 47886 104df 5804     		.value	0x458
- 47887 104e1 F8040100 		.long	0x104f8
- 47888 104e5 32       		.uleb128 0x32
- 47889 104e6 A10E0000 		.long	0xea1
- 47890 104ea 03       		.byte	0x3
- 47891 104eb 91       		.byte	0x91
- 47892 104ec F06F     		.sleb128 -2064
- 47893 104ee 32       		.uleb128 0x32
- 47894 104ef 970E0000 		.long	0xe97
- 47895 104f3 03       		.byte	0x3
- 47896 104f4 91       		.byte	0x91
- 47897 104f5 8070     		.sleb128 -2048
- 47898 104f7 00       		.byte	0x0
- 47899 104f8 31       		.uleb128 0x31
- 47900 104f9 860E0000 		.long	0xe86
- 47901 104fd 00000000 		.quad	.LBB4623
- 47901      00000000 
- 47902 10505 00000000 		.quad	.LBE4623
- 47902      00000000 
- 47903 1050d 02       		.byte	0x2
- 47904 1050e 5904     		.value	0x459
- 47905 10510 27050100 		.long	0x10527
- 47906 10514 32       		.uleb128 0x32
- 47907 10515 A10E0000 		.long	0xea1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1169
-
-
- 47908 10519 03       		.byte	0x3
- 47909 1051a 91       		.byte	0x91
- 47910 1051b 9070     		.sleb128 -2032
- 47911 1051d 32       		.uleb128 0x32
- 47912 1051e 970E0000 		.long	0xe97
- 47913 10522 03       		.byte	0x3
- 47914 10523 91       		.byte	0x91
- 47915 10524 A070     		.sleb128 -2016
- 47916 10526 00       		.byte	0x0
- 47917 10527 31       		.uleb128 0x31
- 47918 10528 860E0000 		.long	0xe86
- 47919 1052c 00000000 		.quad	.LBB4625
- 47919      00000000 
- 47920 10534 00000000 		.quad	.LBE4625
- 47920      00000000 
- 47921 1053c 02       		.byte	0x2
- 47922 1053d 5A04     		.value	0x45a
- 47923 1053f 56050100 		.long	0x10556
- 47924 10543 32       		.uleb128 0x32
- 47925 10544 A10E0000 		.long	0xea1
- 47926 10548 03       		.byte	0x3
- 47927 10549 91       		.byte	0x91
- 47928 1054a B070     		.sleb128 -2000
- 47929 1054c 32       		.uleb128 0x32
- 47930 1054d 970E0000 		.long	0xe97
- 47931 10551 03       		.byte	0x3
- 47932 10552 91       		.byte	0x91
- 47933 10553 C070     		.sleb128 -1984
- 47934 10555 00       		.byte	0x0
- 47935 10556 31       		.uleb128 0x31
- 47936 10557 6BD90000 		.long	0xd96b
- 47937 1055b 00000000 		.quad	.LBB4627
- 47937      00000000 
- 47938 10563 00000000 		.quad	.LBE4627
- 47938      00000000 
- 47939 1056b 02       		.byte	0x2
- 47940 1056c 5E04     		.value	0x45e
- 47941 1056e 06080100 		.long	0x10806
- 47942 10572 32       		.uleb128 0x32
- 47943 10573 89D90000 		.long	0xd989
- 47944 10577 03       		.byte	0x3
- 47945 10578 91       		.byte	0x91
- 47946 10579 DC70     		.sleb128 -1956
- 47947 1057b 32       		.uleb128 0x32
- 47948 1057c 7DD90000 		.long	0xd97d
- 47949 10580 03       		.byte	0x3
- 47950 10581 91       		.byte	0x91
- 47951 10582 E070     		.sleb128 -1952
- 47952 10584 33       		.uleb128 0x33
- 47953 10585 00000000 		.quad	.LBB4628
- 47953      00000000 
- 47954 1058d 00000000 		.quad	.LBE4628
- 47954      00000000 
- 47955 10595 34       		.uleb128 0x34
- 47956 10596 95D90000 		.long	0xd995
- 47957 1059a 03       		.byte	0x3
- 47958 1059b 91       		.byte	0x91
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1170
-
-
- 47959 1059c 8071     		.sleb128 -1920
- 47960 1059e 34       		.uleb128 0x34
- 47961 1059f A0D90000 		.long	0xd9a0
- 47962 105a3 03       		.byte	0x3
- 47963 105a4 91       		.byte	0x91
- 47964 105a5 F070     		.sleb128 -1936
- 47965 105a7 34       		.uleb128 0x34
- 47966 105a8 ABD90000 		.long	0xd9ab
- 47967 105ac 09       		.byte	0x9
- 47968 105ad 03       		.byte	0x3
- 47969 105ae 00000000 		.quad	__PRETTY_FUNCTION__.7467
- 47969      00000000 
- 47970 105b6 36       		.uleb128 0x36
- 47971 105b7 00000000 		.quad	.LBB4629
- 47971      00000000 
- 47972 105bf 00000000 		.quad	.LBE4629
- 47972      00000000 
- 47973 105c7 D5050100 		.long	0x105d5
- 47974 105cb 34       		.uleb128 0x34
- 47975 105cc BED90000 		.long	0xd9be
- 47976 105d0 03       		.byte	0x3
- 47977 105d1 91       		.byte	0x91
- 47978 105d2 9066     		.sleb128 -3312
- 47979 105d4 00       		.byte	0x0
- 47980 105d5 31       		.uleb128 0x31
- 47981 105d6 FBD90000 		.long	0xd9fb
- 47982 105da 00000000 		.quad	.LBB4630
- 47982      00000000 
- 47983 105e2 00000000 		.quad	.LBE4630
- 47983      00000000 
- 47984 105ea 02       		.byte	0x2
- 47985 105eb A603     		.value	0x3a6
- 47986 105ed 7F060100 		.long	0x1067f
- 47987 105f1 32       		.uleb128 0x32
- 47988 105f2 17DA0000 		.long	0xda17
- 47989 105f6 03       		.byte	0x3
- 47990 105f7 91       		.byte	0x91
- 47991 105f8 9C71     		.sleb128 -1892
- 47992 105fa 32       		.uleb128 0x32
- 47993 105fb 0DDA0000 		.long	0xda0d
- 47994 105ff 03       		.byte	0x3
- 47995 10600 91       		.byte	0x91
- 47996 10601 A071     		.sleb128 -1888
- 47997 10603 33       		.uleb128 0x33
- 47998 10604 00000000 		.quad	.LBB4631
- 47998      00000000 
- 47999 1060c 00000000 		.quad	.LBE4631
- 47999      00000000 
- 48000 10614 34       		.uleb128 0x34
- 48001 10615 21DA0000 		.long	0xda21
- 48002 10619 09       		.byte	0x9
- 48003 1061a 03       		.byte	0x3
- 48004 1061b 00000000 		.quad	sr_mask.7327
- 48004      00000000 
- 48005 10623 31       		.uleb128 0x31
- 48006 10624 750D0000 		.long	0xd75
- 48007 10628 00000000 		.quad	.LBB4632
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1171
-
-
- 48007      00000000 
- 48008 10630 00000000 		.quad	.LBE4632
- 48008      00000000 
- 48009 10638 02       		.byte	0x2
- 48010 10639 E801     		.value	0x1e8
- 48011 1063b 52060100 		.long	0x10652
- 48012 1063f 32       		.uleb128 0x32
- 48013 10640 930D0000 		.long	0xd93
- 48014 10644 03       		.byte	0x3
- 48015 10645 91       		.byte	0x91
- 48016 10646 BC71     		.sleb128 -1860
- 48017 10648 32       		.uleb128 0x32
- 48018 10649 870D0000 		.long	0xd87
- 48019 1064d 03       		.byte	0x3
- 48020 1064e 91       		.byte	0x91
- 48021 1064f C071     		.sleb128 -1856
- 48022 10651 00       		.byte	0x0
- 48023 10652 35       		.uleb128 0x35
- 48024 10653 4F0D0000 		.long	0xd4f
- 48025 10657 00000000 		.quad	.LBB4634
- 48025      00000000 
- 48026 1065f 00000000 		.quad	.LBE4634
- 48026      00000000 
- 48027 10667 02       		.byte	0x2
- 48028 10668 E901     		.value	0x1e9
- 48029 1066a 32       		.uleb128 0x32
- 48030 1066b 6A0D0000 		.long	0xd6a
- 48031 1066f 03       		.byte	0x3
- 48032 10670 91       		.byte	0x91
- 48033 10671 D071     		.sleb128 -1840
- 48034 10673 32       		.uleb128 0x32
- 48035 10674 600D0000 		.long	0xd60
- 48036 10678 03       		.byte	0x3
- 48037 10679 91       		.byte	0x91
- 48038 1067a E071     		.sleb128 -1824
- 48039 1067c 00       		.byte	0x0
- 48040 1067d 00       		.byte	0x0
- 48041 1067e 00       		.byte	0x0
- 48042 1067f 36       		.uleb128 0x36
- 48043 10680 00000000 		.quad	.LBB4636
- 48043      00000000 
- 48044 10688 00000000 		.quad	.LBE4636
- 48044      00000000 
- 48045 10690 9E060100 		.long	0x1069e
- 48046 10694 34       		.uleb128 0x34
- 48047 10695 CED90000 		.long	0xd9ce
- 48048 10699 03       		.byte	0x3
- 48049 1069a 91       		.byte	0x91
- 48050 1069b 8066     		.sleb128 -3328
- 48051 1069d 00       		.byte	0x0
- 48052 1069e 31       		.uleb128 0x31
- 48053 1069f D4DA0000 		.long	0xdad4
- 48054 106a3 00000000 		.quad	.LBB4637
- 48054      00000000 
- 48055 106ab 00000000 		.quad	.LBE4637
- 48055      00000000 
- 48056 106b3 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1172
-
-
- 48057 106b4 A803     		.value	0x3a8
- 48058 106b6 60070100 		.long	0x10760
- 48059 106ba 32       		.uleb128 0x32
- 48060 106bb F0DA0000 		.long	0xdaf0
- 48061 106bf 03       		.byte	0x3
- 48062 106c0 91       		.byte	0x91
- 48063 106c1 FC71     		.sleb128 -1796
- 48064 106c3 32       		.uleb128 0x32
- 48065 106c4 E6DA0000 		.long	0xdae6
- 48066 106c8 03       		.byte	0x3
- 48067 106c9 91       		.byte	0x91
- 48068 106ca 8072     		.sleb128 -1792
- 48069 106cc 33       		.uleb128 0x33
- 48070 106cd 00000000 		.quad	.LBB4638
- 48070      00000000 
- 48071 106d5 00000000 		.quad	.LBE4638
- 48071      00000000 
- 48072 106dd 34       		.uleb128 0x34
- 48073 106de 97DB0000 		.long	0xdb97
- 48074 106e2 03       		.byte	0x3
- 48075 106e3 91       		.byte	0x91
- 48076 106e4 9072     		.sleb128 -1776
- 48077 106e6 34       		.uleb128 0x34
- 48078 106e7 FADA0000 		.long	0xdafa
- 48079 106eb 09       		.byte	0x9
- 48080 106ec 03       		.byte	0x3
- 48081 106ed 00000000 		.quad	sl_mask.7310
- 48081      00000000 
- 48082 106f5 34       		.uleb128 0x34
- 48083 106f6 A2DB0000 		.long	0xdba2
- 48084 106fa 09       		.byte	0x9
- 48085 106fb 03       		.byte	0x3
- 48086 106fc 00000000 		.quad	__PRETTY_FUNCTION__.7312
- 48086      00000000 
- 48087 10704 31       		.uleb128 0x31
- 48088 10705 CBDB0000 		.long	0xdbcb
- 48089 10709 00000000 		.quad	.LBB4639
- 48089      00000000 
- 48090 10711 00000000 		.quad	.LBE4639
- 48090      00000000 
- 48091 10719 02       		.byte	0x2
- 48092 1071a B101     		.value	0x1b1
- 48093 1071c 33070100 		.long	0x10733
- 48094 10720 32       		.uleb128 0x32
- 48095 10721 E9DB0000 		.long	0xdbe9
- 48096 10725 03       		.byte	0x3
- 48097 10726 91       		.byte	0x91
- 48098 10727 AC72     		.sleb128 -1748
- 48099 10729 32       		.uleb128 0x32
- 48100 1072a DDDB0000 		.long	0xdbdd
- 48101 1072e 03       		.byte	0x3
- 48102 1072f 91       		.byte	0x91
- 48103 10730 B072     		.sleb128 -1744
- 48104 10732 00       		.byte	0x0
- 48105 10733 35       		.uleb128 0x35
- 48106 10734 4F0D0000 		.long	0xd4f
- 48107 10738 00000000 		.quad	.LBB4641
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1173
-
-
- 48107      00000000 
- 48108 10740 00000000 		.quad	.LBE4641
- 48108      00000000 
- 48109 10748 02       		.byte	0x2
- 48110 10749 B301     		.value	0x1b3
- 48111 1074b 32       		.uleb128 0x32
- 48112 1074c 6A0D0000 		.long	0xd6a
- 48113 10750 03       		.byte	0x3
- 48114 10751 91       		.byte	0x91
- 48115 10752 C072     		.sleb128 -1728
- 48116 10754 32       		.uleb128 0x32
- 48117 10755 600D0000 		.long	0xd60
- 48118 10759 03       		.byte	0x3
- 48119 1075a 91       		.byte	0x91
- 48120 1075b D072     		.sleb128 -1712
- 48121 1075d 00       		.byte	0x0
- 48122 1075e 00       		.byte	0x0
- 48123 1075f 00       		.byte	0x0
- 48124 10760 36       		.uleb128 0x36
- 48125 10761 00000000 		.quad	.LBB4643
- 48125      00000000 
- 48126 10769 00000000 		.quad	.LBE4643
- 48126      00000000 
- 48127 10771 7F070100 		.long	0x1077f
- 48128 10775 34       		.uleb128 0x34
- 48129 10776 DAD90000 		.long	0xd9da
- 48130 1077a 03       		.byte	0x3
- 48131 1077b 91       		.byte	0x91
- 48132 1077c F065     		.sleb128 -3344
- 48133 1077e 00       		.byte	0x0
- 48134 1077f 31       		.uleb128 0x31
- 48135 10780 A00D0000 		.long	0xda0
- 48136 10784 00000000 		.quad	.LBB4644
- 48136      00000000 
- 48137 1078c 00000000 		.quad	.LBE4644
- 48137      00000000 
- 48138 10794 02       		.byte	0x2
- 48139 10795 AA03     		.value	0x3aa
- 48140 10797 D9070100 		.long	0x107d9
- 48141 1079b 32       		.uleb128 0x32
- 48142 1079c BE0D0000 		.long	0xdbe
- 48143 107a0 03       		.byte	0x3
- 48144 107a1 91       		.byte	0x91
- 48145 107a2 E072     		.sleb128 -1696
- 48146 107a4 32       		.uleb128 0x32
- 48147 107a5 B20D0000 		.long	0xdb2
- 48148 107a9 03       		.byte	0x3
- 48149 107aa 91       		.byte	0x91
- 48150 107ab F072     		.sleb128 -1680
- 48151 107ad 35       		.uleb128 0x35
- 48152 107ae CB0D0000 		.long	0xdcb
- 48153 107b2 00000000 		.quad	.LBB4646
- 48153      00000000 
- 48154 107ba 00000000 		.quad	.LBE4646
- 48154      00000000 
- 48155 107c2 02       		.byte	0x2
- 48156 107c3 7501     		.value	0x175
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1174
-
-
- 48157 107c5 32       		.uleb128 0x32
- 48158 107c6 E90D0000 		.long	0xde9
- 48159 107ca 03       		.byte	0x3
- 48160 107cb 91       		.byte	0x91
- 48161 107cc 8073     		.sleb128 -1664
- 48162 107ce 32       		.uleb128 0x32
- 48163 107cf DD0D0000 		.long	0xddd
- 48164 107d3 03       		.byte	0x3
- 48165 107d4 91       		.byte	0x91
- 48166 107d5 9073     		.sleb128 -1648
- 48167 107d7 00       		.byte	0x0
- 48168 107d8 00       		.byte	0x0
- 48169 107d9 35       		.uleb128 0x35
- 48170 107da 860E0000 		.long	0xe86
- 48171 107de 00000000 		.quad	.LBB4648
- 48171      00000000 
- 48172 107e6 00000000 		.quad	.LBE4648
- 48172      00000000 
- 48173 107ee 02       		.byte	0x2
- 48174 107ef AB03     		.value	0x3ab
- 48175 107f1 32       		.uleb128 0x32
- 48176 107f2 A10E0000 		.long	0xea1
- 48177 107f6 03       		.byte	0x3
- 48178 107f7 91       		.byte	0x91
- 48179 107f8 A073     		.sleb128 -1632
- 48180 107fa 32       		.uleb128 0x32
- 48181 107fb 970E0000 		.long	0xe97
- 48182 107ff 03       		.byte	0x3
- 48183 10800 91       		.byte	0x91
- 48184 10801 B073     		.sleb128 -1616
- 48185 10803 00       		.byte	0x0
- 48186 10804 00       		.byte	0x0
- 48187 10805 00       		.byte	0x0
- 48188 10806 31       		.uleb128 0x31
- 48189 10807 6BD90000 		.long	0xd96b
- 48190 1080b 00000000 		.quad	.LBB4650
- 48190      00000000 
- 48191 10813 00000000 		.quad	.LBE4650
- 48191      00000000 
- 48192 1081b 02       		.byte	0x2
- 48193 1081c 5F04     		.value	0x45f
- 48194 1081e B60A0100 		.long	0x10ab6
- 48195 10822 32       		.uleb128 0x32
- 48196 10823 89D90000 		.long	0xd989
- 48197 10827 03       		.byte	0x3
- 48198 10828 91       		.byte	0x91
- 48199 10829 CC73     		.sleb128 -1588
- 48200 1082b 32       		.uleb128 0x32
- 48201 1082c 7DD90000 		.long	0xd97d
- 48202 10830 03       		.byte	0x3
- 48203 10831 91       		.byte	0x91
- 48204 10832 D073     		.sleb128 -1584
- 48205 10834 33       		.uleb128 0x33
- 48206 10835 00000000 		.quad	.LBB4651
- 48206      00000000 
- 48207 1083d 00000000 		.quad	.LBE4651
- 48207      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1175
-
-
- 48208 10845 34       		.uleb128 0x34
- 48209 10846 95D90000 		.long	0xd995
- 48210 1084a 03       		.byte	0x3
- 48211 1084b 91       		.byte	0x91
- 48212 1084c F073     		.sleb128 -1552
- 48213 1084e 34       		.uleb128 0x34
- 48214 1084f A0D90000 		.long	0xd9a0
- 48215 10853 03       		.byte	0x3
- 48216 10854 91       		.byte	0x91
- 48217 10855 E073     		.sleb128 -1568
- 48218 10857 34       		.uleb128 0x34
- 48219 10858 ABD90000 		.long	0xd9ab
- 48220 1085c 09       		.byte	0x9
- 48221 1085d 03       		.byte	0x3
- 48222 1085e 00000000 		.quad	__PRETTY_FUNCTION__.7467
- 48222      00000000 
- 48223 10866 36       		.uleb128 0x36
- 48224 10867 00000000 		.quad	.LBB4652
- 48224      00000000 
- 48225 1086f 00000000 		.quad	.LBE4652
- 48225      00000000 
- 48226 10877 85080100 		.long	0x10885
- 48227 1087b 34       		.uleb128 0x34
- 48228 1087c BED90000 		.long	0xd9be
- 48229 10880 03       		.byte	0x3
- 48230 10881 91       		.byte	0x91
- 48231 10882 C066     		.sleb128 -3264
- 48232 10884 00       		.byte	0x0
- 48233 10885 31       		.uleb128 0x31
- 48234 10886 FBD90000 		.long	0xd9fb
- 48235 1088a 00000000 		.quad	.LBB4653
- 48235      00000000 
- 48236 10892 00000000 		.quad	.LBE4653
- 48236      00000000 
- 48237 1089a 02       		.byte	0x2
- 48238 1089b A603     		.value	0x3a6
- 48239 1089d 2F090100 		.long	0x1092f
- 48240 108a1 32       		.uleb128 0x32
- 48241 108a2 17DA0000 		.long	0xda17
- 48242 108a6 03       		.byte	0x3
- 48243 108a7 91       		.byte	0x91
- 48244 108a8 8C74     		.sleb128 -1524
- 48245 108aa 32       		.uleb128 0x32
- 48246 108ab 0DDA0000 		.long	0xda0d
- 48247 108af 03       		.byte	0x3
- 48248 108b0 91       		.byte	0x91
- 48249 108b1 9074     		.sleb128 -1520
- 48250 108b3 33       		.uleb128 0x33
- 48251 108b4 00000000 		.quad	.LBB4654
- 48251      00000000 
- 48252 108bc 00000000 		.quad	.LBE4654
- 48252      00000000 
- 48253 108c4 34       		.uleb128 0x34
- 48254 108c5 21DA0000 		.long	0xda21
- 48255 108c9 09       		.byte	0x9
- 48256 108ca 03       		.byte	0x3
- 48257 108cb 00000000 		.quad	sr_mask.7327
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1176
-
-
- 48257      00000000 
- 48258 108d3 31       		.uleb128 0x31
- 48259 108d4 750D0000 		.long	0xd75
- 48260 108d8 00000000 		.quad	.LBB4655
- 48260      00000000 
- 48261 108e0 00000000 		.quad	.LBE4655
- 48261      00000000 
- 48262 108e8 02       		.byte	0x2
- 48263 108e9 E801     		.value	0x1e8
- 48264 108eb 02090100 		.long	0x10902
- 48265 108ef 32       		.uleb128 0x32
- 48266 108f0 930D0000 		.long	0xd93
- 48267 108f4 03       		.byte	0x3
- 48268 108f5 91       		.byte	0x91
- 48269 108f6 AC74     		.sleb128 -1492
- 48270 108f8 32       		.uleb128 0x32
- 48271 108f9 870D0000 		.long	0xd87
- 48272 108fd 03       		.byte	0x3
- 48273 108fe 91       		.byte	0x91
- 48274 108ff B074     		.sleb128 -1488
- 48275 10901 00       		.byte	0x0
- 48276 10902 35       		.uleb128 0x35
- 48277 10903 4F0D0000 		.long	0xd4f
- 48278 10907 00000000 		.quad	.LBB4657
- 48278      00000000 
- 48279 1090f 00000000 		.quad	.LBE4657
- 48279      00000000 
- 48280 10917 02       		.byte	0x2
- 48281 10918 E901     		.value	0x1e9
- 48282 1091a 32       		.uleb128 0x32
- 48283 1091b 6A0D0000 		.long	0xd6a
- 48284 1091f 03       		.byte	0x3
- 48285 10920 91       		.byte	0x91
- 48286 10921 C074     		.sleb128 -1472
- 48287 10923 32       		.uleb128 0x32
- 48288 10924 600D0000 		.long	0xd60
- 48289 10928 03       		.byte	0x3
- 48290 10929 91       		.byte	0x91
- 48291 1092a D074     		.sleb128 -1456
- 48292 1092c 00       		.byte	0x0
- 48293 1092d 00       		.byte	0x0
- 48294 1092e 00       		.byte	0x0
- 48295 1092f 36       		.uleb128 0x36
- 48296 10930 00000000 		.quad	.LBB4659
- 48296      00000000 
- 48297 10938 00000000 		.quad	.LBE4659
- 48297      00000000 
- 48298 10940 4E090100 		.long	0x1094e
- 48299 10944 34       		.uleb128 0x34
- 48300 10945 CED90000 		.long	0xd9ce
- 48301 10949 03       		.byte	0x3
- 48302 1094a 91       		.byte	0x91
- 48303 1094b B066     		.sleb128 -3280
- 48304 1094d 00       		.byte	0x0
- 48305 1094e 31       		.uleb128 0x31
- 48306 1094f D4DA0000 		.long	0xdad4
- 48307 10953 00000000 		.quad	.LBB4660
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1177
-
-
- 48307      00000000 
- 48308 1095b 00000000 		.quad	.LBE4660
- 48308      00000000 
- 48309 10963 02       		.byte	0x2
- 48310 10964 A803     		.value	0x3a8
- 48311 10966 100A0100 		.long	0x10a10
- 48312 1096a 32       		.uleb128 0x32
- 48313 1096b F0DA0000 		.long	0xdaf0
- 48314 1096f 03       		.byte	0x3
- 48315 10970 91       		.byte	0x91
- 48316 10971 EC74     		.sleb128 -1428
- 48317 10973 32       		.uleb128 0x32
- 48318 10974 E6DA0000 		.long	0xdae6
- 48319 10978 03       		.byte	0x3
- 48320 10979 91       		.byte	0x91
- 48321 1097a F074     		.sleb128 -1424
- 48322 1097c 33       		.uleb128 0x33
- 48323 1097d 00000000 		.quad	.LBB4661
- 48323      00000000 
- 48324 10985 00000000 		.quad	.LBE4661
- 48324      00000000 
- 48325 1098d 34       		.uleb128 0x34
- 48326 1098e 97DB0000 		.long	0xdb97
- 48327 10992 03       		.byte	0x3
- 48328 10993 91       		.byte	0x91
- 48329 10994 8075     		.sleb128 -1408
- 48330 10996 34       		.uleb128 0x34
- 48331 10997 FADA0000 		.long	0xdafa
- 48332 1099b 09       		.byte	0x9
- 48333 1099c 03       		.byte	0x3
- 48334 1099d 00000000 		.quad	sl_mask.7310
- 48334      00000000 
- 48335 109a5 34       		.uleb128 0x34
- 48336 109a6 A2DB0000 		.long	0xdba2
- 48337 109aa 09       		.byte	0x9
- 48338 109ab 03       		.byte	0x3
- 48339 109ac 00000000 		.quad	__PRETTY_FUNCTION__.7312
- 48339      00000000 
- 48340 109b4 31       		.uleb128 0x31
- 48341 109b5 CBDB0000 		.long	0xdbcb
- 48342 109b9 00000000 		.quad	.LBB4662
- 48342      00000000 
- 48343 109c1 00000000 		.quad	.LBE4662
- 48343      00000000 
- 48344 109c9 02       		.byte	0x2
- 48345 109ca B101     		.value	0x1b1
- 48346 109cc E3090100 		.long	0x109e3
- 48347 109d0 32       		.uleb128 0x32
- 48348 109d1 E9DB0000 		.long	0xdbe9
- 48349 109d5 03       		.byte	0x3
- 48350 109d6 91       		.byte	0x91
- 48351 109d7 9C75     		.sleb128 -1380
- 48352 109d9 32       		.uleb128 0x32
- 48353 109da DDDB0000 		.long	0xdbdd
- 48354 109de 03       		.byte	0x3
- 48355 109df 91       		.byte	0x91
- 48356 109e0 A075     		.sleb128 -1376
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1178
-
-
- 48357 109e2 00       		.byte	0x0
- 48358 109e3 35       		.uleb128 0x35
- 48359 109e4 4F0D0000 		.long	0xd4f
- 48360 109e8 00000000 		.quad	.LBB4664
- 48360      00000000 
- 48361 109f0 00000000 		.quad	.LBE4664
- 48361      00000000 
- 48362 109f8 02       		.byte	0x2
- 48363 109f9 B301     		.value	0x1b3
- 48364 109fb 32       		.uleb128 0x32
- 48365 109fc 6A0D0000 		.long	0xd6a
- 48366 10a00 03       		.byte	0x3
- 48367 10a01 91       		.byte	0x91
- 48368 10a02 B075     		.sleb128 -1360
- 48369 10a04 32       		.uleb128 0x32
- 48370 10a05 600D0000 		.long	0xd60
- 48371 10a09 03       		.byte	0x3
- 48372 10a0a 91       		.byte	0x91
- 48373 10a0b C075     		.sleb128 -1344
- 48374 10a0d 00       		.byte	0x0
- 48375 10a0e 00       		.byte	0x0
- 48376 10a0f 00       		.byte	0x0
- 48377 10a10 36       		.uleb128 0x36
- 48378 10a11 00000000 		.quad	.LBB4666
- 48378      00000000 
- 48379 10a19 00000000 		.quad	.LBE4666
- 48379      00000000 
- 48380 10a21 2F0A0100 		.long	0x10a2f
- 48381 10a25 34       		.uleb128 0x34
- 48382 10a26 DAD90000 		.long	0xd9da
- 48383 10a2a 03       		.byte	0x3
- 48384 10a2b 91       		.byte	0x91
- 48385 10a2c A066     		.sleb128 -3296
- 48386 10a2e 00       		.byte	0x0
- 48387 10a2f 31       		.uleb128 0x31
- 48388 10a30 A00D0000 		.long	0xda0
- 48389 10a34 00000000 		.quad	.LBB4667
- 48389      00000000 
- 48390 10a3c 00000000 		.quad	.LBE4667
- 48390      00000000 
- 48391 10a44 02       		.byte	0x2
- 48392 10a45 AA03     		.value	0x3aa
- 48393 10a47 890A0100 		.long	0x10a89
- 48394 10a4b 32       		.uleb128 0x32
- 48395 10a4c BE0D0000 		.long	0xdbe
- 48396 10a50 03       		.byte	0x3
- 48397 10a51 91       		.byte	0x91
- 48398 10a52 D075     		.sleb128 -1328
- 48399 10a54 32       		.uleb128 0x32
- 48400 10a55 B20D0000 		.long	0xdb2
- 48401 10a59 03       		.byte	0x3
- 48402 10a5a 91       		.byte	0x91
- 48403 10a5b E075     		.sleb128 -1312
- 48404 10a5d 35       		.uleb128 0x35
- 48405 10a5e CB0D0000 		.long	0xdcb
- 48406 10a62 00000000 		.quad	.LBB4669
- 48406      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1179
-
-
- 48407 10a6a 00000000 		.quad	.LBE4669
- 48407      00000000 
- 48408 10a72 02       		.byte	0x2
- 48409 10a73 7501     		.value	0x175
- 48410 10a75 32       		.uleb128 0x32
- 48411 10a76 E90D0000 		.long	0xde9
- 48412 10a7a 03       		.byte	0x3
- 48413 10a7b 91       		.byte	0x91
- 48414 10a7c F075     		.sleb128 -1296
- 48415 10a7e 32       		.uleb128 0x32
- 48416 10a7f DD0D0000 		.long	0xddd
- 48417 10a83 03       		.byte	0x3
- 48418 10a84 91       		.byte	0x91
- 48419 10a85 8076     		.sleb128 -1280
- 48420 10a87 00       		.byte	0x0
- 48421 10a88 00       		.byte	0x0
- 48422 10a89 35       		.uleb128 0x35
- 48423 10a8a 860E0000 		.long	0xe86
- 48424 10a8e 00000000 		.quad	.LBB4671
- 48424      00000000 
- 48425 10a96 00000000 		.quad	.LBE4671
- 48425      00000000 
- 48426 10a9e 02       		.byte	0x2
- 48427 10a9f AB03     		.value	0x3ab
- 48428 10aa1 32       		.uleb128 0x32
- 48429 10aa2 A10E0000 		.long	0xea1
- 48430 10aa6 03       		.byte	0x3
- 48431 10aa7 91       		.byte	0x91
- 48432 10aa8 9076     		.sleb128 -1264
- 48433 10aaa 32       		.uleb128 0x32
- 48434 10aab 970E0000 		.long	0xe97
- 48435 10aaf 03       		.byte	0x3
- 48436 10ab0 91       		.byte	0x91
- 48437 10ab1 A076     		.sleb128 -1248
- 48438 10ab3 00       		.byte	0x0
- 48439 10ab4 00       		.byte	0x0
- 48440 10ab5 00       		.byte	0x0
- 48441 10ab6 31       		.uleb128 0x31
- 48442 10ab7 6BD90000 		.long	0xd96b
- 48443 10abb 00000000 		.quad	.LBB4673
- 48443      00000000 
- 48444 10ac3 00000000 		.quad	.LBE4673
- 48444      00000000 
- 48445 10acb 02       		.byte	0x2
- 48446 10acc 6004     		.value	0x460
- 48447 10ace 660D0100 		.long	0x10d66
- 48448 10ad2 32       		.uleb128 0x32
- 48449 10ad3 89D90000 		.long	0xd989
- 48450 10ad7 03       		.byte	0x3
- 48451 10ad8 91       		.byte	0x91
- 48452 10ad9 BC76     		.sleb128 -1220
- 48453 10adb 32       		.uleb128 0x32
- 48454 10adc 7DD90000 		.long	0xd97d
- 48455 10ae0 03       		.byte	0x3
- 48456 10ae1 91       		.byte	0x91
- 48457 10ae2 C076     		.sleb128 -1216
- 48458 10ae4 33       		.uleb128 0x33
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1180
-
-
- 48459 10ae5 00000000 		.quad	.LBB4674
- 48459      00000000 
- 48460 10aed 00000000 		.quad	.LBE4674
- 48460      00000000 
- 48461 10af5 34       		.uleb128 0x34
- 48462 10af6 95D90000 		.long	0xd995
- 48463 10afa 03       		.byte	0x3
- 48464 10afb 91       		.byte	0x91
- 48465 10afc E076     		.sleb128 -1184
- 48466 10afe 34       		.uleb128 0x34
- 48467 10aff A0D90000 		.long	0xd9a0
- 48468 10b03 03       		.byte	0x3
- 48469 10b04 91       		.byte	0x91
- 48470 10b05 D076     		.sleb128 -1200
- 48471 10b07 34       		.uleb128 0x34
- 48472 10b08 ABD90000 		.long	0xd9ab
- 48473 10b0c 09       		.byte	0x9
- 48474 10b0d 03       		.byte	0x3
- 48475 10b0e 00000000 		.quad	__PRETTY_FUNCTION__.7467
- 48475      00000000 
- 48476 10b16 36       		.uleb128 0x36
- 48477 10b17 00000000 		.quad	.LBB4675
- 48477      00000000 
- 48478 10b1f 00000000 		.quad	.LBE4675
- 48478      00000000 
- 48479 10b27 350B0100 		.long	0x10b35
- 48480 10b2b 34       		.uleb128 0x34
- 48481 10b2c BED90000 		.long	0xd9be
- 48482 10b30 03       		.byte	0x3
- 48483 10b31 91       		.byte	0x91
- 48484 10b32 F066     		.sleb128 -3216
- 48485 10b34 00       		.byte	0x0
- 48486 10b35 31       		.uleb128 0x31
- 48487 10b36 FBD90000 		.long	0xd9fb
- 48488 10b3a 00000000 		.quad	.LBB4676
- 48488      00000000 
- 48489 10b42 00000000 		.quad	.LBE4676
- 48489      00000000 
- 48490 10b4a 02       		.byte	0x2
- 48491 10b4b A603     		.value	0x3a6
- 48492 10b4d DF0B0100 		.long	0x10bdf
- 48493 10b51 32       		.uleb128 0x32
- 48494 10b52 17DA0000 		.long	0xda17
- 48495 10b56 03       		.byte	0x3
- 48496 10b57 91       		.byte	0x91
- 48497 10b58 FC76     		.sleb128 -1156
- 48498 10b5a 32       		.uleb128 0x32
- 48499 10b5b 0DDA0000 		.long	0xda0d
- 48500 10b5f 03       		.byte	0x3
- 48501 10b60 91       		.byte	0x91
- 48502 10b61 8077     		.sleb128 -1152
- 48503 10b63 33       		.uleb128 0x33
- 48504 10b64 00000000 		.quad	.LBB4677
- 48504      00000000 
- 48505 10b6c 00000000 		.quad	.LBE4677
- 48505      00000000 
- 48506 10b74 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1181
-
-
- 48507 10b75 21DA0000 		.long	0xda21
- 48508 10b79 09       		.byte	0x9
- 48509 10b7a 03       		.byte	0x3
- 48510 10b7b 00000000 		.quad	sr_mask.7327
- 48510      00000000 
- 48511 10b83 31       		.uleb128 0x31
- 48512 10b84 750D0000 		.long	0xd75
- 48513 10b88 00000000 		.quad	.LBB4678
- 48513      00000000 
- 48514 10b90 00000000 		.quad	.LBE4678
- 48514      00000000 
- 48515 10b98 02       		.byte	0x2
- 48516 10b99 E801     		.value	0x1e8
- 48517 10b9b B20B0100 		.long	0x10bb2
- 48518 10b9f 32       		.uleb128 0x32
- 48519 10ba0 930D0000 		.long	0xd93
- 48520 10ba4 03       		.byte	0x3
- 48521 10ba5 91       		.byte	0x91
- 48522 10ba6 9C77     		.sleb128 -1124
- 48523 10ba8 32       		.uleb128 0x32
- 48524 10ba9 870D0000 		.long	0xd87
- 48525 10bad 03       		.byte	0x3
- 48526 10bae 91       		.byte	0x91
- 48527 10baf A077     		.sleb128 -1120
- 48528 10bb1 00       		.byte	0x0
- 48529 10bb2 35       		.uleb128 0x35
- 48530 10bb3 4F0D0000 		.long	0xd4f
- 48531 10bb7 00000000 		.quad	.LBB4680
- 48531      00000000 
- 48532 10bbf 00000000 		.quad	.LBE4680
- 48532      00000000 
- 48533 10bc7 02       		.byte	0x2
- 48534 10bc8 E901     		.value	0x1e9
- 48535 10bca 32       		.uleb128 0x32
- 48536 10bcb 6A0D0000 		.long	0xd6a
- 48537 10bcf 03       		.byte	0x3
- 48538 10bd0 91       		.byte	0x91
- 48539 10bd1 B077     		.sleb128 -1104
- 48540 10bd3 32       		.uleb128 0x32
- 48541 10bd4 600D0000 		.long	0xd60
- 48542 10bd8 03       		.byte	0x3
- 48543 10bd9 91       		.byte	0x91
- 48544 10bda C077     		.sleb128 -1088
- 48545 10bdc 00       		.byte	0x0
- 48546 10bdd 00       		.byte	0x0
- 48547 10bde 00       		.byte	0x0
- 48548 10bdf 36       		.uleb128 0x36
- 48549 10be0 00000000 		.quad	.LBB4682
- 48549      00000000 
- 48550 10be8 00000000 		.quad	.LBE4682
- 48550      00000000 
- 48551 10bf0 FE0B0100 		.long	0x10bfe
- 48552 10bf4 34       		.uleb128 0x34
- 48553 10bf5 CED90000 		.long	0xd9ce
- 48554 10bf9 03       		.byte	0x3
- 48555 10bfa 91       		.byte	0x91
- 48556 10bfb E066     		.sleb128 -3232
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1182
-
-
- 48557 10bfd 00       		.byte	0x0
- 48558 10bfe 31       		.uleb128 0x31
- 48559 10bff D4DA0000 		.long	0xdad4
- 48560 10c03 00000000 		.quad	.LBB4683
- 48560      00000000 
- 48561 10c0b 00000000 		.quad	.LBE4683
- 48561      00000000 
- 48562 10c13 02       		.byte	0x2
- 48563 10c14 A803     		.value	0x3a8
- 48564 10c16 C00C0100 		.long	0x10cc0
- 48565 10c1a 32       		.uleb128 0x32
- 48566 10c1b F0DA0000 		.long	0xdaf0
- 48567 10c1f 03       		.byte	0x3
- 48568 10c20 91       		.byte	0x91
- 48569 10c21 DC77     		.sleb128 -1060
- 48570 10c23 32       		.uleb128 0x32
- 48571 10c24 E6DA0000 		.long	0xdae6
- 48572 10c28 03       		.byte	0x3
- 48573 10c29 91       		.byte	0x91
- 48574 10c2a E077     		.sleb128 -1056
- 48575 10c2c 33       		.uleb128 0x33
- 48576 10c2d 00000000 		.quad	.LBB4684
- 48576      00000000 
- 48577 10c35 00000000 		.quad	.LBE4684
- 48577      00000000 
- 48578 10c3d 34       		.uleb128 0x34
- 48579 10c3e 97DB0000 		.long	0xdb97
- 48580 10c42 03       		.byte	0x3
- 48581 10c43 91       		.byte	0x91
- 48582 10c44 F077     		.sleb128 -1040
- 48583 10c46 34       		.uleb128 0x34
- 48584 10c47 FADA0000 		.long	0xdafa
- 48585 10c4b 09       		.byte	0x9
- 48586 10c4c 03       		.byte	0x3
- 48587 10c4d 00000000 		.quad	sl_mask.7310
- 48587      00000000 
- 48588 10c55 34       		.uleb128 0x34
- 48589 10c56 A2DB0000 		.long	0xdba2
- 48590 10c5a 09       		.byte	0x9
- 48591 10c5b 03       		.byte	0x3
- 48592 10c5c 00000000 		.quad	__PRETTY_FUNCTION__.7312
- 48592      00000000 
- 48593 10c64 31       		.uleb128 0x31
- 48594 10c65 CBDB0000 		.long	0xdbcb
- 48595 10c69 00000000 		.quad	.LBB4685
- 48595      00000000 
- 48596 10c71 00000000 		.quad	.LBE4685
- 48596      00000000 
- 48597 10c79 02       		.byte	0x2
- 48598 10c7a B101     		.value	0x1b1
- 48599 10c7c 930C0100 		.long	0x10c93
- 48600 10c80 32       		.uleb128 0x32
- 48601 10c81 E9DB0000 		.long	0xdbe9
- 48602 10c85 03       		.byte	0x3
- 48603 10c86 91       		.byte	0x91
- 48604 10c87 8C78     		.sleb128 -1012
- 48605 10c89 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1183
-
-
- 48606 10c8a DDDB0000 		.long	0xdbdd
- 48607 10c8e 03       		.byte	0x3
- 48608 10c8f 91       		.byte	0x91
- 48609 10c90 9078     		.sleb128 -1008
- 48610 10c92 00       		.byte	0x0
- 48611 10c93 35       		.uleb128 0x35
- 48612 10c94 4F0D0000 		.long	0xd4f
- 48613 10c98 00000000 		.quad	.LBB4687
- 48613      00000000 
- 48614 10ca0 00000000 		.quad	.LBE4687
- 48614      00000000 
- 48615 10ca8 02       		.byte	0x2
- 48616 10ca9 B301     		.value	0x1b3
- 48617 10cab 32       		.uleb128 0x32
- 48618 10cac 6A0D0000 		.long	0xd6a
- 48619 10cb0 03       		.byte	0x3
- 48620 10cb1 91       		.byte	0x91
- 48621 10cb2 A078     		.sleb128 -992
- 48622 10cb4 32       		.uleb128 0x32
- 48623 10cb5 600D0000 		.long	0xd60
- 48624 10cb9 03       		.byte	0x3
- 48625 10cba 91       		.byte	0x91
- 48626 10cbb B078     		.sleb128 -976
- 48627 10cbd 00       		.byte	0x0
- 48628 10cbe 00       		.byte	0x0
- 48629 10cbf 00       		.byte	0x0
- 48630 10cc0 36       		.uleb128 0x36
- 48631 10cc1 00000000 		.quad	.LBB4689
- 48631      00000000 
- 48632 10cc9 00000000 		.quad	.LBE4689
- 48632      00000000 
- 48633 10cd1 DF0C0100 		.long	0x10cdf
- 48634 10cd5 34       		.uleb128 0x34
- 48635 10cd6 DAD90000 		.long	0xd9da
- 48636 10cda 03       		.byte	0x3
- 48637 10cdb 91       		.byte	0x91
- 48638 10cdc D066     		.sleb128 -3248
- 48639 10cde 00       		.byte	0x0
- 48640 10cdf 31       		.uleb128 0x31
- 48641 10ce0 A00D0000 		.long	0xda0
- 48642 10ce4 00000000 		.quad	.LBB4690
- 48642      00000000 
- 48643 10cec 00000000 		.quad	.LBE4690
- 48643      00000000 
- 48644 10cf4 02       		.byte	0x2
- 48645 10cf5 AA03     		.value	0x3aa
- 48646 10cf7 390D0100 		.long	0x10d39
- 48647 10cfb 32       		.uleb128 0x32
- 48648 10cfc BE0D0000 		.long	0xdbe
- 48649 10d00 03       		.byte	0x3
- 48650 10d01 91       		.byte	0x91
- 48651 10d02 C078     		.sleb128 -960
- 48652 10d04 32       		.uleb128 0x32
- 48653 10d05 B20D0000 		.long	0xdb2
- 48654 10d09 03       		.byte	0x3
- 48655 10d0a 91       		.byte	0x91
- 48656 10d0b D078     		.sleb128 -944
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1184
-
-
- 48657 10d0d 35       		.uleb128 0x35
- 48658 10d0e CB0D0000 		.long	0xdcb
- 48659 10d12 00000000 		.quad	.LBB4692
- 48659      00000000 
- 48660 10d1a 00000000 		.quad	.LBE4692
- 48660      00000000 
- 48661 10d22 02       		.byte	0x2
- 48662 10d23 7501     		.value	0x175
- 48663 10d25 32       		.uleb128 0x32
- 48664 10d26 E90D0000 		.long	0xde9
- 48665 10d2a 03       		.byte	0x3
- 48666 10d2b 91       		.byte	0x91
- 48667 10d2c E078     		.sleb128 -928
- 48668 10d2e 32       		.uleb128 0x32
- 48669 10d2f DD0D0000 		.long	0xddd
- 48670 10d33 03       		.byte	0x3
- 48671 10d34 91       		.byte	0x91
- 48672 10d35 F078     		.sleb128 -912
- 48673 10d37 00       		.byte	0x0
- 48674 10d38 00       		.byte	0x0
- 48675 10d39 35       		.uleb128 0x35
- 48676 10d3a 860E0000 		.long	0xe86
- 48677 10d3e 00000000 		.quad	.LBB4694
- 48677      00000000 
- 48678 10d46 00000000 		.quad	.LBE4694
- 48678      00000000 
- 48679 10d4e 02       		.byte	0x2
- 48680 10d4f AB03     		.value	0x3ab
- 48681 10d51 32       		.uleb128 0x32
- 48682 10d52 A10E0000 		.long	0xea1
- 48683 10d56 03       		.byte	0x3
- 48684 10d57 91       		.byte	0x91
- 48685 10d58 8079     		.sleb128 -896
- 48686 10d5a 32       		.uleb128 0x32
- 48687 10d5b 970E0000 		.long	0xe97
- 48688 10d5f 03       		.byte	0x3
- 48689 10d60 91       		.byte	0x91
- 48690 10d61 9079     		.sleb128 -880
- 48691 10d63 00       		.byte	0x0
- 48692 10d64 00       		.byte	0x0
- 48693 10d65 00       		.byte	0x0
- 48694 10d66 31       		.uleb128 0x31
- 48695 10d67 860E0000 		.long	0xe86
- 48696 10d6b 00000000 		.quad	.LBB4696
- 48696      00000000 
- 48697 10d73 00000000 		.quad	.LBE4696
- 48697      00000000 
- 48698 10d7b 02       		.byte	0x2
- 48699 10d7c 7604     		.value	0x476
- 48700 10d7e 950D0100 		.long	0x10d95
- 48701 10d82 32       		.uleb128 0x32
- 48702 10d83 A10E0000 		.long	0xea1
- 48703 10d87 03       		.byte	0x3
- 48704 10d88 91       		.byte	0x91
- 48705 10d89 A079     		.sleb128 -864
- 48706 10d8b 32       		.uleb128 0x32
- 48707 10d8c 970E0000 		.long	0xe97
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1185
-
-
- 48708 10d90 03       		.byte	0x3
- 48709 10d91 91       		.byte	0x91
- 48710 10d92 B079     		.sleb128 -848
- 48711 10d94 00       		.byte	0x0
- 48712 10d95 31       		.uleb128 0x31
- 48713 10d96 860E0000 		.long	0xe86
- 48714 10d9a 00000000 		.quad	.LBB4698
- 48714      00000000 
- 48715 10da2 00000000 		.quad	.LBE4698
- 48715      00000000 
- 48716 10daa 02       		.byte	0x2
- 48717 10dab 7704     		.value	0x477
- 48718 10dad C40D0100 		.long	0x10dc4
- 48719 10db1 32       		.uleb128 0x32
- 48720 10db2 A10E0000 		.long	0xea1
- 48721 10db6 03       		.byte	0x3
- 48722 10db7 91       		.byte	0x91
- 48723 10db8 C079     		.sleb128 -832
- 48724 10dba 32       		.uleb128 0x32
- 48725 10dbb 970E0000 		.long	0xe97
- 48726 10dbf 03       		.byte	0x3
- 48727 10dc0 91       		.byte	0x91
- 48728 10dc1 D079     		.sleb128 -816
- 48729 10dc3 00       		.byte	0x0
- 48730 10dc4 35       		.uleb128 0x35
- 48731 10dc5 860E0000 		.long	0xe86
- 48732 10dc9 00000000 		.quad	.LBB4700
- 48732      00000000 
- 48733 10dd1 00000000 		.quad	.LBE4700
- 48733      00000000 
- 48734 10dd9 02       		.byte	0x2
- 48735 10dda 7804     		.value	0x478
- 48736 10ddc 32       		.uleb128 0x32
- 48737 10ddd A10E0000 		.long	0xea1
- 48738 10de1 03       		.byte	0x3
- 48739 10de2 91       		.byte	0x91
- 48740 10de3 E079     		.sleb128 -800
- 48741 10de5 32       		.uleb128 0x32
- 48742 10de6 970E0000 		.long	0xe97
- 48743 10dea 03       		.byte	0x3
- 48744 10deb 91       		.byte	0x91
- 48745 10dec F079     		.sleb128 -784
- 48746 10dee 00       		.byte	0x0
- 48747 10def 00       		.byte	0x0
- 48748 10df0 00       		.byte	0x0
- 48749 10df1 36       		.uleb128 0x36
- 48750 10df2 00000000 		.quad	.LBB4702
- 48750      00000000 
- 48751 10dfa 00000000 		.quad	.LBE4702
- 48751      00000000 
- 48752 10e02 100E0100 		.long	0x10e10
- 48753 10e06 34       		.uleb128 0x34
- 48754 10e07 10FC0000 		.long	0xfc10
- 48755 10e0b 03       		.byte	0x3
- 48756 10e0c 91       		.byte	0x91
- 48757 10e0d B065     		.sleb128 -3408
- 48758 10e0f 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1186
-
-
- 48759 10e10 31       		.uleb128 0x31
- 48760 10e11 34E90000 		.long	0xe934
- 48761 10e15 00000000 		.quad	.LBB4703
- 48761      00000000 
- 48762 10e1d 00000000 		.quad	.LBE4703
- 48762      00000000 
- 48763 10e25 02       		.byte	0x2
- 48764 10e26 A108     		.value	0x8a1
- 48765 10e28 6A0E0100 		.long	0x10e6a
- 48766 10e2c 32       		.uleb128 0x32
- 48767 10e2d 52E90000 		.long	0xe952
- 48768 10e31 03       		.byte	0x3
- 48769 10e32 91       		.byte	0x91
- 48770 10e33 807A     		.sleb128 -768
- 48771 10e35 32       		.uleb128 0x32
- 48772 10e36 46E90000 		.long	0xe946
- 48773 10e3a 03       		.byte	0x3
- 48774 10e3b 91       		.byte	0x91
- 48775 10e3c 907A     		.sleb128 -752
- 48776 10e3e 35       		.uleb128 0x35
- 48777 10e3f 860E0000 		.long	0xe86
- 48778 10e43 00000000 		.quad	.LBB4705
- 48778      00000000 
- 48779 10e4b 00000000 		.quad	.LBE4705
- 48779      00000000 
- 48780 10e53 02       		.byte	0x2
- 48781 10e54 2302     		.value	0x223
- 48782 10e56 32       		.uleb128 0x32
- 48783 10e57 A10E0000 		.long	0xea1
- 48784 10e5b 03       		.byte	0x3
- 48785 10e5c 91       		.byte	0x91
- 48786 10e5d A07A     		.sleb128 -736
- 48787 10e5f 32       		.uleb128 0x32
- 48788 10e60 970E0000 		.long	0xe97
- 48789 10e64 03       		.byte	0x3
- 48790 10e65 91       		.byte	0x91
- 48791 10e66 B07A     		.sleb128 -720
- 48792 10e68 00       		.byte	0x0
- 48793 10e69 00       		.byte	0x0
- 48794 10e6a 36       		.uleb128 0x36
- 48795 10e6b 00000000 		.quad	.LBB4707
- 48795      00000000 
- 48796 10e73 00000000 		.quad	.LBE4707
- 48796      00000000 
- 48797 10e7b 890E0100 		.long	0x10e89
- 48798 10e7f 34       		.uleb128 0x34
- 48799 10e80 20FC0000 		.long	0xfc20
- 48800 10e84 03       		.byte	0x3
- 48801 10e85 91       		.byte	0x91
- 48802 10e86 A065     		.sleb128 -3424
- 48803 10e88 00       		.byte	0x0
- 48804 10e89 33       		.uleb128 0x33
- 48805 10e8a 00000000 		.quad	.LBB4708
- 48805      00000000 
- 48806 10e92 00000000 		.quad	.LBE4708
- 48806      00000000 
- 48807 10e9a 34       		.uleb128 0x34
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1187
-
-
- 48808 10e9b 2CFC0000 		.long	0xfc2c
- 48809 10e9f 03       		.byte	0x3
- 48810 10ea0 91       		.byte	0x91
- 48811 10ea1 9065     		.sleb128 -3440
- 48812 10ea3 00       		.byte	0x0
- 48813 10ea4 00       		.byte	0x0
- 48814 10ea5 00       		.byte	0x0
- 48815 10ea6 35       		.uleb128 0x35
- 48816 10ea7 98FC0000 		.long	0xfc98
- 48817 10eab 00000000 		.quad	.LBB4709
- 48817      00000000 
- 48818 10eb3 00000000 		.quad	.LBE4709
- 48818      00000000 
- 48819 10ebb 02       		.byte	0x2
- 48820 10ebc E708     		.value	0x8e7
- 48821 10ebe 32       		.uleb128 0x32
- 48822 10ebf B6FC0000 		.long	0xfcb6
- 48823 10ec3 03       		.byte	0x3
- 48824 10ec4 91       		.byte	0x91
- 48825 10ec5 C07A     		.sleb128 -704
- 48826 10ec7 32       		.uleb128 0x32
- 48827 10ec8 AAFC0000 		.long	0xfcaa
- 48828 10ecc 03       		.byte	0x3
- 48829 10ecd 91       		.byte	0x91
- 48830 10ece D07A     		.sleb128 -688
- 48831 10ed0 36       		.uleb128 0x36
- 48832 10ed1 00000000 		.quad	.LBB4711
- 48832      00000000 
- 48833 10ed9 00000000 		.quad	.LBE4711
- 48833      00000000 
- 48834 10ee1 EF0E0100 		.long	0x10eef
- 48835 10ee5 34       		.uleb128 0x34
- 48836 10ee6 C7FC0000 		.long	0xfcc7
- 48837 10eea 03       		.byte	0x3
- 48838 10eeb 91       		.byte	0x91
- 48839 10eec C067     		.sleb128 -3136
- 48840 10eee 00       		.byte	0x0
- 48841 10eef 31       		.uleb128 0x31
- 48842 10ef0 38FC0000 		.long	0xfc38
- 48843 10ef4 00000000 		.quad	.LBB4712
- 48843      00000000 
- 48844 10efc 00000000 		.quad	.LBE4712
- 48844      00000000 
- 48845 10f04 02       		.byte	0x2
- 48846 10f05 C308     		.value	0x8c3
- 48847 10f07 78110100 		.long	0x11178
- 48848 10f0b 32       		.uleb128 0x32
- 48849 10f0c 4AFC0000 		.long	0xfc4a
- 48850 10f10 03       		.byte	0x3
- 48851 10f11 91       		.byte	0x91
- 48852 10f12 E07A     		.sleb128 -672
- 48853 10f14 35       		.uleb128 0x35
- 48854 10f15 E00C0000 		.long	0xce0
- 48855 10f19 00000000 		.quad	.LBB4714
- 48855      00000000 
- 48856 10f21 00000000 		.quad	.LBE4714
- 48856      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1188
-
-
- 48857 10f29 02       		.byte	0x2
- 48858 10f2a 8803     		.value	0x388
- 48859 10f2c 32       		.uleb128 0x32
- 48860 10f2d FE0C0000 		.long	0xcfe
- 48861 10f31 03       		.byte	0x3
- 48862 10f32 91       		.byte	0x91
- 48863 10f33 F87A     		.sleb128 -648
- 48864 10f35 32       		.uleb128 0x32
- 48865 10f36 F20C0000 		.long	0xcf2
- 48866 10f3a 03       		.byte	0x3
- 48867 10f3b 91       		.byte	0x91
- 48868 10f3c 807B     		.sleb128 -640
- 48869 10f3e 33       		.uleb128 0x33
- 48870 10f3f 00000000 		.quad	.LBB4715
- 48870      00000000 
- 48871 10f47 00000000 		.quad	.LBE4715
- 48871      00000000 
- 48872 10f4f 34       		.uleb128 0x34
- 48873 10f50 0A0D0000 		.long	0xd0a
- 48874 10f54 03       		.byte	0x3
- 48875 10f55 91       		.byte	0x91
- 48876 10f56 D07B     		.sleb128 -560
- 48877 10f58 34       		.uleb128 0x34
- 48878 10f59 150D0000 		.long	0xd15
- 48879 10f5d 03       		.byte	0x3
- 48880 10f5e 91       		.byte	0x91
- 48881 10f5f C07B     		.sleb128 -576
- 48882 10f61 34       		.uleb128 0x34
- 48883 10f62 200D0000 		.long	0xd20
- 48884 10f66 03       		.byte	0x3
- 48885 10f67 91       		.byte	0x91
- 48886 10f68 B07B     		.sleb128 -592
- 48887 10f6a 34       		.uleb128 0x34
- 48888 10f6b 2C0D0000 		.long	0xd2c
- 48889 10f6f 03       		.byte	0x3
- 48890 10f70 91       		.byte	0x91
- 48891 10f71 A07B     		.sleb128 -608
- 48892 10f73 34       		.uleb128 0x34
- 48893 10f74 380D0000 		.long	0xd38
- 48894 10f78 03       		.byte	0x3
- 48895 10f79 91       		.byte	0x91
- 48896 10f7a 9C7B     		.sleb128 -612
- 48897 10f7c 31       		.uleb128 0x31
- 48898 10f7d 4F0D0000 		.long	0xd4f
- 48899 10f81 00000000 		.quad	.LBB4716
- 48899      00000000 
- 48900 10f89 00000000 		.quad	.LBE4716
- 48900      00000000 
- 48901 10f91 02       		.byte	0x2
- 48902 10f92 5603     		.value	0x356
- 48903 10f94 AB0F0100 		.long	0x10fab
- 48904 10f98 32       		.uleb128 0x32
- 48905 10f99 6A0D0000 		.long	0xd6a
- 48906 10f9d 03       		.byte	0x3
- 48907 10f9e 91       		.byte	0x91
- 48908 10f9f E07B     		.sleb128 -544
- 48909 10fa1 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1189
-
-
- 48910 10fa2 600D0000 		.long	0xd60
- 48911 10fa6 03       		.byte	0x3
- 48912 10fa7 91       		.byte	0x91
- 48913 10fa8 F07B     		.sleb128 -528
- 48914 10faa 00       		.byte	0x0
- 48915 10fab 31       		.uleb128 0x31
- 48916 10fac 750D0000 		.long	0xd75
- 48917 10fb0 00000000 		.quad	.LBB4718
- 48917      00000000 
- 48918 10fb8 00000000 		.quad	.LBE4718
- 48918      00000000 
- 48919 10fc0 02       		.byte	0x2
- 48920 10fc1 5903     		.value	0x359
- 48921 10fc3 DA0F0100 		.long	0x10fda
- 48922 10fc7 32       		.uleb128 0x32
- 48923 10fc8 930D0000 		.long	0xd93
- 48924 10fcc 03       		.byte	0x3
- 48925 10fcd 91       		.byte	0x91
- 48926 10fce 8C7C     		.sleb128 -500
- 48927 10fd0 32       		.uleb128 0x32
- 48928 10fd1 870D0000 		.long	0xd87
- 48929 10fd5 03       		.byte	0x3
- 48930 10fd6 91       		.byte	0x91
- 48931 10fd7 907C     		.sleb128 -496
- 48932 10fd9 00       		.byte	0x0
- 48933 10fda 31       		.uleb128 0x31
- 48934 10fdb 4F0D0000 		.long	0xd4f
- 48935 10fdf 00000000 		.quad	.LBB4720
- 48935      00000000 
- 48936 10fe7 00000000 		.quad	.LBE4720
- 48936      00000000 
- 48937 10fef 02       		.byte	0x2
- 48938 10ff0 5B03     		.value	0x35b
- 48939 10ff2 09100100 		.long	0x11009
- 48940 10ff6 32       		.uleb128 0x32
- 48941 10ff7 6A0D0000 		.long	0xd6a
- 48942 10ffb 03       		.byte	0x3
- 48943 10ffc 91       		.byte	0x91
- 48944 10ffd A07C     		.sleb128 -480
- 48945 10fff 32       		.uleb128 0x32
- 48946 11000 600D0000 		.long	0xd60
- 48947 11004 03       		.byte	0x3
- 48948 11005 91       		.byte	0x91
- 48949 11006 B07C     		.sleb128 -464
- 48950 11008 00       		.byte	0x0
- 48951 11009 31       		.uleb128 0x31
- 48952 1100a A00D0000 		.long	0xda0
- 48953 1100e 00000000 		.quad	.LBB4722
- 48953      00000000 
- 48954 11016 00000000 		.quad	.LBE4722
- 48954      00000000 
- 48955 1101e 02       		.byte	0x2
- 48956 1101f 6403     		.value	0x364
- 48957 11021 63100100 		.long	0x11063
- 48958 11025 32       		.uleb128 0x32
- 48959 11026 BE0D0000 		.long	0xdbe
- 48960 1102a 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1190
-
-
- 48961 1102b 91       		.byte	0x91
- 48962 1102c C07C     		.sleb128 -448
- 48963 1102e 32       		.uleb128 0x32
- 48964 1102f B20D0000 		.long	0xdb2
- 48965 11033 03       		.byte	0x3
- 48966 11034 91       		.byte	0x91
- 48967 11035 D07C     		.sleb128 -432
- 48968 11037 35       		.uleb128 0x35
- 48969 11038 CB0D0000 		.long	0xdcb
- 48970 1103c 00000000 		.quad	.LBB4724
- 48970      00000000 
- 48971 11044 00000000 		.quad	.LBE4724
- 48971      00000000 
- 48972 1104c 02       		.byte	0x2
- 48973 1104d 7501     		.value	0x175
- 48974 1104f 32       		.uleb128 0x32
- 48975 11050 E90D0000 		.long	0xde9
- 48976 11054 03       		.byte	0x3
- 48977 11055 91       		.byte	0x91
- 48978 11056 E07C     		.sleb128 -416
- 48979 11058 32       		.uleb128 0x32
- 48980 11059 DD0D0000 		.long	0xddd
- 48981 1105d 03       		.byte	0x3
- 48982 1105e 91       		.byte	0x91
- 48983 1105f F07C     		.sleb128 -400
- 48984 11061 00       		.byte	0x0
- 48985 11062 00       		.byte	0x0
- 48986 11063 31       		.uleb128 0x31
- 48987 11064 FB0D0000 		.long	0xdfb
- 48988 11068 00000000 		.quad	.LBB4726
- 48988      00000000 
- 48989 11070 00000000 		.quad	.LBE4726
- 48989      00000000 
- 48990 11078 02       		.byte	0x2
- 48991 11079 6603     		.value	0x366
- 48992 1107b 92100100 		.long	0x11092
- 48993 1107f 32       		.uleb128 0x32
- 48994 11080 160E0000 		.long	0xe16
- 48995 11084 03       		.byte	0x3
- 48996 11085 91       		.byte	0x91
- 48997 11086 807D     		.sleb128 -384
- 48998 11088 32       		.uleb128 0x32
- 48999 11089 0C0E0000 		.long	0xe0c
- 49000 1108d 03       		.byte	0x3
- 49001 1108e 91       		.byte	0x91
- 49002 1108f 907D     		.sleb128 -368
- 49003 11091 00       		.byte	0x0
- 49004 11092 31       		.uleb128 0x31
- 49005 11093 A00D0000 		.long	0xda0
- 49006 11097 00000000 		.quad	.LBB4728
- 49006      00000000 
- 49007 1109f 00000000 		.quad	.LBE4728
- 49007      00000000 
- 49008 110a7 02       		.byte	0x2
- 49009 110a8 6803     		.value	0x368
- 49010 110aa EC100100 		.long	0x110ec
- 49011 110ae 32       		.uleb128 0x32
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1191
-
-
- 49012 110af BE0D0000 		.long	0xdbe
- 49013 110b3 03       		.byte	0x3
- 49014 110b4 91       		.byte	0x91
- 49015 110b5 A07D     		.sleb128 -352
- 49016 110b7 32       		.uleb128 0x32
- 49017 110b8 B20D0000 		.long	0xdb2
- 49018 110bc 03       		.byte	0x3
- 49019 110bd 91       		.byte	0x91
- 49020 110be B07D     		.sleb128 -336
- 49021 110c0 35       		.uleb128 0x35
- 49022 110c1 CB0D0000 		.long	0xdcb
- 49023 110c5 00000000 		.quad	.LBB4730
- 49023      00000000 
- 49024 110cd 00000000 		.quad	.LBE4730
- 49024      00000000 
- 49025 110d5 02       		.byte	0x2
- 49026 110d6 7501     		.value	0x175
- 49027 110d8 32       		.uleb128 0x32
- 49028 110d9 E90D0000 		.long	0xde9
- 49029 110dd 03       		.byte	0x3
- 49030 110de 91       		.byte	0x91
- 49031 110df C07D     		.sleb128 -320
- 49032 110e1 32       		.uleb128 0x32
- 49033 110e2 DD0D0000 		.long	0xddd
- 49034 110e6 03       		.byte	0x3
- 49035 110e7 91       		.byte	0x91
- 49036 110e8 D07D     		.sleb128 -304
- 49037 110ea 00       		.byte	0x0
- 49038 110eb 00       		.byte	0x0
- 49039 110ec 31       		.uleb128 0x31
- 49040 110ed FB0D0000 		.long	0xdfb
- 49041 110f1 00000000 		.quad	.LBB4732
- 49041      00000000 
- 49042 110f9 00000000 		.quad	.LBE4732
- 49042      00000000 
- 49043 11101 02       		.byte	0x2
- 49044 11102 6A03     		.value	0x36a
- 49045 11104 1B110100 		.long	0x1111b
- 49046 11108 32       		.uleb128 0x32
- 49047 11109 160E0000 		.long	0xe16
- 49048 1110d 03       		.byte	0x3
- 49049 1110e 91       		.byte	0x91
- 49050 1110f E07D     		.sleb128 -288
- 49051 11111 32       		.uleb128 0x32
- 49052 11112 0C0E0000 		.long	0xe0c
- 49053 11116 03       		.byte	0x3
- 49054 11117 91       		.byte	0x91
- 49055 11118 F07D     		.sleb128 -272
- 49056 1111a 00       		.byte	0x0
- 49057 1111b 31       		.uleb128 0x31
- 49058 1111c 210E0000 		.long	0xe21
- 49059 11120 00000000 		.quad	.LBB4734
- 49059      00000000 
- 49060 11128 00000000 		.quad	.LBE4734
- 49060      00000000 
- 49061 11130 02       		.byte	0x2
- 49062 11131 6C03     		.value	0x36c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1192
-
-
- 49063 11133 4A110100 		.long	0x1114a
- 49064 11137 32       		.uleb128 0x32
- 49065 11138 3E0E0000 		.long	0xe3e
- 49066 1113c 03       		.byte	0x3
- 49067 1113d 91       		.byte	0x91
- 49068 1113e 807E     		.sleb128 -256
- 49069 11140 32       		.uleb128 0x32
- 49070 11141 330E0000 		.long	0xe33
- 49071 11145 03       		.byte	0x3
- 49072 11146 91       		.byte	0x91
- 49073 11147 907E     		.sleb128 -240
- 49074 11149 00       		.byte	0x0
- 49075 1114a 35       		.uleb128 0x35
- 49076 1114b 4F0D0000 		.long	0xd4f
- 49077 1114f 00000000 		.quad	.LBB4736
- 49077      00000000 
- 49078 11157 00000000 		.quad	.LBE4736
- 49078      00000000 
- 49079 1115f 02       		.byte	0x2
- 49080 11160 6E03     		.value	0x36e
- 49081 11162 32       		.uleb128 0x32
- 49082 11163 6A0D0000 		.long	0xd6a
- 49083 11167 03       		.byte	0x3
- 49084 11168 91       		.byte	0x91
- 49085 11169 A07E     		.sleb128 -224
- 49086 1116b 32       		.uleb128 0x32
- 49087 1116c 600D0000 		.long	0xd60
- 49088 11170 03       		.byte	0x3
- 49089 11171 91       		.byte	0x91
- 49090 11172 B07E     		.sleb128 -208
- 49091 11174 00       		.byte	0x0
- 49092 11175 00       		.byte	0x0
- 49093 11176 00       		.byte	0x0
- 49094 11177 00       		.byte	0x0
- 49095 11178 36       		.uleb128 0x36
- 49096 11179 00000000 		.quad	.LBB4738
- 49096      00000000 
- 49097 11181 00000000 		.quad	.LBE4738
- 49097      00000000 
- 49098 11189 97110100 		.long	0x11197
- 49099 1118d 34       		.uleb128 0x34
- 49100 1118e D7FC0000 		.long	0xfcd7
- 49101 11192 03       		.byte	0x3
- 49102 11193 91       		.byte	0x91
- 49103 11194 B067     		.sleb128 -3152
- 49104 11196 00       		.byte	0x0
- 49105 11197 31       		.uleb128 0x31
- 49106 11198 57FC0000 		.long	0xfc57
- 49107 1119c 00000000 		.quad	.LBB4739
- 49107      00000000 
- 49108 111a4 00000000 		.quad	.LBE4739
- 49108      00000000 
- 49109 111ac 02       		.byte	0x2
- 49110 111ad C708     		.value	0x8c7
- 49111 111af 34120100 		.long	0x11234
- 49112 111b3 32       		.uleb128 0x32
- 49113 111b4 69FC0000 		.long	0xfc69
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1193
-
-
- 49114 111b8 03       		.byte	0x3
- 49115 111b9 91       		.byte	0x91
- 49116 111ba C07E     		.sleb128 -192
- 49117 111bc 33       		.uleb128 0x33
- 49118 111bd 00000000 		.quad	.LBB4740
- 49118      00000000 
- 49119 111c5 00000000 		.quad	.LBE4740
- 49119      00000000 
- 49120 111cd 34       		.uleb128 0x34
- 49121 111ce 75FC0000 		.long	0xfc75
- 49122 111d2 09       		.byte	0x9
- 49123 111d3 03       		.byte	0x3
- 49124 111d4 00000000 		.quad	InvShiftRowTable.7367
- 49124      00000000 
- 49125 111dc 35       		.uleb128 0x35
- 49126 111dd A00D0000 		.long	0xda0
- 49127 111e1 00000000 		.quad	.LBB4741
- 49127      00000000 
- 49128 111e9 00000000 		.quad	.LBE4741
- 49128      00000000 
- 49129 111f1 02       		.byte	0x2
- 49130 111f2 6402     		.value	0x264
- 49131 111f4 32       		.uleb128 0x32
- 49132 111f5 BE0D0000 		.long	0xdbe
- 49133 111f9 03       		.byte	0x3
- 49134 111fa 91       		.byte	0x91
- 49135 111fb D07E     		.sleb128 -176
- 49136 111fd 32       		.uleb128 0x32
- 49137 111fe B20D0000 		.long	0xdb2
- 49138 11202 03       		.byte	0x3
- 49139 11203 91       		.byte	0x91
- 49140 11204 E07E     		.sleb128 -160
- 49141 11206 35       		.uleb128 0x35
- 49142 11207 CB0D0000 		.long	0xdcb
- 49143 1120b 00000000 		.quad	.LBB4743
- 49143      00000000 
- 49144 11213 00000000 		.quad	.LBE4743
- 49144      00000000 
- 49145 1121b 02       		.byte	0x2
- 49146 1121c 7501     		.value	0x175
- 49147 1121e 32       		.uleb128 0x32
- 49148 1121f E90D0000 		.long	0xde9
- 49149 11223 03       		.byte	0x3
- 49150 11224 91       		.byte	0x91
- 49151 11225 F07E     		.sleb128 -144
- 49152 11227 32       		.uleb128 0x32
- 49153 11228 DD0D0000 		.long	0xddd
- 49154 1122c 03       		.byte	0x3
- 49155 1122d 91       		.byte	0x91
- 49156 1122e 807F     		.sleb128 -128
- 49157 11230 00       		.byte	0x0
- 49158 11231 00       		.byte	0x0
- 49159 11232 00       		.byte	0x0
- 49160 11233 00       		.byte	0x0
- 49161 11234 36       		.uleb128 0x36
- 49162 11235 00000000 		.quad	.LBB4745
- 49162      00000000 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1194
-
-
- 49163 1123d 00000000 		.quad	.LBE4745
- 49163      00000000 
- 49164 11245 53120100 		.long	0x11253
- 49165 11249 34       		.uleb128 0x34
- 49166 1124a E7FC0000 		.long	0xfce7
- 49167 1124e 03       		.byte	0x3
- 49168 1124f 91       		.byte	0x91
- 49169 11250 A067     		.sleb128 -3168
- 49170 11252 00       		.byte	0x0
- 49171 11253 31       		.uleb128 0x31
- 49172 11254 34E90000 		.long	0xe934
- 49173 11258 00000000 		.quad	.LBB4746
- 49173      00000000 
- 49174 11260 00000000 		.quad	.LBE4746
- 49174      00000000 
- 49175 11268 02       		.byte	0x2
- 49176 11269 CB08     		.value	0x8cb
- 49177 1126b AC120100 		.long	0x112ac
- 49178 1126f 32       		.uleb128 0x32
- 49179 11270 52E90000 		.long	0xe952
- 49180 11274 03       		.byte	0x3
- 49181 11275 91       		.byte	0x91
- 49182 11276 907F     		.sleb128 -112
- 49183 11278 32       		.uleb128 0x32
- 49184 11279 46E90000 		.long	0xe946
- 49185 1127d 03       		.byte	0x3
- 49186 1127e 91       		.byte	0x91
- 49187 1127f A07F     		.sleb128 -96
- 49188 11281 35       		.uleb128 0x35
- 49189 11282 860E0000 		.long	0xe86
- 49190 11286 00000000 		.quad	.LBB4748
- 49190      00000000 
- 49191 1128e 00000000 		.quad	.LBE4748
- 49191      00000000 
- 49192 11296 02       		.byte	0x2
- 49193 11297 2302     		.value	0x223
- 49194 11299 32       		.uleb128 0x32
- 49195 1129a A10E0000 		.long	0xea1
- 49196 1129e 03       		.byte	0x3
- 49197 1129f 91       		.byte	0x91
- 49198 112a0 B07F     		.sleb128 -80
- 49199 112a2 32       		.uleb128 0x32
- 49200 112a3 970E0000 		.long	0xe97
- 49201 112a7 02       		.byte	0x2
- 49202 112a8 91       		.byte	0x91
- 49203 112a9 40       		.sleb128 -64
- 49204 112aa 00       		.byte	0x0
- 49205 112ab 00       		.byte	0x0
- 49206 112ac 36       		.uleb128 0x36
- 49207 112ad 00000000 		.quad	.LBB4750
- 49207      00000000 
- 49208 112b5 00000000 		.quad	.LBE4750
- 49208      00000000 
- 49209 112bd CB120100 		.long	0x112cb
- 49210 112c1 34       		.uleb128 0x34
- 49211 112c2 F7FC0000 		.long	0xfcf7
- 49212 112c6 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1195
-
-
- 49213 112c7 91       		.byte	0x91
- 49214 112c8 9067     		.sleb128 -3184
- 49215 112ca 00       		.byte	0x0
- 49216 112cb 33       		.uleb128 0x33
- 49217 112cc 00000000 		.quad	.LBB4751
- 49217      00000000 
- 49218 112d4 00000000 		.quad	.LBE4751
- 49218      00000000 
- 49219 112dc 34       		.uleb128 0x34
- 49220 112dd 03FD0000 		.long	0xfd03
- 49221 112e1 03       		.byte	0x3
- 49222 112e2 91       		.byte	0x91
- 49223 112e3 8067     		.sleb128 -3200
- 49224 112e5 00       		.byte	0x0
- 49225 112e6 00       		.byte	0x0
- 49226 112e7 00       		.byte	0x0
- 49227 112e8 2D       		.uleb128 0x2d
- 49228 112e9 00000000 		.long	.LASF395
- 49229 112ed 02       		.byte	0x2
- 49230 112ee 0309     		.value	0x903
- 49231 112f0 01       		.byte	0x1
- 49232 112f1 00000000 		.quad	.LFB660
- 49232      00000000 
- 49233 112f9 00000000 		.quad	.LFE660
- 49233      00000000 
- 49234 11301 00000000 		.long	.LLST10
- 49235 11305 19130100 		.long	0x11319
- 49236 11309 2E       		.uleb128 0x2e
- 49237 1130a 00000000 		.long	.LASF396
- 49238 1130e 02       		.byte	0x2
- 49239 1130f 0309     		.value	0x903
- 49240 11311 D2030000 		.long	0x3d2
- 49241 11315 02       		.byte	0x2
- 49242 11316 91       		.byte	0x91
- 49243 11317 68       		.sleb128 -24
- 49244 11318 00       		.byte	0x0
- 49245 11319 3A       		.uleb128 0x3a
- 49246 1131a 00000000 		.long	.LASF397
- 49247 1131e 02       		.byte	0x2
- 49248 1131f 0D09     		.value	0x90d
- 49249 11321 6D000000 		.long	0x6d
- 49250 11325 00000000 		.quad	.LFB661
- 49250      00000000 
- 49251 1132d 00000000 		.quad	.LFE661
- 49251      00000000 
- 49252 11335 00000000 		.long	.LLST11
- 49253 11339 3A       		.uleb128 0x3a
- 49254 1133a 00000000 		.long	.LASF398
- 49255 1133e 02       		.byte	0x2
- 49256 1133f 1C09     		.value	0x91c
- 49257 11341 6D000000 		.long	0x6d
- 49258 11345 00000000 		.quad	.LFB662
- 49258      00000000 
- 49259 1134d 00000000 		.quad	.LFE662
- 49259      00000000 
- 49260 11355 00000000 		.long	.LLST12
- 49261 11359 39       		.uleb128 0x39
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1196
-
-
- 49262 1135a 00000000 		.long	.LASF399
- 49263 1135e 02       		.byte	0x2
- 49264 1135f 2909     		.value	0x929
- 49265 11361 01       		.byte	0x1
- 49266 11362 91000000 		.long	0x91
- 49267 11366 00000000 		.quad	.LFB663
- 49267      00000000 
- 49268 1136e 00000000 		.quad	.LFE663
- 49268      00000000 
- 49269 11376 00000000 		.long	.LLST13
- 49270 1137a F1130100 		.long	0x113f1
- 49271 1137e 2E       		.uleb128 0x2e
- 49272 1137f 00000000 		.long	.LASF400
- 49273 11383 02       		.byte	0x2
- 49274 11384 2909     		.value	0x929
- 49275 11386 C4000000 		.long	0xc4
- 49276 1138a 02       		.byte	0x2
- 49277 1138b 91       		.byte	0x91
- 49278 1138c 58       		.sleb128 -40
- 49279 1138d 2E       		.uleb128 0x2e
- 49280 1138e 00000000 		.long	.LASF401
- 49281 11392 02       		.byte	0x2
- 49282 11393 2909     		.value	0x929
- 49283 11395 B9000000 		.long	0xb9
- 49284 11399 02       		.byte	0x2
- 49285 1139a 91       		.byte	0x91
- 49286 1139b 50       		.sleb128 -48
- 49287 1139c 2E       		.uleb128 0x2e
- 49288 1139d 00000000 		.long	.LASF402
- 49289 113a1 02       		.byte	0x2
- 49290 113a2 2A09     		.value	0x92a
- 49291 113a4 6D000000 		.long	0x6d
- 49292 113a8 02       		.byte	0x2
- 49293 113a9 91       		.byte	0x91
- 49294 113aa 4C       		.sleb128 -52
- 49295 113ab 37       		.uleb128 0x37
- 49296 113ac 726300   		.string	"rc"
- 49297 113af 02       		.byte	0x2
- 49298 113b0 2C09     		.value	0x92c
- 49299 113b2 91000000 		.long	0x91
- 49300 113b6 02       		.byte	0x2
- 49301 113b7 91       		.byte	0x91
- 49302 113b8 64       		.sleb128 -28
- 49303 113b9 37       		.uleb128 0x37
- 49304 113ba 6B657900 		.string	"key"
- 49305 113be 02       		.byte	0x2
- 49306 113bf 2D09     		.value	0x92d
- 49307 113c1 F1130100 		.long	0x113f1
- 49308 113c5 02       		.byte	0x2
- 49309 113c6 91       		.byte	0x91
- 49310 113c7 68       		.sleb128 -24
- 49311 113c8 3B       		.uleb128 0x3b
- 49312 113c9 00000000 		.long	.LASF366
- 49313 113cd 07140100 		.long	0x11407
- 49314 113d1 01       		.byte	0x1
- 49315 113d2 09       		.byte	0x9
- 49316 113d3 03       		.byte	0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1197
-
-
- 49317 113d4 00000000 		.quad	__PRETTY_FUNCTION__.9026
- 49317      00000000 
- 49318 113dc 3B       		.uleb128 0x3b
- 49319 113dd 00000000 		.long	.LASF403
- 49320 113e1 0C140100 		.long	0x1140c
- 49321 113e5 01       		.byte	0x1
- 49322 113e6 09       		.byte	0x9
- 49323 113e7 03       		.byte	0x3
- 49324 113e8 00000000 		.quad	__func__.9027
- 49324      00000000 
- 49325 113f0 00       		.byte	0x0
- 49326 113f1 07       		.uleb128 0x7
- 49327 113f2 08       		.byte	0x8
- 49328 113f3 6D040000 		.long	0x46d
- 49329 113f7 19       		.uleb128 0x19
- 49330 113f8 9F000000 		.long	0x9f
- 49331 113fc 07140100 		.long	0x11407
- 49332 11400 1A       		.uleb128 0x1a
- 49333 11401 9C000000 		.long	0x9c
- 49334 11405 22       		.byte	0x22
- 49335 11406 00       		.byte	0x0
- 49336 11407 06       		.uleb128 0x6
- 49337 11408 F7130100 		.long	0x113f7
- 49338 1140c 06       		.uleb128 0x6
- 49339 1140d F7130100 		.long	0x113f7
- 49340 11411 39       		.uleb128 0x39
- 49341 11412 00000000 		.long	.LASF404
- 49342 11416 02       		.byte	0x2
- 49343 11417 5409     		.value	0x954
- 49344 11419 01       		.byte	0x1
- 49345 1141a 91000000 		.long	0x91
- 49346 1141e 00000000 		.quad	.LFB664
- 49346      00000000 
- 49347 11426 00000000 		.quad	.LFE664
- 49347      00000000 
- 49348 1142e 00000000 		.long	.LLST14
- 49349 11432 A6140100 		.long	0x114a6
- 49350 11436 2E       		.uleb128 0x2e
- 49351 11437 00000000 		.long	.LASF405
- 49352 1143b 02       		.byte	0x2
- 49353 1143c 5409     		.value	0x954
- 49354 1143e C4000000 		.long	0xc4
- 49355 11442 03       		.byte	0x3
- 49356 11443 91       		.byte	0x91
- 49357 11444 D87D     		.sleb128 -296
- 49358 11446 2E       		.uleb128 0x2e
- 49359 11447 00000000 		.long	.LASF401
- 49360 1144b 02       		.byte	0x2
- 49361 1144c 5509     		.value	0x955
- 49362 1144e B9000000 		.long	0xb9
- 49363 11452 03       		.byte	0x3
- 49364 11453 91       		.byte	0x91
- 49365 11454 D07D     		.sleb128 -304
- 49366 11456 2E       		.uleb128 0x2e
- 49367 11457 00000000 		.long	.LASF402
- 49368 1145b 02       		.byte	0x2
- 49369 1145c 5609     		.value	0x956
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1198
-
-
- 49370 1145e 6D000000 		.long	0x6d
- 49371 11462 03       		.byte	0x3
- 49372 11463 91       		.byte	0x91
- 49373 11464 CC7D     		.sleb128 -308
- 49374 11466 30       		.uleb128 0x30
- 49375 11467 00000000 		.long	.LASF400
- 49376 1146b 02       		.byte	0x2
- 49377 1146c 5809     		.value	0x958
- 49378 1146e 6D040000 		.long	0x46d
- 49379 11472 03       		.byte	0x3
- 49380 11473 91       		.byte	0x91
- 49381 11474 E07D     		.sleb128 -288
- 49382 11476 37       		.uleb128 0x37
- 49383 11477 726300   		.string	"rc"
- 49384 1147a 02       		.byte	0x2
- 49385 1147b 5909     		.value	0x959
- 49386 1147d 91000000 		.long	0x91
- 49387 11481 02       		.byte	0x2
- 49388 11482 91       		.byte	0x91
- 49389 11483 64       		.sleb128 -28
- 49390 11484 33       		.uleb128 0x33
- 49391 11485 00000000 		.quad	.LBB4752
- 49391      00000000 
- 49392 1148d 00000000 		.quad	.LBE4752
- 49392      00000000 
- 49393 11495 37       		.uleb128 0x37
- 49394 11496 6B657900 		.string	"key"
- 49395 1149a 02       		.byte	0x2
- 49396 1149b 5E09     		.value	0x95e
- 49397 1149d F1130100 		.long	0x113f1
- 49398 114a1 02       		.byte	0x2
- 49399 114a2 91       		.byte	0x91
- 49400 114a3 68       		.sleb128 -24
- 49401 114a4 00       		.byte	0x0
- 49402 114a5 00       		.byte	0x0
- 49403 114a6 39       		.uleb128 0x39
- 49404 114a7 00000000 		.long	.LASF406
- 49405 114ab 02       		.byte	0x2
- 49406 114ac 8009     		.value	0x980
- 49407 114ae 01       		.byte	0x1
- 49408 114af B3010000 		.long	0x1b3
- 49409 114b3 00000000 		.quad	.LFB665
- 49409      00000000 
- 49410 114bb 00000000 		.quad	.LFE665
- 49410      00000000 
- 49411 114c3 00000000 		.long	.LLST15
- 49412 114c7 0D150100 		.long	0x1150d
- 49413 114cb 2E       		.uleb128 0x2e
- 49414 114cc 00000000 		.long	.LASF67
- 49415 114d0 02       		.byte	0x2
- 49416 114d1 8009     		.value	0x980
- 49417 114d3 B3010000 		.long	0x1b3
- 49418 114d7 02       		.byte	0x2
- 49419 114d8 91       		.byte	0x91
- 49420 114d9 50       		.sleb128 -48
- 49421 114da 2E       		.uleb128 0x2e
- 49422 114db 00000000 		.long	.LASF400
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1199
-
-
- 49423 114df 02       		.byte	0x2
- 49424 114e0 8109     		.value	0x981
- 49425 114e2 D3000000 		.long	0xd3
- 49426 114e6 02       		.byte	0x2
- 49427 114e7 91       		.byte	0x91
- 49428 114e8 48       		.sleb128 -56
- 49429 114e9 37       		.uleb128 0x37
- 49430 114ea 6B657900 		.string	"key"
- 49431 114ee 02       		.byte	0x2
- 49432 114ef 8309     		.value	0x983
- 49433 114f1 0D150100 		.long	0x1150d
- 49434 114f5 02       		.byte	0x2
- 49435 114f6 91       		.byte	0x91
- 49436 114f7 68       		.sleb128 -24
- 49437 114f8 3B       		.uleb128 0x3b
- 49438 114f9 00000000 		.long	.LASF366
- 49439 114fd 28150100 		.long	0x11528
- 49440 11501 01       		.byte	0x1
- 49441 11502 09       		.byte	0x9
- 49442 11503 03       		.byte	0x3
- 49443 11504 00000000 		.quad	__PRETTY_FUNCTION__.9063
- 49443      00000000 
- 49444 1150c 00       		.byte	0x0
- 49445 1150d 07       		.uleb128 0x7
- 49446 1150e 08       		.byte	0x8
- 49447 1150f 13150100 		.long	0x11513
- 49448 11513 06       		.uleb128 0x6
- 49449 11514 6D040000 		.long	0x46d
- 49450 11518 19       		.uleb128 0x19
- 49451 11519 9F000000 		.long	0x9f
- 49452 1151d 28150100 		.long	0x11528
- 49453 11521 1A       		.uleb128 0x1a
- 49454 11522 9C000000 		.long	0x9c
- 49455 11526 1C       		.byte	0x1c
- 49456 11527 00       		.byte	0x0
- 49457 11528 06       		.uleb128 0x6
- 49458 11529 18150100 		.long	0x11518
- 49459 1152d 39       		.uleb128 0x39
- 49460 1152e 00000000 		.long	.LASF407
- 49461 11532 02       		.byte	0x2
- 49462 11533 A409     		.value	0x9a4
- 49463 11535 01       		.byte	0x1
- 49464 11536 B3010000 		.long	0x1b3
- 49465 1153a 00000000 		.quad	.LFB666
- 49465      00000000 
- 49466 11542 00000000 		.quad	.LFE666
- 49466      00000000 
- 49467 1154a 00000000 		.long	.LLST16
- 49468 1154e 94150100 		.long	0x11594
- 49469 11552 2E       		.uleb128 0x2e
- 49470 11553 00000000 		.long	.LASF67
- 49471 11557 02       		.byte	0x2
- 49472 11558 A409     		.value	0x9a4
- 49473 1155a B3010000 		.long	0x1b3
- 49474 1155e 02       		.byte	0x2
- 49475 1155f 91       		.byte	0x91
- 49476 11560 50       		.sleb128 -48
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1200
-
-
- 49477 11561 2E       		.uleb128 0x2e
- 49478 11562 00000000 		.long	.LASF405
- 49479 11566 02       		.byte	0x2
- 49480 11567 A509     		.value	0x9a5
- 49481 11569 D3000000 		.long	0xd3
- 49482 1156d 02       		.byte	0x2
- 49483 1156e 91       		.byte	0x91
- 49484 1156f 48       		.sleb128 -56
- 49485 11570 37       		.uleb128 0x37
- 49486 11571 6B657900 		.string	"key"
- 49487 11575 02       		.byte	0x2
- 49488 11576 A709     		.value	0x9a7
- 49489 11578 0D150100 		.long	0x1150d
- 49490 1157c 02       		.byte	0x2
- 49491 1157d 91       		.byte	0x91
- 49492 1157e 68       		.sleb128 -24
- 49493 1157f 3B       		.uleb128 0x3b
- 49494 11580 00000000 		.long	.LASF366
- 49495 11584 94150100 		.long	0x11594
- 49496 11588 01       		.byte	0x1
- 49497 11589 09       		.byte	0x9
- 49498 1158a 03       		.byte	0x3
- 49499 1158b 00000000 		.quad	__PRETTY_FUNCTION__.9084
- 49499      00000000 
- 49500 11593 00       		.byte	0x0
- 49501 11594 06       		.uleb128 0x6
- 49502 11595 18150100 		.long	0x11518
- 49503 11599 3C       		.uleb128 0x3c
- 49504 1159a 00000000 		.long	.LASF408
- 49505 1159e 02       		.byte	0x2
- 49506 1159f CC09     		.value	0x9cc
- 49507 115a1 24160100 		.long	0x11624
- 49508 115a5 00000000 		.quad	.LFB667
- 49508      00000000 
- 49509 115ad 00000000 		.quad	.LFE667
- 49509      00000000 
- 49510 115b5 00000000 		.long	.LLST17
- 49511 115b9 24160100 		.long	0x11624
- 49512 115bd 30       		.uleb128 0x30
- 49513 115be 00000000 		.long	.LASF409
- 49514 115c2 02       		.byte	0x2
- 49515 115c3 CE09     		.value	0x9ce
- 49516 115c5 6D000000 		.long	0x6d
- 49517 115c9 02       		.byte	0x2
- 49518 115ca 91       		.byte	0x91
- 49519 115cb 48       		.sleb128 -56
- 49520 115cc 37       		.uleb128 0x37
- 49521 115cd 6100     		.string	"a"
- 49522 115cf 02       		.byte	0x2
- 49523 115d0 CE09     		.value	0x9ce
- 49524 115d2 6D000000 		.long	0x6d
- 49525 115d6 02       		.byte	0x2
- 49526 115d7 91       		.byte	0x91
- 49527 115d8 4C       		.sleb128 -52
- 49528 115d9 37       		.uleb128 0x37
- 49529 115da 6200     		.string	"b"
- 49530 115dc 02       		.byte	0x2
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1201
-
-
- 49531 115dd CE09     		.value	0x9ce
- 49532 115df 6D000000 		.long	0x6d
- 49533 115e3 02       		.byte	0x2
- 49534 115e4 91       		.byte	0x91
- 49535 115e5 50       		.sleb128 -48
- 49536 115e6 37       		.uleb128 0x37
- 49537 115e7 6300     		.string	"c"
- 49538 115e9 02       		.byte	0x2
- 49539 115ea CE09     		.value	0x9ce
- 49540 115ec 6D000000 		.long	0x6d
- 49541 115f0 02       		.byte	0x2
- 49542 115f1 91       		.byte	0x91
- 49543 115f2 54       		.sleb128 -44
- 49544 115f3 37       		.uleb128 0x37
- 49545 115f4 6400     		.string	"d"
- 49546 115f6 02       		.byte	0x2
- 49547 115f7 CE09     		.value	0x9ce
- 49548 115f9 6D000000 		.long	0x6d
- 49549 115fd 02       		.byte	0x2
- 49550 115fe 91       		.byte	0x91
- 49551 115ff 58       		.sleb128 -40
- 49552 11600 37       		.uleb128 0x37
- 49553 11601 72657400 		.string	"ret"
- 49554 11605 02       		.byte	0x2
- 49555 11606 CF09     		.value	0x9cf
- 49556 11608 24160100 		.long	0x11624
- 49557 1160c 02       		.byte	0x2
- 49558 1160d 91       		.byte	0x91
- 49559 1160e 5F       		.sleb128 -33
- 49560 1160f 3B       		.uleb128 0x3b
- 49561 11610 00000000 		.long	.LASF403
- 49562 11614 3B160100 		.long	0x1163b
- 49563 11618 01       		.byte	0x1
- 49564 11619 09       		.byte	0x9
- 49565 1161a 03       		.byte	0x3
- 49566 1161b 00000000 		.quad	__func__.9108
- 49566      00000000 
- 49567 11623 00       		.byte	0x0
- 49568 11624 02       		.uleb128 0x2
- 49569 11625 01       		.byte	0x1
- 49570 11626 02       		.byte	0x2
- 49571 11627 00000000 		.long	.LASF410
- 49572 1162b 19       		.uleb128 0x19
- 49573 1162c 9F000000 		.long	0x9f
- 49574 11630 3B160100 		.long	0x1163b
- 49575 11634 1A       		.uleb128 0x1a
- 49576 11635 9C000000 		.long	0x9c
- 49577 11639 25       		.byte	0x25
- 49578 1163a 00       		.byte	0x0
- 49579 1163b 06       		.uleb128 0x6
- 49580 1163c 2B160100 		.long	0x1162b
- 49581 11640 3D       		.uleb128 0x3d
- 49582 11641 01       		.byte	0x1
- 49583 11642 00000000 		.long	.LASF428
- 49584 11646 02       		.byte	0x2
- 49585 11647 390A     		.value	0xa39
- 49586 11649 01       		.byte	0x1
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1202
-
-
- 49587 1164a 91000000 		.long	0x91
- 49588 1164e 00000000 		.quad	.LFB668
- 49588      00000000 
- 49589 11656 00000000 		.quad	.LFE668
- 49589      00000000 
- 49590 1165e 00000000 		.long	.LLST18
- 49591 11662 AC160100 		.long	0x116ac
- 49592 11666 2E       		.uleb128 0x2e
- 49593 11667 00000000 		.long	.LASF411
- 49594 1166b 02       		.byte	0x2
- 49595 1166c 390A     		.value	0xa39
- 49596 1166e AC160100 		.long	0x116ac
- 49597 11672 02       		.byte	0x2
- 49598 11673 91       		.byte	0x91
- 49599 11674 58       		.sleb128 -40
- 49600 11675 37       		.uleb128 0x37
- 49601 11676 726300   		.string	"rc"
- 49602 11679 02       		.byte	0x2
- 49603 1167a 3B0A     		.value	0xa3b
- 49604 1167c 91000000 		.long	0x91
- 49605 11680 02       		.byte	0x2
- 49606 11681 91       		.byte	0x91
- 49607 11682 6C       		.sleb128 -20
- 49608 11683 3B       		.uleb128 0x3b
- 49609 11684 00000000 		.long	.LASF403
- 49610 11688 C8160100 		.long	0x116c8
- 49611 1168c 01       		.byte	0x1
- 49612 1168d 09       		.byte	0x9
- 49613 1168e 03       		.byte	0x3
- 49614 1168f 00000000 		.quad	__func__.9198
- 49614      00000000 
- 49615 11697 3B       		.uleb128 0x3b
- 49616 11698 00000000 		.long	.LASF366
- 49617 1169c CD160100 		.long	0x116cd
- 49618 116a0 01       		.byte	0x1
- 49619 116a1 09       		.byte	0x9
- 49620 116a2 03       		.byte	0x3
- 49621 116a3 00000000 		.quad	__PRETTY_FUNCTION__.9199
- 49621      00000000 
- 49622 116ab 00       		.byte	0x0
- 49623 116ac 07       		.uleb128 0x7
- 49624 116ad 08       		.byte	0x8
- 49625 116ae B2160100 		.long	0x116b2
- 49626 116b2 07       		.uleb128 0x7
- 49627 116b3 08       		.byte	0x8
- 49628 116b4 34050000 		.long	0x534
- 49629 116b8 19       		.uleb128 0x19
- 49630 116b9 9F000000 		.long	0x9f
- 49631 116bd C8160100 		.long	0x116c8
- 49632 116c1 1A       		.uleb128 0x1a
- 49633 116c2 9C000000 		.long	0x9c
- 49634 116c6 19       		.byte	0x19
- 49635 116c7 00       		.byte	0x0
- 49636 116c8 06       		.uleb128 0x6
- 49637 116c9 B8160100 		.long	0x116b8
- 49638 116cd 06       		.uleb128 0x6
- 49639 116ce B8160100 		.long	0x116b8
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1203
-
-
- 49640 116d2 3E       		.uleb128 0x3e
- 49641 116d3 00000000 		.long	.LASF412
- 49642 116d7 02       		.byte	0x2
- 49643 116d8 53       		.byte	0x53
- 49644 116d9 4A0D0000 		.long	0xd4a
- 49645 116dd 09       		.byte	0x9
- 49646 116de 03       		.byte	0x3
- 49647 116df 00000000 		.quad	vec_00
- 49647      00000000 
- 49648 116e7 3E       		.uleb128 0x3e
- 49649 116e8 00000000 		.long	.LASF413
- 49650 116ec 02       		.byte	0x2
- 49651 116ed 57       		.byte	0x57
- 49652 116ee 4A0D0000 		.long	0xd4a
- 49653 116f2 09       		.byte	0x9
- 49654 116f3 03       		.byte	0x3
- 49655 116f4 00000000 		.quad	vec_01
- 49655      00000000 
- 49656 116fc 3E       		.uleb128 0x3e
- 49657 116fd 00000000 		.long	.LASF414
- 49658 11701 02       		.byte	0x2
- 49659 11702 5B       		.byte	0x5b
- 49660 11703 4A0D0000 		.long	0xd4a
- 49661 11707 09       		.byte	0x9
- 49662 11708 03       		.byte	0x3
- 49663 11709 00000000 		.quad	vec_0F
- 49663      00000000 
- 49664 11711 3E       		.uleb128 0x3e
- 49665 11712 00000000 		.long	.LASF415
- 49666 11716 02       		.byte	0x2
- 49667 11717 5F       		.byte	0x5f
- 49668 11718 4A0D0000 		.long	0xd4a
- 49669 1171c 09       		.byte	0x9
- 49670 1171d 03       		.byte	0x3
- 49671 1171e 00000000 		.quad	vec_10
- 49671      00000000 
- 49672 11726 19       		.uleb128 0x19
- 49673 11727 FE030000 		.long	0x3fe
- 49674 1172b 36170100 		.long	0x11736
- 49675 1172f 1A       		.uleb128 0x1a
- 49676 11730 9C000000 		.long	0x9c
- 49677 11734 FF       		.byte	0xff
- 49678 11735 00       		.byte	0x0
- 49679 11736 30       		.uleb128 0x30
- 49680 11737 00000000 		.long	.LASF416
- 49681 1173b 02       		.byte	0x2
- 49682 1173c AA02     		.value	0x2aa
- 49683 1173e 4C170100 		.long	0x1174c
- 49684 11742 09       		.byte	0x9
- 49685 11743 03       		.byte	0x3
- 49686 11744 00000000 		.quad	KAESBlockCipherVecRegRijndaelSBox
- 49686      00000000 
- 49687 1174c 06       		.uleb128 0x6
- 49688 1174d 26170100 		.long	0x11726
- 49689 11751 19       		.uleb128 0x19
- 49690 11752 B3010000 		.long	0x1b3
- 49691 11756 61170100 		.long	0x11761
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1204
-
-
- 49692 1175a 1A       		.uleb128 0x1a
- 49693 1175b 9C000000 		.long	0x9c
- 49694 1175f 0F       		.byte	0xf
- 49695 11760 00       		.byte	0x0
- 49696 11761 30       		.uleb128 0x30
- 49697 11762 00000000 		.long	.LASF417
- 49698 11766 02       		.byte	0x2
- 49699 11767 1903     		.value	0x319
- 49700 11769 77170100 		.long	0x11777
- 49701 1176d 09       		.byte	0x9
- 49702 1176e 03       		.byte	0x3
- 49703 1176f 00000000 		.quad	KAESBlockCipherVecRegRijndaelSBoxV
- 49703      00000000 
- 49704 11777 06       		.uleb128 0x6
- 49705 11778 51170100 		.long	0x11751
- 49706 1177c 30       		.uleb128 0x30
- 49707 1177d 00000000 		.long	.LASF418
- 49708 11781 02       		.byte	0x2
- 49709 11782 2F03     		.value	0x32f
- 49710 11784 92170100 		.long	0x11792
- 49711 11788 09       		.byte	0x9
- 49712 11789 03       		.byte	0x3
- 49713 1178a 00000000 		.quad	KAESBlockCipherVecRegRijndaelInvSBoxV
- 49713      00000000 
- 49714 11792 06       		.uleb128 0x6
- 49715 11793 51170100 		.long	0x11751
- 49716 11797 30       		.uleb128 0x30
- 49717 11798 00000000 		.long	.LASF419
- 49718 1179c 02       		.byte	0x2
- 49719 1179d 4603     		.value	0x346
- 49720 1179f 4A0D0000 		.long	0xd4a
- 49721 117a3 09       		.byte	0x9
- 49722 117a4 03       		.byte	0x3
- 49723 117a5 00000000 		.quad	lo_filter
- 49723      00000000 
- 49724 117ad 30       		.uleb128 0x30
- 49725 117ae 00000000 		.long	.LASF420
- 49726 117b2 02       		.byte	0x2
- 49727 117b3 9703     		.value	0x397
- 49728 117b5 4A0D0000 		.long	0xd4a
- 49729 117b9 09       		.byte	0x9
- 49730 117ba 03       		.byte	0x3
- 49731 117bb 00000000 		.quad	FF_tab
- 49731      00000000 
- 49732 117c3 19       		.uleb128 0x19
- 49733 117c4 FE030000 		.long	0x3fe
- 49734 117c8 D3170100 		.long	0x117d3
- 49735 117cc 1A       		.uleb128 0x1a
- 49736 117cd 9C000000 		.long	0x9c
- 49737 117d1 07       		.byte	0x7
- 49738 117d2 00       		.byte	0x0
- 49739 117d3 30       		.uleb128 0x30
- 49740 117d4 00000000 		.long	.LASF421
- 49741 117d8 02       		.byte	0x2
- 49742 117d9 DF03     		.value	0x3df
- 49743 117db C3170100 		.long	0x117c3
- 49744 117df 09       		.byte	0x9
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1205
-
-
- 49745 117e0 03       		.byte	0x3
- 49746 117e1 00000000 		.quad	KAESBlockCipherVecRegFFtable
- 49746      00000000 
- 49747 117e9 19       		.uleb128 0x19
- 49748 117ea 09040000 		.long	0x409
- 49749 117ee F9170100 		.long	0x117f9
- 49750 117f2 1A       		.uleb128 0x1a
- 49751 117f3 9C000000 		.long	0x9c
- 49752 117f7 09       		.byte	0x9
- 49753 117f8 00       		.byte	0x0
- 49754 117f9 30       		.uleb128 0x30
- 49755 117fa 00000000 		.long	.LASF422
- 49756 117fe 02       		.byte	0x2
- 49757 117ff 9E04     		.value	0x49e
- 49758 11801 0F180100 		.long	0x1180f
- 49759 11805 09       		.byte	0x9
- 49760 11806 03       		.byte	0x3
- 49761 11807 00000000 		.quad	KAESBlockCipherVecRegRcon
- 49761      00000000 
- 49762 1180f 06       		.uleb128 0x6
- 49763 11810 E9170100 		.long	0x117e9
- 49764 11814 19       		.uleb128 0x19
- 49765 11815 9F000000 		.long	0x9f
- 49766 11819 24180100 		.long	0x11824
- 49767 1181d 1A       		.uleb128 0x1a
- 49768 1181e 9C000000 		.long	0x9c
- 49769 11822 09       		.byte	0x9
- 49770 11823 00       		.byte	0x0
- 49771 11824 30       		.uleb128 0x30
- 49772 11825 00000000 		.long	.LASF423
- 49773 11829 02       		.byte	0x2
- 49774 1182a F708     		.value	0x8f7
- 49775 1182c 3A180100 		.long	0x1183a
- 49776 11830 09       		.byte	0x9
- 49777 11831 03       		.byte	0x3
- 49778 11832 00000000 		.quad	KAESBlockCipherVecRegaes_ncbi_name
- 49778      00000000 
- 49779 1183a 06       		.uleb128 0x6
- 49780 1183b 14180100 		.long	0x11814
- 49781 1183f 30       		.uleb128 0x30
- 49782 11840 00000000 		.long	.LASF424
- 49783 11844 02       		.byte	0x2
- 49784 11845 240A     		.value	0xa24
- 49785 11847 55180100 		.long	0x11855
- 49786 1184b 09       		.byte	0x9
- 49787 1184c 03       		.byte	0x3
- 49788 1184d 00000000 		.quad	KAESBlockCipherVecReg_vt_
- 49788      00000000 
- 49789 11855 06       		.uleb128 0x6
- 49790 11856 11030000 		.long	0x311
- 49791 1185a 00       		.byte	0x0
- 49792              		.section	.debug_abbrev
- 49793 0000 01       		.uleb128 0x1
- 49794 0001 11       		.uleb128 0x11
- 49795 0002 01       		.byte	0x1
- 49796 0003 25       		.uleb128 0x25
- 49797 0004 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1206
-
-
- 49798 0005 13       		.uleb128 0x13
- 49799 0006 0B       		.uleb128 0xb
- 49800 0007 03       		.uleb128 0x3
- 49801 0008 0E       		.uleb128 0xe
- 49802 0009 1B       		.uleb128 0x1b
- 49803 000a 0E       		.uleb128 0xe
- 49804 000b 11       		.uleb128 0x11
- 49805 000c 01       		.uleb128 0x1
- 49806 000d 12       		.uleb128 0x12
- 49807 000e 01       		.uleb128 0x1
- 49808 000f 10       		.uleb128 0x10
- 49809 0010 06       		.uleb128 0x6
- 49810 0011 00       		.byte	0x0
- 49811 0012 00       		.byte	0x0
- 49812 0013 02       		.uleb128 0x2
- 49813 0014 24       		.uleb128 0x24
- 49814 0015 00       		.byte	0x0
- 49815 0016 0B       		.uleb128 0xb
- 49816 0017 0B       		.uleb128 0xb
- 49817 0018 3E       		.uleb128 0x3e
- 49818 0019 0B       		.uleb128 0xb
- 49819 001a 03       		.uleb128 0x3
- 49820 001b 0E       		.uleb128 0xe
- 49821 001c 00       		.byte	0x0
- 49822 001d 00       		.byte	0x0
- 49823 001e 03       		.uleb128 0x3
- 49824 001f 16       		.uleb128 0x16
- 49825 0020 00       		.byte	0x0
- 49826 0021 03       		.uleb128 0x3
- 49827 0022 0E       		.uleb128 0xe
- 49828 0023 3A       		.uleb128 0x3a
- 49829 0024 0B       		.uleb128 0xb
- 49830 0025 3B       		.uleb128 0x3b
- 49831 0026 0B       		.uleb128 0xb
- 49832 0027 49       		.uleb128 0x49
- 49833 0028 13       		.uleb128 0x13
- 49834 0029 00       		.byte	0x0
- 49835 002a 00       		.byte	0x0
- 49836 002b 04       		.uleb128 0x4
- 49837 002c 24       		.uleb128 0x24
- 49838 002d 00       		.byte	0x0
- 49839 002e 0B       		.uleb128 0xb
- 49840 002f 0B       		.uleb128 0xb
- 49841 0030 3E       		.uleb128 0x3e
- 49842 0031 0B       		.uleb128 0xb
- 49843 0032 03       		.uleb128 0x3
- 49844 0033 08       		.uleb128 0x8
- 49845 0034 00       		.byte	0x0
- 49846 0035 00       		.byte	0x0
- 49847 0036 05       		.uleb128 0x5
- 49848 0037 24       		.uleb128 0x24
- 49849 0038 00       		.byte	0x0
- 49850 0039 0B       		.uleb128 0xb
- 49851 003a 0B       		.uleb128 0xb
- 49852 003b 3E       		.uleb128 0x3e
- 49853 003c 0B       		.uleb128 0xb
- 49854 003d 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1207
-
-
- 49855 003e 00       		.byte	0x0
- 49856 003f 06       		.uleb128 0x6
- 49857 0040 26       		.uleb128 0x26
- 49858 0041 00       		.byte	0x0
- 49859 0042 49       		.uleb128 0x49
- 49860 0043 13       		.uleb128 0x13
- 49861 0044 00       		.byte	0x0
- 49862 0045 00       		.byte	0x0
- 49863 0046 07       		.uleb128 0x7
- 49864 0047 0F       		.uleb128 0xf
- 49865 0048 00       		.byte	0x0
- 49866 0049 0B       		.uleb128 0xb
- 49867 004a 0B       		.uleb128 0xb
- 49868 004b 49       		.uleb128 0x49
- 49869 004c 13       		.uleb128 0x13
- 49870 004d 00       		.byte	0x0
- 49871 004e 00       		.byte	0x0
- 49872 004f 08       		.uleb128 0x8
- 49873 0050 0F       		.uleb128 0xf
- 49874 0051 00       		.byte	0x0
- 49875 0052 0B       		.uleb128 0xb
- 49876 0053 0B       		.uleb128 0xb
- 49877 0054 00       		.byte	0x0
- 49878 0055 00       		.byte	0x0
- 49879 0056 09       		.uleb128 0x9
- 49880 0057 26       		.uleb128 0x26
- 49881 0058 00       		.byte	0x0
- 49882 0059 00       		.byte	0x0
- 49883 005a 00       		.byte	0x0
- 49884 005b 0A       		.uleb128 0xa
- 49885 005c 01       		.uleb128 0x1
- 49886 005d 00       		.byte	0x0
- 49887 005e 8742     		.uleb128 0x2107
- 49888 0060 0C       		.uleb128 0xc
- 49889 0061 49       		.uleb128 0x49
- 49890 0062 13       		.uleb128 0x13
- 49891 0063 00       		.byte	0x0
- 49892 0064 00       		.byte	0x0
- 49893 0065 0B       		.uleb128 0xb
- 49894 0066 04       		.uleb128 0x4
- 49895 0067 01       		.byte	0x1
- 49896 0068 0B       		.uleb128 0xb
- 49897 0069 0B       		.uleb128 0xb
- 49898 006a 3A       		.uleb128 0x3a
- 49899 006b 0B       		.uleb128 0xb
- 49900 006c 3B       		.uleb128 0x3b
- 49901 006d 0B       		.uleb128 0xb
- 49902 006e 01       		.uleb128 0x1
- 49903 006f 13       		.uleb128 0x13
- 49904 0070 00       		.byte	0x0
- 49905 0071 00       		.byte	0x0
- 49906 0072 0C       		.uleb128 0xc
- 49907 0073 28       		.uleb128 0x28
- 49908 0074 00       		.byte	0x0
- 49909 0075 03       		.uleb128 0x3
- 49910 0076 0E       		.uleb128 0xe
- 49911 0077 1C       		.uleb128 0x1c
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1208
-
-
- 49912 0078 0D       		.uleb128 0xd
- 49913 0079 00       		.byte	0x0
- 49914 007a 00       		.byte	0x0
- 49915 007b 0D       		.uleb128 0xd
- 49916 007c 04       		.uleb128 0x4
- 49917 007d 01       		.byte	0x1
- 49918 007e 0B       		.uleb128 0xb
- 49919 007f 0B       		.uleb128 0xb
- 49920 0080 3A       		.uleb128 0x3a
- 49921 0081 0B       		.uleb128 0xb
- 49922 0082 3B       		.uleb128 0x3b
- 49923 0083 05       		.uleb128 0x5
- 49924 0084 01       		.uleb128 0x1
- 49925 0085 13       		.uleb128 0x13
- 49926 0086 00       		.byte	0x0
- 49927 0087 00       		.byte	0x0
- 49928 0088 0E       		.uleb128 0xe
- 49929 0089 13       		.uleb128 0x13
- 49930 008a 01       		.byte	0x1
- 49931 008b 03       		.uleb128 0x3
- 49932 008c 0E       		.uleb128 0xe
- 49933 008d 0B       		.uleb128 0xb
- 49934 008e 0B       		.uleb128 0xb
- 49935 008f 3A       		.uleb128 0x3a
- 49936 0090 0B       		.uleb128 0xb
- 49937 0091 3B       		.uleb128 0x3b
- 49938 0092 0B       		.uleb128 0xb
- 49939 0093 01       		.uleb128 0x1
- 49940 0094 13       		.uleb128 0x13
- 49941 0095 00       		.byte	0x0
- 49942 0096 00       		.byte	0x0
- 49943 0097 0F       		.uleb128 0xf
- 49944 0098 0D       		.uleb128 0xd
- 49945 0099 00       		.byte	0x0
- 49946 009a 03       		.uleb128 0x3
- 49947 009b 08       		.uleb128 0x8
- 49948 009c 3A       		.uleb128 0x3a
- 49949 009d 0B       		.uleb128 0xb
- 49950 009e 3B       		.uleb128 0x3b
- 49951 009f 0B       		.uleb128 0xb
- 49952 00a0 49       		.uleb128 0x49
- 49953 00a1 13       		.uleb128 0x13
- 49954 00a2 38       		.uleb128 0x38
- 49955 00a3 0A       		.uleb128 0xa
- 49956 00a4 00       		.byte	0x0
- 49957 00a5 00       		.byte	0x0
- 49958 00a6 10       		.uleb128 0x10
- 49959 00a7 0D       		.uleb128 0xd
- 49960 00a8 00       		.byte	0x0
- 49961 00a9 03       		.uleb128 0x3
- 49962 00aa 0E       		.uleb128 0xe
- 49963 00ab 3A       		.uleb128 0x3a
- 49964 00ac 0B       		.uleb128 0xb
- 49965 00ad 3B       		.uleb128 0x3b
- 49966 00ae 0B       		.uleb128 0xb
- 49967 00af 49       		.uleb128 0x49
- 49968 00b0 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1209
-
-
- 49969 00b1 38       		.uleb128 0x38
- 49970 00b2 0A       		.uleb128 0xa
- 49971 00b3 00       		.byte	0x0
- 49972 00b4 00       		.byte	0x0
- 49973 00b5 11       		.uleb128 0x11
- 49974 00b6 17       		.uleb128 0x17
- 49975 00b7 01       		.byte	0x1
- 49976 00b8 03       		.uleb128 0x3
- 49977 00b9 0E       		.uleb128 0xe
- 49978 00ba 0B       		.uleb128 0xb
- 49979 00bb 0B       		.uleb128 0xb
- 49980 00bc 3A       		.uleb128 0x3a
- 49981 00bd 0B       		.uleb128 0xb
- 49982 00be 3B       		.uleb128 0x3b
- 49983 00bf 0B       		.uleb128 0xb
- 49984 00c0 01       		.uleb128 0x1
- 49985 00c1 13       		.uleb128 0x13
- 49986 00c2 00       		.byte	0x0
- 49987 00c3 00       		.byte	0x0
- 49988 00c4 12       		.uleb128 0x12
- 49989 00c5 0D       		.uleb128 0xd
- 49990 00c6 00       		.byte	0x0
- 49991 00c7 03       		.uleb128 0x3
- 49992 00c8 0E       		.uleb128 0xe
- 49993 00c9 3A       		.uleb128 0x3a
- 49994 00ca 0B       		.uleb128 0xb
- 49995 00cb 3B       		.uleb128 0x3b
- 49996 00cc 0B       		.uleb128 0xb
- 49997 00cd 49       		.uleb128 0x49
- 49998 00ce 13       		.uleb128 0x13
- 49999 00cf 00       		.byte	0x0
- 50000 00d0 00       		.byte	0x0
- 50001 00d1 13       		.uleb128 0x13
- 50002 00d2 0D       		.uleb128 0xd
- 50003 00d3 00       		.byte	0x0
- 50004 00d4 03       		.uleb128 0x3
- 50005 00d5 08       		.uleb128 0x8
- 50006 00d6 3A       		.uleb128 0x3a
- 50007 00d7 0B       		.uleb128 0xb
- 50008 00d8 3B       		.uleb128 0x3b
- 50009 00d9 0B       		.uleb128 0xb
- 50010 00da 49       		.uleb128 0x49
- 50011 00db 13       		.uleb128 0x13
- 50012 00dc 00       		.byte	0x0
- 50013 00dd 00       		.byte	0x0
- 50014 00de 14       		.uleb128 0x14
- 50015 00df 15       		.uleb128 0x15
- 50016 00e0 01       		.byte	0x1
- 50017 00e1 27       		.uleb128 0x27
- 50018 00e2 0C       		.uleb128 0xc
- 50019 00e3 01       		.uleb128 0x1
- 50020 00e4 13       		.uleb128 0x13
- 50021 00e5 00       		.byte	0x0
- 50022 00e6 00       		.byte	0x0
- 50023 00e7 15       		.uleb128 0x15
- 50024 00e8 05       		.uleb128 0x5
- 50025 00e9 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1210
-
-
- 50026 00ea 49       		.uleb128 0x49
- 50027 00eb 13       		.uleb128 0x13
- 50028 00ec 00       		.byte	0x0
- 50029 00ed 00       		.byte	0x0
- 50030 00ee 16       		.uleb128 0x16
- 50031 00ef 15       		.uleb128 0x15
- 50032 00f0 01       		.byte	0x1
- 50033 00f1 49       		.uleb128 0x49
- 50034 00f2 13       		.uleb128 0x13
- 50035 00f3 01       		.uleb128 0x1
- 50036 00f4 13       		.uleb128 0x13
- 50037 00f5 00       		.byte	0x0
- 50038 00f6 00       		.byte	0x0
- 50039 00f7 17       		.uleb128 0x17
- 50040 00f8 18       		.uleb128 0x18
- 50041 00f9 00       		.byte	0x0
- 50042 00fa 00       		.byte	0x0
- 50043 00fb 00       		.byte	0x0
- 50044 00fc 18       		.uleb128 0x18
- 50045 00fd 15       		.uleb128 0x15
- 50046 00fe 01       		.byte	0x1
- 50047 00ff 27       		.uleb128 0x27
- 50048 0100 0C       		.uleb128 0xc
- 50049 0101 49       		.uleb128 0x49
- 50050 0102 13       		.uleb128 0x13
- 50051 0103 01       		.uleb128 0x1
- 50052 0104 13       		.uleb128 0x13
- 50053 0105 00       		.byte	0x0
- 50054 0106 00       		.byte	0x0
- 50055 0107 19       		.uleb128 0x19
- 50056 0108 01       		.uleb128 0x1
- 50057 0109 01       		.byte	0x1
- 50058 010a 49       		.uleb128 0x49
- 50059 010b 13       		.uleb128 0x13
- 50060 010c 01       		.uleb128 0x1
- 50061 010d 13       		.uleb128 0x13
- 50062 010e 00       		.byte	0x0
- 50063 010f 00       		.byte	0x0
- 50064 0110 1A       		.uleb128 0x1a
- 50065 0111 21       		.uleb128 0x21
- 50066 0112 00       		.byte	0x0
- 50067 0113 49       		.uleb128 0x49
- 50068 0114 13       		.uleb128 0x13
- 50069 0115 2F       		.uleb128 0x2f
- 50070 0116 0B       		.uleb128 0xb
- 50071 0117 00       		.byte	0x0
- 50072 0118 00       		.byte	0x0
- 50073 0119 1B       		.uleb128 0x1b
- 50074 011a 13       		.uleb128 0x13
- 50075 011b 01       		.byte	0x1
- 50076 011c 03       		.uleb128 0x3
- 50077 011d 0E       		.uleb128 0xe
- 50078 011e 0B       		.uleb128 0xb
- 50079 011f 05       		.uleb128 0x5
- 50080 0120 3A       		.uleb128 0x3a
- 50081 0121 0B       		.uleb128 0xb
- 50082 0122 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1211
-
-
- 50083 0123 0B       		.uleb128 0xb
- 50084 0124 01       		.uleb128 0x1
- 50085 0125 13       		.uleb128 0x13
- 50086 0126 00       		.byte	0x0
- 50087 0127 00       		.byte	0x0
- 50088 0128 1C       		.uleb128 0x1c
- 50089 0129 17       		.uleb128 0x17
- 50090 012a 01       		.byte	0x1
- 50091 012b 0B       		.uleb128 0xb
- 50092 012c 0B       		.uleb128 0xb
- 50093 012d 3A       		.uleb128 0x3a
- 50094 012e 0B       		.uleb128 0xb
- 50095 012f 3B       		.uleb128 0x3b
- 50096 0130 0B       		.uleb128 0xb
- 50097 0131 01       		.uleb128 0x1
- 50098 0132 13       		.uleb128 0x13
- 50099 0133 00       		.byte	0x0
- 50100 0134 00       		.byte	0x0
- 50101 0135 1D       		.uleb128 0x1d
- 50102 0136 04       		.uleb128 0x4
- 50103 0137 01       		.byte	0x1
- 50104 0138 03       		.uleb128 0x3
- 50105 0139 0E       		.uleb128 0xe
- 50106 013a 0B       		.uleb128 0xb
- 50107 013b 0B       		.uleb128 0xb
- 50108 013c 3A       		.uleb128 0x3a
- 50109 013d 0B       		.uleb128 0xb
- 50110 013e 3B       		.uleb128 0x3b
- 50111 013f 0B       		.uleb128 0xb
- 50112 0140 01       		.uleb128 0x1
- 50113 0141 13       		.uleb128 0x13
- 50114 0142 00       		.byte	0x0
- 50115 0143 00       		.byte	0x0
- 50116 0144 1E       		.uleb128 0x1e
- 50117 0145 04       		.uleb128 0x4
- 50118 0146 01       		.byte	0x1
- 50119 0147 03       		.uleb128 0x3
- 50120 0148 0E       		.uleb128 0xe
- 50121 0149 0B       		.uleb128 0xb
- 50122 014a 0B       		.uleb128 0xb
- 50123 014b 3A       		.uleb128 0x3a
- 50124 014c 0B       		.uleb128 0xb
- 50125 014d 3B       		.uleb128 0x3b
- 50126 014e 05       		.uleb128 0x5
- 50127 014f 01       		.uleb128 0x1
- 50128 0150 13       		.uleb128 0x13
- 50129 0151 00       		.byte	0x0
- 50130 0152 00       		.byte	0x0
- 50131 0153 1F       		.uleb128 0x1f
- 50132 0154 2E       		.uleb128 0x2e
- 50133 0155 01       		.byte	0x1
- 50134 0156 03       		.uleb128 0x3
- 50135 0157 0E       		.uleb128 0xe
- 50136 0158 3A       		.uleb128 0x3a
- 50137 0159 0B       		.uleb128 0xb
- 50138 015a 3B       		.uleb128 0x3b
- 50139 015b 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1212
-
-
- 50140 015c 27       		.uleb128 0x27
- 50141 015d 0C       		.uleb128 0xc
- 50142 015e 49       		.uleb128 0x49
- 50143 015f 13       		.uleb128 0x13
- 50144 0160 11       		.uleb128 0x11
- 50145 0161 01       		.uleb128 0x1
- 50146 0162 12       		.uleb128 0x12
- 50147 0163 01       		.uleb128 0x1
- 50148 0164 40       		.uleb128 0x40
- 50149 0165 06       		.uleb128 0x6
- 50150 0166 01       		.uleb128 0x1
- 50151 0167 13       		.uleb128 0x13
- 50152 0168 00       		.byte	0x0
- 50153 0169 00       		.byte	0x0
- 50154 016a 20       		.uleb128 0x20
- 50155 016b 05       		.uleb128 0x5
- 50156 016c 00       		.byte	0x0
- 50157 016d 03       		.uleb128 0x3
- 50158 016e 08       		.uleb128 0x8
- 50159 016f 3A       		.uleb128 0x3a
- 50160 0170 0B       		.uleb128 0xb
- 50161 0171 3B       		.uleb128 0x3b
- 50162 0172 0B       		.uleb128 0xb
- 50163 0173 49       		.uleb128 0x49
- 50164 0174 13       		.uleb128 0x13
- 50165 0175 02       		.uleb128 0x2
- 50166 0176 0A       		.uleb128 0xa
- 50167 0177 00       		.byte	0x0
- 50168 0178 00       		.byte	0x0
- 50169 0179 21       		.uleb128 0x21
- 50170 017a 34       		.uleb128 0x34
- 50171 017b 00       		.byte	0x0
- 50172 017c 03       		.uleb128 0x3
- 50173 017d 08       		.uleb128 0x8
- 50174 017e 3A       		.uleb128 0x3a
- 50175 017f 0B       		.uleb128 0xb
- 50176 0180 3B       		.uleb128 0x3b
- 50177 0181 0B       		.uleb128 0xb
- 50178 0182 49       		.uleb128 0x49
- 50179 0183 13       		.uleb128 0x13
- 50180 0184 02       		.uleb128 0x2
- 50181 0185 0A       		.uleb128 0xa
- 50182 0186 00       		.byte	0x0
- 50183 0187 00       		.byte	0x0
- 50184 0188 22       		.uleb128 0x22
- 50185 0189 2E       		.uleb128 0x2e
- 50186 018a 01       		.byte	0x1
- 50187 018b 03       		.uleb128 0x3
- 50188 018c 0E       		.uleb128 0xe
- 50189 018d 3A       		.uleb128 0x3a
- 50190 018e 0B       		.uleb128 0xb
- 50191 018f 3B       		.uleb128 0x3b
- 50192 0190 0B       		.uleb128 0xb
- 50193 0191 27       		.uleb128 0x27
- 50194 0192 0C       		.uleb128 0xc
- 50195 0193 49       		.uleb128 0x49
- 50196 0194 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1213
-
-
- 50197 0195 20       		.uleb128 0x20
- 50198 0196 0B       		.uleb128 0xb
- 50199 0197 01       		.uleb128 0x1
- 50200 0198 13       		.uleb128 0x13
- 50201 0199 00       		.byte	0x0
- 50202 019a 00       		.byte	0x0
- 50203 019b 23       		.uleb128 0x23
- 50204 019c 05       		.uleb128 0x5
- 50205 019d 00       		.byte	0x0
- 50206 019e 03       		.uleb128 0x3
- 50207 019f 08       		.uleb128 0x8
- 50208 01a0 3A       		.uleb128 0x3a
- 50209 01a1 0B       		.uleb128 0xb
- 50210 01a2 3B       		.uleb128 0x3b
- 50211 01a3 0B       		.uleb128 0xb
- 50212 01a4 49       		.uleb128 0x49
- 50213 01a5 13       		.uleb128 0x13
- 50214 01a6 00       		.byte	0x0
- 50215 01a7 00       		.byte	0x0
- 50216 01a8 24       		.uleb128 0x24
- 50217 01a9 34       		.uleb128 0x34
- 50218 01aa 00       		.byte	0x0
- 50219 01ab 03       		.uleb128 0x3
- 50220 01ac 08       		.uleb128 0x8
- 50221 01ad 3A       		.uleb128 0x3a
- 50222 01ae 0B       		.uleb128 0xb
- 50223 01af 3B       		.uleb128 0x3b
- 50224 01b0 0B       		.uleb128 0xb
- 50225 01b1 49       		.uleb128 0x49
- 50226 01b2 13       		.uleb128 0x13
- 50227 01b3 00       		.byte	0x0
- 50228 01b4 00       		.byte	0x0
- 50229 01b5 25       		.uleb128 0x25
- 50230 01b6 2E       		.uleb128 0x2e
- 50231 01b7 01       		.byte	0x1
- 50232 01b8 03       		.uleb128 0x3
- 50233 01b9 0E       		.uleb128 0xe
- 50234 01ba 3A       		.uleb128 0x3a
- 50235 01bb 0B       		.uleb128 0xb
- 50236 01bc 3B       		.uleb128 0x3b
- 50237 01bd 05       		.uleb128 0x5
- 50238 01be 27       		.uleb128 0x27
- 50239 01bf 0C       		.uleb128 0xc
- 50240 01c0 49       		.uleb128 0x49
- 50241 01c1 13       		.uleb128 0x13
- 50242 01c2 20       		.uleb128 0x20
- 50243 01c3 0B       		.uleb128 0xb
- 50244 01c4 01       		.uleb128 0x1
- 50245 01c5 13       		.uleb128 0x13
- 50246 01c6 00       		.byte	0x0
- 50247 01c7 00       		.byte	0x0
- 50248 01c8 26       		.uleb128 0x26
- 50249 01c9 05       		.uleb128 0x5
- 50250 01ca 00       		.byte	0x0
- 50251 01cb 03       		.uleb128 0x3
- 50252 01cc 0E       		.uleb128 0xe
- 50253 01cd 3A       		.uleb128 0x3a
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1214
-
-
- 50254 01ce 0B       		.uleb128 0xb
- 50255 01cf 3B       		.uleb128 0x3b
- 50256 01d0 05       		.uleb128 0x5
- 50257 01d1 49       		.uleb128 0x49
- 50258 01d2 13       		.uleb128 0x13
- 50259 01d3 00       		.byte	0x0
- 50260 01d4 00       		.byte	0x0
- 50261 01d5 27       		.uleb128 0x27
- 50262 01d6 34       		.uleb128 0x34
- 50263 01d7 00       		.byte	0x0
- 50264 01d8 03       		.uleb128 0x3
- 50265 01d9 0E       		.uleb128 0xe
- 50266 01da 3A       		.uleb128 0x3a
- 50267 01db 0B       		.uleb128 0xb
- 50268 01dc 3B       		.uleb128 0x3b
- 50269 01dd 05       		.uleb128 0x5
- 50270 01de 49       		.uleb128 0x49
- 50271 01df 13       		.uleb128 0x13
- 50272 01e0 00       		.byte	0x0
- 50273 01e1 00       		.byte	0x0
- 50274 01e2 28       		.uleb128 0x28
- 50275 01e3 34       		.uleb128 0x34
- 50276 01e4 00       		.byte	0x0
- 50277 01e5 03       		.uleb128 0x3
- 50278 01e6 08       		.uleb128 0x8
- 50279 01e7 3A       		.uleb128 0x3a
- 50280 01e8 0B       		.uleb128 0xb
- 50281 01e9 3B       		.uleb128 0x3b
- 50282 01ea 05       		.uleb128 0x5
- 50283 01eb 49       		.uleb128 0x49
- 50284 01ec 13       		.uleb128 0x13
- 50285 01ed 00       		.byte	0x0
- 50286 01ee 00       		.byte	0x0
- 50287 01ef 29       		.uleb128 0x29
- 50288 01f0 0B       		.uleb128 0xb
- 50289 01f1 01       		.byte	0x1
- 50290 01f2 01       		.uleb128 0x1
- 50291 01f3 13       		.uleb128 0x13
- 50292 01f4 00       		.byte	0x0
- 50293 01f5 00       		.byte	0x0
- 50294 01f6 2A       		.uleb128 0x2a
- 50295 01f7 0B       		.uleb128 0xb
- 50296 01f8 01       		.byte	0x1
- 50297 01f9 00       		.byte	0x0
- 50298 01fa 00       		.byte	0x0
- 50299 01fb 2B       		.uleb128 0x2b
- 50300 01fc 05       		.uleb128 0x5
- 50301 01fd 00       		.byte	0x0
- 50302 01fe 03       		.uleb128 0x3
- 50303 01ff 08       		.uleb128 0x8
- 50304 0200 3A       		.uleb128 0x3a
- 50305 0201 0B       		.uleb128 0xb
- 50306 0202 3B       		.uleb128 0x3b
- 50307 0203 05       		.uleb128 0x5
- 50308 0204 49       		.uleb128 0x49
- 50309 0205 13       		.uleb128 0x13
- 50310 0206 00       		.byte	0x0
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1215
-
-
- 50311 0207 00       		.byte	0x0
- 50312 0208 2C       		.uleb128 0x2c
- 50313 0209 34       		.uleb128 0x34
- 50314 020a 00       		.byte	0x0
- 50315 020b 03       		.uleb128 0x3
- 50316 020c 0E       		.uleb128 0xe
- 50317 020d 3A       		.uleb128 0x3a
- 50318 020e 0B       		.uleb128 0xb
- 50319 020f 3B       		.uleb128 0x3b
- 50320 0210 05       		.uleb128 0x5
- 50321 0211 49       		.uleb128 0x49
- 50322 0212 13       		.uleb128 0x13
- 50323 0213 1C       		.uleb128 0x1c
- 50324 0214 0A       		.uleb128 0xa
- 50325 0215 00       		.byte	0x0
- 50326 0216 00       		.byte	0x0
- 50327 0217 2D       		.uleb128 0x2d
- 50328 0218 2E       		.uleb128 0x2e
- 50329 0219 01       		.byte	0x1
- 50330 021a 03       		.uleb128 0x3
- 50331 021b 0E       		.uleb128 0xe
- 50332 021c 3A       		.uleb128 0x3a
- 50333 021d 0B       		.uleb128 0xb
- 50334 021e 3B       		.uleb128 0x3b
- 50335 021f 05       		.uleb128 0x5
- 50336 0220 27       		.uleb128 0x27
- 50337 0221 0C       		.uleb128 0xc
- 50338 0222 11       		.uleb128 0x11
- 50339 0223 01       		.uleb128 0x1
- 50340 0224 12       		.uleb128 0x12
- 50341 0225 01       		.uleb128 0x1
- 50342 0226 40       		.uleb128 0x40
- 50343 0227 06       		.uleb128 0x6
- 50344 0228 01       		.uleb128 0x1
- 50345 0229 13       		.uleb128 0x13
- 50346 022a 00       		.byte	0x0
- 50347 022b 00       		.byte	0x0
- 50348 022c 2E       		.uleb128 0x2e
- 50349 022d 05       		.uleb128 0x5
- 50350 022e 00       		.byte	0x0
- 50351 022f 03       		.uleb128 0x3
- 50352 0230 0E       		.uleb128 0xe
- 50353 0231 3A       		.uleb128 0x3a
- 50354 0232 0B       		.uleb128 0xb
- 50355 0233 3B       		.uleb128 0x3b
- 50356 0234 05       		.uleb128 0x5
- 50357 0235 49       		.uleb128 0x49
- 50358 0236 13       		.uleb128 0x13
- 50359 0237 02       		.uleb128 0x2
- 50360 0238 0A       		.uleb128 0xa
- 50361 0239 00       		.byte	0x0
- 50362 023a 00       		.byte	0x0
- 50363 023b 2F       		.uleb128 0x2f
- 50364 023c 05       		.uleb128 0x5
- 50365 023d 00       		.byte	0x0
- 50366 023e 03       		.uleb128 0x3
- 50367 023f 08       		.uleb128 0x8
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1216
-
-
- 50368 0240 3A       		.uleb128 0x3a
- 50369 0241 0B       		.uleb128 0xb
- 50370 0242 3B       		.uleb128 0x3b
- 50371 0243 05       		.uleb128 0x5
- 50372 0244 49       		.uleb128 0x49
- 50373 0245 13       		.uleb128 0x13
- 50374 0246 02       		.uleb128 0x2
- 50375 0247 0A       		.uleb128 0xa
- 50376 0248 00       		.byte	0x0
- 50377 0249 00       		.byte	0x0
- 50378 024a 30       		.uleb128 0x30
- 50379 024b 34       		.uleb128 0x34
- 50380 024c 00       		.byte	0x0
- 50381 024d 03       		.uleb128 0x3
- 50382 024e 0E       		.uleb128 0xe
- 50383 024f 3A       		.uleb128 0x3a
- 50384 0250 0B       		.uleb128 0xb
- 50385 0251 3B       		.uleb128 0x3b
- 50386 0252 05       		.uleb128 0x5
- 50387 0253 49       		.uleb128 0x49
- 50388 0254 13       		.uleb128 0x13
- 50389 0255 02       		.uleb128 0x2
- 50390 0256 0A       		.uleb128 0xa
- 50391 0257 00       		.byte	0x0
- 50392 0258 00       		.byte	0x0
- 50393 0259 31       		.uleb128 0x31
- 50394 025a 1D       		.uleb128 0x1d
- 50395 025b 01       		.byte	0x1
- 50396 025c 31       		.uleb128 0x31
- 50397 025d 13       		.uleb128 0x13
- 50398 025e 11       		.uleb128 0x11
- 50399 025f 01       		.uleb128 0x1
- 50400 0260 12       		.uleb128 0x12
- 50401 0261 01       		.uleb128 0x1
- 50402 0262 58       		.uleb128 0x58
- 50403 0263 0B       		.uleb128 0xb
- 50404 0264 59       		.uleb128 0x59
- 50405 0265 05       		.uleb128 0x5
- 50406 0266 01       		.uleb128 0x1
- 50407 0267 13       		.uleb128 0x13
- 50408 0268 00       		.byte	0x0
- 50409 0269 00       		.byte	0x0
- 50410 026a 32       		.uleb128 0x32
- 50411 026b 05       		.uleb128 0x5
- 50412 026c 00       		.byte	0x0
- 50413 026d 31       		.uleb128 0x31
- 50414 026e 13       		.uleb128 0x13
- 50415 026f 02       		.uleb128 0x2
- 50416 0270 0A       		.uleb128 0xa
- 50417 0271 00       		.byte	0x0
- 50418 0272 00       		.byte	0x0
- 50419 0273 33       		.uleb128 0x33
- 50420 0274 0B       		.uleb128 0xb
- 50421 0275 01       		.byte	0x1
- 50422 0276 11       		.uleb128 0x11
- 50423 0277 01       		.uleb128 0x1
- 50424 0278 12       		.uleb128 0x12
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1217
-
-
- 50425 0279 01       		.uleb128 0x1
- 50426 027a 00       		.byte	0x0
- 50427 027b 00       		.byte	0x0
- 50428 027c 34       		.uleb128 0x34
- 50429 027d 34       		.uleb128 0x34
- 50430 027e 00       		.byte	0x0
- 50431 027f 31       		.uleb128 0x31
- 50432 0280 13       		.uleb128 0x13
- 50433 0281 02       		.uleb128 0x2
- 50434 0282 0A       		.uleb128 0xa
- 50435 0283 00       		.byte	0x0
- 50436 0284 00       		.byte	0x0
- 50437 0285 35       		.uleb128 0x35
- 50438 0286 1D       		.uleb128 0x1d
- 50439 0287 01       		.byte	0x1
- 50440 0288 31       		.uleb128 0x31
- 50441 0289 13       		.uleb128 0x13
- 50442 028a 11       		.uleb128 0x11
- 50443 028b 01       		.uleb128 0x1
- 50444 028c 12       		.uleb128 0x12
- 50445 028d 01       		.uleb128 0x1
- 50446 028e 58       		.uleb128 0x58
- 50447 028f 0B       		.uleb128 0xb
- 50448 0290 59       		.uleb128 0x59
- 50449 0291 05       		.uleb128 0x5
- 50450 0292 00       		.byte	0x0
- 50451 0293 00       		.byte	0x0
- 50452 0294 36       		.uleb128 0x36
- 50453 0295 0B       		.uleb128 0xb
- 50454 0296 01       		.byte	0x1
- 50455 0297 11       		.uleb128 0x11
- 50456 0298 01       		.uleb128 0x1
- 50457 0299 12       		.uleb128 0x12
- 50458 029a 01       		.uleb128 0x1
- 50459 029b 01       		.uleb128 0x1
- 50460 029c 13       		.uleb128 0x13
- 50461 029d 00       		.byte	0x0
- 50462 029e 00       		.byte	0x0
- 50463 029f 37       		.uleb128 0x37
- 50464 02a0 34       		.uleb128 0x34
- 50465 02a1 00       		.byte	0x0
- 50466 02a2 03       		.uleb128 0x3
- 50467 02a3 08       		.uleb128 0x8
- 50468 02a4 3A       		.uleb128 0x3a
- 50469 02a5 0B       		.uleb128 0xb
- 50470 02a6 3B       		.uleb128 0x3b
- 50471 02a7 05       		.uleb128 0x5
- 50472 02a8 49       		.uleb128 0x49
- 50473 02a9 13       		.uleb128 0x13
- 50474 02aa 02       		.uleb128 0x2
- 50475 02ab 0A       		.uleb128 0xa
- 50476 02ac 00       		.byte	0x0
- 50477 02ad 00       		.byte	0x0
- 50478 02ae 38       		.uleb128 0x38
- 50479 02af 34       		.uleb128 0x34
- 50480 02b0 00       		.byte	0x0
- 50481 02b1 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1218
-
-
- 50482 02b2 0E       		.uleb128 0xe
- 50483 02b3 49       		.uleb128 0x49
- 50484 02b4 13       		.uleb128 0x13
- 50485 02b5 34       		.uleb128 0x34
- 50486 02b6 0C       		.uleb128 0xc
- 50487 02b7 1C       		.uleb128 0x1c
- 50488 02b8 0E       		.uleb128 0xe
- 50489 02b9 00       		.byte	0x0
- 50490 02ba 00       		.byte	0x0
- 50491 02bb 39       		.uleb128 0x39
- 50492 02bc 2E       		.uleb128 0x2e
- 50493 02bd 01       		.byte	0x1
- 50494 02be 03       		.uleb128 0x3
- 50495 02bf 0E       		.uleb128 0xe
- 50496 02c0 3A       		.uleb128 0x3a
- 50497 02c1 0B       		.uleb128 0xb
- 50498 02c2 3B       		.uleb128 0x3b
- 50499 02c3 05       		.uleb128 0x5
- 50500 02c4 27       		.uleb128 0x27
- 50501 02c5 0C       		.uleb128 0xc
- 50502 02c6 49       		.uleb128 0x49
- 50503 02c7 13       		.uleb128 0x13
- 50504 02c8 11       		.uleb128 0x11
- 50505 02c9 01       		.uleb128 0x1
- 50506 02ca 12       		.uleb128 0x12
- 50507 02cb 01       		.uleb128 0x1
- 50508 02cc 40       		.uleb128 0x40
- 50509 02cd 06       		.uleb128 0x6
- 50510 02ce 01       		.uleb128 0x1
- 50511 02cf 13       		.uleb128 0x13
- 50512 02d0 00       		.byte	0x0
- 50513 02d1 00       		.byte	0x0
- 50514 02d2 3A       		.uleb128 0x3a
- 50515 02d3 2E       		.uleb128 0x2e
- 50516 02d4 00       		.byte	0x0
- 50517 02d5 03       		.uleb128 0x3
- 50518 02d6 0E       		.uleb128 0xe
- 50519 02d7 3A       		.uleb128 0x3a
- 50520 02d8 0B       		.uleb128 0xb
- 50521 02d9 3B       		.uleb128 0x3b
- 50522 02da 05       		.uleb128 0x5
- 50523 02db 49       		.uleb128 0x49
- 50524 02dc 13       		.uleb128 0x13
- 50525 02dd 11       		.uleb128 0x11
- 50526 02de 01       		.uleb128 0x1
- 50527 02df 12       		.uleb128 0x12
- 50528 02e0 01       		.uleb128 0x1
- 50529 02e1 40       		.uleb128 0x40
- 50530 02e2 06       		.uleb128 0x6
- 50531 02e3 00       		.byte	0x0
- 50532 02e4 00       		.byte	0x0
- 50533 02e5 3B       		.uleb128 0x3b
- 50534 02e6 34       		.uleb128 0x34
- 50535 02e7 00       		.byte	0x0
- 50536 02e8 03       		.uleb128 0x3
- 50537 02e9 0E       		.uleb128 0xe
- 50538 02ea 49       		.uleb128 0x49
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1219
-
-
- 50539 02eb 13       		.uleb128 0x13
- 50540 02ec 34       		.uleb128 0x34
- 50541 02ed 0C       		.uleb128 0xc
- 50542 02ee 02       		.uleb128 0x2
- 50543 02ef 0A       		.uleb128 0xa
- 50544 02f0 00       		.byte	0x0
- 50545 02f1 00       		.byte	0x0
- 50546 02f2 3C       		.uleb128 0x3c
- 50547 02f3 2E       		.uleb128 0x2e
- 50548 02f4 01       		.byte	0x1
- 50549 02f5 03       		.uleb128 0x3
- 50550 02f6 0E       		.uleb128 0xe
- 50551 02f7 3A       		.uleb128 0x3a
- 50552 02f8 0B       		.uleb128 0xb
- 50553 02f9 3B       		.uleb128 0x3b
- 50554 02fa 05       		.uleb128 0x5
- 50555 02fb 49       		.uleb128 0x49
- 50556 02fc 13       		.uleb128 0x13
- 50557 02fd 11       		.uleb128 0x11
- 50558 02fe 01       		.uleb128 0x1
- 50559 02ff 12       		.uleb128 0x12
- 50560 0300 01       		.uleb128 0x1
- 50561 0301 40       		.uleb128 0x40
- 50562 0302 06       		.uleb128 0x6
- 50563 0303 01       		.uleb128 0x1
- 50564 0304 13       		.uleb128 0x13
- 50565 0305 00       		.byte	0x0
- 50566 0306 00       		.byte	0x0
- 50567 0307 3D       		.uleb128 0x3d
- 50568 0308 2E       		.uleb128 0x2e
- 50569 0309 01       		.byte	0x1
- 50570 030a 3F       		.uleb128 0x3f
- 50571 030b 0C       		.uleb128 0xc
- 50572 030c 03       		.uleb128 0x3
- 50573 030d 0E       		.uleb128 0xe
- 50574 030e 3A       		.uleb128 0x3a
- 50575 030f 0B       		.uleb128 0xb
- 50576 0310 3B       		.uleb128 0x3b
- 50577 0311 05       		.uleb128 0x5
- 50578 0312 27       		.uleb128 0x27
- 50579 0313 0C       		.uleb128 0xc
- 50580 0314 49       		.uleb128 0x49
- 50581 0315 13       		.uleb128 0x13
- 50582 0316 11       		.uleb128 0x11
- 50583 0317 01       		.uleb128 0x1
- 50584 0318 12       		.uleb128 0x12
- 50585 0319 01       		.uleb128 0x1
- 50586 031a 40       		.uleb128 0x40
- 50587 031b 06       		.uleb128 0x6
- 50588 031c 01       		.uleb128 0x1
- 50589 031d 13       		.uleb128 0x13
- 50590 031e 00       		.byte	0x0
- 50591 031f 00       		.byte	0x0
- 50592 0320 3E       		.uleb128 0x3e
- 50593 0321 34       		.uleb128 0x34
- 50594 0322 00       		.byte	0x0
- 50595 0323 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1220
-
-
- 50596 0324 0E       		.uleb128 0xe
- 50597 0325 3A       		.uleb128 0x3a
- 50598 0326 0B       		.uleb128 0xb
- 50599 0327 3B       		.uleb128 0x3b
- 50600 0328 0B       		.uleb128 0xb
- 50601 0329 49       		.uleb128 0x49
- 50602 032a 13       		.uleb128 0x13
- 50603 032b 02       		.uleb128 0x2
- 50604 032c 0A       		.uleb128 0xa
- 50605 032d 00       		.byte	0x0
- 50606 032e 00       		.byte	0x0
- 50607 032f 00       		.byte	0x0
- 50608              		.section	.debug_pubnames,"", at progbits
- 50609 0000 2C000000 		.long	0x2c
- 50610 0004 0200     		.value	0x2
- 50611 0006 00000000 		.long	.Ldebug_info0
- 50612 000a 5B180100 		.long	0x1185b
- 50613 000e 40160100 		.long	0x11640
- 50614 0012 4B414553 		.string	"KAESBlockCipherVecRegMake"
- 50614      426C6F63 
- 50614      6B436970 
- 50614      68657256 
- 50614      65635265 
- 50615 002c 00000000 		.long	0x0
- 50616              		.section	.debug_aranges,"", at progbits
- 50617 0000 2C000000 		.long	0x2c
- 50618 0004 0200     		.value	0x2
- 50619 0006 00000000 		.long	.Ldebug_info0
- 50620 000a 08       		.byte	0x8
- 50621 000b 00       		.byte	0x0
- 50622 000c 0000     		.value	0x0
- 50623 000e 0000     		.value	0x0
- 50624 0010 00000000 		.quad	.Ltext0
- 50624      00000000 
- 50625 0018 52330100 		.quad	.Letext0-.Ltext0
- 50625      00000000 
- 50626 0020 00000000 		.quad	0x0
- 50626      00000000 
- 50627 0028 00000000 		.quad	0x0
- 50627      00000000 
- 50628              		.section	.debug_str,"MS", at progbits,1
- 50629              	.LASF70:
- 50630 0000 43697068 		.string	"CipherVec_AES_u"
- 50630      65725665 
- 50630      635F4145 
- 50630      535F7500 
- 50631              	.LASF288:
- 50632 0010 7263496E 		.string	"rcInsufficient"
- 50632      73756666 
- 50632      69636965 
- 50632      6E7400
- 50633              	.LASF305:
- 50634 001f 72634475 		.string	"rcDuplicate"
- 50634      706C6963 
- 50634      61746500 
- 50635              	.LASF328:
- 50636 002b 4B414553 		.string	"KAESBlockCipherVecRegSubBytesInt"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1221
-
-
- 50636      426C6F63 
- 50636      6B436970 
- 50636      68657256 
- 50636      65635265 
- 50637              	.LASF108:
- 50638 004c 7263436F 		.string	"rcCondition"
- 50638      6E646974 
- 50638      696F6E00 
- 50639              	.LASF222:
- 50640 0058 7263456E 		.string	"rcEncrypting"
- 50640      63727970 
- 50640      74696E67 
- 50640      00
- 50641              	.LASF181:
- 50642 0065 72634F70 		.string	"rcOpening"
- 50642      656E696E 
- 50642      6700
- 50643              	.LASF398:
- 50644 006f 4B414553 		.string	"KAESBlockCipherVecRegKeySize"
- 50644      426C6F63 
- 50644      6B436970 
- 50644      68657256 
- 50644      65635265 
- 50645              	.LASF189:
- 50646 008c 72635065 		.string	"rcPersisting"
- 50646      72736973 
- 50646      74696E67 
- 50646      00
- 50647              	.LASF227:
- 50648 0099 72635365 		.string	"rcSending"
- 50648      6E64696E 
- 50648      6700
- 50649              	.LASF221:
- 50650 00a3 72634170 		.string	"rcAppending"
- 50650      70656E64 
- 50650      696E6700 
- 50651              	.LASF207:
- 50652 00af 72635369 		.string	"rcSignaling"
- 50652      676E616C 
- 50652      696E6700 
- 50653              	.LASF342:
- 50654 00bb 4B414553 		.string	"KAESBlockCipherVecRegStateDupColumn3"
- 50654      426C6F63 
- 50654      6B436970 
- 50654      68657256 
- 50654      65635265 
- 50655              	.LASF20:
- 50656 00e0 4442475F 		.string	"DBG_BLAST"
- 50656      424C4153 
- 50656      5400
- 50657              	.LASF263:
- 50658 00ea 72635369 		.string	"rcSignalSet"
- 50658      676E616C 
- 50658      53657400 
- 50659              	.LASF209:
- 50660 00f6 72634174 		.string	"rcAttaching"
- 50660      74616368 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1222
-
-
- 50660      696E6700 
- 50661              	.LASF141:
- 50662 0102 72635461 		.string	"rcTable"
- 50662      626C6500 
- 50663              	.LASF419:
- 50664 010a 6C6F5F66 		.string	"lo_filter"
- 50664      696C7465 
- 50664      7200
- 50665              	.LASF105:
- 50666 0114 72634275 		.string	"rcBuffer"
- 50666      66666572 
- 50666      00
- 50667              	.LASF3:
- 50668 011d 696E7433 		.string	"int32_t"
- 50668      325F7400 
- 50669              	.LASF237:
- 50670 0125 72634D65 		.string	"rcMemory"
- 50670      6D6F7279 
- 50670      00
- 50671              	.LASF170:
- 50672 012e 72634C6F 		.string	"rcLocking"
- 50672      636B696E 
- 50672      6700
- 50673              	.LASF205:
- 50674 0138 72635061 		.string	"rcParsing"
- 50674      7273696E 
- 50674      6700
- 50675              	.LASF234:
- 50676 0142 72635365 		.string	"rcSelf"
- 50676      6C6600
- 50677              	.LASF127:
- 50678 0149 72634D65 		.string	"rcMetadata"
- 50678      74616461 
- 50678      746100
- 50679              	.LASF250:
- 50680 0154 72634172 		.string	"rcArcHardLink"
- 50680      63486172 
- 50680      644C696E 
- 50680      6B00
- 50681              	.LASF76:
- 50682 0162 7263436F 		.string	"rcCont"
- 50682      6E7400
- 50683              	.LASF258:
- 50684 0169 72634368 		.string	"rcChecksum"
- 50684      65636B73 
- 50684      756D00
- 50685              	.LASF403:
- 50686 0174 5F5F6675 		.string	"__func__"
- 50686      6E635F5F 
- 50686      00
- 50687              	.LASF302:
- 50688 017d 7263546F 		.string	"rcTooShort"
- 50688      6F53686F 
- 50688      727400
- 50689              	.LASF132:
- 50690 0188 72635061 		.string	"rcPagemap"
- 50690      67656D61 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1223
-
-
- 50690      7000
- 50691              	.LASF428:
- 50692 0192 4B414553 		.string	"KAESBlockCipherVecRegMake"
- 50692      426C6F63 
- 50692      6B436970 
- 50692      68657256 
- 50692      65635265 
- 50693              	.LASF348:
- 50694 01ac 4B414553 		.string	"KAESBlockCipherVecRegStateShiftRight64"
- 50694      426C6F63 
- 50694      6B436970 
- 50694      68657256 
- 50694      65635265 
- 50695              	.LASF84:
- 50696 01d3 72634170 		.string	"rcApp"
- 50696      7000
- 50697              	.LASF115:
- 50698 01d9 72634669 		.string	"rcFileDesc"
- 50698      6C654465 
- 50698      736300
- 50699              	.LASF254:
- 50700 01e4 72634974 		.string	"rcItem"
- 50700      656D00
- 50701              	.LASF146:
- 50702 01eb 72635472 		.string	"rcTrie"
- 50702      696500
- 50703              	.LASF87:
- 50704 01f2 72634C61 		.string	"rcLastModule_v1_0"
- 50704      73744D6F 
- 50704      64756C65 
- 50704      5F76315F 
- 50704      3000
- 50705              	.LASF67:
- 50706 0204 73746174 		.string	"state"
- 50706      6500
- 50707              	.LASF245:
- 50708 020a 72634279 		.string	"rcByteOrder"
- 50708      74654F72 
- 50708      64657200 
- 50709              	.LASF64:
- 50710 0216 4145534B 		.string	"AESKeySchedule"
- 50710      65795363 
- 50710      68656475 
- 50710      6C6500
- 50711              	.LASF65:
- 50712 0225 726F756E 		.string	"round_keys"
- 50712      645F6B65 
- 50712      797300
- 50713              	.LASF163:
- 50714 0230 7263436F 		.string	"rcConstructing"
- 50714      6E737472 
- 50714      75637469 
- 50714      6E6700
- 50715              	.LASF11:
- 50716 023f 72635F74 		.string	"rc_t"
- 50716      00
- 50717              	.LASF239:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1224
-
-
- 50718 0244 7263466F 		.string	"rcFormat"
- 50718      726D6174 
- 50718      00
- 50719              	.LASF297:
- 50720 024d 7263556E 		.string	"rcUnauthorized"
- 50720      61757468 
- 50720      6F72697A 
- 50720      656400
- 50721              	.LASF399:
- 50722 025c 4B414553 		.string	"KAESBlockCipherVecRegSetEncryptKey"
- 50722      426C6F63 
- 50722      6B436970 
- 50722      68657256 
- 50722      65635265 
- 50723              	.LASF380:
- 50724 027f 6D737461 		.string	"mstate"
- 50724      746500
- 50725              	.LASF177:
- 50726 0286 72635265 		.string	"rcRemoving"
- 50726      6D6F7669 
- 50726      6E6700
- 50727              	.LASF90:
- 50728 0291 72634B72 		.string	"rcKrypto"
- 50728      7970746F 
- 50728      00
- 50729              	.LASF410:
- 50730 029a 5F426F6F 		.string	"_Bool"
- 50730      6C00
- 50731              	.LASF168:
- 50732 02a0 72635669 		.string	"rcVisiting"
- 50732      73697469 
- 50732      6E6700
- 50733              	.LASF98:
- 50734 02ab 72634172 		.string	"rcArc"
- 50734      6300
- 50735              	.LASF422:
- 50736 02b1 4B414553 		.string	"KAESBlockCipherVecRegRcon"
- 50736      426C6F63 
- 50736      6B436970 
- 50736      68657256 
- 50736      65635265 
- 50737              	.LASF73:
- 50738 02cb 72634578 		.string	"rcExe"
- 50738      6500
- 50739              	.LASF303:
- 50740 02d1 7263546F 		.string	"rcTooLong"
- 50740      6F4C6F6E 
- 50740      6700
- 50741              	.LASF343:
- 50742 02db 6F705F50 		.string	"op_PSHUFD128"
- 50742      53485546 
- 50742      44313238 
- 50742      00
- 50743              	.LASF231:
- 50744 02e8 52434F62 		.string	"RCObject"
- 50744      6A656374 
- 50744      00
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1225
-
-
- 50745              	.LASF241:
- 50746 02f1 7263496E 		.string	"rcInterface"
- 50746      74657266 
- 50746      61636500 
- 50747              	.LASF169:
- 50748 02fd 72635265 		.string	"rcResolving"
- 50748      736F6C76 
- 50748      696E6700 
- 50749              	.LASF111:
- 50750 0309 72634469 		.string	"rcDirectory"
- 50750      72656374 
- 50750      6F727900 
- 50751              	.LASF2:
- 50752 0315 6C6F6E67 		.string	"long int"
- 50752      20696E74 
- 50752      00
- 50753              	.LASF59:
- 50754 031e 41455357 		.string	"AESWord"
- 50754      6F726400 
- 50755              	.LASF199:
- 50756 0326 72635661 		.string	"rcValidating"
- 50756      6C696461 
- 50756      74696E67 
- 50756      00
- 50757              	.LASF101:
- 50758 0333 72634172 		.string	"rcArgv"
- 50758      677600
- 50759              	.LASF77:
- 50760 033a 72634353 		.string	"rcCS"
- 50760      00
- 50761              	.LASF158:
- 50762 033f 72635572 		.string	"rcUri"
- 50762      6900
- 50763              	.LASF180:
- 50764 0345 72634372 		.string	"rcCreating"
- 50764      65617469 
- 50764      6E6700
- 50765              	.LASF347:
- 50766 0350 6B676173 		.string	"kgastate"
- 50766      74617465 
- 50766      00
- 50767              	.LASF53:
- 50768 0359 656E6372 		.string	"encrypt"
- 50768      79707400 
- 50769              	.LASF17:
- 50770 0361 76313238 		.string	"v128_u8_t"
- 50770      5F75385F 
- 50770      7400
- 50771              	.LASF25:
- 50772 036b 4442475F 		.string	"DBG_XML"
- 50772      584D4C00 
- 50773              	.LASF345:
- 50774 0373 73686966 		.string	"shift"
- 50774      7400
- 50775              	.LASF37:
- 50776 0379 4442475F 		.string	"DBG_MOD_COUNT"
- 50776      4D4F445F 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1226
-
-
- 50776      434F554E 
- 50776      5400
- 50777              	.LASF82:
- 50778 0387 72634442 		.string	"rcDB"
- 50778      00
- 50779              	.LASF369:
- 50780 038c 4B414553 		.string	"KAESBlockCipherVecRegVecSLLBI"
- 50780      426C6F63 
- 50780      6B436970 
- 50780      68657256 
- 50780      65635265 
- 50781              	.LASF260:
- 50782 03aa 7263436F 		.string	"rcConnection"
- 50782      6E6E6563 
- 50782      74696F6E 
- 50782      00
- 50783              	.LASF128:
- 50784 03b7 72634D67 		.string	"rcMgr"
- 50784      7200
- 50785              	.LASF290:
- 50786 03bd 72635669 		.string	"rcViolated"
- 50786      6F6C6174 
- 50786      656400
- 50787              	.LASF223:
- 50788 03c8 72634465 		.string	"rcDecrypting"
- 50788      63727970 
- 50788      74696E67 
- 50788      00
- 50789              	.LASF0:
- 50790 03d5 7369676E 		.string	"signed char"
- 50790      65642063 
- 50790      68617200 
- 50791              	.LASF4:
- 50792 03e1 75696E74 		.string	"uint8_t"
- 50792      385F7400 
- 50793              	.LASF106:
- 50794 03e9 72634368 		.string	"rcChar"
- 50794      617200
- 50795              	.LASF367:
- 50796 03f0 4B414553 		.string	"KAESBlockCipherVecRegVecSRLBI"
- 50796      426C6F63 
- 50796      6B436970 
- 50796      68657256 
- 50796      65635265 
- 50797              	.LASF91:
- 50798 040e 72635244 		.string	"rcRDBMS"
- 50798      424D5300 
- 50799              	.LASF392:
- 50800 0416 496E7653 		.string	"InvShiftRowTable"
- 50800      68696674 
- 50800      526F7754 
- 50800      61626C65 
- 50800      00
- 50801              	.LASF200:
- 50802 0427 72634578 		.string	"rcExecuting"
- 50802      65637574 
- 50802      696E6700 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1227
-
-
- 50803              	.LASF366:
- 50804 0433 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 50804      45545459 
- 50804      5F46554E 
- 50804      4354494F 
- 50804      4E5F5F00 
- 50805              	.LASF18:
- 50806 0447 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 50806      4D4F445F 
- 50806      4E4F545F 
- 50806      464F554E 
- 50806      4400
- 50807              	.LASF324:
- 50808 0459 636F6C75 		.string	"column"
- 50808      6D6E00
- 50809              	.LASF187:
- 50810 0460 72635265 		.string	"rcReverting"
- 50810      76657274 
- 50810      696E6700 
- 50811              	.LASF103:
- 50812 046c 72634261 		.string	"rcBarrier"
- 50812      72726965 
- 50812      7200
- 50813              	.LASF287:
- 50814 0476 72634578 		.string	"rcExhausted"
- 50814      68617573 
- 50814      74656400 
- 50815              	.LASF5:
- 50816 0482 756E7369 		.string	"unsigned char"
- 50816      676E6564 
- 50816      20636861 
- 50816      7200
- 50817              	.LASF160:
- 50818 0490 5243436F 		.string	"RCContext"
- 50818      6E746578 
- 50818      7400
- 50819              	.LASF123:
- 50820 049a 72634C6F 		.string	"rcLock"
- 50820      636B00
- 50821              	.LASF276:
- 50822 04a1 72634261 		.string	"rcBadVersion"
- 50822      64566572 
- 50822      73696F6E 
- 50822      00
- 50823              	.LASF277:
- 50824 04ae 72634465 		.string	"rcDestroyed"
- 50824      7374726F 
- 50824      79656400 
- 50825              	.LASF140:
- 50826 04ba 72635374 		.string	"rcString"
- 50826      72696E67 
- 50826      00
- 50827              	.LASF353:
- 50828 04c3 4B414553 		.string	"KAESBlockCipherVecRegRotWord"
- 50828      426C6F63 
- 50828      6B436970 
- 50828      68657256 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1228
-
-
- 50828      65635265 
- 50829              	.LASF102:
- 50830 04e0 72634174 		.string	"rcAttr"
- 50830      747200
- 50831              	.LASF124:
- 50832 04e7 72634C6F 		.string	"rcLog"
- 50832      6700
- 50833              	.LASF411:
- 50834 04ed 6E65775F 		.string	"new_obj"
- 50834      6F626A00 
- 50835              	.LASF319:
- 50836 04f5 4B414553 		.string	"KAESBlockCipherVecRegStateIn"
- 50836      426C6F63 
- 50836      6B436970 
- 50836      68657256 
- 50836      65635265 
- 50837              	.LASF21:
- 50838 0512 4442475F 		.string	"DBG_KDB"
- 50838      4B444200 
- 50839              	.LASF228:
- 50840 051a 72635072 		.string	"rcProcessing"
- 50840      6F636573 
- 50840      73696E67 
- 50840      00
- 50841              	.LASF78:
- 50842 0527 72634646 		.string	"rcFF"
- 50842      00
- 50843              	.LASF357:
- 50844 052c 76696E32 		.string	"vin2"
- 50844      00
- 50845              	.LASF79:
- 50846 0531 72634653 		.string	"rcFS"
- 50846      00
- 50847              	.LASF62:
- 50848 0536 62797465 		.string	"bytes"
- 50848      7300
- 50849              	.LASF364:
- 50850 053c 4B414553 		.string	"KAESBlockCipherVecRegFF_mul"
- 50850      426C6F63 
- 50850      6B436970 
- 50850      68657256 
- 50850      65635265 
- 50851              	.LASF166:
- 50852 0558 72634163 		.string	"rcAccessing"
- 50852      63657373 
- 50852      696E6700 
- 50853              	.LASF408:
- 50854 0564 4B414553 		.string	"KAESBlockCipherVecRegProcessorSupport"
- 50854      426C6F63 
- 50854      6B436970 
- 50854      68657256 
- 50854      65635265 
- 50855              	.LASF284:
- 50856 058a 7263496E 		.string	"rcInterrupted"
- 50856      74657272 
- 50856      75707465 
- 50856      6400
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1229
-
-
- 50857              	.LASF292:
- 50858 0598 72634E6F 		.string	"rcNotFound"
- 50858      74466F75 
- 50858      6E6400
- 50859              	.LASF331:
- 50860 05a3 6269745F 		.string	"bit_count"
- 50860      636F756E 
- 50860      7400
- 50861              	.LASF340:
- 50862 05ad 53686966 		.string	"ShiftRowTable"
- 50862      74526F77 
- 50862      5461626C 
- 50862      6500
- 50863              	.LASF12:
- 50864 05bb 63686172 		.string	"char"
- 50864      00
- 50865              	.LASF130:
- 50866 05c0 72634E6F 		.string	"rcNode"
- 50866      646500
- 50867              	.LASF35:
- 50868 05c7 4442475F 		.string	"DBG_AES"
- 50868      41455300 
- 50869              	.LASF261:
- 50870 05cf 72634572 		.string	"rcError"
- 50870      726F7200 
- 50871              	.LASF350:
- 50872 05d7 72636F6E 		.string	"rconw"
- 50872      7700
- 50873              	.LASF330:
- 50874 05dd 6F705F50 		.string	"op_PSRLDI128"
- 50874      53524C44 
- 50874      49313238 
- 50874      00
- 50875              	.LASF178:
- 50876 05ea 7263436C 		.string	"rcClearing"
- 50876      65617269 
- 50876      6E6700
- 50877              	.LASF236:
- 50878 05f5 72634F66 		.string	"rcOffset"
- 50878      66736574 
- 50878      00
- 50879              	.LASF182:
- 50880 05fe 7263436C 		.string	"rcClosing"
- 50880      6F73696E 
- 50880      6700
- 50881              	.LASF114:
- 50882 0608 72634669 		.string	"rcFile"
- 50882      6C6500
- 50883              	.LASF143:
- 50884 060f 72635469 		.string	"rcTimeout"
- 50884      6D656F75 
- 50884      7400
- 50885              	.LASF332:
- 50886 0619 4B414553 		.string	"KAESBlockCipherVecRegPackShuffleBytes"
- 50886      426C6F63 
- 50886      6B436970 
- 50886      68657256 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1230
-
-
- 50886      65635265 
- 50887              	.LASF404:
- 50888 063f 4B414553 		.string	"KAESBlockCipherVecRegSetDecryptKey"
- 50888      426C6F63 
- 50888      6B436970 
- 50888      68657256 
- 50888      65635265 
- 50889              	.LASF131:
- 50890 0662 72634E75 		.string	"rcNumeral"
- 50890      6D657261 
- 50890      6C00
- 50891              	.LASF373:
- 50892 066c 4B414553 		.string	"KAESBlockCipherVecRegEqInvKeyExpansion128"
- 50892      426C6F63 
- 50892      6B436970 
- 50892      68657256 
- 50892      65635265 
- 50893              	.LASF208:
- 50894 0696 72635761 		.string	"rcWaiting"
- 50894      6974696E 
- 50894      6700
- 50895              	.LASF360:
- 50896 06a0 4B414553 		.string	"KAESBlockCipherVecRegKeyExpansion192"
- 50896      426C6F63 
- 50896      6B436970 
- 50896      68657256 
- 50896      65635265 
- 50897              	.LASF212:
- 50898 06c5 72634650 		.string	"rcFPCoding"
- 50898      436F6469 
- 50898      6E6700
- 50899              	.LASF264:
- 50900 06d0 72635369 		.string	"rcSize"
- 50900      7A6500
- 50901              	.LASF249:
- 50902 06d7 72634469 		.string	"rcDirEntry"
- 50902      72456E74 
- 50902      727900
- 50903              	.LASF390:
- 50904 06e2 4B414553 		.string	"KAESBlockCipherVecRegInvSubBytes"
- 50904      426C6F63 
- 50904      6B436970 
- 50904      68657256 
- 50904      65635265 
- 50905              	.LASF201:
- 50906 0703 72634875 		.string	"rcHuffmanCoding"
- 50906      66666D61 
- 50906      6E436F64 
- 50906      696E6700 
- 50907              	.LASF30:
- 50908 0713 4442475F 		.string	"DBG_KFG"
- 50908      4B464700 
- 50909              	.LASF68:
- 50910 071b 636F6C75 		.string	"columns"
- 50910      6D6E7300 
- 50911              	.LASF407:
- 50912 0723 4B414553 		.string	"KAESBlockCipherVecRegDecrypt"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1231
-
-
- 50912      426C6F63 
- 50912      6B436970 
- 50912      68657256 
- 50912      65635265 
- 50913              	.LASF282:
- 50914 0740 72634275 		.string	"rcBusy"
- 50914      737900
- 50915              	.LASF27:
- 50916 0747 4442475F 		.string	"DBG_SRA"
- 50916      53524100 
- 50917              	.LASF240:
- 50918 074f 72635472 		.string	"rcTransfer"
- 50918      616E7366 
- 50918      657200
- 50919              	.LASF24:
- 50920 075a 4442475F 		.string	"DBG_KFS"
- 50920      4B465300 
- 50921              	.LASF368:
- 50922 0762 73725F6D 		.string	"sr_mask"
- 50922      61736B00 
- 50923              	.LASF195:
- 50924 076a 72635061 		.string	"rcPacking"
- 50924      636B696E 
- 50924      6700
- 50925              	.LASF191:
- 50926 0774 7263436F 		.string	"rcCopying"
- 50926      7079696E 
- 50926      6700
- 50927              	.LASF359:
- 50928 077e 4B414553 		.string	"KAESBlockCipherVecRegKeyExpansion128"
- 50928      426C6F63 
- 50928      6B436970 
- 50928      68657256 
- 50928      65635265 
- 50929              	.LASF335:
- 50930 07a3 6F705F50 		.string	"op_PSHUFB128"
- 50930      53485546 
- 50930      42313238 
- 50930      00
- 50931              	.LASF198:
- 50932 07b0 72634465 		.string	"rcDecoding"
- 50932      636F6469 
- 50932      6E6700
- 50933              	.LASF171:
- 50934 07bb 7263556E 		.string	"rcUnlocking"
- 50934      6C6F636B 
- 50934      696E6700 
- 50935              	.LASF56:
- 50936 07c7 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 50936      636B4369 
- 50936      70686572 
- 50936      5665635F 
- 50936      76745F76 
- 50937              	.LASF23:
- 50938 07dd 4442475F 		.string	"DBG_LEGREF"
- 50938      4C454752 
- 50938      454600
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1232
-
-
- 50939              	.LASF172:
- 50940 07e8 72635265 		.string	"rcRenaming"
- 50940      6E616D69 
- 50940      6E6700
- 50941              	.LASF401:
- 50942 07f3 75736572 		.string	"user_key"
- 50942      5F6B6579 
- 50942      00
- 50943              	.LASF242:
- 50944 07fc 72634964 		.string	"rcId"
- 50944      00
- 50945              	.LASF155:
- 50946 0801 7263436D 		.string	"rcCmd"
- 50946      6400
- 50947              	.LASF33:
- 50948 0807 4442475F 		.string	"DBG_LOADLIB"
- 50948      4C4F4144 
- 50948      4C494200 
- 50949              	.LASF294:
- 50950 0813 7263556E 		.string	"rcUnlocked"
- 50950      6C6F636B 
- 50950      656400
- 50951              	.LASF95:
- 50952 081e 52434D6F 		.string	"RCModule"
- 50952      64756C65 
- 50952      00
- 50953              	.LASF256:
- 50954 0827 7263456E 		.string	"rcEncryption"
- 50954      63727970 
- 50954      74696F6E 
- 50954      00
- 50955              	.LASF291:
- 50956 0834 72634578 		.string	"rcExists"
- 50956      69737473 
- 50956      00
- 50957              	.LASF44:
- 50958 083d 43697068 		.string	"CipherVec"
- 50958      65725665 
- 50958      6300
- 50959              	.LASF362:
- 50960 0847 4B414553 		.string	"KAESBlockCipherVecRegKeyExpansion256"
- 50960      426C6F63 
- 50960      6B436970 
- 50960      68657256 
- 50960      65635265 
- 50961              	.LASF310:
- 50962 086c 72634F70 		.string	"rcOpen"
- 50962      656E00
- 50963              	.LASF296:
- 50964 0873 72634465 		.string	"rcDeadlock"
- 50964      61646C6F 
- 50964      636B00
- 50965              	.LASF233:
- 50966 087e 72634C69 		.string	"rcLink"
- 50966      6E6B00
- 50967              	.LASF220:
- 50968 0885 7263466C 		.string	"rcFlushing"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1233
-
-
- 50968      75736869 
- 50968      6E6700
- 50969              	.LASF395:
- 50970 0890 4B414553 		.string	"KAESBlockCipherVecRegDestroy"
- 50970      426C6F63 
- 50970      6B436970 
- 50970      68657256 
- 50970      65635265 
- 50971              	.LASF268:
- 50972 08ad 72634E6F 		.string	"rcNoErr"
- 50972      45727200 
- 50973              	.LASF393:
- 50974 08b5 4B414553 		.string	"KAESBlockCipherVecRegEqInvLastRound"
- 50974      426C6F63 
- 50974      6B436970 
- 50974      68657256 
- 50974      65635265 
- 50975              	.LASF412:
- 50976 08d9 7665635F 		.string	"vec_00"
- 50976      303000
- 50977              	.LASF413:
- 50978 08e0 7665635F 		.string	"vec_01"
- 50978      303100
- 50979              	.LASF247:
- 50980 08e7 72635461 		.string	"rcTag"
- 50980      6700
- 50981              	.LASF416:
- 50982 08ed 4B414553 		.string	"KAESBlockCipherVecRegRijndaelSBox"
- 50982      426C6F63 
- 50982      6B436970 
- 50982      68657256 
- 50982      65635265 
- 50983              	.LASF29:
- 50984 090f 4442475F 		.string	"DBG_ALIGN"
- 50984      414C4947 
- 50984      4E00
- 50985              	.LASF211:
- 50986 0919 72634C6F 		.string	"rcLogging"
- 50986      6767696E 
- 50986      6700
- 50987              	.LASF304:
- 50988 0923 7263546F 		.string	"rcTooBig"
- 50988      6F426967 
- 50988      00
- 50989              	.LASF148:
- 50990 092c 72635665 		.string	"rcVector"
- 50990      63746F72 
- 50990      00
- 50991              	.LASF183:
- 50992 0935 72635265 		.string	"rcResizing"
- 50992      73697A69 
- 50992      6E6700
- 50993              	.LASF157:
- 50994 0940 72635175 		.string	"rcQuery"
- 50994      65727900 
- 50995              	.LASF10:
- 50996 0948 6C6F6E67 		.string	"long unsigned int"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1234
-
-
- 50996      20756E73 
- 50996      69676E65 
- 50996      6420696E 
- 50996      7400
- 50997              	.LASF289:
- 50998 095a 72634578 		.string	"rcExcessive"
- 50998      63657373 
- 50998      69766500 
- 50999              	.LASF352:
- 51000 0966 4B414553 		.string	"KAESBlockCipherVecRegSubWord"
- 51000      426C6F63 
- 51000      6B436970 
- 51000      68657256 
- 51000      65635265 
- 51001              	.LASF421:
- 51002 0983 4B414553 		.string	"KAESBlockCipherVecRegFFtable"
- 51002      426C6F63 
- 51002      6B436970 
- 51002      68657256 
- 51002      65635265 
- 51003              	.LASF217:
- 51004 09a0 72634576 		.string	"rcEvaluating"
- 51004      616C7561 
- 51004      74696E67 
- 51004      00
- 51005              	.LASF154:
- 51006 09ad 7263526E 		.string	"rcRng"
- 51006      6700
- 51007              	.LASF162:
- 51008 09b3 72634361 		.string	"rcCasting"
- 51008      7374696E 
- 51008      6700
- 51009              	.LASF396:
- 51010 09bd 73656C66 		.string	"self"
- 51010      00
- 51011              	.LASF122:
- 51012 09c2 72634974 		.string	"rcIterator"
- 51012      65726174 
- 51012      6F7200
- 51013              	.LASF57:
- 51014 09cd 4B426C6F 		.string	"KBlockCipherVec"
- 51014      636B4369 
- 51014      70686572 
- 51014      56656300 
- 51015              	.LASF415:
- 51016 09dd 7665635F 		.string	"vec_10"
- 51016      313000
- 51017              	.LASF355:
- 51018 09e4 6F705F53 		.string	"op_SHUFPD"
- 51018      48554650 
- 51018      4400
- 51019              	.LASF358:
- 51020 09ee 4B414553 		.string	"KAESBlockCipherVecRegStateMerge2"
- 51020      426C6F63 
- 51020      6B436970 
- 51020      68657256 
- 51020      65635265 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1235
-
-
- 51021              	.LASF139:
- 51022 0a0f 72635374 		.string	"rcStorage"
- 51022      6F726167 
- 51022      6500
- 51023              	.LASF394:
- 51024 0a19 4B414553 		.string	"KAESBlockCipherVecRegEqInvCipher"
- 51024      426C6F63 
- 51024      6B436970 
- 51024      68657256 
- 51024      65635265 
- 51025              	.LASF325:
- 51026 0a3a 77686963 		.string	"which"
- 51026      6800
- 51027              	.LASF372:
- 51028 0a40 4B414553 		.string	"KAESBlockCipherVecRegEqInvKeyExpansion"
- 51028      426C6F63 
- 51028      6B436970 
- 51028      68657256 
- 51028      65635265 
- 51029              	.LASF306:
- 51030 0a67 72634F75 		.string	"rcOutOfKDirectory"
- 51030      744F664B 
- 51030      44697265 
- 51030      63746F72 
- 51030      7900
- 51031              	.LASF251:
- 51032 0a79 7263526F 		.string	"rcRow"
- 51032      7700
- 51033              	.LASF26:
- 51034 0a7f 4442475F 		.string	"DBG_VDB"
- 51034      56444200 
- 51035              	.LASF151:
- 51036 0a87 72634C61 		.string	"rcLastTarget_v1_0"
- 51036      73745461 
- 51036      72676574 
- 51036      5F76315F 
- 51036      3000
- 51037              	.LASF159:
- 51038 0a99 72634C61 		.string	"rcLastTarget_v1_1"
- 51038      73745461 
- 51038      72676574 
- 51038      5F76315F 
- 51038      3100
- 51039              	.LASF138:
- 51040 0aab 72635365 		.string	"rcSemaphore"
- 51040      6D617068 
- 51040      6F726500 
- 51041              	.LASF283:
- 51042 0ab7 7263496E 		.string	"rcIncomplete"
- 51042      636F6D70 
- 51042      6C657465 
- 51042      00
- 51043              	.LASF312:
- 51044 0ac4 72634E6F 		.string	"rcNotOpen"
- 51044      744F7065 
- 51044      6E00
- 51045              	.LASF121:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1236
-
-
- 51046 0ace 7263496E 		.string	"rcIndex"
- 51046      64657800 
- 51047              	.LASF28:
- 51048 0ad6 4442475F 		.string	"DBG_XARC"
- 51048      58415243 
- 51048      00
- 51049              	.LASF425:
- 51050 0adf 474E5520 		.string	"GNU C 4.4.2"
- 51050      4320342E 
- 51050      342E3200 
- 51051              	.LASF74:
- 51052 0aeb 72635275 		.string	"rcRuntime"
- 51052      6E74696D 
- 51052      6500
- 51053              	.LASF113:
- 51054 0af5 7263586D 		.string	"rcXmlDoc"
- 51054      6C446F63 
- 51054      00
- 51055              	.LASF382:
- 51056 0afe 4B414553 		.string	"KAESBlockCipherVecRegShiftRows"
- 51056      426C6F63 
- 51056      6B436970 
- 51056      68657256 
- 51056      65635265 
- 51057              	.LASF13:
- 51058 0b1d 6C6F6E67 		.string	"long long int"
- 51058      206C6F6E 
- 51058      6720696E 
- 51058      7400
- 51059              	.LASF194:
- 51060 0b2b 7263506F 		.string	"rcPositioning"
- 51060      73697469 
- 51060      6F6E696E 
- 51060      6700
- 51061              	.LASF135:
- 51062 0b39 72635175 		.string	"rcQueue"
- 51062      65756500 
- 51063              	.LASF210:
- 51064 0b41 72634465 		.string	"rcDetaching"
- 51064      74616368 
- 51064      696E6700 
- 51065              	.LASF125:
- 51066 0b4d 72634D44 		.string	"rcMD5SumFmt"
- 51066      3553756D 
- 51066      466D7400 
- 51067              	.LASF176:
- 51068 0b59 7263496E 		.string	"rcInserting"
- 51068      73657274 
- 51068      696E6700 
- 51069              	.LASF224:
- 51070 0b65 7263436F 		.string	"rcComparing"
- 51070      6D706172 
- 51070      696E6700 
- 51071              	.LASF286:
- 51072 0b71 7263456D 		.string	"rcEmpty"
- 51072      70747900 
- 51073              	.LASF118:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1237
-
-
- 51074 0b79 7263466F 		.string	"rcFormatter"
- 51074      726D6174 
- 51074      74657200 
- 51075              	.LASF381:
- 51076 0b85 6D726F75 		.string	"mround_keys"
- 51076      6E645F6B 
- 51076      65797300 
- 51077              	.LASF341:
- 51078 0b91 4B414553 		.string	"KAESBlockCipherVecRegVecXor"
- 51078      426C6F63 
- 51078      6B436970 
- 51078      68657256 
- 51078      65635265 
- 51079              	.LASF16:
- 51080 0bad 646F7562 		.string	"double"
- 51080      6C6500
- 51081              	.LASF203:
- 51082 0bb4 72635265 		.string	"rcRegistering"
- 51082      67697374 
- 51082      6572696E 
- 51082      6700
- 51083              	.LASF92:
- 51084 0bc2 72634E53 		.string	"rcNS"
- 51084      00
- 51085              	.LASF235:
- 51086 0bc7 72635061 		.string	"rcParam"
- 51086      72616D00 
- 51087              	.LASF374:
- 51088 0bcf 4B414553 		.string	"KAESBlockCipherVecRegEqInvKeyExpansion192"
- 51088      426C6F63 
- 51088      6B436970 
- 51088      68657256 
- 51088      65635265 
- 51089              	.LASF96:
- 51090 0bf9 52435461 		.string	"RCTarget"
- 51090      72676574 
- 51090      00
- 51091              	.LASF42:
- 51092 0c02 4442475F 		.string	"DBG_AES_OBJECT"
- 51092      4145535F 
- 51092      4F424A45 
- 51092      435400
- 51093              	.LASF334:
- 51094 0c11 6D61736B 		.string	"mask"
- 51094      00
- 51095              	.LASF257:
- 51096 0c16 72634372 		.string	"rcCrc"
- 51096      6300
- 51097              	.LASF386:
- 51098 0c1c 62737761 		.string	"bswap_32"
- 51098      705F3332 
- 51098      00
- 51099              	.LASF32:
- 51100 0c25 4442475F 		.string	"DBG_SEARCH"
- 51100      53454152 
- 51100      434800
- 51101              	.LASF85:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1238
-
-
- 51102 0c30 7263584D 		.string	"rcXML"
- 51102      4C00
- 51103              	.LASF384:
- 51104 0c36 4B414553 		.string	"KAESBlockCipherVecRegFF_mul_02"
- 51104      426C6F63 
- 51104      6B436970 
- 51104      68657256 
- 51104      65635265 
- 51105              	.LASF34:
- 51106 0c55 4442475F 		.string	"DBG_VFS"
- 51106      56465300 
- 51107              	.LASF38:
- 51108 0c5d 4442475F 		.string	"DBG_AES_KEYEXP"
- 51108      4145535F 
- 51108      4B455945 
- 51108      585000
- 51109              	.LASF426:
- 51110 0c6c 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi.c"
- 51110      652F726F 
- 51110      6461726D 
- 51110      65722F73 
- 51110      72615F73 
- 51111              	.LASF14:
- 51112 0ca2 666C6F61 		.string	"float"
- 51112      7400
- 51113              	.LASF179:
- 51114 0ca8 72635570 		.string	"rcUpdating"
- 51114      64617469 
- 51114      6E6700
- 51115              	.LASF206:
- 51116 0cb3 7263436F 		.string	"rcConverting"
- 51116      6E766572 
- 51116      74696E67 
- 51116      00
- 51117              	.LASF192:
- 51118 0cc0 7263436F 		.string	"rcConcatenating"
- 51118      6E636174 
- 51118      656E6174 
- 51118      696E6700 
- 51119              	.LASF71:
- 51120 0cd0 4B426C6F 		.string	"KBlockCipher"
- 51120      636B4369 
- 51120      70686572 
- 51120      00
- 51121              	.LASF149:
- 51122 0cdd 72634479 		.string	"rcDylib"
- 51122      6C696200 
- 51123              	.LASF298:
- 51124 0ce5 72635265 		.string	"rcReadonly"
- 51124      61646F6E 
- 51124      6C7900
- 51125              	.LASF8:
- 51126 0cf0 756E7369 		.string	"unsigned int"
- 51126      676E6564 
- 51126      20696E74 
- 51126      00
- 51127              	.LASF69:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1239
-
-
- 51128 0cfd 67726964 		.string	"grid"
- 51128      00
- 51129              	.LASF41:
- 51130 0d02 4442475F 		.string	"DBG_AES_INVCIPHER"
- 51130      4145535F 
- 51130      494E5643 
- 51130      49504845 
- 51130      5200
- 51131              	.LASF299:
- 51132 0d14 72635772 		.string	"rcWriteonly"
- 51132      6974656F 
- 51132      6E6C7900 
- 51133              	.LASF293:
- 51134 0d20 72634C6F 		.string	"rcLocked"
- 51134      636B6564 
- 51134      00
- 51135              	.LASF175:
- 51136 0d29 72635072 		.string	"rcProjecting"
- 51136      6F6A6563 
- 51136      74696E67 
- 51136      00
- 51137              	.LASF80:
- 51138 0d36 72635053 		.string	"rcPS"
- 51138      00
- 51139              	.LASF265:
- 51140 0d3b 72635265 		.string	"rcRefcount"
- 51140      66636F75 
- 51140      6E7400
- 51141              	.LASF100:
- 51142 0d46 7263546F 		.string	"rcTocEntry"
- 51142      63456E74 
- 51142      727900
- 51143              	.LASF255:
- 51144 0d51 72634D6F 		.string	"rcMode"
- 51144      646500
- 51145              	.LASF365:
- 51146 0d58 62697473 		.string	"bits"
- 51146      00
- 51147              	.LASF314:
- 51148 0d5d 7263556E 		.string	"rcUnequal"
- 51148      65717561 
- 51148      6C00
- 51149              	.LASF295:
- 51150 0d67 72634465 		.string	"rcDetached"
- 51150      74616368 
- 51150      656400
- 51151              	.LASF375:
- 51152 0d72 4B414553 		.string	"KAESBlockCipherVecRegEqInvKeyExpansion256"
- 51152      426C6F63 
- 51152      6B436970 
- 51152      68657256 
- 51152      65635265 
- 51153              	.LASF301:
- 51154 0d9c 7263496E 		.string	"rcInPlaceNotAllowed"
- 51154      506C6163 
- 51154      654E6F74 
- 51154      416C6C6F 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1240
-
-
- 51154      77656400 
- 51155              	.LASF346:
- 51156 0db0 4B414553 		.string	"KAESBlockCipherVecRegStateShiftLeft32"
- 51156      426C6F63 
- 51156      6B436970 
- 51156      68657256 
- 51156      65635265 
- 51157              	.LASF243:
- 51158 0dd6 72635261 		.string	"rcRange"
- 51158      6E676500 
- 51159              	.LASF336:
- 51160 0dde 76746162 		.string	"vtab"
- 51160      00
- 51161              	.LASF427:
- 51162 0de3 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 51162      652F726F 
- 51162      6461726D 
- 51162      65722F73 
- 51162      72615F73 
- 51163              	.LASF253:
- 51164 0e2b 72634C61 		.string	"rcLastObject_v1_0"
- 51164      73744F62 
- 51164      6A656374 
- 51164      5F76315F 
- 51164      3000
- 51165              	.LASF266:
- 51166 0e3d 72634C61 		.string	"rcLastObject_v1_1"
- 51166      73744F62 
- 51166      6A656374 
- 51166      5F76315F 
- 51166      3100
- 51167              	.LASF219:
- 51168 0e4f 72634C61 		.string	"rcLastContext_v1_0"
- 51168      7374436F 
- 51168      6E746578 
- 51168      745F7631 
- 51168      5F3000
- 51169              	.LASF230:
- 51170 0e62 72634C61 		.string	"rcLastContext_v1_1"
- 51170      7374436F 
- 51170      6E746578 
- 51170      745F7631 
- 51170      5F3100
- 51171              	.LASF321:
- 51172 0e75 72636F6E 		.string	"rcon"
- 51172      00
- 51173              	.LASF379:
- 51174 0e7a 4B414553 		.string	"KAESBlockCipherVecRegMiddleRound"
- 51174      426C6F63 
- 51174      6B436970 
- 51174      68657256 
- 51174      65635265 
- 51175              	.LASF126:
- 51176 0e9b 72634D65 		.string	"rcMemMap"
- 51176      6D4D6170 
- 51176      00
- 51177              	.LASF423:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1241
-
-
- 51178 0ea4 4B414553 		.string	"KAESBlockCipherVecRegaes_ncbi_name"
- 51178      426C6F63 
- 51178      6B436970 
- 51178      68657256 
- 51178      65635265 
- 51179              	.LASF58:
- 51180 0ec7 41455342 		.string	"AESByte"
- 51180      79746500 
- 51181              	.LASF150:
- 51182 0ecf 72634578 		.string	"rcExpression"
- 51182      70726573 
- 51182      73696F6E 
- 51182      00
- 51183              	.LASF418:
- 51184 0edc 4B414553 		.string	"KAESBlockCipherVecRegRijndaelInvSBoxV"
- 51184      426C6F63 
- 51184      6B436970 
- 51184      68657256 
- 51184      65635265 
- 51185              	.LASF196:
- 51186 0f02 7263556E 		.string	"rcUnpacking"
- 51186      7061636B 
- 51186      696E6700 
- 51187              	.LASF112:
- 51188 0f0e 7263446F 		.string	"rcDoc"
- 51188      6300
- 51189              	.LASF19:
- 51190 0f14 4442475F 		.string	"DBG_APP"
- 51190      41505000 
- 51191              	.LASF213:
- 51192 0f1c 72634D75 		.string	"rcMultiplexing"
- 51192      6C746970 
- 51192      6C657869 
- 51192      6E6700
- 51193              	.LASF215:
- 51194 0f2b 72635365 		.string	"rcSearching"
- 51194      61726368 
- 51194      696E6700 
- 51195              	.LASF420:
- 51196 0f37 46465F74 		.string	"FF_tab"
- 51196      616200
- 51197              	.LASF315:
- 51198 0f3e 72634661 		.string	"rcFailed"
- 51198      696C6564 
- 51198      00
- 51199              	.LASF40:
- 51200 0f47 4442475F 		.string	"DBG_AES_INVKEYEXP"
- 51200      4145535F 
- 51200      494E564B 
- 51200      45594558 
- 51200      5000
- 51201              	.LASF119:
- 51202 0f59 72634675 		.string	"rcFunctParam"
- 51202      6E637450 
- 51202      6172616D 
- 51202      00
- 51203              	.LASF280:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1242
-
-
- 51204 0f66 7263496E 		.string	"rcIncorrect"
- 51204      636F7272 
- 51204      65637400 
- 51205              	.LASF61:
- 51206 0f72 776F7264 		.string	"word"
- 51206      00
- 51207              	.LASF371:
- 51208 0f77 6F705F50 		.string	"op_PSLLDI128"
- 51208      534C4C44 
- 51208      49313238 
- 51208      00
- 51209              	.LASF229:
- 51210 0f84 72634964 		.string	"rcIdentifying"
- 51210      656E7469 
- 51210      6679696E 
- 51210      6700
- 51211              	.LASF244:
- 51212 0f92 7263436F 		.string	"rcConstraint"
- 51212      6E737472 
- 51212      61696E74 
- 51212      00
- 51213              	.LASF270:
- 51214 0f9f 7263556E 		.string	"rcUnknown"
- 51214      6B6E6F77 
- 51214      6E00
- 51215              	.LASF109:
- 51216 0fa9 72634375 		.string	"rcCursor"
- 51216      72736F72 
- 51216      00
- 51217              	.LASF267:
- 51218 0fb2 52435374 		.string	"RCState"
- 51218      61746500 
- 51219              	.LASF55:
- 51220 0fba 4B426C6F 		.string	"KBlockCipherByte"
- 51220      636B4369 
- 51220      70686572 
- 51220      42797465 
- 51220      00
- 51221              	.LASF377:
- 51222 0fcb 4B414553 		.string	"KAESBlockCipherVecRegAddRoundKey"
- 51222      426C6F63 
- 51222      6B436970 
- 51222      68657256 
- 51222      65635265 
- 51223              	.LASF46:
- 51224 0fec 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 51224      636B4369 
- 51224      70686572 
- 51224      42797465 
- 51224      5F76745F 
- 51225              	.LASF307:
- 51226 1003 72634967 		.string	"rcIgnored"
- 51226      6E6F7265 
- 51226      6400
- 51227              	.LASF165:
- 51228 100d 72635265 		.string	"rcReleasing"
- 51228      6C656173 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1243
-
-
- 51228      696E6700 
- 51229              	.LASF389:
- 51230 1019 4B414553 		.string	"KAESBlockCipherVecRegEqInvMiddleRound"
- 51230      426C6F63 
- 51230      6B436970 
- 51230      68657256 
- 51230      65635265 
- 51231              	.LASF88:
- 51232 103f 72634B46 		.string	"rcKFG"
- 51232      4700
- 51233              	.LASF246:
- 51234 1045 72634D65 		.string	"rcMessage"
- 51234      73736167 
- 51234      6500
- 51235              	.LASF193:
- 51236 104f 7263466F 		.string	"rcFormatting"
- 51236      726D6174 
- 51236      74696E67 
- 51236      00
- 51237              	.LASF86:
- 51238 105c 72635352 		.string	"rcSRA"
- 51238      4100
- 51239              	.LASF344:
- 51240 1062 4B414553 		.string	"KAESBlockCipherVecRegShiftXorColumns"
- 51240      426C6F63 
- 51240      6B436970 
- 51240      68657256 
- 51240      65635265 
- 51241              	.LASF262:
- 51242 1087 7263456E 		.string	"rcEnvironment"
- 51242      7669726F 
- 51242      6E6D656E 
- 51242      7400
- 51243              	.LASF15:
- 51244 1095 6C6F6E67 		.string	"long long unsigned int"
- 51244      206C6F6E 
- 51244      6720756E 
- 51244      7369676E 
- 51244      65642069 
- 51245              	.LASF48:
- 51246 10ac 64657374 		.string	"destroy"
- 51246      726F7900 
- 51247              	.LASF144:
- 51248 10b4 7263546F 		.string	"rcToken"
- 51248      6B656E00 
- 51249              	.LASF204:
- 51250 10bc 7263546F 		.string	"rcTokenizing"
- 51250      6B656E69 
- 51250      7A696E67 
- 51250      00
- 51251              	.LASF22:
- 51252 10c9 4442475F 		.string	"DBG_REF"
- 51252      52454600 
- 51253              	.LASF338:
- 51254 10d1 4B414553 		.string	"KAESBlockCipherVecRegVecSub"
- 51254      426C6F63 
- 51254      6B436970 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1244
-
-
- 51254      68657256 
- 51254      65635265 
- 51255              	.LASF185:
- 51256 10ed 72635772 		.string	"rcWriting"
- 51256      6974696E 
- 51256      6700
- 51257              	.LASF161:
- 51258 10f7 7263416C 		.string	"rcAllocating"
- 51258      6C6F6361 
- 51258      74696E67 
- 51258      00
- 51259              	.LASF376:
- 51260 1104 4B414553 		.string	"KAESBlockCipherVecRegFirstRound"
- 51260      426C6F63 
- 51260      6B436970 
- 51260      68657256 
- 51260      65635265 
- 51261              	.LASF327:
- 51262 1124 4B414553 		.string	"KAESBlockCipherVecRegSubBytes"
- 51262      426C6F63 
- 51262      6B436970 
- 51262      68657256 
- 51262      65635265 
- 51263              	.LASF147:
- 51264 1142 72635479 		.string	"rcType"
- 51264      706500
- 51265              	.LASF248:
- 51266 1149 72635265 		.string	"rcResources"
- 51266      736F7572 
- 51266      63657300 
- 51267              	.LASF354:
- 51268 1155 4B414553 		.string	"KAESBlockCipherVecRegStateMerge1"
- 51268      426C6F63 
- 51268      6B436970 
- 51268      68657256 
- 51268      65635265 
- 51269              	.LASF129:
- 51270 1176 72634E61 		.string	"rcNamelist"
- 51270      6D656C69 
- 51270      737400
- 51271              	.LASF387:
- 51272 1181 4B414553 		.string	"KAESBlockCipherVecRegCipher"
- 51272      426C6F63 
- 51272      6B436970 
- 51272      68657256 
- 51272      65635265 
- 51273              	.LASF337:
- 51274 119d 4B414553 		.string	"KAESBlockCipherVecRegVecOr"
- 51274      426C6F63 
- 51274      6B436970 
- 51274      68657256 
- 51274      65635265 
- 51275              	.LASF313:
- 51276 11b8 7263556E 		.string	"rcUndefined"
- 51276      64656669 
- 51276      6E656400 
- 51277              	.LASF385:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1245
-
-
- 51278 11c4 4B414553 		.string	"KAESBlockCipherVecRegLastRound"
- 51278      426C6F63 
- 51278      6B436970 
- 51278      68657256 
- 51278      65635265 
- 51279              	.LASF281:
- 51280 11e3 7263496E 		.string	"rcInconsistent"
- 51280      636F6E73 
- 51280      69737465 
- 51280      6E7400
- 51281              	.LASF226:
- 51282 11f2 72635265 		.string	"rcRetrieving"
- 51282      74726965 
- 51282      76696E67 
- 51282      00
- 51283              	.LASF400:
- 51284 11ff 656E6372 		.string	"encrypt_key"
- 51284      7970745F 
- 51284      6B657900 
- 51285              	.LASF54:
- 51286 120b 64656372 		.string	"decrypt"
- 51286      79707400 
- 51287              	.LASF47:
- 51288 1213 76657273 		.string	"version"
- 51288      696F6E00 
- 51289              	.LASF238:
- 51290 121b 72634E61 		.string	"rcName"
- 51290      6D6500
- 51291              	.LASF275:
- 51292 1222 72634E75 		.string	"rcNull"
- 51292      6C6C00
- 51293              	.LASF197:
- 51294 1229 7263456E 		.string	"rcEncoding"
- 51294      636F6469 
- 51294      6E6700
- 51295              	.LASF116:
- 51296 1234 72634669 		.string	"rcFileFormat"
- 51296      6C65466F 
- 51296      726D6174 
- 51296      00
- 51297              	.LASF153:
- 51298 1241 7263456E 		.string	"rcEncryptionKey"
- 51298      63727970 
- 51298      74696F6E 
- 51298      4B657900 
- 51299              	.LASF218:
- 51300 1251 7263496E 		.string	"rcInflating"
- 51300      666C6174 
- 51300      696E6700 
- 51301              	.LASF323:
- 51302 125d 4B414553 		.string	"KAESBlockCipherVecRegSetColumn"
- 51302      426C6F63 
- 51302      6B436970 
- 51302      68657256 
- 51302      65635265 
- 51303              	.LASF300:
- 51304 127c 72634E6F 		.string	"rcNoPerm"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1246
-
-
- 51304      5065726D 
- 51304      00
- 51305              	.LASF333:
- 51306 1285 64657374 		.string	"dest"
- 51306      00
- 51307              	.LASF188:
- 51308 128a 72635265 		.string	"rcResetting"
- 51308      73657474 
- 51308      696E6700 
- 51309              	.LASF49:
- 51310 1296 626C6F63 		.string	"block_size"
- 51310      6B5F7369 
- 51310      7A6500
- 51311              	.LASF136:
- 51312 12a1 72635257 		.string	"rcRWLock"
- 51312      4C6F636B 
- 51312      00
- 51313              	.LASF167:
- 51314 12aa 72634C69 		.string	"rcListing"
- 51314      7374696E 
- 51314      6700
- 51315              	.LASF414:
- 51316 12b4 7665635F 		.string	"vec_0F"
- 51316      304600
- 51317              	.LASF117:
- 51318 12bb 72634675 		.string	"rcFunction"
- 51318      6E637469 
- 51318      6F6E00
- 51319              	.LASF39:
- 51320 12c6 4442475F 		.string	"DBG_AES_CIPHER"
- 51320      4145535F 
- 51320      43495048 
- 51320      455200
- 51321              	.LASF273:
- 51322 12d5 7263556E 		.string	"rcUnrecognized"
- 51322      7265636F 
- 51322      676E697A 
- 51322      656400
- 51323              	.LASF66:
- 51324 12e4 6E756D62 		.string	"number_of_rounds"
- 51324      65725F6F 
- 51324      665F726F 
- 51324      756E6473 
- 51324      00
- 51325              	.LASF356:
- 51326 12f5 76696E31 		.string	"vin1"
- 51326      00
- 51327              	.LASF89:
- 51328 12fa 7263416C 		.string	"rcAlign"
- 51328      69676E00 
- 51329              	.LASF152:
- 51330 1302 72635072 		.string	"rcProduction"
- 51330      6F647563 
- 51330      74696F6E 
- 51330      00
- 51331              	.LASF94:
- 51332 130f 72634C61 		.string	"rcLastModule_v1_1"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1247
-
-
- 51332      73744D6F 
- 51332      64756C65 
- 51332      5F76315F 
- 51332      3100
- 51333              	.LASF142:
- 51334 1321 72635468 		.string	"rcThread"
- 51334      72656164 
- 51334      00
- 51335              	.LASF391:
- 51336 132a 4B414553 		.string	"KAESBlockCipherVecRegInvShiftRows"
- 51336      426C6F63 
- 51336      6B436970 
- 51336      68657256 
- 51336      65635265 
- 51337              	.LASF190:
- 51338 134c 72634672 		.string	"rcFreezing"
- 51338      65657A69 
- 51338      6E6700
- 51339              	.LASF52:
- 51340 1357 7365745F 		.string	"set_decrypt_key"
- 51340      64656372 
- 51340      7970745F 
- 51340      6B657900 
- 51341              	.LASF72:
- 51342 1367 62797465 		.string	"byte"
- 51342      00
- 51343              	.LASF45:
- 51344 136c 4B426C6F 		.string	"KBlockCipher_vt"
- 51344      636B4369 
- 51344      70686572 
- 51344      5F767400 
- 51345              	.LASF405:
- 51346 137c 64656372 		.string	"decrypt_key"
- 51346      7970745F 
- 51346      6B657900 
- 51347              	.LASF378:
- 51348 1388 726F756E 		.string	"round_key"
- 51348      645F6B65 
- 51348      7900
- 51349              	.LASF259:
- 51350 1392 72635365 		.string	"rcSeed"
- 51350      656400
- 51351              	.LASF216:
- 51352 1399 72634C6F 		.string	"rcLoading"
- 51352      6164696E 
- 51352      6700
- 51353              	.LASF1:
- 51354 13a3 73686F72 		.string	"short int"
- 51354      7420696E 
- 51354      7400
- 51355              	.LASF397:
- 51356 13ad 4B414553 		.string	"KAESBlockCipherVecRegBlockSize"
- 51356      426C6F63 
- 51356      6B436970 
- 51356      68657256 
- 51356      65635265 
- 51357              	.LASF9:
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1248
-
-
- 51358 13cc 75696E74 		.string	"uint64_t"
- 51358      36345F74 
- 51358      00
- 51359              	.LASF309:
- 51360 13d5 72634C61 		.string	"rcLastState_v1_0"
- 51360      73745374 
- 51360      6174655F 
- 51360      76315F30 
- 51360      00
- 51361              	.LASF318:
- 51362 13e6 72634C61 		.string	"rcLastState_v1_1"
- 51362      73745374 
- 51362      6174655F 
- 51362      76315F31 
- 51362      00
- 51363              	.LASF83:
- 51364 13f7 72635644 		.string	"rcVDB"
- 51364      4200
- 51365              	.LASF51:
- 51366 13fd 7365745F 		.string	"set_encrypt_key"
- 51366      656E6372 
- 51366      7970745F 
- 51366      6B657900 
- 51367              	.LASF329:
- 51368 140d 4B414553 		.string	"KAESBlockCipherVecRegVecAnd"
- 51368      426C6F63 
- 51368      6B436970 
- 51368      68657256 
- 51368      65635265 
- 51369              	.LASF81:
- 51370 1429 72635846 		.string	"rcXF"
- 51370      00
- 51371              	.LASF322:
- 51372 142e 7672636F 		.string	"vrcon"
- 51372      6E00
- 51373              	.LASF164:
- 51374 1434 72634465 		.string	"rcDestroying"
- 51374      7374726F 
- 51374      79696E67 
- 51374      00
- 51375              	.LASF269:
- 51376 1441 7263446F 		.string	"rcDone"
- 51376      6E6500
- 51377              	.LASF99:
- 51378 1448 7263546F 		.string	"rcToc"
- 51378      6300
- 51379              	.LASF63:
- 51380 144e 43697068 		.string	"CipherVecByte"
- 51380      65725665 
- 51380      63427974 
- 51380      6500
- 51381              	.LASF173:
- 51382 145c 7263416C 		.string	"rcAliasing"
- 51382      69617369 
- 51382      6E6700
- 51383              	.LASF388:
- 51384 1467 4B414553 		.string	"KAESBlockCipherVecRegEqInvFirstRound"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1249
-
-
- 51384      426C6F63 
- 51384      6B436970 
- 51384      68657256 
- 51384      65635265 
- 51385              	.LASF134:
- 51386 148c 72635072 		.string	"rcProcess"
- 51386      6F636573 
- 51386      7300
- 51387              	.LASF232:
- 51388 1496 72634E6F 		.string	"rcNoObj"
- 51388      4F626A00 
- 51389              	.LASF406:
- 51390 149e 4B414553 		.string	"KAESBlockCipherVecRegEncrypt"
- 51390      426C6F63 
- 51390      6B436970 
- 51390      68657256 
- 51390      65635265 
- 51391              	.LASF271:
- 51392 14bb 7263556E 		.string	"rcUnsupported"
- 51392      73757070 
- 51392      6F727465 
- 51392      6400
- 51393              	.LASF383:
- 51394 14c9 4B414553 		.string	"KAESBlockCipherVecRegMixColumns"
- 51394      426C6F63 
- 51394      6B436970 
- 51394      68657256 
- 51394      65635265 
- 51395              	.LASF339:
- 51396 14e9 4B414553 		.string	"KAESBlockCipherVecRegRotBytesLeft"
- 51396      426C6F63 
- 51396      6B436970 
- 51396      68657256 
- 51396      65635265 
- 51397              	.LASF107:
- 51398 150b 7263436F 		.string	"rcColumn"
- 51398      6C756D6E 
- 51398      00
- 51399              	.LASF272:
- 51400 1514 7263556E 		.string	"rcUnexpected"
- 51400      65787065 
- 51400      63746564 
- 51400      00
- 51401              	.LASF7:
- 51402 1521 75696E74 		.string	"uint32_t"
- 51402      33325F74 
- 51402      00
- 51403              	.LASF93:
- 51404 152a 72635646 		.string	"rcVFS"
- 51404      5300
- 51405              	.LASF31:
- 51406 1530 4442475F 		.string	"DBG_KRYPTO"
- 51406      4B525950 
- 51406      544F00
- 51407              	.LASF43:
- 51408 153b 4442475F 		.string	"DBG_AES_COUNT"
- 51408      4145535F 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1250
-
-
- 51408      434F554E 
- 51408      5400
- 51409              	.LASF60:
- 51410 1549 41455343 		.string	"AESColumn"
- 51410      6F6C756D 
- 51410      6E00
- 51411              	.LASF409:
- 51412 1553 6C657665 		.string	"level"
- 51412      6C00
- 51413              	.LASF363:
- 51414 1559 4B414553 		.string	"KAESBlockCipherVecRegInvMixColumns"
- 51414      426C6F63 
- 51414      6B436970 
- 51414      68657256 
- 51414      65635265 
- 51415              	.LASF317:
- 51416 157c 72635772 		.string	"rcWrongType"
- 51416      6F6E6754 
- 51416      79706500 
- 51417              	.LASF252:
- 51418 1588 72634C69 		.string	"rcLibrary"
- 51418      62726172 
- 51418      7900
- 51419              	.LASF285:
- 51420 1592 72634361 		.string	"rcCanceled"
- 51420      6E63656C 
- 51420      656400
- 51421              	.LASF156:
- 51422 159d 72634461 		.string	"rcData"
- 51422      746100
- 51423              	.LASF120:
- 51424 15a4 72634865 		.string	"rcHeader"
- 51424      61646572 
- 51424      00
- 51425              	.LASF6:
- 51426 15ad 73686F72 		.string	"short unsigned int"
- 51426      7420756E 
- 51426      7369676E 
- 51426      65642069 
- 51426      6E7400
- 51427              	.LASF424:
- 51428 15c0 4B414553 		.string	"KAESBlockCipherVecReg_vt_"
- 51428      426C6F63 
- 51428      6B436970 
- 51428      68657256 
- 51428      65635265 
- 51429              	.LASF110:
- 51430 15da 72634461 		.string	"rcDatabase"
- 51430      74616261 
- 51430      736500
- 51431              	.LASF186:
- 51432 15e5 7263436F 		.string	"rcCommitting"
- 51432      6D6D6974 
- 51432      74696E67 
- 51432      00
- 51433              	.LASF214:
- 51434 15f2 7263436C 		.string	"rcClassifying"
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1251
-
-
- 51434      61737369 
- 51434      6679696E 
- 51434      6700
- 51435              	.LASF145:
- 51436 1600 72635472 		.string	"rcTree"
- 51436      656500
- 51437              	.LASF36:
- 51438 1607 4442475F 		.string	"DBG_ARGS"
- 51438      41524753 
- 51438      00
- 51439              	.LASF349:
- 51440 1610 4B414553 		.string	"KAESBlockCipherVecRegAesKeyGenAssistColumn1"
- 51440      426C6F63 
- 51440      6B436970 
- 51440      68657256 
- 51440      65635265 
- 51441              	.LASF361:
- 51442 163c 4B414553 		.string	"KAESBlockCipherVecRegAesKeyGenAssistColumn2"
- 51442      426C6F63 
- 51442      6B436970 
- 51442      68657256 
- 51442      65635265 
- 51443              	.LASF320:
- 51444 1668 4B414553 		.string	"KAESBlockCipherVecRegAesKeyGenAssistColumn3"
- 51444      426C6F63 
- 51444      6B436970 
- 51444      68657256 
- 51444      65635265 
- 51445              	.LASF174:
- 51446 1694 72635365 		.string	"rcSelecting"
- 51446      6C656374 
- 51446      696E6700 
- 51447              	.LASF75:
- 51448 16a0 72635465 		.string	"rcText"
- 51448      787400
- 51449              	.LASF311:
- 51450 16a7 72634F75 		.string	"rcOutoforder"
- 51450      746F666F 
- 51450      72646572 
- 51450      00
- 51451              	.LASF278:
- 51452 16b4 7263496E 		.string	"rcInvalid"
- 51452      76616C69 
- 51452      6400
- 51453              	.LASF402:
- 51454 16be 75736572 		.string	"user_key_size"
- 51454      5F6B6579 
- 51454      5F73697A 
- 51454      6500
- 51455              	.LASF225:
- 51456 16cc 7263496E 		.string	"rcInitializing"
- 51456      69746961 
- 51456      6C697A69 
- 51456      6E6700
- 51457              	.LASF104:
- 51458 16db 7263426C 		.string	"rcBlob"
- 51458      6F6200
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1252
-
-
- 51459              	.LASF326:
- 51460 16e2 6F705F50 		.string	"op_PINSRUD"
- 51460      494E5352 
- 51460      554400
- 51461              	.LASF351:
- 51462 16ed 74656D70 		.string	"temp"
- 51462      00
- 51463              	.LASF202:
- 51464 16f2 72635265 		.string	"rcReindexing"
- 51464      696E6465 
- 51464      78696E67 
- 51464      00
- 51465              	.LASF97:
- 51466 16ff 72634E6F 		.string	"rcNoTarg"
- 51466      54617267 
- 51466      00
- 51467              	.LASF279:
- 51468 1708 7263436F 		.string	"rcCorrupt"
- 51468      72727570 
- 51468      7400
- 51469              	.LASF308:
- 51470 1712 72634F75 		.string	"rcOutofrange"
- 51470      746F6672 
- 51470      616E6765 
- 51470      00
- 51471              	.LASF137:
- 51472 171f 72635363 		.string	"rcSchema"
- 51472      68656D61 
- 51472      00
- 51473              	.LASF417:
- 51474 1728 4B414553 		.string	"KAESBlockCipherVecRegRijndaelSBoxV"
- 51474      426C6F63 
- 51474      6B436970 
- 51474      68657256 
- 51474      65635265 
- 51475              	.LASF370:
- 51476 174b 736C5F6D 		.string	"sl_mask"
- 51476      61736B00 
- 51477              	.LASF133:
- 51478 1753 72635061 		.string	"rcPath"
- 51478      746800
- 51479              	.LASF184:
- 51480 175a 72635265 		.string	"rcReading"
- 51480      6164696E 
- 51480      6700
- 51481              	.LASF50:
- 51482 1764 6B65795F 		.string	"key_size"
- 51482      73697A65 
- 51482      00
- 51483              	.LASF316:
- 51484 176d 72634E6F 		.string	"rcNotAvailable"
- 51484      74417661 
- 51484      696C6162 
- 51484      6C6500
- 51485              	.LASF274:
- 51486 177c 7263416D 		.string	"rcAmbiguous"
- 51486      62696775 
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1253
-
-
- 51486      6F757300 
- 51487              		.ident	"GCC: (GNU) 4.4.2"
- 51488              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1254
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 aes-ncbi.c
-     /tmp/ccjbMjHD.s:11     .text:0000000000000000 bswap_32
-     /tmp/ccjbMjHD.s:47     .rodata:0000000000000000 vec_00
-     /tmp/ccjbMjHD.s:52     .rodata:0000000000000010 vec_01
-     /tmp/ccjbMjHD.s:72     .rodata:0000000000000020 vec_0F
-     /tmp/ccjbMjHD.s:92     .rodata:0000000000000030 vec_10
-     /tmp/ccjbMjHD.s:112    .rodata:0000000000000040 KAESBlockCipherVecRegRijndaelSBox
-     /tmp/ccjbMjHD.s:372    .rodata:0000000000000140 KAESBlockCipherVecRegRijndaelSBoxV
-     /tmp/ccjbMjHD.s:632    .rodata:0000000000000240 KAESBlockCipherVecRegRijndaelInvSBoxV
-     /tmp/ccjbMjHD.s:892    .rodata:0000000000000340 lo_filter
-     /tmp/ccjbMjHD.s:912    .rodata:0000000000000350 FF_tab
-     /tmp/ccjbMjHD.s:932    .data:0000000000000000 KAESBlockCipherVecRegFFtable
-     /tmp/ccjbMjHD.s:945    .rodata:0000000000000360 KAESBlockCipherVecRegRcon
-     /tmp/ccjbMjHD.s:968    .text:0000000000000014 KAESBlockCipherVecRegKeyExpansion128
-     /tmp/ccjbMjHD.s:21622  .rodata:0000000000000600 ShiftRowTable.7385
-     /tmp/ccjbMjHD.s:21958  .rodata:0000000000000810 mask.7943
-     /tmp/ccjbMjHD.s:6545   .text:00000000000054ef KAESBlockCipherVecRegKeyExpansion192
-     /tmp/ccjbMjHD.s:21978  .rodata:0000000000000820 mask.7952
-     /tmp/ccjbMjHD.s:10799  .text:000000000000967d KAESBlockCipherVecRegKeyExpansion256
-     /tmp/ccjbMjHD.s:15920  .text:000000000000e479 KAESBlockCipherVecRegEqInvKeyExpansion
-     /tmp/ccjbMjHD.s:21647  .rodata:0000000000000640 sr_mask.7327
-     /tmp/ccjbMjHD.s:21800  .rodata:0000000000000700 sl_mask.7310
-     /tmp/ccjbMjHD.s:16983  .text:000000000000f439 KAESBlockCipherVecRegEqInvKeyExpansion128
-     /tmp/ccjbMjHD.s:17011  .text:000000000000f463 KAESBlockCipherVecRegEqInvKeyExpansion192
-     /tmp/ccjbMjHD.s:17039  .text:000000000000f48d KAESBlockCipherVecRegEqInvKeyExpansion256
-     /tmp/ccjbMjHD.s:17083  .text:000000000000f4b7 KAESBlockCipherVecRegCipher
-     /tmp/ccjbMjHD.s:21602  .rodata:00000000000005f0 ShiftRowTable.7358
-     /tmp/ccjbMjHD.s:18729  .text:0000000000010d03 KAESBlockCipherVecRegEqInvCipher
-     /tmp/ccjbMjHD.s:21998  .rodata:0000000000000830 InvShiftRowTable.7367
-     /tmp/ccjbMjHD.s:20859  .rodata:000000000000046c KAESBlockCipherVecRegaes_ncbi_name
-     /tmp/ccjbMjHD.s:20863  .text:0000000000012cd9 KAESBlockCipherVecRegDestroy
-     /tmp/ccjbMjHD.s:20882  .text:0000000000012ce3 KAESBlockCipherVecRegBlockSize
-     /tmp/ccjbMjHD.s:20902  .text:0000000000012cee KAESBlockCipherVecRegKeySize
-     /tmp/ccjbMjHD.s:20927  .text:0000000000012cf9 KAESBlockCipherVecRegSetEncryptKey
-     /tmp/ccjbMjHD.s:21948  .rodata:00000000000007a0 __func__.9027
-     /tmp/ccjbMjHD.s:21018  .text:0000000000012de2 KAESBlockCipherVecRegSetDecryptKey
-     /tmp/ccjbMjHD.s:21100  .text:0000000000012ea5 KAESBlockCipherVecRegEncrypt
-     /tmp/ccjbMjHD.s:21597  .rodata:00000000000005d0 __PRETTY_FUNCTION__.9063
-     /tmp/ccjbMjHD.s:21178  .text:0000000000012f68 KAESBlockCipherVecRegDecrypt
-     /tmp/ccjbMjHD.s:21592  .rodata:00000000000005b0 __PRETTY_FUNCTION__.9084
-     /tmp/ccjbMjHD.s:21271  .text:000000000001302b KAESBlockCipherVecRegProcessorSupport
-     /tmp/ccjbMjHD.s:21587  .rodata:0000000000000580 __func__.9108
-     /tmp/ccjbMjHD.s:21481  .data.rel.ro.local:0000000000000000 KAESBlockCipherVecReg_vt_
-     /tmp/ccjbMjHD.s:21497  .text:0000000000013281 KAESBlockCipherVecRegMake
-     /tmp/ccjbMjHD.s:21577  .rodata:0000000000000540 __func__.9198
-     /tmp/ccjbMjHD.s:21582  .rodata:0000000000000560 __PRETTY_FUNCTION__.9199
-     /tmp/ccjbMjHD.s:21642  .rodata:0000000000000610 __PRETTY_FUNCTION__.7467
-     /tmp/ccjbMjHD.s:21795  .rodata:00000000000006d0 __PRETTY_FUNCTION__.7312
-     /tmp/ccjbMjHD.s:21953  .rodata:00000000000007e0 __PRETTY_FUNCTION__.9026
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-KDbgWriterGet
-KDbgCondToFlag
-KDbgTestModConds
-KDbgMsg
-
GAS LISTING /tmp/ccjbMjHD.s 			page 1255
-
-
-memset
-SetRCFileFuncLine
-__assert_fail
diff --git a/libs/krypto/aes-priv.h b/libs/krypto/aes-priv.h
deleted file mode 100644
index 4ebdbb0..0000000
--- a/libs/krypto/aes-priv.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#ifndef _h_krypto_aes_priv_
-#define _h_krypto_aes_priv_
-
-/*
- * This header file was written to integrate the public domain AES code
- * with the SRA project
- */
-
-#define AES_ENCRYPT	1
-#define AES_DECRYPT	0
-
-/* Because array size can't be a const in C, the following two are macros.
-   Both sizes are in bytes. */
-#define AES_MAXNR (14)
-#define AES_BLOCK_SIZE (16)
-
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-typedef uint8_t AES_BYTE;
-typedef uint32_t AES_WORD;
-
-
-
-
-/* typedef int64_t AESState  __attribute__ ((vector_size (AES_BLOCK_SIZE))); */
-
-typedef struct AES_KEY AES_KEY;
-struct AES_KEY
-{
-    uint32_t rd_key [sizeof (AES_WORD) * (AES_MAXNR + 1)];
-    uint32_t rounds;
-};
-
-
-int AES_set_encrypt_key(const uint8_t *userKey, const uint32_t bits,
-                        AES_KEY *key);
-
-int AES_set_decrypt_key(const uint8_t *userKey, const uint32_t bits,
-                        AES_KEY *key);
-
-void AES_encrypt(const uint8_t *in, uint8_t *out,
-                 const AES_KEY *key);
-void AES_decrypt(const uint8_t *in, uint8_t *out,
-                 const AES_KEY *key);
-
-
-int AESx86_set_encrypt_key(const uint8_t *userKey, const uint32_t bits,
-                        AES_KEY *key);
-
-int AESx86_set_decrypt_key(const uint8_t *userKey, const uint32_t bits,
-                        AES_KEY *key);
-
-void AESx86_encrypt(const uint8_t *in, uint8_t *out,
-                 const AES_KEY *key);
-void AES_decrypt(const uint8_t *in, uint8_t *out,
-                 const AES_KEY *key);
-
-
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_aes_priv_ */
-
-
diff --git a/libs/krypto/aes.c b/libs/krypto/aes.c
deleted file mode 100644
index 328ba6d..0000000
--- a/libs/krypto/aes.c
+++ /dev/null
@@ -1 +0,0 @@
-#error "Obsolete do not use"
diff --git a/libs/krypto/aes_core.c b/libs/krypto/aes_core.c
deleted file mode 100644
index b4d4239..0000000
--- a/libs/krypto/aes_core.c
+++ /dev/null
@@ -1,1181 +0,0 @@
-/*
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was modified as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *  Tweaked to match standards of the NCBI SRA project
- * We obatined this file from version 1.0.0e of OpenSSL but we have
- * eliminated the OpenSSL code where it could be identified
- *
- * We created our own header file as there was no public domain
- * header file associated with this public domain C file.
- */
-
-/**
- * rijndael-alg-fst.c
- *
- * @version 3.0 (December 2000)
- *
- * Optimised ANSI C code for the Rijndael cipher (now AES)
- *
- * @author Vincent Rijmen <vincent.rijmen at esat.kuleuven.ac.be>
- * @author Antoon Bosselaers <antoon.bosselaers at esat.kuleuven.ac.be>
- * @author Paulo Barreto <paulo.barreto at terra.com.br>
- *
- * This code is hereby placed in the public domain.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-#include "aes-priv.h"
-
-#include <assert.h>
-
-
-#define FULL_UNROLL (true)
-
-# define GETU32(pt) (((uint32_t)(pt)[0] << 24) ^ ((uint32_t)(pt)[1] << 16) ^ ((uint32_t)(pt)[2] <<  8) ^ ((uint32_t)(pt)[3]))
-# define PUTU32(ct, st) (((ct)[0] = (uint8_t)((st) >> 24)), ((ct)[1] = (uint8_t)((st) >> 16)),((ct)[2] = (uint8_t)((st) >>  8)),((ct)[3] = (uint8_t)(st)))
-
-/*
-Te0[x] = S [x].[02, 01, 01, 03];
-Te1[x] = S [x].[03, 02, 01, 01];
-Te2[x] = S [x].[01, 03, 02, 01];
-Te3[x] = S [x].[01, 01, 03, 02];
-
-Td0[x] = Si[x].[0e, 09, 0d, 0b];
-Td1[x] = Si[x].[0b, 0e, 09, 0d];
-Td2[x] = Si[x].[0d, 0b, 0e, 09];
-Td3[x] = Si[x].[09, 0d, 0b, 0e];
-Td4[x] = Si[x].[01];
-*/
-
-static const uint32_t Te0[256] = {
-    0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
-    0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
-    0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,
-    0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,
-    0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,
-    0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,
-    0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,
-    0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,
-    0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,
-    0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,
-    0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,
-    0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,
-    0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,
-    0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,
-    0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,
-    0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,
-    0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,
-    0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,
-    0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,
-    0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,
-    0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,
-    0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,
-    0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,
-    0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,
-    0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,
-    0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,
-    0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,
-    0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,
-    0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,
-    0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,
-    0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,
-    0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,
-    0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,
-    0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,
-    0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,
-    0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,
-    0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,
-    0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,
-    0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,
-    0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,
-    0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,
-    0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,
-    0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,
-    0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,
-    0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,
-    0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,
-    0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,
-    0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,
-    0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,
-    0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,
-    0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,
-    0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,
-    0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,
-    0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,
-    0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,
-    0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,
-    0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,
-    0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,
-    0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,
-    0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,
-    0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,
-    0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,
-    0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
-    0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
-};
-static const uint32_t Te1[256] = {
-    0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
-    0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
-    0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU,
-    0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U,
-    0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU,
-    0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U,
-    0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU,
-    0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U,
-    0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U,
-    0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU,
-    0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U,
-    0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U,
-    0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U,
-    0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU,
-    0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U,
-    0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U,
-    0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU,
-    0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U,
-    0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U,
-    0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U,
-    0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU,
-    0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU,
-    0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U,
-    0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU,
-    0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU,
-    0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U,
-    0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU,
-    0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U,
-    0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU,
-    0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U,
-    0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U,
-    0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U,
-    0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU,
-    0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U,
-    0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU,
-    0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U,
-    0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU,
-    0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U,
-    0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U,
-    0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU,
-    0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU,
-    0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU,
-    0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U,
-    0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U,
-    0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU,
-    0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U,
-    0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU,
-    0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U,
-    0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU,
-    0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U,
-    0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU,
-    0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU,
-    0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U,
-    0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU,
-    0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U,
-    0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU,
-    0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U,
-    0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U,
-    0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U,
-    0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU,
-    0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU,
-    0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U,
-    0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
-    0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
-};
-static const uint32_t Te2[256] = {
-    0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
-    0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
-    0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU,
-    0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U,
-    0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU,
-    0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U,
-    0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU,
-    0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U,
-    0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U,
-    0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU,
-    0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U,
-    0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U,
-    0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U,
-    0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU,
-    0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U,
-    0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U,
-    0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU,
-    0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U,
-    0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U,
-    0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U,
-    0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU,
-    0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU,
-    0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U,
-    0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU,
-    0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU,
-    0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U,
-    0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU,
-    0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U,
-    0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU,
-    0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U,
-    0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U,
-    0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U,
-    0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU,
-    0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U,
-    0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU,
-    0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U,
-    0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU,
-    0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U,
-    0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U,
-    0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU,
-    0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU,
-    0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU,
-    0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U,
-    0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U,
-    0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU,
-    0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U,
-    0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU,
-    0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U,
-    0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU,
-    0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U,
-    0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU,
-    0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU,
-    0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U,
-    0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU,
-    0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U,
-    0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU,
-    0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U,
-    0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U,
-    0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U,
-    0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU,
-    0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU,
-    0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U,
-    0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
-    0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
-};
-static const uint32_t Te3[256] = {
-    0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
-    0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
-    0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
-    0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU,
-    0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU,
-    0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU,
-    0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U,
-    0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU,
-    0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU,
-    0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U,
-    0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U,
-    0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU,
-    0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU,
-    0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU,
-    0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU,
-    0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU,
-    0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U,
-    0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU,
-    0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU,
-    0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U,
-    0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U,
-    0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U,
-    0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U,
-    0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U,
-    0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU,
-    0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U,
-    0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU,
-    0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU,
-    0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U,
-    0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U,
-    0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U,
-    0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU,
-    0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U,
-    0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU,
-    0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU,
-    0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U,
-    0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U,
-    0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU,
-    0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U,
-    0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU,
-    0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U,
-    0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U,
-    0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U,
-    0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U,
-    0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU,
-    0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U,
-    0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU,
-    0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U,
-    0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU,
-    0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U,
-    0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU,
-    0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU,
-    0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU,
-    0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU,
-    0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U,
-    0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U,
-    0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U,
-    0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U,
-    0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U,
-    0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U,
-    0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU,
-    0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U,
-    0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
-    0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
-};
-
-static const uint32_t Td0[256] = {
-    0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
-    0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
-    0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U,
-    0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU,
-    0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U,
-    0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U,
-    0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU,
-    0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U,
-    0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU,
-    0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U,
-    0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U,
-    0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U,
-    0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U,
-    0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU,
-    0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U,
-    0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU,
-    0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U,
-    0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU,
-    0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U,
-    0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U,
-    0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U,
-    0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU,
-    0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U,
-    0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU,
-    0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U,
-    0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU,
-    0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U,
-    0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU,
-    0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU,
-    0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U,
-    0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU,
-    0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U,
-    0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU,
-    0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U,
-    0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U,
-    0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U,
-    0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU,
-    0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U,
-    0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U,
-    0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU,
-    0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U,
-    0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U,
-    0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U,
-    0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U,
-    0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U,
-    0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU,
-    0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U,
-    0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U,
-    0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U,
-    0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U,
-    0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U,
-    0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU,
-    0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU,
-    0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU,
-    0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU,
-    0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U,
-    0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U,
-    0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU,
-    0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU,
-    0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U,
-    0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU,
-    0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U,
-    0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
-    0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
-};
-static const uint32_t Td1[256] = {
-    0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
-    0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
-    0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU,
-    0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U,
-    0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U,
-    0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U,
-    0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U,
-    0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U,
-    0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U,
-    0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU,
-    0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU,
-    0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU,
-    0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U,
-    0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU,
-    0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U,
-    0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U,
-    0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U,
-    0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU,
-    0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU,
-    0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U,
-    0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU,
-    0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U,
-    0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU,
-    0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU,
-    0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U,
-    0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U,
-    0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U,
-    0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU,
-    0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U,
-    0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU,
-    0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U,
-    0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U,
-    0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U,
-    0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU,
-    0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U,
-    0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U,
-    0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U,
-    0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U,
-    0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U,
-    0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U,
-    0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU,
-    0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU,
-    0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U,
-    0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU,
-    0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U,
-    0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU,
-    0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU,
-    0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U,
-    0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU,
-    0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U,
-    0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U,
-    0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U,
-    0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U,
-    0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U,
-    0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U,
-    0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U,
-    0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU,
-    0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U,
-    0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U,
-    0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU,
-    0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U,
-    0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U,
-    0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
-    0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
-};
-static const uint32_t Td2[256] = {
-    0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
-    0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
-    0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U,
-    0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U,
-    0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU,
-    0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U,
-    0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U,
-    0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U,
-    0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U,
-    0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU,
-    0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U,
-    0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U,
-    0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU,
-    0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U,
-    0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U,
-    0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U,
-    0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U,
-    0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
-    0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
-    0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
-    0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
-    0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
-    0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
-    0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U,
-    0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U,
-    0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU,
-    0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU,
-    0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U,
-    0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU,
-    0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U,
-    0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU,
-    0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU,
-    0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU,
-    0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU,
-    0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U,
-    0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U,
-    0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U,
-    0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U,
-    0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U,
-    0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U,
-    0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U,
-    0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU,
-    0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU,
-    0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U,
-    0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U,
-    0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU,
-    0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU,
-    0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U,
-    0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U,
-    0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U,
-    0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U,
-    0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U,
-    0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U,
-    0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U,
-    0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU,
-    0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U,
-    0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U,
-    0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U,
-    0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U,
-    0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U,
-    0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U,
-    0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU,
-    0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
-    0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
-};
-static const uint32_t Td3[256] = {
-    0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
-    0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
-    0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U,
-    0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U,
-    0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU,
-    0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU,
-    0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U,
-    0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU,
-    0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U,
-    0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU,
-    0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U,
-    0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U,
-    0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U,
-    0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U,
-    0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U,
-    0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU,
-    0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU,
-    0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U,
-    0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U,
-    0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU,
-    0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU,
-    0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U,
-    0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U,
-    0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U,
-    0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U,
-    0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU,
-    0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U,
-    0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U,
-    0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU,
-    0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU,
-    0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U,
-    0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U,
-    0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U,
-    0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU,
-    0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U,
-    0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U,
-    0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U,
-    0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U,
-    0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U,
-    0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U,
-    0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U,
-    0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU,
-    0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U,
-    0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U,
-    0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU,
-    0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU,
-    0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U,
-    0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU,
-    0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U,
-    0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U,
-    0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U,
-    0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U,
-    0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U,
-    0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U,
-    0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU,
-    0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU,
-    0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU,
-    0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU,
-    0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U,
-    0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U,
-    0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U,
-    0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU,
-    0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
-    0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
-};
-static const uint8_t Td4[256] = {
-    0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
-    0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
-    0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
-    0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
-    0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
-    0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
-    0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
-    0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
-    0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
-    0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
-    0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
-    0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
-    0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
-    0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
-    0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
-    0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
-    0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
-    0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
-    0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
-    0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
-    0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
-    0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
-    0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
-    0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
-    0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
-    0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
-    0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
-    0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
-    0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
-    0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
-    0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
-    0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
-};
-static const uint32_t rcon[] = {
-	0x01000000, 0x02000000, 0x04000000, 0x08000000,
-	0x10000000, 0x20000000, 0x40000000, 0x80000000,
-	0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
-};
-
-/**
- * Expand the cipher key into the encryption key schedule.
- */
-int AES_set_encrypt_key(const uint8_t *userKey, uint32_t bits,
-			AES_KEY *key) {
-
-	uint32_t *rk;
-   	int i = 0;
-	uint32_t temp;
-
-	if (!userKey || !key)
-		return -1;
-	if (bits != 128 && bits != 192 && bits != 256)
-		return -2;
-
-	rk = key->rd_key;
-
-	if (bits==128)
-		key->rounds = 10;
-	else if (bits==192)
-		key->rounds = 12;
-	else
-		key->rounds = 14;
-
-	rk[0] = GETU32(userKey     );
-	rk[1] = GETU32(userKey +  4);
-	rk[2] = GETU32(userKey +  8);
-	rk[3] = GETU32(userKey + 12);
-	if (bits == 128) {
-		while (1) {
-			temp  = rk[3];
-			rk[4] = rk[0] ^
-				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
-				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
-				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
-				(Te1[(temp >> 24)       ] & 0x000000ff) ^
-				rcon[i];
-			rk[5] = rk[1] ^ rk[4];
-			rk[6] = rk[2] ^ rk[5];
-			rk[7] = rk[3] ^ rk[6];
-			if (++i == 10) {
-				return 0;
-			}
-			rk += 4;
-		}
-	}
-	rk[4] = GETU32(userKey + 16);
-	rk[5] = GETU32(userKey + 20);
-	if (bits == 192) {
-		while (1) {
-			temp = rk[ 5];
-			rk[ 6] = rk[ 0] ^
-				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
-				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
-				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
-				(Te1[(temp >> 24)       ] & 0x000000ff) ^
-				rcon[i];
-			rk[ 7] = rk[ 1] ^ rk[ 6];
-			rk[ 8] = rk[ 2] ^ rk[ 7];
-			rk[ 9] = rk[ 3] ^ rk[ 8];
-			if (++i == 8) {
-				return 0;
-			}
-			rk[10] = rk[ 4] ^ rk[ 9];
-			rk[11] = rk[ 5] ^ rk[10];
-			rk += 6;
-		}
-	}
-	rk[6] = GETU32(userKey + 24);
-	rk[7] = GETU32(userKey + 28);
-	if (bits == 256) {
-		while (1) {
-			temp = rk[ 7];
-			rk[ 8] = rk[ 0] ^
-				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
-				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
-				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
-				(Te1[(temp >> 24)       ] & 0x000000ff) ^
-				rcon[i];
-			rk[ 9] = rk[ 1] ^ rk[ 8];
-			rk[10] = rk[ 2] ^ rk[ 9];
-			rk[11] = rk[ 3] ^ rk[10];
-			if (++i == 7) {
-				return 0;
-			}
-			temp = rk[11];
-			rk[12] = rk[ 4] ^
-				(Te2[(temp >> 24)       ] & 0xff000000) ^
-				(Te3[(temp >> 16) & 0xff] & 0x00ff0000) ^
-				(Te0[(temp >>  8) & 0xff] & 0x0000ff00) ^
-				(Te1[(temp      ) & 0xff] & 0x000000ff);
-			rk[13] = rk[ 5] ^ rk[12];
-			rk[14] = rk[ 6] ^ rk[13];
-			rk[15] = rk[ 7] ^ rk[14];
-
-			rk += 8;
-        	}
-	}
-	return 0;
-}
-
-/**
- * Expand the cipher key into the decryption key schedule.
- */
-int AES_set_decrypt_key(const uint8_t *userKey, const uint32_t bits,
-                        AES_KEY *key) {
-
-        uint32_t *rk;
-	int i, j, status;
-	uint32_t temp;
-
-	/* first, start with an encryption schedule */
-	status = AES_set_encrypt_key(userKey, bits, key);
-	if (status < 0)
-		return status;
-
-	rk = key->rd_key;
-
-	/* invert the order of the round keys: */
-	for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
-		temp = rk[i    ]; rk[i    ] = rk[j    ]; rk[j    ] = temp;
-		temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
-		temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
-		temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
-	}
-	/* apply the inverse MixColumn transform to all round keys but the first and the last: */
-	for (i = 1; i < (key->rounds); i++) {
-		rk += 4;
-		rk[0] =
-			Td0[Te1[(rk[0] >> 24)       ] & 0xff] ^
-			Td1[Te1[(rk[0] >> 16) & 0xff] & 0xff] ^
-			Td2[Te1[(rk[0] >>  8) & 0xff] & 0xff] ^
-			Td3[Te1[(rk[0]      ) & 0xff] & 0xff];
-		rk[1] =
-			Td0[Te1[(rk[1] >> 24)       ] & 0xff] ^
-			Td1[Te1[(rk[1] >> 16) & 0xff] & 0xff] ^
-			Td2[Te1[(rk[1] >>  8) & 0xff] & 0xff] ^
-			Td3[Te1[(rk[1]      ) & 0xff] & 0xff];
-		rk[2] =
-			Td0[Te1[(rk[2] >> 24)       ] & 0xff] ^
-			Td1[Te1[(rk[2] >> 16) & 0xff] & 0xff] ^
-			Td2[Te1[(rk[2] >>  8) & 0xff] & 0xff] ^
-			Td3[Te1[(rk[2]      ) & 0xff] & 0xff];
-		rk[3] =
-			Td0[Te1[(rk[3] >> 24)       ] & 0xff] ^
-			Td1[Te1[(rk[3] >> 16) & 0xff] & 0xff] ^
-			Td2[Te1[(rk[3] >>  8) & 0xff] & 0xff] ^
-			Td3[Te1[(rk[3]      ) & 0xff] & 0xff];
-	}
-	return 0;
-}
-
-/*
- * Encrypt a single block
- * in and out can overlap
- */
-void AES_encrypt(const uint8_t *in, uint8_t *out,
-		 const AES_KEY *key) {
-
-	const uint32_t *rk;
-	uint32_t s0, s1, s2, s3, t0, t1, t2, t3;
-#ifndef FULL_UNROLL
-	int r;
-#endif /* ?FULL_UNROLL */
-
-	assert(in && out && key);
-	rk = key->rd_key;
-
-	/*
-	 * map byte array block to cipher state
-	 * and add initial round key:
-	 */
-	s0 = GETU32(in     ) ^ rk[0];
-	s1 = GETU32(in +  4) ^ rk[1];
-	s2 = GETU32(in +  8) ^ rk[2];
-	s3 = GETU32(in + 12) ^ rk[3];
-#ifdef FULL_UNROLL
-	/* round 1: */
-   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4];
-   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5];
-   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6];
-   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7];
-   	/* round 2: */
-   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8];
-   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9];
-   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10];
-   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11];
-	/* round 3: */
-   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12];
-   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13];
-   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14];
-   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15];
-   	/* round 4: */
-   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16];
-   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17];
-   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18];
-   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19];
-	/* round 5: */
-   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20];
-   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21];
-   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22];
-   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23];
-   	/* round 6: */
-   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24];
-   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25];
-   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26];
-   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27];
-	/* round 7: */
-   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28];
-   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29];
-   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30];
-   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31];
-   	/* round 8: */
-   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32];
-   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33];
-   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34];
-   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35];
-	/* round 9: */
-   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36];
-   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37];
-   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38];
-   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39];
-    if (key->rounds > 10) {
-        /* round 10: */
-        s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40];
-        s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[41];
-        s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[42];
-        s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[43];
-        /* round 11: */
-        t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[44];
-        t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[45];
-        t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[46];
-        t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[47];
-        if (key->rounds > 12) {
-            /* round 12: */
-            s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[48];
-            s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[49];
-            s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[50];
-            s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[51];
-            /* round 13: */
-            t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[52];
-            t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[53];
-            t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[54];
-            t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[55];
-        }
-    }
-    rk += key->rounds << 2;
-#else  /* !FULL_UNROLL */
-    /*
-     * Nr - 1 full rounds:
-     */
-    r = key->rounds >> 1;
-    for (;;) {
-        t0 =
-            Te0[(s0 >> 24)       ] ^
-            Te1[(s1 >> 16) & 0xff] ^
-            Te2[(s2 >>  8) & 0xff] ^
-            Te3[(s3      ) & 0xff] ^
-            rk[4];
-        t1 =
-            Te0[(s1 >> 24)       ] ^
-            Te1[(s2 >> 16) & 0xff] ^
-            Te2[(s3 >>  8) & 0xff] ^
-            Te3[(s0      ) & 0xff] ^
-            rk[5];
-        t2 =
-            Te0[(s2 >> 24)       ] ^
-            Te1[(s3 >> 16) & 0xff] ^
-            Te2[(s0 >>  8) & 0xff] ^
-            Te3[(s1      ) & 0xff] ^
-            rk[6];
-        t3 =
-            Te0[(s3 >> 24)       ] ^
-            Te1[(s0 >> 16) & 0xff] ^
-            Te2[(s1 >>  8) & 0xff] ^
-            Te3[(s2      ) & 0xff] ^
-            rk[7];
-
-        rk += 8;
-        if (--r == 0) {
-            break;
-        }
-
-        s0 =
-            Te0[(t0 >> 24)       ] ^
-            Te1[(t1 >> 16) & 0xff] ^
-            Te2[(t2 >>  8) & 0xff] ^
-            Te3[(t3      ) & 0xff] ^
-            rk[0];
-        s1 =
-            Te0[(t1 >> 24)       ] ^
-            Te1[(t2 >> 16) & 0xff] ^
-            Te2[(t3 >>  8) & 0xff] ^
-            Te3[(t0      ) & 0xff] ^
-            rk[1];
-        s2 =
-            Te0[(t2 >> 24)       ] ^
-            Te1[(t3 >> 16) & 0xff] ^
-            Te2[(t0 >>  8) & 0xff] ^
-            Te3[(t1      ) & 0xff] ^
-            rk[2];
-        s3 =
-            Te0[(t3 >> 24)       ] ^
-            Te1[(t0 >> 16) & 0xff] ^
-            Te2[(t1 >>  8) & 0xff] ^
-            Te3[(t2      ) & 0xff] ^
-            rk[3];
-    }
-#endif /* ?FULL_UNROLL */
-    /*
-	 * apply last round and
-	 * map cipher state to byte array block:
-	 */
-	s0 =
-		(Te2[(t0 >> 24)       ] & 0xff000000) ^
-		(Te3[(t1 >> 16) & 0xff] & 0x00ff0000) ^
-		(Te0[(t2 >>  8) & 0xff] & 0x0000ff00) ^
-		(Te1[(t3      ) & 0xff] & 0x000000ff) ^
-		rk[0];
-	PUTU32(out     , s0);
-	s1 =
-		(Te2[(t1 >> 24)       ] & 0xff000000) ^
-		(Te3[(t2 >> 16) & 0xff] & 0x00ff0000) ^
-		(Te0[(t3 >>  8) & 0xff] & 0x0000ff00) ^
-		(Te1[(t0      ) & 0xff] & 0x000000ff) ^
-		rk[1];
-	PUTU32(out +  4, s1);
-	s2 =
-		(Te2[(t2 >> 24)       ] & 0xff000000) ^
-		(Te3[(t3 >> 16) & 0xff] & 0x00ff0000) ^
-		(Te0[(t0 >>  8) & 0xff] & 0x0000ff00) ^
-		(Te1[(t1      ) & 0xff] & 0x000000ff) ^
-		rk[2];
-	PUTU32(out +  8, s2);
-	s3 =
-		(Te2[(t3 >> 24)       ] & 0xff000000) ^
-		(Te3[(t0 >> 16) & 0xff] & 0x00ff0000) ^
-		(Te0[(t1 >>  8) & 0xff] & 0x0000ff00) ^
-		(Te1[(t2      ) & 0xff] & 0x000000ff) ^
-		rk[3];
-	PUTU32(out + 12, s3);
-}
-
-/*
- * Decrypt a single block
- * in and out can overlap
- */
-void AES_decrypt(const uint8_t *in, uint8_t *out,
-		 const AES_KEY *key) {
-
-	const uint32_t *rk;
-	uint32_t s0, s1, s2, s3, t0, t1, t2, t3;
-#ifndef FULL_UNROLL
-	int r;
-#endif /* ?FULL_UNROLL */
-
-	assert(in && out && key);
-	rk = key->rd_key;
-
-	/*
-	 * map byte array block to cipher state
-	 * and add initial round key:
-	 */
-    s0 = GETU32(in     ) ^ rk[0];
-    s1 = GETU32(in +  4) ^ rk[1];
-    s2 = GETU32(in +  8) ^ rk[2];
-    s3 = GETU32(in + 12) ^ rk[3];
-#ifdef FULL_UNROLL
-    /* round 1: */
-    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[ 4];
-    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[ 5];
-    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[ 6];
-    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[ 7];
-    /* round 2: */
-    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[ 8];
-    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[ 9];
-    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[10];
-    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[11];
-    /* round 3: */
-    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[12];
-    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[13];
-    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[14];
-    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[15];
-    /* round 4: */
-    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[16];
-    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[17];
-    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[18];
-    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[19];
-    /* round 5: */
-    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[20];
-    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[21];
-    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[22];
-    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[23];
-    /* round 6: */
-    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[24];
-    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[25];
-    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[26];
-    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[27];
-    /* round 7: */
-    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[28];
-    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[29];
-    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[30];
-    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[31];
-    /* round 8: */
-    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[32];
-    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[33];
-    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[34];
-    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[35];
-    /* round 9: */
-    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[36];
-    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[37];
-    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[38];
-    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[39];
-    if (key->rounds > 10) {
-        /* round 10: */
-        s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[40];
-        s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[41];
-        s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[42];
-        s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[43];
-        /* round 11: */
-        t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[44];
-        t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[45];
-        t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[46];
-        t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[47];
-        if (key->rounds > 12) {
-            /* round 12: */
-            s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[48];
-            s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[49];
-            s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[50];
-            s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[51];
-            /* round 13: */
-            t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[52];
-            t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[53];
-            t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[54];
-            t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55];
-        }
-    }
-	rk += key->rounds << 2;
-#else  /* !FULL_UNROLL */
-    /*
-     * Nr - 1 full rounds:
-     */
-    r = key->rounds >> 1;
-    for (;;) {
-        t0 =
-            Td0[(s0 >> 24)       ] ^
-            Td1[(s3 >> 16) & 0xff] ^
-            Td2[(s2 >>  8) & 0xff] ^
-            Td3[(s1      ) & 0xff] ^
-            rk[4];
-        t1 =
-            Td0[(s1 >> 24)       ] ^
-            Td1[(s0 >> 16) & 0xff] ^
-            Td2[(s3 >>  8) & 0xff] ^
-            Td3[(s2      ) & 0xff] ^
-            rk[5];
-        t2 =
-            Td0[(s2 >> 24)       ] ^
-            Td1[(s1 >> 16) & 0xff] ^
-            Td2[(s0 >>  8) & 0xff] ^
-            Td3[(s3      ) & 0xff] ^
-            rk[6];
-        t3 =
-            Td0[(s3 >> 24)       ] ^
-            Td1[(s2 >> 16) & 0xff] ^
-            Td2[(s1 >>  8) & 0xff] ^
-            Td3[(s0      ) & 0xff] ^
-            rk[7];
-
-        rk += 8;
-        if (--r == 0) {
-            break;
-        }
-
-        s0 =
-            Td0[(t0 >> 24)       ] ^
-            Td1[(t3 >> 16) & 0xff] ^
-            Td2[(t2 >>  8) & 0xff] ^
-            Td3[(t1      ) & 0xff] ^
-            rk[0];
-        s1 =
-            Td0[(t1 >> 24)       ] ^
-            Td1[(t0 >> 16) & 0xff] ^
-            Td2[(t3 >>  8) & 0xff] ^
-            Td3[(t2      ) & 0xff] ^
-            rk[1];
-        s2 =
-            Td0[(t2 >> 24)       ] ^
-            Td1[(t1 >> 16) & 0xff] ^
-            Td2[(t0 >>  8) & 0xff] ^
-            Td3[(t3      ) & 0xff] ^
-            rk[2];
-        s3 =
-            Td0[(t3 >> 24)       ] ^
-            Td1[(t2 >> 16) & 0xff] ^
-            Td2[(t1 >>  8) & 0xff] ^
-            Td3[(t0      ) & 0xff] ^
-            rk[3];
-    }
-#endif /* ?FULL_UNROLL */
-    /*
-	 * apply last round and
-	 * map cipher state to byte array block:
-	 */
-   	s0 =
-   		(Td4[(t0 >> 24)       ] << 24) ^
-   		(Td4[(t3 >> 16) & 0xff] << 16) ^
-   		(Td4[(t2 >>  8) & 0xff] <<  8) ^
-   		(Td4[(t1      ) & 0xff])       ^
-   		rk[0];
-	PUTU32(out     , s0);
-   	s1 =
-   		(Td4[(t1 >> 24)       ] << 24) ^
-   		(Td4[(t0 >> 16) & 0xff] << 16) ^
-   		(Td4[(t3 >>  8) & 0xff] <<  8) ^
-   		(Td4[(t2      ) & 0xff])       ^
-   		rk[1];
-	PUTU32(out +  4, s1);
-   	s2 =
-   		(Td4[(t2 >> 24)       ] << 24) ^
-   		(Td4[(t1 >> 16) & 0xff] << 16) ^
-   		(Td4[(t0 >>  8) & 0xff] <<  8) ^
-   		(Td4[(t3      ) & 0xff])       ^
-   		rk[2];
-	PUTU32(out +  8, s2);
-   	s3 =
-   		(Td4[(t3 >> 24)       ] << 24) ^
-   		(Td4[(t2 >> 16) & 0xff] << 16) ^
-   		(Td4[(t1 >>  8) & 0xff] <<  8) ^
-   		(Td4[(t0      ) & 0xff])       ^
-   		rk[3];
-	PUTU32(out + 12, s3);
-}
-
diff --git a/libs/krypto/blockcipher-impl.h b/libs/krypto/blockcipher-impl.h
deleted file mode 100644
index 5d7d257..0000000
--- a/libs/krypto/blockcipher-impl.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_krypto_blockcipher_impl_
-#define _h_krypto_blockcipher_impl_
-
-/* 
- * NOTE:  Currently this is being written to support cipher blocks of
- * exactly 128 bits.  It will have to be amended if alternative block
- * sizes are need for other cipher blocks
- */
-
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-/*
- * we need to know whether we are supporting vectors as 
- * XMM type registers or as structs
- */
-#include "ncbi-priv.h"
-
-
-#ifndef USE_VEC
-#error "USE_VEC most be defined true or false"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define CIPHER_BLOCK_MAX (16)
-
-typedef char CipherBlock [CIPHER_BLOCK_MAX];
-
-#if USEVEC
-#include <v128.h>
-typedef v128_u8_t CipherVec;
-#else
-typedef struct CipherVec
-{
-    CipherBlock block;
-} CipherVec;
-#endif
-
-typedef struct KBlockCipher_vt KBlockCipher_vt;
-struct KBlockCipher_vt
-{
-    uint32_t maj;
-    uint32_t min;
-};
-
-typedef uint32_t BlockCipherType;
-enum block_cipher_type
-{
-    blockcipher_type_byte,
-    blockcipher_type_vec
-};
-
-
-typedef struct KBlockCipherByte_vt_v1 KBlockCipherByte_vt_v1;
-typedef union KBlockCipherByte KBlockCipherByte;
-
-#ifndef BLOCKCIPHER_BYTE_IMPL
-#define BLOCKCIPHER_BYTE_IMPL KBlockCipherByte
-#else
-typedef union KBlockCipherByte BLOCKCIPHER_BYTE_IMPL;
-#endif
-
-
-struct KBlockCipherByte_vt_v1
-{
-    KBlockCipher_vt version;
-
-    /* version == 1.x */
-
-    /* start minor version == 0 */
-    void        (* destroy         )(const BLOCKCIPHER_BYTE_IMPL * self);
-
-    uint32_t    (* block_size      )();
-
-    uint32_t    (* key_size        )();
-
-    rc_t        (* set_encrypt_key )(void * encrypt_key,
-                                     const char * user_key,
-                                     uint32_t user_key_bits);
-
-    rc_t        (* set_decrypt_key )(void * decrypt_key,
-                                     const char * user_key,
-                                     uint32_t user_key_bits);
-
-    void        (* encrypt         )(const CipherBlock in,
-                                     CipherBlock out,
-                                     const void * encrypt_key);
-
-    void        (* decrypt         )(const CipherBlock in,
-                                     CipherBlock out,
-                                     const void * encrypt_key);
-
-    /* end minor version == 0 */
-
-};
-
-union KBlockCipherByte
-{
-    KBlockCipher_vt        version;
-    KBlockCipherByte_vt_v1 v1;
-};
-
-
-typedef struct KBlockCipherVec_vt_v1 KBlockCipherVec_vt_v1;
-typedef union KBlockCipherVec KBlockCipherVec;
-
-#ifndef BLOCKCIPHER_VEC_IMPL
-#define BLOCKCIPHER_VEC_IMPL KBlockCipherVec
-#else
-typedef union KBlockCipherVec BLOCKCIPHER_VEC_IMPL;
-#endif
-
-
-struct KBlockCipherVec_vt_v1
-{
-    KBlockCipher_vt version;
-
-    /* version == 1.x */
-
-    /* start minor version == 0 */
-    void        (* destroy         )(const BLOCKCIPHER_VEC_IMPL * self);
-
-    uint32_t    (* block_size      )();
-
-    uint32_t    (* key_size        )();
-
-    rc_t        (* set_encrypt_key )(void * encrypt_key,
-                                     const char * user_key,
-                                     uint32_t user_key_size);
-
-    rc_t        (* set_decrypt_key )(void * decrypt_key,
-                                     const char * user_key,
-                                     uint32_t user_key_size);
-
-    CipherVec   (* encrypt         )(CipherVec block,
-                                     const void * encrypt_key);
-
-    CipherVec   (* decrypt         )(CipherVec block,
-                                     const void * decrypt_key);
-
-    /* end minor version == 0 */
-
-};
-
-union KBlockCipherVec
-{
-    KBlockCipher_vt       version;
-    KBlockCipherVec_vt_v1 v1;
-};
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-#endif /* _h_krypto_blockcipher_impl_ */
-
diff --git a/libs/krypto/blockcipher-priv.h b/libs/krypto/blockcipher-priv.h
deleted file mode 100644
index d812f23..0000000
--- a/libs/krypto/blockcipher-priv.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_krypto_blockcipher_priv_
-#define _h_krypto_blockcipher_priv_
-
-#include <krypto/extern.h>
-#include "cipher-impl.h"
-
-#include "blockcipher-impl.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ======================================================================
- */
-/* typedef struct KBlockCipher KBlockCipher; */
-/*     typedef union KBlockCipher_vt KBlockCipher_vt; */
-
-/* ----------------------------------------------------------------------
- * Init
- *
- *   Initialize the fields of this object.  The derived class will call this
- *   during it's initialization.
- *
- * self      object to initialze
- * vt        the virtual table of the derived class
- * mgr       the cipher manager that is the construction factory block cipher
- *           objects hold references to the manager while the manager merely
- *           points at the block ciphers when all block ciphers are destroyed
- *           the manager loses its references and it too can be destroyed if not
- *           held elsewhere
- * name      ASCIZ c-string the name of this class
- */
-/* rc_t KBlockCipherInit (KBlockCipher * self, */
-/*                        const KBlockCipher_vt * vt, */
-/*                        const char * name); */
-
-
-typedef union KBlockCipher KBlockCipher;
-union KBlockCipher
-{
-    KBlockCipherByte byte;
-    KBlockCipherVec  vec;
-};
-
-
-rc_t KAESBlockCipherVecAesNiMake  (KBlockCipher ** vec_cipher);
-rc_t KAESBlockCipherVecRegMake    (KBlockCipher ** vec_cipher);
-rc_t KAESBlockCipherVecMake       (KBlockCipher ** vec_cipher);
-rc_t KAESBlockCipherByteMake      (KBlockCipher ** byte_cipher);
-
-rc_t KNullBlockCipherVecAesNiMake (KBlockCipher ** vec_cipher);
-rc_t KNullBlockCipherVecRegMake   (KBlockCipher ** vec_cipher);
-rc_t KNullBlockCipherVecMake      (KBlockCipher ** vec_cipher);
-rc_t KNullBlockCipherByteMake     (KBlockCipher ** byte_cipher);
-
-
-/* KRYPTO_EXTERN rc_t CC KBlockCipherAlloc (KBlockCipher ** obj, size_t z); */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_blockcipher_priv_ */
diff --git a/libs/krypto/blockcipher.c b/libs/krypto/blockcipher.c
deleted file mode 100644
index 22539eb..0000000
--- a/libs/krypto/blockcipher.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#error "OBSOLETE do not use"
-
-
diff --git a/libs/krypto/cipher-byte.c b/libs/krypto/cipher-byte.c
deleted file mode 100644
index feb05c2..0000000
--- a/libs/krypto/cipher-byte.c
+++ /dev/null
@@ -1,522 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-/*
- * KCipherByte is a byte oriented KCipher that can work on all processors
- * and be built with all compilers
- */
-#include <krypto/extern.h>
-#include <klib/defs.h>
-#include <krypto/cipher.h>
-
-#include "ncbi-priv.h"
-
-#include "blockcipher-impl.h"
-
-#include "cipher-impl.h"
-#include "cipher-priv.h"
-#include "blockcipher-priv.h"
-
-#include <klib/rc.h>
-
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-
-const char MEMBER(ClassName)[] = CLASS_STRING(CIPHER_IMPL);
-
-/* 
- * KCipher with unaligned data.  Byte alignment.
- */
-struct KCipherByte
-{
-    KCipher dad;
-
-    const KBlockCipherByte * block_cipher;
-};
-
-
-static rc_t MEMBER(Destroy) (KCipherByte * self)
-{
-    rc_t rc = 0;
-
-    if (self)
-    {
-        rc =  KCipherDestroy (&self->dad);
-        free (self);
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(SetEncryptKey) (KCipherByte * self,
-                                   const char * user_key,
-                                   uint32_t user_key_bits)
-{
-    rc_t rc = 0;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        rc = self->block_cipher->v1.set_encrypt_key (self->dad.encrypt_key, user_key,
-                                                     user_key_bits);
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(SetDecryptKey) (KCipherByte * self,
-                                   const char * user_key,
-                                   uint32_t user_key_bits)
-{
-    rc_t rc = 0;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcDestroying, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        rc = self->block_cipher->v1.set_decrypt_key (self->dad.decrypt_key, user_key,
-                                                     user_key_bits);
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(SetEncryptIvec)(KCipherByte * self,
-                                   const void * ivec)
-{
-    assert (self);
-    assert (ivec);
-
-    memcpy (self->dad.encrypt_ivec, ivec, self->dad.block_size);
-
-    return 0;
-}
-
-
-static rc_t MEMBER(SetDecryptIvec)(KCipherByte * self,
-                                   const void * ivec)
-{
-    assert (self);
-    assert (ivec);
-
-    memcpy (self->dad.decrypt_ivec, ivec, self->dad.block_size);
-
-    return 0;
-}
-
-
-static rc_t MEMBER(SetEncryptCounterFunc)(KCipherByte * self,
-                                          cipher_ctr_func func)
-{
-    assert (self);
-    assert (func);
-
-    self->dad.encrypt_counter_func = func;
-
-    return 0;
-}
-
-
-static rc_t MEMBER(SetDecryptCounterFunc)(KCipherByte * self,
-                                          cipher_ctr_func func)
-{
-    assert (self);
-    assert (func);
-
-    self->dad.decrypt_counter_func = func;
-
-    return 0;
-}
-
-
-static rc_t MEMBER(Encrypt)(const KCipherByte * self,
-                            const void * in, void * out)
-{
-    rc_t rc = 0;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        self->block_cipher->v1.encrypt (in, out, self->dad.encrypt_key);
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(Decrypt)(const KCipherByte * self,
-                            const void * in, void * out)
-{
-    rc_t rc = 0;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        self->block_cipher->v1.decrypt (in, out, self->dad.decrypt_key);
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(EncryptEcb)(const KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    rc_t rc = 0;
-    const char * pin = in;
-    char * pout = out;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        for (; block_count; --block_count)
-        {
-            self->block_cipher->v1.encrypt (pin, pout, self->dad.encrypt_key);
-
-            pin += self->dad.block_size;
-            pout += self->dad.block_size;
-        }
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(DecryptEcb)(const KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    rc_t rc = 0;
-    const char * pin = in;
-    char * pout = out;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        for (; block_count; --block_count)
-        {
-            self->block_cipher->v1.decrypt (pin, pout, self->dad.decrypt_key);
-
-            pin += self->dad.block_size;
-            pout += self->dad.block_size;
-        }
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(EncryptCbc)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    rc_t rc = 0;
-    const char * pin = in;
-    char * pout = out;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        if (block_count)
-        {
-            CipherBlock block;
-            unsigned ix;
-
-            memcpy (block, self->dad.encrypt_ivec, self->dad.block_size);
-
-            do
-            {
-                for (ix = 0; ix < self->dad.block_size; ++ix)
-                    block[ix] ^= pin[ix];
-
-                self->block_cipher->v1.encrypt (block, block,
-                                                self->dad.encrypt_key);
-
-                memcpy (pout, block, self->dad.block_size);
-
-                pin += self->dad.block_size;
-                pout += self->dad.block_size;
-
-            } while (--block_count);
-
-            memcpy (self->dad.encrypt_ivec, block, self->dad.block_size);
-        }
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(DecryptCbc)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    rc_t rc = 0;
-    const char * pin = in;
-    char * pout = out;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        if (block_count)
-        {
-            CipherBlock ivec;
-            CipherBlock block;
-            unsigned ix;
-
-            memcpy (ivec, self->dad.decrypt_ivec, self->dad.block_size);
-
-            do
-            {
-                self->block_cipher->v1.decrypt (pin, block,
-                                                self->dad.decrypt_key);
-
-                for (ix = 0; ix < self->dad.block_size; ++ix)
-                    pout[ix] = block[ix] ^ ivec[ix];
-
-                memcpy (ivec, pin, self->dad.block_size); 
-
-                pin += self->dad.block_size;
-                pout += self->dad.block_size;
-
-            } while (--block_count);
-
-            memcpy (self->dad.decrypt_ivec, ivec, self->dad.block_size);
-        }
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t MEMBER(EncryptPcbc)(KCipherByte * self,
-                                const void * in, void * out,
-                                uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static rc_t MEMBER(DecryptPcbc)(KCipherByte * self,
-                                const void * in, void * out,
-                                uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static rc_t MEMBER(EncryptCfb)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static rc_t MEMBER(DecryptCfb)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static rc_t MEMBER(EncryptOfb)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static rc_t MEMBER(DecryptOfb)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static rc_t MEMBER(EncryptCtr)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static rc_t MEMBER(DecryptCtr)(KCipherByte * self,
-                               const void * in, void * out,
-                               uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static struct KCipher_vt_v1 MEMBER(_vt_v1) =
-{
-    { 1, 0 },
-
-    MEMBER(Destroy),
-    MEMBER(SetEncryptKey),
-    MEMBER(SetDecryptKey),
-    MEMBER(SetEncryptIvec),
-    MEMBER(SetDecryptIvec),
-    MEMBER(SetEncryptCounterFunc),
-    MEMBER(SetDecryptCounterFunc),
-    MEMBER(Encrypt),
-    MEMBER(Decrypt),
-    MEMBER(EncryptEcb),
-    MEMBER(DecryptEcb),
-    MEMBER(EncryptCbc),
-    MEMBER(DecryptCbc),
-    MEMBER(EncryptPcbc),
-    MEMBER(DecryptPcbc),
-    MEMBER(EncryptCfb),
-    MEMBER(DecryptCfb),
-    MEMBER(EncryptOfb),
-    MEMBER(DecryptOfb),
-    MEMBER(EncryptCtr),
-    MEMBER(DecryptCtr)
-};
-
-
-static __inline__ rc_t MEMBER(Alloc)(KCipherByte ** pobj,
-                                     const KBlockCipher * block_cipher)
-{
-    size_t block_size = block_cipher->byte.v1.block_size();
-    size_t key_size = block_cipher->byte.v1.key_size();
-    rc_t rc = 0;
-
-    *pobj = calloc (1, sizeof (**pobj) + 2 * key_size + 2 * block_size);
-    if (*pobj == NULL)
-        rc = RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted);
-
-    return rc;
-}
-
-
-static __inline__ rc_t MEMBER(Init)(KCipherByte * self,
-                                    const KBlockCipher * block_cipher)
-{
-    KCipher * dad = &self->dad;
-    size_t block_size = block_cipher->byte.v1.block_size();
-    size_t key_size = block_cipher->byte.v1.key_size();
-
-    KCipherInit (dad, block_size,
-                 (const KCipher_vt*)&MEMBER(_vt_v1),
-                 MEMBER(ClassName));
-
-    dad->encrypt_key = (uint8_t *)(self + 1);
-    dad->decrypt_key = ((uint8_t *)dad->encrypt_key) + key_size;
-    dad->encrypt_ivec = ((uint8_t *)dad->decrypt_key) + key_size;
-    dad->decrypt_ivec = ((uint8_t *)dad->encrypt_ivec) + block_size;
-
-    self->block_cipher = &block_cipher->byte;
-
-    return 0;
-}
-
-
-rc_t MEMBER(Make) (KCipher ** new_obj, kcipher_type type)
-{
-    rc_t rc;
-    KBlockCipher * block_cipher;
-
-    if (new_obj == NULL)
-        return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
-
-    *new_obj = NULL;
-
-    switch (type)
-    {
-    default:
-        return RC (rcKrypto, rcCipher, rcConstructing, rcParam, rcInvalid);
-
-    case kcipher_null:
-        rc = NULLBCMEMBER(Make)(&block_cipher);
-        break;
-
-    case kcipher_AES:
-        rc = AESBCMEMBER(Make)(&block_cipher);
-        break;
-    }
-
-    if (rc == 0)
-    {
-        KCipherByte * obj;
-
-        rc = MEMBER(Alloc)(&obj, block_cipher);
-        if (rc == 0)
-        {
-            rc = MEMBER(Init)(obj, block_cipher);
-            if (rc == 0)
-                *new_obj = &obj->dad;
-            else
-                free (obj);
-        }
-    }
-    return rc;
-}
-
-/* EOF */
diff --git a/libs/krypto/cipher-impl.h b/libs/krypto/cipher-impl.h
deleted file mode 100644
index fbccdb5..0000000
--- a/libs/krypto/cipher-impl.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_krypto_cipher_impl_
-#define _h_krypto_cipher_impl_
-
-#include <krypto/extern.h>
-#include <klib/defs.h>
-#include <klib/refcount.h>
-#include <krypto/cipher.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#ifndef CIPHER_IMPL
-#define CIPHER_IMPL KCipher
-#else
-struct CIPHER_IMPL;
-typedef struct CIPHER_IMPL CIPHER_IMPL;
-#endif
-
-typedef struct KCipher_vt KCipher_vt;
-struct KCipher_vt
-{
-    uint32_t maj;
-    uint32_t min;
-};
-
-
-typedef struct KCipher_vt_v1 KCipher_vt_v1;
-struct KCipher_vt_v1
-{
-    KCipher_vt version;
-
-    /* version == 1.x */
-    /* start minor version == 0 */
-    rc_t ( CC * destroy             )(CIPHER_IMPL * self);
-
-    rc_t ( CC * set_encrypt_key     )(CIPHER_IMPL * self,
-                                      const char * user_key,
-                                      uint32_t user_key_bits);
-
-    rc_t ( CC * set_decrypt_key     )(CIPHER_IMPL * self,
-                                      const char * user_key,
-                                      uint32_t user_key_bits);
-
-    rc_t ( CC * set_encrypt_ivec    )(CIPHER_IMPL * self,
-                                      const void * ivec);
-
-    rc_t ( CC * set_decrypt_ivec    )(CIPHER_IMPL * self,
-                                      const void * ivec);
-
-    rc_t ( CC * set_encrypt_ctr_func)(CIPHER_IMPL * self,
-                                      cipher_ctr_func enc_ctr_func);
-
-    rc_t ( CC * set_decrypt_ctr_func)(CIPHER_IMPL * self,
-                                      cipher_ctr_func enc_ctr_func);
-
-    /* single block encryption */
-    rc_t ( CC * encrypt             )(const CIPHER_IMPL * self,
-                                      const void * in,
-                                      void * out);
-    rc_t ( CC * decrypt             )(const CIPHER_IMPL * self,
-                                      const void * in,
-                                      void * out);
-
-    /* electronic code book */
-    rc_t ( CC * encrypt_ecb         )(const CIPHER_IMPL * self,
-                                      const void * in,
-                                      void * out,
-                                      uint32_t block_count);
-
-    rc_t ( CC * decrypt_ecb         )(const CIPHER_IMPL * self,
-                                      const void * in,
-                                      void * out,
-                                      uint32_t block_count);
-
-    /* cipher-block chaining */
-    rc_t ( CC * encrypt_cbc         )(CIPHER_IMPL * self,
-                                      const void * in,
-                                      void * out,
-                                      uint32_t block_count);
-    rc_t ( CC * decrypt_cbc         )(CIPHER_IMPL * self,
-                                      const void * in,
-                                      void * out,
-                                      uint32_t block_count);
-
-    /* propagating cipher-block chaining */
-    rc_t ( CC * encrypt_pcbc        )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-    rc_t ( CC * decrypt_pcbc        )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-
-    /* cipher feedback */
-    rc_t ( CC * encrypt_cfb         )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-    rc_t ( CC * decrypt_cfb         )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-
-    /* output feedback */
-    rc_t ( CC * encrypt_ofb         )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-    rc_t ( CC * decrypt_ofb         )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-
-    /* Counter */
-    rc_t ( CC * encrypt_ctr         )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-    rc_t ( CC * decrypt_ctr         )(CIPHER_IMPL * self, const void * in,
-                                      void * out, uint32_t block_count);
-
-    /* end minor version == 0 */
-
-    /* ANY NEW ENTRIES MUST BE REFLECTED IN libs/krypto/cipher.c
-       BY BOTH THE CORRESPONDING MESSAGE DISPATCH FUNCTION(s) AND
-       VTABLE VALIDITY CHECKS IN CIPHERInit */
-};
-
-typedef union KCipher_ptr KCipher_ptr;
-union KCipher_ptr
-{
-    const KCipher_vt    * version;
-    const KCipher_vt_v1 * v1;
-};
-
-
-struct KCipher
-{
-    KRefcount refcount;
-    uint32_t block_size;
-    KCipher_ptr vt;
-    const char * name;
-    void * encrypt_key;
-    void * decrypt_key;
-    void * encrypt_ivec;
-    void * decrypt_ivec;
-    cipher_ctr_func encrypt_counter_func;
-    cipher_ctr_func decrypt_counter_func;
-};
-
-void KCipherInit (KCipher * self, uint32_t block_size,
-                  const KCipher_vt * vt, const char * name);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_krypto_cipher_impl_ */
diff --git a/libs/krypto/cipher-no-vec.c b/libs/krypto/cipher-no-vec.c
deleted file mode 100644
index 7e0eded..0000000
--- a/libs/krypto/cipher-no-vec.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#include <krypto/extern.h>
-#include <klib/defs.h>
-#include <klib/rc.h>
-
-#include <krypto/ciphermgr.h>
-#include "cipher-priv.h"
-#include "ncbi-priv.h"
-
-struct KCipher;
-
-rc_t CMEMBER(Make) (struct KCipher ** new_obj, kcipher_type type)
-{
-    return RC (rcKrypto, rcCipher, rcConstructing, rcFunction, rcUnsupported);
-}
-
-
-/* EOF */
diff --git a/libs/krypto/cipher-priv.h b/libs/krypto/cipher-priv.h
deleted file mode 100644
index bcc39e5..0000000
--- a/libs/krypto/cipher-priv.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#ifndef _h_krypto_cipher_priv_
-#define _h_krypto_cipher_priv_
-
-#include <krypto/extern.h>
-#include <krypto/ciphermgr.h>
-#include <krypto/cipher.h>
-
-#include <klib/refcount.h>
-
-/*
- * klib/rc.h ran out of room for new targets so we'll fake it for now
- * with a now unused target that will unfortunately leave some
- * confusing rc to english translations
- */
-#define rcBlockCipher rcRng
-#define rcCipher      rcRng
-
-/*
- * for use within krypto and krypto testing
- */
-
-enum e_aes_type
-{
-    kcipher_AES_core,     /* Rijndael aes_core.c portable */
-    kcipher_AES_ncbi_sim, /* clean AES written for NCBI specifically from the  */
-    kcipher_AES_ncbi_vec, /* xmm vector version version */
-    kcipher_AES_ncbi_ni,  /* 64 bit AES-NI version */
-    kcipher_AES_count
-};
-
-rc_t KCipherMake         (struct KCipher ** new_cipher,
-                          kcipher_type type);
-rc_t KCipherVecAesNiMake (struct KCipher ** new_cipher,
-                          kcipher_type type);
-rc_t KCipherVecRegMake   (struct KCipher ** new_cipher,
-                          kcipher_type type);
-rc_t KCipherVecMake      (struct KCipher ** new_cipher,
-                          kcipher_type type);
-rc_t KCipherByteMake     (struct KCipher ** new_cipher,
-                          kcipher_type type);
-
-/*
- * not for use outside krypto
- */
-rc_t KCipherDestroy (struct KCipher * self);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* #ifndef _h_krypto_cipher_priv_ */
diff --git a/libs/krypto/cipher-vec.aes-ni.pic.o.list b/libs/krypto/cipher-vec.aes-ni.pic.o.list
deleted file mode 100644
index 6ca59f3..0000000
--- a/libs/krypto/cipher-vec.aes-ni.pic.o.list
+++ /dev/null
@@ -1,10909 +0,0 @@
-GAS LISTING /tmp/ccWvEaWW.s 			page 1
-
-
-   1              		.file	"cipher-vec.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 D9030000 		.text
-   8      0200F201 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              	.globl KCipherVecAesNiClassName
-  11              		.section	.rodata
-  12              		.type	KCipherVecAesNiClassName, @object
-  13              		.size	KCipherVecAesNiClassName, 12
-  14              	KCipherVecAesNiClassName:
-  15 0000 43495048 		.string	"CIPHER_IMPL"
-  15      45525F49 
-  15      4D504C00 
-  16              		.text
-  17              		.type	CipherVecIn, @function
-  18              	CipherVecIn:
-  19              	.LFB601:
-  20              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/defs.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* CIPHER_IMPL and BLOCKCIPHER_IMPL are defined in this header */
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* CIPHER_IMPL is used in this header */
-
GAS LISTING /tmp/ccWvEaWW.s 			page 2
-
-
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "cipher-impl.h"
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* BLOCKCIPHER_IMPL is used in this header */
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "blockcipher-impl.h"
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "aes-ncbi-priv.h"
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "null-ncbi-priv.h"
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "cipher-priv.h"
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "blockcipher-priv.h"
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/cipher.h>
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/ciphermgr.h>
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/defs.h>
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/refcount.h>
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/out.h>
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/rc.h>
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <sysalloc.h>
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <stdlib.h>
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <string.h>
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <assert.h>
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** const char CMEMBER(ClassName)[] = CLASS_STRING(CIPHER_IMPL);
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** struct CIPHER_IMPL
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher dad;
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const KBlockCipherVec * block_cipher;
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** };
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** typedef union CipherVec_u
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec   vec;
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherBlock block;
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** } CipherVec_u;
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Read a blocks worth of bytes into an AESState
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec CipherVecIn (const void * cvin)
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  21              		.loc 1 76 0
-  22              		.cfi_startproc
-  23 0000 55       		pushq	%rbp
-  24              	.LCFI0:
-  25              		.cfi_def_cfa_offset 16
-  26 0001 4889E5   		movq	%rsp, %rbp
-  27              		.cfi_offset 6, -16
-  28              	.LCFI1:
-  29              		.cfi_def_cfa_register 6
-  30 0004 48897DF8 		movq	%rdi, -8(%rbp)
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if USE_VEC_REG
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     register CipherVec cv;
-
GAS LISTING /tmp/ccWvEaWW.s 			page 3
-
-
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     __asm__ (
-  31              		.loc 1 80 0
-  32 0008 488B45F8 		movq	-8(%rbp), %rax
-  33 000c 4889C7   		movq	%rax, %rdi
-  34              	#APP
-  35              	# 80 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c" 1
-  81              	        "movdqu (%[a]),%[s]" : [s] "=x" (cv) : [a] "D" (cvin)
-  36              		movdqu (%rdi),%xmm0
-  37              	# 0 "" 2
-  38              	#NO_APP
-  39 0013 660F7F45 		movdqa	%xmm0, -32(%rbp)
-  39      E0
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         );
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return cv;
-  40              		.loc 1 84 0
-  41 0018 660F6F45 		movdqa	-32(%rbp), %xmm0
-  41      E0
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec_u u;
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memmove (&u.block, cvin, sizeof (u));
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return u.vec;
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
-  42              		.loc 1 91 0
-  43 001d C9       		leave
-  44 001e C3       		ret
-  45              		.cfi_endproc
-  46              	.LFE601:
-  47              		.size	CipherVecIn, .-CipherVecIn
-  48              		.type	CipherVecOut, @function
-  49              	CipherVecOut:
-  50              	.LFB602:
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Write a block's worth of bytes out from an AESState
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ void CipherVecOut (const CipherVec cv, void * cvout)
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  51              		.loc 1 99 0
-  52              		.cfi_startproc
-  53 001f 55       		pushq	%rbp
-  54              	.LCFI2:
-  55              		.cfi_def_cfa_offset 16
-  56 0020 4889E5   		movq	%rsp, %rbp
-  57              		.cfi_offset 6, -16
-  58              	.LCFI3:
-  59              		.cfi_def_cfa_register 6
-  60 0023 660F7F45 		movdqa	%xmm0, -16(%rbp)
-  60      F0
-  61 0028 48897DE8 		movq	%rdi, -24(%rbp)
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if USE_VEC_REG
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     register CipherVec rcv = cv;
-
GAS LISTING /tmp/ccWvEaWW.s 			page 4
-
-
-  62              		.loc 1 101 0
-  63 002c 660F6F45 		movdqa	-16(%rbp), %xmm0
-  63      F0
-  64 0031 660F7F45 		movdqa	%xmm0, -48(%rbp)
-  64      D0
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     __asm__ (
-  65              		.loc 1 103 0
-  66 0036 488B45E8 		movq	-24(%rbp), %rax
-  67 003a 660F6F45 		movdqa	-48(%rbp), %xmm0
-  67      D0
-  68 003f 4889C7   		movq	%rax, %rdi
-  69              	#APP
-  70              	# 103 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c" 1
- 104              	        "movdqu %[s],(%[a])" : : [s] "x" (rcv), [a] "D" (cvout)
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         );
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec lcv = cv;
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memmove (cvout, &lcv, sizeof (lcv));
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
-  71              		movdqu %xmm0,(%rdi)
-  72              	# 0 "" 2
-  73              		.loc 1 110 0
-  74              	#NO_APP
-  75 0046 C9       		leave
-  76 0047 C3       		ret
-  77              		.cfi_endproc
-  78              	.LFE602:
-  79              		.size	CipherVecOut, .-CipherVecOut
-  80              		.type	KCipherVecAesNiDestroy, @function
-  81              	KCipherVecAesNiDestroy:
-  82              	.LFB603:
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(Destroy) (CIPHER_IMPL * self)
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  83              		.loc 1 114 0
-  84              		.cfi_startproc
-  85 0048 55       		pushq	%rbp
-  86              	.LCFI4:
-  87              		.cfi_def_cfa_offset 16
-  88 0049 4889E5   		movq	%rsp, %rbp
-  89              		.cfi_offset 6, -16
-  90              	.LCFI5:
-  91              		.cfi_def_cfa_register 6
-  92 004c 4883EC20 		subq	$32, %rsp
-  93 0050 48897DE8 		movq	%rdi, -24(%rbp)
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
-  94              		.loc 1 115 0
-  95 0054 C745FC00 		movl	$0, -4(%rbp)
-  95      000000
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (self)
-  96              		.loc 1 117 0
-  97 005b 48837DE8 		cmpq	$0, -24(%rbp)
-  97      00
-
GAS LISTING /tmp/ccWvEaWW.s 			page 5
-
-
-  98 0060 741B     		je	.L6
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc =  KCipherDestroy (&self->dad);
-  99              		.loc 1 119 0
- 100 0062 488B45E8 		movq	-24(%rbp), %rax
- 101 0066 4889C7   		movq	%rax, %rdi
- 102 0069 E8000000 		call	KCipherDestroy at PLT
- 102      00
- 103 006e 8945FC   		movl	%eax, -4(%rbp)
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         free (self);
- 104              		.loc 1 120 0
- 105 0071 488B45E8 		movq	-24(%rbp), %rax
- 106 0075 4889C7   		movq	%rax, %rdi
- 107 0078 E8000000 		call	free at PLT
- 107      00
- 108              	.L6:
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 109              		.loc 1 122 0
- 110 007d 8B45FC   		movl	-4(%rbp), %eax
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 111              		.loc 1 123 0
- 112 0080 C9       		leave
- 113 0081 C3       		ret
- 114              		.cfi_endproc
- 115              	.LFE603:
- 116              		.size	KCipherVecAesNiDestroy, .-KCipherVecAesNiDestroy
- 117              		.section	.rodata
- 118 000c 00000000 		.align 8
- 119              	.LC0:
- 120 0010 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
- 120      652F726F 
- 120      6461726D 
- 120      65722F73 
- 120      72615F73 
- 121              	.LC1:
- 122 0048 73656C66 		.string	"self"
- 122      00
- 123              	.LC2:
- 124 004d 75736572 		.string	"user_key"
- 124      5F6B6579 
- 124      00
- 125              	.LC3:
- 126 0056 75736572 		.string	"user_key_bits"
- 126      5F6B6579 
- 126      5F626974 
- 126      7300
- 127              		.text
- 128              		.type	KCipherVecAesNiSetEncryptKey, @function
- 129              	KCipherVecAesNiSetEncryptKey:
- 130              	.LFB604:
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(SetEncryptKey)(CIPHER_IMPL * self,
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   const char * user_key,
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   uint32_t user_key_bits)
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-
GAS LISTING /tmp/ccWvEaWW.s 			page 6
-
-
- 131              		.loc 1 129 0
- 132              		.cfi_startproc
- 133 0082 55       		pushq	%rbp
- 134              	.LCFI6:
- 135              		.cfi_def_cfa_offset 16
- 136 0083 4889E5   		movq	%rsp, %rbp
- 137              		.cfi_offset 6, -16
- 138              	.LCFI7:
- 139              		.cfi_def_cfa_register 6
- 140 0086 53       		pushq	%rbx
- 141 0087 4883EC38 		subq	$56, %rsp
- 142 008b 48897DD8 		movq	%rdi, -40(%rbp)
- 143 008f 488975D0 		movq	%rsi, -48(%rbp)
- 144 0093 8955CC   		movl	%edx, -52(%rbp)
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 145              		.loc 1 130 0
- 146 0096 C745EC00 		movl	$0, -20(%rbp)
- 146      000000
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 147              		.loc 1 132 0
- 148 009d 48837DD8 		cmpq	$0, -40(%rbp)
- 148      00
- 149 00a2 751F     		jne	.L9
- 150              		.cfi_offset 3, -24
- 151 00a4 488D0D00 		leaq	__PRETTY_FUNCTION__.7296(%rip), %rcx
- 151      000000
- 152 00ab BA840000 		movl	$132, %edx
- 152      00
- 153 00b0 488D3500 		leaq	.LC0(%rip), %rsi
- 153      000000
- 154 00b7 488D3D00 		leaq	.LC1(%rip), %rdi
- 154      000000
- 155 00be E8000000 		call	__assert_fail at PLT
- 155      00
- 156              	.L9:
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key);
- 157              		.loc 1 133 0
- 158 00c3 48837DD0 		cmpq	$0, -48(%rbp)
- 158      00
- 159 00c8 751F     		jne	.L10
- 160 00ca 488D0D00 		leaq	__PRETTY_FUNCTION__.7296(%rip), %rcx
- 160      000000
- 161 00d1 BA850000 		movl	$133, %edx
- 161      00
- 162 00d6 488D3500 		leaq	.LC0(%rip), %rsi
- 162      000000
- 163 00dd 488D3D00 		leaq	.LC2(%rip), %rdi
- 163      000000
- 164 00e4 E8000000 		call	__assert_fail at PLT
- 164      00
- 165              	.L10:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key_bits);
- 166              		.loc 1 134 0
- 167 00e9 837DCC00 		cmpl	$0, -52(%rbp)
- 168 00ed 751F     		jne	.L11
- 169 00ef 488D0D00 		leaq	__PRETTY_FUNCTION__.7296(%rip), %rcx
-
GAS LISTING /tmp/ccWvEaWW.s 			page 7
-
-
- 169      000000
- 170 00f6 BA860000 		movl	$134, %edx
- 170      00
- 171 00fb 488D3500 		leaq	.LC0(%rip), %rsi
- 171      000000
- 172 0102 488D3D00 		leaq	.LC3(%rip), %rdi
- 172      000000
- 173 0109 E8000000 		call	__assert_fail at PLT
- 173      00
- 174              	.L11:
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 175              		.loc 1 136 0
- 176 010e 488B45D8 		movq	-40(%rbp), %rax
- 177 0112 488B4048 		movq	72(%rax), %rax
- 178 0116 8B00     		movl	(%rax), %eax
- 179 0118 83F801   		cmpl	$1, %eax
- 180 011b 7422     		je	.L13
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
- 181              		.loc 1 139 0
- 182 011d B98B0000 		movl	$139, %ecx
- 182      00
- 183 0122 488D1500 		leaq	__func__.7298(%rip), %rdx
- 183      000000
- 184 0129 488D3500 		leaq	.LC0(%rip), %rsi
- 184      000000
- 185 0130 BF088E04 		movl	$-2029744632, %edi
- 185      87
- 186 0135 E8000000 		call	SetRCFileFuncLine at PLT
- 186      00
- 187 013a 8945EC   		movl	%eax, -20(%rbp)
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 188              		.loc 1 140 0
- 189 013d EB23     		jmp	.L14
- 190              	.L13:
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         self->block_cipher->v1.set_encrypt_key (self->dad.encrypt_key, user_key,
- 191              		.loc 1 143 0
- 192 013f 488B45D8 		movq	-40(%rbp), %rax
- 193 0143 488B4048 		movq	72(%rax), %rax
- 194 0147 488B5820 		movq	32(%rax), %rbx
- 195 014b 488B45D8 		movq	-40(%rbp), %rax
- 196 014f 488B4018 		movq	24(%rax), %rax
- 197 0153 8B55CC   		movl	-52(%rbp), %edx
- 198 0156 488B4DD0 		movq	-48(%rbp), %rcx
- 199 015a 4889CE   		movq	%rcx, %rsi
- 200 015d 4889C7   		movq	%rax, %rdi
- 201 0160 FFD3     		call	*%rbx
- 202              	.L14:
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                                 user_key_bits);
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 203              		.loc 1 147 0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 8
-
-
- 204 0162 8B45EC   		movl	-20(%rbp), %eax
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 205              		.loc 1 148 0
- 206 0165 4883C438 		addq	$56, %rsp
- 207 0169 5B       		popq	%rbx
- 208 016a C9       		leave
- 209 016b C3       		ret
- 210              		.cfi_endproc
- 211              	.LFE604:
- 212              		.size	KCipherVecAesNiSetEncryptKey, .-KCipherVecAesNiSetEncryptKey
- 213              		.type	KCipherVecAesNiSetDecryptKey, @function
- 214              	KCipherVecAesNiSetDecryptKey:
- 215              	.LFB605:
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(SetDecryptKey)(CIPHER_IMPL * self,
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   const char * user_key,
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   uint32_t user_key_bits)
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 216              		.loc 1 154 0
- 217              		.cfi_startproc
- 218 016c 55       		pushq	%rbp
- 219              	.LCFI8:
- 220              		.cfi_def_cfa_offset 16
- 221 016d 4889E5   		movq	%rsp, %rbp
- 222              		.cfi_offset 6, -16
- 223              	.LCFI9:
- 224              		.cfi_def_cfa_register 6
- 225 0170 53       		pushq	%rbx
- 226 0171 4883EC38 		subq	$56, %rsp
- 227 0175 48897DD8 		movq	%rdi, -40(%rbp)
- 228 0179 488975D0 		movq	%rsi, -48(%rbp)
- 229 017d 8955CC   		movl	%edx, -52(%rbp)
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 230              		.loc 1 155 0
- 231 0180 C745EC00 		movl	$0, -20(%rbp)
- 231      000000
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 232              		.loc 1 157 0
- 233 0187 48837DD8 		cmpq	$0, -40(%rbp)
- 233      00
- 234 018c 751F     		jne	.L17
- 235              		.cfi_offset 3, -24
- 236 018e 488D0D00 		leaq	__PRETTY_FUNCTION__.7320(%rip), %rcx
- 236      000000
- 237 0195 BA9D0000 		movl	$157, %edx
- 237      00
- 238 019a 488D3500 		leaq	.LC0(%rip), %rsi
- 238      000000
- 239 01a1 488D3D00 		leaq	.LC1(%rip), %rdi
- 239      000000
- 240 01a8 E8000000 		call	__assert_fail at PLT
- 240      00
- 241              	.L17:
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key);
- 242              		.loc 1 158 0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 9
-
-
- 243 01ad 48837DD0 		cmpq	$0, -48(%rbp)
- 243      00
- 244 01b2 751F     		jne	.L18
- 245 01b4 488D0D00 		leaq	__PRETTY_FUNCTION__.7320(%rip), %rcx
- 245      000000
- 246 01bb BA9E0000 		movl	$158, %edx
- 246      00
- 247 01c0 488D3500 		leaq	.LC0(%rip), %rsi
- 247      000000
- 248 01c7 488D3D00 		leaq	.LC2(%rip), %rdi
- 248      000000
- 249 01ce E8000000 		call	__assert_fail at PLT
- 249      00
- 250              	.L18:
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key_bits);
- 251              		.loc 1 159 0
- 252 01d3 837DCC00 		cmpl	$0, -52(%rbp)
- 253 01d7 751F     		jne	.L19
- 254 01d9 488D0D00 		leaq	__PRETTY_FUNCTION__.7320(%rip), %rcx
- 254      000000
- 255 01e0 BA9F0000 		movl	$159, %edx
- 255      00
- 256 01e5 488D3500 		leaq	.LC0(%rip), %rsi
- 256      000000
- 257 01ec 488D3D00 		leaq	.LC3(%rip), %rdi
- 257      000000
- 258 01f3 E8000000 		call	__assert_fail at PLT
- 258      00
- 259              	.L19:
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 260              		.loc 1 161 0
- 261 01f8 488B45D8 		movq	-40(%rbp), %rax
- 262 01fc 488B4048 		movq	72(%rax), %rax
- 263 0200 8B00     		movl	(%rax), %eax
- 264 0202 83F801   		cmpl	$1, %eax
- 265 0205 7422     		je	.L21
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
- 266              		.loc 1 164 0
- 267 0207 B9A40000 		movl	$164, %ecx
- 267      00
- 268 020c 488D1500 		leaq	__func__.7322(%rip), %rdx
- 268      000000
- 269 0213 488D3500 		leaq	.LC0(%rip), %rsi
- 269      000000
- 270 021a BF088E04 		movl	$-2029744632, %edi
- 270      87
- 271 021f E8000000 		call	SetRCFileFuncLine at PLT
- 271      00
- 272 0224 8945EC   		movl	%eax, -20(%rbp)
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 273              		.loc 1 165 0
- 274 0227 EB23     		jmp	.L22
- 275              	.L21:
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 10
-
-
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         self->block_cipher->v1.set_decrypt_key (self->dad.decrypt_key, user_key,
- 276              		.loc 1 168 0
- 277 0229 488B45D8 		movq	-40(%rbp), %rax
- 278 022d 488B4048 		movq	72(%rax), %rax
- 279 0231 488B5828 		movq	40(%rax), %rbx
- 280 0235 488B45D8 		movq	-40(%rbp), %rax
- 281 0239 488B4020 		movq	32(%rax), %rax
- 282 023d 8B55CC   		movl	-52(%rbp), %edx
- 283 0240 488B4DD0 		movq	-48(%rbp), %rcx
- 284 0244 4889CE   		movq	%rcx, %rsi
- 285 0247 4889C7   		movq	%rax, %rdi
- 286 024a FFD3     		call	*%rbx
- 287              	.L22:
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                                     user_key_bits);
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 288              		.loc 1 172 0
- 289 024c 8B45EC   		movl	-20(%rbp), %eax
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 290              		.loc 1 173 0
- 291 024f 4883C438 		addq	$56, %rsp
- 292 0253 5B       		popq	%rbx
- 293 0254 C9       		leave
- 294 0255 C3       		ret
- 295              		.cfi_endproc
- 296              	.LFE605:
- 297              		.size	KCipherVecAesNiSetDecryptKey, .-KCipherVecAesNiSetDecryptKey
- 298              		.section	.rodata
- 299              	.LC4:
- 300 0064 69766563 		.string	"ivec"
- 300      00
- 301              		.text
- 302              		.type	KCipherVecAesNiSetEncryptIvec, @function
- 303              	KCipherVecAesNiSetEncryptIvec:
- 304              	.LFB606:
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetEncryptIvec) (CIPHER_IMPL * self,
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                              const void * ivec)
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 305              		.loc 1 179 0
- 306              		.cfi_startproc
- 307 0256 55       		pushq	%rbp
- 308              	.LCFI10:
- 309              		.cfi_def_cfa_offset 16
- 310 0257 4889E5   		movq	%rsp, %rbp
- 311              		.cfi_offset 6, -16
- 312              	.LCFI11:
- 313              		.cfi_def_cfa_register 6
- 314 025a 4883EC10 		subq	$16, %rsp
- 315 025e 48897DF8 		movq	%rdi, -8(%rbp)
- 316 0262 488975F0 		movq	%rsi, -16(%rbp)
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 317              		.loc 1 180 0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 11
-
-
- 318 0266 48837DF8 		cmpq	$0, -8(%rbp)
- 318      00
- 319 026b 751F     		jne	.L25
- 320 026d 488D0D00 		leaq	__PRETTY_FUNCTION__.7342(%rip), %rcx
- 320      000000
- 321 0274 BAB40000 		movl	$180, %edx
- 321      00
- 322 0279 488D3500 		leaq	.LC0(%rip), %rsi
- 322      000000
- 323 0280 488D3D00 		leaq	.LC1(%rip), %rdi
- 323      000000
- 324 0287 E8000000 		call	__assert_fail at PLT
- 324      00
- 325              	.L25:
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (ivec);
- 326              		.loc 1 181 0
- 327 028c 48837DF0 		cmpq	$0, -16(%rbp)
- 327      00
- 328 0291 751F     		jne	.L26
- 329 0293 488D0D00 		leaq	__PRETTY_FUNCTION__.7342(%rip), %rcx
- 329      000000
- 330 029a BAB50000 		movl	$181, %edx
- 330      00
- 331 029f 488D3500 		leaq	.LC0(%rip), %rsi
- 331      000000
- 332 02a6 488D3D00 		leaq	.LC4(%rip), %rdi
- 332      000000
- 333 02ad E8000000 		call	__assert_fail at PLT
- 333      00
- 334              	.L26:
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memcpy (self->dad.encrypt_ivec, ivec, self->dad.block_size);
- 335              		.loc 1 183 0
- 336 02b2 488B45F8 		movq	-8(%rbp), %rax
- 337 02b6 8B4004   		movl	4(%rax), %eax
- 338 02b9 89C2     		mov	%eax, %edx
- 339 02bb 488B45F8 		movq	-8(%rbp), %rax
- 340 02bf 488B4028 		movq	40(%rax), %rax
- 341 02c3 488B4DF0 		movq	-16(%rbp), %rcx
- 342 02c7 4889CE   		movq	%rcx, %rsi
- 343 02ca 4889C7   		movq	%rax, %rdi
- 344 02cd E8000000 		call	memcpy at PLT
- 344      00
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 345              		.loc 1 185 0
- 346 02d2 B8000000 		movl	$0, %eax
- 346      00
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 347              		.loc 1 186 0
- 348 02d7 C9       		leave
- 349 02d8 C3       		ret
- 350              		.cfi_endproc
- 351              	.LFE606:
- 352              		.size	KCipherVecAesNiSetEncryptIvec, .-KCipherVecAesNiSetEncryptIvec
- 353              		.type	KCipherVecAesNiSetDecryptIvec, @function
- 354              	KCipherVecAesNiSetDecryptIvec:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 12
-
-
- 355              	.LFB607:
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetDecryptIvec) (CIPHER_IMPL * self,
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                              const void * ivec)
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 356              		.loc 1 192 0
- 357              		.cfi_startproc
- 358 02d9 55       		pushq	%rbp
- 359              	.LCFI12:
- 360              		.cfi_def_cfa_offset 16
- 361 02da 4889E5   		movq	%rsp, %rbp
- 362              		.cfi_offset 6, -16
- 363              	.LCFI13:
- 364              		.cfi_def_cfa_register 6
- 365 02dd 4883EC10 		subq	$16, %rsp
- 366 02e1 48897DF8 		movq	%rdi, -8(%rbp)
- 367 02e5 488975F0 		movq	%rsi, -16(%rbp)
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 368              		.loc 1 193 0
- 369 02e9 48837DF8 		cmpq	$0, -8(%rbp)
- 369      00
- 370 02ee 751F     		jne	.L29
- 371 02f0 488D0D00 		leaq	__PRETTY_FUNCTION__.7355(%rip), %rcx
- 371      000000
- 372 02f7 BAC10000 		movl	$193, %edx
- 372      00
- 373 02fc 488D3500 		leaq	.LC0(%rip), %rsi
- 373      000000
- 374 0303 488D3D00 		leaq	.LC1(%rip), %rdi
- 374      000000
- 375 030a E8000000 		call	__assert_fail at PLT
- 375      00
- 376              	.L29:
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (ivec);
- 377              		.loc 1 194 0
- 378 030f 48837DF0 		cmpq	$0, -16(%rbp)
- 378      00
- 379 0314 751F     		jne	.L30
- 380 0316 488D0D00 		leaq	__PRETTY_FUNCTION__.7355(%rip), %rcx
- 380      000000
- 381 031d BAC20000 		movl	$194, %edx
- 381      00
- 382 0322 488D3500 		leaq	.LC0(%rip), %rsi
- 382      000000
- 383 0329 488D3D00 		leaq	.LC4(%rip), %rdi
- 383      000000
- 384 0330 E8000000 		call	__assert_fail at PLT
- 384      00
- 385              	.L30:
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memcpy (self->dad.decrypt_ivec, ivec, self->dad.block_size);
- 386              		.loc 1 196 0
- 387 0335 488B45F8 		movq	-8(%rbp), %rax
- 388 0339 8B4004   		movl	4(%rax), %eax
- 389 033c 89C2     		mov	%eax, %edx
-
GAS LISTING /tmp/ccWvEaWW.s 			page 13
-
-
- 390 033e 488B45F8 		movq	-8(%rbp), %rax
- 391 0342 488B4030 		movq	48(%rax), %rax
- 392 0346 488B4DF0 		movq	-16(%rbp), %rcx
- 393 034a 4889CE   		movq	%rcx, %rsi
- 394 034d 4889C7   		movq	%rax, %rdi
- 395 0350 E8000000 		call	memcpy at PLT
- 395      00
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 396              		.loc 1 198 0
- 397 0355 B8000000 		movl	$0, %eax
- 397      00
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 398              		.loc 1 199 0
- 399 035a C9       		leave
- 400 035b C3       		ret
- 401              		.cfi_endproc
- 402              	.LFE607:
- 403              		.size	KCipherVecAesNiSetDecryptIvec, .-KCipherVecAesNiSetDecryptIvec
- 404              		.section	.rodata
- 405              	.LC5:
- 406 0069 66756E63 		.string	"func"
- 406      00
- 407              		.text
- 408              		.type	KCipherVecAesNiSetEncryptCounterFunc, @function
- 409              	KCipherVecAesNiSetEncryptCounterFunc:
- 410              	.LFB608:
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetEncryptCounterFunc) (CIPHER_IMPL * self,
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                     cipher_ctr_func func)
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 411              		.loc 1 205 0
- 412              		.cfi_startproc
- 413 035c 55       		pushq	%rbp
- 414              	.LCFI14:
- 415              		.cfi_def_cfa_offset 16
- 416 035d 4889E5   		movq	%rsp, %rbp
- 417              		.cfi_offset 6, -16
- 418              	.LCFI15:
- 419              		.cfi_def_cfa_register 6
- 420 0360 4883EC10 		subq	$16, %rsp
- 421 0364 48897DF8 		movq	%rdi, -8(%rbp)
- 422 0368 488975F0 		movq	%rsi, -16(%rbp)
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 423              		.loc 1 206 0
- 424 036c 48837DF8 		cmpq	$0, -8(%rbp)
- 424      00
- 425 0371 751F     		jne	.L33
- 426 0373 488D0D00 		leaq	__PRETTY_FUNCTION__.7368(%rip), %rcx
- 426      000000
- 427 037a BACE0000 		movl	$206, %edx
- 427      00
- 428 037f 488D3500 		leaq	.LC0(%rip), %rsi
- 428      000000
- 429 0386 488D3D00 		leaq	.LC1(%rip), %rdi
-
GAS LISTING /tmp/ccWvEaWW.s 			page 14
-
-
- 429      000000
- 430 038d E8000000 		call	__assert_fail at PLT
- 430      00
- 431              	.L33:
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (func);
- 432              		.loc 1 207 0
- 433 0392 48837DF0 		cmpq	$0, -16(%rbp)
- 433      00
- 434 0397 751F     		jne	.L34
- 435 0399 488D0D00 		leaq	__PRETTY_FUNCTION__.7368(%rip), %rcx
- 435      000000
- 436 03a0 BACF0000 		movl	$207, %edx
- 436      00
- 437 03a5 488D3500 		leaq	.LC0(%rip), %rsi
- 437      000000
- 438 03ac 488D3D00 		leaq	.LC5(%rip), %rdi
- 438      000000
- 439 03b3 E8000000 		call	__assert_fail at PLT
- 439      00
- 440              	.L34:
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->dad.encrypt_counter_func = func;
- 441              		.loc 1 209 0
- 442 03b8 488B45F8 		movq	-8(%rbp), %rax
- 443 03bc 488B55F0 		movq	-16(%rbp), %rdx
- 444 03c0 48895038 		movq	%rdx, 56(%rax)
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 445              		.loc 1 211 0
- 446 03c4 B8000000 		movl	$0, %eax
- 446      00
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 447              		.loc 1 212 0
- 448 03c9 C9       		leave
- 449 03ca C3       		ret
- 450              		.cfi_endproc
- 451              	.LFE608:
- 452              		.size	KCipherVecAesNiSetEncryptCounterFunc, .-KCipherVecAesNiSetEncryptCounterFunc
- 453              		.type	KCipherVecAesNiSetDecryptCounterFunc, @function
- 454              	KCipherVecAesNiSetDecryptCounterFunc:
- 455              	.LFB609:
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetDecryptCounterFunc) (CIPHER_IMPL * self,
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                     cipher_ctr_func func)
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 456              		.loc 1 218 0
- 457              		.cfi_startproc
- 458 03cb 55       		pushq	%rbp
- 459              	.LCFI16:
- 460              		.cfi_def_cfa_offset 16
- 461 03cc 4889E5   		movq	%rsp, %rbp
- 462              		.cfi_offset 6, -16
- 463              	.LCFI17:
- 464              		.cfi_def_cfa_register 6
- 465 03cf 4883EC10 		subq	$16, %rsp
-
GAS LISTING /tmp/ccWvEaWW.s 			page 15
-
-
- 466 03d3 48897DF8 		movq	%rdi, -8(%rbp)
- 467 03d7 488975F0 		movq	%rsi, -16(%rbp)
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 468              		.loc 1 219 0
- 469 03db 48837DF8 		cmpq	$0, -8(%rbp)
- 469      00
- 470 03e0 751F     		jne	.L37
- 471 03e2 488D0D00 		leaq	__PRETTY_FUNCTION__.7378(%rip), %rcx
- 471      000000
- 472 03e9 BADB0000 		movl	$219, %edx
- 472      00
- 473 03ee 488D3500 		leaq	.LC0(%rip), %rsi
- 473      000000
- 474 03f5 488D3D00 		leaq	.LC1(%rip), %rdi
- 474      000000
- 475 03fc E8000000 		call	__assert_fail at PLT
- 475      00
- 476              	.L37:
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (func);
- 477              		.loc 1 220 0
- 478 0401 48837DF0 		cmpq	$0, -16(%rbp)
- 478      00
- 479 0406 751F     		jne	.L38
- 480 0408 488D0D00 		leaq	__PRETTY_FUNCTION__.7378(%rip), %rcx
- 480      000000
- 481 040f BADC0000 		movl	$220, %edx
- 481      00
- 482 0414 488D3500 		leaq	.LC0(%rip), %rsi
- 482      000000
- 483 041b 488D3D00 		leaq	.LC5(%rip), %rdi
- 483      000000
- 484 0422 E8000000 		call	__assert_fail at PLT
- 484      00
- 485              	.L38:
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->dad.decrypt_counter_func = func;
- 486              		.loc 1 222 0
- 487 0427 488B45F8 		movq	-8(%rbp), %rax
- 488 042b 488B55F0 		movq	-16(%rbp), %rdx
- 489 042f 48895040 		movq	%rdx, 64(%rax)
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 490              		.loc 1 224 0
- 491 0433 B8000000 		movl	$0, %eax
- 491      00
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 492              		.loc 1 225 0
- 493 0438 C9       		leave
- 494 0439 C3       		ret
- 495              		.cfi_endproc
- 496              	.LFE609:
- 497              		.size	KCipherVecAesNiSetDecryptCounterFunc, .-KCipherVecAesNiSetDecryptCounterFunc
- 498              		.type	KCipherVecAesNiEncryptV1, @function
- 499              	KCipherVecAesNiEncryptV1:
- 500              	.LFB610:
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 16
-
-
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec CMEMBER(EncryptV1)(const CIPHER_IMPL * self,
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                               register CipherVec cv)
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 501              		.loc 1 230 0
- 502              		.cfi_startproc
- 503 043a 55       		pushq	%rbp
- 504              	.LCFI18:
- 505              		.cfi_def_cfa_offset 16
- 506 043b 4889E5   		movq	%rsp, %rbp
- 507              		.cfi_offset 6, -16
- 508              	.LCFI19:
- 509              		.cfi_def_cfa_register 6
- 510 043e 4883EC10 		subq	$16, %rsp
- 511 0442 48897DF8 		movq	%rdi, -8(%rbp)
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return self->block_cipher->v1.encrypt (cv, self->dad.encrypt_key);
- 512              		.loc 1 231 0
- 513 0446 488B45F8 		movq	-8(%rbp), %rax
- 514 044a 488B4048 		movq	72(%rax), %rax
- 515 044e 488B5030 		movq	48(%rax), %rdx
- 516 0452 488B45F8 		movq	-8(%rbp), %rax
- 517 0456 488B4018 		movq	24(%rax), %rax
- 518 045a 4889C7   		movq	%rax, %rdi
- 519 045d FFD2     		call	*%rdx
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 520              		.loc 1 232 0
- 521 045f C9       		leave
- 522 0460 C3       		ret
- 523              		.cfi_endproc
- 524              	.LFE610:
- 525              		.size	KCipherVecAesNiEncryptV1, .-KCipherVecAesNiEncryptV1
- 526              		.type	KCipherVecAesNiDecryptV1, @function
- 527              	KCipherVecAesNiDecryptV1:
- 528              	.LFB611:
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec  CMEMBER(DecryptV1)(const CIPHER_IMPL * self,
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                               register CipherVec cv)
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 529              		.loc 1 237 0
- 530              		.cfi_startproc
- 531 0461 55       		pushq	%rbp
- 532              	.LCFI20:
- 533              		.cfi_def_cfa_offset 16
- 534 0462 4889E5   		movq	%rsp, %rbp
- 535              		.cfi_offset 6, -16
- 536              	.LCFI21:
- 537              		.cfi_def_cfa_register 6
- 538 0465 4883EC10 		subq	$16, %rsp
- 539 0469 48897DF8 		movq	%rdi, -8(%rbp)
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return self->block_cipher->v1.decrypt (cv, self->dad.decrypt_key);
- 540              		.loc 1 238 0
- 541 046d 488B45F8 		movq	-8(%rbp), %rax
- 542 0471 488B4048 		movq	72(%rax), %rax
- 543 0475 488B5038 		movq	56(%rax), %rdx
- 544 0479 488B45F8 		movq	-8(%rbp), %rax
- 545 047d 488B4020 		movq	32(%rax), %rax
- 546 0481 4889C7   		movq	%rax, %rdi
-
GAS LISTING /tmp/ccWvEaWW.s 			page 17
-
-
- 547 0484 FFD2     		call	*%rdx
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 548              		.loc 1 239 0
- 549 0486 C9       		leave
- 550 0487 C3       		ret
- 551              		.cfi_endproc
- 552              	.LFE611:
- 553              		.size	KCipherVecAesNiDecryptV1, .-KCipherVecAesNiDecryptV1
- 554              		.type	KCipherVecAesNiEncryptV1Int, @function
- 555              	KCipherVecAesNiEncryptV1Int:
- 556              	.LFB612:
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ rc_t CMEMBER(EncryptV1Int)(const CIPHER_IMPL * self,
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                             const void * in, void * out)
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 557              		.loc 1 244 0
- 558              		.cfi_startproc
- 559 0488 55       		pushq	%rbp
- 560              	.LCFI22:
- 561              		.cfi_def_cfa_offset 16
- 562 0489 4889E5   		movq	%rsp, %rbp
- 563              		.cfi_offset 6, -16
- 564              	.LCFI23:
- 565              		.cfi_def_cfa_register 6
- 566 048c 4883EC30 		subq	$48, %rsp
- 567 0490 48897DE8 		movq	%rdi, -24(%rbp)
- 568 0494 488975E0 		movq	%rsi, -32(%rbp)
- 569 0498 488955D8 		movq	%rdx, -40(%rbp)
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CipherVecIn(in);
- 570              		.loc 1 247 0
- 571 049c 488B45E0 		movq	-32(%rbp), %rax
- 572 04a0 4889C7   		movq	%rax, %rdi
- 573 04a3 E858FBFF 		call	CipherVecIn
- 573      FF
- 574 04a8 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 574      F0
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CMEMBER(EncryptV1)(self, cv);
- 575              		.loc 1 248 0
- 576 04ad F30F6F45 		movdqu	-16(%rbp), %xmm0
- 576      F0
- 577 04b2 488B45E8 		movq	-24(%rbp), %rax
- 578 04b6 4889C7   		movq	%rax, %rdi
- 579 04b9 E87CFFFF 		call	KCipherVecAesNiEncryptV1
- 579      FF
- 580 04be F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 580      F0
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut(cv, out);
- 581              		.loc 1 249 0
- 582 04c3 488B45D8 		movq	-40(%rbp), %rax
- 583 04c7 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 583      F0
- 584 04cc 4889C7   		movq	%rax, %rdi
- 585 04cf E84BFBFF 		call	CipherVecOut
- 585      FF
-
GAS LISTING /tmp/ccWvEaWW.s 			page 18
-
-
- 250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 586              		.loc 1 250 0
- 587 04d4 B8000000 		movl	$0, %eax
- 587      00
- 251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 588              		.loc 1 251 0
- 589 04d9 C9       		leave
- 590 04da C3       		ret
- 591              		.cfi_endproc
- 592              	.LFE612:
- 593              		.size	KCipherVecAesNiEncryptV1Int, .-KCipherVecAesNiEncryptV1Int
- 594              		.type	KCipherVecAesNiDecryptV1Int, @function
- 595              	KCipherVecAesNiDecryptV1Int:
- 596              	.LFB613:
- 252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ rc_t CMEMBER(DecryptV1Int)(const CIPHER_IMPL * self,
- 255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                             const void * in, void * out)
- 256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 597              		.loc 1 256 0
- 598              		.cfi_startproc
- 599 04db 55       		pushq	%rbp
- 600              	.LCFI24:
- 601              		.cfi_def_cfa_offset 16
- 602 04dc 4889E5   		movq	%rsp, %rbp
- 603              		.cfi_offset 6, -16
- 604              	.LCFI25:
- 605              		.cfi_def_cfa_register 6
- 606 04df 4883EC30 		subq	$48, %rsp
- 607 04e3 48897DE8 		movq	%rdi, -24(%rbp)
- 608 04e7 488975E0 		movq	%rsi, -32(%rbp)
- 609 04eb 488955D8 		movq	%rdx, -40(%rbp)
- 257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CipherVecIn(in);
- 610              		.loc 1 259 0
- 611 04ef 488B45E0 		movq	-32(%rbp), %rax
- 612 04f3 4889C7   		movq	%rax, %rdi
- 613 04f6 E805FBFF 		call	CipherVecIn
- 613      FF
- 614 04fb F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 614      F0
- 260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CMEMBER(DecryptV1)(self, cv);
- 615              		.loc 1 260 0
- 616 0500 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 616      F0
- 617 0505 488B45E8 		movq	-24(%rbp), %rax
- 618 0509 4889C7   		movq	%rax, %rdi
- 619 050c E850FFFF 		call	KCipherVecAesNiDecryptV1
- 619      FF
- 620 0511 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 620      F0
- 261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut(cv, out);
- 621              		.loc 1 261 0
- 622 0516 488B45D8 		movq	-40(%rbp), %rax
- 623 051a F30F6F45 		movdqu	-16(%rbp), %xmm0
- 623      F0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 19
-
-
- 624 051f 4889C7   		movq	%rax, %rdi
- 625 0522 E8F8FAFF 		call	CipherVecOut
- 625      FF
- 262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 626              		.loc 1 262 0
- 627 0527 B8000000 		movl	$0, %eax
- 627      00
- 263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 628              		.loc 1 263 0
- 629 052c C9       		leave
- 630 052d C3       		ret
- 631              		.cfi_endproc
- 632              	.LFE613:
- 633              		.size	KCipherVecAesNiDecryptV1Int, .-KCipherVecAesNiDecryptV1Int
- 634              		.type	KCipherVecAesNiEncrypt, @function
- 635              	KCipherVecAesNiEncrypt:
- 636              	.LFB614:
- 264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(Encrypt) (const CIPHER_IMPL * self, const void * in, void * out)
- 267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 637              		.loc 1 267 0
- 638              		.cfi_startproc
- 639 052e 55       		pushq	%rbp
- 640              	.LCFI26:
- 641              		.cfi_def_cfa_offset 16
- 642 052f 4889E5   		movq	%rsp, %rbp
- 643              		.cfi_offset 6, -16
- 644              	.LCFI27:
- 645              		.cfi_def_cfa_register 6
- 646 0532 4883EC30 		subq	$48, %rsp
- 647 0536 48897DE8 		movq	%rdi, -24(%rbp)
- 648 053a 488975E0 		movq	%rsi, -32(%rbp)
- 649 053e 488955D8 		movq	%rdx, -40(%rbp)
- 268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc;
- 269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 650              		.loc 1 270 0
- 651 0542 488B45E8 		movq	-24(%rbp), %rax
- 652 0546 488B4048 		movq	72(%rax), %rax
- 653 054a 8B00     		movl	(%rax), %eax
- 654 054c 83F801   		cmpl	$1, %eax
- 655 054f 7422     		je	.L50
- 271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
- 656              		.loc 1 273 0
- 657 0551 B9110100 		movl	$273, %ecx
- 657      00
- 658 0556 488D1500 		leaq	__func__.7428(%rip), %rdx
- 658      000000
- 659 055d 488D3500 		leaq	.LC0(%rip), %rsi
- 659      000000
- 660 0564 BF080E09 		movl	$-2029449720, %edi
- 660      87
- 661 0569 E8000000 		call	SetRCFileFuncLine at PLT
- 661      00
-
GAS LISTING /tmp/ccWvEaWW.s 			page 20
-
-
- 662 056e 8945FC   		movl	%eax, -4(%rbp)
- 274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 663              		.loc 1 274 0
- 664 0571 EB1A     		jmp	.L51
- 665              	.L50:
- 275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = CMEMBER(EncryptV1Int)(self, in, out);
- 666              		.loc 1 277 0
- 667 0573 488B55D8 		movq	-40(%rbp), %rdx
- 668 0577 488B4DE0 		movq	-32(%rbp), %rcx
- 669 057b 488B45E8 		movq	-24(%rbp), %rax
- 670 057f 4889CE   		movq	%rcx, %rsi
- 671 0582 4889C7   		movq	%rax, %rdi
- 672 0585 E8FEFEFF 		call	KCipherVecAesNiEncryptV1Int
- 672      FF
- 673 058a 8945FC   		movl	%eax, -4(%rbp)
- 674              	.L51:
- 278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 675              		.loc 1 281 0
- 676 058d 8B45FC   		movl	-4(%rbp), %eax
- 282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 677              		.loc 1 282 0
- 678 0590 C9       		leave
- 679 0591 C3       		ret
- 680              		.cfi_endproc
- 681              	.LFE614:
- 682              		.size	KCipherVecAesNiEncrypt, .-KCipherVecAesNiEncrypt
- 683              		.type	KCipherVecAesNiDecrypt, @function
- 684              	KCipherVecAesNiDecrypt:
- 685              	.LFB615:
- 283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(Decrypt) (const CIPHER_IMPL * self, const void * in, void * out)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 686              		.loc 1 287 0
- 687              		.cfi_startproc
- 688 0592 55       		pushq	%rbp
- 689              	.LCFI28:
- 690              		.cfi_def_cfa_offset 16
- 691 0593 4889E5   		movq	%rsp, %rbp
- 692              		.cfi_offset 6, -16
- 693              	.LCFI29:
- 694              		.cfi_def_cfa_register 6
- 695 0596 4883EC30 		subq	$48, %rsp
- 696 059a 48897DE8 		movq	%rdi, -24(%rbp)
- 697 059e 488975E0 		movq	%rsi, -32(%rbp)
- 698 05a2 488955D8 		movq	%rdx, -40(%rbp)
- 288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 699              		.loc 1 288 0
- 700 05a6 C745FC00 		movl	$0, -4(%rbp)
- 700      000000
- 289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 21
-
-
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 701              		.loc 1 290 0
- 702 05ad 488B45E8 		movq	-24(%rbp), %rax
- 703 05b1 488B4048 		movq	72(%rax), %rax
- 704 05b5 8B00     		movl	(%rax), %eax
- 705 05b7 83F801   		cmpl	$1, %eax
- 706 05ba 7422     		je	.L55
- 291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
- 707              		.loc 1 293 0
- 708 05bc B9250100 		movl	$293, %ecx
- 708      00
- 709 05c1 488D1500 		leaq	__func__.7444(%rip), %rdx
- 709      000000
- 710 05c8 488D3500 		leaq	.LC0(%rip), %rsi
- 710      000000
- 711 05cf BF080E09 		movl	$-2029449720, %edi
- 711      87
- 712 05d4 E8000000 		call	SetRCFileFuncLine at PLT
- 712      00
- 713 05d9 8945FC   		movl	%eax, -4(%rbp)
- 294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 714              		.loc 1 294 0
- 715 05dc EB1A     		jmp	.L56
- 716              	.L55:
- 295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = CMEMBER(DecryptV1Int)(self, in, out);
- 717              		.loc 1 297 0
- 718 05de 488B55D8 		movq	-40(%rbp), %rdx
- 719 05e2 488B4DE0 		movq	-32(%rbp), %rcx
- 720 05e6 488B45E8 		movq	-24(%rbp), %rax
- 721 05ea 4889CE   		movq	%rcx, %rsi
- 722 05ed 4889C7   		movq	%rax, %rdi
- 723 05f0 E8E6FEFF 		call	KCipherVecAesNiDecryptV1Int
- 723      FF
- 724 05f5 8945FC   		movl	%eax, -4(%rbp)
- 725              	.L56:
- 298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 726              		.loc 1 301 0
- 727 05f8 8B45FC   		movl	-4(%rbp), %eax
- 302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 728              		.loc 1 302 0
- 729 05fb C9       		leave
- 730 05fc C3       		ret
- 731              		.cfi_endproc
- 732              	.LFE615:
- 733              		.size	KCipherVecAesNiDecrypt, .-KCipherVecAesNiDecrypt
- 734              		.type	KCipherVecAesNiEncryptEcb, @function
- 735              	KCipherVecAesNiEncryptEcb:
- 736              	.LFB616:
- 303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 22
-
-
- 305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ====================
- 306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * longer runs of multiple blocks.
- 307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * The algorithms are well defined and standard in most cases
- 309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * These aremore or elss equivalent to class functions as they do not depend upon
- 311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * the operation of the cipher and the algorithms are independent of anything about
- 312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * the cipher other than its block size.
- 313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT: plain text block
- 315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT: cipher text block
- 316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * EK: encryption key
- 317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * DK: decryption key (might be sthe same as EK)
- 318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * ENC: encrypt cipher function on a block using a key
- 319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * DEC: decrypt cipher function on a block using a key
- 320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * IV: initialization vector - used as feedback for chaining
- 321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * N:  number used once (nonce)
- 322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB: feedback is the next IV in a chained/feedback mode
- 323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* -----
- 327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * NOTE:
- 328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * 'in' can be the same as 'out' but other overlaps are dangers as a block at a
- 329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * time is written. The code does not look for overlaps at this point.
- 330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Electronic Code Book - simple cipher with no chaining feedback  just iterate
- 334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * simple encrypt/decrypt with the plain, text, cipher text and key/
- 335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = ENC (PT,EK)
- 337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = DEC (CT,DK)
- 338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* -----
- 341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * NOTE: currently an implmentation detail limits us to 8192 bit cipher block
- 342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * size.  Changing MAX_BLOCK_SIZE in cipher.c can up that limit without 
- 343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * causing any other compatibility issues. 
- 344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Two local byte arrays are defined on the stack of 1024 bytes or 8192 bits.
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_cou
- 349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 737              		.loc 1 349 0
- 738              		.cfi_startproc
- 739 05fd 55       		pushq	%rbp
- 740              	.LCFI30:
- 741              		.cfi_def_cfa_offset 16
- 742 05fe 4889E5   		movq	%rsp, %rbp
- 743              		.cfi_offset 6, -16
- 744              	.LCFI31:
- 745              		.cfi_def_cfa_register 6
- 746 0601 4883EC30 		subq	$48, %rsp
- 747 0605 48897DE8 		movq	%rdi, -24(%rbp)
- 748 0609 488975E0 		movq	%rsi, -32(%rbp)
-
GAS LISTING /tmp/ccWvEaWW.s 			page 23
-
-
- 749 060d 488955D8 		movq	%rdx, -40(%rbp)
- 750 0611 894DD4   		movl	%ecx, -44(%rbp)
- 350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 751              		.loc 1 353 0
- 752 0614 488B45E0 		movq	-32(%rbp), %rax
- 753 0618 488945F0 		movq	%rax, -16(%rbp)
- 754 061c 488B45D8 		movq	-40(%rbp), %rax
- 755 0620 488945F8 		movq	%rax, -8(%rbp)
- 756 0624 EB31     		jmp	.L59
- 757              	.L60:
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CMEMBER(EncryptV1Int)(self, pin, pout);
- 758              		.loc 1 357 0
- 759 0626 488B55F8 		movq	-8(%rbp), %rdx
- 760 062a 488B4DF0 		movq	-16(%rbp), %rcx
- 761 062e 488B45E8 		movq	-24(%rbp), %rax
- 762 0632 4889CE   		movq	%rcx, %rsi
- 763 0635 4889C7   		movq	%rax, %rdi
- 764 0638 E84BFEFF 		call	KCipherVecAesNiEncryptV1Int
- 764      FF
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 765              		.loc 1 355 0
- 766 063d 488B45E8 		movq	-24(%rbp), %rax
- 767 0641 8B4004   		movl	4(%rax), %eax
- 768 0644 89C0     		mov	%eax, %eax
- 769 0646 480145F0 		addq	%rax, -16(%rbp)
- 770 064a 488B45E8 		movq	-24(%rbp), %rax
- 771 064e 8B4004   		movl	4(%rax), %eax
- 772 0651 89C0     		mov	%eax, %eax
- 773 0653 480145F8 		addq	%rax, -8(%rbp)
- 774              	.L59:
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 775              		.loc 1 354 0
- 776 0657 837DD400 		cmpl	$0, -44(%rbp)
- 777 065b 0F95C0   		setne	%al
- 778 065e 836DD401 		subl	$1, -44(%rbp)
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 779              		.loc 1 353 0
- 780 0662 84C0     		testb	%al, %al
- 781 0664 75C0     		jne	.L60
- 358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 782              		.loc 1 359 0
- 783 0666 B8000000 		movl	$0, %eax
- 783      00
- 360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 784              		.loc 1 360 0
- 785 066b C9       		leave
- 786 066c C3       		ret
- 787              		.cfi_endproc
- 788              	.LFE616:
- 789              		.size	KCipherVecAesNiEncryptEcb, .-KCipherVecAesNiEncryptEcb
-
GAS LISTING /tmp/ccWvEaWW.s 			page 24
-
-
- 790              		.type	KCipherVecAesNiDecryptEcb, @function
- 791              	KCipherVecAesNiDecryptEcb:
- 792              	.LFB617:
- 361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_cou
- 365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 793              		.loc 1 365 0
- 794              		.cfi_startproc
- 795 066d 55       		pushq	%rbp
- 796              	.LCFI32:
- 797              		.cfi_def_cfa_offset 16
- 798 066e 4889E5   		movq	%rsp, %rbp
- 799              		.cfi_offset 6, -16
- 800              	.LCFI33:
- 801              		.cfi_def_cfa_register 6
- 802 0671 4883EC30 		subq	$48, %rsp
- 803 0675 48897DE8 		movq	%rdi, -24(%rbp)
- 804 0679 488975E0 		movq	%rsi, -32(%rbp)
- 805 067d 488955D8 		movq	%rdx, -40(%rbp)
- 806 0681 894DD4   		movl	%ecx, -44(%rbp)
- 366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 807              		.loc 1 369 0
- 808 0684 488B45E0 		movq	-32(%rbp), %rax
- 809 0688 488945F0 		movq	%rax, -16(%rbp)
- 810 068c 488B45D8 		movq	-40(%rbp), %rax
- 811 0690 488945F8 		movq	%rax, -8(%rbp)
- 812 0694 EB31     		jmp	.L63
- 813              	.L64:
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CMEMBER(DecryptV1Int)(self, pin, pout);
- 814              		.loc 1 373 0
- 815 0696 488B55F8 		movq	-8(%rbp), %rdx
- 816 069a 488B4DF0 		movq	-16(%rbp), %rcx
- 817 069e 488B45E8 		movq	-24(%rbp), %rax
- 818 06a2 4889CE   		movq	%rcx, %rsi
- 819 06a5 4889C7   		movq	%rax, %rdi
- 820 06a8 E82EFEFF 		call	KCipherVecAesNiDecryptV1Int
- 820      FF
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 821              		.loc 1 371 0
- 822 06ad 488B45E8 		movq	-24(%rbp), %rax
- 823 06b1 8B4004   		movl	4(%rax), %eax
- 824 06b4 89C0     		mov	%eax, %eax
- 825 06b6 480145F0 		addq	%rax, -16(%rbp)
- 826 06ba 488B45E8 		movq	-24(%rbp), %rax
- 827 06be 8B4004   		movl	4(%rax), %eax
- 828 06c1 89C0     		mov	%eax, %eax
- 829 06c3 480145F8 		addq	%rax, -8(%rbp)
- 830              	.L63:
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 25
-
-
- 831              		.loc 1 370 0
- 832 06c7 837DD400 		cmpl	$0, -44(%rbp)
- 833 06cb 0F95C0   		setne	%al
- 834 06ce 836DD401 		subl	$1, -44(%rbp)
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 835              		.loc 1 369 0
- 836 06d2 84C0     		testb	%al, %al
- 837 06d4 75C0     		jne	.L64
- 374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 838              		.loc 1 376 0
- 839 06d6 B8000000 		movl	$0, %eax
- 839      00
- 377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 840              		.loc 1 377 0
- 841 06db C9       		leave
- 842 06dc C3       		ret
- 843              		.cfi_endproc
- 844              	.LFE617:
- 845              		.size	KCipherVecAesNiDecryptEcb, .-KCipherVecAesNiDecryptEcb
- 846              		.type	KCipherVecAesNiEncryptCbc, @function
- 847              	KCipherVecAesNiEncryptCbc:
- 848              	.LFB618:
- 378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Cipher-Block Chaining
- 382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = (FB = ENC (PT^IV, EK))
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = DEC ((FB = CT), DK)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 849              		.loc 1 387 0
- 850              		.cfi_startproc
- 851 06dd 55       		pushq	%rbp
- 852              	.LCFI34:
- 853              		.cfi_def_cfa_offset 16
- 854 06de 4889E5   		movq	%rsp, %rbp
- 855              		.cfi_offset 6, -16
- 856              	.LCFI35:
- 857              		.cfi_def_cfa_register 6
- 858 06e1 4883EC50 		subq	$80, %rsp
- 859 06e5 48897DC8 		movq	%rdi, -56(%rbp)
- 860 06e9 488975C0 		movq	%rsi, -64(%rbp)
- 861 06ed 488955B8 		movq	%rdx, -72(%rbp)
- 862 06f1 894DB4   		movl	%ecx, -76(%rbp)
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = CipherVecIn (self->dad.encrypt_ivec);
-
GAS LISTING /tmp/ccWvEaWW.s 			page 26
-
-
- 863              		.loc 1 396 0
- 864 06f4 488B45C8 		movq	-56(%rbp), %rax
- 865 06f8 488B4028 		movq	40(%rax), %rax
- 866 06fc 4889C7   		movq	%rax, %rdi
- 867 06ff E8FCF8FF 		call	CipherVecIn
- 867      FF
- 868 0704 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 868      E0
- 397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 869              		.loc 1 399 0
- 870 0709 488B45C0 		movq	-64(%rbp), %rax
- 871 070d 488945F0 		movq	%rax, -16(%rbp)
- 872 0711 488B45B8 		movq	-72(%rbp), %rax
- 873 0715 488945F8 		movq	%rax, -8(%rbp)
- 874 0719 EB65     		jmp	.L67
- 875              	.L68:
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 876              		.loc 1 403 0
- 877 071b 488B45F0 		movq	-16(%rbp), %rax
- 878 071f 4889C7   		movq	%rax, %rdi
- 879 0722 E8D9F8FF 		call	CipherVecIn
- 879      FF
- 880 0727 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 880      D0
- 404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 881              		.loc 1 404 0
- 882 072c F30F6F45 		movdqu	-32(%rbp), %xmm0
- 882      E0
- 883 0731 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 883      D0
- 884 0736 660FEFC1 		pxor	%xmm1, %xmm0
- 885 073a F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 885      D0
- 405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, cv);
- 886              		.loc 1 405 0
- 887 073f F30F6F45 		movdqu	-48(%rbp), %xmm0
- 887      D0
- 888 0744 488B45C8 		movq	-56(%rbp), %rax
- 889 0748 4889C7   		movq	%rax, %rdi
- 890 074b E8EAFCFF 		call	KCipherVecAesNiEncryptV1
- 890      FF
- 891 0750 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 891      E0
- 406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (ivec, pout);
- 892              		.loc 1 406 0
- 893 0755 488B45F8 		movq	-8(%rbp), %rax
- 894 0759 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 894      E0
- 895 075e 4889C7   		movq	%rax, %rdi
- 896 0761 E8B9F8FF 		call	CipherVecOut
- 896      FF
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
-
GAS LISTING /tmp/ccWvEaWW.s 			page 27
-
-
- 897              		.loc 1 401 0
- 898 0766 488B45C8 		movq	-56(%rbp), %rax
- 899 076a 8B4004   		movl	4(%rax), %eax
- 900 076d 89C0     		mov	%eax, %eax
- 901 076f 480145F0 		addq	%rax, -16(%rbp)
- 902 0773 488B45C8 		movq	-56(%rbp), %rax
- 903 0777 8B4004   		movl	4(%rax), %eax
- 904 077a 89C0     		mov	%eax, %eax
- 905 077c 480145F8 		addq	%rax, -8(%rbp)
- 906              	.L67:
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 907              		.loc 1 400 0
- 908 0780 837DB400 		cmpl	$0, -76(%rbp)
- 909 0784 0F95C0   		setne	%al
- 910 0787 836DB401 		subl	$1, -76(%rbp)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 911              		.loc 1 399 0
- 912 078b 84C0     		testb	%al, %al
- 913 078d 758C     		jne	.L68
- 407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut (ivec, self->dad.encrypt_ivec);
- 914              		.loc 1 412 0
- 915 078f 488B45C8 		movq	-56(%rbp), %rax
- 916 0793 488B4028 		movq	40(%rax), %rax
- 917 0797 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 917      E0
- 918 079c 4889C7   		movq	%rax, %rdi
- 919 079f E87BF8FF 		call	CipherVecOut
- 919      FF
- 413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 920              		.loc 1 415 0
- 921 07a4 B8000000 		movl	$0, %eax
- 921      00
- 416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }    
- 922              		.loc 1 416 0
- 923 07a9 C9       		leave
- 924 07aa C3       		ret
- 925              		.cfi_endproc
- 926              	.LFE618:
- 927              		.size	KCipherVecAesNiEncryptCbc, .-KCipherVecAesNiEncryptCbc
- 928              		.type	KCipherVecAesNiDecryptCbc, @function
- 929              	KCipherVecAesNiDecryptCbc:
- 930              	.LFB619:
- 417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 931              		.loc 1 421 0
- 932              		.cfi_startproc
- 933 07ab 55       		pushq	%rbp
-
GAS LISTING /tmp/ccWvEaWW.s 			page 28
-
-
- 934              	.LCFI36:
- 935              		.cfi_def_cfa_offset 16
- 936 07ac 4889E5   		movq	%rsp, %rbp
- 937              		.cfi_offset 6, -16
- 938              	.LCFI37:
- 939              		.cfi_def_cfa_register 6
- 940 07af 4883EC60 		subq	$96, %rsp
- 941 07b3 48897DB8 		movq	%rdi, -72(%rbp)
- 942 07b7 488975B0 		movq	%rsi, -80(%rbp)
- 943 07bb 488955A8 		movq	%rdx, -88(%rbp)
- 944 07bf 894DA4   		movl	%ecx, -92(%rbp)
- 422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = CipherVecIn (self->dad.decrypt_ivec);
- 945              		.loc 1 427 0
- 946 07c2 488B45B8 		movq	-72(%rbp), %rax
- 947 07c6 488B4030 		movq	48(%rax), %rax
- 948 07ca 4889C7   		movq	%rax, %rdi
- 949 07cd E82EF8FF 		call	CipherVecIn
- 949      FF
- 950 07d2 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 950      D0
- 428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 951              		.loc 1 429 0
- 952 07d7 488B45B0 		movq	-80(%rbp), %rax
- 953 07db 488945E0 		movq	%rax, -32(%rbp)
- 954 07df 488B45A8 		movq	-88(%rbp), %rax
- 955 07e3 488945E8 		movq	%rax, -24(%rbp)
- 956 07e7 EB6F     		jmp	.L71
- 957              	.L72:
- 958              	.LBB2:
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 959              		.loc 1 435 0
- 960 07e9 488B45E0 		movq	-32(%rbp), %rax
- 961 07ed 4889C7   		movq	%rax, %rdi
- 962 07f0 E80BF8FF 		call	CipherVecIn
- 962      FF
- 963 07f5 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 963      C0
- 436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = cv;
- 438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, temp);
- 439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, cv);
- 964              		.loc 1 440 0
- 965 07fa F30F6F45 		movdqu	-64(%rbp), %xmm0
- 965      C0
- 966 07ff 488B45B8 		movq	-72(%rbp), %rax
-
GAS LISTING /tmp/ccWvEaWW.s 			page 29
-
-
- 967 0803 4889C7   		movq	%rax, %rdi
- 968 0806 E856FCFF 		call	KCipherVecAesNiDecryptV1
- 968      FF
- 969 080b F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 969      F0
- 441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp ^= ivec;
- 970              		.loc 1 442 0
- 971 0810 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 971      D0
- 972 0815 F30F6F4D 		movdqu	-16(%rbp), %xmm1
- 972      F0
- 973 081a 660FEFC1 		pxor	%xmm1, %xmm0
- 974 081e F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 974      F0
- 443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 975              		.loc 1 443 0
- 976 0823 488B45E8 		movq	-24(%rbp), %rax
- 977 0827 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 977      F0
- 978 082c 4889C7   		movq	%rax, %rdi
- 979 082f E8EBF7FF 		call	CipherVecOut
- 979      FF
- 444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = cv;
- 980              		.loc 1 444 0
- 981 0834 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 981      C0
- 982 0839 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 982      D0
- 983              	.LBE2:
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 984              		.loc 1 431 0
- 985 083e 488B45B8 		movq	-72(%rbp), %rax
- 986 0842 8B4004   		movl	4(%rax), %eax
- 987 0845 89C0     		mov	%eax, %eax
- 988 0847 480145E0 		addq	%rax, -32(%rbp)
- 989 084b 488B45B8 		movq	-72(%rbp), %rax
- 990 084f 8B4004   		movl	4(%rax), %eax
- 991 0852 89C0     		mov	%eax, %eax
- 992 0854 480145E8 		addq	%rax, -24(%rbp)
- 993              	.L71:
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 994              		.loc 1 430 0
- 995 0858 837DA400 		cmpl	$0, -92(%rbp)
- 996 085c 0F95C0   		setne	%al
- 997 085f 836DA401 		subl	$1, -92(%rbp)
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 998              		.loc 1 429 0
- 999 0863 84C0     		testb	%al, %al
- 1000 0865 7582     		jne	.L72
- 445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.decrypt_ivec = ivec;
- 1001              		.loc 1 447 0
- 1002 0867 488B45B8 		movq	-72(%rbp), %rax
- 1003 086b 488B4030 		movq	48(%rax), %rax
- 1004 086f F30F6F45 		movdqu	-48(%rbp), %xmm0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 30
-
-
- 1004      D0
- 1005 0874 F30F7F00 		movdqu	%xmm0, (%rax)
- 448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1006              		.loc 1 448 0
- 1007 0878 B8000000 		movl	$0, %eax
- 1007      00
- 449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1008              		.loc 1 449 0
- 1009 087d C9       		leave
- 1010 087e C3       		ret
- 1011              		.cfi_endproc
- 1012              	.LFE619:
- 1013              		.size	KCipherVecAesNiDecryptCbc, .-KCipherVecAesNiDecryptCbc
- 1014              		.type	KCipherVecAesNiEncryptPcbc, @function
- 1015              	KCipherVecAesNiEncryptPcbc:
- 1016              	.LFB620:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Propagating cipher-block chaining
- 454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB = PT ^ (CT = ENC ((PT^IV), EK))
- 455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB = CT ^ (PT = DEC (CT,DK) ^ IV)
- 456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1017              		.loc 1 459 0
- 1018              		.cfi_startproc
- 1019 087f 55       		pushq	%rbp
- 1020              	.LCFI38:
- 1021              		.cfi_def_cfa_offset 16
- 1022 0880 4889E5   		movq	%rsp, %rbp
- 1023              		.cfi_offset 6, -16
- 1024              	.LCFI39:
- 1025              		.cfi_def_cfa_register 6
- 1026 0883 4883EC60 		subq	$96, %rsp
- 1027 0887 48897DB8 		movq	%rdi, -72(%rbp)
- 1028 088b 488975B0 		movq	%rsi, -80(%rbp)
- 1029 088f 488955A8 		movq	%rdx, -88(%rbp)
- 1030 0893 894DA4   		movl	%ecx, -92(%rbp)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1031              		.loc 1 466 0
- 1032 0896 488B45B8 		movq	-72(%rbp), %rax
- 1033 089a 488B4028 		movq	40(%rax), %rax
- 1034 089e 660F6F00 		movdqa	(%rax), %xmm0
- 1035 08a2 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1035      D0
- 467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1036              		.loc 1 468 0
- 1037 08a7 488B45B0 		movq	-80(%rbp), %rax
-
GAS LISTING /tmp/ccWvEaWW.s 			page 31
-
-
- 1038 08ab 488945E0 		movq	%rax, -32(%rbp)
- 1039 08af 488B45A8 		movq	-88(%rbp), %rax
- 1040 08b3 488945E8 		movq	%rax, -24(%rbp)
- 1041 08b7 EB78     		jmp	.L75
- 1042              	.L76:
- 1043              	.LBB3:
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1044              		.loc 1 474 0
- 1045 08b9 488B45E0 		movq	-32(%rbp), %rax
- 1046 08bd 4889C7   		movq	%rax, %rdi
- 1047 08c0 E83BF7FF 		call	CipherVecIn
- 1047      FF
- 1048 08c5 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 1048      C0
- 475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = cv ^ ivec;
- 1049              		.loc 1 475 0
- 1050 08ca F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1050      D0
- 1051 08cf F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 1051      C0
- 1052 08d4 660FEFC1 		pxor	%xmm1, %xmm0
- 1053 08d8 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1053      F0
- 476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(EncryptV1)(self, temp); 
- 1054              		.loc 1 476 0
- 1055 08dd F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1055      F0
- 1056 08e2 488B45B8 		movq	-72(%rbp), %rax
- 1057 08e6 4889C7   		movq	%rax, %rdi
- 1058 08e9 E84CFBFF 		call	KCipherVecAesNiEncryptV1
- 1058      FF
- 1059 08ee F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1059      F0
- 477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = cv ^ temp;
- 1060              		.loc 1 477 0
- 1061 08f3 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1061      F0
- 1062 08f8 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 1062      C0
- 1063 08fd 660FEFC1 		pxor	%xmm1, %xmm0
- 1064 0901 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1064      D0
- 478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 1065              		.loc 1 478 0
- 1066 0906 488B45E8 		movq	-24(%rbp), %rax
- 1067 090a F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1067      F0
- 1068 090f 4889C7   		movq	%rax, %rdi
- 1069 0912 E808F7FF 		call	CipherVecOut
- 1069      FF
- 1070              	.LBE3:
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
-
GAS LISTING /tmp/ccWvEaWW.s 			page 32
-
-
- 1071              		.loc 1 470 0
- 1072 0917 488B45B8 		movq	-72(%rbp), %rax
- 1073 091b 8B4004   		movl	4(%rax), %eax
- 1074 091e 89C0     		mov	%eax, %eax
- 1075 0920 480145E0 		addq	%rax, -32(%rbp)
- 1076 0924 488B45B8 		movq	-72(%rbp), %rax
- 1077 0928 8B4004   		movl	4(%rax), %eax
- 1078 092b 89C0     		mov	%eax, %eax
- 1079 092d 480145E8 		addq	%rax, -24(%rbp)
- 1080              	.L75:
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1081              		.loc 1 469 0
- 1082 0931 837DA400 		cmpl	$0, -92(%rbp)
- 1083 0935 0F95C0   		setne	%al
- 1084 0938 836DA401 		subl	$1, -92(%rbp)
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1085              		.loc 1 468 0
- 1086 093c 84C0     		testb	%al, %al
- 1087 093e 0F8575FF 		jne	.L76
- 1087      FFFF
- 479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1088              		.loc 1 481 0
- 1089 0944 488B45B8 		movq	-72(%rbp), %rax
- 1090 0948 488B4028 		movq	40(%rax), %rax
- 1091 094c F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1091      D0
- 1092 0951 F30F7F00 		movdqu	%xmm0, (%rax)
- 482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1093              		.loc 1 483 0
- 1094 0955 B8000000 		movl	$0, %eax
- 1094      00
- 484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1095              		.loc 1 487 0
- 1096 095a C9       		leave
- 1097 095b C3       		ret
- 1098              		.cfi_endproc
- 1099              	.LFE620:
- 1100              		.size	KCipherVecAesNiEncryptPcbc, .-KCipherVecAesNiEncryptPcbc
- 1101              		.type	KCipherVecAesNiDecryptPcbc, @function
- 1102              	KCipherVecAesNiDecryptPcbc:
- 1103              	.LFB621:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1104              		.loc 1 492 0
- 1105              		.cfi_startproc
- 1106 095c 55       		pushq	%rbp
- 1107              	.LCFI40:
- 1108              		.cfi_def_cfa_offset 16
-
GAS LISTING /tmp/ccWvEaWW.s 			page 33
-
-
- 1109 095d 4889E5   		movq	%rsp, %rbp
- 1110              		.cfi_offset 6, -16
- 1111              	.LCFI41:
- 1112              		.cfi_def_cfa_register 6
- 1113 0960 4883EC60 		subq	$96, %rsp
- 1114 0964 48897DB8 		movq	%rdi, -72(%rbp)
- 1115 0968 488975B0 		movq	%rsi, -80(%rbp)
- 1116 096c 488955A8 		movq	%rdx, -88(%rbp)
- 1117 0970 894DA4   		movl	%ecx, -92(%rbp)
- 493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1118              		.loc 1 499 0
- 1119 0973 488B45B8 		movq	-72(%rbp), %rax
- 1120 0977 488B4028 		movq	40(%rax), %rax
- 1121 097b 660F6F00 		movdqa	(%rax), %xmm0
- 1122 097f F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1122      D0
- 500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1123              		.loc 1 501 0
- 1124 0984 488B45B0 		movq	-80(%rbp), %rax
- 1125 0988 488945E0 		movq	%rax, -32(%rbp)
- 1126 098c 488B45A8 		movq	-88(%rbp), %rax
- 1127 0990 488945E8 		movq	%rax, -24(%rbp)
- 1128 0994 EB65     		jmp	.L79
- 1129              	.L80:
- 1130              	.LBB4:
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1131              		.loc 1 507 0
- 1132 0996 488B45E0 		movq	-32(%rbp), %rax
- 1133 099a 4889C7   		movq	%rax, %rdi
- 1134 099d E85EF6FF 		call	CipherVecIn
- 1134      FF
- 1135 09a2 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 1135      C0
- 508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, cv);
- 1136              		.loc 1 508 0
- 1137 09a7 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 1137      C0
- 1138 09ac 488B45B8 		movq	-72(%rbp), %rax
- 1139 09b0 4889C7   		movq	%rax, %rdi
- 1140 09b3 E8A9FAFF 		call	KCipherVecAesNiDecryptV1
- 1140      FF
- 1141 09b8 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1141      F0
- 509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec ^= temp;
- 1142              		.loc 1 509 0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 34
-
-
- 1143 09bd F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1143      F0
- 1144 09c2 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1144      D0
- 1145 09c7 660FEFC1 		pxor	%xmm1, %xmm0
- 1146 09cb F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1146      D0
- 510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 1147              		.loc 1 510 0
- 1148 09d0 488B45E8 		movq	-24(%rbp), %rax
- 1149 09d4 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1149      F0
- 1150 09d9 4889C7   		movq	%rax, %rdi
- 1151 09dc E83EF6FF 		call	CipherVecOut
- 1151      FF
- 1152              	.LBE4:
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1153              		.loc 1 503 0
- 1154 09e1 488B45B8 		movq	-72(%rbp), %rax
- 1155 09e5 8B4004   		movl	4(%rax), %eax
- 1156 09e8 89C0     		mov	%eax, %eax
- 1157 09ea 480145E0 		addq	%rax, -32(%rbp)
- 1158 09ee 488B45B8 		movq	-72(%rbp), %rax
- 1159 09f2 8B4004   		movl	4(%rax), %eax
- 1160 09f5 89C0     		mov	%eax, %eax
- 1161 09f7 480145E8 		addq	%rax, -24(%rbp)
- 1162              	.L79:
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1163              		.loc 1 502 0
- 1164 09fb 837DA400 		cmpl	$0, -92(%rbp)
- 1165 09ff 0F95C0   		setne	%al
- 1166 0a02 836DA401 		subl	$1, -92(%rbp)
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1167              		.loc 1 501 0
- 1168 0a06 84C0     		testb	%al, %al
- 1169 0a08 758C     		jne	.L80
- 511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1170              		.loc 1 513 0
- 1171 0a0a 488B45B8 		movq	-72(%rbp), %rax
- 1172 0a0e 488B4028 		movq	40(%rax), %rax
- 1173 0a12 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1173      D0
- 1174 0a17 F30F7F00 		movdqu	%xmm0, (%rax)
- 514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1175              		.loc 1 515 0
- 1176 0a1b B8000000 		movl	$0, %eax
- 1176      00
- 516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1177              		.loc 1 519 0
- 1178 0a20 C9       		leave
- 1179 0a21 C3       		ret
-
GAS LISTING /tmp/ccWvEaWW.s 			page 35
-
-
- 1180              		.cfi_endproc
- 1181              	.LFE621:
- 1182              		.size	KCipherVecAesNiDecryptPcbc, .-KCipherVecAesNiDecryptPcbc
- 1183              		.type	KCipherVecAesNiEncryptCfb, @function
- 1184              	KCipherVecAesNiEncryptCfb:
- 1185              	.LFB622:
- 520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Cipher Feedback
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = (FB = PT) ^ ENC (IV, EK))
- 525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = (FB = CT) ^ DEC (IV, DK)
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1186              		.loc 1 529 0
- 1187              		.cfi_startproc
- 1188 0a22 55       		pushq	%rbp
- 1189              	.LCFI42:
- 1190              		.cfi_def_cfa_offset 16
- 1191 0a23 4889E5   		movq	%rsp, %rbp
- 1192              		.cfi_offset 6, -16
- 1193              	.LCFI43:
- 1194              		.cfi_def_cfa_register 6
- 1195 0a26 4883EC50 		subq	$80, %rsp
- 1196 0a2a 48897DC8 		movq	%rdi, -56(%rbp)
- 1197 0a2e 488975C0 		movq	%rsi, -64(%rbp)
- 1198 0a32 488955B8 		movq	%rdx, -72(%rbp)
- 1199 0a36 894DB4   		movl	%ecx, -76(%rbp)
- 530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1200              		.loc 1 536 0
- 1201 0a39 488B45C8 		movq	-56(%rbp), %rax
- 1202 0a3d 488B4028 		movq	40(%rax), %rax
- 1203 0a41 660F6F00 		movdqa	(%rax), %xmm0
- 1204 0a45 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1204      E0
- 537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1205              		.loc 1 538 0
- 1206 0a4a 488B45C0 		movq	-64(%rbp), %rax
- 1207 0a4e 488945F0 		movq	%rax, -16(%rbp)
- 1208 0a52 488B45B8 		movq	-72(%rbp), %rax
- 1209 0a56 488945F8 		movq	%rax, -8(%rbp)
- 1210 0a5a EB65     		jmp	.L83
- 1211              	.L84:
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, ivec); 
- 1212              		.loc 1 542 0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 36
-
-
- 1213 0a5c F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1213      E0
- 1214 0a61 488B45C8 		movq	-56(%rbp), %rax
- 1215 0a65 4889C7   		movq	%rax, %rdi
- 1216 0a68 E8CDF9FF 		call	KCipherVecAesNiEncryptV1
- 1216      FF
- 1217 0a6d F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1217      E0
- 543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1218              		.loc 1 543 0
- 1219 0a72 488B45F0 		movq	-16(%rbp), %rax
- 1220 0a76 4889C7   		movq	%rax, %rdi
- 1221 0a79 E882F5FF 		call	CipherVecIn
- 1221      FF
- 1222 0a7e F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1222      D0
- 544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec ^= cv;
- 1223              		.loc 1 544 0
- 1224 0a83 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1224      D0
- 1225 0a88 F30F6F4D 		movdqu	-32(%rbp), %xmm1
- 1225      E0
- 1226 0a8d 660FEFC1 		pxor	%xmm1, %xmm0
- 1227 0a91 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1227      E0
- 545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (ivec, pout);
- 1228              		.loc 1 545 0
- 1229 0a96 488B45F8 		movq	-8(%rbp), %rax
- 1230 0a9a F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1230      E0
- 1231 0a9f 4889C7   		movq	%rax, %rdi
- 1232 0aa2 E878F5FF 		call	CipherVecOut
- 1232      FF
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1233              		.loc 1 540 0
- 1234 0aa7 488B45C8 		movq	-56(%rbp), %rax
- 1235 0aab 8B4004   		movl	4(%rax), %eax
- 1236 0aae 89C0     		mov	%eax, %eax
- 1237 0ab0 480145F0 		addq	%rax, -16(%rbp)
- 1238 0ab4 488B45C8 		movq	-56(%rbp), %rax
- 1239 0ab8 8B4004   		movl	4(%rax), %eax
- 1240 0abb 89C0     		mov	%eax, %eax
- 1241 0abd 480145F8 		addq	%rax, -8(%rbp)
- 1242              	.L83:
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1243              		.loc 1 539 0
- 1244 0ac1 837DB400 		cmpl	$0, -76(%rbp)
- 1245 0ac5 0F95C0   		setne	%al
- 1246 0ac8 836DB401 		subl	$1, -76(%rbp)
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1247              		.loc 1 538 0
- 1248 0acc 84C0     		testb	%al, %al
- 1249 0ace 758C     		jne	.L84
- 546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1250              		.loc 1 548 0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 37
-
-
- 1251 0ad0 488B45C8 		movq	-56(%rbp), %rax
- 1252 0ad4 488B4028 		movq	40(%rax), %rax
- 1253 0ad8 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1253      E0
- 1254 0add F30F7F00 		movdqu	%xmm0, (%rax)
- 549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1255              		.loc 1 550 0
- 1256 0ae1 B8000000 		movl	$0, %eax
- 1256      00
- 551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1257              		.loc 1 554 0
- 1258 0ae6 C9       		leave
- 1259 0ae7 C3       		ret
- 1260              		.cfi_endproc
- 1261              	.LFE622:
- 1262              		.size	KCipherVecAesNiEncryptCfb, .-KCipherVecAesNiEncryptCfb
- 1263              		.type	KCipherVecAesNiDecryptCfb, @function
- 1264              	KCipherVecAesNiDecryptCfb:
- 1265              	.LFB623:
- 555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1266              		.loc 1 559 0
- 1267              		.cfi_startproc
- 1268 0ae8 55       		pushq	%rbp
- 1269              	.LCFI44:
- 1270              		.cfi_def_cfa_offset 16
- 1271 0ae9 4889E5   		movq	%rsp, %rbp
- 1272              		.cfi_offset 6, -16
- 1273              	.LCFI45:
- 1274              		.cfi_def_cfa_register 6
- 1275 0aec 4883EC50 		subq	$80, %rsp
- 1276 0af0 48897DC8 		movq	%rdi, -56(%rbp)
- 1277 0af4 488975C0 		movq	%rsi, -64(%rbp)
- 1278 0af8 488955B8 		movq	%rdx, -72(%rbp)
- 1279 0afc 894DB4   		movl	%ecx, -76(%rbp)
- 560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1280              		.loc 1 566 0
- 1281 0aff 488B45C8 		movq	-56(%rbp), %rax
- 1282 0b03 488B4028 		movq	40(%rax), %rax
- 1283 0b07 660F6F00 		movdqa	(%rax), %xmm0
- 1284 0b0b F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1284      E0
- 567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
-
GAS LISTING /tmp/ccWvEaWW.s 			page 38
-
-
- 1285              		.loc 1 568 0
- 1286 0b10 488B45C0 		movq	-64(%rbp), %rax
- 1287 0b14 488945F0 		movq	%rax, -16(%rbp)
- 1288 0b18 488B45B8 		movq	-72(%rbp), %rax
- 1289 0b1c 488945F8 		movq	%rax, -8(%rbp)
- 1290 0b20 EB65     		jmp	.L87
- 1291              	.L88:
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CMEMBER(EncryptV1)(self, ivec); 
- 1292              		.loc 1 572 0
- 1293 0b22 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1293      E0
- 1294 0b27 488B45C8 		movq	-56(%rbp), %rax
- 1295 0b2b 4889C7   		movq	%rax, %rdi
- 1296 0b2e E807F9FF 		call	KCipherVecAesNiEncryptV1
- 1296      FF
- 1297 0b33 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1297      D0
- 573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CipherVecIn (pin);
- 1298              		.loc 1 573 0
- 1299 0b38 488B45F0 		movq	-16(%rbp), %rax
- 1300 0b3c 4889C7   		movq	%rax, %rdi
- 1301 0b3f E8BCF4FF 		call	CipherVecIn
- 1301      FF
- 1302 0b44 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1302      E0
- 574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 1303              		.loc 1 574 0
- 1304 0b49 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1304      E0
- 1305 0b4e F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1305      D0
- 1306 0b53 660FEFC1 		pxor	%xmm1, %xmm0
- 1307 0b57 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1307      D0
- 575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (cv, pout);
- 1308              		.loc 1 575 0
- 1309 0b5c 488B45F8 		movq	-8(%rbp), %rax
- 1310 0b60 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1310      D0
- 1311 0b65 4889C7   		movq	%rax, %rdi
- 1312 0b68 E8B2F4FF 		call	CipherVecOut
- 1312      FF
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1313              		.loc 1 570 0
- 1314 0b6d 488B45C8 		movq	-56(%rbp), %rax
- 1315 0b71 8B4004   		movl	4(%rax), %eax
- 1316 0b74 89C0     		mov	%eax, %eax
- 1317 0b76 480145F0 		addq	%rax, -16(%rbp)
- 1318 0b7a 488B45C8 		movq	-56(%rbp), %rax
- 1319 0b7e 8B4004   		movl	4(%rax), %eax
- 1320 0b81 89C0     		mov	%eax, %eax
- 1321 0b83 480145F8 		addq	%rax, -8(%rbp)
- 1322              	.L87:
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 39
-
-
- 1323              		.loc 1 569 0
- 1324 0b87 837DB400 		cmpl	$0, -76(%rbp)
- 1325 0b8b 0F95C0   		setne	%al
- 1326 0b8e 836DB401 		subl	$1, -76(%rbp)
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1327              		.loc 1 568 0
- 1328 0b92 84C0     		testb	%al, %al
- 1329 0b94 758C     		jne	.L88
- 576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1330              		.loc 1 578 0
- 1331 0b96 488B45C8 		movq	-56(%rbp), %rax
- 1332 0b9a 488B4028 		movq	40(%rax), %rax
- 1333 0b9e F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1333      E0
- 1334 0ba3 F30F7F00 		movdqu	%xmm0, (%rax)
- 579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1335              		.loc 1 580 0
- 1336 0ba7 B8000000 		movl	$0, %eax
- 1336      00
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1337              		.loc 1 584 0
- 1338 0bac C9       		leave
- 1339 0bad C3       		ret
- 1340              		.cfi_endproc
- 1341              	.LFE623:
- 1342              		.size	KCipherVecAesNiDecryptCfb, .-KCipherVecAesNiDecryptCfb
- 1343              		.type	KCipherVecAesNiEncryptOfb, @function
- 1344              	KCipherVecAesNiEncryptOfb:
- 1345              	.LFB624:
- 585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Output Feedback
- 589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = PT ^ (FB = ENC (IV, EK))
- 590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = CT ^ (FB = DEC (IV, DK))
- 591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1346              		.loc 1 594 0
- 1347              		.cfi_startproc
- 1348 0bae 55       		pushq	%rbp
- 1349              	.LCFI46:
- 1350              		.cfi_def_cfa_offset 16
- 1351 0baf 4889E5   		movq	%rsp, %rbp
- 1352              		.cfi_offset 6, -16
- 1353              	.LCFI47:
- 1354              		.cfi_def_cfa_register 6
- 1355 0bb2 4883EC50 		subq	$80, %rsp
- 1356 0bb6 48897DC8 		movq	%rdi, -56(%rbp)
- 1357 0bba 488975C0 		movq	%rsi, -64(%rbp)
-
GAS LISTING /tmp/ccWvEaWW.s 			page 40
-
-
- 1358 0bbe 488955B8 		movq	%rdx, -72(%rbp)
- 1359 0bc2 894DB4   		movl	%ecx, -76(%rbp)
- 595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1360              		.loc 1 601 0
- 1361 0bc5 488B45C8 		movq	-56(%rbp), %rax
- 1362 0bc9 488B4028 		movq	40(%rax), %rax
- 1363 0bcd 660F6F00 		movdqa	(%rax), %xmm0
- 1364 0bd1 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1364      E0
- 602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1365              		.loc 1 603 0
- 1366 0bd6 488B45C0 		movq	-64(%rbp), %rax
- 1367 0bda 488945F0 		movq	%rax, -16(%rbp)
- 1368 0bde 488B45B8 		movq	-72(%rbp), %rax
- 1369 0be2 488945F8 		movq	%rax, -8(%rbp)
- 1370 0be6 EB65     		jmp	.L91
- 1371              	.L92:
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, ivec); 
- 1372              		.loc 1 607 0
- 1373 0be8 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1373      E0
- 1374 0bed 488B45C8 		movq	-56(%rbp), %rax
- 1375 0bf1 4889C7   		movq	%rax, %rdi
- 1376 0bf4 E841F8FF 		call	KCipherVecAesNiEncryptV1
- 1376      FF
- 1377 0bf9 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1377      E0
- 608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1378              		.loc 1 608 0
- 1379 0bfe 488B45F0 		movq	-16(%rbp), %rax
- 1380 0c02 4889C7   		movq	%rax, %rdi
- 1381 0c05 E8F6F3FF 		call	CipherVecIn
- 1381      FF
- 1382 0c0a F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1382      D0
- 609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 1383              		.loc 1 609 0
- 1384 0c0f F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1384      E0
- 1385 0c14 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1385      D0
- 1386 0c19 660FEFC1 		pxor	%xmm1, %xmm0
- 1387 0c1d F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1387      D0
- 610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (cv, pout);
- 1388              		.loc 1 610 0
- 1389 0c22 488B45F8 		movq	-8(%rbp), %rax
-
GAS LISTING /tmp/ccWvEaWW.s 			page 41
-
-
- 1390 0c26 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1390      D0
- 1391 0c2b 4889C7   		movq	%rax, %rdi
- 1392 0c2e E8ECF3FF 		call	CipherVecOut
- 1392      FF
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1393              		.loc 1 605 0
- 1394 0c33 488B45C8 		movq	-56(%rbp), %rax
- 1395 0c37 8B4004   		movl	4(%rax), %eax
- 1396 0c3a 89C0     		mov	%eax, %eax
- 1397 0c3c 480145F0 		addq	%rax, -16(%rbp)
- 1398 0c40 488B45C8 		movq	-56(%rbp), %rax
- 1399 0c44 8B4004   		movl	4(%rax), %eax
- 1400 0c47 89C0     		mov	%eax, %eax
- 1401 0c49 480145F8 		addq	%rax, -8(%rbp)
- 1402              	.L91:
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1403              		.loc 1 604 0
- 1404 0c4d 837DB400 		cmpl	$0, -76(%rbp)
- 1405 0c51 0F95C0   		setne	%al
- 1406 0c54 836DB401 		subl	$1, -76(%rbp)
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1407              		.loc 1 603 0
- 1408 0c58 84C0     		testb	%al, %al
- 1409 0c5a 758C     		jne	.L92
- 611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1410              		.loc 1 613 0
- 1411 0c5c 488B45C8 		movq	-56(%rbp), %rax
- 1412 0c60 488B4028 		movq	40(%rax), %rax
- 1413 0c64 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1413      E0
- 1414 0c69 F30F7F00 		movdqu	%xmm0, (%rax)
- 614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1415              		.loc 1 615 0
- 1416 0c6d B8000000 		movl	$0, %eax
- 1416      00
- 616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1417              		.loc 1 619 0
- 1418 0c72 C9       		leave
- 1419 0c73 C3       		ret
- 1420              		.cfi_endproc
- 1421              	.LFE624:
- 1422              		.size	KCipherVecAesNiEncryptOfb, .-KCipherVecAesNiEncryptOfb
- 1423              		.type	KCipherVecAesNiDecryptOfb, @function
- 1424              	KCipherVecAesNiDecryptOfb:
- 1425              	.LFB625:
- 620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-
GAS LISTING /tmp/ccWvEaWW.s 			page 42
-
-
- 1426              		.loc 1 624 0
- 1427              		.cfi_startproc
- 1428 0c74 55       		pushq	%rbp
- 1429              	.LCFI48:
- 1430              		.cfi_def_cfa_offset 16
- 1431 0c75 4889E5   		movq	%rsp, %rbp
- 1432              		.cfi_offset 6, -16
- 1433              	.LCFI49:
- 1434              		.cfi_def_cfa_register 6
- 1435 0c78 53       		pushq	%rbx
- 1436 0c79 4883EC28 		subq	$40, %rsp
- 1437 0c7d 48897DE8 		movq	%rdi, -24(%rbp)
- 1438 0c81 488975E0 		movq	%rsi, -32(%rbp)
- 1439 0c85 488955D8 		movq	%rdx, -40(%rbp)
- 1440 0c89 894DD4   		movl	%ecx, -44(%rbp)
- 625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return CMEMBER(EncryptOfb)(self, in, out, block_count);
- 1441              		.loc 1 625 0
- 1442 0c8c 8B4DD4   		movl	-44(%rbp), %ecx
- 1443 0c8f 488B55D8 		movq	-40(%rbp), %rdx
- 1444 0c93 488B5DE0 		movq	-32(%rbp), %rbx
- 1445              		.cfi_offset 3, -24
- 1446 0c97 488B45E8 		movq	-24(%rbp), %rax
- 1447 0c9b 4889DE   		movq	%rbx, %rsi
- 1448 0c9e 4889C7   		movq	%rax, %rdi
- 1449 0ca1 E808FFFF 		call	KCipherVecAesNiEncryptOfb
- 1449      FF
- 626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1450              		.loc 1 626 0
- 1451 0ca6 4883C428 		addq	$40, %rsp
- 1452 0caa 5B       		popq	%rbx
- 1453 0cab C9       		leave
- 1454 0cac C3       		ret
- 1455              		.cfi_endproc
- 1456              	.LFE625:
- 1457              		.size	KCipherVecAesNiDecryptOfb, .-KCipherVecAesNiDecryptOfb
- 1458              		.type	KCipherVecAesNiEncryptCtr, @function
- 1459              	KCipherVecAesNiEncryptCtr:
- 1460              	.LFB626:
- 627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* Counter
- 630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * IV is a nonce and not re-used as FB
- 631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = PT ^ ENC (N, EK)
- 632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = CT ^ ENC (N, DK) 
- 633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Note decrypt is encrypt.
- 634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * nonce is a function that given an iv generates the next iv
- 635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1461              		.loc 1 638 0
- 1462              		.cfi_startproc
- 1463 0cad 55       		pushq	%rbp
- 1464              	.LCFI50:
- 1465              		.cfi_def_cfa_offset 16
- 1466 0cae 4889E5   		movq	%rsp, %rbp
- 1467              		.cfi_offset 6, -16
-
GAS LISTING /tmp/ccWvEaWW.s 			page 43
-
-
- 1468              	.LCFI51:
- 1469              		.cfi_def_cfa_register 6
- 1470 0cb1 4883EC20 		subq	$32, %rsp
- 1471 0cb5 48897DF8 		movq	%rdi, -8(%rbp)
- 1472 0cb9 488975F0 		movq	%rsi, -16(%rbp)
- 1473 0cbd 488955E8 		movq	%rdx, -24(%rbp)
- 1474 0cc1 894DE4   		movl	%ecx, -28(%rbp)
- 639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 1475              		.loc 1 639 0
- 1476 0cc4 B97F0200 		movl	$639, %ecx
- 1476      00
- 1477 0cc9 488D1500 		leaq	__func__.7678(%rip), %rdx
- 1477      000000
- 1478 0cd0 488D3500 		leaq	.LC0(%rip), %rsi
- 1478      000000
- 1479 0cd7 BF030509 		movl	$-2029452029, %edi
- 1479      87
- 1480 0cdc E8000000 		call	SetRCFileFuncLine at PLT
- 1480      00
- 640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1481              		.loc 1 640 0
- 1482 0ce1 C9       		leave
- 1483 0ce2 C3       		ret
- 1484              		.cfi_endproc
- 1485              	.LFE626:
- 1486              		.size	KCipherVecAesNiEncryptCtr, .-KCipherVecAesNiEncryptCtr
- 1487              		.type	KCipherVecAesNiDecryptCtr, @function
- 1488              	KCipherVecAesNiDecryptCtr:
- 1489              	.LFB627:
- 641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1490              		.loc 1 645 0
- 1491              		.cfi_startproc
- 1492 0ce3 55       		pushq	%rbp
- 1493              	.LCFI52:
- 1494              		.cfi_def_cfa_offset 16
- 1495 0ce4 4889E5   		movq	%rsp, %rbp
- 1496              		.cfi_offset 6, -16
- 1497              	.LCFI53:
- 1498              		.cfi_def_cfa_register 6
- 1499 0ce7 4883EC20 		subq	$32, %rsp
- 1500 0ceb 48897DF8 		movq	%rdi, -8(%rbp)
- 1501 0cef 488975F0 		movq	%rsi, -16(%rbp)
- 1502 0cf3 488955E8 		movq	%rdx, -24(%rbp)
- 1503 0cf7 894DE4   		movl	%ecx, -28(%rbp)
- 646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 1504              		.loc 1 646 0
- 1505 0cfa B9860200 		movl	$646, %ecx
- 1505      00
- 1506 0cff 488D1500 		leaq	__func__.7688(%rip), %rdx
- 1506      000000
- 1507 0d06 488D3500 		leaq	.LC0(%rip), %rsi
- 1507      000000
- 1508 0d0d BF030509 		movl	$-2029452029, %edi
-
GAS LISTING /tmp/ccWvEaWW.s 			page 44
-
-
- 1508      87
- 1509 0d12 E8000000 		call	SetRCFileFuncLine at PLT
- 1509      00
- 647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1510              		.loc 1 647 0
- 1511 0d17 C9       		leave
- 1512 0d18 C3       		ret
- 1513              		.cfi_endproc
- 1514              	.LFE627:
- 1515              		.size	KCipherVecAesNiDecryptCtr, .-KCipherVecAesNiDecryptCtr
- 1516              		.section	.data.rel.local,"aw", at progbits
- 1517              		.align 32
- 1518              		.type	KCipherVecAesNi_vt_v1, @object
- 1519              		.size	KCipherVecAesNi_vt_v1, 176
- 1520              	KCipherVecAesNi_vt_v1:
- 1521 0000 01000000 		.long	1
- 1522 0004 00000000 		.long	0
- 1523 0008 00000000 		.quad	KCipherVecAesNiDestroy
- 1523      00000000 
- 1524 0010 00000000 		.quad	KCipherVecAesNiSetEncryptKey
- 1524      00000000 
- 1525 0018 00000000 		.quad	KCipherVecAesNiSetDecryptKey
- 1525      00000000 
- 1526 0020 00000000 		.quad	KCipherVecAesNiSetEncryptIvec
- 1526      00000000 
- 1527 0028 00000000 		.quad	KCipherVecAesNiSetDecryptIvec
- 1527      00000000 
- 1528 0030 00000000 		.quad	KCipherVecAesNiSetEncryptCounterFunc
- 1528      00000000 
- 1529 0038 00000000 		.quad	KCipherVecAesNiSetDecryptCounterFunc
- 1529      00000000 
- 1530 0040 00000000 		.quad	KCipherVecAesNiEncrypt
- 1530      00000000 
- 1531 0048 00000000 		.quad	KCipherVecAesNiDecrypt
- 1531      00000000 
- 1532 0050 00000000 		.quad	KCipherVecAesNiEncryptEcb
- 1532      00000000 
- 1533 0058 00000000 		.quad	KCipherVecAesNiDecryptEcb
- 1533      00000000 
- 1534 0060 00000000 		.quad	KCipherVecAesNiEncryptCbc
- 1534      00000000 
- 1535 0068 00000000 		.quad	KCipherVecAesNiDecryptCbc
- 1535      00000000 
- 1536 0070 00000000 		.quad	KCipherVecAesNiEncryptPcbc
- 1536      00000000 
- 1537 0078 00000000 		.quad	KCipherVecAesNiDecryptPcbc
- 1537      00000000 
- 1538 0080 00000000 		.quad	KCipherVecAesNiEncryptCfb
- 1538      00000000 
- 1539 0088 00000000 		.quad	KCipherVecAesNiDecryptCfb
- 1539      00000000 
- 1540 0090 00000000 		.quad	KCipherVecAesNiEncryptOfb
- 1540      00000000 
- 1541 0098 00000000 		.quad	KCipherVecAesNiDecryptOfb
- 1541      00000000 
- 1542 00a0 00000000 		.quad	KCipherVecAesNiEncryptCtr
- 1542      00000000 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 45
-
-
- 1543 00a8 00000000 		.quad	KCipherVecAesNiDecryptCtr
- 1543      00000000 
- 1544              		.text
- 1545              		.type	KCipherVecAesNiAllocAes, @function
- 1546              	KCipherVecAesNiAllocAes:
- 1547              	.LFB628:
- 648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** struct KCipher_vt_v1 CMEMBER(_vt_v1) =
- 651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     { 1, 0 },
- 653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Destroy),
- 655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptKey),
- 656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptKey),
- 657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptIvec),
- 658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptIvec),
- 659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptCounterFunc),
- 660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptCounterFunc),
- 661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Encrypt),
- 662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Decrypt),
- 663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptEcb),
- 664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptEcb),
- 665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCbc),
- 666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCbc),
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptPcbc),
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptPcbc),
- 669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCfb),
- 670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCfb),
- 671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptOfb),
- 672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptOfb),
- 673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCtr),
- 674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCtr)
- 675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** };
- 676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(AllocAes)(CIPHER_IMPL ** pobj,
- 680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                        const KBlockCipher * block_cipher)
- 681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1548              		.loc 1 681 0
- 1549              		.cfi_startproc
- 1550 0d19 55       		pushq	%rbp
- 1551              	.LCFI54:
- 1552              		.cfi_def_cfa_offset 16
- 1553 0d1a 4889E5   		movq	%rsp, %rbp
- 1554              		.cfi_offset 6, -16
- 1555              	.LCFI55:
- 1556              		.cfi_def_cfa_register 6
- 1557 0d1d 4883EC20 		subq	$32, %rsp
- 1558 0d21 48897DE8 		movq	%rdi, -24(%rbp)
- 1559 0d25 488975E0 		movq	%rsi, -32(%rbp)
- 682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherAes * obj;
- 683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     obj = calloc (1, sizeof (*obj));
- 1560              		.loc 1 684 0
- 1561 0d29 BE700200 		movl	$624, %esi
-
GAS LISTING /tmp/ccWvEaWW.s 			page 46
-
-
- 1561      00
- 1562 0d2e BF010000 		movl	$1, %edi
- 1562      00
- 1563 0d33 E8000000 		call	calloc at PLT
- 1563      00
- 1564 0d38 488945F8 		movq	%rax, -8(%rbp)
- 685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *pobj = (CIPHER_IMPL*)obj;
- 1565              		.loc 1 685 0
- 1566 0d3c 488B55F8 		movq	-8(%rbp), %rdx
- 1567 0d40 488B45E8 		movq	-24(%rbp), %rax
- 1568 0d44 488910   		movq	%rdx, (%rax)
- 686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
- 1569              		.loc 1 687 0
- 1570 0d47 48837DF8 		cmpq	$0, -8(%rbp)
- 1570      00
- 1571 0d4c 751F     		jne	.L101
- 1572 0d4e B9AF0200 		movl	$687, %ecx
- 1572      00
- 1573 0d53 488D1500 		leaq	__func__.7698(%rip), %rdx
- 1573      000000
- 1574 0d5a 488D3500 		leaq	.LC0(%rip), %rsi
- 1574      000000
- 1575 0d61 BF539000 		movl	$-2030006189, %edi
- 1575      87
- 1576 0d66 E8000000 		call	SetRCFileFuncLine at PLT
- 1576      00
- 1577 0d6b EB05     		jmp	.L102
- 1578              	.L101:
- 1579 0d6d B8000000 		movl	$0, %eax
- 1579      00
- 1580              	.L102:
- 688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1581              		.loc 1 688 0
- 1582 0d72 C9       		leave
- 1583 0d73 C3       		ret
- 1584              		.cfi_endproc
- 1585              	.LFE628:
- 1586              		.size	KCipherVecAesNiAllocAes, .-KCipherVecAesNiAllocAes
- 1587              		.type	KCipherVecAesNiInitAes, @function
- 1588              	KCipherVecAesNiInitAes:
- 1589              	.LFB629:
- 689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(InitAes) (CIPHER_IMPL * self,
- 693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                       const KBlockCipher * block_cipher)
- 694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1590              		.loc 1 694 0
- 1591              		.cfi_startproc
- 1592 0d74 55       		pushq	%rbp
- 1593              	.LCFI56:
- 1594              		.cfi_def_cfa_offset 16
- 1595 0d75 4889E5   		movq	%rsp, %rbp
- 1596              		.cfi_offset 6, -16
- 1597              	.LCFI57:
- 1598              		.cfi_def_cfa_register 6
-
GAS LISTING /tmp/ccWvEaWW.s 			page 47
-
-
- 1599 0d78 4883EC20 		subq	$32, %rsp
- 1600 0d7c 48897DE8 		movq	%rdi, -24(%rbp)
- 1601 0d80 488975E0 		movq	%rsi, -32(%rbp)
- 695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher * dad = &self->dad;
- 1602              		.loc 1 695 0
- 1603 0d84 488B45E8 		movq	-24(%rbp), %rax
- 1604 0d88 488945F0 		movq	%rax, -16(%rbp)
- 696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherAes * aes = (struct CipherAes*)self;
- 1605              		.loc 1 696 0
- 1606 0d8c 488B45E8 		movq	-24(%rbp), %rax
- 1607 0d90 488945F8 		movq	%rax, -8(%rbp)
- 697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipherInit (dad, sizeof (CipherVec),
- 1608              		.loc 1 698 0
- 1609 0d94 488B45F0 		movq	-16(%rbp), %rax
- 1610 0d98 488B1500 		movq	KCipherVecAesNiClassName at GOTPCREL(%rip), %rdx
- 1610      000000
- 1611 0d9f 4889D1   		movq	%rdx, %rcx
- 1612 0da2 488D1500 		leaq	KCipherVecAesNi_vt_v1(%rip), %rdx
- 1612      000000
- 1613 0da9 BE100000 		movl	$16, %esi
- 1613      00
- 1614 0dae 4889C7   		movq	%rax, %rdi
- 1615 0db1 E8000000 		call	KCipherInit at PLT
- 1615      00
- 699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  (const KCipher_vt*)&CMEMBER(_vt_v1),
- 700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  CMEMBER(ClassName));
- 701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_key = &aes->e_key;
- 1616              		.loc 1 702 0
- 1617 0db6 488B45F8 		movq	-8(%rbp), %rax
- 1618 0dba 488D5050 		leaq	80(%rax), %rdx
- 1619 0dbe 488B45F0 		movq	-16(%rbp), %rax
- 1620 0dc2 48895018 		movq	%rdx, 24(%rax)
- 703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_key = &aes->d_key;
- 1621              		.loc 1 703 0
- 1622 0dc6 488B45F8 		movq	-8(%rbp), %rax
- 1623 0dca 488D9050 		leaq	336(%rax), %rdx
- 1623      010000
- 1624 0dd1 488B45F0 		movq	-16(%rbp), %rax
- 1625 0dd5 48895020 		movq	%rdx, 32(%rax)
- 704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_ivec = &aes->e_ivec;
- 1626              		.loc 1 704 0
- 1627 0dd9 488B45F8 		movq	-8(%rbp), %rax
- 1628 0ddd 488D9050 		leaq	592(%rax), %rdx
- 1628      020000
- 1629 0de4 488B45F0 		movq	-16(%rbp), %rax
- 1630 0de8 48895028 		movq	%rdx, 40(%rax)
- 705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_ivec = &aes->d_ivec;
- 1631              		.loc 1 705 0
- 1632 0dec 488B45F8 		movq	-8(%rbp), %rax
- 1633 0df0 488D9060 		leaq	608(%rax), %rdx
- 1633      020000
- 1634 0df7 488B45F0 		movq	-16(%rbp), %rax
- 1635 0dfb 48895030 		movq	%rdx, 48(%rax)
- 706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->block_cipher = &block_cipher->vec;
-
GAS LISTING /tmp/ccWvEaWW.s 			page 48
-
-
- 1636              		.loc 1 707 0
- 1637 0dff 488B55E0 		movq	-32(%rbp), %rdx
- 1638 0e03 488B45E8 		movq	-24(%rbp), %rax
- 1639 0e07 48895048 		movq	%rdx, 72(%rax)
- 708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1640              		.loc 1 709 0
- 1641 0e0b B8000000 		movl	$0, %eax
- 1641      00
- 710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1642              		.loc 1 710 0
- 1643 0e10 C9       		leave
- 1644 0e11 C3       		ret
- 1645              		.cfi_endproc
- 1646              	.LFE629:
- 1647              		.size	KCipherVecAesNiInitAes, .-KCipherVecAesNiInitAes
- 1648              		.type	KCipherVecAesNiAllocNull, @function
- 1649              	KCipherVecAesNiAllocNull:
- 1650              	.LFB630:
- 711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(AllocNull)(CIPHER_IMPL ** pobj,
- 715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                         const KBlockCipher * block_cipher)
- 716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1651              		.loc 1 716 0
- 1652              		.cfi_startproc
- 1653 0e12 55       		pushq	%rbp
- 1654              	.LCFI58:
- 1655              		.cfi_def_cfa_offset 16
- 1656 0e13 4889E5   		movq	%rsp, %rbp
- 1657              		.cfi_offset 6, -16
- 1658              	.LCFI59:
- 1659              		.cfi_def_cfa_register 6
- 1660 0e16 4883EC20 		subq	$32, %rsp
- 1661 0e1a 48897DE8 		movq	%rdi, -24(%rbp)
- 1662 0e1e 488975E0 		movq	%rsi, -32(%rbp)
- 717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherNull * obj;
- 718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     obj = calloc (1, sizeof (*obj));
- 1663              		.loc 1 719 0
- 1664 0e22 BE700000 		movl	$112, %esi
- 1664      00
- 1665 0e27 BF010000 		movl	$1, %edi
- 1665      00
- 1666 0e2c E8000000 		call	calloc at PLT
- 1666      00
- 1667 0e31 488945F8 		movq	%rax, -8(%rbp)
- 720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *pobj = (CIPHER_IMPL*)obj;
- 1668              		.loc 1 720 0
- 1669 0e35 488B55F8 		movq	-8(%rbp), %rdx
- 1670 0e39 488B45E8 		movq	-24(%rbp), %rax
- 1671 0e3d 488910   		movq	%rdx, (%rax)
- 721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
- 1672              		.loc 1 722 0
- 1673 0e40 48837DF8 		cmpq	$0, -8(%rbp)
-
GAS LISTING /tmp/ccWvEaWW.s 			page 49
-
-
- 1673      00
- 1674 0e45 751F     		jne	.L107
- 1675 0e47 B9D20200 		movl	$722, %ecx
- 1675      00
- 1676 0e4c 488D1500 		leaq	__func__.7725(%rip), %rdx
- 1676      000000
- 1677 0e53 488D3500 		leaq	.LC0(%rip), %rsi
- 1677      000000
- 1678 0e5a BF539000 		movl	$-2030006189, %edi
- 1678      87
- 1679 0e5f E8000000 		call	SetRCFileFuncLine at PLT
- 1679      00
- 1680 0e64 EB05     		jmp	.L108
- 1681              	.L107:
- 1682 0e66 B8000000 		movl	$0, %eax
- 1682      00
- 1683              	.L108:
- 723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1684              		.loc 1 723 0
- 1685 0e6b C9       		leave
- 1686 0e6c C3       		ret
- 1687              		.cfi_endproc
- 1688              	.LFE630:
- 1689              		.size	KCipherVecAesNiAllocNull, .-KCipherVecAesNiAllocNull
- 1690              		.type	KCipherVecAesNiInitNull, @function
- 1691              	KCipherVecAesNiInitNull:
- 1692              	.LFB631:
- 724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(InitNull) (CIPHER_IMPL * self,
- 728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                         const KBlockCipher * block_cipher)
- 729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1693              		.loc 1 729 0
- 1694              		.cfi_startproc
- 1695 0e6d 55       		pushq	%rbp
- 1696              	.LCFI60:
- 1697              		.cfi_def_cfa_offset 16
- 1698 0e6e 4889E5   		movq	%rsp, %rbp
- 1699              		.cfi_offset 6, -16
- 1700              	.LCFI61:
- 1701              		.cfi_def_cfa_register 6
- 1702 0e71 4883EC20 		subq	$32, %rsp
- 1703 0e75 48897DE8 		movq	%rdi, -24(%rbp)
- 1704 0e79 488975E0 		movq	%rsi, -32(%rbp)
- 730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher * dad = &self->dad;
- 1705              		.loc 1 730 0
- 1706 0e7d 488B45E8 		movq	-24(%rbp), %rax
- 1707 0e81 488945F0 		movq	%rax, -16(%rbp)
- 731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherNull * null = (CipherNull*)self;
- 1708              		.loc 1 731 0
- 1709 0e85 488B45E8 		movq	-24(%rbp), %rax
- 1710 0e89 488945F8 		movq	%rax, -8(%rbp)
- 732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipherInit (dad, sizeof (CipherVec),
- 1711              		.loc 1 733 0
- 1712 0e8d 488B45F0 		movq	-16(%rbp), %rax
-
GAS LISTING /tmp/ccWvEaWW.s 			page 50
-
-
- 1713 0e91 488B1500 		movq	KCipherVecAesNiClassName at GOTPCREL(%rip), %rdx
- 1713      000000
- 1714 0e98 4889D1   		movq	%rdx, %rcx
- 1715 0e9b 488D1500 		leaq	KCipherVecAesNi_vt_v1(%rip), %rdx
- 1715      000000
- 1716 0ea2 BE100000 		movl	$16, %esi
- 1716      00
- 1717 0ea7 4889C7   		movq	%rax, %rdi
- 1718 0eaa E8000000 		call	KCipherInit at PLT
- 1718      00
- 734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  (const KCipher_vt*)&CMEMBER(_vt_v1),
- 735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  CMEMBER(ClassName));
- 736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_key = &null->e_ivec;
- 1719              		.loc 1 737 0
- 1720 0eaf 488B45F8 		movq	-8(%rbp), %rax
- 1721 0eb3 488D5050 		leaq	80(%rax), %rdx
- 1722 0eb7 488B45F0 		movq	-16(%rbp), %rax
- 1723 0ebb 48895018 		movq	%rdx, 24(%rax)
- 738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_key = &null->d_ivec;
- 1724              		.loc 1 738 0
- 1725 0ebf 488B45F8 		movq	-8(%rbp), %rax
- 1726 0ec3 488D5060 		leaq	96(%rax), %rdx
- 1727 0ec7 488B45F0 		movq	-16(%rbp), %rax
- 1728 0ecb 48895020 		movq	%rdx, 32(%rax)
- 739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_ivec = &null->e_ivec;
- 1729              		.loc 1 739 0
- 1730 0ecf 488B45F8 		movq	-8(%rbp), %rax
- 1731 0ed3 488D5050 		leaq	80(%rax), %rdx
- 1732 0ed7 488B45F0 		movq	-16(%rbp), %rax
- 1733 0edb 48895028 		movq	%rdx, 40(%rax)
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_ivec = &null->d_ivec;
- 1734              		.loc 1 740 0
- 1735 0edf 488B45F8 		movq	-8(%rbp), %rax
- 1736 0ee3 488D5060 		leaq	96(%rax), %rdx
- 1737 0ee7 488B45F0 		movq	-16(%rbp), %rax
- 1738 0eeb 48895030 		movq	%rdx, 48(%rax)
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->block_cipher = &block_cipher->vec;
- 1739              		.loc 1 742 0
- 1740 0eef 488B55E0 		movq	-32(%rbp), %rdx
- 1741 0ef3 488B45E8 		movq	-24(%rbp), %rax
- 1742 0ef7 48895048 		movq	%rdx, 72(%rax)
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1743              		.loc 1 744 0
- 1744 0efb B8000000 		movl	$0, %eax
- 1744      00
- 745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1745              		.loc 1 745 0
- 1746 0f00 C9       		leave
- 1747 0f01 C3       		ret
- 1748              		.cfi_endproc
- 1749              	.LFE631:
- 1750              		.size	KCipherVecAesNiInitNull, .-KCipherVecAesNiInitNull
- 1751              	.globl KCipherVecAesNiMake
- 1752              		.type	KCipherVecAesNiMake, @function
-
GAS LISTING /tmp/ccWvEaWW.s 			page 51
-
-
- 1753              	KCipherVecAesNiMake:
- 1754              	.LFB632:
- 746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(Make) (KCipher ** new_obj, kcipher_type type)
- 749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1755              		.loc 1 749 0
- 1756              		.cfi_startproc
- 1757 0f02 55       		pushq	%rbp
- 1758              	.LCFI62:
- 1759              		.cfi_def_cfa_offset 16
- 1760 0f03 4889E5   		movq	%rsp, %rbp
- 1761              		.cfi_offset 6, -16
- 1762              	.LCFI63:
- 1763              		.cfi_def_cfa_register 6
- 1764 0f06 4883EC30 		subq	$48, %rsp
- 1765 0f0a 48897DD8 		movq	%rdi, -40(%rbp)
- 1766 0f0e 8975D4   		movl	%esi, -44(%rbp)
- 750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc;
- 751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KBlockCipher * block_cipher;
- 752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (new_obj == NULL)
- 1767              		.loc 1 753 0
- 1768 0f11 48837DD8 		cmpq	$0, -40(%rbp)
- 1768      00
- 1769 0f16 7522     		jne	.L113
- 754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
- 1770              		.loc 1 754 0
- 1771 0f18 B9F20200 		movl	$754, %ecx
- 1771      00
- 1772 0f1d 488D1500 		leaq	__func__.7753(%rip), %rdx
- 1772      000000
- 1773 0f24 488D3500 		leaq	.LC0(%rip), %rsi
- 1773      000000
- 1774 0f2b BF878F00 		movl	$-2030006393, %edi
- 1774      87
- 1775 0f30 E8000000 		call	SetRCFileFuncLine at PLT
- 1775      00
- 1776 0f35 E9280100 		jmp	.L114
- 1776      00
- 1777              	.L113:
- 755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *new_obj = NULL;
- 1778              		.loc 1 756 0
- 1779 0f3a 488B45D8 		movq	-40(%rbp), %rax
- 1780 0f3e 48C70000 		movq	$0, (%rax)
- 1780      000000
- 757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (type)
- 1781              		.loc 1 758 0
- 1782 0f45 8B45D4   		movl	-44(%rbp), %eax
- 1783 0f48 85C0     		testl	%eax, %eax
- 1784 0f4a 7427     		je	.L116
- 1785 0f4c 83F801   		cmpl	$1, %eax
- 1786 0f4f 7433     		je	.L117
- 759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 52
-
-
- 761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         return RC (rcKrypto, rcCipher, rcConstructing, rcParam, rcInvalid);
- 1787              		.loc 1 761 0
- 1788 0f51 B9F90200 		movl	$761, %ecx
- 1788      00
- 1789 0f56 488D1500 		leaq	__func__.7753(%rip), %rdx
- 1789      000000
- 1790 0f5d 488D3500 		leaq	.LC0(%rip), %rsi
- 1790      000000
- 1791 0f64 BFCA8F00 		movl	$-2030006326, %edi
- 1791      87
- 1792 0f69 E8000000 		call	SetRCFileFuncLine at PLT
- 1792      00
- 1793 0f6e E9EF0000 		jmp	.L114
- 1793      00
- 1794              	.L116:
- 762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case kcipher_null:
- 764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = NULLBCMEMBER(Make)(&block_cipher);
- 1795              		.loc 1 764 0
- 1796 0f73 488D45F0 		leaq	-16(%rbp), %rax
- 1797 0f77 4889C7   		movq	%rax, %rdi
- 1798 0f7a E8000000 		call	KNullBlockCipherVecAesNiMake at PLT
- 1798      00
- 1799 0f7f 8945FC   		movl	%eax, -4(%rbp)
- 765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 1800              		.loc 1 765 0
- 1801 0f82 EB0F     		jmp	.L118
- 1802              	.L117:
- 766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case kcipher_AES:
- 768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = AESBCMEMBER(Make)(&block_cipher);
- 1803              		.loc 1 768 0
- 1804 0f84 488D45F0 		leaq	-16(%rbp), %rax
- 1805 0f88 4889C7   		movq	%rax, %rdi
- 1806 0f8b E8000000 		call	KAESBlockCipherVecAesNiMake at PLT
- 1806      00
- 1807 0f90 8945FC   		movl	%eax, -4(%rbp)
- 1808              	.L118:
- 769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (rc == 0)
- 1809              		.loc 1 772 0
- 1810 0f93 837DFC00 		cmpl	$0, -4(%rbp)
- 1811 0f97 0F85C200 		jne	.L119
- 1811      0000
- 1812              	.LBB5:
- 773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CIPHER_IMPL * obj;
- 775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         switch (type)
- 1813              		.loc 1 776 0
- 1814 0f9d 8B45D4   		movl	-44(%rbp), %eax
- 1815 0fa0 85C0     		testl	%eax, %eax
- 1816 0fa2 740A     		je	.L120
- 1817 0fa4 83F801   		cmpl	$1, %eax
- 1818 0fa7 745F     		je	.L121
-
GAS LISTING /tmp/ccWvEaWW.s 			page 53
-
-
- 1819 0fa9 E9B10000 		jmp	.L119
- 1819      00
- 1820              	.L120:
- 777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         {
- 778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         case kcipher_null:
- 779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             rc = CMEMBER(AllocNull) (&obj, block_cipher);
- 1821              		.loc 1 779 0
- 1822 0fae 488B55F0 		movq	-16(%rbp), %rdx
- 1823 0fb2 488D45E8 		leaq	-24(%rbp), %rax
- 1824 0fb6 4889D6   		movq	%rdx, %rsi
- 1825 0fb9 4889C7   		movq	%rax, %rdi
- 1826 0fbc E851FEFF 		call	KCipherVecAesNiAllocNull
- 1826      FF
- 1827 0fc1 8945FC   		movl	%eax, -4(%rbp)
- 780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             if (rc == 0)
- 1828              		.loc 1 780 0
- 1829 0fc4 837DFC00 		cmpl	$0, -4(%rbp)
- 1830 0fc8 0F859000 		jne	.L126
- 1830      0000
- 781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             {
- 782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 rc = CMEMBER(InitNull) (obj, block_cipher);
- 1831              		.loc 1 782 0
- 1832 0fce 488B55F0 		movq	-16(%rbp), %rdx
- 1833 0fd2 488B45E8 		movq	-24(%rbp), %rax
- 1834 0fd6 4889D6   		movq	%rdx, %rsi
- 1835 0fd9 4889C7   		movq	%rax, %rdi
- 1836 0fdc E88CFEFF 		call	KCipherVecAesNiInitNull
- 1836      FF
- 1837 0fe1 8945FC   		movl	%eax, -4(%rbp)
- 783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 if (rc == 0)
- 1838              		.loc 1 783 0
- 1839 0fe4 837DFC00 		cmpl	$0, -4(%rbp)
- 1840 0fe8 7510     		jne	.L123
- 784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     *new_obj = (KCipher*)obj;
- 1841              		.loc 1 784 0
- 1842 0fea 488B45E8 		movq	-24(%rbp), %rax
- 1843 0fee 4889C2   		movq	%rax, %rdx
- 1844 0ff1 488B45D8 		movq	-40(%rbp), %rax
- 1845 0ff5 488910   		movq	%rdx, (%rax)
- 785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 else
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             }
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 1846              		.loc 1 788 0
- 1847 0ff8 EB65     		jmp	.L119
- 1848              	.L123:
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 1849              		.loc 1 786 0
- 1850 0ffa 488B45E8 		movq	-24(%rbp), %rax
- 1851 0ffe 4889C7   		movq	%rax, %rdi
- 1852 1001 E8000000 		call	free at PLT
- 1852      00
- 1853              		.loc 1 788 0
- 1854 1006 EB57     		jmp	.L119
- 1855              	.L121:
- 789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         case kcipher_AES:
- 790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             rc = CMEMBER(AllocAes) (&obj, block_cipher);
-
GAS LISTING /tmp/ccWvEaWW.s 			page 54
-
-
- 1856              		.loc 1 790 0
- 1857 1008 488B55F0 		movq	-16(%rbp), %rdx
- 1858 100c 488D45E8 		leaq	-24(%rbp), %rax
- 1859 1010 4889D6   		movq	%rdx, %rsi
- 1860 1013 4889C7   		movq	%rax, %rdi
- 1861 1016 E8FEFCFF 		call	KCipherVecAesNiAllocAes
- 1861      FF
- 1862 101b 8945FC   		movl	%eax, -4(%rbp)
- 791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             if (rc == 0)
- 1863              		.loc 1 791 0
- 1864 101e 837DFC00 		cmpl	$0, -4(%rbp)
- 1865 1022 753B     		jne	.L119
- 792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             {
- 793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 rc = CMEMBER(InitAes) (obj, block_cipher);
- 1866              		.loc 1 793 0
- 1867 1024 488B55F0 		movq	-16(%rbp), %rdx
- 1868 1028 488B45E8 		movq	-24(%rbp), %rax
- 1869 102c 4889D6   		movq	%rdx, %rsi
- 1870 102f 4889C7   		movq	%rax, %rdi
- 1871 1032 E83DFDFF 		call	KCipherVecAesNiInitAes
- 1871      FF
- 1872 1037 8945FC   		movl	%eax, -4(%rbp)
- 794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 if (rc == 0)
- 1873              		.loc 1 794 0
- 1874 103a 837DFC00 		cmpl	$0, -4(%rbp)
- 1875 103e 7510     		jne	.L124
- 795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     *new_obj = (KCipher*)obj;
- 1876              		.loc 1 795 0
- 1877 1040 488B45E8 		movq	-24(%rbp), %rax
- 1878 1044 4889C2   		movq	%rax, %rdx
- 1879 1047 488B45D8 		movq	-40(%rbp), %rax
- 1880 104b 488910   		movq	%rdx, (%rax)
- 1881 104e EB0F     		jmp	.L119
- 1882              	.L124:
- 796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 else
- 797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 1883              		.loc 1 797 0
- 1884 1050 488B45E8 		movq	-24(%rbp), %rax
- 1885 1054 4889C7   		movq	%rax, %rdi
- 1886 1057 E8000000 		call	free at PLT
- 1886      00
- 1887 105c EB01     		jmp	.L119
- 1888              	.L126:
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 1889              		.loc 1 788 0
- 1890 105e 90       		nop
- 1891              	.L119:
- 1892              	.LBE5:
- 798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             }
- 799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         default:
- 800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             /* can't really get here */
- 801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         }
- 803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 1893              		.loc 1 804 0
- 1894 105f 8B45FC   		movl	-4(%rbp), %eax
-
GAS LISTING /tmp/ccWvEaWW.s 			page 55
-
-
- 1895              	.L114:
- 805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1896              		.loc 1 805 0
- 1897 1062 C9       		leave
- 1898 1063 C3       		ret
- 1899              		.cfi_endproc
- 1900              	.LFE632:
- 1901              		.size	KCipherVecAesNiMake, .-KCipherVecAesNiMake
- 1902              		.section	.rodata
- 1903 006e 0000     		.align 16
- 1904              		.type	__func__.7753, @object
- 1905              		.size	__func__.7753, 20
- 1906              	__func__.7753:
- 1907 0070 4B436970 		.string	"KCipherVecAesNiMake"
- 1907      68657256 
- 1907      65634165 
- 1907      734E694D 
- 1907      616B6500 
- 1908 0084 00000000 		.align 16
- 1908      00000000 
- 1908      00000000 
- 1909              		.type	__PRETTY_FUNCTION__.7752, @object
- 1910              		.size	__PRETTY_FUNCTION__.7752, 20
- 1911              	__PRETTY_FUNCTION__.7752:
- 1912 0090 4B436970 		.string	"KCipherVecAesNiMake"
- 1912      68657256 
- 1912      65634165 
- 1912      734E694D 
- 1912      616B6500 
- 1913 00a4 00000000 		.align 16
- 1913      00000000 
- 1913      00000000 
- 1914              		.type	__func__.7725, @object
- 1915              		.size	__func__.7725, 25
- 1916              	__func__.7725:
- 1917 00b0 4B436970 		.string	"KCipherVecAesNiAllocNull"
- 1917      68657256 
- 1917      65634165 
- 1917      734E6941 
- 1917      6C6C6F63 
- 1918 00c9 00000000 		.align 16
- 1918      000000
- 1919              		.type	__PRETTY_FUNCTION__.7724, @object
- 1920              		.size	__PRETTY_FUNCTION__.7724, 25
- 1921              	__PRETTY_FUNCTION__.7724:
- 1922 00d0 4B436970 		.string	"KCipherVecAesNiAllocNull"
- 1922      68657256 
- 1922      65634165 
- 1922      734E6941 
- 1922      6C6C6F63 
- 1923 00e9 00000000 		.align 16
- 1923      000000
- 1924              		.type	__func__.7698, @object
- 1925              		.size	__func__.7698, 24
- 1926              	__func__.7698:
- 1927 00f0 4B436970 		.string	"KCipherVecAesNiAllocAes"
- 1927      68657256 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 56
-
-
- 1927      65634165 
- 1927      734E6941 
- 1927      6C6C6F63 
- 1928 0108 00000000 		.align 16
- 1928      00000000 
- 1929              		.type	__PRETTY_FUNCTION__.7697, @object
- 1930              		.size	__PRETTY_FUNCTION__.7697, 24
- 1931              	__PRETTY_FUNCTION__.7697:
- 1932 0110 4B436970 		.string	"KCipherVecAesNiAllocAes"
- 1932      68657256 
- 1932      65634165 
- 1932      734E6941 
- 1932      6C6C6F63 
- 1933 0128 00000000 		.align 16
- 1933      00000000 
- 1934              		.type	__func__.7688, @object
- 1935              		.size	__func__.7688, 26
- 1936              	__func__.7688:
- 1937 0130 4B436970 		.string	"KCipherVecAesNiDecryptCtr"
- 1937      68657256 
- 1937      65634165 
- 1937      734E6944 
- 1937      65637279 
- 1938 014a 00000000 		.align 16
- 1938      0000
- 1939              		.type	__PRETTY_FUNCTION__.7687, @object
- 1940              		.size	__PRETTY_FUNCTION__.7687, 26
- 1941              	__PRETTY_FUNCTION__.7687:
- 1942 0150 4B436970 		.string	"KCipherVecAesNiDecryptCtr"
- 1942      68657256 
- 1942      65634165 
- 1942      734E6944 
- 1942      65637279 
- 1943 016a 00000000 		.align 16
- 1943      0000
- 1944              		.type	__func__.7678, @object
- 1945              		.size	__func__.7678, 26
- 1946              	__func__.7678:
- 1947 0170 4B436970 		.string	"KCipherVecAesNiEncryptCtr"
- 1947      68657256 
- 1947      65634165 
- 1947      734E6945 
- 1947      6E637279 
- 1948 018a 00000000 		.align 16
- 1948      0000
- 1949              		.type	__PRETTY_FUNCTION__.7677, @object
- 1950              		.size	__PRETTY_FUNCTION__.7677, 26
- 1951              	__PRETTY_FUNCTION__.7677:
- 1952 0190 4B436970 		.string	"KCipherVecAesNiEncryptCtr"
- 1952      68657256 
- 1952      65634165 
- 1952      734E6945 
- 1952      6E637279 
- 1953 01aa 00000000 		.align 16
- 1953      0000
- 1954              		.type	__func__.7444, @object
- 1955              		.size	__func__.7444, 23
-
GAS LISTING /tmp/ccWvEaWW.s 			page 57
-
-
- 1956              	__func__.7444:
- 1957 01b0 4B436970 		.string	"KCipherVecAesNiDecrypt"
- 1957      68657256 
- 1957      65634165 
- 1957      734E6944 
- 1957      65637279 
- 1958 01c7 00000000 		.align 16
- 1958      00000000 
- 1958      00
- 1959              		.type	__PRETTY_FUNCTION__.7443, @object
- 1960              		.size	__PRETTY_FUNCTION__.7443, 23
- 1961              	__PRETTY_FUNCTION__.7443:
- 1962 01d0 4B436970 		.string	"KCipherVecAesNiDecrypt"
- 1962      68657256 
- 1962      65634165 
- 1962      734E6944 
- 1962      65637279 
- 1963 01e7 00000000 		.align 16
- 1963      00000000 
- 1963      00
- 1964              		.type	__func__.7428, @object
- 1965              		.size	__func__.7428, 23
- 1966              	__func__.7428:
- 1967 01f0 4B436970 		.string	"KCipherVecAesNiEncrypt"
- 1967      68657256 
- 1967      65634165 
- 1967      734E6945 
- 1967      6E637279 
- 1968 0207 00000000 		.align 16
- 1968      00000000 
- 1968      00
- 1969              		.type	__PRETTY_FUNCTION__.7427, @object
- 1970              		.size	__PRETTY_FUNCTION__.7427, 23
- 1971              	__PRETTY_FUNCTION__.7427:
- 1972 0210 4B436970 		.string	"KCipherVecAesNiEncrypt"
- 1972      68657256 
- 1972      65634165 
- 1972      734E6945 
- 1972      6E637279 
- 1973 0227 00000000 		.align 32
- 1973      00000000 
- 1973      00000000 
- 1973      00000000 
- 1973      00000000 
- 1974              		.type	__PRETTY_FUNCTION__.7378, @object
- 1975              		.size	__PRETTY_FUNCTION__.7378, 37
- 1976              	__PRETTY_FUNCTION__.7378:
- 1977 0240 4B436970 		.string	"KCipherVecAesNiSetDecryptCounterFunc"
- 1977      68657256 
- 1977      65634165 
- 1977      734E6953 
- 1977      65744465 
- 1978 0265 00000000 		.align 32
- 1978      00000000 
- 1978      00000000 
- 1978      00000000 
- 1978      00000000 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 58
-
-
- 1979              		.type	__PRETTY_FUNCTION__.7368, @object
- 1980              		.size	__PRETTY_FUNCTION__.7368, 37
- 1981              	__PRETTY_FUNCTION__.7368:
- 1982 0280 4B436970 		.string	"KCipherVecAesNiSetEncryptCounterFunc"
- 1982      68657256 
- 1982      65634165 
- 1982      734E6953 
- 1982      6574456E 
- 1983 02a5 00000000 		.align 16
- 1983      00000000 
- 1983      000000
- 1984              		.type	__PRETTY_FUNCTION__.7355, @object
- 1985              		.size	__PRETTY_FUNCTION__.7355, 30
- 1986              	__PRETTY_FUNCTION__.7355:
- 1987 02b0 4B436970 		.string	"KCipherVecAesNiSetDecryptIvec"
- 1987      68657256 
- 1987      65634165 
- 1987      734E6953 
- 1987      65744465 
- 1988 02ce 0000     		.align 16
- 1989              		.type	__PRETTY_FUNCTION__.7342, @object
- 1990              		.size	__PRETTY_FUNCTION__.7342, 30
- 1991              	__PRETTY_FUNCTION__.7342:
- 1992 02d0 4B436970 		.string	"KCipherVecAesNiSetEncryptIvec"
- 1992      68657256 
- 1992      65634165 
- 1992      734E6953 
- 1992      6574456E 
- 1993 02ee 0000     		.align 16
- 1994              		.type	__PRETTY_FUNCTION__.7320, @object
- 1995              		.size	__PRETTY_FUNCTION__.7320, 29
- 1996              	__PRETTY_FUNCTION__.7320:
- 1997 02f0 4B436970 		.string	"KCipherVecAesNiSetDecryptKey"
- 1997      68657256 
- 1997      65634165 
- 1997      734E6953 
- 1997      65744465 
- 1998 030d 000000   		.align 16
- 1999              		.type	__func__.7322, @object
- 2000              		.size	__func__.7322, 29
- 2001              	__func__.7322:
- 2002 0310 4B436970 		.string	"KCipherVecAesNiSetDecryptKey"
- 2002      68657256 
- 2002      65634165 
- 2002      734E6953 
- 2002      65744465 
- 2003 032d 000000   		.align 16
- 2004              		.type	__PRETTY_FUNCTION__.7296, @object
- 2005              		.size	__PRETTY_FUNCTION__.7296, 29
- 2006              	__PRETTY_FUNCTION__.7296:
- 2007 0330 4B436970 		.string	"KCipherVecAesNiSetEncryptKey"
- 2007      68657256 
- 2007      65634165 
- 2007      734E6953 
- 2007      6574456E 
- 2008 034d 000000   		.align 16
- 2009              		.type	__func__.7298, @object
-
GAS LISTING /tmp/ccWvEaWW.s 			page 59
-
-
- 2010              		.size	__func__.7298, 29
- 2011              	__func__.7298:
- 2012 0350 4B436970 		.string	"KCipherVecAesNiSetEncryptKey"
- 2012      68657256 
- 2012      65634165 
- 2012      734E6953 
- 2012      6574456E 
- 2013              		.text
- 2014              	.Letext0:
- 2015              		.section	.debug_loc,"", at progbits
- 2016              	.Ldebug_loc0:
- 2017              	.LLST0:
- 2018 0000 00000000 		.quad	.LFB601-.Ltext0
- 2018      00000000 
- 2019 0008 01000000 		.quad	.LCFI0-.Ltext0
- 2019      00000000 
- 2020 0010 0200     		.value	0x2
- 2021 0012 77       		.byte	0x77
- 2022 0013 08       		.sleb128 8
- 2023 0014 01000000 		.quad	.LCFI0-.Ltext0
- 2023      00000000 
- 2024 001c 04000000 		.quad	.LCFI1-.Ltext0
- 2024      00000000 
- 2025 0024 0200     		.value	0x2
- 2026 0026 77       		.byte	0x77
- 2027 0027 10       		.sleb128 16
- 2028 0028 04000000 		.quad	.LCFI1-.Ltext0
- 2028      00000000 
- 2029 0030 1F000000 		.quad	.LFE601-.Ltext0
- 2029      00000000 
- 2030 0038 0200     		.value	0x2
- 2031 003a 76       		.byte	0x76
- 2032 003b 10       		.sleb128 16
- 2033 003c 00000000 		.quad	0x0
- 2033      00000000 
- 2034 0044 00000000 		.quad	0x0
- 2034      00000000 
- 2035              	.LLST1:
- 2036 004c 1F000000 		.quad	.LFB602-.Ltext0
- 2036      00000000 
- 2037 0054 20000000 		.quad	.LCFI2-.Ltext0
- 2037      00000000 
- 2038 005c 0200     		.value	0x2
- 2039 005e 77       		.byte	0x77
- 2040 005f 08       		.sleb128 8
- 2041 0060 20000000 		.quad	.LCFI2-.Ltext0
- 2041      00000000 
- 2042 0068 23000000 		.quad	.LCFI3-.Ltext0
- 2042      00000000 
- 2043 0070 0200     		.value	0x2
- 2044 0072 77       		.byte	0x77
- 2045 0073 10       		.sleb128 16
- 2046 0074 23000000 		.quad	.LCFI3-.Ltext0
- 2046      00000000 
- 2047 007c 48000000 		.quad	.LFE602-.Ltext0
- 2047      00000000 
- 2048 0084 0200     		.value	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 60
-
-
- 2049 0086 76       		.byte	0x76
- 2050 0087 10       		.sleb128 16
- 2051 0088 00000000 		.quad	0x0
- 2051      00000000 
- 2052 0090 00000000 		.quad	0x0
- 2052      00000000 
- 2053              	.LLST2:
- 2054 0098 48000000 		.quad	.LFB603-.Ltext0
- 2054      00000000 
- 2055 00a0 49000000 		.quad	.LCFI4-.Ltext0
- 2055      00000000 
- 2056 00a8 0200     		.value	0x2
- 2057 00aa 77       		.byte	0x77
- 2058 00ab 08       		.sleb128 8
- 2059 00ac 49000000 		.quad	.LCFI4-.Ltext0
- 2059      00000000 
- 2060 00b4 4C000000 		.quad	.LCFI5-.Ltext0
- 2060      00000000 
- 2061 00bc 0200     		.value	0x2
- 2062 00be 77       		.byte	0x77
- 2063 00bf 10       		.sleb128 16
- 2064 00c0 4C000000 		.quad	.LCFI5-.Ltext0
- 2064      00000000 
- 2065 00c8 82000000 		.quad	.LFE603-.Ltext0
- 2065      00000000 
- 2066 00d0 0200     		.value	0x2
- 2067 00d2 76       		.byte	0x76
- 2068 00d3 10       		.sleb128 16
- 2069 00d4 00000000 		.quad	0x0
- 2069      00000000 
- 2070 00dc 00000000 		.quad	0x0
- 2070      00000000 
- 2071              	.LLST3:
- 2072 00e4 82000000 		.quad	.LFB604-.Ltext0
- 2072      00000000 
- 2073 00ec 83000000 		.quad	.LCFI6-.Ltext0
- 2073      00000000 
- 2074 00f4 0200     		.value	0x2
- 2075 00f6 77       		.byte	0x77
- 2076 00f7 08       		.sleb128 8
- 2077 00f8 83000000 		.quad	.LCFI6-.Ltext0
- 2077      00000000 
- 2078 0100 86000000 		.quad	.LCFI7-.Ltext0
- 2078      00000000 
- 2079 0108 0200     		.value	0x2
- 2080 010a 77       		.byte	0x77
- 2081 010b 10       		.sleb128 16
- 2082 010c 86000000 		.quad	.LCFI7-.Ltext0
- 2082      00000000 
- 2083 0114 6C010000 		.quad	.LFE604-.Ltext0
- 2083      00000000 
- 2084 011c 0200     		.value	0x2
- 2085 011e 76       		.byte	0x76
- 2086 011f 10       		.sleb128 16
- 2087 0120 00000000 		.quad	0x0
- 2087      00000000 
- 2088 0128 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 61
-
-
- 2088      00000000 
- 2089              	.LLST4:
- 2090 0130 6C010000 		.quad	.LFB605-.Ltext0
- 2090      00000000 
- 2091 0138 6D010000 		.quad	.LCFI8-.Ltext0
- 2091      00000000 
- 2092 0140 0200     		.value	0x2
- 2093 0142 77       		.byte	0x77
- 2094 0143 08       		.sleb128 8
- 2095 0144 6D010000 		.quad	.LCFI8-.Ltext0
- 2095      00000000 
- 2096 014c 70010000 		.quad	.LCFI9-.Ltext0
- 2096      00000000 
- 2097 0154 0200     		.value	0x2
- 2098 0156 77       		.byte	0x77
- 2099 0157 10       		.sleb128 16
- 2100 0158 70010000 		.quad	.LCFI9-.Ltext0
- 2100      00000000 
- 2101 0160 56020000 		.quad	.LFE605-.Ltext0
- 2101      00000000 
- 2102 0168 0200     		.value	0x2
- 2103 016a 76       		.byte	0x76
- 2104 016b 10       		.sleb128 16
- 2105 016c 00000000 		.quad	0x0
- 2105      00000000 
- 2106 0174 00000000 		.quad	0x0
- 2106      00000000 
- 2107              	.LLST5:
- 2108 017c 56020000 		.quad	.LFB606-.Ltext0
- 2108      00000000 
- 2109 0184 57020000 		.quad	.LCFI10-.Ltext0
- 2109      00000000 
- 2110 018c 0200     		.value	0x2
- 2111 018e 77       		.byte	0x77
- 2112 018f 08       		.sleb128 8
- 2113 0190 57020000 		.quad	.LCFI10-.Ltext0
- 2113      00000000 
- 2114 0198 5A020000 		.quad	.LCFI11-.Ltext0
- 2114      00000000 
- 2115 01a0 0200     		.value	0x2
- 2116 01a2 77       		.byte	0x77
- 2117 01a3 10       		.sleb128 16
- 2118 01a4 5A020000 		.quad	.LCFI11-.Ltext0
- 2118      00000000 
- 2119 01ac D9020000 		.quad	.LFE606-.Ltext0
- 2119      00000000 
- 2120 01b4 0200     		.value	0x2
- 2121 01b6 76       		.byte	0x76
- 2122 01b7 10       		.sleb128 16
- 2123 01b8 00000000 		.quad	0x0
- 2123      00000000 
- 2124 01c0 00000000 		.quad	0x0
- 2124      00000000 
- 2125              	.LLST6:
- 2126 01c8 D9020000 		.quad	.LFB607-.Ltext0
- 2126      00000000 
- 2127 01d0 DA020000 		.quad	.LCFI12-.Ltext0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 62
-
-
- 2127      00000000 
- 2128 01d8 0200     		.value	0x2
- 2129 01da 77       		.byte	0x77
- 2130 01db 08       		.sleb128 8
- 2131 01dc DA020000 		.quad	.LCFI12-.Ltext0
- 2131      00000000 
- 2132 01e4 DD020000 		.quad	.LCFI13-.Ltext0
- 2132      00000000 
- 2133 01ec 0200     		.value	0x2
- 2134 01ee 77       		.byte	0x77
- 2135 01ef 10       		.sleb128 16
- 2136 01f0 DD020000 		.quad	.LCFI13-.Ltext0
- 2136      00000000 
- 2137 01f8 5C030000 		.quad	.LFE607-.Ltext0
- 2137      00000000 
- 2138 0200 0200     		.value	0x2
- 2139 0202 76       		.byte	0x76
- 2140 0203 10       		.sleb128 16
- 2141 0204 00000000 		.quad	0x0
- 2141      00000000 
- 2142 020c 00000000 		.quad	0x0
- 2142      00000000 
- 2143              	.LLST7:
- 2144 0214 5C030000 		.quad	.LFB608-.Ltext0
- 2144      00000000 
- 2145 021c 5D030000 		.quad	.LCFI14-.Ltext0
- 2145      00000000 
- 2146 0224 0200     		.value	0x2
- 2147 0226 77       		.byte	0x77
- 2148 0227 08       		.sleb128 8
- 2149 0228 5D030000 		.quad	.LCFI14-.Ltext0
- 2149      00000000 
- 2150 0230 60030000 		.quad	.LCFI15-.Ltext0
- 2150      00000000 
- 2151 0238 0200     		.value	0x2
- 2152 023a 77       		.byte	0x77
- 2153 023b 10       		.sleb128 16
- 2154 023c 60030000 		.quad	.LCFI15-.Ltext0
- 2154      00000000 
- 2155 0244 CB030000 		.quad	.LFE608-.Ltext0
- 2155      00000000 
- 2156 024c 0200     		.value	0x2
- 2157 024e 76       		.byte	0x76
- 2158 024f 10       		.sleb128 16
- 2159 0250 00000000 		.quad	0x0
- 2159      00000000 
- 2160 0258 00000000 		.quad	0x0
- 2160      00000000 
- 2161              	.LLST8:
- 2162 0260 CB030000 		.quad	.LFB609-.Ltext0
- 2162      00000000 
- 2163 0268 CC030000 		.quad	.LCFI16-.Ltext0
- 2163      00000000 
- 2164 0270 0200     		.value	0x2
- 2165 0272 77       		.byte	0x77
- 2166 0273 08       		.sleb128 8
- 2167 0274 CC030000 		.quad	.LCFI16-.Ltext0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 63
-
-
- 2167      00000000 
- 2168 027c CF030000 		.quad	.LCFI17-.Ltext0
- 2168      00000000 
- 2169 0284 0200     		.value	0x2
- 2170 0286 77       		.byte	0x77
- 2171 0287 10       		.sleb128 16
- 2172 0288 CF030000 		.quad	.LCFI17-.Ltext0
- 2172      00000000 
- 2173 0290 3A040000 		.quad	.LFE609-.Ltext0
- 2173      00000000 
- 2174 0298 0200     		.value	0x2
- 2175 029a 76       		.byte	0x76
- 2176 029b 10       		.sleb128 16
- 2177 029c 00000000 		.quad	0x0
- 2177      00000000 
- 2178 02a4 00000000 		.quad	0x0
- 2178      00000000 
- 2179              	.LLST9:
- 2180 02ac 3A040000 		.quad	.LFB610-.Ltext0
- 2180      00000000 
- 2181 02b4 3B040000 		.quad	.LCFI18-.Ltext0
- 2181      00000000 
- 2182 02bc 0200     		.value	0x2
- 2183 02be 77       		.byte	0x77
- 2184 02bf 08       		.sleb128 8
- 2185 02c0 3B040000 		.quad	.LCFI18-.Ltext0
- 2185      00000000 
- 2186 02c8 3E040000 		.quad	.LCFI19-.Ltext0
- 2186      00000000 
- 2187 02d0 0200     		.value	0x2
- 2188 02d2 77       		.byte	0x77
- 2189 02d3 10       		.sleb128 16
- 2190 02d4 3E040000 		.quad	.LCFI19-.Ltext0
- 2190      00000000 
- 2191 02dc 61040000 		.quad	.LFE610-.Ltext0
- 2191      00000000 
- 2192 02e4 0200     		.value	0x2
- 2193 02e6 76       		.byte	0x76
- 2194 02e7 10       		.sleb128 16
- 2195 02e8 00000000 		.quad	0x0
- 2195      00000000 
- 2196 02f0 00000000 		.quad	0x0
- 2196      00000000 
- 2197              	.LLST10:
- 2198 02f8 61040000 		.quad	.LFB611-.Ltext0
- 2198      00000000 
- 2199 0300 62040000 		.quad	.LCFI20-.Ltext0
- 2199      00000000 
- 2200 0308 0200     		.value	0x2
- 2201 030a 77       		.byte	0x77
- 2202 030b 08       		.sleb128 8
- 2203 030c 62040000 		.quad	.LCFI20-.Ltext0
- 2203      00000000 
- 2204 0314 65040000 		.quad	.LCFI21-.Ltext0
- 2204      00000000 
- 2205 031c 0200     		.value	0x2
- 2206 031e 77       		.byte	0x77
-
GAS LISTING /tmp/ccWvEaWW.s 			page 64
-
-
- 2207 031f 10       		.sleb128 16
- 2208 0320 65040000 		.quad	.LCFI21-.Ltext0
- 2208      00000000 
- 2209 0328 88040000 		.quad	.LFE611-.Ltext0
- 2209      00000000 
- 2210 0330 0200     		.value	0x2
- 2211 0332 76       		.byte	0x76
- 2212 0333 10       		.sleb128 16
- 2213 0334 00000000 		.quad	0x0
- 2213      00000000 
- 2214 033c 00000000 		.quad	0x0
- 2214      00000000 
- 2215              	.LLST11:
- 2216 0344 88040000 		.quad	.LFB612-.Ltext0
- 2216      00000000 
- 2217 034c 89040000 		.quad	.LCFI22-.Ltext0
- 2217      00000000 
- 2218 0354 0200     		.value	0x2
- 2219 0356 77       		.byte	0x77
- 2220 0357 08       		.sleb128 8
- 2221 0358 89040000 		.quad	.LCFI22-.Ltext0
- 2221      00000000 
- 2222 0360 8C040000 		.quad	.LCFI23-.Ltext0
- 2222      00000000 
- 2223 0368 0200     		.value	0x2
- 2224 036a 77       		.byte	0x77
- 2225 036b 10       		.sleb128 16
- 2226 036c 8C040000 		.quad	.LCFI23-.Ltext0
- 2226      00000000 
- 2227 0374 DB040000 		.quad	.LFE612-.Ltext0
- 2227      00000000 
- 2228 037c 0200     		.value	0x2
- 2229 037e 76       		.byte	0x76
- 2230 037f 10       		.sleb128 16
- 2231 0380 00000000 		.quad	0x0
- 2231      00000000 
- 2232 0388 00000000 		.quad	0x0
- 2232      00000000 
- 2233              	.LLST12:
- 2234 0390 DB040000 		.quad	.LFB613-.Ltext0
- 2234      00000000 
- 2235 0398 DC040000 		.quad	.LCFI24-.Ltext0
- 2235      00000000 
- 2236 03a0 0200     		.value	0x2
- 2237 03a2 77       		.byte	0x77
- 2238 03a3 08       		.sleb128 8
- 2239 03a4 DC040000 		.quad	.LCFI24-.Ltext0
- 2239      00000000 
- 2240 03ac DF040000 		.quad	.LCFI25-.Ltext0
- 2240      00000000 
- 2241 03b4 0200     		.value	0x2
- 2242 03b6 77       		.byte	0x77
- 2243 03b7 10       		.sleb128 16
- 2244 03b8 DF040000 		.quad	.LCFI25-.Ltext0
- 2244      00000000 
- 2245 03c0 2E050000 		.quad	.LFE613-.Ltext0
- 2245      00000000 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 65
-
-
- 2246 03c8 0200     		.value	0x2
- 2247 03ca 76       		.byte	0x76
- 2248 03cb 10       		.sleb128 16
- 2249 03cc 00000000 		.quad	0x0
- 2249      00000000 
- 2250 03d4 00000000 		.quad	0x0
- 2250      00000000 
- 2251              	.LLST13:
- 2252 03dc 2E050000 		.quad	.LFB614-.Ltext0
- 2252      00000000 
- 2253 03e4 2F050000 		.quad	.LCFI26-.Ltext0
- 2253      00000000 
- 2254 03ec 0200     		.value	0x2
- 2255 03ee 77       		.byte	0x77
- 2256 03ef 08       		.sleb128 8
- 2257 03f0 2F050000 		.quad	.LCFI26-.Ltext0
- 2257      00000000 
- 2258 03f8 32050000 		.quad	.LCFI27-.Ltext0
- 2258      00000000 
- 2259 0400 0200     		.value	0x2
- 2260 0402 77       		.byte	0x77
- 2261 0403 10       		.sleb128 16
- 2262 0404 32050000 		.quad	.LCFI27-.Ltext0
- 2262      00000000 
- 2263 040c 92050000 		.quad	.LFE614-.Ltext0
- 2263      00000000 
- 2264 0414 0200     		.value	0x2
- 2265 0416 76       		.byte	0x76
- 2266 0417 10       		.sleb128 16
- 2267 0418 00000000 		.quad	0x0
- 2267      00000000 
- 2268 0420 00000000 		.quad	0x0
- 2268      00000000 
- 2269              	.LLST14:
- 2270 0428 92050000 		.quad	.LFB615-.Ltext0
- 2270      00000000 
- 2271 0430 93050000 		.quad	.LCFI28-.Ltext0
- 2271      00000000 
- 2272 0438 0200     		.value	0x2
- 2273 043a 77       		.byte	0x77
- 2274 043b 08       		.sleb128 8
- 2275 043c 93050000 		.quad	.LCFI28-.Ltext0
- 2275      00000000 
- 2276 0444 96050000 		.quad	.LCFI29-.Ltext0
- 2276      00000000 
- 2277 044c 0200     		.value	0x2
- 2278 044e 77       		.byte	0x77
- 2279 044f 10       		.sleb128 16
- 2280 0450 96050000 		.quad	.LCFI29-.Ltext0
- 2280      00000000 
- 2281 0458 FD050000 		.quad	.LFE615-.Ltext0
- 2281      00000000 
- 2282 0460 0200     		.value	0x2
- 2283 0462 76       		.byte	0x76
- 2284 0463 10       		.sleb128 16
- 2285 0464 00000000 		.quad	0x0
- 2285      00000000 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 66
-
-
- 2286 046c 00000000 		.quad	0x0
- 2286      00000000 
- 2287              	.LLST15:
- 2288 0474 FD050000 		.quad	.LFB616-.Ltext0
- 2288      00000000 
- 2289 047c FE050000 		.quad	.LCFI30-.Ltext0
- 2289      00000000 
- 2290 0484 0200     		.value	0x2
- 2291 0486 77       		.byte	0x77
- 2292 0487 08       		.sleb128 8
- 2293 0488 FE050000 		.quad	.LCFI30-.Ltext0
- 2293      00000000 
- 2294 0490 01060000 		.quad	.LCFI31-.Ltext0
- 2294      00000000 
- 2295 0498 0200     		.value	0x2
- 2296 049a 77       		.byte	0x77
- 2297 049b 10       		.sleb128 16
- 2298 049c 01060000 		.quad	.LCFI31-.Ltext0
- 2298      00000000 
- 2299 04a4 6D060000 		.quad	.LFE616-.Ltext0
- 2299      00000000 
- 2300 04ac 0200     		.value	0x2
- 2301 04ae 76       		.byte	0x76
- 2302 04af 10       		.sleb128 16
- 2303 04b0 00000000 		.quad	0x0
- 2303      00000000 
- 2304 04b8 00000000 		.quad	0x0
- 2304      00000000 
- 2305              	.LLST16:
- 2306 04c0 6D060000 		.quad	.LFB617-.Ltext0
- 2306      00000000 
- 2307 04c8 6E060000 		.quad	.LCFI32-.Ltext0
- 2307      00000000 
- 2308 04d0 0200     		.value	0x2
- 2309 04d2 77       		.byte	0x77
- 2310 04d3 08       		.sleb128 8
- 2311 04d4 6E060000 		.quad	.LCFI32-.Ltext0
- 2311      00000000 
- 2312 04dc 71060000 		.quad	.LCFI33-.Ltext0
- 2312      00000000 
- 2313 04e4 0200     		.value	0x2
- 2314 04e6 77       		.byte	0x77
- 2315 04e7 10       		.sleb128 16
- 2316 04e8 71060000 		.quad	.LCFI33-.Ltext0
- 2316      00000000 
- 2317 04f0 DD060000 		.quad	.LFE617-.Ltext0
- 2317      00000000 
- 2318 04f8 0200     		.value	0x2
- 2319 04fa 76       		.byte	0x76
- 2320 04fb 10       		.sleb128 16
- 2321 04fc 00000000 		.quad	0x0
- 2321      00000000 
- 2322 0504 00000000 		.quad	0x0
- 2322      00000000 
- 2323              	.LLST17:
- 2324 050c DD060000 		.quad	.LFB618-.Ltext0
- 2324      00000000 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 67
-
-
- 2325 0514 DE060000 		.quad	.LCFI34-.Ltext0
- 2325      00000000 
- 2326 051c 0200     		.value	0x2
- 2327 051e 77       		.byte	0x77
- 2328 051f 08       		.sleb128 8
- 2329 0520 DE060000 		.quad	.LCFI34-.Ltext0
- 2329      00000000 
- 2330 0528 E1060000 		.quad	.LCFI35-.Ltext0
- 2330      00000000 
- 2331 0530 0200     		.value	0x2
- 2332 0532 77       		.byte	0x77
- 2333 0533 10       		.sleb128 16
- 2334 0534 E1060000 		.quad	.LCFI35-.Ltext0
- 2334      00000000 
- 2335 053c AB070000 		.quad	.LFE618-.Ltext0
- 2335      00000000 
- 2336 0544 0200     		.value	0x2
- 2337 0546 76       		.byte	0x76
- 2338 0547 10       		.sleb128 16
- 2339 0548 00000000 		.quad	0x0
- 2339      00000000 
- 2340 0550 00000000 		.quad	0x0
- 2340      00000000 
- 2341              	.LLST18:
- 2342 0558 AB070000 		.quad	.LFB619-.Ltext0
- 2342      00000000 
- 2343 0560 AC070000 		.quad	.LCFI36-.Ltext0
- 2343      00000000 
- 2344 0568 0200     		.value	0x2
- 2345 056a 77       		.byte	0x77
- 2346 056b 08       		.sleb128 8
- 2347 056c AC070000 		.quad	.LCFI36-.Ltext0
- 2347      00000000 
- 2348 0574 AF070000 		.quad	.LCFI37-.Ltext0
- 2348      00000000 
- 2349 057c 0200     		.value	0x2
- 2350 057e 77       		.byte	0x77
- 2351 057f 10       		.sleb128 16
- 2352 0580 AF070000 		.quad	.LCFI37-.Ltext0
- 2352      00000000 
- 2353 0588 7F080000 		.quad	.LFE619-.Ltext0
- 2353      00000000 
- 2354 0590 0200     		.value	0x2
- 2355 0592 76       		.byte	0x76
- 2356 0593 10       		.sleb128 16
- 2357 0594 00000000 		.quad	0x0
- 2357      00000000 
- 2358 059c 00000000 		.quad	0x0
- 2358      00000000 
- 2359              	.LLST19:
- 2360 05a4 7F080000 		.quad	.LFB620-.Ltext0
- 2360      00000000 
- 2361 05ac 80080000 		.quad	.LCFI38-.Ltext0
- 2361      00000000 
- 2362 05b4 0200     		.value	0x2
- 2363 05b6 77       		.byte	0x77
- 2364 05b7 08       		.sleb128 8
-
GAS LISTING /tmp/ccWvEaWW.s 			page 68
-
-
- 2365 05b8 80080000 		.quad	.LCFI38-.Ltext0
- 2365      00000000 
- 2366 05c0 83080000 		.quad	.LCFI39-.Ltext0
- 2366      00000000 
- 2367 05c8 0200     		.value	0x2
- 2368 05ca 77       		.byte	0x77
- 2369 05cb 10       		.sleb128 16
- 2370 05cc 83080000 		.quad	.LCFI39-.Ltext0
- 2370      00000000 
- 2371 05d4 5C090000 		.quad	.LFE620-.Ltext0
- 2371      00000000 
- 2372 05dc 0200     		.value	0x2
- 2373 05de 76       		.byte	0x76
- 2374 05df 10       		.sleb128 16
- 2375 05e0 00000000 		.quad	0x0
- 2375      00000000 
- 2376 05e8 00000000 		.quad	0x0
- 2376      00000000 
- 2377              	.LLST20:
- 2378 05f0 5C090000 		.quad	.LFB621-.Ltext0
- 2378      00000000 
- 2379 05f8 5D090000 		.quad	.LCFI40-.Ltext0
- 2379      00000000 
- 2380 0600 0200     		.value	0x2
- 2381 0602 77       		.byte	0x77
- 2382 0603 08       		.sleb128 8
- 2383 0604 5D090000 		.quad	.LCFI40-.Ltext0
- 2383      00000000 
- 2384 060c 60090000 		.quad	.LCFI41-.Ltext0
- 2384      00000000 
- 2385 0614 0200     		.value	0x2
- 2386 0616 77       		.byte	0x77
- 2387 0617 10       		.sleb128 16
- 2388 0618 60090000 		.quad	.LCFI41-.Ltext0
- 2388      00000000 
- 2389 0620 220A0000 		.quad	.LFE621-.Ltext0
- 2389      00000000 
- 2390 0628 0200     		.value	0x2
- 2391 062a 76       		.byte	0x76
- 2392 062b 10       		.sleb128 16
- 2393 062c 00000000 		.quad	0x0
- 2393      00000000 
- 2394 0634 00000000 		.quad	0x0
- 2394      00000000 
- 2395              	.LLST21:
- 2396 063c 220A0000 		.quad	.LFB622-.Ltext0
- 2396      00000000 
- 2397 0644 230A0000 		.quad	.LCFI42-.Ltext0
- 2397      00000000 
- 2398 064c 0200     		.value	0x2
- 2399 064e 77       		.byte	0x77
- 2400 064f 08       		.sleb128 8
- 2401 0650 230A0000 		.quad	.LCFI42-.Ltext0
- 2401      00000000 
- 2402 0658 260A0000 		.quad	.LCFI43-.Ltext0
- 2402      00000000 
- 2403 0660 0200     		.value	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 69
-
-
- 2404 0662 77       		.byte	0x77
- 2405 0663 10       		.sleb128 16
- 2406 0664 260A0000 		.quad	.LCFI43-.Ltext0
- 2406      00000000 
- 2407 066c E80A0000 		.quad	.LFE622-.Ltext0
- 2407      00000000 
- 2408 0674 0200     		.value	0x2
- 2409 0676 76       		.byte	0x76
- 2410 0677 10       		.sleb128 16
- 2411 0678 00000000 		.quad	0x0
- 2411      00000000 
- 2412 0680 00000000 		.quad	0x0
- 2412      00000000 
- 2413              	.LLST22:
- 2414 0688 E80A0000 		.quad	.LFB623-.Ltext0
- 2414      00000000 
- 2415 0690 E90A0000 		.quad	.LCFI44-.Ltext0
- 2415      00000000 
- 2416 0698 0200     		.value	0x2
- 2417 069a 77       		.byte	0x77
- 2418 069b 08       		.sleb128 8
- 2419 069c E90A0000 		.quad	.LCFI44-.Ltext0
- 2419      00000000 
- 2420 06a4 EC0A0000 		.quad	.LCFI45-.Ltext0
- 2420      00000000 
- 2421 06ac 0200     		.value	0x2
- 2422 06ae 77       		.byte	0x77
- 2423 06af 10       		.sleb128 16
- 2424 06b0 EC0A0000 		.quad	.LCFI45-.Ltext0
- 2424      00000000 
- 2425 06b8 AE0B0000 		.quad	.LFE623-.Ltext0
- 2425      00000000 
- 2426 06c0 0200     		.value	0x2
- 2427 06c2 76       		.byte	0x76
- 2428 06c3 10       		.sleb128 16
- 2429 06c4 00000000 		.quad	0x0
- 2429      00000000 
- 2430 06cc 00000000 		.quad	0x0
- 2430      00000000 
- 2431              	.LLST23:
- 2432 06d4 AE0B0000 		.quad	.LFB624-.Ltext0
- 2432      00000000 
- 2433 06dc AF0B0000 		.quad	.LCFI46-.Ltext0
- 2433      00000000 
- 2434 06e4 0200     		.value	0x2
- 2435 06e6 77       		.byte	0x77
- 2436 06e7 08       		.sleb128 8
- 2437 06e8 AF0B0000 		.quad	.LCFI46-.Ltext0
- 2437      00000000 
- 2438 06f0 B20B0000 		.quad	.LCFI47-.Ltext0
- 2438      00000000 
- 2439 06f8 0200     		.value	0x2
- 2440 06fa 77       		.byte	0x77
- 2441 06fb 10       		.sleb128 16
- 2442 06fc B20B0000 		.quad	.LCFI47-.Ltext0
- 2442      00000000 
- 2443 0704 740C0000 		.quad	.LFE624-.Ltext0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 70
-
-
- 2443      00000000 
- 2444 070c 0200     		.value	0x2
- 2445 070e 76       		.byte	0x76
- 2446 070f 10       		.sleb128 16
- 2447 0710 00000000 		.quad	0x0
- 2447      00000000 
- 2448 0718 00000000 		.quad	0x0
- 2448      00000000 
- 2449              	.LLST24:
- 2450 0720 740C0000 		.quad	.LFB625-.Ltext0
- 2450      00000000 
- 2451 0728 750C0000 		.quad	.LCFI48-.Ltext0
- 2451      00000000 
- 2452 0730 0200     		.value	0x2
- 2453 0732 77       		.byte	0x77
- 2454 0733 08       		.sleb128 8
- 2455 0734 750C0000 		.quad	.LCFI48-.Ltext0
- 2455      00000000 
- 2456 073c 780C0000 		.quad	.LCFI49-.Ltext0
- 2456      00000000 
- 2457 0744 0200     		.value	0x2
- 2458 0746 77       		.byte	0x77
- 2459 0747 10       		.sleb128 16
- 2460 0748 780C0000 		.quad	.LCFI49-.Ltext0
- 2460      00000000 
- 2461 0750 AD0C0000 		.quad	.LFE625-.Ltext0
- 2461      00000000 
- 2462 0758 0200     		.value	0x2
- 2463 075a 76       		.byte	0x76
- 2464 075b 10       		.sleb128 16
- 2465 075c 00000000 		.quad	0x0
- 2465      00000000 
- 2466 0764 00000000 		.quad	0x0
- 2466      00000000 
- 2467              	.LLST25:
- 2468 076c AD0C0000 		.quad	.LFB626-.Ltext0
- 2468      00000000 
- 2469 0774 AE0C0000 		.quad	.LCFI50-.Ltext0
- 2469      00000000 
- 2470 077c 0200     		.value	0x2
- 2471 077e 77       		.byte	0x77
- 2472 077f 08       		.sleb128 8
- 2473 0780 AE0C0000 		.quad	.LCFI50-.Ltext0
- 2473      00000000 
- 2474 0788 B10C0000 		.quad	.LCFI51-.Ltext0
- 2474      00000000 
- 2475 0790 0200     		.value	0x2
- 2476 0792 77       		.byte	0x77
- 2477 0793 10       		.sleb128 16
- 2478 0794 B10C0000 		.quad	.LCFI51-.Ltext0
- 2478      00000000 
- 2479 079c E30C0000 		.quad	.LFE626-.Ltext0
- 2479      00000000 
- 2480 07a4 0200     		.value	0x2
- 2481 07a6 76       		.byte	0x76
- 2482 07a7 10       		.sleb128 16
- 2483 07a8 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 71
-
-
- 2483      00000000 
- 2484 07b0 00000000 		.quad	0x0
- 2484      00000000 
- 2485              	.LLST26:
- 2486 07b8 E30C0000 		.quad	.LFB627-.Ltext0
- 2486      00000000 
- 2487 07c0 E40C0000 		.quad	.LCFI52-.Ltext0
- 2487      00000000 
- 2488 07c8 0200     		.value	0x2
- 2489 07ca 77       		.byte	0x77
- 2490 07cb 08       		.sleb128 8
- 2491 07cc E40C0000 		.quad	.LCFI52-.Ltext0
- 2491      00000000 
- 2492 07d4 E70C0000 		.quad	.LCFI53-.Ltext0
- 2492      00000000 
- 2493 07dc 0200     		.value	0x2
- 2494 07de 77       		.byte	0x77
- 2495 07df 10       		.sleb128 16
- 2496 07e0 E70C0000 		.quad	.LCFI53-.Ltext0
- 2496      00000000 
- 2497 07e8 190D0000 		.quad	.LFE627-.Ltext0
- 2497      00000000 
- 2498 07f0 0200     		.value	0x2
- 2499 07f2 76       		.byte	0x76
- 2500 07f3 10       		.sleb128 16
- 2501 07f4 00000000 		.quad	0x0
- 2501      00000000 
- 2502 07fc 00000000 		.quad	0x0
- 2502      00000000 
- 2503              	.LLST27:
- 2504 0804 190D0000 		.quad	.LFB628-.Ltext0
- 2504      00000000 
- 2505 080c 1A0D0000 		.quad	.LCFI54-.Ltext0
- 2505      00000000 
- 2506 0814 0200     		.value	0x2
- 2507 0816 77       		.byte	0x77
- 2508 0817 08       		.sleb128 8
- 2509 0818 1A0D0000 		.quad	.LCFI54-.Ltext0
- 2509      00000000 
- 2510 0820 1D0D0000 		.quad	.LCFI55-.Ltext0
- 2510      00000000 
- 2511 0828 0200     		.value	0x2
- 2512 082a 77       		.byte	0x77
- 2513 082b 10       		.sleb128 16
- 2514 082c 1D0D0000 		.quad	.LCFI55-.Ltext0
- 2514      00000000 
- 2515 0834 740D0000 		.quad	.LFE628-.Ltext0
- 2515      00000000 
- 2516 083c 0200     		.value	0x2
- 2517 083e 76       		.byte	0x76
- 2518 083f 10       		.sleb128 16
- 2519 0840 00000000 		.quad	0x0
- 2519      00000000 
- 2520 0848 00000000 		.quad	0x0
- 2520      00000000 
- 2521              	.LLST28:
- 2522 0850 740D0000 		.quad	.LFB629-.Ltext0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 72
-
-
- 2522      00000000 
- 2523 0858 750D0000 		.quad	.LCFI56-.Ltext0
- 2523      00000000 
- 2524 0860 0200     		.value	0x2
- 2525 0862 77       		.byte	0x77
- 2526 0863 08       		.sleb128 8
- 2527 0864 750D0000 		.quad	.LCFI56-.Ltext0
- 2527      00000000 
- 2528 086c 780D0000 		.quad	.LCFI57-.Ltext0
- 2528      00000000 
- 2529 0874 0200     		.value	0x2
- 2530 0876 77       		.byte	0x77
- 2531 0877 10       		.sleb128 16
- 2532 0878 780D0000 		.quad	.LCFI57-.Ltext0
- 2532      00000000 
- 2533 0880 120E0000 		.quad	.LFE629-.Ltext0
- 2533      00000000 
- 2534 0888 0200     		.value	0x2
- 2535 088a 76       		.byte	0x76
- 2536 088b 10       		.sleb128 16
- 2537 088c 00000000 		.quad	0x0
- 2537      00000000 
- 2538 0894 00000000 		.quad	0x0
- 2538      00000000 
- 2539              	.LLST29:
- 2540 089c 120E0000 		.quad	.LFB630-.Ltext0
- 2540      00000000 
- 2541 08a4 130E0000 		.quad	.LCFI58-.Ltext0
- 2541      00000000 
- 2542 08ac 0200     		.value	0x2
- 2543 08ae 77       		.byte	0x77
- 2544 08af 08       		.sleb128 8
- 2545 08b0 130E0000 		.quad	.LCFI58-.Ltext0
- 2545      00000000 
- 2546 08b8 160E0000 		.quad	.LCFI59-.Ltext0
- 2546      00000000 
- 2547 08c0 0200     		.value	0x2
- 2548 08c2 77       		.byte	0x77
- 2549 08c3 10       		.sleb128 16
- 2550 08c4 160E0000 		.quad	.LCFI59-.Ltext0
- 2550      00000000 
- 2551 08cc 6D0E0000 		.quad	.LFE630-.Ltext0
- 2551      00000000 
- 2552 08d4 0200     		.value	0x2
- 2553 08d6 76       		.byte	0x76
- 2554 08d7 10       		.sleb128 16
- 2555 08d8 00000000 		.quad	0x0
- 2555      00000000 
- 2556 08e0 00000000 		.quad	0x0
- 2556      00000000 
- 2557              	.LLST30:
- 2558 08e8 6D0E0000 		.quad	.LFB631-.Ltext0
- 2558      00000000 
- 2559 08f0 6E0E0000 		.quad	.LCFI60-.Ltext0
- 2559      00000000 
- 2560 08f8 0200     		.value	0x2
- 2561 08fa 77       		.byte	0x77
-
GAS LISTING /tmp/ccWvEaWW.s 			page 73
-
-
- 2562 08fb 08       		.sleb128 8
- 2563 08fc 6E0E0000 		.quad	.LCFI60-.Ltext0
- 2563      00000000 
- 2564 0904 710E0000 		.quad	.LCFI61-.Ltext0
- 2564      00000000 
- 2565 090c 0200     		.value	0x2
- 2566 090e 77       		.byte	0x77
- 2567 090f 10       		.sleb128 16
- 2568 0910 710E0000 		.quad	.LCFI61-.Ltext0
- 2568      00000000 
- 2569 0918 020F0000 		.quad	.LFE631-.Ltext0
- 2569      00000000 
- 2570 0920 0200     		.value	0x2
- 2571 0922 76       		.byte	0x76
- 2572 0923 10       		.sleb128 16
- 2573 0924 00000000 		.quad	0x0
- 2573      00000000 
- 2574 092c 00000000 		.quad	0x0
- 2574      00000000 
- 2575              	.LLST31:
- 2576 0934 020F0000 		.quad	.LFB632-.Ltext0
- 2576      00000000 
- 2577 093c 030F0000 		.quad	.LCFI62-.Ltext0
- 2577      00000000 
- 2578 0944 0200     		.value	0x2
- 2579 0946 77       		.byte	0x77
- 2580 0947 08       		.sleb128 8
- 2581 0948 030F0000 		.quad	.LCFI62-.Ltext0
- 2581      00000000 
- 2582 0950 060F0000 		.quad	.LCFI63-.Ltext0
- 2582      00000000 
- 2583 0958 0200     		.value	0x2
- 2584 095a 77       		.byte	0x77
- 2585 095b 10       		.sleb128 16
- 2586 095c 060F0000 		.quad	.LCFI63-.Ltext0
- 2586      00000000 
- 2587 0964 64100000 		.quad	.LFE632-.Ltext0
- 2587      00000000 
- 2588 096c 0200     		.value	0x2
- 2589 096e 76       		.byte	0x76
- 2590 096f 10       		.sleb128 16
- 2591 0970 00000000 		.quad	0x0
- 2591      00000000 
- 2592 0978 00000000 		.quad	0x0
- 2592      00000000 
- 2593              		.file 2 "/usr/include/stdint.h"
- 2594              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
- 2595              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/atomic32.h"
- 2596              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/refcount.h"
- 2597              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/krypto/cipher.h"
- 2598              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-impl.h"
- 2599              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 2600              		.file 9 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 2601              		.file 10 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi-priv.h"
- 2602              		.file 11 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi-priv.h"
- 2603              		.file 12 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/krypto/ciphermgr.h"
- 2604              		.file 13 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 74
-
-
- 2605              		.file 14 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 2606              		.file 15 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
- 2607              		.section	.debug_info
- 2608 0000 4D1F0000 		.long	0x1f4d
- 2609 0004 0200     		.value	0x2
- 2610 0006 00000000 		.long	.Ldebug_abbrev0
- 2611 000a 08       		.byte	0x8
- 2612 000b 01       		.uleb128 0x1
- 2613 000c 00000000 		.long	.LASF392
- 2614 0010 01       		.byte	0x1
- 2615 0011 00000000 		.long	.LASF393
- 2616 0015 00000000 		.long	.LASF394
- 2617 0019 00000000 		.quad	.Ltext0
- 2617      00000000 
- 2618 0021 00000000 		.quad	.Letext0
- 2618      00000000 
- 2619 0029 00000000 		.long	.Ldebug_line0
- 2620 002d 02       		.uleb128 0x2
- 2621 002e 01       		.byte	0x1
- 2622 002f 06       		.byte	0x6
- 2623 0030 00000000 		.long	.LASF0
- 2624 0034 02       		.uleb128 0x2
- 2625 0035 02       		.byte	0x2
- 2626 0036 05       		.byte	0x5
- 2627 0037 00000000 		.long	.LASF1
- 2628 003b 03       		.uleb128 0x3
- 2629 003c 04       		.byte	0x4
- 2630 003d 05       		.byte	0x5
- 2631 003e 696E7400 		.string	"int"
- 2632 0042 02       		.uleb128 0x2
- 2633 0043 08       		.byte	0x8
- 2634 0044 05       		.byte	0x5
- 2635 0045 00000000 		.long	.LASF2
- 2636 0049 04       		.uleb128 0x4
- 2637 004a 00000000 		.long	.LASF5
- 2638 004e 02       		.byte	0x2
- 2639 004f 31       		.byte	0x31
- 2640 0050 54000000 		.long	0x54
- 2641 0054 02       		.uleb128 0x2
- 2642 0055 01       		.byte	0x1
- 2643 0056 08       		.byte	0x8
- 2644 0057 00000000 		.long	.LASF3
- 2645 005b 02       		.uleb128 0x2
- 2646 005c 02       		.byte	0x2
- 2647 005d 07       		.byte	0x7
- 2648 005e 00000000 		.long	.LASF4
- 2649 0062 04       		.uleb128 0x4
- 2650 0063 00000000 		.long	.LASF6
- 2651 0067 02       		.byte	0x2
- 2652 0068 34       		.byte	0x34
- 2653 0069 6D000000 		.long	0x6d
- 2654 006d 02       		.uleb128 0x2
- 2655 006e 04       		.byte	0x4
- 2656 006f 07       		.byte	0x7
- 2657 0070 00000000 		.long	.LASF7
- 2658 0074 02       		.uleb128 0x2
- 2659 0075 08       		.byte	0x8
-
GAS LISTING /tmp/ccWvEaWW.s 			page 75
-
-
- 2660 0076 07       		.byte	0x7
- 2661 0077 00000000 		.long	.LASF8
- 2662 007b 04       		.uleb128 0x4
- 2663 007c 00000000 		.long	.LASF9
- 2664 0080 03       		.byte	0x3
- 2665 0081 30       		.byte	0x30
- 2666 0082 62000000 		.long	0x62
- 2667 0086 04       		.uleb128 0x4
- 2668 0087 00000000 		.long	.LASF10
- 2669 008b 04       		.byte	0x4
- 2670 008c 27       		.byte	0x27
- 2671 008d 91000000 		.long	0x91
- 2672 0091 05       		.uleb128 0x5
- 2673 0092 00000000 		.long	.LASF10
- 2674 0096 04       		.byte	0x4
- 2675 0097 04       		.byte	0x4
- 2676 0098 27       		.byte	0x27
- 2677 0099 AC000000 		.long	0xac
- 2678 009d 06       		.uleb128 0x6
- 2679 009e 00000000 		.long	.LASF34
- 2680 00a2 04       		.byte	0x4
- 2681 00a3 2A       		.byte	0x2a
- 2682 00a4 AC000000 		.long	0xac
- 2683 00a8 02       		.byte	0x2
- 2684 00a9 23       		.byte	0x23
- 2685 00aa 00       		.uleb128 0x0
- 2686 00ab 00       		.byte	0x0
- 2687 00ac 07       		.uleb128 0x7
- 2688 00ad 3B000000 		.long	0x3b
- 2689 00b1 08       		.uleb128 0x8
- 2690 00b2 08       		.byte	0x8
- 2691 00b3 07       		.byte	0x7
- 2692 00b4 09       		.uleb128 0x9
- 2693 00b5 08       		.byte	0x8
- 2694 00b6 0A       		.uleb128 0xa
- 2695 00b7 08       		.byte	0x8
- 2696 00b8 BC000000 		.long	0xbc
- 2697 00bc 0B       		.uleb128 0xb
- 2698 00bd C1000000 		.long	0xc1
- 2699 00c1 02       		.uleb128 0x2
- 2700 00c2 01       		.byte	0x1
- 2701 00c3 06       		.byte	0x6
- 2702 00c4 00000000 		.long	.LASF11
- 2703 00c8 0C       		.uleb128 0xc
- 2704 00c9 04       		.byte	0x4
- 2705 00ca 0D       		.byte	0xd
- 2706 00cb D6       		.byte	0xd6
- 2707 00cc 49010000 		.long	0x149
- 2708 00d0 0D       		.uleb128 0xd
- 2709 00d1 00000000 		.long	.LASF12
- 2710 00d5 7F       		.sleb128 -1
- 2711 00d6 0D       		.uleb128 0xd
- 2712 00d7 00000000 		.long	.LASF13
- 2713 00db 00       		.sleb128 0
- 2714 00dc 0D       		.uleb128 0xd
- 2715 00dd 00000000 		.long	.LASF14
- 2716 00e1 01       		.sleb128 1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 76
-
-
- 2717 00e2 0D       		.uleb128 0xd
- 2718 00e3 00000000 		.long	.LASF15
- 2719 00e7 02       		.sleb128 2
- 2720 00e8 0D       		.uleb128 0xd
- 2721 00e9 00000000 		.long	.LASF16
- 2722 00ed 03       		.sleb128 3
- 2723 00ee 0D       		.uleb128 0xd
- 2724 00ef 00000000 		.long	.LASF17
- 2725 00f3 04       		.sleb128 4
- 2726 00f4 0D       		.uleb128 0xd
- 2727 00f5 00000000 		.long	.LASF18
- 2728 00f9 05       		.sleb128 5
- 2729 00fa 0D       		.uleb128 0xd
- 2730 00fb 00000000 		.long	.LASF19
- 2731 00ff 06       		.sleb128 6
- 2732 0100 0D       		.uleb128 0xd
- 2733 0101 00000000 		.long	.LASF20
- 2734 0105 07       		.sleb128 7
- 2735 0106 0D       		.uleb128 0xd
- 2736 0107 00000000 		.long	.LASF21
- 2737 010b 08       		.sleb128 8
- 2738 010c 0D       		.uleb128 0xd
- 2739 010d 00000000 		.long	.LASF22
- 2740 0111 09       		.sleb128 9
- 2741 0112 0D       		.uleb128 0xd
- 2742 0113 00000000 		.long	.LASF23
- 2743 0117 0A       		.sleb128 10
- 2744 0118 0D       		.uleb128 0xd
- 2745 0119 00000000 		.long	.LASF24
- 2746 011d 0B       		.sleb128 11
- 2747 011e 0D       		.uleb128 0xd
- 2748 011f 00000000 		.long	.LASF25
- 2749 0123 0C       		.sleb128 12
- 2750 0124 0D       		.uleb128 0xd
- 2751 0125 00000000 		.long	.LASF26
- 2752 0129 0D       		.sleb128 13
- 2753 012a 0D       		.uleb128 0xd
- 2754 012b 00000000 		.long	.LASF27
- 2755 012f 0E       		.sleb128 14
- 2756 0130 0D       		.uleb128 0xd
- 2757 0131 00000000 		.long	.LASF28
- 2758 0135 0F       		.sleb128 15
- 2759 0136 0D       		.uleb128 0xd
- 2760 0137 00000000 		.long	.LASF29
- 2761 013b 10       		.sleb128 16
- 2762 013c 0D       		.uleb128 0xd
- 2763 013d 00000000 		.long	.LASF30
- 2764 0141 11       		.sleb128 17
- 2765 0142 0D       		.uleb128 0xd
- 2766 0143 00000000 		.long	.LASF31
- 2767 0147 12       		.sleb128 18
- 2768 0148 00       		.byte	0x0
- 2769 0149 04       		.uleb128 0x4
- 2770 014a 00000000 		.long	.LASF32
- 2771 014e 05       		.byte	0x5
- 2772 014f 42       		.byte	0x42
- 2773 0150 86000000 		.long	0x86
-
GAS LISTING /tmp/ccWvEaWW.s 			page 77
-
-
- 2774 0154 04       		.uleb128 0x4
- 2775 0155 00000000 		.long	.LASF33
- 2776 0159 06       		.byte	0x6
- 2777 015a 20       		.byte	0x20
- 2778 015b 5F010000 		.long	0x15f
- 2779 015f 05       		.uleb128 0x5
- 2780 0160 00000000 		.long	.LASF33
- 2781 0164 48       		.byte	0x48
- 2782 0165 06       		.byte	0x6
- 2783 0166 20       		.byte	0x20
- 2784 0167 F7010000 		.long	0x1f7
- 2785 016b 06       		.uleb128 0x6
- 2786 016c 00000000 		.long	.LASF35
- 2787 0170 07       		.byte	0x7
- 2788 0171 9A       		.byte	0x9a
- 2789 0172 49010000 		.long	0x149
- 2790 0176 02       		.byte	0x2
- 2791 0177 23       		.byte	0x23
- 2792 0178 00       		.uleb128 0x0
- 2793 0179 06       		.uleb128 0x6
- 2794 017a 00000000 		.long	.LASF36
- 2795 017e 07       		.byte	0x7
- 2796 017f 9B       		.byte	0x9b
- 2797 0180 62000000 		.long	0x62
- 2798 0184 02       		.byte	0x2
- 2799 0185 23       		.byte	0x23
- 2800 0186 04       		.uleb128 0x4
- 2801 0187 0E       		.uleb128 0xe
- 2802 0188 767400   		.string	"vt"
- 2803 018b 07       		.byte	0x7
- 2804 018c 9C       		.byte	0x9c
- 2805 018d BC040000 		.long	0x4bc
- 2806 0191 02       		.byte	0x2
- 2807 0192 23       		.byte	0x23
- 2808 0193 08       		.uleb128 0x8
- 2809 0194 06       		.uleb128 0x6
- 2810 0195 00000000 		.long	.LASF37
- 2811 0199 07       		.byte	0x7
- 2812 019a 9D       		.byte	0x9d
- 2813 019b B6000000 		.long	0xb6
- 2814 019f 02       		.byte	0x2
- 2815 01a0 23       		.byte	0x23
- 2816 01a1 10       		.uleb128 0x10
- 2817 01a2 06       		.uleb128 0x6
- 2818 01a3 00000000 		.long	.LASF38
- 2819 01a7 07       		.byte	0x7
- 2820 01a8 9E       		.byte	0x9e
- 2821 01a9 B4000000 		.long	0xb4
- 2822 01ad 02       		.byte	0x2
- 2823 01ae 23       		.byte	0x23
- 2824 01af 18       		.uleb128 0x18
- 2825 01b0 06       		.uleb128 0x6
- 2826 01b1 00000000 		.long	.LASF39
- 2827 01b5 07       		.byte	0x7
- 2828 01b6 9F       		.byte	0x9f
- 2829 01b7 B4000000 		.long	0xb4
- 2830 01bb 02       		.byte	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 78
-
-
- 2831 01bc 23       		.byte	0x23
- 2832 01bd 20       		.uleb128 0x20
- 2833 01be 06       		.uleb128 0x6
- 2834 01bf 00000000 		.long	.LASF40
- 2835 01c3 07       		.byte	0x7
- 2836 01c4 A0       		.byte	0xa0
- 2837 01c5 B4000000 		.long	0xb4
- 2838 01c9 02       		.byte	0x2
- 2839 01ca 23       		.byte	0x23
- 2840 01cb 28       		.uleb128 0x28
- 2841 01cc 06       		.uleb128 0x6
- 2842 01cd 00000000 		.long	.LASF41
- 2843 01d1 07       		.byte	0x7
- 2844 01d2 A1       		.byte	0xa1
- 2845 01d3 B4000000 		.long	0xb4
- 2846 01d7 02       		.byte	0x2
- 2847 01d8 23       		.byte	0x23
- 2848 01d9 30       		.uleb128 0x30
- 2849 01da 06       		.uleb128 0x6
- 2850 01db 00000000 		.long	.LASF42
- 2851 01df 07       		.byte	0x7
- 2852 01e0 A2       		.byte	0xa2
- 2853 01e1 F7010000 		.long	0x1f7
- 2854 01e5 02       		.byte	0x2
- 2855 01e6 23       		.byte	0x23
- 2856 01e7 38       		.uleb128 0x38
- 2857 01e8 06       		.uleb128 0x6
- 2858 01e9 00000000 		.long	.LASF43
- 2859 01ed 07       		.byte	0x7
- 2860 01ee A3       		.byte	0xa3
- 2861 01ef F7010000 		.long	0x1f7
- 2862 01f3 02       		.byte	0x2
- 2863 01f4 23       		.byte	0x23
- 2864 01f5 40       		.uleb128 0x40
- 2865 01f6 00       		.byte	0x0
- 2866 01f7 04       		.uleb128 0x4
- 2867 01f8 00000000 		.long	.LASF44
- 2868 01fc 06       		.byte	0x6
- 2869 01fd 40       		.byte	0x40
- 2870 01fe 02020000 		.long	0x202
- 2871 0202 0A       		.uleb128 0xa
- 2872 0203 08       		.byte	0x8
- 2873 0204 08020000 		.long	0x208
- 2874 0208 0F       		.uleb128 0xf
- 2875 0209 01       		.byte	0x1
- 2876 020a 14020000 		.long	0x214
- 2877 020e 10       		.uleb128 0x10
- 2878 020f B4000000 		.long	0xb4
- 2879 0213 00       		.byte	0x0
- 2880 0214 04       		.uleb128 0x4
- 2881 0215 00000000 		.long	.LASF45
- 2882 0219 07       		.byte	0x7
- 2883 021a 2C       		.byte	0x2c
- 2884 021b 1F020000 		.long	0x21f
- 2885 021f 05       		.uleb128 0x5
- 2886 0220 00000000 		.long	.LASF45
- 2887 0224 50       		.byte	0x50
-
GAS LISTING /tmp/ccWvEaWW.s 			page 79
-
-
- 2888 0225 07       		.byte	0x7
- 2889 0226 2B       		.byte	0x2b
- 2890 0227 48020000 		.long	0x248
- 2891 022b 0E       		.uleb128 0xe
- 2892 022c 64616400 		.string	"dad"
- 2893 0230 01       		.byte	0x1
- 2894 0231 3E       		.byte	0x3e
- 2895 0232 54010000 		.long	0x154
- 2896 0236 02       		.byte	0x2
- 2897 0237 23       		.byte	0x23
- 2898 0238 00       		.uleb128 0x0
- 2899 0239 06       		.uleb128 0x6
- 2900 023a 00000000 		.long	.LASF46
- 2901 023e 01       		.byte	0x1
- 2902 023f 3F       		.byte	0x3f
- 2903 0240 5C070000 		.long	0x75c
- 2904 0244 02       		.byte	0x2
- 2905 0245 23       		.byte	0x23
- 2906 0246 48       		.uleb128 0x48
- 2907 0247 00       		.byte	0x0
- 2908 0248 04       		.uleb128 0x4
- 2909 0249 00000000 		.long	.LASF47
- 2910 024d 07       		.byte	0x7
- 2911 024e 2F       		.byte	0x2f
- 2912 024f 53020000 		.long	0x253
- 2913 0253 05       		.uleb128 0x5
- 2914 0254 00000000 		.long	.LASF47
- 2915 0258 08       		.byte	0x8
- 2916 0259 07       		.byte	0x7
- 2917 025a 2F       		.byte	0x2f
- 2918 025b 7C020000 		.long	0x27c
- 2919 025f 0E       		.uleb128 0xe
- 2920 0260 6D616A00 		.string	"maj"
- 2921 0264 07       		.byte	0x7
- 2922 0265 32       		.byte	0x32
- 2923 0266 62000000 		.long	0x62
- 2924 026a 02       		.byte	0x2
- 2925 026b 23       		.byte	0x23
- 2926 026c 00       		.uleb128 0x0
- 2927 026d 0E       		.uleb128 0xe
- 2928 026e 6D696E00 		.string	"min"
- 2929 0272 07       		.byte	0x7
- 2930 0273 33       		.byte	0x33
- 2931 0274 62000000 		.long	0x62
- 2932 0278 02       		.byte	0x2
- 2933 0279 23       		.byte	0x23
- 2934 027a 04       		.uleb128 0x4
- 2935 027b 00       		.byte	0x0
- 2936 027c 04       		.uleb128 0x4
- 2937 027d 00000000 		.long	.LASF48
- 2938 0281 07       		.byte	0x7
- 2939 0282 37       		.byte	0x37
- 2940 0283 87020000 		.long	0x287
- 2941 0287 05       		.uleb128 0x5
- 2942 0288 00000000 		.long	.LASF48
- 2943 028c B0       		.byte	0xb0
- 2944 028d 07       		.byte	0x7
-
GAS LISTING /tmp/ccWvEaWW.s 			page 80
-
-
- 2945 028e 37       		.byte	0x37
- 2946 028f CE030000 		.long	0x3ce
- 2947 0293 06       		.uleb128 0x6
- 2948 0294 00000000 		.long	.LASF49
- 2949 0298 07       		.byte	0x7
- 2950 0299 3A       		.byte	0x3a
- 2951 029a 48020000 		.long	0x248
- 2952 029e 02       		.byte	0x2
- 2953 029f 23       		.byte	0x23
- 2954 02a0 00       		.uleb128 0x0
- 2955 02a1 06       		.uleb128 0x6
- 2956 02a2 00000000 		.long	.LASF50
- 2957 02a6 07       		.byte	0x7
- 2958 02a7 3E       		.byte	0x3e
- 2959 02a8 E4030000 		.long	0x3e4
- 2960 02ac 02       		.byte	0x2
- 2961 02ad 23       		.byte	0x23
- 2962 02ae 08       		.uleb128 0x8
- 2963 02af 06       		.uleb128 0x6
- 2964 02b0 00000000 		.long	.LASF51
- 2965 02b4 07       		.byte	0x7
- 2966 02b5 40       		.byte	0x40
- 2967 02b6 04040000 		.long	0x404
- 2968 02ba 02       		.byte	0x2
- 2969 02bb 23       		.byte	0x23
- 2970 02bc 10       		.uleb128 0x10
- 2971 02bd 06       		.uleb128 0x6
- 2972 02be 00000000 		.long	.LASF52
- 2973 02c2 07       		.byte	0x7
- 2974 02c3 44       		.byte	0x44
- 2975 02c4 04040000 		.long	0x404
- 2976 02c8 02       		.byte	0x2
- 2977 02c9 23       		.byte	0x23
- 2978 02ca 18       		.uleb128 0x18
- 2979 02cb 06       		.uleb128 0x6
- 2980 02cc 00000000 		.long	.LASF53
- 2981 02d0 07       		.byte	0x7
- 2982 02d1 48       		.byte	0x48
- 2983 02d2 26040000 		.long	0x426
- 2984 02d6 02       		.byte	0x2
- 2985 02d7 23       		.byte	0x23
- 2986 02d8 20       		.uleb128 0x20
- 2987 02d9 06       		.uleb128 0x6
- 2988 02da 00000000 		.long	.LASF54
- 2989 02de 07       		.byte	0x7
- 2990 02df 4B       		.byte	0x4b
- 2991 02e0 26040000 		.long	0x426
- 2992 02e4 02       		.byte	0x2
- 2993 02e5 23       		.byte	0x23
- 2994 02e6 28       		.uleb128 0x28
- 2995 02e7 06       		.uleb128 0x6
- 2996 02e8 00000000 		.long	.LASF55
- 2997 02ec 07       		.byte	0x7
- 2998 02ed 4E       		.byte	0x4e
- 2999 02ee 41040000 		.long	0x441
- 3000 02f2 02       		.byte	0x2
- 3001 02f3 23       		.byte	0x23
-
GAS LISTING /tmp/ccWvEaWW.s 			page 81
-
-
- 3002 02f4 30       		.uleb128 0x30
- 3003 02f5 06       		.uleb128 0x6
- 3004 02f6 00000000 		.long	.LASF56
- 3005 02fa 07       		.byte	0x7
- 3006 02fb 51       		.byte	0x51
- 3007 02fc 41040000 		.long	0x441
- 3008 0300 02       		.byte	0x2
- 3009 0301 23       		.byte	0x23
- 3010 0302 38       		.uleb128 0x38
- 3011 0303 06       		.uleb128 0x6
- 3012 0304 00000000 		.long	.LASF57
- 3013 0308 07       		.byte	0x7
- 3014 0309 55       		.byte	0x55
- 3015 030a 6C040000 		.long	0x46c
- 3016 030e 02       		.byte	0x2
- 3017 030f 23       		.byte	0x23
- 3018 0310 40       		.uleb128 0x40
- 3019 0311 06       		.uleb128 0x6
- 3020 0312 00000000 		.long	.LASF58
- 3021 0316 07       		.byte	0x7
- 3022 0317 58       		.byte	0x58
- 3023 0318 6C040000 		.long	0x46c
- 3024 031c 02       		.byte	0x2
- 3025 031d 23       		.byte	0x23
- 3026 031e 48       		.uleb128 0x48
- 3027 031f 06       		.uleb128 0x6
- 3028 0320 00000000 		.long	.LASF59
- 3029 0324 07       		.byte	0x7
- 3030 0325 5D       		.byte	0x5d
- 3031 0326 91040000 		.long	0x491
- 3032 032a 02       		.byte	0x2
- 3033 032b 23       		.byte	0x23
- 3034 032c 50       		.uleb128 0x50
- 3035 032d 06       		.uleb128 0x6
- 3036 032e 00000000 		.long	.LASF60
- 3037 0332 07       		.byte	0x7
- 3038 0333 62       		.byte	0x62
- 3039 0334 91040000 		.long	0x491
- 3040 0338 02       		.byte	0x2
- 3041 0339 23       		.byte	0x23
- 3042 033a 58       		.uleb128 0x58
- 3043 033b 06       		.uleb128 0x6
- 3044 033c 00000000 		.long	.LASF61
- 3045 0340 07       		.byte	0x7
- 3046 0341 68       		.byte	0x68
- 3047 0342 B6040000 		.long	0x4b6
- 3048 0346 02       		.byte	0x2
- 3049 0347 23       		.byte	0x23
- 3050 0348 60       		.uleb128 0x60
- 3051 0349 06       		.uleb128 0x6
- 3052 034a 00000000 		.long	.LASF62
- 3053 034e 07       		.byte	0x7
- 3054 034f 6C       		.byte	0x6c
- 3055 0350 B6040000 		.long	0x4b6
- 3056 0354 02       		.byte	0x2
- 3057 0355 23       		.byte	0x23
- 3058 0356 68       		.uleb128 0x68
-
GAS LISTING /tmp/ccWvEaWW.s 			page 82
-
-
- 3059 0357 06       		.uleb128 0x6
- 3060 0358 00000000 		.long	.LASF63
- 3061 035c 07       		.byte	0x7
- 3062 035d 72       		.byte	0x72
- 3063 035e B6040000 		.long	0x4b6
- 3064 0362 02       		.byte	0x2
- 3065 0363 23       		.byte	0x23
- 3066 0364 70       		.uleb128 0x70
- 3067 0365 06       		.uleb128 0x6
- 3068 0366 00000000 		.long	.LASF64
- 3069 036a 07       		.byte	0x7
- 3070 036b 74       		.byte	0x74
- 3071 036c B6040000 		.long	0x4b6
- 3072 0370 02       		.byte	0x2
- 3073 0371 23       		.byte	0x23
- 3074 0372 78       		.uleb128 0x78
- 3075 0373 06       		.uleb128 0x6
- 3076 0374 00000000 		.long	.LASF65
- 3077 0378 07       		.byte	0x7
- 3078 0379 78       		.byte	0x78
- 3079 037a B6040000 		.long	0x4b6
- 3080 037e 03       		.byte	0x3
- 3081 037f 23       		.byte	0x23
- 3082 0380 8001     		.uleb128 0x80
- 3083 0382 06       		.uleb128 0x6
- 3084 0383 00000000 		.long	.LASF66
- 3085 0387 07       		.byte	0x7
- 3086 0388 7A       		.byte	0x7a
- 3087 0389 B6040000 		.long	0x4b6
- 3088 038d 03       		.byte	0x3
- 3089 038e 23       		.byte	0x23
- 3090 038f 8801     		.uleb128 0x88
- 3091 0391 06       		.uleb128 0x6
- 3092 0392 00000000 		.long	.LASF67
- 3093 0396 07       		.byte	0x7
- 3094 0397 7E       		.byte	0x7e
- 3095 0398 B6040000 		.long	0x4b6
- 3096 039c 03       		.byte	0x3
- 3097 039d 23       		.byte	0x23
- 3098 039e 9001     		.uleb128 0x90
- 3099 03a0 06       		.uleb128 0x6
- 3100 03a1 00000000 		.long	.LASF68
- 3101 03a5 07       		.byte	0x7
- 3102 03a6 80       		.byte	0x80
- 3103 03a7 B6040000 		.long	0x4b6
- 3104 03ab 03       		.byte	0x3
- 3105 03ac 23       		.byte	0x23
- 3106 03ad 9801     		.uleb128 0x98
- 3107 03af 06       		.uleb128 0x6
- 3108 03b0 00000000 		.long	.LASF69
- 3109 03b4 07       		.byte	0x7
- 3110 03b5 84       		.byte	0x84
- 3111 03b6 B6040000 		.long	0x4b6
- 3112 03ba 03       		.byte	0x3
- 3113 03bb 23       		.byte	0x23
- 3114 03bc A001     		.uleb128 0xa0
- 3115 03be 06       		.uleb128 0x6
-
GAS LISTING /tmp/ccWvEaWW.s 			page 83
-
-
- 3116 03bf 00000000 		.long	.LASF70
- 3117 03c3 07       		.byte	0x7
- 3118 03c4 86       		.byte	0x86
- 3119 03c5 B6040000 		.long	0x4b6
- 3120 03c9 03       		.byte	0x3
- 3121 03ca 23       		.byte	0x23
- 3122 03cb A801     		.uleb128 0xa8
- 3123 03cd 00       		.byte	0x0
- 3124 03ce 11       		.uleb128 0x11
- 3125 03cf 01       		.byte	0x1
- 3126 03d0 7B000000 		.long	0x7b
- 3127 03d4 DE030000 		.long	0x3de
- 3128 03d8 10       		.uleb128 0x10
- 3129 03d9 DE030000 		.long	0x3de
- 3130 03dd 00       		.byte	0x0
- 3131 03de 0A       		.uleb128 0xa
- 3132 03df 08       		.byte	0x8
- 3133 03e0 14020000 		.long	0x214
- 3134 03e4 0A       		.uleb128 0xa
- 3135 03e5 08       		.byte	0x8
- 3136 03e6 CE030000 		.long	0x3ce
- 3137 03ea 11       		.uleb128 0x11
- 3138 03eb 01       		.byte	0x1
- 3139 03ec 7B000000 		.long	0x7b
- 3140 03f0 04040000 		.long	0x404
- 3141 03f4 10       		.uleb128 0x10
- 3142 03f5 DE030000 		.long	0x3de
- 3143 03f9 10       		.uleb128 0x10
- 3144 03fa B6000000 		.long	0xb6
- 3145 03fe 10       		.uleb128 0x10
- 3146 03ff 62000000 		.long	0x62
- 3147 0403 00       		.byte	0x0
- 3148 0404 0A       		.uleb128 0xa
- 3149 0405 08       		.byte	0x8
- 3150 0406 EA030000 		.long	0x3ea
- 3151 040a 11       		.uleb128 0x11
- 3152 040b 01       		.byte	0x1
- 3153 040c 7B000000 		.long	0x7b
- 3154 0410 1F040000 		.long	0x41f
- 3155 0414 10       		.uleb128 0x10
- 3156 0415 DE030000 		.long	0x3de
- 3157 0419 10       		.uleb128 0x10
- 3158 041a 1F040000 		.long	0x41f
- 3159 041e 00       		.byte	0x0
- 3160 041f 0A       		.uleb128 0xa
- 3161 0420 08       		.byte	0x8
- 3162 0421 25040000 		.long	0x425
- 3163 0425 12       		.uleb128 0x12
- 3164 0426 0A       		.uleb128 0xa
- 3165 0427 08       		.byte	0x8
- 3166 0428 0A040000 		.long	0x40a
- 3167 042c 11       		.uleb128 0x11
- 3168 042d 01       		.byte	0x1
- 3169 042e 7B000000 		.long	0x7b
- 3170 0432 41040000 		.long	0x441
- 3171 0436 10       		.uleb128 0x10
- 3172 0437 DE030000 		.long	0x3de
-
GAS LISTING /tmp/ccWvEaWW.s 			page 84
-
-
- 3173 043b 10       		.uleb128 0x10
- 3174 043c F7010000 		.long	0x1f7
- 3175 0440 00       		.byte	0x0
- 3176 0441 0A       		.uleb128 0xa
- 3177 0442 08       		.byte	0x8
- 3178 0443 2C040000 		.long	0x42c
- 3179 0447 11       		.uleb128 0x11
- 3180 0448 01       		.byte	0x1
- 3181 0449 7B000000 		.long	0x7b
- 3182 044d 61040000 		.long	0x461
- 3183 0451 10       		.uleb128 0x10
- 3184 0452 61040000 		.long	0x461
- 3185 0456 10       		.uleb128 0x10
- 3186 0457 1F040000 		.long	0x41f
- 3187 045b 10       		.uleb128 0x10
- 3188 045c B4000000 		.long	0xb4
- 3189 0460 00       		.byte	0x0
- 3190 0461 0A       		.uleb128 0xa
- 3191 0462 08       		.byte	0x8
- 3192 0463 67040000 		.long	0x467
- 3193 0467 0B       		.uleb128 0xb
- 3194 0468 14020000 		.long	0x214
- 3195 046c 0A       		.uleb128 0xa
- 3196 046d 08       		.byte	0x8
- 3197 046e 47040000 		.long	0x447
- 3198 0472 11       		.uleb128 0x11
- 3199 0473 01       		.byte	0x1
- 3200 0474 7B000000 		.long	0x7b
- 3201 0478 91040000 		.long	0x491
- 3202 047c 10       		.uleb128 0x10
- 3203 047d 61040000 		.long	0x461
- 3204 0481 10       		.uleb128 0x10
- 3205 0482 1F040000 		.long	0x41f
- 3206 0486 10       		.uleb128 0x10
- 3207 0487 B4000000 		.long	0xb4
- 3208 048b 10       		.uleb128 0x10
- 3209 048c 62000000 		.long	0x62
- 3210 0490 00       		.byte	0x0
- 3211 0491 0A       		.uleb128 0xa
- 3212 0492 08       		.byte	0x8
- 3213 0493 72040000 		.long	0x472
- 3214 0497 11       		.uleb128 0x11
- 3215 0498 01       		.byte	0x1
- 3216 0499 7B000000 		.long	0x7b
- 3217 049d B6040000 		.long	0x4b6
- 3218 04a1 10       		.uleb128 0x10
- 3219 04a2 DE030000 		.long	0x3de
- 3220 04a6 10       		.uleb128 0x10
- 3221 04a7 1F040000 		.long	0x41f
- 3222 04ab 10       		.uleb128 0x10
- 3223 04ac B4000000 		.long	0xb4
- 3224 04b0 10       		.uleb128 0x10
- 3225 04b1 62000000 		.long	0x62
- 3226 04b5 00       		.byte	0x0
- 3227 04b6 0A       		.uleb128 0xa
- 3228 04b7 08       		.byte	0x8
- 3229 04b8 97040000 		.long	0x497
-
GAS LISTING /tmp/ccWvEaWW.s 			page 85
-
-
- 3230 04bc 04       		.uleb128 0x4
- 3231 04bd 00000000 		.long	.LASF71
- 3232 04c1 07       		.byte	0x7
- 3233 04c2 90       		.byte	0x90
- 3234 04c3 C7040000 		.long	0x4c7
- 3235 04c7 13       		.uleb128 0x13
- 3236 04c8 00000000 		.long	.LASF71
- 3237 04cc 08       		.byte	0x8
- 3238 04cd 07       		.byte	0x7
- 3239 04ce 90       		.byte	0x90
- 3240 04cf E9040000 		.long	0x4e9
- 3241 04d3 14       		.uleb128 0x14
- 3242 04d4 00000000 		.long	.LASF49
- 3243 04d8 07       		.byte	0x7
- 3244 04d9 93       		.byte	0x93
- 3245 04da E9040000 		.long	0x4e9
- 3246 04de 15       		.uleb128 0x15
- 3247 04df 763100   		.string	"v1"
- 3248 04e2 07       		.byte	0x7
- 3249 04e3 94       		.byte	0x94
- 3250 04e4 F4040000 		.long	0x4f4
- 3251 04e8 00       		.byte	0x0
- 3252 04e9 0A       		.uleb128 0xa
- 3253 04ea 08       		.byte	0x8
- 3254 04eb EF040000 		.long	0x4ef
- 3255 04ef 0B       		.uleb128 0xb
- 3256 04f0 48020000 		.long	0x248
- 3257 04f4 0A       		.uleb128 0xa
- 3258 04f5 08       		.byte	0x8
- 3259 04f6 FA040000 		.long	0x4fa
- 3260 04fa 0B       		.uleb128 0xb
- 3261 04fb 7C020000 		.long	0x27c
- 3262 04ff 02       		.uleb128 0x2
- 3263 0500 08       		.byte	0x8
- 3264 0501 05       		.byte	0x5
- 3265 0502 00000000 		.long	.LASF72
- 3266 0506 02       		.uleb128 0x2
- 3267 0507 04       		.byte	0x4
- 3268 0508 04       		.byte	0x4
- 3269 0509 00000000 		.long	.LASF73
- 3270 050d 0A       		.uleb128 0xa
- 3271 050e 08       		.byte	0x8
- 3272 050f C1000000 		.long	0xc1
- 3273 0513 02       		.uleb128 0x2
- 3274 0514 08       		.byte	0x8
- 3275 0515 07       		.byte	0x7
- 3276 0516 00000000 		.long	.LASF74
- 3277 051a 02       		.uleb128 0x2
- 3278 051b 08       		.byte	0x8
- 3279 051c 04       		.byte	0x4
- 3280 051d 00000000 		.long	.LASF75
- 3281 0521 04       		.uleb128 0x4
- 3282 0522 00000000 		.long	.LASF76
- 3283 0526 08       		.byte	0x8
- 3284 0527 26       		.byte	0x26
- 3285 0528 2C050000 		.long	0x52c
- 3286 052c 16       		.uleb128 0x16
-
GAS LISTING /tmp/ccWvEaWW.s 			page 86
-
-
- 3287 052d 01       		.byte	0x1
- 3288 052e 49000000 		.long	0x49
- 3289 0532 3D050000 		.long	0x53d
- 3290 0536 17       		.uleb128 0x17
- 3291 0537 B1000000 		.long	0xb1
- 3292 053b 0F       		.byte	0xf
- 3293 053c 00       		.byte	0x0
- 3294 053d 04       		.uleb128 0x4
- 3295 053e 00000000 		.long	.LASF77
- 3296 0542 09       		.byte	0x9
- 3297 0543 3B       		.byte	0x3b
- 3298 0544 21050000 		.long	0x521
- 3299 0548 04       		.uleb128 0x4
- 3300 0549 00000000 		.long	.LASF78
- 3301 054d 09       		.byte	0x9
- 3302 054e 43       		.byte	0x43
- 3303 054f 53050000 		.long	0x553
- 3304 0553 05       		.uleb128 0x5
- 3305 0554 00000000 		.long	.LASF78
- 3306 0558 08       		.byte	0x8
- 3307 0559 09       		.byte	0x9
- 3308 055a 43       		.byte	0x43
- 3309 055b 7C050000 		.long	0x57c
- 3310 055f 0E       		.uleb128 0xe
- 3311 0560 6D616A00 		.string	"maj"
- 3312 0564 09       		.byte	0x9
- 3313 0565 46       		.byte	0x46
- 3314 0566 62000000 		.long	0x62
- 3315 056a 02       		.byte	0x2
- 3316 056b 23       		.byte	0x23
- 3317 056c 00       		.uleb128 0x0
- 3318 056d 0E       		.uleb128 0xe
- 3319 056e 6D696E00 		.string	"min"
- 3320 0572 09       		.byte	0x9
- 3321 0573 47       		.byte	0x47
- 3322 0574 62000000 		.long	0x62
- 3323 0578 02       		.byte	0x2
- 3324 0579 23       		.byte	0x23
- 3325 057a 04       		.uleb128 0x4
- 3326 057b 00       		.byte	0x0
- 3327 057c 04       		.uleb128 0x4
- 3328 057d 00000000 		.long	.LASF79
- 3329 0581 09       		.byte	0x9
- 3330 0582 52       		.byte	0x52
- 3331 0583 87050000 		.long	0x587
- 3332 0587 05       		.uleb128 0x5
- 3333 0588 00000000 		.long	.LASF79
- 3334 058c 40       		.byte	0x40
- 3335 058d 09       		.byte	0x9
- 3336 058e 52       		.byte	0x52
- 3337 058f 04060000 		.long	0x604
- 3338 0593 06       		.uleb128 0x6
- 3339 0594 00000000 		.long	.LASF49
- 3340 0598 09       		.byte	0x9
- 3341 0599 5E       		.byte	0x5e
- 3342 059a 48050000 		.long	0x548
- 3343 059e 02       		.byte	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 87
-
-
- 3344 059f 23       		.byte	0x23
- 3345 05a0 00       		.uleb128 0x0
- 3346 05a1 06       		.uleb128 0x6
- 3347 05a2 00000000 		.long	.LASF50
- 3348 05a6 09       		.byte	0x9
- 3349 05a7 63       		.byte	0x63
- 3350 05a8 48060000 		.long	0x648
- 3351 05ac 02       		.byte	0x2
- 3352 05ad 23       		.byte	0x23
- 3353 05ae 08       		.uleb128 0x8
- 3354 05af 06       		.uleb128 0x6
- 3355 05b0 00000000 		.long	.LASF36
- 3356 05b4 09       		.byte	0x9
- 3357 05b5 65       		.byte	0x65
- 3358 05b6 59060000 		.long	0x659
- 3359 05ba 02       		.byte	0x2
- 3360 05bb 23       		.byte	0x23
- 3361 05bc 10       		.uleb128 0x10
- 3362 05bd 06       		.uleb128 0x6
- 3363 05be 00000000 		.long	.LASF80
- 3364 05c2 09       		.byte	0x9
- 3365 05c3 67       		.byte	0x67
- 3366 05c4 59060000 		.long	0x659
- 3367 05c8 02       		.byte	0x2
- 3368 05c9 23       		.byte	0x23
- 3369 05ca 18       		.uleb128 0x18
- 3370 05cb 06       		.uleb128 0x6
- 3371 05cc 00000000 		.long	.LASF51
- 3372 05d0 09       		.byte	0x9
- 3373 05d1 69       		.byte	0x69
- 3374 05d2 79060000 		.long	0x679
- 3375 05d6 02       		.byte	0x2
- 3376 05d7 23       		.byte	0x23
- 3377 05d8 20       		.uleb128 0x20
- 3378 05d9 06       		.uleb128 0x6
- 3379 05da 00000000 		.long	.LASF52
- 3380 05de 09       		.byte	0x9
- 3381 05df 6D       		.byte	0x6d
- 3382 05e0 79060000 		.long	0x679
- 3383 05e4 02       		.byte	0x2
- 3384 05e5 23       		.byte	0x23
- 3385 05e6 28       		.uleb128 0x28
- 3386 05e7 06       		.uleb128 0x6
- 3387 05e8 00000000 		.long	.LASF57
- 3388 05ec 09       		.byte	0x9
- 3389 05ed 71       		.byte	0x71
- 3390 05ee 95060000 		.long	0x695
- 3391 05f2 02       		.byte	0x2
- 3392 05f3 23       		.byte	0x23
- 3393 05f4 30       		.uleb128 0x30
- 3394 05f5 06       		.uleb128 0x6
- 3395 05f6 00000000 		.long	.LASF58
- 3396 05fa 09       		.byte	0x9
- 3397 05fb 75       		.byte	0x75
- 3398 05fc 95060000 		.long	0x695
- 3399 0600 02       		.byte	0x2
- 3400 0601 23       		.byte	0x23
-
GAS LISTING /tmp/ccWvEaWW.s 			page 88
-
-
- 3401 0602 38       		.uleb128 0x38
- 3402 0603 00       		.byte	0x0
- 3403 0604 04       		.uleb128 0x4
- 3404 0605 00000000 		.long	.LASF81
- 3405 0609 09       		.byte	0x9
- 3406 060a 53       		.byte	0x53
- 3407 060b 0F060000 		.long	0x60f
- 3408 060f 13       		.uleb128 0x13
- 3409 0610 00000000 		.long	.LASF81
- 3410 0614 40       		.byte	0x40
- 3411 0615 09       		.byte	0x9
- 3412 0616 53       		.byte	0x53
- 3413 0617 31060000 		.long	0x631
- 3414 061b 14       		.uleb128 0x14
- 3415 061c 00000000 		.long	.LASF49
- 3416 0620 09       		.byte	0x9
- 3417 0621 7F       		.byte	0x7f
- 3418 0622 48050000 		.long	0x548
- 3419 0626 15       		.uleb128 0x15
- 3420 0627 763100   		.string	"v1"
- 3421 062a 09       		.byte	0x9
- 3422 062b 80       		.byte	0x80
- 3423 062c 7C050000 		.long	0x57c
- 3424 0630 00       		.byte	0x0
- 3425 0631 0F       		.uleb128 0xf
- 3426 0632 01       		.byte	0x1
- 3427 0633 3D060000 		.long	0x63d
- 3428 0637 10       		.uleb128 0x10
- 3429 0638 3D060000 		.long	0x63d
- 3430 063c 00       		.byte	0x0
- 3431 063d 0A       		.uleb128 0xa
- 3432 063e 08       		.byte	0x8
- 3433 063f 43060000 		.long	0x643
- 3434 0643 0B       		.uleb128 0xb
- 3435 0644 04060000 		.long	0x604
- 3436 0648 0A       		.uleb128 0xa
- 3437 0649 08       		.byte	0x8
- 3438 064a 31060000 		.long	0x631
- 3439 064e 18       		.uleb128 0x18
- 3440 064f 62000000 		.long	0x62
- 3441 0653 59060000 		.long	0x659
- 3442 0657 19       		.uleb128 0x19
- 3443 0658 00       		.byte	0x0
- 3444 0659 0A       		.uleb128 0xa
- 3445 065a 08       		.byte	0x8
- 3446 065b 4E060000 		.long	0x64e
- 3447 065f 11       		.uleb128 0x11
- 3448 0660 01       		.byte	0x1
- 3449 0661 7B000000 		.long	0x7b
- 3450 0665 79060000 		.long	0x679
- 3451 0669 10       		.uleb128 0x10
- 3452 066a B4000000 		.long	0xb4
- 3453 066e 10       		.uleb128 0x10
- 3454 066f B6000000 		.long	0xb6
- 3455 0673 10       		.uleb128 0x10
- 3456 0674 62000000 		.long	0x62
- 3457 0678 00       		.byte	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 89
-
-
- 3458 0679 0A       		.uleb128 0xa
- 3459 067a 08       		.byte	0x8
- 3460 067b 5F060000 		.long	0x65f
- 3461 067f 0F       		.uleb128 0xf
- 3462 0680 01       		.byte	0x1
- 3463 0681 95060000 		.long	0x695
- 3464 0685 10       		.uleb128 0x10
- 3465 0686 B6000000 		.long	0xb6
- 3466 068a 10       		.uleb128 0x10
- 3467 068b 0D050000 		.long	0x50d
- 3468 068f 10       		.uleb128 0x10
- 3469 0690 1F040000 		.long	0x41f
- 3470 0694 00       		.byte	0x0
- 3471 0695 0A       		.uleb128 0xa
- 3472 0696 08       		.byte	0x8
- 3473 0697 7F060000 		.long	0x67f
- 3474 069b 04       		.uleb128 0x4
- 3475 069c 00000000 		.long	.LASF82
- 3476 06a0 09       		.byte	0x9
- 3477 06a1 84       		.byte	0x84
- 3478 06a2 A6060000 		.long	0x6a6
- 3479 06a6 05       		.uleb128 0x5
- 3480 06a7 00000000 		.long	.LASF82
- 3481 06ab 40       		.byte	0x40
- 3482 06ac 09       		.byte	0x9
- 3483 06ad 84       		.byte	0x84
- 3484 06ae 23070000 		.long	0x723
- 3485 06b2 06       		.uleb128 0x6
- 3486 06b3 00000000 		.long	.LASF49
- 3487 06b7 09       		.byte	0x9
- 3488 06b8 90       		.byte	0x90
- 3489 06b9 48050000 		.long	0x548
- 3490 06bd 02       		.byte	0x2
- 3491 06be 23       		.byte	0x23
- 3492 06bf 00       		.uleb128 0x0
- 3493 06c0 06       		.uleb128 0x6
- 3494 06c1 00000000 		.long	.LASF50
- 3495 06c5 09       		.byte	0x9
- 3496 06c6 95       		.byte	0x95
- 3497 06c7 67070000 		.long	0x767
- 3498 06cb 02       		.byte	0x2
- 3499 06cc 23       		.byte	0x23
- 3500 06cd 08       		.uleb128 0x8
- 3501 06ce 06       		.uleb128 0x6
- 3502 06cf 00000000 		.long	.LASF36
- 3503 06d3 09       		.byte	0x9
- 3504 06d4 97       		.byte	0x97
- 3505 06d5 59060000 		.long	0x659
- 3506 06d9 02       		.byte	0x2
- 3507 06da 23       		.byte	0x23
- 3508 06db 10       		.uleb128 0x10
- 3509 06dc 06       		.uleb128 0x6
- 3510 06dd 00000000 		.long	.LASF80
- 3511 06e1 09       		.byte	0x9
- 3512 06e2 99       		.byte	0x99
- 3513 06e3 59060000 		.long	0x659
- 3514 06e7 02       		.byte	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 90
-
-
- 3515 06e8 23       		.byte	0x23
- 3516 06e9 18       		.uleb128 0x18
- 3517 06ea 06       		.uleb128 0x6
- 3518 06eb 00000000 		.long	.LASF51
- 3519 06ef 09       		.byte	0x9
- 3520 06f0 9B       		.byte	0x9b
- 3521 06f1 79060000 		.long	0x679
- 3522 06f5 02       		.byte	0x2
- 3523 06f6 23       		.byte	0x23
- 3524 06f7 20       		.uleb128 0x20
- 3525 06f8 06       		.uleb128 0x6
- 3526 06f9 00000000 		.long	.LASF52
- 3527 06fd 09       		.byte	0x9
- 3528 06fe 9F       		.byte	0x9f
- 3529 06ff 79060000 		.long	0x679
- 3530 0703 02       		.byte	0x2
- 3531 0704 23       		.byte	0x23
- 3532 0705 28       		.uleb128 0x28
- 3533 0706 06       		.uleb128 0x6
- 3534 0707 00000000 		.long	.LASF57
- 3535 070b 09       		.byte	0x9
- 3536 070c A3       		.byte	0xa3
- 3537 070d 82070000 		.long	0x782
- 3538 0711 02       		.byte	0x2
- 3539 0712 23       		.byte	0x23
- 3540 0713 30       		.uleb128 0x30
- 3541 0714 06       		.uleb128 0x6
- 3542 0715 00000000 		.long	.LASF58
- 3543 0719 09       		.byte	0x9
- 3544 071a A6       		.byte	0xa6
- 3545 071b 82070000 		.long	0x782
- 3546 071f 02       		.byte	0x2
- 3547 0720 23       		.byte	0x23
- 3548 0721 38       		.uleb128 0x38
- 3549 0722 00       		.byte	0x0
- 3550 0723 04       		.uleb128 0x4
- 3551 0724 00000000 		.long	.LASF83
- 3552 0728 09       		.byte	0x9
- 3553 0729 85       		.byte	0x85
- 3554 072a 2E070000 		.long	0x72e
- 3555 072e 13       		.uleb128 0x13
- 3556 072f 00000000 		.long	.LASF83
- 3557 0733 40       		.byte	0x40
- 3558 0734 09       		.byte	0x9
- 3559 0735 85       		.byte	0x85
- 3560 0736 50070000 		.long	0x750
- 3561 073a 14       		.uleb128 0x14
- 3562 073b 00000000 		.long	.LASF49
- 3563 073f 09       		.byte	0x9
- 3564 0740 AF       		.byte	0xaf
- 3565 0741 48050000 		.long	0x548
- 3566 0745 15       		.uleb128 0x15
- 3567 0746 763100   		.string	"v1"
- 3568 0749 09       		.byte	0x9
- 3569 074a B0       		.byte	0xb0
- 3570 074b 9B060000 		.long	0x69b
- 3571 074f 00       		.byte	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 91
-
-
- 3572 0750 0F       		.uleb128 0xf
- 3573 0751 01       		.byte	0x1
- 3574 0752 5C070000 		.long	0x75c
- 3575 0756 10       		.uleb128 0x10
- 3576 0757 5C070000 		.long	0x75c
- 3577 075b 00       		.byte	0x0
- 3578 075c 0A       		.uleb128 0xa
- 3579 075d 08       		.byte	0x8
- 3580 075e 62070000 		.long	0x762
- 3581 0762 0B       		.uleb128 0xb
- 3582 0763 23070000 		.long	0x723
- 3583 0767 0A       		.uleb128 0xa
- 3584 0768 08       		.byte	0x8
- 3585 0769 50070000 		.long	0x750
- 3586 076d 11       		.uleb128 0x11
- 3587 076e 01       		.byte	0x1
- 3588 076f 3D050000 		.long	0x53d
- 3589 0773 82070000 		.long	0x782
- 3590 0777 10       		.uleb128 0x10
- 3591 0778 3D050000 		.long	0x53d
- 3592 077c 10       		.uleb128 0x10
- 3593 077d 1F040000 		.long	0x41f
- 3594 0781 00       		.byte	0x0
- 3595 0782 0A       		.uleb128 0xa
- 3596 0783 08       		.byte	0x8
- 3597 0784 6D070000 		.long	0x76d
- 3598 0788 04       		.uleb128 0x4
- 3599 0789 00000000 		.long	.LASF84
- 3600 078d 0A       		.byte	0xa
- 3601 078e B0       		.byte	0xb0
- 3602 078f 93070000 		.long	0x793
- 3603 0793 1A       		.uleb128 0x1a
- 3604 0794 00000000 		.long	.LASF84
- 3605 0798 0001     		.value	0x100
- 3606 079a 0A       		.byte	0xa
- 3607 079b B0       		.byte	0xb0
- 3608 079c BE070000 		.long	0x7be
- 3609 07a0 06       		.uleb128 0x6
- 3610 07a1 00000000 		.long	.LASF85
- 3611 07a5 0A       		.byte	0xa
- 3612 07a6 B3       		.byte	0xb3
- 3613 07a7 BE070000 		.long	0x7be
- 3614 07ab 02       		.byte	0x2
- 3615 07ac 23       		.byte	0x23
- 3616 07ad 00       		.uleb128 0x0
- 3617 07ae 06       		.uleb128 0x6
- 3618 07af 00000000 		.long	.LASF86
- 3619 07b3 0A       		.byte	0xa
- 3620 07b4 B4       		.byte	0xb4
- 3621 07b5 62000000 		.long	0x62
- 3622 07b9 03       		.byte	0x3
- 3623 07ba 23       		.byte	0x23
- 3624 07bb F001     		.uleb128 0xf0
- 3625 07bd 00       		.byte	0x0
- 3626 07be 1B       		.uleb128 0x1b
- 3627 07bf 3D050000 		.long	0x53d
- 3628 07c3 CE070000 		.long	0x7ce
-
GAS LISTING /tmp/ccWvEaWW.s 			page 92
-
-
- 3629 07c7 17       		.uleb128 0x17
- 3630 07c8 B1000000 		.long	0xb1
- 3631 07cc 0E       		.byte	0xe
- 3632 07cd 00       		.byte	0x0
- 3633 07ce 04       		.uleb128 0x4
- 3634 07cf 00000000 		.long	.LASF87
- 3635 07d3 0A       		.byte	0xa
- 3636 07d4 D2       		.byte	0xd2
- 3637 07d5 D9070000 		.long	0x7d9
- 3638 07d9 1A       		.uleb128 0x1a
- 3639 07da 00000000 		.long	.LASF87
- 3640 07de 7002     		.value	0x270
- 3641 07e0 0A       		.byte	0xa
- 3642 07e1 D2       		.byte	0xd2
- 3643 07e2 30080000 		.long	0x830
- 3644 07e6 0E       		.uleb128 0xe
- 3645 07e7 64616400 		.string	"dad"
- 3646 07eb 0A       		.byte	0xa
- 3647 07ec D5       		.byte	0xd5
- 3648 07ed 54010000 		.long	0x154
- 3649 07f1 02       		.byte	0x2
- 3650 07f2 23       		.byte	0x23
- 3651 07f3 00       		.uleb128 0x0
- 3652 07f4 06       		.uleb128 0x6
- 3653 07f5 00000000 		.long	.LASF88
- 3654 07f9 0A       		.byte	0xa
- 3655 07fa D6       		.byte	0xd6
- 3656 07fb 88070000 		.long	0x788
- 3657 07ff 02       		.byte	0x2
- 3658 0800 23       		.byte	0x23
- 3659 0801 50       		.uleb128 0x50
- 3660 0802 06       		.uleb128 0x6
- 3661 0803 00000000 		.long	.LASF89
- 3662 0807 0A       		.byte	0xa
- 3663 0808 D7       		.byte	0xd7
- 3664 0809 88070000 		.long	0x788
- 3665 080d 03       		.byte	0x3
- 3666 080e 23       		.byte	0x23
- 3667 080f D002     		.uleb128 0x150
- 3668 0811 06       		.uleb128 0x6
- 3669 0812 00000000 		.long	.LASF90
- 3670 0816 0A       		.byte	0xa
- 3671 0817 D8       		.byte	0xd8
- 3672 0818 3D050000 		.long	0x53d
- 3673 081c 03       		.byte	0x3
- 3674 081d 23       		.byte	0x23
- 3675 081e D004     		.uleb128 0x250
- 3676 0820 06       		.uleb128 0x6
- 3677 0821 00000000 		.long	.LASF91
- 3678 0825 0A       		.byte	0xa
- 3679 0826 D9       		.byte	0xd9
- 3680 0827 3D050000 		.long	0x53d
- 3681 082b 03       		.byte	0x3
- 3682 082c 23       		.byte	0x23
- 3683 082d E004     		.uleb128 0x260
- 3684 082f 00       		.byte	0x0
- 3685 0830 04       		.uleb128 0x4
-
GAS LISTING /tmp/ccWvEaWW.s 			page 93
-
-
- 3686 0831 00000000 		.long	.LASF92
- 3687 0835 0B       		.byte	0xb
- 3688 0836 29       		.byte	0x29
- 3689 0837 3B080000 		.long	0x83b
- 3690 083b 05       		.uleb128 0x5
- 3691 083c 00000000 		.long	.LASF92
- 3692 0840 70       		.byte	0x70
- 3693 0841 0B       		.byte	0xb
- 3694 0842 29       		.byte	0x29
- 3695 0843 72080000 		.long	0x872
- 3696 0847 0E       		.uleb128 0xe
- 3697 0848 64616400 		.string	"dad"
- 3698 084c 0B       		.byte	0xb
- 3699 084d 2C       		.byte	0x2c
- 3700 084e 54010000 		.long	0x154
- 3701 0852 02       		.byte	0x2
- 3702 0853 23       		.byte	0x23
- 3703 0854 00       		.uleb128 0x0
- 3704 0855 06       		.uleb128 0x6
- 3705 0856 00000000 		.long	.LASF90
- 3706 085a 0B       		.byte	0xb
- 3707 085b 2D       		.byte	0x2d
- 3708 085c 3D050000 		.long	0x53d
- 3709 0860 02       		.byte	0x2
- 3710 0861 23       		.byte	0x23
- 3711 0862 50       		.uleb128 0x50
- 3712 0863 06       		.uleb128 0x6
- 3713 0864 00000000 		.long	.LASF91
- 3714 0868 0B       		.byte	0xb
- 3715 0869 2E       		.byte	0x2e
- 3716 086a 3D050000 		.long	0x53d
- 3717 086e 02       		.byte	0x2
- 3718 086f 23       		.byte	0x23
- 3719 0870 60       		.uleb128 0x60
- 3720 0871 00       		.byte	0x0
- 3721 0872 04       		.uleb128 0x4
- 3722 0873 00000000 		.long	.LASF93
- 3723 0877 0C       		.byte	0xc
- 3724 0878 48       		.byte	0x48
- 3725 0879 62000000 		.long	0x62
- 3726 087d 0C       		.uleb128 0xc
- 3727 087e 04       		.byte	0x4
- 3728 087f 0C       		.byte	0xc
- 3729 0880 4A       		.byte	0x4a
- 3730 0881 98080000 		.long	0x898
- 3731 0885 0D       		.uleb128 0xd
- 3732 0886 00000000 		.long	.LASF94
- 3733 088a 00       		.sleb128 0
- 3734 088b 0D       		.uleb128 0xd
- 3735 088c 00000000 		.long	.LASF95
- 3736 0890 01       		.sleb128 1
- 3737 0891 0D       		.uleb128 0xd
- 3738 0892 00000000 		.long	.LASF96
- 3739 0896 02       		.sleb128 2
- 3740 0897 00       		.byte	0x0
- 3741 0898 04       		.uleb128 0x4
- 3742 0899 00000000 		.long	.LASF97
-
GAS LISTING /tmp/ccWvEaWW.s 			page 94
-
-
- 3743 089d 0E       		.byte	0xe
- 3744 089e 40       		.byte	0x40
- 3745 089f A3080000 		.long	0x8a3
- 3746 08a3 13       		.uleb128 0x13
- 3747 08a4 00000000 		.long	.LASF97
- 3748 08a8 40       		.byte	0x40
- 3749 08a9 0E       		.byte	0xe
- 3750 08aa 40       		.byte	0x40
- 3751 08ab C6080000 		.long	0x8c6
- 3752 08af 14       		.uleb128 0x14
- 3753 08b0 00000000 		.long	.LASF98
- 3754 08b4 0E       		.byte	0xe
- 3755 08b5 43       		.byte	0x43
- 3756 08b6 04060000 		.long	0x604
- 3757 08ba 15       		.uleb128 0x15
- 3758 08bb 76656300 		.string	"vec"
- 3759 08bf 0E       		.byte	0xe
- 3760 08c0 44       		.byte	0x44
- 3761 08c1 23070000 		.long	0x723
- 3762 08c5 00       		.byte	0x0
- 3763 08c6 1C       		.uleb128 0x1c
- 3764 08c7 00000000 		.long	.LASF121
- 3765 08cb 04       		.byte	0x4
- 3766 08cc 0F       		.byte	0xf
- 3767 08cd 5A       		.byte	0x5a
- 3768 08ce 57090000 		.long	0x957
- 3769 08d2 0D       		.uleb128 0xd
- 3770 08d3 00000000 		.long	.LASF99
- 3771 08d7 00       		.sleb128 0
- 3772 08d8 0D       		.uleb128 0xd
- 3773 08d9 00000000 		.long	.LASF100
- 3774 08dd 01       		.sleb128 1
- 3775 08de 0D       		.uleb128 0xd
- 3776 08df 00000000 		.long	.LASF101
- 3777 08e3 02       		.sleb128 2
- 3778 08e4 0D       		.uleb128 0xd
- 3779 08e5 00000000 		.long	.LASF102
- 3780 08e9 03       		.sleb128 3
- 3781 08ea 0D       		.uleb128 0xd
- 3782 08eb 00000000 		.long	.LASF103
- 3783 08ef 04       		.sleb128 4
- 3784 08f0 0D       		.uleb128 0xd
- 3785 08f1 00000000 		.long	.LASF104
- 3786 08f5 05       		.sleb128 5
- 3787 08f6 0D       		.uleb128 0xd
- 3788 08f7 00000000 		.long	.LASF105
- 3789 08fb 06       		.sleb128 6
- 3790 08fc 0D       		.uleb128 0xd
- 3791 08fd 00000000 		.long	.LASF106
- 3792 0901 07       		.sleb128 7
- 3793 0902 0D       		.uleb128 0xd
- 3794 0903 00000000 		.long	.LASF107
- 3795 0907 08       		.sleb128 8
- 3796 0908 0D       		.uleb128 0xd
- 3797 0909 00000000 		.long	.LASF108
- 3798 090d 09       		.sleb128 9
- 3799 090e 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccWvEaWW.s 			page 95
-
-
- 3800 090f 00000000 		.long	.LASF109
- 3801 0913 0A       		.sleb128 10
- 3802 0914 0D       		.uleb128 0xd
- 3803 0915 00000000 		.long	.LASF110
- 3804 0919 0B       		.sleb128 11
- 3805 091a 0D       		.uleb128 0xd
- 3806 091b 00000000 		.long	.LASF111
- 3807 091f 0C       		.sleb128 12
- 3808 0920 0D       		.uleb128 0xd
- 3809 0921 00000000 		.long	.LASF112
- 3810 0925 0D       		.sleb128 13
- 3811 0926 0D       		.uleb128 0xd
- 3812 0927 00000000 		.long	.LASF113
- 3813 092b 0E       		.sleb128 14
- 3814 092c 0D       		.uleb128 0xd
- 3815 092d 00000000 		.long	.LASF114
- 3816 0931 0E       		.sleb128 14
- 3817 0932 0D       		.uleb128 0xd
- 3818 0933 00000000 		.long	.LASF115
- 3819 0937 0F       		.sleb128 15
- 3820 0938 0D       		.uleb128 0xd
- 3821 0939 00000000 		.long	.LASF116
- 3822 093d 10       		.sleb128 16
- 3823 093e 0D       		.uleb128 0xd
- 3824 093f 00000000 		.long	.LASF117
- 3825 0943 11       		.sleb128 17
- 3826 0944 0D       		.uleb128 0xd
- 3827 0945 00000000 		.long	.LASF118
- 3828 0949 12       		.sleb128 18
- 3829 094a 0D       		.uleb128 0xd
- 3830 094b 00000000 		.long	.LASF119
- 3831 094f 13       		.sleb128 19
- 3832 0950 0D       		.uleb128 0xd
- 3833 0951 00000000 		.long	.LASF120
- 3834 0955 14       		.sleb128 20
- 3835 0956 00       		.byte	0x0
- 3836 0957 1C       		.uleb128 0x1c
- 3837 0958 00000000 		.long	.LASF122
- 3838 095c 04       		.byte	0x4
- 3839 095d 0F       		.byte	0xf
- 3840 095e 77       		.byte	0x77
- 3841 095f DE0A0000 		.long	0xade
- 3842 0963 0D       		.uleb128 0xd
- 3843 0964 00000000 		.long	.LASF123
- 3844 0968 00       		.sleb128 0
- 3845 0969 0D       		.uleb128 0xd
- 3846 096a 00000000 		.long	.LASF124
- 3847 096e 01       		.sleb128 1
- 3848 096f 0D       		.uleb128 0xd
- 3849 0970 00000000 		.long	.LASF125
- 3850 0974 02       		.sleb128 2
- 3851 0975 0D       		.uleb128 0xd
- 3852 0976 00000000 		.long	.LASF126
- 3853 097a 03       		.sleb128 3
- 3854 097b 0D       		.uleb128 0xd
- 3855 097c 00000000 		.long	.LASF127
- 3856 0980 04       		.sleb128 4
-
GAS LISTING /tmp/ccWvEaWW.s 			page 96
-
-
- 3857 0981 0D       		.uleb128 0xd
- 3858 0982 00000000 		.long	.LASF128
- 3859 0986 05       		.sleb128 5
- 3860 0987 0D       		.uleb128 0xd
- 3861 0988 00000000 		.long	.LASF129
- 3862 098c 06       		.sleb128 6
- 3863 098d 0D       		.uleb128 0xd
- 3864 098e 00000000 		.long	.LASF130
- 3865 0992 07       		.sleb128 7
- 3866 0993 0D       		.uleb128 0xd
- 3867 0994 00000000 		.long	.LASF131
- 3868 0998 08       		.sleb128 8
- 3869 0999 0D       		.uleb128 0xd
- 3870 099a 00000000 		.long	.LASF132
- 3871 099e 09       		.sleb128 9
- 3872 099f 0D       		.uleb128 0xd
- 3873 09a0 00000000 		.long	.LASF133
- 3874 09a4 0A       		.sleb128 10
- 3875 09a5 0D       		.uleb128 0xd
- 3876 09a6 00000000 		.long	.LASF134
- 3877 09aa 0B       		.sleb128 11
- 3878 09ab 0D       		.uleb128 0xd
- 3879 09ac 00000000 		.long	.LASF135
- 3880 09b0 0C       		.sleb128 12
- 3881 09b1 0D       		.uleb128 0xd
- 3882 09b2 00000000 		.long	.LASF136
- 3883 09b6 0D       		.sleb128 13
- 3884 09b7 0D       		.uleb128 0xd
- 3885 09b8 00000000 		.long	.LASF137
- 3886 09bc 0E       		.sleb128 14
- 3887 09bd 0D       		.uleb128 0xd
- 3888 09be 00000000 		.long	.LASF138
- 3889 09c2 0F       		.sleb128 15
- 3890 09c3 0D       		.uleb128 0xd
- 3891 09c4 00000000 		.long	.LASF139
- 3892 09c8 10       		.sleb128 16
- 3893 09c9 0D       		.uleb128 0xd
- 3894 09ca 00000000 		.long	.LASF140
- 3895 09ce 11       		.sleb128 17
- 3896 09cf 0D       		.uleb128 0xd
- 3897 09d0 00000000 		.long	.LASF141
- 3898 09d4 12       		.sleb128 18
- 3899 09d5 0D       		.uleb128 0xd
- 3900 09d6 00000000 		.long	.LASF142
- 3901 09da 13       		.sleb128 19
- 3902 09db 0D       		.uleb128 0xd
- 3903 09dc 00000000 		.long	.LASF143
- 3904 09e0 14       		.sleb128 20
- 3905 09e1 0D       		.uleb128 0xd
- 3906 09e2 00000000 		.long	.LASF144
- 3907 09e6 15       		.sleb128 21
- 3908 09e7 0D       		.uleb128 0xd
- 3909 09e8 00000000 		.long	.LASF145
- 3910 09ec 16       		.sleb128 22
- 3911 09ed 0D       		.uleb128 0xd
- 3912 09ee 00000000 		.long	.LASF146
- 3913 09f2 17       		.sleb128 23
-
GAS LISTING /tmp/ccWvEaWW.s 			page 97
-
-
- 3914 09f3 0D       		.uleb128 0xd
- 3915 09f4 00000000 		.long	.LASF147
- 3916 09f8 18       		.sleb128 24
- 3917 09f9 0D       		.uleb128 0xd
- 3918 09fa 00000000 		.long	.LASF148
- 3919 09fe 19       		.sleb128 25
- 3920 09ff 0D       		.uleb128 0xd
- 3921 0a00 00000000 		.long	.LASF149
- 3922 0a04 1A       		.sleb128 26
- 3923 0a05 0D       		.uleb128 0xd
- 3924 0a06 00000000 		.long	.LASF150
- 3925 0a0a 1B       		.sleb128 27
- 3926 0a0b 0D       		.uleb128 0xd
- 3927 0a0c 00000000 		.long	.LASF151
- 3928 0a10 1C       		.sleb128 28
- 3929 0a11 0D       		.uleb128 0xd
- 3930 0a12 00000000 		.long	.LASF152
- 3931 0a16 1D       		.sleb128 29
- 3932 0a17 0D       		.uleb128 0xd
- 3933 0a18 00000000 		.long	.LASF153
- 3934 0a1c 1E       		.sleb128 30
- 3935 0a1d 0D       		.uleb128 0xd
- 3936 0a1e 00000000 		.long	.LASF154
- 3937 0a22 1F       		.sleb128 31
- 3938 0a23 0D       		.uleb128 0xd
- 3939 0a24 00000000 		.long	.LASF155
- 3940 0a28 20       		.sleb128 32
- 3941 0a29 0D       		.uleb128 0xd
- 3942 0a2a 00000000 		.long	.LASF156
- 3943 0a2e 21       		.sleb128 33
- 3944 0a2f 0D       		.uleb128 0xd
- 3945 0a30 00000000 		.long	.LASF157
- 3946 0a34 22       		.sleb128 34
- 3947 0a35 0D       		.uleb128 0xd
- 3948 0a36 00000000 		.long	.LASF158
- 3949 0a3a 23       		.sleb128 35
- 3950 0a3b 0D       		.uleb128 0xd
- 3951 0a3c 00000000 		.long	.LASF159
- 3952 0a40 24       		.sleb128 36
- 3953 0a41 0D       		.uleb128 0xd
- 3954 0a42 00000000 		.long	.LASF160
- 3955 0a46 25       		.sleb128 37
- 3956 0a47 0D       		.uleb128 0xd
- 3957 0a48 00000000 		.long	.LASF161
- 3958 0a4c 26       		.sleb128 38
- 3959 0a4d 0D       		.uleb128 0xd
- 3960 0a4e 00000000 		.long	.LASF162
- 3961 0a52 27       		.sleb128 39
- 3962 0a53 0D       		.uleb128 0xd
- 3963 0a54 00000000 		.long	.LASF163
- 3964 0a58 28       		.sleb128 40
- 3965 0a59 0D       		.uleb128 0xd
- 3966 0a5a 00000000 		.long	.LASF164
- 3967 0a5e 29       		.sleb128 41
- 3968 0a5f 0D       		.uleb128 0xd
- 3969 0a60 00000000 		.long	.LASF165
- 3970 0a64 2A       		.sleb128 42
-
GAS LISTING /tmp/ccWvEaWW.s 			page 98
-
-
- 3971 0a65 0D       		.uleb128 0xd
- 3972 0a66 00000000 		.long	.LASF166
- 3973 0a6a 2B       		.sleb128 43
- 3974 0a6b 0D       		.uleb128 0xd
- 3975 0a6c 00000000 		.long	.LASF167
- 3976 0a70 2C       		.sleb128 44
- 3977 0a71 0D       		.uleb128 0xd
- 3978 0a72 00000000 		.long	.LASF168
- 3979 0a76 2D       		.sleb128 45
- 3980 0a77 0D       		.uleb128 0xd
- 3981 0a78 00000000 		.long	.LASF169
- 3982 0a7c 2E       		.sleb128 46
- 3983 0a7d 0D       		.uleb128 0xd
- 3984 0a7e 00000000 		.long	.LASF170
- 3985 0a82 2F       		.sleb128 47
- 3986 0a83 0D       		.uleb128 0xd
- 3987 0a84 00000000 		.long	.LASF171
- 3988 0a88 30       		.sleb128 48
- 3989 0a89 0D       		.uleb128 0xd
- 3990 0a8a 00000000 		.long	.LASF172
- 3991 0a8e 31       		.sleb128 49
- 3992 0a8f 0D       		.uleb128 0xd
- 3993 0a90 00000000 		.long	.LASF173
- 3994 0a94 32       		.sleb128 50
- 3995 0a95 0D       		.uleb128 0xd
- 3996 0a96 00000000 		.long	.LASF174
- 3997 0a9a 33       		.sleb128 51
- 3998 0a9b 0D       		.uleb128 0xd
- 3999 0a9c 00000000 		.long	.LASF175
- 4000 0aa0 34       		.sleb128 52
- 4001 0aa1 0D       		.uleb128 0xd
- 4002 0aa2 00000000 		.long	.LASF176
- 4003 0aa6 35       		.sleb128 53
- 4004 0aa7 0D       		.uleb128 0xd
- 4005 0aa8 00000000 		.long	.LASF177
- 4006 0aac 36       		.sleb128 54
- 4007 0aad 0D       		.uleb128 0xd
- 4008 0aae 00000000 		.long	.LASF178
- 4009 0ab2 36       		.sleb128 54
- 4010 0ab3 0D       		.uleb128 0xd
- 4011 0ab4 00000000 		.long	.LASF179
- 4012 0ab8 37       		.sleb128 55
- 4013 0ab9 0D       		.uleb128 0xd
- 4014 0aba 00000000 		.long	.LASF180
- 4015 0abe 38       		.sleb128 56
- 4016 0abf 0D       		.uleb128 0xd
- 4017 0ac0 00000000 		.long	.LASF181
- 4018 0ac4 39       		.sleb128 57
- 4019 0ac5 0D       		.uleb128 0xd
- 4020 0ac6 00000000 		.long	.LASF182
- 4021 0aca 3A       		.sleb128 58
- 4022 0acb 0D       		.uleb128 0xd
- 4023 0acc 00000000 		.long	.LASF183
- 4024 0ad0 3B       		.sleb128 59
- 4025 0ad1 0D       		.uleb128 0xd
- 4026 0ad2 00000000 		.long	.LASF184
- 4027 0ad6 3C       		.sleb128 60
-
GAS LISTING /tmp/ccWvEaWW.s 			page 99
-
-
- 4028 0ad7 0D       		.uleb128 0xd
- 4029 0ad8 00000000 		.long	.LASF185
- 4030 0adc 3D       		.sleb128 61
- 4031 0add 00       		.byte	0x0
- 4032 0ade 1C       		.uleb128 0x1c
- 4033 0adf 00000000 		.long	.LASF186
- 4034 0ae3 04       		.byte	0x4
- 4035 0ae4 0F       		.byte	0xf
- 4036 0ae5 BD       		.byte	0xbd
- 4037 0ae6 940C0000 		.long	0xc94
- 4038 0aea 0D       		.uleb128 0xd
- 4039 0aeb 00000000 		.long	.LASF187
- 4040 0aef 00       		.sleb128 0
- 4041 0af0 0D       		.uleb128 0xd
- 4042 0af1 00000000 		.long	.LASF188
- 4043 0af5 01       		.sleb128 1
- 4044 0af6 0D       		.uleb128 0xd
- 4045 0af7 00000000 		.long	.LASF189
- 4046 0afb 02       		.sleb128 2
- 4047 0afc 0D       		.uleb128 0xd
- 4048 0afd 00000000 		.long	.LASF190
- 4049 0b01 03       		.sleb128 3
- 4050 0b02 0D       		.uleb128 0xd
- 4051 0b03 00000000 		.long	.LASF191
- 4052 0b07 04       		.sleb128 4
- 4053 0b08 0D       		.uleb128 0xd
- 4054 0b09 00000000 		.long	.LASF192
- 4055 0b0d 05       		.sleb128 5
- 4056 0b0e 0D       		.uleb128 0xd
- 4057 0b0f 00000000 		.long	.LASF193
- 4058 0b13 06       		.sleb128 6
- 4059 0b14 0D       		.uleb128 0xd
- 4060 0b15 00000000 		.long	.LASF194
- 4061 0b19 07       		.sleb128 7
- 4062 0b1a 0D       		.uleb128 0xd
- 4063 0b1b 00000000 		.long	.LASF195
- 4064 0b1f 08       		.sleb128 8
- 4065 0b20 0D       		.uleb128 0xd
- 4066 0b21 00000000 		.long	.LASF196
- 4067 0b25 09       		.sleb128 9
- 4068 0b26 0D       		.uleb128 0xd
- 4069 0b27 00000000 		.long	.LASF197
- 4070 0b2b 0A       		.sleb128 10
- 4071 0b2c 0D       		.uleb128 0xd
- 4072 0b2d 00000000 		.long	.LASF198
- 4073 0b31 0B       		.sleb128 11
- 4074 0b32 0D       		.uleb128 0xd
- 4075 0b33 00000000 		.long	.LASF199
- 4076 0b37 0C       		.sleb128 12
- 4077 0b38 0D       		.uleb128 0xd
- 4078 0b39 00000000 		.long	.LASF200
- 4079 0b3d 0D       		.sleb128 13
- 4080 0b3e 0D       		.uleb128 0xd
- 4081 0b3f 00000000 		.long	.LASF201
- 4082 0b43 0E       		.sleb128 14
- 4083 0b44 0D       		.uleb128 0xd
- 4084 0b45 00000000 		.long	.LASF202
-
GAS LISTING /tmp/ccWvEaWW.s 			page 100
-
-
- 4085 0b49 0F       		.sleb128 15
- 4086 0b4a 0D       		.uleb128 0xd
- 4087 0b4b 00000000 		.long	.LASF203
- 4088 0b4f 10       		.sleb128 16
- 4089 0b50 0D       		.uleb128 0xd
- 4090 0b51 00000000 		.long	.LASF204
- 4091 0b55 11       		.sleb128 17
- 4092 0b56 0D       		.uleb128 0xd
- 4093 0b57 00000000 		.long	.LASF205
- 4094 0b5b 12       		.sleb128 18
- 4095 0b5c 0D       		.uleb128 0xd
- 4096 0b5d 00000000 		.long	.LASF206
- 4097 0b61 13       		.sleb128 19
- 4098 0b62 0D       		.uleb128 0xd
- 4099 0b63 00000000 		.long	.LASF207
- 4100 0b67 14       		.sleb128 20
- 4101 0b68 0D       		.uleb128 0xd
- 4102 0b69 00000000 		.long	.LASF208
- 4103 0b6d 15       		.sleb128 21
- 4104 0b6e 0D       		.uleb128 0xd
- 4105 0b6f 00000000 		.long	.LASF209
- 4106 0b73 16       		.sleb128 22
- 4107 0b74 0D       		.uleb128 0xd
- 4108 0b75 00000000 		.long	.LASF210
- 4109 0b79 17       		.sleb128 23
- 4110 0b7a 0D       		.uleb128 0xd
- 4111 0b7b 00000000 		.long	.LASF211
- 4112 0b7f 18       		.sleb128 24
- 4113 0b80 0D       		.uleb128 0xd
- 4114 0b81 00000000 		.long	.LASF212
- 4115 0b85 19       		.sleb128 25
- 4116 0b86 0D       		.uleb128 0xd
- 4117 0b87 00000000 		.long	.LASF213
- 4118 0b8b 1A       		.sleb128 26
- 4119 0b8c 0D       		.uleb128 0xd
- 4120 0b8d 00000000 		.long	.LASF214
- 4121 0b91 1B       		.sleb128 27
- 4122 0b92 0D       		.uleb128 0xd
- 4123 0b93 00000000 		.long	.LASF215
- 4124 0b97 1C       		.sleb128 28
- 4125 0b98 0D       		.uleb128 0xd
- 4126 0b99 00000000 		.long	.LASF216
- 4127 0b9d 1D       		.sleb128 29
- 4128 0b9e 0D       		.uleb128 0xd
- 4129 0b9f 00000000 		.long	.LASF217
- 4130 0ba3 1E       		.sleb128 30
- 4131 0ba4 0D       		.uleb128 0xd
- 4132 0ba5 00000000 		.long	.LASF218
- 4133 0ba9 1F       		.sleb128 31
- 4134 0baa 0D       		.uleb128 0xd
- 4135 0bab 00000000 		.long	.LASF219
- 4136 0baf 20       		.sleb128 32
- 4137 0bb0 0D       		.uleb128 0xd
- 4138 0bb1 00000000 		.long	.LASF220
- 4139 0bb5 21       		.sleb128 33
- 4140 0bb6 0D       		.uleb128 0xd
- 4141 0bb7 00000000 		.long	.LASF221
-
GAS LISTING /tmp/ccWvEaWW.s 			page 101
-
-
- 4142 0bbb 22       		.sleb128 34
- 4143 0bbc 0D       		.uleb128 0xd
- 4144 0bbd 00000000 		.long	.LASF222
- 4145 0bc1 23       		.sleb128 35
- 4146 0bc2 0D       		.uleb128 0xd
- 4147 0bc3 00000000 		.long	.LASF223
- 4148 0bc7 24       		.sleb128 36
- 4149 0bc8 0D       		.uleb128 0xd
- 4150 0bc9 00000000 		.long	.LASF224
- 4151 0bcd 25       		.sleb128 37
- 4152 0bce 0D       		.uleb128 0xd
- 4153 0bcf 00000000 		.long	.LASF225
- 4154 0bd3 26       		.sleb128 38
- 4155 0bd4 0D       		.uleb128 0xd
- 4156 0bd5 00000000 		.long	.LASF226
- 4157 0bd9 27       		.sleb128 39
- 4158 0bda 0D       		.uleb128 0xd
- 4159 0bdb 00000000 		.long	.LASF227
- 4160 0bdf 28       		.sleb128 40
- 4161 0be0 0D       		.uleb128 0xd
- 4162 0be1 00000000 		.long	.LASF228
- 4163 0be5 29       		.sleb128 41
- 4164 0be6 0D       		.uleb128 0xd
- 4165 0be7 00000000 		.long	.LASF229
- 4166 0beb 2A       		.sleb128 42
- 4167 0bec 0D       		.uleb128 0xd
- 4168 0bed 00000000 		.long	.LASF230
- 4169 0bf1 2B       		.sleb128 43
- 4170 0bf2 0D       		.uleb128 0xd
- 4171 0bf3 00000000 		.long	.LASF231
- 4172 0bf7 2C       		.sleb128 44
- 4173 0bf8 0D       		.uleb128 0xd
- 4174 0bf9 00000000 		.long	.LASF232
- 4175 0bfd 2D       		.sleb128 45
- 4176 0bfe 0D       		.uleb128 0xd
- 4177 0bff 00000000 		.long	.LASF233
- 4178 0c03 2E       		.sleb128 46
- 4179 0c04 0D       		.uleb128 0xd
- 4180 0c05 00000000 		.long	.LASF234
- 4181 0c09 2F       		.sleb128 47
- 4182 0c0a 0D       		.uleb128 0xd
- 4183 0c0b 00000000 		.long	.LASF235
- 4184 0c0f 30       		.sleb128 48
- 4185 0c10 0D       		.uleb128 0xd
- 4186 0c11 00000000 		.long	.LASF236
- 4187 0c15 31       		.sleb128 49
- 4188 0c16 0D       		.uleb128 0xd
- 4189 0c17 00000000 		.long	.LASF237
- 4190 0c1b 32       		.sleb128 50
- 4191 0c1c 0D       		.uleb128 0xd
- 4192 0c1d 00000000 		.long	.LASF238
- 4193 0c21 33       		.sleb128 51
- 4194 0c22 0D       		.uleb128 0xd
- 4195 0c23 00000000 		.long	.LASF239
- 4196 0c27 34       		.sleb128 52
- 4197 0c28 0D       		.uleb128 0xd
- 4198 0c29 00000000 		.long	.LASF240
-
GAS LISTING /tmp/ccWvEaWW.s 			page 102
-
-
- 4199 0c2d 35       		.sleb128 53
- 4200 0c2e 0D       		.uleb128 0xd
- 4201 0c2f 00000000 		.long	.LASF241
- 4202 0c33 36       		.sleb128 54
- 4203 0c34 0D       		.uleb128 0xd
- 4204 0c35 00000000 		.long	.LASF242
- 4205 0c39 37       		.sleb128 55
- 4206 0c3a 0D       		.uleb128 0xd
- 4207 0c3b 00000000 		.long	.LASF243
- 4208 0c3f 38       		.sleb128 56
- 4209 0c40 0D       		.uleb128 0xd
- 4210 0c41 00000000 		.long	.LASF244
- 4211 0c45 39       		.sleb128 57
- 4212 0c46 0D       		.uleb128 0xd
- 4213 0c47 00000000 		.long	.LASF245
- 4214 0c4b 3A       		.sleb128 58
- 4215 0c4c 0D       		.uleb128 0xd
- 4216 0c4d 00000000 		.long	.LASF246
- 4217 0c51 3A       		.sleb128 58
- 4218 0c52 0D       		.uleb128 0xd
- 4219 0c53 00000000 		.long	.LASF247
- 4220 0c57 3B       		.sleb128 59
- 4221 0c58 0D       		.uleb128 0xd
- 4222 0c59 00000000 		.long	.LASF248
- 4223 0c5d 3C       		.sleb128 60
- 4224 0c5e 0D       		.uleb128 0xd
- 4225 0c5f 00000000 		.long	.LASF249
- 4226 0c63 3D       		.sleb128 61
- 4227 0c64 0D       		.uleb128 0xd
- 4228 0c65 00000000 		.long	.LASF250
- 4229 0c69 3E       		.sleb128 62
- 4230 0c6a 0D       		.uleb128 0xd
- 4231 0c6b 00000000 		.long	.LASF251
- 4232 0c6f 3F       		.sleb128 63
- 4233 0c70 0D       		.uleb128 0xd
- 4234 0c71 00000000 		.long	.LASF252
- 4235 0c75 C000     		.sleb128 64
- 4236 0c77 0D       		.uleb128 0xd
- 4237 0c78 00000000 		.long	.LASF253
- 4238 0c7c C100     		.sleb128 65
- 4239 0c7e 0D       		.uleb128 0xd
- 4240 0c7f 00000000 		.long	.LASF254
- 4241 0c83 C200     		.sleb128 66
- 4242 0c85 0D       		.uleb128 0xd
- 4243 0c86 00000000 		.long	.LASF255
- 4244 0c8a C300     		.sleb128 67
- 4245 0c8c 0D       		.uleb128 0xd
- 4246 0c8d 00000000 		.long	.LASF256
- 4247 0c91 C400     		.sleb128 68
- 4248 0c93 00       		.byte	0x0
- 4249 0c94 1D       		.uleb128 0x1d
- 4250 0c95 00000000 		.long	.LASF257
- 4251 0c99 04       		.byte	0x4
- 4252 0c9a 0F       		.byte	0xf
- 4253 0c9b 0A01     		.value	0x10a
- 4254 0c9d 930D0000 		.long	0xd93
- 4255 0ca1 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccWvEaWW.s 			page 103
-
-
- 4256 0ca2 00000000 		.long	.LASF258
- 4257 0ca6 00       		.sleb128 0
- 4258 0ca7 0D       		.uleb128 0xd
- 4259 0ca8 00000000 		.long	.LASF259
- 4260 0cac 3D       		.sleb128 61
- 4261 0cad 0D       		.uleb128 0xd
- 4262 0cae 00000000 		.long	.LASF260
- 4263 0cb2 3E       		.sleb128 62
- 4264 0cb3 0D       		.uleb128 0xd
- 4265 0cb4 00000000 		.long	.LASF261
- 4266 0cb8 3F       		.sleb128 63
- 4267 0cb9 0D       		.uleb128 0xd
- 4268 0cba 00000000 		.long	.LASF262
- 4269 0cbe C000     		.sleb128 64
- 4270 0cc0 0D       		.uleb128 0xd
- 4271 0cc1 00000000 		.long	.LASF263
- 4272 0cc5 C100     		.sleb128 65
- 4273 0cc7 0D       		.uleb128 0xd
- 4274 0cc8 00000000 		.long	.LASF264
- 4275 0ccc C200     		.sleb128 66
- 4276 0cce 0D       		.uleb128 0xd
- 4277 0ccf 00000000 		.long	.LASF265
- 4278 0cd3 C300     		.sleb128 67
- 4279 0cd5 0D       		.uleb128 0xd
- 4280 0cd6 00000000 		.long	.LASF266
- 4281 0cda C400     		.sleb128 68
- 4282 0cdc 0D       		.uleb128 0xd
- 4283 0cdd 00000000 		.long	.LASF267
- 4284 0ce1 C500     		.sleb128 69
- 4285 0ce3 0D       		.uleb128 0xd
- 4286 0ce4 00000000 		.long	.LASF268
- 4287 0ce8 C600     		.sleb128 70
- 4288 0cea 0D       		.uleb128 0xd
- 4289 0ceb 00000000 		.long	.LASF269
- 4290 0cef C700     		.sleb128 71
- 4291 0cf1 0D       		.uleb128 0xd
- 4292 0cf2 00000000 		.long	.LASF270
- 4293 0cf6 C800     		.sleb128 72
- 4294 0cf8 0D       		.uleb128 0xd
- 4295 0cf9 00000000 		.long	.LASF271
- 4296 0cfd C900     		.sleb128 73
- 4297 0cff 0D       		.uleb128 0xd
- 4298 0d00 00000000 		.long	.LASF272
- 4299 0d04 CA00     		.sleb128 74
- 4300 0d06 0D       		.uleb128 0xd
- 4301 0d07 00000000 		.long	.LASF273
- 4302 0d0b CB00     		.sleb128 75
- 4303 0d0d 0D       		.uleb128 0xd
- 4304 0d0e 00000000 		.long	.LASF274
- 4305 0d12 CC00     		.sleb128 76
- 4306 0d14 0D       		.uleb128 0xd
- 4307 0d15 00000000 		.long	.LASF275
- 4308 0d19 CD00     		.sleb128 77
- 4309 0d1b 0D       		.uleb128 0xd
- 4310 0d1c 00000000 		.long	.LASF276
- 4311 0d20 CE00     		.sleb128 78
- 4312 0d22 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccWvEaWW.s 			page 104
-
-
- 4313 0d23 00000000 		.long	.LASF277
- 4314 0d27 CF00     		.sleb128 79
- 4315 0d29 0D       		.uleb128 0xd
- 4316 0d2a 00000000 		.long	.LASF278
- 4317 0d2e D000     		.sleb128 80
- 4318 0d30 0D       		.uleb128 0xd
- 4319 0d31 00000000 		.long	.LASF279
- 4320 0d35 D100     		.sleb128 81
- 4321 0d37 0D       		.uleb128 0xd
- 4322 0d38 00000000 		.long	.LASF280
- 4323 0d3c D100     		.sleb128 81
- 4324 0d3e 0D       		.uleb128 0xd
- 4325 0d3f 00000000 		.long	.LASF281
- 4326 0d43 D200     		.sleb128 82
- 4327 0d45 0D       		.uleb128 0xd
- 4328 0d46 00000000 		.long	.LASF282
- 4329 0d4a D300     		.sleb128 83
- 4330 0d4c 0D       		.uleb128 0xd
- 4331 0d4d 00000000 		.long	.LASF283
- 4332 0d51 D400     		.sleb128 84
- 4333 0d53 0D       		.uleb128 0xd
- 4334 0d54 00000000 		.long	.LASF284
- 4335 0d58 D500     		.sleb128 85
- 4336 0d5a 0D       		.uleb128 0xd
- 4337 0d5b 00000000 		.long	.LASF285
- 4338 0d5f D600     		.sleb128 86
- 4339 0d61 0D       		.uleb128 0xd
- 4340 0d62 00000000 		.long	.LASF286
- 4341 0d66 D700     		.sleb128 87
- 4342 0d68 0D       		.uleb128 0xd
- 4343 0d69 00000000 		.long	.LASF287
- 4344 0d6d D800     		.sleb128 88
- 4345 0d6f 0D       		.uleb128 0xd
- 4346 0d70 00000000 		.long	.LASF288
- 4347 0d74 D900     		.sleb128 89
- 4348 0d76 0D       		.uleb128 0xd
- 4349 0d77 00000000 		.long	.LASF289
- 4350 0d7b DA00     		.sleb128 90
- 4351 0d7d 0D       		.uleb128 0xd
- 4352 0d7e 00000000 		.long	.LASF290
- 4353 0d82 DB00     		.sleb128 91
- 4354 0d84 0D       		.uleb128 0xd
- 4355 0d85 00000000 		.long	.LASF291
- 4356 0d89 DC00     		.sleb128 92
- 4357 0d8b 0D       		.uleb128 0xd
- 4358 0d8c 00000000 		.long	.LASF292
- 4359 0d90 DD00     		.sleb128 93
- 4360 0d92 00       		.byte	0x0
- 4361 0d93 1D       		.uleb128 0x1d
- 4362 0d94 00000000 		.long	.LASF293
- 4363 0d98 04       		.byte	0x4
- 4364 0d99 0F       		.byte	0xf
- 4365 0d9a 3401     		.value	0x134
- 4366 0d9c D30E0000 		.long	0xed3
- 4367 0da0 0D       		.uleb128 0xd
- 4368 0da1 00000000 		.long	.LASF294
- 4369 0da5 00       		.sleb128 0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 105
-
-
- 4370 0da6 0D       		.uleb128 0xd
- 4371 0da7 00000000 		.long	.LASF295
- 4372 0dab 01       		.sleb128 1
- 4373 0dac 0D       		.uleb128 0xd
- 4374 0dad 00000000 		.long	.LASF296
- 4375 0db1 02       		.sleb128 2
- 4376 0db2 0D       		.uleb128 0xd
- 4377 0db3 00000000 		.long	.LASF297
- 4378 0db7 03       		.sleb128 3
- 4379 0db8 0D       		.uleb128 0xd
- 4380 0db9 00000000 		.long	.LASF298
- 4381 0dbd 04       		.sleb128 4
- 4382 0dbe 0D       		.uleb128 0xd
- 4383 0dbf 00000000 		.long	.LASF299
- 4384 0dc3 05       		.sleb128 5
- 4385 0dc4 0D       		.uleb128 0xd
- 4386 0dc5 00000000 		.long	.LASF300
- 4387 0dc9 06       		.sleb128 6
- 4388 0dca 0D       		.uleb128 0xd
- 4389 0dcb 00000000 		.long	.LASF301
- 4390 0dcf 07       		.sleb128 7
- 4391 0dd0 0D       		.uleb128 0xd
- 4392 0dd1 00000000 		.long	.LASF302
- 4393 0dd5 08       		.sleb128 8
- 4394 0dd6 0D       		.uleb128 0xd
- 4395 0dd7 00000000 		.long	.LASF303
- 4396 0ddb 09       		.sleb128 9
- 4397 0ddc 0D       		.uleb128 0xd
- 4398 0ddd 00000000 		.long	.LASF304
- 4399 0de1 0A       		.sleb128 10
- 4400 0de2 0D       		.uleb128 0xd
- 4401 0de3 00000000 		.long	.LASF305
- 4402 0de7 0B       		.sleb128 11
- 4403 0de8 0D       		.uleb128 0xd
- 4404 0de9 00000000 		.long	.LASF306
- 4405 0ded 0C       		.sleb128 12
- 4406 0dee 0D       		.uleb128 0xd
- 4407 0def 00000000 		.long	.LASF307
- 4408 0df3 0D       		.sleb128 13
- 4409 0df4 0D       		.uleb128 0xd
- 4410 0df5 00000000 		.long	.LASF308
- 4411 0df9 0E       		.sleb128 14
- 4412 0dfa 0D       		.uleb128 0xd
- 4413 0dfb 00000000 		.long	.LASF309
- 4414 0dff 0F       		.sleb128 15
- 4415 0e00 0D       		.uleb128 0xd
- 4416 0e01 00000000 		.long	.LASF310
- 4417 0e05 10       		.sleb128 16
- 4418 0e06 0D       		.uleb128 0xd
- 4419 0e07 00000000 		.long	.LASF311
- 4420 0e0b 11       		.sleb128 17
- 4421 0e0c 0D       		.uleb128 0xd
- 4422 0e0d 00000000 		.long	.LASF312
- 4423 0e11 12       		.sleb128 18
- 4424 0e12 0D       		.uleb128 0xd
- 4425 0e13 00000000 		.long	.LASF313
- 4426 0e17 13       		.sleb128 19
-
GAS LISTING /tmp/ccWvEaWW.s 			page 106
-
-
- 4427 0e18 0D       		.uleb128 0xd
- 4428 0e19 00000000 		.long	.LASF314
- 4429 0e1d 14       		.sleb128 20
- 4430 0e1e 0D       		.uleb128 0xd
- 4431 0e1f 00000000 		.long	.LASF315
- 4432 0e23 15       		.sleb128 21
- 4433 0e24 0D       		.uleb128 0xd
- 4434 0e25 00000000 		.long	.LASF316
- 4435 0e29 16       		.sleb128 22
- 4436 0e2a 0D       		.uleb128 0xd
- 4437 0e2b 00000000 		.long	.LASF317
- 4438 0e2f 17       		.sleb128 23
- 4439 0e30 0D       		.uleb128 0xd
- 4440 0e31 00000000 		.long	.LASF318
- 4441 0e35 18       		.sleb128 24
- 4442 0e36 0D       		.uleb128 0xd
- 4443 0e37 00000000 		.long	.LASF319
- 4444 0e3b 19       		.sleb128 25
- 4445 0e3c 0D       		.uleb128 0xd
- 4446 0e3d 00000000 		.long	.LASF320
- 4447 0e41 1A       		.sleb128 26
- 4448 0e42 0D       		.uleb128 0xd
- 4449 0e43 00000000 		.long	.LASF321
- 4450 0e47 1B       		.sleb128 27
- 4451 0e48 0D       		.uleb128 0xd
- 4452 0e49 00000000 		.long	.LASF322
- 4453 0e4d 1C       		.sleb128 28
- 4454 0e4e 0D       		.uleb128 0xd
- 4455 0e4f 00000000 		.long	.LASF323
- 4456 0e53 1D       		.sleb128 29
- 4457 0e54 0D       		.uleb128 0xd
- 4458 0e55 00000000 		.long	.LASF324
- 4459 0e59 1E       		.sleb128 30
- 4460 0e5a 0D       		.uleb128 0xd
- 4461 0e5b 00000000 		.long	.LASF325
- 4462 0e5f 1F       		.sleb128 31
- 4463 0e60 0D       		.uleb128 0xd
- 4464 0e61 00000000 		.long	.LASF326
- 4465 0e65 20       		.sleb128 32
- 4466 0e66 0D       		.uleb128 0xd
- 4467 0e67 00000000 		.long	.LASF327
- 4468 0e6b 21       		.sleb128 33
- 4469 0e6c 0D       		.uleb128 0xd
- 4470 0e6d 00000000 		.long	.LASF328
- 4471 0e71 22       		.sleb128 34
- 4472 0e72 0D       		.uleb128 0xd
- 4473 0e73 00000000 		.long	.LASF329
- 4474 0e77 23       		.sleb128 35
- 4475 0e78 0D       		.uleb128 0xd
- 4476 0e79 00000000 		.long	.LASF330
- 4477 0e7d 24       		.sleb128 36
- 4478 0e7e 0D       		.uleb128 0xd
- 4479 0e7f 00000000 		.long	.LASF331
- 4480 0e83 25       		.sleb128 37
- 4481 0e84 0D       		.uleb128 0xd
- 4482 0e85 00000000 		.long	.LASF332
- 4483 0e89 26       		.sleb128 38
-
GAS LISTING /tmp/ccWvEaWW.s 			page 107
-
-
- 4484 0e8a 0D       		.uleb128 0xd
- 4485 0e8b 00000000 		.long	.LASF333
- 4486 0e8f 27       		.sleb128 39
- 4487 0e90 0D       		.uleb128 0xd
- 4488 0e91 00000000 		.long	.LASF334
- 4489 0e95 28       		.sleb128 40
- 4490 0e96 0D       		.uleb128 0xd
- 4491 0e97 00000000 		.long	.LASF335
- 4492 0e9b 29       		.sleb128 41
- 4493 0e9c 0D       		.uleb128 0xd
- 4494 0e9d 00000000 		.long	.LASF336
- 4495 0ea1 29       		.sleb128 41
- 4496 0ea2 0D       		.uleb128 0xd
- 4497 0ea3 00000000 		.long	.LASF337
- 4498 0ea7 2A       		.sleb128 42
- 4499 0ea8 0D       		.uleb128 0xd
- 4500 0ea9 00000000 		.long	.LASF338
- 4501 0ead 2B       		.sleb128 43
- 4502 0eae 0D       		.uleb128 0xd
- 4503 0eaf 00000000 		.long	.LASF339
- 4504 0eb3 2C       		.sleb128 44
- 4505 0eb4 0D       		.uleb128 0xd
- 4506 0eb5 00000000 		.long	.LASF340
- 4507 0eb9 2D       		.sleb128 45
- 4508 0eba 0D       		.uleb128 0xd
- 4509 0ebb 00000000 		.long	.LASF341
- 4510 0ebf 2E       		.sleb128 46
- 4511 0ec0 0D       		.uleb128 0xd
- 4512 0ec1 00000000 		.long	.LASF342
- 4513 0ec5 2F       		.sleb128 47
- 4514 0ec6 0D       		.uleb128 0xd
- 4515 0ec7 00000000 		.long	.LASF343
- 4516 0ecb 30       		.sleb128 48
- 4517 0ecc 0D       		.uleb128 0xd
- 4518 0ecd 00000000 		.long	.LASF344
- 4519 0ed1 31       		.sleb128 49
- 4520 0ed2 00       		.byte	0x0
- 4521 0ed3 1E       		.uleb128 0x1e
- 4522 0ed4 00000000 		.long	.LASF347
- 4523 0ed8 01       		.byte	0x1
- 4524 0ed9 4B       		.byte	0x4b
- 4525 0eda 01       		.byte	0x1
- 4526 0edb 3D050000 		.long	0x53d
- 4527 0edf 00000000 		.quad	.LFB601
- 4527      00000000 
- 4528 0ee7 00000000 		.quad	.LFE601
- 4528      00000000 
- 4529 0eef 00000000 		.long	.LLST0
- 4530 0ef3 130F0000 		.long	0xf13
- 4531 0ef7 1F       		.uleb128 0x1f
- 4532 0ef8 00000000 		.long	.LASF345
- 4533 0efc 01       		.byte	0x1
- 4534 0efd 4B       		.byte	0x4b
- 4535 0efe 1F040000 		.long	0x41f
- 4536 0f02 02       		.byte	0x2
- 4537 0f03 91       		.byte	0x91
- 4538 0f04 68       		.sleb128 -24
-
GAS LISTING /tmp/ccWvEaWW.s 			page 108
-
-
- 4539 0f05 20       		.uleb128 0x20
- 4540 0f06 637600   		.string	"cv"
- 4541 0f09 01       		.byte	0x1
- 4542 0f0a 4E       		.byte	0x4e
- 4543 0f0b 3D050000 		.long	0x53d
- 4544 0f0f 02       		.byte	0x2
- 4545 0f10 76       		.byte	0x76
- 4546 0f11 60       		.sleb128 -32
- 4547 0f12 00       		.byte	0x0
- 4548 0f13 21       		.uleb128 0x21
- 4549 0f14 00000000 		.long	.LASF395
- 4550 0f18 01       		.byte	0x1
- 4551 0f19 62       		.byte	0x62
- 4552 0f1a 01       		.byte	0x1
- 4553 0f1b 00000000 		.quad	.LFB602
- 4553      00000000 
- 4554 0f23 00000000 		.quad	.LFE602
- 4554      00000000 
- 4555 0f2b 00000000 		.long	.LLST1
- 4556 0f2f 5D0F0000 		.long	0xf5d
- 4557 0f33 22       		.uleb128 0x22
- 4558 0f34 637600   		.string	"cv"
- 4559 0f37 01       		.byte	0x1
- 4560 0f38 62       		.byte	0x62
- 4561 0f39 5D0F0000 		.long	0xf5d
- 4562 0f3d 02       		.byte	0x2
- 4563 0f3e 91       		.byte	0x91
- 4564 0f3f 60       		.sleb128 -32
- 4565 0f40 1F       		.uleb128 0x1f
- 4566 0f41 00000000 		.long	.LASF346
- 4567 0f45 01       		.byte	0x1
- 4568 0f46 62       		.byte	0x62
- 4569 0f47 B4000000 		.long	0xb4
- 4570 0f4b 02       		.byte	0x2
- 4571 0f4c 91       		.byte	0x91
- 4572 0f4d 58       		.sleb128 -40
- 4573 0f4e 20       		.uleb128 0x20
- 4574 0f4f 72637600 		.string	"rcv"
- 4575 0f53 01       		.byte	0x1
- 4576 0f54 65       		.byte	0x65
- 4577 0f55 3D050000 		.long	0x53d
- 4578 0f59 02       		.byte	0x2
- 4579 0f5a 76       		.byte	0x76
- 4580 0f5b 50       		.sleb128 -48
- 4581 0f5c 00       		.byte	0x0
- 4582 0f5d 0B       		.uleb128 0xb
- 4583 0f5e 3D050000 		.long	0x53d
- 4584 0f62 1E       		.uleb128 0x1e
- 4585 0f63 00000000 		.long	.LASF348
- 4586 0f67 01       		.byte	0x1
- 4587 0f68 71       		.byte	0x71
- 4588 0f69 01       		.byte	0x1
- 4589 0f6a 7B000000 		.long	0x7b
- 4590 0f6e 00000000 		.quad	.LFB603
- 4590      00000000 
- 4591 0f76 00000000 		.quad	.LFE603
- 4591      00000000 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 109
-
-
- 4592 0f7e 00000000 		.long	.LLST2
- 4593 0f82 A20F0000 		.long	0xfa2
- 4594 0f86 1F       		.uleb128 0x1f
- 4595 0f87 00000000 		.long	.LASF349
- 4596 0f8b 01       		.byte	0x1
- 4597 0f8c 71       		.byte	0x71
- 4598 0f8d DE030000 		.long	0x3de
- 4599 0f91 02       		.byte	0x2
- 4600 0f92 91       		.byte	0x91
- 4601 0f93 58       		.sleb128 -40
- 4602 0f94 20       		.uleb128 0x20
- 4603 0f95 726300   		.string	"rc"
- 4604 0f98 01       		.byte	0x1
- 4605 0f99 73       		.byte	0x73
- 4606 0f9a 7B000000 		.long	0x7b
- 4607 0f9e 02       		.byte	0x2
- 4608 0f9f 91       		.byte	0x91
- 4609 0fa0 6C       		.sleb128 -20
- 4610 0fa1 00       		.byte	0x0
- 4611 0fa2 1E       		.uleb128 0x1e
- 4612 0fa3 00000000 		.long	.LASF350
- 4613 0fa7 01       		.byte	0x1
- 4614 0fa8 7E       		.byte	0x7e
- 4615 0fa9 01       		.byte	0x1
- 4616 0faa 7B000000 		.long	0x7b
- 4617 0fae 00000000 		.quad	.LFB604
- 4617      00000000 
- 4618 0fb6 00000000 		.quad	.LFE604
- 4618      00000000 
- 4619 0fbe 00000000 		.long	.LLST3
- 4620 0fc2 27100000 		.long	0x1027
- 4621 0fc6 1F       		.uleb128 0x1f
- 4622 0fc7 00000000 		.long	.LASF349
- 4623 0fcb 01       		.byte	0x1
- 4624 0fcc 7E       		.byte	0x7e
- 4625 0fcd DE030000 		.long	0x3de
- 4626 0fd1 02       		.byte	0x2
- 4627 0fd2 91       		.byte	0x91
- 4628 0fd3 48       		.sleb128 -56
- 4629 0fd4 1F       		.uleb128 0x1f
- 4630 0fd5 00000000 		.long	.LASF351
- 4631 0fd9 01       		.byte	0x1
- 4632 0fda 7F       		.byte	0x7f
- 4633 0fdb B6000000 		.long	0xb6
- 4634 0fdf 02       		.byte	0x2
- 4635 0fe0 91       		.byte	0x91
- 4636 0fe1 40       		.sleb128 -64
- 4637 0fe2 1F       		.uleb128 0x1f
- 4638 0fe3 00000000 		.long	.LASF352
- 4639 0fe7 01       		.byte	0x1
- 4640 0fe8 80       		.byte	0x80
- 4641 0fe9 62000000 		.long	0x62
- 4642 0fed 03       		.byte	0x3
- 4643 0fee 91       		.byte	0x91
- 4644 0fef BC7F     		.sleb128 -68
- 4645 0ff1 20       		.uleb128 0x20
- 4646 0ff2 726300   		.string	"rc"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 110
-
-
- 4647 0ff5 01       		.byte	0x1
- 4648 0ff6 82       		.byte	0x82
- 4649 0ff7 7B000000 		.long	0x7b
- 4650 0ffb 02       		.byte	0x2
- 4651 0ffc 91       		.byte	0x91
- 4652 0ffd 5C       		.sleb128 -36
- 4653 0ffe 23       		.uleb128 0x23
- 4654 0fff 00000000 		.long	.LASF353
- 4655 1003 37100000 		.long	0x1037
- 4656 1007 01       		.byte	0x1
- 4657 1008 09       		.byte	0x9
- 4658 1009 03       		.byte	0x3
- 4659 100a 00000000 		.quad	__PRETTY_FUNCTION__.7296
- 4659      00000000 
- 4660 1012 23       		.uleb128 0x23
- 4661 1013 00000000 		.long	.LASF354
- 4662 1017 3C100000 		.long	0x103c
- 4663 101b 01       		.byte	0x1
- 4664 101c 09       		.byte	0x9
- 4665 101d 03       		.byte	0x3
- 4666 101e 00000000 		.quad	__func__.7298
- 4666      00000000 
- 4667 1026 00       		.byte	0x0
- 4668 1027 1B       		.uleb128 0x1b
- 4669 1028 C1000000 		.long	0xc1
- 4670 102c 37100000 		.long	0x1037
- 4671 1030 17       		.uleb128 0x17
- 4672 1031 B1000000 		.long	0xb1
- 4673 1035 1C       		.byte	0x1c
- 4674 1036 00       		.byte	0x0
- 4675 1037 0B       		.uleb128 0xb
- 4676 1038 27100000 		.long	0x1027
- 4677 103c 0B       		.uleb128 0xb
- 4678 103d 27100000 		.long	0x1027
- 4679 1041 1E       		.uleb128 0x1e
- 4680 1042 00000000 		.long	.LASF355
- 4681 1046 01       		.byte	0x1
- 4682 1047 97       		.byte	0x97
- 4683 1048 01       		.byte	0x1
- 4684 1049 7B000000 		.long	0x7b
- 4685 104d 00000000 		.quad	.LFB605
- 4685      00000000 
- 4686 1055 00000000 		.quad	.LFE605
- 4686      00000000 
- 4687 105d 00000000 		.long	.LLST4
- 4688 1061 C6100000 		.long	0x10c6
- 4689 1065 1F       		.uleb128 0x1f
- 4690 1066 00000000 		.long	.LASF349
- 4691 106a 01       		.byte	0x1
- 4692 106b 97       		.byte	0x97
- 4693 106c DE030000 		.long	0x3de
- 4694 1070 02       		.byte	0x2
- 4695 1071 91       		.byte	0x91
- 4696 1072 48       		.sleb128 -56
- 4697 1073 1F       		.uleb128 0x1f
- 4698 1074 00000000 		.long	.LASF351
- 4699 1078 01       		.byte	0x1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 111
-
-
- 4700 1079 98       		.byte	0x98
- 4701 107a B6000000 		.long	0xb6
- 4702 107e 02       		.byte	0x2
- 4703 107f 91       		.byte	0x91
- 4704 1080 40       		.sleb128 -64
- 4705 1081 1F       		.uleb128 0x1f
- 4706 1082 00000000 		.long	.LASF352
- 4707 1086 01       		.byte	0x1
- 4708 1087 99       		.byte	0x99
- 4709 1088 62000000 		.long	0x62
- 4710 108c 03       		.byte	0x3
- 4711 108d 91       		.byte	0x91
- 4712 108e BC7F     		.sleb128 -68
- 4713 1090 20       		.uleb128 0x20
- 4714 1091 726300   		.string	"rc"
- 4715 1094 01       		.byte	0x1
- 4716 1095 9B       		.byte	0x9b
- 4717 1096 7B000000 		.long	0x7b
- 4718 109a 02       		.byte	0x2
- 4719 109b 91       		.byte	0x91
- 4720 109c 5C       		.sleb128 -36
- 4721 109d 23       		.uleb128 0x23
- 4722 109e 00000000 		.long	.LASF353
- 4723 10a2 C6100000 		.long	0x10c6
- 4724 10a6 01       		.byte	0x1
- 4725 10a7 09       		.byte	0x9
- 4726 10a8 03       		.byte	0x3
- 4727 10a9 00000000 		.quad	__PRETTY_FUNCTION__.7320
- 4727      00000000 
- 4728 10b1 23       		.uleb128 0x23
- 4729 10b2 00000000 		.long	.LASF354
- 4730 10b6 CB100000 		.long	0x10cb
- 4731 10ba 01       		.byte	0x1
- 4732 10bb 09       		.byte	0x9
- 4733 10bc 03       		.byte	0x3
- 4734 10bd 00000000 		.quad	__func__.7322
- 4734      00000000 
- 4735 10c5 00       		.byte	0x0
- 4736 10c6 0B       		.uleb128 0xb
- 4737 10c7 27100000 		.long	0x1027
- 4738 10cb 0B       		.uleb128 0xb
- 4739 10cc 27100000 		.long	0x1027
- 4740 10d0 1E       		.uleb128 0x1e
- 4741 10d1 00000000 		.long	.LASF356
- 4742 10d5 01       		.byte	0x1
- 4743 10d6 B1       		.byte	0xb1
- 4744 10d7 01       		.byte	0x1
- 4745 10d8 7B000000 		.long	0x7b
- 4746 10dc 00000000 		.quad	.LFB606
- 4746      00000000 
- 4747 10e4 00000000 		.quad	.LFE606
- 4747      00000000 
- 4748 10ec 00000000 		.long	.LLST5
- 4749 10f0 25110000 		.long	0x1125
- 4750 10f4 1F       		.uleb128 0x1f
- 4751 10f5 00000000 		.long	.LASF349
- 4752 10f9 01       		.byte	0x1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 112
-
-
- 4753 10fa B1       		.byte	0xb1
- 4754 10fb DE030000 		.long	0x3de
- 4755 10ff 02       		.byte	0x2
- 4756 1100 91       		.byte	0x91
- 4757 1101 68       		.sleb128 -24
- 4758 1102 1F       		.uleb128 0x1f
- 4759 1103 00000000 		.long	.LASF357
- 4760 1107 01       		.byte	0x1
- 4761 1108 B2       		.byte	0xb2
- 4762 1109 1F040000 		.long	0x41f
- 4763 110d 02       		.byte	0x2
- 4764 110e 91       		.byte	0x91
- 4765 110f 60       		.sleb128 -32
- 4766 1110 23       		.uleb128 0x23
- 4767 1111 00000000 		.long	.LASF353
- 4768 1115 35110000 		.long	0x1135
- 4769 1119 01       		.byte	0x1
- 4770 111a 09       		.byte	0x9
- 4771 111b 03       		.byte	0x3
- 4772 111c 00000000 		.quad	__PRETTY_FUNCTION__.7342
- 4772      00000000 
- 4773 1124 00       		.byte	0x0
- 4774 1125 1B       		.uleb128 0x1b
- 4775 1126 C1000000 		.long	0xc1
- 4776 112a 35110000 		.long	0x1135
- 4777 112e 17       		.uleb128 0x17
- 4778 112f B1000000 		.long	0xb1
- 4779 1133 1D       		.byte	0x1d
- 4780 1134 00       		.byte	0x0
- 4781 1135 0B       		.uleb128 0xb
- 4782 1136 25110000 		.long	0x1125
- 4783 113a 1E       		.uleb128 0x1e
- 4784 113b 00000000 		.long	.LASF358
- 4785 113f 01       		.byte	0x1
- 4786 1140 BE       		.byte	0xbe
- 4787 1141 01       		.byte	0x1
- 4788 1142 7B000000 		.long	0x7b
- 4789 1146 00000000 		.quad	.LFB607
- 4789      00000000 
- 4790 114e 00000000 		.quad	.LFE607
- 4790      00000000 
- 4791 1156 00000000 		.long	.LLST6
- 4792 115a 8F110000 		.long	0x118f
- 4793 115e 1F       		.uleb128 0x1f
- 4794 115f 00000000 		.long	.LASF349
- 4795 1163 01       		.byte	0x1
- 4796 1164 BE       		.byte	0xbe
- 4797 1165 DE030000 		.long	0x3de
- 4798 1169 02       		.byte	0x2
- 4799 116a 91       		.byte	0x91
- 4800 116b 68       		.sleb128 -24
- 4801 116c 1F       		.uleb128 0x1f
- 4802 116d 00000000 		.long	.LASF357
- 4803 1171 01       		.byte	0x1
- 4804 1172 BF       		.byte	0xbf
- 4805 1173 1F040000 		.long	0x41f
- 4806 1177 02       		.byte	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 113
-
-
- 4807 1178 91       		.byte	0x91
- 4808 1179 60       		.sleb128 -32
- 4809 117a 23       		.uleb128 0x23
- 4810 117b 00000000 		.long	.LASF353
- 4811 117f 8F110000 		.long	0x118f
- 4812 1183 01       		.byte	0x1
- 4813 1184 09       		.byte	0x9
- 4814 1185 03       		.byte	0x3
- 4815 1186 00000000 		.quad	__PRETTY_FUNCTION__.7355
- 4815      00000000 
- 4816 118e 00       		.byte	0x0
- 4817 118f 0B       		.uleb128 0xb
- 4818 1190 25110000 		.long	0x1125
- 4819 1194 1E       		.uleb128 0x1e
- 4820 1195 00000000 		.long	.LASF359
- 4821 1199 01       		.byte	0x1
- 4822 119a CB       		.byte	0xcb
- 4823 119b 01       		.byte	0x1
- 4824 119c 7B000000 		.long	0x7b
- 4825 11a0 00000000 		.quad	.LFB608
- 4825      00000000 
- 4826 11a8 00000000 		.quad	.LFE608
- 4826      00000000 
- 4827 11b0 00000000 		.long	.LLST7
- 4828 11b4 E9110000 		.long	0x11e9
- 4829 11b8 1F       		.uleb128 0x1f
- 4830 11b9 00000000 		.long	.LASF349
- 4831 11bd 01       		.byte	0x1
- 4832 11be CB       		.byte	0xcb
- 4833 11bf DE030000 		.long	0x3de
- 4834 11c3 02       		.byte	0x2
- 4835 11c4 91       		.byte	0x91
- 4836 11c5 68       		.sleb128 -24
- 4837 11c6 1F       		.uleb128 0x1f
- 4838 11c7 00000000 		.long	.LASF360
- 4839 11cb 01       		.byte	0x1
- 4840 11cc CC       		.byte	0xcc
- 4841 11cd F7010000 		.long	0x1f7
- 4842 11d1 02       		.byte	0x2
- 4843 11d2 91       		.byte	0x91
- 4844 11d3 60       		.sleb128 -32
- 4845 11d4 23       		.uleb128 0x23
- 4846 11d5 00000000 		.long	.LASF353
- 4847 11d9 F9110000 		.long	0x11f9
- 4848 11dd 01       		.byte	0x1
- 4849 11de 09       		.byte	0x9
- 4850 11df 03       		.byte	0x3
- 4851 11e0 00000000 		.quad	__PRETTY_FUNCTION__.7368
- 4851      00000000 
- 4852 11e8 00       		.byte	0x0
- 4853 11e9 1B       		.uleb128 0x1b
- 4854 11ea C1000000 		.long	0xc1
- 4855 11ee F9110000 		.long	0x11f9
- 4856 11f2 17       		.uleb128 0x17
- 4857 11f3 B1000000 		.long	0xb1
- 4858 11f7 24       		.byte	0x24
- 4859 11f8 00       		.byte	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 114
-
-
- 4860 11f9 0B       		.uleb128 0xb
- 4861 11fa E9110000 		.long	0x11e9
- 4862 11fe 1E       		.uleb128 0x1e
- 4863 11ff 00000000 		.long	.LASF361
- 4864 1203 01       		.byte	0x1
- 4865 1204 D8       		.byte	0xd8
- 4866 1205 01       		.byte	0x1
- 4867 1206 7B000000 		.long	0x7b
- 4868 120a 00000000 		.quad	.LFB609
- 4868      00000000 
- 4869 1212 00000000 		.quad	.LFE609
- 4869      00000000 
- 4870 121a 00000000 		.long	.LLST8
- 4871 121e 53120000 		.long	0x1253
- 4872 1222 1F       		.uleb128 0x1f
- 4873 1223 00000000 		.long	.LASF349
- 4874 1227 01       		.byte	0x1
- 4875 1228 D8       		.byte	0xd8
- 4876 1229 DE030000 		.long	0x3de
- 4877 122d 02       		.byte	0x2
- 4878 122e 91       		.byte	0x91
- 4879 122f 68       		.sleb128 -24
- 4880 1230 1F       		.uleb128 0x1f
- 4881 1231 00000000 		.long	.LASF360
- 4882 1235 01       		.byte	0x1
- 4883 1236 D9       		.byte	0xd9
- 4884 1237 F7010000 		.long	0x1f7
- 4885 123b 02       		.byte	0x2
- 4886 123c 91       		.byte	0x91
- 4887 123d 60       		.sleb128 -32
- 4888 123e 23       		.uleb128 0x23
- 4889 123f 00000000 		.long	.LASF353
- 4890 1243 53120000 		.long	0x1253
- 4891 1247 01       		.byte	0x1
- 4892 1248 09       		.byte	0x9
- 4893 1249 03       		.byte	0x3
- 4894 124a 00000000 		.quad	__PRETTY_FUNCTION__.7378
- 4894      00000000 
- 4895 1252 00       		.byte	0x0
- 4896 1253 0B       		.uleb128 0xb
- 4897 1254 E9110000 		.long	0x11e9
- 4898 1258 1E       		.uleb128 0x1e
- 4899 1259 00000000 		.long	.LASF362
- 4900 125d 01       		.byte	0x1
- 4901 125e E4       		.byte	0xe4
- 4902 125f 01       		.byte	0x1
- 4903 1260 3D050000 		.long	0x53d
- 4904 1264 00000000 		.quad	.LFB610
- 4904      00000000 
- 4905 126c 00000000 		.quad	.LFE610
- 4905      00000000 
- 4906 1274 00000000 		.long	.LLST9
- 4907 1278 97120000 		.long	0x1297
- 4908 127c 1F       		.uleb128 0x1f
- 4909 127d 00000000 		.long	.LASF349
- 4910 1281 01       		.byte	0x1
- 4911 1282 E4       		.byte	0xe4
-
GAS LISTING /tmp/ccWvEaWW.s 			page 115
-
-
- 4912 1283 61040000 		.long	0x461
- 4913 1287 02       		.byte	0x2
- 4914 1288 91       		.byte	0x91
- 4915 1289 68       		.sleb128 -24
- 4916 128a 22       		.uleb128 0x22
- 4917 128b 637600   		.string	"cv"
- 4918 128e 01       		.byte	0x1
- 4919 128f E5       		.byte	0xe5
- 4920 1290 3D050000 		.long	0x53d
- 4921 1294 01       		.byte	0x1
- 4922 1295 61       		.byte	0x61
- 4923 1296 00       		.byte	0x0
- 4924 1297 1E       		.uleb128 0x1e
- 4925 1298 00000000 		.long	.LASF363
- 4926 129c 01       		.byte	0x1
- 4927 129d EB       		.byte	0xeb
- 4928 129e 01       		.byte	0x1
- 4929 129f 3D050000 		.long	0x53d
- 4930 12a3 00000000 		.quad	.LFB611
- 4930      00000000 
- 4931 12ab 00000000 		.quad	.LFE611
- 4931      00000000 
- 4932 12b3 00000000 		.long	.LLST10
- 4933 12b7 D6120000 		.long	0x12d6
- 4934 12bb 1F       		.uleb128 0x1f
- 4935 12bc 00000000 		.long	.LASF349
- 4936 12c0 01       		.byte	0x1
- 4937 12c1 EB       		.byte	0xeb
- 4938 12c2 61040000 		.long	0x461
- 4939 12c6 02       		.byte	0x2
- 4940 12c7 91       		.byte	0x91
- 4941 12c8 68       		.sleb128 -24
- 4942 12c9 22       		.uleb128 0x22
- 4943 12ca 637600   		.string	"cv"
- 4944 12cd 01       		.byte	0x1
- 4945 12ce EC       		.byte	0xec
- 4946 12cf 3D050000 		.long	0x53d
- 4947 12d3 01       		.byte	0x1
- 4948 12d4 61       		.byte	0x61
- 4949 12d5 00       		.byte	0x0
- 4950 12d6 1E       		.uleb128 0x1e
- 4951 12d7 00000000 		.long	.LASF364
- 4952 12db 01       		.byte	0x1
- 4953 12dc F2       		.byte	0xf2
- 4954 12dd 01       		.byte	0x1
- 4955 12de 7B000000 		.long	0x7b
- 4956 12e2 00000000 		.quad	.LFB612
- 4956      00000000 
- 4957 12ea 00000000 		.quad	.LFE612
- 4957      00000000 
- 4958 12f2 00000000 		.long	.LLST11
- 4959 12f6 31130000 		.long	0x1331
- 4960 12fa 1F       		.uleb128 0x1f
- 4961 12fb 00000000 		.long	.LASF349
- 4962 12ff 01       		.byte	0x1
- 4963 1300 F2       		.byte	0xf2
- 4964 1301 61040000 		.long	0x461
-
GAS LISTING /tmp/ccWvEaWW.s 			page 116
-
-
- 4965 1305 02       		.byte	0x2
- 4966 1306 91       		.byte	0x91
- 4967 1307 58       		.sleb128 -40
- 4968 1308 22       		.uleb128 0x22
- 4969 1309 696E00   		.string	"in"
- 4970 130c 01       		.byte	0x1
- 4971 130d F3       		.byte	0xf3
- 4972 130e 1F040000 		.long	0x41f
- 4973 1312 02       		.byte	0x2
- 4974 1313 91       		.byte	0x91
- 4975 1314 50       		.sleb128 -48
- 4976 1315 22       		.uleb128 0x22
- 4977 1316 6F757400 		.string	"out"
- 4978 131a 01       		.byte	0x1
- 4979 131b F3       		.byte	0xf3
- 4980 131c B4000000 		.long	0xb4
- 4981 1320 02       		.byte	0x2
- 4982 1321 91       		.byte	0x91
- 4983 1322 48       		.sleb128 -56
- 4984 1323 20       		.uleb128 0x20
- 4985 1324 637600   		.string	"cv"
- 4986 1327 01       		.byte	0x1
- 4987 1328 F5       		.byte	0xf5
- 4988 1329 3D050000 		.long	0x53d
- 4989 132d 02       		.byte	0x2
- 4990 132e 91       		.byte	0x91
- 4991 132f 60       		.sleb128 -32
- 4992 1330 00       		.byte	0x0
- 4993 1331 1E       		.uleb128 0x1e
- 4994 1332 00000000 		.long	.LASF365
- 4995 1336 01       		.byte	0x1
- 4996 1337 FE       		.byte	0xfe
- 4997 1338 01       		.byte	0x1
- 4998 1339 7B000000 		.long	0x7b
- 4999 133d 00000000 		.quad	.LFB613
- 4999      00000000 
- 5000 1345 00000000 		.quad	.LFE613
- 5000      00000000 
- 5001 134d 00000000 		.long	.LLST12
- 5002 1351 8D130000 		.long	0x138d
- 5003 1355 1F       		.uleb128 0x1f
- 5004 1356 00000000 		.long	.LASF349
- 5005 135a 01       		.byte	0x1
- 5006 135b FE       		.byte	0xfe
- 5007 135c 61040000 		.long	0x461
- 5008 1360 02       		.byte	0x2
- 5009 1361 91       		.byte	0x91
- 5010 1362 58       		.sleb128 -40
- 5011 1363 22       		.uleb128 0x22
- 5012 1364 696E00   		.string	"in"
- 5013 1367 01       		.byte	0x1
- 5014 1368 FF       		.byte	0xff
- 5015 1369 1F040000 		.long	0x41f
- 5016 136d 02       		.byte	0x2
- 5017 136e 91       		.byte	0x91
- 5018 136f 50       		.sleb128 -48
- 5019 1370 22       		.uleb128 0x22
-
GAS LISTING /tmp/ccWvEaWW.s 			page 117
-
-
- 5020 1371 6F757400 		.string	"out"
- 5021 1375 01       		.byte	0x1
- 5022 1376 FF       		.byte	0xff
- 5023 1377 B4000000 		.long	0xb4
- 5024 137b 02       		.byte	0x2
- 5025 137c 91       		.byte	0x91
- 5026 137d 48       		.sleb128 -56
- 5027 137e 24       		.uleb128 0x24
- 5028 137f 637600   		.string	"cv"
- 5029 1382 01       		.byte	0x1
- 5030 1383 0101     		.value	0x101
- 5031 1385 3D050000 		.long	0x53d
- 5032 1389 02       		.byte	0x2
- 5033 138a 91       		.byte	0x91
- 5034 138b 60       		.sleb128 -32
- 5035 138c 00       		.byte	0x0
- 5036 138d 25       		.uleb128 0x25
- 5037 138e 00000000 		.long	.LASF366
- 5038 1392 01       		.byte	0x1
- 5039 1393 0A01     		.value	0x10a
- 5040 1395 01       		.byte	0x1
- 5041 1396 7B000000 		.long	0x7b
- 5042 139a 00000000 		.quad	.LFB614
- 5042      00000000 
- 5043 13a2 00000000 		.quad	.LFE614
- 5043      00000000 
- 5044 13aa 00000000 		.long	.LLST13
- 5045 13ae 15140000 		.long	0x1415
- 5046 13b2 26       		.uleb128 0x26
- 5047 13b3 00000000 		.long	.LASF349
- 5048 13b7 01       		.byte	0x1
- 5049 13b8 0A01     		.value	0x10a
- 5050 13ba 61040000 		.long	0x461
- 5051 13be 02       		.byte	0x2
- 5052 13bf 91       		.byte	0x91
- 5053 13c0 58       		.sleb128 -40
- 5054 13c1 27       		.uleb128 0x27
- 5055 13c2 696E00   		.string	"in"
- 5056 13c5 01       		.byte	0x1
- 5057 13c6 0A01     		.value	0x10a
- 5058 13c8 1F040000 		.long	0x41f
- 5059 13cc 02       		.byte	0x2
- 5060 13cd 91       		.byte	0x91
- 5061 13ce 50       		.sleb128 -48
- 5062 13cf 27       		.uleb128 0x27
- 5063 13d0 6F757400 		.string	"out"
- 5064 13d4 01       		.byte	0x1
- 5065 13d5 0A01     		.value	0x10a
- 5066 13d7 B4000000 		.long	0xb4
- 5067 13db 02       		.byte	0x2
- 5068 13dc 91       		.byte	0x91
- 5069 13dd 48       		.sleb128 -56
- 5070 13de 24       		.uleb128 0x24
- 5071 13df 726300   		.string	"rc"
- 5072 13e2 01       		.byte	0x1
- 5073 13e3 0C01     		.value	0x10c
- 5074 13e5 7B000000 		.long	0x7b
-
GAS LISTING /tmp/ccWvEaWW.s 			page 118
-
-
- 5075 13e9 02       		.byte	0x2
- 5076 13ea 91       		.byte	0x91
- 5077 13eb 6C       		.sleb128 -20
- 5078 13ec 23       		.uleb128 0x23
- 5079 13ed 00000000 		.long	.LASF353
- 5080 13f1 25140000 		.long	0x1425
- 5081 13f5 01       		.byte	0x1
- 5082 13f6 09       		.byte	0x9
- 5083 13f7 03       		.byte	0x3
- 5084 13f8 00000000 		.quad	__PRETTY_FUNCTION__.7427
- 5084      00000000 
- 5085 1400 23       		.uleb128 0x23
- 5086 1401 00000000 		.long	.LASF354
- 5087 1405 2A140000 		.long	0x142a
- 5088 1409 01       		.byte	0x1
- 5089 140a 09       		.byte	0x9
- 5090 140b 03       		.byte	0x3
- 5091 140c 00000000 		.quad	__func__.7428
- 5091      00000000 
- 5092 1414 00       		.byte	0x0
- 5093 1415 1B       		.uleb128 0x1b
- 5094 1416 C1000000 		.long	0xc1
- 5095 141a 25140000 		.long	0x1425
- 5096 141e 17       		.uleb128 0x17
- 5097 141f B1000000 		.long	0xb1
- 5098 1423 16       		.byte	0x16
- 5099 1424 00       		.byte	0x0
- 5100 1425 0B       		.uleb128 0xb
- 5101 1426 15140000 		.long	0x1415
- 5102 142a 0B       		.uleb128 0xb
- 5103 142b 15140000 		.long	0x1415
- 5104 142f 25       		.uleb128 0x25
- 5105 1430 00000000 		.long	.LASF367
- 5106 1434 01       		.byte	0x1
- 5107 1435 1E01     		.value	0x11e
- 5108 1437 01       		.byte	0x1
- 5109 1438 7B000000 		.long	0x7b
- 5110 143c 00000000 		.quad	.LFB615
- 5110      00000000 
- 5111 1444 00000000 		.quad	.LFE615
- 5111      00000000 
- 5112 144c 00000000 		.long	.LLST14
- 5113 1450 B7140000 		.long	0x14b7
- 5114 1454 26       		.uleb128 0x26
- 5115 1455 00000000 		.long	.LASF349
- 5116 1459 01       		.byte	0x1
- 5117 145a 1E01     		.value	0x11e
- 5118 145c 61040000 		.long	0x461
- 5119 1460 02       		.byte	0x2
- 5120 1461 91       		.byte	0x91
- 5121 1462 58       		.sleb128 -40
- 5122 1463 27       		.uleb128 0x27
- 5123 1464 696E00   		.string	"in"
- 5124 1467 01       		.byte	0x1
- 5125 1468 1E01     		.value	0x11e
- 5126 146a 1F040000 		.long	0x41f
- 5127 146e 02       		.byte	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 119
-
-
- 5128 146f 91       		.byte	0x91
- 5129 1470 50       		.sleb128 -48
- 5130 1471 27       		.uleb128 0x27
- 5131 1472 6F757400 		.string	"out"
- 5132 1476 01       		.byte	0x1
- 5133 1477 1E01     		.value	0x11e
- 5134 1479 B4000000 		.long	0xb4
- 5135 147d 02       		.byte	0x2
- 5136 147e 91       		.byte	0x91
- 5137 147f 48       		.sleb128 -56
- 5138 1480 24       		.uleb128 0x24
- 5139 1481 726300   		.string	"rc"
- 5140 1484 01       		.byte	0x1
- 5141 1485 2001     		.value	0x120
- 5142 1487 7B000000 		.long	0x7b
- 5143 148b 02       		.byte	0x2
- 5144 148c 91       		.byte	0x91
- 5145 148d 6C       		.sleb128 -20
- 5146 148e 23       		.uleb128 0x23
- 5147 148f 00000000 		.long	.LASF353
- 5148 1493 B7140000 		.long	0x14b7
- 5149 1497 01       		.byte	0x1
- 5150 1498 09       		.byte	0x9
- 5151 1499 03       		.byte	0x3
- 5152 149a 00000000 		.quad	__PRETTY_FUNCTION__.7443
- 5152      00000000 
- 5153 14a2 23       		.uleb128 0x23
- 5154 14a3 00000000 		.long	.LASF354
- 5155 14a7 BC140000 		.long	0x14bc
- 5156 14ab 01       		.byte	0x1
- 5157 14ac 09       		.byte	0x9
- 5158 14ad 03       		.byte	0x3
- 5159 14ae 00000000 		.quad	__func__.7444
- 5159      00000000 
- 5160 14b6 00       		.byte	0x0
- 5161 14b7 0B       		.uleb128 0xb
- 5162 14b8 15140000 		.long	0x1415
- 5163 14bc 0B       		.uleb128 0xb
- 5164 14bd 15140000 		.long	0x1415
- 5165 14c1 25       		.uleb128 0x25
- 5166 14c2 00000000 		.long	.LASF368
- 5167 14c6 01       		.byte	0x1
- 5168 14c7 5C01     		.value	0x15c
- 5169 14c9 01       		.byte	0x1
- 5170 14ca 7B000000 		.long	0x7b
- 5171 14ce 00000000 		.quad	.LFB616
- 5171      00000000 
- 5172 14d6 00000000 		.quad	.LFE616
- 5172      00000000 
- 5173 14de 00000000 		.long	.LLST15
- 5174 14e2 40150000 		.long	0x1540
- 5175 14e6 26       		.uleb128 0x26
- 5176 14e7 00000000 		.long	.LASF349
- 5177 14eb 01       		.byte	0x1
- 5178 14ec 5C01     		.value	0x15c
- 5179 14ee 61040000 		.long	0x461
- 5180 14f2 02       		.byte	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 120
-
-
- 5181 14f3 91       		.byte	0x91
- 5182 14f4 58       		.sleb128 -40
- 5183 14f5 27       		.uleb128 0x27
- 5184 14f6 696E00   		.string	"in"
- 5185 14f9 01       		.byte	0x1
- 5186 14fa 5C01     		.value	0x15c
- 5187 14fc 1F040000 		.long	0x41f
- 5188 1500 02       		.byte	0x2
- 5189 1501 91       		.byte	0x91
- 5190 1502 50       		.sleb128 -48
- 5191 1503 27       		.uleb128 0x27
- 5192 1504 6F757400 		.string	"out"
- 5193 1508 01       		.byte	0x1
- 5194 1509 5C01     		.value	0x15c
- 5195 150b B4000000 		.long	0xb4
- 5196 150f 02       		.byte	0x2
- 5197 1510 91       		.byte	0x91
- 5198 1511 48       		.sleb128 -56
- 5199 1512 26       		.uleb128 0x26
- 5200 1513 00000000 		.long	.LASF369
- 5201 1517 01       		.byte	0x1
- 5202 1518 5C01     		.value	0x15c
- 5203 151a 62000000 		.long	0x62
- 5204 151e 02       		.byte	0x2
- 5205 151f 91       		.byte	0x91
- 5206 1520 44       		.sleb128 -60
- 5207 1521 24       		.uleb128 0x24
- 5208 1522 70696E00 		.string	"pin"
- 5209 1526 01       		.byte	0x1
- 5210 1527 5E01     		.value	0x15e
- 5211 1529 40150000 		.long	0x1540
- 5212 152d 02       		.byte	0x2
- 5213 152e 91       		.byte	0x91
- 5214 152f 60       		.sleb128 -32
- 5215 1530 28       		.uleb128 0x28
- 5216 1531 00000000 		.long	.LASF370
- 5217 1535 01       		.byte	0x1
- 5218 1536 5F01     		.value	0x15f
- 5219 1538 4B150000 		.long	0x154b
- 5220 153c 02       		.byte	0x2
- 5221 153d 91       		.byte	0x91
- 5222 153e 68       		.sleb128 -24
- 5223 153f 00       		.byte	0x0
- 5224 1540 0A       		.uleb128 0xa
- 5225 1541 08       		.byte	0x8
- 5226 1542 46150000 		.long	0x1546
- 5227 1546 0B       		.uleb128 0xb
- 5228 1547 49000000 		.long	0x49
- 5229 154b 0A       		.uleb128 0xa
- 5230 154c 08       		.byte	0x8
- 5231 154d 49000000 		.long	0x49
- 5232 1551 25       		.uleb128 0x25
- 5233 1552 00000000 		.long	.LASF371
- 5234 1556 01       		.byte	0x1
- 5235 1557 6C01     		.value	0x16c
- 5236 1559 01       		.byte	0x1
- 5237 155a 7B000000 		.long	0x7b
-
GAS LISTING /tmp/ccWvEaWW.s 			page 121
-
-
- 5238 155e 00000000 		.quad	.LFB617
- 5238      00000000 
- 5239 1566 00000000 		.quad	.LFE617
- 5239      00000000 
- 5240 156e 00000000 		.long	.LLST16
- 5241 1572 D0150000 		.long	0x15d0
- 5242 1576 26       		.uleb128 0x26
- 5243 1577 00000000 		.long	.LASF349
- 5244 157b 01       		.byte	0x1
- 5245 157c 6C01     		.value	0x16c
- 5246 157e 61040000 		.long	0x461
- 5247 1582 02       		.byte	0x2
- 5248 1583 91       		.byte	0x91
- 5249 1584 58       		.sleb128 -40
- 5250 1585 27       		.uleb128 0x27
- 5251 1586 696E00   		.string	"in"
- 5252 1589 01       		.byte	0x1
- 5253 158a 6C01     		.value	0x16c
- 5254 158c 1F040000 		.long	0x41f
- 5255 1590 02       		.byte	0x2
- 5256 1591 91       		.byte	0x91
- 5257 1592 50       		.sleb128 -48
- 5258 1593 27       		.uleb128 0x27
- 5259 1594 6F757400 		.string	"out"
- 5260 1598 01       		.byte	0x1
- 5261 1599 6C01     		.value	0x16c
- 5262 159b B4000000 		.long	0xb4
- 5263 159f 02       		.byte	0x2
- 5264 15a0 91       		.byte	0x91
- 5265 15a1 48       		.sleb128 -56
- 5266 15a2 26       		.uleb128 0x26
- 5267 15a3 00000000 		.long	.LASF369
- 5268 15a7 01       		.byte	0x1
- 5269 15a8 6C01     		.value	0x16c
- 5270 15aa 62000000 		.long	0x62
- 5271 15ae 02       		.byte	0x2
- 5272 15af 91       		.byte	0x91
- 5273 15b0 44       		.sleb128 -60
- 5274 15b1 24       		.uleb128 0x24
- 5275 15b2 70696E00 		.string	"pin"
- 5276 15b6 01       		.byte	0x1
- 5277 15b7 6E01     		.value	0x16e
- 5278 15b9 40150000 		.long	0x1540
- 5279 15bd 02       		.byte	0x2
- 5280 15be 91       		.byte	0x91
- 5281 15bf 60       		.sleb128 -32
- 5282 15c0 28       		.uleb128 0x28
- 5283 15c1 00000000 		.long	.LASF370
- 5284 15c5 01       		.byte	0x1
- 5285 15c6 6F01     		.value	0x16f
- 5286 15c8 4B150000 		.long	0x154b
- 5287 15cc 02       		.byte	0x2
- 5288 15cd 91       		.byte	0x91
- 5289 15ce 68       		.sleb128 -24
- 5290 15cf 00       		.byte	0x0
- 5291 15d0 25       		.uleb128 0x25
- 5292 15d1 00000000 		.long	.LASF372
-
GAS LISTING /tmp/ccWvEaWW.s 			page 122
-
-
- 5293 15d5 01       		.byte	0x1
- 5294 15d6 8201     		.value	0x182
- 5295 15d8 01       		.byte	0x1
- 5296 15d9 7B000000 		.long	0x7b
- 5297 15dd 00000000 		.quad	.LFB618
- 5297      00000000 
- 5298 15e5 00000000 		.quad	.LFE618
- 5298      00000000 
- 5299 15ed 00000000 		.long	.LLST17
- 5300 15f1 70160000 		.long	0x1670
- 5301 15f5 26       		.uleb128 0x26
- 5302 15f6 00000000 		.long	.LASF349
- 5303 15fa 01       		.byte	0x1
- 5304 15fb 8201     		.value	0x182
- 5305 15fd DE030000 		.long	0x3de
- 5306 1601 03       		.byte	0x3
- 5307 1602 91       		.byte	0x91
- 5308 1603 B87F     		.sleb128 -72
- 5309 1605 27       		.uleb128 0x27
- 5310 1606 696E00   		.string	"in"
- 5311 1609 01       		.byte	0x1
- 5312 160a 8201     		.value	0x182
- 5313 160c 1F040000 		.long	0x41f
- 5314 1610 03       		.byte	0x3
- 5315 1611 91       		.byte	0x91
- 5316 1612 B07F     		.sleb128 -80
- 5317 1614 27       		.uleb128 0x27
- 5318 1615 6F757400 		.string	"out"
- 5319 1619 01       		.byte	0x1
- 5320 161a 8201     		.value	0x182
- 5321 161c B4000000 		.long	0xb4
- 5322 1620 03       		.byte	0x3
- 5323 1621 91       		.byte	0x91
- 5324 1622 A87F     		.sleb128 -88
- 5325 1624 26       		.uleb128 0x26
- 5326 1625 00000000 		.long	.LASF369
- 5327 1629 01       		.byte	0x1
- 5328 162a 8201     		.value	0x182
- 5329 162c 62000000 		.long	0x62
- 5330 1630 03       		.byte	0x3
- 5331 1631 91       		.byte	0x91
- 5332 1632 A47F     		.sleb128 -92
- 5333 1634 24       		.uleb128 0x24
- 5334 1635 637600   		.string	"cv"
- 5335 1638 01       		.byte	0x1
- 5336 1639 8401     		.value	0x184
- 5337 163b 3D050000 		.long	0x53d
- 5338 163f 02       		.byte	0x2
- 5339 1640 91       		.byte	0x91
- 5340 1641 40       		.sleb128 -64
- 5341 1642 28       		.uleb128 0x28
- 5342 1643 00000000 		.long	.LASF357
- 5343 1647 01       		.byte	0x1
- 5344 1648 8501     		.value	0x185
- 5345 164a 3D050000 		.long	0x53d
- 5346 164e 02       		.byte	0x2
- 5347 164f 91       		.byte	0x91
-
GAS LISTING /tmp/ccWvEaWW.s 			page 123
-
-
- 5348 1650 50       		.sleb128 -48
- 5349 1651 24       		.uleb128 0x24
- 5350 1652 70696E00 		.string	"pin"
- 5351 1656 01       		.byte	0x1
- 5352 1657 8601     		.value	0x186
- 5353 1659 40150000 		.long	0x1540
- 5354 165d 02       		.byte	0x2
- 5355 165e 91       		.byte	0x91
- 5356 165f 60       		.sleb128 -32
- 5357 1660 28       		.uleb128 0x28
- 5358 1661 00000000 		.long	.LASF370
- 5359 1665 01       		.byte	0x1
- 5360 1666 8701     		.value	0x187
- 5361 1668 4B150000 		.long	0x154b
- 5362 166c 02       		.byte	0x2
- 5363 166d 91       		.byte	0x91
- 5364 166e 68       		.sleb128 -24
- 5365 166f 00       		.byte	0x0
- 5366 1670 25       		.uleb128 0x25
- 5367 1671 00000000 		.long	.LASF373
- 5368 1675 01       		.byte	0x1
- 5369 1676 A401     		.value	0x1a4
- 5370 1678 01       		.byte	0x1
- 5371 1679 7B000000 		.long	0x7b
- 5372 167d 00000000 		.quad	.LFB619
- 5372      00000000 
- 5373 1685 00000000 		.quad	.LFE619
- 5373      00000000 
- 5374 168d 00000000 		.long	.LLST18
- 5375 1691 32170000 		.long	0x1732
- 5376 1695 26       		.uleb128 0x26
- 5377 1696 00000000 		.long	.LASF349
- 5378 169a 01       		.byte	0x1
- 5379 169b A401     		.value	0x1a4
- 5380 169d DE030000 		.long	0x3de
- 5381 16a1 03       		.byte	0x3
- 5382 16a2 91       		.byte	0x91
- 5383 16a3 A87F     		.sleb128 -88
- 5384 16a5 27       		.uleb128 0x27
- 5385 16a6 696E00   		.string	"in"
- 5386 16a9 01       		.byte	0x1
- 5387 16aa A401     		.value	0x1a4
- 5388 16ac 1F040000 		.long	0x41f
- 5389 16b0 03       		.byte	0x3
- 5390 16b1 91       		.byte	0x91
- 5391 16b2 A07F     		.sleb128 -96
- 5392 16b4 27       		.uleb128 0x27
- 5393 16b5 6F757400 		.string	"out"
- 5394 16b9 01       		.byte	0x1
- 5395 16ba A401     		.value	0x1a4
- 5396 16bc B4000000 		.long	0xb4
- 5397 16c0 03       		.byte	0x3
- 5398 16c1 91       		.byte	0x91
- 5399 16c2 987F     		.sleb128 -104
- 5400 16c4 26       		.uleb128 0x26
- 5401 16c5 00000000 		.long	.LASF369
- 5402 16c9 01       		.byte	0x1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 124
-
-
- 5403 16ca A401     		.value	0x1a4
- 5404 16cc 62000000 		.long	0x62
- 5405 16d0 03       		.byte	0x3
- 5406 16d1 91       		.byte	0x91
- 5407 16d2 947F     		.sleb128 -108
- 5408 16d4 24       		.uleb128 0x24
- 5409 16d5 637600   		.string	"cv"
- 5410 16d8 01       		.byte	0x1
- 5411 16d9 A601     		.value	0x1a6
- 5412 16db 3D050000 		.long	0x53d
- 5413 16df 03       		.byte	0x3
- 5414 16e0 91       		.byte	0x91
- 5415 16e1 B07F     		.sleb128 -80
- 5416 16e3 28       		.uleb128 0x28
- 5417 16e4 00000000 		.long	.LASF357
- 5418 16e8 01       		.byte	0x1
- 5419 16e9 A701     		.value	0x1a7
- 5420 16eb 3D050000 		.long	0x53d
- 5421 16ef 02       		.byte	0x2
- 5422 16f0 91       		.byte	0x91
- 5423 16f1 40       		.sleb128 -64
- 5424 16f2 24       		.uleb128 0x24
- 5425 16f3 70696E00 		.string	"pin"
- 5426 16f7 01       		.byte	0x1
- 5427 16f8 A801     		.value	0x1a8
- 5428 16fa 40150000 		.long	0x1540
- 5429 16fe 02       		.byte	0x2
- 5430 16ff 91       		.byte	0x91
- 5431 1700 50       		.sleb128 -48
- 5432 1701 28       		.uleb128 0x28
- 5433 1702 00000000 		.long	.LASF370
- 5434 1706 01       		.byte	0x1
- 5435 1707 A901     		.value	0x1a9
- 5436 1709 4B150000 		.long	0x154b
- 5437 170d 02       		.byte	0x2
- 5438 170e 91       		.byte	0x91
- 5439 170f 58       		.sleb128 -40
- 5440 1710 29       		.uleb128 0x29
- 5441 1711 00000000 		.quad	.LBB2
- 5441      00000000 
- 5442 1719 00000000 		.quad	.LBE2
- 5442      00000000 
- 5443 1721 28       		.uleb128 0x28
- 5444 1722 00000000 		.long	.LASF374
- 5445 1726 01       		.byte	0x1
- 5446 1727 B101     		.value	0x1b1
- 5447 1729 3D050000 		.long	0x53d
- 5448 172d 02       		.byte	0x2
- 5449 172e 91       		.byte	0x91
- 5450 172f 60       		.sleb128 -32
- 5451 1730 00       		.byte	0x0
- 5452 1731 00       		.byte	0x0
- 5453 1732 25       		.uleb128 0x25
- 5454 1733 00000000 		.long	.LASF375
- 5455 1737 01       		.byte	0x1
- 5456 1738 CA01     		.value	0x1ca
- 5457 173a 01       		.byte	0x1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 125
-
-
- 5458 173b 7B000000 		.long	0x7b
- 5459 173f 00000000 		.quad	.LFB620
- 5459      00000000 
- 5460 1747 00000000 		.quad	.LFE620
- 5460      00000000 
- 5461 174f 00000000 		.long	.LLST19
- 5462 1753 F4170000 		.long	0x17f4
- 5463 1757 26       		.uleb128 0x26
- 5464 1758 00000000 		.long	.LASF349
- 5465 175c 01       		.byte	0x1
- 5466 175d CA01     		.value	0x1ca
- 5467 175f DE030000 		.long	0x3de
- 5468 1763 03       		.byte	0x3
- 5469 1764 91       		.byte	0x91
- 5470 1765 A87F     		.sleb128 -88
- 5471 1767 27       		.uleb128 0x27
- 5472 1768 696E00   		.string	"in"
- 5473 176b 01       		.byte	0x1
- 5474 176c CA01     		.value	0x1ca
- 5475 176e 1F040000 		.long	0x41f
- 5476 1772 03       		.byte	0x3
- 5477 1773 91       		.byte	0x91
- 5478 1774 A07F     		.sleb128 -96
- 5479 1776 27       		.uleb128 0x27
- 5480 1777 6F757400 		.string	"out"
- 5481 177b 01       		.byte	0x1
- 5482 177c CA01     		.value	0x1ca
- 5483 177e B4000000 		.long	0xb4
- 5484 1782 03       		.byte	0x3
- 5485 1783 91       		.byte	0x91
- 5486 1784 987F     		.sleb128 -104
- 5487 1786 26       		.uleb128 0x26
- 5488 1787 00000000 		.long	.LASF369
- 5489 178b 01       		.byte	0x1
- 5490 178c CA01     		.value	0x1ca
- 5491 178e 62000000 		.long	0x62
- 5492 1792 03       		.byte	0x3
- 5493 1793 91       		.byte	0x91
- 5494 1794 947F     		.sleb128 -108
- 5495 1796 24       		.uleb128 0x24
- 5496 1797 637600   		.string	"cv"
- 5497 179a 01       		.byte	0x1
- 5498 179b CD01     		.value	0x1cd
- 5499 179d 3D050000 		.long	0x53d
- 5500 17a1 03       		.byte	0x3
- 5501 17a2 91       		.byte	0x91
- 5502 17a3 B07F     		.sleb128 -80
- 5503 17a5 28       		.uleb128 0x28
- 5504 17a6 00000000 		.long	.LASF357
- 5505 17aa 01       		.byte	0x1
- 5506 17ab CE01     		.value	0x1ce
- 5507 17ad 3D050000 		.long	0x53d
- 5508 17b1 02       		.byte	0x2
- 5509 17b2 91       		.byte	0x91
- 5510 17b3 40       		.sleb128 -64
- 5511 17b4 24       		.uleb128 0x24
- 5512 17b5 70696E00 		.string	"pin"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 126
-
-
- 5513 17b9 01       		.byte	0x1
- 5514 17ba CF01     		.value	0x1cf
- 5515 17bc 40150000 		.long	0x1540
- 5516 17c0 02       		.byte	0x2
- 5517 17c1 91       		.byte	0x91
- 5518 17c2 50       		.sleb128 -48
- 5519 17c3 28       		.uleb128 0x28
- 5520 17c4 00000000 		.long	.LASF370
- 5521 17c8 01       		.byte	0x1
- 5522 17c9 D001     		.value	0x1d0
- 5523 17cb 4B150000 		.long	0x154b
- 5524 17cf 02       		.byte	0x2
- 5525 17d0 91       		.byte	0x91
- 5526 17d1 58       		.sleb128 -40
- 5527 17d2 29       		.uleb128 0x29
- 5528 17d3 00000000 		.quad	.LBB3
- 5528      00000000 
- 5529 17db 00000000 		.quad	.LBE3
- 5529      00000000 
- 5530 17e3 28       		.uleb128 0x28
- 5531 17e4 00000000 		.long	.LASF374
- 5532 17e8 01       		.byte	0x1
- 5533 17e9 D801     		.value	0x1d8
- 5534 17eb 3D050000 		.long	0x53d
- 5535 17ef 02       		.byte	0x2
- 5536 17f0 91       		.byte	0x91
- 5537 17f1 60       		.sleb128 -32
- 5538 17f2 00       		.byte	0x0
- 5539 17f3 00       		.byte	0x0
- 5540 17f4 25       		.uleb128 0x25
- 5541 17f5 00000000 		.long	.LASF376
- 5542 17f9 01       		.byte	0x1
- 5543 17fa EB01     		.value	0x1eb
- 5544 17fc 01       		.byte	0x1
- 5545 17fd 7B000000 		.long	0x7b
- 5546 1801 00000000 		.quad	.LFB621
- 5546      00000000 
- 5547 1809 00000000 		.quad	.LFE621
- 5547      00000000 
- 5548 1811 00000000 		.long	.LLST20
- 5549 1815 B6180000 		.long	0x18b6
- 5550 1819 26       		.uleb128 0x26
- 5551 181a 00000000 		.long	.LASF349
- 5552 181e 01       		.byte	0x1
- 5553 181f EB01     		.value	0x1eb
- 5554 1821 DE030000 		.long	0x3de
- 5555 1825 03       		.byte	0x3
- 5556 1826 91       		.byte	0x91
- 5557 1827 A87F     		.sleb128 -88
- 5558 1829 27       		.uleb128 0x27
- 5559 182a 696E00   		.string	"in"
- 5560 182d 01       		.byte	0x1
- 5561 182e EB01     		.value	0x1eb
- 5562 1830 1F040000 		.long	0x41f
- 5563 1834 03       		.byte	0x3
- 5564 1835 91       		.byte	0x91
- 5565 1836 A07F     		.sleb128 -96
-
GAS LISTING /tmp/ccWvEaWW.s 			page 127
-
-
- 5566 1838 27       		.uleb128 0x27
- 5567 1839 6F757400 		.string	"out"
- 5568 183d 01       		.byte	0x1
- 5569 183e EB01     		.value	0x1eb
- 5570 1840 B4000000 		.long	0xb4
- 5571 1844 03       		.byte	0x3
- 5572 1845 91       		.byte	0x91
- 5573 1846 987F     		.sleb128 -104
- 5574 1848 26       		.uleb128 0x26
- 5575 1849 00000000 		.long	.LASF369
- 5576 184d 01       		.byte	0x1
- 5577 184e EB01     		.value	0x1eb
- 5578 1850 62000000 		.long	0x62
- 5579 1854 03       		.byte	0x3
- 5580 1855 91       		.byte	0x91
- 5581 1856 947F     		.sleb128 -108
- 5582 1858 24       		.uleb128 0x24
- 5583 1859 637600   		.string	"cv"
- 5584 185c 01       		.byte	0x1
- 5585 185d EE01     		.value	0x1ee
- 5586 185f 3D050000 		.long	0x53d
- 5587 1863 03       		.byte	0x3
- 5588 1864 91       		.byte	0x91
- 5589 1865 B07F     		.sleb128 -80
- 5590 1867 28       		.uleb128 0x28
- 5591 1868 00000000 		.long	.LASF357
- 5592 186c 01       		.byte	0x1
- 5593 186d EF01     		.value	0x1ef
- 5594 186f 3D050000 		.long	0x53d
- 5595 1873 02       		.byte	0x2
- 5596 1874 91       		.byte	0x91
- 5597 1875 40       		.sleb128 -64
- 5598 1876 24       		.uleb128 0x24
- 5599 1877 70696E00 		.string	"pin"
- 5600 187b 01       		.byte	0x1
- 5601 187c F001     		.value	0x1f0
- 5602 187e 40150000 		.long	0x1540
- 5603 1882 02       		.byte	0x2
- 5604 1883 91       		.byte	0x91
- 5605 1884 50       		.sleb128 -48
- 5606 1885 28       		.uleb128 0x28
- 5607 1886 00000000 		.long	.LASF370
- 5608 188a 01       		.byte	0x1
- 5609 188b F101     		.value	0x1f1
- 5610 188d 4B150000 		.long	0x154b
- 5611 1891 02       		.byte	0x2
- 5612 1892 91       		.byte	0x91
- 5613 1893 58       		.sleb128 -40
- 5614 1894 29       		.uleb128 0x29
- 5615 1895 00000000 		.quad	.LBB4
- 5615      00000000 
- 5616 189d 00000000 		.quad	.LBE4
- 5616      00000000 
- 5617 18a5 28       		.uleb128 0x28
- 5618 18a6 00000000 		.long	.LASF374
- 5619 18aa 01       		.byte	0x1
- 5620 18ab F901     		.value	0x1f9
-
GAS LISTING /tmp/ccWvEaWW.s 			page 128
-
-
- 5621 18ad 3D050000 		.long	0x53d
- 5622 18b1 02       		.byte	0x2
- 5623 18b2 91       		.byte	0x91
- 5624 18b3 60       		.sleb128 -32
- 5625 18b4 00       		.byte	0x0
- 5626 18b5 00       		.byte	0x0
- 5627 18b6 25       		.uleb128 0x25
- 5628 18b7 00000000 		.long	.LASF377
- 5629 18bb 01       		.byte	0x1
- 5630 18bc 1002     		.value	0x210
- 5631 18be 01       		.byte	0x1
- 5632 18bf 7B000000 		.long	0x7b
- 5633 18c3 00000000 		.quad	.LFB622
- 5633      00000000 
- 5634 18cb 00000000 		.quad	.LFE622
- 5634      00000000 
- 5635 18d3 00000000 		.long	.LLST21
- 5636 18d7 56190000 		.long	0x1956
- 5637 18db 26       		.uleb128 0x26
- 5638 18dc 00000000 		.long	.LASF349
- 5639 18e0 01       		.byte	0x1
- 5640 18e1 1002     		.value	0x210
- 5641 18e3 DE030000 		.long	0x3de
- 5642 18e7 03       		.byte	0x3
- 5643 18e8 91       		.byte	0x91
- 5644 18e9 B87F     		.sleb128 -72
- 5645 18eb 27       		.uleb128 0x27
- 5646 18ec 696E00   		.string	"in"
- 5647 18ef 01       		.byte	0x1
- 5648 18f0 1002     		.value	0x210
- 5649 18f2 1F040000 		.long	0x41f
- 5650 18f6 03       		.byte	0x3
- 5651 18f7 91       		.byte	0x91
- 5652 18f8 B07F     		.sleb128 -80
- 5653 18fa 27       		.uleb128 0x27
- 5654 18fb 6F757400 		.string	"out"
- 5655 18ff 01       		.byte	0x1
- 5656 1900 1002     		.value	0x210
- 5657 1902 B4000000 		.long	0xb4
- 5658 1906 03       		.byte	0x3
- 5659 1907 91       		.byte	0x91
- 5660 1908 A87F     		.sleb128 -88
- 5661 190a 26       		.uleb128 0x26
- 5662 190b 00000000 		.long	.LASF369
- 5663 190f 01       		.byte	0x1
- 5664 1910 1002     		.value	0x210
- 5665 1912 62000000 		.long	0x62
- 5666 1916 03       		.byte	0x3
- 5667 1917 91       		.byte	0x91
- 5668 1918 A47F     		.sleb128 -92
- 5669 191a 24       		.uleb128 0x24
- 5670 191b 637600   		.string	"cv"
- 5671 191e 01       		.byte	0x1
- 5672 191f 1302     		.value	0x213
- 5673 1921 3D050000 		.long	0x53d
- 5674 1925 02       		.byte	0x2
- 5675 1926 91       		.byte	0x91
-
GAS LISTING /tmp/ccWvEaWW.s 			page 129
-
-
- 5676 1927 40       		.sleb128 -64
- 5677 1928 28       		.uleb128 0x28
- 5678 1929 00000000 		.long	.LASF357
- 5679 192d 01       		.byte	0x1
- 5680 192e 1402     		.value	0x214
- 5681 1930 3D050000 		.long	0x53d
- 5682 1934 02       		.byte	0x2
- 5683 1935 91       		.byte	0x91
- 5684 1936 50       		.sleb128 -48
- 5685 1937 24       		.uleb128 0x24
- 5686 1938 70696E00 		.string	"pin"
- 5687 193c 01       		.byte	0x1
- 5688 193d 1502     		.value	0x215
- 5689 193f 40150000 		.long	0x1540
- 5690 1943 02       		.byte	0x2
- 5691 1944 91       		.byte	0x91
- 5692 1945 60       		.sleb128 -32
- 5693 1946 28       		.uleb128 0x28
- 5694 1947 00000000 		.long	.LASF370
- 5695 194b 01       		.byte	0x1
- 5696 194c 1602     		.value	0x216
- 5697 194e 4B150000 		.long	0x154b
- 5698 1952 02       		.byte	0x2
- 5699 1953 91       		.byte	0x91
- 5700 1954 68       		.sleb128 -24
- 5701 1955 00       		.byte	0x0
- 5702 1956 25       		.uleb128 0x25
- 5703 1957 00000000 		.long	.LASF378
- 5704 195b 01       		.byte	0x1
- 5705 195c 2E02     		.value	0x22e
- 5706 195e 01       		.byte	0x1
- 5707 195f 7B000000 		.long	0x7b
- 5708 1963 00000000 		.quad	.LFB623
- 5708      00000000 
- 5709 196b 00000000 		.quad	.LFE623
- 5709      00000000 
- 5710 1973 00000000 		.long	.LLST22
- 5711 1977 F6190000 		.long	0x19f6
- 5712 197b 26       		.uleb128 0x26
- 5713 197c 00000000 		.long	.LASF349
- 5714 1980 01       		.byte	0x1
- 5715 1981 2E02     		.value	0x22e
- 5716 1983 DE030000 		.long	0x3de
- 5717 1987 03       		.byte	0x3
- 5718 1988 91       		.byte	0x91
- 5719 1989 B87F     		.sleb128 -72
- 5720 198b 27       		.uleb128 0x27
- 5721 198c 696E00   		.string	"in"
- 5722 198f 01       		.byte	0x1
- 5723 1990 2E02     		.value	0x22e
- 5724 1992 1F040000 		.long	0x41f
- 5725 1996 03       		.byte	0x3
- 5726 1997 91       		.byte	0x91
- 5727 1998 B07F     		.sleb128 -80
- 5728 199a 27       		.uleb128 0x27
- 5729 199b 6F757400 		.string	"out"
- 5730 199f 01       		.byte	0x1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 130
-
-
- 5731 19a0 2E02     		.value	0x22e
- 5732 19a2 B4000000 		.long	0xb4
- 5733 19a6 03       		.byte	0x3
- 5734 19a7 91       		.byte	0x91
- 5735 19a8 A87F     		.sleb128 -88
- 5736 19aa 26       		.uleb128 0x26
- 5737 19ab 00000000 		.long	.LASF369
- 5738 19af 01       		.byte	0x1
- 5739 19b0 2E02     		.value	0x22e
- 5740 19b2 62000000 		.long	0x62
- 5741 19b6 03       		.byte	0x3
- 5742 19b7 91       		.byte	0x91
- 5743 19b8 A47F     		.sleb128 -92
- 5744 19ba 24       		.uleb128 0x24
- 5745 19bb 637600   		.string	"cv"
- 5746 19be 01       		.byte	0x1
- 5747 19bf 3102     		.value	0x231
- 5748 19c1 3D050000 		.long	0x53d
- 5749 19c5 02       		.byte	0x2
- 5750 19c6 91       		.byte	0x91
- 5751 19c7 40       		.sleb128 -64
- 5752 19c8 28       		.uleb128 0x28
- 5753 19c9 00000000 		.long	.LASF357
- 5754 19cd 01       		.byte	0x1
- 5755 19ce 3202     		.value	0x232
- 5756 19d0 3D050000 		.long	0x53d
- 5757 19d4 02       		.byte	0x2
- 5758 19d5 91       		.byte	0x91
- 5759 19d6 50       		.sleb128 -48
- 5760 19d7 24       		.uleb128 0x24
- 5761 19d8 70696E00 		.string	"pin"
- 5762 19dc 01       		.byte	0x1
- 5763 19dd 3302     		.value	0x233
- 5764 19df 40150000 		.long	0x1540
- 5765 19e3 02       		.byte	0x2
- 5766 19e4 91       		.byte	0x91
- 5767 19e5 60       		.sleb128 -32
- 5768 19e6 28       		.uleb128 0x28
- 5769 19e7 00000000 		.long	.LASF370
- 5770 19eb 01       		.byte	0x1
- 5771 19ec 3402     		.value	0x234
- 5772 19ee 4B150000 		.long	0x154b
- 5773 19f2 02       		.byte	0x2
- 5774 19f3 91       		.byte	0x91
- 5775 19f4 68       		.sleb128 -24
- 5776 19f5 00       		.byte	0x0
- 5777 19f6 25       		.uleb128 0x25
- 5778 19f7 00000000 		.long	.LASF379
- 5779 19fb 01       		.byte	0x1
- 5780 19fc 5102     		.value	0x251
- 5781 19fe 01       		.byte	0x1
- 5782 19ff 7B000000 		.long	0x7b
- 5783 1a03 00000000 		.quad	.LFB624
- 5783      00000000 
- 5784 1a0b 00000000 		.quad	.LFE624
- 5784      00000000 
- 5785 1a13 00000000 		.long	.LLST23
-
GAS LISTING /tmp/ccWvEaWW.s 			page 131
-
-
- 5786 1a17 961A0000 		.long	0x1a96
- 5787 1a1b 26       		.uleb128 0x26
- 5788 1a1c 00000000 		.long	.LASF349
- 5789 1a20 01       		.byte	0x1
- 5790 1a21 5102     		.value	0x251
- 5791 1a23 DE030000 		.long	0x3de
- 5792 1a27 03       		.byte	0x3
- 5793 1a28 91       		.byte	0x91
- 5794 1a29 B87F     		.sleb128 -72
- 5795 1a2b 27       		.uleb128 0x27
- 5796 1a2c 696E00   		.string	"in"
- 5797 1a2f 01       		.byte	0x1
- 5798 1a30 5102     		.value	0x251
- 5799 1a32 1F040000 		.long	0x41f
- 5800 1a36 03       		.byte	0x3
- 5801 1a37 91       		.byte	0x91
- 5802 1a38 B07F     		.sleb128 -80
- 5803 1a3a 27       		.uleb128 0x27
- 5804 1a3b 6F757400 		.string	"out"
- 5805 1a3f 01       		.byte	0x1
- 5806 1a40 5102     		.value	0x251
- 5807 1a42 B4000000 		.long	0xb4
- 5808 1a46 03       		.byte	0x3
- 5809 1a47 91       		.byte	0x91
- 5810 1a48 A87F     		.sleb128 -88
- 5811 1a4a 26       		.uleb128 0x26
- 5812 1a4b 00000000 		.long	.LASF369
- 5813 1a4f 01       		.byte	0x1
- 5814 1a50 5102     		.value	0x251
- 5815 1a52 62000000 		.long	0x62
- 5816 1a56 03       		.byte	0x3
- 5817 1a57 91       		.byte	0x91
- 5818 1a58 A47F     		.sleb128 -92
- 5819 1a5a 24       		.uleb128 0x24
- 5820 1a5b 637600   		.string	"cv"
- 5821 1a5e 01       		.byte	0x1
- 5822 1a5f 5402     		.value	0x254
- 5823 1a61 3D050000 		.long	0x53d
- 5824 1a65 02       		.byte	0x2
- 5825 1a66 91       		.byte	0x91
- 5826 1a67 40       		.sleb128 -64
- 5827 1a68 28       		.uleb128 0x28
- 5828 1a69 00000000 		.long	.LASF357
- 5829 1a6d 01       		.byte	0x1
- 5830 1a6e 5502     		.value	0x255
- 5831 1a70 3D050000 		.long	0x53d
- 5832 1a74 02       		.byte	0x2
- 5833 1a75 91       		.byte	0x91
- 5834 1a76 50       		.sleb128 -48
- 5835 1a77 24       		.uleb128 0x24
- 5836 1a78 70696E00 		.string	"pin"
- 5837 1a7c 01       		.byte	0x1
- 5838 1a7d 5602     		.value	0x256
- 5839 1a7f 40150000 		.long	0x1540
- 5840 1a83 02       		.byte	0x2
- 5841 1a84 91       		.byte	0x91
- 5842 1a85 60       		.sleb128 -32
-
GAS LISTING /tmp/ccWvEaWW.s 			page 132
-
-
- 5843 1a86 28       		.uleb128 0x28
- 5844 1a87 00000000 		.long	.LASF370
- 5845 1a8b 01       		.byte	0x1
- 5846 1a8c 5702     		.value	0x257
- 5847 1a8e 4B150000 		.long	0x154b
- 5848 1a92 02       		.byte	0x2
- 5849 1a93 91       		.byte	0x91
- 5850 1a94 68       		.sleb128 -24
- 5851 1a95 00       		.byte	0x0
- 5852 1a96 25       		.uleb128 0x25
- 5853 1a97 00000000 		.long	.LASF380
- 5854 1a9b 01       		.byte	0x1
- 5855 1a9c 6F02     		.value	0x26f
- 5856 1a9e 01       		.byte	0x1
- 5857 1a9f 7B000000 		.long	0x7b
- 5858 1aa3 00000000 		.quad	.LFB625
- 5858      00000000 
- 5859 1aab 00000000 		.quad	.LFE625
- 5859      00000000 
- 5860 1ab3 00000000 		.long	.LLST24
- 5861 1ab7 F71A0000 		.long	0x1af7
- 5862 1abb 26       		.uleb128 0x26
- 5863 1abc 00000000 		.long	.LASF349
- 5864 1ac0 01       		.byte	0x1
- 5865 1ac1 6F02     		.value	0x26f
- 5866 1ac3 DE030000 		.long	0x3de
- 5867 1ac7 02       		.byte	0x2
- 5868 1ac8 91       		.byte	0x91
- 5869 1ac9 58       		.sleb128 -40
- 5870 1aca 27       		.uleb128 0x27
- 5871 1acb 696E00   		.string	"in"
- 5872 1ace 01       		.byte	0x1
- 5873 1acf 6F02     		.value	0x26f
- 5874 1ad1 1F040000 		.long	0x41f
- 5875 1ad5 02       		.byte	0x2
- 5876 1ad6 91       		.byte	0x91
- 5877 1ad7 50       		.sleb128 -48
- 5878 1ad8 27       		.uleb128 0x27
- 5879 1ad9 6F757400 		.string	"out"
- 5880 1add 01       		.byte	0x1
- 5881 1ade 6F02     		.value	0x26f
- 5882 1ae0 B4000000 		.long	0xb4
- 5883 1ae4 02       		.byte	0x2
- 5884 1ae5 91       		.byte	0x91
- 5885 1ae6 48       		.sleb128 -56
- 5886 1ae7 26       		.uleb128 0x26
- 5887 1ae8 00000000 		.long	.LASF369
- 5888 1aec 01       		.byte	0x1
- 5889 1aed 6F02     		.value	0x26f
- 5890 1aef 62000000 		.long	0x62
- 5891 1af3 02       		.byte	0x2
- 5892 1af4 91       		.byte	0x91
- 5893 1af5 44       		.sleb128 -60
- 5894 1af6 00       		.byte	0x0
- 5895 1af7 25       		.uleb128 0x25
- 5896 1af8 00000000 		.long	.LASF381
- 5897 1afc 01       		.byte	0x1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 133
-
-
- 5898 1afd 7D02     		.value	0x27d
- 5899 1aff 01       		.byte	0x1
- 5900 1b00 7B000000 		.long	0x7b
- 5901 1b04 00000000 		.quad	.LFB626
- 5901      00000000 
- 5902 1b0c 00000000 		.quad	.LFE626
- 5902      00000000 
- 5903 1b14 00000000 		.long	.LLST25
- 5904 1b18 801B0000 		.long	0x1b80
- 5905 1b1c 26       		.uleb128 0x26
- 5906 1b1d 00000000 		.long	.LASF349
- 5907 1b21 01       		.byte	0x1
- 5908 1b22 7D02     		.value	0x27d
- 5909 1b24 DE030000 		.long	0x3de
- 5910 1b28 02       		.byte	0x2
- 5911 1b29 91       		.byte	0x91
- 5912 1b2a 68       		.sleb128 -24
- 5913 1b2b 27       		.uleb128 0x27
- 5914 1b2c 696E00   		.string	"in"
- 5915 1b2f 01       		.byte	0x1
- 5916 1b30 7D02     		.value	0x27d
- 5917 1b32 1F040000 		.long	0x41f
- 5918 1b36 02       		.byte	0x2
- 5919 1b37 91       		.byte	0x91
- 5920 1b38 60       		.sleb128 -32
- 5921 1b39 27       		.uleb128 0x27
- 5922 1b3a 6F757400 		.string	"out"
- 5923 1b3e 01       		.byte	0x1
- 5924 1b3f 7D02     		.value	0x27d
- 5925 1b41 B4000000 		.long	0xb4
- 5926 1b45 02       		.byte	0x2
- 5927 1b46 91       		.byte	0x91
- 5928 1b47 58       		.sleb128 -40
- 5929 1b48 26       		.uleb128 0x26
- 5930 1b49 00000000 		.long	.LASF369
- 5931 1b4d 01       		.byte	0x1
- 5932 1b4e 7D02     		.value	0x27d
- 5933 1b50 62000000 		.long	0x62
- 5934 1b54 02       		.byte	0x2
- 5935 1b55 91       		.byte	0x91
- 5936 1b56 54       		.sleb128 -44
- 5937 1b57 23       		.uleb128 0x23
- 5938 1b58 00000000 		.long	.LASF353
- 5939 1b5c 901B0000 		.long	0x1b90
- 5940 1b60 01       		.byte	0x1
- 5941 1b61 09       		.byte	0x9
- 5942 1b62 03       		.byte	0x3
- 5943 1b63 00000000 		.quad	__PRETTY_FUNCTION__.7677
- 5943      00000000 
- 5944 1b6b 23       		.uleb128 0x23
- 5945 1b6c 00000000 		.long	.LASF354
- 5946 1b70 951B0000 		.long	0x1b95
- 5947 1b74 01       		.byte	0x1
- 5948 1b75 09       		.byte	0x9
- 5949 1b76 03       		.byte	0x3
- 5950 1b77 00000000 		.quad	__func__.7678
- 5950      00000000 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 134
-
-
- 5951 1b7f 00       		.byte	0x0
- 5952 1b80 1B       		.uleb128 0x1b
- 5953 1b81 C1000000 		.long	0xc1
- 5954 1b85 901B0000 		.long	0x1b90
- 5955 1b89 17       		.uleb128 0x17
- 5956 1b8a B1000000 		.long	0xb1
- 5957 1b8e 19       		.byte	0x19
- 5958 1b8f 00       		.byte	0x0
- 5959 1b90 0B       		.uleb128 0xb
- 5960 1b91 801B0000 		.long	0x1b80
- 5961 1b95 0B       		.uleb128 0xb
- 5962 1b96 801B0000 		.long	0x1b80
- 5963 1b9a 25       		.uleb128 0x25
- 5964 1b9b 00000000 		.long	.LASF382
- 5965 1b9f 01       		.byte	0x1
- 5966 1ba0 8402     		.value	0x284
- 5967 1ba2 01       		.byte	0x1
- 5968 1ba3 7B000000 		.long	0x7b
- 5969 1ba7 00000000 		.quad	.LFB627
- 5969      00000000 
- 5970 1baf 00000000 		.quad	.LFE627
- 5970      00000000 
- 5971 1bb7 00000000 		.long	.LLST26
- 5972 1bbb 231C0000 		.long	0x1c23
- 5973 1bbf 26       		.uleb128 0x26
- 5974 1bc0 00000000 		.long	.LASF349
- 5975 1bc4 01       		.byte	0x1
- 5976 1bc5 8402     		.value	0x284
- 5977 1bc7 DE030000 		.long	0x3de
- 5978 1bcb 02       		.byte	0x2
- 5979 1bcc 91       		.byte	0x91
- 5980 1bcd 68       		.sleb128 -24
- 5981 1bce 27       		.uleb128 0x27
- 5982 1bcf 696E00   		.string	"in"
- 5983 1bd2 01       		.byte	0x1
- 5984 1bd3 8402     		.value	0x284
- 5985 1bd5 1F040000 		.long	0x41f
- 5986 1bd9 02       		.byte	0x2
- 5987 1bda 91       		.byte	0x91
- 5988 1bdb 60       		.sleb128 -32
- 5989 1bdc 27       		.uleb128 0x27
- 5990 1bdd 6F757400 		.string	"out"
- 5991 1be1 01       		.byte	0x1
- 5992 1be2 8402     		.value	0x284
- 5993 1be4 B4000000 		.long	0xb4
- 5994 1be8 02       		.byte	0x2
- 5995 1be9 91       		.byte	0x91
- 5996 1bea 58       		.sleb128 -40
- 5997 1beb 26       		.uleb128 0x26
- 5998 1bec 00000000 		.long	.LASF369
- 5999 1bf0 01       		.byte	0x1
- 6000 1bf1 8402     		.value	0x284
- 6001 1bf3 62000000 		.long	0x62
- 6002 1bf7 02       		.byte	0x2
- 6003 1bf8 91       		.byte	0x91
- 6004 1bf9 54       		.sleb128 -44
- 6005 1bfa 23       		.uleb128 0x23
-
GAS LISTING /tmp/ccWvEaWW.s 			page 135
-
-
- 6006 1bfb 00000000 		.long	.LASF353
- 6007 1bff 231C0000 		.long	0x1c23
- 6008 1c03 01       		.byte	0x1
- 6009 1c04 09       		.byte	0x9
- 6010 1c05 03       		.byte	0x3
- 6011 1c06 00000000 		.quad	__PRETTY_FUNCTION__.7687
- 6011      00000000 
- 6012 1c0e 23       		.uleb128 0x23
- 6013 1c0f 00000000 		.long	.LASF354
- 6014 1c13 281C0000 		.long	0x1c28
- 6015 1c17 01       		.byte	0x1
- 6016 1c18 09       		.byte	0x9
- 6017 1c19 03       		.byte	0x3
- 6018 1c1a 00000000 		.quad	__func__.7688
- 6018      00000000 
- 6019 1c22 00       		.byte	0x0
- 6020 1c23 0B       		.uleb128 0xb
- 6021 1c24 801B0000 		.long	0x1b80
- 6022 1c28 0B       		.uleb128 0xb
- 6023 1c29 801B0000 		.long	0x1b80
- 6024 1c2d 25       		.uleb128 0x25
- 6025 1c2e 00000000 		.long	.LASF383
- 6026 1c32 01       		.byte	0x1
- 6027 1c33 A702     		.value	0x2a7
- 6028 1c35 01       		.byte	0x1
- 6029 1c36 7B000000 		.long	0x7b
- 6030 1c3a 00000000 		.quad	.LFB628
- 6030      00000000 
- 6031 1c42 00000000 		.quad	.LFE628
- 6031      00000000 
- 6032 1c4a 00000000 		.long	.LLST27
- 6033 1c4e A81C0000 		.long	0x1ca8
- 6034 1c52 26       		.uleb128 0x26
- 6035 1c53 00000000 		.long	.LASF384
- 6036 1c57 01       		.byte	0x1
- 6037 1c58 A702     		.value	0x2a7
- 6038 1c5a A81C0000 		.long	0x1ca8
- 6039 1c5e 02       		.byte	0x2
- 6040 1c5f 91       		.byte	0x91
- 6041 1c60 58       		.sleb128 -40
- 6042 1c61 26       		.uleb128 0x26
- 6043 1c62 00000000 		.long	.LASF46
- 6044 1c66 01       		.byte	0x1
- 6045 1c67 A802     		.value	0x2a8
- 6046 1c69 AE1C0000 		.long	0x1cae
- 6047 1c6d 02       		.byte	0x2
- 6048 1c6e 91       		.byte	0x91
- 6049 1c6f 50       		.sleb128 -48
- 6050 1c70 24       		.uleb128 0x24
- 6051 1c71 6F626A00 		.string	"obj"
- 6052 1c75 01       		.byte	0x1
- 6053 1c76 AA02     		.value	0x2aa
- 6054 1c78 B91C0000 		.long	0x1cb9
- 6055 1c7c 02       		.byte	0x2
- 6056 1c7d 91       		.byte	0x91
- 6057 1c7e 68       		.sleb128 -24
- 6058 1c7f 23       		.uleb128 0x23
-
GAS LISTING /tmp/ccWvEaWW.s 			page 136
-
-
- 6059 1c80 00000000 		.long	.LASF353
- 6060 1c84 CF1C0000 		.long	0x1ccf
- 6061 1c88 01       		.byte	0x1
- 6062 1c89 09       		.byte	0x9
- 6063 1c8a 03       		.byte	0x3
- 6064 1c8b 00000000 		.quad	__PRETTY_FUNCTION__.7697
- 6064      00000000 
- 6065 1c93 23       		.uleb128 0x23
- 6066 1c94 00000000 		.long	.LASF354
- 6067 1c98 D41C0000 		.long	0x1cd4
- 6068 1c9c 01       		.byte	0x1
- 6069 1c9d 09       		.byte	0x9
- 6070 1c9e 03       		.byte	0x3
- 6071 1c9f 00000000 		.quad	__func__.7698
- 6071      00000000 
- 6072 1ca7 00       		.byte	0x0
- 6073 1ca8 0A       		.uleb128 0xa
- 6074 1ca9 08       		.byte	0x8
- 6075 1caa DE030000 		.long	0x3de
- 6076 1cae 0A       		.uleb128 0xa
- 6077 1caf 08       		.byte	0x8
- 6078 1cb0 B41C0000 		.long	0x1cb4
- 6079 1cb4 0B       		.uleb128 0xb
- 6080 1cb5 98080000 		.long	0x898
- 6081 1cb9 0A       		.uleb128 0xa
- 6082 1cba 08       		.byte	0x8
- 6083 1cbb CE070000 		.long	0x7ce
- 6084 1cbf 1B       		.uleb128 0x1b
- 6085 1cc0 C1000000 		.long	0xc1
- 6086 1cc4 CF1C0000 		.long	0x1ccf
- 6087 1cc8 17       		.uleb128 0x17
- 6088 1cc9 B1000000 		.long	0xb1
- 6089 1ccd 17       		.byte	0x17
- 6090 1cce 00       		.byte	0x0
- 6091 1ccf 0B       		.uleb128 0xb
- 6092 1cd0 BF1C0000 		.long	0x1cbf
- 6093 1cd4 0B       		.uleb128 0xb
- 6094 1cd5 BF1C0000 		.long	0x1cbf
- 6095 1cd9 25       		.uleb128 0x25
- 6096 1cda 00000000 		.long	.LASF385
- 6097 1cde 01       		.byte	0x1
- 6098 1cdf B402     		.value	0x2b4
- 6099 1ce1 01       		.byte	0x1
- 6100 1ce2 7B000000 		.long	0x7b
- 6101 1ce6 00000000 		.quad	.LFB629
- 6101      00000000 
- 6102 1cee 00000000 		.quad	.LFE629
- 6102      00000000 
- 6103 1cf6 00000000 		.long	.LLST28
- 6104 1cfa 3B1D0000 		.long	0x1d3b
- 6105 1cfe 26       		.uleb128 0x26
- 6106 1cff 00000000 		.long	.LASF349
- 6107 1d03 01       		.byte	0x1
- 6108 1d04 B402     		.value	0x2b4
- 6109 1d06 DE030000 		.long	0x3de
- 6110 1d0a 02       		.byte	0x2
- 6111 1d0b 91       		.byte	0x91
-
GAS LISTING /tmp/ccWvEaWW.s 			page 137
-
-
- 6112 1d0c 58       		.sleb128 -40
- 6113 1d0d 26       		.uleb128 0x26
- 6114 1d0e 00000000 		.long	.LASF46
- 6115 1d12 01       		.byte	0x1
- 6116 1d13 B502     		.value	0x2b5
- 6117 1d15 AE1C0000 		.long	0x1cae
- 6118 1d19 02       		.byte	0x2
- 6119 1d1a 91       		.byte	0x91
- 6120 1d1b 50       		.sleb128 -48
- 6121 1d1c 24       		.uleb128 0x24
- 6122 1d1d 64616400 		.string	"dad"
- 6123 1d21 01       		.byte	0x1
- 6124 1d22 B702     		.value	0x2b7
- 6125 1d24 3B1D0000 		.long	0x1d3b
- 6126 1d28 02       		.byte	0x2
- 6127 1d29 91       		.byte	0x91
- 6128 1d2a 60       		.sleb128 -32
- 6129 1d2b 24       		.uleb128 0x24
- 6130 1d2c 61657300 		.string	"aes"
- 6131 1d30 01       		.byte	0x1
- 6132 1d31 B802     		.value	0x2b8
- 6133 1d33 B91C0000 		.long	0x1cb9
- 6134 1d37 02       		.byte	0x2
- 6135 1d38 91       		.byte	0x91
- 6136 1d39 68       		.sleb128 -24
- 6137 1d3a 00       		.byte	0x0
- 6138 1d3b 0A       		.uleb128 0xa
- 6139 1d3c 08       		.byte	0x8
- 6140 1d3d 54010000 		.long	0x154
- 6141 1d41 25       		.uleb128 0x25
- 6142 1d42 00000000 		.long	.LASF386
- 6143 1d46 01       		.byte	0x1
- 6144 1d47 CA02     		.value	0x2ca
- 6145 1d49 01       		.byte	0x1
- 6146 1d4a 7B000000 		.long	0x7b
- 6147 1d4e 00000000 		.quad	.LFB630
- 6147      00000000 
- 6148 1d56 00000000 		.quad	.LFE630
- 6148      00000000 
- 6149 1d5e 00000000 		.long	.LLST29
- 6150 1d62 BC1D0000 		.long	0x1dbc
- 6151 1d66 26       		.uleb128 0x26
- 6152 1d67 00000000 		.long	.LASF384
- 6153 1d6b 01       		.byte	0x1
- 6154 1d6c CA02     		.value	0x2ca
- 6155 1d6e A81C0000 		.long	0x1ca8
- 6156 1d72 02       		.byte	0x2
- 6157 1d73 91       		.byte	0x91
- 6158 1d74 58       		.sleb128 -40
- 6159 1d75 26       		.uleb128 0x26
- 6160 1d76 00000000 		.long	.LASF46
- 6161 1d7a 01       		.byte	0x1
- 6162 1d7b CB02     		.value	0x2cb
- 6163 1d7d AE1C0000 		.long	0x1cae
- 6164 1d81 02       		.byte	0x2
- 6165 1d82 91       		.byte	0x91
- 6166 1d83 50       		.sleb128 -48
-
GAS LISTING /tmp/ccWvEaWW.s 			page 138
-
-
- 6167 1d84 24       		.uleb128 0x24
- 6168 1d85 6F626A00 		.string	"obj"
- 6169 1d89 01       		.byte	0x1
- 6170 1d8a CD02     		.value	0x2cd
- 6171 1d8c BC1D0000 		.long	0x1dbc
- 6172 1d90 02       		.byte	0x2
- 6173 1d91 91       		.byte	0x91
- 6174 1d92 68       		.sleb128 -24
- 6175 1d93 23       		.uleb128 0x23
- 6176 1d94 00000000 		.long	.LASF353
- 6177 1d98 D21D0000 		.long	0x1dd2
- 6178 1d9c 01       		.byte	0x1
- 6179 1d9d 09       		.byte	0x9
- 6180 1d9e 03       		.byte	0x3
- 6181 1d9f 00000000 		.quad	__PRETTY_FUNCTION__.7724
- 6181      00000000 
- 6182 1da7 23       		.uleb128 0x23
- 6183 1da8 00000000 		.long	.LASF354
- 6184 1dac D71D0000 		.long	0x1dd7
- 6185 1db0 01       		.byte	0x1
- 6186 1db1 09       		.byte	0x9
- 6187 1db2 03       		.byte	0x3
- 6188 1db3 00000000 		.quad	__func__.7725
- 6188      00000000 
- 6189 1dbb 00       		.byte	0x0
- 6190 1dbc 0A       		.uleb128 0xa
- 6191 1dbd 08       		.byte	0x8
- 6192 1dbe 30080000 		.long	0x830
- 6193 1dc2 1B       		.uleb128 0x1b
- 6194 1dc3 C1000000 		.long	0xc1
- 6195 1dc7 D21D0000 		.long	0x1dd2
- 6196 1dcb 17       		.uleb128 0x17
- 6197 1dcc B1000000 		.long	0xb1
- 6198 1dd0 18       		.byte	0x18
- 6199 1dd1 00       		.byte	0x0
- 6200 1dd2 0B       		.uleb128 0xb
- 6201 1dd3 C21D0000 		.long	0x1dc2
- 6202 1dd7 0B       		.uleb128 0xb
- 6203 1dd8 C21D0000 		.long	0x1dc2
- 6204 1ddc 25       		.uleb128 0x25
- 6205 1ddd 00000000 		.long	.LASF387
- 6206 1de1 01       		.byte	0x1
- 6207 1de2 D702     		.value	0x2d7
- 6208 1de4 01       		.byte	0x1
- 6209 1de5 7B000000 		.long	0x7b
- 6210 1de9 00000000 		.quad	.LFB631
- 6210      00000000 
- 6211 1df1 00000000 		.quad	.LFE631
- 6211      00000000 
- 6212 1df9 00000000 		.long	.LLST30
- 6213 1dfd 3E1E0000 		.long	0x1e3e
- 6214 1e01 26       		.uleb128 0x26
- 6215 1e02 00000000 		.long	.LASF349
- 6216 1e06 01       		.byte	0x1
- 6217 1e07 D702     		.value	0x2d7
- 6218 1e09 DE030000 		.long	0x3de
- 6219 1e0d 02       		.byte	0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 139
-
-
- 6220 1e0e 91       		.byte	0x91
- 6221 1e0f 58       		.sleb128 -40
- 6222 1e10 26       		.uleb128 0x26
- 6223 1e11 00000000 		.long	.LASF46
- 6224 1e15 01       		.byte	0x1
- 6225 1e16 D802     		.value	0x2d8
- 6226 1e18 AE1C0000 		.long	0x1cae
- 6227 1e1c 02       		.byte	0x2
- 6228 1e1d 91       		.byte	0x91
- 6229 1e1e 50       		.sleb128 -48
- 6230 1e1f 24       		.uleb128 0x24
- 6231 1e20 64616400 		.string	"dad"
- 6232 1e24 01       		.byte	0x1
- 6233 1e25 DA02     		.value	0x2da
- 6234 1e27 3B1D0000 		.long	0x1d3b
- 6235 1e2b 02       		.byte	0x2
- 6236 1e2c 91       		.byte	0x91
- 6237 1e2d 60       		.sleb128 -32
- 6238 1e2e 28       		.uleb128 0x28
- 6239 1e2f 00000000 		.long	.LASF388
- 6240 1e33 01       		.byte	0x1
- 6241 1e34 DB02     		.value	0x2db
- 6242 1e36 BC1D0000 		.long	0x1dbc
- 6243 1e3a 02       		.byte	0x2
- 6244 1e3b 91       		.byte	0x91
- 6245 1e3c 68       		.sleb128 -24
- 6246 1e3d 00       		.byte	0x0
- 6247 1e3e 2A       		.uleb128 0x2a
- 6248 1e3f 01       		.byte	0x1
- 6249 1e40 00000000 		.long	.LASF396
- 6250 1e44 01       		.byte	0x1
- 6251 1e45 EC02     		.value	0x2ec
- 6252 1e47 01       		.byte	0x1
- 6253 1e48 7B000000 		.long	0x7b
- 6254 1e4c 00000000 		.quad	.LFB632
- 6254      00000000 
- 6255 1e54 00000000 		.quad	.LFE632
- 6255      00000000 
- 6256 1e5c 00000000 		.long	.LLST31
- 6257 1e60 E91E0000 		.long	0x1ee9
- 6258 1e64 26       		.uleb128 0x26
- 6259 1e65 00000000 		.long	.LASF389
- 6260 1e69 01       		.byte	0x1
- 6261 1e6a EC02     		.value	0x2ec
- 6262 1e6c E91E0000 		.long	0x1ee9
- 6263 1e70 02       		.byte	0x2
- 6264 1e71 91       		.byte	0x91
- 6265 1e72 48       		.sleb128 -56
- 6266 1e73 26       		.uleb128 0x26
- 6267 1e74 00000000 		.long	.LASF390
- 6268 1e78 01       		.byte	0x1
- 6269 1e79 EC02     		.value	0x2ec
- 6270 1e7b 72080000 		.long	0x872
- 6271 1e7f 02       		.byte	0x2
- 6272 1e80 91       		.byte	0x91
- 6273 1e81 44       		.sleb128 -60
- 6274 1e82 24       		.uleb128 0x24
-
GAS LISTING /tmp/ccWvEaWW.s 			page 140
-
-
- 6275 1e83 726300   		.string	"rc"
- 6276 1e86 01       		.byte	0x1
- 6277 1e87 EE02     		.value	0x2ee
- 6278 1e89 7B000000 		.long	0x7b
- 6279 1e8d 02       		.byte	0x2
- 6280 1e8e 91       		.byte	0x91
- 6281 1e8f 6C       		.sleb128 -20
- 6282 1e90 28       		.uleb128 0x28
- 6283 1e91 00000000 		.long	.LASF46
- 6284 1e95 01       		.byte	0x1
- 6285 1e96 EF02     		.value	0x2ef
- 6286 1e98 EF1E0000 		.long	0x1eef
- 6287 1e9c 02       		.byte	0x2
- 6288 1e9d 91       		.byte	0x91
- 6289 1e9e 60       		.sleb128 -32
- 6290 1e9f 23       		.uleb128 0x23
- 6291 1ea0 00000000 		.long	.LASF353
- 6292 1ea4 051F0000 		.long	0x1f05
- 6293 1ea8 01       		.byte	0x1
- 6294 1ea9 09       		.byte	0x9
- 6295 1eaa 03       		.byte	0x3
- 6296 1eab 00000000 		.quad	__PRETTY_FUNCTION__.7752
- 6296      00000000 
- 6297 1eb3 23       		.uleb128 0x23
- 6298 1eb4 00000000 		.long	.LASF354
- 6299 1eb8 0A1F0000 		.long	0x1f0a
- 6300 1ebc 01       		.byte	0x1
- 6301 1ebd 09       		.byte	0x9
- 6302 1ebe 03       		.byte	0x3
- 6303 1ebf 00000000 		.quad	__func__.7753
- 6303      00000000 
- 6304 1ec7 29       		.uleb128 0x29
- 6305 1ec8 00000000 		.quad	.LBB5
- 6305      00000000 
- 6306 1ed0 00000000 		.quad	.LBE5
- 6306      00000000 
- 6307 1ed8 24       		.uleb128 0x24
- 6308 1ed9 6F626A00 		.string	"obj"
- 6309 1edd 01       		.byte	0x1
- 6310 1ede 0603     		.value	0x306
- 6311 1ee0 DE030000 		.long	0x3de
- 6312 1ee4 02       		.byte	0x2
- 6313 1ee5 91       		.byte	0x91
- 6314 1ee6 58       		.sleb128 -40
- 6315 1ee7 00       		.byte	0x0
- 6316 1ee8 00       		.byte	0x0
- 6317 1ee9 0A       		.uleb128 0xa
- 6318 1eea 08       		.byte	0x8
- 6319 1eeb 3B1D0000 		.long	0x1d3b
- 6320 1eef 0A       		.uleb128 0xa
- 6321 1ef0 08       		.byte	0x8
- 6322 1ef1 98080000 		.long	0x898
- 6323 1ef5 1B       		.uleb128 0x1b
- 6324 1ef6 C1000000 		.long	0xc1
- 6325 1efa 051F0000 		.long	0x1f05
- 6326 1efe 17       		.uleb128 0x17
- 6327 1eff B1000000 		.long	0xb1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 141
-
-
- 6328 1f03 13       		.byte	0x13
- 6329 1f04 00       		.byte	0x0
- 6330 1f05 0B       		.uleb128 0xb
- 6331 1f06 F51E0000 		.long	0x1ef5
- 6332 1f0a 0B       		.uleb128 0xb
- 6333 1f0b F51E0000 		.long	0x1ef5
- 6334 1f0f 28       		.uleb128 0x28
- 6335 1f10 00000000 		.long	.LASF391
- 6336 1f14 01       		.byte	0x1
- 6337 1f15 8A02     		.value	0x28a
- 6338 1f17 87020000 		.long	0x287
- 6339 1f1b 09       		.byte	0x9
- 6340 1f1c 03       		.byte	0x3
- 6341 1f1d 00000000 		.quad	KCipherVecAesNi_vt_v1
- 6341      00000000 
- 6342 1f25 1B       		.uleb128 0x1b
- 6343 1f26 C1000000 		.long	0xc1
- 6344 1f2a 351F0000 		.long	0x1f35
- 6345 1f2e 17       		.uleb128 0x17
- 6346 1f2f B1000000 		.long	0xb1
- 6347 1f33 0B       		.byte	0xb
- 6348 1f34 00       		.byte	0x0
- 6349 1f35 2B       		.uleb128 0x2b
- 6350 1f36 00000000 		.long	.LASF397
- 6351 1f3a 01       		.byte	0x1
- 6352 1f3b 38       		.byte	0x38
- 6353 1f3c 4B1F0000 		.long	0x1f4b
- 6354 1f40 01       		.byte	0x1
- 6355 1f41 09       		.byte	0x9
- 6356 1f42 03       		.byte	0x3
- 6357 1f43 00000000 		.quad	KCipherVecAesNiClassName
- 6357      00000000 
- 6358 1f4b 0B       		.uleb128 0xb
- 6359 1f4c 251F0000 		.long	0x1f25
- 6360 1f50 00       		.byte	0x0
- 6361              		.section	.debug_abbrev
- 6362 0000 01       		.uleb128 0x1
- 6363 0001 11       		.uleb128 0x11
- 6364 0002 01       		.byte	0x1
- 6365 0003 25       		.uleb128 0x25
- 6366 0004 0E       		.uleb128 0xe
- 6367 0005 13       		.uleb128 0x13
- 6368 0006 0B       		.uleb128 0xb
- 6369 0007 03       		.uleb128 0x3
- 6370 0008 0E       		.uleb128 0xe
- 6371 0009 1B       		.uleb128 0x1b
- 6372 000a 0E       		.uleb128 0xe
- 6373 000b 11       		.uleb128 0x11
- 6374 000c 01       		.uleb128 0x1
- 6375 000d 12       		.uleb128 0x12
- 6376 000e 01       		.uleb128 0x1
- 6377 000f 10       		.uleb128 0x10
- 6378 0010 06       		.uleb128 0x6
- 6379 0011 00       		.byte	0x0
- 6380 0012 00       		.byte	0x0
- 6381 0013 02       		.uleb128 0x2
- 6382 0014 24       		.uleb128 0x24
-
GAS LISTING /tmp/ccWvEaWW.s 			page 142
-
-
- 6383 0015 00       		.byte	0x0
- 6384 0016 0B       		.uleb128 0xb
- 6385 0017 0B       		.uleb128 0xb
- 6386 0018 3E       		.uleb128 0x3e
- 6387 0019 0B       		.uleb128 0xb
- 6388 001a 03       		.uleb128 0x3
- 6389 001b 0E       		.uleb128 0xe
- 6390 001c 00       		.byte	0x0
- 6391 001d 00       		.byte	0x0
- 6392 001e 03       		.uleb128 0x3
- 6393 001f 24       		.uleb128 0x24
- 6394 0020 00       		.byte	0x0
- 6395 0021 0B       		.uleb128 0xb
- 6396 0022 0B       		.uleb128 0xb
- 6397 0023 3E       		.uleb128 0x3e
- 6398 0024 0B       		.uleb128 0xb
- 6399 0025 03       		.uleb128 0x3
- 6400 0026 08       		.uleb128 0x8
- 6401 0027 00       		.byte	0x0
- 6402 0028 00       		.byte	0x0
- 6403 0029 04       		.uleb128 0x4
- 6404 002a 16       		.uleb128 0x16
- 6405 002b 00       		.byte	0x0
- 6406 002c 03       		.uleb128 0x3
- 6407 002d 0E       		.uleb128 0xe
- 6408 002e 3A       		.uleb128 0x3a
- 6409 002f 0B       		.uleb128 0xb
- 6410 0030 3B       		.uleb128 0x3b
- 6411 0031 0B       		.uleb128 0xb
- 6412 0032 49       		.uleb128 0x49
- 6413 0033 13       		.uleb128 0x13
- 6414 0034 00       		.byte	0x0
- 6415 0035 00       		.byte	0x0
- 6416 0036 05       		.uleb128 0x5
- 6417 0037 13       		.uleb128 0x13
- 6418 0038 01       		.byte	0x1
- 6419 0039 03       		.uleb128 0x3
- 6420 003a 0E       		.uleb128 0xe
- 6421 003b 0B       		.uleb128 0xb
- 6422 003c 0B       		.uleb128 0xb
- 6423 003d 3A       		.uleb128 0x3a
- 6424 003e 0B       		.uleb128 0xb
- 6425 003f 3B       		.uleb128 0x3b
- 6426 0040 0B       		.uleb128 0xb
- 6427 0041 01       		.uleb128 0x1
- 6428 0042 13       		.uleb128 0x13
- 6429 0043 00       		.byte	0x0
- 6430 0044 00       		.byte	0x0
- 6431 0045 06       		.uleb128 0x6
- 6432 0046 0D       		.uleb128 0xd
- 6433 0047 00       		.byte	0x0
- 6434 0048 03       		.uleb128 0x3
- 6435 0049 0E       		.uleb128 0xe
- 6436 004a 3A       		.uleb128 0x3a
- 6437 004b 0B       		.uleb128 0xb
- 6438 004c 3B       		.uleb128 0x3b
- 6439 004d 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccWvEaWW.s 			page 143
-
-
- 6440 004e 49       		.uleb128 0x49
- 6441 004f 13       		.uleb128 0x13
- 6442 0050 38       		.uleb128 0x38
- 6443 0051 0A       		.uleb128 0xa
- 6444 0052 00       		.byte	0x0
- 6445 0053 00       		.byte	0x0
- 6446 0054 07       		.uleb128 0x7
- 6447 0055 35       		.uleb128 0x35
- 6448 0056 00       		.byte	0x0
- 6449 0057 49       		.uleb128 0x49
- 6450 0058 13       		.uleb128 0x13
- 6451 0059 00       		.byte	0x0
- 6452 005a 00       		.byte	0x0
- 6453 005b 08       		.uleb128 0x8
- 6454 005c 24       		.uleb128 0x24
- 6455 005d 00       		.byte	0x0
- 6456 005e 0B       		.uleb128 0xb
- 6457 005f 0B       		.uleb128 0xb
- 6458 0060 3E       		.uleb128 0x3e
- 6459 0061 0B       		.uleb128 0xb
- 6460 0062 00       		.byte	0x0
- 6461 0063 00       		.byte	0x0
- 6462 0064 09       		.uleb128 0x9
- 6463 0065 0F       		.uleb128 0xf
- 6464 0066 00       		.byte	0x0
- 6465 0067 0B       		.uleb128 0xb
- 6466 0068 0B       		.uleb128 0xb
- 6467 0069 00       		.byte	0x0
- 6468 006a 00       		.byte	0x0
- 6469 006b 0A       		.uleb128 0xa
- 6470 006c 0F       		.uleb128 0xf
- 6471 006d 00       		.byte	0x0
- 6472 006e 0B       		.uleb128 0xb
- 6473 006f 0B       		.uleb128 0xb
- 6474 0070 49       		.uleb128 0x49
- 6475 0071 13       		.uleb128 0x13
- 6476 0072 00       		.byte	0x0
- 6477 0073 00       		.byte	0x0
- 6478 0074 0B       		.uleb128 0xb
- 6479 0075 26       		.uleb128 0x26
- 6480 0076 00       		.byte	0x0
- 6481 0077 49       		.uleb128 0x49
- 6482 0078 13       		.uleb128 0x13
- 6483 0079 00       		.byte	0x0
- 6484 007a 00       		.byte	0x0
- 6485 007b 0C       		.uleb128 0xc
- 6486 007c 04       		.uleb128 0x4
- 6487 007d 01       		.byte	0x1
- 6488 007e 0B       		.uleb128 0xb
- 6489 007f 0B       		.uleb128 0xb
- 6490 0080 3A       		.uleb128 0x3a
- 6491 0081 0B       		.uleb128 0xb
- 6492 0082 3B       		.uleb128 0x3b
- 6493 0083 0B       		.uleb128 0xb
- 6494 0084 01       		.uleb128 0x1
- 6495 0085 13       		.uleb128 0x13
- 6496 0086 00       		.byte	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 144
-
-
- 6497 0087 00       		.byte	0x0
- 6498 0088 0D       		.uleb128 0xd
- 6499 0089 28       		.uleb128 0x28
- 6500 008a 00       		.byte	0x0
- 6501 008b 03       		.uleb128 0x3
- 6502 008c 0E       		.uleb128 0xe
- 6503 008d 1C       		.uleb128 0x1c
- 6504 008e 0D       		.uleb128 0xd
- 6505 008f 00       		.byte	0x0
- 6506 0090 00       		.byte	0x0
- 6507 0091 0E       		.uleb128 0xe
- 6508 0092 0D       		.uleb128 0xd
- 6509 0093 00       		.byte	0x0
- 6510 0094 03       		.uleb128 0x3
- 6511 0095 08       		.uleb128 0x8
- 6512 0096 3A       		.uleb128 0x3a
- 6513 0097 0B       		.uleb128 0xb
- 6514 0098 3B       		.uleb128 0x3b
- 6515 0099 0B       		.uleb128 0xb
- 6516 009a 49       		.uleb128 0x49
- 6517 009b 13       		.uleb128 0x13
- 6518 009c 38       		.uleb128 0x38
- 6519 009d 0A       		.uleb128 0xa
- 6520 009e 00       		.byte	0x0
- 6521 009f 00       		.byte	0x0
- 6522 00a0 0F       		.uleb128 0xf
- 6523 00a1 15       		.uleb128 0x15
- 6524 00a2 01       		.byte	0x1
- 6525 00a3 27       		.uleb128 0x27
- 6526 00a4 0C       		.uleb128 0xc
- 6527 00a5 01       		.uleb128 0x1
- 6528 00a6 13       		.uleb128 0x13
- 6529 00a7 00       		.byte	0x0
- 6530 00a8 00       		.byte	0x0
- 6531 00a9 10       		.uleb128 0x10
- 6532 00aa 05       		.uleb128 0x5
- 6533 00ab 00       		.byte	0x0
- 6534 00ac 49       		.uleb128 0x49
- 6535 00ad 13       		.uleb128 0x13
- 6536 00ae 00       		.byte	0x0
- 6537 00af 00       		.byte	0x0
- 6538 00b0 11       		.uleb128 0x11
- 6539 00b1 15       		.uleb128 0x15
- 6540 00b2 01       		.byte	0x1
- 6541 00b3 27       		.uleb128 0x27
- 6542 00b4 0C       		.uleb128 0xc
- 6543 00b5 49       		.uleb128 0x49
- 6544 00b6 13       		.uleb128 0x13
- 6545 00b7 01       		.uleb128 0x1
- 6546 00b8 13       		.uleb128 0x13
- 6547 00b9 00       		.byte	0x0
- 6548 00ba 00       		.byte	0x0
- 6549 00bb 12       		.uleb128 0x12
- 6550 00bc 26       		.uleb128 0x26
- 6551 00bd 00       		.byte	0x0
- 6552 00be 00       		.byte	0x0
- 6553 00bf 00       		.byte	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 145
-
-
- 6554 00c0 13       		.uleb128 0x13
- 6555 00c1 17       		.uleb128 0x17
- 6556 00c2 01       		.byte	0x1
- 6557 00c3 03       		.uleb128 0x3
- 6558 00c4 0E       		.uleb128 0xe
- 6559 00c5 0B       		.uleb128 0xb
- 6560 00c6 0B       		.uleb128 0xb
- 6561 00c7 3A       		.uleb128 0x3a
- 6562 00c8 0B       		.uleb128 0xb
- 6563 00c9 3B       		.uleb128 0x3b
- 6564 00ca 0B       		.uleb128 0xb
- 6565 00cb 01       		.uleb128 0x1
- 6566 00cc 13       		.uleb128 0x13
- 6567 00cd 00       		.byte	0x0
- 6568 00ce 00       		.byte	0x0
- 6569 00cf 14       		.uleb128 0x14
- 6570 00d0 0D       		.uleb128 0xd
- 6571 00d1 00       		.byte	0x0
- 6572 00d2 03       		.uleb128 0x3
- 6573 00d3 0E       		.uleb128 0xe
- 6574 00d4 3A       		.uleb128 0x3a
- 6575 00d5 0B       		.uleb128 0xb
- 6576 00d6 3B       		.uleb128 0x3b
- 6577 00d7 0B       		.uleb128 0xb
- 6578 00d8 49       		.uleb128 0x49
- 6579 00d9 13       		.uleb128 0x13
- 6580 00da 00       		.byte	0x0
- 6581 00db 00       		.byte	0x0
- 6582 00dc 15       		.uleb128 0x15
- 6583 00dd 0D       		.uleb128 0xd
- 6584 00de 00       		.byte	0x0
- 6585 00df 03       		.uleb128 0x3
- 6586 00e0 08       		.uleb128 0x8
- 6587 00e1 3A       		.uleb128 0x3a
- 6588 00e2 0B       		.uleb128 0xb
- 6589 00e3 3B       		.uleb128 0x3b
- 6590 00e4 0B       		.uleb128 0xb
- 6591 00e5 49       		.uleb128 0x49
- 6592 00e6 13       		.uleb128 0x13
- 6593 00e7 00       		.byte	0x0
- 6594 00e8 00       		.byte	0x0
- 6595 00e9 16       		.uleb128 0x16
- 6596 00ea 01       		.uleb128 0x1
- 6597 00eb 01       		.byte	0x1
- 6598 00ec 8742     		.uleb128 0x2107
- 6599 00ee 0C       		.uleb128 0xc
- 6600 00ef 49       		.uleb128 0x49
- 6601 00f0 13       		.uleb128 0x13
- 6602 00f1 01       		.uleb128 0x1
- 6603 00f2 13       		.uleb128 0x13
- 6604 00f3 00       		.byte	0x0
- 6605 00f4 00       		.byte	0x0
- 6606 00f5 17       		.uleb128 0x17
- 6607 00f6 21       		.uleb128 0x21
- 6608 00f7 00       		.byte	0x0
- 6609 00f8 49       		.uleb128 0x49
- 6610 00f9 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccWvEaWW.s 			page 146
-
-
- 6611 00fa 2F       		.uleb128 0x2f
- 6612 00fb 0B       		.uleb128 0xb
- 6613 00fc 00       		.byte	0x0
- 6614 00fd 00       		.byte	0x0
- 6615 00fe 18       		.uleb128 0x18
- 6616 00ff 15       		.uleb128 0x15
- 6617 0100 01       		.byte	0x1
- 6618 0101 49       		.uleb128 0x49
- 6619 0102 13       		.uleb128 0x13
- 6620 0103 01       		.uleb128 0x1
- 6621 0104 13       		.uleb128 0x13
- 6622 0105 00       		.byte	0x0
- 6623 0106 00       		.byte	0x0
- 6624 0107 19       		.uleb128 0x19
- 6625 0108 18       		.uleb128 0x18
- 6626 0109 00       		.byte	0x0
- 6627 010a 00       		.byte	0x0
- 6628 010b 00       		.byte	0x0
- 6629 010c 1A       		.uleb128 0x1a
- 6630 010d 13       		.uleb128 0x13
- 6631 010e 01       		.byte	0x1
- 6632 010f 03       		.uleb128 0x3
- 6633 0110 0E       		.uleb128 0xe
- 6634 0111 0B       		.uleb128 0xb
- 6635 0112 05       		.uleb128 0x5
- 6636 0113 3A       		.uleb128 0x3a
- 6637 0114 0B       		.uleb128 0xb
- 6638 0115 3B       		.uleb128 0x3b
- 6639 0116 0B       		.uleb128 0xb
- 6640 0117 01       		.uleb128 0x1
- 6641 0118 13       		.uleb128 0x13
- 6642 0119 00       		.byte	0x0
- 6643 011a 00       		.byte	0x0
- 6644 011b 1B       		.uleb128 0x1b
- 6645 011c 01       		.uleb128 0x1
- 6646 011d 01       		.byte	0x1
- 6647 011e 49       		.uleb128 0x49
- 6648 011f 13       		.uleb128 0x13
- 6649 0120 01       		.uleb128 0x1
- 6650 0121 13       		.uleb128 0x13
- 6651 0122 00       		.byte	0x0
- 6652 0123 00       		.byte	0x0
- 6653 0124 1C       		.uleb128 0x1c
- 6654 0125 04       		.uleb128 0x4
- 6655 0126 01       		.byte	0x1
- 6656 0127 03       		.uleb128 0x3
- 6657 0128 0E       		.uleb128 0xe
- 6658 0129 0B       		.uleb128 0xb
- 6659 012a 0B       		.uleb128 0xb
- 6660 012b 3A       		.uleb128 0x3a
- 6661 012c 0B       		.uleb128 0xb
- 6662 012d 3B       		.uleb128 0x3b
- 6663 012e 0B       		.uleb128 0xb
- 6664 012f 01       		.uleb128 0x1
- 6665 0130 13       		.uleb128 0x13
- 6666 0131 00       		.byte	0x0
- 6667 0132 00       		.byte	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 147
-
-
- 6668 0133 1D       		.uleb128 0x1d
- 6669 0134 04       		.uleb128 0x4
- 6670 0135 01       		.byte	0x1
- 6671 0136 03       		.uleb128 0x3
- 6672 0137 0E       		.uleb128 0xe
- 6673 0138 0B       		.uleb128 0xb
- 6674 0139 0B       		.uleb128 0xb
- 6675 013a 3A       		.uleb128 0x3a
- 6676 013b 0B       		.uleb128 0xb
- 6677 013c 3B       		.uleb128 0x3b
- 6678 013d 05       		.uleb128 0x5
- 6679 013e 01       		.uleb128 0x1
- 6680 013f 13       		.uleb128 0x13
- 6681 0140 00       		.byte	0x0
- 6682 0141 00       		.byte	0x0
- 6683 0142 1E       		.uleb128 0x1e
- 6684 0143 2E       		.uleb128 0x2e
- 6685 0144 01       		.byte	0x1
- 6686 0145 03       		.uleb128 0x3
- 6687 0146 0E       		.uleb128 0xe
- 6688 0147 3A       		.uleb128 0x3a
- 6689 0148 0B       		.uleb128 0xb
- 6690 0149 3B       		.uleb128 0x3b
- 6691 014a 0B       		.uleb128 0xb
- 6692 014b 27       		.uleb128 0x27
- 6693 014c 0C       		.uleb128 0xc
- 6694 014d 49       		.uleb128 0x49
- 6695 014e 13       		.uleb128 0x13
- 6696 014f 11       		.uleb128 0x11
- 6697 0150 01       		.uleb128 0x1
- 6698 0151 12       		.uleb128 0x12
- 6699 0152 01       		.uleb128 0x1
- 6700 0153 40       		.uleb128 0x40
- 6701 0154 06       		.uleb128 0x6
- 6702 0155 01       		.uleb128 0x1
- 6703 0156 13       		.uleb128 0x13
- 6704 0157 00       		.byte	0x0
- 6705 0158 00       		.byte	0x0
- 6706 0159 1F       		.uleb128 0x1f
- 6707 015a 05       		.uleb128 0x5
- 6708 015b 00       		.byte	0x0
- 6709 015c 03       		.uleb128 0x3
- 6710 015d 0E       		.uleb128 0xe
- 6711 015e 3A       		.uleb128 0x3a
- 6712 015f 0B       		.uleb128 0xb
- 6713 0160 3B       		.uleb128 0x3b
- 6714 0161 0B       		.uleb128 0xb
- 6715 0162 49       		.uleb128 0x49
- 6716 0163 13       		.uleb128 0x13
- 6717 0164 02       		.uleb128 0x2
- 6718 0165 0A       		.uleb128 0xa
- 6719 0166 00       		.byte	0x0
- 6720 0167 00       		.byte	0x0
- 6721 0168 20       		.uleb128 0x20
- 6722 0169 34       		.uleb128 0x34
- 6723 016a 00       		.byte	0x0
- 6724 016b 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccWvEaWW.s 			page 148
-
-
- 6725 016c 08       		.uleb128 0x8
- 6726 016d 3A       		.uleb128 0x3a
- 6727 016e 0B       		.uleb128 0xb
- 6728 016f 3B       		.uleb128 0x3b
- 6729 0170 0B       		.uleb128 0xb
- 6730 0171 49       		.uleb128 0x49
- 6731 0172 13       		.uleb128 0x13
- 6732 0173 02       		.uleb128 0x2
- 6733 0174 0A       		.uleb128 0xa
- 6734 0175 00       		.byte	0x0
- 6735 0176 00       		.byte	0x0
- 6736 0177 21       		.uleb128 0x21
- 6737 0178 2E       		.uleb128 0x2e
- 6738 0179 01       		.byte	0x1
- 6739 017a 03       		.uleb128 0x3
- 6740 017b 0E       		.uleb128 0xe
- 6741 017c 3A       		.uleb128 0x3a
- 6742 017d 0B       		.uleb128 0xb
- 6743 017e 3B       		.uleb128 0x3b
- 6744 017f 0B       		.uleb128 0xb
- 6745 0180 27       		.uleb128 0x27
- 6746 0181 0C       		.uleb128 0xc
- 6747 0182 11       		.uleb128 0x11
- 6748 0183 01       		.uleb128 0x1
- 6749 0184 12       		.uleb128 0x12
- 6750 0185 01       		.uleb128 0x1
- 6751 0186 40       		.uleb128 0x40
- 6752 0187 06       		.uleb128 0x6
- 6753 0188 01       		.uleb128 0x1
- 6754 0189 13       		.uleb128 0x13
- 6755 018a 00       		.byte	0x0
- 6756 018b 00       		.byte	0x0
- 6757 018c 22       		.uleb128 0x22
- 6758 018d 05       		.uleb128 0x5
- 6759 018e 00       		.byte	0x0
- 6760 018f 03       		.uleb128 0x3
- 6761 0190 08       		.uleb128 0x8
- 6762 0191 3A       		.uleb128 0x3a
- 6763 0192 0B       		.uleb128 0xb
- 6764 0193 3B       		.uleb128 0x3b
- 6765 0194 0B       		.uleb128 0xb
- 6766 0195 49       		.uleb128 0x49
- 6767 0196 13       		.uleb128 0x13
- 6768 0197 02       		.uleb128 0x2
- 6769 0198 0A       		.uleb128 0xa
- 6770 0199 00       		.byte	0x0
- 6771 019a 00       		.byte	0x0
- 6772 019b 23       		.uleb128 0x23
- 6773 019c 34       		.uleb128 0x34
- 6774 019d 00       		.byte	0x0
- 6775 019e 03       		.uleb128 0x3
- 6776 019f 0E       		.uleb128 0xe
- 6777 01a0 49       		.uleb128 0x49
- 6778 01a1 13       		.uleb128 0x13
- 6779 01a2 34       		.uleb128 0x34
- 6780 01a3 0C       		.uleb128 0xc
- 6781 01a4 02       		.uleb128 0x2
-
GAS LISTING /tmp/ccWvEaWW.s 			page 149
-
-
- 6782 01a5 0A       		.uleb128 0xa
- 6783 01a6 00       		.byte	0x0
- 6784 01a7 00       		.byte	0x0
- 6785 01a8 24       		.uleb128 0x24
- 6786 01a9 34       		.uleb128 0x34
- 6787 01aa 00       		.byte	0x0
- 6788 01ab 03       		.uleb128 0x3
- 6789 01ac 08       		.uleb128 0x8
- 6790 01ad 3A       		.uleb128 0x3a
- 6791 01ae 0B       		.uleb128 0xb
- 6792 01af 3B       		.uleb128 0x3b
- 6793 01b0 05       		.uleb128 0x5
- 6794 01b1 49       		.uleb128 0x49
- 6795 01b2 13       		.uleb128 0x13
- 6796 01b3 02       		.uleb128 0x2
- 6797 01b4 0A       		.uleb128 0xa
- 6798 01b5 00       		.byte	0x0
- 6799 01b6 00       		.byte	0x0
- 6800 01b7 25       		.uleb128 0x25
- 6801 01b8 2E       		.uleb128 0x2e
- 6802 01b9 01       		.byte	0x1
- 6803 01ba 03       		.uleb128 0x3
- 6804 01bb 0E       		.uleb128 0xe
- 6805 01bc 3A       		.uleb128 0x3a
- 6806 01bd 0B       		.uleb128 0xb
- 6807 01be 3B       		.uleb128 0x3b
- 6808 01bf 05       		.uleb128 0x5
- 6809 01c0 27       		.uleb128 0x27
- 6810 01c1 0C       		.uleb128 0xc
- 6811 01c2 49       		.uleb128 0x49
- 6812 01c3 13       		.uleb128 0x13
- 6813 01c4 11       		.uleb128 0x11
- 6814 01c5 01       		.uleb128 0x1
- 6815 01c6 12       		.uleb128 0x12
- 6816 01c7 01       		.uleb128 0x1
- 6817 01c8 40       		.uleb128 0x40
- 6818 01c9 06       		.uleb128 0x6
- 6819 01ca 01       		.uleb128 0x1
- 6820 01cb 13       		.uleb128 0x13
- 6821 01cc 00       		.byte	0x0
- 6822 01cd 00       		.byte	0x0
- 6823 01ce 26       		.uleb128 0x26
- 6824 01cf 05       		.uleb128 0x5
- 6825 01d0 00       		.byte	0x0
- 6826 01d1 03       		.uleb128 0x3
- 6827 01d2 0E       		.uleb128 0xe
- 6828 01d3 3A       		.uleb128 0x3a
- 6829 01d4 0B       		.uleb128 0xb
- 6830 01d5 3B       		.uleb128 0x3b
- 6831 01d6 05       		.uleb128 0x5
- 6832 01d7 49       		.uleb128 0x49
- 6833 01d8 13       		.uleb128 0x13
- 6834 01d9 02       		.uleb128 0x2
- 6835 01da 0A       		.uleb128 0xa
- 6836 01db 00       		.byte	0x0
- 6837 01dc 00       		.byte	0x0
- 6838 01dd 27       		.uleb128 0x27
-
GAS LISTING /tmp/ccWvEaWW.s 			page 150
-
-
- 6839 01de 05       		.uleb128 0x5
- 6840 01df 00       		.byte	0x0
- 6841 01e0 03       		.uleb128 0x3
- 6842 01e1 08       		.uleb128 0x8
- 6843 01e2 3A       		.uleb128 0x3a
- 6844 01e3 0B       		.uleb128 0xb
- 6845 01e4 3B       		.uleb128 0x3b
- 6846 01e5 05       		.uleb128 0x5
- 6847 01e6 49       		.uleb128 0x49
- 6848 01e7 13       		.uleb128 0x13
- 6849 01e8 02       		.uleb128 0x2
- 6850 01e9 0A       		.uleb128 0xa
- 6851 01ea 00       		.byte	0x0
- 6852 01eb 00       		.byte	0x0
- 6853 01ec 28       		.uleb128 0x28
- 6854 01ed 34       		.uleb128 0x34
- 6855 01ee 00       		.byte	0x0
- 6856 01ef 03       		.uleb128 0x3
- 6857 01f0 0E       		.uleb128 0xe
- 6858 01f1 3A       		.uleb128 0x3a
- 6859 01f2 0B       		.uleb128 0xb
- 6860 01f3 3B       		.uleb128 0x3b
- 6861 01f4 05       		.uleb128 0x5
- 6862 01f5 49       		.uleb128 0x49
- 6863 01f6 13       		.uleb128 0x13
- 6864 01f7 02       		.uleb128 0x2
- 6865 01f8 0A       		.uleb128 0xa
- 6866 01f9 00       		.byte	0x0
- 6867 01fa 00       		.byte	0x0
- 6868 01fb 29       		.uleb128 0x29
- 6869 01fc 0B       		.uleb128 0xb
- 6870 01fd 01       		.byte	0x1
- 6871 01fe 11       		.uleb128 0x11
- 6872 01ff 01       		.uleb128 0x1
- 6873 0200 12       		.uleb128 0x12
- 6874 0201 01       		.uleb128 0x1
- 6875 0202 00       		.byte	0x0
- 6876 0203 00       		.byte	0x0
- 6877 0204 2A       		.uleb128 0x2a
- 6878 0205 2E       		.uleb128 0x2e
- 6879 0206 01       		.byte	0x1
- 6880 0207 3F       		.uleb128 0x3f
- 6881 0208 0C       		.uleb128 0xc
- 6882 0209 03       		.uleb128 0x3
- 6883 020a 0E       		.uleb128 0xe
- 6884 020b 3A       		.uleb128 0x3a
- 6885 020c 0B       		.uleb128 0xb
- 6886 020d 3B       		.uleb128 0x3b
- 6887 020e 05       		.uleb128 0x5
- 6888 020f 27       		.uleb128 0x27
- 6889 0210 0C       		.uleb128 0xc
- 6890 0211 49       		.uleb128 0x49
- 6891 0212 13       		.uleb128 0x13
- 6892 0213 11       		.uleb128 0x11
- 6893 0214 01       		.uleb128 0x1
- 6894 0215 12       		.uleb128 0x12
- 6895 0216 01       		.uleb128 0x1
-
GAS LISTING /tmp/ccWvEaWW.s 			page 151
-
-
- 6896 0217 40       		.uleb128 0x40
- 6897 0218 06       		.uleb128 0x6
- 6898 0219 01       		.uleb128 0x1
- 6899 021a 13       		.uleb128 0x13
- 6900 021b 00       		.byte	0x0
- 6901 021c 00       		.byte	0x0
- 6902 021d 2B       		.uleb128 0x2b
- 6903 021e 34       		.uleb128 0x34
- 6904 021f 00       		.byte	0x0
- 6905 0220 03       		.uleb128 0x3
- 6906 0221 0E       		.uleb128 0xe
- 6907 0222 3A       		.uleb128 0x3a
- 6908 0223 0B       		.uleb128 0xb
- 6909 0224 3B       		.uleb128 0x3b
- 6910 0225 0B       		.uleb128 0xb
- 6911 0226 49       		.uleb128 0x49
- 6912 0227 13       		.uleb128 0x13
- 6913 0228 3F       		.uleb128 0x3f
- 6914 0229 0C       		.uleb128 0xc
- 6915 022a 02       		.uleb128 0x2
- 6916 022b 0A       		.uleb128 0xa
- 6917 022c 00       		.byte	0x0
- 6918 022d 00       		.byte	0x0
- 6919 022e 00       		.byte	0x0
- 6920              		.section	.debug_pubnames,"", at progbits
- 6921 0000 43000000 		.long	0x43
- 6922 0004 0200     		.value	0x2
- 6923 0006 00000000 		.long	.Ldebug_info0
- 6924 000a 511F0000 		.long	0x1f51
- 6925 000e 3E1E0000 		.long	0x1e3e
- 6926 0012 4B436970 		.string	"KCipherVecAesNiMake"
- 6926      68657256 
- 6926      65634165 
- 6926      734E694D 
- 6926      616B6500 
- 6927 0026 351F0000 		.long	0x1f35
- 6928 002a 4B436970 		.string	"KCipherVecAesNiClassName"
- 6928      68657256 
- 6928      65634165 
- 6928      734E6943 
- 6928      6C617373 
- 6929 0043 00000000 		.long	0x0
- 6930              		.section	.debug_aranges,"", at progbits
- 6931 0000 2C000000 		.long	0x2c
- 6932 0004 0200     		.value	0x2
- 6933 0006 00000000 		.long	.Ldebug_info0
- 6934 000a 08       		.byte	0x8
- 6935 000b 00       		.byte	0x0
- 6936 000c 0000     		.value	0x0
- 6937 000e 0000     		.value	0x0
- 6938 0010 00000000 		.quad	.Ltext0
- 6938      00000000 
- 6939 0018 64100000 		.quad	.Letext0-.Ltext0
- 6939      00000000 
- 6940 0020 00000000 		.quad	0x0
- 6940      00000000 
- 6941 0028 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccWvEaWW.s 			page 152
-
-
- 6941      00000000 
- 6942              		.section	.debug_str,"MS", at progbits,1
- 6943              	.LASF89:
- 6944 0000 645F6B65 		.string	"d_key"
- 6944      7900
- 6945              	.LASF331:
- 6946 0006 72634475 		.string	"rcDuplicate"
- 6946      706C6963 
- 6946      61746500 
- 6947              	.LASF134:
- 6948 0012 7263436F 		.string	"rcCondition"
- 6948      6E646974 
- 6948      696F6E00 
- 6949              	.LASF248:
- 6950 001e 7263456E 		.string	"rcEncrypting"
- 6950      63727970 
- 6950      74696E67 
- 6950      00
- 6951              	.LASF207:
- 6952 002b 72634F70 		.string	"rcOpening"
- 6952      656E696E 
- 6952      6700
- 6953              	.LASF378:
- 6954 0035 4B436970 		.string	"KCipherVecAesNiDecryptCfb"
- 6954      68657256 
- 6954      65634165 
- 6954      734E6944 
- 6954      65637279 
- 6955              	.LASF215:
- 6956 004f 72635065 		.string	"rcPersisting"
- 6956      72736973 
- 6956      74696E67 
- 6956      00
- 6957              	.LASF253:
- 6958 005c 72635365 		.string	"rcSending"
- 6958      6E64696E 
- 6958      6700
- 6959              	.LASF363:
- 6960 0066 4B436970 		.string	"KCipherVecAesNiDecryptV1"
- 6960      68657256 
- 6960      65634165 
- 6960      734E6944 
- 6960      65637279 
- 6961              	.LASF247:
- 6962 007f 72634170 		.string	"rcAppending"
- 6962      70656E64 
- 6962      696E6700 
- 6963              	.LASF233:
- 6964 008b 72635369 		.string	"rcSignaling"
- 6964      676E616C 
- 6964      696E6700 
- 6965              	.LASF14:
- 6966 0097 4442475F 		.string	"DBG_BLAST"
- 6966      424C4153 
- 6966      5400
- 6967              	.LASF289:
- 6968 00a1 72635369 		.string	"rcSignalSet"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 153
-
-
- 6968      676E616C 
- 6968      53657400 
- 6969              	.LASF235:
- 6970 00ad 72634174 		.string	"rcAttaching"
- 6970      74616368 
- 6970      696E6700 
- 6971              	.LASF167:
- 6972 00b9 72635461 		.string	"rcTable"
- 6972      626C6500 
- 6973              	.LASF66:
- 6974 00c1 64656372 		.string	"decrypt_cfb"
- 6974      7970745F 
- 6974      63666200 
- 6975              	.LASF131:
- 6976 00cd 72634275 		.string	"rcBuffer"
- 6976      66666572 
- 6976      00
- 6977              	.LASF263:
- 6978 00d6 72634D65 		.string	"rcMemory"
- 6978      6D6F7279 
- 6978      00
- 6979              	.LASF196:
- 6980 00df 72634C6F 		.string	"rcLocking"
- 6980      636B696E 
- 6980      6700
- 6981              	.LASF231:
- 6982 00e9 72635061 		.string	"rcParsing"
- 6982      7273696E 
- 6982      6700
- 6983              	.LASF260:
- 6984 00f3 72635365 		.string	"rcSelf"
- 6984      6C6600
- 6985              	.LASF153:
- 6986 00fa 72634D65 		.string	"rcMetadata"
- 6986      74616461 
- 6986      746100
- 6987              	.LASF276:
- 6988 0105 72634172 		.string	"rcArcHardLink"
- 6988      63486172 
- 6988      644C696E 
- 6988      6B00
- 6989              	.LASF102:
- 6990 0113 7263436F 		.string	"rcCont"
- 6990      6E7400
- 6991              	.LASF284:
- 6992 011a 72634368 		.string	"rcChecksum"
- 6992      65636B73 
- 6992      756D00
- 6993              	.LASF354:
- 6994 0125 5F5F6675 		.string	"__func__"
- 6994      6E635F5F 
- 6994      00
- 6995              	.LASF328:
- 6996 012e 7263546F 		.string	"rcTooShort"
- 6996      6F53686F 
- 6996      727400
- 6997              	.LASF158:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 154
-
-
- 6998 0139 72635061 		.string	"rcPagemap"
- 6998      67656D61 
- 6998      7000
- 6999              	.LASF110:
- 7000 0143 72634170 		.string	"rcApp"
- 7000      7000
- 7001              	.LASF10:
- 7002 0149 61746F6D 		.string	"atomic32_t"
- 7002      69633332 
- 7002      5F7400
- 7003              	.LASF56:
- 7004 0154 7365745F 		.string	"set_decrypt_ctr_func"
- 7004      64656372 
- 7004      7970745F 
- 7004      6374725F 
- 7004      66756E63 
- 7005              	.LASF65:
- 7006 0169 656E6372 		.string	"encrypt_cfb"
- 7006      7970745F 
- 7006      63666200 
- 7007              	.LASF172:
- 7008 0175 72635472 		.string	"rcTrie"
- 7008      696500
- 7009              	.LASF113:
- 7010 017c 72634C61 		.string	"rcLastModule_v1_0"
- 7010      73744D6F 
- 7010      64756C65 
- 7010      5F76315F 
- 7010      3000
- 7011              	.LASF120:
- 7012 018e 72634C61 		.string	"rcLastModule_v1_1"
- 7012      73744D6F 
- 7012      64756C65 
- 7012      5F76315F 
- 7012      3100
- 7013              	.LASF271:
- 7014 01a0 72634279 		.string	"rcByteOrder"
- 7014      74654F72 
- 7014      64657200 
- 7015              	.LASF84:
- 7016 01ac 4145534B 		.string	"AESKeySchedule"
- 7016      65795363 
- 7016      68656475 
- 7016      6C6500
- 7017              	.LASF359:
- 7018 01bb 4B436970 		.string	"KCipherVecAesNiSetEncryptCounterFunc"
- 7018      68657256 
- 7018      65634165 
- 7018      734E6953 
- 7018      6574456E 
- 7019              	.LASF332:
- 7020 01e0 72634F75 		.string	"rcOutOfKDirectory"
- 7020      744F664B 
- 7020      44697265 
- 7020      63746F72 
- 7020      7900
- 7021              	.LASF85:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 155
-
-
- 7022 01f2 726F756E 		.string	"round_keys"
- 7022      645F6B65 
- 7022      797300
- 7023              	.LASF189:
- 7024 01fd 7263436F 		.string	"rcConstructing"
- 7024      6E737472 
- 7024      75637469 
- 7024      6E6700
- 7025              	.LASF95:
- 7026 020c 6B636970 		.string	"kcipher_AES"
- 7026      6865725F 
- 7026      41455300 
- 7027              	.LASF96:
- 7028 0218 6B636970 		.string	"kcipher_count"
- 7028      6865725F 
- 7028      636F756E 
- 7028      7400
- 7029              	.LASF390:
- 7030 0226 74797065 		.string	"type"
- 7030      00
- 7031              	.LASF9:
- 7032 022b 72635F74 		.string	"rc_t"
- 7032      00
- 7033              	.LASF265:
- 7034 0230 7263466F 		.string	"rcFormat"
- 7034      726D6174 
- 7034      00
- 7035              	.LASF367:
- 7036 0239 4B436970 		.string	"KCipherVecAesNiDecrypt"
- 7036      68657256 
- 7036      65634165 
- 7036      734E6944 
- 7036      65637279 
- 7037              	.LASF323:
- 7038 0250 7263556E 		.string	"rcUnauthorized"
- 7038      61757468 
- 7038      6F72697A 
- 7038      656400
- 7039              	.LASF355:
- 7040 025f 4B436970 		.string	"KCipherVecAesNiSetDecryptKey"
- 7040      68657256 
- 7040      65634165 
- 7040      734E6953 
- 7040      65744465 
- 7041              	.LASF346:
- 7042 027c 63766F75 		.string	"cvout"
- 7042      7400
- 7043              	.LASF203:
- 7044 0282 72635265 		.string	"rcRemoving"
- 7044      6D6F7669 
- 7044      6E6700
- 7045              	.LASF116:
- 7046 028d 72634B72 		.string	"rcKrypto"
- 7046      7970746F 
- 7046      00
- 7047              	.LASF379:
- 7048 0296 4B436970 		.string	"KCipherVecAesNiEncryptOfb"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 156
-
-
- 7048      68657256 
- 7048      65634165 
- 7048      734E6945 
- 7048      6E637279 
- 7049              	.LASF194:
- 7050 02b0 72635669 		.string	"rcVisiting"
- 7050      73697469 
- 7050      6E6700
- 7051              	.LASF124:
- 7052 02bb 72634172 		.string	"rcArc"
- 7052      6300
- 7053              	.LASF99:
- 7054 02c1 72634578 		.string	"rcExe"
- 7054      6500
- 7055              	.LASF368:
- 7056 02c7 4B436970 		.string	"KCipherVecAesNiEncryptEcb"
- 7056      68657256 
- 7056      65634165 
- 7056      734E6945 
- 7056      6E637279 
- 7057              	.LASF358:
- 7058 02e1 4B436970 		.string	"KCipherVecAesNiSetDecryptIvec"
- 7058      68657256 
- 7058      65634165 
- 7058      734E6953 
- 7058      65744465 
- 7059              	.LASF329:
- 7060 02ff 7263546F 		.string	"rcTooLong"
- 7060      6F4C6F6E 
- 7060      6700
- 7061              	.LASF257:
- 7062 0309 52434F62 		.string	"RCObject"
- 7062      6A656374 
- 7062      00
- 7063              	.LASF267:
- 7064 0312 7263496E 		.string	"rcInterface"
- 7064      74657266 
- 7064      61636500 
- 7065              	.LASF195:
- 7066 031e 72635265 		.string	"rcResolving"
- 7066      736F6C76 
- 7066      696E6700 
- 7067              	.LASF87:
- 7068 032a 43697068 		.string	"CipherAes"
- 7068      65724165 
- 7068      7300
- 7069              	.LASF137:
- 7070 0334 72634469 		.string	"rcDirectory"
- 7070      72656374 
- 7070      6F727900 
- 7071              	.LASF2:
- 7072 0340 6C6F6E67 		.string	"long int"
- 7072      20696E74 
- 7072      00
- 7073              	.LASF225:
- 7074 0349 72635661 		.string	"rcValidating"
- 7074      6C696461 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 157
-
-
- 7074      74696E67 
- 7074      00
- 7075              	.LASF44:
- 7076 0356 63697068 		.string	"cipher_ctr_func"
- 7076      65725F63 
- 7076      74725F66 
- 7076      756E6300 
- 7077              	.LASF127:
- 7078 0366 72634172 		.string	"rcArgv"
- 7078      677600
- 7079              	.LASF103:
- 7080 036d 72634353 		.string	"rcCS"
- 7080      00
- 7081              	.LASF184:
- 7082 0372 72635572 		.string	"rcUri"
- 7082      6900
- 7083              	.LASF206:
- 7084 0378 72634372 		.string	"rcCreating"
- 7084      65617469 
- 7084      6E6700
- 7085              	.LASF40:
- 7086 0383 656E6372 		.string	"encrypt_ivec"
- 7086      7970745F 
- 7086      69766563 
- 7086      00
- 7087              	.LASF57:
- 7088 0390 656E6372 		.string	"encrypt"
- 7088      79707400 
- 7089              	.LASF76:
- 7090 0398 76313238 		.string	"v128_u8_t"
- 7090      5F75385F 
- 7090      7400
- 7091              	.LASF19:
- 7092 03a2 4442475F 		.string	"DBG_XML"
- 7092      584D4C00 
- 7093              	.LASF31:
- 7094 03aa 4442475F 		.string	"DBG_MOD_COUNT"
- 7094      4D4F445F 
- 7094      434F554E 
- 7094      5400
- 7095              	.LASF396:
- 7096 03b8 4B436970 		.string	"KCipherVecAesNiMake"
- 7096      68657256 
- 7096      65634165 
- 7096      734E694D 
- 7096      616B6500 
- 7097              	.LASF352:
- 7098 03cc 75736572 		.string	"user_key_bits"
- 7098      5F6B6579 
- 7098      5F626974 
- 7098      7300
- 7099              	.LASF108:
- 7100 03da 72634442 		.string	"rcDB"
- 7100      00
- 7101              	.LASF348:
- 7102 03df 4B436970 		.string	"KCipherVecAesNiDestroy"
- 7102      68657256 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 158
-
-
- 7102      65634165 
- 7102      734E6944 
- 7102      65737472 
- 7103              	.LASF286:
- 7104 03f6 7263436F 		.string	"rcConnection"
- 7104      6E6E6563 
- 7104      74696F6E 
- 7104      00
- 7105              	.LASF154:
- 7106 0403 72634D67 		.string	"rcMgr"
- 7106      7200
- 7107              	.LASF316:
- 7108 0409 72635669 		.string	"rcViolated"
- 7108      6F6C6174 
- 7108      656400
- 7109              	.LASF249:
- 7110 0414 72634465 		.string	"rcDecrypting"
- 7110      63727970 
- 7110      74696E67 
- 7110      00
- 7111              	.LASF0:
- 7112 0421 7369676E 		.string	"signed char"
- 7112      65642063 
- 7112      68617200 
- 7113              	.LASF5:
- 7114 042d 75696E74 		.string	"uint8_t"
- 7114      385F7400 
- 7115              	.LASF132:
- 7116 0435 72634368 		.string	"rcChar"
- 7116      617200
- 7117              	.LASF117:
- 7118 043c 72635244 		.string	"rcRDBMS"
- 7118      424D5300 
- 7119              	.LASF161:
- 7120 0444 72635175 		.string	"rcQueue"
- 7120      65756500 
- 7121              	.LASF353:
- 7122 044c 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 7122      45545459 
- 7122      5F46554E 
- 7122      4354494F 
- 7122      4E5F5F00 
- 7123              	.LASF12:
- 7124 0460 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 7124      4D4F445F 
- 7124      4E4F545F 
- 7124      464F554E 
- 7124      4400
- 7125              	.LASF213:
- 7126 0472 72635265 		.string	"rcReverting"
- 7126      76657274 
- 7126      696E6700 
- 7127              	.LASF129:
- 7128 047e 72634261 		.string	"rcBarrier"
- 7128      72726965 
- 7128      7200
- 7129              	.LASF313:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 159
-
-
- 7130 0488 72634578 		.string	"rcExhausted"
- 7130      68617573 
- 7130      74656400 
- 7131              	.LASF3:
- 7132 0494 756E7369 		.string	"unsigned char"
- 7132      676E6564 
- 7132      20636861 
- 7132      7200
- 7133              	.LASF186:
- 7134 04a2 5243436F 		.string	"RCContext"
- 7134      6E746578 
- 7134      7400
- 7135              	.LASF149:
- 7136 04ac 72634C6F 		.string	"rcLock"
- 7136      636B00
- 7137              	.LASF302:
- 7138 04b3 72634261 		.string	"rcBadVersion"
- 7138      64566572 
- 7138      73696F6E 
- 7138      00
- 7139              	.LASF303:
- 7140 04c0 72634465 		.string	"rcDestroyed"
- 7140      7374726F 
- 7140      79656400 
- 7141              	.LASF166:
- 7142 04cc 72635374 		.string	"rcString"
- 7142      72696E67 
- 7142      00
- 7143              	.LASF128:
- 7144 04d5 72634174 		.string	"rcAttr"
- 7144      747200
- 7145              	.LASF150:
- 7146 04dc 72634C6F 		.string	"rcLog"
- 7146      6700
- 7147              	.LASF389:
- 7148 04e2 6E65775F 		.string	"new_obj"
- 7148      6F626A00 
- 7149              	.LASF15:
- 7150 04ea 4442475F 		.string	"DBG_KDB"
- 7150      4B444200 
- 7151              	.LASF254:
- 7152 04f2 72635072 		.string	"rcProcessing"
- 7152      6F636573 
- 7152      73696E67 
- 7152      00
- 7153              	.LASF104:
- 7154 04ff 72634646 		.string	"rcFF"
- 7154      00
- 7155              	.LASF393:
- 7156 0504 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
- 7156      652F726F 
- 7156      6461726D 
- 7156      65722F73 
- 7156      72615F73 
- 7157              	.LASF105:
- 7158 053c 72634653 		.string	"rcFS"
- 7158      00
-
GAS LISTING /tmp/ccWvEaWW.s 			page 160
-
-
- 7159              	.LASF347:
- 7160 0541 43697068 		.string	"CipherVecIn"
- 7160      65725665 
- 7160      63496E00 
- 7161              	.LASF192:
- 7162 054d 72634163 		.string	"rcAccessing"
- 7162      63657373 
- 7162      696E6700 
- 7163              	.LASF310:
- 7164 0559 7263496E 		.string	"rcInterrupted"
- 7164      74657272 
- 7164      75707465 
- 7164      6400
- 7165              	.LASF318:
- 7166 0567 72634E6F 		.string	"rcNotFound"
- 7166      74466F75 
- 7166      6E6400
- 7167              	.LASF11:
- 7168 0572 63686172 		.string	"char"
- 7168      00
- 7169              	.LASF156:
- 7170 0577 72634E6F 		.string	"rcNode"
- 7170      646500
- 7171              	.LASF29:
- 7172 057e 4442475F 		.string	"DBG_AES"
- 7172      41455300 
- 7173              	.LASF287:
- 7174 0586 72634572 		.string	"rcError"
- 7174      726F7200 
- 7175              	.LASF384:
- 7176 058e 706F626A 		.string	"pobj"
- 7176      00
- 7177              	.LASF204:
- 7178 0593 7263436C 		.string	"rcClearing"
- 7178      65617269 
- 7178      6E6700
- 7179              	.LASF262:
- 7180 059e 72634F66 		.string	"rcOffset"
- 7180      66736574 
- 7180      00
- 7181              	.LASF208:
- 7182 05a7 7263436C 		.string	"rcClosing"
- 7182      6F73696E 
- 7182      6700
- 7183              	.LASF140:
- 7184 05b1 72634669 		.string	"rcFile"
- 7184      6C6500
- 7185              	.LASF376:
- 7186 05b8 4B436970 		.string	"KCipherVecAesNiDecryptPcbc"
- 7186      68657256 
- 7186      65634165 
- 7186      734E6944 
- 7186      65637279 
- 7187              	.LASF169:
- 7188 05d3 72635469 		.string	"rcTimeout"
- 7188      6D656F75 
- 7188      7400
-
GAS LISTING /tmp/ccWvEaWW.s 			page 161
-
-
- 7189              	.LASF385:
- 7190 05dd 4B436970 		.string	"KCipherVecAesNiInitAes"
- 7190      68657256 
- 7190      65634165 
- 7190      734E6949 
- 7190      6E697441 
- 7191              	.LASF157:
- 7192 05f4 72634E75 		.string	"rcNumeral"
- 7192      6D657261 
- 7192      6C00
- 7193              	.LASF234:
- 7194 05fe 72635761 		.string	"rcWaiting"
- 7194      6974696E 
- 7194      6700
- 7195              	.LASF381:
- 7196 0608 4B436970 		.string	"KCipherVecAesNiEncryptCtr"
- 7196      68657256 
- 7196      65634165 
- 7196      734E6945 
- 7196      6E637279 
- 7197              	.LASF362:
- 7198 0622 4B436970 		.string	"KCipherVecAesNiEncryptV1"
- 7198      68657256 
- 7198      65634165 
- 7198      734E6945 
- 7198      6E637279 
- 7199              	.LASF238:
- 7200 063b 72634650 		.string	"rcFPCoding"
- 7200      436F6469 
- 7200      6E6700
- 7201              	.LASF290:
- 7202 0646 72635369 		.string	"rcSize"
- 7202      7A6500
- 7203              	.LASF275:
- 7204 064d 72634469 		.string	"rcDirEntry"
- 7204      72456E74 
- 7204      727900
- 7205              	.LASF227:
- 7206 0658 72634875 		.string	"rcHuffmanCoding"
- 7206      66666D61 
- 7206      6E436F64 
- 7206      696E6700 
- 7207              	.LASF24:
- 7208 0668 4442475F 		.string	"DBG_KFG"
- 7208      4B464700 
- 7209              	.LASF308:
- 7210 0670 72634275 		.string	"rcBusy"
- 7210      737900
- 7211              	.LASF21:
- 7212 0677 4442475F 		.string	"DBG_SRA"
- 7212      53524100 
- 7213              	.LASF371:
- 7214 067f 4B436970 		.string	"KCipherVecAesNiDecryptEcb"
- 7214      68657256 
- 7214      65634165 
- 7214      734E6944 
- 7214      65637279 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 162
-
-
- 7215              	.LASF266:
- 7216 0699 72635472 		.string	"rcTransfer"
- 7216      616E7366 
- 7216      657200
- 7217              	.LASF18:
- 7218 06a4 4442475F 		.string	"DBG_KFS"
- 7218      4B465300 
- 7219              	.LASF221:
- 7220 06ac 72635061 		.string	"rcPacking"
- 7220      636B696E 
- 7220      6700
- 7221              	.LASF217:
- 7222 06b6 7263436F 		.string	"rcCopying"
- 7222      7079696E 
- 7222      6700
- 7223              	.LASF255:
- 7224 06c0 72634964 		.string	"rcIdentifying"
- 7224      656E7469 
- 7224      6679696E 
- 7224      6700
- 7225              	.LASF391:
- 7226 06ce 4B436970 		.string	"KCipherVecAesNi_vt_v1"
- 7226      68657256 
- 7226      65634165 
- 7226      734E695F 
- 7226      76745F76 
- 7227              	.LASF60:
- 7228 06e4 64656372 		.string	"decrypt_ecb"
- 7228      7970745F 
- 7228      65636200 
- 7229              	.LASF224:
- 7230 06f0 72634465 		.string	"rcDecoding"
- 7230      636F6469 
- 7230      6E6700
- 7231              	.LASF152:
- 7232 06fb 72634D65 		.string	"rcMemMap"
- 7232      6D4D6170 
- 7232      00
- 7233              	.LASF197:
- 7234 0704 7263556E 		.string	"rcUnlocking"
- 7234      6C6F636B 
- 7234      696E6700 
- 7235              	.LASF280:
- 7236 0710 72634974 		.string	"rcItem"
- 7236      656D00
- 7237              	.LASF82:
- 7238 0717 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 7238      636B4369 
- 7238      70686572 
- 7238      5665635F 
- 7238      76745F76 
- 7239              	.LASF17:
- 7240 072d 4442475F 		.string	"DBG_LEGREF"
- 7240      4C454752 
- 7240      454600
- 7241              	.LASF345:
- 7242 0738 6376696E 		.string	"cvin"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 163
-
-
- 7242      00
- 7243              	.LASF198:
- 7244 073d 72635265 		.string	"rcRenaming"
- 7244      6E616D69 
- 7244      6E6700
- 7245              	.LASF351:
- 7246 0748 75736572 		.string	"user_key"
- 7246      5F6B6579 
- 7246      00
- 7247              	.LASF268:
- 7248 0751 72634964 		.string	"rcId"
- 7248      00
- 7249              	.LASF181:
- 7250 0756 7263436D 		.string	"rcCmd"
- 7250      6400
- 7251              	.LASF395:
- 7252 075c 43697068 		.string	"CipherVecOut"
- 7252      65725665 
- 7252      634F7574 
- 7252      00
- 7253              	.LASF27:
- 7254 0769 4442475F 		.string	"DBG_LOADLIB"
- 7254      4C4F4144 
- 7254      4C494200 
- 7255              	.LASF320:
- 7256 0775 7263556E 		.string	"rcUnlocked"
- 7256      6C6F636B 
- 7256      656400
- 7257              	.LASF121:
- 7258 0780 52434D6F 		.string	"RCModule"
- 7258      64756C65 
- 7258      00
- 7259              	.LASF282:
- 7260 0789 7263456E 		.string	"rcEncryption"
- 7260      63727970 
- 7260      74696F6E 
- 7260      00
- 7261              	.LASF317:
- 7262 0796 72634578 		.string	"rcExists"
- 7262      69737473 
- 7262      00
- 7263              	.LASF77:
- 7264 079f 43697068 		.string	"CipherVec"
- 7264      65725665 
- 7264      6300
- 7265              	.LASF59:
- 7266 07a9 656E6372 		.string	"encrypt_ecb"
- 7266      7970745F 
- 7266      65636200 
- 7267              	.LASF336:
- 7268 07b5 72634F70 		.string	"rcOpen"
- 7268      656E00
- 7269              	.LASF322:
- 7270 07bc 72634465 		.string	"rcDeadlock"
- 7270      61646C6F 
- 7270      636B00
- 7271              	.LASF259:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 164
-
-
- 7272 07c7 72634C69 		.string	"rcLink"
- 7272      6E6B00
- 7273              	.LASF246:
- 7274 07ce 7263466C 		.string	"rcFlushing"
- 7274      75736869 
- 7274      6E6700
- 7275              	.LASF294:
- 7276 07d9 72634E6F 		.string	"rcNoErr"
- 7276      45727200 
- 7277              	.LASF273:
- 7278 07e1 72635461 		.string	"rcTag"
- 7278      6700
- 7279              	.LASF23:
- 7280 07e7 4442475F 		.string	"DBG_ALIGN"
- 7280      414C4947 
- 7280      4E00
- 7281              	.LASF237:
- 7282 07f1 72634C6F 		.string	"rcLogging"
- 7282      6767696E 
- 7282      6700
- 7283              	.LASF364:
- 7284 07fb 4B436970 		.string	"KCipherVecAesNiEncryptV1Int"
- 7284      68657256 
- 7284      65634165 
- 7284      734E6945 
- 7284      6E637279 
- 7285              	.LASF330:
- 7286 0817 7263546F 		.string	"rcTooBig"
- 7286      6F426967 
- 7286      00
- 7287              	.LASF174:
- 7288 0820 72635665 		.string	"rcVector"
- 7288      63746F72 
- 7288      00
- 7289              	.LASF209:
- 7290 0829 72635265 		.string	"rcResizing"
- 7290      73697A69 
- 7290      6E6700
- 7291              	.LASF183:
- 7292 0834 72635175 		.string	"rcQuery"
- 7292      65727900 
- 7293              	.LASF8:
- 7294 083c 6C6F6E67 		.string	"long unsigned int"
- 7294      20756E73 
- 7294      69676E65 
- 7294      6420696E 
- 7294      7400
- 7295              	.LASF315:
- 7296 084e 72634578 		.string	"rcExcessive"
- 7296      63657373 
- 7296      69766500 
- 7297              	.LASF243:
- 7298 085a 72634576 		.string	"rcEvaluating"
- 7298      616C7561 
- 7298      74696E67 
- 7298      00
- 7299              	.LASF180:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 165
-
-
- 7300 0867 7263526E 		.string	"rcRng"
- 7300      6700
- 7301              	.LASF188:
- 7302 086d 72634361 		.string	"rcCasting"
- 7302      7374696E 
- 7302      6700
- 7303              	.LASF349:
- 7304 0877 73656C66 		.string	"self"
- 7304      00
- 7305              	.LASF148:
- 7306 087c 72634974 		.string	"rcIterator"
- 7306      65726174 
- 7306      6F7200
- 7307              	.LASF83:
- 7308 0887 4B426C6F 		.string	"KBlockCipherVec"
- 7308      636B4369 
- 7308      70686572 
- 7308      56656300 
- 7309              	.LASF380:
- 7310 0897 4B436970 		.string	"KCipherVecAesNiDecryptOfb"
- 7310      68657256 
- 7310      65634165 
- 7310      734E6944 
- 7310      65637279 
- 7311              	.LASF387:
- 7312 08b1 4B436970 		.string	"KCipherVecAesNiInitNull"
- 7312      68657256 
- 7312      65634165 
- 7312      734E6949 
- 7312      6E69744E 
- 7313              	.LASF165:
- 7314 08c9 72635374 		.string	"rcStorage"
- 7314      6F726167 
- 7314      6500
- 7315              	.LASF383:
- 7316 08d3 4B436970 		.string	"KCipherVecAesNiAllocAes"
- 7316      68657256 
- 7316      65634165 
- 7316      734E6941 
- 7316      6C6C6F63 
- 7317              	.LASF68:
- 7318 08eb 64656372 		.string	"decrypt_ofb"
- 7318      7970745F 
- 7318      6F666200 
- 7319              	.LASF46:
- 7320 08f7 626C6F63 		.string	"block_cipher"
- 7320      6B5F6369 
- 7320      70686572 
- 7320      00
- 7321              	.LASF369:
- 7322 0904 626C6F63 		.string	"block_count"
- 7322      6B5F636F 
- 7322      756E7400 
- 7323              	.LASF277:
- 7324 0910 7263526F 		.string	"rcRow"
- 7324      7700
- 7325              	.LASF20:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 166
-
-
- 7326 0916 4442475F 		.string	"DBG_VDB"
- 7326      56444200 
- 7327              	.LASF93:
- 7328 091e 6B636970 		.string	"kcipher_type"
- 7328      6865725F 
- 7328      74797065 
- 7328      00
- 7329              	.LASF177:
- 7330 092b 72634C61 		.string	"rcLastTarget_v1_0"
- 7330      73745461 
- 7330      72676574 
- 7330      5F76315F 
- 7330      3000
- 7331              	.LASF185:
- 7332 093d 72634C61 		.string	"rcLastTarget_v1_1"
- 7332      73745461 
- 7332      72676574 
- 7332      5F76315F 
- 7332      3100
- 7333              	.LASF164:
- 7334 094f 72635365 		.string	"rcSemaphore"
- 7334      6D617068 
- 7334      6F726500 
- 7335              	.LASF218:
- 7336 095b 7263436F 		.string	"rcConcatenating"
- 7336      6E636174 
- 7336      656E6174 
- 7336      696E6700 
- 7337              	.LASF309:
- 7338 096b 7263496E 		.string	"rcIncomplete"
- 7338      636F6D70 
- 7338      6C657465 
- 7338      00
- 7339              	.LASF338:
- 7340 0978 72634E6F 		.string	"rcNotOpen"
- 7340      744F7065 
- 7340      6E00
- 7341              	.LASF382:
- 7342 0982 4B436970 		.string	"KCipherVecAesNiDecryptCtr"
- 7342      68657256 
- 7342      65634165 
- 7342      734E6944 
- 7342      65637279 
- 7343              	.LASF147:
- 7344 099c 7263496E 		.string	"rcIndex"
- 7344      64657800 
- 7345              	.LASF67:
- 7346 09a4 656E6372 		.string	"encrypt_ofb"
- 7346      7970745F 
- 7346      6F666200 
- 7347              	.LASF55:
- 7348 09b0 7365745F 		.string	"set_encrypt_ctr_func"
- 7348      656E6372 
- 7348      7970745F 
- 7348      6374725F 
- 7348      66756E63 
- 7349              	.LASF356:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 167
-
-
- 7350 09c5 4B436970 		.string	"KCipherVecAesNiSetEncryptIvec"
- 7350      68657256 
- 7350      65634165 
- 7350      734E6953 
- 7350      6574456E 
- 7351              	.LASF22:
- 7352 09e3 4442475F 		.string	"DBG_XARC"
- 7352      58415243 
- 7352      00
- 7353              	.LASF392:
- 7354 09ec 474E5520 		.string	"GNU C 4.4.2"
- 7354      4320342E 
- 7354      342E3200 
- 7355              	.LASF357:
- 7356 09f8 69766563 		.string	"ivec"
- 7356      00
- 7357              	.LASF100:
- 7358 09fd 72635275 		.string	"rcRuntime"
- 7358      6E74696D 
- 7358      6500
- 7359              	.LASF139:
- 7360 0a07 7263586D 		.string	"rcXmlDoc"
- 7360      6C446F63 
- 7360      00
- 7361              	.LASF72:
- 7362 0a10 6C6F6E67 		.string	"long long int"
- 7362      206C6F6E 
- 7362      6720696E 
- 7362      7400
- 7363              	.LASF220:
- 7364 0a1e 7263506F 		.string	"rcPositioning"
- 7364      73697469 
- 7364      6F6E696E 
- 7364      6700
- 7365              	.LASF34:
- 7366 0a2c 636F756E 		.string	"counter"
- 7366      74657200 
- 7367              	.LASF70:
- 7368 0a34 64656372 		.string	"decrypt_ctr"
- 7368      7970745F 
- 7368      63747200 
- 7369              	.LASF94:
- 7370 0a40 6B636970 		.string	"kcipher_null"
- 7370      6865725F 
- 7370      6E756C6C 
- 7370      00
- 7371              	.LASF151:
- 7372 0a4d 72634D44 		.string	"rcMD5SumFmt"
- 7372      3553756D 
- 7372      466D7400 
- 7373              	.LASF365:
- 7374 0a59 4B436970 		.string	"KCipherVecAesNiDecryptV1Int"
- 7374      68657256 
- 7374      65634165 
- 7374      734E6944 
- 7374      65637279 
- 7375              	.LASF202:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 168
-
-
- 7376 0a75 7263496E 		.string	"rcInserting"
- 7376      73657274 
- 7376      696E6700 
- 7377              	.LASF250:
- 7378 0a81 7263436F 		.string	"rcComparing"
- 7378      6D706172 
- 7378      696E6700 
- 7379              	.LASF312:
- 7380 0a8d 7263456D 		.string	"rcEmpty"
- 7380      70747900 
- 7381              	.LASF144:
- 7382 0a95 7263466F 		.string	"rcFormatter"
- 7382      726D6174 
- 7382      74657200 
- 7383              	.LASF75:
- 7384 0aa1 646F7562 		.string	"double"
- 7384      6C6500
- 7385              	.LASF229:
- 7386 0aa8 72635265 		.string	"rcRegistering"
- 7386      67697374 
- 7386      6572696E 
- 7386      6700
- 7387              	.LASF35:
- 7388 0ab6 72656663 		.string	"refcount"
- 7388      6F756E74 
- 7388      00
- 7389              	.LASF118:
- 7390 0abf 72634E53 		.string	"rcNS"
- 7390      00
- 7391              	.LASF261:
- 7392 0ac4 72635061 		.string	"rcParam"
- 7392      72616D00 
- 7393              	.LASF226:
- 7394 0acc 72634578 		.string	"rcExecuting"
- 7394      65637574 
- 7394      696E6700 
- 7395              	.LASF122:
- 7396 0ad8 52435461 		.string	"RCTarget"
- 7396      72676574 
- 7396      00
- 7397              	.LASF283:
- 7398 0ae1 72634372 		.string	"rcCrc"
- 7398      6300
- 7399              	.LASF26:
- 7400 0ae7 4442475F 		.string	"DBG_SEARCH"
- 7400      53454152 
- 7400      434800
- 7401              	.LASF111:
- 7402 0af2 7263584D 		.string	"rcXML"
- 7402      4C00
- 7403              	.LASF69:
- 7404 0af8 656E6372 		.string	"encrypt_ctr"
- 7404      7970745F 
- 7404      63747200 
- 7405              	.LASF28:
- 7406 0b04 4442475F 		.string	"DBG_VFS"
- 7406      56465300 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 169
-
-
- 7407              	.LASF73:
- 7408 0b0c 666C6F61 		.string	"float"
- 7408      7400
- 7409              	.LASF205:
- 7410 0b12 72635570 		.string	"rcUpdating"
- 7410      64617469 
- 7410      6E6700
- 7411              	.LASF232:
- 7412 0b1d 7263436F 		.string	"rcConverting"
- 7412      6E766572 
- 7412      74696E67 
- 7412      00
- 7413              	.LASF64:
- 7414 0b2a 64656372 		.string	"decrypt_pcbc"
- 7414      7970745F 
- 7414      70636263 
- 7414      00
- 7415              	.LASF97:
- 7416 0b37 4B426C6F 		.string	"KBlockCipher"
- 7416      636B4369 
- 7416      70686572 
- 7416      00
- 7417              	.LASF175:
- 7418 0b44 72634479 		.string	"rcDylib"
- 7418      6C696200 
- 7419              	.LASF324:
- 7420 0b4c 72635265 		.string	"rcReadonly"
- 7420      61646F6E 
- 7420      6C7900
- 7421              	.LASF7:
- 7422 0b57 756E7369 		.string	"unsigned int"
- 7422      676E6564 
- 7422      20696E74 
- 7422      00
- 7423              	.LASF325:
- 7424 0b64 72635772 		.string	"rcWriteonly"
- 7424      6974656F 
- 7424      6E6C7900 
- 7425              	.LASF47:
- 7426 0b70 4B436970 		.string	"KCipher_vt"
- 7426      6865725F 
- 7426      767400
- 7427              	.LASF319:
- 7428 0b7b 72634C6F 		.string	"rcLocked"
- 7428      636B6564 
- 7428      00
- 7429              	.LASF201:
- 7430 0b84 72635072 		.string	"rcProjecting"
- 7430      6F6A6563 
- 7430      74696E67 
- 7430      00
- 7431              	.LASF106:
- 7432 0b91 72635053 		.string	"rcPS"
- 7432      00
- 7433              	.LASF291:
- 7434 0b96 72635265 		.string	"rcRefcount"
- 7434      66636F75 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 170
-
-
- 7434      6E7400
- 7435              	.LASF126:
- 7436 0ba1 7263546F 		.string	"rcTocEntry"
- 7436      63456E74 
- 7436      727900
- 7437              	.LASF281:
- 7438 0bac 72634D6F 		.string	"rcMode"
- 7438      646500
- 7439              	.LASF350:
- 7440 0bb3 4B436970 		.string	"KCipherVecAesNiSetEncryptKey"
- 7440      68657256 
- 7440      65634165 
- 7440      734E6953 
- 7440      6574456E 
- 7441              	.LASF340:
- 7442 0bd0 7263556E 		.string	"rcUnequal"
- 7442      65717561 
- 7442      6C00
- 7443              	.LASF321:
- 7444 0bda 72634465 		.string	"rcDetached"
- 7444      74616368 
- 7444      656400
- 7445              	.LASF327:
- 7446 0be5 7263496E 		.string	"rcInPlaceNotAllowed"
- 7446      506C6163 
- 7446      654E6F74 
- 7446      416C6C6F 
- 7446      77656400 
- 7447              	.LASF269:
- 7448 0bf9 72635261 		.string	"rcRange"
- 7448      6E676500 
- 7449              	.LASF394:
- 7450 0c01 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 7450      652F726F 
- 7450      6461726D 
- 7450      65722F73 
- 7450      72615F73 
- 7451              	.LASF279:
- 7452 0c49 72634C61 		.string	"rcLastObject_v1_0"
- 7452      73744F62 
- 7452      6A656374 
- 7452      5F76315F 
- 7452      3000
- 7453              	.LASF292:
- 7454 0c5b 72634C61 		.string	"rcLastObject_v1_1"
- 7454      73744F62 
- 7454      6A656374 
- 7454      5F76315F 
- 7454      3100
- 7455              	.LASF386:
- 7456 0c6d 4B436970 		.string	"KCipherVecAesNiAllocNull"
- 7456      68657256 
- 7456      65634165 
- 7456      734E6941 
- 7456      6C6C6F63 
- 7457              	.LASF98:
- 7458 0c86 62797465 		.string	"byte"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 171
-
-
- 7458      00
- 7459              	.LASF314:
- 7460 0c8b 7263496E 		.string	"rcInsufficient"
- 7460      73756666 
- 7460      69636965 
- 7460      6E7400
- 7461              	.LASF245:
- 7462 0c9a 72634C61 		.string	"rcLastContext_v1_0"
- 7462      7374436F 
- 7462      6E746578 
- 7462      745F7631 
- 7462      5F3000
- 7463              	.LASF256:
- 7464 0cad 72634C61 		.string	"rcLastContext_v1_1"
- 7464      7374436F 
- 7464      6E746578 
- 7464      745F7631 
- 7464      5F3100
- 7465              	.LASF39:
- 7466 0cc0 64656372 		.string	"decrypt_key"
- 7466      7970745F 
- 7466      6B657900 
- 7467              	.LASF176:
- 7468 0ccc 72634578 		.string	"rcExpression"
- 7468      70726573 
- 7468      73696F6E 
- 7468      00
- 7469              	.LASF222:
- 7470 0cd9 7263556E 		.string	"rcUnpacking"
- 7470      7061636B 
- 7470      696E6700 
- 7471              	.LASF138:
- 7472 0ce5 7263446F 		.string	"rcDoc"
- 7472      6300
- 7473              	.LASF13:
- 7474 0ceb 4442475F 		.string	"DBG_APP"
- 7474      41505000 
- 7475              	.LASF239:
- 7476 0cf3 72634D75 		.string	"rcMultiplexing"
- 7476      6C746970 
- 7476      6C657869 
- 7476      6E6700
- 7477              	.LASF241:
- 7478 0d02 72635365 		.string	"rcSearching"
- 7478      61726368 
- 7478      696E6700 
- 7479              	.LASF341:
- 7480 0d0e 72634661 		.string	"rcFailed"
- 7480      696C6564 
- 7480      00
- 7481              	.LASF48:
- 7482 0d17 4B436970 		.string	"KCipher_vt_v1"
- 7482      6865725F 
- 7482      76745F76 
- 7482      3100
- 7483              	.LASF306:
- 7484 0d25 7263496E 		.string	"rcIncorrect"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 172
-
-
- 7484      636F7272 
- 7484      65637400 
- 7485              	.LASF145:
- 7486 0d31 72634675 		.string	"rcFunctParam"
- 7486      6E637450 
- 7486      6172616D 
- 7486      00
- 7487              	.LASF366:
- 7488 0d3e 4B436970 		.string	"KCipherVecAesNiEncrypt"
- 7488      68657256 
- 7488      65634165 
- 7488      734E6945 
- 7488      6E637279 
- 7489              	.LASF38:
- 7490 0d55 656E6372 		.string	"encrypt_key"
- 7490      7970745F 
- 7490      6B657900 
- 7491              	.LASF270:
- 7492 0d61 7263436F 		.string	"rcConstraint"
- 7492      6E737472 
- 7492      61696E74 
- 7492      00
- 7493              	.LASF216:
- 7494 0d6e 72634672 		.string	"rcFreezing"
- 7494      65657A69 
- 7494      6E6700
- 7495              	.LASF296:
- 7496 0d79 7263556E 		.string	"rcUnknown"
- 7496      6B6E6F77 
- 7496      6E00
- 7497              	.LASF135:
- 7498 0d83 72634375 		.string	"rcCursor"
- 7498      72736F72 
- 7498      00
- 7499              	.LASF293:
- 7500 0d8c 52435374 		.string	"RCState"
- 7500      61746500 
- 7501              	.LASF81:
- 7502 0d94 4B426C6F 		.string	"KBlockCipherByte"
- 7502      636B4369 
- 7502      70686572 
- 7502      42797465 
- 7502      00
- 7503              	.LASF141:
- 7504 0da5 72634669 		.string	"rcFileDesc"
- 7504      6C654465 
- 7504      736300
- 7505              	.LASF79:
- 7506 0db0 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 7506      636B4369 
- 7506      70686572 
- 7506      42797465 
- 7506      5F76745F 
- 7507              	.LASF333:
- 7508 0dc7 72634967 		.string	"rcIgnored"
- 7508      6E6F7265 
- 7508      6400
-
GAS LISTING /tmp/ccWvEaWW.s 			page 173
-
-
- 7509              	.LASF90:
- 7510 0dd1 655F6976 		.string	"e_ivec"
- 7510      656300
- 7511              	.LASF191:
- 7512 0dd8 72635265 		.string	"rcReleasing"
- 7512      6C656173 
- 7512      696E6700 
- 7513              	.LASF114:
- 7514 0de4 72634B46 		.string	"rcKFG"
- 7514      4700
- 7515              	.LASF272:
- 7516 0dea 72634D65 		.string	"rcMessage"
- 7516      73736167 
- 7516      6500
- 7517              	.LASF219:
- 7518 0df4 7263466F 		.string	"rcFormatting"
- 7518      726D6174 
- 7518      74696E67 
- 7518      00
- 7519              	.LASF112:
- 7520 0e01 72635352 		.string	"rcSRA"
- 7520      4100
- 7521              	.LASF288:
- 7522 0e07 7263456E 		.string	"rcEnvironment"
- 7522      7669726F 
- 7522      6E6D656E 
- 7522      7400
- 7523              	.LASF74:
- 7524 0e15 6C6F6E67 		.string	"long long unsigned int"
- 7524      206C6F6E 
- 7524      6720756E 
- 7524      7369676E 
- 7524      65642069 
- 7525              	.LASF50:
- 7526 0e2c 64657374 		.string	"destroy"
- 7526      726F7900 
- 7527              	.LASF170:
- 7528 0e34 7263546F 		.string	"rcToken"
- 7528      6B656E00 
- 7529              	.LASF230:
- 7530 0e3c 7263546F 		.string	"rcTokenizing"
- 7530      6B656E69 
- 7530      7A696E67 
- 7530      00
- 7531              	.LASF16:
- 7532 0e49 4442475F 		.string	"DBG_REF"
- 7532      52454600 
- 7533              	.LASF372:
- 7534 0e51 4B436970 		.string	"KCipherVecAesNiEncryptCbc"
- 7534      68657256 
- 7534      65634165 
- 7534      734E6945 
- 7534      6E637279 
- 7535              	.LASF211:
- 7536 0e6b 72635772 		.string	"rcWriting"
- 7536      6974696E 
- 7536      6700
-
GAS LISTING /tmp/ccWvEaWW.s 			page 174
-
-
- 7537              	.LASF187:
- 7538 0e75 7263416C 		.string	"rcAllocating"
- 7538      6C6F6361 
- 7538      74696E67 
- 7538      00
- 7539              	.LASF173:
- 7540 0e82 72635479 		.string	"rcType"
- 7540      706500
- 7541              	.LASF274:
- 7542 0e89 72635265 		.string	"rcResources"
- 7542      736F7572 
- 7542      63657300 
- 7543              	.LASF155:
- 7544 0e95 72634E61 		.string	"rcNamelist"
- 7544      6D656C69 
- 7544      737400
- 7545              	.LASF339:
- 7546 0ea0 7263556E 		.string	"rcUndefined"
- 7546      64656669 
- 7546      6E656400 
- 7547              	.LASF91:
- 7548 0eac 645F6976 		.string	"d_ivec"
- 7548      656300
- 7549              	.LASF307:
- 7550 0eb3 7263496E 		.string	"rcInconsistent"
- 7550      636F6E73 
- 7550      69737465 
- 7550      6E7400
- 7551              	.LASF252:
- 7552 0ec2 72635265 		.string	"rcRetrieving"
- 7552      74726965 
- 7552      76696E67 
- 7552      00
- 7553              	.LASF58:
- 7554 0ecf 64656372 		.string	"decrypt"
- 7554      79707400 
- 7555              	.LASF49:
- 7556 0ed7 76657273 		.string	"version"
- 7556      696F6E00 
- 7557              	.LASF264:
- 7558 0edf 72634E61 		.string	"rcName"
- 7558      6D6500
- 7559              	.LASF54:
- 7560 0ee6 7365745F 		.string	"set_decrypt_ivec"
- 7560      64656372 
- 7560      7970745F 
- 7560      69766563 
- 7560      00
- 7561              	.LASF301:
- 7562 0ef7 72634E75 		.string	"rcNull"
- 7562      6C6C00
- 7563              	.LASF223:
- 7564 0efe 7263456E 		.string	"rcEncoding"
- 7564      636F6469 
- 7564      6E6700
- 7565              	.LASF142:
- 7566 0f09 72634669 		.string	"rcFileFormat"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 175
-
-
- 7566      6C65466F 
- 7566      726D6174 
- 7566      00
- 7567              	.LASF179:
- 7568 0f16 7263456E 		.string	"rcEncryptionKey"
- 7568      63727970 
- 7568      74696F6E 
- 7568      4B657900 
- 7569              	.LASF244:
- 7570 0f26 7263496E 		.string	"rcInflating"
- 7570      666C6174 
- 7570      696E6700 
- 7571              	.LASF326:
- 7572 0f32 72634E6F 		.string	"rcNoPerm"
- 7572      5065726D 
- 7572      00
- 7573              	.LASF214:
- 7574 0f3b 72635265 		.string	"rcResetting"
- 7574      73657474 
- 7574      696E6700 
- 7575              	.LASF36:
- 7576 0f47 626C6F63 		.string	"block_size"
- 7576      6B5F7369 
- 7576      7A6500
- 7577              	.LASF162:
- 7578 0f52 72635257 		.string	"rcRWLock"
- 7578      4C6F636B 
- 7578      00
- 7579              	.LASF193:
- 7580 0f5b 72634C69 		.string	"rcListing"
- 7580      7374696E 
- 7580      6700
- 7581              	.LASF63:
- 7582 0f65 656E6372 		.string	"encrypt_pcbc"
- 7582      7970745F 
- 7582      70636263 
- 7582      00
- 7583              	.LASF32:
- 7584 0f72 4B526566 		.string	"KRefcount"
- 7584      636F756E 
- 7584      7400
- 7585              	.LASF143:
- 7586 0f7c 72634675 		.string	"rcFunction"
- 7586      6E637469 
- 7586      6F6E00
- 7587              	.LASF88:
- 7588 0f87 655F6B65 		.string	"e_key"
- 7588      7900
- 7589              	.LASF299:
- 7590 0f8d 7263556E 		.string	"rcUnrecognized"
- 7590      7265636F 
- 7590      676E697A 
- 7590      656400
- 7591              	.LASF86:
- 7592 0f9c 6E756D62 		.string	"number_of_rounds"
- 7592      65725F6F 
- 7592      665F726F 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 176
-
-
- 7592      756E6473 
- 7592      00
- 7593              	.LASF115:
- 7594 0fad 7263416C 		.string	"rcAlign"
- 7594      69676E00 
- 7595              	.LASF178:
- 7596 0fb5 72635072 		.string	"rcProduction"
- 7596      6F647563 
- 7596      74696F6E 
- 7596      00
- 7597              	.LASF168:
- 7598 0fc2 72635468 		.string	"rcThread"
- 7598      72656164 
- 7598      00
- 7599              	.LASF37:
- 7600 0fcb 6E616D65 		.string	"name"
- 7600      00
- 7601              	.LASF397:
- 7602 0fd0 4B436970 		.string	"KCipherVecAesNiClassName"
- 7602      68657256 
- 7602      65634165 
- 7602      734E6943 
- 7602      6C617373 
- 7603              	.LASF388:
- 7604 0fe9 6E756C6C 		.string	"null"
- 7604      00
- 7605              	.LASF52:
- 7606 0fee 7365745F 		.string	"set_decrypt_key"
- 7606      64656372 
- 7606      7970745F 
- 7606      6B657900 
- 7607              	.LASF370:
- 7608 0ffe 706F7574 		.string	"pout"
- 7608      00
- 7609              	.LASF33:
- 7610 1003 4B436970 		.string	"KCipher"
- 7610      68657200 
- 7611              	.LASF78:
- 7612 100b 4B426C6F 		.string	"KBlockCipher_vt"
- 7612      636B4369 
- 7612      70686572 
- 7612      5F767400 
- 7613              	.LASF285:
- 7614 101b 72635365 		.string	"rcSeed"
- 7614      656400
- 7615              	.LASF242:
- 7616 1022 72634C6F 		.string	"rcLoading"
- 7616      6164696E 
- 7616      6700
- 7617              	.LASF1:
- 7618 102c 73686F72 		.string	"short int"
- 7618      7420696E 
- 7618      7400
- 7619              	.LASF360:
- 7620 1036 66756E63 		.string	"func"
- 7620      00
- 7621              	.LASF377:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 177
-
-
- 7622 103b 4B436970 		.string	"KCipherVecAesNiEncryptCfb"
- 7622      68657256 
- 7622      65634165 
- 7622      734E6945 
- 7622      6E637279 
- 7623              	.LASF335:
- 7624 1055 72634C61 		.string	"rcLastState_v1_0"
- 7624      73745374 
- 7624      6174655F 
- 7624      76315F30 
- 7624      00
- 7625              	.LASF344:
- 7626 1066 72634C61 		.string	"rcLastState_v1_1"
- 7626      73745374 
- 7626      6174655F 
- 7626      76315F31 
- 7626      00
- 7627              	.LASF109:
- 7628 1077 72635644 		.string	"rcVDB"
- 7628      4200
- 7629              	.LASF92:
- 7630 107d 43697068 		.string	"CipherNull"
- 7630      65724E75 
- 7630      6C6C00
- 7631              	.LASF51:
- 7632 1088 7365745F 		.string	"set_encrypt_key"
- 7632      656E6372 
- 7632      7970745F 
- 7632      6B657900 
- 7633              	.LASF107:
- 7634 1098 72635846 		.string	"rcXF"
- 7634      00
- 7635              	.LASF71:
- 7636 109d 4B436970 		.string	"KCipher_ptr"
- 7636      6865725F 
- 7636      70747200 
- 7637              	.LASF45:
- 7638 10a9 4B436970 		.string	"KCipherVecAesNi"
- 7638      68657256 
- 7638      65634165 
- 7638      734E6900 
- 7639              	.LASF190:
- 7640 10b9 72634465 		.string	"rcDestroying"
- 7640      7374726F 
- 7640      79696E67 
- 7640      00
- 7641              	.LASF295:
- 7642 10c6 7263446F 		.string	"rcDone"
- 7642      6E6500
- 7643              	.LASF125:
- 7644 10cd 7263546F 		.string	"rcToc"
- 7644      6300
- 7645              	.LASF43:
- 7646 10d3 64656372 		.string	"decrypt_counter_func"
- 7646      7970745F 
- 7646      636F756E 
- 7646      7465725F 
-
GAS LISTING /tmp/ccWvEaWW.s 			page 178
-
-
- 7646      66756E63 
- 7647              	.LASF199:
- 7648 10e8 7263416C 		.string	"rcAliasing"
- 7648      69617369 
- 7648      6E6700
- 7649              	.LASF160:
- 7650 10f3 72635072 		.string	"rcProcess"
- 7650      6F636573 
- 7650      7300
- 7651              	.LASF258:
- 7652 10fd 72634E6F 		.string	"rcNoObj"
- 7652      4F626A00 
- 7653              	.LASF297:
- 7654 1105 7263556E 		.string	"rcUnsupported"
- 7654      73757070 
- 7654      6F727465 
- 7654      6400
- 7655              	.LASF373:
- 7656 1113 4B436970 		.string	"KCipherVecAesNiDecryptCbc"
- 7656      68657256 
- 7656      65634165 
- 7656      734E6944 
- 7656      65637279 
- 7657              	.LASF361:
- 7658 112d 4B436970 		.string	"KCipherVecAesNiSetDecryptCounterFunc"
- 7658      68657256 
- 7658      65634165 
- 7658      734E6953 
- 7658      65744465 
- 7659              	.LASF236:
- 7660 1152 72634465 		.string	"rcDetaching"
- 7660      74616368 
- 7660      696E6700 
- 7661              	.LASF133:
- 7662 115e 7263436F 		.string	"rcColumn"
- 7662      6C756D6E 
- 7662      00
- 7663              	.LASF42:
- 7664 1167 656E6372 		.string	"encrypt_counter_func"
- 7664      7970745F 
- 7664      636F756E 
- 7664      7465725F 
- 7664      66756E63 
- 7665              	.LASF298:
- 7666 117c 7263556E 		.string	"rcUnexpected"
- 7666      65787065 
- 7666      63746564 
- 7666      00
- 7667              	.LASF62:
- 7668 1189 64656372 		.string	"decrypt_cbc"
- 7668      7970745F 
- 7668      63626300 
- 7669              	.LASF6:
- 7670 1195 75696E74 		.string	"uint32_t"
- 7670      33325F74 
- 7670      00
- 7671              	.LASF119:
-
GAS LISTING /tmp/ccWvEaWW.s 			page 179
-
-
- 7672 119e 72635646 		.string	"rcVFS"
- 7672      5300
- 7673              	.LASF25:
- 7674 11a4 4442475F 		.string	"DBG_KRYPTO"
- 7674      4B525950 
- 7674      544F00
- 7675              	.LASF343:
- 7676 11af 72635772 		.string	"rcWrongType"
- 7676      6F6E6754 
- 7676      79706500 
- 7677              	.LASF278:
- 7678 11bb 72634C69 		.string	"rcLibrary"
- 7678      62726172 
- 7678      7900
- 7679              	.LASF311:
- 7680 11c5 72634361 		.string	"rcCanceled"
- 7680      6E63656C 
- 7680      656400
- 7681              	.LASF182:
- 7682 11d0 72634461 		.string	"rcData"
- 7682      746100
- 7683              	.LASF146:
- 7684 11d7 72634865 		.string	"rcHeader"
- 7684      61646572 
- 7684      00
- 7685              	.LASF4:
- 7686 11e0 73686F72 		.string	"short unsigned int"
- 7686      7420756E 
- 7686      7369676E 
- 7686      65642069 
- 7686      6E7400
- 7687              	.LASF136:
- 7688 11f3 72634461 		.string	"rcDatabase"
- 7688      74616261 
- 7688      736500
- 7689              	.LASF61:
- 7690 11fe 656E6372 		.string	"encrypt_cbc"
- 7690      7970745F 
- 7690      63626300 
- 7691              	.LASF212:
- 7692 120a 7263436F 		.string	"rcCommitting"
- 7692      6D6D6974 
- 7692      74696E67 
- 7692      00
- 7693              	.LASF240:
- 7694 1217 7263436C 		.string	"rcClassifying"
- 7694      61737369 
- 7694      6679696E 
- 7694      6700
- 7695              	.LASF171:
- 7696 1225 72635472 		.string	"rcTree"
- 7696      656500
- 7697              	.LASF41:
- 7698 122c 64656372 		.string	"decrypt_ivec"
- 7698      7970745F 
- 7698      69766563 
- 7698      00
-
GAS LISTING /tmp/ccWvEaWW.s 			page 180
-
-
- 7699              	.LASF30:
- 7700 1239 4442475F 		.string	"DBG_ARGS"
- 7700      41524753 
- 7700      00
- 7701              	.LASF200:
- 7702 1242 72635365 		.string	"rcSelecting"
- 7702      6C656374 
- 7702      696E6700 
- 7703              	.LASF101:
- 7704 124e 72635465 		.string	"rcText"
- 7704      787400
- 7705              	.LASF337:
- 7706 1255 72634F75 		.string	"rcOutoforder"
- 7706      746F666F 
- 7706      72646572 
- 7706      00
- 7707              	.LASF304:
- 7708 1262 7263496E 		.string	"rcInvalid"
- 7708      76616C69 
- 7708      6400
- 7709              	.LASF251:
- 7710 126c 7263496E 		.string	"rcInitializing"
- 7710      69746961 
- 7710      6C697A69 
- 7710      6E6700
- 7711              	.LASF130:
- 7712 127b 7263426C 		.string	"rcBlob"
- 7712      6F6200
- 7713              	.LASF53:
- 7714 1282 7365745F 		.string	"set_encrypt_ivec"
- 7714      656E6372 
- 7714      7970745F 
- 7714      69766563 
- 7714      00
- 7715              	.LASF374:
- 7716 1293 74656D70 		.string	"temp"
- 7716      00
- 7717              	.LASF228:
- 7718 1298 72635265 		.string	"rcReindexing"
- 7718      696E6465 
- 7718      78696E67 
- 7718      00
- 7719              	.LASF123:
- 7720 12a5 72634E6F 		.string	"rcNoTarg"
- 7720      54617267 
- 7720      00
- 7721              	.LASF305:
- 7722 12ae 7263436F 		.string	"rcCorrupt"
- 7722      72727570 
- 7722      7400
- 7723              	.LASF334:
- 7724 12b8 72634F75 		.string	"rcOutofrange"
- 7724      746F6672 
- 7724      616E6765 
- 7724      00
- 7725              	.LASF163:
- 7726 12c5 72635363 		.string	"rcSchema"
-
GAS LISTING /tmp/ccWvEaWW.s 			page 181
-
-
- 7726      68656D61 
- 7726      00
- 7727              	.LASF159:
- 7728 12ce 72635061 		.string	"rcPath"
- 7728      746800
- 7729              	.LASF210:
- 7730 12d5 72635265 		.string	"rcReading"
- 7730      6164696E 
- 7730      6700
- 7731              	.LASF80:
- 7732 12df 6B65795F 		.string	"key_size"
- 7732      73697A65 
- 7732      00
- 7733              	.LASF342:
- 7734 12e8 72634E6F 		.string	"rcNotAvailable"
- 7734      74417661 
- 7734      696C6162 
- 7734      6C6500
- 7735              	.LASF375:
- 7736 12f7 4B436970 		.string	"KCipherVecAesNiEncryptPcbc"
- 7736      68657256 
- 7736      65634165 
- 7736      734E6945 
- 7736      6E637279 
- 7737              	.LASF300:
- 7738 1312 7263416D 		.string	"rcAmbiguous"
- 7738      62696775 
- 7738      6F757300 
- 7739              		.ident	"GCC: (GNU) 4.4.2"
- 7740              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccWvEaWW.s 			page 182
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 cipher-vec.c
-     /tmp/ccWvEaWW.s:14     .rodata:0000000000000000 KCipherVecAesNiClassName
-     /tmp/ccWvEaWW.s:18     .text:0000000000000000 CipherVecIn
-     /tmp/ccWvEaWW.s:49     .text:000000000000001f CipherVecOut
-     /tmp/ccWvEaWW.s:81     .text:0000000000000048 KCipherVecAesNiDestroy
-     /tmp/ccWvEaWW.s:129    .text:0000000000000082 KCipherVecAesNiSetEncryptKey
-     /tmp/ccWvEaWW.s:2006   .rodata:0000000000000330 __PRETTY_FUNCTION__.7296
-     /tmp/ccWvEaWW.s:2011   .rodata:0000000000000350 __func__.7298
-     /tmp/ccWvEaWW.s:214    .text:000000000000016c KCipherVecAesNiSetDecryptKey
-     /tmp/ccWvEaWW.s:1996   .rodata:00000000000002f0 __PRETTY_FUNCTION__.7320
-     /tmp/ccWvEaWW.s:2001   .rodata:0000000000000310 __func__.7322
-     /tmp/ccWvEaWW.s:303    .text:0000000000000256 KCipherVecAesNiSetEncryptIvec
-     /tmp/ccWvEaWW.s:1991   .rodata:00000000000002d0 __PRETTY_FUNCTION__.7342
-     /tmp/ccWvEaWW.s:354    .text:00000000000002d9 KCipherVecAesNiSetDecryptIvec
-     /tmp/ccWvEaWW.s:1986   .rodata:00000000000002b0 __PRETTY_FUNCTION__.7355
-     /tmp/ccWvEaWW.s:409    .text:000000000000035c KCipherVecAesNiSetEncryptCounterFunc
-     /tmp/ccWvEaWW.s:1981   .rodata:0000000000000280 __PRETTY_FUNCTION__.7368
-     /tmp/ccWvEaWW.s:454    .text:00000000000003cb KCipherVecAesNiSetDecryptCounterFunc
-     /tmp/ccWvEaWW.s:1976   .rodata:0000000000000240 __PRETTY_FUNCTION__.7378
-     /tmp/ccWvEaWW.s:499    .text:000000000000043a KCipherVecAesNiEncryptV1
-     /tmp/ccWvEaWW.s:527    .text:0000000000000461 KCipherVecAesNiDecryptV1
-     /tmp/ccWvEaWW.s:555    .text:0000000000000488 KCipherVecAesNiEncryptV1Int
-     /tmp/ccWvEaWW.s:595    .text:00000000000004db KCipherVecAesNiDecryptV1Int
-     /tmp/ccWvEaWW.s:635    .text:000000000000052e KCipherVecAesNiEncrypt
-     /tmp/ccWvEaWW.s:1966   .rodata:00000000000001f0 __func__.7428
-     /tmp/ccWvEaWW.s:684    .text:0000000000000592 KCipherVecAesNiDecrypt
-     /tmp/ccWvEaWW.s:1956   .rodata:00000000000001b0 __func__.7444
-     /tmp/ccWvEaWW.s:735    .text:00000000000005fd KCipherVecAesNiEncryptEcb
-     /tmp/ccWvEaWW.s:791    .text:000000000000066d KCipherVecAesNiDecryptEcb
-     /tmp/ccWvEaWW.s:847    .text:00000000000006dd KCipherVecAesNiEncryptCbc
-     /tmp/ccWvEaWW.s:929    .text:00000000000007ab KCipherVecAesNiDecryptCbc
-     /tmp/ccWvEaWW.s:1015   .text:000000000000087f KCipherVecAesNiEncryptPcbc
-     /tmp/ccWvEaWW.s:1102   .text:000000000000095c KCipherVecAesNiDecryptPcbc
-     /tmp/ccWvEaWW.s:1184   .text:0000000000000a22 KCipherVecAesNiEncryptCfb
-     /tmp/ccWvEaWW.s:1264   .text:0000000000000ae8 KCipherVecAesNiDecryptCfb
-     /tmp/ccWvEaWW.s:1344   .text:0000000000000bae KCipherVecAesNiEncryptOfb
-     /tmp/ccWvEaWW.s:1424   .text:0000000000000c74 KCipherVecAesNiDecryptOfb
-     /tmp/ccWvEaWW.s:1459   .text:0000000000000cad KCipherVecAesNiEncryptCtr
-     /tmp/ccWvEaWW.s:1946   .rodata:0000000000000170 __func__.7678
-     /tmp/ccWvEaWW.s:1488   .text:0000000000000ce3 KCipherVecAesNiDecryptCtr
-     /tmp/ccWvEaWW.s:1936   .rodata:0000000000000130 __func__.7688
-     /tmp/ccWvEaWW.s:1520   .data.rel.local:0000000000000000 KCipherVecAesNi_vt_v1
-     /tmp/ccWvEaWW.s:1546   .text:0000000000000d19 KCipherVecAesNiAllocAes
-     /tmp/ccWvEaWW.s:1926   .rodata:00000000000000f0 __func__.7698
-     /tmp/ccWvEaWW.s:1588   .text:0000000000000d74 KCipherVecAesNiInitAes
-     /tmp/ccWvEaWW.s:1649   .text:0000000000000e12 KCipherVecAesNiAllocNull
-     /tmp/ccWvEaWW.s:1916   .rodata:00000000000000b0 __func__.7725
-     /tmp/ccWvEaWW.s:1691   .text:0000000000000e6d KCipherVecAesNiInitNull
-     /tmp/ccWvEaWW.s:1753   .text:0000000000000f02 KCipherVecAesNiMake
-     /tmp/ccWvEaWW.s:1906   .rodata:0000000000000070 __func__.7753
-     /tmp/ccWvEaWW.s:1911   .rodata:0000000000000090 __PRETTY_FUNCTION__.7752
-     /tmp/ccWvEaWW.s:1921   .rodata:00000000000000d0 __PRETTY_FUNCTION__.7724
-     /tmp/ccWvEaWW.s:1931   .rodata:0000000000000110 __PRETTY_FUNCTION__.7697
-     /tmp/ccWvEaWW.s:1941   .rodata:0000000000000150 __PRETTY_FUNCTION__.7687
-     /tmp/ccWvEaWW.s:1951   .rodata:0000000000000190 __PRETTY_FUNCTION__.7677
-     /tmp/ccWvEaWW.s:1961   .rodata:00000000000001d0 __PRETTY_FUNCTION__.7443
-
GAS LISTING /tmp/ccWvEaWW.s 			page 183
-
-
-     /tmp/ccWvEaWW.s:1971   .rodata:0000000000000210 __PRETTY_FUNCTION__.7427
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-KCipherDestroy
-free
-__assert_fail
-SetRCFileFuncLine
-memcpy
-calloc
-KCipherInit
-KNullBlockCipherVecAesNiMake
-KAESBlockCipherVecAesNiMake
diff --git a/libs/krypto/cipher-vec.c b/libs/krypto/cipher-vec.c
deleted file mode 100644
index 6b61c9e..0000000
--- a/libs/krypto/cipher-vec.c
+++ /dev/null
@@ -1,808 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-/* CIPHER_IMPL and BLOCKCIPHER_IMPL are defined in this header */
-#include "ncbi-priv.h"
-/* CIPHER_IMPL is used in this header */
-#include "cipher-impl.h"
-/* BLOCKCIPHER_IMPL is used in this header */
-#include "blockcipher-impl.h"
-
-#include "aes-ncbi-priv.h"
-#include "null-ncbi-priv.h"
-#include "cipher-priv.h"
-#include "blockcipher-priv.h"
-
-#include <krypto/cipher.h>
-#include <krypto/ciphermgr.h>
-
-#include <klib/defs.h>
-#include <klib/refcount.h>
-#include <klib/out.h>
-#include <klib/rc.h>
-
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-
-const char CMEMBER(ClassName)[] = CLASS_STRING(CIPHER_IMPL);
-
-
-
-struct CIPHER_IMPL
-{
-    KCipher dad;
-    const KBlockCipherVec * block_cipher;
-};
-
-typedef union CipherVec_u
-{
-    CipherVec   vec;
-    CipherBlock block;
-} CipherVec_u;
-
-/*
- * Read a blocks worth of bytes into an AESState
- */
-static __inline__ CipherVec CipherVecIn (const void * cvin)
-{
-#if USE_VEC_REG
-    register CipherVec cv;
-
-    __asm__ (
-        "movdqu (%[a]),%[s]" : [s] "=x" (cv) : [a] "D" (cvin)
-        );
-
-    return cv;
-#else
-    CipherVec_u u;
-
-    memmove (&u.block, cvin, sizeof (u));
-    return u.vec;
-#endif
-}
-
-
-
-/*
- * Write a block's worth of bytes out from an AESState
- */
-static __inline__ void CipherVecOut (const CipherVec cv, void * cvout)
-{
-#if USE_VEC_REG
-    register CipherVec rcv = cv;
-
-    __asm__ (
-        "movdqu %[s],(%[a])" : : [s] "x" (rcv), [a] "D" (cvout)
-        );
-#else
-    CipherVec lcv = cv;
-    memmove (cvout, &lcv, sizeof (lcv));
-#endif
-}
-
-
-static rc_t CMEMBER(Destroy) (CIPHER_IMPL * self)
-{
-    rc_t rc = 0;
-
-    if (self)
-    {
-        rc =  KCipherDestroy (&self->dad);
-        free (self);
-    }
-    return rc;
-}
-
-
-static rc_t CMEMBER(SetEncryptKey)(CIPHER_IMPL * self,
-                                  const char * user_key,
-                                  uint32_t user_key_bits)
-{
-    rc_t rc = 0;
-
-    assert (self);
-    assert (user_key);
-    assert (user_key_bits);
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        self->block_cipher->v1.set_encrypt_key (self->dad.encrypt_key, user_key,
-                                                user_key_bits);
-        break;
-    }
-    return rc;
-}
-
-
-static rc_t CMEMBER(SetDecryptKey)(CIPHER_IMPL * self,
-                                  const char * user_key,
-                                  uint32_t user_key_bits)
-{
-    rc_t rc = 0;
-
-    assert (self);
-    assert (user_key);
-    assert (user_key_bits);
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        self->block_cipher->v1.set_decrypt_key (self->dad.decrypt_key, user_key,
-                                                    user_key_bits);
-        break;
-    }
-    return rc;
-}
-
-
-static
-rc_t CMEMBER(SetEncryptIvec) (CIPHER_IMPL * self,
-                             const void * ivec)
-{
-    assert (self);
-    assert (ivec);
-
-    memcpy (self->dad.encrypt_ivec, ivec, self->dad.block_size);
-
-    return 0;
-}
-
-
-static
-rc_t CMEMBER(SetDecryptIvec) (CIPHER_IMPL * self,
-                             const void * ivec)
-{
-    assert (self);
-    assert (ivec);
-
-    memcpy (self->dad.decrypt_ivec, ivec, self->dad.block_size);
-
-    return 0;
-}
-
-
-static
-rc_t CMEMBER(SetEncryptCounterFunc) (CIPHER_IMPL * self,
-                                    cipher_ctr_func func)
-{
-    assert (self);
-    assert (func);
-
-    self->dad.encrypt_counter_func = func;
-
-    return 0;
-}
-
-
-static
-rc_t CMEMBER(SetDecryptCounterFunc) (CIPHER_IMPL * self,
-                                    cipher_ctr_func func)
-{
-    assert (self);
-    assert (func);
-
-    self->dad.decrypt_counter_func = func;
-
-    return 0;
-}
-
-
-static __inline__ CipherVec CMEMBER(EncryptV1)(const CIPHER_IMPL * self,
-                                              register CipherVec cv)
-{
-    return self->block_cipher->v1.encrypt (cv, self->dad.encrypt_key);
-}
-
-
-static __inline__ CipherVec  CMEMBER(DecryptV1)(const CIPHER_IMPL * self,
-                                              register CipherVec cv)
-{
-    return self->block_cipher->v1.decrypt (cv, self->dad.decrypt_key);
-}
-
-
-static __inline__ rc_t CMEMBER(EncryptV1Int)(const CIPHER_IMPL * self,
-                                            const void * in, void * out)
-{
-    CipherVec cv;
-
-    cv = CipherVecIn(in);
-    cv = CMEMBER(EncryptV1)(self, cv);
-    CipherVecOut(cv, out);
-    return 0;
-}
-
-
-static __inline__ rc_t CMEMBER(DecryptV1Int)(const CIPHER_IMPL * self,
-                                            const void * in, void * out)
-{
-    CipherVec cv;
-
-    cv = CipherVecIn(in);
-    cv = CMEMBER(DecryptV1)(self, cv);
-    CipherVecOut(cv, out);
-    return 0;
-}
-
-
-static rc_t CMEMBER(Encrypt) (const CIPHER_IMPL * self, const void * in, void * out)
-{
-    rc_t rc;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        rc = CMEMBER(EncryptV1Int)(self, in, out);
-        break;
-    }
-
-    return rc;
-}
-
-
-static
-rc_t CMEMBER(Decrypt) (const CIPHER_IMPL * self, const void * in, void * out)
-{
-    rc_t rc = 0;
-
-    switch (self->block_cipher->version.maj)
-    {
-    default:
-        rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
-        break;
-
-    case 1:
-        rc = CMEMBER(DecryptV1Int)(self, in, out);
-        break;
-    }
-
-    return rc;
-}
-
-
-/* ====================
- * longer runs of multiple blocks.
- *
- * The algorithms are well defined and standard in most cases
- *
- * These aremore or elss equivalent to class functions as they do not depend upon
- * the operation of the cipher and the algorithms are independent of anything about
- * the cipher other than its block size.
- *
- * PT: plain text block
- * CT: cipher text block
- * EK: encryption key
- * DK: decryption key (might be sthe same as EK)
- * ENC: encrypt cipher function on a block using a key
- * DEC: decrypt cipher function on a block using a key
- * IV: initialization vector - used as feedback for chaining
- * N:  number used once (nonce)
- * FB: feedback is the next IV in a chained/feedback mode
- */
-
-
-/* -----
- * NOTE:
- * 'in' can be the same as 'out' but other overlaps are dangers as a block at a
- * time is written. The code does not look for overlaps at this point.
- */
-
-/* ----------
- * Electronic Code Book - simple cipher with no chaining feedback  just iterate
- * simple encrypt/decrypt with the plain, text, cipher text and key/
- *
- * CT = ENC (PT,EK)
- * PT = DEC (CT,DK)
- */
-
-/* -----
- * NOTE: currently an implmentation detail limits us to 8192 bit cipher block
- * size.  Changing MAX_BLOCK_SIZE in cipher.c can up that limit without 
- * causing any other compatibility issues. 
- *
- * Two local byte arrays are defined on the stack of 1024 bytes or 8192 bits.
- */
-static
-rc_t CMEMBER(EncryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        CMEMBER(EncryptV1Int)(self, pin, pout);
-    }
-    return 0;
-}
-
-
-static
-rc_t CMEMBER(DecryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        CMEMBER(DecryptV1Int)(self, pin, pout);
-    }
-
-    return 0;
-}
-
-
-/* ----------
- * Cipher-Block Chaining
- * CT = (FB = ENC (PT^IV, EK))
- * PT = DEC ((FB = CT), DK)
- */
-static
-rc_t CMEMBER(EncryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-    CipherVec cv;
-    CipherVec ivec;
-    const uint8_t * pin;
-    uint8_t * pout;
-
-#if 0
-    ivec = *(const CipherVec*)self->dad.encrypt_ivec;
-#else
-    ivec = CipherVecIn (self->dad.encrypt_ivec);
-#endif
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        cv = CipherVecIn (pin);
-        cv ^= ivec;
-        ivec = CMEMBER(EncryptV1)(self, cv);
-        CipherVecOut (ivec, pout);
-    }
-
-#if 0
-    *(CipherVec*)self->dad.encrypt_ivec = ivec;
-#else
-    CipherVecOut (ivec, self->dad.encrypt_ivec);
-#endif
-
-    return 0;
-}    
-
-
-static
-rc_t CMEMBER(DecryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-    CipherVec cv;
-    CipherVec ivec;
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    ivec = CipherVecIn (self->dad.decrypt_ivec);
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        CipherVec temp;
-
-        cv = CipherVecIn (pin);
-#if 0
-        temp = cv;
-        temp = CMEMBER(DecryptV1)(self, temp);
-#else
-        temp = CMEMBER(DecryptV1)(self, cv);
-#endif
-        temp ^= ivec;
-        CipherVecOut (temp, pout);
-        ivec = cv;
-    }
-
-    *(CipherVec*)self->dad.decrypt_ivec = ivec;
-    return 0;
-}
-
-
-/* ----------
- * Propagating cipher-block chaining
- * FB = PT ^ (CT = ENC ((PT^IV), EK))
- * FB = CT ^ (PT = DEC (CT,DK) ^ IV)
- */
-static
-rc_t CMEMBER(EncryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-#if 1
-    CipherVec cv;
-    CipherVec ivec;
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    ivec = *(const CipherVec*)self->dad.encrypt_ivec;
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        CipherVec temp;
-
-        cv = CipherVecIn (pin);
-        temp = cv ^ ivec;
-        temp = CMEMBER(EncryptV1)(self, temp); 
-        ivec = cv ^ temp;
-        CipherVecOut (temp, pout);
-    }
-
-    *(CipherVec*)self->dad.encrypt_ivec = ivec;
-
-    return 0;
-#else
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-#endif
-}
-
-
-static
-rc_t CMEMBER(DecryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-#if 1
-    CipherVec cv;
-    CipherVec ivec;
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    ivec = *(const CipherVec*)self->dad.encrypt_ivec;
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        CipherVec temp;
-
-        cv = CipherVecIn (pin);
-        temp = CMEMBER(DecryptV1)(self, cv);
-        ivec ^= temp;
-        CipherVecOut (temp, pout);
-    }
-
-    *(CipherVec*)self->dad.encrypt_ivec = ivec;
-
-    return 0;
-#else
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-#endif
-}
-
-
-/* ----------
- * Cipher Feedback
- * CT = (FB = PT) ^ ENC (IV, EK))
- * PT = (FB = CT) ^ DEC (IV, DK)
- */
-static
-rc_t CMEMBER(EncryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-#if 1
-    CipherVec cv;
-    CipherVec ivec;
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    ivec = *(const CipherVec*)self->dad.encrypt_ivec;
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        ivec = CMEMBER(EncryptV1)(self, ivec); 
-        cv = CipherVecIn (pin);
-        ivec ^= cv;
-        CipherVecOut (ivec, pout);
-    }
-
-    *(CipherVec*)self->dad.encrypt_ivec = ivec;
-
-    return 0;
-#else
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-#endif
-}
-
-
-static
-rc_t CMEMBER(DecryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-#if 1
-    CipherVec cv;
-    CipherVec ivec;
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    ivec = *(const CipherVec*)self->dad.encrypt_ivec;
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        cv = CMEMBER(EncryptV1)(self, ivec); 
-        ivec = CipherVecIn (pin);
-        cv ^= ivec;
-        CipherVecOut (cv, pout);
-    }
-
-    *(CipherVec*)self->dad.encrypt_ivec = ivec;
-
-    return 0;
-#else
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-#endif
-}
-
-
-/* ----------
- * Output Feedback
- * CT = PT ^ (FB = ENC (IV, EK))
- * PT = CT ^ (FB = DEC (IV, DK))
- */
-static
-rc_t CMEMBER(EncryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-#if 1
-    CipherVec cv;
-    CipherVec ivec;
-    const uint8_t * pin;
-    uint8_t * pout;
-
-    ivec = *(const CipherVec*)self->dad.encrypt_ivec;
-
-    for ((pin = in), (pout = out);
-         block_count --; 
-         (pin += self->dad.block_size), (pout += self->dad.block_size))
-    {
-        ivec = CMEMBER(EncryptV1)(self, ivec); 
-        cv = CipherVecIn (pin);
-        cv ^= ivec;
-        CipherVecOut (cv, pout);
-    }
-
-    *(CipherVec*)self->dad.encrypt_ivec = ivec;
-
-    return 0;
-#else
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-#endif
-}
-
-
-static
-rc_t CMEMBER(DecryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-    return CMEMBER(EncryptOfb)(self, in, out, block_count);
-}
-
-
-/* Counter
- * IV is a nonce and not re-used as FB
- * CT = PT ^ ENC (N, EK)
- * PT = CT ^ ENC (N, DK) 
- * Note decrypt is encrypt.
- * nonce is a function that given an iv generates the next iv
- */
-static
-rc_t CMEMBER(EncryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-
-static
-rc_t CMEMBER(DecryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
-{
-    return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
-}
-
-static
-struct KCipher_vt_v1 CMEMBER(_vt_v1) =
-{
-    { 1, 0 },
-
-    CMEMBER(Destroy),
-    CMEMBER(SetEncryptKey),
-    CMEMBER(SetDecryptKey),
-    CMEMBER(SetEncryptIvec),
-    CMEMBER(SetDecryptIvec),
-    CMEMBER(SetEncryptCounterFunc),
-    CMEMBER(SetDecryptCounterFunc),
-    CMEMBER(Encrypt),
-    CMEMBER(Decrypt),
-    CMEMBER(EncryptEcb),
-    CMEMBER(DecryptEcb),
-    CMEMBER(EncryptCbc),
-    CMEMBER(DecryptCbc),
-    CMEMBER(EncryptPcbc),
-    CMEMBER(DecryptPcbc),
-    CMEMBER(EncryptCfb),
-    CMEMBER(DecryptCfb),
-    CMEMBER(EncryptOfb),
-    CMEMBER(DecryptOfb),
-    CMEMBER(EncryptCtr),
-    CMEMBER(DecryptCtr)
-};
-
-
-static __inline__
-rc_t CMEMBER(AllocAes)(CIPHER_IMPL ** pobj,
-                       const KBlockCipher * block_cipher)
-{
-    CipherAes * obj;
-
-    obj = calloc (1, sizeof (*obj));
-    *pobj = (CIPHER_IMPL*)obj;
-
-    return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
-}
-
-
-static __inline__
-rc_t CMEMBER(InitAes) (CIPHER_IMPL * self,
-                      const KBlockCipher * block_cipher)
-{
-    KCipher * dad = &self->dad;
-    CipherAes * aes = (struct CipherAes*)self;
-
-    KCipherInit (dad, sizeof (CipherVec),
-                 (const KCipher_vt*)&CMEMBER(_vt_v1),
-                 CMEMBER(ClassName));
-
-    dad->encrypt_key = &aes->e_key;
-    dad->decrypt_key = &aes->d_key;
-    dad->encrypt_ivec = &aes->e_ivec;
-    dad->decrypt_ivec = &aes->d_ivec;
-
-    self->block_cipher = &block_cipher->vec;
-
-    return 0;
-}
-
-
-static __inline__
-rc_t CMEMBER(AllocNull)(CIPHER_IMPL ** pobj,
-                        const KBlockCipher * block_cipher)
-{
-    CipherNull * obj;
-
-    obj = calloc (1, sizeof (*obj));
-    *pobj = (CIPHER_IMPL*)obj;
-
-    return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
-}
-
-
-static __inline__
-rc_t CMEMBER(InitNull) (CIPHER_IMPL * self,
-                        const KBlockCipher * block_cipher)
-{
-    KCipher * dad = &self->dad;
-    CipherNull * null = (CipherNull*)self;
-
-    KCipherInit (dad, sizeof (CipherVec),
-                 (const KCipher_vt*)&CMEMBER(_vt_v1),
-                 CMEMBER(ClassName));
-
-    dad->encrypt_key = &null->e_ivec;
-    dad->decrypt_key = &null->d_ivec;
-    dad->encrypt_ivec = &null->e_ivec;
-    dad->decrypt_ivec = &null->d_ivec;
-
-    self->block_cipher = &block_cipher->vec;
-
-    return 0;
-}
-
-
-rc_t CMEMBER(Make) (KCipher ** new_obj, kcipher_type type)
-{
-    rc_t rc;
-    KBlockCipher * block_cipher;
-
-    if (new_obj == NULL)
-        return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
-
-    *new_obj = NULL;
-
-    switch (type)
-    {
-    default:
-        return RC (rcKrypto, rcCipher, rcConstructing, rcParam, rcInvalid);
-
-    case kcipher_null:
-        rc = NULLBCMEMBER(Make)(&block_cipher);
-        break;
-
-    case kcipher_AES:
-        rc = AESBCMEMBER(Make)(&block_cipher);
-        break;
-    }
-
-    if (rc == 0)
-    {
-        CIPHER_IMPL * obj;
-
-        switch (type)
-        {
-        case kcipher_null:
-            rc = CMEMBER(AllocNull) (&obj, block_cipher);
-            if (rc == 0)
-            {
-                rc = CMEMBER(InitNull) (obj, block_cipher);
-                if (rc == 0)
-                    *new_obj = (KCipher*)obj;
-                else
-                    free (obj);
-            }
-            break;
-        case kcipher_AES:
-            rc = CMEMBER(AllocAes) (&obj, block_cipher);
-            if (rc == 0)
-            {
-                rc = CMEMBER(InitAes) (obj, block_cipher);
-                if (rc == 0)
-                    *new_obj = (KCipher*)obj;
-                else
-                    free (obj);
-            }
-        default:
-            /* can't really get here */
-            break;
-        }
-    }
-    return rc;
-}
-
-
-/* EOF */
diff --git a/libs/krypto/cipher-vec.vec.pic.o.list b/libs/krypto/cipher-vec.vec.pic.o.list
deleted file mode 100644
index 90554b0..0000000
--- a/libs/krypto/cipher-vec.vec.pic.o.list
+++ /dev/null
@@ -1,10959 +0,0 @@
-GAS LISTING /tmp/ccq6ONvw.s 			page 1
-
-
-   1              		.file	"cipher-vec.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 DE030000 		.text
-   8      0200F201 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              	.globl KCipherVecClassName
-  11              		.section	.rodata
-  12              		.type	KCipherVecClassName, @object
-  13              		.size	KCipherVecClassName, 12
-  14              	KCipherVecClassName:
-  15 0000 43495048 		.string	"CIPHER_IMPL"
-  15      45525F49 
-  15      4D504C00 
-  16              		.text
-  17              		.type	CipherVecIn, @function
-  18              	CipherVecIn:
-  19              	.LFB508:
-  20              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/defs.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* CIPHER_IMPL and BLOCKCIPHER_IMPL are defined in this header */
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* CIPHER_IMPL is used in this header */
-
GAS LISTING /tmp/ccq6ONvw.s 			page 2
-
-
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "cipher-impl.h"
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* BLOCKCIPHER_IMPL is used in this header */
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "blockcipher-impl.h"
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "aes-ncbi-priv.h"
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "null-ncbi-priv.h"
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "cipher-priv.h"
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "blockcipher-priv.h"
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/cipher.h>
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/ciphermgr.h>
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/defs.h>
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/refcount.h>
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/out.h>
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/rc.h>
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <sysalloc.h>
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <stdlib.h>
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <string.h>
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <assert.h>
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** const char CMEMBER(ClassName)[] = CLASS_STRING(CIPHER_IMPL);
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** struct CIPHER_IMPL
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher dad;
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const KBlockCipherVec * block_cipher;
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** };
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** typedef union CipherVec_u
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec   vec;
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherBlock block;
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** } CipherVec_u;
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Read a blocks worth of bytes into an AESState
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec CipherVecIn (const void * cvin)
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  21              		.loc 1 76 0
-  22              		.cfi_startproc
-  23 0000 55       		pushq	%rbp
-  24              	.LCFI0:
-  25              		.cfi_def_cfa_offset 16
-  26 0001 4889E5   		movq	%rsp, %rbp
-  27              		.cfi_offset 6, -16
-  28              	.LCFI1:
-  29              		.cfi_def_cfa_register 6
-  30 0004 4883EC20 		subq	$32, %rsp
-  31 0008 48897DE8 		movq	%rdi, -24(%rbp)
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if USE_VEC_REG
-
GAS LISTING /tmp/ccq6ONvw.s 			page 3
-
-
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     register CipherVec cv;
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     __asm__ (
-  81:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         "movdqu (%[a]),%[s]" : [s] "=x" (cv) : [a] "D" (cvin)
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         );
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return cv;
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec_u u;
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memmove (&u.block, cvin, sizeof (u));
-  32              		.loc 1 88 0
-  33 000c 488B4DE8 		movq	-24(%rbp), %rcx
-  34 0010 488D45F0 		leaq	-16(%rbp), %rax
-  35 0014 BA100000 		movl	$16, %edx
-  35      00
-  36 0019 4889CE   		movq	%rcx, %rsi
-  37 001c 4889C7   		movq	%rax, %rdi
-  38 001f E8000000 		call	memmove at PLT
-  38      00
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return u.vec;
-  39              		.loc 1 89 0
-  40 0024 F30F6F45 		movdqu	-16(%rbp), %xmm0
-  40      F0
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
-  41              		.loc 1 91 0
-  42 0029 C9       		leave
-  43 002a C3       		ret
-  44              		.cfi_endproc
-  45              	.LFE508:
-  46              		.size	CipherVecIn, .-CipherVecIn
-  47              		.type	CipherVecOut, @function
-  48              	CipherVecOut:
-  49              	.LFB509:
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Write a block's worth of bytes out from an AESState
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ void CipherVecOut (const CipherVec cv, void * cvout)
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  50              		.loc 1 99 0
-  51              		.cfi_startproc
-  52 002b 55       		pushq	%rbp
-  53              	.LCFI2:
-  54              		.cfi_def_cfa_offset 16
-  55 002c 4889E5   		movq	%rsp, %rbp
-  56              		.cfi_offset 6, -16
-  57              	.LCFI3:
-  58              		.cfi_def_cfa_register 6
-  59 002f 4883EC30 		subq	$48, %rsp
-  60 0033 660F7F45 		movdqa	%xmm0, -32(%rbp)
-  60      E0
-  61 0038 48897DD8 		movq	%rdi, -40(%rbp)
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if USE_VEC_REG
-
GAS LISTING /tmp/ccq6ONvw.s 			page 4
-
-
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     register CipherVec rcv = cv;
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     __asm__ (
- 104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         "movdqu %[s],(%[a])" : : [s] "x" (rcv), [a] "D" (cvout)
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         );
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec lcv = cv;
-  62              		.loc 1 107 0
-  63 003c 660F6F45 		movdqa	-32(%rbp), %xmm0
-  63      E0
-  64 0041 F30F7F45 		movdqu	%xmm0, -16(%rbp)
-  64      F0
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memmove (cvout, &lcv, sizeof (lcv));
-  65              		.loc 1 108 0
-  66 0046 488D4DF0 		leaq	-16(%rbp), %rcx
-  67 004a 488B45D8 		movq	-40(%rbp), %rax
-  68 004e BA100000 		movl	$16, %edx
-  68      00
-  69 0053 4889CE   		movq	%rcx, %rsi
-  70 0056 4889C7   		movq	%rax, %rdi
-  71 0059 E8000000 		call	memmove at PLT
-  71      00
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
-  72              		.loc 1 110 0
-  73 005e C9       		leave
-  74 005f C3       		ret
-  75              		.cfi_endproc
-  76              	.LFE509:
-  77              		.size	CipherVecOut, .-CipherVecOut
-  78              		.type	KCipherVecDestroy, @function
-  79              	KCipherVecDestroy:
-  80              	.LFB510:
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(Destroy) (CIPHER_IMPL * self)
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  81              		.loc 1 114 0
-  82              		.cfi_startproc
-  83 0060 55       		pushq	%rbp
-  84              	.LCFI4:
-  85              		.cfi_def_cfa_offset 16
-  86 0061 4889E5   		movq	%rsp, %rbp
-  87              		.cfi_offset 6, -16
-  88              	.LCFI5:
-  89              		.cfi_def_cfa_register 6
-  90 0064 4883EC20 		subq	$32, %rsp
-  91 0068 48897DE8 		movq	%rdi, -24(%rbp)
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
-  92              		.loc 1 115 0
-  93 006c C745FC00 		movl	$0, -4(%rbp)
-  93      000000
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (self)
-  94              		.loc 1 117 0
-  95 0073 48837DE8 		cmpq	$0, -24(%rbp)
-  95      00
-
GAS LISTING /tmp/ccq6ONvw.s 			page 5
-
-
-  96 0078 741B     		je	.L6
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc =  KCipherDestroy (&self->dad);
-  97              		.loc 1 119 0
-  98 007a 488B45E8 		movq	-24(%rbp), %rax
-  99 007e 4889C7   		movq	%rax, %rdi
- 100 0081 E8000000 		call	KCipherDestroy at PLT
- 100      00
- 101 0086 8945FC   		movl	%eax, -4(%rbp)
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         free (self);
- 102              		.loc 1 120 0
- 103 0089 488B45E8 		movq	-24(%rbp), %rax
- 104 008d 4889C7   		movq	%rax, %rdi
- 105 0090 E8000000 		call	free at PLT
- 105      00
- 106              	.L6:
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 107              		.loc 1 122 0
- 108 0095 8B45FC   		movl	-4(%rbp), %eax
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 109              		.loc 1 123 0
- 110 0098 C9       		leave
- 111 0099 C3       		ret
- 112              		.cfi_endproc
- 113              	.LFE510:
- 114              		.size	KCipherVecDestroy, .-KCipherVecDestroy
- 115              		.section	.rodata
- 116 000c 00000000 		.align 8
- 117              	.LC0:
- 118 0010 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
- 118      652F726F 
- 118      6461726D 
- 118      65722F73 
- 118      72615F73 
- 119              	.LC1:
- 120 0048 73656C66 		.string	"self"
- 120      00
- 121              	.LC2:
- 122 004d 75736572 		.string	"user_key"
- 122      5F6B6579 
- 122      00
- 123              	.LC3:
- 124 0056 75736572 		.string	"user_key_bits"
- 124      5F6B6579 
- 124      5F626974 
- 124      7300
- 125              		.text
- 126              		.type	KCipherVecSetEncryptKey, @function
- 127              	KCipherVecSetEncryptKey:
- 128              	.LFB511:
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(SetEncryptKey)(CIPHER_IMPL * self,
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   const char * user_key,
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   uint32_t user_key_bits)
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-
GAS LISTING /tmp/ccq6ONvw.s 			page 6
-
-
- 129              		.loc 1 129 0
- 130              		.cfi_startproc
- 131 009a 55       		pushq	%rbp
- 132              	.LCFI6:
- 133              		.cfi_def_cfa_offset 16
- 134 009b 4889E5   		movq	%rsp, %rbp
- 135              		.cfi_offset 6, -16
- 136              	.LCFI7:
- 137              		.cfi_def_cfa_register 6
- 138 009e 53       		pushq	%rbx
- 139 009f 4883EC38 		subq	$56, %rsp
- 140 00a3 48897DD8 		movq	%rdi, -40(%rbp)
- 141 00a7 488975D0 		movq	%rsi, -48(%rbp)
- 142 00ab 8955CC   		movl	%edx, -52(%rbp)
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 143              		.loc 1 130 0
- 144 00ae C745EC00 		movl	$0, -20(%rbp)
- 144      000000
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 145              		.loc 1 132 0
- 146 00b5 48837DD8 		cmpq	$0, -40(%rbp)
- 146      00
- 147 00ba 751F     		jne	.L9
- 148              		.cfi_offset 3, -24
- 149 00bc 488D0D00 		leaq	__PRETTY_FUNCTION__.6562(%rip), %rcx
- 149      000000
- 150 00c3 BA840000 		movl	$132, %edx
- 150      00
- 151 00c8 488D3500 		leaq	.LC0(%rip), %rsi
- 151      000000
- 152 00cf 488D3D00 		leaq	.LC1(%rip), %rdi
- 152      000000
- 153 00d6 E8000000 		call	__assert_fail at PLT
- 153      00
- 154              	.L9:
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key);
- 155              		.loc 1 133 0
- 156 00db 48837DD0 		cmpq	$0, -48(%rbp)
- 156      00
- 157 00e0 751F     		jne	.L10
- 158 00e2 488D0D00 		leaq	__PRETTY_FUNCTION__.6562(%rip), %rcx
- 158      000000
- 159 00e9 BA850000 		movl	$133, %edx
- 159      00
- 160 00ee 488D3500 		leaq	.LC0(%rip), %rsi
- 160      000000
- 161 00f5 488D3D00 		leaq	.LC2(%rip), %rdi
- 161      000000
- 162 00fc E8000000 		call	__assert_fail at PLT
- 162      00
- 163              	.L10:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key_bits);
- 164              		.loc 1 134 0
- 165 0101 837DCC00 		cmpl	$0, -52(%rbp)
- 166 0105 751F     		jne	.L11
- 167 0107 488D0D00 		leaq	__PRETTY_FUNCTION__.6562(%rip), %rcx
-
GAS LISTING /tmp/ccq6ONvw.s 			page 7
-
-
- 167      000000
- 168 010e BA860000 		movl	$134, %edx
- 168      00
- 169 0113 488D3500 		leaq	.LC0(%rip), %rsi
- 169      000000
- 170 011a 488D3D00 		leaq	.LC3(%rip), %rdi
- 170      000000
- 171 0121 E8000000 		call	__assert_fail at PLT
- 171      00
- 172              	.L11:
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 173              		.loc 1 136 0
- 174 0126 488B45D8 		movq	-40(%rbp), %rax
- 175 012a 488B4048 		movq	72(%rax), %rax
- 176 012e 8B00     		movl	(%rax), %eax
- 177 0130 83F801   		cmpl	$1, %eax
- 178 0133 7422     		je	.L13
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
- 179              		.loc 1 139 0
- 180 0135 B98B0000 		movl	$139, %ecx
- 180      00
- 181 013a 488D1500 		leaq	__func__.6564(%rip), %rdx
- 181      000000
- 182 0141 488D3500 		leaq	.LC0(%rip), %rsi
- 182      000000
- 183 0148 BF088E04 		movl	$-2029744632, %edi
- 183      87
- 184 014d E8000000 		call	SetRCFileFuncLine at PLT
- 184      00
- 185 0152 8945EC   		movl	%eax, -20(%rbp)
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 186              		.loc 1 140 0
- 187 0155 EB23     		jmp	.L14
- 188              	.L13:
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         self->block_cipher->v1.set_encrypt_key (self->dad.encrypt_key, user_key,
- 189              		.loc 1 143 0
- 190 0157 488B45D8 		movq	-40(%rbp), %rax
- 191 015b 488B4048 		movq	72(%rax), %rax
- 192 015f 488B5820 		movq	32(%rax), %rbx
- 193 0163 488B45D8 		movq	-40(%rbp), %rax
- 194 0167 488B4018 		movq	24(%rax), %rax
- 195 016b 8B55CC   		movl	-52(%rbp), %edx
- 196 016e 488B4DD0 		movq	-48(%rbp), %rcx
- 197 0172 4889CE   		movq	%rcx, %rsi
- 198 0175 4889C7   		movq	%rax, %rdi
- 199 0178 FFD3     		call	*%rbx
- 200              	.L14:
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                                 user_key_bits);
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 201              		.loc 1 147 0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 8
-
-
- 202 017a 8B45EC   		movl	-20(%rbp), %eax
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 203              		.loc 1 148 0
- 204 017d 4883C438 		addq	$56, %rsp
- 205 0181 5B       		popq	%rbx
- 206 0182 C9       		leave
- 207 0183 C3       		ret
- 208              		.cfi_endproc
- 209              	.LFE511:
- 210              		.size	KCipherVecSetEncryptKey, .-KCipherVecSetEncryptKey
- 211              		.type	KCipherVecSetDecryptKey, @function
- 212              	KCipherVecSetDecryptKey:
- 213              	.LFB512:
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(SetDecryptKey)(CIPHER_IMPL * self,
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   const char * user_key,
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   uint32_t user_key_bits)
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 214              		.loc 1 154 0
- 215              		.cfi_startproc
- 216 0184 55       		pushq	%rbp
- 217              	.LCFI8:
- 218              		.cfi_def_cfa_offset 16
- 219 0185 4889E5   		movq	%rsp, %rbp
- 220              		.cfi_offset 6, -16
- 221              	.LCFI9:
- 222              		.cfi_def_cfa_register 6
- 223 0188 53       		pushq	%rbx
- 224 0189 4883EC38 		subq	$56, %rsp
- 225 018d 48897DD8 		movq	%rdi, -40(%rbp)
- 226 0191 488975D0 		movq	%rsi, -48(%rbp)
- 227 0195 8955CC   		movl	%edx, -52(%rbp)
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 228              		.loc 1 155 0
- 229 0198 C745EC00 		movl	$0, -20(%rbp)
- 229      000000
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 230              		.loc 1 157 0
- 231 019f 48837DD8 		cmpq	$0, -40(%rbp)
- 231      00
- 232 01a4 751F     		jne	.L17
- 233              		.cfi_offset 3, -24
- 234 01a6 488D0D00 		leaq	__PRETTY_FUNCTION__.6586(%rip), %rcx
- 234      000000
- 235 01ad BA9D0000 		movl	$157, %edx
- 235      00
- 236 01b2 488D3500 		leaq	.LC0(%rip), %rsi
- 236      000000
- 237 01b9 488D3D00 		leaq	.LC1(%rip), %rdi
- 237      000000
- 238 01c0 E8000000 		call	__assert_fail at PLT
- 238      00
- 239              	.L17:
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key);
- 240              		.loc 1 158 0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 9
-
-
- 241 01c5 48837DD0 		cmpq	$0, -48(%rbp)
- 241      00
- 242 01ca 751F     		jne	.L18
- 243 01cc 488D0D00 		leaq	__PRETTY_FUNCTION__.6586(%rip), %rcx
- 243      000000
- 244 01d3 BA9E0000 		movl	$158, %edx
- 244      00
- 245 01d8 488D3500 		leaq	.LC0(%rip), %rsi
- 245      000000
- 246 01df 488D3D00 		leaq	.LC2(%rip), %rdi
- 246      000000
- 247 01e6 E8000000 		call	__assert_fail at PLT
- 247      00
- 248              	.L18:
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key_bits);
- 249              		.loc 1 159 0
- 250 01eb 837DCC00 		cmpl	$0, -52(%rbp)
- 251 01ef 751F     		jne	.L19
- 252 01f1 488D0D00 		leaq	__PRETTY_FUNCTION__.6586(%rip), %rcx
- 252      000000
- 253 01f8 BA9F0000 		movl	$159, %edx
- 253      00
- 254 01fd 488D3500 		leaq	.LC0(%rip), %rsi
- 254      000000
- 255 0204 488D3D00 		leaq	.LC3(%rip), %rdi
- 255      000000
- 256 020b E8000000 		call	__assert_fail at PLT
- 256      00
- 257              	.L19:
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 258              		.loc 1 161 0
- 259 0210 488B45D8 		movq	-40(%rbp), %rax
- 260 0214 488B4048 		movq	72(%rax), %rax
- 261 0218 8B00     		movl	(%rax), %eax
- 262 021a 83F801   		cmpl	$1, %eax
- 263 021d 7422     		je	.L21
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
- 264              		.loc 1 164 0
- 265 021f B9A40000 		movl	$164, %ecx
- 265      00
- 266 0224 488D1500 		leaq	__func__.6588(%rip), %rdx
- 266      000000
- 267 022b 488D3500 		leaq	.LC0(%rip), %rsi
- 267      000000
- 268 0232 BF088E04 		movl	$-2029744632, %edi
- 268      87
- 269 0237 E8000000 		call	SetRCFileFuncLine at PLT
- 269      00
- 270 023c 8945EC   		movl	%eax, -20(%rbp)
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 271              		.loc 1 165 0
- 272 023f EB23     		jmp	.L22
- 273              	.L21:
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 10
-
-
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         self->block_cipher->v1.set_decrypt_key (self->dad.decrypt_key, user_key,
- 274              		.loc 1 168 0
- 275 0241 488B45D8 		movq	-40(%rbp), %rax
- 276 0245 488B4048 		movq	72(%rax), %rax
- 277 0249 488B5828 		movq	40(%rax), %rbx
- 278 024d 488B45D8 		movq	-40(%rbp), %rax
- 279 0251 488B4020 		movq	32(%rax), %rax
- 280 0255 8B55CC   		movl	-52(%rbp), %edx
- 281 0258 488B4DD0 		movq	-48(%rbp), %rcx
- 282 025c 4889CE   		movq	%rcx, %rsi
- 283 025f 4889C7   		movq	%rax, %rdi
- 284 0262 FFD3     		call	*%rbx
- 285              	.L22:
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                                     user_key_bits);
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 286              		.loc 1 172 0
- 287 0264 8B45EC   		movl	-20(%rbp), %eax
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 288              		.loc 1 173 0
- 289 0267 4883C438 		addq	$56, %rsp
- 290 026b 5B       		popq	%rbx
- 291 026c C9       		leave
- 292 026d C3       		ret
- 293              		.cfi_endproc
- 294              	.LFE512:
- 295              		.size	KCipherVecSetDecryptKey, .-KCipherVecSetDecryptKey
- 296              		.section	.rodata
- 297              	.LC4:
- 298 0064 69766563 		.string	"ivec"
- 298      00
- 299              		.text
- 300              		.type	KCipherVecSetEncryptIvec, @function
- 301              	KCipherVecSetEncryptIvec:
- 302              	.LFB513:
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetEncryptIvec) (CIPHER_IMPL * self,
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                              const void * ivec)
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 303              		.loc 1 179 0
- 304              		.cfi_startproc
- 305 026e 55       		pushq	%rbp
- 306              	.LCFI10:
- 307              		.cfi_def_cfa_offset 16
- 308 026f 4889E5   		movq	%rsp, %rbp
- 309              		.cfi_offset 6, -16
- 310              	.LCFI11:
- 311              		.cfi_def_cfa_register 6
- 312 0272 4883EC10 		subq	$16, %rsp
- 313 0276 48897DF8 		movq	%rdi, -8(%rbp)
- 314 027a 488975F0 		movq	%rsi, -16(%rbp)
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 315              		.loc 1 180 0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 11
-
-
- 316 027e 48837DF8 		cmpq	$0, -8(%rbp)
- 316      00
- 317 0283 751F     		jne	.L25
- 318 0285 488D0D00 		leaq	__PRETTY_FUNCTION__.6608(%rip), %rcx
- 318      000000
- 319 028c BAB40000 		movl	$180, %edx
- 319      00
- 320 0291 488D3500 		leaq	.LC0(%rip), %rsi
- 320      000000
- 321 0298 488D3D00 		leaq	.LC1(%rip), %rdi
- 321      000000
- 322 029f E8000000 		call	__assert_fail at PLT
- 322      00
- 323              	.L25:
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (ivec);
- 324              		.loc 1 181 0
- 325 02a4 48837DF0 		cmpq	$0, -16(%rbp)
- 325      00
- 326 02a9 751F     		jne	.L26
- 327 02ab 488D0D00 		leaq	__PRETTY_FUNCTION__.6608(%rip), %rcx
- 327      000000
- 328 02b2 BAB50000 		movl	$181, %edx
- 328      00
- 329 02b7 488D3500 		leaq	.LC0(%rip), %rsi
- 329      000000
- 330 02be 488D3D00 		leaq	.LC4(%rip), %rdi
- 330      000000
- 331 02c5 E8000000 		call	__assert_fail at PLT
- 331      00
- 332              	.L26:
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memcpy (self->dad.encrypt_ivec, ivec, self->dad.block_size);
- 333              		.loc 1 183 0
- 334 02ca 488B45F8 		movq	-8(%rbp), %rax
- 335 02ce 8B4004   		movl	4(%rax), %eax
- 336 02d1 89C2     		mov	%eax, %edx
- 337 02d3 488B45F8 		movq	-8(%rbp), %rax
- 338 02d7 488B4028 		movq	40(%rax), %rax
- 339 02db 488B4DF0 		movq	-16(%rbp), %rcx
- 340 02df 4889CE   		movq	%rcx, %rsi
- 341 02e2 4889C7   		movq	%rax, %rdi
- 342 02e5 E8000000 		call	memcpy at PLT
- 342      00
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 343              		.loc 1 185 0
- 344 02ea B8000000 		movl	$0, %eax
- 344      00
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 345              		.loc 1 186 0
- 346 02ef C9       		leave
- 347 02f0 C3       		ret
- 348              		.cfi_endproc
- 349              	.LFE513:
- 350              		.size	KCipherVecSetEncryptIvec, .-KCipherVecSetEncryptIvec
- 351              		.type	KCipherVecSetDecryptIvec, @function
- 352              	KCipherVecSetDecryptIvec:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 12
-
-
- 353              	.LFB514:
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetDecryptIvec) (CIPHER_IMPL * self,
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                              const void * ivec)
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 354              		.loc 1 192 0
- 355              		.cfi_startproc
- 356 02f1 55       		pushq	%rbp
- 357              	.LCFI12:
- 358              		.cfi_def_cfa_offset 16
- 359 02f2 4889E5   		movq	%rsp, %rbp
- 360              		.cfi_offset 6, -16
- 361              	.LCFI13:
- 362              		.cfi_def_cfa_register 6
- 363 02f5 4883EC10 		subq	$16, %rsp
- 364 02f9 48897DF8 		movq	%rdi, -8(%rbp)
- 365 02fd 488975F0 		movq	%rsi, -16(%rbp)
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 366              		.loc 1 193 0
- 367 0301 48837DF8 		cmpq	$0, -8(%rbp)
- 367      00
- 368 0306 751F     		jne	.L29
- 369 0308 488D0D00 		leaq	__PRETTY_FUNCTION__.6621(%rip), %rcx
- 369      000000
- 370 030f BAC10000 		movl	$193, %edx
- 370      00
- 371 0314 488D3500 		leaq	.LC0(%rip), %rsi
- 371      000000
- 372 031b 488D3D00 		leaq	.LC1(%rip), %rdi
- 372      000000
- 373 0322 E8000000 		call	__assert_fail at PLT
- 373      00
- 374              	.L29:
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (ivec);
- 375              		.loc 1 194 0
- 376 0327 48837DF0 		cmpq	$0, -16(%rbp)
- 376      00
- 377 032c 751F     		jne	.L30
- 378 032e 488D0D00 		leaq	__PRETTY_FUNCTION__.6621(%rip), %rcx
- 378      000000
- 379 0335 BAC20000 		movl	$194, %edx
- 379      00
- 380 033a 488D3500 		leaq	.LC0(%rip), %rsi
- 380      000000
- 381 0341 488D3D00 		leaq	.LC4(%rip), %rdi
- 381      000000
- 382 0348 E8000000 		call	__assert_fail at PLT
- 382      00
- 383              	.L30:
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memcpy (self->dad.decrypt_ivec, ivec, self->dad.block_size);
- 384              		.loc 1 196 0
- 385 034d 488B45F8 		movq	-8(%rbp), %rax
- 386 0351 8B4004   		movl	4(%rax), %eax
- 387 0354 89C2     		mov	%eax, %edx
-
GAS LISTING /tmp/ccq6ONvw.s 			page 13
-
-
- 388 0356 488B45F8 		movq	-8(%rbp), %rax
- 389 035a 488B4030 		movq	48(%rax), %rax
- 390 035e 488B4DF0 		movq	-16(%rbp), %rcx
- 391 0362 4889CE   		movq	%rcx, %rsi
- 392 0365 4889C7   		movq	%rax, %rdi
- 393 0368 E8000000 		call	memcpy at PLT
- 393      00
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 394              		.loc 1 198 0
- 395 036d B8000000 		movl	$0, %eax
- 395      00
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 396              		.loc 1 199 0
- 397 0372 C9       		leave
- 398 0373 C3       		ret
- 399              		.cfi_endproc
- 400              	.LFE514:
- 401              		.size	KCipherVecSetDecryptIvec, .-KCipherVecSetDecryptIvec
- 402              		.section	.rodata
- 403              	.LC5:
- 404 0069 66756E63 		.string	"func"
- 404      00
- 405              		.text
- 406              		.type	KCipherVecSetEncryptCounterFunc, @function
- 407              	KCipherVecSetEncryptCounterFunc:
- 408              	.LFB515:
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetEncryptCounterFunc) (CIPHER_IMPL * self,
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                     cipher_ctr_func func)
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 409              		.loc 1 205 0
- 410              		.cfi_startproc
- 411 0374 55       		pushq	%rbp
- 412              	.LCFI14:
- 413              		.cfi_def_cfa_offset 16
- 414 0375 4889E5   		movq	%rsp, %rbp
- 415              		.cfi_offset 6, -16
- 416              	.LCFI15:
- 417              		.cfi_def_cfa_register 6
- 418 0378 4883EC10 		subq	$16, %rsp
- 419 037c 48897DF8 		movq	%rdi, -8(%rbp)
- 420 0380 488975F0 		movq	%rsi, -16(%rbp)
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 421              		.loc 1 206 0
- 422 0384 48837DF8 		cmpq	$0, -8(%rbp)
- 422      00
- 423 0389 751F     		jne	.L33
- 424 038b 488D0D00 		leaq	__PRETTY_FUNCTION__.6634(%rip), %rcx
- 424      000000
- 425 0392 BACE0000 		movl	$206, %edx
- 425      00
- 426 0397 488D3500 		leaq	.LC0(%rip), %rsi
- 426      000000
- 427 039e 488D3D00 		leaq	.LC1(%rip), %rdi
-
GAS LISTING /tmp/ccq6ONvw.s 			page 14
-
-
- 427      000000
- 428 03a5 E8000000 		call	__assert_fail at PLT
- 428      00
- 429              	.L33:
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (func);
- 430              		.loc 1 207 0
- 431 03aa 48837DF0 		cmpq	$0, -16(%rbp)
- 431      00
- 432 03af 751F     		jne	.L34
- 433 03b1 488D0D00 		leaq	__PRETTY_FUNCTION__.6634(%rip), %rcx
- 433      000000
- 434 03b8 BACF0000 		movl	$207, %edx
- 434      00
- 435 03bd 488D3500 		leaq	.LC0(%rip), %rsi
- 435      000000
- 436 03c4 488D3D00 		leaq	.LC5(%rip), %rdi
- 436      000000
- 437 03cb E8000000 		call	__assert_fail at PLT
- 437      00
- 438              	.L34:
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->dad.encrypt_counter_func = func;
- 439              		.loc 1 209 0
- 440 03d0 488B45F8 		movq	-8(%rbp), %rax
- 441 03d4 488B55F0 		movq	-16(%rbp), %rdx
- 442 03d8 48895038 		movq	%rdx, 56(%rax)
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 443              		.loc 1 211 0
- 444 03dc B8000000 		movl	$0, %eax
- 444      00
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 445              		.loc 1 212 0
- 446 03e1 C9       		leave
- 447 03e2 C3       		ret
- 448              		.cfi_endproc
- 449              	.LFE515:
- 450              		.size	KCipherVecSetEncryptCounterFunc, .-KCipherVecSetEncryptCounterFunc
- 451              		.type	KCipherVecSetDecryptCounterFunc, @function
- 452              	KCipherVecSetDecryptCounterFunc:
- 453              	.LFB516:
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetDecryptCounterFunc) (CIPHER_IMPL * self,
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                     cipher_ctr_func func)
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 454              		.loc 1 218 0
- 455              		.cfi_startproc
- 456 03e3 55       		pushq	%rbp
- 457              	.LCFI16:
- 458              		.cfi_def_cfa_offset 16
- 459 03e4 4889E5   		movq	%rsp, %rbp
- 460              		.cfi_offset 6, -16
- 461              	.LCFI17:
- 462              		.cfi_def_cfa_register 6
- 463 03e7 4883EC10 		subq	$16, %rsp
-
GAS LISTING /tmp/ccq6ONvw.s 			page 15
-
-
- 464 03eb 48897DF8 		movq	%rdi, -8(%rbp)
- 465 03ef 488975F0 		movq	%rsi, -16(%rbp)
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 466              		.loc 1 219 0
- 467 03f3 48837DF8 		cmpq	$0, -8(%rbp)
- 467      00
- 468 03f8 751F     		jne	.L37
- 469 03fa 488D0D00 		leaq	__PRETTY_FUNCTION__.6644(%rip), %rcx
- 469      000000
- 470 0401 BADB0000 		movl	$219, %edx
- 470      00
- 471 0406 488D3500 		leaq	.LC0(%rip), %rsi
- 471      000000
- 472 040d 488D3D00 		leaq	.LC1(%rip), %rdi
- 472      000000
- 473 0414 E8000000 		call	__assert_fail at PLT
- 473      00
- 474              	.L37:
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (func);
- 475              		.loc 1 220 0
- 476 0419 48837DF0 		cmpq	$0, -16(%rbp)
- 476      00
- 477 041e 751F     		jne	.L38
- 478 0420 488D0D00 		leaq	__PRETTY_FUNCTION__.6644(%rip), %rcx
- 478      000000
- 479 0427 BADC0000 		movl	$220, %edx
- 479      00
- 480 042c 488D3500 		leaq	.LC0(%rip), %rsi
- 480      000000
- 481 0433 488D3D00 		leaq	.LC5(%rip), %rdi
- 481      000000
- 482 043a E8000000 		call	__assert_fail at PLT
- 482      00
- 483              	.L38:
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->dad.decrypt_counter_func = func;
- 484              		.loc 1 222 0
- 485 043f 488B45F8 		movq	-8(%rbp), %rax
- 486 0443 488B55F0 		movq	-16(%rbp), %rdx
- 487 0447 48895040 		movq	%rdx, 64(%rax)
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 488              		.loc 1 224 0
- 489 044b B8000000 		movl	$0, %eax
- 489      00
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 490              		.loc 1 225 0
- 491 0450 C9       		leave
- 492 0451 C3       		ret
- 493              		.cfi_endproc
- 494              	.LFE516:
- 495              		.size	KCipherVecSetDecryptCounterFunc, .-KCipherVecSetDecryptCounterFunc
- 496              		.type	KCipherVecEncryptV1, @function
- 497              	KCipherVecEncryptV1:
- 498              	.LFB517:
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 16
-
-
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec CMEMBER(EncryptV1)(const CIPHER_IMPL * self,
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                               register CipherVec cv)
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 499              		.loc 1 230 0
- 500              		.cfi_startproc
- 501 0452 55       		pushq	%rbp
- 502              	.LCFI18:
- 503              		.cfi_def_cfa_offset 16
- 504 0453 4889E5   		movq	%rsp, %rbp
- 505              		.cfi_offset 6, -16
- 506              	.LCFI19:
- 507              		.cfi_def_cfa_register 6
- 508 0456 4883EC10 		subq	$16, %rsp
- 509 045a 48897DF8 		movq	%rdi, -8(%rbp)
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return self->block_cipher->v1.encrypt (cv, self->dad.encrypt_key);
- 510              		.loc 1 231 0
- 511 045e 488B45F8 		movq	-8(%rbp), %rax
- 512 0462 488B4048 		movq	72(%rax), %rax
- 513 0466 488B5030 		movq	48(%rax), %rdx
- 514 046a 488B45F8 		movq	-8(%rbp), %rax
- 515 046e 488B4018 		movq	24(%rax), %rax
- 516 0472 4889C7   		movq	%rax, %rdi
- 517 0475 FFD2     		call	*%rdx
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 518              		.loc 1 232 0
- 519 0477 C9       		leave
- 520 0478 C3       		ret
- 521              		.cfi_endproc
- 522              	.LFE517:
- 523              		.size	KCipherVecEncryptV1, .-KCipherVecEncryptV1
- 524              		.type	KCipherVecDecryptV1, @function
- 525              	KCipherVecDecryptV1:
- 526              	.LFB518:
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec  CMEMBER(DecryptV1)(const CIPHER_IMPL * self,
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                               register CipherVec cv)
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 527              		.loc 1 237 0
- 528              		.cfi_startproc
- 529 0479 55       		pushq	%rbp
- 530              	.LCFI20:
- 531              		.cfi_def_cfa_offset 16
- 532 047a 4889E5   		movq	%rsp, %rbp
- 533              		.cfi_offset 6, -16
- 534              	.LCFI21:
- 535              		.cfi_def_cfa_register 6
- 536 047d 4883EC10 		subq	$16, %rsp
- 537 0481 48897DF8 		movq	%rdi, -8(%rbp)
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return self->block_cipher->v1.decrypt (cv, self->dad.decrypt_key);
- 538              		.loc 1 238 0
- 539 0485 488B45F8 		movq	-8(%rbp), %rax
- 540 0489 488B4048 		movq	72(%rax), %rax
- 541 048d 488B5038 		movq	56(%rax), %rdx
- 542 0491 488B45F8 		movq	-8(%rbp), %rax
- 543 0495 488B4020 		movq	32(%rax), %rax
- 544 0499 4889C7   		movq	%rax, %rdi
-
GAS LISTING /tmp/ccq6ONvw.s 			page 17
-
-
- 545 049c FFD2     		call	*%rdx
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 546              		.loc 1 239 0
- 547 049e C9       		leave
- 548 049f C3       		ret
- 549              		.cfi_endproc
- 550              	.LFE518:
- 551              		.size	KCipherVecDecryptV1, .-KCipherVecDecryptV1
- 552              		.type	KCipherVecEncryptV1Int, @function
- 553              	KCipherVecEncryptV1Int:
- 554              	.LFB519:
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ rc_t CMEMBER(EncryptV1Int)(const CIPHER_IMPL * self,
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                             const void * in, void * out)
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 555              		.loc 1 244 0
- 556              		.cfi_startproc
- 557 04a0 55       		pushq	%rbp
- 558              	.LCFI22:
- 559              		.cfi_def_cfa_offset 16
- 560 04a1 4889E5   		movq	%rsp, %rbp
- 561              		.cfi_offset 6, -16
- 562              	.LCFI23:
- 563              		.cfi_def_cfa_register 6
- 564 04a4 4883EC30 		subq	$48, %rsp
- 565 04a8 48897DE8 		movq	%rdi, -24(%rbp)
- 566 04ac 488975E0 		movq	%rsi, -32(%rbp)
- 567 04b0 488955D8 		movq	%rdx, -40(%rbp)
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CipherVecIn(in);
- 568              		.loc 1 247 0
- 569 04b4 488B45E0 		movq	-32(%rbp), %rax
- 570 04b8 4889C7   		movq	%rax, %rdi
- 571 04bb E840FBFF 		call	CipherVecIn
- 571      FF
- 572 04c0 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 572      F0
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CMEMBER(EncryptV1)(self, cv);
- 573              		.loc 1 248 0
- 574 04c5 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 574      F0
- 575 04ca 488B45E8 		movq	-24(%rbp), %rax
- 576 04ce 4889C7   		movq	%rax, %rdi
- 577 04d1 E87CFFFF 		call	KCipherVecEncryptV1
- 577      FF
- 578 04d6 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 578      F0
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut(cv, out);
- 579              		.loc 1 249 0
- 580 04db 488B45D8 		movq	-40(%rbp), %rax
- 581 04df F30F6F45 		movdqu	-16(%rbp), %xmm0
- 581      F0
- 582 04e4 4889C7   		movq	%rax, %rdi
- 583 04e7 E83FFBFF 		call	CipherVecOut
- 583      FF
-
GAS LISTING /tmp/ccq6ONvw.s 			page 18
-
-
- 250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 584              		.loc 1 250 0
- 585 04ec B8000000 		movl	$0, %eax
- 585      00
- 251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 586              		.loc 1 251 0
- 587 04f1 C9       		leave
- 588 04f2 C3       		ret
- 589              		.cfi_endproc
- 590              	.LFE519:
- 591              		.size	KCipherVecEncryptV1Int, .-KCipherVecEncryptV1Int
- 592              		.type	KCipherVecDecryptV1Int, @function
- 593              	KCipherVecDecryptV1Int:
- 594              	.LFB520:
- 252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ rc_t CMEMBER(DecryptV1Int)(const CIPHER_IMPL * self,
- 255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                             const void * in, void * out)
- 256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 595              		.loc 1 256 0
- 596              		.cfi_startproc
- 597 04f3 55       		pushq	%rbp
- 598              	.LCFI24:
- 599              		.cfi_def_cfa_offset 16
- 600 04f4 4889E5   		movq	%rsp, %rbp
- 601              		.cfi_offset 6, -16
- 602              	.LCFI25:
- 603              		.cfi_def_cfa_register 6
- 604 04f7 4883EC30 		subq	$48, %rsp
- 605 04fb 48897DE8 		movq	%rdi, -24(%rbp)
- 606 04ff 488975E0 		movq	%rsi, -32(%rbp)
- 607 0503 488955D8 		movq	%rdx, -40(%rbp)
- 257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CipherVecIn(in);
- 608              		.loc 1 259 0
- 609 0507 488B45E0 		movq	-32(%rbp), %rax
- 610 050b 4889C7   		movq	%rax, %rdi
- 611 050e E8EDFAFF 		call	CipherVecIn
- 611      FF
- 612 0513 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 612      F0
- 260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CMEMBER(DecryptV1)(self, cv);
- 613              		.loc 1 260 0
- 614 0518 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 614      F0
- 615 051d 488B45E8 		movq	-24(%rbp), %rax
- 616 0521 4889C7   		movq	%rax, %rdi
- 617 0524 E850FFFF 		call	KCipherVecDecryptV1
- 617      FF
- 618 0529 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 618      F0
- 261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut(cv, out);
- 619              		.loc 1 261 0
- 620 052e 488B45D8 		movq	-40(%rbp), %rax
- 621 0532 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 621      F0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 19
-
-
- 622 0537 4889C7   		movq	%rax, %rdi
- 623 053a E8ECFAFF 		call	CipherVecOut
- 623      FF
- 262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 624              		.loc 1 262 0
- 625 053f B8000000 		movl	$0, %eax
- 625      00
- 263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 626              		.loc 1 263 0
- 627 0544 C9       		leave
- 628 0545 C3       		ret
- 629              		.cfi_endproc
- 630              	.LFE520:
- 631              		.size	KCipherVecDecryptV1Int, .-KCipherVecDecryptV1Int
- 632              		.type	KCipherVecEncrypt, @function
- 633              	KCipherVecEncrypt:
- 634              	.LFB521:
- 264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(Encrypt) (const CIPHER_IMPL * self, const void * in, void * out)
- 267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 635              		.loc 1 267 0
- 636              		.cfi_startproc
- 637 0546 55       		pushq	%rbp
- 638              	.LCFI26:
- 639              		.cfi_def_cfa_offset 16
- 640 0547 4889E5   		movq	%rsp, %rbp
- 641              		.cfi_offset 6, -16
- 642              	.LCFI27:
- 643              		.cfi_def_cfa_register 6
- 644 054a 4883EC30 		subq	$48, %rsp
- 645 054e 48897DE8 		movq	%rdi, -24(%rbp)
- 646 0552 488975E0 		movq	%rsi, -32(%rbp)
- 647 0556 488955D8 		movq	%rdx, -40(%rbp)
- 268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc;
- 269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 648              		.loc 1 270 0
- 649 055a 488B45E8 		movq	-24(%rbp), %rax
- 650 055e 488B4048 		movq	72(%rax), %rax
- 651 0562 8B00     		movl	(%rax), %eax
- 652 0564 83F801   		cmpl	$1, %eax
- 653 0567 7422     		je	.L50
- 271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
- 654              		.loc 1 273 0
- 655 0569 B9110100 		movl	$273, %ecx
- 655      00
- 656 056e 488D1500 		leaq	__func__.6694(%rip), %rdx
- 656      000000
- 657 0575 488D3500 		leaq	.LC0(%rip), %rsi
- 657      000000
- 658 057c BF080E09 		movl	$-2029449720, %edi
- 658      87
- 659 0581 E8000000 		call	SetRCFileFuncLine at PLT
- 659      00
-
GAS LISTING /tmp/ccq6ONvw.s 			page 20
-
-
- 660 0586 8945FC   		movl	%eax, -4(%rbp)
- 274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 661              		.loc 1 274 0
- 662 0589 EB1A     		jmp	.L51
- 663              	.L50:
- 275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = CMEMBER(EncryptV1Int)(self, in, out);
- 664              		.loc 1 277 0
- 665 058b 488B55D8 		movq	-40(%rbp), %rdx
- 666 058f 488B4DE0 		movq	-32(%rbp), %rcx
- 667 0593 488B45E8 		movq	-24(%rbp), %rax
- 668 0597 4889CE   		movq	%rcx, %rsi
- 669 059a 4889C7   		movq	%rax, %rdi
- 670 059d E8FEFEFF 		call	KCipherVecEncryptV1Int
- 670      FF
- 671 05a2 8945FC   		movl	%eax, -4(%rbp)
- 672              	.L51:
- 278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 673              		.loc 1 281 0
- 674 05a5 8B45FC   		movl	-4(%rbp), %eax
- 282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 675              		.loc 1 282 0
- 676 05a8 C9       		leave
- 677 05a9 C3       		ret
- 678              		.cfi_endproc
- 679              	.LFE521:
- 680              		.size	KCipherVecEncrypt, .-KCipherVecEncrypt
- 681              		.type	KCipherVecDecrypt, @function
- 682              	KCipherVecDecrypt:
- 683              	.LFB522:
- 283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(Decrypt) (const CIPHER_IMPL * self, const void * in, void * out)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 684              		.loc 1 287 0
- 685              		.cfi_startproc
- 686 05aa 55       		pushq	%rbp
- 687              	.LCFI28:
- 688              		.cfi_def_cfa_offset 16
- 689 05ab 4889E5   		movq	%rsp, %rbp
- 690              		.cfi_offset 6, -16
- 691              	.LCFI29:
- 692              		.cfi_def_cfa_register 6
- 693 05ae 4883EC30 		subq	$48, %rsp
- 694 05b2 48897DE8 		movq	%rdi, -24(%rbp)
- 695 05b6 488975E0 		movq	%rsi, -32(%rbp)
- 696 05ba 488955D8 		movq	%rdx, -40(%rbp)
- 288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 697              		.loc 1 288 0
- 698 05be C745FC00 		movl	$0, -4(%rbp)
- 698      000000
- 289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 21
-
-
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 699              		.loc 1 290 0
- 700 05c5 488B45E8 		movq	-24(%rbp), %rax
- 701 05c9 488B4048 		movq	72(%rax), %rax
- 702 05cd 8B00     		movl	(%rax), %eax
- 703 05cf 83F801   		cmpl	$1, %eax
- 704 05d2 7422     		je	.L55
- 291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
- 705              		.loc 1 293 0
- 706 05d4 B9250100 		movl	$293, %ecx
- 706      00
- 707 05d9 488D1500 		leaq	__func__.6710(%rip), %rdx
- 707      000000
- 708 05e0 488D3500 		leaq	.LC0(%rip), %rsi
- 708      000000
- 709 05e7 BF080E09 		movl	$-2029449720, %edi
- 709      87
- 710 05ec E8000000 		call	SetRCFileFuncLine at PLT
- 710      00
- 711 05f1 8945FC   		movl	%eax, -4(%rbp)
- 294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 712              		.loc 1 294 0
- 713 05f4 EB1A     		jmp	.L56
- 714              	.L55:
- 295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = CMEMBER(DecryptV1Int)(self, in, out);
- 715              		.loc 1 297 0
- 716 05f6 488B55D8 		movq	-40(%rbp), %rdx
- 717 05fa 488B4DE0 		movq	-32(%rbp), %rcx
- 718 05fe 488B45E8 		movq	-24(%rbp), %rax
- 719 0602 4889CE   		movq	%rcx, %rsi
- 720 0605 4889C7   		movq	%rax, %rdi
- 721 0608 E8E6FEFF 		call	KCipherVecDecryptV1Int
- 721      FF
- 722 060d 8945FC   		movl	%eax, -4(%rbp)
- 723              	.L56:
- 298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 724              		.loc 1 301 0
- 725 0610 8B45FC   		movl	-4(%rbp), %eax
- 302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 726              		.loc 1 302 0
- 727 0613 C9       		leave
- 728 0614 C3       		ret
- 729              		.cfi_endproc
- 730              	.LFE522:
- 731              		.size	KCipherVecDecrypt, .-KCipherVecDecrypt
- 732              		.type	KCipherVecEncryptEcb, @function
- 733              	KCipherVecEncryptEcb:
- 734              	.LFB523:
- 303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 22
-
-
- 305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ====================
- 306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * longer runs of multiple blocks.
- 307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * The algorithms are well defined and standard in most cases
- 309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * These aremore or elss equivalent to class functions as they do not depend upon
- 311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * the operation of the cipher and the algorithms are independent of anything about
- 312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * the cipher other than its block size.
- 313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT: plain text block
- 315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT: cipher text block
- 316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * EK: encryption key
- 317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * DK: decryption key (might be sthe same as EK)
- 318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * ENC: encrypt cipher function on a block using a key
- 319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * DEC: decrypt cipher function on a block using a key
- 320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * IV: initialization vector - used as feedback for chaining
- 321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * N:  number used once (nonce)
- 322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB: feedback is the next IV in a chained/feedback mode
- 323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* -----
- 327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * NOTE:
- 328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * 'in' can be the same as 'out' but other overlaps are dangers as a block at a
- 329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * time is written. The code does not look for overlaps at this point.
- 330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Electronic Code Book - simple cipher with no chaining feedback  just iterate
- 334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * simple encrypt/decrypt with the plain, text, cipher text and key/
- 335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = ENC (PT,EK)
- 337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = DEC (CT,DK)
- 338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* -----
- 341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * NOTE: currently an implmentation detail limits us to 8192 bit cipher block
- 342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * size.  Changing MAX_BLOCK_SIZE in cipher.c can up that limit without 
- 343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * causing any other compatibility issues. 
- 344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Two local byte arrays are defined on the stack of 1024 bytes or 8192 bits.
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_cou
- 349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 735              		.loc 1 349 0
- 736              		.cfi_startproc
- 737 0615 55       		pushq	%rbp
- 738              	.LCFI30:
- 739              		.cfi_def_cfa_offset 16
- 740 0616 4889E5   		movq	%rsp, %rbp
- 741              		.cfi_offset 6, -16
- 742              	.LCFI31:
- 743              		.cfi_def_cfa_register 6
- 744 0619 4883EC30 		subq	$48, %rsp
- 745 061d 48897DE8 		movq	%rdi, -24(%rbp)
- 746 0621 488975E0 		movq	%rsi, -32(%rbp)
-
GAS LISTING /tmp/ccq6ONvw.s 			page 23
-
-
- 747 0625 488955D8 		movq	%rdx, -40(%rbp)
- 748 0629 894DD4   		movl	%ecx, -44(%rbp)
- 350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 749              		.loc 1 353 0
- 750 062c 488B45E0 		movq	-32(%rbp), %rax
- 751 0630 488945F0 		movq	%rax, -16(%rbp)
- 752 0634 488B45D8 		movq	-40(%rbp), %rax
- 753 0638 488945F8 		movq	%rax, -8(%rbp)
- 754 063c EB31     		jmp	.L59
- 755              	.L60:
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CMEMBER(EncryptV1Int)(self, pin, pout);
- 756              		.loc 1 357 0
- 757 063e 488B55F8 		movq	-8(%rbp), %rdx
- 758 0642 488B4DF0 		movq	-16(%rbp), %rcx
- 759 0646 488B45E8 		movq	-24(%rbp), %rax
- 760 064a 4889CE   		movq	%rcx, %rsi
- 761 064d 4889C7   		movq	%rax, %rdi
- 762 0650 E84BFEFF 		call	KCipherVecEncryptV1Int
- 762      FF
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 763              		.loc 1 355 0
- 764 0655 488B45E8 		movq	-24(%rbp), %rax
- 765 0659 8B4004   		movl	4(%rax), %eax
- 766 065c 89C0     		mov	%eax, %eax
- 767 065e 480145F0 		addq	%rax, -16(%rbp)
- 768 0662 488B45E8 		movq	-24(%rbp), %rax
- 769 0666 8B4004   		movl	4(%rax), %eax
- 770 0669 89C0     		mov	%eax, %eax
- 771 066b 480145F8 		addq	%rax, -8(%rbp)
- 772              	.L59:
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 773              		.loc 1 354 0
- 774 066f 837DD400 		cmpl	$0, -44(%rbp)
- 775 0673 0F95C0   		setne	%al
- 776 0676 836DD401 		subl	$1, -44(%rbp)
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 777              		.loc 1 353 0
- 778 067a 84C0     		testb	%al, %al
- 779 067c 75C0     		jne	.L60
- 358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 780              		.loc 1 359 0
- 781 067e B8000000 		movl	$0, %eax
- 781      00
- 360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 782              		.loc 1 360 0
- 783 0683 C9       		leave
- 784 0684 C3       		ret
- 785              		.cfi_endproc
- 786              	.LFE523:
- 787              		.size	KCipherVecEncryptEcb, .-KCipherVecEncryptEcb
-
GAS LISTING /tmp/ccq6ONvw.s 			page 24
-
-
- 788              		.type	KCipherVecDecryptEcb, @function
- 789              	KCipherVecDecryptEcb:
- 790              	.LFB524:
- 361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_cou
- 365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 791              		.loc 1 365 0
- 792              		.cfi_startproc
- 793 0685 55       		pushq	%rbp
- 794              	.LCFI32:
- 795              		.cfi_def_cfa_offset 16
- 796 0686 4889E5   		movq	%rsp, %rbp
- 797              		.cfi_offset 6, -16
- 798              	.LCFI33:
- 799              		.cfi_def_cfa_register 6
- 800 0689 4883EC30 		subq	$48, %rsp
- 801 068d 48897DE8 		movq	%rdi, -24(%rbp)
- 802 0691 488975E0 		movq	%rsi, -32(%rbp)
- 803 0695 488955D8 		movq	%rdx, -40(%rbp)
- 804 0699 894DD4   		movl	%ecx, -44(%rbp)
- 366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 805              		.loc 1 369 0
- 806 069c 488B45E0 		movq	-32(%rbp), %rax
- 807 06a0 488945F0 		movq	%rax, -16(%rbp)
- 808 06a4 488B45D8 		movq	-40(%rbp), %rax
- 809 06a8 488945F8 		movq	%rax, -8(%rbp)
- 810 06ac EB31     		jmp	.L63
- 811              	.L64:
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CMEMBER(DecryptV1Int)(self, pin, pout);
- 812              		.loc 1 373 0
- 813 06ae 488B55F8 		movq	-8(%rbp), %rdx
- 814 06b2 488B4DF0 		movq	-16(%rbp), %rcx
- 815 06b6 488B45E8 		movq	-24(%rbp), %rax
- 816 06ba 4889CE   		movq	%rcx, %rsi
- 817 06bd 4889C7   		movq	%rax, %rdi
- 818 06c0 E82EFEFF 		call	KCipherVecDecryptV1Int
- 818      FF
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 819              		.loc 1 371 0
- 820 06c5 488B45E8 		movq	-24(%rbp), %rax
- 821 06c9 8B4004   		movl	4(%rax), %eax
- 822 06cc 89C0     		mov	%eax, %eax
- 823 06ce 480145F0 		addq	%rax, -16(%rbp)
- 824 06d2 488B45E8 		movq	-24(%rbp), %rax
- 825 06d6 8B4004   		movl	4(%rax), %eax
- 826 06d9 89C0     		mov	%eax, %eax
- 827 06db 480145F8 		addq	%rax, -8(%rbp)
- 828              	.L63:
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 25
-
-
- 829              		.loc 1 370 0
- 830 06df 837DD400 		cmpl	$0, -44(%rbp)
- 831 06e3 0F95C0   		setne	%al
- 832 06e6 836DD401 		subl	$1, -44(%rbp)
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 833              		.loc 1 369 0
- 834 06ea 84C0     		testb	%al, %al
- 835 06ec 75C0     		jne	.L64
- 374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 836              		.loc 1 376 0
- 837 06ee B8000000 		movl	$0, %eax
- 837      00
- 377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 838              		.loc 1 377 0
- 839 06f3 C9       		leave
- 840 06f4 C3       		ret
- 841              		.cfi_endproc
- 842              	.LFE524:
- 843              		.size	KCipherVecDecryptEcb, .-KCipherVecDecryptEcb
- 844              		.type	KCipherVecEncryptCbc, @function
- 845              	KCipherVecEncryptCbc:
- 846              	.LFB525:
- 378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Cipher-Block Chaining
- 382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = (FB = ENC (PT^IV, EK))
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = DEC ((FB = CT), DK)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 847              		.loc 1 387 0
- 848              		.cfi_startproc
- 849 06f5 55       		pushq	%rbp
- 850              	.LCFI34:
- 851              		.cfi_def_cfa_offset 16
- 852 06f6 4889E5   		movq	%rsp, %rbp
- 853              		.cfi_offset 6, -16
- 854              	.LCFI35:
- 855              		.cfi_def_cfa_register 6
- 856 06f9 4883EC50 		subq	$80, %rsp
- 857 06fd 48897DC8 		movq	%rdi, -56(%rbp)
- 858 0701 488975C0 		movq	%rsi, -64(%rbp)
- 859 0705 488955B8 		movq	%rdx, -72(%rbp)
- 860 0709 894DB4   		movl	%ecx, -76(%rbp)
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = CipherVecIn (self->dad.encrypt_ivec);
-
GAS LISTING /tmp/ccq6ONvw.s 			page 26
-
-
- 861              		.loc 1 396 0
- 862 070c 488B45C8 		movq	-56(%rbp), %rax
- 863 0710 488B4028 		movq	40(%rax), %rax
- 864 0714 4889C7   		movq	%rax, %rdi
- 865 0717 E8E4F8FF 		call	CipherVecIn
- 865      FF
- 866 071c F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 866      E0
- 397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 867              		.loc 1 399 0
- 868 0721 488B45C0 		movq	-64(%rbp), %rax
- 869 0725 488945F0 		movq	%rax, -16(%rbp)
- 870 0729 488B45B8 		movq	-72(%rbp), %rax
- 871 072d 488945F8 		movq	%rax, -8(%rbp)
- 872 0731 EB65     		jmp	.L67
- 873              	.L68:
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 874              		.loc 1 403 0
- 875 0733 488B45F0 		movq	-16(%rbp), %rax
- 876 0737 4889C7   		movq	%rax, %rdi
- 877 073a E8C1F8FF 		call	CipherVecIn
- 877      FF
- 878 073f F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 878      D0
- 404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 879              		.loc 1 404 0
- 880 0744 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 880      E0
- 881 0749 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 881      D0
- 882 074e 660FEFC1 		pxor	%xmm1, %xmm0
- 883 0752 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 883      D0
- 405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, cv);
- 884              		.loc 1 405 0
- 885 0757 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 885      D0
- 886 075c 488B45C8 		movq	-56(%rbp), %rax
- 887 0760 4889C7   		movq	%rax, %rdi
- 888 0763 E8EAFCFF 		call	KCipherVecEncryptV1
- 888      FF
- 889 0768 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 889      E0
- 406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (ivec, pout);
- 890              		.loc 1 406 0
- 891 076d 488B45F8 		movq	-8(%rbp), %rax
- 892 0771 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 892      E0
- 893 0776 4889C7   		movq	%rax, %rdi
- 894 0779 E8ADF8FF 		call	CipherVecOut
- 894      FF
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
-
GAS LISTING /tmp/ccq6ONvw.s 			page 27
-
-
- 895              		.loc 1 401 0
- 896 077e 488B45C8 		movq	-56(%rbp), %rax
- 897 0782 8B4004   		movl	4(%rax), %eax
- 898 0785 89C0     		mov	%eax, %eax
- 899 0787 480145F0 		addq	%rax, -16(%rbp)
- 900 078b 488B45C8 		movq	-56(%rbp), %rax
- 901 078f 8B4004   		movl	4(%rax), %eax
- 902 0792 89C0     		mov	%eax, %eax
- 903 0794 480145F8 		addq	%rax, -8(%rbp)
- 904              	.L67:
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 905              		.loc 1 400 0
- 906 0798 837DB400 		cmpl	$0, -76(%rbp)
- 907 079c 0F95C0   		setne	%al
- 908 079f 836DB401 		subl	$1, -76(%rbp)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 909              		.loc 1 399 0
- 910 07a3 84C0     		testb	%al, %al
- 911 07a5 758C     		jne	.L68
- 407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut (ivec, self->dad.encrypt_ivec);
- 912              		.loc 1 412 0
- 913 07a7 488B45C8 		movq	-56(%rbp), %rax
- 914 07ab 488B4028 		movq	40(%rax), %rax
- 915 07af F30F6F45 		movdqu	-32(%rbp), %xmm0
- 915      E0
- 916 07b4 4889C7   		movq	%rax, %rdi
- 917 07b7 E86FF8FF 		call	CipherVecOut
- 917      FF
- 413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 918              		.loc 1 415 0
- 919 07bc B8000000 		movl	$0, %eax
- 919      00
- 416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }    
- 920              		.loc 1 416 0
- 921 07c1 C9       		leave
- 922 07c2 C3       		ret
- 923              		.cfi_endproc
- 924              	.LFE525:
- 925              		.size	KCipherVecEncryptCbc, .-KCipherVecEncryptCbc
- 926              		.type	KCipherVecDecryptCbc, @function
- 927              	KCipherVecDecryptCbc:
- 928              	.LFB526:
- 417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 929              		.loc 1 421 0
- 930              		.cfi_startproc
- 931 07c3 55       		pushq	%rbp
-
GAS LISTING /tmp/ccq6ONvw.s 			page 28
-
-
- 932              	.LCFI36:
- 933              		.cfi_def_cfa_offset 16
- 934 07c4 4889E5   		movq	%rsp, %rbp
- 935              		.cfi_offset 6, -16
- 936              	.LCFI37:
- 937              		.cfi_def_cfa_register 6
- 938 07c7 4883EC60 		subq	$96, %rsp
- 939 07cb 48897DB8 		movq	%rdi, -72(%rbp)
- 940 07cf 488975B0 		movq	%rsi, -80(%rbp)
- 941 07d3 488955A8 		movq	%rdx, -88(%rbp)
- 942 07d7 894DA4   		movl	%ecx, -92(%rbp)
- 422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = CipherVecIn (self->dad.decrypt_ivec);
- 943              		.loc 1 427 0
- 944 07da 488B45B8 		movq	-72(%rbp), %rax
- 945 07de 488B4030 		movq	48(%rax), %rax
- 946 07e2 4889C7   		movq	%rax, %rdi
- 947 07e5 E816F8FF 		call	CipherVecIn
- 947      FF
- 948 07ea F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 948      D0
- 428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 949              		.loc 1 429 0
- 950 07ef 488B45B0 		movq	-80(%rbp), %rax
- 951 07f3 488945E0 		movq	%rax, -32(%rbp)
- 952 07f7 488B45A8 		movq	-88(%rbp), %rax
- 953 07fb 488945E8 		movq	%rax, -24(%rbp)
- 954 07ff EB6F     		jmp	.L71
- 955              	.L72:
- 956              	.LBB2:
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 957              		.loc 1 435 0
- 958 0801 488B45E0 		movq	-32(%rbp), %rax
- 959 0805 4889C7   		movq	%rax, %rdi
- 960 0808 E8F3F7FF 		call	CipherVecIn
- 960      FF
- 961 080d F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 961      C0
- 436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = cv;
- 438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, temp);
- 439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, cv);
- 962              		.loc 1 440 0
- 963 0812 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 963      C0
- 964 0817 488B45B8 		movq	-72(%rbp), %rax
-
GAS LISTING /tmp/ccq6ONvw.s 			page 29
-
-
- 965 081b 4889C7   		movq	%rax, %rdi
- 966 081e E856FCFF 		call	KCipherVecDecryptV1
- 966      FF
- 967 0823 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 967      F0
- 441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp ^= ivec;
- 968              		.loc 1 442 0
- 969 0828 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 969      D0
- 970 082d F30F6F4D 		movdqu	-16(%rbp), %xmm1
- 970      F0
- 971 0832 660FEFC1 		pxor	%xmm1, %xmm0
- 972 0836 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 972      F0
- 443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 973              		.loc 1 443 0
- 974 083b 488B45E8 		movq	-24(%rbp), %rax
- 975 083f F30F6F45 		movdqu	-16(%rbp), %xmm0
- 975      F0
- 976 0844 4889C7   		movq	%rax, %rdi
- 977 0847 E8DFF7FF 		call	CipherVecOut
- 977      FF
- 444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = cv;
- 978              		.loc 1 444 0
- 979 084c F30F6F45 		movdqu	-64(%rbp), %xmm0
- 979      C0
- 980 0851 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 980      D0
- 981              	.LBE2:
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 982              		.loc 1 431 0
- 983 0856 488B45B8 		movq	-72(%rbp), %rax
- 984 085a 8B4004   		movl	4(%rax), %eax
- 985 085d 89C0     		mov	%eax, %eax
- 986 085f 480145E0 		addq	%rax, -32(%rbp)
- 987 0863 488B45B8 		movq	-72(%rbp), %rax
- 988 0867 8B4004   		movl	4(%rax), %eax
- 989 086a 89C0     		mov	%eax, %eax
- 990 086c 480145E8 		addq	%rax, -24(%rbp)
- 991              	.L71:
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 992              		.loc 1 430 0
- 993 0870 837DA400 		cmpl	$0, -92(%rbp)
- 994 0874 0F95C0   		setne	%al
- 995 0877 836DA401 		subl	$1, -92(%rbp)
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 996              		.loc 1 429 0
- 997 087b 84C0     		testb	%al, %al
- 998 087d 7582     		jne	.L72
- 445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.decrypt_ivec = ivec;
- 999              		.loc 1 447 0
- 1000 087f 488B45B8 		movq	-72(%rbp), %rax
- 1001 0883 488B4030 		movq	48(%rax), %rax
- 1002 0887 F30F6F45 		movdqu	-48(%rbp), %xmm0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 30
-
-
- 1002      D0
- 1003 088c F30F7F00 		movdqu	%xmm0, (%rax)
- 448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1004              		.loc 1 448 0
- 1005 0890 B8000000 		movl	$0, %eax
- 1005      00
- 449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1006              		.loc 1 449 0
- 1007 0895 C9       		leave
- 1008 0896 C3       		ret
- 1009              		.cfi_endproc
- 1010              	.LFE526:
- 1011              		.size	KCipherVecDecryptCbc, .-KCipherVecDecryptCbc
- 1012              		.type	KCipherVecEncryptPcbc, @function
- 1013              	KCipherVecEncryptPcbc:
- 1014              	.LFB527:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Propagating cipher-block chaining
- 454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB = PT ^ (CT = ENC ((PT^IV), EK))
- 455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB = CT ^ (PT = DEC (CT,DK) ^ IV)
- 456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1015              		.loc 1 459 0
- 1016              		.cfi_startproc
- 1017 0897 55       		pushq	%rbp
- 1018              	.LCFI38:
- 1019              		.cfi_def_cfa_offset 16
- 1020 0898 4889E5   		movq	%rsp, %rbp
- 1021              		.cfi_offset 6, -16
- 1022              	.LCFI39:
- 1023              		.cfi_def_cfa_register 6
- 1024 089b 4883EC60 		subq	$96, %rsp
- 1025 089f 48897DB8 		movq	%rdi, -72(%rbp)
- 1026 08a3 488975B0 		movq	%rsi, -80(%rbp)
- 1027 08a7 488955A8 		movq	%rdx, -88(%rbp)
- 1028 08ab 894DA4   		movl	%ecx, -92(%rbp)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1029              		.loc 1 466 0
- 1030 08ae 488B45B8 		movq	-72(%rbp), %rax
- 1031 08b2 488B4028 		movq	40(%rax), %rax
- 1032 08b6 660F6F00 		movdqa	(%rax), %xmm0
- 1033 08ba F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1033      D0
- 467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1034              		.loc 1 468 0
- 1035 08bf 488B45B0 		movq	-80(%rbp), %rax
-
GAS LISTING /tmp/ccq6ONvw.s 			page 31
-
-
- 1036 08c3 488945E0 		movq	%rax, -32(%rbp)
- 1037 08c7 488B45A8 		movq	-88(%rbp), %rax
- 1038 08cb 488945E8 		movq	%rax, -24(%rbp)
- 1039 08cf EB78     		jmp	.L75
- 1040              	.L76:
- 1041              	.LBB3:
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1042              		.loc 1 474 0
- 1043 08d1 488B45E0 		movq	-32(%rbp), %rax
- 1044 08d5 4889C7   		movq	%rax, %rdi
- 1045 08d8 E823F7FF 		call	CipherVecIn
- 1045      FF
- 1046 08dd F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 1046      C0
- 475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = cv ^ ivec;
- 1047              		.loc 1 475 0
- 1048 08e2 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1048      D0
- 1049 08e7 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 1049      C0
- 1050 08ec 660FEFC1 		pxor	%xmm1, %xmm0
- 1051 08f0 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1051      F0
- 476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(EncryptV1)(self, temp); 
- 1052              		.loc 1 476 0
- 1053 08f5 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1053      F0
- 1054 08fa 488B45B8 		movq	-72(%rbp), %rax
- 1055 08fe 4889C7   		movq	%rax, %rdi
- 1056 0901 E84CFBFF 		call	KCipherVecEncryptV1
- 1056      FF
- 1057 0906 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1057      F0
- 477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = cv ^ temp;
- 1058              		.loc 1 477 0
- 1059 090b F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1059      F0
- 1060 0910 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 1060      C0
- 1061 0915 660FEFC1 		pxor	%xmm1, %xmm0
- 1062 0919 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1062      D0
- 478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 1063              		.loc 1 478 0
- 1064 091e 488B45E8 		movq	-24(%rbp), %rax
- 1065 0922 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1065      F0
- 1066 0927 4889C7   		movq	%rax, %rdi
- 1067 092a E8FCF6FF 		call	CipherVecOut
- 1067      FF
- 1068              	.LBE3:
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
-
GAS LISTING /tmp/ccq6ONvw.s 			page 32
-
-
- 1069              		.loc 1 470 0
- 1070 092f 488B45B8 		movq	-72(%rbp), %rax
- 1071 0933 8B4004   		movl	4(%rax), %eax
- 1072 0936 89C0     		mov	%eax, %eax
- 1073 0938 480145E0 		addq	%rax, -32(%rbp)
- 1074 093c 488B45B8 		movq	-72(%rbp), %rax
- 1075 0940 8B4004   		movl	4(%rax), %eax
- 1076 0943 89C0     		mov	%eax, %eax
- 1077 0945 480145E8 		addq	%rax, -24(%rbp)
- 1078              	.L75:
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1079              		.loc 1 469 0
- 1080 0949 837DA400 		cmpl	$0, -92(%rbp)
- 1081 094d 0F95C0   		setne	%al
- 1082 0950 836DA401 		subl	$1, -92(%rbp)
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1083              		.loc 1 468 0
- 1084 0954 84C0     		testb	%al, %al
- 1085 0956 0F8575FF 		jne	.L76
- 1085      FFFF
- 479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1086              		.loc 1 481 0
- 1087 095c 488B45B8 		movq	-72(%rbp), %rax
- 1088 0960 488B4028 		movq	40(%rax), %rax
- 1089 0964 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1089      D0
- 1090 0969 F30F7F00 		movdqu	%xmm0, (%rax)
- 482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1091              		.loc 1 483 0
- 1092 096d B8000000 		movl	$0, %eax
- 1092      00
- 484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1093              		.loc 1 487 0
- 1094 0972 C9       		leave
- 1095 0973 C3       		ret
- 1096              		.cfi_endproc
- 1097              	.LFE527:
- 1098              		.size	KCipherVecEncryptPcbc, .-KCipherVecEncryptPcbc
- 1099              		.type	KCipherVecDecryptPcbc, @function
- 1100              	KCipherVecDecryptPcbc:
- 1101              	.LFB528:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1102              		.loc 1 492 0
- 1103              		.cfi_startproc
- 1104 0974 55       		pushq	%rbp
- 1105              	.LCFI40:
- 1106              		.cfi_def_cfa_offset 16
-
GAS LISTING /tmp/ccq6ONvw.s 			page 33
-
-
- 1107 0975 4889E5   		movq	%rsp, %rbp
- 1108              		.cfi_offset 6, -16
- 1109              	.LCFI41:
- 1110              		.cfi_def_cfa_register 6
- 1111 0978 4883EC60 		subq	$96, %rsp
- 1112 097c 48897DB8 		movq	%rdi, -72(%rbp)
- 1113 0980 488975B0 		movq	%rsi, -80(%rbp)
- 1114 0984 488955A8 		movq	%rdx, -88(%rbp)
- 1115 0988 894DA4   		movl	%ecx, -92(%rbp)
- 493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1116              		.loc 1 499 0
- 1117 098b 488B45B8 		movq	-72(%rbp), %rax
- 1118 098f 488B4028 		movq	40(%rax), %rax
- 1119 0993 660F6F00 		movdqa	(%rax), %xmm0
- 1120 0997 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1120      D0
- 500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1121              		.loc 1 501 0
- 1122 099c 488B45B0 		movq	-80(%rbp), %rax
- 1123 09a0 488945E0 		movq	%rax, -32(%rbp)
- 1124 09a4 488B45A8 		movq	-88(%rbp), %rax
- 1125 09a8 488945E8 		movq	%rax, -24(%rbp)
- 1126 09ac EB65     		jmp	.L79
- 1127              	.L80:
- 1128              	.LBB4:
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1129              		.loc 1 507 0
- 1130 09ae 488B45E0 		movq	-32(%rbp), %rax
- 1131 09b2 4889C7   		movq	%rax, %rdi
- 1132 09b5 E846F6FF 		call	CipherVecIn
- 1132      FF
- 1133 09ba F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 1133      C0
- 508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, cv);
- 1134              		.loc 1 508 0
- 1135 09bf F30F6F45 		movdqu	-64(%rbp), %xmm0
- 1135      C0
- 1136 09c4 488B45B8 		movq	-72(%rbp), %rax
- 1137 09c8 4889C7   		movq	%rax, %rdi
- 1138 09cb E8A9FAFF 		call	KCipherVecDecryptV1
- 1138      FF
- 1139 09d0 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1139      F0
- 509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec ^= temp;
- 1140              		.loc 1 509 0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 34
-
-
- 1141 09d5 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1141      F0
- 1142 09da F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1142      D0
- 1143 09df 660FEFC1 		pxor	%xmm1, %xmm0
- 1144 09e3 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1144      D0
- 510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 1145              		.loc 1 510 0
- 1146 09e8 488B45E8 		movq	-24(%rbp), %rax
- 1147 09ec F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1147      F0
- 1148 09f1 4889C7   		movq	%rax, %rdi
- 1149 09f4 E832F6FF 		call	CipherVecOut
- 1149      FF
- 1150              	.LBE4:
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1151              		.loc 1 503 0
- 1152 09f9 488B45B8 		movq	-72(%rbp), %rax
- 1153 09fd 8B4004   		movl	4(%rax), %eax
- 1154 0a00 89C0     		mov	%eax, %eax
- 1155 0a02 480145E0 		addq	%rax, -32(%rbp)
- 1156 0a06 488B45B8 		movq	-72(%rbp), %rax
- 1157 0a0a 8B4004   		movl	4(%rax), %eax
- 1158 0a0d 89C0     		mov	%eax, %eax
- 1159 0a0f 480145E8 		addq	%rax, -24(%rbp)
- 1160              	.L79:
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1161              		.loc 1 502 0
- 1162 0a13 837DA400 		cmpl	$0, -92(%rbp)
- 1163 0a17 0F95C0   		setne	%al
- 1164 0a1a 836DA401 		subl	$1, -92(%rbp)
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1165              		.loc 1 501 0
- 1166 0a1e 84C0     		testb	%al, %al
- 1167 0a20 758C     		jne	.L80
- 511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1168              		.loc 1 513 0
- 1169 0a22 488B45B8 		movq	-72(%rbp), %rax
- 1170 0a26 488B4028 		movq	40(%rax), %rax
- 1171 0a2a F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1171      D0
- 1172 0a2f F30F7F00 		movdqu	%xmm0, (%rax)
- 514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1173              		.loc 1 515 0
- 1174 0a33 B8000000 		movl	$0, %eax
- 1174      00
- 516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1175              		.loc 1 519 0
- 1176 0a38 C9       		leave
- 1177 0a39 C3       		ret
-
GAS LISTING /tmp/ccq6ONvw.s 			page 35
-
-
- 1178              		.cfi_endproc
- 1179              	.LFE528:
- 1180              		.size	KCipherVecDecryptPcbc, .-KCipherVecDecryptPcbc
- 1181              		.type	KCipherVecEncryptCfb, @function
- 1182              	KCipherVecEncryptCfb:
- 1183              	.LFB529:
- 520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Cipher Feedback
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = (FB = PT) ^ ENC (IV, EK))
- 525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = (FB = CT) ^ DEC (IV, DK)
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1184              		.loc 1 529 0
- 1185              		.cfi_startproc
- 1186 0a3a 55       		pushq	%rbp
- 1187              	.LCFI42:
- 1188              		.cfi_def_cfa_offset 16
- 1189 0a3b 4889E5   		movq	%rsp, %rbp
- 1190              		.cfi_offset 6, -16
- 1191              	.LCFI43:
- 1192              		.cfi_def_cfa_register 6
- 1193 0a3e 4883EC50 		subq	$80, %rsp
- 1194 0a42 48897DC8 		movq	%rdi, -56(%rbp)
- 1195 0a46 488975C0 		movq	%rsi, -64(%rbp)
- 1196 0a4a 488955B8 		movq	%rdx, -72(%rbp)
- 1197 0a4e 894DB4   		movl	%ecx, -76(%rbp)
- 530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1198              		.loc 1 536 0
- 1199 0a51 488B45C8 		movq	-56(%rbp), %rax
- 1200 0a55 488B4028 		movq	40(%rax), %rax
- 1201 0a59 660F6F00 		movdqa	(%rax), %xmm0
- 1202 0a5d F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1202      E0
- 537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1203              		.loc 1 538 0
- 1204 0a62 488B45C0 		movq	-64(%rbp), %rax
- 1205 0a66 488945F0 		movq	%rax, -16(%rbp)
- 1206 0a6a 488B45B8 		movq	-72(%rbp), %rax
- 1207 0a6e 488945F8 		movq	%rax, -8(%rbp)
- 1208 0a72 EB65     		jmp	.L83
- 1209              	.L84:
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, ivec); 
- 1210              		.loc 1 542 0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 36
-
-
- 1211 0a74 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1211      E0
- 1212 0a79 488B45C8 		movq	-56(%rbp), %rax
- 1213 0a7d 4889C7   		movq	%rax, %rdi
- 1214 0a80 E8CDF9FF 		call	KCipherVecEncryptV1
- 1214      FF
- 1215 0a85 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1215      E0
- 543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1216              		.loc 1 543 0
- 1217 0a8a 488B45F0 		movq	-16(%rbp), %rax
- 1218 0a8e 4889C7   		movq	%rax, %rdi
- 1219 0a91 E86AF5FF 		call	CipherVecIn
- 1219      FF
- 1220 0a96 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1220      D0
- 544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec ^= cv;
- 1221              		.loc 1 544 0
- 1222 0a9b F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1222      D0
- 1223 0aa0 F30F6F4D 		movdqu	-32(%rbp), %xmm1
- 1223      E0
- 1224 0aa5 660FEFC1 		pxor	%xmm1, %xmm0
- 1225 0aa9 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1225      E0
- 545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (ivec, pout);
- 1226              		.loc 1 545 0
- 1227 0aae 488B45F8 		movq	-8(%rbp), %rax
- 1228 0ab2 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1228      E0
- 1229 0ab7 4889C7   		movq	%rax, %rdi
- 1230 0aba E86CF5FF 		call	CipherVecOut
- 1230      FF
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1231              		.loc 1 540 0
- 1232 0abf 488B45C8 		movq	-56(%rbp), %rax
- 1233 0ac3 8B4004   		movl	4(%rax), %eax
- 1234 0ac6 89C0     		mov	%eax, %eax
- 1235 0ac8 480145F0 		addq	%rax, -16(%rbp)
- 1236 0acc 488B45C8 		movq	-56(%rbp), %rax
- 1237 0ad0 8B4004   		movl	4(%rax), %eax
- 1238 0ad3 89C0     		mov	%eax, %eax
- 1239 0ad5 480145F8 		addq	%rax, -8(%rbp)
- 1240              	.L83:
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1241              		.loc 1 539 0
- 1242 0ad9 837DB400 		cmpl	$0, -76(%rbp)
- 1243 0add 0F95C0   		setne	%al
- 1244 0ae0 836DB401 		subl	$1, -76(%rbp)
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1245              		.loc 1 538 0
- 1246 0ae4 84C0     		testb	%al, %al
- 1247 0ae6 758C     		jne	.L84
- 546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1248              		.loc 1 548 0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 37
-
-
- 1249 0ae8 488B45C8 		movq	-56(%rbp), %rax
- 1250 0aec 488B4028 		movq	40(%rax), %rax
- 1251 0af0 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1251      E0
- 1252 0af5 F30F7F00 		movdqu	%xmm0, (%rax)
- 549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1253              		.loc 1 550 0
- 1254 0af9 B8000000 		movl	$0, %eax
- 1254      00
- 551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1255              		.loc 1 554 0
- 1256 0afe C9       		leave
- 1257 0aff C3       		ret
- 1258              		.cfi_endproc
- 1259              	.LFE529:
- 1260              		.size	KCipherVecEncryptCfb, .-KCipherVecEncryptCfb
- 1261              		.type	KCipherVecDecryptCfb, @function
- 1262              	KCipherVecDecryptCfb:
- 1263              	.LFB530:
- 555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1264              		.loc 1 559 0
- 1265              		.cfi_startproc
- 1266 0b00 55       		pushq	%rbp
- 1267              	.LCFI44:
- 1268              		.cfi_def_cfa_offset 16
- 1269 0b01 4889E5   		movq	%rsp, %rbp
- 1270              		.cfi_offset 6, -16
- 1271              	.LCFI45:
- 1272              		.cfi_def_cfa_register 6
- 1273 0b04 4883EC50 		subq	$80, %rsp
- 1274 0b08 48897DC8 		movq	%rdi, -56(%rbp)
- 1275 0b0c 488975C0 		movq	%rsi, -64(%rbp)
- 1276 0b10 488955B8 		movq	%rdx, -72(%rbp)
- 1277 0b14 894DB4   		movl	%ecx, -76(%rbp)
- 560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1278              		.loc 1 566 0
- 1279 0b17 488B45C8 		movq	-56(%rbp), %rax
- 1280 0b1b 488B4028 		movq	40(%rax), %rax
- 1281 0b1f 660F6F00 		movdqa	(%rax), %xmm0
- 1282 0b23 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1282      E0
- 567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
-
GAS LISTING /tmp/ccq6ONvw.s 			page 38
-
-
- 1283              		.loc 1 568 0
- 1284 0b28 488B45C0 		movq	-64(%rbp), %rax
- 1285 0b2c 488945F0 		movq	%rax, -16(%rbp)
- 1286 0b30 488B45B8 		movq	-72(%rbp), %rax
- 1287 0b34 488945F8 		movq	%rax, -8(%rbp)
- 1288 0b38 EB65     		jmp	.L87
- 1289              	.L88:
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CMEMBER(EncryptV1)(self, ivec); 
- 1290              		.loc 1 572 0
- 1291 0b3a F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1291      E0
- 1292 0b3f 488B45C8 		movq	-56(%rbp), %rax
- 1293 0b43 4889C7   		movq	%rax, %rdi
- 1294 0b46 E807F9FF 		call	KCipherVecEncryptV1
- 1294      FF
- 1295 0b4b F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1295      D0
- 573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CipherVecIn (pin);
- 1296              		.loc 1 573 0
- 1297 0b50 488B45F0 		movq	-16(%rbp), %rax
- 1298 0b54 4889C7   		movq	%rax, %rdi
- 1299 0b57 E8A4F4FF 		call	CipherVecIn
- 1299      FF
- 1300 0b5c F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1300      E0
- 574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 1301              		.loc 1 574 0
- 1302 0b61 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1302      E0
- 1303 0b66 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1303      D0
- 1304 0b6b 660FEFC1 		pxor	%xmm1, %xmm0
- 1305 0b6f F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1305      D0
- 575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (cv, pout);
- 1306              		.loc 1 575 0
- 1307 0b74 488B45F8 		movq	-8(%rbp), %rax
- 1308 0b78 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1308      D0
- 1309 0b7d 4889C7   		movq	%rax, %rdi
- 1310 0b80 E8A6F4FF 		call	CipherVecOut
- 1310      FF
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1311              		.loc 1 570 0
- 1312 0b85 488B45C8 		movq	-56(%rbp), %rax
- 1313 0b89 8B4004   		movl	4(%rax), %eax
- 1314 0b8c 89C0     		mov	%eax, %eax
- 1315 0b8e 480145F0 		addq	%rax, -16(%rbp)
- 1316 0b92 488B45C8 		movq	-56(%rbp), %rax
- 1317 0b96 8B4004   		movl	4(%rax), %eax
- 1318 0b99 89C0     		mov	%eax, %eax
- 1319 0b9b 480145F8 		addq	%rax, -8(%rbp)
- 1320              	.L87:
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 39
-
-
- 1321              		.loc 1 569 0
- 1322 0b9f 837DB400 		cmpl	$0, -76(%rbp)
- 1323 0ba3 0F95C0   		setne	%al
- 1324 0ba6 836DB401 		subl	$1, -76(%rbp)
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1325              		.loc 1 568 0
- 1326 0baa 84C0     		testb	%al, %al
- 1327 0bac 758C     		jne	.L88
- 576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1328              		.loc 1 578 0
- 1329 0bae 488B45C8 		movq	-56(%rbp), %rax
- 1330 0bb2 488B4028 		movq	40(%rax), %rax
- 1331 0bb6 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1331      E0
- 1332 0bbb F30F7F00 		movdqu	%xmm0, (%rax)
- 579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1333              		.loc 1 580 0
- 1334 0bbf B8000000 		movl	$0, %eax
- 1334      00
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1335              		.loc 1 584 0
- 1336 0bc4 C9       		leave
- 1337 0bc5 C3       		ret
- 1338              		.cfi_endproc
- 1339              	.LFE530:
- 1340              		.size	KCipherVecDecryptCfb, .-KCipherVecDecryptCfb
- 1341              		.type	KCipherVecEncryptOfb, @function
- 1342              	KCipherVecEncryptOfb:
- 1343              	.LFB531:
- 585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Output Feedback
- 589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = PT ^ (FB = ENC (IV, EK))
- 590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = CT ^ (FB = DEC (IV, DK))
- 591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1344              		.loc 1 594 0
- 1345              		.cfi_startproc
- 1346 0bc6 55       		pushq	%rbp
- 1347              	.LCFI46:
- 1348              		.cfi_def_cfa_offset 16
- 1349 0bc7 4889E5   		movq	%rsp, %rbp
- 1350              		.cfi_offset 6, -16
- 1351              	.LCFI47:
- 1352              		.cfi_def_cfa_register 6
- 1353 0bca 4883EC50 		subq	$80, %rsp
- 1354 0bce 48897DC8 		movq	%rdi, -56(%rbp)
- 1355 0bd2 488975C0 		movq	%rsi, -64(%rbp)
-
GAS LISTING /tmp/ccq6ONvw.s 			page 40
-
-
- 1356 0bd6 488955B8 		movq	%rdx, -72(%rbp)
- 1357 0bda 894DB4   		movl	%ecx, -76(%rbp)
- 595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1358              		.loc 1 601 0
- 1359 0bdd 488B45C8 		movq	-56(%rbp), %rax
- 1360 0be1 488B4028 		movq	40(%rax), %rax
- 1361 0be5 660F6F00 		movdqa	(%rax), %xmm0
- 1362 0be9 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1362      E0
- 602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1363              		.loc 1 603 0
- 1364 0bee 488B45C0 		movq	-64(%rbp), %rax
- 1365 0bf2 488945F0 		movq	%rax, -16(%rbp)
- 1366 0bf6 488B45B8 		movq	-72(%rbp), %rax
- 1367 0bfa 488945F8 		movq	%rax, -8(%rbp)
- 1368 0bfe EB65     		jmp	.L91
- 1369              	.L92:
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, ivec); 
- 1370              		.loc 1 607 0
- 1371 0c00 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1371      E0
- 1372 0c05 488B45C8 		movq	-56(%rbp), %rax
- 1373 0c09 4889C7   		movq	%rax, %rdi
- 1374 0c0c E841F8FF 		call	KCipherVecEncryptV1
- 1374      FF
- 1375 0c11 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1375      E0
- 608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1376              		.loc 1 608 0
- 1377 0c16 488B45F0 		movq	-16(%rbp), %rax
- 1378 0c1a 4889C7   		movq	%rax, %rdi
- 1379 0c1d E8DEF3FF 		call	CipherVecIn
- 1379      FF
- 1380 0c22 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1380      D0
- 609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 1381              		.loc 1 609 0
- 1382 0c27 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1382      E0
- 1383 0c2c F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1383      D0
- 1384 0c31 660FEFC1 		pxor	%xmm1, %xmm0
- 1385 0c35 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1385      D0
- 610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (cv, pout);
- 1386              		.loc 1 610 0
- 1387 0c3a 488B45F8 		movq	-8(%rbp), %rax
-
GAS LISTING /tmp/ccq6ONvw.s 			page 41
-
-
- 1388 0c3e F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1388      D0
- 1389 0c43 4889C7   		movq	%rax, %rdi
- 1390 0c46 E8E0F3FF 		call	CipherVecOut
- 1390      FF
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1391              		.loc 1 605 0
- 1392 0c4b 488B45C8 		movq	-56(%rbp), %rax
- 1393 0c4f 8B4004   		movl	4(%rax), %eax
- 1394 0c52 89C0     		mov	%eax, %eax
- 1395 0c54 480145F0 		addq	%rax, -16(%rbp)
- 1396 0c58 488B45C8 		movq	-56(%rbp), %rax
- 1397 0c5c 8B4004   		movl	4(%rax), %eax
- 1398 0c5f 89C0     		mov	%eax, %eax
- 1399 0c61 480145F8 		addq	%rax, -8(%rbp)
- 1400              	.L91:
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1401              		.loc 1 604 0
- 1402 0c65 837DB400 		cmpl	$0, -76(%rbp)
- 1403 0c69 0F95C0   		setne	%al
- 1404 0c6c 836DB401 		subl	$1, -76(%rbp)
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1405              		.loc 1 603 0
- 1406 0c70 84C0     		testb	%al, %al
- 1407 0c72 758C     		jne	.L92
- 611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1408              		.loc 1 613 0
- 1409 0c74 488B45C8 		movq	-56(%rbp), %rax
- 1410 0c78 488B4028 		movq	40(%rax), %rax
- 1411 0c7c F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1411      E0
- 1412 0c81 F30F7F00 		movdqu	%xmm0, (%rax)
- 614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1413              		.loc 1 615 0
- 1414 0c85 B8000000 		movl	$0, %eax
- 1414      00
- 616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1415              		.loc 1 619 0
- 1416 0c8a C9       		leave
- 1417 0c8b C3       		ret
- 1418              		.cfi_endproc
- 1419              	.LFE531:
- 1420              		.size	KCipherVecEncryptOfb, .-KCipherVecEncryptOfb
- 1421              		.type	KCipherVecDecryptOfb, @function
- 1422              	KCipherVecDecryptOfb:
- 1423              	.LFB532:
- 620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-
GAS LISTING /tmp/ccq6ONvw.s 			page 42
-
-
- 1424              		.loc 1 624 0
- 1425              		.cfi_startproc
- 1426 0c8c 55       		pushq	%rbp
- 1427              	.LCFI48:
- 1428              		.cfi_def_cfa_offset 16
- 1429 0c8d 4889E5   		movq	%rsp, %rbp
- 1430              		.cfi_offset 6, -16
- 1431              	.LCFI49:
- 1432              		.cfi_def_cfa_register 6
- 1433 0c90 53       		pushq	%rbx
- 1434 0c91 4883EC28 		subq	$40, %rsp
- 1435 0c95 48897DE8 		movq	%rdi, -24(%rbp)
- 1436 0c99 488975E0 		movq	%rsi, -32(%rbp)
- 1437 0c9d 488955D8 		movq	%rdx, -40(%rbp)
- 1438 0ca1 894DD4   		movl	%ecx, -44(%rbp)
- 625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return CMEMBER(EncryptOfb)(self, in, out, block_count);
- 1439              		.loc 1 625 0
- 1440 0ca4 8B4DD4   		movl	-44(%rbp), %ecx
- 1441 0ca7 488B55D8 		movq	-40(%rbp), %rdx
- 1442 0cab 488B5DE0 		movq	-32(%rbp), %rbx
- 1443              		.cfi_offset 3, -24
- 1444 0caf 488B45E8 		movq	-24(%rbp), %rax
- 1445 0cb3 4889DE   		movq	%rbx, %rsi
- 1446 0cb6 4889C7   		movq	%rax, %rdi
- 1447 0cb9 E808FFFF 		call	KCipherVecEncryptOfb
- 1447      FF
- 626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1448              		.loc 1 626 0
- 1449 0cbe 4883C428 		addq	$40, %rsp
- 1450 0cc2 5B       		popq	%rbx
- 1451 0cc3 C9       		leave
- 1452 0cc4 C3       		ret
- 1453              		.cfi_endproc
- 1454              	.LFE532:
- 1455              		.size	KCipherVecDecryptOfb, .-KCipherVecDecryptOfb
- 1456              		.type	KCipherVecEncryptCtr, @function
- 1457              	KCipherVecEncryptCtr:
- 1458              	.LFB533:
- 627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* Counter
- 630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * IV is a nonce and not re-used as FB
- 631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = PT ^ ENC (N, EK)
- 632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = CT ^ ENC (N, DK) 
- 633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Note decrypt is encrypt.
- 634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * nonce is a function that given an iv generates the next iv
- 635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1459              		.loc 1 638 0
- 1460              		.cfi_startproc
- 1461 0cc5 55       		pushq	%rbp
- 1462              	.LCFI50:
- 1463              		.cfi_def_cfa_offset 16
- 1464 0cc6 4889E5   		movq	%rsp, %rbp
- 1465              		.cfi_offset 6, -16
-
GAS LISTING /tmp/ccq6ONvw.s 			page 43
-
-
- 1466              	.LCFI51:
- 1467              		.cfi_def_cfa_register 6
- 1468 0cc9 4883EC20 		subq	$32, %rsp
- 1469 0ccd 48897DF8 		movq	%rdi, -8(%rbp)
- 1470 0cd1 488975F0 		movq	%rsi, -16(%rbp)
- 1471 0cd5 488955E8 		movq	%rdx, -24(%rbp)
- 1472 0cd9 894DE4   		movl	%ecx, -28(%rbp)
- 639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 1473              		.loc 1 639 0
- 1474 0cdc B97F0200 		movl	$639, %ecx
- 1474      00
- 1475 0ce1 488D1500 		leaq	__func__.6944(%rip), %rdx
- 1475      000000
- 1476 0ce8 488D3500 		leaq	.LC0(%rip), %rsi
- 1476      000000
- 1477 0cef BF030509 		movl	$-2029452029, %edi
- 1477      87
- 1478 0cf4 E8000000 		call	SetRCFileFuncLine at PLT
- 1478      00
- 640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1479              		.loc 1 640 0
- 1480 0cf9 C9       		leave
- 1481 0cfa C3       		ret
- 1482              		.cfi_endproc
- 1483              	.LFE533:
- 1484              		.size	KCipherVecEncryptCtr, .-KCipherVecEncryptCtr
- 1485              		.type	KCipherVecDecryptCtr, @function
- 1486              	KCipherVecDecryptCtr:
- 1487              	.LFB534:
- 641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1488              		.loc 1 645 0
- 1489              		.cfi_startproc
- 1490 0cfb 55       		pushq	%rbp
- 1491              	.LCFI52:
- 1492              		.cfi_def_cfa_offset 16
- 1493 0cfc 4889E5   		movq	%rsp, %rbp
- 1494              		.cfi_offset 6, -16
- 1495              	.LCFI53:
- 1496              		.cfi_def_cfa_register 6
- 1497 0cff 4883EC20 		subq	$32, %rsp
- 1498 0d03 48897DF8 		movq	%rdi, -8(%rbp)
- 1499 0d07 488975F0 		movq	%rsi, -16(%rbp)
- 1500 0d0b 488955E8 		movq	%rdx, -24(%rbp)
- 1501 0d0f 894DE4   		movl	%ecx, -28(%rbp)
- 646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 1502              		.loc 1 646 0
- 1503 0d12 B9860200 		movl	$646, %ecx
- 1503      00
- 1504 0d17 488D1500 		leaq	__func__.6954(%rip), %rdx
- 1504      000000
- 1505 0d1e 488D3500 		leaq	.LC0(%rip), %rsi
- 1505      000000
- 1506 0d25 BF030509 		movl	$-2029452029, %edi
-
GAS LISTING /tmp/ccq6ONvw.s 			page 44
-
-
- 1506      87
- 1507 0d2a E8000000 		call	SetRCFileFuncLine at PLT
- 1507      00
- 647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1508              		.loc 1 647 0
- 1509 0d2f C9       		leave
- 1510 0d30 C3       		ret
- 1511              		.cfi_endproc
- 1512              	.LFE534:
- 1513              		.size	KCipherVecDecryptCtr, .-KCipherVecDecryptCtr
- 1514              		.section	.data.rel.local,"aw", at progbits
- 1515              		.align 32
- 1516              		.type	KCipherVec_vt_v1, @object
- 1517              		.size	KCipherVec_vt_v1, 176
- 1518              	KCipherVec_vt_v1:
- 1519 0000 01000000 		.long	1
- 1520 0004 00000000 		.long	0
- 1521 0008 00000000 		.quad	KCipherVecDestroy
- 1521      00000000 
- 1522 0010 00000000 		.quad	KCipherVecSetEncryptKey
- 1522      00000000 
- 1523 0018 00000000 		.quad	KCipherVecSetDecryptKey
- 1523      00000000 
- 1524 0020 00000000 		.quad	KCipherVecSetEncryptIvec
- 1524      00000000 
- 1525 0028 00000000 		.quad	KCipherVecSetDecryptIvec
- 1525      00000000 
- 1526 0030 00000000 		.quad	KCipherVecSetEncryptCounterFunc
- 1526      00000000 
- 1527 0038 00000000 		.quad	KCipherVecSetDecryptCounterFunc
- 1527      00000000 
- 1528 0040 00000000 		.quad	KCipherVecEncrypt
- 1528      00000000 
- 1529 0048 00000000 		.quad	KCipherVecDecrypt
- 1529      00000000 
- 1530 0050 00000000 		.quad	KCipherVecEncryptEcb
- 1530      00000000 
- 1531 0058 00000000 		.quad	KCipherVecDecryptEcb
- 1531      00000000 
- 1532 0060 00000000 		.quad	KCipherVecEncryptCbc
- 1532      00000000 
- 1533 0068 00000000 		.quad	KCipherVecDecryptCbc
- 1533      00000000 
- 1534 0070 00000000 		.quad	KCipherVecEncryptPcbc
- 1534      00000000 
- 1535 0078 00000000 		.quad	KCipherVecDecryptPcbc
- 1535      00000000 
- 1536 0080 00000000 		.quad	KCipherVecEncryptCfb
- 1536      00000000 
- 1537 0088 00000000 		.quad	KCipherVecDecryptCfb
- 1537      00000000 
- 1538 0090 00000000 		.quad	KCipherVecEncryptOfb
- 1538      00000000 
- 1539 0098 00000000 		.quad	KCipherVecDecryptOfb
- 1539      00000000 
- 1540 00a0 00000000 		.quad	KCipherVecEncryptCtr
- 1540      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 45
-
-
- 1541 00a8 00000000 		.quad	KCipherVecDecryptCtr
- 1541      00000000 
- 1542              		.text
- 1543              		.type	KCipherVecAllocAes, @function
- 1544              	KCipherVecAllocAes:
- 1545              	.LFB535:
- 648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** struct KCipher_vt_v1 CMEMBER(_vt_v1) =
- 651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     { 1, 0 },
- 653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Destroy),
- 655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptKey),
- 656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptKey),
- 657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptIvec),
- 658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptIvec),
- 659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptCounterFunc),
- 660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptCounterFunc),
- 661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Encrypt),
- 662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Decrypt),
- 663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptEcb),
- 664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptEcb),
- 665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCbc),
- 666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCbc),
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptPcbc),
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptPcbc),
- 669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCfb),
- 670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCfb),
- 671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptOfb),
- 672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptOfb),
- 673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCtr),
- 674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCtr)
- 675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** };
- 676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(AllocAes)(CIPHER_IMPL ** pobj,
- 680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                        const KBlockCipher * block_cipher)
- 681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1546              		.loc 1 681 0
- 1547              		.cfi_startproc
- 1548 0d31 55       		pushq	%rbp
- 1549              	.LCFI54:
- 1550              		.cfi_def_cfa_offset 16
- 1551 0d32 4889E5   		movq	%rsp, %rbp
- 1552              		.cfi_offset 6, -16
- 1553              	.LCFI55:
- 1554              		.cfi_def_cfa_register 6
- 1555 0d35 4883EC20 		subq	$32, %rsp
- 1556 0d39 48897DE8 		movq	%rdi, -24(%rbp)
- 1557 0d3d 488975E0 		movq	%rsi, -32(%rbp)
- 682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherAes * obj;
- 683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     obj = calloc (1, sizeof (*obj));
- 1558              		.loc 1 684 0
- 1559 0d41 BE700200 		movl	$624, %esi
-
GAS LISTING /tmp/ccq6ONvw.s 			page 46
-
-
- 1559      00
- 1560 0d46 BF010000 		movl	$1, %edi
- 1560      00
- 1561 0d4b E8000000 		call	calloc at PLT
- 1561      00
- 1562 0d50 488945F8 		movq	%rax, -8(%rbp)
- 685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *pobj = (CIPHER_IMPL*)obj;
- 1563              		.loc 1 685 0
- 1564 0d54 488B55F8 		movq	-8(%rbp), %rdx
- 1565 0d58 488B45E8 		movq	-24(%rbp), %rax
- 1566 0d5c 488910   		movq	%rdx, (%rax)
- 686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
- 1567              		.loc 1 687 0
- 1568 0d5f 48837DF8 		cmpq	$0, -8(%rbp)
- 1568      00
- 1569 0d64 751F     		jne	.L101
- 1570 0d66 B9AF0200 		movl	$687, %ecx
- 1570      00
- 1571 0d6b 488D1500 		leaq	__func__.6964(%rip), %rdx
- 1571      000000
- 1572 0d72 488D3500 		leaq	.LC0(%rip), %rsi
- 1572      000000
- 1573 0d79 BF539000 		movl	$-2030006189, %edi
- 1573      87
- 1574 0d7e E8000000 		call	SetRCFileFuncLine at PLT
- 1574      00
- 1575 0d83 EB05     		jmp	.L102
- 1576              	.L101:
- 1577 0d85 B8000000 		movl	$0, %eax
- 1577      00
- 1578              	.L102:
- 688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1579              		.loc 1 688 0
- 1580 0d8a C9       		leave
- 1581 0d8b C3       		ret
- 1582              		.cfi_endproc
- 1583              	.LFE535:
- 1584              		.size	KCipherVecAllocAes, .-KCipherVecAllocAes
- 1585              		.type	KCipherVecInitAes, @function
- 1586              	KCipherVecInitAes:
- 1587              	.LFB536:
- 689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(InitAes) (CIPHER_IMPL * self,
- 693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                       const KBlockCipher * block_cipher)
- 694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1588              		.loc 1 694 0
- 1589              		.cfi_startproc
- 1590 0d8c 55       		pushq	%rbp
- 1591              	.LCFI56:
- 1592              		.cfi_def_cfa_offset 16
- 1593 0d8d 4889E5   		movq	%rsp, %rbp
- 1594              		.cfi_offset 6, -16
- 1595              	.LCFI57:
- 1596              		.cfi_def_cfa_register 6
-
GAS LISTING /tmp/ccq6ONvw.s 			page 47
-
-
- 1597 0d90 4883EC20 		subq	$32, %rsp
- 1598 0d94 48897DE8 		movq	%rdi, -24(%rbp)
- 1599 0d98 488975E0 		movq	%rsi, -32(%rbp)
- 695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher * dad = &self->dad;
- 1600              		.loc 1 695 0
- 1601 0d9c 488B45E8 		movq	-24(%rbp), %rax
- 1602 0da0 488945F0 		movq	%rax, -16(%rbp)
- 696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherAes * aes = (struct CipherAes*)self;
- 1603              		.loc 1 696 0
- 1604 0da4 488B45E8 		movq	-24(%rbp), %rax
- 1605 0da8 488945F8 		movq	%rax, -8(%rbp)
- 697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipherInit (dad, sizeof (CipherVec),
- 1606              		.loc 1 698 0
- 1607 0dac 488B45F0 		movq	-16(%rbp), %rax
- 1608 0db0 488B1500 		movq	KCipherVecClassName at GOTPCREL(%rip), %rdx
- 1608      000000
- 1609 0db7 4889D1   		movq	%rdx, %rcx
- 1610 0dba 488D1500 		leaq	KCipherVec_vt_v1(%rip), %rdx
- 1610      000000
- 1611 0dc1 BE100000 		movl	$16, %esi
- 1611      00
- 1612 0dc6 4889C7   		movq	%rax, %rdi
- 1613 0dc9 E8000000 		call	KCipherInit at PLT
- 1613      00
- 699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  (const KCipher_vt*)&CMEMBER(_vt_v1),
- 700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  CMEMBER(ClassName));
- 701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_key = &aes->e_key;
- 1614              		.loc 1 702 0
- 1615 0dce 488B45F8 		movq	-8(%rbp), %rax
- 1616 0dd2 488D5050 		leaq	80(%rax), %rdx
- 1617 0dd6 488B45F0 		movq	-16(%rbp), %rax
- 1618 0dda 48895018 		movq	%rdx, 24(%rax)
- 703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_key = &aes->d_key;
- 1619              		.loc 1 703 0
- 1620 0dde 488B45F8 		movq	-8(%rbp), %rax
- 1621 0de2 488D9050 		leaq	336(%rax), %rdx
- 1621      010000
- 1622 0de9 488B45F0 		movq	-16(%rbp), %rax
- 1623 0ded 48895020 		movq	%rdx, 32(%rax)
- 704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_ivec = &aes->e_ivec;
- 1624              		.loc 1 704 0
- 1625 0df1 488B45F8 		movq	-8(%rbp), %rax
- 1626 0df5 488D9050 		leaq	592(%rax), %rdx
- 1626      020000
- 1627 0dfc 488B45F0 		movq	-16(%rbp), %rax
- 1628 0e00 48895028 		movq	%rdx, 40(%rax)
- 705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_ivec = &aes->d_ivec;
- 1629              		.loc 1 705 0
- 1630 0e04 488B45F8 		movq	-8(%rbp), %rax
- 1631 0e08 488D9060 		leaq	608(%rax), %rdx
- 1631      020000
- 1632 0e0f 488B45F0 		movq	-16(%rbp), %rax
- 1633 0e13 48895030 		movq	%rdx, 48(%rax)
- 706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->block_cipher = &block_cipher->vec;
-
GAS LISTING /tmp/ccq6ONvw.s 			page 48
-
-
- 1634              		.loc 1 707 0
- 1635 0e17 488B55E0 		movq	-32(%rbp), %rdx
- 1636 0e1b 488B45E8 		movq	-24(%rbp), %rax
- 1637 0e1f 48895048 		movq	%rdx, 72(%rax)
- 708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1638              		.loc 1 709 0
- 1639 0e23 B8000000 		movl	$0, %eax
- 1639      00
- 710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1640              		.loc 1 710 0
- 1641 0e28 C9       		leave
- 1642 0e29 C3       		ret
- 1643              		.cfi_endproc
- 1644              	.LFE536:
- 1645              		.size	KCipherVecInitAes, .-KCipherVecInitAes
- 1646              		.type	KCipherVecAllocNull, @function
- 1647              	KCipherVecAllocNull:
- 1648              	.LFB537:
- 711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(AllocNull)(CIPHER_IMPL ** pobj,
- 715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                         const KBlockCipher * block_cipher)
- 716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1649              		.loc 1 716 0
- 1650              		.cfi_startproc
- 1651 0e2a 55       		pushq	%rbp
- 1652              	.LCFI58:
- 1653              		.cfi_def_cfa_offset 16
- 1654 0e2b 4889E5   		movq	%rsp, %rbp
- 1655              		.cfi_offset 6, -16
- 1656              	.LCFI59:
- 1657              		.cfi_def_cfa_register 6
- 1658 0e2e 4883EC20 		subq	$32, %rsp
- 1659 0e32 48897DE8 		movq	%rdi, -24(%rbp)
- 1660 0e36 488975E0 		movq	%rsi, -32(%rbp)
- 717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherNull * obj;
- 718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     obj = calloc (1, sizeof (*obj));
- 1661              		.loc 1 719 0
- 1662 0e3a BE700000 		movl	$112, %esi
- 1662      00
- 1663 0e3f BF010000 		movl	$1, %edi
- 1663      00
- 1664 0e44 E8000000 		call	calloc at PLT
- 1664      00
- 1665 0e49 488945F8 		movq	%rax, -8(%rbp)
- 720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *pobj = (CIPHER_IMPL*)obj;
- 1666              		.loc 1 720 0
- 1667 0e4d 488B55F8 		movq	-8(%rbp), %rdx
- 1668 0e51 488B45E8 		movq	-24(%rbp), %rax
- 1669 0e55 488910   		movq	%rdx, (%rax)
- 721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
- 1670              		.loc 1 722 0
- 1671 0e58 48837DF8 		cmpq	$0, -8(%rbp)
-
GAS LISTING /tmp/ccq6ONvw.s 			page 49
-
-
- 1671      00
- 1672 0e5d 751F     		jne	.L107
- 1673 0e5f B9D20200 		movl	$722, %ecx
- 1673      00
- 1674 0e64 488D1500 		leaq	__func__.6991(%rip), %rdx
- 1674      000000
- 1675 0e6b 488D3500 		leaq	.LC0(%rip), %rsi
- 1675      000000
- 1676 0e72 BF539000 		movl	$-2030006189, %edi
- 1676      87
- 1677 0e77 E8000000 		call	SetRCFileFuncLine at PLT
- 1677      00
- 1678 0e7c EB05     		jmp	.L108
- 1679              	.L107:
- 1680 0e7e B8000000 		movl	$0, %eax
- 1680      00
- 1681              	.L108:
- 723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1682              		.loc 1 723 0
- 1683 0e83 C9       		leave
- 1684 0e84 C3       		ret
- 1685              		.cfi_endproc
- 1686              	.LFE537:
- 1687              		.size	KCipherVecAllocNull, .-KCipherVecAllocNull
- 1688              		.type	KCipherVecInitNull, @function
- 1689              	KCipherVecInitNull:
- 1690              	.LFB538:
- 724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(InitNull) (CIPHER_IMPL * self,
- 728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                         const KBlockCipher * block_cipher)
- 729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1691              		.loc 1 729 0
- 1692              		.cfi_startproc
- 1693 0e85 55       		pushq	%rbp
- 1694              	.LCFI60:
- 1695              		.cfi_def_cfa_offset 16
- 1696 0e86 4889E5   		movq	%rsp, %rbp
- 1697              		.cfi_offset 6, -16
- 1698              	.LCFI61:
- 1699              		.cfi_def_cfa_register 6
- 1700 0e89 4883EC20 		subq	$32, %rsp
- 1701 0e8d 48897DE8 		movq	%rdi, -24(%rbp)
- 1702 0e91 488975E0 		movq	%rsi, -32(%rbp)
- 730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher * dad = &self->dad;
- 1703              		.loc 1 730 0
- 1704 0e95 488B45E8 		movq	-24(%rbp), %rax
- 1705 0e99 488945F0 		movq	%rax, -16(%rbp)
- 731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherNull * null = (CipherNull*)self;
- 1706              		.loc 1 731 0
- 1707 0e9d 488B45E8 		movq	-24(%rbp), %rax
- 1708 0ea1 488945F8 		movq	%rax, -8(%rbp)
- 732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipherInit (dad, sizeof (CipherVec),
- 1709              		.loc 1 733 0
- 1710 0ea5 488B45F0 		movq	-16(%rbp), %rax
-
GAS LISTING /tmp/ccq6ONvw.s 			page 50
-
-
- 1711 0ea9 488B1500 		movq	KCipherVecClassName at GOTPCREL(%rip), %rdx
- 1711      000000
- 1712 0eb0 4889D1   		movq	%rdx, %rcx
- 1713 0eb3 488D1500 		leaq	KCipherVec_vt_v1(%rip), %rdx
- 1713      000000
- 1714 0eba BE100000 		movl	$16, %esi
- 1714      00
- 1715 0ebf 4889C7   		movq	%rax, %rdi
- 1716 0ec2 E8000000 		call	KCipherInit at PLT
- 1716      00
- 734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  (const KCipher_vt*)&CMEMBER(_vt_v1),
- 735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  CMEMBER(ClassName));
- 736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_key = &null->e_ivec;
- 1717              		.loc 1 737 0
- 1718 0ec7 488B45F8 		movq	-8(%rbp), %rax
- 1719 0ecb 488D5050 		leaq	80(%rax), %rdx
- 1720 0ecf 488B45F0 		movq	-16(%rbp), %rax
- 1721 0ed3 48895018 		movq	%rdx, 24(%rax)
- 738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_key = &null->d_ivec;
- 1722              		.loc 1 738 0
- 1723 0ed7 488B45F8 		movq	-8(%rbp), %rax
- 1724 0edb 488D5060 		leaq	96(%rax), %rdx
- 1725 0edf 488B45F0 		movq	-16(%rbp), %rax
- 1726 0ee3 48895020 		movq	%rdx, 32(%rax)
- 739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_ivec = &null->e_ivec;
- 1727              		.loc 1 739 0
- 1728 0ee7 488B45F8 		movq	-8(%rbp), %rax
- 1729 0eeb 488D5050 		leaq	80(%rax), %rdx
- 1730 0eef 488B45F0 		movq	-16(%rbp), %rax
- 1731 0ef3 48895028 		movq	%rdx, 40(%rax)
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_ivec = &null->d_ivec;
- 1732              		.loc 1 740 0
- 1733 0ef7 488B45F8 		movq	-8(%rbp), %rax
- 1734 0efb 488D5060 		leaq	96(%rax), %rdx
- 1735 0eff 488B45F0 		movq	-16(%rbp), %rax
- 1736 0f03 48895030 		movq	%rdx, 48(%rax)
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->block_cipher = &block_cipher->vec;
- 1737              		.loc 1 742 0
- 1738 0f07 488B55E0 		movq	-32(%rbp), %rdx
- 1739 0f0b 488B45E8 		movq	-24(%rbp), %rax
- 1740 0f0f 48895048 		movq	%rdx, 72(%rax)
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1741              		.loc 1 744 0
- 1742 0f13 B8000000 		movl	$0, %eax
- 1742      00
- 745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1743              		.loc 1 745 0
- 1744 0f18 C9       		leave
- 1745 0f19 C3       		ret
- 1746              		.cfi_endproc
- 1747              	.LFE538:
- 1748              		.size	KCipherVecInitNull, .-KCipherVecInitNull
- 1749              	.globl KCipherVecMake
- 1750              		.type	KCipherVecMake, @function
-
GAS LISTING /tmp/ccq6ONvw.s 			page 51
-
-
- 1751              	KCipherVecMake:
- 1752              	.LFB539:
- 746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(Make) (KCipher ** new_obj, kcipher_type type)
- 749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1753              		.loc 1 749 0
- 1754              		.cfi_startproc
- 1755 0f1a 55       		pushq	%rbp
- 1756              	.LCFI62:
- 1757              		.cfi_def_cfa_offset 16
- 1758 0f1b 4889E5   		movq	%rsp, %rbp
- 1759              		.cfi_offset 6, -16
- 1760              	.LCFI63:
- 1761              		.cfi_def_cfa_register 6
- 1762 0f1e 4883EC30 		subq	$48, %rsp
- 1763 0f22 48897DD8 		movq	%rdi, -40(%rbp)
- 1764 0f26 8975D4   		movl	%esi, -44(%rbp)
- 750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc;
- 751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KBlockCipher * block_cipher;
- 752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (new_obj == NULL)
- 1765              		.loc 1 753 0
- 1766 0f29 48837DD8 		cmpq	$0, -40(%rbp)
- 1766      00
- 1767 0f2e 7522     		jne	.L113
- 754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
- 1768              		.loc 1 754 0
- 1769 0f30 B9F20200 		movl	$754, %ecx
- 1769      00
- 1770 0f35 488D1500 		leaq	__func__.7019(%rip), %rdx
- 1770      000000
- 1771 0f3c 488D3500 		leaq	.LC0(%rip), %rsi
- 1771      000000
- 1772 0f43 BF878F00 		movl	$-2030006393, %edi
- 1772      87
- 1773 0f48 E8000000 		call	SetRCFileFuncLine at PLT
- 1773      00
- 1774 0f4d E9280100 		jmp	.L114
- 1774      00
- 1775              	.L113:
- 755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *new_obj = NULL;
- 1776              		.loc 1 756 0
- 1777 0f52 488B45D8 		movq	-40(%rbp), %rax
- 1778 0f56 48C70000 		movq	$0, (%rax)
- 1778      000000
- 757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (type)
- 1779              		.loc 1 758 0
- 1780 0f5d 8B45D4   		movl	-44(%rbp), %eax
- 1781 0f60 85C0     		testl	%eax, %eax
- 1782 0f62 7427     		je	.L116
- 1783 0f64 83F801   		cmpl	$1, %eax
- 1784 0f67 7433     		je	.L117
- 759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 52
-
-
- 761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         return RC (rcKrypto, rcCipher, rcConstructing, rcParam, rcInvalid);
- 1785              		.loc 1 761 0
- 1786 0f69 B9F90200 		movl	$761, %ecx
- 1786      00
- 1787 0f6e 488D1500 		leaq	__func__.7019(%rip), %rdx
- 1787      000000
- 1788 0f75 488D3500 		leaq	.LC0(%rip), %rsi
- 1788      000000
- 1789 0f7c BFCA8F00 		movl	$-2030006326, %edi
- 1789      87
- 1790 0f81 E8000000 		call	SetRCFileFuncLine at PLT
- 1790      00
- 1791 0f86 E9EF0000 		jmp	.L114
- 1791      00
- 1792              	.L116:
- 762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case kcipher_null:
- 764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = NULLBCMEMBER(Make)(&block_cipher);
- 1793              		.loc 1 764 0
- 1794 0f8b 488D45F0 		leaq	-16(%rbp), %rax
- 1795 0f8f 4889C7   		movq	%rax, %rdi
- 1796 0f92 E8000000 		call	KNullBlockCipherVecMake at PLT
- 1796      00
- 1797 0f97 8945FC   		movl	%eax, -4(%rbp)
- 765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 1798              		.loc 1 765 0
- 1799 0f9a EB0F     		jmp	.L118
- 1800              	.L117:
- 766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case kcipher_AES:
- 768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = AESBCMEMBER(Make)(&block_cipher);
- 1801              		.loc 1 768 0
- 1802 0f9c 488D45F0 		leaq	-16(%rbp), %rax
- 1803 0fa0 4889C7   		movq	%rax, %rdi
- 1804 0fa3 E8000000 		call	KAESBlockCipherVecMake at PLT
- 1804      00
- 1805 0fa8 8945FC   		movl	%eax, -4(%rbp)
- 1806              	.L118:
- 769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (rc == 0)
- 1807              		.loc 1 772 0
- 1808 0fab 837DFC00 		cmpl	$0, -4(%rbp)
- 1809 0faf 0F85C200 		jne	.L119
- 1809      0000
- 1810              	.LBB5:
- 773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CIPHER_IMPL * obj;
- 775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         switch (type)
- 1811              		.loc 1 776 0
- 1812 0fb5 8B45D4   		movl	-44(%rbp), %eax
- 1813 0fb8 85C0     		testl	%eax, %eax
- 1814 0fba 740A     		je	.L120
- 1815 0fbc 83F801   		cmpl	$1, %eax
- 1816 0fbf 745F     		je	.L121
-
GAS LISTING /tmp/ccq6ONvw.s 			page 53
-
-
- 1817 0fc1 E9B10000 		jmp	.L119
- 1817      00
- 1818              	.L120:
- 777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         {
- 778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         case kcipher_null:
- 779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             rc = CMEMBER(AllocNull) (&obj, block_cipher);
- 1819              		.loc 1 779 0
- 1820 0fc6 488B55F0 		movq	-16(%rbp), %rdx
- 1821 0fca 488D45E8 		leaq	-24(%rbp), %rax
- 1822 0fce 4889D6   		movq	%rdx, %rsi
- 1823 0fd1 4889C7   		movq	%rax, %rdi
- 1824 0fd4 E851FEFF 		call	KCipherVecAllocNull
- 1824      FF
- 1825 0fd9 8945FC   		movl	%eax, -4(%rbp)
- 780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             if (rc == 0)
- 1826              		.loc 1 780 0
- 1827 0fdc 837DFC00 		cmpl	$0, -4(%rbp)
- 1828 0fe0 0F859000 		jne	.L126
- 1828      0000
- 781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             {
- 782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 rc = CMEMBER(InitNull) (obj, block_cipher);
- 1829              		.loc 1 782 0
- 1830 0fe6 488B55F0 		movq	-16(%rbp), %rdx
- 1831 0fea 488B45E8 		movq	-24(%rbp), %rax
- 1832 0fee 4889D6   		movq	%rdx, %rsi
- 1833 0ff1 4889C7   		movq	%rax, %rdi
- 1834 0ff4 E88CFEFF 		call	KCipherVecInitNull
- 1834      FF
- 1835 0ff9 8945FC   		movl	%eax, -4(%rbp)
- 783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 if (rc == 0)
- 1836              		.loc 1 783 0
- 1837 0ffc 837DFC00 		cmpl	$0, -4(%rbp)
- 1838 1000 7510     		jne	.L123
- 784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     *new_obj = (KCipher*)obj;
- 1839              		.loc 1 784 0
- 1840 1002 488B45E8 		movq	-24(%rbp), %rax
- 1841 1006 4889C2   		movq	%rax, %rdx
- 1842 1009 488B45D8 		movq	-40(%rbp), %rax
- 1843 100d 488910   		movq	%rdx, (%rax)
- 785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 else
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             }
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 1844              		.loc 1 788 0
- 1845 1010 EB65     		jmp	.L119
- 1846              	.L123:
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 1847              		.loc 1 786 0
- 1848 1012 488B45E8 		movq	-24(%rbp), %rax
- 1849 1016 4889C7   		movq	%rax, %rdi
- 1850 1019 E8000000 		call	free at PLT
- 1850      00
- 1851              		.loc 1 788 0
- 1852 101e EB57     		jmp	.L119
- 1853              	.L121:
- 789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         case kcipher_AES:
- 790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             rc = CMEMBER(AllocAes) (&obj, block_cipher);
-
GAS LISTING /tmp/ccq6ONvw.s 			page 54
-
-
- 1854              		.loc 1 790 0
- 1855 1020 488B55F0 		movq	-16(%rbp), %rdx
- 1856 1024 488D45E8 		leaq	-24(%rbp), %rax
- 1857 1028 4889D6   		movq	%rdx, %rsi
- 1858 102b 4889C7   		movq	%rax, %rdi
- 1859 102e E8FEFCFF 		call	KCipherVecAllocAes
- 1859      FF
- 1860 1033 8945FC   		movl	%eax, -4(%rbp)
- 791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             if (rc == 0)
- 1861              		.loc 1 791 0
- 1862 1036 837DFC00 		cmpl	$0, -4(%rbp)
- 1863 103a 753B     		jne	.L119
- 792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             {
- 793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 rc = CMEMBER(InitAes) (obj, block_cipher);
- 1864              		.loc 1 793 0
- 1865 103c 488B55F0 		movq	-16(%rbp), %rdx
- 1866 1040 488B45E8 		movq	-24(%rbp), %rax
- 1867 1044 4889D6   		movq	%rdx, %rsi
- 1868 1047 4889C7   		movq	%rax, %rdi
- 1869 104a E83DFDFF 		call	KCipherVecInitAes
- 1869      FF
- 1870 104f 8945FC   		movl	%eax, -4(%rbp)
- 794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 if (rc == 0)
- 1871              		.loc 1 794 0
- 1872 1052 837DFC00 		cmpl	$0, -4(%rbp)
- 1873 1056 7510     		jne	.L124
- 795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     *new_obj = (KCipher*)obj;
- 1874              		.loc 1 795 0
- 1875 1058 488B45E8 		movq	-24(%rbp), %rax
- 1876 105c 4889C2   		movq	%rax, %rdx
- 1877 105f 488B45D8 		movq	-40(%rbp), %rax
- 1878 1063 488910   		movq	%rdx, (%rax)
- 1879 1066 EB0F     		jmp	.L119
- 1880              	.L124:
- 796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 else
- 797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 1881              		.loc 1 797 0
- 1882 1068 488B45E8 		movq	-24(%rbp), %rax
- 1883 106c 4889C7   		movq	%rax, %rdi
- 1884 106f E8000000 		call	free at PLT
- 1884      00
- 1885 1074 EB01     		jmp	.L119
- 1886              	.L126:
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 1887              		.loc 1 788 0
- 1888 1076 90       		nop
- 1889              	.L119:
- 1890              	.LBE5:
- 798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             }
- 799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         default:
- 800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             /* can't really get here */
- 801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         }
- 803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 1891              		.loc 1 804 0
- 1892 1077 8B45FC   		movl	-4(%rbp), %eax
-
GAS LISTING /tmp/ccq6ONvw.s 			page 55
-
-
- 1893              	.L114:
- 805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1894              		.loc 1 805 0
- 1895 107a C9       		leave
- 1896 107b C3       		ret
- 1897              		.cfi_endproc
- 1898              	.LFE539:
- 1899              		.size	KCipherVecMake, .-KCipherVecMake
- 1900              		.section	.rodata
- 1901              		.type	__func__.7019, @object
- 1902              		.size	__func__.7019, 15
- 1903              	__func__.7019:
- 1904 006e 4B436970 		.string	"KCipherVecMake"
- 1904      68657256 
- 1904      65634D61 
- 1904      6B6500
- 1905              		.type	__PRETTY_FUNCTION__.7018, @object
- 1906              		.size	__PRETTY_FUNCTION__.7018, 15
- 1907              	__PRETTY_FUNCTION__.7018:
- 1908 007d 4B436970 		.string	"KCipherVecMake"
- 1908      68657256 
- 1908      65634D61 
- 1908      6B6500
- 1909 008c 00000000 		.align 16
- 1910              		.type	__func__.6991, @object
- 1911              		.size	__func__.6991, 20
- 1912              	__func__.6991:
- 1913 0090 4B436970 		.string	"KCipherVecAllocNull"
- 1913      68657256 
- 1913      6563416C 
- 1913      6C6F634E 
- 1913      756C6C00 
- 1914 00a4 00000000 		.align 16
- 1914      00000000 
- 1914      00000000 
- 1915              		.type	__PRETTY_FUNCTION__.6990, @object
- 1916              		.size	__PRETTY_FUNCTION__.6990, 20
- 1917              	__PRETTY_FUNCTION__.6990:
- 1918 00b0 4B436970 		.string	"KCipherVecAllocNull"
- 1918      68657256 
- 1918      6563416C 
- 1918      6C6F634E 
- 1918      756C6C00 
- 1919 00c4 00000000 		.align 16
- 1919      00000000 
- 1919      00000000 
- 1920              		.type	__func__.6964, @object
- 1921              		.size	__func__.6964, 19
- 1922              	__func__.6964:
- 1923 00d0 4B436970 		.string	"KCipherVecAllocAes"
- 1923      68657256 
- 1923      6563416C 
- 1923      6C6F6341 
- 1923      657300
- 1924 00e3 00000000 		.align 16
- 1924      00000000 
- 1924      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 56
-
-
- 1924      00
- 1925              		.type	__PRETTY_FUNCTION__.6963, @object
- 1926              		.size	__PRETTY_FUNCTION__.6963, 19
- 1927              	__PRETTY_FUNCTION__.6963:
- 1928 00f0 4B436970 		.string	"KCipherVecAllocAes"
- 1928      68657256 
- 1928      6563416C 
- 1928      6C6F6341 
- 1928      657300
- 1929 0103 00000000 		.align 16
- 1929      00000000 
- 1929      00000000 
- 1929      00
- 1930              		.type	__func__.6954, @object
- 1931              		.size	__func__.6954, 21
- 1932              	__func__.6954:
- 1933 0110 4B436970 		.string	"KCipherVecDecryptCtr"
- 1933      68657256 
- 1933      65634465 
- 1933      63727970 
- 1933      74437472 
- 1934 0125 00000000 		.align 16
- 1934      00000000 
- 1934      000000
- 1935              		.type	__PRETTY_FUNCTION__.6953, @object
- 1936              		.size	__PRETTY_FUNCTION__.6953, 21
- 1937              	__PRETTY_FUNCTION__.6953:
- 1938 0130 4B436970 		.string	"KCipherVecDecryptCtr"
- 1938      68657256 
- 1938      65634465 
- 1938      63727970 
- 1938      74437472 
- 1939 0145 00000000 		.align 16
- 1939      00000000 
- 1939      000000
- 1940              		.type	__func__.6944, @object
- 1941              		.size	__func__.6944, 21
- 1942              	__func__.6944:
- 1943 0150 4B436970 		.string	"KCipherVecEncryptCtr"
- 1943      68657256 
- 1943      6563456E 
- 1943      63727970 
- 1943      74437472 
- 1944 0165 00000000 		.align 16
- 1944      00000000 
- 1944      000000
- 1945              		.type	__PRETTY_FUNCTION__.6943, @object
- 1946              		.size	__PRETTY_FUNCTION__.6943, 21
- 1947              	__PRETTY_FUNCTION__.6943:
- 1948 0170 4B436970 		.string	"KCipherVecEncryptCtr"
- 1948      68657256 
- 1948      6563456E 
- 1948      63727970 
- 1948      74437472 
- 1949 0185 00000000 		.align 16
- 1949      00000000 
- 1949      000000
-
GAS LISTING /tmp/ccq6ONvw.s 			page 57
-
-
- 1950              		.type	__func__.6710, @object
- 1951              		.size	__func__.6710, 18
- 1952              	__func__.6710:
- 1953 0190 4B436970 		.string	"KCipherVecDecrypt"
- 1953      68657256 
- 1953      65634465 
- 1953      63727970 
- 1953      7400
- 1954 01a2 00000000 		.align 16
- 1954      00000000 
- 1954      00000000 
- 1954      0000
- 1955              		.type	__PRETTY_FUNCTION__.6709, @object
- 1956              		.size	__PRETTY_FUNCTION__.6709, 18
- 1957              	__PRETTY_FUNCTION__.6709:
- 1958 01b0 4B436970 		.string	"KCipherVecDecrypt"
- 1958      68657256 
- 1958      65634465 
- 1958      63727970 
- 1958      7400
- 1959 01c2 00000000 		.align 16
- 1959      00000000 
- 1959      00000000 
- 1959      0000
- 1960              		.type	__func__.6694, @object
- 1961              		.size	__func__.6694, 18
- 1962              	__func__.6694:
- 1963 01d0 4B436970 		.string	"KCipherVecEncrypt"
- 1963      68657256 
- 1963      6563456E 
- 1963      63727970 
- 1963      7400
- 1964 01e2 00000000 		.align 16
- 1964      00000000 
- 1964      00000000 
- 1964      0000
- 1965              		.type	__PRETTY_FUNCTION__.6693, @object
- 1966              		.size	__PRETTY_FUNCTION__.6693, 18
- 1967              	__PRETTY_FUNCTION__.6693:
- 1968 01f0 4B436970 		.string	"KCipherVecEncrypt"
- 1968      68657256 
- 1968      6563456E 
- 1968      63727970 
- 1968      7400
- 1969 0202 00000000 		.align 32
- 1969      00000000 
- 1969      00000000 
- 1969      00000000 
- 1969      00000000 
- 1970              		.type	__PRETTY_FUNCTION__.6644, @object
- 1971              		.size	__PRETTY_FUNCTION__.6644, 32
- 1972              	__PRETTY_FUNCTION__.6644:
- 1973 0220 4B436970 		.string	"KCipherVecSetDecryptCounterFunc"
- 1973      68657256 
- 1973      65635365 
- 1973      74446563 
- 1973      72797074 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 58
-
-
- 1974              		.align 32
- 1975              		.type	__PRETTY_FUNCTION__.6634, @object
- 1976              		.size	__PRETTY_FUNCTION__.6634, 32
- 1977              	__PRETTY_FUNCTION__.6634:
- 1978 0240 4B436970 		.string	"KCipherVecSetEncryptCounterFunc"
- 1978      68657256 
- 1978      65635365 
- 1978      74456E63 
- 1978      72797074 
- 1979              		.align 16
- 1980              		.type	__PRETTY_FUNCTION__.6621, @object
- 1981              		.size	__PRETTY_FUNCTION__.6621, 25
- 1982              	__PRETTY_FUNCTION__.6621:
- 1983 0260 4B436970 		.string	"KCipherVecSetDecryptIvec"
- 1983      68657256 
- 1983      65635365 
- 1983      74446563 
- 1983      72797074 
- 1984 0279 00000000 		.align 16
- 1984      000000
- 1985              		.type	__PRETTY_FUNCTION__.6608, @object
- 1986              		.size	__PRETTY_FUNCTION__.6608, 25
- 1987              	__PRETTY_FUNCTION__.6608:
- 1988 0280 4B436970 		.string	"KCipherVecSetEncryptIvec"
- 1988      68657256 
- 1988      65635365 
- 1988      74456E63 
- 1988      72797074 
- 1989 0299 00000000 		.align 16
- 1989      000000
- 1990              		.type	__PRETTY_FUNCTION__.6586, @object
- 1991              		.size	__PRETTY_FUNCTION__.6586, 24
- 1992              	__PRETTY_FUNCTION__.6586:
- 1993 02a0 4B436970 		.string	"KCipherVecSetDecryptKey"
- 1993      68657256 
- 1993      65635365 
- 1993      74446563 
- 1993      72797074 
- 1994 02b8 00000000 		.align 16
- 1994      00000000 
- 1995              		.type	__func__.6588, @object
- 1996              		.size	__func__.6588, 24
- 1997              	__func__.6588:
- 1998 02c0 4B436970 		.string	"KCipherVecSetDecryptKey"
- 1998      68657256 
- 1998      65635365 
- 1998      74446563 
- 1998      72797074 
- 1999 02d8 00000000 		.align 16
- 1999      00000000 
- 2000              		.type	__PRETTY_FUNCTION__.6562, @object
- 2001              		.size	__PRETTY_FUNCTION__.6562, 24
- 2002              	__PRETTY_FUNCTION__.6562:
- 2003 02e0 4B436970 		.string	"KCipherVecSetEncryptKey"
- 2003      68657256 
- 2003      65635365 
- 2003      74456E63 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 59
-
-
- 2003      72797074 
- 2004 02f8 00000000 		.align 16
- 2004      00000000 
- 2005              		.type	__func__.6564, @object
- 2006              		.size	__func__.6564, 24
- 2007              	__func__.6564:
- 2008 0300 4B436970 		.string	"KCipherVecSetEncryptKey"
- 2008      68657256 
- 2008      65635365 
- 2008      74456E63 
- 2008      72797074 
- 2009              		.text
- 2010              	.Letext0:
- 2011              		.section	.debug_loc,"", at progbits
- 2012              	.Ldebug_loc0:
- 2013              	.LLST0:
- 2014 0000 00000000 		.quad	.LFB508-.Ltext0
- 2014      00000000 
- 2015 0008 01000000 		.quad	.LCFI0-.Ltext0
- 2015      00000000 
- 2016 0010 0200     		.value	0x2
- 2017 0012 77       		.byte	0x77
- 2018 0013 08       		.sleb128 8
- 2019 0014 01000000 		.quad	.LCFI0-.Ltext0
- 2019      00000000 
- 2020 001c 04000000 		.quad	.LCFI1-.Ltext0
- 2020      00000000 
- 2021 0024 0200     		.value	0x2
- 2022 0026 77       		.byte	0x77
- 2023 0027 10       		.sleb128 16
- 2024 0028 04000000 		.quad	.LCFI1-.Ltext0
- 2024      00000000 
- 2025 0030 2B000000 		.quad	.LFE508-.Ltext0
- 2025      00000000 
- 2026 0038 0200     		.value	0x2
- 2027 003a 76       		.byte	0x76
- 2028 003b 10       		.sleb128 16
- 2029 003c 00000000 		.quad	0x0
- 2029      00000000 
- 2030 0044 00000000 		.quad	0x0
- 2030      00000000 
- 2031              	.LLST1:
- 2032 004c 2B000000 		.quad	.LFB509-.Ltext0
- 2032      00000000 
- 2033 0054 2C000000 		.quad	.LCFI2-.Ltext0
- 2033      00000000 
- 2034 005c 0200     		.value	0x2
- 2035 005e 77       		.byte	0x77
- 2036 005f 08       		.sleb128 8
- 2037 0060 2C000000 		.quad	.LCFI2-.Ltext0
- 2037      00000000 
- 2038 0068 2F000000 		.quad	.LCFI3-.Ltext0
- 2038      00000000 
- 2039 0070 0200     		.value	0x2
- 2040 0072 77       		.byte	0x77
- 2041 0073 10       		.sleb128 16
- 2042 0074 2F000000 		.quad	.LCFI3-.Ltext0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 60
-
-
- 2042      00000000 
- 2043 007c 60000000 		.quad	.LFE509-.Ltext0
- 2043      00000000 
- 2044 0084 0200     		.value	0x2
- 2045 0086 76       		.byte	0x76
- 2046 0087 10       		.sleb128 16
- 2047 0088 00000000 		.quad	0x0
- 2047      00000000 
- 2048 0090 00000000 		.quad	0x0
- 2048      00000000 
- 2049              	.LLST2:
- 2050 0098 60000000 		.quad	.LFB510-.Ltext0
- 2050      00000000 
- 2051 00a0 61000000 		.quad	.LCFI4-.Ltext0
- 2051      00000000 
- 2052 00a8 0200     		.value	0x2
- 2053 00aa 77       		.byte	0x77
- 2054 00ab 08       		.sleb128 8
- 2055 00ac 61000000 		.quad	.LCFI4-.Ltext0
- 2055      00000000 
- 2056 00b4 64000000 		.quad	.LCFI5-.Ltext0
- 2056      00000000 
- 2057 00bc 0200     		.value	0x2
- 2058 00be 77       		.byte	0x77
- 2059 00bf 10       		.sleb128 16
- 2060 00c0 64000000 		.quad	.LCFI5-.Ltext0
- 2060      00000000 
- 2061 00c8 9A000000 		.quad	.LFE510-.Ltext0
- 2061      00000000 
- 2062 00d0 0200     		.value	0x2
- 2063 00d2 76       		.byte	0x76
- 2064 00d3 10       		.sleb128 16
- 2065 00d4 00000000 		.quad	0x0
- 2065      00000000 
- 2066 00dc 00000000 		.quad	0x0
- 2066      00000000 
- 2067              	.LLST3:
- 2068 00e4 9A000000 		.quad	.LFB511-.Ltext0
- 2068      00000000 
- 2069 00ec 9B000000 		.quad	.LCFI6-.Ltext0
- 2069      00000000 
- 2070 00f4 0200     		.value	0x2
- 2071 00f6 77       		.byte	0x77
- 2072 00f7 08       		.sleb128 8
- 2073 00f8 9B000000 		.quad	.LCFI6-.Ltext0
- 2073      00000000 
- 2074 0100 9E000000 		.quad	.LCFI7-.Ltext0
- 2074      00000000 
- 2075 0108 0200     		.value	0x2
- 2076 010a 77       		.byte	0x77
- 2077 010b 10       		.sleb128 16
- 2078 010c 9E000000 		.quad	.LCFI7-.Ltext0
- 2078      00000000 
- 2079 0114 84010000 		.quad	.LFE511-.Ltext0
- 2079      00000000 
- 2080 011c 0200     		.value	0x2
- 2081 011e 76       		.byte	0x76
-
GAS LISTING /tmp/ccq6ONvw.s 			page 61
-
-
- 2082 011f 10       		.sleb128 16
- 2083 0120 00000000 		.quad	0x0
- 2083      00000000 
- 2084 0128 00000000 		.quad	0x0
- 2084      00000000 
- 2085              	.LLST4:
- 2086 0130 84010000 		.quad	.LFB512-.Ltext0
- 2086      00000000 
- 2087 0138 85010000 		.quad	.LCFI8-.Ltext0
- 2087      00000000 
- 2088 0140 0200     		.value	0x2
- 2089 0142 77       		.byte	0x77
- 2090 0143 08       		.sleb128 8
- 2091 0144 85010000 		.quad	.LCFI8-.Ltext0
- 2091      00000000 
- 2092 014c 88010000 		.quad	.LCFI9-.Ltext0
- 2092      00000000 
- 2093 0154 0200     		.value	0x2
- 2094 0156 77       		.byte	0x77
- 2095 0157 10       		.sleb128 16
- 2096 0158 88010000 		.quad	.LCFI9-.Ltext0
- 2096      00000000 
- 2097 0160 6E020000 		.quad	.LFE512-.Ltext0
- 2097      00000000 
- 2098 0168 0200     		.value	0x2
- 2099 016a 76       		.byte	0x76
- 2100 016b 10       		.sleb128 16
- 2101 016c 00000000 		.quad	0x0
- 2101      00000000 
- 2102 0174 00000000 		.quad	0x0
- 2102      00000000 
- 2103              	.LLST5:
- 2104 017c 6E020000 		.quad	.LFB513-.Ltext0
- 2104      00000000 
- 2105 0184 6F020000 		.quad	.LCFI10-.Ltext0
- 2105      00000000 
- 2106 018c 0200     		.value	0x2
- 2107 018e 77       		.byte	0x77
- 2108 018f 08       		.sleb128 8
- 2109 0190 6F020000 		.quad	.LCFI10-.Ltext0
- 2109      00000000 
- 2110 0198 72020000 		.quad	.LCFI11-.Ltext0
- 2110      00000000 
- 2111 01a0 0200     		.value	0x2
- 2112 01a2 77       		.byte	0x77
- 2113 01a3 10       		.sleb128 16
- 2114 01a4 72020000 		.quad	.LCFI11-.Ltext0
- 2114      00000000 
- 2115 01ac F1020000 		.quad	.LFE513-.Ltext0
- 2115      00000000 
- 2116 01b4 0200     		.value	0x2
- 2117 01b6 76       		.byte	0x76
- 2118 01b7 10       		.sleb128 16
- 2119 01b8 00000000 		.quad	0x0
- 2119      00000000 
- 2120 01c0 00000000 		.quad	0x0
- 2120      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 62
-
-
- 2121              	.LLST6:
- 2122 01c8 F1020000 		.quad	.LFB514-.Ltext0
- 2122      00000000 
- 2123 01d0 F2020000 		.quad	.LCFI12-.Ltext0
- 2123      00000000 
- 2124 01d8 0200     		.value	0x2
- 2125 01da 77       		.byte	0x77
- 2126 01db 08       		.sleb128 8
- 2127 01dc F2020000 		.quad	.LCFI12-.Ltext0
- 2127      00000000 
- 2128 01e4 F5020000 		.quad	.LCFI13-.Ltext0
- 2128      00000000 
- 2129 01ec 0200     		.value	0x2
- 2130 01ee 77       		.byte	0x77
- 2131 01ef 10       		.sleb128 16
- 2132 01f0 F5020000 		.quad	.LCFI13-.Ltext0
- 2132      00000000 
- 2133 01f8 74030000 		.quad	.LFE514-.Ltext0
- 2133      00000000 
- 2134 0200 0200     		.value	0x2
- 2135 0202 76       		.byte	0x76
- 2136 0203 10       		.sleb128 16
- 2137 0204 00000000 		.quad	0x0
- 2137      00000000 
- 2138 020c 00000000 		.quad	0x0
- 2138      00000000 
- 2139              	.LLST7:
- 2140 0214 74030000 		.quad	.LFB515-.Ltext0
- 2140      00000000 
- 2141 021c 75030000 		.quad	.LCFI14-.Ltext0
- 2141      00000000 
- 2142 0224 0200     		.value	0x2
- 2143 0226 77       		.byte	0x77
- 2144 0227 08       		.sleb128 8
- 2145 0228 75030000 		.quad	.LCFI14-.Ltext0
- 2145      00000000 
- 2146 0230 78030000 		.quad	.LCFI15-.Ltext0
- 2146      00000000 
- 2147 0238 0200     		.value	0x2
- 2148 023a 77       		.byte	0x77
- 2149 023b 10       		.sleb128 16
- 2150 023c 78030000 		.quad	.LCFI15-.Ltext0
- 2150      00000000 
- 2151 0244 E3030000 		.quad	.LFE515-.Ltext0
- 2151      00000000 
- 2152 024c 0200     		.value	0x2
- 2153 024e 76       		.byte	0x76
- 2154 024f 10       		.sleb128 16
- 2155 0250 00000000 		.quad	0x0
- 2155      00000000 
- 2156 0258 00000000 		.quad	0x0
- 2156      00000000 
- 2157              	.LLST8:
- 2158 0260 E3030000 		.quad	.LFB516-.Ltext0
- 2158      00000000 
- 2159 0268 E4030000 		.quad	.LCFI16-.Ltext0
- 2159      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 63
-
-
- 2160 0270 0200     		.value	0x2
- 2161 0272 77       		.byte	0x77
- 2162 0273 08       		.sleb128 8
- 2163 0274 E4030000 		.quad	.LCFI16-.Ltext0
- 2163      00000000 
- 2164 027c E7030000 		.quad	.LCFI17-.Ltext0
- 2164      00000000 
- 2165 0284 0200     		.value	0x2
- 2166 0286 77       		.byte	0x77
- 2167 0287 10       		.sleb128 16
- 2168 0288 E7030000 		.quad	.LCFI17-.Ltext0
- 2168      00000000 
- 2169 0290 52040000 		.quad	.LFE516-.Ltext0
- 2169      00000000 
- 2170 0298 0200     		.value	0x2
- 2171 029a 76       		.byte	0x76
- 2172 029b 10       		.sleb128 16
- 2173 029c 00000000 		.quad	0x0
- 2173      00000000 
- 2174 02a4 00000000 		.quad	0x0
- 2174      00000000 
- 2175              	.LLST9:
- 2176 02ac 52040000 		.quad	.LFB517-.Ltext0
- 2176      00000000 
- 2177 02b4 53040000 		.quad	.LCFI18-.Ltext0
- 2177      00000000 
- 2178 02bc 0200     		.value	0x2
- 2179 02be 77       		.byte	0x77
- 2180 02bf 08       		.sleb128 8
- 2181 02c0 53040000 		.quad	.LCFI18-.Ltext0
- 2181      00000000 
- 2182 02c8 56040000 		.quad	.LCFI19-.Ltext0
- 2182      00000000 
- 2183 02d0 0200     		.value	0x2
- 2184 02d2 77       		.byte	0x77
- 2185 02d3 10       		.sleb128 16
- 2186 02d4 56040000 		.quad	.LCFI19-.Ltext0
- 2186      00000000 
- 2187 02dc 79040000 		.quad	.LFE517-.Ltext0
- 2187      00000000 
- 2188 02e4 0200     		.value	0x2
- 2189 02e6 76       		.byte	0x76
- 2190 02e7 10       		.sleb128 16
- 2191 02e8 00000000 		.quad	0x0
- 2191      00000000 
- 2192 02f0 00000000 		.quad	0x0
- 2192      00000000 
- 2193              	.LLST10:
- 2194 02f8 79040000 		.quad	.LFB518-.Ltext0
- 2194      00000000 
- 2195 0300 7A040000 		.quad	.LCFI20-.Ltext0
- 2195      00000000 
- 2196 0308 0200     		.value	0x2
- 2197 030a 77       		.byte	0x77
- 2198 030b 08       		.sleb128 8
- 2199 030c 7A040000 		.quad	.LCFI20-.Ltext0
- 2199      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 64
-
-
- 2200 0314 7D040000 		.quad	.LCFI21-.Ltext0
- 2200      00000000 
- 2201 031c 0200     		.value	0x2
- 2202 031e 77       		.byte	0x77
- 2203 031f 10       		.sleb128 16
- 2204 0320 7D040000 		.quad	.LCFI21-.Ltext0
- 2204      00000000 
- 2205 0328 A0040000 		.quad	.LFE518-.Ltext0
- 2205      00000000 
- 2206 0330 0200     		.value	0x2
- 2207 0332 76       		.byte	0x76
- 2208 0333 10       		.sleb128 16
- 2209 0334 00000000 		.quad	0x0
- 2209      00000000 
- 2210 033c 00000000 		.quad	0x0
- 2210      00000000 
- 2211              	.LLST11:
- 2212 0344 A0040000 		.quad	.LFB519-.Ltext0
- 2212      00000000 
- 2213 034c A1040000 		.quad	.LCFI22-.Ltext0
- 2213      00000000 
- 2214 0354 0200     		.value	0x2
- 2215 0356 77       		.byte	0x77
- 2216 0357 08       		.sleb128 8
- 2217 0358 A1040000 		.quad	.LCFI22-.Ltext0
- 2217      00000000 
- 2218 0360 A4040000 		.quad	.LCFI23-.Ltext0
- 2218      00000000 
- 2219 0368 0200     		.value	0x2
- 2220 036a 77       		.byte	0x77
- 2221 036b 10       		.sleb128 16
- 2222 036c A4040000 		.quad	.LCFI23-.Ltext0
- 2222      00000000 
- 2223 0374 F3040000 		.quad	.LFE519-.Ltext0
- 2223      00000000 
- 2224 037c 0200     		.value	0x2
- 2225 037e 76       		.byte	0x76
- 2226 037f 10       		.sleb128 16
- 2227 0380 00000000 		.quad	0x0
- 2227      00000000 
- 2228 0388 00000000 		.quad	0x0
- 2228      00000000 
- 2229              	.LLST12:
- 2230 0390 F3040000 		.quad	.LFB520-.Ltext0
- 2230      00000000 
- 2231 0398 F4040000 		.quad	.LCFI24-.Ltext0
- 2231      00000000 
- 2232 03a0 0200     		.value	0x2
- 2233 03a2 77       		.byte	0x77
- 2234 03a3 08       		.sleb128 8
- 2235 03a4 F4040000 		.quad	.LCFI24-.Ltext0
- 2235      00000000 
- 2236 03ac F7040000 		.quad	.LCFI25-.Ltext0
- 2236      00000000 
- 2237 03b4 0200     		.value	0x2
- 2238 03b6 77       		.byte	0x77
- 2239 03b7 10       		.sleb128 16
-
GAS LISTING /tmp/ccq6ONvw.s 			page 65
-
-
- 2240 03b8 F7040000 		.quad	.LCFI25-.Ltext0
- 2240      00000000 
- 2241 03c0 46050000 		.quad	.LFE520-.Ltext0
- 2241      00000000 
- 2242 03c8 0200     		.value	0x2
- 2243 03ca 76       		.byte	0x76
- 2244 03cb 10       		.sleb128 16
- 2245 03cc 00000000 		.quad	0x0
- 2245      00000000 
- 2246 03d4 00000000 		.quad	0x0
- 2246      00000000 
- 2247              	.LLST13:
- 2248 03dc 46050000 		.quad	.LFB521-.Ltext0
- 2248      00000000 
- 2249 03e4 47050000 		.quad	.LCFI26-.Ltext0
- 2249      00000000 
- 2250 03ec 0200     		.value	0x2
- 2251 03ee 77       		.byte	0x77
- 2252 03ef 08       		.sleb128 8
- 2253 03f0 47050000 		.quad	.LCFI26-.Ltext0
- 2253      00000000 
- 2254 03f8 4A050000 		.quad	.LCFI27-.Ltext0
- 2254      00000000 
- 2255 0400 0200     		.value	0x2
- 2256 0402 77       		.byte	0x77
- 2257 0403 10       		.sleb128 16
- 2258 0404 4A050000 		.quad	.LCFI27-.Ltext0
- 2258      00000000 
- 2259 040c AA050000 		.quad	.LFE521-.Ltext0
- 2259      00000000 
- 2260 0414 0200     		.value	0x2
- 2261 0416 76       		.byte	0x76
- 2262 0417 10       		.sleb128 16
- 2263 0418 00000000 		.quad	0x0
- 2263      00000000 
- 2264 0420 00000000 		.quad	0x0
- 2264      00000000 
- 2265              	.LLST14:
- 2266 0428 AA050000 		.quad	.LFB522-.Ltext0
- 2266      00000000 
- 2267 0430 AB050000 		.quad	.LCFI28-.Ltext0
- 2267      00000000 
- 2268 0438 0200     		.value	0x2
- 2269 043a 77       		.byte	0x77
- 2270 043b 08       		.sleb128 8
- 2271 043c AB050000 		.quad	.LCFI28-.Ltext0
- 2271      00000000 
- 2272 0444 AE050000 		.quad	.LCFI29-.Ltext0
- 2272      00000000 
- 2273 044c 0200     		.value	0x2
- 2274 044e 77       		.byte	0x77
- 2275 044f 10       		.sleb128 16
- 2276 0450 AE050000 		.quad	.LCFI29-.Ltext0
- 2276      00000000 
- 2277 0458 15060000 		.quad	.LFE522-.Ltext0
- 2277      00000000 
- 2278 0460 0200     		.value	0x2
-
GAS LISTING /tmp/ccq6ONvw.s 			page 66
-
-
- 2279 0462 76       		.byte	0x76
- 2280 0463 10       		.sleb128 16
- 2281 0464 00000000 		.quad	0x0
- 2281      00000000 
- 2282 046c 00000000 		.quad	0x0
- 2282      00000000 
- 2283              	.LLST15:
- 2284 0474 15060000 		.quad	.LFB523-.Ltext0
- 2284      00000000 
- 2285 047c 16060000 		.quad	.LCFI30-.Ltext0
- 2285      00000000 
- 2286 0484 0200     		.value	0x2
- 2287 0486 77       		.byte	0x77
- 2288 0487 08       		.sleb128 8
- 2289 0488 16060000 		.quad	.LCFI30-.Ltext0
- 2289      00000000 
- 2290 0490 19060000 		.quad	.LCFI31-.Ltext0
- 2290      00000000 
- 2291 0498 0200     		.value	0x2
- 2292 049a 77       		.byte	0x77
- 2293 049b 10       		.sleb128 16
- 2294 049c 19060000 		.quad	.LCFI31-.Ltext0
- 2294      00000000 
- 2295 04a4 85060000 		.quad	.LFE523-.Ltext0
- 2295      00000000 
- 2296 04ac 0200     		.value	0x2
- 2297 04ae 76       		.byte	0x76
- 2298 04af 10       		.sleb128 16
- 2299 04b0 00000000 		.quad	0x0
- 2299      00000000 
- 2300 04b8 00000000 		.quad	0x0
- 2300      00000000 
- 2301              	.LLST16:
- 2302 04c0 85060000 		.quad	.LFB524-.Ltext0
- 2302      00000000 
- 2303 04c8 86060000 		.quad	.LCFI32-.Ltext0
- 2303      00000000 
- 2304 04d0 0200     		.value	0x2
- 2305 04d2 77       		.byte	0x77
- 2306 04d3 08       		.sleb128 8
- 2307 04d4 86060000 		.quad	.LCFI32-.Ltext0
- 2307      00000000 
- 2308 04dc 89060000 		.quad	.LCFI33-.Ltext0
- 2308      00000000 
- 2309 04e4 0200     		.value	0x2
- 2310 04e6 77       		.byte	0x77
- 2311 04e7 10       		.sleb128 16
- 2312 04e8 89060000 		.quad	.LCFI33-.Ltext0
- 2312      00000000 
- 2313 04f0 F5060000 		.quad	.LFE524-.Ltext0
- 2313      00000000 
- 2314 04f8 0200     		.value	0x2
- 2315 04fa 76       		.byte	0x76
- 2316 04fb 10       		.sleb128 16
- 2317 04fc 00000000 		.quad	0x0
- 2317      00000000 
- 2318 0504 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 67
-
-
- 2318      00000000 
- 2319              	.LLST17:
- 2320 050c F5060000 		.quad	.LFB525-.Ltext0
- 2320      00000000 
- 2321 0514 F6060000 		.quad	.LCFI34-.Ltext0
- 2321      00000000 
- 2322 051c 0200     		.value	0x2
- 2323 051e 77       		.byte	0x77
- 2324 051f 08       		.sleb128 8
- 2325 0520 F6060000 		.quad	.LCFI34-.Ltext0
- 2325      00000000 
- 2326 0528 F9060000 		.quad	.LCFI35-.Ltext0
- 2326      00000000 
- 2327 0530 0200     		.value	0x2
- 2328 0532 77       		.byte	0x77
- 2329 0533 10       		.sleb128 16
- 2330 0534 F9060000 		.quad	.LCFI35-.Ltext0
- 2330      00000000 
- 2331 053c C3070000 		.quad	.LFE525-.Ltext0
- 2331      00000000 
- 2332 0544 0200     		.value	0x2
- 2333 0546 76       		.byte	0x76
- 2334 0547 10       		.sleb128 16
- 2335 0548 00000000 		.quad	0x0
- 2335      00000000 
- 2336 0550 00000000 		.quad	0x0
- 2336      00000000 
- 2337              	.LLST18:
- 2338 0558 C3070000 		.quad	.LFB526-.Ltext0
- 2338      00000000 
- 2339 0560 C4070000 		.quad	.LCFI36-.Ltext0
- 2339      00000000 
- 2340 0568 0200     		.value	0x2
- 2341 056a 77       		.byte	0x77
- 2342 056b 08       		.sleb128 8
- 2343 056c C4070000 		.quad	.LCFI36-.Ltext0
- 2343      00000000 
- 2344 0574 C7070000 		.quad	.LCFI37-.Ltext0
- 2344      00000000 
- 2345 057c 0200     		.value	0x2
- 2346 057e 77       		.byte	0x77
- 2347 057f 10       		.sleb128 16
- 2348 0580 C7070000 		.quad	.LCFI37-.Ltext0
- 2348      00000000 
- 2349 0588 97080000 		.quad	.LFE526-.Ltext0
- 2349      00000000 
- 2350 0590 0200     		.value	0x2
- 2351 0592 76       		.byte	0x76
- 2352 0593 10       		.sleb128 16
- 2353 0594 00000000 		.quad	0x0
- 2353      00000000 
- 2354 059c 00000000 		.quad	0x0
- 2354      00000000 
- 2355              	.LLST19:
- 2356 05a4 97080000 		.quad	.LFB527-.Ltext0
- 2356      00000000 
- 2357 05ac 98080000 		.quad	.LCFI38-.Ltext0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 68
-
-
- 2357      00000000 
- 2358 05b4 0200     		.value	0x2
- 2359 05b6 77       		.byte	0x77
- 2360 05b7 08       		.sleb128 8
- 2361 05b8 98080000 		.quad	.LCFI38-.Ltext0
- 2361      00000000 
- 2362 05c0 9B080000 		.quad	.LCFI39-.Ltext0
- 2362      00000000 
- 2363 05c8 0200     		.value	0x2
- 2364 05ca 77       		.byte	0x77
- 2365 05cb 10       		.sleb128 16
- 2366 05cc 9B080000 		.quad	.LCFI39-.Ltext0
- 2366      00000000 
- 2367 05d4 74090000 		.quad	.LFE527-.Ltext0
- 2367      00000000 
- 2368 05dc 0200     		.value	0x2
- 2369 05de 76       		.byte	0x76
- 2370 05df 10       		.sleb128 16
- 2371 05e0 00000000 		.quad	0x0
- 2371      00000000 
- 2372 05e8 00000000 		.quad	0x0
- 2372      00000000 
- 2373              	.LLST20:
- 2374 05f0 74090000 		.quad	.LFB528-.Ltext0
- 2374      00000000 
- 2375 05f8 75090000 		.quad	.LCFI40-.Ltext0
- 2375      00000000 
- 2376 0600 0200     		.value	0x2
- 2377 0602 77       		.byte	0x77
- 2378 0603 08       		.sleb128 8
- 2379 0604 75090000 		.quad	.LCFI40-.Ltext0
- 2379      00000000 
- 2380 060c 78090000 		.quad	.LCFI41-.Ltext0
- 2380      00000000 
- 2381 0614 0200     		.value	0x2
- 2382 0616 77       		.byte	0x77
- 2383 0617 10       		.sleb128 16
- 2384 0618 78090000 		.quad	.LCFI41-.Ltext0
- 2384      00000000 
- 2385 0620 3A0A0000 		.quad	.LFE528-.Ltext0
- 2385      00000000 
- 2386 0628 0200     		.value	0x2
- 2387 062a 76       		.byte	0x76
- 2388 062b 10       		.sleb128 16
- 2389 062c 00000000 		.quad	0x0
- 2389      00000000 
- 2390 0634 00000000 		.quad	0x0
- 2390      00000000 
- 2391              	.LLST21:
- 2392 063c 3A0A0000 		.quad	.LFB529-.Ltext0
- 2392      00000000 
- 2393 0644 3B0A0000 		.quad	.LCFI42-.Ltext0
- 2393      00000000 
- 2394 064c 0200     		.value	0x2
- 2395 064e 77       		.byte	0x77
- 2396 064f 08       		.sleb128 8
- 2397 0650 3B0A0000 		.quad	.LCFI42-.Ltext0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 69
-
-
- 2397      00000000 
- 2398 0658 3E0A0000 		.quad	.LCFI43-.Ltext0
- 2398      00000000 
- 2399 0660 0200     		.value	0x2
- 2400 0662 77       		.byte	0x77
- 2401 0663 10       		.sleb128 16
- 2402 0664 3E0A0000 		.quad	.LCFI43-.Ltext0
- 2402      00000000 
- 2403 066c 000B0000 		.quad	.LFE529-.Ltext0
- 2403      00000000 
- 2404 0674 0200     		.value	0x2
- 2405 0676 76       		.byte	0x76
- 2406 0677 10       		.sleb128 16
- 2407 0678 00000000 		.quad	0x0
- 2407      00000000 
- 2408 0680 00000000 		.quad	0x0
- 2408      00000000 
- 2409              	.LLST22:
- 2410 0688 000B0000 		.quad	.LFB530-.Ltext0
- 2410      00000000 
- 2411 0690 010B0000 		.quad	.LCFI44-.Ltext0
- 2411      00000000 
- 2412 0698 0200     		.value	0x2
- 2413 069a 77       		.byte	0x77
- 2414 069b 08       		.sleb128 8
- 2415 069c 010B0000 		.quad	.LCFI44-.Ltext0
- 2415      00000000 
- 2416 06a4 040B0000 		.quad	.LCFI45-.Ltext0
- 2416      00000000 
- 2417 06ac 0200     		.value	0x2
- 2418 06ae 77       		.byte	0x77
- 2419 06af 10       		.sleb128 16
- 2420 06b0 040B0000 		.quad	.LCFI45-.Ltext0
- 2420      00000000 
- 2421 06b8 C60B0000 		.quad	.LFE530-.Ltext0
- 2421      00000000 
- 2422 06c0 0200     		.value	0x2
- 2423 06c2 76       		.byte	0x76
- 2424 06c3 10       		.sleb128 16
- 2425 06c4 00000000 		.quad	0x0
- 2425      00000000 
- 2426 06cc 00000000 		.quad	0x0
- 2426      00000000 
- 2427              	.LLST23:
- 2428 06d4 C60B0000 		.quad	.LFB531-.Ltext0
- 2428      00000000 
- 2429 06dc C70B0000 		.quad	.LCFI46-.Ltext0
- 2429      00000000 
- 2430 06e4 0200     		.value	0x2
- 2431 06e6 77       		.byte	0x77
- 2432 06e7 08       		.sleb128 8
- 2433 06e8 C70B0000 		.quad	.LCFI46-.Ltext0
- 2433      00000000 
- 2434 06f0 CA0B0000 		.quad	.LCFI47-.Ltext0
- 2434      00000000 
- 2435 06f8 0200     		.value	0x2
- 2436 06fa 77       		.byte	0x77
-
GAS LISTING /tmp/ccq6ONvw.s 			page 70
-
-
- 2437 06fb 10       		.sleb128 16
- 2438 06fc CA0B0000 		.quad	.LCFI47-.Ltext0
- 2438      00000000 
- 2439 0704 8C0C0000 		.quad	.LFE531-.Ltext0
- 2439      00000000 
- 2440 070c 0200     		.value	0x2
- 2441 070e 76       		.byte	0x76
- 2442 070f 10       		.sleb128 16
- 2443 0710 00000000 		.quad	0x0
- 2443      00000000 
- 2444 0718 00000000 		.quad	0x0
- 2444      00000000 
- 2445              	.LLST24:
- 2446 0720 8C0C0000 		.quad	.LFB532-.Ltext0
- 2446      00000000 
- 2447 0728 8D0C0000 		.quad	.LCFI48-.Ltext0
- 2447      00000000 
- 2448 0730 0200     		.value	0x2
- 2449 0732 77       		.byte	0x77
- 2450 0733 08       		.sleb128 8
- 2451 0734 8D0C0000 		.quad	.LCFI48-.Ltext0
- 2451      00000000 
- 2452 073c 900C0000 		.quad	.LCFI49-.Ltext0
- 2452      00000000 
- 2453 0744 0200     		.value	0x2
- 2454 0746 77       		.byte	0x77
- 2455 0747 10       		.sleb128 16
- 2456 0748 900C0000 		.quad	.LCFI49-.Ltext0
- 2456      00000000 
- 2457 0750 C50C0000 		.quad	.LFE532-.Ltext0
- 2457      00000000 
- 2458 0758 0200     		.value	0x2
- 2459 075a 76       		.byte	0x76
- 2460 075b 10       		.sleb128 16
- 2461 075c 00000000 		.quad	0x0
- 2461      00000000 
- 2462 0764 00000000 		.quad	0x0
- 2462      00000000 
- 2463              	.LLST25:
- 2464 076c C50C0000 		.quad	.LFB533-.Ltext0
- 2464      00000000 
- 2465 0774 C60C0000 		.quad	.LCFI50-.Ltext0
- 2465      00000000 
- 2466 077c 0200     		.value	0x2
- 2467 077e 77       		.byte	0x77
- 2468 077f 08       		.sleb128 8
- 2469 0780 C60C0000 		.quad	.LCFI50-.Ltext0
- 2469      00000000 
- 2470 0788 C90C0000 		.quad	.LCFI51-.Ltext0
- 2470      00000000 
- 2471 0790 0200     		.value	0x2
- 2472 0792 77       		.byte	0x77
- 2473 0793 10       		.sleb128 16
- 2474 0794 C90C0000 		.quad	.LCFI51-.Ltext0
- 2474      00000000 
- 2475 079c FB0C0000 		.quad	.LFE533-.Ltext0
- 2475      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 71
-
-
- 2476 07a4 0200     		.value	0x2
- 2477 07a6 76       		.byte	0x76
- 2478 07a7 10       		.sleb128 16
- 2479 07a8 00000000 		.quad	0x0
- 2479      00000000 
- 2480 07b0 00000000 		.quad	0x0
- 2480      00000000 
- 2481              	.LLST26:
- 2482 07b8 FB0C0000 		.quad	.LFB534-.Ltext0
- 2482      00000000 
- 2483 07c0 FC0C0000 		.quad	.LCFI52-.Ltext0
- 2483      00000000 
- 2484 07c8 0200     		.value	0x2
- 2485 07ca 77       		.byte	0x77
- 2486 07cb 08       		.sleb128 8
- 2487 07cc FC0C0000 		.quad	.LCFI52-.Ltext0
- 2487      00000000 
- 2488 07d4 FF0C0000 		.quad	.LCFI53-.Ltext0
- 2488      00000000 
- 2489 07dc 0200     		.value	0x2
- 2490 07de 77       		.byte	0x77
- 2491 07df 10       		.sleb128 16
- 2492 07e0 FF0C0000 		.quad	.LCFI53-.Ltext0
- 2492      00000000 
- 2493 07e8 310D0000 		.quad	.LFE534-.Ltext0
- 2493      00000000 
- 2494 07f0 0200     		.value	0x2
- 2495 07f2 76       		.byte	0x76
- 2496 07f3 10       		.sleb128 16
- 2497 07f4 00000000 		.quad	0x0
- 2497      00000000 
- 2498 07fc 00000000 		.quad	0x0
- 2498      00000000 
- 2499              	.LLST27:
- 2500 0804 310D0000 		.quad	.LFB535-.Ltext0
- 2500      00000000 
- 2501 080c 320D0000 		.quad	.LCFI54-.Ltext0
- 2501      00000000 
- 2502 0814 0200     		.value	0x2
- 2503 0816 77       		.byte	0x77
- 2504 0817 08       		.sleb128 8
- 2505 0818 320D0000 		.quad	.LCFI54-.Ltext0
- 2505      00000000 
- 2506 0820 350D0000 		.quad	.LCFI55-.Ltext0
- 2506      00000000 
- 2507 0828 0200     		.value	0x2
- 2508 082a 77       		.byte	0x77
- 2509 082b 10       		.sleb128 16
- 2510 082c 350D0000 		.quad	.LCFI55-.Ltext0
- 2510      00000000 
- 2511 0834 8C0D0000 		.quad	.LFE535-.Ltext0
- 2511      00000000 
- 2512 083c 0200     		.value	0x2
- 2513 083e 76       		.byte	0x76
- 2514 083f 10       		.sleb128 16
- 2515 0840 00000000 		.quad	0x0
- 2515      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 72
-
-
- 2516 0848 00000000 		.quad	0x0
- 2516      00000000 
- 2517              	.LLST28:
- 2518 0850 8C0D0000 		.quad	.LFB536-.Ltext0
- 2518      00000000 
- 2519 0858 8D0D0000 		.quad	.LCFI56-.Ltext0
- 2519      00000000 
- 2520 0860 0200     		.value	0x2
- 2521 0862 77       		.byte	0x77
- 2522 0863 08       		.sleb128 8
- 2523 0864 8D0D0000 		.quad	.LCFI56-.Ltext0
- 2523      00000000 
- 2524 086c 900D0000 		.quad	.LCFI57-.Ltext0
- 2524      00000000 
- 2525 0874 0200     		.value	0x2
- 2526 0876 77       		.byte	0x77
- 2527 0877 10       		.sleb128 16
- 2528 0878 900D0000 		.quad	.LCFI57-.Ltext0
- 2528      00000000 
- 2529 0880 2A0E0000 		.quad	.LFE536-.Ltext0
- 2529      00000000 
- 2530 0888 0200     		.value	0x2
- 2531 088a 76       		.byte	0x76
- 2532 088b 10       		.sleb128 16
- 2533 088c 00000000 		.quad	0x0
- 2533      00000000 
- 2534 0894 00000000 		.quad	0x0
- 2534      00000000 
- 2535              	.LLST29:
- 2536 089c 2A0E0000 		.quad	.LFB537-.Ltext0
- 2536      00000000 
- 2537 08a4 2B0E0000 		.quad	.LCFI58-.Ltext0
- 2537      00000000 
- 2538 08ac 0200     		.value	0x2
- 2539 08ae 77       		.byte	0x77
- 2540 08af 08       		.sleb128 8
- 2541 08b0 2B0E0000 		.quad	.LCFI58-.Ltext0
- 2541      00000000 
- 2542 08b8 2E0E0000 		.quad	.LCFI59-.Ltext0
- 2542      00000000 
- 2543 08c0 0200     		.value	0x2
- 2544 08c2 77       		.byte	0x77
- 2545 08c3 10       		.sleb128 16
- 2546 08c4 2E0E0000 		.quad	.LCFI59-.Ltext0
- 2546      00000000 
- 2547 08cc 850E0000 		.quad	.LFE537-.Ltext0
- 2547      00000000 
- 2548 08d4 0200     		.value	0x2
- 2549 08d6 76       		.byte	0x76
- 2550 08d7 10       		.sleb128 16
- 2551 08d8 00000000 		.quad	0x0
- 2551      00000000 
- 2552 08e0 00000000 		.quad	0x0
- 2552      00000000 
- 2553              	.LLST30:
- 2554 08e8 850E0000 		.quad	.LFB538-.Ltext0
- 2554      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 73
-
-
- 2555 08f0 860E0000 		.quad	.LCFI60-.Ltext0
- 2555      00000000 
- 2556 08f8 0200     		.value	0x2
- 2557 08fa 77       		.byte	0x77
- 2558 08fb 08       		.sleb128 8
- 2559 08fc 860E0000 		.quad	.LCFI60-.Ltext0
- 2559      00000000 
- 2560 0904 890E0000 		.quad	.LCFI61-.Ltext0
- 2560      00000000 
- 2561 090c 0200     		.value	0x2
- 2562 090e 77       		.byte	0x77
- 2563 090f 10       		.sleb128 16
- 2564 0910 890E0000 		.quad	.LCFI61-.Ltext0
- 2564      00000000 
- 2565 0918 1A0F0000 		.quad	.LFE538-.Ltext0
- 2565      00000000 
- 2566 0920 0200     		.value	0x2
- 2567 0922 76       		.byte	0x76
- 2568 0923 10       		.sleb128 16
- 2569 0924 00000000 		.quad	0x0
- 2569      00000000 
- 2570 092c 00000000 		.quad	0x0
- 2570      00000000 
- 2571              	.LLST31:
- 2572 0934 1A0F0000 		.quad	.LFB539-.Ltext0
- 2572      00000000 
- 2573 093c 1B0F0000 		.quad	.LCFI62-.Ltext0
- 2573      00000000 
- 2574 0944 0200     		.value	0x2
- 2575 0946 77       		.byte	0x77
- 2576 0947 08       		.sleb128 8
- 2577 0948 1B0F0000 		.quad	.LCFI62-.Ltext0
- 2577      00000000 
- 2578 0950 1E0F0000 		.quad	.LCFI63-.Ltext0
- 2578      00000000 
- 2579 0958 0200     		.value	0x2
- 2580 095a 77       		.byte	0x77
- 2581 095b 10       		.sleb128 16
- 2582 095c 1E0F0000 		.quad	.LCFI63-.Ltext0
- 2582      00000000 
- 2583 0964 7C100000 		.quad	.LFE539-.Ltext0
- 2583      00000000 
- 2584 096c 0200     		.value	0x2
- 2585 096e 76       		.byte	0x76
- 2586 096f 10       		.sleb128 16
- 2587 0970 00000000 		.quad	0x0
- 2587      00000000 
- 2588 0978 00000000 		.quad	0x0
- 2588      00000000 
- 2589              		.file 2 "/usr/include/stdint.h"
- 2590              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
- 2591              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/atomic32.h"
- 2592              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/refcount.h"
- 2593              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/krypto/cipher.h"
- 2594              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-impl.h"
- 2595              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 2596              		.file 9 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 74
-
-
- 2597              		.file 10 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi-priv.h"
- 2598              		.file 11 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi-priv.h"
- 2599              		.file 12 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/krypto/ciphermgr.h"
- 2600              		.file 13 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
- 2601              		.file 14 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 2602              		.file 15 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
- 2603              		.section	.debug_info
- 2604 0000 951F0000 		.long	0x1f95
- 2605 0004 0200     		.value	0x2
- 2606 0006 00000000 		.long	.Ldebug_abbrev0
- 2607 000a 08       		.byte	0x8
- 2608 000b 01       		.uleb128 0x1
- 2609 000c 00000000 		.long	.LASF395
- 2610 0010 01       		.byte	0x1
- 2611 0011 00000000 		.long	.LASF396
- 2612 0015 00000000 		.long	.LASF397
- 2613 0019 00000000 		.quad	.Ltext0
- 2613      00000000 
- 2614 0021 00000000 		.quad	.Letext0
- 2614      00000000 
- 2615 0029 00000000 		.long	.Ldebug_line0
- 2616 002d 02       		.uleb128 0x2
- 2617 002e 01       		.byte	0x1
- 2618 002f 06       		.byte	0x6
- 2619 0030 00000000 		.long	.LASF0
- 2620 0034 02       		.uleb128 0x2
- 2621 0035 02       		.byte	0x2
- 2622 0036 05       		.byte	0x5
- 2623 0037 00000000 		.long	.LASF1
- 2624 003b 03       		.uleb128 0x3
- 2625 003c 04       		.byte	0x4
- 2626 003d 05       		.byte	0x5
- 2627 003e 696E7400 		.string	"int"
- 2628 0042 02       		.uleb128 0x2
- 2629 0043 08       		.byte	0x8
- 2630 0044 05       		.byte	0x5
- 2631 0045 00000000 		.long	.LASF2
- 2632 0049 04       		.uleb128 0x4
- 2633 004a 00000000 		.long	.LASF5
- 2634 004e 02       		.byte	0x2
- 2635 004f 31       		.byte	0x31
- 2636 0050 54000000 		.long	0x54
- 2637 0054 02       		.uleb128 0x2
- 2638 0055 01       		.byte	0x1
- 2639 0056 08       		.byte	0x8
- 2640 0057 00000000 		.long	.LASF3
- 2641 005b 02       		.uleb128 0x2
- 2642 005c 02       		.byte	0x2
- 2643 005d 07       		.byte	0x7
- 2644 005e 00000000 		.long	.LASF4
- 2645 0062 04       		.uleb128 0x4
- 2646 0063 00000000 		.long	.LASF6
- 2647 0067 02       		.byte	0x2
- 2648 0068 34       		.byte	0x34
- 2649 0069 6D000000 		.long	0x6d
- 2650 006d 02       		.uleb128 0x2
- 2651 006e 04       		.byte	0x4
-
GAS LISTING /tmp/ccq6ONvw.s 			page 75
-
-
- 2652 006f 07       		.byte	0x7
- 2653 0070 00000000 		.long	.LASF7
- 2654 0074 02       		.uleb128 0x2
- 2655 0075 08       		.byte	0x8
- 2656 0076 07       		.byte	0x7
- 2657 0077 00000000 		.long	.LASF8
- 2658 007b 04       		.uleb128 0x4
- 2659 007c 00000000 		.long	.LASF9
- 2660 0080 03       		.byte	0x3
- 2661 0081 30       		.byte	0x30
- 2662 0082 62000000 		.long	0x62
- 2663 0086 04       		.uleb128 0x4
- 2664 0087 00000000 		.long	.LASF10
- 2665 008b 04       		.byte	0x4
- 2666 008c 27       		.byte	0x27
- 2667 008d 91000000 		.long	0x91
- 2668 0091 05       		.uleb128 0x5
- 2669 0092 00000000 		.long	.LASF10
- 2670 0096 04       		.byte	0x4
- 2671 0097 04       		.byte	0x4
- 2672 0098 27       		.byte	0x27
- 2673 0099 AC000000 		.long	0xac
- 2674 009d 06       		.uleb128 0x6
- 2675 009e 00000000 		.long	.LASF34
- 2676 00a2 04       		.byte	0x4
- 2677 00a3 2A       		.byte	0x2a
- 2678 00a4 AC000000 		.long	0xac
- 2679 00a8 02       		.byte	0x2
- 2680 00a9 23       		.byte	0x23
- 2681 00aa 00       		.uleb128 0x0
- 2682 00ab 00       		.byte	0x0
- 2683 00ac 07       		.uleb128 0x7
- 2684 00ad 3B000000 		.long	0x3b
- 2685 00b1 08       		.uleb128 0x8
- 2686 00b2 08       		.byte	0x8
- 2687 00b3 07       		.byte	0x7
- 2688 00b4 09       		.uleb128 0x9
- 2689 00b5 08       		.byte	0x8
- 2690 00b6 0A       		.uleb128 0xa
- 2691 00b7 08       		.byte	0x8
- 2692 00b8 BC000000 		.long	0xbc
- 2693 00bc 0B       		.uleb128 0xb
- 2694 00bd C1000000 		.long	0xc1
- 2695 00c1 02       		.uleb128 0x2
- 2696 00c2 01       		.byte	0x1
- 2697 00c3 06       		.byte	0x6
- 2698 00c4 00000000 		.long	.LASF11
- 2699 00c8 0C       		.uleb128 0xc
- 2700 00c9 04       		.byte	0x4
- 2701 00ca 0D       		.byte	0xd
- 2702 00cb D6       		.byte	0xd6
- 2703 00cc 49010000 		.long	0x149
- 2704 00d0 0D       		.uleb128 0xd
- 2705 00d1 00000000 		.long	.LASF12
- 2706 00d5 7F       		.sleb128 -1
- 2707 00d6 0D       		.uleb128 0xd
- 2708 00d7 00000000 		.long	.LASF13
-
GAS LISTING /tmp/ccq6ONvw.s 			page 76
-
-
- 2709 00db 00       		.sleb128 0
- 2710 00dc 0D       		.uleb128 0xd
- 2711 00dd 00000000 		.long	.LASF14
- 2712 00e1 01       		.sleb128 1
- 2713 00e2 0D       		.uleb128 0xd
- 2714 00e3 00000000 		.long	.LASF15
- 2715 00e7 02       		.sleb128 2
- 2716 00e8 0D       		.uleb128 0xd
- 2717 00e9 00000000 		.long	.LASF16
- 2718 00ed 03       		.sleb128 3
- 2719 00ee 0D       		.uleb128 0xd
- 2720 00ef 00000000 		.long	.LASF17
- 2721 00f3 04       		.sleb128 4
- 2722 00f4 0D       		.uleb128 0xd
- 2723 00f5 00000000 		.long	.LASF18
- 2724 00f9 05       		.sleb128 5
- 2725 00fa 0D       		.uleb128 0xd
- 2726 00fb 00000000 		.long	.LASF19
- 2727 00ff 06       		.sleb128 6
- 2728 0100 0D       		.uleb128 0xd
- 2729 0101 00000000 		.long	.LASF20
- 2730 0105 07       		.sleb128 7
- 2731 0106 0D       		.uleb128 0xd
- 2732 0107 00000000 		.long	.LASF21
- 2733 010b 08       		.sleb128 8
- 2734 010c 0D       		.uleb128 0xd
- 2735 010d 00000000 		.long	.LASF22
- 2736 0111 09       		.sleb128 9
- 2737 0112 0D       		.uleb128 0xd
- 2738 0113 00000000 		.long	.LASF23
- 2739 0117 0A       		.sleb128 10
- 2740 0118 0D       		.uleb128 0xd
- 2741 0119 00000000 		.long	.LASF24
- 2742 011d 0B       		.sleb128 11
- 2743 011e 0D       		.uleb128 0xd
- 2744 011f 00000000 		.long	.LASF25
- 2745 0123 0C       		.sleb128 12
- 2746 0124 0D       		.uleb128 0xd
- 2747 0125 00000000 		.long	.LASF26
- 2748 0129 0D       		.sleb128 13
- 2749 012a 0D       		.uleb128 0xd
- 2750 012b 00000000 		.long	.LASF27
- 2751 012f 0E       		.sleb128 14
- 2752 0130 0D       		.uleb128 0xd
- 2753 0131 00000000 		.long	.LASF28
- 2754 0135 0F       		.sleb128 15
- 2755 0136 0D       		.uleb128 0xd
- 2756 0137 00000000 		.long	.LASF29
- 2757 013b 10       		.sleb128 16
- 2758 013c 0D       		.uleb128 0xd
- 2759 013d 00000000 		.long	.LASF30
- 2760 0141 11       		.sleb128 17
- 2761 0142 0D       		.uleb128 0xd
- 2762 0143 00000000 		.long	.LASF31
- 2763 0147 12       		.sleb128 18
- 2764 0148 00       		.byte	0x0
- 2765 0149 04       		.uleb128 0x4
-
GAS LISTING /tmp/ccq6ONvw.s 			page 77
-
-
- 2766 014a 00000000 		.long	.LASF32
- 2767 014e 05       		.byte	0x5
- 2768 014f 42       		.byte	0x42
- 2769 0150 86000000 		.long	0x86
- 2770 0154 04       		.uleb128 0x4
- 2771 0155 00000000 		.long	.LASF33
- 2772 0159 06       		.byte	0x6
- 2773 015a 20       		.byte	0x20
- 2774 015b 5F010000 		.long	0x15f
- 2775 015f 05       		.uleb128 0x5
- 2776 0160 00000000 		.long	.LASF33
- 2777 0164 48       		.byte	0x48
- 2778 0165 06       		.byte	0x6
- 2779 0166 20       		.byte	0x20
- 2780 0167 F7010000 		.long	0x1f7
- 2781 016b 06       		.uleb128 0x6
- 2782 016c 00000000 		.long	.LASF35
- 2783 0170 07       		.byte	0x7
- 2784 0171 9A       		.byte	0x9a
- 2785 0172 49010000 		.long	0x149
- 2786 0176 02       		.byte	0x2
- 2787 0177 23       		.byte	0x23
- 2788 0178 00       		.uleb128 0x0
- 2789 0179 06       		.uleb128 0x6
- 2790 017a 00000000 		.long	.LASF36
- 2791 017e 07       		.byte	0x7
- 2792 017f 9B       		.byte	0x9b
- 2793 0180 62000000 		.long	0x62
- 2794 0184 02       		.byte	0x2
- 2795 0185 23       		.byte	0x23
- 2796 0186 04       		.uleb128 0x4
- 2797 0187 0E       		.uleb128 0xe
- 2798 0188 767400   		.string	"vt"
- 2799 018b 07       		.byte	0x7
- 2800 018c 9C       		.byte	0x9c
- 2801 018d BC040000 		.long	0x4bc
- 2802 0191 02       		.byte	0x2
- 2803 0192 23       		.byte	0x23
- 2804 0193 08       		.uleb128 0x8
- 2805 0194 06       		.uleb128 0x6
- 2806 0195 00000000 		.long	.LASF37
- 2807 0199 07       		.byte	0x7
- 2808 019a 9D       		.byte	0x9d
- 2809 019b B6000000 		.long	0xb6
- 2810 019f 02       		.byte	0x2
- 2811 01a0 23       		.byte	0x23
- 2812 01a1 10       		.uleb128 0x10
- 2813 01a2 06       		.uleb128 0x6
- 2814 01a3 00000000 		.long	.LASF38
- 2815 01a7 07       		.byte	0x7
- 2816 01a8 9E       		.byte	0x9e
- 2817 01a9 B4000000 		.long	0xb4
- 2818 01ad 02       		.byte	0x2
- 2819 01ae 23       		.byte	0x23
- 2820 01af 18       		.uleb128 0x18
- 2821 01b0 06       		.uleb128 0x6
- 2822 01b1 00000000 		.long	.LASF39
-
GAS LISTING /tmp/ccq6ONvw.s 			page 78
-
-
- 2823 01b5 07       		.byte	0x7
- 2824 01b6 9F       		.byte	0x9f
- 2825 01b7 B4000000 		.long	0xb4
- 2826 01bb 02       		.byte	0x2
- 2827 01bc 23       		.byte	0x23
- 2828 01bd 20       		.uleb128 0x20
- 2829 01be 06       		.uleb128 0x6
- 2830 01bf 00000000 		.long	.LASF40
- 2831 01c3 07       		.byte	0x7
- 2832 01c4 A0       		.byte	0xa0
- 2833 01c5 B4000000 		.long	0xb4
- 2834 01c9 02       		.byte	0x2
- 2835 01ca 23       		.byte	0x23
- 2836 01cb 28       		.uleb128 0x28
- 2837 01cc 06       		.uleb128 0x6
- 2838 01cd 00000000 		.long	.LASF41
- 2839 01d1 07       		.byte	0x7
- 2840 01d2 A1       		.byte	0xa1
- 2841 01d3 B4000000 		.long	0xb4
- 2842 01d7 02       		.byte	0x2
- 2843 01d8 23       		.byte	0x23
- 2844 01d9 30       		.uleb128 0x30
- 2845 01da 06       		.uleb128 0x6
- 2846 01db 00000000 		.long	.LASF42
- 2847 01df 07       		.byte	0x7
- 2848 01e0 A2       		.byte	0xa2
- 2849 01e1 F7010000 		.long	0x1f7
- 2850 01e5 02       		.byte	0x2
- 2851 01e6 23       		.byte	0x23
- 2852 01e7 38       		.uleb128 0x38
- 2853 01e8 06       		.uleb128 0x6
- 2854 01e9 00000000 		.long	.LASF43
- 2855 01ed 07       		.byte	0x7
- 2856 01ee A3       		.byte	0xa3
- 2857 01ef F7010000 		.long	0x1f7
- 2858 01f3 02       		.byte	0x2
- 2859 01f4 23       		.byte	0x23
- 2860 01f5 40       		.uleb128 0x40
- 2861 01f6 00       		.byte	0x0
- 2862 01f7 04       		.uleb128 0x4
- 2863 01f8 00000000 		.long	.LASF44
- 2864 01fc 06       		.byte	0x6
- 2865 01fd 40       		.byte	0x40
- 2866 01fe 02020000 		.long	0x202
- 2867 0202 0A       		.uleb128 0xa
- 2868 0203 08       		.byte	0x8
- 2869 0204 08020000 		.long	0x208
- 2870 0208 0F       		.uleb128 0xf
- 2871 0209 01       		.byte	0x1
- 2872 020a 14020000 		.long	0x214
- 2873 020e 10       		.uleb128 0x10
- 2874 020f B4000000 		.long	0xb4
- 2875 0213 00       		.byte	0x0
- 2876 0214 04       		.uleb128 0x4
- 2877 0215 00000000 		.long	.LASF45
- 2878 0219 07       		.byte	0x7
- 2879 021a 2C       		.byte	0x2c
-
GAS LISTING /tmp/ccq6ONvw.s 			page 79
-
-
- 2880 021b 1F020000 		.long	0x21f
- 2881 021f 05       		.uleb128 0x5
- 2882 0220 00000000 		.long	.LASF45
- 2883 0224 50       		.byte	0x50
- 2884 0225 07       		.byte	0x7
- 2885 0226 2B       		.byte	0x2b
- 2886 0227 48020000 		.long	0x248
- 2887 022b 0E       		.uleb128 0xe
- 2888 022c 64616400 		.string	"dad"
- 2889 0230 01       		.byte	0x1
- 2890 0231 3E       		.byte	0x3e
- 2891 0232 54010000 		.long	0x154
- 2892 0236 02       		.byte	0x2
- 2893 0237 23       		.byte	0x23
- 2894 0238 00       		.uleb128 0x0
- 2895 0239 06       		.uleb128 0x6
- 2896 023a 00000000 		.long	.LASF46
- 2897 023e 01       		.byte	0x1
- 2898 023f 3F       		.byte	0x3f
- 2899 0240 87070000 		.long	0x787
- 2900 0244 02       		.byte	0x2
- 2901 0245 23       		.byte	0x23
- 2902 0246 48       		.uleb128 0x48
- 2903 0247 00       		.byte	0x0
- 2904 0248 04       		.uleb128 0x4
- 2905 0249 00000000 		.long	.LASF47
- 2906 024d 07       		.byte	0x7
- 2907 024e 2F       		.byte	0x2f
- 2908 024f 53020000 		.long	0x253
- 2909 0253 05       		.uleb128 0x5
- 2910 0254 00000000 		.long	.LASF47
- 2911 0258 08       		.byte	0x8
- 2912 0259 07       		.byte	0x7
- 2913 025a 2F       		.byte	0x2f
- 2914 025b 7C020000 		.long	0x27c
- 2915 025f 0E       		.uleb128 0xe
- 2916 0260 6D616A00 		.string	"maj"
- 2917 0264 07       		.byte	0x7
- 2918 0265 32       		.byte	0x32
- 2919 0266 62000000 		.long	0x62
- 2920 026a 02       		.byte	0x2
- 2921 026b 23       		.byte	0x23
- 2922 026c 00       		.uleb128 0x0
- 2923 026d 0E       		.uleb128 0xe
- 2924 026e 6D696E00 		.string	"min"
- 2925 0272 07       		.byte	0x7
- 2926 0273 33       		.byte	0x33
- 2927 0274 62000000 		.long	0x62
- 2928 0278 02       		.byte	0x2
- 2929 0279 23       		.byte	0x23
- 2930 027a 04       		.uleb128 0x4
- 2931 027b 00       		.byte	0x0
- 2932 027c 04       		.uleb128 0x4
- 2933 027d 00000000 		.long	.LASF48
- 2934 0281 07       		.byte	0x7
- 2935 0282 37       		.byte	0x37
- 2936 0283 87020000 		.long	0x287
-
GAS LISTING /tmp/ccq6ONvw.s 			page 80
-
-
- 2937 0287 05       		.uleb128 0x5
- 2938 0288 00000000 		.long	.LASF48
- 2939 028c B0       		.byte	0xb0
- 2940 028d 07       		.byte	0x7
- 2941 028e 37       		.byte	0x37
- 2942 028f CE030000 		.long	0x3ce
- 2943 0293 06       		.uleb128 0x6
- 2944 0294 00000000 		.long	.LASF49
- 2945 0298 07       		.byte	0x7
- 2946 0299 3A       		.byte	0x3a
- 2947 029a 48020000 		.long	0x248
- 2948 029e 02       		.byte	0x2
- 2949 029f 23       		.byte	0x23
- 2950 02a0 00       		.uleb128 0x0
- 2951 02a1 06       		.uleb128 0x6
- 2952 02a2 00000000 		.long	.LASF50
- 2953 02a6 07       		.byte	0x7
- 2954 02a7 3E       		.byte	0x3e
- 2955 02a8 E4030000 		.long	0x3e4
- 2956 02ac 02       		.byte	0x2
- 2957 02ad 23       		.byte	0x23
- 2958 02ae 08       		.uleb128 0x8
- 2959 02af 06       		.uleb128 0x6
- 2960 02b0 00000000 		.long	.LASF51
- 2961 02b4 07       		.byte	0x7
- 2962 02b5 40       		.byte	0x40
- 2963 02b6 04040000 		.long	0x404
- 2964 02ba 02       		.byte	0x2
- 2965 02bb 23       		.byte	0x23
- 2966 02bc 10       		.uleb128 0x10
- 2967 02bd 06       		.uleb128 0x6
- 2968 02be 00000000 		.long	.LASF52
- 2969 02c2 07       		.byte	0x7
- 2970 02c3 44       		.byte	0x44
- 2971 02c4 04040000 		.long	0x404
- 2972 02c8 02       		.byte	0x2
- 2973 02c9 23       		.byte	0x23
- 2974 02ca 18       		.uleb128 0x18
- 2975 02cb 06       		.uleb128 0x6
- 2976 02cc 00000000 		.long	.LASF53
- 2977 02d0 07       		.byte	0x7
- 2978 02d1 48       		.byte	0x48
- 2979 02d2 26040000 		.long	0x426
- 2980 02d6 02       		.byte	0x2
- 2981 02d7 23       		.byte	0x23
- 2982 02d8 20       		.uleb128 0x20
- 2983 02d9 06       		.uleb128 0x6
- 2984 02da 00000000 		.long	.LASF54
- 2985 02de 07       		.byte	0x7
- 2986 02df 4B       		.byte	0x4b
- 2987 02e0 26040000 		.long	0x426
- 2988 02e4 02       		.byte	0x2
- 2989 02e5 23       		.byte	0x23
- 2990 02e6 28       		.uleb128 0x28
- 2991 02e7 06       		.uleb128 0x6
- 2992 02e8 00000000 		.long	.LASF55
- 2993 02ec 07       		.byte	0x7
-
GAS LISTING /tmp/ccq6ONvw.s 			page 81
-
-
- 2994 02ed 4E       		.byte	0x4e
- 2995 02ee 41040000 		.long	0x441
- 2996 02f2 02       		.byte	0x2
- 2997 02f3 23       		.byte	0x23
- 2998 02f4 30       		.uleb128 0x30
- 2999 02f5 06       		.uleb128 0x6
- 3000 02f6 00000000 		.long	.LASF56
- 3001 02fa 07       		.byte	0x7
- 3002 02fb 51       		.byte	0x51
- 3003 02fc 41040000 		.long	0x441
- 3004 0300 02       		.byte	0x2
- 3005 0301 23       		.byte	0x23
- 3006 0302 38       		.uleb128 0x38
- 3007 0303 06       		.uleb128 0x6
- 3008 0304 00000000 		.long	.LASF57
- 3009 0308 07       		.byte	0x7
- 3010 0309 55       		.byte	0x55
- 3011 030a 6C040000 		.long	0x46c
- 3012 030e 02       		.byte	0x2
- 3013 030f 23       		.byte	0x23
- 3014 0310 40       		.uleb128 0x40
- 3015 0311 06       		.uleb128 0x6
- 3016 0312 00000000 		.long	.LASF58
- 3017 0316 07       		.byte	0x7
- 3018 0317 58       		.byte	0x58
- 3019 0318 6C040000 		.long	0x46c
- 3020 031c 02       		.byte	0x2
- 3021 031d 23       		.byte	0x23
- 3022 031e 48       		.uleb128 0x48
- 3023 031f 06       		.uleb128 0x6
- 3024 0320 00000000 		.long	.LASF59
- 3025 0324 07       		.byte	0x7
- 3026 0325 5D       		.byte	0x5d
- 3027 0326 91040000 		.long	0x491
- 3028 032a 02       		.byte	0x2
- 3029 032b 23       		.byte	0x23
- 3030 032c 50       		.uleb128 0x50
- 3031 032d 06       		.uleb128 0x6
- 3032 032e 00000000 		.long	.LASF60
- 3033 0332 07       		.byte	0x7
- 3034 0333 62       		.byte	0x62
- 3035 0334 91040000 		.long	0x491
- 3036 0338 02       		.byte	0x2
- 3037 0339 23       		.byte	0x23
- 3038 033a 58       		.uleb128 0x58
- 3039 033b 06       		.uleb128 0x6
- 3040 033c 00000000 		.long	.LASF61
- 3041 0340 07       		.byte	0x7
- 3042 0341 68       		.byte	0x68
- 3043 0342 B6040000 		.long	0x4b6
- 3044 0346 02       		.byte	0x2
- 3045 0347 23       		.byte	0x23
- 3046 0348 60       		.uleb128 0x60
- 3047 0349 06       		.uleb128 0x6
- 3048 034a 00000000 		.long	.LASF62
- 3049 034e 07       		.byte	0x7
- 3050 034f 6C       		.byte	0x6c
-
GAS LISTING /tmp/ccq6ONvw.s 			page 82
-
-
- 3051 0350 B6040000 		.long	0x4b6
- 3052 0354 02       		.byte	0x2
- 3053 0355 23       		.byte	0x23
- 3054 0356 68       		.uleb128 0x68
- 3055 0357 06       		.uleb128 0x6
- 3056 0358 00000000 		.long	.LASF63
- 3057 035c 07       		.byte	0x7
- 3058 035d 72       		.byte	0x72
- 3059 035e B6040000 		.long	0x4b6
- 3060 0362 02       		.byte	0x2
- 3061 0363 23       		.byte	0x23
- 3062 0364 70       		.uleb128 0x70
- 3063 0365 06       		.uleb128 0x6
- 3064 0366 00000000 		.long	.LASF64
- 3065 036a 07       		.byte	0x7
- 3066 036b 74       		.byte	0x74
- 3067 036c B6040000 		.long	0x4b6
- 3068 0370 02       		.byte	0x2
- 3069 0371 23       		.byte	0x23
- 3070 0372 78       		.uleb128 0x78
- 3071 0373 06       		.uleb128 0x6
- 3072 0374 00000000 		.long	.LASF65
- 3073 0378 07       		.byte	0x7
- 3074 0379 78       		.byte	0x78
- 3075 037a B6040000 		.long	0x4b6
- 3076 037e 03       		.byte	0x3
- 3077 037f 23       		.byte	0x23
- 3078 0380 8001     		.uleb128 0x80
- 3079 0382 06       		.uleb128 0x6
- 3080 0383 00000000 		.long	.LASF66
- 3081 0387 07       		.byte	0x7
- 3082 0388 7A       		.byte	0x7a
- 3083 0389 B6040000 		.long	0x4b6
- 3084 038d 03       		.byte	0x3
- 3085 038e 23       		.byte	0x23
- 3086 038f 8801     		.uleb128 0x88
- 3087 0391 06       		.uleb128 0x6
- 3088 0392 00000000 		.long	.LASF67
- 3089 0396 07       		.byte	0x7
- 3090 0397 7E       		.byte	0x7e
- 3091 0398 B6040000 		.long	0x4b6
- 3092 039c 03       		.byte	0x3
- 3093 039d 23       		.byte	0x23
- 3094 039e 9001     		.uleb128 0x90
- 3095 03a0 06       		.uleb128 0x6
- 3096 03a1 00000000 		.long	.LASF68
- 3097 03a5 07       		.byte	0x7
- 3098 03a6 80       		.byte	0x80
- 3099 03a7 B6040000 		.long	0x4b6
- 3100 03ab 03       		.byte	0x3
- 3101 03ac 23       		.byte	0x23
- 3102 03ad 9801     		.uleb128 0x98
- 3103 03af 06       		.uleb128 0x6
- 3104 03b0 00000000 		.long	.LASF69
- 3105 03b4 07       		.byte	0x7
- 3106 03b5 84       		.byte	0x84
- 3107 03b6 B6040000 		.long	0x4b6
-
GAS LISTING /tmp/ccq6ONvw.s 			page 83
-
-
- 3108 03ba 03       		.byte	0x3
- 3109 03bb 23       		.byte	0x23
- 3110 03bc A001     		.uleb128 0xa0
- 3111 03be 06       		.uleb128 0x6
- 3112 03bf 00000000 		.long	.LASF70
- 3113 03c3 07       		.byte	0x7
- 3114 03c4 86       		.byte	0x86
- 3115 03c5 B6040000 		.long	0x4b6
- 3116 03c9 03       		.byte	0x3
- 3117 03ca 23       		.byte	0x23
- 3118 03cb A801     		.uleb128 0xa8
- 3119 03cd 00       		.byte	0x0
- 3120 03ce 11       		.uleb128 0x11
- 3121 03cf 01       		.byte	0x1
- 3122 03d0 7B000000 		.long	0x7b
- 3123 03d4 DE030000 		.long	0x3de
- 3124 03d8 10       		.uleb128 0x10
- 3125 03d9 DE030000 		.long	0x3de
- 3126 03dd 00       		.byte	0x0
- 3127 03de 0A       		.uleb128 0xa
- 3128 03df 08       		.byte	0x8
- 3129 03e0 14020000 		.long	0x214
- 3130 03e4 0A       		.uleb128 0xa
- 3131 03e5 08       		.byte	0x8
- 3132 03e6 CE030000 		.long	0x3ce
- 3133 03ea 11       		.uleb128 0x11
- 3134 03eb 01       		.byte	0x1
- 3135 03ec 7B000000 		.long	0x7b
- 3136 03f0 04040000 		.long	0x404
- 3137 03f4 10       		.uleb128 0x10
- 3138 03f5 DE030000 		.long	0x3de
- 3139 03f9 10       		.uleb128 0x10
- 3140 03fa B6000000 		.long	0xb6
- 3141 03fe 10       		.uleb128 0x10
- 3142 03ff 62000000 		.long	0x62
- 3143 0403 00       		.byte	0x0
- 3144 0404 0A       		.uleb128 0xa
- 3145 0405 08       		.byte	0x8
- 3146 0406 EA030000 		.long	0x3ea
- 3147 040a 11       		.uleb128 0x11
- 3148 040b 01       		.byte	0x1
- 3149 040c 7B000000 		.long	0x7b
- 3150 0410 1F040000 		.long	0x41f
- 3151 0414 10       		.uleb128 0x10
- 3152 0415 DE030000 		.long	0x3de
- 3153 0419 10       		.uleb128 0x10
- 3154 041a 1F040000 		.long	0x41f
- 3155 041e 00       		.byte	0x0
- 3156 041f 0A       		.uleb128 0xa
- 3157 0420 08       		.byte	0x8
- 3158 0421 25040000 		.long	0x425
- 3159 0425 12       		.uleb128 0x12
- 3160 0426 0A       		.uleb128 0xa
- 3161 0427 08       		.byte	0x8
- 3162 0428 0A040000 		.long	0x40a
- 3163 042c 11       		.uleb128 0x11
- 3164 042d 01       		.byte	0x1
-
GAS LISTING /tmp/ccq6ONvw.s 			page 84
-
-
- 3165 042e 7B000000 		.long	0x7b
- 3166 0432 41040000 		.long	0x441
- 3167 0436 10       		.uleb128 0x10
- 3168 0437 DE030000 		.long	0x3de
- 3169 043b 10       		.uleb128 0x10
- 3170 043c F7010000 		.long	0x1f7
- 3171 0440 00       		.byte	0x0
- 3172 0441 0A       		.uleb128 0xa
- 3173 0442 08       		.byte	0x8
- 3174 0443 2C040000 		.long	0x42c
- 3175 0447 11       		.uleb128 0x11
- 3176 0448 01       		.byte	0x1
- 3177 0449 7B000000 		.long	0x7b
- 3178 044d 61040000 		.long	0x461
- 3179 0451 10       		.uleb128 0x10
- 3180 0452 61040000 		.long	0x461
- 3181 0456 10       		.uleb128 0x10
- 3182 0457 1F040000 		.long	0x41f
- 3183 045b 10       		.uleb128 0x10
- 3184 045c B4000000 		.long	0xb4
- 3185 0460 00       		.byte	0x0
- 3186 0461 0A       		.uleb128 0xa
- 3187 0462 08       		.byte	0x8
- 3188 0463 67040000 		.long	0x467
- 3189 0467 0B       		.uleb128 0xb
- 3190 0468 14020000 		.long	0x214
- 3191 046c 0A       		.uleb128 0xa
- 3192 046d 08       		.byte	0x8
- 3193 046e 47040000 		.long	0x447
- 3194 0472 11       		.uleb128 0x11
- 3195 0473 01       		.byte	0x1
- 3196 0474 7B000000 		.long	0x7b
- 3197 0478 91040000 		.long	0x491
- 3198 047c 10       		.uleb128 0x10
- 3199 047d 61040000 		.long	0x461
- 3200 0481 10       		.uleb128 0x10
- 3201 0482 1F040000 		.long	0x41f
- 3202 0486 10       		.uleb128 0x10
- 3203 0487 B4000000 		.long	0xb4
- 3204 048b 10       		.uleb128 0x10
- 3205 048c 62000000 		.long	0x62
- 3206 0490 00       		.byte	0x0
- 3207 0491 0A       		.uleb128 0xa
- 3208 0492 08       		.byte	0x8
- 3209 0493 72040000 		.long	0x472
- 3210 0497 11       		.uleb128 0x11
- 3211 0498 01       		.byte	0x1
- 3212 0499 7B000000 		.long	0x7b
- 3213 049d B6040000 		.long	0x4b6
- 3214 04a1 10       		.uleb128 0x10
- 3215 04a2 DE030000 		.long	0x3de
- 3216 04a6 10       		.uleb128 0x10
- 3217 04a7 1F040000 		.long	0x41f
- 3218 04ab 10       		.uleb128 0x10
- 3219 04ac B4000000 		.long	0xb4
- 3220 04b0 10       		.uleb128 0x10
- 3221 04b1 62000000 		.long	0x62
-
GAS LISTING /tmp/ccq6ONvw.s 			page 85
-
-
- 3222 04b5 00       		.byte	0x0
- 3223 04b6 0A       		.uleb128 0xa
- 3224 04b7 08       		.byte	0x8
- 3225 04b8 97040000 		.long	0x497
- 3226 04bc 04       		.uleb128 0x4
- 3227 04bd 00000000 		.long	.LASF71
- 3228 04c1 07       		.byte	0x7
- 3229 04c2 90       		.byte	0x90
- 3230 04c3 C7040000 		.long	0x4c7
- 3231 04c7 13       		.uleb128 0x13
- 3232 04c8 00000000 		.long	.LASF71
- 3233 04cc 08       		.byte	0x8
- 3234 04cd 07       		.byte	0x7
- 3235 04ce 90       		.byte	0x90
- 3236 04cf E9040000 		.long	0x4e9
- 3237 04d3 14       		.uleb128 0x14
- 3238 04d4 00000000 		.long	.LASF49
- 3239 04d8 07       		.byte	0x7
- 3240 04d9 93       		.byte	0x93
- 3241 04da E9040000 		.long	0x4e9
- 3242 04de 15       		.uleb128 0x15
- 3243 04df 763100   		.string	"v1"
- 3244 04e2 07       		.byte	0x7
- 3245 04e3 94       		.byte	0x94
- 3246 04e4 F4040000 		.long	0x4f4
- 3247 04e8 00       		.byte	0x0
- 3248 04e9 0A       		.uleb128 0xa
- 3249 04ea 08       		.byte	0x8
- 3250 04eb EF040000 		.long	0x4ef
- 3251 04ef 0B       		.uleb128 0xb
- 3252 04f0 48020000 		.long	0x248
- 3253 04f4 0A       		.uleb128 0xa
- 3254 04f5 08       		.byte	0x8
- 3255 04f6 FA040000 		.long	0x4fa
- 3256 04fa 0B       		.uleb128 0xb
- 3257 04fb 7C020000 		.long	0x27c
- 3258 04ff 04       		.uleb128 0x4
- 3259 0500 00000000 		.long	.LASF72
- 3260 0504 08       		.byte	0x8
- 3261 0505 37       		.byte	0x37
- 3262 0506 0A050000 		.long	0x50a
- 3263 050a 16       		.uleb128 0x16
- 3264 050b C1000000 		.long	0xc1
- 3265 050f 1A050000 		.long	0x51a
- 3266 0513 17       		.uleb128 0x17
- 3267 0514 B1000000 		.long	0xb1
- 3268 0518 0F       		.byte	0xf
- 3269 0519 00       		.byte	0x0
- 3270 051a 02       		.uleb128 0x2
- 3271 051b 08       		.byte	0x8
- 3272 051c 05       		.byte	0x5
- 3273 051d 00000000 		.long	.LASF73
- 3274 0521 02       		.uleb128 0x2
- 3275 0522 04       		.byte	0x4
- 3276 0523 04       		.byte	0x4
- 3277 0524 00000000 		.long	.LASF74
- 3278 0528 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccq6ONvw.s 			page 86
-
-
- 3279 0529 08       		.byte	0x8
- 3280 052a C1000000 		.long	0xc1
- 3281 052e 02       		.uleb128 0x2
- 3282 052f 08       		.byte	0x8
- 3283 0530 07       		.byte	0x7
- 3284 0531 00000000 		.long	.LASF75
- 3285 0535 16       		.uleb128 0x16
- 3286 0536 C1000000 		.long	0xc1
- 3287 053a 45050000 		.long	0x545
- 3288 053e 17       		.uleb128 0x17
- 3289 053f B1000000 		.long	0xb1
- 3290 0543 1F       		.byte	0x1f
- 3291 0544 00       		.byte	0x0
- 3292 0545 02       		.uleb128 0x2
- 3293 0546 08       		.byte	0x8
- 3294 0547 04       		.byte	0x4
- 3295 0548 00000000 		.long	.LASF76
- 3296 054c 04       		.uleb128 0x4
- 3297 054d 00000000 		.long	.LASF77
- 3298 0551 09       		.byte	0x9
- 3299 0552 26       		.byte	0x26
- 3300 0553 57050000 		.long	0x557
- 3301 0557 18       		.uleb128 0x18
- 3302 0558 01       		.byte	0x1
- 3303 0559 49000000 		.long	0x49
- 3304 055d 68050000 		.long	0x568
- 3305 0561 17       		.uleb128 0x17
- 3306 0562 B1000000 		.long	0xb1
- 3307 0566 0F       		.byte	0xf
- 3308 0567 00       		.byte	0x0
- 3309 0568 04       		.uleb128 0x4
- 3310 0569 00000000 		.long	.LASF78
- 3311 056d 08       		.byte	0x8
- 3312 056e 3B       		.byte	0x3b
- 3313 056f 4C050000 		.long	0x54c
- 3314 0573 04       		.uleb128 0x4
- 3315 0574 00000000 		.long	.LASF79
- 3316 0578 08       		.byte	0x8
- 3317 0579 43       		.byte	0x43
- 3318 057a 7E050000 		.long	0x57e
- 3319 057e 05       		.uleb128 0x5
- 3320 057f 00000000 		.long	.LASF79
- 3321 0583 08       		.byte	0x8
- 3322 0584 08       		.byte	0x8
- 3323 0585 43       		.byte	0x43
- 3324 0586 A7050000 		.long	0x5a7
- 3325 058a 0E       		.uleb128 0xe
- 3326 058b 6D616A00 		.string	"maj"
- 3327 058f 08       		.byte	0x8
- 3328 0590 46       		.byte	0x46
- 3329 0591 62000000 		.long	0x62
- 3330 0595 02       		.byte	0x2
- 3331 0596 23       		.byte	0x23
- 3332 0597 00       		.uleb128 0x0
- 3333 0598 0E       		.uleb128 0xe
- 3334 0599 6D696E00 		.string	"min"
- 3335 059d 08       		.byte	0x8
-
GAS LISTING /tmp/ccq6ONvw.s 			page 87
-
-
- 3336 059e 47       		.byte	0x47
- 3337 059f 62000000 		.long	0x62
- 3338 05a3 02       		.byte	0x2
- 3339 05a4 23       		.byte	0x23
- 3340 05a5 04       		.uleb128 0x4
- 3341 05a6 00       		.byte	0x0
- 3342 05a7 04       		.uleb128 0x4
- 3343 05a8 00000000 		.long	.LASF80
- 3344 05ac 08       		.byte	0x8
- 3345 05ad 52       		.byte	0x52
- 3346 05ae B2050000 		.long	0x5b2
- 3347 05b2 05       		.uleb128 0x5
- 3348 05b3 00000000 		.long	.LASF80
- 3349 05b7 40       		.byte	0x40
- 3350 05b8 08       		.byte	0x8
- 3351 05b9 52       		.byte	0x52
- 3352 05ba 2F060000 		.long	0x62f
- 3353 05be 06       		.uleb128 0x6
- 3354 05bf 00000000 		.long	.LASF49
- 3355 05c3 08       		.byte	0x8
- 3356 05c4 5E       		.byte	0x5e
- 3357 05c5 73050000 		.long	0x573
- 3358 05c9 02       		.byte	0x2
- 3359 05ca 23       		.byte	0x23
- 3360 05cb 00       		.uleb128 0x0
- 3361 05cc 06       		.uleb128 0x6
- 3362 05cd 00000000 		.long	.LASF50
- 3363 05d1 08       		.byte	0x8
- 3364 05d2 63       		.byte	0x63
- 3365 05d3 73060000 		.long	0x673
- 3366 05d7 02       		.byte	0x2
- 3367 05d8 23       		.byte	0x23
- 3368 05d9 08       		.uleb128 0x8
- 3369 05da 06       		.uleb128 0x6
- 3370 05db 00000000 		.long	.LASF36
- 3371 05df 08       		.byte	0x8
- 3372 05e0 65       		.byte	0x65
- 3373 05e1 84060000 		.long	0x684
- 3374 05e5 02       		.byte	0x2
- 3375 05e6 23       		.byte	0x23
- 3376 05e7 10       		.uleb128 0x10
- 3377 05e8 06       		.uleb128 0x6
- 3378 05e9 00000000 		.long	.LASF81
- 3379 05ed 08       		.byte	0x8
- 3380 05ee 67       		.byte	0x67
- 3381 05ef 84060000 		.long	0x684
- 3382 05f3 02       		.byte	0x2
- 3383 05f4 23       		.byte	0x23
- 3384 05f5 18       		.uleb128 0x18
- 3385 05f6 06       		.uleb128 0x6
- 3386 05f7 00000000 		.long	.LASF51
- 3387 05fb 08       		.byte	0x8
- 3388 05fc 69       		.byte	0x69
- 3389 05fd A4060000 		.long	0x6a4
- 3390 0601 02       		.byte	0x2
- 3391 0602 23       		.byte	0x23
- 3392 0603 20       		.uleb128 0x20
-
GAS LISTING /tmp/ccq6ONvw.s 			page 88
-
-
- 3393 0604 06       		.uleb128 0x6
- 3394 0605 00000000 		.long	.LASF52
- 3395 0609 08       		.byte	0x8
- 3396 060a 6D       		.byte	0x6d
- 3397 060b A4060000 		.long	0x6a4
- 3398 060f 02       		.byte	0x2
- 3399 0610 23       		.byte	0x23
- 3400 0611 28       		.uleb128 0x28
- 3401 0612 06       		.uleb128 0x6
- 3402 0613 00000000 		.long	.LASF57
- 3403 0617 08       		.byte	0x8
- 3404 0618 71       		.byte	0x71
- 3405 0619 C0060000 		.long	0x6c0
- 3406 061d 02       		.byte	0x2
- 3407 061e 23       		.byte	0x23
- 3408 061f 30       		.uleb128 0x30
- 3409 0620 06       		.uleb128 0x6
- 3410 0621 00000000 		.long	.LASF58
- 3411 0625 08       		.byte	0x8
- 3412 0626 75       		.byte	0x75
- 3413 0627 C0060000 		.long	0x6c0
- 3414 062b 02       		.byte	0x2
- 3415 062c 23       		.byte	0x23
- 3416 062d 38       		.uleb128 0x38
- 3417 062e 00       		.byte	0x0
- 3418 062f 04       		.uleb128 0x4
- 3419 0630 00000000 		.long	.LASF82
- 3420 0634 08       		.byte	0x8
- 3421 0635 53       		.byte	0x53
- 3422 0636 3A060000 		.long	0x63a
- 3423 063a 13       		.uleb128 0x13
- 3424 063b 00000000 		.long	.LASF82
- 3425 063f 40       		.byte	0x40
- 3426 0640 08       		.byte	0x8
- 3427 0641 53       		.byte	0x53
- 3428 0642 5C060000 		.long	0x65c
- 3429 0646 14       		.uleb128 0x14
- 3430 0647 00000000 		.long	.LASF49
- 3431 064b 08       		.byte	0x8
- 3432 064c 7F       		.byte	0x7f
- 3433 064d 73050000 		.long	0x573
- 3434 0651 15       		.uleb128 0x15
- 3435 0652 763100   		.string	"v1"
- 3436 0655 08       		.byte	0x8
- 3437 0656 80       		.byte	0x80
- 3438 0657 A7050000 		.long	0x5a7
- 3439 065b 00       		.byte	0x0
- 3440 065c 0F       		.uleb128 0xf
- 3441 065d 01       		.byte	0x1
- 3442 065e 68060000 		.long	0x668
- 3443 0662 10       		.uleb128 0x10
- 3444 0663 68060000 		.long	0x668
- 3445 0667 00       		.byte	0x0
- 3446 0668 0A       		.uleb128 0xa
- 3447 0669 08       		.byte	0x8
- 3448 066a 6E060000 		.long	0x66e
- 3449 066e 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccq6ONvw.s 			page 89
-
-
- 3450 066f 2F060000 		.long	0x62f
- 3451 0673 0A       		.uleb128 0xa
- 3452 0674 08       		.byte	0x8
- 3453 0675 5C060000 		.long	0x65c
- 3454 0679 19       		.uleb128 0x19
- 3455 067a 62000000 		.long	0x62
- 3456 067e 84060000 		.long	0x684
- 3457 0682 1A       		.uleb128 0x1a
- 3458 0683 00       		.byte	0x0
- 3459 0684 0A       		.uleb128 0xa
- 3460 0685 08       		.byte	0x8
- 3461 0686 79060000 		.long	0x679
- 3462 068a 11       		.uleb128 0x11
- 3463 068b 01       		.byte	0x1
- 3464 068c 7B000000 		.long	0x7b
- 3465 0690 A4060000 		.long	0x6a4
- 3466 0694 10       		.uleb128 0x10
- 3467 0695 B4000000 		.long	0xb4
- 3468 0699 10       		.uleb128 0x10
- 3469 069a B6000000 		.long	0xb6
- 3470 069e 10       		.uleb128 0x10
- 3471 069f 62000000 		.long	0x62
- 3472 06a3 00       		.byte	0x0
- 3473 06a4 0A       		.uleb128 0xa
- 3474 06a5 08       		.byte	0x8
- 3475 06a6 8A060000 		.long	0x68a
- 3476 06aa 0F       		.uleb128 0xf
- 3477 06ab 01       		.byte	0x1
- 3478 06ac C0060000 		.long	0x6c0
- 3479 06b0 10       		.uleb128 0x10
- 3480 06b1 B6000000 		.long	0xb6
- 3481 06b5 10       		.uleb128 0x10
- 3482 06b6 28050000 		.long	0x528
- 3483 06ba 10       		.uleb128 0x10
- 3484 06bb 1F040000 		.long	0x41f
- 3485 06bf 00       		.byte	0x0
- 3486 06c0 0A       		.uleb128 0xa
- 3487 06c1 08       		.byte	0x8
- 3488 06c2 AA060000 		.long	0x6aa
- 3489 06c6 04       		.uleb128 0x4
- 3490 06c7 00000000 		.long	.LASF83
- 3491 06cb 08       		.byte	0x8
- 3492 06cc 84       		.byte	0x84
- 3493 06cd D1060000 		.long	0x6d1
- 3494 06d1 05       		.uleb128 0x5
- 3495 06d2 00000000 		.long	.LASF83
- 3496 06d6 40       		.byte	0x40
- 3497 06d7 08       		.byte	0x8
- 3498 06d8 84       		.byte	0x84
- 3499 06d9 4E070000 		.long	0x74e
- 3500 06dd 06       		.uleb128 0x6
- 3501 06de 00000000 		.long	.LASF49
- 3502 06e2 08       		.byte	0x8
- 3503 06e3 90       		.byte	0x90
- 3504 06e4 73050000 		.long	0x573
- 3505 06e8 02       		.byte	0x2
- 3506 06e9 23       		.byte	0x23
-
GAS LISTING /tmp/ccq6ONvw.s 			page 90
-
-
- 3507 06ea 00       		.uleb128 0x0
- 3508 06eb 06       		.uleb128 0x6
- 3509 06ec 00000000 		.long	.LASF50
- 3510 06f0 08       		.byte	0x8
- 3511 06f1 95       		.byte	0x95
- 3512 06f2 92070000 		.long	0x792
- 3513 06f6 02       		.byte	0x2
- 3514 06f7 23       		.byte	0x23
- 3515 06f8 08       		.uleb128 0x8
- 3516 06f9 06       		.uleb128 0x6
- 3517 06fa 00000000 		.long	.LASF36
- 3518 06fe 08       		.byte	0x8
- 3519 06ff 97       		.byte	0x97
- 3520 0700 84060000 		.long	0x684
- 3521 0704 02       		.byte	0x2
- 3522 0705 23       		.byte	0x23
- 3523 0706 10       		.uleb128 0x10
- 3524 0707 06       		.uleb128 0x6
- 3525 0708 00000000 		.long	.LASF81
- 3526 070c 08       		.byte	0x8
- 3527 070d 99       		.byte	0x99
- 3528 070e 84060000 		.long	0x684
- 3529 0712 02       		.byte	0x2
- 3530 0713 23       		.byte	0x23
- 3531 0714 18       		.uleb128 0x18
- 3532 0715 06       		.uleb128 0x6
- 3533 0716 00000000 		.long	.LASF51
- 3534 071a 08       		.byte	0x8
- 3535 071b 9B       		.byte	0x9b
- 3536 071c A4060000 		.long	0x6a4
- 3537 0720 02       		.byte	0x2
- 3538 0721 23       		.byte	0x23
- 3539 0722 20       		.uleb128 0x20
- 3540 0723 06       		.uleb128 0x6
- 3541 0724 00000000 		.long	.LASF52
- 3542 0728 08       		.byte	0x8
- 3543 0729 9F       		.byte	0x9f
- 3544 072a A4060000 		.long	0x6a4
- 3545 072e 02       		.byte	0x2
- 3546 072f 23       		.byte	0x23
- 3547 0730 28       		.uleb128 0x28
- 3548 0731 06       		.uleb128 0x6
- 3549 0732 00000000 		.long	.LASF57
- 3550 0736 08       		.byte	0x8
- 3551 0737 A3       		.byte	0xa3
- 3552 0738 AD070000 		.long	0x7ad
- 3553 073c 02       		.byte	0x2
- 3554 073d 23       		.byte	0x23
- 3555 073e 30       		.uleb128 0x30
- 3556 073f 06       		.uleb128 0x6
- 3557 0740 00000000 		.long	.LASF58
- 3558 0744 08       		.byte	0x8
- 3559 0745 A6       		.byte	0xa6
- 3560 0746 AD070000 		.long	0x7ad
- 3561 074a 02       		.byte	0x2
- 3562 074b 23       		.byte	0x23
- 3563 074c 38       		.uleb128 0x38
-
GAS LISTING /tmp/ccq6ONvw.s 			page 91
-
-
- 3564 074d 00       		.byte	0x0
- 3565 074e 04       		.uleb128 0x4
- 3566 074f 00000000 		.long	.LASF84
- 3567 0753 08       		.byte	0x8
- 3568 0754 85       		.byte	0x85
- 3569 0755 59070000 		.long	0x759
- 3570 0759 13       		.uleb128 0x13
- 3571 075a 00000000 		.long	.LASF84
- 3572 075e 40       		.byte	0x40
- 3573 075f 08       		.byte	0x8
- 3574 0760 85       		.byte	0x85
- 3575 0761 7B070000 		.long	0x77b
- 3576 0765 14       		.uleb128 0x14
- 3577 0766 00000000 		.long	.LASF49
- 3578 076a 08       		.byte	0x8
- 3579 076b AF       		.byte	0xaf
- 3580 076c 73050000 		.long	0x573
- 3581 0770 15       		.uleb128 0x15
- 3582 0771 763100   		.string	"v1"
- 3583 0774 08       		.byte	0x8
- 3584 0775 B0       		.byte	0xb0
- 3585 0776 C6060000 		.long	0x6c6
- 3586 077a 00       		.byte	0x0
- 3587 077b 0F       		.uleb128 0xf
- 3588 077c 01       		.byte	0x1
- 3589 077d 87070000 		.long	0x787
- 3590 0781 10       		.uleb128 0x10
- 3591 0782 87070000 		.long	0x787
- 3592 0786 00       		.byte	0x0
- 3593 0787 0A       		.uleb128 0xa
- 3594 0788 08       		.byte	0x8
- 3595 0789 8D070000 		.long	0x78d
- 3596 078d 0B       		.uleb128 0xb
- 3597 078e 4E070000 		.long	0x74e
- 3598 0792 0A       		.uleb128 0xa
- 3599 0793 08       		.byte	0x8
- 3600 0794 7B070000 		.long	0x77b
- 3601 0798 11       		.uleb128 0x11
- 3602 0799 01       		.byte	0x1
- 3603 079a 68050000 		.long	0x568
- 3604 079e AD070000 		.long	0x7ad
- 3605 07a2 10       		.uleb128 0x10
- 3606 07a3 68050000 		.long	0x568
- 3607 07a7 10       		.uleb128 0x10
- 3608 07a8 1F040000 		.long	0x41f
- 3609 07ac 00       		.byte	0x0
- 3610 07ad 0A       		.uleb128 0xa
- 3611 07ae 08       		.byte	0x8
- 3612 07af 98070000 		.long	0x798
- 3613 07b3 04       		.uleb128 0x4
- 3614 07b4 00000000 		.long	.LASF85
- 3615 07b8 0A       		.byte	0xa
- 3616 07b9 B0       		.byte	0xb0
- 3617 07ba BE070000 		.long	0x7be
- 3618 07be 1B       		.uleb128 0x1b
- 3619 07bf 00000000 		.long	.LASF85
- 3620 07c3 0001     		.value	0x100
-
GAS LISTING /tmp/ccq6ONvw.s 			page 92
-
-
- 3621 07c5 0A       		.byte	0xa
- 3622 07c6 B0       		.byte	0xb0
- 3623 07c7 E9070000 		.long	0x7e9
- 3624 07cb 06       		.uleb128 0x6
- 3625 07cc 00000000 		.long	.LASF86
- 3626 07d0 0A       		.byte	0xa
- 3627 07d1 B3       		.byte	0xb3
- 3628 07d2 E9070000 		.long	0x7e9
- 3629 07d6 02       		.byte	0x2
- 3630 07d7 23       		.byte	0x23
- 3631 07d8 00       		.uleb128 0x0
- 3632 07d9 06       		.uleb128 0x6
- 3633 07da 00000000 		.long	.LASF87
- 3634 07de 0A       		.byte	0xa
- 3635 07df B4       		.byte	0xb4
- 3636 07e0 62000000 		.long	0x62
- 3637 07e4 03       		.byte	0x3
- 3638 07e5 23       		.byte	0x23
- 3639 07e6 F001     		.uleb128 0xf0
- 3640 07e8 00       		.byte	0x0
- 3641 07e9 16       		.uleb128 0x16
- 3642 07ea 68050000 		.long	0x568
- 3643 07ee F9070000 		.long	0x7f9
- 3644 07f2 17       		.uleb128 0x17
- 3645 07f3 B1000000 		.long	0xb1
- 3646 07f7 0E       		.byte	0xe
- 3647 07f8 00       		.byte	0x0
- 3648 07f9 04       		.uleb128 0x4
- 3649 07fa 00000000 		.long	.LASF88
- 3650 07fe 0A       		.byte	0xa
- 3651 07ff D2       		.byte	0xd2
- 3652 0800 04080000 		.long	0x804
- 3653 0804 1B       		.uleb128 0x1b
- 3654 0805 00000000 		.long	.LASF88
- 3655 0809 7002     		.value	0x270
- 3656 080b 0A       		.byte	0xa
- 3657 080c D2       		.byte	0xd2
- 3658 080d 5B080000 		.long	0x85b
- 3659 0811 0E       		.uleb128 0xe
- 3660 0812 64616400 		.string	"dad"
- 3661 0816 0A       		.byte	0xa
- 3662 0817 D5       		.byte	0xd5
- 3663 0818 54010000 		.long	0x154
- 3664 081c 02       		.byte	0x2
- 3665 081d 23       		.byte	0x23
- 3666 081e 00       		.uleb128 0x0
- 3667 081f 06       		.uleb128 0x6
- 3668 0820 00000000 		.long	.LASF89
- 3669 0824 0A       		.byte	0xa
- 3670 0825 D6       		.byte	0xd6
- 3671 0826 B3070000 		.long	0x7b3
- 3672 082a 02       		.byte	0x2
- 3673 082b 23       		.byte	0x23
- 3674 082c 50       		.uleb128 0x50
- 3675 082d 06       		.uleb128 0x6
- 3676 082e 00000000 		.long	.LASF90
- 3677 0832 0A       		.byte	0xa
-
GAS LISTING /tmp/ccq6ONvw.s 			page 93
-
-
- 3678 0833 D7       		.byte	0xd7
- 3679 0834 B3070000 		.long	0x7b3
- 3680 0838 03       		.byte	0x3
- 3681 0839 23       		.byte	0x23
- 3682 083a D002     		.uleb128 0x150
- 3683 083c 06       		.uleb128 0x6
- 3684 083d 00000000 		.long	.LASF91
- 3685 0841 0A       		.byte	0xa
- 3686 0842 D8       		.byte	0xd8
- 3687 0843 68050000 		.long	0x568
- 3688 0847 03       		.byte	0x3
- 3689 0848 23       		.byte	0x23
- 3690 0849 D004     		.uleb128 0x250
- 3691 084b 06       		.uleb128 0x6
- 3692 084c 00000000 		.long	.LASF92
- 3693 0850 0A       		.byte	0xa
- 3694 0851 D9       		.byte	0xd9
- 3695 0852 68050000 		.long	0x568
- 3696 0856 03       		.byte	0x3
- 3697 0857 23       		.byte	0x23
- 3698 0858 E004     		.uleb128 0x260
- 3699 085a 00       		.byte	0x0
- 3700 085b 04       		.uleb128 0x4
- 3701 085c 00000000 		.long	.LASF93
- 3702 0860 0B       		.byte	0xb
- 3703 0861 29       		.byte	0x29
- 3704 0862 66080000 		.long	0x866
- 3705 0866 05       		.uleb128 0x5
- 3706 0867 00000000 		.long	.LASF93
- 3707 086b 70       		.byte	0x70
- 3708 086c 0B       		.byte	0xb
- 3709 086d 29       		.byte	0x29
- 3710 086e 9D080000 		.long	0x89d
- 3711 0872 0E       		.uleb128 0xe
- 3712 0873 64616400 		.string	"dad"
- 3713 0877 0B       		.byte	0xb
- 3714 0878 2C       		.byte	0x2c
- 3715 0879 54010000 		.long	0x154
- 3716 087d 02       		.byte	0x2
- 3717 087e 23       		.byte	0x23
- 3718 087f 00       		.uleb128 0x0
- 3719 0880 06       		.uleb128 0x6
- 3720 0881 00000000 		.long	.LASF91
- 3721 0885 0B       		.byte	0xb
- 3722 0886 2D       		.byte	0x2d
- 3723 0887 68050000 		.long	0x568
- 3724 088b 02       		.byte	0x2
- 3725 088c 23       		.byte	0x23
- 3726 088d 50       		.uleb128 0x50
- 3727 088e 06       		.uleb128 0x6
- 3728 088f 00000000 		.long	.LASF92
- 3729 0893 0B       		.byte	0xb
- 3730 0894 2E       		.byte	0x2e
- 3731 0895 68050000 		.long	0x568
- 3732 0899 02       		.byte	0x2
- 3733 089a 23       		.byte	0x23
- 3734 089b 60       		.uleb128 0x60
-
GAS LISTING /tmp/ccq6ONvw.s 			page 94
-
-
- 3735 089c 00       		.byte	0x0
- 3736 089d 04       		.uleb128 0x4
- 3737 089e 00000000 		.long	.LASF94
- 3738 08a2 0C       		.byte	0xc
- 3739 08a3 48       		.byte	0x48
- 3740 08a4 62000000 		.long	0x62
- 3741 08a8 0C       		.uleb128 0xc
- 3742 08a9 04       		.byte	0x4
- 3743 08aa 0C       		.byte	0xc
- 3744 08ab 4A       		.byte	0x4a
- 3745 08ac C3080000 		.long	0x8c3
- 3746 08b0 0D       		.uleb128 0xd
- 3747 08b1 00000000 		.long	.LASF95
- 3748 08b5 00       		.sleb128 0
- 3749 08b6 0D       		.uleb128 0xd
- 3750 08b7 00000000 		.long	.LASF96
- 3751 08bb 01       		.sleb128 1
- 3752 08bc 0D       		.uleb128 0xd
- 3753 08bd 00000000 		.long	.LASF97
- 3754 08c1 02       		.sleb128 2
- 3755 08c2 00       		.byte	0x0
- 3756 08c3 04       		.uleb128 0x4
- 3757 08c4 00000000 		.long	.LASF98
- 3758 08c8 0E       		.byte	0xe
- 3759 08c9 40       		.byte	0x40
- 3760 08ca CE080000 		.long	0x8ce
- 3761 08ce 13       		.uleb128 0x13
- 3762 08cf 00000000 		.long	.LASF98
- 3763 08d3 40       		.byte	0x40
- 3764 08d4 0E       		.byte	0xe
- 3765 08d5 40       		.byte	0x40
- 3766 08d6 F1080000 		.long	0x8f1
- 3767 08da 14       		.uleb128 0x14
- 3768 08db 00000000 		.long	.LASF99
- 3769 08df 0E       		.byte	0xe
- 3770 08e0 43       		.byte	0x43
- 3771 08e1 2F060000 		.long	0x62f
- 3772 08e5 15       		.uleb128 0x15
- 3773 08e6 76656300 		.string	"vec"
- 3774 08ea 0E       		.byte	0xe
- 3775 08eb 44       		.byte	0x44
- 3776 08ec 4E070000 		.long	0x74e
- 3777 08f0 00       		.byte	0x0
- 3778 08f1 1C       		.uleb128 0x1c
- 3779 08f2 00000000 		.long	.LASF122
- 3780 08f6 04       		.byte	0x4
- 3781 08f7 0F       		.byte	0xf
- 3782 08f8 5A       		.byte	0x5a
- 3783 08f9 82090000 		.long	0x982
- 3784 08fd 0D       		.uleb128 0xd
- 3785 08fe 00000000 		.long	.LASF100
- 3786 0902 00       		.sleb128 0
- 3787 0903 0D       		.uleb128 0xd
- 3788 0904 00000000 		.long	.LASF101
- 3789 0908 01       		.sleb128 1
- 3790 0909 0D       		.uleb128 0xd
- 3791 090a 00000000 		.long	.LASF102
-
GAS LISTING /tmp/ccq6ONvw.s 			page 95
-
-
- 3792 090e 02       		.sleb128 2
- 3793 090f 0D       		.uleb128 0xd
- 3794 0910 00000000 		.long	.LASF103
- 3795 0914 03       		.sleb128 3
- 3796 0915 0D       		.uleb128 0xd
- 3797 0916 00000000 		.long	.LASF104
- 3798 091a 04       		.sleb128 4
- 3799 091b 0D       		.uleb128 0xd
- 3800 091c 00000000 		.long	.LASF105
- 3801 0920 05       		.sleb128 5
- 3802 0921 0D       		.uleb128 0xd
- 3803 0922 00000000 		.long	.LASF106
- 3804 0926 06       		.sleb128 6
- 3805 0927 0D       		.uleb128 0xd
- 3806 0928 00000000 		.long	.LASF107
- 3807 092c 07       		.sleb128 7
- 3808 092d 0D       		.uleb128 0xd
- 3809 092e 00000000 		.long	.LASF108
- 3810 0932 08       		.sleb128 8
- 3811 0933 0D       		.uleb128 0xd
- 3812 0934 00000000 		.long	.LASF109
- 3813 0938 09       		.sleb128 9
- 3814 0939 0D       		.uleb128 0xd
- 3815 093a 00000000 		.long	.LASF110
- 3816 093e 0A       		.sleb128 10
- 3817 093f 0D       		.uleb128 0xd
- 3818 0940 00000000 		.long	.LASF111
- 3819 0944 0B       		.sleb128 11
- 3820 0945 0D       		.uleb128 0xd
- 3821 0946 00000000 		.long	.LASF112
- 3822 094a 0C       		.sleb128 12
- 3823 094b 0D       		.uleb128 0xd
- 3824 094c 00000000 		.long	.LASF113
- 3825 0950 0D       		.sleb128 13
- 3826 0951 0D       		.uleb128 0xd
- 3827 0952 00000000 		.long	.LASF114
- 3828 0956 0E       		.sleb128 14
- 3829 0957 0D       		.uleb128 0xd
- 3830 0958 00000000 		.long	.LASF115
- 3831 095c 0E       		.sleb128 14
- 3832 095d 0D       		.uleb128 0xd
- 3833 095e 00000000 		.long	.LASF116
- 3834 0962 0F       		.sleb128 15
- 3835 0963 0D       		.uleb128 0xd
- 3836 0964 00000000 		.long	.LASF117
- 3837 0968 10       		.sleb128 16
- 3838 0969 0D       		.uleb128 0xd
- 3839 096a 00000000 		.long	.LASF118
- 3840 096e 11       		.sleb128 17
- 3841 096f 0D       		.uleb128 0xd
- 3842 0970 00000000 		.long	.LASF119
- 3843 0974 12       		.sleb128 18
- 3844 0975 0D       		.uleb128 0xd
- 3845 0976 00000000 		.long	.LASF120
- 3846 097a 13       		.sleb128 19
- 3847 097b 0D       		.uleb128 0xd
- 3848 097c 00000000 		.long	.LASF121
-
GAS LISTING /tmp/ccq6ONvw.s 			page 96
-
-
- 3849 0980 14       		.sleb128 20
- 3850 0981 00       		.byte	0x0
- 3851 0982 1C       		.uleb128 0x1c
- 3852 0983 00000000 		.long	.LASF123
- 3853 0987 04       		.byte	0x4
- 3854 0988 0F       		.byte	0xf
- 3855 0989 77       		.byte	0x77
- 3856 098a 090B0000 		.long	0xb09
- 3857 098e 0D       		.uleb128 0xd
- 3858 098f 00000000 		.long	.LASF124
- 3859 0993 00       		.sleb128 0
- 3860 0994 0D       		.uleb128 0xd
- 3861 0995 00000000 		.long	.LASF125
- 3862 0999 01       		.sleb128 1
- 3863 099a 0D       		.uleb128 0xd
- 3864 099b 00000000 		.long	.LASF126
- 3865 099f 02       		.sleb128 2
- 3866 09a0 0D       		.uleb128 0xd
- 3867 09a1 00000000 		.long	.LASF127
- 3868 09a5 03       		.sleb128 3
- 3869 09a6 0D       		.uleb128 0xd
- 3870 09a7 00000000 		.long	.LASF128
- 3871 09ab 04       		.sleb128 4
- 3872 09ac 0D       		.uleb128 0xd
- 3873 09ad 00000000 		.long	.LASF129
- 3874 09b1 05       		.sleb128 5
- 3875 09b2 0D       		.uleb128 0xd
- 3876 09b3 00000000 		.long	.LASF130
- 3877 09b7 06       		.sleb128 6
- 3878 09b8 0D       		.uleb128 0xd
- 3879 09b9 00000000 		.long	.LASF131
- 3880 09bd 07       		.sleb128 7
- 3881 09be 0D       		.uleb128 0xd
- 3882 09bf 00000000 		.long	.LASF132
- 3883 09c3 08       		.sleb128 8
- 3884 09c4 0D       		.uleb128 0xd
- 3885 09c5 00000000 		.long	.LASF133
- 3886 09c9 09       		.sleb128 9
- 3887 09ca 0D       		.uleb128 0xd
- 3888 09cb 00000000 		.long	.LASF134
- 3889 09cf 0A       		.sleb128 10
- 3890 09d0 0D       		.uleb128 0xd
- 3891 09d1 00000000 		.long	.LASF135
- 3892 09d5 0B       		.sleb128 11
- 3893 09d6 0D       		.uleb128 0xd
- 3894 09d7 00000000 		.long	.LASF136
- 3895 09db 0C       		.sleb128 12
- 3896 09dc 0D       		.uleb128 0xd
- 3897 09dd 00000000 		.long	.LASF137
- 3898 09e1 0D       		.sleb128 13
- 3899 09e2 0D       		.uleb128 0xd
- 3900 09e3 00000000 		.long	.LASF138
- 3901 09e7 0E       		.sleb128 14
- 3902 09e8 0D       		.uleb128 0xd
- 3903 09e9 00000000 		.long	.LASF139
- 3904 09ed 0F       		.sleb128 15
- 3905 09ee 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccq6ONvw.s 			page 97
-
-
- 3906 09ef 00000000 		.long	.LASF140
- 3907 09f3 10       		.sleb128 16
- 3908 09f4 0D       		.uleb128 0xd
- 3909 09f5 00000000 		.long	.LASF141
- 3910 09f9 11       		.sleb128 17
- 3911 09fa 0D       		.uleb128 0xd
- 3912 09fb 00000000 		.long	.LASF142
- 3913 09ff 12       		.sleb128 18
- 3914 0a00 0D       		.uleb128 0xd
- 3915 0a01 00000000 		.long	.LASF143
- 3916 0a05 13       		.sleb128 19
- 3917 0a06 0D       		.uleb128 0xd
- 3918 0a07 00000000 		.long	.LASF144
- 3919 0a0b 14       		.sleb128 20
- 3920 0a0c 0D       		.uleb128 0xd
- 3921 0a0d 00000000 		.long	.LASF145
- 3922 0a11 15       		.sleb128 21
- 3923 0a12 0D       		.uleb128 0xd
- 3924 0a13 00000000 		.long	.LASF146
- 3925 0a17 16       		.sleb128 22
- 3926 0a18 0D       		.uleb128 0xd
- 3927 0a19 00000000 		.long	.LASF147
- 3928 0a1d 17       		.sleb128 23
- 3929 0a1e 0D       		.uleb128 0xd
- 3930 0a1f 00000000 		.long	.LASF148
- 3931 0a23 18       		.sleb128 24
- 3932 0a24 0D       		.uleb128 0xd
- 3933 0a25 00000000 		.long	.LASF149
- 3934 0a29 19       		.sleb128 25
- 3935 0a2a 0D       		.uleb128 0xd
- 3936 0a2b 00000000 		.long	.LASF150
- 3937 0a2f 1A       		.sleb128 26
- 3938 0a30 0D       		.uleb128 0xd
- 3939 0a31 00000000 		.long	.LASF151
- 3940 0a35 1B       		.sleb128 27
- 3941 0a36 0D       		.uleb128 0xd
- 3942 0a37 00000000 		.long	.LASF152
- 3943 0a3b 1C       		.sleb128 28
- 3944 0a3c 0D       		.uleb128 0xd
- 3945 0a3d 00000000 		.long	.LASF153
- 3946 0a41 1D       		.sleb128 29
- 3947 0a42 0D       		.uleb128 0xd
- 3948 0a43 00000000 		.long	.LASF154
- 3949 0a47 1E       		.sleb128 30
- 3950 0a48 0D       		.uleb128 0xd
- 3951 0a49 00000000 		.long	.LASF155
- 3952 0a4d 1F       		.sleb128 31
- 3953 0a4e 0D       		.uleb128 0xd
- 3954 0a4f 00000000 		.long	.LASF156
- 3955 0a53 20       		.sleb128 32
- 3956 0a54 0D       		.uleb128 0xd
- 3957 0a55 00000000 		.long	.LASF157
- 3958 0a59 21       		.sleb128 33
- 3959 0a5a 0D       		.uleb128 0xd
- 3960 0a5b 00000000 		.long	.LASF158
- 3961 0a5f 22       		.sleb128 34
- 3962 0a60 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccq6ONvw.s 			page 98
-
-
- 3963 0a61 00000000 		.long	.LASF159
- 3964 0a65 23       		.sleb128 35
- 3965 0a66 0D       		.uleb128 0xd
- 3966 0a67 00000000 		.long	.LASF160
- 3967 0a6b 24       		.sleb128 36
- 3968 0a6c 0D       		.uleb128 0xd
- 3969 0a6d 00000000 		.long	.LASF161
- 3970 0a71 25       		.sleb128 37
- 3971 0a72 0D       		.uleb128 0xd
- 3972 0a73 00000000 		.long	.LASF162
- 3973 0a77 26       		.sleb128 38
- 3974 0a78 0D       		.uleb128 0xd
- 3975 0a79 00000000 		.long	.LASF163
- 3976 0a7d 27       		.sleb128 39
- 3977 0a7e 0D       		.uleb128 0xd
- 3978 0a7f 00000000 		.long	.LASF164
- 3979 0a83 28       		.sleb128 40
- 3980 0a84 0D       		.uleb128 0xd
- 3981 0a85 00000000 		.long	.LASF165
- 3982 0a89 29       		.sleb128 41
- 3983 0a8a 0D       		.uleb128 0xd
- 3984 0a8b 00000000 		.long	.LASF166
- 3985 0a8f 2A       		.sleb128 42
- 3986 0a90 0D       		.uleb128 0xd
- 3987 0a91 00000000 		.long	.LASF167
- 3988 0a95 2B       		.sleb128 43
- 3989 0a96 0D       		.uleb128 0xd
- 3990 0a97 00000000 		.long	.LASF168
- 3991 0a9b 2C       		.sleb128 44
- 3992 0a9c 0D       		.uleb128 0xd
- 3993 0a9d 00000000 		.long	.LASF169
- 3994 0aa1 2D       		.sleb128 45
- 3995 0aa2 0D       		.uleb128 0xd
- 3996 0aa3 00000000 		.long	.LASF170
- 3997 0aa7 2E       		.sleb128 46
- 3998 0aa8 0D       		.uleb128 0xd
- 3999 0aa9 00000000 		.long	.LASF171
- 4000 0aad 2F       		.sleb128 47
- 4001 0aae 0D       		.uleb128 0xd
- 4002 0aaf 00000000 		.long	.LASF172
- 4003 0ab3 30       		.sleb128 48
- 4004 0ab4 0D       		.uleb128 0xd
- 4005 0ab5 00000000 		.long	.LASF173
- 4006 0ab9 31       		.sleb128 49
- 4007 0aba 0D       		.uleb128 0xd
- 4008 0abb 00000000 		.long	.LASF174
- 4009 0abf 32       		.sleb128 50
- 4010 0ac0 0D       		.uleb128 0xd
- 4011 0ac1 00000000 		.long	.LASF175
- 4012 0ac5 33       		.sleb128 51
- 4013 0ac6 0D       		.uleb128 0xd
- 4014 0ac7 00000000 		.long	.LASF176
- 4015 0acb 34       		.sleb128 52
- 4016 0acc 0D       		.uleb128 0xd
- 4017 0acd 00000000 		.long	.LASF177
- 4018 0ad1 35       		.sleb128 53
- 4019 0ad2 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccq6ONvw.s 			page 99
-
-
- 4020 0ad3 00000000 		.long	.LASF178
- 4021 0ad7 36       		.sleb128 54
- 4022 0ad8 0D       		.uleb128 0xd
- 4023 0ad9 00000000 		.long	.LASF179
- 4024 0add 36       		.sleb128 54
- 4025 0ade 0D       		.uleb128 0xd
- 4026 0adf 00000000 		.long	.LASF180
- 4027 0ae3 37       		.sleb128 55
- 4028 0ae4 0D       		.uleb128 0xd
- 4029 0ae5 00000000 		.long	.LASF181
- 4030 0ae9 38       		.sleb128 56
- 4031 0aea 0D       		.uleb128 0xd
- 4032 0aeb 00000000 		.long	.LASF182
- 4033 0aef 39       		.sleb128 57
- 4034 0af0 0D       		.uleb128 0xd
- 4035 0af1 00000000 		.long	.LASF183
- 4036 0af5 3A       		.sleb128 58
- 4037 0af6 0D       		.uleb128 0xd
- 4038 0af7 00000000 		.long	.LASF184
- 4039 0afb 3B       		.sleb128 59
- 4040 0afc 0D       		.uleb128 0xd
- 4041 0afd 00000000 		.long	.LASF185
- 4042 0b01 3C       		.sleb128 60
- 4043 0b02 0D       		.uleb128 0xd
- 4044 0b03 00000000 		.long	.LASF186
- 4045 0b07 3D       		.sleb128 61
- 4046 0b08 00       		.byte	0x0
- 4047 0b09 1C       		.uleb128 0x1c
- 4048 0b0a 00000000 		.long	.LASF187
- 4049 0b0e 04       		.byte	0x4
- 4050 0b0f 0F       		.byte	0xf
- 4051 0b10 BD       		.byte	0xbd
- 4052 0b11 BF0C0000 		.long	0xcbf
- 4053 0b15 0D       		.uleb128 0xd
- 4054 0b16 00000000 		.long	.LASF188
- 4055 0b1a 00       		.sleb128 0
- 4056 0b1b 0D       		.uleb128 0xd
- 4057 0b1c 00000000 		.long	.LASF189
- 4058 0b20 01       		.sleb128 1
- 4059 0b21 0D       		.uleb128 0xd
- 4060 0b22 00000000 		.long	.LASF190
- 4061 0b26 02       		.sleb128 2
- 4062 0b27 0D       		.uleb128 0xd
- 4063 0b28 00000000 		.long	.LASF191
- 4064 0b2c 03       		.sleb128 3
- 4065 0b2d 0D       		.uleb128 0xd
- 4066 0b2e 00000000 		.long	.LASF192
- 4067 0b32 04       		.sleb128 4
- 4068 0b33 0D       		.uleb128 0xd
- 4069 0b34 00000000 		.long	.LASF193
- 4070 0b38 05       		.sleb128 5
- 4071 0b39 0D       		.uleb128 0xd
- 4072 0b3a 00000000 		.long	.LASF194
- 4073 0b3e 06       		.sleb128 6
- 4074 0b3f 0D       		.uleb128 0xd
- 4075 0b40 00000000 		.long	.LASF195
- 4076 0b44 07       		.sleb128 7
-
GAS LISTING /tmp/ccq6ONvw.s 			page 100
-
-
- 4077 0b45 0D       		.uleb128 0xd
- 4078 0b46 00000000 		.long	.LASF196
- 4079 0b4a 08       		.sleb128 8
- 4080 0b4b 0D       		.uleb128 0xd
- 4081 0b4c 00000000 		.long	.LASF197
- 4082 0b50 09       		.sleb128 9
- 4083 0b51 0D       		.uleb128 0xd
- 4084 0b52 00000000 		.long	.LASF198
- 4085 0b56 0A       		.sleb128 10
- 4086 0b57 0D       		.uleb128 0xd
- 4087 0b58 00000000 		.long	.LASF199
- 4088 0b5c 0B       		.sleb128 11
- 4089 0b5d 0D       		.uleb128 0xd
- 4090 0b5e 00000000 		.long	.LASF200
- 4091 0b62 0C       		.sleb128 12
- 4092 0b63 0D       		.uleb128 0xd
- 4093 0b64 00000000 		.long	.LASF201
- 4094 0b68 0D       		.sleb128 13
- 4095 0b69 0D       		.uleb128 0xd
- 4096 0b6a 00000000 		.long	.LASF202
- 4097 0b6e 0E       		.sleb128 14
- 4098 0b6f 0D       		.uleb128 0xd
- 4099 0b70 00000000 		.long	.LASF203
- 4100 0b74 0F       		.sleb128 15
- 4101 0b75 0D       		.uleb128 0xd
- 4102 0b76 00000000 		.long	.LASF204
- 4103 0b7a 10       		.sleb128 16
- 4104 0b7b 0D       		.uleb128 0xd
- 4105 0b7c 00000000 		.long	.LASF205
- 4106 0b80 11       		.sleb128 17
- 4107 0b81 0D       		.uleb128 0xd
- 4108 0b82 00000000 		.long	.LASF206
- 4109 0b86 12       		.sleb128 18
- 4110 0b87 0D       		.uleb128 0xd
- 4111 0b88 00000000 		.long	.LASF207
- 4112 0b8c 13       		.sleb128 19
- 4113 0b8d 0D       		.uleb128 0xd
- 4114 0b8e 00000000 		.long	.LASF208
- 4115 0b92 14       		.sleb128 20
- 4116 0b93 0D       		.uleb128 0xd
- 4117 0b94 00000000 		.long	.LASF209
- 4118 0b98 15       		.sleb128 21
- 4119 0b99 0D       		.uleb128 0xd
- 4120 0b9a 00000000 		.long	.LASF210
- 4121 0b9e 16       		.sleb128 22
- 4122 0b9f 0D       		.uleb128 0xd
- 4123 0ba0 00000000 		.long	.LASF211
- 4124 0ba4 17       		.sleb128 23
- 4125 0ba5 0D       		.uleb128 0xd
- 4126 0ba6 00000000 		.long	.LASF212
- 4127 0baa 18       		.sleb128 24
- 4128 0bab 0D       		.uleb128 0xd
- 4129 0bac 00000000 		.long	.LASF213
- 4130 0bb0 19       		.sleb128 25
- 4131 0bb1 0D       		.uleb128 0xd
- 4132 0bb2 00000000 		.long	.LASF214
- 4133 0bb6 1A       		.sleb128 26
-
GAS LISTING /tmp/ccq6ONvw.s 			page 101
-
-
- 4134 0bb7 0D       		.uleb128 0xd
- 4135 0bb8 00000000 		.long	.LASF215
- 4136 0bbc 1B       		.sleb128 27
- 4137 0bbd 0D       		.uleb128 0xd
- 4138 0bbe 00000000 		.long	.LASF216
- 4139 0bc2 1C       		.sleb128 28
- 4140 0bc3 0D       		.uleb128 0xd
- 4141 0bc4 00000000 		.long	.LASF217
- 4142 0bc8 1D       		.sleb128 29
- 4143 0bc9 0D       		.uleb128 0xd
- 4144 0bca 00000000 		.long	.LASF218
- 4145 0bce 1E       		.sleb128 30
- 4146 0bcf 0D       		.uleb128 0xd
- 4147 0bd0 00000000 		.long	.LASF219
- 4148 0bd4 1F       		.sleb128 31
- 4149 0bd5 0D       		.uleb128 0xd
- 4150 0bd6 00000000 		.long	.LASF220
- 4151 0bda 20       		.sleb128 32
- 4152 0bdb 0D       		.uleb128 0xd
- 4153 0bdc 00000000 		.long	.LASF221
- 4154 0be0 21       		.sleb128 33
- 4155 0be1 0D       		.uleb128 0xd
- 4156 0be2 00000000 		.long	.LASF222
- 4157 0be6 22       		.sleb128 34
- 4158 0be7 0D       		.uleb128 0xd
- 4159 0be8 00000000 		.long	.LASF223
- 4160 0bec 23       		.sleb128 35
- 4161 0bed 0D       		.uleb128 0xd
- 4162 0bee 00000000 		.long	.LASF224
- 4163 0bf2 24       		.sleb128 36
- 4164 0bf3 0D       		.uleb128 0xd
- 4165 0bf4 00000000 		.long	.LASF225
- 4166 0bf8 25       		.sleb128 37
- 4167 0bf9 0D       		.uleb128 0xd
- 4168 0bfa 00000000 		.long	.LASF226
- 4169 0bfe 26       		.sleb128 38
- 4170 0bff 0D       		.uleb128 0xd
- 4171 0c00 00000000 		.long	.LASF227
- 4172 0c04 27       		.sleb128 39
- 4173 0c05 0D       		.uleb128 0xd
- 4174 0c06 00000000 		.long	.LASF228
- 4175 0c0a 28       		.sleb128 40
- 4176 0c0b 0D       		.uleb128 0xd
- 4177 0c0c 00000000 		.long	.LASF229
- 4178 0c10 29       		.sleb128 41
- 4179 0c11 0D       		.uleb128 0xd
- 4180 0c12 00000000 		.long	.LASF230
- 4181 0c16 2A       		.sleb128 42
- 4182 0c17 0D       		.uleb128 0xd
- 4183 0c18 00000000 		.long	.LASF231
- 4184 0c1c 2B       		.sleb128 43
- 4185 0c1d 0D       		.uleb128 0xd
- 4186 0c1e 00000000 		.long	.LASF232
- 4187 0c22 2C       		.sleb128 44
- 4188 0c23 0D       		.uleb128 0xd
- 4189 0c24 00000000 		.long	.LASF233
- 4190 0c28 2D       		.sleb128 45
-
GAS LISTING /tmp/ccq6ONvw.s 			page 102
-
-
- 4191 0c29 0D       		.uleb128 0xd
- 4192 0c2a 00000000 		.long	.LASF234
- 4193 0c2e 2E       		.sleb128 46
- 4194 0c2f 0D       		.uleb128 0xd
- 4195 0c30 00000000 		.long	.LASF235
- 4196 0c34 2F       		.sleb128 47
- 4197 0c35 0D       		.uleb128 0xd
- 4198 0c36 00000000 		.long	.LASF236
- 4199 0c3a 30       		.sleb128 48
- 4200 0c3b 0D       		.uleb128 0xd
- 4201 0c3c 00000000 		.long	.LASF237
- 4202 0c40 31       		.sleb128 49
- 4203 0c41 0D       		.uleb128 0xd
- 4204 0c42 00000000 		.long	.LASF238
- 4205 0c46 32       		.sleb128 50
- 4206 0c47 0D       		.uleb128 0xd
- 4207 0c48 00000000 		.long	.LASF239
- 4208 0c4c 33       		.sleb128 51
- 4209 0c4d 0D       		.uleb128 0xd
- 4210 0c4e 00000000 		.long	.LASF240
- 4211 0c52 34       		.sleb128 52
- 4212 0c53 0D       		.uleb128 0xd
- 4213 0c54 00000000 		.long	.LASF241
- 4214 0c58 35       		.sleb128 53
- 4215 0c59 0D       		.uleb128 0xd
- 4216 0c5a 00000000 		.long	.LASF242
- 4217 0c5e 36       		.sleb128 54
- 4218 0c5f 0D       		.uleb128 0xd
- 4219 0c60 00000000 		.long	.LASF243
- 4220 0c64 37       		.sleb128 55
- 4221 0c65 0D       		.uleb128 0xd
- 4222 0c66 00000000 		.long	.LASF244
- 4223 0c6a 38       		.sleb128 56
- 4224 0c6b 0D       		.uleb128 0xd
- 4225 0c6c 00000000 		.long	.LASF245
- 4226 0c70 39       		.sleb128 57
- 4227 0c71 0D       		.uleb128 0xd
- 4228 0c72 00000000 		.long	.LASF246
- 4229 0c76 3A       		.sleb128 58
- 4230 0c77 0D       		.uleb128 0xd
- 4231 0c78 00000000 		.long	.LASF247
- 4232 0c7c 3A       		.sleb128 58
- 4233 0c7d 0D       		.uleb128 0xd
- 4234 0c7e 00000000 		.long	.LASF248
- 4235 0c82 3B       		.sleb128 59
- 4236 0c83 0D       		.uleb128 0xd
- 4237 0c84 00000000 		.long	.LASF249
- 4238 0c88 3C       		.sleb128 60
- 4239 0c89 0D       		.uleb128 0xd
- 4240 0c8a 00000000 		.long	.LASF250
- 4241 0c8e 3D       		.sleb128 61
- 4242 0c8f 0D       		.uleb128 0xd
- 4243 0c90 00000000 		.long	.LASF251
- 4244 0c94 3E       		.sleb128 62
- 4245 0c95 0D       		.uleb128 0xd
- 4246 0c96 00000000 		.long	.LASF252
- 4247 0c9a 3F       		.sleb128 63
-
GAS LISTING /tmp/ccq6ONvw.s 			page 103
-
-
- 4248 0c9b 0D       		.uleb128 0xd
- 4249 0c9c 00000000 		.long	.LASF253
- 4250 0ca0 C000     		.sleb128 64
- 4251 0ca2 0D       		.uleb128 0xd
- 4252 0ca3 00000000 		.long	.LASF254
- 4253 0ca7 C100     		.sleb128 65
- 4254 0ca9 0D       		.uleb128 0xd
- 4255 0caa 00000000 		.long	.LASF255
- 4256 0cae C200     		.sleb128 66
- 4257 0cb0 0D       		.uleb128 0xd
- 4258 0cb1 00000000 		.long	.LASF256
- 4259 0cb5 C300     		.sleb128 67
- 4260 0cb7 0D       		.uleb128 0xd
- 4261 0cb8 00000000 		.long	.LASF257
- 4262 0cbc C400     		.sleb128 68
- 4263 0cbe 00       		.byte	0x0
- 4264 0cbf 1D       		.uleb128 0x1d
- 4265 0cc0 00000000 		.long	.LASF258
- 4266 0cc4 04       		.byte	0x4
- 4267 0cc5 0F       		.byte	0xf
- 4268 0cc6 0A01     		.value	0x10a
- 4269 0cc8 BE0D0000 		.long	0xdbe
- 4270 0ccc 0D       		.uleb128 0xd
- 4271 0ccd 00000000 		.long	.LASF259
- 4272 0cd1 00       		.sleb128 0
- 4273 0cd2 0D       		.uleb128 0xd
- 4274 0cd3 00000000 		.long	.LASF260
- 4275 0cd7 3D       		.sleb128 61
- 4276 0cd8 0D       		.uleb128 0xd
- 4277 0cd9 00000000 		.long	.LASF261
- 4278 0cdd 3E       		.sleb128 62
- 4279 0cde 0D       		.uleb128 0xd
- 4280 0cdf 00000000 		.long	.LASF262
- 4281 0ce3 3F       		.sleb128 63
- 4282 0ce4 0D       		.uleb128 0xd
- 4283 0ce5 00000000 		.long	.LASF263
- 4284 0ce9 C000     		.sleb128 64
- 4285 0ceb 0D       		.uleb128 0xd
- 4286 0cec 00000000 		.long	.LASF264
- 4287 0cf0 C100     		.sleb128 65
- 4288 0cf2 0D       		.uleb128 0xd
- 4289 0cf3 00000000 		.long	.LASF265
- 4290 0cf7 C200     		.sleb128 66
- 4291 0cf9 0D       		.uleb128 0xd
- 4292 0cfa 00000000 		.long	.LASF266
- 4293 0cfe C300     		.sleb128 67
- 4294 0d00 0D       		.uleb128 0xd
- 4295 0d01 00000000 		.long	.LASF267
- 4296 0d05 C400     		.sleb128 68
- 4297 0d07 0D       		.uleb128 0xd
- 4298 0d08 00000000 		.long	.LASF268
- 4299 0d0c C500     		.sleb128 69
- 4300 0d0e 0D       		.uleb128 0xd
- 4301 0d0f 00000000 		.long	.LASF269
- 4302 0d13 C600     		.sleb128 70
- 4303 0d15 0D       		.uleb128 0xd
- 4304 0d16 00000000 		.long	.LASF270
-
GAS LISTING /tmp/ccq6ONvw.s 			page 104
-
-
- 4305 0d1a C700     		.sleb128 71
- 4306 0d1c 0D       		.uleb128 0xd
- 4307 0d1d 00000000 		.long	.LASF271
- 4308 0d21 C800     		.sleb128 72
- 4309 0d23 0D       		.uleb128 0xd
- 4310 0d24 00000000 		.long	.LASF272
- 4311 0d28 C900     		.sleb128 73
- 4312 0d2a 0D       		.uleb128 0xd
- 4313 0d2b 00000000 		.long	.LASF273
- 4314 0d2f CA00     		.sleb128 74
- 4315 0d31 0D       		.uleb128 0xd
- 4316 0d32 00000000 		.long	.LASF274
- 4317 0d36 CB00     		.sleb128 75
- 4318 0d38 0D       		.uleb128 0xd
- 4319 0d39 00000000 		.long	.LASF275
- 4320 0d3d CC00     		.sleb128 76
- 4321 0d3f 0D       		.uleb128 0xd
- 4322 0d40 00000000 		.long	.LASF276
- 4323 0d44 CD00     		.sleb128 77
- 4324 0d46 0D       		.uleb128 0xd
- 4325 0d47 00000000 		.long	.LASF277
- 4326 0d4b CE00     		.sleb128 78
- 4327 0d4d 0D       		.uleb128 0xd
- 4328 0d4e 00000000 		.long	.LASF278
- 4329 0d52 CF00     		.sleb128 79
- 4330 0d54 0D       		.uleb128 0xd
- 4331 0d55 00000000 		.long	.LASF279
- 4332 0d59 D000     		.sleb128 80
- 4333 0d5b 0D       		.uleb128 0xd
- 4334 0d5c 00000000 		.long	.LASF280
- 4335 0d60 D100     		.sleb128 81
- 4336 0d62 0D       		.uleb128 0xd
- 4337 0d63 00000000 		.long	.LASF281
- 4338 0d67 D100     		.sleb128 81
- 4339 0d69 0D       		.uleb128 0xd
- 4340 0d6a 00000000 		.long	.LASF282
- 4341 0d6e D200     		.sleb128 82
- 4342 0d70 0D       		.uleb128 0xd
- 4343 0d71 00000000 		.long	.LASF283
- 4344 0d75 D300     		.sleb128 83
- 4345 0d77 0D       		.uleb128 0xd
- 4346 0d78 00000000 		.long	.LASF284
- 4347 0d7c D400     		.sleb128 84
- 4348 0d7e 0D       		.uleb128 0xd
- 4349 0d7f 00000000 		.long	.LASF285
- 4350 0d83 D500     		.sleb128 85
- 4351 0d85 0D       		.uleb128 0xd
- 4352 0d86 00000000 		.long	.LASF286
- 4353 0d8a D600     		.sleb128 86
- 4354 0d8c 0D       		.uleb128 0xd
- 4355 0d8d 00000000 		.long	.LASF287
- 4356 0d91 D700     		.sleb128 87
- 4357 0d93 0D       		.uleb128 0xd
- 4358 0d94 00000000 		.long	.LASF288
- 4359 0d98 D800     		.sleb128 88
- 4360 0d9a 0D       		.uleb128 0xd
- 4361 0d9b 00000000 		.long	.LASF289
-
GAS LISTING /tmp/ccq6ONvw.s 			page 105
-
-
- 4362 0d9f D900     		.sleb128 89
- 4363 0da1 0D       		.uleb128 0xd
- 4364 0da2 00000000 		.long	.LASF290
- 4365 0da6 DA00     		.sleb128 90
- 4366 0da8 0D       		.uleb128 0xd
- 4367 0da9 00000000 		.long	.LASF291
- 4368 0dad DB00     		.sleb128 91
- 4369 0daf 0D       		.uleb128 0xd
- 4370 0db0 00000000 		.long	.LASF292
- 4371 0db4 DC00     		.sleb128 92
- 4372 0db6 0D       		.uleb128 0xd
- 4373 0db7 00000000 		.long	.LASF293
- 4374 0dbb DD00     		.sleb128 93
- 4375 0dbd 00       		.byte	0x0
- 4376 0dbe 1D       		.uleb128 0x1d
- 4377 0dbf 00000000 		.long	.LASF294
- 4378 0dc3 04       		.byte	0x4
- 4379 0dc4 0F       		.byte	0xf
- 4380 0dc5 3401     		.value	0x134
- 4381 0dc7 FE0E0000 		.long	0xefe
- 4382 0dcb 0D       		.uleb128 0xd
- 4383 0dcc 00000000 		.long	.LASF295
- 4384 0dd0 00       		.sleb128 0
- 4385 0dd1 0D       		.uleb128 0xd
- 4386 0dd2 00000000 		.long	.LASF296
- 4387 0dd6 01       		.sleb128 1
- 4388 0dd7 0D       		.uleb128 0xd
- 4389 0dd8 00000000 		.long	.LASF297
- 4390 0ddc 02       		.sleb128 2
- 4391 0ddd 0D       		.uleb128 0xd
- 4392 0dde 00000000 		.long	.LASF298
- 4393 0de2 03       		.sleb128 3
- 4394 0de3 0D       		.uleb128 0xd
- 4395 0de4 00000000 		.long	.LASF299
- 4396 0de8 04       		.sleb128 4
- 4397 0de9 0D       		.uleb128 0xd
- 4398 0dea 00000000 		.long	.LASF300
- 4399 0dee 05       		.sleb128 5
- 4400 0def 0D       		.uleb128 0xd
- 4401 0df0 00000000 		.long	.LASF301
- 4402 0df4 06       		.sleb128 6
- 4403 0df5 0D       		.uleb128 0xd
- 4404 0df6 00000000 		.long	.LASF302
- 4405 0dfa 07       		.sleb128 7
- 4406 0dfb 0D       		.uleb128 0xd
- 4407 0dfc 00000000 		.long	.LASF303
- 4408 0e00 08       		.sleb128 8
- 4409 0e01 0D       		.uleb128 0xd
- 4410 0e02 00000000 		.long	.LASF304
- 4411 0e06 09       		.sleb128 9
- 4412 0e07 0D       		.uleb128 0xd
- 4413 0e08 00000000 		.long	.LASF305
- 4414 0e0c 0A       		.sleb128 10
- 4415 0e0d 0D       		.uleb128 0xd
- 4416 0e0e 00000000 		.long	.LASF306
- 4417 0e12 0B       		.sleb128 11
- 4418 0e13 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccq6ONvw.s 			page 106
-
-
- 4419 0e14 00000000 		.long	.LASF307
- 4420 0e18 0C       		.sleb128 12
- 4421 0e19 0D       		.uleb128 0xd
- 4422 0e1a 00000000 		.long	.LASF308
- 4423 0e1e 0D       		.sleb128 13
- 4424 0e1f 0D       		.uleb128 0xd
- 4425 0e20 00000000 		.long	.LASF309
- 4426 0e24 0E       		.sleb128 14
- 4427 0e25 0D       		.uleb128 0xd
- 4428 0e26 00000000 		.long	.LASF310
- 4429 0e2a 0F       		.sleb128 15
- 4430 0e2b 0D       		.uleb128 0xd
- 4431 0e2c 00000000 		.long	.LASF311
- 4432 0e30 10       		.sleb128 16
- 4433 0e31 0D       		.uleb128 0xd
- 4434 0e32 00000000 		.long	.LASF312
- 4435 0e36 11       		.sleb128 17
- 4436 0e37 0D       		.uleb128 0xd
- 4437 0e38 00000000 		.long	.LASF313
- 4438 0e3c 12       		.sleb128 18
- 4439 0e3d 0D       		.uleb128 0xd
- 4440 0e3e 00000000 		.long	.LASF314
- 4441 0e42 13       		.sleb128 19
- 4442 0e43 0D       		.uleb128 0xd
- 4443 0e44 00000000 		.long	.LASF315
- 4444 0e48 14       		.sleb128 20
- 4445 0e49 0D       		.uleb128 0xd
- 4446 0e4a 00000000 		.long	.LASF316
- 4447 0e4e 15       		.sleb128 21
- 4448 0e4f 0D       		.uleb128 0xd
- 4449 0e50 00000000 		.long	.LASF317
- 4450 0e54 16       		.sleb128 22
- 4451 0e55 0D       		.uleb128 0xd
- 4452 0e56 00000000 		.long	.LASF318
- 4453 0e5a 17       		.sleb128 23
- 4454 0e5b 0D       		.uleb128 0xd
- 4455 0e5c 00000000 		.long	.LASF319
- 4456 0e60 18       		.sleb128 24
- 4457 0e61 0D       		.uleb128 0xd
- 4458 0e62 00000000 		.long	.LASF320
- 4459 0e66 19       		.sleb128 25
- 4460 0e67 0D       		.uleb128 0xd
- 4461 0e68 00000000 		.long	.LASF321
- 4462 0e6c 1A       		.sleb128 26
- 4463 0e6d 0D       		.uleb128 0xd
- 4464 0e6e 00000000 		.long	.LASF322
- 4465 0e72 1B       		.sleb128 27
- 4466 0e73 0D       		.uleb128 0xd
- 4467 0e74 00000000 		.long	.LASF323
- 4468 0e78 1C       		.sleb128 28
- 4469 0e79 0D       		.uleb128 0xd
- 4470 0e7a 00000000 		.long	.LASF324
- 4471 0e7e 1D       		.sleb128 29
- 4472 0e7f 0D       		.uleb128 0xd
- 4473 0e80 00000000 		.long	.LASF325
- 4474 0e84 1E       		.sleb128 30
- 4475 0e85 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccq6ONvw.s 			page 107
-
-
- 4476 0e86 00000000 		.long	.LASF326
- 4477 0e8a 1F       		.sleb128 31
- 4478 0e8b 0D       		.uleb128 0xd
- 4479 0e8c 00000000 		.long	.LASF327
- 4480 0e90 20       		.sleb128 32
- 4481 0e91 0D       		.uleb128 0xd
- 4482 0e92 00000000 		.long	.LASF328
- 4483 0e96 21       		.sleb128 33
- 4484 0e97 0D       		.uleb128 0xd
- 4485 0e98 00000000 		.long	.LASF329
- 4486 0e9c 22       		.sleb128 34
- 4487 0e9d 0D       		.uleb128 0xd
- 4488 0e9e 00000000 		.long	.LASF330
- 4489 0ea2 23       		.sleb128 35
- 4490 0ea3 0D       		.uleb128 0xd
- 4491 0ea4 00000000 		.long	.LASF331
- 4492 0ea8 24       		.sleb128 36
- 4493 0ea9 0D       		.uleb128 0xd
- 4494 0eaa 00000000 		.long	.LASF332
- 4495 0eae 25       		.sleb128 37
- 4496 0eaf 0D       		.uleb128 0xd
- 4497 0eb0 00000000 		.long	.LASF333
- 4498 0eb4 26       		.sleb128 38
- 4499 0eb5 0D       		.uleb128 0xd
- 4500 0eb6 00000000 		.long	.LASF334
- 4501 0eba 27       		.sleb128 39
- 4502 0ebb 0D       		.uleb128 0xd
- 4503 0ebc 00000000 		.long	.LASF335
- 4504 0ec0 28       		.sleb128 40
- 4505 0ec1 0D       		.uleb128 0xd
- 4506 0ec2 00000000 		.long	.LASF336
- 4507 0ec6 29       		.sleb128 41
- 4508 0ec7 0D       		.uleb128 0xd
- 4509 0ec8 00000000 		.long	.LASF337
- 4510 0ecc 29       		.sleb128 41
- 4511 0ecd 0D       		.uleb128 0xd
- 4512 0ece 00000000 		.long	.LASF338
- 4513 0ed2 2A       		.sleb128 42
- 4514 0ed3 0D       		.uleb128 0xd
- 4515 0ed4 00000000 		.long	.LASF339
- 4516 0ed8 2B       		.sleb128 43
- 4517 0ed9 0D       		.uleb128 0xd
- 4518 0eda 00000000 		.long	.LASF340
- 4519 0ede 2C       		.sleb128 44
- 4520 0edf 0D       		.uleb128 0xd
- 4521 0ee0 00000000 		.long	.LASF341
- 4522 0ee4 2D       		.sleb128 45
- 4523 0ee5 0D       		.uleb128 0xd
- 4524 0ee6 00000000 		.long	.LASF342
- 4525 0eea 2E       		.sleb128 46
- 4526 0eeb 0D       		.uleb128 0xd
- 4527 0eec 00000000 		.long	.LASF343
- 4528 0ef0 2F       		.sleb128 47
- 4529 0ef1 0D       		.uleb128 0xd
- 4530 0ef2 00000000 		.long	.LASF344
- 4531 0ef6 30       		.sleb128 48
- 4532 0ef7 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccq6ONvw.s 			page 108
-
-
- 4533 0ef8 00000000 		.long	.LASF345
- 4534 0efc 31       		.sleb128 49
- 4535 0efd 00       		.byte	0x0
- 4536 0efe 13       		.uleb128 0x13
- 4537 0eff 00000000 		.long	.LASF346
- 4538 0f03 10       		.byte	0x10
- 4539 0f04 01       		.byte	0x1
- 4540 0f05 43       		.byte	0x43
- 4541 0f06 210F0000 		.long	0xf21
- 4542 0f0a 15       		.uleb128 0x15
- 4543 0f0b 76656300 		.string	"vec"
- 4544 0f0f 01       		.byte	0x1
- 4545 0f10 44       		.byte	0x44
- 4546 0f11 68050000 		.long	0x568
- 4547 0f15 14       		.uleb128 0x14
- 4548 0f16 00000000 		.long	.LASF347
- 4549 0f1a 01       		.byte	0x1
- 4550 0f1b 45       		.byte	0x45
- 4551 0f1c FF040000 		.long	0x4ff
- 4552 0f20 00       		.byte	0x0
- 4553 0f21 04       		.uleb128 0x4
- 4554 0f22 00000000 		.long	.LASF346
- 4555 0f26 01       		.byte	0x1
- 4556 0f27 46       		.byte	0x46
- 4557 0f28 FE0E0000 		.long	0xefe
- 4558 0f2c 1E       		.uleb128 0x1e
- 4559 0f2d 00000000 		.long	.LASF350
- 4560 0f31 01       		.byte	0x1
- 4561 0f32 4B       		.byte	0x4b
- 4562 0f33 01       		.byte	0x1
- 4563 0f34 68050000 		.long	0x568
- 4564 0f38 00000000 		.quad	.LFB508
- 4564      00000000 
- 4565 0f40 00000000 		.quad	.LFE508
- 4565      00000000 
- 4566 0f48 00000000 		.long	.LLST0
- 4567 0f4c 6B0F0000 		.long	0xf6b
- 4568 0f50 1F       		.uleb128 0x1f
- 4569 0f51 00000000 		.long	.LASF348
- 4570 0f55 01       		.byte	0x1
- 4571 0f56 4B       		.byte	0x4b
- 4572 0f57 1F040000 		.long	0x41f
- 4573 0f5b 02       		.byte	0x2
- 4574 0f5c 91       		.byte	0x91
- 4575 0f5d 58       		.sleb128 -40
- 4576 0f5e 20       		.uleb128 0x20
- 4577 0f5f 7500     		.string	"u"
- 4578 0f61 01       		.byte	0x1
- 4579 0f62 56       		.byte	0x56
- 4580 0f63 210F0000 		.long	0xf21
- 4581 0f67 02       		.byte	0x2
- 4582 0f68 91       		.byte	0x91
- 4583 0f69 60       		.sleb128 -32
- 4584 0f6a 00       		.byte	0x0
- 4585 0f6b 21       		.uleb128 0x21
- 4586 0f6c 00000000 		.long	.LASF398
- 4587 0f70 01       		.byte	0x1
-
GAS LISTING /tmp/ccq6ONvw.s 			page 109
-
-
- 4588 0f71 62       		.byte	0x62
- 4589 0f72 01       		.byte	0x1
- 4590 0f73 00000000 		.quad	.LFB509
- 4590      00000000 
- 4591 0f7b 00000000 		.quad	.LFE509
- 4591      00000000 
- 4592 0f83 00000000 		.long	.LLST1
- 4593 0f87 B50F0000 		.long	0xfb5
- 4594 0f8b 22       		.uleb128 0x22
- 4595 0f8c 637600   		.string	"cv"
- 4596 0f8f 01       		.byte	0x1
- 4597 0f90 62       		.byte	0x62
- 4598 0f91 B50F0000 		.long	0xfb5
- 4599 0f95 02       		.byte	0x2
- 4600 0f96 91       		.byte	0x91
- 4601 0f97 50       		.sleb128 -48
- 4602 0f98 1F       		.uleb128 0x1f
- 4603 0f99 00000000 		.long	.LASF349
- 4604 0f9d 01       		.byte	0x1
- 4605 0f9e 62       		.byte	0x62
- 4606 0f9f B4000000 		.long	0xb4
- 4607 0fa3 02       		.byte	0x2
- 4608 0fa4 91       		.byte	0x91
- 4609 0fa5 48       		.sleb128 -56
- 4610 0fa6 20       		.uleb128 0x20
- 4611 0fa7 6C637600 		.string	"lcv"
- 4612 0fab 01       		.byte	0x1
- 4613 0fac 6B       		.byte	0x6b
- 4614 0fad 68050000 		.long	0x568
- 4615 0fb1 02       		.byte	0x2
- 4616 0fb2 91       		.byte	0x91
- 4617 0fb3 60       		.sleb128 -32
- 4618 0fb4 00       		.byte	0x0
- 4619 0fb5 0B       		.uleb128 0xb
- 4620 0fb6 68050000 		.long	0x568
- 4621 0fba 1E       		.uleb128 0x1e
- 4622 0fbb 00000000 		.long	.LASF351
- 4623 0fbf 01       		.byte	0x1
- 4624 0fc0 71       		.byte	0x71
- 4625 0fc1 01       		.byte	0x1
- 4626 0fc2 7B000000 		.long	0x7b
- 4627 0fc6 00000000 		.quad	.LFB510
- 4627      00000000 
- 4628 0fce 00000000 		.quad	.LFE510
- 4628      00000000 
- 4629 0fd6 00000000 		.long	.LLST2
- 4630 0fda FA0F0000 		.long	0xffa
- 4631 0fde 1F       		.uleb128 0x1f
- 4632 0fdf 00000000 		.long	.LASF352
- 4633 0fe3 01       		.byte	0x1
- 4634 0fe4 71       		.byte	0x71
- 4635 0fe5 DE030000 		.long	0x3de
- 4636 0fe9 02       		.byte	0x2
- 4637 0fea 91       		.byte	0x91
- 4638 0feb 58       		.sleb128 -40
- 4639 0fec 20       		.uleb128 0x20
- 4640 0fed 726300   		.string	"rc"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 110
-
-
- 4641 0ff0 01       		.byte	0x1
- 4642 0ff1 73       		.byte	0x73
- 4643 0ff2 7B000000 		.long	0x7b
- 4644 0ff6 02       		.byte	0x2
- 4645 0ff7 91       		.byte	0x91
- 4646 0ff8 6C       		.sleb128 -20
- 4647 0ff9 00       		.byte	0x0
- 4648 0ffa 1E       		.uleb128 0x1e
- 4649 0ffb 00000000 		.long	.LASF353
- 4650 0fff 01       		.byte	0x1
- 4651 1000 7E       		.byte	0x7e
- 4652 1001 01       		.byte	0x1
- 4653 1002 7B000000 		.long	0x7b
- 4654 1006 00000000 		.quad	.LFB511
- 4654      00000000 
- 4655 100e 00000000 		.quad	.LFE511
- 4655      00000000 
- 4656 1016 00000000 		.long	.LLST3
- 4657 101a 7F100000 		.long	0x107f
- 4658 101e 1F       		.uleb128 0x1f
- 4659 101f 00000000 		.long	.LASF352
- 4660 1023 01       		.byte	0x1
- 4661 1024 7E       		.byte	0x7e
- 4662 1025 DE030000 		.long	0x3de
- 4663 1029 02       		.byte	0x2
- 4664 102a 91       		.byte	0x91
- 4665 102b 48       		.sleb128 -56
- 4666 102c 1F       		.uleb128 0x1f
- 4667 102d 00000000 		.long	.LASF354
- 4668 1031 01       		.byte	0x1
- 4669 1032 7F       		.byte	0x7f
- 4670 1033 B6000000 		.long	0xb6
- 4671 1037 02       		.byte	0x2
- 4672 1038 91       		.byte	0x91
- 4673 1039 40       		.sleb128 -64
- 4674 103a 1F       		.uleb128 0x1f
- 4675 103b 00000000 		.long	.LASF355
- 4676 103f 01       		.byte	0x1
- 4677 1040 80       		.byte	0x80
- 4678 1041 62000000 		.long	0x62
- 4679 1045 03       		.byte	0x3
- 4680 1046 91       		.byte	0x91
- 4681 1047 BC7F     		.sleb128 -68
- 4682 1049 20       		.uleb128 0x20
- 4683 104a 726300   		.string	"rc"
- 4684 104d 01       		.byte	0x1
- 4685 104e 82       		.byte	0x82
- 4686 104f 7B000000 		.long	0x7b
- 4687 1053 02       		.byte	0x2
- 4688 1054 91       		.byte	0x91
- 4689 1055 5C       		.sleb128 -36
- 4690 1056 23       		.uleb128 0x23
- 4691 1057 00000000 		.long	.LASF356
- 4692 105b 8F100000 		.long	0x108f
- 4693 105f 01       		.byte	0x1
- 4694 1060 09       		.byte	0x9
- 4695 1061 03       		.byte	0x3
-
GAS LISTING /tmp/ccq6ONvw.s 			page 111
-
-
- 4696 1062 00000000 		.quad	__PRETTY_FUNCTION__.6562
- 4696      00000000 
- 4697 106a 23       		.uleb128 0x23
- 4698 106b 00000000 		.long	.LASF357
- 4699 106f 94100000 		.long	0x1094
- 4700 1073 01       		.byte	0x1
- 4701 1074 09       		.byte	0x9
- 4702 1075 03       		.byte	0x3
- 4703 1076 00000000 		.quad	__func__.6564
- 4703      00000000 
- 4704 107e 00       		.byte	0x0
- 4705 107f 16       		.uleb128 0x16
- 4706 1080 C1000000 		.long	0xc1
- 4707 1084 8F100000 		.long	0x108f
- 4708 1088 17       		.uleb128 0x17
- 4709 1089 B1000000 		.long	0xb1
- 4710 108d 17       		.byte	0x17
- 4711 108e 00       		.byte	0x0
- 4712 108f 0B       		.uleb128 0xb
- 4713 1090 7F100000 		.long	0x107f
- 4714 1094 0B       		.uleb128 0xb
- 4715 1095 7F100000 		.long	0x107f
- 4716 1099 1E       		.uleb128 0x1e
- 4717 109a 00000000 		.long	.LASF358
- 4718 109e 01       		.byte	0x1
- 4719 109f 97       		.byte	0x97
- 4720 10a0 01       		.byte	0x1
- 4721 10a1 7B000000 		.long	0x7b
- 4722 10a5 00000000 		.quad	.LFB512
- 4722      00000000 
- 4723 10ad 00000000 		.quad	.LFE512
- 4723      00000000 
- 4724 10b5 00000000 		.long	.LLST4
- 4725 10b9 1E110000 		.long	0x111e
- 4726 10bd 1F       		.uleb128 0x1f
- 4727 10be 00000000 		.long	.LASF352
- 4728 10c2 01       		.byte	0x1
- 4729 10c3 97       		.byte	0x97
- 4730 10c4 DE030000 		.long	0x3de
- 4731 10c8 02       		.byte	0x2
- 4732 10c9 91       		.byte	0x91
- 4733 10ca 48       		.sleb128 -56
- 4734 10cb 1F       		.uleb128 0x1f
- 4735 10cc 00000000 		.long	.LASF354
- 4736 10d0 01       		.byte	0x1
- 4737 10d1 98       		.byte	0x98
- 4738 10d2 B6000000 		.long	0xb6
- 4739 10d6 02       		.byte	0x2
- 4740 10d7 91       		.byte	0x91
- 4741 10d8 40       		.sleb128 -64
- 4742 10d9 1F       		.uleb128 0x1f
- 4743 10da 00000000 		.long	.LASF355
- 4744 10de 01       		.byte	0x1
- 4745 10df 99       		.byte	0x99
- 4746 10e0 62000000 		.long	0x62
- 4747 10e4 03       		.byte	0x3
- 4748 10e5 91       		.byte	0x91
-
GAS LISTING /tmp/ccq6ONvw.s 			page 112
-
-
- 4749 10e6 BC7F     		.sleb128 -68
- 4750 10e8 20       		.uleb128 0x20
- 4751 10e9 726300   		.string	"rc"
- 4752 10ec 01       		.byte	0x1
- 4753 10ed 9B       		.byte	0x9b
- 4754 10ee 7B000000 		.long	0x7b
- 4755 10f2 02       		.byte	0x2
- 4756 10f3 91       		.byte	0x91
- 4757 10f4 5C       		.sleb128 -36
- 4758 10f5 23       		.uleb128 0x23
- 4759 10f6 00000000 		.long	.LASF356
- 4760 10fa 1E110000 		.long	0x111e
- 4761 10fe 01       		.byte	0x1
- 4762 10ff 09       		.byte	0x9
- 4763 1100 03       		.byte	0x3
- 4764 1101 00000000 		.quad	__PRETTY_FUNCTION__.6586
- 4764      00000000 
- 4765 1109 23       		.uleb128 0x23
- 4766 110a 00000000 		.long	.LASF357
- 4767 110e 23110000 		.long	0x1123
- 4768 1112 01       		.byte	0x1
- 4769 1113 09       		.byte	0x9
- 4770 1114 03       		.byte	0x3
- 4771 1115 00000000 		.quad	__func__.6588
- 4771      00000000 
- 4772 111d 00       		.byte	0x0
- 4773 111e 0B       		.uleb128 0xb
- 4774 111f 7F100000 		.long	0x107f
- 4775 1123 0B       		.uleb128 0xb
- 4776 1124 7F100000 		.long	0x107f
- 4777 1128 1E       		.uleb128 0x1e
- 4778 1129 00000000 		.long	.LASF359
- 4779 112d 01       		.byte	0x1
- 4780 112e B1       		.byte	0xb1
- 4781 112f 01       		.byte	0x1
- 4782 1130 7B000000 		.long	0x7b
- 4783 1134 00000000 		.quad	.LFB513
- 4783      00000000 
- 4784 113c 00000000 		.quad	.LFE513
- 4784      00000000 
- 4785 1144 00000000 		.long	.LLST5
- 4786 1148 7D110000 		.long	0x117d
- 4787 114c 1F       		.uleb128 0x1f
- 4788 114d 00000000 		.long	.LASF352
- 4789 1151 01       		.byte	0x1
- 4790 1152 B1       		.byte	0xb1
- 4791 1153 DE030000 		.long	0x3de
- 4792 1157 02       		.byte	0x2
- 4793 1158 91       		.byte	0x91
- 4794 1159 68       		.sleb128 -24
- 4795 115a 1F       		.uleb128 0x1f
- 4796 115b 00000000 		.long	.LASF360
- 4797 115f 01       		.byte	0x1
- 4798 1160 B2       		.byte	0xb2
- 4799 1161 1F040000 		.long	0x41f
- 4800 1165 02       		.byte	0x2
- 4801 1166 91       		.byte	0x91
-
GAS LISTING /tmp/ccq6ONvw.s 			page 113
-
-
- 4802 1167 60       		.sleb128 -32
- 4803 1168 23       		.uleb128 0x23
- 4804 1169 00000000 		.long	.LASF356
- 4805 116d 8D110000 		.long	0x118d
- 4806 1171 01       		.byte	0x1
- 4807 1172 09       		.byte	0x9
- 4808 1173 03       		.byte	0x3
- 4809 1174 00000000 		.quad	__PRETTY_FUNCTION__.6608
- 4809      00000000 
- 4810 117c 00       		.byte	0x0
- 4811 117d 16       		.uleb128 0x16
- 4812 117e C1000000 		.long	0xc1
- 4813 1182 8D110000 		.long	0x118d
- 4814 1186 17       		.uleb128 0x17
- 4815 1187 B1000000 		.long	0xb1
- 4816 118b 18       		.byte	0x18
- 4817 118c 00       		.byte	0x0
- 4818 118d 0B       		.uleb128 0xb
- 4819 118e 7D110000 		.long	0x117d
- 4820 1192 1E       		.uleb128 0x1e
- 4821 1193 00000000 		.long	.LASF361
- 4822 1197 01       		.byte	0x1
- 4823 1198 BE       		.byte	0xbe
- 4824 1199 01       		.byte	0x1
- 4825 119a 7B000000 		.long	0x7b
- 4826 119e 00000000 		.quad	.LFB514
- 4826      00000000 
- 4827 11a6 00000000 		.quad	.LFE514
- 4827      00000000 
- 4828 11ae 00000000 		.long	.LLST6
- 4829 11b2 E7110000 		.long	0x11e7
- 4830 11b6 1F       		.uleb128 0x1f
- 4831 11b7 00000000 		.long	.LASF352
- 4832 11bb 01       		.byte	0x1
- 4833 11bc BE       		.byte	0xbe
- 4834 11bd DE030000 		.long	0x3de
- 4835 11c1 02       		.byte	0x2
- 4836 11c2 91       		.byte	0x91
- 4837 11c3 68       		.sleb128 -24
- 4838 11c4 1F       		.uleb128 0x1f
- 4839 11c5 00000000 		.long	.LASF360
- 4840 11c9 01       		.byte	0x1
- 4841 11ca BF       		.byte	0xbf
- 4842 11cb 1F040000 		.long	0x41f
- 4843 11cf 02       		.byte	0x2
- 4844 11d0 91       		.byte	0x91
- 4845 11d1 60       		.sleb128 -32
- 4846 11d2 23       		.uleb128 0x23
- 4847 11d3 00000000 		.long	.LASF356
- 4848 11d7 E7110000 		.long	0x11e7
- 4849 11db 01       		.byte	0x1
- 4850 11dc 09       		.byte	0x9
- 4851 11dd 03       		.byte	0x3
- 4852 11de 00000000 		.quad	__PRETTY_FUNCTION__.6621
- 4852      00000000 
- 4853 11e6 00       		.byte	0x0
- 4854 11e7 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccq6ONvw.s 			page 114
-
-
- 4855 11e8 7D110000 		.long	0x117d
- 4856 11ec 1E       		.uleb128 0x1e
- 4857 11ed 00000000 		.long	.LASF362
- 4858 11f1 01       		.byte	0x1
- 4859 11f2 CB       		.byte	0xcb
- 4860 11f3 01       		.byte	0x1
- 4861 11f4 7B000000 		.long	0x7b
- 4862 11f8 00000000 		.quad	.LFB515
- 4862      00000000 
- 4863 1200 00000000 		.quad	.LFE515
- 4863      00000000 
- 4864 1208 00000000 		.long	.LLST7
- 4865 120c 41120000 		.long	0x1241
- 4866 1210 1F       		.uleb128 0x1f
- 4867 1211 00000000 		.long	.LASF352
- 4868 1215 01       		.byte	0x1
- 4869 1216 CB       		.byte	0xcb
- 4870 1217 DE030000 		.long	0x3de
- 4871 121b 02       		.byte	0x2
- 4872 121c 91       		.byte	0x91
- 4873 121d 68       		.sleb128 -24
- 4874 121e 1F       		.uleb128 0x1f
- 4875 121f 00000000 		.long	.LASF363
- 4876 1223 01       		.byte	0x1
- 4877 1224 CC       		.byte	0xcc
- 4878 1225 F7010000 		.long	0x1f7
- 4879 1229 02       		.byte	0x2
- 4880 122a 91       		.byte	0x91
- 4881 122b 60       		.sleb128 -32
- 4882 122c 23       		.uleb128 0x23
- 4883 122d 00000000 		.long	.LASF356
- 4884 1231 41120000 		.long	0x1241
- 4885 1235 01       		.byte	0x1
- 4886 1236 09       		.byte	0x9
- 4887 1237 03       		.byte	0x3
- 4888 1238 00000000 		.quad	__PRETTY_FUNCTION__.6634
- 4888      00000000 
- 4889 1240 00       		.byte	0x0
- 4890 1241 0B       		.uleb128 0xb
- 4891 1242 35050000 		.long	0x535
- 4892 1246 1E       		.uleb128 0x1e
- 4893 1247 00000000 		.long	.LASF364
- 4894 124b 01       		.byte	0x1
- 4895 124c D8       		.byte	0xd8
- 4896 124d 01       		.byte	0x1
- 4897 124e 7B000000 		.long	0x7b
- 4898 1252 00000000 		.quad	.LFB516
- 4898      00000000 
- 4899 125a 00000000 		.quad	.LFE516
- 4899      00000000 
- 4900 1262 00000000 		.long	.LLST8
- 4901 1266 9B120000 		.long	0x129b
- 4902 126a 1F       		.uleb128 0x1f
- 4903 126b 00000000 		.long	.LASF352
- 4904 126f 01       		.byte	0x1
- 4905 1270 D8       		.byte	0xd8
- 4906 1271 DE030000 		.long	0x3de
-
GAS LISTING /tmp/ccq6ONvw.s 			page 115
-
-
- 4907 1275 02       		.byte	0x2
- 4908 1276 91       		.byte	0x91
- 4909 1277 68       		.sleb128 -24
- 4910 1278 1F       		.uleb128 0x1f
- 4911 1279 00000000 		.long	.LASF363
- 4912 127d 01       		.byte	0x1
- 4913 127e D9       		.byte	0xd9
- 4914 127f F7010000 		.long	0x1f7
- 4915 1283 02       		.byte	0x2
- 4916 1284 91       		.byte	0x91
- 4917 1285 60       		.sleb128 -32
- 4918 1286 23       		.uleb128 0x23
- 4919 1287 00000000 		.long	.LASF356
- 4920 128b 9B120000 		.long	0x129b
- 4921 128f 01       		.byte	0x1
- 4922 1290 09       		.byte	0x9
- 4923 1291 03       		.byte	0x3
- 4924 1292 00000000 		.quad	__PRETTY_FUNCTION__.6644
- 4924      00000000 
- 4925 129a 00       		.byte	0x0
- 4926 129b 0B       		.uleb128 0xb
- 4927 129c 35050000 		.long	0x535
- 4928 12a0 1E       		.uleb128 0x1e
- 4929 12a1 00000000 		.long	.LASF365
- 4930 12a5 01       		.byte	0x1
- 4931 12a6 E4       		.byte	0xe4
- 4932 12a7 01       		.byte	0x1
- 4933 12a8 68050000 		.long	0x568
- 4934 12ac 00000000 		.quad	.LFB517
- 4934      00000000 
- 4935 12b4 00000000 		.quad	.LFE517
- 4935      00000000 
- 4936 12bc 00000000 		.long	.LLST9
- 4937 12c0 DF120000 		.long	0x12df
- 4938 12c4 1F       		.uleb128 0x1f
- 4939 12c5 00000000 		.long	.LASF352
- 4940 12c9 01       		.byte	0x1
- 4941 12ca E4       		.byte	0xe4
- 4942 12cb 61040000 		.long	0x461
- 4943 12cf 02       		.byte	0x2
- 4944 12d0 91       		.byte	0x91
- 4945 12d1 68       		.sleb128 -24
- 4946 12d2 22       		.uleb128 0x22
- 4947 12d3 637600   		.string	"cv"
- 4948 12d6 01       		.byte	0x1
- 4949 12d7 E5       		.byte	0xe5
- 4950 12d8 68050000 		.long	0x568
- 4951 12dc 01       		.byte	0x1
- 4952 12dd 61       		.byte	0x61
- 4953 12de 00       		.byte	0x0
- 4954 12df 1E       		.uleb128 0x1e
- 4955 12e0 00000000 		.long	.LASF366
- 4956 12e4 01       		.byte	0x1
- 4957 12e5 EB       		.byte	0xeb
- 4958 12e6 01       		.byte	0x1
- 4959 12e7 68050000 		.long	0x568
- 4960 12eb 00000000 		.quad	.LFB518
-
GAS LISTING /tmp/ccq6ONvw.s 			page 116
-
-
- 4960      00000000 
- 4961 12f3 00000000 		.quad	.LFE518
- 4961      00000000 
- 4962 12fb 00000000 		.long	.LLST10
- 4963 12ff 1E130000 		.long	0x131e
- 4964 1303 1F       		.uleb128 0x1f
- 4965 1304 00000000 		.long	.LASF352
- 4966 1308 01       		.byte	0x1
- 4967 1309 EB       		.byte	0xeb
- 4968 130a 61040000 		.long	0x461
- 4969 130e 02       		.byte	0x2
- 4970 130f 91       		.byte	0x91
- 4971 1310 68       		.sleb128 -24
- 4972 1311 22       		.uleb128 0x22
- 4973 1312 637600   		.string	"cv"
- 4974 1315 01       		.byte	0x1
- 4975 1316 EC       		.byte	0xec
- 4976 1317 68050000 		.long	0x568
- 4977 131b 01       		.byte	0x1
- 4978 131c 61       		.byte	0x61
- 4979 131d 00       		.byte	0x0
- 4980 131e 1E       		.uleb128 0x1e
- 4981 131f 00000000 		.long	.LASF367
- 4982 1323 01       		.byte	0x1
- 4983 1324 F2       		.byte	0xf2
- 4984 1325 01       		.byte	0x1
- 4985 1326 7B000000 		.long	0x7b
- 4986 132a 00000000 		.quad	.LFB519
- 4986      00000000 
- 4987 1332 00000000 		.quad	.LFE519
- 4987      00000000 
- 4988 133a 00000000 		.long	.LLST11
- 4989 133e 79130000 		.long	0x1379
- 4990 1342 1F       		.uleb128 0x1f
- 4991 1343 00000000 		.long	.LASF352
- 4992 1347 01       		.byte	0x1
- 4993 1348 F2       		.byte	0xf2
- 4994 1349 61040000 		.long	0x461
- 4995 134d 02       		.byte	0x2
- 4996 134e 91       		.byte	0x91
- 4997 134f 58       		.sleb128 -40
- 4998 1350 22       		.uleb128 0x22
- 4999 1351 696E00   		.string	"in"
- 5000 1354 01       		.byte	0x1
- 5001 1355 F3       		.byte	0xf3
- 5002 1356 1F040000 		.long	0x41f
- 5003 135a 02       		.byte	0x2
- 5004 135b 91       		.byte	0x91
- 5005 135c 50       		.sleb128 -48
- 5006 135d 22       		.uleb128 0x22
- 5007 135e 6F757400 		.string	"out"
- 5008 1362 01       		.byte	0x1
- 5009 1363 F3       		.byte	0xf3
- 5010 1364 B4000000 		.long	0xb4
- 5011 1368 02       		.byte	0x2
- 5012 1369 91       		.byte	0x91
- 5013 136a 48       		.sleb128 -56
-
GAS LISTING /tmp/ccq6ONvw.s 			page 117
-
-
- 5014 136b 20       		.uleb128 0x20
- 5015 136c 637600   		.string	"cv"
- 5016 136f 01       		.byte	0x1
- 5017 1370 F5       		.byte	0xf5
- 5018 1371 68050000 		.long	0x568
- 5019 1375 02       		.byte	0x2
- 5020 1376 91       		.byte	0x91
- 5021 1377 60       		.sleb128 -32
- 5022 1378 00       		.byte	0x0
- 5023 1379 1E       		.uleb128 0x1e
- 5024 137a 00000000 		.long	.LASF368
- 5025 137e 01       		.byte	0x1
- 5026 137f FE       		.byte	0xfe
- 5027 1380 01       		.byte	0x1
- 5028 1381 7B000000 		.long	0x7b
- 5029 1385 00000000 		.quad	.LFB520
- 5029      00000000 
- 5030 138d 00000000 		.quad	.LFE520
- 5030      00000000 
- 5031 1395 00000000 		.long	.LLST12
- 5032 1399 D5130000 		.long	0x13d5
- 5033 139d 1F       		.uleb128 0x1f
- 5034 139e 00000000 		.long	.LASF352
- 5035 13a2 01       		.byte	0x1
- 5036 13a3 FE       		.byte	0xfe
- 5037 13a4 61040000 		.long	0x461
- 5038 13a8 02       		.byte	0x2
- 5039 13a9 91       		.byte	0x91
- 5040 13aa 58       		.sleb128 -40
- 5041 13ab 22       		.uleb128 0x22
- 5042 13ac 696E00   		.string	"in"
- 5043 13af 01       		.byte	0x1
- 5044 13b0 FF       		.byte	0xff
- 5045 13b1 1F040000 		.long	0x41f
- 5046 13b5 02       		.byte	0x2
- 5047 13b6 91       		.byte	0x91
- 5048 13b7 50       		.sleb128 -48
- 5049 13b8 22       		.uleb128 0x22
- 5050 13b9 6F757400 		.string	"out"
- 5051 13bd 01       		.byte	0x1
- 5052 13be FF       		.byte	0xff
- 5053 13bf B4000000 		.long	0xb4
- 5054 13c3 02       		.byte	0x2
- 5055 13c4 91       		.byte	0x91
- 5056 13c5 48       		.sleb128 -56
- 5057 13c6 24       		.uleb128 0x24
- 5058 13c7 637600   		.string	"cv"
- 5059 13ca 01       		.byte	0x1
- 5060 13cb 0101     		.value	0x101
- 5061 13cd 68050000 		.long	0x568
- 5062 13d1 02       		.byte	0x2
- 5063 13d2 91       		.byte	0x91
- 5064 13d3 60       		.sleb128 -32
- 5065 13d4 00       		.byte	0x0
- 5066 13d5 25       		.uleb128 0x25
- 5067 13d6 00000000 		.long	.LASF369
- 5068 13da 01       		.byte	0x1
-
GAS LISTING /tmp/ccq6ONvw.s 			page 118
-
-
- 5069 13db 0A01     		.value	0x10a
- 5070 13dd 01       		.byte	0x1
- 5071 13de 7B000000 		.long	0x7b
- 5072 13e2 00000000 		.quad	.LFB521
- 5072      00000000 
- 5073 13ea 00000000 		.quad	.LFE521
- 5073      00000000 
- 5074 13f2 00000000 		.long	.LLST13
- 5075 13f6 5D140000 		.long	0x145d
- 5076 13fa 26       		.uleb128 0x26
- 5077 13fb 00000000 		.long	.LASF352
- 5078 13ff 01       		.byte	0x1
- 5079 1400 0A01     		.value	0x10a
- 5080 1402 61040000 		.long	0x461
- 5081 1406 02       		.byte	0x2
- 5082 1407 91       		.byte	0x91
- 5083 1408 58       		.sleb128 -40
- 5084 1409 27       		.uleb128 0x27
- 5085 140a 696E00   		.string	"in"
- 5086 140d 01       		.byte	0x1
- 5087 140e 0A01     		.value	0x10a
- 5088 1410 1F040000 		.long	0x41f
- 5089 1414 02       		.byte	0x2
- 5090 1415 91       		.byte	0x91
- 5091 1416 50       		.sleb128 -48
- 5092 1417 27       		.uleb128 0x27
- 5093 1418 6F757400 		.string	"out"
- 5094 141c 01       		.byte	0x1
- 5095 141d 0A01     		.value	0x10a
- 5096 141f B4000000 		.long	0xb4
- 5097 1423 02       		.byte	0x2
- 5098 1424 91       		.byte	0x91
- 5099 1425 48       		.sleb128 -56
- 5100 1426 24       		.uleb128 0x24
- 5101 1427 726300   		.string	"rc"
- 5102 142a 01       		.byte	0x1
- 5103 142b 0C01     		.value	0x10c
- 5104 142d 7B000000 		.long	0x7b
- 5105 1431 02       		.byte	0x2
- 5106 1432 91       		.byte	0x91
- 5107 1433 6C       		.sleb128 -20
- 5108 1434 23       		.uleb128 0x23
- 5109 1435 00000000 		.long	.LASF356
- 5110 1439 6D140000 		.long	0x146d
- 5111 143d 01       		.byte	0x1
- 5112 143e 09       		.byte	0x9
- 5113 143f 03       		.byte	0x3
- 5114 1440 00000000 		.quad	__PRETTY_FUNCTION__.6693
- 5114      00000000 
- 5115 1448 23       		.uleb128 0x23
- 5116 1449 00000000 		.long	.LASF357
- 5117 144d 72140000 		.long	0x1472
- 5118 1451 01       		.byte	0x1
- 5119 1452 09       		.byte	0x9
- 5120 1453 03       		.byte	0x3
- 5121 1454 00000000 		.quad	__func__.6694
- 5121      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 119
-
-
- 5122 145c 00       		.byte	0x0
- 5123 145d 16       		.uleb128 0x16
- 5124 145e C1000000 		.long	0xc1
- 5125 1462 6D140000 		.long	0x146d
- 5126 1466 17       		.uleb128 0x17
- 5127 1467 B1000000 		.long	0xb1
- 5128 146b 11       		.byte	0x11
- 5129 146c 00       		.byte	0x0
- 5130 146d 0B       		.uleb128 0xb
- 5131 146e 5D140000 		.long	0x145d
- 5132 1472 0B       		.uleb128 0xb
- 5133 1473 5D140000 		.long	0x145d
- 5134 1477 25       		.uleb128 0x25
- 5135 1478 00000000 		.long	.LASF370
- 5136 147c 01       		.byte	0x1
- 5137 147d 1E01     		.value	0x11e
- 5138 147f 01       		.byte	0x1
- 5139 1480 7B000000 		.long	0x7b
- 5140 1484 00000000 		.quad	.LFB522
- 5140      00000000 
- 5141 148c 00000000 		.quad	.LFE522
- 5141      00000000 
- 5142 1494 00000000 		.long	.LLST14
- 5143 1498 FF140000 		.long	0x14ff
- 5144 149c 26       		.uleb128 0x26
- 5145 149d 00000000 		.long	.LASF352
- 5146 14a1 01       		.byte	0x1
- 5147 14a2 1E01     		.value	0x11e
- 5148 14a4 61040000 		.long	0x461
- 5149 14a8 02       		.byte	0x2
- 5150 14a9 91       		.byte	0x91
- 5151 14aa 58       		.sleb128 -40
- 5152 14ab 27       		.uleb128 0x27
- 5153 14ac 696E00   		.string	"in"
- 5154 14af 01       		.byte	0x1
- 5155 14b0 1E01     		.value	0x11e
- 5156 14b2 1F040000 		.long	0x41f
- 5157 14b6 02       		.byte	0x2
- 5158 14b7 91       		.byte	0x91
- 5159 14b8 50       		.sleb128 -48
- 5160 14b9 27       		.uleb128 0x27
- 5161 14ba 6F757400 		.string	"out"
- 5162 14be 01       		.byte	0x1
- 5163 14bf 1E01     		.value	0x11e
- 5164 14c1 B4000000 		.long	0xb4
- 5165 14c5 02       		.byte	0x2
- 5166 14c6 91       		.byte	0x91
- 5167 14c7 48       		.sleb128 -56
- 5168 14c8 24       		.uleb128 0x24
- 5169 14c9 726300   		.string	"rc"
- 5170 14cc 01       		.byte	0x1
- 5171 14cd 2001     		.value	0x120
- 5172 14cf 7B000000 		.long	0x7b
- 5173 14d3 02       		.byte	0x2
- 5174 14d4 91       		.byte	0x91
- 5175 14d5 6C       		.sleb128 -20
- 5176 14d6 23       		.uleb128 0x23
-
GAS LISTING /tmp/ccq6ONvw.s 			page 120
-
-
- 5177 14d7 00000000 		.long	.LASF356
- 5178 14db FF140000 		.long	0x14ff
- 5179 14df 01       		.byte	0x1
- 5180 14e0 09       		.byte	0x9
- 5181 14e1 03       		.byte	0x3
- 5182 14e2 00000000 		.quad	__PRETTY_FUNCTION__.6709
- 5182      00000000 
- 5183 14ea 23       		.uleb128 0x23
- 5184 14eb 00000000 		.long	.LASF357
- 5185 14ef 04150000 		.long	0x1504
- 5186 14f3 01       		.byte	0x1
- 5187 14f4 09       		.byte	0x9
- 5188 14f5 03       		.byte	0x3
- 5189 14f6 00000000 		.quad	__func__.6710
- 5189      00000000 
- 5190 14fe 00       		.byte	0x0
- 5191 14ff 0B       		.uleb128 0xb
- 5192 1500 5D140000 		.long	0x145d
- 5193 1504 0B       		.uleb128 0xb
- 5194 1505 5D140000 		.long	0x145d
- 5195 1509 25       		.uleb128 0x25
- 5196 150a 00000000 		.long	.LASF371
- 5197 150e 01       		.byte	0x1
- 5198 150f 5C01     		.value	0x15c
- 5199 1511 01       		.byte	0x1
- 5200 1512 7B000000 		.long	0x7b
- 5201 1516 00000000 		.quad	.LFB523
- 5201      00000000 
- 5202 151e 00000000 		.quad	.LFE523
- 5202      00000000 
- 5203 1526 00000000 		.long	.LLST15
- 5204 152a 88150000 		.long	0x1588
- 5205 152e 26       		.uleb128 0x26
- 5206 152f 00000000 		.long	.LASF352
- 5207 1533 01       		.byte	0x1
- 5208 1534 5C01     		.value	0x15c
- 5209 1536 61040000 		.long	0x461
- 5210 153a 02       		.byte	0x2
- 5211 153b 91       		.byte	0x91
- 5212 153c 58       		.sleb128 -40
- 5213 153d 27       		.uleb128 0x27
- 5214 153e 696E00   		.string	"in"
- 5215 1541 01       		.byte	0x1
- 5216 1542 5C01     		.value	0x15c
- 5217 1544 1F040000 		.long	0x41f
- 5218 1548 02       		.byte	0x2
- 5219 1549 91       		.byte	0x91
- 5220 154a 50       		.sleb128 -48
- 5221 154b 27       		.uleb128 0x27
- 5222 154c 6F757400 		.string	"out"
- 5223 1550 01       		.byte	0x1
- 5224 1551 5C01     		.value	0x15c
- 5225 1553 B4000000 		.long	0xb4
- 5226 1557 02       		.byte	0x2
- 5227 1558 91       		.byte	0x91
- 5228 1559 48       		.sleb128 -56
- 5229 155a 26       		.uleb128 0x26
-
GAS LISTING /tmp/ccq6ONvw.s 			page 121
-
-
- 5230 155b 00000000 		.long	.LASF372
- 5231 155f 01       		.byte	0x1
- 5232 1560 5C01     		.value	0x15c
- 5233 1562 62000000 		.long	0x62
- 5234 1566 02       		.byte	0x2
- 5235 1567 91       		.byte	0x91
- 5236 1568 44       		.sleb128 -60
- 5237 1569 24       		.uleb128 0x24
- 5238 156a 70696E00 		.string	"pin"
- 5239 156e 01       		.byte	0x1
- 5240 156f 5E01     		.value	0x15e
- 5241 1571 88150000 		.long	0x1588
- 5242 1575 02       		.byte	0x2
- 5243 1576 91       		.byte	0x91
- 5244 1577 60       		.sleb128 -32
- 5245 1578 28       		.uleb128 0x28
- 5246 1579 00000000 		.long	.LASF373
- 5247 157d 01       		.byte	0x1
- 5248 157e 5F01     		.value	0x15f
- 5249 1580 93150000 		.long	0x1593
- 5250 1584 02       		.byte	0x2
- 5251 1585 91       		.byte	0x91
- 5252 1586 68       		.sleb128 -24
- 5253 1587 00       		.byte	0x0
- 5254 1588 0A       		.uleb128 0xa
- 5255 1589 08       		.byte	0x8
- 5256 158a 8E150000 		.long	0x158e
- 5257 158e 0B       		.uleb128 0xb
- 5258 158f 49000000 		.long	0x49
- 5259 1593 0A       		.uleb128 0xa
- 5260 1594 08       		.byte	0x8
- 5261 1595 49000000 		.long	0x49
- 5262 1599 25       		.uleb128 0x25
- 5263 159a 00000000 		.long	.LASF374
- 5264 159e 01       		.byte	0x1
- 5265 159f 6C01     		.value	0x16c
- 5266 15a1 01       		.byte	0x1
- 5267 15a2 7B000000 		.long	0x7b
- 5268 15a6 00000000 		.quad	.LFB524
- 5268      00000000 
- 5269 15ae 00000000 		.quad	.LFE524
- 5269      00000000 
- 5270 15b6 00000000 		.long	.LLST16
- 5271 15ba 18160000 		.long	0x1618
- 5272 15be 26       		.uleb128 0x26
- 5273 15bf 00000000 		.long	.LASF352
- 5274 15c3 01       		.byte	0x1
- 5275 15c4 6C01     		.value	0x16c
- 5276 15c6 61040000 		.long	0x461
- 5277 15ca 02       		.byte	0x2
- 5278 15cb 91       		.byte	0x91
- 5279 15cc 58       		.sleb128 -40
- 5280 15cd 27       		.uleb128 0x27
- 5281 15ce 696E00   		.string	"in"
- 5282 15d1 01       		.byte	0x1
- 5283 15d2 6C01     		.value	0x16c
- 5284 15d4 1F040000 		.long	0x41f
-
GAS LISTING /tmp/ccq6ONvw.s 			page 122
-
-
- 5285 15d8 02       		.byte	0x2
- 5286 15d9 91       		.byte	0x91
- 5287 15da 50       		.sleb128 -48
- 5288 15db 27       		.uleb128 0x27
- 5289 15dc 6F757400 		.string	"out"
- 5290 15e0 01       		.byte	0x1
- 5291 15e1 6C01     		.value	0x16c
- 5292 15e3 B4000000 		.long	0xb4
- 5293 15e7 02       		.byte	0x2
- 5294 15e8 91       		.byte	0x91
- 5295 15e9 48       		.sleb128 -56
- 5296 15ea 26       		.uleb128 0x26
- 5297 15eb 00000000 		.long	.LASF372
- 5298 15ef 01       		.byte	0x1
- 5299 15f0 6C01     		.value	0x16c
- 5300 15f2 62000000 		.long	0x62
- 5301 15f6 02       		.byte	0x2
- 5302 15f7 91       		.byte	0x91
- 5303 15f8 44       		.sleb128 -60
- 5304 15f9 24       		.uleb128 0x24
- 5305 15fa 70696E00 		.string	"pin"
- 5306 15fe 01       		.byte	0x1
- 5307 15ff 6E01     		.value	0x16e
- 5308 1601 88150000 		.long	0x1588
- 5309 1605 02       		.byte	0x2
- 5310 1606 91       		.byte	0x91
- 5311 1607 60       		.sleb128 -32
- 5312 1608 28       		.uleb128 0x28
- 5313 1609 00000000 		.long	.LASF373
- 5314 160d 01       		.byte	0x1
- 5315 160e 6F01     		.value	0x16f
- 5316 1610 93150000 		.long	0x1593
- 5317 1614 02       		.byte	0x2
- 5318 1615 91       		.byte	0x91
- 5319 1616 68       		.sleb128 -24
- 5320 1617 00       		.byte	0x0
- 5321 1618 25       		.uleb128 0x25
- 5322 1619 00000000 		.long	.LASF375
- 5323 161d 01       		.byte	0x1
- 5324 161e 8201     		.value	0x182
- 5325 1620 01       		.byte	0x1
- 5326 1621 7B000000 		.long	0x7b
- 5327 1625 00000000 		.quad	.LFB525
- 5327      00000000 
- 5328 162d 00000000 		.quad	.LFE525
- 5328      00000000 
- 5329 1635 00000000 		.long	.LLST17
- 5330 1639 B8160000 		.long	0x16b8
- 5331 163d 26       		.uleb128 0x26
- 5332 163e 00000000 		.long	.LASF352
- 5333 1642 01       		.byte	0x1
- 5334 1643 8201     		.value	0x182
- 5335 1645 DE030000 		.long	0x3de
- 5336 1649 03       		.byte	0x3
- 5337 164a 91       		.byte	0x91
- 5338 164b B87F     		.sleb128 -72
- 5339 164d 27       		.uleb128 0x27
-
GAS LISTING /tmp/ccq6ONvw.s 			page 123
-
-
- 5340 164e 696E00   		.string	"in"
- 5341 1651 01       		.byte	0x1
- 5342 1652 8201     		.value	0x182
- 5343 1654 1F040000 		.long	0x41f
- 5344 1658 03       		.byte	0x3
- 5345 1659 91       		.byte	0x91
- 5346 165a B07F     		.sleb128 -80
- 5347 165c 27       		.uleb128 0x27
- 5348 165d 6F757400 		.string	"out"
- 5349 1661 01       		.byte	0x1
- 5350 1662 8201     		.value	0x182
- 5351 1664 B4000000 		.long	0xb4
- 5352 1668 03       		.byte	0x3
- 5353 1669 91       		.byte	0x91
- 5354 166a A87F     		.sleb128 -88
- 5355 166c 26       		.uleb128 0x26
- 5356 166d 00000000 		.long	.LASF372
- 5357 1671 01       		.byte	0x1
- 5358 1672 8201     		.value	0x182
- 5359 1674 62000000 		.long	0x62
- 5360 1678 03       		.byte	0x3
- 5361 1679 91       		.byte	0x91
- 5362 167a A47F     		.sleb128 -92
- 5363 167c 24       		.uleb128 0x24
- 5364 167d 637600   		.string	"cv"
- 5365 1680 01       		.byte	0x1
- 5366 1681 8401     		.value	0x184
- 5367 1683 68050000 		.long	0x568
- 5368 1687 02       		.byte	0x2
- 5369 1688 91       		.byte	0x91
- 5370 1689 40       		.sleb128 -64
- 5371 168a 28       		.uleb128 0x28
- 5372 168b 00000000 		.long	.LASF360
- 5373 168f 01       		.byte	0x1
- 5374 1690 8501     		.value	0x185
- 5375 1692 68050000 		.long	0x568
- 5376 1696 02       		.byte	0x2
- 5377 1697 91       		.byte	0x91
- 5378 1698 50       		.sleb128 -48
- 5379 1699 24       		.uleb128 0x24
- 5380 169a 70696E00 		.string	"pin"
- 5381 169e 01       		.byte	0x1
- 5382 169f 8601     		.value	0x186
- 5383 16a1 88150000 		.long	0x1588
- 5384 16a5 02       		.byte	0x2
- 5385 16a6 91       		.byte	0x91
- 5386 16a7 60       		.sleb128 -32
- 5387 16a8 28       		.uleb128 0x28
- 5388 16a9 00000000 		.long	.LASF373
- 5389 16ad 01       		.byte	0x1
- 5390 16ae 8701     		.value	0x187
- 5391 16b0 93150000 		.long	0x1593
- 5392 16b4 02       		.byte	0x2
- 5393 16b5 91       		.byte	0x91
- 5394 16b6 68       		.sleb128 -24
- 5395 16b7 00       		.byte	0x0
- 5396 16b8 25       		.uleb128 0x25
-
GAS LISTING /tmp/ccq6ONvw.s 			page 124
-
-
- 5397 16b9 00000000 		.long	.LASF376
- 5398 16bd 01       		.byte	0x1
- 5399 16be A401     		.value	0x1a4
- 5400 16c0 01       		.byte	0x1
- 5401 16c1 7B000000 		.long	0x7b
- 5402 16c5 00000000 		.quad	.LFB526
- 5402      00000000 
- 5403 16cd 00000000 		.quad	.LFE526
- 5403      00000000 
- 5404 16d5 00000000 		.long	.LLST18
- 5405 16d9 7A170000 		.long	0x177a
- 5406 16dd 26       		.uleb128 0x26
- 5407 16de 00000000 		.long	.LASF352
- 5408 16e2 01       		.byte	0x1
- 5409 16e3 A401     		.value	0x1a4
- 5410 16e5 DE030000 		.long	0x3de
- 5411 16e9 03       		.byte	0x3
- 5412 16ea 91       		.byte	0x91
- 5413 16eb A87F     		.sleb128 -88
- 5414 16ed 27       		.uleb128 0x27
- 5415 16ee 696E00   		.string	"in"
- 5416 16f1 01       		.byte	0x1
- 5417 16f2 A401     		.value	0x1a4
- 5418 16f4 1F040000 		.long	0x41f
- 5419 16f8 03       		.byte	0x3
- 5420 16f9 91       		.byte	0x91
- 5421 16fa A07F     		.sleb128 -96
- 5422 16fc 27       		.uleb128 0x27
- 5423 16fd 6F757400 		.string	"out"
- 5424 1701 01       		.byte	0x1
- 5425 1702 A401     		.value	0x1a4
- 5426 1704 B4000000 		.long	0xb4
- 5427 1708 03       		.byte	0x3
- 5428 1709 91       		.byte	0x91
- 5429 170a 987F     		.sleb128 -104
- 5430 170c 26       		.uleb128 0x26
- 5431 170d 00000000 		.long	.LASF372
- 5432 1711 01       		.byte	0x1
- 5433 1712 A401     		.value	0x1a4
- 5434 1714 62000000 		.long	0x62
- 5435 1718 03       		.byte	0x3
- 5436 1719 91       		.byte	0x91
- 5437 171a 947F     		.sleb128 -108
- 5438 171c 24       		.uleb128 0x24
- 5439 171d 637600   		.string	"cv"
- 5440 1720 01       		.byte	0x1
- 5441 1721 A601     		.value	0x1a6
- 5442 1723 68050000 		.long	0x568
- 5443 1727 03       		.byte	0x3
- 5444 1728 91       		.byte	0x91
- 5445 1729 B07F     		.sleb128 -80
- 5446 172b 28       		.uleb128 0x28
- 5447 172c 00000000 		.long	.LASF360
- 5448 1730 01       		.byte	0x1
- 5449 1731 A701     		.value	0x1a7
- 5450 1733 68050000 		.long	0x568
- 5451 1737 02       		.byte	0x2
-
GAS LISTING /tmp/ccq6ONvw.s 			page 125
-
-
- 5452 1738 91       		.byte	0x91
- 5453 1739 40       		.sleb128 -64
- 5454 173a 24       		.uleb128 0x24
- 5455 173b 70696E00 		.string	"pin"
- 5456 173f 01       		.byte	0x1
- 5457 1740 A801     		.value	0x1a8
- 5458 1742 88150000 		.long	0x1588
- 5459 1746 02       		.byte	0x2
- 5460 1747 91       		.byte	0x91
- 5461 1748 50       		.sleb128 -48
- 5462 1749 28       		.uleb128 0x28
- 5463 174a 00000000 		.long	.LASF373
- 5464 174e 01       		.byte	0x1
- 5465 174f A901     		.value	0x1a9
- 5466 1751 93150000 		.long	0x1593
- 5467 1755 02       		.byte	0x2
- 5468 1756 91       		.byte	0x91
- 5469 1757 58       		.sleb128 -40
- 5470 1758 29       		.uleb128 0x29
- 5471 1759 00000000 		.quad	.LBB2
- 5471      00000000 
- 5472 1761 00000000 		.quad	.LBE2
- 5472      00000000 
- 5473 1769 28       		.uleb128 0x28
- 5474 176a 00000000 		.long	.LASF377
- 5475 176e 01       		.byte	0x1
- 5476 176f B101     		.value	0x1b1
- 5477 1771 68050000 		.long	0x568
- 5478 1775 02       		.byte	0x2
- 5479 1776 91       		.byte	0x91
- 5480 1777 60       		.sleb128 -32
- 5481 1778 00       		.byte	0x0
- 5482 1779 00       		.byte	0x0
- 5483 177a 25       		.uleb128 0x25
- 5484 177b 00000000 		.long	.LASF378
- 5485 177f 01       		.byte	0x1
- 5486 1780 CA01     		.value	0x1ca
- 5487 1782 01       		.byte	0x1
- 5488 1783 7B000000 		.long	0x7b
- 5489 1787 00000000 		.quad	.LFB527
- 5489      00000000 
- 5490 178f 00000000 		.quad	.LFE527
- 5490      00000000 
- 5491 1797 00000000 		.long	.LLST19
- 5492 179b 3C180000 		.long	0x183c
- 5493 179f 26       		.uleb128 0x26
- 5494 17a0 00000000 		.long	.LASF352
- 5495 17a4 01       		.byte	0x1
- 5496 17a5 CA01     		.value	0x1ca
- 5497 17a7 DE030000 		.long	0x3de
- 5498 17ab 03       		.byte	0x3
- 5499 17ac 91       		.byte	0x91
- 5500 17ad A87F     		.sleb128 -88
- 5501 17af 27       		.uleb128 0x27
- 5502 17b0 696E00   		.string	"in"
- 5503 17b3 01       		.byte	0x1
- 5504 17b4 CA01     		.value	0x1ca
-
GAS LISTING /tmp/ccq6ONvw.s 			page 126
-
-
- 5505 17b6 1F040000 		.long	0x41f
- 5506 17ba 03       		.byte	0x3
- 5507 17bb 91       		.byte	0x91
- 5508 17bc A07F     		.sleb128 -96
- 5509 17be 27       		.uleb128 0x27
- 5510 17bf 6F757400 		.string	"out"
- 5511 17c3 01       		.byte	0x1
- 5512 17c4 CA01     		.value	0x1ca
- 5513 17c6 B4000000 		.long	0xb4
- 5514 17ca 03       		.byte	0x3
- 5515 17cb 91       		.byte	0x91
- 5516 17cc 987F     		.sleb128 -104
- 5517 17ce 26       		.uleb128 0x26
- 5518 17cf 00000000 		.long	.LASF372
- 5519 17d3 01       		.byte	0x1
- 5520 17d4 CA01     		.value	0x1ca
- 5521 17d6 62000000 		.long	0x62
- 5522 17da 03       		.byte	0x3
- 5523 17db 91       		.byte	0x91
- 5524 17dc 947F     		.sleb128 -108
- 5525 17de 24       		.uleb128 0x24
- 5526 17df 637600   		.string	"cv"
- 5527 17e2 01       		.byte	0x1
- 5528 17e3 CD01     		.value	0x1cd
- 5529 17e5 68050000 		.long	0x568
- 5530 17e9 03       		.byte	0x3
- 5531 17ea 91       		.byte	0x91
- 5532 17eb B07F     		.sleb128 -80
- 5533 17ed 28       		.uleb128 0x28
- 5534 17ee 00000000 		.long	.LASF360
- 5535 17f2 01       		.byte	0x1
- 5536 17f3 CE01     		.value	0x1ce
- 5537 17f5 68050000 		.long	0x568
- 5538 17f9 02       		.byte	0x2
- 5539 17fa 91       		.byte	0x91
- 5540 17fb 40       		.sleb128 -64
- 5541 17fc 24       		.uleb128 0x24
- 5542 17fd 70696E00 		.string	"pin"
- 5543 1801 01       		.byte	0x1
- 5544 1802 CF01     		.value	0x1cf
- 5545 1804 88150000 		.long	0x1588
- 5546 1808 02       		.byte	0x2
- 5547 1809 91       		.byte	0x91
- 5548 180a 50       		.sleb128 -48
- 5549 180b 28       		.uleb128 0x28
- 5550 180c 00000000 		.long	.LASF373
- 5551 1810 01       		.byte	0x1
- 5552 1811 D001     		.value	0x1d0
- 5553 1813 93150000 		.long	0x1593
- 5554 1817 02       		.byte	0x2
- 5555 1818 91       		.byte	0x91
- 5556 1819 58       		.sleb128 -40
- 5557 181a 29       		.uleb128 0x29
- 5558 181b 00000000 		.quad	.LBB3
- 5558      00000000 
- 5559 1823 00000000 		.quad	.LBE3
- 5559      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 127
-
-
- 5560 182b 28       		.uleb128 0x28
- 5561 182c 00000000 		.long	.LASF377
- 5562 1830 01       		.byte	0x1
- 5563 1831 D801     		.value	0x1d8
- 5564 1833 68050000 		.long	0x568
- 5565 1837 02       		.byte	0x2
- 5566 1838 91       		.byte	0x91
- 5567 1839 60       		.sleb128 -32
- 5568 183a 00       		.byte	0x0
- 5569 183b 00       		.byte	0x0
- 5570 183c 25       		.uleb128 0x25
- 5571 183d 00000000 		.long	.LASF379
- 5572 1841 01       		.byte	0x1
- 5573 1842 EB01     		.value	0x1eb
- 5574 1844 01       		.byte	0x1
- 5575 1845 7B000000 		.long	0x7b
- 5576 1849 00000000 		.quad	.LFB528
- 5576      00000000 
- 5577 1851 00000000 		.quad	.LFE528
- 5577      00000000 
- 5578 1859 00000000 		.long	.LLST20
- 5579 185d FE180000 		.long	0x18fe
- 5580 1861 26       		.uleb128 0x26
- 5581 1862 00000000 		.long	.LASF352
- 5582 1866 01       		.byte	0x1
- 5583 1867 EB01     		.value	0x1eb
- 5584 1869 DE030000 		.long	0x3de
- 5585 186d 03       		.byte	0x3
- 5586 186e 91       		.byte	0x91
- 5587 186f A87F     		.sleb128 -88
- 5588 1871 27       		.uleb128 0x27
- 5589 1872 696E00   		.string	"in"
- 5590 1875 01       		.byte	0x1
- 5591 1876 EB01     		.value	0x1eb
- 5592 1878 1F040000 		.long	0x41f
- 5593 187c 03       		.byte	0x3
- 5594 187d 91       		.byte	0x91
- 5595 187e A07F     		.sleb128 -96
- 5596 1880 27       		.uleb128 0x27
- 5597 1881 6F757400 		.string	"out"
- 5598 1885 01       		.byte	0x1
- 5599 1886 EB01     		.value	0x1eb
- 5600 1888 B4000000 		.long	0xb4
- 5601 188c 03       		.byte	0x3
- 5602 188d 91       		.byte	0x91
- 5603 188e 987F     		.sleb128 -104
- 5604 1890 26       		.uleb128 0x26
- 5605 1891 00000000 		.long	.LASF372
- 5606 1895 01       		.byte	0x1
- 5607 1896 EB01     		.value	0x1eb
- 5608 1898 62000000 		.long	0x62
- 5609 189c 03       		.byte	0x3
- 5610 189d 91       		.byte	0x91
- 5611 189e 947F     		.sleb128 -108
- 5612 18a0 24       		.uleb128 0x24
- 5613 18a1 637600   		.string	"cv"
- 5614 18a4 01       		.byte	0x1
-
GAS LISTING /tmp/ccq6ONvw.s 			page 128
-
-
- 5615 18a5 EE01     		.value	0x1ee
- 5616 18a7 68050000 		.long	0x568
- 5617 18ab 03       		.byte	0x3
- 5618 18ac 91       		.byte	0x91
- 5619 18ad B07F     		.sleb128 -80
- 5620 18af 28       		.uleb128 0x28
- 5621 18b0 00000000 		.long	.LASF360
- 5622 18b4 01       		.byte	0x1
- 5623 18b5 EF01     		.value	0x1ef
- 5624 18b7 68050000 		.long	0x568
- 5625 18bb 02       		.byte	0x2
- 5626 18bc 91       		.byte	0x91
- 5627 18bd 40       		.sleb128 -64
- 5628 18be 24       		.uleb128 0x24
- 5629 18bf 70696E00 		.string	"pin"
- 5630 18c3 01       		.byte	0x1
- 5631 18c4 F001     		.value	0x1f0
- 5632 18c6 88150000 		.long	0x1588
- 5633 18ca 02       		.byte	0x2
- 5634 18cb 91       		.byte	0x91
- 5635 18cc 50       		.sleb128 -48
- 5636 18cd 28       		.uleb128 0x28
- 5637 18ce 00000000 		.long	.LASF373
- 5638 18d2 01       		.byte	0x1
- 5639 18d3 F101     		.value	0x1f1
- 5640 18d5 93150000 		.long	0x1593
- 5641 18d9 02       		.byte	0x2
- 5642 18da 91       		.byte	0x91
- 5643 18db 58       		.sleb128 -40
- 5644 18dc 29       		.uleb128 0x29
- 5645 18dd 00000000 		.quad	.LBB4
- 5645      00000000 
- 5646 18e5 00000000 		.quad	.LBE4
- 5646      00000000 
- 5647 18ed 28       		.uleb128 0x28
- 5648 18ee 00000000 		.long	.LASF377
- 5649 18f2 01       		.byte	0x1
- 5650 18f3 F901     		.value	0x1f9
- 5651 18f5 68050000 		.long	0x568
- 5652 18f9 02       		.byte	0x2
- 5653 18fa 91       		.byte	0x91
- 5654 18fb 60       		.sleb128 -32
- 5655 18fc 00       		.byte	0x0
- 5656 18fd 00       		.byte	0x0
- 5657 18fe 25       		.uleb128 0x25
- 5658 18ff 00000000 		.long	.LASF380
- 5659 1903 01       		.byte	0x1
- 5660 1904 1002     		.value	0x210
- 5661 1906 01       		.byte	0x1
- 5662 1907 7B000000 		.long	0x7b
- 5663 190b 00000000 		.quad	.LFB529
- 5663      00000000 
- 5664 1913 00000000 		.quad	.LFE529
- 5664      00000000 
- 5665 191b 00000000 		.long	.LLST21
- 5666 191f 9E190000 		.long	0x199e
- 5667 1923 26       		.uleb128 0x26
-
GAS LISTING /tmp/ccq6ONvw.s 			page 129
-
-
- 5668 1924 00000000 		.long	.LASF352
- 5669 1928 01       		.byte	0x1
- 5670 1929 1002     		.value	0x210
- 5671 192b DE030000 		.long	0x3de
- 5672 192f 03       		.byte	0x3
- 5673 1930 91       		.byte	0x91
- 5674 1931 B87F     		.sleb128 -72
- 5675 1933 27       		.uleb128 0x27
- 5676 1934 696E00   		.string	"in"
- 5677 1937 01       		.byte	0x1
- 5678 1938 1002     		.value	0x210
- 5679 193a 1F040000 		.long	0x41f
- 5680 193e 03       		.byte	0x3
- 5681 193f 91       		.byte	0x91
- 5682 1940 B07F     		.sleb128 -80
- 5683 1942 27       		.uleb128 0x27
- 5684 1943 6F757400 		.string	"out"
- 5685 1947 01       		.byte	0x1
- 5686 1948 1002     		.value	0x210
- 5687 194a B4000000 		.long	0xb4
- 5688 194e 03       		.byte	0x3
- 5689 194f 91       		.byte	0x91
- 5690 1950 A87F     		.sleb128 -88
- 5691 1952 26       		.uleb128 0x26
- 5692 1953 00000000 		.long	.LASF372
- 5693 1957 01       		.byte	0x1
- 5694 1958 1002     		.value	0x210
- 5695 195a 62000000 		.long	0x62
- 5696 195e 03       		.byte	0x3
- 5697 195f 91       		.byte	0x91
- 5698 1960 A47F     		.sleb128 -92
- 5699 1962 24       		.uleb128 0x24
- 5700 1963 637600   		.string	"cv"
- 5701 1966 01       		.byte	0x1
- 5702 1967 1302     		.value	0x213
- 5703 1969 68050000 		.long	0x568
- 5704 196d 02       		.byte	0x2
- 5705 196e 91       		.byte	0x91
- 5706 196f 40       		.sleb128 -64
- 5707 1970 28       		.uleb128 0x28
- 5708 1971 00000000 		.long	.LASF360
- 5709 1975 01       		.byte	0x1
- 5710 1976 1402     		.value	0x214
- 5711 1978 68050000 		.long	0x568
- 5712 197c 02       		.byte	0x2
- 5713 197d 91       		.byte	0x91
- 5714 197e 50       		.sleb128 -48
- 5715 197f 24       		.uleb128 0x24
- 5716 1980 70696E00 		.string	"pin"
- 5717 1984 01       		.byte	0x1
- 5718 1985 1502     		.value	0x215
- 5719 1987 88150000 		.long	0x1588
- 5720 198b 02       		.byte	0x2
- 5721 198c 91       		.byte	0x91
- 5722 198d 60       		.sleb128 -32
- 5723 198e 28       		.uleb128 0x28
- 5724 198f 00000000 		.long	.LASF373
-
GAS LISTING /tmp/ccq6ONvw.s 			page 130
-
-
- 5725 1993 01       		.byte	0x1
- 5726 1994 1602     		.value	0x216
- 5727 1996 93150000 		.long	0x1593
- 5728 199a 02       		.byte	0x2
- 5729 199b 91       		.byte	0x91
- 5730 199c 68       		.sleb128 -24
- 5731 199d 00       		.byte	0x0
- 5732 199e 25       		.uleb128 0x25
- 5733 199f 00000000 		.long	.LASF381
- 5734 19a3 01       		.byte	0x1
- 5735 19a4 2E02     		.value	0x22e
- 5736 19a6 01       		.byte	0x1
- 5737 19a7 7B000000 		.long	0x7b
- 5738 19ab 00000000 		.quad	.LFB530
- 5738      00000000 
- 5739 19b3 00000000 		.quad	.LFE530
- 5739      00000000 
- 5740 19bb 00000000 		.long	.LLST22
- 5741 19bf 3E1A0000 		.long	0x1a3e
- 5742 19c3 26       		.uleb128 0x26
- 5743 19c4 00000000 		.long	.LASF352
- 5744 19c8 01       		.byte	0x1
- 5745 19c9 2E02     		.value	0x22e
- 5746 19cb DE030000 		.long	0x3de
- 5747 19cf 03       		.byte	0x3
- 5748 19d0 91       		.byte	0x91
- 5749 19d1 B87F     		.sleb128 -72
- 5750 19d3 27       		.uleb128 0x27
- 5751 19d4 696E00   		.string	"in"
- 5752 19d7 01       		.byte	0x1
- 5753 19d8 2E02     		.value	0x22e
- 5754 19da 1F040000 		.long	0x41f
- 5755 19de 03       		.byte	0x3
- 5756 19df 91       		.byte	0x91
- 5757 19e0 B07F     		.sleb128 -80
- 5758 19e2 27       		.uleb128 0x27
- 5759 19e3 6F757400 		.string	"out"
- 5760 19e7 01       		.byte	0x1
- 5761 19e8 2E02     		.value	0x22e
- 5762 19ea B4000000 		.long	0xb4
- 5763 19ee 03       		.byte	0x3
- 5764 19ef 91       		.byte	0x91
- 5765 19f0 A87F     		.sleb128 -88
- 5766 19f2 26       		.uleb128 0x26
- 5767 19f3 00000000 		.long	.LASF372
- 5768 19f7 01       		.byte	0x1
- 5769 19f8 2E02     		.value	0x22e
- 5770 19fa 62000000 		.long	0x62
- 5771 19fe 03       		.byte	0x3
- 5772 19ff 91       		.byte	0x91
- 5773 1a00 A47F     		.sleb128 -92
- 5774 1a02 24       		.uleb128 0x24
- 5775 1a03 637600   		.string	"cv"
- 5776 1a06 01       		.byte	0x1
- 5777 1a07 3102     		.value	0x231
- 5778 1a09 68050000 		.long	0x568
- 5779 1a0d 02       		.byte	0x2
-
GAS LISTING /tmp/ccq6ONvw.s 			page 131
-
-
- 5780 1a0e 91       		.byte	0x91
- 5781 1a0f 40       		.sleb128 -64
- 5782 1a10 28       		.uleb128 0x28
- 5783 1a11 00000000 		.long	.LASF360
- 5784 1a15 01       		.byte	0x1
- 5785 1a16 3202     		.value	0x232
- 5786 1a18 68050000 		.long	0x568
- 5787 1a1c 02       		.byte	0x2
- 5788 1a1d 91       		.byte	0x91
- 5789 1a1e 50       		.sleb128 -48
- 5790 1a1f 24       		.uleb128 0x24
- 5791 1a20 70696E00 		.string	"pin"
- 5792 1a24 01       		.byte	0x1
- 5793 1a25 3302     		.value	0x233
- 5794 1a27 88150000 		.long	0x1588
- 5795 1a2b 02       		.byte	0x2
- 5796 1a2c 91       		.byte	0x91
- 5797 1a2d 60       		.sleb128 -32
- 5798 1a2e 28       		.uleb128 0x28
- 5799 1a2f 00000000 		.long	.LASF373
- 5800 1a33 01       		.byte	0x1
- 5801 1a34 3402     		.value	0x234
- 5802 1a36 93150000 		.long	0x1593
- 5803 1a3a 02       		.byte	0x2
- 5804 1a3b 91       		.byte	0x91
- 5805 1a3c 68       		.sleb128 -24
- 5806 1a3d 00       		.byte	0x0
- 5807 1a3e 25       		.uleb128 0x25
- 5808 1a3f 00000000 		.long	.LASF382
- 5809 1a43 01       		.byte	0x1
- 5810 1a44 5102     		.value	0x251
- 5811 1a46 01       		.byte	0x1
- 5812 1a47 7B000000 		.long	0x7b
- 5813 1a4b 00000000 		.quad	.LFB531
- 5813      00000000 
- 5814 1a53 00000000 		.quad	.LFE531
- 5814      00000000 
- 5815 1a5b 00000000 		.long	.LLST23
- 5816 1a5f DE1A0000 		.long	0x1ade
- 5817 1a63 26       		.uleb128 0x26
- 5818 1a64 00000000 		.long	.LASF352
- 5819 1a68 01       		.byte	0x1
- 5820 1a69 5102     		.value	0x251
- 5821 1a6b DE030000 		.long	0x3de
- 5822 1a6f 03       		.byte	0x3
- 5823 1a70 91       		.byte	0x91
- 5824 1a71 B87F     		.sleb128 -72
- 5825 1a73 27       		.uleb128 0x27
- 5826 1a74 696E00   		.string	"in"
- 5827 1a77 01       		.byte	0x1
- 5828 1a78 5102     		.value	0x251
- 5829 1a7a 1F040000 		.long	0x41f
- 5830 1a7e 03       		.byte	0x3
- 5831 1a7f 91       		.byte	0x91
- 5832 1a80 B07F     		.sleb128 -80
- 5833 1a82 27       		.uleb128 0x27
- 5834 1a83 6F757400 		.string	"out"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 132
-
-
- 5835 1a87 01       		.byte	0x1
- 5836 1a88 5102     		.value	0x251
- 5837 1a8a B4000000 		.long	0xb4
- 5838 1a8e 03       		.byte	0x3
- 5839 1a8f 91       		.byte	0x91
- 5840 1a90 A87F     		.sleb128 -88
- 5841 1a92 26       		.uleb128 0x26
- 5842 1a93 00000000 		.long	.LASF372
- 5843 1a97 01       		.byte	0x1
- 5844 1a98 5102     		.value	0x251
- 5845 1a9a 62000000 		.long	0x62
- 5846 1a9e 03       		.byte	0x3
- 5847 1a9f 91       		.byte	0x91
- 5848 1aa0 A47F     		.sleb128 -92
- 5849 1aa2 24       		.uleb128 0x24
- 5850 1aa3 637600   		.string	"cv"
- 5851 1aa6 01       		.byte	0x1
- 5852 1aa7 5402     		.value	0x254
- 5853 1aa9 68050000 		.long	0x568
- 5854 1aad 02       		.byte	0x2
- 5855 1aae 91       		.byte	0x91
- 5856 1aaf 40       		.sleb128 -64
- 5857 1ab0 28       		.uleb128 0x28
- 5858 1ab1 00000000 		.long	.LASF360
- 5859 1ab5 01       		.byte	0x1
- 5860 1ab6 5502     		.value	0x255
- 5861 1ab8 68050000 		.long	0x568
- 5862 1abc 02       		.byte	0x2
- 5863 1abd 91       		.byte	0x91
- 5864 1abe 50       		.sleb128 -48
- 5865 1abf 24       		.uleb128 0x24
- 5866 1ac0 70696E00 		.string	"pin"
- 5867 1ac4 01       		.byte	0x1
- 5868 1ac5 5602     		.value	0x256
- 5869 1ac7 88150000 		.long	0x1588
- 5870 1acb 02       		.byte	0x2
- 5871 1acc 91       		.byte	0x91
- 5872 1acd 60       		.sleb128 -32
- 5873 1ace 28       		.uleb128 0x28
- 5874 1acf 00000000 		.long	.LASF373
- 5875 1ad3 01       		.byte	0x1
- 5876 1ad4 5702     		.value	0x257
- 5877 1ad6 93150000 		.long	0x1593
- 5878 1ada 02       		.byte	0x2
- 5879 1adb 91       		.byte	0x91
- 5880 1adc 68       		.sleb128 -24
- 5881 1add 00       		.byte	0x0
- 5882 1ade 25       		.uleb128 0x25
- 5883 1adf 00000000 		.long	.LASF383
- 5884 1ae3 01       		.byte	0x1
- 5885 1ae4 6F02     		.value	0x26f
- 5886 1ae6 01       		.byte	0x1
- 5887 1ae7 7B000000 		.long	0x7b
- 5888 1aeb 00000000 		.quad	.LFB532
- 5888      00000000 
- 5889 1af3 00000000 		.quad	.LFE532
- 5889      00000000 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 133
-
-
- 5890 1afb 00000000 		.long	.LLST24
- 5891 1aff 3F1B0000 		.long	0x1b3f
- 5892 1b03 26       		.uleb128 0x26
- 5893 1b04 00000000 		.long	.LASF352
- 5894 1b08 01       		.byte	0x1
- 5895 1b09 6F02     		.value	0x26f
- 5896 1b0b DE030000 		.long	0x3de
- 5897 1b0f 02       		.byte	0x2
- 5898 1b10 91       		.byte	0x91
- 5899 1b11 58       		.sleb128 -40
- 5900 1b12 27       		.uleb128 0x27
- 5901 1b13 696E00   		.string	"in"
- 5902 1b16 01       		.byte	0x1
- 5903 1b17 6F02     		.value	0x26f
- 5904 1b19 1F040000 		.long	0x41f
- 5905 1b1d 02       		.byte	0x2
- 5906 1b1e 91       		.byte	0x91
- 5907 1b1f 50       		.sleb128 -48
- 5908 1b20 27       		.uleb128 0x27
- 5909 1b21 6F757400 		.string	"out"
- 5910 1b25 01       		.byte	0x1
- 5911 1b26 6F02     		.value	0x26f
- 5912 1b28 B4000000 		.long	0xb4
- 5913 1b2c 02       		.byte	0x2
- 5914 1b2d 91       		.byte	0x91
- 5915 1b2e 48       		.sleb128 -56
- 5916 1b2f 26       		.uleb128 0x26
- 5917 1b30 00000000 		.long	.LASF372
- 5918 1b34 01       		.byte	0x1
- 5919 1b35 6F02     		.value	0x26f
- 5920 1b37 62000000 		.long	0x62
- 5921 1b3b 02       		.byte	0x2
- 5922 1b3c 91       		.byte	0x91
- 5923 1b3d 44       		.sleb128 -60
- 5924 1b3e 00       		.byte	0x0
- 5925 1b3f 25       		.uleb128 0x25
- 5926 1b40 00000000 		.long	.LASF384
- 5927 1b44 01       		.byte	0x1
- 5928 1b45 7D02     		.value	0x27d
- 5929 1b47 01       		.byte	0x1
- 5930 1b48 7B000000 		.long	0x7b
- 5931 1b4c 00000000 		.quad	.LFB533
- 5931      00000000 
- 5932 1b54 00000000 		.quad	.LFE533
- 5932      00000000 
- 5933 1b5c 00000000 		.long	.LLST25
- 5934 1b60 C81B0000 		.long	0x1bc8
- 5935 1b64 26       		.uleb128 0x26
- 5936 1b65 00000000 		.long	.LASF352
- 5937 1b69 01       		.byte	0x1
- 5938 1b6a 7D02     		.value	0x27d
- 5939 1b6c DE030000 		.long	0x3de
- 5940 1b70 02       		.byte	0x2
- 5941 1b71 91       		.byte	0x91
- 5942 1b72 68       		.sleb128 -24
- 5943 1b73 27       		.uleb128 0x27
- 5944 1b74 696E00   		.string	"in"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 134
-
-
- 5945 1b77 01       		.byte	0x1
- 5946 1b78 7D02     		.value	0x27d
- 5947 1b7a 1F040000 		.long	0x41f
- 5948 1b7e 02       		.byte	0x2
- 5949 1b7f 91       		.byte	0x91
- 5950 1b80 60       		.sleb128 -32
- 5951 1b81 27       		.uleb128 0x27
- 5952 1b82 6F757400 		.string	"out"
- 5953 1b86 01       		.byte	0x1
- 5954 1b87 7D02     		.value	0x27d
- 5955 1b89 B4000000 		.long	0xb4
- 5956 1b8d 02       		.byte	0x2
- 5957 1b8e 91       		.byte	0x91
- 5958 1b8f 58       		.sleb128 -40
- 5959 1b90 26       		.uleb128 0x26
- 5960 1b91 00000000 		.long	.LASF372
- 5961 1b95 01       		.byte	0x1
- 5962 1b96 7D02     		.value	0x27d
- 5963 1b98 62000000 		.long	0x62
- 5964 1b9c 02       		.byte	0x2
- 5965 1b9d 91       		.byte	0x91
- 5966 1b9e 54       		.sleb128 -44
- 5967 1b9f 23       		.uleb128 0x23
- 5968 1ba0 00000000 		.long	.LASF356
- 5969 1ba4 D81B0000 		.long	0x1bd8
- 5970 1ba8 01       		.byte	0x1
- 5971 1ba9 09       		.byte	0x9
- 5972 1baa 03       		.byte	0x3
- 5973 1bab 00000000 		.quad	__PRETTY_FUNCTION__.6943
- 5973      00000000 
- 5974 1bb3 23       		.uleb128 0x23
- 5975 1bb4 00000000 		.long	.LASF357
- 5976 1bb8 DD1B0000 		.long	0x1bdd
- 5977 1bbc 01       		.byte	0x1
- 5978 1bbd 09       		.byte	0x9
- 5979 1bbe 03       		.byte	0x3
- 5980 1bbf 00000000 		.quad	__func__.6944
- 5980      00000000 
- 5981 1bc7 00       		.byte	0x0
- 5982 1bc8 16       		.uleb128 0x16
- 5983 1bc9 C1000000 		.long	0xc1
- 5984 1bcd D81B0000 		.long	0x1bd8
- 5985 1bd1 17       		.uleb128 0x17
- 5986 1bd2 B1000000 		.long	0xb1
- 5987 1bd6 14       		.byte	0x14
- 5988 1bd7 00       		.byte	0x0
- 5989 1bd8 0B       		.uleb128 0xb
- 5990 1bd9 C81B0000 		.long	0x1bc8
- 5991 1bdd 0B       		.uleb128 0xb
- 5992 1bde C81B0000 		.long	0x1bc8
- 5993 1be2 25       		.uleb128 0x25
- 5994 1be3 00000000 		.long	.LASF385
- 5995 1be7 01       		.byte	0x1
- 5996 1be8 8402     		.value	0x284
- 5997 1bea 01       		.byte	0x1
- 5998 1beb 7B000000 		.long	0x7b
- 5999 1bef 00000000 		.quad	.LFB534
-
GAS LISTING /tmp/ccq6ONvw.s 			page 135
-
-
- 5999      00000000 
- 6000 1bf7 00000000 		.quad	.LFE534
- 6000      00000000 
- 6001 1bff 00000000 		.long	.LLST26
- 6002 1c03 6B1C0000 		.long	0x1c6b
- 6003 1c07 26       		.uleb128 0x26
- 6004 1c08 00000000 		.long	.LASF352
- 6005 1c0c 01       		.byte	0x1
- 6006 1c0d 8402     		.value	0x284
- 6007 1c0f DE030000 		.long	0x3de
- 6008 1c13 02       		.byte	0x2
- 6009 1c14 91       		.byte	0x91
- 6010 1c15 68       		.sleb128 -24
- 6011 1c16 27       		.uleb128 0x27
- 6012 1c17 696E00   		.string	"in"
- 6013 1c1a 01       		.byte	0x1
- 6014 1c1b 8402     		.value	0x284
- 6015 1c1d 1F040000 		.long	0x41f
- 6016 1c21 02       		.byte	0x2
- 6017 1c22 91       		.byte	0x91
- 6018 1c23 60       		.sleb128 -32
- 6019 1c24 27       		.uleb128 0x27
- 6020 1c25 6F757400 		.string	"out"
- 6021 1c29 01       		.byte	0x1
- 6022 1c2a 8402     		.value	0x284
- 6023 1c2c B4000000 		.long	0xb4
- 6024 1c30 02       		.byte	0x2
- 6025 1c31 91       		.byte	0x91
- 6026 1c32 58       		.sleb128 -40
- 6027 1c33 26       		.uleb128 0x26
- 6028 1c34 00000000 		.long	.LASF372
- 6029 1c38 01       		.byte	0x1
- 6030 1c39 8402     		.value	0x284
- 6031 1c3b 62000000 		.long	0x62
- 6032 1c3f 02       		.byte	0x2
- 6033 1c40 91       		.byte	0x91
- 6034 1c41 54       		.sleb128 -44
- 6035 1c42 23       		.uleb128 0x23
- 6036 1c43 00000000 		.long	.LASF356
- 6037 1c47 6B1C0000 		.long	0x1c6b
- 6038 1c4b 01       		.byte	0x1
- 6039 1c4c 09       		.byte	0x9
- 6040 1c4d 03       		.byte	0x3
- 6041 1c4e 00000000 		.quad	__PRETTY_FUNCTION__.6953
- 6041      00000000 
- 6042 1c56 23       		.uleb128 0x23
- 6043 1c57 00000000 		.long	.LASF357
- 6044 1c5b 701C0000 		.long	0x1c70
- 6045 1c5f 01       		.byte	0x1
- 6046 1c60 09       		.byte	0x9
- 6047 1c61 03       		.byte	0x3
- 6048 1c62 00000000 		.quad	__func__.6954
- 6048      00000000 
- 6049 1c6a 00       		.byte	0x0
- 6050 1c6b 0B       		.uleb128 0xb
- 6051 1c6c C81B0000 		.long	0x1bc8
- 6052 1c70 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccq6ONvw.s 			page 136
-
-
- 6053 1c71 C81B0000 		.long	0x1bc8
- 6054 1c75 25       		.uleb128 0x25
- 6055 1c76 00000000 		.long	.LASF386
- 6056 1c7a 01       		.byte	0x1
- 6057 1c7b A702     		.value	0x2a7
- 6058 1c7d 01       		.byte	0x1
- 6059 1c7e 7B000000 		.long	0x7b
- 6060 1c82 00000000 		.quad	.LFB535
- 6060      00000000 
- 6061 1c8a 00000000 		.quad	.LFE535
- 6061      00000000 
- 6062 1c92 00000000 		.long	.LLST27
- 6063 1c96 F01C0000 		.long	0x1cf0
- 6064 1c9a 26       		.uleb128 0x26
- 6065 1c9b 00000000 		.long	.LASF387
- 6066 1c9f 01       		.byte	0x1
- 6067 1ca0 A702     		.value	0x2a7
- 6068 1ca2 F01C0000 		.long	0x1cf0
- 6069 1ca6 02       		.byte	0x2
- 6070 1ca7 91       		.byte	0x91
- 6071 1ca8 58       		.sleb128 -40
- 6072 1ca9 26       		.uleb128 0x26
- 6073 1caa 00000000 		.long	.LASF46
- 6074 1cae 01       		.byte	0x1
- 6075 1caf A802     		.value	0x2a8
- 6076 1cb1 F61C0000 		.long	0x1cf6
- 6077 1cb5 02       		.byte	0x2
- 6078 1cb6 91       		.byte	0x91
- 6079 1cb7 50       		.sleb128 -48
- 6080 1cb8 24       		.uleb128 0x24
- 6081 1cb9 6F626A00 		.string	"obj"
- 6082 1cbd 01       		.byte	0x1
- 6083 1cbe AA02     		.value	0x2aa
- 6084 1cc0 011D0000 		.long	0x1d01
- 6085 1cc4 02       		.byte	0x2
- 6086 1cc5 91       		.byte	0x91
- 6087 1cc6 68       		.sleb128 -24
- 6088 1cc7 23       		.uleb128 0x23
- 6089 1cc8 00000000 		.long	.LASF356
- 6090 1ccc 171D0000 		.long	0x1d17
- 6091 1cd0 01       		.byte	0x1
- 6092 1cd1 09       		.byte	0x9
- 6093 1cd2 03       		.byte	0x3
- 6094 1cd3 00000000 		.quad	__PRETTY_FUNCTION__.6963
- 6094      00000000 
- 6095 1cdb 23       		.uleb128 0x23
- 6096 1cdc 00000000 		.long	.LASF357
- 6097 1ce0 1C1D0000 		.long	0x1d1c
- 6098 1ce4 01       		.byte	0x1
- 6099 1ce5 09       		.byte	0x9
- 6100 1ce6 03       		.byte	0x3
- 6101 1ce7 00000000 		.quad	__func__.6964
- 6101      00000000 
- 6102 1cef 00       		.byte	0x0
- 6103 1cf0 0A       		.uleb128 0xa
- 6104 1cf1 08       		.byte	0x8
- 6105 1cf2 DE030000 		.long	0x3de
-
GAS LISTING /tmp/ccq6ONvw.s 			page 137
-
-
- 6106 1cf6 0A       		.uleb128 0xa
- 6107 1cf7 08       		.byte	0x8
- 6108 1cf8 FC1C0000 		.long	0x1cfc
- 6109 1cfc 0B       		.uleb128 0xb
- 6110 1cfd C3080000 		.long	0x8c3
- 6111 1d01 0A       		.uleb128 0xa
- 6112 1d02 08       		.byte	0x8
- 6113 1d03 F9070000 		.long	0x7f9
- 6114 1d07 16       		.uleb128 0x16
- 6115 1d08 C1000000 		.long	0xc1
- 6116 1d0c 171D0000 		.long	0x1d17
- 6117 1d10 17       		.uleb128 0x17
- 6118 1d11 B1000000 		.long	0xb1
- 6119 1d15 12       		.byte	0x12
- 6120 1d16 00       		.byte	0x0
- 6121 1d17 0B       		.uleb128 0xb
- 6122 1d18 071D0000 		.long	0x1d07
- 6123 1d1c 0B       		.uleb128 0xb
- 6124 1d1d 071D0000 		.long	0x1d07
- 6125 1d21 25       		.uleb128 0x25
- 6126 1d22 00000000 		.long	.LASF388
- 6127 1d26 01       		.byte	0x1
- 6128 1d27 B402     		.value	0x2b4
- 6129 1d29 01       		.byte	0x1
- 6130 1d2a 7B000000 		.long	0x7b
- 6131 1d2e 00000000 		.quad	.LFB536
- 6131      00000000 
- 6132 1d36 00000000 		.quad	.LFE536
- 6132      00000000 
- 6133 1d3e 00000000 		.long	.LLST28
- 6134 1d42 831D0000 		.long	0x1d83
- 6135 1d46 26       		.uleb128 0x26
- 6136 1d47 00000000 		.long	.LASF352
- 6137 1d4b 01       		.byte	0x1
- 6138 1d4c B402     		.value	0x2b4
- 6139 1d4e DE030000 		.long	0x3de
- 6140 1d52 02       		.byte	0x2
- 6141 1d53 91       		.byte	0x91
- 6142 1d54 58       		.sleb128 -40
- 6143 1d55 26       		.uleb128 0x26
- 6144 1d56 00000000 		.long	.LASF46
- 6145 1d5a 01       		.byte	0x1
- 6146 1d5b B502     		.value	0x2b5
- 6147 1d5d F61C0000 		.long	0x1cf6
- 6148 1d61 02       		.byte	0x2
- 6149 1d62 91       		.byte	0x91
- 6150 1d63 50       		.sleb128 -48
- 6151 1d64 24       		.uleb128 0x24
- 6152 1d65 64616400 		.string	"dad"
- 6153 1d69 01       		.byte	0x1
- 6154 1d6a B702     		.value	0x2b7
- 6155 1d6c 831D0000 		.long	0x1d83
- 6156 1d70 02       		.byte	0x2
- 6157 1d71 91       		.byte	0x91
- 6158 1d72 60       		.sleb128 -32
- 6159 1d73 24       		.uleb128 0x24
- 6160 1d74 61657300 		.string	"aes"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 138
-
-
- 6161 1d78 01       		.byte	0x1
- 6162 1d79 B802     		.value	0x2b8
- 6163 1d7b 011D0000 		.long	0x1d01
- 6164 1d7f 02       		.byte	0x2
- 6165 1d80 91       		.byte	0x91
- 6166 1d81 68       		.sleb128 -24
- 6167 1d82 00       		.byte	0x0
- 6168 1d83 0A       		.uleb128 0xa
- 6169 1d84 08       		.byte	0x8
- 6170 1d85 54010000 		.long	0x154
- 6171 1d89 25       		.uleb128 0x25
- 6172 1d8a 00000000 		.long	.LASF389
- 6173 1d8e 01       		.byte	0x1
- 6174 1d8f CA02     		.value	0x2ca
- 6175 1d91 01       		.byte	0x1
- 6176 1d92 7B000000 		.long	0x7b
- 6177 1d96 00000000 		.quad	.LFB537
- 6177      00000000 
- 6178 1d9e 00000000 		.quad	.LFE537
- 6178      00000000 
- 6179 1da6 00000000 		.long	.LLST29
- 6180 1daa 041E0000 		.long	0x1e04
- 6181 1dae 26       		.uleb128 0x26
- 6182 1daf 00000000 		.long	.LASF387
- 6183 1db3 01       		.byte	0x1
- 6184 1db4 CA02     		.value	0x2ca
- 6185 1db6 F01C0000 		.long	0x1cf0
- 6186 1dba 02       		.byte	0x2
- 6187 1dbb 91       		.byte	0x91
- 6188 1dbc 58       		.sleb128 -40
- 6189 1dbd 26       		.uleb128 0x26
- 6190 1dbe 00000000 		.long	.LASF46
- 6191 1dc2 01       		.byte	0x1
- 6192 1dc3 CB02     		.value	0x2cb
- 6193 1dc5 F61C0000 		.long	0x1cf6
- 6194 1dc9 02       		.byte	0x2
- 6195 1dca 91       		.byte	0x91
- 6196 1dcb 50       		.sleb128 -48
- 6197 1dcc 24       		.uleb128 0x24
- 6198 1dcd 6F626A00 		.string	"obj"
- 6199 1dd1 01       		.byte	0x1
- 6200 1dd2 CD02     		.value	0x2cd
- 6201 1dd4 041E0000 		.long	0x1e04
- 6202 1dd8 02       		.byte	0x2
- 6203 1dd9 91       		.byte	0x91
- 6204 1dda 68       		.sleb128 -24
- 6205 1ddb 23       		.uleb128 0x23
- 6206 1ddc 00000000 		.long	.LASF356
- 6207 1de0 1A1E0000 		.long	0x1e1a
- 6208 1de4 01       		.byte	0x1
- 6209 1de5 09       		.byte	0x9
- 6210 1de6 03       		.byte	0x3
- 6211 1de7 00000000 		.quad	__PRETTY_FUNCTION__.6990
- 6211      00000000 
- 6212 1def 23       		.uleb128 0x23
- 6213 1df0 00000000 		.long	.LASF357
- 6214 1df4 1F1E0000 		.long	0x1e1f
-
GAS LISTING /tmp/ccq6ONvw.s 			page 139
-
-
- 6215 1df8 01       		.byte	0x1
- 6216 1df9 09       		.byte	0x9
- 6217 1dfa 03       		.byte	0x3
- 6218 1dfb 00000000 		.quad	__func__.6991
- 6218      00000000 
- 6219 1e03 00       		.byte	0x0
- 6220 1e04 0A       		.uleb128 0xa
- 6221 1e05 08       		.byte	0x8
- 6222 1e06 5B080000 		.long	0x85b
- 6223 1e0a 16       		.uleb128 0x16
- 6224 1e0b C1000000 		.long	0xc1
- 6225 1e0f 1A1E0000 		.long	0x1e1a
- 6226 1e13 17       		.uleb128 0x17
- 6227 1e14 B1000000 		.long	0xb1
- 6228 1e18 13       		.byte	0x13
- 6229 1e19 00       		.byte	0x0
- 6230 1e1a 0B       		.uleb128 0xb
- 6231 1e1b 0A1E0000 		.long	0x1e0a
- 6232 1e1f 0B       		.uleb128 0xb
- 6233 1e20 0A1E0000 		.long	0x1e0a
- 6234 1e24 25       		.uleb128 0x25
- 6235 1e25 00000000 		.long	.LASF390
- 6236 1e29 01       		.byte	0x1
- 6237 1e2a D702     		.value	0x2d7
- 6238 1e2c 01       		.byte	0x1
- 6239 1e2d 7B000000 		.long	0x7b
- 6240 1e31 00000000 		.quad	.LFB538
- 6240      00000000 
- 6241 1e39 00000000 		.quad	.LFE538
- 6241      00000000 
- 6242 1e41 00000000 		.long	.LLST30
- 6243 1e45 861E0000 		.long	0x1e86
- 6244 1e49 26       		.uleb128 0x26
- 6245 1e4a 00000000 		.long	.LASF352
- 6246 1e4e 01       		.byte	0x1
- 6247 1e4f D702     		.value	0x2d7
- 6248 1e51 DE030000 		.long	0x3de
- 6249 1e55 02       		.byte	0x2
- 6250 1e56 91       		.byte	0x91
- 6251 1e57 58       		.sleb128 -40
- 6252 1e58 26       		.uleb128 0x26
- 6253 1e59 00000000 		.long	.LASF46
- 6254 1e5d 01       		.byte	0x1
- 6255 1e5e D802     		.value	0x2d8
- 6256 1e60 F61C0000 		.long	0x1cf6
- 6257 1e64 02       		.byte	0x2
- 6258 1e65 91       		.byte	0x91
- 6259 1e66 50       		.sleb128 -48
- 6260 1e67 24       		.uleb128 0x24
- 6261 1e68 64616400 		.string	"dad"
- 6262 1e6c 01       		.byte	0x1
- 6263 1e6d DA02     		.value	0x2da
- 6264 1e6f 831D0000 		.long	0x1d83
- 6265 1e73 02       		.byte	0x2
- 6266 1e74 91       		.byte	0x91
- 6267 1e75 60       		.sleb128 -32
- 6268 1e76 28       		.uleb128 0x28
-
GAS LISTING /tmp/ccq6ONvw.s 			page 140
-
-
- 6269 1e77 00000000 		.long	.LASF391
- 6270 1e7b 01       		.byte	0x1
- 6271 1e7c DB02     		.value	0x2db
- 6272 1e7e 041E0000 		.long	0x1e04
- 6273 1e82 02       		.byte	0x2
- 6274 1e83 91       		.byte	0x91
- 6275 1e84 68       		.sleb128 -24
- 6276 1e85 00       		.byte	0x0
- 6277 1e86 2A       		.uleb128 0x2a
- 6278 1e87 01       		.byte	0x1
- 6279 1e88 00000000 		.long	.LASF399
- 6280 1e8c 01       		.byte	0x1
- 6281 1e8d EC02     		.value	0x2ec
- 6282 1e8f 01       		.byte	0x1
- 6283 1e90 7B000000 		.long	0x7b
- 6284 1e94 00000000 		.quad	.LFB539
- 6284      00000000 
- 6285 1e9c 00000000 		.quad	.LFE539
- 6285      00000000 
- 6286 1ea4 00000000 		.long	.LLST31
- 6287 1ea8 311F0000 		.long	0x1f31
- 6288 1eac 26       		.uleb128 0x26
- 6289 1ead 00000000 		.long	.LASF392
- 6290 1eb1 01       		.byte	0x1
- 6291 1eb2 EC02     		.value	0x2ec
- 6292 1eb4 311F0000 		.long	0x1f31
- 6293 1eb8 02       		.byte	0x2
- 6294 1eb9 91       		.byte	0x91
- 6295 1eba 48       		.sleb128 -56
- 6296 1ebb 26       		.uleb128 0x26
- 6297 1ebc 00000000 		.long	.LASF393
- 6298 1ec0 01       		.byte	0x1
- 6299 1ec1 EC02     		.value	0x2ec
- 6300 1ec3 9D080000 		.long	0x89d
- 6301 1ec7 02       		.byte	0x2
- 6302 1ec8 91       		.byte	0x91
- 6303 1ec9 44       		.sleb128 -60
- 6304 1eca 24       		.uleb128 0x24
- 6305 1ecb 726300   		.string	"rc"
- 6306 1ece 01       		.byte	0x1
- 6307 1ecf EE02     		.value	0x2ee
- 6308 1ed1 7B000000 		.long	0x7b
- 6309 1ed5 02       		.byte	0x2
- 6310 1ed6 91       		.byte	0x91
- 6311 1ed7 6C       		.sleb128 -20
- 6312 1ed8 28       		.uleb128 0x28
- 6313 1ed9 00000000 		.long	.LASF46
- 6314 1edd 01       		.byte	0x1
- 6315 1ede EF02     		.value	0x2ef
- 6316 1ee0 371F0000 		.long	0x1f37
- 6317 1ee4 02       		.byte	0x2
- 6318 1ee5 91       		.byte	0x91
- 6319 1ee6 60       		.sleb128 -32
- 6320 1ee7 23       		.uleb128 0x23
- 6321 1ee8 00000000 		.long	.LASF356
- 6322 1eec 4D1F0000 		.long	0x1f4d
- 6323 1ef0 01       		.byte	0x1
-
GAS LISTING /tmp/ccq6ONvw.s 			page 141
-
-
- 6324 1ef1 09       		.byte	0x9
- 6325 1ef2 03       		.byte	0x3
- 6326 1ef3 00000000 		.quad	__PRETTY_FUNCTION__.7018
- 6326      00000000 
- 6327 1efb 23       		.uleb128 0x23
- 6328 1efc 00000000 		.long	.LASF357
- 6329 1f00 521F0000 		.long	0x1f52
- 6330 1f04 01       		.byte	0x1
- 6331 1f05 09       		.byte	0x9
- 6332 1f06 03       		.byte	0x3
- 6333 1f07 00000000 		.quad	__func__.7019
- 6333      00000000 
- 6334 1f0f 29       		.uleb128 0x29
- 6335 1f10 00000000 		.quad	.LBB5
- 6335      00000000 
- 6336 1f18 00000000 		.quad	.LBE5
- 6336      00000000 
- 6337 1f20 24       		.uleb128 0x24
- 6338 1f21 6F626A00 		.string	"obj"
- 6339 1f25 01       		.byte	0x1
- 6340 1f26 0603     		.value	0x306
- 6341 1f28 DE030000 		.long	0x3de
- 6342 1f2c 02       		.byte	0x2
- 6343 1f2d 91       		.byte	0x91
- 6344 1f2e 58       		.sleb128 -40
- 6345 1f2f 00       		.byte	0x0
- 6346 1f30 00       		.byte	0x0
- 6347 1f31 0A       		.uleb128 0xa
- 6348 1f32 08       		.byte	0x8
- 6349 1f33 831D0000 		.long	0x1d83
- 6350 1f37 0A       		.uleb128 0xa
- 6351 1f38 08       		.byte	0x8
- 6352 1f39 C3080000 		.long	0x8c3
- 6353 1f3d 16       		.uleb128 0x16
- 6354 1f3e C1000000 		.long	0xc1
- 6355 1f42 4D1F0000 		.long	0x1f4d
- 6356 1f46 17       		.uleb128 0x17
- 6357 1f47 B1000000 		.long	0xb1
- 6358 1f4b 0E       		.byte	0xe
- 6359 1f4c 00       		.byte	0x0
- 6360 1f4d 0B       		.uleb128 0xb
- 6361 1f4e 3D1F0000 		.long	0x1f3d
- 6362 1f52 0B       		.uleb128 0xb
- 6363 1f53 3D1F0000 		.long	0x1f3d
- 6364 1f57 28       		.uleb128 0x28
- 6365 1f58 00000000 		.long	.LASF394
- 6366 1f5c 01       		.byte	0x1
- 6367 1f5d 8A02     		.value	0x28a
- 6368 1f5f 87020000 		.long	0x287
- 6369 1f63 09       		.byte	0x9
- 6370 1f64 03       		.byte	0x3
- 6371 1f65 00000000 		.quad	KCipherVec_vt_v1
- 6371      00000000 
- 6372 1f6d 16       		.uleb128 0x16
- 6373 1f6e C1000000 		.long	0xc1
- 6374 1f72 7D1F0000 		.long	0x1f7d
- 6375 1f76 17       		.uleb128 0x17
-
GAS LISTING /tmp/ccq6ONvw.s 			page 142
-
-
- 6376 1f77 B1000000 		.long	0xb1
- 6377 1f7b 0B       		.byte	0xb
- 6378 1f7c 00       		.byte	0x0
- 6379 1f7d 2B       		.uleb128 0x2b
- 6380 1f7e 00000000 		.long	.LASF400
- 6381 1f82 01       		.byte	0x1
- 6382 1f83 38       		.byte	0x38
- 6383 1f84 931F0000 		.long	0x1f93
- 6384 1f88 01       		.byte	0x1
- 6385 1f89 09       		.byte	0x9
- 6386 1f8a 03       		.byte	0x3
- 6387 1f8b 00000000 		.quad	KCipherVecClassName
- 6387      00000000 
- 6388 1f93 0B       		.uleb128 0xb
- 6389 1f94 6D1F0000 		.long	0x1f6d
- 6390 1f98 00       		.byte	0x0
- 6391              		.section	.debug_abbrev
- 6392 0000 01       		.uleb128 0x1
- 6393 0001 11       		.uleb128 0x11
- 6394 0002 01       		.byte	0x1
- 6395 0003 25       		.uleb128 0x25
- 6396 0004 0E       		.uleb128 0xe
- 6397 0005 13       		.uleb128 0x13
- 6398 0006 0B       		.uleb128 0xb
- 6399 0007 03       		.uleb128 0x3
- 6400 0008 0E       		.uleb128 0xe
- 6401 0009 1B       		.uleb128 0x1b
- 6402 000a 0E       		.uleb128 0xe
- 6403 000b 11       		.uleb128 0x11
- 6404 000c 01       		.uleb128 0x1
- 6405 000d 12       		.uleb128 0x12
- 6406 000e 01       		.uleb128 0x1
- 6407 000f 10       		.uleb128 0x10
- 6408 0010 06       		.uleb128 0x6
- 6409 0011 00       		.byte	0x0
- 6410 0012 00       		.byte	0x0
- 6411 0013 02       		.uleb128 0x2
- 6412 0014 24       		.uleb128 0x24
- 6413 0015 00       		.byte	0x0
- 6414 0016 0B       		.uleb128 0xb
- 6415 0017 0B       		.uleb128 0xb
- 6416 0018 3E       		.uleb128 0x3e
- 6417 0019 0B       		.uleb128 0xb
- 6418 001a 03       		.uleb128 0x3
- 6419 001b 0E       		.uleb128 0xe
- 6420 001c 00       		.byte	0x0
- 6421 001d 00       		.byte	0x0
- 6422 001e 03       		.uleb128 0x3
- 6423 001f 24       		.uleb128 0x24
- 6424 0020 00       		.byte	0x0
- 6425 0021 0B       		.uleb128 0xb
- 6426 0022 0B       		.uleb128 0xb
- 6427 0023 3E       		.uleb128 0x3e
- 6428 0024 0B       		.uleb128 0xb
- 6429 0025 03       		.uleb128 0x3
- 6430 0026 08       		.uleb128 0x8
- 6431 0027 00       		.byte	0x0
-
GAS LISTING /tmp/ccq6ONvw.s 			page 143
-
-
- 6432 0028 00       		.byte	0x0
- 6433 0029 04       		.uleb128 0x4
- 6434 002a 16       		.uleb128 0x16
- 6435 002b 00       		.byte	0x0
- 6436 002c 03       		.uleb128 0x3
- 6437 002d 0E       		.uleb128 0xe
- 6438 002e 3A       		.uleb128 0x3a
- 6439 002f 0B       		.uleb128 0xb
- 6440 0030 3B       		.uleb128 0x3b
- 6441 0031 0B       		.uleb128 0xb
- 6442 0032 49       		.uleb128 0x49
- 6443 0033 13       		.uleb128 0x13
- 6444 0034 00       		.byte	0x0
- 6445 0035 00       		.byte	0x0
- 6446 0036 05       		.uleb128 0x5
- 6447 0037 13       		.uleb128 0x13
- 6448 0038 01       		.byte	0x1
- 6449 0039 03       		.uleb128 0x3
- 6450 003a 0E       		.uleb128 0xe
- 6451 003b 0B       		.uleb128 0xb
- 6452 003c 0B       		.uleb128 0xb
- 6453 003d 3A       		.uleb128 0x3a
- 6454 003e 0B       		.uleb128 0xb
- 6455 003f 3B       		.uleb128 0x3b
- 6456 0040 0B       		.uleb128 0xb
- 6457 0041 01       		.uleb128 0x1
- 6458 0042 13       		.uleb128 0x13
- 6459 0043 00       		.byte	0x0
- 6460 0044 00       		.byte	0x0
- 6461 0045 06       		.uleb128 0x6
- 6462 0046 0D       		.uleb128 0xd
- 6463 0047 00       		.byte	0x0
- 6464 0048 03       		.uleb128 0x3
- 6465 0049 0E       		.uleb128 0xe
- 6466 004a 3A       		.uleb128 0x3a
- 6467 004b 0B       		.uleb128 0xb
- 6468 004c 3B       		.uleb128 0x3b
- 6469 004d 0B       		.uleb128 0xb
- 6470 004e 49       		.uleb128 0x49
- 6471 004f 13       		.uleb128 0x13
- 6472 0050 38       		.uleb128 0x38
- 6473 0051 0A       		.uleb128 0xa
- 6474 0052 00       		.byte	0x0
- 6475 0053 00       		.byte	0x0
- 6476 0054 07       		.uleb128 0x7
- 6477 0055 35       		.uleb128 0x35
- 6478 0056 00       		.byte	0x0
- 6479 0057 49       		.uleb128 0x49
- 6480 0058 13       		.uleb128 0x13
- 6481 0059 00       		.byte	0x0
- 6482 005a 00       		.byte	0x0
- 6483 005b 08       		.uleb128 0x8
- 6484 005c 24       		.uleb128 0x24
- 6485 005d 00       		.byte	0x0
- 6486 005e 0B       		.uleb128 0xb
- 6487 005f 0B       		.uleb128 0xb
- 6488 0060 3E       		.uleb128 0x3e
-
GAS LISTING /tmp/ccq6ONvw.s 			page 144
-
-
- 6489 0061 0B       		.uleb128 0xb
- 6490 0062 00       		.byte	0x0
- 6491 0063 00       		.byte	0x0
- 6492 0064 09       		.uleb128 0x9
- 6493 0065 0F       		.uleb128 0xf
- 6494 0066 00       		.byte	0x0
- 6495 0067 0B       		.uleb128 0xb
- 6496 0068 0B       		.uleb128 0xb
- 6497 0069 00       		.byte	0x0
- 6498 006a 00       		.byte	0x0
- 6499 006b 0A       		.uleb128 0xa
- 6500 006c 0F       		.uleb128 0xf
- 6501 006d 00       		.byte	0x0
- 6502 006e 0B       		.uleb128 0xb
- 6503 006f 0B       		.uleb128 0xb
- 6504 0070 49       		.uleb128 0x49
- 6505 0071 13       		.uleb128 0x13
- 6506 0072 00       		.byte	0x0
- 6507 0073 00       		.byte	0x0
- 6508 0074 0B       		.uleb128 0xb
- 6509 0075 26       		.uleb128 0x26
- 6510 0076 00       		.byte	0x0
- 6511 0077 49       		.uleb128 0x49
- 6512 0078 13       		.uleb128 0x13
- 6513 0079 00       		.byte	0x0
- 6514 007a 00       		.byte	0x0
- 6515 007b 0C       		.uleb128 0xc
- 6516 007c 04       		.uleb128 0x4
- 6517 007d 01       		.byte	0x1
- 6518 007e 0B       		.uleb128 0xb
- 6519 007f 0B       		.uleb128 0xb
- 6520 0080 3A       		.uleb128 0x3a
- 6521 0081 0B       		.uleb128 0xb
- 6522 0082 3B       		.uleb128 0x3b
- 6523 0083 0B       		.uleb128 0xb
- 6524 0084 01       		.uleb128 0x1
- 6525 0085 13       		.uleb128 0x13
- 6526 0086 00       		.byte	0x0
- 6527 0087 00       		.byte	0x0
- 6528 0088 0D       		.uleb128 0xd
- 6529 0089 28       		.uleb128 0x28
- 6530 008a 00       		.byte	0x0
- 6531 008b 03       		.uleb128 0x3
- 6532 008c 0E       		.uleb128 0xe
- 6533 008d 1C       		.uleb128 0x1c
- 6534 008e 0D       		.uleb128 0xd
- 6535 008f 00       		.byte	0x0
- 6536 0090 00       		.byte	0x0
- 6537 0091 0E       		.uleb128 0xe
- 6538 0092 0D       		.uleb128 0xd
- 6539 0093 00       		.byte	0x0
- 6540 0094 03       		.uleb128 0x3
- 6541 0095 08       		.uleb128 0x8
- 6542 0096 3A       		.uleb128 0x3a
- 6543 0097 0B       		.uleb128 0xb
- 6544 0098 3B       		.uleb128 0x3b
- 6545 0099 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccq6ONvw.s 			page 145
-
-
- 6546 009a 49       		.uleb128 0x49
- 6547 009b 13       		.uleb128 0x13
- 6548 009c 38       		.uleb128 0x38
- 6549 009d 0A       		.uleb128 0xa
- 6550 009e 00       		.byte	0x0
- 6551 009f 00       		.byte	0x0
- 6552 00a0 0F       		.uleb128 0xf
- 6553 00a1 15       		.uleb128 0x15
- 6554 00a2 01       		.byte	0x1
- 6555 00a3 27       		.uleb128 0x27
- 6556 00a4 0C       		.uleb128 0xc
- 6557 00a5 01       		.uleb128 0x1
- 6558 00a6 13       		.uleb128 0x13
- 6559 00a7 00       		.byte	0x0
- 6560 00a8 00       		.byte	0x0
- 6561 00a9 10       		.uleb128 0x10
- 6562 00aa 05       		.uleb128 0x5
- 6563 00ab 00       		.byte	0x0
- 6564 00ac 49       		.uleb128 0x49
- 6565 00ad 13       		.uleb128 0x13
- 6566 00ae 00       		.byte	0x0
- 6567 00af 00       		.byte	0x0
- 6568 00b0 11       		.uleb128 0x11
- 6569 00b1 15       		.uleb128 0x15
- 6570 00b2 01       		.byte	0x1
- 6571 00b3 27       		.uleb128 0x27
- 6572 00b4 0C       		.uleb128 0xc
- 6573 00b5 49       		.uleb128 0x49
- 6574 00b6 13       		.uleb128 0x13
- 6575 00b7 01       		.uleb128 0x1
- 6576 00b8 13       		.uleb128 0x13
- 6577 00b9 00       		.byte	0x0
- 6578 00ba 00       		.byte	0x0
- 6579 00bb 12       		.uleb128 0x12
- 6580 00bc 26       		.uleb128 0x26
- 6581 00bd 00       		.byte	0x0
- 6582 00be 00       		.byte	0x0
- 6583 00bf 00       		.byte	0x0
- 6584 00c0 13       		.uleb128 0x13
- 6585 00c1 17       		.uleb128 0x17
- 6586 00c2 01       		.byte	0x1
- 6587 00c3 03       		.uleb128 0x3
- 6588 00c4 0E       		.uleb128 0xe
- 6589 00c5 0B       		.uleb128 0xb
- 6590 00c6 0B       		.uleb128 0xb
- 6591 00c7 3A       		.uleb128 0x3a
- 6592 00c8 0B       		.uleb128 0xb
- 6593 00c9 3B       		.uleb128 0x3b
- 6594 00ca 0B       		.uleb128 0xb
- 6595 00cb 01       		.uleb128 0x1
- 6596 00cc 13       		.uleb128 0x13
- 6597 00cd 00       		.byte	0x0
- 6598 00ce 00       		.byte	0x0
- 6599 00cf 14       		.uleb128 0x14
- 6600 00d0 0D       		.uleb128 0xd
- 6601 00d1 00       		.byte	0x0
- 6602 00d2 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccq6ONvw.s 			page 146
-
-
- 6603 00d3 0E       		.uleb128 0xe
- 6604 00d4 3A       		.uleb128 0x3a
- 6605 00d5 0B       		.uleb128 0xb
- 6606 00d6 3B       		.uleb128 0x3b
- 6607 00d7 0B       		.uleb128 0xb
- 6608 00d8 49       		.uleb128 0x49
- 6609 00d9 13       		.uleb128 0x13
- 6610 00da 00       		.byte	0x0
- 6611 00db 00       		.byte	0x0
- 6612 00dc 15       		.uleb128 0x15
- 6613 00dd 0D       		.uleb128 0xd
- 6614 00de 00       		.byte	0x0
- 6615 00df 03       		.uleb128 0x3
- 6616 00e0 08       		.uleb128 0x8
- 6617 00e1 3A       		.uleb128 0x3a
- 6618 00e2 0B       		.uleb128 0xb
- 6619 00e3 3B       		.uleb128 0x3b
- 6620 00e4 0B       		.uleb128 0xb
- 6621 00e5 49       		.uleb128 0x49
- 6622 00e6 13       		.uleb128 0x13
- 6623 00e7 00       		.byte	0x0
- 6624 00e8 00       		.byte	0x0
- 6625 00e9 16       		.uleb128 0x16
- 6626 00ea 01       		.uleb128 0x1
- 6627 00eb 01       		.byte	0x1
- 6628 00ec 49       		.uleb128 0x49
- 6629 00ed 13       		.uleb128 0x13
- 6630 00ee 01       		.uleb128 0x1
- 6631 00ef 13       		.uleb128 0x13
- 6632 00f0 00       		.byte	0x0
- 6633 00f1 00       		.byte	0x0
- 6634 00f2 17       		.uleb128 0x17
- 6635 00f3 21       		.uleb128 0x21
- 6636 00f4 00       		.byte	0x0
- 6637 00f5 49       		.uleb128 0x49
- 6638 00f6 13       		.uleb128 0x13
- 6639 00f7 2F       		.uleb128 0x2f
- 6640 00f8 0B       		.uleb128 0xb
- 6641 00f9 00       		.byte	0x0
- 6642 00fa 00       		.byte	0x0
- 6643 00fb 18       		.uleb128 0x18
- 6644 00fc 01       		.uleb128 0x1
- 6645 00fd 01       		.byte	0x1
- 6646 00fe 8742     		.uleb128 0x2107
- 6647 0100 0C       		.uleb128 0xc
- 6648 0101 49       		.uleb128 0x49
- 6649 0102 13       		.uleb128 0x13
- 6650 0103 01       		.uleb128 0x1
- 6651 0104 13       		.uleb128 0x13
- 6652 0105 00       		.byte	0x0
- 6653 0106 00       		.byte	0x0
- 6654 0107 19       		.uleb128 0x19
- 6655 0108 15       		.uleb128 0x15
- 6656 0109 01       		.byte	0x1
- 6657 010a 49       		.uleb128 0x49
- 6658 010b 13       		.uleb128 0x13
- 6659 010c 01       		.uleb128 0x1
-
GAS LISTING /tmp/ccq6ONvw.s 			page 147
-
-
- 6660 010d 13       		.uleb128 0x13
- 6661 010e 00       		.byte	0x0
- 6662 010f 00       		.byte	0x0
- 6663 0110 1A       		.uleb128 0x1a
- 6664 0111 18       		.uleb128 0x18
- 6665 0112 00       		.byte	0x0
- 6666 0113 00       		.byte	0x0
- 6667 0114 00       		.byte	0x0
- 6668 0115 1B       		.uleb128 0x1b
- 6669 0116 13       		.uleb128 0x13
- 6670 0117 01       		.byte	0x1
- 6671 0118 03       		.uleb128 0x3
- 6672 0119 0E       		.uleb128 0xe
- 6673 011a 0B       		.uleb128 0xb
- 6674 011b 05       		.uleb128 0x5
- 6675 011c 3A       		.uleb128 0x3a
- 6676 011d 0B       		.uleb128 0xb
- 6677 011e 3B       		.uleb128 0x3b
- 6678 011f 0B       		.uleb128 0xb
- 6679 0120 01       		.uleb128 0x1
- 6680 0121 13       		.uleb128 0x13
- 6681 0122 00       		.byte	0x0
- 6682 0123 00       		.byte	0x0
- 6683 0124 1C       		.uleb128 0x1c
- 6684 0125 04       		.uleb128 0x4
- 6685 0126 01       		.byte	0x1
- 6686 0127 03       		.uleb128 0x3
- 6687 0128 0E       		.uleb128 0xe
- 6688 0129 0B       		.uleb128 0xb
- 6689 012a 0B       		.uleb128 0xb
- 6690 012b 3A       		.uleb128 0x3a
- 6691 012c 0B       		.uleb128 0xb
- 6692 012d 3B       		.uleb128 0x3b
- 6693 012e 0B       		.uleb128 0xb
- 6694 012f 01       		.uleb128 0x1
- 6695 0130 13       		.uleb128 0x13
- 6696 0131 00       		.byte	0x0
- 6697 0132 00       		.byte	0x0
- 6698 0133 1D       		.uleb128 0x1d
- 6699 0134 04       		.uleb128 0x4
- 6700 0135 01       		.byte	0x1
- 6701 0136 03       		.uleb128 0x3
- 6702 0137 0E       		.uleb128 0xe
- 6703 0138 0B       		.uleb128 0xb
- 6704 0139 0B       		.uleb128 0xb
- 6705 013a 3A       		.uleb128 0x3a
- 6706 013b 0B       		.uleb128 0xb
- 6707 013c 3B       		.uleb128 0x3b
- 6708 013d 05       		.uleb128 0x5
- 6709 013e 01       		.uleb128 0x1
- 6710 013f 13       		.uleb128 0x13
- 6711 0140 00       		.byte	0x0
- 6712 0141 00       		.byte	0x0
- 6713 0142 1E       		.uleb128 0x1e
- 6714 0143 2E       		.uleb128 0x2e
- 6715 0144 01       		.byte	0x1
- 6716 0145 03       		.uleb128 0x3
-
GAS LISTING /tmp/ccq6ONvw.s 			page 148
-
-
- 6717 0146 0E       		.uleb128 0xe
- 6718 0147 3A       		.uleb128 0x3a
- 6719 0148 0B       		.uleb128 0xb
- 6720 0149 3B       		.uleb128 0x3b
- 6721 014a 0B       		.uleb128 0xb
- 6722 014b 27       		.uleb128 0x27
- 6723 014c 0C       		.uleb128 0xc
- 6724 014d 49       		.uleb128 0x49
- 6725 014e 13       		.uleb128 0x13
- 6726 014f 11       		.uleb128 0x11
- 6727 0150 01       		.uleb128 0x1
- 6728 0151 12       		.uleb128 0x12
- 6729 0152 01       		.uleb128 0x1
- 6730 0153 40       		.uleb128 0x40
- 6731 0154 06       		.uleb128 0x6
- 6732 0155 01       		.uleb128 0x1
- 6733 0156 13       		.uleb128 0x13
- 6734 0157 00       		.byte	0x0
- 6735 0158 00       		.byte	0x0
- 6736 0159 1F       		.uleb128 0x1f
- 6737 015a 05       		.uleb128 0x5
- 6738 015b 00       		.byte	0x0
- 6739 015c 03       		.uleb128 0x3
- 6740 015d 0E       		.uleb128 0xe
- 6741 015e 3A       		.uleb128 0x3a
- 6742 015f 0B       		.uleb128 0xb
- 6743 0160 3B       		.uleb128 0x3b
- 6744 0161 0B       		.uleb128 0xb
- 6745 0162 49       		.uleb128 0x49
- 6746 0163 13       		.uleb128 0x13
- 6747 0164 02       		.uleb128 0x2
- 6748 0165 0A       		.uleb128 0xa
- 6749 0166 00       		.byte	0x0
- 6750 0167 00       		.byte	0x0
- 6751 0168 20       		.uleb128 0x20
- 6752 0169 34       		.uleb128 0x34
- 6753 016a 00       		.byte	0x0
- 6754 016b 03       		.uleb128 0x3
- 6755 016c 08       		.uleb128 0x8
- 6756 016d 3A       		.uleb128 0x3a
- 6757 016e 0B       		.uleb128 0xb
- 6758 016f 3B       		.uleb128 0x3b
- 6759 0170 0B       		.uleb128 0xb
- 6760 0171 49       		.uleb128 0x49
- 6761 0172 13       		.uleb128 0x13
- 6762 0173 02       		.uleb128 0x2
- 6763 0174 0A       		.uleb128 0xa
- 6764 0175 00       		.byte	0x0
- 6765 0176 00       		.byte	0x0
- 6766 0177 21       		.uleb128 0x21
- 6767 0178 2E       		.uleb128 0x2e
- 6768 0179 01       		.byte	0x1
- 6769 017a 03       		.uleb128 0x3
- 6770 017b 0E       		.uleb128 0xe
- 6771 017c 3A       		.uleb128 0x3a
- 6772 017d 0B       		.uleb128 0xb
- 6773 017e 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/ccq6ONvw.s 			page 149
-
-
- 6774 017f 0B       		.uleb128 0xb
- 6775 0180 27       		.uleb128 0x27
- 6776 0181 0C       		.uleb128 0xc
- 6777 0182 11       		.uleb128 0x11
- 6778 0183 01       		.uleb128 0x1
- 6779 0184 12       		.uleb128 0x12
- 6780 0185 01       		.uleb128 0x1
- 6781 0186 40       		.uleb128 0x40
- 6782 0187 06       		.uleb128 0x6
- 6783 0188 01       		.uleb128 0x1
- 6784 0189 13       		.uleb128 0x13
- 6785 018a 00       		.byte	0x0
- 6786 018b 00       		.byte	0x0
- 6787 018c 22       		.uleb128 0x22
- 6788 018d 05       		.uleb128 0x5
- 6789 018e 00       		.byte	0x0
- 6790 018f 03       		.uleb128 0x3
- 6791 0190 08       		.uleb128 0x8
- 6792 0191 3A       		.uleb128 0x3a
- 6793 0192 0B       		.uleb128 0xb
- 6794 0193 3B       		.uleb128 0x3b
- 6795 0194 0B       		.uleb128 0xb
- 6796 0195 49       		.uleb128 0x49
- 6797 0196 13       		.uleb128 0x13
- 6798 0197 02       		.uleb128 0x2
- 6799 0198 0A       		.uleb128 0xa
- 6800 0199 00       		.byte	0x0
- 6801 019a 00       		.byte	0x0
- 6802 019b 23       		.uleb128 0x23
- 6803 019c 34       		.uleb128 0x34
- 6804 019d 00       		.byte	0x0
- 6805 019e 03       		.uleb128 0x3
- 6806 019f 0E       		.uleb128 0xe
- 6807 01a0 49       		.uleb128 0x49
- 6808 01a1 13       		.uleb128 0x13
- 6809 01a2 34       		.uleb128 0x34
- 6810 01a3 0C       		.uleb128 0xc
- 6811 01a4 02       		.uleb128 0x2
- 6812 01a5 0A       		.uleb128 0xa
- 6813 01a6 00       		.byte	0x0
- 6814 01a7 00       		.byte	0x0
- 6815 01a8 24       		.uleb128 0x24
- 6816 01a9 34       		.uleb128 0x34
- 6817 01aa 00       		.byte	0x0
- 6818 01ab 03       		.uleb128 0x3
- 6819 01ac 08       		.uleb128 0x8
- 6820 01ad 3A       		.uleb128 0x3a
- 6821 01ae 0B       		.uleb128 0xb
- 6822 01af 3B       		.uleb128 0x3b
- 6823 01b0 05       		.uleb128 0x5
- 6824 01b1 49       		.uleb128 0x49
- 6825 01b2 13       		.uleb128 0x13
- 6826 01b3 02       		.uleb128 0x2
- 6827 01b4 0A       		.uleb128 0xa
- 6828 01b5 00       		.byte	0x0
- 6829 01b6 00       		.byte	0x0
- 6830 01b7 25       		.uleb128 0x25
-
GAS LISTING /tmp/ccq6ONvw.s 			page 150
-
-
- 6831 01b8 2E       		.uleb128 0x2e
- 6832 01b9 01       		.byte	0x1
- 6833 01ba 03       		.uleb128 0x3
- 6834 01bb 0E       		.uleb128 0xe
- 6835 01bc 3A       		.uleb128 0x3a
- 6836 01bd 0B       		.uleb128 0xb
- 6837 01be 3B       		.uleb128 0x3b
- 6838 01bf 05       		.uleb128 0x5
- 6839 01c0 27       		.uleb128 0x27
- 6840 01c1 0C       		.uleb128 0xc
- 6841 01c2 49       		.uleb128 0x49
- 6842 01c3 13       		.uleb128 0x13
- 6843 01c4 11       		.uleb128 0x11
- 6844 01c5 01       		.uleb128 0x1
- 6845 01c6 12       		.uleb128 0x12
- 6846 01c7 01       		.uleb128 0x1
- 6847 01c8 40       		.uleb128 0x40
- 6848 01c9 06       		.uleb128 0x6
- 6849 01ca 01       		.uleb128 0x1
- 6850 01cb 13       		.uleb128 0x13
- 6851 01cc 00       		.byte	0x0
- 6852 01cd 00       		.byte	0x0
- 6853 01ce 26       		.uleb128 0x26
- 6854 01cf 05       		.uleb128 0x5
- 6855 01d0 00       		.byte	0x0
- 6856 01d1 03       		.uleb128 0x3
- 6857 01d2 0E       		.uleb128 0xe
- 6858 01d3 3A       		.uleb128 0x3a
- 6859 01d4 0B       		.uleb128 0xb
- 6860 01d5 3B       		.uleb128 0x3b
- 6861 01d6 05       		.uleb128 0x5
- 6862 01d7 49       		.uleb128 0x49
- 6863 01d8 13       		.uleb128 0x13
- 6864 01d9 02       		.uleb128 0x2
- 6865 01da 0A       		.uleb128 0xa
- 6866 01db 00       		.byte	0x0
- 6867 01dc 00       		.byte	0x0
- 6868 01dd 27       		.uleb128 0x27
- 6869 01de 05       		.uleb128 0x5
- 6870 01df 00       		.byte	0x0
- 6871 01e0 03       		.uleb128 0x3
- 6872 01e1 08       		.uleb128 0x8
- 6873 01e2 3A       		.uleb128 0x3a
- 6874 01e3 0B       		.uleb128 0xb
- 6875 01e4 3B       		.uleb128 0x3b
- 6876 01e5 05       		.uleb128 0x5
- 6877 01e6 49       		.uleb128 0x49
- 6878 01e7 13       		.uleb128 0x13
- 6879 01e8 02       		.uleb128 0x2
- 6880 01e9 0A       		.uleb128 0xa
- 6881 01ea 00       		.byte	0x0
- 6882 01eb 00       		.byte	0x0
- 6883 01ec 28       		.uleb128 0x28
- 6884 01ed 34       		.uleb128 0x34
- 6885 01ee 00       		.byte	0x0
- 6886 01ef 03       		.uleb128 0x3
- 6887 01f0 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccq6ONvw.s 			page 151
-
-
- 6888 01f1 3A       		.uleb128 0x3a
- 6889 01f2 0B       		.uleb128 0xb
- 6890 01f3 3B       		.uleb128 0x3b
- 6891 01f4 05       		.uleb128 0x5
- 6892 01f5 49       		.uleb128 0x49
- 6893 01f6 13       		.uleb128 0x13
- 6894 01f7 02       		.uleb128 0x2
- 6895 01f8 0A       		.uleb128 0xa
- 6896 01f9 00       		.byte	0x0
- 6897 01fa 00       		.byte	0x0
- 6898 01fb 29       		.uleb128 0x29
- 6899 01fc 0B       		.uleb128 0xb
- 6900 01fd 01       		.byte	0x1
- 6901 01fe 11       		.uleb128 0x11
- 6902 01ff 01       		.uleb128 0x1
- 6903 0200 12       		.uleb128 0x12
- 6904 0201 01       		.uleb128 0x1
- 6905 0202 00       		.byte	0x0
- 6906 0203 00       		.byte	0x0
- 6907 0204 2A       		.uleb128 0x2a
- 6908 0205 2E       		.uleb128 0x2e
- 6909 0206 01       		.byte	0x1
- 6910 0207 3F       		.uleb128 0x3f
- 6911 0208 0C       		.uleb128 0xc
- 6912 0209 03       		.uleb128 0x3
- 6913 020a 0E       		.uleb128 0xe
- 6914 020b 3A       		.uleb128 0x3a
- 6915 020c 0B       		.uleb128 0xb
- 6916 020d 3B       		.uleb128 0x3b
- 6917 020e 05       		.uleb128 0x5
- 6918 020f 27       		.uleb128 0x27
- 6919 0210 0C       		.uleb128 0xc
- 6920 0211 49       		.uleb128 0x49
- 6921 0212 13       		.uleb128 0x13
- 6922 0213 11       		.uleb128 0x11
- 6923 0214 01       		.uleb128 0x1
- 6924 0215 12       		.uleb128 0x12
- 6925 0216 01       		.uleb128 0x1
- 6926 0217 40       		.uleb128 0x40
- 6927 0218 06       		.uleb128 0x6
- 6928 0219 01       		.uleb128 0x1
- 6929 021a 13       		.uleb128 0x13
- 6930 021b 00       		.byte	0x0
- 6931 021c 00       		.byte	0x0
- 6932 021d 2B       		.uleb128 0x2b
- 6933 021e 34       		.uleb128 0x34
- 6934 021f 00       		.byte	0x0
- 6935 0220 03       		.uleb128 0x3
- 6936 0221 0E       		.uleb128 0xe
- 6937 0222 3A       		.uleb128 0x3a
- 6938 0223 0B       		.uleb128 0xb
- 6939 0224 3B       		.uleb128 0x3b
- 6940 0225 0B       		.uleb128 0xb
- 6941 0226 49       		.uleb128 0x49
- 6942 0227 13       		.uleb128 0x13
- 6943 0228 3F       		.uleb128 0x3f
- 6944 0229 0C       		.uleb128 0xc
-
GAS LISTING /tmp/ccq6ONvw.s 			page 152
-
-
- 6945 022a 02       		.uleb128 0x2
- 6946 022b 0A       		.uleb128 0xa
- 6947 022c 00       		.byte	0x0
- 6948 022d 00       		.byte	0x0
- 6949 022e 00       		.byte	0x0
- 6950              		.section	.debug_pubnames,"", at progbits
- 6951 0000 39000000 		.long	0x39
- 6952 0004 0200     		.value	0x2
- 6953 0006 00000000 		.long	.Ldebug_info0
- 6954 000a 991F0000 		.long	0x1f99
- 6955 000e 861E0000 		.long	0x1e86
- 6956 0012 4B436970 		.string	"KCipherVecMake"
- 6956      68657256 
- 6956      65634D61 
- 6956      6B6500
- 6957 0021 7D1F0000 		.long	0x1f7d
- 6958 0025 4B436970 		.string	"KCipherVecClassName"
- 6958      68657256 
- 6958      6563436C 
- 6958      6173734E 
- 6958      616D6500 
- 6959 0039 00000000 		.long	0x0
- 6960              		.section	.debug_aranges,"", at progbits
- 6961 0000 2C000000 		.long	0x2c
- 6962 0004 0200     		.value	0x2
- 6963 0006 00000000 		.long	.Ldebug_info0
- 6964 000a 08       		.byte	0x8
- 6965 000b 00       		.byte	0x0
- 6966 000c 0000     		.value	0x0
- 6967 000e 0000     		.value	0x0
- 6968 0010 00000000 		.quad	.Ltext0
- 6968      00000000 
- 6969 0018 7C100000 		.quad	.Letext0-.Ltext0
- 6969      00000000 
- 6970 0020 00000000 		.quad	0x0
- 6970      00000000 
- 6971 0028 00000000 		.quad	0x0
- 6971      00000000 
- 6972              		.section	.debug_str,"MS", at progbits,1
- 6973              	.LASF90:
- 6974 0000 645F6B65 		.string	"d_key"
- 6974      7900
- 6975              	.LASF332:
- 6976 0006 72634475 		.string	"rcDuplicate"
- 6976      706C6963 
- 6976      61746500 
- 6977              	.LASF359:
- 6978 0012 4B436970 		.string	"KCipherVecSetEncryptIvec"
- 6978      68657256 
- 6978      65635365 
- 6978      74456E63 
- 6978      72797074 
- 6979              	.LASF135:
- 6980 002b 7263436F 		.string	"rcCondition"
- 6980      6E646974 
- 6980      696F6E00 
- 6981              	.LASF249:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 153
-
-
- 6982 0037 7263456E 		.string	"rcEncrypting"
- 6982      63727970 
- 6982      74696E67 
- 6982      00
- 6983              	.LASF208:
- 6984 0044 72634F70 		.string	"rcOpening"
- 6984      656E696E 
- 6984      6700
- 6985              	.LASF216:
- 6986 004e 72635065 		.string	"rcPersisting"
- 6986      72736973 
- 6986      74696E67 
- 6986      00
- 6987              	.LASF385:
- 6988 005b 4B436970 		.string	"KCipherVecDecryptCtr"
- 6988      68657256 
- 6988      65634465 
- 6988      63727970 
- 6988      74437472 
- 6989              	.LASF254:
- 6990 0070 72635365 		.string	"rcSending"
- 6990      6E64696E 
- 6990      6700
- 6991              	.LASF248:
- 6992 007a 72634170 		.string	"rcAppending"
- 6992      70656E64 
- 6992      696E6700 
- 6993              	.LASF234:
- 6994 0086 72635369 		.string	"rcSignaling"
- 6994      676E616C 
- 6994      696E6700 
- 6995              	.LASF14:
- 6996 0092 4442475F 		.string	"DBG_BLAST"
- 6996      424C4153 
- 6996      5400
- 6997              	.LASF290:
- 6998 009c 72635369 		.string	"rcSignalSet"
- 6998      676E616C 
- 6998      53657400 
- 6999              	.LASF236:
- 7000 00a8 72634174 		.string	"rcAttaching"
- 7000      74616368 
- 7000      696E6700 
- 7001              	.LASF168:
- 7002 00b4 72635461 		.string	"rcTable"
- 7002      626C6500 
- 7003              	.LASF66:
- 7004 00bc 64656372 		.string	"decrypt_cfb"
- 7004      7970745F 
- 7004      63666200 
- 7005              	.LASF132:
- 7006 00c8 72634275 		.string	"rcBuffer"
- 7006      66666572 
- 7006      00
- 7007              	.LASF264:
- 7008 00d1 72634D65 		.string	"rcMemory"
- 7008      6D6F7279 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 154
-
-
- 7008      00
- 7009              	.LASF197:
- 7010 00da 72634C6F 		.string	"rcLocking"
- 7010      636B696E 
- 7010      6700
- 7011              	.LASF232:
- 7012 00e4 72635061 		.string	"rcParsing"
- 7012      7273696E 
- 7012      6700
- 7013              	.LASF261:
- 7014 00ee 72635365 		.string	"rcSelf"
- 7014      6C6600
- 7015              	.LASF154:
- 7016 00f5 72634D65 		.string	"rcMetadata"
- 7016      74616461 
- 7016      746100
- 7017              	.LASF277:
- 7018 0100 72634172 		.string	"rcArcHardLink"
- 7018      63486172 
- 7018      644C696E 
- 7018      6B00
- 7019              	.LASF103:
- 7020 010e 7263436F 		.string	"rcCont"
- 7020      6E7400
- 7021              	.LASF285:
- 7022 0115 72634368 		.string	"rcChecksum"
- 7022      65636B73 
- 7022      756D00
- 7023              	.LASF357:
- 7024 0120 5F5F6675 		.string	"__func__"
- 7024      6E635F5F 
- 7024      00
- 7025              	.LASF329:
- 7026 0129 7263546F 		.string	"rcTooShort"
- 7026      6F53686F 
- 7026      727400
- 7027              	.LASF159:
- 7028 0134 72635061 		.string	"rcPagemap"
- 7028      67656D61 
- 7028      7000
- 7029              	.LASF111:
- 7030 013e 72634170 		.string	"rcApp"
- 7030      7000
- 7031              	.LASF10:
- 7032 0144 61746F6D 		.string	"atomic32_t"
- 7032      69633332 
- 7032      5F7400
- 7033              	.LASF56:
- 7034 014f 7365745F 		.string	"set_decrypt_ctr_func"
- 7034      64656372 
- 7034      7970745F 
- 7034      6374725F 
- 7034      66756E63 
- 7035              	.LASF65:
- 7036 0164 656E6372 		.string	"encrypt_cfb"
- 7036      7970745F 
- 7036      63666200 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 155
-
-
- 7037              	.LASF173:
- 7038 0170 72635472 		.string	"rcTrie"
- 7038      696500
- 7039              	.LASF114:
- 7040 0177 72634C61 		.string	"rcLastModule_v1_0"
- 7040      73744D6F 
- 7040      64756C65 
- 7040      5F76315F 
- 7040      3000
- 7041              	.LASF121:
- 7042 0189 72634C61 		.string	"rcLastModule_v1_1"
- 7042      73744D6F 
- 7042      64756C65 
- 7042      5F76315F 
- 7042      3100
- 7043              	.LASF272:
- 7044 019b 72634279 		.string	"rcByteOrder"
- 7044      74654F72 
- 7044      64657200 
- 7045              	.LASF85:
- 7046 01a7 4145534B 		.string	"AESKeySchedule"
- 7046      65795363 
- 7046      68656475 
- 7046      6C6500
- 7047              	.LASF333:
- 7048 01b6 72634F75 		.string	"rcOutOfKDirectory"
- 7048      744F664B 
- 7048      44697265 
- 7048      63746F72 
- 7048      7900
- 7049              	.LASF86:
- 7050 01c8 726F756E 		.string	"round_keys"
- 7050      645F6B65 
- 7050      797300
- 7051              	.LASF190:
- 7052 01d3 7263436F 		.string	"rcConstructing"
- 7052      6E737472 
- 7052      75637469 
- 7052      6E6700
- 7053              	.LASF96:
- 7054 01e2 6B636970 		.string	"kcipher_AES"
- 7054      6865725F 
- 7054      41455300 
- 7055              	.LASF97:
- 7056 01ee 6B636970 		.string	"kcipher_count"
- 7056      6865725F 
- 7056      636F756E 
- 7056      7400
- 7057              	.LASF379:
- 7058 01fc 4B436970 		.string	"KCipherVecDecryptPcbc"
- 7058      68657256 
- 7058      65634465 
- 7058      63727970 
- 7058      74506362 
- 7059              	.LASF393:
- 7060 0212 74797065 		.string	"type"
- 7060      00
-
GAS LISTING /tmp/ccq6ONvw.s 			page 156
-
-
- 7061              	.LASF347:
- 7062 0217 626C6F63 		.string	"block"
- 7062      6B00
- 7063              	.LASF9:
- 7064 021d 72635F74 		.string	"rc_t"
- 7064      00
- 7065              	.LASF266:
- 7066 0222 7263466F 		.string	"rcFormat"
- 7066      726D6174 
- 7066      00
- 7067              	.LASF324:
- 7068 022b 7263556E 		.string	"rcUnauthorized"
- 7068      61757468 
- 7068      6F72697A 
- 7068      656400
- 7069              	.LASF349:
- 7070 023a 63766F75 		.string	"cvout"
- 7070      7400
- 7071              	.LASF204:
- 7072 0240 72635265 		.string	"rcRemoving"
- 7072      6D6F7669 
- 7072      6E6700
- 7073              	.LASF117:
- 7074 024b 72634B72 		.string	"rcKrypto"
- 7074      7970746F 
- 7074      00
- 7075              	.LASF378:
- 7076 0254 4B436970 		.string	"KCipherVecEncryptPcbc"
- 7076      68657256 
- 7076      6563456E 
- 7076      63727970 
- 7076      74506362 
- 7077              	.LASF195:
- 7078 026a 72635669 		.string	"rcVisiting"
- 7078      73697469 
- 7078      6E6700
- 7079              	.LASF125:
- 7080 0275 72634172 		.string	"rcArc"
- 7080      6300
- 7081              	.LASF362:
- 7082 027b 4B436970 		.string	"KCipherVecSetEncryptCounterFunc"
- 7082      68657256 
- 7082      65635365 
- 7082      74456E63 
- 7082      72797074 
- 7083              	.LASF100:
- 7084 029b 72634578 		.string	"rcExe"
- 7084      6500
- 7085              	.LASF330:
- 7086 02a1 7263546F 		.string	"rcTooLong"
- 7086      6F4C6F6E 
- 7086      6700
- 7087              	.LASF258:
- 7088 02ab 52434F62 		.string	"RCObject"
- 7088      6A656374 
- 7088      00
- 7089              	.LASF268:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 157
-
-
- 7090 02b4 7263496E 		.string	"rcInterface"
- 7090      74657266 
- 7090      61636500 
- 7091              	.LASF196:
- 7092 02c0 72635265 		.string	"rcResolving"
- 7092      736F6C76 
- 7092      696E6700 
- 7093              	.LASF394:
- 7094 02cc 4B436970 		.string	"KCipherVec_vt_v1"
- 7094      68657256 
- 7094      65635F76 
- 7094      745F7631 
- 7094      00
- 7095              	.LASF88:
- 7096 02dd 43697068 		.string	"CipherAes"
- 7096      65724165 
- 7096      7300
- 7097              	.LASF138:
- 7098 02e7 72634469 		.string	"rcDirectory"
- 7098      72656374 
- 7098      6F727900 
- 7099              	.LASF2:
- 7100 02f3 6C6F6E67 		.string	"long int"
- 7100      20696E74 
- 7100      00
- 7101              	.LASF226:
- 7102 02fc 72635661 		.string	"rcValidating"
- 7102      6C696461 
- 7102      74696E67 
- 7102      00
- 7103              	.LASF44:
- 7104 0309 63697068 		.string	"cipher_ctr_func"
- 7104      65725F63 
- 7104      74725F66 
- 7104      756E6300 
- 7105              	.LASF128:
- 7106 0319 72634172 		.string	"rcArgv"
- 7106      677600
- 7107              	.LASF104:
- 7108 0320 72634353 		.string	"rcCS"
- 7108      00
- 7109              	.LASF185:
- 7110 0325 72635572 		.string	"rcUri"
- 7110      6900
- 7111              	.LASF207:
- 7112 032b 72634372 		.string	"rcCreating"
- 7112      65617469 
- 7112      6E6700
- 7113              	.LASF40:
- 7114 0336 656E6372 		.string	"encrypt_ivec"
- 7114      7970745F 
- 7114      69766563 
- 7114      00
- 7115              	.LASF57:
- 7116 0343 656E6372 		.string	"encrypt"
- 7116      79707400 
- 7117              	.LASF72:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 158
-
-
- 7118 034b 43697068 		.string	"CipherBlock"
- 7118      6572426C 
- 7118      6F636B00 
- 7119              	.LASF77:
- 7120 0357 76313238 		.string	"v128_u8_t"
- 7120      5F75385F 
- 7120      7400
- 7121              	.LASF19:
- 7122 0361 4442475F 		.string	"DBG_XML"
- 7122      584D4C00 
- 7123              	.LASF31:
- 7124 0369 4442475F 		.string	"DBG_MOD_COUNT"
- 7124      4D4F445F 
- 7124      434F554E 
- 7124      5400
- 7125              	.LASF355:
- 7126 0377 75736572 		.string	"user_key_bits"
- 7126      5F6B6579 
- 7126      5F626974 
- 7126      7300
- 7127              	.LASF109:
- 7128 0385 72634442 		.string	"rcDB"
- 7128      00
- 7129              	.LASF287:
- 7130 038a 7263436F 		.string	"rcConnection"
- 7130      6E6E6563 
- 7130      74696F6E 
- 7130      00
- 7131              	.LASF155:
- 7132 0397 72634D67 		.string	"rcMgr"
- 7132      7200
- 7133              	.LASF317:
- 7134 039d 72635669 		.string	"rcViolated"
- 7134      6F6C6174 
- 7134      656400
- 7135              	.LASF45:
- 7136 03a8 4B436970 		.string	"KCipherVec"
- 7136      68657256 
- 7136      656300
- 7137              	.LASF250:
- 7138 03b3 72634465 		.string	"rcDecrypting"
- 7138      63727970 
- 7138      74696E67 
- 7138      00
- 7139              	.LASF0:
- 7140 03c0 7369676E 		.string	"signed char"
- 7140      65642063 
- 7140      68617200 
- 7141              	.LASF5:
- 7142 03cc 75696E74 		.string	"uint8_t"
- 7142      385F7400 
- 7143              	.LASF133:
- 7144 03d4 72634368 		.string	"rcChar"
- 7144      617200
- 7145              	.LASF118:
- 7146 03db 72635244 		.string	"rcRDBMS"
- 7146      424D5300 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 159
-
-
- 7147              	.LASF162:
- 7148 03e3 72635175 		.string	"rcQueue"
- 7148      65756500 
- 7149              	.LASF356:
- 7150 03eb 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 7150      45545459 
- 7150      5F46554E 
- 7150      4354494F 
- 7150      4E5F5F00 
- 7151              	.LASF12:
- 7152 03ff 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 7152      4D4F445F 
- 7152      4E4F545F 
- 7152      464F554E 
- 7152      4400
- 7153              	.LASF214:
- 7154 0411 72635265 		.string	"rcReverting"
- 7154      76657274 
- 7154      696E6700 
- 7155              	.LASF130:
- 7156 041d 72634261 		.string	"rcBarrier"
- 7156      72726965 
- 7156      7200
- 7157              	.LASF314:
- 7158 0427 72634578 		.string	"rcExhausted"
- 7158      68617573 
- 7158      74656400 
- 7159              	.LASF3:
- 7160 0433 756E7369 		.string	"unsigned char"
- 7160      676E6564 
- 7160      20636861 
- 7160      7200
- 7161              	.LASF187:
- 7162 0441 5243436F 		.string	"RCContext"
- 7162      6E746578 
- 7162      7400
- 7163              	.LASF150:
- 7164 044b 72634C6F 		.string	"rcLock"
- 7164      636B00
- 7165              	.LASF303:
- 7166 0452 72634261 		.string	"rcBadVersion"
- 7166      64566572 
- 7166      73696F6E 
- 7166      00
- 7167              	.LASF304:
- 7168 045f 72634465 		.string	"rcDestroyed"
- 7168      7374726F 
- 7168      79656400 
- 7169              	.LASF167:
- 7170 046b 72635374 		.string	"rcString"
- 7170      72696E67 
- 7170      00
- 7171              	.LASF129:
- 7172 0474 72634174 		.string	"rcAttr"
- 7172      747200
- 7173              	.LASF371:
- 7174 047b 4B436970 		.string	"KCipherVecEncryptEcb"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 160
-
-
- 7174      68657256 
- 7174      6563456E 
- 7174      63727970 
- 7174      74456362 
- 7175              	.LASF151:
- 7176 0490 72634C6F 		.string	"rcLog"
- 7176      6700
- 7177              	.LASF392:
- 7178 0496 6E65775F 		.string	"new_obj"
- 7178      6F626A00 
- 7179              	.LASF15:
- 7180 049e 4442475F 		.string	"DBG_KDB"
- 7180      4B444200 
- 7181              	.LASF255:
- 7182 04a6 72635072 		.string	"rcProcessing"
- 7182      6F636573 
- 7182      73696E67 
- 7182      00
- 7183              	.LASF105:
- 7184 04b3 72634646 		.string	"rcFF"
- 7184      00
- 7185              	.LASF396:
- 7186 04b8 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
- 7186      652F726F 
- 7186      6461726D 
- 7186      65722F73 
- 7186      72615F73 
- 7187              	.LASF106:
- 7188 04f0 72634653 		.string	"rcFS"
- 7188      00
- 7189              	.LASF350:
- 7190 04f5 43697068 		.string	"CipherVecIn"
- 7190      65725665 
- 7190      63496E00 
- 7191              	.LASF193:
- 7192 0501 72634163 		.string	"rcAccessing"
- 7192      63657373 
- 7192      696E6700 
- 7193              	.LASF311:
- 7194 050d 7263496E 		.string	"rcInterrupted"
- 7194      74657272 
- 7194      75707465 
- 7194      6400
- 7195              	.LASF319:
- 7196 051b 72634E6F 		.string	"rcNotFound"
- 7196      74466F75 
- 7196      6E6400
- 7197              	.LASF11:
- 7198 0526 63686172 		.string	"char"
- 7198      00
- 7199              	.LASF157:
- 7200 052b 72634E6F 		.string	"rcNode"
- 7200      646500
- 7201              	.LASF366:
- 7202 0532 4B436970 		.string	"KCipherVecDecryptV1"
- 7202      68657256 
- 7202      65634465 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 161
-
-
- 7202      63727970 
- 7202      74563100 
- 7203              	.LASF29:
- 7204 0546 4442475F 		.string	"DBG_AES"
- 7204      41455300 
- 7205              	.LASF288:
- 7206 054e 72634572 		.string	"rcError"
- 7206      726F7200 
- 7207              	.LASF387:
- 7208 0556 706F626A 		.string	"pobj"
- 7208      00
- 7209              	.LASF205:
- 7210 055b 7263436C 		.string	"rcClearing"
- 7210      65617269 
- 7210      6E6700
- 7211              	.LASF263:
- 7212 0566 72634F66 		.string	"rcOffset"
- 7212      66736574 
- 7212      00
- 7213              	.LASF209:
- 7214 056f 7263436C 		.string	"rcClosing"
- 7214      6F73696E 
- 7214      6700
- 7215              	.LASF141:
- 7216 0579 72634669 		.string	"rcFile"
- 7216      6C6500
- 7217              	.LASF170:
- 7218 0580 72635469 		.string	"rcTimeout"
- 7218      6D656F75 
- 7218      7400
- 7219              	.LASF158:
- 7220 058a 72634E75 		.string	"rcNumeral"
- 7220      6D657261 
- 7220      6C00
- 7221              	.LASF235:
- 7222 0594 72635761 		.string	"rcWaiting"
- 7222      6974696E 
- 7222      6700
- 7223              	.LASF239:
- 7224 059e 72634650 		.string	"rcFPCoding"
- 7224      436F6469 
- 7224      6E6700
- 7225              	.LASF291:
- 7226 05a9 72635369 		.string	"rcSize"
- 7226      7A6500
- 7227              	.LASF276:
- 7228 05b0 72634469 		.string	"rcDirEntry"
- 7228      72456E74 
- 7228      727900
- 7229              	.LASF228:
- 7230 05bb 72634875 		.string	"rcHuffmanCoding"
- 7230      66666D61 
- 7230      6E436F64 
- 7230      696E6700 
- 7231              	.LASF24:
- 7232 05cb 4442475F 		.string	"DBG_KFG"
- 7232      4B464700 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 162
-
-
- 7233              	.LASF309:
- 7234 05d3 72634275 		.string	"rcBusy"
- 7234      737900
- 7235              	.LASF21:
- 7236 05da 4442475F 		.string	"DBG_SRA"
- 7236      53524100 
- 7237              	.LASF267:
- 7238 05e2 72635472 		.string	"rcTransfer"
- 7238      616E7366 
- 7238      657200
- 7239              	.LASF18:
- 7240 05ed 4442475F 		.string	"DBG_KFS"
- 7240      4B465300 
- 7241              	.LASF222:
- 7242 05f5 72635061 		.string	"rcPacking"
- 7242      636B696E 
- 7242      6700
- 7243              	.LASF218:
- 7244 05ff 7263436F 		.string	"rcCopying"
- 7244      7079696E 
- 7244      6700
- 7245              	.LASF256:
- 7246 0609 72634964 		.string	"rcIdentifying"
- 7246      656E7469 
- 7246      6679696E 
- 7246      6700
- 7247              	.LASF365:
- 7248 0617 4B436970 		.string	"KCipherVecEncryptV1"
- 7248      68657256 
- 7248      6563456E 
- 7248      63727970 
- 7248      74563100 
- 7249              	.LASF60:
- 7250 062b 64656372 		.string	"decrypt_ecb"
- 7250      7970745F 
- 7250      65636200 
- 7251              	.LASF225:
- 7252 0637 72634465 		.string	"rcDecoding"
- 7252      636F6469 
- 7252      6E6700
- 7253              	.LASF389:
- 7254 0642 4B436970 		.string	"KCipherVecAllocNull"
- 7254      68657256 
- 7254      6563416C 
- 7254      6C6F634E 
- 7254      756C6C00 
- 7255              	.LASF153:
- 7256 0656 72634D65 		.string	"rcMemMap"
- 7256      6D4D6170 
- 7256      00
- 7257              	.LASF198:
- 7258 065f 7263556E 		.string	"rcUnlocking"
- 7258      6C6F636B 
- 7258      696E6700 
- 7259              	.LASF281:
- 7260 066b 72634974 		.string	"rcItem"
- 7260      656D00
-
GAS LISTING /tmp/ccq6ONvw.s 			page 163
-
-
- 7261              	.LASF83:
- 7262 0672 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 7262      636B4369 
- 7262      70686572 
- 7262      5665635F 
- 7262      76745F76 
- 7263              	.LASF17:
- 7264 0688 4442475F 		.string	"DBG_LEGREF"
- 7264      4C454752 
- 7264      454600
- 7265              	.LASF348:
- 7266 0693 6376696E 		.string	"cvin"
- 7266      00
- 7267              	.LASF199:
- 7268 0698 72635265 		.string	"rcRenaming"
- 7268      6E616D69 
- 7268      6E6700
- 7269              	.LASF354:
- 7270 06a3 75736572 		.string	"user_key"
- 7270      5F6B6579 
- 7270      00
- 7271              	.LASF269:
- 7272 06ac 72634964 		.string	"rcId"
- 7272      00
- 7273              	.LASF182:
- 7274 06b1 7263436D 		.string	"rcCmd"
- 7274      6400
- 7275              	.LASF398:
- 7276 06b7 43697068 		.string	"CipherVecOut"
- 7276      65725665 
- 7276      634F7574 
- 7276      00
- 7277              	.LASF27:
- 7278 06c4 4442475F 		.string	"DBG_LOADLIB"
- 7278      4C4F4144 
- 7278      4C494200 
- 7279              	.LASF321:
- 7280 06d0 7263556E 		.string	"rcUnlocked"
- 7280      6C6F636B 
- 7280      656400
- 7281              	.LASF122:
- 7282 06db 52434D6F 		.string	"RCModule"
- 7282      64756C65 
- 7282      00
- 7283              	.LASF283:
- 7284 06e4 7263456E 		.string	"rcEncryption"
- 7284      63727970 
- 7284      74696F6E 
- 7284      00
- 7285              	.LASF318:
- 7286 06f1 72634578 		.string	"rcExists"
- 7286      69737473 
- 7286      00
- 7287              	.LASF78:
- 7288 06fa 43697068 		.string	"CipherVec"
- 7288      65725665 
- 7288      6300
-
GAS LISTING /tmp/ccq6ONvw.s 			page 164
-
-
- 7289              	.LASF59:
- 7290 0704 656E6372 		.string	"encrypt_ecb"
- 7290      7970745F 
- 7290      65636200 
- 7291              	.LASF337:
- 7292 0710 72634F70 		.string	"rcOpen"
- 7292      656E00
- 7293              	.LASF323:
- 7294 0717 72634465 		.string	"rcDeadlock"
- 7294      61646C6F 
- 7294      636B00
- 7295              	.LASF260:
- 7296 0722 72634C69 		.string	"rcLink"
- 7296      6E6B00
- 7297              	.LASF247:
- 7298 0729 7263466C 		.string	"rcFlushing"
- 7298      75736869 
- 7298      6E6700
- 7299              	.LASF295:
- 7300 0734 72634E6F 		.string	"rcNoErr"
- 7300      45727200 
- 7301              	.LASF274:
- 7302 073c 72635461 		.string	"rcTag"
- 7302      6700
- 7303              	.LASF23:
- 7304 0742 4442475F 		.string	"DBG_ALIGN"
- 7304      414C4947 
- 7304      4E00
- 7305              	.LASF238:
- 7306 074c 72634C6F 		.string	"rcLogging"
- 7306      6767696E 
- 7306      6700
- 7307              	.LASF331:
- 7308 0756 7263546F 		.string	"rcTooBig"
- 7308      6F426967 
- 7308      00
- 7309              	.LASF175:
- 7310 075f 72635665 		.string	"rcVector"
- 7310      63746F72 
- 7310      00
- 7311              	.LASF210:
- 7312 0768 72635265 		.string	"rcResizing"
- 7312      73697A69 
- 7312      6E6700
- 7313              	.LASF184:
- 7314 0773 72635175 		.string	"rcQuery"
- 7314      65727900 
- 7315              	.LASF8:
- 7316 077b 6C6F6E67 		.string	"long unsigned int"
- 7316      20756E73 
- 7316      69676E65 
- 7316      6420696E 
- 7316      7400
- 7317              	.LASF316:
- 7318 078d 72634578 		.string	"rcExcessive"
- 7318      63657373 
- 7318      69766500 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 165
-
-
- 7319              	.LASF244:
- 7320 0799 72634576 		.string	"rcEvaluating"
- 7320      616C7561 
- 7320      74696E67 
- 7320      00
- 7321              	.LASF181:
- 7322 07a6 7263526E 		.string	"rcRng"
- 7322      6700
- 7323              	.LASF189:
- 7324 07ac 72634361 		.string	"rcCasting"
- 7324      7374696E 
- 7324      6700
- 7325              	.LASF352:
- 7326 07b6 73656C66 		.string	"self"
- 7326      00
- 7327              	.LASF149:
- 7328 07bb 72634974 		.string	"rcIterator"
- 7328      65726174 
- 7328      6F7200
- 7329              	.LASF376:
- 7330 07c6 4B436970 		.string	"KCipherVecDecryptCbc"
- 7330      68657256 
- 7330      65634465 
- 7330      63727970 
- 7330      74436263 
- 7331              	.LASF84:
- 7332 07db 4B426C6F 		.string	"KBlockCipherVec"
- 7332      636B4369 
- 7332      70686572 
- 7332      56656300 
- 7333              	.LASF166:
- 7334 07eb 72635374 		.string	"rcStorage"
- 7334      6F726167 
- 7334      6500
- 7335              	.LASF68:
- 7336 07f5 64656372 		.string	"decrypt_ofb"
- 7336      7970745F 
- 7336      6F666200 
- 7337              	.LASF46:
- 7338 0801 626C6F63 		.string	"block_cipher"
- 7338      6B5F6369 
- 7338      70686572 
- 7338      00
- 7339              	.LASF372:
- 7340 080e 626C6F63 		.string	"block_count"
- 7340      6B5F636F 
- 7340      756E7400 
- 7341              	.LASF278:
- 7342 081a 7263526F 		.string	"rcRow"
- 7342      7700
- 7343              	.LASF382:
- 7344 0820 4B436970 		.string	"KCipherVecEncryptOfb"
- 7344      68657256 
- 7344      6563456E 
- 7344      63727970 
- 7344      744F6662 
- 7345              	.LASF20:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 166
-
-
- 7346 0835 4442475F 		.string	"DBG_VDB"
- 7346      56444200 
- 7347              	.LASF94:
- 7348 083d 6B636970 		.string	"kcipher_type"
- 7348      6865725F 
- 7348      74797065 
- 7348      00
- 7349              	.LASF178:
- 7350 084a 72634C61 		.string	"rcLastTarget_v1_0"
- 7350      73745461 
- 7350      72676574 
- 7350      5F76315F 
- 7350      3000
- 7351              	.LASF186:
- 7352 085c 72634C61 		.string	"rcLastTarget_v1_1"
- 7352      73745461 
- 7352      72676574 
- 7352      5F76315F 
- 7352      3100
- 7353              	.LASF165:
- 7354 086e 72635365 		.string	"rcSemaphore"
- 7354      6D617068 
- 7354      6F726500 
- 7355              	.LASF219:
- 7356 087a 7263436F 		.string	"rcConcatenating"
- 7356      6E636174 
- 7356      656E6174 
- 7356      696E6700 
- 7357              	.LASF310:
- 7358 088a 7263496E 		.string	"rcIncomplete"
- 7358      636F6D70 
- 7358      6C657465 
- 7358      00
- 7359              	.LASF339:
- 7360 0897 72634E6F 		.string	"rcNotOpen"
- 7360      744F7065 
- 7360      6E00
- 7361              	.LASF148:
- 7362 08a1 7263496E 		.string	"rcIndex"
- 7362      64657800 
- 7363              	.LASF67:
- 7364 08a9 656E6372 		.string	"encrypt_ofb"
- 7364      7970745F 
- 7364      6F666200 
- 7365              	.LASF55:
- 7366 08b5 7365745F 		.string	"set_encrypt_ctr_func"
- 7366      656E6372 
- 7366      7970745F 
- 7366      6374725F 
- 7366      66756E63 
- 7367              	.LASF22:
- 7368 08ca 4442475F 		.string	"DBG_XARC"
- 7368      58415243 
- 7368      00
- 7369              	.LASF395:
- 7370 08d3 474E5520 		.string	"GNU C 4.4.2"
- 7370      4320342E 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 167
-
-
- 7370      342E3200 
- 7371              	.LASF360:
- 7372 08df 69766563 		.string	"ivec"
- 7372      00
- 7373              	.LASF101:
- 7374 08e4 72635275 		.string	"rcRuntime"
- 7374      6E74696D 
- 7374      6500
- 7375              	.LASF140:
- 7376 08ee 7263586D 		.string	"rcXmlDoc"
- 7376      6C446F63 
- 7376      00
- 7377              	.LASF73:
- 7378 08f7 6C6F6E67 		.string	"long long int"
- 7378      206C6F6E 
- 7378      6720696E 
- 7378      7400
- 7379              	.LASF221:
- 7380 0905 7263506F 		.string	"rcPositioning"
- 7380      73697469 
- 7380      6F6E696E 
- 7380      6700
- 7381              	.LASF34:
- 7382 0913 636F756E 		.string	"counter"
- 7382      74657200 
- 7383              	.LASF70:
- 7384 091b 64656372 		.string	"decrypt_ctr"
- 7384      7970745F 
- 7384      63747200 
- 7385              	.LASF95:
- 7386 0927 6B636970 		.string	"kcipher_null"
- 7386      6865725F 
- 7386      6E756C6C 
- 7386      00
- 7387              	.LASF152:
- 7388 0934 72634D44 		.string	"rcMD5SumFmt"
- 7388      3553756D 
- 7388      466D7400 
- 7389              	.LASF388:
- 7390 0940 4B436970 		.string	"KCipherVecInitAes"
- 7390      68657256 
- 7390      6563496E 
- 7390      69744165 
- 7390      7300
- 7391              	.LASF203:
- 7392 0952 7263496E 		.string	"rcInserting"
- 7392      73657274 
- 7392      696E6700 
- 7393              	.LASF384:
- 7394 095e 4B436970 		.string	"KCipherVecEncryptCtr"
- 7394      68657256 
- 7394      6563456E 
- 7394      63727970 
- 7394      74437472 
- 7395              	.LASF251:
- 7396 0973 7263436F 		.string	"rcComparing"
- 7396      6D706172 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 168
-
-
- 7396      696E6700 
- 7397              	.LASF313:
- 7398 097f 7263456D 		.string	"rcEmpty"
- 7398      70747900 
- 7399              	.LASF145:
- 7400 0987 7263466F 		.string	"rcFormatter"
- 7400      726D6174 
- 7400      74657200 
- 7401              	.LASF76:
- 7402 0993 646F7562 		.string	"double"
- 7402      6C6500
- 7403              	.LASF230:
- 7404 099a 72635265 		.string	"rcRegistering"
- 7404      67697374 
- 7404      6572696E 
- 7404      6700
- 7405              	.LASF35:
- 7406 09a8 72656663 		.string	"refcount"
- 7406      6F756E74 
- 7406      00
- 7407              	.LASF119:
- 7408 09b1 72634E53 		.string	"rcNS"
- 7408      00
- 7409              	.LASF262:
- 7410 09b6 72635061 		.string	"rcParam"
- 7410      72616D00 
- 7411              	.LASF227:
- 7412 09be 72634578 		.string	"rcExecuting"
- 7412      65637574 
- 7412      696E6700 
- 7413              	.LASF123:
- 7414 09ca 52435461 		.string	"RCTarget"
- 7414      72676574 
- 7414      00
- 7415              	.LASF368:
- 7416 09d3 4B436970 		.string	"KCipherVecDecryptV1Int"
- 7416      68657256 
- 7416      65634465 
- 7416      63727970 
- 7416      74563149 
- 7417              	.LASF284:
- 7418 09ea 72634372 		.string	"rcCrc"
- 7418      6300
- 7419              	.LASF26:
- 7420 09f0 4442475F 		.string	"DBG_SEARCH"
- 7420      53454152 
- 7420      434800
- 7421              	.LASF112:
- 7422 09fb 7263584D 		.string	"rcXML"
- 7422      4C00
- 7423              	.LASF69:
- 7424 0a01 656E6372 		.string	"encrypt_ctr"
- 7424      7970745F 
- 7424      63747200 
- 7425              	.LASF400:
- 7426 0a0d 4B436970 		.string	"KCipherVecClassName"
- 7426      68657256 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 169
-
-
- 7426      6563436C 
- 7426      6173734E 
- 7426      616D6500 
- 7427              	.LASF28:
- 7428 0a21 4442475F 		.string	"DBG_VFS"
- 7428      56465300 
- 7429              	.LASF74:
- 7430 0a29 666C6F61 		.string	"float"
- 7430      7400
- 7431              	.LASF206:
- 7432 0a2f 72635570 		.string	"rcUpdating"
- 7432      64617469 
- 7432      6E6700
- 7433              	.LASF399:
- 7434 0a3a 4B436970 		.string	"KCipherVecMake"
- 7434      68657256 
- 7434      65634D61 
- 7434      6B6500
- 7435              	.LASF233:
- 7436 0a49 7263436F 		.string	"rcConverting"
- 7436      6E766572 
- 7436      74696E67 
- 7436      00
- 7437              	.LASF64:
- 7438 0a56 64656372 		.string	"decrypt_pcbc"
- 7438      7970745F 
- 7438      70636263 
- 7438      00
- 7439              	.LASF98:
- 7440 0a63 4B426C6F 		.string	"KBlockCipher"
- 7440      636B4369 
- 7440      70686572 
- 7440      00
- 7441              	.LASF176:
- 7442 0a70 72634479 		.string	"rcDylib"
- 7442      6C696200 
- 7443              	.LASF325:
- 7444 0a78 72635265 		.string	"rcReadonly"
- 7444      61646F6E 
- 7444      6C7900
- 7445              	.LASF369:
- 7446 0a83 4B436970 		.string	"KCipherVecEncrypt"
- 7446      68657256 
- 7446      6563456E 
- 7446      63727970 
- 7446      7400
- 7447              	.LASF381:
- 7448 0a95 4B436970 		.string	"KCipherVecDecryptCfb"
- 7448      68657256 
- 7448      65634465 
- 7448      63727970 
- 7448      74436662 
- 7449              	.LASF7:
- 7450 0aaa 756E7369 		.string	"unsigned int"
- 7450      676E6564 
- 7450      20696E74 
- 7450      00
-
GAS LISTING /tmp/ccq6ONvw.s 			page 170
-
-
- 7451              	.LASF326:
- 7452 0ab7 72635772 		.string	"rcWriteonly"
- 7452      6974656F 
- 7452      6E6C7900 
- 7453              	.LASF47:
- 7454 0ac3 4B436970 		.string	"KCipher_vt"
- 7454      6865725F 
- 7454      767400
- 7455              	.LASF320:
- 7456 0ace 72634C6F 		.string	"rcLocked"
- 7456      636B6564 
- 7456      00
- 7457              	.LASF202:
- 7458 0ad7 72635072 		.string	"rcProjecting"
- 7458      6F6A6563 
- 7458      74696E67 
- 7458      00
- 7459              	.LASF107:
- 7460 0ae4 72635053 		.string	"rcPS"
- 7460      00
- 7461              	.LASF292:
- 7462 0ae9 72635265 		.string	"rcRefcount"
- 7462      66636F75 
- 7462      6E7400
- 7463              	.LASF127:
- 7464 0af4 7263546F 		.string	"rcTocEntry"
- 7464      63456E74 
- 7464      727900
- 7465              	.LASF383:
- 7466 0aff 4B436970 		.string	"KCipherVecDecryptOfb"
- 7466      68657256 
- 7466      65634465 
- 7466      63727970 
- 7466      744F6662 
- 7467              	.LASF282:
- 7468 0b14 72634D6F 		.string	"rcMode"
- 7468      646500
- 7469              	.LASF341:
- 7470 0b1b 7263556E 		.string	"rcUnequal"
- 7470      65717561 
- 7470      6C00
- 7471              	.LASF322:
- 7472 0b25 72634465 		.string	"rcDetached"
- 7472      74616368 
- 7472      656400
- 7473              	.LASF328:
- 7474 0b30 7263496E 		.string	"rcInPlaceNotAllowed"
- 7474      506C6163 
- 7474      654E6F74 
- 7474      416C6C6F 
- 7474      77656400 
- 7475              	.LASF270:
- 7476 0b44 72635261 		.string	"rcRange"
- 7476      6E676500 
- 7477              	.LASF397:
- 7478 0b4c 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 7478      652F726F 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 171
-
-
- 7478      6461726D 
- 7478      65722F73 
- 7478      72615F73 
- 7479              	.LASF280:
- 7480 0b94 72634C61 		.string	"rcLastObject_v1_0"
- 7480      73744F62 
- 7480      6A656374 
- 7480      5F76315F 
- 7480      3000
- 7481              	.LASF293:
- 7482 0ba6 72634C61 		.string	"rcLastObject_v1_1"
- 7482      73744F62 
- 7482      6A656374 
- 7482      5F76315F 
- 7482      3100
- 7483              	.LASF99:
- 7484 0bb8 62797465 		.string	"byte"
- 7484      00
- 7485              	.LASF315:
- 7486 0bbd 7263496E 		.string	"rcInsufficient"
- 7486      73756666 
- 7486      69636965 
- 7486      6E7400
- 7487              	.LASF246:
- 7488 0bcc 72634C61 		.string	"rcLastContext_v1_0"
- 7488      7374436F 
- 7488      6E746578 
- 7488      745F7631 
- 7488      5F3000
- 7489              	.LASF257:
- 7490 0bdf 72634C61 		.string	"rcLastContext_v1_1"
- 7490      7374436F 
- 7490      6E746578 
- 7490      745F7631 
- 7490      5F3100
- 7491              	.LASF390:
- 7492 0bf2 4B436970 		.string	"KCipherVecInitNull"
- 7492      68657256 
- 7492      6563496E 
- 7492      69744E75 
- 7492      6C6C00
- 7493              	.LASF39:
- 7494 0c05 64656372 		.string	"decrypt_key"
- 7494      7970745F 
- 7494      6B657900 
- 7495              	.LASF177:
- 7496 0c11 72634578 		.string	"rcExpression"
- 7496      70726573 
- 7496      73696F6E 
- 7496      00
- 7497              	.LASF223:
- 7498 0c1e 7263556E 		.string	"rcUnpacking"
- 7498      7061636B 
- 7498      696E6700 
- 7499              	.LASF139:
- 7500 0c2a 7263446F 		.string	"rcDoc"
- 7500      6300
-
GAS LISTING /tmp/ccq6ONvw.s 			page 172
-
-
- 7501              	.LASF380:
- 7502 0c30 4B436970 		.string	"KCipherVecEncryptCfb"
- 7502      68657256 
- 7502      6563456E 
- 7502      63727970 
- 7502      74436662 
- 7503              	.LASF13:
- 7504 0c45 4442475F 		.string	"DBG_APP"
- 7504      41505000 
- 7505              	.LASF240:
- 7506 0c4d 72634D75 		.string	"rcMultiplexing"
- 7506      6C746970 
- 7506      6C657869 
- 7506      6E6700
- 7507              	.LASF242:
- 7508 0c5c 72635365 		.string	"rcSearching"
- 7508      61726368 
- 7508      696E6700 
- 7509              	.LASF342:
- 7510 0c68 72634661 		.string	"rcFailed"
- 7510      696C6564 
- 7510      00
- 7511              	.LASF48:
- 7512 0c71 4B436970 		.string	"KCipher_vt_v1"
- 7512      6865725F 
- 7512      76745F76 
- 7512      3100
- 7513              	.LASF361:
- 7514 0c7f 4B436970 		.string	"KCipherVecSetDecryptIvec"
- 7514      68657256 
- 7514      65635365 
- 7514      74446563 
- 7514      72797074 
- 7515              	.LASF307:
- 7516 0c98 7263496E 		.string	"rcIncorrect"
- 7516      636F7272 
- 7516      65637400 
- 7517              	.LASF146:
- 7518 0ca4 72634675 		.string	"rcFunctParam"
- 7518      6E637450 
- 7518      6172616D 
- 7518      00
- 7519              	.LASF38:
- 7520 0cb1 656E6372 		.string	"encrypt_key"
- 7520      7970745F 
- 7520      6B657900 
- 7521              	.LASF271:
- 7522 0cbd 7263436F 		.string	"rcConstraint"
- 7522      6E737472 
- 7522      61696E74 
- 7522      00
- 7523              	.LASF217:
- 7524 0cca 72634672 		.string	"rcFreezing"
- 7524      65657A69 
- 7524      6E6700
- 7525              	.LASF297:
- 7526 0cd5 7263556E 		.string	"rcUnknown"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 173
-
-
- 7526      6B6E6F77 
- 7526      6E00
- 7527              	.LASF136:
- 7528 0cdf 72634375 		.string	"rcCursor"
- 7528      72736F72 
- 7528      00
- 7529              	.LASF294:
- 7530 0ce8 52435374 		.string	"RCState"
- 7530      61746500 
- 7531              	.LASF82:
- 7532 0cf0 4B426C6F 		.string	"KBlockCipherByte"
- 7532      636B4369 
- 7532      70686572 
- 7532      42797465 
- 7532      00
- 7533              	.LASF142:
- 7534 0d01 72634669 		.string	"rcFileDesc"
- 7534      6C654465 
- 7534      736300
- 7535              	.LASF80:
- 7536 0d0c 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 7536      636B4369 
- 7536      70686572 
- 7536      42797465 
- 7536      5F76745F 
- 7537              	.LASF334:
- 7538 0d23 72634967 		.string	"rcIgnored"
- 7538      6E6F7265 
- 7538      6400
- 7539              	.LASF91:
- 7540 0d2d 655F6976 		.string	"e_ivec"
- 7540      656300
- 7541              	.LASF192:
- 7542 0d34 72635265 		.string	"rcReleasing"
- 7542      6C656173 
- 7542      696E6700 
- 7543              	.LASF115:
- 7544 0d40 72634B46 		.string	"rcKFG"
- 7544      4700
- 7545              	.LASF273:
- 7546 0d46 72634D65 		.string	"rcMessage"
- 7546      73736167 
- 7546      6500
- 7547              	.LASF220:
- 7548 0d50 7263466F 		.string	"rcFormatting"
- 7548      726D6174 
- 7548      74696E67 
- 7548      00
- 7549              	.LASF113:
- 7550 0d5d 72635352 		.string	"rcSRA"
- 7550      4100
- 7551              	.LASF289:
- 7552 0d63 7263456E 		.string	"rcEnvironment"
- 7552      7669726F 
- 7552      6E6D656E 
- 7552      7400
- 7553              	.LASF75:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 174
-
-
- 7554 0d71 6C6F6E67 		.string	"long long unsigned int"
- 7554      206C6F6E 
- 7554      6720756E 
- 7554      7369676E 
- 7554      65642069 
- 7555              	.LASF50:
- 7556 0d88 64657374 		.string	"destroy"
- 7556      726F7900 
- 7557              	.LASF171:
- 7558 0d90 7263546F 		.string	"rcToken"
- 7558      6B656E00 
- 7559              	.LASF231:
- 7560 0d98 7263546F 		.string	"rcTokenizing"
- 7560      6B656E69 
- 7560      7A696E67 
- 7560      00
- 7561              	.LASF16:
- 7562 0da5 4442475F 		.string	"DBG_REF"
- 7562      52454600 
- 7563              	.LASF212:
- 7564 0dad 72635772 		.string	"rcWriting"
- 7564      6974696E 
- 7564      6700
- 7565              	.LASF188:
- 7566 0db7 7263416C 		.string	"rcAllocating"
- 7566      6C6F6361 
- 7566      74696E67 
- 7566      00
- 7567              	.LASF174:
- 7568 0dc4 72635479 		.string	"rcType"
- 7568      706500
- 7569              	.LASF275:
- 7570 0dcb 72635265 		.string	"rcResources"
- 7570      736F7572 
- 7570      63657300 
- 7571              	.LASF156:
- 7572 0dd7 72634E61 		.string	"rcNamelist"
- 7572      6D656C69 
- 7572      737400
- 7573              	.LASF340:
- 7574 0de2 7263556E 		.string	"rcUndefined"
- 7574      64656669 
- 7574      6E656400 
- 7575              	.LASF92:
- 7576 0dee 645F6976 		.string	"d_ivec"
- 7576      656300
- 7577              	.LASF308:
- 7578 0df5 7263496E 		.string	"rcInconsistent"
- 7578      636F6E73 
- 7578      69737465 
- 7578      6E7400
- 7579              	.LASF253:
- 7580 0e04 72635265 		.string	"rcRetrieving"
- 7580      74726965 
- 7580      76696E67 
- 7580      00
- 7581              	.LASF58:
-
GAS LISTING /tmp/ccq6ONvw.s 			page 175
-
-
- 7582 0e11 64656372 		.string	"decrypt"
- 7582      79707400 
- 7583              	.LASF49:
- 7584 0e19 76657273 		.string	"version"
- 7584      696F6E00 
- 7585              	.LASF265:
- 7586 0e21 72634E61 		.string	"rcName"
- 7586      6D6500
- 7587              	.LASF367:
- 7588 0e28 4B436970 		.string	"KCipherVecEncryptV1Int"
- 7588      68657256 
- 7588      6563456E 
- 7588      63727970 
- 7588      74563149 
- 7589              	.LASF54:
- 7590 0e3f 7365745F 		.string	"set_decrypt_ivec"
- 7590      64656372 
- 7590      7970745F 
- 7590      69766563 
- 7590      00
- 7591              	.LASF302:
- 7592 0e50 72634E75 		.string	"rcNull"
- 7592      6C6C00
- 7593              	.LASF224:
- 7594 0e57 7263456E 		.string	"rcEncoding"
- 7594      636F6469 
- 7594      6E6700
- 7595              	.LASF143:
- 7596 0e62 72634669 		.string	"rcFileFormat"
- 7596      6C65466F 
- 7596      726D6174 
- 7596      00
- 7597              	.LASF180:
- 7598 0e6f 7263456E 		.string	"rcEncryptionKey"
- 7598      63727970 
- 7598      74696F6E 
- 7598      4B657900 
- 7599              	.LASF245:
- 7600 0e7f 7263496E 		.string	"rcInflating"
- 7600      666C6174 
- 7600      696E6700 
- 7601              	.LASF327:
- 7602 0e8b 72634E6F 		.string	"rcNoPerm"
- 7602      5065726D 
- 7602      00
- 7603              	.LASF353:
- 7604 0e94 4B436970 		.string	"KCipherVecSetEncryptKey"
- 7604      68657256 
- 7604      65635365 
- 7604      74456E63 
- 7604      72797074 
- 7605              	.LASF358:
- 7606 0eac 4B436970 		.string	"KCipherVecSetDecryptKey"
- 7606      68657256 
- 7606      65635365 
- 7606      74446563 
- 7606      72797074 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 176
-
-
- 7607              	.LASF215:
- 7608 0ec4 72635265 		.string	"rcResetting"
- 7608      73657474 
- 7608      696E6700 
- 7609              	.LASF36:
- 7610 0ed0 626C6F63 		.string	"block_size"
- 7610      6B5F7369 
- 7610      7A6500
- 7611              	.LASF163:
- 7612 0edb 72635257 		.string	"rcRWLock"
- 7612      4C6F636B 
- 7612      00
- 7613              	.LASF194:
- 7614 0ee4 72634C69 		.string	"rcListing"
- 7614      7374696E 
- 7614      6700
- 7615              	.LASF63:
- 7616 0eee 656E6372 		.string	"encrypt_pcbc"
- 7616      7970745F 
- 7616      70636263 
- 7616      00
- 7617              	.LASF32:
- 7618 0efb 4B526566 		.string	"KRefcount"
- 7618      636F756E 
- 7618      7400
- 7619              	.LASF144:
- 7620 0f05 72634675 		.string	"rcFunction"
- 7620      6E637469 
- 7620      6F6E00
- 7621              	.LASF300:
- 7622 0f10 7263556E 		.string	"rcUnrecognized"
- 7622      7265636F 
- 7622      676E697A 
- 7622      656400
- 7623              	.LASF87:
- 7624 0f1f 6E756D62 		.string	"number_of_rounds"
- 7624      65725F6F 
- 7624      665F726F 
- 7624      756E6473 
- 7624      00
- 7625              	.LASF116:
- 7626 0f30 7263416C 		.string	"rcAlign"
- 7626      69676E00 
- 7627              	.LASF179:
- 7628 0f38 72635072 		.string	"rcProduction"
- 7628      6F647563 
- 7628      74696F6E 
- 7628      00
- 7629              	.LASF169:
- 7630 0f45 72635468 		.string	"rcThread"
- 7630      72656164 
- 7630      00
- 7631              	.LASF37:
- 7632 0f4e 6E616D65 		.string	"name"
- 7632      00
- 7633              	.LASF391:
- 7634 0f53 6E756C6C 		.string	"null"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 177
-
-
- 7634      00
- 7635              	.LASF52:
- 7636 0f58 7365745F 		.string	"set_decrypt_key"
- 7636      64656372 
- 7636      7970745F 
- 7636      6B657900 
- 7637              	.LASF373:
- 7638 0f68 706F7574 		.string	"pout"
- 7638      00
- 7639              	.LASF33:
- 7640 0f6d 4B436970 		.string	"KCipher"
- 7640      68657200 
- 7641              	.LASF79:
- 7642 0f75 4B426C6F 		.string	"KBlockCipher_vt"
- 7642      636B4369 
- 7642      70686572 
- 7642      5F767400 
- 7643              	.LASF286:
- 7644 0f85 72635365 		.string	"rcSeed"
- 7644      656400
- 7645              	.LASF243:
- 7646 0f8c 72634C6F 		.string	"rcLoading"
- 7646      6164696E 
- 7646      6700
- 7647              	.LASF1:
- 7648 0f96 73686F72 		.string	"short int"
- 7648      7420696E 
- 7648      7400
- 7649              	.LASF364:
- 7650 0fa0 4B436970 		.string	"KCipherVecSetDecryptCounterFunc"
- 7650      68657256 
- 7650      65635365 
- 7650      74446563 
- 7650      72797074 
- 7651              	.LASF351:
- 7652 0fc0 4B436970 		.string	"KCipherVecDestroy"
- 7652      68657256 
- 7652      65634465 
- 7652      7374726F 
- 7652      7900
- 7653              	.LASF363:
- 7654 0fd2 66756E63 		.string	"func"
- 7654      00
- 7655              	.LASF336:
- 7656 0fd7 72634C61 		.string	"rcLastState_v1_0"
- 7656      73745374 
- 7656      6174655F 
- 7656      76315F30 
- 7656      00
- 7657              	.LASF345:
- 7658 0fe8 72634C61 		.string	"rcLastState_v1_1"
- 7658      73745374 
- 7658      6174655F 
- 7658      76315F31 
- 7658      00
- 7659              	.LASF110:
- 7660 0ff9 72635644 		.string	"rcVDB"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 178
-
-
- 7660      4200
- 7661              	.LASF93:
- 7662 0fff 43697068 		.string	"CipherNull"
- 7662      65724E75 
- 7662      6C6C00
- 7663              	.LASF51:
- 7664 100a 7365745F 		.string	"set_encrypt_key"
- 7664      656E6372 
- 7664      7970745F 
- 7664      6B657900 
- 7665              	.LASF108:
- 7666 101a 72635846 		.string	"rcXF"
- 7666      00
- 7667              	.LASF71:
- 7668 101f 4B436970 		.string	"KCipher_ptr"
- 7668      6865725F 
- 7668      70747200 
- 7669              	.LASF89:
- 7670 102b 655F6B65 		.string	"e_key"
- 7670      7900
- 7671              	.LASF191:
- 7672 1031 72634465 		.string	"rcDestroying"
- 7672      7374726F 
- 7672      79696E67 
- 7672      00
- 7673              	.LASF296:
- 7674 103e 7263446F 		.string	"rcDone"
- 7674      6E6500
- 7675              	.LASF126:
- 7676 1045 7263546F 		.string	"rcToc"
- 7676      6300
- 7677              	.LASF43:
- 7678 104b 64656372 		.string	"decrypt_counter_func"
- 7678      7970745F 
- 7678      636F756E 
- 7678      7465725F 
- 7678      66756E63 
- 7679              	.LASF374:
- 7680 1060 4B436970 		.string	"KCipherVecDecryptEcb"
- 7680      68657256 
- 7680      65634465 
- 7680      63727970 
- 7680      74456362 
- 7681              	.LASF200:
- 7682 1075 7263416C 		.string	"rcAliasing"
- 7682      69617369 
- 7682      6E6700
- 7683              	.LASF161:
- 7684 1080 72635072 		.string	"rcProcess"
- 7684      6F636573 
- 7684      7300
- 7685              	.LASF259:
- 7686 108a 72634E6F 		.string	"rcNoObj"
- 7686      4F626A00 
- 7687              	.LASF298:
- 7688 1092 7263556E 		.string	"rcUnsupported"
- 7688      73757070 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 179
-
-
- 7688      6F727465 
- 7688      6400
- 7689              	.LASF237:
- 7690 10a0 72634465 		.string	"rcDetaching"
- 7690      74616368 
- 7690      696E6700 
- 7691              	.LASF134:
- 7692 10ac 7263436F 		.string	"rcColumn"
- 7692      6C756D6E 
- 7692      00
- 7693              	.LASF42:
- 7694 10b5 656E6372 		.string	"encrypt_counter_func"
- 7694      7970745F 
- 7694      636F756E 
- 7694      7465725F 
- 7694      66756E63 
- 7695              	.LASF299:
- 7696 10ca 7263556E 		.string	"rcUnexpected"
- 7696      65787065 
- 7696      63746564 
- 7696      00
- 7697              	.LASF62:
- 7698 10d7 64656372 		.string	"decrypt_cbc"
- 7698      7970745F 
- 7698      63626300 
- 7699              	.LASF6:
- 7700 10e3 75696E74 		.string	"uint32_t"
- 7700      33325F74 
- 7700      00
- 7701              	.LASF120:
- 7702 10ec 72635646 		.string	"rcVFS"
- 7702      5300
- 7703              	.LASF25:
- 7704 10f2 4442475F 		.string	"DBG_KRYPTO"
- 7704      4B525950 
- 7704      544F00
- 7705              	.LASF375:
- 7706 10fd 4B436970 		.string	"KCipherVecEncryptCbc"
- 7706      68657256 
- 7706      6563456E 
- 7706      63727970 
- 7706      74436263 
- 7707              	.LASF344:
- 7708 1112 72635772 		.string	"rcWrongType"
- 7708      6F6E6754 
- 7708      79706500 
- 7709              	.LASF279:
- 7710 111e 72634C69 		.string	"rcLibrary"
- 7710      62726172 
- 7710      7900
- 7711              	.LASF312:
- 7712 1128 72634361 		.string	"rcCanceled"
- 7712      6E63656C 
- 7712      656400
- 7713              	.LASF183:
- 7714 1133 72634461 		.string	"rcData"
- 7714      746100
-
GAS LISTING /tmp/ccq6ONvw.s 			page 180
-
-
- 7715              	.LASF147:
- 7716 113a 72634865 		.string	"rcHeader"
- 7716      61646572 
- 7716      00
- 7717              	.LASF4:
- 7718 1143 73686F72 		.string	"short unsigned int"
- 7718      7420756E 
- 7718      7369676E 
- 7718      65642069 
- 7718      6E7400
- 7719              	.LASF137:
- 7720 1156 72634461 		.string	"rcDatabase"
- 7720      74616261 
- 7720      736500
- 7721              	.LASF61:
- 7722 1161 656E6372 		.string	"encrypt_cbc"
- 7722      7970745F 
- 7722      63626300 
- 7723              	.LASF213:
- 7724 116d 7263436F 		.string	"rcCommitting"
- 7724      6D6D6974 
- 7724      74696E67 
- 7724      00
- 7725              	.LASF241:
- 7726 117a 7263436C 		.string	"rcClassifying"
- 7726      61737369 
- 7726      6679696E 
- 7726      6700
- 7727              	.LASF172:
- 7728 1188 72635472 		.string	"rcTree"
- 7728      656500
- 7729              	.LASF41:
- 7730 118f 64656372 		.string	"decrypt_ivec"
- 7730      7970745F 
- 7730      69766563 
- 7730      00
- 7731              	.LASF30:
- 7732 119c 4442475F 		.string	"DBG_ARGS"
- 7732      41524753 
- 7732      00
- 7733              	.LASF201:
- 7734 11a5 72635365 		.string	"rcSelecting"
- 7734      6C656374 
- 7734      696E6700 
- 7735              	.LASF102:
- 7736 11b1 72635465 		.string	"rcText"
- 7736      787400
- 7737              	.LASF338:
- 7738 11b8 72634F75 		.string	"rcOutoforder"
- 7738      746F666F 
- 7738      72646572 
- 7738      00
- 7739              	.LASF386:
- 7740 11c5 4B436970 		.string	"KCipherVecAllocAes"
- 7740      68657256 
- 7740      6563416C 
- 7740      6C6F6341 
-
GAS LISTING /tmp/ccq6ONvw.s 			page 181
-
-
- 7740      657300
- 7741              	.LASF305:
- 7742 11d8 7263496E 		.string	"rcInvalid"
- 7742      76616C69 
- 7742      6400
- 7743              	.LASF252:
- 7744 11e2 7263496E 		.string	"rcInitializing"
- 7744      69746961 
- 7744      6C697A69 
- 7744      6E6700
- 7745              	.LASF131:
- 7746 11f1 7263426C 		.string	"rcBlob"
- 7746      6F6200
- 7747              	.LASF53:
- 7748 11f8 7365745F 		.string	"set_encrypt_ivec"
- 7748      656E6372 
- 7748      7970745F 
- 7748      69766563 
- 7748      00
- 7749              	.LASF377:
- 7750 1209 74656D70 		.string	"temp"
- 7750      00
- 7751              	.LASF229:
- 7752 120e 72635265 		.string	"rcReindexing"
- 7752      696E6465 
- 7752      78696E67 
- 7752      00
- 7753              	.LASF124:
- 7754 121b 72634E6F 		.string	"rcNoTarg"
- 7754      54617267 
- 7754      00
- 7755              	.LASF306:
- 7756 1224 7263436F 		.string	"rcCorrupt"
- 7756      72727570 
- 7756      7400
- 7757              	.LASF335:
- 7758 122e 72634F75 		.string	"rcOutofrange"
- 7758      746F6672 
- 7758      616E6765 
- 7758      00
- 7759              	.LASF164:
- 7760 123b 72635363 		.string	"rcSchema"
- 7760      68656D61 
- 7760      00
- 7761              	.LASF346:
- 7762 1244 43697068 		.string	"CipherVec_u"
- 7762      65725665 
- 7762      635F7500 
- 7763              	.LASF160:
- 7764 1250 72635061 		.string	"rcPath"
- 7764      746800
- 7765              	.LASF211:
- 7766 1257 72635265 		.string	"rcReading"
- 7766      6164696E 
- 7766      6700
- 7767              	.LASF81:
- 7768 1261 6B65795F 		.string	"key_size"
-
GAS LISTING /tmp/ccq6ONvw.s 			page 182
-
-
- 7768      73697A65 
- 7768      00
- 7769              	.LASF343:
- 7770 126a 72634E6F 		.string	"rcNotAvailable"
- 7770      74417661 
- 7770      696C6162 
- 7770      6C6500
- 7771              	.LASF370:
- 7772 1279 4B436970 		.string	"KCipherVecDecrypt"
- 7772      68657256 
- 7772      65634465 
- 7772      63727970 
- 7772      7400
- 7773              	.LASF301:
- 7774 128b 7263416D 		.string	"rcAmbiguous"
- 7774      62696775 
- 7774      6F757300 
- 7775              		.ident	"GCC: (GNU) 4.4.2"
- 7776              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccq6ONvw.s 			page 183
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 cipher-vec.c
-     /tmp/ccq6ONvw.s:14     .rodata:0000000000000000 KCipherVecClassName
-     /tmp/ccq6ONvw.s:18     .text:0000000000000000 CipherVecIn
-     /tmp/ccq6ONvw.s:48     .text:000000000000002b CipherVecOut
-     /tmp/ccq6ONvw.s:79     .text:0000000000000060 KCipherVecDestroy
-     /tmp/ccq6ONvw.s:127    .text:000000000000009a KCipherVecSetEncryptKey
-     /tmp/ccq6ONvw.s:2002   .rodata:00000000000002e0 __PRETTY_FUNCTION__.6562
-     /tmp/ccq6ONvw.s:2007   .rodata:0000000000000300 __func__.6564
-     /tmp/ccq6ONvw.s:212    .text:0000000000000184 KCipherVecSetDecryptKey
-     /tmp/ccq6ONvw.s:1992   .rodata:00000000000002a0 __PRETTY_FUNCTION__.6586
-     /tmp/ccq6ONvw.s:1997   .rodata:00000000000002c0 __func__.6588
-     /tmp/ccq6ONvw.s:301    .text:000000000000026e KCipherVecSetEncryptIvec
-     /tmp/ccq6ONvw.s:1987   .rodata:0000000000000280 __PRETTY_FUNCTION__.6608
-     /tmp/ccq6ONvw.s:352    .text:00000000000002f1 KCipherVecSetDecryptIvec
-     /tmp/ccq6ONvw.s:1982   .rodata:0000000000000260 __PRETTY_FUNCTION__.6621
-     /tmp/ccq6ONvw.s:407    .text:0000000000000374 KCipherVecSetEncryptCounterFunc
-     /tmp/ccq6ONvw.s:1977   .rodata:0000000000000240 __PRETTY_FUNCTION__.6634
-     /tmp/ccq6ONvw.s:452    .text:00000000000003e3 KCipherVecSetDecryptCounterFunc
-     /tmp/ccq6ONvw.s:1972   .rodata:0000000000000220 __PRETTY_FUNCTION__.6644
-     /tmp/ccq6ONvw.s:497    .text:0000000000000452 KCipherVecEncryptV1
-     /tmp/ccq6ONvw.s:525    .text:0000000000000479 KCipherVecDecryptV1
-     /tmp/ccq6ONvw.s:553    .text:00000000000004a0 KCipherVecEncryptV1Int
-     /tmp/ccq6ONvw.s:593    .text:00000000000004f3 KCipherVecDecryptV1Int
-     /tmp/ccq6ONvw.s:633    .text:0000000000000546 KCipherVecEncrypt
-     /tmp/ccq6ONvw.s:1962   .rodata:00000000000001d0 __func__.6694
-     /tmp/ccq6ONvw.s:682    .text:00000000000005aa KCipherVecDecrypt
-     /tmp/ccq6ONvw.s:1952   .rodata:0000000000000190 __func__.6710
-     /tmp/ccq6ONvw.s:733    .text:0000000000000615 KCipherVecEncryptEcb
-     /tmp/ccq6ONvw.s:789    .text:0000000000000685 KCipherVecDecryptEcb
-     /tmp/ccq6ONvw.s:845    .text:00000000000006f5 KCipherVecEncryptCbc
-     /tmp/ccq6ONvw.s:927    .text:00000000000007c3 KCipherVecDecryptCbc
-     /tmp/ccq6ONvw.s:1013   .text:0000000000000897 KCipherVecEncryptPcbc
-     /tmp/ccq6ONvw.s:1100   .text:0000000000000974 KCipherVecDecryptPcbc
-     /tmp/ccq6ONvw.s:1182   .text:0000000000000a3a KCipherVecEncryptCfb
-     /tmp/ccq6ONvw.s:1262   .text:0000000000000b00 KCipherVecDecryptCfb
-     /tmp/ccq6ONvw.s:1342   .text:0000000000000bc6 KCipherVecEncryptOfb
-     /tmp/ccq6ONvw.s:1422   .text:0000000000000c8c KCipherVecDecryptOfb
-     /tmp/ccq6ONvw.s:1457   .text:0000000000000cc5 KCipherVecEncryptCtr
-     /tmp/ccq6ONvw.s:1942   .rodata:0000000000000150 __func__.6944
-     /tmp/ccq6ONvw.s:1486   .text:0000000000000cfb KCipherVecDecryptCtr
-     /tmp/ccq6ONvw.s:1932   .rodata:0000000000000110 __func__.6954
-     /tmp/ccq6ONvw.s:1518   .data.rel.local:0000000000000000 KCipherVec_vt_v1
-     /tmp/ccq6ONvw.s:1544   .text:0000000000000d31 KCipherVecAllocAes
-     /tmp/ccq6ONvw.s:1922   .rodata:00000000000000d0 __func__.6964
-     /tmp/ccq6ONvw.s:1586   .text:0000000000000d8c KCipherVecInitAes
-     /tmp/ccq6ONvw.s:1647   .text:0000000000000e2a KCipherVecAllocNull
-     /tmp/ccq6ONvw.s:1912   .rodata:0000000000000090 __func__.6991
-     /tmp/ccq6ONvw.s:1689   .text:0000000000000e85 KCipherVecInitNull
-     /tmp/ccq6ONvw.s:1751   .text:0000000000000f1a KCipherVecMake
-     /tmp/ccq6ONvw.s:1903   .rodata:000000000000006e __func__.7019
-     /tmp/ccq6ONvw.s:1907   .rodata:000000000000007d __PRETTY_FUNCTION__.7018
-     /tmp/ccq6ONvw.s:1917   .rodata:00000000000000b0 __PRETTY_FUNCTION__.6990
-     /tmp/ccq6ONvw.s:1927   .rodata:00000000000000f0 __PRETTY_FUNCTION__.6963
-     /tmp/ccq6ONvw.s:1937   .rodata:0000000000000130 __PRETTY_FUNCTION__.6953
-     /tmp/ccq6ONvw.s:1947   .rodata:0000000000000170 __PRETTY_FUNCTION__.6943
-     /tmp/ccq6ONvw.s:1957   .rodata:00000000000001b0 __PRETTY_FUNCTION__.6709
-
GAS LISTING /tmp/ccq6ONvw.s 			page 184
-
-
-     /tmp/ccq6ONvw.s:1967   .rodata:00000000000001f0 __PRETTY_FUNCTION__.6693
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-memmove
-KCipherDestroy
-free
-__assert_fail
-SetRCFileFuncLine
-memcpy
-calloc
-KCipherInit
-KNullBlockCipherVecMake
-KAESBlockCipherVecMake
diff --git a/libs/krypto/cipher-vec.vecreg.pic.o.list b/libs/krypto/cipher-vec.vecreg.pic.o.list
deleted file mode 100644
index 408133d..0000000
--- a/libs/krypto/cipher-vec.vecreg.pic.o.list
+++ /dev/null
@@ -1,10919 +0,0 @@
-GAS LISTING /tmp/ccXzRABk.s 			page 1
-
-
-   1              		.file	"cipher-vec.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 D9030000 		.text
-   8      0200F201 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              	.globl KCipherVecRegClassName
-  11              		.section	.rodata
-  12              		.type	KCipherVecRegClassName, @object
-  13              		.size	KCipherVecRegClassName, 12
-  14              	KCipherVecRegClassName:
-  15 0000 43495048 		.string	"CIPHER_IMPL"
-  15      45525F49 
-  15      4D504C00 
-  16              		.text
-  17              		.type	CipherVecIn, @function
-  18              	CipherVecIn:
-  19              	.LFB590:
-  20              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/defs.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* CIPHER_IMPL and BLOCKCIPHER_IMPL are defined in this header */
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* CIPHER_IMPL is used in this header */
-
GAS LISTING /tmp/ccXzRABk.s 			page 2
-
-
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "cipher-impl.h"
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* BLOCKCIPHER_IMPL is used in this header */
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "blockcipher-impl.h"
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "aes-ncbi-priv.h"
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "null-ncbi-priv.h"
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "cipher-priv.h"
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include "blockcipher-priv.h"
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/cipher.h>
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <krypto/ciphermgr.h>
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/defs.h>
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/refcount.h>
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/out.h>
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <klib/rc.h>
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <sysalloc.h>
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <stdlib.h>
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <string.h>
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #include <assert.h>
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** const char CMEMBER(ClassName)[] = CLASS_STRING(CIPHER_IMPL);
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** struct CIPHER_IMPL
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher dad;
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const KBlockCipherVec * block_cipher;
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** };
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** typedef union CipherVec_u
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec   vec;
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherBlock block;
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** } CipherVec_u;
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Read a blocks worth of bytes into an AESState
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec CipherVecIn (const void * cvin)
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  21              		.loc 1 76 0
-  22              		.cfi_startproc
-  23 0000 55       		pushq	%rbp
-  24              	.LCFI0:
-  25              		.cfi_def_cfa_offset 16
-  26 0001 4889E5   		movq	%rsp, %rbp
-  27              		.cfi_offset 6, -16
-  28              	.LCFI1:
-  29              		.cfi_def_cfa_register 6
-  30 0004 48897DF8 		movq	%rdi, -8(%rbp)
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if USE_VEC_REG
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     register CipherVec cv;
-
GAS LISTING /tmp/ccXzRABk.s 			page 3
-
-
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     __asm__ (
-  31              		.loc 1 80 0
-  32 0008 488B45F8 		movq	-8(%rbp), %rax
-  33 000c 4889C7   		movq	%rax, %rdi
-  34              	#APP
-  35              	# 80 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c" 1
-  81              	        "movdqu (%[a]),%[s]" : [s] "=x" (cv) : [a] "D" (cvin)
-  36              		movdqu (%rdi),%xmm0
-  37              	# 0 "" 2
-  38              	#NO_APP
-  39 0013 660F7F45 		movdqa	%xmm0, -32(%rbp)
-  39      E0
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         );
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return cv;
-  40              		.loc 1 84 0
-  41 0018 660F6F45 		movdqa	-32(%rbp), %xmm0
-  41      E0
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec_u u;
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memmove (&u.block, cvin, sizeof (u));
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return u.vec;
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
-  42              		.loc 1 91 0
-  43 001d C9       		leave
-  44 001e C3       		ret
-  45              		.cfi_endproc
-  46              	.LFE590:
-  47              		.size	CipherVecIn, .-CipherVecIn
-  48              		.type	CipherVecOut, @function
-  49              	CipherVecOut:
-  50              	.LFB591:
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /*
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Write a block's worth of bytes out from an AESState
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ void CipherVecOut (const CipherVec cv, void * cvout)
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  51              		.loc 1 99 0
-  52              		.cfi_startproc
-  53 001f 55       		pushq	%rbp
-  54              	.LCFI2:
-  55              		.cfi_def_cfa_offset 16
-  56 0020 4889E5   		movq	%rsp, %rbp
-  57              		.cfi_offset 6, -16
-  58              	.LCFI3:
-  59              		.cfi_def_cfa_register 6
-  60 0023 660F7F45 		movdqa	%xmm0, -16(%rbp)
-  60      F0
-  61 0028 48897DE8 		movq	%rdi, -24(%rbp)
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if USE_VEC_REG
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     register CipherVec rcv = cv;
-
GAS LISTING /tmp/ccXzRABk.s 			page 4
-
-
-  62              		.loc 1 101 0
-  63 002c 660F6F45 		movdqa	-16(%rbp), %xmm0
-  63      F0
-  64 0031 660F7F45 		movdqa	%xmm0, -48(%rbp)
-  64      D0
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     __asm__ (
-  65              		.loc 1 103 0
-  66 0036 488B45E8 		movq	-24(%rbp), %rax
-  67 003a 660F6F45 		movdqa	-48(%rbp), %xmm0
-  67      D0
-  68 003f 4889C7   		movq	%rax, %rdi
-  69              	#APP
-  70              	# 103 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c" 1
- 104              	        "movdqu %[s],(%[a])" : : [s] "x" (rcv), [a] "D" (cvout)
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         );
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec lcv = cv;
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memmove (cvout, &lcv, sizeof (lcv));
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
-  71              		movdqu %xmm0,(%rdi)
-  72              	# 0 "" 2
-  73              		.loc 1 110 0
-  74              	#NO_APP
-  75 0046 C9       		leave
-  76 0047 C3       		ret
-  77              		.cfi_endproc
-  78              	.LFE591:
-  79              		.size	CipherVecOut, .-CipherVecOut
-  80              		.type	KCipherVecRegDestroy, @function
-  81              	KCipherVecRegDestroy:
-  82              	.LFB592:
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(Destroy) (CIPHER_IMPL * self)
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-  83              		.loc 1 114 0
-  84              		.cfi_startproc
-  85 0048 55       		pushq	%rbp
-  86              	.LCFI4:
-  87              		.cfi_def_cfa_offset 16
-  88 0049 4889E5   		movq	%rsp, %rbp
-  89              		.cfi_offset 6, -16
-  90              	.LCFI5:
-  91              		.cfi_def_cfa_register 6
-  92 004c 4883EC20 		subq	$32, %rsp
-  93 0050 48897DE8 		movq	%rdi, -24(%rbp)
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
-  94              		.loc 1 115 0
-  95 0054 C745FC00 		movl	$0, -4(%rbp)
-  95      000000
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (self)
-  96              		.loc 1 117 0
-  97 005b 48837DE8 		cmpq	$0, -24(%rbp)
-  97      00
-
GAS LISTING /tmp/ccXzRABk.s 			page 5
-
-
-  98 0060 741B     		je	.L6
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc =  KCipherDestroy (&self->dad);
-  99              		.loc 1 119 0
- 100 0062 488B45E8 		movq	-24(%rbp), %rax
- 101 0066 4889C7   		movq	%rax, %rdi
- 102 0069 E8000000 		call	KCipherDestroy at PLT
- 102      00
- 103 006e 8945FC   		movl	%eax, -4(%rbp)
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         free (self);
- 104              		.loc 1 120 0
- 105 0071 488B45E8 		movq	-24(%rbp), %rax
- 106 0075 4889C7   		movq	%rax, %rdi
- 107 0078 E8000000 		call	free at PLT
- 107      00
- 108              	.L6:
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 109              		.loc 1 122 0
- 110 007d 8B45FC   		movl	-4(%rbp), %eax
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 111              		.loc 1 123 0
- 112 0080 C9       		leave
- 113 0081 C3       		ret
- 114              		.cfi_endproc
- 115              	.LFE592:
- 116              		.size	KCipherVecRegDestroy, .-KCipherVecRegDestroy
- 117              		.section	.rodata
- 118 000c 00000000 		.align 8
- 119              	.LC0:
- 120 0010 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
- 120      652F726F 
- 120      6461726D 
- 120      65722F73 
- 120      72615F73 
- 121              	.LC1:
- 122 0048 73656C66 		.string	"self"
- 122      00
- 123              	.LC2:
- 124 004d 75736572 		.string	"user_key"
- 124      5F6B6579 
- 124      00
- 125              	.LC3:
- 126 0056 75736572 		.string	"user_key_bits"
- 126      5F6B6579 
- 126      5F626974 
- 126      7300
- 127              		.text
- 128              		.type	KCipherVecRegSetEncryptKey, @function
- 129              	KCipherVecRegSetEncryptKey:
- 130              	.LFB593:
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(SetEncryptKey)(CIPHER_IMPL * self,
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   const char * user_key,
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   uint32_t user_key_bits)
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-
GAS LISTING /tmp/ccXzRABk.s 			page 6
-
-
- 131              		.loc 1 129 0
- 132              		.cfi_startproc
- 133 0082 55       		pushq	%rbp
- 134              	.LCFI6:
- 135              		.cfi_def_cfa_offset 16
- 136 0083 4889E5   		movq	%rsp, %rbp
- 137              		.cfi_offset 6, -16
- 138              	.LCFI7:
- 139              		.cfi_def_cfa_register 6
- 140 0086 53       		pushq	%rbx
- 141 0087 4883EC38 		subq	$56, %rsp
- 142 008b 48897DD8 		movq	%rdi, -40(%rbp)
- 143 008f 488975D0 		movq	%rsi, -48(%rbp)
- 144 0093 8955CC   		movl	%edx, -52(%rbp)
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 145              		.loc 1 130 0
- 146 0096 C745EC00 		movl	$0, -20(%rbp)
- 146      000000
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 147              		.loc 1 132 0
- 148 009d 48837DD8 		cmpq	$0, -40(%rbp)
- 148      00
- 149 00a2 751F     		jne	.L9
- 150              		.cfi_offset 3, -24
- 151 00a4 488D0D00 		leaq	__PRETTY_FUNCTION__.7218(%rip), %rcx
- 151      000000
- 152 00ab BA840000 		movl	$132, %edx
- 152      00
- 153 00b0 488D3500 		leaq	.LC0(%rip), %rsi
- 153      000000
- 154 00b7 488D3D00 		leaq	.LC1(%rip), %rdi
- 154      000000
- 155 00be E8000000 		call	__assert_fail at PLT
- 155      00
- 156              	.L9:
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key);
- 157              		.loc 1 133 0
- 158 00c3 48837DD0 		cmpq	$0, -48(%rbp)
- 158      00
- 159 00c8 751F     		jne	.L10
- 160 00ca 488D0D00 		leaq	__PRETTY_FUNCTION__.7218(%rip), %rcx
- 160      000000
- 161 00d1 BA850000 		movl	$133, %edx
- 161      00
- 162 00d6 488D3500 		leaq	.LC0(%rip), %rsi
- 162      000000
- 163 00dd 488D3D00 		leaq	.LC2(%rip), %rdi
- 163      000000
- 164 00e4 E8000000 		call	__assert_fail at PLT
- 164      00
- 165              	.L10:
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key_bits);
- 166              		.loc 1 134 0
- 167 00e9 837DCC00 		cmpl	$0, -52(%rbp)
- 168 00ed 751F     		jne	.L11
- 169 00ef 488D0D00 		leaq	__PRETTY_FUNCTION__.7218(%rip), %rcx
-
GAS LISTING /tmp/ccXzRABk.s 			page 7
-
-
- 169      000000
- 170 00f6 BA860000 		movl	$134, %edx
- 170      00
- 171 00fb 488D3500 		leaq	.LC0(%rip), %rsi
- 171      000000
- 172 0102 488D3D00 		leaq	.LC3(%rip), %rdi
- 172      000000
- 173 0109 E8000000 		call	__assert_fail at PLT
- 173      00
- 174              	.L11:
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 175              		.loc 1 136 0
- 176 010e 488B45D8 		movq	-40(%rbp), %rax
- 177 0112 488B4048 		movq	72(%rax), %rax
- 178 0116 8B00     		movl	(%rax), %eax
- 179 0118 83F801   		cmpl	$1, %eax
- 180 011b 7422     		je	.L13
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
- 181              		.loc 1 139 0
- 182 011d B98B0000 		movl	$139, %ecx
- 182      00
- 183 0122 488D1500 		leaq	__func__.7220(%rip), %rdx
- 183      000000
- 184 0129 488D3500 		leaq	.LC0(%rip), %rsi
- 184      000000
- 185 0130 BF088E04 		movl	$-2029744632, %edi
- 185      87
- 186 0135 E8000000 		call	SetRCFileFuncLine at PLT
- 186      00
- 187 013a 8945EC   		movl	%eax, -20(%rbp)
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 188              		.loc 1 140 0
- 189 013d EB23     		jmp	.L14
- 190              	.L13:
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         self->block_cipher->v1.set_encrypt_key (self->dad.encrypt_key, user_key,
- 191              		.loc 1 143 0
- 192 013f 488B45D8 		movq	-40(%rbp), %rax
- 193 0143 488B4048 		movq	72(%rax), %rax
- 194 0147 488B5820 		movq	32(%rax), %rbx
- 195 014b 488B45D8 		movq	-40(%rbp), %rax
- 196 014f 488B4018 		movq	24(%rax), %rax
- 197 0153 8B55CC   		movl	-52(%rbp), %edx
- 198 0156 488B4DD0 		movq	-48(%rbp), %rcx
- 199 015a 4889CE   		movq	%rcx, %rsi
- 200 015d 4889C7   		movq	%rax, %rdi
- 201 0160 FFD3     		call	*%rbx
- 202              	.L14:
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                                 user_key_bits);
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 203              		.loc 1 147 0
-
GAS LISTING /tmp/ccXzRABk.s 			page 8
-
-
- 204 0162 8B45EC   		movl	-20(%rbp), %eax
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 205              		.loc 1 148 0
- 206 0165 4883C438 		addq	$56, %rsp
- 207 0169 5B       		popq	%rbx
- 208 016a C9       		leave
- 209 016b C3       		ret
- 210              		.cfi_endproc
- 211              	.LFE593:
- 212              		.size	KCipherVecRegSetEncryptKey, .-KCipherVecRegSetEncryptKey
- 213              		.type	KCipherVecRegSetDecryptKey, @function
- 214              	KCipherVecRegSetDecryptKey:
- 215              	.LFB594:
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(SetDecryptKey)(CIPHER_IMPL * self,
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   const char * user_key,
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                   uint32_t user_key_bits)
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 216              		.loc 1 154 0
- 217              		.cfi_startproc
- 218 016c 55       		pushq	%rbp
- 219              	.LCFI8:
- 220              		.cfi_def_cfa_offset 16
- 221 016d 4889E5   		movq	%rsp, %rbp
- 222              		.cfi_offset 6, -16
- 223              	.LCFI9:
- 224              		.cfi_def_cfa_register 6
- 225 0170 53       		pushq	%rbx
- 226 0171 4883EC38 		subq	$56, %rsp
- 227 0175 48897DD8 		movq	%rdi, -40(%rbp)
- 228 0179 488975D0 		movq	%rsi, -48(%rbp)
- 229 017d 8955CC   		movl	%edx, -52(%rbp)
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 230              		.loc 1 155 0
- 231 0180 C745EC00 		movl	$0, -20(%rbp)
- 231      000000
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 232              		.loc 1 157 0
- 233 0187 48837DD8 		cmpq	$0, -40(%rbp)
- 233      00
- 234 018c 751F     		jne	.L17
- 235              		.cfi_offset 3, -24
- 236 018e 488D0D00 		leaq	__PRETTY_FUNCTION__.7242(%rip), %rcx
- 236      000000
- 237 0195 BA9D0000 		movl	$157, %edx
- 237      00
- 238 019a 488D3500 		leaq	.LC0(%rip), %rsi
- 238      000000
- 239 01a1 488D3D00 		leaq	.LC1(%rip), %rdi
- 239      000000
- 240 01a8 E8000000 		call	__assert_fail at PLT
- 240      00
- 241              	.L17:
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key);
- 242              		.loc 1 158 0
-
GAS LISTING /tmp/ccXzRABk.s 			page 9
-
-
- 243 01ad 48837DD0 		cmpq	$0, -48(%rbp)
- 243      00
- 244 01b2 751F     		jne	.L18
- 245 01b4 488D0D00 		leaq	__PRETTY_FUNCTION__.7242(%rip), %rcx
- 245      000000
- 246 01bb BA9E0000 		movl	$158, %edx
- 246      00
- 247 01c0 488D3500 		leaq	.LC0(%rip), %rsi
- 247      000000
- 248 01c7 488D3D00 		leaq	.LC2(%rip), %rdi
- 248      000000
- 249 01ce E8000000 		call	__assert_fail at PLT
- 249      00
- 250              	.L18:
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (user_key_bits);
- 251              		.loc 1 159 0
- 252 01d3 837DCC00 		cmpl	$0, -52(%rbp)
- 253 01d7 751F     		jne	.L19
- 254 01d9 488D0D00 		leaq	__PRETTY_FUNCTION__.7242(%rip), %rcx
- 254      000000
- 255 01e0 BA9F0000 		movl	$159, %edx
- 255      00
- 256 01e5 488D3500 		leaq	.LC0(%rip), %rsi
- 256      000000
- 257 01ec 488D3D00 		leaq	.LC3(%rip), %rdi
- 257      000000
- 258 01f3 E8000000 		call	__assert_fail at PLT
- 258      00
- 259              	.L19:
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 260              		.loc 1 161 0
- 261 01f8 488B45D8 		movq	-40(%rbp), %rax
- 262 01fc 488B4048 		movq	72(%rax), %rax
- 263 0200 8B00     		movl	(%rax), %eax
- 264 0202 83F801   		cmpl	$1, %eax
- 265 0205 7422     		je	.L21
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcUpdating, rcBlockCipher, rcBadVersion);
- 266              		.loc 1 164 0
- 267 0207 B9A40000 		movl	$164, %ecx
- 267      00
- 268 020c 488D1500 		leaq	__func__.7244(%rip), %rdx
- 268      000000
- 269 0213 488D3500 		leaq	.LC0(%rip), %rsi
- 269      000000
- 270 021a BF088E04 		movl	$-2029744632, %edi
- 270      87
- 271 021f E8000000 		call	SetRCFileFuncLine at PLT
- 271      00
- 272 0224 8945EC   		movl	%eax, -20(%rbp)
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 273              		.loc 1 165 0
- 274 0227 EB23     		jmp	.L22
- 275              	.L21:
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccXzRABk.s 			page 10
-
-
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         self->block_cipher->v1.set_decrypt_key (self->dad.decrypt_key, user_key,
- 276              		.loc 1 168 0
- 277 0229 488B45D8 		movq	-40(%rbp), %rax
- 278 022d 488B4048 		movq	72(%rax), %rax
- 279 0231 488B5828 		movq	40(%rax), %rbx
- 280 0235 488B45D8 		movq	-40(%rbp), %rax
- 281 0239 488B4020 		movq	32(%rax), %rax
- 282 023d 8B55CC   		movl	-52(%rbp), %edx
- 283 0240 488B4DD0 		movq	-48(%rbp), %rcx
- 284 0244 4889CE   		movq	%rcx, %rsi
- 285 0247 4889C7   		movq	%rax, %rdi
- 286 024a FFD3     		call	*%rbx
- 287              	.L22:
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                                     user_key_bits);
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 288              		.loc 1 172 0
- 289 024c 8B45EC   		movl	-20(%rbp), %eax
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 290              		.loc 1 173 0
- 291 024f 4883C438 		addq	$56, %rsp
- 292 0253 5B       		popq	%rbx
- 293 0254 C9       		leave
- 294 0255 C3       		ret
- 295              		.cfi_endproc
- 296              	.LFE594:
- 297              		.size	KCipherVecRegSetDecryptKey, .-KCipherVecRegSetDecryptKey
- 298              		.section	.rodata
- 299              	.LC4:
- 300 0064 69766563 		.string	"ivec"
- 300      00
- 301              		.text
- 302              		.type	KCipherVecRegSetEncryptIvec, @function
- 303              	KCipherVecRegSetEncryptIvec:
- 304              	.LFB595:
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetEncryptIvec) (CIPHER_IMPL * self,
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                              const void * ivec)
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 305              		.loc 1 179 0
- 306              		.cfi_startproc
- 307 0256 55       		pushq	%rbp
- 308              	.LCFI10:
- 309              		.cfi_def_cfa_offset 16
- 310 0257 4889E5   		movq	%rsp, %rbp
- 311              		.cfi_offset 6, -16
- 312              	.LCFI11:
- 313              		.cfi_def_cfa_register 6
- 314 025a 4883EC10 		subq	$16, %rsp
- 315 025e 48897DF8 		movq	%rdi, -8(%rbp)
- 316 0262 488975F0 		movq	%rsi, -16(%rbp)
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 317              		.loc 1 180 0
-
GAS LISTING /tmp/ccXzRABk.s 			page 11
-
-
- 318 0266 48837DF8 		cmpq	$0, -8(%rbp)
- 318      00
- 319 026b 751F     		jne	.L25
- 320 026d 488D0D00 		leaq	__PRETTY_FUNCTION__.7264(%rip), %rcx
- 320      000000
- 321 0274 BAB40000 		movl	$180, %edx
- 321      00
- 322 0279 488D3500 		leaq	.LC0(%rip), %rsi
- 322      000000
- 323 0280 488D3D00 		leaq	.LC1(%rip), %rdi
- 323      000000
- 324 0287 E8000000 		call	__assert_fail at PLT
- 324      00
- 325              	.L25:
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (ivec);
- 326              		.loc 1 181 0
- 327 028c 48837DF0 		cmpq	$0, -16(%rbp)
- 327      00
- 328 0291 751F     		jne	.L26
- 329 0293 488D0D00 		leaq	__PRETTY_FUNCTION__.7264(%rip), %rcx
- 329      000000
- 330 029a BAB50000 		movl	$181, %edx
- 330      00
- 331 029f 488D3500 		leaq	.LC0(%rip), %rsi
- 331      000000
- 332 02a6 488D3D00 		leaq	.LC4(%rip), %rdi
- 332      000000
- 333 02ad E8000000 		call	__assert_fail at PLT
- 333      00
- 334              	.L26:
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memcpy (self->dad.encrypt_ivec, ivec, self->dad.block_size);
- 335              		.loc 1 183 0
- 336 02b2 488B45F8 		movq	-8(%rbp), %rax
- 337 02b6 8B4004   		movl	4(%rax), %eax
- 338 02b9 89C2     		mov	%eax, %edx
- 339 02bb 488B45F8 		movq	-8(%rbp), %rax
- 340 02bf 488B4028 		movq	40(%rax), %rax
- 341 02c3 488B4DF0 		movq	-16(%rbp), %rcx
- 342 02c7 4889CE   		movq	%rcx, %rsi
- 343 02ca 4889C7   		movq	%rax, %rdi
- 344 02cd E8000000 		call	memcpy at PLT
- 344      00
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 345              		.loc 1 185 0
- 346 02d2 B8000000 		movl	$0, %eax
- 346      00
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 347              		.loc 1 186 0
- 348 02d7 C9       		leave
- 349 02d8 C3       		ret
- 350              		.cfi_endproc
- 351              	.LFE595:
- 352              		.size	KCipherVecRegSetEncryptIvec, .-KCipherVecRegSetEncryptIvec
- 353              		.type	KCipherVecRegSetDecryptIvec, @function
- 354              	KCipherVecRegSetDecryptIvec:
-
GAS LISTING /tmp/ccXzRABk.s 			page 12
-
-
- 355              	.LFB596:
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetDecryptIvec) (CIPHER_IMPL * self,
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                              const void * ivec)
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 356              		.loc 1 192 0
- 357              		.cfi_startproc
- 358 02d9 55       		pushq	%rbp
- 359              	.LCFI12:
- 360              		.cfi_def_cfa_offset 16
- 361 02da 4889E5   		movq	%rsp, %rbp
- 362              		.cfi_offset 6, -16
- 363              	.LCFI13:
- 364              		.cfi_def_cfa_register 6
- 365 02dd 4883EC10 		subq	$16, %rsp
- 366 02e1 48897DF8 		movq	%rdi, -8(%rbp)
- 367 02e5 488975F0 		movq	%rsi, -16(%rbp)
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 368              		.loc 1 193 0
- 369 02e9 48837DF8 		cmpq	$0, -8(%rbp)
- 369      00
- 370 02ee 751F     		jne	.L29
- 371 02f0 488D0D00 		leaq	__PRETTY_FUNCTION__.7277(%rip), %rcx
- 371      000000
- 372 02f7 BAC10000 		movl	$193, %edx
- 372      00
- 373 02fc 488D3500 		leaq	.LC0(%rip), %rsi
- 373      000000
- 374 0303 488D3D00 		leaq	.LC1(%rip), %rdi
- 374      000000
- 375 030a E8000000 		call	__assert_fail at PLT
- 375      00
- 376              	.L29:
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (ivec);
- 377              		.loc 1 194 0
- 378 030f 48837DF0 		cmpq	$0, -16(%rbp)
- 378      00
- 379 0314 751F     		jne	.L30
- 380 0316 488D0D00 		leaq	__PRETTY_FUNCTION__.7277(%rip), %rcx
- 380      000000
- 381 031d BAC20000 		movl	$194, %edx
- 381      00
- 382 0322 488D3500 		leaq	.LC0(%rip), %rsi
- 382      000000
- 383 0329 488D3D00 		leaq	.LC4(%rip), %rdi
- 383      000000
- 384 0330 E8000000 		call	__assert_fail at PLT
- 384      00
- 385              	.L30:
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     memcpy (self->dad.decrypt_ivec, ivec, self->dad.block_size);
- 386              		.loc 1 196 0
- 387 0335 488B45F8 		movq	-8(%rbp), %rax
- 388 0339 8B4004   		movl	4(%rax), %eax
- 389 033c 89C2     		mov	%eax, %edx
-
GAS LISTING /tmp/ccXzRABk.s 			page 13
-
-
- 390 033e 488B45F8 		movq	-8(%rbp), %rax
- 391 0342 488B4030 		movq	48(%rax), %rax
- 392 0346 488B4DF0 		movq	-16(%rbp), %rcx
- 393 034a 4889CE   		movq	%rcx, %rsi
- 394 034d 4889C7   		movq	%rax, %rdi
- 395 0350 E8000000 		call	memcpy at PLT
- 395      00
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 396              		.loc 1 198 0
- 397 0355 B8000000 		movl	$0, %eax
- 397      00
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 398              		.loc 1 199 0
- 399 035a C9       		leave
- 400 035b C3       		ret
- 401              		.cfi_endproc
- 402              	.LFE596:
- 403              		.size	KCipherVecRegSetDecryptIvec, .-KCipherVecRegSetDecryptIvec
- 404              		.section	.rodata
- 405              	.LC5:
- 406 0069 66756E63 		.string	"func"
- 406      00
- 407              		.text
- 408              		.type	KCipherVecRegSetEncryptCounterFunc, @function
- 409              	KCipherVecRegSetEncryptCounterFunc:
- 410              	.LFB597:
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetEncryptCounterFunc) (CIPHER_IMPL * self,
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                     cipher_ctr_func func)
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 411              		.loc 1 205 0
- 412              		.cfi_startproc
- 413 035c 55       		pushq	%rbp
- 414              	.LCFI14:
- 415              		.cfi_def_cfa_offset 16
- 416 035d 4889E5   		movq	%rsp, %rbp
- 417              		.cfi_offset 6, -16
- 418              	.LCFI15:
- 419              		.cfi_def_cfa_register 6
- 420 0360 4883EC10 		subq	$16, %rsp
- 421 0364 48897DF8 		movq	%rdi, -8(%rbp)
- 422 0368 488975F0 		movq	%rsi, -16(%rbp)
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 423              		.loc 1 206 0
- 424 036c 48837DF8 		cmpq	$0, -8(%rbp)
- 424      00
- 425 0371 751F     		jne	.L33
- 426 0373 488D0D00 		leaq	__PRETTY_FUNCTION__.7290(%rip), %rcx
- 426      000000
- 427 037a BACE0000 		movl	$206, %edx
- 427      00
- 428 037f 488D3500 		leaq	.LC0(%rip), %rsi
- 428      000000
- 429 0386 488D3D00 		leaq	.LC1(%rip), %rdi
-
GAS LISTING /tmp/ccXzRABk.s 			page 14
-
-
- 429      000000
- 430 038d E8000000 		call	__assert_fail at PLT
- 430      00
- 431              	.L33:
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (func);
- 432              		.loc 1 207 0
- 433 0392 48837DF0 		cmpq	$0, -16(%rbp)
- 433      00
- 434 0397 751F     		jne	.L34
- 435 0399 488D0D00 		leaq	__PRETTY_FUNCTION__.7290(%rip), %rcx
- 435      000000
- 436 03a0 BACF0000 		movl	$207, %edx
- 436      00
- 437 03a5 488D3500 		leaq	.LC0(%rip), %rsi
- 437      000000
- 438 03ac 488D3D00 		leaq	.LC5(%rip), %rdi
- 438      000000
- 439 03b3 E8000000 		call	__assert_fail at PLT
- 439      00
- 440              	.L34:
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->dad.encrypt_counter_func = func;
- 441              		.loc 1 209 0
- 442 03b8 488B45F8 		movq	-8(%rbp), %rax
- 443 03bc 488B55F0 		movq	-16(%rbp), %rdx
- 444 03c0 48895038 		movq	%rdx, 56(%rax)
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 445              		.loc 1 211 0
- 446 03c4 B8000000 		movl	$0, %eax
- 446      00
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 447              		.loc 1 212 0
- 448 03c9 C9       		leave
- 449 03ca C3       		ret
- 450              		.cfi_endproc
- 451              	.LFE597:
- 452              		.size	KCipherVecRegSetEncryptCounterFunc, .-KCipherVecRegSetEncryptCounterFunc
- 453              		.type	KCipherVecRegSetDecryptCounterFunc, @function
- 454              	KCipherVecRegSetDecryptCounterFunc:
- 455              	.LFB598:
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(SetDecryptCounterFunc) (CIPHER_IMPL * self,
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                     cipher_ctr_func func)
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 456              		.loc 1 218 0
- 457              		.cfi_startproc
- 458 03cb 55       		pushq	%rbp
- 459              	.LCFI16:
- 460              		.cfi_def_cfa_offset 16
- 461 03cc 4889E5   		movq	%rsp, %rbp
- 462              		.cfi_offset 6, -16
- 463              	.LCFI17:
- 464              		.cfi_def_cfa_register 6
- 465 03cf 4883EC10 		subq	$16, %rsp
-
GAS LISTING /tmp/ccXzRABk.s 			page 15
-
-
- 466 03d3 48897DF8 		movq	%rdi, -8(%rbp)
- 467 03d7 488975F0 		movq	%rsi, -16(%rbp)
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (self);
- 468              		.loc 1 219 0
- 469 03db 48837DF8 		cmpq	$0, -8(%rbp)
- 469      00
- 470 03e0 751F     		jne	.L37
- 471 03e2 488D0D00 		leaq	__PRETTY_FUNCTION__.7300(%rip), %rcx
- 471      000000
- 472 03e9 BADB0000 		movl	$219, %edx
- 472      00
- 473 03ee 488D3500 		leaq	.LC0(%rip), %rsi
- 473      000000
- 474 03f5 488D3D00 		leaq	.LC1(%rip), %rdi
- 474      000000
- 475 03fc E8000000 		call	__assert_fail at PLT
- 475      00
- 476              	.L37:
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     assert (func);
- 477              		.loc 1 220 0
- 478 0401 48837DF0 		cmpq	$0, -16(%rbp)
- 478      00
- 479 0406 751F     		jne	.L38
- 480 0408 488D0D00 		leaq	__PRETTY_FUNCTION__.7300(%rip), %rcx
- 480      000000
- 481 040f BADC0000 		movl	$220, %edx
- 481      00
- 482 0414 488D3500 		leaq	.LC0(%rip), %rsi
- 482      000000
- 483 041b 488D3D00 		leaq	.LC5(%rip), %rdi
- 483      000000
- 484 0422 E8000000 		call	__assert_fail at PLT
- 484      00
- 485              	.L38:
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->dad.decrypt_counter_func = func;
- 486              		.loc 1 222 0
- 487 0427 488B45F8 		movq	-8(%rbp), %rax
- 488 042b 488B55F0 		movq	-16(%rbp), %rdx
- 489 042f 48895040 		movq	%rdx, 64(%rax)
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 490              		.loc 1 224 0
- 491 0433 B8000000 		movl	$0, %eax
- 491      00
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 492              		.loc 1 225 0
- 493 0438 C9       		leave
- 494 0439 C3       		ret
- 495              		.cfi_endproc
- 496              	.LFE598:
- 497              		.size	KCipherVecRegSetDecryptCounterFunc, .-KCipherVecRegSetDecryptCounterFunc
- 498              		.type	KCipherVecRegEncryptV1, @function
- 499              	KCipherVecRegEncryptV1:
- 500              	.LFB599:
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccXzRABk.s 			page 16
-
-
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec CMEMBER(EncryptV1)(const CIPHER_IMPL * self,
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                               register CipherVec cv)
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 501              		.loc 1 230 0
- 502              		.cfi_startproc
- 503 043a 55       		pushq	%rbp
- 504              	.LCFI18:
- 505              		.cfi_def_cfa_offset 16
- 506 043b 4889E5   		movq	%rsp, %rbp
- 507              		.cfi_offset 6, -16
- 508              	.LCFI19:
- 509              		.cfi_def_cfa_register 6
- 510 043e 4883EC10 		subq	$16, %rsp
- 511 0442 48897DF8 		movq	%rdi, -8(%rbp)
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return self->block_cipher->v1.encrypt (cv, self->dad.encrypt_key);
- 512              		.loc 1 231 0
- 513 0446 488B45F8 		movq	-8(%rbp), %rax
- 514 044a 488B4048 		movq	72(%rax), %rax
- 515 044e 488B5030 		movq	48(%rax), %rdx
- 516 0452 488B45F8 		movq	-8(%rbp), %rax
- 517 0456 488B4018 		movq	24(%rax), %rax
- 518 045a 4889C7   		movq	%rax, %rdi
- 519 045d FFD2     		call	*%rdx
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 520              		.loc 1 232 0
- 521 045f C9       		leave
- 522 0460 C3       		ret
- 523              		.cfi_endproc
- 524              	.LFE599:
- 525              		.size	KCipherVecRegEncryptV1, .-KCipherVecRegEncryptV1
- 526              		.type	KCipherVecRegDecryptV1, @function
- 527              	KCipherVecRegDecryptV1:
- 528              	.LFB600:
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ CipherVec  CMEMBER(DecryptV1)(const CIPHER_IMPL * self,
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                               register CipherVec cv)
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 529              		.loc 1 237 0
- 530              		.cfi_startproc
- 531 0461 55       		pushq	%rbp
- 532              	.LCFI20:
- 533              		.cfi_def_cfa_offset 16
- 534 0462 4889E5   		movq	%rsp, %rbp
- 535              		.cfi_offset 6, -16
- 536              	.LCFI21:
- 537              		.cfi_def_cfa_register 6
- 538 0465 4883EC10 		subq	$16, %rsp
- 539 0469 48897DF8 		movq	%rdi, -8(%rbp)
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return self->block_cipher->v1.decrypt (cv, self->dad.decrypt_key);
- 540              		.loc 1 238 0
- 541 046d 488B45F8 		movq	-8(%rbp), %rax
- 542 0471 488B4048 		movq	72(%rax), %rax
- 543 0475 488B5038 		movq	56(%rax), %rdx
- 544 0479 488B45F8 		movq	-8(%rbp), %rax
- 545 047d 488B4020 		movq	32(%rax), %rax
- 546 0481 4889C7   		movq	%rax, %rdi
-
GAS LISTING /tmp/ccXzRABk.s 			page 17
-
-
- 547 0484 FFD2     		call	*%rdx
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 548              		.loc 1 239 0
- 549 0486 C9       		leave
- 550 0487 C3       		ret
- 551              		.cfi_endproc
- 552              	.LFE600:
- 553              		.size	KCipherVecRegDecryptV1, .-KCipherVecRegDecryptV1
- 554              		.type	KCipherVecRegEncryptV1Int, @function
- 555              	KCipherVecRegEncryptV1Int:
- 556              	.LFB601:
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ rc_t CMEMBER(EncryptV1Int)(const CIPHER_IMPL * self,
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                             const void * in, void * out)
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 557              		.loc 1 244 0
- 558              		.cfi_startproc
- 559 0488 55       		pushq	%rbp
- 560              	.LCFI22:
- 561              		.cfi_def_cfa_offset 16
- 562 0489 4889E5   		movq	%rsp, %rbp
- 563              		.cfi_offset 6, -16
- 564              	.LCFI23:
- 565              		.cfi_def_cfa_register 6
- 566 048c 4883EC30 		subq	$48, %rsp
- 567 0490 48897DE8 		movq	%rdi, -24(%rbp)
- 568 0494 488975E0 		movq	%rsi, -32(%rbp)
- 569 0498 488955D8 		movq	%rdx, -40(%rbp)
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CipherVecIn(in);
- 570              		.loc 1 247 0
- 571 049c 488B45E0 		movq	-32(%rbp), %rax
- 572 04a0 4889C7   		movq	%rax, %rdi
- 573 04a3 E858FBFF 		call	CipherVecIn
- 573      FF
- 574 04a8 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 574      F0
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CMEMBER(EncryptV1)(self, cv);
- 575              		.loc 1 248 0
- 576 04ad F30F6F45 		movdqu	-16(%rbp), %xmm0
- 576      F0
- 577 04b2 488B45E8 		movq	-24(%rbp), %rax
- 578 04b6 4889C7   		movq	%rax, %rdi
- 579 04b9 E87CFFFF 		call	KCipherVecRegEncryptV1
- 579      FF
- 580 04be F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 580      F0
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut(cv, out);
- 581              		.loc 1 249 0
- 582 04c3 488B45D8 		movq	-40(%rbp), %rax
- 583 04c7 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 583      F0
- 584 04cc 4889C7   		movq	%rax, %rdi
- 585 04cf E84BFBFF 		call	CipherVecOut
- 585      FF
-
GAS LISTING /tmp/ccXzRABk.s 			page 18
-
-
- 250:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 586              		.loc 1 250 0
- 587 04d4 B8000000 		movl	$0, %eax
- 587      00
- 251:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 588              		.loc 1 251 0
- 589 04d9 C9       		leave
- 590 04da C3       		ret
- 591              		.cfi_endproc
- 592              	.LFE601:
- 593              		.size	KCipherVecRegEncryptV1Int, .-KCipherVecRegEncryptV1Int
- 594              		.type	KCipherVecRegDecryptV1Int, @function
- 595              	KCipherVecRegDecryptV1Int:
- 596              	.LFB602:
- 252:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 253:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 254:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__ rc_t CMEMBER(DecryptV1Int)(const CIPHER_IMPL * self,
- 255:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                                             const void * in, void * out)
- 256:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 597              		.loc 1 256 0
- 598              		.cfi_startproc
- 599 04db 55       		pushq	%rbp
- 600              	.LCFI24:
- 601              		.cfi_def_cfa_offset 16
- 602 04dc 4889E5   		movq	%rsp, %rbp
- 603              		.cfi_offset 6, -16
- 604              	.LCFI25:
- 605              		.cfi_def_cfa_register 6
- 606 04df 4883EC30 		subq	$48, %rsp
- 607 04e3 48897DE8 		movq	%rdi, -24(%rbp)
- 608 04e7 488975E0 		movq	%rsi, -32(%rbp)
- 609 04eb 488955D8 		movq	%rdx, -40(%rbp)
- 257:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 258:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 259:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CipherVecIn(in);
- 610              		.loc 1 259 0
- 611 04ef 488B45E0 		movq	-32(%rbp), %rax
- 612 04f3 4889C7   		movq	%rax, %rdi
- 613 04f6 E805FBFF 		call	CipherVecIn
- 613      FF
- 614 04fb F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 614      F0
- 260:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     cv = CMEMBER(DecryptV1)(self, cv);
- 615              		.loc 1 260 0
- 616 0500 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 616      F0
- 617 0505 488B45E8 		movq	-24(%rbp), %rax
- 618 0509 4889C7   		movq	%rax, %rdi
- 619 050c E850FFFF 		call	KCipherVecRegDecryptV1
- 619      FF
- 620 0511 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 620      F0
- 261:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut(cv, out);
- 621              		.loc 1 261 0
- 622 0516 488B45D8 		movq	-40(%rbp), %rax
- 623 051a F30F6F45 		movdqu	-16(%rbp), %xmm0
- 623      F0
-
GAS LISTING /tmp/ccXzRABk.s 			page 19
-
-
- 624 051f 4889C7   		movq	%rax, %rdi
- 625 0522 E8F8FAFF 		call	CipherVecOut
- 625      FF
- 262:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 626              		.loc 1 262 0
- 627 0527 B8000000 		movl	$0, %eax
- 627      00
- 263:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 628              		.loc 1 263 0
- 629 052c C9       		leave
- 630 052d C3       		ret
- 631              		.cfi_endproc
- 632              	.LFE602:
- 633              		.size	KCipherVecRegDecryptV1Int, .-KCipherVecRegDecryptV1Int
- 634              		.type	KCipherVecRegEncrypt, @function
- 635              	KCipherVecRegEncrypt:
- 636              	.LFB603:
- 264:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 265:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 266:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static rc_t CMEMBER(Encrypt) (const CIPHER_IMPL * self, const void * in, void * out)
- 267:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 637              		.loc 1 267 0
- 638              		.cfi_startproc
- 639 052e 55       		pushq	%rbp
- 640              	.LCFI26:
- 641              		.cfi_def_cfa_offset 16
- 642 052f 4889E5   		movq	%rsp, %rbp
- 643              		.cfi_offset 6, -16
- 644              	.LCFI27:
- 645              		.cfi_def_cfa_register 6
- 646 0532 4883EC30 		subq	$48, %rsp
- 647 0536 48897DE8 		movq	%rdi, -24(%rbp)
- 648 053a 488975E0 		movq	%rsi, -32(%rbp)
- 649 053e 488955D8 		movq	%rdx, -40(%rbp)
- 268:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc;
- 269:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 270:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 650              		.loc 1 270 0
- 651 0542 488B45E8 		movq	-24(%rbp), %rax
- 652 0546 488B4048 		movq	72(%rax), %rax
- 653 054a 8B00     		movl	(%rax), %eax
- 654 054c 83F801   		cmpl	$1, %eax
- 655 054f 7422     		je	.L50
- 271:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 272:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 273:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
- 656              		.loc 1 273 0
- 657 0551 B9110100 		movl	$273, %ecx
- 657      00
- 658 0556 488D1500 		leaq	__func__.7350(%rip), %rdx
- 658      000000
- 659 055d 488D3500 		leaq	.LC0(%rip), %rsi
- 659      000000
- 660 0564 BF080E09 		movl	$-2029449720, %edi
- 660      87
- 661 0569 E8000000 		call	SetRCFileFuncLine at PLT
- 661      00
-
GAS LISTING /tmp/ccXzRABk.s 			page 20
-
-
- 662 056e 8945FC   		movl	%eax, -4(%rbp)
- 274:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 663              		.loc 1 274 0
- 664 0571 EB1A     		jmp	.L51
- 665              	.L50:
- 275:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 276:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 277:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = CMEMBER(EncryptV1Int)(self, in, out);
- 666              		.loc 1 277 0
- 667 0573 488B55D8 		movq	-40(%rbp), %rdx
- 668 0577 488B4DE0 		movq	-32(%rbp), %rcx
- 669 057b 488B45E8 		movq	-24(%rbp), %rax
- 670 057f 4889CE   		movq	%rcx, %rsi
- 671 0582 4889C7   		movq	%rax, %rdi
- 672 0585 E8FEFEFF 		call	KCipherVecRegEncryptV1Int
- 672      FF
- 673 058a 8945FC   		movl	%eax, -4(%rbp)
- 674              	.L51:
- 278:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 279:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 280:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 281:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 675              		.loc 1 281 0
- 676 058d 8B45FC   		movl	-4(%rbp), %eax
- 282:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 677              		.loc 1 282 0
- 678 0590 C9       		leave
- 679 0591 C3       		ret
- 680              		.cfi_endproc
- 681              	.LFE603:
- 682              		.size	KCipherVecRegEncrypt, .-KCipherVecRegEncrypt
- 683              		.type	KCipherVecRegDecrypt, @function
- 684              	KCipherVecRegDecrypt:
- 685              	.LFB604:
- 283:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 284:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 285:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 286:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(Decrypt) (const CIPHER_IMPL * self, const void * in, void * out)
- 287:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 686              		.loc 1 287 0
- 687              		.cfi_startproc
- 688 0592 55       		pushq	%rbp
- 689              	.LCFI28:
- 690              		.cfi_def_cfa_offset 16
- 691 0593 4889E5   		movq	%rsp, %rbp
- 692              		.cfi_offset 6, -16
- 693              	.LCFI29:
- 694              		.cfi_def_cfa_register 6
- 695 0596 4883EC30 		subq	$48, %rsp
- 696 059a 48897DE8 		movq	%rdi, -24(%rbp)
- 697 059e 488975E0 		movq	%rsi, -32(%rbp)
- 698 05a2 488955D8 		movq	%rdx, -40(%rbp)
- 288:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc = 0;
- 699              		.loc 1 288 0
- 700 05a6 C745FC00 		movl	$0, -4(%rbp)
- 700      000000
- 289:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccXzRABk.s 			page 21
-
-
- 290:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (self->block_cipher->version.maj)
- 701              		.loc 1 290 0
- 702 05ad 488B45E8 		movq	-24(%rbp), %rax
- 703 05b1 488B4048 		movq	72(%rax), %rax
- 704 05b5 8B00     		movl	(%rax), %eax
- 705 05b7 83F801   		cmpl	$1, %eax
- 706 05ba 7422     		je	.L55
- 291:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 292:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
- 293:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = RC (rcKrypto, rcCipher, rcEncoding, rcBlockCipher, rcBadVersion);
- 707              		.loc 1 293 0
- 708 05bc B9250100 		movl	$293, %ecx
- 708      00
- 709 05c1 488D1500 		leaq	__func__.7366(%rip), %rdx
- 709      000000
- 710 05c8 488D3500 		leaq	.LC0(%rip), %rsi
- 710      000000
- 711 05cf BF080E09 		movl	$-2029449720, %edi
- 711      87
- 712 05d4 E8000000 		call	SetRCFileFuncLine at PLT
- 712      00
- 713 05d9 8945FC   		movl	%eax, -4(%rbp)
- 294:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 714              		.loc 1 294 0
- 715 05dc EB1A     		jmp	.L56
- 716              	.L55:
- 295:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 296:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case 1:
- 297:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = CMEMBER(DecryptV1Int)(self, in, out);
- 717              		.loc 1 297 0
- 718 05de 488B55D8 		movq	-40(%rbp), %rdx
- 719 05e2 488B4DE0 		movq	-32(%rbp), %rcx
- 720 05e6 488B45E8 		movq	-24(%rbp), %rax
- 721 05ea 4889CE   		movq	%rcx, %rsi
- 722 05ed 4889C7   		movq	%rax, %rdi
- 723 05f0 E8E6FEFF 		call	KCipherVecRegDecryptV1Int
- 723      FF
- 724 05f5 8945FC   		movl	%eax, -4(%rbp)
- 725              	.L56:
- 298:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 299:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 300:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 301:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 726              		.loc 1 301 0
- 727 05f8 8B45FC   		movl	-4(%rbp), %eax
- 302:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 728              		.loc 1 302 0
- 729 05fb C9       		leave
- 730 05fc C3       		ret
- 731              		.cfi_endproc
- 732              	.LFE604:
- 733              		.size	KCipherVecRegDecrypt, .-KCipherVecRegDecrypt
- 734              		.type	KCipherVecRegEncryptEcb, @function
- 735              	KCipherVecRegEncryptEcb:
- 736              	.LFB605:
- 303:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 304:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
-
GAS LISTING /tmp/ccXzRABk.s 			page 22
-
-
- 305:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ====================
- 306:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * longer runs of multiple blocks.
- 307:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 308:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * The algorithms are well defined and standard in most cases
- 309:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 310:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * These aremore or elss equivalent to class functions as they do not depend upon
- 311:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * the operation of the cipher and the algorithms are independent of anything about
- 312:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * the cipher other than its block size.
- 313:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 314:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT: plain text block
- 315:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT: cipher text block
- 316:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * EK: encryption key
- 317:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * DK: decryption key (might be sthe same as EK)
- 318:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * ENC: encrypt cipher function on a block using a key
- 319:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * DEC: decrypt cipher function on a block using a key
- 320:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * IV: initialization vector - used as feedback for chaining
- 321:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * N:  number used once (nonce)
- 322:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB: feedback is the next IV in a chained/feedback mode
- 323:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 324:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 325:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 326:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* -----
- 327:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * NOTE:
- 328:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * 'in' can be the same as 'out' but other overlaps are dangers as a block at a
- 329:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * time is written. The code does not look for overlaps at this point.
- 330:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 331:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 332:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 333:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Electronic Code Book - simple cipher with no chaining feedback  just iterate
- 334:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * simple encrypt/decrypt with the plain, text, cipher text and key/
- 335:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 336:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = ENC (PT,EK)
- 337:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = DEC (CT,DK)
- 338:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 339:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 340:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* -----
- 341:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * NOTE: currently an implmentation detail limits us to 8192 bit cipher block
- 342:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * size.  Changing MAX_BLOCK_SIZE in cipher.c can up that limit without 
- 343:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * causing any other compatibility issues. 
- 344:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  *
- 345:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Two local byte arrays are defined on the stack of 1024 bytes or 8192 bits.
- 346:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 347:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 348:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_cou
- 349:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 737              		.loc 1 349 0
- 738              		.cfi_startproc
- 739 05fd 55       		pushq	%rbp
- 740              	.LCFI30:
- 741              		.cfi_def_cfa_offset 16
- 742 05fe 4889E5   		movq	%rsp, %rbp
- 743              		.cfi_offset 6, -16
- 744              	.LCFI31:
- 745              		.cfi_def_cfa_register 6
- 746 0601 4883EC30 		subq	$48, %rsp
- 747 0605 48897DE8 		movq	%rdi, -24(%rbp)
- 748 0609 488975E0 		movq	%rsi, -32(%rbp)
-
GAS LISTING /tmp/ccXzRABk.s 			page 23
-
-
- 749 060d 488955D8 		movq	%rdx, -40(%rbp)
- 750 0611 894DD4   		movl	%ecx, -44(%rbp)
- 350:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 351:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 352:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 751              		.loc 1 353 0
- 752 0614 488B45E0 		movq	-32(%rbp), %rax
- 753 0618 488945F0 		movq	%rax, -16(%rbp)
- 754 061c 488B45D8 		movq	-40(%rbp), %rax
- 755 0620 488945F8 		movq	%rax, -8(%rbp)
- 756 0624 EB31     		jmp	.L59
- 757              	.L60:
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 356:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 357:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CMEMBER(EncryptV1Int)(self, pin, pout);
- 758              		.loc 1 357 0
- 759 0626 488B55F8 		movq	-8(%rbp), %rdx
- 760 062a 488B4DF0 		movq	-16(%rbp), %rcx
- 761 062e 488B45E8 		movq	-24(%rbp), %rax
- 762 0632 4889CE   		movq	%rcx, %rsi
- 763 0635 4889C7   		movq	%rax, %rdi
- 764 0638 E84BFEFF 		call	KCipherVecRegEncryptV1Int
- 764      FF
- 355:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 765              		.loc 1 355 0
- 766 063d 488B45E8 		movq	-24(%rbp), %rax
- 767 0641 8B4004   		movl	4(%rax), %eax
- 768 0644 89C0     		mov	%eax, %eax
- 769 0646 480145F0 		addq	%rax, -16(%rbp)
- 770 064a 488B45E8 		movq	-24(%rbp), %rax
- 771 064e 8B4004   		movl	4(%rax), %eax
- 772 0651 89C0     		mov	%eax, %eax
- 773 0653 480145F8 		addq	%rax, -8(%rbp)
- 774              	.L59:
- 354:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 775              		.loc 1 354 0
- 776 0657 837DD400 		cmpl	$0, -44(%rbp)
- 777 065b 0F95C0   		setne	%al
- 778 065e 836DD401 		subl	$1, -44(%rbp)
- 353:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 779              		.loc 1 353 0
- 780 0662 84C0     		testb	%al, %al
- 781 0664 75C0     		jne	.L60
- 358:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 359:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 782              		.loc 1 359 0
- 783 0666 B8000000 		movl	$0, %eax
- 783      00
- 360:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 784              		.loc 1 360 0
- 785 066b C9       		leave
- 786 066c C3       		ret
- 787              		.cfi_endproc
- 788              	.LFE605:
- 789              		.size	KCipherVecRegEncryptEcb, .-KCipherVecRegEncryptEcb
-
GAS LISTING /tmp/ccXzRABk.s 			page 24
-
-
- 790              		.type	KCipherVecRegDecryptEcb, @function
- 791              	KCipherVecRegDecryptEcb:
- 792              	.LFB606:
- 361:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 362:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 363:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 364:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptEcb) (const CIPHER_IMPL * self, const void * in, void * out, uint32_t block_cou
- 365:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 793              		.loc 1 365 0
- 794              		.cfi_startproc
- 795 066d 55       		pushq	%rbp
- 796              	.LCFI32:
- 797              		.cfi_def_cfa_offset 16
- 798 066e 4889E5   		movq	%rsp, %rbp
- 799              		.cfi_offset 6, -16
- 800              	.LCFI33:
- 801              		.cfi_def_cfa_register 6
- 802 0671 4883EC30 		subq	$48, %rsp
- 803 0675 48897DE8 		movq	%rdi, -24(%rbp)
- 804 0679 488975E0 		movq	%rsi, -32(%rbp)
- 805 067d 488955D8 		movq	%rdx, -40(%rbp)
- 806 0681 894DD4   		movl	%ecx, -44(%rbp)
- 366:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 367:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 368:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 807              		.loc 1 369 0
- 808 0684 488B45E0 		movq	-32(%rbp), %rax
- 809 0688 488945F0 		movq	%rax, -16(%rbp)
- 810 068c 488B45D8 		movq	-40(%rbp), %rax
- 811 0690 488945F8 		movq	%rax, -8(%rbp)
- 812 0694 EB31     		jmp	.L63
- 813              	.L64:
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 372:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 373:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CMEMBER(DecryptV1Int)(self, pin, pout);
- 814              		.loc 1 373 0
- 815 0696 488B55F8 		movq	-8(%rbp), %rdx
- 816 069a 488B4DF0 		movq	-16(%rbp), %rcx
- 817 069e 488B45E8 		movq	-24(%rbp), %rax
- 818 06a2 4889CE   		movq	%rcx, %rsi
- 819 06a5 4889C7   		movq	%rax, %rdi
- 820 06a8 E82EFEFF 		call	KCipherVecRegDecryptV1Int
- 820      FF
- 371:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 821              		.loc 1 371 0
- 822 06ad 488B45E8 		movq	-24(%rbp), %rax
- 823 06b1 8B4004   		movl	4(%rax), %eax
- 824 06b4 89C0     		mov	%eax, %eax
- 825 06b6 480145F0 		addq	%rax, -16(%rbp)
- 826 06ba 488B45E8 		movq	-24(%rbp), %rax
- 827 06be 8B4004   		movl	4(%rax), %eax
- 828 06c1 89C0     		mov	%eax, %eax
- 829 06c3 480145F8 		addq	%rax, -8(%rbp)
- 830              	.L63:
- 370:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
-
GAS LISTING /tmp/ccXzRABk.s 			page 25
-
-
- 831              		.loc 1 370 0
- 832 06c7 837DD400 		cmpl	$0, -44(%rbp)
- 833 06cb 0F95C0   		setne	%al
- 834 06ce 836DD401 		subl	$1, -44(%rbp)
- 369:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 835              		.loc 1 369 0
- 836 06d2 84C0     		testb	%al, %al
- 837 06d4 75C0     		jne	.L64
- 374:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 375:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 376:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 838              		.loc 1 376 0
- 839 06d6 B8000000 		movl	$0, %eax
- 839      00
- 377:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 840              		.loc 1 377 0
- 841 06db C9       		leave
- 842 06dc C3       		ret
- 843              		.cfi_endproc
- 844              	.LFE606:
- 845              		.size	KCipherVecRegDecryptEcb, .-KCipherVecRegDecryptEcb
- 846              		.type	KCipherVecRegEncryptCbc, @function
- 847              	KCipherVecRegEncryptCbc:
- 848              	.LFB607:
- 378:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 379:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 380:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 381:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Cipher-Block Chaining
- 382:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = (FB = ENC (PT^IV, EK))
- 383:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = DEC ((FB = CT), DK)
- 384:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 385:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 386:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 387:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 849              		.loc 1 387 0
- 850              		.cfi_startproc
- 851 06dd 55       		pushq	%rbp
- 852              	.LCFI34:
- 853              		.cfi_def_cfa_offset 16
- 854 06de 4889E5   		movq	%rsp, %rbp
- 855              		.cfi_offset 6, -16
- 856              	.LCFI35:
- 857              		.cfi_def_cfa_register 6
- 858 06e1 4883EC50 		subq	$80, %rsp
- 859 06e5 48897DC8 		movq	%rdi, -56(%rbp)
- 860 06e9 488975C0 		movq	%rsi, -64(%rbp)
- 861 06ed 488955B8 		movq	%rdx, -72(%rbp)
- 862 06f1 894DB4   		movl	%ecx, -76(%rbp)
- 388:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 389:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 390:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 391:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 392:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 393:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 394:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 395:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 396:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = CipherVecIn (self->dad.encrypt_ivec);
-
GAS LISTING /tmp/ccXzRABk.s 			page 26
-
-
- 863              		.loc 1 396 0
- 864 06f4 488B45C8 		movq	-56(%rbp), %rax
- 865 06f8 488B4028 		movq	40(%rax), %rax
- 866 06fc 4889C7   		movq	%rax, %rdi
- 867 06ff E8FCF8FF 		call	CipherVecIn
- 867      FF
- 868 0704 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 868      E0
- 397:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 398:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 869              		.loc 1 399 0
- 870 0709 488B45C0 		movq	-64(%rbp), %rax
- 871 070d 488945F0 		movq	%rax, -16(%rbp)
- 872 0711 488B45B8 		movq	-72(%rbp), %rax
- 873 0715 488945F8 		movq	%rax, -8(%rbp)
- 874 0719 EB65     		jmp	.L67
- 875              	.L68:
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 402:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 403:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 876              		.loc 1 403 0
- 877 071b 488B45F0 		movq	-16(%rbp), %rax
- 878 071f 4889C7   		movq	%rax, %rdi
- 879 0722 E8D9F8FF 		call	CipherVecIn
- 879      FF
- 880 0727 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 880      D0
- 404:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 881              		.loc 1 404 0
- 882 072c F30F6F45 		movdqu	-32(%rbp), %xmm0
- 882      E0
- 883 0731 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 883      D0
- 884 0736 660FEFC1 		pxor	%xmm1, %xmm0
- 885 073a F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 885      D0
- 405:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, cv);
- 886              		.loc 1 405 0
- 887 073f F30F6F45 		movdqu	-48(%rbp), %xmm0
- 887      D0
- 888 0744 488B45C8 		movq	-56(%rbp), %rax
- 889 0748 4889C7   		movq	%rax, %rdi
- 890 074b E8EAFCFF 		call	KCipherVecRegEncryptV1
- 890      FF
- 891 0750 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 891      E0
- 406:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (ivec, pout);
- 892              		.loc 1 406 0
- 893 0755 488B45F8 		movq	-8(%rbp), %rax
- 894 0759 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 894      E0
- 895 075e 4889C7   		movq	%rax, %rdi
- 896 0761 E8B9F8FF 		call	CipherVecOut
- 896      FF
- 401:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
-
GAS LISTING /tmp/ccXzRABk.s 			page 27
-
-
- 897              		.loc 1 401 0
- 898 0766 488B45C8 		movq	-56(%rbp), %rax
- 899 076a 8B4004   		movl	4(%rax), %eax
- 900 076d 89C0     		mov	%eax, %eax
- 901 076f 480145F0 		addq	%rax, -16(%rbp)
- 902 0773 488B45C8 		movq	-56(%rbp), %rax
- 903 0777 8B4004   		movl	4(%rax), %eax
- 904 077a 89C0     		mov	%eax, %eax
- 905 077c 480145F8 		addq	%rax, -8(%rbp)
- 906              	.L67:
- 400:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 907              		.loc 1 400 0
- 908 0780 837DB400 		cmpl	$0, -76(%rbp)
- 909 0784 0F95C0   		setne	%al
- 910 0787 836DB401 		subl	$1, -76(%rbp)
- 399:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 911              		.loc 1 399 0
- 912 078b 84C0     		testb	%al, %al
- 913 078d 758C     		jne	.L68
- 407:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 408:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 409:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 410:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 411:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 412:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVecOut (ivec, self->dad.encrypt_ivec);
- 914              		.loc 1 412 0
- 915 078f 488B45C8 		movq	-56(%rbp), %rax
- 916 0793 488B4028 		movq	40(%rax), %rax
- 917 0797 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 917      E0
- 918 079c 4889C7   		movq	%rax, %rdi
- 919 079f E87BF8FF 		call	CipherVecOut
- 919      FF
- 413:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 414:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 415:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 920              		.loc 1 415 0
- 921 07a4 B8000000 		movl	$0, %eax
- 921      00
- 416:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }    
- 922              		.loc 1 416 0
- 923 07a9 C9       		leave
- 924 07aa C3       		ret
- 925              		.cfi_endproc
- 926              	.LFE607:
- 927              		.size	KCipherVecRegEncryptCbc, .-KCipherVecRegEncryptCbc
- 928              		.type	KCipherVecRegDecryptCbc, @function
- 929              	KCipherVecRegDecryptCbc:
- 930              	.LFB608:
- 417:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 418:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 419:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 420:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 421:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 931              		.loc 1 421 0
- 932              		.cfi_startproc
- 933 07ab 55       		pushq	%rbp
-
GAS LISTING /tmp/ccXzRABk.s 			page 28
-
-
- 934              	.LCFI36:
- 935              		.cfi_def_cfa_offset 16
- 936 07ac 4889E5   		movq	%rsp, %rbp
- 937              		.cfi_offset 6, -16
- 938              	.LCFI37:
- 939              		.cfi_def_cfa_register 6
- 940 07af 4883EC60 		subq	$96, %rsp
- 941 07b3 48897DB8 		movq	%rdi, -72(%rbp)
- 942 07b7 488975B0 		movq	%rsi, -80(%rbp)
- 943 07bb 488955A8 		movq	%rdx, -88(%rbp)
- 944 07bf 894DA4   		movl	%ecx, -92(%rbp)
- 422:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 423:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 424:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 425:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 426:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 427:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = CipherVecIn (self->dad.decrypt_ivec);
- 945              		.loc 1 427 0
- 946 07c2 488B45B8 		movq	-72(%rbp), %rax
- 947 07c6 488B4030 		movq	48(%rax), %rax
- 948 07ca 4889C7   		movq	%rax, %rdi
- 949 07cd E82EF8FF 		call	CipherVecIn
- 949      FF
- 950 07d2 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 950      D0
- 428:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 951              		.loc 1 429 0
- 952 07d7 488B45B0 		movq	-80(%rbp), %rax
- 953 07db 488945E0 		movq	%rax, -32(%rbp)
- 954 07df 488B45A8 		movq	-88(%rbp), %rax
- 955 07e3 488945E8 		movq	%rax, -24(%rbp)
- 956 07e7 EB6F     		jmp	.L71
- 957              	.L72:
- 958              	.LBB2:
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 432:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 433:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 434:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 435:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 959              		.loc 1 435 0
- 960 07e9 488B45E0 		movq	-32(%rbp), %rax
- 961 07ed 4889C7   		movq	%rax, %rdi
- 962 07f0 E80BF8FF 		call	CipherVecIn
- 962      FF
- 963 07f5 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 963      C0
- 436:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 0
- 437:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = cv;
- 438:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, temp);
- 439:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 440:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, cv);
- 964              		.loc 1 440 0
- 965 07fa F30F6F45 		movdqu	-64(%rbp), %xmm0
- 965      C0
- 966 07ff 488B45B8 		movq	-72(%rbp), %rax
-
GAS LISTING /tmp/ccXzRABk.s 			page 29
-
-
- 967 0803 4889C7   		movq	%rax, %rdi
- 968 0806 E856FCFF 		call	KCipherVecRegDecryptV1
- 968      FF
- 969 080b F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 969      F0
- 441:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 442:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp ^= ivec;
- 970              		.loc 1 442 0
- 971 0810 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 971      D0
- 972 0815 F30F6F4D 		movdqu	-16(%rbp), %xmm1
- 972      F0
- 973 081a 660FEFC1 		pxor	%xmm1, %xmm0
- 974 081e F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 974      F0
- 443:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 975              		.loc 1 443 0
- 976 0823 488B45E8 		movq	-24(%rbp), %rax
- 977 0827 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 977      F0
- 978 082c 4889C7   		movq	%rax, %rdi
- 979 082f E8EBF7FF 		call	CipherVecOut
- 979      FF
- 444:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = cv;
- 980              		.loc 1 444 0
- 981 0834 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 981      C0
- 982 0839 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 982      D0
- 983              	.LBE2:
- 431:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 984              		.loc 1 431 0
- 985 083e 488B45B8 		movq	-72(%rbp), %rax
- 986 0842 8B4004   		movl	4(%rax), %eax
- 987 0845 89C0     		mov	%eax, %eax
- 988 0847 480145E0 		addq	%rax, -32(%rbp)
- 989 084b 488B45B8 		movq	-72(%rbp), %rax
- 990 084f 8B4004   		movl	4(%rax), %eax
- 991 0852 89C0     		mov	%eax, %eax
- 992 0854 480145E8 		addq	%rax, -24(%rbp)
- 993              	.L71:
- 430:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 994              		.loc 1 430 0
- 995 0858 837DA400 		cmpl	$0, -92(%rbp)
- 996 085c 0F95C0   		setne	%al
- 997 085f 836DA401 		subl	$1, -92(%rbp)
- 429:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 998              		.loc 1 429 0
- 999 0863 84C0     		testb	%al, %al
- 1000 0865 7582     		jne	.L72
- 445:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 446:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 447:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.decrypt_ivec = ivec;
- 1001              		.loc 1 447 0
- 1002 0867 488B45B8 		movq	-72(%rbp), %rax
- 1003 086b 488B4030 		movq	48(%rax), %rax
- 1004 086f F30F6F45 		movdqu	-48(%rbp), %xmm0
-
GAS LISTING /tmp/ccXzRABk.s 			page 30
-
-
- 1004      D0
- 1005 0874 F30F7F00 		movdqu	%xmm0, (%rax)
- 448:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1006              		.loc 1 448 0
- 1007 0878 B8000000 		movl	$0, %eax
- 1007      00
- 449:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1008              		.loc 1 449 0
- 1009 087d C9       		leave
- 1010 087e C3       		ret
- 1011              		.cfi_endproc
- 1012              	.LFE608:
- 1013              		.size	KCipherVecRegDecryptCbc, .-KCipherVecRegDecryptCbc
- 1014              		.type	KCipherVecRegEncryptPcbc, @function
- 1015              	KCipherVecRegEncryptPcbc:
- 1016              	.LFB609:
- 450:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 451:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 452:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 453:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Propagating cipher-block chaining
- 454:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB = PT ^ (CT = ENC ((PT^IV), EK))
- 455:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * FB = CT ^ (PT = DEC (CT,DK) ^ IV)
- 456:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 457:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 458:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 459:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1017              		.loc 1 459 0
- 1018              		.cfi_startproc
- 1019 087f 55       		pushq	%rbp
- 1020              	.LCFI38:
- 1021              		.cfi_def_cfa_offset 16
- 1022 0880 4889E5   		movq	%rsp, %rbp
- 1023              		.cfi_offset 6, -16
- 1024              	.LCFI39:
- 1025              		.cfi_def_cfa_register 6
- 1026 0883 4883EC60 		subq	$96, %rsp
- 1027 0887 48897DB8 		movq	%rdi, -72(%rbp)
- 1028 088b 488975B0 		movq	%rsi, -80(%rbp)
- 1029 088f 488955A8 		movq	%rdx, -88(%rbp)
- 1030 0893 894DA4   		movl	%ecx, -92(%rbp)
- 460:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 461:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 462:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 463:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 464:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 465:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 466:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1031              		.loc 1 466 0
- 1032 0896 488B45B8 		movq	-72(%rbp), %rax
- 1033 089a 488B4028 		movq	40(%rax), %rax
- 1034 089e 660F6F00 		movdqa	(%rax), %xmm0
- 1035 08a2 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1035      D0
- 467:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1036              		.loc 1 468 0
- 1037 08a7 488B45B0 		movq	-80(%rbp), %rax
-
GAS LISTING /tmp/ccXzRABk.s 			page 31
-
-
- 1038 08ab 488945E0 		movq	%rax, -32(%rbp)
- 1039 08af 488B45A8 		movq	-88(%rbp), %rax
- 1040 08b3 488945E8 		movq	%rax, -24(%rbp)
- 1041 08b7 EB78     		jmp	.L75
- 1042              	.L76:
- 1043              	.LBB3:
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 471:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 472:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 473:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 474:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1044              		.loc 1 474 0
- 1045 08b9 488B45E0 		movq	-32(%rbp), %rax
- 1046 08bd 4889C7   		movq	%rax, %rdi
- 1047 08c0 E83BF7FF 		call	CipherVecIn
- 1047      FF
- 1048 08c5 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 1048      C0
- 475:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = cv ^ ivec;
- 1049              		.loc 1 475 0
- 1050 08ca F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1050      D0
- 1051 08cf F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 1051      C0
- 1052 08d4 660FEFC1 		pxor	%xmm1, %xmm0
- 1053 08d8 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1053      F0
- 476:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(EncryptV1)(self, temp); 
- 1054              		.loc 1 476 0
- 1055 08dd F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1055      F0
- 1056 08e2 488B45B8 		movq	-72(%rbp), %rax
- 1057 08e6 4889C7   		movq	%rax, %rdi
- 1058 08e9 E84CFBFF 		call	KCipherVecRegEncryptV1
- 1058      FF
- 1059 08ee F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1059      F0
- 477:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = cv ^ temp;
- 1060              		.loc 1 477 0
- 1061 08f3 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1061      F0
- 1062 08f8 F30F6F4D 		movdqu	-64(%rbp), %xmm1
- 1062      C0
- 1063 08fd 660FEFC1 		pxor	%xmm1, %xmm0
- 1064 0901 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1064      D0
- 478:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 1065              		.loc 1 478 0
- 1066 0906 488B45E8 		movq	-24(%rbp), %rax
- 1067 090a F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1067      F0
- 1068 090f 4889C7   		movq	%rax, %rdi
- 1069 0912 E808F7FF 		call	CipherVecOut
- 1069      FF
- 1070              	.LBE3:
- 470:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
-
GAS LISTING /tmp/ccXzRABk.s 			page 32
-
-
- 1071              		.loc 1 470 0
- 1072 0917 488B45B8 		movq	-72(%rbp), %rax
- 1073 091b 8B4004   		movl	4(%rax), %eax
- 1074 091e 89C0     		mov	%eax, %eax
- 1075 0920 480145E0 		addq	%rax, -32(%rbp)
- 1076 0924 488B45B8 		movq	-72(%rbp), %rax
- 1077 0928 8B4004   		movl	4(%rax), %eax
- 1078 092b 89C0     		mov	%eax, %eax
- 1079 092d 480145E8 		addq	%rax, -24(%rbp)
- 1080              	.L75:
- 469:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1081              		.loc 1 469 0
- 1082 0931 837DA400 		cmpl	$0, -92(%rbp)
- 1083 0935 0F95C0   		setne	%al
- 1084 0938 836DA401 		subl	$1, -92(%rbp)
- 468:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1085              		.loc 1 468 0
- 1086 093c 84C0     		testb	%al, %al
- 1087 093e 0F8575FF 		jne	.L76
- 1087      FFFF
- 479:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 480:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 481:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1088              		.loc 1 481 0
- 1089 0944 488B45B8 		movq	-72(%rbp), %rax
- 1090 0948 488B4028 		movq	40(%rax), %rax
- 1091 094c F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1091      D0
- 1092 0951 F30F7F00 		movdqu	%xmm0, (%rax)
- 482:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 483:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1093              		.loc 1 483 0
- 1094 0955 B8000000 		movl	$0, %eax
- 1094      00
- 484:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 485:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 486:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 487:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1095              		.loc 1 487 0
- 1096 095a C9       		leave
- 1097 095b C3       		ret
- 1098              		.cfi_endproc
- 1099              	.LFE609:
- 1100              		.size	KCipherVecRegEncryptPcbc, .-KCipherVecRegEncryptPcbc
- 1101              		.type	KCipherVecRegDecryptPcbc, @function
- 1102              	KCipherVecRegDecryptPcbc:
- 1103              	.LFB610:
- 488:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 489:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 490:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 491:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptPcbc) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 492:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1104              		.loc 1 492 0
- 1105              		.cfi_startproc
- 1106 095c 55       		pushq	%rbp
- 1107              	.LCFI40:
- 1108              		.cfi_def_cfa_offset 16
-
GAS LISTING /tmp/ccXzRABk.s 			page 33
-
-
- 1109 095d 4889E5   		movq	%rsp, %rbp
- 1110              		.cfi_offset 6, -16
- 1111              	.LCFI41:
- 1112              		.cfi_def_cfa_register 6
- 1113 0960 4883EC60 		subq	$96, %rsp
- 1114 0964 48897DB8 		movq	%rdi, -72(%rbp)
- 1115 0968 488975B0 		movq	%rsi, -80(%rbp)
- 1116 096c 488955A8 		movq	%rdx, -88(%rbp)
- 1117 0970 894DA4   		movl	%ecx, -92(%rbp)
- 493:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 494:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 495:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 496:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 497:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 498:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 499:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1118              		.loc 1 499 0
- 1119 0973 488B45B8 		movq	-72(%rbp), %rax
- 1120 0977 488B4028 		movq	40(%rax), %rax
- 1121 097b 660F6F00 		movdqa	(%rax), %xmm0
- 1122 097f F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1122      D0
- 500:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1123              		.loc 1 501 0
- 1124 0984 488B45B0 		movq	-80(%rbp), %rax
- 1125 0988 488945E0 		movq	%rax, -32(%rbp)
- 1126 098c 488B45A8 		movq	-88(%rbp), %rax
- 1127 0990 488945E8 		movq	%rax, -24(%rbp)
- 1128 0994 EB65     		jmp	.L79
- 1129              	.L80:
- 1130              	.LBB4:
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 504:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 505:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVec temp;
- 506:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 507:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1131              		.loc 1 507 0
- 1132 0996 488B45E0 		movq	-32(%rbp), %rax
- 1133 099a 4889C7   		movq	%rax, %rdi
- 1134 099d E85EF6FF 		call	CipherVecIn
- 1134      FF
- 1135 09a2 F30F7F45 		movdqu	%xmm0, -64(%rbp)
- 1135      C0
- 508:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         temp = CMEMBER(DecryptV1)(self, cv);
- 1136              		.loc 1 508 0
- 1137 09a7 F30F6F45 		movdqu	-64(%rbp), %xmm0
- 1137      C0
- 1138 09ac 488B45B8 		movq	-72(%rbp), %rax
- 1139 09b0 4889C7   		movq	%rax, %rdi
- 1140 09b3 E8A9FAFF 		call	KCipherVecRegDecryptV1
- 1140      FF
- 1141 09b8 F30F7F45 		movdqu	%xmm0, -16(%rbp)
- 1141      F0
- 509:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec ^= temp;
- 1142              		.loc 1 509 0
-
GAS LISTING /tmp/ccXzRABk.s 			page 34
-
-
- 1143 09bd F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1143      F0
- 1144 09c2 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1144      D0
- 1145 09c7 660FEFC1 		pxor	%xmm1, %xmm0
- 1146 09cb F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1146      D0
- 510:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (temp, pout);
- 1147              		.loc 1 510 0
- 1148 09d0 488B45E8 		movq	-24(%rbp), %rax
- 1149 09d4 F30F6F45 		movdqu	-16(%rbp), %xmm0
- 1149      F0
- 1150 09d9 4889C7   		movq	%rax, %rdi
- 1151 09dc E83EF6FF 		call	CipherVecOut
- 1151      FF
- 1152              	.LBE4:
- 503:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1153              		.loc 1 503 0
- 1154 09e1 488B45B8 		movq	-72(%rbp), %rax
- 1155 09e5 8B4004   		movl	4(%rax), %eax
- 1156 09e8 89C0     		mov	%eax, %eax
- 1157 09ea 480145E0 		addq	%rax, -32(%rbp)
- 1158 09ee 488B45B8 		movq	-72(%rbp), %rax
- 1159 09f2 8B4004   		movl	4(%rax), %eax
- 1160 09f5 89C0     		mov	%eax, %eax
- 1161 09f7 480145E8 		addq	%rax, -24(%rbp)
- 1162              	.L79:
- 502:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1163              		.loc 1 502 0
- 1164 09fb 837DA400 		cmpl	$0, -92(%rbp)
- 1165 09ff 0F95C0   		setne	%al
- 1166 0a02 836DA401 		subl	$1, -92(%rbp)
- 501:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1167              		.loc 1 501 0
- 1168 0a06 84C0     		testb	%al, %al
- 1169 0a08 758C     		jne	.L80
- 511:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 512:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 513:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1170              		.loc 1 513 0
- 1171 0a0a 488B45B8 		movq	-72(%rbp), %rax
- 1172 0a0e 488B4028 		movq	40(%rax), %rax
- 1173 0a12 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1173      D0
- 1174 0a17 F30F7F00 		movdqu	%xmm0, (%rax)
- 514:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 515:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1175              		.loc 1 515 0
- 1176 0a1b B8000000 		movl	$0, %eax
- 1176      00
- 516:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 517:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 518:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 519:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1177              		.loc 1 519 0
- 1178 0a20 C9       		leave
- 1179 0a21 C3       		ret
-
GAS LISTING /tmp/ccXzRABk.s 			page 35
-
-
- 1180              		.cfi_endproc
- 1181              	.LFE610:
- 1182              		.size	KCipherVecRegDecryptPcbc, .-KCipherVecRegDecryptPcbc
- 1183              		.type	KCipherVecRegEncryptCfb, @function
- 1184              	KCipherVecRegEncryptCfb:
- 1185              	.LFB611:
- 520:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 521:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 522:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 523:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Cipher Feedback
- 524:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = (FB = PT) ^ ENC (IV, EK))
- 525:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = (FB = CT) ^ DEC (IV, DK)
- 526:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 527:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 528:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 529:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1186              		.loc 1 529 0
- 1187              		.cfi_startproc
- 1188 0a22 55       		pushq	%rbp
- 1189              	.LCFI42:
- 1190              		.cfi_def_cfa_offset 16
- 1191 0a23 4889E5   		movq	%rsp, %rbp
- 1192              		.cfi_offset 6, -16
- 1193              	.LCFI43:
- 1194              		.cfi_def_cfa_register 6
- 1195 0a26 4883EC50 		subq	$80, %rsp
- 1196 0a2a 48897DC8 		movq	%rdi, -56(%rbp)
- 1197 0a2e 488975C0 		movq	%rsi, -64(%rbp)
- 1198 0a32 488955B8 		movq	%rdx, -72(%rbp)
- 1199 0a36 894DB4   		movl	%ecx, -76(%rbp)
- 530:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 531:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 532:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 533:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 534:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 535:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 536:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1200              		.loc 1 536 0
- 1201 0a39 488B45C8 		movq	-56(%rbp), %rax
- 1202 0a3d 488B4028 		movq	40(%rax), %rax
- 1203 0a41 660F6F00 		movdqa	(%rax), %xmm0
- 1204 0a45 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1204      E0
- 537:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1205              		.loc 1 538 0
- 1206 0a4a 488B45C0 		movq	-64(%rbp), %rax
- 1207 0a4e 488945F0 		movq	%rax, -16(%rbp)
- 1208 0a52 488B45B8 		movq	-72(%rbp), %rax
- 1209 0a56 488945F8 		movq	%rax, -8(%rbp)
- 1210 0a5a EB65     		jmp	.L83
- 1211              	.L84:
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 541:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 542:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, ivec); 
- 1212              		.loc 1 542 0
-
GAS LISTING /tmp/ccXzRABk.s 			page 36
-
-
- 1213 0a5c F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1213      E0
- 1214 0a61 488B45C8 		movq	-56(%rbp), %rax
- 1215 0a65 4889C7   		movq	%rax, %rdi
- 1216 0a68 E8CDF9FF 		call	KCipherVecRegEncryptV1
- 1216      FF
- 1217 0a6d F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1217      E0
- 543:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1218              		.loc 1 543 0
- 1219 0a72 488B45F0 		movq	-16(%rbp), %rax
- 1220 0a76 4889C7   		movq	%rax, %rdi
- 1221 0a79 E882F5FF 		call	CipherVecIn
- 1221      FF
- 1222 0a7e F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1222      D0
- 544:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec ^= cv;
- 1223              		.loc 1 544 0
- 1224 0a83 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1224      D0
- 1225 0a88 F30F6F4D 		movdqu	-32(%rbp), %xmm1
- 1225      E0
- 1226 0a8d 660FEFC1 		pxor	%xmm1, %xmm0
- 1227 0a91 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1227      E0
- 545:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (ivec, pout);
- 1228              		.loc 1 545 0
- 1229 0a96 488B45F8 		movq	-8(%rbp), %rax
- 1230 0a9a F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1230      E0
- 1231 0a9f 4889C7   		movq	%rax, %rdi
- 1232 0aa2 E878F5FF 		call	CipherVecOut
- 1232      FF
- 540:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1233              		.loc 1 540 0
- 1234 0aa7 488B45C8 		movq	-56(%rbp), %rax
- 1235 0aab 8B4004   		movl	4(%rax), %eax
- 1236 0aae 89C0     		mov	%eax, %eax
- 1237 0ab0 480145F0 		addq	%rax, -16(%rbp)
- 1238 0ab4 488B45C8 		movq	-56(%rbp), %rax
- 1239 0ab8 8B4004   		movl	4(%rax), %eax
- 1240 0abb 89C0     		mov	%eax, %eax
- 1241 0abd 480145F8 		addq	%rax, -8(%rbp)
- 1242              	.L83:
- 539:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1243              		.loc 1 539 0
- 1244 0ac1 837DB400 		cmpl	$0, -76(%rbp)
- 1245 0ac5 0F95C0   		setne	%al
- 1246 0ac8 836DB401 		subl	$1, -76(%rbp)
- 538:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1247              		.loc 1 538 0
- 1248 0acc 84C0     		testb	%al, %al
- 1249 0ace 758C     		jne	.L84
- 546:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 547:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 548:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1250              		.loc 1 548 0
-
GAS LISTING /tmp/ccXzRABk.s 			page 37
-
-
- 1251 0ad0 488B45C8 		movq	-56(%rbp), %rax
- 1252 0ad4 488B4028 		movq	40(%rax), %rax
- 1253 0ad8 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1253      E0
- 1254 0add F30F7F00 		movdqu	%xmm0, (%rax)
- 549:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 550:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1255              		.loc 1 550 0
- 1256 0ae1 B8000000 		movl	$0, %eax
- 1256      00
- 551:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 552:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 553:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 554:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1257              		.loc 1 554 0
- 1258 0ae6 C9       		leave
- 1259 0ae7 C3       		ret
- 1260              		.cfi_endproc
- 1261              	.LFE611:
- 1262              		.size	KCipherVecRegEncryptCfb, .-KCipherVecRegEncryptCfb
- 1263              		.type	KCipherVecRegDecryptCfb, @function
- 1264              	KCipherVecRegDecryptCfb:
- 1265              	.LFB612:
- 555:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 556:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 557:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 558:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 559:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1266              		.loc 1 559 0
- 1267              		.cfi_startproc
- 1268 0ae8 55       		pushq	%rbp
- 1269              	.LCFI44:
- 1270              		.cfi_def_cfa_offset 16
- 1271 0ae9 4889E5   		movq	%rsp, %rbp
- 1272              		.cfi_offset 6, -16
- 1273              	.LCFI45:
- 1274              		.cfi_def_cfa_register 6
- 1275 0aec 4883EC50 		subq	$80, %rsp
- 1276 0af0 48897DC8 		movq	%rdi, -56(%rbp)
- 1277 0af4 488975C0 		movq	%rsi, -64(%rbp)
- 1278 0af8 488955B8 		movq	%rdx, -72(%rbp)
- 1279 0afc 894DB4   		movl	%ecx, -76(%rbp)
- 560:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 561:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 562:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 563:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 564:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 565:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 566:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1280              		.loc 1 566 0
- 1281 0aff 488B45C8 		movq	-56(%rbp), %rax
- 1282 0b03 488B4028 		movq	40(%rax), %rax
- 1283 0b07 660F6F00 		movdqa	(%rax), %xmm0
- 1284 0b0b F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1284      E0
- 567:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
-
GAS LISTING /tmp/ccXzRABk.s 			page 38
-
-
- 1285              		.loc 1 568 0
- 1286 0b10 488B45C0 		movq	-64(%rbp), %rax
- 1287 0b14 488945F0 		movq	%rax, -16(%rbp)
- 1288 0b18 488B45B8 		movq	-72(%rbp), %rax
- 1289 0b1c 488945F8 		movq	%rax, -8(%rbp)
- 1290 0b20 EB65     		jmp	.L87
- 1291              	.L88:
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 571:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 572:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CMEMBER(EncryptV1)(self, ivec); 
- 1292              		.loc 1 572 0
- 1293 0b22 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1293      E0
- 1294 0b27 488B45C8 		movq	-56(%rbp), %rax
- 1295 0b2b 4889C7   		movq	%rax, %rdi
- 1296 0b2e E807F9FF 		call	KCipherVecRegEncryptV1
- 1296      FF
- 1297 0b33 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1297      D0
- 573:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CipherVecIn (pin);
- 1298              		.loc 1 573 0
- 1299 0b38 488B45F0 		movq	-16(%rbp), %rax
- 1300 0b3c 4889C7   		movq	%rax, %rdi
- 1301 0b3f E8BCF4FF 		call	CipherVecIn
- 1301      FF
- 1302 0b44 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1302      E0
- 574:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 1303              		.loc 1 574 0
- 1304 0b49 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1304      E0
- 1305 0b4e F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1305      D0
- 1306 0b53 660FEFC1 		pxor	%xmm1, %xmm0
- 1307 0b57 F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1307      D0
- 575:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (cv, pout);
- 1308              		.loc 1 575 0
- 1309 0b5c 488B45F8 		movq	-8(%rbp), %rax
- 1310 0b60 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1310      D0
- 1311 0b65 4889C7   		movq	%rax, %rdi
- 1312 0b68 E8B2F4FF 		call	CipherVecOut
- 1312      FF
- 570:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1313              		.loc 1 570 0
- 1314 0b6d 488B45C8 		movq	-56(%rbp), %rax
- 1315 0b71 8B4004   		movl	4(%rax), %eax
- 1316 0b74 89C0     		mov	%eax, %eax
- 1317 0b76 480145F0 		addq	%rax, -16(%rbp)
- 1318 0b7a 488B45C8 		movq	-56(%rbp), %rax
- 1319 0b7e 8B4004   		movl	4(%rax), %eax
- 1320 0b81 89C0     		mov	%eax, %eax
- 1321 0b83 480145F8 		addq	%rax, -8(%rbp)
- 1322              	.L87:
- 569:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
-
GAS LISTING /tmp/ccXzRABk.s 			page 39
-
-
- 1323              		.loc 1 569 0
- 1324 0b87 837DB400 		cmpl	$0, -76(%rbp)
- 1325 0b8b 0F95C0   		setne	%al
- 1326 0b8e 836DB401 		subl	$1, -76(%rbp)
- 568:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1327              		.loc 1 568 0
- 1328 0b92 84C0     		testb	%al, %al
- 1329 0b94 758C     		jne	.L88
- 576:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 577:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 578:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1330              		.loc 1 578 0
- 1331 0b96 488B45C8 		movq	-56(%rbp), %rax
- 1332 0b9a 488B4028 		movq	40(%rax), %rax
- 1333 0b9e F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1333      E0
- 1334 0ba3 F30F7F00 		movdqu	%xmm0, (%rax)
- 579:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 580:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1335              		.loc 1 580 0
- 1336 0ba7 B8000000 		movl	$0, %eax
- 1336      00
- 581:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 582:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 583:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 584:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1337              		.loc 1 584 0
- 1338 0bac C9       		leave
- 1339 0bad C3       		ret
- 1340              		.cfi_endproc
- 1341              	.LFE612:
- 1342              		.size	KCipherVecRegDecryptCfb, .-KCipherVecRegDecryptCfb
- 1343              		.type	KCipherVecRegEncryptOfb, @function
- 1344              	KCipherVecRegEncryptOfb:
- 1345              	.LFB613:
- 585:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 586:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 587:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* ----------
- 588:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Output Feedback
- 589:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = PT ^ (FB = ENC (IV, EK))
- 590:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = CT ^ (FB = DEC (IV, DK))
- 591:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 592:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 593:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 594:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1346              		.loc 1 594 0
- 1347              		.cfi_startproc
- 1348 0bae 55       		pushq	%rbp
- 1349              	.LCFI46:
- 1350              		.cfi_def_cfa_offset 16
- 1351 0baf 4889E5   		movq	%rsp, %rbp
- 1352              		.cfi_offset 6, -16
- 1353              	.LCFI47:
- 1354              		.cfi_def_cfa_register 6
- 1355 0bb2 4883EC50 		subq	$80, %rsp
- 1356 0bb6 48897DC8 		movq	%rdi, -56(%rbp)
- 1357 0bba 488975C0 		movq	%rsi, -64(%rbp)
-
GAS LISTING /tmp/ccXzRABk.s 			page 40
-
-
- 1358 0bbe 488955B8 		movq	%rdx, -72(%rbp)
- 1359 0bc2 894DB4   		movl	%ecx, -76(%rbp)
- 595:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #if 1
- 596:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec cv;
- 597:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherVec ivec;
- 598:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     const uint8_t * pin;
- 599:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     uint8_t * pout;
- 600:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 601:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     ivec = *(const CipherVec*)self->dad.encrypt_ivec;
- 1360              		.loc 1 601 0
- 1361 0bc5 488B45C8 		movq	-56(%rbp), %rax
- 1362 0bc9 488B4028 		movq	40(%rax), %rax
- 1363 0bcd 660F6F00 		movdqa	(%rax), %xmm0
- 1364 0bd1 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1364      E0
- 602:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1365              		.loc 1 603 0
- 1366 0bd6 488B45C0 		movq	-64(%rbp), %rax
- 1367 0bda 488945F0 		movq	%rax, -16(%rbp)
- 1368 0bde 488B45B8 		movq	-72(%rbp), %rax
- 1369 0be2 488945F8 		movq	%rax, -8(%rbp)
- 1370 0be6 EB65     		jmp	.L91
- 1371              	.L92:
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 606:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 607:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         ivec = CMEMBER(EncryptV1)(self, ivec); 
- 1372              		.loc 1 607 0
- 1373 0be8 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1373      E0
- 1374 0bed 488B45C8 		movq	-56(%rbp), %rax
- 1375 0bf1 4889C7   		movq	%rax, %rdi
- 1376 0bf4 E841F8FF 		call	KCipherVecRegEncryptV1
- 1376      FF
- 1377 0bf9 F30F7F45 		movdqu	%xmm0, -32(%rbp)
- 1377      E0
- 608:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv = CipherVecIn (pin);
- 1378              		.loc 1 608 0
- 1379 0bfe 488B45F0 		movq	-16(%rbp), %rax
- 1380 0c02 4889C7   		movq	%rax, %rdi
- 1381 0c05 E8F6F3FF 		call	CipherVecIn
- 1381      FF
- 1382 0c0a F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1382      D0
- 609:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         cv ^= ivec;
- 1383              		.loc 1 609 0
- 1384 0c0f F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1384      E0
- 1385 0c14 F30F6F4D 		movdqu	-48(%rbp), %xmm1
- 1385      D0
- 1386 0c19 660FEFC1 		pxor	%xmm1, %xmm0
- 1387 0c1d F30F7F45 		movdqu	%xmm0, -48(%rbp)
- 1387      D0
- 610:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CipherVecOut (cv, pout);
- 1388              		.loc 1 610 0
- 1389 0c22 488B45F8 		movq	-8(%rbp), %rax
-
GAS LISTING /tmp/ccXzRABk.s 			page 41
-
-
- 1390 0c26 F30F6F45 		movdqu	-48(%rbp), %xmm0
- 1390      D0
- 1391 0c2b 4889C7   		movq	%rax, %rdi
- 1392 0c2e E8ECF3FF 		call	CipherVecOut
- 1392      FF
- 605:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          (pin += self->dad.block_size), (pout += self->dad.block_size))
- 1393              		.loc 1 605 0
- 1394 0c33 488B45C8 		movq	-56(%rbp), %rax
- 1395 0c37 8B4004   		movl	4(%rax), %eax
- 1396 0c3a 89C0     		mov	%eax, %eax
- 1397 0c3c 480145F0 		addq	%rax, -16(%rbp)
- 1398 0c40 488B45C8 		movq	-56(%rbp), %rax
- 1399 0c44 8B4004   		movl	4(%rax), %eax
- 1400 0c47 89C0     		mov	%eax, %eax
- 1401 0c49 480145F8 		addq	%rax, -8(%rbp)
- 1402              	.L91:
- 604:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****          block_count --; 
- 1403              		.loc 1 604 0
- 1404 0c4d 837DB400 		cmpl	$0, -76(%rbp)
- 1405 0c51 0F95C0   		setne	%al
- 1406 0c54 836DB401 		subl	$1, -76(%rbp)
- 603:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     for ((pin = in), (pout = out);
- 1407              		.loc 1 603 0
- 1408 0c58 84C0     		testb	%al, %al
- 1409 0c5a 758C     		jne	.L92
- 611:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 612:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 613:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *(CipherVec*)self->dad.encrypt_ivec = ivec;
- 1410              		.loc 1 613 0
- 1411 0c5c 488B45C8 		movq	-56(%rbp), %rax
- 1412 0c60 488B4028 		movq	40(%rax), %rax
- 1413 0c64 F30F6F45 		movdqu	-32(%rbp), %xmm0
- 1413      E0
- 1414 0c69 F30F7F00 		movdqu	%xmm0, (%rax)
- 614:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 615:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1415              		.loc 1 615 0
- 1416 0c6d B8000000 		movl	$0, %eax
- 1416      00
- 616:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #else
- 617:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 618:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** #endif
- 619:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1417              		.loc 1 619 0
- 1418 0c72 C9       		leave
- 1419 0c73 C3       		ret
- 1420              		.cfi_endproc
- 1421              	.LFE613:
- 1422              		.size	KCipherVecRegEncryptOfb, .-KCipherVecRegEncryptOfb
- 1423              		.type	KCipherVecRegDecryptOfb, @function
- 1424              	KCipherVecRegDecryptOfb:
- 1425              	.LFB614:
- 620:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 621:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 622:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 623:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptOfb) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 624:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
-
GAS LISTING /tmp/ccXzRABk.s 			page 42
-
-
- 1426              		.loc 1 624 0
- 1427              		.cfi_startproc
- 1428 0c74 55       		pushq	%rbp
- 1429              	.LCFI48:
- 1430              		.cfi_def_cfa_offset 16
- 1431 0c75 4889E5   		movq	%rsp, %rbp
- 1432              		.cfi_offset 6, -16
- 1433              	.LCFI49:
- 1434              		.cfi_def_cfa_register 6
- 1435 0c78 53       		pushq	%rbx
- 1436 0c79 4883EC28 		subq	$40, %rsp
- 1437 0c7d 48897DE8 		movq	%rdi, -24(%rbp)
- 1438 0c81 488975E0 		movq	%rsi, -32(%rbp)
- 1439 0c85 488955D8 		movq	%rdx, -40(%rbp)
- 1440 0c89 894DD4   		movl	%ecx, -44(%rbp)
- 625:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return CMEMBER(EncryptOfb)(self, in, out, block_count);
- 1441              		.loc 1 625 0
- 1442 0c8c 8B4DD4   		movl	-44(%rbp), %ecx
- 1443 0c8f 488B55D8 		movq	-40(%rbp), %rdx
- 1444 0c93 488B5DE0 		movq	-32(%rbp), %rbx
- 1445              		.cfi_offset 3, -24
- 1446 0c97 488B45E8 		movq	-24(%rbp), %rax
- 1447 0c9b 4889DE   		movq	%rbx, %rsi
- 1448 0c9e 4889C7   		movq	%rax, %rdi
- 1449 0ca1 E808FFFF 		call	KCipherVecRegEncryptOfb
- 1449      FF
- 626:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1450              		.loc 1 626 0
- 1451 0ca6 4883C428 		addq	$40, %rsp
- 1452 0caa 5B       		popq	%rbx
- 1453 0cab C9       		leave
- 1454 0cac C3       		ret
- 1455              		.cfi_endproc
- 1456              	.LFE614:
- 1457              		.size	KCipherVecRegDecryptOfb, .-KCipherVecRegDecryptOfb
- 1458              		.type	KCipherVecRegEncryptCtr, @function
- 1459              	KCipherVecRegEncryptCtr:
- 1460              	.LFB615:
- 627:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 628:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 629:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** /* Counter
- 630:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * IV is a nonce and not re-used as FB
- 631:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * CT = PT ^ ENC (N, EK)
- 632:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * PT = CT ^ ENC (N, DK) 
- 633:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * Note decrypt is encrypt.
- 634:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  * nonce is a function that given an iv generates the next iv
- 635:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****  */
- 636:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 637:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(EncryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 638:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1461              		.loc 1 638 0
- 1462              		.cfi_startproc
- 1463 0cad 55       		pushq	%rbp
- 1464              	.LCFI50:
- 1465              		.cfi_def_cfa_offset 16
- 1466 0cae 4889E5   		movq	%rsp, %rbp
- 1467              		.cfi_offset 6, -16
-
GAS LISTING /tmp/ccXzRABk.s 			page 43
-
-
- 1468              	.LCFI51:
- 1469              		.cfi_def_cfa_register 6
- 1470 0cb1 4883EC20 		subq	$32, %rsp
- 1471 0cb5 48897DF8 		movq	%rdi, -8(%rbp)
- 1472 0cb9 488975F0 		movq	%rsi, -16(%rbp)
- 1473 0cbd 488955E8 		movq	%rdx, -24(%rbp)
- 1474 0cc1 894DE4   		movl	%ecx, -28(%rbp)
- 639:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 1475              		.loc 1 639 0
- 1476 0cc4 B97F0200 		movl	$639, %ecx
- 1476      00
- 1477 0cc9 488D1500 		leaq	__func__.7600(%rip), %rdx
- 1477      000000
- 1478 0cd0 488D3500 		leaq	.LC0(%rip), %rsi
- 1478      000000
- 1479 0cd7 BF030509 		movl	$-2029452029, %edi
- 1479      87
- 1480 0cdc E8000000 		call	SetRCFileFuncLine at PLT
- 1480      00
- 640:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1481              		.loc 1 640 0
- 1482 0ce1 C9       		leave
- 1483 0ce2 C3       		ret
- 1484              		.cfi_endproc
- 1485              	.LFE615:
- 1486              		.size	KCipherVecRegEncryptCtr, .-KCipherVecRegEncryptCtr
- 1487              		.type	KCipherVecRegDecryptCtr, @function
- 1488              	KCipherVecRegDecryptCtr:
- 1489              	.LFB616:
- 641:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 642:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 643:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 644:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(DecryptCtr) (CIPHER_IMPL * self, const void * in, void * out, uint32_t block_count)
- 645:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1490              		.loc 1 645 0
- 1491              		.cfi_startproc
- 1492 0ce3 55       		pushq	%rbp
- 1493              	.LCFI52:
- 1494              		.cfi_def_cfa_offset 16
- 1495 0ce4 4889E5   		movq	%rsp, %rbp
- 1496              		.cfi_offset 6, -16
- 1497              	.LCFI53:
- 1498              		.cfi_def_cfa_register 6
- 1499 0ce7 4883EC20 		subq	$32, %rsp
- 1500 0ceb 48897DF8 		movq	%rdi, -8(%rbp)
- 1501 0cef 488975F0 		movq	%rsi, -16(%rbp)
- 1502 0cf3 488955E8 		movq	%rdx, -24(%rbp)
- 1503 0cf7 894DE4   		movl	%ecx, -28(%rbp)
- 646:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return RC (rcKrypto, rcCipher, rcEncoding, rcFunction, rcUnsupported);
- 1504              		.loc 1 646 0
- 1505 0cfa B9860200 		movl	$646, %ecx
- 1505      00
- 1506 0cff 488D1500 		leaq	__func__.7610(%rip), %rdx
- 1506      000000
- 1507 0d06 488D3500 		leaq	.LC0(%rip), %rsi
- 1507      000000
- 1508 0d0d BF030509 		movl	$-2029452029, %edi
-
GAS LISTING /tmp/ccXzRABk.s 			page 44
-
-
- 1508      87
- 1509 0d12 E8000000 		call	SetRCFileFuncLine at PLT
- 1509      00
- 647:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1510              		.loc 1 647 0
- 1511 0d17 C9       		leave
- 1512 0d18 C3       		ret
- 1513              		.cfi_endproc
- 1514              	.LFE616:
- 1515              		.size	KCipherVecRegDecryptCtr, .-KCipherVecRegDecryptCtr
- 1516              		.section	.data.rel.local,"aw", at progbits
- 1517              		.align 32
- 1518              		.type	KCipherVecReg_vt_v1, @object
- 1519              		.size	KCipherVecReg_vt_v1, 176
- 1520              	KCipherVecReg_vt_v1:
- 1521 0000 01000000 		.long	1
- 1522 0004 00000000 		.long	0
- 1523 0008 00000000 		.quad	KCipherVecRegDestroy
- 1523      00000000 
- 1524 0010 00000000 		.quad	KCipherVecRegSetEncryptKey
- 1524      00000000 
- 1525 0018 00000000 		.quad	KCipherVecRegSetDecryptKey
- 1525      00000000 
- 1526 0020 00000000 		.quad	KCipherVecRegSetEncryptIvec
- 1526      00000000 
- 1527 0028 00000000 		.quad	KCipherVecRegSetDecryptIvec
- 1527      00000000 
- 1528 0030 00000000 		.quad	KCipherVecRegSetEncryptCounterFunc
- 1528      00000000 
- 1529 0038 00000000 		.quad	KCipherVecRegSetDecryptCounterFunc
- 1529      00000000 
- 1530 0040 00000000 		.quad	KCipherVecRegEncrypt
- 1530      00000000 
- 1531 0048 00000000 		.quad	KCipherVecRegDecrypt
- 1531      00000000 
- 1532 0050 00000000 		.quad	KCipherVecRegEncryptEcb
- 1532      00000000 
- 1533 0058 00000000 		.quad	KCipherVecRegDecryptEcb
- 1533      00000000 
- 1534 0060 00000000 		.quad	KCipherVecRegEncryptCbc
- 1534      00000000 
- 1535 0068 00000000 		.quad	KCipherVecRegDecryptCbc
- 1535      00000000 
- 1536 0070 00000000 		.quad	KCipherVecRegEncryptPcbc
- 1536      00000000 
- 1537 0078 00000000 		.quad	KCipherVecRegDecryptPcbc
- 1537      00000000 
- 1538 0080 00000000 		.quad	KCipherVecRegEncryptCfb
- 1538      00000000 
- 1539 0088 00000000 		.quad	KCipherVecRegDecryptCfb
- 1539      00000000 
- 1540 0090 00000000 		.quad	KCipherVecRegEncryptOfb
- 1540      00000000 
- 1541 0098 00000000 		.quad	KCipherVecRegDecryptOfb
- 1541      00000000 
- 1542 00a0 00000000 		.quad	KCipherVecRegEncryptCtr
- 1542      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 45
-
-
- 1543 00a8 00000000 		.quad	KCipherVecRegDecryptCtr
- 1543      00000000 
- 1544              		.text
- 1545              		.type	KCipherVecRegAllocAes, @function
- 1546              	KCipherVecRegAllocAes:
- 1547              	.LFB617:
- 648:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 649:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static
- 650:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** struct KCipher_vt_v1 CMEMBER(_vt_v1) =
- 651:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 652:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     { 1, 0 },
- 653:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 654:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Destroy),
- 655:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptKey),
- 656:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptKey),
- 657:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptIvec),
- 658:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptIvec),
- 659:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetEncryptCounterFunc),
- 660:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(SetDecryptCounterFunc),
- 661:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Encrypt),
- 662:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(Decrypt),
- 663:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptEcb),
- 664:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptEcb),
- 665:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCbc),
- 666:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCbc),
- 667:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptPcbc),
- 668:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptPcbc),
- 669:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCfb),
- 670:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCfb),
- 671:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptOfb),
- 672:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptOfb),
- 673:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(EncryptCtr),
- 674:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CMEMBER(DecryptCtr)
- 675:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** };
- 676:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 677:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 678:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 679:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(AllocAes)(CIPHER_IMPL ** pobj,
- 680:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                        const KBlockCipher * block_cipher)
- 681:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1548              		.loc 1 681 0
- 1549              		.cfi_startproc
- 1550 0d19 55       		pushq	%rbp
- 1551              	.LCFI54:
- 1552              		.cfi_def_cfa_offset 16
- 1553 0d1a 4889E5   		movq	%rsp, %rbp
- 1554              		.cfi_offset 6, -16
- 1555              	.LCFI55:
- 1556              		.cfi_def_cfa_register 6
- 1557 0d1d 4883EC20 		subq	$32, %rsp
- 1558 0d21 48897DE8 		movq	%rdi, -24(%rbp)
- 1559 0d25 488975E0 		movq	%rsi, -32(%rbp)
- 682:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherAes * obj;
- 683:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 684:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     obj = calloc (1, sizeof (*obj));
- 1560              		.loc 1 684 0
- 1561 0d29 BE700200 		movl	$624, %esi
-
GAS LISTING /tmp/ccXzRABk.s 			page 46
-
-
- 1561      00
- 1562 0d2e BF010000 		movl	$1, %edi
- 1562      00
- 1563 0d33 E8000000 		call	calloc at PLT
- 1563      00
- 1564 0d38 488945F8 		movq	%rax, -8(%rbp)
- 685:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *pobj = (CIPHER_IMPL*)obj;
- 1565              		.loc 1 685 0
- 1566 0d3c 488B55F8 		movq	-8(%rbp), %rdx
- 1567 0d40 488B45E8 		movq	-24(%rbp), %rax
- 1568 0d44 488910   		movq	%rdx, (%rax)
- 686:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 687:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
- 1569              		.loc 1 687 0
- 1570 0d47 48837DF8 		cmpq	$0, -8(%rbp)
- 1570      00
- 1571 0d4c 751F     		jne	.L101
- 1572 0d4e B9AF0200 		movl	$687, %ecx
- 1572      00
- 1573 0d53 488D1500 		leaq	__func__.7620(%rip), %rdx
- 1573      000000
- 1574 0d5a 488D3500 		leaq	.LC0(%rip), %rsi
- 1574      000000
- 1575 0d61 BF539000 		movl	$-2030006189, %edi
- 1575      87
- 1576 0d66 E8000000 		call	SetRCFileFuncLine at PLT
- 1576      00
- 1577 0d6b EB05     		jmp	.L102
- 1578              	.L101:
- 1579 0d6d B8000000 		movl	$0, %eax
- 1579      00
- 1580              	.L102:
- 688:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1581              		.loc 1 688 0
- 1582 0d72 C9       		leave
- 1583 0d73 C3       		ret
- 1584              		.cfi_endproc
- 1585              	.LFE617:
- 1586              		.size	KCipherVecRegAllocAes, .-KCipherVecRegAllocAes
- 1587              		.type	KCipherVecRegInitAes, @function
- 1588              	KCipherVecRegInitAes:
- 1589              	.LFB618:
- 689:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 690:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 691:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 692:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(InitAes) (CIPHER_IMPL * self,
- 693:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                       const KBlockCipher * block_cipher)
- 694:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1590              		.loc 1 694 0
- 1591              		.cfi_startproc
- 1592 0d74 55       		pushq	%rbp
- 1593              	.LCFI56:
- 1594              		.cfi_def_cfa_offset 16
- 1595 0d75 4889E5   		movq	%rsp, %rbp
- 1596              		.cfi_offset 6, -16
- 1597              	.LCFI57:
- 1598              		.cfi_def_cfa_register 6
-
GAS LISTING /tmp/ccXzRABk.s 			page 47
-
-
- 1599 0d78 4883EC20 		subq	$32, %rsp
- 1600 0d7c 48897DE8 		movq	%rdi, -24(%rbp)
- 1601 0d80 488975E0 		movq	%rsi, -32(%rbp)
- 695:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher * dad = &self->dad;
- 1602              		.loc 1 695 0
- 1603 0d84 488B45E8 		movq	-24(%rbp), %rax
- 1604 0d88 488945F0 		movq	%rax, -16(%rbp)
- 696:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherAes * aes = (struct CipherAes*)self;
- 1605              		.loc 1 696 0
- 1606 0d8c 488B45E8 		movq	-24(%rbp), %rax
- 1607 0d90 488945F8 		movq	%rax, -8(%rbp)
- 697:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 698:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipherInit (dad, sizeof (CipherVec),
- 1608              		.loc 1 698 0
- 1609 0d94 488B45F0 		movq	-16(%rbp), %rax
- 1610 0d98 488B1500 		movq	KCipherVecRegClassName at GOTPCREL(%rip), %rdx
- 1610      000000
- 1611 0d9f 4889D1   		movq	%rdx, %rcx
- 1612 0da2 488D1500 		leaq	KCipherVecReg_vt_v1(%rip), %rdx
- 1612      000000
- 1613 0da9 BE100000 		movl	$16, %esi
- 1613      00
- 1614 0dae 4889C7   		movq	%rax, %rdi
- 1615 0db1 E8000000 		call	KCipherInit at PLT
- 1615      00
- 699:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  (const KCipher_vt*)&CMEMBER(_vt_v1),
- 700:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  CMEMBER(ClassName));
- 701:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 702:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_key = &aes->e_key;
- 1616              		.loc 1 702 0
- 1617 0db6 488B45F8 		movq	-8(%rbp), %rax
- 1618 0dba 488D5050 		leaq	80(%rax), %rdx
- 1619 0dbe 488B45F0 		movq	-16(%rbp), %rax
- 1620 0dc2 48895018 		movq	%rdx, 24(%rax)
- 703:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_key = &aes->d_key;
- 1621              		.loc 1 703 0
- 1622 0dc6 488B45F8 		movq	-8(%rbp), %rax
- 1623 0dca 488D9050 		leaq	336(%rax), %rdx
- 1623      010000
- 1624 0dd1 488B45F0 		movq	-16(%rbp), %rax
- 1625 0dd5 48895020 		movq	%rdx, 32(%rax)
- 704:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_ivec = &aes->e_ivec;
- 1626              		.loc 1 704 0
- 1627 0dd9 488B45F8 		movq	-8(%rbp), %rax
- 1628 0ddd 488D9050 		leaq	592(%rax), %rdx
- 1628      020000
- 1629 0de4 488B45F0 		movq	-16(%rbp), %rax
- 1630 0de8 48895028 		movq	%rdx, 40(%rax)
- 705:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_ivec = &aes->d_ivec;
- 1631              		.loc 1 705 0
- 1632 0dec 488B45F8 		movq	-8(%rbp), %rax
- 1633 0df0 488D9060 		leaq	608(%rax), %rdx
- 1633      020000
- 1634 0df7 488B45F0 		movq	-16(%rbp), %rax
- 1635 0dfb 48895030 		movq	%rdx, 48(%rax)
- 706:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 707:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->block_cipher = &block_cipher->vec;
-
GAS LISTING /tmp/ccXzRABk.s 			page 48
-
-
- 1636              		.loc 1 707 0
- 1637 0dff 488B55E0 		movq	-32(%rbp), %rdx
- 1638 0e03 488B45E8 		movq	-24(%rbp), %rax
- 1639 0e07 48895048 		movq	%rdx, 72(%rax)
- 708:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 709:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1640              		.loc 1 709 0
- 1641 0e0b B8000000 		movl	$0, %eax
- 1641      00
- 710:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1642              		.loc 1 710 0
- 1643 0e10 C9       		leave
- 1644 0e11 C3       		ret
- 1645              		.cfi_endproc
- 1646              	.LFE618:
- 1647              		.size	KCipherVecRegInitAes, .-KCipherVecRegInitAes
- 1648              		.type	KCipherVecRegAllocNull, @function
- 1649              	KCipherVecRegAllocNull:
- 1650              	.LFB619:
- 711:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 712:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 713:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 714:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(AllocNull)(CIPHER_IMPL ** pobj,
- 715:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                         const KBlockCipher * block_cipher)
- 716:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1651              		.loc 1 716 0
- 1652              		.cfi_startproc
- 1653 0e12 55       		pushq	%rbp
- 1654              	.LCFI58:
- 1655              		.cfi_def_cfa_offset 16
- 1656 0e13 4889E5   		movq	%rsp, %rbp
- 1657              		.cfi_offset 6, -16
- 1658              	.LCFI59:
- 1659              		.cfi_def_cfa_register 6
- 1660 0e16 4883EC20 		subq	$32, %rsp
- 1661 0e1a 48897DE8 		movq	%rdi, -24(%rbp)
- 1662 0e1e 488975E0 		movq	%rsi, -32(%rbp)
- 717:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherNull * obj;
- 718:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 719:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     obj = calloc (1, sizeof (*obj));
- 1663              		.loc 1 719 0
- 1664 0e22 BE700000 		movl	$112, %esi
- 1664      00
- 1665 0e27 BF010000 		movl	$1, %edi
- 1665      00
- 1666 0e2c E8000000 		call	calloc at PLT
- 1666      00
- 1667 0e31 488945F8 		movq	%rax, -8(%rbp)
- 720:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *pobj = (CIPHER_IMPL*)obj;
- 1668              		.loc 1 720 0
- 1669 0e35 488B55F8 		movq	-8(%rbp), %rdx
- 1670 0e39 488B45E8 		movq	-24(%rbp), %rax
- 1671 0e3d 488910   		movq	%rdx, (%rax)
- 721:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 722:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return (obj ? 0 : RC (rcKrypto, rcCipher, rcConstructing, rcMemory, rcExhausted));
- 1672              		.loc 1 722 0
- 1673 0e40 48837DF8 		cmpq	$0, -8(%rbp)
-
GAS LISTING /tmp/ccXzRABk.s 			page 49
-
-
- 1673      00
- 1674 0e45 751F     		jne	.L107
- 1675 0e47 B9D20200 		movl	$722, %ecx
- 1675      00
- 1676 0e4c 488D1500 		leaq	__func__.7647(%rip), %rdx
- 1676      000000
- 1677 0e53 488D3500 		leaq	.LC0(%rip), %rsi
- 1677      000000
- 1678 0e5a BF539000 		movl	$-2030006189, %edi
- 1678      87
- 1679 0e5f E8000000 		call	SetRCFileFuncLine at PLT
- 1679      00
- 1680 0e64 EB05     		jmp	.L108
- 1681              	.L107:
- 1682 0e66 B8000000 		movl	$0, %eax
- 1682      00
- 1683              	.L108:
- 723:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1684              		.loc 1 723 0
- 1685 0e6b C9       		leave
- 1686 0e6c C3       		ret
- 1687              		.cfi_endproc
- 1688              	.LFE619:
- 1689              		.size	KCipherVecRegAllocNull, .-KCipherVecRegAllocNull
- 1690              		.type	KCipherVecRegInitNull, @function
- 1691              	KCipherVecRegInitNull:
- 1692              	.LFB620:
- 724:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 725:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 726:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** static __inline__
- 727:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(InitNull) (CIPHER_IMPL * self,
- 728:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                         const KBlockCipher * block_cipher)
- 729:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1693              		.loc 1 729 0
- 1694              		.cfi_startproc
- 1695 0e6d 55       		pushq	%rbp
- 1696              	.LCFI60:
- 1697              		.cfi_def_cfa_offset 16
- 1698 0e6e 4889E5   		movq	%rsp, %rbp
- 1699              		.cfi_offset 6, -16
- 1700              	.LCFI61:
- 1701              		.cfi_def_cfa_register 6
- 1702 0e71 4883EC20 		subq	$32, %rsp
- 1703 0e75 48897DE8 		movq	%rdi, -24(%rbp)
- 1704 0e79 488975E0 		movq	%rsi, -32(%rbp)
- 730:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipher * dad = &self->dad;
- 1705              		.loc 1 730 0
- 1706 0e7d 488B45E8 		movq	-24(%rbp), %rax
- 1707 0e81 488945F0 		movq	%rax, -16(%rbp)
- 731:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     CipherNull * null = (CipherNull*)self;
- 1708              		.loc 1 731 0
- 1709 0e85 488B45E8 		movq	-24(%rbp), %rax
- 1710 0e89 488945F8 		movq	%rax, -8(%rbp)
- 732:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 733:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KCipherInit (dad, sizeof (CipherVec),
- 1711              		.loc 1 733 0
- 1712 0e8d 488B45F0 		movq	-16(%rbp), %rax
-
GAS LISTING /tmp/ccXzRABk.s 			page 50
-
-
- 1713 0e91 488B1500 		movq	KCipherVecRegClassName at GOTPCREL(%rip), %rdx
- 1713      000000
- 1714 0e98 4889D1   		movq	%rdx, %rcx
- 1715 0e9b 488D1500 		leaq	KCipherVecReg_vt_v1(%rip), %rdx
- 1715      000000
- 1716 0ea2 BE100000 		movl	$16, %esi
- 1716      00
- 1717 0ea7 4889C7   		movq	%rax, %rdi
- 1718 0eaa E8000000 		call	KCipherInit at PLT
- 1718      00
- 734:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  (const KCipher_vt*)&CMEMBER(_vt_v1),
- 735:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                  CMEMBER(ClassName));
- 736:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 737:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_key = &null->e_ivec;
- 1719              		.loc 1 737 0
- 1720 0eaf 488B45F8 		movq	-8(%rbp), %rax
- 1721 0eb3 488D5050 		leaq	80(%rax), %rdx
- 1722 0eb7 488B45F0 		movq	-16(%rbp), %rax
- 1723 0ebb 48895018 		movq	%rdx, 24(%rax)
- 738:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_key = &null->d_ivec;
- 1724              		.loc 1 738 0
- 1725 0ebf 488B45F8 		movq	-8(%rbp), %rax
- 1726 0ec3 488D5060 		leaq	96(%rax), %rdx
- 1727 0ec7 488B45F0 		movq	-16(%rbp), %rax
- 1728 0ecb 48895020 		movq	%rdx, 32(%rax)
- 739:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->encrypt_ivec = &null->e_ivec;
- 1729              		.loc 1 739 0
- 1730 0ecf 488B45F8 		movq	-8(%rbp), %rax
- 1731 0ed3 488D5050 		leaq	80(%rax), %rdx
- 1732 0ed7 488B45F0 		movq	-16(%rbp), %rax
- 1733 0edb 48895028 		movq	%rdx, 40(%rax)
- 740:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     dad->decrypt_ivec = &null->d_ivec;
- 1734              		.loc 1 740 0
- 1735 0edf 488B45F8 		movq	-8(%rbp), %rax
- 1736 0ee3 488D5060 		leaq	96(%rax), %rdx
- 1737 0ee7 488B45F0 		movq	-16(%rbp), %rax
- 1738 0eeb 48895030 		movq	%rdx, 48(%rax)
- 741:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 742:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     self->block_cipher = &block_cipher->vec;
- 1739              		.loc 1 742 0
- 1740 0eef 488B55E0 		movq	-32(%rbp), %rdx
- 1741 0ef3 488B45E8 		movq	-24(%rbp), %rax
- 1742 0ef7 48895048 		movq	%rdx, 72(%rax)
- 743:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 744:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return 0;
- 1743              		.loc 1 744 0
- 1744 0efb B8000000 		movl	$0, %eax
- 1744      00
- 745:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1745              		.loc 1 745 0
- 1746 0f00 C9       		leave
- 1747 0f01 C3       		ret
- 1748              		.cfi_endproc
- 1749              	.LFE620:
- 1750              		.size	KCipherVecRegInitNull, .-KCipherVecRegInitNull
- 1751              	.globl KCipherVecRegMake
- 1752              		.type	KCipherVecRegMake, @function
-
GAS LISTING /tmp/ccXzRABk.s 			page 51
-
-
- 1753              	KCipherVecRegMake:
- 1754              	.LFB621:
- 746:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 747:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 748:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** rc_t CMEMBER(Make) (KCipher ** new_obj, kcipher_type type)
- 749:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** {
- 1755              		.loc 1 749 0
- 1756              		.cfi_startproc
- 1757 0f02 55       		pushq	%rbp
- 1758              	.LCFI62:
- 1759              		.cfi_def_cfa_offset 16
- 1760 0f03 4889E5   		movq	%rsp, %rbp
- 1761              		.cfi_offset 6, -16
- 1762              	.LCFI63:
- 1763              		.cfi_def_cfa_register 6
- 1764 0f06 4883EC30 		subq	$48, %rsp
- 1765 0f0a 48897DD8 		movq	%rdi, -40(%rbp)
- 1766 0f0e 8975D4   		movl	%esi, -44(%rbp)
- 750:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     rc_t rc;
- 751:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     KBlockCipher * block_cipher;
- 752:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 753:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (new_obj == NULL)
- 1767              		.loc 1 753 0
- 1768 0f11 48837DD8 		cmpq	$0, -40(%rbp)
- 1768      00
- 1769 0f16 7522     		jne	.L113
- 754:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
- 1770              		.loc 1 754 0
- 1771 0f18 B9F20200 		movl	$754, %ecx
- 1771      00
- 1772 0f1d 488D1500 		leaq	__func__.7675(%rip), %rdx
- 1772      000000
- 1773 0f24 488D3500 		leaq	.LC0(%rip), %rsi
- 1773      000000
- 1774 0f2b BF878F00 		movl	$-2030006393, %edi
- 1774      87
- 1775 0f30 E8000000 		call	SetRCFileFuncLine at PLT
- 1775      00
- 1776 0f35 E9280100 		jmp	.L114
- 1776      00
- 1777              	.L113:
- 755:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 756:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     *new_obj = NULL;
- 1778              		.loc 1 756 0
- 1779 0f3a 488B45D8 		movq	-40(%rbp), %rax
- 1780 0f3e 48C70000 		movq	$0, (%rax)
- 1780      000000
- 757:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 758:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     switch (type)
- 1781              		.loc 1 758 0
- 1782 0f45 8B45D4   		movl	-44(%rbp), %eax
- 1783 0f48 85C0     		testl	%eax, %eax
- 1784 0f4a 7427     		je	.L116
- 1785 0f4c 83F801   		cmpl	$1, %eax
- 1786 0f4f 7433     		je	.L117
- 759:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 760:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     default:
-
GAS LISTING /tmp/ccXzRABk.s 			page 52
-
-
- 761:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         return RC (rcKrypto, rcCipher, rcConstructing, rcParam, rcInvalid);
- 1787              		.loc 1 761 0
- 1788 0f51 B9F90200 		movl	$761, %ecx
- 1788      00
- 1789 0f56 488D1500 		leaq	__func__.7675(%rip), %rdx
- 1789      000000
- 1790 0f5d 488D3500 		leaq	.LC0(%rip), %rsi
- 1790      000000
- 1791 0f64 BFCA8F00 		movl	$-2030006326, %edi
- 1791      87
- 1792 0f69 E8000000 		call	SetRCFileFuncLine at PLT
- 1792      00
- 1793 0f6e E9EF0000 		jmp	.L114
- 1793      00
- 1794              	.L116:
- 762:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 763:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case kcipher_null:
- 764:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = NULLBCMEMBER(Make)(&block_cipher);
- 1795              		.loc 1 764 0
- 1796 0f73 488D45F0 		leaq	-16(%rbp), %rax
- 1797 0f77 4889C7   		movq	%rax, %rdi
- 1798 0f7a E8000000 		call	KNullBlockCipherVecRegMake at PLT
- 1798      00
- 1799 0f7f 8945FC   		movl	%eax, -4(%rbp)
- 765:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 1800              		.loc 1 765 0
- 1801 0f82 EB0F     		jmp	.L118
- 1802              	.L117:
- 766:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 767:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     case kcipher_AES:
- 768:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         rc = AESBCMEMBER(Make)(&block_cipher);
- 1803              		.loc 1 768 0
- 1804 0f84 488D45F0 		leaq	-16(%rbp), %rax
- 1805 0f88 4889C7   		movq	%rax, %rdi
- 1806 0f8b E8000000 		call	KAESBlockCipherVecRegMake at PLT
- 1806      00
- 1807 0f90 8945FC   		movl	%eax, -4(%rbp)
- 1808              	.L118:
- 769:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         break;
- 770:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 771:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 772:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     if (rc == 0)
- 1809              		.loc 1 772 0
- 1810 0f93 837DFC00 		cmpl	$0, -4(%rbp)
- 1811 0f97 0F85C200 		jne	.L119
- 1811      0000
- 1812              	.LBB5:
- 773:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     {
- 774:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         CIPHER_IMPL * obj;
- 775:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** 
- 776:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         switch (type)
- 1813              		.loc 1 776 0
- 1814 0f9d 8B45D4   		movl	-44(%rbp), %eax
- 1815 0fa0 85C0     		testl	%eax, %eax
- 1816 0fa2 740A     		je	.L120
- 1817 0fa4 83F801   		cmpl	$1, %eax
- 1818 0fa7 745F     		je	.L121
-
GAS LISTING /tmp/ccXzRABk.s 			page 53
-
-
- 1819 0fa9 E9B10000 		jmp	.L119
- 1819      00
- 1820              	.L120:
- 777:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         {
- 778:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         case kcipher_null:
- 779:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             rc = CMEMBER(AllocNull) (&obj, block_cipher);
- 1821              		.loc 1 779 0
- 1822 0fae 488B55F0 		movq	-16(%rbp), %rdx
- 1823 0fb2 488D45E8 		leaq	-24(%rbp), %rax
- 1824 0fb6 4889D6   		movq	%rdx, %rsi
- 1825 0fb9 4889C7   		movq	%rax, %rdi
- 1826 0fbc E851FEFF 		call	KCipherVecRegAllocNull
- 1826      FF
- 1827 0fc1 8945FC   		movl	%eax, -4(%rbp)
- 780:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             if (rc == 0)
- 1828              		.loc 1 780 0
- 1829 0fc4 837DFC00 		cmpl	$0, -4(%rbp)
- 1830 0fc8 0F859000 		jne	.L126
- 1830      0000
- 781:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             {
- 782:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 rc = CMEMBER(InitNull) (obj, block_cipher);
- 1831              		.loc 1 782 0
- 1832 0fce 488B55F0 		movq	-16(%rbp), %rdx
- 1833 0fd2 488B45E8 		movq	-24(%rbp), %rax
- 1834 0fd6 4889D6   		movq	%rdx, %rsi
- 1835 0fd9 4889C7   		movq	%rax, %rdi
- 1836 0fdc E88CFEFF 		call	KCipherVecRegInitNull
- 1836      FF
- 1837 0fe1 8945FC   		movl	%eax, -4(%rbp)
- 783:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 if (rc == 0)
- 1838              		.loc 1 783 0
- 1839 0fe4 837DFC00 		cmpl	$0, -4(%rbp)
- 1840 0fe8 7510     		jne	.L123
- 784:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     *new_obj = (KCipher*)obj;
- 1841              		.loc 1 784 0
- 1842 0fea 488B45E8 		movq	-24(%rbp), %rax
- 1843 0fee 4889C2   		movq	%rax, %rdx
- 1844 0ff1 488B45D8 		movq	-40(%rbp), %rax
- 1845 0ff5 488910   		movq	%rdx, (%rax)
- 785:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 else
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 787:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             }
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 1846              		.loc 1 788 0
- 1847 0ff8 EB65     		jmp	.L119
- 1848              	.L123:
- 786:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 1849              		.loc 1 786 0
- 1850 0ffa 488B45E8 		movq	-24(%rbp), %rax
- 1851 0ffe 4889C7   		movq	%rax, %rdi
- 1852 1001 E8000000 		call	free at PLT
- 1852      00
- 1853              		.loc 1 788 0
- 1854 1006 EB57     		jmp	.L119
- 1855              	.L121:
- 789:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         case kcipher_AES:
- 790:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             rc = CMEMBER(AllocAes) (&obj, block_cipher);
-
GAS LISTING /tmp/ccXzRABk.s 			page 54
-
-
- 1856              		.loc 1 790 0
- 1857 1008 488B55F0 		movq	-16(%rbp), %rdx
- 1858 100c 488D45E8 		leaq	-24(%rbp), %rax
- 1859 1010 4889D6   		movq	%rdx, %rsi
- 1860 1013 4889C7   		movq	%rax, %rdi
- 1861 1016 E8FEFCFF 		call	KCipherVecRegAllocAes
- 1861      FF
- 1862 101b 8945FC   		movl	%eax, -4(%rbp)
- 791:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             if (rc == 0)
- 1863              		.loc 1 791 0
- 1864 101e 837DFC00 		cmpl	$0, -4(%rbp)
- 1865 1022 753B     		jne	.L119
- 792:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             {
- 793:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 rc = CMEMBER(InitAes) (obj, block_cipher);
- 1866              		.loc 1 793 0
- 1867 1024 488B55F0 		movq	-16(%rbp), %rdx
- 1868 1028 488B45E8 		movq	-24(%rbp), %rax
- 1869 102c 4889D6   		movq	%rdx, %rsi
- 1870 102f 4889C7   		movq	%rax, %rdi
- 1871 1032 E83DFDFF 		call	KCipherVecRegInitAes
- 1871      FF
- 1872 1037 8945FC   		movl	%eax, -4(%rbp)
- 794:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 if (rc == 0)
- 1873              		.loc 1 794 0
- 1874 103a 837DFC00 		cmpl	$0, -4(%rbp)
- 1875 103e 7510     		jne	.L124
- 795:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     *new_obj = (KCipher*)obj;
- 1876              		.loc 1 795 0
- 1877 1040 488B45E8 		movq	-24(%rbp), %rax
- 1878 1044 4889C2   		movq	%rax, %rdx
- 1879 1047 488B45D8 		movq	-40(%rbp), %rax
- 1880 104b 488910   		movq	%rdx, (%rax)
- 1881 104e EB0F     		jmp	.L119
- 1882              	.L124:
- 796:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                 else
- 797:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****                     free (obj);
- 1883              		.loc 1 797 0
- 1884 1050 488B45E8 		movq	-24(%rbp), %rax
- 1885 1054 4889C7   		movq	%rax, %rdi
- 1886 1057 E8000000 		call	free at PLT
- 1886      00
- 1887 105c EB01     		jmp	.L119
- 1888              	.L126:
- 788:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 1889              		.loc 1 788 0
- 1890 105e 90       		nop
- 1891              	.L119:
- 1892              	.LBE5:
- 798:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             }
- 799:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         default:
- 800:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             /* can't really get here */
- 801:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****             break;
- 802:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****         }
- 803:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     }
- 804:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c ****     return rc;
- 1893              		.loc 1 804 0
- 1894 105f 8B45FC   		movl	-4(%rbp), %eax
-
GAS LISTING /tmp/ccXzRABk.s 			page 55
-
-
- 1895              	.L114:
- 805:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c **** }
- 1896              		.loc 1 805 0
- 1897 1062 C9       		leave
- 1898 1063 C3       		ret
- 1899              		.cfi_endproc
- 1900              	.LFE621:
- 1901              		.size	KCipherVecRegMake, .-KCipherVecRegMake
- 1902              		.section	.rodata
- 1903 006e 0000     		.align 16
- 1904              		.type	__func__.7675, @object
- 1905              		.size	__func__.7675, 18
- 1906              	__func__.7675:
- 1907 0070 4B436970 		.string	"KCipherVecRegMake"
- 1907      68657256 
- 1907      65635265 
- 1907      674D616B 
- 1907      6500
- 1908 0082 00000000 		.align 16
- 1908      00000000 
- 1908      00000000 
- 1908      0000
- 1909              		.type	__PRETTY_FUNCTION__.7674, @object
- 1910              		.size	__PRETTY_FUNCTION__.7674, 18
- 1911              	__PRETTY_FUNCTION__.7674:
- 1912 0090 4B436970 		.string	"KCipherVecRegMake"
- 1912      68657256 
- 1912      65635265 
- 1912      674D616B 
- 1912      6500
- 1913 00a2 00000000 		.align 16
- 1913      00000000 
- 1913      00000000 
- 1913      0000
- 1914              		.type	__func__.7647, @object
- 1915              		.size	__func__.7647, 23
- 1916              	__func__.7647:
- 1917 00b0 4B436970 		.string	"KCipherVecRegAllocNull"
- 1917      68657256 
- 1917      65635265 
- 1917      67416C6C 
- 1917      6F634E75 
- 1918 00c7 00000000 		.align 16
- 1918      00000000 
- 1918      00
- 1919              		.type	__PRETTY_FUNCTION__.7646, @object
- 1920              		.size	__PRETTY_FUNCTION__.7646, 23
- 1921              	__PRETTY_FUNCTION__.7646:
- 1922 00d0 4B436970 		.string	"KCipherVecRegAllocNull"
- 1922      68657256 
- 1922      65635265 
- 1922      67416C6C 
- 1922      6F634E75 
- 1923 00e7 00000000 		.align 16
- 1923      00000000 
- 1923      00
- 1924              		.type	__func__.7620, @object
-
GAS LISTING /tmp/ccXzRABk.s 			page 56
-
-
- 1925              		.size	__func__.7620, 22
- 1926              	__func__.7620:
- 1927 00f0 4B436970 		.string	"KCipherVecRegAllocAes"
- 1927      68657256 
- 1927      65635265 
- 1927      67416C6C 
- 1927      6F634165 
- 1928 0106 00000000 		.align 16
- 1928      00000000 
- 1928      0000
- 1929              		.type	__PRETTY_FUNCTION__.7619, @object
- 1930              		.size	__PRETTY_FUNCTION__.7619, 22
- 1931              	__PRETTY_FUNCTION__.7619:
- 1932 0110 4B436970 		.string	"KCipherVecRegAllocAes"
- 1932      68657256 
- 1932      65635265 
- 1932      67416C6C 
- 1932      6F634165 
- 1933 0126 00000000 		.align 16
- 1933      00000000 
- 1933      0000
- 1934              		.type	__func__.7610, @object
- 1935              		.size	__func__.7610, 24
- 1936              	__func__.7610:
- 1937 0130 4B436970 		.string	"KCipherVecRegDecryptCtr"
- 1937      68657256 
- 1937      65635265 
- 1937      67446563 
- 1937      72797074 
- 1938 0148 00000000 		.align 16
- 1938      00000000 
- 1939              		.type	__PRETTY_FUNCTION__.7609, @object
- 1940              		.size	__PRETTY_FUNCTION__.7609, 24
- 1941              	__PRETTY_FUNCTION__.7609:
- 1942 0150 4B436970 		.string	"KCipherVecRegDecryptCtr"
- 1942      68657256 
- 1942      65635265 
- 1942      67446563 
- 1942      72797074 
- 1943 0168 00000000 		.align 16
- 1943      00000000 
- 1944              		.type	__func__.7600, @object
- 1945              		.size	__func__.7600, 24
- 1946              	__func__.7600:
- 1947 0170 4B436970 		.string	"KCipherVecRegEncryptCtr"
- 1947      68657256 
- 1947      65635265 
- 1947      67456E63 
- 1947      72797074 
- 1948 0188 00000000 		.align 16
- 1948      00000000 
- 1949              		.type	__PRETTY_FUNCTION__.7599, @object
- 1950              		.size	__PRETTY_FUNCTION__.7599, 24
- 1951              	__PRETTY_FUNCTION__.7599:
- 1952 0190 4B436970 		.string	"KCipherVecRegEncryptCtr"
- 1952      68657256 
- 1952      65635265 
-
GAS LISTING /tmp/ccXzRABk.s 			page 57
-
-
- 1952      67456E63 
- 1952      72797074 
- 1953 01a8 00000000 		.align 16
- 1953      00000000 
- 1954              		.type	__func__.7366, @object
- 1955              		.size	__func__.7366, 21
- 1956              	__func__.7366:
- 1957 01b0 4B436970 		.string	"KCipherVecRegDecrypt"
- 1957      68657256 
- 1957      65635265 
- 1957      67446563 
- 1957      72797074 
- 1958 01c5 00000000 		.align 16
- 1958      00000000 
- 1958      000000
- 1959              		.type	__PRETTY_FUNCTION__.7365, @object
- 1960              		.size	__PRETTY_FUNCTION__.7365, 21
- 1961              	__PRETTY_FUNCTION__.7365:
- 1962 01d0 4B436970 		.string	"KCipherVecRegDecrypt"
- 1962      68657256 
- 1962      65635265 
- 1962      67446563 
- 1962      72797074 
- 1963 01e5 00000000 		.align 16
- 1963      00000000 
- 1963      000000
- 1964              		.type	__func__.7350, @object
- 1965              		.size	__func__.7350, 21
- 1966              	__func__.7350:
- 1967 01f0 4B436970 		.string	"KCipherVecRegEncrypt"
- 1967      68657256 
- 1967      65635265 
- 1967      67456E63 
- 1967      72797074 
- 1968 0205 00000000 		.align 16
- 1968      00000000 
- 1968      000000
- 1969              		.type	__PRETTY_FUNCTION__.7349, @object
- 1970              		.size	__PRETTY_FUNCTION__.7349, 21
- 1971              	__PRETTY_FUNCTION__.7349:
- 1972 0210 4B436970 		.string	"KCipherVecRegEncrypt"
- 1972      68657256 
- 1972      65635265 
- 1972      67456E63 
- 1972      72797074 
- 1973 0225 00000000 		.align 32
- 1973      00000000 
- 1973      00000000 
- 1973      00000000 
- 1973      00000000 
- 1974              		.type	__PRETTY_FUNCTION__.7300, @object
- 1975              		.size	__PRETTY_FUNCTION__.7300, 35
- 1976              	__PRETTY_FUNCTION__.7300:
- 1977 0240 4B436970 		.string	"KCipherVecRegSetDecryptCounterFunc"
- 1977      68657256 
- 1977      65635265 
- 1977      67536574 
-
GAS LISTING /tmp/ccXzRABk.s 			page 58
-
-
- 1977      44656372 
- 1978 0263 00000000 		.align 32
- 1978      00000000 
- 1978      00000000 
- 1978      00000000 
- 1978      00000000 
- 1979              		.type	__PRETTY_FUNCTION__.7290, @object
- 1980              		.size	__PRETTY_FUNCTION__.7290, 35
- 1981              	__PRETTY_FUNCTION__.7290:
- 1982 0280 4B436970 		.string	"KCipherVecRegSetEncryptCounterFunc"
- 1982      68657256 
- 1982      65635265 
- 1982      67536574 
- 1982      456E6372 
- 1983 02a3 00000000 		.align 16
- 1983      00000000 
- 1983      00000000 
- 1983      00
- 1984              		.type	__PRETTY_FUNCTION__.7277, @object
- 1985              		.size	__PRETTY_FUNCTION__.7277, 28
- 1986              	__PRETTY_FUNCTION__.7277:
- 1987 02b0 4B436970 		.string	"KCipherVecRegSetDecryptIvec"
- 1987      68657256 
- 1987      65635265 
- 1987      67536574 
- 1987      44656372 
- 1988 02cc 00000000 		.align 16
- 1989              		.type	__PRETTY_FUNCTION__.7264, @object
- 1990              		.size	__PRETTY_FUNCTION__.7264, 28
- 1991              	__PRETTY_FUNCTION__.7264:
- 1992 02d0 4B436970 		.string	"KCipherVecRegSetEncryptIvec"
- 1992      68657256 
- 1992      65635265 
- 1992      67536574 
- 1992      456E6372 
- 1993 02ec 00000000 		.align 16
- 1994              		.type	__PRETTY_FUNCTION__.7242, @object
- 1995              		.size	__PRETTY_FUNCTION__.7242, 27
- 1996              	__PRETTY_FUNCTION__.7242:
- 1997 02f0 4B436970 		.string	"KCipherVecRegSetDecryptKey"
- 1997      68657256 
- 1997      65635265 
- 1997      67536574 
- 1997      44656372 
- 1998 030b 00000000 		.align 16
- 1998      00
- 1999              		.type	__func__.7244, @object
- 2000              		.size	__func__.7244, 27
- 2001              	__func__.7244:
- 2002 0310 4B436970 		.string	"KCipherVecRegSetDecryptKey"
- 2002      68657256 
- 2002      65635265 
- 2002      67536574 
- 2002      44656372 
- 2003 032b 00000000 		.align 16
- 2003      00
- 2004              		.type	__PRETTY_FUNCTION__.7218, @object
-
GAS LISTING /tmp/ccXzRABk.s 			page 59
-
-
- 2005              		.size	__PRETTY_FUNCTION__.7218, 27
- 2006              	__PRETTY_FUNCTION__.7218:
- 2007 0330 4B436970 		.string	"KCipherVecRegSetEncryptKey"
- 2007      68657256 
- 2007      65635265 
- 2007      67536574 
- 2007      456E6372 
- 2008 034b 00000000 		.align 16
- 2008      00
- 2009              		.type	__func__.7220, @object
- 2010              		.size	__func__.7220, 27
- 2011              	__func__.7220:
- 2012 0350 4B436970 		.string	"KCipherVecRegSetEncryptKey"
- 2012      68657256 
- 2012      65635265 
- 2012      67536574 
- 2012      456E6372 
- 2013              		.text
- 2014              	.Letext0:
- 2015              		.section	.debug_loc,"", at progbits
- 2016              	.Ldebug_loc0:
- 2017              	.LLST0:
- 2018 0000 00000000 		.quad	.LFB590-.Ltext0
- 2018      00000000 
- 2019 0008 01000000 		.quad	.LCFI0-.Ltext0
- 2019      00000000 
- 2020 0010 0200     		.value	0x2
- 2021 0012 77       		.byte	0x77
- 2022 0013 08       		.sleb128 8
- 2023 0014 01000000 		.quad	.LCFI0-.Ltext0
- 2023      00000000 
- 2024 001c 04000000 		.quad	.LCFI1-.Ltext0
- 2024      00000000 
- 2025 0024 0200     		.value	0x2
- 2026 0026 77       		.byte	0x77
- 2027 0027 10       		.sleb128 16
- 2028 0028 04000000 		.quad	.LCFI1-.Ltext0
- 2028      00000000 
- 2029 0030 1F000000 		.quad	.LFE590-.Ltext0
- 2029      00000000 
- 2030 0038 0200     		.value	0x2
- 2031 003a 76       		.byte	0x76
- 2032 003b 10       		.sleb128 16
- 2033 003c 00000000 		.quad	0x0
- 2033      00000000 
- 2034 0044 00000000 		.quad	0x0
- 2034      00000000 
- 2035              	.LLST1:
- 2036 004c 1F000000 		.quad	.LFB591-.Ltext0
- 2036      00000000 
- 2037 0054 20000000 		.quad	.LCFI2-.Ltext0
- 2037      00000000 
- 2038 005c 0200     		.value	0x2
- 2039 005e 77       		.byte	0x77
- 2040 005f 08       		.sleb128 8
- 2041 0060 20000000 		.quad	.LCFI2-.Ltext0
- 2041      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 60
-
-
- 2042 0068 23000000 		.quad	.LCFI3-.Ltext0
- 2042      00000000 
- 2043 0070 0200     		.value	0x2
- 2044 0072 77       		.byte	0x77
- 2045 0073 10       		.sleb128 16
- 2046 0074 23000000 		.quad	.LCFI3-.Ltext0
- 2046      00000000 
- 2047 007c 48000000 		.quad	.LFE591-.Ltext0
- 2047      00000000 
- 2048 0084 0200     		.value	0x2
- 2049 0086 76       		.byte	0x76
- 2050 0087 10       		.sleb128 16
- 2051 0088 00000000 		.quad	0x0
- 2051      00000000 
- 2052 0090 00000000 		.quad	0x0
- 2052      00000000 
- 2053              	.LLST2:
- 2054 0098 48000000 		.quad	.LFB592-.Ltext0
- 2054      00000000 
- 2055 00a0 49000000 		.quad	.LCFI4-.Ltext0
- 2055      00000000 
- 2056 00a8 0200     		.value	0x2
- 2057 00aa 77       		.byte	0x77
- 2058 00ab 08       		.sleb128 8
- 2059 00ac 49000000 		.quad	.LCFI4-.Ltext0
- 2059      00000000 
- 2060 00b4 4C000000 		.quad	.LCFI5-.Ltext0
- 2060      00000000 
- 2061 00bc 0200     		.value	0x2
- 2062 00be 77       		.byte	0x77
- 2063 00bf 10       		.sleb128 16
- 2064 00c0 4C000000 		.quad	.LCFI5-.Ltext0
- 2064      00000000 
- 2065 00c8 82000000 		.quad	.LFE592-.Ltext0
- 2065      00000000 
- 2066 00d0 0200     		.value	0x2
- 2067 00d2 76       		.byte	0x76
- 2068 00d3 10       		.sleb128 16
- 2069 00d4 00000000 		.quad	0x0
- 2069      00000000 
- 2070 00dc 00000000 		.quad	0x0
- 2070      00000000 
- 2071              	.LLST3:
- 2072 00e4 82000000 		.quad	.LFB593-.Ltext0
- 2072      00000000 
- 2073 00ec 83000000 		.quad	.LCFI6-.Ltext0
- 2073      00000000 
- 2074 00f4 0200     		.value	0x2
- 2075 00f6 77       		.byte	0x77
- 2076 00f7 08       		.sleb128 8
- 2077 00f8 83000000 		.quad	.LCFI6-.Ltext0
- 2077      00000000 
- 2078 0100 86000000 		.quad	.LCFI7-.Ltext0
- 2078      00000000 
- 2079 0108 0200     		.value	0x2
- 2080 010a 77       		.byte	0x77
- 2081 010b 10       		.sleb128 16
-
GAS LISTING /tmp/ccXzRABk.s 			page 61
-
-
- 2082 010c 86000000 		.quad	.LCFI7-.Ltext0
- 2082      00000000 
- 2083 0114 6C010000 		.quad	.LFE593-.Ltext0
- 2083      00000000 
- 2084 011c 0200     		.value	0x2
- 2085 011e 76       		.byte	0x76
- 2086 011f 10       		.sleb128 16
- 2087 0120 00000000 		.quad	0x0
- 2087      00000000 
- 2088 0128 00000000 		.quad	0x0
- 2088      00000000 
- 2089              	.LLST4:
- 2090 0130 6C010000 		.quad	.LFB594-.Ltext0
- 2090      00000000 
- 2091 0138 6D010000 		.quad	.LCFI8-.Ltext0
- 2091      00000000 
- 2092 0140 0200     		.value	0x2
- 2093 0142 77       		.byte	0x77
- 2094 0143 08       		.sleb128 8
- 2095 0144 6D010000 		.quad	.LCFI8-.Ltext0
- 2095      00000000 
- 2096 014c 70010000 		.quad	.LCFI9-.Ltext0
- 2096      00000000 
- 2097 0154 0200     		.value	0x2
- 2098 0156 77       		.byte	0x77
- 2099 0157 10       		.sleb128 16
- 2100 0158 70010000 		.quad	.LCFI9-.Ltext0
- 2100      00000000 
- 2101 0160 56020000 		.quad	.LFE594-.Ltext0
- 2101      00000000 
- 2102 0168 0200     		.value	0x2
- 2103 016a 76       		.byte	0x76
- 2104 016b 10       		.sleb128 16
- 2105 016c 00000000 		.quad	0x0
- 2105      00000000 
- 2106 0174 00000000 		.quad	0x0
- 2106      00000000 
- 2107              	.LLST5:
- 2108 017c 56020000 		.quad	.LFB595-.Ltext0
- 2108      00000000 
- 2109 0184 57020000 		.quad	.LCFI10-.Ltext0
- 2109      00000000 
- 2110 018c 0200     		.value	0x2
- 2111 018e 77       		.byte	0x77
- 2112 018f 08       		.sleb128 8
- 2113 0190 57020000 		.quad	.LCFI10-.Ltext0
- 2113      00000000 
- 2114 0198 5A020000 		.quad	.LCFI11-.Ltext0
- 2114      00000000 
- 2115 01a0 0200     		.value	0x2
- 2116 01a2 77       		.byte	0x77
- 2117 01a3 10       		.sleb128 16
- 2118 01a4 5A020000 		.quad	.LCFI11-.Ltext0
- 2118      00000000 
- 2119 01ac D9020000 		.quad	.LFE595-.Ltext0
- 2119      00000000 
- 2120 01b4 0200     		.value	0x2
-
GAS LISTING /tmp/ccXzRABk.s 			page 62
-
-
- 2121 01b6 76       		.byte	0x76
- 2122 01b7 10       		.sleb128 16
- 2123 01b8 00000000 		.quad	0x0
- 2123      00000000 
- 2124 01c0 00000000 		.quad	0x0
- 2124      00000000 
- 2125              	.LLST6:
- 2126 01c8 D9020000 		.quad	.LFB596-.Ltext0
- 2126      00000000 
- 2127 01d0 DA020000 		.quad	.LCFI12-.Ltext0
- 2127      00000000 
- 2128 01d8 0200     		.value	0x2
- 2129 01da 77       		.byte	0x77
- 2130 01db 08       		.sleb128 8
- 2131 01dc DA020000 		.quad	.LCFI12-.Ltext0
- 2131      00000000 
- 2132 01e4 DD020000 		.quad	.LCFI13-.Ltext0
- 2132      00000000 
- 2133 01ec 0200     		.value	0x2
- 2134 01ee 77       		.byte	0x77
- 2135 01ef 10       		.sleb128 16
- 2136 01f0 DD020000 		.quad	.LCFI13-.Ltext0
- 2136      00000000 
- 2137 01f8 5C030000 		.quad	.LFE596-.Ltext0
- 2137      00000000 
- 2138 0200 0200     		.value	0x2
- 2139 0202 76       		.byte	0x76
- 2140 0203 10       		.sleb128 16
- 2141 0204 00000000 		.quad	0x0
- 2141      00000000 
- 2142 020c 00000000 		.quad	0x0
- 2142      00000000 
- 2143              	.LLST7:
- 2144 0214 5C030000 		.quad	.LFB597-.Ltext0
- 2144      00000000 
- 2145 021c 5D030000 		.quad	.LCFI14-.Ltext0
- 2145      00000000 
- 2146 0224 0200     		.value	0x2
- 2147 0226 77       		.byte	0x77
- 2148 0227 08       		.sleb128 8
- 2149 0228 5D030000 		.quad	.LCFI14-.Ltext0
- 2149      00000000 
- 2150 0230 60030000 		.quad	.LCFI15-.Ltext0
- 2150      00000000 
- 2151 0238 0200     		.value	0x2
- 2152 023a 77       		.byte	0x77
- 2153 023b 10       		.sleb128 16
- 2154 023c 60030000 		.quad	.LCFI15-.Ltext0
- 2154      00000000 
- 2155 0244 CB030000 		.quad	.LFE597-.Ltext0
- 2155      00000000 
- 2156 024c 0200     		.value	0x2
- 2157 024e 76       		.byte	0x76
- 2158 024f 10       		.sleb128 16
- 2159 0250 00000000 		.quad	0x0
- 2159      00000000 
- 2160 0258 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccXzRABk.s 			page 63
-
-
- 2160      00000000 
- 2161              	.LLST8:
- 2162 0260 CB030000 		.quad	.LFB598-.Ltext0
- 2162      00000000 
- 2163 0268 CC030000 		.quad	.LCFI16-.Ltext0
- 2163      00000000 
- 2164 0270 0200     		.value	0x2
- 2165 0272 77       		.byte	0x77
- 2166 0273 08       		.sleb128 8
- 2167 0274 CC030000 		.quad	.LCFI16-.Ltext0
- 2167      00000000 
- 2168 027c CF030000 		.quad	.LCFI17-.Ltext0
- 2168      00000000 
- 2169 0284 0200     		.value	0x2
- 2170 0286 77       		.byte	0x77
- 2171 0287 10       		.sleb128 16
- 2172 0288 CF030000 		.quad	.LCFI17-.Ltext0
- 2172      00000000 
- 2173 0290 3A040000 		.quad	.LFE598-.Ltext0
- 2173      00000000 
- 2174 0298 0200     		.value	0x2
- 2175 029a 76       		.byte	0x76
- 2176 029b 10       		.sleb128 16
- 2177 029c 00000000 		.quad	0x0
- 2177      00000000 
- 2178 02a4 00000000 		.quad	0x0
- 2178      00000000 
- 2179              	.LLST9:
- 2180 02ac 3A040000 		.quad	.LFB599-.Ltext0
- 2180      00000000 
- 2181 02b4 3B040000 		.quad	.LCFI18-.Ltext0
- 2181      00000000 
- 2182 02bc 0200     		.value	0x2
- 2183 02be 77       		.byte	0x77
- 2184 02bf 08       		.sleb128 8
- 2185 02c0 3B040000 		.quad	.LCFI18-.Ltext0
- 2185      00000000 
- 2186 02c8 3E040000 		.quad	.LCFI19-.Ltext0
- 2186      00000000 
- 2187 02d0 0200     		.value	0x2
- 2188 02d2 77       		.byte	0x77
- 2189 02d3 10       		.sleb128 16
- 2190 02d4 3E040000 		.quad	.LCFI19-.Ltext0
- 2190      00000000 
- 2191 02dc 61040000 		.quad	.LFE599-.Ltext0
- 2191      00000000 
- 2192 02e4 0200     		.value	0x2
- 2193 02e6 76       		.byte	0x76
- 2194 02e7 10       		.sleb128 16
- 2195 02e8 00000000 		.quad	0x0
- 2195      00000000 
- 2196 02f0 00000000 		.quad	0x0
- 2196      00000000 
- 2197              	.LLST10:
- 2198 02f8 61040000 		.quad	.LFB600-.Ltext0
- 2198      00000000 
- 2199 0300 62040000 		.quad	.LCFI20-.Ltext0
-
GAS LISTING /tmp/ccXzRABk.s 			page 64
-
-
- 2199      00000000 
- 2200 0308 0200     		.value	0x2
- 2201 030a 77       		.byte	0x77
- 2202 030b 08       		.sleb128 8
- 2203 030c 62040000 		.quad	.LCFI20-.Ltext0
- 2203      00000000 
- 2204 0314 65040000 		.quad	.LCFI21-.Ltext0
- 2204      00000000 
- 2205 031c 0200     		.value	0x2
- 2206 031e 77       		.byte	0x77
- 2207 031f 10       		.sleb128 16
- 2208 0320 65040000 		.quad	.LCFI21-.Ltext0
- 2208      00000000 
- 2209 0328 88040000 		.quad	.LFE600-.Ltext0
- 2209      00000000 
- 2210 0330 0200     		.value	0x2
- 2211 0332 76       		.byte	0x76
- 2212 0333 10       		.sleb128 16
- 2213 0334 00000000 		.quad	0x0
- 2213      00000000 
- 2214 033c 00000000 		.quad	0x0
- 2214      00000000 
- 2215              	.LLST11:
- 2216 0344 88040000 		.quad	.LFB601-.Ltext0
- 2216      00000000 
- 2217 034c 89040000 		.quad	.LCFI22-.Ltext0
- 2217      00000000 
- 2218 0354 0200     		.value	0x2
- 2219 0356 77       		.byte	0x77
- 2220 0357 08       		.sleb128 8
- 2221 0358 89040000 		.quad	.LCFI22-.Ltext0
- 2221      00000000 
- 2222 0360 8C040000 		.quad	.LCFI23-.Ltext0
- 2222      00000000 
- 2223 0368 0200     		.value	0x2
- 2224 036a 77       		.byte	0x77
- 2225 036b 10       		.sleb128 16
- 2226 036c 8C040000 		.quad	.LCFI23-.Ltext0
- 2226      00000000 
- 2227 0374 DB040000 		.quad	.LFE601-.Ltext0
- 2227      00000000 
- 2228 037c 0200     		.value	0x2
- 2229 037e 76       		.byte	0x76
- 2230 037f 10       		.sleb128 16
- 2231 0380 00000000 		.quad	0x0
- 2231      00000000 
- 2232 0388 00000000 		.quad	0x0
- 2232      00000000 
- 2233              	.LLST12:
- 2234 0390 DB040000 		.quad	.LFB602-.Ltext0
- 2234      00000000 
- 2235 0398 DC040000 		.quad	.LCFI24-.Ltext0
- 2235      00000000 
- 2236 03a0 0200     		.value	0x2
- 2237 03a2 77       		.byte	0x77
- 2238 03a3 08       		.sleb128 8
- 2239 03a4 DC040000 		.quad	.LCFI24-.Ltext0
-
GAS LISTING /tmp/ccXzRABk.s 			page 65
-
-
- 2239      00000000 
- 2240 03ac DF040000 		.quad	.LCFI25-.Ltext0
- 2240      00000000 
- 2241 03b4 0200     		.value	0x2
- 2242 03b6 77       		.byte	0x77
- 2243 03b7 10       		.sleb128 16
- 2244 03b8 DF040000 		.quad	.LCFI25-.Ltext0
- 2244      00000000 
- 2245 03c0 2E050000 		.quad	.LFE602-.Ltext0
- 2245      00000000 
- 2246 03c8 0200     		.value	0x2
- 2247 03ca 76       		.byte	0x76
- 2248 03cb 10       		.sleb128 16
- 2249 03cc 00000000 		.quad	0x0
- 2249      00000000 
- 2250 03d4 00000000 		.quad	0x0
- 2250      00000000 
- 2251              	.LLST13:
- 2252 03dc 2E050000 		.quad	.LFB603-.Ltext0
- 2252      00000000 
- 2253 03e4 2F050000 		.quad	.LCFI26-.Ltext0
- 2253      00000000 
- 2254 03ec 0200     		.value	0x2
- 2255 03ee 77       		.byte	0x77
- 2256 03ef 08       		.sleb128 8
- 2257 03f0 2F050000 		.quad	.LCFI26-.Ltext0
- 2257      00000000 
- 2258 03f8 32050000 		.quad	.LCFI27-.Ltext0
- 2258      00000000 
- 2259 0400 0200     		.value	0x2
- 2260 0402 77       		.byte	0x77
- 2261 0403 10       		.sleb128 16
- 2262 0404 32050000 		.quad	.LCFI27-.Ltext0
- 2262      00000000 
- 2263 040c 92050000 		.quad	.LFE603-.Ltext0
- 2263      00000000 
- 2264 0414 0200     		.value	0x2
- 2265 0416 76       		.byte	0x76
- 2266 0417 10       		.sleb128 16
- 2267 0418 00000000 		.quad	0x0
- 2267      00000000 
- 2268 0420 00000000 		.quad	0x0
- 2268      00000000 
- 2269              	.LLST14:
- 2270 0428 92050000 		.quad	.LFB604-.Ltext0
- 2270      00000000 
- 2271 0430 93050000 		.quad	.LCFI28-.Ltext0
- 2271      00000000 
- 2272 0438 0200     		.value	0x2
- 2273 043a 77       		.byte	0x77
- 2274 043b 08       		.sleb128 8
- 2275 043c 93050000 		.quad	.LCFI28-.Ltext0
- 2275      00000000 
- 2276 0444 96050000 		.quad	.LCFI29-.Ltext0
- 2276      00000000 
- 2277 044c 0200     		.value	0x2
- 2278 044e 77       		.byte	0x77
-
GAS LISTING /tmp/ccXzRABk.s 			page 66
-
-
- 2279 044f 10       		.sleb128 16
- 2280 0450 96050000 		.quad	.LCFI29-.Ltext0
- 2280      00000000 
- 2281 0458 FD050000 		.quad	.LFE604-.Ltext0
- 2281      00000000 
- 2282 0460 0200     		.value	0x2
- 2283 0462 76       		.byte	0x76
- 2284 0463 10       		.sleb128 16
- 2285 0464 00000000 		.quad	0x0
- 2285      00000000 
- 2286 046c 00000000 		.quad	0x0
- 2286      00000000 
- 2287              	.LLST15:
- 2288 0474 FD050000 		.quad	.LFB605-.Ltext0
- 2288      00000000 
- 2289 047c FE050000 		.quad	.LCFI30-.Ltext0
- 2289      00000000 
- 2290 0484 0200     		.value	0x2
- 2291 0486 77       		.byte	0x77
- 2292 0487 08       		.sleb128 8
- 2293 0488 FE050000 		.quad	.LCFI30-.Ltext0
- 2293      00000000 
- 2294 0490 01060000 		.quad	.LCFI31-.Ltext0
- 2294      00000000 
- 2295 0498 0200     		.value	0x2
- 2296 049a 77       		.byte	0x77
- 2297 049b 10       		.sleb128 16
- 2298 049c 01060000 		.quad	.LCFI31-.Ltext0
- 2298      00000000 
- 2299 04a4 6D060000 		.quad	.LFE605-.Ltext0
- 2299      00000000 
- 2300 04ac 0200     		.value	0x2
- 2301 04ae 76       		.byte	0x76
- 2302 04af 10       		.sleb128 16
- 2303 04b0 00000000 		.quad	0x0
- 2303      00000000 
- 2304 04b8 00000000 		.quad	0x0
- 2304      00000000 
- 2305              	.LLST16:
- 2306 04c0 6D060000 		.quad	.LFB606-.Ltext0
- 2306      00000000 
- 2307 04c8 6E060000 		.quad	.LCFI32-.Ltext0
- 2307      00000000 
- 2308 04d0 0200     		.value	0x2
- 2309 04d2 77       		.byte	0x77
- 2310 04d3 08       		.sleb128 8
- 2311 04d4 6E060000 		.quad	.LCFI32-.Ltext0
- 2311      00000000 
- 2312 04dc 71060000 		.quad	.LCFI33-.Ltext0
- 2312      00000000 
- 2313 04e4 0200     		.value	0x2
- 2314 04e6 77       		.byte	0x77
- 2315 04e7 10       		.sleb128 16
- 2316 04e8 71060000 		.quad	.LCFI33-.Ltext0
- 2316      00000000 
- 2317 04f0 DD060000 		.quad	.LFE606-.Ltext0
- 2317      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 67
-
-
- 2318 04f8 0200     		.value	0x2
- 2319 04fa 76       		.byte	0x76
- 2320 04fb 10       		.sleb128 16
- 2321 04fc 00000000 		.quad	0x0
- 2321      00000000 
- 2322 0504 00000000 		.quad	0x0
- 2322      00000000 
- 2323              	.LLST17:
- 2324 050c DD060000 		.quad	.LFB607-.Ltext0
- 2324      00000000 
- 2325 0514 DE060000 		.quad	.LCFI34-.Ltext0
- 2325      00000000 
- 2326 051c 0200     		.value	0x2
- 2327 051e 77       		.byte	0x77
- 2328 051f 08       		.sleb128 8
- 2329 0520 DE060000 		.quad	.LCFI34-.Ltext0
- 2329      00000000 
- 2330 0528 E1060000 		.quad	.LCFI35-.Ltext0
- 2330      00000000 
- 2331 0530 0200     		.value	0x2
- 2332 0532 77       		.byte	0x77
- 2333 0533 10       		.sleb128 16
- 2334 0534 E1060000 		.quad	.LCFI35-.Ltext0
- 2334      00000000 
- 2335 053c AB070000 		.quad	.LFE607-.Ltext0
- 2335      00000000 
- 2336 0544 0200     		.value	0x2
- 2337 0546 76       		.byte	0x76
- 2338 0547 10       		.sleb128 16
- 2339 0548 00000000 		.quad	0x0
- 2339      00000000 
- 2340 0550 00000000 		.quad	0x0
- 2340      00000000 
- 2341              	.LLST18:
- 2342 0558 AB070000 		.quad	.LFB608-.Ltext0
- 2342      00000000 
- 2343 0560 AC070000 		.quad	.LCFI36-.Ltext0
- 2343      00000000 
- 2344 0568 0200     		.value	0x2
- 2345 056a 77       		.byte	0x77
- 2346 056b 08       		.sleb128 8
- 2347 056c AC070000 		.quad	.LCFI36-.Ltext0
- 2347      00000000 
- 2348 0574 AF070000 		.quad	.LCFI37-.Ltext0
- 2348      00000000 
- 2349 057c 0200     		.value	0x2
- 2350 057e 77       		.byte	0x77
- 2351 057f 10       		.sleb128 16
- 2352 0580 AF070000 		.quad	.LCFI37-.Ltext0
- 2352      00000000 
- 2353 0588 7F080000 		.quad	.LFE608-.Ltext0
- 2353      00000000 
- 2354 0590 0200     		.value	0x2
- 2355 0592 76       		.byte	0x76
- 2356 0593 10       		.sleb128 16
- 2357 0594 00000000 		.quad	0x0
- 2357      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 68
-
-
- 2358 059c 00000000 		.quad	0x0
- 2358      00000000 
- 2359              	.LLST19:
- 2360 05a4 7F080000 		.quad	.LFB609-.Ltext0
- 2360      00000000 
- 2361 05ac 80080000 		.quad	.LCFI38-.Ltext0
- 2361      00000000 
- 2362 05b4 0200     		.value	0x2
- 2363 05b6 77       		.byte	0x77
- 2364 05b7 08       		.sleb128 8
- 2365 05b8 80080000 		.quad	.LCFI38-.Ltext0
- 2365      00000000 
- 2366 05c0 83080000 		.quad	.LCFI39-.Ltext0
- 2366      00000000 
- 2367 05c8 0200     		.value	0x2
- 2368 05ca 77       		.byte	0x77
- 2369 05cb 10       		.sleb128 16
- 2370 05cc 83080000 		.quad	.LCFI39-.Ltext0
- 2370      00000000 
- 2371 05d4 5C090000 		.quad	.LFE609-.Ltext0
- 2371      00000000 
- 2372 05dc 0200     		.value	0x2
- 2373 05de 76       		.byte	0x76
- 2374 05df 10       		.sleb128 16
- 2375 05e0 00000000 		.quad	0x0
- 2375      00000000 
- 2376 05e8 00000000 		.quad	0x0
- 2376      00000000 
- 2377              	.LLST20:
- 2378 05f0 5C090000 		.quad	.LFB610-.Ltext0
- 2378      00000000 
- 2379 05f8 5D090000 		.quad	.LCFI40-.Ltext0
- 2379      00000000 
- 2380 0600 0200     		.value	0x2
- 2381 0602 77       		.byte	0x77
- 2382 0603 08       		.sleb128 8
- 2383 0604 5D090000 		.quad	.LCFI40-.Ltext0
- 2383      00000000 
- 2384 060c 60090000 		.quad	.LCFI41-.Ltext0
- 2384      00000000 
- 2385 0614 0200     		.value	0x2
- 2386 0616 77       		.byte	0x77
- 2387 0617 10       		.sleb128 16
- 2388 0618 60090000 		.quad	.LCFI41-.Ltext0
- 2388      00000000 
- 2389 0620 220A0000 		.quad	.LFE610-.Ltext0
- 2389      00000000 
- 2390 0628 0200     		.value	0x2
- 2391 062a 76       		.byte	0x76
- 2392 062b 10       		.sleb128 16
- 2393 062c 00000000 		.quad	0x0
- 2393      00000000 
- 2394 0634 00000000 		.quad	0x0
- 2394      00000000 
- 2395              	.LLST21:
- 2396 063c 220A0000 		.quad	.LFB611-.Ltext0
- 2396      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 69
-
-
- 2397 0644 230A0000 		.quad	.LCFI42-.Ltext0
- 2397      00000000 
- 2398 064c 0200     		.value	0x2
- 2399 064e 77       		.byte	0x77
- 2400 064f 08       		.sleb128 8
- 2401 0650 230A0000 		.quad	.LCFI42-.Ltext0
- 2401      00000000 
- 2402 0658 260A0000 		.quad	.LCFI43-.Ltext0
- 2402      00000000 
- 2403 0660 0200     		.value	0x2
- 2404 0662 77       		.byte	0x77
- 2405 0663 10       		.sleb128 16
- 2406 0664 260A0000 		.quad	.LCFI43-.Ltext0
- 2406      00000000 
- 2407 066c E80A0000 		.quad	.LFE611-.Ltext0
- 2407      00000000 
- 2408 0674 0200     		.value	0x2
- 2409 0676 76       		.byte	0x76
- 2410 0677 10       		.sleb128 16
- 2411 0678 00000000 		.quad	0x0
- 2411      00000000 
- 2412 0680 00000000 		.quad	0x0
- 2412      00000000 
- 2413              	.LLST22:
- 2414 0688 E80A0000 		.quad	.LFB612-.Ltext0
- 2414      00000000 
- 2415 0690 E90A0000 		.quad	.LCFI44-.Ltext0
- 2415      00000000 
- 2416 0698 0200     		.value	0x2
- 2417 069a 77       		.byte	0x77
- 2418 069b 08       		.sleb128 8
- 2419 069c E90A0000 		.quad	.LCFI44-.Ltext0
- 2419      00000000 
- 2420 06a4 EC0A0000 		.quad	.LCFI45-.Ltext0
- 2420      00000000 
- 2421 06ac 0200     		.value	0x2
- 2422 06ae 77       		.byte	0x77
- 2423 06af 10       		.sleb128 16
- 2424 06b0 EC0A0000 		.quad	.LCFI45-.Ltext0
- 2424      00000000 
- 2425 06b8 AE0B0000 		.quad	.LFE612-.Ltext0
- 2425      00000000 
- 2426 06c0 0200     		.value	0x2
- 2427 06c2 76       		.byte	0x76
- 2428 06c3 10       		.sleb128 16
- 2429 06c4 00000000 		.quad	0x0
- 2429      00000000 
- 2430 06cc 00000000 		.quad	0x0
- 2430      00000000 
- 2431              	.LLST23:
- 2432 06d4 AE0B0000 		.quad	.LFB613-.Ltext0
- 2432      00000000 
- 2433 06dc AF0B0000 		.quad	.LCFI46-.Ltext0
- 2433      00000000 
- 2434 06e4 0200     		.value	0x2
- 2435 06e6 77       		.byte	0x77
- 2436 06e7 08       		.sleb128 8
-
GAS LISTING /tmp/ccXzRABk.s 			page 70
-
-
- 2437 06e8 AF0B0000 		.quad	.LCFI46-.Ltext0
- 2437      00000000 
- 2438 06f0 B20B0000 		.quad	.LCFI47-.Ltext0
- 2438      00000000 
- 2439 06f8 0200     		.value	0x2
- 2440 06fa 77       		.byte	0x77
- 2441 06fb 10       		.sleb128 16
- 2442 06fc B20B0000 		.quad	.LCFI47-.Ltext0
- 2442      00000000 
- 2443 0704 740C0000 		.quad	.LFE613-.Ltext0
- 2443      00000000 
- 2444 070c 0200     		.value	0x2
- 2445 070e 76       		.byte	0x76
- 2446 070f 10       		.sleb128 16
- 2447 0710 00000000 		.quad	0x0
- 2447      00000000 
- 2448 0718 00000000 		.quad	0x0
- 2448      00000000 
- 2449              	.LLST24:
- 2450 0720 740C0000 		.quad	.LFB614-.Ltext0
- 2450      00000000 
- 2451 0728 750C0000 		.quad	.LCFI48-.Ltext0
- 2451      00000000 
- 2452 0730 0200     		.value	0x2
- 2453 0732 77       		.byte	0x77
- 2454 0733 08       		.sleb128 8
- 2455 0734 750C0000 		.quad	.LCFI48-.Ltext0
- 2455      00000000 
- 2456 073c 780C0000 		.quad	.LCFI49-.Ltext0
- 2456      00000000 
- 2457 0744 0200     		.value	0x2
- 2458 0746 77       		.byte	0x77
- 2459 0747 10       		.sleb128 16
- 2460 0748 780C0000 		.quad	.LCFI49-.Ltext0
- 2460      00000000 
- 2461 0750 AD0C0000 		.quad	.LFE614-.Ltext0
- 2461      00000000 
- 2462 0758 0200     		.value	0x2
- 2463 075a 76       		.byte	0x76
- 2464 075b 10       		.sleb128 16
- 2465 075c 00000000 		.quad	0x0
- 2465      00000000 
- 2466 0764 00000000 		.quad	0x0
- 2466      00000000 
- 2467              	.LLST25:
- 2468 076c AD0C0000 		.quad	.LFB615-.Ltext0
- 2468      00000000 
- 2469 0774 AE0C0000 		.quad	.LCFI50-.Ltext0
- 2469      00000000 
- 2470 077c 0200     		.value	0x2
- 2471 077e 77       		.byte	0x77
- 2472 077f 08       		.sleb128 8
- 2473 0780 AE0C0000 		.quad	.LCFI50-.Ltext0
- 2473      00000000 
- 2474 0788 B10C0000 		.quad	.LCFI51-.Ltext0
- 2474      00000000 
- 2475 0790 0200     		.value	0x2
-
GAS LISTING /tmp/ccXzRABk.s 			page 71
-
-
- 2476 0792 77       		.byte	0x77
- 2477 0793 10       		.sleb128 16
- 2478 0794 B10C0000 		.quad	.LCFI51-.Ltext0
- 2478      00000000 
- 2479 079c E30C0000 		.quad	.LFE615-.Ltext0
- 2479      00000000 
- 2480 07a4 0200     		.value	0x2
- 2481 07a6 76       		.byte	0x76
- 2482 07a7 10       		.sleb128 16
- 2483 07a8 00000000 		.quad	0x0
- 2483      00000000 
- 2484 07b0 00000000 		.quad	0x0
- 2484      00000000 
- 2485              	.LLST26:
- 2486 07b8 E30C0000 		.quad	.LFB616-.Ltext0
- 2486      00000000 
- 2487 07c0 E40C0000 		.quad	.LCFI52-.Ltext0
- 2487      00000000 
- 2488 07c8 0200     		.value	0x2
- 2489 07ca 77       		.byte	0x77
- 2490 07cb 08       		.sleb128 8
- 2491 07cc E40C0000 		.quad	.LCFI52-.Ltext0
- 2491      00000000 
- 2492 07d4 E70C0000 		.quad	.LCFI53-.Ltext0
- 2492      00000000 
- 2493 07dc 0200     		.value	0x2
- 2494 07de 77       		.byte	0x77
- 2495 07df 10       		.sleb128 16
- 2496 07e0 E70C0000 		.quad	.LCFI53-.Ltext0
- 2496      00000000 
- 2497 07e8 190D0000 		.quad	.LFE616-.Ltext0
- 2497      00000000 
- 2498 07f0 0200     		.value	0x2
- 2499 07f2 76       		.byte	0x76
- 2500 07f3 10       		.sleb128 16
- 2501 07f4 00000000 		.quad	0x0
- 2501      00000000 
- 2502 07fc 00000000 		.quad	0x0
- 2502      00000000 
- 2503              	.LLST27:
- 2504 0804 190D0000 		.quad	.LFB617-.Ltext0
- 2504      00000000 
- 2505 080c 1A0D0000 		.quad	.LCFI54-.Ltext0
- 2505      00000000 
- 2506 0814 0200     		.value	0x2
- 2507 0816 77       		.byte	0x77
- 2508 0817 08       		.sleb128 8
- 2509 0818 1A0D0000 		.quad	.LCFI54-.Ltext0
- 2509      00000000 
- 2510 0820 1D0D0000 		.quad	.LCFI55-.Ltext0
- 2510      00000000 
- 2511 0828 0200     		.value	0x2
- 2512 082a 77       		.byte	0x77
- 2513 082b 10       		.sleb128 16
- 2514 082c 1D0D0000 		.quad	.LCFI55-.Ltext0
- 2514      00000000 
- 2515 0834 740D0000 		.quad	.LFE617-.Ltext0
-
GAS LISTING /tmp/ccXzRABk.s 			page 72
-
-
- 2515      00000000 
- 2516 083c 0200     		.value	0x2
- 2517 083e 76       		.byte	0x76
- 2518 083f 10       		.sleb128 16
- 2519 0840 00000000 		.quad	0x0
- 2519      00000000 
- 2520 0848 00000000 		.quad	0x0
- 2520      00000000 
- 2521              	.LLST28:
- 2522 0850 740D0000 		.quad	.LFB618-.Ltext0
- 2522      00000000 
- 2523 0858 750D0000 		.quad	.LCFI56-.Ltext0
- 2523      00000000 
- 2524 0860 0200     		.value	0x2
- 2525 0862 77       		.byte	0x77
- 2526 0863 08       		.sleb128 8
- 2527 0864 750D0000 		.quad	.LCFI56-.Ltext0
- 2527      00000000 
- 2528 086c 780D0000 		.quad	.LCFI57-.Ltext0
- 2528      00000000 
- 2529 0874 0200     		.value	0x2
- 2530 0876 77       		.byte	0x77
- 2531 0877 10       		.sleb128 16
- 2532 0878 780D0000 		.quad	.LCFI57-.Ltext0
- 2532      00000000 
- 2533 0880 120E0000 		.quad	.LFE618-.Ltext0
- 2533      00000000 
- 2534 0888 0200     		.value	0x2
- 2535 088a 76       		.byte	0x76
- 2536 088b 10       		.sleb128 16
- 2537 088c 00000000 		.quad	0x0
- 2537      00000000 
- 2538 0894 00000000 		.quad	0x0
- 2538      00000000 
- 2539              	.LLST29:
- 2540 089c 120E0000 		.quad	.LFB619-.Ltext0
- 2540      00000000 
- 2541 08a4 130E0000 		.quad	.LCFI58-.Ltext0
- 2541      00000000 
- 2542 08ac 0200     		.value	0x2
- 2543 08ae 77       		.byte	0x77
- 2544 08af 08       		.sleb128 8
- 2545 08b0 130E0000 		.quad	.LCFI58-.Ltext0
- 2545      00000000 
- 2546 08b8 160E0000 		.quad	.LCFI59-.Ltext0
- 2546      00000000 
- 2547 08c0 0200     		.value	0x2
- 2548 08c2 77       		.byte	0x77
- 2549 08c3 10       		.sleb128 16
- 2550 08c4 160E0000 		.quad	.LCFI59-.Ltext0
- 2550      00000000 
- 2551 08cc 6D0E0000 		.quad	.LFE619-.Ltext0
- 2551      00000000 
- 2552 08d4 0200     		.value	0x2
- 2553 08d6 76       		.byte	0x76
- 2554 08d7 10       		.sleb128 16
- 2555 08d8 00000000 		.quad	0x0
-
GAS LISTING /tmp/ccXzRABk.s 			page 73
-
-
- 2555      00000000 
- 2556 08e0 00000000 		.quad	0x0
- 2556      00000000 
- 2557              	.LLST30:
- 2558 08e8 6D0E0000 		.quad	.LFB620-.Ltext0
- 2558      00000000 
- 2559 08f0 6E0E0000 		.quad	.LCFI60-.Ltext0
- 2559      00000000 
- 2560 08f8 0200     		.value	0x2
- 2561 08fa 77       		.byte	0x77
- 2562 08fb 08       		.sleb128 8
- 2563 08fc 6E0E0000 		.quad	.LCFI60-.Ltext0
- 2563      00000000 
- 2564 0904 710E0000 		.quad	.LCFI61-.Ltext0
- 2564      00000000 
- 2565 090c 0200     		.value	0x2
- 2566 090e 77       		.byte	0x77
- 2567 090f 10       		.sleb128 16
- 2568 0910 710E0000 		.quad	.LCFI61-.Ltext0
- 2568      00000000 
- 2569 0918 020F0000 		.quad	.LFE620-.Ltext0
- 2569      00000000 
- 2570 0920 0200     		.value	0x2
- 2571 0922 76       		.byte	0x76
- 2572 0923 10       		.sleb128 16
- 2573 0924 00000000 		.quad	0x0
- 2573      00000000 
- 2574 092c 00000000 		.quad	0x0
- 2574      00000000 
- 2575              	.LLST31:
- 2576 0934 020F0000 		.quad	.LFB621-.Ltext0
- 2576      00000000 
- 2577 093c 030F0000 		.quad	.LCFI62-.Ltext0
- 2577      00000000 
- 2578 0944 0200     		.value	0x2
- 2579 0946 77       		.byte	0x77
- 2580 0947 08       		.sleb128 8
- 2581 0948 030F0000 		.quad	.LCFI62-.Ltext0
- 2581      00000000 
- 2582 0950 060F0000 		.quad	.LCFI63-.Ltext0
- 2582      00000000 
- 2583 0958 0200     		.value	0x2
- 2584 095a 77       		.byte	0x77
- 2585 095b 10       		.sleb128 16
- 2586 095c 060F0000 		.quad	.LCFI63-.Ltext0
- 2586      00000000 
- 2587 0964 64100000 		.quad	.LFE621-.Ltext0
- 2587      00000000 
- 2588 096c 0200     		.value	0x2
- 2589 096e 76       		.byte	0x76
- 2590 096f 10       		.sleb128 16
- 2591 0970 00000000 		.quad	0x0
- 2591      00000000 
- 2592 0978 00000000 		.quad	0x0
- 2592      00000000 
- 2593              		.file 2 "/usr/include/stdint.h"
- 2594              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
-
GAS LISTING /tmp/ccXzRABk.s 			page 74
-
-
- 2595              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/x86_64/atomic32.h"
- 2596              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/refcount.h"
- 2597              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/krypto/cipher.h"
- 2598              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-impl.h"
- 2599              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 2600              		.file 9 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 2601              		.file 10 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/aes-ncbi-priv.h"
- 2602              		.file 11 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi-priv.h"
- 2603              		.file 12 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/krypto/ciphermgr.h"
- 2604              		.file 13 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
- 2605              		.file 14 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 2606              		.file 15 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
- 2607              		.section	.debug_info
- 2608 0000 4D1F0000 		.long	0x1f4d
- 2609 0004 0200     		.value	0x2
- 2610 0006 00000000 		.long	.Ldebug_abbrev0
- 2611 000a 08       		.byte	0x8
- 2612 000b 01       		.uleb128 0x1
- 2613 000c 00000000 		.long	.LASF392
- 2614 0010 01       		.byte	0x1
- 2615 0011 00000000 		.long	.LASF393
- 2616 0015 00000000 		.long	.LASF394
- 2617 0019 00000000 		.quad	.Ltext0
- 2617      00000000 
- 2618 0021 00000000 		.quad	.Letext0
- 2618      00000000 
- 2619 0029 00000000 		.long	.Ldebug_line0
- 2620 002d 02       		.uleb128 0x2
- 2621 002e 01       		.byte	0x1
- 2622 002f 06       		.byte	0x6
- 2623 0030 00000000 		.long	.LASF0
- 2624 0034 02       		.uleb128 0x2
- 2625 0035 02       		.byte	0x2
- 2626 0036 05       		.byte	0x5
- 2627 0037 00000000 		.long	.LASF1
- 2628 003b 03       		.uleb128 0x3
- 2629 003c 04       		.byte	0x4
- 2630 003d 05       		.byte	0x5
- 2631 003e 696E7400 		.string	"int"
- 2632 0042 02       		.uleb128 0x2
- 2633 0043 08       		.byte	0x8
- 2634 0044 05       		.byte	0x5
- 2635 0045 00000000 		.long	.LASF2
- 2636 0049 04       		.uleb128 0x4
- 2637 004a 00000000 		.long	.LASF5
- 2638 004e 02       		.byte	0x2
- 2639 004f 31       		.byte	0x31
- 2640 0050 54000000 		.long	0x54
- 2641 0054 02       		.uleb128 0x2
- 2642 0055 01       		.byte	0x1
- 2643 0056 08       		.byte	0x8
- 2644 0057 00000000 		.long	.LASF3
- 2645 005b 02       		.uleb128 0x2
- 2646 005c 02       		.byte	0x2
- 2647 005d 07       		.byte	0x7
- 2648 005e 00000000 		.long	.LASF4
- 2649 0062 04       		.uleb128 0x4
-
GAS LISTING /tmp/ccXzRABk.s 			page 75
-
-
- 2650 0063 00000000 		.long	.LASF6
- 2651 0067 02       		.byte	0x2
- 2652 0068 34       		.byte	0x34
- 2653 0069 6D000000 		.long	0x6d
- 2654 006d 02       		.uleb128 0x2
- 2655 006e 04       		.byte	0x4
- 2656 006f 07       		.byte	0x7
- 2657 0070 00000000 		.long	.LASF7
- 2658 0074 02       		.uleb128 0x2
- 2659 0075 08       		.byte	0x8
- 2660 0076 07       		.byte	0x7
- 2661 0077 00000000 		.long	.LASF8
- 2662 007b 04       		.uleb128 0x4
- 2663 007c 00000000 		.long	.LASF9
- 2664 0080 03       		.byte	0x3
- 2665 0081 30       		.byte	0x30
- 2666 0082 62000000 		.long	0x62
- 2667 0086 04       		.uleb128 0x4
- 2668 0087 00000000 		.long	.LASF10
- 2669 008b 04       		.byte	0x4
- 2670 008c 27       		.byte	0x27
- 2671 008d 91000000 		.long	0x91
- 2672 0091 05       		.uleb128 0x5
- 2673 0092 00000000 		.long	.LASF10
- 2674 0096 04       		.byte	0x4
- 2675 0097 04       		.byte	0x4
- 2676 0098 27       		.byte	0x27
- 2677 0099 AC000000 		.long	0xac
- 2678 009d 06       		.uleb128 0x6
- 2679 009e 00000000 		.long	.LASF34
- 2680 00a2 04       		.byte	0x4
- 2681 00a3 2A       		.byte	0x2a
- 2682 00a4 AC000000 		.long	0xac
- 2683 00a8 02       		.byte	0x2
- 2684 00a9 23       		.byte	0x23
- 2685 00aa 00       		.uleb128 0x0
- 2686 00ab 00       		.byte	0x0
- 2687 00ac 07       		.uleb128 0x7
- 2688 00ad 3B000000 		.long	0x3b
- 2689 00b1 08       		.uleb128 0x8
- 2690 00b2 08       		.byte	0x8
- 2691 00b3 07       		.byte	0x7
- 2692 00b4 09       		.uleb128 0x9
- 2693 00b5 08       		.byte	0x8
- 2694 00b6 0A       		.uleb128 0xa
- 2695 00b7 08       		.byte	0x8
- 2696 00b8 BC000000 		.long	0xbc
- 2697 00bc 0B       		.uleb128 0xb
- 2698 00bd C1000000 		.long	0xc1
- 2699 00c1 02       		.uleb128 0x2
- 2700 00c2 01       		.byte	0x1
- 2701 00c3 06       		.byte	0x6
- 2702 00c4 00000000 		.long	.LASF11
- 2703 00c8 0C       		.uleb128 0xc
- 2704 00c9 04       		.byte	0x4
- 2705 00ca 0D       		.byte	0xd
- 2706 00cb D6       		.byte	0xd6
-
GAS LISTING /tmp/ccXzRABk.s 			page 76
-
-
- 2707 00cc 49010000 		.long	0x149
- 2708 00d0 0D       		.uleb128 0xd
- 2709 00d1 00000000 		.long	.LASF12
- 2710 00d5 7F       		.sleb128 -1
- 2711 00d6 0D       		.uleb128 0xd
- 2712 00d7 00000000 		.long	.LASF13
- 2713 00db 00       		.sleb128 0
- 2714 00dc 0D       		.uleb128 0xd
- 2715 00dd 00000000 		.long	.LASF14
- 2716 00e1 01       		.sleb128 1
- 2717 00e2 0D       		.uleb128 0xd
- 2718 00e3 00000000 		.long	.LASF15
- 2719 00e7 02       		.sleb128 2
- 2720 00e8 0D       		.uleb128 0xd
- 2721 00e9 00000000 		.long	.LASF16
- 2722 00ed 03       		.sleb128 3
- 2723 00ee 0D       		.uleb128 0xd
- 2724 00ef 00000000 		.long	.LASF17
- 2725 00f3 04       		.sleb128 4
- 2726 00f4 0D       		.uleb128 0xd
- 2727 00f5 00000000 		.long	.LASF18
- 2728 00f9 05       		.sleb128 5
- 2729 00fa 0D       		.uleb128 0xd
- 2730 00fb 00000000 		.long	.LASF19
- 2731 00ff 06       		.sleb128 6
- 2732 0100 0D       		.uleb128 0xd
- 2733 0101 00000000 		.long	.LASF20
- 2734 0105 07       		.sleb128 7
- 2735 0106 0D       		.uleb128 0xd
- 2736 0107 00000000 		.long	.LASF21
- 2737 010b 08       		.sleb128 8
- 2738 010c 0D       		.uleb128 0xd
- 2739 010d 00000000 		.long	.LASF22
- 2740 0111 09       		.sleb128 9
- 2741 0112 0D       		.uleb128 0xd
- 2742 0113 00000000 		.long	.LASF23
- 2743 0117 0A       		.sleb128 10
- 2744 0118 0D       		.uleb128 0xd
- 2745 0119 00000000 		.long	.LASF24
- 2746 011d 0B       		.sleb128 11
- 2747 011e 0D       		.uleb128 0xd
- 2748 011f 00000000 		.long	.LASF25
- 2749 0123 0C       		.sleb128 12
- 2750 0124 0D       		.uleb128 0xd
- 2751 0125 00000000 		.long	.LASF26
- 2752 0129 0D       		.sleb128 13
- 2753 012a 0D       		.uleb128 0xd
- 2754 012b 00000000 		.long	.LASF27
- 2755 012f 0E       		.sleb128 14
- 2756 0130 0D       		.uleb128 0xd
- 2757 0131 00000000 		.long	.LASF28
- 2758 0135 0F       		.sleb128 15
- 2759 0136 0D       		.uleb128 0xd
- 2760 0137 00000000 		.long	.LASF29
- 2761 013b 10       		.sleb128 16
- 2762 013c 0D       		.uleb128 0xd
- 2763 013d 00000000 		.long	.LASF30
-
GAS LISTING /tmp/ccXzRABk.s 			page 77
-
-
- 2764 0141 11       		.sleb128 17
- 2765 0142 0D       		.uleb128 0xd
- 2766 0143 00000000 		.long	.LASF31
- 2767 0147 12       		.sleb128 18
- 2768 0148 00       		.byte	0x0
- 2769 0149 04       		.uleb128 0x4
- 2770 014a 00000000 		.long	.LASF32
- 2771 014e 05       		.byte	0x5
- 2772 014f 42       		.byte	0x42
- 2773 0150 86000000 		.long	0x86
- 2774 0154 04       		.uleb128 0x4
- 2775 0155 00000000 		.long	.LASF33
- 2776 0159 06       		.byte	0x6
- 2777 015a 20       		.byte	0x20
- 2778 015b 5F010000 		.long	0x15f
- 2779 015f 05       		.uleb128 0x5
- 2780 0160 00000000 		.long	.LASF33
- 2781 0164 48       		.byte	0x48
- 2782 0165 06       		.byte	0x6
- 2783 0166 20       		.byte	0x20
- 2784 0167 F7010000 		.long	0x1f7
- 2785 016b 06       		.uleb128 0x6
- 2786 016c 00000000 		.long	.LASF35
- 2787 0170 07       		.byte	0x7
- 2788 0171 9A       		.byte	0x9a
- 2789 0172 49010000 		.long	0x149
- 2790 0176 02       		.byte	0x2
- 2791 0177 23       		.byte	0x23
- 2792 0178 00       		.uleb128 0x0
- 2793 0179 06       		.uleb128 0x6
- 2794 017a 00000000 		.long	.LASF36
- 2795 017e 07       		.byte	0x7
- 2796 017f 9B       		.byte	0x9b
- 2797 0180 62000000 		.long	0x62
- 2798 0184 02       		.byte	0x2
- 2799 0185 23       		.byte	0x23
- 2800 0186 04       		.uleb128 0x4
- 2801 0187 0E       		.uleb128 0xe
- 2802 0188 767400   		.string	"vt"
- 2803 018b 07       		.byte	0x7
- 2804 018c 9C       		.byte	0x9c
- 2805 018d BC040000 		.long	0x4bc
- 2806 0191 02       		.byte	0x2
- 2807 0192 23       		.byte	0x23
- 2808 0193 08       		.uleb128 0x8
- 2809 0194 06       		.uleb128 0x6
- 2810 0195 00000000 		.long	.LASF37
- 2811 0199 07       		.byte	0x7
- 2812 019a 9D       		.byte	0x9d
- 2813 019b B6000000 		.long	0xb6
- 2814 019f 02       		.byte	0x2
- 2815 01a0 23       		.byte	0x23
- 2816 01a1 10       		.uleb128 0x10
- 2817 01a2 06       		.uleb128 0x6
- 2818 01a3 00000000 		.long	.LASF38
- 2819 01a7 07       		.byte	0x7
- 2820 01a8 9E       		.byte	0x9e
-
GAS LISTING /tmp/ccXzRABk.s 			page 78
-
-
- 2821 01a9 B4000000 		.long	0xb4
- 2822 01ad 02       		.byte	0x2
- 2823 01ae 23       		.byte	0x23
- 2824 01af 18       		.uleb128 0x18
- 2825 01b0 06       		.uleb128 0x6
- 2826 01b1 00000000 		.long	.LASF39
- 2827 01b5 07       		.byte	0x7
- 2828 01b6 9F       		.byte	0x9f
- 2829 01b7 B4000000 		.long	0xb4
- 2830 01bb 02       		.byte	0x2
- 2831 01bc 23       		.byte	0x23
- 2832 01bd 20       		.uleb128 0x20
- 2833 01be 06       		.uleb128 0x6
- 2834 01bf 00000000 		.long	.LASF40
- 2835 01c3 07       		.byte	0x7
- 2836 01c4 A0       		.byte	0xa0
- 2837 01c5 B4000000 		.long	0xb4
- 2838 01c9 02       		.byte	0x2
- 2839 01ca 23       		.byte	0x23
- 2840 01cb 28       		.uleb128 0x28
- 2841 01cc 06       		.uleb128 0x6
- 2842 01cd 00000000 		.long	.LASF41
- 2843 01d1 07       		.byte	0x7
- 2844 01d2 A1       		.byte	0xa1
- 2845 01d3 B4000000 		.long	0xb4
- 2846 01d7 02       		.byte	0x2
- 2847 01d8 23       		.byte	0x23
- 2848 01d9 30       		.uleb128 0x30
- 2849 01da 06       		.uleb128 0x6
- 2850 01db 00000000 		.long	.LASF42
- 2851 01df 07       		.byte	0x7
- 2852 01e0 A2       		.byte	0xa2
- 2853 01e1 F7010000 		.long	0x1f7
- 2854 01e5 02       		.byte	0x2
- 2855 01e6 23       		.byte	0x23
- 2856 01e7 38       		.uleb128 0x38
- 2857 01e8 06       		.uleb128 0x6
- 2858 01e9 00000000 		.long	.LASF43
- 2859 01ed 07       		.byte	0x7
- 2860 01ee A3       		.byte	0xa3
- 2861 01ef F7010000 		.long	0x1f7
- 2862 01f3 02       		.byte	0x2
- 2863 01f4 23       		.byte	0x23
- 2864 01f5 40       		.uleb128 0x40
- 2865 01f6 00       		.byte	0x0
- 2866 01f7 04       		.uleb128 0x4
- 2867 01f8 00000000 		.long	.LASF44
- 2868 01fc 06       		.byte	0x6
- 2869 01fd 40       		.byte	0x40
- 2870 01fe 02020000 		.long	0x202
- 2871 0202 0A       		.uleb128 0xa
- 2872 0203 08       		.byte	0x8
- 2873 0204 08020000 		.long	0x208
- 2874 0208 0F       		.uleb128 0xf
- 2875 0209 01       		.byte	0x1
- 2876 020a 14020000 		.long	0x214
- 2877 020e 10       		.uleb128 0x10
-
GAS LISTING /tmp/ccXzRABk.s 			page 79
-
-
- 2878 020f B4000000 		.long	0xb4
- 2879 0213 00       		.byte	0x0
- 2880 0214 04       		.uleb128 0x4
- 2881 0215 00000000 		.long	.LASF45
- 2882 0219 07       		.byte	0x7
- 2883 021a 2C       		.byte	0x2c
- 2884 021b 1F020000 		.long	0x21f
- 2885 021f 05       		.uleb128 0x5
- 2886 0220 00000000 		.long	.LASF45
- 2887 0224 50       		.byte	0x50
- 2888 0225 07       		.byte	0x7
- 2889 0226 2B       		.byte	0x2b
- 2890 0227 48020000 		.long	0x248
- 2891 022b 0E       		.uleb128 0xe
- 2892 022c 64616400 		.string	"dad"
- 2893 0230 01       		.byte	0x1
- 2894 0231 3E       		.byte	0x3e
- 2895 0232 54010000 		.long	0x154
- 2896 0236 02       		.byte	0x2
- 2897 0237 23       		.byte	0x23
- 2898 0238 00       		.uleb128 0x0
- 2899 0239 06       		.uleb128 0x6
- 2900 023a 00000000 		.long	.LASF46
- 2901 023e 01       		.byte	0x1
- 2902 023f 3F       		.byte	0x3f
- 2903 0240 5C070000 		.long	0x75c
- 2904 0244 02       		.byte	0x2
- 2905 0245 23       		.byte	0x23
- 2906 0246 48       		.uleb128 0x48
- 2907 0247 00       		.byte	0x0
- 2908 0248 04       		.uleb128 0x4
- 2909 0249 00000000 		.long	.LASF47
- 2910 024d 07       		.byte	0x7
- 2911 024e 2F       		.byte	0x2f
- 2912 024f 53020000 		.long	0x253
- 2913 0253 05       		.uleb128 0x5
- 2914 0254 00000000 		.long	.LASF47
- 2915 0258 08       		.byte	0x8
- 2916 0259 07       		.byte	0x7
- 2917 025a 2F       		.byte	0x2f
- 2918 025b 7C020000 		.long	0x27c
- 2919 025f 0E       		.uleb128 0xe
- 2920 0260 6D616A00 		.string	"maj"
- 2921 0264 07       		.byte	0x7
- 2922 0265 32       		.byte	0x32
- 2923 0266 62000000 		.long	0x62
- 2924 026a 02       		.byte	0x2
- 2925 026b 23       		.byte	0x23
- 2926 026c 00       		.uleb128 0x0
- 2927 026d 0E       		.uleb128 0xe
- 2928 026e 6D696E00 		.string	"min"
- 2929 0272 07       		.byte	0x7
- 2930 0273 33       		.byte	0x33
- 2931 0274 62000000 		.long	0x62
- 2932 0278 02       		.byte	0x2
- 2933 0279 23       		.byte	0x23
- 2934 027a 04       		.uleb128 0x4
-
GAS LISTING /tmp/ccXzRABk.s 			page 80
-
-
- 2935 027b 00       		.byte	0x0
- 2936 027c 04       		.uleb128 0x4
- 2937 027d 00000000 		.long	.LASF48
- 2938 0281 07       		.byte	0x7
- 2939 0282 37       		.byte	0x37
- 2940 0283 87020000 		.long	0x287
- 2941 0287 05       		.uleb128 0x5
- 2942 0288 00000000 		.long	.LASF48
- 2943 028c B0       		.byte	0xb0
- 2944 028d 07       		.byte	0x7
- 2945 028e 37       		.byte	0x37
- 2946 028f CE030000 		.long	0x3ce
- 2947 0293 06       		.uleb128 0x6
- 2948 0294 00000000 		.long	.LASF49
- 2949 0298 07       		.byte	0x7
- 2950 0299 3A       		.byte	0x3a
- 2951 029a 48020000 		.long	0x248
- 2952 029e 02       		.byte	0x2
- 2953 029f 23       		.byte	0x23
- 2954 02a0 00       		.uleb128 0x0
- 2955 02a1 06       		.uleb128 0x6
- 2956 02a2 00000000 		.long	.LASF50
- 2957 02a6 07       		.byte	0x7
- 2958 02a7 3E       		.byte	0x3e
- 2959 02a8 E4030000 		.long	0x3e4
- 2960 02ac 02       		.byte	0x2
- 2961 02ad 23       		.byte	0x23
- 2962 02ae 08       		.uleb128 0x8
- 2963 02af 06       		.uleb128 0x6
- 2964 02b0 00000000 		.long	.LASF51
- 2965 02b4 07       		.byte	0x7
- 2966 02b5 40       		.byte	0x40
- 2967 02b6 04040000 		.long	0x404
- 2968 02ba 02       		.byte	0x2
- 2969 02bb 23       		.byte	0x23
- 2970 02bc 10       		.uleb128 0x10
- 2971 02bd 06       		.uleb128 0x6
- 2972 02be 00000000 		.long	.LASF52
- 2973 02c2 07       		.byte	0x7
- 2974 02c3 44       		.byte	0x44
- 2975 02c4 04040000 		.long	0x404
- 2976 02c8 02       		.byte	0x2
- 2977 02c9 23       		.byte	0x23
- 2978 02ca 18       		.uleb128 0x18
- 2979 02cb 06       		.uleb128 0x6
- 2980 02cc 00000000 		.long	.LASF53
- 2981 02d0 07       		.byte	0x7
- 2982 02d1 48       		.byte	0x48
- 2983 02d2 26040000 		.long	0x426
- 2984 02d6 02       		.byte	0x2
- 2985 02d7 23       		.byte	0x23
- 2986 02d8 20       		.uleb128 0x20
- 2987 02d9 06       		.uleb128 0x6
- 2988 02da 00000000 		.long	.LASF54
- 2989 02de 07       		.byte	0x7
- 2990 02df 4B       		.byte	0x4b
- 2991 02e0 26040000 		.long	0x426
-
GAS LISTING /tmp/ccXzRABk.s 			page 81
-
-
- 2992 02e4 02       		.byte	0x2
- 2993 02e5 23       		.byte	0x23
- 2994 02e6 28       		.uleb128 0x28
- 2995 02e7 06       		.uleb128 0x6
- 2996 02e8 00000000 		.long	.LASF55
- 2997 02ec 07       		.byte	0x7
- 2998 02ed 4E       		.byte	0x4e
- 2999 02ee 41040000 		.long	0x441
- 3000 02f2 02       		.byte	0x2
- 3001 02f3 23       		.byte	0x23
- 3002 02f4 30       		.uleb128 0x30
- 3003 02f5 06       		.uleb128 0x6
- 3004 02f6 00000000 		.long	.LASF56
- 3005 02fa 07       		.byte	0x7
- 3006 02fb 51       		.byte	0x51
- 3007 02fc 41040000 		.long	0x441
- 3008 0300 02       		.byte	0x2
- 3009 0301 23       		.byte	0x23
- 3010 0302 38       		.uleb128 0x38
- 3011 0303 06       		.uleb128 0x6
- 3012 0304 00000000 		.long	.LASF57
- 3013 0308 07       		.byte	0x7
- 3014 0309 55       		.byte	0x55
- 3015 030a 6C040000 		.long	0x46c
- 3016 030e 02       		.byte	0x2
- 3017 030f 23       		.byte	0x23
- 3018 0310 40       		.uleb128 0x40
- 3019 0311 06       		.uleb128 0x6
- 3020 0312 00000000 		.long	.LASF58
- 3021 0316 07       		.byte	0x7
- 3022 0317 58       		.byte	0x58
- 3023 0318 6C040000 		.long	0x46c
- 3024 031c 02       		.byte	0x2
- 3025 031d 23       		.byte	0x23
- 3026 031e 48       		.uleb128 0x48
- 3027 031f 06       		.uleb128 0x6
- 3028 0320 00000000 		.long	.LASF59
- 3029 0324 07       		.byte	0x7
- 3030 0325 5D       		.byte	0x5d
- 3031 0326 91040000 		.long	0x491
- 3032 032a 02       		.byte	0x2
- 3033 032b 23       		.byte	0x23
- 3034 032c 50       		.uleb128 0x50
- 3035 032d 06       		.uleb128 0x6
- 3036 032e 00000000 		.long	.LASF60
- 3037 0332 07       		.byte	0x7
- 3038 0333 62       		.byte	0x62
- 3039 0334 91040000 		.long	0x491
- 3040 0338 02       		.byte	0x2
- 3041 0339 23       		.byte	0x23
- 3042 033a 58       		.uleb128 0x58
- 3043 033b 06       		.uleb128 0x6
- 3044 033c 00000000 		.long	.LASF61
- 3045 0340 07       		.byte	0x7
- 3046 0341 68       		.byte	0x68
- 3047 0342 B6040000 		.long	0x4b6
- 3048 0346 02       		.byte	0x2
-
GAS LISTING /tmp/ccXzRABk.s 			page 82
-
-
- 3049 0347 23       		.byte	0x23
- 3050 0348 60       		.uleb128 0x60
- 3051 0349 06       		.uleb128 0x6
- 3052 034a 00000000 		.long	.LASF62
- 3053 034e 07       		.byte	0x7
- 3054 034f 6C       		.byte	0x6c
- 3055 0350 B6040000 		.long	0x4b6
- 3056 0354 02       		.byte	0x2
- 3057 0355 23       		.byte	0x23
- 3058 0356 68       		.uleb128 0x68
- 3059 0357 06       		.uleb128 0x6
- 3060 0358 00000000 		.long	.LASF63
- 3061 035c 07       		.byte	0x7
- 3062 035d 72       		.byte	0x72
- 3063 035e B6040000 		.long	0x4b6
- 3064 0362 02       		.byte	0x2
- 3065 0363 23       		.byte	0x23
- 3066 0364 70       		.uleb128 0x70
- 3067 0365 06       		.uleb128 0x6
- 3068 0366 00000000 		.long	.LASF64
- 3069 036a 07       		.byte	0x7
- 3070 036b 74       		.byte	0x74
- 3071 036c B6040000 		.long	0x4b6
- 3072 0370 02       		.byte	0x2
- 3073 0371 23       		.byte	0x23
- 3074 0372 78       		.uleb128 0x78
- 3075 0373 06       		.uleb128 0x6
- 3076 0374 00000000 		.long	.LASF65
- 3077 0378 07       		.byte	0x7
- 3078 0379 78       		.byte	0x78
- 3079 037a B6040000 		.long	0x4b6
- 3080 037e 03       		.byte	0x3
- 3081 037f 23       		.byte	0x23
- 3082 0380 8001     		.uleb128 0x80
- 3083 0382 06       		.uleb128 0x6
- 3084 0383 00000000 		.long	.LASF66
- 3085 0387 07       		.byte	0x7
- 3086 0388 7A       		.byte	0x7a
- 3087 0389 B6040000 		.long	0x4b6
- 3088 038d 03       		.byte	0x3
- 3089 038e 23       		.byte	0x23
- 3090 038f 8801     		.uleb128 0x88
- 3091 0391 06       		.uleb128 0x6
- 3092 0392 00000000 		.long	.LASF67
- 3093 0396 07       		.byte	0x7
- 3094 0397 7E       		.byte	0x7e
- 3095 0398 B6040000 		.long	0x4b6
- 3096 039c 03       		.byte	0x3
- 3097 039d 23       		.byte	0x23
- 3098 039e 9001     		.uleb128 0x90
- 3099 03a0 06       		.uleb128 0x6
- 3100 03a1 00000000 		.long	.LASF68
- 3101 03a5 07       		.byte	0x7
- 3102 03a6 80       		.byte	0x80
- 3103 03a7 B6040000 		.long	0x4b6
- 3104 03ab 03       		.byte	0x3
- 3105 03ac 23       		.byte	0x23
-
GAS LISTING /tmp/ccXzRABk.s 			page 83
-
-
- 3106 03ad 9801     		.uleb128 0x98
- 3107 03af 06       		.uleb128 0x6
- 3108 03b0 00000000 		.long	.LASF69
- 3109 03b4 07       		.byte	0x7
- 3110 03b5 84       		.byte	0x84
- 3111 03b6 B6040000 		.long	0x4b6
- 3112 03ba 03       		.byte	0x3
- 3113 03bb 23       		.byte	0x23
- 3114 03bc A001     		.uleb128 0xa0
- 3115 03be 06       		.uleb128 0x6
- 3116 03bf 00000000 		.long	.LASF70
- 3117 03c3 07       		.byte	0x7
- 3118 03c4 86       		.byte	0x86
- 3119 03c5 B6040000 		.long	0x4b6
- 3120 03c9 03       		.byte	0x3
- 3121 03ca 23       		.byte	0x23
- 3122 03cb A801     		.uleb128 0xa8
- 3123 03cd 00       		.byte	0x0
- 3124 03ce 11       		.uleb128 0x11
- 3125 03cf 01       		.byte	0x1
- 3126 03d0 7B000000 		.long	0x7b
- 3127 03d4 DE030000 		.long	0x3de
- 3128 03d8 10       		.uleb128 0x10
- 3129 03d9 DE030000 		.long	0x3de
- 3130 03dd 00       		.byte	0x0
- 3131 03de 0A       		.uleb128 0xa
- 3132 03df 08       		.byte	0x8
- 3133 03e0 14020000 		.long	0x214
- 3134 03e4 0A       		.uleb128 0xa
- 3135 03e5 08       		.byte	0x8
- 3136 03e6 CE030000 		.long	0x3ce
- 3137 03ea 11       		.uleb128 0x11
- 3138 03eb 01       		.byte	0x1
- 3139 03ec 7B000000 		.long	0x7b
- 3140 03f0 04040000 		.long	0x404
- 3141 03f4 10       		.uleb128 0x10
- 3142 03f5 DE030000 		.long	0x3de
- 3143 03f9 10       		.uleb128 0x10
- 3144 03fa B6000000 		.long	0xb6
- 3145 03fe 10       		.uleb128 0x10
- 3146 03ff 62000000 		.long	0x62
- 3147 0403 00       		.byte	0x0
- 3148 0404 0A       		.uleb128 0xa
- 3149 0405 08       		.byte	0x8
- 3150 0406 EA030000 		.long	0x3ea
- 3151 040a 11       		.uleb128 0x11
- 3152 040b 01       		.byte	0x1
- 3153 040c 7B000000 		.long	0x7b
- 3154 0410 1F040000 		.long	0x41f
- 3155 0414 10       		.uleb128 0x10
- 3156 0415 DE030000 		.long	0x3de
- 3157 0419 10       		.uleb128 0x10
- 3158 041a 1F040000 		.long	0x41f
- 3159 041e 00       		.byte	0x0
- 3160 041f 0A       		.uleb128 0xa
- 3161 0420 08       		.byte	0x8
- 3162 0421 25040000 		.long	0x425
-
GAS LISTING /tmp/ccXzRABk.s 			page 84
-
-
- 3163 0425 12       		.uleb128 0x12
- 3164 0426 0A       		.uleb128 0xa
- 3165 0427 08       		.byte	0x8
- 3166 0428 0A040000 		.long	0x40a
- 3167 042c 11       		.uleb128 0x11
- 3168 042d 01       		.byte	0x1
- 3169 042e 7B000000 		.long	0x7b
- 3170 0432 41040000 		.long	0x441
- 3171 0436 10       		.uleb128 0x10
- 3172 0437 DE030000 		.long	0x3de
- 3173 043b 10       		.uleb128 0x10
- 3174 043c F7010000 		.long	0x1f7
- 3175 0440 00       		.byte	0x0
- 3176 0441 0A       		.uleb128 0xa
- 3177 0442 08       		.byte	0x8
- 3178 0443 2C040000 		.long	0x42c
- 3179 0447 11       		.uleb128 0x11
- 3180 0448 01       		.byte	0x1
- 3181 0449 7B000000 		.long	0x7b
- 3182 044d 61040000 		.long	0x461
- 3183 0451 10       		.uleb128 0x10
- 3184 0452 61040000 		.long	0x461
- 3185 0456 10       		.uleb128 0x10
- 3186 0457 1F040000 		.long	0x41f
- 3187 045b 10       		.uleb128 0x10
- 3188 045c B4000000 		.long	0xb4
- 3189 0460 00       		.byte	0x0
- 3190 0461 0A       		.uleb128 0xa
- 3191 0462 08       		.byte	0x8
- 3192 0463 67040000 		.long	0x467
- 3193 0467 0B       		.uleb128 0xb
- 3194 0468 14020000 		.long	0x214
- 3195 046c 0A       		.uleb128 0xa
- 3196 046d 08       		.byte	0x8
- 3197 046e 47040000 		.long	0x447
- 3198 0472 11       		.uleb128 0x11
- 3199 0473 01       		.byte	0x1
- 3200 0474 7B000000 		.long	0x7b
- 3201 0478 91040000 		.long	0x491
- 3202 047c 10       		.uleb128 0x10
- 3203 047d 61040000 		.long	0x461
- 3204 0481 10       		.uleb128 0x10
- 3205 0482 1F040000 		.long	0x41f
- 3206 0486 10       		.uleb128 0x10
- 3207 0487 B4000000 		.long	0xb4
- 3208 048b 10       		.uleb128 0x10
- 3209 048c 62000000 		.long	0x62
- 3210 0490 00       		.byte	0x0
- 3211 0491 0A       		.uleb128 0xa
- 3212 0492 08       		.byte	0x8
- 3213 0493 72040000 		.long	0x472
- 3214 0497 11       		.uleb128 0x11
- 3215 0498 01       		.byte	0x1
- 3216 0499 7B000000 		.long	0x7b
- 3217 049d B6040000 		.long	0x4b6
- 3218 04a1 10       		.uleb128 0x10
- 3219 04a2 DE030000 		.long	0x3de
-
GAS LISTING /tmp/ccXzRABk.s 			page 85
-
-
- 3220 04a6 10       		.uleb128 0x10
- 3221 04a7 1F040000 		.long	0x41f
- 3222 04ab 10       		.uleb128 0x10
- 3223 04ac B4000000 		.long	0xb4
- 3224 04b0 10       		.uleb128 0x10
- 3225 04b1 62000000 		.long	0x62
- 3226 04b5 00       		.byte	0x0
- 3227 04b6 0A       		.uleb128 0xa
- 3228 04b7 08       		.byte	0x8
- 3229 04b8 97040000 		.long	0x497
- 3230 04bc 04       		.uleb128 0x4
- 3231 04bd 00000000 		.long	.LASF71
- 3232 04c1 07       		.byte	0x7
- 3233 04c2 90       		.byte	0x90
- 3234 04c3 C7040000 		.long	0x4c7
- 3235 04c7 13       		.uleb128 0x13
- 3236 04c8 00000000 		.long	.LASF71
- 3237 04cc 08       		.byte	0x8
- 3238 04cd 07       		.byte	0x7
- 3239 04ce 90       		.byte	0x90
- 3240 04cf E9040000 		.long	0x4e9
- 3241 04d3 14       		.uleb128 0x14
- 3242 04d4 00000000 		.long	.LASF49
- 3243 04d8 07       		.byte	0x7
- 3244 04d9 93       		.byte	0x93
- 3245 04da E9040000 		.long	0x4e9
- 3246 04de 15       		.uleb128 0x15
- 3247 04df 763100   		.string	"v1"
- 3248 04e2 07       		.byte	0x7
- 3249 04e3 94       		.byte	0x94
- 3250 04e4 F4040000 		.long	0x4f4
- 3251 04e8 00       		.byte	0x0
- 3252 04e9 0A       		.uleb128 0xa
- 3253 04ea 08       		.byte	0x8
- 3254 04eb EF040000 		.long	0x4ef
- 3255 04ef 0B       		.uleb128 0xb
- 3256 04f0 48020000 		.long	0x248
- 3257 04f4 0A       		.uleb128 0xa
- 3258 04f5 08       		.byte	0x8
- 3259 04f6 FA040000 		.long	0x4fa
- 3260 04fa 0B       		.uleb128 0xb
- 3261 04fb 7C020000 		.long	0x27c
- 3262 04ff 02       		.uleb128 0x2
- 3263 0500 08       		.byte	0x8
- 3264 0501 05       		.byte	0x5
- 3265 0502 00000000 		.long	.LASF72
- 3266 0506 02       		.uleb128 0x2
- 3267 0507 04       		.byte	0x4
- 3268 0508 04       		.byte	0x4
- 3269 0509 00000000 		.long	.LASF73
- 3270 050d 0A       		.uleb128 0xa
- 3271 050e 08       		.byte	0x8
- 3272 050f C1000000 		.long	0xc1
- 3273 0513 02       		.uleb128 0x2
- 3274 0514 08       		.byte	0x8
- 3275 0515 07       		.byte	0x7
- 3276 0516 00000000 		.long	.LASF74
-
GAS LISTING /tmp/ccXzRABk.s 			page 86
-
-
- 3277 051a 02       		.uleb128 0x2
- 3278 051b 08       		.byte	0x8
- 3279 051c 04       		.byte	0x4
- 3280 051d 00000000 		.long	.LASF75
- 3281 0521 04       		.uleb128 0x4
- 3282 0522 00000000 		.long	.LASF76
- 3283 0526 08       		.byte	0x8
- 3284 0527 26       		.byte	0x26
- 3285 0528 2C050000 		.long	0x52c
- 3286 052c 16       		.uleb128 0x16
- 3287 052d 01       		.byte	0x1
- 3288 052e 49000000 		.long	0x49
- 3289 0532 3D050000 		.long	0x53d
- 3290 0536 17       		.uleb128 0x17
- 3291 0537 B1000000 		.long	0xb1
- 3292 053b 0F       		.byte	0xf
- 3293 053c 00       		.byte	0x0
- 3294 053d 04       		.uleb128 0x4
- 3295 053e 00000000 		.long	.LASF77
- 3296 0542 09       		.byte	0x9
- 3297 0543 3B       		.byte	0x3b
- 3298 0544 21050000 		.long	0x521
- 3299 0548 04       		.uleb128 0x4
- 3300 0549 00000000 		.long	.LASF78
- 3301 054d 09       		.byte	0x9
- 3302 054e 43       		.byte	0x43
- 3303 054f 53050000 		.long	0x553
- 3304 0553 05       		.uleb128 0x5
- 3305 0554 00000000 		.long	.LASF78
- 3306 0558 08       		.byte	0x8
- 3307 0559 09       		.byte	0x9
- 3308 055a 43       		.byte	0x43
- 3309 055b 7C050000 		.long	0x57c
- 3310 055f 0E       		.uleb128 0xe
- 3311 0560 6D616A00 		.string	"maj"
- 3312 0564 09       		.byte	0x9
- 3313 0565 46       		.byte	0x46
- 3314 0566 62000000 		.long	0x62
- 3315 056a 02       		.byte	0x2
- 3316 056b 23       		.byte	0x23
- 3317 056c 00       		.uleb128 0x0
- 3318 056d 0E       		.uleb128 0xe
- 3319 056e 6D696E00 		.string	"min"
- 3320 0572 09       		.byte	0x9
- 3321 0573 47       		.byte	0x47
- 3322 0574 62000000 		.long	0x62
- 3323 0578 02       		.byte	0x2
- 3324 0579 23       		.byte	0x23
- 3325 057a 04       		.uleb128 0x4
- 3326 057b 00       		.byte	0x0
- 3327 057c 04       		.uleb128 0x4
- 3328 057d 00000000 		.long	.LASF79
- 3329 0581 09       		.byte	0x9
- 3330 0582 52       		.byte	0x52
- 3331 0583 87050000 		.long	0x587
- 3332 0587 05       		.uleb128 0x5
- 3333 0588 00000000 		.long	.LASF79
-
GAS LISTING /tmp/ccXzRABk.s 			page 87
-
-
- 3334 058c 40       		.byte	0x40
- 3335 058d 09       		.byte	0x9
- 3336 058e 52       		.byte	0x52
- 3337 058f 04060000 		.long	0x604
- 3338 0593 06       		.uleb128 0x6
- 3339 0594 00000000 		.long	.LASF49
- 3340 0598 09       		.byte	0x9
- 3341 0599 5E       		.byte	0x5e
- 3342 059a 48050000 		.long	0x548
- 3343 059e 02       		.byte	0x2
- 3344 059f 23       		.byte	0x23
- 3345 05a0 00       		.uleb128 0x0
- 3346 05a1 06       		.uleb128 0x6
- 3347 05a2 00000000 		.long	.LASF50
- 3348 05a6 09       		.byte	0x9
- 3349 05a7 63       		.byte	0x63
- 3350 05a8 48060000 		.long	0x648
- 3351 05ac 02       		.byte	0x2
- 3352 05ad 23       		.byte	0x23
- 3353 05ae 08       		.uleb128 0x8
- 3354 05af 06       		.uleb128 0x6
- 3355 05b0 00000000 		.long	.LASF36
- 3356 05b4 09       		.byte	0x9
- 3357 05b5 65       		.byte	0x65
- 3358 05b6 59060000 		.long	0x659
- 3359 05ba 02       		.byte	0x2
- 3360 05bb 23       		.byte	0x23
- 3361 05bc 10       		.uleb128 0x10
- 3362 05bd 06       		.uleb128 0x6
- 3363 05be 00000000 		.long	.LASF80
- 3364 05c2 09       		.byte	0x9
- 3365 05c3 67       		.byte	0x67
- 3366 05c4 59060000 		.long	0x659
- 3367 05c8 02       		.byte	0x2
- 3368 05c9 23       		.byte	0x23
- 3369 05ca 18       		.uleb128 0x18
- 3370 05cb 06       		.uleb128 0x6
- 3371 05cc 00000000 		.long	.LASF51
- 3372 05d0 09       		.byte	0x9
- 3373 05d1 69       		.byte	0x69
- 3374 05d2 79060000 		.long	0x679
- 3375 05d6 02       		.byte	0x2
- 3376 05d7 23       		.byte	0x23
- 3377 05d8 20       		.uleb128 0x20
- 3378 05d9 06       		.uleb128 0x6
- 3379 05da 00000000 		.long	.LASF52
- 3380 05de 09       		.byte	0x9
- 3381 05df 6D       		.byte	0x6d
- 3382 05e0 79060000 		.long	0x679
- 3383 05e4 02       		.byte	0x2
- 3384 05e5 23       		.byte	0x23
- 3385 05e6 28       		.uleb128 0x28
- 3386 05e7 06       		.uleb128 0x6
- 3387 05e8 00000000 		.long	.LASF57
- 3388 05ec 09       		.byte	0x9
- 3389 05ed 71       		.byte	0x71
- 3390 05ee 95060000 		.long	0x695
-
GAS LISTING /tmp/ccXzRABk.s 			page 88
-
-
- 3391 05f2 02       		.byte	0x2
- 3392 05f3 23       		.byte	0x23
- 3393 05f4 30       		.uleb128 0x30
- 3394 05f5 06       		.uleb128 0x6
- 3395 05f6 00000000 		.long	.LASF58
- 3396 05fa 09       		.byte	0x9
- 3397 05fb 75       		.byte	0x75
- 3398 05fc 95060000 		.long	0x695
- 3399 0600 02       		.byte	0x2
- 3400 0601 23       		.byte	0x23
- 3401 0602 38       		.uleb128 0x38
- 3402 0603 00       		.byte	0x0
- 3403 0604 04       		.uleb128 0x4
- 3404 0605 00000000 		.long	.LASF81
- 3405 0609 09       		.byte	0x9
- 3406 060a 53       		.byte	0x53
- 3407 060b 0F060000 		.long	0x60f
- 3408 060f 13       		.uleb128 0x13
- 3409 0610 00000000 		.long	.LASF81
- 3410 0614 40       		.byte	0x40
- 3411 0615 09       		.byte	0x9
- 3412 0616 53       		.byte	0x53
- 3413 0617 31060000 		.long	0x631
- 3414 061b 14       		.uleb128 0x14
- 3415 061c 00000000 		.long	.LASF49
- 3416 0620 09       		.byte	0x9
- 3417 0621 7F       		.byte	0x7f
- 3418 0622 48050000 		.long	0x548
- 3419 0626 15       		.uleb128 0x15
- 3420 0627 763100   		.string	"v1"
- 3421 062a 09       		.byte	0x9
- 3422 062b 80       		.byte	0x80
- 3423 062c 7C050000 		.long	0x57c
- 3424 0630 00       		.byte	0x0
- 3425 0631 0F       		.uleb128 0xf
- 3426 0632 01       		.byte	0x1
- 3427 0633 3D060000 		.long	0x63d
- 3428 0637 10       		.uleb128 0x10
- 3429 0638 3D060000 		.long	0x63d
- 3430 063c 00       		.byte	0x0
- 3431 063d 0A       		.uleb128 0xa
- 3432 063e 08       		.byte	0x8
- 3433 063f 43060000 		.long	0x643
- 3434 0643 0B       		.uleb128 0xb
- 3435 0644 04060000 		.long	0x604
- 3436 0648 0A       		.uleb128 0xa
- 3437 0649 08       		.byte	0x8
- 3438 064a 31060000 		.long	0x631
- 3439 064e 18       		.uleb128 0x18
- 3440 064f 62000000 		.long	0x62
- 3441 0653 59060000 		.long	0x659
- 3442 0657 19       		.uleb128 0x19
- 3443 0658 00       		.byte	0x0
- 3444 0659 0A       		.uleb128 0xa
- 3445 065a 08       		.byte	0x8
- 3446 065b 4E060000 		.long	0x64e
- 3447 065f 11       		.uleb128 0x11
-
GAS LISTING /tmp/ccXzRABk.s 			page 89
-
-
- 3448 0660 01       		.byte	0x1
- 3449 0661 7B000000 		.long	0x7b
- 3450 0665 79060000 		.long	0x679
- 3451 0669 10       		.uleb128 0x10
- 3452 066a B4000000 		.long	0xb4
- 3453 066e 10       		.uleb128 0x10
- 3454 066f B6000000 		.long	0xb6
- 3455 0673 10       		.uleb128 0x10
- 3456 0674 62000000 		.long	0x62
- 3457 0678 00       		.byte	0x0
- 3458 0679 0A       		.uleb128 0xa
- 3459 067a 08       		.byte	0x8
- 3460 067b 5F060000 		.long	0x65f
- 3461 067f 0F       		.uleb128 0xf
- 3462 0680 01       		.byte	0x1
- 3463 0681 95060000 		.long	0x695
- 3464 0685 10       		.uleb128 0x10
- 3465 0686 B6000000 		.long	0xb6
- 3466 068a 10       		.uleb128 0x10
- 3467 068b 0D050000 		.long	0x50d
- 3468 068f 10       		.uleb128 0x10
- 3469 0690 1F040000 		.long	0x41f
- 3470 0694 00       		.byte	0x0
- 3471 0695 0A       		.uleb128 0xa
- 3472 0696 08       		.byte	0x8
- 3473 0697 7F060000 		.long	0x67f
- 3474 069b 04       		.uleb128 0x4
- 3475 069c 00000000 		.long	.LASF82
- 3476 06a0 09       		.byte	0x9
- 3477 06a1 84       		.byte	0x84
- 3478 06a2 A6060000 		.long	0x6a6
- 3479 06a6 05       		.uleb128 0x5
- 3480 06a7 00000000 		.long	.LASF82
- 3481 06ab 40       		.byte	0x40
- 3482 06ac 09       		.byte	0x9
- 3483 06ad 84       		.byte	0x84
- 3484 06ae 23070000 		.long	0x723
- 3485 06b2 06       		.uleb128 0x6
- 3486 06b3 00000000 		.long	.LASF49
- 3487 06b7 09       		.byte	0x9
- 3488 06b8 90       		.byte	0x90
- 3489 06b9 48050000 		.long	0x548
- 3490 06bd 02       		.byte	0x2
- 3491 06be 23       		.byte	0x23
- 3492 06bf 00       		.uleb128 0x0
- 3493 06c0 06       		.uleb128 0x6
- 3494 06c1 00000000 		.long	.LASF50
- 3495 06c5 09       		.byte	0x9
- 3496 06c6 95       		.byte	0x95
- 3497 06c7 67070000 		.long	0x767
- 3498 06cb 02       		.byte	0x2
- 3499 06cc 23       		.byte	0x23
- 3500 06cd 08       		.uleb128 0x8
- 3501 06ce 06       		.uleb128 0x6
- 3502 06cf 00000000 		.long	.LASF36
- 3503 06d3 09       		.byte	0x9
- 3504 06d4 97       		.byte	0x97
-
GAS LISTING /tmp/ccXzRABk.s 			page 90
-
-
- 3505 06d5 59060000 		.long	0x659
- 3506 06d9 02       		.byte	0x2
- 3507 06da 23       		.byte	0x23
- 3508 06db 10       		.uleb128 0x10
- 3509 06dc 06       		.uleb128 0x6
- 3510 06dd 00000000 		.long	.LASF80
- 3511 06e1 09       		.byte	0x9
- 3512 06e2 99       		.byte	0x99
- 3513 06e3 59060000 		.long	0x659
- 3514 06e7 02       		.byte	0x2
- 3515 06e8 23       		.byte	0x23
- 3516 06e9 18       		.uleb128 0x18
- 3517 06ea 06       		.uleb128 0x6
- 3518 06eb 00000000 		.long	.LASF51
- 3519 06ef 09       		.byte	0x9
- 3520 06f0 9B       		.byte	0x9b
- 3521 06f1 79060000 		.long	0x679
- 3522 06f5 02       		.byte	0x2
- 3523 06f6 23       		.byte	0x23
- 3524 06f7 20       		.uleb128 0x20
- 3525 06f8 06       		.uleb128 0x6
- 3526 06f9 00000000 		.long	.LASF52
- 3527 06fd 09       		.byte	0x9
- 3528 06fe 9F       		.byte	0x9f
- 3529 06ff 79060000 		.long	0x679
- 3530 0703 02       		.byte	0x2
- 3531 0704 23       		.byte	0x23
- 3532 0705 28       		.uleb128 0x28
- 3533 0706 06       		.uleb128 0x6
- 3534 0707 00000000 		.long	.LASF57
- 3535 070b 09       		.byte	0x9
- 3536 070c A3       		.byte	0xa3
- 3537 070d 82070000 		.long	0x782
- 3538 0711 02       		.byte	0x2
- 3539 0712 23       		.byte	0x23
- 3540 0713 30       		.uleb128 0x30
- 3541 0714 06       		.uleb128 0x6
- 3542 0715 00000000 		.long	.LASF58
- 3543 0719 09       		.byte	0x9
- 3544 071a A6       		.byte	0xa6
- 3545 071b 82070000 		.long	0x782
- 3546 071f 02       		.byte	0x2
- 3547 0720 23       		.byte	0x23
- 3548 0721 38       		.uleb128 0x38
- 3549 0722 00       		.byte	0x0
- 3550 0723 04       		.uleb128 0x4
- 3551 0724 00000000 		.long	.LASF83
- 3552 0728 09       		.byte	0x9
- 3553 0729 85       		.byte	0x85
- 3554 072a 2E070000 		.long	0x72e
- 3555 072e 13       		.uleb128 0x13
- 3556 072f 00000000 		.long	.LASF83
- 3557 0733 40       		.byte	0x40
- 3558 0734 09       		.byte	0x9
- 3559 0735 85       		.byte	0x85
- 3560 0736 50070000 		.long	0x750
- 3561 073a 14       		.uleb128 0x14
-
GAS LISTING /tmp/ccXzRABk.s 			page 91
-
-
- 3562 073b 00000000 		.long	.LASF49
- 3563 073f 09       		.byte	0x9
- 3564 0740 AF       		.byte	0xaf
- 3565 0741 48050000 		.long	0x548
- 3566 0745 15       		.uleb128 0x15
- 3567 0746 763100   		.string	"v1"
- 3568 0749 09       		.byte	0x9
- 3569 074a B0       		.byte	0xb0
- 3570 074b 9B060000 		.long	0x69b
- 3571 074f 00       		.byte	0x0
- 3572 0750 0F       		.uleb128 0xf
- 3573 0751 01       		.byte	0x1
- 3574 0752 5C070000 		.long	0x75c
- 3575 0756 10       		.uleb128 0x10
- 3576 0757 5C070000 		.long	0x75c
- 3577 075b 00       		.byte	0x0
- 3578 075c 0A       		.uleb128 0xa
- 3579 075d 08       		.byte	0x8
- 3580 075e 62070000 		.long	0x762
- 3581 0762 0B       		.uleb128 0xb
- 3582 0763 23070000 		.long	0x723
- 3583 0767 0A       		.uleb128 0xa
- 3584 0768 08       		.byte	0x8
- 3585 0769 50070000 		.long	0x750
- 3586 076d 11       		.uleb128 0x11
- 3587 076e 01       		.byte	0x1
- 3588 076f 3D050000 		.long	0x53d
- 3589 0773 82070000 		.long	0x782
- 3590 0777 10       		.uleb128 0x10
- 3591 0778 3D050000 		.long	0x53d
- 3592 077c 10       		.uleb128 0x10
- 3593 077d 1F040000 		.long	0x41f
- 3594 0781 00       		.byte	0x0
- 3595 0782 0A       		.uleb128 0xa
- 3596 0783 08       		.byte	0x8
- 3597 0784 6D070000 		.long	0x76d
- 3598 0788 04       		.uleb128 0x4
- 3599 0789 00000000 		.long	.LASF84
- 3600 078d 0A       		.byte	0xa
- 3601 078e B0       		.byte	0xb0
- 3602 078f 93070000 		.long	0x793
- 3603 0793 1A       		.uleb128 0x1a
- 3604 0794 00000000 		.long	.LASF84
- 3605 0798 0001     		.value	0x100
- 3606 079a 0A       		.byte	0xa
- 3607 079b B0       		.byte	0xb0
- 3608 079c BE070000 		.long	0x7be
- 3609 07a0 06       		.uleb128 0x6
- 3610 07a1 00000000 		.long	.LASF85
- 3611 07a5 0A       		.byte	0xa
- 3612 07a6 B3       		.byte	0xb3
- 3613 07a7 BE070000 		.long	0x7be
- 3614 07ab 02       		.byte	0x2
- 3615 07ac 23       		.byte	0x23
- 3616 07ad 00       		.uleb128 0x0
- 3617 07ae 06       		.uleb128 0x6
- 3618 07af 00000000 		.long	.LASF86
-
GAS LISTING /tmp/ccXzRABk.s 			page 92
-
-
- 3619 07b3 0A       		.byte	0xa
- 3620 07b4 B4       		.byte	0xb4
- 3621 07b5 62000000 		.long	0x62
- 3622 07b9 03       		.byte	0x3
- 3623 07ba 23       		.byte	0x23
- 3624 07bb F001     		.uleb128 0xf0
- 3625 07bd 00       		.byte	0x0
- 3626 07be 1B       		.uleb128 0x1b
- 3627 07bf 3D050000 		.long	0x53d
- 3628 07c3 CE070000 		.long	0x7ce
- 3629 07c7 17       		.uleb128 0x17
- 3630 07c8 B1000000 		.long	0xb1
- 3631 07cc 0E       		.byte	0xe
- 3632 07cd 00       		.byte	0x0
- 3633 07ce 04       		.uleb128 0x4
- 3634 07cf 00000000 		.long	.LASF87
- 3635 07d3 0A       		.byte	0xa
- 3636 07d4 D2       		.byte	0xd2
- 3637 07d5 D9070000 		.long	0x7d9
- 3638 07d9 1A       		.uleb128 0x1a
- 3639 07da 00000000 		.long	.LASF87
- 3640 07de 7002     		.value	0x270
- 3641 07e0 0A       		.byte	0xa
- 3642 07e1 D2       		.byte	0xd2
- 3643 07e2 30080000 		.long	0x830
- 3644 07e6 0E       		.uleb128 0xe
- 3645 07e7 64616400 		.string	"dad"
- 3646 07eb 0A       		.byte	0xa
- 3647 07ec D5       		.byte	0xd5
- 3648 07ed 54010000 		.long	0x154
- 3649 07f1 02       		.byte	0x2
- 3650 07f2 23       		.byte	0x23
- 3651 07f3 00       		.uleb128 0x0
- 3652 07f4 06       		.uleb128 0x6
- 3653 07f5 00000000 		.long	.LASF88
- 3654 07f9 0A       		.byte	0xa
- 3655 07fa D6       		.byte	0xd6
- 3656 07fb 88070000 		.long	0x788
- 3657 07ff 02       		.byte	0x2
- 3658 0800 23       		.byte	0x23
- 3659 0801 50       		.uleb128 0x50
- 3660 0802 06       		.uleb128 0x6
- 3661 0803 00000000 		.long	.LASF89
- 3662 0807 0A       		.byte	0xa
- 3663 0808 D7       		.byte	0xd7
- 3664 0809 88070000 		.long	0x788
- 3665 080d 03       		.byte	0x3
- 3666 080e 23       		.byte	0x23
- 3667 080f D002     		.uleb128 0x150
- 3668 0811 06       		.uleb128 0x6
- 3669 0812 00000000 		.long	.LASF90
- 3670 0816 0A       		.byte	0xa
- 3671 0817 D8       		.byte	0xd8
- 3672 0818 3D050000 		.long	0x53d
- 3673 081c 03       		.byte	0x3
- 3674 081d 23       		.byte	0x23
- 3675 081e D004     		.uleb128 0x250
-
GAS LISTING /tmp/ccXzRABk.s 			page 93
-
-
- 3676 0820 06       		.uleb128 0x6
- 3677 0821 00000000 		.long	.LASF91
- 3678 0825 0A       		.byte	0xa
- 3679 0826 D9       		.byte	0xd9
- 3680 0827 3D050000 		.long	0x53d
- 3681 082b 03       		.byte	0x3
- 3682 082c 23       		.byte	0x23
- 3683 082d E004     		.uleb128 0x260
- 3684 082f 00       		.byte	0x0
- 3685 0830 04       		.uleb128 0x4
- 3686 0831 00000000 		.long	.LASF92
- 3687 0835 0B       		.byte	0xb
- 3688 0836 29       		.byte	0x29
- 3689 0837 3B080000 		.long	0x83b
- 3690 083b 05       		.uleb128 0x5
- 3691 083c 00000000 		.long	.LASF92
- 3692 0840 70       		.byte	0x70
- 3693 0841 0B       		.byte	0xb
- 3694 0842 29       		.byte	0x29
- 3695 0843 72080000 		.long	0x872
- 3696 0847 0E       		.uleb128 0xe
- 3697 0848 64616400 		.string	"dad"
- 3698 084c 0B       		.byte	0xb
- 3699 084d 2C       		.byte	0x2c
- 3700 084e 54010000 		.long	0x154
- 3701 0852 02       		.byte	0x2
- 3702 0853 23       		.byte	0x23
- 3703 0854 00       		.uleb128 0x0
- 3704 0855 06       		.uleb128 0x6
- 3705 0856 00000000 		.long	.LASF90
- 3706 085a 0B       		.byte	0xb
- 3707 085b 2D       		.byte	0x2d
- 3708 085c 3D050000 		.long	0x53d
- 3709 0860 02       		.byte	0x2
- 3710 0861 23       		.byte	0x23
- 3711 0862 50       		.uleb128 0x50
- 3712 0863 06       		.uleb128 0x6
- 3713 0864 00000000 		.long	.LASF91
- 3714 0868 0B       		.byte	0xb
- 3715 0869 2E       		.byte	0x2e
- 3716 086a 3D050000 		.long	0x53d
- 3717 086e 02       		.byte	0x2
- 3718 086f 23       		.byte	0x23
- 3719 0870 60       		.uleb128 0x60
- 3720 0871 00       		.byte	0x0
- 3721 0872 04       		.uleb128 0x4
- 3722 0873 00000000 		.long	.LASF93
- 3723 0877 0C       		.byte	0xc
- 3724 0878 48       		.byte	0x48
- 3725 0879 62000000 		.long	0x62
- 3726 087d 0C       		.uleb128 0xc
- 3727 087e 04       		.byte	0x4
- 3728 087f 0C       		.byte	0xc
- 3729 0880 4A       		.byte	0x4a
- 3730 0881 98080000 		.long	0x898
- 3731 0885 0D       		.uleb128 0xd
- 3732 0886 00000000 		.long	.LASF94
-
GAS LISTING /tmp/ccXzRABk.s 			page 94
-
-
- 3733 088a 00       		.sleb128 0
- 3734 088b 0D       		.uleb128 0xd
- 3735 088c 00000000 		.long	.LASF95
- 3736 0890 01       		.sleb128 1
- 3737 0891 0D       		.uleb128 0xd
- 3738 0892 00000000 		.long	.LASF96
- 3739 0896 02       		.sleb128 2
- 3740 0897 00       		.byte	0x0
- 3741 0898 04       		.uleb128 0x4
- 3742 0899 00000000 		.long	.LASF97
- 3743 089d 0E       		.byte	0xe
- 3744 089e 40       		.byte	0x40
- 3745 089f A3080000 		.long	0x8a3
- 3746 08a3 13       		.uleb128 0x13
- 3747 08a4 00000000 		.long	.LASF97
- 3748 08a8 40       		.byte	0x40
- 3749 08a9 0E       		.byte	0xe
- 3750 08aa 40       		.byte	0x40
- 3751 08ab C6080000 		.long	0x8c6
- 3752 08af 14       		.uleb128 0x14
- 3753 08b0 00000000 		.long	.LASF98
- 3754 08b4 0E       		.byte	0xe
- 3755 08b5 43       		.byte	0x43
- 3756 08b6 04060000 		.long	0x604
- 3757 08ba 15       		.uleb128 0x15
- 3758 08bb 76656300 		.string	"vec"
- 3759 08bf 0E       		.byte	0xe
- 3760 08c0 44       		.byte	0x44
- 3761 08c1 23070000 		.long	0x723
- 3762 08c5 00       		.byte	0x0
- 3763 08c6 1C       		.uleb128 0x1c
- 3764 08c7 00000000 		.long	.LASF121
- 3765 08cb 04       		.byte	0x4
- 3766 08cc 0F       		.byte	0xf
- 3767 08cd 5A       		.byte	0x5a
- 3768 08ce 57090000 		.long	0x957
- 3769 08d2 0D       		.uleb128 0xd
- 3770 08d3 00000000 		.long	.LASF99
- 3771 08d7 00       		.sleb128 0
- 3772 08d8 0D       		.uleb128 0xd
- 3773 08d9 00000000 		.long	.LASF100
- 3774 08dd 01       		.sleb128 1
- 3775 08de 0D       		.uleb128 0xd
- 3776 08df 00000000 		.long	.LASF101
- 3777 08e3 02       		.sleb128 2
- 3778 08e4 0D       		.uleb128 0xd
- 3779 08e5 00000000 		.long	.LASF102
- 3780 08e9 03       		.sleb128 3
- 3781 08ea 0D       		.uleb128 0xd
- 3782 08eb 00000000 		.long	.LASF103
- 3783 08ef 04       		.sleb128 4
- 3784 08f0 0D       		.uleb128 0xd
- 3785 08f1 00000000 		.long	.LASF104
- 3786 08f5 05       		.sleb128 5
- 3787 08f6 0D       		.uleb128 0xd
- 3788 08f7 00000000 		.long	.LASF105
- 3789 08fb 06       		.sleb128 6
-
GAS LISTING /tmp/ccXzRABk.s 			page 95
-
-
- 3790 08fc 0D       		.uleb128 0xd
- 3791 08fd 00000000 		.long	.LASF106
- 3792 0901 07       		.sleb128 7
- 3793 0902 0D       		.uleb128 0xd
- 3794 0903 00000000 		.long	.LASF107
- 3795 0907 08       		.sleb128 8
- 3796 0908 0D       		.uleb128 0xd
- 3797 0909 00000000 		.long	.LASF108
- 3798 090d 09       		.sleb128 9
- 3799 090e 0D       		.uleb128 0xd
- 3800 090f 00000000 		.long	.LASF109
- 3801 0913 0A       		.sleb128 10
- 3802 0914 0D       		.uleb128 0xd
- 3803 0915 00000000 		.long	.LASF110
- 3804 0919 0B       		.sleb128 11
- 3805 091a 0D       		.uleb128 0xd
- 3806 091b 00000000 		.long	.LASF111
- 3807 091f 0C       		.sleb128 12
- 3808 0920 0D       		.uleb128 0xd
- 3809 0921 00000000 		.long	.LASF112
- 3810 0925 0D       		.sleb128 13
- 3811 0926 0D       		.uleb128 0xd
- 3812 0927 00000000 		.long	.LASF113
- 3813 092b 0E       		.sleb128 14
- 3814 092c 0D       		.uleb128 0xd
- 3815 092d 00000000 		.long	.LASF114
- 3816 0931 0E       		.sleb128 14
- 3817 0932 0D       		.uleb128 0xd
- 3818 0933 00000000 		.long	.LASF115
- 3819 0937 0F       		.sleb128 15
- 3820 0938 0D       		.uleb128 0xd
- 3821 0939 00000000 		.long	.LASF116
- 3822 093d 10       		.sleb128 16
- 3823 093e 0D       		.uleb128 0xd
- 3824 093f 00000000 		.long	.LASF117
- 3825 0943 11       		.sleb128 17
- 3826 0944 0D       		.uleb128 0xd
- 3827 0945 00000000 		.long	.LASF118
- 3828 0949 12       		.sleb128 18
- 3829 094a 0D       		.uleb128 0xd
- 3830 094b 00000000 		.long	.LASF119
- 3831 094f 13       		.sleb128 19
- 3832 0950 0D       		.uleb128 0xd
- 3833 0951 00000000 		.long	.LASF120
- 3834 0955 14       		.sleb128 20
- 3835 0956 00       		.byte	0x0
- 3836 0957 1C       		.uleb128 0x1c
- 3837 0958 00000000 		.long	.LASF122
- 3838 095c 04       		.byte	0x4
- 3839 095d 0F       		.byte	0xf
- 3840 095e 77       		.byte	0x77
- 3841 095f DE0A0000 		.long	0xade
- 3842 0963 0D       		.uleb128 0xd
- 3843 0964 00000000 		.long	.LASF123
- 3844 0968 00       		.sleb128 0
- 3845 0969 0D       		.uleb128 0xd
- 3846 096a 00000000 		.long	.LASF124
-
GAS LISTING /tmp/ccXzRABk.s 			page 96
-
-
- 3847 096e 01       		.sleb128 1
- 3848 096f 0D       		.uleb128 0xd
- 3849 0970 00000000 		.long	.LASF125
- 3850 0974 02       		.sleb128 2
- 3851 0975 0D       		.uleb128 0xd
- 3852 0976 00000000 		.long	.LASF126
- 3853 097a 03       		.sleb128 3
- 3854 097b 0D       		.uleb128 0xd
- 3855 097c 00000000 		.long	.LASF127
- 3856 0980 04       		.sleb128 4
- 3857 0981 0D       		.uleb128 0xd
- 3858 0982 00000000 		.long	.LASF128
- 3859 0986 05       		.sleb128 5
- 3860 0987 0D       		.uleb128 0xd
- 3861 0988 00000000 		.long	.LASF129
- 3862 098c 06       		.sleb128 6
- 3863 098d 0D       		.uleb128 0xd
- 3864 098e 00000000 		.long	.LASF130
- 3865 0992 07       		.sleb128 7
- 3866 0993 0D       		.uleb128 0xd
- 3867 0994 00000000 		.long	.LASF131
- 3868 0998 08       		.sleb128 8
- 3869 0999 0D       		.uleb128 0xd
- 3870 099a 00000000 		.long	.LASF132
- 3871 099e 09       		.sleb128 9
- 3872 099f 0D       		.uleb128 0xd
- 3873 09a0 00000000 		.long	.LASF133
- 3874 09a4 0A       		.sleb128 10
- 3875 09a5 0D       		.uleb128 0xd
- 3876 09a6 00000000 		.long	.LASF134
- 3877 09aa 0B       		.sleb128 11
- 3878 09ab 0D       		.uleb128 0xd
- 3879 09ac 00000000 		.long	.LASF135
- 3880 09b0 0C       		.sleb128 12
- 3881 09b1 0D       		.uleb128 0xd
- 3882 09b2 00000000 		.long	.LASF136
- 3883 09b6 0D       		.sleb128 13
- 3884 09b7 0D       		.uleb128 0xd
- 3885 09b8 00000000 		.long	.LASF137
- 3886 09bc 0E       		.sleb128 14
- 3887 09bd 0D       		.uleb128 0xd
- 3888 09be 00000000 		.long	.LASF138
- 3889 09c2 0F       		.sleb128 15
- 3890 09c3 0D       		.uleb128 0xd
- 3891 09c4 00000000 		.long	.LASF139
- 3892 09c8 10       		.sleb128 16
- 3893 09c9 0D       		.uleb128 0xd
- 3894 09ca 00000000 		.long	.LASF140
- 3895 09ce 11       		.sleb128 17
- 3896 09cf 0D       		.uleb128 0xd
- 3897 09d0 00000000 		.long	.LASF141
- 3898 09d4 12       		.sleb128 18
- 3899 09d5 0D       		.uleb128 0xd
- 3900 09d6 00000000 		.long	.LASF142
- 3901 09da 13       		.sleb128 19
- 3902 09db 0D       		.uleb128 0xd
- 3903 09dc 00000000 		.long	.LASF143
-
GAS LISTING /tmp/ccXzRABk.s 			page 97
-
-
- 3904 09e0 14       		.sleb128 20
- 3905 09e1 0D       		.uleb128 0xd
- 3906 09e2 00000000 		.long	.LASF144
- 3907 09e6 15       		.sleb128 21
- 3908 09e7 0D       		.uleb128 0xd
- 3909 09e8 00000000 		.long	.LASF145
- 3910 09ec 16       		.sleb128 22
- 3911 09ed 0D       		.uleb128 0xd
- 3912 09ee 00000000 		.long	.LASF146
- 3913 09f2 17       		.sleb128 23
- 3914 09f3 0D       		.uleb128 0xd
- 3915 09f4 00000000 		.long	.LASF147
- 3916 09f8 18       		.sleb128 24
- 3917 09f9 0D       		.uleb128 0xd
- 3918 09fa 00000000 		.long	.LASF148
- 3919 09fe 19       		.sleb128 25
- 3920 09ff 0D       		.uleb128 0xd
- 3921 0a00 00000000 		.long	.LASF149
- 3922 0a04 1A       		.sleb128 26
- 3923 0a05 0D       		.uleb128 0xd
- 3924 0a06 00000000 		.long	.LASF150
- 3925 0a0a 1B       		.sleb128 27
- 3926 0a0b 0D       		.uleb128 0xd
- 3927 0a0c 00000000 		.long	.LASF151
- 3928 0a10 1C       		.sleb128 28
- 3929 0a11 0D       		.uleb128 0xd
- 3930 0a12 00000000 		.long	.LASF152
- 3931 0a16 1D       		.sleb128 29
- 3932 0a17 0D       		.uleb128 0xd
- 3933 0a18 00000000 		.long	.LASF153
- 3934 0a1c 1E       		.sleb128 30
- 3935 0a1d 0D       		.uleb128 0xd
- 3936 0a1e 00000000 		.long	.LASF154
- 3937 0a22 1F       		.sleb128 31
- 3938 0a23 0D       		.uleb128 0xd
- 3939 0a24 00000000 		.long	.LASF155
- 3940 0a28 20       		.sleb128 32
- 3941 0a29 0D       		.uleb128 0xd
- 3942 0a2a 00000000 		.long	.LASF156
- 3943 0a2e 21       		.sleb128 33
- 3944 0a2f 0D       		.uleb128 0xd
- 3945 0a30 00000000 		.long	.LASF157
- 3946 0a34 22       		.sleb128 34
- 3947 0a35 0D       		.uleb128 0xd
- 3948 0a36 00000000 		.long	.LASF158
- 3949 0a3a 23       		.sleb128 35
- 3950 0a3b 0D       		.uleb128 0xd
- 3951 0a3c 00000000 		.long	.LASF159
- 3952 0a40 24       		.sleb128 36
- 3953 0a41 0D       		.uleb128 0xd
- 3954 0a42 00000000 		.long	.LASF160
- 3955 0a46 25       		.sleb128 37
- 3956 0a47 0D       		.uleb128 0xd
- 3957 0a48 00000000 		.long	.LASF161
- 3958 0a4c 26       		.sleb128 38
- 3959 0a4d 0D       		.uleb128 0xd
- 3960 0a4e 00000000 		.long	.LASF162
-
GAS LISTING /tmp/ccXzRABk.s 			page 98
-
-
- 3961 0a52 27       		.sleb128 39
- 3962 0a53 0D       		.uleb128 0xd
- 3963 0a54 00000000 		.long	.LASF163
- 3964 0a58 28       		.sleb128 40
- 3965 0a59 0D       		.uleb128 0xd
- 3966 0a5a 00000000 		.long	.LASF164
- 3967 0a5e 29       		.sleb128 41
- 3968 0a5f 0D       		.uleb128 0xd
- 3969 0a60 00000000 		.long	.LASF165
- 3970 0a64 2A       		.sleb128 42
- 3971 0a65 0D       		.uleb128 0xd
- 3972 0a66 00000000 		.long	.LASF166
- 3973 0a6a 2B       		.sleb128 43
- 3974 0a6b 0D       		.uleb128 0xd
- 3975 0a6c 00000000 		.long	.LASF167
- 3976 0a70 2C       		.sleb128 44
- 3977 0a71 0D       		.uleb128 0xd
- 3978 0a72 00000000 		.long	.LASF168
- 3979 0a76 2D       		.sleb128 45
- 3980 0a77 0D       		.uleb128 0xd
- 3981 0a78 00000000 		.long	.LASF169
- 3982 0a7c 2E       		.sleb128 46
- 3983 0a7d 0D       		.uleb128 0xd
- 3984 0a7e 00000000 		.long	.LASF170
- 3985 0a82 2F       		.sleb128 47
- 3986 0a83 0D       		.uleb128 0xd
- 3987 0a84 00000000 		.long	.LASF171
- 3988 0a88 30       		.sleb128 48
- 3989 0a89 0D       		.uleb128 0xd
- 3990 0a8a 00000000 		.long	.LASF172
- 3991 0a8e 31       		.sleb128 49
- 3992 0a8f 0D       		.uleb128 0xd
- 3993 0a90 00000000 		.long	.LASF173
- 3994 0a94 32       		.sleb128 50
- 3995 0a95 0D       		.uleb128 0xd
- 3996 0a96 00000000 		.long	.LASF174
- 3997 0a9a 33       		.sleb128 51
- 3998 0a9b 0D       		.uleb128 0xd
- 3999 0a9c 00000000 		.long	.LASF175
- 4000 0aa0 34       		.sleb128 52
- 4001 0aa1 0D       		.uleb128 0xd
- 4002 0aa2 00000000 		.long	.LASF176
- 4003 0aa6 35       		.sleb128 53
- 4004 0aa7 0D       		.uleb128 0xd
- 4005 0aa8 00000000 		.long	.LASF177
- 4006 0aac 36       		.sleb128 54
- 4007 0aad 0D       		.uleb128 0xd
- 4008 0aae 00000000 		.long	.LASF178
- 4009 0ab2 36       		.sleb128 54
- 4010 0ab3 0D       		.uleb128 0xd
- 4011 0ab4 00000000 		.long	.LASF179
- 4012 0ab8 37       		.sleb128 55
- 4013 0ab9 0D       		.uleb128 0xd
- 4014 0aba 00000000 		.long	.LASF180
- 4015 0abe 38       		.sleb128 56
- 4016 0abf 0D       		.uleb128 0xd
- 4017 0ac0 00000000 		.long	.LASF181
-
GAS LISTING /tmp/ccXzRABk.s 			page 99
-
-
- 4018 0ac4 39       		.sleb128 57
- 4019 0ac5 0D       		.uleb128 0xd
- 4020 0ac6 00000000 		.long	.LASF182
- 4021 0aca 3A       		.sleb128 58
- 4022 0acb 0D       		.uleb128 0xd
- 4023 0acc 00000000 		.long	.LASF183
- 4024 0ad0 3B       		.sleb128 59
- 4025 0ad1 0D       		.uleb128 0xd
- 4026 0ad2 00000000 		.long	.LASF184
- 4027 0ad6 3C       		.sleb128 60
- 4028 0ad7 0D       		.uleb128 0xd
- 4029 0ad8 00000000 		.long	.LASF185
- 4030 0adc 3D       		.sleb128 61
- 4031 0add 00       		.byte	0x0
- 4032 0ade 1C       		.uleb128 0x1c
- 4033 0adf 00000000 		.long	.LASF186
- 4034 0ae3 04       		.byte	0x4
- 4035 0ae4 0F       		.byte	0xf
- 4036 0ae5 BD       		.byte	0xbd
- 4037 0ae6 940C0000 		.long	0xc94
- 4038 0aea 0D       		.uleb128 0xd
- 4039 0aeb 00000000 		.long	.LASF187
- 4040 0aef 00       		.sleb128 0
- 4041 0af0 0D       		.uleb128 0xd
- 4042 0af1 00000000 		.long	.LASF188
- 4043 0af5 01       		.sleb128 1
- 4044 0af6 0D       		.uleb128 0xd
- 4045 0af7 00000000 		.long	.LASF189
- 4046 0afb 02       		.sleb128 2
- 4047 0afc 0D       		.uleb128 0xd
- 4048 0afd 00000000 		.long	.LASF190
- 4049 0b01 03       		.sleb128 3
- 4050 0b02 0D       		.uleb128 0xd
- 4051 0b03 00000000 		.long	.LASF191
- 4052 0b07 04       		.sleb128 4
- 4053 0b08 0D       		.uleb128 0xd
- 4054 0b09 00000000 		.long	.LASF192
- 4055 0b0d 05       		.sleb128 5
- 4056 0b0e 0D       		.uleb128 0xd
- 4057 0b0f 00000000 		.long	.LASF193
- 4058 0b13 06       		.sleb128 6
- 4059 0b14 0D       		.uleb128 0xd
- 4060 0b15 00000000 		.long	.LASF194
- 4061 0b19 07       		.sleb128 7
- 4062 0b1a 0D       		.uleb128 0xd
- 4063 0b1b 00000000 		.long	.LASF195
- 4064 0b1f 08       		.sleb128 8
- 4065 0b20 0D       		.uleb128 0xd
- 4066 0b21 00000000 		.long	.LASF196
- 4067 0b25 09       		.sleb128 9
- 4068 0b26 0D       		.uleb128 0xd
- 4069 0b27 00000000 		.long	.LASF197
- 4070 0b2b 0A       		.sleb128 10
- 4071 0b2c 0D       		.uleb128 0xd
- 4072 0b2d 00000000 		.long	.LASF198
- 4073 0b31 0B       		.sleb128 11
- 4074 0b32 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccXzRABk.s 			page 100
-
-
- 4075 0b33 00000000 		.long	.LASF199
- 4076 0b37 0C       		.sleb128 12
- 4077 0b38 0D       		.uleb128 0xd
- 4078 0b39 00000000 		.long	.LASF200
- 4079 0b3d 0D       		.sleb128 13
- 4080 0b3e 0D       		.uleb128 0xd
- 4081 0b3f 00000000 		.long	.LASF201
- 4082 0b43 0E       		.sleb128 14
- 4083 0b44 0D       		.uleb128 0xd
- 4084 0b45 00000000 		.long	.LASF202
- 4085 0b49 0F       		.sleb128 15
- 4086 0b4a 0D       		.uleb128 0xd
- 4087 0b4b 00000000 		.long	.LASF203
- 4088 0b4f 10       		.sleb128 16
- 4089 0b50 0D       		.uleb128 0xd
- 4090 0b51 00000000 		.long	.LASF204
- 4091 0b55 11       		.sleb128 17
- 4092 0b56 0D       		.uleb128 0xd
- 4093 0b57 00000000 		.long	.LASF205
- 4094 0b5b 12       		.sleb128 18
- 4095 0b5c 0D       		.uleb128 0xd
- 4096 0b5d 00000000 		.long	.LASF206
- 4097 0b61 13       		.sleb128 19
- 4098 0b62 0D       		.uleb128 0xd
- 4099 0b63 00000000 		.long	.LASF207
- 4100 0b67 14       		.sleb128 20
- 4101 0b68 0D       		.uleb128 0xd
- 4102 0b69 00000000 		.long	.LASF208
- 4103 0b6d 15       		.sleb128 21
- 4104 0b6e 0D       		.uleb128 0xd
- 4105 0b6f 00000000 		.long	.LASF209
- 4106 0b73 16       		.sleb128 22
- 4107 0b74 0D       		.uleb128 0xd
- 4108 0b75 00000000 		.long	.LASF210
- 4109 0b79 17       		.sleb128 23
- 4110 0b7a 0D       		.uleb128 0xd
- 4111 0b7b 00000000 		.long	.LASF211
- 4112 0b7f 18       		.sleb128 24
- 4113 0b80 0D       		.uleb128 0xd
- 4114 0b81 00000000 		.long	.LASF212
- 4115 0b85 19       		.sleb128 25
- 4116 0b86 0D       		.uleb128 0xd
- 4117 0b87 00000000 		.long	.LASF213
- 4118 0b8b 1A       		.sleb128 26
- 4119 0b8c 0D       		.uleb128 0xd
- 4120 0b8d 00000000 		.long	.LASF214
- 4121 0b91 1B       		.sleb128 27
- 4122 0b92 0D       		.uleb128 0xd
- 4123 0b93 00000000 		.long	.LASF215
- 4124 0b97 1C       		.sleb128 28
- 4125 0b98 0D       		.uleb128 0xd
- 4126 0b99 00000000 		.long	.LASF216
- 4127 0b9d 1D       		.sleb128 29
- 4128 0b9e 0D       		.uleb128 0xd
- 4129 0b9f 00000000 		.long	.LASF217
- 4130 0ba3 1E       		.sleb128 30
- 4131 0ba4 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccXzRABk.s 			page 101
-
-
- 4132 0ba5 00000000 		.long	.LASF218
- 4133 0ba9 1F       		.sleb128 31
- 4134 0baa 0D       		.uleb128 0xd
- 4135 0bab 00000000 		.long	.LASF219
- 4136 0baf 20       		.sleb128 32
- 4137 0bb0 0D       		.uleb128 0xd
- 4138 0bb1 00000000 		.long	.LASF220
- 4139 0bb5 21       		.sleb128 33
- 4140 0bb6 0D       		.uleb128 0xd
- 4141 0bb7 00000000 		.long	.LASF221
- 4142 0bbb 22       		.sleb128 34
- 4143 0bbc 0D       		.uleb128 0xd
- 4144 0bbd 00000000 		.long	.LASF222
- 4145 0bc1 23       		.sleb128 35
- 4146 0bc2 0D       		.uleb128 0xd
- 4147 0bc3 00000000 		.long	.LASF223
- 4148 0bc7 24       		.sleb128 36
- 4149 0bc8 0D       		.uleb128 0xd
- 4150 0bc9 00000000 		.long	.LASF224
- 4151 0bcd 25       		.sleb128 37
- 4152 0bce 0D       		.uleb128 0xd
- 4153 0bcf 00000000 		.long	.LASF225
- 4154 0bd3 26       		.sleb128 38
- 4155 0bd4 0D       		.uleb128 0xd
- 4156 0bd5 00000000 		.long	.LASF226
- 4157 0bd9 27       		.sleb128 39
- 4158 0bda 0D       		.uleb128 0xd
- 4159 0bdb 00000000 		.long	.LASF227
- 4160 0bdf 28       		.sleb128 40
- 4161 0be0 0D       		.uleb128 0xd
- 4162 0be1 00000000 		.long	.LASF228
- 4163 0be5 29       		.sleb128 41
- 4164 0be6 0D       		.uleb128 0xd
- 4165 0be7 00000000 		.long	.LASF229
- 4166 0beb 2A       		.sleb128 42
- 4167 0bec 0D       		.uleb128 0xd
- 4168 0bed 00000000 		.long	.LASF230
- 4169 0bf1 2B       		.sleb128 43
- 4170 0bf2 0D       		.uleb128 0xd
- 4171 0bf3 00000000 		.long	.LASF231
- 4172 0bf7 2C       		.sleb128 44
- 4173 0bf8 0D       		.uleb128 0xd
- 4174 0bf9 00000000 		.long	.LASF232
- 4175 0bfd 2D       		.sleb128 45
- 4176 0bfe 0D       		.uleb128 0xd
- 4177 0bff 00000000 		.long	.LASF233
- 4178 0c03 2E       		.sleb128 46
- 4179 0c04 0D       		.uleb128 0xd
- 4180 0c05 00000000 		.long	.LASF234
- 4181 0c09 2F       		.sleb128 47
- 4182 0c0a 0D       		.uleb128 0xd
- 4183 0c0b 00000000 		.long	.LASF235
- 4184 0c0f 30       		.sleb128 48
- 4185 0c10 0D       		.uleb128 0xd
- 4186 0c11 00000000 		.long	.LASF236
- 4187 0c15 31       		.sleb128 49
- 4188 0c16 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccXzRABk.s 			page 102
-
-
- 4189 0c17 00000000 		.long	.LASF237
- 4190 0c1b 32       		.sleb128 50
- 4191 0c1c 0D       		.uleb128 0xd
- 4192 0c1d 00000000 		.long	.LASF238
- 4193 0c21 33       		.sleb128 51
- 4194 0c22 0D       		.uleb128 0xd
- 4195 0c23 00000000 		.long	.LASF239
- 4196 0c27 34       		.sleb128 52
- 4197 0c28 0D       		.uleb128 0xd
- 4198 0c29 00000000 		.long	.LASF240
- 4199 0c2d 35       		.sleb128 53
- 4200 0c2e 0D       		.uleb128 0xd
- 4201 0c2f 00000000 		.long	.LASF241
- 4202 0c33 36       		.sleb128 54
- 4203 0c34 0D       		.uleb128 0xd
- 4204 0c35 00000000 		.long	.LASF242
- 4205 0c39 37       		.sleb128 55
- 4206 0c3a 0D       		.uleb128 0xd
- 4207 0c3b 00000000 		.long	.LASF243
- 4208 0c3f 38       		.sleb128 56
- 4209 0c40 0D       		.uleb128 0xd
- 4210 0c41 00000000 		.long	.LASF244
- 4211 0c45 39       		.sleb128 57
- 4212 0c46 0D       		.uleb128 0xd
- 4213 0c47 00000000 		.long	.LASF245
- 4214 0c4b 3A       		.sleb128 58
- 4215 0c4c 0D       		.uleb128 0xd
- 4216 0c4d 00000000 		.long	.LASF246
- 4217 0c51 3A       		.sleb128 58
- 4218 0c52 0D       		.uleb128 0xd
- 4219 0c53 00000000 		.long	.LASF247
- 4220 0c57 3B       		.sleb128 59
- 4221 0c58 0D       		.uleb128 0xd
- 4222 0c59 00000000 		.long	.LASF248
- 4223 0c5d 3C       		.sleb128 60
- 4224 0c5e 0D       		.uleb128 0xd
- 4225 0c5f 00000000 		.long	.LASF249
- 4226 0c63 3D       		.sleb128 61
- 4227 0c64 0D       		.uleb128 0xd
- 4228 0c65 00000000 		.long	.LASF250
- 4229 0c69 3E       		.sleb128 62
- 4230 0c6a 0D       		.uleb128 0xd
- 4231 0c6b 00000000 		.long	.LASF251
- 4232 0c6f 3F       		.sleb128 63
- 4233 0c70 0D       		.uleb128 0xd
- 4234 0c71 00000000 		.long	.LASF252
- 4235 0c75 C000     		.sleb128 64
- 4236 0c77 0D       		.uleb128 0xd
- 4237 0c78 00000000 		.long	.LASF253
- 4238 0c7c C100     		.sleb128 65
- 4239 0c7e 0D       		.uleb128 0xd
- 4240 0c7f 00000000 		.long	.LASF254
- 4241 0c83 C200     		.sleb128 66
- 4242 0c85 0D       		.uleb128 0xd
- 4243 0c86 00000000 		.long	.LASF255
- 4244 0c8a C300     		.sleb128 67
- 4245 0c8c 0D       		.uleb128 0xd
-
GAS LISTING /tmp/ccXzRABk.s 			page 103
-
-
- 4246 0c8d 00000000 		.long	.LASF256
- 4247 0c91 C400     		.sleb128 68
- 4248 0c93 00       		.byte	0x0
- 4249 0c94 1D       		.uleb128 0x1d
- 4250 0c95 00000000 		.long	.LASF257
- 4251 0c99 04       		.byte	0x4
- 4252 0c9a 0F       		.byte	0xf
- 4253 0c9b 0A01     		.value	0x10a
- 4254 0c9d 930D0000 		.long	0xd93
- 4255 0ca1 0D       		.uleb128 0xd
- 4256 0ca2 00000000 		.long	.LASF258
- 4257 0ca6 00       		.sleb128 0
- 4258 0ca7 0D       		.uleb128 0xd
- 4259 0ca8 00000000 		.long	.LASF259
- 4260 0cac 3D       		.sleb128 61
- 4261 0cad 0D       		.uleb128 0xd
- 4262 0cae 00000000 		.long	.LASF260
- 4263 0cb2 3E       		.sleb128 62
- 4264 0cb3 0D       		.uleb128 0xd
- 4265 0cb4 00000000 		.long	.LASF261
- 4266 0cb8 3F       		.sleb128 63
- 4267 0cb9 0D       		.uleb128 0xd
- 4268 0cba 00000000 		.long	.LASF262
- 4269 0cbe C000     		.sleb128 64
- 4270 0cc0 0D       		.uleb128 0xd
- 4271 0cc1 00000000 		.long	.LASF263
- 4272 0cc5 C100     		.sleb128 65
- 4273 0cc7 0D       		.uleb128 0xd
- 4274 0cc8 00000000 		.long	.LASF264
- 4275 0ccc C200     		.sleb128 66
- 4276 0cce 0D       		.uleb128 0xd
- 4277 0ccf 00000000 		.long	.LASF265
- 4278 0cd3 C300     		.sleb128 67
- 4279 0cd5 0D       		.uleb128 0xd
- 4280 0cd6 00000000 		.long	.LASF266
- 4281 0cda C400     		.sleb128 68
- 4282 0cdc 0D       		.uleb128 0xd
- 4283 0cdd 00000000 		.long	.LASF267
- 4284 0ce1 C500     		.sleb128 69
- 4285 0ce3 0D       		.uleb128 0xd
- 4286 0ce4 00000000 		.long	.LASF268
- 4287 0ce8 C600     		.sleb128 70
- 4288 0cea 0D       		.uleb128 0xd
- 4289 0ceb 00000000 		.long	.LASF269
- 4290 0cef C700     		.sleb128 71
- 4291 0cf1 0D       		.uleb128 0xd
- 4292 0cf2 00000000 		.long	.LASF270
- 4293 0cf6 C800     		.sleb128 72
- 4294 0cf8 0D       		.uleb128 0xd
- 4295 0cf9 00000000 		.long	.LASF271
- 4296 0cfd C900     		.sleb128 73
- 4297 0cff 0D       		.uleb128 0xd
- 4298 0d00 00000000 		.long	.LASF272
- 4299 0d04 CA00     		.sleb128 74
- 4300 0d06 0D       		.uleb128 0xd
- 4301 0d07 00000000 		.long	.LASF273
- 4302 0d0b CB00     		.sleb128 75
-
GAS LISTING /tmp/ccXzRABk.s 			page 104
-
-
- 4303 0d0d 0D       		.uleb128 0xd
- 4304 0d0e 00000000 		.long	.LASF274
- 4305 0d12 CC00     		.sleb128 76
- 4306 0d14 0D       		.uleb128 0xd
- 4307 0d15 00000000 		.long	.LASF275
- 4308 0d19 CD00     		.sleb128 77
- 4309 0d1b 0D       		.uleb128 0xd
- 4310 0d1c 00000000 		.long	.LASF276
- 4311 0d20 CE00     		.sleb128 78
- 4312 0d22 0D       		.uleb128 0xd
- 4313 0d23 00000000 		.long	.LASF277
- 4314 0d27 CF00     		.sleb128 79
- 4315 0d29 0D       		.uleb128 0xd
- 4316 0d2a 00000000 		.long	.LASF278
- 4317 0d2e D000     		.sleb128 80
- 4318 0d30 0D       		.uleb128 0xd
- 4319 0d31 00000000 		.long	.LASF279
- 4320 0d35 D100     		.sleb128 81
- 4321 0d37 0D       		.uleb128 0xd
- 4322 0d38 00000000 		.long	.LASF280
- 4323 0d3c D100     		.sleb128 81
- 4324 0d3e 0D       		.uleb128 0xd
- 4325 0d3f 00000000 		.long	.LASF281
- 4326 0d43 D200     		.sleb128 82
- 4327 0d45 0D       		.uleb128 0xd
- 4328 0d46 00000000 		.long	.LASF282
- 4329 0d4a D300     		.sleb128 83
- 4330 0d4c 0D       		.uleb128 0xd
- 4331 0d4d 00000000 		.long	.LASF283
- 4332 0d51 D400     		.sleb128 84
- 4333 0d53 0D       		.uleb128 0xd
- 4334 0d54 00000000 		.long	.LASF284
- 4335 0d58 D500     		.sleb128 85
- 4336 0d5a 0D       		.uleb128 0xd
- 4337 0d5b 00000000 		.long	.LASF285
- 4338 0d5f D600     		.sleb128 86
- 4339 0d61 0D       		.uleb128 0xd
- 4340 0d62 00000000 		.long	.LASF286
- 4341 0d66 D700     		.sleb128 87
- 4342 0d68 0D       		.uleb128 0xd
- 4343 0d69 00000000 		.long	.LASF287
- 4344 0d6d D800     		.sleb128 88
- 4345 0d6f 0D       		.uleb128 0xd
- 4346 0d70 00000000 		.long	.LASF288
- 4347 0d74 D900     		.sleb128 89
- 4348 0d76 0D       		.uleb128 0xd
- 4349 0d77 00000000 		.long	.LASF289
- 4350 0d7b DA00     		.sleb128 90
- 4351 0d7d 0D       		.uleb128 0xd
- 4352 0d7e 00000000 		.long	.LASF290
- 4353 0d82 DB00     		.sleb128 91
- 4354 0d84 0D       		.uleb128 0xd
- 4355 0d85 00000000 		.long	.LASF291
- 4356 0d89 DC00     		.sleb128 92
- 4357 0d8b 0D       		.uleb128 0xd
- 4358 0d8c 00000000 		.long	.LASF292
- 4359 0d90 DD00     		.sleb128 93
-
GAS LISTING /tmp/ccXzRABk.s 			page 105
-
-
- 4360 0d92 00       		.byte	0x0
- 4361 0d93 1D       		.uleb128 0x1d
- 4362 0d94 00000000 		.long	.LASF293
- 4363 0d98 04       		.byte	0x4
- 4364 0d99 0F       		.byte	0xf
- 4365 0d9a 3401     		.value	0x134
- 4366 0d9c D30E0000 		.long	0xed3
- 4367 0da0 0D       		.uleb128 0xd
- 4368 0da1 00000000 		.long	.LASF294
- 4369 0da5 00       		.sleb128 0
- 4370 0da6 0D       		.uleb128 0xd
- 4371 0da7 00000000 		.long	.LASF295
- 4372 0dab 01       		.sleb128 1
- 4373 0dac 0D       		.uleb128 0xd
- 4374 0dad 00000000 		.long	.LASF296
- 4375 0db1 02       		.sleb128 2
- 4376 0db2 0D       		.uleb128 0xd
- 4377 0db3 00000000 		.long	.LASF297
- 4378 0db7 03       		.sleb128 3
- 4379 0db8 0D       		.uleb128 0xd
- 4380 0db9 00000000 		.long	.LASF298
- 4381 0dbd 04       		.sleb128 4
- 4382 0dbe 0D       		.uleb128 0xd
- 4383 0dbf 00000000 		.long	.LASF299
- 4384 0dc3 05       		.sleb128 5
- 4385 0dc4 0D       		.uleb128 0xd
- 4386 0dc5 00000000 		.long	.LASF300
- 4387 0dc9 06       		.sleb128 6
- 4388 0dca 0D       		.uleb128 0xd
- 4389 0dcb 00000000 		.long	.LASF301
- 4390 0dcf 07       		.sleb128 7
- 4391 0dd0 0D       		.uleb128 0xd
- 4392 0dd1 00000000 		.long	.LASF302
- 4393 0dd5 08       		.sleb128 8
- 4394 0dd6 0D       		.uleb128 0xd
- 4395 0dd7 00000000 		.long	.LASF303
- 4396 0ddb 09       		.sleb128 9
- 4397 0ddc 0D       		.uleb128 0xd
- 4398 0ddd 00000000 		.long	.LASF304
- 4399 0de1 0A       		.sleb128 10
- 4400 0de2 0D       		.uleb128 0xd
- 4401 0de3 00000000 		.long	.LASF305
- 4402 0de7 0B       		.sleb128 11
- 4403 0de8 0D       		.uleb128 0xd
- 4404 0de9 00000000 		.long	.LASF306
- 4405 0ded 0C       		.sleb128 12
- 4406 0dee 0D       		.uleb128 0xd
- 4407 0def 00000000 		.long	.LASF307
- 4408 0df3 0D       		.sleb128 13
- 4409 0df4 0D       		.uleb128 0xd
- 4410 0df5 00000000 		.long	.LASF308
- 4411 0df9 0E       		.sleb128 14
- 4412 0dfa 0D       		.uleb128 0xd
- 4413 0dfb 00000000 		.long	.LASF309
- 4414 0dff 0F       		.sleb128 15
- 4415 0e00 0D       		.uleb128 0xd
- 4416 0e01 00000000 		.long	.LASF310
-
GAS LISTING /tmp/ccXzRABk.s 			page 106
-
-
- 4417 0e05 10       		.sleb128 16
- 4418 0e06 0D       		.uleb128 0xd
- 4419 0e07 00000000 		.long	.LASF311
- 4420 0e0b 11       		.sleb128 17
- 4421 0e0c 0D       		.uleb128 0xd
- 4422 0e0d 00000000 		.long	.LASF312
- 4423 0e11 12       		.sleb128 18
- 4424 0e12 0D       		.uleb128 0xd
- 4425 0e13 00000000 		.long	.LASF313
- 4426 0e17 13       		.sleb128 19
- 4427 0e18 0D       		.uleb128 0xd
- 4428 0e19 00000000 		.long	.LASF314
- 4429 0e1d 14       		.sleb128 20
- 4430 0e1e 0D       		.uleb128 0xd
- 4431 0e1f 00000000 		.long	.LASF315
- 4432 0e23 15       		.sleb128 21
- 4433 0e24 0D       		.uleb128 0xd
- 4434 0e25 00000000 		.long	.LASF316
- 4435 0e29 16       		.sleb128 22
- 4436 0e2a 0D       		.uleb128 0xd
- 4437 0e2b 00000000 		.long	.LASF317
- 4438 0e2f 17       		.sleb128 23
- 4439 0e30 0D       		.uleb128 0xd
- 4440 0e31 00000000 		.long	.LASF318
- 4441 0e35 18       		.sleb128 24
- 4442 0e36 0D       		.uleb128 0xd
- 4443 0e37 00000000 		.long	.LASF319
- 4444 0e3b 19       		.sleb128 25
- 4445 0e3c 0D       		.uleb128 0xd
- 4446 0e3d 00000000 		.long	.LASF320
- 4447 0e41 1A       		.sleb128 26
- 4448 0e42 0D       		.uleb128 0xd
- 4449 0e43 00000000 		.long	.LASF321
- 4450 0e47 1B       		.sleb128 27
- 4451 0e48 0D       		.uleb128 0xd
- 4452 0e49 00000000 		.long	.LASF322
- 4453 0e4d 1C       		.sleb128 28
- 4454 0e4e 0D       		.uleb128 0xd
- 4455 0e4f 00000000 		.long	.LASF323
- 4456 0e53 1D       		.sleb128 29
- 4457 0e54 0D       		.uleb128 0xd
- 4458 0e55 00000000 		.long	.LASF324
- 4459 0e59 1E       		.sleb128 30
- 4460 0e5a 0D       		.uleb128 0xd
- 4461 0e5b 00000000 		.long	.LASF325
- 4462 0e5f 1F       		.sleb128 31
- 4463 0e60 0D       		.uleb128 0xd
- 4464 0e61 00000000 		.long	.LASF326
- 4465 0e65 20       		.sleb128 32
- 4466 0e66 0D       		.uleb128 0xd
- 4467 0e67 00000000 		.long	.LASF327
- 4468 0e6b 21       		.sleb128 33
- 4469 0e6c 0D       		.uleb128 0xd
- 4470 0e6d 00000000 		.long	.LASF328
- 4471 0e71 22       		.sleb128 34
- 4472 0e72 0D       		.uleb128 0xd
- 4473 0e73 00000000 		.long	.LASF329
-
GAS LISTING /tmp/ccXzRABk.s 			page 107
-
-
- 4474 0e77 23       		.sleb128 35
- 4475 0e78 0D       		.uleb128 0xd
- 4476 0e79 00000000 		.long	.LASF330
- 4477 0e7d 24       		.sleb128 36
- 4478 0e7e 0D       		.uleb128 0xd
- 4479 0e7f 00000000 		.long	.LASF331
- 4480 0e83 25       		.sleb128 37
- 4481 0e84 0D       		.uleb128 0xd
- 4482 0e85 00000000 		.long	.LASF332
- 4483 0e89 26       		.sleb128 38
- 4484 0e8a 0D       		.uleb128 0xd
- 4485 0e8b 00000000 		.long	.LASF333
- 4486 0e8f 27       		.sleb128 39
- 4487 0e90 0D       		.uleb128 0xd
- 4488 0e91 00000000 		.long	.LASF334
- 4489 0e95 28       		.sleb128 40
- 4490 0e96 0D       		.uleb128 0xd
- 4491 0e97 00000000 		.long	.LASF335
- 4492 0e9b 29       		.sleb128 41
- 4493 0e9c 0D       		.uleb128 0xd
- 4494 0e9d 00000000 		.long	.LASF336
- 4495 0ea1 29       		.sleb128 41
- 4496 0ea2 0D       		.uleb128 0xd
- 4497 0ea3 00000000 		.long	.LASF337
- 4498 0ea7 2A       		.sleb128 42
- 4499 0ea8 0D       		.uleb128 0xd
- 4500 0ea9 00000000 		.long	.LASF338
- 4501 0ead 2B       		.sleb128 43
- 4502 0eae 0D       		.uleb128 0xd
- 4503 0eaf 00000000 		.long	.LASF339
- 4504 0eb3 2C       		.sleb128 44
- 4505 0eb4 0D       		.uleb128 0xd
- 4506 0eb5 00000000 		.long	.LASF340
- 4507 0eb9 2D       		.sleb128 45
- 4508 0eba 0D       		.uleb128 0xd
- 4509 0ebb 00000000 		.long	.LASF341
- 4510 0ebf 2E       		.sleb128 46
- 4511 0ec0 0D       		.uleb128 0xd
- 4512 0ec1 00000000 		.long	.LASF342
- 4513 0ec5 2F       		.sleb128 47
- 4514 0ec6 0D       		.uleb128 0xd
- 4515 0ec7 00000000 		.long	.LASF343
- 4516 0ecb 30       		.sleb128 48
- 4517 0ecc 0D       		.uleb128 0xd
- 4518 0ecd 00000000 		.long	.LASF344
- 4519 0ed1 31       		.sleb128 49
- 4520 0ed2 00       		.byte	0x0
- 4521 0ed3 1E       		.uleb128 0x1e
- 4522 0ed4 00000000 		.long	.LASF347
- 4523 0ed8 01       		.byte	0x1
- 4524 0ed9 4B       		.byte	0x4b
- 4525 0eda 01       		.byte	0x1
- 4526 0edb 3D050000 		.long	0x53d
- 4527 0edf 00000000 		.quad	.LFB590
- 4527      00000000 
- 4528 0ee7 00000000 		.quad	.LFE590
- 4528      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 108
-
-
- 4529 0eef 00000000 		.long	.LLST0
- 4530 0ef3 130F0000 		.long	0xf13
- 4531 0ef7 1F       		.uleb128 0x1f
- 4532 0ef8 00000000 		.long	.LASF345
- 4533 0efc 01       		.byte	0x1
- 4534 0efd 4B       		.byte	0x4b
- 4535 0efe 1F040000 		.long	0x41f
- 4536 0f02 02       		.byte	0x2
- 4537 0f03 91       		.byte	0x91
- 4538 0f04 68       		.sleb128 -24
- 4539 0f05 20       		.uleb128 0x20
- 4540 0f06 637600   		.string	"cv"
- 4541 0f09 01       		.byte	0x1
- 4542 0f0a 4E       		.byte	0x4e
- 4543 0f0b 3D050000 		.long	0x53d
- 4544 0f0f 02       		.byte	0x2
- 4545 0f10 76       		.byte	0x76
- 4546 0f11 60       		.sleb128 -32
- 4547 0f12 00       		.byte	0x0
- 4548 0f13 21       		.uleb128 0x21
- 4549 0f14 00000000 		.long	.LASF395
- 4550 0f18 01       		.byte	0x1
- 4551 0f19 62       		.byte	0x62
- 4552 0f1a 01       		.byte	0x1
- 4553 0f1b 00000000 		.quad	.LFB591
- 4553      00000000 
- 4554 0f23 00000000 		.quad	.LFE591
- 4554      00000000 
- 4555 0f2b 00000000 		.long	.LLST1
- 4556 0f2f 5D0F0000 		.long	0xf5d
- 4557 0f33 22       		.uleb128 0x22
- 4558 0f34 637600   		.string	"cv"
- 4559 0f37 01       		.byte	0x1
- 4560 0f38 62       		.byte	0x62
- 4561 0f39 5D0F0000 		.long	0xf5d
- 4562 0f3d 02       		.byte	0x2
- 4563 0f3e 91       		.byte	0x91
- 4564 0f3f 60       		.sleb128 -32
- 4565 0f40 1F       		.uleb128 0x1f
- 4566 0f41 00000000 		.long	.LASF346
- 4567 0f45 01       		.byte	0x1
- 4568 0f46 62       		.byte	0x62
- 4569 0f47 B4000000 		.long	0xb4
- 4570 0f4b 02       		.byte	0x2
- 4571 0f4c 91       		.byte	0x91
- 4572 0f4d 58       		.sleb128 -40
- 4573 0f4e 20       		.uleb128 0x20
- 4574 0f4f 72637600 		.string	"rcv"
- 4575 0f53 01       		.byte	0x1
- 4576 0f54 65       		.byte	0x65
- 4577 0f55 3D050000 		.long	0x53d
- 4578 0f59 02       		.byte	0x2
- 4579 0f5a 76       		.byte	0x76
- 4580 0f5b 50       		.sleb128 -48
- 4581 0f5c 00       		.byte	0x0
- 4582 0f5d 0B       		.uleb128 0xb
- 4583 0f5e 3D050000 		.long	0x53d
-
GAS LISTING /tmp/ccXzRABk.s 			page 109
-
-
- 4584 0f62 1E       		.uleb128 0x1e
- 4585 0f63 00000000 		.long	.LASF348
- 4586 0f67 01       		.byte	0x1
- 4587 0f68 71       		.byte	0x71
- 4588 0f69 01       		.byte	0x1
- 4589 0f6a 7B000000 		.long	0x7b
- 4590 0f6e 00000000 		.quad	.LFB592
- 4590      00000000 
- 4591 0f76 00000000 		.quad	.LFE592
- 4591      00000000 
- 4592 0f7e 00000000 		.long	.LLST2
- 4593 0f82 A20F0000 		.long	0xfa2
- 4594 0f86 1F       		.uleb128 0x1f
- 4595 0f87 00000000 		.long	.LASF349
- 4596 0f8b 01       		.byte	0x1
- 4597 0f8c 71       		.byte	0x71
- 4598 0f8d DE030000 		.long	0x3de
- 4599 0f91 02       		.byte	0x2
- 4600 0f92 91       		.byte	0x91
- 4601 0f93 58       		.sleb128 -40
- 4602 0f94 20       		.uleb128 0x20
- 4603 0f95 726300   		.string	"rc"
- 4604 0f98 01       		.byte	0x1
- 4605 0f99 73       		.byte	0x73
- 4606 0f9a 7B000000 		.long	0x7b
- 4607 0f9e 02       		.byte	0x2
- 4608 0f9f 91       		.byte	0x91
- 4609 0fa0 6C       		.sleb128 -20
- 4610 0fa1 00       		.byte	0x0
- 4611 0fa2 1E       		.uleb128 0x1e
- 4612 0fa3 00000000 		.long	.LASF350
- 4613 0fa7 01       		.byte	0x1
- 4614 0fa8 7E       		.byte	0x7e
- 4615 0fa9 01       		.byte	0x1
- 4616 0faa 7B000000 		.long	0x7b
- 4617 0fae 00000000 		.quad	.LFB593
- 4617      00000000 
- 4618 0fb6 00000000 		.quad	.LFE593
- 4618      00000000 
- 4619 0fbe 00000000 		.long	.LLST3
- 4620 0fc2 27100000 		.long	0x1027
- 4621 0fc6 1F       		.uleb128 0x1f
- 4622 0fc7 00000000 		.long	.LASF349
- 4623 0fcb 01       		.byte	0x1
- 4624 0fcc 7E       		.byte	0x7e
- 4625 0fcd DE030000 		.long	0x3de
- 4626 0fd1 02       		.byte	0x2
- 4627 0fd2 91       		.byte	0x91
- 4628 0fd3 48       		.sleb128 -56
- 4629 0fd4 1F       		.uleb128 0x1f
- 4630 0fd5 00000000 		.long	.LASF351
- 4631 0fd9 01       		.byte	0x1
- 4632 0fda 7F       		.byte	0x7f
- 4633 0fdb B6000000 		.long	0xb6
- 4634 0fdf 02       		.byte	0x2
- 4635 0fe0 91       		.byte	0x91
- 4636 0fe1 40       		.sleb128 -64
-
GAS LISTING /tmp/ccXzRABk.s 			page 110
-
-
- 4637 0fe2 1F       		.uleb128 0x1f
- 4638 0fe3 00000000 		.long	.LASF352
- 4639 0fe7 01       		.byte	0x1
- 4640 0fe8 80       		.byte	0x80
- 4641 0fe9 62000000 		.long	0x62
- 4642 0fed 03       		.byte	0x3
- 4643 0fee 91       		.byte	0x91
- 4644 0fef BC7F     		.sleb128 -68
- 4645 0ff1 20       		.uleb128 0x20
- 4646 0ff2 726300   		.string	"rc"
- 4647 0ff5 01       		.byte	0x1
- 4648 0ff6 82       		.byte	0x82
- 4649 0ff7 7B000000 		.long	0x7b
- 4650 0ffb 02       		.byte	0x2
- 4651 0ffc 91       		.byte	0x91
- 4652 0ffd 5C       		.sleb128 -36
- 4653 0ffe 23       		.uleb128 0x23
- 4654 0fff 00000000 		.long	.LASF353
- 4655 1003 37100000 		.long	0x1037
- 4656 1007 01       		.byte	0x1
- 4657 1008 09       		.byte	0x9
- 4658 1009 03       		.byte	0x3
- 4659 100a 00000000 		.quad	__PRETTY_FUNCTION__.7218
- 4659      00000000 
- 4660 1012 23       		.uleb128 0x23
- 4661 1013 00000000 		.long	.LASF354
- 4662 1017 3C100000 		.long	0x103c
- 4663 101b 01       		.byte	0x1
- 4664 101c 09       		.byte	0x9
- 4665 101d 03       		.byte	0x3
- 4666 101e 00000000 		.quad	__func__.7220
- 4666      00000000 
- 4667 1026 00       		.byte	0x0
- 4668 1027 1B       		.uleb128 0x1b
- 4669 1028 C1000000 		.long	0xc1
- 4670 102c 37100000 		.long	0x1037
- 4671 1030 17       		.uleb128 0x17
- 4672 1031 B1000000 		.long	0xb1
- 4673 1035 1A       		.byte	0x1a
- 4674 1036 00       		.byte	0x0
- 4675 1037 0B       		.uleb128 0xb
- 4676 1038 27100000 		.long	0x1027
- 4677 103c 0B       		.uleb128 0xb
- 4678 103d 27100000 		.long	0x1027
- 4679 1041 1E       		.uleb128 0x1e
- 4680 1042 00000000 		.long	.LASF355
- 4681 1046 01       		.byte	0x1
- 4682 1047 97       		.byte	0x97
- 4683 1048 01       		.byte	0x1
- 4684 1049 7B000000 		.long	0x7b
- 4685 104d 00000000 		.quad	.LFB594
- 4685      00000000 
- 4686 1055 00000000 		.quad	.LFE594
- 4686      00000000 
- 4687 105d 00000000 		.long	.LLST4
- 4688 1061 C6100000 		.long	0x10c6
- 4689 1065 1F       		.uleb128 0x1f
-
GAS LISTING /tmp/ccXzRABk.s 			page 111
-
-
- 4690 1066 00000000 		.long	.LASF349
- 4691 106a 01       		.byte	0x1
- 4692 106b 97       		.byte	0x97
- 4693 106c DE030000 		.long	0x3de
- 4694 1070 02       		.byte	0x2
- 4695 1071 91       		.byte	0x91
- 4696 1072 48       		.sleb128 -56
- 4697 1073 1F       		.uleb128 0x1f
- 4698 1074 00000000 		.long	.LASF351
- 4699 1078 01       		.byte	0x1
- 4700 1079 98       		.byte	0x98
- 4701 107a B6000000 		.long	0xb6
- 4702 107e 02       		.byte	0x2
- 4703 107f 91       		.byte	0x91
- 4704 1080 40       		.sleb128 -64
- 4705 1081 1F       		.uleb128 0x1f
- 4706 1082 00000000 		.long	.LASF352
- 4707 1086 01       		.byte	0x1
- 4708 1087 99       		.byte	0x99
- 4709 1088 62000000 		.long	0x62
- 4710 108c 03       		.byte	0x3
- 4711 108d 91       		.byte	0x91
- 4712 108e BC7F     		.sleb128 -68
- 4713 1090 20       		.uleb128 0x20
- 4714 1091 726300   		.string	"rc"
- 4715 1094 01       		.byte	0x1
- 4716 1095 9B       		.byte	0x9b
- 4717 1096 7B000000 		.long	0x7b
- 4718 109a 02       		.byte	0x2
- 4719 109b 91       		.byte	0x91
- 4720 109c 5C       		.sleb128 -36
- 4721 109d 23       		.uleb128 0x23
- 4722 109e 00000000 		.long	.LASF353
- 4723 10a2 C6100000 		.long	0x10c6
- 4724 10a6 01       		.byte	0x1
- 4725 10a7 09       		.byte	0x9
- 4726 10a8 03       		.byte	0x3
- 4727 10a9 00000000 		.quad	__PRETTY_FUNCTION__.7242
- 4727      00000000 
- 4728 10b1 23       		.uleb128 0x23
- 4729 10b2 00000000 		.long	.LASF354
- 4730 10b6 CB100000 		.long	0x10cb
- 4731 10ba 01       		.byte	0x1
- 4732 10bb 09       		.byte	0x9
- 4733 10bc 03       		.byte	0x3
- 4734 10bd 00000000 		.quad	__func__.7244
- 4734      00000000 
- 4735 10c5 00       		.byte	0x0
- 4736 10c6 0B       		.uleb128 0xb
- 4737 10c7 27100000 		.long	0x1027
- 4738 10cb 0B       		.uleb128 0xb
- 4739 10cc 27100000 		.long	0x1027
- 4740 10d0 1E       		.uleb128 0x1e
- 4741 10d1 00000000 		.long	.LASF356
- 4742 10d5 01       		.byte	0x1
- 4743 10d6 B1       		.byte	0xb1
- 4744 10d7 01       		.byte	0x1
-
GAS LISTING /tmp/ccXzRABk.s 			page 112
-
-
- 4745 10d8 7B000000 		.long	0x7b
- 4746 10dc 00000000 		.quad	.LFB595
- 4746      00000000 
- 4747 10e4 00000000 		.quad	.LFE595
- 4747      00000000 
- 4748 10ec 00000000 		.long	.LLST5
- 4749 10f0 25110000 		.long	0x1125
- 4750 10f4 1F       		.uleb128 0x1f
- 4751 10f5 00000000 		.long	.LASF349
- 4752 10f9 01       		.byte	0x1
- 4753 10fa B1       		.byte	0xb1
- 4754 10fb DE030000 		.long	0x3de
- 4755 10ff 02       		.byte	0x2
- 4756 1100 91       		.byte	0x91
- 4757 1101 68       		.sleb128 -24
- 4758 1102 1F       		.uleb128 0x1f
- 4759 1103 00000000 		.long	.LASF357
- 4760 1107 01       		.byte	0x1
- 4761 1108 B2       		.byte	0xb2
- 4762 1109 1F040000 		.long	0x41f
- 4763 110d 02       		.byte	0x2
- 4764 110e 91       		.byte	0x91
- 4765 110f 60       		.sleb128 -32
- 4766 1110 23       		.uleb128 0x23
- 4767 1111 00000000 		.long	.LASF353
- 4768 1115 35110000 		.long	0x1135
- 4769 1119 01       		.byte	0x1
- 4770 111a 09       		.byte	0x9
- 4771 111b 03       		.byte	0x3
- 4772 111c 00000000 		.quad	__PRETTY_FUNCTION__.7264
- 4772      00000000 
- 4773 1124 00       		.byte	0x0
- 4774 1125 1B       		.uleb128 0x1b
- 4775 1126 C1000000 		.long	0xc1
- 4776 112a 35110000 		.long	0x1135
- 4777 112e 17       		.uleb128 0x17
- 4778 112f B1000000 		.long	0xb1
- 4779 1133 1B       		.byte	0x1b
- 4780 1134 00       		.byte	0x0
- 4781 1135 0B       		.uleb128 0xb
- 4782 1136 25110000 		.long	0x1125
- 4783 113a 1E       		.uleb128 0x1e
- 4784 113b 00000000 		.long	.LASF358
- 4785 113f 01       		.byte	0x1
- 4786 1140 BE       		.byte	0xbe
- 4787 1141 01       		.byte	0x1
- 4788 1142 7B000000 		.long	0x7b
- 4789 1146 00000000 		.quad	.LFB596
- 4789      00000000 
- 4790 114e 00000000 		.quad	.LFE596
- 4790      00000000 
- 4791 1156 00000000 		.long	.LLST6
- 4792 115a 8F110000 		.long	0x118f
- 4793 115e 1F       		.uleb128 0x1f
- 4794 115f 00000000 		.long	.LASF349
- 4795 1163 01       		.byte	0x1
- 4796 1164 BE       		.byte	0xbe
-
GAS LISTING /tmp/ccXzRABk.s 			page 113
-
-
- 4797 1165 DE030000 		.long	0x3de
- 4798 1169 02       		.byte	0x2
- 4799 116a 91       		.byte	0x91
- 4800 116b 68       		.sleb128 -24
- 4801 116c 1F       		.uleb128 0x1f
- 4802 116d 00000000 		.long	.LASF357
- 4803 1171 01       		.byte	0x1
- 4804 1172 BF       		.byte	0xbf
- 4805 1173 1F040000 		.long	0x41f
- 4806 1177 02       		.byte	0x2
- 4807 1178 91       		.byte	0x91
- 4808 1179 60       		.sleb128 -32
- 4809 117a 23       		.uleb128 0x23
- 4810 117b 00000000 		.long	.LASF353
- 4811 117f 8F110000 		.long	0x118f
- 4812 1183 01       		.byte	0x1
- 4813 1184 09       		.byte	0x9
- 4814 1185 03       		.byte	0x3
- 4815 1186 00000000 		.quad	__PRETTY_FUNCTION__.7277
- 4815      00000000 
- 4816 118e 00       		.byte	0x0
- 4817 118f 0B       		.uleb128 0xb
- 4818 1190 25110000 		.long	0x1125
- 4819 1194 1E       		.uleb128 0x1e
- 4820 1195 00000000 		.long	.LASF359
- 4821 1199 01       		.byte	0x1
- 4822 119a CB       		.byte	0xcb
- 4823 119b 01       		.byte	0x1
- 4824 119c 7B000000 		.long	0x7b
- 4825 11a0 00000000 		.quad	.LFB597
- 4825      00000000 
- 4826 11a8 00000000 		.quad	.LFE597
- 4826      00000000 
- 4827 11b0 00000000 		.long	.LLST7
- 4828 11b4 E9110000 		.long	0x11e9
- 4829 11b8 1F       		.uleb128 0x1f
- 4830 11b9 00000000 		.long	.LASF349
- 4831 11bd 01       		.byte	0x1
- 4832 11be CB       		.byte	0xcb
- 4833 11bf DE030000 		.long	0x3de
- 4834 11c3 02       		.byte	0x2
- 4835 11c4 91       		.byte	0x91
- 4836 11c5 68       		.sleb128 -24
- 4837 11c6 1F       		.uleb128 0x1f
- 4838 11c7 00000000 		.long	.LASF360
- 4839 11cb 01       		.byte	0x1
- 4840 11cc CC       		.byte	0xcc
- 4841 11cd F7010000 		.long	0x1f7
- 4842 11d1 02       		.byte	0x2
- 4843 11d2 91       		.byte	0x91
- 4844 11d3 60       		.sleb128 -32
- 4845 11d4 23       		.uleb128 0x23
- 4846 11d5 00000000 		.long	.LASF353
- 4847 11d9 F9110000 		.long	0x11f9
- 4848 11dd 01       		.byte	0x1
- 4849 11de 09       		.byte	0x9
- 4850 11df 03       		.byte	0x3
-
GAS LISTING /tmp/ccXzRABk.s 			page 114
-
-
- 4851 11e0 00000000 		.quad	__PRETTY_FUNCTION__.7290
- 4851      00000000 
- 4852 11e8 00       		.byte	0x0
- 4853 11e9 1B       		.uleb128 0x1b
- 4854 11ea C1000000 		.long	0xc1
- 4855 11ee F9110000 		.long	0x11f9
- 4856 11f2 17       		.uleb128 0x17
- 4857 11f3 B1000000 		.long	0xb1
- 4858 11f7 22       		.byte	0x22
- 4859 11f8 00       		.byte	0x0
- 4860 11f9 0B       		.uleb128 0xb
- 4861 11fa E9110000 		.long	0x11e9
- 4862 11fe 1E       		.uleb128 0x1e
- 4863 11ff 00000000 		.long	.LASF361
- 4864 1203 01       		.byte	0x1
- 4865 1204 D8       		.byte	0xd8
- 4866 1205 01       		.byte	0x1
- 4867 1206 7B000000 		.long	0x7b
- 4868 120a 00000000 		.quad	.LFB598
- 4868      00000000 
- 4869 1212 00000000 		.quad	.LFE598
- 4869      00000000 
- 4870 121a 00000000 		.long	.LLST8
- 4871 121e 53120000 		.long	0x1253
- 4872 1222 1F       		.uleb128 0x1f
- 4873 1223 00000000 		.long	.LASF349
- 4874 1227 01       		.byte	0x1
- 4875 1228 D8       		.byte	0xd8
- 4876 1229 DE030000 		.long	0x3de
- 4877 122d 02       		.byte	0x2
- 4878 122e 91       		.byte	0x91
- 4879 122f 68       		.sleb128 -24
- 4880 1230 1F       		.uleb128 0x1f
- 4881 1231 00000000 		.long	.LASF360
- 4882 1235 01       		.byte	0x1
- 4883 1236 D9       		.byte	0xd9
- 4884 1237 F7010000 		.long	0x1f7
- 4885 123b 02       		.byte	0x2
- 4886 123c 91       		.byte	0x91
- 4887 123d 60       		.sleb128 -32
- 4888 123e 23       		.uleb128 0x23
- 4889 123f 00000000 		.long	.LASF353
- 4890 1243 53120000 		.long	0x1253
- 4891 1247 01       		.byte	0x1
- 4892 1248 09       		.byte	0x9
- 4893 1249 03       		.byte	0x3
- 4894 124a 00000000 		.quad	__PRETTY_FUNCTION__.7300
- 4894      00000000 
- 4895 1252 00       		.byte	0x0
- 4896 1253 0B       		.uleb128 0xb
- 4897 1254 E9110000 		.long	0x11e9
- 4898 1258 1E       		.uleb128 0x1e
- 4899 1259 00000000 		.long	.LASF362
- 4900 125d 01       		.byte	0x1
- 4901 125e E4       		.byte	0xe4
- 4902 125f 01       		.byte	0x1
- 4903 1260 3D050000 		.long	0x53d
-
GAS LISTING /tmp/ccXzRABk.s 			page 115
-
-
- 4904 1264 00000000 		.quad	.LFB599
- 4904      00000000 
- 4905 126c 00000000 		.quad	.LFE599
- 4905      00000000 
- 4906 1274 00000000 		.long	.LLST9
- 4907 1278 97120000 		.long	0x1297
- 4908 127c 1F       		.uleb128 0x1f
- 4909 127d 00000000 		.long	.LASF349
- 4910 1281 01       		.byte	0x1
- 4911 1282 E4       		.byte	0xe4
- 4912 1283 61040000 		.long	0x461
- 4913 1287 02       		.byte	0x2
- 4914 1288 91       		.byte	0x91
- 4915 1289 68       		.sleb128 -24
- 4916 128a 22       		.uleb128 0x22
- 4917 128b 637600   		.string	"cv"
- 4918 128e 01       		.byte	0x1
- 4919 128f E5       		.byte	0xe5
- 4920 1290 3D050000 		.long	0x53d
- 4921 1294 01       		.byte	0x1
- 4922 1295 61       		.byte	0x61
- 4923 1296 00       		.byte	0x0
- 4924 1297 1E       		.uleb128 0x1e
- 4925 1298 00000000 		.long	.LASF363
- 4926 129c 01       		.byte	0x1
- 4927 129d EB       		.byte	0xeb
- 4928 129e 01       		.byte	0x1
- 4929 129f 3D050000 		.long	0x53d
- 4930 12a3 00000000 		.quad	.LFB600
- 4930      00000000 
- 4931 12ab 00000000 		.quad	.LFE600
- 4931      00000000 
- 4932 12b3 00000000 		.long	.LLST10
- 4933 12b7 D6120000 		.long	0x12d6
- 4934 12bb 1F       		.uleb128 0x1f
- 4935 12bc 00000000 		.long	.LASF349
- 4936 12c0 01       		.byte	0x1
- 4937 12c1 EB       		.byte	0xeb
- 4938 12c2 61040000 		.long	0x461
- 4939 12c6 02       		.byte	0x2
- 4940 12c7 91       		.byte	0x91
- 4941 12c8 68       		.sleb128 -24
- 4942 12c9 22       		.uleb128 0x22
- 4943 12ca 637600   		.string	"cv"
- 4944 12cd 01       		.byte	0x1
- 4945 12ce EC       		.byte	0xec
- 4946 12cf 3D050000 		.long	0x53d
- 4947 12d3 01       		.byte	0x1
- 4948 12d4 61       		.byte	0x61
- 4949 12d5 00       		.byte	0x0
- 4950 12d6 1E       		.uleb128 0x1e
- 4951 12d7 00000000 		.long	.LASF364
- 4952 12db 01       		.byte	0x1
- 4953 12dc F2       		.byte	0xf2
- 4954 12dd 01       		.byte	0x1
- 4955 12de 7B000000 		.long	0x7b
- 4956 12e2 00000000 		.quad	.LFB601
-
GAS LISTING /tmp/ccXzRABk.s 			page 116
-
-
- 4956      00000000 
- 4957 12ea 00000000 		.quad	.LFE601
- 4957      00000000 
- 4958 12f2 00000000 		.long	.LLST11
- 4959 12f6 31130000 		.long	0x1331
- 4960 12fa 1F       		.uleb128 0x1f
- 4961 12fb 00000000 		.long	.LASF349
- 4962 12ff 01       		.byte	0x1
- 4963 1300 F2       		.byte	0xf2
- 4964 1301 61040000 		.long	0x461
- 4965 1305 02       		.byte	0x2
- 4966 1306 91       		.byte	0x91
- 4967 1307 58       		.sleb128 -40
- 4968 1308 22       		.uleb128 0x22
- 4969 1309 696E00   		.string	"in"
- 4970 130c 01       		.byte	0x1
- 4971 130d F3       		.byte	0xf3
- 4972 130e 1F040000 		.long	0x41f
- 4973 1312 02       		.byte	0x2
- 4974 1313 91       		.byte	0x91
- 4975 1314 50       		.sleb128 -48
- 4976 1315 22       		.uleb128 0x22
- 4977 1316 6F757400 		.string	"out"
- 4978 131a 01       		.byte	0x1
- 4979 131b F3       		.byte	0xf3
- 4980 131c B4000000 		.long	0xb4
- 4981 1320 02       		.byte	0x2
- 4982 1321 91       		.byte	0x91
- 4983 1322 48       		.sleb128 -56
- 4984 1323 20       		.uleb128 0x20
- 4985 1324 637600   		.string	"cv"
- 4986 1327 01       		.byte	0x1
- 4987 1328 F5       		.byte	0xf5
- 4988 1329 3D050000 		.long	0x53d
- 4989 132d 02       		.byte	0x2
- 4990 132e 91       		.byte	0x91
- 4991 132f 60       		.sleb128 -32
- 4992 1330 00       		.byte	0x0
- 4993 1331 1E       		.uleb128 0x1e
- 4994 1332 00000000 		.long	.LASF365
- 4995 1336 01       		.byte	0x1
- 4996 1337 FE       		.byte	0xfe
- 4997 1338 01       		.byte	0x1
- 4998 1339 7B000000 		.long	0x7b
- 4999 133d 00000000 		.quad	.LFB602
- 4999      00000000 
- 5000 1345 00000000 		.quad	.LFE602
- 5000      00000000 
- 5001 134d 00000000 		.long	.LLST12
- 5002 1351 8D130000 		.long	0x138d
- 5003 1355 1F       		.uleb128 0x1f
- 5004 1356 00000000 		.long	.LASF349
- 5005 135a 01       		.byte	0x1
- 5006 135b FE       		.byte	0xfe
- 5007 135c 61040000 		.long	0x461
- 5008 1360 02       		.byte	0x2
- 5009 1361 91       		.byte	0x91
-
GAS LISTING /tmp/ccXzRABk.s 			page 117
-
-
- 5010 1362 58       		.sleb128 -40
- 5011 1363 22       		.uleb128 0x22
- 5012 1364 696E00   		.string	"in"
- 5013 1367 01       		.byte	0x1
- 5014 1368 FF       		.byte	0xff
- 5015 1369 1F040000 		.long	0x41f
- 5016 136d 02       		.byte	0x2
- 5017 136e 91       		.byte	0x91
- 5018 136f 50       		.sleb128 -48
- 5019 1370 22       		.uleb128 0x22
- 5020 1371 6F757400 		.string	"out"
- 5021 1375 01       		.byte	0x1
- 5022 1376 FF       		.byte	0xff
- 5023 1377 B4000000 		.long	0xb4
- 5024 137b 02       		.byte	0x2
- 5025 137c 91       		.byte	0x91
- 5026 137d 48       		.sleb128 -56
- 5027 137e 24       		.uleb128 0x24
- 5028 137f 637600   		.string	"cv"
- 5029 1382 01       		.byte	0x1
- 5030 1383 0101     		.value	0x101
- 5031 1385 3D050000 		.long	0x53d
- 5032 1389 02       		.byte	0x2
- 5033 138a 91       		.byte	0x91
- 5034 138b 60       		.sleb128 -32
- 5035 138c 00       		.byte	0x0
- 5036 138d 25       		.uleb128 0x25
- 5037 138e 00000000 		.long	.LASF366
- 5038 1392 01       		.byte	0x1
- 5039 1393 0A01     		.value	0x10a
- 5040 1395 01       		.byte	0x1
- 5041 1396 7B000000 		.long	0x7b
- 5042 139a 00000000 		.quad	.LFB603
- 5042      00000000 
- 5043 13a2 00000000 		.quad	.LFE603
- 5043      00000000 
- 5044 13aa 00000000 		.long	.LLST13
- 5045 13ae 15140000 		.long	0x1415
- 5046 13b2 26       		.uleb128 0x26
- 5047 13b3 00000000 		.long	.LASF349
- 5048 13b7 01       		.byte	0x1
- 5049 13b8 0A01     		.value	0x10a
- 5050 13ba 61040000 		.long	0x461
- 5051 13be 02       		.byte	0x2
- 5052 13bf 91       		.byte	0x91
- 5053 13c0 58       		.sleb128 -40
- 5054 13c1 27       		.uleb128 0x27
- 5055 13c2 696E00   		.string	"in"
- 5056 13c5 01       		.byte	0x1
- 5057 13c6 0A01     		.value	0x10a
- 5058 13c8 1F040000 		.long	0x41f
- 5059 13cc 02       		.byte	0x2
- 5060 13cd 91       		.byte	0x91
- 5061 13ce 50       		.sleb128 -48
- 5062 13cf 27       		.uleb128 0x27
- 5063 13d0 6F757400 		.string	"out"
- 5064 13d4 01       		.byte	0x1
-
GAS LISTING /tmp/ccXzRABk.s 			page 118
-
-
- 5065 13d5 0A01     		.value	0x10a
- 5066 13d7 B4000000 		.long	0xb4
- 5067 13db 02       		.byte	0x2
- 5068 13dc 91       		.byte	0x91
- 5069 13dd 48       		.sleb128 -56
- 5070 13de 24       		.uleb128 0x24
- 5071 13df 726300   		.string	"rc"
- 5072 13e2 01       		.byte	0x1
- 5073 13e3 0C01     		.value	0x10c
- 5074 13e5 7B000000 		.long	0x7b
- 5075 13e9 02       		.byte	0x2
- 5076 13ea 91       		.byte	0x91
- 5077 13eb 6C       		.sleb128 -20
- 5078 13ec 23       		.uleb128 0x23
- 5079 13ed 00000000 		.long	.LASF353
- 5080 13f1 25140000 		.long	0x1425
- 5081 13f5 01       		.byte	0x1
- 5082 13f6 09       		.byte	0x9
- 5083 13f7 03       		.byte	0x3
- 5084 13f8 00000000 		.quad	__PRETTY_FUNCTION__.7349
- 5084      00000000 
- 5085 1400 23       		.uleb128 0x23
- 5086 1401 00000000 		.long	.LASF354
- 5087 1405 2A140000 		.long	0x142a
- 5088 1409 01       		.byte	0x1
- 5089 140a 09       		.byte	0x9
- 5090 140b 03       		.byte	0x3
- 5091 140c 00000000 		.quad	__func__.7350
- 5091      00000000 
- 5092 1414 00       		.byte	0x0
- 5093 1415 1B       		.uleb128 0x1b
- 5094 1416 C1000000 		.long	0xc1
- 5095 141a 25140000 		.long	0x1425
- 5096 141e 17       		.uleb128 0x17
- 5097 141f B1000000 		.long	0xb1
- 5098 1423 14       		.byte	0x14
- 5099 1424 00       		.byte	0x0
- 5100 1425 0B       		.uleb128 0xb
- 5101 1426 15140000 		.long	0x1415
- 5102 142a 0B       		.uleb128 0xb
- 5103 142b 15140000 		.long	0x1415
- 5104 142f 25       		.uleb128 0x25
- 5105 1430 00000000 		.long	.LASF367
- 5106 1434 01       		.byte	0x1
- 5107 1435 1E01     		.value	0x11e
- 5108 1437 01       		.byte	0x1
- 5109 1438 7B000000 		.long	0x7b
- 5110 143c 00000000 		.quad	.LFB604
- 5110      00000000 
- 5111 1444 00000000 		.quad	.LFE604
- 5111      00000000 
- 5112 144c 00000000 		.long	.LLST14
- 5113 1450 B7140000 		.long	0x14b7
- 5114 1454 26       		.uleb128 0x26
- 5115 1455 00000000 		.long	.LASF349
- 5116 1459 01       		.byte	0x1
- 5117 145a 1E01     		.value	0x11e
-
GAS LISTING /tmp/ccXzRABk.s 			page 119
-
-
- 5118 145c 61040000 		.long	0x461
- 5119 1460 02       		.byte	0x2
- 5120 1461 91       		.byte	0x91
- 5121 1462 58       		.sleb128 -40
- 5122 1463 27       		.uleb128 0x27
- 5123 1464 696E00   		.string	"in"
- 5124 1467 01       		.byte	0x1
- 5125 1468 1E01     		.value	0x11e
- 5126 146a 1F040000 		.long	0x41f
- 5127 146e 02       		.byte	0x2
- 5128 146f 91       		.byte	0x91
- 5129 1470 50       		.sleb128 -48
- 5130 1471 27       		.uleb128 0x27
- 5131 1472 6F757400 		.string	"out"
- 5132 1476 01       		.byte	0x1
- 5133 1477 1E01     		.value	0x11e
- 5134 1479 B4000000 		.long	0xb4
- 5135 147d 02       		.byte	0x2
- 5136 147e 91       		.byte	0x91
- 5137 147f 48       		.sleb128 -56
- 5138 1480 24       		.uleb128 0x24
- 5139 1481 726300   		.string	"rc"
- 5140 1484 01       		.byte	0x1
- 5141 1485 2001     		.value	0x120
- 5142 1487 7B000000 		.long	0x7b
- 5143 148b 02       		.byte	0x2
- 5144 148c 91       		.byte	0x91
- 5145 148d 6C       		.sleb128 -20
- 5146 148e 23       		.uleb128 0x23
- 5147 148f 00000000 		.long	.LASF353
- 5148 1493 B7140000 		.long	0x14b7
- 5149 1497 01       		.byte	0x1
- 5150 1498 09       		.byte	0x9
- 5151 1499 03       		.byte	0x3
- 5152 149a 00000000 		.quad	__PRETTY_FUNCTION__.7365
- 5152      00000000 
- 5153 14a2 23       		.uleb128 0x23
- 5154 14a3 00000000 		.long	.LASF354
- 5155 14a7 BC140000 		.long	0x14bc
- 5156 14ab 01       		.byte	0x1
- 5157 14ac 09       		.byte	0x9
- 5158 14ad 03       		.byte	0x3
- 5159 14ae 00000000 		.quad	__func__.7366
- 5159      00000000 
- 5160 14b6 00       		.byte	0x0
- 5161 14b7 0B       		.uleb128 0xb
- 5162 14b8 15140000 		.long	0x1415
- 5163 14bc 0B       		.uleb128 0xb
- 5164 14bd 15140000 		.long	0x1415
- 5165 14c1 25       		.uleb128 0x25
- 5166 14c2 00000000 		.long	.LASF368
- 5167 14c6 01       		.byte	0x1
- 5168 14c7 5C01     		.value	0x15c
- 5169 14c9 01       		.byte	0x1
- 5170 14ca 7B000000 		.long	0x7b
- 5171 14ce 00000000 		.quad	.LFB605
- 5171      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 120
-
-
- 5172 14d6 00000000 		.quad	.LFE605
- 5172      00000000 
- 5173 14de 00000000 		.long	.LLST15
- 5174 14e2 40150000 		.long	0x1540
- 5175 14e6 26       		.uleb128 0x26
- 5176 14e7 00000000 		.long	.LASF349
- 5177 14eb 01       		.byte	0x1
- 5178 14ec 5C01     		.value	0x15c
- 5179 14ee 61040000 		.long	0x461
- 5180 14f2 02       		.byte	0x2
- 5181 14f3 91       		.byte	0x91
- 5182 14f4 58       		.sleb128 -40
- 5183 14f5 27       		.uleb128 0x27
- 5184 14f6 696E00   		.string	"in"
- 5185 14f9 01       		.byte	0x1
- 5186 14fa 5C01     		.value	0x15c
- 5187 14fc 1F040000 		.long	0x41f
- 5188 1500 02       		.byte	0x2
- 5189 1501 91       		.byte	0x91
- 5190 1502 50       		.sleb128 -48
- 5191 1503 27       		.uleb128 0x27
- 5192 1504 6F757400 		.string	"out"
- 5193 1508 01       		.byte	0x1
- 5194 1509 5C01     		.value	0x15c
- 5195 150b B4000000 		.long	0xb4
- 5196 150f 02       		.byte	0x2
- 5197 1510 91       		.byte	0x91
- 5198 1511 48       		.sleb128 -56
- 5199 1512 26       		.uleb128 0x26
- 5200 1513 00000000 		.long	.LASF369
- 5201 1517 01       		.byte	0x1
- 5202 1518 5C01     		.value	0x15c
- 5203 151a 62000000 		.long	0x62
- 5204 151e 02       		.byte	0x2
- 5205 151f 91       		.byte	0x91
- 5206 1520 44       		.sleb128 -60
- 5207 1521 24       		.uleb128 0x24
- 5208 1522 70696E00 		.string	"pin"
- 5209 1526 01       		.byte	0x1
- 5210 1527 5E01     		.value	0x15e
- 5211 1529 40150000 		.long	0x1540
- 5212 152d 02       		.byte	0x2
- 5213 152e 91       		.byte	0x91
- 5214 152f 60       		.sleb128 -32
- 5215 1530 28       		.uleb128 0x28
- 5216 1531 00000000 		.long	.LASF370
- 5217 1535 01       		.byte	0x1
- 5218 1536 5F01     		.value	0x15f
- 5219 1538 4B150000 		.long	0x154b
- 5220 153c 02       		.byte	0x2
- 5221 153d 91       		.byte	0x91
- 5222 153e 68       		.sleb128 -24
- 5223 153f 00       		.byte	0x0
- 5224 1540 0A       		.uleb128 0xa
- 5225 1541 08       		.byte	0x8
- 5226 1542 46150000 		.long	0x1546
- 5227 1546 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccXzRABk.s 			page 121
-
-
- 5228 1547 49000000 		.long	0x49
- 5229 154b 0A       		.uleb128 0xa
- 5230 154c 08       		.byte	0x8
- 5231 154d 49000000 		.long	0x49
- 5232 1551 25       		.uleb128 0x25
- 5233 1552 00000000 		.long	.LASF371
- 5234 1556 01       		.byte	0x1
- 5235 1557 6C01     		.value	0x16c
- 5236 1559 01       		.byte	0x1
- 5237 155a 7B000000 		.long	0x7b
- 5238 155e 00000000 		.quad	.LFB606
- 5238      00000000 
- 5239 1566 00000000 		.quad	.LFE606
- 5239      00000000 
- 5240 156e 00000000 		.long	.LLST16
- 5241 1572 D0150000 		.long	0x15d0
- 5242 1576 26       		.uleb128 0x26
- 5243 1577 00000000 		.long	.LASF349
- 5244 157b 01       		.byte	0x1
- 5245 157c 6C01     		.value	0x16c
- 5246 157e 61040000 		.long	0x461
- 5247 1582 02       		.byte	0x2
- 5248 1583 91       		.byte	0x91
- 5249 1584 58       		.sleb128 -40
- 5250 1585 27       		.uleb128 0x27
- 5251 1586 696E00   		.string	"in"
- 5252 1589 01       		.byte	0x1
- 5253 158a 6C01     		.value	0x16c
- 5254 158c 1F040000 		.long	0x41f
- 5255 1590 02       		.byte	0x2
- 5256 1591 91       		.byte	0x91
- 5257 1592 50       		.sleb128 -48
- 5258 1593 27       		.uleb128 0x27
- 5259 1594 6F757400 		.string	"out"
- 5260 1598 01       		.byte	0x1
- 5261 1599 6C01     		.value	0x16c
- 5262 159b B4000000 		.long	0xb4
- 5263 159f 02       		.byte	0x2
- 5264 15a0 91       		.byte	0x91
- 5265 15a1 48       		.sleb128 -56
- 5266 15a2 26       		.uleb128 0x26
- 5267 15a3 00000000 		.long	.LASF369
- 5268 15a7 01       		.byte	0x1
- 5269 15a8 6C01     		.value	0x16c
- 5270 15aa 62000000 		.long	0x62
- 5271 15ae 02       		.byte	0x2
- 5272 15af 91       		.byte	0x91
- 5273 15b0 44       		.sleb128 -60
- 5274 15b1 24       		.uleb128 0x24
- 5275 15b2 70696E00 		.string	"pin"
- 5276 15b6 01       		.byte	0x1
- 5277 15b7 6E01     		.value	0x16e
- 5278 15b9 40150000 		.long	0x1540
- 5279 15bd 02       		.byte	0x2
- 5280 15be 91       		.byte	0x91
- 5281 15bf 60       		.sleb128 -32
- 5282 15c0 28       		.uleb128 0x28
-
GAS LISTING /tmp/ccXzRABk.s 			page 122
-
-
- 5283 15c1 00000000 		.long	.LASF370
- 5284 15c5 01       		.byte	0x1
- 5285 15c6 6F01     		.value	0x16f
- 5286 15c8 4B150000 		.long	0x154b
- 5287 15cc 02       		.byte	0x2
- 5288 15cd 91       		.byte	0x91
- 5289 15ce 68       		.sleb128 -24
- 5290 15cf 00       		.byte	0x0
- 5291 15d0 25       		.uleb128 0x25
- 5292 15d1 00000000 		.long	.LASF372
- 5293 15d5 01       		.byte	0x1
- 5294 15d6 8201     		.value	0x182
- 5295 15d8 01       		.byte	0x1
- 5296 15d9 7B000000 		.long	0x7b
- 5297 15dd 00000000 		.quad	.LFB607
- 5297      00000000 
- 5298 15e5 00000000 		.quad	.LFE607
- 5298      00000000 
- 5299 15ed 00000000 		.long	.LLST17
- 5300 15f1 70160000 		.long	0x1670
- 5301 15f5 26       		.uleb128 0x26
- 5302 15f6 00000000 		.long	.LASF349
- 5303 15fa 01       		.byte	0x1
- 5304 15fb 8201     		.value	0x182
- 5305 15fd DE030000 		.long	0x3de
- 5306 1601 03       		.byte	0x3
- 5307 1602 91       		.byte	0x91
- 5308 1603 B87F     		.sleb128 -72
- 5309 1605 27       		.uleb128 0x27
- 5310 1606 696E00   		.string	"in"
- 5311 1609 01       		.byte	0x1
- 5312 160a 8201     		.value	0x182
- 5313 160c 1F040000 		.long	0x41f
- 5314 1610 03       		.byte	0x3
- 5315 1611 91       		.byte	0x91
- 5316 1612 B07F     		.sleb128 -80
- 5317 1614 27       		.uleb128 0x27
- 5318 1615 6F757400 		.string	"out"
- 5319 1619 01       		.byte	0x1
- 5320 161a 8201     		.value	0x182
- 5321 161c B4000000 		.long	0xb4
- 5322 1620 03       		.byte	0x3
- 5323 1621 91       		.byte	0x91
- 5324 1622 A87F     		.sleb128 -88
- 5325 1624 26       		.uleb128 0x26
- 5326 1625 00000000 		.long	.LASF369
- 5327 1629 01       		.byte	0x1
- 5328 162a 8201     		.value	0x182
- 5329 162c 62000000 		.long	0x62
- 5330 1630 03       		.byte	0x3
- 5331 1631 91       		.byte	0x91
- 5332 1632 A47F     		.sleb128 -92
- 5333 1634 24       		.uleb128 0x24
- 5334 1635 637600   		.string	"cv"
- 5335 1638 01       		.byte	0x1
- 5336 1639 8401     		.value	0x184
- 5337 163b 3D050000 		.long	0x53d
-
GAS LISTING /tmp/ccXzRABk.s 			page 123
-
-
- 5338 163f 02       		.byte	0x2
- 5339 1640 91       		.byte	0x91
- 5340 1641 40       		.sleb128 -64
- 5341 1642 28       		.uleb128 0x28
- 5342 1643 00000000 		.long	.LASF357
- 5343 1647 01       		.byte	0x1
- 5344 1648 8501     		.value	0x185
- 5345 164a 3D050000 		.long	0x53d
- 5346 164e 02       		.byte	0x2
- 5347 164f 91       		.byte	0x91
- 5348 1650 50       		.sleb128 -48
- 5349 1651 24       		.uleb128 0x24
- 5350 1652 70696E00 		.string	"pin"
- 5351 1656 01       		.byte	0x1
- 5352 1657 8601     		.value	0x186
- 5353 1659 40150000 		.long	0x1540
- 5354 165d 02       		.byte	0x2
- 5355 165e 91       		.byte	0x91
- 5356 165f 60       		.sleb128 -32
- 5357 1660 28       		.uleb128 0x28
- 5358 1661 00000000 		.long	.LASF370
- 5359 1665 01       		.byte	0x1
- 5360 1666 8701     		.value	0x187
- 5361 1668 4B150000 		.long	0x154b
- 5362 166c 02       		.byte	0x2
- 5363 166d 91       		.byte	0x91
- 5364 166e 68       		.sleb128 -24
- 5365 166f 00       		.byte	0x0
- 5366 1670 25       		.uleb128 0x25
- 5367 1671 00000000 		.long	.LASF373
- 5368 1675 01       		.byte	0x1
- 5369 1676 A401     		.value	0x1a4
- 5370 1678 01       		.byte	0x1
- 5371 1679 7B000000 		.long	0x7b
- 5372 167d 00000000 		.quad	.LFB608
- 5372      00000000 
- 5373 1685 00000000 		.quad	.LFE608
- 5373      00000000 
- 5374 168d 00000000 		.long	.LLST18
- 5375 1691 32170000 		.long	0x1732
- 5376 1695 26       		.uleb128 0x26
- 5377 1696 00000000 		.long	.LASF349
- 5378 169a 01       		.byte	0x1
- 5379 169b A401     		.value	0x1a4
- 5380 169d DE030000 		.long	0x3de
- 5381 16a1 03       		.byte	0x3
- 5382 16a2 91       		.byte	0x91
- 5383 16a3 A87F     		.sleb128 -88
- 5384 16a5 27       		.uleb128 0x27
- 5385 16a6 696E00   		.string	"in"
- 5386 16a9 01       		.byte	0x1
- 5387 16aa A401     		.value	0x1a4
- 5388 16ac 1F040000 		.long	0x41f
- 5389 16b0 03       		.byte	0x3
- 5390 16b1 91       		.byte	0x91
- 5391 16b2 A07F     		.sleb128 -96
- 5392 16b4 27       		.uleb128 0x27
-
GAS LISTING /tmp/ccXzRABk.s 			page 124
-
-
- 5393 16b5 6F757400 		.string	"out"
- 5394 16b9 01       		.byte	0x1
- 5395 16ba A401     		.value	0x1a4
- 5396 16bc B4000000 		.long	0xb4
- 5397 16c0 03       		.byte	0x3
- 5398 16c1 91       		.byte	0x91
- 5399 16c2 987F     		.sleb128 -104
- 5400 16c4 26       		.uleb128 0x26
- 5401 16c5 00000000 		.long	.LASF369
- 5402 16c9 01       		.byte	0x1
- 5403 16ca A401     		.value	0x1a4
- 5404 16cc 62000000 		.long	0x62
- 5405 16d0 03       		.byte	0x3
- 5406 16d1 91       		.byte	0x91
- 5407 16d2 947F     		.sleb128 -108
- 5408 16d4 24       		.uleb128 0x24
- 5409 16d5 637600   		.string	"cv"
- 5410 16d8 01       		.byte	0x1
- 5411 16d9 A601     		.value	0x1a6
- 5412 16db 3D050000 		.long	0x53d
- 5413 16df 03       		.byte	0x3
- 5414 16e0 91       		.byte	0x91
- 5415 16e1 B07F     		.sleb128 -80
- 5416 16e3 28       		.uleb128 0x28
- 5417 16e4 00000000 		.long	.LASF357
- 5418 16e8 01       		.byte	0x1
- 5419 16e9 A701     		.value	0x1a7
- 5420 16eb 3D050000 		.long	0x53d
- 5421 16ef 02       		.byte	0x2
- 5422 16f0 91       		.byte	0x91
- 5423 16f1 40       		.sleb128 -64
- 5424 16f2 24       		.uleb128 0x24
- 5425 16f3 70696E00 		.string	"pin"
- 5426 16f7 01       		.byte	0x1
- 5427 16f8 A801     		.value	0x1a8
- 5428 16fa 40150000 		.long	0x1540
- 5429 16fe 02       		.byte	0x2
- 5430 16ff 91       		.byte	0x91
- 5431 1700 50       		.sleb128 -48
- 5432 1701 28       		.uleb128 0x28
- 5433 1702 00000000 		.long	.LASF370
- 5434 1706 01       		.byte	0x1
- 5435 1707 A901     		.value	0x1a9
- 5436 1709 4B150000 		.long	0x154b
- 5437 170d 02       		.byte	0x2
- 5438 170e 91       		.byte	0x91
- 5439 170f 58       		.sleb128 -40
- 5440 1710 29       		.uleb128 0x29
- 5441 1711 00000000 		.quad	.LBB2
- 5441      00000000 
- 5442 1719 00000000 		.quad	.LBE2
- 5442      00000000 
- 5443 1721 28       		.uleb128 0x28
- 5444 1722 00000000 		.long	.LASF374
- 5445 1726 01       		.byte	0x1
- 5446 1727 B101     		.value	0x1b1
- 5447 1729 3D050000 		.long	0x53d
-
GAS LISTING /tmp/ccXzRABk.s 			page 125
-
-
- 5448 172d 02       		.byte	0x2
- 5449 172e 91       		.byte	0x91
- 5450 172f 60       		.sleb128 -32
- 5451 1730 00       		.byte	0x0
- 5452 1731 00       		.byte	0x0
- 5453 1732 25       		.uleb128 0x25
- 5454 1733 00000000 		.long	.LASF375
- 5455 1737 01       		.byte	0x1
- 5456 1738 CA01     		.value	0x1ca
- 5457 173a 01       		.byte	0x1
- 5458 173b 7B000000 		.long	0x7b
- 5459 173f 00000000 		.quad	.LFB609
- 5459      00000000 
- 5460 1747 00000000 		.quad	.LFE609
- 5460      00000000 
- 5461 174f 00000000 		.long	.LLST19
- 5462 1753 F4170000 		.long	0x17f4
- 5463 1757 26       		.uleb128 0x26
- 5464 1758 00000000 		.long	.LASF349
- 5465 175c 01       		.byte	0x1
- 5466 175d CA01     		.value	0x1ca
- 5467 175f DE030000 		.long	0x3de
- 5468 1763 03       		.byte	0x3
- 5469 1764 91       		.byte	0x91
- 5470 1765 A87F     		.sleb128 -88
- 5471 1767 27       		.uleb128 0x27
- 5472 1768 696E00   		.string	"in"
- 5473 176b 01       		.byte	0x1
- 5474 176c CA01     		.value	0x1ca
- 5475 176e 1F040000 		.long	0x41f
- 5476 1772 03       		.byte	0x3
- 5477 1773 91       		.byte	0x91
- 5478 1774 A07F     		.sleb128 -96
- 5479 1776 27       		.uleb128 0x27
- 5480 1777 6F757400 		.string	"out"
- 5481 177b 01       		.byte	0x1
- 5482 177c CA01     		.value	0x1ca
- 5483 177e B4000000 		.long	0xb4
- 5484 1782 03       		.byte	0x3
- 5485 1783 91       		.byte	0x91
- 5486 1784 987F     		.sleb128 -104
- 5487 1786 26       		.uleb128 0x26
- 5488 1787 00000000 		.long	.LASF369
- 5489 178b 01       		.byte	0x1
- 5490 178c CA01     		.value	0x1ca
- 5491 178e 62000000 		.long	0x62
- 5492 1792 03       		.byte	0x3
- 5493 1793 91       		.byte	0x91
- 5494 1794 947F     		.sleb128 -108
- 5495 1796 24       		.uleb128 0x24
- 5496 1797 637600   		.string	"cv"
- 5497 179a 01       		.byte	0x1
- 5498 179b CD01     		.value	0x1cd
- 5499 179d 3D050000 		.long	0x53d
- 5500 17a1 03       		.byte	0x3
- 5501 17a2 91       		.byte	0x91
- 5502 17a3 B07F     		.sleb128 -80
-
GAS LISTING /tmp/ccXzRABk.s 			page 126
-
-
- 5503 17a5 28       		.uleb128 0x28
- 5504 17a6 00000000 		.long	.LASF357
- 5505 17aa 01       		.byte	0x1
- 5506 17ab CE01     		.value	0x1ce
- 5507 17ad 3D050000 		.long	0x53d
- 5508 17b1 02       		.byte	0x2
- 5509 17b2 91       		.byte	0x91
- 5510 17b3 40       		.sleb128 -64
- 5511 17b4 24       		.uleb128 0x24
- 5512 17b5 70696E00 		.string	"pin"
- 5513 17b9 01       		.byte	0x1
- 5514 17ba CF01     		.value	0x1cf
- 5515 17bc 40150000 		.long	0x1540
- 5516 17c0 02       		.byte	0x2
- 5517 17c1 91       		.byte	0x91
- 5518 17c2 50       		.sleb128 -48
- 5519 17c3 28       		.uleb128 0x28
- 5520 17c4 00000000 		.long	.LASF370
- 5521 17c8 01       		.byte	0x1
- 5522 17c9 D001     		.value	0x1d0
- 5523 17cb 4B150000 		.long	0x154b
- 5524 17cf 02       		.byte	0x2
- 5525 17d0 91       		.byte	0x91
- 5526 17d1 58       		.sleb128 -40
- 5527 17d2 29       		.uleb128 0x29
- 5528 17d3 00000000 		.quad	.LBB3
- 5528      00000000 
- 5529 17db 00000000 		.quad	.LBE3
- 5529      00000000 
- 5530 17e3 28       		.uleb128 0x28
- 5531 17e4 00000000 		.long	.LASF374
- 5532 17e8 01       		.byte	0x1
- 5533 17e9 D801     		.value	0x1d8
- 5534 17eb 3D050000 		.long	0x53d
- 5535 17ef 02       		.byte	0x2
- 5536 17f0 91       		.byte	0x91
- 5537 17f1 60       		.sleb128 -32
- 5538 17f2 00       		.byte	0x0
- 5539 17f3 00       		.byte	0x0
- 5540 17f4 25       		.uleb128 0x25
- 5541 17f5 00000000 		.long	.LASF376
- 5542 17f9 01       		.byte	0x1
- 5543 17fa EB01     		.value	0x1eb
- 5544 17fc 01       		.byte	0x1
- 5545 17fd 7B000000 		.long	0x7b
- 5546 1801 00000000 		.quad	.LFB610
- 5546      00000000 
- 5547 1809 00000000 		.quad	.LFE610
- 5547      00000000 
- 5548 1811 00000000 		.long	.LLST20
- 5549 1815 B6180000 		.long	0x18b6
- 5550 1819 26       		.uleb128 0x26
- 5551 181a 00000000 		.long	.LASF349
- 5552 181e 01       		.byte	0x1
- 5553 181f EB01     		.value	0x1eb
- 5554 1821 DE030000 		.long	0x3de
- 5555 1825 03       		.byte	0x3
-
GAS LISTING /tmp/ccXzRABk.s 			page 127
-
-
- 5556 1826 91       		.byte	0x91
- 5557 1827 A87F     		.sleb128 -88
- 5558 1829 27       		.uleb128 0x27
- 5559 182a 696E00   		.string	"in"
- 5560 182d 01       		.byte	0x1
- 5561 182e EB01     		.value	0x1eb
- 5562 1830 1F040000 		.long	0x41f
- 5563 1834 03       		.byte	0x3
- 5564 1835 91       		.byte	0x91
- 5565 1836 A07F     		.sleb128 -96
- 5566 1838 27       		.uleb128 0x27
- 5567 1839 6F757400 		.string	"out"
- 5568 183d 01       		.byte	0x1
- 5569 183e EB01     		.value	0x1eb
- 5570 1840 B4000000 		.long	0xb4
- 5571 1844 03       		.byte	0x3
- 5572 1845 91       		.byte	0x91
- 5573 1846 987F     		.sleb128 -104
- 5574 1848 26       		.uleb128 0x26
- 5575 1849 00000000 		.long	.LASF369
- 5576 184d 01       		.byte	0x1
- 5577 184e EB01     		.value	0x1eb
- 5578 1850 62000000 		.long	0x62
- 5579 1854 03       		.byte	0x3
- 5580 1855 91       		.byte	0x91
- 5581 1856 947F     		.sleb128 -108
- 5582 1858 24       		.uleb128 0x24
- 5583 1859 637600   		.string	"cv"
- 5584 185c 01       		.byte	0x1
- 5585 185d EE01     		.value	0x1ee
- 5586 185f 3D050000 		.long	0x53d
- 5587 1863 03       		.byte	0x3
- 5588 1864 91       		.byte	0x91
- 5589 1865 B07F     		.sleb128 -80
- 5590 1867 28       		.uleb128 0x28
- 5591 1868 00000000 		.long	.LASF357
- 5592 186c 01       		.byte	0x1
- 5593 186d EF01     		.value	0x1ef
- 5594 186f 3D050000 		.long	0x53d
- 5595 1873 02       		.byte	0x2
- 5596 1874 91       		.byte	0x91
- 5597 1875 40       		.sleb128 -64
- 5598 1876 24       		.uleb128 0x24
- 5599 1877 70696E00 		.string	"pin"
- 5600 187b 01       		.byte	0x1
- 5601 187c F001     		.value	0x1f0
- 5602 187e 40150000 		.long	0x1540
- 5603 1882 02       		.byte	0x2
- 5604 1883 91       		.byte	0x91
- 5605 1884 50       		.sleb128 -48
- 5606 1885 28       		.uleb128 0x28
- 5607 1886 00000000 		.long	.LASF370
- 5608 188a 01       		.byte	0x1
- 5609 188b F101     		.value	0x1f1
- 5610 188d 4B150000 		.long	0x154b
- 5611 1891 02       		.byte	0x2
- 5612 1892 91       		.byte	0x91
-
GAS LISTING /tmp/ccXzRABk.s 			page 128
-
-
- 5613 1893 58       		.sleb128 -40
- 5614 1894 29       		.uleb128 0x29
- 5615 1895 00000000 		.quad	.LBB4
- 5615      00000000 
- 5616 189d 00000000 		.quad	.LBE4
- 5616      00000000 
- 5617 18a5 28       		.uleb128 0x28
- 5618 18a6 00000000 		.long	.LASF374
- 5619 18aa 01       		.byte	0x1
- 5620 18ab F901     		.value	0x1f9
- 5621 18ad 3D050000 		.long	0x53d
- 5622 18b1 02       		.byte	0x2
- 5623 18b2 91       		.byte	0x91
- 5624 18b3 60       		.sleb128 -32
- 5625 18b4 00       		.byte	0x0
- 5626 18b5 00       		.byte	0x0
- 5627 18b6 25       		.uleb128 0x25
- 5628 18b7 00000000 		.long	.LASF377
- 5629 18bb 01       		.byte	0x1
- 5630 18bc 1002     		.value	0x210
- 5631 18be 01       		.byte	0x1
- 5632 18bf 7B000000 		.long	0x7b
- 5633 18c3 00000000 		.quad	.LFB611
- 5633      00000000 
- 5634 18cb 00000000 		.quad	.LFE611
- 5634      00000000 
- 5635 18d3 00000000 		.long	.LLST21
- 5636 18d7 56190000 		.long	0x1956
- 5637 18db 26       		.uleb128 0x26
- 5638 18dc 00000000 		.long	.LASF349
- 5639 18e0 01       		.byte	0x1
- 5640 18e1 1002     		.value	0x210
- 5641 18e3 DE030000 		.long	0x3de
- 5642 18e7 03       		.byte	0x3
- 5643 18e8 91       		.byte	0x91
- 5644 18e9 B87F     		.sleb128 -72
- 5645 18eb 27       		.uleb128 0x27
- 5646 18ec 696E00   		.string	"in"
- 5647 18ef 01       		.byte	0x1
- 5648 18f0 1002     		.value	0x210
- 5649 18f2 1F040000 		.long	0x41f
- 5650 18f6 03       		.byte	0x3
- 5651 18f7 91       		.byte	0x91
- 5652 18f8 B07F     		.sleb128 -80
- 5653 18fa 27       		.uleb128 0x27
- 5654 18fb 6F757400 		.string	"out"
- 5655 18ff 01       		.byte	0x1
- 5656 1900 1002     		.value	0x210
- 5657 1902 B4000000 		.long	0xb4
- 5658 1906 03       		.byte	0x3
- 5659 1907 91       		.byte	0x91
- 5660 1908 A87F     		.sleb128 -88
- 5661 190a 26       		.uleb128 0x26
- 5662 190b 00000000 		.long	.LASF369
- 5663 190f 01       		.byte	0x1
- 5664 1910 1002     		.value	0x210
- 5665 1912 62000000 		.long	0x62
-
GAS LISTING /tmp/ccXzRABk.s 			page 129
-
-
- 5666 1916 03       		.byte	0x3
- 5667 1917 91       		.byte	0x91
- 5668 1918 A47F     		.sleb128 -92
- 5669 191a 24       		.uleb128 0x24
- 5670 191b 637600   		.string	"cv"
- 5671 191e 01       		.byte	0x1
- 5672 191f 1302     		.value	0x213
- 5673 1921 3D050000 		.long	0x53d
- 5674 1925 02       		.byte	0x2
- 5675 1926 91       		.byte	0x91
- 5676 1927 40       		.sleb128 -64
- 5677 1928 28       		.uleb128 0x28
- 5678 1929 00000000 		.long	.LASF357
- 5679 192d 01       		.byte	0x1
- 5680 192e 1402     		.value	0x214
- 5681 1930 3D050000 		.long	0x53d
- 5682 1934 02       		.byte	0x2
- 5683 1935 91       		.byte	0x91
- 5684 1936 50       		.sleb128 -48
- 5685 1937 24       		.uleb128 0x24
- 5686 1938 70696E00 		.string	"pin"
- 5687 193c 01       		.byte	0x1
- 5688 193d 1502     		.value	0x215
- 5689 193f 40150000 		.long	0x1540
- 5690 1943 02       		.byte	0x2
- 5691 1944 91       		.byte	0x91
- 5692 1945 60       		.sleb128 -32
- 5693 1946 28       		.uleb128 0x28
- 5694 1947 00000000 		.long	.LASF370
- 5695 194b 01       		.byte	0x1
- 5696 194c 1602     		.value	0x216
- 5697 194e 4B150000 		.long	0x154b
- 5698 1952 02       		.byte	0x2
- 5699 1953 91       		.byte	0x91
- 5700 1954 68       		.sleb128 -24
- 5701 1955 00       		.byte	0x0
- 5702 1956 25       		.uleb128 0x25
- 5703 1957 00000000 		.long	.LASF378
- 5704 195b 01       		.byte	0x1
- 5705 195c 2E02     		.value	0x22e
- 5706 195e 01       		.byte	0x1
- 5707 195f 7B000000 		.long	0x7b
- 5708 1963 00000000 		.quad	.LFB612
- 5708      00000000 
- 5709 196b 00000000 		.quad	.LFE612
- 5709      00000000 
- 5710 1973 00000000 		.long	.LLST22
- 5711 1977 F6190000 		.long	0x19f6
- 5712 197b 26       		.uleb128 0x26
- 5713 197c 00000000 		.long	.LASF349
- 5714 1980 01       		.byte	0x1
- 5715 1981 2E02     		.value	0x22e
- 5716 1983 DE030000 		.long	0x3de
- 5717 1987 03       		.byte	0x3
- 5718 1988 91       		.byte	0x91
- 5719 1989 B87F     		.sleb128 -72
- 5720 198b 27       		.uleb128 0x27
-
GAS LISTING /tmp/ccXzRABk.s 			page 130
-
-
- 5721 198c 696E00   		.string	"in"
- 5722 198f 01       		.byte	0x1
- 5723 1990 2E02     		.value	0x22e
- 5724 1992 1F040000 		.long	0x41f
- 5725 1996 03       		.byte	0x3
- 5726 1997 91       		.byte	0x91
- 5727 1998 B07F     		.sleb128 -80
- 5728 199a 27       		.uleb128 0x27
- 5729 199b 6F757400 		.string	"out"
- 5730 199f 01       		.byte	0x1
- 5731 19a0 2E02     		.value	0x22e
- 5732 19a2 B4000000 		.long	0xb4
- 5733 19a6 03       		.byte	0x3
- 5734 19a7 91       		.byte	0x91
- 5735 19a8 A87F     		.sleb128 -88
- 5736 19aa 26       		.uleb128 0x26
- 5737 19ab 00000000 		.long	.LASF369
- 5738 19af 01       		.byte	0x1
- 5739 19b0 2E02     		.value	0x22e
- 5740 19b2 62000000 		.long	0x62
- 5741 19b6 03       		.byte	0x3
- 5742 19b7 91       		.byte	0x91
- 5743 19b8 A47F     		.sleb128 -92
- 5744 19ba 24       		.uleb128 0x24
- 5745 19bb 637600   		.string	"cv"
- 5746 19be 01       		.byte	0x1
- 5747 19bf 3102     		.value	0x231
- 5748 19c1 3D050000 		.long	0x53d
- 5749 19c5 02       		.byte	0x2
- 5750 19c6 91       		.byte	0x91
- 5751 19c7 40       		.sleb128 -64
- 5752 19c8 28       		.uleb128 0x28
- 5753 19c9 00000000 		.long	.LASF357
- 5754 19cd 01       		.byte	0x1
- 5755 19ce 3202     		.value	0x232
- 5756 19d0 3D050000 		.long	0x53d
- 5757 19d4 02       		.byte	0x2
- 5758 19d5 91       		.byte	0x91
- 5759 19d6 50       		.sleb128 -48
- 5760 19d7 24       		.uleb128 0x24
- 5761 19d8 70696E00 		.string	"pin"
- 5762 19dc 01       		.byte	0x1
- 5763 19dd 3302     		.value	0x233
- 5764 19df 40150000 		.long	0x1540
- 5765 19e3 02       		.byte	0x2
- 5766 19e4 91       		.byte	0x91
- 5767 19e5 60       		.sleb128 -32
- 5768 19e6 28       		.uleb128 0x28
- 5769 19e7 00000000 		.long	.LASF370
- 5770 19eb 01       		.byte	0x1
- 5771 19ec 3402     		.value	0x234
- 5772 19ee 4B150000 		.long	0x154b
- 5773 19f2 02       		.byte	0x2
- 5774 19f3 91       		.byte	0x91
- 5775 19f4 68       		.sleb128 -24
- 5776 19f5 00       		.byte	0x0
- 5777 19f6 25       		.uleb128 0x25
-
GAS LISTING /tmp/ccXzRABk.s 			page 131
-
-
- 5778 19f7 00000000 		.long	.LASF379
- 5779 19fb 01       		.byte	0x1
- 5780 19fc 5102     		.value	0x251
- 5781 19fe 01       		.byte	0x1
- 5782 19ff 7B000000 		.long	0x7b
- 5783 1a03 00000000 		.quad	.LFB613
- 5783      00000000 
- 5784 1a0b 00000000 		.quad	.LFE613
- 5784      00000000 
- 5785 1a13 00000000 		.long	.LLST23
- 5786 1a17 961A0000 		.long	0x1a96
- 5787 1a1b 26       		.uleb128 0x26
- 5788 1a1c 00000000 		.long	.LASF349
- 5789 1a20 01       		.byte	0x1
- 5790 1a21 5102     		.value	0x251
- 5791 1a23 DE030000 		.long	0x3de
- 5792 1a27 03       		.byte	0x3
- 5793 1a28 91       		.byte	0x91
- 5794 1a29 B87F     		.sleb128 -72
- 5795 1a2b 27       		.uleb128 0x27
- 5796 1a2c 696E00   		.string	"in"
- 5797 1a2f 01       		.byte	0x1
- 5798 1a30 5102     		.value	0x251
- 5799 1a32 1F040000 		.long	0x41f
- 5800 1a36 03       		.byte	0x3
- 5801 1a37 91       		.byte	0x91
- 5802 1a38 B07F     		.sleb128 -80
- 5803 1a3a 27       		.uleb128 0x27
- 5804 1a3b 6F757400 		.string	"out"
- 5805 1a3f 01       		.byte	0x1
- 5806 1a40 5102     		.value	0x251
- 5807 1a42 B4000000 		.long	0xb4
- 5808 1a46 03       		.byte	0x3
- 5809 1a47 91       		.byte	0x91
- 5810 1a48 A87F     		.sleb128 -88
- 5811 1a4a 26       		.uleb128 0x26
- 5812 1a4b 00000000 		.long	.LASF369
- 5813 1a4f 01       		.byte	0x1
- 5814 1a50 5102     		.value	0x251
- 5815 1a52 62000000 		.long	0x62
- 5816 1a56 03       		.byte	0x3
- 5817 1a57 91       		.byte	0x91
- 5818 1a58 A47F     		.sleb128 -92
- 5819 1a5a 24       		.uleb128 0x24
- 5820 1a5b 637600   		.string	"cv"
- 5821 1a5e 01       		.byte	0x1
- 5822 1a5f 5402     		.value	0x254
- 5823 1a61 3D050000 		.long	0x53d
- 5824 1a65 02       		.byte	0x2
- 5825 1a66 91       		.byte	0x91
- 5826 1a67 40       		.sleb128 -64
- 5827 1a68 28       		.uleb128 0x28
- 5828 1a69 00000000 		.long	.LASF357
- 5829 1a6d 01       		.byte	0x1
- 5830 1a6e 5502     		.value	0x255
- 5831 1a70 3D050000 		.long	0x53d
- 5832 1a74 02       		.byte	0x2
-
GAS LISTING /tmp/ccXzRABk.s 			page 132
-
-
- 5833 1a75 91       		.byte	0x91
- 5834 1a76 50       		.sleb128 -48
- 5835 1a77 24       		.uleb128 0x24
- 5836 1a78 70696E00 		.string	"pin"
- 5837 1a7c 01       		.byte	0x1
- 5838 1a7d 5602     		.value	0x256
- 5839 1a7f 40150000 		.long	0x1540
- 5840 1a83 02       		.byte	0x2
- 5841 1a84 91       		.byte	0x91
- 5842 1a85 60       		.sleb128 -32
- 5843 1a86 28       		.uleb128 0x28
- 5844 1a87 00000000 		.long	.LASF370
- 5845 1a8b 01       		.byte	0x1
- 5846 1a8c 5702     		.value	0x257
- 5847 1a8e 4B150000 		.long	0x154b
- 5848 1a92 02       		.byte	0x2
- 5849 1a93 91       		.byte	0x91
- 5850 1a94 68       		.sleb128 -24
- 5851 1a95 00       		.byte	0x0
- 5852 1a96 25       		.uleb128 0x25
- 5853 1a97 00000000 		.long	.LASF380
- 5854 1a9b 01       		.byte	0x1
- 5855 1a9c 6F02     		.value	0x26f
- 5856 1a9e 01       		.byte	0x1
- 5857 1a9f 7B000000 		.long	0x7b
- 5858 1aa3 00000000 		.quad	.LFB614
- 5858      00000000 
- 5859 1aab 00000000 		.quad	.LFE614
- 5859      00000000 
- 5860 1ab3 00000000 		.long	.LLST24
- 5861 1ab7 F71A0000 		.long	0x1af7
- 5862 1abb 26       		.uleb128 0x26
- 5863 1abc 00000000 		.long	.LASF349
- 5864 1ac0 01       		.byte	0x1
- 5865 1ac1 6F02     		.value	0x26f
- 5866 1ac3 DE030000 		.long	0x3de
- 5867 1ac7 02       		.byte	0x2
- 5868 1ac8 91       		.byte	0x91
- 5869 1ac9 58       		.sleb128 -40
- 5870 1aca 27       		.uleb128 0x27
- 5871 1acb 696E00   		.string	"in"
- 5872 1ace 01       		.byte	0x1
- 5873 1acf 6F02     		.value	0x26f
- 5874 1ad1 1F040000 		.long	0x41f
- 5875 1ad5 02       		.byte	0x2
- 5876 1ad6 91       		.byte	0x91
- 5877 1ad7 50       		.sleb128 -48
- 5878 1ad8 27       		.uleb128 0x27
- 5879 1ad9 6F757400 		.string	"out"
- 5880 1add 01       		.byte	0x1
- 5881 1ade 6F02     		.value	0x26f
- 5882 1ae0 B4000000 		.long	0xb4
- 5883 1ae4 02       		.byte	0x2
- 5884 1ae5 91       		.byte	0x91
- 5885 1ae6 48       		.sleb128 -56
- 5886 1ae7 26       		.uleb128 0x26
- 5887 1ae8 00000000 		.long	.LASF369
-
GAS LISTING /tmp/ccXzRABk.s 			page 133
-
-
- 5888 1aec 01       		.byte	0x1
- 5889 1aed 6F02     		.value	0x26f
- 5890 1aef 62000000 		.long	0x62
- 5891 1af3 02       		.byte	0x2
- 5892 1af4 91       		.byte	0x91
- 5893 1af5 44       		.sleb128 -60
- 5894 1af6 00       		.byte	0x0
- 5895 1af7 25       		.uleb128 0x25
- 5896 1af8 00000000 		.long	.LASF381
- 5897 1afc 01       		.byte	0x1
- 5898 1afd 7D02     		.value	0x27d
- 5899 1aff 01       		.byte	0x1
- 5900 1b00 7B000000 		.long	0x7b
- 5901 1b04 00000000 		.quad	.LFB615
- 5901      00000000 
- 5902 1b0c 00000000 		.quad	.LFE615
- 5902      00000000 
- 5903 1b14 00000000 		.long	.LLST25
- 5904 1b18 801B0000 		.long	0x1b80
- 5905 1b1c 26       		.uleb128 0x26
- 5906 1b1d 00000000 		.long	.LASF349
- 5907 1b21 01       		.byte	0x1
- 5908 1b22 7D02     		.value	0x27d
- 5909 1b24 DE030000 		.long	0x3de
- 5910 1b28 02       		.byte	0x2
- 5911 1b29 91       		.byte	0x91
- 5912 1b2a 68       		.sleb128 -24
- 5913 1b2b 27       		.uleb128 0x27
- 5914 1b2c 696E00   		.string	"in"
- 5915 1b2f 01       		.byte	0x1
- 5916 1b30 7D02     		.value	0x27d
- 5917 1b32 1F040000 		.long	0x41f
- 5918 1b36 02       		.byte	0x2
- 5919 1b37 91       		.byte	0x91
- 5920 1b38 60       		.sleb128 -32
- 5921 1b39 27       		.uleb128 0x27
- 5922 1b3a 6F757400 		.string	"out"
- 5923 1b3e 01       		.byte	0x1
- 5924 1b3f 7D02     		.value	0x27d
- 5925 1b41 B4000000 		.long	0xb4
- 5926 1b45 02       		.byte	0x2
- 5927 1b46 91       		.byte	0x91
- 5928 1b47 58       		.sleb128 -40
- 5929 1b48 26       		.uleb128 0x26
- 5930 1b49 00000000 		.long	.LASF369
- 5931 1b4d 01       		.byte	0x1
- 5932 1b4e 7D02     		.value	0x27d
- 5933 1b50 62000000 		.long	0x62
- 5934 1b54 02       		.byte	0x2
- 5935 1b55 91       		.byte	0x91
- 5936 1b56 54       		.sleb128 -44
- 5937 1b57 23       		.uleb128 0x23
- 5938 1b58 00000000 		.long	.LASF353
- 5939 1b5c 901B0000 		.long	0x1b90
- 5940 1b60 01       		.byte	0x1
- 5941 1b61 09       		.byte	0x9
- 5942 1b62 03       		.byte	0x3
-
GAS LISTING /tmp/ccXzRABk.s 			page 134
-
-
- 5943 1b63 00000000 		.quad	__PRETTY_FUNCTION__.7599
- 5943      00000000 
- 5944 1b6b 23       		.uleb128 0x23
- 5945 1b6c 00000000 		.long	.LASF354
- 5946 1b70 951B0000 		.long	0x1b95
- 5947 1b74 01       		.byte	0x1
- 5948 1b75 09       		.byte	0x9
- 5949 1b76 03       		.byte	0x3
- 5950 1b77 00000000 		.quad	__func__.7600
- 5950      00000000 
- 5951 1b7f 00       		.byte	0x0
- 5952 1b80 1B       		.uleb128 0x1b
- 5953 1b81 C1000000 		.long	0xc1
- 5954 1b85 901B0000 		.long	0x1b90
- 5955 1b89 17       		.uleb128 0x17
- 5956 1b8a B1000000 		.long	0xb1
- 5957 1b8e 17       		.byte	0x17
- 5958 1b8f 00       		.byte	0x0
- 5959 1b90 0B       		.uleb128 0xb
- 5960 1b91 801B0000 		.long	0x1b80
- 5961 1b95 0B       		.uleb128 0xb
- 5962 1b96 801B0000 		.long	0x1b80
- 5963 1b9a 25       		.uleb128 0x25
- 5964 1b9b 00000000 		.long	.LASF382
- 5965 1b9f 01       		.byte	0x1
- 5966 1ba0 8402     		.value	0x284
- 5967 1ba2 01       		.byte	0x1
- 5968 1ba3 7B000000 		.long	0x7b
- 5969 1ba7 00000000 		.quad	.LFB616
- 5969      00000000 
- 5970 1baf 00000000 		.quad	.LFE616
- 5970      00000000 
- 5971 1bb7 00000000 		.long	.LLST26
- 5972 1bbb 231C0000 		.long	0x1c23
- 5973 1bbf 26       		.uleb128 0x26
- 5974 1bc0 00000000 		.long	.LASF349
- 5975 1bc4 01       		.byte	0x1
- 5976 1bc5 8402     		.value	0x284
- 5977 1bc7 DE030000 		.long	0x3de
- 5978 1bcb 02       		.byte	0x2
- 5979 1bcc 91       		.byte	0x91
- 5980 1bcd 68       		.sleb128 -24
- 5981 1bce 27       		.uleb128 0x27
- 5982 1bcf 696E00   		.string	"in"
- 5983 1bd2 01       		.byte	0x1
- 5984 1bd3 8402     		.value	0x284
- 5985 1bd5 1F040000 		.long	0x41f
- 5986 1bd9 02       		.byte	0x2
- 5987 1bda 91       		.byte	0x91
- 5988 1bdb 60       		.sleb128 -32
- 5989 1bdc 27       		.uleb128 0x27
- 5990 1bdd 6F757400 		.string	"out"
- 5991 1be1 01       		.byte	0x1
- 5992 1be2 8402     		.value	0x284
- 5993 1be4 B4000000 		.long	0xb4
- 5994 1be8 02       		.byte	0x2
- 5995 1be9 91       		.byte	0x91
-
GAS LISTING /tmp/ccXzRABk.s 			page 135
-
-
- 5996 1bea 58       		.sleb128 -40
- 5997 1beb 26       		.uleb128 0x26
- 5998 1bec 00000000 		.long	.LASF369
- 5999 1bf0 01       		.byte	0x1
- 6000 1bf1 8402     		.value	0x284
- 6001 1bf3 62000000 		.long	0x62
- 6002 1bf7 02       		.byte	0x2
- 6003 1bf8 91       		.byte	0x91
- 6004 1bf9 54       		.sleb128 -44
- 6005 1bfa 23       		.uleb128 0x23
- 6006 1bfb 00000000 		.long	.LASF353
- 6007 1bff 231C0000 		.long	0x1c23
- 6008 1c03 01       		.byte	0x1
- 6009 1c04 09       		.byte	0x9
- 6010 1c05 03       		.byte	0x3
- 6011 1c06 00000000 		.quad	__PRETTY_FUNCTION__.7609
- 6011      00000000 
- 6012 1c0e 23       		.uleb128 0x23
- 6013 1c0f 00000000 		.long	.LASF354
- 6014 1c13 281C0000 		.long	0x1c28
- 6015 1c17 01       		.byte	0x1
- 6016 1c18 09       		.byte	0x9
- 6017 1c19 03       		.byte	0x3
- 6018 1c1a 00000000 		.quad	__func__.7610
- 6018      00000000 
- 6019 1c22 00       		.byte	0x0
- 6020 1c23 0B       		.uleb128 0xb
- 6021 1c24 801B0000 		.long	0x1b80
- 6022 1c28 0B       		.uleb128 0xb
- 6023 1c29 801B0000 		.long	0x1b80
- 6024 1c2d 25       		.uleb128 0x25
- 6025 1c2e 00000000 		.long	.LASF383
- 6026 1c32 01       		.byte	0x1
- 6027 1c33 A702     		.value	0x2a7
- 6028 1c35 01       		.byte	0x1
- 6029 1c36 7B000000 		.long	0x7b
- 6030 1c3a 00000000 		.quad	.LFB617
- 6030      00000000 
- 6031 1c42 00000000 		.quad	.LFE617
- 6031      00000000 
- 6032 1c4a 00000000 		.long	.LLST27
- 6033 1c4e A81C0000 		.long	0x1ca8
- 6034 1c52 26       		.uleb128 0x26
- 6035 1c53 00000000 		.long	.LASF384
- 6036 1c57 01       		.byte	0x1
- 6037 1c58 A702     		.value	0x2a7
- 6038 1c5a A81C0000 		.long	0x1ca8
- 6039 1c5e 02       		.byte	0x2
- 6040 1c5f 91       		.byte	0x91
- 6041 1c60 58       		.sleb128 -40
- 6042 1c61 26       		.uleb128 0x26
- 6043 1c62 00000000 		.long	.LASF46
- 6044 1c66 01       		.byte	0x1
- 6045 1c67 A802     		.value	0x2a8
- 6046 1c69 AE1C0000 		.long	0x1cae
- 6047 1c6d 02       		.byte	0x2
- 6048 1c6e 91       		.byte	0x91
-
GAS LISTING /tmp/ccXzRABk.s 			page 136
-
-
- 6049 1c6f 50       		.sleb128 -48
- 6050 1c70 24       		.uleb128 0x24
- 6051 1c71 6F626A00 		.string	"obj"
- 6052 1c75 01       		.byte	0x1
- 6053 1c76 AA02     		.value	0x2aa
- 6054 1c78 B91C0000 		.long	0x1cb9
- 6055 1c7c 02       		.byte	0x2
- 6056 1c7d 91       		.byte	0x91
- 6057 1c7e 68       		.sleb128 -24
- 6058 1c7f 23       		.uleb128 0x23
- 6059 1c80 00000000 		.long	.LASF353
- 6060 1c84 CF1C0000 		.long	0x1ccf
- 6061 1c88 01       		.byte	0x1
- 6062 1c89 09       		.byte	0x9
- 6063 1c8a 03       		.byte	0x3
- 6064 1c8b 00000000 		.quad	__PRETTY_FUNCTION__.7619
- 6064      00000000 
- 6065 1c93 23       		.uleb128 0x23
- 6066 1c94 00000000 		.long	.LASF354
- 6067 1c98 D41C0000 		.long	0x1cd4
- 6068 1c9c 01       		.byte	0x1
- 6069 1c9d 09       		.byte	0x9
- 6070 1c9e 03       		.byte	0x3
- 6071 1c9f 00000000 		.quad	__func__.7620
- 6071      00000000 
- 6072 1ca7 00       		.byte	0x0
- 6073 1ca8 0A       		.uleb128 0xa
- 6074 1ca9 08       		.byte	0x8
- 6075 1caa DE030000 		.long	0x3de
- 6076 1cae 0A       		.uleb128 0xa
- 6077 1caf 08       		.byte	0x8
- 6078 1cb0 B41C0000 		.long	0x1cb4
- 6079 1cb4 0B       		.uleb128 0xb
- 6080 1cb5 98080000 		.long	0x898
- 6081 1cb9 0A       		.uleb128 0xa
- 6082 1cba 08       		.byte	0x8
- 6083 1cbb CE070000 		.long	0x7ce
- 6084 1cbf 1B       		.uleb128 0x1b
- 6085 1cc0 C1000000 		.long	0xc1
- 6086 1cc4 CF1C0000 		.long	0x1ccf
- 6087 1cc8 17       		.uleb128 0x17
- 6088 1cc9 B1000000 		.long	0xb1
- 6089 1ccd 15       		.byte	0x15
- 6090 1cce 00       		.byte	0x0
- 6091 1ccf 0B       		.uleb128 0xb
- 6092 1cd0 BF1C0000 		.long	0x1cbf
- 6093 1cd4 0B       		.uleb128 0xb
- 6094 1cd5 BF1C0000 		.long	0x1cbf
- 6095 1cd9 25       		.uleb128 0x25
- 6096 1cda 00000000 		.long	.LASF385
- 6097 1cde 01       		.byte	0x1
- 6098 1cdf B402     		.value	0x2b4
- 6099 1ce1 01       		.byte	0x1
- 6100 1ce2 7B000000 		.long	0x7b
- 6101 1ce6 00000000 		.quad	.LFB618
- 6101      00000000 
- 6102 1cee 00000000 		.quad	.LFE618
-
GAS LISTING /tmp/ccXzRABk.s 			page 137
-
-
- 6102      00000000 
- 6103 1cf6 00000000 		.long	.LLST28
- 6104 1cfa 3B1D0000 		.long	0x1d3b
- 6105 1cfe 26       		.uleb128 0x26
- 6106 1cff 00000000 		.long	.LASF349
- 6107 1d03 01       		.byte	0x1
- 6108 1d04 B402     		.value	0x2b4
- 6109 1d06 DE030000 		.long	0x3de
- 6110 1d0a 02       		.byte	0x2
- 6111 1d0b 91       		.byte	0x91
- 6112 1d0c 58       		.sleb128 -40
- 6113 1d0d 26       		.uleb128 0x26
- 6114 1d0e 00000000 		.long	.LASF46
- 6115 1d12 01       		.byte	0x1
- 6116 1d13 B502     		.value	0x2b5
- 6117 1d15 AE1C0000 		.long	0x1cae
- 6118 1d19 02       		.byte	0x2
- 6119 1d1a 91       		.byte	0x91
- 6120 1d1b 50       		.sleb128 -48
- 6121 1d1c 24       		.uleb128 0x24
- 6122 1d1d 64616400 		.string	"dad"
- 6123 1d21 01       		.byte	0x1
- 6124 1d22 B702     		.value	0x2b7
- 6125 1d24 3B1D0000 		.long	0x1d3b
- 6126 1d28 02       		.byte	0x2
- 6127 1d29 91       		.byte	0x91
- 6128 1d2a 60       		.sleb128 -32
- 6129 1d2b 24       		.uleb128 0x24
- 6130 1d2c 61657300 		.string	"aes"
- 6131 1d30 01       		.byte	0x1
- 6132 1d31 B802     		.value	0x2b8
- 6133 1d33 B91C0000 		.long	0x1cb9
- 6134 1d37 02       		.byte	0x2
- 6135 1d38 91       		.byte	0x91
- 6136 1d39 68       		.sleb128 -24
- 6137 1d3a 00       		.byte	0x0
- 6138 1d3b 0A       		.uleb128 0xa
- 6139 1d3c 08       		.byte	0x8
- 6140 1d3d 54010000 		.long	0x154
- 6141 1d41 25       		.uleb128 0x25
- 6142 1d42 00000000 		.long	.LASF386
- 6143 1d46 01       		.byte	0x1
- 6144 1d47 CA02     		.value	0x2ca
- 6145 1d49 01       		.byte	0x1
- 6146 1d4a 7B000000 		.long	0x7b
- 6147 1d4e 00000000 		.quad	.LFB619
- 6147      00000000 
- 6148 1d56 00000000 		.quad	.LFE619
- 6148      00000000 
- 6149 1d5e 00000000 		.long	.LLST29
- 6150 1d62 BC1D0000 		.long	0x1dbc
- 6151 1d66 26       		.uleb128 0x26
- 6152 1d67 00000000 		.long	.LASF384
- 6153 1d6b 01       		.byte	0x1
- 6154 1d6c CA02     		.value	0x2ca
- 6155 1d6e A81C0000 		.long	0x1ca8
- 6156 1d72 02       		.byte	0x2
-
GAS LISTING /tmp/ccXzRABk.s 			page 138
-
-
- 6157 1d73 91       		.byte	0x91
- 6158 1d74 58       		.sleb128 -40
- 6159 1d75 26       		.uleb128 0x26
- 6160 1d76 00000000 		.long	.LASF46
- 6161 1d7a 01       		.byte	0x1
- 6162 1d7b CB02     		.value	0x2cb
- 6163 1d7d AE1C0000 		.long	0x1cae
- 6164 1d81 02       		.byte	0x2
- 6165 1d82 91       		.byte	0x91
- 6166 1d83 50       		.sleb128 -48
- 6167 1d84 24       		.uleb128 0x24
- 6168 1d85 6F626A00 		.string	"obj"
- 6169 1d89 01       		.byte	0x1
- 6170 1d8a CD02     		.value	0x2cd
- 6171 1d8c BC1D0000 		.long	0x1dbc
- 6172 1d90 02       		.byte	0x2
- 6173 1d91 91       		.byte	0x91
- 6174 1d92 68       		.sleb128 -24
- 6175 1d93 23       		.uleb128 0x23
- 6176 1d94 00000000 		.long	.LASF353
- 6177 1d98 D21D0000 		.long	0x1dd2
- 6178 1d9c 01       		.byte	0x1
- 6179 1d9d 09       		.byte	0x9
- 6180 1d9e 03       		.byte	0x3
- 6181 1d9f 00000000 		.quad	__PRETTY_FUNCTION__.7646
- 6181      00000000 
- 6182 1da7 23       		.uleb128 0x23
- 6183 1da8 00000000 		.long	.LASF354
- 6184 1dac D71D0000 		.long	0x1dd7
- 6185 1db0 01       		.byte	0x1
- 6186 1db1 09       		.byte	0x9
- 6187 1db2 03       		.byte	0x3
- 6188 1db3 00000000 		.quad	__func__.7647
- 6188      00000000 
- 6189 1dbb 00       		.byte	0x0
- 6190 1dbc 0A       		.uleb128 0xa
- 6191 1dbd 08       		.byte	0x8
- 6192 1dbe 30080000 		.long	0x830
- 6193 1dc2 1B       		.uleb128 0x1b
- 6194 1dc3 C1000000 		.long	0xc1
- 6195 1dc7 D21D0000 		.long	0x1dd2
- 6196 1dcb 17       		.uleb128 0x17
- 6197 1dcc B1000000 		.long	0xb1
- 6198 1dd0 16       		.byte	0x16
- 6199 1dd1 00       		.byte	0x0
- 6200 1dd2 0B       		.uleb128 0xb
- 6201 1dd3 C21D0000 		.long	0x1dc2
- 6202 1dd7 0B       		.uleb128 0xb
- 6203 1dd8 C21D0000 		.long	0x1dc2
- 6204 1ddc 25       		.uleb128 0x25
- 6205 1ddd 00000000 		.long	.LASF387
- 6206 1de1 01       		.byte	0x1
- 6207 1de2 D702     		.value	0x2d7
- 6208 1de4 01       		.byte	0x1
- 6209 1de5 7B000000 		.long	0x7b
- 6210 1de9 00000000 		.quad	.LFB620
- 6210      00000000 
-
GAS LISTING /tmp/ccXzRABk.s 			page 139
-
-
- 6211 1df1 00000000 		.quad	.LFE620
- 6211      00000000 
- 6212 1df9 00000000 		.long	.LLST30
- 6213 1dfd 3E1E0000 		.long	0x1e3e
- 6214 1e01 26       		.uleb128 0x26
- 6215 1e02 00000000 		.long	.LASF349
- 6216 1e06 01       		.byte	0x1
- 6217 1e07 D702     		.value	0x2d7
- 6218 1e09 DE030000 		.long	0x3de
- 6219 1e0d 02       		.byte	0x2
- 6220 1e0e 91       		.byte	0x91
- 6221 1e0f 58       		.sleb128 -40
- 6222 1e10 26       		.uleb128 0x26
- 6223 1e11 00000000 		.long	.LASF46
- 6224 1e15 01       		.byte	0x1
- 6225 1e16 D802     		.value	0x2d8
- 6226 1e18 AE1C0000 		.long	0x1cae
- 6227 1e1c 02       		.byte	0x2
- 6228 1e1d 91       		.byte	0x91
- 6229 1e1e 50       		.sleb128 -48
- 6230 1e1f 24       		.uleb128 0x24
- 6231 1e20 64616400 		.string	"dad"
- 6232 1e24 01       		.byte	0x1
- 6233 1e25 DA02     		.value	0x2da
- 6234 1e27 3B1D0000 		.long	0x1d3b
- 6235 1e2b 02       		.byte	0x2
- 6236 1e2c 91       		.byte	0x91
- 6237 1e2d 60       		.sleb128 -32
- 6238 1e2e 28       		.uleb128 0x28
- 6239 1e2f 00000000 		.long	.LASF388
- 6240 1e33 01       		.byte	0x1
- 6241 1e34 DB02     		.value	0x2db
- 6242 1e36 BC1D0000 		.long	0x1dbc
- 6243 1e3a 02       		.byte	0x2
- 6244 1e3b 91       		.byte	0x91
- 6245 1e3c 68       		.sleb128 -24
- 6246 1e3d 00       		.byte	0x0
- 6247 1e3e 2A       		.uleb128 0x2a
- 6248 1e3f 01       		.byte	0x1
- 6249 1e40 00000000 		.long	.LASF396
- 6250 1e44 01       		.byte	0x1
- 6251 1e45 EC02     		.value	0x2ec
- 6252 1e47 01       		.byte	0x1
- 6253 1e48 7B000000 		.long	0x7b
- 6254 1e4c 00000000 		.quad	.LFB621
- 6254      00000000 
- 6255 1e54 00000000 		.quad	.LFE621
- 6255      00000000 
- 6256 1e5c 00000000 		.long	.LLST31
- 6257 1e60 E91E0000 		.long	0x1ee9
- 6258 1e64 26       		.uleb128 0x26
- 6259 1e65 00000000 		.long	.LASF389
- 6260 1e69 01       		.byte	0x1
- 6261 1e6a EC02     		.value	0x2ec
- 6262 1e6c E91E0000 		.long	0x1ee9
- 6263 1e70 02       		.byte	0x2
- 6264 1e71 91       		.byte	0x91
-
GAS LISTING /tmp/ccXzRABk.s 			page 140
-
-
- 6265 1e72 48       		.sleb128 -56
- 6266 1e73 26       		.uleb128 0x26
- 6267 1e74 00000000 		.long	.LASF390
- 6268 1e78 01       		.byte	0x1
- 6269 1e79 EC02     		.value	0x2ec
- 6270 1e7b 72080000 		.long	0x872
- 6271 1e7f 02       		.byte	0x2
- 6272 1e80 91       		.byte	0x91
- 6273 1e81 44       		.sleb128 -60
- 6274 1e82 24       		.uleb128 0x24
- 6275 1e83 726300   		.string	"rc"
- 6276 1e86 01       		.byte	0x1
- 6277 1e87 EE02     		.value	0x2ee
- 6278 1e89 7B000000 		.long	0x7b
- 6279 1e8d 02       		.byte	0x2
- 6280 1e8e 91       		.byte	0x91
- 6281 1e8f 6C       		.sleb128 -20
- 6282 1e90 28       		.uleb128 0x28
- 6283 1e91 00000000 		.long	.LASF46
- 6284 1e95 01       		.byte	0x1
- 6285 1e96 EF02     		.value	0x2ef
- 6286 1e98 EF1E0000 		.long	0x1eef
- 6287 1e9c 02       		.byte	0x2
- 6288 1e9d 91       		.byte	0x91
- 6289 1e9e 60       		.sleb128 -32
- 6290 1e9f 23       		.uleb128 0x23
- 6291 1ea0 00000000 		.long	.LASF353
- 6292 1ea4 051F0000 		.long	0x1f05
- 6293 1ea8 01       		.byte	0x1
- 6294 1ea9 09       		.byte	0x9
- 6295 1eaa 03       		.byte	0x3
- 6296 1eab 00000000 		.quad	__PRETTY_FUNCTION__.7674
- 6296      00000000 
- 6297 1eb3 23       		.uleb128 0x23
- 6298 1eb4 00000000 		.long	.LASF354
- 6299 1eb8 0A1F0000 		.long	0x1f0a
- 6300 1ebc 01       		.byte	0x1
- 6301 1ebd 09       		.byte	0x9
- 6302 1ebe 03       		.byte	0x3
- 6303 1ebf 00000000 		.quad	__func__.7675
- 6303      00000000 
- 6304 1ec7 29       		.uleb128 0x29
- 6305 1ec8 00000000 		.quad	.LBB5
- 6305      00000000 
- 6306 1ed0 00000000 		.quad	.LBE5
- 6306      00000000 
- 6307 1ed8 24       		.uleb128 0x24
- 6308 1ed9 6F626A00 		.string	"obj"
- 6309 1edd 01       		.byte	0x1
- 6310 1ede 0603     		.value	0x306
- 6311 1ee0 DE030000 		.long	0x3de
- 6312 1ee4 02       		.byte	0x2
- 6313 1ee5 91       		.byte	0x91
- 6314 1ee6 58       		.sleb128 -40
- 6315 1ee7 00       		.byte	0x0
- 6316 1ee8 00       		.byte	0x0
- 6317 1ee9 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccXzRABk.s 			page 141
-
-
- 6318 1eea 08       		.byte	0x8
- 6319 1eeb 3B1D0000 		.long	0x1d3b
- 6320 1eef 0A       		.uleb128 0xa
- 6321 1ef0 08       		.byte	0x8
- 6322 1ef1 98080000 		.long	0x898
- 6323 1ef5 1B       		.uleb128 0x1b
- 6324 1ef6 C1000000 		.long	0xc1
- 6325 1efa 051F0000 		.long	0x1f05
- 6326 1efe 17       		.uleb128 0x17
- 6327 1eff B1000000 		.long	0xb1
- 6328 1f03 11       		.byte	0x11
- 6329 1f04 00       		.byte	0x0
- 6330 1f05 0B       		.uleb128 0xb
- 6331 1f06 F51E0000 		.long	0x1ef5
- 6332 1f0a 0B       		.uleb128 0xb
- 6333 1f0b F51E0000 		.long	0x1ef5
- 6334 1f0f 28       		.uleb128 0x28
- 6335 1f10 00000000 		.long	.LASF391
- 6336 1f14 01       		.byte	0x1
- 6337 1f15 8A02     		.value	0x28a
- 6338 1f17 87020000 		.long	0x287
- 6339 1f1b 09       		.byte	0x9
- 6340 1f1c 03       		.byte	0x3
- 6341 1f1d 00000000 		.quad	KCipherVecReg_vt_v1
- 6341      00000000 
- 6342 1f25 1B       		.uleb128 0x1b
- 6343 1f26 C1000000 		.long	0xc1
- 6344 1f2a 351F0000 		.long	0x1f35
- 6345 1f2e 17       		.uleb128 0x17
- 6346 1f2f B1000000 		.long	0xb1
- 6347 1f33 0B       		.byte	0xb
- 6348 1f34 00       		.byte	0x0
- 6349 1f35 2B       		.uleb128 0x2b
- 6350 1f36 00000000 		.long	.LASF397
- 6351 1f3a 01       		.byte	0x1
- 6352 1f3b 38       		.byte	0x38
- 6353 1f3c 4B1F0000 		.long	0x1f4b
- 6354 1f40 01       		.byte	0x1
- 6355 1f41 09       		.byte	0x9
- 6356 1f42 03       		.byte	0x3
- 6357 1f43 00000000 		.quad	KCipherVecRegClassName
- 6357      00000000 
- 6358 1f4b 0B       		.uleb128 0xb
- 6359 1f4c 251F0000 		.long	0x1f25
- 6360 1f50 00       		.byte	0x0
- 6361              		.section	.debug_abbrev
- 6362 0000 01       		.uleb128 0x1
- 6363 0001 11       		.uleb128 0x11
- 6364 0002 01       		.byte	0x1
- 6365 0003 25       		.uleb128 0x25
- 6366 0004 0E       		.uleb128 0xe
- 6367 0005 13       		.uleb128 0x13
- 6368 0006 0B       		.uleb128 0xb
- 6369 0007 03       		.uleb128 0x3
- 6370 0008 0E       		.uleb128 0xe
- 6371 0009 1B       		.uleb128 0x1b
- 6372 000a 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccXzRABk.s 			page 142
-
-
- 6373 000b 11       		.uleb128 0x11
- 6374 000c 01       		.uleb128 0x1
- 6375 000d 12       		.uleb128 0x12
- 6376 000e 01       		.uleb128 0x1
- 6377 000f 10       		.uleb128 0x10
- 6378 0010 06       		.uleb128 0x6
- 6379 0011 00       		.byte	0x0
- 6380 0012 00       		.byte	0x0
- 6381 0013 02       		.uleb128 0x2
- 6382 0014 24       		.uleb128 0x24
- 6383 0015 00       		.byte	0x0
- 6384 0016 0B       		.uleb128 0xb
- 6385 0017 0B       		.uleb128 0xb
- 6386 0018 3E       		.uleb128 0x3e
- 6387 0019 0B       		.uleb128 0xb
- 6388 001a 03       		.uleb128 0x3
- 6389 001b 0E       		.uleb128 0xe
- 6390 001c 00       		.byte	0x0
- 6391 001d 00       		.byte	0x0
- 6392 001e 03       		.uleb128 0x3
- 6393 001f 24       		.uleb128 0x24
- 6394 0020 00       		.byte	0x0
- 6395 0021 0B       		.uleb128 0xb
- 6396 0022 0B       		.uleb128 0xb
- 6397 0023 3E       		.uleb128 0x3e
- 6398 0024 0B       		.uleb128 0xb
- 6399 0025 03       		.uleb128 0x3
- 6400 0026 08       		.uleb128 0x8
- 6401 0027 00       		.byte	0x0
- 6402 0028 00       		.byte	0x0
- 6403 0029 04       		.uleb128 0x4
- 6404 002a 16       		.uleb128 0x16
- 6405 002b 00       		.byte	0x0
- 6406 002c 03       		.uleb128 0x3
- 6407 002d 0E       		.uleb128 0xe
- 6408 002e 3A       		.uleb128 0x3a
- 6409 002f 0B       		.uleb128 0xb
- 6410 0030 3B       		.uleb128 0x3b
- 6411 0031 0B       		.uleb128 0xb
- 6412 0032 49       		.uleb128 0x49
- 6413 0033 13       		.uleb128 0x13
- 6414 0034 00       		.byte	0x0
- 6415 0035 00       		.byte	0x0
- 6416 0036 05       		.uleb128 0x5
- 6417 0037 13       		.uleb128 0x13
- 6418 0038 01       		.byte	0x1
- 6419 0039 03       		.uleb128 0x3
- 6420 003a 0E       		.uleb128 0xe
- 6421 003b 0B       		.uleb128 0xb
- 6422 003c 0B       		.uleb128 0xb
- 6423 003d 3A       		.uleb128 0x3a
- 6424 003e 0B       		.uleb128 0xb
- 6425 003f 3B       		.uleb128 0x3b
- 6426 0040 0B       		.uleb128 0xb
- 6427 0041 01       		.uleb128 0x1
- 6428 0042 13       		.uleb128 0x13
- 6429 0043 00       		.byte	0x0
-
GAS LISTING /tmp/ccXzRABk.s 			page 143
-
-
- 6430 0044 00       		.byte	0x0
- 6431 0045 06       		.uleb128 0x6
- 6432 0046 0D       		.uleb128 0xd
- 6433 0047 00       		.byte	0x0
- 6434 0048 03       		.uleb128 0x3
- 6435 0049 0E       		.uleb128 0xe
- 6436 004a 3A       		.uleb128 0x3a
- 6437 004b 0B       		.uleb128 0xb
- 6438 004c 3B       		.uleb128 0x3b
- 6439 004d 0B       		.uleb128 0xb
- 6440 004e 49       		.uleb128 0x49
- 6441 004f 13       		.uleb128 0x13
- 6442 0050 38       		.uleb128 0x38
- 6443 0051 0A       		.uleb128 0xa
- 6444 0052 00       		.byte	0x0
- 6445 0053 00       		.byte	0x0
- 6446 0054 07       		.uleb128 0x7
- 6447 0055 35       		.uleb128 0x35
- 6448 0056 00       		.byte	0x0
- 6449 0057 49       		.uleb128 0x49
- 6450 0058 13       		.uleb128 0x13
- 6451 0059 00       		.byte	0x0
- 6452 005a 00       		.byte	0x0
- 6453 005b 08       		.uleb128 0x8
- 6454 005c 24       		.uleb128 0x24
- 6455 005d 00       		.byte	0x0
- 6456 005e 0B       		.uleb128 0xb
- 6457 005f 0B       		.uleb128 0xb
- 6458 0060 3E       		.uleb128 0x3e
- 6459 0061 0B       		.uleb128 0xb
- 6460 0062 00       		.byte	0x0
- 6461 0063 00       		.byte	0x0
- 6462 0064 09       		.uleb128 0x9
- 6463 0065 0F       		.uleb128 0xf
- 6464 0066 00       		.byte	0x0
- 6465 0067 0B       		.uleb128 0xb
- 6466 0068 0B       		.uleb128 0xb
- 6467 0069 00       		.byte	0x0
- 6468 006a 00       		.byte	0x0
- 6469 006b 0A       		.uleb128 0xa
- 6470 006c 0F       		.uleb128 0xf
- 6471 006d 00       		.byte	0x0
- 6472 006e 0B       		.uleb128 0xb
- 6473 006f 0B       		.uleb128 0xb
- 6474 0070 49       		.uleb128 0x49
- 6475 0071 13       		.uleb128 0x13
- 6476 0072 00       		.byte	0x0
- 6477 0073 00       		.byte	0x0
- 6478 0074 0B       		.uleb128 0xb
- 6479 0075 26       		.uleb128 0x26
- 6480 0076 00       		.byte	0x0
- 6481 0077 49       		.uleb128 0x49
- 6482 0078 13       		.uleb128 0x13
- 6483 0079 00       		.byte	0x0
- 6484 007a 00       		.byte	0x0
- 6485 007b 0C       		.uleb128 0xc
- 6486 007c 04       		.uleb128 0x4
-
GAS LISTING /tmp/ccXzRABk.s 			page 144
-
-
- 6487 007d 01       		.byte	0x1
- 6488 007e 0B       		.uleb128 0xb
- 6489 007f 0B       		.uleb128 0xb
- 6490 0080 3A       		.uleb128 0x3a
- 6491 0081 0B       		.uleb128 0xb
- 6492 0082 3B       		.uleb128 0x3b
- 6493 0083 0B       		.uleb128 0xb
- 6494 0084 01       		.uleb128 0x1
- 6495 0085 13       		.uleb128 0x13
- 6496 0086 00       		.byte	0x0
- 6497 0087 00       		.byte	0x0
- 6498 0088 0D       		.uleb128 0xd
- 6499 0089 28       		.uleb128 0x28
- 6500 008a 00       		.byte	0x0
- 6501 008b 03       		.uleb128 0x3
- 6502 008c 0E       		.uleb128 0xe
- 6503 008d 1C       		.uleb128 0x1c
- 6504 008e 0D       		.uleb128 0xd
- 6505 008f 00       		.byte	0x0
- 6506 0090 00       		.byte	0x0
- 6507 0091 0E       		.uleb128 0xe
- 6508 0092 0D       		.uleb128 0xd
- 6509 0093 00       		.byte	0x0
- 6510 0094 03       		.uleb128 0x3
- 6511 0095 08       		.uleb128 0x8
- 6512 0096 3A       		.uleb128 0x3a
- 6513 0097 0B       		.uleb128 0xb
- 6514 0098 3B       		.uleb128 0x3b
- 6515 0099 0B       		.uleb128 0xb
- 6516 009a 49       		.uleb128 0x49
- 6517 009b 13       		.uleb128 0x13
- 6518 009c 38       		.uleb128 0x38
- 6519 009d 0A       		.uleb128 0xa
- 6520 009e 00       		.byte	0x0
- 6521 009f 00       		.byte	0x0
- 6522 00a0 0F       		.uleb128 0xf
- 6523 00a1 15       		.uleb128 0x15
- 6524 00a2 01       		.byte	0x1
- 6525 00a3 27       		.uleb128 0x27
- 6526 00a4 0C       		.uleb128 0xc
- 6527 00a5 01       		.uleb128 0x1
- 6528 00a6 13       		.uleb128 0x13
- 6529 00a7 00       		.byte	0x0
- 6530 00a8 00       		.byte	0x0
- 6531 00a9 10       		.uleb128 0x10
- 6532 00aa 05       		.uleb128 0x5
- 6533 00ab 00       		.byte	0x0
- 6534 00ac 49       		.uleb128 0x49
- 6535 00ad 13       		.uleb128 0x13
- 6536 00ae 00       		.byte	0x0
- 6537 00af 00       		.byte	0x0
- 6538 00b0 11       		.uleb128 0x11
- 6539 00b1 15       		.uleb128 0x15
- 6540 00b2 01       		.byte	0x1
- 6541 00b3 27       		.uleb128 0x27
- 6542 00b4 0C       		.uleb128 0xc
- 6543 00b5 49       		.uleb128 0x49
-
GAS LISTING /tmp/ccXzRABk.s 			page 145
-
-
- 6544 00b6 13       		.uleb128 0x13
- 6545 00b7 01       		.uleb128 0x1
- 6546 00b8 13       		.uleb128 0x13
- 6547 00b9 00       		.byte	0x0
- 6548 00ba 00       		.byte	0x0
- 6549 00bb 12       		.uleb128 0x12
- 6550 00bc 26       		.uleb128 0x26
- 6551 00bd 00       		.byte	0x0
- 6552 00be 00       		.byte	0x0
- 6553 00bf 00       		.byte	0x0
- 6554 00c0 13       		.uleb128 0x13
- 6555 00c1 17       		.uleb128 0x17
- 6556 00c2 01       		.byte	0x1
- 6557 00c3 03       		.uleb128 0x3
- 6558 00c4 0E       		.uleb128 0xe
- 6559 00c5 0B       		.uleb128 0xb
- 6560 00c6 0B       		.uleb128 0xb
- 6561 00c7 3A       		.uleb128 0x3a
- 6562 00c8 0B       		.uleb128 0xb
- 6563 00c9 3B       		.uleb128 0x3b
- 6564 00ca 0B       		.uleb128 0xb
- 6565 00cb 01       		.uleb128 0x1
- 6566 00cc 13       		.uleb128 0x13
- 6567 00cd 00       		.byte	0x0
- 6568 00ce 00       		.byte	0x0
- 6569 00cf 14       		.uleb128 0x14
- 6570 00d0 0D       		.uleb128 0xd
- 6571 00d1 00       		.byte	0x0
- 6572 00d2 03       		.uleb128 0x3
- 6573 00d3 0E       		.uleb128 0xe
- 6574 00d4 3A       		.uleb128 0x3a
- 6575 00d5 0B       		.uleb128 0xb
- 6576 00d6 3B       		.uleb128 0x3b
- 6577 00d7 0B       		.uleb128 0xb
- 6578 00d8 49       		.uleb128 0x49
- 6579 00d9 13       		.uleb128 0x13
- 6580 00da 00       		.byte	0x0
- 6581 00db 00       		.byte	0x0
- 6582 00dc 15       		.uleb128 0x15
- 6583 00dd 0D       		.uleb128 0xd
- 6584 00de 00       		.byte	0x0
- 6585 00df 03       		.uleb128 0x3
- 6586 00e0 08       		.uleb128 0x8
- 6587 00e1 3A       		.uleb128 0x3a
- 6588 00e2 0B       		.uleb128 0xb
- 6589 00e3 3B       		.uleb128 0x3b
- 6590 00e4 0B       		.uleb128 0xb
- 6591 00e5 49       		.uleb128 0x49
- 6592 00e6 13       		.uleb128 0x13
- 6593 00e7 00       		.byte	0x0
- 6594 00e8 00       		.byte	0x0
- 6595 00e9 16       		.uleb128 0x16
- 6596 00ea 01       		.uleb128 0x1
- 6597 00eb 01       		.byte	0x1
- 6598 00ec 8742     		.uleb128 0x2107
- 6599 00ee 0C       		.uleb128 0xc
- 6600 00ef 49       		.uleb128 0x49
-
GAS LISTING /tmp/ccXzRABk.s 			page 146
-
-
- 6601 00f0 13       		.uleb128 0x13
- 6602 00f1 01       		.uleb128 0x1
- 6603 00f2 13       		.uleb128 0x13
- 6604 00f3 00       		.byte	0x0
- 6605 00f4 00       		.byte	0x0
- 6606 00f5 17       		.uleb128 0x17
- 6607 00f6 21       		.uleb128 0x21
- 6608 00f7 00       		.byte	0x0
- 6609 00f8 49       		.uleb128 0x49
- 6610 00f9 13       		.uleb128 0x13
- 6611 00fa 2F       		.uleb128 0x2f
- 6612 00fb 0B       		.uleb128 0xb
- 6613 00fc 00       		.byte	0x0
- 6614 00fd 00       		.byte	0x0
- 6615 00fe 18       		.uleb128 0x18
- 6616 00ff 15       		.uleb128 0x15
- 6617 0100 01       		.byte	0x1
- 6618 0101 49       		.uleb128 0x49
- 6619 0102 13       		.uleb128 0x13
- 6620 0103 01       		.uleb128 0x1
- 6621 0104 13       		.uleb128 0x13
- 6622 0105 00       		.byte	0x0
- 6623 0106 00       		.byte	0x0
- 6624 0107 19       		.uleb128 0x19
- 6625 0108 18       		.uleb128 0x18
- 6626 0109 00       		.byte	0x0
- 6627 010a 00       		.byte	0x0
- 6628 010b 00       		.byte	0x0
- 6629 010c 1A       		.uleb128 0x1a
- 6630 010d 13       		.uleb128 0x13
- 6631 010e 01       		.byte	0x1
- 6632 010f 03       		.uleb128 0x3
- 6633 0110 0E       		.uleb128 0xe
- 6634 0111 0B       		.uleb128 0xb
- 6635 0112 05       		.uleb128 0x5
- 6636 0113 3A       		.uleb128 0x3a
- 6637 0114 0B       		.uleb128 0xb
- 6638 0115 3B       		.uleb128 0x3b
- 6639 0116 0B       		.uleb128 0xb
- 6640 0117 01       		.uleb128 0x1
- 6641 0118 13       		.uleb128 0x13
- 6642 0119 00       		.byte	0x0
- 6643 011a 00       		.byte	0x0
- 6644 011b 1B       		.uleb128 0x1b
- 6645 011c 01       		.uleb128 0x1
- 6646 011d 01       		.byte	0x1
- 6647 011e 49       		.uleb128 0x49
- 6648 011f 13       		.uleb128 0x13
- 6649 0120 01       		.uleb128 0x1
- 6650 0121 13       		.uleb128 0x13
- 6651 0122 00       		.byte	0x0
- 6652 0123 00       		.byte	0x0
- 6653 0124 1C       		.uleb128 0x1c
- 6654 0125 04       		.uleb128 0x4
- 6655 0126 01       		.byte	0x1
- 6656 0127 03       		.uleb128 0x3
- 6657 0128 0E       		.uleb128 0xe
-
GAS LISTING /tmp/ccXzRABk.s 			page 147
-
-
- 6658 0129 0B       		.uleb128 0xb
- 6659 012a 0B       		.uleb128 0xb
- 6660 012b 3A       		.uleb128 0x3a
- 6661 012c 0B       		.uleb128 0xb
- 6662 012d 3B       		.uleb128 0x3b
- 6663 012e 0B       		.uleb128 0xb
- 6664 012f 01       		.uleb128 0x1
- 6665 0130 13       		.uleb128 0x13
- 6666 0131 00       		.byte	0x0
- 6667 0132 00       		.byte	0x0
- 6668 0133 1D       		.uleb128 0x1d
- 6669 0134 04       		.uleb128 0x4
- 6670 0135 01       		.byte	0x1
- 6671 0136 03       		.uleb128 0x3
- 6672 0137 0E       		.uleb128 0xe
- 6673 0138 0B       		.uleb128 0xb
- 6674 0139 0B       		.uleb128 0xb
- 6675 013a 3A       		.uleb128 0x3a
- 6676 013b 0B       		.uleb128 0xb
- 6677 013c 3B       		.uleb128 0x3b
- 6678 013d 05       		.uleb128 0x5
- 6679 013e 01       		.uleb128 0x1
- 6680 013f 13       		.uleb128 0x13
- 6681 0140 00       		.byte	0x0
- 6682 0141 00       		.byte	0x0
- 6683 0142 1E       		.uleb128 0x1e
- 6684 0143 2E       		.uleb128 0x2e
- 6685 0144 01       		.byte	0x1
- 6686 0145 03       		.uleb128 0x3
- 6687 0146 0E       		.uleb128 0xe
- 6688 0147 3A       		.uleb128 0x3a
- 6689 0148 0B       		.uleb128 0xb
- 6690 0149 3B       		.uleb128 0x3b
- 6691 014a 0B       		.uleb128 0xb
- 6692 014b 27       		.uleb128 0x27
- 6693 014c 0C       		.uleb128 0xc
- 6694 014d 49       		.uleb128 0x49
- 6695 014e 13       		.uleb128 0x13
- 6696 014f 11       		.uleb128 0x11
- 6697 0150 01       		.uleb128 0x1
- 6698 0151 12       		.uleb128 0x12
- 6699 0152 01       		.uleb128 0x1
- 6700 0153 40       		.uleb128 0x40
- 6701 0154 06       		.uleb128 0x6
- 6702 0155 01       		.uleb128 0x1
- 6703 0156 13       		.uleb128 0x13
- 6704 0157 00       		.byte	0x0
- 6705 0158 00       		.byte	0x0
- 6706 0159 1F       		.uleb128 0x1f
- 6707 015a 05       		.uleb128 0x5
- 6708 015b 00       		.byte	0x0
- 6709 015c 03       		.uleb128 0x3
- 6710 015d 0E       		.uleb128 0xe
- 6711 015e 3A       		.uleb128 0x3a
- 6712 015f 0B       		.uleb128 0xb
- 6713 0160 3B       		.uleb128 0x3b
- 6714 0161 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccXzRABk.s 			page 148
-
-
- 6715 0162 49       		.uleb128 0x49
- 6716 0163 13       		.uleb128 0x13
- 6717 0164 02       		.uleb128 0x2
- 6718 0165 0A       		.uleb128 0xa
- 6719 0166 00       		.byte	0x0
- 6720 0167 00       		.byte	0x0
- 6721 0168 20       		.uleb128 0x20
- 6722 0169 34       		.uleb128 0x34
- 6723 016a 00       		.byte	0x0
- 6724 016b 03       		.uleb128 0x3
- 6725 016c 08       		.uleb128 0x8
- 6726 016d 3A       		.uleb128 0x3a
- 6727 016e 0B       		.uleb128 0xb
- 6728 016f 3B       		.uleb128 0x3b
- 6729 0170 0B       		.uleb128 0xb
- 6730 0171 49       		.uleb128 0x49
- 6731 0172 13       		.uleb128 0x13
- 6732 0173 02       		.uleb128 0x2
- 6733 0174 0A       		.uleb128 0xa
- 6734 0175 00       		.byte	0x0
- 6735 0176 00       		.byte	0x0
- 6736 0177 21       		.uleb128 0x21
- 6737 0178 2E       		.uleb128 0x2e
- 6738 0179 01       		.byte	0x1
- 6739 017a 03       		.uleb128 0x3
- 6740 017b 0E       		.uleb128 0xe
- 6741 017c 3A       		.uleb128 0x3a
- 6742 017d 0B       		.uleb128 0xb
- 6743 017e 3B       		.uleb128 0x3b
- 6744 017f 0B       		.uleb128 0xb
- 6745 0180 27       		.uleb128 0x27
- 6746 0181 0C       		.uleb128 0xc
- 6747 0182 11       		.uleb128 0x11
- 6748 0183 01       		.uleb128 0x1
- 6749 0184 12       		.uleb128 0x12
- 6750 0185 01       		.uleb128 0x1
- 6751 0186 40       		.uleb128 0x40
- 6752 0187 06       		.uleb128 0x6
- 6753 0188 01       		.uleb128 0x1
- 6754 0189 13       		.uleb128 0x13
- 6755 018a 00       		.byte	0x0
- 6756 018b 00       		.byte	0x0
- 6757 018c 22       		.uleb128 0x22
- 6758 018d 05       		.uleb128 0x5
- 6759 018e 00       		.byte	0x0
- 6760 018f 03       		.uleb128 0x3
- 6761 0190 08       		.uleb128 0x8
- 6762 0191 3A       		.uleb128 0x3a
- 6763 0192 0B       		.uleb128 0xb
- 6764 0193 3B       		.uleb128 0x3b
- 6765 0194 0B       		.uleb128 0xb
- 6766 0195 49       		.uleb128 0x49
- 6767 0196 13       		.uleb128 0x13
- 6768 0197 02       		.uleb128 0x2
- 6769 0198 0A       		.uleb128 0xa
- 6770 0199 00       		.byte	0x0
- 6771 019a 00       		.byte	0x0
-
GAS LISTING /tmp/ccXzRABk.s 			page 149
-
-
- 6772 019b 23       		.uleb128 0x23
- 6773 019c 34       		.uleb128 0x34
- 6774 019d 00       		.byte	0x0
- 6775 019e 03       		.uleb128 0x3
- 6776 019f 0E       		.uleb128 0xe
- 6777 01a0 49       		.uleb128 0x49
- 6778 01a1 13       		.uleb128 0x13
- 6779 01a2 34       		.uleb128 0x34
- 6780 01a3 0C       		.uleb128 0xc
- 6781 01a4 02       		.uleb128 0x2
- 6782 01a5 0A       		.uleb128 0xa
- 6783 01a6 00       		.byte	0x0
- 6784 01a7 00       		.byte	0x0
- 6785 01a8 24       		.uleb128 0x24
- 6786 01a9 34       		.uleb128 0x34
- 6787 01aa 00       		.byte	0x0
- 6788 01ab 03       		.uleb128 0x3
- 6789 01ac 08       		.uleb128 0x8
- 6790 01ad 3A       		.uleb128 0x3a
- 6791 01ae 0B       		.uleb128 0xb
- 6792 01af 3B       		.uleb128 0x3b
- 6793 01b0 05       		.uleb128 0x5
- 6794 01b1 49       		.uleb128 0x49
- 6795 01b2 13       		.uleb128 0x13
- 6796 01b3 02       		.uleb128 0x2
- 6797 01b4 0A       		.uleb128 0xa
- 6798 01b5 00       		.byte	0x0
- 6799 01b6 00       		.byte	0x0
- 6800 01b7 25       		.uleb128 0x25
- 6801 01b8 2E       		.uleb128 0x2e
- 6802 01b9 01       		.byte	0x1
- 6803 01ba 03       		.uleb128 0x3
- 6804 01bb 0E       		.uleb128 0xe
- 6805 01bc 3A       		.uleb128 0x3a
- 6806 01bd 0B       		.uleb128 0xb
- 6807 01be 3B       		.uleb128 0x3b
- 6808 01bf 05       		.uleb128 0x5
- 6809 01c0 27       		.uleb128 0x27
- 6810 01c1 0C       		.uleb128 0xc
- 6811 01c2 49       		.uleb128 0x49
- 6812 01c3 13       		.uleb128 0x13
- 6813 01c4 11       		.uleb128 0x11
- 6814 01c5 01       		.uleb128 0x1
- 6815 01c6 12       		.uleb128 0x12
- 6816 01c7 01       		.uleb128 0x1
- 6817 01c8 40       		.uleb128 0x40
- 6818 01c9 06       		.uleb128 0x6
- 6819 01ca 01       		.uleb128 0x1
- 6820 01cb 13       		.uleb128 0x13
- 6821 01cc 00       		.byte	0x0
- 6822 01cd 00       		.byte	0x0
- 6823 01ce 26       		.uleb128 0x26
- 6824 01cf 05       		.uleb128 0x5
- 6825 01d0 00       		.byte	0x0
- 6826 01d1 03       		.uleb128 0x3
- 6827 01d2 0E       		.uleb128 0xe
- 6828 01d3 3A       		.uleb128 0x3a
-
GAS LISTING /tmp/ccXzRABk.s 			page 150
-
-
- 6829 01d4 0B       		.uleb128 0xb
- 6830 01d5 3B       		.uleb128 0x3b
- 6831 01d6 05       		.uleb128 0x5
- 6832 01d7 49       		.uleb128 0x49
- 6833 01d8 13       		.uleb128 0x13
- 6834 01d9 02       		.uleb128 0x2
- 6835 01da 0A       		.uleb128 0xa
- 6836 01db 00       		.byte	0x0
- 6837 01dc 00       		.byte	0x0
- 6838 01dd 27       		.uleb128 0x27
- 6839 01de 05       		.uleb128 0x5
- 6840 01df 00       		.byte	0x0
- 6841 01e0 03       		.uleb128 0x3
- 6842 01e1 08       		.uleb128 0x8
- 6843 01e2 3A       		.uleb128 0x3a
- 6844 01e3 0B       		.uleb128 0xb
- 6845 01e4 3B       		.uleb128 0x3b
- 6846 01e5 05       		.uleb128 0x5
- 6847 01e6 49       		.uleb128 0x49
- 6848 01e7 13       		.uleb128 0x13
- 6849 01e8 02       		.uleb128 0x2
- 6850 01e9 0A       		.uleb128 0xa
- 6851 01ea 00       		.byte	0x0
- 6852 01eb 00       		.byte	0x0
- 6853 01ec 28       		.uleb128 0x28
- 6854 01ed 34       		.uleb128 0x34
- 6855 01ee 00       		.byte	0x0
- 6856 01ef 03       		.uleb128 0x3
- 6857 01f0 0E       		.uleb128 0xe
- 6858 01f1 3A       		.uleb128 0x3a
- 6859 01f2 0B       		.uleb128 0xb
- 6860 01f3 3B       		.uleb128 0x3b
- 6861 01f4 05       		.uleb128 0x5
- 6862 01f5 49       		.uleb128 0x49
- 6863 01f6 13       		.uleb128 0x13
- 6864 01f7 02       		.uleb128 0x2
- 6865 01f8 0A       		.uleb128 0xa
- 6866 01f9 00       		.byte	0x0
- 6867 01fa 00       		.byte	0x0
- 6868 01fb 29       		.uleb128 0x29
- 6869 01fc 0B       		.uleb128 0xb
- 6870 01fd 01       		.byte	0x1
- 6871 01fe 11       		.uleb128 0x11
- 6872 01ff 01       		.uleb128 0x1
- 6873 0200 12       		.uleb128 0x12
- 6874 0201 01       		.uleb128 0x1
- 6875 0202 00       		.byte	0x0
- 6876 0203 00       		.byte	0x0
- 6877 0204 2A       		.uleb128 0x2a
- 6878 0205 2E       		.uleb128 0x2e
- 6879 0206 01       		.byte	0x1
- 6880 0207 3F       		.uleb128 0x3f
- 6881 0208 0C       		.uleb128 0xc
- 6882 0209 03       		.uleb128 0x3
- 6883 020a 0E       		.uleb128 0xe
- 6884 020b 3A       		.uleb128 0x3a
- 6885 020c 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccXzRABk.s 			page 151
-
-
- 6886 020d 3B       		.uleb128 0x3b
- 6887 020e 05       		.uleb128 0x5
- 6888 020f 27       		.uleb128 0x27
- 6889 0210 0C       		.uleb128 0xc
- 6890 0211 49       		.uleb128 0x49
- 6891 0212 13       		.uleb128 0x13
- 6892 0213 11       		.uleb128 0x11
- 6893 0214 01       		.uleb128 0x1
- 6894 0215 12       		.uleb128 0x12
- 6895 0216 01       		.uleb128 0x1
- 6896 0217 40       		.uleb128 0x40
- 6897 0218 06       		.uleb128 0x6
- 6898 0219 01       		.uleb128 0x1
- 6899 021a 13       		.uleb128 0x13
- 6900 021b 00       		.byte	0x0
- 6901 021c 00       		.byte	0x0
- 6902 021d 2B       		.uleb128 0x2b
- 6903 021e 34       		.uleb128 0x34
- 6904 021f 00       		.byte	0x0
- 6905 0220 03       		.uleb128 0x3
- 6906 0221 0E       		.uleb128 0xe
- 6907 0222 3A       		.uleb128 0x3a
- 6908 0223 0B       		.uleb128 0xb
- 6909 0224 3B       		.uleb128 0x3b
- 6910 0225 0B       		.uleb128 0xb
- 6911 0226 49       		.uleb128 0x49
- 6912 0227 13       		.uleb128 0x13
- 6913 0228 3F       		.uleb128 0x3f
- 6914 0229 0C       		.uleb128 0xc
- 6915 022a 02       		.uleb128 0x2
- 6916 022b 0A       		.uleb128 0xa
- 6917 022c 00       		.byte	0x0
- 6918 022d 00       		.byte	0x0
- 6919 022e 00       		.byte	0x0
- 6920              		.section	.debug_pubnames,"", at progbits
- 6921 0000 3F000000 		.long	0x3f
- 6922 0004 0200     		.value	0x2
- 6923 0006 00000000 		.long	.Ldebug_info0
- 6924 000a 511F0000 		.long	0x1f51
- 6925 000e 3E1E0000 		.long	0x1e3e
- 6926 0012 4B436970 		.string	"KCipherVecRegMake"
- 6926      68657256 
- 6926      65635265 
- 6926      674D616B 
- 6926      6500
- 6927 0024 351F0000 		.long	0x1f35
- 6928 0028 4B436970 		.string	"KCipherVecRegClassName"
- 6928      68657256 
- 6928      65635265 
- 6928      67436C61 
- 6928      73734E61 
- 6929 003f 00000000 		.long	0x0
- 6930              		.section	.debug_aranges,"", at progbits
- 6931 0000 2C000000 		.long	0x2c
- 6932 0004 0200     		.value	0x2
- 6933 0006 00000000 		.long	.Ldebug_info0
- 6934 000a 08       		.byte	0x8
-
GAS LISTING /tmp/ccXzRABk.s 			page 152
-
-
- 6935 000b 00       		.byte	0x0
- 6936 000c 0000     		.value	0x0
- 6937 000e 0000     		.value	0x0
- 6938 0010 00000000 		.quad	.Ltext0
- 6938      00000000 
- 6939 0018 64100000 		.quad	.Letext0-.Ltext0
- 6939      00000000 
- 6940 0020 00000000 		.quad	0x0
- 6940      00000000 
- 6941 0028 00000000 		.quad	0x0
- 6941      00000000 
- 6942              		.section	.debug_str,"MS", at progbits,1
- 6943              	.LASF89:
- 6944 0000 645F6B65 		.string	"d_key"
- 6944      7900
- 6945              	.LASF331:
- 6946 0006 72634475 		.string	"rcDuplicate"
- 6946      706C6963 
- 6946      61746500 
- 6947              	.LASF134:
- 6948 0012 7263436F 		.string	"rcCondition"
- 6948      6E646974 
- 6948      696F6E00 
- 6949              	.LASF248:
- 6950 001e 7263456E 		.string	"rcEncrypting"
- 6950      63727970 
- 6950      74696E67 
- 6950      00
- 6951              	.LASF361:
- 6952 002b 4B436970 		.string	"KCipherVecRegSetDecryptCounterFunc"
- 6952      68657256 
- 6952      65635265 
- 6952      67536574 
- 6952      44656372 
- 6953              	.LASF207:
- 6954 004e 72634F70 		.string	"rcOpening"
- 6954      656E696E 
- 6954      6700
- 6955              	.LASF215:
- 6956 0058 72635065 		.string	"rcPersisting"
- 6956      72736973 
- 6956      74696E67 
- 6956      00
- 6957              	.LASF253:
- 6958 0065 72635365 		.string	"rcSending"
- 6958      6E64696E 
- 6958      6700
- 6959              	.LASF45:
- 6960 006f 4B436970 		.string	"KCipherVecReg"
- 6960      68657256 
- 6960      65635265 
- 6960      6700
- 6961              	.LASF247:
- 6962 007d 72634170 		.string	"rcAppending"
- 6962      70656E64 
- 6962      696E6700 
- 6963              	.LASF233:
-
GAS LISTING /tmp/ccXzRABk.s 			page 153
-
-
- 6964 0089 72635369 		.string	"rcSignaling"
- 6964      676E616C 
- 6964      696E6700 
- 6965              	.LASF14:
- 6966 0095 4442475F 		.string	"DBG_BLAST"
- 6966      424C4153 
- 6966      5400
- 6967              	.LASF289:
- 6968 009f 72635369 		.string	"rcSignalSet"
- 6968      676E616C 
- 6968      53657400 
- 6969              	.LASF235:
- 6970 00ab 72634174 		.string	"rcAttaching"
- 6970      74616368 
- 6970      696E6700 
- 6971              	.LASF167:
- 6972 00b7 72635461 		.string	"rcTable"
- 6972      626C6500 
- 6973              	.LASF66:
- 6974 00bf 64656372 		.string	"decrypt_cfb"
- 6974      7970745F 
- 6974      63666200 
- 6975              	.LASF131:
- 6976 00cb 72634275 		.string	"rcBuffer"
- 6976      66666572 
- 6976      00
- 6977              	.LASF263:
- 6978 00d4 72634D65 		.string	"rcMemory"
- 6978      6D6F7279 
- 6978      00
- 6979              	.LASF196:
- 6980 00dd 72634C6F 		.string	"rcLocking"
- 6980      636B696E 
- 6980      6700
- 6981              	.LASF231:
- 6982 00e7 72635061 		.string	"rcParsing"
- 6982      7273696E 
- 6982      6700
- 6983              	.LASF260:
- 6984 00f1 72635365 		.string	"rcSelf"
- 6984      6C6600
- 6985              	.LASF153:
- 6986 00f8 72634D65 		.string	"rcMetadata"
- 6986      74616461 
- 6986      746100
- 6987              	.LASF276:
- 6988 0103 72634172 		.string	"rcArcHardLink"
- 6988      63486172 
- 6988      644C696E 
- 6988      6B00
- 6989              	.LASF348:
- 6990 0111 4B436970 		.string	"KCipherVecRegDestroy"
- 6990      68657256 
- 6990      65635265 
- 6990      67446573 
- 6990      74726F79 
- 6991              	.LASF102:
-
GAS LISTING /tmp/ccXzRABk.s 			page 154
-
-
- 6992 0126 7263436F 		.string	"rcCont"
- 6992      6E7400
- 6993              	.LASF284:
- 6994 012d 72634368 		.string	"rcChecksum"
- 6994      65636B73 
- 6994      756D00
- 6995              	.LASF354:
- 6996 0138 5F5F6675 		.string	"__func__"
- 6996      6E635F5F 
- 6996      00
- 6997              	.LASF363:
- 6998 0141 4B436970 		.string	"KCipherVecRegDecryptV1"
- 6998      68657256 
- 6998      65635265 
- 6998      67446563 
- 6998      72797074 
- 6999              	.LASF328:
- 7000 0158 7263546F 		.string	"rcTooShort"
- 7000      6F53686F 
- 7000      727400
- 7001              	.LASF158:
- 7002 0163 72635061 		.string	"rcPagemap"
- 7002      67656D61 
- 7002      7000
- 7003              	.LASF110:
- 7004 016d 72634170 		.string	"rcApp"
- 7004      7000
- 7005              	.LASF10:
- 7006 0173 61746F6D 		.string	"atomic32_t"
- 7006      69633332 
- 7006      5F7400
- 7007              	.LASF56:
- 7008 017e 7365745F 		.string	"set_decrypt_ctr_func"
- 7008      64656372 
- 7008      7970745F 
- 7008      6374725F 
- 7008      66756E63 
- 7009              	.LASF65:
- 7010 0193 656E6372 		.string	"encrypt_cfb"
- 7010      7970745F 
- 7010      63666200 
- 7011              	.LASF172:
- 7012 019f 72635472 		.string	"rcTrie"
- 7012      696500
- 7013              	.LASF113:
- 7014 01a6 72634C61 		.string	"rcLastModule_v1_0"
- 7014      73744D6F 
- 7014      64756C65 
- 7014      5F76315F 
- 7014      3000
- 7015              	.LASF120:
- 7016 01b8 72634C61 		.string	"rcLastModule_v1_1"
- 7016      73744D6F 
- 7016      64756C65 
- 7016      5F76315F 
- 7016      3100
- 7017              	.LASF271:
-
GAS LISTING /tmp/ccXzRABk.s 			page 155
-
-
- 7018 01ca 72634279 		.string	"rcByteOrder"
- 7018      74654F72 
- 7018      64657200 
- 7019              	.LASF84:
- 7020 01d6 4145534B 		.string	"AESKeySchedule"
- 7020      65795363 
- 7020      68656475 
- 7020      6C6500
- 7021              	.LASF332:
- 7022 01e5 72634F75 		.string	"rcOutOfKDirectory"
- 7022      744F664B 
- 7022      44697265 
- 7022      63746F72 
- 7022      7900
- 7023              	.LASF85:
- 7024 01f7 726F756E 		.string	"round_keys"
- 7024      645F6B65 
- 7024      797300
- 7025              	.LASF372:
- 7026 0202 4B436970 		.string	"KCipherVecRegEncryptCbc"
- 7026      68657256 
- 7026      65635265 
- 7026      67456E63 
- 7026      72797074 
- 7027              	.LASF189:
- 7028 021a 7263436F 		.string	"rcConstructing"
- 7028      6E737472 
- 7028      75637469 
- 7028      6E6700
- 7029              	.LASF95:
- 7030 0229 6B636970 		.string	"kcipher_AES"
- 7030      6865725F 
- 7030      41455300 
- 7031              	.LASF96:
- 7032 0235 6B636970 		.string	"kcipher_count"
- 7032      6865725F 
- 7032      636F756E 
- 7032      7400
- 7033              	.LASF390:
- 7034 0243 74797065 		.string	"type"
- 7034      00
- 7035              	.LASF9:
- 7036 0248 72635F74 		.string	"rc_t"
- 7036      00
- 7037              	.LASF265:
- 7038 024d 7263466F 		.string	"rcFormat"
- 7038      726D6174 
- 7038      00
- 7039              	.LASF323:
- 7040 0256 7263556E 		.string	"rcUnauthorized"
- 7040      61757468 
- 7040      6F72697A 
- 7040      656400
- 7041              	.LASF358:
- 7042 0265 4B436970 		.string	"KCipherVecRegSetDecryptIvec"
- 7042      68657256 
- 7042      65635265 
-
GAS LISTING /tmp/ccXzRABk.s 			page 156
-
-
- 7042      67536574 
- 7042      44656372 
- 7043              	.LASF346:
- 7044 0281 63766F75 		.string	"cvout"
- 7044      7400
- 7045              	.LASF203:
- 7046 0287 72635265 		.string	"rcRemoving"
- 7046      6D6F7669 
- 7046      6E6700
- 7047              	.LASF116:
- 7048 0292 72634B72 		.string	"rcKrypto"
- 7048      7970746F 
- 7048      00
- 7049              	.LASF194:
- 7050 029b 72635669 		.string	"rcVisiting"
- 7050      73697469 
- 7050      6E6700
- 7051              	.LASF124:
- 7052 02a6 72634172 		.string	"rcArc"
- 7052      6300
- 7053              	.LASF99:
- 7054 02ac 72634578 		.string	"rcExe"
- 7054      6500
- 7055              	.LASF329:
- 7056 02b2 7263546F 		.string	"rcTooLong"
- 7056      6F4C6F6E 
- 7056      6700
- 7057              	.LASF257:
- 7058 02bc 52434F62 		.string	"RCObject"
- 7058      6A656374 
- 7058      00
- 7059              	.LASF267:
- 7060 02c5 7263496E 		.string	"rcInterface"
- 7060      74657266 
- 7060      61636500 
- 7061              	.LASF195:
- 7062 02d1 72635265 		.string	"rcResolving"
- 7062      736F6C76 
- 7062      696E6700 
- 7063              	.LASF87:
- 7064 02dd 43697068 		.string	"CipherAes"
- 7064      65724165 
- 7064      7300
- 7065              	.LASF137:
- 7066 02e7 72634469 		.string	"rcDirectory"
- 7066      72656374 
- 7066      6F727900 
- 7067              	.LASF2:
- 7068 02f3 6C6F6E67 		.string	"long int"
- 7068      20696E74 
- 7068      00
- 7069              	.LASF385:
- 7070 02fc 4B436970 		.string	"KCipherVecRegInitAes"
- 7070      68657256 
- 7070      65635265 
- 7070      67496E69 
- 7070      74416573 
-
GAS LISTING /tmp/ccXzRABk.s 			page 157
-
-
- 7071              	.LASF225:
- 7072 0311 72635661 		.string	"rcValidating"
- 7072      6C696461 
- 7072      74696E67 
- 7072      00
- 7073              	.LASF44:
- 7074 031e 63697068 		.string	"cipher_ctr_func"
- 7074      65725F63 
- 7074      74725F66 
- 7074      756E6300 
- 7075              	.LASF127:
- 7076 032e 72634172 		.string	"rcArgv"
- 7076      677600
- 7077              	.LASF103:
- 7078 0335 72634353 		.string	"rcCS"
- 7078      00
- 7079              	.LASF184:
- 7080 033a 72635572 		.string	"rcUri"
- 7080      6900
- 7081              	.LASF206:
- 7082 0340 72634372 		.string	"rcCreating"
- 7082      65617469 
- 7082      6E6700
- 7083              	.LASF40:
- 7084 034b 656E6372 		.string	"encrypt_ivec"
- 7084      7970745F 
- 7084      69766563 
- 7084      00
- 7085              	.LASF57:
- 7086 0358 656E6372 		.string	"encrypt"
- 7086      79707400 
- 7087              	.LASF76:
- 7088 0360 76313238 		.string	"v128_u8_t"
- 7088      5F75385F 
- 7088      7400
- 7089              	.LASF19:
- 7090 036a 4442475F 		.string	"DBG_XML"
- 7090      584D4C00 
- 7091              	.LASF31:
- 7092 0372 4442475F 		.string	"DBG_MOD_COUNT"
- 7092      4D4F445F 
- 7092      434F554E 
- 7092      5400
- 7093              	.LASF387:
- 7094 0380 4B436970 		.string	"KCipherVecRegInitNull"
- 7094      68657256 
- 7094      65635265 
- 7094      67496E69 
- 7094      744E756C 
- 7095              	.LASF352:
- 7096 0396 75736572 		.string	"user_key_bits"
- 7096      5F6B6579 
- 7096      5F626974 
- 7096      7300
- 7097              	.LASF108:
- 7098 03a4 72634442 		.string	"rcDB"
- 7098      00
-
GAS LISTING /tmp/ccXzRABk.s 			page 158
-
-
- 7099              	.LASF286:
- 7100 03a9 7263436F 		.string	"rcConnection"
- 7100      6E6E6563 
- 7100      74696F6E 
- 7100      00
- 7101              	.LASF154:
- 7102 03b6 72634D67 		.string	"rcMgr"
- 7102      7200
- 7103              	.LASF316:
- 7104 03bc 72635669 		.string	"rcViolated"
- 7104      6F6C6174 
- 7104      656400
- 7105              	.LASF375:
- 7106 03c7 4B436970 		.string	"KCipherVecRegEncryptPcbc"
- 7106      68657256 
- 7106      65635265 
- 7106      67456E63 
- 7106      72797074 
- 7107              	.LASF249:
- 7108 03e0 72634465 		.string	"rcDecrypting"
- 7108      63727970 
- 7108      74696E67 
- 7108      00
- 7109              	.LASF359:
- 7110 03ed 4B436970 		.string	"KCipherVecRegSetEncryptCounterFunc"
- 7110      68657256 
- 7110      65635265 
- 7110      67536574 
- 7110      456E6372 
- 7111              	.LASF0:
- 7112 0410 7369676E 		.string	"signed char"
- 7112      65642063 
- 7112      68617200 
- 7113              	.LASF5:
- 7114 041c 75696E74 		.string	"uint8_t"
- 7114      385F7400 
- 7115              	.LASF377:
- 7116 0424 4B436970 		.string	"KCipherVecRegEncryptCfb"
- 7116      68657256 
- 7116      65635265 
- 7116      67456E63 
- 7116      72797074 
- 7117              	.LASF132:
- 7118 043c 72634368 		.string	"rcChar"
- 7118      617200
- 7119              	.LASF117:
- 7120 0443 72635244 		.string	"rcRDBMS"
- 7120      424D5300 
- 7121              	.LASF161:
- 7122 044b 72635175 		.string	"rcQueue"
- 7122      65756500 
- 7123              	.LASF353:
- 7124 0453 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 7124      45545459 
- 7124      5F46554E 
- 7124      4354494F 
- 7124      4E5F5F00 
-
GAS LISTING /tmp/ccXzRABk.s 			page 159
-
-
- 7125              	.LASF12:
- 7126 0467 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 7126      4D4F445F 
- 7126      4E4F545F 
- 7126      464F554E 
- 7126      4400
- 7127              	.LASF213:
- 7128 0479 72635265 		.string	"rcReverting"
- 7128      76657274 
- 7128      696E6700 
- 7129              	.LASF129:
- 7130 0485 72634261 		.string	"rcBarrier"
- 7130      72726965 
- 7130      7200
- 7131              	.LASF313:
- 7132 048f 72634578 		.string	"rcExhausted"
- 7132      68617573 
- 7132      74656400 
- 7133              	.LASF3:
- 7134 049b 756E7369 		.string	"unsigned char"
- 7134      676E6564 
- 7134      20636861 
- 7134      7200
- 7135              	.LASF186:
- 7136 04a9 5243436F 		.string	"RCContext"
- 7136      6E746578 
- 7136      7400
- 7137              	.LASF149:
- 7138 04b3 72634C6F 		.string	"rcLock"
- 7138      636B00
- 7139              	.LASF302:
- 7140 04ba 72634261 		.string	"rcBadVersion"
- 7140      64566572 
- 7140      73696F6E 
- 7140      00
- 7141              	.LASF303:
- 7142 04c7 72634465 		.string	"rcDestroyed"
- 7142      7374726F 
- 7142      79656400 
- 7143              	.LASF166:
- 7144 04d3 72635374 		.string	"rcString"
- 7144      72696E67 
- 7144      00
- 7145              	.LASF128:
- 7146 04dc 72634174 		.string	"rcAttr"
- 7146      747200
- 7147              	.LASF150:
- 7148 04e3 72634C6F 		.string	"rcLog"
- 7148      6700
- 7149              	.LASF389:
- 7150 04e9 6E65775F 		.string	"new_obj"
- 7150      6F626A00 
- 7151              	.LASF15:
- 7152 04f1 4442475F 		.string	"DBG_KDB"
- 7152      4B444200 
- 7153              	.LASF254:
- 7154 04f9 72635072 		.string	"rcProcessing"
-
GAS LISTING /tmp/ccXzRABk.s 			page 160
-
-
- 7154      6F636573 
- 7154      73696E67 
- 7154      00
- 7155              	.LASF104:
- 7156 0506 72634646 		.string	"rcFF"
- 7156      00
- 7157              	.LASF393:
- 7158 050b 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/cipher-vec.c"
- 7158      652F726F 
- 7158      6461726D 
- 7158      65722F73 
- 7158      72615F73 
- 7159              	.LASF105:
- 7160 0543 72634653 		.string	"rcFS"
- 7160      00
- 7161              	.LASF347:
- 7162 0548 43697068 		.string	"CipherVecIn"
- 7162      65725665 
- 7162      63496E00 
- 7163              	.LASF192:
- 7164 0554 72634163 		.string	"rcAccessing"
- 7164      63657373 
- 7164      696E6700 
- 7165              	.LASF310:
- 7166 0560 7263496E 		.string	"rcInterrupted"
- 7166      74657272 
- 7166      75707465 
- 7166      6400
- 7167              	.LASF318:
- 7168 056e 72634E6F 		.string	"rcNotFound"
- 7168      74466F75 
- 7168      6E6400
- 7169              	.LASF11:
- 7170 0579 63686172 		.string	"char"
- 7170      00
- 7171              	.LASF373:
- 7172 057e 4B436970 		.string	"KCipherVecRegDecryptCbc"
- 7172      68657256 
- 7172      65635265 
- 7172      67446563 
- 7172      72797074 
- 7173              	.LASF156:
- 7174 0596 72634E6F 		.string	"rcNode"
- 7174      646500
- 7175              	.LASF29:
- 7176 059d 4442475F 		.string	"DBG_AES"
- 7176      41455300 
- 7177              	.LASF287:
- 7178 05a5 72634572 		.string	"rcError"
- 7178      726F7200 
- 7179              	.LASF384:
- 7180 05ad 706F626A 		.string	"pobj"
- 7180      00
- 7181              	.LASF204:
- 7182 05b2 7263436C 		.string	"rcClearing"
- 7182      65617269 
- 7182      6E6700
-
GAS LISTING /tmp/ccXzRABk.s 			page 161
-
-
- 7183              	.LASF262:
- 7184 05bd 72634F66 		.string	"rcOffset"
- 7184      66736574 
- 7184      00
- 7185              	.LASF208:
- 7186 05c6 7263436C 		.string	"rcClosing"
- 7186      6F73696E 
- 7186      6700
- 7187              	.LASF140:
- 7188 05d0 72634669 		.string	"rcFile"
- 7188      6C6500
- 7189              	.LASF169:
- 7190 05d7 72635469 		.string	"rcTimeout"
- 7190      6D656F75 
- 7190      7400
- 7191              	.LASF157:
- 7192 05e1 72634E75 		.string	"rcNumeral"
- 7192      6D657261 
- 7192      6C00
- 7193              	.LASF234:
- 7194 05eb 72635761 		.string	"rcWaiting"
- 7194      6974696E 
- 7194      6700
- 7195              	.LASF238:
- 7196 05f5 72634650 		.string	"rcFPCoding"
- 7196      436F6469 
- 7196      6E6700
- 7197              	.LASF290:
- 7198 0600 72635369 		.string	"rcSize"
- 7198      7A6500
- 7199              	.LASF275:
- 7200 0607 72634469 		.string	"rcDirEntry"
- 7200      72456E74 
- 7200      727900
- 7201              	.LASF227:
- 7202 0612 72634875 		.string	"rcHuffmanCoding"
- 7202      66666D61 
- 7202      6E436F64 
- 7202      696E6700 
- 7203              	.LASF24:
- 7204 0622 4442475F 		.string	"DBG_KFG"
- 7204      4B464700 
- 7205              	.LASF308:
- 7206 062a 72634275 		.string	"rcBusy"
- 7206      737900
- 7207              	.LASF21:
- 7208 0631 4442475F 		.string	"DBG_SRA"
- 7208      53524100 
- 7209              	.LASF266:
- 7210 0639 72635472 		.string	"rcTransfer"
- 7210      616E7366 
- 7210      657200
- 7211              	.LASF18:
- 7212 0644 4442475F 		.string	"DBG_KFS"
- 7212      4B465300 
- 7213              	.LASF221:
- 7214 064c 72635061 		.string	"rcPacking"
-
GAS LISTING /tmp/ccXzRABk.s 			page 162
-
-
- 7214      636B696E 
- 7214      6700
- 7215              	.LASF217:
- 7216 0656 7263436F 		.string	"rcCopying"
- 7216      7079696E 
- 7216      6700
- 7217              	.LASF255:
- 7218 0660 72634964 		.string	"rcIdentifying"
- 7218      656E7469 
- 7218      6679696E 
- 7218      6700
- 7219              	.LASF60:
- 7220 066e 64656372 		.string	"decrypt_ecb"
- 7220      7970745F 
- 7220      65636200 
- 7221              	.LASF224:
- 7222 067a 72634465 		.string	"rcDecoding"
- 7222      636F6469 
- 7222      6E6700
- 7223              	.LASF379:
- 7224 0685 4B436970 		.string	"KCipherVecRegEncryptOfb"
- 7224      68657256 
- 7224      65635265 
- 7224      67456E63 
- 7224      72797074 
- 7225              	.LASF152:
- 7226 069d 72634D65 		.string	"rcMemMap"
- 7226      6D4D6170 
- 7226      00
- 7227              	.LASF197:
- 7228 06a6 7263556E 		.string	"rcUnlocking"
- 7228      6C6F636B 
- 7228      696E6700 
- 7229              	.LASF280:
- 7230 06b2 72634974 		.string	"rcItem"
- 7230      656D00
- 7231              	.LASF82:
- 7232 06b9 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 7232      636B4369 
- 7232      70686572 
- 7232      5665635F 
- 7232      76745F76 
- 7233              	.LASF17:
- 7234 06cf 4442475F 		.string	"DBG_LEGREF"
- 7234      4C454752 
- 7234      454600
- 7235              	.LASF345:
- 7236 06da 6376696E 		.string	"cvin"
- 7236      00
- 7237              	.LASF198:
- 7238 06df 72635265 		.string	"rcRenaming"
- 7238      6E616D69 
- 7238      6E6700
- 7239              	.LASF351:
- 7240 06ea 75736572 		.string	"user_key"
- 7240      5F6B6579 
- 7240      00
-
GAS LISTING /tmp/ccXzRABk.s 			page 163
-
-
- 7241              	.LASF268:
- 7242 06f3 72634964 		.string	"rcId"
- 7242      00
- 7243              	.LASF181:
- 7244 06f8 7263436D 		.string	"rcCmd"
- 7244      6400
- 7245              	.LASF395:
- 7246 06fe 43697068 		.string	"CipherVecOut"
- 7246      65725665 
- 7246      634F7574 
- 7246      00
- 7247              	.LASF27:
- 7248 070b 4442475F 		.string	"DBG_LOADLIB"
- 7248      4C4F4144 
- 7248      4C494200 
- 7249              	.LASF320:
- 7250 0717 7263556E 		.string	"rcUnlocked"
- 7250      6C6F636B 
- 7250      656400
- 7251              	.LASF121:
- 7252 0722 52434D6F 		.string	"RCModule"
- 7252      64756C65 
- 7252      00
- 7253              	.LASF282:
- 7254 072b 7263456E 		.string	"rcEncryption"
- 7254      63727970 
- 7254      74696F6E 
- 7254      00
- 7255              	.LASF317:
- 7256 0738 72634578 		.string	"rcExists"
- 7256      69737473 
- 7256      00
- 7257              	.LASF77:
- 7258 0741 43697068 		.string	"CipherVec"
- 7258      65725665 
- 7258      6300
- 7259              	.LASF59:
- 7260 074b 656E6372 		.string	"encrypt_ecb"
- 7260      7970745F 
- 7260      65636200 
- 7261              	.LASF336:
- 7262 0757 72634F70 		.string	"rcOpen"
- 7262      656E00
- 7263              	.LASF322:
- 7264 075e 72634465 		.string	"rcDeadlock"
- 7264      61646C6F 
- 7264      636B00
- 7265              	.LASF259:
- 7266 0769 72634C69 		.string	"rcLink"
- 7266      6E6B00
- 7267              	.LASF246:
- 7268 0770 7263466C 		.string	"rcFlushing"
- 7268      75736869 
- 7268      6E6700
- 7269              	.LASF294:
- 7270 077b 72634E6F 		.string	"rcNoErr"
- 7270      45727200 
-
GAS LISTING /tmp/ccXzRABk.s 			page 164
-
-
- 7271              	.LASF273:
- 7272 0783 72635461 		.string	"rcTag"
- 7272      6700
- 7273              	.LASF365:
- 7274 0789 4B436970 		.string	"KCipherVecRegDecryptV1Int"
- 7274      68657256 
- 7274      65635265 
- 7274      67446563 
- 7274      72797074 
- 7275              	.LASF23:
- 7276 07a3 4442475F 		.string	"DBG_ALIGN"
- 7276      414C4947 
- 7276      4E00
- 7277              	.LASF237:
- 7278 07ad 72634C6F 		.string	"rcLogging"
- 7278      6767696E 
- 7278      6700
- 7279              	.LASF330:
- 7280 07b7 7263546F 		.string	"rcTooBig"
- 7280      6F426967 
- 7280      00
- 7281              	.LASF174:
- 7282 07c0 72635665 		.string	"rcVector"
- 7282      63746F72 
- 7282      00
- 7283              	.LASF209:
- 7284 07c9 72635265 		.string	"rcResizing"
- 7284      73697A69 
- 7284      6E6700
- 7285              	.LASF183:
- 7286 07d4 72635175 		.string	"rcQuery"
- 7286      65727900 
- 7287              	.LASF8:
- 7288 07dc 6C6F6E67 		.string	"long unsigned int"
- 7288      20756E73 
- 7288      69676E65 
- 7288      6420696E 
- 7288      7400
- 7289              	.LASF315:
- 7290 07ee 72634578 		.string	"rcExcessive"
- 7290      63657373 
- 7290      69766500 
- 7291              	.LASF243:
- 7292 07fa 72634576 		.string	"rcEvaluating"
- 7292      616C7561 
- 7292      74696E67 
- 7292      00
- 7293              	.LASF180:
- 7294 0807 7263526E 		.string	"rcRng"
- 7294      6700
- 7295              	.LASF188:
- 7296 080d 72634361 		.string	"rcCasting"
- 7296      7374696E 
- 7296      6700
- 7297              	.LASF349:
- 7298 0817 73656C66 		.string	"self"
- 7298      00
-
GAS LISTING /tmp/ccXzRABk.s 			page 165
-
-
- 7299              	.LASF148:
- 7300 081c 72634974 		.string	"rcIterator"
- 7300      65726174 
- 7300      6F7200
- 7301              	.LASF83:
- 7302 0827 4B426C6F 		.string	"KBlockCipherVec"
- 7302      636B4369 
- 7302      70686572 
- 7302      56656300 
- 7303              	.LASF165:
- 7304 0837 72635374 		.string	"rcStorage"
- 7304      6F726167 
- 7304      6500
- 7305              	.LASF68:
- 7306 0841 64656372 		.string	"decrypt_ofb"
- 7306      7970745F 
- 7306      6F666200 
- 7307              	.LASF46:
- 7308 084d 626C6F63 		.string	"block_cipher"
- 7308      6B5F6369 
- 7308      70686572 
- 7308      00
- 7309              	.LASF369:
- 7310 085a 626C6F63 		.string	"block_count"
- 7310      6B5F636F 
- 7310      756E7400 
- 7311              	.LASF356:
- 7312 0866 4B436970 		.string	"KCipherVecRegSetEncryptIvec"
- 7312      68657256 
- 7312      65635265 
- 7312      67536574 
- 7312      456E6372 
- 7313              	.LASF277:
- 7314 0882 7263526F 		.string	"rcRow"
- 7314      7700
- 7315              	.LASF20:
- 7316 0888 4442475F 		.string	"DBG_VDB"
- 7316      56444200 
- 7317              	.LASF93:
- 7318 0890 6B636970 		.string	"kcipher_type"
- 7318      6865725F 
- 7318      74797065 
- 7318      00
- 7319              	.LASF396:
- 7320 089d 4B436970 		.string	"KCipherVecRegMake"
- 7320      68657256 
- 7320      65635265 
- 7320      674D616B 
- 7320      6500
- 7321              	.LASF177:
- 7322 08af 72634C61 		.string	"rcLastTarget_v1_0"
- 7322      73745461 
- 7322      72676574 
- 7322      5F76315F 
- 7322      3000
- 7323              	.LASF185:
- 7324 08c1 72634C61 		.string	"rcLastTarget_v1_1"
-
GAS LISTING /tmp/ccXzRABk.s 			page 166
-
-
- 7324      73745461 
- 7324      72676574 
- 7324      5F76315F 
- 7324      3100
- 7325              	.LASF164:
- 7326 08d3 72635365 		.string	"rcSemaphore"
- 7326      6D617068 
- 7326      6F726500 
- 7327              	.LASF218:
- 7328 08df 7263436F 		.string	"rcConcatenating"
- 7328      6E636174 
- 7328      656E6174 
- 7328      696E6700 
- 7329              	.LASF309:
- 7330 08ef 7263496E 		.string	"rcIncomplete"
- 7330      636F6D70 
- 7330      6C657465 
- 7330      00
- 7331              	.LASF338:
- 7332 08fc 72634E6F 		.string	"rcNotOpen"
- 7332      744F7065 
- 7332      6E00
- 7333              	.LASF147:
- 7334 0906 7263496E 		.string	"rcIndex"
- 7334      64657800 
- 7335              	.LASF67:
- 7336 090e 656E6372 		.string	"encrypt_ofb"
- 7336      7970745F 
- 7336      6F666200 
- 7337              	.LASF55:
- 7338 091a 7365745F 		.string	"set_encrypt_ctr_func"
- 7338      656E6372 
- 7338      7970745F 
- 7338      6374725F 
- 7338      66756E63 
- 7339              	.LASF22:
- 7340 092f 4442475F 		.string	"DBG_XARC"
- 7340      58415243 
- 7340      00
- 7341              	.LASF392:
- 7342 0938 474E5520 		.string	"GNU C 4.4.2"
- 7342      4320342E 
- 7342      342E3200 
- 7343              	.LASF357:
- 7344 0944 69766563 		.string	"ivec"
- 7344      00
- 7345              	.LASF100:
- 7346 0949 72635275 		.string	"rcRuntime"
- 7346      6E74696D 
- 7346      6500
- 7347              	.LASF139:
- 7348 0953 7263586D 		.string	"rcXmlDoc"
- 7348      6C446F63 
- 7348      00
- 7349              	.LASF72:
- 7350 095c 6C6F6E67 		.string	"long long int"
- 7350      206C6F6E 
-
GAS LISTING /tmp/ccXzRABk.s 			page 167
-
-
- 7350      6720696E 
- 7350      7400
- 7351              	.LASF220:
- 7352 096a 7263506F 		.string	"rcPositioning"
- 7352      73697469 
- 7352      6F6E696E 
- 7352      6700
- 7353              	.LASF34:
- 7354 0978 636F756E 		.string	"counter"
- 7354      74657200 
- 7355              	.LASF70:
- 7356 0980 64656372 		.string	"decrypt_ctr"
- 7356      7970745F 
- 7356      63747200 
- 7357              	.LASF94:
- 7358 098c 6B636970 		.string	"kcipher_null"
- 7358      6865725F 
- 7358      6E756C6C 
- 7358      00
- 7359              	.LASF151:
- 7360 0999 72634D44 		.string	"rcMD5SumFmt"
- 7360      3553756D 
- 7360      466D7400 
- 7361              	.LASF202:
- 7362 09a5 7263496E 		.string	"rcInserting"
- 7362      73657274 
- 7362      696E6700 
- 7363              	.LASF250:
- 7364 09b1 7263436F 		.string	"rcComparing"
- 7364      6D706172 
- 7364      696E6700 
- 7365              	.LASF312:
- 7366 09bd 7263456D 		.string	"rcEmpty"
- 7366      70747900 
- 7367              	.LASF144:
- 7368 09c5 7263466F 		.string	"rcFormatter"
- 7368      726D6174 
- 7368      74657200 
- 7369              	.LASF368:
- 7370 09d1 4B436970 		.string	"KCipherVecRegEncryptEcb"
- 7370      68657256 
- 7370      65635265 
- 7370      67456E63 
- 7370      72797074 
- 7371              	.LASF75:
- 7372 09e9 646F7562 		.string	"double"
- 7372      6C6500
- 7373              	.LASF229:
- 7374 09f0 72635265 		.string	"rcRegistering"
- 7374      67697374 
- 7374      6572696E 
- 7374      6700
- 7375              	.LASF35:
- 7376 09fe 72656663 		.string	"refcount"
- 7376      6F756E74 
- 7376      00
- 7377              	.LASF118:
-
GAS LISTING /tmp/ccXzRABk.s 			page 168
-
-
- 7378 0a07 72634E53 		.string	"rcNS"
- 7378      00
- 7379              	.LASF261:
- 7380 0a0c 72635061 		.string	"rcParam"
- 7380      72616D00 
- 7381              	.LASF226:
- 7382 0a14 72634578 		.string	"rcExecuting"
- 7382      65637574 
- 7382      696E6700 
- 7383              	.LASF122:
- 7384 0a20 52435461 		.string	"RCTarget"
- 7384      72676574 
- 7384      00
- 7385              	.LASF283:
- 7386 0a29 72634372 		.string	"rcCrc"
- 7386      6300
- 7387              	.LASF26:
- 7388 0a2f 4442475F 		.string	"DBG_SEARCH"
- 7388      53454152 
- 7388      434800
- 7389              	.LASF111:
- 7390 0a3a 7263584D 		.string	"rcXML"
- 7390      4C00
- 7391              	.LASF350:
- 7392 0a40 4B436970 		.string	"KCipherVecRegSetEncryptKey"
- 7392      68657256 
- 7392      65635265 
- 7392      67536574 
- 7392      456E6372 
- 7393              	.LASF69:
- 7394 0a5b 656E6372 		.string	"encrypt_ctr"
- 7394      7970745F 
- 7394      63747200 
- 7395              	.LASF28:
- 7396 0a67 4442475F 		.string	"DBG_VFS"
- 7396      56465300 
- 7397              	.LASF73:
- 7398 0a6f 666C6F61 		.string	"float"
- 7398      7400
- 7399              	.LASF205:
- 7400 0a75 72635570 		.string	"rcUpdating"
- 7400      64617469 
- 7400      6E6700
- 7401              	.LASF232:
- 7402 0a80 7263436F 		.string	"rcConverting"
- 7402      6E766572 
- 7402      74696E67 
- 7402      00
- 7403              	.LASF64:
- 7404 0a8d 64656372 		.string	"decrypt_pcbc"
- 7404      7970745F 
- 7404      70636263 
- 7404      00
- 7405              	.LASF97:
- 7406 0a9a 4B426C6F 		.string	"KBlockCipher"
- 7406      636B4369 
- 7406      70686572 
-
GAS LISTING /tmp/ccXzRABk.s 			page 169
-
-
- 7406      00
- 7407              	.LASF175:
- 7408 0aa7 72634479 		.string	"rcDylib"
- 7408      6C696200 
- 7409              	.LASF324:
- 7410 0aaf 72635265 		.string	"rcReadonly"
- 7410      61646F6E 
- 7410      6C7900
- 7411              	.LASF7:
- 7412 0aba 756E7369 		.string	"unsigned int"
- 7412      676E6564 
- 7412      20696E74 
- 7412      00
- 7413              	.LASF325:
- 7414 0ac7 72635772 		.string	"rcWriteonly"
- 7414      6974656F 
- 7414      6E6C7900 
- 7415              	.LASF47:
- 7416 0ad3 4B436970 		.string	"KCipher_vt"
- 7416      6865725F 
- 7416      767400
- 7417              	.LASF319:
- 7418 0ade 72634C6F 		.string	"rcLocked"
- 7418      636B6564 
- 7418      00
- 7419              	.LASF201:
- 7420 0ae7 72635072 		.string	"rcProjecting"
- 7420      6F6A6563 
- 7420      74696E67 
- 7420      00
- 7421              	.LASF106:
- 7422 0af4 72635053 		.string	"rcPS"
- 7422      00
- 7423              	.LASF291:
- 7424 0af9 72635265 		.string	"rcRefcount"
- 7424      66636F75 
- 7424      6E7400
- 7425              	.LASF126:
- 7426 0b04 7263546F 		.string	"rcTocEntry"
- 7426      63456E74 
- 7426      727900
- 7427              	.LASF281:
- 7428 0b0f 72634D6F 		.string	"rcMode"
- 7428      646500
- 7429              	.LASF340:
- 7430 0b16 7263556E 		.string	"rcUnequal"
- 7430      65717561 
- 7430      6C00
- 7431              	.LASF321:
- 7432 0b20 72634465 		.string	"rcDetached"
- 7432      74616368 
- 7432      656400
- 7433              	.LASF327:
- 7434 0b2b 7263496E 		.string	"rcInPlaceNotAllowed"
- 7434      506C6163 
- 7434      654E6F74 
- 7434      416C6C6F 
-
GAS LISTING /tmp/ccXzRABk.s 			page 170
-
-
- 7434      77656400 
- 7435              	.LASF269:
- 7436 0b3f 72635261 		.string	"rcRange"
- 7436      6E676500 
- 7437              	.LASF394:
- 7438 0b47 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 7438      652F726F 
- 7438      6461726D 
- 7438      65722F73 
- 7438      72615F73 
- 7439              	.LASF279:
- 7440 0b8f 72634C61 		.string	"rcLastObject_v1_0"
- 7440      73744F62 
- 7440      6A656374 
- 7440      5F76315F 
- 7440      3000
- 7441              	.LASF292:
- 7442 0ba1 72634C61 		.string	"rcLastObject_v1_1"
- 7442      73744F62 
- 7442      6A656374 
- 7442      5F76315F 
- 7442      3100
- 7443              	.LASF98:
- 7444 0bb3 62797465 		.string	"byte"
- 7444      00
- 7445              	.LASF314:
- 7446 0bb8 7263496E 		.string	"rcInsufficient"
- 7446      73756666 
- 7446      69636965 
- 7446      6E7400
- 7447              	.LASF245:
- 7448 0bc7 72634C61 		.string	"rcLastContext_v1_0"
- 7448      7374436F 
- 7448      6E746578 
- 7448      745F7631 
- 7448      5F3000
- 7449              	.LASF256:
- 7450 0bda 72634C61 		.string	"rcLastContext_v1_1"
- 7450      7374436F 
- 7450      6E746578 
- 7450      745F7631 
- 7450      5F3100
- 7451              	.LASF364:
- 7452 0bed 4B436970 		.string	"KCipherVecRegEncryptV1Int"
- 7452      68657256 
- 7452      65635265 
- 7452      67456E63 
- 7452      72797074 
- 7453              	.LASF39:
- 7454 0c07 64656372 		.string	"decrypt_key"
- 7454      7970745F 
- 7454      6B657900 
- 7455              	.LASF176:
- 7456 0c13 72634578 		.string	"rcExpression"
- 7456      70726573 
- 7456      73696F6E 
- 7456      00
-
GAS LISTING /tmp/ccXzRABk.s 			page 171
-
-
- 7457              	.LASF222:
- 7458 0c20 7263556E 		.string	"rcUnpacking"
- 7458      7061636B 
- 7458      696E6700 
- 7459              	.LASF138:
- 7460 0c2c 7263446F 		.string	"rcDoc"
- 7460      6300
- 7461              	.LASF13:
- 7462 0c32 4442475F 		.string	"DBG_APP"
- 7462      41505000 
- 7463              	.LASF239:
- 7464 0c3a 72634D75 		.string	"rcMultiplexing"
- 7464      6C746970 
- 7464      6C657869 
- 7464      6E6700
- 7465              	.LASF241:
- 7466 0c49 72635365 		.string	"rcSearching"
- 7466      61726368 
- 7466      696E6700 
- 7467              	.LASF341:
- 7468 0c55 72634661 		.string	"rcFailed"
- 7468      696C6564 
- 7468      00
- 7469              	.LASF48:
- 7470 0c5e 4B436970 		.string	"KCipher_vt_v1"
- 7470      6865725F 
- 7470      76745F76 
- 7470      3100
- 7471              	.LASF362:
- 7472 0c6c 4B436970 		.string	"KCipherVecRegEncryptV1"
- 7472      68657256 
- 7472      65635265 
- 7472      67456E63 
- 7472      72797074 
- 7473              	.LASF306:
- 7474 0c83 7263496E 		.string	"rcIncorrect"
- 7474      636F7272 
- 7474      65637400 
- 7475              	.LASF145:
- 7476 0c8f 72634675 		.string	"rcFunctParam"
- 7476      6E637450 
- 7476      6172616D 
- 7476      00
- 7477              	.LASF38:
- 7478 0c9c 656E6372 		.string	"encrypt_key"
- 7478      7970745F 
- 7478      6B657900 
- 7479              	.LASF270:
- 7480 0ca8 7263436F 		.string	"rcConstraint"
- 7480      6E737472 
- 7480      61696E74 
- 7480      00
- 7481              	.LASF216:
- 7482 0cb5 72634672 		.string	"rcFreezing"
- 7482      65657A69 
- 7482      6E6700
- 7483              	.LASF296:
-
GAS LISTING /tmp/ccXzRABk.s 			page 172
-
-
- 7484 0cc0 7263556E 		.string	"rcUnknown"
- 7484      6B6E6F77 
- 7484      6E00
- 7485              	.LASF135:
- 7486 0cca 72634375 		.string	"rcCursor"
- 7486      72736F72 
- 7486      00
- 7487              	.LASF293:
- 7488 0cd3 52435374 		.string	"RCState"
- 7488      61746500 
- 7489              	.LASF81:
- 7490 0cdb 4B426C6F 		.string	"KBlockCipherByte"
- 7490      636B4369 
- 7490      70686572 
- 7490      42797465 
- 7490      00
- 7491              	.LASF141:
- 7492 0cec 72634669 		.string	"rcFileDesc"
- 7492      6C654465 
- 7492      736300
- 7493              	.LASF79:
- 7494 0cf7 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 7494      636B4369 
- 7494      70686572 
- 7494      42797465 
- 7494      5F76745F 
- 7495              	.LASF333:
- 7496 0d0e 72634967 		.string	"rcIgnored"
- 7496      6E6F7265 
- 7496      6400
- 7497              	.LASF90:
- 7498 0d18 655F6976 		.string	"e_ivec"
- 7498      656300
- 7499              	.LASF191:
- 7500 0d1f 72635265 		.string	"rcReleasing"
- 7500      6C656173 
- 7500      696E6700 
- 7501              	.LASF381:
- 7502 0d2b 4B436970 		.string	"KCipherVecRegEncryptCtr"
- 7502      68657256 
- 7502      65635265 
- 7502      67456E63 
- 7502      72797074 
- 7503              	.LASF114:
- 7504 0d43 72634B46 		.string	"rcKFG"
- 7504      4700
- 7505              	.LASF272:
- 7506 0d49 72634D65 		.string	"rcMessage"
- 7506      73736167 
- 7506      6500
- 7507              	.LASF219:
- 7508 0d53 7263466F 		.string	"rcFormatting"
- 7508      726D6174 
- 7508      74696E67 
- 7508      00
- 7509              	.LASF112:
- 7510 0d60 72635352 		.string	"rcSRA"
-
GAS LISTING /tmp/ccXzRABk.s 			page 173
-
-
- 7510      4100
- 7511              	.LASF288:
- 7512 0d66 7263456E 		.string	"rcEnvironment"
- 7512      7669726F 
- 7512      6E6D656E 
- 7512      7400
- 7513              	.LASF74:
- 7514 0d74 6C6F6E67 		.string	"long long unsigned int"
- 7514      206C6F6E 
- 7514      6720756E 
- 7514      7369676E 
- 7514      65642069 
- 7515              	.LASF50:
- 7516 0d8b 64657374 		.string	"destroy"
- 7516      726F7900 
- 7517              	.LASF170:
- 7518 0d93 7263546F 		.string	"rcToken"
- 7518      6B656E00 
- 7519              	.LASF230:
- 7520 0d9b 7263546F 		.string	"rcTokenizing"
- 7520      6B656E69 
- 7520      7A696E67 
- 7520      00
- 7521              	.LASF16:
- 7522 0da8 4442475F 		.string	"DBG_REF"
- 7522      52454600 
- 7523              	.LASF211:
- 7524 0db0 72635772 		.string	"rcWriting"
- 7524      6974696E 
- 7524      6700
- 7525              	.LASF187:
- 7526 0dba 7263416C 		.string	"rcAllocating"
- 7526      6C6F6361 
- 7526      74696E67 
- 7526      00
- 7527              	.LASF371:
- 7528 0dc7 4B436970 		.string	"KCipherVecRegDecryptEcb"
- 7528      68657256 
- 7528      65635265 
- 7528      67446563 
- 7528      72797074 
- 7529              	.LASF173:
- 7530 0ddf 72635479 		.string	"rcType"
- 7530      706500
- 7531              	.LASF274:
- 7532 0de6 72635265 		.string	"rcResources"
- 7532      736F7572 
- 7532      63657300 
- 7533              	.LASF155:
- 7534 0df2 72634E61 		.string	"rcNamelist"
- 7534      6D656C69 
- 7534      737400
- 7535              	.LASF391:
- 7536 0dfd 4B436970 		.string	"KCipherVecReg_vt_v1"
- 7536      68657256 
- 7536      65635265 
- 7536      675F7674 
-
GAS LISTING /tmp/ccXzRABk.s 			page 174
-
-
- 7536      5F763100 
- 7537              	.LASF355:
- 7538 0e11 4B436970 		.string	"KCipherVecRegSetDecryptKey"
- 7538      68657256 
- 7538      65635265 
- 7538      67536574 
- 7538      44656372 
- 7539              	.LASF383:
- 7540 0e2c 4B436970 		.string	"KCipherVecRegAllocAes"
- 7540      68657256 
- 7540      65635265 
- 7540      67416C6C 
- 7540      6F634165 
- 7541              	.LASF339:
- 7542 0e42 7263556E 		.string	"rcUndefined"
- 7542      64656669 
- 7542      6E656400 
- 7543              	.LASF91:
- 7544 0e4e 645F6976 		.string	"d_ivec"
- 7544      656300
- 7545              	.LASF307:
- 7546 0e55 7263496E 		.string	"rcInconsistent"
- 7546      636F6E73 
- 7546      69737465 
- 7546      6E7400
- 7547              	.LASF252:
- 7548 0e64 72635265 		.string	"rcRetrieving"
- 7548      74726965 
- 7548      76696E67 
- 7548      00
- 7549              	.LASF58:
- 7550 0e71 64656372 		.string	"decrypt"
- 7550      79707400 
- 7551              	.LASF49:
- 7552 0e79 76657273 		.string	"version"
- 7552      696F6E00 
- 7553              	.LASF264:
- 7554 0e81 72634E61 		.string	"rcName"
- 7554      6D6500
- 7555              	.LASF54:
- 7556 0e88 7365745F 		.string	"set_decrypt_ivec"
- 7556      64656372 
- 7556      7970745F 
- 7556      69766563 
- 7556      00
- 7557              	.LASF301:
- 7558 0e99 72634E75 		.string	"rcNull"
- 7558      6C6C00
- 7559              	.LASF223:
- 7560 0ea0 7263456E 		.string	"rcEncoding"
- 7560      636F6469 
- 7560      6E6700
- 7561              	.LASF378:
- 7562 0eab 4B436970 		.string	"KCipherVecRegDecryptCfb"
- 7562      68657256 
- 7562      65635265 
- 7562      67446563 
-
GAS LISTING /tmp/ccXzRABk.s 			page 175
-
-
- 7562      72797074 
- 7563              	.LASF142:
- 7564 0ec3 72634669 		.string	"rcFileFormat"
- 7564      6C65466F 
- 7564      726D6174 
- 7564      00
- 7565              	.LASF179:
- 7566 0ed0 7263456E 		.string	"rcEncryptionKey"
- 7566      63727970 
- 7566      74696F6E 
- 7566      4B657900 
- 7567              	.LASF244:
- 7568 0ee0 7263496E 		.string	"rcInflating"
- 7568      666C6174 
- 7568      696E6700 
- 7569              	.LASF326:
- 7570 0eec 72634E6F 		.string	"rcNoPerm"
- 7570      5065726D 
- 7570      00
- 7571              	.LASF214:
- 7572 0ef5 72635265 		.string	"rcResetting"
- 7572      73657474 
- 7572      696E6700 
- 7573              	.LASF36:
- 7574 0f01 626C6F63 		.string	"block_size"
- 7574      6B5F7369 
- 7574      7A6500
- 7575              	.LASF162:
- 7576 0f0c 72635257 		.string	"rcRWLock"
- 7576      4C6F636B 
- 7576      00
- 7577              	.LASF193:
- 7578 0f15 72634C69 		.string	"rcListing"
- 7578      7374696E 
- 7578      6700
- 7579              	.LASF63:
- 7580 0f1f 656E6372 		.string	"encrypt_pcbc"
- 7580      7970745F 
- 7580      70636263 
- 7580      00
- 7581              	.LASF32:
- 7582 0f2c 4B526566 		.string	"KRefcount"
- 7582      636F756E 
- 7582      7400
- 7583              	.LASF143:
- 7584 0f36 72634675 		.string	"rcFunction"
- 7584      6E637469 
- 7584      6F6E00
- 7585              	.LASF299:
- 7586 0f41 7263556E 		.string	"rcUnrecognized"
- 7586      7265636F 
- 7586      676E697A 
- 7586      656400
- 7587              	.LASF86:
- 7588 0f50 6E756D62 		.string	"number_of_rounds"
- 7588      65725F6F 
- 7588      665F726F 
-
GAS LISTING /tmp/ccXzRABk.s 			page 176
-
-
- 7588      756E6473 
- 7588      00
- 7589              	.LASF115:
- 7590 0f61 7263416C 		.string	"rcAlign"
- 7590      69676E00 
- 7591              	.LASF178:
- 7592 0f69 72635072 		.string	"rcProduction"
- 7592      6F647563 
- 7592      74696F6E 
- 7592      00
- 7593              	.LASF168:
- 7594 0f76 72635468 		.string	"rcThread"
- 7594      72656164 
- 7594      00
- 7595              	.LASF37:
- 7596 0f7f 6E616D65 		.string	"name"
- 7596      00
- 7597              	.LASF388:
- 7598 0f84 6E756C6C 		.string	"null"
- 7598      00
- 7599              	.LASF52:
- 7600 0f89 7365745F 		.string	"set_decrypt_key"
- 7600      64656372 
- 7600      7970745F 
- 7600      6B657900 
- 7601              	.LASF370:
- 7602 0f99 706F7574 		.string	"pout"
- 7602      00
- 7603              	.LASF33:
- 7604 0f9e 4B436970 		.string	"KCipher"
- 7604      68657200 
- 7605              	.LASF78:
- 7606 0fa6 4B426C6F 		.string	"KBlockCipher_vt"
- 7606      636B4369 
- 7606      70686572 
- 7606      5F767400 
- 7607              	.LASF285:
- 7608 0fb6 72635365 		.string	"rcSeed"
- 7608      656400
- 7609              	.LASF242:
- 7610 0fbd 72634C6F 		.string	"rcLoading"
- 7610      6164696E 
- 7610      6700
- 7611              	.LASF1:
- 7612 0fc7 73686F72 		.string	"short int"
- 7612      7420696E 
- 7612      7400
- 7613              	.LASF366:
- 7614 0fd1 4B436970 		.string	"KCipherVecRegEncrypt"
- 7614      68657256 
- 7614      65635265 
- 7614      67456E63 
- 7614      72797074 
- 7615              	.LASF380:
- 7616 0fe6 4B436970 		.string	"KCipherVecRegDecryptOfb"
- 7616      68657256 
- 7616      65635265 
-
GAS LISTING /tmp/ccXzRABk.s 			page 177
-
-
- 7616      67446563 
- 7616      72797074 
- 7617              	.LASF360:
- 7618 0ffe 66756E63 		.string	"func"
- 7618      00
- 7619              	.LASF335:
- 7620 1003 72634C61 		.string	"rcLastState_v1_0"
- 7620      73745374 
- 7620      6174655F 
- 7620      76315F30 
- 7620      00
- 7621              	.LASF344:
- 7622 1014 72634C61 		.string	"rcLastState_v1_1"
- 7622      73745374 
- 7622      6174655F 
- 7622      76315F31 
- 7622      00
- 7623              	.LASF109:
- 7624 1025 72635644 		.string	"rcVDB"
- 7624      4200
- 7625              	.LASF92:
- 7626 102b 43697068 		.string	"CipherNull"
- 7626      65724E75 
- 7626      6C6C00
- 7627              	.LASF397:
- 7628 1036 4B436970 		.string	"KCipherVecRegClassName"
- 7628      68657256 
- 7628      65635265 
- 7628      67436C61 
- 7628      73734E61 
- 7629              	.LASF376:
- 7630 104d 4B436970 		.string	"KCipherVecRegDecryptPcbc"
- 7630      68657256 
- 7630      65635265 
- 7630      67446563 
- 7630      72797074 
- 7631              	.LASF51:
- 7632 1066 7365745F 		.string	"set_encrypt_key"
- 7632      656E6372 
- 7632      7970745F 
- 7632      6B657900 
- 7633              	.LASF107:
- 7634 1076 72635846 		.string	"rcXF"
- 7634      00
- 7635              	.LASF71:
- 7636 107b 4B436970 		.string	"KCipher_ptr"
- 7636      6865725F 
- 7636      70747200 
- 7637              	.LASF88:
- 7638 1087 655F6B65 		.string	"e_key"
- 7638      7900
- 7639              	.LASF190:
- 7640 108d 72634465 		.string	"rcDestroying"
- 7640      7374726F 
- 7640      79696E67 
- 7640      00
- 7641              	.LASF295:
-
GAS LISTING /tmp/ccXzRABk.s 			page 178
-
-
- 7642 109a 7263446F 		.string	"rcDone"
- 7642      6E6500
- 7643              	.LASF125:
- 7644 10a1 7263546F 		.string	"rcToc"
- 7644      6300
- 7645              	.LASF43:
- 7646 10a7 64656372 		.string	"decrypt_counter_func"
- 7646      7970745F 
- 7646      636F756E 
- 7646      7465725F 
- 7646      66756E63 
- 7647              	.LASF382:
- 7648 10bc 4B436970 		.string	"KCipherVecRegDecryptCtr"
- 7648      68657256 
- 7648      65635265 
- 7648      67446563 
- 7648      72797074 
- 7649              	.LASF199:
- 7650 10d4 7263416C 		.string	"rcAliasing"
- 7650      69617369 
- 7650      6E6700
- 7651              	.LASF367:
- 7652 10df 4B436970 		.string	"KCipherVecRegDecrypt"
- 7652      68657256 
- 7652      65635265 
- 7652      67446563 
- 7652      72797074 
- 7653              	.LASF160:
- 7654 10f4 72635072 		.string	"rcProcess"
- 7654      6F636573 
- 7654      7300
- 7655              	.LASF258:
- 7656 10fe 72634E6F 		.string	"rcNoObj"
- 7656      4F626A00 
- 7657              	.LASF297:
- 7658 1106 7263556E 		.string	"rcUnsupported"
- 7658      73757070 
- 7658      6F727465 
- 7658      6400
- 7659              	.LASF236:
- 7660 1114 72634465 		.string	"rcDetaching"
- 7660      74616368 
- 7660      696E6700 
- 7661              	.LASF133:
- 7662 1120 7263436F 		.string	"rcColumn"
- 7662      6C756D6E 
- 7662      00
- 7663              	.LASF42:
- 7664 1129 656E6372 		.string	"encrypt_counter_func"
- 7664      7970745F 
- 7664      636F756E 
- 7664      7465725F 
- 7664      66756E63 
- 7665              	.LASF298:
- 7666 113e 7263556E 		.string	"rcUnexpected"
- 7666      65787065 
- 7666      63746564 
-
GAS LISTING /tmp/ccXzRABk.s 			page 179
-
-
- 7666      00
- 7667              	.LASF62:
- 7668 114b 64656372 		.string	"decrypt_cbc"
- 7668      7970745F 
- 7668      63626300 
- 7669              	.LASF6:
- 7670 1157 75696E74 		.string	"uint32_t"
- 7670      33325F74 
- 7670      00
- 7671              	.LASF119:
- 7672 1160 72635646 		.string	"rcVFS"
- 7672      5300
- 7673              	.LASF25:
- 7674 1166 4442475F 		.string	"DBG_KRYPTO"
- 7674      4B525950 
- 7674      544F00
- 7675              	.LASF343:
- 7676 1171 72635772 		.string	"rcWrongType"
- 7676      6F6E6754 
- 7676      79706500 
- 7677              	.LASF278:
- 7678 117d 72634C69 		.string	"rcLibrary"
- 7678      62726172 
- 7678      7900
- 7679              	.LASF311:
- 7680 1187 72634361 		.string	"rcCanceled"
- 7680      6E63656C 
- 7680      656400
- 7681              	.LASF182:
- 7682 1192 72634461 		.string	"rcData"
- 7682      746100
- 7683              	.LASF146:
- 7684 1199 72634865 		.string	"rcHeader"
- 7684      61646572 
- 7684      00
- 7685              	.LASF4:
- 7686 11a2 73686F72 		.string	"short unsigned int"
- 7686      7420756E 
- 7686      7369676E 
- 7686      65642069 
- 7686      6E7400
- 7687              	.LASF136:
- 7688 11b5 72634461 		.string	"rcDatabase"
- 7688      74616261 
- 7688      736500
- 7689              	.LASF61:
- 7690 11c0 656E6372 		.string	"encrypt_cbc"
- 7690      7970745F 
- 7690      63626300 
- 7691              	.LASF212:
- 7692 11cc 7263436F 		.string	"rcCommitting"
- 7692      6D6D6974 
- 7692      74696E67 
- 7692      00
- 7693              	.LASF240:
- 7694 11d9 7263436C 		.string	"rcClassifying"
- 7694      61737369 
-
GAS LISTING /tmp/ccXzRABk.s 			page 180
-
-
- 7694      6679696E 
- 7694      6700
- 7695              	.LASF171:
- 7696 11e7 72635472 		.string	"rcTree"
- 7696      656500
- 7697              	.LASF41:
- 7698 11ee 64656372 		.string	"decrypt_ivec"
- 7698      7970745F 
- 7698      69766563 
- 7698      00
- 7699              	.LASF30:
- 7700 11fb 4442475F 		.string	"DBG_ARGS"
- 7700      41524753 
- 7700      00
- 7701              	.LASF200:
- 7702 1204 72635365 		.string	"rcSelecting"
- 7702      6C656374 
- 7702      696E6700 
- 7703              	.LASF101:
- 7704 1210 72635465 		.string	"rcText"
- 7704      787400
- 7705              	.LASF337:
- 7706 1217 72634F75 		.string	"rcOutoforder"
- 7706      746F666F 
- 7706      72646572 
- 7706      00
- 7707              	.LASF386:
- 7708 1224 4B436970 		.string	"KCipherVecRegAllocNull"
- 7708      68657256 
- 7708      65635265 
- 7708      67416C6C 
- 7708      6F634E75 
- 7709              	.LASF304:
- 7710 123b 7263496E 		.string	"rcInvalid"
- 7710      76616C69 
- 7710      6400
- 7711              	.LASF251:
- 7712 1245 7263496E 		.string	"rcInitializing"
- 7712      69746961 
- 7712      6C697A69 
- 7712      6E6700
- 7713              	.LASF130:
- 7714 1254 7263426C 		.string	"rcBlob"
- 7714      6F6200
- 7715              	.LASF53:
- 7716 125b 7365745F 		.string	"set_encrypt_ivec"
- 7716      656E6372 
- 7716      7970745F 
- 7716      69766563 
- 7716      00
- 7717              	.LASF374:
- 7718 126c 74656D70 		.string	"temp"
- 7718      00
- 7719              	.LASF228:
- 7720 1271 72635265 		.string	"rcReindexing"
- 7720      696E6465 
- 7720      78696E67 
-
GAS LISTING /tmp/ccXzRABk.s 			page 181
-
-
- 7720      00
- 7721              	.LASF123:
- 7722 127e 72634E6F 		.string	"rcNoTarg"
- 7722      54617267 
- 7722      00
- 7723              	.LASF305:
- 7724 1287 7263436F 		.string	"rcCorrupt"
- 7724      72727570 
- 7724      7400
- 7725              	.LASF334:
- 7726 1291 72634F75 		.string	"rcOutofrange"
- 7726      746F6672 
- 7726      616E6765 
- 7726      00
- 7727              	.LASF163:
- 7728 129e 72635363 		.string	"rcSchema"
- 7728      68656D61 
- 7728      00
- 7729              	.LASF159:
- 7730 12a7 72635061 		.string	"rcPath"
- 7730      746800
- 7731              	.LASF210:
- 7732 12ae 72635265 		.string	"rcReading"
- 7732      6164696E 
- 7732      6700
- 7733              	.LASF80:
- 7734 12b8 6B65795F 		.string	"key_size"
- 7734      73697A65 
- 7734      00
- 7735              	.LASF342:
- 7736 12c1 72634E6F 		.string	"rcNotAvailable"
- 7736      74417661 
- 7736      696C6162 
- 7736      6C6500
- 7737              	.LASF300:
- 7738 12d0 7263416D 		.string	"rcAmbiguous"
- 7738      62696775 
- 7738      6F757300 
- 7739              		.ident	"GCC: (GNU) 4.4.2"
- 7740              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccXzRABk.s 			page 182
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 cipher-vec.c
-     /tmp/ccXzRABk.s:14     .rodata:0000000000000000 KCipherVecRegClassName
-     /tmp/ccXzRABk.s:18     .text:0000000000000000 CipherVecIn
-     /tmp/ccXzRABk.s:49     .text:000000000000001f CipherVecOut
-     /tmp/ccXzRABk.s:81     .text:0000000000000048 KCipherVecRegDestroy
-     /tmp/ccXzRABk.s:129    .text:0000000000000082 KCipherVecRegSetEncryptKey
-     /tmp/ccXzRABk.s:2006   .rodata:0000000000000330 __PRETTY_FUNCTION__.7218
-     /tmp/ccXzRABk.s:2011   .rodata:0000000000000350 __func__.7220
-     /tmp/ccXzRABk.s:214    .text:000000000000016c KCipherVecRegSetDecryptKey
-     /tmp/ccXzRABk.s:1996   .rodata:00000000000002f0 __PRETTY_FUNCTION__.7242
-     /tmp/ccXzRABk.s:2001   .rodata:0000000000000310 __func__.7244
-     /tmp/ccXzRABk.s:303    .text:0000000000000256 KCipherVecRegSetEncryptIvec
-     /tmp/ccXzRABk.s:1991   .rodata:00000000000002d0 __PRETTY_FUNCTION__.7264
-     /tmp/ccXzRABk.s:354    .text:00000000000002d9 KCipherVecRegSetDecryptIvec
-     /tmp/ccXzRABk.s:1986   .rodata:00000000000002b0 __PRETTY_FUNCTION__.7277
-     /tmp/ccXzRABk.s:409    .text:000000000000035c KCipherVecRegSetEncryptCounterFunc
-     /tmp/ccXzRABk.s:1981   .rodata:0000000000000280 __PRETTY_FUNCTION__.7290
-     /tmp/ccXzRABk.s:454    .text:00000000000003cb KCipherVecRegSetDecryptCounterFunc
-     /tmp/ccXzRABk.s:1976   .rodata:0000000000000240 __PRETTY_FUNCTION__.7300
-     /tmp/ccXzRABk.s:499    .text:000000000000043a KCipherVecRegEncryptV1
-     /tmp/ccXzRABk.s:527    .text:0000000000000461 KCipherVecRegDecryptV1
-     /tmp/ccXzRABk.s:555    .text:0000000000000488 KCipherVecRegEncryptV1Int
-     /tmp/ccXzRABk.s:595    .text:00000000000004db KCipherVecRegDecryptV1Int
-     /tmp/ccXzRABk.s:635    .text:000000000000052e KCipherVecRegEncrypt
-     /tmp/ccXzRABk.s:1966   .rodata:00000000000001f0 __func__.7350
-     /tmp/ccXzRABk.s:684    .text:0000000000000592 KCipherVecRegDecrypt
-     /tmp/ccXzRABk.s:1956   .rodata:00000000000001b0 __func__.7366
-     /tmp/ccXzRABk.s:735    .text:00000000000005fd KCipherVecRegEncryptEcb
-     /tmp/ccXzRABk.s:791    .text:000000000000066d KCipherVecRegDecryptEcb
-     /tmp/ccXzRABk.s:847    .text:00000000000006dd KCipherVecRegEncryptCbc
-     /tmp/ccXzRABk.s:929    .text:00000000000007ab KCipherVecRegDecryptCbc
-     /tmp/ccXzRABk.s:1015   .text:000000000000087f KCipherVecRegEncryptPcbc
-     /tmp/ccXzRABk.s:1102   .text:000000000000095c KCipherVecRegDecryptPcbc
-     /tmp/ccXzRABk.s:1184   .text:0000000000000a22 KCipherVecRegEncryptCfb
-     /tmp/ccXzRABk.s:1264   .text:0000000000000ae8 KCipherVecRegDecryptCfb
-     /tmp/ccXzRABk.s:1344   .text:0000000000000bae KCipherVecRegEncryptOfb
-     /tmp/ccXzRABk.s:1424   .text:0000000000000c74 KCipherVecRegDecryptOfb
-     /tmp/ccXzRABk.s:1459   .text:0000000000000cad KCipherVecRegEncryptCtr
-     /tmp/ccXzRABk.s:1946   .rodata:0000000000000170 __func__.7600
-     /tmp/ccXzRABk.s:1488   .text:0000000000000ce3 KCipherVecRegDecryptCtr
-     /tmp/ccXzRABk.s:1936   .rodata:0000000000000130 __func__.7610
-     /tmp/ccXzRABk.s:1520   .data.rel.local:0000000000000000 KCipherVecReg_vt_v1
-     /tmp/ccXzRABk.s:1546   .text:0000000000000d19 KCipherVecRegAllocAes
-     /tmp/ccXzRABk.s:1926   .rodata:00000000000000f0 __func__.7620
-     /tmp/ccXzRABk.s:1588   .text:0000000000000d74 KCipherVecRegInitAes
-     /tmp/ccXzRABk.s:1649   .text:0000000000000e12 KCipherVecRegAllocNull
-     /tmp/ccXzRABk.s:1916   .rodata:00000000000000b0 __func__.7647
-     /tmp/ccXzRABk.s:1691   .text:0000000000000e6d KCipherVecRegInitNull
-     /tmp/ccXzRABk.s:1753   .text:0000000000000f02 KCipherVecRegMake
-     /tmp/ccXzRABk.s:1906   .rodata:0000000000000070 __func__.7675
-     /tmp/ccXzRABk.s:1911   .rodata:0000000000000090 __PRETTY_FUNCTION__.7674
-     /tmp/ccXzRABk.s:1921   .rodata:00000000000000d0 __PRETTY_FUNCTION__.7646
-     /tmp/ccXzRABk.s:1931   .rodata:0000000000000110 __PRETTY_FUNCTION__.7619
-     /tmp/ccXzRABk.s:1941   .rodata:0000000000000150 __PRETTY_FUNCTION__.7609
-     /tmp/ccXzRABk.s:1951   .rodata:0000000000000190 __PRETTY_FUNCTION__.7599
-     /tmp/ccXzRABk.s:1961   .rodata:00000000000001d0 __PRETTY_FUNCTION__.7365
-
GAS LISTING /tmp/ccXzRABk.s 			page 183
-
-
-     /tmp/ccXzRABk.s:1971   .rodata:0000000000000210 __PRETTY_FUNCTION__.7349
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-KCipherDestroy
-free
-__assert_fail
-SetRCFileFuncLine
-memcpy
-calloc
-KCipherInit
-KNullBlockCipherVecRegMake
-KAESBlockCipherVecRegMake
diff --git a/libs/krypto/cipher.c b/libs/krypto/cipher.c
deleted file mode 100644
index 85176c3..0000000
--- a/libs/krypto/cipher.c
+++ /dev/null
@@ -1,536 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-#include <krypto/cipher.h>
-#include <krypto/ciphermgr.h>
-#include <krypto/testciphermgr.h>
-#include "cipher-priv.h"
-#include "cipher-impl.h"
-
-#include <klib/rc.h>
-
-
-static const char KCipherClassName[] = "KCipherClassName";
-
-/* ----------------------------------------------------------------------
- * Init
- *
- *   Initialize the fields of this object.  The derived class will call this
- *   during it's initialization.
- *
- * self      object to initialze
- * vt        the virtual table of the derived class
- * mgr       the cipher manager that is the construction factory block cipher
- *           objects hold references to the manager while the manager merely
- *           points at the block ciphers when all block ciphers are destroyed
- *           the manager loses its references and it too can be destroyed if not
- *           held elsewhere
- * name      ASCIZ c-string the name of this class; pointer is expected to remain valid
- *           for the life of the object
- */
-void KCipherInit (KCipher * self,
-                  uint32_t block_size,
-                  const KCipher_vt * vt,
-                  const char * name)
-{
-    KRefcountInit (&self->refcount, 1, KCipherClassName, "init", name);
-    self->block_size = block_size;
-    self->vt.version = vt;
-    self->name = name;
-
-    /* the remaining fields have to be initialized in the derived object init */
-}
-
-
-/* ----------------------------------------------------------------------
- * Destroy
- *   base class destruction called during the derived class destruction
- *
- * self is the cipher object
- *
- * memory release is the repsonsibility of the derived class destructor
- */
-rc_t KCipherDestroy (KCipher * self)
-{
-    if (self)
-    {
-        KRefcountWhack (&self->refcount, self->name);
-    }
-    return 0;
-}
-
-/* ----------------------------------------------------------------------
- * AddRef
- *   add a new owner to this class.  This will mean another instance of 
- *   KCipher used this Block Cipher
- */
-KRYPTO_EXTERN
-rc_t CC KCipherAddRef (const KCipher * self)
-{
-    if (self)
-    {
-        switch (KRefcountAdd (&self->refcount, KCipherClassName))
-        {
-        case krefLimit:
-            return RC (rcKrypto, rcCipher, rcAttaching, rcRange, rcExcessive);
-        }
-    }
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * Release
- *   
- */
-static __inline__ rc_t KCipherWhack (KCipher * self)
-{
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->destroy (self);
-    }
-    return RC (rcKrypto, rcCipher, rcDestroying, rcInterface, rcBadVersion);
-}
-
-
-KRYPTO_EXTERN
-rc_t CC KCipherRelease (const KCipher * self)
-{
-    if ( self != NULL )
-    {
-        switch (KRefcountDrop ( & self -> refcount, KCipherClassName))
-        {
-        case krefWhack:
-            return KCipherWhack ((KCipher *)self);
-
-        case krefLimit:
-            return RC ( rcKrypto, rcCipher, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * Some Cipher Methods are really pass through methods to the block cipher
- *   
- */
-KRYPTO_EXTERN rc_t CC KCipherBlockSize (const KCipher * self, size_t * bytes)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcSelf, rcNull);
-
-    if (bytes == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcParam, rcNull);
-
-    *bytes = self->block_size;
-
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * 
- *   
- */
-KRYPTO_EXTERN rc_t CC KCipherSetEncryptKey (KCipher * self, const void * user_key, size_t user_key_size)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcSelf, rcNull);
-
-    if ((user_key == NULL)||(user_key_size == 0))
-        return RC (rcKrypto, rcCipher, rcAccessing, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->set_encrypt_key (self, user_key, user_key_size);
-    }
-    return RC (rcKrypto, rcCipher, rcUpdating, rcInterface, rcBadVersion);
-}
-
-
-/* ----------------------------------------------------------------------
- * 
- *   
- */
-KRYPTO_EXTERN rc_t CC KCipherSetDecryptKey (KCipher * self, const void * user_key, size_t user_key_size)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcSelf, rcNull);
-
-    if ((user_key == NULL)||(user_key_size == 0))
-        return RC (rcKrypto, rcCipher, rcAccessing, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->set_decrypt_key (self, user_key, user_key_size);
-    }
-    return RC (rcKrypto, rcCipher, rcUpdating, rcInterface, rcBadVersion);
-}
-
-
-
-/* ----------------------------------------------------------------------
- *  
- *
- * Set the ivec (Initialization vector or feedback) for the cipher
- *
- * the size of ivec  must match KCipherBlockSize
- *
- * the ivec is copied into the cipher not used in place
- */
-KRYPTO_EXTERN rc_t CC KCipherSetEncryptIVec (KCipher * self, const void * ivec)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcSelf, rcNull);
-
-    if (ivec == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->set_encrypt_ivec (self, ivec);
-    }
-    return RC (rcKrypto, rcCipher, rcUpdating, rcInterface, rcBadVersion);
-}
-
-
-/* ----------------------------------------------------------------------
- * 
- *   
- */
-KRYPTO_EXTERN rc_t CC KCipherSetDecryptIVec (KCipher * self, const void * ivec)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcSelf, rcNull);
-
-    if (ivec == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->set_decrypt_ivec (self, ivec);
-    }
-    return RC (rcKrypto, rcCipher, rcUpdating, rcInterface, rcBadVersion);
-}
-
-
-/* ----------------------------------------------------------------------
- * 
- *   
- */
-KRYPTO_EXTERN rc_t CC KCipherSetEncryptCtrFunc (KCipher * self, cipher_ctr_func func)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcSelf, rcNull);
-
-    if (func == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->set_encrypt_ctr_func (self, func);
-    }
-    return RC (rcKrypto, rcCipher, rcUpdating, rcInterface, rcBadVersion);
-}
-
-
-/* ----------------------------------------------------------------------
- * 
- *   
- */
-KRYPTO_EXTERN rc_t CC KCipherSetDecryptCtrFunc (KCipher * self, cipher_ctr_func func)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcSelf, rcNull);
-
-    if (func == NULL)
-        return RC (rcKrypto, rcCipher, rcAccessing, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->set_decrypt_ctr_func (self, func);
-    }
-    return RC (rcKrypto, rcCipher, rcUpdating, rcInterface, rcBadVersion);
-}
-
-
-KRYPTO_EXTERN rc_t CC KCipherEncrypt (KCipher * self, const void * in, void * out)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcEncoding, rcSelf, rcNull);
-
-    if ((in == NULL) || (out == NULL))
-        return RC (rcKrypto, rcCipher, rcEncoding, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->encrypt (self, in, out);
-    }
-    return RC (rcKrypto, rcCipher, rcAccessing, rcInterface, rcBadVersion);
-}
-
-
-KRYPTO_EXTERN rc_t CC KCipherDecrypt (KCipher * self, const void * in, void * out)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcCipher, rcEncoding, rcSelf, rcNull);
-
-    if ((in == NULL) || (out == NULL))
-        return RC (rcKrypto, rcCipher, rcEncoding, rcParam, rcNull);
-
-    switch (self->vt.version->maj)
-    {
-    case 1:
-        return self->vt.v1->decrypt (self, in, out);
-    }
-    return RC (rcKrypto, rcCipher, rcAccessing, rcInterface, rcBadVersion);
-}
-
-
-/* ====================
- * longer runs of multiple blocks.
- *
- * The algorithms are well defined and standard in most cases
- *
- * These aremore or elss equivalent to class functions as they do not depend upon
- * the operation of the cipher and the algorithms are independent of anything about
- * the cipher other than its block size.
- *
- * PT: plain text block
- * CT: cipher text block
- * EK: encryption key
- * DK: decryption key (might be sthe same as EK)
- * ENC: encrypt cipher function on a block using a key
- * DEC: decrypt cipher function on a block using a key
- * IV: initialization vector - used as feedback for chaining
- * N:  number used once (nonce)
- * FB: feedback is the next IV in a chained/feedback mode
- */
-
-/* -----
- * NOTE:
- * 'in' can be the same as 'out' but other overlaps are dangers as a block at a
- * time is written. The code does not look for overlaps at this point.
- *
- * NOTE: currently an implementation detail limits us to 8192 bit cipher block
- * size.  Changing MAX_BLOCK_SIZE in cipher.c can up that limit without 
- * causing any other compatibility issues. 
- *
- * Two local byte arrays are defined on the stack of 1024 bytes or 8192 bits.
- */
-/*
- * NOTE: if in and out overlap incorrectly this will fail
- */
-#define BLOCK_FUNC_PASTE(A,B) A##B
-#define BLOCK_FUNC(MODE,METHOD) \
-    KRYPTO_EXTERN rc_t CC BLOCK_FUNC_PASTE(KCipher,MODE)                \
-        (KCipher * self, const void * in, void * out,                   \
-         uint32_t block_count)                                          \
-    {                                                                   \
-        rc_t rc;                                                        \
-                                                                        \
-        if (self == NULL)                                               \
-            rc = RC (rcKrypto, rcCipher, rcEncoding, rcSelf, rcNull);   \
-                                                                        \
-        else if (in == NULL)                                            \
-            rc = RC (rcKrypto, rcCipher, rcEncoding, rcParam, rcNull);  \
-                                                                        \
-        else if (out == NULL)                                           \
-            rc = RC (rcKrypto, rcCipher, rcEncoding, rcParam, rcNull);  \
-                                                                        \
-        else if (block_count == 0)                                      \
-            rc = 0;                                                     \
-                                                                        \
-        else                                                            \
-        {                                                               \
-            switch (self->vt.version->maj)                              \
-            {                                                           \
-            case 1:                                                     \
-                return self->vt.v1->METHOD(self, in, out, block_count); \
-            }                                                           \
-            rc = RC (rcKrypto, rcCipher, rcAccessing, rcInterface,      \
-                     rcBadVersion);                                     \
-        }                                                               \
-                                                                        \
-        return rc;                                                      \
-    }
-
-/* ----------
- * Electronic Code Book - simple cipher with no chaining feedback  just iterate
- * simple encrypt/decrypt with the plain, text, cipher text and key/
- *
- * CT = ENC (PT,EK)
- * PT = DEC (CT,DK)
- */
-BLOCK_FUNC(EncryptECB,encrypt_ecb)
-BLOCK_FUNC(DecryptECB,decrypt_ecb)
-
-/* ----------
- * Cipher-Block Chaining
- * CT = (FB = ENC (PT^IV, EK))
- * PT = DEC ((FB = CT), DK)
- */
-BLOCK_FUNC(EncryptCBC,encrypt_cbc)
-BLOCK_FUNC(DecryptCBC,decrypt_cbc)
-
-/* ----------
- * Propagating cipher-block chaining
- * FB = PT ^ (CT = ENC ((PT^IV), EK))
- * FB = CT ^ (PT = DEC (CT,DK) ^ IV)
- */
-BLOCK_FUNC(EncryptPCBC,encrypt_pcbc)
-BLOCK_FUNC(DecryptPCBC,decrypt_pcbc)
-
-/* ----------
- * Cipher Feedback
- * CT = (FB = PT) ^ ENC (IV, EK))
- * PT = (FB = CT) ^ DEC (IV, DK)
- */
-BLOCK_FUNC(EncryptCFB,encrypt_cfb)
-BLOCK_FUNC(DecryptCFB,decrypt_cfb)
-
-/* ----------
- * Output Feedback
- * CT = PT ^ (FB = ENC (IV, EK))
- * PT = CT ^ (FB = DEC (IV, DK))
- */
-BLOCK_FUNC(EncryptOFB,encrypt_ofb)
-BLOCK_FUNC(DecryptOFB,decrypt_ofb)
-
-/* Counter
- * IV is a nonce and not re-used as FB
- * CT = PT ^ ENC (N, EK)
- * PT = CT ^ ENC (N, DK) 
- *
- * The enc_ctr_func (or dec_ctr_func) will be called to update the ivec before
- * to be the nonce (number used once) before each call to the block cipher 
- * encrypt function.  The encrypt function is used for decryption mode as well
- */
-BLOCK_FUNC(EncryptCTR,encrypt_ctr)
-BLOCK_FUNC(DecryptCTR,decrypt_ctr)
-
-
-#ifndef USE_SLOW_ONES
-#define USE_SLOW_ONES 0
-#endif
-rc_t KCipherMakeInt (KCipher ** new_cipher, kcipher_type type)
-{
-    rc_t rc;
-
-    *new_cipher = NULL;
-
-#if 0
-    rc = KCipherVecAesNiMake (new_cipher, type);
-    if (rc)
-    {
-        if (GetRCState(rc) == rcUnsupported)
-        {
-#if USE_SLOW_ONES
-            rc = KCipherVecRegMake (new_cipher, type);
-            if (rc)
-            {
-                if (GetRCState(rc) == rcUnsupported)
-                {
-                    rc = KCipherVecMake (new_cipher, type);
-                    if (GetRCState(rc) == rcUnsupported)
-                    {
-#endif
-#endif
-                        rc = KCipherByteMake (new_cipher, type);
-#if 0
-#if USE_SLOW_ONES
-                    }
-                }
-            }
-#endif
-        }
-    }
-#endif
-    return rc;
-}
-
-kcipher_subtype KCipherSubType = ksubcipher_none;
-
-rc_t KCipherMake (KCipher ** new_cipher, kcipher_type type)
-{
-    rc_t rc;
-
-    if (new_cipher == NULL)
-        rc = RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-    {
-        switch (type)
-        {
-        case kcipher_null:
-        case kcipher_AES:
-            switch (KCipherSubType)
-            {
-            case ksubcipher_byte:
-                rc = KCipherByteMake (new_cipher, type);
-                break;
-
-            case ksubcipher_vec:
-                rc = KCipherVecMake (new_cipher, type);
-                break;
-
-            case ksubcipher_vecreg:
-                rc = KCipherVecRegMake (new_cipher, type);
-                break;
-
-            case ksubcipher_accelerated:
-                rc = KCipherVecAesNiMake (new_cipher, type);
-                break;
-
-            default:
-                rc = KCipherMakeInt (new_cipher, type);
-                break;
-            }
-            break;
-        default:
-            rc = RC (rcKrypto, rcCipher, rcConstructing, rcBlockCipher, rcInvalid);
-            break;
-        }
-    }
-    return rc;
-}
-
-
-
-
-
-
-/* EOF */
diff --git a/libs/krypto/ciphermgr.c b/libs/krypto/ciphermgr.c
deleted file mode 100644
index 25e0b1a..0000000
--- a/libs/krypto/ciphermgr.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#define USE_AES_NI false
-
-#include <krypto/extern.h>
-#include <krypto/ciphermgr.h>
-#include <krypto/cipher.h>
-
-#include "cipher-priv.h"
-
-#include <kproc/lock.h>
-
-#include <klib/rc.h>
-#include <klib/refcount.h>
-#include <klib/debug.h>
-
-#include <sysalloc.h>
-
-#include <atomic.h>
-
-#include <stdlib.h>
-#include <assert.h>
-
-#ifdef _DEBUGGING
-#define MGR_DEBUG(msg) DBGMSG(DBG_KFS,DBG_FLAG(DBG_KFS_MGR), msg)
-#else
-#define MGR_DEBUG(msg)
-#endif
-
-
-
-static const char kciphermanager_classname [] = "KCipherManager";
-
-
-/*--------------------------------------------------------------------------
- * KCipherManager
- */
-/* currently expected to be a singleton and not use a vtable but
- * be fully fleshed out here */
-static 
-KCipherManager * singleton = NULL;
-
-
-struct KCipherManager
-{
-    KRefcount refcount;
-
-    KLock * lock;
-
-};
-
-
-static
-rc_t KCipherManagerAlloc (KCipherManager ** ppobj)
-{
-    KCipherManager * pobj;
-
-    assert (ppobj);
-
-    pobj = calloc (sizeof *pobj, 1);
-    if (pobj)
-    {
-        *ppobj = pobj;
-        return 0;
-    }
-
-    *ppobj = NULL;
-    return RC (rcKrypto, rcMgr, rcConstructing, rcMemory, rcExhausted);
-}
-
-
-static
-rc_t KCipherManagerInit (KCipherManager * self)
-{
-    rc_t rc;
-
-    rc = KLockMake (&self->lock);
-    if (rc == 0)
-    {
-        KRefcountInit (&self->refcount, 1, kciphermanager_classname, "init",
-                       "singleton");
-    }
-
-    return rc;
-}
-
-
-/* Destroy
- *  destroy
- */
-LIB_EXPORT rc_t CC KCipherManagerDestroy ( KCipherManager *self )
-{
-    rc_t rc = 0;
-
-    if ( self == NULL )
-        rc = RC ( rcKrypto, rcMgr, rcDestroying, rcSelf, rcNull );
-    else
-    {
-        if (self == singleton)
-        {
-            KCipherManager * reread;
-
-            reread = atomic_test_and_set_ptr ((void*volatile*)&singleton, NULL, self);
-
-            /* ignore results: just going for guaranteed atomicity though might not need it */
-        }
-
-        /* no return value */
-        KRefcountWhack (&self->refcount, kciphermanager_classname);
-
-        rc = KLockRelease (self->lock);
-
-        free (self);
-    }
-    return rc;
-}
-
-
-/* AddRef
- *  creates a new reference
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC KCipherManagerAddRef ( const KCipherManager *self )
-{
-    if (self != NULL)
-    {
-        switch (KRefcountAdd (&self->refcount, kciphermanager_classname))
-        {
-        case krefOkay:
-            break;
-        case krefZero:
-            return RC (rcFS, rcMgr, rcAttaching, rcRefcount, rcIncorrect);
-        case krefLimit:
-            return RC (rcFS, rcMgr, rcAttaching, rcRefcount, rcExhausted);
-        case krefNegative:
-            return RC (rcFS, rcMgr, rcAttaching, rcRefcount, rcInvalid);
-        default:
-            return RC (rcFS, rcMgr, rcAttaching, rcRefcount, rcUnknown);
-        }
-    }
-    return 0;
-}
-
-
-/* Release
- *  discard reference to manager
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC KCipherManagerRelease ( const KCipherManager *self )
-{
-    rc_t rc = 0;
-    if (self != NULL)
-    {
-        switch (KRefcountDrop (&self->refcount, kciphermanager_classname))
-        {
-        case krefOkay:
-        case krefZero:
-            break;
-        case krefWhack:
-            rc = KCipherManagerDestroy ((KCipherManager*)self);
-            break;
-        case krefNegative:
-            return RC (rcFS, rcMgr, rcAttaching, rcRefcount, rcInvalid);
-        default:
-            rc = RC (rcFS, rcMgr, rcAttaching, rcRefcount, rcUnknown);
-            break;            
-        }
-    }
-    return rc;
-}
-
-
-/* Make
- *  we have a shared singleton for the cipher manager
- *  first call actually makes the managerblo
- *  subsequent calls get added references
- */
-LIB_EXPORT rc_t CC KCipherManagerMake (KCipherManager ** mgr)
-{
-    rc_t rc = 0;
-
-    if (mgr == NULL)
-        return RC (rcKrypto, rcMgr, rcConstructing, rcSelf, rcNull);
-
-    *mgr = NULL;
-
-make_race_retry:
-
-    if (singleton)
-    {
-        rc = KCipherManagerAddRef (singleton);
-        if (rc == 0)
-        {
-            *mgr = singleton;
-            return 0;
-        }
-    }
-    else
-    {
-        KCipherManager * self;
-
-        rc = KCipherManagerAlloc (&self);
-        if (rc == 0)
-        {
-            rc = KCipherManagerInit (self);
-            if (rc == 0)
-            {
-                KCipherManager * reread;
-
-                reread = atomic_test_and_set_ptr ((void*volatile*)&singleton, self, NULL);
-
-                if (reread)
-                {
-                    KCipherManagerDestroy (self);
-                    goto make_race_retry;
-                }
-
-                *mgr = self;
-                return 0;
-            }
-            else
-            {
-                KCipherManagerDestroy (self);
-            }
-        }
-    }
-    return rc;
-}
-
-
-static __inline__
-rc_t KCipherManagerMakeCipherInt (const KCipherManager *self,
-                                  KCipher ** pcipher,
-                                  kcipher_type type)
-{
-    KCipher * pc;
-    rc_t rc;
-
-    assert (self);
-    assert (pcipher);
-
-    rc = KCipherMake (&pc, type);
-
-    *pcipher = rc ? NULL : pc;
-
-    return rc;
-}
-
-
-LIB_EXPORT
-rc_t CC KCipherManagerMakeCipher (const KCipherManager * self,
-                                  struct KCipher ** pcipher,
-                                  kcipher_type type)
-{
-    rc_t rc;
-    
-    if (self == NULL)
-        return RC (rcKrypto, rcMgr, rcConstructing, rcSelf, rcNull);
-
-    if (pcipher == NULL)
-        return RC (rcKrypto, rcMgr, rcConstructing, rcParam, rcNull);
-
-    *pcipher = NULL;
-
-    rc = KCipherManagerMakeCipherInt (self, pcipher, type);
-
-    return rc;
-}
-
-
-
diff --git a/libs/krypto/compile-test.aes-ni.pic.o.list b/libs/krypto/compile-test.aes-ni.pic.o.list
deleted file mode 100644
index 98dcfd4..0000000
--- a/libs/krypto/compile-test.aes-ni.pic.o.list
+++ /dev/null
@@ -1,592 +0,0 @@
-GAS LISTING /tmp/ccyCKNUn.s 			page 1
-
-
-   1              		.file	"compile-test.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 D7000000 		.text
-   8      0200BA00 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              	.globl KCipherVecAesNitest
-  11              		.type	KCipherVecAesNitest, @function
-  12              	KCipherVecAesNitest:
-  13              	.LFB575:
-  14              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include <cpuid.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include <v128.h>
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include "ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include "blockcipher-impl.h"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** const
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** CipherVec CMEMBER(test) (void)
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** {
-  15              		.loc 1 37 0
-  16              		.cfi_startproc
-
GAS LISTING /tmp/ccyCKNUn.s 			page 2
-
-
-  17 0000 55       		pushq	%rbp
-  18              	.LCFI0:
-  19              		.cfi_def_cfa_offset 16
-  20 0001 4889E5   		movq	%rsp, %rbp
-  21              		.cfi_offset 6, -16
-  22              	.LCFI1:
-  23              		.cfi_def_cfa_register 6
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #if USEVEC
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  24              		.loc 1 40 0
-  25 0004 660F6F05 		movdqa	.LC0(%rip), %xmm0
-  25      00000000 
-  26 000c F30F7F45 		movdqu	%xmm0, -32(%rbp)
-  26      E0
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  27              		.loc 1 42 0
-  28 0011 660F6F05 		movdqa	.LC1(%rip), %xmm0
-  28      00000000 
-  29 0019 F30F7F45 		movdqu	%xmm0, -16(%rbp)
-  29      F0
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #else
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #endif
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     return zero + one;
-  30              		.loc 1 49 0
-  31 001e F30F6F45 		movdqu	-16(%rbp), %xmm0
-  31      F0
-  32 0023 F30F6F4D 		movdqu	-32(%rbp), %xmm1
-  32      E0
-  33 0028 660FFCC1 		paddb	%xmm1, %xmm0
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** }
-  34              		.loc 1 50 0
-  35 002c C9       		leave
-  36 002d C3       		ret
-  37              		.cfi_endproc
-  38              	.LFE575:
-  39              		.size	KCipherVecAesNitest, .-KCipherVecAesNitest
-  40              		.section	.rodata
-  41              		.align 16
-  42              	.LC0:
-  43 0000 00       		.byte	0
-  44 0001 00       		.byte	0
-  45 0002 00       		.byte	0
-  46 0003 00       		.byte	0
-  47 0004 00       		.byte	0
-  48 0005 00       		.byte	0
-  49 0006 00       		.byte	0
-  50 0007 00       		.byte	0
-  51 0008 00       		.byte	0
-  52 0009 00       		.byte	0
-  53 000a 00       		.byte	0
-  54 000b 00       		.byte	0
-
GAS LISTING /tmp/ccyCKNUn.s 			page 3
-
-
-  55 000c 00       		.byte	0
-  56 000d 00       		.byte	0
-  57 000e 00       		.byte	0
-  58 000f 00       		.byte	0
-  59              		.align 16
-  60              	.LC1:
-  61 0010 01       		.byte	1
-  62 0011 01       		.byte	1
-  63 0012 01       		.byte	1
-  64 0013 01       		.byte	1
-  65 0014 01       		.byte	1
-  66 0015 01       		.byte	1
-  67 0016 01       		.byte	1
-  68 0017 01       		.byte	1
-  69 0018 01       		.byte	1
-  70 0019 01       		.byte	1
-  71 001a 01       		.byte	1
-  72 001b 01       		.byte	1
-  73 001c 01       		.byte	1
-  74 001d 01       		.byte	1
-  75 001e 01       		.byte	1
-  76 001f 01       		.byte	1
-  77              		.text
-  78              	.Letext0:
-  79              		.section	.debug_loc,"", at progbits
-  80              	.Ldebug_loc0:
-  81              	.LLST0:
-  82 0000 00000000 		.quad	.LFB575-.Ltext0
-  82      00000000 
-  83 0008 01000000 		.quad	.LCFI0-.Ltext0
-  83      00000000 
-  84 0010 0200     		.value	0x2
-  85 0012 77       		.byte	0x77
-  86 0013 08       		.sleb128 8
-  87 0014 01000000 		.quad	.LCFI0-.Ltext0
-  87      00000000 
-  88 001c 04000000 		.quad	.LCFI1-.Ltext0
-  88      00000000 
-  89 0024 0200     		.value	0x2
-  90 0026 77       		.byte	0x77
-  91 0027 10       		.sleb128 16
-  92 0028 04000000 		.quad	.LCFI1-.Ltext0
-  92      00000000 
-  93 0030 2E000000 		.quad	.LFE575-.Ltext0
-  93      00000000 
-  94 0038 0200     		.value	0x2
-  95 003a 76       		.byte	0x76
-  96 003b 10       		.sleb128 16
-  97 003c 00000000 		.quad	0x0
-  97      00000000 
-  98 0044 00000000 		.quad	0x0
-  98      00000000 
-  99              		.file 2 "/usr/include/stdint.h"
- 100              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 101              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 102              		.section	.debug_info
- 103 0000 FD000000 		.long	0xfd
-
GAS LISTING /tmp/ccyCKNUn.s 			page 4
-
-
- 104 0004 0200     		.value	0x2
- 105 0006 00000000 		.long	.Ldebug_abbrev0
- 106 000a 08       		.byte	0x8
- 107 000b 01       		.uleb128 0x1
- 108 000c 00000000 		.long	.LASF16
- 109 0010 01       		.byte	0x1
- 110 0011 00000000 		.long	.LASF17
- 111 0015 00000000 		.quad	.Ltext0
- 111      00000000 
- 112 001d 00000000 		.quad	.Letext0
- 112      00000000 
- 113 0025 00000000 		.long	.Ldebug_line0
- 114 0029 02       		.uleb128 0x2
- 115 002a 01       		.byte	0x1
- 116 002b 06       		.byte	0x6
- 117 002c 00000000 		.long	.LASF0
- 118 0030 02       		.uleb128 0x2
- 119 0031 02       		.byte	0x2
- 120 0032 05       		.byte	0x5
- 121 0033 00000000 		.long	.LASF1
- 122 0037 03       		.uleb128 0x3
- 123 0038 04       		.byte	0x4
- 124 0039 05       		.byte	0x5
- 125 003a 696E7400 		.string	"int"
- 126 003e 02       		.uleb128 0x2
- 127 003f 08       		.byte	0x8
- 128 0040 05       		.byte	0x5
- 129 0041 00000000 		.long	.LASF2
- 130 0045 04       		.uleb128 0x4
- 131 0046 00000000 		.long	.LASF12
- 132 004a 02       		.byte	0x2
- 133 004b 31       		.byte	0x31
- 134 004c 50000000 		.long	0x50
- 135 0050 02       		.uleb128 0x2
- 136 0051 01       		.byte	0x1
- 137 0052 08       		.byte	0x8
- 138 0053 00000000 		.long	.LASF3
- 139 0057 02       		.uleb128 0x2
- 140 0058 02       		.byte	0x2
- 141 0059 07       		.byte	0x7
- 142 005a 00000000 		.long	.LASF4
- 143 005e 02       		.uleb128 0x2
- 144 005f 04       		.byte	0x4
- 145 0060 07       		.byte	0x7
- 146 0061 00000000 		.long	.LASF5
- 147 0065 02       		.uleb128 0x2
- 148 0066 08       		.byte	0x8
- 149 0067 07       		.byte	0x7
- 150 0068 00000000 		.long	.LASF6
- 151 006c 05       		.uleb128 0x5
- 152 006d 08       		.byte	0x8
- 153 006e 07       		.byte	0x7
- 154 006f 02       		.uleb128 0x2
- 155 0070 01       		.byte	0x1
- 156 0071 06       		.byte	0x6
- 157 0072 00000000 		.long	.LASF7
- 158 0076 02       		.uleb128 0x2
-
GAS LISTING /tmp/ccyCKNUn.s 			page 5
-
-
- 159 0077 08       		.byte	0x8
- 160 0078 05       		.byte	0x5
- 161 0079 00000000 		.long	.LASF8
- 162 007d 02       		.uleb128 0x2
- 163 007e 04       		.byte	0x4
- 164 007f 04       		.byte	0x4
- 165 0080 00000000 		.long	.LASF9
- 166 0084 02       		.uleb128 0x2
- 167 0085 08       		.byte	0x8
- 168 0086 07       		.byte	0x7
- 169 0087 00000000 		.long	.LASF10
- 170 008b 02       		.uleb128 0x2
- 171 008c 08       		.byte	0x8
- 172 008d 04       		.byte	0x4
- 173 008e 00000000 		.long	.LASF11
- 174 0092 04       		.uleb128 0x4
- 175 0093 00000000 		.long	.LASF13
- 176 0097 03       		.byte	0x3
- 177 0098 26       		.byte	0x26
- 178 0099 9D000000 		.long	0x9d
- 179 009d 06       		.uleb128 0x6
- 180 009e 01       		.byte	0x1
- 181 009f 45000000 		.long	0x45
- 182 00a3 AE000000 		.long	0xae
- 183 00a7 07       		.uleb128 0x7
- 184 00a8 6C000000 		.long	0x6c
- 185 00ac 0F       		.byte	0xf
- 186 00ad 00       		.byte	0x0
- 187 00ae 04       		.uleb128 0x4
- 188 00af 00000000 		.long	.LASF14
- 189 00b3 04       		.byte	0x4
- 190 00b4 3B       		.byte	0x3b
- 191 00b5 92000000 		.long	0x92
- 192 00b9 08       		.uleb128 0x8
- 193 00ba 01       		.byte	0x1
- 194 00bb 00000000 		.long	.LASF18
- 195 00bf 01       		.byte	0x1
- 196 00c0 24       		.byte	0x24
- 197 00c1 01       		.byte	0x1
- 198 00c2 FB000000 		.long	0xfb
- 199 00c6 00000000 		.quad	.LFB575
- 199      00000000 
- 200 00ce 00000000 		.quad	.LFE575
- 200      00000000 
- 201 00d6 00000000 		.long	.LLST0
- 202 00da FB000000 		.long	0xfb
- 203 00de 09       		.uleb128 0x9
- 204 00df 00000000 		.long	.LASF15
- 205 00e3 01       		.byte	0x1
- 206 00e4 27       		.byte	0x27
- 207 00e5 AE000000 		.long	0xae
- 208 00e9 02       		.byte	0x2
- 209 00ea 91       		.byte	0x91
- 210 00eb 50       		.sleb128 -48
- 211 00ec 0A       		.uleb128 0xa
- 212 00ed 6F6E6500 		.string	"one"
- 213 00f1 01       		.byte	0x1
-
GAS LISTING /tmp/ccyCKNUn.s 			page 6
-
-
- 214 00f2 29       		.byte	0x29
- 215 00f3 AE000000 		.long	0xae
- 216 00f7 02       		.byte	0x2
- 217 00f8 91       		.byte	0x91
- 218 00f9 60       		.sleb128 -32
- 219 00fa 00       		.byte	0x0
- 220 00fb 0B       		.uleb128 0xb
- 221 00fc AE000000 		.long	0xae
- 222 0100 00       		.byte	0x0
- 223              		.section	.debug_abbrev
- 224 0000 01       		.uleb128 0x1
- 225 0001 11       		.uleb128 0x11
- 226 0002 01       		.byte	0x1
- 227 0003 25       		.uleb128 0x25
- 228 0004 0E       		.uleb128 0xe
- 229 0005 13       		.uleb128 0x13
- 230 0006 0B       		.uleb128 0xb
- 231 0007 03       		.uleb128 0x3
- 232 0008 0E       		.uleb128 0xe
- 233 0009 11       		.uleb128 0x11
- 234 000a 01       		.uleb128 0x1
- 235 000b 12       		.uleb128 0x12
- 236 000c 01       		.uleb128 0x1
- 237 000d 10       		.uleb128 0x10
- 238 000e 06       		.uleb128 0x6
- 239 000f 00       		.byte	0x0
- 240 0010 00       		.byte	0x0
- 241 0011 02       		.uleb128 0x2
- 242 0012 24       		.uleb128 0x24
- 243 0013 00       		.byte	0x0
- 244 0014 0B       		.uleb128 0xb
- 245 0015 0B       		.uleb128 0xb
- 246 0016 3E       		.uleb128 0x3e
- 247 0017 0B       		.uleb128 0xb
- 248 0018 03       		.uleb128 0x3
- 249 0019 0E       		.uleb128 0xe
- 250 001a 00       		.byte	0x0
- 251 001b 00       		.byte	0x0
- 252 001c 03       		.uleb128 0x3
- 253 001d 24       		.uleb128 0x24
- 254 001e 00       		.byte	0x0
- 255 001f 0B       		.uleb128 0xb
- 256 0020 0B       		.uleb128 0xb
- 257 0021 3E       		.uleb128 0x3e
- 258 0022 0B       		.uleb128 0xb
- 259 0023 03       		.uleb128 0x3
- 260 0024 08       		.uleb128 0x8
- 261 0025 00       		.byte	0x0
- 262 0026 00       		.byte	0x0
- 263 0027 04       		.uleb128 0x4
- 264 0028 16       		.uleb128 0x16
- 265 0029 00       		.byte	0x0
- 266 002a 03       		.uleb128 0x3
- 267 002b 0E       		.uleb128 0xe
- 268 002c 3A       		.uleb128 0x3a
- 269 002d 0B       		.uleb128 0xb
- 270 002e 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/ccyCKNUn.s 			page 7
-
-
- 271 002f 0B       		.uleb128 0xb
- 272 0030 49       		.uleb128 0x49
- 273 0031 13       		.uleb128 0x13
- 274 0032 00       		.byte	0x0
- 275 0033 00       		.byte	0x0
- 276 0034 05       		.uleb128 0x5
- 277 0035 24       		.uleb128 0x24
- 278 0036 00       		.byte	0x0
- 279 0037 0B       		.uleb128 0xb
- 280 0038 0B       		.uleb128 0xb
- 281 0039 3E       		.uleb128 0x3e
- 282 003a 0B       		.uleb128 0xb
- 283 003b 00       		.byte	0x0
- 284 003c 00       		.byte	0x0
- 285 003d 06       		.uleb128 0x6
- 286 003e 01       		.uleb128 0x1
- 287 003f 01       		.byte	0x1
- 288 0040 8742     		.uleb128 0x2107
- 289 0042 0C       		.uleb128 0xc
- 290 0043 49       		.uleb128 0x49
- 291 0044 13       		.uleb128 0x13
- 292 0045 01       		.uleb128 0x1
- 293 0046 13       		.uleb128 0x13
- 294 0047 00       		.byte	0x0
- 295 0048 00       		.byte	0x0
- 296 0049 07       		.uleb128 0x7
- 297 004a 21       		.uleb128 0x21
- 298 004b 00       		.byte	0x0
- 299 004c 49       		.uleb128 0x49
- 300 004d 13       		.uleb128 0x13
- 301 004e 2F       		.uleb128 0x2f
- 302 004f 0B       		.uleb128 0xb
- 303 0050 00       		.byte	0x0
- 304 0051 00       		.byte	0x0
- 305 0052 08       		.uleb128 0x8
- 306 0053 2E       		.uleb128 0x2e
- 307 0054 01       		.byte	0x1
- 308 0055 3F       		.uleb128 0x3f
- 309 0056 0C       		.uleb128 0xc
- 310 0057 03       		.uleb128 0x3
- 311 0058 0E       		.uleb128 0xe
- 312 0059 3A       		.uleb128 0x3a
- 313 005a 0B       		.uleb128 0xb
- 314 005b 3B       		.uleb128 0x3b
- 315 005c 0B       		.uleb128 0xb
- 316 005d 27       		.uleb128 0x27
- 317 005e 0C       		.uleb128 0xc
- 318 005f 49       		.uleb128 0x49
- 319 0060 13       		.uleb128 0x13
- 320 0061 11       		.uleb128 0x11
- 321 0062 01       		.uleb128 0x1
- 322 0063 12       		.uleb128 0x12
- 323 0064 01       		.uleb128 0x1
- 324 0065 40       		.uleb128 0x40
- 325 0066 06       		.uleb128 0x6
- 326 0067 01       		.uleb128 0x1
- 327 0068 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccyCKNUn.s 			page 8
-
-
- 328 0069 00       		.byte	0x0
- 329 006a 00       		.byte	0x0
- 330 006b 09       		.uleb128 0x9
- 331 006c 34       		.uleb128 0x34
- 332 006d 00       		.byte	0x0
- 333 006e 03       		.uleb128 0x3
- 334 006f 0E       		.uleb128 0xe
- 335 0070 3A       		.uleb128 0x3a
- 336 0071 0B       		.uleb128 0xb
- 337 0072 3B       		.uleb128 0x3b
- 338 0073 0B       		.uleb128 0xb
- 339 0074 49       		.uleb128 0x49
- 340 0075 13       		.uleb128 0x13
- 341 0076 02       		.uleb128 0x2
- 342 0077 0A       		.uleb128 0xa
- 343 0078 00       		.byte	0x0
- 344 0079 00       		.byte	0x0
- 345 007a 0A       		.uleb128 0xa
- 346 007b 34       		.uleb128 0x34
- 347 007c 00       		.byte	0x0
- 348 007d 03       		.uleb128 0x3
- 349 007e 08       		.uleb128 0x8
- 350 007f 3A       		.uleb128 0x3a
- 351 0080 0B       		.uleb128 0xb
- 352 0081 3B       		.uleb128 0x3b
- 353 0082 0B       		.uleb128 0xb
- 354 0083 49       		.uleb128 0x49
- 355 0084 13       		.uleb128 0x13
- 356 0085 02       		.uleb128 0x2
- 357 0086 0A       		.uleb128 0xa
- 358 0087 00       		.byte	0x0
- 359 0088 00       		.byte	0x0
- 360 0089 0B       		.uleb128 0xb
- 361 008a 26       		.uleb128 0x26
- 362 008b 00       		.byte	0x0
- 363 008c 49       		.uleb128 0x49
- 364 008d 13       		.uleb128 0x13
- 365 008e 00       		.byte	0x0
- 366 008f 00       		.byte	0x0
- 367 0090 00       		.byte	0x0
- 368              		.section	.debug_pubnames,"", at progbits
- 369 0000 26000000 		.long	0x26
- 370 0004 0200     		.value	0x2
- 371 0006 00000000 		.long	.Ldebug_info0
- 372 000a 01010000 		.long	0x101
- 373 000e B9000000 		.long	0xb9
- 374 0012 4B436970 		.string	"KCipherVecAesNitest"
- 374      68657256 
- 374      65634165 
- 374      734E6974 
- 374      65737400 
- 375 0026 00000000 		.long	0x0
- 376              		.section	.debug_aranges,"", at progbits
- 377 0000 2C000000 		.long	0x2c
- 378 0004 0200     		.value	0x2
- 379 0006 00000000 		.long	.Ldebug_info0
- 380 000a 08       		.byte	0x8
-
GAS LISTING /tmp/ccyCKNUn.s 			page 9
-
-
- 381 000b 00       		.byte	0x0
- 382 000c 0000     		.value	0x0
- 383 000e 0000     		.value	0x0
- 384 0010 00000000 		.quad	.Ltext0
- 384      00000000 
- 385 0018 2E000000 		.quad	.Letext0-.Ltext0
- 385      00000000 
- 386 0020 00000000 		.quad	0x0
- 386      00000000 
- 387 0028 00000000 		.quad	0x0
- 387      00000000 
- 388              		.section	.debug_str,"MS", at progbits,1
- 389              	.LASF8:
- 390 0000 6C6F6E67 		.string	"long long int"
- 390      206C6F6E 
- 390      6720696E 
- 390      7400
- 391              	.LASF17:
- 392 000e 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c"
- 392      652F726F 
- 392      6461726D 
- 392      65722F73 
- 392      72615F73 
- 393              	.LASF5:
- 394 0048 756E7369 		.string	"unsigned int"
- 394      676E6564 
- 394      20696E74 
- 394      00
- 395              	.LASF6:
- 396 0055 6C6F6E67 		.string	"long unsigned int"
- 396      20756E73 
- 396      69676E65 
- 396      6420696E 
- 396      7400
- 397              	.LASF10:
- 398 0067 6C6F6E67 		.string	"long long unsigned int"
- 398      206C6F6E 
- 398      6720756E 
- 398      7369676E 
- 398      65642069 
- 399              	.LASF12:
- 400 007e 75696E74 		.string	"uint8_t"
- 400      385F7400 
- 401              	.LASF18:
- 402 0086 4B436970 		.string	"KCipherVecAesNitest"
- 402      68657256 
- 402      65634165 
- 402      734E6974 
- 402      65737400 
- 403              	.LASF16:
- 404 009a 474E5520 		.string	"GNU C 4.4.2"
- 404      4320342E 
- 404      342E3200 
- 405              	.LASF3:
- 406 00a6 756E7369 		.string	"unsigned char"
- 406      676E6564 
- 406      20636861 
-
GAS LISTING /tmp/ccyCKNUn.s 			page 10
-
-
- 406      7200
- 407              	.LASF7:
- 408 00b4 63686172 		.string	"char"
- 408      00
- 409              	.LASF2:
- 410 00b9 6C6F6E67 		.string	"long int"
- 410      20696E74 
- 410      00
- 411              	.LASF11:
- 412 00c2 646F7562 		.string	"double"
- 412      6C6500
- 413              	.LASF4:
- 414 00c9 73686F72 		.string	"short unsigned int"
- 414      7420756E 
- 414      7369676E 
- 414      65642069 
- 414      6E7400
- 415              	.LASF0:
- 416 00dc 7369676E 		.string	"signed char"
- 416      65642063 
- 416      68617200 
- 417              	.LASF13:
- 418 00e8 76313238 		.string	"v128_u8_t"
- 418      5F75385F 
- 418      7400
- 419              	.LASF14:
- 420 00f2 43697068 		.string	"CipherVec"
- 420      65725665 
- 420      6300
- 421              	.LASF9:
- 422 00fc 666C6F61 		.string	"float"
- 422      7400
- 423              	.LASF15:
- 424 0102 7A65726F 		.string	"zero"
- 424      00
- 425              	.LASF1:
- 426 0107 73686F72 		.string	"short int"
- 426      7420696E 
- 426      7400
- 427              		.ident	"GCC: (GNU) 4.4.2"
- 428              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccyCKNUn.s 			page 11
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 compile-test.c
-     /tmp/ccyCKNUn.s:12     .text:0000000000000000 KCipherVecAesNitest
-
-NO UNDEFINED SYMBOLS
diff --git a/libs/krypto/compile-test.c b/libs/krypto/compile-test.c
deleted file mode 100644
index 1d3de7a..0000000
--- a/libs/krypto/compile-test.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-
-#include <cpuid.h>
-#include <v128.h>
-
-#include "ncbi-priv.h"
-#include "blockcipher-impl.h"
-
-
-
-const
-CipherVec CMEMBER(test) (void)
-{
-#if USEVEC
-    CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-    CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-#else
-    CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-    CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-#endif
-    return zero + one;
-}
diff --git a/libs/krypto/compile-test.vec.pic.o.list b/libs/krypto/compile-test.vec.pic.o.list
deleted file mode 100644
index 263aadf..0000000
--- a/libs/krypto/compile-test.vec.pic.o.list
+++ /dev/null
@@ -1,590 +0,0 @@
-GAS LISTING /tmp/cckgalP6.s 			page 1
-
-
-   1              		.file	"compile-test.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 D7000000 		.text
-   8      0200BA00 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              	.globl KCipherVectest
-  11              		.type	KCipherVectest, @function
-  12              	KCipherVectest:
-  13              	.LFB495:
-  14              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include <cpuid.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include <v128.h>
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include "ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include "blockcipher-impl.h"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** const
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** CipherVec CMEMBER(test) (void)
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** {
-  15              		.loc 1 37 0
-  16              		.cfi_startproc
-
GAS LISTING /tmp/cckgalP6.s 			page 2
-
-
-  17 0000 55       		pushq	%rbp
-  18              	.LCFI0:
-  19              		.cfi_def_cfa_offset 16
-  20 0001 4889E5   		movq	%rsp, %rbp
-  21              		.cfi_offset 6, -16
-  22              	.LCFI1:
-  23              		.cfi_def_cfa_register 6
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #if USEVEC
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  24              		.loc 1 40 0
-  25 0004 660F6F05 		movdqa	.LC0(%rip), %xmm0
-  25      00000000 
-  26 000c F30F7F45 		movdqu	%xmm0, -32(%rbp)
-  26      E0
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  27              		.loc 1 42 0
-  28 0011 660F6F05 		movdqa	.LC1(%rip), %xmm0
-  28      00000000 
-  29 0019 F30F7F45 		movdqu	%xmm0, -16(%rbp)
-  29      F0
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #else
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #endif
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     return zero + one;
-  30              		.loc 1 49 0
-  31 001e F30F6F45 		movdqu	-16(%rbp), %xmm0
-  31      F0
-  32 0023 F30F6F4D 		movdqu	-32(%rbp), %xmm1
-  32      E0
-  33 0028 660FFCC1 		paddb	%xmm1, %xmm0
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** }
-  34              		.loc 1 50 0
-  35 002c C9       		leave
-  36 002d C3       		ret
-  37              		.cfi_endproc
-  38              	.LFE495:
-  39              		.size	KCipherVectest, .-KCipherVectest
-  40              		.section	.rodata
-  41              		.align 16
-  42              	.LC0:
-  43 0000 00       		.byte	0
-  44 0001 00       		.byte	0
-  45 0002 00       		.byte	0
-  46 0003 00       		.byte	0
-  47 0004 00       		.byte	0
-  48 0005 00       		.byte	0
-  49 0006 00       		.byte	0
-  50 0007 00       		.byte	0
-  51 0008 00       		.byte	0
-  52 0009 00       		.byte	0
-  53 000a 00       		.byte	0
-  54 000b 00       		.byte	0
-
GAS LISTING /tmp/cckgalP6.s 			page 3
-
-
-  55 000c 00       		.byte	0
-  56 000d 00       		.byte	0
-  57 000e 00       		.byte	0
-  58 000f 00       		.byte	0
-  59              		.align 16
-  60              	.LC1:
-  61 0010 01       		.byte	1
-  62 0011 01       		.byte	1
-  63 0012 01       		.byte	1
-  64 0013 01       		.byte	1
-  65 0014 01       		.byte	1
-  66 0015 01       		.byte	1
-  67 0016 01       		.byte	1
-  68 0017 01       		.byte	1
-  69 0018 01       		.byte	1
-  70 0019 01       		.byte	1
-  71 001a 01       		.byte	1
-  72 001b 01       		.byte	1
-  73 001c 01       		.byte	1
-  74 001d 01       		.byte	1
-  75 001e 01       		.byte	1
-  76 001f 01       		.byte	1
-  77              		.text
-  78              	.Letext0:
-  79              		.section	.debug_loc,"", at progbits
-  80              	.Ldebug_loc0:
-  81              	.LLST0:
-  82 0000 00000000 		.quad	.LFB495-.Ltext0
-  82      00000000 
-  83 0008 01000000 		.quad	.LCFI0-.Ltext0
-  83      00000000 
-  84 0010 0200     		.value	0x2
-  85 0012 77       		.byte	0x77
-  86 0013 08       		.sleb128 8
-  87 0014 01000000 		.quad	.LCFI0-.Ltext0
-  87      00000000 
-  88 001c 04000000 		.quad	.LCFI1-.Ltext0
-  88      00000000 
-  89 0024 0200     		.value	0x2
-  90 0026 77       		.byte	0x77
-  91 0027 10       		.sleb128 16
-  92 0028 04000000 		.quad	.LCFI1-.Ltext0
-  92      00000000 
-  93 0030 2E000000 		.quad	.LFE495-.Ltext0
-  93      00000000 
-  94 0038 0200     		.value	0x2
-  95 003a 76       		.byte	0x76
-  96 003b 10       		.sleb128 16
-  97 003c 00000000 		.quad	0x0
-  97      00000000 
-  98 0044 00000000 		.quad	0x0
-  98      00000000 
-  99              		.file 2 "/usr/include/stdint.h"
- 100              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 101              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 102              		.section	.debug_info
- 103 0000 FD000000 		.long	0xfd
-
GAS LISTING /tmp/cckgalP6.s 			page 4
-
-
- 104 0004 0200     		.value	0x2
- 105 0006 00000000 		.long	.Ldebug_abbrev0
- 106 000a 08       		.byte	0x8
- 107 000b 01       		.uleb128 0x1
- 108 000c 00000000 		.long	.LASF16
- 109 0010 01       		.byte	0x1
- 110 0011 00000000 		.long	.LASF17
- 111 0015 00000000 		.quad	.Ltext0
- 111      00000000 
- 112 001d 00000000 		.quad	.Letext0
- 112      00000000 
- 113 0025 00000000 		.long	.Ldebug_line0
- 114 0029 02       		.uleb128 0x2
- 115 002a 01       		.byte	0x1
- 116 002b 06       		.byte	0x6
- 117 002c 00000000 		.long	.LASF0
- 118 0030 02       		.uleb128 0x2
- 119 0031 02       		.byte	0x2
- 120 0032 05       		.byte	0x5
- 121 0033 00000000 		.long	.LASF1
- 122 0037 03       		.uleb128 0x3
- 123 0038 04       		.byte	0x4
- 124 0039 05       		.byte	0x5
- 125 003a 696E7400 		.string	"int"
- 126 003e 02       		.uleb128 0x2
- 127 003f 08       		.byte	0x8
- 128 0040 05       		.byte	0x5
- 129 0041 00000000 		.long	.LASF2
- 130 0045 04       		.uleb128 0x4
- 131 0046 00000000 		.long	.LASF12
- 132 004a 02       		.byte	0x2
- 133 004b 31       		.byte	0x31
- 134 004c 50000000 		.long	0x50
- 135 0050 02       		.uleb128 0x2
- 136 0051 01       		.byte	0x1
- 137 0052 08       		.byte	0x8
- 138 0053 00000000 		.long	.LASF3
- 139 0057 02       		.uleb128 0x2
- 140 0058 02       		.byte	0x2
- 141 0059 07       		.byte	0x7
- 142 005a 00000000 		.long	.LASF4
- 143 005e 02       		.uleb128 0x2
- 144 005f 04       		.byte	0x4
- 145 0060 07       		.byte	0x7
- 146 0061 00000000 		.long	.LASF5
- 147 0065 02       		.uleb128 0x2
- 148 0066 08       		.byte	0x8
- 149 0067 07       		.byte	0x7
- 150 0068 00000000 		.long	.LASF6
- 151 006c 05       		.uleb128 0x5
- 152 006d 08       		.byte	0x8
- 153 006e 07       		.byte	0x7
- 154 006f 02       		.uleb128 0x2
- 155 0070 01       		.byte	0x1
- 156 0071 06       		.byte	0x6
- 157 0072 00000000 		.long	.LASF7
- 158 0076 02       		.uleb128 0x2
-
GAS LISTING /tmp/cckgalP6.s 			page 5
-
-
- 159 0077 08       		.byte	0x8
- 160 0078 05       		.byte	0x5
- 161 0079 00000000 		.long	.LASF8
- 162 007d 02       		.uleb128 0x2
- 163 007e 04       		.byte	0x4
- 164 007f 04       		.byte	0x4
- 165 0080 00000000 		.long	.LASF9
- 166 0084 02       		.uleb128 0x2
- 167 0085 08       		.byte	0x8
- 168 0086 07       		.byte	0x7
- 169 0087 00000000 		.long	.LASF10
- 170 008b 02       		.uleb128 0x2
- 171 008c 08       		.byte	0x8
- 172 008d 04       		.byte	0x4
- 173 008e 00000000 		.long	.LASF11
- 174 0092 04       		.uleb128 0x4
- 175 0093 00000000 		.long	.LASF13
- 176 0097 03       		.byte	0x3
- 177 0098 26       		.byte	0x26
- 178 0099 9D000000 		.long	0x9d
- 179 009d 06       		.uleb128 0x6
- 180 009e 01       		.byte	0x1
- 181 009f 45000000 		.long	0x45
- 182 00a3 AE000000 		.long	0xae
- 183 00a7 07       		.uleb128 0x7
- 184 00a8 6C000000 		.long	0x6c
- 185 00ac 0F       		.byte	0xf
- 186 00ad 00       		.byte	0x0
- 187 00ae 04       		.uleb128 0x4
- 188 00af 00000000 		.long	.LASF14
- 189 00b3 04       		.byte	0x4
- 190 00b4 3B       		.byte	0x3b
- 191 00b5 92000000 		.long	0x92
- 192 00b9 08       		.uleb128 0x8
- 193 00ba 01       		.byte	0x1
- 194 00bb 00000000 		.long	.LASF18
- 195 00bf 01       		.byte	0x1
- 196 00c0 24       		.byte	0x24
- 197 00c1 01       		.byte	0x1
- 198 00c2 FB000000 		.long	0xfb
- 199 00c6 00000000 		.quad	.LFB495
- 199      00000000 
- 200 00ce 00000000 		.quad	.LFE495
- 200      00000000 
- 201 00d6 00000000 		.long	.LLST0
- 202 00da FB000000 		.long	0xfb
- 203 00de 09       		.uleb128 0x9
- 204 00df 00000000 		.long	.LASF15
- 205 00e3 01       		.byte	0x1
- 206 00e4 27       		.byte	0x27
- 207 00e5 AE000000 		.long	0xae
- 208 00e9 02       		.byte	0x2
- 209 00ea 91       		.byte	0x91
- 210 00eb 50       		.sleb128 -48
- 211 00ec 0A       		.uleb128 0xa
- 212 00ed 6F6E6500 		.string	"one"
- 213 00f1 01       		.byte	0x1
-
GAS LISTING /tmp/cckgalP6.s 			page 6
-
-
- 214 00f2 29       		.byte	0x29
- 215 00f3 AE000000 		.long	0xae
- 216 00f7 02       		.byte	0x2
- 217 00f8 91       		.byte	0x91
- 218 00f9 60       		.sleb128 -32
- 219 00fa 00       		.byte	0x0
- 220 00fb 0B       		.uleb128 0xb
- 221 00fc AE000000 		.long	0xae
- 222 0100 00       		.byte	0x0
- 223              		.section	.debug_abbrev
- 224 0000 01       		.uleb128 0x1
- 225 0001 11       		.uleb128 0x11
- 226 0002 01       		.byte	0x1
- 227 0003 25       		.uleb128 0x25
- 228 0004 0E       		.uleb128 0xe
- 229 0005 13       		.uleb128 0x13
- 230 0006 0B       		.uleb128 0xb
- 231 0007 03       		.uleb128 0x3
- 232 0008 0E       		.uleb128 0xe
- 233 0009 11       		.uleb128 0x11
- 234 000a 01       		.uleb128 0x1
- 235 000b 12       		.uleb128 0x12
- 236 000c 01       		.uleb128 0x1
- 237 000d 10       		.uleb128 0x10
- 238 000e 06       		.uleb128 0x6
- 239 000f 00       		.byte	0x0
- 240 0010 00       		.byte	0x0
- 241 0011 02       		.uleb128 0x2
- 242 0012 24       		.uleb128 0x24
- 243 0013 00       		.byte	0x0
- 244 0014 0B       		.uleb128 0xb
- 245 0015 0B       		.uleb128 0xb
- 246 0016 3E       		.uleb128 0x3e
- 247 0017 0B       		.uleb128 0xb
- 248 0018 03       		.uleb128 0x3
- 249 0019 0E       		.uleb128 0xe
- 250 001a 00       		.byte	0x0
- 251 001b 00       		.byte	0x0
- 252 001c 03       		.uleb128 0x3
- 253 001d 24       		.uleb128 0x24
- 254 001e 00       		.byte	0x0
- 255 001f 0B       		.uleb128 0xb
- 256 0020 0B       		.uleb128 0xb
- 257 0021 3E       		.uleb128 0x3e
- 258 0022 0B       		.uleb128 0xb
- 259 0023 03       		.uleb128 0x3
- 260 0024 08       		.uleb128 0x8
- 261 0025 00       		.byte	0x0
- 262 0026 00       		.byte	0x0
- 263 0027 04       		.uleb128 0x4
- 264 0028 16       		.uleb128 0x16
- 265 0029 00       		.byte	0x0
- 266 002a 03       		.uleb128 0x3
- 267 002b 0E       		.uleb128 0xe
- 268 002c 3A       		.uleb128 0x3a
- 269 002d 0B       		.uleb128 0xb
- 270 002e 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/cckgalP6.s 			page 7
-
-
- 271 002f 0B       		.uleb128 0xb
- 272 0030 49       		.uleb128 0x49
- 273 0031 13       		.uleb128 0x13
- 274 0032 00       		.byte	0x0
- 275 0033 00       		.byte	0x0
- 276 0034 05       		.uleb128 0x5
- 277 0035 24       		.uleb128 0x24
- 278 0036 00       		.byte	0x0
- 279 0037 0B       		.uleb128 0xb
- 280 0038 0B       		.uleb128 0xb
- 281 0039 3E       		.uleb128 0x3e
- 282 003a 0B       		.uleb128 0xb
- 283 003b 00       		.byte	0x0
- 284 003c 00       		.byte	0x0
- 285 003d 06       		.uleb128 0x6
- 286 003e 01       		.uleb128 0x1
- 287 003f 01       		.byte	0x1
- 288 0040 8742     		.uleb128 0x2107
- 289 0042 0C       		.uleb128 0xc
- 290 0043 49       		.uleb128 0x49
- 291 0044 13       		.uleb128 0x13
- 292 0045 01       		.uleb128 0x1
- 293 0046 13       		.uleb128 0x13
- 294 0047 00       		.byte	0x0
- 295 0048 00       		.byte	0x0
- 296 0049 07       		.uleb128 0x7
- 297 004a 21       		.uleb128 0x21
- 298 004b 00       		.byte	0x0
- 299 004c 49       		.uleb128 0x49
- 300 004d 13       		.uleb128 0x13
- 301 004e 2F       		.uleb128 0x2f
- 302 004f 0B       		.uleb128 0xb
- 303 0050 00       		.byte	0x0
- 304 0051 00       		.byte	0x0
- 305 0052 08       		.uleb128 0x8
- 306 0053 2E       		.uleb128 0x2e
- 307 0054 01       		.byte	0x1
- 308 0055 3F       		.uleb128 0x3f
- 309 0056 0C       		.uleb128 0xc
- 310 0057 03       		.uleb128 0x3
- 311 0058 0E       		.uleb128 0xe
- 312 0059 3A       		.uleb128 0x3a
- 313 005a 0B       		.uleb128 0xb
- 314 005b 3B       		.uleb128 0x3b
- 315 005c 0B       		.uleb128 0xb
- 316 005d 27       		.uleb128 0x27
- 317 005e 0C       		.uleb128 0xc
- 318 005f 49       		.uleb128 0x49
- 319 0060 13       		.uleb128 0x13
- 320 0061 11       		.uleb128 0x11
- 321 0062 01       		.uleb128 0x1
- 322 0063 12       		.uleb128 0x12
- 323 0064 01       		.uleb128 0x1
- 324 0065 40       		.uleb128 0x40
- 325 0066 06       		.uleb128 0x6
- 326 0067 01       		.uleb128 0x1
- 327 0068 13       		.uleb128 0x13
-
GAS LISTING /tmp/cckgalP6.s 			page 8
-
-
- 328 0069 00       		.byte	0x0
- 329 006a 00       		.byte	0x0
- 330 006b 09       		.uleb128 0x9
- 331 006c 34       		.uleb128 0x34
- 332 006d 00       		.byte	0x0
- 333 006e 03       		.uleb128 0x3
- 334 006f 0E       		.uleb128 0xe
- 335 0070 3A       		.uleb128 0x3a
- 336 0071 0B       		.uleb128 0xb
- 337 0072 3B       		.uleb128 0x3b
- 338 0073 0B       		.uleb128 0xb
- 339 0074 49       		.uleb128 0x49
- 340 0075 13       		.uleb128 0x13
- 341 0076 02       		.uleb128 0x2
- 342 0077 0A       		.uleb128 0xa
- 343 0078 00       		.byte	0x0
- 344 0079 00       		.byte	0x0
- 345 007a 0A       		.uleb128 0xa
- 346 007b 34       		.uleb128 0x34
- 347 007c 00       		.byte	0x0
- 348 007d 03       		.uleb128 0x3
- 349 007e 08       		.uleb128 0x8
- 350 007f 3A       		.uleb128 0x3a
- 351 0080 0B       		.uleb128 0xb
- 352 0081 3B       		.uleb128 0x3b
- 353 0082 0B       		.uleb128 0xb
- 354 0083 49       		.uleb128 0x49
- 355 0084 13       		.uleb128 0x13
- 356 0085 02       		.uleb128 0x2
- 357 0086 0A       		.uleb128 0xa
- 358 0087 00       		.byte	0x0
- 359 0088 00       		.byte	0x0
- 360 0089 0B       		.uleb128 0xb
- 361 008a 26       		.uleb128 0x26
- 362 008b 00       		.byte	0x0
- 363 008c 49       		.uleb128 0x49
- 364 008d 13       		.uleb128 0x13
- 365 008e 00       		.byte	0x0
- 366 008f 00       		.byte	0x0
- 367 0090 00       		.byte	0x0
- 368              		.section	.debug_pubnames,"", at progbits
- 369 0000 21000000 		.long	0x21
- 370 0004 0200     		.value	0x2
- 371 0006 00000000 		.long	.Ldebug_info0
- 372 000a 01010000 		.long	0x101
- 373 000e B9000000 		.long	0xb9
- 374 0012 4B436970 		.string	"KCipherVectest"
- 374      68657256 
- 374      65637465 
- 374      737400
- 375 0021 00000000 		.long	0x0
- 376              		.section	.debug_aranges,"", at progbits
- 377 0000 2C000000 		.long	0x2c
- 378 0004 0200     		.value	0x2
- 379 0006 00000000 		.long	.Ldebug_info0
- 380 000a 08       		.byte	0x8
- 381 000b 00       		.byte	0x0
-
GAS LISTING /tmp/cckgalP6.s 			page 9
-
-
- 382 000c 0000     		.value	0x0
- 383 000e 0000     		.value	0x0
- 384 0010 00000000 		.quad	.Ltext0
- 384      00000000 
- 385 0018 2E000000 		.quad	.Letext0-.Ltext0
- 385      00000000 
- 386 0020 00000000 		.quad	0x0
- 386      00000000 
- 387 0028 00000000 		.quad	0x0
- 387      00000000 
- 388              		.section	.debug_str,"MS", at progbits,1
- 389              	.LASF8:
- 390 0000 6C6F6E67 		.string	"long long int"
- 390      206C6F6E 
- 390      6720696E 
- 390      7400
- 391              	.LASF17:
- 392 000e 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c"
- 392      652F726F 
- 392      6461726D 
- 392      65722F73 
- 392      72615F73 
- 393              	.LASF18:
- 394 0048 4B436970 		.string	"KCipherVectest"
- 394      68657256 
- 394      65637465 
- 394      737400
- 395              	.LASF6:
- 396 0057 6C6F6E67 		.string	"long unsigned int"
- 396      20756E73 
- 396      69676E65 
- 396      6420696E 
- 396      7400
- 397              	.LASF10:
- 398 0069 6C6F6E67 		.string	"long long unsigned int"
- 398      206C6F6E 
- 398      6720756E 
- 398      7369676E 
- 398      65642069 
- 399              	.LASF12:
- 400 0080 75696E74 		.string	"uint8_t"
- 400      385F7400 
- 401              	.LASF16:
- 402 0088 474E5520 		.string	"GNU C 4.4.2"
- 402      4320342E 
- 402      342E3200 
- 403              	.LASF3:
- 404 0094 756E7369 		.string	"unsigned char"
- 404      676E6564 
- 404      20636861 
- 404      7200
- 405              	.LASF7:
- 406 00a2 63686172 		.string	"char"
- 406      00
- 407              	.LASF2:
- 408 00a7 6C6F6E67 		.string	"long int"
- 408      20696E74 
-
GAS LISTING /tmp/cckgalP6.s 			page 10
-
-
- 408      00
- 409              	.LASF11:
- 410 00b0 646F7562 		.string	"double"
- 410      6C6500
- 411              	.LASF4:
- 412 00b7 73686F72 		.string	"short unsigned int"
- 412      7420756E 
- 412      7369676E 
- 412      65642069 
- 412      6E7400
- 413              	.LASF0:
- 414 00ca 7369676E 		.string	"signed char"
- 414      65642063 
- 414      68617200 
- 415              	.LASF13:
- 416 00d6 76313238 		.string	"v128_u8_t"
- 416      5F75385F 
- 416      7400
- 417              	.LASF14:
- 418 00e0 43697068 		.string	"CipherVec"
- 418      65725665 
- 418      6300
- 419              	.LASF9:
- 420 00ea 666C6F61 		.string	"float"
- 420      7400
- 421              	.LASF15:
- 422 00f0 7A65726F 		.string	"zero"
- 422      00
- 423              	.LASF1:
- 424 00f5 73686F72 		.string	"short int"
- 424      7420696E 
- 424      7400
- 425              	.LASF5:
- 426 00ff 756E7369 		.string	"unsigned int"
- 426      676E6564 
- 426      20696E74 
- 426      00
- 427              		.ident	"GCC: (GNU) 4.4.2"
- 428              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/cckgalP6.s 			page 11
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 compile-test.c
-     /tmp/cckgalP6.s:12     .text:0000000000000000 KCipherVectest
-
-NO UNDEFINED SYMBOLS
diff --git a/libs/krypto/compile-test.vecreg.pic.o.list b/libs/krypto/compile-test.vecreg.pic.o.list
deleted file mode 100644
index edb88a6..0000000
--- a/libs/krypto/compile-test.vecreg.pic.o.list
+++ /dev/null
@@ -1,592 +0,0 @@
-GAS LISTING /tmp/ccg1QBek.s 			page 1
-
-
-   1              		.file	"compile-test.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 D7000000 		.text
-   8      0200BA00 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              	.globl KCipherVecRegtest
-  11              		.type	KCipherVecRegtest, @function
-  12              	KCipherVecRegtest:
-  13              	.LFB570:
-  14              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include <cpuid.h>
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include <v128.h>
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include "ncbi-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #include "blockcipher-impl.h"
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** const
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** CipherVec CMEMBER(test) (void)
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** {
-  15              		.loc 1 37 0
-  16              		.cfi_startproc
-
GAS LISTING /tmp/ccg1QBek.s 			page 2
-
-
-  17 0000 55       		pushq	%rbp
-  18              	.LCFI0:
-  19              		.cfi_def_cfa_offset 16
-  20 0001 4889E5   		movq	%rsp, %rbp
-  21              		.cfi_offset 6, -16
-  22              	.LCFI1:
-  23              		.cfi_def_cfa_register 6
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #if USEVEC
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  24              		.loc 1 40 0
-  25 0004 660F6F05 		movdqa	.LC0(%rip), %xmm0
-  25      00000000 
-  26 000c F30F7F45 		movdqu	%xmm0, -32(%rbp)
-  26      E0
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  27              		.loc 1 42 0
-  28 0011 660F6F05 		movdqa	.LC1(%rip), %xmm0
-  28      00000000 
-  29 0019 F30F7F45 		movdqu	%xmm0, -16(%rbp)
-  29      F0
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #else
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec zero  =  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     CipherVec one   =  { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****                          0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** #endif
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c ****     return zero + one;
-  30              		.loc 1 49 0
-  31 001e F30F6F45 		movdqu	-16(%rbp), %xmm0
-  31      F0
-  32 0023 F30F6F4D 		movdqu	-32(%rbp), %xmm1
-  32      E0
-  33 0028 660FFCC1 		paddb	%xmm1, %xmm0
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c **** }
-  34              		.loc 1 50 0
-  35 002c C9       		leave
-  36 002d C3       		ret
-  37              		.cfi_endproc
-  38              	.LFE570:
-  39              		.size	KCipherVecRegtest, .-KCipherVecRegtest
-  40              		.section	.rodata
-  41              		.align 16
-  42              	.LC0:
-  43 0000 00       		.byte	0
-  44 0001 00       		.byte	0
-  45 0002 00       		.byte	0
-  46 0003 00       		.byte	0
-  47 0004 00       		.byte	0
-  48 0005 00       		.byte	0
-  49 0006 00       		.byte	0
-  50 0007 00       		.byte	0
-  51 0008 00       		.byte	0
-  52 0009 00       		.byte	0
-  53 000a 00       		.byte	0
-  54 000b 00       		.byte	0
-
GAS LISTING /tmp/ccg1QBek.s 			page 3
-
-
-  55 000c 00       		.byte	0
-  56 000d 00       		.byte	0
-  57 000e 00       		.byte	0
-  58 000f 00       		.byte	0
-  59              		.align 16
-  60              	.LC1:
-  61 0010 01       		.byte	1
-  62 0011 01       		.byte	1
-  63 0012 01       		.byte	1
-  64 0013 01       		.byte	1
-  65 0014 01       		.byte	1
-  66 0015 01       		.byte	1
-  67 0016 01       		.byte	1
-  68 0017 01       		.byte	1
-  69 0018 01       		.byte	1
-  70 0019 01       		.byte	1
-  71 001a 01       		.byte	1
-  72 001b 01       		.byte	1
-  73 001c 01       		.byte	1
-  74 001d 01       		.byte	1
-  75 001e 01       		.byte	1
-  76 001f 01       		.byte	1
-  77              		.text
-  78              	.Letext0:
-  79              		.section	.debug_loc,"", at progbits
-  80              	.Ldebug_loc0:
-  81              	.LLST0:
-  82 0000 00000000 		.quad	.LFB570-.Ltext0
-  82      00000000 
-  83 0008 01000000 		.quad	.LCFI0-.Ltext0
-  83      00000000 
-  84 0010 0200     		.value	0x2
-  85 0012 77       		.byte	0x77
-  86 0013 08       		.sleb128 8
-  87 0014 01000000 		.quad	.LCFI0-.Ltext0
-  87      00000000 
-  88 001c 04000000 		.quad	.LCFI1-.Ltext0
-  88      00000000 
-  89 0024 0200     		.value	0x2
-  90 0026 77       		.byte	0x77
-  91 0027 10       		.sleb128 16
-  92 0028 04000000 		.quad	.LCFI1-.Ltext0
-  92      00000000 
-  93 0030 2E000000 		.quad	.LFE570-.Ltext0
-  93      00000000 
-  94 0038 0200     		.value	0x2
-  95 003a 76       		.byte	0x76
-  96 003b 10       		.sleb128 16
-  97 003c 00000000 		.quad	0x0
-  97      00000000 
-  98 0044 00000000 		.quad	0x0
-  98      00000000 
-  99              		.file 2 "/usr/include/stdint.h"
- 100              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 101              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 102              		.section	.debug_info
- 103 0000 FD000000 		.long	0xfd
-
GAS LISTING /tmp/ccg1QBek.s 			page 4
-
-
- 104 0004 0200     		.value	0x2
- 105 0006 00000000 		.long	.Ldebug_abbrev0
- 106 000a 08       		.byte	0x8
- 107 000b 01       		.uleb128 0x1
- 108 000c 00000000 		.long	.LASF16
- 109 0010 01       		.byte	0x1
- 110 0011 00000000 		.long	.LASF17
- 111 0015 00000000 		.quad	.Ltext0
- 111      00000000 
- 112 001d 00000000 		.quad	.Letext0
- 112      00000000 
- 113 0025 00000000 		.long	.Ldebug_line0
- 114 0029 02       		.uleb128 0x2
- 115 002a 01       		.byte	0x1
- 116 002b 06       		.byte	0x6
- 117 002c 00000000 		.long	.LASF0
- 118 0030 02       		.uleb128 0x2
- 119 0031 02       		.byte	0x2
- 120 0032 05       		.byte	0x5
- 121 0033 00000000 		.long	.LASF1
- 122 0037 03       		.uleb128 0x3
- 123 0038 04       		.byte	0x4
- 124 0039 05       		.byte	0x5
- 125 003a 696E7400 		.string	"int"
- 126 003e 02       		.uleb128 0x2
- 127 003f 08       		.byte	0x8
- 128 0040 05       		.byte	0x5
- 129 0041 00000000 		.long	.LASF2
- 130 0045 04       		.uleb128 0x4
- 131 0046 00000000 		.long	.LASF12
- 132 004a 02       		.byte	0x2
- 133 004b 31       		.byte	0x31
- 134 004c 50000000 		.long	0x50
- 135 0050 02       		.uleb128 0x2
- 136 0051 01       		.byte	0x1
- 137 0052 08       		.byte	0x8
- 138 0053 00000000 		.long	.LASF3
- 139 0057 02       		.uleb128 0x2
- 140 0058 02       		.byte	0x2
- 141 0059 07       		.byte	0x7
- 142 005a 00000000 		.long	.LASF4
- 143 005e 02       		.uleb128 0x2
- 144 005f 04       		.byte	0x4
- 145 0060 07       		.byte	0x7
- 146 0061 00000000 		.long	.LASF5
- 147 0065 02       		.uleb128 0x2
- 148 0066 08       		.byte	0x8
- 149 0067 07       		.byte	0x7
- 150 0068 00000000 		.long	.LASF6
- 151 006c 05       		.uleb128 0x5
- 152 006d 08       		.byte	0x8
- 153 006e 07       		.byte	0x7
- 154 006f 02       		.uleb128 0x2
- 155 0070 01       		.byte	0x1
- 156 0071 06       		.byte	0x6
- 157 0072 00000000 		.long	.LASF7
- 158 0076 02       		.uleb128 0x2
-
GAS LISTING /tmp/ccg1QBek.s 			page 5
-
-
- 159 0077 08       		.byte	0x8
- 160 0078 05       		.byte	0x5
- 161 0079 00000000 		.long	.LASF8
- 162 007d 02       		.uleb128 0x2
- 163 007e 04       		.byte	0x4
- 164 007f 04       		.byte	0x4
- 165 0080 00000000 		.long	.LASF9
- 166 0084 02       		.uleb128 0x2
- 167 0085 08       		.byte	0x8
- 168 0086 07       		.byte	0x7
- 169 0087 00000000 		.long	.LASF10
- 170 008b 02       		.uleb128 0x2
- 171 008c 08       		.byte	0x8
- 172 008d 04       		.byte	0x4
- 173 008e 00000000 		.long	.LASF11
- 174 0092 04       		.uleb128 0x4
- 175 0093 00000000 		.long	.LASF13
- 176 0097 03       		.byte	0x3
- 177 0098 26       		.byte	0x26
- 178 0099 9D000000 		.long	0x9d
- 179 009d 06       		.uleb128 0x6
- 180 009e 01       		.byte	0x1
- 181 009f 45000000 		.long	0x45
- 182 00a3 AE000000 		.long	0xae
- 183 00a7 07       		.uleb128 0x7
- 184 00a8 6C000000 		.long	0x6c
- 185 00ac 0F       		.byte	0xf
- 186 00ad 00       		.byte	0x0
- 187 00ae 04       		.uleb128 0x4
- 188 00af 00000000 		.long	.LASF14
- 189 00b3 04       		.byte	0x4
- 190 00b4 3B       		.byte	0x3b
- 191 00b5 92000000 		.long	0x92
- 192 00b9 08       		.uleb128 0x8
- 193 00ba 01       		.byte	0x1
- 194 00bb 00000000 		.long	.LASF18
- 195 00bf 01       		.byte	0x1
- 196 00c0 24       		.byte	0x24
- 197 00c1 01       		.byte	0x1
- 198 00c2 FB000000 		.long	0xfb
- 199 00c6 00000000 		.quad	.LFB570
- 199      00000000 
- 200 00ce 00000000 		.quad	.LFE570
- 200      00000000 
- 201 00d6 00000000 		.long	.LLST0
- 202 00da FB000000 		.long	0xfb
- 203 00de 09       		.uleb128 0x9
- 204 00df 00000000 		.long	.LASF15
- 205 00e3 01       		.byte	0x1
- 206 00e4 27       		.byte	0x27
- 207 00e5 AE000000 		.long	0xae
- 208 00e9 02       		.byte	0x2
- 209 00ea 91       		.byte	0x91
- 210 00eb 50       		.sleb128 -48
- 211 00ec 0A       		.uleb128 0xa
- 212 00ed 6F6E6500 		.string	"one"
- 213 00f1 01       		.byte	0x1
-
GAS LISTING /tmp/ccg1QBek.s 			page 6
-
-
- 214 00f2 29       		.byte	0x29
- 215 00f3 AE000000 		.long	0xae
- 216 00f7 02       		.byte	0x2
- 217 00f8 91       		.byte	0x91
- 218 00f9 60       		.sleb128 -32
- 219 00fa 00       		.byte	0x0
- 220 00fb 0B       		.uleb128 0xb
- 221 00fc AE000000 		.long	0xae
- 222 0100 00       		.byte	0x0
- 223              		.section	.debug_abbrev
- 224 0000 01       		.uleb128 0x1
- 225 0001 11       		.uleb128 0x11
- 226 0002 01       		.byte	0x1
- 227 0003 25       		.uleb128 0x25
- 228 0004 0E       		.uleb128 0xe
- 229 0005 13       		.uleb128 0x13
- 230 0006 0B       		.uleb128 0xb
- 231 0007 03       		.uleb128 0x3
- 232 0008 0E       		.uleb128 0xe
- 233 0009 11       		.uleb128 0x11
- 234 000a 01       		.uleb128 0x1
- 235 000b 12       		.uleb128 0x12
- 236 000c 01       		.uleb128 0x1
- 237 000d 10       		.uleb128 0x10
- 238 000e 06       		.uleb128 0x6
- 239 000f 00       		.byte	0x0
- 240 0010 00       		.byte	0x0
- 241 0011 02       		.uleb128 0x2
- 242 0012 24       		.uleb128 0x24
- 243 0013 00       		.byte	0x0
- 244 0014 0B       		.uleb128 0xb
- 245 0015 0B       		.uleb128 0xb
- 246 0016 3E       		.uleb128 0x3e
- 247 0017 0B       		.uleb128 0xb
- 248 0018 03       		.uleb128 0x3
- 249 0019 0E       		.uleb128 0xe
- 250 001a 00       		.byte	0x0
- 251 001b 00       		.byte	0x0
- 252 001c 03       		.uleb128 0x3
- 253 001d 24       		.uleb128 0x24
- 254 001e 00       		.byte	0x0
- 255 001f 0B       		.uleb128 0xb
- 256 0020 0B       		.uleb128 0xb
- 257 0021 3E       		.uleb128 0x3e
- 258 0022 0B       		.uleb128 0xb
- 259 0023 03       		.uleb128 0x3
- 260 0024 08       		.uleb128 0x8
- 261 0025 00       		.byte	0x0
- 262 0026 00       		.byte	0x0
- 263 0027 04       		.uleb128 0x4
- 264 0028 16       		.uleb128 0x16
- 265 0029 00       		.byte	0x0
- 266 002a 03       		.uleb128 0x3
- 267 002b 0E       		.uleb128 0xe
- 268 002c 3A       		.uleb128 0x3a
- 269 002d 0B       		.uleb128 0xb
- 270 002e 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/ccg1QBek.s 			page 7
-
-
- 271 002f 0B       		.uleb128 0xb
- 272 0030 49       		.uleb128 0x49
- 273 0031 13       		.uleb128 0x13
- 274 0032 00       		.byte	0x0
- 275 0033 00       		.byte	0x0
- 276 0034 05       		.uleb128 0x5
- 277 0035 24       		.uleb128 0x24
- 278 0036 00       		.byte	0x0
- 279 0037 0B       		.uleb128 0xb
- 280 0038 0B       		.uleb128 0xb
- 281 0039 3E       		.uleb128 0x3e
- 282 003a 0B       		.uleb128 0xb
- 283 003b 00       		.byte	0x0
- 284 003c 00       		.byte	0x0
- 285 003d 06       		.uleb128 0x6
- 286 003e 01       		.uleb128 0x1
- 287 003f 01       		.byte	0x1
- 288 0040 8742     		.uleb128 0x2107
- 289 0042 0C       		.uleb128 0xc
- 290 0043 49       		.uleb128 0x49
- 291 0044 13       		.uleb128 0x13
- 292 0045 01       		.uleb128 0x1
- 293 0046 13       		.uleb128 0x13
- 294 0047 00       		.byte	0x0
- 295 0048 00       		.byte	0x0
- 296 0049 07       		.uleb128 0x7
- 297 004a 21       		.uleb128 0x21
- 298 004b 00       		.byte	0x0
- 299 004c 49       		.uleb128 0x49
- 300 004d 13       		.uleb128 0x13
- 301 004e 2F       		.uleb128 0x2f
- 302 004f 0B       		.uleb128 0xb
- 303 0050 00       		.byte	0x0
- 304 0051 00       		.byte	0x0
- 305 0052 08       		.uleb128 0x8
- 306 0053 2E       		.uleb128 0x2e
- 307 0054 01       		.byte	0x1
- 308 0055 3F       		.uleb128 0x3f
- 309 0056 0C       		.uleb128 0xc
- 310 0057 03       		.uleb128 0x3
- 311 0058 0E       		.uleb128 0xe
- 312 0059 3A       		.uleb128 0x3a
- 313 005a 0B       		.uleb128 0xb
- 314 005b 3B       		.uleb128 0x3b
- 315 005c 0B       		.uleb128 0xb
- 316 005d 27       		.uleb128 0x27
- 317 005e 0C       		.uleb128 0xc
- 318 005f 49       		.uleb128 0x49
- 319 0060 13       		.uleb128 0x13
- 320 0061 11       		.uleb128 0x11
- 321 0062 01       		.uleb128 0x1
- 322 0063 12       		.uleb128 0x12
- 323 0064 01       		.uleb128 0x1
- 324 0065 40       		.uleb128 0x40
- 325 0066 06       		.uleb128 0x6
- 326 0067 01       		.uleb128 0x1
- 327 0068 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccg1QBek.s 			page 8
-
-
- 328 0069 00       		.byte	0x0
- 329 006a 00       		.byte	0x0
- 330 006b 09       		.uleb128 0x9
- 331 006c 34       		.uleb128 0x34
- 332 006d 00       		.byte	0x0
- 333 006e 03       		.uleb128 0x3
- 334 006f 0E       		.uleb128 0xe
- 335 0070 3A       		.uleb128 0x3a
- 336 0071 0B       		.uleb128 0xb
- 337 0072 3B       		.uleb128 0x3b
- 338 0073 0B       		.uleb128 0xb
- 339 0074 49       		.uleb128 0x49
- 340 0075 13       		.uleb128 0x13
- 341 0076 02       		.uleb128 0x2
- 342 0077 0A       		.uleb128 0xa
- 343 0078 00       		.byte	0x0
- 344 0079 00       		.byte	0x0
- 345 007a 0A       		.uleb128 0xa
- 346 007b 34       		.uleb128 0x34
- 347 007c 00       		.byte	0x0
- 348 007d 03       		.uleb128 0x3
- 349 007e 08       		.uleb128 0x8
- 350 007f 3A       		.uleb128 0x3a
- 351 0080 0B       		.uleb128 0xb
- 352 0081 3B       		.uleb128 0x3b
- 353 0082 0B       		.uleb128 0xb
- 354 0083 49       		.uleb128 0x49
- 355 0084 13       		.uleb128 0x13
- 356 0085 02       		.uleb128 0x2
- 357 0086 0A       		.uleb128 0xa
- 358 0087 00       		.byte	0x0
- 359 0088 00       		.byte	0x0
- 360 0089 0B       		.uleb128 0xb
- 361 008a 26       		.uleb128 0x26
- 362 008b 00       		.byte	0x0
- 363 008c 49       		.uleb128 0x49
- 364 008d 13       		.uleb128 0x13
- 365 008e 00       		.byte	0x0
- 366 008f 00       		.byte	0x0
- 367 0090 00       		.byte	0x0
- 368              		.section	.debug_pubnames,"", at progbits
- 369 0000 24000000 		.long	0x24
- 370 0004 0200     		.value	0x2
- 371 0006 00000000 		.long	.Ldebug_info0
- 372 000a 01010000 		.long	0x101
- 373 000e B9000000 		.long	0xb9
- 374 0012 4B436970 		.string	"KCipherVecRegtest"
- 374      68657256 
- 374      65635265 
- 374      67746573 
- 374      7400
- 375 0024 00000000 		.long	0x0
- 376              		.section	.debug_aranges,"", at progbits
- 377 0000 2C000000 		.long	0x2c
- 378 0004 0200     		.value	0x2
- 379 0006 00000000 		.long	.Ldebug_info0
- 380 000a 08       		.byte	0x8
-
GAS LISTING /tmp/ccg1QBek.s 			page 9
-
-
- 381 000b 00       		.byte	0x0
- 382 000c 0000     		.value	0x0
- 383 000e 0000     		.value	0x0
- 384 0010 00000000 		.quad	.Ltext0
- 384      00000000 
- 385 0018 2E000000 		.quad	.Letext0-.Ltext0
- 385      00000000 
- 386 0020 00000000 		.quad	0x0
- 386      00000000 
- 387 0028 00000000 		.quad	0x0
- 387      00000000 
- 388              		.section	.debug_str,"MS", at progbits,1
- 389              	.LASF8:
- 390 0000 6C6F6E67 		.string	"long long int"
- 390      206C6F6E 
- 390      6720696E 
- 390      7400
- 391              	.LASF17:
- 392 000e 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/compile-test.c"
- 392      652F726F 
- 392      6461726D 
- 392      65722F73 
- 392      72615F73 
- 393              	.LASF5:
- 394 0048 756E7369 		.string	"unsigned int"
- 394      676E6564 
- 394      20696E74 
- 394      00
- 395              	.LASF6:
- 396 0055 6C6F6E67 		.string	"long unsigned int"
- 396      20756E73 
- 396      69676E65 
- 396      6420696E 
- 396      7400
- 397              	.LASF10:
- 398 0067 6C6F6E67 		.string	"long long unsigned int"
- 398      206C6F6E 
- 398      6720756E 
- 398      7369676E 
- 398      65642069 
- 399              	.LASF12:
- 400 007e 75696E74 		.string	"uint8_t"
- 400      385F7400 
- 401              	.LASF16:
- 402 0086 474E5520 		.string	"GNU C 4.4.2"
- 402      4320342E 
- 402      342E3200 
- 403              	.LASF3:
- 404 0092 756E7369 		.string	"unsigned char"
- 404      676E6564 
- 404      20636861 
- 404      7200
- 405              	.LASF7:
- 406 00a0 63686172 		.string	"char"
- 406      00
- 407              	.LASF2:
- 408 00a5 6C6F6E67 		.string	"long int"
-
GAS LISTING /tmp/ccg1QBek.s 			page 10
-
-
- 408      20696E74 
- 408      00
- 409              	.LASF11:
- 410 00ae 646F7562 		.string	"double"
- 410      6C6500
- 411              	.LASF18:
- 412 00b5 4B436970 		.string	"KCipherVecRegtest"
- 412      68657256 
- 412      65635265 
- 412      67746573 
- 412      7400
- 413              	.LASF4:
- 414 00c7 73686F72 		.string	"short unsigned int"
- 414      7420756E 
- 414      7369676E 
- 414      65642069 
- 414      6E7400
- 415              	.LASF0:
- 416 00da 7369676E 		.string	"signed char"
- 416      65642063 
- 416      68617200 
- 417              	.LASF13:
- 418 00e6 76313238 		.string	"v128_u8_t"
- 418      5F75385F 
- 418      7400
- 419              	.LASF14:
- 420 00f0 43697068 		.string	"CipherVec"
- 420      65725665 
- 420      6300
- 421              	.LASF9:
- 422 00fa 666C6F61 		.string	"float"
- 422      7400
- 423              	.LASF15:
- 424 0100 7A65726F 		.string	"zero"
- 424      00
- 425              	.LASF1:
- 426 0105 73686F72 		.string	"short int"
- 426      7420696E 
- 426      7400
- 427              		.ident	"GCC: (GNU) 4.4.2"
- 428              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccg1QBek.s 			page 11
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 compile-test.c
-     /tmp/ccg1QBek.s:12     .text:0000000000000000 KCipherVecRegtest
-
-NO UNDEFINED SYMBOLS
diff --git a/libs/krypto/csprng.c b/libs/krypto/csprng.c
deleted file mode 100644
index 4ee747b..0000000
--- a/libs/krypto/csprng.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-
-#include <krypto/extern.h>
-
-#include <krypto/rng.h>
-#include <klib/defs.h>
-#include <klib/rc.h>
-#include <klib/refcount.h>
-
-#include <sysalloc.h>
-
-#include <openssl/rand.h>
-
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-
-typedef KRng KCSPRng;
-
-#define KRNG_IMPL KCSPRng
-#include <krypto/rng-impl.h>
-
-
-
-static
-rc_t CC KCSPRngDestroy (KCSPRng * self)
-{
-    free (self);
-    return 0;
-}
-
-static
-rc_t CC KCSPRngSeed (KRng * self)
-{
-    rc_t rc;
-    uint8_t buff [16];
-
-    if (self == NULL)
-        return RC (rcKrypto, rcRng, rcWriting, rcSelf, rcNull);
-
-    /* get some system entropy */
-    rc = KRngSysEntropy (self, buff, sizeof (buff));
-    if (rc)
-        return rc;
-
-    RAND_seed (buff, sizeof (buff));
-
-    return 0;
-}
-
-static
-rc_t CC KCSPRngReseed (KRng * self, const void * buffer_, 
-                       size_t buff_size)
-{
-    const char * buffer;
-    rc_t rc;
-    int32_t ix;
-    uint8_t buff [256];
-
-    if (self == NULL)
-        return RC (rcKrypto, rcRng, rcUpdating, rcSelf, rcNull);
-
-    if (((buffer = buffer_) == NULL) && (buff_size != 0))
-        return RC (rcKrypto, rcRng, rcUpdating, rcParam, rcNull);
-
-    rc = KRngSysEntropy (self, buff, 16);
-    if (rc)
-        return rc;
-
-    if (buffer)
-        for (ix = (buff_size + sizeof (buff) - 1)/sizeof (buff);
-             ix > 0; 
-             (ix -= sizeof (buff)),
-                 (buff_size -= sizeof(buff)),
-                 (buffer += sizeof (buff)))
-        {
-            int32_t jx = (buff_size>sizeof (buff))?sizeof(buff):buff_size;
-            while (--jx > 0)
-                buff[jx] ^= buffer[jx];
-        }
-
-    RAND_add (buffer, buff_size, 1); /* what is that entropy supposed to do? */
-
-    return 0;
-}
-
-static
-rc_t CC KCSPRngRead (const KCSPRng * self, void * buffer, uint32_t bsize, uint32_t * num_read)
-{
-    int ret;
-
-    ret = RAND_bytes (buffer, bsize);
-    if (ret == -1)
-    {
-        *num_read = 0;
-        return RC (rcKrypto, rcRng, rcReading, rcSelf, rcInsufficient);
-    }
-    *num_read = bsize;
-    return 0;
-}
-
-static const
-KRng_vt_v1 vt = 
-{
-    1, 0,
-
-    /* start minor version == 0 */
-    KCSPRngDestroy,
-    KCSPRngSeed,
-    KCSPRngReseed,
-    KCSPRngRead
-    /* end minor version == 0 */
-};
-    
-LIB_EXPORT rc_t CC KCSPRngMake (KRng ** pself)
-{
-    KCSPRng * self;
-    rc_t rc;
-
-    if (pself == NULL)
-        return RC (rcRuntime, 0, rcConstructing, rcSelf, rcNull);
-    else
-    {
-        *pself = NULL;
-
-        self = malloc (sizeof (*self));
-        if (self == NULL)
-            return RC (rcRuntime, 0, rcConstructing, rcMemory, rcExhausted);
-
-        else
-        {
-            rc = KRngInit (self, (union KRng_vt*)&vt, "KCSPRng");
-            *pself = self;
-            return 0;
-        }
-    }
-    return rc;
-}
diff --git a/libs/krypto/encfile-priv.h b/libs/krypto/encfile-priv.h
deleted file mode 100644
index 8061508..0000000
--- a/libs/krypto/encfile-priv.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#ifndef _h_krypto_encfile_priv_libs_
-#define _h_krypto_encfile_priv_libs_
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/* ----------------------------------------------------------------------
- * Offset conversions between encrypted file offset, decrypted file offset
- * and block ID and block offset
- */
-
-/* -----
- * A data block within the encrypted file may not divide nicely by the size of
- * its greatest alignment issue. That is there is currently a uint64_t within 
- * the KEncFileKey forcing 8-byte alignment by default but the whole of the
- * size of KEncFileKey plus the size of the KEncFileData plus the size of
- * the KEncFileCRC is not divisible by 8 so it can't be treated as a single 
- * structure for the puroses of using the sizeof() operator.
- *
- * If the size of the header, block or footer are modified in the future
- * care should be take to retain accuracy of the new versions of these
- * functions.
- */
-
-static __inline__ uint64_t BlockId_to_EncryptedPos (uint64_t block_id)
-{
-    /* the whole block structure is not divisible by 8
-     * so this is not a simple multiply by the sizeof KEncFileBlock
-     */
-    return (sizeof (KEncFileHeader) + block_id * sizeof (KEncFileBlock));
-}
-
-
-static __inline__ uint64_t BlockId_to_DecryptedPos (uint64_t block_id)
-{
-    /* the simplest conversion as its a simple multiply */
-    return (block_id * sizeof (KEncFileData));
-}
-
-
-/* -----
- * when converting from file offsets to block ids we effectively have a
- * quotient and a remainder.  The block id is the quotient and the
- * offset within the block is the remainder.  We use lldiv not ldiv as we
- * are required to work on both 32 and 64 bit machines where long might
- * be 32 bits or it might be 64 bits.  If long long is 128 we willingly
- * sacrifice efficiency for accuracy.
- */
-static __inline__
-uint64_t DecryptedPos_to_BlockId (uint64_t dec_offset, uint32_t * poffset)
-{
-    if (poffset)
-        *poffset = dec_offset % sizeof (KEncFileData);
-    return dec_offset / sizeof (KEncFileData);
-}
-
-static __inline__
-uint64_t EncryptedPos_to_BlockId (uint64_t enc_offset, uint32_t * poffset,
-                                     bool * in_block)
-{
-    uint64_t block_id;
-
-    if (enc_offset < sizeof (KEncFileHeader))
-    {
-        if (poffset)
-            *poffset = 0;
-        if (in_block)
-            *in_block = false;
-        block_id = 0;
-    }
-    else
-    {
-        uint64_t offset;
-
-        enc_offset -= sizeof (KEncFileHeader);
-        block_id = enc_offset / sizeof (KEncFileBlock);
-        offset = enc_offset % sizeof (KEncFileBlock);
-
-        if (offset <= sizeof(KEncFileKey))
-        {
-            if (poffset)
-                *poffset = 0;
-            if (in_block)
-                *in_block = false;
-        }
-        else
-        {
-            offset -= sizeof(KEncFileKey);
-
-            if (offset >= sizeof(KEncFileData))
-            {
-                if (poffset)
-                    *poffset = 0;
-                if (in_block)
-                    *in_block = false;
-            }
-            else
-            {
-                if (poffset)
-                    *poffset = offset;
-                if (in_block)
-                    *in_block = true;
-            }
-        }
-    }
-    return block_id;
-}
-
-struct KFile;
-struct KKey;
-
-KRYPTO_EXTERN rc_t CC KEncFileWriteHeader (struct KFile * self);
-KRYPTO_EXTERN rc_t CC KEncFileWriteHeader_v1 (struct KFile * self);
-KRYPTO_EXTERN rc_t CC KEncFileWriteHeader_v2 (struct KFile * self);
-KRYPTO_EXTERN rc_t CC KEncFileMakeWriteBlock (struct KFile ** pself, 
-                                              struct KFile * encrypted,
-                                              const struct KKey * key);
-
-KRYPTO_EXTERN rc_t CC KEncFileMakeBlock_v2 (struct KFile ** pself,
-                                         struct KFile * encrypted,
-                                         const struct KKey * key);
-
-
-#if 0
-#if USE_UPDATE_V1
-#define KEncFileWriteHeader KEncFileWriteHeader_v1
-#else
-#define KEncFileWriteHeader KEncFileWriteHeader_v2
-#endif
-#endif
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_encfile_priv_libs_ */
-
-
diff --git a/libs/krypto/encfile.c b/libs/krypto/encfile.c
deleted file mode 100644
index 1c0a970..0000000
--- a/libs/krypto/encfile.c
+++ /dev/null
@@ -1,2122 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#include <krypto/extern.h>
-#include <krypto/encfile.h>
-#include <krypto/encfile-priv.h>
-#include <krypto/key.h>
-#include <krypto/ciphermgr.h>
-#include <krypto/cipher.h>
-#include "aes-priv.h"
-#include "encfile-priv.h"
-
-#include <klib/rc.h>
-#include <klib/checksum.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/debug.h>
-#include <klib/vector.h>
-#include <klib/status.h>
-#include <kfs/file.h>
-
-#include <sysalloc.h>
-
-#include <byteswap.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-
-#include <klib/out.h>
-
-#define USE_READ_V1     false
-#define USE_WRITE_V1    false
-#define USE_UPDATE_V1   false
-#define USE_BLOCK_V1    false
-/* KReencFile and KEncryptFile need to use update v1 as it is different */
-#define USE_VALIDATE_V1 false
-#define USE_ISENC_V1    false
-
-#define ENABLE_V2 true
-
-
-/* ----------------------------------------------------------------------
- * KEncFileV1
- *   Base object class for the encryption, decryption and validation of
- *   the file format defined above
- */
-typedef struct KEncFileV1  KEncFileV1;
-#define KFILE_IMPL struct KEncFileV1
-#include <kfs/impl.h>
-
-
-#include "encfile-priv.h"
-
-/* ----------
- * BufferCalcMD5
- *    Generate the MD5 digest for a buffer
- */
-static
-void BufferCalcMD5 (const void * buffer, size_t size, uint8_t digest [16])
-{
-    MD5State state;
-
-    assert (buffer);
-    assert (size);
-    assert (digest);
-
-    MD5StateInit (&state);
-    MD5StateAppend (&state, buffer, size);
-    MD5StateFinish (&state, digest);
-}
-
-#if 0
-/* ----------------------------------------------------------------------
- * Offset conversions between encrypted file offset, decrypted file offset
- * and block ID and block offset
- */
-
-/* -----
- * A data block within the encrypted file may not divide nicely by the size of
- * its greatest alignment issue. That is there is currently a uint64_t within 
- * the KEncFileKey forcing 8-byte alignment by default but the whole of the
- * size of KEncFileKey plus the sizze of the KEncFileData plus the size of
- * the KEncFileCRC is not divisible by 8 so it can't be treated as a single 
- * structure for the puroses of using the sizeof() operator.
- *
- * If the size of the header, block or footer are modified in the future
- * care should be take to retain accuracy of the new versions of these
- * functions.
- */
-
-static __inline__ uint64_t BlockId_to_EncryptedPos (uint64_t block_id)
-{
-    /* the whole block structure is not divisible by 8
-     * so this is not a simple multiply by the sizeof KEncFileBlock
-     */
-    return (sizeof (KEncFileHeader) + block_id * sizeof (KEncFileBlock));
-}
-
-
-static __inline__ uint64_t BlockId_to_DecryptedPos (uint64_t block_id)
-{
-    /* the simplest conversion as its a simple multiply */
-    return (block_id * sizeof (KEncFileData));
-}
-
-
-/* -----
- * when converting from file offsets to block ids we effectively have a
- * quotient and a remainder.  The block id is the quotient and the
- * offset within the block is the remainder.  We use lldiv not ldiv as we
- * are required to work on both 32 and 64 bit machines where long might
- * be 32 bits or it might be 64 bits.  If long long is 128 we willingly
- * sacrifice efficiency for accuracy.
- */
-static __inline__
-uint64_t DecryptedPos_to_BlockId (uint64_t dec_offset, uint32_t * poffset)
-{
-    if (poffset)
-        *poffset = dec_offset % sizeof (KEncFileData);
-    return dec_offset / sizeof (KEncFileData);
-}
-
-/* not so easy - fix this if needed... */
-#if 0
-static
-uint64_t EncryptedPos_to_BlockId (uint64_t enc_offset, uint32_t * poffset)
-{
-    uint64_t block_id;
-
-    if (enc_offset < sizeof (KEncFileHeader))
-    {
-        if (poffset)
-            *poffset = 0;
-        block_id = 0;
-    }
-    else
-    {
-        uint64_t offset;
-
-        enc_offset -= sizeof (KEncFileHeader);
-        block_id = enc_offset / sizeof (KEncFileBlock);
-        offset = enc_offset % sizeof (KEncFileBlock);
-
-        if (offset <= sizeof(KEncFileKey))
-            offset = 0;
-        else
-        {
-            offset -= sizeof(KEncFileKey);
-
-            if (offset >= sizeof(KEncFileData))
-            {
-                ++block_id;
-                offset = 0;
-            }
-        }
-
-        if (poffset)
-            *poffset = offset;
-    }
-    return block_id;
-}
-#endif
-#endif
-
-typedef struct KEncFileCiphers KEncFileCiphers;
-struct KEncFileCiphers
-{
-    KCipher * master;
-    KCipher * block;
-};
-
-typedef uint8_t KEncFileIVec [16];
-/* -----
- */
-struct KEncFileV1
-{
-    KFile dad;                  /* base class */
-    KFile * encrypted;          /* encrypted file as a KFile */
-    KEncFileCiphers ciphers;
-    KEncFileBlock block;        /* */
-    uint64_t encrypted_max;     /* highest read/written point in the encrypted file */
-    KEncFileFooter foot;        /* contains rcrchecksum and blockcount */
-#if ENABLE_V2
-    KEncFileVersion version;
-#endif
-    bool dirty;                 /* data written but not flushed */
-    bool bswap;
-    bool eof;
-    bool seekable;
-    bool written;
-    bool swarm;
-};
-
-
-/* ----------------------------------------------------------------------
- * Buffer - just some part of the encrypted file read or written
- *
- *   these functions exist to hide the potential multiple calls needed
- *   if the KFileRead or KFileWrite called on the encrypted file break up
- *   the requested amount into partial reads or writes
- */
-
-/* ----------
- * BufferRead
- *    Fill a buffer with a requested number of bytes from the encrypted file.  
- *    Read either the requested number of bytes or up through EOF.
- *    The caller has to handle an EOF shorted buffer.
- */
-static
-rc_t KEncFileV1BufferRead (const KEncFileV1 * cself, uint64_t pos, void * buffer,
-                         size_t bsize, size_t * pnum_read)
-{
-    KEncFileV1 * self;   /* for mutable fields */
-    uint8_t * bbuffer; /* void pointer made to a byyte pointer */
-    rc_t rc;
-
-    assert (cself);
-    assert (buffer);
-    assert (pnum_read);
-
-    *pnum_read = 0;
-
-    self = (KEncFileV1*)cself; /* to hit mutable fields */
-    bbuffer = buffer; /* convert to a pointer of sized target */
-
-    /* we want to read a full requested size if possible so keep trying if we
-     * haven't read enough yet. 
-     * We can quit early only if EOF (i.e. read 0 bytes.
-     */
-    rc = KFileReadAll (self->encrypted, pos, buffer, bsize, pnum_read);
-    if (rc)
-        PLOGERR (klogErr,
-                 (klogErr, rc,
-                  "error reading position '$(P)' in encrypted file",
-                  "P=%lu", pos));
-
-    else if (self->encrypted_max < pos)
-        self->encrypted_max = pos;
-            
-    return rc;
-}
-
-
-/* ----------
- * BufferWrite
- *    Write a buffer of requested size out to the encrypted file.
- *    return the number of bytes successfully written
- */
-static
-rc_t KEncFileV1BufferWrite (KEncFileV1 * self, uint64_t pos, const void * buffer,
-                          size_t bsize, size_t * pnum_writ)
-{
-    rc_t rc;
-
-    rc =  KFileWriteAll (self->encrypted, pos, buffer, bsize, pnum_writ);
-    if ((rc == 0) && (self->encrypted_max < pos))
-        self->encrypted_max = pos;
-
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * operations on KEncFileHeader
- *
- * The header only needs to be read and validated or written  we need not 
- * reatian within the KEncFile object any information about the header in
- * the initial version of this file format.
- */
-
-/* -----
- * the first eight bytes of the file are two four byte strings
- *  The first is a common "NCBI"
- *  The second is the format specific "nenc"
- */
-static const KEncFileSig KEncFileSignature = "NCBInenc";
-
-/* -----
- * the common constant used throughout the project to check the byte order 
- * as written by the system which created the file
- */
-/* enum fails to handle these due to integer overflow */
-
-#define eByteOrderTag     (0x05031988)
-#define eByteOrderReverse (0x88190305)
-
-/* ----
- * Not unexpectedly the first version of this file will be "1"
- */
-#if ENABLE_V2
-
-#define eCurrentVersion (0x00000002)
-#define eCurrentVersionReverse (0x02000000)
-
-static
-const KEncFileHeader const_header_v1
-= { "NCBInenc", eByteOrderTag, 0x00000001 };
-
-static
-const KEncFileHeader const_bswap_header_v1
-= { "NCBInenc", eByteOrderReverse, 0x01000000 };
-    
-#else
-
-#define eCurrentVersion (0x00000001)
-#define eCurrentVersionReverse (0x01000000)
-
-#endif
-    
-static
-const KEncFileHeader const_header
-= { "NCBInenc", eByteOrderTag, eCurrentVersion };
-
-static
-const KEncFileHeader const_bswap_header
-= { "NCBInenc", eByteOrderReverse, eCurrentVersionReverse };
-
-
-/* ----------
- * HeaderRead
- *    Read the header of an encrypted file and validate it.
- */
-static
-rc_t KEncFileV1HeaderRead (KEncFileV1 * self)
-{
-    KEncFileHeader header;
-    size_t num_read;
-    rc_t rc;
-
-    assert (self);
-
-    rc = KEncFileV1BufferRead (self, 0, &header, sizeof (header), &num_read);
-    if (rc)
-        return rc;
-
-    if (num_read != sizeof (header))
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcHeader, rcTooShort);
-        PLOGERR (klogErr,
-                 (klogErr, rc, "error reading full header of encrypted "
-                  "file  wanted '$(S)' got '$(N); bytes read", "S=%u,N=%u",
-                  sizeof (header), num_read));
-        return rc;
-    }
-
-    /* expected is encrypted on a system of the same endianess */
-    if (memcmp (&header, &const_header, sizeof (header)) == 0)
-    {
-        self->bswap = false;
-#if ENABLE_V2
-        self->version = eCurrentVersion;
-#endif
-        return 0;
-    }
-
-    /* next most likely is encrypted on a machine of opposite endianess */
-    if (memcmp (&header, &const_bswap_header, sizeof (header)) == 0)
-    {
-        self->bswap = true;
-#if ENABLE_V2
-        self->version = eCurrentVersion;
-#endif
-        return 0;
-    }
-
-#if ENABLE_V2
-    if (memcmp (&header, &const_header_v1, sizeof (header)) == 0)
-    {
-        self->bswap = false;
-        self->version = 1;
-        return 0;
-    }
-
-    /* next most likely is encrypted on a machine of opposite endianess */
-    if (memcmp (&header, &const_bswap_header_v1, sizeof (header)) == 0)
-    {
-        self->bswap = true;
-        self->version = 1;
-        return 0;
-    }
-#endif
-
-    /* okay it's a "bad" header, so figure out why */
-    if (memcmp (&header, &const_header, sizeof (header.file_sig)) != 0)
-    {
-        rc = RC (rcKrypto, rcFile, rcReading, rcHeader, rcInvalid);
-        LOGERR (klogErr, rc, "file is not the NCBI encrypted file format");
-        /* if this fails the rest doesn't matter */
-        return rc;
-    }
-
-    switch (header.byte_order)
-    {
-    default:
-        rc = RC (rcFS, rcFile, rcConstructing, rcByteOrder, rcInvalid);
-        PLOGERR (klogErr, 
-                 (klogErr, rc, "invalid byte order flag '$(F); in "
-                  "encrypted file", "F=%X", header.byte_order));
-        /* we don't return to possibly log other version errors */
-        break;
-    case eByteOrderReverse:
-    case eByteOrderTag:
-        break;
-    }
-
-    switch (header.version)
-    {
-    default:
-        rc = RC (rcFS, rcFile, rcConstructing, rcHeader, rcBadVersion);
-        PLOGERR (klogErr, 
-                 (klogErr, rc, "can not decrypt version '$(V)'",
-                  "V=%u", header.version));
-        break;
-
-    case 1:
-#if ENABLE_V2
-    case 2:
-#endif
-        break;
-    }
-    return rc;
-}
-
-
-/* -----
- * HeaderWrite
- *
- * build a ram copy of the header and write it to the file
- */
-static
-rc_t KEncFileV1HeaderWrite (KEncFileV1 * self)
-{
-    size_t num_writ;
-    rc_t rc;
-
-    rc = KEncFileV1BufferWrite (self, 0, &const_header, sizeof (const_header),
-                              &num_writ);
-    if (rc == 0)
-    {
-        if (num_writ != sizeof (const_header))
-            rc = RC (rcFS, rcFile, rcWriting, rcHeader, rcInsufficient);
-    }
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KEncFileV1WriteHeader_v1  (KFile * self)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcFile, rcWriting, rcSelf, rcNull);
-    return KEncFileV1HeaderWrite ((KEncFileV1*)self);
-}
-
-
-/* ----------------------------------------------------------------------
- * operations on KEncFileFooter
- */
-
-/* ----------
- * Validate
- * we expect to read a Footer when we expect a Block so we validate in RAM
- * without a Read
- *
- * we're just comparing the values in the footer against expected values
- */
-static
-rc_t KEncFileV1FooterValidate (const KEncFileV1 * self,
-                             uint64_t block_count, uint64_t crc_checksum)
-{
-    rc_t rc1 = 0, rc2 = 0;
-
-    if (self->foot.block_count != block_count)
-    {
-        rc2 = RC (rcKrypto, rcFile, rcValidating, rcFile, rcCorrupt);
-        LOGERR (klogErr, rc1, "bad block count in encrypted file footer");
-    }
-    if ((self->foot.crc_checksum != crc_checksum)
-#if ENABLE_V2
-        &&((crc_checksum != 0) || (self->version == 1))
-#endif
-        )
-    {
-        rc1 = RC (rcKrypto, rcFile, rcValidating, rcChecksum, rcCorrupt);
-        LOGERR (klogErr, rc2, "bad crc checksum in encrypted file footer");
-    }
-    return (rc1 ? rc1 : rc2);
-}
-
-
-/* ----------
- * Write
- * when we write a footer we write from the values in the object.  They
- * are stored in the same object format as the footer so its very simple
- */
-static
-rc_t KEncFileV1FooterWrite (KEncFileV1 * self)
-{
-    KEncFileFooter foot;
-    uint64_t offset;
-    size_t num_writ;
-    rc_t rc;
-
-    memcpy (&foot, &self->foot, sizeof (foot));
-    if (self->bswap)
-    {
-        foot.block_count = bswap_64 (foot.block_count);
-        foot.crc_checksum = bswap_64 (foot.crc_checksum);
-    }
-
-    offset = BlockId_to_EncryptedPos (self->foot.block_count);
-
-/*     assert ((self->encrypted_max == offset) || */
-/*             (self->encrypted_max + sizeof(self->foot) == offset)); */
-
-    rc = KEncFileV1BufferWrite (self, offset, &foot, sizeof (foot),
-                              &num_writ);
-    if (rc == 0)
-    {
-        if (num_writ != sizeof (foot))
-            rc = RC (rcFS, rcFile, rcWriting, rcFile, rcInsufficient);
-    }
-    return rc;
-}
-
-
-/* ----------
- * IvecInit
- *    create the ivec for a given block
- *    done in a function to ensure decrypt and encrypt use the same code to
- *    generate this.  Anything used to create this has to be available to
- *    code that doesn't know the content of the data or the state of the file
- *    beyond the location of the block with in the file.
- *
- *    This is definitely over-kill using the MD5.
- */
-static
-void KEncFileV1IVecInit (const KEncFileV1 * self, KEncFileIVec ivec)
-{
-    BufferCalcMD5 (&self->block.id, sizeof self->block.id, ivec);
-}
-
- 
-/* ----------
- * BlockEncrypt
- */
-
-static
-rc_t KEncFileV1BlockEncrypt (KEncFileV1 * self, KEncFileBlock * e)
-{
-    SHA256State state;
-    uint64_t id;
-    uint16_t valid;
-    uint16_t saved_valid;
-    KEncFileCRC crc;
-    uint8_t ivec [16];
-    rc_t rc;
-
-    assert (self);
-    assert (e);
-
-    /*
-     * First we finish preparing the two ciphers by creating the block
-     * user key out of the first part of the data and the shared Initialization
-     * vector for Chained Block Cipher mode encryption out of the block id
-     * 
-     * create the initialization vector for this block
-     */
-    KEncFileV1IVecInit (self, ivec);
-
-    /*
-     * set the ivec for both the master and data block ciphers
-     */
-    rc = KCipherSetEncryptIVec (self->ciphers.master, ivec);
-    if (rc)
-        return rc;
-
-    rc = KCipherSetEncryptIVec (self->ciphers.block, ivec);
-    if (rc)
-        return rc;
-
-    /*
-     * create the block user key out of the first 4kb of data and the block id 
-     */
-    saved_valid = valid = self->block.u.valid;
-    id = self->block.id;
-
-    SHA256StateInit (&state);
-    SHA256StateAppend (&state, self->block.data, 
-                       valid > 4096 ? 4096 : valid);
-    SHA256StateAppend (&state, &id, sizeof (id));
-    SHA256StateFinish (&state, self->block.key);
-        
-    /*
-     * create the block key schedule out of the block user key
-     */
-    rc = KCipherSetEncryptKey (self->ciphers.block, self->block.key,
-                               sizeof self->block.key);
-    if (rc)
-        return rc;
-
-    /* 
-     * Salt the block using the randomish user key to randomly select
-     * data from the valid data.
-     *
-     * This will cover the data portion of the block past the last valid
-     * byte.
-     *
-     * NOTE we are accessing a byte array as a word array.
-     *
-     * NOTE we are using the array named data to access data beyond it's end.
-     */
-    {
-        uint16_t * pw;
-        unsigned int windex;
-        unsigned int rindex;
-        size_t bindex;
-
-        pw = (uint16_t*)self->block.key;
-        windex = 0;
-
-        for (bindex = valid;
-             bindex < sizeof self->block.data + sizeof self->block.u; 
-             ++ bindex)
-        {
-            /* this goes beyond the end of the data array by design */
-            rindex = (size_t)pw[windex];
-            rindex %= bindex;
-
-            self->block.data[bindex] = self->block.data[rindex];
-        
-            ++rindex;
-            if (rindex >= sizeof self->block.key / sizeof *pw)
-                rindex = 0;
-        }
-    }
-
-    /* 
-     * If we are modifying a block created on a system with a different default
-     * Endian choice we'll need to byte swap the block id and the block valid
-     * count
-     */
-    if (self->bswap)
-    {
-        id = bswap_64 (id);
-        valid = bswap_16 (valid);
-    }
-
-
-    if (saved_valid == sizeof self->block.data)
-        self->block.u.valid |= valid;
-    else
-        self->block.u.valid = valid;
-
-    e->id = id;
-
-    /* 
-     * encrypt the block user key into the buffer
-     */
-    rc = KCipherEncryptCBC (self->ciphers.master, self->block.key, e->key,
-                            sizeof (self->block.key) / sizeof (ivec));
-    if (rc)
-        return rc;
-
-    /*
-     * encrypt the data, offset and valid values
-     */
-    rc = KCipherEncryptCBC (self->ciphers.block, 
-                            self->block.data, e->data,
-                            (sizeof self->block.data + sizeof self->block.u) / sizeof (ivec));
-    if (rc)
-        return rc;
-
-    self->block.u.valid = saved_valid;
-
-    crc = CRC32 (0, e, (char*)(&e->crc)-(char*)e);
-
-    self->block.crc = crc;
-
-    if (self->bswap)
-    {
-        crc = bswap_32 (crc);
-    }
-    e->crc_copy = e->crc = crc;
-    
-    return 0;
-}
-
-
-/* ----------
- * BlockDecrypt
- *   decrypt decrypts the data from a KEncFileBlock into the KEncFileBlock
- *   in the KEncFile object
- */
-
-static
-rc_t KEncFileV1BlockDecrypt (KEncFileV1 * self, KEncFileBlock * e)
-{
-    uint8_t ivec [16];
-    rc_t rc;
-
-    assert (self);
-    assert (e);
-
-    /* create the initialization vector for this block */
-    KEncFileV1IVecInit (self, ivec);
-
-    /*
-     * set the ivec for both the master and data block ciphers
-     */
-    rc = KCipherSetDecryptIVec (self->ciphers.master, ivec);
-    if (rc)
-        return rc;
-
-    rc = KCipherSetDecryptIVec (self->ciphers.block, ivec);
-    if (rc)
-        return rc;
-
-    /* 
-     * decrypt the block key and initial vector using the user key and 
-     * the computer ivec
-     */
-    rc = KCipherDecryptCBC (self->ciphers.master, e->key, self->block.key,
-                            (sizeof e->key) / sizeof ivec);
-    if (rc)
-        return rc;
-
-    /* 
-     * now create the AES key for the block from the newly decrypted 
-     * block key
-     */
-    rc = KCipherSetDecryptKey (self->ciphers.block, self->block.key,
-                               sizeof self->block.key);
-    if (rc)
-        return rc;
-    rc = KCipherDecryptCBC (self->ciphers.block, e->data, 
-                            self->block.data, 
-                            (sizeof e->data + sizeof e->u) / sizeof ivec);
-    if (rc)
-        return rc;
-
-    if (self->bswap)
-    {
-        self->block.u.valid = bswap_16 (self->block.u.valid);
-/*         self->block.id = bswap_64 (self->block.id); */
-    }
-
-    /* we choose not to flag errors in decryption so don't validate these */
-    if (self->block.u.valid & 0x8000)
-        self->block.u.valid = 0x8000;
-
-    return rc;
-}
-
-
-/* ----------
- * BlockRead
- *    read a requested block from the encrypted file; 
- *    decryption is a separate step
- */
-static
-rc_t KEncFileV1BlockRead (const KEncFileV1 * cself, uint64_t block_id,
-                        KEncFileBlock * block, bool validate)
-{
-    KEncFileV1 * self;    /* mutable fields */
-    uint64_t pos;
-    uint64_t max;
-    size_t num_read;
-    rc_t rc;
-    KEncFileBlock e;
-
-    assert (cself);
-    assert (block);
-
-    self = (KEncFileV1*)cself;
-    pos = BlockId_to_EncryptedPos (block_id);
-
-    /* set aside the current maximum position within the encrypted file */
-    max = self->encrypted_max;
-
-    memset (&self->block, 0, sizeof self->block);
-    self->block.id = block_id;
-    self->block.u.valid = 0;
-    self->dirty = false;
-
-    rc = KEncFileV1BufferRead (self, pos, &e, sizeof e, &num_read);
-    if (rc)
-        PLOGERR (klogErr,
-                 (klogErr, rc,
-                  "error in reading block '$(BID)' from encrypted file",
-                  "BID=%lu", block_id));
-    else
-    {
-        uint32_t crc;
-
-        /* we'll judge the success of the read now on how many bytes read
-         * there are only three legitimate values:  
-         *   + size of a block 
-         *   + size of a footer
-         *   + zero meaning no footer yet
-         *
-         * This might have to change to handled streamed files where the 
-         * producer jsut hasn't finished yet
-         */
-        switch (num_read)
-        {
-        default: /* bad value means a truncated file most likely */
-            rc = RC (rcKrypto, rcFile, rcReading, rcFile, rcInsufficient);
-            PLOGERR (klogErr,
-                     (klogErr, rc, "wrong size reading block '$(B)' at '$(P)' "
-                      "from encrypted file - likely truncated", "B=%lu,P=%lu",
-                      block_id, pos));
-            break;
-
-        case sizeof e:
-            if (max <= pos) /* if we hadn't read this far do accounting */
-            {
-                if (self->bswap)
-                {
-                    e.crc = bswap_32 (e.crc);
-                    e.id = bswap_64 (e.id);
-                }
-
-                if (block_id != e.id)
-                {
-                    PLOGERR (klogErr,
-                             (klogErr,
-                              RC (rcKrypto, rcFile, rcValidating, rcIndex, rcIncorrect),
-                              "error validating id for block '$(BID)' is not $(C2)", 
-                              "BID=%lu,C2=%lu", block_id, e.id));
-                }
-
-                if (validate)
-                {
-                    crc = CRC32 (0, &e, (char*)(&e.crc)-(char*)&e);
-
-
-                    if (crc != e.crc)
-                    {
-                        PLOGERR (klogErr,
-                                 (klogErr,
-                                  RC (rcKrypto, rcFile, rcValidating, rcCrc, rcCorrupt),
-                                  "error validating crc for block '$(BID)' $(C1) is not $(C2)", 
-                                  "BID=%lu,C1=0x%X,C2=0x%X", block_id,
-                                  crc, e.crc));
-                    }
-                }
-
-                ++self->foot.block_count;
-/* Byte Endian problem! */
-                self->foot.crc_checksum += e.crc;
-            }
-            memcpy (block, &e, sizeof e);
-            self->eof = false;
-            break;
-
-        case sizeof (self->foot):
-            {
-                KEncFileFooter foot;
-                memmove (&foot, &e, sizeof foot);
-                if (self->bswap)
-                {
-                    foot.block_count = bswap_64 (foot.block_count);
-                    foot.crc_checksum = bswap_64 (foot.crc_checksum);
-                }
-                if (validate && !self->written)
-                {
-                    rc = KEncFileV1FooterValidate (self, foot.block_count,
-                                                 foot.crc_checksum);
-                    if (rc)
-                        break;
-                }
-            }
-            /* fall through */
-        case 0:
-            self->block.u.valid = 0;
-            self->block.crc = 0;
-            self->eof = true;
-            return 0;
-
-        }
-    }
-    return rc;
-}
-
-static
-rc_t KEncFileV1BlockWrite (KEncFileV1 * self)
-{
-    KEncFileBlock e;
-    uint64_t block_offset;
-    size_t num_writ;
-    rc_t rc;
- 
-    assert (self);
-
-    if (self->block.u.valid > sizeof self->block.data)
-        return RC (rcFS, rcFile, rcWriting, rcBuffer, rcCorrupt);
-
-    /* where in the file is this block */
-    block_offset = BlockId_to_EncryptedPos(self->block.id);
-
-    /* if this is an update to a block take out the old crc value */
-    if (block_offset < self->encrypted_max)
-        self->foot.crc_checksum -= self->block.crc;
-
-    /* if it's not we need to add it as a new block in the count */
-    else
-        ++self->foot.block_count;
-
-    rc = KEncFileV1BlockEncrypt (self, &e);
-    if (rc)
-        return rc;
-
-/* Byte Endian problem */
-    self->foot.crc_checksum += self->block.crc;
-
-    /* now write the buffer to the encrypted file */
-    rc = KEncFileV1BufferWrite (self, block_offset, &e, sizeof e, &num_writ);
-
-    if ((rc == 0) && (num_writ != sizeof e))
-    {
-        rc = RC (rcFS, rcFile, rcWriting, rcFile, rcTooShort);
-        PLOGERR (klogErr,
-                 (klogErr, rc, "incomplete block write '$(B)' wanted"
-                  " '$(V)' got '$(N)'", "B=%lu,V=%u,N=%u",
-                  self->foot.block_count+1, self->block.u.valid, num_writ));
-    }
-    return rc;
-}
-
-
-static
-rc_t KEncFileV1BlockFlush (KEncFileV1 *self)
-{
-    rc_t rc = 0;
-
-    assert (self);
-    assert (self->block.u.valid);
-    assert (self->block.u.valid <= sizeof (self->block.data));
-
-    /* first do we need to deal with the file header? 
-     * if the encrypted file has not been written to we do */
-    if ((self->encrypted_max == 0) && (self->swarm == false))
-    {
-        rc = KEncFileV1HeaderWrite (self);
-        if (rc)
-            return rc;
-    }
-
-    if (self->dirty)
-    {
-        rc = KEncFileV1BlockWrite (self);
-        if (rc == 0)
-            self->dirty = false;
-    }
-    return rc;
-}
-
-
-/*
- * block_id - which block to read and decrypt
- * fill - if not false, we fill in zero blocks up through this block
- *
- */
-static
-rc_t KEncFileV1BlockSeek (KEncFileV1 * self, uint64_t block_id, bool fill, bool validate)
-{
-    KEncFileBlock b;
-    rc_t rc;
-
-    if (block_id != self->block.id)
-    {
-        if (self->dirty)
-        {
-            /* flush what we got */
-            rc = KEncFileV1BlockFlush (self);
-            if (rc)
-                return rc;
-        }
-
-        if (validate && (block_id > self->block.id))
-        {
-            uint64_t tid;
-
-            for (tid = self->block.id + 1; tid < block_id; ++tid)
-            {
-                if (self->encrypted_max > BlockId_to_EncryptedPos(block_id))
-                    continue;
-
-                memset (&b, 0, sizeof b);
-
-                rc = KEncFileV1BlockRead (self, tid, &b, validate);
-                if (rc)
-                    return rc;
-
-                if (self->eof)
-                {
-                    if (fill)
-                    {
-                        self->eof = false;
-                        memset (self->block.data, 0, sizeof (self->block.data));
-                        self->block.u.valid = sizeof (self->block.data);
-                        self->dirty = true;
-                        rc = KEncFileV1BlockFlush (self);
-                        if (rc)
-                            return rc;
-                    }
-                    else
-                        return 0;
-                }
-                /* in this loop a less than full block is end of file */
-                else if (fill)
-                {
-                    rc = KEncFileV1BlockDecrypt (self, &b);
-                    if (rc)
-                        return rc;
-
-                    if (self->block.u.valid < sizeof self->block.u.valid)
-                    {
-                        memset (self->block.data + self->block.u.valid, 0, 
-                                sizeof (self->block.data) - self->block.u.valid);
-                        self->dirty = true;
-                        rc = KEncFileV1BlockFlush (self);
-                        if (rc)
-                            return rc;
-                    }
-                    else
-                    {
-                        return 0;
-                    }
-                }
-            }
-        }
-    }
-    /* done with intervening blocks */
-    memset (&b, 0, sizeof b);
-
-    rc = KEncFileV1BlockRead (self, block_id, &b, validate);
-    if (rc)
-        return rc;
-
-    if (! self->eof)
-    {
-        rc = KEncFileV1BlockDecrypt (self, &b);
-    }
-    if (fill)
-    {
-        self->block.id = block_id;
-        self->block.u.valid = 0;
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Interface Functions
- *
- * Destroy
- *
- */
-static
-rc_t CC KEncFileV1DestroyRead (KEncFileV1 *self)
-{
-    rc_t rc1 = 0;
-    rc_t rc2 = 0;
-    rc_t rc3 = 0;
-
-    if (self)
-    {
-        rc1 = KFileRelease (self->encrypted);
-        rc2 = KCipherRelease (self->ciphers.master);
-        rc3 = KCipherRelease (self->ciphers.block);
-        free (self);
-        return rc1 ?  rc1 : rc2 ? rc2 : rc3;
-    }
-    return 0;
-}
-
-
-static
-rc_t CC KEncFileV1DestroyWrite (KEncFileV1 *self)
-{
-    rc_t rc1;
-    rc_t rc2;
-
-    rc1 = (self->block.u.valid) ? KEncFileV1BlockFlush (self) : 0;
-    if ((rc1 == 0)&&(self->encrypted_max != 0))
-        rc1 = KEncFileV1FooterWrite (self);
-    rc2 = KFileRelease (self->encrypted);
-
-    return (rc1 ?  rc1 : rc2);
-}
-
-
-static
-rc_t CC KEncFileV1DestroySwarm (KEncFileV1 *self)
-{
-    rc_t rc1 = 0;
-    rc_t rc2 = 0;
-    rc_t rc3 = 0;
-
-    if (self)
-    {
-        rc1 = KFileRelease (self->encrypted);
-        rc2 = KCipherRelease (self->ciphers.master);
-        rc3 = KCipherRelease (self->ciphers.block);
-        free (self);
-        return rc1 ?  rc1 : rc2 ? rc2 : rc3;
-    }
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * GetSysFile
- *  returns an underlying system file object
- *  and starting offset to contiguous region
- *  suitable for memory mapping, or NULL if
- *  no such file is available.
- *
- * We do not allow this for read, write or update as you can not memory map the 
- * unencrypted file in a meaningful way.
- */
-static
-struct KSysFile *CC KEncFileV1GetSysFileUnsupported (const KEncFileV1 *self, uint64_t *offset)
-{
-    assert (self);
-    assert (offset);
-    return NULL;
-}
-
-
-/* ----------------------------------------------------------------------
- * RandomAccess
- *
- *  returns 0 if random access, error code otherwise
- */
-static
-rc_t CC KEncFileV1RandomAccess (const KEncFileV1 *self)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-    return KFileRandomAccess (self->encrypted);
-}
-
-
-static
-rc_t CC KEncFileV1RandomAccessUnsupported (const KEncFileV1 *self)
-{
-    return RC ( rcFS, rcFile, rcUpdating, rcFunction, rcUnsupported );
-}
-
-
-/* ----------------------------------------------------------------------
- * Size
- *  returns size in bytes of file
- *
- *  "size" [ OUT ] - return parameter for file size
- */
-static
-rc_t CC KEncFileV1SizeUnsupported (const KEncFileV1 *self, uint64_t *size)
-{
-    return RC ( rcFS, rcFile, rcAccessing, rcFunction, rcUnsupported );
-}
-
-
-/* ----------------------------------------------------------------------
- * SetSize
- *  sets size in bytes of file
- *
- *  "size" [ IN ] - new file size
- */
-static
-rc_t CC KEncFileV1SetSizeUnsupported (KEncFileV1 *self, uint64_t size)
-{
-    assert (self);
-    return RC ( rcFS, rcFile, rcUpdating, rcFunction, rcUnsupported );
-}
-
-
-/* ----------------------------------------------------------------------
- * Read
- *  read file from known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually read
- */
-static
-rc_t CC KEncFileV1ReadUnsupported (const KEncFileV1 *self,
-                                 uint64_t pos,
-                                 void *buffer,
-                                 size_t bsize,
-                                 size_t *num_read)
-{
-    return RC ( rcFS, rcFile, rcReading, rcFunction, rcUnsupported );
-}
-
-
-static
-rc_t CC KEncFileV1Read	(const KEncFileV1 *cself,
-                         uint64_t pos,
-                         void *buffer,
-                         size_t bsize,
-                         size_t *num_read)
-{
-    KEncFileV1 * self = (KEncFileV1 *)cself; /* mutable values */
-    uint64_t block_id;
-    uint32_t offset;
-    size_t to_copy;
-    rc_t rc = 0;
-
-    assert (self); /* checked in file.c KFileRead() */
-    /* pos can be 'anything' */
-    assert (buffer); /* checked in file.c KFileRead() */
-    assert (bsize); /* checked in file.c KFileRead() */
-    assert (num_read); /* checked in file.c KFileRead() */
-
-    *num_read = 0;
-
-    block_id = DecryptedPos_to_BlockId (pos, &offset);
-
-    /*
-     * are we on the wrong block?
-     * Or are do we need to read the first block?
-     */
-    if ((block_id != self->block.id) || (self->block.u.valid == 0))
-    {
-        rc = KEncFileV1BlockSeek (self, block_id, false, false);
-        if (rc)
-            return rc;
-    }
-
-    /*
-     * if we are trying to read past the end of the file 
-     * return 0 with nothing read
-     */
-    if (self->eof || (block_id != self->block.id) ||
-        (offset >= self->block.u.valid))
-        return 0;
-
-    to_copy = self->block.u.valid - offset;
-    if (to_copy > bsize)
-        to_copy = bsize;
-
-    memmove (buffer, self->block.data + offset, to_copy);
-    *num_read = to_copy;
-
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * Write
- *  write file at known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- *
- * Unsupported as we now treat archives as READ ONLY
- */
-static
-rc_t CC KEncFileV1WriteUnsupported (KEncFileV1 *self, uint64_t pos,
-                                  const void *buffer, size_t bsize,
-                                  size_t *num_writ)
-{
-    rc_t rc = RC (rcFS, rcFile, rcReading, rcFunction, rcUnsupported);
-    LOGERR (klogInt, rc, "KFileRead failed to filter call");
-    return rc;
-}
-
-static
-rc_t KEncFileV1WriteInt (KEncFileV1 *self, uint64_t block_id, uint32_t block_offset,
-                       const void *buffer, size_t bsize,
-                       size_t *pnum_writ, bool seek)
-{
-    const uint8_t * pb;
-    size_t tot_writ;
-    rc_t rc;
-
-    assert (self);
-    assert (self->block.u.valid <= sizeof (self->block.data));
-    assert (block_offset < sizeof (self->block.data));
-    assert (buffer);
-    assert (bsize);
-    assert (pnum_writ);
-
-    if (seek)
-    {
-        /* if we need to change blocks */
-        if (block_id != self->block.id)
-        {
-            rc = KEncFileV1BlockSeek (self, block_id, true, false);
-            if (rc)
-                return rc;
-        }
-        /* do we have to fill some of this block */
-        if (self->block.u.valid < block_id)
-        {
-            memset (self->block.data + self->block.u.valid, 0,
-                    block_offset - self->block.u.valid);
-            self->block.u.valid = block_offset;
-        }
-    }
-
-    /*
-     * is the full write within this block?
-     * doesn't matter whether we are skipping back or not
-     */
-    if ((block_offset + bsize) <= sizeof (self->block.data))
-    {
-        memmove (self->block.data + block_offset, buffer, bsize);
-        self->dirty = true;
-        if (block_offset + bsize > self->block.u.valid)
-            self->block.u.valid = block_offset + bsize;
-        *pnum_writ = bsize;
-        return 0;
-    }
-
-    /* we are either forcing ourselves backward or not */
-    else 
-        self->block.u.valid = block_offset;
-
-    /* by this point we are 'at' the right place in the file */
-    /* do we have an existing (possibly partial) block? */
-
-    /* change to a sized target pointer */
-    pb = buffer;
-    tot_writ = 0;
-
-    /* handle this first block with some data in it */
-    if (self->block.u.valid != 0)
-    {
-        size_t remaining;
-
-        /* how many bytes left in this block */
-        remaining = sizeof self->block.data - self->block.u.valid;
-
-        memmove (self->block.data + self->block.u.valid, buffer, remaining);
-        self->block.u.valid = sizeof self->block.data;
-
-        self->dirty = true;
-        rc = KEncFileV1BlockFlush (self);
-        if (rc)
-        {
-            LOGERR (klogErr, rc, "error flushing block in encrypt");
-            return rc;
-        }
-
-        tot_writ = remaining;
-        pb += remaining;
-        bsize -= remaining; 
-        ++block_id;
-    }
-
-    /* now loop through complete blocks to write */
-    for (; bsize >= sizeof self->block.data; bsize -= sizeof self->block.data)
-    {
-        memcpy (self->block.data, pb, sizeof self->block.data);
-
-        self->block.u.valid = sizeof self->block.data;
-        self->block.id = block_id;
-        self->dirty = true;
-        rc = KEncFileV1BlockFlush (self);
-        if (rc)
-        {
-            LOGERR (klogErr, rc, "error flushing block in encrypt");
-            return rc;
-        }
-        pb += sizeof self->block.data;
-	tot_writ += sizeof self->block.data;
-        ++block_id;
-    }
-
-    /* now any last partial block that starts at the beginning of a block */
-    if (bsize != 0)
-    {
-        KEncFileBlock b;
-
-        if (self->encrypted_max > BlockId_to_EncryptedPos(block_id))
-        {
-            rc = KEncFileV1BlockRead (self, block_id, &b, false);
-            if (rc)
-                return rc;
-            /* if valid is not 0 we actually read something */
-            if (b.u.valid)
-                rc = KEncFileV1BlockDecrypt (self, &b);
-        }
-        else
-        {
-            self->block.u.valid = 0;
-            self->block.id = block_id;
-        }
-
-        memmove (self->block.data, pb, bsize);
-
-        if (bsize > self->block.u.valid)
-            self->block.u.valid = bsize;
-
-        self->dirty = true;
-        tot_writ += bsize;
-    }
-    *pnum_writ = tot_writ;
-    return 0;
-}
-
-
-static
-rc_t CC KEncFileV1Write (KEncFileV1 *self, uint64_t pos,
-                       const void *buffer, size_t bsize,
-                       size_t *pnum_writ)
-{
-    uint64_t block_id;
-    uint64_t curr_block_id;
-    uint32_t block_offset;
-    uint32_t curr_block_offset;
-    rc_t rc = 0;
-
-    /* -----
-     * check for incorrect call with a seek attempt
-     * we only allow seeks on read or read/write files
-     *
-     * find our location in the encrypted file by block id
-     * and offset
-     */
-    block_id = DecryptedPos_to_BlockId (pos, &block_offset);
-    curr_block_id = DecryptedPos_to_BlockId
-        (BlockId_to_DecryptedPos (self->block.id) + self->block.u.valid,
-         &curr_block_offset);
-
-    /* are we writing to the wrong block/offset? */
-    if ((block_id != curr_block_id) || (block_offset != curr_block_offset))
-    {
-        rc = RC (rcFS, rcFile, rcWriting, rcOffset, rcIncorrect);
-        PLOGERR (klogErr, (klogErr, rc, "attempt to seek in encryption write at"
-                           " '$(O)' seek to '$(P)'", "O=%lu,P=%lu",
-                           BlockId_to_EncryptedPos(self->block.id), pos));
-    }
-    else
-    {
-        if ((block_id != 0) && (block_id != self->block.id))
-        {
-            rc = KEncFileV1BlockFlush (self);
-            if (rc == 0)
-            {
-                ++self->block.id;
-                self->block.u.valid = 0;
-            }
-        }
-        
-        if (rc == 0)
-            rc = KEncFileV1WriteInt (self, block_id, block_offset, buffer,
-                                       bsize, pnum_writ, false);
-    }
-    return rc;
-}
-
-
-static
-rc_t CC KEncFileV1WriteSwarm (KEncFileV1 *self, uint64_t pos,
-                            const void *buffer, size_t bsize,
-                            size_t *pnum_writ)
-{
-    uint32_t block_offset;
-    rc_t rc;
-
-    self->block.id = DecryptedPos_to_BlockId (pos, &block_offset);
-    self->block.u.valid = 0;
-    if (bsize > sizeof self->block.data - block_offset)
-        bsize = sizeof self->block.data - block_offset;
-
-    rc = KEncFileV1WriteInt (self, self->block.id, block_offset, buffer,
-                           bsize, pnum_writ, false);
-    if (rc == 0)
-        rc = KEncFileV1BlockFlush (self);
-    return rc;
-}
-
-
-static
-rc_t CC KEncFileV1Update (KEncFileV1 *self, uint64_t pos,
-                        const void *buffer, size_t bsize,
-                        size_t *pnum_writ)
-{
-    return RC (rcKrypto, rcFile, rcConstructing, rcFunction, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * Type
- *  returns a KFileDesc
- *  not intended to be a content type,
- *  but rather an implementation class
- */
-static
-uint32_t CC KEncFileV1Type (const KEncFileV1 *self)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-
-    return KFileType (self->encrypted);
-}
-
-
-/* ----------------------------------------------------------------------
- * KEncFileV1Make
- *  create a new file object
- */
-
-/* ----------
- * KeysInit
- */
-static
-rc_t KEncFileV1CiphersInit (KEncFileV1 * self, const KKey * key, bool read, bool write)
-{
-    KCipherManager * mgr;
-    size_t z;
-    rc_t rc;
-
-    switch ( key->type)
-    {
-    default:
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcInvalid);
-
-    case kkeyNone:
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcIncorrect);
-
-    case kkeyAES128:
-        z = 128/8; break;
-
-    case kkeyAES192:
-        z = 192/8; break;
-
-    case kkeyAES256:
-        z = 256/8; break;
-    }
-    rc = KCipherManagerMake (&mgr);
-    if (rc == 0)
-    {
-        rc = KCipherManagerMakeCipher (mgr, &self->ciphers.master, kcipher_AES);
-        if (rc == 0)
-        {
-            rc = KCipherManagerMakeCipher (mgr, &self->ciphers.block, kcipher_AES);
-            if (rc == 0)
-            {
-                rc = KCipherSetDecryptKey (self->ciphers.master, key->text, z);
-                if (rc == 0)
-                {
-                    rc = KCipherSetEncryptKey (self->ciphers.master, key->text, z);
-                    if (rc == 0)
-                        goto keep_ciphers;
-                }
-                KCipherRelease (self->ciphers.block);
-                self->ciphers.block = NULL;
-            }
-            KCipherRelease (self->ciphers.master);
-            self->ciphers.master = NULL;
-        }
-    keep_ciphers:
-        KCipherManagerRelease (mgr);
-    }
-    return rc;
-}
-
-
-
-/* ----------
- * MakeInt
- *    common make for all encryptor/decryptors
- */
-static
-rc_t KEncFileV1MakeInt (KEncFileV1 ** pself, KFile * encrypted,
-                      const KFile_vt_v1 * vt, bool r, bool w, bool v)
-{
-    KEncFileV1 * self;
-    rc_t rc;
-
-    assert (pself);
-    assert (encrypted);
-
-    /* allocate and zero out an object since we want much of it to be zeroed */
-    self = calloc (sizeof *self, 1);
-    if (self == NULL)
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
-        LOGERR (klogSys, rc,
-                "out of memory creating encrypter and/or decryptor");
-    }
-    else
-    {
-        /* all KFiles get this initialization */
-        rc = KFileInit (&self->dad, (const KFile_vt*)vt, "KEncFileV1", "no-name", r, w);
-        if (rc)
-            LOGERR (klogInt, rc, "failure initialize encrypted file root class");
-        else
-        {
-            rc = KFileAddRef (encrypted);
-            if (rc == 0)
-            {
-                self->encrypted = encrypted;
-                *pself = self;
-                return 0;
-            }
-        }
-        free (self);
-    }
-    return rc;
-}
-
-
-/* ----------
- * MakeCmn
- * common parameter validation for all encryptor/decryptors
- */
-static
-rc_t KEncFileV1MakeCmn (KEncFileV1 ** pself, KFile * encrypted, const KKey * key,
-                      const KFile_vt_v1 * vt, bool r, bool w)
-{
-    rc_t rc = 0;
-
-    do
-    {
-        CRC32Init();    /* likely to be called way too often */
-
-        if (pself == NULL)
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcSelf, rcNull);
-            LOGERR (klogErr, rc,
-                    "pointer to self NULL when creating "
-                    "an encryptor/decryptor");
-            break;
-        }
-        *pself = NULL;
-
-        if (encrypted == NULL)
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-            LOGERR (klogErr, rc, 
-                    "encrypted file not supplied when creating "
-                    "an encryptor/decryptor");
-            break;
-        }
-
-        if (key == NULL)
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-            LOGERR (klogErr, rc, 
-                    "key not supplied when creating an encryptor/decryptor");
-            break;
-        }
-
-        switch (key->type)
-        {
-        default:
-            rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcInvalid);
-            PLOGERR (klogErr,
-                     (klogErr, rc, "invalid key type '$(T)' should be "
-                      "kkeyAES128(1), kkeyAES192(2) or kkeyAES256(3)",
-                      "T=%u", key->type));
-            break;
-
-        case kkeyAES128:
-        case kkeyAES192:
-        case kkeyAES256:
-            break;
-        }
-        if (rc == 0)
-        {
-            KEncFileV1 * self;
-
-            assert (vt);
-            assert ((r == true) || (r == false));
-            assert ((w == true) || (w == false));
-
-            rc = KEncFileV1MakeInt (&self, encrypted, vt, r, w, false);
-            if (rc == 0)
-            {
-                rc = KEncFileV1CiphersInit (self, key, r, w);
-                if (rc == 0)
-                {
-                    *pself = self;
-                    return 0;
-                }
-                KFileRelease (&self->dad);
-            }
-        }
-    } while (0);
-    return rc;
-}
-
-
-
-static const KFile_vt_v1 vtKEncFileV1Read =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KEncFileV1DestroyRead,
-    KEncFileV1GetSysFileUnsupported,
-    KEncFileV1RandomAccess,
-    KEncFileV1SizeUnsupported,
-    KEncFileV1SetSizeUnsupported,
-    KEncFileV1Read,
-    KEncFileV1WriteUnsupported,
-
-    /* 1.1 */
-    KEncFileV1Type
-};
-static const KFile_vt_v1 vtKEncFileV1Write =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KEncFileV1DestroyWrite,
-    KEncFileV1GetSysFileUnsupported,
-    KEncFileV1RandomAccessUnsupported,
-    KEncFileV1SizeUnsupported,
-    KEncFileV1SetSizeUnsupported,
-    KEncFileV1ReadUnsupported,
-    KEncFileV1Write,
-
-    /* 1.1 */
-    KEncFileV1Type
-};
-static const KFile_vt_v1 vtKEncFileV1Update =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KEncFileV1DestroySwarm,
-    KEncFileV1GetSysFileUnsupported,
-    KEncFileV1RandomAccess,
-    KEncFileV1SizeUnsupported,
-    KEncFileV1SetSizeUnsupported,
-    KEncFileV1ReadUnsupported,
-    KEncFileV1WriteSwarm,
-
-    /* 1.1 */
-    KEncFileV1Type
-};
-static const KFile_vt_v1 vtKEncFileV1Validate =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KEncFileV1DestroyRead,
-    KEncFileV1GetSysFileUnsupported,
-    KEncFileV1RandomAccessUnsupported,
-    KEncFileV1SizeUnsupported,
-    KEncFileV1SetSizeUnsupported,
-    KEncFileV1ReadUnsupported,
-    KEncFileV1WriteUnsupported,
-
-    /* 1.1 */
-    KEncFileV1Type
-};
-
-
-/* ----------
- * Read mode is fully seekable if the underlying KFile is seekable some
- * integrity checking will not be performed in allowing this seeking.
- */
-LIB_EXPORT rc_t CC KEncFileMakeRead_v1 (const KFile ** pself, 
-                                        const KFile * encrypted,
-                                        const KKey * key)
-{
-    KEncFileV1 * self;
-    rc_t rc;
-    rc = KEncFileV1MakeCmn (&self, (KFile *)encrypted, key, &vtKEncFileV1Read, 
-                          true, false);
-    if (rc)
-        LOGERR (klogErr, rc, "error constructing decryptor");
-    else
-    {
-        rc = KEncFileV1HeaderRead (self);
-        if (rc)
-            LOGERR (klogErr, rc, "error reading encrypted file header");
-        else
-        {
-            *pself = &self->dad;
-            return 0;
-        }
-        KFileRelease (&self->dad);
-    }
-    return rc;
-}
-
-
-/* ----------
- * Write mode encrypted file can only be written straight through form the
- * first byte to the last.
- */
-LIB_EXPORT rc_t CC KEncFileMakeWrite_v1 (KFile ** pself, 
-                                         KFile * encrypted,
-                                         const KKey * key)
-{
-    KEncFileV1 * self;
-    rc_t rc;
-
-    rc = KFileSetSize (encrypted, 0);
-#if 0
-    if (rc)
-        LOGERR (klogWarn, rc, "error truncating output file - "
-                "corrupted file might result");
-#endif
-
-    rc = KEncFileV1MakeCmn (&self, encrypted, key, &vtKEncFileV1Write, 
-                          false, true);
-    if (rc)
-        LOGERR (klogErr, rc, "error creating encryptor");
-    else
-        *pself = &self->dad;
-    return rc;
-}
-
-
-/* ----------
- * Update mode is read/write mode where seeking within the file is allowed.
- */
-
-
-LIB_EXPORT rc_t CC KEncFileV1MakeUpdate_v1 (KFile ** pself, 
-                                          KFile * encrypted,
-                                          const KKey * key)
-{
-    KEncFileV1 * self;
-    rc_t rc;
-
-    rc = KEncFileV1MakeCmn (&self, encrypted, key, &vtKEncFileV1Update, 
-                          false, true);
-    if (rc)
-        LOGERR (klogErr, rc, "error creating encryptor");
-    else
-    {
-        self->swarm = true;
-        *pself = &self->dad;
-    }
-    return rc;
-}
-
-
-/* ----------
- * Validate mode is useful only for the KFileEncValidate function
- */
-static
-rc_t KEncFileV1MakeValidate (const KEncFileV1 ** pself, const KFile * encrypted)
-{
-    KEncFileV1 * self;
-    rc_t rc;
-
-    assert (pself);
-    assert (encrypted);
-
-    rc = KEncFileV1MakeInt (&self, (KFile*)encrypted, &vtKEncFileV1Validate, true, false, true);
-    if (rc)
-        LOGERR (klogErr, rc, "error making KEncFileV1");
-    else
-    {
-        rc = KEncFileV1HeaderRead (self);
-        if (rc)
-            LOGERR (klogErr, rc, "error reading encrypted file header");
-        else
-        {
-            *pself = self;
-            return 0;
-        }
-    }
-    *pself = NULL;
-    return rc;
-}
-
-
-/* ----------
- * Validate mode can not be read or written.
- * Upon open the whole file is read from begining to end and all CRC
- * and other integrity checks are performed immedaitely
- */
-LIB_EXPORT rc_t CC KEncFileV1Validate_v1 (const KFile * encrypted)
-{
-    const KEncFileV1 * file;
-    rc_t rc;
-
-    /* fail if a NULL parameter: can't validate all addresses */
-    if (encrypted == NULL)
-    {
-        rc = RC (rcKrypto, rcFile, rcValidating, rcParam, rcNull);
-        LOGERR (klogErr, rc, "encrypted file was null when trying to validate");
-        return rc;
-    }
-
-    /* if the parameter is already a KEncFileV1 work on the file behind it instead */
-    /* we definitely can't work on a file being written that has not been closed */
-    if (encrypted->vt == (const KFile_vt*)&vtKEncFileV1Read)
-        encrypted = (const KFile *)(((const KEncFileV1*)encrypted)->encrypted);
-
-    /* file header is validated within the call to Make Validate */
-    rc = KEncFileV1MakeValidate (&file, encrypted);
-    if (rc)
-        LOGERR (klogErr, rc,
-                "unable to validate encrypted file due to "
-                "inability to open as encrypted file");
-    else
-    {
-        uint64_t pos;             /* position within the encrypted file */
-        uint64_t block_count = 0; /* how many blocks have we read */
-
-        /* loop through all data blocks */
-        pos = sizeof (KEncFileHeader);
-        for (block_count = 0; ; ++block_count)
-        {
-            KEncFileBlock block;
-
-            STSMSG (2, ("reading block '%u' at '%lu'", block_count,
-                        BlockId_to_EncryptedPos(block_count)));
-           
-            rc = KEncFileV1BlockRead (file, block_count, &block, true);
-            if (rc)
-            {
-                STSMSG (2, ("read error at block '%u'", block_count));
-                break;
-            }
-            if (file->eof)
-            {
-                STSMSG (2, ("block '%u' was end", block_count));
-
-                break;
-            }
-            pos += sizeof (KEncFileData);
-        }
-        KFileRelease (&file->dad);
-    }
-    return (rc);
-}
-
-
-LIB_EXPORT rc_t CC KFileIsEnc_v1 (const char * buffer, size_t buffer_size)
-{
-    const KEncFileHeader * header;
-
-    if ((buffer == NULL) || (buffer_size == 0))
-        return RC  (rcFS, rcFile, rcIdentifying, rcParam, rcNull); 
-
-    header = (const KEncFileHeader*)buffer;
-
-    if (buffer_size < sizeof header->file_sig)
-        return RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient); 
-
-    if (buffer_size > sizeof (*header))
-        buffer_size = sizeof (*header);
-
-    if ((memcmp (header, &const_header, buffer_size) == 0) ||
-        (memcmp (header, &const_bswap_header, buffer_size) == 0)
-#if ENABLE_V2
-        ||
-        (memcmp (header, &const_header_v1, buffer_size) == 0) ||
-        (memcmp (header, &const_bswap_header_v1, buffer_size) == 0)
-#endif
-        )
-        return 0;
-
-    return RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType); 
-}
-
-
-
-/* ----------
- * Read mode is fully seekable if the underlying KFile is seekable some
- * integrity checking will not be performed in allowing this seeking.
- */
-LIB_EXPORT rc_t CC KEncFileMakeRead (const struct KFile ** pself,
-                                        const struct KFile * encrypted_input,
-                                        const struct KKey * key)
-{
-#if USE_READ_V1
-    return KEncFileV1MakeRead_v1 (pself, encrypted_input, key);
-#else
-    return KEncFileMakeRead_v2 (pself, encrypted_input, key);
-#endif
-}
-
-
-/* ----------
- * Write mode encrypted file can only be written straight through from the
- * first byte to the last.
- */
-LIB_EXPORT rc_t CC KEncFileMakeWrite (struct KFile ** pself,
-                                         struct KFile * encrypted_output,
-                                         const struct KKey * key)
-{
-#if USE_WRITE_V1
-    return KEncFileV1MakeWrite_v1 (pself, encrypted_output, key);
-#else
-    return KEncFileMakeWrite_v2 (pself, encrypted_output, key);
-#endif
-}
-
-/* ----------
- * Update mode is read/write mode where seeking within the file is allowed.
- *
- * NOTE this is in the private interface because it is not actually working
- * yet.
- */
-LIB_EXPORT rc_t CC KEncFileMakeUpdate (struct KFile ** pself, 
-                                       struct KFile * encrypted,
-                                       const struct KKey * key)
-{
-#if USE_UPDATE_V1
-    return KEncFileV1MakeUpdate_v1 (pself, encrypted, key);
-#else
-    return KEncFileMakeUpdate_v2 (pself, encrypted, key);
-#endif
-}
-LIB_EXPORT rc_t CC KEncFileMakeWriteBlock (struct KFile ** pself, 
-                                           struct KFile * encrypted,
-                                           const struct KKey * key)
-{
-#if USE_BLOCK_V1
-    return KEncFileV1MakeUpdate_v1 (pself, encrypted, key);
-#else
-    return KEncFileMakeBlock_v2 (pself, encrypted, key);
-#endif
-}
-
-
-LIB_EXPORT rc_t CC KEncFileWriteHeader  (KFile * self)
-{
-#if USE_BLOCK_V1
-    return KEncFileV1WriteHeader_v1  (self);
-#else
-    return KEncFileWriteHeader_v2  (self);
-#endif
-}
-
-
-/* ----------
- * Validate mode can not be read or written.
- * Upon open the whole file is read from begining to end and all CRC
- * and other integrity checks are performed immedaitely
- */
-LIB_EXPORT rc_t CC KEncFileValidate (const struct KFile * encrypted)
-{
-#if USE_VALIDATE_V1
-    return KEncFileV1Validate_v1 (encrypted);
-#else
-    return KEncFileValidate_v2 (encrypted);
-#endif
-}
-
-
-/* ----------
- * Identify whether a file is a KEncFile type encrypted file by the header.
- * read the header into a buffer and pass it into this function.  
- * The buffer_size needs to be at least 8 but more bytes lead to a better
- * check up to the size of the header of a KEncFile type encrypted file.
- * As the header may change in the future (in a backwards compatible way)
- * that size might change from the current 16.
- *
- * Possible returns:
- * 0:
- *      the file is an identified KEncFile type file.  False positives are
- *      possible if a file happens to match at 8 or more bytes
- *
- * RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType)
- *      the file is definitely not a KEncFile type encrypted file.
- *     
- * RC (rcFS, rcFile, rcIdentifying, rcParam, rcNull)
- *      bad parameters in the call
- *
- * RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient)
- *      not a large enough buffer to make an identification
- */
-LIB_EXPORT rc_t CC KFileIsEnc (const char * buffer, size_t buffer_size)
-{
-#if USE_ISENC_V1
-    return KFileIsEnc_v1 (buffer, buffer_size);
-#else
-    return KFileIsEnc_v2 (buffer, buffer_size);
-#endif
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-/* end of file encfile.c */
-
diff --git a/libs/krypto/encfilev2.c b/libs/krypto/encfilev2.c
deleted file mode 100644
index 24aa489..0000000
--- a/libs/krypto/encfilev2.c
+++ /dev/null
@@ -1,2589 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#include <krypto/extern.h>
-#include <krypto/encfile.h>
-#include <krypto/encfile-priv.h>
-#include "encfile-priv.h"
-#include <krypto/cipher.h>
-#include <krypto/ciphermgr.h>
-#include <krypto/key.h>
-
-/* #include "aes-priv.h" */
-
-#include <klib/rc.h>
-#include <klib/checksum.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/debug.h>
-#include <klib/status.h>
-/* #include <klib/vector.h> */
-/* #include <klib/status.h> */
-#include <kfs/file.h>
-#include <kfs/sra.h>
-#include <sysalloc.h>
-
-#include <byteswap.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-/* #include <klib/out.h> */
-
-
-/* ----------------------------------------------------------------------
- * KEncFile
- *   Base object class for the encryption, decryption and validation of
- *   the file format defined above
- */
-
-#define KFILE_IMPL struct KEncFile
-#include <kfs/impl.h>
-
-
-#include "encfile-priv.h"
-
-typedef struct KEncFileCiphers KEncFileCiphers;
-struct KEncFileCiphers
-{
-    KCipher * master;
-    KCipher * block;
-};
-
-
-typedef struct KEncFileIVec { uint8_t ivec [16]; } KEncFileIVec;
-
-/* -----
- */
-struct KEncFile
-{
-    KFile dad;                  /* base class */
-    KFile * encrypted;          /* encrypted file as a KFile */
-    KEncFileCiphers ciphers;    /* file and block ciphers */
-    KEncFileBlock block;        /* current data block */
-    KEncFileFooter foot;        /* contains crc checksum and block count */
-    uint64_t dec_size;          /* size of decrypted file */
-    uint64_t enc_size;          /* size of encrypted file */
-    bool dirty;                 /* data written but not flushed set in Write cleared in Flush*/
-    bool seekable;              /* we can seek within the encrypted file */
-    bool size_known;            /* can we know the size? Only streaming read can not know */
-    bool bswap;                 /* file created on system of opposite endianess */
-    bool changed;               /* some write has happened cleared in Make, set in BufferWrite */
-    bool sought;                /* did a seek on a read or write invalidating crc checksum */
-    bool has_header;            /* have we read or written a header? */
-    bool eof;                   
-    bool sra;                   /* we know we are encrypting an SRA/KAR archive file */
-    bool swarm;                 /* block mode for swarm mode using KReencFile or KEncryptFile */
-    KEncFileVersion version;    /* version from the header if read; or the one being written */
-};
-
-
-/* ----------
- * BufferCalcMD5
- *    Generate the MD5 digest for a buffer
- */
-static __inline__
-void BufferCalcMD5 (const void * buffer, size_t size, uint8_t digest [16])
-{
-    MD5State state;
-
-    assert (buffer);
-    assert (size);
-    assert (digest);
-
-    MD5StateInit (&state);
-    MD5StateAppend (&state, buffer, size);
-    MD5StateFinish (&state, digest);
-}
-
-
-/* -----
- * return true or false as to whether the the buffer described is all 0 bits
- */
-static __inline__
-bool BufferAllZero (const void * buffer_, size_t size)
-{
-    const uint8_t * buffer;
-    size_t count;
-    bool ret;
-
-    assert (buffer_);
-
-    buffer = buffer_;
-    ret = true;
-
-    for (count = 0; count < size; ++count)
-    {
-        if (buffer[count] != '\0')
-        {
-            ret = false;
-            break;
-        }
-    }
-    return ret;
-}
-
-
-/* ----------
- * BufferRead
- *    Read from an encrypted file and update size if warranted
- *
- * Read's aren't guaranteed to get full amount
- */
-static
-rc_t KEncFileBufferRead (KEncFile * self, uint64_t offset, void * buffer,
-                         size_t bsize, size_t * num_read)
-{
-    rc_t rc;
-
-    assert (self);
-    assert (self->encrypted);
-    assert (buffer);
-    assert (bsize > 0);
-    assert (num_read);
-
-    rc = KFileReadAll (self->encrypted, offset, buffer, bsize, num_read);
-    if (rc == 0)
-    {
-        if (self->enc_size < offset + *num_read)
-        {
-            self->enc_size = offset + *num_read;
-        }
-    }
-/* leave logging to callers? */
-    else
-        PLOGERR (klogErr, (klogErr, rc, "Error reading from encrypted file "
-                           "at '$(P)", "P=%lu", offset));
-
-    return rc;
-}
-
-
-/* ----------
- * BufferWrite
- *    write to an encrypted file, mark it as changed and update size if warranted
- */
-static
-rc_t KEncFileBufferWrite (KEncFile * self, uint64_t offset, const void * buffer,
-                          size_t bsize, size_t * num_writ)
-{
-    rc_t rc = 0;
-
-    assert (self);
-    assert (self->encrypted);
-    assert (buffer);
-    assert (bsize > 0);
-    assert (num_writ);
-
-    rc = KFileWriteAll (self->encrypted, offset, buffer, bsize, num_writ);
-    if (rc)
-/* leave logging to callers? */
-        PLOGERR (klogErr, (klogErr, rc, "Error writing to encrypted file "
-                           "at '$(P)", "P=%lu", offset));
-    if (bsize != *num_writ)
-    {
-/*         KOutMsg ("%s: bsize %zu *num_writ %zu\n",__func__, bsize, *num_writ); */
-        rc = RC (rcKrypto, rcFile, rcWriting, rcTransfer, rcIncomplete);
-/* leave logging to callers? */
-        PLOGERR (klogErr, (klogErr, rc, "Error writing full buffer to"
-                           " encrypted file at '$(P) wrote '$(W)'",
-                           "P=%lu,W=%zu", offset, *num_writ));
-    }
-    else if (*num_writ > 0)
-    {
-        self->changed = true;
-        if (self->enc_size < offset + *num_writ)
-        {
-            self->enc_size = offset + *num_writ;
-        }
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * operations on KEncFileHeader
- *
- * The header only needs to be read and validated or written  we need not 
- * reatian within the KEncFile object any information about the header in
- * the initial version of this file format.
- */
-
-/* -----
- * the first eight bytes of the file are two four byte strings
- *  The first is a common "NCBI"
- *  The second is the format specific "nenc"
- */
-static const KEncFileSig KEncFileSignature = "NCBInenc";
-
-
-/* -----
- * the common constant used throughout the project to check the byte order 
- * as written by the system which created the file
- */
-/* enum fails to handle these due to integer overflow */
-
-#define eEncFileByteOrderTag     (0x05031988)
-#define eEncFileByteOrderReverse (0x88190305)
-
-/* ----
- */
-#define eCurrentVersion        (0x00000002)
-#define eCurrentVersionReverse (0x02000000)
-
-
-static
-const KEncFileHeader const_header
-= { "NCBInenc", eEncFileByteOrderTag, eCurrentVersion };
-
-
-static
-const KEncFileHeader const_bswap_header
-= { "NCBInenc", eEncFileByteOrderReverse, eCurrentVersionReverse };
-
-/* skipping v1 for NCBIkenc */
-static
-const KEncFileHeader const_header_sra
-= { "NCBIsenc", eEncFileByteOrderTag, eCurrentVersion };
-
-
-static
-const KEncFileHeader const_bswap_header_sra
-= { "NCBIsenc", eEncFileByteOrderReverse, eCurrentVersionReverse };
-
-    
-/* ----------
- * HeaderRead
- *    Read the header of an encrypted file and validate it.
- *
- * We only allow a missing header for an empty file opened for update
- */
-static
-rc_t KEncFileHeaderRead (KEncFile * self)
-{
-    KEncFileHeader header;
-    size_t num_read;
-    rc_t rc;
-
-    assert (self);
-
-    rc = KEncFileBufferRead (self, 0, &header, sizeof (header), &num_read);
-    if (rc)
-        LOGERR (klogErr, rc, "error reading encrypted file header");
-
-    else if ((num_read == 0) && (self->dad.write_enabled))
-    {
-        /* only allow read to fail with zero length if opened with write */
-        self->version = eCurrentVersion;
-        self->bswap = false;
-        self->enc_size = 0; /* redundant? */
-        self->dec_size = 0; /* redundant? */
-    }
-    else if (num_read != sizeof (header))
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcHeader, rcTooShort);
-        PLOGERR (klogErr,
-                 (klogErr, rc, "error reading full header of encrypted "
-                  "file  wanted '$(S)' got '$(N); bytes read", "S=%u,N=%u",
-                  sizeof (header), num_read));
-    }
-    else
-    {
-        rc_t orc;
-
-        if (memcmp (header.file_sig, const_header.file_sig,
-                     sizeof (header.file_sig)) == 0)
-            self->sra = false;
-        else if (memcmp (header.file_sig, const_header_sra.file_sig,
-                         sizeof (header.file_sig)) == 0)
-            self->sra = true;
-        else
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcHeader, rcInvalid);
-            LOGERR (klogErr, rc, "file signature not correct for encrypted file");
-        }
-
-        switch (header.byte_order)
-        {
-        case eEncFileByteOrderTag:
-            self->bswap = false;
-            self->version = header.version;
-            break;
-
-        case eEncFileByteOrderReverse:
-            self->bswap = true;
-
-            /* assert for the right bswap call */
-            assert (sizeof (self->version) == 4);
-
-            self->version = bswap_32 (header.version);
-            break;
-
-        default:
-            orc = RC (rcFS, rcFile, rcConstructing, rcByteOrder, rcInvalid);
-            PLOGERR (klogErr, (klogErr, rc, "invalid byte order flag '$(F); in "
-                               "encrypted file header", "F=%X",
-                               header.byte_order));
-            if (rc == 0)
-                rc = orc;
-            break;
-        }
-
-        if ((self->version > eCurrentVersion) || (self->version == 0))
-        {
-            orc = RC (rcFS, rcFile, rcConstructing, rcHeader, rcBadVersion);
-            PLOGERR (klogErr, (klogErr, orc, "can not decrypt version '$(V)'",
-                               "V=%u", header.version));
-            if (rc == 0)
-                rc = orc;
-        }
-        if (rc == 0)
-            self->has_header = true;
-    }
-    return rc;
-}
-
-
-/* -----
- * HeaderWrite
- */
-#ifndef SENC_IS_NENC_FOR_WRITER
-#define SENC_IS_NENC_FOR_WRITER 1
-#endif
-
-static
-rc_t KEncFileHeaderWrite (KEncFile * self)
-{
-    rc_t rc;
-    size_t num_writ;
-    const KEncFileHeader * head;
-
-#if SENC_IS_NENC_FOR_WRITER
-    head = self->sra 
-        ? (self->bswap ? &const_bswap_header_sra : &const_header_sra)
-        : (self->bswap ? &const_bswap_header : &const_header);
-#else
-    head = self->bswap ? &const_bswap_header : &const_header;
-#endif
-
-    rc = KEncFileBufferWrite (self, 0, head, sizeof * head, &num_writ);
-    if (rc)
-        LOGERR (klogErr, rc, "Failed to write encrypted file header");
-
-    else
-        /* forced upgrade by writing the header */
-        self->version = eCurrentVersion;
-
-    if (rc == 0)
-        self->has_header = true;
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KEncFileWriteHeader_v2  (KFile * self)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcFile, rcWriting, rcSelf, rcNull);
-
-    return KEncFileHeaderWrite ((KEncFile*)self);
-}
-
-
-
-/* ----------------------------------------------------------------------
- * operations on KEncFileFooter
- */
-
-/* ----------
- * Validate
- * we expect to read a Footer when we expect a Block so we validate in RAM
- * without a Read
- *
- * we're just comparing the values in the footer against expected values
- */
-static
-rc_t KEncFileFooterValidate (const KEncFile * self, 
-                             const uint64_t block_count,
-                             const uint64_t crc_checksum)
-{
-    rc_t rc1 = 0, rc2 = 0;
-
-    assert (self);
-
-    if (self->foot.block_count != block_count)
-    {
-        rc1 = RC (rcKrypto, rcFile, rcValidating, rcFile, rcCorrupt);
-        LOGERR (klogErr, rc1, "bad block count in encrypted file footer");
-    }
-    /*
-     * crcs should match or the crc should be 0 and the version is 1
-     */
-    if ((self->foot.crc_checksum != crc_checksum) &&
-        ((self->version == 1) || (crc_checksum != 0)))
-    {
-        rc2 = RC (rcKrypto, rcFile, rcValidating, rcChecksum, rcCorrupt);
-        LOGERR (klogErr, rc2, "bad crc checksum in encrypted file footer");
-    }
-    return (rc1 ? rc1 : rc2);
-}
-
-
-static __inline__
-void KEncFileFooterSwap (const KEncFile * self, KEncFileFooter * foot)
-{
-    assert (self);
-    assert (foot);
-
-    if (self->bswap)
-    {
-        assert (sizeof (foot->block_count) == 8);
-        foot->block_count = bswap_64 (foot->block_count);
-
-        assert (sizeof (foot->crc_checksum) == 8);
-        foot->crc_checksum = bswap_64 (foot->crc_checksum);
-    }
-}
-
-
-/* ----------
- * Read
- * If we know where the footer is we can read it specifically
- */
-static
-rc_t KEncFileFooterRead (KEncFile * self, const uint64_t pos,
-                         const bool validate)
-{
-    union foot_plus
-    {
-        KEncFileFooter foot;
-        uint8_t bytes [sizeof (KEncFileFooter) + 1];
-    } u;
-    size_t num_read;
-    rc_t rc;
-
-    assert ((self->size_known == true) || (self->size_known == false));
-    assert (((self->size_known == true) &&
-             ((pos + sizeof (u.foot)) == self->enc_size)) ||
-            (pos == self->enc_size));
-
-    /* try to read too much just to validate nothing after the footer */
-    rc = KEncFileBufferRead (self, pos, u.bytes, sizeof u.bytes, &num_read);
-    if (rc)
-        PLOGERR (klogErr, (klogErr, rc, "failed to read encrypted file footer "
-                           "at '$(P)'", "P=%lu", pos));
-
-    else if (num_read == sizeof u.foot)
-    {
-        KEncFileFooterSwap (self, &u.foot);
-
-        if (validate)
-            rc = KEncFileFooterValidate (self, u.foot.block_count,
-                                         u.foot.crc_checksum);
-
-        if (rc == 0)
-        {
-            self->foot.block_count = u.foot.block_count;
-            self->foot.crc_checksum = u.foot.crc_checksum;
-        }
-    }
-    else if (num_read < sizeof u.foot)
-        rc = RC (rcKrypto, rcFile, rcReading, rcSize, rcInsufficient);
-
-    else
-    {
-        assert (num_read > sizeof u.foot);
-        rc = RC (rcKrypto, rcFile, rcReading, rcSize, rcExcessive);
-    }
-
-    return rc;
-}
-
-
-/* ----------
- * Write
- * when we write a footer we write from the values in the object.  They
- * are stored in the same object format as the footer so its very simple
- */
-static
-rc_t KEncFileFooterWrite (KEncFile * self)
-{
-    KEncFileFooter foot;
-    uint64_t pos;
-    size_t num_writ;
-    rc_t rc;
-
-    if (self->sought)
-    {
-        self->foot.block_count = foot.block_count = 1 + DecryptedPos_to_BlockId (self->dec_size, NULL);
-        foot.crc_checksum = 0;
-    }
-    else
-        memcpy (&foot, &self->foot, sizeof (foot));
-
-    KEncFileFooterSwap (self, &foot);
-
-    if (self->sought)
-        foot.crc_checksum = 0;
-
-    pos = BlockId_to_EncryptedPos (self->foot.block_count);
-
-    assert ((self->size_known == true) || (self->size_known == false));
-
-/*     if (!(((self->size_known == true) && */
-/*              ((pos + sizeof (foot)) == self->enc_size)) || */
-/*           (pos == self->enc_size))); */
-/*     { */
-/*         KOutMsg ("self->foot.block_count %lu\n",self->foot.block_count); */
-/*         KOutMsg ("self->size_known %u\n",self->size_known); */
-/*         KOutMsg ("pos %lu\n",pos); */
-/*         KOutMsg ("sizeof (foot) %zu\n",sizeof (foot)); */
-/*         KOutMsg ("pos + sizeof (foot) %lu\n", pos + sizeof (foot)); */
-/*         KOutMsg ("self->enc_size %lu\n",self->enc_size); */
-/*     } */
-/*     assert (((self->size_known == true) && */
-/*              ((pos + sizeof (foot)) == self->enc_size)) || */
-/*             (pos == self->enc_size)); */
-
-    rc = KEncFileBufferWrite (self, pos, &foot, sizeof (foot),
-                              &num_writ);
-    if (rc == 0)
-    {
-        if (num_writ != sizeof (foot))
-        {
-            rc = RC (rcFS, rcFile, rcWriting, rcFile, rcInsufficient);
-            LOGERR (klogErr, rc, "faled to write correctly sized fotter "
-                    "for encrypted file");
-        }
-        else
-            assert ((pos + sizeof (foot)) == self->enc_size);
-    }
-    return rc;
-}
-
-
-/* ----------
- * IvecInit
- *    create the ivec for a given block
- *    done in a function to ensure decrypt and encrypt use the same code to
- *    generate this.  Anything used to create this has to be available to
- *    code that doesn't know the content of the data or the state of the file
- *    beyond the location of the block with in the file.
- *
- *    This is definitely over-kill using the MD5.
- */
-static __inline__
-void KEncFileIVecInit (const uint64_t block_id, KEncFileIVec * ivec)
-{
-    BufferCalcMD5 (&block_id, sizeof block_id, ivec->ivec);
-}
-
- 
-/* ----------
- * BlockEncrypt
- *
- * Not thread safe - use of cipher schedules ivec and block key in the ciphers
- *
- * If this function were a protected region where only one thread could be in
- * the body of this function at a time it could be made thread safe.
- */
-static
-rc_t KEncFileBlockEncrypt (KEncFile * self, KEncFileBlock * d,
-                           KEncFileBlock * e)
-{
-    SHA256State state;
-    uint64_t id;
-    uint16_t valid;
-    uint16_t saved_valid;
-    KEncFileCRC crc;
-    KEncFileIVec ivec;
-    rc_t rc;
-
-    assert (self);
-    assert (d);
-    assert (e);
-
-    /*
-     * First we finish preparing the two ciphers by creating the block
-     * user key out of the first part of the data and the shared Initialization
-     * vector for Chained Block Cipher mode encryption out of the block id
-     * 
-     * create the initialization vector for this block
-     */
-    KEncFileIVecInit (d->id, &ivec);
-
-    /*
-     * set the ivec for both the master and data block ciphers
-     */
-    rc = KCipherSetEncryptIVec (self->ciphers.master, &ivec);
-    if (rc)
-        return rc;
-
-    rc = KCipherSetEncryptIVec (self->ciphers.block, &ivec);
-    if (rc)
-        return rc;
-
-    /*
-     * create the block user key out of the first 4kb of data and the block id 
-     */
-    saved_valid = valid = d->u.valid;
-    id = d->id;
-
-    SHA256StateInit (&state);
-    SHA256StateAppend (&state, d->data, 
-                       valid > 4096 ? 4096 : valid);
-    SHA256StateAppend (&state, &id, sizeof (id));
-    SHA256StateFinish (&state, d->key);
-        
-    /*
-     * create the block key schedule out of the block user key
-     */
-    rc = KCipherSetEncryptKey (self->ciphers.block, d->key, sizeof d->key);
-    if (rc)
-        return rc;
-
-    /* 
-     * Salt the block using the randomish user key to randomly select
-     * data from the valid data.
-     *
-     * This will cover the data portion of the block past the last valid
-     * byte.
-     *
-     * NOTE we are accessing a byte array as a word array. COuld be trouble
-     *      on some archaic processors such as the MC68000 family.
-     *
-     * NOTE we are using the array named data to access data beyond it's end
-     *      based on knowledge of the structure of the KEncFileBlock.
-     */
-    {
-        uint16_t * pw;
-        unsigned int windex;
-        unsigned int rindex;
-        size_t bindex;
-
-        pw = (uint16_t*)d->key;
-        windex = 0;
-
-        for (bindex = valid;
-             bindex < sizeof d->data + sizeof d->u; 
-             ++ bindex)
-        {
-            /* this goes beyond the end of the data array by design */
-            rindex = (size_t)pw[windex];
-            rindex %= bindex;
-
-            d->data[bindex] = d->data[rindex];
-        
-            ++rindex;
-            if (rindex >= sizeof self->block.key / sizeof *pw)
-                rindex = 0;
-        }
-    }
-
-    /* 
-     * If we are modifying a block created on a system with a different default
-     * Endian choice we'll need to byte swap the block id and the block valid
-     * count
-     */
-    if (self->bswap)
-    {
-        assert (sizeof id == 8);
-        id = bswap_64 (id);
-
-        assert (sizeof (valid = 2));
-        valid = bswap_16 (valid);
-    }
-
-    /* is this a bswap problem? */
-    if (saved_valid == sizeof d->data)
-        d->u.valid |= valid;
-    else
-        d->u.valid = valid;
-
-    e->id = id;
-
-    /* 
-     * encrypt the block user key into the buffer
-     */
-#if 0
-    {
-        unsigned iii;
-        KOutMsg ("v2 decrypted key %lu\n", d->id);
-        for (iii = 0; iii < sizeof (d->key); +++ iii) 
-            KOutMsg ("%2.2x ", d->key[iii]);
-        KOutMsg ("\n");
-    }
-#endif
-    rc = KCipherEncryptCBC (self->ciphers.master, d->key, e->key,
-                            sizeof (d->key) / sizeof (ivec));
-    if (rc)
-        return rc;
-#if 0
-    {
-        unsigned iii;
-        KOutMsg ("v2 encrypted key\n");
-        for (iii = 0; iii < sizeof (e->key); +++ iii) 
-            KOutMsg ("%2.2x ", e->key[iii]);
-        KOutMsg ("\n");
-    }
-#endif
-    /*
-     * encrypt the data, offset and valid values
-     */
-    rc = KCipherEncryptCBC (self->ciphers.block, 
-                            d->data, e->data,
-                            (sizeof d->data + sizeof d->u) / sizeof (ivec));
-    if (rc)
-        return rc;
-
-    d->u.valid = saved_valid;
-
-    crc = CRC32 (0, e, (char*)(&e->crc)-(char*)e);
-
-    self->block.crc = crc;
-
-    if (self->bswap)
-    {
-        assert (sizeof crc == 4);
-        crc = bswap_32 (crc);
-    }
-    e->crc_copy = e->crc = crc;
-
-/*     KOutMsg ("%s: %lu %lu %lu ", __func__, self->foot.block_count, self->foot.crc_checksum,self->block.id); */
-    if (self->foot.block_count <= self->block.id)
-        self->foot.block_count = self->block.id + 1;
-
-    if (!self->sought)
-        self->foot.crc_checksum += crc;
-
-/*     KOutMsg ("%lu %lu\n", __func__, self->foot.block_count, self->foot.crc_checksum); */
-
-    return 0;
-}
-
-
-/* ----------
- * BlockDecrypt
- *   decrypt decrypts the data from a KEncFileBlock into the KEncFileBlock
- *   in the KEncFile object
- *
- * Not thread safe - use of cipher schedules ivec and block key in the ciphers
- *
- * If this function were a protected region where only one thread could be in
- * the body of this function at a time it could be made thread safe.
- */
-static
-rc_t KEncFileBlockDecrypt (KEncFile * self, KEncFileBlockId bid,
-                           const KEncFileBlock * e, KEncFileBlock * d)
-{
-    KEncFileIVec ivec;
-    rc_t rc;
-
-    d->id = e->id;
-
-    /* create the initialization vector for this block */
-    KEncFileIVecInit (bid, &ivec);
-
-    /*
-     * set the ivec for both the master and data block ciphers
-     */
-    rc = KCipherSetDecryptIVec (self->ciphers.master, &ivec);
-    if (rc)
-        return rc;
-
-    rc = KCipherSetDecryptIVec (self->ciphers.block, &ivec);
-    if (rc)
-        return rc;
-
-    /* 
-     * decrypt the block key and initial vector using the user key and 
-     * the computer ivec
-     */
-    rc = KCipherDecryptCBC (self->ciphers.master, e->key, d->key,
-                            (sizeof e->key) / sizeof ivec);
-    if (rc)
-        return rc;
-
-    /* 
-     * now create the AES key for the block from the newly decrypted 
-     * block key
-     */
-    rc = KCipherSetDecryptKey (self->ciphers.block, d->key,
-                               sizeof d->key);
-    if (rc)
-        return rc;
-
-    rc = KCipherDecryptCBC (self->ciphers.block, e->data, d->data,
-                            (sizeof e->data + sizeof e->u) / sizeof ivec);
-    if (rc)
-        return rc;
-
-    if (self->bswap)
-    {
-        assert (sizeof d->u.valid == 2);
-        d->u.valid = bswap_16 (d->u.valid);
-    }
-
-    if (d->u.valid >= sizeof d->data)
-        d->u.valid = sizeof d->data;
-    else
-        memset (d->data + d->u.valid, 0, sizeof d->data - d->u.valid);
-
-    return rc;
-}
-
-
-/*
- * if not decrypting block can be NULL
- */
-
-/*
-  TBD: figure out rational way to handle bad password making blocks look really weird
-  If we have one that looks like a partial but isn't the last block -what do we do?
-*/
-
-static
-rc_t KEncFileBlockRead (KEncFile * self, KEncFileBlock * block, 
-                        KEncFileBlockId block_id, bool validate)
-{
-    union
-    {
-        KEncFileBlock b;
-        KEncFileFooter f;
-    } u;
-    size_t num_read;
-    uint64_t epos, dpos;
-    rc_t vrc, rc = 0;
-    bool missing;
-
-    assert (self);
-    assert ((validate == false) || (validate == true));
-    /* we should be decrypting or validating - maybe both */
-    assert ((block != NULL) || (validate == true));
-
-    /* translate block id into both encrypted and decrypted addresses */
-    epos = BlockId_to_EncryptedPos (block_id);
-    dpos = BlockId_to_DecryptedPos (block_id);
-
-    missing = false;
-
-    /* clear out target block */
-    if (block != NULL)
-        memset (block, 0, sizeof * block);
-
-    rc = KEncFileBufferRead (self, epos, &u.b, sizeof u.b, &num_read);
-    if (rc)
-    {
-        PLOGERR (klogErr, (klogErr, rc, "Failure to read block '$(B)' at '$(E)'"
-                           " in encrypted file decrypted at '$(D)",
-                           "B=%lu,E=%lu,D=%lu", block_id, epos, dpos));
-    }
-    else
-    {
-        switch (num_read)
-        {
-        case 0:
-            self->eof = true;
-            /* ain't got no block here */
-            break;
-
-        default:
-            /* Invalid size */
-            rc = RC (rcKrypto, rcFile, rcReading, rcBuffer, rcInsufficient);
-            PLOGERR (klogErr, (klogErr, rc, "Failure to read full block '$(B)' "
-                               "at '$(E)' in encrypted file decrypted at '$(D)",
-                               "B=%lu,E=%lu,D=%lu", block_id, epos, dpos));
-            break;
-
-        case sizeof (u.f):
-            /* footer */
-            if (validate) /* validate before checking as missing */
-            {
-                KEncFileFooterSwap (self, &u.f);
-
-                if (u.f.block_count != block_id)
-                {
-                    vrc = RC (rcKrypto, rcFile, rcValidating, rcSize,
-                              rcIncorrect);
-                    PLOGERR (klogErr,  (klogErr, vrc, "read footer block count "
-                                        "'$(B)' does not match actual block "
-                                        "count '$(A)'", "B=%lu,A=%lu",
-                                        u.f.block_count, block_id));
-                    if ( rc == 0 )
-                        rc = vrc;
-                }
-                vrc = KEncFileFooterValidate (self, u.f.block_count,
-                                              u.f.crc_checksum);
-
-#if 1
-                if ( rc == 0 )
-                    rc = vrc;
-#else
-                /* what is the significance of a NULL block? */
-                if (block == NULL)
-                    rc = vrc;
-#endif
-            }
-
-            /* is it a "missing" footer? */
-            /* or if the footer appears invalid - make it "valid" */
-            if (((missing = BufferAllZero(&u.f, sizeof u.f)) == true) ||
-                (self->foot.block_count != block_id))
-            {
-/*                 self->foot.block_count = block_id; */
-                self->foot.crc_checksum = 0;
-            }
-
-            /* force some values though they might already be known */
-            self->enc_size = epos + sizeof u.f;
-            self->size_known = true;
-            self->dec_size = dpos;
-            self->eof = true;
-            break;
-
-        case sizeof (u.b):
-            /* block */
-            self->eof = false;
-            /* is it a "missing" block? */
-            if ((missing = BufferAllZero(&u.b, sizeof u.b)) == true)
-            {
-                if (validate)
-                {
-                    vrc = RC (rcKrypto, rcFile, rcValidating,
-                                   rcData, rcNull);
-
-                    PLOGERR (klogErr, (klogErr, vrc, "read missing block at "
-                                       "block number '$(I)' encrypted position "
-                                       "$(E) decrypted postion $(D)",
-                                       "I=%lu,E=%lu,D=%lu", block_id, epos,
-                                       dpos));
-                    if ( rc == 0 )
-                        rc = vrc;
-                }
-                u.b.id = block_id;
-                u.b.u.valid = sizeof u.b.data;
-
-                /* if we can only learn of the size by reading and are thus scanning
-                 * through the current decrypt position must be the current known
-                 * decrypted side size
-                 */
-                if (!self->size_known)
-                {
-                    assert (dpos == self->dec_size);
-                    self->dec_size = dpos + sizeof u.b.data;
-                }
-                /*
-                 * if we know the decrypted size and it is less than what we
-                 * read, adjust the valid.  BUT this must not be for the block read
-                 * for the last block to know the decrypted size. A chicken and egg
-                 * problem.
-                 */
-                else if ((self->dec_size >= dpos) &&
-                         (self->dec_size < dpos + sizeof u.b.data))
-                    u.b.u.valid  = (uint16_t)(self->dec_size - dpos);
-            }
-
-            /* we read a full block that wasn't all zeroes */
-            else
-            {
-                /* since we've chosen not to standardize the file format byte ordering */
-                if (self->bswap)
-                {
-                    assert (sizeof u.b.crc == 4);
-                    u.b.crc = bswap_32 (u.b.crc);
-                    u.b.crc_copy = bswap_32 (u.b.crc_copy);
-
-                    assert (sizeof u.b.id == 8);
-                    u.b.id = bswap_64 (u.b.id);
-                }
-
-                if (validate)
-                {
-                    uint32_t crc;
-
-                    if (block_id != u.b.id)
-                    {
-                        vrc = RC (rcKrypto, rcFile, rcValidating, rcIndex,
-                                  rcIncorrect);
-                        PLOGERR (klogErr, (klogErr, vrc, "error validating id "
-                                           "for block '$(BID)' is not $(C2)", 
-                                           "BID=%lu,C2=%lu", block_id, u.b.id));
-                        if ( rc == 0 )
-                            rc = vrc;
-                    }
-
-                    crc = CRC32 (0, &u.b, (char*)&u.b.crc - (char*)&u.b);
-
-                    if (crc != u.b.crc)
-                    {
-                        vrc = RC (rcKrypto, rcFile, rcValidating, rcCrc, rcCorrupt);
-                        PLOGERR (klogErr,
-                                 (klogErr,
-                                  vrc,
-                                  "error validating crc for block '$(BID)' $(C1) is not $(C2)", 
-                                  "BID=%lu,C1=0x%X,C2=0x%X", block_id,
-                                  crc, u.b.crc));
-                        if ( rc == 0 )
-                            rc = vrc;
-                    }
-                    if (crc != u.b.crc_copy)
-                    {
-                        vrc = RC (rcKrypto, rcFile, rcValidating, rcCrc, rcCorrupt);
-                        PLOGERR (klogErr,
-                                 (klogErr,
-                                  vrc,
-                                  "error validating crc_copy for block '$(BID)' $(C1) is not $(C2)", 
-                                  "BID=%lu,C1=0x%X,C2=0x%X", block_id,
-                                  crc, u.b.crc_copy));
-                        if ( rc == 0 )
-                            rc = vrc;
-                    }
-                }
-            }
-            if (self->sought == false)
-            {
-                if (block_id == 0)
-                {
-                    self->foot.block_count = 1;
-                    self->foot.crc_checksum = u.b.crc;
-                }
-                else
-                {
-                    ++self->foot.block_count;
-                    self->foot.crc_checksum += u.b.crc;
-                }
-            }
-
-            if (block != NULL)
-            {
-                if (missing)
-                {
-                    if (self->dad.write_enabled == false)
-                        rc = RC (rcKrypto, rcFile, rcReading, rcData, rcIncomplete);
-                    else
-                    {
-                        memcpy (block, &u.b, sizeof u.b);
-                        rc = 0;
-                    }
-                }
-                else
-                {
-                    rc = KEncFileBlockDecrypt (self, block_id, &u.b, block);
-                    if (rc == 0)
-                    {
-                        if (block_id == 0)
-                        {
-                            rc_t sra = KFileIsSRA ((const char *)block->data, block->u.valid);
-                            self->sra =  (sra == 0);
-                        }
-
-                        if (!self->size_known)
-                        {
-                            assert (dpos == self->dec_size);
-                            self->dec_size = dpos + sizeof u.b.u.valid;
-                            if (u.b.u.valid != sizeof u.b.data)
-                            {
-                                self->size_known = true;
-                                self->enc_size = epos + sizeof u.b + sizeof self->foot;
-                            }
-                        }
-                    }
-                }
-            }
-            break;
-        }
-    }
-    return rc;
-}
-
-
-/*
- * Take a dirty block, encrypt it and write it to the backing file
- */
-static
-rc_t KEncFileBlockFlush (KEncFile * self, KEncFileBlock * dec_block)
-{
-    rc_t rc = 0;
-
-    assert (self);
-    assert (dec_block);
-
-
-    if (dec_block->id == 0)
-    {
-        rc = KFileIsSRA ((const char *)(dec_block->data), sizeof (KSraHeader));
-
-        /* we wait ALL the way until we try to flush the first block before we set
-         * the sra flag for write only files.
-         * we get it when we read the first block otherwise.
-         */
-        if (self->sra != (rc == 0))
-        {
-            self->sra = (rc == 0);
-            self->has_header = false;
-        }
-    }
-    if ((dec_block->id == 0) || (self->seekable))
-    {
-        if (!self->has_header)
-        {
-            if (!self->swarm)
-            {
-                rc = KEncFileHeaderWrite (self);
-                if (rc)
-                    return rc;
-            }
-            else if (dec_block->id == 0)
-                self->enc_size = sizeof (KEncFileHeader);
-        }
-    }
-
-/*     if (self->dirty) */
-    {
-        KEncFileBlock enc_block;
-
-        rc = KEncFileBlockEncrypt (self, dec_block, &enc_block);
-        if (rc == 0)
-        {
-            KEncFileBlockId block_id;
-            uint64_t pos;
-            size_t num_writ;
-
-            block_id = dec_block->id;
-
-            pos = BlockId_to_EncryptedPos (block_id);
-
-            rc = KEncFileBufferWrite (self, pos, &enc_block, sizeof enc_block,
-                                      &num_writ);
-
-            if (rc)
-                PLOGERR (klogErr, (klogErr, rc,
-                                   "error writing encrypted block '$(B)'",
-                                   "B=%lu", block_id));
-
-            else if (num_writ != sizeof enc_block)
-            {
-                rc = RC (rcKrypto, rcFile, rcWriting, rcBuffer, rcInsufficient);
-                PLOGERR (klogErr, (klogErr, rc, "error writing encrypted block "
-                                   "'$(B)' wrote '$(Z)' not '$(Y)'",
-                                   "B=%lu, Z=%zu", block_id, num_writ,
-                                   sizeof enc_block));
-            }
-            else
-                self->dirty = false;
-        }
-    }
-
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Interface Functions
- *
- * Destroy
- *
- */
-static
-rc_t CC KEncFileDestroy (KEncFile *self)
-{
-    rc_t rc1 = 0;
-    rc_t rc2 = 0;
-    rc_t rc3 = 0;
-    rc_t rc4 = 0;
-    rc_t rc5 = 0;
-    rc_t rc6 = 0;
-
-    assert (self);
-
-    if (self->dad.write_enabled)
-    {
-        /*
-         * write the header if we've written nothing to an empty file
-         * or if we've written something which will mean a change to v2
-         * of the encrypted file format
-         */
-        if ((self->enc_size == 0) || (self->seekable && self->changed) ||
-            (self->has_header == false))
-            rc1 = KEncFileHeaderWrite (self);
-
-        /* write any dirty block */
-        if (self->dirty)
-            rc2 = KEncFileBlockFlush (self, &self->block);
-
-        /* [re]write footer */
-        if (self->changed)
-            rc3 = KEncFileFooterWrite (self);
-    }
-    rc4 = KFileRelease (self->encrypted);
-    rc5 = KCipherRelease (self->ciphers.master);
-    rc6 = KCipherRelease (self->ciphers.block);
-
-    free (self);
-    
-    if (rc1)
-        return rc1;
-    if (rc2)
-        return rc2;
-    if (rc3)
-        return rc3;
-    if (rc4)
-        return rc4;
-    if (rc5)
-        return rc5;
-    return rc6;
-}
-
-
-/* ----------------------------------------------------------------------
- * GetSysFile
- *  returns an underlying system file object
- *  and starting offset to contiguous region
- *  suitable for memory mapping, or NULL if
- *  no such file is available.
- *
- * We do not allow this for read, write or update as you can not memory map the 
- * unencrypted file in a meaningful way.
- */
-static
-struct KSysFile *CC KEncFileGetSysFile (const KEncFile *self, uint64_t *offset)
-{
-    assert (self);
-    assert (offset);
-
-    return NULL;
-}
-
-
-/* ----------------------------------------------------------------------
- * RandomAccess
- *
- *  returns 0 if random access, error code otherwise
- */
-static
-rc_t CC KEncFileRandomAccess (const KEncFile *self)
-{
-    assert (self != NULL);
-    assert ((self->seekable == true) || (self->seekable == false));
-
-    /* we checked for random access in the contructor */
-    if (self->seekable)
-        return 0;
-
-    return RC (rcFS, rcFile, rcUpdating, rcFunction, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * Size
- *  returns size in bytes of file
- *
- *  "size" [ OUT ] - return parameter for file size
- */
-static
-rc_t CC KEncFileSize (const KEncFile *self, uint64_t *size)
-{
-    if (!self->size_known)
-        return RC (rcKrypto, rcFile, rcAccessing, rcSize, rcUnsupported);
-
-    *size = self->dec_size;
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * SetSize
- *  sets size in bytes of file
- *
- *  "size" [ IN ] - new file size
- *
- * This is the size of the decrypted payload not of the encrypted file
- */
-static
-rc_t KEncFileSetSizeBlockFull (KEncFile *self, uint64_t block_id)
-{
-    if ((self->block.id == block_id) && (self->block.u.valid != 0))
-    {
-        if (self->block.u.valid < sizeof self->block.data)
-        {
-            self->block.u.valid = sizeof self->block.data;
-            self->dirty = true;
-        }
-        else
-            assert (self->block.u.valid  == sizeof self->block.data);
-    }
-    else
-    {
-        KEncFileBlock block;
-        rc_t rc;
-
-        rc = KEncFileBlockRead (self, &block, block_id, false);
-        if (rc)
-            return rc;
-
-/*         if (self->block.u.valid  != sizeof self->block.data) */
-/*         { */
-/*             OUTMSG (("%s: %u %u\n", __func__,self->block.u.valid,sizeof self->block.data)); */
-/*             OUTMSG (("%s: %lu %lu\n", __func__,self->block.id,block_id)); */
-/*         } */
-
-        /* only change block if not "missing" */
-        if (BufferAllZero (&block, sizeof block) == false)
-        {
-            assert (block.id == block_id);
-
-            /* only change if not already full - shouldnt get here if not? */
-            if (block.u.valid < sizeof block.data)
-            {
-                self->changed = self->sought = true;
-                block.u.valid = sizeof block.data;
-
-                rc = KEncFileBlockFlush (self, &block);
-                if (rc)
-                    return rc;
-            }
-            else
-                assert (self->block.u.valid  == sizeof self->block.data);
-        }
-    }
-    return 0;
-}
-
-
-static
-rc_t KEncFileSetSizeBlockPartial (KEncFile *self, uint64_t block_id, uint32_t valid)
-{
-    if ((self->block.id == block_id) && (self->block.u.valid != 0))
-    {
-        if (self->block.u.valid != valid)
-        {
-            self->block.u.valid = valid;
-            self->dirty = true;
-        }
-    }
-    else
-    {
-        KEncFileBlock block;
-        rc_t rc;
-
-        rc = KEncFileBlockRead (self, &block, block_id, false);
-        if (rc)
-            return rc;
-
-        /* only change block if not "missing" */
-        if (BufferAllZero (&block, sizeof block) == false)
-        {
-            assert (block.id == block_id);
-
-            if (block.u.valid != valid)
-            {
-                self->changed = self->sought = true;
-                block.u.valid = valid;
-                
-                rc = KEncFileBlockFlush (self, &block);
-                if (rc)
-                    return rc;
-            }
-        }
-    }
-    return 0;
-}
-
-
-static
-rc_t KEncFileSetSizeInt (KEncFile *self, uint64_t dec_size)
-{
-    uint64_t trim_size;
-    uint64_t enc_size;
-    bool do_size = true;
-
-    rc_t rc = 0;
-
-    /* should we not have been called? */
-    if ((dec_size == self->dec_size) && (self->enc_size != 0))
-        return 0;
-
-    /* if wiping out the whole file */
-    if (dec_size == 0)
-    {
-        trim_size = sizeof (KEncFileHeader);
-        enc_size = (sizeof (KEncFileHeader) + sizeof (KEncFileFooter));
-
-        /* if we did clear out the RAM structures to match */
-        memset (&self->block, 0, sizeof self->block);
-        memset (&self->foot, 0, sizeof self->foot);
-        self->dirty = false;
-        self->size_known = true;
-        self->bswap = false;
-        self->changed = true;
-        self->sought = false;
-        self->has_header = false;
-        self->version = eCurrentVersion;
-    }
-    else
-    {
-        KEncFileBlockId new_bid;    /* block id of new last block */
-        KEncFileBlockId new_fid;    /* block id of new footer / block count */
-        uint32_t        new_doff;   /* bytes into last partial block */
-
-        /*
-         * determine sizes of decrypted virtual file
-         * and encrypted 'real' file
-         */
-        new_fid = new_bid = DecryptedPos_to_BlockId (dec_size, &new_doff);
-        if (new_doff == 0)
-            --new_bid; /* exactly fills a block */
-        else
-            ++new_fid;  /* leaves a partial block */
-    
-        enc_size = BlockId_to_EncryptedPos (new_fid) + sizeof self->foot;
-
-        /* are we starting with an empty file? It's easy if we are */
-        if (self->dec_size == 0)
-        {
-            trim_size = sizeof (KEncFileHeader);
-
-            /* if we did clear out the RAM structures to match */
-            memset (&self->block, 0, sizeof self->block);
-            self->bswap = false;
-            self->changed = true;
-            self->version = eCurrentVersion;
-        }
-        else
-        {
-            KEncFileBlockId old_bid;    /* block id of old last block */
-            KEncFileBlockId old_fid;    /* block id of old footer / block count */
-            uint32_t        old_doff;   /* bytes into last partial block */
-
-            old_fid = old_bid = DecryptedPos_to_BlockId (self->dec_size, &old_doff);
-            if (old_doff == 0)
-                --old_bid; /* exactly fills a block */
-            else
-                ++old_fid;  /* leaves a partial block */
-
-            /* are we only changing the last block? */
-            if (old_bid == new_bid)
-            {
-                assert ((self->dad.read_enabled == false) || (self->enc_size == enc_size));
-
-                if (new_doff == 0)
-                    rc = KEncFileSetSizeBlockFull (self, new_bid);
-                else
-                    rc = KEncFileSetSizeBlockPartial (self, new_bid, new_doff);
-                do_size = false;
-            }
-            else
-            {
-
-                /* truncating the file? */
-                if (dec_size < self->dec_size)
-                {
-                    trim_size = BlockId_to_EncryptedPos (new_fid);
-
-                    /* do we throw away the block in the object? */
-                    if (self->block.id > new_bid)
-                    {
-                        self->dirty = false;
-                        memset (&self->block, 0, sizeof self->block);
-                    }
-
-                    /* we only change the new last block if its now partial */
-                    if (new_doff)
-                        rc = KEncFileSetSizeBlockPartial (self, new_bid, new_doff);
-
-                }
-                /* expanding the file */
-                else
-                {
-                    assert (dec_size > self->dec_size);
-
-                    trim_size = BlockId_to_EncryptedPos (old_fid);
-
-                    /* make old last block a full block if it wasn't already */
-                    if (old_doff != 0)
-                        rc = KEncFileSetSizeBlockFull (self, old_bid);
-                }
-            }
-        }
-    }
-    if (rc == 0)
-    {
-        if (do_size)
-        {
-            rc = KFileSetSize (self->encrypted, trim_size);
-            if (rc)
-                LOGERR (klogErr, rc, "failure to trim size of encrpted file");
-            else
-            {
-                rc = KFileSetSize (self->encrypted, enc_size);
-                if (rc)
-                    LOGERR (klogErr, rc, "failure to file size of encrpted file");
-            }
-        }
-        if (rc == 0)
-        {
-            self->enc_size = enc_size;
-            self->dec_size = dec_size;
-        }
-    }
-    return rc;
-}
-
-
-static
-rc_t CC KEncFileSetSize (KEncFile *self, uint64_t dec_size)
-{
-    assert (self);
-    assert (self->encrypted);
-
-    if (self->dad.write_enabled == false)
-        return RC (rcKrypto, rcFile, rcResizing, rcFile, rcNoPerm);
-
-    if ((self->seekable == false) || (self->size_known == false))
-        return RC(rcKrypto, rcFile, rcAccessing, rcFunction, rcUnsupported);
-
-    /* silently ignore changes in size that don't change the size */
-    if (dec_size == self->dec_size)
-        return 0;
-
-    else
-        return KEncFileSetSizeInt (self, dec_size);
-}
-
-
-/* ----------------------------------------------------------------------
- * Read
- *  read file from known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually read
- */
-static
-rc_t CC KEncFileRead (const KEncFile *cself,
-                      uint64_t pos,
-                      void *buffer,
-                      size_t bsize,
-                      size_t *num_read)
-{
-    KEncFile * self = (KEncFile *)cself; /* mutable values */
-    uint64_t max_bid;
-    uint64_t block_id;
-    uint32_t offset;
-    rc_t rc = 0;
-
-    assert (self); /* checked in file.c KFileRead() */
-    /* pos can be 'anything' */
-    assert (buffer); /* checked in file.c KFileRead() */
-    assert (bsize); /* checked in file.c KFileRead() */
-    assert (num_read); /* checked in file.c KFileRead() */
-
-    assert (self->dad.read_enabled);
-    assert (self->encrypted);
-
-    /* do we have a decrypted_size? */
-
-    block_id = DecryptedPos_to_BlockId (pos, &offset);
-
-    switch (self->size_known)
-    {
-    case false:
-
-        max_bid = EncryptedPos_to_BlockId (self->enc_size, NULL, NULL);
-
-        /* if past end of file as we know it so far quick out */
-        if (max_bid <= block_id)
-            return 0;
-        break;
-
-    case true:
-        /* if past end of file quick out */
-        if (pos > self->dec_size)
-            return 0;
-        break;
-
-    default:
-        assert (self->size_known);
-        break;
-    }
-
-    /*
-     * are we on the wrong block?
-     * Or are do we need to read the first block?
-     */
-    if ((block_id != self->block.id) || (self->block.u.valid == 0))
-    {
-        if ((!self->seekable) && (self->block.id + 1 != block_id))
-        {
-            rc = RC (rcFS, rcFile, rcReading, rcOffset, rcIncorrect);
-            PLOGERR (klogErr, (klogErr, rc, "attempt to seek in encryption write at"
-                               " '$(O)' seek to '$(P)'", "O=%lu,P=%lu",
-                               BlockId_to_EncryptedPos(self->block.id), pos));
-        }
-        else
-        {
-            /* flush any dirty block */
-            if (self->dirty)
-            {
-                assert (self->dad.write_enabled);
-                rc = KEncFileBlockFlush (self, &self->block);
-            }
-
-            /* now try to read in a new block */
-            if (rc == 0)
-                rc = KEncFileBlockRead (self, &self->block, block_id, false);
-
-            if (rc == 0)
-            {
-                uint64_t read_max;
-
-                read_max = BlockId_to_DecryptedPos(block_id) + self->block.u.valid;
-                if (self->dec_size < read_max)
-                    self->dec_size = read_max;
-            }
-        }
-    }
-
-    /*
-     * if we are trying to read past the end of the file 
-     * return 0 with nothing read
-     */
-    if ((rc == 0) &&
-        (block_id == self->block.id) &&
-        (offset < self->block.u.valid))
-    {
-        size_t to_copy;
-
-        to_copy = self->block.u.valid - offset;
-        if (to_copy > bsize)
-            to_copy = bsize;
-
-        memmove (buffer, self->block.data + offset, to_copy);
-        *num_read = to_copy;
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Write
- *  write file at known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- */
-static
-rc_t CC KEncFileWrite (KEncFile *self, uint64_t pos,
-                       const void *buffer, size_t bsize,
-                       size_t *pnum_writ)
-{
-    rc_t rc = 0;
-
-    assert (self);
-    assert (buffer);
-    assert (bsize > 0);
-    assert (pnum_writ);
-
-    assert (self->dad.write_enabled);
-    assert (self->encrypted);
-
-/*     KOutMsg ("+++++\n%s: pos %lu\n",__func__,pos); */
-
-    if (self->dec_size != pos)
-    {
-        /* write only does not allow seeks */
-        if ((!self->dad.read_enabled) && (!self->swarm))
-        {
-            rc = RC (rcFS, rcFile, rcWriting, rcOffset, rcIncorrect);
-            PLOGERR (klogErr, (klogErr, rc, "attempt to seek in encryption write at"
-                               " '$(O)' seek to '$(P)'", "O=%lu,P=%lu",
-                               BlockId_to_EncryptedPos(self->block.id), pos));
-        }
-        else
-            self->sought = true;
-    }
-    if (rc == 0)
-    {
-        uint64_t block_id;
-        uint32_t offset;
-        uint64_t block_max;
-        uint64_t new_size;
-
-        rc = 0;
-        /* Block Id for this write */
-        block_id = DecryptedPos_to_BlockId (pos, &offset);
-
-        block_max = BlockId_to_DecryptedPos (block_id+1);
-
-        new_size = pos + bsize;
-        if (new_size > block_max)
-            bsize = block_max - new_size;
-
-
-        /* is the new position beyond the current file length? */
-        if ((new_size > self->dec_size) && (self->dad.read_enabled) && (!self->swarm))
-        {
-            rc = KEncFileSetSizeInt (self, new_size);
-            if (rc)
-                return rc;
-        }
-
-        /* are we going to a new block? */
-        if ((block_id != self->block.id) || (self->block.u.valid == 0))
-        {
-            /* do we have sometihng to flush first? */
-            if (self->dirty)
-            {
-                assert (self->dad.write_enabled);
-                rc = KEncFileBlockFlush (self, &self->block);
-            }
-
-            if (rc == 0)
-            {
-                /* if we are going to over write the whole block */
-                if ((!self->dad.read_enabled) ||
-                    ((offset == 0) && (bsize >= sizeof (self->block.data))))
-                {
-                    memset (&self->block, 0, sizeof self->block);
-                    self->block.id = block_id;
-                }
-                /* else try to fetch an existing block */
-                else
-                    rc = KEncFileBlockRead (self, &self->block, block_id, false);
-            }
-        }
-
-        if (rc == 0)
-        {
-            /* we are at the right block and ready to write */
-            uint32_t new_valid;
-            size_t to_copy;
-
-            /*
-             * force block id to be right even if fetch was beyond end of 
-             * existing file
-             */
-            self->block.id = block_id;
-
-/*             to_copy = sizeof self->block.data - self->block.u.valid; */
-            to_copy = sizeof self->block.data - offset;
-
-            if (to_copy > bsize)
-                to_copy = bsize;
-
-            memmove (self->block.data + offset, buffer, to_copy);
-            self->dirty = true;
-            *pnum_writ = to_copy;
-
-            new_valid = offset + to_copy;
-            if (new_valid > self->block.u.valid)
-            {
-                uint64_t new_size;
-
-                self->block.u.valid = new_valid;
-
-                new_size = pos + to_copy;
-                if (new_size > self->dec_size)
-                    self->dec_size = new_size;
-            }
-
-            if (self->swarm)
-                rc = KEncFileBlockFlush (self, &self->block);
-
-
-        }
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Type
- *  returns a KFileDesc
- *  not intended to be a content type,
- *  but rather an implementation class
- *
- * Just return what the backing file says...
- */
-static
-uint32_t CC KEncFileType (const KEncFile *self)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-
-    return KFileType (self->encrypted);
-}
-
-
-/* ----------------------------------------------------------------------
- * KEncFileMake
- *  create a new file object
- */
-
-/* ----------
- * KeysInit
- */
-static
-rc_t KEncFileCiphersInit (KEncFile * self, const KKey * key, bool read, bool write)
-{
-    KCipherManager * mgr;
-    size_t z;
-    rc_t rc;
-
-    switch ( key->type)
-    {
-    default:
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcInvalid);
-
-    case kkeyNone:
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcIncorrect);
-
-    case kkeyAES128:
-        z = 128/8; break;
-
-    case kkeyAES192:
-        z = 192/8; break;
-
-    case kkeyAES256:
-        z = 256/8; break;
-    }
-    rc = KCipherManagerMake (&mgr);
-    if (rc == 0)
-    {
-        rc = KCipherManagerMakeCipher (mgr, &self->ciphers.master, kcipher_AES);
-        if (rc == 0)
-        {
-            rc = KCipherManagerMakeCipher (mgr, &self->ciphers.block, kcipher_AES);
-            if (rc == 0)
-            {
-                rc = KCipherSetDecryptKey (self->ciphers.master, key->text, z);
-                if (rc == 0)
-                {
-                    rc = KCipherSetEncryptKey (self->ciphers.master, key->text, z);
-                    if (rc == 0)
-                        goto keep_ciphers;
-                }
-                KCipherRelease (self->ciphers.block);
-                self->ciphers.block = NULL;
-            }
-            KCipherRelease (self->ciphers.master);
-            self->ciphers.master = NULL;
-        }
-    keep_ciphers:
-        KCipherManagerRelease (mgr);
-    }
-    return rc;
-}
-
-
-
-static const KFile_vt_v1 vtKEncFile =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KEncFileDestroy,
-    KEncFileGetSysFile,
-    KEncFileRandomAccess,
-    KEncFileSize,
-    KEncFileSetSize,
-    KEncFileRead,
-    KEncFileWrite,
-    
-    /* 1.1 */
-    KEncFileType
-};
-
-
-static
-rc_t  KEncFileMakeIntValidSize (uint64_t enc_size, bool w)
-{
-
-    if (enc_size == 0)
-    {
-        if (w)
-            return 0;
-    }
-    else
-    {
-        uint64_t min_size = sizeof (KEncFileHeader) + sizeof (KEncFileFooter);
-        uint64_t block_count;
-
-        if (enc_size >= min_size)
-        {
-            block_count = EncryptedPos_to_BlockId (enc_size, NULL, NULL);
-
-            if (enc_size - BlockId_to_EncryptedPos (block_count) == sizeof (KEncFileFooter))
-                return 0;
-        }
-    }
-    return RC (rcKrypto, rcFile, rcConstructing, rcSize, rcIncorrect);
-}
-
-
-/* ----------
- * MakeInt
- *    common make for all encryptor/decryptors
- */
-static
-rc_t KEncFileMakeInt (KEncFile ** pself, KFile * encrypted,
-                      bool r, bool w, bool v, bool s)
-{
-    uint64_t enc_size;
-    rc_t rc = 0, orc;
-    bool seekable;
-    bool size_known;
-
-    assert (pself);
-    assert (encrypted);
-    assert (((r == true) || (r == false)) &&
-            ((w == true) || (w == false)) &&
-            ((v == true) || (v == false)));
-
-    /* must be able to do at elast one of read and write */
-    assert (r || w);
-
-    /* expecting to validate read only right now */
-/*     assert ((v && r && !w) || (!v)); */
-
-    if (w && ! encrypted->write_enabled)
-    {
-        rc = RC (rcKrypto, rcFile, rcConstructing, rcFile, rcReadonly);
-        LOGERR (klogErr, rc, "Can not make a encryptor for a unwritable file");
-    }
-    if (r && ! encrypted->read_enabled)
-    {
-        orc = RC (rcKrypto, rcFile, rcConstructing, rcFile, rcWriteonly);
-        LOGERR (klogErr, orc, "Can not make a decryptor for an unreadable file");
-        if (rc == 0)
-            rc = orc;
-    }
-    if (rc)
-        return rc;
-
-    /* determine whether the original file can tell us the size */
-    rc = KFileSize (encrypted, &enc_size);
-    if (rc == 0)
-        size_known = true;
-
-    else if (GetRCState(rc) == rcUnsupported)
-        size_known = false;
-    
-    else
-        return rc;
-
-    if (!v && size_known)
-    {
-        rc = KEncFileMakeIntValidSize (enc_size, w);
-        if (rc)
-            return rc;
-    }
-
-    /* determine whether the original file allows seeks */
-    rc = KFileRandomAccess (encrypted);
-    if (rc == 0)
-        seekable = true;
-
-    else if (GetRCState(rc) == rcUnsupported)
-        seekable = false;
-
-    else
-    {
-        LOGERR (klogErr, rc, "error checking random access building "
-                "encrypted file");
-        return rc;
-    }
-
-    /* We are currently only supporting update on seekable and size_known original files */
-    if (r && w && ((!seekable) || (!size_known)))
-    {
-        rc = RC (rcKrypto, rcFile, rcConstructing, rcFile, rcIncorrect);
-        LOGERR (klogErr, rc, "encryptor/decryptor requires seek and size ability");
-        return rc;
-    }
-
-    rc = KFileAddRef (encrypted);
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "Could not add reference to encrypted file");
-        return rc;
-    }
-    else
-    {
-        KEncFile * self;
-
-        /* allocate and zero out an object since we want much of it to be zeroed */
-        self = calloc (1, sizeof *self);
-        if (self == NULL)
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
-            LOGERR (klogSys, rc,
-                    "out of memory creating encryptor and/or decryptor");
-        }
-        else
-        {
-            /* all KFiles get this initialization */
-            rc = KFileInit (&self->dad, (const KFile_vt*)&vtKEncFile, "KEncFile", "no-name", r, w);
-            if (rc)
-                LOGERR (klogInt, rc, "error with init for encrypted file");
-
-            else
-            {
-                self->encrypted = encrypted;
-                self->swarm = s;
-
-                /* write only or empty updatable */
-                if ((!r) || (w && size_known && (enc_size == 0)))
-                {
-                    /* dummy size to make the SetSizeInt work */
-                    self->enc_size = enc_size;
-                    rc = KEncFileSetSizeInt (self, 0);
-                    self->seekable = r && seekable;
-                }
-                else
-                {
-                    self->enc_size = enc_size;
-                    self->seekable = seekable;
-                    self->size_known = size_known;
-                    rc = KEncFileHeaderRead (self);
-                }
-                if (rc == 0)
-                {
-                    *pself = self;
-                    return 0;
-                }
-            }
-            free (self);
-        }
-        KFileRelease (encrypted);
-    }
-    return rc;
-}
-
-
-static
-rc_t KEncFileMakeSize (KEncFile *self)
-{
-    KEncFileBlockId fid;
-    rc_t rc;
-
-    assert (self->seekable);
-
-    /*
-     * turn the encrypted size into a block/offset
-     * the offset should be 0 for a missing footer
-     * or the size of a footer
-     */
-    fid = EncryptedPos_to_BlockId (self->enc_size, NULL, NULL);
-
-    assert (BlockId_to_EncryptedPos(fid) + sizeof (self->foot) == self->enc_size);
-
-    if (fid == 0)
-        self->dec_size = 0;
-
-    else
-    {
-        KEncFileBlockId bid = fid - 1;
-        KEncFileBlock b;
-
-        /*
-         * not calling this a seek as its not reading a data block
-         * out of order that will be modified
-         */
-        rc = KEncFileBlockRead (self, &b, bid, false);
-        if (rc)
-            return rc;
-        else
-        {
-            if (BufferAllZero(&b, sizeof b) == true)
-                self->dec_size = BlockId_to_DecryptedPos (bid) + 
-                    sizeof self->block.data;
-
-            else
-                self->dec_size = BlockId_to_DecryptedPos (bid) + b.u.valid;
-        }
-    }
-    self->size_known = true;
-    return 0;
-}
-
-
-/* ----------
- * MakeCmn
- * common parameter validation for all encryptor/decryptors
- */
-static
-rc_t KEncFileMakeCmn (KEncFile ** pself, KFile * encrypted, const KKey * key,
-                      bool r, bool w, bool s)
-{
-    rc_t rc = 0, orc;
-
-    assert (((r == true)||(r == false))&&((w == true)||(w == false)));
-    assert (w || r);
-
-    if (pself == NULL)
-    {
-        rc = RC (rcKrypto, rcFile, rcConstructing, rcSelf, rcNull);
-        LOGERR (klogErr, rc,
-                "pointer to self NULL when creating "
-                "an encryptor/decryptor");
-    }
-    else
-        *pself = NULL;
-
-    if (encrypted == NULL)
-    {
-        orc = RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-        LOGERR (klogErr, orc, 
-                "encrypted file not readable when creating "
-                "an encryptor/decryptor");
-        if (rc == 0)
-            rc = orc;
-    }
-
-    if (key == NULL)
-    {
-        orc = RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-        LOGERR (klogErr, orc, 
-                "key not supplied when creating an encryptor/decryptor");
-        if (rc == 0)
-            rc = orc;
-    }
-
-    CRC32Init();    /* likely to be called way too often */
-
-    switch (key->type)
-    {
-    default:
-        orc = RC (rcFS, rcFile, rcConstructing, rcParam, rcInvalid);
-        PLOGERR (klogErr,
-                 (klogErr, orc, "invalid key type '$(T)' should be "
-                  "kkeyAES128(1), kkeyAES192(2) or kkeyAES256(3)",
-                  "T=%u", key->type));
-        if (rc == 0)
-            rc = orc;
-        break;
-
-    case kkeyAES128:
-    case kkeyAES192:
-    case kkeyAES256:
-        break;
-    }
-    if (rc == 0)
-    {
-        KEncFile * self;
-
-        assert ((r == true) || (r == false));
-        assert ((w == true) || (w == false));
-
-        rc = KEncFileMakeInt (&self, encrypted, r, w, false, s);
-        if (rc == 0)
-        {
-            rc = KEncFileCiphersInit (self, key, r, w);
-            if (rc == 0)
-            {
-                
-                if (self->seekable && self->size_known)
-                    rc = KEncFileMakeSize (self);
-
-                if (rc == 0)
-                {
-                    *pself = self;
-                    return 0;
-                }
-            }
-            KFileRelease (&self->dad);
-        }
-    }
-    return rc;
-}
-
-
-/* ----------
- * Read mode is fully seekable if the underlying KFile is seekable some
- * integrity checking will not be performed in allowing this seeking.
- */
-LIB_EXPORT rc_t CC KEncFileMakeRead_v2 (const KFile ** pself, 
-                                        const KFile * encrypted,
-                                        const KKey * key)
-{
-    KEncFile * self;
-    rc_t rc;
-
-    /*
-     * casting encrypted dowsn't actually make it writable
-     * it just lets us use a common constructor
-     */
-    rc = KEncFileMakeCmn (&self, (KFile *)encrypted, key, true, false, false);
-    if (rc)
-        LOGERR (klogErr, rc, "error constructing decryptor");
-
-    else
-        *pself = &self->dad;
-
-    return rc;
-}
-
-
-/* ----------
- * Write mode encrypted file can only be written straight through form the
- * first byte to the last.
- *
- * Existing content is lost.
- */
-LIB_EXPORT rc_t CC KEncFileMakeWrite_v2 (KFile ** pself, 
-                                         KFile * encrypted,
-                                         const KKey * key)
-{
-    KEncFile * self;
-    rc_t rc;
-
-    rc = KEncFileMakeCmn (&self, encrypted, key, false, true, false);
-    if (rc)
-        LOGERR (klogErr, rc, "error constructing encryptor");
-
-    else
-        *pself = &self->dad;
-
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC KEncFileMakeUpdate_v2 (KFile ** pself, 
-                                          KFile * encrypted,
-                                          const KKey * key)
-{
-    KEncFile * self;
-    rc_t rc;
-
-/*     static int count = 0; */
-
-/*     KOutMsg ("%s: %d\n",__func__,++count); */
-
-    rc = KEncFileMakeCmn (&self, (KFile *)encrypted, key, true, true, false);
-    if (rc)
-        LOGERR (klogErr, rc, "error constructing encryptor/decryptor");
-
-    else
-        *pself = &self->dad;
-
-    return rc;
-}
-
-
-/* ----------
- * Swarm mode encrypted file can be writtenout of order but the footer is not
- * handled automatically
- */
-LIB_EXPORT rc_t CC KEncFileMakeBlock_v2 (KFile ** pself, 
-                                         KFile * encrypted,
-                                         const KKey * key)
-{
-    KEncFile * self;
-    rc_t rc;
-
-/*     static int count = 0; */
-
-/*     KOutMsg ("%s: %d\n",__func__,++count); */
-
-    rc = KEncFileMakeCmn (&self, (KFile *)encrypted, key, false, true, true);
-    if (rc)
-        LOGERR (klogErr, rc, "error constructing encryptor/decryptor");
-
-    else
-        *pself = &self->dad;
-
-    return rc;
-}
-
-
-/* ----------
- * Validate mode is useful only for the KFileEncValidate function
- */
-static
-rc_t KEncFileMakeValidate (KEncFile ** pself, const KFile * encrypted)
-{
-    KEncFile * self;
-    rc_t rc;
-
-    assert (pself);
-    assert (encrypted);
-
-    rc = KEncFileMakeInt (&self, (KFile*)encrypted, true, false, true, false);
-    if (rc)
-        LOGERR (klogErr, rc, "error making KEncFile");
-    else
-    {
-        rc = KEncFileHeaderRead (self);
-        if (rc)
-            LOGERR (klogErr, rc, "error reading encrypted file header");
-        else
-        {
-            *pself = self;
-            return 0;
-        }
-    }
-    *pself = NULL;
-    return rc;
-}
-
-
-/* ======================================================================
- * Interface extensions
- */
-
-
-/* ----------
- * Validate mode can not be read or written.
- * Upon open the whole file is read from begining to end and all CRC
- * and other integrity checks are performed immedaitely
- *
- * This will fail if the file being tested is not "at position 0" and can not
- * be sought back to 0.
- */
-
-
-
-LIB_EXPORT rc_t CC KEncFileValidate_v2 (const KFile * encrypted)
-{
-    KEncFile * file;
-    rc_t rc = 0;
-
-    /* fail if a NULL parameter: can't validate all addresses */
-    if (encrypted == NULL)
-    {
-        rc = RC (rcKrypto, rcFile, rcValidating, rcParam, rcNull);
-        LOGERR (klogErr, rc, "encrypted file was null when trying to validate");
-        return rc;
-    }
-
-    /* file header is validated within the call to Make Validate */
-    rc = KEncFileMakeValidate (&file, encrypted);
-    if (rc)
-        LOGERR (klogErr, rc,
-                "unable to validate encrypted file due to "
-                "inability to open as encrypted file");
-    else
-    {
-        uint64_t pos;             /* position within the encrypted file */
-        uint64_t block_count = 0; /* how many blocks have we read */
-
-        /* loop through all data blocks */
-        pos = sizeof (KEncFileHeader);
-        for (block_count = 0; ; ++block_count)
-        {
-            rc_t vrc;
-            STSMSG (2, ("reading block '%u' at '%lu'", block_count,
-                        BlockId_to_EncryptedPos(block_count)));
-           
-            vrc = KEncFileBlockRead (file, NULL, block_count, true);
-            if (vrc != 0)
-            {
-                if ( rc == 0 )
-                    rc = vrc;
-                if ( GetRCContext( vrc ) != rcValidating )
-                {
-                    STSMSG (2, ("read error at block '%u'", block_count));
-                    break;
-                }
-            }
-            if (file->eof)
-            {
-                STSMSG (2, ("block '%u' was end", block_count));
-                break;
-            }
-            pos += sizeof (KEncFileData);
-        }   
-        KFileRelease (&file->dad);
-    }
-    return (rc);
-}
-
-
-LIB_EXPORT rc_t CC KEncFileHeaderWrite_v2 (KFile * dad)
-{
-    rc_t rc;
-
-    if (dad->vt != (const KFile_vt*)&vtKEncFile)
-    {
-        rc = RC (rcKrypto, rcFile, rcWriting, rcType, rcIncorrect);
-        LOGERR (klogErr, rc, "file not an encryptor requested writing header");
-    }
-    else
-    {
-        KEncFile * self;
-        self = (KEncFile*)dad;
-
-        rc = KEncFileHeaderWrite (self);
-    }
-    return rc;
-}
-
-LIB_EXPORT rc_t CC KEncFileFooterWrite_v2 (KFile * dad)
-{
-    rc_t rc;
-
-    if (dad->vt != (const KFile_vt*)&vtKEncFile)
-    {
-        rc = RC (rcKrypto, rcFile, rcWriting, rcType, rcIncorrect);
-        LOGERR (klogErr, rc, "file not an encryptor requested writing footer");
-    }
-    else
-    {
-        KEncFile * self;
-        self = (KEncFile*)dad;
-
-        rc = KEncFileFooterWrite (self);
-    }
-    return rc;
-}
-
-/* ----------
- * Identify whether a file is a KEncFile type encrypted file by the header.
- * read the header into a buffer and pass it into this function.  
- * The buffer_size needs to be at least 8 but more bytes lead to a better
- * check up to the size of the header of a KEncFile type encrypted file.
- * As the header may change in the future (in a backwards compatible way)
- * that size might change from the current 16.
- *
- * Possible returns:
- * 0:
- *      the file is an identified KEncFile type file.  False positives are
- *      possible if a file happens to match at 8 or more bytes
- *
- * RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType)
- *      the file is definitely not a KEncFile type encrypted file.
- *     
- * RC (rcFS, rcFile, rcIdentifying, rcParam, rcNull)
- *      bad parameters in the call
- *
- * RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient)
- *      not a large enough buffer to make an identification
- */
-LIB_EXPORT rc_t CC KFileIsEnc_v2 (const char * buffer, size_t buffer_size)
-{
-    KEncFileHeader header;
-    size_t count;
-    bool byte_swapped;
-
-    if ((buffer == NULL) || (buffer_size == 0))
-        return RC  (rcFS, rcFile, rcIdentifying, rcParam, rcNull); 
-
-    /* must have the signature to consider it an Encrypted file */
-    if (buffer_size < sizeof (header.file_sig))
-        return RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient); 
-
-    if ((memcmp (buffer, &const_header.file_sig, sizeof const_header.file_sig ) != 0) &&
-        (memcmp (buffer, &const_header_sra.file_sig, sizeof const_header_sra.file_sig ) != 0))
-        return RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType); 
-
-    /* can we also check the byte order? It's okay if we can't */
-    if (buffer_size < sizeof header.file_sig + sizeof header.byte_order)
-        return 0; 
-    
-    count = buffer_size > sizeof header ? sizeof header : buffer_size;
-
-    memcpy (&header, buffer, count);
-
-    if (header.byte_order == const_header.byte_order)
-        byte_swapped = false;
-
-    else if (header.byte_order == const_bswap_header.byte_order)
-        byte_swapped = true;
-
-    /* but if it's not we fail with a different error */
-    else
-        return RC (rcFS, rcFile, rcIdentifying, rcFile, rcOutoforder); 
-
-    /* can we check the version as well? It's okay if we can't */
-    if (buffer_size < sizeof (header))
-        return 0; 
-
-    assert (sizeof (header.version) == 4);
-    if (byte_swapped)
-        header.version = bswap_32(header.version);
-
-    /* and it's a different error if the version is not within our range */
-    if ((header.version <= 0) || (header.version > eCurrentVersion))
-        return RC (rcKrypto, rcFile, rcClassifying, rcFile, rcBadVersion);
-
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC KFileIsSraEnc (const char * buffer, size_t buffer_size)
-{
-    KEncFileHeader header;
-    size_t count;
-    bool byte_swapped;
-
-    if ((buffer == NULL) || (buffer_size == 0))
-        return RC  (rcFS, rcFile, rcIdentifying, rcParam, rcNull); 
-
-
-    if (buffer_size < sizeof (header.file_sig))
-        return RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient); 
-
-    if (memcmp (buffer, &const_header_sra.file_sig, sizeof const_header.file_sig ) != 0)
-        return RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType); 
-
-    if (buffer_size < sizeof header.file_sig + sizeof header.byte_order)
-        return 0; 
-    
-    count = buffer_size > sizeof header ? sizeof header : buffer_size;
-
-    memcpy (&header, buffer, count);
-
-    if (header.byte_order == const_header.byte_order)
-        byte_swapped = false;
-
-    else if (header.byte_order == const_bswap_header.byte_order)
-        byte_swapped = true;
-
-    else
-        return RC (rcFS, rcFile, rcIdentifying, rcFile, rcOutoforder); 
-
-    if (buffer_size < sizeof (header))
-        return 0; 
-
-    assert (sizeof (header.version) == 4);
-    if (byte_swapped)
-        header.version = bswap_32(header.version);
-
-    if ((header.version <= 0) || (header.version > eCurrentVersion))
-        return RC (rcKrypto, rcFile, rcClassifying, rcFile, rcBadVersion);
-
-    return 0;
-}
-
-/* end of file encfile.c */
-
-
-
diff --git a/libs/krypto/key.c b/libs/krypto/key.c
deleted file mode 100644
index c57a45f..0000000
--- a/libs/krypto/key.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <krypto/extern.h>
-#include <krypto/key.h>
-#include <kapp/args.h>
-#include <klib/checksum.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <string.h>
-
-KRYPTO_EXTERN_DATA KKey KKeyEncrypt;
-KRYPTO_EXTERN_DATA KKey KKeyDecrypt;
-KRYPTO_EXTERN_DATA char WGAEncryptPassword[WGA_MAX_PASSWORD];
-KRYPTO_EXTERN_DATA char WGADecryptPassword[WGA_MAX_PASSWORD];
-
-
-static rc_t KKeyInitInt (KKey * self, KKeyType key_type, 
-                         const void * password, size_t password_size)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcSelf, rcNull);
-
-    if (key_type >= kkeyTypeCount)
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcInvalid);
-
-    if (key_type == kkeyNone)
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcIncorrect);
-
-    if (password == NULL)
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcNull);
-
-    if (password_size == 0)
-        return RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, rcTooShort);
-
-    {
-        SHA256State state;
-        size_t z;
-        uint8_t digest [64];
-
-
-        SHA256StateInit (&state);
-        SHA256StateAppend (&state, password, password_size);
-        SHA256StateFinish (&state, digest);
-        
-        switch (self->type = key_type)
-        {
-        default:
-            z = 0;
-            break;
-
-        case kkeyAES128:
-            z = 128/8;
-            break;
-
-        case kkeyAES192:
-            z = 192/8;
-            break;
-
-        case kkeyAES256:
-            z = 256/8;
-            break;
-        }
-        memcpy (self->text, digest, z);
-    }
-    return 0;
-}
-
-LIB_EXPORT rc_t CC KKeyInitRead (KKey * self, KKeyType key_type, 
-                                 const void * password, size_t password_size)
-{
-    return KKeyInitInt (self, key_type, password, password_size);
-}
-
-LIB_EXPORT rc_t CC KKeyInitUpdate (KKey * self, KKeyType key_type, 
-                                   const void * password, size_t password_size)
-{
-    if (password_size < kkeyMinimumSize)
-    {
-        rc_t rc = RC (rcKrypto, rcEncryptionKey, rcConstructing, rcParam, 
-                      rcTooShort);
-#if FAIL_SHORT_PASSWORD
-        return rc;
-#else
-        PLOGERR (klogWarn, (klogWarn, rc,
-                            "Password is shorter than recommended '$(P)' is less than '$(Q)'"
-                            , "P=%zu,Q=%u"
-                            , password_size
-                            , ( uint32_t ) kkeyMinimumSize
-                     ));
-#endif
-    }
-    return KKeyInitInt (self, key_type, password, password_size);
-}
-    
-
-
-LIB_EXPORT rc_t CC KKeyInitHex()
-{
-    return 0;
-}
-
-/* end of file encfile.c */
-
diff --git a/libs/krypto/libkrypto.vers b/libs/krypto/libkrypto.vers
deleted file mode 100644
index 5b09c67..0000000
--- a/libs/krypto/libkrypto.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.0.14
diff --git a/libs/krypto/libkryptotest.vers b/libs/krypto/libkryptotest.vers
deleted file mode 100644
index 3eefcb9..0000000
--- a/libs/krypto/libkryptotest.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0
diff --git a/libs/krypto/manager.c b/libs/krypto/manager.c
deleted file mode 100644
index 8b8c766..0000000
--- a/libs/krypto/manager.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#error "obsolete do not use"
-
-
-
-
-
-
-
-
-
-
diff --git a/libs/krypto/ncbi-priv.h b/libs/krypto/ncbi-priv.h
deleted file mode 100644
index 4814e4f..0000000
--- a/libs/krypto/ncbi-priv.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#ifndef _h_krypto_ncbi_priv_
-#define _h_krypto_ncbi_priv_
-
-#include <klib/defs.h>
-
-#ifdef _GNUC_
-#include <v128.h>
-#endif
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-#if defined (USEVEC)
-#if defined (USEAESNI)
-
-# if ! defined (USEVECREG)
-/*
- * AES_NI && ! VECREG
- * Illegal
- */
-#  error "Bad combination of defines"
-
-# else
-
-/*
- * AESNI && VECREG
- * use AES-NI, and SSSE3 and lower
- */
-
-# define USE_AES_NI             true
-# define USE_VEC_REG            true
-# define USE_VEC                true
-# define CMEMBER(name)          KCipherVecAesNi##name
-# define CIPHER_IMPL            KCipherVecAesNi
-# define AESBCMEMBER(name)      KAESBlockCipherVecAesNi##name
-# define AESBCIPHER_IMPL        KAESBlockCipherVecAesNi
-# define NULLBCMEMBER(name)     KNullBlockCipherVecAesNi##name
-# define NULLBCIPHER_IMPL       KNullBlockCipherVecAesNi
-# define BCIPHER_VALUE          CipherVec
-
-# endif
-#elif defined (USEVECREG)
-
-# define USE_AES_NI             false
-# define USE_VEC_REG            true
-# define USE_VEC                true
-# define CMEMBER(name)          KCipherVecReg##name
-# define CIPHER_IMPL            KCipherVecReg
-# define AESBCMEMBER(name)      KAESBlockCipherVecReg##name
-# define AESBCIPHER_IMPL        KAESBlockCipherVecReg
-# define NULLBCMEMBER(name)     KNullBlockCipherVecReg##name
-# define NULLBCIPHER_IMPL       KNullBlockCipherVecReg
-# define BCIPHER_VALUE          CipherVec
-
-#else
-
-# define USE_AES_NI             false
-# define USE_VEC_REG            false
-# define USE_VEC                true
-# define CMEMBER(name)          KCipherVec##name
-# define CIPHER_IMPL            KCipherVec
-# define AESBCMEMBER(name)      KAESBlockCipherVec##name
-# define AESBCIPHER_IMPL        KAESBlockCipherVec
-# define NULLBCMEMBER(name)     KNullBlockCipherVec##name
-# define NULLBCIPHER_IMPL       KNullBlockCipherVec
-# define BCIPHER_VALUE          CipherVec
-
-#endif
-
-#else /* ! defined (USEVEC) */
-
-
-# define USE_AES_NI             false
-# define USE_VEC_REG            false
-# define USE_VEC                false
-# define MEMBER(name)           KCipherByte##name
-# define CMEMBER(name)          KCipherByte##name
-# define CIPHER_IMPL            KCipherByte
-# define AESBCMEMBER(name)      KAESBlockCipherByte##name
-# define AESBCIPHER_IMPL        KAESBlockCipherByte
-# define NULLBCMEMBER(name)     KNullBlockCipherByte##name
-# define NULLBCIPHER_IMPL       KNullBlockCipherByte
-# define BCIPHER_VALUE          CipherBlock
-
-#endif /* defined (USEVEC) */
-
-#define CLASS_STRING(name)  #name
-
-
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_ncbi_priv_ */
-
-
diff --git a/libs/krypto/no-null-ncbi.aes-ni.pic.o.list b/libs/krypto/no-null-ncbi.aes-ni.pic.o.list
deleted file mode 100644
index 5e3ac1a..0000000
--- a/libs/krypto/no-null-ncbi.aes-ni.pic.o.list
+++ /dev/null
@@ -1,2539 +0,0 @@
-GAS LISTING /tmp/cc32muHp.s 			page 1
-
-
-   1              		.file	"no-null-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 CC000000 		.text
-   8      0200AA00 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.section	.rodata
-  11              		.align 8
-  12              	.LC0:
-  13 0000 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
-  13      652F726F 
-  13      6461726D 
-  13      65722F73 
-  13      72615F73 
-  14              		.text
-  15              	.globl KNullBlockCipherVecAesNiMake
-  16              		.type	KNullBlockCipherVecAesNiMake, @function
-  17              	KNullBlockCipherVecAesNiMake:
-  18              	.LFB15:
-  19              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include "ncbi-priv.h"
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include "cipher-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /* #include "blockcipher-priv.h" */
-
GAS LISTING /tmp/cc32muHp.s 			page 2
-
-
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include <klib/rc.h>
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /* ----------------------------------------------------------------------
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * Make
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * Create a new Null Block Cipher object.
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * The processor is checked to see if this particular version is supported on
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * this particular CPU.
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  */
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** struct KBlockCipher;
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** rc_t NULLBCMEMBER(Make) (struct KBlockCipher ** new_obj)
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** {
-  20              		.loc 1 43 0
-  21              		.cfi_startproc
-  22 0000 55       		pushq	%rbp
-  23              	.LCFI0:
-  24              		.cfi_def_cfa_offset 16
-  25 0001 4889E5   		movq	%rsp, %rbp
-  26              		.cfi_offset 6, -16
-  27              	.LCFI1:
-  28              		.cfi_def_cfa_register 6
-  29 0004 4883EC20 		subq	$32, %rsp
-  30 0008 48897DE8 		movq	%rdi, -24(%rbp)
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     rc_t rc;
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     /* Check parameter first */
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     if (new_obj == NULL)
-  31              		.loc 1 47 0
-  32 000c 48837DE8 		cmpq	$0, -24(%rbp)
-  32      00
-  33 0011 7522     		jne	.L2
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-  34              		.loc 1 48 0
-  35 0013 B9300000 		movl	$48, %ecx
-  35      00
-  36 0018 488D1500 		leaq	__func__.2445(%rip), %rdx
-  36      000000
-  37 001f 488D3500 		leaq	.LC0(%rip), %rsi
-  37      000000
-  38 0026 BF878F00 		movl	$-2030006393, %edi
-  38      87
-  39 002b E8000000 		call	SetRCFileFuncLine at PLT
-  39      00
-  40 0030 8945FC   		movl	%eax, -4(%rbp)
-  41 0033 EB2B     		jmp	.L3
-  42              	.L2:
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     else
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     {
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         *new_obj = NULL;
-  43              		.loc 1 52 0
-  44 0035 488B45E8 		movq	-24(%rbp), %rax
-  45 0039 48C70000 		movq	$0, (%rax)
-  45      000000
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
-
GAS LISTING /tmp/cc32muHp.s 			page 3
-
-
-  46              		.loc 1 54 0
-  47 0040 B9360000 		movl	$54, %ecx
-  47      00
-  48 0045 488D1500 		leaq	__func__.2445(%rip), %rdx
-  48      000000
-  49 004c 488D3500 		leaq	.LC0(%rip), %rsi
-  49      000000
-  50 0053 BF038500 		movl	$-2030009085, %edi
-  50      87
-  51 0058 E8000000 		call	SetRCFileFuncLine at PLT
-  51      00
-  52 005d 8945FC   		movl	%eax, -4(%rbp)
-  53              	.L3:
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     }
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     return rc;
-  54              		.loc 1 56 0
-  55 0060 8B45FC   		movl	-4(%rbp), %eax
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** }
-  56              		.loc 1 57 0
-  57 0063 C9       		leave
-  58 0064 C3       		ret
-  59              		.cfi_endproc
-  60              	.LFE15:
-  61              		.size	KNullBlockCipherVecAesNiMake, .-KNullBlockCipherVecAesNiMake
-  62              		.section	.rodata
-  63 003a 00000000 		.align 16
-  63      0000
-  64              		.type	__func__.2445, @object
-  65              		.size	__func__.2445, 29
-  66              	__func__.2445:
-  67 0040 4B4E756C 		.string	"KNullBlockCipherVecAesNiMake"
-  67      6C426C6F 
-  67      636B4369 
-  67      70686572 
-  67      56656341 
-  68 005d 000000   		.align 16
-  69              		.type	__PRETTY_FUNCTION__.2444, @object
-  70              		.size	__PRETTY_FUNCTION__.2444, 29
-  71              	__PRETTY_FUNCTION__.2444:
-  72 0060 4B4E756C 		.string	"KNullBlockCipherVecAesNiMake"
-  72      6C426C6F 
-  72      636B4369 
-  72      70686572 
-  72      56656341 
-  73              		.text
-  74              	.Letext0:
-  75              		.section	.debug_loc,"", at progbits
-  76              	.Ldebug_loc0:
-  77              	.LLST0:
-  78 0000 00000000 		.quad	.LFB15-.Ltext0
-  78      00000000 
-  79 0008 01000000 		.quad	.LCFI0-.Ltext0
-  79      00000000 
-  80 0010 0200     		.value	0x2
-  81 0012 77       		.byte	0x77
-  82 0013 08       		.sleb128 8
-  83 0014 01000000 		.quad	.LCFI0-.Ltext0
-
GAS LISTING /tmp/cc32muHp.s 			page 4
-
-
-  83      00000000 
-  84 001c 04000000 		.quad	.LCFI1-.Ltext0
-  84      00000000 
-  85 0024 0200     		.value	0x2
-  86 0026 77       		.byte	0x77
-  87 0027 10       		.sleb128 16
-  88 0028 04000000 		.quad	.LCFI1-.Ltext0
-  88      00000000 
-  89 0030 65000000 		.quad	.LFE15-.Ltext0
-  89      00000000 
-  90 0038 0200     		.value	0x2
-  91 003a 76       		.byte	0x76
-  92 003b 10       		.sleb128 16
-  93 003c 00000000 		.quad	0x0
-  93      00000000 
-  94 0044 00000000 		.quad	0x0
-  94      00000000 
-  95              		.file 2 "/usr/include/stdint.h"
-  96              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
-  97              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
-  98              		.section	.debug_info
-  99 0000 24070000 		.long	0x724
- 100 0004 0200     		.value	0x2
- 101 0006 00000000 		.long	.Ldebug_abbrev0
- 102 000a 08       		.byte	0x8
- 103 000b 01       		.uleb128 0x1
- 104 000c 00000000 		.long	.LASF258
- 105 0010 01       		.byte	0x1
- 106 0011 00000000 		.long	.LASF259
- 107 0015 00000000 		.long	.LASF260
- 108 0019 00000000 		.quad	.Ltext0
- 108      00000000 
- 109 0021 00000000 		.quad	.Letext0
- 109      00000000 
- 110 0029 00000000 		.long	.Ldebug_line0
- 111 002d 02       		.uleb128 0x2
- 112 002e 01       		.byte	0x1
- 113 002f 06       		.byte	0x6
- 114 0030 00000000 		.long	.LASF0
- 115 0034 02       		.uleb128 0x2
- 116 0035 02       		.byte	0x2
- 117 0036 05       		.byte	0x5
- 118 0037 00000000 		.long	.LASF1
- 119 003b 03       		.uleb128 0x3
- 120 003c 04       		.byte	0x4
- 121 003d 05       		.byte	0x5
- 122 003e 696E7400 		.string	"int"
- 123 0042 02       		.uleb128 0x2
- 124 0043 08       		.byte	0x8
- 125 0044 05       		.byte	0x5
- 126 0045 00000000 		.long	.LASF2
- 127 0049 02       		.uleb128 0x2
- 128 004a 01       		.byte	0x1
- 129 004b 08       		.byte	0x8
- 130 004c 00000000 		.long	.LASF3
- 131 0050 02       		.uleb128 0x2
- 132 0051 02       		.byte	0x2
-
GAS LISTING /tmp/cc32muHp.s 			page 5
-
-
- 133 0052 07       		.byte	0x7
- 134 0053 00000000 		.long	.LASF4
- 135 0057 04       		.uleb128 0x4
- 136 0058 00000000 		.long	.LASF7
- 137 005c 02       		.byte	0x2
- 138 005d 34       		.byte	0x34
- 139 005e 62000000 		.long	0x62
- 140 0062 02       		.uleb128 0x2
- 141 0063 04       		.byte	0x4
- 142 0064 07       		.byte	0x7
- 143 0065 00000000 		.long	.LASF5
- 144 0069 02       		.uleb128 0x2
- 145 006a 08       		.byte	0x8
- 146 006b 07       		.byte	0x7
- 147 006c 00000000 		.long	.LASF6
- 148 0070 04       		.uleb128 0x4
- 149 0071 00000000 		.long	.LASF8
- 150 0075 03       		.byte	0x3
- 151 0076 30       		.byte	0x30
- 152 0077 57000000 		.long	0x57
- 153 007b 05       		.uleb128 0x5
- 154 007c 08       		.byte	0x8
- 155 007d 07       		.byte	0x7
- 156 007e 02       		.uleb128 0x2
- 157 007f 01       		.byte	0x1
- 158 0080 06       		.byte	0x6
- 159 0081 00000000 		.long	.LASF9
- 160 0085 06       		.uleb128 0x6
- 161 0086 00000000 		.long	.LASF32
- 162 008a 04       		.byte	0x4
- 163 008b 04       		.byte	0x4
- 164 008c 5A       		.byte	0x5a
- 165 008d 16010000 		.long	0x116
- 166 0091 07       		.uleb128 0x7
- 167 0092 00000000 		.long	.LASF10
- 168 0096 00       		.sleb128 0
- 169 0097 07       		.uleb128 0x7
- 170 0098 00000000 		.long	.LASF11
- 171 009c 01       		.sleb128 1
- 172 009d 07       		.uleb128 0x7
- 173 009e 00000000 		.long	.LASF12
- 174 00a2 02       		.sleb128 2
- 175 00a3 07       		.uleb128 0x7
- 176 00a4 00000000 		.long	.LASF13
- 177 00a8 03       		.sleb128 3
- 178 00a9 07       		.uleb128 0x7
- 179 00aa 00000000 		.long	.LASF14
- 180 00ae 04       		.sleb128 4
- 181 00af 07       		.uleb128 0x7
- 182 00b0 00000000 		.long	.LASF15
- 183 00b4 05       		.sleb128 5
- 184 00b5 07       		.uleb128 0x7
- 185 00b6 00000000 		.long	.LASF16
- 186 00ba 06       		.sleb128 6
- 187 00bb 07       		.uleb128 0x7
- 188 00bc 00000000 		.long	.LASF17
- 189 00c0 07       		.sleb128 7
-
GAS LISTING /tmp/cc32muHp.s 			page 6
-
-
- 190 00c1 07       		.uleb128 0x7
- 191 00c2 00000000 		.long	.LASF18
- 192 00c6 08       		.sleb128 8
- 193 00c7 07       		.uleb128 0x7
- 194 00c8 00000000 		.long	.LASF19
- 195 00cc 09       		.sleb128 9
- 196 00cd 07       		.uleb128 0x7
- 197 00ce 00000000 		.long	.LASF20
- 198 00d2 0A       		.sleb128 10
- 199 00d3 07       		.uleb128 0x7
- 200 00d4 00000000 		.long	.LASF21
- 201 00d8 0B       		.sleb128 11
- 202 00d9 07       		.uleb128 0x7
- 203 00da 00000000 		.long	.LASF22
- 204 00de 0C       		.sleb128 12
- 205 00df 07       		.uleb128 0x7
- 206 00e0 00000000 		.long	.LASF23
- 207 00e4 0D       		.sleb128 13
- 208 00e5 07       		.uleb128 0x7
- 209 00e6 00000000 		.long	.LASF24
- 210 00ea 0E       		.sleb128 14
- 211 00eb 07       		.uleb128 0x7
- 212 00ec 00000000 		.long	.LASF25
- 213 00f0 0E       		.sleb128 14
- 214 00f1 07       		.uleb128 0x7
- 215 00f2 00000000 		.long	.LASF26
- 216 00f6 0F       		.sleb128 15
- 217 00f7 07       		.uleb128 0x7
- 218 00f8 00000000 		.long	.LASF27
- 219 00fc 10       		.sleb128 16
- 220 00fd 07       		.uleb128 0x7
- 221 00fe 00000000 		.long	.LASF28
- 222 0102 11       		.sleb128 17
- 223 0103 07       		.uleb128 0x7
- 224 0104 00000000 		.long	.LASF29
- 225 0108 12       		.sleb128 18
- 226 0109 07       		.uleb128 0x7
- 227 010a 00000000 		.long	.LASF30
- 228 010e 13       		.sleb128 19
- 229 010f 07       		.uleb128 0x7
- 230 0110 00000000 		.long	.LASF31
- 231 0114 14       		.sleb128 20
- 232 0115 00       		.byte	0x0
- 233 0116 06       		.uleb128 0x6
- 234 0117 00000000 		.long	.LASF33
- 235 011b 04       		.byte	0x4
- 236 011c 04       		.byte	0x4
- 237 011d 77       		.byte	0x77
- 238 011e 9D020000 		.long	0x29d
- 239 0122 07       		.uleb128 0x7
- 240 0123 00000000 		.long	.LASF34
- 241 0127 00       		.sleb128 0
- 242 0128 07       		.uleb128 0x7
- 243 0129 00000000 		.long	.LASF35
- 244 012d 01       		.sleb128 1
- 245 012e 07       		.uleb128 0x7
- 246 012f 00000000 		.long	.LASF36
-
GAS LISTING /tmp/cc32muHp.s 			page 7
-
-
- 247 0133 02       		.sleb128 2
- 248 0134 07       		.uleb128 0x7
- 249 0135 00000000 		.long	.LASF37
- 250 0139 03       		.sleb128 3
- 251 013a 07       		.uleb128 0x7
- 252 013b 00000000 		.long	.LASF38
- 253 013f 04       		.sleb128 4
- 254 0140 07       		.uleb128 0x7
- 255 0141 00000000 		.long	.LASF39
- 256 0145 05       		.sleb128 5
- 257 0146 07       		.uleb128 0x7
- 258 0147 00000000 		.long	.LASF40
- 259 014b 06       		.sleb128 6
- 260 014c 07       		.uleb128 0x7
- 261 014d 00000000 		.long	.LASF41
- 262 0151 07       		.sleb128 7
- 263 0152 07       		.uleb128 0x7
- 264 0153 00000000 		.long	.LASF42
- 265 0157 08       		.sleb128 8
- 266 0158 07       		.uleb128 0x7
- 267 0159 00000000 		.long	.LASF43
- 268 015d 09       		.sleb128 9
- 269 015e 07       		.uleb128 0x7
- 270 015f 00000000 		.long	.LASF44
- 271 0163 0A       		.sleb128 10
- 272 0164 07       		.uleb128 0x7
- 273 0165 00000000 		.long	.LASF45
- 274 0169 0B       		.sleb128 11
- 275 016a 07       		.uleb128 0x7
- 276 016b 00000000 		.long	.LASF46
- 277 016f 0C       		.sleb128 12
- 278 0170 07       		.uleb128 0x7
- 279 0171 00000000 		.long	.LASF47
- 280 0175 0D       		.sleb128 13
- 281 0176 07       		.uleb128 0x7
- 282 0177 00000000 		.long	.LASF48
- 283 017b 0E       		.sleb128 14
- 284 017c 07       		.uleb128 0x7
- 285 017d 00000000 		.long	.LASF49
- 286 0181 0F       		.sleb128 15
- 287 0182 07       		.uleb128 0x7
- 288 0183 00000000 		.long	.LASF50
- 289 0187 10       		.sleb128 16
- 290 0188 07       		.uleb128 0x7
- 291 0189 00000000 		.long	.LASF51
- 292 018d 11       		.sleb128 17
- 293 018e 07       		.uleb128 0x7
- 294 018f 00000000 		.long	.LASF52
- 295 0193 12       		.sleb128 18
- 296 0194 07       		.uleb128 0x7
- 297 0195 00000000 		.long	.LASF53
- 298 0199 13       		.sleb128 19
- 299 019a 07       		.uleb128 0x7
- 300 019b 00000000 		.long	.LASF54
- 301 019f 14       		.sleb128 20
- 302 01a0 07       		.uleb128 0x7
- 303 01a1 00000000 		.long	.LASF55
-
GAS LISTING /tmp/cc32muHp.s 			page 8
-
-
- 304 01a5 15       		.sleb128 21
- 305 01a6 07       		.uleb128 0x7
- 306 01a7 00000000 		.long	.LASF56
- 307 01ab 16       		.sleb128 22
- 308 01ac 07       		.uleb128 0x7
- 309 01ad 00000000 		.long	.LASF57
- 310 01b1 17       		.sleb128 23
- 311 01b2 07       		.uleb128 0x7
- 312 01b3 00000000 		.long	.LASF58
- 313 01b7 18       		.sleb128 24
- 314 01b8 07       		.uleb128 0x7
- 315 01b9 00000000 		.long	.LASF59
- 316 01bd 19       		.sleb128 25
- 317 01be 07       		.uleb128 0x7
- 318 01bf 00000000 		.long	.LASF60
- 319 01c3 1A       		.sleb128 26
- 320 01c4 07       		.uleb128 0x7
- 321 01c5 00000000 		.long	.LASF61
- 322 01c9 1B       		.sleb128 27
- 323 01ca 07       		.uleb128 0x7
- 324 01cb 00000000 		.long	.LASF62
- 325 01cf 1C       		.sleb128 28
- 326 01d0 07       		.uleb128 0x7
- 327 01d1 00000000 		.long	.LASF63
- 328 01d5 1D       		.sleb128 29
- 329 01d6 07       		.uleb128 0x7
- 330 01d7 00000000 		.long	.LASF64
- 331 01db 1E       		.sleb128 30
- 332 01dc 07       		.uleb128 0x7
- 333 01dd 00000000 		.long	.LASF65
- 334 01e1 1F       		.sleb128 31
- 335 01e2 07       		.uleb128 0x7
- 336 01e3 00000000 		.long	.LASF66
- 337 01e7 20       		.sleb128 32
- 338 01e8 07       		.uleb128 0x7
- 339 01e9 00000000 		.long	.LASF67
- 340 01ed 21       		.sleb128 33
- 341 01ee 07       		.uleb128 0x7
- 342 01ef 00000000 		.long	.LASF68
- 343 01f3 22       		.sleb128 34
- 344 01f4 07       		.uleb128 0x7
- 345 01f5 00000000 		.long	.LASF69
- 346 01f9 23       		.sleb128 35
- 347 01fa 07       		.uleb128 0x7
- 348 01fb 00000000 		.long	.LASF70
- 349 01ff 24       		.sleb128 36
- 350 0200 07       		.uleb128 0x7
- 351 0201 00000000 		.long	.LASF71
- 352 0205 25       		.sleb128 37
- 353 0206 07       		.uleb128 0x7
- 354 0207 00000000 		.long	.LASF72
- 355 020b 26       		.sleb128 38
- 356 020c 07       		.uleb128 0x7
- 357 020d 00000000 		.long	.LASF73
- 358 0211 27       		.sleb128 39
- 359 0212 07       		.uleb128 0x7
- 360 0213 00000000 		.long	.LASF74
-
GAS LISTING /tmp/cc32muHp.s 			page 9
-
-
- 361 0217 28       		.sleb128 40
- 362 0218 07       		.uleb128 0x7
- 363 0219 00000000 		.long	.LASF75
- 364 021d 29       		.sleb128 41
- 365 021e 07       		.uleb128 0x7
- 366 021f 00000000 		.long	.LASF76
- 367 0223 2A       		.sleb128 42
- 368 0224 07       		.uleb128 0x7
- 369 0225 00000000 		.long	.LASF77
- 370 0229 2B       		.sleb128 43
- 371 022a 07       		.uleb128 0x7
- 372 022b 00000000 		.long	.LASF78
- 373 022f 2C       		.sleb128 44
- 374 0230 07       		.uleb128 0x7
- 375 0231 00000000 		.long	.LASF79
- 376 0235 2D       		.sleb128 45
- 377 0236 07       		.uleb128 0x7
- 378 0237 00000000 		.long	.LASF80
- 379 023b 2E       		.sleb128 46
- 380 023c 07       		.uleb128 0x7
- 381 023d 00000000 		.long	.LASF81
- 382 0241 2F       		.sleb128 47
- 383 0242 07       		.uleb128 0x7
- 384 0243 00000000 		.long	.LASF82
- 385 0247 30       		.sleb128 48
- 386 0248 07       		.uleb128 0x7
- 387 0249 00000000 		.long	.LASF83
- 388 024d 31       		.sleb128 49
- 389 024e 07       		.uleb128 0x7
- 390 024f 00000000 		.long	.LASF84
- 391 0253 32       		.sleb128 50
- 392 0254 07       		.uleb128 0x7
- 393 0255 00000000 		.long	.LASF85
- 394 0259 33       		.sleb128 51
- 395 025a 07       		.uleb128 0x7
- 396 025b 00000000 		.long	.LASF86
- 397 025f 34       		.sleb128 52
- 398 0260 07       		.uleb128 0x7
- 399 0261 00000000 		.long	.LASF87
- 400 0265 35       		.sleb128 53
- 401 0266 07       		.uleb128 0x7
- 402 0267 00000000 		.long	.LASF88
- 403 026b 36       		.sleb128 54
- 404 026c 07       		.uleb128 0x7
- 405 026d 00000000 		.long	.LASF89
- 406 0271 36       		.sleb128 54
- 407 0272 07       		.uleb128 0x7
- 408 0273 00000000 		.long	.LASF90
- 409 0277 37       		.sleb128 55
- 410 0278 07       		.uleb128 0x7
- 411 0279 00000000 		.long	.LASF91
- 412 027d 38       		.sleb128 56
- 413 027e 07       		.uleb128 0x7
- 414 027f 00000000 		.long	.LASF92
- 415 0283 39       		.sleb128 57
- 416 0284 07       		.uleb128 0x7
- 417 0285 00000000 		.long	.LASF93
-
GAS LISTING /tmp/cc32muHp.s 			page 10
-
-
- 418 0289 3A       		.sleb128 58
- 419 028a 07       		.uleb128 0x7
- 420 028b 00000000 		.long	.LASF94
- 421 028f 3B       		.sleb128 59
- 422 0290 07       		.uleb128 0x7
- 423 0291 00000000 		.long	.LASF95
- 424 0295 3C       		.sleb128 60
- 425 0296 07       		.uleb128 0x7
- 426 0297 00000000 		.long	.LASF96
- 427 029b 3D       		.sleb128 61
- 428 029c 00       		.byte	0x0
- 429 029d 06       		.uleb128 0x6
- 430 029e 00000000 		.long	.LASF97
- 431 02a2 04       		.byte	0x4
- 432 02a3 04       		.byte	0x4
- 433 02a4 BD       		.byte	0xbd
- 434 02a5 53040000 		.long	0x453
- 435 02a9 07       		.uleb128 0x7
- 436 02aa 00000000 		.long	.LASF98
- 437 02ae 00       		.sleb128 0
- 438 02af 07       		.uleb128 0x7
- 439 02b0 00000000 		.long	.LASF99
- 440 02b4 01       		.sleb128 1
- 441 02b5 07       		.uleb128 0x7
- 442 02b6 00000000 		.long	.LASF100
- 443 02ba 02       		.sleb128 2
- 444 02bb 07       		.uleb128 0x7
- 445 02bc 00000000 		.long	.LASF101
- 446 02c0 03       		.sleb128 3
- 447 02c1 07       		.uleb128 0x7
- 448 02c2 00000000 		.long	.LASF102
- 449 02c6 04       		.sleb128 4
- 450 02c7 07       		.uleb128 0x7
- 451 02c8 00000000 		.long	.LASF103
- 452 02cc 05       		.sleb128 5
- 453 02cd 07       		.uleb128 0x7
- 454 02ce 00000000 		.long	.LASF104
- 455 02d2 06       		.sleb128 6
- 456 02d3 07       		.uleb128 0x7
- 457 02d4 00000000 		.long	.LASF105
- 458 02d8 07       		.sleb128 7
- 459 02d9 07       		.uleb128 0x7
- 460 02da 00000000 		.long	.LASF106
- 461 02de 08       		.sleb128 8
- 462 02df 07       		.uleb128 0x7
- 463 02e0 00000000 		.long	.LASF107
- 464 02e4 09       		.sleb128 9
- 465 02e5 07       		.uleb128 0x7
- 466 02e6 00000000 		.long	.LASF108
- 467 02ea 0A       		.sleb128 10
- 468 02eb 07       		.uleb128 0x7
- 469 02ec 00000000 		.long	.LASF109
- 470 02f0 0B       		.sleb128 11
- 471 02f1 07       		.uleb128 0x7
- 472 02f2 00000000 		.long	.LASF110
- 473 02f6 0C       		.sleb128 12
- 474 02f7 07       		.uleb128 0x7
-
GAS LISTING /tmp/cc32muHp.s 			page 11
-
-
- 475 02f8 00000000 		.long	.LASF111
- 476 02fc 0D       		.sleb128 13
- 477 02fd 07       		.uleb128 0x7
- 478 02fe 00000000 		.long	.LASF112
- 479 0302 0E       		.sleb128 14
- 480 0303 07       		.uleb128 0x7
- 481 0304 00000000 		.long	.LASF113
- 482 0308 0F       		.sleb128 15
- 483 0309 07       		.uleb128 0x7
- 484 030a 00000000 		.long	.LASF114
- 485 030e 10       		.sleb128 16
- 486 030f 07       		.uleb128 0x7
- 487 0310 00000000 		.long	.LASF115
- 488 0314 11       		.sleb128 17
- 489 0315 07       		.uleb128 0x7
- 490 0316 00000000 		.long	.LASF116
- 491 031a 12       		.sleb128 18
- 492 031b 07       		.uleb128 0x7
- 493 031c 00000000 		.long	.LASF117
- 494 0320 13       		.sleb128 19
- 495 0321 07       		.uleb128 0x7
- 496 0322 00000000 		.long	.LASF118
- 497 0326 14       		.sleb128 20
- 498 0327 07       		.uleb128 0x7
- 499 0328 00000000 		.long	.LASF119
- 500 032c 15       		.sleb128 21
- 501 032d 07       		.uleb128 0x7
- 502 032e 00000000 		.long	.LASF120
- 503 0332 16       		.sleb128 22
- 504 0333 07       		.uleb128 0x7
- 505 0334 00000000 		.long	.LASF121
- 506 0338 17       		.sleb128 23
- 507 0339 07       		.uleb128 0x7
- 508 033a 00000000 		.long	.LASF122
- 509 033e 18       		.sleb128 24
- 510 033f 07       		.uleb128 0x7
- 511 0340 00000000 		.long	.LASF123
- 512 0344 19       		.sleb128 25
- 513 0345 07       		.uleb128 0x7
- 514 0346 00000000 		.long	.LASF124
- 515 034a 1A       		.sleb128 26
- 516 034b 07       		.uleb128 0x7
- 517 034c 00000000 		.long	.LASF125
- 518 0350 1B       		.sleb128 27
- 519 0351 07       		.uleb128 0x7
- 520 0352 00000000 		.long	.LASF126
- 521 0356 1C       		.sleb128 28
- 522 0357 07       		.uleb128 0x7
- 523 0358 00000000 		.long	.LASF127
- 524 035c 1D       		.sleb128 29
- 525 035d 07       		.uleb128 0x7
- 526 035e 00000000 		.long	.LASF128
- 527 0362 1E       		.sleb128 30
- 528 0363 07       		.uleb128 0x7
- 529 0364 00000000 		.long	.LASF129
- 530 0368 1F       		.sleb128 31
- 531 0369 07       		.uleb128 0x7
-
GAS LISTING /tmp/cc32muHp.s 			page 12
-
-
- 532 036a 00000000 		.long	.LASF130
- 533 036e 20       		.sleb128 32
- 534 036f 07       		.uleb128 0x7
- 535 0370 00000000 		.long	.LASF131
- 536 0374 21       		.sleb128 33
- 537 0375 07       		.uleb128 0x7
- 538 0376 00000000 		.long	.LASF132
- 539 037a 22       		.sleb128 34
- 540 037b 07       		.uleb128 0x7
- 541 037c 00000000 		.long	.LASF133
- 542 0380 23       		.sleb128 35
- 543 0381 07       		.uleb128 0x7
- 544 0382 00000000 		.long	.LASF134
- 545 0386 24       		.sleb128 36
- 546 0387 07       		.uleb128 0x7
- 547 0388 00000000 		.long	.LASF135
- 548 038c 25       		.sleb128 37
- 549 038d 07       		.uleb128 0x7
- 550 038e 00000000 		.long	.LASF136
- 551 0392 26       		.sleb128 38
- 552 0393 07       		.uleb128 0x7
- 553 0394 00000000 		.long	.LASF137
- 554 0398 27       		.sleb128 39
- 555 0399 07       		.uleb128 0x7
- 556 039a 00000000 		.long	.LASF138
- 557 039e 28       		.sleb128 40
- 558 039f 07       		.uleb128 0x7
- 559 03a0 00000000 		.long	.LASF139
- 560 03a4 29       		.sleb128 41
- 561 03a5 07       		.uleb128 0x7
- 562 03a6 00000000 		.long	.LASF140
- 563 03aa 2A       		.sleb128 42
- 564 03ab 07       		.uleb128 0x7
- 565 03ac 00000000 		.long	.LASF141
- 566 03b0 2B       		.sleb128 43
- 567 03b1 07       		.uleb128 0x7
- 568 03b2 00000000 		.long	.LASF142
- 569 03b6 2C       		.sleb128 44
- 570 03b7 07       		.uleb128 0x7
- 571 03b8 00000000 		.long	.LASF143
- 572 03bc 2D       		.sleb128 45
- 573 03bd 07       		.uleb128 0x7
- 574 03be 00000000 		.long	.LASF144
- 575 03c2 2E       		.sleb128 46
- 576 03c3 07       		.uleb128 0x7
- 577 03c4 00000000 		.long	.LASF145
- 578 03c8 2F       		.sleb128 47
- 579 03c9 07       		.uleb128 0x7
- 580 03ca 00000000 		.long	.LASF146
- 581 03ce 30       		.sleb128 48
- 582 03cf 07       		.uleb128 0x7
- 583 03d0 00000000 		.long	.LASF147
- 584 03d4 31       		.sleb128 49
- 585 03d5 07       		.uleb128 0x7
- 586 03d6 00000000 		.long	.LASF148
- 587 03da 32       		.sleb128 50
- 588 03db 07       		.uleb128 0x7
-
GAS LISTING /tmp/cc32muHp.s 			page 13
-
-
- 589 03dc 00000000 		.long	.LASF149
- 590 03e0 33       		.sleb128 51
- 591 03e1 07       		.uleb128 0x7
- 592 03e2 00000000 		.long	.LASF150
- 593 03e6 34       		.sleb128 52
- 594 03e7 07       		.uleb128 0x7
- 595 03e8 00000000 		.long	.LASF151
- 596 03ec 35       		.sleb128 53
- 597 03ed 07       		.uleb128 0x7
- 598 03ee 00000000 		.long	.LASF152
- 599 03f2 36       		.sleb128 54
- 600 03f3 07       		.uleb128 0x7
- 601 03f4 00000000 		.long	.LASF153
- 602 03f8 37       		.sleb128 55
- 603 03f9 07       		.uleb128 0x7
- 604 03fa 00000000 		.long	.LASF154
- 605 03fe 38       		.sleb128 56
- 606 03ff 07       		.uleb128 0x7
- 607 0400 00000000 		.long	.LASF155
- 608 0404 39       		.sleb128 57
- 609 0405 07       		.uleb128 0x7
- 610 0406 00000000 		.long	.LASF156
- 611 040a 3A       		.sleb128 58
- 612 040b 07       		.uleb128 0x7
- 613 040c 00000000 		.long	.LASF157
- 614 0410 3A       		.sleb128 58
- 615 0411 07       		.uleb128 0x7
- 616 0412 00000000 		.long	.LASF158
- 617 0416 3B       		.sleb128 59
- 618 0417 07       		.uleb128 0x7
- 619 0418 00000000 		.long	.LASF159
- 620 041c 3C       		.sleb128 60
- 621 041d 07       		.uleb128 0x7
- 622 041e 00000000 		.long	.LASF160
- 623 0422 3D       		.sleb128 61
- 624 0423 07       		.uleb128 0x7
- 625 0424 00000000 		.long	.LASF161
- 626 0428 3E       		.sleb128 62
- 627 0429 07       		.uleb128 0x7
- 628 042a 00000000 		.long	.LASF162
- 629 042e 3F       		.sleb128 63
- 630 042f 07       		.uleb128 0x7
- 631 0430 00000000 		.long	.LASF163
- 632 0434 C000     		.sleb128 64
- 633 0436 07       		.uleb128 0x7
- 634 0437 00000000 		.long	.LASF164
- 635 043b C100     		.sleb128 65
- 636 043d 07       		.uleb128 0x7
- 637 043e 00000000 		.long	.LASF165
- 638 0442 C200     		.sleb128 66
- 639 0444 07       		.uleb128 0x7
- 640 0445 00000000 		.long	.LASF166
- 641 0449 C300     		.sleb128 67
- 642 044b 07       		.uleb128 0x7
- 643 044c 00000000 		.long	.LASF167
- 644 0450 C400     		.sleb128 68
- 645 0452 00       		.byte	0x0
-
GAS LISTING /tmp/cc32muHp.s 			page 14
-
-
- 646 0453 08       		.uleb128 0x8
- 647 0454 00000000 		.long	.LASF168
- 648 0458 04       		.byte	0x4
- 649 0459 04       		.byte	0x4
- 650 045a 0A01     		.value	0x10a
- 651 045c 52050000 		.long	0x552
- 652 0460 07       		.uleb128 0x7
- 653 0461 00000000 		.long	.LASF169
- 654 0465 00       		.sleb128 0
- 655 0466 07       		.uleb128 0x7
- 656 0467 00000000 		.long	.LASF170
- 657 046b 3D       		.sleb128 61
- 658 046c 07       		.uleb128 0x7
- 659 046d 00000000 		.long	.LASF171
- 660 0471 3E       		.sleb128 62
- 661 0472 07       		.uleb128 0x7
- 662 0473 00000000 		.long	.LASF172
- 663 0477 3F       		.sleb128 63
- 664 0478 07       		.uleb128 0x7
- 665 0479 00000000 		.long	.LASF173
- 666 047d C000     		.sleb128 64
- 667 047f 07       		.uleb128 0x7
- 668 0480 00000000 		.long	.LASF174
- 669 0484 C100     		.sleb128 65
- 670 0486 07       		.uleb128 0x7
- 671 0487 00000000 		.long	.LASF175
- 672 048b C200     		.sleb128 66
- 673 048d 07       		.uleb128 0x7
- 674 048e 00000000 		.long	.LASF176
- 675 0492 C300     		.sleb128 67
- 676 0494 07       		.uleb128 0x7
- 677 0495 00000000 		.long	.LASF177
- 678 0499 C400     		.sleb128 68
- 679 049b 07       		.uleb128 0x7
- 680 049c 00000000 		.long	.LASF178
- 681 04a0 C500     		.sleb128 69
- 682 04a2 07       		.uleb128 0x7
- 683 04a3 00000000 		.long	.LASF179
- 684 04a7 C600     		.sleb128 70
- 685 04a9 07       		.uleb128 0x7
- 686 04aa 00000000 		.long	.LASF180
- 687 04ae C700     		.sleb128 71
- 688 04b0 07       		.uleb128 0x7
- 689 04b1 00000000 		.long	.LASF181
- 690 04b5 C800     		.sleb128 72
- 691 04b7 07       		.uleb128 0x7
- 692 04b8 00000000 		.long	.LASF182
- 693 04bc C900     		.sleb128 73
- 694 04be 07       		.uleb128 0x7
- 695 04bf 00000000 		.long	.LASF183
- 696 04c3 CA00     		.sleb128 74
- 697 04c5 07       		.uleb128 0x7
- 698 04c6 00000000 		.long	.LASF184
- 699 04ca CB00     		.sleb128 75
- 700 04cc 07       		.uleb128 0x7
- 701 04cd 00000000 		.long	.LASF185
- 702 04d1 CC00     		.sleb128 76
-
GAS LISTING /tmp/cc32muHp.s 			page 15
-
-
- 703 04d3 07       		.uleb128 0x7
- 704 04d4 00000000 		.long	.LASF186
- 705 04d8 CD00     		.sleb128 77
- 706 04da 07       		.uleb128 0x7
- 707 04db 00000000 		.long	.LASF187
- 708 04df CE00     		.sleb128 78
- 709 04e1 07       		.uleb128 0x7
- 710 04e2 00000000 		.long	.LASF188
- 711 04e6 CF00     		.sleb128 79
- 712 04e8 07       		.uleb128 0x7
- 713 04e9 00000000 		.long	.LASF189
- 714 04ed D000     		.sleb128 80
- 715 04ef 07       		.uleb128 0x7
- 716 04f0 00000000 		.long	.LASF190
- 717 04f4 D100     		.sleb128 81
- 718 04f6 07       		.uleb128 0x7
- 719 04f7 00000000 		.long	.LASF191
- 720 04fb D100     		.sleb128 81
- 721 04fd 07       		.uleb128 0x7
- 722 04fe 00000000 		.long	.LASF192
- 723 0502 D200     		.sleb128 82
- 724 0504 07       		.uleb128 0x7
- 725 0505 00000000 		.long	.LASF193
- 726 0509 D300     		.sleb128 83
- 727 050b 07       		.uleb128 0x7
- 728 050c 00000000 		.long	.LASF194
- 729 0510 D400     		.sleb128 84
- 730 0512 07       		.uleb128 0x7
- 731 0513 00000000 		.long	.LASF195
- 732 0517 D500     		.sleb128 85
- 733 0519 07       		.uleb128 0x7
- 734 051a 00000000 		.long	.LASF196
- 735 051e D600     		.sleb128 86
- 736 0520 07       		.uleb128 0x7
- 737 0521 00000000 		.long	.LASF197
- 738 0525 D700     		.sleb128 87
- 739 0527 07       		.uleb128 0x7
- 740 0528 00000000 		.long	.LASF198
- 741 052c D800     		.sleb128 88
- 742 052e 07       		.uleb128 0x7
- 743 052f 00000000 		.long	.LASF199
- 744 0533 D900     		.sleb128 89
- 745 0535 07       		.uleb128 0x7
- 746 0536 00000000 		.long	.LASF200
- 747 053a DA00     		.sleb128 90
- 748 053c 07       		.uleb128 0x7
- 749 053d 00000000 		.long	.LASF201
- 750 0541 DB00     		.sleb128 91
- 751 0543 07       		.uleb128 0x7
- 752 0544 00000000 		.long	.LASF202
- 753 0548 DC00     		.sleb128 92
- 754 054a 07       		.uleb128 0x7
- 755 054b 00000000 		.long	.LASF203
- 756 054f DD00     		.sleb128 93
- 757 0551 00       		.byte	0x0
- 758 0552 08       		.uleb128 0x8
- 759 0553 00000000 		.long	.LASF204
-
GAS LISTING /tmp/cc32muHp.s 			page 16
-
-
- 760 0557 04       		.byte	0x4
- 761 0558 04       		.byte	0x4
- 762 0559 3401     		.value	0x134
- 763 055b 92060000 		.long	0x692
- 764 055f 07       		.uleb128 0x7
- 765 0560 00000000 		.long	.LASF205
- 766 0564 00       		.sleb128 0
- 767 0565 07       		.uleb128 0x7
- 768 0566 00000000 		.long	.LASF206
- 769 056a 01       		.sleb128 1
- 770 056b 07       		.uleb128 0x7
- 771 056c 00000000 		.long	.LASF207
- 772 0570 02       		.sleb128 2
- 773 0571 07       		.uleb128 0x7
- 774 0572 00000000 		.long	.LASF208
- 775 0576 03       		.sleb128 3
- 776 0577 07       		.uleb128 0x7
- 777 0578 00000000 		.long	.LASF209
- 778 057c 04       		.sleb128 4
- 779 057d 07       		.uleb128 0x7
- 780 057e 00000000 		.long	.LASF210
- 781 0582 05       		.sleb128 5
- 782 0583 07       		.uleb128 0x7
- 783 0584 00000000 		.long	.LASF211
- 784 0588 06       		.sleb128 6
- 785 0589 07       		.uleb128 0x7
- 786 058a 00000000 		.long	.LASF212
- 787 058e 07       		.sleb128 7
- 788 058f 07       		.uleb128 0x7
- 789 0590 00000000 		.long	.LASF213
- 790 0594 08       		.sleb128 8
- 791 0595 07       		.uleb128 0x7
- 792 0596 00000000 		.long	.LASF214
- 793 059a 09       		.sleb128 9
- 794 059b 07       		.uleb128 0x7
- 795 059c 00000000 		.long	.LASF215
- 796 05a0 0A       		.sleb128 10
- 797 05a1 07       		.uleb128 0x7
- 798 05a2 00000000 		.long	.LASF216
- 799 05a6 0B       		.sleb128 11
- 800 05a7 07       		.uleb128 0x7
- 801 05a8 00000000 		.long	.LASF217
- 802 05ac 0C       		.sleb128 12
- 803 05ad 07       		.uleb128 0x7
- 804 05ae 00000000 		.long	.LASF218
- 805 05b2 0D       		.sleb128 13
- 806 05b3 07       		.uleb128 0x7
- 807 05b4 00000000 		.long	.LASF219
- 808 05b8 0E       		.sleb128 14
- 809 05b9 07       		.uleb128 0x7
- 810 05ba 00000000 		.long	.LASF220
- 811 05be 0F       		.sleb128 15
- 812 05bf 07       		.uleb128 0x7
- 813 05c0 00000000 		.long	.LASF221
- 814 05c4 10       		.sleb128 16
- 815 05c5 07       		.uleb128 0x7
- 816 05c6 00000000 		.long	.LASF222
-
GAS LISTING /tmp/cc32muHp.s 			page 17
-
-
- 817 05ca 11       		.sleb128 17
- 818 05cb 07       		.uleb128 0x7
- 819 05cc 00000000 		.long	.LASF223
- 820 05d0 12       		.sleb128 18
- 821 05d1 07       		.uleb128 0x7
- 822 05d2 00000000 		.long	.LASF224
- 823 05d6 13       		.sleb128 19
- 824 05d7 07       		.uleb128 0x7
- 825 05d8 00000000 		.long	.LASF225
- 826 05dc 14       		.sleb128 20
- 827 05dd 07       		.uleb128 0x7
- 828 05de 00000000 		.long	.LASF226
- 829 05e2 15       		.sleb128 21
- 830 05e3 07       		.uleb128 0x7
- 831 05e4 00000000 		.long	.LASF227
- 832 05e8 16       		.sleb128 22
- 833 05e9 07       		.uleb128 0x7
- 834 05ea 00000000 		.long	.LASF228
- 835 05ee 17       		.sleb128 23
- 836 05ef 07       		.uleb128 0x7
- 837 05f0 00000000 		.long	.LASF229
- 838 05f4 18       		.sleb128 24
- 839 05f5 07       		.uleb128 0x7
- 840 05f6 00000000 		.long	.LASF230
- 841 05fa 19       		.sleb128 25
- 842 05fb 07       		.uleb128 0x7
- 843 05fc 00000000 		.long	.LASF231
- 844 0600 1A       		.sleb128 26
- 845 0601 07       		.uleb128 0x7
- 846 0602 00000000 		.long	.LASF232
- 847 0606 1B       		.sleb128 27
- 848 0607 07       		.uleb128 0x7
- 849 0608 00000000 		.long	.LASF233
- 850 060c 1C       		.sleb128 28
- 851 060d 07       		.uleb128 0x7
- 852 060e 00000000 		.long	.LASF234
- 853 0612 1D       		.sleb128 29
- 854 0613 07       		.uleb128 0x7
- 855 0614 00000000 		.long	.LASF235
- 856 0618 1E       		.sleb128 30
- 857 0619 07       		.uleb128 0x7
- 858 061a 00000000 		.long	.LASF236
- 859 061e 1F       		.sleb128 31
- 860 061f 07       		.uleb128 0x7
- 861 0620 00000000 		.long	.LASF237
- 862 0624 20       		.sleb128 32
- 863 0625 07       		.uleb128 0x7
- 864 0626 00000000 		.long	.LASF238
- 865 062a 21       		.sleb128 33
- 866 062b 07       		.uleb128 0x7
- 867 062c 00000000 		.long	.LASF239
- 868 0630 22       		.sleb128 34
- 869 0631 07       		.uleb128 0x7
- 870 0632 00000000 		.long	.LASF240
- 871 0636 23       		.sleb128 35
- 872 0637 07       		.uleb128 0x7
- 873 0638 00000000 		.long	.LASF241
-
GAS LISTING /tmp/cc32muHp.s 			page 18
-
-
- 874 063c 24       		.sleb128 36
- 875 063d 07       		.uleb128 0x7
- 876 063e 00000000 		.long	.LASF242
- 877 0642 25       		.sleb128 37
- 878 0643 07       		.uleb128 0x7
- 879 0644 00000000 		.long	.LASF243
- 880 0648 26       		.sleb128 38
- 881 0649 07       		.uleb128 0x7
- 882 064a 00000000 		.long	.LASF244
- 883 064e 27       		.sleb128 39
- 884 064f 07       		.uleb128 0x7
- 885 0650 00000000 		.long	.LASF245
- 886 0654 28       		.sleb128 40
- 887 0655 07       		.uleb128 0x7
- 888 0656 00000000 		.long	.LASF246
- 889 065a 29       		.sleb128 41
- 890 065b 07       		.uleb128 0x7
- 891 065c 00000000 		.long	.LASF247
- 892 0660 29       		.sleb128 41
- 893 0661 07       		.uleb128 0x7
- 894 0662 00000000 		.long	.LASF248
- 895 0666 2A       		.sleb128 42
- 896 0667 07       		.uleb128 0x7
- 897 0668 00000000 		.long	.LASF249
- 898 066c 2B       		.sleb128 43
- 899 066d 07       		.uleb128 0x7
- 900 066e 00000000 		.long	.LASF250
- 901 0672 2C       		.sleb128 44
- 902 0673 07       		.uleb128 0x7
- 903 0674 00000000 		.long	.LASF251
- 904 0678 2D       		.sleb128 45
- 905 0679 07       		.uleb128 0x7
- 906 067a 00000000 		.long	.LASF252
- 907 067e 2E       		.sleb128 46
- 908 067f 07       		.uleb128 0x7
- 909 0680 00000000 		.long	.LASF253
- 910 0684 2F       		.sleb128 47
- 911 0685 07       		.uleb128 0x7
- 912 0686 00000000 		.long	.LASF254
- 913 068a 30       		.sleb128 48
- 914 068b 07       		.uleb128 0x7
- 915 068c 00000000 		.long	.LASF255
- 916 0690 31       		.sleb128 49
- 917 0691 00       		.byte	0x0
- 918 0692 09       		.uleb128 0x9
- 919 0693 01       		.byte	0x1
- 920 0694 00000000 		.long	.LASF261
- 921 0698 01       		.byte	0x1
- 922 0699 2A       		.byte	0x2a
- 923 069a 01       		.byte	0x1
- 924 069b 70000000 		.long	0x70
- 925 069f 00000000 		.quad	.LFB15
- 925      00000000 
- 926 06a7 00000000 		.quad	.LFE15
- 926      00000000 
- 927 06af 00000000 		.long	.LLST0
- 928 06b3 01070000 		.long	0x701
-
GAS LISTING /tmp/cc32muHp.s 			page 19
-
-
- 929 06b7 0A       		.uleb128 0xa
- 930 06b8 00000000 		.long	.LASF262
- 931 06bc 01       		.byte	0x1
- 932 06bd 0B       		.uleb128 0xb
- 933 06be 00000000 		.long	.LASF263
- 934 06c2 01       		.byte	0x1
- 935 06c3 2A       		.byte	0x2a
- 936 06c4 01070000 		.long	0x701
- 937 06c8 02       		.byte	0x2
- 938 06c9 91       		.byte	0x91
- 939 06ca 58       		.sleb128 -40
- 940 06cb 0C       		.uleb128 0xc
- 941 06cc 726300   		.string	"rc"
- 942 06cf 01       		.byte	0x1
- 943 06d0 2C       		.byte	0x2c
- 944 06d1 70000000 		.long	0x70
- 945 06d5 02       		.byte	0x2
- 946 06d6 91       		.byte	0x91
- 947 06d7 6C       		.sleb128 -20
- 948 06d8 0D       		.uleb128 0xd
- 949 06d9 00000000 		.long	.LASF256
- 950 06dd 1D070000 		.long	0x71d
- 951 06e1 01       		.byte	0x1
- 952 06e2 09       		.byte	0x9
- 953 06e3 03       		.byte	0x3
- 954 06e4 00000000 		.quad	__PRETTY_FUNCTION__.2444
- 954      00000000 
- 955 06ec 0D       		.uleb128 0xd
- 956 06ed 00000000 		.long	.LASF257
- 957 06f1 22070000 		.long	0x722
- 958 06f5 01       		.byte	0x1
- 959 06f6 09       		.byte	0x9
- 960 06f7 03       		.byte	0x3
- 961 06f8 00000000 		.quad	__func__.2445
- 961      00000000 
- 962 0700 00       		.byte	0x0
- 963 0701 0E       		.uleb128 0xe
- 964 0702 08       		.byte	0x8
- 965 0703 07070000 		.long	0x707
- 966 0707 0E       		.uleb128 0xe
- 967 0708 08       		.byte	0x8
- 968 0709 B7060000 		.long	0x6b7
- 969 070d 0F       		.uleb128 0xf
- 970 070e 7E000000 		.long	0x7e
- 971 0712 1D070000 		.long	0x71d
- 972 0716 10       		.uleb128 0x10
- 973 0717 7B000000 		.long	0x7b
- 974 071b 1C       		.byte	0x1c
- 975 071c 00       		.byte	0x0
- 976 071d 11       		.uleb128 0x11
- 977 071e 0D070000 		.long	0x70d
- 978 0722 11       		.uleb128 0x11
- 979 0723 0D070000 		.long	0x70d
- 980 0727 00       		.byte	0x0
- 981              		.section	.debug_abbrev
- 982 0000 01       		.uleb128 0x1
- 983 0001 11       		.uleb128 0x11
-
GAS LISTING /tmp/cc32muHp.s 			page 20
-
-
- 984 0002 01       		.byte	0x1
- 985 0003 25       		.uleb128 0x25
- 986 0004 0E       		.uleb128 0xe
- 987 0005 13       		.uleb128 0x13
- 988 0006 0B       		.uleb128 0xb
- 989 0007 03       		.uleb128 0x3
- 990 0008 0E       		.uleb128 0xe
- 991 0009 1B       		.uleb128 0x1b
- 992 000a 0E       		.uleb128 0xe
- 993 000b 11       		.uleb128 0x11
- 994 000c 01       		.uleb128 0x1
- 995 000d 12       		.uleb128 0x12
- 996 000e 01       		.uleb128 0x1
- 997 000f 10       		.uleb128 0x10
- 998 0010 06       		.uleb128 0x6
- 999 0011 00       		.byte	0x0
- 1000 0012 00       		.byte	0x0
- 1001 0013 02       		.uleb128 0x2
- 1002 0014 24       		.uleb128 0x24
- 1003 0015 00       		.byte	0x0
- 1004 0016 0B       		.uleb128 0xb
- 1005 0017 0B       		.uleb128 0xb
- 1006 0018 3E       		.uleb128 0x3e
- 1007 0019 0B       		.uleb128 0xb
- 1008 001a 03       		.uleb128 0x3
- 1009 001b 0E       		.uleb128 0xe
- 1010 001c 00       		.byte	0x0
- 1011 001d 00       		.byte	0x0
- 1012 001e 03       		.uleb128 0x3
- 1013 001f 24       		.uleb128 0x24
- 1014 0020 00       		.byte	0x0
- 1015 0021 0B       		.uleb128 0xb
- 1016 0022 0B       		.uleb128 0xb
- 1017 0023 3E       		.uleb128 0x3e
- 1018 0024 0B       		.uleb128 0xb
- 1019 0025 03       		.uleb128 0x3
- 1020 0026 08       		.uleb128 0x8
- 1021 0027 00       		.byte	0x0
- 1022 0028 00       		.byte	0x0
- 1023 0029 04       		.uleb128 0x4
- 1024 002a 16       		.uleb128 0x16
- 1025 002b 00       		.byte	0x0
- 1026 002c 03       		.uleb128 0x3
- 1027 002d 0E       		.uleb128 0xe
- 1028 002e 3A       		.uleb128 0x3a
- 1029 002f 0B       		.uleb128 0xb
- 1030 0030 3B       		.uleb128 0x3b
- 1031 0031 0B       		.uleb128 0xb
- 1032 0032 49       		.uleb128 0x49
- 1033 0033 13       		.uleb128 0x13
- 1034 0034 00       		.byte	0x0
- 1035 0035 00       		.byte	0x0
- 1036 0036 05       		.uleb128 0x5
- 1037 0037 24       		.uleb128 0x24
- 1038 0038 00       		.byte	0x0
- 1039 0039 0B       		.uleb128 0xb
- 1040 003a 0B       		.uleb128 0xb
-
GAS LISTING /tmp/cc32muHp.s 			page 21
-
-
- 1041 003b 3E       		.uleb128 0x3e
- 1042 003c 0B       		.uleb128 0xb
- 1043 003d 00       		.byte	0x0
- 1044 003e 00       		.byte	0x0
- 1045 003f 06       		.uleb128 0x6
- 1046 0040 04       		.uleb128 0x4
- 1047 0041 01       		.byte	0x1
- 1048 0042 03       		.uleb128 0x3
- 1049 0043 0E       		.uleb128 0xe
- 1050 0044 0B       		.uleb128 0xb
- 1051 0045 0B       		.uleb128 0xb
- 1052 0046 3A       		.uleb128 0x3a
- 1053 0047 0B       		.uleb128 0xb
- 1054 0048 3B       		.uleb128 0x3b
- 1055 0049 0B       		.uleb128 0xb
- 1056 004a 01       		.uleb128 0x1
- 1057 004b 13       		.uleb128 0x13
- 1058 004c 00       		.byte	0x0
- 1059 004d 00       		.byte	0x0
- 1060 004e 07       		.uleb128 0x7
- 1061 004f 28       		.uleb128 0x28
- 1062 0050 00       		.byte	0x0
- 1063 0051 03       		.uleb128 0x3
- 1064 0052 0E       		.uleb128 0xe
- 1065 0053 1C       		.uleb128 0x1c
- 1066 0054 0D       		.uleb128 0xd
- 1067 0055 00       		.byte	0x0
- 1068 0056 00       		.byte	0x0
- 1069 0057 08       		.uleb128 0x8
- 1070 0058 04       		.uleb128 0x4
- 1071 0059 01       		.byte	0x1
- 1072 005a 03       		.uleb128 0x3
- 1073 005b 0E       		.uleb128 0xe
- 1074 005c 0B       		.uleb128 0xb
- 1075 005d 0B       		.uleb128 0xb
- 1076 005e 3A       		.uleb128 0x3a
- 1077 005f 0B       		.uleb128 0xb
- 1078 0060 3B       		.uleb128 0x3b
- 1079 0061 05       		.uleb128 0x5
- 1080 0062 01       		.uleb128 0x1
- 1081 0063 13       		.uleb128 0x13
- 1082 0064 00       		.byte	0x0
- 1083 0065 00       		.byte	0x0
- 1084 0066 09       		.uleb128 0x9
- 1085 0067 2E       		.uleb128 0x2e
- 1086 0068 01       		.byte	0x1
- 1087 0069 3F       		.uleb128 0x3f
- 1088 006a 0C       		.uleb128 0xc
- 1089 006b 03       		.uleb128 0x3
- 1090 006c 0E       		.uleb128 0xe
- 1091 006d 3A       		.uleb128 0x3a
- 1092 006e 0B       		.uleb128 0xb
- 1093 006f 3B       		.uleb128 0x3b
- 1094 0070 0B       		.uleb128 0xb
- 1095 0071 27       		.uleb128 0x27
- 1096 0072 0C       		.uleb128 0xc
- 1097 0073 49       		.uleb128 0x49
-
GAS LISTING /tmp/cc32muHp.s 			page 22
-
-
- 1098 0074 13       		.uleb128 0x13
- 1099 0075 11       		.uleb128 0x11
- 1100 0076 01       		.uleb128 0x1
- 1101 0077 12       		.uleb128 0x12
- 1102 0078 01       		.uleb128 0x1
- 1103 0079 40       		.uleb128 0x40
- 1104 007a 06       		.uleb128 0x6
- 1105 007b 01       		.uleb128 0x1
- 1106 007c 13       		.uleb128 0x13
- 1107 007d 00       		.byte	0x0
- 1108 007e 00       		.byte	0x0
- 1109 007f 0A       		.uleb128 0xa
- 1110 0080 13       		.uleb128 0x13
- 1111 0081 00       		.byte	0x0
- 1112 0082 03       		.uleb128 0x3
- 1113 0083 0E       		.uleb128 0xe
- 1114 0084 3C       		.uleb128 0x3c
- 1115 0085 0C       		.uleb128 0xc
- 1116 0086 00       		.byte	0x0
- 1117 0087 00       		.byte	0x0
- 1118 0088 0B       		.uleb128 0xb
- 1119 0089 05       		.uleb128 0x5
- 1120 008a 00       		.byte	0x0
- 1121 008b 03       		.uleb128 0x3
- 1122 008c 0E       		.uleb128 0xe
- 1123 008d 3A       		.uleb128 0x3a
- 1124 008e 0B       		.uleb128 0xb
- 1125 008f 3B       		.uleb128 0x3b
- 1126 0090 0B       		.uleb128 0xb
- 1127 0091 49       		.uleb128 0x49
- 1128 0092 13       		.uleb128 0x13
- 1129 0093 02       		.uleb128 0x2
- 1130 0094 0A       		.uleb128 0xa
- 1131 0095 00       		.byte	0x0
- 1132 0096 00       		.byte	0x0
- 1133 0097 0C       		.uleb128 0xc
- 1134 0098 34       		.uleb128 0x34
- 1135 0099 00       		.byte	0x0
- 1136 009a 03       		.uleb128 0x3
- 1137 009b 08       		.uleb128 0x8
- 1138 009c 3A       		.uleb128 0x3a
- 1139 009d 0B       		.uleb128 0xb
- 1140 009e 3B       		.uleb128 0x3b
- 1141 009f 0B       		.uleb128 0xb
- 1142 00a0 49       		.uleb128 0x49
- 1143 00a1 13       		.uleb128 0x13
- 1144 00a2 02       		.uleb128 0x2
- 1145 00a3 0A       		.uleb128 0xa
- 1146 00a4 00       		.byte	0x0
- 1147 00a5 00       		.byte	0x0
- 1148 00a6 0D       		.uleb128 0xd
- 1149 00a7 34       		.uleb128 0x34
- 1150 00a8 00       		.byte	0x0
- 1151 00a9 03       		.uleb128 0x3
- 1152 00aa 0E       		.uleb128 0xe
- 1153 00ab 49       		.uleb128 0x49
- 1154 00ac 13       		.uleb128 0x13
-
GAS LISTING /tmp/cc32muHp.s 			page 23
-
-
- 1155 00ad 34       		.uleb128 0x34
- 1156 00ae 0C       		.uleb128 0xc
- 1157 00af 02       		.uleb128 0x2
- 1158 00b0 0A       		.uleb128 0xa
- 1159 00b1 00       		.byte	0x0
- 1160 00b2 00       		.byte	0x0
- 1161 00b3 0E       		.uleb128 0xe
- 1162 00b4 0F       		.uleb128 0xf
- 1163 00b5 00       		.byte	0x0
- 1164 00b6 0B       		.uleb128 0xb
- 1165 00b7 0B       		.uleb128 0xb
- 1166 00b8 49       		.uleb128 0x49
- 1167 00b9 13       		.uleb128 0x13
- 1168 00ba 00       		.byte	0x0
- 1169 00bb 00       		.byte	0x0
- 1170 00bc 0F       		.uleb128 0xf
- 1171 00bd 01       		.uleb128 0x1
- 1172 00be 01       		.byte	0x1
- 1173 00bf 49       		.uleb128 0x49
- 1174 00c0 13       		.uleb128 0x13
- 1175 00c1 01       		.uleb128 0x1
- 1176 00c2 13       		.uleb128 0x13
- 1177 00c3 00       		.byte	0x0
- 1178 00c4 00       		.byte	0x0
- 1179 00c5 10       		.uleb128 0x10
- 1180 00c6 21       		.uleb128 0x21
- 1181 00c7 00       		.byte	0x0
- 1182 00c8 49       		.uleb128 0x49
- 1183 00c9 13       		.uleb128 0x13
- 1184 00ca 2F       		.uleb128 0x2f
- 1185 00cb 0B       		.uleb128 0xb
- 1186 00cc 00       		.byte	0x0
- 1187 00cd 00       		.byte	0x0
- 1188 00ce 11       		.uleb128 0x11
- 1189 00cf 26       		.uleb128 0x26
- 1190 00d0 00       		.byte	0x0
- 1191 00d1 49       		.uleb128 0x49
- 1192 00d2 13       		.uleb128 0x13
- 1193 00d3 00       		.byte	0x0
- 1194 00d4 00       		.byte	0x0
- 1195 00d5 00       		.byte	0x0
- 1196              		.section	.debug_pubnames,"", at progbits
- 1197 0000 2F000000 		.long	0x2f
- 1198 0004 0200     		.value	0x2
- 1199 0006 00000000 		.long	.Ldebug_info0
- 1200 000a 28070000 		.long	0x728
- 1201 000e 92060000 		.long	0x692
- 1202 0012 4B4E756C 		.string	"KNullBlockCipherVecAesNiMake"
- 1202      6C426C6F 
- 1202      636B4369 
- 1202      70686572 
- 1202      56656341 
- 1203 002f 00000000 		.long	0x0
- 1204              		.section	.debug_aranges,"", at progbits
- 1205 0000 2C000000 		.long	0x2c
- 1206 0004 0200     		.value	0x2
- 1207 0006 00000000 		.long	.Ldebug_info0
-
GAS LISTING /tmp/cc32muHp.s 			page 24
-
-
- 1208 000a 08       		.byte	0x8
- 1209 000b 00       		.byte	0x0
- 1210 000c 0000     		.value	0x0
- 1211 000e 0000     		.value	0x0
- 1212 0010 00000000 		.quad	.Ltext0
- 1212      00000000 
- 1213 0018 65000000 		.quad	.Letext0-.Ltext0
- 1213      00000000 
- 1214 0020 00000000 		.quad	0x0
- 1214      00000000 
- 1215 0028 00000000 		.quad	0x0
- 1215      00000000 
- 1216              		.section	.debug_str,"MS", at progbits,1
- 1217              	.LASF184:
- 1218 0000 72635461 		.string	"rcTag"
- 1218      6700
- 1219              	.LASF30:
- 1220 0006 72635646 		.string	"rcVFS"
- 1220      5300
- 1221              	.LASF234:
- 1222 000c 7263556E 		.string	"rcUnauthorized"
- 1222      61757468 
- 1222      6F72697A 
- 1222      656400
- 1223              	.LASF258:
- 1224 001b 474E5520 		.string	"GNU C 4.4.2"
- 1224      4320342E 
- 1224      342E3200 
- 1225              	.LASF218:
- 1226 0027 7263496E 		.string	"rcInconsistent"
- 1226      636F6E73 
- 1226      69737465 
- 1226      6E7400
- 1227              	.LASF19:
- 1228 0036 72634442 		.string	"rcDB"
- 1228      00
- 1229              	.LASF128:
- 1230 003b 7263436F 		.string	"rcCopying"
- 1230      7079696E 
- 1230      6700
- 1231              	.LASF131:
- 1232 0045 7263506F 		.string	"rcPositioning"
- 1232      73697469 
- 1232      6F6E696E 
- 1232      6700
- 1233              	.LASF226:
- 1234 0053 72634578 		.string	"rcExcessive"
- 1234      63657373 
- 1234      69766500 
- 1235              	.LASF222:
- 1236 005f 72634361 		.string	"rcCanceled"
- 1236      6E63656C 
- 1236      656400
- 1237              	.LASF156:
- 1238 006a 72634C61 		.string	"rcLastContext_v1_0"
- 1238      7374436F 
- 1238      6E746578 
-
GAS LISTING /tmp/cc32muHp.s 			page 25
-
-
- 1238      745F7631 
- 1238      5F3000
- 1239              	.LASF167:
- 1240 007d 72634C61 		.string	"rcLastContext_v1_1"
- 1240      7374436F 
- 1240      6E746578 
- 1240      745F7631 
- 1240      5F3100
- 1241              	.LASF90:
- 1242 0090 7263456E 		.string	"rcEncryptionKey"
- 1242      63727970 
- 1242      74696F6E 
- 1242      4B657900 
- 1243              	.LASF97:
- 1244 00a0 5243436F 		.string	"RCContext"
- 1244      6E746578 
- 1244      7400
- 1245              	.LASF92:
- 1246 00aa 7263436D 		.string	"rcCmd"
- 1246      6400
- 1247              	.LASF242:
- 1248 00b0 72634475 		.string	"rcDuplicate"
- 1248      706C6963 
- 1248      61746500 
- 1249              	.LASF202:
- 1250 00bc 72635265 		.string	"rcRefcount"
- 1250      66636F75 
- 1250      6E7400
- 1251              	.LASF91:
- 1252 00c7 7263526E 		.string	"rcRng"
- 1252      6700
- 1253              	.LASF34:
- 1254 00cd 72634E6F 		.string	"rcNoTarg"
- 1254      54617267 
- 1254      00
- 1255              	.LASF204:
- 1256 00d6 52435374 		.string	"RCState"
- 1256      61746500 
- 1257              	.LASF5:
- 1258 00de 756E7369 		.string	"unsigned int"
- 1258      676E6564 
- 1258      20696E74 
- 1258      00
- 1259              	.LASF89:
- 1260 00eb 72635072 		.string	"rcProduction"
- 1260      6F647563 
- 1260      74696F6E 
- 1260      00
- 1261              	.LASF69:
- 1262 00f8 72635061 		.string	"rcPagemap"
- 1262      67656D61 
- 1262      7000
- 1263              	.LASF185:
- 1264 0102 72635265 		.string	"rcResources"
- 1264      736F7572 
- 1264      63657300 
- 1265              	.LASF50:
-
GAS LISTING /tmp/cc32muHp.s 			page 26
-
-
- 1266 010e 7263586D 		.string	"rcXmlDoc"
- 1266      6C446F63 
- 1266      00
- 1267              	.LASF37:
- 1268 0117 7263546F 		.string	"rcTocEntry"
- 1268      63456E74 
- 1268      727900
- 1269              	.LASF114:
- 1270 0122 72635265 		.string	"rcRemoving"
- 1270      6D6F7669 
- 1270      6E6700
- 1271              	.LASF192:
- 1272 012d 72634D6F 		.string	"rcMode"
- 1272      646500
- 1273              	.LASF119:
- 1274 0134 7263436C 		.string	"rcClosing"
- 1274      6F73696E 
- 1274      6700
- 1275              	.LASF72:
- 1276 013e 72635175 		.string	"rcQueue"
- 1276      65756500 
- 1277              	.LASF120:
- 1278 0146 72635265 		.string	"rcResizing"
- 1278      73697A69 
- 1278      6E6700
- 1279              	.LASF171:
- 1280 0151 72635365 		.string	"rcSelf"
- 1280      6C6600
- 1281              	.LASF214:
- 1282 0158 72634465 		.string	"rcDestroyed"
- 1282      7374726F 
- 1282      79656400 
- 1283              	.LASF162:
- 1284 0164 7263496E 		.string	"rcInitializing"
- 1284      69746961 
- 1284      6C697A69 
- 1284      6E6700
- 1285              	.LASF168:
- 1286 0173 52434F62 		.string	"RCObject"
- 1286      6A656374 
- 1286      00
- 1287              	.LASF146:
- 1288 017c 72634174 		.string	"rcAttaching"
- 1288      74616368 
- 1288      696E6700 
- 1289              	.LASF219:
- 1290 0188 72634275 		.string	"rcBusy"
- 1290      737900
- 1291              	.LASF74:
- 1292 018f 72635363 		.string	"rcSchema"
- 1292      68656D61 
- 1292      00
- 1293              	.LASF138:
- 1294 0198 72634875 		.string	"rcHuffmanCoding"
- 1294      66666D61 
- 1294      6E436F64 
- 1294      696E6700 
-
GAS LISTING /tmp/cc32muHp.s 			page 27
-
-
- 1295              	.LASF123:
- 1296 01a8 7263436F 		.string	"rcCommitting"
- 1296      6D6D6974 
- 1296      74696E67 
- 1296      00
- 1297              	.LASF75:
- 1298 01b5 72635365 		.string	"rcSemaphore"
- 1298      6D617068 
- 1298      6F726500 
- 1299              	.LASF232:
- 1300 01c1 72634465 		.string	"rcDetached"
- 1300      74616368 
- 1300      656400
- 1301              	.LASF188:
- 1302 01cc 7263526F 		.string	"rcRow"
- 1302      7700
- 1303              	.LASF239:
- 1304 01d2 7263546F 		.string	"rcTooShort"
- 1304      6F53686F 
- 1304      727400
- 1305              	.LASF15:
- 1306 01dd 72634646 		.string	"rcFF"
- 1306      00
- 1307              	.LASF16:
- 1308 01e2 72634653 		.string	"rcFS"
- 1308      00
- 1309              	.LASF250:
- 1310 01e7 7263556E 		.string	"rcUndefined"
- 1310      64656669 
- 1310      6E656400 
- 1311              	.LASF132:
- 1312 01f3 72635061 		.string	"rcPacking"
- 1312      636B696E 
- 1312      6700
- 1313              	.LASF216:
- 1314 01fd 7263436F 		.string	"rcCorrupt"
- 1314      72727570 
- 1314      7400
- 1315              	.LASF7:
- 1316 0207 75696E74 		.string	"uint32_t"
- 1316      33325F74 
- 1316      00
- 1317              	.LASF133:
- 1318 0210 7263556E 		.string	"rcUnpacking"
- 1318      7061636B 
- 1318      696E6700 
- 1319              	.LASF51:
- 1320 021c 72634669 		.string	"rcFile"
- 1320      6C6500
- 1321              	.LASF39:
- 1322 0223 72634174 		.string	"rcAttr"
- 1322      747200
- 1323              	.LASF199:
- 1324 022a 7263456E 		.string	"rcEnvironment"
- 1324      7669726F 
- 1324      6E6D656E 
- 1324      7400
-
GAS LISTING /tmp/cc32muHp.s 			page 28
-
-
- 1325              	.LASF149:
- 1326 0238 72634650 		.string	"rcFPCoding"
- 1326      436F6469 
- 1326      6E6700
- 1327              	.LASF80:
- 1328 0243 72635469 		.string	"rcTimeout"
- 1328      6D656F75 
- 1328      7400
- 1329              	.LASF62:
- 1330 024d 72634D44 		.string	"rcMD5SumFmt"
- 1330      3553756D 
- 1330      466D7400 
- 1331              	.LASF137:
- 1332 0259 72634578 		.string	"rcExecuting"
- 1332      65637574 
- 1332      696E6700 
- 1333              	.LASF145:
- 1334 0265 72635761 		.string	"rcWaiting"
- 1334      6974696E 
- 1334      6700
- 1335              	.LASF176:
- 1336 026f 7263466F 		.string	"rcFormat"
- 1336      726D6174 
- 1336      00
- 1337              	.LASF181:
- 1338 0278 7263436F 		.string	"rcConstraint"
- 1338      6E737472 
- 1338      61696E74 
- 1338      00
- 1339              	.LASF22:
- 1340 0285 7263584D 		.string	"rcXML"
- 1340      4C00
- 1341              	.LASF45:
- 1342 028b 7263436F 		.string	"rcCondition"
- 1342      6E646974 
- 1342      696F6E00 
- 1343              	.LASF205:
- 1344 0297 72634E6F 		.string	"rcNoErr"
- 1344      45727200 
- 1345              	.LASF42:
- 1346 029f 72634275 		.string	"rcBuffer"
- 1346      66666572 
- 1346      00
- 1347              	.LASF142:
- 1348 02a8 72635061 		.string	"rcParsing"
- 1348      7273696E 
- 1348      6700
- 1349              	.LASF41:
- 1350 02b2 7263426C 		.string	"rcBlob"
- 1350      6F6200
- 1351              	.LASF240:
- 1352 02b9 7263546F 		.string	"rcTooLong"
- 1352      6F4C6F6E 
- 1352      6700
- 1353              	.LASF24:
- 1354 02c3 72634C61 		.string	"rcLastModule_v1_0"
- 1354      73744D6F 
-
GAS LISTING /tmp/cc32muHp.s 			page 29
-
-
- 1354      64756C65 
- 1354      5F76315F 
- 1354      3000
- 1355              	.LASF31:
- 1356 02d5 72634C61 		.string	"rcLastModule_v1_1"
- 1356      73744D6F 
- 1356      64756C65 
- 1356      5F76315F 
- 1356      3100
- 1357              	.LASF64:
- 1358 02e7 72634D65 		.string	"rcMetadata"
- 1358      74616461 
- 1358      746100
- 1359              	.LASF261:
- 1360 02f2 4B4E756C 		.string	"KNullBlockCipherVecAesNiMake"
- 1360      6C426C6F 
- 1360      636B4369 
- 1360      70686572 
- 1360      56656341 
- 1361              	.LASF236:
- 1362 030f 72635772 		.string	"rcWriteonly"
- 1362      6974656F 
- 1362      6E6C7900 
- 1363              	.LASF115:
- 1364 031b 7263436C 		.string	"rcClearing"
- 1364      65617269 
- 1364      6E6700
- 1365              	.LASF55:
- 1366 0326 7263466F 		.string	"rcFormatter"
- 1366      726D6174 
- 1366      74657200 
- 1367              	.LASF248:
- 1368 0332 72634F75 		.string	"rcOutoforder"
- 1368      746F666F 
- 1368      72646572 
- 1368      00
- 1369              	.LASF70:
- 1370 033f 72635061 		.string	"rcPath"
- 1370      746800
- 1371              	.LASF189:
- 1372 0346 72634C69 		.string	"rcLibrary"
- 1372      62726172 
- 1372      7900
- 1373              	.LASF141:
- 1374 0350 7263546F 		.string	"rcTokenizing"
- 1374      6B656E69 
- 1374      7A696E67 
- 1374      00
- 1375              	.LASF198:
- 1376 035d 72634572 		.string	"rcError"
- 1376      726F7200 
- 1377              	.LASF18:
- 1378 0365 72635846 		.string	"rcXF"
- 1378      00
- 1379              	.LASF183:
- 1380 036a 72634D65 		.string	"rcMessage"
- 1380      73736167 
-
GAS LISTING /tmp/cc32muHp.s 			page 30
-
-
- 1380      6500
- 1381              	.LASF237:
- 1382 0374 72634E6F 		.string	"rcNoPerm"
- 1382      5065726D 
- 1382      00
- 1383              	.LASF54:
- 1384 037d 72634675 		.string	"rcFunction"
- 1384      6E637469 
- 1384      6F6E00
- 1385              	.LASF208:
- 1386 0388 7263556E 		.string	"rcUnsupported"
- 1386      73757070 
- 1386      6F727465 
- 1386      6400
- 1387              	.LASF43:
- 1388 0396 72634368 		.string	"rcChar"
- 1388      617200
- 1389              	.LASF174:
- 1390 039d 72634D65 		.string	"rcMemory"
- 1390      6D6F7279 
- 1390      00
- 1391              	.LASF194:
- 1392 03a6 72634372 		.string	"rcCrc"
- 1392      6300
- 1393              	.LASF241:
- 1394 03ac 7263546F 		.string	"rcTooBig"
- 1394      6F426967 
- 1394      00
- 1395              	.LASF179:
- 1396 03b5 72634964 		.string	"rcId"
- 1396      00
- 1397              	.LASF82:
- 1398 03ba 72635472 		.string	"rcTree"
- 1398      656500
- 1399              	.LASF253:
- 1400 03c1 72634E6F 		.string	"rcNotAvailable"
- 1400      74417661 
- 1400      696C6162 
- 1400      6C6500
- 1401              	.LASF93:
- 1402 03d0 72634461 		.string	"rcData"
- 1402      746100
- 1403              	.LASF257:
- 1404 03d7 5F5F6675 		.string	"__func__"
- 1404      6E635F5F 
- 1404      00
- 1405              	.LASF254:
- 1406 03e0 72635772 		.string	"rcWrongType"
- 1406      6F6E6754 
- 1406      79706500 
- 1407              	.LASF56:
- 1408 03ec 72634675 		.string	"rcFunctParam"
- 1408      6E637450 
- 1408      6172616D 
- 1408      00
- 1409              	.LASF63:
- 1410 03f9 72634D65 		.string	"rcMemMap"
-
GAS LISTING /tmp/cc32muHp.s 			page 31
-
-
- 1410      6D4D6170 
- 1410      00
- 1411              	.LASF9:
- 1412 0402 63686172 		.string	"char"
- 1412      00
- 1413              	.LASF211:
- 1414 0407 7263416D 		.string	"rcAmbiguous"
- 1414      62696775 
- 1414      6F757300 
- 1415              	.LASF244:
- 1416 0413 72634967 		.string	"rcIgnored"
- 1416      6E6F7265 
- 1416      6400
- 1417              	.LASF109:
- 1418 041d 72635265 		.string	"rcRenaming"
- 1418      6E616D69 
- 1418      6E6700
- 1419              	.LASF121:
- 1420 0428 72635265 		.string	"rcReading"
- 1420      6164696E 
- 1420      6700
- 1421              	.LASF58:
- 1422 0432 7263496E 		.string	"rcIndex"
- 1422      64657800 
- 1423              	.LASF104:
- 1424 043a 72634C69 		.string	"rcListing"
- 1424      7374696E 
- 1424      6700
- 1425              	.LASF178:
- 1426 0444 7263496E 		.string	"rcInterface"
- 1426      74657266 
- 1426      61636500 
- 1427              	.LASF107:
- 1428 0450 72634C6F 		.string	"rcLocking"
- 1428      636B696E 
- 1428      6700
- 1429              	.LASF60:
- 1430 045a 72634C6F 		.string	"rcLock"
- 1430      636B00
- 1431              	.LASF108:
- 1432 0461 7263556E 		.string	"rcUnlocking"
- 1432      6C6F636B 
- 1432      696E6700 
- 1433              	.LASF85:
- 1434 046d 72635665 		.string	"rcVector"
- 1434      63746F72 
- 1434      00
- 1435              	.LASF122:
- 1436 0476 72635772 		.string	"rcWriting"
- 1436      6974696E 
- 1436      6700
- 1437              	.LASF53:
- 1438 0480 72634669 		.string	"rcFileFormat"
- 1438      6C65466F 
- 1438      726D6174 
- 1438      00
- 1439              	.LASF21:
-
GAS LISTING /tmp/cc32muHp.s 			page 32
-
-
- 1440 048d 72634170 		.string	"rcApp"
- 1440      7000
- 1441              	.LASF125:
- 1442 0493 72635265 		.string	"rcResetting"
- 1442      73657474 
- 1442      696E6700 
- 1443              	.LASF71:
- 1444 049f 72635072 		.string	"rcProcess"
- 1444      6F636573 
- 1444      7300
- 1445              	.LASF106:
- 1446 04a9 72635265 		.string	"rcResolving"
- 1446      736F6C76 
- 1446      696E6700 
- 1447              	.LASF12:
- 1448 04b5 72635465 		.string	"rcText"
- 1448      787400
- 1449              	.LASF66:
- 1450 04bc 72634E61 		.string	"rcNamelist"
- 1450      6D656C69 
- 1450      737400
- 1451              	.LASF229:
- 1452 04c7 72634E6F 		.string	"rcNotFound"
- 1452      74466F75 
- 1452      6E6400
- 1453              	.LASF139:
- 1454 04d2 72635265 		.string	"rcReindexing"
- 1454      696E6465 
- 1454      78696E67 
- 1454      00
- 1455              	.LASF87:
- 1456 04df 72634578 		.string	"rcExpression"
- 1456      70726573 
- 1456      73696F6E 
- 1456      00
- 1457              	.LASF235:
- 1458 04ec 72635265 		.string	"rcReadonly"
- 1458      61646F6E 
- 1458      6C7900
- 1459              	.LASF95:
- 1460 04f7 72635572 		.string	"rcUri"
- 1460      6900
- 1461              	.LASF100:
- 1462 04fd 7263436F 		.string	"rcConstructing"
- 1462      6E737472 
- 1462      75637469 
- 1462      6E6700
- 1463              	.LASF173:
- 1464 050c 72634F66 		.string	"rcOffset"
- 1464      66736574 
- 1464      00
- 1465              	.LASF233:
- 1466 0515 72634465 		.string	"rcDeadlock"
- 1466      61646C6F 
- 1466      636B00
- 1467              	.LASF47:
- 1468 0520 72634461 		.string	"rcDatabase"
-
GAS LISTING /tmp/cc32muHp.s 			page 33
-
-
- 1468      74616261 
- 1468      736500
- 1469              	.LASF127:
- 1470 052b 72634672 		.string	"rcFreezing"
- 1470      65657A69 
- 1470      6E6700
- 1471              	.LASF217:
- 1472 0536 7263496E 		.string	"rcIncorrect"
- 1472      636F7272 
- 1472      65637400 
- 1473              	.LASF206:
- 1474 0542 7263446F 		.string	"rcDone"
- 1474      6E6500
- 1475              	.LASF157:
- 1476 0549 7263466C 		.string	"rcFlushing"
- 1476      75736869 
- 1476      6E6700
- 1477              	.LASF159:
- 1478 0554 7263456E 		.string	"rcEncrypting"
- 1478      63727970 
- 1478      74696E67 
- 1478      00
- 1479              	.LASF251:
- 1480 0561 7263556E 		.string	"rcUnequal"
- 1480      65717561 
- 1480      6C00
- 1481              	.LASF10:
- 1482 056b 72634578 		.string	"rcExe"
- 1482      6500
- 1483              	.LASF38:
- 1484 0571 72634172 		.string	"rcArgv"
- 1484      677600
- 1485              	.LASF147:
- 1486 0578 72634465 		.string	"rcDetaching"
- 1486      74616368 
- 1486      696E6700 
- 1487              	.LASF99:
- 1488 0584 72634361 		.string	"rcCasting"
- 1488      7374696E 
- 1488      6700
- 1489              	.LASF110:
- 1490 058e 7263416C 		.string	"rcAliasing"
- 1490      69617369 
- 1490      6E6700
- 1491              	.LASF49:
- 1492 0599 7263446F 		.string	"rcDoc"
- 1492      6300
- 1493              	.LASF98:
- 1494 059f 7263416C 		.string	"rcAllocating"
- 1494      6C6F6361 
- 1494      74696E67 
- 1494      00
- 1495              	.LASF212:
- 1496 05ac 72634E75 		.string	"rcNull"
- 1496      6C6C00
- 1497              	.LASF180:
- 1498 05b3 72635261 		.string	"rcRange"
-
GAS LISTING /tmp/cc32muHp.s 			page 34
-
-
- 1498      6E676500 
- 1499              	.LASF35:
- 1500 05bb 72634172 		.string	"rcArc"
- 1500      6300
- 1501              	.LASF252:
- 1502 05c1 72634661 		.string	"rcFailed"
- 1502      696C6564 
- 1502      00
- 1503              	.LASF23:
- 1504 05ca 72635352 		.string	"rcSRA"
- 1504      4100
- 1505              	.LASF152:
- 1506 05d0 72635365 		.string	"rcSearching"
- 1506      61726368 
- 1506      696E6700 
- 1507              	.LASF225:
- 1508 05dc 7263496E 		.string	"rcInsufficient"
- 1508      73756666 
- 1508      69636965 
- 1508      6E7400
- 1509              	.LASF165:
- 1510 05eb 72635072 		.string	"rcProcessing"
- 1510      6F636573 
- 1510      73696E67 
- 1510      00
- 1511              	.LASF144:
- 1512 05f8 72635369 		.string	"rcSignaling"
- 1512      676E616C 
- 1512      696E6700 
- 1513              	.LASF135:
- 1514 0604 72634465 		.string	"rcDecoding"
- 1514      636F6469 
- 1514      6E6700
- 1515              	.LASF76:
- 1516 060f 72635374 		.string	"rcStorage"
- 1516      6F726167 
- 1516      6500
- 1517              	.LASF213:
- 1518 0619 72634261 		.string	"rcBadVersion"
- 1518      64566572 
- 1518      73696F6E 
- 1518      00
- 1519              	.LASF210:
- 1520 0626 7263556E 		.string	"rcUnrecognized"
- 1520      7265636F 
- 1520      676E697A 
- 1520      656400
- 1521              	.LASF161:
- 1522 0635 7263436F 		.string	"rcComparing"
- 1522      6D706172 
- 1522      696E6700 
- 1523              	.LASF65:
- 1524 0641 72634D67 		.string	"rcMgr"
- 1524      7200
- 1525              	.LASF154:
- 1526 0647 72634576 		.string	"rcEvaluating"
- 1526      616C7561 
-
GAS LISTING /tmp/cc32muHp.s 			page 35
-
-
- 1526      74696E67 
- 1526      00
- 1527              	.LASF163:
- 1528 0654 72635265 		.string	"rcRetrieving"
- 1528      74726965 
- 1528      76696E67 
- 1528      00
- 1529              	.LASF116:
- 1530 0661 72635570 		.string	"rcUpdating"
- 1530      64617469 
- 1530      6E6700
- 1531              	.LASF83:
- 1532 066c 72635472 		.string	"rcTrie"
- 1532      696500
- 1533              	.LASF201:
- 1534 0673 72635369 		.string	"rcSize"
- 1534      7A6500
- 1535              	.LASF150:
- 1536 067a 72634D75 		.string	"rcMultiplexing"
- 1536      6C746970 
- 1536      6C657869 
- 1536      6E6700
- 1537              	.LASF243:
- 1538 0689 72634F75 		.string	"rcOutOfKDirectory"
- 1538      744F664B 
- 1538      44697265 
- 1538      63746F72 
- 1538      7900
- 1539              	.LASF40:
- 1540 069b 72634261 		.string	"rcBarrier"
- 1540      72726965 
- 1540      7200
- 1541              	.LASF77:
- 1542 06a5 72635374 		.string	"rcString"
- 1542      72696E67 
- 1542      00
- 1543              	.LASF193:
- 1544 06ae 7263456E 		.string	"rcEncryption"
- 1544      63727970 
- 1544      74696F6E 
- 1544      00
- 1545              	.LASF25:
- 1546 06bb 72634B46 		.string	"rcKFG"
- 1546      4700
- 1547              	.LASF46:
- 1548 06c1 72634375 		.string	"rcCursor"
- 1548      72736F72 
- 1548      00
- 1549              	.LASF101:
- 1550 06ca 72634465 		.string	"rcDestroying"
- 1550      7374726F 
- 1550      79696E67 
- 1550      00
- 1551              	.LASF27:
- 1552 06d7 72634B72 		.string	"rcKrypto"
- 1552      7970746F 
- 1552      00
-
GAS LISTING /tmp/cc32muHp.s 			page 36
-
-
- 1553              	.LASF196:
- 1554 06e0 72635365 		.string	"rcSeed"
- 1554      656400
- 1555              	.LASF221:
- 1556 06e7 7263496E 		.string	"rcInterrupted"
- 1556      74657272 
- 1556      75707465 
- 1556      6400
- 1557              	.LASF153:
- 1558 06f5 72634C6F 		.string	"rcLoading"
- 1558      6164696E 
- 1558      6700
- 1559              	.LASF136:
- 1560 06ff 72635661 		.string	"rcValidating"
- 1560      6C696461 
- 1560      74696E67 
- 1560      00
- 1561              	.LASF230:
- 1562 070c 72634C6F 		.string	"rcLocked"
- 1562      636B6564 
- 1562      00
- 1563              	.LASF59:
- 1564 0715 72634974 		.string	"rcIterator"
- 1564      65726174 
- 1564      6F7200
- 1565              	.LASF67:
- 1566 0720 72634E6F 		.string	"rcNode"
- 1566      646500
- 1567              	.LASF1:
- 1568 0727 73686F72 		.string	"short int"
- 1568      7420696E 
- 1568      7400
- 1569              	.LASF102:
- 1570 0731 72635265 		.string	"rcReleasing"
- 1570      6C656173 
- 1570      696E6700 
- 1571              	.LASF177:
- 1572 073d 72635472 		.string	"rcTransfer"
- 1572      616E7366 
- 1572      657200
- 1573              	.LASF2:
- 1574 0748 6C6F6E67 		.string	"long int"
- 1574      20696E74 
- 1574      00
- 1575              	.LASF262:
- 1576 0751 4B426C6F 		.string	"KBlockCipher"
- 1576      636B4369 
- 1576      70686572 
- 1576      00
- 1577              	.LASF164:
- 1578 075e 72635365 		.string	"rcSending"
- 1578      6E64696E 
- 1578      6700
- 1579              	.LASF215:
- 1580 0768 7263496E 		.string	"rcInvalid"
- 1580      76616C69 
- 1580      6400
-
GAS LISTING /tmp/cc32muHp.s 			page 37
-
-
- 1581              	.LASF249:
- 1582 0772 72634E6F 		.string	"rcNotOpen"
- 1582      744F7065 
- 1582      6E00
- 1583              	.LASF103:
- 1584 077c 72634163 		.string	"rcAccessing"
- 1584      63657373 
- 1584      696E6700 
- 1585              	.LASF29:
- 1586 0788 72634E53 		.string	"rcNS"
- 1586      00
- 1587              	.LASF112:
- 1588 078d 72635072 		.string	"rcProjecting"
- 1588      6F6A6563 
- 1588      74696E67 
- 1588      00
- 1589              	.LASF175:
- 1590 079a 72634E61 		.string	"rcName"
- 1590      6D6500
- 1591              	.LASF238:
- 1592 07a1 7263496E 		.string	"rcInPlaceNotAllowed"
- 1592      506C6163 
- 1592      654E6F74 
- 1592      416C6C6F 
- 1592      77656400 
- 1593              	.LASF247:
- 1594 07b5 72634F70 		.string	"rcOpen"
- 1594      656E00
- 1595              	.LASF227:
- 1596 07bc 72635669 		.string	"rcViolated"
- 1596      6F6C6174 
- 1596      656400
- 1597              	.LASF169:
- 1598 07c7 72634E6F 		.string	"rcNoObj"
- 1598      4F626A00 
- 1599              	.LASF200:
- 1600 07cf 72635369 		.string	"rcSignalSet"
- 1600      676E616C 
- 1600      53657400 
- 1601              	.LASF197:
- 1602 07db 7263436F 		.string	"rcConnection"
- 1602      6E6E6563 
- 1602      74696F6E 
- 1602      00
- 1603              	.LASF195:
- 1604 07e8 72634368 		.string	"rcChecksum"
- 1604      65636B73 
- 1604      756D00
- 1605              	.LASF78:
- 1606 07f3 72635461 		.string	"rcTable"
- 1606      626C6500 
- 1607              	.LASF11:
- 1608 07fb 72635275 		.string	"rcRuntime"
- 1608      6E74696D 
- 1608      6500
- 1609              	.LASF148:
- 1610 0805 72634C6F 		.string	"rcLogging"
-
GAS LISTING /tmp/cc32muHp.s 			page 38
-
-
- 1610      6767696E 
- 1610      6700
- 1611              	.LASF160:
- 1612 080f 72634465 		.string	"rcDecrypting"
- 1612      63727970 
- 1612      74696E67 
- 1612      00
- 1613              	.LASF61:
- 1614 081c 72634C6F 		.string	"rcLog"
- 1614      6700
- 1615              	.LASF68:
- 1616 0822 72634E75 		.string	"rcNumeral"
- 1616      6D657261 
- 1616      6C00
- 1617              	.LASF172:
- 1618 082c 72635061 		.string	"rcParam"
- 1618      72616D00 
- 1619              	.LASF32:
- 1620 0834 52434D6F 		.string	"RCModule"
- 1620      64756C65 
- 1620      00
- 1621              	.LASF158:
- 1622 083d 72634170 		.string	"rcAppending"
- 1622      70656E64 
- 1622      696E6700 
- 1623              	.LASF57:
- 1624 0849 72634865 		.string	"rcHeader"
- 1624      61646572 
- 1624      00
- 1625              	.LASF6:
- 1626 0852 6C6F6E67 		.string	"long unsigned int"
- 1626      20756E73 
- 1626      69676E65 
- 1626      6420696E 
- 1626      7400
- 1627              	.LASF245:
- 1628 0864 72634F75 		.string	"rcOutofrange"
- 1628      746F6672 
- 1628      616E6765 
- 1628      00
- 1629              	.LASF170:
- 1630 0871 72634C69 		.string	"rcLink"
- 1630      6E6B00
- 1631              	.LASF52:
- 1632 0878 72634669 		.string	"rcFileDesc"
- 1632      6C654465 
- 1632      736300
- 1633              	.LASF263:
- 1634 0883 6E65775F 		.string	"new_obj"
- 1634      6F626A00 
- 1635              	.LASF209:
- 1636 088b 7263556E 		.string	"rcUnexpected"
- 1636      65787065 
- 1636      63746564 
- 1636      00
- 1637              	.LASF207:
- 1638 0898 7263556E 		.string	"rcUnknown"
-
GAS LISTING /tmp/cc32muHp.s 			page 39
-
-
- 1638      6B6E6F77 
- 1638      6E00
- 1639              	.LASF155:
- 1640 08a2 7263496E 		.string	"rcInflating"
- 1640      666C6174 
- 1640      696E6700 
- 1641              	.LASF118:
- 1642 08ae 72634F70 		.string	"rcOpening"
- 1642      656E696E 
- 1642      6700
- 1643              	.LASF17:
- 1644 08b8 72635053 		.string	"rcPS"
- 1644      00
- 1645              	.LASF3:
- 1646 08bd 756E7369 		.string	"unsigned char"
- 1646      676E6564 
- 1646      20636861 
- 1646      7200
- 1647              	.LASF126:
- 1648 08cb 72635065 		.string	"rcPersisting"
- 1648      72736973 
- 1648      74696E67 
- 1648      00
- 1649              	.LASF259:
- 1650 08d8 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
- 1650      652F726F 
- 1650      6461726D 
- 1650      65722F73 
- 1650      72615F73 
- 1651              	.LASF220:
- 1652 0912 7263496E 		.string	"rcIncomplete"
- 1652      636F6D70 
- 1652      6C657465 
- 1652      00
- 1653              	.LASF246:
- 1654 091f 72634C61 		.string	"rcLastState_v1_0"
- 1654      73745374 
- 1654      6174655F 
- 1654      76315F30 
- 1654      00
- 1655              	.LASF255:
- 1656 0930 72634C61 		.string	"rcLastState_v1_1"
- 1656      73745374 
- 1656      6174655F 
- 1656      76315F31 
- 1656      00
- 1657              	.LASF143:
- 1658 0941 7263436F 		.string	"rcConverting"
- 1658      6E766572 
- 1658      74696E67 
- 1658      00
- 1659              	.LASF117:
- 1660 094e 72634372 		.string	"rcCreating"
- 1660      65617469 
- 1660      6E6700
- 1661              	.LASF191:
- 1662 0959 72634974 		.string	"rcItem"
-
GAS LISTING /tmp/cc32muHp.s 			page 40
-
-
- 1662      656D00
- 1663              	.LASF111:
- 1664 0960 72635365 		.string	"rcSelecting"
- 1664      6C656374 
- 1664      696E6700 
- 1665              	.LASF8:
- 1666 096c 72635F74 		.string	"rc_t"
- 1666      00
- 1667              	.LASF73:
- 1668 0971 72635257 		.string	"rcRWLock"
- 1668      4C6F636B 
- 1668      00
- 1669              	.LASF190:
- 1670 097a 72634C61 		.string	"rcLastObject_v1_0"
- 1670      73744F62 
- 1670      6A656374 
- 1670      5F76315F 
- 1670      3000
- 1671              	.LASF203:
- 1672 098c 72634C61 		.string	"rcLastObject_v1_1"
- 1672      73744F62 
- 1672      6A656374 
- 1672      5F76315F 
- 1672      3100
- 1673              	.LASF187:
- 1674 099e 72634172 		.string	"rcArcHardLink"
- 1674      63486172 
- 1674      644C696E 
- 1674      6B00
- 1675              	.LASF113:
- 1676 09ac 7263496E 		.string	"rcInserting"
- 1676      73657274 
- 1676      696E6700 
- 1677              	.LASF166:
- 1678 09b8 72634964 		.string	"rcIdentifying"
- 1678      656E7469 
- 1678      6679696E 
- 1678      6700
- 1679              	.LASF124:
- 1680 09c6 72635265 		.string	"rcReverting"
- 1680      76657274 
- 1680      696E6700 
- 1681              	.LASF20:
- 1682 09d2 72635644 		.string	"rcVDB"
- 1682      4200
- 1683              	.LASF105:
- 1684 09d8 72635669 		.string	"rcVisiting"
- 1684      73697469 
- 1684      6E6700
- 1685              	.LASF88:
- 1686 09e3 72634C61 		.string	"rcLastTarget_v1_0"
- 1686      73745461 
- 1686      72676574 
- 1686      5F76315F 
- 1686      3000
- 1687              	.LASF96:
- 1688 09f5 72634C61 		.string	"rcLastTarget_v1_1"
-
GAS LISTING /tmp/cc32muHp.s 			page 41
-
-
- 1688      73745461 
- 1688      72676574 
- 1688      5F76315F 
- 1688      3100
- 1689              	.LASF84:
- 1690 0a07 72635479 		.string	"rcType"
- 1690      706500
- 1691              	.LASF231:
- 1692 0a0e 7263556E 		.string	"rcUnlocked"
- 1692      6C6F636B 
- 1692      656400
- 1693              	.LASF151:
- 1694 0a19 7263436C 		.string	"rcClassifying"
- 1694      61737369 
- 1694      6679696E 
- 1694      6700
- 1695              	.LASF228:
- 1696 0a27 72634578 		.string	"rcExists"
- 1696      69737473 
- 1696      00
- 1697              	.LASF130:
- 1698 0a30 7263466F 		.string	"rcFormatting"
- 1698      726D6174 
- 1698      74696E67 
- 1698      00
- 1699              	.LASF79:
- 1700 0a3d 72635468 		.string	"rcThread"
- 1700      72656164 
- 1700      00
- 1701              	.LASF0:
- 1702 0a46 7369676E 		.string	"signed char"
- 1702      65642063 
- 1702      68617200 
- 1703              	.LASF4:
- 1704 0a52 73686F72 		.string	"short unsigned int"
- 1704      7420756E 
- 1704      7369676E 
- 1704      65642069 
- 1704      6E7400
- 1705              	.LASF260:
- 1706 0a65 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 1706      652F726F 
- 1706      6461726D 
- 1706      65722F73 
- 1706      72615F73 
- 1707              	.LASF182:
- 1708 0aad 72634279 		.string	"rcByteOrder"
- 1708      74654F72 
- 1708      64657200 
- 1709              	.LASF36:
- 1710 0ab9 7263546F 		.string	"rcToc"
- 1710      6300
- 1711              	.LASF44:
- 1712 0abf 7263436F 		.string	"rcColumn"
- 1712      6C756D6E 
- 1712      00
- 1713              	.LASF256:
-
GAS LISTING /tmp/cc32muHp.s 			page 42
-
-
- 1714 0ac8 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 1714      45545459 
- 1714      5F46554E 
- 1714      4354494F 
- 1714      4E5F5F00 
- 1715              	.LASF94:
- 1716 0adc 72635175 		.string	"rcQuery"
- 1716      65727900 
- 1717              	.LASF140:
- 1718 0ae4 72635265 		.string	"rcRegistering"
- 1718      67697374 
- 1718      6572696E 
- 1718      6700
- 1719              	.LASF86:
- 1720 0af2 72634479 		.string	"rcDylib"
- 1720      6C696200 
- 1721              	.LASF81:
- 1722 0afa 7263546F 		.string	"rcToken"
- 1722      6B656E00 
- 1723              	.LASF134:
- 1724 0b02 7263456E 		.string	"rcEncoding"
- 1724      636F6469 
- 1724      6E6700
- 1725              	.LASF224:
- 1726 0b0d 72634578 		.string	"rcExhausted"
- 1726      68617573 
- 1726      74656400 
- 1727              	.LASF186:
- 1728 0b19 72634469 		.string	"rcDirEntry"
- 1728      72456E74 
- 1728      727900
- 1729              	.LASF26:
- 1730 0b24 7263416C 		.string	"rcAlign"
- 1730      69676E00 
- 1731              	.LASF28:
- 1732 0b2c 72635244 		.string	"rcRDBMS"
- 1732      424D5300 
- 1733              	.LASF14:
- 1734 0b34 72634353 		.string	"rcCS"
- 1734      00
- 1735              	.LASF129:
- 1736 0b39 7263436F 		.string	"rcConcatenating"
- 1736      6E636174 
- 1736      656E6174 
- 1736      696E6700 
- 1737              	.LASF48:
- 1738 0b49 72634469 		.string	"rcDirectory"
- 1738      72656374 
- 1738      6F727900 
- 1739              	.LASF223:
- 1740 0b55 7263456D 		.string	"rcEmpty"
- 1740      70747900 
- 1741              	.LASF13:
- 1742 0b5d 7263436F 		.string	"rcCont"
- 1742      6E7400
- 1743              	.LASF33:
- 1744 0b64 52435461 		.string	"RCTarget"
-
GAS LISTING /tmp/cc32muHp.s 			page 43
-
-
- 1744      72676574 
- 1744      00
- 1745              		.ident	"GCC: (GNU) 4.4.2"
- 1746              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/cc32muHp.s 			page 44
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 no-null-ncbi.c
-     /tmp/cc32muHp.s:17     .text:0000000000000000 KNullBlockCipherVecAesNiMake
-     /tmp/cc32muHp.s:66     .rodata:0000000000000040 __func__.2445
-     /tmp/cc32muHp.s:71     .rodata:0000000000000060 __PRETTY_FUNCTION__.2444
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-SetRCFileFuncLine
diff --git a/libs/krypto/no-null-ncbi.c b/libs/krypto/no-null-ncbi.c
deleted file mode 100644
index 7477512..0000000
--- a/libs/krypto/no-null-ncbi.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <krypto/extern.h>
-
-#include "ncbi-priv.h"
-#include "cipher-priv.h"
-/* #include "blockcipher-priv.h" */
-
-#include <klib/rc.h>
-
-/* ----------------------------------------------------------------------
- * Make
- *
- * Create a new Null Block Cipher object.
- * The processor is checked to see if this particular version is supported on
- * this particular CPU.
- */
-struct KBlockCipher;
-rc_t NULLBCMEMBER(Make) (struct KBlockCipher ** new_obj)
-{
-    rc_t rc;
-
-    /* Check parameter first */
-    if (new_obj == NULL)
-        rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-    {
-        *new_obj = NULL;
-
-        rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
-    }
-    return rc;
-}
-
-/* end of file lib/krypto/aes-ncbi.c */
diff --git a/libs/krypto/no-null-ncbi.vec.pic.o.list b/libs/krypto/no-null-ncbi.vec.pic.o.list
deleted file mode 100644
index 5db68b2..0000000
--- a/libs/krypto/no-null-ncbi.vec.pic.o.list
+++ /dev/null
@@ -1,2540 +0,0 @@
-GAS LISTING /tmp/cctAECUH.s 			page 1
-
-
-   1              		.file	"no-null-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 CC000000 		.text
-   8      0200AA00 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.section	.rodata
-  11              		.align 8
-  12              	.LC0:
-  13 0000 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
-  13      652F726F 
-  13      6461726D 
-  13      65722F73 
-  13      72615F73 
-  14              		.text
-  15              	.globl KNullBlockCipherVecMake
-  16              		.type	KNullBlockCipherVecMake, @function
-  17              	KNullBlockCipherVecMake:
-  18              	.LFB15:
-  19              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include "ncbi-priv.h"
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include "cipher-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /* #include "blockcipher-priv.h" */
-
GAS LISTING /tmp/cctAECUH.s 			page 2
-
-
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include <klib/rc.h>
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /* ----------------------------------------------------------------------
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * Make
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * Create a new Null Block Cipher object.
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * The processor is checked to see if this particular version is supported on
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * this particular CPU.
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  */
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** struct KBlockCipher;
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** rc_t NULLBCMEMBER(Make) (struct KBlockCipher ** new_obj)
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** {
-  20              		.loc 1 43 0
-  21              		.cfi_startproc
-  22 0000 55       		pushq	%rbp
-  23              	.LCFI0:
-  24              		.cfi_def_cfa_offset 16
-  25 0001 4889E5   		movq	%rsp, %rbp
-  26              		.cfi_offset 6, -16
-  27              	.LCFI1:
-  28              		.cfi_def_cfa_register 6
-  29 0004 4883EC20 		subq	$32, %rsp
-  30 0008 48897DE8 		movq	%rdi, -24(%rbp)
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     rc_t rc;
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     /* Check parameter first */
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     if (new_obj == NULL)
-  31              		.loc 1 47 0
-  32 000c 48837DE8 		cmpq	$0, -24(%rbp)
-  32      00
-  33 0011 7522     		jne	.L2
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-  34              		.loc 1 48 0
-  35 0013 B9300000 		movl	$48, %ecx
-  35      00
-  36 0018 488D1500 		leaq	__func__.2350(%rip), %rdx
-  36      000000
-  37 001f 488D3500 		leaq	.LC0(%rip), %rsi
-  37      000000
-  38 0026 BF878F00 		movl	$-2030006393, %edi
-  38      87
-  39 002b E8000000 		call	SetRCFileFuncLine at PLT
-  39      00
-  40 0030 8945FC   		movl	%eax, -4(%rbp)
-  41 0033 EB2B     		jmp	.L3
-  42              	.L2:
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     else
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     {
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         *new_obj = NULL;
-  43              		.loc 1 52 0
-  44 0035 488B45E8 		movq	-24(%rbp), %rax
-  45 0039 48C70000 		movq	$0, (%rax)
-  45      000000
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
-
GAS LISTING /tmp/cctAECUH.s 			page 3
-
-
-  46              		.loc 1 54 0
-  47 0040 B9360000 		movl	$54, %ecx
-  47      00
-  48 0045 488D1500 		leaq	__func__.2350(%rip), %rdx
-  48      000000
-  49 004c 488D3500 		leaq	.LC0(%rip), %rsi
-  49      000000
-  50 0053 BF038500 		movl	$-2030009085, %edi
-  50      87
-  51 0058 E8000000 		call	SetRCFileFuncLine at PLT
-  51      00
-  52 005d 8945FC   		movl	%eax, -4(%rbp)
-  53              	.L3:
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     }
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     return rc;
-  54              		.loc 1 56 0
-  55 0060 8B45FC   		movl	-4(%rbp), %eax
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** }
-  56              		.loc 1 57 0
-  57 0063 C9       		leave
-  58 0064 C3       		ret
-  59              		.cfi_endproc
-  60              	.LFE15:
-  61              		.size	KNullBlockCipherVecMake, .-KNullBlockCipherVecMake
-  62              		.section	.rodata
-  63 003a 00000000 		.align 16
-  63      0000
-  64              		.type	__func__.2350, @object
-  65              		.size	__func__.2350, 24
-  66              	__func__.2350:
-  67 0040 4B4E756C 		.string	"KNullBlockCipherVecMake"
-  67      6C426C6F 
-  67      636B4369 
-  67      70686572 
-  67      5665634D 
-  68 0058 00000000 		.align 16
-  68      00000000 
-  69              		.type	__PRETTY_FUNCTION__.2349, @object
-  70              		.size	__PRETTY_FUNCTION__.2349, 24
-  71              	__PRETTY_FUNCTION__.2349:
-  72 0060 4B4E756C 		.string	"KNullBlockCipherVecMake"
-  72      6C426C6F 
-  72      636B4369 
-  72      70686572 
-  72      5665634D 
-  73              		.text
-  74              	.Letext0:
-  75              		.section	.debug_loc,"", at progbits
-  76              	.Ldebug_loc0:
-  77              	.LLST0:
-  78 0000 00000000 		.quad	.LFB15-.Ltext0
-  78      00000000 
-  79 0008 01000000 		.quad	.LCFI0-.Ltext0
-  79      00000000 
-  80 0010 0200     		.value	0x2
-  81 0012 77       		.byte	0x77
-  82 0013 08       		.sleb128 8
-
GAS LISTING /tmp/cctAECUH.s 			page 4
-
-
-  83 0014 01000000 		.quad	.LCFI0-.Ltext0
-  83      00000000 
-  84 001c 04000000 		.quad	.LCFI1-.Ltext0
-  84      00000000 
-  85 0024 0200     		.value	0x2
-  86 0026 77       		.byte	0x77
-  87 0027 10       		.sleb128 16
-  88 0028 04000000 		.quad	.LCFI1-.Ltext0
-  88      00000000 
-  89 0030 65000000 		.quad	.LFE15-.Ltext0
-  89      00000000 
-  90 0038 0200     		.value	0x2
-  91 003a 76       		.byte	0x76
-  92 003b 10       		.sleb128 16
-  93 003c 00000000 		.quad	0x0
-  93      00000000 
-  94 0044 00000000 		.quad	0x0
-  94      00000000 
-  95              		.file 2 "/usr/include/stdint.h"
-  96              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
-  97              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
-  98              		.section	.debug_info
-  99 0000 24070000 		.long	0x724
- 100 0004 0200     		.value	0x2
- 101 0006 00000000 		.long	.Ldebug_abbrev0
- 102 000a 08       		.byte	0x8
- 103 000b 01       		.uleb128 0x1
- 104 000c 00000000 		.long	.LASF258
- 105 0010 01       		.byte	0x1
- 106 0011 00000000 		.long	.LASF259
- 107 0015 00000000 		.long	.LASF260
- 108 0019 00000000 		.quad	.Ltext0
- 108      00000000 
- 109 0021 00000000 		.quad	.Letext0
- 109      00000000 
- 110 0029 00000000 		.long	.Ldebug_line0
- 111 002d 02       		.uleb128 0x2
- 112 002e 01       		.byte	0x1
- 113 002f 06       		.byte	0x6
- 114 0030 00000000 		.long	.LASF0
- 115 0034 02       		.uleb128 0x2
- 116 0035 02       		.byte	0x2
- 117 0036 05       		.byte	0x5
- 118 0037 00000000 		.long	.LASF1
- 119 003b 03       		.uleb128 0x3
- 120 003c 04       		.byte	0x4
- 121 003d 05       		.byte	0x5
- 122 003e 696E7400 		.string	"int"
- 123 0042 02       		.uleb128 0x2
- 124 0043 08       		.byte	0x8
- 125 0044 05       		.byte	0x5
- 126 0045 00000000 		.long	.LASF2
- 127 0049 02       		.uleb128 0x2
- 128 004a 01       		.byte	0x1
- 129 004b 08       		.byte	0x8
- 130 004c 00000000 		.long	.LASF3
- 131 0050 02       		.uleb128 0x2
-
GAS LISTING /tmp/cctAECUH.s 			page 5
-
-
- 132 0051 02       		.byte	0x2
- 133 0052 07       		.byte	0x7
- 134 0053 00000000 		.long	.LASF4
- 135 0057 04       		.uleb128 0x4
- 136 0058 00000000 		.long	.LASF7
- 137 005c 02       		.byte	0x2
- 138 005d 34       		.byte	0x34
- 139 005e 62000000 		.long	0x62
- 140 0062 02       		.uleb128 0x2
- 141 0063 04       		.byte	0x4
- 142 0064 07       		.byte	0x7
- 143 0065 00000000 		.long	.LASF5
- 144 0069 02       		.uleb128 0x2
- 145 006a 08       		.byte	0x8
- 146 006b 07       		.byte	0x7
- 147 006c 00000000 		.long	.LASF6
- 148 0070 04       		.uleb128 0x4
- 149 0071 00000000 		.long	.LASF8
- 150 0075 03       		.byte	0x3
- 151 0076 30       		.byte	0x30
- 152 0077 57000000 		.long	0x57
- 153 007b 05       		.uleb128 0x5
- 154 007c 08       		.byte	0x8
- 155 007d 07       		.byte	0x7
- 156 007e 02       		.uleb128 0x2
- 157 007f 01       		.byte	0x1
- 158 0080 06       		.byte	0x6
- 159 0081 00000000 		.long	.LASF9
- 160 0085 06       		.uleb128 0x6
- 161 0086 00000000 		.long	.LASF32
- 162 008a 04       		.byte	0x4
- 163 008b 04       		.byte	0x4
- 164 008c 5A       		.byte	0x5a
- 165 008d 16010000 		.long	0x116
- 166 0091 07       		.uleb128 0x7
- 167 0092 00000000 		.long	.LASF10
- 168 0096 00       		.sleb128 0
- 169 0097 07       		.uleb128 0x7
- 170 0098 00000000 		.long	.LASF11
- 171 009c 01       		.sleb128 1
- 172 009d 07       		.uleb128 0x7
- 173 009e 00000000 		.long	.LASF12
- 174 00a2 02       		.sleb128 2
- 175 00a3 07       		.uleb128 0x7
- 176 00a4 00000000 		.long	.LASF13
- 177 00a8 03       		.sleb128 3
- 178 00a9 07       		.uleb128 0x7
- 179 00aa 00000000 		.long	.LASF14
- 180 00ae 04       		.sleb128 4
- 181 00af 07       		.uleb128 0x7
- 182 00b0 00000000 		.long	.LASF15
- 183 00b4 05       		.sleb128 5
- 184 00b5 07       		.uleb128 0x7
- 185 00b6 00000000 		.long	.LASF16
- 186 00ba 06       		.sleb128 6
- 187 00bb 07       		.uleb128 0x7
- 188 00bc 00000000 		.long	.LASF17
-
GAS LISTING /tmp/cctAECUH.s 			page 6
-
-
- 189 00c0 07       		.sleb128 7
- 190 00c1 07       		.uleb128 0x7
- 191 00c2 00000000 		.long	.LASF18
- 192 00c6 08       		.sleb128 8
- 193 00c7 07       		.uleb128 0x7
- 194 00c8 00000000 		.long	.LASF19
- 195 00cc 09       		.sleb128 9
- 196 00cd 07       		.uleb128 0x7
- 197 00ce 00000000 		.long	.LASF20
- 198 00d2 0A       		.sleb128 10
- 199 00d3 07       		.uleb128 0x7
- 200 00d4 00000000 		.long	.LASF21
- 201 00d8 0B       		.sleb128 11
- 202 00d9 07       		.uleb128 0x7
- 203 00da 00000000 		.long	.LASF22
- 204 00de 0C       		.sleb128 12
- 205 00df 07       		.uleb128 0x7
- 206 00e0 00000000 		.long	.LASF23
- 207 00e4 0D       		.sleb128 13
- 208 00e5 07       		.uleb128 0x7
- 209 00e6 00000000 		.long	.LASF24
- 210 00ea 0E       		.sleb128 14
- 211 00eb 07       		.uleb128 0x7
- 212 00ec 00000000 		.long	.LASF25
- 213 00f0 0E       		.sleb128 14
- 214 00f1 07       		.uleb128 0x7
- 215 00f2 00000000 		.long	.LASF26
- 216 00f6 0F       		.sleb128 15
- 217 00f7 07       		.uleb128 0x7
- 218 00f8 00000000 		.long	.LASF27
- 219 00fc 10       		.sleb128 16
- 220 00fd 07       		.uleb128 0x7
- 221 00fe 00000000 		.long	.LASF28
- 222 0102 11       		.sleb128 17
- 223 0103 07       		.uleb128 0x7
- 224 0104 00000000 		.long	.LASF29
- 225 0108 12       		.sleb128 18
- 226 0109 07       		.uleb128 0x7
- 227 010a 00000000 		.long	.LASF30
- 228 010e 13       		.sleb128 19
- 229 010f 07       		.uleb128 0x7
- 230 0110 00000000 		.long	.LASF31
- 231 0114 14       		.sleb128 20
- 232 0115 00       		.byte	0x0
- 233 0116 06       		.uleb128 0x6
- 234 0117 00000000 		.long	.LASF33
- 235 011b 04       		.byte	0x4
- 236 011c 04       		.byte	0x4
- 237 011d 77       		.byte	0x77
- 238 011e 9D020000 		.long	0x29d
- 239 0122 07       		.uleb128 0x7
- 240 0123 00000000 		.long	.LASF34
- 241 0127 00       		.sleb128 0
- 242 0128 07       		.uleb128 0x7
- 243 0129 00000000 		.long	.LASF35
- 244 012d 01       		.sleb128 1
- 245 012e 07       		.uleb128 0x7
-
GAS LISTING /tmp/cctAECUH.s 			page 7
-
-
- 246 012f 00000000 		.long	.LASF36
- 247 0133 02       		.sleb128 2
- 248 0134 07       		.uleb128 0x7
- 249 0135 00000000 		.long	.LASF37
- 250 0139 03       		.sleb128 3
- 251 013a 07       		.uleb128 0x7
- 252 013b 00000000 		.long	.LASF38
- 253 013f 04       		.sleb128 4
- 254 0140 07       		.uleb128 0x7
- 255 0141 00000000 		.long	.LASF39
- 256 0145 05       		.sleb128 5
- 257 0146 07       		.uleb128 0x7
- 258 0147 00000000 		.long	.LASF40
- 259 014b 06       		.sleb128 6
- 260 014c 07       		.uleb128 0x7
- 261 014d 00000000 		.long	.LASF41
- 262 0151 07       		.sleb128 7
- 263 0152 07       		.uleb128 0x7
- 264 0153 00000000 		.long	.LASF42
- 265 0157 08       		.sleb128 8
- 266 0158 07       		.uleb128 0x7
- 267 0159 00000000 		.long	.LASF43
- 268 015d 09       		.sleb128 9
- 269 015e 07       		.uleb128 0x7
- 270 015f 00000000 		.long	.LASF44
- 271 0163 0A       		.sleb128 10
- 272 0164 07       		.uleb128 0x7
- 273 0165 00000000 		.long	.LASF45
- 274 0169 0B       		.sleb128 11
- 275 016a 07       		.uleb128 0x7
- 276 016b 00000000 		.long	.LASF46
- 277 016f 0C       		.sleb128 12
- 278 0170 07       		.uleb128 0x7
- 279 0171 00000000 		.long	.LASF47
- 280 0175 0D       		.sleb128 13
- 281 0176 07       		.uleb128 0x7
- 282 0177 00000000 		.long	.LASF48
- 283 017b 0E       		.sleb128 14
- 284 017c 07       		.uleb128 0x7
- 285 017d 00000000 		.long	.LASF49
- 286 0181 0F       		.sleb128 15
- 287 0182 07       		.uleb128 0x7
- 288 0183 00000000 		.long	.LASF50
- 289 0187 10       		.sleb128 16
- 290 0188 07       		.uleb128 0x7
- 291 0189 00000000 		.long	.LASF51
- 292 018d 11       		.sleb128 17
- 293 018e 07       		.uleb128 0x7
- 294 018f 00000000 		.long	.LASF52
- 295 0193 12       		.sleb128 18
- 296 0194 07       		.uleb128 0x7
- 297 0195 00000000 		.long	.LASF53
- 298 0199 13       		.sleb128 19
- 299 019a 07       		.uleb128 0x7
- 300 019b 00000000 		.long	.LASF54
- 301 019f 14       		.sleb128 20
- 302 01a0 07       		.uleb128 0x7
-
GAS LISTING /tmp/cctAECUH.s 			page 8
-
-
- 303 01a1 00000000 		.long	.LASF55
- 304 01a5 15       		.sleb128 21
- 305 01a6 07       		.uleb128 0x7
- 306 01a7 00000000 		.long	.LASF56
- 307 01ab 16       		.sleb128 22
- 308 01ac 07       		.uleb128 0x7
- 309 01ad 00000000 		.long	.LASF57
- 310 01b1 17       		.sleb128 23
- 311 01b2 07       		.uleb128 0x7
- 312 01b3 00000000 		.long	.LASF58
- 313 01b7 18       		.sleb128 24
- 314 01b8 07       		.uleb128 0x7
- 315 01b9 00000000 		.long	.LASF59
- 316 01bd 19       		.sleb128 25
- 317 01be 07       		.uleb128 0x7
- 318 01bf 00000000 		.long	.LASF60
- 319 01c3 1A       		.sleb128 26
- 320 01c4 07       		.uleb128 0x7
- 321 01c5 00000000 		.long	.LASF61
- 322 01c9 1B       		.sleb128 27
- 323 01ca 07       		.uleb128 0x7
- 324 01cb 00000000 		.long	.LASF62
- 325 01cf 1C       		.sleb128 28
- 326 01d0 07       		.uleb128 0x7
- 327 01d1 00000000 		.long	.LASF63
- 328 01d5 1D       		.sleb128 29
- 329 01d6 07       		.uleb128 0x7
- 330 01d7 00000000 		.long	.LASF64
- 331 01db 1E       		.sleb128 30
- 332 01dc 07       		.uleb128 0x7
- 333 01dd 00000000 		.long	.LASF65
- 334 01e1 1F       		.sleb128 31
- 335 01e2 07       		.uleb128 0x7
- 336 01e3 00000000 		.long	.LASF66
- 337 01e7 20       		.sleb128 32
- 338 01e8 07       		.uleb128 0x7
- 339 01e9 00000000 		.long	.LASF67
- 340 01ed 21       		.sleb128 33
- 341 01ee 07       		.uleb128 0x7
- 342 01ef 00000000 		.long	.LASF68
- 343 01f3 22       		.sleb128 34
- 344 01f4 07       		.uleb128 0x7
- 345 01f5 00000000 		.long	.LASF69
- 346 01f9 23       		.sleb128 35
- 347 01fa 07       		.uleb128 0x7
- 348 01fb 00000000 		.long	.LASF70
- 349 01ff 24       		.sleb128 36
- 350 0200 07       		.uleb128 0x7
- 351 0201 00000000 		.long	.LASF71
- 352 0205 25       		.sleb128 37
- 353 0206 07       		.uleb128 0x7
- 354 0207 00000000 		.long	.LASF72
- 355 020b 26       		.sleb128 38
- 356 020c 07       		.uleb128 0x7
- 357 020d 00000000 		.long	.LASF73
- 358 0211 27       		.sleb128 39
- 359 0212 07       		.uleb128 0x7
-
GAS LISTING /tmp/cctAECUH.s 			page 9
-
-
- 360 0213 00000000 		.long	.LASF74
- 361 0217 28       		.sleb128 40
- 362 0218 07       		.uleb128 0x7
- 363 0219 00000000 		.long	.LASF75
- 364 021d 29       		.sleb128 41
- 365 021e 07       		.uleb128 0x7
- 366 021f 00000000 		.long	.LASF76
- 367 0223 2A       		.sleb128 42
- 368 0224 07       		.uleb128 0x7
- 369 0225 00000000 		.long	.LASF77
- 370 0229 2B       		.sleb128 43
- 371 022a 07       		.uleb128 0x7
- 372 022b 00000000 		.long	.LASF78
- 373 022f 2C       		.sleb128 44
- 374 0230 07       		.uleb128 0x7
- 375 0231 00000000 		.long	.LASF79
- 376 0235 2D       		.sleb128 45
- 377 0236 07       		.uleb128 0x7
- 378 0237 00000000 		.long	.LASF80
- 379 023b 2E       		.sleb128 46
- 380 023c 07       		.uleb128 0x7
- 381 023d 00000000 		.long	.LASF81
- 382 0241 2F       		.sleb128 47
- 383 0242 07       		.uleb128 0x7
- 384 0243 00000000 		.long	.LASF82
- 385 0247 30       		.sleb128 48
- 386 0248 07       		.uleb128 0x7
- 387 0249 00000000 		.long	.LASF83
- 388 024d 31       		.sleb128 49
- 389 024e 07       		.uleb128 0x7
- 390 024f 00000000 		.long	.LASF84
- 391 0253 32       		.sleb128 50
- 392 0254 07       		.uleb128 0x7
- 393 0255 00000000 		.long	.LASF85
- 394 0259 33       		.sleb128 51
- 395 025a 07       		.uleb128 0x7
- 396 025b 00000000 		.long	.LASF86
- 397 025f 34       		.sleb128 52
- 398 0260 07       		.uleb128 0x7
- 399 0261 00000000 		.long	.LASF87
- 400 0265 35       		.sleb128 53
- 401 0266 07       		.uleb128 0x7
- 402 0267 00000000 		.long	.LASF88
- 403 026b 36       		.sleb128 54
- 404 026c 07       		.uleb128 0x7
- 405 026d 00000000 		.long	.LASF89
- 406 0271 36       		.sleb128 54
- 407 0272 07       		.uleb128 0x7
- 408 0273 00000000 		.long	.LASF90
- 409 0277 37       		.sleb128 55
- 410 0278 07       		.uleb128 0x7
- 411 0279 00000000 		.long	.LASF91
- 412 027d 38       		.sleb128 56
- 413 027e 07       		.uleb128 0x7
- 414 027f 00000000 		.long	.LASF92
- 415 0283 39       		.sleb128 57
- 416 0284 07       		.uleb128 0x7
-
GAS LISTING /tmp/cctAECUH.s 			page 10
-
-
- 417 0285 00000000 		.long	.LASF93
- 418 0289 3A       		.sleb128 58
- 419 028a 07       		.uleb128 0x7
- 420 028b 00000000 		.long	.LASF94
- 421 028f 3B       		.sleb128 59
- 422 0290 07       		.uleb128 0x7
- 423 0291 00000000 		.long	.LASF95
- 424 0295 3C       		.sleb128 60
- 425 0296 07       		.uleb128 0x7
- 426 0297 00000000 		.long	.LASF96
- 427 029b 3D       		.sleb128 61
- 428 029c 00       		.byte	0x0
- 429 029d 06       		.uleb128 0x6
- 430 029e 00000000 		.long	.LASF97
- 431 02a2 04       		.byte	0x4
- 432 02a3 04       		.byte	0x4
- 433 02a4 BD       		.byte	0xbd
- 434 02a5 53040000 		.long	0x453
- 435 02a9 07       		.uleb128 0x7
- 436 02aa 00000000 		.long	.LASF98
- 437 02ae 00       		.sleb128 0
- 438 02af 07       		.uleb128 0x7
- 439 02b0 00000000 		.long	.LASF99
- 440 02b4 01       		.sleb128 1
- 441 02b5 07       		.uleb128 0x7
- 442 02b6 00000000 		.long	.LASF100
- 443 02ba 02       		.sleb128 2
- 444 02bb 07       		.uleb128 0x7
- 445 02bc 00000000 		.long	.LASF101
- 446 02c0 03       		.sleb128 3
- 447 02c1 07       		.uleb128 0x7
- 448 02c2 00000000 		.long	.LASF102
- 449 02c6 04       		.sleb128 4
- 450 02c7 07       		.uleb128 0x7
- 451 02c8 00000000 		.long	.LASF103
- 452 02cc 05       		.sleb128 5
- 453 02cd 07       		.uleb128 0x7
- 454 02ce 00000000 		.long	.LASF104
- 455 02d2 06       		.sleb128 6
- 456 02d3 07       		.uleb128 0x7
- 457 02d4 00000000 		.long	.LASF105
- 458 02d8 07       		.sleb128 7
- 459 02d9 07       		.uleb128 0x7
- 460 02da 00000000 		.long	.LASF106
- 461 02de 08       		.sleb128 8
- 462 02df 07       		.uleb128 0x7
- 463 02e0 00000000 		.long	.LASF107
- 464 02e4 09       		.sleb128 9
- 465 02e5 07       		.uleb128 0x7
- 466 02e6 00000000 		.long	.LASF108
- 467 02ea 0A       		.sleb128 10
- 468 02eb 07       		.uleb128 0x7
- 469 02ec 00000000 		.long	.LASF109
- 470 02f0 0B       		.sleb128 11
- 471 02f1 07       		.uleb128 0x7
- 472 02f2 00000000 		.long	.LASF110
- 473 02f6 0C       		.sleb128 12
-
GAS LISTING /tmp/cctAECUH.s 			page 11
-
-
- 474 02f7 07       		.uleb128 0x7
- 475 02f8 00000000 		.long	.LASF111
- 476 02fc 0D       		.sleb128 13
- 477 02fd 07       		.uleb128 0x7
- 478 02fe 00000000 		.long	.LASF112
- 479 0302 0E       		.sleb128 14
- 480 0303 07       		.uleb128 0x7
- 481 0304 00000000 		.long	.LASF113
- 482 0308 0F       		.sleb128 15
- 483 0309 07       		.uleb128 0x7
- 484 030a 00000000 		.long	.LASF114
- 485 030e 10       		.sleb128 16
- 486 030f 07       		.uleb128 0x7
- 487 0310 00000000 		.long	.LASF115
- 488 0314 11       		.sleb128 17
- 489 0315 07       		.uleb128 0x7
- 490 0316 00000000 		.long	.LASF116
- 491 031a 12       		.sleb128 18
- 492 031b 07       		.uleb128 0x7
- 493 031c 00000000 		.long	.LASF117
- 494 0320 13       		.sleb128 19
- 495 0321 07       		.uleb128 0x7
- 496 0322 00000000 		.long	.LASF118
- 497 0326 14       		.sleb128 20
- 498 0327 07       		.uleb128 0x7
- 499 0328 00000000 		.long	.LASF119
- 500 032c 15       		.sleb128 21
- 501 032d 07       		.uleb128 0x7
- 502 032e 00000000 		.long	.LASF120
- 503 0332 16       		.sleb128 22
- 504 0333 07       		.uleb128 0x7
- 505 0334 00000000 		.long	.LASF121
- 506 0338 17       		.sleb128 23
- 507 0339 07       		.uleb128 0x7
- 508 033a 00000000 		.long	.LASF122
- 509 033e 18       		.sleb128 24
- 510 033f 07       		.uleb128 0x7
- 511 0340 00000000 		.long	.LASF123
- 512 0344 19       		.sleb128 25
- 513 0345 07       		.uleb128 0x7
- 514 0346 00000000 		.long	.LASF124
- 515 034a 1A       		.sleb128 26
- 516 034b 07       		.uleb128 0x7
- 517 034c 00000000 		.long	.LASF125
- 518 0350 1B       		.sleb128 27
- 519 0351 07       		.uleb128 0x7
- 520 0352 00000000 		.long	.LASF126
- 521 0356 1C       		.sleb128 28
- 522 0357 07       		.uleb128 0x7
- 523 0358 00000000 		.long	.LASF127
- 524 035c 1D       		.sleb128 29
- 525 035d 07       		.uleb128 0x7
- 526 035e 00000000 		.long	.LASF128
- 527 0362 1E       		.sleb128 30
- 528 0363 07       		.uleb128 0x7
- 529 0364 00000000 		.long	.LASF129
- 530 0368 1F       		.sleb128 31
-
GAS LISTING /tmp/cctAECUH.s 			page 12
-
-
- 531 0369 07       		.uleb128 0x7
- 532 036a 00000000 		.long	.LASF130
- 533 036e 20       		.sleb128 32
- 534 036f 07       		.uleb128 0x7
- 535 0370 00000000 		.long	.LASF131
- 536 0374 21       		.sleb128 33
- 537 0375 07       		.uleb128 0x7
- 538 0376 00000000 		.long	.LASF132
- 539 037a 22       		.sleb128 34
- 540 037b 07       		.uleb128 0x7
- 541 037c 00000000 		.long	.LASF133
- 542 0380 23       		.sleb128 35
- 543 0381 07       		.uleb128 0x7
- 544 0382 00000000 		.long	.LASF134
- 545 0386 24       		.sleb128 36
- 546 0387 07       		.uleb128 0x7
- 547 0388 00000000 		.long	.LASF135
- 548 038c 25       		.sleb128 37
- 549 038d 07       		.uleb128 0x7
- 550 038e 00000000 		.long	.LASF136
- 551 0392 26       		.sleb128 38
- 552 0393 07       		.uleb128 0x7
- 553 0394 00000000 		.long	.LASF137
- 554 0398 27       		.sleb128 39
- 555 0399 07       		.uleb128 0x7
- 556 039a 00000000 		.long	.LASF138
- 557 039e 28       		.sleb128 40
- 558 039f 07       		.uleb128 0x7
- 559 03a0 00000000 		.long	.LASF139
- 560 03a4 29       		.sleb128 41
- 561 03a5 07       		.uleb128 0x7
- 562 03a6 00000000 		.long	.LASF140
- 563 03aa 2A       		.sleb128 42
- 564 03ab 07       		.uleb128 0x7
- 565 03ac 00000000 		.long	.LASF141
- 566 03b0 2B       		.sleb128 43
- 567 03b1 07       		.uleb128 0x7
- 568 03b2 00000000 		.long	.LASF142
- 569 03b6 2C       		.sleb128 44
- 570 03b7 07       		.uleb128 0x7
- 571 03b8 00000000 		.long	.LASF143
- 572 03bc 2D       		.sleb128 45
- 573 03bd 07       		.uleb128 0x7
- 574 03be 00000000 		.long	.LASF144
- 575 03c2 2E       		.sleb128 46
- 576 03c3 07       		.uleb128 0x7
- 577 03c4 00000000 		.long	.LASF145
- 578 03c8 2F       		.sleb128 47
- 579 03c9 07       		.uleb128 0x7
- 580 03ca 00000000 		.long	.LASF146
- 581 03ce 30       		.sleb128 48
- 582 03cf 07       		.uleb128 0x7
- 583 03d0 00000000 		.long	.LASF147
- 584 03d4 31       		.sleb128 49
- 585 03d5 07       		.uleb128 0x7
- 586 03d6 00000000 		.long	.LASF148
- 587 03da 32       		.sleb128 50
-
GAS LISTING /tmp/cctAECUH.s 			page 13
-
-
- 588 03db 07       		.uleb128 0x7
- 589 03dc 00000000 		.long	.LASF149
- 590 03e0 33       		.sleb128 51
- 591 03e1 07       		.uleb128 0x7
- 592 03e2 00000000 		.long	.LASF150
- 593 03e6 34       		.sleb128 52
- 594 03e7 07       		.uleb128 0x7
- 595 03e8 00000000 		.long	.LASF151
- 596 03ec 35       		.sleb128 53
- 597 03ed 07       		.uleb128 0x7
- 598 03ee 00000000 		.long	.LASF152
- 599 03f2 36       		.sleb128 54
- 600 03f3 07       		.uleb128 0x7
- 601 03f4 00000000 		.long	.LASF153
- 602 03f8 37       		.sleb128 55
- 603 03f9 07       		.uleb128 0x7
- 604 03fa 00000000 		.long	.LASF154
- 605 03fe 38       		.sleb128 56
- 606 03ff 07       		.uleb128 0x7
- 607 0400 00000000 		.long	.LASF155
- 608 0404 39       		.sleb128 57
- 609 0405 07       		.uleb128 0x7
- 610 0406 00000000 		.long	.LASF156
- 611 040a 3A       		.sleb128 58
- 612 040b 07       		.uleb128 0x7
- 613 040c 00000000 		.long	.LASF157
- 614 0410 3A       		.sleb128 58
- 615 0411 07       		.uleb128 0x7
- 616 0412 00000000 		.long	.LASF158
- 617 0416 3B       		.sleb128 59
- 618 0417 07       		.uleb128 0x7
- 619 0418 00000000 		.long	.LASF159
- 620 041c 3C       		.sleb128 60
- 621 041d 07       		.uleb128 0x7
- 622 041e 00000000 		.long	.LASF160
- 623 0422 3D       		.sleb128 61
- 624 0423 07       		.uleb128 0x7
- 625 0424 00000000 		.long	.LASF161
- 626 0428 3E       		.sleb128 62
- 627 0429 07       		.uleb128 0x7
- 628 042a 00000000 		.long	.LASF162
- 629 042e 3F       		.sleb128 63
- 630 042f 07       		.uleb128 0x7
- 631 0430 00000000 		.long	.LASF163
- 632 0434 C000     		.sleb128 64
- 633 0436 07       		.uleb128 0x7
- 634 0437 00000000 		.long	.LASF164
- 635 043b C100     		.sleb128 65
- 636 043d 07       		.uleb128 0x7
- 637 043e 00000000 		.long	.LASF165
- 638 0442 C200     		.sleb128 66
- 639 0444 07       		.uleb128 0x7
- 640 0445 00000000 		.long	.LASF166
- 641 0449 C300     		.sleb128 67
- 642 044b 07       		.uleb128 0x7
- 643 044c 00000000 		.long	.LASF167
- 644 0450 C400     		.sleb128 68
-
GAS LISTING /tmp/cctAECUH.s 			page 14
-
-
- 645 0452 00       		.byte	0x0
- 646 0453 08       		.uleb128 0x8
- 647 0454 00000000 		.long	.LASF168
- 648 0458 04       		.byte	0x4
- 649 0459 04       		.byte	0x4
- 650 045a 0A01     		.value	0x10a
- 651 045c 52050000 		.long	0x552
- 652 0460 07       		.uleb128 0x7
- 653 0461 00000000 		.long	.LASF169
- 654 0465 00       		.sleb128 0
- 655 0466 07       		.uleb128 0x7
- 656 0467 00000000 		.long	.LASF170
- 657 046b 3D       		.sleb128 61
- 658 046c 07       		.uleb128 0x7
- 659 046d 00000000 		.long	.LASF171
- 660 0471 3E       		.sleb128 62
- 661 0472 07       		.uleb128 0x7
- 662 0473 00000000 		.long	.LASF172
- 663 0477 3F       		.sleb128 63
- 664 0478 07       		.uleb128 0x7
- 665 0479 00000000 		.long	.LASF173
- 666 047d C000     		.sleb128 64
- 667 047f 07       		.uleb128 0x7
- 668 0480 00000000 		.long	.LASF174
- 669 0484 C100     		.sleb128 65
- 670 0486 07       		.uleb128 0x7
- 671 0487 00000000 		.long	.LASF175
- 672 048b C200     		.sleb128 66
- 673 048d 07       		.uleb128 0x7
- 674 048e 00000000 		.long	.LASF176
- 675 0492 C300     		.sleb128 67
- 676 0494 07       		.uleb128 0x7
- 677 0495 00000000 		.long	.LASF177
- 678 0499 C400     		.sleb128 68
- 679 049b 07       		.uleb128 0x7
- 680 049c 00000000 		.long	.LASF178
- 681 04a0 C500     		.sleb128 69
- 682 04a2 07       		.uleb128 0x7
- 683 04a3 00000000 		.long	.LASF179
- 684 04a7 C600     		.sleb128 70
- 685 04a9 07       		.uleb128 0x7
- 686 04aa 00000000 		.long	.LASF180
- 687 04ae C700     		.sleb128 71
- 688 04b0 07       		.uleb128 0x7
- 689 04b1 00000000 		.long	.LASF181
- 690 04b5 C800     		.sleb128 72
- 691 04b7 07       		.uleb128 0x7
- 692 04b8 00000000 		.long	.LASF182
- 693 04bc C900     		.sleb128 73
- 694 04be 07       		.uleb128 0x7
- 695 04bf 00000000 		.long	.LASF183
- 696 04c3 CA00     		.sleb128 74
- 697 04c5 07       		.uleb128 0x7
- 698 04c6 00000000 		.long	.LASF184
- 699 04ca CB00     		.sleb128 75
- 700 04cc 07       		.uleb128 0x7
- 701 04cd 00000000 		.long	.LASF185
-
GAS LISTING /tmp/cctAECUH.s 			page 15
-
-
- 702 04d1 CC00     		.sleb128 76
- 703 04d3 07       		.uleb128 0x7
- 704 04d4 00000000 		.long	.LASF186
- 705 04d8 CD00     		.sleb128 77
- 706 04da 07       		.uleb128 0x7
- 707 04db 00000000 		.long	.LASF187
- 708 04df CE00     		.sleb128 78
- 709 04e1 07       		.uleb128 0x7
- 710 04e2 00000000 		.long	.LASF188
- 711 04e6 CF00     		.sleb128 79
- 712 04e8 07       		.uleb128 0x7
- 713 04e9 00000000 		.long	.LASF189
- 714 04ed D000     		.sleb128 80
- 715 04ef 07       		.uleb128 0x7
- 716 04f0 00000000 		.long	.LASF190
- 717 04f4 D100     		.sleb128 81
- 718 04f6 07       		.uleb128 0x7
- 719 04f7 00000000 		.long	.LASF191
- 720 04fb D100     		.sleb128 81
- 721 04fd 07       		.uleb128 0x7
- 722 04fe 00000000 		.long	.LASF192
- 723 0502 D200     		.sleb128 82
- 724 0504 07       		.uleb128 0x7
- 725 0505 00000000 		.long	.LASF193
- 726 0509 D300     		.sleb128 83
- 727 050b 07       		.uleb128 0x7
- 728 050c 00000000 		.long	.LASF194
- 729 0510 D400     		.sleb128 84
- 730 0512 07       		.uleb128 0x7
- 731 0513 00000000 		.long	.LASF195
- 732 0517 D500     		.sleb128 85
- 733 0519 07       		.uleb128 0x7
- 734 051a 00000000 		.long	.LASF196
- 735 051e D600     		.sleb128 86
- 736 0520 07       		.uleb128 0x7
- 737 0521 00000000 		.long	.LASF197
- 738 0525 D700     		.sleb128 87
- 739 0527 07       		.uleb128 0x7
- 740 0528 00000000 		.long	.LASF198
- 741 052c D800     		.sleb128 88
- 742 052e 07       		.uleb128 0x7
- 743 052f 00000000 		.long	.LASF199
- 744 0533 D900     		.sleb128 89
- 745 0535 07       		.uleb128 0x7
- 746 0536 00000000 		.long	.LASF200
- 747 053a DA00     		.sleb128 90
- 748 053c 07       		.uleb128 0x7
- 749 053d 00000000 		.long	.LASF201
- 750 0541 DB00     		.sleb128 91
- 751 0543 07       		.uleb128 0x7
- 752 0544 00000000 		.long	.LASF202
- 753 0548 DC00     		.sleb128 92
- 754 054a 07       		.uleb128 0x7
- 755 054b 00000000 		.long	.LASF203
- 756 054f DD00     		.sleb128 93
- 757 0551 00       		.byte	0x0
- 758 0552 08       		.uleb128 0x8
-
GAS LISTING /tmp/cctAECUH.s 			page 16
-
-
- 759 0553 00000000 		.long	.LASF204
- 760 0557 04       		.byte	0x4
- 761 0558 04       		.byte	0x4
- 762 0559 3401     		.value	0x134
- 763 055b 92060000 		.long	0x692
- 764 055f 07       		.uleb128 0x7
- 765 0560 00000000 		.long	.LASF205
- 766 0564 00       		.sleb128 0
- 767 0565 07       		.uleb128 0x7
- 768 0566 00000000 		.long	.LASF206
- 769 056a 01       		.sleb128 1
- 770 056b 07       		.uleb128 0x7
- 771 056c 00000000 		.long	.LASF207
- 772 0570 02       		.sleb128 2
- 773 0571 07       		.uleb128 0x7
- 774 0572 00000000 		.long	.LASF208
- 775 0576 03       		.sleb128 3
- 776 0577 07       		.uleb128 0x7
- 777 0578 00000000 		.long	.LASF209
- 778 057c 04       		.sleb128 4
- 779 057d 07       		.uleb128 0x7
- 780 057e 00000000 		.long	.LASF210
- 781 0582 05       		.sleb128 5
- 782 0583 07       		.uleb128 0x7
- 783 0584 00000000 		.long	.LASF211
- 784 0588 06       		.sleb128 6
- 785 0589 07       		.uleb128 0x7
- 786 058a 00000000 		.long	.LASF212
- 787 058e 07       		.sleb128 7
- 788 058f 07       		.uleb128 0x7
- 789 0590 00000000 		.long	.LASF213
- 790 0594 08       		.sleb128 8
- 791 0595 07       		.uleb128 0x7
- 792 0596 00000000 		.long	.LASF214
- 793 059a 09       		.sleb128 9
- 794 059b 07       		.uleb128 0x7
- 795 059c 00000000 		.long	.LASF215
- 796 05a0 0A       		.sleb128 10
- 797 05a1 07       		.uleb128 0x7
- 798 05a2 00000000 		.long	.LASF216
- 799 05a6 0B       		.sleb128 11
- 800 05a7 07       		.uleb128 0x7
- 801 05a8 00000000 		.long	.LASF217
- 802 05ac 0C       		.sleb128 12
- 803 05ad 07       		.uleb128 0x7
- 804 05ae 00000000 		.long	.LASF218
- 805 05b2 0D       		.sleb128 13
- 806 05b3 07       		.uleb128 0x7
- 807 05b4 00000000 		.long	.LASF219
- 808 05b8 0E       		.sleb128 14
- 809 05b9 07       		.uleb128 0x7
- 810 05ba 00000000 		.long	.LASF220
- 811 05be 0F       		.sleb128 15
- 812 05bf 07       		.uleb128 0x7
- 813 05c0 00000000 		.long	.LASF221
- 814 05c4 10       		.sleb128 16
- 815 05c5 07       		.uleb128 0x7
-
GAS LISTING /tmp/cctAECUH.s 			page 17
-
-
- 816 05c6 00000000 		.long	.LASF222
- 817 05ca 11       		.sleb128 17
- 818 05cb 07       		.uleb128 0x7
- 819 05cc 00000000 		.long	.LASF223
- 820 05d0 12       		.sleb128 18
- 821 05d1 07       		.uleb128 0x7
- 822 05d2 00000000 		.long	.LASF224
- 823 05d6 13       		.sleb128 19
- 824 05d7 07       		.uleb128 0x7
- 825 05d8 00000000 		.long	.LASF225
- 826 05dc 14       		.sleb128 20
- 827 05dd 07       		.uleb128 0x7
- 828 05de 00000000 		.long	.LASF226
- 829 05e2 15       		.sleb128 21
- 830 05e3 07       		.uleb128 0x7
- 831 05e4 00000000 		.long	.LASF227
- 832 05e8 16       		.sleb128 22
- 833 05e9 07       		.uleb128 0x7
- 834 05ea 00000000 		.long	.LASF228
- 835 05ee 17       		.sleb128 23
- 836 05ef 07       		.uleb128 0x7
- 837 05f0 00000000 		.long	.LASF229
- 838 05f4 18       		.sleb128 24
- 839 05f5 07       		.uleb128 0x7
- 840 05f6 00000000 		.long	.LASF230
- 841 05fa 19       		.sleb128 25
- 842 05fb 07       		.uleb128 0x7
- 843 05fc 00000000 		.long	.LASF231
- 844 0600 1A       		.sleb128 26
- 845 0601 07       		.uleb128 0x7
- 846 0602 00000000 		.long	.LASF232
- 847 0606 1B       		.sleb128 27
- 848 0607 07       		.uleb128 0x7
- 849 0608 00000000 		.long	.LASF233
- 850 060c 1C       		.sleb128 28
- 851 060d 07       		.uleb128 0x7
- 852 060e 00000000 		.long	.LASF234
- 853 0612 1D       		.sleb128 29
- 854 0613 07       		.uleb128 0x7
- 855 0614 00000000 		.long	.LASF235
- 856 0618 1E       		.sleb128 30
- 857 0619 07       		.uleb128 0x7
- 858 061a 00000000 		.long	.LASF236
- 859 061e 1F       		.sleb128 31
- 860 061f 07       		.uleb128 0x7
- 861 0620 00000000 		.long	.LASF237
- 862 0624 20       		.sleb128 32
- 863 0625 07       		.uleb128 0x7
- 864 0626 00000000 		.long	.LASF238
- 865 062a 21       		.sleb128 33
- 866 062b 07       		.uleb128 0x7
- 867 062c 00000000 		.long	.LASF239
- 868 0630 22       		.sleb128 34
- 869 0631 07       		.uleb128 0x7
- 870 0632 00000000 		.long	.LASF240
- 871 0636 23       		.sleb128 35
- 872 0637 07       		.uleb128 0x7
-
GAS LISTING /tmp/cctAECUH.s 			page 18
-
-
- 873 0638 00000000 		.long	.LASF241
- 874 063c 24       		.sleb128 36
- 875 063d 07       		.uleb128 0x7
- 876 063e 00000000 		.long	.LASF242
- 877 0642 25       		.sleb128 37
- 878 0643 07       		.uleb128 0x7
- 879 0644 00000000 		.long	.LASF243
- 880 0648 26       		.sleb128 38
- 881 0649 07       		.uleb128 0x7
- 882 064a 00000000 		.long	.LASF244
- 883 064e 27       		.sleb128 39
- 884 064f 07       		.uleb128 0x7
- 885 0650 00000000 		.long	.LASF245
- 886 0654 28       		.sleb128 40
- 887 0655 07       		.uleb128 0x7
- 888 0656 00000000 		.long	.LASF246
- 889 065a 29       		.sleb128 41
- 890 065b 07       		.uleb128 0x7
- 891 065c 00000000 		.long	.LASF247
- 892 0660 29       		.sleb128 41
- 893 0661 07       		.uleb128 0x7
- 894 0662 00000000 		.long	.LASF248
- 895 0666 2A       		.sleb128 42
- 896 0667 07       		.uleb128 0x7
- 897 0668 00000000 		.long	.LASF249
- 898 066c 2B       		.sleb128 43
- 899 066d 07       		.uleb128 0x7
- 900 066e 00000000 		.long	.LASF250
- 901 0672 2C       		.sleb128 44
- 902 0673 07       		.uleb128 0x7
- 903 0674 00000000 		.long	.LASF251
- 904 0678 2D       		.sleb128 45
- 905 0679 07       		.uleb128 0x7
- 906 067a 00000000 		.long	.LASF252
- 907 067e 2E       		.sleb128 46
- 908 067f 07       		.uleb128 0x7
- 909 0680 00000000 		.long	.LASF253
- 910 0684 2F       		.sleb128 47
- 911 0685 07       		.uleb128 0x7
- 912 0686 00000000 		.long	.LASF254
- 913 068a 30       		.sleb128 48
- 914 068b 07       		.uleb128 0x7
- 915 068c 00000000 		.long	.LASF255
- 916 0690 31       		.sleb128 49
- 917 0691 00       		.byte	0x0
- 918 0692 09       		.uleb128 0x9
- 919 0693 01       		.byte	0x1
- 920 0694 00000000 		.long	.LASF261
- 921 0698 01       		.byte	0x1
- 922 0699 2A       		.byte	0x2a
- 923 069a 01       		.byte	0x1
- 924 069b 70000000 		.long	0x70
- 925 069f 00000000 		.quad	.LFB15
- 925      00000000 
- 926 06a7 00000000 		.quad	.LFE15
- 926      00000000 
- 927 06af 00000000 		.long	.LLST0
-
GAS LISTING /tmp/cctAECUH.s 			page 19
-
-
- 928 06b3 01070000 		.long	0x701
- 929 06b7 0A       		.uleb128 0xa
- 930 06b8 00000000 		.long	.LASF262
- 931 06bc 01       		.byte	0x1
- 932 06bd 0B       		.uleb128 0xb
- 933 06be 00000000 		.long	.LASF263
- 934 06c2 01       		.byte	0x1
- 935 06c3 2A       		.byte	0x2a
- 936 06c4 01070000 		.long	0x701
- 937 06c8 02       		.byte	0x2
- 938 06c9 91       		.byte	0x91
- 939 06ca 58       		.sleb128 -40
- 940 06cb 0C       		.uleb128 0xc
- 941 06cc 726300   		.string	"rc"
- 942 06cf 01       		.byte	0x1
- 943 06d0 2C       		.byte	0x2c
- 944 06d1 70000000 		.long	0x70
- 945 06d5 02       		.byte	0x2
- 946 06d6 91       		.byte	0x91
- 947 06d7 6C       		.sleb128 -20
- 948 06d8 0D       		.uleb128 0xd
- 949 06d9 00000000 		.long	.LASF256
- 950 06dd 1D070000 		.long	0x71d
- 951 06e1 01       		.byte	0x1
- 952 06e2 09       		.byte	0x9
- 953 06e3 03       		.byte	0x3
- 954 06e4 00000000 		.quad	__PRETTY_FUNCTION__.2349
- 954      00000000 
- 955 06ec 0D       		.uleb128 0xd
- 956 06ed 00000000 		.long	.LASF257
- 957 06f1 22070000 		.long	0x722
- 958 06f5 01       		.byte	0x1
- 959 06f6 09       		.byte	0x9
- 960 06f7 03       		.byte	0x3
- 961 06f8 00000000 		.quad	__func__.2350
- 961      00000000 
- 962 0700 00       		.byte	0x0
- 963 0701 0E       		.uleb128 0xe
- 964 0702 08       		.byte	0x8
- 965 0703 07070000 		.long	0x707
- 966 0707 0E       		.uleb128 0xe
- 967 0708 08       		.byte	0x8
- 968 0709 B7060000 		.long	0x6b7
- 969 070d 0F       		.uleb128 0xf
- 970 070e 7E000000 		.long	0x7e
- 971 0712 1D070000 		.long	0x71d
- 972 0716 10       		.uleb128 0x10
- 973 0717 7B000000 		.long	0x7b
- 974 071b 17       		.byte	0x17
- 975 071c 00       		.byte	0x0
- 976 071d 11       		.uleb128 0x11
- 977 071e 0D070000 		.long	0x70d
- 978 0722 11       		.uleb128 0x11
- 979 0723 0D070000 		.long	0x70d
- 980 0727 00       		.byte	0x0
- 981              		.section	.debug_abbrev
- 982 0000 01       		.uleb128 0x1
-
GAS LISTING /tmp/cctAECUH.s 			page 20
-
-
- 983 0001 11       		.uleb128 0x11
- 984 0002 01       		.byte	0x1
- 985 0003 25       		.uleb128 0x25
- 986 0004 0E       		.uleb128 0xe
- 987 0005 13       		.uleb128 0x13
- 988 0006 0B       		.uleb128 0xb
- 989 0007 03       		.uleb128 0x3
- 990 0008 0E       		.uleb128 0xe
- 991 0009 1B       		.uleb128 0x1b
- 992 000a 0E       		.uleb128 0xe
- 993 000b 11       		.uleb128 0x11
- 994 000c 01       		.uleb128 0x1
- 995 000d 12       		.uleb128 0x12
- 996 000e 01       		.uleb128 0x1
- 997 000f 10       		.uleb128 0x10
- 998 0010 06       		.uleb128 0x6
- 999 0011 00       		.byte	0x0
- 1000 0012 00       		.byte	0x0
- 1001 0013 02       		.uleb128 0x2
- 1002 0014 24       		.uleb128 0x24
- 1003 0015 00       		.byte	0x0
- 1004 0016 0B       		.uleb128 0xb
- 1005 0017 0B       		.uleb128 0xb
- 1006 0018 3E       		.uleb128 0x3e
- 1007 0019 0B       		.uleb128 0xb
- 1008 001a 03       		.uleb128 0x3
- 1009 001b 0E       		.uleb128 0xe
- 1010 001c 00       		.byte	0x0
- 1011 001d 00       		.byte	0x0
- 1012 001e 03       		.uleb128 0x3
- 1013 001f 24       		.uleb128 0x24
- 1014 0020 00       		.byte	0x0
- 1015 0021 0B       		.uleb128 0xb
- 1016 0022 0B       		.uleb128 0xb
- 1017 0023 3E       		.uleb128 0x3e
- 1018 0024 0B       		.uleb128 0xb
- 1019 0025 03       		.uleb128 0x3
- 1020 0026 08       		.uleb128 0x8
- 1021 0027 00       		.byte	0x0
- 1022 0028 00       		.byte	0x0
- 1023 0029 04       		.uleb128 0x4
- 1024 002a 16       		.uleb128 0x16
- 1025 002b 00       		.byte	0x0
- 1026 002c 03       		.uleb128 0x3
- 1027 002d 0E       		.uleb128 0xe
- 1028 002e 3A       		.uleb128 0x3a
- 1029 002f 0B       		.uleb128 0xb
- 1030 0030 3B       		.uleb128 0x3b
- 1031 0031 0B       		.uleb128 0xb
- 1032 0032 49       		.uleb128 0x49
- 1033 0033 13       		.uleb128 0x13
- 1034 0034 00       		.byte	0x0
- 1035 0035 00       		.byte	0x0
- 1036 0036 05       		.uleb128 0x5
- 1037 0037 24       		.uleb128 0x24
- 1038 0038 00       		.byte	0x0
- 1039 0039 0B       		.uleb128 0xb
-
GAS LISTING /tmp/cctAECUH.s 			page 21
-
-
- 1040 003a 0B       		.uleb128 0xb
- 1041 003b 3E       		.uleb128 0x3e
- 1042 003c 0B       		.uleb128 0xb
- 1043 003d 00       		.byte	0x0
- 1044 003e 00       		.byte	0x0
- 1045 003f 06       		.uleb128 0x6
- 1046 0040 04       		.uleb128 0x4
- 1047 0041 01       		.byte	0x1
- 1048 0042 03       		.uleb128 0x3
- 1049 0043 0E       		.uleb128 0xe
- 1050 0044 0B       		.uleb128 0xb
- 1051 0045 0B       		.uleb128 0xb
- 1052 0046 3A       		.uleb128 0x3a
- 1053 0047 0B       		.uleb128 0xb
- 1054 0048 3B       		.uleb128 0x3b
- 1055 0049 0B       		.uleb128 0xb
- 1056 004a 01       		.uleb128 0x1
- 1057 004b 13       		.uleb128 0x13
- 1058 004c 00       		.byte	0x0
- 1059 004d 00       		.byte	0x0
- 1060 004e 07       		.uleb128 0x7
- 1061 004f 28       		.uleb128 0x28
- 1062 0050 00       		.byte	0x0
- 1063 0051 03       		.uleb128 0x3
- 1064 0052 0E       		.uleb128 0xe
- 1065 0053 1C       		.uleb128 0x1c
- 1066 0054 0D       		.uleb128 0xd
- 1067 0055 00       		.byte	0x0
- 1068 0056 00       		.byte	0x0
- 1069 0057 08       		.uleb128 0x8
- 1070 0058 04       		.uleb128 0x4
- 1071 0059 01       		.byte	0x1
- 1072 005a 03       		.uleb128 0x3
- 1073 005b 0E       		.uleb128 0xe
- 1074 005c 0B       		.uleb128 0xb
- 1075 005d 0B       		.uleb128 0xb
- 1076 005e 3A       		.uleb128 0x3a
- 1077 005f 0B       		.uleb128 0xb
- 1078 0060 3B       		.uleb128 0x3b
- 1079 0061 05       		.uleb128 0x5
- 1080 0062 01       		.uleb128 0x1
- 1081 0063 13       		.uleb128 0x13
- 1082 0064 00       		.byte	0x0
- 1083 0065 00       		.byte	0x0
- 1084 0066 09       		.uleb128 0x9
- 1085 0067 2E       		.uleb128 0x2e
- 1086 0068 01       		.byte	0x1
- 1087 0069 3F       		.uleb128 0x3f
- 1088 006a 0C       		.uleb128 0xc
- 1089 006b 03       		.uleb128 0x3
- 1090 006c 0E       		.uleb128 0xe
- 1091 006d 3A       		.uleb128 0x3a
- 1092 006e 0B       		.uleb128 0xb
- 1093 006f 3B       		.uleb128 0x3b
- 1094 0070 0B       		.uleb128 0xb
- 1095 0071 27       		.uleb128 0x27
- 1096 0072 0C       		.uleb128 0xc
-
GAS LISTING /tmp/cctAECUH.s 			page 22
-
-
- 1097 0073 49       		.uleb128 0x49
- 1098 0074 13       		.uleb128 0x13
- 1099 0075 11       		.uleb128 0x11
- 1100 0076 01       		.uleb128 0x1
- 1101 0077 12       		.uleb128 0x12
- 1102 0078 01       		.uleb128 0x1
- 1103 0079 40       		.uleb128 0x40
- 1104 007a 06       		.uleb128 0x6
- 1105 007b 01       		.uleb128 0x1
- 1106 007c 13       		.uleb128 0x13
- 1107 007d 00       		.byte	0x0
- 1108 007e 00       		.byte	0x0
- 1109 007f 0A       		.uleb128 0xa
- 1110 0080 13       		.uleb128 0x13
- 1111 0081 00       		.byte	0x0
- 1112 0082 03       		.uleb128 0x3
- 1113 0083 0E       		.uleb128 0xe
- 1114 0084 3C       		.uleb128 0x3c
- 1115 0085 0C       		.uleb128 0xc
- 1116 0086 00       		.byte	0x0
- 1117 0087 00       		.byte	0x0
- 1118 0088 0B       		.uleb128 0xb
- 1119 0089 05       		.uleb128 0x5
- 1120 008a 00       		.byte	0x0
- 1121 008b 03       		.uleb128 0x3
- 1122 008c 0E       		.uleb128 0xe
- 1123 008d 3A       		.uleb128 0x3a
- 1124 008e 0B       		.uleb128 0xb
- 1125 008f 3B       		.uleb128 0x3b
- 1126 0090 0B       		.uleb128 0xb
- 1127 0091 49       		.uleb128 0x49
- 1128 0092 13       		.uleb128 0x13
- 1129 0093 02       		.uleb128 0x2
- 1130 0094 0A       		.uleb128 0xa
- 1131 0095 00       		.byte	0x0
- 1132 0096 00       		.byte	0x0
- 1133 0097 0C       		.uleb128 0xc
- 1134 0098 34       		.uleb128 0x34
- 1135 0099 00       		.byte	0x0
- 1136 009a 03       		.uleb128 0x3
- 1137 009b 08       		.uleb128 0x8
- 1138 009c 3A       		.uleb128 0x3a
- 1139 009d 0B       		.uleb128 0xb
- 1140 009e 3B       		.uleb128 0x3b
- 1141 009f 0B       		.uleb128 0xb
- 1142 00a0 49       		.uleb128 0x49
- 1143 00a1 13       		.uleb128 0x13
- 1144 00a2 02       		.uleb128 0x2
- 1145 00a3 0A       		.uleb128 0xa
- 1146 00a4 00       		.byte	0x0
- 1147 00a5 00       		.byte	0x0
- 1148 00a6 0D       		.uleb128 0xd
- 1149 00a7 34       		.uleb128 0x34
- 1150 00a8 00       		.byte	0x0
- 1151 00a9 03       		.uleb128 0x3
- 1152 00aa 0E       		.uleb128 0xe
- 1153 00ab 49       		.uleb128 0x49
-
GAS LISTING /tmp/cctAECUH.s 			page 23
-
-
- 1154 00ac 13       		.uleb128 0x13
- 1155 00ad 34       		.uleb128 0x34
- 1156 00ae 0C       		.uleb128 0xc
- 1157 00af 02       		.uleb128 0x2
- 1158 00b0 0A       		.uleb128 0xa
- 1159 00b1 00       		.byte	0x0
- 1160 00b2 00       		.byte	0x0
- 1161 00b3 0E       		.uleb128 0xe
- 1162 00b4 0F       		.uleb128 0xf
- 1163 00b5 00       		.byte	0x0
- 1164 00b6 0B       		.uleb128 0xb
- 1165 00b7 0B       		.uleb128 0xb
- 1166 00b8 49       		.uleb128 0x49
- 1167 00b9 13       		.uleb128 0x13
- 1168 00ba 00       		.byte	0x0
- 1169 00bb 00       		.byte	0x0
- 1170 00bc 0F       		.uleb128 0xf
- 1171 00bd 01       		.uleb128 0x1
- 1172 00be 01       		.byte	0x1
- 1173 00bf 49       		.uleb128 0x49
- 1174 00c0 13       		.uleb128 0x13
- 1175 00c1 01       		.uleb128 0x1
- 1176 00c2 13       		.uleb128 0x13
- 1177 00c3 00       		.byte	0x0
- 1178 00c4 00       		.byte	0x0
- 1179 00c5 10       		.uleb128 0x10
- 1180 00c6 21       		.uleb128 0x21
- 1181 00c7 00       		.byte	0x0
- 1182 00c8 49       		.uleb128 0x49
- 1183 00c9 13       		.uleb128 0x13
- 1184 00ca 2F       		.uleb128 0x2f
- 1185 00cb 0B       		.uleb128 0xb
- 1186 00cc 00       		.byte	0x0
- 1187 00cd 00       		.byte	0x0
- 1188 00ce 11       		.uleb128 0x11
- 1189 00cf 26       		.uleb128 0x26
- 1190 00d0 00       		.byte	0x0
- 1191 00d1 49       		.uleb128 0x49
- 1192 00d2 13       		.uleb128 0x13
- 1193 00d3 00       		.byte	0x0
- 1194 00d4 00       		.byte	0x0
- 1195 00d5 00       		.byte	0x0
- 1196              		.section	.debug_pubnames,"", at progbits
- 1197 0000 2A000000 		.long	0x2a
- 1198 0004 0200     		.value	0x2
- 1199 0006 00000000 		.long	.Ldebug_info0
- 1200 000a 28070000 		.long	0x728
- 1201 000e 92060000 		.long	0x692
- 1202 0012 4B4E756C 		.string	"KNullBlockCipherVecMake"
- 1202      6C426C6F 
- 1202      636B4369 
- 1202      70686572 
- 1202      5665634D 
- 1203 002a 00000000 		.long	0x0
- 1204              		.section	.debug_aranges,"", at progbits
- 1205 0000 2C000000 		.long	0x2c
- 1206 0004 0200     		.value	0x2
-
GAS LISTING /tmp/cctAECUH.s 			page 24
-
-
- 1207 0006 00000000 		.long	.Ldebug_info0
- 1208 000a 08       		.byte	0x8
- 1209 000b 00       		.byte	0x0
- 1210 000c 0000     		.value	0x0
- 1211 000e 0000     		.value	0x0
- 1212 0010 00000000 		.quad	.Ltext0
- 1212      00000000 
- 1213 0018 65000000 		.quad	.Letext0-.Ltext0
- 1213      00000000 
- 1214 0020 00000000 		.quad	0x0
- 1214      00000000 
- 1215 0028 00000000 		.quad	0x0
- 1215      00000000 
- 1216              		.section	.debug_str,"MS", at progbits,1
- 1217              	.LASF184:
- 1218 0000 72635461 		.string	"rcTag"
- 1218      6700
- 1219              	.LASF30:
- 1220 0006 72635646 		.string	"rcVFS"
- 1220      5300
- 1221              	.LASF234:
- 1222 000c 7263556E 		.string	"rcUnauthorized"
- 1222      61757468 
- 1222      6F72697A 
- 1222      656400
- 1223              	.LASF258:
- 1224 001b 474E5520 		.string	"GNU C 4.4.2"
- 1224      4320342E 
- 1224      342E3200 
- 1225              	.LASF218:
- 1226 0027 7263496E 		.string	"rcInconsistent"
- 1226      636F6E73 
- 1226      69737465 
- 1226      6E7400
- 1227              	.LASF19:
- 1228 0036 72634442 		.string	"rcDB"
- 1228      00
- 1229              	.LASF128:
- 1230 003b 7263436F 		.string	"rcCopying"
- 1230      7079696E 
- 1230      6700
- 1231              	.LASF131:
- 1232 0045 7263506F 		.string	"rcPositioning"
- 1232      73697469 
- 1232      6F6E696E 
- 1232      6700
- 1233              	.LASF226:
- 1234 0053 72634578 		.string	"rcExcessive"
- 1234      63657373 
- 1234      69766500 
- 1235              	.LASF222:
- 1236 005f 72634361 		.string	"rcCanceled"
- 1236      6E63656C 
- 1236      656400
- 1237              	.LASF156:
- 1238 006a 72634C61 		.string	"rcLastContext_v1_0"
- 1238      7374436F 
-
GAS LISTING /tmp/cctAECUH.s 			page 25
-
-
- 1238      6E746578 
- 1238      745F7631 
- 1238      5F3000
- 1239              	.LASF167:
- 1240 007d 72634C61 		.string	"rcLastContext_v1_1"
- 1240      7374436F 
- 1240      6E746578 
- 1240      745F7631 
- 1240      5F3100
- 1241              	.LASF90:
- 1242 0090 7263456E 		.string	"rcEncryptionKey"
- 1242      63727970 
- 1242      74696F6E 
- 1242      4B657900 
- 1243              	.LASF97:
- 1244 00a0 5243436F 		.string	"RCContext"
- 1244      6E746578 
- 1244      7400
- 1245              	.LASF92:
- 1246 00aa 7263436D 		.string	"rcCmd"
- 1246      6400
- 1247              	.LASF242:
- 1248 00b0 72634475 		.string	"rcDuplicate"
- 1248      706C6963 
- 1248      61746500 
- 1249              	.LASF202:
- 1250 00bc 72635265 		.string	"rcRefcount"
- 1250      66636F75 
- 1250      6E7400
- 1251              	.LASF91:
- 1252 00c7 7263526E 		.string	"rcRng"
- 1252      6700
- 1253              	.LASF34:
- 1254 00cd 72634E6F 		.string	"rcNoTarg"
- 1254      54617267 
- 1254      00
- 1255              	.LASF204:
- 1256 00d6 52435374 		.string	"RCState"
- 1256      61746500 
- 1257              	.LASF5:
- 1258 00de 756E7369 		.string	"unsigned int"
- 1258      676E6564 
- 1258      20696E74 
- 1258      00
- 1259              	.LASF89:
- 1260 00eb 72635072 		.string	"rcProduction"
- 1260      6F647563 
- 1260      74696F6E 
- 1260      00
- 1261              	.LASF69:
- 1262 00f8 72635061 		.string	"rcPagemap"
- 1262      67656D61 
- 1262      7000
- 1263              	.LASF185:
- 1264 0102 72635265 		.string	"rcResources"
- 1264      736F7572 
- 1264      63657300 
-
GAS LISTING /tmp/cctAECUH.s 			page 26
-
-
- 1265              	.LASF50:
- 1266 010e 7263586D 		.string	"rcXmlDoc"
- 1266      6C446F63 
- 1266      00
- 1267              	.LASF37:
- 1268 0117 7263546F 		.string	"rcTocEntry"
- 1268      63456E74 
- 1268      727900
- 1269              	.LASF114:
- 1270 0122 72635265 		.string	"rcRemoving"
- 1270      6D6F7669 
- 1270      6E6700
- 1271              	.LASF192:
- 1272 012d 72634D6F 		.string	"rcMode"
- 1272      646500
- 1273              	.LASF119:
- 1274 0134 7263436C 		.string	"rcClosing"
- 1274      6F73696E 
- 1274      6700
- 1275              	.LASF72:
- 1276 013e 72635175 		.string	"rcQueue"
- 1276      65756500 
- 1277              	.LASF120:
- 1278 0146 72635265 		.string	"rcResizing"
- 1278      73697A69 
- 1278      6E6700
- 1279              	.LASF171:
- 1280 0151 72635365 		.string	"rcSelf"
- 1280      6C6600
- 1281              	.LASF214:
- 1282 0158 72634465 		.string	"rcDestroyed"
- 1282      7374726F 
- 1282      79656400 
- 1283              	.LASF162:
- 1284 0164 7263496E 		.string	"rcInitializing"
- 1284      69746961 
- 1284      6C697A69 
- 1284      6E6700
- 1285              	.LASF168:
- 1286 0173 52434F62 		.string	"RCObject"
- 1286      6A656374 
- 1286      00
- 1287              	.LASF146:
- 1288 017c 72634174 		.string	"rcAttaching"
- 1288      74616368 
- 1288      696E6700 
- 1289              	.LASF219:
- 1290 0188 72634275 		.string	"rcBusy"
- 1290      737900
- 1291              	.LASF74:
- 1292 018f 72635363 		.string	"rcSchema"
- 1292      68656D61 
- 1292      00
- 1293              	.LASF138:
- 1294 0198 72634875 		.string	"rcHuffmanCoding"
- 1294      66666D61 
- 1294      6E436F64 
-
GAS LISTING /tmp/cctAECUH.s 			page 27
-
-
- 1294      696E6700 
- 1295              	.LASF123:
- 1296 01a8 7263436F 		.string	"rcCommitting"
- 1296      6D6D6974 
- 1296      74696E67 
- 1296      00
- 1297              	.LASF75:
- 1298 01b5 72635365 		.string	"rcSemaphore"
- 1298      6D617068 
- 1298      6F726500 
- 1299              	.LASF232:
- 1300 01c1 72634465 		.string	"rcDetached"
- 1300      74616368 
- 1300      656400
- 1301              	.LASF188:
- 1302 01cc 7263526F 		.string	"rcRow"
- 1302      7700
- 1303              	.LASF239:
- 1304 01d2 7263546F 		.string	"rcTooShort"
- 1304      6F53686F 
- 1304      727400
- 1305              	.LASF15:
- 1306 01dd 72634646 		.string	"rcFF"
- 1306      00
- 1307              	.LASF16:
- 1308 01e2 72634653 		.string	"rcFS"
- 1308      00
- 1309              	.LASF250:
- 1310 01e7 7263556E 		.string	"rcUndefined"
- 1310      64656669 
- 1310      6E656400 
- 1311              	.LASF132:
- 1312 01f3 72635061 		.string	"rcPacking"
- 1312      636B696E 
- 1312      6700
- 1313              	.LASF216:
- 1314 01fd 7263436F 		.string	"rcCorrupt"
- 1314      72727570 
- 1314      7400
- 1315              	.LASF7:
- 1316 0207 75696E74 		.string	"uint32_t"
- 1316      33325F74 
- 1316      00
- 1317              	.LASF133:
- 1318 0210 7263556E 		.string	"rcUnpacking"
- 1318      7061636B 
- 1318      696E6700 
- 1319              	.LASF51:
- 1320 021c 72634669 		.string	"rcFile"
- 1320      6C6500
- 1321              	.LASF39:
- 1322 0223 72634174 		.string	"rcAttr"
- 1322      747200
- 1323              	.LASF199:
- 1324 022a 7263456E 		.string	"rcEnvironment"
- 1324      7669726F 
- 1324      6E6D656E 
-
GAS LISTING /tmp/cctAECUH.s 			page 28
-
-
- 1324      7400
- 1325              	.LASF149:
- 1326 0238 72634650 		.string	"rcFPCoding"
- 1326      436F6469 
- 1326      6E6700
- 1327              	.LASF80:
- 1328 0243 72635469 		.string	"rcTimeout"
- 1328      6D656F75 
- 1328      7400
- 1329              	.LASF62:
- 1330 024d 72634D44 		.string	"rcMD5SumFmt"
- 1330      3553756D 
- 1330      466D7400 
- 1331              	.LASF137:
- 1332 0259 72634578 		.string	"rcExecuting"
- 1332      65637574 
- 1332      696E6700 
- 1333              	.LASF145:
- 1334 0265 72635761 		.string	"rcWaiting"
- 1334      6974696E 
- 1334      6700
- 1335              	.LASF176:
- 1336 026f 7263466F 		.string	"rcFormat"
- 1336      726D6174 
- 1336      00
- 1337              	.LASF181:
- 1338 0278 7263436F 		.string	"rcConstraint"
- 1338      6E737472 
- 1338      61696E74 
- 1338      00
- 1339              	.LASF22:
- 1340 0285 7263584D 		.string	"rcXML"
- 1340      4C00
- 1341              	.LASF45:
- 1342 028b 7263436F 		.string	"rcCondition"
- 1342      6E646974 
- 1342      696F6E00 
- 1343              	.LASF205:
- 1344 0297 72634E6F 		.string	"rcNoErr"
- 1344      45727200 
- 1345              	.LASF42:
- 1346 029f 72634275 		.string	"rcBuffer"
- 1346      66666572 
- 1346      00
- 1347              	.LASF142:
- 1348 02a8 72635061 		.string	"rcParsing"
- 1348      7273696E 
- 1348      6700
- 1349              	.LASF41:
- 1350 02b2 7263426C 		.string	"rcBlob"
- 1350      6F6200
- 1351              	.LASF240:
- 1352 02b9 7263546F 		.string	"rcTooLong"
- 1352      6F4C6F6E 
- 1352      6700
- 1353              	.LASF24:
- 1354 02c3 72634C61 		.string	"rcLastModule_v1_0"
-
GAS LISTING /tmp/cctAECUH.s 			page 29
-
-
- 1354      73744D6F 
- 1354      64756C65 
- 1354      5F76315F 
- 1354      3000
- 1355              	.LASF31:
- 1356 02d5 72634C61 		.string	"rcLastModule_v1_1"
- 1356      73744D6F 
- 1356      64756C65 
- 1356      5F76315F 
- 1356      3100
- 1357              	.LASF64:
- 1358 02e7 72634D65 		.string	"rcMetadata"
- 1358      74616461 
- 1358      746100
- 1359              	.LASF236:
- 1360 02f2 72635772 		.string	"rcWriteonly"
- 1360      6974656F 
- 1360      6E6C7900 
- 1361              	.LASF115:
- 1362 02fe 7263436C 		.string	"rcClearing"
- 1362      65617269 
- 1362      6E6700
- 1363              	.LASF55:
- 1364 0309 7263466F 		.string	"rcFormatter"
- 1364      726D6174 
- 1364      74657200 
- 1365              	.LASF248:
- 1366 0315 72634F75 		.string	"rcOutoforder"
- 1366      746F666F 
- 1366      72646572 
- 1366      00
- 1367              	.LASF70:
- 1368 0322 72635061 		.string	"rcPath"
- 1368      746800
- 1369              	.LASF189:
- 1370 0329 72634C69 		.string	"rcLibrary"
- 1370      62726172 
- 1370      7900
- 1371              	.LASF141:
- 1372 0333 7263546F 		.string	"rcTokenizing"
- 1372      6B656E69 
- 1372      7A696E67 
- 1372      00
- 1373              	.LASF198:
- 1374 0340 72634572 		.string	"rcError"
- 1374      726F7200 
- 1375              	.LASF18:
- 1376 0348 72635846 		.string	"rcXF"
- 1376      00
- 1377              	.LASF183:
- 1378 034d 72634D65 		.string	"rcMessage"
- 1378      73736167 
- 1378      6500
- 1379              	.LASF237:
- 1380 0357 72634E6F 		.string	"rcNoPerm"
- 1380      5065726D 
- 1380      00
-
GAS LISTING /tmp/cctAECUH.s 			page 30
-
-
- 1381              	.LASF54:
- 1382 0360 72634675 		.string	"rcFunction"
- 1382      6E637469 
- 1382      6F6E00
- 1383              	.LASF208:
- 1384 036b 7263556E 		.string	"rcUnsupported"
- 1384      73757070 
- 1384      6F727465 
- 1384      6400
- 1385              	.LASF43:
- 1386 0379 72634368 		.string	"rcChar"
- 1386      617200
- 1387              	.LASF174:
- 1388 0380 72634D65 		.string	"rcMemory"
- 1388      6D6F7279 
- 1388      00
- 1389              	.LASF194:
- 1390 0389 72634372 		.string	"rcCrc"
- 1390      6300
- 1391              	.LASF241:
- 1392 038f 7263546F 		.string	"rcTooBig"
- 1392      6F426967 
- 1392      00
- 1393              	.LASF179:
- 1394 0398 72634964 		.string	"rcId"
- 1394      00
- 1395              	.LASF82:
- 1396 039d 72635472 		.string	"rcTree"
- 1396      656500
- 1397              	.LASF253:
- 1398 03a4 72634E6F 		.string	"rcNotAvailable"
- 1398      74417661 
- 1398      696C6162 
- 1398      6C6500
- 1399              	.LASF93:
- 1400 03b3 72634461 		.string	"rcData"
- 1400      746100
- 1401              	.LASF257:
- 1402 03ba 5F5F6675 		.string	"__func__"
- 1402      6E635F5F 
- 1402      00
- 1403              	.LASF254:
- 1404 03c3 72635772 		.string	"rcWrongType"
- 1404      6F6E6754 
- 1404      79706500 
- 1405              	.LASF56:
- 1406 03cf 72634675 		.string	"rcFunctParam"
- 1406      6E637450 
- 1406      6172616D 
- 1406      00
- 1407              	.LASF63:
- 1408 03dc 72634D65 		.string	"rcMemMap"
- 1408      6D4D6170 
- 1408      00
- 1409              	.LASF9:
- 1410 03e5 63686172 		.string	"char"
- 1410      00
-
GAS LISTING /tmp/cctAECUH.s 			page 31
-
-
- 1411              	.LASF211:
- 1412 03ea 7263416D 		.string	"rcAmbiguous"
- 1412      62696775 
- 1412      6F757300 
- 1413              	.LASF244:
- 1414 03f6 72634967 		.string	"rcIgnored"
- 1414      6E6F7265 
- 1414      6400
- 1415              	.LASF109:
- 1416 0400 72635265 		.string	"rcRenaming"
- 1416      6E616D69 
- 1416      6E6700
- 1417              	.LASF121:
- 1418 040b 72635265 		.string	"rcReading"
- 1418      6164696E 
- 1418      6700
- 1419              	.LASF58:
- 1420 0415 7263496E 		.string	"rcIndex"
- 1420      64657800 
- 1421              	.LASF104:
- 1422 041d 72634C69 		.string	"rcListing"
- 1422      7374696E 
- 1422      6700
- 1423              	.LASF178:
- 1424 0427 7263496E 		.string	"rcInterface"
- 1424      74657266 
- 1424      61636500 
- 1425              	.LASF107:
- 1426 0433 72634C6F 		.string	"rcLocking"
- 1426      636B696E 
- 1426      6700
- 1427              	.LASF60:
- 1428 043d 72634C6F 		.string	"rcLock"
- 1428      636B00
- 1429              	.LASF108:
- 1430 0444 7263556E 		.string	"rcUnlocking"
- 1430      6C6F636B 
- 1430      696E6700 
- 1431              	.LASF85:
- 1432 0450 72635665 		.string	"rcVector"
- 1432      63746F72 
- 1432      00
- 1433              	.LASF122:
- 1434 0459 72635772 		.string	"rcWriting"
- 1434      6974696E 
- 1434      6700
- 1435              	.LASF53:
- 1436 0463 72634669 		.string	"rcFileFormat"
- 1436      6C65466F 
- 1436      726D6174 
- 1436      00
- 1437              	.LASF21:
- 1438 0470 72634170 		.string	"rcApp"
- 1438      7000
- 1439              	.LASF125:
- 1440 0476 72635265 		.string	"rcResetting"
- 1440      73657474 
-
GAS LISTING /tmp/cctAECUH.s 			page 32
-
-
- 1440      696E6700 
- 1441              	.LASF71:
- 1442 0482 72635072 		.string	"rcProcess"
- 1442      6F636573 
- 1442      7300
- 1443              	.LASF106:
- 1444 048c 72635265 		.string	"rcResolving"
- 1444      736F6C76 
- 1444      696E6700 
- 1445              	.LASF12:
- 1446 0498 72635465 		.string	"rcText"
- 1446      787400
- 1447              	.LASF66:
- 1448 049f 72634E61 		.string	"rcNamelist"
- 1448      6D656C69 
- 1448      737400
- 1449              	.LASF229:
- 1450 04aa 72634E6F 		.string	"rcNotFound"
- 1450      74466F75 
- 1450      6E6400
- 1451              	.LASF139:
- 1452 04b5 72635265 		.string	"rcReindexing"
- 1452      696E6465 
- 1452      78696E67 
- 1452      00
- 1453              	.LASF87:
- 1454 04c2 72634578 		.string	"rcExpression"
- 1454      70726573 
- 1454      73696F6E 
- 1454      00
- 1455              	.LASF235:
- 1456 04cf 72635265 		.string	"rcReadonly"
- 1456      61646F6E 
- 1456      6C7900
- 1457              	.LASF95:
- 1458 04da 72635572 		.string	"rcUri"
- 1458      6900
- 1459              	.LASF100:
- 1460 04e0 7263436F 		.string	"rcConstructing"
- 1460      6E737472 
- 1460      75637469 
- 1460      6E6700
- 1461              	.LASF173:
- 1462 04ef 72634F66 		.string	"rcOffset"
- 1462      66736574 
- 1462      00
- 1463              	.LASF233:
- 1464 04f8 72634465 		.string	"rcDeadlock"
- 1464      61646C6F 
- 1464      636B00
- 1465              	.LASF47:
- 1466 0503 72634461 		.string	"rcDatabase"
- 1466      74616261 
- 1466      736500
- 1467              	.LASF127:
- 1468 050e 72634672 		.string	"rcFreezing"
- 1468      65657A69 
-
GAS LISTING /tmp/cctAECUH.s 			page 33
-
-
- 1468      6E6700
- 1469              	.LASF217:
- 1470 0519 7263496E 		.string	"rcIncorrect"
- 1470      636F7272 
- 1470      65637400 
- 1471              	.LASF206:
- 1472 0525 7263446F 		.string	"rcDone"
- 1472      6E6500
- 1473              	.LASF157:
- 1474 052c 7263466C 		.string	"rcFlushing"
- 1474      75736869 
- 1474      6E6700
- 1475              	.LASF159:
- 1476 0537 7263456E 		.string	"rcEncrypting"
- 1476      63727970 
- 1476      74696E67 
- 1476      00
- 1477              	.LASF251:
- 1478 0544 7263556E 		.string	"rcUnequal"
- 1478      65717561 
- 1478      6C00
- 1479              	.LASF10:
- 1480 054e 72634578 		.string	"rcExe"
- 1480      6500
- 1481              	.LASF38:
- 1482 0554 72634172 		.string	"rcArgv"
- 1482      677600
- 1483              	.LASF147:
- 1484 055b 72634465 		.string	"rcDetaching"
- 1484      74616368 
- 1484      696E6700 
- 1485              	.LASF99:
- 1486 0567 72634361 		.string	"rcCasting"
- 1486      7374696E 
- 1486      6700
- 1487              	.LASF110:
- 1488 0571 7263416C 		.string	"rcAliasing"
- 1488      69617369 
- 1488      6E6700
- 1489              	.LASF49:
- 1490 057c 7263446F 		.string	"rcDoc"
- 1490      6300
- 1491              	.LASF98:
- 1492 0582 7263416C 		.string	"rcAllocating"
- 1492      6C6F6361 
- 1492      74696E67 
- 1492      00
- 1493              	.LASF212:
- 1494 058f 72634E75 		.string	"rcNull"
- 1494      6C6C00
- 1495              	.LASF180:
- 1496 0596 72635261 		.string	"rcRange"
- 1496      6E676500 
- 1497              	.LASF35:
- 1498 059e 72634172 		.string	"rcArc"
- 1498      6300
- 1499              	.LASF252:
-
GAS LISTING /tmp/cctAECUH.s 			page 34
-
-
- 1500 05a4 72634661 		.string	"rcFailed"
- 1500      696C6564 
- 1500      00
- 1501              	.LASF23:
- 1502 05ad 72635352 		.string	"rcSRA"
- 1502      4100
- 1503              	.LASF152:
- 1504 05b3 72635365 		.string	"rcSearching"
- 1504      61726368 
- 1504      696E6700 
- 1505              	.LASF225:
- 1506 05bf 7263496E 		.string	"rcInsufficient"
- 1506      73756666 
- 1506      69636965 
- 1506      6E7400
- 1507              	.LASF165:
- 1508 05ce 72635072 		.string	"rcProcessing"
- 1508      6F636573 
- 1508      73696E67 
- 1508      00
- 1509              	.LASF144:
- 1510 05db 72635369 		.string	"rcSignaling"
- 1510      676E616C 
- 1510      696E6700 
- 1511              	.LASF135:
- 1512 05e7 72634465 		.string	"rcDecoding"
- 1512      636F6469 
- 1512      6E6700
- 1513              	.LASF261:
- 1514 05f2 4B4E756C 		.string	"KNullBlockCipherVecMake"
- 1514      6C426C6F 
- 1514      636B4369 
- 1514      70686572 
- 1514      5665634D 
- 1515              	.LASF76:
- 1516 060a 72635374 		.string	"rcStorage"
- 1516      6F726167 
- 1516      6500
- 1517              	.LASF213:
- 1518 0614 72634261 		.string	"rcBadVersion"
- 1518      64566572 
- 1518      73696F6E 
- 1518      00
- 1519              	.LASF210:
- 1520 0621 7263556E 		.string	"rcUnrecognized"
- 1520      7265636F 
- 1520      676E697A 
- 1520      656400
- 1521              	.LASF161:
- 1522 0630 7263436F 		.string	"rcComparing"
- 1522      6D706172 
- 1522      696E6700 
- 1523              	.LASF65:
- 1524 063c 72634D67 		.string	"rcMgr"
- 1524      7200
- 1525              	.LASF154:
- 1526 0642 72634576 		.string	"rcEvaluating"
-
GAS LISTING /tmp/cctAECUH.s 			page 35
-
-
- 1526      616C7561 
- 1526      74696E67 
- 1526      00
- 1527              	.LASF163:
- 1528 064f 72635265 		.string	"rcRetrieving"
- 1528      74726965 
- 1528      76696E67 
- 1528      00
- 1529              	.LASF116:
- 1530 065c 72635570 		.string	"rcUpdating"
- 1530      64617469 
- 1530      6E6700
- 1531              	.LASF83:
- 1532 0667 72635472 		.string	"rcTrie"
- 1532      696500
- 1533              	.LASF201:
- 1534 066e 72635369 		.string	"rcSize"
- 1534      7A6500
- 1535              	.LASF150:
- 1536 0675 72634D75 		.string	"rcMultiplexing"
- 1536      6C746970 
- 1536      6C657869 
- 1536      6E6700
- 1537              	.LASF243:
- 1538 0684 72634F75 		.string	"rcOutOfKDirectory"
- 1538      744F664B 
- 1538      44697265 
- 1538      63746F72 
- 1538      7900
- 1539              	.LASF40:
- 1540 0696 72634261 		.string	"rcBarrier"
- 1540      72726965 
- 1540      7200
- 1541              	.LASF77:
- 1542 06a0 72635374 		.string	"rcString"
- 1542      72696E67 
- 1542      00
- 1543              	.LASF193:
- 1544 06a9 7263456E 		.string	"rcEncryption"
- 1544      63727970 
- 1544      74696F6E 
- 1544      00
- 1545              	.LASF25:
- 1546 06b6 72634B46 		.string	"rcKFG"
- 1546      4700
- 1547              	.LASF46:
- 1548 06bc 72634375 		.string	"rcCursor"
- 1548      72736F72 
- 1548      00
- 1549              	.LASF101:
- 1550 06c5 72634465 		.string	"rcDestroying"
- 1550      7374726F 
- 1550      79696E67 
- 1550      00
- 1551              	.LASF27:
- 1552 06d2 72634B72 		.string	"rcKrypto"
- 1552      7970746F 
-
GAS LISTING /tmp/cctAECUH.s 			page 36
-
-
- 1552      00
- 1553              	.LASF196:
- 1554 06db 72635365 		.string	"rcSeed"
- 1554      656400
- 1555              	.LASF221:
- 1556 06e2 7263496E 		.string	"rcInterrupted"
- 1556      74657272 
- 1556      75707465 
- 1556      6400
- 1557              	.LASF153:
- 1558 06f0 72634C6F 		.string	"rcLoading"
- 1558      6164696E 
- 1558      6700
- 1559              	.LASF136:
- 1560 06fa 72635661 		.string	"rcValidating"
- 1560      6C696461 
- 1560      74696E67 
- 1560      00
- 1561              	.LASF230:
- 1562 0707 72634C6F 		.string	"rcLocked"
- 1562      636B6564 
- 1562      00
- 1563              	.LASF59:
- 1564 0710 72634974 		.string	"rcIterator"
- 1564      65726174 
- 1564      6F7200
- 1565              	.LASF67:
- 1566 071b 72634E6F 		.string	"rcNode"
- 1566      646500
- 1567              	.LASF1:
- 1568 0722 73686F72 		.string	"short int"
- 1568      7420696E 
- 1568      7400
- 1569              	.LASF102:
- 1570 072c 72635265 		.string	"rcReleasing"
- 1570      6C656173 
- 1570      696E6700 
- 1571              	.LASF177:
- 1572 0738 72635472 		.string	"rcTransfer"
- 1572      616E7366 
- 1572      657200
- 1573              	.LASF2:
- 1574 0743 6C6F6E67 		.string	"long int"
- 1574      20696E74 
- 1574      00
- 1575              	.LASF262:
- 1576 074c 4B426C6F 		.string	"KBlockCipher"
- 1576      636B4369 
- 1576      70686572 
- 1576      00
- 1577              	.LASF164:
- 1578 0759 72635365 		.string	"rcSending"
- 1578      6E64696E 
- 1578      6700
- 1579              	.LASF215:
- 1580 0763 7263496E 		.string	"rcInvalid"
- 1580      76616C69 
-
GAS LISTING /tmp/cctAECUH.s 			page 37
-
-
- 1580      6400
- 1581              	.LASF249:
- 1582 076d 72634E6F 		.string	"rcNotOpen"
- 1582      744F7065 
- 1582      6E00
- 1583              	.LASF103:
- 1584 0777 72634163 		.string	"rcAccessing"
- 1584      63657373 
- 1584      696E6700 
- 1585              	.LASF29:
- 1586 0783 72634E53 		.string	"rcNS"
- 1586      00
- 1587              	.LASF112:
- 1588 0788 72635072 		.string	"rcProjecting"
- 1588      6F6A6563 
- 1588      74696E67 
- 1588      00
- 1589              	.LASF175:
- 1590 0795 72634E61 		.string	"rcName"
- 1590      6D6500
- 1591              	.LASF238:
- 1592 079c 7263496E 		.string	"rcInPlaceNotAllowed"
- 1592      506C6163 
- 1592      654E6F74 
- 1592      416C6C6F 
- 1592      77656400 
- 1593              	.LASF247:
- 1594 07b0 72634F70 		.string	"rcOpen"
- 1594      656E00
- 1595              	.LASF227:
- 1596 07b7 72635669 		.string	"rcViolated"
- 1596      6F6C6174 
- 1596      656400
- 1597              	.LASF169:
- 1598 07c2 72634E6F 		.string	"rcNoObj"
- 1598      4F626A00 
- 1599              	.LASF200:
- 1600 07ca 72635369 		.string	"rcSignalSet"
- 1600      676E616C 
- 1600      53657400 
- 1601              	.LASF197:
- 1602 07d6 7263436F 		.string	"rcConnection"
- 1602      6E6E6563 
- 1602      74696F6E 
- 1602      00
- 1603              	.LASF195:
- 1604 07e3 72634368 		.string	"rcChecksum"
- 1604      65636B73 
- 1604      756D00
- 1605              	.LASF78:
- 1606 07ee 72635461 		.string	"rcTable"
- 1606      626C6500 
- 1607              	.LASF11:
- 1608 07f6 72635275 		.string	"rcRuntime"
- 1608      6E74696D 
- 1608      6500
- 1609              	.LASF148:
-
GAS LISTING /tmp/cctAECUH.s 			page 38
-
-
- 1610 0800 72634C6F 		.string	"rcLogging"
- 1610      6767696E 
- 1610      6700
- 1611              	.LASF160:
- 1612 080a 72634465 		.string	"rcDecrypting"
- 1612      63727970 
- 1612      74696E67 
- 1612      00
- 1613              	.LASF61:
- 1614 0817 72634C6F 		.string	"rcLog"
- 1614      6700
- 1615              	.LASF68:
- 1616 081d 72634E75 		.string	"rcNumeral"
- 1616      6D657261 
- 1616      6C00
- 1617              	.LASF172:
- 1618 0827 72635061 		.string	"rcParam"
- 1618      72616D00 
- 1619              	.LASF32:
- 1620 082f 52434D6F 		.string	"RCModule"
- 1620      64756C65 
- 1620      00
- 1621              	.LASF158:
- 1622 0838 72634170 		.string	"rcAppending"
- 1622      70656E64 
- 1622      696E6700 
- 1623              	.LASF57:
- 1624 0844 72634865 		.string	"rcHeader"
- 1624      61646572 
- 1624      00
- 1625              	.LASF6:
- 1626 084d 6C6F6E67 		.string	"long unsigned int"
- 1626      20756E73 
- 1626      69676E65 
- 1626      6420696E 
- 1626      7400
- 1627              	.LASF245:
- 1628 085f 72634F75 		.string	"rcOutofrange"
- 1628      746F6672 
- 1628      616E6765 
- 1628      00
- 1629              	.LASF170:
- 1630 086c 72634C69 		.string	"rcLink"
- 1630      6E6B00
- 1631              	.LASF52:
- 1632 0873 72634669 		.string	"rcFileDesc"
- 1632      6C654465 
- 1632      736300
- 1633              	.LASF263:
- 1634 087e 6E65775F 		.string	"new_obj"
- 1634      6F626A00 
- 1635              	.LASF209:
- 1636 0886 7263556E 		.string	"rcUnexpected"
- 1636      65787065 
- 1636      63746564 
- 1636      00
- 1637              	.LASF207:
-
GAS LISTING /tmp/cctAECUH.s 			page 39
-
-
- 1638 0893 7263556E 		.string	"rcUnknown"
- 1638      6B6E6F77 
- 1638      6E00
- 1639              	.LASF155:
- 1640 089d 7263496E 		.string	"rcInflating"
- 1640      666C6174 
- 1640      696E6700 
- 1641              	.LASF118:
- 1642 08a9 72634F70 		.string	"rcOpening"
- 1642      656E696E 
- 1642      6700
- 1643              	.LASF17:
- 1644 08b3 72635053 		.string	"rcPS"
- 1644      00
- 1645              	.LASF3:
- 1646 08b8 756E7369 		.string	"unsigned char"
- 1646      676E6564 
- 1646      20636861 
- 1646      7200
- 1647              	.LASF126:
- 1648 08c6 72635065 		.string	"rcPersisting"
- 1648      72736973 
- 1648      74696E67 
- 1648      00
- 1649              	.LASF259:
- 1650 08d3 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
- 1650      652F726F 
- 1650      6461726D 
- 1650      65722F73 
- 1650      72615F73 
- 1651              	.LASF220:
- 1652 090d 7263496E 		.string	"rcIncomplete"
- 1652      636F6D70 
- 1652      6C657465 
- 1652      00
- 1653              	.LASF246:
- 1654 091a 72634C61 		.string	"rcLastState_v1_0"
- 1654      73745374 
- 1654      6174655F 
- 1654      76315F30 
- 1654      00
- 1655              	.LASF255:
- 1656 092b 72634C61 		.string	"rcLastState_v1_1"
- 1656      73745374 
- 1656      6174655F 
- 1656      76315F31 
- 1656      00
- 1657              	.LASF143:
- 1658 093c 7263436F 		.string	"rcConverting"
- 1658      6E766572 
- 1658      74696E67 
- 1658      00
- 1659              	.LASF117:
- 1660 0949 72634372 		.string	"rcCreating"
- 1660      65617469 
- 1660      6E6700
- 1661              	.LASF191:
-
GAS LISTING /tmp/cctAECUH.s 			page 40
-
-
- 1662 0954 72634974 		.string	"rcItem"
- 1662      656D00
- 1663              	.LASF111:
- 1664 095b 72635365 		.string	"rcSelecting"
- 1664      6C656374 
- 1664      696E6700 
- 1665              	.LASF8:
- 1666 0967 72635F74 		.string	"rc_t"
- 1666      00
- 1667              	.LASF73:
- 1668 096c 72635257 		.string	"rcRWLock"
- 1668      4C6F636B 
- 1668      00
- 1669              	.LASF190:
- 1670 0975 72634C61 		.string	"rcLastObject_v1_0"
- 1670      73744F62 
- 1670      6A656374 
- 1670      5F76315F 
- 1670      3000
- 1671              	.LASF203:
- 1672 0987 72634C61 		.string	"rcLastObject_v1_1"
- 1672      73744F62 
- 1672      6A656374 
- 1672      5F76315F 
- 1672      3100
- 1673              	.LASF187:
- 1674 0999 72634172 		.string	"rcArcHardLink"
- 1674      63486172 
- 1674      644C696E 
- 1674      6B00
- 1675              	.LASF113:
- 1676 09a7 7263496E 		.string	"rcInserting"
- 1676      73657274 
- 1676      696E6700 
- 1677              	.LASF166:
- 1678 09b3 72634964 		.string	"rcIdentifying"
- 1678      656E7469 
- 1678      6679696E 
- 1678      6700
- 1679              	.LASF124:
- 1680 09c1 72635265 		.string	"rcReverting"
- 1680      76657274 
- 1680      696E6700 
- 1681              	.LASF20:
- 1682 09cd 72635644 		.string	"rcVDB"
- 1682      4200
- 1683              	.LASF105:
- 1684 09d3 72635669 		.string	"rcVisiting"
- 1684      73697469 
- 1684      6E6700
- 1685              	.LASF88:
- 1686 09de 72634C61 		.string	"rcLastTarget_v1_0"
- 1686      73745461 
- 1686      72676574 
- 1686      5F76315F 
- 1686      3000
- 1687              	.LASF96:
-
GAS LISTING /tmp/cctAECUH.s 			page 41
-
-
- 1688 09f0 72634C61 		.string	"rcLastTarget_v1_1"
- 1688      73745461 
- 1688      72676574 
- 1688      5F76315F 
- 1688      3100
- 1689              	.LASF84:
- 1690 0a02 72635479 		.string	"rcType"
- 1690      706500
- 1691              	.LASF231:
- 1692 0a09 7263556E 		.string	"rcUnlocked"
- 1692      6C6F636B 
- 1692      656400
- 1693              	.LASF151:
- 1694 0a14 7263436C 		.string	"rcClassifying"
- 1694      61737369 
- 1694      6679696E 
- 1694      6700
- 1695              	.LASF228:
- 1696 0a22 72634578 		.string	"rcExists"
- 1696      69737473 
- 1696      00
- 1697              	.LASF130:
- 1698 0a2b 7263466F 		.string	"rcFormatting"
- 1698      726D6174 
- 1698      74696E67 
- 1698      00
- 1699              	.LASF79:
- 1700 0a38 72635468 		.string	"rcThread"
- 1700      72656164 
- 1700      00
- 1701              	.LASF0:
- 1702 0a41 7369676E 		.string	"signed char"
- 1702      65642063 
- 1702      68617200 
- 1703              	.LASF4:
- 1704 0a4d 73686F72 		.string	"short unsigned int"
- 1704      7420756E 
- 1704      7369676E 
- 1704      65642069 
- 1704      6E7400
- 1705              	.LASF260:
- 1706 0a60 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 1706      652F726F 
- 1706      6461726D 
- 1706      65722F73 
- 1706      72615F73 
- 1707              	.LASF182:
- 1708 0aa8 72634279 		.string	"rcByteOrder"
- 1708      74654F72 
- 1708      64657200 
- 1709              	.LASF36:
- 1710 0ab4 7263546F 		.string	"rcToc"
- 1710      6300
- 1711              	.LASF44:
- 1712 0aba 7263436F 		.string	"rcColumn"
- 1712      6C756D6E 
- 1712      00
-
GAS LISTING /tmp/cctAECUH.s 			page 42
-
-
- 1713              	.LASF256:
- 1714 0ac3 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 1714      45545459 
- 1714      5F46554E 
- 1714      4354494F 
- 1714      4E5F5F00 
- 1715              	.LASF94:
- 1716 0ad7 72635175 		.string	"rcQuery"
- 1716      65727900 
- 1717              	.LASF140:
- 1718 0adf 72635265 		.string	"rcRegistering"
- 1718      67697374 
- 1718      6572696E 
- 1718      6700
- 1719              	.LASF86:
- 1720 0aed 72634479 		.string	"rcDylib"
- 1720      6C696200 
- 1721              	.LASF81:
- 1722 0af5 7263546F 		.string	"rcToken"
- 1722      6B656E00 
- 1723              	.LASF134:
- 1724 0afd 7263456E 		.string	"rcEncoding"
- 1724      636F6469 
- 1724      6E6700
- 1725              	.LASF224:
- 1726 0b08 72634578 		.string	"rcExhausted"
- 1726      68617573 
- 1726      74656400 
- 1727              	.LASF186:
- 1728 0b14 72634469 		.string	"rcDirEntry"
- 1728      72456E74 
- 1728      727900
- 1729              	.LASF26:
- 1730 0b1f 7263416C 		.string	"rcAlign"
- 1730      69676E00 
- 1731              	.LASF28:
- 1732 0b27 72635244 		.string	"rcRDBMS"
- 1732      424D5300 
- 1733              	.LASF14:
- 1734 0b2f 72634353 		.string	"rcCS"
- 1734      00
- 1735              	.LASF129:
- 1736 0b34 7263436F 		.string	"rcConcatenating"
- 1736      6E636174 
- 1736      656E6174 
- 1736      696E6700 
- 1737              	.LASF48:
- 1738 0b44 72634469 		.string	"rcDirectory"
- 1738      72656374 
- 1738      6F727900 
- 1739              	.LASF223:
- 1740 0b50 7263456D 		.string	"rcEmpty"
- 1740      70747900 
- 1741              	.LASF13:
- 1742 0b58 7263436F 		.string	"rcCont"
- 1742      6E7400
- 1743              	.LASF33:
-
GAS LISTING /tmp/cctAECUH.s 			page 43
-
-
- 1744 0b5f 52435461 		.string	"RCTarget"
- 1744      72676574 
- 1744      00
- 1745              		.ident	"GCC: (GNU) 4.4.2"
- 1746              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/cctAECUH.s 			page 44
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 no-null-ncbi.c
-     /tmp/cctAECUH.s:17     .text:0000000000000000 KNullBlockCipherVecMake
-     /tmp/cctAECUH.s:66     .rodata:0000000000000040 __func__.2350
-     /tmp/cctAECUH.s:71     .rodata:0000000000000060 __PRETTY_FUNCTION__.2349
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-SetRCFileFuncLine
diff --git a/libs/krypto/no-null-ncbi.vecreg.pic.o.list b/libs/krypto/no-null-ncbi.vecreg.pic.o.list
deleted file mode 100644
index d53afd5..0000000
--- a/libs/krypto/no-null-ncbi.vecreg.pic.o.list
+++ /dev/null
@@ -1,2540 +0,0 @@
-GAS LISTING /tmp/cclL3imJ.s 			page 1
-
-
-   1              		.file	"no-null-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 CC000000 		.text
-   8      0200AA00 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.section	.rodata
-  11              		.align 8
-  12              	.LC0:
-  13 0000 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
-  13      652F726F 
-  13      6461726D 
-  13      65722F73 
-  13      72615F73 
-  14              		.text
-  15              	.globl KNullBlockCipherVecRegMake
-  16              		.type	KNullBlockCipherVecRegMake, @function
-  17              	KNullBlockCipherVecRegMake:
-  18              	.LFB15:
-  19              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include "ncbi-priv.h"
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include "cipher-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /* #include "blockcipher-priv.h" */
-
GAS LISTING /tmp/cclL3imJ.s 			page 2
-
-
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** #include <klib/rc.h>
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** /* ----------------------------------------------------------------------
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * Make
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  *
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * Create a new Null Block Cipher object.
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * The processor is checked to see if this particular version is supported on
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  * this particular CPU.
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****  */
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** struct KBlockCipher;
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** rc_t NULLBCMEMBER(Make) (struct KBlockCipher ** new_obj)
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** {
-  20              		.loc 1 43 0
-  21              		.cfi_startproc
-  22 0000 55       		pushq	%rbp
-  23              	.LCFI0:
-  24              		.cfi_def_cfa_offset 16
-  25 0001 4889E5   		movq	%rsp, %rbp
-  26              		.cfi_offset 6, -16
-  27              	.LCFI1:
-  28              		.cfi_def_cfa_register 6
-  29 0004 4883EC20 		subq	$32, %rsp
-  30 0008 48897DE8 		movq	%rdi, -24(%rbp)
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     rc_t rc;
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     /* Check parameter first */
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     if (new_obj == NULL)
-  31              		.loc 1 47 0
-  32 000c 48837DE8 		cmpq	$0, -24(%rbp)
-  32      00
-  33 0011 7522     		jne	.L2
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-  34              		.loc 1 48 0
-  35 0013 B9300000 		movl	$48, %ecx
-  35      00
-  36 0018 488D1500 		leaq	__func__.2439(%rip), %rdx
-  36      000000
-  37 001f 488D3500 		leaq	.LC0(%rip), %rsi
-  37      000000
-  38 0026 BF878F00 		movl	$-2030006393, %edi
-  38      87
-  39 002b E8000000 		call	SetRCFileFuncLine at PLT
-  39      00
-  40 0030 8945FC   		movl	%eax, -4(%rbp)
-  41 0033 EB2B     		jmp	.L3
-  42              	.L2:
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     else
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     {
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         *new_obj = NULL;
-  43              		.loc 1 52 0
-  44 0035 488B45E8 		movq	-24(%rbp), %rax
-  45 0039 48C70000 		movq	$0, (%rax)
-  45      000000
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** 
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
-
GAS LISTING /tmp/cclL3imJ.s 			page 3
-
-
-  46              		.loc 1 54 0
-  47 0040 B9360000 		movl	$54, %ecx
-  47      00
-  48 0045 488D1500 		leaq	__func__.2439(%rip), %rdx
-  48      000000
-  49 004c 488D3500 		leaq	.LC0(%rip), %rsi
-  49      000000
-  50 0053 BF038500 		movl	$-2030009085, %edi
-  50      87
-  51 0058 E8000000 		call	SetRCFileFuncLine at PLT
-  51      00
-  52 005d 8945FC   		movl	%eax, -4(%rbp)
-  53              	.L3:
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     }
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c ****     return rc;
-  54              		.loc 1 56 0
-  55 0060 8B45FC   		movl	-4(%rbp), %eax
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c **** }
-  56              		.loc 1 57 0
-  57 0063 C9       		leave
-  58 0064 C3       		ret
-  59              		.cfi_endproc
-  60              	.LFE15:
-  61              		.size	KNullBlockCipherVecRegMake, .-KNullBlockCipherVecRegMake
-  62              		.section	.rodata
-  63 003a 00000000 		.align 16
-  63      0000
-  64              		.type	__func__.2439, @object
-  65              		.size	__func__.2439, 27
-  66              	__func__.2439:
-  67 0040 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
-  67      6C426C6F 
-  67      636B4369 
-  67      70686572 
-  67      56656352 
-  68 005b 00000000 		.align 16
-  68      00
-  69              		.type	__PRETTY_FUNCTION__.2438, @object
-  70              		.size	__PRETTY_FUNCTION__.2438, 27
-  71              	__PRETTY_FUNCTION__.2438:
-  72 0060 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
-  72      6C426C6F 
-  72      636B4369 
-  72      70686572 
-  72      56656352 
-  73              		.text
-  74              	.Letext0:
-  75              		.section	.debug_loc,"", at progbits
-  76              	.Ldebug_loc0:
-  77              	.LLST0:
-  78 0000 00000000 		.quad	.LFB15-.Ltext0
-  78      00000000 
-  79 0008 01000000 		.quad	.LCFI0-.Ltext0
-  79      00000000 
-  80 0010 0200     		.value	0x2
-  81 0012 77       		.byte	0x77
-  82 0013 08       		.sleb128 8
-
GAS LISTING /tmp/cclL3imJ.s 			page 4
-
-
-  83 0014 01000000 		.quad	.LCFI0-.Ltext0
-  83      00000000 
-  84 001c 04000000 		.quad	.LCFI1-.Ltext0
-  84      00000000 
-  85 0024 0200     		.value	0x2
-  86 0026 77       		.byte	0x77
-  87 0027 10       		.sleb128 16
-  88 0028 04000000 		.quad	.LCFI1-.Ltext0
-  88      00000000 
-  89 0030 65000000 		.quad	.LFE15-.Ltext0
-  89      00000000 
-  90 0038 0200     		.value	0x2
-  91 003a 76       		.byte	0x76
-  92 003b 10       		.sleb128 16
-  93 003c 00000000 		.quad	0x0
-  93      00000000 
-  94 0044 00000000 		.quad	0x0
-  94      00000000 
-  95              		.file 2 "/usr/include/stdint.h"
-  96              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
-  97              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
-  98              		.section	.debug_info
-  99 0000 24070000 		.long	0x724
- 100 0004 0200     		.value	0x2
- 101 0006 00000000 		.long	.Ldebug_abbrev0
- 102 000a 08       		.byte	0x8
- 103 000b 01       		.uleb128 0x1
- 104 000c 00000000 		.long	.LASF258
- 105 0010 01       		.byte	0x1
- 106 0011 00000000 		.long	.LASF259
- 107 0015 00000000 		.long	.LASF260
- 108 0019 00000000 		.quad	.Ltext0
- 108      00000000 
- 109 0021 00000000 		.quad	.Letext0
- 109      00000000 
- 110 0029 00000000 		.long	.Ldebug_line0
- 111 002d 02       		.uleb128 0x2
- 112 002e 01       		.byte	0x1
- 113 002f 06       		.byte	0x6
- 114 0030 00000000 		.long	.LASF0
- 115 0034 02       		.uleb128 0x2
- 116 0035 02       		.byte	0x2
- 117 0036 05       		.byte	0x5
- 118 0037 00000000 		.long	.LASF1
- 119 003b 03       		.uleb128 0x3
- 120 003c 04       		.byte	0x4
- 121 003d 05       		.byte	0x5
- 122 003e 696E7400 		.string	"int"
- 123 0042 02       		.uleb128 0x2
- 124 0043 08       		.byte	0x8
- 125 0044 05       		.byte	0x5
- 126 0045 00000000 		.long	.LASF2
- 127 0049 02       		.uleb128 0x2
- 128 004a 01       		.byte	0x1
- 129 004b 08       		.byte	0x8
- 130 004c 00000000 		.long	.LASF3
- 131 0050 02       		.uleb128 0x2
-
GAS LISTING /tmp/cclL3imJ.s 			page 5
-
-
- 132 0051 02       		.byte	0x2
- 133 0052 07       		.byte	0x7
- 134 0053 00000000 		.long	.LASF4
- 135 0057 04       		.uleb128 0x4
- 136 0058 00000000 		.long	.LASF7
- 137 005c 02       		.byte	0x2
- 138 005d 34       		.byte	0x34
- 139 005e 62000000 		.long	0x62
- 140 0062 02       		.uleb128 0x2
- 141 0063 04       		.byte	0x4
- 142 0064 07       		.byte	0x7
- 143 0065 00000000 		.long	.LASF5
- 144 0069 02       		.uleb128 0x2
- 145 006a 08       		.byte	0x8
- 146 006b 07       		.byte	0x7
- 147 006c 00000000 		.long	.LASF6
- 148 0070 04       		.uleb128 0x4
- 149 0071 00000000 		.long	.LASF8
- 150 0075 03       		.byte	0x3
- 151 0076 30       		.byte	0x30
- 152 0077 57000000 		.long	0x57
- 153 007b 05       		.uleb128 0x5
- 154 007c 08       		.byte	0x8
- 155 007d 07       		.byte	0x7
- 156 007e 02       		.uleb128 0x2
- 157 007f 01       		.byte	0x1
- 158 0080 06       		.byte	0x6
- 159 0081 00000000 		.long	.LASF9
- 160 0085 06       		.uleb128 0x6
- 161 0086 00000000 		.long	.LASF32
- 162 008a 04       		.byte	0x4
- 163 008b 04       		.byte	0x4
- 164 008c 5A       		.byte	0x5a
- 165 008d 16010000 		.long	0x116
- 166 0091 07       		.uleb128 0x7
- 167 0092 00000000 		.long	.LASF10
- 168 0096 00       		.sleb128 0
- 169 0097 07       		.uleb128 0x7
- 170 0098 00000000 		.long	.LASF11
- 171 009c 01       		.sleb128 1
- 172 009d 07       		.uleb128 0x7
- 173 009e 00000000 		.long	.LASF12
- 174 00a2 02       		.sleb128 2
- 175 00a3 07       		.uleb128 0x7
- 176 00a4 00000000 		.long	.LASF13
- 177 00a8 03       		.sleb128 3
- 178 00a9 07       		.uleb128 0x7
- 179 00aa 00000000 		.long	.LASF14
- 180 00ae 04       		.sleb128 4
- 181 00af 07       		.uleb128 0x7
- 182 00b0 00000000 		.long	.LASF15
- 183 00b4 05       		.sleb128 5
- 184 00b5 07       		.uleb128 0x7
- 185 00b6 00000000 		.long	.LASF16
- 186 00ba 06       		.sleb128 6
- 187 00bb 07       		.uleb128 0x7
- 188 00bc 00000000 		.long	.LASF17
-
GAS LISTING /tmp/cclL3imJ.s 			page 6
-
-
- 189 00c0 07       		.sleb128 7
- 190 00c1 07       		.uleb128 0x7
- 191 00c2 00000000 		.long	.LASF18
- 192 00c6 08       		.sleb128 8
- 193 00c7 07       		.uleb128 0x7
- 194 00c8 00000000 		.long	.LASF19
- 195 00cc 09       		.sleb128 9
- 196 00cd 07       		.uleb128 0x7
- 197 00ce 00000000 		.long	.LASF20
- 198 00d2 0A       		.sleb128 10
- 199 00d3 07       		.uleb128 0x7
- 200 00d4 00000000 		.long	.LASF21
- 201 00d8 0B       		.sleb128 11
- 202 00d9 07       		.uleb128 0x7
- 203 00da 00000000 		.long	.LASF22
- 204 00de 0C       		.sleb128 12
- 205 00df 07       		.uleb128 0x7
- 206 00e0 00000000 		.long	.LASF23
- 207 00e4 0D       		.sleb128 13
- 208 00e5 07       		.uleb128 0x7
- 209 00e6 00000000 		.long	.LASF24
- 210 00ea 0E       		.sleb128 14
- 211 00eb 07       		.uleb128 0x7
- 212 00ec 00000000 		.long	.LASF25
- 213 00f0 0E       		.sleb128 14
- 214 00f1 07       		.uleb128 0x7
- 215 00f2 00000000 		.long	.LASF26
- 216 00f6 0F       		.sleb128 15
- 217 00f7 07       		.uleb128 0x7
- 218 00f8 00000000 		.long	.LASF27
- 219 00fc 10       		.sleb128 16
- 220 00fd 07       		.uleb128 0x7
- 221 00fe 00000000 		.long	.LASF28
- 222 0102 11       		.sleb128 17
- 223 0103 07       		.uleb128 0x7
- 224 0104 00000000 		.long	.LASF29
- 225 0108 12       		.sleb128 18
- 226 0109 07       		.uleb128 0x7
- 227 010a 00000000 		.long	.LASF30
- 228 010e 13       		.sleb128 19
- 229 010f 07       		.uleb128 0x7
- 230 0110 00000000 		.long	.LASF31
- 231 0114 14       		.sleb128 20
- 232 0115 00       		.byte	0x0
- 233 0116 06       		.uleb128 0x6
- 234 0117 00000000 		.long	.LASF33
- 235 011b 04       		.byte	0x4
- 236 011c 04       		.byte	0x4
- 237 011d 77       		.byte	0x77
- 238 011e 9D020000 		.long	0x29d
- 239 0122 07       		.uleb128 0x7
- 240 0123 00000000 		.long	.LASF34
- 241 0127 00       		.sleb128 0
- 242 0128 07       		.uleb128 0x7
- 243 0129 00000000 		.long	.LASF35
- 244 012d 01       		.sleb128 1
- 245 012e 07       		.uleb128 0x7
-
GAS LISTING /tmp/cclL3imJ.s 			page 7
-
-
- 246 012f 00000000 		.long	.LASF36
- 247 0133 02       		.sleb128 2
- 248 0134 07       		.uleb128 0x7
- 249 0135 00000000 		.long	.LASF37
- 250 0139 03       		.sleb128 3
- 251 013a 07       		.uleb128 0x7
- 252 013b 00000000 		.long	.LASF38
- 253 013f 04       		.sleb128 4
- 254 0140 07       		.uleb128 0x7
- 255 0141 00000000 		.long	.LASF39
- 256 0145 05       		.sleb128 5
- 257 0146 07       		.uleb128 0x7
- 258 0147 00000000 		.long	.LASF40
- 259 014b 06       		.sleb128 6
- 260 014c 07       		.uleb128 0x7
- 261 014d 00000000 		.long	.LASF41
- 262 0151 07       		.sleb128 7
- 263 0152 07       		.uleb128 0x7
- 264 0153 00000000 		.long	.LASF42
- 265 0157 08       		.sleb128 8
- 266 0158 07       		.uleb128 0x7
- 267 0159 00000000 		.long	.LASF43
- 268 015d 09       		.sleb128 9
- 269 015e 07       		.uleb128 0x7
- 270 015f 00000000 		.long	.LASF44
- 271 0163 0A       		.sleb128 10
- 272 0164 07       		.uleb128 0x7
- 273 0165 00000000 		.long	.LASF45
- 274 0169 0B       		.sleb128 11
- 275 016a 07       		.uleb128 0x7
- 276 016b 00000000 		.long	.LASF46
- 277 016f 0C       		.sleb128 12
- 278 0170 07       		.uleb128 0x7
- 279 0171 00000000 		.long	.LASF47
- 280 0175 0D       		.sleb128 13
- 281 0176 07       		.uleb128 0x7
- 282 0177 00000000 		.long	.LASF48
- 283 017b 0E       		.sleb128 14
- 284 017c 07       		.uleb128 0x7
- 285 017d 00000000 		.long	.LASF49
- 286 0181 0F       		.sleb128 15
- 287 0182 07       		.uleb128 0x7
- 288 0183 00000000 		.long	.LASF50
- 289 0187 10       		.sleb128 16
- 290 0188 07       		.uleb128 0x7
- 291 0189 00000000 		.long	.LASF51
- 292 018d 11       		.sleb128 17
- 293 018e 07       		.uleb128 0x7
- 294 018f 00000000 		.long	.LASF52
- 295 0193 12       		.sleb128 18
- 296 0194 07       		.uleb128 0x7
- 297 0195 00000000 		.long	.LASF53
- 298 0199 13       		.sleb128 19
- 299 019a 07       		.uleb128 0x7
- 300 019b 00000000 		.long	.LASF54
- 301 019f 14       		.sleb128 20
- 302 01a0 07       		.uleb128 0x7
-
GAS LISTING /tmp/cclL3imJ.s 			page 8
-
-
- 303 01a1 00000000 		.long	.LASF55
- 304 01a5 15       		.sleb128 21
- 305 01a6 07       		.uleb128 0x7
- 306 01a7 00000000 		.long	.LASF56
- 307 01ab 16       		.sleb128 22
- 308 01ac 07       		.uleb128 0x7
- 309 01ad 00000000 		.long	.LASF57
- 310 01b1 17       		.sleb128 23
- 311 01b2 07       		.uleb128 0x7
- 312 01b3 00000000 		.long	.LASF58
- 313 01b7 18       		.sleb128 24
- 314 01b8 07       		.uleb128 0x7
- 315 01b9 00000000 		.long	.LASF59
- 316 01bd 19       		.sleb128 25
- 317 01be 07       		.uleb128 0x7
- 318 01bf 00000000 		.long	.LASF60
- 319 01c3 1A       		.sleb128 26
- 320 01c4 07       		.uleb128 0x7
- 321 01c5 00000000 		.long	.LASF61
- 322 01c9 1B       		.sleb128 27
- 323 01ca 07       		.uleb128 0x7
- 324 01cb 00000000 		.long	.LASF62
- 325 01cf 1C       		.sleb128 28
- 326 01d0 07       		.uleb128 0x7
- 327 01d1 00000000 		.long	.LASF63
- 328 01d5 1D       		.sleb128 29
- 329 01d6 07       		.uleb128 0x7
- 330 01d7 00000000 		.long	.LASF64
- 331 01db 1E       		.sleb128 30
- 332 01dc 07       		.uleb128 0x7
- 333 01dd 00000000 		.long	.LASF65
- 334 01e1 1F       		.sleb128 31
- 335 01e2 07       		.uleb128 0x7
- 336 01e3 00000000 		.long	.LASF66
- 337 01e7 20       		.sleb128 32
- 338 01e8 07       		.uleb128 0x7
- 339 01e9 00000000 		.long	.LASF67
- 340 01ed 21       		.sleb128 33
- 341 01ee 07       		.uleb128 0x7
- 342 01ef 00000000 		.long	.LASF68
- 343 01f3 22       		.sleb128 34
- 344 01f4 07       		.uleb128 0x7
- 345 01f5 00000000 		.long	.LASF69
- 346 01f9 23       		.sleb128 35
- 347 01fa 07       		.uleb128 0x7
- 348 01fb 00000000 		.long	.LASF70
- 349 01ff 24       		.sleb128 36
- 350 0200 07       		.uleb128 0x7
- 351 0201 00000000 		.long	.LASF71
- 352 0205 25       		.sleb128 37
- 353 0206 07       		.uleb128 0x7
- 354 0207 00000000 		.long	.LASF72
- 355 020b 26       		.sleb128 38
- 356 020c 07       		.uleb128 0x7
- 357 020d 00000000 		.long	.LASF73
- 358 0211 27       		.sleb128 39
- 359 0212 07       		.uleb128 0x7
-
GAS LISTING /tmp/cclL3imJ.s 			page 9
-
-
- 360 0213 00000000 		.long	.LASF74
- 361 0217 28       		.sleb128 40
- 362 0218 07       		.uleb128 0x7
- 363 0219 00000000 		.long	.LASF75
- 364 021d 29       		.sleb128 41
- 365 021e 07       		.uleb128 0x7
- 366 021f 00000000 		.long	.LASF76
- 367 0223 2A       		.sleb128 42
- 368 0224 07       		.uleb128 0x7
- 369 0225 00000000 		.long	.LASF77
- 370 0229 2B       		.sleb128 43
- 371 022a 07       		.uleb128 0x7
- 372 022b 00000000 		.long	.LASF78
- 373 022f 2C       		.sleb128 44
- 374 0230 07       		.uleb128 0x7
- 375 0231 00000000 		.long	.LASF79
- 376 0235 2D       		.sleb128 45
- 377 0236 07       		.uleb128 0x7
- 378 0237 00000000 		.long	.LASF80
- 379 023b 2E       		.sleb128 46
- 380 023c 07       		.uleb128 0x7
- 381 023d 00000000 		.long	.LASF81
- 382 0241 2F       		.sleb128 47
- 383 0242 07       		.uleb128 0x7
- 384 0243 00000000 		.long	.LASF82
- 385 0247 30       		.sleb128 48
- 386 0248 07       		.uleb128 0x7
- 387 0249 00000000 		.long	.LASF83
- 388 024d 31       		.sleb128 49
- 389 024e 07       		.uleb128 0x7
- 390 024f 00000000 		.long	.LASF84
- 391 0253 32       		.sleb128 50
- 392 0254 07       		.uleb128 0x7
- 393 0255 00000000 		.long	.LASF85
- 394 0259 33       		.sleb128 51
- 395 025a 07       		.uleb128 0x7
- 396 025b 00000000 		.long	.LASF86
- 397 025f 34       		.sleb128 52
- 398 0260 07       		.uleb128 0x7
- 399 0261 00000000 		.long	.LASF87
- 400 0265 35       		.sleb128 53
- 401 0266 07       		.uleb128 0x7
- 402 0267 00000000 		.long	.LASF88
- 403 026b 36       		.sleb128 54
- 404 026c 07       		.uleb128 0x7
- 405 026d 00000000 		.long	.LASF89
- 406 0271 36       		.sleb128 54
- 407 0272 07       		.uleb128 0x7
- 408 0273 00000000 		.long	.LASF90
- 409 0277 37       		.sleb128 55
- 410 0278 07       		.uleb128 0x7
- 411 0279 00000000 		.long	.LASF91
- 412 027d 38       		.sleb128 56
- 413 027e 07       		.uleb128 0x7
- 414 027f 00000000 		.long	.LASF92
- 415 0283 39       		.sleb128 57
- 416 0284 07       		.uleb128 0x7
-
GAS LISTING /tmp/cclL3imJ.s 			page 10
-
-
- 417 0285 00000000 		.long	.LASF93
- 418 0289 3A       		.sleb128 58
- 419 028a 07       		.uleb128 0x7
- 420 028b 00000000 		.long	.LASF94
- 421 028f 3B       		.sleb128 59
- 422 0290 07       		.uleb128 0x7
- 423 0291 00000000 		.long	.LASF95
- 424 0295 3C       		.sleb128 60
- 425 0296 07       		.uleb128 0x7
- 426 0297 00000000 		.long	.LASF96
- 427 029b 3D       		.sleb128 61
- 428 029c 00       		.byte	0x0
- 429 029d 06       		.uleb128 0x6
- 430 029e 00000000 		.long	.LASF97
- 431 02a2 04       		.byte	0x4
- 432 02a3 04       		.byte	0x4
- 433 02a4 BD       		.byte	0xbd
- 434 02a5 53040000 		.long	0x453
- 435 02a9 07       		.uleb128 0x7
- 436 02aa 00000000 		.long	.LASF98
- 437 02ae 00       		.sleb128 0
- 438 02af 07       		.uleb128 0x7
- 439 02b0 00000000 		.long	.LASF99
- 440 02b4 01       		.sleb128 1
- 441 02b5 07       		.uleb128 0x7
- 442 02b6 00000000 		.long	.LASF100
- 443 02ba 02       		.sleb128 2
- 444 02bb 07       		.uleb128 0x7
- 445 02bc 00000000 		.long	.LASF101
- 446 02c0 03       		.sleb128 3
- 447 02c1 07       		.uleb128 0x7
- 448 02c2 00000000 		.long	.LASF102
- 449 02c6 04       		.sleb128 4
- 450 02c7 07       		.uleb128 0x7
- 451 02c8 00000000 		.long	.LASF103
- 452 02cc 05       		.sleb128 5
- 453 02cd 07       		.uleb128 0x7
- 454 02ce 00000000 		.long	.LASF104
- 455 02d2 06       		.sleb128 6
- 456 02d3 07       		.uleb128 0x7
- 457 02d4 00000000 		.long	.LASF105
- 458 02d8 07       		.sleb128 7
- 459 02d9 07       		.uleb128 0x7
- 460 02da 00000000 		.long	.LASF106
- 461 02de 08       		.sleb128 8
- 462 02df 07       		.uleb128 0x7
- 463 02e0 00000000 		.long	.LASF107
- 464 02e4 09       		.sleb128 9
- 465 02e5 07       		.uleb128 0x7
- 466 02e6 00000000 		.long	.LASF108
- 467 02ea 0A       		.sleb128 10
- 468 02eb 07       		.uleb128 0x7
- 469 02ec 00000000 		.long	.LASF109
- 470 02f0 0B       		.sleb128 11
- 471 02f1 07       		.uleb128 0x7
- 472 02f2 00000000 		.long	.LASF110
- 473 02f6 0C       		.sleb128 12
-
GAS LISTING /tmp/cclL3imJ.s 			page 11
-
-
- 474 02f7 07       		.uleb128 0x7
- 475 02f8 00000000 		.long	.LASF111
- 476 02fc 0D       		.sleb128 13
- 477 02fd 07       		.uleb128 0x7
- 478 02fe 00000000 		.long	.LASF112
- 479 0302 0E       		.sleb128 14
- 480 0303 07       		.uleb128 0x7
- 481 0304 00000000 		.long	.LASF113
- 482 0308 0F       		.sleb128 15
- 483 0309 07       		.uleb128 0x7
- 484 030a 00000000 		.long	.LASF114
- 485 030e 10       		.sleb128 16
- 486 030f 07       		.uleb128 0x7
- 487 0310 00000000 		.long	.LASF115
- 488 0314 11       		.sleb128 17
- 489 0315 07       		.uleb128 0x7
- 490 0316 00000000 		.long	.LASF116
- 491 031a 12       		.sleb128 18
- 492 031b 07       		.uleb128 0x7
- 493 031c 00000000 		.long	.LASF117
- 494 0320 13       		.sleb128 19
- 495 0321 07       		.uleb128 0x7
- 496 0322 00000000 		.long	.LASF118
- 497 0326 14       		.sleb128 20
- 498 0327 07       		.uleb128 0x7
- 499 0328 00000000 		.long	.LASF119
- 500 032c 15       		.sleb128 21
- 501 032d 07       		.uleb128 0x7
- 502 032e 00000000 		.long	.LASF120
- 503 0332 16       		.sleb128 22
- 504 0333 07       		.uleb128 0x7
- 505 0334 00000000 		.long	.LASF121
- 506 0338 17       		.sleb128 23
- 507 0339 07       		.uleb128 0x7
- 508 033a 00000000 		.long	.LASF122
- 509 033e 18       		.sleb128 24
- 510 033f 07       		.uleb128 0x7
- 511 0340 00000000 		.long	.LASF123
- 512 0344 19       		.sleb128 25
- 513 0345 07       		.uleb128 0x7
- 514 0346 00000000 		.long	.LASF124
- 515 034a 1A       		.sleb128 26
- 516 034b 07       		.uleb128 0x7
- 517 034c 00000000 		.long	.LASF125
- 518 0350 1B       		.sleb128 27
- 519 0351 07       		.uleb128 0x7
- 520 0352 00000000 		.long	.LASF126
- 521 0356 1C       		.sleb128 28
- 522 0357 07       		.uleb128 0x7
- 523 0358 00000000 		.long	.LASF127
- 524 035c 1D       		.sleb128 29
- 525 035d 07       		.uleb128 0x7
- 526 035e 00000000 		.long	.LASF128
- 527 0362 1E       		.sleb128 30
- 528 0363 07       		.uleb128 0x7
- 529 0364 00000000 		.long	.LASF129
- 530 0368 1F       		.sleb128 31
-
GAS LISTING /tmp/cclL3imJ.s 			page 12
-
-
- 531 0369 07       		.uleb128 0x7
- 532 036a 00000000 		.long	.LASF130
- 533 036e 20       		.sleb128 32
- 534 036f 07       		.uleb128 0x7
- 535 0370 00000000 		.long	.LASF131
- 536 0374 21       		.sleb128 33
- 537 0375 07       		.uleb128 0x7
- 538 0376 00000000 		.long	.LASF132
- 539 037a 22       		.sleb128 34
- 540 037b 07       		.uleb128 0x7
- 541 037c 00000000 		.long	.LASF133
- 542 0380 23       		.sleb128 35
- 543 0381 07       		.uleb128 0x7
- 544 0382 00000000 		.long	.LASF134
- 545 0386 24       		.sleb128 36
- 546 0387 07       		.uleb128 0x7
- 547 0388 00000000 		.long	.LASF135
- 548 038c 25       		.sleb128 37
- 549 038d 07       		.uleb128 0x7
- 550 038e 00000000 		.long	.LASF136
- 551 0392 26       		.sleb128 38
- 552 0393 07       		.uleb128 0x7
- 553 0394 00000000 		.long	.LASF137
- 554 0398 27       		.sleb128 39
- 555 0399 07       		.uleb128 0x7
- 556 039a 00000000 		.long	.LASF138
- 557 039e 28       		.sleb128 40
- 558 039f 07       		.uleb128 0x7
- 559 03a0 00000000 		.long	.LASF139
- 560 03a4 29       		.sleb128 41
- 561 03a5 07       		.uleb128 0x7
- 562 03a6 00000000 		.long	.LASF140
- 563 03aa 2A       		.sleb128 42
- 564 03ab 07       		.uleb128 0x7
- 565 03ac 00000000 		.long	.LASF141
- 566 03b0 2B       		.sleb128 43
- 567 03b1 07       		.uleb128 0x7
- 568 03b2 00000000 		.long	.LASF142
- 569 03b6 2C       		.sleb128 44
- 570 03b7 07       		.uleb128 0x7
- 571 03b8 00000000 		.long	.LASF143
- 572 03bc 2D       		.sleb128 45
- 573 03bd 07       		.uleb128 0x7
- 574 03be 00000000 		.long	.LASF144
- 575 03c2 2E       		.sleb128 46
- 576 03c3 07       		.uleb128 0x7
- 577 03c4 00000000 		.long	.LASF145
- 578 03c8 2F       		.sleb128 47
- 579 03c9 07       		.uleb128 0x7
- 580 03ca 00000000 		.long	.LASF146
- 581 03ce 30       		.sleb128 48
- 582 03cf 07       		.uleb128 0x7
- 583 03d0 00000000 		.long	.LASF147
- 584 03d4 31       		.sleb128 49
- 585 03d5 07       		.uleb128 0x7
- 586 03d6 00000000 		.long	.LASF148
- 587 03da 32       		.sleb128 50
-
GAS LISTING /tmp/cclL3imJ.s 			page 13
-
-
- 588 03db 07       		.uleb128 0x7
- 589 03dc 00000000 		.long	.LASF149
- 590 03e0 33       		.sleb128 51
- 591 03e1 07       		.uleb128 0x7
- 592 03e2 00000000 		.long	.LASF150
- 593 03e6 34       		.sleb128 52
- 594 03e7 07       		.uleb128 0x7
- 595 03e8 00000000 		.long	.LASF151
- 596 03ec 35       		.sleb128 53
- 597 03ed 07       		.uleb128 0x7
- 598 03ee 00000000 		.long	.LASF152
- 599 03f2 36       		.sleb128 54
- 600 03f3 07       		.uleb128 0x7
- 601 03f4 00000000 		.long	.LASF153
- 602 03f8 37       		.sleb128 55
- 603 03f9 07       		.uleb128 0x7
- 604 03fa 00000000 		.long	.LASF154
- 605 03fe 38       		.sleb128 56
- 606 03ff 07       		.uleb128 0x7
- 607 0400 00000000 		.long	.LASF155
- 608 0404 39       		.sleb128 57
- 609 0405 07       		.uleb128 0x7
- 610 0406 00000000 		.long	.LASF156
- 611 040a 3A       		.sleb128 58
- 612 040b 07       		.uleb128 0x7
- 613 040c 00000000 		.long	.LASF157
- 614 0410 3A       		.sleb128 58
- 615 0411 07       		.uleb128 0x7
- 616 0412 00000000 		.long	.LASF158
- 617 0416 3B       		.sleb128 59
- 618 0417 07       		.uleb128 0x7
- 619 0418 00000000 		.long	.LASF159
- 620 041c 3C       		.sleb128 60
- 621 041d 07       		.uleb128 0x7
- 622 041e 00000000 		.long	.LASF160
- 623 0422 3D       		.sleb128 61
- 624 0423 07       		.uleb128 0x7
- 625 0424 00000000 		.long	.LASF161
- 626 0428 3E       		.sleb128 62
- 627 0429 07       		.uleb128 0x7
- 628 042a 00000000 		.long	.LASF162
- 629 042e 3F       		.sleb128 63
- 630 042f 07       		.uleb128 0x7
- 631 0430 00000000 		.long	.LASF163
- 632 0434 C000     		.sleb128 64
- 633 0436 07       		.uleb128 0x7
- 634 0437 00000000 		.long	.LASF164
- 635 043b C100     		.sleb128 65
- 636 043d 07       		.uleb128 0x7
- 637 043e 00000000 		.long	.LASF165
- 638 0442 C200     		.sleb128 66
- 639 0444 07       		.uleb128 0x7
- 640 0445 00000000 		.long	.LASF166
- 641 0449 C300     		.sleb128 67
- 642 044b 07       		.uleb128 0x7
- 643 044c 00000000 		.long	.LASF167
- 644 0450 C400     		.sleb128 68
-
GAS LISTING /tmp/cclL3imJ.s 			page 14
-
-
- 645 0452 00       		.byte	0x0
- 646 0453 08       		.uleb128 0x8
- 647 0454 00000000 		.long	.LASF168
- 648 0458 04       		.byte	0x4
- 649 0459 04       		.byte	0x4
- 650 045a 0A01     		.value	0x10a
- 651 045c 52050000 		.long	0x552
- 652 0460 07       		.uleb128 0x7
- 653 0461 00000000 		.long	.LASF169
- 654 0465 00       		.sleb128 0
- 655 0466 07       		.uleb128 0x7
- 656 0467 00000000 		.long	.LASF170
- 657 046b 3D       		.sleb128 61
- 658 046c 07       		.uleb128 0x7
- 659 046d 00000000 		.long	.LASF171
- 660 0471 3E       		.sleb128 62
- 661 0472 07       		.uleb128 0x7
- 662 0473 00000000 		.long	.LASF172
- 663 0477 3F       		.sleb128 63
- 664 0478 07       		.uleb128 0x7
- 665 0479 00000000 		.long	.LASF173
- 666 047d C000     		.sleb128 64
- 667 047f 07       		.uleb128 0x7
- 668 0480 00000000 		.long	.LASF174
- 669 0484 C100     		.sleb128 65
- 670 0486 07       		.uleb128 0x7
- 671 0487 00000000 		.long	.LASF175
- 672 048b C200     		.sleb128 66
- 673 048d 07       		.uleb128 0x7
- 674 048e 00000000 		.long	.LASF176
- 675 0492 C300     		.sleb128 67
- 676 0494 07       		.uleb128 0x7
- 677 0495 00000000 		.long	.LASF177
- 678 0499 C400     		.sleb128 68
- 679 049b 07       		.uleb128 0x7
- 680 049c 00000000 		.long	.LASF178
- 681 04a0 C500     		.sleb128 69
- 682 04a2 07       		.uleb128 0x7
- 683 04a3 00000000 		.long	.LASF179
- 684 04a7 C600     		.sleb128 70
- 685 04a9 07       		.uleb128 0x7
- 686 04aa 00000000 		.long	.LASF180
- 687 04ae C700     		.sleb128 71
- 688 04b0 07       		.uleb128 0x7
- 689 04b1 00000000 		.long	.LASF181
- 690 04b5 C800     		.sleb128 72
- 691 04b7 07       		.uleb128 0x7
- 692 04b8 00000000 		.long	.LASF182
- 693 04bc C900     		.sleb128 73
- 694 04be 07       		.uleb128 0x7
- 695 04bf 00000000 		.long	.LASF183
- 696 04c3 CA00     		.sleb128 74
- 697 04c5 07       		.uleb128 0x7
- 698 04c6 00000000 		.long	.LASF184
- 699 04ca CB00     		.sleb128 75
- 700 04cc 07       		.uleb128 0x7
- 701 04cd 00000000 		.long	.LASF185
-
GAS LISTING /tmp/cclL3imJ.s 			page 15
-
-
- 702 04d1 CC00     		.sleb128 76
- 703 04d3 07       		.uleb128 0x7
- 704 04d4 00000000 		.long	.LASF186
- 705 04d8 CD00     		.sleb128 77
- 706 04da 07       		.uleb128 0x7
- 707 04db 00000000 		.long	.LASF187
- 708 04df CE00     		.sleb128 78
- 709 04e1 07       		.uleb128 0x7
- 710 04e2 00000000 		.long	.LASF188
- 711 04e6 CF00     		.sleb128 79
- 712 04e8 07       		.uleb128 0x7
- 713 04e9 00000000 		.long	.LASF189
- 714 04ed D000     		.sleb128 80
- 715 04ef 07       		.uleb128 0x7
- 716 04f0 00000000 		.long	.LASF190
- 717 04f4 D100     		.sleb128 81
- 718 04f6 07       		.uleb128 0x7
- 719 04f7 00000000 		.long	.LASF191
- 720 04fb D100     		.sleb128 81
- 721 04fd 07       		.uleb128 0x7
- 722 04fe 00000000 		.long	.LASF192
- 723 0502 D200     		.sleb128 82
- 724 0504 07       		.uleb128 0x7
- 725 0505 00000000 		.long	.LASF193
- 726 0509 D300     		.sleb128 83
- 727 050b 07       		.uleb128 0x7
- 728 050c 00000000 		.long	.LASF194
- 729 0510 D400     		.sleb128 84
- 730 0512 07       		.uleb128 0x7
- 731 0513 00000000 		.long	.LASF195
- 732 0517 D500     		.sleb128 85
- 733 0519 07       		.uleb128 0x7
- 734 051a 00000000 		.long	.LASF196
- 735 051e D600     		.sleb128 86
- 736 0520 07       		.uleb128 0x7
- 737 0521 00000000 		.long	.LASF197
- 738 0525 D700     		.sleb128 87
- 739 0527 07       		.uleb128 0x7
- 740 0528 00000000 		.long	.LASF198
- 741 052c D800     		.sleb128 88
- 742 052e 07       		.uleb128 0x7
- 743 052f 00000000 		.long	.LASF199
- 744 0533 D900     		.sleb128 89
- 745 0535 07       		.uleb128 0x7
- 746 0536 00000000 		.long	.LASF200
- 747 053a DA00     		.sleb128 90
- 748 053c 07       		.uleb128 0x7
- 749 053d 00000000 		.long	.LASF201
- 750 0541 DB00     		.sleb128 91
- 751 0543 07       		.uleb128 0x7
- 752 0544 00000000 		.long	.LASF202
- 753 0548 DC00     		.sleb128 92
- 754 054a 07       		.uleb128 0x7
- 755 054b 00000000 		.long	.LASF203
- 756 054f DD00     		.sleb128 93
- 757 0551 00       		.byte	0x0
- 758 0552 08       		.uleb128 0x8
-
GAS LISTING /tmp/cclL3imJ.s 			page 16
-
-
- 759 0553 00000000 		.long	.LASF204
- 760 0557 04       		.byte	0x4
- 761 0558 04       		.byte	0x4
- 762 0559 3401     		.value	0x134
- 763 055b 92060000 		.long	0x692
- 764 055f 07       		.uleb128 0x7
- 765 0560 00000000 		.long	.LASF205
- 766 0564 00       		.sleb128 0
- 767 0565 07       		.uleb128 0x7
- 768 0566 00000000 		.long	.LASF206
- 769 056a 01       		.sleb128 1
- 770 056b 07       		.uleb128 0x7
- 771 056c 00000000 		.long	.LASF207
- 772 0570 02       		.sleb128 2
- 773 0571 07       		.uleb128 0x7
- 774 0572 00000000 		.long	.LASF208
- 775 0576 03       		.sleb128 3
- 776 0577 07       		.uleb128 0x7
- 777 0578 00000000 		.long	.LASF209
- 778 057c 04       		.sleb128 4
- 779 057d 07       		.uleb128 0x7
- 780 057e 00000000 		.long	.LASF210
- 781 0582 05       		.sleb128 5
- 782 0583 07       		.uleb128 0x7
- 783 0584 00000000 		.long	.LASF211
- 784 0588 06       		.sleb128 6
- 785 0589 07       		.uleb128 0x7
- 786 058a 00000000 		.long	.LASF212
- 787 058e 07       		.sleb128 7
- 788 058f 07       		.uleb128 0x7
- 789 0590 00000000 		.long	.LASF213
- 790 0594 08       		.sleb128 8
- 791 0595 07       		.uleb128 0x7
- 792 0596 00000000 		.long	.LASF214
- 793 059a 09       		.sleb128 9
- 794 059b 07       		.uleb128 0x7
- 795 059c 00000000 		.long	.LASF215
- 796 05a0 0A       		.sleb128 10
- 797 05a1 07       		.uleb128 0x7
- 798 05a2 00000000 		.long	.LASF216
- 799 05a6 0B       		.sleb128 11
- 800 05a7 07       		.uleb128 0x7
- 801 05a8 00000000 		.long	.LASF217
- 802 05ac 0C       		.sleb128 12
- 803 05ad 07       		.uleb128 0x7
- 804 05ae 00000000 		.long	.LASF218
- 805 05b2 0D       		.sleb128 13
- 806 05b3 07       		.uleb128 0x7
- 807 05b4 00000000 		.long	.LASF219
- 808 05b8 0E       		.sleb128 14
- 809 05b9 07       		.uleb128 0x7
- 810 05ba 00000000 		.long	.LASF220
- 811 05be 0F       		.sleb128 15
- 812 05bf 07       		.uleb128 0x7
- 813 05c0 00000000 		.long	.LASF221
- 814 05c4 10       		.sleb128 16
- 815 05c5 07       		.uleb128 0x7
-
GAS LISTING /tmp/cclL3imJ.s 			page 17
-
-
- 816 05c6 00000000 		.long	.LASF222
- 817 05ca 11       		.sleb128 17
- 818 05cb 07       		.uleb128 0x7
- 819 05cc 00000000 		.long	.LASF223
- 820 05d0 12       		.sleb128 18
- 821 05d1 07       		.uleb128 0x7
- 822 05d2 00000000 		.long	.LASF224
- 823 05d6 13       		.sleb128 19
- 824 05d7 07       		.uleb128 0x7
- 825 05d8 00000000 		.long	.LASF225
- 826 05dc 14       		.sleb128 20
- 827 05dd 07       		.uleb128 0x7
- 828 05de 00000000 		.long	.LASF226
- 829 05e2 15       		.sleb128 21
- 830 05e3 07       		.uleb128 0x7
- 831 05e4 00000000 		.long	.LASF227
- 832 05e8 16       		.sleb128 22
- 833 05e9 07       		.uleb128 0x7
- 834 05ea 00000000 		.long	.LASF228
- 835 05ee 17       		.sleb128 23
- 836 05ef 07       		.uleb128 0x7
- 837 05f0 00000000 		.long	.LASF229
- 838 05f4 18       		.sleb128 24
- 839 05f5 07       		.uleb128 0x7
- 840 05f6 00000000 		.long	.LASF230
- 841 05fa 19       		.sleb128 25
- 842 05fb 07       		.uleb128 0x7
- 843 05fc 00000000 		.long	.LASF231
- 844 0600 1A       		.sleb128 26
- 845 0601 07       		.uleb128 0x7
- 846 0602 00000000 		.long	.LASF232
- 847 0606 1B       		.sleb128 27
- 848 0607 07       		.uleb128 0x7
- 849 0608 00000000 		.long	.LASF233
- 850 060c 1C       		.sleb128 28
- 851 060d 07       		.uleb128 0x7
- 852 060e 00000000 		.long	.LASF234
- 853 0612 1D       		.sleb128 29
- 854 0613 07       		.uleb128 0x7
- 855 0614 00000000 		.long	.LASF235
- 856 0618 1E       		.sleb128 30
- 857 0619 07       		.uleb128 0x7
- 858 061a 00000000 		.long	.LASF236
- 859 061e 1F       		.sleb128 31
- 860 061f 07       		.uleb128 0x7
- 861 0620 00000000 		.long	.LASF237
- 862 0624 20       		.sleb128 32
- 863 0625 07       		.uleb128 0x7
- 864 0626 00000000 		.long	.LASF238
- 865 062a 21       		.sleb128 33
- 866 062b 07       		.uleb128 0x7
- 867 062c 00000000 		.long	.LASF239
- 868 0630 22       		.sleb128 34
- 869 0631 07       		.uleb128 0x7
- 870 0632 00000000 		.long	.LASF240
- 871 0636 23       		.sleb128 35
- 872 0637 07       		.uleb128 0x7
-
GAS LISTING /tmp/cclL3imJ.s 			page 18
-
-
- 873 0638 00000000 		.long	.LASF241
- 874 063c 24       		.sleb128 36
- 875 063d 07       		.uleb128 0x7
- 876 063e 00000000 		.long	.LASF242
- 877 0642 25       		.sleb128 37
- 878 0643 07       		.uleb128 0x7
- 879 0644 00000000 		.long	.LASF243
- 880 0648 26       		.sleb128 38
- 881 0649 07       		.uleb128 0x7
- 882 064a 00000000 		.long	.LASF244
- 883 064e 27       		.sleb128 39
- 884 064f 07       		.uleb128 0x7
- 885 0650 00000000 		.long	.LASF245
- 886 0654 28       		.sleb128 40
- 887 0655 07       		.uleb128 0x7
- 888 0656 00000000 		.long	.LASF246
- 889 065a 29       		.sleb128 41
- 890 065b 07       		.uleb128 0x7
- 891 065c 00000000 		.long	.LASF247
- 892 0660 29       		.sleb128 41
- 893 0661 07       		.uleb128 0x7
- 894 0662 00000000 		.long	.LASF248
- 895 0666 2A       		.sleb128 42
- 896 0667 07       		.uleb128 0x7
- 897 0668 00000000 		.long	.LASF249
- 898 066c 2B       		.sleb128 43
- 899 066d 07       		.uleb128 0x7
- 900 066e 00000000 		.long	.LASF250
- 901 0672 2C       		.sleb128 44
- 902 0673 07       		.uleb128 0x7
- 903 0674 00000000 		.long	.LASF251
- 904 0678 2D       		.sleb128 45
- 905 0679 07       		.uleb128 0x7
- 906 067a 00000000 		.long	.LASF252
- 907 067e 2E       		.sleb128 46
- 908 067f 07       		.uleb128 0x7
- 909 0680 00000000 		.long	.LASF253
- 910 0684 2F       		.sleb128 47
- 911 0685 07       		.uleb128 0x7
- 912 0686 00000000 		.long	.LASF254
- 913 068a 30       		.sleb128 48
- 914 068b 07       		.uleb128 0x7
- 915 068c 00000000 		.long	.LASF255
- 916 0690 31       		.sleb128 49
- 917 0691 00       		.byte	0x0
- 918 0692 09       		.uleb128 0x9
- 919 0693 01       		.byte	0x1
- 920 0694 00000000 		.long	.LASF261
- 921 0698 01       		.byte	0x1
- 922 0699 2A       		.byte	0x2a
- 923 069a 01       		.byte	0x1
- 924 069b 70000000 		.long	0x70
- 925 069f 00000000 		.quad	.LFB15
- 925      00000000 
- 926 06a7 00000000 		.quad	.LFE15
- 926      00000000 
- 927 06af 00000000 		.long	.LLST0
-
GAS LISTING /tmp/cclL3imJ.s 			page 19
-
-
- 928 06b3 01070000 		.long	0x701
- 929 06b7 0A       		.uleb128 0xa
- 930 06b8 00000000 		.long	.LASF262
- 931 06bc 01       		.byte	0x1
- 932 06bd 0B       		.uleb128 0xb
- 933 06be 00000000 		.long	.LASF263
- 934 06c2 01       		.byte	0x1
- 935 06c3 2A       		.byte	0x2a
- 936 06c4 01070000 		.long	0x701
- 937 06c8 02       		.byte	0x2
- 938 06c9 91       		.byte	0x91
- 939 06ca 58       		.sleb128 -40
- 940 06cb 0C       		.uleb128 0xc
- 941 06cc 726300   		.string	"rc"
- 942 06cf 01       		.byte	0x1
- 943 06d0 2C       		.byte	0x2c
- 944 06d1 70000000 		.long	0x70
- 945 06d5 02       		.byte	0x2
- 946 06d6 91       		.byte	0x91
- 947 06d7 6C       		.sleb128 -20
- 948 06d8 0D       		.uleb128 0xd
- 949 06d9 00000000 		.long	.LASF256
- 950 06dd 1D070000 		.long	0x71d
- 951 06e1 01       		.byte	0x1
- 952 06e2 09       		.byte	0x9
- 953 06e3 03       		.byte	0x3
- 954 06e4 00000000 		.quad	__PRETTY_FUNCTION__.2438
- 954      00000000 
- 955 06ec 0D       		.uleb128 0xd
- 956 06ed 00000000 		.long	.LASF257
- 957 06f1 22070000 		.long	0x722
- 958 06f5 01       		.byte	0x1
- 959 06f6 09       		.byte	0x9
- 960 06f7 03       		.byte	0x3
- 961 06f8 00000000 		.quad	__func__.2439
- 961      00000000 
- 962 0700 00       		.byte	0x0
- 963 0701 0E       		.uleb128 0xe
- 964 0702 08       		.byte	0x8
- 965 0703 07070000 		.long	0x707
- 966 0707 0E       		.uleb128 0xe
- 967 0708 08       		.byte	0x8
- 968 0709 B7060000 		.long	0x6b7
- 969 070d 0F       		.uleb128 0xf
- 970 070e 7E000000 		.long	0x7e
- 971 0712 1D070000 		.long	0x71d
- 972 0716 10       		.uleb128 0x10
- 973 0717 7B000000 		.long	0x7b
- 974 071b 1A       		.byte	0x1a
- 975 071c 00       		.byte	0x0
- 976 071d 11       		.uleb128 0x11
- 977 071e 0D070000 		.long	0x70d
- 978 0722 11       		.uleb128 0x11
- 979 0723 0D070000 		.long	0x70d
- 980 0727 00       		.byte	0x0
- 981              		.section	.debug_abbrev
- 982 0000 01       		.uleb128 0x1
-
GAS LISTING /tmp/cclL3imJ.s 			page 20
-
-
- 983 0001 11       		.uleb128 0x11
- 984 0002 01       		.byte	0x1
- 985 0003 25       		.uleb128 0x25
- 986 0004 0E       		.uleb128 0xe
- 987 0005 13       		.uleb128 0x13
- 988 0006 0B       		.uleb128 0xb
- 989 0007 03       		.uleb128 0x3
- 990 0008 0E       		.uleb128 0xe
- 991 0009 1B       		.uleb128 0x1b
- 992 000a 0E       		.uleb128 0xe
- 993 000b 11       		.uleb128 0x11
- 994 000c 01       		.uleb128 0x1
- 995 000d 12       		.uleb128 0x12
- 996 000e 01       		.uleb128 0x1
- 997 000f 10       		.uleb128 0x10
- 998 0010 06       		.uleb128 0x6
- 999 0011 00       		.byte	0x0
- 1000 0012 00       		.byte	0x0
- 1001 0013 02       		.uleb128 0x2
- 1002 0014 24       		.uleb128 0x24
- 1003 0015 00       		.byte	0x0
- 1004 0016 0B       		.uleb128 0xb
- 1005 0017 0B       		.uleb128 0xb
- 1006 0018 3E       		.uleb128 0x3e
- 1007 0019 0B       		.uleb128 0xb
- 1008 001a 03       		.uleb128 0x3
- 1009 001b 0E       		.uleb128 0xe
- 1010 001c 00       		.byte	0x0
- 1011 001d 00       		.byte	0x0
- 1012 001e 03       		.uleb128 0x3
- 1013 001f 24       		.uleb128 0x24
- 1014 0020 00       		.byte	0x0
- 1015 0021 0B       		.uleb128 0xb
- 1016 0022 0B       		.uleb128 0xb
- 1017 0023 3E       		.uleb128 0x3e
- 1018 0024 0B       		.uleb128 0xb
- 1019 0025 03       		.uleb128 0x3
- 1020 0026 08       		.uleb128 0x8
- 1021 0027 00       		.byte	0x0
- 1022 0028 00       		.byte	0x0
- 1023 0029 04       		.uleb128 0x4
- 1024 002a 16       		.uleb128 0x16
- 1025 002b 00       		.byte	0x0
- 1026 002c 03       		.uleb128 0x3
- 1027 002d 0E       		.uleb128 0xe
- 1028 002e 3A       		.uleb128 0x3a
- 1029 002f 0B       		.uleb128 0xb
- 1030 0030 3B       		.uleb128 0x3b
- 1031 0031 0B       		.uleb128 0xb
- 1032 0032 49       		.uleb128 0x49
- 1033 0033 13       		.uleb128 0x13
- 1034 0034 00       		.byte	0x0
- 1035 0035 00       		.byte	0x0
- 1036 0036 05       		.uleb128 0x5
- 1037 0037 24       		.uleb128 0x24
- 1038 0038 00       		.byte	0x0
- 1039 0039 0B       		.uleb128 0xb
-
GAS LISTING /tmp/cclL3imJ.s 			page 21
-
-
- 1040 003a 0B       		.uleb128 0xb
- 1041 003b 3E       		.uleb128 0x3e
- 1042 003c 0B       		.uleb128 0xb
- 1043 003d 00       		.byte	0x0
- 1044 003e 00       		.byte	0x0
- 1045 003f 06       		.uleb128 0x6
- 1046 0040 04       		.uleb128 0x4
- 1047 0041 01       		.byte	0x1
- 1048 0042 03       		.uleb128 0x3
- 1049 0043 0E       		.uleb128 0xe
- 1050 0044 0B       		.uleb128 0xb
- 1051 0045 0B       		.uleb128 0xb
- 1052 0046 3A       		.uleb128 0x3a
- 1053 0047 0B       		.uleb128 0xb
- 1054 0048 3B       		.uleb128 0x3b
- 1055 0049 0B       		.uleb128 0xb
- 1056 004a 01       		.uleb128 0x1
- 1057 004b 13       		.uleb128 0x13
- 1058 004c 00       		.byte	0x0
- 1059 004d 00       		.byte	0x0
- 1060 004e 07       		.uleb128 0x7
- 1061 004f 28       		.uleb128 0x28
- 1062 0050 00       		.byte	0x0
- 1063 0051 03       		.uleb128 0x3
- 1064 0052 0E       		.uleb128 0xe
- 1065 0053 1C       		.uleb128 0x1c
- 1066 0054 0D       		.uleb128 0xd
- 1067 0055 00       		.byte	0x0
- 1068 0056 00       		.byte	0x0
- 1069 0057 08       		.uleb128 0x8
- 1070 0058 04       		.uleb128 0x4
- 1071 0059 01       		.byte	0x1
- 1072 005a 03       		.uleb128 0x3
- 1073 005b 0E       		.uleb128 0xe
- 1074 005c 0B       		.uleb128 0xb
- 1075 005d 0B       		.uleb128 0xb
- 1076 005e 3A       		.uleb128 0x3a
- 1077 005f 0B       		.uleb128 0xb
- 1078 0060 3B       		.uleb128 0x3b
- 1079 0061 05       		.uleb128 0x5
- 1080 0062 01       		.uleb128 0x1
- 1081 0063 13       		.uleb128 0x13
- 1082 0064 00       		.byte	0x0
- 1083 0065 00       		.byte	0x0
- 1084 0066 09       		.uleb128 0x9
- 1085 0067 2E       		.uleb128 0x2e
- 1086 0068 01       		.byte	0x1
- 1087 0069 3F       		.uleb128 0x3f
- 1088 006a 0C       		.uleb128 0xc
- 1089 006b 03       		.uleb128 0x3
- 1090 006c 0E       		.uleb128 0xe
- 1091 006d 3A       		.uleb128 0x3a
- 1092 006e 0B       		.uleb128 0xb
- 1093 006f 3B       		.uleb128 0x3b
- 1094 0070 0B       		.uleb128 0xb
- 1095 0071 27       		.uleb128 0x27
- 1096 0072 0C       		.uleb128 0xc
-
GAS LISTING /tmp/cclL3imJ.s 			page 22
-
-
- 1097 0073 49       		.uleb128 0x49
- 1098 0074 13       		.uleb128 0x13
- 1099 0075 11       		.uleb128 0x11
- 1100 0076 01       		.uleb128 0x1
- 1101 0077 12       		.uleb128 0x12
- 1102 0078 01       		.uleb128 0x1
- 1103 0079 40       		.uleb128 0x40
- 1104 007a 06       		.uleb128 0x6
- 1105 007b 01       		.uleb128 0x1
- 1106 007c 13       		.uleb128 0x13
- 1107 007d 00       		.byte	0x0
- 1108 007e 00       		.byte	0x0
- 1109 007f 0A       		.uleb128 0xa
- 1110 0080 13       		.uleb128 0x13
- 1111 0081 00       		.byte	0x0
- 1112 0082 03       		.uleb128 0x3
- 1113 0083 0E       		.uleb128 0xe
- 1114 0084 3C       		.uleb128 0x3c
- 1115 0085 0C       		.uleb128 0xc
- 1116 0086 00       		.byte	0x0
- 1117 0087 00       		.byte	0x0
- 1118 0088 0B       		.uleb128 0xb
- 1119 0089 05       		.uleb128 0x5
- 1120 008a 00       		.byte	0x0
- 1121 008b 03       		.uleb128 0x3
- 1122 008c 0E       		.uleb128 0xe
- 1123 008d 3A       		.uleb128 0x3a
- 1124 008e 0B       		.uleb128 0xb
- 1125 008f 3B       		.uleb128 0x3b
- 1126 0090 0B       		.uleb128 0xb
- 1127 0091 49       		.uleb128 0x49
- 1128 0092 13       		.uleb128 0x13
- 1129 0093 02       		.uleb128 0x2
- 1130 0094 0A       		.uleb128 0xa
- 1131 0095 00       		.byte	0x0
- 1132 0096 00       		.byte	0x0
- 1133 0097 0C       		.uleb128 0xc
- 1134 0098 34       		.uleb128 0x34
- 1135 0099 00       		.byte	0x0
- 1136 009a 03       		.uleb128 0x3
- 1137 009b 08       		.uleb128 0x8
- 1138 009c 3A       		.uleb128 0x3a
- 1139 009d 0B       		.uleb128 0xb
- 1140 009e 3B       		.uleb128 0x3b
- 1141 009f 0B       		.uleb128 0xb
- 1142 00a0 49       		.uleb128 0x49
- 1143 00a1 13       		.uleb128 0x13
- 1144 00a2 02       		.uleb128 0x2
- 1145 00a3 0A       		.uleb128 0xa
- 1146 00a4 00       		.byte	0x0
- 1147 00a5 00       		.byte	0x0
- 1148 00a6 0D       		.uleb128 0xd
- 1149 00a7 34       		.uleb128 0x34
- 1150 00a8 00       		.byte	0x0
- 1151 00a9 03       		.uleb128 0x3
- 1152 00aa 0E       		.uleb128 0xe
- 1153 00ab 49       		.uleb128 0x49
-
GAS LISTING /tmp/cclL3imJ.s 			page 23
-
-
- 1154 00ac 13       		.uleb128 0x13
- 1155 00ad 34       		.uleb128 0x34
- 1156 00ae 0C       		.uleb128 0xc
- 1157 00af 02       		.uleb128 0x2
- 1158 00b0 0A       		.uleb128 0xa
- 1159 00b1 00       		.byte	0x0
- 1160 00b2 00       		.byte	0x0
- 1161 00b3 0E       		.uleb128 0xe
- 1162 00b4 0F       		.uleb128 0xf
- 1163 00b5 00       		.byte	0x0
- 1164 00b6 0B       		.uleb128 0xb
- 1165 00b7 0B       		.uleb128 0xb
- 1166 00b8 49       		.uleb128 0x49
- 1167 00b9 13       		.uleb128 0x13
- 1168 00ba 00       		.byte	0x0
- 1169 00bb 00       		.byte	0x0
- 1170 00bc 0F       		.uleb128 0xf
- 1171 00bd 01       		.uleb128 0x1
- 1172 00be 01       		.byte	0x1
- 1173 00bf 49       		.uleb128 0x49
- 1174 00c0 13       		.uleb128 0x13
- 1175 00c1 01       		.uleb128 0x1
- 1176 00c2 13       		.uleb128 0x13
- 1177 00c3 00       		.byte	0x0
- 1178 00c4 00       		.byte	0x0
- 1179 00c5 10       		.uleb128 0x10
- 1180 00c6 21       		.uleb128 0x21
- 1181 00c7 00       		.byte	0x0
- 1182 00c8 49       		.uleb128 0x49
- 1183 00c9 13       		.uleb128 0x13
- 1184 00ca 2F       		.uleb128 0x2f
- 1185 00cb 0B       		.uleb128 0xb
- 1186 00cc 00       		.byte	0x0
- 1187 00cd 00       		.byte	0x0
- 1188 00ce 11       		.uleb128 0x11
- 1189 00cf 26       		.uleb128 0x26
- 1190 00d0 00       		.byte	0x0
- 1191 00d1 49       		.uleb128 0x49
- 1192 00d2 13       		.uleb128 0x13
- 1193 00d3 00       		.byte	0x0
- 1194 00d4 00       		.byte	0x0
- 1195 00d5 00       		.byte	0x0
- 1196              		.section	.debug_pubnames,"", at progbits
- 1197 0000 2D000000 		.long	0x2d
- 1198 0004 0200     		.value	0x2
- 1199 0006 00000000 		.long	.Ldebug_info0
- 1200 000a 28070000 		.long	0x728
- 1201 000e 92060000 		.long	0x692
- 1202 0012 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
- 1202      6C426C6F 
- 1202      636B4369 
- 1202      70686572 
- 1202      56656352 
- 1203 002d 00000000 		.long	0x0
- 1204              		.section	.debug_aranges,"", at progbits
- 1205 0000 2C000000 		.long	0x2c
- 1206 0004 0200     		.value	0x2
-
GAS LISTING /tmp/cclL3imJ.s 			page 24
-
-
- 1207 0006 00000000 		.long	.Ldebug_info0
- 1208 000a 08       		.byte	0x8
- 1209 000b 00       		.byte	0x0
- 1210 000c 0000     		.value	0x0
- 1211 000e 0000     		.value	0x0
- 1212 0010 00000000 		.quad	.Ltext0
- 1212      00000000 
- 1213 0018 65000000 		.quad	.Letext0-.Ltext0
- 1213      00000000 
- 1214 0020 00000000 		.quad	0x0
- 1214      00000000 
- 1215 0028 00000000 		.quad	0x0
- 1215      00000000 
- 1216              		.section	.debug_str,"MS", at progbits,1
- 1217              	.LASF184:
- 1218 0000 72635461 		.string	"rcTag"
- 1218      6700
- 1219              	.LASF30:
- 1220 0006 72635646 		.string	"rcVFS"
- 1220      5300
- 1221              	.LASF234:
- 1222 000c 7263556E 		.string	"rcUnauthorized"
- 1222      61757468 
- 1222      6F72697A 
- 1222      656400
- 1223              	.LASF258:
- 1224 001b 474E5520 		.string	"GNU C 4.4.2"
- 1224      4320342E 
- 1224      342E3200 
- 1225              	.LASF218:
- 1226 0027 7263496E 		.string	"rcInconsistent"
- 1226      636F6E73 
- 1226      69737465 
- 1226      6E7400
- 1227              	.LASF19:
- 1228 0036 72634442 		.string	"rcDB"
- 1228      00
- 1229              	.LASF128:
- 1230 003b 7263436F 		.string	"rcCopying"
- 1230      7079696E 
- 1230      6700
- 1231              	.LASF131:
- 1232 0045 7263506F 		.string	"rcPositioning"
- 1232      73697469 
- 1232      6F6E696E 
- 1232      6700
- 1233              	.LASF226:
- 1234 0053 72634578 		.string	"rcExcessive"
- 1234      63657373 
- 1234      69766500 
- 1235              	.LASF222:
- 1236 005f 72634361 		.string	"rcCanceled"
- 1236      6E63656C 
- 1236      656400
- 1237              	.LASF156:
- 1238 006a 72634C61 		.string	"rcLastContext_v1_0"
- 1238      7374436F 
-
GAS LISTING /tmp/cclL3imJ.s 			page 25
-
-
- 1238      6E746578 
- 1238      745F7631 
- 1238      5F3000
- 1239              	.LASF167:
- 1240 007d 72634C61 		.string	"rcLastContext_v1_1"
- 1240      7374436F 
- 1240      6E746578 
- 1240      745F7631 
- 1240      5F3100
- 1241              	.LASF90:
- 1242 0090 7263456E 		.string	"rcEncryptionKey"
- 1242      63727970 
- 1242      74696F6E 
- 1242      4B657900 
- 1243              	.LASF97:
- 1244 00a0 5243436F 		.string	"RCContext"
- 1244      6E746578 
- 1244      7400
- 1245              	.LASF92:
- 1246 00aa 7263436D 		.string	"rcCmd"
- 1246      6400
- 1247              	.LASF242:
- 1248 00b0 72634475 		.string	"rcDuplicate"
- 1248      706C6963 
- 1248      61746500 
- 1249              	.LASF202:
- 1250 00bc 72635265 		.string	"rcRefcount"
- 1250      66636F75 
- 1250      6E7400
- 1251              	.LASF91:
- 1252 00c7 7263526E 		.string	"rcRng"
- 1252      6700
- 1253              	.LASF34:
- 1254 00cd 72634E6F 		.string	"rcNoTarg"
- 1254      54617267 
- 1254      00
- 1255              	.LASF204:
- 1256 00d6 52435374 		.string	"RCState"
- 1256      61746500 
- 1257              	.LASF5:
- 1258 00de 756E7369 		.string	"unsigned int"
- 1258      676E6564 
- 1258      20696E74 
- 1258      00
- 1259              	.LASF89:
- 1260 00eb 72635072 		.string	"rcProduction"
- 1260      6F647563 
- 1260      74696F6E 
- 1260      00
- 1261              	.LASF69:
- 1262 00f8 72635061 		.string	"rcPagemap"
- 1262      67656D61 
- 1262      7000
- 1263              	.LASF185:
- 1264 0102 72635265 		.string	"rcResources"
- 1264      736F7572 
- 1264      63657300 
-
GAS LISTING /tmp/cclL3imJ.s 			page 26
-
-
- 1265              	.LASF50:
- 1266 010e 7263586D 		.string	"rcXmlDoc"
- 1266      6C446F63 
- 1266      00
- 1267              	.LASF37:
- 1268 0117 7263546F 		.string	"rcTocEntry"
- 1268      63456E74 
- 1268      727900
- 1269              	.LASF114:
- 1270 0122 72635265 		.string	"rcRemoving"
- 1270      6D6F7669 
- 1270      6E6700
- 1271              	.LASF192:
- 1272 012d 72634D6F 		.string	"rcMode"
- 1272      646500
- 1273              	.LASF119:
- 1274 0134 7263436C 		.string	"rcClosing"
- 1274      6F73696E 
- 1274      6700
- 1275              	.LASF72:
- 1276 013e 72635175 		.string	"rcQueue"
- 1276      65756500 
- 1277              	.LASF120:
- 1278 0146 72635265 		.string	"rcResizing"
- 1278      73697A69 
- 1278      6E6700
- 1279              	.LASF171:
- 1280 0151 72635365 		.string	"rcSelf"
- 1280      6C6600
- 1281              	.LASF214:
- 1282 0158 72634465 		.string	"rcDestroyed"
- 1282      7374726F 
- 1282      79656400 
- 1283              	.LASF162:
- 1284 0164 7263496E 		.string	"rcInitializing"
- 1284      69746961 
- 1284      6C697A69 
- 1284      6E6700
- 1285              	.LASF168:
- 1286 0173 52434F62 		.string	"RCObject"
- 1286      6A656374 
- 1286      00
- 1287              	.LASF146:
- 1288 017c 72634174 		.string	"rcAttaching"
- 1288      74616368 
- 1288      696E6700 
- 1289              	.LASF219:
- 1290 0188 72634275 		.string	"rcBusy"
- 1290      737900
- 1291              	.LASF74:
- 1292 018f 72635363 		.string	"rcSchema"
- 1292      68656D61 
- 1292      00
- 1293              	.LASF138:
- 1294 0198 72634875 		.string	"rcHuffmanCoding"
- 1294      66666D61 
- 1294      6E436F64 
-
GAS LISTING /tmp/cclL3imJ.s 			page 27
-
-
- 1294      696E6700 
- 1295              	.LASF123:
- 1296 01a8 7263436F 		.string	"rcCommitting"
- 1296      6D6D6974 
- 1296      74696E67 
- 1296      00
- 1297              	.LASF75:
- 1298 01b5 72635365 		.string	"rcSemaphore"
- 1298      6D617068 
- 1298      6F726500 
- 1299              	.LASF232:
- 1300 01c1 72634465 		.string	"rcDetached"
- 1300      74616368 
- 1300      656400
- 1301              	.LASF188:
- 1302 01cc 7263526F 		.string	"rcRow"
- 1302      7700
- 1303              	.LASF239:
- 1304 01d2 7263546F 		.string	"rcTooShort"
- 1304      6F53686F 
- 1304      727400
- 1305              	.LASF15:
- 1306 01dd 72634646 		.string	"rcFF"
- 1306      00
- 1307              	.LASF16:
- 1308 01e2 72634653 		.string	"rcFS"
- 1308      00
- 1309              	.LASF250:
- 1310 01e7 7263556E 		.string	"rcUndefined"
- 1310      64656669 
- 1310      6E656400 
- 1311              	.LASF132:
- 1312 01f3 72635061 		.string	"rcPacking"
- 1312      636B696E 
- 1312      6700
- 1313              	.LASF216:
- 1314 01fd 7263436F 		.string	"rcCorrupt"
- 1314      72727570 
- 1314      7400
- 1315              	.LASF7:
- 1316 0207 75696E74 		.string	"uint32_t"
- 1316      33325F74 
- 1316      00
- 1317              	.LASF133:
- 1318 0210 7263556E 		.string	"rcUnpacking"
- 1318      7061636B 
- 1318      696E6700 
- 1319              	.LASF51:
- 1320 021c 72634669 		.string	"rcFile"
- 1320      6C6500
- 1321              	.LASF39:
- 1322 0223 72634174 		.string	"rcAttr"
- 1322      747200
- 1323              	.LASF199:
- 1324 022a 7263456E 		.string	"rcEnvironment"
- 1324      7669726F 
- 1324      6E6D656E 
-
GAS LISTING /tmp/cclL3imJ.s 			page 28
-
-
- 1324      7400
- 1325              	.LASF149:
- 1326 0238 72634650 		.string	"rcFPCoding"
- 1326      436F6469 
- 1326      6E6700
- 1327              	.LASF80:
- 1328 0243 72635469 		.string	"rcTimeout"
- 1328      6D656F75 
- 1328      7400
- 1329              	.LASF62:
- 1330 024d 72634D44 		.string	"rcMD5SumFmt"
- 1330      3553756D 
- 1330      466D7400 
- 1331              	.LASF137:
- 1332 0259 72634578 		.string	"rcExecuting"
- 1332      65637574 
- 1332      696E6700 
- 1333              	.LASF145:
- 1334 0265 72635761 		.string	"rcWaiting"
- 1334      6974696E 
- 1334      6700
- 1335              	.LASF176:
- 1336 026f 7263466F 		.string	"rcFormat"
- 1336      726D6174 
- 1336      00
- 1337              	.LASF181:
- 1338 0278 7263436F 		.string	"rcConstraint"
- 1338      6E737472 
- 1338      61696E74 
- 1338      00
- 1339              	.LASF22:
- 1340 0285 7263584D 		.string	"rcXML"
- 1340      4C00
- 1341              	.LASF45:
- 1342 028b 7263436F 		.string	"rcCondition"
- 1342      6E646974 
- 1342      696F6E00 
- 1343              	.LASF205:
- 1344 0297 72634E6F 		.string	"rcNoErr"
- 1344      45727200 
- 1345              	.LASF42:
- 1346 029f 72634275 		.string	"rcBuffer"
- 1346      66666572 
- 1346      00
- 1347              	.LASF142:
- 1348 02a8 72635061 		.string	"rcParsing"
- 1348      7273696E 
- 1348      6700
- 1349              	.LASF41:
- 1350 02b2 7263426C 		.string	"rcBlob"
- 1350      6F6200
- 1351              	.LASF240:
- 1352 02b9 7263546F 		.string	"rcTooLong"
- 1352      6F4C6F6E 
- 1352      6700
- 1353              	.LASF24:
- 1354 02c3 72634C61 		.string	"rcLastModule_v1_0"
-
GAS LISTING /tmp/cclL3imJ.s 			page 29
-
-
- 1354      73744D6F 
- 1354      64756C65 
- 1354      5F76315F 
- 1354      3000
- 1355              	.LASF31:
- 1356 02d5 72634C61 		.string	"rcLastModule_v1_1"
- 1356      73744D6F 
- 1356      64756C65 
- 1356      5F76315F 
- 1356      3100
- 1357              	.LASF64:
- 1358 02e7 72634D65 		.string	"rcMetadata"
- 1358      74616461 
- 1358      746100
- 1359              	.LASF236:
- 1360 02f2 72635772 		.string	"rcWriteonly"
- 1360      6974656F 
- 1360      6E6C7900 
- 1361              	.LASF115:
- 1362 02fe 7263436C 		.string	"rcClearing"
- 1362      65617269 
- 1362      6E6700
- 1363              	.LASF55:
- 1364 0309 7263466F 		.string	"rcFormatter"
- 1364      726D6174 
- 1364      74657200 
- 1365              	.LASF248:
- 1366 0315 72634F75 		.string	"rcOutoforder"
- 1366      746F666F 
- 1366      72646572 
- 1366      00
- 1367              	.LASF70:
- 1368 0322 72635061 		.string	"rcPath"
- 1368      746800
- 1369              	.LASF189:
- 1370 0329 72634C69 		.string	"rcLibrary"
- 1370      62726172 
- 1370      7900
- 1371              	.LASF141:
- 1372 0333 7263546F 		.string	"rcTokenizing"
- 1372      6B656E69 
- 1372      7A696E67 
- 1372      00
- 1373              	.LASF198:
- 1374 0340 72634572 		.string	"rcError"
- 1374      726F7200 
- 1375              	.LASF18:
- 1376 0348 72635846 		.string	"rcXF"
- 1376      00
- 1377              	.LASF183:
- 1378 034d 72634D65 		.string	"rcMessage"
- 1378      73736167 
- 1378      6500
- 1379              	.LASF261:
- 1380 0357 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
- 1380      6C426C6F 
- 1380      636B4369 
-
GAS LISTING /tmp/cclL3imJ.s 			page 30
-
-
- 1380      70686572 
- 1380      56656352 
- 1381              	.LASF237:
- 1382 0372 72634E6F 		.string	"rcNoPerm"
- 1382      5065726D 
- 1382      00
- 1383              	.LASF54:
- 1384 037b 72634675 		.string	"rcFunction"
- 1384      6E637469 
- 1384      6F6E00
- 1385              	.LASF208:
- 1386 0386 7263556E 		.string	"rcUnsupported"
- 1386      73757070 
- 1386      6F727465 
- 1386      6400
- 1387              	.LASF43:
- 1388 0394 72634368 		.string	"rcChar"
- 1388      617200
- 1389              	.LASF174:
- 1390 039b 72634D65 		.string	"rcMemory"
- 1390      6D6F7279 
- 1390      00
- 1391              	.LASF194:
- 1392 03a4 72634372 		.string	"rcCrc"
- 1392      6300
- 1393              	.LASF241:
- 1394 03aa 7263546F 		.string	"rcTooBig"
- 1394      6F426967 
- 1394      00
- 1395              	.LASF179:
- 1396 03b3 72634964 		.string	"rcId"
- 1396      00
- 1397              	.LASF82:
- 1398 03b8 72635472 		.string	"rcTree"
- 1398      656500
- 1399              	.LASF253:
- 1400 03bf 72634E6F 		.string	"rcNotAvailable"
- 1400      74417661 
- 1400      696C6162 
- 1400      6C6500
- 1401              	.LASF93:
- 1402 03ce 72634461 		.string	"rcData"
- 1402      746100
- 1403              	.LASF257:
- 1404 03d5 5F5F6675 		.string	"__func__"
- 1404      6E635F5F 
- 1404      00
- 1405              	.LASF254:
- 1406 03de 72635772 		.string	"rcWrongType"
- 1406      6F6E6754 
- 1406      79706500 
- 1407              	.LASF56:
- 1408 03ea 72634675 		.string	"rcFunctParam"
- 1408      6E637450 
- 1408      6172616D 
- 1408      00
- 1409              	.LASF63:
-
GAS LISTING /tmp/cclL3imJ.s 			page 31
-
-
- 1410 03f7 72634D65 		.string	"rcMemMap"
- 1410      6D4D6170 
- 1410      00
- 1411              	.LASF9:
- 1412 0400 63686172 		.string	"char"
- 1412      00
- 1413              	.LASF211:
- 1414 0405 7263416D 		.string	"rcAmbiguous"
- 1414      62696775 
- 1414      6F757300 
- 1415              	.LASF244:
- 1416 0411 72634967 		.string	"rcIgnored"
- 1416      6E6F7265 
- 1416      6400
- 1417              	.LASF109:
- 1418 041b 72635265 		.string	"rcRenaming"
- 1418      6E616D69 
- 1418      6E6700
- 1419              	.LASF121:
- 1420 0426 72635265 		.string	"rcReading"
- 1420      6164696E 
- 1420      6700
- 1421              	.LASF58:
- 1422 0430 7263496E 		.string	"rcIndex"
- 1422      64657800 
- 1423              	.LASF104:
- 1424 0438 72634C69 		.string	"rcListing"
- 1424      7374696E 
- 1424      6700
- 1425              	.LASF178:
- 1426 0442 7263496E 		.string	"rcInterface"
- 1426      74657266 
- 1426      61636500 
- 1427              	.LASF107:
- 1428 044e 72634C6F 		.string	"rcLocking"
- 1428      636B696E 
- 1428      6700
- 1429              	.LASF60:
- 1430 0458 72634C6F 		.string	"rcLock"
- 1430      636B00
- 1431              	.LASF108:
- 1432 045f 7263556E 		.string	"rcUnlocking"
- 1432      6C6F636B 
- 1432      696E6700 
- 1433              	.LASF85:
- 1434 046b 72635665 		.string	"rcVector"
- 1434      63746F72 
- 1434      00
- 1435              	.LASF122:
- 1436 0474 72635772 		.string	"rcWriting"
- 1436      6974696E 
- 1436      6700
- 1437              	.LASF53:
- 1438 047e 72634669 		.string	"rcFileFormat"
- 1438      6C65466F 
- 1438      726D6174 
- 1438      00
-
GAS LISTING /tmp/cclL3imJ.s 			page 32
-
-
- 1439              	.LASF21:
- 1440 048b 72634170 		.string	"rcApp"
- 1440      7000
- 1441              	.LASF125:
- 1442 0491 72635265 		.string	"rcResetting"
- 1442      73657474 
- 1442      696E6700 
- 1443              	.LASF71:
- 1444 049d 72635072 		.string	"rcProcess"
- 1444      6F636573 
- 1444      7300
- 1445              	.LASF106:
- 1446 04a7 72635265 		.string	"rcResolving"
- 1446      736F6C76 
- 1446      696E6700 
- 1447              	.LASF12:
- 1448 04b3 72635465 		.string	"rcText"
- 1448      787400
- 1449              	.LASF66:
- 1450 04ba 72634E61 		.string	"rcNamelist"
- 1450      6D656C69 
- 1450      737400
- 1451              	.LASF229:
- 1452 04c5 72634E6F 		.string	"rcNotFound"
- 1452      74466F75 
- 1452      6E6400
- 1453              	.LASF139:
- 1454 04d0 72635265 		.string	"rcReindexing"
- 1454      696E6465 
- 1454      78696E67 
- 1454      00
- 1455              	.LASF87:
- 1456 04dd 72634578 		.string	"rcExpression"
- 1456      70726573 
- 1456      73696F6E 
- 1456      00
- 1457              	.LASF235:
- 1458 04ea 72635265 		.string	"rcReadonly"
- 1458      61646F6E 
- 1458      6C7900
- 1459              	.LASF95:
- 1460 04f5 72635572 		.string	"rcUri"
- 1460      6900
- 1461              	.LASF100:
- 1462 04fb 7263436F 		.string	"rcConstructing"
- 1462      6E737472 
- 1462      75637469 
- 1462      6E6700
- 1463              	.LASF173:
- 1464 050a 72634F66 		.string	"rcOffset"
- 1464      66736574 
- 1464      00
- 1465              	.LASF233:
- 1466 0513 72634465 		.string	"rcDeadlock"
- 1466      61646C6F 
- 1466      636B00
- 1467              	.LASF47:
-
GAS LISTING /tmp/cclL3imJ.s 			page 33
-
-
- 1468 051e 72634461 		.string	"rcDatabase"
- 1468      74616261 
- 1468      736500
- 1469              	.LASF127:
- 1470 0529 72634672 		.string	"rcFreezing"
- 1470      65657A69 
- 1470      6E6700
- 1471              	.LASF217:
- 1472 0534 7263496E 		.string	"rcIncorrect"
- 1472      636F7272 
- 1472      65637400 
- 1473              	.LASF206:
- 1474 0540 7263446F 		.string	"rcDone"
- 1474      6E6500
- 1475              	.LASF157:
- 1476 0547 7263466C 		.string	"rcFlushing"
- 1476      75736869 
- 1476      6E6700
- 1477              	.LASF159:
- 1478 0552 7263456E 		.string	"rcEncrypting"
- 1478      63727970 
- 1478      74696E67 
- 1478      00
- 1479              	.LASF251:
- 1480 055f 7263556E 		.string	"rcUnequal"
- 1480      65717561 
- 1480      6C00
- 1481              	.LASF10:
- 1482 0569 72634578 		.string	"rcExe"
- 1482      6500
- 1483              	.LASF38:
- 1484 056f 72634172 		.string	"rcArgv"
- 1484      677600
- 1485              	.LASF147:
- 1486 0576 72634465 		.string	"rcDetaching"
- 1486      74616368 
- 1486      696E6700 
- 1487              	.LASF99:
- 1488 0582 72634361 		.string	"rcCasting"
- 1488      7374696E 
- 1488      6700
- 1489              	.LASF110:
- 1490 058c 7263416C 		.string	"rcAliasing"
- 1490      69617369 
- 1490      6E6700
- 1491              	.LASF49:
- 1492 0597 7263446F 		.string	"rcDoc"
- 1492      6300
- 1493              	.LASF98:
- 1494 059d 7263416C 		.string	"rcAllocating"
- 1494      6C6F6361 
- 1494      74696E67 
- 1494      00
- 1495              	.LASF212:
- 1496 05aa 72634E75 		.string	"rcNull"
- 1496      6C6C00
- 1497              	.LASF180:
-
GAS LISTING /tmp/cclL3imJ.s 			page 34
-
-
- 1498 05b1 72635261 		.string	"rcRange"
- 1498      6E676500 
- 1499              	.LASF35:
- 1500 05b9 72634172 		.string	"rcArc"
- 1500      6300
- 1501              	.LASF252:
- 1502 05bf 72634661 		.string	"rcFailed"
- 1502      696C6564 
- 1502      00
- 1503              	.LASF23:
- 1504 05c8 72635352 		.string	"rcSRA"
- 1504      4100
- 1505              	.LASF152:
- 1506 05ce 72635365 		.string	"rcSearching"
- 1506      61726368 
- 1506      696E6700 
- 1507              	.LASF225:
- 1508 05da 7263496E 		.string	"rcInsufficient"
- 1508      73756666 
- 1508      69636965 
- 1508      6E7400
- 1509              	.LASF165:
- 1510 05e9 72635072 		.string	"rcProcessing"
- 1510      6F636573 
- 1510      73696E67 
- 1510      00
- 1511              	.LASF144:
- 1512 05f6 72635369 		.string	"rcSignaling"
- 1512      676E616C 
- 1512      696E6700 
- 1513              	.LASF135:
- 1514 0602 72634465 		.string	"rcDecoding"
- 1514      636F6469 
- 1514      6E6700
- 1515              	.LASF76:
- 1516 060d 72635374 		.string	"rcStorage"
- 1516      6F726167 
- 1516      6500
- 1517              	.LASF213:
- 1518 0617 72634261 		.string	"rcBadVersion"
- 1518      64566572 
- 1518      73696F6E 
- 1518      00
- 1519              	.LASF210:
- 1520 0624 7263556E 		.string	"rcUnrecognized"
- 1520      7265636F 
- 1520      676E697A 
- 1520      656400
- 1521              	.LASF161:
- 1522 0633 7263436F 		.string	"rcComparing"
- 1522      6D706172 
- 1522      696E6700 
- 1523              	.LASF65:
- 1524 063f 72634D67 		.string	"rcMgr"
- 1524      7200
- 1525              	.LASF154:
- 1526 0645 72634576 		.string	"rcEvaluating"
-
GAS LISTING /tmp/cclL3imJ.s 			page 35
-
-
- 1526      616C7561 
- 1526      74696E67 
- 1526      00
- 1527              	.LASF163:
- 1528 0652 72635265 		.string	"rcRetrieving"
- 1528      74726965 
- 1528      76696E67 
- 1528      00
- 1529              	.LASF116:
- 1530 065f 72635570 		.string	"rcUpdating"
- 1530      64617469 
- 1530      6E6700
- 1531              	.LASF83:
- 1532 066a 72635472 		.string	"rcTrie"
- 1532      696500
- 1533              	.LASF201:
- 1534 0671 72635369 		.string	"rcSize"
- 1534      7A6500
- 1535              	.LASF150:
- 1536 0678 72634D75 		.string	"rcMultiplexing"
- 1536      6C746970 
- 1536      6C657869 
- 1536      6E6700
- 1537              	.LASF243:
- 1538 0687 72634F75 		.string	"rcOutOfKDirectory"
- 1538      744F664B 
- 1538      44697265 
- 1538      63746F72 
- 1538      7900
- 1539              	.LASF40:
- 1540 0699 72634261 		.string	"rcBarrier"
- 1540      72726965 
- 1540      7200
- 1541              	.LASF77:
- 1542 06a3 72635374 		.string	"rcString"
- 1542      72696E67 
- 1542      00
- 1543              	.LASF193:
- 1544 06ac 7263456E 		.string	"rcEncryption"
- 1544      63727970 
- 1544      74696F6E 
- 1544      00
- 1545              	.LASF25:
- 1546 06b9 72634B46 		.string	"rcKFG"
- 1546      4700
- 1547              	.LASF46:
- 1548 06bf 72634375 		.string	"rcCursor"
- 1548      72736F72 
- 1548      00
- 1549              	.LASF101:
- 1550 06c8 72634465 		.string	"rcDestroying"
- 1550      7374726F 
- 1550      79696E67 
- 1550      00
- 1551              	.LASF27:
- 1552 06d5 72634B72 		.string	"rcKrypto"
- 1552      7970746F 
-
GAS LISTING /tmp/cclL3imJ.s 			page 36
-
-
- 1552      00
- 1553              	.LASF196:
- 1554 06de 72635365 		.string	"rcSeed"
- 1554      656400
- 1555              	.LASF221:
- 1556 06e5 7263496E 		.string	"rcInterrupted"
- 1556      74657272 
- 1556      75707465 
- 1556      6400
- 1557              	.LASF153:
- 1558 06f3 72634C6F 		.string	"rcLoading"
- 1558      6164696E 
- 1558      6700
- 1559              	.LASF136:
- 1560 06fd 72635661 		.string	"rcValidating"
- 1560      6C696461 
- 1560      74696E67 
- 1560      00
- 1561              	.LASF230:
- 1562 070a 72634C6F 		.string	"rcLocked"
- 1562      636B6564 
- 1562      00
- 1563              	.LASF59:
- 1564 0713 72634974 		.string	"rcIterator"
- 1564      65726174 
- 1564      6F7200
- 1565              	.LASF67:
- 1566 071e 72634E6F 		.string	"rcNode"
- 1566      646500
- 1567              	.LASF1:
- 1568 0725 73686F72 		.string	"short int"
- 1568      7420696E 
- 1568      7400
- 1569              	.LASF102:
- 1570 072f 72635265 		.string	"rcReleasing"
- 1570      6C656173 
- 1570      696E6700 
- 1571              	.LASF177:
- 1572 073b 72635472 		.string	"rcTransfer"
- 1572      616E7366 
- 1572      657200
- 1573              	.LASF2:
- 1574 0746 6C6F6E67 		.string	"long int"
- 1574      20696E74 
- 1574      00
- 1575              	.LASF262:
- 1576 074f 4B426C6F 		.string	"KBlockCipher"
- 1576      636B4369 
- 1576      70686572 
- 1576      00
- 1577              	.LASF164:
- 1578 075c 72635365 		.string	"rcSending"
- 1578      6E64696E 
- 1578      6700
- 1579              	.LASF215:
- 1580 0766 7263496E 		.string	"rcInvalid"
- 1580      76616C69 
-
GAS LISTING /tmp/cclL3imJ.s 			page 37
-
-
- 1580      6400
- 1581              	.LASF249:
- 1582 0770 72634E6F 		.string	"rcNotOpen"
- 1582      744F7065 
- 1582      6E00
- 1583              	.LASF103:
- 1584 077a 72634163 		.string	"rcAccessing"
- 1584      63657373 
- 1584      696E6700 
- 1585              	.LASF29:
- 1586 0786 72634E53 		.string	"rcNS"
- 1586      00
- 1587              	.LASF112:
- 1588 078b 72635072 		.string	"rcProjecting"
- 1588      6F6A6563 
- 1588      74696E67 
- 1588      00
- 1589              	.LASF175:
- 1590 0798 72634E61 		.string	"rcName"
- 1590      6D6500
- 1591              	.LASF238:
- 1592 079f 7263496E 		.string	"rcInPlaceNotAllowed"
- 1592      506C6163 
- 1592      654E6F74 
- 1592      416C6C6F 
- 1592      77656400 
- 1593              	.LASF247:
- 1594 07b3 72634F70 		.string	"rcOpen"
- 1594      656E00
- 1595              	.LASF227:
- 1596 07ba 72635669 		.string	"rcViolated"
- 1596      6F6C6174 
- 1596      656400
- 1597              	.LASF169:
- 1598 07c5 72634E6F 		.string	"rcNoObj"
- 1598      4F626A00 
- 1599              	.LASF200:
- 1600 07cd 72635369 		.string	"rcSignalSet"
- 1600      676E616C 
- 1600      53657400 
- 1601              	.LASF197:
- 1602 07d9 7263436F 		.string	"rcConnection"
- 1602      6E6E6563 
- 1602      74696F6E 
- 1602      00
- 1603              	.LASF195:
- 1604 07e6 72634368 		.string	"rcChecksum"
- 1604      65636B73 
- 1604      756D00
- 1605              	.LASF78:
- 1606 07f1 72635461 		.string	"rcTable"
- 1606      626C6500 
- 1607              	.LASF11:
- 1608 07f9 72635275 		.string	"rcRuntime"
- 1608      6E74696D 
- 1608      6500
- 1609              	.LASF148:
-
GAS LISTING /tmp/cclL3imJ.s 			page 38
-
-
- 1610 0803 72634C6F 		.string	"rcLogging"
- 1610      6767696E 
- 1610      6700
- 1611              	.LASF160:
- 1612 080d 72634465 		.string	"rcDecrypting"
- 1612      63727970 
- 1612      74696E67 
- 1612      00
- 1613              	.LASF61:
- 1614 081a 72634C6F 		.string	"rcLog"
- 1614      6700
- 1615              	.LASF68:
- 1616 0820 72634E75 		.string	"rcNumeral"
- 1616      6D657261 
- 1616      6C00
- 1617              	.LASF172:
- 1618 082a 72635061 		.string	"rcParam"
- 1618      72616D00 
- 1619              	.LASF32:
- 1620 0832 52434D6F 		.string	"RCModule"
- 1620      64756C65 
- 1620      00
- 1621              	.LASF158:
- 1622 083b 72634170 		.string	"rcAppending"
- 1622      70656E64 
- 1622      696E6700 
- 1623              	.LASF57:
- 1624 0847 72634865 		.string	"rcHeader"
- 1624      61646572 
- 1624      00
- 1625              	.LASF6:
- 1626 0850 6C6F6E67 		.string	"long unsigned int"
- 1626      20756E73 
- 1626      69676E65 
- 1626      6420696E 
- 1626      7400
- 1627              	.LASF245:
- 1628 0862 72634F75 		.string	"rcOutofrange"
- 1628      746F6672 
- 1628      616E6765 
- 1628      00
- 1629              	.LASF170:
- 1630 086f 72634C69 		.string	"rcLink"
- 1630      6E6B00
- 1631              	.LASF52:
- 1632 0876 72634669 		.string	"rcFileDesc"
- 1632      6C654465 
- 1632      736300
- 1633              	.LASF263:
- 1634 0881 6E65775F 		.string	"new_obj"
- 1634      6F626A00 
- 1635              	.LASF209:
- 1636 0889 7263556E 		.string	"rcUnexpected"
- 1636      65787065 
- 1636      63746564 
- 1636      00
- 1637              	.LASF207:
-
GAS LISTING /tmp/cclL3imJ.s 			page 39
-
-
- 1638 0896 7263556E 		.string	"rcUnknown"
- 1638      6B6E6F77 
- 1638      6E00
- 1639              	.LASF155:
- 1640 08a0 7263496E 		.string	"rcInflating"
- 1640      666C6174 
- 1640      696E6700 
- 1641              	.LASF118:
- 1642 08ac 72634F70 		.string	"rcOpening"
- 1642      656E696E 
- 1642      6700
- 1643              	.LASF17:
- 1644 08b6 72635053 		.string	"rcPS"
- 1644      00
- 1645              	.LASF3:
- 1646 08bb 756E7369 		.string	"unsigned char"
- 1646      676E6564 
- 1646      20636861 
- 1646      7200
- 1647              	.LASF126:
- 1648 08c9 72635065 		.string	"rcPersisting"
- 1648      72736973 
- 1648      74696E67 
- 1648      00
- 1649              	.LASF259:
- 1650 08d6 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/no-null-ncbi.c"
- 1650      652F726F 
- 1650      6461726D 
- 1650      65722F73 
- 1650      72615F73 
- 1651              	.LASF220:
- 1652 0910 7263496E 		.string	"rcIncomplete"
- 1652      636F6D70 
- 1652      6C657465 
- 1652      00
- 1653              	.LASF246:
- 1654 091d 72634C61 		.string	"rcLastState_v1_0"
- 1654      73745374 
- 1654      6174655F 
- 1654      76315F30 
- 1654      00
- 1655              	.LASF255:
- 1656 092e 72634C61 		.string	"rcLastState_v1_1"
- 1656      73745374 
- 1656      6174655F 
- 1656      76315F31 
- 1656      00
- 1657              	.LASF143:
- 1658 093f 7263436F 		.string	"rcConverting"
- 1658      6E766572 
- 1658      74696E67 
- 1658      00
- 1659              	.LASF117:
- 1660 094c 72634372 		.string	"rcCreating"
- 1660      65617469 
- 1660      6E6700
- 1661              	.LASF191:
-
GAS LISTING /tmp/cclL3imJ.s 			page 40
-
-
- 1662 0957 72634974 		.string	"rcItem"
- 1662      656D00
- 1663              	.LASF111:
- 1664 095e 72635365 		.string	"rcSelecting"
- 1664      6C656374 
- 1664      696E6700 
- 1665              	.LASF8:
- 1666 096a 72635F74 		.string	"rc_t"
- 1666      00
- 1667              	.LASF73:
- 1668 096f 72635257 		.string	"rcRWLock"
- 1668      4C6F636B 
- 1668      00
- 1669              	.LASF190:
- 1670 0978 72634C61 		.string	"rcLastObject_v1_0"
- 1670      73744F62 
- 1670      6A656374 
- 1670      5F76315F 
- 1670      3000
- 1671              	.LASF203:
- 1672 098a 72634C61 		.string	"rcLastObject_v1_1"
- 1672      73744F62 
- 1672      6A656374 
- 1672      5F76315F 
- 1672      3100
- 1673              	.LASF187:
- 1674 099c 72634172 		.string	"rcArcHardLink"
- 1674      63486172 
- 1674      644C696E 
- 1674      6B00
- 1675              	.LASF113:
- 1676 09aa 7263496E 		.string	"rcInserting"
- 1676      73657274 
- 1676      696E6700 
- 1677              	.LASF166:
- 1678 09b6 72634964 		.string	"rcIdentifying"
- 1678      656E7469 
- 1678      6679696E 
- 1678      6700
- 1679              	.LASF124:
- 1680 09c4 72635265 		.string	"rcReverting"
- 1680      76657274 
- 1680      696E6700 
- 1681              	.LASF20:
- 1682 09d0 72635644 		.string	"rcVDB"
- 1682      4200
- 1683              	.LASF105:
- 1684 09d6 72635669 		.string	"rcVisiting"
- 1684      73697469 
- 1684      6E6700
- 1685              	.LASF88:
- 1686 09e1 72634C61 		.string	"rcLastTarget_v1_0"
- 1686      73745461 
- 1686      72676574 
- 1686      5F76315F 
- 1686      3000
- 1687              	.LASF96:
-
GAS LISTING /tmp/cclL3imJ.s 			page 41
-
-
- 1688 09f3 72634C61 		.string	"rcLastTarget_v1_1"
- 1688      73745461 
- 1688      72676574 
- 1688      5F76315F 
- 1688      3100
- 1689              	.LASF84:
- 1690 0a05 72635479 		.string	"rcType"
- 1690      706500
- 1691              	.LASF231:
- 1692 0a0c 7263556E 		.string	"rcUnlocked"
- 1692      6C6F636B 
- 1692      656400
- 1693              	.LASF151:
- 1694 0a17 7263436C 		.string	"rcClassifying"
- 1694      61737369 
- 1694      6679696E 
- 1694      6700
- 1695              	.LASF228:
- 1696 0a25 72634578 		.string	"rcExists"
- 1696      69737473 
- 1696      00
- 1697              	.LASF130:
- 1698 0a2e 7263466F 		.string	"rcFormatting"
- 1698      726D6174 
- 1698      74696E67 
- 1698      00
- 1699              	.LASF79:
- 1700 0a3b 72635468 		.string	"rcThread"
- 1700      72656164 
- 1700      00
- 1701              	.LASF0:
- 1702 0a44 7369676E 		.string	"signed char"
- 1702      65642063 
- 1702      68617200 
- 1703              	.LASF4:
- 1704 0a50 73686F72 		.string	"short unsigned int"
- 1704      7420756E 
- 1704      7369676E 
- 1704      65642069 
- 1704      6E7400
- 1705              	.LASF260:
- 1706 0a63 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 1706      652F726F 
- 1706      6461726D 
- 1706      65722F73 
- 1706      72615F73 
- 1707              	.LASF182:
- 1708 0aab 72634279 		.string	"rcByteOrder"
- 1708      74654F72 
- 1708      64657200 
- 1709              	.LASF36:
- 1710 0ab7 7263546F 		.string	"rcToc"
- 1710      6300
- 1711              	.LASF44:
- 1712 0abd 7263436F 		.string	"rcColumn"
- 1712      6C756D6E 
- 1712      00
-
GAS LISTING /tmp/cclL3imJ.s 			page 42
-
-
- 1713              	.LASF256:
- 1714 0ac6 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 1714      45545459 
- 1714      5F46554E 
- 1714      4354494F 
- 1714      4E5F5F00 
- 1715              	.LASF94:
- 1716 0ada 72635175 		.string	"rcQuery"
- 1716      65727900 
- 1717              	.LASF140:
- 1718 0ae2 72635265 		.string	"rcRegistering"
- 1718      67697374 
- 1718      6572696E 
- 1718      6700
- 1719              	.LASF86:
- 1720 0af0 72634479 		.string	"rcDylib"
- 1720      6C696200 
- 1721              	.LASF81:
- 1722 0af8 7263546F 		.string	"rcToken"
- 1722      6B656E00 
- 1723              	.LASF134:
- 1724 0b00 7263456E 		.string	"rcEncoding"
- 1724      636F6469 
- 1724      6E6700
- 1725              	.LASF224:
- 1726 0b0b 72634578 		.string	"rcExhausted"
- 1726      68617573 
- 1726      74656400 
- 1727              	.LASF186:
- 1728 0b17 72634469 		.string	"rcDirEntry"
- 1728      72456E74 
- 1728      727900
- 1729              	.LASF26:
- 1730 0b22 7263416C 		.string	"rcAlign"
- 1730      69676E00 
- 1731              	.LASF28:
- 1732 0b2a 72635244 		.string	"rcRDBMS"
- 1732      424D5300 
- 1733              	.LASF14:
- 1734 0b32 72634353 		.string	"rcCS"
- 1734      00
- 1735              	.LASF129:
- 1736 0b37 7263436F 		.string	"rcConcatenating"
- 1736      6E636174 
- 1736      656E6174 
- 1736      696E6700 
- 1737              	.LASF48:
- 1738 0b47 72634469 		.string	"rcDirectory"
- 1738      72656374 
- 1738      6F727900 
- 1739              	.LASF223:
- 1740 0b53 7263456D 		.string	"rcEmpty"
- 1740      70747900 
- 1741              	.LASF13:
- 1742 0b5b 7263436F 		.string	"rcCont"
- 1742      6E7400
- 1743              	.LASF33:
-
GAS LISTING /tmp/cclL3imJ.s 			page 43
-
-
- 1744 0b62 52435461 		.string	"RCTarget"
- 1744      72676574 
- 1744      00
- 1745              		.ident	"GCC: (GNU) 4.4.2"
- 1746              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/cclL3imJ.s 			page 44
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 no-null-ncbi.c
-     /tmp/cclL3imJ.s:17     .text:0000000000000000 KNullBlockCipherVecRegMake
-     /tmp/cclL3imJ.s:66     .rodata:0000000000000040 __func__.2439
-     /tmp/cclL3imJ.s:71     .rodata:0000000000000060 __PRETTY_FUNCTION__.2438
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-SetRCFileFuncLine
diff --git a/libs/krypto/null-ncbi-priv.h b/libs/krypto/null-ncbi-priv.h
deleted file mode 100644
index 1e485bd..0000000
--- a/libs/krypto/null-ncbi-priv.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#ifndef _h_krypto_null_ncbi_priv_libs_
-#define _h_krypto_null_ncbi_priv_libs_
-
-#include <klib/defs.h>
-#include <v128.h>
-
-#include "ncbi-priv.h"
-#include "cipher-impl.h"
-#include "blockcipher-impl.h"
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-
-typedef struct CipherNull CipherNull;
-struct CipherNull
-{
-    KCipher dad;
-    CipherVec    e_ivec;
-    CipherVec    d_ivec;
-};
-
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* #ifndef _h_krypto_null_ncbi_priv_libs_ */
-
-
diff --git a/libs/krypto/null-ncbi.c b/libs/krypto/null-ncbi.c
deleted file mode 100644
index fe5e7bc..0000000
--- a/libs/krypto/null-ncbi.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <krypto/extern.h>
-
-#include "ncbi-priv.h"
-#include "cipher-priv.h"
-#include "blockcipher-priv.h"
-
-#include <klib/rc.h>
-
-
-#include <byteswap.h>
-#include <string.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <sysalloc.h>
-
-#include "blockcipher-impl.h"
-
-#if USE_VEC
-#include <cpuid.h>
-#endif
-#if USE_VECREG
-#include <v128.h>
-#endif
-
-
-#if USE_VEC
-#define BLOCKCIPHER_IMPL BLOCKCIPHER_VEC_IMPL
-#else
-#define BLOCKCIPHER_IMPL BLOCKCIPHER_BYTE_IMPL
-#endif
-
-typedef struct NULL_CLASS NULL_CLASS;
-
-static const char NULLBCMEMBER(aes_ncbi_name) [] = CLASS_STRING(AES_CLASS);
-
-
-/* ----------------------------------------------------------------------
- * Destroy
- *   How large is the stored key for this cipher?  Not the user key used
- *   to create this key (key schedule)
- *
- *   This is needed by KCipher to know how large the KCipher objecr is at
- *   allocation and to know how much of a buffer each decryption/encryption is
- */
-static
-void NULLBCMEMBER(Destroy)    (const BLOCKCIPHER_IMPL * self)
-{
-    /* we use a constant object so do nothing */
-}
-
-
-/* ----------------------------------------------------------------------
- * BlockSize
- */
-static
-uint32_t NULLBCMEMBER(BlockSize) ()
-{
-    return 16;
-}
-
-
-/* ----------------------------------------------------------------------
- * KeySize
- *   How large is the stored key for this cipher?  Not the user key used
- *   to create this key (key schedule)
- *
- *   This is needed by KCipher to know how large the KCipher objecr is at
- *   allocation and to know how much of a buffer each decryption/encryption is
- */
-static uint32_t NULLBCMEMBER(KeySize) ()
-{
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * SetEncryptKey
- *   The KCipher calls this to have the block cipher build an encryption
- *   key in the KCipher object
- *
- */
-static rc_t NULLBCMEMBER(SetEncryptKey) (void * encrypt_key, const char * user_key,
-                                         uint32_t user_key_size)
-{
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * SetDecryptKey
- *   The KCipher calls this to have the block cipher build an decryption
- *   key in the KCipher object
- *
- */
-static rc_t NULLBCMEMBER(SetDecryptKey) (void * decrypt_key,
-                                     const char * user_key,
-                                     uint32_t user_key_size)
-{
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * Encrypt
- *
- *   Perform an encryption of a single block.  Chained modes and stream
- *   cipher modes will call this multiple times.
- *
- */
-#if USE_VEC
-static CipherVec NULLBCMEMBER(Encrypt) (CipherVec state,
-                                        const void * encrypt_key)
-{
-    return state;
-}
-#else
-static void NULLBCMEMBER(Encrypt) (const CipherBlock in,
-                                   CipherBlock * out,
-                                   const void * encrypt_key)
-{
-}
-#endif
-
-
-/* ----------------------------------------------------------------------
- * Decrypt
- *
- *   Perform a decryption of a single block.  Chained modes and stream
- *   cipher modes will call this multiple times.
- */
-#if USE_VEC
-static CipherVec NULLBCMEMBER(Decrypt) (CipherVec state,
-                                        const void * decrypt_key)
-{
-    return state;
-}
-#else
-static void NULLBCMEMBER(Decrypt) (const CipherBlock in,
-                                   CipherBlock * out,
-                                   const void * encrypt_key)
-{
-}
-#endif
-
-
-/* ----------------------------------------------------------------------
- * MakeProcessorSupport
- *
- * Run-time check for support of this particular AES implementation by
- * checking the flags given via the cpuid instruction.
- */
-static __inline__
-bool NULLBCMEMBER(ProcessorSupport) ()
-{
-    return true;
-}
-
-
-/* ----------------------------------------------------------------------
- * Init
- *
- *   Initialize the fields of this object.  The derived class will call this
- *   during it's initialization.
- *
- * self      object to initialze
- * vt        the virtual table of the derived class
- * mgr       the cipher manager that is the construction factory block cipher
- *           objects hold references to the manager while the manager merely
- *           points at the block ciphers when all block ciphers are destroyed
- *           the manager loses its references and it too can be destroyed if not
- *           held elsewhere
- * name      ASCIZ c-string the name of this class
- */
-static const
-#if USE_VEC
-KBlockCipherVec_vt_v1
-#else
-KBlockCipherByte_vt_v1
-#endif
-NULLBCMEMBER(_vt_) = {
-    { 1, 1 },
-
-    NULLBCMEMBER(Destroy),
-    NULLBCMEMBER(BlockSize),
-    NULLBCMEMBER(KeySize),
-    NULLBCMEMBER(SetEncryptKey),
-    NULLBCMEMBER(SetDecryptKey),
-    NULLBCMEMBER(Encrypt),
-    NULLBCMEMBER(Decrypt)
-};
-
-
-/* ----------------------------------------------------------------------
- * Make
- *
- * Create a new Null Block Cipher object.
- * The processor is checked to see if this particular version is supported on
- * this particular CPU.
- */
-rc_t NULLBCMEMBER(Make) (KBlockCipher ** new_obj)
-{
-    rc_t rc;
-
-    /* Check parameter first */
-    if (new_obj == NULL)
-        rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-    {
-        *new_obj = NULL;
-
-        /* check for processor support of this flavor */
-        if ( ! NULLBCMEMBER(ProcessorSupport)())
-            rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
-
-        else
-        {
-            rc = 0;
-            *new_obj = (KBlockCipher*)&(NULLBCMEMBER(_vt_));
-        }
-    }
-    return rc;
-}
-
-/* end of file lib/krypto/aes-ncbi.c */
diff --git a/libs/krypto/null-ncbi.vec.pic.o.list b/libs/krypto/null-ncbi.vec.pic.o.list
deleted file mode 100644
index f9e1167..0000000
--- a/libs/krypto/null-ncbi.vec.pic.o.list
+++ /dev/null
@@ -1,4406 +0,0 @@
-GAS LISTING /tmp/ccIvKeEl.s 			page 1
-
-
-   1              		.file	"null-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 66010000 		.text
-   8      02001901 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.section	.rodata
-  11              		.type	KNullBlockCipherVecaes_ncbi_name, @object
-  12              		.size	KNullBlockCipherVecaes_ncbi_name, 10
-  13              	KNullBlockCipherVecaes_ncbi_name:
-  14 0000 4145535F 		.string	"AES_CLASS"
-  14      434C4153 
-  14      5300
-  15              		.text
-  16              		.type	KNullBlockCipherVecDestroy, @function
-  17              	KNullBlockCipherVecDestroy:
-  18              	.LFB513:
-  19              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "ncbi-priv.h"
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "cipher-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "blockcipher-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <klib/rc.h>
-
GAS LISTING /tmp/ccIvKeEl.s 			page 2
-
-
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <byteswap.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <string.h>
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <stdint.h>
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <stdlib.h>
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <assert.h>
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <sysalloc.h>
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "blockcipher-impl.h"
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <cpuid.h>
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VECREG
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <v128.h>
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #define BLOCKCIPHER_IMPL BLOCKCIPHER_VEC_IMPL
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #define BLOCKCIPHER_IMPL BLOCKCIPHER_BYTE_IMPL
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** typedef struct NULL_CLASS NULL_CLASS;
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static const char NULLBCMEMBER(aes_ncbi_name) [] = CLASS_STRING(AES_CLASS);
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Destroy
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   to create this key (key schedule)
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** void NULLBCMEMBER(Destroy)    (const BLOCKCIPHER_IMPL * self)
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  20              		.loc 1 73 0
-  21              		.cfi_startproc
-  22 0000 55       		pushq	%rbp
-  23              	.LCFI0:
-  24              		.cfi_def_cfa_offset 16
-  25 0001 4889E5   		movq	%rsp, %rbp
-  26              		.cfi_offset 6, -16
-  27              	.LCFI1:
-  28              		.cfi_def_cfa_register 6
-  29 0004 48897DF8 		movq	%rdi, -8(%rbp)
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     /* we use a constant object so do nothing */
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  30              		.loc 1 75 0
-  31 0008 C9       		leave
-  32 0009 C3       		ret
-  33              		.cfi_endproc
-
GAS LISTING /tmp/ccIvKeEl.s 			page 3
-
-
-  34              	.LFE513:
-  35              		.size	KNullBlockCipherVecDestroy, .-KNullBlockCipherVecDestroy
-  36              		.type	KNullBlockCipherVecBlockSize, @function
-  37              	KNullBlockCipherVecBlockSize:
-  38              	.LFB514:
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * BlockSize
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  81:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** uint32_t NULLBCMEMBER(BlockSize) ()
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  39              		.loc 1 83 0
-  40              		.cfi_startproc
-  41 000a 55       		pushq	%rbp
-  42              	.LCFI2:
-  43              		.cfi_def_cfa_offset 16
-  44 000b 4889E5   		movq	%rsp, %rbp
-  45              		.cfi_offset 6, -16
-  46              	.LCFI3:
-  47              		.cfi_def_cfa_register 6
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 16;
-  48              		.loc 1 84 0
-  49 000e B8100000 		movl	$16, %eax
-  49      00
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  50              		.loc 1 85 0
-  51 0013 C9       		leave
-  52 0014 C3       		ret
-  53              		.cfi_endproc
-  54              	.LFE514:
-  55              		.size	KNullBlockCipherVecBlockSize, .-KNullBlockCipherVecBlockSize
-  56              		.type	KNullBlockCipherVecKeySize, @function
-  57              	KNullBlockCipherVecKeySize:
-  58              	.LFB515:
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * KeySize
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   to create this key (key schedule)
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static uint32_t NULLBCMEMBER(KeySize) ()
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  59              		.loc 1 97 0
-  60              		.cfi_startproc
-  61 0015 55       		pushq	%rbp
-  62              	.LCFI4:
-  63              		.cfi_def_cfa_offset 16
-  64 0016 4889E5   		movq	%rsp, %rbp
-  65              		.cfi_offset 6, -16
-  66              	.LCFI5:
-  67              		.cfi_def_cfa_register 6
-
GAS LISTING /tmp/ccIvKeEl.s 			page 4
-
-
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 0;
-  68              		.loc 1 98 0
-  69 0019 B8000000 		movl	$0, %eax
-  69      00
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  70              		.loc 1 99 0
-  71 001e C9       		leave
-  72 001f C3       		ret
-  73              		.cfi_endproc
-  74              	.LFE515:
-  75              		.size	KNullBlockCipherVecKeySize, .-KNullBlockCipherVecKeySize
-  76              		.type	KNullBlockCipherVecSetEncryptKey, @function
-  77              	KNullBlockCipherVecSetEncryptKey:
-  78              	.LFB516:
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * SetEncryptKey
- 104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   The KCipher calls this to have the block cipher build an encryption
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   key in the KCipher object
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static rc_t NULLBCMEMBER(SetEncryptKey) (void * encrypt_key, const char * user_key,
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                          uint32_t user_key_size)
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  79              		.loc 1 110 0
-  80              		.cfi_startproc
-  81 0020 55       		pushq	%rbp
-  82              	.LCFI6:
-  83              		.cfi_def_cfa_offset 16
-  84 0021 4889E5   		movq	%rsp, %rbp
-  85              		.cfi_offset 6, -16
-  86              	.LCFI7:
-  87              		.cfi_def_cfa_register 6
-  88 0024 48897DF8 		movq	%rdi, -8(%rbp)
-  89 0028 488975F0 		movq	%rsi, -16(%rbp)
-  90 002c 8955EC   		movl	%edx, -20(%rbp)
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 0;
-  91              		.loc 1 111 0
-  92 002f B8000000 		movl	$0, %eax
-  92      00
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  93              		.loc 1 112 0
-  94 0034 C9       		leave
-  95 0035 C3       		ret
-  96              		.cfi_endproc
-  97              	.LFE516:
-  98              		.size	KNullBlockCipherVecSetEncryptKey, .-KNullBlockCipherVecSetEncryptKey
-  99              		.type	KNullBlockCipherVecSetDecryptKey, @function
- 100              	KNullBlockCipherVecSetDecryptKey:
- 101              	.LFB517:
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * SetDecryptKey
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   The KCipher calls this to have the block cipher build an decryption
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   key in the KCipher object
-
GAS LISTING /tmp/ccIvKeEl.s 			page 5
-
-
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static rc_t NULLBCMEMBER(SetDecryptKey) (void * decrypt_key,
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                      const char * user_key,
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                      uint32_t user_key_size)
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 102              		.loc 1 124 0
- 103              		.cfi_startproc
- 104 0036 55       		pushq	%rbp
- 105              	.LCFI8:
- 106              		.cfi_def_cfa_offset 16
- 107 0037 4889E5   		movq	%rsp, %rbp
- 108              		.cfi_offset 6, -16
- 109              	.LCFI9:
- 110              		.cfi_def_cfa_register 6
- 111 003a 48897DF8 		movq	%rdi, -8(%rbp)
- 112 003e 488975F0 		movq	%rsi, -16(%rbp)
- 113 0042 8955EC   		movl	%edx, -20(%rbp)
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 0;
- 114              		.loc 1 125 0
- 115 0045 B8000000 		movl	$0, %eax
- 115      00
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 116              		.loc 1 126 0
- 117 004a C9       		leave
- 118 004b C3       		ret
- 119              		.cfi_endproc
- 120              	.LFE517:
- 121              		.size	KNullBlockCipherVecSetDecryptKey, .-KNullBlockCipherVecSetDecryptKey
- 122              		.type	KNullBlockCipherVecEncrypt, @function
- 123              	KNullBlockCipherVecEncrypt:
- 124              	.LFB518:
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Encrypt
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   Perform an encryption of a single block.  Chained modes and stream
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   cipher modes will call this multiple times.
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static CipherVec NULLBCMEMBER(Encrypt) (CipherVec state,
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                         const void * encrypt_key)
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 125              		.loc 1 139 0
- 126              		.cfi_startproc
- 127 004c 55       		pushq	%rbp
- 128              	.LCFI10:
- 129              		.cfi_def_cfa_offset 16
- 130 004d 4889E5   		movq	%rsp, %rbp
- 131              		.cfi_offset 6, -16
- 132              	.LCFI11:
- 133              		.cfi_def_cfa_register 6
- 134 0050 660F7F45 		movdqa	%xmm0, -16(%rbp)
- 134      F0
- 135 0055 48897DE8 		movq	%rdi, -24(%rbp)
-
GAS LISTING /tmp/ccIvKeEl.s 			page 6
-
-
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return state;
- 136              		.loc 1 140 0
- 137 0059 660F6F45 		movdqa	-16(%rbp), %xmm0
- 137      F0
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 138              		.loc 1 141 0
- 139 005e C9       		leave
- 140 005f C3       		ret
- 141              		.cfi_endproc
- 142              	.LFE518:
- 143              		.size	KNullBlockCipherVecEncrypt, .-KNullBlockCipherVecEncrypt
- 144              		.type	KNullBlockCipherVecDecrypt, @function
- 145              	KNullBlockCipherVecDecrypt:
- 146              	.LFB519:
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static void NULLBCMEMBER(Encrypt) (const CipherBlock in,
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    CipherBlock * out,
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    const void * encrypt_key)
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Decrypt
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   Perform a decryption of a single block.  Chained modes and stream
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   cipher modes will call this multiple times.
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static CipherVec NULLBCMEMBER(Decrypt) (CipherVec state,
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                         const void * decrypt_key)
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 147              		.loc 1 160 0
- 148              		.cfi_startproc
- 149 0060 55       		pushq	%rbp
- 150              	.LCFI12:
- 151              		.cfi_def_cfa_offset 16
- 152 0061 4889E5   		movq	%rsp, %rbp
- 153              		.cfi_offset 6, -16
- 154              	.LCFI13:
- 155              		.cfi_def_cfa_register 6
- 156 0064 660F7F45 		movdqa	%xmm0, -16(%rbp)
- 156      F0
- 157 0069 48897DE8 		movq	%rdi, -24(%rbp)
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return state;
- 158              		.loc 1 161 0
- 159 006d 660F6F45 		movdqa	-16(%rbp), %xmm0
- 159      F0
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 160              		.loc 1 162 0
- 161 0072 C9       		leave
- 162 0073 C3       		ret
- 163              		.cfi_endproc
- 164              	.LFE519:
- 165              		.size	KNullBlockCipherVecDecrypt, .-KNullBlockCipherVecDecrypt
- 166              		.type	KNullBlockCipherVecProcessorSupport, @function
-
GAS LISTING /tmp/ccIvKeEl.s 			page 7
-
-
- 167              	KNullBlockCipherVecProcessorSupport:
- 168              	.LFB520:
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static void NULLBCMEMBER(Decrypt) (const CipherBlock in,
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    CipherBlock * out,
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    const void * encrypt_key)
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * MakeProcessorSupport
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Run-time check for support of this particular AES implementation by
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * checking the flags given via the cpuid instruction.
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static __inline__
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** bool NULLBCMEMBER(ProcessorSupport) ()
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 169              		.loc 1 180 0
- 170              		.cfi_startproc
- 171 0074 55       		pushq	%rbp
- 172              	.LCFI14:
- 173              		.cfi_def_cfa_offset 16
- 174 0075 4889E5   		movq	%rsp, %rbp
- 175              		.cfi_offset 6, -16
- 176              	.LCFI15:
- 177              		.cfi_def_cfa_register 6
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return true;
- 178              		.loc 1 181 0
- 179 0078 B8010000 		movl	$1, %eax
- 179      00
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 180              		.loc 1 182 0
- 181 007d C9       		leave
- 182 007e C3       		ret
- 183              		.cfi_endproc
- 184              	.LFE520:
- 185              		.size	KNullBlockCipherVecProcessorSupport, .-KNullBlockCipherVecProcessorSupport
- 186              		.section	.data.rel.ro.local,"aw", at progbits
- 187              		.align 32
- 188              		.type	KNullBlockCipherVec_vt_, @object
- 189              		.size	KNullBlockCipherVec_vt_, 64
- 190              	KNullBlockCipherVec_vt_:
- 191 0000 01000000 		.long	1
- 192 0004 01000000 		.long	1
- 193 0008 00000000 		.quad	KNullBlockCipherVecDestroy
- 193      00000000 
- 194 0010 00000000 		.quad	KNullBlockCipherVecBlockSize
- 194      00000000 
- 195 0018 00000000 		.quad	KNullBlockCipherVecKeySize
- 195      00000000 
- 196 0020 00000000 		.quad	KNullBlockCipherVecSetEncryptKey
- 196      00000000 
- 197 0028 00000000 		.quad	KNullBlockCipherVecSetDecryptKey
- 197      00000000 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 8
-
-
- 198 0030 00000000 		.quad	KNullBlockCipherVecEncrypt
- 198      00000000 
- 199 0038 00000000 		.quad	KNullBlockCipherVecDecrypt
- 199      00000000 
- 200              		.section	.rodata
- 201 000a 00000000 		.align 8
- 201      0000
- 202              	.LC0:
- 203 0010 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c"
- 203      652F726F 
- 203      6461726D 
- 203      65722F73 
- 203      72615F73 
- 204              		.text
- 205              	.globl KNullBlockCipherVecMake
- 206              		.type	KNullBlockCipherVecMake, @function
- 207              	KNullBlockCipherVecMake:
- 208              	.LFB521:
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Init
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   Initialize the fields of this object.  The derived class will call this
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   during it's initialization.
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * self      object to initialze
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * vt        the virtual table of the derived class
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * mgr       the cipher manager that is the construction factory block cipher
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           objects hold references to the manager while the manager merely
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           points at the block ciphers when all block ciphers are destroyed
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           the manager loses its references and it too can be destroyed if not
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           held elsewhere
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * name      ASCIZ c-string the name of this class
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static const
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** KBlockCipherVec_vt_v1
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** KBlockCipherByte_vt_v1
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** NULLBCMEMBER(_vt_) = {
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     { 1, 1 },
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(Destroy),
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(BlockSize),
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(KeySize),
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(SetEncryptKey),
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(SetDecryptKey),
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(Encrypt),
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(Decrypt)
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** };
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Make
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-
GAS LISTING /tmp/ccIvKeEl.s 			page 9
-
-
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Create a new Null Block Cipher object.
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * The processor is checked to see if this particular version is supported on
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * this particular CPU.
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** rc_t NULLBCMEMBER(Make) (KBlockCipher ** new_obj)
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 209              		.loc 1 227 0
- 210              		.cfi_startproc
- 211 007f 55       		pushq	%rbp
- 212              	.LCFI16:
- 213              		.cfi_def_cfa_offset 16
- 214 0080 4889E5   		movq	%rsp, %rbp
- 215              		.cfi_offset 6, -16
- 216              	.LCFI17:
- 217              		.cfi_def_cfa_register 6
- 218 0083 4883EC20 		subq	$32, %rsp
- 219 0087 48897DE8 		movq	%rdi, -24(%rbp)
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     rc_t rc;
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     /* Check parameter first */
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     if (new_obj == NULL)
- 220              		.loc 1 231 0
- 221 008b 48837DE8 		cmpq	$0, -24(%rbp)
- 221      00
- 222 0090 7522     		jne	.L18
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
- 223              		.loc 1 232 0
- 224 0092 B9E80000 		movl	$232, %ecx
- 224      00
- 225 0097 488D1500 		leaq	__func__.6558(%rip), %rdx
- 225      000000
- 226 009e 488D3500 		leaq	.LC0(%rip), %rsi
- 226      000000
- 227 00a5 BF878F00 		movl	$-2030006393, %edi
- 227      87
- 228 00aa E8000000 		call	SetRCFileFuncLine at PLT
- 228      00
- 229 00af 8945FC   		movl	%eax, -4(%rbp)
- 230 00b2 EB53     		jmp	.L19
- 231              	.L18:
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     else
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     {
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         *new_obj = NULL;
- 232              		.loc 1 236 0
- 233 00b4 488B45E8 		movq	-24(%rbp), %rax
- 234 00b8 48C70000 		movq	$0, (%rax)
- 234      000000
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         /* check for processor support of this flavor */
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         if ( ! NULLBCMEMBER(ProcessorSupport)())
- 235              		.loc 1 239 0
- 236 00bf B8000000 		movl	$0, %eax
- 236      00
- 237 00c4 E8ABFFFF 		call	KNullBlockCipherVecProcessorSupport
- 237      FF
- 238 00c9 83F001   		xorl	$1, %eax
-
GAS LISTING /tmp/ccIvKeEl.s 			page 10
-
-
- 239 00cc 84C0     		testb	%al, %al
- 240 00ce 7422     		je	.L20
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****             rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
- 241              		.loc 1 240 0
- 242 00d0 B9F00000 		movl	$240, %ecx
- 242      00
- 243 00d5 488D1500 		leaq	__func__.6558(%rip), %rdx
- 243      000000
- 244 00dc 488D3500 		leaq	.LC0(%rip), %rsi
- 244      000000
- 245 00e3 BF038500 		movl	$-2030009085, %edi
- 245      87
- 246 00e8 E8000000 		call	SetRCFileFuncLine at PLT
- 246      00
- 247 00ed 8945FC   		movl	%eax, -4(%rbp)
- 248 00f0 EB15     		jmp	.L19
- 249              	.L20:
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         else
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         {
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****             rc = 0;
- 250              		.loc 1 244 0
- 251 00f2 C745FC00 		movl	$0, -4(%rbp)
- 251      000000
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****             *new_obj = (KBlockCipher*)&(NULLBCMEMBER(_vt_));
- 252              		.loc 1 245 0
- 253 00f9 488D1500 		leaq	KNullBlockCipherVec_vt_(%rip), %rdx
- 253      000000
- 254 0100 488B45E8 		movq	-24(%rbp), %rax
- 255 0104 488910   		movq	%rdx, (%rax)
- 256              	.L19:
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         }
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     }
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return rc;
- 257              		.loc 1 248 0
- 258 0107 8B45FC   		movl	-4(%rbp), %eax
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 259              		.loc 1 249 0
- 260 010a C9       		leave
- 261 010b C3       		ret
- 262              		.cfi_endproc
- 263              	.LFE521:
- 264              		.size	KNullBlockCipherVecMake, .-KNullBlockCipherVecMake
- 265              		.section	.rodata
- 266 0047 00000000 		.align 16
- 266      00000000 
- 266      00
- 267              		.type	__func__.6558, @object
- 268              		.size	__func__.6558, 24
- 269              	__func__.6558:
- 270 0050 4B4E756C 		.string	"KNullBlockCipherVecMake"
- 270      6C426C6F 
- 270      636B4369 
- 270      70686572 
- 270      5665634D 
- 271 0068 00000000 		.align 16
- 271      00000000 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 11
-
-
- 272              		.type	__PRETTY_FUNCTION__.6557, @object
- 273              		.size	__PRETTY_FUNCTION__.6557, 24
- 274              	__PRETTY_FUNCTION__.6557:
- 275 0070 4B4E756C 		.string	"KNullBlockCipherVecMake"
- 275      6C426C6F 
- 275      636B4369 
- 275      70686572 
- 275      5665634D 
- 276              		.text
- 277              	.Letext0:
- 278              		.section	.debug_loc,"", at progbits
- 279              	.Ldebug_loc0:
- 280              	.LLST0:
- 281 0000 00000000 		.quad	.LFB513-.Ltext0
- 281      00000000 
- 282 0008 01000000 		.quad	.LCFI0-.Ltext0
- 282      00000000 
- 283 0010 0200     		.value	0x2
- 284 0012 77       		.byte	0x77
- 285 0013 08       		.sleb128 8
- 286 0014 01000000 		.quad	.LCFI0-.Ltext0
- 286      00000000 
- 287 001c 04000000 		.quad	.LCFI1-.Ltext0
- 287      00000000 
- 288 0024 0200     		.value	0x2
- 289 0026 77       		.byte	0x77
- 290 0027 10       		.sleb128 16
- 291 0028 04000000 		.quad	.LCFI1-.Ltext0
- 291      00000000 
- 292 0030 0A000000 		.quad	.LFE513-.Ltext0
- 292      00000000 
- 293 0038 0200     		.value	0x2
- 294 003a 76       		.byte	0x76
- 295 003b 10       		.sleb128 16
- 296 003c 00000000 		.quad	0x0
- 296      00000000 
- 297 0044 00000000 		.quad	0x0
- 297      00000000 
- 298              	.LLST1:
- 299 004c 0A000000 		.quad	.LFB514-.Ltext0
- 299      00000000 
- 300 0054 0B000000 		.quad	.LCFI2-.Ltext0
- 300      00000000 
- 301 005c 0200     		.value	0x2
- 302 005e 77       		.byte	0x77
- 303 005f 08       		.sleb128 8
- 304 0060 0B000000 		.quad	.LCFI2-.Ltext0
- 304      00000000 
- 305 0068 0E000000 		.quad	.LCFI3-.Ltext0
- 305      00000000 
- 306 0070 0200     		.value	0x2
- 307 0072 77       		.byte	0x77
- 308 0073 10       		.sleb128 16
- 309 0074 0E000000 		.quad	.LCFI3-.Ltext0
- 309      00000000 
- 310 007c 15000000 		.quad	.LFE514-.Ltext0
- 310      00000000 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 12
-
-
- 311 0084 0200     		.value	0x2
- 312 0086 76       		.byte	0x76
- 313 0087 10       		.sleb128 16
- 314 0088 00000000 		.quad	0x0
- 314      00000000 
- 315 0090 00000000 		.quad	0x0
- 315      00000000 
- 316              	.LLST2:
- 317 0098 15000000 		.quad	.LFB515-.Ltext0
- 317      00000000 
- 318 00a0 16000000 		.quad	.LCFI4-.Ltext0
- 318      00000000 
- 319 00a8 0200     		.value	0x2
- 320 00aa 77       		.byte	0x77
- 321 00ab 08       		.sleb128 8
- 322 00ac 16000000 		.quad	.LCFI4-.Ltext0
- 322      00000000 
- 323 00b4 19000000 		.quad	.LCFI5-.Ltext0
- 323      00000000 
- 324 00bc 0200     		.value	0x2
- 325 00be 77       		.byte	0x77
- 326 00bf 10       		.sleb128 16
- 327 00c0 19000000 		.quad	.LCFI5-.Ltext0
- 327      00000000 
- 328 00c8 20000000 		.quad	.LFE515-.Ltext0
- 328      00000000 
- 329 00d0 0200     		.value	0x2
- 330 00d2 76       		.byte	0x76
- 331 00d3 10       		.sleb128 16
- 332 00d4 00000000 		.quad	0x0
- 332      00000000 
- 333 00dc 00000000 		.quad	0x0
- 333      00000000 
- 334              	.LLST3:
- 335 00e4 20000000 		.quad	.LFB516-.Ltext0
- 335      00000000 
- 336 00ec 21000000 		.quad	.LCFI6-.Ltext0
- 336      00000000 
- 337 00f4 0200     		.value	0x2
- 338 00f6 77       		.byte	0x77
- 339 00f7 08       		.sleb128 8
- 340 00f8 21000000 		.quad	.LCFI6-.Ltext0
- 340      00000000 
- 341 0100 24000000 		.quad	.LCFI7-.Ltext0
- 341      00000000 
- 342 0108 0200     		.value	0x2
- 343 010a 77       		.byte	0x77
- 344 010b 10       		.sleb128 16
- 345 010c 24000000 		.quad	.LCFI7-.Ltext0
- 345      00000000 
- 346 0114 36000000 		.quad	.LFE516-.Ltext0
- 346      00000000 
- 347 011c 0200     		.value	0x2
- 348 011e 76       		.byte	0x76
- 349 011f 10       		.sleb128 16
- 350 0120 00000000 		.quad	0x0
- 350      00000000 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 13
-
-
- 351 0128 00000000 		.quad	0x0
- 351      00000000 
- 352              	.LLST4:
- 353 0130 36000000 		.quad	.LFB517-.Ltext0
- 353      00000000 
- 354 0138 37000000 		.quad	.LCFI8-.Ltext0
- 354      00000000 
- 355 0140 0200     		.value	0x2
- 356 0142 77       		.byte	0x77
- 357 0143 08       		.sleb128 8
- 358 0144 37000000 		.quad	.LCFI8-.Ltext0
- 358      00000000 
- 359 014c 3A000000 		.quad	.LCFI9-.Ltext0
- 359      00000000 
- 360 0154 0200     		.value	0x2
- 361 0156 77       		.byte	0x77
- 362 0157 10       		.sleb128 16
- 363 0158 3A000000 		.quad	.LCFI9-.Ltext0
- 363      00000000 
- 364 0160 4C000000 		.quad	.LFE517-.Ltext0
- 364      00000000 
- 365 0168 0200     		.value	0x2
- 366 016a 76       		.byte	0x76
- 367 016b 10       		.sleb128 16
- 368 016c 00000000 		.quad	0x0
- 368      00000000 
- 369 0174 00000000 		.quad	0x0
- 369      00000000 
- 370              	.LLST5:
- 371 017c 4C000000 		.quad	.LFB518-.Ltext0
- 371      00000000 
- 372 0184 4D000000 		.quad	.LCFI10-.Ltext0
- 372      00000000 
- 373 018c 0200     		.value	0x2
- 374 018e 77       		.byte	0x77
- 375 018f 08       		.sleb128 8
- 376 0190 4D000000 		.quad	.LCFI10-.Ltext0
- 376      00000000 
- 377 0198 50000000 		.quad	.LCFI11-.Ltext0
- 377      00000000 
- 378 01a0 0200     		.value	0x2
- 379 01a2 77       		.byte	0x77
- 380 01a3 10       		.sleb128 16
- 381 01a4 50000000 		.quad	.LCFI11-.Ltext0
- 381      00000000 
- 382 01ac 60000000 		.quad	.LFE518-.Ltext0
- 382      00000000 
- 383 01b4 0200     		.value	0x2
- 384 01b6 76       		.byte	0x76
- 385 01b7 10       		.sleb128 16
- 386 01b8 00000000 		.quad	0x0
- 386      00000000 
- 387 01c0 00000000 		.quad	0x0
- 387      00000000 
- 388              	.LLST6:
- 389 01c8 60000000 		.quad	.LFB519-.Ltext0
- 389      00000000 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 14
-
-
- 390 01d0 61000000 		.quad	.LCFI12-.Ltext0
- 390      00000000 
- 391 01d8 0200     		.value	0x2
- 392 01da 77       		.byte	0x77
- 393 01db 08       		.sleb128 8
- 394 01dc 61000000 		.quad	.LCFI12-.Ltext0
- 394      00000000 
- 395 01e4 64000000 		.quad	.LCFI13-.Ltext0
- 395      00000000 
- 396 01ec 0200     		.value	0x2
- 397 01ee 77       		.byte	0x77
- 398 01ef 10       		.sleb128 16
- 399 01f0 64000000 		.quad	.LCFI13-.Ltext0
- 399      00000000 
- 400 01f8 74000000 		.quad	.LFE519-.Ltext0
- 400      00000000 
- 401 0200 0200     		.value	0x2
- 402 0202 76       		.byte	0x76
- 403 0203 10       		.sleb128 16
- 404 0204 00000000 		.quad	0x0
- 404      00000000 
- 405 020c 00000000 		.quad	0x0
- 405      00000000 
- 406              	.LLST7:
- 407 0214 74000000 		.quad	.LFB520-.Ltext0
- 407      00000000 
- 408 021c 75000000 		.quad	.LCFI14-.Ltext0
- 408      00000000 
- 409 0224 0200     		.value	0x2
- 410 0226 77       		.byte	0x77
- 411 0227 08       		.sleb128 8
- 412 0228 75000000 		.quad	.LCFI14-.Ltext0
- 412      00000000 
- 413 0230 78000000 		.quad	.LCFI15-.Ltext0
- 413      00000000 
- 414 0238 0200     		.value	0x2
- 415 023a 77       		.byte	0x77
- 416 023b 10       		.sleb128 16
- 417 023c 78000000 		.quad	.LCFI15-.Ltext0
- 417      00000000 
- 418 0244 7F000000 		.quad	.LFE520-.Ltext0
- 418      00000000 
- 419 024c 0200     		.value	0x2
- 420 024e 76       		.byte	0x76
- 421 024f 10       		.sleb128 16
- 422 0250 00000000 		.quad	0x0
- 422      00000000 
- 423 0258 00000000 		.quad	0x0
- 423      00000000 
- 424              	.LLST8:
- 425 0260 7F000000 		.quad	.LFB521-.Ltext0
- 425      00000000 
- 426 0268 80000000 		.quad	.LCFI16-.Ltext0
- 426      00000000 
- 427 0270 0200     		.value	0x2
- 428 0272 77       		.byte	0x77
- 429 0273 08       		.sleb128 8
-
GAS LISTING /tmp/ccIvKeEl.s 			page 15
-
-
- 430 0274 80000000 		.quad	.LCFI16-.Ltext0
- 430      00000000 
- 431 027c 83000000 		.quad	.LCFI17-.Ltext0
- 431      00000000 
- 432 0284 0200     		.value	0x2
- 433 0286 77       		.byte	0x77
- 434 0287 10       		.sleb128 16
- 435 0288 83000000 		.quad	.LCFI17-.Ltext0
- 435      00000000 
- 436 0290 0C010000 		.quad	.LFE521-.Ltext0
- 436      00000000 
- 437 0298 0200     		.value	0x2
- 438 029a 76       		.byte	0x76
- 439 029b 10       		.sleb128 16
- 440 029c 00000000 		.quad	0x0
- 440      00000000 
- 441 02a4 00000000 		.quad	0x0
- 441      00000000 
- 442              		.file 2 "/usr/include/stdint.h"
- 443              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
- 444              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 445              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 446              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 447              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
- 448              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
- 449              		.section	.debug_info
- 450 0000 6C0C0000 		.long	0xc6c
- 451 0004 0200     		.value	0x2
- 452 0006 00000000 		.long	.Ldebug_abbrev0
- 453 000a 08       		.byte	0x8
- 454 000b 01       		.uleb128 0x1
- 455 000c 00000000 		.long	.LASF317
- 456 0010 01       		.byte	0x1
- 457 0011 00000000 		.long	.LASF318
- 458 0015 00000000 		.long	.LASF319
- 459 0019 00000000 		.quad	.Ltext0
- 459      00000000 
- 460 0021 00000000 		.quad	.Letext0
- 460      00000000 
- 461 0029 00000000 		.long	.Ldebug_line0
- 462 002d 02       		.uleb128 0x2
- 463 002e 01       		.byte	0x1
- 464 002f 06       		.byte	0x6
- 465 0030 00000000 		.long	.LASF0
- 466 0034 02       		.uleb128 0x2
- 467 0035 02       		.byte	0x2
- 468 0036 05       		.byte	0x5
- 469 0037 00000000 		.long	.LASF1
- 470 003b 03       		.uleb128 0x3
- 471 003c 04       		.byte	0x4
- 472 003d 05       		.byte	0x5
- 473 003e 696E7400 		.string	"int"
- 474 0042 02       		.uleb128 0x2
- 475 0043 08       		.byte	0x8
- 476 0044 05       		.byte	0x5
- 477 0045 00000000 		.long	.LASF2
- 478 0049 04       		.uleb128 0x4
-
GAS LISTING /tmp/ccIvKeEl.s 			page 16
-
-
- 479 004a 00000000 		.long	.LASF5
- 480 004e 02       		.byte	0x2
- 481 004f 31       		.byte	0x31
- 482 0050 54000000 		.long	0x54
- 483 0054 02       		.uleb128 0x2
- 484 0055 01       		.byte	0x1
- 485 0056 08       		.byte	0x8
- 486 0057 00000000 		.long	.LASF3
- 487 005b 02       		.uleb128 0x2
- 488 005c 02       		.byte	0x2
- 489 005d 07       		.byte	0x7
- 490 005e 00000000 		.long	.LASF4
- 491 0062 04       		.uleb128 0x4
- 492 0063 00000000 		.long	.LASF6
- 493 0067 02       		.byte	0x2
- 494 0068 34       		.byte	0x34
- 495 0069 6D000000 		.long	0x6d
- 496 006d 02       		.uleb128 0x2
- 497 006e 04       		.byte	0x4
- 498 006f 07       		.byte	0x7
- 499 0070 00000000 		.long	.LASF7
- 500 0074 02       		.uleb128 0x2
- 501 0075 08       		.byte	0x8
- 502 0076 07       		.byte	0x7
- 503 0077 00000000 		.long	.LASF8
- 504 007b 04       		.uleb128 0x4
- 505 007c 00000000 		.long	.LASF9
- 506 0080 03       		.byte	0x3
- 507 0081 30       		.byte	0x30
- 508 0082 62000000 		.long	0x62
- 509 0086 05       		.uleb128 0x5
- 510 0087 08       		.byte	0x8
- 511 0088 06       		.uleb128 0x6
- 512 0089 08       		.byte	0x8
- 513 008a 07       		.byte	0x7
- 514 008b 07       		.uleb128 0x7
- 515 008c 08       		.byte	0x8
- 516 008d 91000000 		.long	0x91
- 517 0091 08       		.uleb128 0x8
- 518 0092 96000000 		.long	0x96
- 519 0096 02       		.uleb128 0x2
- 520 0097 01       		.byte	0x1
- 521 0098 06       		.byte	0x6
- 522 0099 00000000 		.long	.LASF10
- 523 009d 09       		.uleb128 0x9
- 524 009e 04       		.byte	0x4
- 525 009f 08       		.byte	0x8
- 526 00a0 D6       		.byte	0xd6
- 527 00a1 1E010000 		.long	0x11e
- 528 00a5 0A       		.uleb128 0xa
- 529 00a6 00000000 		.long	.LASF11
- 530 00aa 7F       		.sleb128 -1
- 531 00ab 0A       		.uleb128 0xa
- 532 00ac 00000000 		.long	.LASF12
- 533 00b0 00       		.sleb128 0
- 534 00b1 0A       		.uleb128 0xa
- 535 00b2 00000000 		.long	.LASF13
-
GAS LISTING /tmp/ccIvKeEl.s 			page 17
-
-
- 536 00b6 01       		.sleb128 1
- 537 00b7 0A       		.uleb128 0xa
- 538 00b8 00000000 		.long	.LASF14
- 539 00bc 02       		.sleb128 2
- 540 00bd 0A       		.uleb128 0xa
- 541 00be 00000000 		.long	.LASF15
- 542 00c2 03       		.sleb128 3
- 543 00c3 0A       		.uleb128 0xa
- 544 00c4 00000000 		.long	.LASF16
- 545 00c8 04       		.sleb128 4
- 546 00c9 0A       		.uleb128 0xa
- 547 00ca 00000000 		.long	.LASF17
- 548 00ce 05       		.sleb128 5
- 549 00cf 0A       		.uleb128 0xa
- 550 00d0 00000000 		.long	.LASF18
- 551 00d4 06       		.sleb128 6
- 552 00d5 0A       		.uleb128 0xa
- 553 00d6 00000000 		.long	.LASF19
- 554 00da 07       		.sleb128 7
- 555 00db 0A       		.uleb128 0xa
- 556 00dc 00000000 		.long	.LASF20
- 557 00e0 08       		.sleb128 8
- 558 00e1 0A       		.uleb128 0xa
- 559 00e2 00000000 		.long	.LASF21
- 560 00e6 09       		.sleb128 9
- 561 00e7 0A       		.uleb128 0xa
- 562 00e8 00000000 		.long	.LASF22
- 563 00ec 0A       		.sleb128 10
- 564 00ed 0A       		.uleb128 0xa
- 565 00ee 00000000 		.long	.LASF23
- 566 00f2 0B       		.sleb128 11
- 567 00f3 0A       		.uleb128 0xa
- 568 00f4 00000000 		.long	.LASF24
- 569 00f8 0C       		.sleb128 12
- 570 00f9 0A       		.uleb128 0xa
- 571 00fa 00000000 		.long	.LASF25
- 572 00fe 0D       		.sleb128 13
- 573 00ff 0A       		.uleb128 0xa
- 574 0100 00000000 		.long	.LASF26
- 575 0104 0E       		.sleb128 14
- 576 0105 0A       		.uleb128 0xa
- 577 0106 00000000 		.long	.LASF27
- 578 010a 0F       		.sleb128 15
- 579 010b 0A       		.uleb128 0xa
- 580 010c 00000000 		.long	.LASF28
- 581 0110 10       		.sleb128 16
- 582 0111 0A       		.uleb128 0xa
- 583 0112 00000000 		.long	.LASF29
- 584 0116 11       		.sleb128 17
- 585 0117 0A       		.uleb128 0xa
- 586 0118 00000000 		.long	.LASF30
- 587 011c 12       		.sleb128 18
- 588 011d 00       		.byte	0x0
- 589 011e 07       		.uleb128 0x7
- 590 011f 08       		.byte	0x8
- 591 0120 24010000 		.long	0x124
- 592 0124 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccIvKeEl.s 			page 18
-
-
- 593 0125 02       		.uleb128 0x2
- 594 0126 08       		.byte	0x8
- 595 0127 05       		.byte	0x5
- 596 0128 00000000 		.long	.LASF31
- 597 012c 02       		.uleb128 0x2
- 598 012d 04       		.byte	0x4
- 599 012e 04       		.byte	0x4
- 600 012f 00000000 		.long	.LASF32
- 601 0133 07       		.uleb128 0x7
- 602 0134 08       		.byte	0x8
- 603 0135 96000000 		.long	0x96
- 604 0139 02       		.uleb128 0x2
- 605 013a 08       		.byte	0x8
- 606 013b 07       		.byte	0x7
- 607 013c 00000000 		.long	.LASF33
- 608 0140 02       		.uleb128 0x2
- 609 0141 08       		.byte	0x8
- 610 0142 04       		.byte	0x4
- 611 0143 00000000 		.long	.LASF34
- 612 0147 04       		.uleb128 0x4
- 613 0148 00000000 		.long	.LASF35
- 614 014c 04       		.byte	0x4
- 615 014d 26       		.byte	0x26
- 616 014e 52010000 		.long	0x152
- 617 0152 0C       		.uleb128 0xc
- 618 0153 01       		.byte	0x1
- 619 0154 49000000 		.long	0x49
- 620 0158 63010000 		.long	0x163
- 621 015c 0D       		.uleb128 0xd
- 622 015d 88000000 		.long	0x88
- 623 0161 0F       		.byte	0xf
- 624 0162 00       		.byte	0x0
- 625 0163 04       		.uleb128 0x4
- 626 0164 00000000 		.long	.LASF36
- 627 0168 05       		.byte	0x5
- 628 0169 3B       		.byte	0x3b
- 629 016a 47010000 		.long	0x147
- 630 016e 04       		.uleb128 0x4
- 631 016f 00000000 		.long	.LASF37
- 632 0173 05       		.byte	0x5
- 633 0174 43       		.byte	0x43
- 634 0175 79010000 		.long	0x179
- 635 0179 0E       		.uleb128 0xe
- 636 017a 00000000 		.long	.LASF37
- 637 017e 08       		.byte	0x8
- 638 017f 05       		.byte	0x5
- 639 0180 43       		.byte	0x43
- 640 0181 A2010000 		.long	0x1a2
- 641 0185 0F       		.uleb128 0xf
- 642 0186 6D616A00 		.string	"maj"
- 643 018a 05       		.byte	0x5
- 644 018b 46       		.byte	0x46
- 645 018c 62000000 		.long	0x62
- 646 0190 02       		.byte	0x2
- 647 0191 23       		.byte	0x23
- 648 0192 00       		.uleb128 0x0
- 649 0193 0F       		.uleb128 0xf
-
GAS LISTING /tmp/ccIvKeEl.s 			page 19
-
-
- 650 0194 6D696E00 		.string	"min"
- 651 0198 05       		.byte	0x5
- 652 0199 47       		.byte	0x47
- 653 019a 62000000 		.long	0x62
- 654 019e 02       		.byte	0x2
- 655 019f 23       		.byte	0x23
- 656 01a0 04       		.uleb128 0x4
- 657 01a1 00       		.byte	0x0
- 658 01a2 04       		.uleb128 0x4
- 659 01a3 00000000 		.long	.LASF38
- 660 01a7 05       		.byte	0x5
- 661 01a8 52       		.byte	0x52
- 662 01a9 AD010000 		.long	0x1ad
- 663 01ad 0E       		.uleb128 0xe
- 664 01ae 00000000 		.long	.LASF38
- 665 01b2 40       		.byte	0x40
- 666 01b3 05       		.byte	0x5
- 667 01b4 52       		.byte	0x52
- 668 01b5 2A020000 		.long	0x22a
- 669 01b9 10       		.uleb128 0x10
- 670 01ba 00000000 		.long	.LASF39
- 671 01be 05       		.byte	0x5
- 672 01bf 5E       		.byte	0x5e
- 673 01c0 6E010000 		.long	0x16e
- 674 01c4 02       		.byte	0x2
- 675 01c5 23       		.byte	0x23
- 676 01c6 00       		.uleb128 0x0
- 677 01c7 10       		.uleb128 0x10
- 678 01c8 00000000 		.long	.LASF40
- 679 01cc 05       		.byte	0x5
- 680 01cd 63       		.byte	0x63
- 681 01ce 6E020000 		.long	0x26e
- 682 01d2 02       		.byte	0x2
- 683 01d3 23       		.byte	0x23
- 684 01d4 08       		.uleb128 0x8
- 685 01d5 10       		.uleb128 0x10
- 686 01d6 00000000 		.long	.LASF41
- 687 01da 05       		.byte	0x5
- 688 01db 65       		.byte	0x65
- 689 01dc 7F020000 		.long	0x27f
- 690 01e0 02       		.byte	0x2
- 691 01e1 23       		.byte	0x23
- 692 01e2 10       		.uleb128 0x10
- 693 01e3 10       		.uleb128 0x10
- 694 01e4 00000000 		.long	.LASF42
- 695 01e8 05       		.byte	0x5
- 696 01e9 67       		.byte	0x67
- 697 01ea 7F020000 		.long	0x27f
- 698 01ee 02       		.byte	0x2
- 699 01ef 23       		.byte	0x23
- 700 01f0 18       		.uleb128 0x18
- 701 01f1 10       		.uleb128 0x10
- 702 01f2 00000000 		.long	.LASF43
- 703 01f6 05       		.byte	0x5
- 704 01f7 69       		.byte	0x69
- 705 01f8 9F020000 		.long	0x29f
- 706 01fc 02       		.byte	0x2
-
GAS LISTING /tmp/ccIvKeEl.s 			page 20
-
-
- 707 01fd 23       		.byte	0x23
- 708 01fe 20       		.uleb128 0x20
- 709 01ff 10       		.uleb128 0x10
- 710 0200 00000000 		.long	.LASF44
- 711 0204 05       		.byte	0x5
- 712 0205 6D       		.byte	0x6d
- 713 0206 9F020000 		.long	0x29f
- 714 020a 02       		.byte	0x2
- 715 020b 23       		.byte	0x23
- 716 020c 28       		.uleb128 0x28
- 717 020d 10       		.uleb128 0x10
- 718 020e 00000000 		.long	.LASF45
- 719 0212 05       		.byte	0x5
- 720 0213 71       		.byte	0x71
- 721 0214 BB020000 		.long	0x2bb
- 722 0218 02       		.byte	0x2
- 723 0219 23       		.byte	0x23
- 724 021a 30       		.uleb128 0x30
- 725 021b 10       		.uleb128 0x10
- 726 021c 00000000 		.long	.LASF46
- 727 0220 05       		.byte	0x5
- 728 0221 75       		.byte	0x75
- 729 0222 BB020000 		.long	0x2bb
- 730 0226 02       		.byte	0x2
- 731 0227 23       		.byte	0x23
- 732 0228 38       		.uleb128 0x38
- 733 0229 00       		.byte	0x0
- 734 022a 04       		.uleb128 0x4
- 735 022b 00000000 		.long	.LASF47
- 736 022f 05       		.byte	0x5
- 737 0230 53       		.byte	0x53
- 738 0231 35020000 		.long	0x235
- 739 0235 11       		.uleb128 0x11
- 740 0236 00000000 		.long	.LASF47
- 741 023a 40       		.byte	0x40
- 742 023b 05       		.byte	0x5
- 743 023c 53       		.byte	0x53
- 744 023d 57020000 		.long	0x257
- 745 0241 12       		.uleb128 0x12
- 746 0242 00000000 		.long	.LASF39
- 747 0246 05       		.byte	0x5
- 748 0247 7F       		.byte	0x7f
- 749 0248 6E010000 		.long	0x16e
- 750 024c 13       		.uleb128 0x13
- 751 024d 763100   		.string	"v1"
- 752 0250 05       		.byte	0x5
- 753 0251 80       		.byte	0x80
- 754 0252 A2010000 		.long	0x1a2
- 755 0256 00       		.byte	0x0
- 756 0257 14       		.uleb128 0x14
- 757 0258 01       		.byte	0x1
- 758 0259 63020000 		.long	0x263
- 759 025d 15       		.uleb128 0x15
- 760 025e 63020000 		.long	0x263
- 761 0262 00       		.byte	0x0
- 762 0263 07       		.uleb128 0x7
- 763 0264 08       		.byte	0x8
-
GAS LISTING /tmp/ccIvKeEl.s 			page 21
-
-
- 764 0265 69020000 		.long	0x269
- 765 0269 08       		.uleb128 0x8
- 766 026a 2A020000 		.long	0x22a
- 767 026e 07       		.uleb128 0x7
- 768 026f 08       		.byte	0x8
- 769 0270 57020000 		.long	0x257
- 770 0274 16       		.uleb128 0x16
- 771 0275 62000000 		.long	0x62
- 772 0279 7F020000 		.long	0x27f
- 773 027d 17       		.uleb128 0x17
- 774 027e 00       		.byte	0x0
- 775 027f 07       		.uleb128 0x7
- 776 0280 08       		.byte	0x8
- 777 0281 74020000 		.long	0x274
- 778 0285 18       		.uleb128 0x18
- 779 0286 01       		.byte	0x1
- 780 0287 7B000000 		.long	0x7b
- 781 028b 9F020000 		.long	0x29f
- 782 028f 15       		.uleb128 0x15
- 783 0290 86000000 		.long	0x86
- 784 0294 15       		.uleb128 0x15
- 785 0295 8B000000 		.long	0x8b
- 786 0299 15       		.uleb128 0x15
- 787 029a 62000000 		.long	0x62
- 788 029e 00       		.byte	0x0
- 789 029f 07       		.uleb128 0x7
- 790 02a0 08       		.byte	0x8
- 791 02a1 85020000 		.long	0x285
- 792 02a5 14       		.uleb128 0x14
- 793 02a6 01       		.byte	0x1
- 794 02a7 BB020000 		.long	0x2bb
- 795 02ab 15       		.uleb128 0x15
- 796 02ac 8B000000 		.long	0x8b
- 797 02b0 15       		.uleb128 0x15
- 798 02b1 33010000 		.long	0x133
- 799 02b5 15       		.uleb128 0x15
- 800 02b6 1E010000 		.long	0x11e
- 801 02ba 00       		.byte	0x0
- 802 02bb 07       		.uleb128 0x7
- 803 02bc 08       		.byte	0x8
- 804 02bd A5020000 		.long	0x2a5
- 805 02c1 04       		.uleb128 0x4
- 806 02c2 00000000 		.long	.LASF48
- 807 02c6 05       		.byte	0x5
- 808 02c7 84       		.byte	0x84
- 809 02c8 CC020000 		.long	0x2cc
- 810 02cc 0E       		.uleb128 0xe
- 811 02cd 00000000 		.long	.LASF48
- 812 02d1 40       		.byte	0x40
- 813 02d2 05       		.byte	0x5
- 814 02d3 84       		.byte	0x84
- 815 02d4 49030000 		.long	0x349
- 816 02d8 10       		.uleb128 0x10
- 817 02d9 00000000 		.long	.LASF39
- 818 02dd 05       		.byte	0x5
- 819 02de 90       		.byte	0x90
- 820 02df 6E010000 		.long	0x16e
-
GAS LISTING /tmp/ccIvKeEl.s 			page 22
-
-
- 821 02e3 02       		.byte	0x2
- 822 02e4 23       		.byte	0x23
- 823 02e5 00       		.uleb128 0x0
- 824 02e6 10       		.uleb128 0x10
- 825 02e7 00000000 		.long	.LASF40
- 826 02eb 05       		.byte	0x5
- 827 02ec 95       		.byte	0x95
- 828 02ed 8D030000 		.long	0x38d
- 829 02f1 02       		.byte	0x2
- 830 02f2 23       		.byte	0x23
- 831 02f3 08       		.uleb128 0x8
- 832 02f4 10       		.uleb128 0x10
- 833 02f5 00000000 		.long	.LASF41
- 834 02f9 05       		.byte	0x5
- 835 02fa 97       		.byte	0x97
- 836 02fb 7F020000 		.long	0x27f
- 837 02ff 02       		.byte	0x2
- 838 0300 23       		.byte	0x23
- 839 0301 10       		.uleb128 0x10
- 840 0302 10       		.uleb128 0x10
- 841 0303 00000000 		.long	.LASF42
- 842 0307 05       		.byte	0x5
- 843 0308 99       		.byte	0x99
- 844 0309 7F020000 		.long	0x27f
- 845 030d 02       		.byte	0x2
- 846 030e 23       		.byte	0x23
- 847 030f 18       		.uleb128 0x18
- 848 0310 10       		.uleb128 0x10
- 849 0311 00000000 		.long	.LASF43
- 850 0315 05       		.byte	0x5
- 851 0316 9B       		.byte	0x9b
- 852 0317 9F020000 		.long	0x29f
- 853 031b 02       		.byte	0x2
- 854 031c 23       		.byte	0x23
- 855 031d 20       		.uleb128 0x20
- 856 031e 10       		.uleb128 0x10
- 857 031f 00000000 		.long	.LASF44
- 858 0323 05       		.byte	0x5
- 859 0324 9F       		.byte	0x9f
- 860 0325 9F020000 		.long	0x29f
- 861 0329 02       		.byte	0x2
- 862 032a 23       		.byte	0x23
- 863 032b 28       		.uleb128 0x28
- 864 032c 10       		.uleb128 0x10
- 865 032d 00000000 		.long	.LASF45
- 866 0331 05       		.byte	0x5
- 867 0332 A3       		.byte	0xa3
- 868 0333 A8030000 		.long	0x3a8
- 869 0337 02       		.byte	0x2
- 870 0338 23       		.byte	0x23
- 871 0339 30       		.uleb128 0x30
- 872 033a 10       		.uleb128 0x10
- 873 033b 00000000 		.long	.LASF46
- 874 033f 05       		.byte	0x5
- 875 0340 A6       		.byte	0xa6
- 876 0341 A8030000 		.long	0x3a8
- 877 0345 02       		.byte	0x2
-
GAS LISTING /tmp/ccIvKeEl.s 			page 23
-
-
- 878 0346 23       		.byte	0x23
- 879 0347 38       		.uleb128 0x38
- 880 0348 00       		.byte	0x0
- 881 0349 04       		.uleb128 0x4
- 882 034a 00000000 		.long	.LASF49
- 883 034e 05       		.byte	0x5
- 884 034f 85       		.byte	0x85
- 885 0350 54030000 		.long	0x354
- 886 0354 11       		.uleb128 0x11
- 887 0355 00000000 		.long	.LASF49
- 888 0359 40       		.byte	0x40
- 889 035a 05       		.byte	0x5
- 890 035b 85       		.byte	0x85
- 891 035c 76030000 		.long	0x376
- 892 0360 12       		.uleb128 0x12
- 893 0361 00000000 		.long	.LASF39
- 894 0365 05       		.byte	0x5
- 895 0366 AF       		.byte	0xaf
- 896 0367 6E010000 		.long	0x16e
- 897 036b 13       		.uleb128 0x13
- 898 036c 763100   		.string	"v1"
- 899 036f 05       		.byte	0x5
- 900 0370 B0       		.byte	0xb0
- 901 0371 C1020000 		.long	0x2c1
- 902 0375 00       		.byte	0x0
- 903 0376 14       		.uleb128 0x14
- 904 0377 01       		.byte	0x1
- 905 0378 82030000 		.long	0x382
- 906 037c 15       		.uleb128 0x15
- 907 037d 82030000 		.long	0x382
- 908 0381 00       		.byte	0x0
- 909 0382 07       		.uleb128 0x7
- 910 0383 08       		.byte	0x8
- 911 0384 88030000 		.long	0x388
- 912 0388 08       		.uleb128 0x8
- 913 0389 49030000 		.long	0x349
- 914 038d 07       		.uleb128 0x7
- 915 038e 08       		.byte	0x8
- 916 038f 76030000 		.long	0x376
- 917 0393 18       		.uleb128 0x18
- 918 0394 01       		.byte	0x1
- 919 0395 63010000 		.long	0x163
- 920 0399 A8030000 		.long	0x3a8
- 921 039d 15       		.uleb128 0x15
- 922 039e 63010000 		.long	0x163
- 923 03a2 15       		.uleb128 0x15
- 924 03a3 1E010000 		.long	0x11e
- 925 03a7 00       		.byte	0x0
- 926 03a8 07       		.uleb128 0x7
- 927 03a9 08       		.byte	0x8
- 928 03aa 93030000 		.long	0x393
- 929 03ae 04       		.uleb128 0x4
- 930 03af 00000000 		.long	.LASF50
- 931 03b3 06       		.byte	0x6
- 932 03b4 40       		.byte	0x40
- 933 03b5 B9030000 		.long	0x3b9
- 934 03b9 11       		.uleb128 0x11
-
GAS LISTING /tmp/ccIvKeEl.s 			page 24
-
-
- 935 03ba 00000000 		.long	.LASF50
- 936 03be 40       		.byte	0x40
- 937 03bf 06       		.byte	0x6
- 938 03c0 40       		.byte	0x40
- 939 03c1 DC030000 		.long	0x3dc
- 940 03c5 12       		.uleb128 0x12
- 941 03c6 00000000 		.long	.LASF51
- 942 03ca 06       		.byte	0x6
- 943 03cb 43       		.byte	0x43
- 944 03cc 2A020000 		.long	0x22a
- 945 03d0 13       		.uleb128 0x13
- 946 03d1 76656300 		.string	"vec"
- 947 03d5 06       		.byte	0x6
- 948 03d6 44       		.byte	0x44
- 949 03d7 49030000 		.long	0x349
- 950 03db 00       		.byte	0x0
- 951 03dc 19       		.uleb128 0x19
- 952 03dd 00000000 		.long	.LASF74
- 953 03e1 04       		.byte	0x4
- 954 03e2 07       		.byte	0x7
- 955 03e3 5A       		.byte	0x5a
- 956 03e4 6D040000 		.long	0x46d
- 957 03e8 0A       		.uleb128 0xa
- 958 03e9 00000000 		.long	.LASF52
- 959 03ed 00       		.sleb128 0
- 960 03ee 0A       		.uleb128 0xa
- 961 03ef 00000000 		.long	.LASF53
- 962 03f3 01       		.sleb128 1
- 963 03f4 0A       		.uleb128 0xa
- 964 03f5 00000000 		.long	.LASF54
- 965 03f9 02       		.sleb128 2
- 966 03fa 0A       		.uleb128 0xa
- 967 03fb 00000000 		.long	.LASF55
- 968 03ff 03       		.sleb128 3
- 969 0400 0A       		.uleb128 0xa
- 970 0401 00000000 		.long	.LASF56
- 971 0405 04       		.sleb128 4
- 972 0406 0A       		.uleb128 0xa
- 973 0407 00000000 		.long	.LASF57
- 974 040b 05       		.sleb128 5
- 975 040c 0A       		.uleb128 0xa
- 976 040d 00000000 		.long	.LASF58
- 977 0411 06       		.sleb128 6
- 978 0412 0A       		.uleb128 0xa
- 979 0413 00000000 		.long	.LASF59
- 980 0417 07       		.sleb128 7
- 981 0418 0A       		.uleb128 0xa
- 982 0419 00000000 		.long	.LASF60
- 983 041d 08       		.sleb128 8
- 984 041e 0A       		.uleb128 0xa
- 985 041f 00000000 		.long	.LASF61
- 986 0423 09       		.sleb128 9
- 987 0424 0A       		.uleb128 0xa
- 988 0425 00000000 		.long	.LASF62
- 989 0429 0A       		.sleb128 10
- 990 042a 0A       		.uleb128 0xa
- 991 042b 00000000 		.long	.LASF63
-
GAS LISTING /tmp/ccIvKeEl.s 			page 25
-
-
- 992 042f 0B       		.sleb128 11
- 993 0430 0A       		.uleb128 0xa
- 994 0431 00000000 		.long	.LASF64
- 995 0435 0C       		.sleb128 12
- 996 0436 0A       		.uleb128 0xa
- 997 0437 00000000 		.long	.LASF65
- 998 043b 0D       		.sleb128 13
- 999 043c 0A       		.uleb128 0xa
- 1000 043d 00000000 		.long	.LASF66
- 1001 0441 0E       		.sleb128 14
- 1002 0442 0A       		.uleb128 0xa
- 1003 0443 00000000 		.long	.LASF67
- 1004 0447 0E       		.sleb128 14
- 1005 0448 0A       		.uleb128 0xa
- 1006 0449 00000000 		.long	.LASF68
- 1007 044d 0F       		.sleb128 15
- 1008 044e 0A       		.uleb128 0xa
- 1009 044f 00000000 		.long	.LASF69
- 1010 0453 10       		.sleb128 16
- 1011 0454 0A       		.uleb128 0xa
- 1012 0455 00000000 		.long	.LASF70
- 1013 0459 11       		.sleb128 17
- 1014 045a 0A       		.uleb128 0xa
- 1015 045b 00000000 		.long	.LASF71
- 1016 045f 12       		.sleb128 18
- 1017 0460 0A       		.uleb128 0xa
- 1018 0461 00000000 		.long	.LASF72
- 1019 0465 13       		.sleb128 19
- 1020 0466 0A       		.uleb128 0xa
- 1021 0467 00000000 		.long	.LASF73
- 1022 046b 14       		.sleb128 20
- 1023 046c 00       		.byte	0x0
- 1024 046d 19       		.uleb128 0x19
- 1025 046e 00000000 		.long	.LASF75
- 1026 0472 04       		.byte	0x4
- 1027 0473 07       		.byte	0x7
- 1028 0474 77       		.byte	0x77
- 1029 0475 F4050000 		.long	0x5f4
- 1030 0479 0A       		.uleb128 0xa
- 1031 047a 00000000 		.long	.LASF76
- 1032 047e 00       		.sleb128 0
- 1033 047f 0A       		.uleb128 0xa
- 1034 0480 00000000 		.long	.LASF77
- 1035 0484 01       		.sleb128 1
- 1036 0485 0A       		.uleb128 0xa
- 1037 0486 00000000 		.long	.LASF78
- 1038 048a 02       		.sleb128 2
- 1039 048b 0A       		.uleb128 0xa
- 1040 048c 00000000 		.long	.LASF79
- 1041 0490 03       		.sleb128 3
- 1042 0491 0A       		.uleb128 0xa
- 1043 0492 00000000 		.long	.LASF80
- 1044 0496 04       		.sleb128 4
- 1045 0497 0A       		.uleb128 0xa
- 1046 0498 00000000 		.long	.LASF81
- 1047 049c 05       		.sleb128 5
- 1048 049d 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIvKeEl.s 			page 26
-
-
- 1049 049e 00000000 		.long	.LASF82
- 1050 04a2 06       		.sleb128 6
- 1051 04a3 0A       		.uleb128 0xa
- 1052 04a4 00000000 		.long	.LASF83
- 1053 04a8 07       		.sleb128 7
- 1054 04a9 0A       		.uleb128 0xa
- 1055 04aa 00000000 		.long	.LASF84
- 1056 04ae 08       		.sleb128 8
- 1057 04af 0A       		.uleb128 0xa
- 1058 04b0 00000000 		.long	.LASF85
- 1059 04b4 09       		.sleb128 9
- 1060 04b5 0A       		.uleb128 0xa
- 1061 04b6 00000000 		.long	.LASF86
- 1062 04ba 0A       		.sleb128 10
- 1063 04bb 0A       		.uleb128 0xa
- 1064 04bc 00000000 		.long	.LASF87
- 1065 04c0 0B       		.sleb128 11
- 1066 04c1 0A       		.uleb128 0xa
- 1067 04c2 00000000 		.long	.LASF88
- 1068 04c6 0C       		.sleb128 12
- 1069 04c7 0A       		.uleb128 0xa
- 1070 04c8 00000000 		.long	.LASF89
- 1071 04cc 0D       		.sleb128 13
- 1072 04cd 0A       		.uleb128 0xa
- 1073 04ce 00000000 		.long	.LASF90
- 1074 04d2 0E       		.sleb128 14
- 1075 04d3 0A       		.uleb128 0xa
- 1076 04d4 00000000 		.long	.LASF91
- 1077 04d8 0F       		.sleb128 15
- 1078 04d9 0A       		.uleb128 0xa
- 1079 04da 00000000 		.long	.LASF92
- 1080 04de 10       		.sleb128 16
- 1081 04df 0A       		.uleb128 0xa
- 1082 04e0 00000000 		.long	.LASF93
- 1083 04e4 11       		.sleb128 17
- 1084 04e5 0A       		.uleb128 0xa
- 1085 04e6 00000000 		.long	.LASF94
- 1086 04ea 12       		.sleb128 18
- 1087 04eb 0A       		.uleb128 0xa
- 1088 04ec 00000000 		.long	.LASF95
- 1089 04f0 13       		.sleb128 19
- 1090 04f1 0A       		.uleb128 0xa
- 1091 04f2 00000000 		.long	.LASF96
- 1092 04f6 14       		.sleb128 20
- 1093 04f7 0A       		.uleb128 0xa
- 1094 04f8 00000000 		.long	.LASF97
- 1095 04fc 15       		.sleb128 21
- 1096 04fd 0A       		.uleb128 0xa
- 1097 04fe 00000000 		.long	.LASF98
- 1098 0502 16       		.sleb128 22
- 1099 0503 0A       		.uleb128 0xa
- 1100 0504 00000000 		.long	.LASF99
- 1101 0508 17       		.sleb128 23
- 1102 0509 0A       		.uleb128 0xa
- 1103 050a 00000000 		.long	.LASF100
- 1104 050e 18       		.sleb128 24
- 1105 050f 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIvKeEl.s 			page 27
-
-
- 1106 0510 00000000 		.long	.LASF101
- 1107 0514 19       		.sleb128 25
- 1108 0515 0A       		.uleb128 0xa
- 1109 0516 00000000 		.long	.LASF102
- 1110 051a 1A       		.sleb128 26
- 1111 051b 0A       		.uleb128 0xa
- 1112 051c 00000000 		.long	.LASF103
- 1113 0520 1B       		.sleb128 27
- 1114 0521 0A       		.uleb128 0xa
- 1115 0522 00000000 		.long	.LASF104
- 1116 0526 1C       		.sleb128 28
- 1117 0527 0A       		.uleb128 0xa
- 1118 0528 00000000 		.long	.LASF105
- 1119 052c 1D       		.sleb128 29
- 1120 052d 0A       		.uleb128 0xa
- 1121 052e 00000000 		.long	.LASF106
- 1122 0532 1E       		.sleb128 30
- 1123 0533 0A       		.uleb128 0xa
- 1124 0534 00000000 		.long	.LASF107
- 1125 0538 1F       		.sleb128 31
- 1126 0539 0A       		.uleb128 0xa
- 1127 053a 00000000 		.long	.LASF108
- 1128 053e 20       		.sleb128 32
- 1129 053f 0A       		.uleb128 0xa
- 1130 0540 00000000 		.long	.LASF109
- 1131 0544 21       		.sleb128 33
- 1132 0545 0A       		.uleb128 0xa
- 1133 0546 00000000 		.long	.LASF110
- 1134 054a 22       		.sleb128 34
- 1135 054b 0A       		.uleb128 0xa
- 1136 054c 00000000 		.long	.LASF111
- 1137 0550 23       		.sleb128 35
- 1138 0551 0A       		.uleb128 0xa
- 1139 0552 00000000 		.long	.LASF112
- 1140 0556 24       		.sleb128 36
- 1141 0557 0A       		.uleb128 0xa
- 1142 0558 00000000 		.long	.LASF113
- 1143 055c 25       		.sleb128 37
- 1144 055d 0A       		.uleb128 0xa
- 1145 055e 00000000 		.long	.LASF114
- 1146 0562 26       		.sleb128 38
- 1147 0563 0A       		.uleb128 0xa
- 1148 0564 00000000 		.long	.LASF115
- 1149 0568 27       		.sleb128 39
- 1150 0569 0A       		.uleb128 0xa
- 1151 056a 00000000 		.long	.LASF116
- 1152 056e 28       		.sleb128 40
- 1153 056f 0A       		.uleb128 0xa
- 1154 0570 00000000 		.long	.LASF117
- 1155 0574 29       		.sleb128 41
- 1156 0575 0A       		.uleb128 0xa
- 1157 0576 00000000 		.long	.LASF118
- 1158 057a 2A       		.sleb128 42
- 1159 057b 0A       		.uleb128 0xa
- 1160 057c 00000000 		.long	.LASF119
- 1161 0580 2B       		.sleb128 43
- 1162 0581 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIvKeEl.s 			page 28
-
-
- 1163 0582 00000000 		.long	.LASF120
- 1164 0586 2C       		.sleb128 44
- 1165 0587 0A       		.uleb128 0xa
- 1166 0588 00000000 		.long	.LASF121
- 1167 058c 2D       		.sleb128 45
- 1168 058d 0A       		.uleb128 0xa
- 1169 058e 00000000 		.long	.LASF122
- 1170 0592 2E       		.sleb128 46
- 1171 0593 0A       		.uleb128 0xa
- 1172 0594 00000000 		.long	.LASF123
- 1173 0598 2F       		.sleb128 47
- 1174 0599 0A       		.uleb128 0xa
- 1175 059a 00000000 		.long	.LASF124
- 1176 059e 30       		.sleb128 48
- 1177 059f 0A       		.uleb128 0xa
- 1178 05a0 00000000 		.long	.LASF125
- 1179 05a4 31       		.sleb128 49
- 1180 05a5 0A       		.uleb128 0xa
- 1181 05a6 00000000 		.long	.LASF126
- 1182 05aa 32       		.sleb128 50
- 1183 05ab 0A       		.uleb128 0xa
- 1184 05ac 00000000 		.long	.LASF127
- 1185 05b0 33       		.sleb128 51
- 1186 05b1 0A       		.uleb128 0xa
- 1187 05b2 00000000 		.long	.LASF128
- 1188 05b6 34       		.sleb128 52
- 1189 05b7 0A       		.uleb128 0xa
- 1190 05b8 00000000 		.long	.LASF129
- 1191 05bc 35       		.sleb128 53
- 1192 05bd 0A       		.uleb128 0xa
- 1193 05be 00000000 		.long	.LASF130
- 1194 05c2 36       		.sleb128 54
- 1195 05c3 0A       		.uleb128 0xa
- 1196 05c4 00000000 		.long	.LASF131
- 1197 05c8 36       		.sleb128 54
- 1198 05c9 0A       		.uleb128 0xa
- 1199 05ca 00000000 		.long	.LASF132
- 1200 05ce 37       		.sleb128 55
- 1201 05cf 0A       		.uleb128 0xa
- 1202 05d0 00000000 		.long	.LASF133
- 1203 05d4 38       		.sleb128 56
- 1204 05d5 0A       		.uleb128 0xa
- 1205 05d6 00000000 		.long	.LASF134
- 1206 05da 39       		.sleb128 57
- 1207 05db 0A       		.uleb128 0xa
- 1208 05dc 00000000 		.long	.LASF135
- 1209 05e0 3A       		.sleb128 58
- 1210 05e1 0A       		.uleb128 0xa
- 1211 05e2 00000000 		.long	.LASF136
- 1212 05e6 3B       		.sleb128 59
- 1213 05e7 0A       		.uleb128 0xa
- 1214 05e8 00000000 		.long	.LASF137
- 1215 05ec 3C       		.sleb128 60
- 1216 05ed 0A       		.uleb128 0xa
- 1217 05ee 00000000 		.long	.LASF138
- 1218 05f2 3D       		.sleb128 61
- 1219 05f3 00       		.byte	0x0
-
GAS LISTING /tmp/ccIvKeEl.s 			page 29
-
-
- 1220 05f4 19       		.uleb128 0x19
- 1221 05f5 00000000 		.long	.LASF139
- 1222 05f9 04       		.byte	0x4
- 1223 05fa 07       		.byte	0x7
- 1224 05fb BD       		.byte	0xbd
- 1225 05fc AA070000 		.long	0x7aa
- 1226 0600 0A       		.uleb128 0xa
- 1227 0601 00000000 		.long	.LASF140
- 1228 0605 00       		.sleb128 0
- 1229 0606 0A       		.uleb128 0xa
- 1230 0607 00000000 		.long	.LASF141
- 1231 060b 01       		.sleb128 1
- 1232 060c 0A       		.uleb128 0xa
- 1233 060d 00000000 		.long	.LASF142
- 1234 0611 02       		.sleb128 2
- 1235 0612 0A       		.uleb128 0xa
- 1236 0613 00000000 		.long	.LASF143
- 1237 0617 03       		.sleb128 3
- 1238 0618 0A       		.uleb128 0xa
- 1239 0619 00000000 		.long	.LASF144
- 1240 061d 04       		.sleb128 4
- 1241 061e 0A       		.uleb128 0xa
- 1242 061f 00000000 		.long	.LASF145
- 1243 0623 05       		.sleb128 5
- 1244 0624 0A       		.uleb128 0xa
- 1245 0625 00000000 		.long	.LASF146
- 1246 0629 06       		.sleb128 6
- 1247 062a 0A       		.uleb128 0xa
- 1248 062b 00000000 		.long	.LASF147
- 1249 062f 07       		.sleb128 7
- 1250 0630 0A       		.uleb128 0xa
- 1251 0631 00000000 		.long	.LASF148
- 1252 0635 08       		.sleb128 8
- 1253 0636 0A       		.uleb128 0xa
- 1254 0637 00000000 		.long	.LASF149
- 1255 063b 09       		.sleb128 9
- 1256 063c 0A       		.uleb128 0xa
- 1257 063d 00000000 		.long	.LASF150
- 1258 0641 0A       		.sleb128 10
- 1259 0642 0A       		.uleb128 0xa
- 1260 0643 00000000 		.long	.LASF151
- 1261 0647 0B       		.sleb128 11
- 1262 0648 0A       		.uleb128 0xa
- 1263 0649 00000000 		.long	.LASF152
- 1264 064d 0C       		.sleb128 12
- 1265 064e 0A       		.uleb128 0xa
- 1266 064f 00000000 		.long	.LASF153
- 1267 0653 0D       		.sleb128 13
- 1268 0654 0A       		.uleb128 0xa
- 1269 0655 00000000 		.long	.LASF154
- 1270 0659 0E       		.sleb128 14
- 1271 065a 0A       		.uleb128 0xa
- 1272 065b 00000000 		.long	.LASF155
- 1273 065f 0F       		.sleb128 15
- 1274 0660 0A       		.uleb128 0xa
- 1275 0661 00000000 		.long	.LASF156
- 1276 0665 10       		.sleb128 16
-
GAS LISTING /tmp/ccIvKeEl.s 			page 30
-
-
- 1277 0666 0A       		.uleb128 0xa
- 1278 0667 00000000 		.long	.LASF157
- 1279 066b 11       		.sleb128 17
- 1280 066c 0A       		.uleb128 0xa
- 1281 066d 00000000 		.long	.LASF158
- 1282 0671 12       		.sleb128 18
- 1283 0672 0A       		.uleb128 0xa
- 1284 0673 00000000 		.long	.LASF159
- 1285 0677 13       		.sleb128 19
- 1286 0678 0A       		.uleb128 0xa
- 1287 0679 00000000 		.long	.LASF160
- 1288 067d 14       		.sleb128 20
- 1289 067e 0A       		.uleb128 0xa
- 1290 067f 00000000 		.long	.LASF161
- 1291 0683 15       		.sleb128 21
- 1292 0684 0A       		.uleb128 0xa
- 1293 0685 00000000 		.long	.LASF162
- 1294 0689 16       		.sleb128 22
- 1295 068a 0A       		.uleb128 0xa
- 1296 068b 00000000 		.long	.LASF163
- 1297 068f 17       		.sleb128 23
- 1298 0690 0A       		.uleb128 0xa
- 1299 0691 00000000 		.long	.LASF164
- 1300 0695 18       		.sleb128 24
- 1301 0696 0A       		.uleb128 0xa
- 1302 0697 00000000 		.long	.LASF165
- 1303 069b 19       		.sleb128 25
- 1304 069c 0A       		.uleb128 0xa
- 1305 069d 00000000 		.long	.LASF166
- 1306 06a1 1A       		.sleb128 26
- 1307 06a2 0A       		.uleb128 0xa
- 1308 06a3 00000000 		.long	.LASF167
- 1309 06a7 1B       		.sleb128 27
- 1310 06a8 0A       		.uleb128 0xa
- 1311 06a9 00000000 		.long	.LASF168
- 1312 06ad 1C       		.sleb128 28
- 1313 06ae 0A       		.uleb128 0xa
- 1314 06af 00000000 		.long	.LASF169
- 1315 06b3 1D       		.sleb128 29
- 1316 06b4 0A       		.uleb128 0xa
- 1317 06b5 00000000 		.long	.LASF170
- 1318 06b9 1E       		.sleb128 30
- 1319 06ba 0A       		.uleb128 0xa
- 1320 06bb 00000000 		.long	.LASF171
- 1321 06bf 1F       		.sleb128 31
- 1322 06c0 0A       		.uleb128 0xa
- 1323 06c1 00000000 		.long	.LASF172
- 1324 06c5 20       		.sleb128 32
- 1325 06c6 0A       		.uleb128 0xa
- 1326 06c7 00000000 		.long	.LASF173
- 1327 06cb 21       		.sleb128 33
- 1328 06cc 0A       		.uleb128 0xa
- 1329 06cd 00000000 		.long	.LASF174
- 1330 06d1 22       		.sleb128 34
- 1331 06d2 0A       		.uleb128 0xa
- 1332 06d3 00000000 		.long	.LASF175
- 1333 06d7 23       		.sleb128 35
-
GAS LISTING /tmp/ccIvKeEl.s 			page 31
-
-
- 1334 06d8 0A       		.uleb128 0xa
- 1335 06d9 00000000 		.long	.LASF176
- 1336 06dd 24       		.sleb128 36
- 1337 06de 0A       		.uleb128 0xa
- 1338 06df 00000000 		.long	.LASF177
- 1339 06e3 25       		.sleb128 37
- 1340 06e4 0A       		.uleb128 0xa
- 1341 06e5 00000000 		.long	.LASF178
- 1342 06e9 26       		.sleb128 38
- 1343 06ea 0A       		.uleb128 0xa
- 1344 06eb 00000000 		.long	.LASF179
- 1345 06ef 27       		.sleb128 39
- 1346 06f0 0A       		.uleb128 0xa
- 1347 06f1 00000000 		.long	.LASF180
- 1348 06f5 28       		.sleb128 40
- 1349 06f6 0A       		.uleb128 0xa
- 1350 06f7 00000000 		.long	.LASF181
- 1351 06fb 29       		.sleb128 41
- 1352 06fc 0A       		.uleb128 0xa
- 1353 06fd 00000000 		.long	.LASF182
- 1354 0701 2A       		.sleb128 42
- 1355 0702 0A       		.uleb128 0xa
- 1356 0703 00000000 		.long	.LASF183
- 1357 0707 2B       		.sleb128 43
- 1358 0708 0A       		.uleb128 0xa
- 1359 0709 00000000 		.long	.LASF184
- 1360 070d 2C       		.sleb128 44
- 1361 070e 0A       		.uleb128 0xa
- 1362 070f 00000000 		.long	.LASF185
- 1363 0713 2D       		.sleb128 45
- 1364 0714 0A       		.uleb128 0xa
- 1365 0715 00000000 		.long	.LASF186
- 1366 0719 2E       		.sleb128 46
- 1367 071a 0A       		.uleb128 0xa
- 1368 071b 00000000 		.long	.LASF187
- 1369 071f 2F       		.sleb128 47
- 1370 0720 0A       		.uleb128 0xa
- 1371 0721 00000000 		.long	.LASF188
- 1372 0725 30       		.sleb128 48
- 1373 0726 0A       		.uleb128 0xa
- 1374 0727 00000000 		.long	.LASF189
- 1375 072b 31       		.sleb128 49
- 1376 072c 0A       		.uleb128 0xa
- 1377 072d 00000000 		.long	.LASF190
- 1378 0731 32       		.sleb128 50
- 1379 0732 0A       		.uleb128 0xa
- 1380 0733 00000000 		.long	.LASF191
- 1381 0737 33       		.sleb128 51
- 1382 0738 0A       		.uleb128 0xa
- 1383 0739 00000000 		.long	.LASF192
- 1384 073d 34       		.sleb128 52
- 1385 073e 0A       		.uleb128 0xa
- 1386 073f 00000000 		.long	.LASF193
- 1387 0743 35       		.sleb128 53
- 1388 0744 0A       		.uleb128 0xa
- 1389 0745 00000000 		.long	.LASF194
- 1390 0749 36       		.sleb128 54
-
GAS LISTING /tmp/ccIvKeEl.s 			page 32
-
-
- 1391 074a 0A       		.uleb128 0xa
- 1392 074b 00000000 		.long	.LASF195
- 1393 074f 37       		.sleb128 55
- 1394 0750 0A       		.uleb128 0xa
- 1395 0751 00000000 		.long	.LASF196
- 1396 0755 38       		.sleb128 56
- 1397 0756 0A       		.uleb128 0xa
- 1398 0757 00000000 		.long	.LASF197
- 1399 075b 39       		.sleb128 57
- 1400 075c 0A       		.uleb128 0xa
- 1401 075d 00000000 		.long	.LASF198
- 1402 0761 3A       		.sleb128 58
- 1403 0762 0A       		.uleb128 0xa
- 1404 0763 00000000 		.long	.LASF199
- 1405 0767 3A       		.sleb128 58
- 1406 0768 0A       		.uleb128 0xa
- 1407 0769 00000000 		.long	.LASF200
- 1408 076d 3B       		.sleb128 59
- 1409 076e 0A       		.uleb128 0xa
- 1410 076f 00000000 		.long	.LASF201
- 1411 0773 3C       		.sleb128 60
- 1412 0774 0A       		.uleb128 0xa
- 1413 0775 00000000 		.long	.LASF202
- 1414 0779 3D       		.sleb128 61
- 1415 077a 0A       		.uleb128 0xa
- 1416 077b 00000000 		.long	.LASF203
- 1417 077f 3E       		.sleb128 62
- 1418 0780 0A       		.uleb128 0xa
- 1419 0781 00000000 		.long	.LASF204
- 1420 0785 3F       		.sleb128 63
- 1421 0786 0A       		.uleb128 0xa
- 1422 0787 00000000 		.long	.LASF205
- 1423 078b C000     		.sleb128 64
- 1424 078d 0A       		.uleb128 0xa
- 1425 078e 00000000 		.long	.LASF206
- 1426 0792 C100     		.sleb128 65
- 1427 0794 0A       		.uleb128 0xa
- 1428 0795 00000000 		.long	.LASF207
- 1429 0799 C200     		.sleb128 66
- 1430 079b 0A       		.uleb128 0xa
- 1431 079c 00000000 		.long	.LASF208
- 1432 07a0 C300     		.sleb128 67
- 1433 07a2 0A       		.uleb128 0xa
- 1434 07a3 00000000 		.long	.LASF209
- 1435 07a7 C400     		.sleb128 68
- 1436 07a9 00       		.byte	0x0
- 1437 07aa 1A       		.uleb128 0x1a
- 1438 07ab 00000000 		.long	.LASF210
- 1439 07af 04       		.byte	0x4
- 1440 07b0 07       		.byte	0x7
- 1441 07b1 0A01     		.value	0x10a
- 1442 07b3 A9080000 		.long	0x8a9
- 1443 07b7 0A       		.uleb128 0xa
- 1444 07b8 00000000 		.long	.LASF211
- 1445 07bc 00       		.sleb128 0
- 1446 07bd 0A       		.uleb128 0xa
- 1447 07be 00000000 		.long	.LASF212
-
GAS LISTING /tmp/ccIvKeEl.s 			page 33
-
-
- 1448 07c2 3D       		.sleb128 61
- 1449 07c3 0A       		.uleb128 0xa
- 1450 07c4 00000000 		.long	.LASF213
- 1451 07c8 3E       		.sleb128 62
- 1452 07c9 0A       		.uleb128 0xa
- 1453 07ca 00000000 		.long	.LASF214
- 1454 07ce 3F       		.sleb128 63
- 1455 07cf 0A       		.uleb128 0xa
- 1456 07d0 00000000 		.long	.LASF215
- 1457 07d4 C000     		.sleb128 64
- 1458 07d6 0A       		.uleb128 0xa
- 1459 07d7 00000000 		.long	.LASF216
- 1460 07db C100     		.sleb128 65
- 1461 07dd 0A       		.uleb128 0xa
- 1462 07de 00000000 		.long	.LASF217
- 1463 07e2 C200     		.sleb128 66
- 1464 07e4 0A       		.uleb128 0xa
- 1465 07e5 00000000 		.long	.LASF218
- 1466 07e9 C300     		.sleb128 67
- 1467 07eb 0A       		.uleb128 0xa
- 1468 07ec 00000000 		.long	.LASF219
- 1469 07f0 C400     		.sleb128 68
- 1470 07f2 0A       		.uleb128 0xa
- 1471 07f3 00000000 		.long	.LASF220
- 1472 07f7 C500     		.sleb128 69
- 1473 07f9 0A       		.uleb128 0xa
- 1474 07fa 00000000 		.long	.LASF221
- 1475 07fe C600     		.sleb128 70
- 1476 0800 0A       		.uleb128 0xa
- 1477 0801 00000000 		.long	.LASF222
- 1478 0805 C700     		.sleb128 71
- 1479 0807 0A       		.uleb128 0xa
- 1480 0808 00000000 		.long	.LASF223
- 1481 080c C800     		.sleb128 72
- 1482 080e 0A       		.uleb128 0xa
- 1483 080f 00000000 		.long	.LASF224
- 1484 0813 C900     		.sleb128 73
- 1485 0815 0A       		.uleb128 0xa
- 1486 0816 00000000 		.long	.LASF225
- 1487 081a CA00     		.sleb128 74
- 1488 081c 0A       		.uleb128 0xa
- 1489 081d 00000000 		.long	.LASF226
- 1490 0821 CB00     		.sleb128 75
- 1491 0823 0A       		.uleb128 0xa
- 1492 0824 00000000 		.long	.LASF227
- 1493 0828 CC00     		.sleb128 76
- 1494 082a 0A       		.uleb128 0xa
- 1495 082b 00000000 		.long	.LASF228
- 1496 082f CD00     		.sleb128 77
- 1497 0831 0A       		.uleb128 0xa
- 1498 0832 00000000 		.long	.LASF229
- 1499 0836 CE00     		.sleb128 78
- 1500 0838 0A       		.uleb128 0xa
- 1501 0839 00000000 		.long	.LASF230
- 1502 083d CF00     		.sleb128 79
- 1503 083f 0A       		.uleb128 0xa
- 1504 0840 00000000 		.long	.LASF231
-
GAS LISTING /tmp/ccIvKeEl.s 			page 34
-
-
- 1505 0844 D000     		.sleb128 80
- 1506 0846 0A       		.uleb128 0xa
- 1507 0847 00000000 		.long	.LASF232
- 1508 084b D100     		.sleb128 81
- 1509 084d 0A       		.uleb128 0xa
- 1510 084e 00000000 		.long	.LASF233
- 1511 0852 D100     		.sleb128 81
- 1512 0854 0A       		.uleb128 0xa
- 1513 0855 00000000 		.long	.LASF234
- 1514 0859 D200     		.sleb128 82
- 1515 085b 0A       		.uleb128 0xa
- 1516 085c 00000000 		.long	.LASF235
- 1517 0860 D300     		.sleb128 83
- 1518 0862 0A       		.uleb128 0xa
- 1519 0863 00000000 		.long	.LASF236
- 1520 0867 D400     		.sleb128 84
- 1521 0869 0A       		.uleb128 0xa
- 1522 086a 00000000 		.long	.LASF237
- 1523 086e D500     		.sleb128 85
- 1524 0870 0A       		.uleb128 0xa
- 1525 0871 00000000 		.long	.LASF238
- 1526 0875 D600     		.sleb128 86
- 1527 0877 0A       		.uleb128 0xa
- 1528 0878 00000000 		.long	.LASF239
- 1529 087c D700     		.sleb128 87
- 1530 087e 0A       		.uleb128 0xa
- 1531 087f 00000000 		.long	.LASF240
- 1532 0883 D800     		.sleb128 88
- 1533 0885 0A       		.uleb128 0xa
- 1534 0886 00000000 		.long	.LASF241
- 1535 088a D900     		.sleb128 89
- 1536 088c 0A       		.uleb128 0xa
- 1537 088d 00000000 		.long	.LASF242
- 1538 0891 DA00     		.sleb128 90
- 1539 0893 0A       		.uleb128 0xa
- 1540 0894 00000000 		.long	.LASF243
- 1541 0898 DB00     		.sleb128 91
- 1542 089a 0A       		.uleb128 0xa
- 1543 089b 00000000 		.long	.LASF244
- 1544 089f DC00     		.sleb128 92
- 1545 08a1 0A       		.uleb128 0xa
- 1546 08a2 00000000 		.long	.LASF245
- 1547 08a6 DD00     		.sleb128 93
- 1548 08a8 00       		.byte	0x0
- 1549 08a9 1A       		.uleb128 0x1a
- 1550 08aa 00000000 		.long	.LASF246
- 1551 08ae 04       		.byte	0x4
- 1552 08af 07       		.byte	0x7
- 1553 08b0 3401     		.value	0x134
- 1554 08b2 E9090000 		.long	0x9e9
- 1555 08b6 0A       		.uleb128 0xa
- 1556 08b7 00000000 		.long	.LASF247
- 1557 08bb 00       		.sleb128 0
- 1558 08bc 0A       		.uleb128 0xa
- 1559 08bd 00000000 		.long	.LASF248
- 1560 08c1 01       		.sleb128 1
- 1561 08c2 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIvKeEl.s 			page 35
-
-
- 1562 08c3 00000000 		.long	.LASF249
- 1563 08c7 02       		.sleb128 2
- 1564 08c8 0A       		.uleb128 0xa
- 1565 08c9 00000000 		.long	.LASF250
- 1566 08cd 03       		.sleb128 3
- 1567 08ce 0A       		.uleb128 0xa
- 1568 08cf 00000000 		.long	.LASF251
- 1569 08d3 04       		.sleb128 4
- 1570 08d4 0A       		.uleb128 0xa
- 1571 08d5 00000000 		.long	.LASF252
- 1572 08d9 05       		.sleb128 5
- 1573 08da 0A       		.uleb128 0xa
- 1574 08db 00000000 		.long	.LASF253
- 1575 08df 06       		.sleb128 6
- 1576 08e0 0A       		.uleb128 0xa
- 1577 08e1 00000000 		.long	.LASF254
- 1578 08e5 07       		.sleb128 7
- 1579 08e6 0A       		.uleb128 0xa
- 1580 08e7 00000000 		.long	.LASF255
- 1581 08eb 08       		.sleb128 8
- 1582 08ec 0A       		.uleb128 0xa
- 1583 08ed 00000000 		.long	.LASF256
- 1584 08f1 09       		.sleb128 9
- 1585 08f2 0A       		.uleb128 0xa
- 1586 08f3 00000000 		.long	.LASF257
- 1587 08f7 0A       		.sleb128 10
- 1588 08f8 0A       		.uleb128 0xa
- 1589 08f9 00000000 		.long	.LASF258
- 1590 08fd 0B       		.sleb128 11
- 1591 08fe 0A       		.uleb128 0xa
- 1592 08ff 00000000 		.long	.LASF259
- 1593 0903 0C       		.sleb128 12
- 1594 0904 0A       		.uleb128 0xa
- 1595 0905 00000000 		.long	.LASF260
- 1596 0909 0D       		.sleb128 13
- 1597 090a 0A       		.uleb128 0xa
- 1598 090b 00000000 		.long	.LASF261
- 1599 090f 0E       		.sleb128 14
- 1600 0910 0A       		.uleb128 0xa
- 1601 0911 00000000 		.long	.LASF262
- 1602 0915 0F       		.sleb128 15
- 1603 0916 0A       		.uleb128 0xa
- 1604 0917 00000000 		.long	.LASF263
- 1605 091b 10       		.sleb128 16
- 1606 091c 0A       		.uleb128 0xa
- 1607 091d 00000000 		.long	.LASF264
- 1608 0921 11       		.sleb128 17
- 1609 0922 0A       		.uleb128 0xa
- 1610 0923 00000000 		.long	.LASF265
- 1611 0927 12       		.sleb128 18
- 1612 0928 0A       		.uleb128 0xa
- 1613 0929 00000000 		.long	.LASF266
- 1614 092d 13       		.sleb128 19
- 1615 092e 0A       		.uleb128 0xa
- 1616 092f 00000000 		.long	.LASF267
- 1617 0933 14       		.sleb128 20
- 1618 0934 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIvKeEl.s 			page 36
-
-
- 1619 0935 00000000 		.long	.LASF268
- 1620 0939 15       		.sleb128 21
- 1621 093a 0A       		.uleb128 0xa
- 1622 093b 00000000 		.long	.LASF269
- 1623 093f 16       		.sleb128 22
- 1624 0940 0A       		.uleb128 0xa
- 1625 0941 00000000 		.long	.LASF270
- 1626 0945 17       		.sleb128 23
- 1627 0946 0A       		.uleb128 0xa
- 1628 0947 00000000 		.long	.LASF271
- 1629 094b 18       		.sleb128 24
- 1630 094c 0A       		.uleb128 0xa
- 1631 094d 00000000 		.long	.LASF272
- 1632 0951 19       		.sleb128 25
- 1633 0952 0A       		.uleb128 0xa
- 1634 0953 00000000 		.long	.LASF273
- 1635 0957 1A       		.sleb128 26
- 1636 0958 0A       		.uleb128 0xa
- 1637 0959 00000000 		.long	.LASF274
- 1638 095d 1B       		.sleb128 27
- 1639 095e 0A       		.uleb128 0xa
- 1640 095f 00000000 		.long	.LASF275
- 1641 0963 1C       		.sleb128 28
- 1642 0964 0A       		.uleb128 0xa
- 1643 0965 00000000 		.long	.LASF276
- 1644 0969 1D       		.sleb128 29
- 1645 096a 0A       		.uleb128 0xa
- 1646 096b 00000000 		.long	.LASF277
- 1647 096f 1E       		.sleb128 30
- 1648 0970 0A       		.uleb128 0xa
- 1649 0971 00000000 		.long	.LASF278
- 1650 0975 1F       		.sleb128 31
- 1651 0976 0A       		.uleb128 0xa
- 1652 0977 00000000 		.long	.LASF279
- 1653 097b 20       		.sleb128 32
- 1654 097c 0A       		.uleb128 0xa
- 1655 097d 00000000 		.long	.LASF280
- 1656 0981 21       		.sleb128 33
- 1657 0982 0A       		.uleb128 0xa
- 1658 0983 00000000 		.long	.LASF281
- 1659 0987 22       		.sleb128 34
- 1660 0988 0A       		.uleb128 0xa
- 1661 0989 00000000 		.long	.LASF282
- 1662 098d 23       		.sleb128 35
- 1663 098e 0A       		.uleb128 0xa
- 1664 098f 00000000 		.long	.LASF283
- 1665 0993 24       		.sleb128 36
- 1666 0994 0A       		.uleb128 0xa
- 1667 0995 00000000 		.long	.LASF284
- 1668 0999 25       		.sleb128 37
- 1669 099a 0A       		.uleb128 0xa
- 1670 099b 00000000 		.long	.LASF285
- 1671 099f 26       		.sleb128 38
- 1672 09a0 0A       		.uleb128 0xa
- 1673 09a1 00000000 		.long	.LASF286
- 1674 09a5 27       		.sleb128 39
- 1675 09a6 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIvKeEl.s 			page 37
-
-
- 1676 09a7 00000000 		.long	.LASF287
- 1677 09ab 28       		.sleb128 40
- 1678 09ac 0A       		.uleb128 0xa
- 1679 09ad 00000000 		.long	.LASF288
- 1680 09b1 29       		.sleb128 41
- 1681 09b2 0A       		.uleb128 0xa
- 1682 09b3 00000000 		.long	.LASF289
- 1683 09b7 29       		.sleb128 41
- 1684 09b8 0A       		.uleb128 0xa
- 1685 09b9 00000000 		.long	.LASF290
- 1686 09bd 2A       		.sleb128 42
- 1687 09be 0A       		.uleb128 0xa
- 1688 09bf 00000000 		.long	.LASF291
- 1689 09c3 2B       		.sleb128 43
- 1690 09c4 0A       		.uleb128 0xa
- 1691 09c5 00000000 		.long	.LASF292
- 1692 09c9 2C       		.sleb128 44
- 1693 09ca 0A       		.uleb128 0xa
- 1694 09cb 00000000 		.long	.LASF293
- 1695 09cf 2D       		.sleb128 45
- 1696 09d0 0A       		.uleb128 0xa
- 1697 09d1 00000000 		.long	.LASF294
- 1698 09d5 2E       		.sleb128 46
- 1699 09d6 0A       		.uleb128 0xa
- 1700 09d7 00000000 		.long	.LASF295
- 1701 09db 2F       		.sleb128 47
- 1702 09dc 0A       		.uleb128 0xa
- 1703 09dd 00000000 		.long	.LASF296
- 1704 09e1 30       		.sleb128 48
- 1705 09e2 0A       		.uleb128 0xa
- 1706 09e3 00000000 		.long	.LASF297
- 1707 09e7 31       		.sleb128 49
- 1708 09e8 00       		.byte	0x0
- 1709 09e9 1B       		.uleb128 0x1b
- 1710 09ea 00000000 		.long	.LASF320
- 1711 09ee 01       		.byte	0x1
- 1712 09ef 48       		.byte	0x48
- 1713 09f0 01       		.byte	0x1
- 1714 09f1 00000000 		.quad	.LFB513
- 1714      00000000 
- 1715 09f9 00000000 		.quad	.LFE513
- 1715      00000000 
- 1716 0a01 00000000 		.long	.LLST0
- 1717 0a05 180A0000 		.long	0xa18
- 1718 0a09 1C       		.uleb128 0x1c
- 1719 0a0a 00000000 		.long	.LASF300
- 1720 0a0e 01       		.byte	0x1
- 1721 0a0f 48       		.byte	0x48
- 1722 0a10 82030000 		.long	0x382
- 1723 0a14 02       		.byte	0x2
- 1724 0a15 91       		.byte	0x91
- 1725 0a16 68       		.sleb128 -24
- 1726 0a17 00       		.byte	0x0
- 1727 0a18 1D       		.uleb128 0x1d
- 1728 0a19 00000000 		.long	.LASF298
- 1729 0a1d 01       		.byte	0x1
- 1730 0a1e 52       		.byte	0x52
-
GAS LISTING /tmp/ccIvKeEl.s 			page 38
-
-
- 1731 0a1f 62000000 		.long	0x62
- 1732 0a23 00000000 		.quad	.LFB514
- 1732      00000000 
- 1733 0a2b 00000000 		.quad	.LFE514
- 1733      00000000 
- 1734 0a33 00000000 		.long	.LLST1
- 1735 0a37 1D       		.uleb128 0x1d
- 1736 0a38 00000000 		.long	.LASF299
- 1737 0a3c 01       		.byte	0x1
- 1738 0a3d 60       		.byte	0x60
- 1739 0a3e 62000000 		.long	0x62
- 1740 0a42 00000000 		.quad	.LFB515
- 1740      00000000 
- 1741 0a4a 00000000 		.quad	.LFE515
- 1741      00000000 
- 1742 0a52 00000000 		.long	.LLST2
- 1743 0a56 1E       		.uleb128 0x1e
- 1744 0a57 00000000 		.long	.LASF304
- 1745 0a5b 01       		.byte	0x1
- 1746 0a5c 6C       		.byte	0x6c
- 1747 0a5d 01       		.byte	0x1
- 1748 0a5e 7B000000 		.long	0x7b
- 1749 0a62 00000000 		.quad	.LFB516
- 1749      00000000 
- 1750 0a6a 00000000 		.quad	.LFE516
- 1750      00000000 
- 1751 0a72 00000000 		.long	.LLST3
- 1752 0a76 A50A0000 		.long	0xaa5
- 1753 0a7a 1C       		.uleb128 0x1c
- 1754 0a7b 00000000 		.long	.LASF301
- 1755 0a7f 01       		.byte	0x1
- 1756 0a80 6C       		.byte	0x6c
- 1757 0a81 86000000 		.long	0x86
- 1758 0a85 02       		.byte	0x2
- 1759 0a86 91       		.byte	0x91
- 1760 0a87 68       		.sleb128 -24
- 1761 0a88 1C       		.uleb128 0x1c
- 1762 0a89 00000000 		.long	.LASF302
- 1763 0a8d 01       		.byte	0x1
- 1764 0a8e 6C       		.byte	0x6c
- 1765 0a8f 8B000000 		.long	0x8b
- 1766 0a93 02       		.byte	0x2
- 1767 0a94 91       		.byte	0x91
- 1768 0a95 60       		.sleb128 -32
- 1769 0a96 1C       		.uleb128 0x1c
- 1770 0a97 00000000 		.long	.LASF303
- 1771 0a9b 01       		.byte	0x1
- 1772 0a9c 6D       		.byte	0x6d
- 1773 0a9d 62000000 		.long	0x62
- 1774 0aa1 02       		.byte	0x2
- 1775 0aa2 91       		.byte	0x91
- 1776 0aa3 5C       		.sleb128 -36
- 1777 0aa4 00       		.byte	0x0
- 1778 0aa5 1E       		.uleb128 0x1e
- 1779 0aa6 00000000 		.long	.LASF305
- 1780 0aaa 01       		.byte	0x1
- 1781 0aab 79       		.byte	0x79
-
GAS LISTING /tmp/ccIvKeEl.s 			page 39
-
-
- 1782 0aac 01       		.byte	0x1
- 1783 0aad 7B000000 		.long	0x7b
- 1784 0ab1 00000000 		.quad	.LFB517
- 1784      00000000 
- 1785 0ab9 00000000 		.quad	.LFE517
- 1785      00000000 
- 1786 0ac1 00000000 		.long	.LLST4
- 1787 0ac5 F40A0000 		.long	0xaf4
- 1788 0ac9 1C       		.uleb128 0x1c
- 1789 0aca 00000000 		.long	.LASF306
- 1790 0ace 01       		.byte	0x1
- 1791 0acf 79       		.byte	0x79
- 1792 0ad0 86000000 		.long	0x86
- 1793 0ad4 02       		.byte	0x2
- 1794 0ad5 91       		.byte	0x91
- 1795 0ad6 68       		.sleb128 -24
- 1796 0ad7 1C       		.uleb128 0x1c
- 1797 0ad8 00000000 		.long	.LASF302
- 1798 0adc 01       		.byte	0x1
- 1799 0add 7A       		.byte	0x7a
- 1800 0ade 8B000000 		.long	0x8b
- 1801 0ae2 02       		.byte	0x2
- 1802 0ae3 91       		.byte	0x91
- 1803 0ae4 60       		.sleb128 -32
- 1804 0ae5 1C       		.uleb128 0x1c
- 1805 0ae6 00000000 		.long	.LASF303
- 1806 0aea 01       		.byte	0x1
- 1807 0aeb 7B       		.byte	0x7b
- 1808 0aec 62000000 		.long	0x62
- 1809 0af0 02       		.byte	0x2
- 1810 0af1 91       		.byte	0x91
- 1811 0af2 5C       		.sleb128 -36
- 1812 0af3 00       		.byte	0x0
- 1813 0af4 1E       		.uleb128 0x1e
- 1814 0af5 00000000 		.long	.LASF307
- 1815 0af9 01       		.byte	0x1
- 1816 0afa 89       		.byte	0x89
- 1817 0afb 01       		.byte	0x1
- 1818 0afc 63010000 		.long	0x163
- 1819 0b00 00000000 		.quad	.LFB518
- 1819      00000000 
- 1820 0b08 00000000 		.quad	.LFE518
- 1820      00000000 
- 1821 0b10 00000000 		.long	.LLST5
- 1822 0b14 350B0000 		.long	0xb35
- 1823 0b18 1C       		.uleb128 0x1c
- 1824 0b19 00000000 		.long	.LASF308
- 1825 0b1d 01       		.byte	0x1
- 1826 0b1e 89       		.byte	0x89
- 1827 0b1f 63010000 		.long	0x163
- 1828 0b23 02       		.byte	0x2
- 1829 0b24 91       		.byte	0x91
- 1830 0b25 60       		.sleb128 -32
- 1831 0b26 1C       		.uleb128 0x1c
- 1832 0b27 00000000 		.long	.LASF301
- 1833 0b2b 01       		.byte	0x1
- 1834 0b2c 8A       		.byte	0x8a
-
GAS LISTING /tmp/ccIvKeEl.s 			page 40
-
-
- 1835 0b2d 1E010000 		.long	0x11e
- 1836 0b31 02       		.byte	0x2
- 1837 0b32 91       		.byte	0x91
- 1838 0b33 58       		.sleb128 -40
- 1839 0b34 00       		.byte	0x0
- 1840 0b35 1E       		.uleb128 0x1e
- 1841 0b36 00000000 		.long	.LASF309
- 1842 0b3a 01       		.byte	0x1
- 1843 0b3b 9E       		.byte	0x9e
- 1844 0b3c 01       		.byte	0x1
- 1845 0b3d 63010000 		.long	0x163
- 1846 0b41 00000000 		.quad	.LFB519
- 1846      00000000 
- 1847 0b49 00000000 		.quad	.LFE519
- 1847      00000000 
- 1848 0b51 00000000 		.long	.LLST6
- 1849 0b55 760B0000 		.long	0xb76
- 1850 0b59 1C       		.uleb128 0x1c
- 1851 0b5a 00000000 		.long	.LASF308
- 1852 0b5e 01       		.byte	0x1
- 1853 0b5f 9E       		.byte	0x9e
- 1854 0b60 63010000 		.long	0x163
- 1855 0b64 02       		.byte	0x2
- 1856 0b65 91       		.byte	0x91
- 1857 0b66 60       		.sleb128 -32
- 1858 0b67 1C       		.uleb128 0x1c
- 1859 0b68 00000000 		.long	.LASF306
- 1860 0b6c 01       		.byte	0x1
- 1861 0b6d 9F       		.byte	0x9f
- 1862 0b6e 1E010000 		.long	0x11e
- 1863 0b72 02       		.byte	0x2
- 1864 0b73 91       		.byte	0x91
- 1865 0b74 58       		.sleb128 -40
- 1866 0b75 00       		.byte	0x0
- 1867 0b76 1D       		.uleb128 0x1d
- 1868 0b77 00000000 		.long	.LASF310
- 1869 0b7b 01       		.byte	0x1
- 1870 0b7c B3       		.byte	0xb3
- 1871 0b7d 950B0000 		.long	0xb95
- 1872 0b81 00000000 		.quad	.LFB520
- 1872      00000000 
- 1873 0b89 00000000 		.quad	.LFE520
- 1873      00000000 
- 1874 0b91 00000000 		.long	.LLST7
- 1875 0b95 02       		.uleb128 0x2
- 1876 0b96 01       		.byte	0x1
- 1877 0b97 02       		.byte	0x2
- 1878 0b98 00000000 		.long	.LASF311
- 1879 0b9c 1F       		.uleb128 0x1f
- 1880 0b9d 01       		.byte	0x1
- 1881 0b9e 00000000 		.long	.LASF321
- 1882 0ba2 01       		.byte	0x1
- 1883 0ba3 E2       		.byte	0xe2
- 1884 0ba4 01       		.byte	0x1
- 1885 0ba5 7B000000 		.long	0x7b
- 1886 0ba9 00000000 		.quad	.LFB521
- 1886      00000000 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 41
-
-
- 1887 0bb1 00000000 		.quad	.LFE521
- 1887      00000000 
- 1888 0bb9 00000000 		.long	.LLST8
- 1889 0bbd 050C0000 		.long	0xc05
- 1890 0bc1 1C       		.uleb128 0x1c
- 1891 0bc2 00000000 		.long	.LASF312
- 1892 0bc6 01       		.byte	0x1
- 1893 0bc7 E2       		.byte	0xe2
- 1894 0bc8 050C0000 		.long	0xc05
- 1895 0bcc 02       		.byte	0x2
- 1896 0bcd 91       		.byte	0x91
- 1897 0bce 58       		.sleb128 -40
- 1898 0bcf 20       		.uleb128 0x20
- 1899 0bd0 726300   		.string	"rc"
- 1900 0bd3 01       		.byte	0x1
- 1901 0bd4 E4       		.byte	0xe4
- 1902 0bd5 7B000000 		.long	0x7b
- 1903 0bd9 02       		.byte	0x2
- 1904 0bda 91       		.byte	0x91
- 1905 0bdb 6C       		.sleb128 -20
- 1906 0bdc 21       		.uleb128 0x21
- 1907 0bdd 00000000 		.long	.LASF313
- 1908 0be1 210C0000 		.long	0xc21
- 1909 0be5 01       		.byte	0x1
- 1910 0be6 09       		.byte	0x9
- 1911 0be7 03       		.byte	0x3
- 1912 0be8 00000000 		.quad	__PRETTY_FUNCTION__.6557
- 1912      00000000 
- 1913 0bf0 21       		.uleb128 0x21
- 1914 0bf1 00000000 		.long	.LASF314
- 1915 0bf5 260C0000 		.long	0xc26
- 1916 0bf9 01       		.byte	0x1
- 1917 0bfa 09       		.byte	0x9
- 1918 0bfb 03       		.byte	0x3
- 1919 0bfc 00000000 		.quad	__func__.6558
- 1919      00000000 
- 1920 0c04 00       		.byte	0x0
- 1921 0c05 07       		.uleb128 0x7
- 1922 0c06 08       		.byte	0x8
- 1923 0c07 0B0C0000 		.long	0xc0b
- 1924 0c0b 07       		.uleb128 0x7
- 1925 0c0c 08       		.byte	0x8
- 1926 0c0d AE030000 		.long	0x3ae
- 1927 0c11 22       		.uleb128 0x22
- 1928 0c12 96000000 		.long	0x96
- 1929 0c16 210C0000 		.long	0xc21
- 1930 0c1a 0D       		.uleb128 0xd
- 1931 0c1b 88000000 		.long	0x88
- 1932 0c1f 17       		.byte	0x17
- 1933 0c20 00       		.byte	0x0
- 1934 0c21 08       		.uleb128 0x8
- 1935 0c22 110C0000 		.long	0xc11
- 1936 0c26 08       		.uleb128 0x8
- 1937 0c27 110C0000 		.long	0xc11
- 1938 0c2b 22       		.uleb128 0x22
- 1939 0c2c 96000000 		.long	0x96
- 1940 0c30 3B0C0000 		.long	0xc3b
-
GAS LISTING /tmp/ccIvKeEl.s 			page 42
-
-
- 1941 0c34 0D       		.uleb128 0xd
- 1942 0c35 88000000 		.long	0x88
- 1943 0c39 09       		.byte	0x9
- 1944 0c3a 00       		.byte	0x0
- 1945 0c3b 23       		.uleb128 0x23
- 1946 0c3c 00000000 		.long	.LASF315
- 1947 0c40 01       		.byte	0x1
- 1948 0c41 3C       		.byte	0x3c
- 1949 0c42 500C0000 		.long	0xc50
- 1950 0c46 09       		.byte	0x9
- 1951 0c47 03       		.byte	0x3
- 1952 0c48 00000000 		.quad	KNullBlockCipherVecaes_ncbi_name
- 1952      00000000 
- 1953 0c50 08       		.uleb128 0x8
- 1954 0c51 2B0C0000 		.long	0xc2b
- 1955 0c55 23       		.uleb128 0x23
- 1956 0c56 00000000 		.long	.LASF316
- 1957 0c5a 01       		.byte	0x1
- 1958 0c5b CE       		.byte	0xce
- 1959 0c5c 6A0C0000 		.long	0xc6a
- 1960 0c60 09       		.byte	0x9
- 1961 0c61 03       		.byte	0x3
- 1962 0c62 00000000 		.quad	KNullBlockCipherVec_vt_
- 1962      00000000 
- 1963 0c6a 08       		.uleb128 0x8
- 1964 0c6b C1020000 		.long	0x2c1
- 1965 0c6f 00       		.byte	0x0
- 1966              		.section	.debug_abbrev
- 1967 0000 01       		.uleb128 0x1
- 1968 0001 11       		.uleb128 0x11
- 1969 0002 01       		.byte	0x1
- 1970 0003 25       		.uleb128 0x25
- 1971 0004 0E       		.uleb128 0xe
- 1972 0005 13       		.uleb128 0x13
- 1973 0006 0B       		.uleb128 0xb
- 1974 0007 03       		.uleb128 0x3
- 1975 0008 0E       		.uleb128 0xe
- 1976 0009 1B       		.uleb128 0x1b
- 1977 000a 0E       		.uleb128 0xe
- 1978 000b 11       		.uleb128 0x11
- 1979 000c 01       		.uleb128 0x1
- 1980 000d 12       		.uleb128 0x12
- 1981 000e 01       		.uleb128 0x1
- 1982 000f 10       		.uleb128 0x10
- 1983 0010 06       		.uleb128 0x6
- 1984 0011 00       		.byte	0x0
- 1985 0012 00       		.byte	0x0
- 1986 0013 02       		.uleb128 0x2
- 1987 0014 24       		.uleb128 0x24
- 1988 0015 00       		.byte	0x0
- 1989 0016 0B       		.uleb128 0xb
- 1990 0017 0B       		.uleb128 0xb
- 1991 0018 3E       		.uleb128 0x3e
- 1992 0019 0B       		.uleb128 0xb
- 1993 001a 03       		.uleb128 0x3
- 1994 001b 0E       		.uleb128 0xe
- 1995 001c 00       		.byte	0x0
-
GAS LISTING /tmp/ccIvKeEl.s 			page 43
-
-
- 1996 001d 00       		.byte	0x0
- 1997 001e 03       		.uleb128 0x3
- 1998 001f 24       		.uleb128 0x24
- 1999 0020 00       		.byte	0x0
- 2000 0021 0B       		.uleb128 0xb
- 2001 0022 0B       		.uleb128 0xb
- 2002 0023 3E       		.uleb128 0x3e
- 2003 0024 0B       		.uleb128 0xb
- 2004 0025 03       		.uleb128 0x3
- 2005 0026 08       		.uleb128 0x8
- 2006 0027 00       		.byte	0x0
- 2007 0028 00       		.byte	0x0
- 2008 0029 04       		.uleb128 0x4
- 2009 002a 16       		.uleb128 0x16
- 2010 002b 00       		.byte	0x0
- 2011 002c 03       		.uleb128 0x3
- 2012 002d 0E       		.uleb128 0xe
- 2013 002e 3A       		.uleb128 0x3a
- 2014 002f 0B       		.uleb128 0xb
- 2015 0030 3B       		.uleb128 0x3b
- 2016 0031 0B       		.uleb128 0xb
- 2017 0032 49       		.uleb128 0x49
- 2018 0033 13       		.uleb128 0x13
- 2019 0034 00       		.byte	0x0
- 2020 0035 00       		.byte	0x0
- 2021 0036 05       		.uleb128 0x5
- 2022 0037 0F       		.uleb128 0xf
- 2023 0038 00       		.byte	0x0
- 2024 0039 0B       		.uleb128 0xb
- 2025 003a 0B       		.uleb128 0xb
- 2026 003b 00       		.byte	0x0
- 2027 003c 00       		.byte	0x0
- 2028 003d 06       		.uleb128 0x6
- 2029 003e 24       		.uleb128 0x24
- 2030 003f 00       		.byte	0x0
- 2031 0040 0B       		.uleb128 0xb
- 2032 0041 0B       		.uleb128 0xb
- 2033 0042 3E       		.uleb128 0x3e
- 2034 0043 0B       		.uleb128 0xb
- 2035 0044 00       		.byte	0x0
- 2036 0045 00       		.byte	0x0
- 2037 0046 07       		.uleb128 0x7
- 2038 0047 0F       		.uleb128 0xf
- 2039 0048 00       		.byte	0x0
- 2040 0049 0B       		.uleb128 0xb
- 2041 004a 0B       		.uleb128 0xb
- 2042 004b 49       		.uleb128 0x49
- 2043 004c 13       		.uleb128 0x13
- 2044 004d 00       		.byte	0x0
- 2045 004e 00       		.byte	0x0
- 2046 004f 08       		.uleb128 0x8
- 2047 0050 26       		.uleb128 0x26
- 2048 0051 00       		.byte	0x0
- 2049 0052 49       		.uleb128 0x49
- 2050 0053 13       		.uleb128 0x13
- 2051 0054 00       		.byte	0x0
- 2052 0055 00       		.byte	0x0
-
GAS LISTING /tmp/ccIvKeEl.s 			page 44
-
-
- 2053 0056 09       		.uleb128 0x9
- 2054 0057 04       		.uleb128 0x4
- 2055 0058 01       		.byte	0x1
- 2056 0059 0B       		.uleb128 0xb
- 2057 005a 0B       		.uleb128 0xb
- 2058 005b 3A       		.uleb128 0x3a
- 2059 005c 0B       		.uleb128 0xb
- 2060 005d 3B       		.uleb128 0x3b
- 2061 005e 0B       		.uleb128 0xb
- 2062 005f 01       		.uleb128 0x1
- 2063 0060 13       		.uleb128 0x13
- 2064 0061 00       		.byte	0x0
- 2065 0062 00       		.byte	0x0
- 2066 0063 0A       		.uleb128 0xa
- 2067 0064 28       		.uleb128 0x28
- 2068 0065 00       		.byte	0x0
- 2069 0066 03       		.uleb128 0x3
- 2070 0067 0E       		.uleb128 0xe
- 2071 0068 1C       		.uleb128 0x1c
- 2072 0069 0D       		.uleb128 0xd
- 2073 006a 00       		.byte	0x0
- 2074 006b 00       		.byte	0x0
- 2075 006c 0B       		.uleb128 0xb
- 2076 006d 26       		.uleb128 0x26
- 2077 006e 00       		.byte	0x0
- 2078 006f 00       		.byte	0x0
- 2079 0070 00       		.byte	0x0
- 2080 0071 0C       		.uleb128 0xc
- 2081 0072 01       		.uleb128 0x1
- 2082 0073 01       		.byte	0x1
- 2083 0074 8742     		.uleb128 0x2107
- 2084 0076 0C       		.uleb128 0xc
- 2085 0077 49       		.uleb128 0x49
- 2086 0078 13       		.uleb128 0x13
- 2087 0079 01       		.uleb128 0x1
- 2088 007a 13       		.uleb128 0x13
- 2089 007b 00       		.byte	0x0
- 2090 007c 00       		.byte	0x0
- 2091 007d 0D       		.uleb128 0xd
- 2092 007e 21       		.uleb128 0x21
- 2093 007f 00       		.byte	0x0
- 2094 0080 49       		.uleb128 0x49
- 2095 0081 13       		.uleb128 0x13
- 2096 0082 2F       		.uleb128 0x2f
- 2097 0083 0B       		.uleb128 0xb
- 2098 0084 00       		.byte	0x0
- 2099 0085 00       		.byte	0x0
- 2100 0086 0E       		.uleb128 0xe
- 2101 0087 13       		.uleb128 0x13
- 2102 0088 01       		.byte	0x1
- 2103 0089 03       		.uleb128 0x3
- 2104 008a 0E       		.uleb128 0xe
- 2105 008b 0B       		.uleb128 0xb
- 2106 008c 0B       		.uleb128 0xb
- 2107 008d 3A       		.uleb128 0x3a
- 2108 008e 0B       		.uleb128 0xb
- 2109 008f 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/ccIvKeEl.s 			page 45
-
-
- 2110 0090 0B       		.uleb128 0xb
- 2111 0091 01       		.uleb128 0x1
- 2112 0092 13       		.uleb128 0x13
- 2113 0093 00       		.byte	0x0
- 2114 0094 00       		.byte	0x0
- 2115 0095 0F       		.uleb128 0xf
- 2116 0096 0D       		.uleb128 0xd
- 2117 0097 00       		.byte	0x0
- 2118 0098 03       		.uleb128 0x3
- 2119 0099 08       		.uleb128 0x8
- 2120 009a 3A       		.uleb128 0x3a
- 2121 009b 0B       		.uleb128 0xb
- 2122 009c 3B       		.uleb128 0x3b
- 2123 009d 0B       		.uleb128 0xb
- 2124 009e 49       		.uleb128 0x49
- 2125 009f 13       		.uleb128 0x13
- 2126 00a0 38       		.uleb128 0x38
- 2127 00a1 0A       		.uleb128 0xa
- 2128 00a2 00       		.byte	0x0
- 2129 00a3 00       		.byte	0x0
- 2130 00a4 10       		.uleb128 0x10
- 2131 00a5 0D       		.uleb128 0xd
- 2132 00a6 00       		.byte	0x0
- 2133 00a7 03       		.uleb128 0x3
- 2134 00a8 0E       		.uleb128 0xe
- 2135 00a9 3A       		.uleb128 0x3a
- 2136 00aa 0B       		.uleb128 0xb
- 2137 00ab 3B       		.uleb128 0x3b
- 2138 00ac 0B       		.uleb128 0xb
- 2139 00ad 49       		.uleb128 0x49
- 2140 00ae 13       		.uleb128 0x13
- 2141 00af 38       		.uleb128 0x38
- 2142 00b0 0A       		.uleb128 0xa
- 2143 00b1 00       		.byte	0x0
- 2144 00b2 00       		.byte	0x0
- 2145 00b3 11       		.uleb128 0x11
- 2146 00b4 17       		.uleb128 0x17
- 2147 00b5 01       		.byte	0x1
- 2148 00b6 03       		.uleb128 0x3
- 2149 00b7 0E       		.uleb128 0xe
- 2150 00b8 0B       		.uleb128 0xb
- 2151 00b9 0B       		.uleb128 0xb
- 2152 00ba 3A       		.uleb128 0x3a
- 2153 00bb 0B       		.uleb128 0xb
- 2154 00bc 3B       		.uleb128 0x3b
- 2155 00bd 0B       		.uleb128 0xb
- 2156 00be 01       		.uleb128 0x1
- 2157 00bf 13       		.uleb128 0x13
- 2158 00c0 00       		.byte	0x0
- 2159 00c1 00       		.byte	0x0
- 2160 00c2 12       		.uleb128 0x12
- 2161 00c3 0D       		.uleb128 0xd
- 2162 00c4 00       		.byte	0x0
- 2163 00c5 03       		.uleb128 0x3
- 2164 00c6 0E       		.uleb128 0xe
- 2165 00c7 3A       		.uleb128 0x3a
- 2166 00c8 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccIvKeEl.s 			page 46
-
-
- 2167 00c9 3B       		.uleb128 0x3b
- 2168 00ca 0B       		.uleb128 0xb
- 2169 00cb 49       		.uleb128 0x49
- 2170 00cc 13       		.uleb128 0x13
- 2171 00cd 00       		.byte	0x0
- 2172 00ce 00       		.byte	0x0
- 2173 00cf 13       		.uleb128 0x13
- 2174 00d0 0D       		.uleb128 0xd
- 2175 00d1 00       		.byte	0x0
- 2176 00d2 03       		.uleb128 0x3
- 2177 00d3 08       		.uleb128 0x8
- 2178 00d4 3A       		.uleb128 0x3a
- 2179 00d5 0B       		.uleb128 0xb
- 2180 00d6 3B       		.uleb128 0x3b
- 2181 00d7 0B       		.uleb128 0xb
- 2182 00d8 49       		.uleb128 0x49
- 2183 00d9 13       		.uleb128 0x13
- 2184 00da 00       		.byte	0x0
- 2185 00db 00       		.byte	0x0
- 2186 00dc 14       		.uleb128 0x14
- 2187 00dd 15       		.uleb128 0x15
- 2188 00de 01       		.byte	0x1
- 2189 00df 27       		.uleb128 0x27
- 2190 00e0 0C       		.uleb128 0xc
- 2191 00e1 01       		.uleb128 0x1
- 2192 00e2 13       		.uleb128 0x13
- 2193 00e3 00       		.byte	0x0
- 2194 00e4 00       		.byte	0x0
- 2195 00e5 15       		.uleb128 0x15
- 2196 00e6 05       		.uleb128 0x5
- 2197 00e7 00       		.byte	0x0
- 2198 00e8 49       		.uleb128 0x49
- 2199 00e9 13       		.uleb128 0x13
- 2200 00ea 00       		.byte	0x0
- 2201 00eb 00       		.byte	0x0
- 2202 00ec 16       		.uleb128 0x16
- 2203 00ed 15       		.uleb128 0x15
- 2204 00ee 01       		.byte	0x1
- 2205 00ef 49       		.uleb128 0x49
- 2206 00f0 13       		.uleb128 0x13
- 2207 00f1 01       		.uleb128 0x1
- 2208 00f2 13       		.uleb128 0x13
- 2209 00f3 00       		.byte	0x0
- 2210 00f4 00       		.byte	0x0
- 2211 00f5 17       		.uleb128 0x17
- 2212 00f6 18       		.uleb128 0x18
- 2213 00f7 00       		.byte	0x0
- 2214 00f8 00       		.byte	0x0
- 2215 00f9 00       		.byte	0x0
- 2216 00fa 18       		.uleb128 0x18
- 2217 00fb 15       		.uleb128 0x15
- 2218 00fc 01       		.byte	0x1
- 2219 00fd 27       		.uleb128 0x27
- 2220 00fe 0C       		.uleb128 0xc
- 2221 00ff 49       		.uleb128 0x49
- 2222 0100 13       		.uleb128 0x13
- 2223 0101 01       		.uleb128 0x1
-
GAS LISTING /tmp/ccIvKeEl.s 			page 47
-
-
- 2224 0102 13       		.uleb128 0x13
- 2225 0103 00       		.byte	0x0
- 2226 0104 00       		.byte	0x0
- 2227 0105 19       		.uleb128 0x19
- 2228 0106 04       		.uleb128 0x4
- 2229 0107 01       		.byte	0x1
- 2230 0108 03       		.uleb128 0x3
- 2231 0109 0E       		.uleb128 0xe
- 2232 010a 0B       		.uleb128 0xb
- 2233 010b 0B       		.uleb128 0xb
- 2234 010c 3A       		.uleb128 0x3a
- 2235 010d 0B       		.uleb128 0xb
- 2236 010e 3B       		.uleb128 0x3b
- 2237 010f 0B       		.uleb128 0xb
- 2238 0110 01       		.uleb128 0x1
- 2239 0111 13       		.uleb128 0x13
- 2240 0112 00       		.byte	0x0
- 2241 0113 00       		.byte	0x0
- 2242 0114 1A       		.uleb128 0x1a
- 2243 0115 04       		.uleb128 0x4
- 2244 0116 01       		.byte	0x1
- 2245 0117 03       		.uleb128 0x3
- 2246 0118 0E       		.uleb128 0xe
- 2247 0119 0B       		.uleb128 0xb
- 2248 011a 0B       		.uleb128 0xb
- 2249 011b 3A       		.uleb128 0x3a
- 2250 011c 0B       		.uleb128 0xb
- 2251 011d 3B       		.uleb128 0x3b
- 2252 011e 05       		.uleb128 0x5
- 2253 011f 01       		.uleb128 0x1
- 2254 0120 13       		.uleb128 0x13
- 2255 0121 00       		.byte	0x0
- 2256 0122 00       		.byte	0x0
- 2257 0123 1B       		.uleb128 0x1b
- 2258 0124 2E       		.uleb128 0x2e
- 2259 0125 01       		.byte	0x1
- 2260 0126 03       		.uleb128 0x3
- 2261 0127 0E       		.uleb128 0xe
- 2262 0128 3A       		.uleb128 0x3a
- 2263 0129 0B       		.uleb128 0xb
- 2264 012a 3B       		.uleb128 0x3b
- 2265 012b 0B       		.uleb128 0xb
- 2266 012c 27       		.uleb128 0x27
- 2267 012d 0C       		.uleb128 0xc
- 2268 012e 11       		.uleb128 0x11
- 2269 012f 01       		.uleb128 0x1
- 2270 0130 12       		.uleb128 0x12
- 2271 0131 01       		.uleb128 0x1
- 2272 0132 40       		.uleb128 0x40
- 2273 0133 06       		.uleb128 0x6
- 2274 0134 01       		.uleb128 0x1
- 2275 0135 13       		.uleb128 0x13
- 2276 0136 00       		.byte	0x0
- 2277 0137 00       		.byte	0x0
- 2278 0138 1C       		.uleb128 0x1c
- 2279 0139 05       		.uleb128 0x5
- 2280 013a 00       		.byte	0x0
-
GAS LISTING /tmp/ccIvKeEl.s 			page 48
-
-
- 2281 013b 03       		.uleb128 0x3
- 2282 013c 0E       		.uleb128 0xe
- 2283 013d 3A       		.uleb128 0x3a
- 2284 013e 0B       		.uleb128 0xb
- 2285 013f 3B       		.uleb128 0x3b
- 2286 0140 0B       		.uleb128 0xb
- 2287 0141 49       		.uleb128 0x49
- 2288 0142 13       		.uleb128 0x13
- 2289 0143 02       		.uleb128 0x2
- 2290 0144 0A       		.uleb128 0xa
- 2291 0145 00       		.byte	0x0
- 2292 0146 00       		.byte	0x0
- 2293 0147 1D       		.uleb128 0x1d
- 2294 0148 2E       		.uleb128 0x2e
- 2295 0149 00       		.byte	0x0
- 2296 014a 03       		.uleb128 0x3
- 2297 014b 0E       		.uleb128 0xe
- 2298 014c 3A       		.uleb128 0x3a
- 2299 014d 0B       		.uleb128 0xb
- 2300 014e 3B       		.uleb128 0x3b
- 2301 014f 0B       		.uleb128 0xb
- 2302 0150 49       		.uleb128 0x49
- 2303 0151 13       		.uleb128 0x13
- 2304 0152 11       		.uleb128 0x11
- 2305 0153 01       		.uleb128 0x1
- 2306 0154 12       		.uleb128 0x12
- 2307 0155 01       		.uleb128 0x1
- 2308 0156 40       		.uleb128 0x40
- 2309 0157 06       		.uleb128 0x6
- 2310 0158 00       		.byte	0x0
- 2311 0159 00       		.byte	0x0
- 2312 015a 1E       		.uleb128 0x1e
- 2313 015b 2E       		.uleb128 0x2e
- 2314 015c 01       		.byte	0x1
- 2315 015d 03       		.uleb128 0x3
- 2316 015e 0E       		.uleb128 0xe
- 2317 015f 3A       		.uleb128 0x3a
- 2318 0160 0B       		.uleb128 0xb
- 2319 0161 3B       		.uleb128 0x3b
- 2320 0162 0B       		.uleb128 0xb
- 2321 0163 27       		.uleb128 0x27
- 2322 0164 0C       		.uleb128 0xc
- 2323 0165 49       		.uleb128 0x49
- 2324 0166 13       		.uleb128 0x13
- 2325 0167 11       		.uleb128 0x11
- 2326 0168 01       		.uleb128 0x1
- 2327 0169 12       		.uleb128 0x12
- 2328 016a 01       		.uleb128 0x1
- 2329 016b 40       		.uleb128 0x40
- 2330 016c 06       		.uleb128 0x6
- 2331 016d 01       		.uleb128 0x1
- 2332 016e 13       		.uleb128 0x13
- 2333 016f 00       		.byte	0x0
- 2334 0170 00       		.byte	0x0
- 2335 0171 1F       		.uleb128 0x1f
- 2336 0172 2E       		.uleb128 0x2e
- 2337 0173 01       		.byte	0x1
-
GAS LISTING /tmp/ccIvKeEl.s 			page 49
-
-
- 2338 0174 3F       		.uleb128 0x3f
- 2339 0175 0C       		.uleb128 0xc
- 2340 0176 03       		.uleb128 0x3
- 2341 0177 0E       		.uleb128 0xe
- 2342 0178 3A       		.uleb128 0x3a
- 2343 0179 0B       		.uleb128 0xb
- 2344 017a 3B       		.uleb128 0x3b
- 2345 017b 0B       		.uleb128 0xb
- 2346 017c 27       		.uleb128 0x27
- 2347 017d 0C       		.uleb128 0xc
- 2348 017e 49       		.uleb128 0x49
- 2349 017f 13       		.uleb128 0x13
- 2350 0180 11       		.uleb128 0x11
- 2351 0181 01       		.uleb128 0x1
- 2352 0182 12       		.uleb128 0x12
- 2353 0183 01       		.uleb128 0x1
- 2354 0184 40       		.uleb128 0x40
- 2355 0185 06       		.uleb128 0x6
- 2356 0186 01       		.uleb128 0x1
- 2357 0187 13       		.uleb128 0x13
- 2358 0188 00       		.byte	0x0
- 2359 0189 00       		.byte	0x0
- 2360 018a 20       		.uleb128 0x20
- 2361 018b 34       		.uleb128 0x34
- 2362 018c 00       		.byte	0x0
- 2363 018d 03       		.uleb128 0x3
- 2364 018e 08       		.uleb128 0x8
- 2365 018f 3A       		.uleb128 0x3a
- 2366 0190 0B       		.uleb128 0xb
- 2367 0191 3B       		.uleb128 0x3b
- 2368 0192 0B       		.uleb128 0xb
- 2369 0193 49       		.uleb128 0x49
- 2370 0194 13       		.uleb128 0x13
- 2371 0195 02       		.uleb128 0x2
- 2372 0196 0A       		.uleb128 0xa
- 2373 0197 00       		.byte	0x0
- 2374 0198 00       		.byte	0x0
- 2375 0199 21       		.uleb128 0x21
- 2376 019a 34       		.uleb128 0x34
- 2377 019b 00       		.byte	0x0
- 2378 019c 03       		.uleb128 0x3
- 2379 019d 0E       		.uleb128 0xe
- 2380 019e 49       		.uleb128 0x49
- 2381 019f 13       		.uleb128 0x13
- 2382 01a0 34       		.uleb128 0x34
- 2383 01a1 0C       		.uleb128 0xc
- 2384 01a2 02       		.uleb128 0x2
- 2385 01a3 0A       		.uleb128 0xa
- 2386 01a4 00       		.byte	0x0
- 2387 01a5 00       		.byte	0x0
- 2388 01a6 22       		.uleb128 0x22
- 2389 01a7 01       		.uleb128 0x1
- 2390 01a8 01       		.byte	0x1
- 2391 01a9 49       		.uleb128 0x49
- 2392 01aa 13       		.uleb128 0x13
- 2393 01ab 01       		.uleb128 0x1
- 2394 01ac 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccIvKeEl.s 			page 50
-
-
- 2395 01ad 00       		.byte	0x0
- 2396 01ae 00       		.byte	0x0
- 2397 01af 23       		.uleb128 0x23
- 2398 01b0 34       		.uleb128 0x34
- 2399 01b1 00       		.byte	0x0
- 2400 01b2 03       		.uleb128 0x3
- 2401 01b3 0E       		.uleb128 0xe
- 2402 01b4 3A       		.uleb128 0x3a
- 2403 01b5 0B       		.uleb128 0xb
- 2404 01b6 3B       		.uleb128 0x3b
- 2405 01b7 0B       		.uleb128 0xb
- 2406 01b8 49       		.uleb128 0x49
- 2407 01b9 13       		.uleb128 0x13
- 2408 01ba 02       		.uleb128 0x2
- 2409 01bb 0A       		.uleb128 0xa
- 2410 01bc 00       		.byte	0x0
- 2411 01bd 00       		.byte	0x0
- 2412 01be 00       		.byte	0x0
- 2413              		.section	.debug_pubnames,"", at progbits
- 2414 0000 2A000000 		.long	0x2a
- 2415 0004 0200     		.value	0x2
- 2416 0006 00000000 		.long	.Ldebug_info0
- 2417 000a 700C0000 		.long	0xc70
- 2418 000e 9C0B0000 		.long	0xb9c
- 2419 0012 4B4E756C 		.string	"KNullBlockCipherVecMake"
- 2419      6C426C6F 
- 2419      636B4369 
- 2419      70686572 
- 2419      5665634D 
- 2420 002a 00000000 		.long	0x0
- 2421              		.section	.debug_aranges,"", at progbits
- 2422 0000 2C000000 		.long	0x2c
- 2423 0004 0200     		.value	0x2
- 2424 0006 00000000 		.long	.Ldebug_info0
- 2425 000a 08       		.byte	0x8
- 2426 000b 00       		.byte	0x0
- 2427 000c 0000     		.value	0x0
- 2428 000e 0000     		.value	0x0
- 2429 0010 00000000 		.quad	.Ltext0
- 2429      00000000 
- 2430 0018 0C010000 		.quad	.Letext0-.Ltext0
- 2430      00000000 
- 2431 0020 00000000 		.quad	0x0
- 2431      00000000 
- 2432 0028 00000000 		.quad	0x0
- 2432      00000000 
- 2433              		.section	.debug_str,"MS", at progbits,1
- 2434              	.LASF267:
- 2435 0000 7263496E 		.string	"rcInsufficient"
- 2435      73756666 
- 2435      69636965 
- 2435      6E7400
- 2436              	.LASF284:
- 2437 000f 72634475 		.string	"rcDuplicate"
- 2437      706C6963 
- 2437      61746500 
- 2438              	.LASF87:
-
GAS LISTING /tmp/ccIvKeEl.s 			page 51
-
-
- 2439 001b 7263436F 		.string	"rcCondition"
- 2439      6E646974 
- 2439      696F6E00 
- 2440              	.LASF201:
- 2441 0027 7263456E 		.string	"rcEncrypting"
- 2441      63727970 
- 2441      74696E67 
- 2441      00
- 2442              	.LASF160:
- 2443 0034 72634F70 		.string	"rcOpening"
- 2443      656E696E 
- 2443      6700
- 2444              	.LASF168:
- 2445 003e 72635065 		.string	"rcPersisting"
- 2445      72736973 
- 2445      74696E67 
- 2445      00
- 2446              	.LASF206:
- 2447 004b 72635365 		.string	"rcSending"
- 2447      6E64696E 
- 2447      6700
- 2448              	.LASF200:
- 2449 0055 72634170 		.string	"rcAppending"
- 2449      70656E64 
- 2449      696E6700 
- 2450              	.LASF186:
- 2451 0061 72635369 		.string	"rcSignaling"
- 2451      676E616C 
- 2451      696E6700 
- 2452              	.LASF13:
- 2453 006d 4442475F 		.string	"DBG_BLAST"
- 2453      424C4153 
- 2453      5400
- 2454              	.LASF242:
- 2455 0077 72635369 		.string	"rcSignalSet"
- 2455      676E616C 
- 2455      53657400 
- 2456              	.LASF188:
- 2457 0083 72634174 		.string	"rcAttaching"
- 2457      74616368 
- 2457      696E6700 
- 2458              	.LASF120:
- 2459 008f 72635461 		.string	"rcTable"
- 2459      626C6500 
- 2460              	.LASF84:
- 2461 0097 72634275 		.string	"rcBuffer"
- 2461      66666572 
- 2461      00
- 2462              	.LASF216:
- 2463 00a0 72634D65 		.string	"rcMemory"
- 2463      6D6F7279 
- 2463      00
- 2464              	.LASF149:
- 2465 00a9 72634C6F 		.string	"rcLocking"
- 2465      636B696E 
- 2465      6700
- 2466              	.LASF184:
-
GAS LISTING /tmp/ccIvKeEl.s 			page 52
-
-
- 2467 00b3 72635061 		.string	"rcParsing"
- 2467      7273696E 
- 2467      6700
- 2468              	.LASF213:
- 2469 00bd 72635365 		.string	"rcSelf"
- 2469      6C6600
- 2470              	.LASF106:
- 2471 00c4 72634D65 		.string	"rcMetadata"
- 2471      74616461 
- 2471      746100
- 2472              	.LASF229:
- 2473 00cf 72634172 		.string	"rcArcHardLink"
- 2473      63486172 
- 2473      644C696E 
- 2473      6B00
- 2474              	.LASF55:
- 2475 00dd 7263436F 		.string	"rcCont"
- 2475      6E7400
- 2476              	.LASF237:
- 2477 00e4 72634368 		.string	"rcChecksum"
- 2477      65636B73 
- 2477      756D00
- 2478              	.LASF314:
- 2479 00ef 5F5F6675 		.string	"__func__"
- 2479      6E635F5F 
- 2479      00
- 2480              	.LASF281:
- 2481 00f8 7263546F 		.string	"rcTooShort"
- 2481      6F53686F 
- 2481      727400
- 2482              	.LASF111:
- 2483 0103 72635061 		.string	"rcPagemap"
- 2483      67656D61 
- 2483      7000
- 2484              	.LASF63:
- 2485 010d 72634170 		.string	"rcApp"
- 2485      7000
- 2486              	.LASF94:
- 2487 0113 72634669 		.string	"rcFileDesc"
- 2487      6C654465 
- 2487      736300
- 2488              	.LASF233:
- 2489 011e 72634974 		.string	"rcItem"
- 2489      656D00
- 2490              	.LASF125:
- 2491 0125 72635472 		.string	"rcTrie"
- 2491      696500
- 2492              	.LASF66:
- 2493 012c 72634C61 		.string	"rcLastModule_v1_0"
- 2493      73744D6F 
- 2493      64756C65 
- 2493      5F76315F 
- 2493      3000
- 2494              	.LASF73:
- 2495 013e 72634C61 		.string	"rcLastModule_v1_1"
- 2495      73744D6F 
- 2495      64756C65 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 53
-
-
- 2495      5F76315F 
- 2495      3100
- 2496              	.LASF224:
- 2497 0150 72634279 		.string	"rcByteOrder"
- 2497      74654F72 
- 2497      64657200 
- 2498              	.LASF142:
- 2499 015c 7263436F 		.string	"rcConstructing"
- 2499      6E737472 
- 2499      75637469 
- 2499      6E6700
- 2500              	.LASF313:
- 2501 016b 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 2501      45545459 
- 2501      5F46554E 
- 2501      4354494F 
- 2501      4E5F5F00 
- 2502              	.LASF9:
- 2503 017f 72635F74 		.string	"rc_t"
- 2503      00
- 2504              	.LASF218:
- 2505 0184 7263466F 		.string	"rcFormat"
- 2505      726D6174 
- 2505      00
- 2506              	.LASF276:
- 2507 018d 7263556E 		.string	"rcUnauthorized"
- 2507      61757468 
- 2507      6F72697A 
- 2507      656400
- 2508              	.LASF156:
- 2509 019c 72635265 		.string	"rcRemoving"
- 2509      6D6F7669 
- 2509      6E6700
- 2510              	.LASF69:
- 2511 01a7 72634B72 		.string	"rcKrypto"
- 2511      7970746F 
- 2511      00
- 2512              	.LASF309:
- 2513 01b0 4B4E756C 		.string	"KNullBlockCipherVecDecrypt"
- 2513      6C426C6F 
- 2513      636B4369 
- 2513      70686572 
- 2513      56656344 
- 2514              	.LASF147:
- 2515 01cb 72635669 		.string	"rcVisiting"
- 2515      73697469 
- 2515      6E6700
- 2516              	.LASF77:
- 2517 01d6 72634172 		.string	"rcArc"
- 2517      6300
- 2518              	.LASF52:
- 2519 01dc 72634578 		.string	"rcExe"
- 2519      6500
- 2520              	.LASF282:
- 2521 01e2 7263546F 		.string	"rcTooLong"
- 2521      6F4C6F6E 
- 2521      6700
-
GAS LISTING /tmp/ccIvKeEl.s 			page 54
-
-
- 2522              	.LASF210:
- 2523 01ec 52434F62 		.string	"RCObject"
- 2523      6A656374 
- 2523      00
- 2524              	.LASF220:
- 2525 01f5 7263496E 		.string	"rcInterface"
- 2525      74657266 
- 2525      61636500 
- 2526              	.LASF148:
- 2527 0201 72635265 		.string	"rcResolving"
- 2527      736F6C76 
- 2527      696E6700 
- 2528              	.LASF90:
- 2529 020d 72634469 		.string	"rcDirectory"
- 2529      72656374 
- 2529      6F727900 
- 2530              	.LASF2:
- 2531 0219 6C6F6E67 		.string	"long int"
- 2531      20696E74 
- 2531      00
- 2532              	.LASF178:
- 2533 0222 72635661 		.string	"rcValidating"
- 2533      6C696461 
- 2533      74696E67 
- 2533      00
- 2534              	.LASF80:
- 2535 022f 72634172 		.string	"rcArgv"
- 2535      677600
- 2536              	.LASF56:
- 2537 0236 72634353 		.string	"rcCS"
- 2537      00
- 2538              	.LASF137:
- 2539 023b 72635572 		.string	"rcUri"
- 2539      6900
- 2540              	.LASF159:
- 2541 0241 72634372 		.string	"rcCreating"
- 2541      65617469 
- 2541      6E6700
- 2542              	.LASF45:
- 2543 024c 656E6372 		.string	"encrypt"
- 2543      79707400 
- 2544              	.LASF35:
- 2545 0254 76313238 		.string	"v128_u8_t"
- 2545      5F75385F 
- 2545      7400
- 2546              	.LASF18:
- 2547 025e 4442475F 		.string	"DBG_XML"
- 2547      584D4C00 
- 2548              	.LASF30:
- 2549 0266 4442475F 		.string	"DBG_MOD_COUNT"
- 2549      4D4F445F 
- 2549      434F554E 
- 2549      5400
- 2550              	.LASF61:
- 2551 0274 72634442 		.string	"rcDB"
- 2551      00
- 2552              	.LASF307:
-
GAS LISTING /tmp/ccIvKeEl.s 			page 55
-
-
- 2553 0279 4B4E756C 		.string	"KNullBlockCipherVecEncrypt"
- 2553      6C426C6F 
- 2553      636B4369 
- 2553      70686572 
- 2553      56656345 
- 2554              	.LASF239:
- 2555 0294 7263436F 		.string	"rcConnection"
- 2555      6E6E6563 
- 2555      74696F6E 
- 2555      00
- 2556              	.LASF107:
- 2557 02a1 72634D67 		.string	"rcMgr"
- 2557      7200
- 2558              	.LASF269:
- 2559 02a7 72635669 		.string	"rcViolated"
- 2559      6F6C6174 
- 2559      656400
- 2560              	.LASF202:
- 2561 02b2 72634465 		.string	"rcDecrypting"
- 2561      63727970 
- 2561      74696E67 
- 2561      00
- 2562              	.LASF0:
- 2563 02bf 7369676E 		.string	"signed char"
- 2563      65642063 
- 2563      68617200 
- 2564              	.LASF5:
- 2565 02cb 75696E74 		.string	"uint8_t"
- 2565      385F7400 
- 2566              	.LASF320:
- 2567 02d3 4B4E756C 		.string	"KNullBlockCipherVecDestroy"
- 2567      6C426C6F 
- 2567      636B4369 
- 2567      70686572 
- 2567      56656344 
- 2568              	.LASF85:
- 2569 02ee 72634368 		.string	"rcChar"
- 2569      617200
- 2570              	.LASF70:
- 2571 02f5 72635244 		.string	"rcRDBMS"
- 2571      424D5300 
- 2572              	.LASF179:
- 2573 02fd 72634578 		.string	"rcExecuting"
- 2573      65637574 
- 2573      696E6700 
- 2574              	.LASF306:
- 2575 0309 64656372 		.string	"decrypt_key"
- 2575      7970745F 
- 2575      6B657900 
- 2576              	.LASF11:
- 2577 0315 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 2577      4D4F445F 
- 2577      4E4F545F 
- 2577      464F554E 
- 2577      4400
- 2578              	.LASF166:
- 2579 0327 72635265 		.string	"rcReverting"
-
GAS LISTING /tmp/ccIvKeEl.s 			page 56
-
-
- 2579      76657274 
- 2579      696E6700 
- 2580              	.LASF82:
- 2581 0333 72634261 		.string	"rcBarrier"
- 2581      72726965 
- 2581      7200
- 2582              	.LASF266:
- 2583 033d 72634578 		.string	"rcExhausted"
- 2583      68617573 
- 2583      74656400 
- 2584              	.LASF3:
- 2585 0349 756E7369 		.string	"unsigned char"
- 2585      676E6564 
- 2585      20636861 
- 2585      7200
- 2586              	.LASF139:
- 2587 0357 5243436F 		.string	"RCContext"
- 2587      6E746578 
- 2587      7400
- 2588              	.LASF102:
- 2589 0361 72634C6F 		.string	"rcLock"
- 2589      636B00
- 2590              	.LASF255:
- 2591 0368 72634261 		.string	"rcBadVersion"
- 2591      64566572 
- 2591      73696F6E 
- 2591      00
- 2592              	.LASF256:
- 2593 0375 72634465 		.string	"rcDestroyed"
- 2593      7374726F 
- 2593      79656400 
- 2594              	.LASF119:
- 2595 0381 72635374 		.string	"rcString"
- 2595      72696E67 
- 2595      00
- 2596              	.LASF315:
- 2597 038a 4B4E756C 		.string	"KNullBlockCipherVecaes_ncbi_name"
- 2597      6C426C6F 
- 2597      636B4369 
- 2597      70686572 
- 2597      56656361 
- 2598              	.LASF81:
- 2599 03ab 72634174 		.string	"rcAttr"
- 2599      747200
- 2600              	.LASF103:
- 2601 03b2 72634C6F 		.string	"rcLog"
- 2601      6700
- 2602              	.LASF312:
- 2603 03b8 6E65775F 		.string	"new_obj"
- 2603      6F626A00 
- 2604              	.LASF14:
- 2605 03c0 4442475F 		.string	"DBG_KDB"
- 2605      4B444200 
- 2606              	.LASF207:
- 2607 03c8 72635072 		.string	"rcProcessing"
- 2607      6F636573 
- 2607      73696E67 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 57
-
-
- 2607      00
- 2608              	.LASF57:
- 2609 03d5 72634646 		.string	"rcFF"
- 2609      00
- 2610              	.LASF311:
- 2611 03da 5F426F6F 		.string	"_Bool"
- 2611      6C00
- 2612              	.LASF58:
- 2613 03e0 72634653 		.string	"rcFS"
- 2613      00
- 2614              	.LASF145:
- 2615 03e5 72634163 		.string	"rcAccessing"
- 2615      63657373 
- 2615      696E6700 
- 2616              	.LASF263:
- 2617 03f1 7263496E 		.string	"rcInterrupted"
- 2617      74657272 
- 2617      75707465 
- 2617      6400
- 2618              	.LASF271:
- 2619 03ff 72634E6F 		.string	"rcNotFound"
- 2619      74466F75 
- 2619      6E6400
- 2620              	.LASF10:
- 2621 040a 63686172 		.string	"char"
- 2621      00
- 2622              	.LASF109:
- 2623 040f 72634E6F 		.string	"rcNode"
- 2623      646500
- 2624              	.LASF28:
- 2625 0416 4442475F 		.string	"DBG_AES"
- 2625      41455300 
- 2626              	.LASF240:
- 2627 041e 72634572 		.string	"rcError"
- 2627      726F7200 
- 2628              	.LASF157:
- 2629 0426 7263436C 		.string	"rcClearing"
- 2629      65617269 
- 2629      6E6700
- 2630              	.LASF215:
- 2631 0431 72634F66 		.string	"rcOffset"
- 2631      66736574 
- 2631      00
- 2632              	.LASF161:
- 2633 043a 7263436C 		.string	"rcClosing"
- 2633      6F73696E 
- 2633      6700
- 2634              	.LASF93:
- 2635 0444 72634669 		.string	"rcFile"
- 2635      6C6500
- 2636              	.LASF122:
- 2637 044b 72635469 		.string	"rcTimeout"
- 2637      6D656F75 
- 2637      7400
- 2638              	.LASF110:
- 2639 0455 72634E75 		.string	"rcNumeral"
- 2639      6D657261 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 58
-
-
- 2639      6C00
- 2640              	.LASF187:
- 2641 045f 72635761 		.string	"rcWaiting"
- 2641      6974696E 
- 2641      6700
- 2642              	.LASF191:
- 2643 0469 72634650 		.string	"rcFPCoding"
- 2643      436F6469 
- 2643      6E6700
- 2644              	.LASF243:
- 2645 0474 72635369 		.string	"rcSize"
- 2645      7A6500
- 2646              	.LASF228:
- 2647 047b 72634469 		.string	"rcDirEntry"
- 2647      72456E74 
- 2647      727900
- 2648              	.LASF180:
- 2649 0486 72634875 		.string	"rcHuffmanCoding"
- 2649      66666D61 
- 2649      6E436F64 
- 2649      696E6700 
- 2650              	.LASF23:
- 2651 0496 4442475F 		.string	"DBG_KFG"
- 2651      4B464700 
- 2652              	.LASF261:
- 2653 049e 72634275 		.string	"rcBusy"
- 2653      737900
- 2654              	.LASF20:
- 2655 04a5 4442475F 		.string	"DBG_SRA"
- 2655      53524100 
- 2656              	.LASF219:
- 2657 04ad 72635472 		.string	"rcTransfer"
- 2657      616E7366 
- 2657      657200
- 2658              	.LASF17:
- 2659 04b8 4442475F 		.string	"DBG_KFS"
- 2659      4B465300 
- 2660              	.LASF174:
- 2661 04c0 72635061 		.string	"rcPacking"
- 2661      636B696E 
- 2661      6700
- 2662              	.LASF170:
- 2663 04ca 7263436F 		.string	"rcCopying"
- 2663      7079696E 
- 2663      6700
- 2664              	.LASF177:
- 2665 04d4 72634465 		.string	"rcDecoding"
- 2665      636F6469 
- 2665      6E6700
- 2666              	.LASF150:
- 2667 04df 7263556E 		.string	"rcUnlocking"
- 2667      6C6F636B 
- 2667      696E6700 
- 2668              	.LASF48:
- 2669 04eb 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 2669      636B4369 
- 2669      70686572 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 59
-
-
- 2669      5665635F 
- 2669      76745F76 
- 2670              	.LASF16:
- 2671 0501 4442475F 		.string	"DBG_LEGREF"
- 2671      4C454752 
- 2671      454600
- 2672              	.LASF298:
- 2673 050c 4B4E756C 		.string	"KNullBlockCipherVecBlockSize"
- 2673      6C426C6F 
- 2673      636B4369 
- 2673      70686572 
- 2673      56656342 
- 2674              	.LASF151:
- 2675 0529 72635265 		.string	"rcRenaming"
- 2675      6E616D69 
- 2675      6E6700
- 2676              	.LASF302:
- 2677 0534 75736572 		.string	"user_key"
- 2677      5F6B6579 
- 2677      00
- 2678              	.LASF221:
- 2679 053d 72634964 		.string	"rcId"
- 2679      00
- 2680              	.LASF134:
- 2681 0542 7263436D 		.string	"rcCmd"
- 2681      6400
- 2682              	.LASF26:
- 2683 0548 4442475F 		.string	"DBG_LOADLIB"
- 2683      4C4F4144 
- 2683      4C494200 
- 2684              	.LASF273:
- 2685 0554 7263556E 		.string	"rcUnlocked"
- 2685      6C6F636B 
- 2685      656400
- 2686              	.LASF74:
- 2687 055f 52434D6F 		.string	"RCModule"
- 2687      64756C65 
- 2687      00
- 2688              	.LASF235:
- 2689 0568 7263456E 		.string	"rcEncryption"
- 2689      63727970 
- 2689      74696F6E 
- 2689      00
- 2690              	.LASF270:
- 2691 0575 72634578 		.string	"rcExists"
- 2691      69737473 
- 2691      00
- 2692              	.LASF36:
- 2693 057e 43697068 		.string	"CipherVec"
- 2693      65725665 
- 2693      6300
- 2694              	.LASF289:
- 2695 0588 72634F70 		.string	"rcOpen"
- 2695      656E00
- 2696              	.LASF275:
- 2697 058f 72634465 		.string	"rcDeadlock"
- 2697      61646C6F 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 60
-
-
- 2697      636B00
- 2698              	.LASF212:
- 2699 059a 72634C69 		.string	"rcLink"
- 2699      6E6B00
- 2700              	.LASF199:
- 2701 05a1 7263466C 		.string	"rcFlushing"
- 2701      75736869 
- 2701      6E6700
- 2702              	.LASF247:
- 2703 05ac 72634E6F 		.string	"rcNoErr"
- 2703      45727200 
- 2704              	.LASF226:
- 2705 05b4 72635461 		.string	"rcTag"
- 2705      6700
- 2706              	.LASF22:
- 2707 05ba 4442475F 		.string	"DBG_ALIGN"
- 2707      414C4947 
- 2707      4E00
- 2708              	.LASF190:
- 2709 05c4 72634C6F 		.string	"rcLogging"
- 2709      6767696E 
- 2709      6700
- 2710              	.LASF283:
- 2711 05ce 7263546F 		.string	"rcTooBig"
- 2711      6F426967 
- 2711      00
- 2712              	.LASF127:
- 2713 05d7 72635665 		.string	"rcVector"
- 2713      63746F72 
- 2713      00
- 2714              	.LASF162:
- 2715 05e0 72635265 		.string	"rcResizing"
- 2715      73697A69 
- 2715      6E6700
- 2716              	.LASF136:
- 2717 05eb 72635175 		.string	"rcQuery"
- 2717      65727900 
- 2718              	.LASF8:
- 2719 05f3 6C6F6E67 		.string	"long unsigned int"
- 2719      20756E73 
- 2719      69676E65 
- 2719      6420696E 
- 2719      7400
- 2720              	.LASF268:
- 2721 0605 72634578 		.string	"rcExcessive"
- 2721      63657373 
- 2721      69766500 
- 2722              	.LASF196:
- 2723 0611 72634576 		.string	"rcEvaluating"
- 2723      616C7561 
- 2723      74696E67 
- 2723      00
- 2724              	.LASF133:
- 2725 061e 7263526E 		.string	"rcRng"
- 2725      6700
- 2726              	.LASF141:
- 2727 0624 72634361 		.string	"rcCasting"
-
GAS LISTING /tmp/ccIvKeEl.s 			page 61
-
-
- 2727      7374696E 
- 2727      6700
- 2728              	.LASF300:
- 2729 062e 73656C66 		.string	"self"
- 2729      00
- 2730              	.LASF101:
- 2731 0633 72634974 		.string	"rcIterator"
- 2731      65726174 
- 2731      6F7200
- 2732              	.LASF49:
- 2733 063e 4B426C6F 		.string	"KBlockCipherVec"
- 2733      636B4369 
- 2733      70686572 
- 2733      56656300 
- 2734              	.LASF118:
- 2735 064e 72635374 		.string	"rcStorage"
- 2735      6F726167 
- 2735      6500
- 2736              	.LASF285:
- 2737 0658 72634F75 		.string	"rcOutOfKDirectory"
- 2737      744F664B 
- 2737      44697265 
- 2737      63746F72 
- 2737      7900
- 2738              	.LASF230:
- 2739 066a 7263526F 		.string	"rcRow"
- 2739      7700
- 2740              	.LASF19:
- 2741 0670 4442475F 		.string	"DBG_VDB"
- 2741      56444200 
- 2742              	.LASF130:
- 2743 0678 72634C61 		.string	"rcLastTarget_v1_0"
- 2743      73745461 
- 2743      72676574 
- 2743      5F76315F 
- 2743      3000
- 2744              	.LASF138:
- 2745 068a 72634C61 		.string	"rcLastTarget_v1_1"
- 2745      73745461 
- 2745      72676574 
- 2745      5F76315F 
- 2745      3100
- 2746              	.LASF117:
- 2747 069c 72635365 		.string	"rcSemaphore"
- 2747      6D617068 
- 2747      6F726500 
- 2748              	.LASF262:
- 2749 06a8 7263496E 		.string	"rcIncomplete"
- 2749      636F6D70 
- 2749      6C657465 
- 2749      00
- 2750              	.LASF291:
- 2751 06b5 72634E6F 		.string	"rcNotOpen"
- 2751      744F7065 
- 2751      6E00
- 2752              	.LASF100:
- 2753 06bf 7263496E 		.string	"rcIndex"
-
GAS LISTING /tmp/ccIvKeEl.s 			page 62
-
-
- 2753      64657800 
- 2754              	.LASF21:
- 2755 06c7 4442475F 		.string	"DBG_XARC"
- 2755      58415243 
- 2755      00
- 2756              	.LASF317:
- 2757 06d0 474E5520 		.string	"GNU C 4.4.2"
- 2757      4320342E 
- 2757      342E3200 
- 2758              	.LASF53:
- 2759 06dc 72635275 		.string	"rcRuntime"
- 2759      6E74696D 
- 2759      6500
- 2760              	.LASF92:
- 2761 06e6 7263586D 		.string	"rcXmlDoc"
- 2761      6C446F63 
- 2761      00
- 2762              	.LASF31:
- 2763 06ef 6C6F6E67 		.string	"long long int"
- 2763      206C6F6E 
- 2763      6720696E 
- 2763      7400
- 2764              	.LASF173:
- 2765 06fd 7263506F 		.string	"rcPositioning"
- 2765      73697469 
- 2765      6F6E696E 
- 2765      6700
- 2766              	.LASF114:
- 2767 070b 72635175 		.string	"rcQueue"
- 2767      65756500 
- 2768              	.LASF189:
- 2769 0713 72634465 		.string	"rcDetaching"
- 2769      74616368 
- 2769      696E6700 
- 2770              	.LASF104:
- 2771 071f 72634D44 		.string	"rcMD5SumFmt"
- 2771      3553756D 
- 2771      466D7400 
- 2772              	.LASF155:
- 2773 072b 7263496E 		.string	"rcInserting"
- 2773      73657274 
- 2773      696E6700 
- 2774              	.LASF203:
- 2775 0737 7263436F 		.string	"rcComparing"
- 2775      6D706172 
- 2775      696E6700 
- 2776              	.LASF265:
- 2777 0743 7263456D 		.string	"rcEmpty"
- 2777      70747900 
- 2778              	.LASF97:
- 2779 074b 7263466F 		.string	"rcFormatter"
- 2779      726D6174 
- 2779      74657200 
- 2780              	.LASF34:
- 2781 0757 646F7562 		.string	"double"
- 2781      6C6500
- 2782              	.LASF182:
-
GAS LISTING /tmp/ccIvKeEl.s 			page 63
-
-
- 2783 075e 72635265 		.string	"rcRegistering"
- 2783      67697374 
- 2783      6572696E 
- 2783      6700
- 2784              	.LASF71:
- 2785 076c 72634E53 		.string	"rcNS"
- 2785      00
- 2786              	.LASF214:
- 2787 0771 72635061 		.string	"rcParam"
- 2787      72616D00 
- 2788              	.LASF75:
- 2789 0779 52435461 		.string	"RCTarget"
- 2789      72676574 
- 2789      00
- 2790              	.LASF236:
- 2791 0782 72634372 		.string	"rcCrc"
- 2791      6300
- 2792              	.LASF25:
- 2793 0788 4442475F 		.string	"DBG_SEARCH"
- 2793      53454152 
- 2793      434800
- 2794              	.LASF316:
- 2795 0793 4B4E756C 		.string	"KNullBlockCipherVec_vt_"
- 2795      6C426C6F 
- 2795      636B4369 
- 2795      70686572 
- 2795      5665635F 
- 2796              	.LASF64:
- 2797 07ab 7263584D 		.string	"rcXML"
- 2797      4C00
- 2798              	.LASF27:
- 2799 07b1 4442475F 		.string	"DBG_VFS"
- 2799      56465300 
- 2800              	.LASF32:
- 2801 07b9 666C6F61 		.string	"float"
- 2801      7400
- 2802              	.LASF158:
- 2803 07bf 72635570 		.string	"rcUpdating"
- 2803      64617469 
- 2803      6E6700
- 2804              	.LASF185:
- 2805 07ca 7263436F 		.string	"rcConverting"
- 2805      6E766572 
- 2805      74696E67 
- 2805      00
- 2806              	.LASF171:
- 2807 07d7 7263436F 		.string	"rcConcatenating"
- 2807      6E636174 
- 2807      656E6174 
- 2807      696E6700 
- 2808              	.LASF50:
- 2809 07e7 4B426C6F 		.string	"KBlockCipher"
- 2809      636B4369 
- 2809      70686572 
- 2809      00
- 2810              	.LASF128:
- 2811 07f4 72634479 		.string	"rcDylib"
-
GAS LISTING /tmp/ccIvKeEl.s 			page 64
-
-
- 2811      6C696200 
- 2812              	.LASF277:
- 2813 07fc 72635265 		.string	"rcReadonly"
- 2813      61646F6E 
- 2813      6C7900
- 2814              	.LASF7:
- 2815 0807 756E7369 		.string	"unsigned int"
- 2815      676E6564 
- 2815      20696E74 
- 2815      00
- 2816              	.LASF278:
- 2817 0814 72635772 		.string	"rcWriteonly"
- 2817      6974656F 
- 2817      6E6C7900 
- 2818              	.LASF272:
- 2819 0820 72634C6F 		.string	"rcLocked"
- 2819      636B6564 
- 2819      00
- 2820              	.LASF154:
- 2821 0829 72635072 		.string	"rcProjecting"
- 2821      6F6A6563 
- 2821      74696E67 
- 2821      00
- 2822              	.LASF59:
- 2823 0836 72635053 		.string	"rcPS"
- 2823      00
- 2824              	.LASF244:
- 2825 083b 72635265 		.string	"rcRefcount"
- 2825      66636F75 
- 2825      6E7400
- 2826              	.LASF79:
- 2827 0846 7263546F 		.string	"rcTocEntry"
- 2827      63456E74 
- 2827      727900
- 2828              	.LASF234:
- 2829 0851 72634D6F 		.string	"rcMode"
- 2829      646500
- 2830              	.LASF310:
- 2831 0858 4B4E756C 		.string	"KNullBlockCipherVecProcessorSupport"
- 2831      6C426C6F 
- 2831      636B4369 
- 2831      70686572 
- 2831      56656350 
- 2832              	.LASF293:
- 2833 087c 7263556E 		.string	"rcUnequal"
- 2833      65717561 
- 2833      6C00
- 2834              	.LASF274:
- 2835 0886 72634465 		.string	"rcDetached"
- 2835      74616368 
- 2835      656400
- 2836              	.LASF280:
- 2837 0891 7263496E 		.string	"rcInPlaceNotAllowed"
- 2837      506C6163 
- 2837      654E6F74 
- 2837      416C6C6F 
- 2837      77656400 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 65
-
-
- 2838              	.LASF222:
- 2839 08a5 72635261 		.string	"rcRange"
- 2839      6E676500 
- 2840              	.LASF319:
- 2841 08ad 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 2841      652F726F 
- 2841      6461726D 
- 2841      65722F73 
- 2841      72615F73 
- 2842              	.LASF232:
- 2843 08f5 72634C61 		.string	"rcLastObject_v1_0"
- 2843      73744F62 
- 2843      6A656374 
- 2843      5F76315F 
- 2843      3000
- 2844              	.LASF245:
- 2845 0907 72634C61 		.string	"rcLastObject_v1_1"
- 2845      73744F62 
- 2845      6A656374 
- 2845      5F76315F 
- 2845      3100
- 2846              	.LASF198:
- 2847 0919 72634C61 		.string	"rcLastContext_v1_0"
- 2847      7374436F 
- 2847      6E746578 
- 2847      745F7631 
- 2847      5F3000
- 2848              	.LASF209:
- 2849 092c 72634C61 		.string	"rcLastContext_v1_1"
- 2849      7374436F 
- 2849      6E746578 
- 2849      745F7631 
- 2849      5F3100
- 2850              	.LASF105:
- 2851 093f 72634D65 		.string	"rcMemMap"
- 2851      6D4D6170 
- 2851      00
- 2852              	.LASF129:
- 2853 0948 72634578 		.string	"rcExpression"
- 2853      70726573 
- 2853      73696F6E 
- 2853      00
- 2854              	.LASF175:
- 2855 0955 7263556E 		.string	"rcUnpacking"
- 2855      7061636B 
- 2855      696E6700 
- 2856              	.LASF91:
- 2857 0961 7263446F 		.string	"rcDoc"
- 2857      6300
- 2858              	.LASF12:
- 2859 0967 4442475F 		.string	"DBG_APP"
- 2859      41505000 
- 2860              	.LASF192:
- 2861 096f 72634D75 		.string	"rcMultiplexing"
- 2861      6C746970 
- 2861      6C657869 
- 2861      6E6700
-
GAS LISTING /tmp/ccIvKeEl.s 			page 66
-
-
- 2862              	.LASF194:
- 2863 097e 72635365 		.string	"rcSearching"
- 2863      61726368 
- 2863      696E6700 
- 2864              	.LASF294:
- 2865 098a 72634661 		.string	"rcFailed"
- 2865      696C6564 
- 2865      00
- 2866              	.LASF259:
- 2867 0993 7263496E 		.string	"rcIncorrect"
- 2867      636F7272 
- 2867      65637400 
- 2868              	.LASF98:
- 2869 099f 72634675 		.string	"rcFunctParam"
- 2869      6E637450 
- 2869      6172616D 
- 2869      00
- 2870              	.LASF208:
- 2871 09ac 72634964 		.string	"rcIdentifying"
- 2871      656E7469 
- 2871      6679696E 
- 2871      6700
- 2872              	.LASF223:
- 2873 09ba 7263436F 		.string	"rcConstraint"
- 2873      6E737472 
- 2873      61696E74 
- 2873      00
- 2874              	.LASF249:
- 2875 09c7 7263556E 		.string	"rcUnknown"
- 2875      6B6E6F77 
- 2875      6E00
- 2876              	.LASF88:
- 2877 09d1 72634375 		.string	"rcCursor"
- 2877      72736F72 
- 2877      00
- 2878              	.LASF246:
- 2879 09da 52435374 		.string	"RCState"
- 2879      61746500 
- 2880              	.LASF47:
- 2881 09e2 4B426C6F 		.string	"KBlockCipherByte"
- 2881      636B4369 
- 2881      70686572 
- 2881      42797465 
- 2881      00
- 2882              	.LASF38:
- 2883 09f3 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 2883      636B4369 
- 2883      70686572 
- 2883      42797465 
- 2883      5F76745F 
- 2884              	.LASF286:
- 2885 0a0a 72634967 		.string	"rcIgnored"
- 2885      6E6F7265 
- 2885      6400
- 2886              	.LASF144:
- 2887 0a14 72635265 		.string	"rcReleasing"
- 2887      6C656173 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 67
-
-
- 2887      696E6700 
- 2888              	.LASF67:
- 2889 0a20 72634B46 		.string	"rcKFG"
- 2889      4700
- 2890              	.LASF225:
- 2891 0a26 72634D65 		.string	"rcMessage"
- 2891      73736167 
- 2891      6500
- 2892              	.LASF172:
- 2893 0a30 7263466F 		.string	"rcFormatting"
- 2893      726D6174 
- 2893      74696E67 
- 2893      00
- 2894              	.LASF65:
- 2895 0a3d 72635352 		.string	"rcSRA"
- 2895      4100
- 2896              	.LASF241:
- 2897 0a43 7263456E 		.string	"rcEnvironment"
- 2897      7669726F 
- 2897      6E6D656E 
- 2897      7400
- 2898              	.LASF33:
- 2899 0a51 6C6F6E67 		.string	"long long unsigned int"
- 2899      206C6F6E 
- 2899      6720756E 
- 2899      7369676E 
- 2899      65642069 
- 2900              	.LASF40:
- 2901 0a68 64657374 		.string	"destroy"
- 2901      726F7900 
- 2902              	.LASF123:
- 2903 0a70 7263546F 		.string	"rcToken"
- 2903      6B656E00 
- 2904              	.LASF183:
- 2905 0a78 7263546F 		.string	"rcTokenizing"
- 2905      6B656E69 
- 2905      7A696E67 
- 2905      00
- 2906              	.LASF15:
- 2907 0a85 4442475F 		.string	"DBG_REF"
- 2907      52454600 
- 2908              	.LASF164:
- 2909 0a8d 72635772 		.string	"rcWriting"
- 2909      6974696E 
- 2909      6700
- 2910              	.LASF140:
- 2911 0a97 7263416C 		.string	"rcAllocating"
- 2911      6C6F6361 
- 2911      74696E67 
- 2911      00
- 2912              	.LASF304:
- 2913 0aa4 4B4E756C 		.string	"KNullBlockCipherVecSetEncryptKey"
- 2913      6C426C6F 
- 2913      636B4369 
- 2913      70686572 
- 2913      56656353 
- 2914              	.LASF126:
-
GAS LISTING /tmp/ccIvKeEl.s 			page 68
-
-
- 2915 0ac5 72635479 		.string	"rcType"
- 2915      706500
- 2916              	.LASF227:
- 2917 0acc 72635265 		.string	"rcResources"
- 2917      736F7572 
- 2917      63657300 
- 2918              	.LASF108:
- 2919 0ad8 72634E61 		.string	"rcNamelist"
- 2919      6D656C69 
- 2919      737400
- 2920              	.LASF292:
- 2921 0ae3 7263556E 		.string	"rcUndefined"
- 2921      64656669 
- 2921      6E656400 
- 2922              	.LASF260:
- 2923 0aef 7263496E 		.string	"rcInconsistent"
- 2923      636F6E73 
- 2923      69737465 
- 2923      6E7400
- 2924              	.LASF205:
- 2925 0afe 72635265 		.string	"rcRetrieving"
- 2925      74726965 
- 2925      76696E67 
- 2925      00
- 2926              	.LASF301:
- 2927 0b0b 656E6372 		.string	"encrypt_key"
- 2927      7970745F 
- 2927      6B657900 
- 2928              	.LASF46:
- 2929 0b17 64656372 		.string	"decrypt"
- 2929      79707400 
- 2930              	.LASF39:
- 2931 0b1f 76657273 		.string	"version"
- 2931      696F6E00 
- 2932              	.LASF217:
- 2933 0b27 72634E61 		.string	"rcName"
- 2933      6D6500
- 2934              	.LASF254:
- 2935 0b2e 72634E75 		.string	"rcNull"
- 2935      6C6C00
- 2936              	.LASF176:
- 2937 0b35 7263456E 		.string	"rcEncoding"
- 2937      636F6469 
- 2937      6E6700
- 2938              	.LASF95:
- 2939 0b40 72634669 		.string	"rcFileFormat"
- 2939      6C65466F 
- 2939      726D6174 
- 2939      00
- 2940              	.LASF132:
- 2941 0b4d 7263456E 		.string	"rcEncryptionKey"
- 2941      63727970 
- 2941      74696F6E 
- 2941      4B657900 
- 2942              	.LASF197:
- 2943 0b5d 7263496E 		.string	"rcInflating"
- 2943      666C6174 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 69
-
-
- 2943      696E6700 
- 2944              	.LASF279:
- 2945 0b69 72634E6F 		.string	"rcNoPerm"
- 2945      5065726D 
- 2945      00
- 2946              	.LASF167:
- 2947 0b72 72635265 		.string	"rcResetting"
- 2947      73657474 
- 2947      696E6700 
- 2948              	.LASF41:
- 2949 0b7e 626C6F63 		.string	"block_size"
- 2949      6B5F7369 
- 2949      7A6500
- 2950              	.LASF115:
- 2951 0b89 72635257 		.string	"rcRWLock"
- 2951      4C6F636B 
- 2951      00
- 2952              	.LASF146:
- 2953 0b92 72634C69 		.string	"rcListing"
- 2953      7374696E 
- 2953      6700
- 2954              	.LASF96:
- 2955 0b9c 72634675 		.string	"rcFunction"
- 2955      6E637469 
- 2955      6F6E00
- 2956              	.LASF252:
- 2957 0ba7 7263556E 		.string	"rcUnrecognized"
- 2957      7265636F 
- 2957      676E697A 
- 2957      656400
- 2958              	.LASF68:
- 2959 0bb6 7263416C 		.string	"rcAlign"
- 2959      69676E00 
- 2960              	.LASF131:
- 2961 0bbe 72635072 		.string	"rcProduction"
- 2961      6F647563 
- 2961      74696F6E 
- 2961      00
- 2962              	.LASF121:
- 2963 0bcb 72635468 		.string	"rcThread"
- 2963      72656164 
- 2963      00
- 2964              	.LASF169:
- 2965 0bd4 72634672 		.string	"rcFreezing"
- 2965      65657A69 
- 2965      6E6700
- 2966              	.LASF44:
- 2967 0bdf 7365745F 		.string	"set_decrypt_key"
- 2967      64656372 
- 2967      7970745F 
- 2967      6B657900 
- 2968              	.LASF51:
- 2969 0bef 62797465 		.string	"byte"
- 2969      00
- 2970              	.LASF37:
- 2971 0bf4 4B426C6F 		.string	"KBlockCipher_vt"
- 2971      636B4369 
-
GAS LISTING /tmp/ccIvKeEl.s 			page 70
-
-
- 2971      70686572 
- 2971      5F767400 
- 2972              	.LASF238:
- 2973 0c04 72635365 		.string	"rcSeed"
- 2973      656400
- 2974              	.LASF195:
- 2975 0c0b 72634C6F 		.string	"rcLoading"
- 2975      6164696E 
- 2975      6700
- 2976              	.LASF1:
- 2977 0c15 73686F72 		.string	"short int"
- 2977      7420696E 
- 2977      7400
- 2978              	.LASF299:
- 2979 0c1f 4B4E756C 		.string	"KNullBlockCipherVecKeySize"
- 2979      6C426C6F 
- 2979      636B4369 
- 2979      70686572 
- 2979      5665634B 
- 2980              	.LASF288:
- 2981 0c3a 72634C61 		.string	"rcLastState_v1_0"
- 2981      73745374 
- 2981      6174655F 
- 2981      76315F30 
- 2981      00
- 2982              	.LASF297:
- 2983 0c4b 72634C61 		.string	"rcLastState_v1_1"
- 2983      73745374 
- 2983      6174655F 
- 2983      76315F31 
- 2983      00
- 2984              	.LASF62:
- 2985 0c5c 72635644 		.string	"rcVDB"
- 2985      4200
- 2986              	.LASF43:
- 2987 0c62 7365745F 		.string	"set_encrypt_key"
- 2987      656E6372 
- 2987      7970745F 
- 2987      6B657900 
- 2988              	.LASF60:
- 2989 0c72 72635846 		.string	"rcXF"
- 2989      00
- 2990              	.LASF143:
- 2991 0c77 72634465 		.string	"rcDestroying"
- 2991      7374726F 
- 2991      79696E67 
- 2991      00
- 2992              	.LASF248:
- 2993 0c84 7263446F 		.string	"rcDone"
- 2993      6E6500
- 2994              	.LASF78:
- 2995 0c8b 7263546F 		.string	"rcToc"
- 2995      6300
- 2996              	.LASF152:
- 2997 0c91 7263416C 		.string	"rcAliasing"
- 2997      69617369 
- 2997      6E6700
-
GAS LISTING /tmp/ccIvKeEl.s 			page 71
-
-
- 2998              	.LASF113:
- 2999 0c9c 72635072 		.string	"rcProcess"
- 2999      6F636573 
- 2999      7300
- 3000              	.LASF211:
- 3001 0ca6 72634E6F 		.string	"rcNoObj"
- 3001      4F626A00 
- 3002              	.LASF250:
- 3003 0cae 7263556E 		.string	"rcUnsupported"
- 3003      73757070 
- 3003      6F727465 
- 3003      6400
- 3004              	.LASF305:
- 3005 0cbc 4B4E756C 		.string	"KNullBlockCipherVecSetDecryptKey"
- 3005      6C426C6F 
- 3005      636B4369 
- 3005      70686572 
- 3005      56656353 
- 3006              	.LASF86:
- 3007 0cdd 7263436F 		.string	"rcColumn"
- 3007      6C756D6E 
- 3007      00
- 3008              	.LASF251:
- 3009 0ce6 7263556E 		.string	"rcUnexpected"
- 3009      65787065 
- 3009      63746564 
- 3009      00
- 3010              	.LASF6:
- 3011 0cf3 75696E74 		.string	"uint32_t"
- 3011      33325F74 
- 3011      00
- 3012              	.LASF72:
- 3013 0cfc 72635646 		.string	"rcVFS"
- 3013      5300
- 3014              	.LASF24:
- 3015 0d02 4442475F 		.string	"DBG_KRYPTO"
- 3015      4B525950 
- 3015      544F00
- 3016              	.LASF321:
- 3017 0d0d 4B4E756C 		.string	"KNullBlockCipherVecMake"
- 3017      6C426C6F 
- 3017      636B4369 
- 3017      70686572 
- 3017      5665634D 
- 3018              	.LASF296:
- 3019 0d25 72635772 		.string	"rcWrongType"
- 3019      6F6E6754 
- 3019      79706500 
- 3020              	.LASF231:
- 3021 0d31 72634C69 		.string	"rcLibrary"
- 3021      62726172 
- 3021      7900
- 3022              	.LASF264:
- 3023 0d3b 72634361 		.string	"rcCanceled"
- 3023      6E63656C 
- 3023      656400
- 3024              	.LASF135:
-
GAS LISTING /tmp/ccIvKeEl.s 			page 72
-
-
- 3025 0d46 72634461 		.string	"rcData"
- 3025      746100
- 3026              	.LASF99:
- 3027 0d4d 72634865 		.string	"rcHeader"
- 3027      61646572 
- 3027      00
- 3028              	.LASF4:
- 3029 0d56 73686F72 		.string	"short unsigned int"
- 3029      7420756E 
- 3029      7369676E 
- 3029      65642069 
- 3029      6E7400
- 3030              	.LASF89:
- 3031 0d69 72634461 		.string	"rcDatabase"
- 3031      74616261 
- 3031      736500
- 3032              	.LASF165:
- 3033 0d74 7263436F 		.string	"rcCommitting"
- 3033      6D6D6974 
- 3033      74696E67 
- 3033      00
- 3034              	.LASF193:
- 3035 0d81 7263436C 		.string	"rcClassifying"
- 3035      61737369 
- 3035      6679696E 
- 3035      6700
- 3036              	.LASF124:
- 3037 0d8f 72635472 		.string	"rcTree"
- 3037      656500
- 3038              	.LASF29:
- 3039 0d96 4442475F 		.string	"DBG_ARGS"
- 3039      41524753 
- 3039      00
- 3040              	.LASF153:
- 3041 0d9f 72635365 		.string	"rcSelecting"
- 3041      6C656374 
- 3041      696E6700 
- 3042              	.LASF54:
- 3043 0dab 72635465 		.string	"rcText"
- 3043      787400
- 3044              	.LASF290:
- 3045 0db2 72634F75 		.string	"rcOutoforder"
- 3045      746F666F 
- 3045      72646572 
- 3045      00
- 3046              	.LASF308:
- 3047 0dbf 73746174 		.string	"state"
- 3047      6500
- 3048              	.LASF257:
- 3049 0dc5 7263496E 		.string	"rcInvalid"
- 3049      76616C69 
- 3049      6400
- 3050              	.LASF303:
- 3051 0dcf 75736572 		.string	"user_key_size"
- 3051      5F6B6579 
- 3051      5F73697A 
- 3051      6500
-
GAS LISTING /tmp/ccIvKeEl.s 			page 73
-
-
- 3052              	.LASF204:
- 3053 0ddd 7263496E 		.string	"rcInitializing"
- 3053      69746961 
- 3053      6C697A69 
- 3053      6E6700
- 3054              	.LASF83:
- 3055 0dec 7263426C 		.string	"rcBlob"
- 3055      6F6200
- 3056              	.LASF181:
- 3057 0df3 72635265 		.string	"rcReindexing"
- 3057      696E6465 
- 3057      78696E67 
- 3057      00
- 3058              	.LASF76:
- 3059 0e00 72634E6F 		.string	"rcNoTarg"
- 3059      54617267 
- 3059      00
- 3060              	.LASF258:
- 3061 0e09 7263436F 		.string	"rcCorrupt"
- 3061      72727570 
- 3061      7400
- 3062              	.LASF287:
- 3063 0e13 72634F75 		.string	"rcOutofrange"
- 3063      746F6672 
- 3063      616E6765 
- 3063      00
- 3064              	.LASF116:
- 3065 0e20 72635363 		.string	"rcSchema"
- 3065      68656D61 
- 3065      00
- 3066              	.LASF112:
- 3067 0e29 72635061 		.string	"rcPath"
- 3067      746800
- 3068              	.LASF163:
- 3069 0e30 72635265 		.string	"rcReading"
- 3069      6164696E 
- 3069      6700
- 3070              	.LASF42:
- 3071 0e3a 6B65795F 		.string	"key_size"
- 3071      73697A65 
- 3071      00
- 3072              	.LASF295:
- 3073 0e43 72634E6F 		.string	"rcNotAvailable"
- 3073      74417661 
- 3073      696C6162 
- 3073      6C6500
- 3074              	.LASF318:
- 3075 0e52 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c"
- 3075      652F726F 
- 3075      6461726D 
- 3075      65722F73 
- 3075      72615F73 
- 3076              	.LASF253:
- 3077 0e89 7263416D 		.string	"rcAmbiguous"
- 3077      62696775 
- 3077      6F757300 
- 3078              		.ident	"GCC: (GNU) 4.4.2"
-
GAS LISTING /tmp/ccIvKeEl.s 			page 74
-
-
- 3079              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccIvKeEl.s 			page 75
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 null-ncbi.c
-     /tmp/ccIvKeEl.s:13     .rodata:0000000000000000 KNullBlockCipherVecaes_ncbi_name
-     /tmp/ccIvKeEl.s:17     .text:0000000000000000 KNullBlockCipherVecDestroy
-     /tmp/ccIvKeEl.s:37     .text:000000000000000a KNullBlockCipherVecBlockSize
-     /tmp/ccIvKeEl.s:57     .text:0000000000000015 KNullBlockCipherVecKeySize
-     /tmp/ccIvKeEl.s:77     .text:0000000000000020 KNullBlockCipherVecSetEncryptKey
-     /tmp/ccIvKeEl.s:100    .text:0000000000000036 KNullBlockCipherVecSetDecryptKey
-     /tmp/ccIvKeEl.s:123    .text:000000000000004c KNullBlockCipherVecEncrypt
-     /tmp/ccIvKeEl.s:145    .text:0000000000000060 KNullBlockCipherVecDecrypt
-     /tmp/ccIvKeEl.s:167    .text:0000000000000074 KNullBlockCipherVecProcessorSupport
-     /tmp/ccIvKeEl.s:190    .data.rel.ro.local:0000000000000000 KNullBlockCipherVec_vt_
-     /tmp/ccIvKeEl.s:207    .text:000000000000007f KNullBlockCipherVecMake
-     /tmp/ccIvKeEl.s:269    .rodata:0000000000000050 __func__.6558
-     /tmp/ccIvKeEl.s:274    .rodata:0000000000000070 __PRETTY_FUNCTION__.6557
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-SetRCFileFuncLine
diff --git a/libs/krypto/null-ncbi.vecreg.pic.o.list b/libs/krypto/null-ncbi.vecreg.pic.o.list
deleted file mode 100644
index 1803575..0000000
--- a/libs/krypto/null-ncbi.vecreg.pic.o.list
+++ /dev/null
@@ -1,4406 +0,0 @@
-GAS LISTING /tmp/ccIEtKUs.s 			page 1
-
-
-   1              		.file	"null-ncbi.c"
-   2              		.section	.debug_abbrev,"", at progbits
-   3              	.Ldebug_abbrev0:
-   4              		.section	.debug_info,"", at progbits
-   5              	.Ldebug_info0:
-   6              		.section	.debug_line,"", at progbits
-   7              	.Ldebug_line0:
-   8 0000 66010000 		.text
-   8      02001901 
-   8      00000101 
-   8      FB0E0D00 
-   8      01010101 
-   9              	.Ltext0:
-  10              		.section	.rodata
-  11              		.type	KNullBlockCipherVecRegaes_ncbi_name, @object
-  12              		.size	KNullBlockCipherVecRegaes_ncbi_name, 10
-  13              	KNullBlockCipherVecRegaes_ncbi_name:
-  14 0000 4145535F 		.string	"AES_CLASS"
-  14      434C4153 
-  14      5300
-  15              		.text
-  16              		.type	KNullBlockCipherVecRegDestroy, @function
-  17              	KNullBlockCipherVecRegDestroy:
-  18              	.LFB595:
-  19              		.file 1 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c"
-   1:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /*===========================================================================
-   2:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-   3:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *                            PUBLIC DOMAIN NOTICE
-   4:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *               National Center for Biotechnology Information
-   5:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-   6:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  This software/database is a "United States Government Work" under the
-   7:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  terms of the United States Copyright Act.  It was written as part of
-   8:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  the author's official duties as a United States Government employee and
-   9:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  thus cannot be copyrighted.  This software/database is freely available
-  10:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  to the public for use. The National Library of Medicine and the U.S.
-  11:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Government have not placed any restriction on its use or reproduction.
-  12:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  13:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Although all reasonable efforts have been taken to ensure the accuracy
-  14:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  and reliability of the software and data, the NLM and the U.S.
-  15:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Government do not and cannot warrant the performance or results that
-  16:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  may be obtained by using this software or data. The NLM and the U.S.
-  17:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Government disclaim all warranties, express or implied, including
-  18:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  warranties of performance, merchantability or fitness for any particular
-  19:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  purpose.
-  20:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  21:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *  Please cite the author in any work or product based on this material.
-  22:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  23:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * ===========================================================================
-  24:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  25:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  26:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <krypto/extern.h>
-  27:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  28:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "ncbi-priv.h"
-  29:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "cipher-priv.h"
-  30:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "blockcipher-priv.h"
-  31:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  32:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <klib/rc.h>
-
GAS LISTING /tmp/ccIEtKUs.s 			page 2
-
-
-  33:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  34:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  35:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <byteswap.h>
-  36:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <string.h>
-  37:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <stdint.h>
-  38:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <stdlib.h>
-  39:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <assert.h>
-  40:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <sysalloc.h>
-  41:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  42:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include "blockcipher-impl.h"
-  43:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  44:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
-  45:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <cpuid.h>
-  46:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
-  47:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VECREG
-  48:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #include <v128.h>
-  49:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
-  50:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  51:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  52:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
-  53:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #define BLOCKCIPHER_IMPL BLOCKCIPHER_VEC_IMPL
-  54:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
-  55:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #define BLOCKCIPHER_IMPL BLOCKCIPHER_BYTE_IMPL
-  56:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
-  57:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  58:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** typedef struct NULL_CLASS NULL_CLASS;
-  59:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  60:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static const char NULLBCMEMBER(aes_ncbi_name) [] = CLASS_STRING(AES_CLASS);
-  61:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  62:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  63:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
-  64:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Destroy
-  65:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-  66:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   to create this key (key schedule)
-  67:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  68:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-  69:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-  70:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  71:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static
-  72:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** void NULLBCMEMBER(Destroy)    (const BLOCKCIPHER_IMPL * self)
-  73:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  20              		.loc 1 73 0
-  21              		.cfi_startproc
-  22 0000 55       		pushq	%rbp
-  23              	.LCFI0:
-  24              		.cfi_def_cfa_offset 16
-  25 0001 4889E5   		movq	%rsp, %rbp
-  26              		.cfi_offset 6, -16
-  27              	.LCFI1:
-  28              		.cfi_def_cfa_register 6
-  29 0004 48897DF8 		movq	%rdi, -8(%rbp)
-  74:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     /* we use a constant object so do nothing */
-  75:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  30              		.loc 1 75 0
-  31 0008 C9       		leave
-  32 0009 C3       		ret
-  33              		.cfi_endproc
-
GAS LISTING /tmp/ccIEtKUs.s 			page 3
-
-
-  34              	.LFE595:
-  35              		.size	KNullBlockCipherVecRegDestroy, .-KNullBlockCipherVecRegDestroy
-  36              		.type	KNullBlockCipherVecRegBlockSize, @function
-  37              	KNullBlockCipherVecRegBlockSize:
-  38              	.LFB596:
-  76:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  77:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  78:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
-  79:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * BlockSize
-  80:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  81:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static
-  82:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** uint32_t NULLBCMEMBER(BlockSize) ()
-  83:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  39              		.loc 1 83 0
-  40              		.cfi_startproc
-  41 000a 55       		pushq	%rbp
-  42              	.LCFI2:
-  43              		.cfi_def_cfa_offset 16
-  44 000b 4889E5   		movq	%rsp, %rbp
-  45              		.cfi_offset 6, -16
-  46              	.LCFI3:
-  47              		.cfi_def_cfa_register 6
-  84:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 16;
-  48              		.loc 1 84 0
-  49 000e B8100000 		movl	$16, %eax
-  49      00
-  85:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  50              		.loc 1 85 0
-  51 0013 C9       		leave
-  52 0014 C3       		ret
-  53              		.cfi_endproc
-  54              	.LFE596:
-  55              		.size	KNullBlockCipherVecRegBlockSize, .-KNullBlockCipherVecRegBlockSize
-  56              		.type	KNullBlockCipherVecRegKeySize, @function
-  57              	KNullBlockCipherVecRegKeySize:
-  58              	.LFB597:
-  86:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  87:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
-  88:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
-  89:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * KeySize
-  90:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   How large is the stored key for this cipher?  Not the user key used
-  91:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   to create this key (key schedule)
-  92:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-  93:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   This is needed by KCipher to know how large the KCipher objecr is at
-  94:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   allocation and to know how much of a buffer each decryption/encryption is
-  95:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
-  96:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static uint32_t NULLBCMEMBER(KeySize) ()
-  97:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  59              		.loc 1 97 0
-  60              		.cfi_startproc
-  61 0015 55       		pushq	%rbp
-  62              	.LCFI4:
-  63              		.cfi_def_cfa_offset 16
-  64 0016 4889E5   		movq	%rsp, %rbp
-  65              		.cfi_offset 6, -16
-  66              	.LCFI5:
-  67              		.cfi_def_cfa_register 6
-
GAS LISTING /tmp/ccIEtKUs.s 			page 4
-
-
-  98:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 0;
-  68              		.loc 1 98 0
-  69 0019 B8000000 		movl	$0, %eax
-  69      00
-  99:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  70              		.loc 1 99 0
-  71 001e C9       		leave
-  72 001f C3       		ret
-  73              		.cfi_endproc
-  74              	.LFE597:
-  75              		.size	KNullBlockCipherVecRegKeySize, .-KNullBlockCipherVecRegKeySize
-  76              		.type	KNullBlockCipherVecRegSetEncryptKey, @function
-  77              	KNullBlockCipherVecRegSetEncryptKey:
-  78              	.LFB598:
- 100:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 101:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 102:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 103:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * SetEncryptKey
- 104:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   The KCipher calls this to have the block cipher build an encryption
- 105:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   key in the KCipher object
- 106:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 107:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 108:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static rc_t NULLBCMEMBER(SetEncryptKey) (void * encrypt_key, const char * user_key,
- 109:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                          uint32_t user_key_size)
- 110:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
-  79              		.loc 1 110 0
-  80              		.cfi_startproc
-  81 0020 55       		pushq	%rbp
-  82              	.LCFI6:
-  83              		.cfi_def_cfa_offset 16
-  84 0021 4889E5   		movq	%rsp, %rbp
-  85              		.cfi_offset 6, -16
-  86              	.LCFI7:
-  87              		.cfi_def_cfa_register 6
-  88 0024 48897DF8 		movq	%rdi, -8(%rbp)
-  89 0028 488975F0 		movq	%rsi, -16(%rbp)
-  90 002c 8955EC   		movl	%edx, -20(%rbp)
- 111:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 0;
-  91              		.loc 1 111 0
-  92 002f B8000000 		movl	$0, %eax
-  92      00
- 112:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
-  93              		.loc 1 112 0
-  94 0034 C9       		leave
-  95 0035 C3       		ret
-  96              		.cfi_endproc
-  97              	.LFE598:
-  98              		.size	KNullBlockCipherVecRegSetEncryptKey, .-KNullBlockCipherVecRegSetEncryptKey
-  99              		.type	KNullBlockCipherVecRegSetDecryptKey, @function
- 100              	KNullBlockCipherVecRegSetDecryptKey:
- 101              	.LFB599:
- 113:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 114:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 115:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 116:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * SetDecryptKey
- 117:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   The KCipher calls this to have the block cipher build an decryption
- 118:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   key in the KCipher object
-
GAS LISTING /tmp/ccIEtKUs.s 			page 5
-
-
- 119:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 120:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 121:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static rc_t NULLBCMEMBER(SetDecryptKey) (void * decrypt_key,
- 122:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                      const char * user_key,
- 123:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                      uint32_t user_key_size)
- 124:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 102              		.loc 1 124 0
- 103              		.cfi_startproc
- 104 0036 55       		pushq	%rbp
- 105              	.LCFI8:
- 106              		.cfi_def_cfa_offset 16
- 107 0037 4889E5   		movq	%rsp, %rbp
- 108              		.cfi_offset 6, -16
- 109              	.LCFI9:
- 110              		.cfi_def_cfa_register 6
- 111 003a 48897DF8 		movq	%rdi, -8(%rbp)
- 112 003e 488975F0 		movq	%rsi, -16(%rbp)
- 113 0042 8955EC   		movl	%edx, -20(%rbp)
- 125:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return 0;
- 114              		.loc 1 125 0
- 115 0045 B8000000 		movl	$0, %eax
- 115      00
- 126:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 116              		.loc 1 126 0
- 117 004a C9       		leave
- 118 004b C3       		ret
- 119              		.cfi_endproc
- 120              	.LFE599:
- 121              		.size	KNullBlockCipherVecRegSetDecryptKey, .-KNullBlockCipherVecRegSetDecryptKey
- 122              		.type	KNullBlockCipherVecRegEncrypt, @function
- 123              	KNullBlockCipherVecRegEncrypt:
- 124              	.LFB600:
- 127:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 128:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 129:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 130:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Encrypt
- 131:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 132:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   Perform an encryption of a single block.  Chained modes and stream
- 133:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   cipher modes will call this multiple times.
- 134:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 135:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 136:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
- 137:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static CipherVec NULLBCMEMBER(Encrypt) (CipherVec state,
- 138:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                         const void * encrypt_key)
- 139:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 125              		.loc 1 139 0
- 126              		.cfi_startproc
- 127 004c 55       		pushq	%rbp
- 128              	.LCFI10:
- 129              		.cfi_def_cfa_offset 16
- 130 004d 4889E5   		movq	%rsp, %rbp
- 131              		.cfi_offset 6, -16
- 132              	.LCFI11:
- 133              		.cfi_def_cfa_register 6
- 134 0050 660F7F45 		movdqa	%xmm0, -16(%rbp)
- 134      F0
- 135 0055 48897DE8 		movq	%rdi, -24(%rbp)
-
GAS LISTING /tmp/ccIEtKUs.s 			page 6
-
-
- 140:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return state;
- 136              		.loc 1 140 0
- 137 0059 660F6F45 		movdqa	-16(%rbp), %xmm0
- 137      F0
- 141:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 138              		.loc 1 141 0
- 139 005e C9       		leave
- 140 005f C3       		ret
- 141              		.cfi_endproc
- 142              	.LFE600:
- 143              		.size	KNullBlockCipherVecRegEncrypt, .-KNullBlockCipherVecRegEncrypt
- 144              		.type	KNullBlockCipherVecRegDecrypt, @function
- 145              	KNullBlockCipherVecRegDecrypt:
- 146              	.LFB601:
- 142:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
- 143:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static void NULLBCMEMBER(Encrypt) (const CipherBlock in,
- 144:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    CipherBlock * out,
- 145:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    const void * encrypt_key)
- 146:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 147:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 148:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
- 149:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 150:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 151:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 152:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Decrypt
- 153:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 154:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   Perform a decryption of a single block.  Chained modes and stream
- 155:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   cipher modes will call this multiple times.
- 156:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 157:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
- 158:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static CipherVec NULLBCMEMBER(Decrypt) (CipherVec state,
- 159:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                         const void * decrypt_key)
- 160:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 147              		.loc 1 160 0
- 148              		.cfi_startproc
- 149 0060 55       		pushq	%rbp
- 150              	.LCFI12:
- 151              		.cfi_def_cfa_offset 16
- 152 0061 4889E5   		movq	%rsp, %rbp
- 153              		.cfi_offset 6, -16
- 154              	.LCFI13:
- 155              		.cfi_def_cfa_register 6
- 156 0064 660F7F45 		movdqa	%xmm0, -16(%rbp)
- 156      F0
- 157 0069 48897DE8 		movq	%rdi, -24(%rbp)
- 161:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return state;
- 158              		.loc 1 161 0
- 159 006d 660F6F45 		movdqa	-16(%rbp), %xmm0
- 159      F0
- 162:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 160              		.loc 1 162 0
- 161 0072 C9       		leave
- 162 0073 C3       		ret
- 163              		.cfi_endproc
- 164              	.LFE601:
- 165              		.size	KNullBlockCipherVecRegDecrypt, .-KNullBlockCipherVecRegDecrypt
- 166              		.type	KNullBlockCipherVecRegProcessorSupport, @function
-
GAS LISTING /tmp/ccIEtKUs.s 			page 7
-
-
- 167              	KNullBlockCipherVecRegProcessorSupport:
- 168              	.LFB602:
- 163:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
- 164:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static void NULLBCMEMBER(Decrypt) (const CipherBlock in,
- 165:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    CipherBlock * out,
- 166:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****                                    const void * encrypt_key)
- 167:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 168:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 169:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
- 170:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 171:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 172:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 173:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * MakeProcessorSupport
- 174:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 175:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Run-time check for support of this particular AES implementation by
- 176:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * checking the flags given via the cpuid instruction.
- 177:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 178:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static __inline__
- 179:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** bool NULLBCMEMBER(ProcessorSupport) ()
- 180:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 169              		.loc 1 180 0
- 170              		.cfi_startproc
- 171 0074 55       		pushq	%rbp
- 172              	.LCFI14:
- 173              		.cfi_def_cfa_offset 16
- 174 0075 4889E5   		movq	%rsp, %rbp
- 175              		.cfi_offset 6, -16
- 176              	.LCFI15:
- 177              		.cfi_def_cfa_register 6
- 181:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return true;
- 178              		.loc 1 181 0
- 179 0078 B8010000 		movl	$1, %eax
- 179      00
- 182:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 180              		.loc 1 182 0
- 181 007d C9       		leave
- 182 007e C3       		ret
- 183              		.cfi_endproc
- 184              	.LFE602:
- 185              		.size	KNullBlockCipherVecRegProcessorSupport, .-KNullBlockCipherVecRegProcessorSupport
- 186              		.section	.data.rel.ro.local,"aw", at progbits
- 187              		.align 32
- 188              		.type	KNullBlockCipherVecReg_vt_, @object
- 189              		.size	KNullBlockCipherVecReg_vt_, 64
- 190              	KNullBlockCipherVecReg_vt_:
- 191 0000 01000000 		.long	1
- 192 0004 01000000 		.long	1
- 193 0008 00000000 		.quad	KNullBlockCipherVecRegDestroy
- 193      00000000 
- 194 0010 00000000 		.quad	KNullBlockCipherVecRegBlockSize
- 194      00000000 
- 195 0018 00000000 		.quad	KNullBlockCipherVecRegKeySize
- 195      00000000 
- 196 0020 00000000 		.quad	KNullBlockCipherVecRegSetEncryptKey
- 196      00000000 
- 197 0028 00000000 		.quad	KNullBlockCipherVecRegSetDecryptKey
- 197      00000000 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 8
-
-
- 198 0030 00000000 		.quad	KNullBlockCipherVecRegEncrypt
- 198      00000000 
- 199 0038 00000000 		.quad	KNullBlockCipherVecRegDecrypt
- 199      00000000 
- 200              		.section	.rodata
- 201 000a 00000000 		.align 8
- 201      0000
- 202              	.LC0:
- 203 0010 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c"
- 203      652F726F 
- 203      6461726D 
- 203      65722F73 
- 203      72615F73 
- 204              		.text
- 205              	.globl KNullBlockCipherVecRegMake
- 206              		.type	KNullBlockCipherVecRegMake, @function
- 207              	KNullBlockCipherVecRegMake:
- 208              	.LFB603:
- 183:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 184:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 185:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 186:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Init
- 187:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 188:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   Initialize the fields of this object.  The derived class will call this
- 189:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *   during it's initialization.
- 190:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
- 191:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * self      object to initialze
- 192:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * vt        the virtual table of the derived class
- 193:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * mgr       the cipher manager that is the construction factory block cipher
- 194:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           objects hold references to the manager while the manager merely
- 195:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           points at the block ciphers when all block ciphers are destroyed
- 196:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           the manager loses its references and it too can be destroyed if not
- 197:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *           held elsewhere
- 198:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * name      ASCIZ c-string the name of this class
- 199:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 200:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** static const
- 201:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #if USE_VEC
- 202:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** KBlockCipherVec_vt_v1
- 203:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #else
- 204:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** KBlockCipherByte_vt_v1
- 205:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** #endif
- 206:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** NULLBCMEMBER(_vt_) = {
- 207:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     { 1, 1 },
- 208:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 209:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(Destroy),
- 210:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(BlockSize),
- 211:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(KeySize),
- 212:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(SetEncryptKey),
- 213:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(SetDecryptKey),
- 214:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(Encrypt),
- 215:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     NULLBCMEMBER(Decrypt)
- 216:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** };
- 217:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 218:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 219:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** /* ----------------------------------------------------------------------
- 220:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Make
- 221:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  *
-
GAS LISTING /tmp/ccIEtKUs.s 			page 9
-
-
- 222:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * Create a new Null Block Cipher object.
- 223:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * The processor is checked to see if this particular version is supported on
- 224:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  * this particular CPU.
- 225:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****  */
- 226:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** rc_t NULLBCMEMBER(Make) (KBlockCipher ** new_obj)
- 227:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** {
- 209              		.loc 1 227 0
- 210              		.cfi_startproc
- 211 007f 55       		pushq	%rbp
- 212              	.LCFI16:
- 213              		.cfi_def_cfa_offset 16
- 214 0080 4889E5   		movq	%rsp, %rbp
- 215              		.cfi_offset 6, -16
- 216              	.LCFI17:
- 217              		.cfi_def_cfa_register 6
- 218 0083 4883EC20 		subq	$32, %rsp
- 219 0087 48897DE8 		movq	%rdi, -24(%rbp)
- 228:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     rc_t rc;
- 229:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 230:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     /* Check parameter first */
- 231:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     if (new_obj == NULL)
- 220              		.loc 1 231 0
- 221 008b 48837DE8 		cmpq	$0, -24(%rbp)
- 221      00
- 222 0090 7522     		jne	.L18
- 232:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcSelf, rcNull);
- 223              		.loc 1 232 0
- 224 0092 B9E80000 		movl	$232, %ecx
- 224      00
- 225 0097 488D1500 		leaq	__func__.7214(%rip), %rdx
- 225      000000
- 226 009e 488D3500 		leaq	.LC0(%rip), %rsi
- 226      000000
- 227 00a5 BF878F00 		movl	$-2030006393, %edi
- 227      87
- 228 00aa E8000000 		call	SetRCFileFuncLine at PLT
- 228      00
- 229 00af 8945FC   		movl	%eax, -4(%rbp)
- 230 00b2 EB53     		jmp	.L19
- 231              	.L18:
- 233:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 234:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     else
- 235:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     {
- 236:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         *new_obj = NULL;
- 232              		.loc 1 236 0
- 233 00b4 488B45E8 		movq	-24(%rbp), %rax
- 234 00b8 48C70000 		movq	$0, (%rax)
- 234      000000
- 237:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 238:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         /* check for processor support of this flavor */
- 239:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         if ( ! NULLBCMEMBER(ProcessorSupport)())
- 235              		.loc 1 239 0
- 236 00bf B8000000 		movl	$0, %eax
- 236      00
- 237 00c4 E8ABFFFF 		call	KNullBlockCipherVecRegProcessorSupport
- 237      FF
- 238 00c9 83F001   		xorl	$1, %eax
-
GAS LISTING /tmp/ccIEtKUs.s 			page 10
-
-
- 239 00cc 84C0     		testb	%al, %al
- 240 00ce 7422     		je	.L20
- 240:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****             rc = RC (rcKrypto, rcBlockCipher, rcConstructing, rcFunction, rcUnsupported);
- 241              		.loc 1 240 0
- 242 00d0 B9F00000 		movl	$240, %ecx
- 242      00
- 243 00d5 488D1500 		leaq	__func__.7214(%rip), %rdx
- 243      000000
- 244 00dc 488D3500 		leaq	.LC0(%rip), %rsi
- 244      000000
- 245 00e3 BF038500 		movl	$-2030009085, %edi
- 245      87
- 246 00e8 E8000000 		call	SetRCFileFuncLine at PLT
- 246      00
- 247 00ed 8945FC   		movl	%eax, -4(%rbp)
- 248 00f0 EB15     		jmp	.L19
- 249              	.L20:
- 241:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** 
- 242:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         else
- 243:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         {
- 244:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****             rc = 0;
- 250              		.loc 1 244 0
- 251 00f2 C745FC00 		movl	$0, -4(%rbp)
- 251      000000
- 245:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****             *new_obj = (KBlockCipher*)&(NULLBCMEMBER(_vt_));
- 252              		.loc 1 245 0
- 253 00f9 488D1500 		leaq	KNullBlockCipherVecReg_vt_(%rip), %rdx
- 253      000000
- 254 0100 488B45E8 		movq	-24(%rbp), %rax
- 255 0104 488910   		movq	%rdx, (%rax)
- 256              	.L19:
- 246:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****         }
- 247:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     }
- 248:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c ****     return rc;
- 257              		.loc 1 248 0
- 258 0107 8B45FC   		movl	-4(%rbp), %eax
- 249:/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c **** }
- 259              		.loc 1 249 0
- 260 010a C9       		leave
- 261 010b C3       		ret
- 262              		.cfi_endproc
- 263              	.LFE603:
- 264              		.size	KNullBlockCipherVecRegMake, .-KNullBlockCipherVecRegMake
- 265              		.section	.rodata
- 266 0047 00000000 		.align 16
- 266      00000000 
- 266      00
- 267              		.type	__func__.7214, @object
- 268              		.size	__func__.7214, 27
- 269              	__func__.7214:
- 270 0050 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
- 270      6C426C6F 
- 270      636B4369 
- 270      70686572 
- 270      56656352 
- 271 006b 00000000 		.align 16
- 271      00
-
GAS LISTING /tmp/ccIEtKUs.s 			page 11
-
-
- 272              		.type	__PRETTY_FUNCTION__.7213, @object
- 273              		.size	__PRETTY_FUNCTION__.7213, 27
- 274              	__PRETTY_FUNCTION__.7213:
- 275 0070 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
- 275      6C426C6F 
- 275      636B4369 
- 275      70686572 
- 275      56656352 
- 276              		.text
- 277              	.Letext0:
- 278              		.section	.debug_loc,"", at progbits
- 279              	.Ldebug_loc0:
- 280              	.LLST0:
- 281 0000 00000000 		.quad	.LFB595-.Ltext0
- 281      00000000 
- 282 0008 01000000 		.quad	.LCFI0-.Ltext0
- 282      00000000 
- 283 0010 0200     		.value	0x2
- 284 0012 77       		.byte	0x77
- 285 0013 08       		.sleb128 8
- 286 0014 01000000 		.quad	.LCFI0-.Ltext0
- 286      00000000 
- 287 001c 04000000 		.quad	.LCFI1-.Ltext0
- 287      00000000 
- 288 0024 0200     		.value	0x2
- 289 0026 77       		.byte	0x77
- 290 0027 10       		.sleb128 16
- 291 0028 04000000 		.quad	.LCFI1-.Ltext0
- 291      00000000 
- 292 0030 0A000000 		.quad	.LFE595-.Ltext0
- 292      00000000 
- 293 0038 0200     		.value	0x2
- 294 003a 76       		.byte	0x76
- 295 003b 10       		.sleb128 16
- 296 003c 00000000 		.quad	0x0
- 296      00000000 
- 297 0044 00000000 		.quad	0x0
- 297      00000000 
- 298              	.LLST1:
- 299 004c 0A000000 		.quad	.LFB596-.Ltext0
- 299      00000000 
- 300 0054 0B000000 		.quad	.LCFI2-.Ltext0
- 300      00000000 
- 301 005c 0200     		.value	0x2
- 302 005e 77       		.byte	0x77
- 303 005f 08       		.sleb128 8
- 304 0060 0B000000 		.quad	.LCFI2-.Ltext0
- 304      00000000 
- 305 0068 0E000000 		.quad	.LCFI3-.Ltext0
- 305      00000000 
- 306 0070 0200     		.value	0x2
- 307 0072 77       		.byte	0x77
- 308 0073 10       		.sleb128 16
- 309 0074 0E000000 		.quad	.LCFI3-.Ltext0
- 309      00000000 
- 310 007c 15000000 		.quad	.LFE596-.Ltext0
- 310      00000000 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 12
-
-
- 311 0084 0200     		.value	0x2
- 312 0086 76       		.byte	0x76
- 313 0087 10       		.sleb128 16
- 314 0088 00000000 		.quad	0x0
- 314      00000000 
- 315 0090 00000000 		.quad	0x0
- 315      00000000 
- 316              	.LLST2:
- 317 0098 15000000 		.quad	.LFB597-.Ltext0
- 317      00000000 
- 318 00a0 16000000 		.quad	.LCFI4-.Ltext0
- 318      00000000 
- 319 00a8 0200     		.value	0x2
- 320 00aa 77       		.byte	0x77
- 321 00ab 08       		.sleb128 8
- 322 00ac 16000000 		.quad	.LCFI4-.Ltext0
- 322      00000000 
- 323 00b4 19000000 		.quad	.LCFI5-.Ltext0
- 323      00000000 
- 324 00bc 0200     		.value	0x2
- 325 00be 77       		.byte	0x77
- 326 00bf 10       		.sleb128 16
- 327 00c0 19000000 		.quad	.LCFI5-.Ltext0
- 327      00000000 
- 328 00c8 20000000 		.quad	.LFE597-.Ltext0
- 328      00000000 
- 329 00d0 0200     		.value	0x2
- 330 00d2 76       		.byte	0x76
- 331 00d3 10       		.sleb128 16
- 332 00d4 00000000 		.quad	0x0
- 332      00000000 
- 333 00dc 00000000 		.quad	0x0
- 333      00000000 
- 334              	.LLST3:
- 335 00e4 20000000 		.quad	.LFB598-.Ltext0
- 335      00000000 
- 336 00ec 21000000 		.quad	.LCFI6-.Ltext0
- 336      00000000 
- 337 00f4 0200     		.value	0x2
- 338 00f6 77       		.byte	0x77
- 339 00f7 08       		.sleb128 8
- 340 00f8 21000000 		.quad	.LCFI6-.Ltext0
- 340      00000000 
- 341 0100 24000000 		.quad	.LCFI7-.Ltext0
- 341      00000000 
- 342 0108 0200     		.value	0x2
- 343 010a 77       		.byte	0x77
- 344 010b 10       		.sleb128 16
- 345 010c 24000000 		.quad	.LCFI7-.Ltext0
- 345      00000000 
- 346 0114 36000000 		.quad	.LFE598-.Ltext0
- 346      00000000 
- 347 011c 0200     		.value	0x2
- 348 011e 76       		.byte	0x76
- 349 011f 10       		.sleb128 16
- 350 0120 00000000 		.quad	0x0
- 350      00000000 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 13
-
-
- 351 0128 00000000 		.quad	0x0
- 351      00000000 
- 352              	.LLST4:
- 353 0130 36000000 		.quad	.LFB599-.Ltext0
- 353      00000000 
- 354 0138 37000000 		.quad	.LCFI8-.Ltext0
- 354      00000000 
- 355 0140 0200     		.value	0x2
- 356 0142 77       		.byte	0x77
- 357 0143 08       		.sleb128 8
- 358 0144 37000000 		.quad	.LCFI8-.Ltext0
- 358      00000000 
- 359 014c 3A000000 		.quad	.LCFI9-.Ltext0
- 359      00000000 
- 360 0154 0200     		.value	0x2
- 361 0156 77       		.byte	0x77
- 362 0157 10       		.sleb128 16
- 363 0158 3A000000 		.quad	.LCFI9-.Ltext0
- 363      00000000 
- 364 0160 4C000000 		.quad	.LFE599-.Ltext0
- 364      00000000 
- 365 0168 0200     		.value	0x2
- 366 016a 76       		.byte	0x76
- 367 016b 10       		.sleb128 16
- 368 016c 00000000 		.quad	0x0
- 368      00000000 
- 369 0174 00000000 		.quad	0x0
- 369      00000000 
- 370              	.LLST5:
- 371 017c 4C000000 		.quad	.LFB600-.Ltext0
- 371      00000000 
- 372 0184 4D000000 		.quad	.LCFI10-.Ltext0
- 372      00000000 
- 373 018c 0200     		.value	0x2
- 374 018e 77       		.byte	0x77
- 375 018f 08       		.sleb128 8
- 376 0190 4D000000 		.quad	.LCFI10-.Ltext0
- 376      00000000 
- 377 0198 50000000 		.quad	.LCFI11-.Ltext0
- 377      00000000 
- 378 01a0 0200     		.value	0x2
- 379 01a2 77       		.byte	0x77
- 380 01a3 10       		.sleb128 16
- 381 01a4 50000000 		.quad	.LCFI11-.Ltext0
- 381      00000000 
- 382 01ac 60000000 		.quad	.LFE600-.Ltext0
- 382      00000000 
- 383 01b4 0200     		.value	0x2
- 384 01b6 76       		.byte	0x76
- 385 01b7 10       		.sleb128 16
- 386 01b8 00000000 		.quad	0x0
- 386      00000000 
- 387 01c0 00000000 		.quad	0x0
- 387      00000000 
- 388              	.LLST6:
- 389 01c8 60000000 		.quad	.LFB601-.Ltext0
- 389      00000000 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 14
-
-
- 390 01d0 61000000 		.quad	.LCFI12-.Ltext0
- 390      00000000 
- 391 01d8 0200     		.value	0x2
- 392 01da 77       		.byte	0x77
- 393 01db 08       		.sleb128 8
- 394 01dc 61000000 		.quad	.LCFI12-.Ltext0
- 394      00000000 
- 395 01e4 64000000 		.quad	.LCFI13-.Ltext0
- 395      00000000 
- 396 01ec 0200     		.value	0x2
- 397 01ee 77       		.byte	0x77
- 398 01ef 10       		.sleb128 16
- 399 01f0 64000000 		.quad	.LCFI13-.Ltext0
- 399      00000000 
- 400 01f8 74000000 		.quad	.LFE601-.Ltext0
- 400      00000000 
- 401 0200 0200     		.value	0x2
- 402 0202 76       		.byte	0x76
- 403 0203 10       		.sleb128 16
- 404 0204 00000000 		.quad	0x0
- 404      00000000 
- 405 020c 00000000 		.quad	0x0
- 405      00000000 
- 406              	.LLST7:
- 407 0214 74000000 		.quad	.LFB602-.Ltext0
- 407      00000000 
- 408 021c 75000000 		.quad	.LCFI14-.Ltext0
- 408      00000000 
- 409 0224 0200     		.value	0x2
- 410 0226 77       		.byte	0x77
- 411 0227 08       		.sleb128 8
- 412 0228 75000000 		.quad	.LCFI14-.Ltext0
- 412      00000000 
- 413 0230 78000000 		.quad	.LCFI15-.Ltext0
- 413      00000000 
- 414 0238 0200     		.value	0x2
- 415 023a 77       		.byte	0x77
- 416 023b 10       		.sleb128 16
- 417 023c 78000000 		.quad	.LCFI15-.Ltext0
- 417      00000000 
- 418 0244 7F000000 		.quad	.LFE602-.Ltext0
- 418      00000000 
- 419 024c 0200     		.value	0x2
- 420 024e 76       		.byte	0x76
- 421 024f 10       		.sleb128 16
- 422 0250 00000000 		.quad	0x0
- 422      00000000 
- 423 0258 00000000 		.quad	0x0
- 423      00000000 
- 424              	.LLST8:
- 425 0260 7F000000 		.quad	.LFB603-.Ltext0
- 425      00000000 
- 426 0268 80000000 		.quad	.LCFI16-.Ltext0
- 426      00000000 
- 427 0270 0200     		.value	0x2
- 428 0272 77       		.byte	0x77
- 429 0273 08       		.sleb128 8
-
GAS LISTING /tmp/ccIEtKUs.s 			page 15
-
-
- 430 0274 80000000 		.quad	.LCFI16-.Ltext0
- 430      00000000 
- 431 027c 83000000 		.quad	.LCFI17-.Ltext0
- 431      00000000 
- 432 0284 0200     		.value	0x2
- 433 0286 77       		.byte	0x77
- 434 0287 10       		.sleb128 16
- 435 0288 83000000 		.quad	.LCFI17-.Ltext0
- 435      00000000 
- 436 0290 0C010000 		.quad	.LFE603-.Ltext0
- 436      00000000 
- 437 0298 0200     		.value	0x2
- 438 029a 76       		.byte	0x76
- 439 029b 10       		.sleb128 16
- 440 029c 00000000 		.quad	0x0
- 440      00000000 
- 441 02a4 00000000 		.quad	0x0
- 441      00000000 
- 442              		.file 2 "/usr/include/stdint.h"
- 443              		.file 3 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/defs.h"
- 444              		.file 4 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/cc/gcc/v128.h"
- 445              		.file 5 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-impl.h"
- 446              		.file 6 "/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/blockcipher-priv.h"
- 447              		.file 7 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/rc.h"
- 448              		.file 8 "/home/rodarmer/sra_sdk-2.3.2-4/interfaces/klib/debug.h"
- 449              		.section	.debug_info
- 450 0000 6C0C0000 		.long	0xc6c
- 451 0004 0200     		.value	0x2
- 452 0006 00000000 		.long	.Ldebug_abbrev0
- 453 000a 08       		.byte	0x8
- 454 000b 01       		.uleb128 0x1
- 455 000c 00000000 		.long	.LASF317
- 456 0010 01       		.byte	0x1
- 457 0011 00000000 		.long	.LASF318
- 458 0015 00000000 		.long	.LASF319
- 459 0019 00000000 		.quad	.Ltext0
- 459      00000000 
- 460 0021 00000000 		.quad	.Letext0
- 460      00000000 
- 461 0029 00000000 		.long	.Ldebug_line0
- 462 002d 02       		.uleb128 0x2
- 463 002e 01       		.byte	0x1
- 464 002f 06       		.byte	0x6
- 465 0030 00000000 		.long	.LASF0
- 466 0034 02       		.uleb128 0x2
- 467 0035 02       		.byte	0x2
- 468 0036 05       		.byte	0x5
- 469 0037 00000000 		.long	.LASF1
- 470 003b 03       		.uleb128 0x3
- 471 003c 04       		.byte	0x4
- 472 003d 05       		.byte	0x5
- 473 003e 696E7400 		.string	"int"
- 474 0042 02       		.uleb128 0x2
- 475 0043 08       		.byte	0x8
- 476 0044 05       		.byte	0x5
- 477 0045 00000000 		.long	.LASF2
- 478 0049 04       		.uleb128 0x4
-
GAS LISTING /tmp/ccIEtKUs.s 			page 16
-
-
- 479 004a 00000000 		.long	.LASF5
- 480 004e 02       		.byte	0x2
- 481 004f 31       		.byte	0x31
- 482 0050 54000000 		.long	0x54
- 483 0054 02       		.uleb128 0x2
- 484 0055 01       		.byte	0x1
- 485 0056 08       		.byte	0x8
- 486 0057 00000000 		.long	.LASF3
- 487 005b 02       		.uleb128 0x2
- 488 005c 02       		.byte	0x2
- 489 005d 07       		.byte	0x7
- 490 005e 00000000 		.long	.LASF4
- 491 0062 04       		.uleb128 0x4
- 492 0063 00000000 		.long	.LASF6
- 493 0067 02       		.byte	0x2
- 494 0068 34       		.byte	0x34
- 495 0069 6D000000 		.long	0x6d
- 496 006d 02       		.uleb128 0x2
- 497 006e 04       		.byte	0x4
- 498 006f 07       		.byte	0x7
- 499 0070 00000000 		.long	.LASF7
- 500 0074 02       		.uleb128 0x2
- 501 0075 08       		.byte	0x8
- 502 0076 07       		.byte	0x7
- 503 0077 00000000 		.long	.LASF8
- 504 007b 04       		.uleb128 0x4
- 505 007c 00000000 		.long	.LASF9
- 506 0080 03       		.byte	0x3
- 507 0081 30       		.byte	0x30
- 508 0082 62000000 		.long	0x62
- 509 0086 05       		.uleb128 0x5
- 510 0087 08       		.byte	0x8
- 511 0088 06       		.uleb128 0x6
- 512 0089 08       		.byte	0x8
- 513 008a 07       		.byte	0x7
- 514 008b 07       		.uleb128 0x7
- 515 008c 08       		.byte	0x8
- 516 008d 91000000 		.long	0x91
- 517 0091 08       		.uleb128 0x8
- 518 0092 96000000 		.long	0x96
- 519 0096 02       		.uleb128 0x2
- 520 0097 01       		.byte	0x1
- 521 0098 06       		.byte	0x6
- 522 0099 00000000 		.long	.LASF10
- 523 009d 09       		.uleb128 0x9
- 524 009e 04       		.byte	0x4
- 525 009f 08       		.byte	0x8
- 526 00a0 D6       		.byte	0xd6
- 527 00a1 1E010000 		.long	0x11e
- 528 00a5 0A       		.uleb128 0xa
- 529 00a6 00000000 		.long	.LASF11
- 530 00aa 7F       		.sleb128 -1
- 531 00ab 0A       		.uleb128 0xa
- 532 00ac 00000000 		.long	.LASF12
- 533 00b0 00       		.sleb128 0
- 534 00b1 0A       		.uleb128 0xa
- 535 00b2 00000000 		.long	.LASF13
-
GAS LISTING /tmp/ccIEtKUs.s 			page 17
-
-
- 536 00b6 01       		.sleb128 1
- 537 00b7 0A       		.uleb128 0xa
- 538 00b8 00000000 		.long	.LASF14
- 539 00bc 02       		.sleb128 2
- 540 00bd 0A       		.uleb128 0xa
- 541 00be 00000000 		.long	.LASF15
- 542 00c2 03       		.sleb128 3
- 543 00c3 0A       		.uleb128 0xa
- 544 00c4 00000000 		.long	.LASF16
- 545 00c8 04       		.sleb128 4
- 546 00c9 0A       		.uleb128 0xa
- 547 00ca 00000000 		.long	.LASF17
- 548 00ce 05       		.sleb128 5
- 549 00cf 0A       		.uleb128 0xa
- 550 00d0 00000000 		.long	.LASF18
- 551 00d4 06       		.sleb128 6
- 552 00d5 0A       		.uleb128 0xa
- 553 00d6 00000000 		.long	.LASF19
- 554 00da 07       		.sleb128 7
- 555 00db 0A       		.uleb128 0xa
- 556 00dc 00000000 		.long	.LASF20
- 557 00e0 08       		.sleb128 8
- 558 00e1 0A       		.uleb128 0xa
- 559 00e2 00000000 		.long	.LASF21
- 560 00e6 09       		.sleb128 9
- 561 00e7 0A       		.uleb128 0xa
- 562 00e8 00000000 		.long	.LASF22
- 563 00ec 0A       		.sleb128 10
- 564 00ed 0A       		.uleb128 0xa
- 565 00ee 00000000 		.long	.LASF23
- 566 00f2 0B       		.sleb128 11
- 567 00f3 0A       		.uleb128 0xa
- 568 00f4 00000000 		.long	.LASF24
- 569 00f8 0C       		.sleb128 12
- 570 00f9 0A       		.uleb128 0xa
- 571 00fa 00000000 		.long	.LASF25
- 572 00fe 0D       		.sleb128 13
- 573 00ff 0A       		.uleb128 0xa
- 574 0100 00000000 		.long	.LASF26
- 575 0104 0E       		.sleb128 14
- 576 0105 0A       		.uleb128 0xa
- 577 0106 00000000 		.long	.LASF27
- 578 010a 0F       		.sleb128 15
- 579 010b 0A       		.uleb128 0xa
- 580 010c 00000000 		.long	.LASF28
- 581 0110 10       		.sleb128 16
- 582 0111 0A       		.uleb128 0xa
- 583 0112 00000000 		.long	.LASF29
- 584 0116 11       		.sleb128 17
- 585 0117 0A       		.uleb128 0xa
- 586 0118 00000000 		.long	.LASF30
- 587 011c 12       		.sleb128 18
- 588 011d 00       		.byte	0x0
- 589 011e 07       		.uleb128 0x7
- 590 011f 08       		.byte	0x8
- 591 0120 24010000 		.long	0x124
- 592 0124 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccIEtKUs.s 			page 18
-
-
- 593 0125 02       		.uleb128 0x2
- 594 0126 08       		.byte	0x8
- 595 0127 05       		.byte	0x5
- 596 0128 00000000 		.long	.LASF31
- 597 012c 02       		.uleb128 0x2
- 598 012d 04       		.byte	0x4
- 599 012e 04       		.byte	0x4
- 600 012f 00000000 		.long	.LASF32
- 601 0133 07       		.uleb128 0x7
- 602 0134 08       		.byte	0x8
- 603 0135 96000000 		.long	0x96
- 604 0139 02       		.uleb128 0x2
- 605 013a 08       		.byte	0x8
- 606 013b 07       		.byte	0x7
- 607 013c 00000000 		.long	.LASF33
- 608 0140 02       		.uleb128 0x2
- 609 0141 08       		.byte	0x8
- 610 0142 04       		.byte	0x4
- 611 0143 00000000 		.long	.LASF34
- 612 0147 04       		.uleb128 0x4
- 613 0148 00000000 		.long	.LASF35
- 614 014c 04       		.byte	0x4
- 615 014d 26       		.byte	0x26
- 616 014e 52010000 		.long	0x152
- 617 0152 0C       		.uleb128 0xc
- 618 0153 01       		.byte	0x1
- 619 0154 49000000 		.long	0x49
- 620 0158 63010000 		.long	0x163
- 621 015c 0D       		.uleb128 0xd
- 622 015d 88000000 		.long	0x88
- 623 0161 0F       		.byte	0xf
- 624 0162 00       		.byte	0x0
- 625 0163 04       		.uleb128 0x4
- 626 0164 00000000 		.long	.LASF36
- 627 0168 05       		.byte	0x5
- 628 0169 3B       		.byte	0x3b
- 629 016a 47010000 		.long	0x147
- 630 016e 04       		.uleb128 0x4
- 631 016f 00000000 		.long	.LASF37
- 632 0173 05       		.byte	0x5
- 633 0174 43       		.byte	0x43
- 634 0175 79010000 		.long	0x179
- 635 0179 0E       		.uleb128 0xe
- 636 017a 00000000 		.long	.LASF37
- 637 017e 08       		.byte	0x8
- 638 017f 05       		.byte	0x5
- 639 0180 43       		.byte	0x43
- 640 0181 A2010000 		.long	0x1a2
- 641 0185 0F       		.uleb128 0xf
- 642 0186 6D616A00 		.string	"maj"
- 643 018a 05       		.byte	0x5
- 644 018b 46       		.byte	0x46
- 645 018c 62000000 		.long	0x62
- 646 0190 02       		.byte	0x2
- 647 0191 23       		.byte	0x23
- 648 0192 00       		.uleb128 0x0
- 649 0193 0F       		.uleb128 0xf
-
GAS LISTING /tmp/ccIEtKUs.s 			page 19
-
-
- 650 0194 6D696E00 		.string	"min"
- 651 0198 05       		.byte	0x5
- 652 0199 47       		.byte	0x47
- 653 019a 62000000 		.long	0x62
- 654 019e 02       		.byte	0x2
- 655 019f 23       		.byte	0x23
- 656 01a0 04       		.uleb128 0x4
- 657 01a1 00       		.byte	0x0
- 658 01a2 04       		.uleb128 0x4
- 659 01a3 00000000 		.long	.LASF38
- 660 01a7 05       		.byte	0x5
- 661 01a8 52       		.byte	0x52
- 662 01a9 AD010000 		.long	0x1ad
- 663 01ad 0E       		.uleb128 0xe
- 664 01ae 00000000 		.long	.LASF38
- 665 01b2 40       		.byte	0x40
- 666 01b3 05       		.byte	0x5
- 667 01b4 52       		.byte	0x52
- 668 01b5 2A020000 		.long	0x22a
- 669 01b9 10       		.uleb128 0x10
- 670 01ba 00000000 		.long	.LASF39
- 671 01be 05       		.byte	0x5
- 672 01bf 5E       		.byte	0x5e
- 673 01c0 6E010000 		.long	0x16e
- 674 01c4 02       		.byte	0x2
- 675 01c5 23       		.byte	0x23
- 676 01c6 00       		.uleb128 0x0
- 677 01c7 10       		.uleb128 0x10
- 678 01c8 00000000 		.long	.LASF40
- 679 01cc 05       		.byte	0x5
- 680 01cd 63       		.byte	0x63
- 681 01ce 6E020000 		.long	0x26e
- 682 01d2 02       		.byte	0x2
- 683 01d3 23       		.byte	0x23
- 684 01d4 08       		.uleb128 0x8
- 685 01d5 10       		.uleb128 0x10
- 686 01d6 00000000 		.long	.LASF41
- 687 01da 05       		.byte	0x5
- 688 01db 65       		.byte	0x65
- 689 01dc 7F020000 		.long	0x27f
- 690 01e0 02       		.byte	0x2
- 691 01e1 23       		.byte	0x23
- 692 01e2 10       		.uleb128 0x10
- 693 01e3 10       		.uleb128 0x10
- 694 01e4 00000000 		.long	.LASF42
- 695 01e8 05       		.byte	0x5
- 696 01e9 67       		.byte	0x67
- 697 01ea 7F020000 		.long	0x27f
- 698 01ee 02       		.byte	0x2
- 699 01ef 23       		.byte	0x23
- 700 01f0 18       		.uleb128 0x18
- 701 01f1 10       		.uleb128 0x10
- 702 01f2 00000000 		.long	.LASF43
- 703 01f6 05       		.byte	0x5
- 704 01f7 69       		.byte	0x69
- 705 01f8 9F020000 		.long	0x29f
- 706 01fc 02       		.byte	0x2
-
GAS LISTING /tmp/ccIEtKUs.s 			page 20
-
-
- 707 01fd 23       		.byte	0x23
- 708 01fe 20       		.uleb128 0x20
- 709 01ff 10       		.uleb128 0x10
- 710 0200 00000000 		.long	.LASF44
- 711 0204 05       		.byte	0x5
- 712 0205 6D       		.byte	0x6d
- 713 0206 9F020000 		.long	0x29f
- 714 020a 02       		.byte	0x2
- 715 020b 23       		.byte	0x23
- 716 020c 28       		.uleb128 0x28
- 717 020d 10       		.uleb128 0x10
- 718 020e 00000000 		.long	.LASF45
- 719 0212 05       		.byte	0x5
- 720 0213 71       		.byte	0x71
- 721 0214 BB020000 		.long	0x2bb
- 722 0218 02       		.byte	0x2
- 723 0219 23       		.byte	0x23
- 724 021a 30       		.uleb128 0x30
- 725 021b 10       		.uleb128 0x10
- 726 021c 00000000 		.long	.LASF46
- 727 0220 05       		.byte	0x5
- 728 0221 75       		.byte	0x75
- 729 0222 BB020000 		.long	0x2bb
- 730 0226 02       		.byte	0x2
- 731 0227 23       		.byte	0x23
- 732 0228 38       		.uleb128 0x38
- 733 0229 00       		.byte	0x0
- 734 022a 04       		.uleb128 0x4
- 735 022b 00000000 		.long	.LASF47
- 736 022f 05       		.byte	0x5
- 737 0230 53       		.byte	0x53
- 738 0231 35020000 		.long	0x235
- 739 0235 11       		.uleb128 0x11
- 740 0236 00000000 		.long	.LASF47
- 741 023a 40       		.byte	0x40
- 742 023b 05       		.byte	0x5
- 743 023c 53       		.byte	0x53
- 744 023d 57020000 		.long	0x257
- 745 0241 12       		.uleb128 0x12
- 746 0242 00000000 		.long	.LASF39
- 747 0246 05       		.byte	0x5
- 748 0247 7F       		.byte	0x7f
- 749 0248 6E010000 		.long	0x16e
- 750 024c 13       		.uleb128 0x13
- 751 024d 763100   		.string	"v1"
- 752 0250 05       		.byte	0x5
- 753 0251 80       		.byte	0x80
- 754 0252 A2010000 		.long	0x1a2
- 755 0256 00       		.byte	0x0
- 756 0257 14       		.uleb128 0x14
- 757 0258 01       		.byte	0x1
- 758 0259 63020000 		.long	0x263
- 759 025d 15       		.uleb128 0x15
- 760 025e 63020000 		.long	0x263
- 761 0262 00       		.byte	0x0
- 762 0263 07       		.uleb128 0x7
- 763 0264 08       		.byte	0x8
-
GAS LISTING /tmp/ccIEtKUs.s 			page 21
-
-
- 764 0265 69020000 		.long	0x269
- 765 0269 08       		.uleb128 0x8
- 766 026a 2A020000 		.long	0x22a
- 767 026e 07       		.uleb128 0x7
- 768 026f 08       		.byte	0x8
- 769 0270 57020000 		.long	0x257
- 770 0274 16       		.uleb128 0x16
- 771 0275 62000000 		.long	0x62
- 772 0279 7F020000 		.long	0x27f
- 773 027d 17       		.uleb128 0x17
- 774 027e 00       		.byte	0x0
- 775 027f 07       		.uleb128 0x7
- 776 0280 08       		.byte	0x8
- 777 0281 74020000 		.long	0x274
- 778 0285 18       		.uleb128 0x18
- 779 0286 01       		.byte	0x1
- 780 0287 7B000000 		.long	0x7b
- 781 028b 9F020000 		.long	0x29f
- 782 028f 15       		.uleb128 0x15
- 783 0290 86000000 		.long	0x86
- 784 0294 15       		.uleb128 0x15
- 785 0295 8B000000 		.long	0x8b
- 786 0299 15       		.uleb128 0x15
- 787 029a 62000000 		.long	0x62
- 788 029e 00       		.byte	0x0
- 789 029f 07       		.uleb128 0x7
- 790 02a0 08       		.byte	0x8
- 791 02a1 85020000 		.long	0x285
- 792 02a5 14       		.uleb128 0x14
- 793 02a6 01       		.byte	0x1
- 794 02a7 BB020000 		.long	0x2bb
- 795 02ab 15       		.uleb128 0x15
- 796 02ac 8B000000 		.long	0x8b
- 797 02b0 15       		.uleb128 0x15
- 798 02b1 33010000 		.long	0x133
- 799 02b5 15       		.uleb128 0x15
- 800 02b6 1E010000 		.long	0x11e
- 801 02ba 00       		.byte	0x0
- 802 02bb 07       		.uleb128 0x7
- 803 02bc 08       		.byte	0x8
- 804 02bd A5020000 		.long	0x2a5
- 805 02c1 04       		.uleb128 0x4
- 806 02c2 00000000 		.long	.LASF48
- 807 02c6 05       		.byte	0x5
- 808 02c7 84       		.byte	0x84
- 809 02c8 CC020000 		.long	0x2cc
- 810 02cc 0E       		.uleb128 0xe
- 811 02cd 00000000 		.long	.LASF48
- 812 02d1 40       		.byte	0x40
- 813 02d2 05       		.byte	0x5
- 814 02d3 84       		.byte	0x84
- 815 02d4 49030000 		.long	0x349
- 816 02d8 10       		.uleb128 0x10
- 817 02d9 00000000 		.long	.LASF39
- 818 02dd 05       		.byte	0x5
- 819 02de 90       		.byte	0x90
- 820 02df 6E010000 		.long	0x16e
-
GAS LISTING /tmp/ccIEtKUs.s 			page 22
-
-
- 821 02e3 02       		.byte	0x2
- 822 02e4 23       		.byte	0x23
- 823 02e5 00       		.uleb128 0x0
- 824 02e6 10       		.uleb128 0x10
- 825 02e7 00000000 		.long	.LASF40
- 826 02eb 05       		.byte	0x5
- 827 02ec 95       		.byte	0x95
- 828 02ed 8D030000 		.long	0x38d
- 829 02f1 02       		.byte	0x2
- 830 02f2 23       		.byte	0x23
- 831 02f3 08       		.uleb128 0x8
- 832 02f4 10       		.uleb128 0x10
- 833 02f5 00000000 		.long	.LASF41
- 834 02f9 05       		.byte	0x5
- 835 02fa 97       		.byte	0x97
- 836 02fb 7F020000 		.long	0x27f
- 837 02ff 02       		.byte	0x2
- 838 0300 23       		.byte	0x23
- 839 0301 10       		.uleb128 0x10
- 840 0302 10       		.uleb128 0x10
- 841 0303 00000000 		.long	.LASF42
- 842 0307 05       		.byte	0x5
- 843 0308 99       		.byte	0x99
- 844 0309 7F020000 		.long	0x27f
- 845 030d 02       		.byte	0x2
- 846 030e 23       		.byte	0x23
- 847 030f 18       		.uleb128 0x18
- 848 0310 10       		.uleb128 0x10
- 849 0311 00000000 		.long	.LASF43
- 850 0315 05       		.byte	0x5
- 851 0316 9B       		.byte	0x9b
- 852 0317 9F020000 		.long	0x29f
- 853 031b 02       		.byte	0x2
- 854 031c 23       		.byte	0x23
- 855 031d 20       		.uleb128 0x20
- 856 031e 10       		.uleb128 0x10
- 857 031f 00000000 		.long	.LASF44
- 858 0323 05       		.byte	0x5
- 859 0324 9F       		.byte	0x9f
- 860 0325 9F020000 		.long	0x29f
- 861 0329 02       		.byte	0x2
- 862 032a 23       		.byte	0x23
- 863 032b 28       		.uleb128 0x28
- 864 032c 10       		.uleb128 0x10
- 865 032d 00000000 		.long	.LASF45
- 866 0331 05       		.byte	0x5
- 867 0332 A3       		.byte	0xa3
- 868 0333 A8030000 		.long	0x3a8
- 869 0337 02       		.byte	0x2
- 870 0338 23       		.byte	0x23
- 871 0339 30       		.uleb128 0x30
- 872 033a 10       		.uleb128 0x10
- 873 033b 00000000 		.long	.LASF46
- 874 033f 05       		.byte	0x5
- 875 0340 A6       		.byte	0xa6
- 876 0341 A8030000 		.long	0x3a8
- 877 0345 02       		.byte	0x2
-
GAS LISTING /tmp/ccIEtKUs.s 			page 23
-
-
- 878 0346 23       		.byte	0x23
- 879 0347 38       		.uleb128 0x38
- 880 0348 00       		.byte	0x0
- 881 0349 04       		.uleb128 0x4
- 882 034a 00000000 		.long	.LASF49
- 883 034e 05       		.byte	0x5
- 884 034f 85       		.byte	0x85
- 885 0350 54030000 		.long	0x354
- 886 0354 11       		.uleb128 0x11
- 887 0355 00000000 		.long	.LASF49
- 888 0359 40       		.byte	0x40
- 889 035a 05       		.byte	0x5
- 890 035b 85       		.byte	0x85
- 891 035c 76030000 		.long	0x376
- 892 0360 12       		.uleb128 0x12
- 893 0361 00000000 		.long	.LASF39
- 894 0365 05       		.byte	0x5
- 895 0366 AF       		.byte	0xaf
- 896 0367 6E010000 		.long	0x16e
- 897 036b 13       		.uleb128 0x13
- 898 036c 763100   		.string	"v1"
- 899 036f 05       		.byte	0x5
- 900 0370 B0       		.byte	0xb0
- 901 0371 C1020000 		.long	0x2c1
- 902 0375 00       		.byte	0x0
- 903 0376 14       		.uleb128 0x14
- 904 0377 01       		.byte	0x1
- 905 0378 82030000 		.long	0x382
- 906 037c 15       		.uleb128 0x15
- 907 037d 82030000 		.long	0x382
- 908 0381 00       		.byte	0x0
- 909 0382 07       		.uleb128 0x7
- 910 0383 08       		.byte	0x8
- 911 0384 88030000 		.long	0x388
- 912 0388 08       		.uleb128 0x8
- 913 0389 49030000 		.long	0x349
- 914 038d 07       		.uleb128 0x7
- 915 038e 08       		.byte	0x8
- 916 038f 76030000 		.long	0x376
- 917 0393 18       		.uleb128 0x18
- 918 0394 01       		.byte	0x1
- 919 0395 63010000 		.long	0x163
- 920 0399 A8030000 		.long	0x3a8
- 921 039d 15       		.uleb128 0x15
- 922 039e 63010000 		.long	0x163
- 923 03a2 15       		.uleb128 0x15
- 924 03a3 1E010000 		.long	0x11e
- 925 03a7 00       		.byte	0x0
- 926 03a8 07       		.uleb128 0x7
- 927 03a9 08       		.byte	0x8
- 928 03aa 93030000 		.long	0x393
- 929 03ae 04       		.uleb128 0x4
- 930 03af 00000000 		.long	.LASF50
- 931 03b3 06       		.byte	0x6
- 932 03b4 40       		.byte	0x40
- 933 03b5 B9030000 		.long	0x3b9
- 934 03b9 11       		.uleb128 0x11
-
GAS LISTING /tmp/ccIEtKUs.s 			page 24
-
-
- 935 03ba 00000000 		.long	.LASF50
- 936 03be 40       		.byte	0x40
- 937 03bf 06       		.byte	0x6
- 938 03c0 40       		.byte	0x40
- 939 03c1 DC030000 		.long	0x3dc
- 940 03c5 12       		.uleb128 0x12
- 941 03c6 00000000 		.long	.LASF51
- 942 03ca 06       		.byte	0x6
- 943 03cb 43       		.byte	0x43
- 944 03cc 2A020000 		.long	0x22a
- 945 03d0 13       		.uleb128 0x13
- 946 03d1 76656300 		.string	"vec"
- 947 03d5 06       		.byte	0x6
- 948 03d6 44       		.byte	0x44
- 949 03d7 49030000 		.long	0x349
- 950 03db 00       		.byte	0x0
- 951 03dc 19       		.uleb128 0x19
- 952 03dd 00000000 		.long	.LASF74
- 953 03e1 04       		.byte	0x4
- 954 03e2 07       		.byte	0x7
- 955 03e3 5A       		.byte	0x5a
- 956 03e4 6D040000 		.long	0x46d
- 957 03e8 0A       		.uleb128 0xa
- 958 03e9 00000000 		.long	.LASF52
- 959 03ed 00       		.sleb128 0
- 960 03ee 0A       		.uleb128 0xa
- 961 03ef 00000000 		.long	.LASF53
- 962 03f3 01       		.sleb128 1
- 963 03f4 0A       		.uleb128 0xa
- 964 03f5 00000000 		.long	.LASF54
- 965 03f9 02       		.sleb128 2
- 966 03fa 0A       		.uleb128 0xa
- 967 03fb 00000000 		.long	.LASF55
- 968 03ff 03       		.sleb128 3
- 969 0400 0A       		.uleb128 0xa
- 970 0401 00000000 		.long	.LASF56
- 971 0405 04       		.sleb128 4
- 972 0406 0A       		.uleb128 0xa
- 973 0407 00000000 		.long	.LASF57
- 974 040b 05       		.sleb128 5
- 975 040c 0A       		.uleb128 0xa
- 976 040d 00000000 		.long	.LASF58
- 977 0411 06       		.sleb128 6
- 978 0412 0A       		.uleb128 0xa
- 979 0413 00000000 		.long	.LASF59
- 980 0417 07       		.sleb128 7
- 981 0418 0A       		.uleb128 0xa
- 982 0419 00000000 		.long	.LASF60
- 983 041d 08       		.sleb128 8
- 984 041e 0A       		.uleb128 0xa
- 985 041f 00000000 		.long	.LASF61
- 986 0423 09       		.sleb128 9
- 987 0424 0A       		.uleb128 0xa
- 988 0425 00000000 		.long	.LASF62
- 989 0429 0A       		.sleb128 10
- 990 042a 0A       		.uleb128 0xa
- 991 042b 00000000 		.long	.LASF63
-
GAS LISTING /tmp/ccIEtKUs.s 			page 25
-
-
- 992 042f 0B       		.sleb128 11
- 993 0430 0A       		.uleb128 0xa
- 994 0431 00000000 		.long	.LASF64
- 995 0435 0C       		.sleb128 12
- 996 0436 0A       		.uleb128 0xa
- 997 0437 00000000 		.long	.LASF65
- 998 043b 0D       		.sleb128 13
- 999 043c 0A       		.uleb128 0xa
- 1000 043d 00000000 		.long	.LASF66
- 1001 0441 0E       		.sleb128 14
- 1002 0442 0A       		.uleb128 0xa
- 1003 0443 00000000 		.long	.LASF67
- 1004 0447 0E       		.sleb128 14
- 1005 0448 0A       		.uleb128 0xa
- 1006 0449 00000000 		.long	.LASF68
- 1007 044d 0F       		.sleb128 15
- 1008 044e 0A       		.uleb128 0xa
- 1009 044f 00000000 		.long	.LASF69
- 1010 0453 10       		.sleb128 16
- 1011 0454 0A       		.uleb128 0xa
- 1012 0455 00000000 		.long	.LASF70
- 1013 0459 11       		.sleb128 17
- 1014 045a 0A       		.uleb128 0xa
- 1015 045b 00000000 		.long	.LASF71
- 1016 045f 12       		.sleb128 18
- 1017 0460 0A       		.uleb128 0xa
- 1018 0461 00000000 		.long	.LASF72
- 1019 0465 13       		.sleb128 19
- 1020 0466 0A       		.uleb128 0xa
- 1021 0467 00000000 		.long	.LASF73
- 1022 046b 14       		.sleb128 20
- 1023 046c 00       		.byte	0x0
- 1024 046d 19       		.uleb128 0x19
- 1025 046e 00000000 		.long	.LASF75
- 1026 0472 04       		.byte	0x4
- 1027 0473 07       		.byte	0x7
- 1028 0474 77       		.byte	0x77
- 1029 0475 F4050000 		.long	0x5f4
- 1030 0479 0A       		.uleb128 0xa
- 1031 047a 00000000 		.long	.LASF76
- 1032 047e 00       		.sleb128 0
- 1033 047f 0A       		.uleb128 0xa
- 1034 0480 00000000 		.long	.LASF77
- 1035 0484 01       		.sleb128 1
- 1036 0485 0A       		.uleb128 0xa
- 1037 0486 00000000 		.long	.LASF78
- 1038 048a 02       		.sleb128 2
- 1039 048b 0A       		.uleb128 0xa
- 1040 048c 00000000 		.long	.LASF79
- 1041 0490 03       		.sleb128 3
- 1042 0491 0A       		.uleb128 0xa
- 1043 0492 00000000 		.long	.LASF80
- 1044 0496 04       		.sleb128 4
- 1045 0497 0A       		.uleb128 0xa
- 1046 0498 00000000 		.long	.LASF81
- 1047 049c 05       		.sleb128 5
- 1048 049d 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIEtKUs.s 			page 26
-
-
- 1049 049e 00000000 		.long	.LASF82
- 1050 04a2 06       		.sleb128 6
- 1051 04a3 0A       		.uleb128 0xa
- 1052 04a4 00000000 		.long	.LASF83
- 1053 04a8 07       		.sleb128 7
- 1054 04a9 0A       		.uleb128 0xa
- 1055 04aa 00000000 		.long	.LASF84
- 1056 04ae 08       		.sleb128 8
- 1057 04af 0A       		.uleb128 0xa
- 1058 04b0 00000000 		.long	.LASF85
- 1059 04b4 09       		.sleb128 9
- 1060 04b5 0A       		.uleb128 0xa
- 1061 04b6 00000000 		.long	.LASF86
- 1062 04ba 0A       		.sleb128 10
- 1063 04bb 0A       		.uleb128 0xa
- 1064 04bc 00000000 		.long	.LASF87
- 1065 04c0 0B       		.sleb128 11
- 1066 04c1 0A       		.uleb128 0xa
- 1067 04c2 00000000 		.long	.LASF88
- 1068 04c6 0C       		.sleb128 12
- 1069 04c7 0A       		.uleb128 0xa
- 1070 04c8 00000000 		.long	.LASF89
- 1071 04cc 0D       		.sleb128 13
- 1072 04cd 0A       		.uleb128 0xa
- 1073 04ce 00000000 		.long	.LASF90
- 1074 04d2 0E       		.sleb128 14
- 1075 04d3 0A       		.uleb128 0xa
- 1076 04d4 00000000 		.long	.LASF91
- 1077 04d8 0F       		.sleb128 15
- 1078 04d9 0A       		.uleb128 0xa
- 1079 04da 00000000 		.long	.LASF92
- 1080 04de 10       		.sleb128 16
- 1081 04df 0A       		.uleb128 0xa
- 1082 04e0 00000000 		.long	.LASF93
- 1083 04e4 11       		.sleb128 17
- 1084 04e5 0A       		.uleb128 0xa
- 1085 04e6 00000000 		.long	.LASF94
- 1086 04ea 12       		.sleb128 18
- 1087 04eb 0A       		.uleb128 0xa
- 1088 04ec 00000000 		.long	.LASF95
- 1089 04f0 13       		.sleb128 19
- 1090 04f1 0A       		.uleb128 0xa
- 1091 04f2 00000000 		.long	.LASF96
- 1092 04f6 14       		.sleb128 20
- 1093 04f7 0A       		.uleb128 0xa
- 1094 04f8 00000000 		.long	.LASF97
- 1095 04fc 15       		.sleb128 21
- 1096 04fd 0A       		.uleb128 0xa
- 1097 04fe 00000000 		.long	.LASF98
- 1098 0502 16       		.sleb128 22
- 1099 0503 0A       		.uleb128 0xa
- 1100 0504 00000000 		.long	.LASF99
- 1101 0508 17       		.sleb128 23
- 1102 0509 0A       		.uleb128 0xa
- 1103 050a 00000000 		.long	.LASF100
- 1104 050e 18       		.sleb128 24
- 1105 050f 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIEtKUs.s 			page 27
-
-
- 1106 0510 00000000 		.long	.LASF101
- 1107 0514 19       		.sleb128 25
- 1108 0515 0A       		.uleb128 0xa
- 1109 0516 00000000 		.long	.LASF102
- 1110 051a 1A       		.sleb128 26
- 1111 051b 0A       		.uleb128 0xa
- 1112 051c 00000000 		.long	.LASF103
- 1113 0520 1B       		.sleb128 27
- 1114 0521 0A       		.uleb128 0xa
- 1115 0522 00000000 		.long	.LASF104
- 1116 0526 1C       		.sleb128 28
- 1117 0527 0A       		.uleb128 0xa
- 1118 0528 00000000 		.long	.LASF105
- 1119 052c 1D       		.sleb128 29
- 1120 052d 0A       		.uleb128 0xa
- 1121 052e 00000000 		.long	.LASF106
- 1122 0532 1E       		.sleb128 30
- 1123 0533 0A       		.uleb128 0xa
- 1124 0534 00000000 		.long	.LASF107
- 1125 0538 1F       		.sleb128 31
- 1126 0539 0A       		.uleb128 0xa
- 1127 053a 00000000 		.long	.LASF108
- 1128 053e 20       		.sleb128 32
- 1129 053f 0A       		.uleb128 0xa
- 1130 0540 00000000 		.long	.LASF109
- 1131 0544 21       		.sleb128 33
- 1132 0545 0A       		.uleb128 0xa
- 1133 0546 00000000 		.long	.LASF110
- 1134 054a 22       		.sleb128 34
- 1135 054b 0A       		.uleb128 0xa
- 1136 054c 00000000 		.long	.LASF111
- 1137 0550 23       		.sleb128 35
- 1138 0551 0A       		.uleb128 0xa
- 1139 0552 00000000 		.long	.LASF112
- 1140 0556 24       		.sleb128 36
- 1141 0557 0A       		.uleb128 0xa
- 1142 0558 00000000 		.long	.LASF113
- 1143 055c 25       		.sleb128 37
- 1144 055d 0A       		.uleb128 0xa
- 1145 055e 00000000 		.long	.LASF114
- 1146 0562 26       		.sleb128 38
- 1147 0563 0A       		.uleb128 0xa
- 1148 0564 00000000 		.long	.LASF115
- 1149 0568 27       		.sleb128 39
- 1150 0569 0A       		.uleb128 0xa
- 1151 056a 00000000 		.long	.LASF116
- 1152 056e 28       		.sleb128 40
- 1153 056f 0A       		.uleb128 0xa
- 1154 0570 00000000 		.long	.LASF117
- 1155 0574 29       		.sleb128 41
- 1156 0575 0A       		.uleb128 0xa
- 1157 0576 00000000 		.long	.LASF118
- 1158 057a 2A       		.sleb128 42
- 1159 057b 0A       		.uleb128 0xa
- 1160 057c 00000000 		.long	.LASF119
- 1161 0580 2B       		.sleb128 43
- 1162 0581 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIEtKUs.s 			page 28
-
-
- 1163 0582 00000000 		.long	.LASF120
- 1164 0586 2C       		.sleb128 44
- 1165 0587 0A       		.uleb128 0xa
- 1166 0588 00000000 		.long	.LASF121
- 1167 058c 2D       		.sleb128 45
- 1168 058d 0A       		.uleb128 0xa
- 1169 058e 00000000 		.long	.LASF122
- 1170 0592 2E       		.sleb128 46
- 1171 0593 0A       		.uleb128 0xa
- 1172 0594 00000000 		.long	.LASF123
- 1173 0598 2F       		.sleb128 47
- 1174 0599 0A       		.uleb128 0xa
- 1175 059a 00000000 		.long	.LASF124
- 1176 059e 30       		.sleb128 48
- 1177 059f 0A       		.uleb128 0xa
- 1178 05a0 00000000 		.long	.LASF125
- 1179 05a4 31       		.sleb128 49
- 1180 05a5 0A       		.uleb128 0xa
- 1181 05a6 00000000 		.long	.LASF126
- 1182 05aa 32       		.sleb128 50
- 1183 05ab 0A       		.uleb128 0xa
- 1184 05ac 00000000 		.long	.LASF127
- 1185 05b0 33       		.sleb128 51
- 1186 05b1 0A       		.uleb128 0xa
- 1187 05b2 00000000 		.long	.LASF128
- 1188 05b6 34       		.sleb128 52
- 1189 05b7 0A       		.uleb128 0xa
- 1190 05b8 00000000 		.long	.LASF129
- 1191 05bc 35       		.sleb128 53
- 1192 05bd 0A       		.uleb128 0xa
- 1193 05be 00000000 		.long	.LASF130
- 1194 05c2 36       		.sleb128 54
- 1195 05c3 0A       		.uleb128 0xa
- 1196 05c4 00000000 		.long	.LASF131
- 1197 05c8 36       		.sleb128 54
- 1198 05c9 0A       		.uleb128 0xa
- 1199 05ca 00000000 		.long	.LASF132
- 1200 05ce 37       		.sleb128 55
- 1201 05cf 0A       		.uleb128 0xa
- 1202 05d0 00000000 		.long	.LASF133
- 1203 05d4 38       		.sleb128 56
- 1204 05d5 0A       		.uleb128 0xa
- 1205 05d6 00000000 		.long	.LASF134
- 1206 05da 39       		.sleb128 57
- 1207 05db 0A       		.uleb128 0xa
- 1208 05dc 00000000 		.long	.LASF135
- 1209 05e0 3A       		.sleb128 58
- 1210 05e1 0A       		.uleb128 0xa
- 1211 05e2 00000000 		.long	.LASF136
- 1212 05e6 3B       		.sleb128 59
- 1213 05e7 0A       		.uleb128 0xa
- 1214 05e8 00000000 		.long	.LASF137
- 1215 05ec 3C       		.sleb128 60
- 1216 05ed 0A       		.uleb128 0xa
- 1217 05ee 00000000 		.long	.LASF138
- 1218 05f2 3D       		.sleb128 61
- 1219 05f3 00       		.byte	0x0
-
GAS LISTING /tmp/ccIEtKUs.s 			page 29
-
-
- 1220 05f4 19       		.uleb128 0x19
- 1221 05f5 00000000 		.long	.LASF139
- 1222 05f9 04       		.byte	0x4
- 1223 05fa 07       		.byte	0x7
- 1224 05fb BD       		.byte	0xbd
- 1225 05fc AA070000 		.long	0x7aa
- 1226 0600 0A       		.uleb128 0xa
- 1227 0601 00000000 		.long	.LASF140
- 1228 0605 00       		.sleb128 0
- 1229 0606 0A       		.uleb128 0xa
- 1230 0607 00000000 		.long	.LASF141
- 1231 060b 01       		.sleb128 1
- 1232 060c 0A       		.uleb128 0xa
- 1233 060d 00000000 		.long	.LASF142
- 1234 0611 02       		.sleb128 2
- 1235 0612 0A       		.uleb128 0xa
- 1236 0613 00000000 		.long	.LASF143
- 1237 0617 03       		.sleb128 3
- 1238 0618 0A       		.uleb128 0xa
- 1239 0619 00000000 		.long	.LASF144
- 1240 061d 04       		.sleb128 4
- 1241 061e 0A       		.uleb128 0xa
- 1242 061f 00000000 		.long	.LASF145
- 1243 0623 05       		.sleb128 5
- 1244 0624 0A       		.uleb128 0xa
- 1245 0625 00000000 		.long	.LASF146
- 1246 0629 06       		.sleb128 6
- 1247 062a 0A       		.uleb128 0xa
- 1248 062b 00000000 		.long	.LASF147
- 1249 062f 07       		.sleb128 7
- 1250 0630 0A       		.uleb128 0xa
- 1251 0631 00000000 		.long	.LASF148
- 1252 0635 08       		.sleb128 8
- 1253 0636 0A       		.uleb128 0xa
- 1254 0637 00000000 		.long	.LASF149
- 1255 063b 09       		.sleb128 9
- 1256 063c 0A       		.uleb128 0xa
- 1257 063d 00000000 		.long	.LASF150
- 1258 0641 0A       		.sleb128 10
- 1259 0642 0A       		.uleb128 0xa
- 1260 0643 00000000 		.long	.LASF151
- 1261 0647 0B       		.sleb128 11
- 1262 0648 0A       		.uleb128 0xa
- 1263 0649 00000000 		.long	.LASF152
- 1264 064d 0C       		.sleb128 12
- 1265 064e 0A       		.uleb128 0xa
- 1266 064f 00000000 		.long	.LASF153
- 1267 0653 0D       		.sleb128 13
- 1268 0654 0A       		.uleb128 0xa
- 1269 0655 00000000 		.long	.LASF154
- 1270 0659 0E       		.sleb128 14
- 1271 065a 0A       		.uleb128 0xa
- 1272 065b 00000000 		.long	.LASF155
- 1273 065f 0F       		.sleb128 15
- 1274 0660 0A       		.uleb128 0xa
- 1275 0661 00000000 		.long	.LASF156
- 1276 0665 10       		.sleb128 16
-
GAS LISTING /tmp/ccIEtKUs.s 			page 30
-
-
- 1277 0666 0A       		.uleb128 0xa
- 1278 0667 00000000 		.long	.LASF157
- 1279 066b 11       		.sleb128 17
- 1280 066c 0A       		.uleb128 0xa
- 1281 066d 00000000 		.long	.LASF158
- 1282 0671 12       		.sleb128 18
- 1283 0672 0A       		.uleb128 0xa
- 1284 0673 00000000 		.long	.LASF159
- 1285 0677 13       		.sleb128 19
- 1286 0678 0A       		.uleb128 0xa
- 1287 0679 00000000 		.long	.LASF160
- 1288 067d 14       		.sleb128 20
- 1289 067e 0A       		.uleb128 0xa
- 1290 067f 00000000 		.long	.LASF161
- 1291 0683 15       		.sleb128 21
- 1292 0684 0A       		.uleb128 0xa
- 1293 0685 00000000 		.long	.LASF162
- 1294 0689 16       		.sleb128 22
- 1295 068a 0A       		.uleb128 0xa
- 1296 068b 00000000 		.long	.LASF163
- 1297 068f 17       		.sleb128 23
- 1298 0690 0A       		.uleb128 0xa
- 1299 0691 00000000 		.long	.LASF164
- 1300 0695 18       		.sleb128 24
- 1301 0696 0A       		.uleb128 0xa
- 1302 0697 00000000 		.long	.LASF165
- 1303 069b 19       		.sleb128 25
- 1304 069c 0A       		.uleb128 0xa
- 1305 069d 00000000 		.long	.LASF166
- 1306 06a1 1A       		.sleb128 26
- 1307 06a2 0A       		.uleb128 0xa
- 1308 06a3 00000000 		.long	.LASF167
- 1309 06a7 1B       		.sleb128 27
- 1310 06a8 0A       		.uleb128 0xa
- 1311 06a9 00000000 		.long	.LASF168
- 1312 06ad 1C       		.sleb128 28
- 1313 06ae 0A       		.uleb128 0xa
- 1314 06af 00000000 		.long	.LASF169
- 1315 06b3 1D       		.sleb128 29
- 1316 06b4 0A       		.uleb128 0xa
- 1317 06b5 00000000 		.long	.LASF170
- 1318 06b9 1E       		.sleb128 30
- 1319 06ba 0A       		.uleb128 0xa
- 1320 06bb 00000000 		.long	.LASF171
- 1321 06bf 1F       		.sleb128 31
- 1322 06c0 0A       		.uleb128 0xa
- 1323 06c1 00000000 		.long	.LASF172
- 1324 06c5 20       		.sleb128 32
- 1325 06c6 0A       		.uleb128 0xa
- 1326 06c7 00000000 		.long	.LASF173
- 1327 06cb 21       		.sleb128 33
- 1328 06cc 0A       		.uleb128 0xa
- 1329 06cd 00000000 		.long	.LASF174
- 1330 06d1 22       		.sleb128 34
- 1331 06d2 0A       		.uleb128 0xa
- 1332 06d3 00000000 		.long	.LASF175
- 1333 06d7 23       		.sleb128 35
-
GAS LISTING /tmp/ccIEtKUs.s 			page 31
-
-
- 1334 06d8 0A       		.uleb128 0xa
- 1335 06d9 00000000 		.long	.LASF176
- 1336 06dd 24       		.sleb128 36
- 1337 06de 0A       		.uleb128 0xa
- 1338 06df 00000000 		.long	.LASF177
- 1339 06e3 25       		.sleb128 37
- 1340 06e4 0A       		.uleb128 0xa
- 1341 06e5 00000000 		.long	.LASF178
- 1342 06e9 26       		.sleb128 38
- 1343 06ea 0A       		.uleb128 0xa
- 1344 06eb 00000000 		.long	.LASF179
- 1345 06ef 27       		.sleb128 39
- 1346 06f0 0A       		.uleb128 0xa
- 1347 06f1 00000000 		.long	.LASF180
- 1348 06f5 28       		.sleb128 40
- 1349 06f6 0A       		.uleb128 0xa
- 1350 06f7 00000000 		.long	.LASF181
- 1351 06fb 29       		.sleb128 41
- 1352 06fc 0A       		.uleb128 0xa
- 1353 06fd 00000000 		.long	.LASF182
- 1354 0701 2A       		.sleb128 42
- 1355 0702 0A       		.uleb128 0xa
- 1356 0703 00000000 		.long	.LASF183
- 1357 0707 2B       		.sleb128 43
- 1358 0708 0A       		.uleb128 0xa
- 1359 0709 00000000 		.long	.LASF184
- 1360 070d 2C       		.sleb128 44
- 1361 070e 0A       		.uleb128 0xa
- 1362 070f 00000000 		.long	.LASF185
- 1363 0713 2D       		.sleb128 45
- 1364 0714 0A       		.uleb128 0xa
- 1365 0715 00000000 		.long	.LASF186
- 1366 0719 2E       		.sleb128 46
- 1367 071a 0A       		.uleb128 0xa
- 1368 071b 00000000 		.long	.LASF187
- 1369 071f 2F       		.sleb128 47
- 1370 0720 0A       		.uleb128 0xa
- 1371 0721 00000000 		.long	.LASF188
- 1372 0725 30       		.sleb128 48
- 1373 0726 0A       		.uleb128 0xa
- 1374 0727 00000000 		.long	.LASF189
- 1375 072b 31       		.sleb128 49
- 1376 072c 0A       		.uleb128 0xa
- 1377 072d 00000000 		.long	.LASF190
- 1378 0731 32       		.sleb128 50
- 1379 0732 0A       		.uleb128 0xa
- 1380 0733 00000000 		.long	.LASF191
- 1381 0737 33       		.sleb128 51
- 1382 0738 0A       		.uleb128 0xa
- 1383 0739 00000000 		.long	.LASF192
- 1384 073d 34       		.sleb128 52
- 1385 073e 0A       		.uleb128 0xa
- 1386 073f 00000000 		.long	.LASF193
- 1387 0743 35       		.sleb128 53
- 1388 0744 0A       		.uleb128 0xa
- 1389 0745 00000000 		.long	.LASF194
- 1390 0749 36       		.sleb128 54
-
GAS LISTING /tmp/ccIEtKUs.s 			page 32
-
-
- 1391 074a 0A       		.uleb128 0xa
- 1392 074b 00000000 		.long	.LASF195
- 1393 074f 37       		.sleb128 55
- 1394 0750 0A       		.uleb128 0xa
- 1395 0751 00000000 		.long	.LASF196
- 1396 0755 38       		.sleb128 56
- 1397 0756 0A       		.uleb128 0xa
- 1398 0757 00000000 		.long	.LASF197
- 1399 075b 39       		.sleb128 57
- 1400 075c 0A       		.uleb128 0xa
- 1401 075d 00000000 		.long	.LASF198
- 1402 0761 3A       		.sleb128 58
- 1403 0762 0A       		.uleb128 0xa
- 1404 0763 00000000 		.long	.LASF199
- 1405 0767 3A       		.sleb128 58
- 1406 0768 0A       		.uleb128 0xa
- 1407 0769 00000000 		.long	.LASF200
- 1408 076d 3B       		.sleb128 59
- 1409 076e 0A       		.uleb128 0xa
- 1410 076f 00000000 		.long	.LASF201
- 1411 0773 3C       		.sleb128 60
- 1412 0774 0A       		.uleb128 0xa
- 1413 0775 00000000 		.long	.LASF202
- 1414 0779 3D       		.sleb128 61
- 1415 077a 0A       		.uleb128 0xa
- 1416 077b 00000000 		.long	.LASF203
- 1417 077f 3E       		.sleb128 62
- 1418 0780 0A       		.uleb128 0xa
- 1419 0781 00000000 		.long	.LASF204
- 1420 0785 3F       		.sleb128 63
- 1421 0786 0A       		.uleb128 0xa
- 1422 0787 00000000 		.long	.LASF205
- 1423 078b C000     		.sleb128 64
- 1424 078d 0A       		.uleb128 0xa
- 1425 078e 00000000 		.long	.LASF206
- 1426 0792 C100     		.sleb128 65
- 1427 0794 0A       		.uleb128 0xa
- 1428 0795 00000000 		.long	.LASF207
- 1429 0799 C200     		.sleb128 66
- 1430 079b 0A       		.uleb128 0xa
- 1431 079c 00000000 		.long	.LASF208
- 1432 07a0 C300     		.sleb128 67
- 1433 07a2 0A       		.uleb128 0xa
- 1434 07a3 00000000 		.long	.LASF209
- 1435 07a7 C400     		.sleb128 68
- 1436 07a9 00       		.byte	0x0
- 1437 07aa 1A       		.uleb128 0x1a
- 1438 07ab 00000000 		.long	.LASF210
- 1439 07af 04       		.byte	0x4
- 1440 07b0 07       		.byte	0x7
- 1441 07b1 0A01     		.value	0x10a
- 1442 07b3 A9080000 		.long	0x8a9
- 1443 07b7 0A       		.uleb128 0xa
- 1444 07b8 00000000 		.long	.LASF211
- 1445 07bc 00       		.sleb128 0
- 1446 07bd 0A       		.uleb128 0xa
- 1447 07be 00000000 		.long	.LASF212
-
GAS LISTING /tmp/ccIEtKUs.s 			page 33
-
-
- 1448 07c2 3D       		.sleb128 61
- 1449 07c3 0A       		.uleb128 0xa
- 1450 07c4 00000000 		.long	.LASF213
- 1451 07c8 3E       		.sleb128 62
- 1452 07c9 0A       		.uleb128 0xa
- 1453 07ca 00000000 		.long	.LASF214
- 1454 07ce 3F       		.sleb128 63
- 1455 07cf 0A       		.uleb128 0xa
- 1456 07d0 00000000 		.long	.LASF215
- 1457 07d4 C000     		.sleb128 64
- 1458 07d6 0A       		.uleb128 0xa
- 1459 07d7 00000000 		.long	.LASF216
- 1460 07db C100     		.sleb128 65
- 1461 07dd 0A       		.uleb128 0xa
- 1462 07de 00000000 		.long	.LASF217
- 1463 07e2 C200     		.sleb128 66
- 1464 07e4 0A       		.uleb128 0xa
- 1465 07e5 00000000 		.long	.LASF218
- 1466 07e9 C300     		.sleb128 67
- 1467 07eb 0A       		.uleb128 0xa
- 1468 07ec 00000000 		.long	.LASF219
- 1469 07f0 C400     		.sleb128 68
- 1470 07f2 0A       		.uleb128 0xa
- 1471 07f3 00000000 		.long	.LASF220
- 1472 07f7 C500     		.sleb128 69
- 1473 07f9 0A       		.uleb128 0xa
- 1474 07fa 00000000 		.long	.LASF221
- 1475 07fe C600     		.sleb128 70
- 1476 0800 0A       		.uleb128 0xa
- 1477 0801 00000000 		.long	.LASF222
- 1478 0805 C700     		.sleb128 71
- 1479 0807 0A       		.uleb128 0xa
- 1480 0808 00000000 		.long	.LASF223
- 1481 080c C800     		.sleb128 72
- 1482 080e 0A       		.uleb128 0xa
- 1483 080f 00000000 		.long	.LASF224
- 1484 0813 C900     		.sleb128 73
- 1485 0815 0A       		.uleb128 0xa
- 1486 0816 00000000 		.long	.LASF225
- 1487 081a CA00     		.sleb128 74
- 1488 081c 0A       		.uleb128 0xa
- 1489 081d 00000000 		.long	.LASF226
- 1490 0821 CB00     		.sleb128 75
- 1491 0823 0A       		.uleb128 0xa
- 1492 0824 00000000 		.long	.LASF227
- 1493 0828 CC00     		.sleb128 76
- 1494 082a 0A       		.uleb128 0xa
- 1495 082b 00000000 		.long	.LASF228
- 1496 082f CD00     		.sleb128 77
- 1497 0831 0A       		.uleb128 0xa
- 1498 0832 00000000 		.long	.LASF229
- 1499 0836 CE00     		.sleb128 78
- 1500 0838 0A       		.uleb128 0xa
- 1501 0839 00000000 		.long	.LASF230
- 1502 083d CF00     		.sleb128 79
- 1503 083f 0A       		.uleb128 0xa
- 1504 0840 00000000 		.long	.LASF231
-
GAS LISTING /tmp/ccIEtKUs.s 			page 34
-
-
- 1505 0844 D000     		.sleb128 80
- 1506 0846 0A       		.uleb128 0xa
- 1507 0847 00000000 		.long	.LASF232
- 1508 084b D100     		.sleb128 81
- 1509 084d 0A       		.uleb128 0xa
- 1510 084e 00000000 		.long	.LASF233
- 1511 0852 D100     		.sleb128 81
- 1512 0854 0A       		.uleb128 0xa
- 1513 0855 00000000 		.long	.LASF234
- 1514 0859 D200     		.sleb128 82
- 1515 085b 0A       		.uleb128 0xa
- 1516 085c 00000000 		.long	.LASF235
- 1517 0860 D300     		.sleb128 83
- 1518 0862 0A       		.uleb128 0xa
- 1519 0863 00000000 		.long	.LASF236
- 1520 0867 D400     		.sleb128 84
- 1521 0869 0A       		.uleb128 0xa
- 1522 086a 00000000 		.long	.LASF237
- 1523 086e D500     		.sleb128 85
- 1524 0870 0A       		.uleb128 0xa
- 1525 0871 00000000 		.long	.LASF238
- 1526 0875 D600     		.sleb128 86
- 1527 0877 0A       		.uleb128 0xa
- 1528 0878 00000000 		.long	.LASF239
- 1529 087c D700     		.sleb128 87
- 1530 087e 0A       		.uleb128 0xa
- 1531 087f 00000000 		.long	.LASF240
- 1532 0883 D800     		.sleb128 88
- 1533 0885 0A       		.uleb128 0xa
- 1534 0886 00000000 		.long	.LASF241
- 1535 088a D900     		.sleb128 89
- 1536 088c 0A       		.uleb128 0xa
- 1537 088d 00000000 		.long	.LASF242
- 1538 0891 DA00     		.sleb128 90
- 1539 0893 0A       		.uleb128 0xa
- 1540 0894 00000000 		.long	.LASF243
- 1541 0898 DB00     		.sleb128 91
- 1542 089a 0A       		.uleb128 0xa
- 1543 089b 00000000 		.long	.LASF244
- 1544 089f DC00     		.sleb128 92
- 1545 08a1 0A       		.uleb128 0xa
- 1546 08a2 00000000 		.long	.LASF245
- 1547 08a6 DD00     		.sleb128 93
- 1548 08a8 00       		.byte	0x0
- 1549 08a9 1A       		.uleb128 0x1a
- 1550 08aa 00000000 		.long	.LASF246
- 1551 08ae 04       		.byte	0x4
- 1552 08af 07       		.byte	0x7
- 1553 08b0 3401     		.value	0x134
- 1554 08b2 E9090000 		.long	0x9e9
- 1555 08b6 0A       		.uleb128 0xa
- 1556 08b7 00000000 		.long	.LASF247
- 1557 08bb 00       		.sleb128 0
- 1558 08bc 0A       		.uleb128 0xa
- 1559 08bd 00000000 		.long	.LASF248
- 1560 08c1 01       		.sleb128 1
- 1561 08c2 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIEtKUs.s 			page 35
-
-
- 1562 08c3 00000000 		.long	.LASF249
- 1563 08c7 02       		.sleb128 2
- 1564 08c8 0A       		.uleb128 0xa
- 1565 08c9 00000000 		.long	.LASF250
- 1566 08cd 03       		.sleb128 3
- 1567 08ce 0A       		.uleb128 0xa
- 1568 08cf 00000000 		.long	.LASF251
- 1569 08d3 04       		.sleb128 4
- 1570 08d4 0A       		.uleb128 0xa
- 1571 08d5 00000000 		.long	.LASF252
- 1572 08d9 05       		.sleb128 5
- 1573 08da 0A       		.uleb128 0xa
- 1574 08db 00000000 		.long	.LASF253
- 1575 08df 06       		.sleb128 6
- 1576 08e0 0A       		.uleb128 0xa
- 1577 08e1 00000000 		.long	.LASF254
- 1578 08e5 07       		.sleb128 7
- 1579 08e6 0A       		.uleb128 0xa
- 1580 08e7 00000000 		.long	.LASF255
- 1581 08eb 08       		.sleb128 8
- 1582 08ec 0A       		.uleb128 0xa
- 1583 08ed 00000000 		.long	.LASF256
- 1584 08f1 09       		.sleb128 9
- 1585 08f2 0A       		.uleb128 0xa
- 1586 08f3 00000000 		.long	.LASF257
- 1587 08f7 0A       		.sleb128 10
- 1588 08f8 0A       		.uleb128 0xa
- 1589 08f9 00000000 		.long	.LASF258
- 1590 08fd 0B       		.sleb128 11
- 1591 08fe 0A       		.uleb128 0xa
- 1592 08ff 00000000 		.long	.LASF259
- 1593 0903 0C       		.sleb128 12
- 1594 0904 0A       		.uleb128 0xa
- 1595 0905 00000000 		.long	.LASF260
- 1596 0909 0D       		.sleb128 13
- 1597 090a 0A       		.uleb128 0xa
- 1598 090b 00000000 		.long	.LASF261
- 1599 090f 0E       		.sleb128 14
- 1600 0910 0A       		.uleb128 0xa
- 1601 0911 00000000 		.long	.LASF262
- 1602 0915 0F       		.sleb128 15
- 1603 0916 0A       		.uleb128 0xa
- 1604 0917 00000000 		.long	.LASF263
- 1605 091b 10       		.sleb128 16
- 1606 091c 0A       		.uleb128 0xa
- 1607 091d 00000000 		.long	.LASF264
- 1608 0921 11       		.sleb128 17
- 1609 0922 0A       		.uleb128 0xa
- 1610 0923 00000000 		.long	.LASF265
- 1611 0927 12       		.sleb128 18
- 1612 0928 0A       		.uleb128 0xa
- 1613 0929 00000000 		.long	.LASF266
- 1614 092d 13       		.sleb128 19
- 1615 092e 0A       		.uleb128 0xa
- 1616 092f 00000000 		.long	.LASF267
- 1617 0933 14       		.sleb128 20
- 1618 0934 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIEtKUs.s 			page 36
-
-
- 1619 0935 00000000 		.long	.LASF268
- 1620 0939 15       		.sleb128 21
- 1621 093a 0A       		.uleb128 0xa
- 1622 093b 00000000 		.long	.LASF269
- 1623 093f 16       		.sleb128 22
- 1624 0940 0A       		.uleb128 0xa
- 1625 0941 00000000 		.long	.LASF270
- 1626 0945 17       		.sleb128 23
- 1627 0946 0A       		.uleb128 0xa
- 1628 0947 00000000 		.long	.LASF271
- 1629 094b 18       		.sleb128 24
- 1630 094c 0A       		.uleb128 0xa
- 1631 094d 00000000 		.long	.LASF272
- 1632 0951 19       		.sleb128 25
- 1633 0952 0A       		.uleb128 0xa
- 1634 0953 00000000 		.long	.LASF273
- 1635 0957 1A       		.sleb128 26
- 1636 0958 0A       		.uleb128 0xa
- 1637 0959 00000000 		.long	.LASF274
- 1638 095d 1B       		.sleb128 27
- 1639 095e 0A       		.uleb128 0xa
- 1640 095f 00000000 		.long	.LASF275
- 1641 0963 1C       		.sleb128 28
- 1642 0964 0A       		.uleb128 0xa
- 1643 0965 00000000 		.long	.LASF276
- 1644 0969 1D       		.sleb128 29
- 1645 096a 0A       		.uleb128 0xa
- 1646 096b 00000000 		.long	.LASF277
- 1647 096f 1E       		.sleb128 30
- 1648 0970 0A       		.uleb128 0xa
- 1649 0971 00000000 		.long	.LASF278
- 1650 0975 1F       		.sleb128 31
- 1651 0976 0A       		.uleb128 0xa
- 1652 0977 00000000 		.long	.LASF279
- 1653 097b 20       		.sleb128 32
- 1654 097c 0A       		.uleb128 0xa
- 1655 097d 00000000 		.long	.LASF280
- 1656 0981 21       		.sleb128 33
- 1657 0982 0A       		.uleb128 0xa
- 1658 0983 00000000 		.long	.LASF281
- 1659 0987 22       		.sleb128 34
- 1660 0988 0A       		.uleb128 0xa
- 1661 0989 00000000 		.long	.LASF282
- 1662 098d 23       		.sleb128 35
- 1663 098e 0A       		.uleb128 0xa
- 1664 098f 00000000 		.long	.LASF283
- 1665 0993 24       		.sleb128 36
- 1666 0994 0A       		.uleb128 0xa
- 1667 0995 00000000 		.long	.LASF284
- 1668 0999 25       		.sleb128 37
- 1669 099a 0A       		.uleb128 0xa
- 1670 099b 00000000 		.long	.LASF285
- 1671 099f 26       		.sleb128 38
- 1672 09a0 0A       		.uleb128 0xa
- 1673 09a1 00000000 		.long	.LASF286
- 1674 09a5 27       		.sleb128 39
- 1675 09a6 0A       		.uleb128 0xa
-
GAS LISTING /tmp/ccIEtKUs.s 			page 37
-
-
- 1676 09a7 00000000 		.long	.LASF287
- 1677 09ab 28       		.sleb128 40
- 1678 09ac 0A       		.uleb128 0xa
- 1679 09ad 00000000 		.long	.LASF288
- 1680 09b1 29       		.sleb128 41
- 1681 09b2 0A       		.uleb128 0xa
- 1682 09b3 00000000 		.long	.LASF289
- 1683 09b7 29       		.sleb128 41
- 1684 09b8 0A       		.uleb128 0xa
- 1685 09b9 00000000 		.long	.LASF290
- 1686 09bd 2A       		.sleb128 42
- 1687 09be 0A       		.uleb128 0xa
- 1688 09bf 00000000 		.long	.LASF291
- 1689 09c3 2B       		.sleb128 43
- 1690 09c4 0A       		.uleb128 0xa
- 1691 09c5 00000000 		.long	.LASF292
- 1692 09c9 2C       		.sleb128 44
- 1693 09ca 0A       		.uleb128 0xa
- 1694 09cb 00000000 		.long	.LASF293
- 1695 09cf 2D       		.sleb128 45
- 1696 09d0 0A       		.uleb128 0xa
- 1697 09d1 00000000 		.long	.LASF294
- 1698 09d5 2E       		.sleb128 46
- 1699 09d6 0A       		.uleb128 0xa
- 1700 09d7 00000000 		.long	.LASF295
- 1701 09db 2F       		.sleb128 47
- 1702 09dc 0A       		.uleb128 0xa
- 1703 09dd 00000000 		.long	.LASF296
- 1704 09e1 30       		.sleb128 48
- 1705 09e2 0A       		.uleb128 0xa
- 1706 09e3 00000000 		.long	.LASF297
- 1707 09e7 31       		.sleb128 49
- 1708 09e8 00       		.byte	0x0
- 1709 09e9 1B       		.uleb128 0x1b
- 1710 09ea 00000000 		.long	.LASF320
- 1711 09ee 01       		.byte	0x1
- 1712 09ef 48       		.byte	0x48
- 1713 09f0 01       		.byte	0x1
- 1714 09f1 00000000 		.quad	.LFB595
- 1714      00000000 
- 1715 09f9 00000000 		.quad	.LFE595
- 1715      00000000 
- 1716 0a01 00000000 		.long	.LLST0
- 1717 0a05 180A0000 		.long	0xa18
- 1718 0a09 1C       		.uleb128 0x1c
- 1719 0a0a 00000000 		.long	.LASF300
- 1720 0a0e 01       		.byte	0x1
- 1721 0a0f 48       		.byte	0x48
- 1722 0a10 82030000 		.long	0x382
- 1723 0a14 02       		.byte	0x2
- 1724 0a15 91       		.byte	0x91
- 1725 0a16 68       		.sleb128 -24
- 1726 0a17 00       		.byte	0x0
- 1727 0a18 1D       		.uleb128 0x1d
- 1728 0a19 00000000 		.long	.LASF298
- 1729 0a1d 01       		.byte	0x1
- 1730 0a1e 52       		.byte	0x52
-
GAS LISTING /tmp/ccIEtKUs.s 			page 38
-
-
- 1731 0a1f 62000000 		.long	0x62
- 1732 0a23 00000000 		.quad	.LFB596
- 1732      00000000 
- 1733 0a2b 00000000 		.quad	.LFE596
- 1733      00000000 
- 1734 0a33 00000000 		.long	.LLST1
- 1735 0a37 1D       		.uleb128 0x1d
- 1736 0a38 00000000 		.long	.LASF299
- 1737 0a3c 01       		.byte	0x1
- 1738 0a3d 60       		.byte	0x60
- 1739 0a3e 62000000 		.long	0x62
- 1740 0a42 00000000 		.quad	.LFB597
- 1740      00000000 
- 1741 0a4a 00000000 		.quad	.LFE597
- 1741      00000000 
- 1742 0a52 00000000 		.long	.LLST2
- 1743 0a56 1E       		.uleb128 0x1e
- 1744 0a57 00000000 		.long	.LASF304
- 1745 0a5b 01       		.byte	0x1
- 1746 0a5c 6C       		.byte	0x6c
- 1747 0a5d 01       		.byte	0x1
- 1748 0a5e 7B000000 		.long	0x7b
- 1749 0a62 00000000 		.quad	.LFB598
- 1749      00000000 
- 1750 0a6a 00000000 		.quad	.LFE598
- 1750      00000000 
- 1751 0a72 00000000 		.long	.LLST3
- 1752 0a76 A50A0000 		.long	0xaa5
- 1753 0a7a 1C       		.uleb128 0x1c
- 1754 0a7b 00000000 		.long	.LASF301
- 1755 0a7f 01       		.byte	0x1
- 1756 0a80 6C       		.byte	0x6c
- 1757 0a81 86000000 		.long	0x86
- 1758 0a85 02       		.byte	0x2
- 1759 0a86 91       		.byte	0x91
- 1760 0a87 68       		.sleb128 -24
- 1761 0a88 1C       		.uleb128 0x1c
- 1762 0a89 00000000 		.long	.LASF302
- 1763 0a8d 01       		.byte	0x1
- 1764 0a8e 6C       		.byte	0x6c
- 1765 0a8f 8B000000 		.long	0x8b
- 1766 0a93 02       		.byte	0x2
- 1767 0a94 91       		.byte	0x91
- 1768 0a95 60       		.sleb128 -32
- 1769 0a96 1C       		.uleb128 0x1c
- 1770 0a97 00000000 		.long	.LASF303
- 1771 0a9b 01       		.byte	0x1
- 1772 0a9c 6D       		.byte	0x6d
- 1773 0a9d 62000000 		.long	0x62
- 1774 0aa1 02       		.byte	0x2
- 1775 0aa2 91       		.byte	0x91
- 1776 0aa3 5C       		.sleb128 -36
- 1777 0aa4 00       		.byte	0x0
- 1778 0aa5 1E       		.uleb128 0x1e
- 1779 0aa6 00000000 		.long	.LASF305
- 1780 0aaa 01       		.byte	0x1
- 1781 0aab 79       		.byte	0x79
-
GAS LISTING /tmp/ccIEtKUs.s 			page 39
-
-
- 1782 0aac 01       		.byte	0x1
- 1783 0aad 7B000000 		.long	0x7b
- 1784 0ab1 00000000 		.quad	.LFB599
- 1784      00000000 
- 1785 0ab9 00000000 		.quad	.LFE599
- 1785      00000000 
- 1786 0ac1 00000000 		.long	.LLST4
- 1787 0ac5 F40A0000 		.long	0xaf4
- 1788 0ac9 1C       		.uleb128 0x1c
- 1789 0aca 00000000 		.long	.LASF306
- 1790 0ace 01       		.byte	0x1
- 1791 0acf 79       		.byte	0x79
- 1792 0ad0 86000000 		.long	0x86
- 1793 0ad4 02       		.byte	0x2
- 1794 0ad5 91       		.byte	0x91
- 1795 0ad6 68       		.sleb128 -24
- 1796 0ad7 1C       		.uleb128 0x1c
- 1797 0ad8 00000000 		.long	.LASF302
- 1798 0adc 01       		.byte	0x1
- 1799 0add 7A       		.byte	0x7a
- 1800 0ade 8B000000 		.long	0x8b
- 1801 0ae2 02       		.byte	0x2
- 1802 0ae3 91       		.byte	0x91
- 1803 0ae4 60       		.sleb128 -32
- 1804 0ae5 1C       		.uleb128 0x1c
- 1805 0ae6 00000000 		.long	.LASF303
- 1806 0aea 01       		.byte	0x1
- 1807 0aeb 7B       		.byte	0x7b
- 1808 0aec 62000000 		.long	0x62
- 1809 0af0 02       		.byte	0x2
- 1810 0af1 91       		.byte	0x91
- 1811 0af2 5C       		.sleb128 -36
- 1812 0af3 00       		.byte	0x0
- 1813 0af4 1E       		.uleb128 0x1e
- 1814 0af5 00000000 		.long	.LASF307
- 1815 0af9 01       		.byte	0x1
- 1816 0afa 89       		.byte	0x89
- 1817 0afb 01       		.byte	0x1
- 1818 0afc 63010000 		.long	0x163
- 1819 0b00 00000000 		.quad	.LFB600
- 1819      00000000 
- 1820 0b08 00000000 		.quad	.LFE600
- 1820      00000000 
- 1821 0b10 00000000 		.long	.LLST5
- 1822 0b14 350B0000 		.long	0xb35
- 1823 0b18 1C       		.uleb128 0x1c
- 1824 0b19 00000000 		.long	.LASF308
- 1825 0b1d 01       		.byte	0x1
- 1826 0b1e 89       		.byte	0x89
- 1827 0b1f 63010000 		.long	0x163
- 1828 0b23 02       		.byte	0x2
- 1829 0b24 91       		.byte	0x91
- 1830 0b25 60       		.sleb128 -32
- 1831 0b26 1C       		.uleb128 0x1c
- 1832 0b27 00000000 		.long	.LASF301
- 1833 0b2b 01       		.byte	0x1
- 1834 0b2c 8A       		.byte	0x8a
-
GAS LISTING /tmp/ccIEtKUs.s 			page 40
-
-
- 1835 0b2d 1E010000 		.long	0x11e
- 1836 0b31 02       		.byte	0x2
- 1837 0b32 91       		.byte	0x91
- 1838 0b33 58       		.sleb128 -40
- 1839 0b34 00       		.byte	0x0
- 1840 0b35 1E       		.uleb128 0x1e
- 1841 0b36 00000000 		.long	.LASF309
- 1842 0b3a 01       		.byte	0x1
- 1843 0b3b 9E       		.byte	0x9e
- 1844 0b3c 01       		.byte	0x1
- 1845 0b3d 63010000 		.long	0x163
- 1846 0b41 00000000 		.quad	.LFB601
- 1846      00000000 
- 1847 0b49 00000000 		.quad	.LFE601
- 1847      00000000 
- 1848 0b51 00000000 		.long	.LLST6
- 1849 0b55 760B0000 		.long	0xb76
- 1850 0b59 1C       		.uleb128 0x1c
- 1851 0b5a 00000000 		.long	.LASF308
- 1852 0b5e 01       		.byte	0x1
- 1853 0b5f 9E       		.byte	0x9e
- 1854 0b60 63010000 		.long	0x163
- 1855 0b64 02       		.byte	0x2
- 1856 0b65 91       		.byte	0x91
- 1857 0b66 60       		.sleb128 -32
- 1858 0b67 1C       		.uleb128 0x1c
- 1859 0b68 00000000 		.long	.LASF306
- 1860 0b6c 01       		.byte	0x1
- 1861 0b6d 9F       		.byte	0x9f
- 1862 0b6e 1E010000 		.long	0x11e
- 1863 0b72 02       		.byte	0x2
- 1864 0b73 91       		.byte	0x91
- 1865 0b74 58       		.sleb128 -40
- 1866 0b75 00       		.byte	0x0
- 1867 0b76 1D       		.uleb128 0x1d
- 1868 0b77 00000000 		.long	.LASF310
- 1869 0b7b 01       		.byte	0x1
- 1870 0b7c B3       		.byte	0xb3
- 1871 0b7d 950B0000 		.long	0xb95
- 1872 0b81 00000000 		.quad	.LFB602
- 1872      00000000 
- 1873 0b89 00000000 		.quad	.LFE602
- 1873      00000000 
- 1874 0b91 00000000 		.long	.LLST7
- 1875 0b95 02       		.uleb128 0x2
- 1876 0b96 01       		.byte	0x1
- 1877 0b97 02       		.byte	0x2
- 1878 0b98 00000000 		.long	.LASF311
- 1879 0b9c 1F       		.uleb128 0x1f
- 1880 0b9d 01       		.byte	0x1
- 1881 0b9e 00000000 		.long	.LASF321
- 1882 0ba2 01       		.byte	0x1
- 1883 0ba3 E2       		.byte	0xe2
- 1884 0ba4 01       		.byte	0x1
- 1885 0ba5 7B000000 		.long	0x7b
- 1886 0ba9 00000000 		.quad	.LFB603
- 1886      00000000 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 41
-
-
- 1887 0bb1 00000000 		.quad	.LFE603
- 1887      00000000 
- 1888 0bb9 00000000 		.long	.LLST8
- 1889 0bbd 050C0000 		.long	0xc05
- 1890 0bc1 1C       		.uleb128 0x1c
- 1891 0bc2 00000000 		.long	.LASF312
- 1892 0bc6 01       		.byte	0x1
- 1893 0bc7 E2       		.byte	0xe2
- 1894 0bc8 050C0000 		.long	0xc05
- 1895 0bcc 02       		.byte	0x2
- 1896 0bcd 91       		.byte	0x91
- 1897 0bce 58       		.sleb128 -40
- 1898 0bcf 20       		.uleb128 0x20
- 1899 0bd0 726300   		.string	"rc"
- 1900 0bd3 01       		.byte	0x1
- 1901 0bd4 E4       		.byte	0xe4
- 1902 0bd5 7B000000 		.long	0x7b
- 1903 0bd9 02       		.byte	0x2
- 1904 0bda 91       		.byte	0x91
- 1905 0bdb 6C       		.sleb128 -20
- 1906 0bdc 21       		.uleb128 0x21
- 1907 0bdd 00000000 		.long	.LASF313
- 1908 0be1 210C0000 		.long	0xc21
- 1909 0be5 01       		.byte	0x1
- 1910 0be6 09       		.byte	0x9
- 1911 0be7 03       		.byte	0x3
- 1912 0be8 00000000 		.quad	__PRETTY_FUNCTION__.7213
- 1912      00000000 
- 1913 0bf0 21       		.uleb128 0x21
- 1914 0bf1 00000000 		.long	.LASF314
- 1915 0bf5 260C0000 		.long	0xc26
- 1916 0bf9 01       		.byte	0x1
- 1917 0bfa 09       		.byte	0x9
- 1918 0bfb 03       		.byte	0x3
- 1919 0bfc 00000000 		.quad	__func__.7214
- 1919      00000000 
- 1920 0c04 00       		.byte	0x0
- 1921 0c05 07       		.uleb128 0x7
- 1922 0c06 08       		.byte	0x8
- 1923 0c07 0B0C0000 		.long	0xc0b
- 1924 0c0b 07       		.uleb128 0x7
- 1925 0c0c 08       		.byte	0x8
- 1926 0c0d AE030000 		.long	0x3ae
- 1927 0c11 22       		.uleb128 0x22
- 1928 0c12 96000000 		.long	0x96
- 1929 0c16 210C0000 		.long	0xc21
- 1930 0c1a 0D       		.uleb128 0xd
- 1931 0c1b 88000000 		.long	0x88
- 1932 0c1f 1A       		.byte	0x1a
- 1933 0c20 00       		.byte	0x0
- 1934 0c21 08       		.uleb128 0x8
- 1935 0c22 110C0000 		.long	0xc11
- 1936 0c26 08       		.uleb128 0x8
- 1937 0c27 110C0000 		.long	0xc11
- 1938 0c2b 22       		.uleb128 0x22
- 1939 0c2c 96000000 		.long	0x96
- 1940 0c30 3B0C0000 		.long	0xc3b
-
GAS LISTING /tmp/ccIEtKUs.s 			page 42
-
-
- 1941 0c34 0D       		.uleb128 0xd
- 1942 0c35 88000000 		.long	0x88
- 1943 0c39 09       		.byte	0x9
- 1944 0c3a 00       		.byte	0x0
- 1945 0c3b 23       		.uleb128 0x23
- 1946 0c3c 00000000 		.long	.LASF315
- 1947 0c40 01       		.byte	0x1
- 1948 0c41 3C       		.byte	0x3c
- 1949 0c42 500C0000 		.long	0xc50
- 1950 0c46 09       		.byte	0x9
- 1951 0c47 03       		.byte	0x3
- 1952 0c48 00000000 		.quad	KNullBlockCipherVecRegaes_ncbi_name
- 1952      00000000 
- 1953 0c50 08       		.uleb128 0x8
- 1954 0c51 2B0C0000 		.long	0xc2b
- 1955 0c55 23       		.uleb128 0x23
- 1956 0c56 00000000 		.long	.LASF316
- 1957 0c5a 01       		.byte	0x1
- 1958 0c5b CE       		.byte	0xce
- 1959 0c5c 6A0C0000 		.long	0xc6a
- 1960 0c60 09       		.byte	0x9
- 1961 0c61 03       		.byte	0x3
- 1962 0c62 00000000 		.quad	KNullBlockCipherVecReg_vt_
- 1962      00000000 
- 1963 0c6a 08       		.uleb128 0x8
- 1964 0c6b C1020000 		.long	0x2c1
- 1965 0c6f 00       		.byte	0x0
- 1966              		.section	.debug_abbrev
- 1967 0000 01       		.uleb128 0x1
- 1968 0001 11       		.uleb128 0x11
- 1969 0002 01       		.byte	0x1
- 1970 0003 25       		.uleb128 0x25
- 1971 0004 0E       		.uleb128 0xe
- 1972 0005 13       		.uleb128 0x13
- 1973 0006 0B       		.uleb128 0xb
- 1974 0007 03       		.uleb128 0x3
- 1975 0008 0E       		.uleb128 0xe
- 1976 0009 1B       		.uleb128 0x1b
- 1977 000a 0E       		.uleb128 0xe
- 1978 000b 11       		.uleb128 0x11
- 1979 000c 01       		.uleb128 0x1
- 1980 000d 12       		.uleb128 0x12
- 1981 000e 01       		.uleb128 0x1
- 1982 000f 10       		.uleb128 0x10
- 1983 0010 06       		.uleb128 0x6
- 1984 0011 00       		.byte	0x0
- 1985 0012 00       		.byte	0x0
- 1986 0013 02       		.uleb128 0x2
- 1987 0014 24       		.uleb128 0x24
- 1988 0015 00       		.byte	0x0
- 1989 0016 0B       		.uleb128 0xb
- 1990 0017 0B       		.uleb128 0xb
- 1991 0018 3E       		.uleb128 0x3e
- 1992 0019 0B       		.uleb128 0xb
- 1993 001a 03       		.uleb128 0x3
- 1994 001b 0E       		.uleb128 0xe
- 1995 001c 00       		.byte	0x0
-
GAS LISTING /tmp/ccIEtKUs.s 			page 43
-
-
- 1996 001d 00       		.byte	0x0
- 1997 001e 03       		.uleb128 0x3
- 1998 001f 24       		.uleb128 0x24
- 1999 0020 00       		.byte	0x0
- 2000 0021 0B       		.uleb128 0xb
- 2001 0022 0B       		.uleb128 0xb
- 2002 0023 3E       		.uleb128 0x3e
- 2003 0024 0B       		.uleb128 0xb
- 2004 0025 03       		.uleb128 0x3
- 2005 0026 08       		.uleb128 0x8
- 2006 0027 00       		.byte	0x0
- 2007 0028 00       		.byte	0x0
- 2008 0029 04       		.uleb128 0x4
- 2009 002a 16       		.uleb128 0x16
- 2010 002b 00       		.byte	0x0
- 2011 002c 03       		.uleb128 0x3
- 2012 002d 0E       		.uleb128 0xe
- 2013 002e 3A       		.uleb128 0x3a
- 2014 002f 0B       		.uleb128 0xb
- 2015 0030 3B       		.uleb128 0x3b
- 2016 0031 0B       		.uleb128 0xb
- 2017 0032 49       		.uleb128 0x49
- 2018 0033 13       		.uleb128 0x13
- 2019 0034 00       		.byte	0x0
- 2020 0035 00       		.byte	0x0
- 2021 0036 05       		.uleb128 0x5
- 2022 0037 0F       		.uleb128 0xf
- 2023 0038 00       		.byte	0x0
- 2024 0039 0B       		.uleb128 0xb
- 2025 003a 0B       		.uleb128 0xb
- 2026 003b 00       		.byte	0x0
- 2027 003c 00       		.byte	0x0
- 2028 003d 06       		.uleb128 0x6
- 2029 003e 24       		.uleb128 0x24
- 2030 003f 00       		.byte	0x0
- 2031 0040 0B       		.uleb128 0xb
- 2032 0041 0B       		.uleb128 0xb
- 2033 0042 3E       		.uleb128 0x3e
- 2034 0043 0B       		.uleb128 0xb
- 2035 0044 00       		.byte	0x0
- 2036 0045 00       		.byte	0x0
- 2037 0046 07       		.uleb128 0x7
- 2038 0047 0F       		.uleb128 0xf
- 2039 0048 00       		.byte	0x0
- 2040 0049 0B       		.uleb128 0xb
- 2041 004a 0B       		.uleb128 0xb
- 2042 004b 49       		.uleb128 0x49
- 2043 004c 13       		.uleb128 0x13
- 2044 004d 00       		.byte	0x0
- 2045 004e 00       		.byte	0x0
- 2046 004f 08       		.uleb128 0x8
- 2047 0050 26       		.uleb128 0x26
- 2048 0051 00       		.byte	0x0
- 2049 0052 49       		.uleb128 0x49
- 2050 0053 13       		.uleb128 0x13
- 2051 0054 00       		.byte	0x0
- 2052 0055 00       		.byte	0x0
-
GAS LISTING /tmp/ccIEtKUs.s 			page 44
-
-
- 2053 0056 09       		.uleb128 0x9
- 2054 0057 04       		.uleb128 0x4
- 2055 0058 01       		.byte	0x1
- 2056 0059 0B       		.uleb128 0xb
- 2057 005a 0B       		.uleb128 0xb
- 2058 005b 3A       		.uleb128 0x3a
- 2059 005c 0B       		.uleb128 0xb
- 2060 005d 3B       		.uleb128 0x3b
- 2061 005e 0B       		.uleb128 0xb
- 2062 005f 01       		.uleb128 0x1
- 2063 0060 13       		.uleb128 0x13
- 2064 0061 00       		.byte	0x0
- 2065 0062 00       		.byte	0x0
- 2066 0063 0A       		.uleb128 0xa
- 2067 0064 28       		.uleb128 0x28
- 2068 0065 00       		.byte	0x0
- 2069 0066 03       		.uleb128 0x3
- 2070 0067 0E       		.uleb128 0xe
- 2071 0068 1C       		.uleb128 0x1c
- 2072 0069 0D       		.uleb128 0xd
- 2073 006a 00       		.byte	0x0
- 2074 006b 00       		.byte	0x0
- 2075 006c 0B       		.uleb128 0xb
- 2076 006d 26       		.uleb128 0x26
- 2077 006e 00       		.byte	0x0
- 2078 006f 00       		.byte	0x0
- 2079 0070 00       		.byte	0x0
- 2080 0071 0C       		.uleb128 0xc
- 2081 0072 01       		.uleb128 0x1
- 2082 0073 01       		.byte	0x1
- 2083 0074 8742     		.uleb128 0x2107
- 2084 0076 0C       		.uleb128 0xc
- 2085 0077 49       		.uleb128 0x49
- 2086 0078 13       		.uleb128 0x13
- 2087 0079 01       		.uleb128 0x1
- 2088 007a 13       		.uleb128 0x13
- 2089 007b 00       		.byte	0x0
- 2090 007c 00       		.byte	0x0
- 2091 007d 0D       		.uleb128 0xd
- 2092 007e 21       		.uleb128 0x21
- 2093 007f 00       		.byte	0x0
- 2094 0080 49       		.uleb128 0x49
- 2095 0081 13       		.uleb128 0x13
- 2096 0082 2F       		.uleb128 0x2f
- 2097 0083 0B       		.uleb128 0xb
- 2098 0084 00       		.byte	0x0
- 2099 0085 00       		.byte	0x0
- 2100 0086 0E       		.uleb128 0xe
- 2101 0087 13       		.uleb128 0x13
- 2102 0088 01       		.byte	0x1
- 2103 0089 03       		.uleb128 0x3
- 2104 008a 0E       		.uleb128 0xe
- 2105 008b 0B       		.uleb128 0xb
- 2106 008c 0B       		.uleb128 0xb
- 2107 008d 3A       		.uleb128 0x3a
- 2108 008e 0B       		.uleb128 0xb
- 2109 008f 3B       		.uleb128 0x3b
-
GAS LISTING /tmp/ccIEtKUs.s 			page 45
-
-
- 2110 0090 0B       		.uleb128 0xb
- 2111 0091 01       		.uleb128 0x1
- 2112 0092 13       		.uleb128 0x13
- 2113 0093 00       		.byte	0x0
- 2114 0094 00       		.byte	0x0
- 2115 0095 0F       		.uleb128 0xf
- 2116 0096 0D       		.uleb128 0xd
- 2117 0097 00       		.byte	0x0
- 2118 0098 03       		.uleb128 0x3
- 2119 0099 08       		.uleb128 0x8
- 2120 009a 3A       		.uleb128 0x3a
- 2121 009b 0B       		.uleb128 0xb
- 2122 009c 3B       		.uleb128 0x3b
- 2123 009d 0B       		.uleb128 0xb
- 2124 009e 49       		.uleb128 0x49
- 2125 009f 13       		.uleb128 0x13
- 2126 00a0 38       		.uleb128 0x38
- 2127 00a1 0A       		.uleb128 0xa
- 2128 00a2 00       		.byte	0x0
- 2129 00a3 00       		.byte	0x0
- 2130 00a4 10       		.uleb128 0x10
- 2131 00a5 0D       		.uleb128 0xd
- 2132 00a6 00       		.byte	0x0
- 2133 00a7 03       		.uleb128 0x3
- 2134 00a8 0E       		.uleb128 0xe
- 2135 00a9 3A       		.uleb128 0x3a
- 2136 00aa 0B       		.uleb128 0xb
- 2137 00ab 3B       		.uleb128 0x3b
- 2138 00ac 0B       		.uleb128 0xb
- 2139 00ad 49       		.uleb128 0x49
- 2140 00ae 13       		.uleb128 0x13
- 2141 00af 38       		.uleb128 0x38
- 2142 00b0 0A       		.uleb128 0xa
- 2143 00b1 00       		.byte	0x0
- 2144 00b2 00       		.byte	0x0
- 2145 00b3 11       		.uleb128 0x11
- 2146 00b4 17       		.uleb128 0x17
- 2147 00b5 01       		.byte	0x1
- 2148 00b6 03       		.uleb128 0x3
- 2149 00b7 0E       		.uleb128 0xe
- 2150 00b8 0B       		.uleb128 0xb
- 2151 00b9 0B       		.uleb128 0xb
- 2152 00ba 3A       		.uleb128 0x3a
- 2153 00bb 0B       		.uleb128 0xb
- 2154 00bc 3B       		.uleb128 0x3b
- 2155 00bd 0B       		.uleb128 0xb
- 2156 00be 01       		.uleb128 0x1
- 2157 00bf 13       		.uleb128 0x13
- 2158 00c0 00       		.byte	0x0
- 2159 00c1 00       		.byte	0x0
- 2160 00c2 12       		.uleb128 0x12
- 2161 00c3 0D       		.uleb128 0xd
- 2162 00c4 00       		.byte	0x0
- 2163 00c5 03       		.uleb128 0x3
- 2164 00c6 0E       		.uleb128 0xe
- 2165 00c7 3A       		.uleb128 0x3a
- 2166 00c8 0B       		.uleb128 0xb
-
GAS LISTING /tmp/ccIEtKUs.s 			page 46
-
-
- 2167 00c9 3B       		.uleb128 0x3b
- 2168 00ca 0B       		.uleb128 0xb
- 2169 00cb 49       		.uleb128 0x49
- 2170 00cc 13       		.uleb128 0x13
- 2171 00cd 00       		.byte	0x0
- 2172 00ce 00       		.byte	0x0
- 2173 00cf 13       		.uleb128 0x13
- 2174 00d0 0D       		.uleb128 0xd
- 2175 00d1 00       		.byte	0x0
- 2176 00d2 03       		.uleb128 0x3
- 2177 00d3 08       		.uleb128 0x8
- 2178 00d4 3A       		.uleb128 0x3a
- 2179 00d5 0B       		.uleb128 0xb
- 2180 00d6 3B       		.uleb128 0x3b
- 2181 00d7 0B       		.uleb128 0xb
- 2182 00d8 49       		.uleb128 0x49
- 2183 00d9 13       		.uleb128 0x13
- 2184 00da 00       		.byte	0x0
- 2185 00db 00       		.byte	0x0
- 2186 00dc 14       		.uleb128 0x14
- 2187 00dd 15       		.uleb128 0x15
- 2188 00de 01       		.byte	0x1
- 2189 00df 27       		.uleb128 0x27
- 2190 00e0 0C       		.uleb128 0xc
- 2191 00e1 01       		.uleb128 0x1
- 2192 00e2 13       		.uleb128 0x13
- 2193 00e3 00       		.byte	0x0
- 2194 00e4 00       		.byte	0x0
- 2195 00e5 15       		.uleb128 0x15
- 2196 00e6 05       		.uleb128 0x5
- 2197 00e7 00       		.byte	0x0
- 2198 00e8 49       		.uleb128 0x49
- 2199 00e9 13       		.uleb128 0x13
- 2200 00ea 00       		.byte	0x0
- 2201 00eb 00       		.byte	0x0
- 2202 00ec 16       		.uleb128 0x16
- 2203 00ed 15       		.uleb128 0x15
- 2204 00ee 01       		.byte	0x1
- 2205 00ef 49       		.uleb128 0x49
- 2206 00f0 13       		.uleb128 0x13
- 2207 00f1 01       		.uleb128 0x1
- 2208 00f2 13       		.uleb128 0x13
- 2209 00f3 00       		.byte	0x0
- 2210 00f4 00       		.byte	0x0
- 2211 00f5 17       		.uleb128 0x17
- 2212 00f6 18       		.uleb128 0x18
- 2213 00f7 00       		.byte	0x0
- 2214 00f8 00       		.byte	0x0
- 2215 00f9 00       		.byte	0x0
- 2216 00fa 18       		.uleb128 0x18
- 2217 00fb 15       		.uleb128 0x15
- 2218 00fc 01       		.byte	0x1
- 2219 00fd 27       		.uleb128 0x27
- 2220 00fe 0C       		.uleb128 0xc
- 2221 00ff 49       		.uleb128 0x49
- 2222 0100 13       		.uleb128 0x13
- 2223 0101 01       		.uleb128 0x1
-
GAS LISTING /tmp/ccIEtKUs.s 			page 47
-
-
- 2224 0102 13       		.uleb128 0x13
- 2225 0103 00       		.byte	0x0
- 2226 0104 00       		.byte	0x0
- 2227 0105 19       		.uleb128 0x19
- 2228 0106 04       		.uleb128 0x4
- 2229 0107 01       		.byte	0x1
- 2230 0108 03       		.uleb128 0x3
- 2231 0109 0E       		.uleb128 0xe
- 2232 010a 0B       		.uleb128 0xb
- 2233 010b 0B       		.uleb128 0xb
- 2234 010c 3A       		.uleb128 0x3a
- 2235 010d 0B       		.uleb128 0xb
- 2236 010e 3B       		.uleb128 0x3b
- 2237 010f 0B       		.uleb128 0xb
- 2238 0110 01       		.uleb128 0x1
- 2239 0111 13       		.uleb128 0x13
- 2240 0112 00       		.byte	0x0
- 2241 0113 00       		.byte	0x0
- 2242 0114 1A       		.uleb128 0x1a
- 2243 0115 04       		.uleb128 0x4
- 2244 0116 01       		.byte	0x1
- 2245 0117 03       		.uleb128 0x3
- 2246 0118 0E       		.uleb128 0xe
- 2247 0119 0B       		.uleb128 0xb
- 2248 011a 0B       		.uleb128 0xb
- 2249 011b 3A       		.uleb128 0x3a
- 2250 011c 0B       		.uleb128 0xb
- 2251 011d 3B       		.uleb128 0x3b
- 2252 011e 05       		.uleb128 0x5
- 2253 011f 01       		.uleb128 0x1
- 2254 0120 13       		.uleb128 0x13
- 2255 0121 00       		.byte	0x0
- 2256 0122 00       		.byte	0x0
- 2257 0123 1B       		.uleb128 0x1b
- 2258 0124 2E       		.uleb128 0x2e
- 2259 0125 01       		.byte	0x1
- 2260 0126 03       		.uleb128 0x3
- 2261 0127 0E       		.uleb128 0xe
- 2262 0128 3A       		.uleb128 0x3a
- 2263 0129 0B       		.uleb128 0xb
- 2264 012a 3B       		.uleb128 0x3b
- 2265 012b 0B       		.uleb128 0xb
- 2266 012c 27       		.uleb128 0x27
- 2267 012d 0C       		.uleb128 0xc
- 2268 012e 11       		.uleb128 0x11
- 2269 012f 01       		.uleb128 0x1
- 2270 0130 12       		.uleb128 0x12
- 2271 0131 01       		.uleb128 0x1
- 2272 0132 40       		.uleb128 0x40
- 2273 0133 06       		.uleb128 0x6
- 2274 0134 01       		.uleb128 0x1
- 2275 0135 13       		.uleb128 0x13
- 2276 0136 00       		.byte	0x0
- 2277 0137 00       		.byte	0x0
- 2278 0138 1C       		.uleb128 0x1c
- 2279 0139 05       		.uleb128 0x5
- 2280 013a 00       		.byte	0x0
-
GAS LISTING /tmp/ccIEtKUs.s 			page 48
-
-
- 2281 013b 03       		.uleb128 0x3
- 2282 013c 0E       		.uleb128 0xe
- 2283 013d 3A       		.uleb128 0x3a
- 2284 013e 0B       		.uleb128 0xb
- 2285 013f 3B       		.uleb128 0x3b
- 2286 0140 0B       		.uleb128 0xb
- 2287 0141 49       		.uleb128 0x49
- 2288 0142 13       		.uleb128 0x13
- 2289 0143 02       		.uleb128 0x2
- 2290 0144 0A       		.uleb128 0xa
- 2291 0145 00       		.byte	0x0
- 2292 0146 00       		.byte	0x0
- 2293 0147 1D       		.uleb128 0x1d
- 2294 0148 2E       		.uleb128 0x2e
- 2295 0149 00       		.byte	0x0
- 2296 014a 03       		.uleb128 0x3
- 2297 014b 0E       		.uleb128 0xe
- 2298 014c 3A       		.uleb128 0x3a
- 2299 014d 0B       		.uleb128 0xb
- 2300 014e 3B       		.uleb128 0x3b
- 2301 014f 0B       		.uleb128 0xb
- 2302 0150 49       		.uleb128 0x49
- 2303 0151 13       		.uleb128 0x13
- 2304 0152 11       		.uleb128 0x11
- 2305 0153 01       		.uleb128 0x1
- 2306 0154 12       		.uleb128 0x12
- 2307 0155 01       		.uleb128 0x1
- 2308 0156 40       		.uleb128 0x40
- 2309 0157 06       		.uleb128 0x6
- 2310 0158 00       		.byte	0x0
- 2311 0159 00       		.byte	0x0
- 2312 015a 1E       		.uleb128 0x1e
- 2313 015b 2E       		.uleb128 0x2e
- 2314 015c 01       		.byte	0x1
- 2315 015d 03       		.uleb128 0x3
- 2316 015e 0E       		.uleb128 0xe
- 2317 015f 3A       		.uleb128 0x3a
- 2318 0160 0B       		.uleb128 0xb
- 2319 0161 3B       		.uleb128 0x3b
- 2320 0162 0B       		.uleb128 0xb
- 2321 0163 27       		.uleb128 0x27
- 2322 0164 0C       		.uleb128 0xc
- 2323 0165 49       		.uleb128 0x49
- 2324 0166 13       		.uleb128 0x13
- 2325 0167 11       		.uleb128 0x11
- 2326 0168 01       		.uleb128 0x1
- 2327 0169 12       		.uleb128 0x12
- 2328 016a 01       		.uleb128 0x1
- 2329 016b 40       		.uleb128 0x40
- 2330 016c 06       		.uleb128 0x6
- 2331 016d 01       		.uleb128 0x1
- 2332 016e 13       		.uleb128 0x13
- 2333 016f 00       		.byte	0x0
- 2334 0170 00       		.byte	0x0
- 2335 0171 1F       		.uleb128 0x1f
- 2336 0172 2E       		.uleb128 0x2e
- 2337 0173 01       		.byte	0x1
-
GAS LISTING /tmp/ccIEtKUs.s 			page 49
-
-
- 2338 0174 3F       		.uleb128 0x3f
- 2339 0175 0C       		.uleb128 0xc
- 2340 0176 03       		.uleb128 0x3
- 2341 0177 0E       		.uleb128 0xe
- 2342 0178 3A       		.uleb128 0x3a
- 2343 0179 0B       		.uleb128 0xb
- 2344 017a 3B       		.uleb128 0x3b
- 2345 017b 0B       		.uleb128 0xb
- 2346 017c 27       		.uleb128 0x27
- 2347 017d 0C       		.uleb128 0xc
- 2348 017e 49       		.uleb128 0x49
- 2349 017f 13       		.uleb128 0x13
- 2350 0180 11       		.uleb128 0x11
- 2351 0181 01       		.uleb128 0x1
- 2352 0182 12       		.uleb128 0x12
- 2353 0183 01       		.uleb128 0x1
- 2354 0184 40       		.uleb128 0x40
- 2355 0185 06       		.uleb128 0x6
- 2356 0186 01       		.uleb128 0x1
- 2357 0187 13       		.uleb128 0x13
- 2358 0188 00       		.byte	0x0
- 2359 0189 00       		.byte	0x0
- 2360 018a 20       		.uleb128 0x20
- 2361 018b 34       		.uleb128 0x34
- 2362 018c 00       		.byte	0x0
- 2363 018d 03       		.uleb128 0x3
- 2364 018e 08       		.uleb128 0x8
- 2365 018f 3A       		.uleb128 0x3a
- 2366 0190 0B       		.uleb128 0xb
- 2367 0191 3B       		.uleb128 0x3b
- 2368 0192 0B       		.uleb128 0xb
- 2369 0193 49       		.uleb128 0x49
- 2370 0194 13       		.uleb128 0x13
- 2371 0195 02       		.uleb128 0x2
- 2372 0196 0A       		.uleb128 0xa
- 2373 0197 00       		.byte	0x0
- 2374 0198 00       		.byte	0x0
- 2375 0199 21       		.uleb128 0x21
- 2376 019a 34       		.uleb128 0x34
- 2377 019b 00       		.byte	0x0
- 2378 019c 03       		.uleb128 0x3
- 2379 019d 0E       		.uleb128 0xe
- 2380 019e 49       		.uleb128 0x49
- 2381 019f 13       		.uleb128 0x13
- 2382 01a0 34       		.uleb128 0x34
- 2383 01a1 0C       		.uleb128 0xc
- 2384 01a2 02       		.uleb128 0x2
- 2385 01a3 0A       		.uleb128 0xa
- 2386 01a4 00       		.byte	0x0
- 2387 01a5 00       		.byte	0x0
- 2388 01a6 22       		.uleb128 0x22
- 2389 01a7 01       		.uleb128 0x1
- 2390 01a8 01       		.byte	0x1
- 2391 01a9 49       		.uleb128 0x49
- 2392 01aa 13       		.uleb128 0x13
- 2393 01ab 01       		.uleb128 0x1
- 2394 01ac 13       		.uleb128 0x13
-
GAS LISTING /tmp/ccIEtKUs.s 			page 50
-
-
- 2395 01ad 00       		.byte	0x0
- 2396 01ae 00       		.byte	0x0
- 2397 01af 23       		.uleb128 0x23
- 2398 01b0 34       		.uleb128 0x34
- 2399 01b1 00       		.byte	0x0
- 2400 01b2 03       		.uleb128 0x3
- 2401 01b3 0E       		.uleb128 0xe
- 2402 01b4 3A       		.uleb128 0x3a
- 2403 01b5 0B       		.uleb128 0xb
- 2404 01b6 3B       		.uleb128 0x3b
- 2405 01b7 0B       		.uleb128 0xb
- 2406 01b8 49       		.uleb128 0x49
- 2407 01b9 13       		.uleb128 0x13
- 2408 01ba 02       		.uleb128 0x2
- 2409 01bb 0A       		.uleb128 0xa
- 2410 01bc 00       		.byte	0x0
- 2411 01bd 00       		.byte	0x0
- 2412 01be 00       		.byte	0x0
- 2413              		.section	.debug_pubnames,"", at progbits
- 2414 0000 2D000000 		.long	0x2d
- 2415 0004 0200     		.value	0x2
- 2416 0006 00000000 		.long	.Ldebug_info0
- 2417 000a 700C0000 		.long	0xc70
- 2418 000e 9C0B0000 		.long	0xb9c
- 2419 0012 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
- 2419      6C426C6F 
- 2419      636B4369 
- 2419      70686572 
- 2419      56656352 
- 2420 002d 00000000 		.long	0x0
- 2421              		.section	.debug_aranges,"", at progbits
- 2422 0000 2C000000 		.long	0x2c
- 2423 0004 0200     		.value	0x2
- 2424 0006 00000000 		.long	.Ldebug_info0
- 2425 000a 08       		.byte	0x8
- 2426 000b 00       		.byte	0x0
- 2427 000c 0000     		.value	0x0
- 2428 000e 0000     		.value	0x0
- 2429 0010 00000000 		.quad	.Ltext0
- 2429      00000000 
- 2430 0018 0C010000 		.quad	.Letext0-.Ltext0
- 2430      00000000 
- 2431 0020 00000000 		.quad	0x0
- 2431      00000000 
- 2432 0028 00000000 		.quad	0x0
- 2432      00000000 
- 2433              		.section	.debug_str,"MS", at progbits,1
- 2434              	.LASF267:
- 2435 0000 7263496E 		.string	"rcInsufficient"
- 2435      73756666 
- 2435      69636965 
- 2435      6E7400
- 2436              	.LASF284:
- 2437 000f 72634475 		.string	"rcDuplicate"
- 2437      706C6963 
- 2437      61746500 
- 2438              	.LASF87:
-
GAS LISTING /tmp/ccIEtKUs.s 			page 51
-
-
- 2439 001b 7263436F 		.string	"rcCondition"
- 2439      6E646974 
- 2439      696F6E00 
- 2440              	.LASF201:
- 2441 0027 7263456E 		.string	"rcEncrypting"
- 2441      63727970 
- 2441      74696E67 
- 2441      00
- 2442              	.LASF160:
- 2443 0034 72634F70 		.string	"rcOpening"
- 2443      656E696E 
- 2443      6700
- 2444              	.LASF168:
- 2445 003e 72635065 		.string	"rcPersisting"
- 2445      72736973 
- 2445      74696E67 
- 2445      00
- 2446              	.LASF206:
- 2447 004b 72635365 		.string	"rcSending"
- 2447      6E64696E 
- 2447      6700
- 2448              	.LASF200:
- 2449 0055 72634170 		.string	"rcAppending"
- 2449      70656E64 
- 2449      696E6700 
- 2450              	.LASF186:
- 2451 0061 72635369 		.string	"rcSignaling"
- 2451      676E616C 
- 2451      696E6700 
- 2452              	.LASF13:
- 2453 006d 4442475F 		.string	"DBG_BLAST"
- 2453      424C4153 
- 2453      5400
- 2454              	.LASF242:
- 2455 0077 72635369 		.string	"rcSignalSet"
- 2455      676E616C 
- 2455      53657400 
- 2456              	.LASF188:
- 2457 0083 72634174 		.string	"rcAttaching"
- 2457      74616368 
- 2457      696E6700 
- 2458              	.LASF120:
- 2459 008f 72635461 		.string	"rcTable"
- 2459      626C6500 
- 2460              	.LASF84:
- 2461 0097 72634275 		.string	"rcBuffer"
- 2461      66666572 
- 2461      00
- 2462              	.LASF216:
- 2463 00a0 72634D65 		.string	"rcMemory"
- 2463      6D6F7279 
- 2463      00
- 2464              	.LASF149:
- 2465 00a9 72634C6F 		.string	"rcLocking"
- 2465      636B696E 
- 2465      6700
- 2466              	.LASF184:
-
GAS LISTING /tmp/ccIEtKUs.s 			page 52
-
-
- 2467 00b3 72635061 		.string	"rcParsing"
- 2467      7273696E 
- 2467      6700
- 2468              	.LASF213:
- 2469 00bd 72635365 		.string	"rcSelf"
- 2469      6C6600
- 2470              	.LASF106:
- 2471 00c4 72634D65 		.string	"rcMetadata"
- 2471      74616461 
- 2471      746100
- 2472              	.LASF229:
- 2473 00cf 72634172 		.string	"rcArcHardLink"
- 2473      63486172 
- 2473      644C696E 
- 2473      6B00
- 2474              	.LASF55:
- 2475 00dd 7263436F 		.string	"rcCont"
- 2475      6E7400
- 2476              	.LASF237:
- 2477 00e4 72634368 		.string	"rcChecksum"
- 2477      65636B73 
- 2477      756D00
- 2478              	.LASF314:
- 2479 00ef 5F5F6675 		.string	"__func__"
- 2479      6E635F5F 
- 2479      00
- 2480              	.LASF281:
- 2481 00f8 7263546F 		.string	"rcTooShort"
- 2481      6F53686F 
- 2481      727400
- 2482              	.LASF111:
- 2483 0103 72635061 		.string	"rcPagemap"
- 2483      67656D61 
- 2483      7000
- 2484              	.LASF63:
- 2485 010d 72634170 		.string	"rcApp"
- 2485      7000
- 2486              	.LASF94:
- 2487 0113 72634669 		.string	"rcFileDesc"
- 2487      6C654465 
- 2487      736300
- 2488              	.LASF233:
- 2489 011e 72634974 		.string	"rcItem"
- 2489      656D00
- 2490              	.LASF125:
- 2491 0125 72635472 		.string	"rcTrie"
- 2491      696500
- 2492              	.LASF66:
- 2493 012c 72634C61 		.string	"rcLastModule_v1_0"
- 2493      73744D6F 
- 2493      64756C65 
- 2493      5F76315F 
- 2493      3000
- 2494              	.LASF73:
- 2495 013e 72634C61 		.string	"rcLastModule_v1_1"
- 2495      73744D6F 
- 2495      64756C65 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 53
-
-
- 2495      5F76315F 
- 2495      3100
- 2496              	.LASF224:
- 2497 0150 72634279 		.string	"rcByteOrder"
- 2497      74654F72 
- 2497      64657200 
- 2498              	.LASF142:
- 2499 015c 7263436F 		.string	"rcConstructing"
- 2499      6E737472 
- 2499      75637469 
- 2499      6E6700
- 2500              	.LASF310:
- 2501 016b 4B4E756C 		.string	"KNullBlockCipherVecRegProcessorSupport"
- 2501      6C426C6F 
- 2501      636B4369 
- 2501      70686572 
- 2501      56656352 
- 2502              	.LASF313:
- 2503 0192 5F5F5052 		.string	"__PRETTY_FUNCTION__"
- 2503      45545459 
- 2503      5F46554E 
- 2503      4354494F 
- 2503      4E5F5F00 
- 2504              	.LASF9:
- 2505 01a6 72635F74 		.string	"rc_t"
- 2505      00
- 2506              	.LASF218:
- 2507 01ab 7263466F 		.string	"rcFormat"
- 2507      726D6174 
- 2507      00
- 2508              	.LASF276:
- 2509 01b4 7263556E 		.string	"rcUnauthorized"
- 2509      61757468 
- 2509      6F72697A 
- 2509      656400
- 2510              	.LASF156:
- 2511 01c3 72635265 		.string	"rcRemoving"
- 2511      6D6F7669 
- 2511      6E6700
- 2512              	.LASF69:
- 2513 01ce 72634B72 		.string	"rcKrypto"
- 2513      7970746F 
- 2513      00
- 2514              	.LASF147:
- 2515 01d7 72635669 		.string	"rcVisiting"
- 2515      73697469 
- 2515      6E6700
- 2516              	.LASF77:
- 2517 01e2 72634172 		.string	"rcArc"
- 2517      6300
- 2518              	.LASF52:
- 2519 01e8 72634578 		.string	"rcExe"
- 2519      6500
- 2520              	.LASF282:
- 2521 01ee 7263546F 		.string	"rcTooLong"
- 2521      6F4C6F6E 
- 2521      6700
-
GAS LISTING /tmp/ccIEtKUs.s 			page 54
-
-
- 2522              	.LASF210:
- 2523 01f8 52434F62 		.string	"RCObject"
- 2523      6A656374 
- 2523      00
- 2524              	.LASF220:
- 2525 0201 7263496E 		.string	"rcInterface"
- 2525      74657266 
- 2525      61636500 
- 2526              	.LASF148:
- 2527 020d 72635265 		.string	"rcResolving"
- 2527      736F6C76 
- 2527      696E6700 
- 2528              	.LASF90:
- 2529 0219 72634469 		.string	"rcDirectory"
- 2529      72656374 
- 2529      6F727900 
- 2530              	.LASF2:
- 2531 0225 6C6F6E67 		.string	"long int"
- 2531      20696E74 
- 2531      00
- 2532              	.LASF178:
- 2533 022e 72635661 		.string	"rcValidating"
- 2533      6C696461 
- 2533      74696E67 
- 2533      00
- 2534              	.LASF80:
- 2535 023b 72634172 		.string	"rcArgv"
- 2535      677600
- 2536              	.LASF56:
- 2537 0242 72634353 		.string	"rcCS"
- 2537      00
- 2538              	.LASF137:
- 2539 0247 72635572 		.string	"rcUri"
- 2539      6900
- 2540              	.LASF159:
- 2541 024d 72634372 		.string	"rcCreating"
- 2541      65617469 
- 2541      6E6700
- 2542              	.LASF45:
- 2543 0258 656E6372 		.string	"encrypt"
- 2543      79707400 
- 2544              	.LASF35:
- 2545 0260 76313238 		.string	"v128_u8_t"
- 2545      5F75385F 
- 2545      7400
- 2546              	.LASF18:
- 2547 026a 4442475F 		.string	"DBG_XML"
- 2547      584D4C00 
- 2548              	.LASF30:
- 2549 0272 4442475F 		.string	"DBG_MOD_COUNT"
- 2549      4D4F445F 
- 2549      434F554E 
- 2549      5400
- 2550              	.LASF61:
- 2551 0280 72634442 		.string	"rcDB"
- 2551      00
- 2552              	.LASF239:
-
GAS LISTING /tmp/ccIEtKUs.s 			page 55
-
-
- 2553 0285 7263436F 		.string	"rcConnection"
- 2553      6E6E6563 
- 2553      74696F6E 
- 2553      00
- 2554              	.LASF107:
- 2555 0292 72634D67 		.string	"rcMgr"
- 2555      7200
- 2556              	.LASF269:
- 2557 0298 72635669 		.string	"rcViolated"
- 2557      6F6C6174 
- 2557      656400
- 2558              	.LASF202:
- 2559 02a3 72634465 		.string	"rcDecrypting"
- 2559      63727970 
- 2559      74696E67 
- 2559      00
- 2560              	.LASF0:
- 2561 02b0 7369676E 		.string	"signed char"
- 2561      65642063 
- 2561      68617200 
- 2562              	.LASF5:
- 2563 02bc 75696E74 		.string	"uint8_t"
- 2563      385F7400 
- 2564              	.LASF85:
- 2565 02c4 72634368 		.string	"rcChar"
- 2565      617200
- 2566              	.LASF70:
- 2567 02cb 72635244 		.string	"rcRDBMS"
- 2567      424D5300 
- 2568              	.LASF179:
- 2569 02d3 72634578 		.string	"rcExecuting"
- 2569      65637574 
- 2569      696E6700 
- 2570              	.LASF306:
- 2571 02df 64656372 		.string	"decrypt_key"
- 2571      7970745F 
- 2571      6B657900 
- 2572              	.LASF11:
- 2573 02eb 4442475F 		.string	"DBG_MOD_NOT_FOUND"
- 2573      4D4F445F 
- 2573      4E4F545F 
- 2573      464F554E 
- 2573      4400
- 2574              	.LASF166:
- 2575 02fd 72635265 		.string	"rcReverting"
- 2575      76657274 
- 2575      696E6700 
- 2576              	.LASF82:
- 2577 0309 72634261 		.string	"rcBarrier"
- 2577      72726965 
- 2577      7200
- 2578              	.LASF266:
- 2579 0313 72634578 		.string	"rcExhausted"
- 2579      68617573 
- 2579      74656400 
- 2580              	.LASF3:
- 2581 031f 756E7369 		.string	"unsigned char"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 56
-
-
- 2581      676E6564 
- 2581      20636861 
- 2581      7200
- 2582              	.LASF139:
- 2583 032d 5243436F 		.string	"RCContext"
- 2583      6E746578 
- 2583      7400
- 2584              	.LASF102:
- 2585 0337 72634C6F 		.string	"rcLock"
- 2585      636B00
- 2586              	.LASF255:
- 2587 033e 72634261 		.string	"rcBadVersion"
- 2587      64566572 
- 2587      73696F6E 
- 2587      00
- 2588              	.LASF256:
- 2589 034b 72634465 		.string	"rcDestroyed"
- 2589      7374726F 
- 2589      79656400 
- 2590              	.LASF119:
- 2591 0357 72635374 		.string	"rcString"
- 2591      72696E67 
- 2591      00
- 2592              	.LASF81:
- 2593 0360 72634174 		.string	"rcAttr"
- 2593      747200
- 2594              	.LASF103:
- 2595 0367 72634C6F 		.string	"rcLog"
- 2595      6700
- 2596              	.LASF312:
- 2597 036d 6E65775F 		.string	"new_obj"
- 2597      6F626A00 
- 2598              	.LASF14:
- 2599 0375 4442475F 		.string	"DBG_KDB"
- 2599      4B444200 
- 2600              	.LASF207:
- 2601 037d 72635072 		.string	"rcProcessing"
- 2601      6F636573 
- 2601      73696E67 
- 2601      00
- 2602              	.LASF57:
- 2603 038a 72634646 		.string	"rcFF"
- 2603      00
- 2604              	.LASF311:
- 2605 038f 5F426F6F 		.string	"_Bool"
- 2605      6C00
- 2606              	.LASF58:
- 2607 0395 72634653 		.string	"rcFS"
- 2607      00
- 2608              	.LASF145:
- 2609 039a 72634163 		.string	"rcAccessing"
- 2609      63657373 
- 2609      696E6700 
- 2610              	.LASF263:
- 2611 03a6 7263496E 		.string	"rcInterrupted"
- 2611      74657272 
- 2611      75707465 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 57
-
-
- 2611      6400
- 2612              	.LASF271:
- 2613 03b4 72634E6F 		.string	"rcNotFound"
- 2613      74466F75 
- 2613      6E6400
- 2614              	.LASF10:
- 2615 03bf 63686172 		.string	"char"
- 2615      00
- 2616              	.LASF109:
- 2617 03c4 72634E6F 		.string	"rcNode"
- 2617      646500
- 2618              	.LASF28:
- 2619 03cb 4442475F 		.string	"DBG_AES"
- 2619      41455300 
- 2620              	.LASF240:
- 2621 03d3 72634572 		.string	"rcError"
- 2621      726F7200 
- 2622              	.LASF157:
- 2623 03db 7263436C 		.string	"rcClearing"
- 2623      65617269 
- 2623      6E6700
- 2624              	.LASF215:
- 2625 03e6 72634F66 		.string	"rcOffset"
- 2625      66736574 
- 2625      00
- 2626              	.LASF161:
- 2627 03ef 7263436C 		.string	"rcClosing"
- 2627      6F73696E 
- 2627      6700
- 2628              	.LASF93:
- 2629 03f9 72634669 		.string	"rcFile"
- 2629      6C6500
- 2630              	.LASF122:
- 2631 0400 72635469 		.string	"rcTimeout"
- 2631      6D656F75 
- 2631      7400
- 2632              	.LASF110:
- 2633 040a 72634E75 		.string	"rcNumeral"
- 2633      6D657261 
- 2633      6C00
- 2634              	.LASF187:
- 2635 0414 72635761 		.string	"rcWaiting"
- 2635      6974696E 
- 2635      6700
- 2636              	.LASF191:
- 2637 041e 72634650 		.string	"rcFPCoding"
- 2637      436F6469 
- 2637      6E6700
- 2638              	.LASF243:
- 2639 0429 72635369 		.string	"rcSize"
- 2639      7A6500
- 2640              	.LASF228:
- 2641 0430 72634469 		.string	"rcDirEntry"
- 2641      72456E74 
- 2641      727900
- 2642              	.LASF180:
- 2643 043b 72634875 		.string	"rcHuffmanCoding"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 58
-
-
- 2643      66666D61 
- 2643      6E436F64 
- 2643      696E6700 
- 2644              	.LASF23:
- 2645 044b 4442475F 		.string	"DBG_KFG"
- 2645      4B464700 
- 2646              	.LASF261:
- 2647 0453 72634275 		.string	"rcBusy"
- 2647      737900
- 2648              	.LASF20:
- 2649 045a 4442475F 		.string	"DBG_SRA"
- 2649      53524100 
- 2650              	.LASF219:
- 2651 0462 72635472 		.string	"rcTransfer"
- 2651      616E7366 
- 2651      657200
- 2652              	.LASF17:
- 2653 046d 4442475F 		.string	"DBG_KFS"
- 2653      4B465300 
- 2654              	.LASF305:
- 2655 0475 4B4E756C 		.string	"KNullBlockCipherVecRegSetDecryptKey"
- 2655      6C426C6F 
- 2655      636B4369 
- 2655      70686572 
- 2655      56656352 
- 2656              	.LASF174:
- 2657 0499 72635061 		.string	"rcPacking"
- 2657      636B696E 
- 2657      6700
- 2658              	.LASF170:
- 2659 04a3 7263436F 		.string	"rcCopying"
- 2659      7079696E 
- 2659      6700
- 2660              	.LASF177:
- 2661 04ad 72634465 		.string	"rcDecoding"
- 2661      636F6469 
- 2661      6E6700
- 2662              	.LASF150:
- 2663 04b8 7263556E 		.string	"rcUnlocking"
- 2663      6C6F636B 
- 2663      696E6700 
- 2664              	.LASF309:
- 2665 04c4 4B4E756C 		.string	"KNullBlockCipherVecRegDecrypt"
- 2665      6C426C6F 
- 2665      636B4369 
- 2665      70686572 
- 2665      56656352 
- 2666              	.LASF48:
- 2667 04e2 4B426C6F 		.string	"KBlockCipherVec_vt_v1"
- 2667      636B4369 
- 2667      70686572 
- 2667      5665635F 
- 2667      76745F76 
- 2668              	.LASF16:
- 2669 04f8 4442475F 		.string	"DBG_LEGREF"
- 2669      4C454752 
- 2669      454600
-
GAS LISTING /tmp/ccIEtKUs.s 			page 59
-
-
- 2670              	.LASF151:
- 2671 0503 72635265 		.string	"rcRenaming"
- 2671      6E616D69 
- 2671      6E6700
- 2672              	.LASF302:
- 2673 050e 75736572 		.string	"user_key"
- 2673      5F6B6579 
- 2673      00
- 2674              	.LASF221:
- 2675 0517 72634964 		.string	"rcId"
- 2675      00
- 2676              	.LASF134:
- 2677 051c 7263436D 		.string	"rcCmd"
- 2677      6400
- 2678              	.LASF26:
- 2679 0522 4442475F 		.string	"DBG_LOADLIB"
- 2679      4C4F4144 
- 2679      4C494200 
- 2680              	.LASF273:
- 2681 052e 7263556E 		.string	"rcUnlocked"
- 2681      6C6F636B 
- 2681      656400
- 2682              	.LASF74:
- 2683 0539 52434D6F 		.string	"RCModule"
- 2683      64756C65 
- 2683      00
- 2684              	.LASF235:
- 2685 0542 7263456E 		.string	"rcEncryption"
- 2685      63727970 
- 2685      74696F6E 
- 2685      00
- 2686              	.LASF270:
- 2687 054f 72634578 		.string	"rcExists"
- 2687      69737473 
- 2687      00
- 2688              	.LASF36:
- 2689 0558 43697068 		.string	"CipherVec"
- 2689      65725665 
- 2689      6300
- 2690              	.LASF289:
- 2691 0562 72634F70 		.string	"rcOpen"
- 2691      656E00
- 2692              	.LASF275:
- 2693 0569 72634465 		.string	"rcDeadlock"
- 2693      61646C6F 
- 2693      636B00
- 2694              	.LASF212:
- 2695 0574 72634C69 		.string	"rcLink"
- 2695      6E6B00
- 2696              	.LASF199:
- 2697 057b 7263466C 		.string	"rcFlushing"
- 2697      75736869 
- 2697      6E6700
- 2698              	.LASF247:
- 2699 0586 72634E6F 		.string	"rcNoErr"
- 2699      45727200 
- 2700              	.LASF226:
-
GAS LISTING /tmp/ccIEtKUs.s 			page 60
-
-
- 2701 058e 72635461 		.string	"rcTag"
- 2701      6700
- 2702              	.LASF22:
- 2703 0594 4442475F 		.string	"DBG_ALIGN"
- 2703      414C4947 
- 2703      4E00
- 2704              	.LASF190:
- 2705 059e 72634C6F 		.string	"rcLogging"
- 2705      6767696E 
- 2705      6700
- 2706              	.LASF283:
- 2707 05a8 7263546F 		.string	"rcTooBig"
- 2707      6F426967 
- 2707      00
- 2708              	.LASF127:
- 2709 05b1 72635665 		.string	"rcVector"
- 2709      63746F72 
- 2709      00
- 2710              	.LASF162:
- 2711 05ba 72635265 		.string	"rcResizing"
- 2711      73697A69 
- 2711      6E6700
- 2712              	.LASF136:
- 2713 05c5 72635175 		.string	"rcQuery"
- 2713      65727900 
- 2714              	.LASF8:
- 2715 05cd 6C6F6E67 		.string	"long unsigned int"
- 2715      20756E73 
- 2715      69676E65 
- 2715      6420696E 
- 2715      7400
- 2716              	.LASF268:
- 2717 05df 72634578 		.string	"rcExcessive"
- 2717      63657373 
- 2717      69766500 
- 2718              	.LASF196:
- 2719 05eb 72634576 		.string	"rcEvaluating"
- 2719      616C7561 
- 2719      74696E67 
- 2719      00
- 2720              	.LASF133:
- 2721 05f8 7263526E 		.string	"rcRng"
- 2721      6700
- 2722              	.LASF141:
- 2723 05fe 72634361 		.string	"rcCasting"
- 2723      7374696E 
- 2723      6700
- 2724              	.LASF300:
- 2725 0608 73656C66 		.string	"self"
- 2725      00
- 2726              	.LASF101:
- 2727 060d 72634974 		.string	"rcIterator"
- 2727      65726174 
- 2727      6F7200
- 2728              	.LASF49:
- 2729 0618 4B426C6F 		.string	"KBlockCipherVec"
- 2729      636B4369 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 61
-
-
- 2729      70686572 
- 2729      56656300 
- 2730              	.LASF320:
- 2731 0628 4B4E756C 		.string	"KNullBlockCipherVecRegDestroy"
- 2731      6C426C6F 
- 2731      636B4369 
- 2731      70686572 
- 2731      56656352 
- 2732              	.LASF316:
- 2733 0646 4B4E756C 		.string	"KNullBlockCipherVecReg_vt_"
- 2733      6C426C6F 
- 2733      636B4369 
- 2733      70686572 
- 2733      56656352 
- 2734              	.LASF118:
- 2735 0661 72635374 		.string	"rcStorage"
- 2735      6F726167 
- 2735      6500
- 2736              	.LASF285:
- 2737 066b 72634F75 		.string	"rcOutOfKDirectory"
- 2737      744F664B 
- 2737      44697265 
- 2737      63746F72 
- 2737      7900
- 2738              	.LASF230:
- 2739 067d 7263526F 		.string	"rcRow"
- 2739      7700
- 2740              	.LASF19:
- 2741 0683 4442475F 		.string	"DBG_VDB"
- 2741      56444200 
- 2742              	.LASF130:
- 2743 068b 72634C61 		.string	"rcLastTarget_v1_0"
- 2743      73745461 
- 2743      72676574 
- 2743      5F76315F 
- 2743      3000
- 2744              	.LASF138:
- 2745 069d 72634C61 		.string	"rcLastTarget_v1_1"
- 2745      73745461 
- 2745      72676574 
- 2745      5F76315F 
- 2745      3100
- 2746              	.LASF117:
- 2747 06af 72635365 		.string	"rcSemaphore"
- 2747      6D617068 
- 2747      6F726500 
- 2748              	.LASF262:
- 2749 06bb 7263496E 		.string	"rcIncomplete"
- 2749      636F6D70 
- 2749      6C657465 
- 2749      00
- 2750              	.LASF291:
- 2751 06c8 72634E6F 		.string	"rcNotOpen"
- 2751      744F7065 
- 2751      6E00
- 2752              	.LASF100:
- 2753 06d2 7263496E 		.string	"rcIndex"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 62
-
-
- 2753      64657800 
- 2754              	.LASF21:
- 2755 06da 4442475F 		.string	"DBG_XARC"
- 2755      58415243 
- 2755      00
- 2756              	.LASF317:
- 2757 06e3 474E5520 		.string	"GNU C 4.4.2"
- 2757      4320342E 
- 2757      342E3200 
- 2758              	.LASF53:
- 2759 06ef 72635275 		.string	"rcRuntime"
- 2759      6E74696D 
- 2759      6500
- 2760              	.LASF92:
- 2761 06f9 7263586D 		.string	"rcXmlDoc"
- 2761      6C446F63 
- 2761      00
- 2762              	.LASF31:
- 2763 0702 6C6F6E67 		.string	"long long int"
- 2763      206C6F6E 
- 2763      6720696E 
- 2763      7400
- 2764              	.LASF173:
- 2765 0710 7263506F 		.string	"rcPositioning"
- 2765      73697469 
- 2765      6F6E696E 
- 2765      6700
- 2766              	.LASF114:
- 2767 071e 72635175 		.string	"rcQueue"
- 2767      65756500 
- 2768              	.LASF189:
- 2769 0726 72634465 		.string	"rcDetaching"
- 2769      74616368 
- 2769      696E6700 
- 2770              	.LASF104:
- 2771 0732 72634D44 		.string	"rcMD5SumFmt"
- 2771      3553756D 
- 2771      466D7400 
- 2772              	.LASF155:
- 2773 073e 7263496E 		.string	"rcInserting"
- 2773      73657274 
- 2773      696E6700 
- 2774              	.LASF203:
- 2775 074a 7263436F 		.string	"rcComparing"
- 2775      6D706172 
- 2775      696E6700 
- 2776              	.LASF265:
- 2777 0756 7263456D 		.string	"rcEmpty"
- 2777      70747900 
- 2778              	.LASF97:
- 2779 075e 7263466F 		.string	"rcFormatter"
- 2779      726D6174 
- 2779      74657200 
- 2780              	.LASF34:
- 2781 076a 646F7562 		.string	"double"
- 2781      6C6500
- 2782              	.LASF182:
-
GAS LISTING /tmp/ccIEtKUs.s 			page 63
-
-
- 2783 0771 72635265 		.string	"rcRegistering"
- 2783      67697374 
- 2783      6572696E 
- 2783      6700
- 2784              	.LASF71:
- 2785 077f 72634E53 		.string	"rcNS"
- 2785      00
- 2786              	.LASF214:
- 2787 0784 72635061 		.string	"rcParam"
- 2787      72616D00 
- 2788              	.LASF75:
- 2789 078c 52435461 		.string	"RCTarget"
- 2789      72676574 
- 2789      00
- 2790              	.LASF315:
- 2791 0795 4B4E756C 		.string	"KNullBlockCipherVecRegaes_ncbi_name"
- 2791      6C426C6F 
- 2791      636B4369 
- 2791      70686572 
- 2791      56656352 
- 2792              	.LASF236:
- 2793 07b9 72634372 		.string	"rcCrc"
- 2793      6300
- 2794              	.LASF25:
- 2795 07bf 4442475F 		.string	"DBG_SEARCH"
- 2795      53454152 
- 2795      434800
- 2796              	.LASF64:
- 2797 07ca 7263584D 		.string	"rcXML"
- 2797      4C00
- 2798              	.LASF27:
- 2799 07d0 4442475F 		.string	"DBG_VFS"
- 2799      56465300 
- 2800              	.LASF32:
- 2801 07d8 666C6F61 		.string	"float"
- 2801      7400
- 2802              	.LASF158:
- 2803 07de 72635570 		.string	"rcUpdating"
- 2803      64617469 
- 2803      6E6700
- 2804              	.LASF185:
- 2805 07e9 7263436F 		.string	"rcConverting"
- 2805      6E766572 
- 2805      74696E67 
- 2805      00
- 2806              	.LASF171:
- 2807 07f6 7263436F 		.string	"rcConcatenating"
- 2807      6E636174 
- 2807      656E6174 
- 2807      696E6700 
- 2808              	.LASF50:
- 2809 0806 4B426C6F 		.string	"KBlockCipher"
- 2809      636B4369 
- 2809      70686572 
- 2809      00
- 2810              	.LASF128:
- 2811 0813 72634479 		.string	"rcDylib"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 64
-
-
- 2811      6C696200 
- 2812              	.LASF277:
- 2813 081b 72635265 		.string	"rcReadonly"
- 2813      61646F6E 
- 2813      6C7900
- 2814              	.LASF7:
- 2815 0826 756E7369 		.string	"unsigned int"
- 2815      676E6564 
- 2815      20696E74 
- 2815      00
- 2816              	.LASF278:
- 2817 0833 72635772 		.string	"rcWriteonly"
- 2817      6974656F 
- 2817      6E6C7900 
- 2818              	.LASF272:
- 2819 083f 72634C6F 		.string	"rcLocked"
- 2819      636B6564 
- 2819      00
- 2820              	.LASF154:
- 2821 0848 72635072 		.string	"rcProjecting"
- 2821      6F6A6563 
- 2821      74696E67 
- 2821      00
- 2822              	.LASF59:
- 2823 0855 72635053 		.string	"rcPS"
- 2823      00
- 2824              	.LASF244:
- 2825 085a 72635265 		.string	"rcRefcount"
- 2825      66636F75 
- 2825      6E7400
- 2826              	.LASF79:
- 2827 0865 7263546F 		.string	"rcTocEntry"
- 2827      63456E74 
- 2827      727900
- 2828              	.LASF234:
- 2829 0870 72634D6F 		.string	"rcMode"
- 2829      646500
- 2830              	.LASF293:
- 2831 0877 7263556E 		.string	"rcUnequal"
- 2831      65717561 
- 2831      6C00
- 2832              	.LASF274:
- 2833 0881 72634465 		.string	"rcDetached"
- 2833      74616368 
- 2833      656400
- 2834              	.LASF280:
- 2835 088c 7263496E 		.string	"rcInPlaceNotAllowed"
- 2835      506C6163 
- 2835      654E6F74 
- 2835      416C6C6F 
- 2835      77656400 
- 2836              	.LASF222:
- 2837 08a0 72635261 		.string	"rcRange"
- 2837      6E676500 
- 2838              	.LASF319:
- 2839 08a8 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/linux/gcc/dyn/x86_64/dbg/obj/libs/krypto"
- 2839      652F726F 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 65
-
-
- 2839      6461726D 
- 2839      65722F73 
- 2839      72615F73 
- 2840              	.LASF232:
- 2841 08f0 72634C61 		.string	"rcLastObject_v1_0"
- 2841      73744F62 
- 2841      6A656374 
- 2841      5F76315F 
- 2841      3000
- 2842              	.LASF245:
- 2843 0902 72634C61 		.string	"rcLastObject_v1_1"
- 2843      73744F62 
- 2843      6A656374 
- 2843      5F76315F 
- 2843      3100
- 2844              	.LASF198:
- 2845 0914 72634C61 		.string	"rcLastContext_v1_0"
- 2845      7374436F 
- 2845      6E746578 
- 2845      745F7631 
- 2845      5F3000
- 2846              	.LASF209:
- 2847 0927 72634C61 		.string	"rcLastContext_v1_1"
- 2847      7374436F 
- 2847      6E746578 
- 2847      745F7631 
- 2847      5F3100
- 2848              	.LASF105:
- 2849 093a 72634D65 		.string	"rcMemMap"
- 2849      6D4D6170 
- 2849      00
- 2850              	.LASF129:
- 2851 0943 72634578 		.string	"rcExpression"
- 2851      70726573 
- 2851      73696F6E 
- 2851      00
- 2852              	.LASF175:
- 2853 0950 7263556E 		.string	"rcUnpacking"
- 2853      7061636B 
- 2853      696E6700 
- 2854              	.LASF91:
- 2855 095c 7263446F 		.string	"rcDoc"
- 2855      6300
- 2856              	.LASF12:
- 2857 0962 4442475F 		.string	"DBG_APP"
- 2857      41505000 
- 2858              	.LASF192:
- 2859 096a 72634D75 		.string	"rcMultiplexing"
- 2859      6C746970 
- 2859      6C657869 
- 2859      6E6700
- 2860              	.LASF194:
- 2861 0979 72635365 		.string	"rcSearching"
- 2861      61726368 
- 2861      696E6700 
- 2862              	.LASF294:
- 2863 0985 72634661 		.string	"rcFailed"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 66
-
-
- 2863      696C6564 
- 2863      00
- 2864              	.LASF259:
- 2865 098e 7263496E 		.string	"rcIncorrect"
- 2865      636F7272 
- 2865      65637400 
- 2866              	.LASF98:
- 2867 099a 72634675 		.string	"rcFunctParam"
- 2867      6E637450 
- 2867      6172616D 
- 2867      00
- 2868              	.LASF208:
- 2869 09a7 72634964 		.string	"rcIdentifying"
- 2869      656E7469 
- 2869      6679696E 
- 2869      6700
- 2870              	.LASF223:
- 2871 09b5 7263436F 		.string	"rcConstraint"
- 2871      6E737472 
- 2871      61696E74 
- 2871      00
- 2872              	.LASF249:
- 2873 09c2 7263556E 		.string	"rcUnknown"
- 2873      6B6E6F77 
- 2873      6E00
- 2874              	.LASF88:
- 2875 09cc 72634375 		.string	"rcCursor"
- 2875      72736F72 
- 2875      00
- 2876              	.LASF246:
- 2877 09d5 52435374 		.string	"RCState"
- 2877      61746500 
- 2878              	.LASF47:
- 2879 09dd 4B426C6F 		.string	"KBlockCipherByte"
- 2879      636B4369 
- 2879      70686572 
- 2879      42797465 
- 2879      00
- 2880              	.LASF38:
- 2881 09ee 4B426C6F 		.string	"KBlockCipherByte_vt_v1"
- 2881      636B4369 
- 2881      70686572 
- 2881      42797465 
- 2881      5F76745F 
- 2882              	.LASF286:
- 2883 0a05 72634967 		.string	"rcIgnored"
- 2883      6E6F7265 
- 2883      6400
- 2884              	.LASF144:
- 2885 0a0f 72635265 		.string	"rcReleasing"
- 2885      6C656173 
- 2885      696E6700 
- 2886              	.LASF67:
- 2887 0a1b 72634B46 		.string	"rcKFG"
- 2887      4700
- 2888              	.LASF225:
- 2889 0a21 72634D65 		.string	"rcMessage"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 67
-
-
- 2889      73736167 
- 2889      6500
- 2890              	.LASF172:
- 2891 0a2b 7263466F 		.string	"rcFormatting"
- 2891      726D6174 
- 2891      74696E67 
- 2891      00
- 2892              	.LASF65:
- 2893 0a38 72635352 		.string	"rcSRA"
- 2893      4100
- 2894              	.LASF241:
- 2895 0a3e 7263456E 		.string	"rcEnvironment"
- 2895      7669726F 
- 2895      6E6D656E 
- 2895      7400
- 2896              	.LASF33:
- 2897 0a4c 6C6F6E67 		.string	"long long unsigned int"
- 2897      206C6F6E 
- 2897      6720756E 
- 2897      7369676E 
- 2897      65642069 
- 2898              	.LASF40:
- 2899 0a63 64657374 		.string	"destroy"
- 2899      726F7900 
- 2900              	.LASF123:
- 2901 0a6b 7263546F 		.string	"rcToken"
- 2901      6B656E00 
- 2902              	.LASF183:
- 2903 0a73 7263546F 		.string	"rcTokenizing"
- 2903      6B656E69 
- 2903      7A696E67 
- 2903      00
- 2904              	.LASF15:
- 2905 0a80 4442475F 		.string	"DBG_REF"
- 2905      52454600 
- 2906              	.LASF164:
- 2907 0a88 72635772 		.string	"rcWriting"
- 2907      6974696E 
- 2907      6700
- 2908              	.LASF140:
- 2909 0a92 7263416C 		.string	"rcAllocating"
- 2909      6C6F6361 
- 2909      74696E67 
- 2909      00
- 2910              	.LASF126:
- 2911 0a9f 72635479 		.string	"rcType"
- 2911      706500
- 2912              	.LASF227:
- 2913 0aa6 72635265 		.string	"rcResources"
- 2913      736F7572 
- 2913      63657300 
- 2914              	.LASF108:
- 2915 0ab2 72634E61 		.string	"rcNamelist"
- 2915      6D656C69 
- 2915      737400
- 2916              	.LASF298:
- 2917 0abd 4B4E756C 		.string	"KNullBlockCipherVecRegBlockSize"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 68
-
-
- 2917      6C426C6F 
- 2917      636B4369 
- 2917      70686572 
- 2917      56656352 
- 2918              	.LASF299:
- 2919 0add 4B4E756C 		.string	"KNullBlockCipherVecRegKeySize"
- 2919      6C426C6F 
- 2919      636B4369 
- 2919      70686572 
- 2919      56656352 
- 2920              	.LASF292:
- 2921 0afb 7263556E 		.string	"rcUndefined"
- 2921      64656669 
- 2921      6E656400 
- 2922              	.LASF260:
- 2923 0b07 7263496E 		.string	"rcInconsistent"
- 2923      636F6E73 
- 2923      69737465 
- 2923      6E7400
- 2924              	.LASF205:
- 2925 0b16 72635265 		.string	"rcRetrieving"
- 2925      74726965 
- 2925      76696E67 
- 2925      00
- 2926              	.LASF301:
- 2927 0b23 656E6372 		.string	"encrypt_key"
- 2927      7970745F 
- 2927      6B657900 
- 2928              	.LASF46:
- 2929 0b2f 64656372 		.string	"decrypt"
- 2929      79707400 
- 2930              	.LASF39:
- 2931 0b37 76657273 		.string	"version"
- 2931      696F6E00 
- 2932              	.LASF217:
- 2933 0b3f 72634E61 		.string	"rcName"
- 2933      6D6500
- 2934              	.LASF254:
- 2935 0b46 72634E75 		.string	"rcNull"
- 2935      6C6C00
- 2936              	.LASF176:
- 2937 0b4d 7263456E 		.string	"rcEncoding"
- 2937      636F6469 
- 2937      6E6700
- 2938              	.LASF95:
- 2939 0b58 72634669 		.string	"rcFileFormat"
- 2939      6C65466F 
- 2939      726D6174 
- 2939      00
- 2940              	.LASF132:
- 2941 0b65 7263456E 		.string	"rcEncryptionKey"
- 2941      63727970 
- 2941      74696F6E 
- 2941      4B657900 
- 2942              	.LASF197:
- 2943 0b75 7263496E 		.string	"rcInflating"
- 2943      666C6174 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 69
-
-
- 2943      696E6700 
- 2944              	.LASF279:
- 2945 0b81 72634E6F 		.string	"rcNoPerm"
- 2945      5065726D 
- 2945      00
- 2946              	.LASF167:
- 2947 0b8a 72635265 		.string	"rcResetting"
- 2947      73657474 
- 2947      696E6700 
- 2948              	.LASF41:
- 2949 0b96 626C6F63 		.string	"block_size"
- 2949      6B5F7369 
- 2949      7A6500
- 2950              	.LASF115:
- 2951 0ba1 72635257 		.string	"rcRWLock"
- 2951      4C6F636B 
- 2951      00
- 2952              	.LASF146:
- 2953 0baa 72634C69 		.string	"rcListing"
- 2953      7374696E 
- 2953      6700
- 2954              	.LASF96:
- 2955 0bb4 72634675 		.string	"rcFunction"
- 2955      6E637469 
- 2955      6F6E00
- 2956              	.LASF252:
- 2957 0bbf 7263556E 		.string	"rcUnrecognized"
- 2957      7265636F 
- 2957      676E697A 
- 2957      656400
- 2958              	.LASF68:
- 2959 0bce 7263416C 		.string	"rcAlign"
- 2959      69676E00 
- 2960              	.LASF131:
- 2961 0bd6 72635072 		.string	"rcProduction"
- 2961      6F647563 
- 2961      74696F6E 
- 2961      00
- 2962              	.LASF121:
- 2963 0be3 72635468 		.string	"rcThread"
- 2963      72656164 
- 2963      00
- 2964              	.LASF169:
- 2965 0bec 72634672 		.string	"rcFreezing"
- 2965      65657A69 
- 2965      6E6700
- 2966              	.LASF44:
- 2967 0bf7 7365745F 		.string	"set_decrypt_key"
- 2967      64656372 
- 2967      7970745F 
- 2967      6B657900 
- 2968              	.LASF51:
- 2969 0c07 62797465 		.string	"byte"
- 2969      00
- 2970              	.LASF37:
- 2971 0c0c 4B426C6F 		.string	"KBlockCipher_vt"
- 2971      636B4369 
-
GAS LISTING /tmp/ccIEtKUs.s 			page 70
-
-
- 2971      70686572 
- 2971      5F767400 
- 2972              	.LASF238:
- 2973 0c1c 72635365 		.string	"rcSeed"
- 2973      656400
- 2974              	.LASF195:
- 2975 0c23 72634C6F 		.string	"rcLoading"
- 2975      6164696E 
- 2975      6700
- 2976              	.LASF1:
- 2977 0c2d 73686F72 		.string	"short int"
- 2977      7420696E 
- 2977      7400
- 2978              	.LASF321:
- 2979 0c37 4B4E756C 		.string	"KNullBlockCipherVecRegMake"
- 2979      6C426C6F 
- 2979      636B4369 
- 2979      70686572 
- 2979      56656352 
- 2980              	.LASF288:
- 2981 0c52 72634C61 		.string	"rcLastState_v1_0"
- 2981      73745374 
- 2981      6174655F 
- 2981      76315F30 
- 2981      00
- 2982              	.LASF297:
- 2983 0c63 72634C61 		.string	"rcLastState_v1_1"
- 2983      73745374 
- 2983      6174655F 
- 2983      76315F31 
- 2983      00
- 2984              	.LASF62:
- 2985 0c74 72635644 		.string	"rcVDB"
- 2985      4200
- 2986              	.LASF43:
- 2987 0c7a 7365745F 		.string	"set_encrypt_key"
- 2987      656E6372 
- 2987      7970745F 
- 2987      6B657900 
- 2988              	.LASF60:
- 2989 0c8a 72635846 		.string	"rcXF"
- 2989      00
- 2990              	.LASF143:
- 2991 0c8f 72634465 		.string	"rcDestroying"
- 2991      7374726F 
- 2991      79696E67 
- 2991      00
- 2992              	.LASF248:
- 2993 0c9c 7263446F 		.string	"rcDone"
- 2993      6E6500
- 2994              	.LASF78:
- 2995 0ca3 7263546F 		.string	"rcToc"
- 2995      6300
- 2996              	.LASF152:
- 2997 0ca9 7263416C 		.string	"rcAliasing"
- 2997      69617369 
- 2997      6E6700
-
GAS LISTING /tmp/ccIEtKUs.s 			page 71
-
-
- 2998              	.LASF113:
- 2999 0cb4 72635072 		.string	"rcProcess"
- 2999      6F636573 
- 2999      7300
- 3000              	.LASF211:
- 3001 0cbe 72634E6F 		.string	"rcNoObj"
- 3001      4F626A00 
- 3002              	.LASF250:
- 3003 0cc6 7263556E 		.string	"rcUnsupported"
- 3003      73757070 
- 3003      6F727465 
- 3003      6400
- 3004              	.LASF86:
- 3005 0cd4 7263436F 		.string	"rcColumn"
- 3005      6C756D6E 
- 3005      00
- 3006              	.LASF251:
- 3007 0cdd 7263556E 		.string	"rcUnexpected"
- 3007      65787065 
- 3007      63746564 
- 3007      00
- 3008              	.LASF6:
- 3009 0cea 75696E74 		.string	"uint32_t"
- 3009      33325F74 
- 3009      00
- 3010              	.LASF72:
- 3011 0cf3 72635646 		.string	"rcVFS"
- 3011      5300
- 3012              	.LASF24:
- 3013 0cf9 4442475F 		.string	"DBG_KRYPTO"
- 3013      4B525950 
- 3013      544F00
- 3014              	.LASF307:
- 3015 0d04 4B4E756C 		.string	"KNullBlockCipherVecRegEncrypt"
- 3015      6C426C6F 
- 3015      636B4369 
- 3015      70686572 
- 3015      56656352 
- 3016              	.LASF296:
- 3017 0d22 72635772 		.string	"rcWrongType"
- 3017      6F6E6754 
- 3017      79706500 
- 3018              	.LASF231:
- 3019 0d2e 72634C69 		.string	"rcLibrary"
- 3019      62726172 
- 3019      7900
- 3020              	.LASF264:
- 3021 0d38 72634361 		.string	"rcCanceled"
- 3021      6E63656C 
- 3021      656400
- 3022              	.LASF135:
- 3023 0d43 72634461 		.string	"rcData"
- 3023      746100
- 3024              	.LASF99:
- 3025 0d4a 72634865 		.string	"rcHeader"
- 3025      61646572 
- 3025      00
-
GAS LISTING /tmp/ccIEtKUs.s 			page 72
-
-
- 3026              	.LASF4:
- 3027 0d53 73686F72 		.string	"short unsigned int"
- 3027      7420756E 
- 3027      7369676E 
- 3027      65642069 
- 3027      6E7400
- 3028              	.LASF89:
- 3029 0d66 72634461 		.string	"rcDatabase"
- 3029      74616261 
- 3029      736500
- 3030              	.LASF165:
- 3031 0d71 7263436F 		.string	"rcCommitting"
- 3031      6D6D6974 
- 3031      74696E67 
- 3031      00
- 3032              	.LASF193:
- 3033 0d7e 7263436C 		.string	"rcClassifying"
- 3033      61737369 
- 3033      6679696E 
- 3033      6700
- 3034              	.LASF124:
- 3035 0d8c 72635472 		.string	"rcTree"
- 3035      656500
- 3036              	.LASF29:
- 3037 0d93 4442475F 		.string	"DBG_ARGS"
- 3037      41524753 
- 3037      00
- 3038              	.LASF153:
- 3039 0d9c 72635365 		.string	"rcSelecting"
- 3039      6C656374 
- 3039      696E6700 
- 3040              	.LASF54:
- 3041 0da8 72635465 		.string	"rcText"
- 3041      787400
- 3042              	.LASF290:
- 3043 0daf 72634F75 		.string	"rcOutoforder"
- 3043      746F666F 
- 3043      72646572 
- 3043      00
- 3044              	.LASF308:
- 3045 0dbc 73746174 		.string	"state"
- 3045      6500
- 3046              	.LASF257:
- 3047 0dc2 7263496E 		.string	"rcInvalid"
- 3047      76616C69 
- 3047      6400
- 3048              	.LASF303:
- 3049 0dcc 75736572 		.string	"user_key_size"
- 3049      5F6B6579 
- 3049      5F73697A 
- 3049      6500
- 3050              	.LASF204:
- 3051 0dda 7263496E 		.string	"rcInitializing"
- 3051      69746961 
- 3051      6C697A69 
- 3051      6E6700
- 3052              	.LASF83:
-
GAS LISTING /tmp/ccIEtKUs.s 			page 73
-
-
- 3053 0de9 7263426C 		.string	"rcBlob"
- 3053      6F6200
- 3054              	.LASF181:
- 3055 0df0 72635265 		.string	"rcReindexing"
- 3055      696E6465 
- 3055      78696E67 
- 3055      00
- 3056              	.LASF76:
- 3057 0dfd 72634E6F 		.string	"rcNoTarg"
- 3057      54617267 
- 3057      00
- 3058              	.LASF258:
- 3059 0e06 7263436F 		.string	"rcCorrupt"
- 3059      72727570 
- 3059      7400
- 3060              	.LASF287:
- 3061 0e10 72634F75 		.string	"rcOutofrange"
- 3061      746F6672 
- 3061      616E6765 
- 3061      00
- 3062              	.LASF116:
- 3063 0e1d 72635363 		.string	"rcSchema"
- 3063      68656D61 
- 3063      00
- 3064              	.LASF112:
- 3065 0e26 72635061 		.string	"rcPath"
- 3065      746800
- 3066              	.LASF163:
- 3067 0e2d 72635265 		.string	"rcReading"
- 3067      6164696E 
- 3067      6700
- 3068              	.LASF42:
- 3069 0e37 6B65795F 		.string	"key_size"
- 3069      73697A65 
- 3069      00
- 3070              	.LASF295:
- 3071 0e40 72634E6F 		.string	"rcNotAvailable"
- 3071      74417661 
- 3071      696C6162 
- 3071      6C6500
- 3072              	.LASF304:
- 3073 0e4f 4B4E756C 		.string	"KNullBlockCipherVecRegSetEncryptKey"
- 3073      6C426C6F 
- 3073      636B4369 
- 3073      70686572 
- 3073      56656352 
- 3074              	.LASF318:
- 3075 0e73 2F686F6D 		.string	"/home/rodarmer/sra_sdk-2.3.2-4/libs/krypto/null-ncbi.c"
- 3075      652F726F 
- 3075      6461726D 
- 3075      65722F73 
- 3075      72615F73 
- 3076              	.LASF253:
- 3077 0eaa 7263416D 		.string	"rcAmbiguous"
- 3077      62696775 
- 3077      6F757300 
- 3078              		.ident	"GCC: (GNU) 4.4.2"
-
GAS LISTING /tmp/ccIEtKUs.s 			page 74
-
-
- 3079              		.section	.note.GNU-stack,"", at progbits
-
GAS LISTING /tmp/ccIEtKUs.s 			page 75
-
-
-DEFINED SYMBOLS
-                            *ABS*:0000000000000000 null-ncbi.c
-     /tmp/ccIEtKUs.s:13     .rodata:0000000000000000 KNullBlockCipherVecRegaes_ncbi_name
-     /tmp/ccIEtKUs.s:17     .text:0000000000000000 KNullBlockCipherVecRegDestroy
-     /tmp/ccIEtKUs.s:37     .text:000000000000000a KNullBlockCipherVecRegBlockSize
-     /tmp/ccIEtKUs.s:57     .text:0000000000000015 KNullBlockCipherVecRegKeySize
-     /tmp/ccIEtKUs.s:77     .text:0000000000000020 KNullBlockCipherVecRegSetEncryptKey
-     /tmp/ccIEtKUs.s:100    .text:0000000000000036 KNullBlockCipherVecRegSetDecryptKey
-     /tmp/ccIEtKUs.s:123    .text:000000000000004c KNullBlockCipherVecRegEncrypt
-     /tmp/ccIEtKUs.s:145    .text:0000000000000060 KNullBlockCipherVecRegDecrypt
-     /tmp/ccIEtKUs.s:167    .text:0000000000000074 KNullBlockCipherVecRegProcessorSupport
-     /tmp/ccIEtKUs.s:190    .data.rel.ro.local:0000000000000000 KNullBlockCipherVecReg_vt_
-     /tmp/ccIEtKUs.s:207    .text:000000000000007f KNullBlockCipherVecRegMake
-     /tmp/ccIEtKUs.s:269    .rodata:0000000000000050 __func__.7214
-     /tmp/ccIEtKUs.s:274    .rodata:0000000000000070 __PRETTY_FUNCTION__.7213
-
-UNDEFINED SYMBOLS
-_GLOBAL_OFFSET_TABLE_
-SetRCFileFuncLine
diff --git a/libs/krypto/reencfile.c b/libs/krypto/reencfile.c
deleted file mode 100644
index 00ed4e3..0000000
--- a/libs/krypto/reencfile.c
+++ /dev/null
@@ -1,1255 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#include <krypto/extern.h>
-#include <krypto/reencfile.h>
-#include <krypto/key.h>
-#include <krypto/encfile.h>
-#include <krypto/encfile-priv.h>
-#include "encfile-priv.h"
-
-#include <klib/rc.h>
-#include <klib/checksum.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/debug.h>
-#include <klib/vector.h>
-#include <klib/status.h>
-#include <kfs/file.h>
-#include <kfs/ramfile.h>
-
-#include <sysalloc.h>
-
-#include <byteswap.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include <klib/out.h>
-
-#define USE_MISSING_VECTOR false
-
-/* ----------------------------------------------------------------------
- * KReencFile
- *   Base object class for the encryption, decryption and validation of
- *   the file format defined above
- */
-#define KFILE_IMPL KReencFile
-#include <kfs/impl.h>
-
-/* -----
- */
-struct KReencFile
-{
-    KFile         dad;          /* base class */
-    const KFile * encrypted;    /* encrypted file we start from */
-    const KFile * dec;          /* decryptor of the original */
-    KFile *       enc;          /* encryptor */
-    KFile *       ram;          /* a file that works from a sliding window buffer */
-
-    size_t        num_read;
-    size_t        num_writ;
-/* block id's can not max out a 64 bit number as that is a file that is 32K times too big */
-#define NO_CURRENT_BLOCK (~(uint64_t)0)
-    uint64_t      block_id;
-    uint64_t      footer_block; /* if zero, still unknown */
-
-    uint64_t      size;         /* size as known from the original file [see known_size] */
-    bool          known_size;   /* is the size of the original file known? */
-
-    char          plain_text  [ENC_DATA_BLOCK_SIZE];
-    union
-    {
-        KEncFileBlock block;
-        char          text [sizeof (KEncFileBlock)];
-    } block;
-    union
-    {
-        KEncFileFooter foot;
-        char           text [sizeof (KEncFileFooter)];
-    } foot;
-
-};
-
-/* ----------------------------------------------------------------------
- * Interface Functions
- *
- * Destroy
- *
- */
-static
-rc_t CC KReencFileDestroy (KReencFile *self)
-{
-    if (self)
-    {
-        rc_t rc1, rc2, rc3, rc4;
-
-        rc1 = KFileRelease (self->encrypted);
-        if (rc1)
-            LOGERR (klogInt, rc1, "Re-enc failed to release encrypted file");
-
-        rc2 = KFileRelease (self->dec);
-        if (rc2)
-            LOGERR (klogInt, rc2, "Re-enc failed to release decryptor");
-
-        rc3 = KFileRelease (self->ram);
-        if (rc3)
-            LOGERR (klogInt, rc3, "Re-enc failed to release ram file");
-
-        rc4 = KFileRelease (self->enc);
-        if (rc4)
-            LOGERR (klogInt, rc4, "Re-enc failed to release encryptor");
-
-        free (self);
-
-        return (rc1 ? rc1 :
-                rc2 ? rc2 :
-                rc3 ? rc3 :
-                rc4);
-    }
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * GetSysFile
- *  returns an underlying system file object
- *  and starting offset to contiguous region
- *  suitable for memory mapping, or NULL if
- *  no such file is available.
- *
- * We do not allow this for read, write or update as you can not memory map the 
- * unencrypted file in a meaningful way.
- */
-static
-struct KSysFile *CC KReencFileGetSysFileUnsupported (const KReencFile *self, uint64_t *offset)
-{
-    assert (self);
-    assert (offset);
-
-    return NULL;
-}
-
-
-/* ----------------------------------------------------------------------
- * RandomAccess
- *
- *  returns 0 if random access, error code otherwise
- */
-static
-rc_t CC KReencFileRandomAccess (const KReencFile *self)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-
-    return KFileRandomAccess (self->encrypted);
-}
-
-
-/* ----------------------------------------------------------------------
- * Size
- *  returns size in bytes of file
- *
- *  "size" [ OUT ] - return parameter for file size
- */
-static
-rc_t CC KReencFileSize (const KReencFile *self, uint64_t *size)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-
-    /* -----
-     * the re-encrypted file will be the same size as the 
-     * previously encrypted file and we have the same understanding
-     * about knowing the size
-     */
-    return KFileSize (self->encrypted, size);
-}
-
-
-static
-rc_t CC KEncryptFileSize (const KReencFile *self, uint64_t *size)
-{
-    uint64_t z;
-    rc_t rc;
-
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-
-    /* -----
-     * the re-encrypted file will be the same size as the 
-     * previously encrypted file and we have the same understanding
-     * about knowing the size
-     */
-    rc = KFileSize (self->encrypted, &z);
-
-    if (rc == 0)
-    {
-        uint64_t bid;
-
-        bid = DecryptedPos_to_BlockId (z, NULL);
-
-        *size = BlockId_to_EncryptedPos (bid + 1) + sizeof (KEncFileFooter);
-    }
-    else
-        *size = z;
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * SetSize
- *  sets size in bytes of file
- *
- *  "size" [ IN ] - new file size
- */
-static
-rc_t CC KReencFileSetSizeUnsupported (KReencFile *self, uint64_t size)
-{
-    assert (self);
-
-    return RC ( rcFS, rcFile, rcUpdating, rcFunction, rcUnsupported );
-}
-
-
-/*
- * The next three functions do the actual Out from a KFileRead.
- * We will only out from the header, or a footer or a single
- * encrypted block rather than try to fully satisfy all of a
- * KFileRead. USe KFileReadAll to get more than one part
- *
- * For all we have an offset within the part which is the
- * position from the original read request for the header
- */
-static __inline__
-rc_t KReencFileReadHeaderOut (KReencFile * self, size_t offset, void * buffer,
-                              size_t bsize, size_t *num_read)
-{
-    assert (self);
-    assert (offset < sizeof (KEncFileHeader));
-    assert (buffer);
-    assert (bsize);
-    assert (num_read);
-
-    /* trim request if necessary */
-    if (offset + bsize > sizeof (KEncFileHeader))
-        bsize = sizeof (KEncFileHeader) - offset;
-
-    memcpy (buffer, self->block.text + offset, bsize);
-    self->block_id = NO_CURRENT_BLOCK;
-    *num_read = bsize;
-    
-    return 0;
-}
-
-
-static __inline__
-rc_t KReencFileReadBlockOut (KReencFile * self, size_t offset, void * buffer,
-                             size_t bsize, size_t * num_read)
-{
-    assert (self);
-    assert (offset < sizeof self->block);
-    assert (buffer);
-    assert (bsize);
-    assert (num_read);
-
-    if (offset + bsize > sizeof self->block)
-        bsize = sizeof self->block - offset;
-
-    memcpy (buffer, self->block.text + offset, bsize);
-    *num_read = bsize;
-
-    return 0;
-}
-
-
-static __inline__
-rc_t KReencFileReadFooterOut (KReencFile * self, size_t offset,
-                              void * buffer, size_t bsize, size_t * num_read)
-{
-    /* for the footer we will copy out from the footer in self */
-
-    assert (self);
-    assert (offset < sizeof self->foot);
-    assert (buffer);
-    assert (bsize);
-    assert (num_read);
-
-/* KOutMsg ("%s: offset '%zu' bsize '%zu'",__func__,offset,bsize); */
-    if (offset + bsize > sizeof self->foot)
-        bsize = sizeof self->foot - offset;
-
-    memcpy (buffer, self->foot.text + offset, bsize);
-    self->block_id = NO_CURRENT_BLOCK;
-    *num_read = bsize;
-
-/* KOutMsg (" *num_read '%zu'\n",bsize); */
-/* { */
-/*     size_t ix; */
-/*     char * b = buffer; */
-/*     KOutMsg ("%s:",__func__); */
-/*     for (ix = 0; ix < bsize; ++ix) */
-/*         KOutMsg (" %2.2x",b[ix]); */
-/*     KOutMsg ("\n"); */
-
-/* } */
-    return 0;
-}
-
-
-/*
- * Handle Read within the Encrypted file header
- *
- * We use a private interface into the KEncFile then 
- * the Out function below to take what we write with
- * the Encryptor and copy it to the callers read buffer.
- */
-static
-rc_t KReencFileReadHandleBlock (KReencFile *self,
-                                uint64_t pos,
-                                void *buffer,
-                                size_t bsize,
-                                size_t *num_read);
-
-static __inline__
-rc_t KReencFileReadHandleHeader (KReencFile *self,
-                                 uint64_t pos,
-                                 void *buffer,
-                                 size_t bsize,
-                                 size_t *num_read)
-{
-    rc_t rc;
-
-    assert (self);
-    assert (pos < sizeof (KEncFileHeader));
-    assert (buffer);
-    assert (bsize);
-    assert (num_read);
-
-    /* added to support NCBInenc and NCBIsenc variants of KEncFile
-     * read the first block of the source file but don't write any of it
-     *
-     * If the source is stream mode only then the next block to be read is the
-     * first and this will not violate by seeking. It will just have already
-     * read the block it will want to read real soon. Likewith within a
-     * single call to KFileReadAll.
-     */
-    rc = KReencFileReadHandleBlock (self, 0, NULL, 0, NULL);
-    if (rc)
-        return rc;
-
-    /* use a private function from KEncFile to generate a header */
-    rc = KEncFileWriteHeader (self->enc);
-    if (rc)
-        LOGERR (klogErr, rc, "re-enc error generating encrypted header");
-    else
-    {
-        /*
-         * assume it worked and its the right size 
-         * copy the requested portion of the header out to finish the read
-         */
-        rc = KReencFileReadHeaderOut (self, pos, buffer, bsize, num_read);
-        if (rc)
-            LOGERR (klogErr, rc, "re-enc error filling read request");
-    }
-    return rc;
-}
-
-
-/*
- * Read the requested block form the source encrypted file
- */
-static
-rc_t KReencFileReadABlock (KReencFile * self, uint64_t block_id)
-{
-    rc_t rc;
-
-
-/*     OUTMSG (("%s: block_id %lu\n",__func__,block_id)); */
-
-    if (block_id + 1 == self->footer_block)
-        memset (self->plain_text, 0, sizeof self->plain_text);
-
-    /* -----
-     * simple call down to the decryptor to get the plain text data
-     * for this block. We will regenerate the framing when we re-encrypt
-     */
-    rc = KFileReadAll (self->dec, BlockId_to_DecryptedPos (block_id),
-                       &self->plain_text, sizeof (self->plain_text),
-                       &self->num_read);
-    if (rc)
-        LOGERR (klogErr, rc, "re-enc error reading a block");
-
-    /*
-     * interpret bytes read for validity
-     *
-     * zero means we hit a premature end of file where we expected a block
-     */
-    else if (self->num_read == 0)
-    {
-        /*misleading RC? */
-        rc = RC (rcKrypto, rcFile, rcReading, rcSize, rcInsufficient);
-        LOGERR (klogErr, rc, "re-enc no block read");
-    }
-    /*
-     * less than a full block must be in the last block
-     */
-    else if (self->num_read < sizeof self->plain_text)
-    {
-/*         KOutMsg ("%s: block_id '%lu'num_read '%zu' of '%zu' last_block '%lu'\n", */
-/*                  __func__, block_id, self->num_read, sizeof self->plain_text, */
-/*                  self->footer_block); */
-
-        if (block_id + 1 != self->footer_block)
-        {
-            rc = RC (rcKrypto, rcFile, rcReading, rcSize, rcInsufficient);
-            LOGERR (klogErr, rc, "re-enc incomplete block read");
-        }
-    }
-    /*
-     * unlikely scenario, read too much
-     */
-    else if (self->num_read > sizeof self->plain_text)
-    {
-        rc = RC (rcKrypto, rcFile, rcReading, rcBuffer, rcIncorrect);
-        LOGERR (klogErr, rc, "re-enc no block read");
-    }
-    if (rc == 0)
-        self->block_id = block_id;
-    return rc;
-}
-
-
-static
-rc_t KReencFileWriteABlock (KReencFile * self, uint64_t block_id)
-{
-    rc_t rc;
-
-    /* -----
-     * simple call to encrypt an entire data section for the relevant block
-     * We send in up to 32KB of plain text which through two element KFiles will
-     * we written into a buffer back in this KFile. More data will be written
-     * to that buffer than requested here - that is the framing and also the
-     * header if the block is the first one.
-     */
-    rc = KFileWriteAll (self->enc, BlockId_to_DecryptedPos (block_id),
-                         self->plain_text, self->num_read, &self->num_writ);
-
-    if (rc)
-        LOGERR (klogInt, rc, "re-enc error encrypting a block");
-
-    else if (self->num_writ != self->num_read)
-    {
-        rc = RC (rcKrypto, rcFile, rcWriting, rcFile, rcIncomplete);
-        LOGERR (klogErr, rc, "re-enc failure encrypting all of block");
-    }
-
-    /* trigger a flush */
-/*     if (rc == 0) */
-/*         rc = KFileWriteAll (self->enc, BlockId_to_DecryptedPos (block_id^1), */
-/*                          self->plain_text, self->num_read, &self->num_writ); */
-
-    return rc;
-}
-
-
-/*
- * Add the current encrypted block to the footer statistics
- */
-static __inline__
-rc_t KReencFileAddToFooter (KReencFile * self)
-{
-    assert (self);
-/*     KOutMsg ("%s: ",__func__);  */
-
-    if (self->block.block.crc != self->block.block.crc_copy)
-    {
-        rc_t rc = RC (rcKrypto, rcFile, rcReading, rcChecksum, rcInvalid);
-        LOGERR (klogInt, rc, "rc-enc block CRCs disagree");
-        return rc;
-    }
-
-    ++ self->foot.foot.block_count;
-    self->foot.foot.crc_checksum += self->block.block.crc;
-
-/*     KOutMsg ("%lu %lu %lu\n",self->foot.foot.block_count,self->block.block.crc,self->foot.foot.crc_checksum); */
-    return 0;
-}
-
-
-/*
- * Read a block from the source encrypted block and Write it which reencrypts it
- *
- * The new_block parameter says whether this is the first time we've seen this
- * block. If it is we need to add data to the footer
- */
-static
-rc_t KReencFileReencBlock (KReencFile * self, uint64_t block_id, bool new_block)
-{
-    rc_t rc;
-
-    assert (self);
-
-/*     KOutMsg ("%s: %lu %lu\n", __func__, block_id, self->footer_block); */
-    assert (block_id < self->footer_block);
-    assert ((new_block == true) || (new_block == false));
-
-
-
-    rc = KReencFileReadABlock (self, block_id);
-    if (rc)
-        LOGERR (klogErr, rc, "re-enc failure to read a block");
-    else
-    {
-        if ((self->num_read == 0) || (self->num_read > sizeof (self->plain_text)))
-        {
-            rc = RC (rcFS, rcFile, rcReading, rcSize, rcIncorrect);
-            LOGERR (klogErr, rc, "Bad length on block read of encrypted file");
-        }
-        else
-        {
-            rc = KReencFileWriteABlock (self, block_id);
-            if (rc)
-                LOGERR (klogErr, rc, "re-enc failure to write a block");
-
-            else if (new_block)
-            {
-                rc = KReencFileAddToFooter (self);
-                if (rc)
-                    LOGERR (klogErr, rc,
-                            "re-enc failure to do block accounting");
-            }
-        }
-    }
-    return rc;
-}
-
-
-/*
- * Handle Read within the Encrypted file footer
- */
-static __inline__
-rc_t KReencFileReadHandleFooter (KReencFile *self,
-                                 uint64_t pos,
-                                 void *buffer,
-                                 size_t bsize,
-                                 size_t *num_read)
-{
-    uint64_t block_id;  /* block id for the footer gets us the start of footer */
-    size_t offset;
-    rc_t rc;
-
-/* KOutMsg ("\n\n\n%s: pos '%lu' bsize '%zu'\n",__func__,pos,bsize); */
-
-    assert (self);
-    assert (pos >= sizeof (KEncFileHeader) + sizeof self->block);
-    assert (buffer);
-    assert (bsize);
-    assert (num_read);
-
-    rc = 0;
-    block_id = EncryptedPos_to_BlockId (pos, NULL, NULL);
-
-    /* our library does not allow an empty file to be encrypted
-     * so we call that an error
-     */
-    assert (block_id > 0);
-
-    assert (block_id == self->footer_block);
-
-    offset = pos - BlockId_to_EncryptedPos (block_id);
-
-    assert (offset < sizeof self->foot);
-
-    /* if we are tying to treat this as a footer but it wasn't the next
-     * expected block mark all inbetween as missing to handle in the 
-     * function just below this
-     */
-
-/* KOutMsg ("%s: self->next_block %lu\n",__func__, self->next_block); */
-
-    self->foot.foot.block_count = block_id;
-    self->foot.foot.crc_checksum = 0;
-
-    if (rc == 0)
-    {
-        uint64_t header_pos;
-
-        header_pos = BlockId_to_EncryptedPos(block_id);
-
-        assert (header_pos <= pos);
-        assert (pos - header_pos <= sizeof self->foot);
-
-        rc = KReencFileReadFooterOut (self, (size_t)(pos - header_pos),
-                                      buffer, bsize, num_read);
-
-/*             KOutMsg ("%s: footer '%lu' '%lx'\n",__func__, */
-/*                      self->foot.foot.block_count, */
-/*                      self->foot.foot.crc_checksum); */
-
-        if (rc)
-            LOGERR (klogInt, rc, "re-enc failed to output footer");
-    }
-    return rc;
-}
-
-
-/*
- *
- */
-static
-rc_t KReencFileReadHandleBlock (KReencFile *self,
-                                uint64_t pos,
-                                void *buffer,
-                                size_t bsize,
-                                size_t *num_read)
-{ 
-    rc_t rc = 0;            /* we have a path where we need to check this without set */
-    uint64_t block_id;      /* block id for the requeted position */
-    uint32_t offset;        /* how far into the encrypted block */
-    bool new_block;         /* is this the first time for this block */
-
-    /* -----
-     * figure out what block this corresponds to. 
-     * the header is for this purpose part of the first block
-     * when we decide what to give the reader. We only care
-     * about which block and not whether it is in the payload
-     * or framing.
-     * This block id is not to a known to exist block. It could be 
-     * to the header, the footer or past the end of the file.
-     *
-     * NOTE: This could be a pre-fetch of the first block when
-     * processing the header - it will have some funny values
-     * with just a self and all other parameters 0s.
-     * pos of zero gives block_id of 0 and the bsize of zero
-     * means we never look at the others. Thi sis to allow the 
-     * (at the time this was written) new feature of two
-     * different file-signatures for encrypted files.
-     */
-    block_id = EncryptedPos_to_BlockId (pos, NULL, NULL);
-
-    if (block_id != self->block_id)
-    {
-        new_block = true;
-
-        if (rc == 0)
-        {
-            /* read requested block */
-            rc = KReencFileReencBlock (self, block_id, new_block);
-            if (rc)
-            {
-                LOGERR (klogErr, rc,
-                        "re-enc failure re-encryptinng a requested block");
-            }
-        }
-    }
-    if ((rc == 0) && (bsize > 0))
-    {
-        /* satisfy read request
-         *
-         * if we are here we decrypted and re-encrypted the
-         * expected block
-         */
-        offset = pos - BlockId_to_EncryptedPos (block_id);
-        rc = KReencFileReadBlockOut (self, offset, buffer, bsize, num_read);
-        if (rc)
-            LOGERR (klogErr, rc, "re-enc error copying out from block");
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Read
- *  read file from known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually read
- */
-static
-rc_t CC KReencFileReadUnsupported (const KReencFile *self,
-                                   uint64_t pos,
-                                   void *buffer,
-                                   size_t bsize,
-                                   size_t *num_read)
-{
-    assert (self);
-    assert (buffer);
-    assert (bsize);
-    assert (num_read);
-
-    return RC ( rcFS, rcFile, rcReading, rcFunction, rcUnsupported );
-}
-
-
-/*
- * Read will often return only a partial read.
- *
- * We take the less complex route here and return only from the header, a
- * single block or the footer, whatever is at the beginning of the requested
- * region.
- */
-static
-rc_t CC KReencFileRead (const KReencFile *self_,
-                        uint64_t pos,
-                        void *buffer,
-                        size_t bsize,
-                        size_t *num_read)
-{
-    /* make it all mutable and stop using self_ */
-    KReencFile * self = (KReencFile *)self_;
-    rc_t rc = 0;
-
-    assert (self);
-    assert (buffer);
-    assert (bsize);
-    assert (num_read);
-
-    *num_read = 0;
-
-    /* -----
-     * the size of the re-encrypted file will be the same as the size of the
-     * previously encrypted file so we can bail early if we know we can.
-     *
-     * The initial use case is that the file will just be lying out on disk
-     * and a KSysfile so that we do know the size.
-     *
-     * There are three pieces to an encrypted file:
-     * 1 Header
-     * 2 One or More Blocks
-     * 3 Footer
-     *
-     * We will only know if we are in the footer if we already know the size of
-     * the file. Else we have to find the footer by not finding a block when we
-     * try to read it. We'll thus look for the header first, then the footer else
-     * we try to find a block,
-     */
-
-    /* Header */
-    if (pos < sizeof (KEncFileHeader))
-        rc = KReencFileReadHandleHeader (self, pos, buffer, bsize, num_read);
-
-    /* if past the whole encrypted file */
-    else if (pos >= self->size)
-        rc = 0;
-
-    /* Footer */
-    else if (pos >= self->size - sizeof self->foot)
-        rc = KReencFileReadHandleFooter (self, pos, buffer, bsize, num_read);
-
-    /* Blocks */
-    else
-        rc = KReencFileReadHandleBlock (self, pos, buffer, bsize, num_read);
-
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Write
- *  write file at known position
- *
- *  "pos" [ IN ] - starting position within file
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- *
- * Unsupported as we now treat archives as READ ONLY
- */
-static
-rc_t CC KReencFileWriteUnsupported (KReencFile *self, uint64_t pos,
-                                    const void *buffer, size_t bsize,
-                                    size_t *num_writ)
-{
-    rc_t rc = RC (rcFS, rcFile, rcReading, rcFunction, rcUnsupported);
-
-    assert (self);
-    assert (buffer);
-    assert (bsize);
-    assert (num_writ);
-
-    assert (false);
-
-    LOGERR (klogInt, rc, "KFileRead failed to filter call");
-
-    return rc;
-}
-
-static
-rc_t CC KReencFileWrite (KReencFile *self, uint64_t pos,
-                         const void *buffer, size_t bsize,
-                         size_t *num_writ)
-{
-    assert (self);
-    assert (buffer);
-    assert (bsize);
-    assert (num_writ);
-
-    assert (REENCFILE_WRITE_SUPPORTED);
-
-    /* this needs to be finished before we can support Write open */
-
-    return KReencFileWriteUnsupported (self, pos, buffer, bsize, num_writ);
-}
-
-
-/* ----------------------------------------------------------------------
- * Type
- *  returns a KFileDesc
- *  not intended to be a content type,
- *  but rather an implementation class
- */
-static
-uint32_t CC KReencFileType (const KReencFile *self)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-
-    return KFileType (self->encrypted);
-}
-
-
-/* ----------------------------------------------------------------------
- * KReencFileMake
- *  create a new file object
- */
-
-
-/* ----------
- * MakeParamValidate
- * common parameter validation for both reencryptors
- */
-static
-rc_t KReencFileMakeParamValidate (const KFile ** pself, const KFile * encrypted, 
-                                  const KKey * deckey, const KKey * enckey)
-{
-    rc_t rc = 0;
-
-    do
-    {
-        if (pself == NULL)
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcSelf, rcNull);
-            LOGERR (klogErr, rc,
-                    "pointer to self NULL when creating "
-                    "a re-encryptor");
-            break;
-        }
-
-        *pself = NULL;
-
-        if (encrypted == NULL)
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-            LOGERR (klogErr, rc, 
-                    "encrypted file not supplied when creating "
-                    "an encryptor/decryptor");
-            break;
-        }
-
-        if ((enckey == NULL) || (deckey == NULL))
-        {
-            rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-            LOGERR (klogErr, rc, 
-                    "key not supplied when creating a re-encryptor");
-            break;
-        }
-
-        switch (deckey->type)
-        {
-        default:
-            rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcInvalid);
-            PLOGERR (klogErr,
-                     (klogErr, rc, "invalid key type '$(T)' should be "
-                      "kkeyAES128(1), kkeyAES192(2) or kkeyAES256(3)",
-                      "T=%u", deckey->type));
-            break;
-
-        case kkeyAES128:
-        case kkeyAES192:
-        case kkeyAES256:
-            break;
-        }
-        switch (enckey->type)
-        {
-        default:
-            rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcInvalid);
-            PLOGERR (klogErr,
-                     (klogErr, rc, "invalid key type '$(T)' should be "
-                      "kkeyAES128(1), kkeyAES192(2) or kkeyAES256(3)",
-                      "T=%u", enckey->type));
-            break;
-
-        case kkeyAES128:
-        case kkeyAES192:
-        case kkeyAES256:
-            break;
-        }
-    } while (0);
-    return rc;
-}
-
-
-/* ----------
- * Read mode is fully seekable if the underlying KFile is seekable some
- * integrity checking will not be performed in allowing this seeking.
- */
-static const KFile_vt_v1 vtKReencFileRead =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KReencFileDestroy,
-    KReencFileGetSysFileUnsupported,
-    KReencFileRandomAccess,
-    KReencFileSize,
-    KReencFileSetSizeUnsupported,
-    KReencFileRead,
-    KReencFileWriteUnsupported,
-
-    /* 1.1 */
-    KReencFileType
-};
-
-
-LIB_EXPORT rc_t CC KReencFileMakeRead (const KFile ** pself, 
-                                       const KFile * encrypted,
-                                       const KKey * deckey,
-                                       const KKey * enckey)
-{
-    KReencFile * self;
-    uint64_t size;
-    uint64_t block_count;
-    rc_t rc;
-
-    rc = KReencFileMakeParamValidate (pself, encrypted, deckey, enckey);
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "error constructing decryptor");
-        return rc;
-    }
-
-    rc = KFileSize (encrypted, &size);
-    if (GetRCState (rc) == rcUnsupported)
-    {
-        size = 0;
-        rc = RC (rcKrypto, rcFile, rcConstructing, rcSize, rcUnsupported);
-        LOGERR (klogErr, rc, "Can't re-encrypt files that don't support KFileSize");
-        return rc;
-    }
-    
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "Unable to attempt to size encrypted file for reencryption");
-        return rc;
-    }
-
-    rc = KFileAddRef (encrypted);
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "Unable to add reference to encrypted file for re-encryptor");
-        return rc;
-    }
-
-    if (size == 0)
-    {
-        *pself = encrypted;
-        return rc;
-    }
-    if (size < sizeof (KEncFileHeader) + sizeof (KEncFileBlock) + sizeof (KEncFileFooter))
-    {
-        rc = RC (rcKrypto, rcFile, rcConstructing, rcSize, rcTooShort);
-        LOGERR (klogErr, rc, "encrypted file too short to be valied for re-encryption");
-        KFileRelease (encrypted);
-        return rc;
-    }
-
-    {
-        uint64_t temp;
-
-        temp = size - (sizeof (KEncFileHeader) + sizeof (KEncFileFooter));
-        block_count = temp / sizeof (KEncFileBlock);
-        if ((block_count * sizeof (KEncFileBlock)) != temp)
-        {
-            rc = RC (rcKrypto, rcFile, rcConstructing, rcSize, rcInvalid);
-            LOGERR (klogErr, rc, "encrypted file invalid size for re-encryption");
-            KFileRelease (encrypted);
-            return rc;
-        }
-    }
-
-    self = calloc (1,sizeof (*self));
-
-    if (self == NULL)
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
-        LOGERR (klogSys, rc,
-                "out of memory creating encrypter and/or decryptor");
-    }
-    else
-    {
-        rc = KFileInit (&self->dad, (const KFile_vt*)&vtKReencFileRead, "KReencFile", "no-name", true, false);
-        if (rc)
-            LOGERR (klogInt, rc, "failed in initialize reenc base class");
-        else
-        {
-            self->encrypted = encrypted;
-            /* dec, enc, ram need to be Make */
-            /* num_read, num_write stay 0 */
-            self->block_id = NO_CURRENT_BLOCK;
-            /* missing needs to be Made */
-            /* next_block stays 0 */
-            /* seek_block stays 0 - obsolete */
-            self->footer_block = EncryptedPos_to_BlockId (size, NULL, NULL);
-            self->size = size;
-            self->known_size = true; /* obsolete */
-            /* plain_text and block stay 0 */
-            self->foot.foot.block_count = self->footer_block;
-
-            rc = KEncFileMakeRead (&self->dec, encrypted, deckey);
-            if (rc)
-                LOGERR (klogErr, rc, "Failed to create re-enc decryptor");
-
-            else
-            {
-                rc = KRamFileMakeUpdate (&self->ram, self->block.text, 
-                                         sizeof self->block.text);
-                if (rc)
-                    LOGERR (klogErr, rc, 
-                            "Failed to create re-enc encryptor");
-                else
-                {
-
-                    rc = KEncFileMakeWriteBlock (&self->enc, self->ram, enckey);
-                    if (rc)
-                        LOGERR (klogErr, rc,
-                                "Failed to create RAM file for reenc");
-                    else
-                    {
-                        *pself = &self->dad;
-                        return 0;
-                    }
-                    KFileRelease (self->ram);
-                }
-                KFileRelease (self->dec);
-            }
-        }
-        free (self);
-    }
-    KFileRelease (encrypted);
-    return rc;
-}
-
-
-static const KFile_vt_v1 vtKEncryptFileRead =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KReencFileDestroy,
-    KReencFileGetSysFileUnsupported,
-    KReencFileRandomAccess,
-    KEncryptFileSize,
-    KReencFileSetSizeUnsupported,
-    KReencFileRead,
-    KReencFileWriteUnsupported,
-
-    /* 1.1 */
-    KReencFileType
-};
-
-
-LIB_EXPORT rc_t CC KEncryptFileMakeRead (const KFile ** pself, 
-                                         const KFile * encrypted,
-                                         const KKey * enckey)
-{
-    KReencFile * self;
-    uint64_t rawsize;
-    uint64_t size;
-    uint64_t max_block;
-    rc_t rc;
-
-    rc = KReencFileMakeParamValidate (pself, encrypted, enckey, enckey);
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "error constructing decryptor");
-        return rc;
-    }
-
-    rc = KFileSize (encrypted, &rawsize);
-    if (GetRCState (rc) == rcUnsupported)
-    {
-        size = 0;
-        rc = RC (rcKrypto, rcFile, rcConstructing, rcSize, rcUnsupported);
-        LOGERR (klogErr, rc, "Can't encrypt files that don't support KFileSize");
-        return rc;
-    }
-    
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "Unable to attempt to size encrypted file for encryption");
-        return rc;
-    }
-
-    rc = KFileAddRef (encrypted);
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "Unable to add reference to unencrypted file for encryptor");
-        return rc;
-    }
-
-    if (rawsize == 0)
-    {
-        *pself = encrypted;
-        return rc;
-    }
-
-    self = calloc (1,sizeof (*self));
-
-    if (self == NULL)
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
-        LOGERR (klogSys, rc,
-                "out of memory creating encrypter and/or decryptor");
-    }
-    else
-    {
-        rc = KFileInit (&self->dad, (const KFile_vt*)&vtKEncryptFileRead, "KEncryptFile", "no-path", true, false);
-        if (rc)
-            LOGERR (klogInt, rc, "failed in initialize reenc base class");
-        else
-        {
-            self->encrypted = encrypted;
-            /* dec, enc, ram need to be made below */
-            /* num_read, num_write stay 0 */
-            self->block_id = NO_CURRENT_BLOCK;
-            /* missing needs to be Made */
-            /* next_block stays 0 */
-            /* seek_block stays 0 - obsolete */
-            max_block = DecryptedPos_to_BlockId (rawsize, NULL);
-            self->footer_block = max_block + 1;
-            size = BlockId_to_EncryptedPos (self->footer_block) + sizeof (KEncFileFooter);
-            self->size = size;
-            self->known_size = true; /* obsolete */
-
-            /* plain_text and block stay 0 */
-            self->foot.foot.block_count = self->footer_block;
-
-            rc = KFileAddRef (self->dec = encrypted);
-            if (rc)
-                LOGERR (klogErr, rc, "Unable to add reference to unencrypted file for encryptor");
-
-            else
-            {
-                rc = KRamFileMakeUpdate (&self->ram, self->block.text, 
-                                         sizeof self->block.text);
-                if (rc)
-                    LOGERR (klogErr, rc, 
-                            "Failed to create ram file for encryptor");
-                else
-                {
-                    
-                    rc = KEncFileMakeWriteBlock (&self->enc, self->ram, enckey);
-                    if (rc)
-                        LOGERR (klogErr, rc,
-                                "Failed to create RAM file for enc");
-                    else
-                    {
-                        *pself = &self->dad;
-                        return 0;
-                    }
-                    KFileRelease (self->ram);
-                }
-                KFileRelease (self->dec);
-            }
-        }
-        free (self);
-    }
-    KFileRelease (encrypted);
-    return rc;
-}
-
-
-/* ----------
- * Write mode re-encrypted file 
- */
-static const KFile_vt_v1 vtKReencFileWrite =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KReencFileDestroy,
-    KReencFileGetSysFileUnsupported,
-    KReencFileRandomAccess,
-    KReencFileSize,
-    KReencFileSetSizeUnsupported,
-    KReencFileReadUnsupported,
-    KReencFileWrite,
-
-    /* 1.1 */
-    KReencFileType
-};
-
-
-LIB_EXPORT rc_t CC KReencFileMakeWrite (KFile ** pself, 
-                                        KFile * encrypted,
-                                        const KKey * deckey,
-                                        const KKey * enckey)
-{
-#if REENCFILE_WRITE_SUPPORTED
-    KReencFile * self;
-    rc_t rc;
-
-    rc = KFileSetSize (encrypted, 0);
-#if 0
-    if (rc)
-        LOGERR (klogWarn, rc, "error truncating output file - "
-                "corrupted file might result");
-#endif
-
-    rc = KReencFileMakeParamValidate (&self, encrypted, deckey, enckey,
-                                      &vtKEncFileWrite, true);
-    if (rc)
-        LOGERR (klogErr, rc, "error creating encryptor");
-    else
-        *pself = &self->dad;
-    return rc;
-#else
-    return RC ( rcFS, rcFile, rcCreating, rcFunction, rcUnsupported );
-#endif
-}
-
-
-/* end of file reencfile.c */
-
-
diff --git a/libs/krypto/rng-impl.h b/libs/krypto/rng-impl.h
deleted file mode 100644
index 04b3418..0000000
--- a/libs/krypto/rng-impl.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_kryptoimpl_
-#define _h_kryptoimpl_
-
-#include <klib/rc.h>
-#include <klib/refcount.h>
-#include <atomic.h>
-#include <krypto/rng.h>
-#include "rng-priv.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-
-typedef union KRng_vt KRng_vt;
-
-
-
-
-#ifndef KRNG_IMPL
-#define KRNG_IMPL KRng
-#endif
-
-typedef struct KRng_vt_v1 KRng_vt_v1;
-struct KRng_vt_v1
-{
-    /* version == 1.x */
-    uint32_t maj;
-    uint32_t min;
-
-    /* start minor version == 0 */
-    rc_t (CC * destroy) (KRNG_IMPL * self);
-    rc_t (CC * seed)    (KRNG_IMPL * self);
-    rc_t (CC * reseed)  (KRNG_IMPL * self, const void * buff, size_t buff_size);
-    rc_t (CC * read)    (const KRNG_IMPL *self, void * buff, uint32_t buff_len,
-                         uint32_t * num_read);
-    /* end minor version == 0 */
-    /* start minor version == 1 */
-    /* end minor version == 1 */
-    /* end version == 1.x */
-};
-
-union KRng_vt
-{
-    KRng_vt_v1 v1;
-};
-
-static
-rc_t KRngInit (KRng * self, union KRng_vt * vt, const char * type)
-{
-    self->vt = vt;
-    KRefcountInit (&self->refcount, 1, "KRng", "Init", type);
-    return 0;
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_kryptoimpl_ */
diff --git a/libs/krypto/rng.c b/libs/krypto/rng.c
deleted file mode 100644
index f19c4f9..0000000
--- a/libs/krypto/rng.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <krypto/extern.h>
-#include <krypto/rng.h>
-#include <krypto/rng-impl.h>
-
-#include <klib/defs.h>
-#include <klib/rc.h>
-#include <klib/refcount.h>
-
-#include <stdlib.h>
-#include <assert.h>
-
-LIB_EXPORT rc_t CC KRngAddRef (const KRng * self)
-{
-    if (self) switch (KRefcountAdd (&self->refcount, "KRng"))
-    {
-    case krefLimit:
-        return RC (rcRuntime, rcNoTarg, rcAttaching, rcRange, rcExcessive);
-    }
-
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC KRngRelease (const KRng * self)
-{
-    if (self) switch (KRefcountDrop (&self->refcount, "KRng"))
-    {
-    case krefWhack:
-        switch (self->vt->v1.maj)
-        {
-        case 1:
-            return (self->vt->v1.destroy ((KRng*)self));
-        }
-        return RC (rcKrypto, rcRng, rcAccessing, rcSelf, rcBadVersion);
-    }
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC KRngSeed (KRng * self)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcRng, rcReading, rcSelf, rcNull);
-
-    switch (self->vt->v1.maj)
-    {
-    case 1:
-        return (self->vt->v1.seed (self));
-    }
-    return RC (rcKrypto, rcRng, rcAccessing, rcSelf, rcBadVersion);
-}
-
-
-LIB_EXPORT rc_t CC KRngReseed (KRng * self, void * buffer, size_t bsize)
-{
-    if (self == NULL)
-        return RC (rcKrypto, rcRng, rcReading, rcSelf, rcNull);
-    if (buffer == NULL)
-        return RC (rcKrypto, rcRng, rcReading, rcBuffer, rcNull);
-
-    switch (self->vt->v1.maj)
-    {
-    case 1:
-        return (self->vt->v1.reseed (self, buffer, bsize));
-    }
-    return RC (rcKrypto, rcRng, rcAccessing, rcSelf, rcBadVersion);
-}
-
-LIB_EXPORT rc_t CC KRngRead (const KRng * self, void * buffer, uint32_t bsize, uint32_t * num_read)
-{
-    if (num_read == NULL)
-        return RC (rcKrypto, rcRng, rcReading, rcParam, rcNull);
-    *num_read = 0;
-    if (self == NULL)
-        return RC (rcKrypto, rcRng, rcReading, rcSelf, rcNull);
-    if (buffer == NULL)
-        return RC (rcKrypto, rcRng, rcReading, rcBuffer, rcNull);
-
-    switch (self->vt->v1.maj)
-    {
-    case 1:
-        return (self->vt->v1.read (self, buffer, bsize, num_read));
-    }
-    return RC (rcKrypto, rcRng, rcAccessing, rcSelf, rcBadVersion);
-}
-
-LIB_EXPORT rc_t CC KRngInit (KRng * self, union KRng_vt * vt, const char * type)
-{
-    self->vt = vt;
-    KRefcountInit (&self->refcount, 1, "KRng", "Init", type);
-    return 0;
-}
-
-    
diff --git a/libs/krypto/testcipher.c b/libs/krypto/testcipher.c
deleted file mode 100644
index d23257f..0000000
--- a/libs/krypto/testcipher.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-#include <krypto/extern.h>
-#include <klib/defs.h>
-
-#include <krypto/cipher-test.h>
-#include "cipher-priv.h"
-#include <klib/rc.h>
-
-
-KRYPTO_EXTERN
-rc_t KCipherTestVecAesNiMake (struct KCipher ** new_cipher, kcipher_type type)
-{
-    if (new_cipher == NULL)
-        return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-        return KCipherVecAesNiMake (new_cipher, type);
-}
-
-
-KRYPTO_EXTERN
-rc_t KCipherTestVecRegMake   (struct KCipher ** new_cipher, kcipher_type type)
-{
-    if (new_cipher == NULL)
-        return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-        return KCipherVecRegMake (new_cipher, type);
-}
-
-
-KRYPTO_EXTERN
-rc_t KCipherTestVecMake      (struct KCipher ** new_cipher, kcipher_type type)
-{
-    if (new_cipher == NULL)
-        return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-        return KCipherVecMake (new_cipher, type);
-}
-
-
-KRYPTO_EXTERN
-rc_t KCipherTestByteMake     (struct KCipher ** new_cipher, kcipher_type type)
-{
-    if (new_cipher == NULL)
-        return RC (rcKrypto, rcCipher, rcConstructing, rcSelf, rcNull);
-
-    else
-        return KCipherByteMake (new_cipher, type);
-}
-
-
diff --git a/libs/krypto/wgaencrypt.c b/libs/krypto/wgaencrypt.c
deleted file mode 100644
index 5844ca9..0000000
--- a/libs/krypto/wgaencrypt.c
+++ /dev/null
@@ -1,1254 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- */
-
-#include <krypto/extern.h>
-#include <krypto/cipher.h>
-#include <krypto/ciphermgr.h>
-
-#include <krypto/wgaencrypt.h>
-
-#include <kfs/file.h>
-#include <kfs/countfile.h>
-#include <kfs/md5.h>
-#include <kfs/buffile.h>
-#include <kfs/nullfile.h>
-
-#include <klib/printf.h>
-#include <klib/rc.h>
-#include <klib/text.h>
-#include <klib/checksum.h>
-#include <klib/log.h>
-#include <klib/debug.h>
-
-#include <sysalloc.h>
-
-#include <strtol.h>
-
-#include <time.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include <os-native.h> /* strncasecmp on Windows */
-
-/* retain errors in encryption to be compatible with C++ */
-#define RETAINED_COMPATIBILTY_WITH_ERROR 1
-
-
-#define WGA_AES_BITS (256)
-#define ECB_BYTES (16)
-#define DEFAULT_BUFF_SIZE       (32*1024)
-
-
-#define DEBUG_STS(msg)     DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_STS),msg)
-#define DEBUG_CFG(msg)     DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_CFG_,msg)
-#define DEBUG_ENCRYPT(msg) DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_ENCRYPT_,msg)
-#define DEBUG_DECRYPT(msg) DBGMSG(DBG_KRYPTO,DBG_FLAG(DBG_KRYPTO_DECRYPT_,msg)
-
-static
-void CalcMD5 (void * buffer, size_t size, char hexstr [32])
-{
-    static const char to_hex[16] = "0123456789abcdef";
-    MD5State state;
-    uint8_t digest [16];
-    uint8_t * bin;
-    char * hex;
-    int ix;
-
-    MD5StateInit (&state);
-    MD5StateAppend (&state, buffer, size);
-    MD5StateFinish (&state, digest);
-
-    bin = digest;
-    hex = hexstr;
-
-    for (ix = 0; ix < sizeof digest; ++ix)
-    {
-        uint8_t upper;
-        uint8_t lower;
-
-        upper = *bin++;
-        lower = upper & 0xF;
-        upper >>= 4;
-
-        *hex++ = to_hex [upper];
-        *hex++ = to_hex[lower];
-    }
-}
-
-
-/* ----------------------------------------------------------------------
- * KWGAEncFileMagic is extracted from 
- *      internal/WGA/access_countrol/src/wga/fuse/enc_reader.[ch]pp
- * 
- * the size 9 is not commented on but appears to be the size of ASCIZ
- * that is the 'magic' pattern including the NUL.
- *
- * There is no version number in the header and that NUL could be turned
- * into a single byte version.
- */
-typedef char KWGAEncFileMagic [9];
-static const KWGAEncFileMagic ncbi_crypt_magic = "NeCnBcIo";
-
-/* ----------------------------------------------------------------------
- * Some values are stored in the encrypted file header using an odd radix 33
- */
-#define KWGA_ENC_FILE_HEADER_RADIX      (33)
-
-static
-const char KWGAEncFileHeaderAlphabet[] = "0123456789abcdefghijklmnopqrstuvwxyz";
-
-
-/* ----------------------------------------------------------------------
- * KWGAEncFileHeader is extracted from 
- *      internal/WGA/access_countrol/src/wga/fuse/enc_reader.[ch]pp
- *
- * There is no version number in this header; see the comment about KWGAEncFileMagic
- */
-typedef uint8_t FER_ENCODING;
-enum
-{
-    fer_encDES,
-    fer_encBLF,
-    fer_encAES
-};
-
-typedef struct KWGAEncFileHeader
-{
-    char magic [9];     /* "NeCnBcIo" -- NUL could be turned into a version */          /* 00 */
-    char block_sz [8];  /* radixx33 encoded: block size in bytes / usually 4096  */     /* 09 */
-    char file_sz [16];  /* radixx33 encoded: total size of unencrypted file */          /* 11 */
-    char mtime [8];     /* radixx33 encoded: 32 bit time_t  */                          /* 21 */
-    char fer_enc;       /* see FER_ENCODING */                                          /* 29 */
-    char md5_here;      /* bool if non zero, the whole file MD5 is below */             /* 2A */
-    char md5 [32];      /* whole file MD5 is ASCII hex */                               /* 2B */
-    char md51 [32];     /* first block MD5 */                                           /* 4B */
-    char reserved [21];                                                                 /* 6B */
-} KWGAEncFileHeader;                                                                    /* 80 */
-
-/* Original definition is in internal/WGA/access_countrol/src/wga/fuse/enc_reader.hpp */
-static const int8_t header_table[sizeof (KWGAEncFileHeader)] =
-{
-    101,  -6,   -23,  5,    -93,  20,   -128, -36,      /* 00 */
-    -42,  74,   -98,  104,  42,   12,   127,  37,       /* 08 */
-    -47,  -61,  124,  54,   -124, -94,  47,   72,       /* 10 */
-    70,   17,   -10,  108,  8,    31,   37,   -38,      /* 18 */
-    104,  -6,   -117, 79,   115,  89,   33,   -93,      /* 20 */
-    -47,  -105, -87,  -38,  90,   -45,  -59,  -46,      /* 28 */
-    -96,  106,  15,   -87,  -110, -101, 106,  -117,     /* 30 */
-    39,   73,   120,  -30,  -63,  21,   127,  -32,      /* 38 */
-    98,   -104, -3,   -81,  -60,  -120, 13,   -108,     /* 40 */
-    -53,  88,   123,  7,    103,  32,   -14,  -113,     /* 48 */
-    -68,  -27,  44,   109,  -122, -7,   81,   -13,      /* 50 */
-    64,   42,   -88,  -37,  -1,   -19,  66,   -105,     /* 58 */
-    -75,  -108, -5,   -121, -86,  47,   -120, -18,      /* 60 */
-    -69,  -29,  -68,  124,  -53,  -104, -28,  42,       /* 68 */
-    120,  52,   -80,  -23,  -110, -101, 106,  -117,     /* 70 */
-    -21,  -35,  12,   -117, 9,    -122, -21,  31        /* 78 */
-};                                                      /* 80 */
-
-static const KWGAEncFileHeader header_const =
-{
-    "NeCnBcIo", /* NUL terminator is significant */
-    {0},{0},{0},/* not constant */
-    fer_encAES, /* constant as DES and Blowfish are not implmented */
-    0,{0},{0},  /* not constant */
-    {0}         /* constant */
-};
-
-/* the header is obscured by XOR against a predefined pattern */
-static
-void KWGAEncFileHeaderDecrypt (KWGAEncFileHeader * header)
-{
-    size_t ix;
-    int8_t * p = (int8_t*)header;
-
-    assert (header);
-    for (ix = 0; ix < sizeof (*header); ++ix)
-        p[ix] ^= header_table[ix];
-}
-
-KRYPTO_EXTERN rc_t CC KFileIsWGAEnc (const void * buffer, size_t buffer_size)
-{
-    const uint8_t * ph;
-    const uint8_t * pt;
-    const uint8_t * pb;
-    int ix;
-    int lim;
-
-    if ((buffer == NULL) || (buffer_size == 0))
-        return RC  (rcFS, rcFile, rcIdentifying, rcParam, rcNull); 
-
-    /* bare minimum size to identify we decide is the first 8 
-     * obsfucated ASCII bytes */
-
-    if (buffer_size < (sizeof (header_const.magic) - 1))
-        return RC (rcFS, rcFile, rcIdentifying, rcBuffer, rcInsufficient); 
-
-    /* a match is ph[X] ^ pt[X] == pb[X] at specially identified points
-     * we could have put the ^ into a constant for a tad faster operation
-     * but meh...
-     */
-    ph = (const uint8_t*)&header_const;
-    pt = (const uint8_t*)&header_table;
-    pb = (const uint8_t*)buffer;
-
-    ix = offsetof (struct KWGAEncFileHeader, magic);
-    lim = ix + sizeof (header_const.magic);
-    if (lim > buffer_size)
-        lim = buffer_size;
-    for (; (ix < lim) && (ix < buffer_size); ++ix)
-        if ((ph[ix] ^ pt[ix]) != pb[ix])
-            return RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType); 
-
-    if (buffer_size < offsetof (struct KWGAEncFileHeader, fer_enc))
-        return 0;
-
-    if ((ph[offsetof (struct KWGAEncFileHeader, fer_enc)] ^ pt[offsetof (struct KWGAEncFileHeader, fer_enc)])
-        != pb[offsetof (struct KWGAEncFileHeader, fer_enc)])
-        return RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType); 
-
-
-    ix = offsetof (struct KWGAEncFileHeader, reserved);
-    if (buffer_size < ix)
-        return 0;
-
-    lim = ix + sizeof (header_const.reserved);
-
-    if (lim > buffer_size)
-        lim = buffer_size;
-    
-    for (; ix < lim; ++ix)
-        if ((ph[ix] ^ pt[ix]) != pb[ix])
-            return RC (rcFS, rcFile, rcIdentifying, rcFile, rcWrongType);
-
-    return 0;
-}
-
-
-
-
-
-
-/* ======================================================================
- * KWGAEncFile
- */
-
-/* -----
- * define the specific types to be used in the templatish/inheritancish
- * definition of vtables and their elements
- */
-typedef struct KWGAEncFile KWGAEncFile;
-#define KFILE_IMPL struct KWGAEncFile
-
-#include <kfs/impl.h>
-
-struct KWGAEncFile
-{
-    KFile dad;                  /* base class */
-    const KFile * encrypted;    /* encrypted file as a read only KFile */
-    uint64_t file_size;         /* as read from the encrypted file header */
-    KTime_t mtime;              /* as read from the encrypted file header */
-    uint32_t block_size;        /* block size is in KB  not bytes */
-    KCipher * cipher;
-
-    char inkey [32];
-    size_t inkey_size;
-
-    bool md5_here;              /* was the md5 in the header? */
-    char md5[32];            /* external md5 loaded into the header as ASCII hex */
-    char md51[32];           /* md5 of first block loaded into the header as ASCII hex */
-    struct
-    {
-        uint64_t  offset;       /* position with in the unencrypted file */
-        uint32_t  valid;        /* how much usable at data */
-        uint8_t   data [DEFAULT_BUFF_SIZE];
-    } buffer;
-};
-
-
-/* ----------------------------------------------------------------------
- * InitKey
- *
- * This method mimics the prepare_key method in the WGA C++ code including
- * what looks like programming errors.
- *
- * The goal is compatibility not 'correctness'.
- */
-static
-rc_t KWGAEncFileKeyInit (KWGAEncFile * self, const char * key, size_t key_size)
-{
-    rc_t rc;
-    char g_key [32];  /* original used 513 but no key uses that much */
-
-    /* scary! */
-    /* this is copied directly from enc_read.cpp with all the 'possibly wrong' code */
-    memset (g_key, 0, sizeof g_key);
-    if (key_size > sizeof (g_key))
-        key_size = sizeof (g_key);
-    memcpy (g_key, key, key_size);
-
-    if (key_size < 16) /* even though g_key and some cipher keys are larger than 16 */
-    {
-        int jx, ix;
-        for ((jx = key_size),(ix = 0); jx < 16; ++jx, ++ix)
-        {
-            g_key[jx] = self->md51[ix] | g_key[ix%(jx?jx:1)];    /* cringe? */
-        }
-    }
-
-    /* okay we'll use 32 bytes from g_key though is is highly
-     * likely we've only got 16 non-zero bytes */
-     rc = KCipherSetDecryptKey (self->cipher, g_key, WGA_AES_BITS/8);
-
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * Destroy
- *
- */
-static
-rc_t CC KWGAEncFileDestroyRead (KWGAEncFile *self)
-{
-    rc_t rc = 0;
-
-    if (self)
-    {
-        rc = KFileRelease (self->encrypted);
-        free (self);
-    }
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * GetSysFile
- *  returns an underlying system file object
- *  and starting offset to contiguous region
- *  suitable for memory mapping, or NULL if
- *  no such file is available.
- *
- * We do not allow this for read, write or update as you can not memory map the 
- * unencrypted file in a meaningful way.
- */
-static
-struct KSysFile *CC KWGAEncFileGetSysFile (const KWGAEncFile *self, uint64_t *offset)
-{
-    assert (self);
-    assert (offset);
-    return NULL;
-}
-
-
-/* ----------------------------------------------------------------------
- * RandomAccess
- *
- *  returns 0 if random access, error code otherwise
- */
-static
-rc_t CC KWGAEncFileRandomAccess (const KWGAEncFile *self)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-    return KFileRandomAccess (self->encrypted);
-}
-
-
-/* ----------------------------------------------------------------------
- * Size
- *  returns size in bytes of file
- *
- *  "size" [ OUT ] - return parameter for file size
- */
-static
-rc_t CC KWGAEncFileSize (const KWGAEncFile *self, uint64_t *size)
-{
-    uint64_t esize;
-    rc_t rc;
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-    assert (size != NULL);
-
-    *size = 0;
-    rc = KFileSize (self->encrypted, &esize);
-    if (rc == 0)
-        *size = esize - sizeof (KWGAEncFileHeader);
-    return rc;
-}
-
-
-/* ----------------------------------------------------------------------
- * SetSize
- *  sets size in bytes of file
- *
- *  "size" [ IN ] - new file size
- */
-static
-rc_t CC KWGAEncFileSetSize (KWGAEncFile *self, uint64_t size)
-{
-    assert (self);
-
-    return RC ( rcFS, rcFile, rcUpdating, rcFunction, rcUnsupported );
-}
-
-
-/* ----------------------------------------------------------------------
- * Read
- *  read file from known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ OUT ] and "bsize" [ IN ] - return buffer for read
- *
- *  "num_read" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually read
- */
-
-/* local fill the buffer with block or more  */
-static
-rc_t KWGAEncFileReadInt (KWGAEncFile * self, uint64_t pos, size_t bsize)
-{
-    uint64_t adjpos;
-    size_t tot_read;
-    size_t num_read;
-    rc_t rc = 0;
-
-    assert (self);
-    assert (bsize);
-    assert (bsize <= 32 * 1024);
-    assert (128%16 == 0);
-
-    memset (self->buffer.data, 0, sizeof self->buffer.data);
-    tot_read = num_read = 0;
-    adjpos = pos + sizeof (KWGAEncFileHeader);
-#if 0
-    do
-    {
-        rc = KFileRead (self->encrypted, adjpos + tot_read,
-                        self->buffer.data + tot_read, bsize - tot_read,
-                        &num_read);
-        if (rc)
-            return rc;        
-        tot_read += num_read;
-    } while ((tot_read < bsize) && (num_read > 0));
-#else
-    rc = KFileReadAll (self->encrypted, adjpos, self->buffer.data, bsize,
-                       &tot_read);
-#endif
-    self->buffer.offset = pos;
-    self->buffer.valid = tot_read;
-
-    if (tot_read & 15)
-        rc = RC (rcKrypto, rcFile, rcReading, rcSize, rcInsufficient);
-    else if (tot_read > 0)
-    {
-#if 1
-
-#if RETAINED_COMPATIBILTY_WITH_ERROR
-        KCipherDecryptECB (self->cipher, self->buffer.data, self->buffer.data,
-                           (tot_read / ECB_BYTES));
-#else
-/* Well this is wrong for even being wrong now */
-        KCipherDecryptECB (self->cipher, self->buffer.data, self->buffer.data,
-                           tot_read);
-#endif
-
-#else
-        uint32_t count;
-        uint32_t ix;
-
-        /* this loop can be replaced by the KCipherDecryptECB
-         * with care taken to match the error in the original
-         * C++
-         */
-
-#if RETAINED_COMPATIBILTY_WITH_ERROR
-        count = tot_read / ECB_BYTES;
-#else
-        /* do all full 16 byte blocks plus a last partial block */
-        count = (tot_read + (ECB_BYTES-1)) / ECB_BYTES;
-#endif
-        for (ix = 0; ix < count; ++ix)
-        {
-            uint8_t * pb = self->buffer.data + (ix * ECB_BYTES);
-
-            rc = KCipherDecrypt (self->cipher, pb, pb);
-            if (rc)
-                break;
-        }
-#endif
-    }
-    return rc;
-}
-
-
-static
-rc_t CC KWGAEncFileRead	(const KWGAEncFile *cself,
-                         uint64_t pos,
-                         void *buffer,
-                         size_t bsize,
-                         size_t *num_read)
-{
-    KWGAEncFile * self = (KWGAEncFile *)cself; /* mutable values */
-    rc_t rc = 0;
-
-    assert (cself);
-    assert (buffer);
-    assert (num_read);
-
-
-    *num_read = 0;
-
-    /* are we even within the file? If not just say no. Drugs are bad Mmmkay */
-    if (pos >= self->file_size)
-    {}
-    /* are we not reading from out what is already in the decrypted buffer space? */
-    else
-    {
-        if ((self->buffer.valid == 0) ||
-            (pos < self->buffer.offset) ||
-            (pos >= (self->buffer.offset + self->buffer.valid)))
-        {
-            if (pos < self->block_size) /* we'll be reading from the first 'block' */
-            {
-                rc = KWGAEncFileReadInt (self, 0, self->block_size);
-                if (rc)
-                {
-                    LOGERR (klogErr, rc, "error reading first data block of"
-                            " encrypted file");
-                    return rc;
-                }
-                if (self->buffer.valid > self->block_size)
-                {
-                    rc = RC (rcFS, rcFile, rcReading, rcBuffer, rcTooBig);
-                    LOGERR (klogInt, rc, "read wrong amount for first block");
-                    return rc;
-                }
-                else
-                {
-                    size_t md5_size;
-                    size_t nudge = 0;
-                    char md51_comp [32];
-
-                    if (self->buffer.valid & (ECB_BYTES-1))
-                        nudge = ECB_BYTES - (self->buffer.valid & (ECB_BYTES-1));
-                    if (nudge)
-                        memset (self->buffer.data + self->buffer.valid, 0, nudge);
-
-                    md5_size = self->buffer.valid + nudge;
-
-                    CalcMD5 (self->buffer.data, md5_size, md51_comp);
-
-#if 1
-                    if (strcase_cmp (self->md51, string_size(self->md51),
-                                     md51_comp, string_size(md51_comp), 32) != 0)
-#else
-                    if (strncasecmp (self->md51, md51_comp, 32) != 0)
-#endif
-                    {
-                        rc = RC (rcFS, rcFile, rcReading, rcConstraint, rcCorrupt);
-                        LOGERR (klogErr, rc, "MD5 does not match in decryption");
-                        return rc;
-                    }
-                }
-            }
-            else /* if (pos >= self->block_size) */
-            {
-                rc = KWGAEncFileReadInt (self, (pos & ~ ( uint64_t ) (16-1)),
-                                         DEFAULT_BUFF_SIZE);
-                if (rc)
-                {
-                    LOGERR (klogErr, rc, "error reading data block of"
-                            " encrypted file");
-                    return rc;
-                }
-            }  /* if (pos < self->block_size) */
-        } /* if ((self->buffer.valid == 0) || etc. */
-        /* if here we have a valid buffer and it contains the start pos requested */
-/*     assert (pos >= self->buffer.offset); */
-/*     assert (pos < (self->buffer.offset +self->buffer.valid)); */
-        {
-            size_t start;
-            size_t limit;
-
-            /* find offset of start for copy within the buffer */
-            start = (size_t)(pos - self->buffer.offset);
-            /* how many bytes available starting here */
-            limit = self->buffer.valid - start;
-
-            if (pos + limit > self->file_size)
-                limit = self->file_size - pos;
-
-            /* are we asking to read more than we have? is so trim the request */
-            if (limit < bsize)
-                bsize = limit;
-
-            memmove (buffer, self->buffer.data + start, bsize);
-            *num_read = bsize;
-        }
-    }
-    return 0;
-}
-
-
-/* ----------------------------------------------------------------------
- * Write
- *  write file at known position
- *
- *  "pos" [ IN ] - starting position within file
- *
- *  "buffer" [ IN ] and "size" [ IN ] - data to be written
- *
- *  "num_writ" [ OUT, NULL OKAY ] - optional return parameter
- *  giving number of bytes actually written
- *
- * Unsupported as we now treat archives as READ ONLY
- */
-static
-rc_t CC KWGAEncFileWriteFail (KWGAEncFile *self, uint64_t pos,
-                              const void *buffer, size_t bsize,
-                              size_t *num_writ)
-{
-    assert (self);
-    return RC (rcFS, rcFile, rcReading, rcFunction, rcUnsupported);
-}
-
-
-/* ----------------------------------------------------------------------
- * Type
- *  returns a KFileDesc
- *  not intended to be a content type,
- *  but rather an implementation class
- */
-static
-uint32_t CC KWGAEncFileType (const KWGAEncFile *self)
-{
-    assert (self != NULL);
-    assert (self->encrypted != NULL);
-
-    return KFileType (self->encrypted);
-}
-
-
-static const KFile_vt_v1 vtKWGAEncFileRead =
-{
-    /* version */
-    1, 1,
-
-    /* 1.0 */
-    KWGAEncFileDestroyRead,
-    KWGAEncFileGetSysFile,
-    KWGAEncFileRandomAccess,
-    KWGAEncFileSize,
-    KWGAEncFileSetSize,
-    KWGAEncFileRead,
-    KWGAEncFileWriteFail,
-
-    /* 1.1 */
-    KWGAEncFileType
-};
-
-
-static
-rc_t KWGAEncFileHeaderRead (KWGAEncFile * self)
-{
-    KWGAEncFileHeader header;
-    uint8_t * pb;
-    size_t num_read;
-    size_t tot_read;
-    rc_t rc;
-
-    assert (self);
-    assert (sizeof (KWGAEncFileHeader) == 128);
-
-
-    DEBUG_STS (("s: Enter '%p'\n", __func__, self));
-    pb = (void*)&header;
-    for (num_read = tot_read = 0; tot_read < sizeof header; )
-    {
-        rc = KFileRead (self->encrypted, (uint64_t)tot_read, pb, 
-                        sizeof (header) - tot_read, &num_read);
-        if (rc)
-        {
-            LOGERR (klogErr, rc, "Error reading the header for an encrypted file");
-            return rc;
-        }
-
-        if (num_read == 0)
-        {
-            rc =  RC (rcFS, rcFile, rcReading, rcFile, rcInsufficient);
-            LOGERR (klogErr, rc, "Header incomplete for an encrypted file");
-            return rc;
-        }
-        tot_read += num_read;
-        pb += num_read;
-    }
-
-    KWGAEncFileHeaderDecrypt (&header);
-
-    if (memcmp (header.magic, ncbi_crypt_magic, sizeof ncbi_crypt_magic) != 0)
-    {
-        rc = RC (rcFS, rcFile, rcReading, rcHeader, rcCorrupt);
-        LOGERR (klogErr, rc, "Header's magic bad for encrypted file");
-        return rc;
-    }
-
-    /* so far unknown legal range */
-    self->block_size = strtou32 (header.block_sz, NULL, KWGA_ENC_FILE_HEADER_RADIX);
-
-    self->file_size = strtou64 (header.file_sz, NULL, KWGA_ENC_FILE_HEADER_RADIX);
-
-    /* file format has limiting feature of a 32 bit timestamp */
-    self->mtime = (KTime_t)strtol (header.mtime, NULL, KWGA_ENC_FILE_HEADER_RADIX);
-
-    switch ((FER_ENCODING)header.fer_enc)
-    {
-    default:
-        rc = RC (rcFS, rcFile, rcReading, rcHeader, rcOutofrange);
-        LOGERR (klogErr, rc, "Enryption type code out of range");
-        return rc;
-    case fer_encDES:
-    case fer_encBLF:
-        rc = RC (rcFS, rcFile, rcReading, rcHeader, rcIncorrect);
-        LOGERR (klogErr, rc, "Enryption type code not supported");
-        return rc;
-    case fer_encAES:
-        break;
-    }
-
-    self->md5_here = (header.md5_here != 0);
-
-    if (self->md5_here)
-        memcpy (self->md5, header.md5, sizeof (self->md5));
-
-    memcpy (self->md51, header.md51, sizeof (self->md51));
-
-    return 0; /* yeah not really checking later errors am i? */
-}
-
-/* ----------------------------------------------------------------------
- * KWGAEncFileMake
- *  create a new file object
- *
- * pself        where to put pointer to new object
- * encrypted    a readable file that is encrypted
- * cipher       a cipher object that must support AES with 256 bit key
- *              not verified except through failure to decrypt a file
- * key          bytes containing the user key - should be utf-8 but with no
- *              control characters
- * key_size     how many bytes to use from the key 
- */
-/* read only version for decrypting of existing files */
-KRYPTO_EXTERN rc_t CC KFileMakeWGAEncRead (const struct KFile ** pself, 
-                                           const struct KFile * encrypted,
-                                           const char * key,
-                                           size_t key_size)
-{
-    rc_t rc;
-
-    if (pself == NULL)
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcSelf, rcNull);
-        LOGERR (klogErr, rc, "key parameter for WGA encrypted file is empty");
-        return rc;
-    }
-
-    *pself = NULL;
-
-    if ((encrypted == NULL)||(key == NULL))
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcNull);
-        LOGERR (klogErr, rc, "missing WGA encrypted file passed in to constructor");
-    }
-
-    else if (key_size == 0)
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcInvalid);
-        LOGERR (klogErr, rc, "missing WGA encrypted file passed in to constructor");
-    }
-
-    else if (encrypted->read_enabled == 0)
-    {
-        rc = RC (rcFS, rcFile, rcConstructing, rcParam, rcIncorrect);
-        LOGERR (klogErr, rc, "encrypted file not readable");
-    }
-    else
-    {
-        KCipherManager * cipher_mgr;
-
-        rc = KCipherManagerMake (&cipher_mgr);
-        if (rc == 0)
-        {
-            KCipher * cipher;
-
-            rc = KCipherManagerMakeCipher (cipher_mgr, &cipher, kcipher_AES);
-            if (rc == 0)
-            {
-                size_t z;
-
-                rc = KCipherBlockSize (cipher, &z);
-                if (rc)
-                {
-                    LOGERR (klogErr, rc, "unable to get block size for WGA "
-                            "encrypted file cipher passed in to constructor");
-                }
-                else
-                {
-                    if (z != ECB_BYTES)
-                    {
-                        rc = RC (rcFS, rcFile, rcConstructing, rcParam,
-                                 rcInvalid);
-                        LOGERR (klogErr, rc, "wrong block size for WGA "
-                                "encrypted file cipher passed in to "
-                                "constructor");
-                    }
-                    else
-                    {
-                        KWGAEncFile * self;
-
-                        self = calloc (sizeof (*self), sizeof (uint8_t));
-                        if (self == NULL)
-                        {
-                            rc = RC (rcFS, rcFile, rcConstructing, rcMemory,
-                                     rcExhausted);
-                            LOGERR (klogErr, rc, "out of memory while "
-                                    "constructing decryptor");
-                        }
-                        else
-                        {
-                            rc = KFileAddRef (encrypted);
-                            if (rc)
-                                LOGERR (klogErr, rc, "unable to add reference "
-                                "to encrypted file");
-                            else
-                            {
-                                /* cast to strip const */
-                                self->encrypted = encrypted;
-                                self->cipher = cipher;
-
-                                /* read the header of the encrypted file for
-                                 * details about the  decrypted file */
-                                DEBUG_STS(("%s: calling KWGAEncFileHeaderRead\n",
-                                           __func__));
-                                rc = KWGAEncFileHeaderRead (self);
-                                if (rc == 0)
-                                {
-                                    /* using the file header's stored encoding
-                                     * key build a key from the parameter key */
-                                    DEBUG_STS(("%s: calling "
-                                               "KWGAEncFileHeaderRead\n",
-                                               __func__));
-                                    rc = KWGAEncFileKeyInit (self, key,
-                                                             key_size);
-                                }
-                                if (rc == 0)
-                                {
-                                    rc = KFileInit (&self->dad, 
-                                                    (const KFile_vt*)
-                                                    &vtKWGAEncFileRead,
-                                                    "KWGAEncFile", "no-name",
-                                                    true, false);
-                                    if (rc)
-                                        LOGERR (klogInt, rc, "Failed to initialize decrypting file");
-                                    else
-                                    {
-                                        *pself = &self->dad;
-                                        self->buffer.offset = 0;
-                                        self->buffer.valid = 0;
-                                        KCipherManagerRelease (cipher_mgr);
-                                        return 0;
-                                    }
-                                }
-                                /* release of encrypted handled in destroy() */
-                            }
-                            KWGAEncFileDestroyRead (self);
-                        }
-                    }
-                }
-                KCipherRelease (cipher);
-            }           
-        }
-    }
-    return rc; 
-}
-
-static __inline__
-rc_t WGAEncValidateHeader (const KWGAEncFileHeader * header,
-                           size_t header_size)
-{
-    rc_t rc = 0;
-    unsigned ix;
-
-    if (header_size != sizeof * header)
-    {
-        rc = RC (rcKrypto, rcFile, rcValidating, rcHeader, rcInsufficient);
-        LOGERR (klogErr, rc, "incomplete header");
-        return rc;
-    }
-
-    if (memcmp (header, &header_const, sizeof header->magic) != 0)
-    {
-        rc = RC (rcKrypto, rcFile, rcValidating, rcHeader, rcInvalid);
-        LOGERR (klogErr, rc, "bad signature in encrypted file header");
-        return rc;
-    }
-
-#if 0
-    /* check block_size */
-    do
-    {
-        for (ix = 0; isspace(header->block_sz[ix]); ++ix)
-            ;
-
-        if (ix >= sizeof (header->block_sz))
-            break;
-
-        if (header->block_sz[ix] == '+')
-            ++ix;
-
-        if (ix >= sizeof (header->block_sz))
-            break;
-
-        for (; (ix < sizeof header->block_sz); ++ix)
-        {
-            if (isdigit (header->block_sz[ix]))
-                ;
-            else if ((header->block_sz[ix] >= 'a') &&
-                     (header->block_sz[ix] <= 'w'))
-                ;
-            else if ((header->block_sz[ix] >= 'A') &&
-                     (header->block_sz[ix] <= 'W'))
-                ;
-            else
-                break;
-        }
-        for (; (ix < sizeof header->block_sz); ++ix)
-        {
-            if (header->block_sz[ix] == '\0')
-                ;
-            else
-                break;
-        }
-        if (rc)
-        
-
-
-        for (ix = 0; ix < sizeof header->block_size; ++ix)
-        {
-            if ()
-                ;
-                }
-        
-            ;
-        else if (header->block_sz[ix] == '-')
-            ;
-        else
-            ;
-    }while (0);
-    /* check file_sz */
-    /* check mtime */
-#endif
-
-    if (header->fer_enc != fer_encAES)
-    {
-        rc = RC (rcKrypto, rcFile, rcValidating, rcHeader, rcInvalid);
-        LOGERR (klogErr, rc, "bad encoding flag in encrypted file header");
-        return rc;
-    }
-
-    if ((header->md5_here != true) && (header->md5_here != false))
-    {
-        rc = RC (rcKrypto, rcFile, rcValidating, rcHeader, rcInvalid);
-        LOGERR (klogErr, rc, "bad checksum flag in encrypted file header");
-        return rc;
-    }
-
-    /* check md5 */
-    /* check md51 */
-
-    for (ix = 0; ix < sizeof header->reserved; ++ix)
-    {
-        if (header->reserved[ix] != 0)
-        {
-            rc = RC (rcKrypto, rcFile, rcValidating, rcHeader, rcInvalid);
-            LOGERR (klogErr, rc, "bad reserved space in encrypted file header");
-            return rc;
-        }
-    }
-
-    return 0;
-}
-
-
-KRYPTO_EXTERN rc_t CC WGAEncValidate (const KFile * encrypted, 
-                                      const char * key,
-                                      size_t key_size)
-{
-    const KFile * buffile;
-    rc_t rc, orc;
-
-    rc = KBufFileMakeRead (&buffile, encrypted, 64*1024);
-    if (rc)
-        LOGERR (klogErr, rc, "unable to buffer encrypted file");
-
-    else
-    {
-        KWGAEncFileHeader header;
-        size_t num_read;
-
-        /* first let's disect the header */
-        rc = KFileReadAll (buffile, 0, &header, sizeof header, &num_read);
-        if (rc)
-            LOGERR (klogErr, rc, "unable to read encrypted file header");
-
-        else
-        {
-            uint64_t file_size;
-            uint64_t header_file_size;
-            char ascii_md5 [32];
-            char header_ascii_md5 [32];
-
-            KWGAEncFileHeaderDecrypt (&header);
-
-            rc = WGAEncValidateHeader (&header, num_read);
-            if (rc)
-                ;
-
-            else
-            {
-                if (key_size == 0)
-                {
-                    const KFile * countfile;
-                    rc = KFileMakeCounterRead (&countfile, encrypted, &file_size, NULL, false);
-                    if (rc)
-                    {
-                        LOGERR (klogErr, rc, "error making file size counter");
-                        file_size = 0;
-                    }
-                    else
-                    {
-                        KFileAddRef (encrypted);
-                        KFileRelease (countfile);
-
-                        file_size -= sizeof header;
-                    }
-                }
-                else
-                {
-                    union
-                    {
-                        const KFile * decrypted;
-                        const KWGAEncFile * decryptor;
-                    } u;
-
-                    rc = KFileMakeWGAEncRead (&u.decrypted, buffile, key, key_size);
-                    if (rc)
-                        LOGERR (klogErr, rc, "error making decryptor");
-
-                    else
-                    {
-                        KFile * nullfile;
-
-                        rc = KFileMakeNullUpdate (&nullfile);
-                        if (rc)
-                            LOGERR (klogInt, rc, "error making data sync");
-
-                        else
-                        {
-                            KMD5SumFmt * fmt;
-                            static const char name[] = "wgaencrypt";
-
-                            rc = KMD5SumFmtMakeUpdate (&fmt, nullfile);
-                            if (rc)
-                            {
-                                LOGERR (klogInt, rc, "error making md5sum database");
-                                KFileRelease (nullfile);
-                            }
-                            else
-                            {
-                                const KFile * md5file;
-
-                                rc = KFileMakeNewMD5Read (&md5file, u.decrypted, fmt, name);
-                                if (rc)
-                                    LOGERR (klogInt, rc, "error making MD5 calculator");
-
-                                else
-                                {
-                                    /*
-                                     * ill mannered md5file steals
-                                     * references instead of adding one
-                                     */
-                                    rc = KFileAddRef (u.decrypted);
-                                    if (rc)
-                                        LOGERR (klogInt, rc, "error adding reference to decryptor");
-
-                                    else
-                                    {
-
-                                        const KFile * countfile;
-                                        rc = KFileMakeCounterRead (&countfile,
-                                                                   md5file,
-                                                                   &file_size, NULL,
-                                                                   true);
-                                        if (rc)
-                                            LOGERR (klogErr, rc,
-                                                    "error making file size "
-                                                    "counter");
-                                        else
-                                        {
-                                            /*
-                                             * ill mannered countfile steals
-                                             * references instead of adding one
-                                             */
-                                            KFileAddRef (md5file);
-                                            rc = KFileRelease (countfile);
-                                        }
-
-                                        orc = KFileRelease (md5file);
-                                    
-                                        if (rc == 0)
-                                            rc = orc;
-
-                                        if (rc == 0)
-                                        {
-                                            uint8_t md5 [16];
-                                            bool bin;
-
-                                            rc = KMD5SumFmtFind (fmt, name, md5, &bin);
-                                            if (rc)
-                                                LOGERR (klogInt, rc, "error locating MD5");
-
-                                            else
-                                            {
-                                                size_t zz;
-                                                unsigned ix;
-                                                for (ix = 0; ix < 16; ++ix)
-                                                {
-                                                    string_printf (&ascii_md5[2*ix], 2, &zz, "%2.2x",
-                                                               (unsigned)(uint8_t)md5[ix]);
-                                                }
-                                                memcpy (header_ascii_md5,
-                                                        u.decryptor->md5,
-                                                        sizeof header_ascii_md5);
-                                            }
-                                        }
-                                    }
-                                }
-                                KMD5SumFmtRelease (fmt);
-                            }
-                        }
-                        KFileRelease (u.decrypted);
-                    }                
-                }
-            }
-            if (rc == 0)
-            {
-                uint64_t sys_file_size;
-                uint64_t pad_file_size;
-                rc_t orc;
-
-                /* ccheck file size */
-
-                orc = KFileSize (encrypted, &sys_file_size);
-                if (orc == 0)
-                {
-                    pad_file_size = file_size + 15;
-                    pad_file_size &= ~ ( uint64_t ) 15;
-                    pad_file_size += sizeof (KWGAEncFileHeader);
-                }
-                header_file_size = strtou64 (header.file_sz, NULL, KWGA_ENC_FILE_HEADER_RADIX);
-
-                if (key_size == 0)
-                {
-                    header_file_size += 15;
-                    header_file_size &= ~ ( uint64_t ) 15;
-                }
-
-                if (file_size < header_file_size)
-                    rc = RC (rcKrypto, rcFile, rcValidating, rcSize, rcInsufficient);
-                
-                else if (file_size > header_file_size)
-                    rc = RC (rcKrypto, rcFile, rcValidating, rcSize, rcExcessive);
-
-                else if ((orc == 0) &&
-                         (sys_file_size > pad_file_size))
-                    rc = RC (rcKrypto, rcFile, rcValidating, rcSize, rcExcessive);
-
-                /* check md5 */
-                else if (!header.md5_here)
-                {
-                    /* rc = RC (rcKrypto, rcFile, rcValidating, rcEncryption, rcNotFound); */
-                }
-                else if (key_size == 0)
-                    rc = RC (rcKrypto, rcFile, rcValidating, rcEncryption, rcNull);
-
-                else
-                {
-                    int cmp;
-
-                    cmp = strcase_cmp (ascii_md5, sizeof ascii_md5, 
-                                       header_ascii_md5, sizeof header_ascii_md5,
-                                       sizeof ascii_md5);
-                    if (cmp)
-                    {
-                        rc = RC (rcKrypto, rcFile, rcValidating, rcChecksum,
-                                 rcInvalid);
-                        LOGERR (klogErr, rc, "Encrypted file MD5 does not match");
-                    }
-                }
-            }
-        }
-        KFileRelease (buffile);
-    }
-    return rc;
-}
-#if 0
-        /* not working as planned */
-        if (rc == 0)
-        {
-            uint32_t this_read;
-
-            /* try to read past size now obtained */
-            do
-            {
-                uint8_t throwaway [8192];
-
-                rc = KFileRead (encrypted, z + sizeof (KWGAEncFileHeader), throwaway, sizeof throwaway,
-                                &this_read);
-                if (rc)
-                {
-                    LOGERR (klogErr, rc, "Error reading file");
-                    break;
-                }
-                z += this_read;
-
-            } while (this_read);
-        }
-#endif
-
-/* end of file wgaencrypt.c */
-
diff --git a/libs/ktst/Makefile b/libs/ktst/Makefile
deleted file mode 100644
index d5474c2..0000000
--- a/libs/ktst/Makefile
+++ /dev/null
@@ -1,90 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = libs/ktst
-
-INT_LIBS = \
-    libktst
-
-EXT_LIBS = \
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-include $(TOP)/build/Makefile.env
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: makedirs
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(INT_LIBS): makedirs
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_LIBS): makedirs
-	@ $(MAKE_CMD) $(LIBDIR)/$@
-
-.PHONY: all std $(ALL_LIBS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
-	$(addprefix $(LIBDIR)/,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# testing framework
-#
-$(ILIBDIR)/libktst: $(addprefix $(ILIBDIR)/libktst.,$(LIBX))
-
-TST_SRC = \
-	runprocesstestcase \
-	testenv \
-	testcase \
-	testrunner
-
-TST_OBJ = \
-	$(addsuffix .$(LOBX),$(TST_SRC))
-
-TST_LIB = \
-
-$(ILIBDIR)/libktst.$(LIBX): $(TST_OBJ)
-	$(LP) --slib -o $@ $^ $(TST_LIB)
-
diff --git a/libs/ktst/testcase.cpp b/libs/ktst/testcase.cpp
deleted file mode 100644
index 5c0a948..0000000
--- a/libs/ktst/testcase.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <ktst/unit_test.hpp>
-
-#include <klib/printf.h> 
-
-using namespace ncbi::NK;
-
-TestCase::TestCase(const std::string& name) 
-: _name(name), _ec(0) 
-{
-}
-
-void TestCase::report_error(const char* msg, const char* file, int line, bool is_msg, bool isCritical)
-{
-    ncbi::NK::saveLocation(file, line);
-    ++_ec;
-    LOG(LogLevel::e_error, file << "(" << line << "): ");
-    if (isCritical) 
-    {
-        LOG(LogLevel::e_error, "fatal ");
-    }
-    LOG(LogLevel::e_error, "error in \"" << _name << "\": ");
-    if (is_msg) 
-    {
-        LOG(LogLevel::e_error, msg);
-    }
-    else 
-    {
-        if (isCritical) 
-        {
-            LOG(LogLevel::e_error, "critical ");
-        }
-        LOG(LogLevel::e_error, "check " << msg << " failed");
-    }
-    LOG(LogLevel::e_error, std::endl);
-    if (isCritical)
-    { 
-        throw ncbi::NK::execution_aborted(); 
-    }
-}
-
-void TestCase::report_passed(const char* msg, const char* file, int line) 
-{
-    ncbi::NK::saveLocation(file, line);
-    LOG(LogLevel::e_all, file << "(" << line << "): info: " "check " << msg << " passed" << std::endl);
-}
-
-void TestCase::_REPORT_CRITICAL_ERROR_(const std::string& msg, const char* file, int line, bool is_msg)
-{ 
-    report_error( msg.c_str(), file, line, is_msg, true ); 
-}
-
-void TestCase::report_rc(rc_t rc, const char* callStr, const char* file, int line, int successExpected, bool isCritical)
-{
-    if ((successExpected && rc != 0) || (!successExpected && rc == 0))
-    {
-        const int BufSize=1024;
-        char buf[BufSize];
-        size_t num_writ=0;
-        if (0 == string_printf (buf, BufSize, &num_writ, "Unexpected return code from %s: %R\n", callStr, rc))
-        {
-            report_error(buf, file, line, true, isCritical);
-        }
-        else
-        {
-            report_error("***error message too large to print***", file, line, true, isCritical);
-        }
-    }
-}
-
diff --git a/libs/ktst/testenv.cpp b/libs/ktst/testenv.cpp
deleted file mode 100644
index 1ded063..0000000
--- a/libs/ktst/testenv.cpp
+++ /dev/null
@@ -1,503 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <ktst/unit_test.hpp>
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-
-#include <kapp/main.h> // KAppVersion
-#include <kapp/args.h> // ArgsWhack
-#include <klib/out.h> // KOutMsg
-
-#endif
-
-#include <klib/rc.h>
-#include <sstream> 
-#include <csignal>
-#include <cstdlib>
-#include <cstring>
-
-using namespace ::ncbi::NK;
-using std::string;
-
-//const int TestEnv::TEST_CASE_TIMED_OUT=14; //SIGALRM
-//const int TestEnv::TEST_CASE_FAILED=255;
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-struct Args* TestEnv::args = 0;
-#endif
-
-TestEnv::TestEnv(int argc, char* argv[], ArgsHandler* argsHandler) 
-    : catch_system_errors(true)
-    , argc2(0)
-    , argv2(NULL)
-{
-    process_args(argc, argv, argsHandler);
-}
-
-TestEnv::~TestEnv ()
-{
-    if (argv2 != NULL) {
-        for (int i = 0; i < argc2; ++i) {
-            free(argv2[i]);
-            argv2[i] = NULL;
-        }
-        free(argv2);
-    }
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-    ArgsWhack(args);
-    args = NULL;
-#endif
-}
-
-string TestEnv::lastLocation;
-LogLevel::E TestEnv::verbosity = LogLevel::e_error;
-
-void CC TestEnv::TermHandler() 
-{
-    SigHandler(SIGTERM);
-}
-
-void CC TestEnv::SigHandler(int sig) 
-{
-    switch (sig)
-    {
-        case SIGABRT:
-            LOG(ncbi::NK::LogLevel::e_fatal_error,
-                "fatal error: signal: SIGABRT(Abort call)\n");
-            break;
-        case SIGFPE:
-            LOG(ncbi::NK::LogLevel::e_fatal_error,
-                "fatal error: signal: SIGFPE(Floating point exception)\n");
-            break;
-        case SIGILL:
-            LOG(ncbi::NK::LogLevel::e_fatal_error,
-                "fatal error: signal: SIGILL(Illegal instruction)\n");
-            break;
-        case SIGSEGV:
-            LOG(ncbi::NK::LogLevel::e_fatal_error,
-                "fatal error: signal: SIGSEGV(Segmentation fault)\n");
-            break;
-        default:
-            LOG(ncbi::NK::LogLevel::e_fatal_error,
-                "fatal error: signal: " << sig << "\n");
-            break;
-    }
-    if (!ncbi::NK::TestEnv::lastLocation.empty())
-    {
-        LOG(ncbi::NK::LogLevel::e_fatal_error,
-            ncbi::NK::TestEnv::lastLocation << ": last checkpoint\n");
-    }
-    LOG(ncbi::NK::LogLevel::e_fatal_error, "Test is aborted\n");
-    exit(sig);
-}
-
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-
-#define OPTION_DBG "verbose_cmd_line"
-#define ALIAS_DBG "a"
-static const char * dbg_usage[] = { "print command line argument processing information", NULL };
-
-#define OPTION_CSE "catch_system_errors"
-#define ALIAS_CSE "c"
-static const char * cse_usage[] = { "[yes|y|no|n] catch system errors, default is yes", NULL };
-
-#define OPTION_LOG "test_log_level"
-#define ALIAS_LOG "t"
-static const char * log_usage[] = { "test log level, one of:",
-    "'all':       report all log messages",
-    "             including the passed test notification;",
-    "'test_suite': show test suite messages;",
-    "'message':   show user messages",
-    "'warning':   report warnings issued by user;",
-    "'error':     report all error conditions (default);",
-    "'fatal_error': report user or system originated fatal errors",
-    "             (for example, memory access violation);",
-    "'nothing':   do not report any information", NULL };
-
-OptDef Options[] = {
-      { OPTION_DBG, ALIAS_DBG, NULL, dbg_usage, 1, false, false }
-    , { OPTION_CSE, ALIAS_CSE, NULL, cse_usage, 1, true , false }
-    , { OPTION_LOG, ALIAS_LOG, NULL, log_usage, 1, true , false }
-};
-
-#endif
-
-rc_t TestEnv::process_args(int argc, char* argv[], ArgsHandler* argsHandler) 
-{
-    int arg2 = 9;
-    argv2 = static_cast<char**>(calloc(arg2, sizeof *argv2));
-    if (argv2 == NULL)
-    {   return RC (rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted); }
-    argv2[argc2] = strdup(argv[argc2]);
-    if (argv2[argc2] == NULL)
-    {   return RC (rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted); }
-    ++argc2;
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-
-    rc_t rc = ArgsMakeAndHandle(&args, argc, argv, 1,
-        Options, sizeof Options / sizeof (OptDef));
-    if (rc)
-    {   return rc; }
-
-    bool debug = false;
-    LogLevel::E detected = LogLevel::e_undefined;
-    do {
-        uint32_t pcount = 0;
-
-        rc = ArgsOptionCount(args, OPTION_DBG, &pcount);
-        if (rc)
-        {   return rc; }
-        if (pcount) {
-            debug = true;
-            LOG(LogLevel::e_nothing, "debug: debug was set to true\n");
-        }
-
-        rc = ArgsOptionCount(args, OPTION_CSE, &pcount);
-        if (rc)
-        {   return rc; }
-        if (pcount) {
-            const char* pc = NULL;
-            rc = ArgsOptionValue(args, OPTION_CSE, 0, &pc);
-            if (rc)
-            {   return rc; }
-            if (!strcmp(pc, "n") || !strcmp(pc, "no")) {
-                catch_system_errors = false;
-                if (debug) {
-                    LOG(LogLevel::e_nothing,
-                       "debug: arg_catch_system_errors was set to false\n");
-                }
-            }
-            else {
-                if (debug) {
-                    LOG(LogLevel::e_nothing,
-                       "debug: arg_catch_system_errors was set to true\n");
-                }
-            }
-        }
-
-        rc = ArgsOptionCount(args, OPTION_LOG, &pcount);
-        if (rc)
-        {   return rc; }
-        if (pcount) {
-            const char* a = NULL;
-            rc = ArgsOptionValue(args, OPTION_LOG, 0, &a);
-            if (rc)
-            {   return rc; }
-            if (!strcmp(a, "test_suite"))
-            { detected = LogLevel::e_test_suite; }
-            else if (strcmp(a, "all"    ) == 0)
-            { detected = LogLevel::e_all; }
-            else if (strcmp(a, "message") == 0)
-            { detected = LogLevel::e_message; }
-            else if (strcmp(a, "warning") == 0)
-            { detected = LogLevel::e_warning; }
-            else if (strcmp(a, "error"  ) == 0)
-            { detected = LogLevel::e_error; }
-            else if (strcmp(a, "nothing") == 0)
-            { detected = LogLevel::e_nothing; }
-            else if (strcmp(a, "fatal_error") == 0)
-            { detected = LogLevel::e_fatal_error; }
-            if (detected != LogLevel::e_undefined) {
-                verbosity = detected;
-                if (debug) {
-                    LOG(LogLevel::e_nothing,
-                        "debug: log_level was set to " << a << std::endl);
-                }
-            }
-            else {
-                verbosity = LogLevel::e_error;
-                if (debug) {
-                    LOG(LogLevel::e_nothing,
-                        "debug: log_level was set to error\n");
-                }
-            }
-        }
-    } while (0);
-
-    if (verbosity == LogLevel::e_undefined) {
-        verbosity = LogLevel::e_error;
-        if (debug) {
-            LOG(LogLevel::e_nothing,
-                "debug: log_level was set to error\n");
-        }
-    }
-#else
-
-    rc_t rc = 0;
-
-    bool debug = false;
-    LogLevel::E detected = LogLevel::e_undefined;
-    char arg_catch_system_errors[] = "-catch_system_errors=";
-    char arg_log_level          [] = "-l=";
-    char arg_app_args           [] = "-app_args=";
-    for (int i = 1; i < argc; ++i)
-    {
-        if (strncmp(argv[i], arg_log_level, strlen(arg_log_level))
-            == 0)
-        {
-            char* a = argv[i] + strlen(arg_log_level);
-            if (strcmp(a, "test_suite") == 0)
-                detected = LogLevel::e_test_suite;
-            else if (strcmp(a, "all"    ) == 0)
-                detected = LogLevel::e_all;
-            else if (strcmp(a, "message") == 0)
-                detected = LogLevel::e_message;
-            else if (strcmp(a, "warning") == 0)
-                detected = LogLevel::e_warning;
-            else if (strcmp(a, "error"  ) == 0)
-                detected = LogLevel::e_error;
-            else if (strcmp(a, "nothing") == 0)
-                detected = LogLevel::e_nothing;
-            else if (strcmp(a, "fatal_error") == 0)
-                detected = LogLevel::e_fatal_error;
-            if (detected != LogLevel::e_undefined)
-            {
-                verbosity = detected;
-                if (debug)
-                {
-                    LOG(LogLevel::e_nothing,
-                        "debug: log_level was set to " << a << std::endl);
-                }
-            }
-            else
-            {
-                verbosity = LogLevel::e_error;
-                if (debug)
-                {
-                    LOG(LogLevel::e_nothing,
-                        "debug: log_level was set to error\n");
-                }
-            }
-        }
-        else if (strncmp(argv[i], arg_catch_system_errors,
-            strlen(arg_catch_system_errors)) == 0)
-        {
-            char* a = argv[i] + strlen(arg_catch_system_errors);
-            if (strcmp(a, "n") == 0 || strcmp(a, "no") == 0)
-            {
-                catch_system_errors = false;
-                if (debug)
-                {
-                    LOG(LogLevel::e_nothing,
-                       "debug: arg_catch_system_errors was set to false\n");
-                }
-            }
-            else
-            {
-                if (debug)
-                {
-                    LOG(LogLevel::e_nothing,
-                       "debug: arg_catch_system_errors was set to true\n");
-                }
-            }
-        }
-        else if (strcmp(argv[i], "-debug") == 0)
-        {
-            debug = true;
-            LOG(LogLevel::e_nothing, "debug: debug was set to true\n");
-        }
-        else if (strcmp(argv[i], "-h") == 0)
-        {
-            if (debug)
-            {
-                LOG(LogLevel::e_nothing, "debug: help was set to true\n");
-            }
-            std::cout << "Usage:\n"
-                      << argv[0]
-                      << " [-debug] [-catch_system_errors=[yes|y|no|n]]\n"
-                         "      [-app_args='<value>'] [-l=<value>] [-h]\n"
-                "where:\n"
-                "debug              - Print recognized command line arguments\n"
-                "                     (should be specified first)\n"
-                "catch_system_errors -  Allows to switch between catching\n"
-                "                     and ignoring system errors (signals)\n"
-                "app_args           - Allows to pass command line arguments\n"
-                "                     to application handler\n"
-                "    (see unit_test.hpp/FIXTURE_TEST_SUITE_WITH_ARGS_HANDLER)\n"
-                "\n"
-                "l (log_level)       - Specifies log level\n"
-                "\tall        - report all log messages\n"
-                "\t             including the passed test notification\n"
-                "\ttest_suite - show test suite messages\n"
-                "\tmessage    - show user messages\n"
-                "\twarning    - report warnings issued by user\n"
-                "\terror      - report all error conditions (default)\n"
-                "\tfatal_error- report user or system originated fatal errors\n"
-                "\t             (for example, memory access violation)\n"
-                "\tnothing    - do not report any information\n"
-                "\n"
-                "h (help)            - this help message\n";
-            exit(0);
-        }
-        else if (strncmp(argv[i], arg_app_args, strlen(arg_app_args)) == 0)
-        {
-            char* a = argv[i] + strlen(arg_app_args);
-            if (debug)
-            {
-                LOG(LogLevel::e_nothing,
-                    string("debug: arg_app_args was detected: ") + a + "\n");
-            }
-            char* pch = strtok(a ," ");
-            while (pch != NULL) {
-                if (argc2 >= arg2) {
-                    arg2 *= 2;
-                    char** tmp = static_cast<char**>(
-                        realloc(argv2, arg2 * sizeof *argv2));
-                    if (tmp == NULL) {
-                        return RC(
-                            rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted);
-                    }
-                    argv2 = tmp;
-                }
-                argv2[argc2] = strdup(pch);
-                if (argv2[argc2] == NULL) {
-                    return RC(
-                        rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted);
-                }
-                ++argc2;
-                pch = strtok(NULL, " ");
-            }
-        }
-    }
-
-    if (verbosity == LogLevel::e_undefined)
-    {
-        verbosity = LogLevel::e_error;
-        if (debug)
-        {
-            LOG(LogLevel::e_nothing,
-                "debug: log_level was set to error\n");
-        }
-    }
-#endif
-
-    if (rc == 0) {
-        if (argsHandler)
-        {	rc = argsHandler(argc2, argv2); }
-    }
-
-    return rc;
-}
-
-void ::ncbi::NK::saveLocation(const char* file, int line) 
-{
-    std::ostringstream s;
-    s << file << "(" << line << ")";
-    TestEnv::lastLocation = s.str();
-}
-
-void ::ncbi::NK::_REPORT_CRITICAL_ERROR_(const string& msg, const char* file, int line, bool is_msg)
-{
-    LOG(ncbi::NK::LogLevel::e_error, file << "(" << line << "): ");
-    LOG(ncbi::NK::LogLevel::e_error, "fatal ");
-    LOG(ncbi::NK::LogLevel::e_error, "error in fixture: ");
-    if (is_msg) {
-        LOG(ncbi::NK::LogLevel::e_error, msg);
-    }
-    else {
-        LOG(ncbi::NK::LogLevel::e_error, "critical ");
-        LOG(ncbi::NK::LogLevel::e_error, "check " << msg << " failed");
-    }
-    LOG(ncbi::NK::LogLevel::e_error, std::endl);
-    throw ncbi::NK::execution_aborted();
- }
-
-ncbi::NK::TestRunner* 
-ncbi::NK::GetTestSuite(void)
-{ 
-    static ncbi::NK::TestRunner t; 
-    return &t; 
-}
-
-rc_t CC TestEnv::UsageSummary(const char* progname) {
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-    return KOutMsg(
-        "Usage:\n"
-        "  %s [--verbose_cmd_line] [--catch_system_errors [yes|y|no|n]] "
-        "[-t <value>] [-h] [...]\n", progname);
-#else
-    std::cout
-        << "Usage:\n"
-        << progname
-        << " [-debug] [-catch_system_errors=[yes|y|no|n]] "
-        "[-l=<value>] [-h] [...]\n";
-    return 0;
-#endif
-}
-
-#if ALLOW_TESTING_CODE_TO_RELY_UPON_CODE_BEING_TESTED
-rc_t CC TestEnv::Usage(const Args* args)
-{
-    const char* progname = UsageDefaultName;
-    const char* fullpath = UsageDefaultName;
-
-    rc_t rc = (args == NULL) ?
-        RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull):
-        ArgsProgram(args, &fullpath, &progname);
-
-    if (rc != 0)
-        progname = fullpath = UsageDefaultName;
-
-    UsageSummary(progname);
-
-    KOutMsg("\nOptions:\n");
-    
-    HelpOptionLine(ALIAS_DBG, OPTION_DBG, NULL, dbg_usage);
-    HelpOptionLine(ALIAS_CSE, OPTION_CSE, NULL, cse_usage);
-    HelpOptionLine(ALIAS_LOG, OPTION_LOG, NULL, log_usage);
-    KOutMsg("\n");
-    HelpOptionsStandard();
-    HelpVersion(fullpath, KAppVersion());
-    
-    return rc;
-}
-#else
-rc_t CC TestEnv::Usage(const char *progname)
-{
-    UsageSummary ( progname );
-    std::cout <<
-        "where:\n"
-        "debug - Print recognized command line arguments (should be specified first)\n"
-        "catch_system_errors - "
-        "Allows to switch between catching and ignoring system errors (signals)\n"
-        "l (log_level) - Specifies log level\n"
-        "\tall        - report all log messages\n"
-        "\t             including the passed test notification\n"
-        "\ttest_suite - show test suite messages\n"
-        "\tmessage    - show user messages\n"
-        "\twarning    - report warnings issued by user\n"
-        "\terror      - report all error conditions (default)\n"
-        "\tfatal_error- report user or system originated fatal errors\n"
-        "\t             (for example, memory access violation)\n"
-        "\tnothing    - do not report any information\n"
-        "h (help) - this help message\n";
-    return 0;
-}
-#endif
diff --git a/libs/ktst/testrunner.cpp b/libs/ktst/testrunner.cpp
deleted file mode 100644
index cb31e16..0000000
--- a/libs/ktst/testrunner.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <ktst/unit_test.hpp>
-
-using namespace ncbi::NK;
-
-TestRunner::TestRunner() : argc(0), argv(NULL) {}
-
-void TestRunner::ReportTestNumber(void) 
-{
-    T::size_type sz = _cases.size();
-    if (sz == 1) {
-       LOG(LogLevel::e_fatal_error, "Running " << sz << " test case...\n");
-    } else if (sz > 1) {
-       LOG(LogLevel::e_fatal_error, "Running " << sz << " test cases...\n");
-    }
-}
-
-void TestRunner::SetArgs(int argc, char* argv[]) 
-{
-    this->argc = argc;
-    this->argv = argv;
-}
-
-void TestRunner::Add(ncbi::NK::TestInvoker* t) 
-{
-    if (t) 
-    {
-        _cases.push_back(t);
-    }
-}
-
-counter_t TestRunner::Run(void* globalFixture) const 
-{
-    counter_t ec = 0;
-    for (TCI it = _cases.begin(); it != _cases.end(); ++it) 
-    {
-       ncbi::NK::TestInvoker* c = *it;
-       try {
-           LOG(LogLevel::e_test_suite,
-               "Entering test case \"" << c->GetName() << "\"\n");
-           c->Run(globalFixture);
-           LOG(LogLevel::e_test_suite,
-               "Leaving test case \"" << c->GetName() << "\"\n");
-       } catch (const ncbi::NK::execution_aborted&) {
-           LOG(LogLevel::e_test_suite,
-               "Leaving test case \"" << c->GetName() << "\"\n");
-       }
-       ec += c->GetErrorCounter();
-    }
-    return ec;
-}
-
diff --git a/libs/ktst/unix/runprocesstestcase.cpp b/libs/ktst/unix/runprocesstestcase.cpp
deleted file mode 100644
index b30eafc..0000000
--- a/libs/ktst/unix/runprocesstestcase.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <ktst/unit_test_suite.hpp>
-
-#include <signal.h> // sigaction, not necessarily in csignal :-/
-#include <cstdlib>
-#include <cstring>
-#include <sys/wait.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-using namespace ncbi::NK;
-
-#define REPORT_ERROR(msg) _REPORT_CRITICAL_ERROR_("TestEnv::" msg, __FILE__, __LINE__, true);
-
-static void alarmHandler(int)
-{
-    exit(TestEnv::TEST_CASE_TIMED_OUT);
-}
-
-int TestEnv::RunProcessTestCase(TestCase& obj, void(TestCase::*meth)(), int timeout)
-{
-    int pid=fork();
-    if (pid == -1)
-    {
-        REPORT_ERROR("RunProcessTestCase: fork() failed");
-    }
-    if (pid == 0)
-    {   /* child process */
-        if (timeout != 0)
-        {
-            struct sigaction act;
-            memset(&act, 0, sizeof act);
-            act.sa_handler = alarmHandler;
-            act.sa_flags = SA_RESETHAND;
-            sigaction(SIGALRM , &act, NULL);        
-            alarm(timeout);
-        }
-        try 
-        {
-            (obj.*meth)();
-        }   
-        catch(...)
-        {
-            exit(TEST_CASE_FAILED);
-        }
-        exit(0);
-    }
-    /* parent process */
-    int status;
-    if (waitpid(pid, &status, 0) != pid) /* suspend until the child terminates */
-    {   
-        REPORT_ERROR("RunProcessTestCase: wait() failed");
-    }
-    if (!WIFEXITED(status)) 
-    {   
-        REPORT_ERROR("RunProcessTestCase: child exited abnormally");
-    }
-    return WEXITSTATUS(status); /* exit status of the child process */
-}
-
-unsigned int TestEnv::Sleep(unsigned int seconds)
-{
-    return sleep(seconds);
-}
-
-void TestEnv::set_handlers(void)
-{
-    struct sigaction act;
-    memset(&act, 0, sizeof act);
-    act.sa_handler = SigHandler;
-    act.sa_flags = SA_RESETHAND;
-    if (sigaction(SIGFPE , &act, NULL) != 0)    REPORT_ERROR("set_handlers: sigaction() failed");
-    if (sigaction(SIGILL , &act, NULL) != 0)    REPORT_ERROR("set_handlers: sigaction() failed");
-    if (sigaction(SIGSEGV , &act, NULL) != 0)   REPORT_ERROR("set_handlers: sigaction() failed");
-}
diff --git a/libs/ktst/win/runprocesstestcase.cpp b/libs/ktst/win/runprocesstestcase.cpp
deleted file mode 100644
index 85a094a..0000000
--- a/libs/ktst/win/runprocesstestcase.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <ktst/unit_test_suite.hpp>
-
-#include <csignal> 
-#include <windows.h>
-#include <process.h>
-
-using namespace ncbi::NK;
-
-/* signal handlers for a single-test case thread */
-void CC SigSubHandler(int sig)
-{
-    _endthreadex(sig);
-}
-void CC TermSubHandler() 
-{
-    SigSubHandler(SIGTERM);
-}
-
-struct TestCaseCall
-{
-    TestCaseCall(TestCase& obj, void(TestCase::*meth)())
-        : object(&obj), method(meth)
-    {
-    }
-
-    TestCase* object;
-    void(TestCase::*method)();
-};
-
-void ThreadProc(void* call)
-{
-    signal(SIGABRT, SigSubHandler);
-    signal(SIGFPE, SigSubHandler);
-    signal(SIGILL, SigSubHandler);
-    signal(SIGINT, SigSubHandler);
-    signal(SIGSEGV, SigSubHandler);
-    signal(SIGTERM, SigSubHandler);
-    set_terminate(TermSubHandler);
-
-    try
-    {
-        TestCaseCall* c=(TestCaseCall*)call;
-        ((c->object)->*(c->method))();
-    }
-    catch (...)
-    {
-        _endthreadex(TestEnv::TEST_CASE_FAILED);
-    }
-    _endthreadex(0);
-}
-
-int TestEnv::RunProcessTestCase(TestCase& obj, void(TestCase::*meth)(), int timeout)
-{
-    TestCaseCall call(obj, meth);
-    HANDLE thread = (HANDLE)_beginthread( ThreadProc, 0, &call );
-    if (thread == NULL)
-    {
-        _REPORT_CRITICAL_ERROR_("TestEnv::RunProcessTestCase: failed to start a test case thread", __FILE__, __LINE__, true);
-    }
-
-    // make sure to restore main process's signal handlers before throwing an exception
-#define CALL_FAILED(call)\
-    _REPORT_CRITICAL_ERROR_("TestEnv::RunProcessTestCase: " call " failed", __FILE__, __LINE__, true);
-
-    DWORD rc=0;
-    DWORD result=WaitForSingleObject( (HANDLE)thread, timeout == 0 ? INFINITE : timeout*1000);
-    try
-    {
-        switch (result)
-        {
-        case WAIT_OBJECT_0:
-            if (GetExitCodeThread(thread, &rc) == 0)
-            {
-                CALL_FAILED("GetExitCodeThread");
-            }
-            break;
-        case WAIT_TIMEOUT:
-            if (!CloseHandle(thread))
-            {
-                CALL_FAILED("GetExitCodeThread");
-            }
-            rc=TEST_CASE_TIMED_OUT;
-            break;
-        default:
-            CALL_FAILED("WaitForSingleObject");
-            break;
-        }
-    }
-    catch(...)
-    {
-        set_handlers(); 
-        throw;
-    }
-#undef CALL_FAILED
-    set_handlers(); 
-    return (int)rc;
-}
-
-unsigned int TestEnv::Sleep(unsigned int seconds)
-{
-    ::Sleep(seconds*1000);
-    return 0;
-}
-
-void TestEnv::set_handlers(void) 
-{
-    signal(SIGABRT, SigHandler);
-    signal(SIGFPE, SigHandler);
-    signal(SIGILL, SigHandler);
-    signal(SIGINT, SigHandler);
-    signal(SIGSEGV, SigHandler);
-    signal(SIGTERM, SigHandler);
-    set_terminate(TermHandler);
-}
-
diff --git a/libs/kxml/Makefile b/libs/kxml/Makefile
index ab13a2a..24ba8e2 100644
--- a/libs/kxml/Makefile
+++ b/libs/kxml/Makefile
@@ -116,8 +116,8 @@ XML_OBJ = \
 	$(addsuffix .$(LOBX),$(XML_SRC))
 
 XML_LIB = \
-	-dkfs \
-	-dklib 
+	-dklib \
+	-dkfs
 
 ifdef LIBXML_LPATH
 XML_LIB += \
diff --git a/libs/kxml/libkxfs.vers b/libs/kxml/libkxfs.vers
index 7ee7020..ee90284 100644
--- a/libs/kxml/libkxfs.vers
+++ b/libs/kxml/libkxfs.vers
@@ -1 +1 @@
-1.0.10
+1.0.4
diff --git a/libs/kxml/libkxml.vers b/libs/kxml/libkxml.vers
index 5b09c67..238d6e8 100644
--- a/libs/kxml/libkxml.vers
+++ b/libs/kxml/libkxml.vers
@@ -1 +1 @@
-1.0.14
+1.0.7
diff --git a/libs/kxml/xml.c b/libs/kxml/xml.c
index ce44542..f4f2f3a 100644
--- a/libs/kxml/xml.c
+++ b/libs/kxml/xml.c
@@ -28,14 +28,13 @@ struct s_KNodeNamelist;
 #define KNAMELIST_IMPL struct s_KNodeNamelist
 
 #include <sysalloc.h>
-#include <kxml/xml.h>
+#include <klib/xml.h>
 
 #include <klib/impl.h>
 #include <kfs/file.h>
 #include <klib/log.h>
 #include <klib/rc.h>
 #include <klib/debug.h>
-#include <klib/text.h>
 
 #include <os-native.h> /* for strndup on mac */
 #include <strtol.h>
@@ -181,7 +180,7 @@ static void s_xmlGenericErrorDefaultFunc(void *ctx ATTRIBUTE_UNUSED,
     va_end(args);
 }
 
-static rc_t s_XmlReadFile(const KFile *src, char** aBuffer, uint64_t* aSize)
+static rc_t ReadFile(const KFile *src, char** aBuffer, uint64_t* aSize)
 {
     rc_t rc = 0;
     bool unknownFileSize = false;
@@ -245,7 +244,7 @@ rc_t KXMLMgrMakeDocRead(const KXMLMgr *self,
     if (self && src) {
         char* buffer = NULL;
         uint64_t size = 0;
-        rc = s_XmlReadFile(src, &buffer, &size);
+        rc = ReadFile(src, &buffer, &size);
         if (rc)
         {    return rc; }
         rc = KXMLMgrMakeDocReadFromMemory(self, result, buffer, size);
@@ -349,7 +348,6 @@ static rc_t KXMLNodeset_cTor(const KXMLDoc *parent,
         return RC ( rcXML, rcDoc, rcConstructing, rcData, rcIncorrect );
     }
     {
-        size_t size;
         KXMLNodeset *obj = (KXMLNodeset*) malloc(sizeof(KXMLNodeset));
         if (!obj) {
             return RC ( rcXML, rcDoc, rcConstructing, rcMemory, rcExhausted );
@@ -367,7 +365,7 @@ static rc_t KXMLNodeset_cTor(const KXMLDoc *parent,
             KXMLNodesetRelease(obj);
             return RC(rcXML, rcDoc, rcConstructing, rcData, rcUnsupported );
         }
-        obj->path = string_dup(path, string_measure(path, &size));
+        obj->path = strdup(path);
         if (!obj->path) {
             KXMLNodesetRelease(obj);
             return RC ( rcXML, rcDoc, rcConstructing, rcMemory, rcExhausted );
@@ -511,15 +509,12 @@ static rc_t s_KXMLNode_cTor(const KXMLNodeset *self,
     obj->path = 0;
     obj->children = children;
     if (children) {
+        /*TODO verify strlen(NULL)*/
         size_t size = 0;
-        size_t path_size;
         if (path)
-        {   size += string_measure(path, &path_size) + 1; }
+        {   size += strlen(path) + 1; }
         if (children->name)
-        {   
-            size_t sz;
-            size += string_measure((char*)children->name, &sz); 
-        }
+        {   size += strlen((char*)children->name); }
         obj->path = (char*)malloc(size + 1);
         if (!obj->path) {
             free(obj);
@@ -527,7 +522,7 @@ static rc_t s_KXMLNode_cTor(const KXMLNodeset *self,
         }
         *obj->path = 0;
         if (path && path[0]) {
-            string_copy(obj->path, size + 1, path, path_size);
+            strcpy(obj->path, path);
             strcat(obj->path, "/");
         }
         strcat(obj->path, (char*)children->name);
@@ -633,8 +628,7 @@ rc_t KXMLNodeVOpenNodesetRead ( const KXMLNode *self,
         if (path[0] == '/')
         { newPath = outpath; }
         else {
-            size_t size;
-            if ((string_measure(self->parent->path, &size) + 1 + string_measure(outpath, &size) + 1 + 3)
+            if ((strlen(self->parent->path) + 1 + strlen(outpath) + 1 + 3)
                 > XPATH_MAX_LEN)
             {
                 /* buffer is too small */
@@ -723,8 +717,7 @@ int s_KXMLNode_readTextNode(const xmlNodePtr firstChild,
     while (node) {
         if (node->type == XML_TEXT_NODE) {
             char* content = (char*) node->content;
-            size_t size;
-            size_t chunkSz = string_measure(content, &size);
+            size_t chunkSz = strlen(content);
             switch (state) {
                 case eNotFound: {
                     if (offset < head + chunkSz) {
@@ -740,7 +733,7 @@ int s_KXMLNode_readTextNode(const xmlNodePtr firstChild,
                         }
                         if (size) {
                             assert(buffer);
-                            string_copy((char*) buffer + copied, bsize - copied, 
+                            strncpy((char*) buffer + copied,
                                 content + chunkOffset, size);
                         }
                         copied += size;
@@ -760,7 +753,7 @@ int s_KXMLNode_readTextNode(const xmlNodePtr firstChild,
                     }
                     if (size) {
                         assert(buffer);
-                        string_copy((char*) buffer + copied, bsize - copied,
+                        strncpy((char*) buffer + copied,
                             content + chunkOffset, size);
                     }
                     copied += size;
@@ -1179,10 +1172,9 @@ rc_t KXMLNodeReadCStr( const KXMLNode *self, char** str, const char* default_val
         *str = NULL;
         if( (rc = KXMLNodeReadCString(self, b, to_read, &nread)) == 0 ) {
             if( nread == 0 && default_value != NULL ) {
-                size_t size;
-                *str = string_dup(default_value, string_measure(default_value, &size));
+                *str = strdup(default_value);
             } else {
-                *str = string_dup(b, nread);
+                *str = strndup(b, nread);
             }
             if( *str == NULL ) {
                 rc = RC(rcXML, rcNode, rcReading, rcMemory, rcInsufficient);
@@ -1337,14 +1329,12 @@ rc_t KXMLNodeReadAttrCStr( const KXMLNode *self, const char *attr, char** str, c
         *str = NULL;
         if( (rc = KXMLNodeReadAttrCString(self, attr, b, to_read, &nread)) == 0 ) {
             if( nread == 0 && default_value != NULL ) {
-                size_t size;
-                *str = string_dup(default_value, string_measure(default_value, &size));
+                *str = strdup(default_value);
             } else {
-                *str = string_dup(b, nread);
+                *str = strndup(b, nread);
             }
         } else if( GetRCState(rc) == rcNotFound && default_value != NULL ) {
-            size_t size;
-            *str = string_dup(default_value, string_measure(default_value, &size));
+            *str = strdup(default_value);
             rc = 0;
         }
         if( rc == 0 && *str == NULL ) {
diff --git a/libs/kxml/xtoc-parsexml.c b/libs/kxml/xtoc-parsexml.c
index b2093d2..541ed8a 100644
--- a/libs/kxml/xtoc-parsexml.c
+++ b/libs/kxml/xtoc-parsexml.c
@@ -25,16 +25,11 @@
 
 #include "xtoc-priv.h" /* XTocParseXml */
 
-#include <kxml/xml.h> /* KXMLNode */
+#include <klib/xml.h> /* KXMLNode */
 /* #include <klib/log.h> LOGERR */
 #include <klib/debug.h> /* DBGMSG */
-#include <klib/printf.h>
-#include <klib/out.h>
 #include <klib/rc.h> /* RC */
-
-#include "os-native.h"
-
-#include <sysalloc.h>
+#include <fmtdef.h>
 
 #include <assert.h>
 #include <stdio.h> /* printf */
@@ -181,17 +176,12 @@ rc_t CC StrToKTime(const char* str, KTime_t* t)
 
         if (DEBUG_PRINT) {
             time_t t2 = ( time_t ) * t;
-            size_t len;
+            int len;
             char buffer [ 64 ];
 
             struct tm gmt;
-#if SUN
-	    gmt = * gmtime ( & t2 );
-#else
             gmtime_r ( & t2, & gmt );
-#endif
-            rc = string_printf ( buffer, sizeof buffer, & len
-                , "%04d-%02d-%02dT%02d:%02d:%02dZ"
+            len = sprintf ( buffer, "%04d-%02d-%02dT%02d:%02d:%02dZ"
                 , gmt . tm_year + 1900
                 , gmt . tm_mon + 1
                 , gmt . tm_mday
@@ -200,8 +190,8 @@ rc_t CC StrToKTime(const char* str, KTime_t* t)
                 , gmt . tm_sec
             );
             
-            OUTMSG((">> %s\n", str));
-            OUTMSG(("<< %s\n", buffer));
+            printf(">> %s\n", str);
+            printf("<< %s\n", buffer);
         }
     }
 
@@ -222,7 +212,7 @@ rc_t CC StrToKTime(const char* str, KTime_t* t)
                     "name=%s,attr=%s", data->nodeName, #V)); */
 
 #define PRN_ATTR(NM, V) \
-    if (DEBUG_PRINT && data->V) OUTMSG(("%s=\"%s\" ", NM, data->V))
+    if (DEBUG_PRINT && data->V) printf("%s=\"%s\" ", NM, data->V)
 
 #define GET_ATTR(NODE, V) READ_ATTR(NODE, V); PRN_ATTR(#V, V)
 
@@ -233,7 +223,7 @@ static rc_t CC NodeDataReadAttribs(NodeData* data, const KXMLNode* node,
 
     assert(node && parentName && data);
 
-    if (DEBUG_PRINT) OUTMSG(("<%s ", data->nodeName));
+    if (DEBUG_PRINT) printf("<%s ", data->nodeName);
 
     GET_ATTR(node, id);
     GET_ATTR(node, path);
@@ -271,14 +261,14 @@ static rc_t CC NodeDataReadAttribs(NodeData* data, const KXMLNode* node,
             }*/
         if (DEBUG_PRINT) 
         {
-            OUTMSG(("%s=\"%lu\" ", attr, data->iSize));
-            OUTMSG(("%s=\"%lu\" ", attr, data->iOffset));
+            printf("%s=\"%" LU64 "\" ", attr, data->iSize);
+            printf("%s=\"%" LU64 "\" ", attr, data->iOffset);
         }
     }
 
-    if (DEBUG_PRINT) OUTMSG((">"));
-    if (DEBUG_PRINT && data->nodeValue) OUTMSG(("%s", data->nodeValue));
-    if (DEBUG_PRINT) OUTMSG(("</%s>\n", data->nodeName));
+    if (DEBUG_PRINT) printf(">");
+    if (DEBUG_PRINT && data->nodeValue) printf("%s", data->nodeValue);
+    if (DEBUG_PRINT) printf("</%s>\n", data->nodeName);
 
     return rc;
 }
diff --git a/libs/kxml/xtoc.c b/libs/kxml/xtoc.c
index 5d2dc22..d5a2fd1 100644
--- a/libs/kxml/xtoc.c
+++ b/libs/kxml/xtoc.c
@@ -26,7 +26,7 @@
 
 #include <kfs/extern.h>
 
-#include <kxml/xml.h>
+#include <klib/xml.h>
 
 #include <klib/defs.h>
 #include <klib/container.h>
@@ -35,7 +35,6 @@
 #include <klib/refcount.h>
 #include <klib/vector.h>
 #include <klib/log.h>
-#include <klib/out.h>
 #include <klib/namelist.h>
 
 #include <kfs/file.h>
@@ -43,11 +42,6 @@
 #include <kfs/gzip.h>
 #include <kfs/directory.h>
 
-#include <vfs/manager.h>
-#include <vfs/path.h>
-
-#include <sysalloc.h>
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -121,7 +115,7 @@ struct XTocEntry
     XTocEntry_t type;           /* XTocEntry_e */
     union utype
     {
-        struct /* idtype - name conflict on Solaris */
+        struct idtype
         {
             XTocEntry * target;
         } id;
@@ -240,7 +234,6 @@ rc_t XTocEntryResolvePath (const XTocEntry * self, const char * path_, bool foll
     const char * path;
     const char * limit;
     XTocEntry * node;
-    size_t size;
 
     assert (self);
     assert (path_);
@@ -257,7 +250,7 @@ rc_t XTocEntryResolvePath (const XTocEntry * self, const char * path_, bool foll
     /* this was causing a seg fault for some reason */
     limit = path + string_size (path);
 #else
-    limit = path + string_measure(path, &size);
+    limit = path + strlen (path);
 #endif
 
     do
@@ -881,7 +874,7 @@ rc_t XTocMake (XToc ** pself, const String * base_path)
     KRefcountInit (&self->refcount, 1, XTocClassname, "Init", base_path->addr);
 
     rc = XTocEntryMakeInt (&self->root, "/", NULL, NULL,
-                           (KTime_t)time(NULL), 0);
+                           (KTime_t)time, 0);
     if (rc)
     {
         free (self);
@@ -1127,7 +1120,7 @@ static
         rc = RC (rcFS, rcFile, rcConstructing, rcMemory, rcExhausted);
     else
     {
-        rc = KFileInit (&self->dad, (const KFile_vt*)&vtKXTocFile, "KXTocFile", "no-name", true, false);
+        rc = KFileInit (&self->dad, (const KFile_vt*)&vtKXTocFile, true, false);
         if (rc == 0)
         {
             rc = KFileAddRef (base);
@@ -1170,6 +1163,14 @@ static
 }
 
 
+
+
+
+
+
+
+
+
 struct KXTocDir
 {
     KDirectory dad;
@@ -1179,7 +1180,7 @@ struct KXTocDir
     XTocEntry * entry;
     XTocEntry * container;
     XTocEntry * root;
-    String      base_path;
+    String base_path;
 };
 
 #if _DEBUGGING
@@ -1892,7 +1893,6 @@ rc_t KXTocDirRelativePath (const KXTocDir *self, enum RCContext ctx,
 #else
     int backup;
     size_t bsize, psize;
-    size_t size;
 
     const char *r = root + self -> root;
     const char *p = path + self -> root;
@@ -1923,7 +1923,7 @@ rc_t KXTocDirRelativePath (const KXTocDir *self, enum RCContext ctx,
     while (p [ -1 ] != '/') -- p;
 
     /* the size of the remaining relative path */
-    psize = string_measure(p, &size);
+    psize = strlen (p);
 
     /* open up space if needed */
     if ( (size_t)(p - path) < bsize )
@@ -1941,8 +1941,7 @@ rc_t KXTocDirRelativePath (const KXTocDir *self, enum RCContext ctx,
     /* close gap */
     if ( (size_t)( p - path ) > bsize )
 	{
-        size_t size;
-		string_copy (& path [ bsize ], path_max - bsize, p, measure_string(p, &size));
+		strcpy (& path [ bsize ], p);
 	}
 
 	return 0;
@@ -2035,14 +2034,13 @@ rc_t CC KXTocDirVisit (const KXTocDir *self,
 
             if (rc == 0)
             {
-                size_t size;
 		KXTocDir * full_dir;
 		uint32_t path_size;
 
 		/* -----
 		 * make a locally accessible private KDirectory/KXTocDir
 		 */
-		for ( path_size = (uint32_t)string_measure( full_path, &size );
+		for ( path_size = (uint32_t)strlen ( full_path );
 		      ( path_size > self->root ) && ( full_path[ path_size - 1 ] == '/' );
 		      -- path_size )
 		{}
@@ -2125,15 +2123,12 @@ static rc_t CC KXTocDirResolvePath (const KXTocDir *self,
     rc_t rc;
     const char * path;
 
-    KOutMsg ("+++++\n%s: absolute %d\n", __func__, absolute);
-
     assert (self);
     assert (resolved);
     assert (path_);
 
     *resolved = '\0';
     rc = XTocMakePath (&path, false, path_, args);
-    KOutMsg ("%s: rc %R new '%s' old '%s'\n", __func__, rc, path, path_);
     if (rc != 0)
     {
         PLOGERR (klogErr,
@@ -2141,41 +2136,24 @@ static rc_t CC KXTocDirResolvePath (const KXTocDir *self,
     }
     else
     {
-        size_t path_sz = string_size(path);
-
         if (absolute)
         {
             XTocEntry * entry;
 
             rc = XTocEntryResolvePath (self->entry, path, false, &entry);
-
             if (rc)
                 PLOGERR (klogErr,
-                         (klogErr, rc, "Error resolving path based on $(P)", "P=%s", path_));
+                         (klogErr, rc, "Error resolvong path based on $(P)", "P=%s", path_));
             else
             {
                 free ((void*)path);
                 path = NULL;
                 rc = XTocEntryMakeFullPath (entry, &path);
-                if (rc == 0)
-                {
-                    size_t k = self->toc->base_path.size;
-                    if (k > 1)
-                    {
-                        memcpy (resolved, self->toc->base_path.addr, k);
-                        resolved += k;
-                        rsize -= k;
-                    }
-                }
             }
         }
         if (rc == 0)
-        {
-            if (rsize < (path_sz - 1))
-                rc = RC(rcFS, rcDirectory, rcResolving, rcBuffer, rcInsufficient);
-            else
-                string_copy(resolved, rsize, path, rsize);
-        }
+            string_copy (resolved, rsize, path, string_size (path));
+
         if (path)
             free ((void*)path);
     }
@@ -2202,11 +2180,11 @@ static rc_t CC KXTocDirResolveAlias (const KXTocDir * self,
 				 const char *path_,
 				 va_list args)
 {
-#if 0
+#if 1
     return -1;
 #else
     rc_t rc;
-    const char * path;
+    char * path;
 
     assert (self);
     assert (resolved);
@@ -2223,13 +2201,13 @@ static rc_t CC KXTocDirResolveAlias (const KXTocDir * self,
     {
         XTocEntry * entry;
 
-        rc = XTocEntryResolvePath (self->entry, path, true , &entry);
+        rc = XocEntryResolvePath (self->entry, path, true , &entry);
         if (rc)
             PLOGERR (klogErr,
-                     (klogErr, rc, "Error resolving path based on $(P)", "P=%s", path_));
+                     (klogErr, rc, "Error resolvong path based on $(P)", "P=%s", path_));
         else
         {
-            free ((void*)path);
+            free (path);
             path = NULL;
             rc = XTocEntryMakeFullPath (entry, &path);
         }
@@ -2242,7 +2220,7 @@ static rc_t CC KXTocDirResolveAlias (const KXTocDir * self,
         string_copy (resolved, rsize, path, string_size (path));
     
     if (path)
-        free ((void*)path);
+        free (path);
 
     return rc;
 #endif
@@ -2424,7 +2402,7 @@ static	rc_t CC KXTocDirVDate		(const KXTocDir *self,
         rc = XTocEntryResolvePath (self->entry, path, false, &entry);
         if (rc)
             PLOGERR (klogErr,
-                     (klogErr, rc, "Error resolving path from $(P)", "P=%s", path_));
+                     (klogErr, rc, "Error resolveing path from $(P)", "P=%s", path_));
         else
             *date = entry->mtime;
         free ((void*)path);
@@ -2761,7 +2739,7 @@ rc_t CC KXTocDirFileLocator		(const KXTocDir *self,
         rc = XTocEntryResolvePath (self->entry, path, false, &entry);
         if (rc)
             PLOGERR (klogErr,
-                     (klogErr, rc, "Error resolving path from $(P)", "P=%s", path_));
+                     (klogErr, rc, "Error resolveing path from $(P)", "P=%s", path_));
         else if (entry->type != xtoce_file)
             rc = RC (rcFS, rcDirectory, rcAccessing, rcPath, rcIncorrect);
         else
@@ -2807,7 +2785,7 @@ rc_t CC KXTocDirFileSize		(const KXTocDir *self,
         rc = XTocEntryResolvePath (self->entry, path, false, &entry);
         if (rc)
             PLOGERR (klogErr,
-                     (klogErr, rc, "Error resolving path from $(P)", "P=%s", path_));
+                     (klogErr, rc, "Error resolveing path from $(P)", "P=%s", path_));
         else if (entry->type != xtoce_file)
             rc = RC (rcFS, rcDirectory, rcAccessing, rcPath, rcIncorrect);
         else
@@ -2853,7 +2831,7 @@ rc_t CC KXTocDirFilePhysicalSize        (const KXTocDir *self,
         rc = XTocEntryResolvePath (self->entry, path, false, &entry);
         if (rc)
             PLOGERR (klogErr,
-                     (klogErr, rc, "Error resolving path from $(P)", "P=%s", path_));
+                     (klogErr, rc, "Error resolveing path from $(P)", "P=%s", path_));
         else if (entry->type != xtoce_file)
             rc = RC (rcFS, rcDirectory, rcAccessing, rcPath, rcIncorrect);
         else
@@ -2908,7 +2886,6 @@ rc_t CC KXTocDirOpenDirRead	(const KXTocDir *self,
 #else
     char * full;
     rc_t rc;
-    size_t size;
 
     assert (self != NULL);
     assert (subp != NULL);
@@ -2919,7 +2896,7 @@ rc_t CC KXTocDirOpenDirRead	(const KXTocDir *self,
     {
 	const KTocEntry *	pnode;
 	KTocEntryType		type;
-	size_t path_size = string_measure (full, &size);
+	size_t path_size = strlen (full);
 
 	/* -----
 	 * get rid of any extra '/' characters at the end of path
@@ -3186,70 +3163,9 @@ rc_t KXTocDirMake (const KXTocDir ** pself, const KDirectory * base,
 }
 
 
-static 
-rc_t KDirectoryOpenXTocDirReadInt (const KDirectory * dir,
-                                   const KDirectory ** pnew_dir,
-                                   const KFile * xml,
-                                   const String * spath)
-{
-    XToc * xtoc;
-    rc_t rc;
-
-    rc = XTocMake (&xtoc, spath);
-    if (rc)
-        LOGERR (klogErr, rc, "Error creating toc for xtc directory");
-    else
-    {
-        String sroot;
-        XTocCache * cache;
-
-        StringInitCString (&sroot, ".");
-        rc = XTocMakeXTocCache (xtoc, &cache, &sroot, xtoc->root);
-        if (rc)
-            LOGERR (klogErr, rc, 
-                    "Failed to make cache for root for "
-                    "xtoc directory");
-        else
-        {
-            const KXTocDir * xdir;
-
-            /* now that we have a cache node we should release
-             * the original reference to the xtoc */
-/* ??? */
-            XTocRelease (xtoc);
-
-            xtoc->cache = xtoc->root->cache = cache;
-
-            rc = KXTocDirMake (&xdir, dir, xtoc, cache, xtoc->root,
-                               &sroot);
-            if (rc)
-                LOGERR (klogErr, rc, "Error making xtoc directory");
-            else
-            {
-                DBG_KXTocDir((xdir));
-                cache->dir = xdir;
-
-                rc = XTocParseXml (xtoc->root, xml);
-                if (rc)
-                    LOGERR (klogErr, rc, "Error parsing copycat xml file");
-                else
-                {
-                    *pnew_dir = &xdir->dad;
-                    return 0;
-                }
-                KDirectoryRelease (&xdir->dad);
-            }                
-            XTocCacheRelease (cache);
-        }
-        XTocRelease (xtoc);
-    }
-    return rc;
-}
-
-rc_t CC KDirectoryOpenXTocDirReadDir (const KDirectory * self,
-                                                 const KDirectory ** pnew_dir,
-                                                 const KFile * xml,
-                                                 const String * spath)
+LIB_EXPORT rc_t CC KDirectoryOpenXTocDirRead (const KDirectory * self,
+                                              const KDirectory ** pnew_dir,
+                                              const char * base_path, const KFile * xml)
 {
     rc_t rc;
     
@@ -3269,198 +3185,115 @@ rc_t CC KDirectoryOpenXTocDirReadDir (const KDirectory * self,
         LOGERR (klogErr, rc, "self is NULL for opening XToc Directory");
         return rc;
     }
-    else if (xml == NULL)
+    if (xml == NULL)
     {
         rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcNull);
         LOGERR (klogErr, rc, "xml parameter is NULL for opening XToc Directory");
         return rc;
     }
-    else if (spath == NULL)
+    if (base_path == NULL)
     {
         rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcNull);
         LOGERR (klogErr, rc, "base path parameter is NULL for opening XToc Directory");
         return rc;
     }
-    else
-    {
-        rc = KDirectoryOpenXTocDirReadInt (self, pnew_dir, xml, spath);
-    }
-    return rc;
-}
 
-
-rc_t CC KDirectoryVOpenXTocDirRead (const KDirectory * self,
-                                               const KDirectory ** pnew_dir,
-                                               bool chroot,
-                                               const KFile * xml,
-                                               const char * _path,
-                                               va_list args )
-{
-    rc_t rc;
-    
-    /* loosely validate parameters */
-    if (pnew_dir == NULL)
-    {
-        rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcNull);
-        LOGERR (klogErr, rc,
-                "new directory parameter is NULL for opening XToc Directory");
-        return rc;
-    }
-    *pnew_dir = NULL;
-
-    if (self == NULL)
-    {
-        rc = RC (rcFS, rcDirectory, rcOpening, rcSelf, rcNull);
-        LOGERR (klogErr, rc, "self is NULL for opening XToc Directory");
-        return rc;
-    }
-    else if (xml == NULL)
-    {
-        rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcNull);
-        LOGERR (klogErr, rc, "xml parameter is NULL for opening XToc Directory");
-        return rc;
-    }
-    else if (_path == NULL)
-    {
-        rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcNull);
-        LOGERR (klogErr, rc, "base path parameter is NULL for opening XToc Directory");
-        return rc;
-    }
-    else
     /* okay none of our parameters are NULL; they could still be bad but let's start */
     {
-        String spath;
-        const KDirectory * bdir;
-        KPathType type;
-        char path [8192];
+        size_t base_path_size;  /* utf-8 bytes (not characters) in the passed in base path */      
+        char * slash;           /* find the last slash in the given path */
+        char * base_path_dir;   /* path leading up to the file in the path */
+        bool free_base_path_dir = true;
 
-        rc = KDirectoryVResolvePath (self, true, path, sizeof path, _path, args);
-        if (rc)
-            return rc;
+        base_path_size = string_size (base_path);
+        slash = string_rchr (base_path, base_path_size, '/');
 
-        type = KDirectoryPathType (self, path);
-        switch (type & ~kptAlias)
+        if (slash)
         {
-        case kptNotFound:
-            rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcNotFound);
-            LOGERR (klogErr, rc, "base path parameter is not found when opening XToc Directory");
-            return rc;
-
-        case kptBadPath:
-            rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcInvalid);
-            LOGERR (klogErr, rc, "base path parameter is a bad path when opening XToc Directory");
-            return rc;
-
-        case kptFile:
-        case kptCharDev:
-        case kptBlockDev:
-        case kptFIFO:
-        case kptZombieFile:
-        case kptDataset:
-        case kptDatatype:
-            KOutMsg ("%s: type '%u' path '%s'\n",type,path);
-            rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcWrongType);
-            LOGERR (klogErr, rc, "base path parameter is an unusable type when opening XToc Directory");
-            return rc;
-
-        default:
-            rc = RC (rcFS, rcDirectory, rcOpening, rcParam, rcCorrupt);
-            LOGERR (klogErr, rc, "base path parameter is not a known type when opening XToc Directory");
-            return rc;
-
-        case kptDir:
-            break;
+            base_path_dir = malloc ((slash - base_path) + 1);
+            if (base_path_dir == NULL)
+            {
+                rc = RC (rcFS, rcDirectory, rcConstructing, rcMemory, rcExhausted);
+                LOGERR (klogErr, rc, "Error allocating memory to build xtoc directory");
+                return rc;
+            }
+            string_copy (base_path_dir, ((slash - base_path) + 1), 
+                         base_path, (slash - base_path));
         }
-
-        rc = KDirectoryVOpenDirRead (self, &bdir, true, path, args);
-        if (rc)
+        else
         {
-            LOGERR (klogErr, rc, "failed to open base directory for XToc directory");
-            return rc;
+            free_base_path_dir = false;
+            base_path_dir = "/";
         }
-        else
         {
-            static const char absroot[] = "/";
+            const KDirectory * base;
 
-            if (chroot)
-                StringInitCString (&spath, absroot);
+            rc = KDirectoryOpenDirRead (self, &base, true, base_path_dir);
+            if (rc)
+                LOGERR (klogErr, rc, "Error opening directory for xtoc directory");
             else
-                StringInitCString (&spath, path);
-
-            rc = KDirectoryOpenXTocDirReadInt (bdir, pnew_dir, xml, &spath);
-            if (rc == 0)
-                return 0;
-
-            KDirectoryRelease (bdir);
-        }
-    }
-    return rc;
-}
-
-
-rc_t CC KDirectoryOpenXTocDirRead (const KDirectory * self,
-                                              const KDirectory ** pnew_dir,
-                                              bool chroot,
-                                              const KFile * xml,
-                                              const char * path, ... )
-{
-    rc_t rc;
-    va_list args;
-
-    va_start (args, path);
-    rc = KDirectoryVOpenXTocDirRead (self, pnew_dir, chroot, xml, path, args);
-    va_end (args);
-
-    return rc;
-}
-
-
-struct VFSManager;
-
-rc_t CC VFSManagerOpenXTocDirRead (const struct VFSManager * self,
-                                              const struct KDirectory ** pnew_dir,
-                                              const struct KFile * xml,
-                                              const struct VPath * path)
-{
-    rc_t rc = 0;
+            {
+                String sbase;
+                XToc * toc;
 
-    /* needs to be replaced with proper checking and rc returns */
-    assert (pnew_dir);
+                StringInitCString (&sbase, base_path_dir);
 
-    *pnew_dir = NULL;
+                rc = XTocMake (&toc, &sbase);
+                if (rc)
+                    LOGERR (klogErr, rc, "Error creating toc for xtc directory");
+                else
+                {
+                    XTocCache * cache;
+                    String sroot;
 
-    assert (self);
-    assert (xml);
-    assert (path);
+                    StringInitCString (&sroot, ".");
 
-    if (rc == 0)
-    {
-        const KDirectory * dir;
+                    rc = XTocMakeXTocCache (toc, &cache, &sroot, toc->root);
+                    if (rc)
+                        LOGERR (klogErr, rc, 
+                                "Failed to make cache for root for "
+                                "xtoc directory");
+                    else
+                    {
+                        const KXTocDir * xdir;
 
-        rc = VFSManagerOpenDirectoryRead (self, &dir, path);
-        if (rc == 0)
-        {
-            char pbuff [8192];
-            size_t z;
+                        /* now that we have a cache node we should release
+                         * the original reference to the xtoc */
+                        XTocRelease (toc);
 
-            rc = VPathReadPath (path, pbuff, sizeof pbuff, &z);
-            if (rc == 0)
-            {
-                String string;
+                        toc->cache = toc->root->cache = cache;
 
-                StringInit (&string, pbuff, z, string_len (pbuff, z));
+                        rc = KXTocDirMake (&xdir, base, toc, cache, toc->root,
+                                           &sroot);
+                        /* done with our reference to base */
+                        if (rc)
+                            LOGERR (klogErr, rc, "Error making xtoc directory");
+                        else
+                        {
+                            DBG_KXTocDir((xdir));
+                            cache->dir = xdir;
 
-                rc = KDirectoryOpenXTocDirReadDir (dir, pnew_dir, xml, &string);
-                if (rc == 0)
-                    return 0;
+                            rc = XTocParseXml (toc->root, xml);
+                            if (rc)
+                                LOGERR (klogErr, rc, "Error parsing copycat xml file");
+                            else
+                            {
+                                *pnew_dir = &xdir->dad;
+                                if (free_base_path_dir)
+                                    free (base_path_dir);
+                                return 0;
+                            }
+                            KDirectoryRelease (&xdir->dad);
+                        }
+                    }
+                }
+                KDirectoryRelease (base);
             }
-
-            KDirectoryRelease (dir);
-        }
-    }
+            if (free_base_path_dir)
+                free (base_path_dir);
+        } 
+   }
     return rc;
 }
 
-
-
 /* end of file */
diff --git a/libs/loader/Makefile b/libs/loader/Makefile
deleted file mode 100644
index 3e42909..0000000
--- a/libs/loader/Makefile
+++ /dev/null
@@ -1,99 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-default: all
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = libs/loader
-
-INT_LIBS = \
-	libloader
-
-EXT_LIBS = \
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-TEST_TOOLS = 
-
-include $(TOP)/build/Makefile.env
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: makedirs 
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(INT_LIBS): makedirs
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_LIBS): makedirs
-	@ $(MAKE_CMD) $(LIBDIR)/$@
-
-$(TEST_TOOLS): std makedirs
-	@ $(MAKE_CMD) $(TEST_BINDIR)/$@
-
-.PHONY: all std $(ALL_LIBS) $(TEST_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
-	$(addprefix $(LIBDIR)/,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# libloader
-#
-$(ILIBDIR)/libloader: $(ILIBDIR)/libloader.$(LIBX)
-
-LOADER_SRC = \
-    mmarray \
-	common-reader \
-	common-writer \
-	sequence-writer \
-	reference-writer \
-	alignment-writer
-
-LOADER_OBJ = \
-	$(addsuffix .$(LOBX),$(LOADER_SRC))
-
-LOADER_LIB = \
-
-$(ILIBDIR)/libloader.$(SHLX): $(LOADER_OBJ)
-	$(LD) --dlib -o $@ $^ $(LOADER_LIB)
-
-$(ILIBDIR)/libloader.$(LIBX): $(LOADER_OBJ)
-	$(LD) --slib -o $@ $^ $(LOADER_LIB)
-
diff --git a/libs/loader/alignment-writer.c b/libs/loader/alignment-writer.c
deleted file mode 100644
index 005d7f1..0000000
--- a/libs/loader/alignment-writer.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <sysalloc.h>
-#include <klib/out.h>
-
-#include <vdb/vdb-priv.h>
-
-#include <loader/alignment-writer.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-enum e_tables {
-    tblPrimary,
-    tblSecondary,
-    tblN
-};
-
-struct AlignmentWriter {
-    VDatabase *db;
-    TableWriterAlgn const *tbl[tblN];
-    int64_t rowId;
-    int st;
-};
-
-AlignmentWriter *AlignmentMake(VDatabase *db) {
-    AlignmentWriter *self = calloc(1, sizeof(*self));
-    
-    if (self) {
-        self->db = db;
-        VDatabaseAddRef(self->db);
-    }
-    return self;
-}
-
-static rc_t SetColumnDefaults(TableWriterAlgn const *tbl)
-{
-    return 0;
-}
-
-static rc_t WritePrimaryRecord(AlignmentWriter *const self, AlignmentRecord *const data, bool expectUnsorted)
-{
-    if (self->tbl[tblPrimary] == NULL) {
-        rc_t rc = TableWriterAlgn_Make(&self->tbl[tblPrimary], self->db,
-                                       ewalgn_tabletype_PrimaryAlignment,
-                                       ewalgn_co_TMP_KEY_ID + 
-                                       (expectUnsorted ? ewalgn_co_unsorted : 0));
-        if (rc)
-            return rc;
-        rc = SetColumnDefaults(self->tbl[tblPrimary]);
-        if (rc)
-            return rc;
-    }
-    return TableWriterAlgn_Write(self->tbl[tblPrimary], &data->data, &data->alignId);
-}
-
-static rc_t WriteSecondaryRecord(AlignmentWriter *const self, AlignmentRecord *const data, bool expectUnsorted)
-{
-    if (self->tbl[tblSecondary] == NULL) {
-        rc_t rc = TableWriterAlgn_Make(&self->tbl[tblSecondary], self->db,
-                                       ewalgn_tabletype_SecondaryAlignment,
-                                       ewalgn_co_TMP_KEY_ID + 
-                                       (expectUnsorted ? ewalgn_co_unsorted : 0));
-        if (rc)
-            return rc;
-        rc = SetColumnDefaults(self->tbl[tblSecondary]);
-        if (rc)
-            return rc;
-    }
-#if 1
-    /* try to make consistent with cg-load */
-    if (data->mate_ref_pos == 0) {
-        data->data.mate_ref_orientation.elements = 0;
-    }
-#endif
-    return TableWriterAlgn_Write(self->tbl[tblSecondary], &data->data, &data->alignId);
-}
-
-rc_t AlignmentWriteRecord(AlignmentWriter *const self, AlignmentRecord *const data, bool expectUnsorted)
-{
-    return data->isPrimary ? WritePrimaryRecord(self, data, expectUnsorted) : WriteSecondaryRecord(self, data, expectUnsorted);
-}
-
-rc_t AlignmentStartUpdatingSpotIds(AlignmentWriter *const self)
-{
-    return 0;
-}
-
-rc_t AlignmentGetSpotKey(AlignmentWriter *const self, uint64_t * keyId)
-{
-    rc_t rc;
-    
-    switch (self->st) {
-    case 0:
-        rc = TableWriterAlgn_TmpKeyStart(self->tbl[tblPrimary]);
-        if (rc)
-            break;
-        self->rowId = 0;
-        ++self->st;
-    case 1:
-        rc = TableWriterAlgn_TmpKey(self->tbl[tblPrimary], ++self->rowId, keyId);
-        if (rc == 0)
-            break;
-        ++self->st;
-        if (GetRCState(rc) != rcNotFound || GetRCObject(rc) != rcRow || self->tbl[tblSecondary] == NULL)
-            break;
-    case 2:
-        rc = TableWriterAlgn_TmpKeyStart(self->tbl[tblSecondary]);
-        if (rc)
-            break;
-        self->rowId = 0;
-        ++self->st;
-    case 3:
-        rc = TableWriterAlgn_TmpKey(self->tbl[tblSecondary], ++self->rowId, keyId);
-        if (rc == 0)
-            break;
-        if (GetRCState(rc) != rcNotFound || GetRCObject(rc) != rcRow)
-            break;
-        ++self->st;
-        break;
-    default:
-        rc = RC(rcAlign, rcTable, rcUpdating, rcError, rcIgnored);
-        break;
-    }
-    return rc;
-}
-
-rc_t AlignmentWriteSpotId(AlignmentWriter * const self, int64_t const spotId)
-{
-    switch (self->st) {
-    case 1:
-        return TableWriterAlgn_Write_SpotId(self->tbl[tblPrimary], self->rowId, spotId);
-    case 3:
-        return TableWriterAlgn_Write_SpotId(self->tbl[tblSecondary], self->rowId, spotId);
-    default:
-        return RC(rcAlign, rcTable, rcUpdating, rcSelf, rcInconsistent);
-    }
-}
-
-rc_t AlignmentWhack(AlignmentWriter * const self, bool const commit) 
-{
-    rc_t const rc = TableWriterAlgn_Whack(self->tbl[tblPrimary], commit, NULL);
-    rc_t const rc2 = self->tbl[tblSecondary] ? TableWriterAlgn_Whack(self->tbl[tblSecondary], commit | (rc == 0), NULL) : 0;
-
-    VDatabaseRelease(self->db);
-    free(self);
-    return rc ? rc : rc2;
-}
-
-void AlignmentRecordInit(AlignmentRecord *self, void *buffer, unsigned readlen, char **endp, bool expectUnsorted)
-{
-    memset(self, 0, sizeof(*self));
-
-    self->data.seq_read_id.buffer = &self->read_id;
-    self->data.seq_read_id.elements = 1;
-    self->data.ref_id.buffer = &self->ref_id;
-    self->data.ref_id.elements = 1;
-    if (expectUnsorted) {
-        self->data.ref_start.buffer = &self->ref_start;
-        self->data.ref_start.elements = 1;
-    }
-    else {
-        self->data.global_ref_start.buffer = &self->global_ref_start;
-        self->data.global_ref_start.elements = 1;
-    }
-    self->data.ref_orientation.buffer = &self->ref_orientation;
-    self->data.ref_orientation.elements = 1;
-    self->data.mapq.buffer = &self->mapq;
-    self->data.mapq.elements = 1;
-    self->data.tmp_key_id.buffer = &self->tmp_key_id;
-    self->data.tmp_key_id.elements = 1;
-    
-    self->data.read_start.buffer = &self->read_start;
-    self->data.read_start.elements = 1;
-    self->data.read_len.buffer = &self->read_len;
-    self->data.read_len.elements = 1;
-    
-    self->data.mate_ref_orientation.buffer = &self->mate_ref_orientation;
-    self->data.mate_ref_orientation.elements = 1;
-    self->data.mate_ref_id.buffer = &self->mate_ref_id;
-    self->data.mate_ref_id.elements = 1;
-    self->data.mate_ref_pos.buffer = &self->mate_ref_pos;
-    self->data.mate_ref_pos.elements = 1;
-    self->data.mate_align_id.buffer = &self->mate_align_id;
-    self->data.mate_align_id.elements = 1;
-    self->data.template_len.buffer = &self->template_len;
-    self->data.template_len.elements = 1;
-    
-    self->data.ref_offset.buffer = (int32_t *)buffer;
-    self->data.has_mismatch.buffer = (bool *)&AR_OFFSET(*self)[readlen];
-    self->data.has_mismatch.elements = readlen;
-    self->data.has_ref_offset.buffer = &AR_HAS_MISMATCH(*self)[readlen];
-    self->data.has_ref_offset.elements = readlen;
-    self->data.mismatch.buffer = (char *)&AR_HAS_OFFSET(*self)[readlen];
-    
-    *endp = (char *)&AR_MISMATCH(*self)[readlen];
-}
-
-
diff --git a/libs/loader/common-reader.c b/libs/loader/common-reader.c
deleted file mode 100644
index 3839d42..0000000
--- a/libs/loader/common-reader.c
+++ /dev/null
@@ -1,614 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <loader/common-reader-priv.h>
-
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h>
-
-#include <klib/rc.h>
-
-/*--------------------------------------------------------------------------
- ReaderFile
- */
-rc_t CC ReaderFileAddRef ( const ReaderFile *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "ReaderFile" ) )
-        {
-        case krefLimit:
-            return RC ( RC_MODULE, rcFile, rcAttaching, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-rc_t CC ReaderFileRelease ( const ReaderFile *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "ReaderFile" ) )
-        {
-        case krefWhack:
-            return self->vt.v1->destroy( (ReaderFile *)self );
-        case krefLimit:
-            return RC ( RC_MODULE, rcFile, rcReleasing, rcRange, rcExcessive );
-        }
-    }
-    return 0;
-}
-
-rc_t CC ReaderFileGetRecord( const ReaderFile *self, const Record** result)
-{
-    assert(self);
-    assert(result);
-    return self->vt.v1->getRecord( self, result );
-}
-
-float CC ReaderFileGetProportionalPosition ( const READERFILE_IMPL *self )
-{
-    assert(self);
-    assert(self->vt.v1->getProportionalPosition);
-    return self->vt.v1->getProportionalPosition( self );
-}
-
-rc_t CC ReaderFileGetReferenceInfo ( const ReaderFile *self, const ReferenceInfo** result )
-{
-    assert(self);
-    assert(self->vt.v1->getReferenceInfo);
-    return self->vt.v1->getReferenceInfo( self, result );
-}
-
-/* Init
- *  polymorphic parent constructor
- */
-rc_t CC ReaderFileInit ( ReaderFile *self )
-{
-    if ( self == NULL )
-        return RC ( RC_MODULE, rcFileFormat, rcConstructing, rcSelf, rcNull );
-
-    KRefcountInit ( & self -> refcount, 1, "ReaderFile", "ReaderFileInit", "");
-
-    self->pathname = NULL;
-
-    return 0;
-}
-
-rc_t CC ReaderFileWhack ( ReaderFile *self )
-{
-    if ( self == NULL )
-        return RC ( RC_MODULE, rcFileFormat, rcConstructing, rcSelf, rcNull );
-
-    free( self->pathname );
-
-    return 0;
-}
-
-const char* CC ReaderFileGetPathname ( const ReaderFile *self )
-{
-    if ( self == NULL )
-        return NULL;
-    return self->pathname;
-}
-
-/*--------------------------------------------------------------------------
- Record
- */
-
-rc_t CC RecordAddRef ( const Record *self )
-{
-    assert(self);
-    assert(self->vt.v1->addRef);
-    return self->vt.v1->addRef(self);
-}
-
-rc_t CC RecordRelease ( const Record *self )
-{
-    assert(self);
-    assert(self->vt.v1->release);
-    return self->vt.v1->release(self);
-}
-
-rc_t CC RecordGetSequence ( const Record *self, const Sequence** result)
-{
-    assert(self);
-    assert(result);
-    assert(self->vt.v1->getSequence);
-    return self->vt.v1->getSequence(self, result);
-}
-
-rc_t CC RecordGetAlignment( const Record *self, const Alignment** result)
-{
-    assert(self);
-    assert(result);
-    assert(self->vt.v1->getAlignment);
-    return self->vt.v1->getAlignment(self, result);
-}
-
-rc_t CC RecordGetRejected ( const Record *self, const Rejected** result)
-{
-    assert(self);
-    assert(result);
-    assert(self->vt.v1->getRejected);
-    return self->vt.v1->getRejected(self, result);
-}
-
-/*--------------------------------------------------------------------------
- Sequence
- */
-rc_t CC SequenceAddRef ( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->addRef);
-    return self->vt.v1->addRef(self);
-}
-
-rc_t CC SequenceRelease ( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->release);
-    return self->vt.v1->release(self);
-}
-
-rc_t CC SequenceGetReadLength ( const Sequence *self, uint32_t *length )
-{
-    assert(self);
-    assert(length);
-    assert(self->vt.v1->getReadLength);
-    return self->vt.v1->getReadLength(self, length);
-}
-
-rc_t CC SequenceGetRead( const Sequence *self, char *sequence )
-{
-    assert(self);
-    assert(sequence);
-    assert(self->vt.v1->getRead);
-    return self->vt.v1->getRead(self, sequence);
-}
-
-rc_t CC SequenceGetRead2 ( const Sequence *self, char *sequence, uint32_t start, uint32_t stop)
-{
-    assert(self);
-    assert(sequence);
-    assert(self->vt.v1->getRead2);
-    return self->vt.v1->getRead2(self, sequence, start, stop);
-}
-
-rc_t CC SequenceGetQuality(const Sequence *self, const int8_t **quality, uint8_t *offset, int *qualType)
-{
-    assert(self);
-    assert(quality);
-    assert(offset);
-    assert(qualType);
-    assert(self->vt.v1->getQuality);
-    return self->vt.v1->getQuality(self, quality, offset, qualType);
-}
-
-rc_t CC SequenceGetSpotGroup ( const Sequence *self, const char **name, size_t *length )
-{
-    assert(self);
-    assert(name);
-    assert(length);
-    assert(self->vt.v1->getSpotGroup);
-    return self->vt.v1->getSpotGroup(self, name, length);
-}
-
-rc_t CC SequenceGetSpotName ( const Sequence *self, const char **name, size_t *length )
-{
-    assert(self);
-    assert(name);
-    assert(length);
-    assert(self->vt.v1->getSpotName);
-    return self->vt.v1->getSpotName(self, name, length);
-}
-
-bool CC SequenceIsColorSpace ( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->isColorSpace);
-    return self->vt.v1->isColorSpace(self);
-}
-
-rc_t CC SequenceGetCSKey ( const Sequence *self, char cskey[1] )
-{
-    assert(self);
-    assert(self->vt.v1->getCSKey);
-    return self->vt.v1->getCSKey(self, cskey);
-}
-
-rc_t CC SequenceGetCSReadLength ( const Sequence *self, uint32_t *length )
-{
-    assert(self);
-    assert(self->vt.v1->getCSReadLength);
-    return self->vt.v1->getCSReadLength(self, length);
-}
-
-rc_t CC SequenceGetCSRead( const Sequence *self, char *sequence )
-{
-    assert(self);
-    assert(self->vt.v1->getCSRead);
-    return self->vt.v1->getCSRead(self, sequence);
-}
-
-rc_t CC SequenceGetCSQuality(const Sequence *self, const int8_t **quality, uint8_t *offset, int *qualType)
-{
-    assert(self);
-    assert(quality);
-    assert(offset);
-    assert(qualType);
-    assert(self->vt.v1->getCSQuality);
-    return self->vt.v1->getCSQuality(self, quality, offset, qualType);
-}
-
-bool CC SequenceWasPaired     ( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->wasPaired);
-    return self->vt.v1->wasPaired(self);
-}
-
-int CC SequenceGetOrientationSelf( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->orientationSelf);
-    return self->vt.v1->orientationSelf(self);
-}
- 
-int CC SequenceGetOrientationMate( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->orientationMate);
-    return self->vt.v1->orientationMate(self);
-}
-
-bool CC SequenceIsFirst       ( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->isFirst);
-    return self->vt.v1->isFirst(self);
-}
-
-bool CC SequenceIsSecond      ( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->isSecond);
-    return self->vt.v1->isSecond(self);
-}
-
-rc_t SequenceGetTI(Sequence const *self, uint64_t *ti)
-{
-    assert(self);
-    assert(ti);
-    assert(self->vt.v1->getTI);
-    return self->vt.v1->getTI(self, ti);
-}
-
-bool CC SequenceIsDuplicate( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->isDuplicate);
-    return self->vt.v1->isDuplicate(self);
-}
-
-bool CC SequenceIsLowQuality( const Sequence *self )
-{
-    assert(self);
-    assert(self->vt.v1->isLowQuality);
-    return self->vt.v1->isLowQuality(self);
-}
-
-/*--------------------------------------------------------------------------
- Alignment
- */
-
-rc_t CC AlignmentAddRef ( const Alignment *self )
-{
-    assert(self);
-    assert(self->vt.v1->addRef);
-    return self->vt.v1->addRef(self);
-}
-
-rc_t CC AlignmentRelease ( const Alignment *self )
-{
-    assert(self);
-    assert(self->vt.v1->release);
-    return self->vt.v1->release(self);
-}
-
-rc_t CC AlignmentGetRefSeqId ( const Alignment *self, int32_t *refSeqId )
-{
-    assert(self);
-    assert(refSeqId);
-    assert(self->vt.v1->getRefSeqId);
-    return self->vt.v1->getRefSeqId(self, refSeqId);
-}
-
-rc_t CC AlignmentGetMateRefSeqId ( const Alignment *self, int32_t *refSeqId )
-{
-    assert(self);
-    assert(refSeqId);
-    assert(self->vt.v1->getMateRefSeqId);
-    return self->vt.v1->getMateRefSeqId(self, refSeqId);
-}
-
-rc_t CC AlignmentGetPosition ( const Alignment *self, int64_t *pos )
-{
-    assert(self);
-    assert(pos);
-    assert(self->vt.v1->getPosition);
-    return self->vt.v1->getPosition(self, pos);
-}
-
-rc_t CC AlignmentGetMatePosition ( const Alignment *self, int64_t *pos )
-{
-    assert(self);
-    assert(pos);
-    assert(self->vt.v1->getMatePosition);
-    return self->vt.v1->getMatePosition(self, pos);
-}
-
-rc_t CC AlignmentGetMapQuality ( const Alignment *self, uint8_t *qual )
-{
-    assert(self);
-    assert(qual);
-    assert(self->vt.v1->getMapQuality);
-    return self->vt.v1->getMapQuality(self, qual);
-}
-
-rc_t CC AlignmentGetAlignmentDetail ( const Alignment *self,
-                                      AlignmentDetail *rslt, 
-                                      uint32_t count, 
-                                      uint32_t *actual,
-                                      int32_t *firstMatch, 
-                                      int32_t *lastMatch )
-{
-    assert(self);
-    assert(self->vt.v1->getAlignmentDetail);
-    return self->vt.v1->getAlignmentDetail(self, rslt, count, actual, firstMatch, lastMatch);
-}
-
-rc_t CC AlignmentGetAlignOpCount ( const Alignment *self, uint32_t *n )
-{
-    assert(self);
-    assert(n);
-    assert(self->vt.v1->getAlignOpCount);
-    return self->vt.v1->getAlignOpCount(self, n);
-}
-
-rc_t CC AlignmentGetInsertSize ( const Alignment *self, int64_t *size )
-{
-    assert(self);
-    assert(size);
-    assert(self->vt.v1->getInsertSize);
-    return self->vt.v1->getInsertSize(self, size);
-}
-
-rc_t AlignmentGetCGData ( const ALIGNMENT_IMPL *self, const CGData** result)
-{
-    assert(self);
-    assert(result);
-    assert(self->vt.v1->getCG);
-    return self->vt.v1->getCG(self, result);
-}
-
-rc_t AlignmentGetBAMCigar ( const ALIGNMENT_IMPL *self, uint32_t const **rslt, uint32_t *length )
-{
-    assert(self);
-    assert(rslt);
-    assert(length);
-    assert(self->vt.v1->getBAMCigar);
-    return self->vt.v1->getBAMCigar(self, rslt, length);
-}
-
-bool AlignmentIsSecondary( const Alignment *self )
-{
-    assert(self);
-    assert(self->vt.v1->isSecondary);
-    return self->vt.v1->isSecondary(self);
-}
-
-/*--------------------------------------------------------------------------
- * CGData
- */
-rc_t CC CGDataAddRef ( const CGData *self )
-{
-    assert(self);
-    assert(self->vt.v1->addRef);
-    return self->vt.v1->addRef(self);
-}
-
-rc_t CC CGDataRelease ( const CGData *self )
-{
-    assert(self);
-    assert(self->vt.v1->release);
-    return self->vt.v1->release(self);
-}
-
-/* CGGetSeqQual
- */
-rc_t CC CGDataGetSeqQual ( const CGData* self,
-                           char sequence[/* 35 */],
-                           uint8_t quality[/* 35 */] )
-{
-    assert(self);
-    assert(sequence);
-    assert(quality);
-    assert(self->vt.v1->getSeqQual);
-    return self->vt.v1->getSeqQual(self, sequence, quality); 
-}                       
-
-/* CGGetCigar
- */
-rc_t CC CGDataGetCigar ( const CGData* self,
-                         uint32_t *cigar,
-                         uint32_t cig_max,
-                         uint32_t *cig_act )
-{
-    assert(self);
-    assert(cigar);
-    assert(cig_act);
-    assert(self->vt.v1->getCigar);
-    return self->vt.v1->getCigar(self, cigar, cig_max, cig_act);
-}                     
-
-/* CGGetAlignGroup
- */
-rc_t CC CGDataGetAlignGroup ( const CGData* self,
-                              char buffer[],
-                              size_t max_size,
-                              size_t *act_size )
-{
-    assert(self);
-    assert(act_size);
-    assert(self->vt.v1->getAlignGroup);
-    return self->vt.v1->getAlignGroup(self, buffer, max_size, act_size);
-}
-                          
-/*--------------------------------------------------------------------------
- * Rejected
- */
-
-rc_t CC RejectedInit ( Rejected *self )
-{
-    KRefcountInit ( & self -> refcount, 1, "Rejected", "RejectedInit", "");
-    StringInit(&self->source, 0, 0, 0);
-    self->message = 0;
-    self->column = 0;
-    self->line = 0;
-    self->fatal = false;
-    return 0;
-}
-
-static rc_t CC RejectedWhack ( const Rejected *self )
-{
-    free( (void*)self->source.addr );
-    free( (void*)self->message );
-    free( (void*)self );
-    return 0;
-}
-
-rc_t CC RejectedAddRef ( const Rejected *self )
-{
-    assert(self);
-    KRefcountAdd( & self->refcount, "Rejected" );
-    /* TODO: handle rc from KRefcountAdd */
-    return 0;
-}
-
-rc_t CC RejectedRelease ( const Rejected *self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "Rejected" ) )
-        {
-        case krefWhack:
-            RejectedWhack( self );
-            break;
-        default:
-            /* TODO: handle other values */
-            break;
-        }
-    }
-    return 0;
-}
-
-rc_t CC RejectedGetError( const Rejected* self, const char** text, uint64_t* line, uint64_t* column, bool* fatal )
-{
-    assert(self);
-    assert(text);
-    assert(line);
-    assert(column);
-    *text = self->message;
-    *line = self->line;
-    *column = self->column;
-    *fatal = self->fatal;
-    return 0;
-}
-
-rc_t CC RejectedGetData( const Rejected* self, const void** data, size_t* length )
-{
-    assert(self);
-    assert(data);
-    assert(length);
-    *data = self->source.addr;
-    *length = StringSize( & self->source );
-    return 0;
-}
-
-/*--------------------------------------------------------------------------
- * ReferenceInfo
- */
-rc_t CC ReferenceInfoAddRef ( const ReferenceInfo *self )
-{
-    assert(self);
-    assert(self->vt.v1->addRef);
-    return self->vt.v1->addRef(self);
-}
-
-rc_t CC ReferenceInfoRelease ( const ReferenceInfo *self )
-{
-    assert(self);
-    assert(self->vt.v1->release);
-    return self->vt.v1->release(self);
-}
-
-rc_t CC ReferenceInfoGetRefSeqCount ( const ReferenceInfo *self, uint32_t* count )
-{
-    assert(self);
-    assert(self->vt.v1->getRefSeqCount);
-    return self->vt.v1->getRefSeqCount(self, count);
-}
-
-rc_t CC ReferenceInfoGetRefSeq ( const ReferenceInfo *self, uint32_t n, ReferenceSequence *result )
-{
-    assert(self);
-    assert(self->vt.v1->getRefSeq);
-    return self->vt.v1->getRefSeq(self, n, result);
-}
-
-rc_t CC ReferenceInfoGetReadGroupCount ( const ReferenceInfo *self, uint32_t *count )
-{
-    assert(self);
-    assert(self->vt.v1->getReadGroupCount);
-    return self->vt.v1->getReadGroupCount(self, count);
-}
-
-rc_t CC ReferenceInfoGetReadGroup ( const ReferenceInfo *self, unsigned n, ReadGroup *result )
-{
-    assert(self);
-    assert(self->vt.v1->getReadGroup);
-    return self->vt.v1->getReadGroup(self, n, result);
-}
-
-rc_t CC ReferenceInfoGetReadGroupByName ( const ReferenceInfo *self, const char *name, ReadGroup *result )
-{
-    assert(self);
-    assert(self->vt.v1->getReadGroupByName );
-    return self->vt.v1->getReadGroupByName(self, name, result);
-}
diff --git a/libs/loader/common-writer.c b/libs/loader/common-writer.c
deleted file mode 100644
index 827f481..0000000
--- a/libs/loader/common-writer.c
+++ /dev/null
@@ -1,1987 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
- 
-#include <sysalloc.h>
-#include <string.h>
-#include <assert.h>
-#include <stdlib.h>
-#include <ctype.h>
-
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-#include <klib/status.h>
-
-#include <kdb/btree.h>
-
-#include <kfs/pmem.h>
-#include <kfs/file.h>
-#include <kfs/pagefile.h>
-
-#include <kapp/progressbar.h>
-#include <kapp/main.h>
-
-#include <vdb/manager.h>
-#include <vdb/database.h>
-
-#include <loader/sequence-writer.h>
-#include <loader/alignment-writer.h>
-#include <loader/reference-writer.h>
-#include <loader/common-writer.h>
-#include <loader/common-reader-priv.h>
-
-/*--------------------------------------------------------------------------
- * ctx_value_t, FragmentInfo
- */
-typedef struct {
-    uint32_t primaryId[2];
-    uint32_t spotId;
-    uint32_t fragmentId;
-    uint16_t seqHash[2];
-    uint8_t  platform;
-    uint8_t  pId_ext[2];
-    uint8_t  spotId_ext;
-    uint8_t  alignmentCount[2]; /* 0..254; 254: saturated max; 255: special meaning "too many" */
-    uint8_t  unmated: 1,
-             pcr_dup: 1,
-             has_a_read: 1,
-             unaligned_1: 1,
-             unaligned_2: 1;
-} ctx_value_t;
-
-#define CTX_VALUE_SET_P_ID(O,N,V) do { int64_t tv = (V); (O).primaryId[N] = (uint32_t)tv; (O).pId_ext[N] = tv >> 32; } while(0);
-#define CTX_VALUE_GET_P_ID(O,N) ((((int64_t)((O).pId_ext[N])) << 32) | (O).primaryId[N])
-
-#define CTX_VALUE_SET_S_ID(O,V) do { int64_t tv = (V); (O).spotId = (uint32_t)tv; (O).spotId_ext = tv >> 32; } while(0);
-#define CTX_VALUE_GET_S_ID(O) ((((int64_t)(O).spotId_ext) << 32) | (O).spotId)
-
-typedef struct FragmentInfo {
-    uint64_t ti;
-    uint32_t readlen;
-    uint8_t  aligned;
-    uint8_t  is_bad;
-    uint8_t  orientation;
-    uint8_t  otherReadNo;
-    uint8_t  sglen;
-    uint8_t  cskey;
-} FragmentInfo;
-
-
-rc_t OpenKBTree(const CommonWriterSettings* settings, struct KBTree **const rslt, unsigned n, unsigned max)
-{
-    size_t const cacheSize = (((settings->cache_size - (settings->cache_size / 2) - (settings->cache_size / 8)) / max)
-                            + 0xFFFFF) & ~((size_t)0xFFFFF);
-    KFile *file = NULL;
-    KDirectory *dir;
-    char fname[4096];
-    rc_t rc;
-
-    rc = KDirectoryNativeDir(&dir);
-    if (rc)
-        return rc;
-    
-    rc = string_printf(fname, sizeof(fname), NULL, "%s/key2id.%u.%u", settings->tmpfs, settings->pid, n); if (rc) return rc;
-    STSMSG(1, ("Path for scratch files: %s\n", fname));
-    rc = KDirectoryCreateFile(dir, &file, true, 0600, kcmInit, fname);
-    KDirectoryRemove(dir, 0, fname);
-    KDirectoryRelease(dir);
-    if (rc == 0) {
-        rc = KBTreeMakeUpdate(rslt, file, cacheSize,
-                              false, kbtOpaqueKey,
-                              1, 255, sizeof ( uint32_t ),
-                              NULL
-                              );
-        KFileRelease(file);
-#if PERF
-        if (rc == 0) {
-            static unsigned treecount = 0;
-
-            (void)PLOGMSG(klogInfo, (klogInfo, "Number of trees: $(cnt)", "cnt=%u", ++treecount));
-        }
-#endif
-    }
-    return rc;
-}
-
-rc_t GetKeyIDOld(const CommonWriterSettings* settings, SpotAssembler* const ctx, uint64_t *const rslt, bool *const wasInserted, char const key[], char const name[], unsigned const namelen)
-{
-    unsigned const keylen = strlen(key);
-    rc_t rc;
-    uint64_t tmpKey;
-
-    if (ctx->key2id_count == 0) {
-        rc = OpenKBTree(settings, &ctx->key2id[0], 1, 1);
-        if (rc) return rc;
-        ctx->key2id_count = 1;
-    }
-    if (memcmp(key, name, keylen) == 0) {
-        /* qname starts with read group; no append */
-        tmpKey = ctx->idCount[0];
-        rc = KBTreeEntry(ctx->key2id[0], &tmpKey, wasInserted, name, namelen);
-    }
-    else {
-        char sbuf[4096];
-        char *buf = sbuf;
-        char *hbuf = NULL;
-        size_t bsize = sizeof(sbuf);
-        size_t actsize;
-        
-        if (keylen + namelen + 2 > bsize) {
-            hbuf = malloc(bsize = keylen + namelen + 2);
-            if (hbuf == NULL)
-                return RC(rcExe, rcName, rcAllocating, rcMemory, rcExhausted);
-            buf = hbuf;
-        }
-        rc = string_printf(buf, bsize, &actsize, "%s\t%.*s", key, (int)namelen, name);
-        
-        tmpKey = ctx->idCount[0];
-        rc = KBTreeEntry(ctx->key2id[0], &tmpKey, wasInserted, buf, actsize);
-        if (hbuf)
-            free(hbuf);
-    }
-    if (rc == 0) {
-        *rslt = tmpKey;
-        if (*wasInserted)
-            ++ctx->idCount[0];
-    }
-    return rc;
-}
-
-static char const *Print_ctx_value_t(ctx_value_t const *const self)
-{
-    static char buffer[4096];
-    rc_t rc = string_printf(buffer, sizeof(buffer), NULL, "pid: { %lu, %lu }, sid: %lu, fid: %u, alc: { %u, %u }, flg: %x", CTX_VALUE_GET_P_ID(*self, 0), CTX_VALUE_GET_P_ID(*self, 1), CTX_VALUE_GET_S_ID(*self), self->fragmentId, self->alignmentCount[0], self->alignmentCount[1], self->alignmentCount[2]);
-
-    if (rc)
-        return 0;
-    return buffer;
-}
-
-static unsigned HashKey(void const *key, unsigned keylen)
-{
-    /* There is nothing special about this hash. It was randomly generated. */
-    static const uint8_t T1[] = {
-         64, 186,  39, 203,  54, 211,  98,  32,  26,  23, 219,  94,  77,  60,  56, 184,
-        129, 242,  10,  91,  84, 192,  19, 197, 231, 133, 125, 244,  48, 176, 160, 164,
-         17,  41,  57, 137,  44, 196, 116, 146, 105,  40, 122,  47, 220, 226, 213, 212,
-        107, 191,  52, 144,   9, 145,  81, 101, 217, 206,  85, 134, 143,  58, 128,  20,
-        236, 102,  83, 149, 148, 180, 167, 163,  12, 239,  31,   0,  73, 152,   1,  15,
-         75, 200,   4, 165,   5,  66,  25, 111, 255,  70, 174, 151,  96, 126, 147,  34,
-        112, 161, 127, 181, 237,  78,  37,  74, 222, 123,  21, 132,  95,  51, 141,  45,
-         61, 131, 193,  68,  62, 249, 178,  33,   7, 195, 228,  82,  27,  46, 254,  90,
-        185, 240, 246, 124, 205, 182,  42,  22, 198,  69, 166,  92, 169, 136, 223, 245,
-        118,  97, 115,  80, 252, 209,  49,  79, 221,  38,  28,  35,  36, 208, 187, 248,
-        158, 201, 202, 168,   2,  18, 189, 119, 216, 214,  11,   6,  89,  16, 229, 109,
-        120,  43, 162, 106, 204,   8, 199, 235, 142, 210,  86, 153, 227, 230,  24, 100,
-        224, 113, 190, 243, 218, 215, 225, 173,  99, 238, 138,  59, 183, 154, 171, 232,
-        157, 247, 233,  67,  88,  50, 253, 251, 140, 104, 156, 170, 150, 103, 117, 110,
-        155,  72, 207, 250, 159, 194, 177, 130, 135,  87,  71, 175,  14,  55, 172, 121,
-        234,  13,  30, 241,  93, 188,  53, 114,  76,  29,  65,   3, 179, 108,  63, 139
-    };
-    unsigned h = 0x55;
-    unsigned i = keylen;
-    
-    do { h = T1[h ^ ((uint8_t)i)]; } while ((i >>= 8) != 0);
-
-    for (i = 0; i != keylen; ++i)
-        h = T1[h ^ ((uint8_t const *)key)[i]];
-
-    return h;
-}
-
-static unsigned SeqHashKey(void const *key, unsigned keylen)
-{
-    /* There is nothing special about this hash. It was randomly generated. */
-    static const uint8_t T1[] = {
-         64, 186,  39, 203,  54, 211,  98,  32,  26,  23, 219,  94,  77,  60,  56, 184,
-        129, 242,  10,  91,  84, 192,  19, 197, 231, 133, 125, 244,  48, 176, 160, 164,
-         17,  41,  57, 137,  44, 196, 116, 146, 105,  40, 122,  47, 220, 226, 213, 212,
-        107, 191,  52, 144,   9, 145,  81, 101, 217, 206,  85, 134, 143,  58, 128,  20,
-        236, 102,  83, 149, 148, 180, 167, 163,  12, 239,  31,   0,  73, 152,   1,  15,
-         75, 200,   4, 165,   5,  66,  25, 111, 255,  70, 174, 151,  96, 126, 147,  34,
-        112, 161, 127, 181, 237,  78,  37,  74, 222, 123,  21, 132,  95,  51, 141,  45,
-         61, 131, 193,  68,  62, 249, 178,  33,   7, 195, 228,  82,  27,  46, 254,  90,
-        185, 240, 246, 124, 205, 182,  42,  22, 198,  69, 166,  92, 169, 136, 223, 245,
-        118,  97, 115,  80, 252, 209,  49,  79, 221,  38,  28,  35,  36, 208, 187, 248,
-        158, 201, 202, 168,   2,  18, 189, 119, 216, 214,  11,   6,  89,  16, 229, 109,
-        120,  43, 162, 106, 204,   8, 199, 235, 142, 210,  86, 153, 227, 230,  24, 100,
-        224, 113, 190, 243, 218, 215, 225, 173,  99, 238, 138,  59, 183, 154, 171, 232,
-        157, 247, 233,  67,  88,  50, 253, 251, 140, 104, 156, 170, 150, 103, 117, 110,
-        155,  72, 207, 250, 159, 194, 177, 130, 135,  87,  71, 175,  14,  55, 172, 121,
-        234,  13,  30, 241,  93, 188,  53, 114,  76,  29,  65,   3, 179, 108,  63, 139
-    };
-    unsigned h1 = 0x55;
-    unsigned h2 = 0x22;
-    unsigned i = keylen;
-    
-    do { h1 = T1[h1 ^ ((uint8_t)i)]; } while ((i >>= 8) != 0);
-
-    for (i = 0; i != keylen; ++i)
-    {
-        unsigned temp = ((uint8_t const *)key)[i];
-        h1 = T1[h1 ^ temp];
-        h2 = T1[h2 ^ temp];
-    }
-
-    return (h1 << 8) | h2;
-}
-
-rc_t GetKeyID(CommonWriterSettings* settings, SpotAssembler *const ctx, uint64_t *const rslt, bool *const wasInserted, char const key[], char const name[], unsigned const namelen)
-{
-    if (ctx->key2id_max == 1)
-        return GetKeyIDOld(settings, ctx, rslt, wasInserted, key, name, namelen);
-    else {
-        unsigned const keylen = strlen(key);
-        unsigned const h = HashKey(key, keylen);
-        unsigned f;
-        unsigned e = ctx->key2id_count;
-        uint64_t tmpKey;
-        
-        *rslt = 0;
-        {{
-            uint32_t const bucket_value = ctx->key2id_hash[h];
-            unsigned const n  = (uint8_t) bucket_value;
-            unsigned const i1 = (uint8_t)(bucket_value >>  8);
-            unsigned const i2 = (uint8_t)(bucket_value >> 16);
-            unsigned const i3 = (uint8_t)(bucket_value >> 24);
-            
-            if (n > 0 && strcmp(key, ctx->key2id_names + ctx->key2id_name[i1]) == 0) {
-                f = i1;
-                /*
-                ctx->key2id_hash[h] = (i3 << 24) | (i2 << 16) | (i1 << 8) | n;
-                 */
-                goto GET_ID;
-            }
-            if (n > 1 && strcmp(key, ctx->key2id_names + ctx->key2id_name[i2]) == 0) {
-                f = i2;
-                ctx->key2id_hash[h] = (i3 << 24) | (i1 << 16) | (i2 << 8) | n;
-                goto GET_ID;
-            }
-            if (n > 2 && strcmp(key, ctx->key2id_names + ctx->key2id_name[i3]) == 0) {
-                f = i3;
-                ctx->key2id_hash[h] = (i2 << 24) | (i1 << 16) | (i3 << 8) | n;
-                goto GET_ID;
-            }
-        }}
-        f = 0;
-        while (f < e) {
-            unsigned const m = (f + e) / 2;
-            unsigned const oid = ctx->key2id_oid[m];
-            int const diff = strcmp(key, ctx->key2id_names + ctx->key2id_name[oid]);
-            
-            if (diff < 0)
-                e = m;
-            else if (diff > 0)
-                f = m + 1;
-            else {
-                f = oid;
-                goto GET_ID;
-            }
-        }
-        if (ctx->key2id_count < ctx->key2id_max) {
-            unsigned const name_max = ctx->key2id_name_max + keylen + 1;
-            KBTree *tree;
-            rc_t rc = OpenKBTree(settings, &tree, ctx->key2id_count + 1, 1); /* ctx->key2id_max); */
-            
-            if (rc) return rc;
-            
-            if (ctx->key2id_name_alloc < name_max) {
-                unsigned alloc = ctx->key2id_name_alloc;
-                void *tmp;
-                
-                if (alloc == 0)
-                    alloc = 4096;
-                while (alloc < name_max)
-                    alloc <<= 1;
-                tmp = realloc(ctx->key2id_names, alloc);
-                if (tmp == NULL)
-                    return RC(rcExe, rcName, rcAllocating, rcMemory, rcExhausted);
-                ctx->key2id_names = tmp;
-                ctx->key2id_name_alloc = alloc;
-            }
-            if (f < ctx->key2id_count) {
-                memmove(&ctx->key2id_oid[f + 1], &ctx->key2id_oid[f], (ctx->key2id_count - f) * sizeof(ctx->key2id_oid[f]));
-            }
-            ctx->key2id_oid[f] = ctx->key2id_count;
-            ++ctx->key2id_count;
-            f = ctx->key2id_oid[f];
-            ctx->key2id_name[f] = ctx->key2id_name_max;
-            ctx->key2id_name_max = name_max;
-
-            memcpy(&ctx->key2id_names[ctx->key2id_name[f]], key, keylen + 1);
-            ctx->key2id[f] = tree;
-            ctx->idCount[f] = 0;
-            if ((uint8_t)ctx->key2id_hash[h] < 3) {
-                unsigned const n = (uint8_t)ctx->key2id_hash[h] + 1;
-                
-                ctx->key2id_hash[h] = (((ctx->key2id_hash[h] & ~(0xFFu)) | f) << 8) | n;
-            }
-            else {
-                /* the hash function isn't working too well
-                 * keep the 3 mru
-                 */
-                ctx->key2id_hash[h] = (((ctx->key2id_hash[h] & ~(0xFFu)) | f) << 8) | 3;
-            }
-        GET_ID:
-            tmpKey = ctx->idCount[f];
-            rc = KBTreeEntry(ctx->key2id[f], &tmpKey, wasInserted, name, namelen);
-            if (rc == 0) {
-                *rslt = (((uint64_t)f) << 32) | tmpKey;
-                if (*wasInserted)
-                    ++ctx->idCount[f];
-                assert(tmpKey < ctx->idCount[f]);
-            }
-            return rc;
-        }
-        return RC(rcExe, rcTree, rcAllocating, rcConstraint, rcViolated);
-    }
-}
-
-static rc_t OpenMMapFile(const CommonWriterSettings* settings, SpotAssembler *const ctx, KDirectory *const dir)
-{
-    KFile *file = NULL;
-    char fname[4096];
-    rc_t rc = string_printf(fname, sizeof(fname), NULL, "%s/id2value.%u", settings->tmpfs, settings->pid);
-    
-    if (rc)
-        return rc;
-    
-    rc = KDirectoryCreateFile(dir, &file, true, 0600, kcmInit, fname);
-    KDirectoryRemove(dir, 0, fname);
-    if (rc == 0)
-        rc = MMArrayMake(&ctx->id2value, file, sizeof(ctx_value_t));
-    KFileRelease(file);
-    return rc;
-}
-
-static rc_t OpenMBankFile(const CommonWriterSettings* settings, SpotAssembler *const ctx, KDirectory *const dir, int which, size_t climit)
-{
-    KFile *file = NULL;
-    char fname[4096];
-    char const *const suffix = which == 1 ? "One" : "Both";
-    KMemBank **const mbank = which == 1 ? &ctx->fragsOne : &ctx->fragsBoth;
-    rc_t rc = string_printf(fname, sizeof(fname), NULL, "%s/frag_data%s.%u", settings->tmpfs, suffix, settings->pid);
-    
-    if (rc)
-        return rc;
-    
-    rc = KDirectoryCreateFile(dir, &file, true, 0600, kcmInit, fname);
-    KDirectoryRemove(dir, 0, fname);
-    if (rc == 0) {
-        KPageFile *backing;
-        
-        rc = KPageFileMakeUpdate(&backing, file, climit, false);
-        KFileRelease(file);
-        if (rc == 0) {
-            rc = KMemBankMake(mbank, FRAG_CHUNK_SIZE, 0, backing);
-            KPageFileRelease(backing);
-        }
-    }
-    return rc;
-}
-
-rc_t SetupContext(const CommonWriterSettings* settings, SpotAssembler *ctx)
-{
-    rc_t rc = 0;
-
-    memset(ctx, 0, sizeof(*ctx));
-    
-    ctx->pass = 1;
-    
-    if (settings->mode == mode_Archive) {
-        KDirectory *dir;
-        size_t fragSizeBoth; /*** temporary hold for first side of mate pair with both sides aligned**/
-        size_t fragSizeOne; /*** temporary hold for first side of mate pair with one side aligned**/
-
-        STSMSG(1, ("Cache size: %uM\n", settings->cache_size / 1024 / 1024));
-        
-        fragSizeBoth    =   (settings->cache_size / 8);
-        fragSizeOne     =   (settings->cache_size / 2);
-
-        rc = KLoadProgressbar_Make(&ctx->progress[0], 0); if (rc) return rc;
-        rc = KLoadProgressbar_Make(&ctx->progress[1], 0); if (rc) return rc;
-        rc = KLoadProgressbar_Make(&ctx->progress[2], 0); if (rc) return rc;
-        rc = KLoadProgressbar_Make(&ctx->progress[3], 0); if (rc) return rc;
-        
-        KLoadProgressbar_Append(ctx->progress[0], 100 * settings->numfiles);
-        
-        rc = KDirectoryNativeDir(&dir);
-        if (rc == 0)
-            rc = OpenMMapFile(settings, ctx, dir);
-        if (rc == 0)
-            rc = OpenMBankFile(settings, ctx, dir, 0, fragSizeBoth);
-        if (rc == 0)
-            rc = OpenMBankFile(settings, ctx, dir, 1, fragSizeOne);
-        KDirectoryRelease(dir);
-    }
-    return rc;
-}
-
-void ContextReleaseMemBank(SpotAssembler *ctx)
-{
-    KMemBankRelease(ctx->fragsOne);
-    ctx->fragsOne = NULL;
-    KMemBankRelease(ctx->fragsBoth);
-    ctx->fragsBoth = NULL;
-}
-
-void ContextRelease(SpotAssembler *ctx)
-{
-    KLoadProgressbar_Release(ctx->progress[0], true);
-    KLoadProgressbar_Release(ctx->progress[1], true);
-    KLoadProgressbar_Release(ctx->progress[2], true);
-    KLoadProgressbar_Release(ctx->progress[3], true);
-    MMArrayWhack(ctx->id2value);
-}
-
-
-
-rc_t WriteSoloFragments(const CommonWriterSettings* settings, SpotAssembler* ctx, SequenceWriter *seq)
-{
-    uint32_t i;
-    unsigned j;
-    uint32_t fcountOne  = 0;
-    uint32_t fcountBoth = 0;
-    uint64_t idCount = 0;
-    rc_t rc;
-    KDataBuffer fragBuf;
-    SequenceRecord srec;
-    
-    ++ctx->pass;
-    memset(&srec, 0, sizeof(srec));
-    
-    rc = KDataBufferMake(&fragBuf, 8, 0);
-    if (rc) {
-        (void)LOGERR(klogErr, rc, "KDataBufferMake failed");
-        return rc;
-    }
-    for (idCount = 0, j = 0; j < ctx->key2id_count; ++j) {
-        idCount += ctx->idCount[j];
-    }
-    KLoadProgressbar_Append(ctx->progress[ctx->pass - 1], idCount);
-    
-    for (idCount = 0, j = 0; j < ctx->key2id_count; ++j) {
-        for (i = 0; i != ctx->idCount[j]; ++i, ++idCount) {
-            uint64_t const keyId = ((uint64_t)j << 32) | i;
-            ctx_value_t *value;
-            size_t rsize;
-            uint64_t id;
-            uint64_t sz;
-            unsigned readLen[2];
-            unsigned read = 0;
-            FragmentInfo const *fip;
-            uint8_t const *src;
-            KMemBank *frags;
-            
-            rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-            if (rc)
-                break;
-            KLoadProgressbar_Process(ctx->progress[ctx->pass - 1], 1, false);
-            if (value->fragmentId == 0)
-                continue;
-            if (value->fragmentId & 1) {
-                frags = ctx->fragsOne;
-                fcountOne++;
-            }
-            else {
-                frags = ctx->fragsBoth; 
-                fcountBoth++;
-            }
-            id = value->fragmentId >> 1;
-            
-            rc = KMemBankSize(frags, id, &sz);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "KMemBankSize failed");
-                break;
-            }
-            rc = KDataBufferResize(&fragBuf, (size_t)sz);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "KDataBufferResize failed");
-                break;
-            }
-            rc = KMemBankRead(frags, id, 0, fragBuf.base, sz, &rsize);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "KMemBankRead failed");
-                break;
-            }
-            assert( rsize == sz );
-            fip = (FragmentInfo const *)fragBuf.base;
-            src = (uint8_t const *)&fip[1];
-            
-            readLen[0] = readLen[1] = 0;
-            if (!value->unmated && (   (fip->aligned && CTX_VALUE_GET_P_ID(*value, 0) == 0)
-                                     || (value->unaligned_2)))
-            {
-                read = 1;
-            }
-            
-            readLen[read] = fip->readlen;
-            rc = SequenceRecordInit(&srec, value->unmated ? 1 : 2, readLen);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "SequenceRecordInit failed");
-                break;
-            }
-            
-            srec.ti[read] = fip->ti;
-            srec.aligned[read] = fip->aligned;
-            srec.is_bad[read] = fip->is_bad;
-            srec.orientation[read] = fip->orientation;
-            srec.cskey[read] = fip->cskey;
-            memcpy(srec.seq + srec.readStart[read], src, srec.readLen[read]);
-            src += fip->readlen;
-            memcpy(srec.qual + srec.readStart[read], src, srec.readLen[read]);
-            src += fip->readlen;
-            srec.spotGroup = (char *)src;
-            srec.spotGroupLen = fip->sglen;
-            srec.keyId = keyId;
-            
-            rc = SequenceWriteRecord(seq, &srec, ctx->isColorSpace, value->pcr_dup, value->platform, 
-                                    settings->keepMismatchQual, settings->no_real_output, settings->hasTI, settings->QualQuantizer);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "SequenceWriteRecord failed");
-                break;
-            }
-            /*rc = KMemBankFree(frags, id);*/
-            CTX_VALUE_SET_S_ID(*value, ++ctx->spotId);
-        }
-    }
-    /*printf("DONE_SOLO:\tcnt2=%d\tcnt1=%d\n",fcountBoth,fcountOne);*/
-    KDataBufferWhack(&fragBuf);
-    KDataBufferWhack(&srec.storage);
-    return rc;
-}
-
-rc_t AlignmentUpdateSpotInfo(SpotAssembler *ctx, struct AlignmentWriter *align)
-{
-    rc_t rc;
-    uint64_t keyId;
-    
-    ++ctx->pass;
-
-    KLoadProgressbar_Append(ctx->progress[ctx->pass - 1], ctx->alignCount);
-
-    rc = AlignmentStartUpdatingSpotIds(align);
-    while (rc == 0 && (rc = Quitting()) == 0) {
-        ctx_value_t const *value;
-        
-        rc = AlignmentGetSpotKey(align, &keyId);
-        if (rc) {
-            if (GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound)
-                rc = 0;
-            break;
-        }
-        assert(keyId >> 32 < ctx->key2id_count);
-        assert((uint32_t)keyId < ctx->idCount[keyId >> 32]);
-        rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-        if (rc == 0) {
-            int64_t const spotId = CTX_VALUE_GET_S_ID(*value);
-            
-            if (spotId == 0) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(id)' was never assigned a spot id, probably has no primary alignments", "id=%lx", keyId));
-                /* (void)PLOGMSG(klogWarn, (klogWarn, "Spot #$(i): { $(s) }", "i=%lu,s=%s", keyId, Print_ctx_value_t(value))); */
-            }
-            rc = AlignmentWriteSpotId(align, spotId);
-        }
-        KLoadProgressbar_Process(ctx->progress[ctx->pass - 1], 1, false);
-    }
-    return rc;
-}
-
-rc_t SequenceUpdateAlignInfo(SpotAssembler *ctx, struct SequenceWriter *seq)
-{
-    rc_t rc = 0;
-    uint64_t row;
-    const ctx_value_t *value;
-    uint64_t keyId;
-    
-    ++ctx->pass;
-    KLoadProgressbar_Append(ctx->progress[ctx->pass - 1], ctx->spotId + 1);
-    
-    for (row = 1; row <= ctx->spotId; ++row) {
-        rc = SequenceReadKey(seq, row, &keyId);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "Failed to get key for row $(row)", "row=%u", (unsigned)row));
-            break;
-        }
-        rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "Failed to read info for row $(row), index $(idx)", "row=%u,idx=%u", (unsigned)row, (unsigned)keyId));
-            break;
-        }
-        if (row != CTX_VALUE_GET_S_ID(*value)) {
-            rc = RC(rcApp, rcTable, rcWriting, rcData, rcUnexpected);
-            (void)PLOGMSG(klogErr, (klogErr, "Unexpected spot id $(spotId) for row $(row), index $(idx)", "spotId=%u,row=%u,idx=%u", (unsigned)CTX_VALUE_GET_S_ID(*value), (unsigned)row, (unsigned)keyId));
-            break;
-        }
-        {{
-            int64_t primaryId[2];
-            /*uint64_t const spotId = CTX_VALUE_GET_S_ID(*value);*/
-            
-            primaryId[0] = CTX_VALUE_GET_P_ID(*value, 0);
-            primaryId[1] = CTX_VALUE_GET_P_ID(*value, 1);
-            
-            rc = SequenceUpdateAlignData(seq, row, value->unmated ? 1 : 2,
-                                         primaryId,
-                                         value->alignmentCount);
-        }}
-        if (rc) {
-            (void)LOGERR(klogErr, rc, "Failed updating AlignmentWriter data in sequence table");
-            break;
-        }
-        KLoadProgressbar_Process(ctx->progress[ctx->pass - 1], 1, false);
-    }
-    return rc;
-}
-
-void EditAlignedQualities(const CommonWriterSettings* settings, uint8_t qual[], bool const hasMismatch[], unsigned readlen) /* generic */
-{
-    unsigned i;
-    
-    for (i = 0; i < readlen; ++i) {
-        uint8_t const q = hasMismatch[i] ? settings->alignedQualValue : qual[i];
-        
-        qual[i] = q;
-    }
-}
-
-void EditUnalignedQualities(uint8_t qual[], bool const hasMismatch[], unsigned readlen) /* generic */
-{
-    unsigned i;
-    
-    for (i = 0; i < readlen; ++i) {
-        uint8_t const q = (qual[i] & 0x7F) | (hasMismatch[i] ? 0x80 : 0);
-        
-        qual[i] = q;
-    }
-}
-
-bool platform_cmp(char const platform[], char const test[])
-{
-    unsigned i;
-
-    for (i = 0; ; ++i) {
-        int ch1 = test[i];
-        int ch2 = toupper(platform[i]);
-        
-        if (ch1 != ch2)
-            break;
-        if (ch1 == 0)
-            return true;
-    }
-    return false;
-}
-
-rc_t CheckLimitAndLogError(CommonWriterSettings* settings)
-{
-    ++settings->errCount;
-    if (settings->maxErrCount > 0 && settings->errCount > settings->maxErrCount) {
-        (void)PLOGERR(klogErr, (klogErr, RC(rcAlign, rcFile, rcReading, rcError, rcExcessive), 
-                                "Number of errors $(cnt) exceeds limit of $(max): Exiting", "cnt=%lu,max=%lu", 
-                                settings->errCount, settings->maxErrCount));
-        return RC(rcAlign, rcFile, rcReading, rcError, rcExcessive);
-    }
-    return 0;
-}
-
-void RecordNoMatch(const CommonWriterSettings* settings, char const readName[], char const refName[], uint32_t const refPos)
-{
-    if (settings->noMatchLog) {
-        static uint64_t lpos = 0;
-        char logbuf[256];
-        size_t len;
-        
-        if (string_printf(logbuf, sizeof(logbuf), &len, "%s\t%s\t%u\n", readName, refName, refPos) == 0) {
-            KFileWrite(settings->noMatchLog, lpos, logbuf, len, NULL);
-            lpos += len;
-        }
-    }
-}
-
-rc_t LogNoMatch(CommonWriterSettings* settings, char const readName[], char const refName[], unsigned rpos, unsigned matches)
-{
-    rc_t const rc = CheckLimitAndLogError(settings);
-    static unsigned count = 0;
-    
-    ++count;
-    if (rc) {
-        (void)PLOGMSG(klogInfo, (klogInfo, "This is the last warning; this class of warning occurred $(occurred) times",
-                                 "occurred=%u", count));
-        (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' contains too few ($(count)) matching bases to reference '$(ref)' at $(pos)",
-                                 "name=%s,ref=%s,pos=%u,count=%u", readName, refName, rpos, matches));
-    }
-    else if (settings->maxWarnCount_NoMatch == 0 || count < settings->maxWarnCount_NoMatch)
-        (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' contains too few ($(count)) matching bases to reference '$(ref)' at $(pos)",
-                                 "name=%s,ref=%s,pos=%u,count=%u", readName, refName, rpos, matches));
-    return rc;
-}
-
-rc_t LogDupConflict(CommonWriterSettings* settings, char const readName[])
-{
-    rc_t const rc = CheckLimitAndLogError(settings);
-    static unsigned count = 0;
-    
-    ++count;
-    if (rc) {
-        (void)PLOGMSG(klogInfo, (klogInfo, "This is the last warning; this class of warning occurred $(occurred) times",
-                                 "occurred=%u", count));
-        (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                 "Spot '$(name)' is both a duplicate and NOT a duplicate!",
-                                 "name=%s", readName));
-    }
-    else if (settings->maxWarnCount_DupConflict == 0 || count < settings->maxWarnCount_DupConflict)
-        (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                 "Spot '$(name)' is both a duplicate and NOT a duplicate!",
-                                 "name=%s", readName));
-    return rc;
-}
-
-void COPY_QUAL(uint8_t D[], uint8_t const S[], unsigned const L, bool const R)
-{
-    if (R) {
-        unsigned i;
-        unsigned j;
-        
-        for (i = 0, j = L - 1; i != L; ++i, --j)
-            D[i] = S[j];
-    }
-    else
-        memcpy(D, S, L);
-}
-
-void COPY_READ(INSDC_dna_text D[], INSDC_dna_text const S[], unsigned const L, bool const R)
-{
-    static INSDC_dna_text const compl[] = {
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 , '.',  0 , 
-        '0', '1', '2', '3',  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 , 'T', 'V', 'G', 'H',  0 ,  0 , 'C', 
-        'D',  0 ,  0 , 'M',  0 , 'K', 'N',  0 , 
-         0 ,  0 , 'Y', 'S', 'A', 'A', 'B', 'W', 
-         0 , 'R',  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 , 'T', 'V', 'G', 'H',  0 ,  0 , 'C', 
-        'D',  0 ,  0 , 'M',  0 , 'K', 'N',  0 , 
-         0 ,  0 , 'Y', 'S', 'A', 'A', 'B', 'W', 
-         0 , 'R',  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0
-    };
-    if (R) {
-        unsigned i;
-        unsigned j;
-        
-        for (i = 0, j = L - 1; i != L; ++i, --j)
-            D[i] = compl[((uint8_t const *)S)[j]];
-    }
-    else
-        memcpy(D, S, L);
-}
-
-/*--------------------------------------------------------------------------
- * ArchiveFile
- */
-static uint8_t GetMapQ(Alignment const *rec)
-{
-    uint8_t mapQ;
-    
-    AlignmentGetMapQuality(rec, &mapQ);
-    return mapQ;
-}
-
-INSDC_SRA_platform_id PlatformToId(const char* name)
-{
-    if (name != NULL)
-    {
-        switch (toupper(name[0])) {
-        case 'C':
-            if (platform_cmp(name, "COMPLETE GENOMICS") || platform_cmp(name, "COMPLETE_GENOMICS"))
-                return SRA_PLATFORM_COMPLETE_GENOMICS;
-            if (platform_cmp(name, "CAPILLARY"))
-                return SRA_PLATFORM_SANGER;
-            break;
-        case 'H':
-            if (platform_cmp(name, "HELICOS"))
-                return SRA_PLATFORM_HELICOS;
-            break;
-        case 'I':
-            if (platform_cmp(name, "ILLUMINA"))
-                return SRA_PLATFORM_ILLUMINA;
-            if (platform_cmp(name, "IONTORRENT"))
-                return SRA_PLATFORM_ION_TORRENT;
-            break;
-        case 'L':
-            if (platform_cmp(name, "LS454"))
-                return SRA_PLATFORM_454;
-            break;
-        case 'P':
-            if (platform_cmp(name, "PACBIO"))
-                return SRA_PLATFORM_PACBIO_SMRT;
-            break;
-        case 'S':
-            if (platform_cmp(name, "SOLID"))
-                return SRA_PLATFORM_ABSOLID;
-            break;
-        default:
-            break;
-        }
-    }
-    return SRA_PLATFORM_UNDEFINED;
-}
-
-INSDC_SRA_platform_id GetINSDCPlatform(ReferenceInfo const *ref, char const name[]) {
-    if (ref != NULL && name != NULL) {
-        ReadGroup rg;
-
-        rc_t rc = ReferenceInfoGetReadGroupByName(ref, name, &rg);
-        if (rc == 0 && rg.platform) 
-            return PlatformToId(rg.platform) ;
-    }
-    return SRA_PLATFORM_UNDEFINED;
-}
-
-void ParseSpotName(char const name[], size_t* namelen)
-{ /* remove trailing #... */
-    const char* hash = string_chr(name, *namelen, '#');
-    if (hash)
-        *namelen = hash - name;
-}
-
-
-static const int8_t toPhred[] =
-{
-              0, 1, 1, 2, 2, 3, 3,
-     4, 4, 5, 5, 6, 7, 8, 9,10,10,
-    11,12,13,14,15,16,17,18,19,20,
-    21,22,23,24,25,26,27,28,29,30,
-    31,32,33,34,35,36,37,38,39,40
-};
-
-static int8_t LogOddsToPhred ( int8_t logOdds )
-{ /* conversion table copied from interface/ncbi/seq.vschema */
-    if (logOdds < -6)
-        return 0;
-    if (logOdds > 40)
-        return 40;
-    return toPhred[logOdds + 6];
-}
-
-rc_t ArchiveFile(const struct ReaderFile *reader, 
-                 CommonWriterSettings* G,
-                 struct SpotAssembler *ctx, 
-                 struct Reference *ref, 
-                 struct SequenceWriter *seq, 
-                 struct AlignmentWriter *align,
-                 bool *had_alignments, 
-                 bool *had_sequences)
-{
-    KDataBuffer buf;
-    KDataBuffer fragBuf;
-    KDataBuffer cigBuf;
-    rc_t rc;
-    int32_t lastRefSeqId = -1;
-    size_t rsize;
-    uint64_t keyId = 0;
-    uint64_t reccount = 0;
-    SequenceRecord srec;
-    char spotGroup[512];
-    size_t namelen;
-    unsigned progress = 0;
-    unsigned warned = 0;
-    long     fcountBoth=0;
-    long     fcountOne=0;
-    int skipRefSeqID = -1;
-    uint64_t recordsProcessed = 0;
-    uint64_t filterFlagConflictRecords=0; /*** counts number of conflicts between flags 'duplicate' and 'lowQuality' ***/
-#define MAX_WARNINGS_FLAG_CONFLICT 10000 /*** maximum errors to report ***/
-
-    bool isColorSpace = false;
-    bool isNotColorSpace = G->noColorSpace;
-    char alignGroup[32];
-    size_t alignGroupLen;
-    
-    const ReferenceInfo* header = NULL;
-    
-    rc = ReaderFileGetReferenceInfo(reader, &header);
-    if (rc)
-        return rc;
-
-    if (ctx->key2id_max == 0) {
-        if (header != NULL) {
-            uint32_t rgcount;
-            unsigned rgi;
-            
-            ReferenceInfoGetReadGroupCount(header, &rgcount);
-            if (rgcount > (sizeof(ctx->key2id)/sizeof(ctx->key2id[0]) - 1))
-                ctx->key2id_max = 1;
-            else
-                ctx->key2id_max = sizeof(ctx->key2id)/sizeof(ctx->key2id[0]);
-            
-            for (rgi = 0; rgi != rgcount; ++rgi) {
-                ReadGroup rg;
-                
-                rc_t rc2 = ReferenceInfoGetReadGroup(header, rgi, &rg);
-                if (rc2 == 0 && rg.platform && platform_cmp(rg.platform, "CAPILLARY")) {
-                    G->hasTI = true;
-                    break;
-                }
-            }
-        }
-        else
-            ctx->key2id_max = 1;        
-    }
-    
-    memset(&srec, 0, sizeof(srec));
-    
-    rc = KDataBufferMake(&cigBuf, 32, 0);
-    if (rc)
-        return rc;
-    
-    rc = KDataBufferMake(&fragBuf, 8, FRAG_CHUNK_SIZE);
-    if (rc)
-        return rc;
-    
-    rc = KDataBufferMake(&buf, (sizeof(int32_t) + sizeof(bool) * 2 + sizeof(char) * 2 + sizeof(uint8_t))*8, 0);
-    if (rc)
-        return rc;
-    
-    if (rc == 0) {
-        (void)PLOGMSG(klogInfo, (klogInfo, "Loading '$(file)'", "file=%s", ReaderFileGetPathname(reader)));
-    }
-    
-    *had_alignments = false;
-    *had_sequences = false;
-    
-    while (rc == 0 && (rc = Quitting()) == 0) {
-        bool aligned;
-        AlignmentRecord data;
-        uint32_t readlen;
-        int64_t rpos=0;
-        char *seqDNA;
-        ReferenceSequence refSeq;
-        ctx_value_t *value;
-        bool wasInserted;
-        int32_t refSeqId=-1;
-        uint8_t *qual;
-        bool mated;
-        const char *name;
-        char cskey = 0;
-        bool originally_aligned;
-        bool isPrimary;
-        uint32_t opCount;
-        bool hasCG;
-        uint64_t ti = 0;
-        uint32_t csSeqLen = 0;
-        int readOrientation;
-        
-        const Record* record;
-        const Sequence* sequence = NULL;
-        const Alignment* alignment = NULL;
-        const CGData* cg = NULL;
-
-        rc = ReaderFileGetRecord(reader, &record);
-        if (rc || record == 0)
-            break;
-
-        {
-            const Rejected* rej;
-            rc = RecordGetRejected(record, &rej);
-            if (rc)
-            {
-                (void)LOGERR(klogErr, rc, "ArchiveFile: RecordGetSequence failed");
-                break;
-            }
-            if (rej != NULL)
-            {
-                const char* message;
-                uint64_t line;
-                uint64_t col;
-                bool fatal;
-                rc = RejectedGetError(rej, &message, &line, &col, &fatal);
-                if (rc)
-                {
-                    (void)LOGERR(klogErr, rc, "ArchiveFile: RejectedGetError failed");
-                    break;
-                }
-                (void)PLOGMSG(klogErr, (klogErr, "$(file):$(l):$(c):$(msg)", "file=%s,l=%lu,c=%lu,msg=%s", ReaderFileGetPathname(reader), line, col, message));
-                rc = CheckLimitAndLogError(G);
-                RejectedRelease(rej);
-                
-                if (fatal)
-                {
-                    rc = RC(rcExe, rcFile, rcParsing, rcFormat, rcUnsupported);
-                    break;
-                }
-                    
-                goto LOOP_END;
-            }
-        }
-        rc = RecordGetSequence(record, &sequence);
-        if (rc)
-        {
-            (void)LOGERR(klogErr, rc, "ArchiveFile: RecordGetSequence failed");
-            break;
-        }
-        rc = RecordGetAlignment(record, &alignment);
-        if (rc)
-        {
-            (void)LOGERR(klogErr, rc, "ArchiveFile: RecordGetAlignment failed");
-            break;
-        }
-        if (alignment != NULL)
-        {
-            rc = AlignmentGetCGData(alignment, &cg);      
-            if (rc)
-            {
-                (void)LOGERR(klogErr, rc, "ArchiveFile: AlignmentGetCG failed");
-                break;
-            }
-        }
-        
-        if ((unsigned)(ReaderFileGetProportionalPosition(reader) * 100.0) > progress) { 
-            unsigned new_value = ReaderFileGetProportionalPosition(reader) * 100.0;
-            KLoadProgressbar_Process(ctx->progress[0], new_value - progress, false);
-            progress = new_value;
-        }
-
-
-        /**************************************************************/
-        if (!G->noColorSpace) {
-            if (SequenceIsColorSpace(sequence)) {
-                if (isNotColorSpace) {
-                MIXED_BASE_AND_COLOR:
-                    rc = RC(rcApp, rcFile, rcReading, rcData, rcInconsistent);  
-                    (void)PLOGERR(klogErr, (klogErr, rc, "File '$(file)' contains base space and color space", "file=%s", ReaderFileGetPathname(reader)));
-                    goto LOOP_END;
-                }
-                ctx->isColorSpace = isColorSpace = true;
-            }
-            else if (isColorSpace)
-                goto MIXED_BASE_AND_COLOR;
-            else
-                isNotColorSpace = true;
-        }
-        hasCG = cg != NULL;
-        if (hasCG) {
-            AlignmentGetAlignOpCount(alignment, &opCount);
-            rc = KDataBufferResize(&cigBuf, opCount * 2 + 5);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to resize CIGAR buffer");
-                goto LOOP_END;
-            }
-            
-            rc = KDataBufferResize(&buf, readlen = 35);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to resize record buffer");
-                goto LOOP_END;
-            }
-            
-            AlignmentRecordInit(&data, buf.base, readlen, &seqDNA, G->expectUnsorted);
-            qual = (uint8_t *)&seqDNA[readlen];
-        }
-        else {
-            if (alignment != 0)
-            {
-                uint32_t const *tmp;
-                AlignmentGetBAMCigar(alignment, &tmp, &opCount);
-                rc = KDataBufferResize(&cigBuf, opCount);
-                if (rc) {
-                    (void)LOGERR(klogErr, rc, "Failed to resize CIGAR buffer");
-                    goto LOOP_END;
-                }
-                memcpy(cigBuf.base, tmp, opCount * sizeof(uint32_t));
-            }
-            
-            SequenceGetReadLength(sequence, &readlen);
-            if (isColorSpace) {
-                SequenceGetCSReadLength(sequence, &csSeqLen);
-                if (readlen != csSeqLen && readlen != 0) {
-                    rc = RC(rcAlign, rcRow, rcReading, rcData, rcInconsistent);
-                    (void)LOGERR(klogErr, rc, "SequenceWriter length and CS SequenceWriter length are not equal");
-                    goto LOOP_END;
-                }
-            }
-            else if (readlen == 0) {
-            }
-            rc = KDataBufferResize(&buf, readlen | csSeqLen);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to resize record buffer");
-                goto LOOP_END;
-            }
-            
-            AlignmentRecordInit(&data, buf.base, readlen | csSeqLen, &seqDNA, G->expectUnsorted);
-            qual = (uint8_t *)&seqDNA[readlen | csSeqLen];
-        }
-        SequenceGetRead(sequence, seqDNA);
-        if (G->useQUAL) {
-            int8_t const *squal;
-            uint8_t offset=0;
-            int qualType=0;            
-            
-            SequenceGetQuality(sequence, &squal, &offset, &qualType);
-            memcpy(qual, squal, readlen);
-        }
-        else {
-            int8_t const *squal;
-            uint8_t qoffset = 0;
-            int qualType=0;            
-            unsigned i;
-            
-            rc = SequenceGetQuality(sequence, &squal, &qoffset, &qualType);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "Spot '$(name)': length of original quality does not match sequence", "name=%s", name));
-                goto LOOP_END;
-            }
-            if (squal != NULL)
-            {  
-                switch (qualType)
-                {
-                case QT_LogOdds:
-                    for (i = 0; i != readlen; ++i)
-                        qual[i] = LogOddsToPhred(squal[i]);
-                    break;
-                    
-                case QT_Phred:
-                    if (qoffset) {
-                        for (i = 0; i != readlen; ++i)
-                            qual[i] = squal[i] - qoffset;
-                    }
-                    else
-                        memcpy(qual, squal, readlen);
-                    break;
-                    
-                default:
-                    memcpy(qual, squal, readlen);
-                    break;
-                }
-            }
-            else
-                memset(qual, 0, readlen);
-        }
-        if (hasCG) {
-            rc = CGDataGetSeqQual(cg, seqDNA, qual);
-            if (rc == 0)
-                rc = CGDataGetCigar(cg, cigBuf.base, cigBuf.elem_count, &opCount);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to read CG data");
-                goto LOOP_END;
-            }
-        }
-        if (G->hasTI) {
-            rc = SequenceGetTI(sequence, &ti);
-            if (rc)
-                ti = 0;
-            rc = 0;
-        }
-        data.data.align_group.buffer = alignGroup;
-        if (hasCG && CGDataGetAlignGroup(cg, alignGroup, sizeof(alignGroup), &alignGroupLen) == 0)
-            data.data.align_group.elements = alignGroupLen;
-        else
-            data.data.align_group.elements = 0;
-
-        if (alignment != 0)
-            AR_MAPQ(data) = GetMapQ(alignment);
-        SequenceGetSpotName(sequence, &name, &namelen);
-        if (G->parseSpotName) 
-            ParseSpotName(name, &namelen); 
-        {{
-            char const *rgname;
-            size_t rgnamelen;
-
-            SequenceGetSpotGroup(sequence, &rgname, &rgnamelen);
-            if (rgname)
-            {
-                string_copy(spotGroup, sizeof(spotGroup), rgname, rgnamelen);
-                spotGroup[rgnamelen] = '\0';
-            }
-            else
-                spotGroup[0] = '\0';
-        }}        
-        readOrientation = SequenceGetOrientationSelf(sequence);
-        AR_REF_ORIENT(data) = readOrientation == ReadOrientationReverse;
-        isPrimary = alignment == 0 || ! AlignmentIsSecondary(alignment);
-        if (G->noSecondary && !isPrimary)
-            goto LOOP_END;
-        originally_aligned = (alignment != 0);
-        aligned = originally_aligned && (AR_MAPQ(data) >= G->minMapQual);
-        
-        if (aligned && align == NULL) {
-            rc = RC(rcApp, rcFile, rcReading, rcData, rcInconsistent);
-            (void)PLOGERR(klogErr, (klogErr, rc, "File '$(file)' contains aligned records", "file=%s", ReaderFileGetPathname(reader)));
-            goto LOOP_END;
-        }
-        if (header != NULL)
-        {
-            while (aligned) {
-                AlignmentGetPosition(alignment, &rpos);
-                AlignmentGetRefSeqId(alignment, &refSeqId);
-                if (rpos >= 0 && refSeqId >= 0) {
-                    if (refSeqId == skipRefSeqID)
-                        goto LOOP_END;
-                    if (refSeqId == lastRefSeqId)
-                        break;
-                    rc = ReferenceInfoGetRefSeq(header, refSeqId, &refSeq);
-                    if (rc != 0) {
-                        rc = RC(rcApp, rcFile, rcReading, rcData, rcInconsistent);
-                        (void)PLOGERR(klogWarn, (klogWarn, rc, "File '$(file)': Spot '$(name)' refers to an unknown Reference number $(refSeqId)", "file=%s,refSeqId=%i,name=%s", ReaderFileGetPathname(reader), (int)refSeqId, name));
-                        rc = CheckLimitAndLogError(G);
-                        goto LOOP_END;
-                    }
-                    else {
-                        if (G->refFilter && strcmp(G->refFilter, refSeq.name) != 0) {
-                            (void)PLOGMSG(klogInfo, (klogInfo, "Skipping Reference '$(name)'", "name=%s", refSeq.name));
-                            skipRefSeqID = refSeqId;
-                            goto LOOP_END;
-                        }
-                        
-                        rc = ReferenceSetFile(ref, refSeq.name, refSeq.length, refSeq.checksum, G->maxSeqLen);
-                        if (rc == 0) {
-                            lastRefSeqId = refSeqId;
-                            break;
-                        }
-                        if (GetRCObject(rc) == rcConstraint && GetRCState(rc) == rcViolated) {
-                            int const level = G->limit2config ? klogWarn : klogErr;
-                            
-                            (void)PLOGMSG(level, (level, "Could not find a Reference to match { name: '$(name)', length: $(rlen) }", "name=%s,rlen=%u", refSeq.name, (unsigned)refSeq.length));
-                        }
-                        else if (!G->limit2config)
-                            (void)PLOGERR(klogErr, (klogErr, rc, "File '$(file)': Spot '$(sname)' refers to an unknown Reference '$(rname)'", "file=%s,rname=%s,sname=%s", ReaderFileGetPathname(reader), refSeq.name, name));
-                        if (G->limit2config)
-                            rc = 0;
-                        goto LOOP_END;
-                    }
-                }
-                else {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' was marked aligned, but reference id = $(id) and reference position = $(pos) are invalid", "name=%.*s,id=%i,pos=%i", namelen, name, refSeqId, rpos));
-                    if ((rc = CheckLimitAndLogError(G)) != 0) goto LOOP_END;
-                }
-
-                aligned = false;
-            }
-        }
-        if (!aligned && (G->refFilter != NULL || G->limit2config))
-            goto LOOP_END;
-        
-        rc = GetKeyID(G, ctx, &keyId, &wasInserted, spotGroup, name, namelen);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "KBTreeEntry: failed on key '$(key)'", "key=%.*s", namelen, name));
-            goto LOOP_END;
-        }
-        rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "MMArrayGet: failed on id '$(id)'", "id=%u", keyId));
-            goto LOOP_END;
-        }
-        
-        AR_KEY(data) = keyId;
-        
-        mated = false;
-        if (SequenceWasPaired(sequence)) {
-            if (SequenceIsFirst(sequence))
-                AR_READNO(data) |= 1;
-            if (SequenceIsSecond(sequence))
-                AR_READNO(data) |= 2;
-            switch (AR_READNO(data)) {
-            case 1:
-            case 2:
-                mated = true;
-                break;
-            case 0:
-                if ((warned & 1) == 0) {
-                    (void)LOGMSG(klogWarn, "Spots without fragment info have been encountered");
-                    warned |= 1;
-                }
-                break;
-            case 3:
-                if ((warned & 2) == 0) {
-                    (void)LOGMSG(klogWarn, "Spots with more than two fragments have been encountered");
-                    warned |= 2;
-                }
-                break;
-            }
-        }
-        if (!mated)
-            AR_READNO(data) = 1;
-        
-        if (wasInserted) {
-            memset(value, 0, sizeof(*value));
-            value->unmated = !mated;
-            value->pcr_dup = SequenceIsDuplicate(sequence);
-            value->platform = GetINSDCPlatform(header, spotGroup);
-            if (value->platform == SRA_PLATFORM_UNDEFINED)
-                value->platform = G->platform;
-        }
-        else {
-            if (!G->acceptBadDups && value->pcr_dup != SequenceIsDuplicate(sequence)) {
-                rc = LogDupConflict(G, name);
-                goto LOOP_END; /* TODO: is this correct? */
-            }
-            value->pcr_dup &= SequenceIsDuplicate(sequence);
-            if (mated && value->unmated) {
-                (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                         "Spot '$(name)', which was first seen without mate info, now has mate info",
-                                         "name=%s", name));
-                rc = CheckLimitAndLogError(G);
-                goto LOOP_END;
-            }
-            else if (!mated && !value->unmated) {
-                (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                         "Spot '$(name)', which was first seen with mate info, now has no mate info",
-                                         "name=%s", name));
-                rc = CheckLimitAndLogError(G);
-                goto LOOP_END;
-            }
-        }
-        
-        ++recordsProcessed;
-
-        if (isPrimary) {
-            switch (AR_READNO(data)) {
-            case 1:
-                if (CTX_VALUE_GET_P_ID(*value, 0) != 0)
-                {
-                    isPrimary = false;
-                    if (value->seqHash[0] != SeqHashKey(seqDNA, readlen))
-                    {
-                        (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                                 "Read 1 of spot '$(name)', possible sequence mismatch", "name=%s", name));
-                        rc = CheckLimitAndLogError(G);
-                        goto LOOP_END;
-                    }
-                }
-                else if (aligned && value->unaligned_1) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Read 1 of spot '$(name)', which was unmapped, is now being mapped at position $(pos) on reference '$(ref)'; this alignment will be considered as secondary", "name=%s,ref=%s,pos=%u", name, refSeq.name, rpos));
-                    isPrimary = false;
-                }
-                break;
-            case 2:
-                if (CTX_VALUE_GET_P_ID(*value, 1) != 0)
-                {
-                    isPrimary = false;
-                    if (value->seqHash[1] != SeqHashKey(seqDNA, readlen))
-                    {
-                        (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                                 "Read 2 of spot '$(name)', possible sequence mismatch", "name=%s", name));
-                        rc = CheckLimitAndLogError(G);
-                        goto LOOP_END;
-                    }
-                }
-                else if (aligned && value->unaligned_2) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Read 2 of spot '$(name)', which was unmapped, is now being mapped at position $(pos) on reference '$(ref)'; this alignment will be considered as secondary", "name=%s,ref=%s,pos=%u", name, refSeq.name, rpos));
-                    isPrimary = false;
-                }
-                break;
-            default:
-                break;
-            }
-        }
-        data.isPrimary = isPrimary;
-        if (aligned) {
-            uint32_t matches = 0;
-            
-            rc = ReferenceRead(ref, &data, rpos, cigBuf.base, opCount, seqDNA, readlen, &matches, G->acceptNoMatch, G->minMatchCount, G->maxSeqLen);
-            if (rc) {
-                aligned = false;
-                
-                if (   (GetRCState(rc) == rcViolated  && GetRCObject(rc) == rcConstraint)
-                    || (GetRCState(rc) == rcExcessive && GetRCObject(rc) == rcRange))
-                {
-                    RecordNoMatch(G, name, refSeq.name, rpos);
-                }
-                if (GetRCState(rc) == rcViolated && GetRCObject(rc) == rcConstraint) {
-                    rc = LogNoMatch(G, name, refSeq.name, (unsigned)rpos, (unsigned)matches);
-                }
-                else if (GetRCObject(rc) == rcData && GetRCState(rc) == rcInvalid) {
-                    (void)PLOGERR(klogWarn, (klogWarn, rc, "Spot '$(name)': bad alignment to reference '$(ref)' at $(pos)", "name=%s,ref=%s,pos=%u", name, refSeq.name, rpos));
-                    CheckLimitAndLogError(G);
-                }
-                else if (GetRCObject(rc) == rcData) {
-                    (void)PLOGERR(klogWarn, (klogWarn, rc, "Spot '$(name)': bad alignment to reference '$(ref)' at $(pos)", "name=%s,ref=%s,pos=%u", name, refSeq.name, rpos));
-                    rc = CheckLimitAndLogError(G);
-                }
-                else {
-                    (void)PLOGERR(klogWarn, (klogWarn, rc, "Spot '$(name)': error reading reference '$(ref)' at $(pos)", "name=%s,ref=%s,pos=%u", name, refSeq.name, rpos));
-                    rc = CheckLimitAndLogError(G);
-                }
-                if (rc) goto LOOP_END;
-            }
-        }
-        if (isColorSpace) {
-            /* must be after ReferenceRead */
-            SequenceGetCSKey(sequence, &cskey);
-            SequenceGetCSRead(sequence, seqDNA);
-            if (!aligned && !G->useQUAL) {
-                int8_t const *squal;
-                uint8_t qoffset = 0;
-                int qualType=0;                
-                
-                rc = SequenceGetCSQuality(sequence, &squal, &qoffset, &qualType);
-                if (rc) {
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Spot '$(name)': length of colorspace quality does not match sequence", "name=%s", name));
-                    goto LOOP_END;
-                }
-                if (qoffset) {
-                    unsigned i;
-                    
-                    for (i = 0; i < csSeqLen; ++i)
-                        qual[i] = squal[i] - qoffset;
-                }
-                else if (squal != NULL)
-                    memcpy(qual, squal, csSeqLen);
-                readlen = csSeqLen;
-            }
-        }
-        
-        if (aligned) {
-            if (G->editAlignedQual ) EditAlignedQualities  (G, qual, AR_HAS_MISMATCH(data), readlen);
-            if (G->keepMismatchQual) EditUnalignedQualities(qual, AR_HAS_MISMATCH(data), readlen);
-        }
-        else if (isPrimary) {
-            switch (AR_READNO(data)) {
-            case 1:
-                value->unaligned_1 = 1;
-                break;
-            case 2:
-                value->unaligned_2 = 1;
-                break;
-            default:
-                break;
-            }
-        }
-        if (isPrimary) {
-            switch (AR_READNO(data)) {
-            case 1:
-                if (CTX_VALUE_GET_P_ID(*value, 0) == 0 && aligned) {
-                    data.alignId = ++ctx->primaryId;
-                    CTX_VALUE_SET_P_ID(*value, 0, data.alignId);
-                }
-                break;
-            case 2:
-                if (CTX_VALUE_GET_P_ID(*value, 1) == 0 && aligned) {
-                    data.alignId = ++ctx->primaryId;
-                    CTX_VALUE_SET_P_ID(*value, 1, data.alignId);
-                }
-                break;
-            default:
-                break;
-            }
-        }
-        if (mated) {
-            if (isPrimary || !originally_aligned) {
-                if (value->spotId != 0) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' has already been assigned a spot id", "name=%.*s", namelen, name));
-                }
-                else if (!value->has_a_read) {
-                    /* new mated fragment - do spot assembly */
-                    unsigned sz;
-                    uint64_t    fragmentId;
-                    FragmentInfo fi;
-                    KMemBank *frags;
-                    int32_t mate_refSeqId = -1;
-                    int64_t pnext = 0;
-                    
-                    value->seqHash[AR_READNO(data) - 1] = SeqHashKey(seqDNA, readlen);
-                    
-                    memset(&fi, 0, sizeof(fi));
-                    fi.aligned = aligned;
-                    fi.ti = ti;
-                    fi.orientation = readOrientation;
-                    fi.otherReadNo = AR_READNO(data);
-                    fi.sglen   = strlen(spotGroup);
-                    fi.readlen = readlen;
-                    fi.cskey = cskey;
-                    fi.is_bad = SequenceIsLowQuality(sequence);
-                    sz = sizeof(fi) + 2*fi.readlen + fi.sglen;
-                    if (align && aligned) {
-                        AlignmentGetMateRefSeqId(alignment, &mate_refSeqId);
-                        AlignmentGetMatePosition(alignment, &pnext);
-                    }
-                    if(align && aligned && mate_refSeqId == refSeqId && pnext > 0 && pnext!=rpos /*** weird case in some bams**/){ 
-                        frags = ctx->fragsBoth;
-                        rc = KMemBankAlloc(frags, &fragmentId, sz, 0);
-                        value->fragmentId = fragmentId*2;
-                        fcountBoth++;
-                    } else {
-                        frags = ctx->fragsOne;
-                        rc = KMemBankAlloc(frags, &fragmentId, sz, 0);
-                        value->fragmentId = fragmentId*2+1;
-                        fcountOne++;
-                    }
-                    if (rc) {
-                        (void)LOGERR(klogErr, rc, "KMemBankAlloc failed");
-                        goto LOOP_END;
-                    }
-                    /*printf("IN:%10d\tcnt2=%ld\tcnt1=%ld\n",value->fragmentId,fcountBoth,fcountOne);*/
-                    
-                    rc = KDataBufferResize(&fragBuf, sz);
-                    if (rc) {
-                        (void)LOGERR(klogErr, rc, "Failed to resize fragment buffer");
-                        goto LOOP_END;
-                    }
-                    {{
-                        uint8_t *dst = (uint8_t*) fragBuf.base;
-                        memcpy(dst,&fi,sizeof(fi));
-                        dst += sizeof(fi);
-                        COPY_READ((char *)dst, seqDNA, fi.readlen, (isColorSpace && !aligned) ? 0 : fi.orientation == ReadOrientationReverse);
-                        dst += fi.readlen;
-                        COPY_QUAL(dst, qual, fi.readlen, (isColorSpace && !aligned) ? 0 : fi.orientation == ReadOrientationReverse);
-                        dst += fi.readlen;
-                        memcpy(dst,spotGroup,fi.sglen);
-                    }}
-                    rc = KMemBankWrite(frags, fragmentId, 0, fragBuf.base, sz, &rsize);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankWrite failed writing fragment $(id)", "id=%u", fragmentId));
-                        goto LOOP_END;
-                    }
-                    value->has_a_read = 1;
-                }
-                else if (value->fragmentId != 0 ) {
-                    /* might be second fragment */
-                    uint64_t sz;
-                    FragmentInfo *fip;
-                    KMemBank *frags;
-                    
-                    if(value->fragmentId & 1) frags = ctx->fragsOne;
-                    else               frags = ctx->fragsBoth; 
-                    
-                    rc=KMemBankSize(frags, value->fragmentId>>1, &sz);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankSize failed on fragment $(id)", "id=%u", value->fragmentId>>1));
-                        goto LOOP_END;
-                    }
-                    rc=KDataBufferResize(&fragBuf, (size_t)sz);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "Failed to resize fragment buffer", ""));
-                        goto LOOP_END;
-                    }
-                    rc=KMemBankRead(frags, value->fragmentId>>1, 0, fragBuf.base, sz, &rsize);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankRead failed on fragment $(id)", "id=%u", value->fragmentId>>1));
-                        goto LOOP_END;
-                    }
-                    
-                    assert( rsize == sz );
-                    fip = (FragmentInfo *) fragBuf.base;
-                    if(AR_READNO(data) != fip->otherReadNo) {
-                        /* mate found */
-                        unsigned readLen[2];
-                        unsigned read1 = 0;
-                        unsigned read2 = 1;
-                        uint8_t  *src  = (uint8_t*) fip + sizeof(*fip);
-                        
-                        value->seqHash[AR_READNO(data) - 1] = SeqHashKey(seqDNA, readlen);
-                        
-                        if (AR_READNO(data) < fip->otherReadNo) {
-                            read1 = 1;
-                            read2 = 0;
-                        }
-                        readLen[read1] = fip->readlen;
-                        readLen[read2] = readlen;
-                        rc = SequenceRecordInit(&srec, 2, readLen);
-                        if (rc) {
-                            (void)PLOGERR(klogErr, (klogErr, rc, "Failed resizing sequence record buffer", ""));
-                            goto LOOP_END;
-                        }
-                        srec.ti[read1] = fip->ti;
-                        srec.aligned[read1] = fip->aligned;
-                        srec.is_bad[read1] = fip->is_bad;
-                        srec.orientation[read1] = fip->orientation;
-                        srec.cskey[read1] = fip->cskey;
-                        memcpy(srec.seq + srec.readStart[read1], src, fip->readlen);
-                        src += fip->readlen;
-                        memcpy(srec.qual + srec.readStart[read1], src, fip->readlen);
-                        src += fip->readlen;
-                        
-                        srec.orientation[read2] = readOrientation;
-                        COPY_READ(srec.seq + srec.readStart[read2], 
-                                  seqDNA, 
-                                  srec.readLen[read2], 
-                                  (isColorSpace && !aligned) ? 0 : srec.orientation[read2] == ReadOrientationReverse);
-                        COPY_QUAL(srec.qual + srec.readStart[read2], 
-                                  qual, 
-                                  srec.readLen[read2],  
-                                  (isColorSpace && !aligned) ? 0 : srec.orientation[read2] == ReadOrientationReverse);
-
-                        srec.keyId = keyId;
-                        srec.is_bad[read2] = SequenceIsLowQuality(sequence);
-                        srec.aligned[read2] = aligned;
-                        srec.cskey[read2] = cskey;
-                        srec.ti[read2] = ti;
-                        
-                        srec.spotGroup = spotGroup;
-                        srec.spotGroupLen = strlen(spotGroup);
-                        if (value->pcr_dup && (srec.is_bad[0] || srec.is_bad[1])) {
-                            filterFlagConflictRecords++;
-                            if(filterFlagConflictRecords < MAX_WARNINGS_FLAG_CONFLICT){
-                                (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)': both 'duplicate' and 'lowQuality' flag bits set, only 'duplicate' will be saved", "name=%s", name));
-                            } else if(filterFlagConflictRecords == MAX_WARNINGS_FLAG_CONFLICT){
-                                (void)PLOGMSG(klogWarn, (klogWarn, "Last reported warning: Spot '$(name)': both 'duplicate' and 'lowQuality' flag bits set, only 'duplicate' will be saved", "name=%s", name));
-                            }
-                        }
-                        rc = SequenceWriteRecord(seq, &srec, isColorSpace, value->pcr_dup, value->platform, 
-                                                G->keepMismatchQual, G->no_real_output, G->hasTI, G->QualQuantizer);
-                        if (rc) {
-                            (void)LOGERR(klogErr, rc, "SequenceWriteRecord failed");
-                            goto LOOP_END;
-                        }
-                        CTX_VALUE_SET_S_ID(*value, ++ctx->spotId);
-                        if(value->fragmentId & 1){
-                            fcountOne--;
-                        } else {
-                            fcountBoth--;
-                        }
-                        /*  printf("OUT:%9d\tcnt2=%ld\tcnt1=%ld\n",value->fragmentId,fcountBoth,fcountOne);*/
-                        rc = KMemBankFree(frags, value->fragmentId>>1);
-                        if (rc) {
-                            (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankFree failed on fragment $(id)", "id=%u", value->fragmentId>>1));
-                            goto LOOP_END;
-                        }
-                        value->fragmentId = 0;
-                    }
-                }
-            }
-            if (!isPrimary && aligned) {
-                int32_t bam_mrid;
-                int64_t mpos;
-                int64_t mrid;
-                int64_t tlen;
-                
-                AlignmentGetMatePosition(alignment, &mpos);
-                AlignmentGetMateRefSeqId(alignment, &bam_mrid);
-                AlignmentGetInsertSize(alignment, &tlen);
-                
-                if (mpos >= 0 && bam_mrid >= 0 && tlen != 0 && header != NULL) {
-                    ReferenceSequence mref;
-                    if (ReferenceInfoGetRefSeq(header, bam_mrid, &mref) == 0) {
-                        rc_t rc_temp = ReferenceGet1stRow(ref, &mrid, mref.name);
-                        if (rc_temp == 0) {
-                            data.mate_ref_pos = mpos;
-                            data.template_len = tlen;
-                            data.mate_ref_orientation = (SequenceGetOrientationMate(sequence) == ReadOrientationReverse);
-                        }
-                        else {
-                            (void)PLOGERR(klogWarn, (klogWarn, rc_temp, "Failed to get refID for $(name)", "name=%s", mref.name));
-                            mrid = 0;
-                        }
-                        data.mate_ref_id = mrid;
-                    }
-                }
-            }
-        }
-        else if (wasInserted & (isPrimary || !originally_aligned)) {
-            /* new unmated fragment - no spot assembly */
-            unsigned readLen[1];
-
-            value->seqHash[0] = SeqHashKey(seqDNA, readlen);
-            
-            readLen[0] = readlen;
-            rc = SequenceRecordInit(&srec, 1, readLen);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "Failed resizing sequence record buffer", ""));
-                goto LOOP_END;
-            }
-            srec.ti[0] = ti;
-            srec.aligned[0] = aligned;
-            srec.is_bad[0] = SequenceIsLowQuality(sequence);
-            srec.orientation[0] = readOrientation;
-            srec.cskey[0] = cskey;
-            COPY_READ(srec.seq  + srec.readStart[0], seqDNA, readlen, (isColorSpace && !aligned) ? 0 : srec.orientation[0] == ReadOrientationReverse);
-            COPY_QUAL(srec.qual + srec.readStart[0], qual, readlen, (isColorSpace && !aligned) ? 0 : srec.orientation[0] == ReadOrientationReverse);
-         
-            srec.keyId = keyId;
-            
-            srec.spotGroup = spotGroup;
-            srec.spotGroupLen = strlen(spotGroup);
-            if (value->pcr_dup && srec.is_bad[0]) {
-                filterFlagConflictRecords++;
-                if (filterFlagConflictRecords < MAX_WARNINGS_FLAG_CONFLICT) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)': both 'duplicate' and 'lowQuality' flag bits set, only 'duplicate' will be saved", "name=%s", name));
-                }
-                else if (filterFlagConflictRecords == MAX_WARNINGS_FLAG_CONFLICT) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Last reported warning: Spot '$(name)': both 'duplicate' and 'lowQuality' flag bits set, only 'duplicate' will be saved", "name=%s", name));
-        }
-            }
-            rc = SequenceWriteRecord(seq, &srec, isColorSpace, value->pcr_dup, value->platform, 
-                                                G->keepMismatchQual, G->no_real_output, G->hasTI, G->QualQuantizer);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "SequenceWriteRecord failed", ""));
-                goto LOOP_END;
-            }
-            CTX_VALUE_SET_S_ID(*value, ++ctx->spotId);
-            value->fragmentId = 0;
-        }
-        
-        if (aligned) {
-            if (value->alignmentCount[AR_READNO(data) - 1] < 254)
-                ++value->alignmentCount[AR_READNO(data) - 1];
-            ++ctx->alignCount;
-            
-            assert(keyId >> 32 < ctx->key2id_count);
-            assert((uint32_t)keyId < ctx->idCount[keyId >> 32]);
-            
-            rc = AlignmentWriteRecord(align, &data, G->expectUnsorted);
-            if (rc == 0) {
-                if (!isPrimary)
-                    data.alignId = ++ctx->secondId;
-                
-                rc = ReferenceAddAlignId(ref, data.alignId, isPrimary);
-                if (rc) {
-                    (void)PLOGERR(klogErr, (klogErr, rc, "ReferenceAddAlignId failed", ""));
-                }
-                else {
-                    *had_alignments = true;
-                }
-            }
-            else {
-                (void)PLOGERR(klogErr, (klogErr, rc, "AlignmentWriteRecord failed", ""));
-            }
-        }
-        /**************************************************************/
-        
-    LOOP_END:
-        RecordRelease(record);
-        if (sequence != NULL)
-            SequenceRelease(sequence);
-        if (alignment != NULL)
-            AlignmentRelease(alignment);
-        if (cg != NULL)
-            CGDataRelease(cg);
-        
-        ++reccount;
-        if (G->maxAlignCount > 0 && reccount >= G->maxAlignCount)
-            break;
-        if (rc == 0)
-            *had_sequences = true;
-    }
-    
-    if (header != NULL)
-        ReferenceInfoRelease(header);
-    
-    if (filterFlagConflictRecords > 0) {
-        (void)PLOGMSG(klogWarn, (klogWarn, "$(cnt1) out of $(cnt2) records contained warning : both 'duplicate' and 'lowQuality' flag bits set, only 'duplicate' will be saved", "cnt1=%lu,cnt2=%lu", filterFlagConflictRecords,recordsProcessed));
-    }
-    if (rc == 0 && recordsProcessed == 0) {
-        (void)LOGMSG(klogWarn, (G->limit2config || G->refFilter != NULL) ? 
-                     "All records from the file were filtered out" :
-                     "The file contained no records that were processed.");
-        rc = RC(rcAlign, rcFile, rcReading, rcData, rcEmpty);
-    }
-    if (rc == 0 && reccount > 0) {
-        double percentage = ((double)G->errCount) / reccount; 
-        double allowed = G->maxErrPct/ 100.0;
-        if (percentage > allowed) {
-            rc = RC(rcExe, rcTable, rcClosing, rcData, rcInvalid);
-            (void)PLOGERR(klogErr, 
-                            (klogErr, rc,
-                             "Too many bad records: "
-                                 "records: $(records), bad records: $(bad_records), "
-                                 "bad records percentage: $(percentage), "
-                                 "allowed percentage: $(allowed)",
-                             "records=%lu,bad_records=%lu,percentage=%.2f,allowed=%.2f",
-                             reccount, G->errCount, percentage, allowed));
-        }
-    }
-
-    KDataBufferWhack(&buf);
-    KDataBufferWhack(&fragBuf);
-    KDataBufferWhack(&srec.storage);
-    KDataBufferWhack(&cigBuf);
-    return rc;
-}
-
-/*--------------------------------------------------------------------------
- * CommonWriter
- */
- 
-rc_t CommonWriterInit(CommonWriter* self, struct VDBManager *mgr, struct VDatabase *db, const CommonWriterSettings* G)
-{
-    rc_t rc; 
-    assert(self);
-    assert(mgr);
-    assert(db);
-    
-    memset(self, 0, sizeof(*self));
-    if (G)
-        self->settings = *G;
-
-    self->ref = malloc(sizeof(*self->ref));
-    if (self->ref == 0)
-        return RC(rcAlign, rcArc, rcAllocating, rcMemory, rcExhausted);
-        
-    rc = ReferenceInit(self->ref, 
-                       mgr, 
-                       db, 
-                       self->settings.expectUnsorted, 
-                       self->settings.acceptHardClip, 
-                       self->settings.refXRefPath, 
-                       self->settings.inpath, 
-                       self->settings.maxSeqLen, 
-                       self->settings.refFiles);
-    if (rc == 0)
-    {
-        self->seq = malloc(sizeof(*self->seq));
-        if (self->seq == 0)
-        {
-            ReferenceWhack(self->ref, false, 0);
-            free(self->ref);
-            return RC(rcAlign, rcArc, rcAllocating, rcMemory, rcExhausted);
-        }
-        SequenceWriterInit(self->seq, db);
-        
-        self->align = AlignmentMake(db);
-        if (self->align == 0)
-        {
-            ReferenceWhack(self->ref, false, 0);
-            free(self->ref);
-            
-            SequenceWhack(self->seq, false);
-            free(self->seq);
-            
-            return RC(rcAlign, rcArc, rcAllocating, rcMemory, rcExhausted);
-        }
-        
-        rc = SetupContext(&self->settings, &self->ctx);
-        if (rc != 0)
-        {
-            ReferenceWhack(self->ref, false, 0);
-            free(self->ref);
-            
-            SequenceWhack(self->seq, false);
-            free(self->seq);
-            
-            AlignmentWhack(self->align, false);
-        }
-    }
-    if (self->settings.tmpfs == NULL)
-        self->settings.tmpfs = "/tmp";
-
-    self->commit = true;
-    
-    return rc;
-}
-
-rc_t CommonWriterArchive(CommonWriter* self, const struct ReaderFile* reader)
-{
-    rc_t rc;
-    assert(self);
-    rc = ArchiveFile(reader, 
-                       &self->settings,
-                       &self->ctx, 
-                       self->ref,
-                       self->seq,
-                       self->align,
-                       &self->had_alignments, 
-                       &self->had_sequences);
-    if (rc)
-        self->commit = false;
-    
-    self->err_count += self->settings.errCount;
-    return rc;
-}
-
-rc_t CommonWriterComplete(CommonWriter* self, bool quitting)
-{
-    rc_t rc=0;
-    /*** No longer need memory for key2id ***/
-    size_t i;
-    for (i = 0; i != self->ctx.key2id_count; ++i) {
-        KBTreeDropBacking(self->ctx.key2id[i]);
-        KBTreeRelease(self->ctx.key2id[i]);
-        self->ctx.key2id[i] = NULL;
-    }
-    free(self->ctx.key2id_names);
-    self->ctx.key2id_names = NULL;
-    /*******************/
-
-    if (self->had_sequences) {
-        if (!quitting) {
-            (void)LOGMSG(klogInfo, "Writing unpaired sequences");
-            rc = WriteSoloFragments(&self->settings, &self->ctx, self->seq);
-            ContextReleaseMemBank(&self->ctx);
-            if (rc == 0) {
-                rc = SequenceDoneWriting(self->seq);
-                if (rc == 0) {
-                    (void)LOGMSG(klogInfo, "Updating sequence alignment info");
-                    rc = SequenceUpdateAlignInfo(&self->ctx, self->seq);
-                }
-            }
-        }
-        else
-            ContextReleaseMemBank(&self->ctx);
-    }
-    
-    if (self->had_alignments && !quitting) {
-        (void)LOGMSG(klogInfo, "Writing alignment spot ids");
-        rc = AlignmentUpdateSpotInfo(&self->ctx, self->align);
-    }
-
-    return rc;
-}
-
-rc_t CommonWriterWhack(CommonWriter* self)
-{
-    rc_t rc = 0;
-    assert(self);
-    
-    ContextRelease(&self->ctx);
-    
-    if (self->align)
-        rc = AlignmentWhack(self->align, self->commit);
-        
-    if (self->seq)
-    {
-        SequenceWhack(self->seq, self->commit);
-        free(self->seq);
-    }
-
-    if (self->ref)
-    {
-        rc_t rc2 = ReferenceWhack(self->ref, self->commit, self->settings.maxSeqLen);
-        if (rc == 0)
-            rc = rc2;
-        free(self->ref);
-    }
-
-    return rc;
-}
-
diff --git a/libs/loader/mmarray.c b/libs/loader/mmarray.c
deleted file mode 100644
index 9a62fd2..0000000
--- a/libs/loader/mmarray.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <loader/mmarray.h>
-
-#include <sysalloc.h>
-#include <stdlib.h>
-
-#include <klib/rc.h>
-
-#include <kfs/mmap.h>
-#include <kfs/file.h>
-
-#define MMA_NUM_CHUNKS_BITS (24u)
-#define MMA_NUM_SUBCHUNKS_BITS ((32u)-(MMA_NUM_CHUNKS_BITS))
-#define MMA_SUBCHUNK_SIZE (1u << MMA_NUM_CHUNKS_BITS)
-#define MMA_SUBCHUNK_COUNT (1u << MMA_NUM_SUBCHUNKS_BITS)
-
-typedef struct MMArray {
-    KFile *fp;
-    size_t elemSize;
-    uint64_t fsize;
-    struct mma_map_s {
-        struct mma_submap_s {
-            uint8_t *base;
-            KMMap *mmap;
-        } submap[MMA_SUBCHUNK_COUNT];
-    } map[NUM_ID_SPACES];
-} MMArray;
-
-rc_t MMArrayMake(struct MMArray **rslt, KFile *fp, uint32_t elemSize)
-{
-    MMArray *const self = calloc(1, sizeof(*self));
-
-    if (self == NULL)
-        return RC(rcExe, rcMemMap, rcConstructing, rcMemory, rcExhausted);
-    self->elemSize = (elemSize + 3) & ~(3u); /** align to 4 byte **/
-    self->fp = fp;
-    KFileAddRef(fp);
-    *rslt = self;
-    return 0;
-}
-
-#define PERF 0
-
-rc_t MMArrayGet(struct MMArray *const self, void **const value, uint64_t const element)
-{
-    unsigned const bin_no = element >> 32;
-    unsigned const subbin = ((uint32_t)element) >> MMA_NUM_CHUNKS_BITS;
-    unsigned const in_bin = (uint32_t)element & (MMA_SUBCHUNK_SIZE - 1);
-
-    if (bin_no >= sizeof(self->map)/sizeof(self->map[0]))
-        return RC(rcExe, rcMemMap, rcConstructing, rcId, rcExcessive);
-    
-    if (self->map[bin_no].submap[subbin].base == NULL) {
-        size_t const chunk = MMA_SUBCHUNK_SIZE * self->elemSize;
-        size_t const fsize = self->fsize + chunk;
-        rc_t rc = KFileSetSize(self->fp, fsize);
-        
-        if (rc == 0) {
-            KMMap *mmap;
-            
-            self->fsize = fsize;
-            rc = KMMapMakeRgnUpdate(&mmap, self->fp, self->fsize, chunk);
-            if (rc == 0) {
-                void *base;
-                
-                rc = KMMapAddrUpdate(mmap, &base);
-                if (rc == 0) {
-#if PERF
-                    static unsigned mapcount = 0;
-
-                    (void)PLOGMSG(klogInfo, (klogInfo, "Number of mmaps: $(cnt)", "cnt=%u", ++mapcount));
-#endif
-                    self->map[bin_no].submap[subbin].mmap = mmap;
-                    self->map[bin_no].submap[subbin].base = base;
-
-                    goto GET_MAP;
-                }
-                KMMapRelease(mmap);
-            }
-        }
-        return rc;
-    }
-GET_MAP:
-    *value = &self->map[bin_no].submap[subbin].base[(size_t)in_bin * self->elemSize];
-    return 0;
-}
-
-void MMArrayWhack(struct MMArray *self)
-{
-    unsigned i;
-
-    for (i = 0; i != sizeof(self->map)/sizeof(self->map[0]); ++i) {
-        unsigned j;
-        
-        for (j = 0; j != sizeof(self->map[0].submap)/sizeof(self->map[0].submap[0]); ++j) {
-            if (self->map[i].submap[j].mmap)
-                KMMapRelease(self->map[i].submap[j].mmap);
-            self->map[i].submap[j].mmap = NULL;
-            self->map[i].submap[j].base = NULL;
-        }
-    }
-    KFileRelease(self->fp);
-    free(self);
-}
-
-
diff --git a/libs/loader/reference-writer.c b/libs/loader/reference-writer.c
deleted file mode 100644
index 4fdfbc2..0000000
--- a/libs/loader/reference-writer.c
+++ /dev/null
@@ -1,459 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <kfs/file.h>
-
-#include <vdb/schema.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-
-#include <align/writer-refseq.h>
-
-#include <loader/reference-writer.h>
-
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <assert.h>
-#include <ctype.h>
-
-#define SORTED_OPEN_TABLE_LIMIT (2)
-#define SORTED_CACHE_SIZE ((2 * 1024 * 1024)/(SORTED_OPEN_TABLE_LIMIT))
-
-#ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
-#define UNSORTED_OPEN_TABLE_LIMIT (8)
-#define UNSORTED_CACHE_SIZE ((1024 * 1024 * 1024)/(UNSORTED_OPEN_TABLE_LIMIT))
-#else
-#define UNSORTED_OPEN_TABLE_LIMIT (64)
-#define UNSORTED_CACHE_SIZE (350 * 1024 * 1024)
-#endif
-
-#if _DEBUGGING
-#define DUMP_CONFIG 1
-#endif
-
-struct overlap_s {
-    uint32_t min; /* minimum start pos of any alignment that ends in this chunk */
-    uint32_t max; /* maximum end pos of any alignment that starts before this chunk and ends in this chunk */
-};
-
-extern void ReferenceMgr_DumpConfig(ReferenceMgr const *const self);
-
-rc_t ReferenceInit(Reference *self, 
-                   const VDBManager *mgr, 
-                   VDatabase *db, 
-                   bool expectUnsorted,
-                   bool acceptHardClip,
-                   char const *refXRefPath,
-                   char const *inpath,
-                   uint32_t maxSeqLen,
-                   char const** refFiles
-                   )
-{
-    rc_t rc;
-    size_t const cache = expectUnsorted ? UNSORTED_CACHE_SIZE : SORTED_CACHE_SIZE;
-    unsigned const open_count = expectUnsorted ? UNSORTED_OPEN_TABLE_LIMIT : SORTED_OPEN_TABLE_LIMIT;
-    
-    memset(self, 0, sizeof(*self));
-    
-    self->coverage.elem_bits = self->mismatches.elem_bits = self->indels.elem_bits = 32;
-    self->pri_align.elem_bits = self->sec_align.elem_bits = 64;
-    self->pri_overlap.elem_bits = self->sec_overlap.elem_bits = sizeof(struct overlap_s) * 8;
-    
-    self->acceptHardClip = acceptHardClip;
-    
-    rc = ReferenceMgr_Make(&self->mgr, db, mgr, 
-                           ewrefmgr_co_Coverage,
-                           refXRefPath, inpath,
-                           maxSeqLen, cache, open_count);
-    if (rc == 0 && refFiles != NULL) {
-        unsigned i;
-        
-        for (i = 0; refFiles[i]; ++i) {
-            rc = ReferenceMgr_FastaPath(self->mgr, refFiles[i]);
-            if (rc) {
-                (void)PLOGERR(klogWarn, (klogWarn, rc, "fasta file '$(file)'", "file=%s", refFiles[i]));
-                break;
-            }
-        }
-#if DUMP_CONFIG
-        if (rc == 0) {
-            ReferenceMgr_DumpConfig(self->mgr);
-        }
-#endif
-    }
-    return rc;
-}
-
-static
-void Unsorted(Reference *self) {
-    (void)LOGMSG(klogWarn, "Alignments are unsorted");
-    self->out_of_order = true;
-    ReferenceMgr_SetCache(self->mgr, UNSORTED_CACHE_SIZE, UNSORTED_OPEN_TABLE_LIMIT);
-    KDataBufferWhack(&self->sec_align);
-    KDataBufferWhack(&self->pri_align);
-    KDataBufferWhack(&self->mismatches);
-    KDataBufferWhack(&self->indels);
-    KDataBufferWhack(&self->coverage);
-    KDataBufferWhack(&self->pri_overlap);
-    KDataBufferWhack(&self->sec_overlap);
-}
-
-#define BAIL_ON_FAIL(STMT) do { rc_t const rc__ = (STMT); if (rc__) return rc__; } while(0)
-
-static rc_t FlushBuffers(Reference *self, uint64_t upto, bool full, bool final, uint32_t maxSeqLen)
-{
-    if (!self->out_of_order && upto > 0) {
-        size_t offset = 0;
-        unsigned *const miss = (unsigned *)self->mismatches.base;
-        unsigned *const indel = (unsigned *)self->indels.base;
-        unsigned *const cov = (unsigned *)self->coverage.base;
-        struct overlap_s *const pri_overlap = (struct overlap_s *)self->pri_overlap.base;
-        struct overlap_s *const sec_overlap = (struct overlap_s *)self->sec_overlap.base;
-        unsigned chunk = 0;
-        
-        while ((self->curPos + offset + (full ? 0 : maxSeqLen)) <= upto) {
-            ReferenceSeqCoverage data;
-            uint64_t const curPos = self->curPos + offset;
-            unsigned const n = self->endPos > (curPos + maxSeqLen) ?
-                               maxSeqLen : (self->endPos - curPos);
-            unsigned const m = curPos + n > upto ? upto - curPos : n;
-            unsigned i;
-            unsigned hi;
-            unsigned lo;
-            
-            if (n == 0) break;
-            
-            memset(&data, 0, sizeof(data));
-            
-            data.ids[ewrefcov_primary_table].elements = self->pri_align.elem_count;
-            data.ids[ewrefcov_primary_table].buffer = self->pri_align.base;
-            data.overlap_ref_pos[ewrefcov_primary_table] = pri_overlap[chunk].min;
-            data.overlap_ref_len[ewrefcov_primary_table] = pri_overlap[chunk].max ? pri_overlap[chunk].max - curPos : 0;
-            
-            data.ids[ewrefcov_secondary_table].elements = self->sec_align.elem_count;
-            data.ids[ewrefcov_secondary_table].buffer = self->sec_align.base;
-            data.overlap_ref_pos[ewrefcov_secondary_table] = sec_overlap[chunk].min;
-            data.overlap_ref_len[ewrefcov_secondary_table] = sec_overlap[chunk].max ? sec_overlap[chunk].max - curPos : 0;
-            
-            for (hi = 0, lo = UINT_MAX, i = 0; i != m; ++i) {
-                unsigned const coverage = cov[offset + i];
-                
-                if (hi < coverage)
-                    hi = coverage;
-                if (lo > coverage)
-                    lo = coverage;
-            }
-            data.low  = lo > 255 ? 255 : lo;
-            data.high = hi > 255 ? 255 : hi;
-            
-            for (i = 0; i != m; ++i)
-                data.mismatches += miss[offset + i];
-
-            for (i = 0; i != m; ++i)
-                data.indels += indel[offset + i];
-            
-            {
-                rc_t rc = ReferenceSeq_AddCoverage(self->rseq, curPos, &data);
-                
-                if (rc) {
-                    Unsorted(self);
-                    return 0;
-                }
-            }
-            
-            KDataBufferResize(&self->pri_align, 0);
-            KDataBufferResize(&self->sec_align, 0);
-            offset += n;
-            ++chunk;
-        }
-        if (!final && offset > 0) {
-            unsigned const newChunkCount = self->pri_overlap.elem_count - chunk;
-            unsigned const newBaseCount = self->endPos - self->curPos - offset;
-            
-            memmove(self->pri_overlap.base, pri_overlap + chunk, newChunkCount * sizeof(pri_overlap[0]));
-            memmove(self->sec_overlap.base, sec_overlap + chunk, newChunkCount * sizeof(sec_overlap[0]));
-            memmove(self->mismatches.base, miss + offset, newBaseCount * sizeof(miss[0]));
-            memmove(self->indels.base, indel + offset, newBaseCount * sizeof(indel[0]));
-            memmove(self->coverage.base, cov + offset, newBaseCount * sizeof(cov[0]));
-
-            KDataBufferResize(&self->pri_overlap, newChunkCount);
-            KDataBufferResize(&self->sec_overlap, newChunkCount);
-            
-            self->curPos += offset;
-        }
-    }
-    return 0;
-}
-
-rc_t ReferenceSetFile(Reference *self, const char id[],
-                      uint64_t length, uint8_t const md5[16], uint32_t maxSeqLen)
-{
-    const ReferenceSeq *rseq;
-    unsigned n;
-    
-    for (n = 0; ; ++n) {
-        if (self->last_id[n] != id[n])
-            break;
-        if (self->last_id[n] == 0 && id[n] == 0)
-            return 0;
-    }
-    while (id[n])
-        ++n;
-    if (n >= sizeof(self->last_id))
-        return RC(rcApp, rcTable, rcAccessing, rcParam, rcTooLong);
-    
-    BAIL_ON_FAIL(FlushBuffers(self, self->length, true, true, maxSeqLen));
-    BAIL_ON_FAIL(ReferenceMgr_GetSeq(self->mgr, &rseq, id));
-
-    if (self->rseq)
-        ReferenceSeq_Release(self->rseq);
-    self->rseq = rseq;
-    
-    memcpy(self->last_id, id, n + 1);
-    self->curPos = self->endPos = 0;
-    self->length = length;
-    self->lastOffset = 0;
-
-    if(!self->out_of_order) (void)PLOGMSG(klogInfo, (klogInfo, "Processing Reference '$(id)'", "id=%s", id));
-    
-    return 0;
-}
-
-rc_t ReferenceVerify(Reference const *self, char const id[], uint64_t length, uint8_t const md5[16])
-{
-    return ReferenceMgr_Verify(self->mgr, id, length, md5);
-}
-
-rc_t ReferenceGet1stRow(Reference const *self, int64_t *refID, char const refName[])
-{
-    const ReferenceSeq* rseq;
-    rc_t rc = ReferenceMgr_GetSeq(self->mgr, &rseq, refName);
-    if( rc == 0 ) {
-        rc = ReferenceSeq_Get1stRow(rseq, refID);
-        ReferenceSeq_Release(rseq);
-    }
-    return rc;
-}
-
-static
-rc_t ReferenceAddCoverage(Reference *const self,
-                          unsigned const refStart,
-                          unsigned const refLength,
-                          uint32_t const mismatches,
-                          uint32_t const indels,
-                          bool const isPrimary,
-                          uint32_t maxSeqLen
-                          )
-{
-    unsigned const refEnd = refStart + refLength;
-    
-    if (refEnd > self->endPos) {
-        unsigned const t1 = refEnd + (maxSeqLen - 1);
-        unsigned const adjust = t1 % maxSeqLen;
-        unsigned const newEndPos = t1 - adjust;
-        unsigned const baseCount = self->endPos - self->curPos;
-        unsigned const newBaseCount = newEndPos - self->curPos;
-        
-        BAIL_ON_FAIL(KDataBufferResize(&self->coverage, newBaseCount));
-        BAIL_ON_FAIL(KDataBufferResize(&self->mismatches, newBaseCount));
-        BAIL_ON_FAIL(KDataBufferResize(&self->indels, newBaseCount));
-        
-        memset(&((unsigned *)self->coverage.base)[baseCount], 0, (newBaseCount - baseCount) * sizeof(unsigned));
-        memset(&((unsigned *)self->mismatches.base)[baseCount], 0, (newBaseCount - baseCount) * sizeof(unsigned));
-        memset(&((unsigned *)self->indels.base)[baseCount], 0, (newBaseCount - baseCount) * sizeof(unsigned));
-        self->endPos = newEndPos;
-    }
-    if ((refEnd - self->curPos) / maxSeqLen >= self->pri_overlap.elem_count) {
-        unsigned const chunks = (refEnd - self->curPos) / maxSeqLen + 1;
-        unsigned const end = self->pri_overlap.elem_count;
-        
-        BAIL_ON_FAIL(KDataBufferResize(&self->pri_overlap, chunks));
-        BAIL_ON_FAIL(KDataBufferResize(&self->sec_overlap, chunks));
-        
-        memset(&((struct overlap_s *)self->pri_overlap.base)[end], 0, (chunks - end) * sizeof(struct overlap_s));
-        memset(&((struct overlap_s *)self->sec_overlap.base)[end], 0, (chunks - end) * sizeof(struct overlap_s));
-    }
-    BAIL_ON_FAIL(FlushBuffers(self, refStart, false, false, maxSeqLen));
-    if (!self->out_of_order) {
-        unsigned const startBase = refStart - self->curPos;
-        unsigned const endChunk = (startBase + refLength) / maxSeqLen;
-        KDataBuffer *const overlapBuffer = isPrimary ? &self->pri_overlap : &self->sec_overlap;
-        unsigned *const cov = &((unsigned *)self->coverage.base)[startBase];
-        unsigned i;
-        
-        ((unsigned *)self->mismatches.base)[startBase] += mismatches;
-        ((unsigned *)self->indels.base)[startBase] += indels;
-        
-        if (((struct overlap_s *)overlapBuffer->base)[endChunk].min == 0 || 
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].min > refStart)
-        {
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].min = refStart;
-        }
-        if (endChunk != 0 &&
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].max < refStart + refLength)
-        {
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].max = refStart + refLength;
-        }
-        
-        for (i = 0; i != refLength; ++i) {
-            if (cov[i] < UINT_MAX)
-                ++cov[i];
-        }
-    }
-    return 0;
-}
-
-static void GetCounts(AlignmentRecord const *data, unsigned const seqLen,
-                      unsigned *const nMatch,
-                      unsigned *const nMiss,
-                      unsigned *const nIndels)
-{
-    bool const *has_mismatch = data->data.has_mismatch.buffer;
-    bool const *has_offset = data->data.has_ref_offset.buffer;
-    int32_t const *ref_offset = data->data.ref_offset.buffer;
-    unsigned const n = data->data.ref_offset.elements;
-    unsigned const left_clip = (n != 0 && has_offset[0] && ref_offset[0] < 0) ? -ref_offset[0] : 0;
-    int right_edge;
-    unsigned nmis;
-    unsigned nmatch;
-    unsigned i;
-    unsigned j;
-    
-    for (right_edge = data->data.ref_len, i = 0; i != n; ++i)
-        right_edge -= ref_offset[i];
-    if (right_edge > seqLen)
-        right_edge = seqLen;
-    for (j = left_clip ? 1 : 0, i = left_clip, nmatch = nmis = 0; i < right_edge; ) {
-        if (has_offset[i]) {
-            int const offs = ref_offset[j++];
-            
-            if (offs < 0) {
-                i += (unsigned)(-offs);
-                continue;
-            }
-        }
-        if (has_mismatch[i])
-            ++nmis;
-        else
-            ++nmatch;
-        ++i;
-    }
-    *nMatch = nmatch;
-    *nMiss = nmis;
-    *nIndels = n - (left_clip ? 1 : 0);
-}
-
-rc_t ReferenceRead(Reference *self, AlignmentRecord *data, uint64_t const pos,
-                   uint32_t const rawCigar[], uint32_t const cigCount,
-                   char const seqDNA[], uint32_t const seqLen, uint32_t *matches, bool acceptNoMatch, unsigned minMatchCount, uint32_t maxSeqLen)
-{
-    *matches = 0;
-    BAIL_ON_FAIL(ReferenceSeq_Compress(self->rseq, 
-                                       (self->acceptHardClip ? ewrefmgr_co_AcceptHardClip : 0) + ewrefmgr_cmp_Binary, 
-                                       pos,
-                                       seqDNA, seqLen, rawCigar, cigCount, 0, NULL, 0, 0, NULL, 0, &data->data));
-
-    if (!acceptNoMatch && data->data.ref_len == 0)
-        return RC(rcApp, rcFile, rcReading, rcConstraint, rcViolated);
-    
-    if (!self->out_of_order && pos < self->lastOffset) {
-        Unsorted(self);
-    }
-    if (self->out_of_order)
-        return 0;
-    else {
-        unsigned nmis;
-        unsigned nmatch;
-        unsigned indels;
-
-        self->lastOffset = data->data.effective_offset;
-        GetCounts(data, seqLen, &nmatch, &nmis, &indels);
-        *matches = nmatch;
-        
-        if (acceptNoMatch || nmatch >= minMatchCount)
-            return ReferenceAddCoverage(self, data->data.effective_offset,
-                                        data->data.ref_len, nmis, indels,
-                                        data->isPrimary, maxSeqLen);
-        else
-            return RC(rcApp, rcFile, rcReading, rcConstraint, rcViolated);
-    }
-}
-
-static rc_t IdVecAppend(KDataBuffer *vec, uint64_t id)
-{
-    uint64_t const end = vec->elem_count;
-    
-    BAIL_ON_FAIL(KDataBufferResize(vec, end + 1));
-    ((uint64_t *)vec->base)[end] = id;
-    return 0;
-}
-
-rc_t ReferenceAddAlignId(Reference *self,
-                         int64_t align_id,
-                         bool is_primary
-                         )
-{
-    if (self->out_of_order)
-        return 0;
-    return IdVecAppend(is_primary ? &self->pri_align : &self->sec_align, align_id);
-}
-
-rc_t ReferenceWhack(Reference *self, bool commit, uint32_t maxSeqLen)
-{
-    rc_t rc = 0;
-    
-    if (self) {
-#if DUMP_CONFIG
-        if (self->mgr)
-            ReferenceMgr_DumpConfig(self->mgr);
-#endif
-        if (commit) {
-            rc = FlushBuffers(self, self->length, true, true, maxSeqLen);
-            if (rc != 0)
-                commit = false;
-        }
-        KDataBufferWhack(&self->sec_align);
-        KDataBufferWhack(&self->pri_align);
-        KDataBufferWhack(&self->mismatches);
-        KDataBufferWhack(&self->indels);
-        KDataBufferWhack(&self->coverage);
-        KDataBufferWhack(&self->pri_overlap);
-        KDataBufferWhack(&self->sec_overlap);
-        if (self->rseq)
-            rc = ReferenceSeq_Release(self->rseq);
-        if (self->out_of_order) {
-            (void)LOGMSG(klogInfo, "Starting coverage calculation");
-            rc = ReferenceMgr_Release(self->mgr, commit, NULL, true);
-        }
-        else {
-            rc = ReferenceMgr_Release(self->mgr, commit, NULL, false);
-        }
-    }
-    return rc;
-}
diff --git a/libs/loader/sequence-writer.c b/libs/loader/sequence-writer.c
deleted file mode 100644
index a5f3e1b..0000000
--- a/libs/loader/sequence-writer.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-#include <klib/log.h>
-
-#include <vdb/database.h>
-
-#include <kdb/manager.h>
-
-#include <insdc/sra.h>
-#include <insdc/insdc.h>
-
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <assert.h>
-#include <ctype.h>
-
-#include <align/writer-sequence.h>
-
-#include <loader/sequence-writer.h>
-#include <loader/common-reader.h>
-
-/* MARK: SequenceWriter Object */
-
-SequenceWriter *SequenceWriterInit(SequenceWriter *self, VDatabase *db) {
-    memset(self, 0, sizeof(*self));
-    self->db = db;
-    VDatabaseAddRef(db);
-    return self;
-}
-
-rc_t SequenceWriteRecord(SequenceWriter *self,
-                         SequenceRecord const *rec,
-                         bool color,
-                         bool isDup,
-                         INSDC_SRA_platform_id platform,
-                         bool keepMismatchQual,
-                         bool no_real_output,
-                         bool hasTI,
-                         char const *QualQuantizer
-                         )
-{
-    rc_t rc = 0;
-    uint8_t nreads = rec->numreads;
-    unsigned i;
-    unsigned seqLen;
-    int64_t dummyRowId;
-    
-    uint8_t readInfo[4096];
-    void *h_readInfo = NULL;
-    
-    INSDC_coord_zero *readStart = (void *)readInfo;
-    INSDC_coord_len *readLen;
-    uint8_t *alcnt;
-    INSDC_SRA_xread_type *readType;
-    INSDC_SRA_read_filter *readFilter;
-    bool *mask = NULL;
-    size_t const elemSize = sizeof(alcnt[0]) + sizeof(readType[0])
-                          + sizeof(readStart[0]) + sizeof(readLen[0])
-                          + sizeof(readFilter[0]);
-    
-    TableWriterSeqData data;
-
-    for (i = seqLen = 0; i != nreads; ++i) {
-        seqLen += rec->readLen[i];
-    }
-    
-    if (nreads * elemSize + keepMismatchQual * seqLen * sizeof(mask[0]) > sizeof(readInfo))
-    {
-        h_readInfo = malloc(nreads * elemSize + keepMismatchQual * seqLen * sizeof(mask[0]));
-        if (h_readInfo == NULL)
-            return RC(rcAlign, rcTable, rcWriting, rcMemory, rcExhausted);
-        readStart = h_readInfo;
-    }
-    readLen = (INSDC_coord_len *)&readStart[nreads];
-    alcnt = (uint8_t *)&readLen[nreads];
-    readType = (INSDC_SRA_xread_type *)&alcnt[nreads];
-    readFilter = (INSDC_SRA_read_filter *)&readType[nreads];
-    
-    if (keepMismatchQual) {
-        mask = (bool *)&readFilter[nreads];
-        
-        for (i = 0; i != seqLen; ++i) {
-            mask[i] = (rec->qual[i] & 0x80) != 0;
-        }
-    }
-    
-    for (i = 0; i != nreads; ++i) {
-        alcnt[i] = rec->aligned[i] ? 1 : 0;
-        readLen[i] = rec->readLen[i];
-        readStart[i] = rec->readStart[i];
-        readType[i] = readLen[i] ? SRA_READ_TYPE_BIOLOGICAL : SRA_READ_TYPE_TECHNICAL;
-        switch ( rec->orientation[i] )
-        {
-            case ReadOrientationForward:
-                readType[i] |= SRA_READ_TYPE_FORWARD;
-                break;
-            case ReadOrientationReverse:
-                readType[i] |= SRA_READ_TYPE_REVERSE;
-                break;
-            case ReadOrientationUnknown:
-            default:
-                break;
-        }
-        readFilter[i] = isDup ? SRA_READ_FILTER_CRITERIA
-                      : rec->is_bad[i] ? SRA_READ_FILTER_REJECT : SRA_READ_FILTER_PASS;
-    }
-
-    memset(&data, 0, sizeof(data));
-    
-    data.sequence.buffer = rec->seq;
-    data.sequence.elements = seqLen;
-    
-    data.quality.buffer = rec->qual;
-    data.quality.elements = seqLen;
-    
-    if (keepMismatchQual) {
-        data.no_quantize_mask.buffer = mask;
-        data.no_quantize_mask.elements = seqLen;
-    }
-    
-    data.alignment_count.buffer = alcnt;
-    data.alignment_count.elements = nreads;
-    
-    data.nreads = nreads;
-    
-    data.read_type.buffer = readType;
-    data.read_type.elements = nreads;
-    
-    data.read_start.buffer = readStart;
-    data.read_start.elements = nreads;
-    
-    data.read_len.buffer = readLen;
-    data.read_len.elements = nreads;
-    
-    data.tmp_key_id = rec->keyId;
-    
-    data.spot_group.buffer = rec->spotGroup;
-    data.spot_group.elements = rec->spotGroupLen;
-    
-    data.cskey.buffer = rec->cskey;
-    data.cskey.elements = nreads;
-    
-    data.read_filter.buffer = readFilter;
-    data.read_filter.elements = nreads;
-    
-    data.platform.buffer = &platform;
-    data.platform.elements = 1;
-    
-    data.ti.buffer = rec->ti;
-    data.ti.elements = nreads;
-    
-    if (!no_real_output) {
-        if (self->tbl == NULL) {
-            int csoption = (color ? ewseq_co_ColorSpace : 0);
-
-	    if(hasTI) csoption |= ewseq_co_TI;
-            
-            rc = TableWriterSeq_Make(&self->tbl, self->db,
-                                     csoption | ewseq_co_NoLabelData | ewseq_co_SpotGroup, QualQuantizer);
-        }
-        if (rc == 0) {
-            rc = TableWriterSeq_Write(self->tbl, &data, &dummyRowId);
-        }
-    }
-    
-    if (h_readInfo)
-        free(h_readInfo);
-    
-    return rc;
-}
-
-rc_t SequenceDoneWriting(SequenceWriter *self)
-{
-    return TableWriterSeq_TmpKeyStart(self->tbl);
-}
-
-rc_t SequenceReadKey(const SequenceWriter *cself, int64_t row, uint64_t *keyId)
-{
-    return TableWriterSeq_TmpKey(cself->tbl, row, keyId);
-}
-
-rc_t SequenceUpdateAlignData(SequenceWriter *self, int64_t rowId, unsigned nreads,
-                             int64_t const primeId[/* nreads */],
-                             uint8_t const algnCnt[/* nreads */])
-{
-    TableWriterData data[2];
-    
-    data[0].buffer = primeId; data[0].elements = nreads;
-    data[1].buffer = algnCnt; data[1].elements = nreads;
-    
-    return TableWriterSeq_WriteAlignmentData(self->tbl, rowId, &data[0], &data[1]);
-}
-
-void SequenceWhack(SequenceWriter *self, bool commit) {
-    uint64_t dummyRows;
-    rc_t rc;
-    
-    VDatabaseRelease(self->db);
-    
-    if (self->tbl == NULL)
-        return;
-    
-    rc = TableWriterSeq_Whack(self->tbl, commit, &dummyRows);
-}
-
-/* MARK: SequenceRecord Object */
-static
-rc_t SequenceRecordResize(SequenceRecord *self,
-                          KDataBuffer *storage,
-                          unsigned numreads,
-                          unsigned seqLen)
-{
-    size_t sz;
-    rc_t rc;
-    
-    sz = seqLen * (sizeof(self->seq[0]) + sizeof(self->qual[0])) +
-         numreads * (sizeof(self->ti) +
-                     sizeof(self->readStart[0]) +
-                     sizeof(self->readLen[0]) +
-                     sizeof(self->aligned[0]) + 
-                     sizeof(self->orientation[0]) +
-                     sizeof(self->alignmentCount[0]) +
-                     sizeof(self->cskey[0])
-                     );
-    storage->elem_bits = 8;
-    rc = KDataBufferResize(storage, sz);
-    if (rc)
-        return rc;
-    self->numreads = numreads;
-    
-    self->ti = (uint64_t *)storage->base;
-    self->readStart = (uint32_t *)&self->ti[numreads];
-    self->readLen = (uint32_t *)&self->readStart[numreads];
-    self->aligned = (bool *)&self->readLen[numreads];
-    self->orientation = (uint8_t *)&self->aligned[numreads];
-    self->is_bad = (uint8_t *)&self->orientation[numreads];
-    self->alignmentCount = (uint8_t *)&self->is_bad[numreads];
-    self->cskey = (char *)&self->alignmentCount[numreads];
-    self->seq = (char *)&self->cskey[numreads];
-    self->qual = (uint8_t *)&self->seq[seqLen];
-
-    self->spotGroup = NULL;
-    self->spotGroupLen = 0;
-    
-    return 0;
-}
-
-rc_t SequenceRecordInit(SequenceRecord *self, unsigned numreads, unsigned readLen[])
-{
-    unsigned i;
-    unsigned seqlen = 0;
-    rc_t rc;
-    
-    for (i = 0; i != numreads; ++i) {
-        seqlen += readLen[i];
-    }
-    rc = SequenceRecordResize(self, &self->storage, numreads, seqlen);
-    if (rc)
-        return rc;
-    memset(self->storage.base, 0, KDataBufferBytes(&self->storage));
-    
-    for (seqlen = 0, i = 0; i != numreads; ++i) {
-        self->readLen[i] = readLen[i];
-        self->readStart[i] = seqlen;
-        seqlen += readLen[i];
-    }
-    self->numreads = numreads;
-    memset(self->cskey, 'T', numreads);
-    return 0;
-}
-
-rc_t SequenceRecordAppend(SequenceRecord *self,
-                          const SequenceRecord *other
-                          )
-{
-    /* save the locations of the original data */
-    unsigned const seq = (uint8_t const *)self->seq - (uint8_t const *)self->storage.base;
-    unsigned const qual = (uint8_t const *)self->qual - (uint8_t const *)self->storage.base;
-    unsigned const cskey = (uint8_t const *)self->cskey - (uint8_t const *)self->storage.base;
-    unsigned const alignmentCount = (uint8_t const *)self->alignmentCount - (uint8_t const *)self->storage.base;
-    unsigned const is_bad = (uint8_t const *)self->is_bad - (uint8_t const *)self->storage.base;
-    unsigned const orientation = (uint8_t const *)self->orientation - (uint8_t const *)self->storage.base;
-    unsigned const aligned = (uint8_t const *)self->aligned - (uint8_t const *)self->storage.base;
-    unsigned const ti = (uint8_t const *)self->ti - (uint8_t const *)self->storage.base;
-    unsigned const readLen = (uint8_t const *)self->readLen - (uint8_t const *)self->storage.base;
-/*    unsigned const readStart = (uint8_t const *)self->readStart - (uint8_t const *)self->storage.base;*/
-
-    rc_t rc;
-    unsigned seqlen;
-    unsigned otherSeqlen;
-    unsigned i;
-    unsigned numreads = self->numreads;
-    
-    for (seqlen = 0, i = 0; i != numreads; ++i) {
-        seqlen += self->readLen[i];
-    }
-    for (otherSeqlen = 0, i = 0; i != other->numreads; ++i) {
-        otherSeqlen += other->readLen[i];
-    }
-
-    rc = SequenceRecordResize(self, &self->storage, self->numreads + other->numreads, seqlen + otherSeqlen);
-    if (rc)
-        return rc;
-    /* this needs to be reverse order from assignment in Resize function
-     * these regions can overlap
-     */
-    memmove(self->qual,             &((uint8_t const *)self->storage.base)[qual],              seqlen);
-    memmove(self->seq,              &((uint8_t const *)self->storage.base)[seq],               seqlen);
-    memmove(self->cskey,            &((uint8_t const *)self->storage.base)[cskey],             numreads * sizeof(self->cskey[0]));
-    memmove(self->alignmentCount,   &((uint8_t const *)self->storage.base)[alignmentCount],    numreads * sizeof(self->alignmentCount[0]));
-    memmove(self->is_bad,           &((uint8_t const *)self->storage.base)[is_bad],            numreads * sizeof(self->is_bad[0]));
-    memmove(self->orientation,      &((uint8_t const *)self->storage.base)[orientation],       numreads * sizeof(self->orientation[0]));
-    memmove(self->aligned,          &((uint8_t const *)self->storage.base)[aligned],           numreads * sizeof(self->aligned[0]));
-    memmove(self->readLen,          &((uint8_t const *)self->storage.base)[readLen],           numreads * sizeof(self->readLen[0]));
-    memmove(self->ti,               &((uint8_t const *)self->storage.base)[ti],                numreads * sizeof(self->ti[0]));
-    
-    memcpy(&self->ti[numreads],             other->ti,              other->numreads * sizeof(self->ti[0]));
-    memcpy(&self->readLen[numreads],        other->readLen,         other->numreads * sizeof(self->readLen[0]));
-    memcpy(&self->aligned[numreads],        other->aligned,         other->numreads * sizeof(self->aligned[0]));
-    memcpy(&self->orientation[numreads],    other->orientation,     other->numreads * sizeof(self->orientation[0]));
-    memcpy(&self->is_bad[numreads],         other->is_bad,          other->numreads * sizeof(self->is_bad[0]));
-    memcpy(&self->alignmentCount[numreads], other->alignmentCount,  other->numreads * sizeof(self->alignmentCount[0]));
-    memcpy(&self->cskey[numreads],          other->cskey,           other->numreads * sizeof(self->cskey[0]));
-    memcpy(&self->seq[seqlen],              other->seq,             otherSeqlen);
-    memcpy(&self->qual[seqlen],             other->qual,            otherSeqlen);
-    
-    for (i = 0, seqlen = 0; i != self->numreads; ++i) {
-        self->readStart[i] = seqlen;
-        seqlen += self->readLen[i];
-    }
-    
-    return 0;
-}
diff --git a/libs/search/Makefile b/libs/search/Makefile
index dc494ca..59a8f9c 100644
--- a/libs/search/Makefile
+++ b/libs/search/Makefile
@@ -42,16 +42,18 @@ include $(TOP)/build/Makefile.env
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: makedirs
+vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(INT_LIBS): makedirs
+$(INT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
 
-$(EXT_LIBS): makedirs
+$(EXT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
-.PHONY: all std $(ALL_LIBS)
+.PHONY: vers-includes all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
 # std
diff --git a/libs/search/libksrch.vers b/libs/search/libksrch.vers
index 2ac9634..238d6e8 100644
--- a/libs/search/libksrch.vers
+++ b/libs/search/libksrch.vers
@@ -1 +1 @@
-1.0.13
+1.0.7
diff --git a/libs/search/libksrch.vers.h b/libs/search/libksrch.vers.h
new file mode 100644
index 0000000..a60a8e9
--- /dev/null
+++ b/libs/search/libksrch.vers.h
@@ -0,0 +1 @@
+#define LIBKSRCH_VERS 0x01000007
diff --git a/libs/sra/Makefile b/libs/sra/Makefile
index acd8c7c..3b6c11c 100644
--- a/libs/sra/Makefile
+++ b/libs/sra/Makefile
@@ -31,6 +31,7 @@ MODULE = libs/sra
 INT_LIBS = \
 
 EXT_LIBS = \
+	libsrapath \
 	libsraschema \
 	libwsraschema \
 	libsradb \
@@ -48,16 +49,18 @@ VPATH += $(OBJDIR)
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(INT_LIBS): vers-includes
+$(INT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
 
-$(EXT_LIBS): vers-includes
+$(EXT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
-.PHONY: all std $(ALL_LIBS)
+.PHONY: vers-includes all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -69,18 +72,10 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/all $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
-	@ rm -f $(LIBDIR)/libsra-schema.* $(LIBDIR)/libwsra-schema.* $(LIBDIR)/sra-dflt-schema*
-	@ rm -f $(BINDIR)/libsra-schema.* $(BINDIR)/libwsra-schema.*
+	@ rm -f $(LIBDIR)/libsra-schema.* $(LIBDIR)/libwsra-schema.*
 
 .PHONY: clean
 
@@ -94,38 +89,35 @@ tag: \
 
 
 #-------------------------------------------------------------------------------
+# srapath stub library
+#
+$(LIBDIR)/libsrapath: $(LIBDIR)/libsrapath.$(LIBX)
+
+SRAPATH_SRC = \
+	srapath-stub
+
+SRAPATH_OBJ = \
+	$(addsuffix .$(LOBX),$(SRAPATH_SRC))
+
+$(LIBDIR)/libsrapath.$(LIBX): $(SRAPATH_OBJ)
+	$(LD) --slib -o $@ $^
+
+libsrapath.vers.h:
+	@ true
+
+
+#-------------------------------------------------------------------------------
 # sradb embedded schema
 #
 $(LIBDIR)/libsraschema: $(LIBDIR)/libsraschema.$(LIBX)
 
 $(LIBDIR)/libwsraschema: $(LIBDIR)/libwsraschema.$(LIBX)
 
-SRA_DFLT_SCHEMA_LIBS = \
-	-skapp \
-	-svdb \
-	-skdb \
-	-svfs \
-	-skurl \
-	-skrypto \
-	-skfg \
-	-skfs \
-	-sksproc \
-	-sklib
-
-SRA_DFLT_SCHEMA_OS_LIBS = \
-	-ldl \
-	-sz \
-	-sbz2 \
-	-lm
-
-# set workdir for RUN_REMOTELY in rwin mode 
-RWORKDIR=$(OBJDIR)
-
-$(LIBDIR)/sra-dflt-schema: sra-dflt-schema.$(OBJX)
-	$(LD) --exe -o $@ $^ $(SRA_DFLT_SCHEMA_LIBS) $(SRA_DFLT_SCHEMA_OS_LIBS)
-
-sra-schema.c: $(LIBDIR)/sra-dflt-schema $(SRCDIR)/built-in.vschema $(TOP)/build/sra-dflt-schema.sh
-	@ $(TOP)/build/sra-dflt-schema.sh $(BUILD_OS) "$(RUN_REMOTELY) $(LIBDIR)/sra-dflt-schema" -o$@ -I$(TOP)/interfaces -T$(OBJDIR)/$@.d $(SRCDIR)/built-in.vschema
+sra-dflt-schema: sra-dflt-schema.$(OBJX)
+	$(LD) --exe -o $@ $^ -skapp -svdb -skdb -skfg -skfs -sklib -ldl -sz -sbz2
+
+sra-schema.c: sra-dflt-schema $(SRCDIR)/built-in.vschema $(TOP)/build/sra-dflt-schema.sh
+	@ $(TOP)/build/sra-dflt-schema.sh $(OS) ./sra-dflt-schema -o$@ -I$(TOP)/interfaces -T$@.d $(SRCDIR)/built-in.vschema
 
 SRA_SCHEMA_SRC = \
 	sraschema \
@@ -157,8 +149,17 @@ SRASCHEMA_SRC = \
 WSRASCHEMA_SRC = \
 	wsraschema-stub
 
-SRASCHEMA_SRC += $(SRA_SCHEMA_SRC)
-WSRASCHEMA_SRC += $(SRA_SCHEMA_SRC)
+ifeq (--static,$(STATIC))
+	SRASCHEMA_SRC += $(SRA_SCHEMA_SRC)
+else
+	SRASCHEMA_DEPS = $(LIBDIR)/libsra-schema.$(SHLX)
+endif
+
+ifeq (--static,$(STATIC))
+	WSRASCHEMA_SRC += $(SRA_SCHEMA_SRC)
+else
+	WSRASCHEMA_DEPS = $(LIBDIR)/libwsra-schema.$(SHLX)
+endif
 
 SRASCHEMA_OBJ = \
 	$(addsuffix .$(LOBX),$(SRASCHEMA_SRC))
@@ -185,8 +186,7 @@ SRADBCMN_SRC = \
 	sramgr-cmn \
 	sratbl-cmn \
 	sracol \
-	types \
-    sracache
+	types
 
 SRADB_SRC = \
 	$(SRADBCMN_SRC) \
@@ -198,16 +198,14 @@ SRADB_OBJ = \
 
 SRADB_LIB = \
 	-ssraschema \
+	-ssrapath \
 	-dvdb \
 	-dkdb \
-	-dvfs \
 	-dkfs \
-	-lkfg \
-	-dkproc \
 	-dklib
 
 $(LIBDIR)/libsradb.$(SHLX): $(SRADB_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ -ssrapath $(SRADB_LIB)
+	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(SRADB_LIB)
 
 $(LIBDIR)/libsradb.$(LIBX): $(SRADB_OBJ)
 	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(SRADB_LIB)
@@ -231,15 +229,14 @@ WSRADB_OBJ = \
 
 WSRADB_LIB = \
 	-ssraschema \
+	-ssrapath \
 	-dwvdb \
 	-dwkdb \
-	-dvfs \
-	-lkfg \
-	-dkproc \
+	-dkfs \
 	-dklib
 
 $(LIBDIR)/libwsradb.$(SHLX): $(WSRADB_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ -ssrapath $(WSRADB_LIB)
+	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(WSRADB_LIB)
 
 $(LIBDIR)/libwsradb.$(LIBX): $(WSRADB_OBJ)
 	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(WSRADB_LIB)
diff --git a/libs/sra/libsradb.vers b/libs/sra/libsradb.vers
index 55f20a1..ef538c2 100644
--- a/libs/sra/libsradb.vers
+++ b/libs/sra/libsradb.vers
@@ -1 +1 @@
-3.1.13
+3.1.2
diff --git a/libs/sra/libsradb.vers.h b/libs/sra/libsradb.vers.h
new file mode 100644
index 0000000..96b09d2
--- /dev/null
+++ b/libs/sra/libsradb.vers.h
@@ -0,0 +1 @@
+#define LIBSRADB_VERS 0x03010002
diff --git a/libs/sra/libsrareader.vers b/libs/sra/libsrareader.vers
index 0664a8f..781dcb0 100644
--- a/libs/sra/libsrareader.vers
+++ b/libs/sra/libsrareader.vers
@@ -1 +1 @@
-1.1.6
+1.1.3
diff --git a/libs/sra/libsrareader.vers.h b/libs/sra/libsrareader.vers.h
new file mode 100644
index 0000000..784c8f0
--- /dev/null
+++ b/libs/sra/libsrareader.vers.h
@@ -0,0 +1 @@
+#define LIBSRAREADER_VERS 0x01010003
diff --git a/libs/sra/libsraschema.vers.h b/libs/sra/libsraschema.vers.h
new file mode 100644
index 0000000..98a217f
--- /dev/null
+++ b/libs/sra/libsraschema.vers.h
@@ -0,0 +1 @@
+#define LIBSRASCHEMA_VERS 0x01010000
diff --git a/libs/sra/libwsradb.vers b/libs/sra/libwsradb.vers
index 55f20a1..ff365e0 100644
--- a/libs/sra/libwsradb.vers
+++ b/libs/sra/libwsradb.vers
@@ -1 +1 @@
-3.1.13
+3.1.3
diff --git a/libs/sra/libwsradb.vers.h b/libs/sra/libwsradb.vers.h
new file mode 100644
index 0000000..859a66d
--- /dev/null
+++ b/libs/sra/libwsradb.vers.h
@@ -0,0 +1 @@
+#define LIBWSRADB_VERS 0x03010003
diff --git a/libs/sra/libwsraschema.vers.h b/libs/sra/libwsraschema.vers.h
new file mode 100644
index 0000000..9601db1
--- /dev/null
+++ b/libs/sra/libwsraschema.vers.h
@@ -0,0 +1 @@
+#define LIBWSRASCHEMA_VERS 0x01010000
diff --git a/libs/sra/reader-abi.c b/libs/sra/reader-abi.c
index c48f541..7540201 100644
--- a/libs/sra/reader-abi.c
+++ b/libs/sra/reader-abi.c
@@ -30,7 +30,6 @@
 #include <sra/abi.h>
 #include <os-native.h>
 #include <sysalloc.h>
-#include <klib/text.h>
 
 #include "reader-cmn.h"
 
@@ -63,7 +62,7 @@ struct AbsolidReader {
     /* current spot data shortcuts */
     const SRAReaderColumn* csread;
     const char** cs_key;
-    const SRAReaderColumn* qual1;
+    const uint8_t** qual1;
     const INSDC_coord_zero** trim_start;
     const INSDC_coord_len** trim_len;
     const float** signal;
@@ -87,7 +86,7 @@ rc_t AbsolidReaderInit(const AbsolidReader* self,
     if( (rc = SRAReaderInit(&self->dad, options, AbsolidReader_master_columns_desc)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &AbsolidReader_master_columns_desc[0], &me->csread, NULL)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &AbsolidReader_master_columns_desc[1], NULL, (const void***)&self->cs_key)) == 0 &&
-        (rc = SRAReader_FindColData(&self->dad, &AbsolidReader_master_columns_desc[2], &me->qual1, NULL)) == 0 &&
+        (rc = SRAReader_FindColData(&self->dad, &AbsolidReader_master_columns_desc[2], NULL, (const void***)&self->qual1)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &AbsolidReader_master_columns_desc[3], NULL, (const void***)&self->trim_start)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &AbsolidReader_master_columns_desc[4], NULL, (const void***)&self->trim_len)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &AbsolidReader_master_columns_desc[5], NULL, (const void***)&self->signal)) == 0 ) {
@@ -190,7 +189,7 @@ LIB_EXPORT rc_t CC AbsolidReaderSpotName(const AbsolidReader* self,
                 }
                 if( psz > 0 ) {
                     me->prefix_sz = psz + 2;
-                    string_copy(me->prefix_buf, sizeof(me->prefix_buf), spotname, me->prefix_sz);
+                    strncpy(me->prefix_buf, spotname, me->prefix_sz);
                 } else {
                     me->prefix_sz = 0;
                 }
@@ -280,8 +279,6 @@ LIB_EXPORT rc_t CC AbsolidReaderHeader(const AbsolidReader* self, uint32_t readI
         char tmp[1024];
         if( spotname_sz == 0 ) {
             spotname_sz = snprintf(tmp, sizeof(tmp) - 1, "%s.%u", self->dad.accession, self->dad.spot);
-            if ( spotname_sz < 0 )
-                return RC ( rcSRA, rcString, rcConstructing, rcData, rcCorrupt );
             spotname = tmp;
         }
         if( readId > 0 && read_label_sz > 0 ) {
@@ -298,14 +295,10 @@ LIB_EXPORT rc_t CC AbsolidReaderHeader(const AbsolidReader* self, uint32_t readI
                            self->dad.accession, self->dad.spot, spotname_sz, spotname);
         }
     }
-#if SNPRINTF_ACTUALLY_WORKED_THE_WAY_YOU_THINK
     if( ret < 0 ) {
         ret = 0;
         rc = RC(rcSRA, rcString, rcConstructing, rcMessage, rcUnknown);
     } else if( ret >= (int)dsize ) {
-#else
-    if( ret < 0 || ret >= (int)dsize ) {
-#endif
         rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
     }
     if( written != NULL ) {
@@ -324,7 +317,7 @@ LIB_EXPORT rc_t CC AbsolidReaderBase(const AbsolidReader* self, uint32_t readId,
     CHECK_SPOT(self->dad);
 
     if( readId > 0 ) {
-        if( (rc = AbsolidReader_SpotReadInfo(self, readId--, NULL, NULL, NULL, &read_start, &read_len)) != 0 ) {
+        if( (rc = AbsolidReader_SpotReadInfo(self, readId, NULL, NULL, NULL, &read_start, &read_len)) != 0 ) {
             return rc;
         }
     } else {
@@ -342,7 +335,7 @@ LIB_EXPORT rc_t CC AbsolidReaderBase(const AbsolidReader* self, uint32_t readId,
         return RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
     } else {
         const char* b = self->csread->base;
-        data[0] = (*me->cs_key)[readId];
+        data[0] = (*me->cs_key)[readId - 1];
         memcpy(&data[1], &b[read_start], read_len - 1);
     }
     data[read_len] = '\0';
@@ -365,8 +358,8 @@ LIB_EXPORT rc_t CC AbsolidReaderQuality(const AbsolidReader* self, uint32_t read
     } else {
         return RC(rcSRA, rcFormatter, rcConstructing, rcFormat, rcUnsupported);
     }
-    if( read_len >= self->minReadLen && me->qual1->size ) {
-        const int8_t* q = me->qual1->base;
+    if( read_len >= self->minReadLen ) {
+        const int8_t* q = (int8_t*)*me->qual1;
         char* d = data;
         INSDC_coord_len i;
 
@@ -379,8 +372,6 @@ LIB_EXPORT rc_t CC AbsolidReaderQuality(const AbsolidReader* self, uint32_t read
                 d = data;
             }
             x = snprintf(d, dsize - j, "%i ", (int)(q[i]));
-            if ( x < 0 )
-                return RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
             d += x;
             j += x;
         }
@@ -429,8 +420,6 @@ rc_t AbsolidReaderSignal(const AbsolidReader* self, uint32_t readId, int idx, ch
                     d = data;
                 }
                 x = snprintf(d, dsize - j, "%.6g ", s[i * 4 + idx]);
-                if ( x < 0 )
-                    return RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
                 d += x;
                 j += x;
             }
diff --git a/libs/sra/reader-fastq.c b/libs/sra/reader-fastq.c
index bfd77ec..008c11f 100644
--- a/libs/sra/reader-fastq.c
+++ b/libs/sra/reader-fastq.c
@@ -266,8 +266,6 @@ rc_t FastqReader_Header(const FastqReader* self, bool* label,
         char tmp[1024];
         if( spotname_sz == 0 ) {
             ret = snprintf(tmp, sizeof(tmp) - 1, "%s.%u", self->dad.accession, self->dad.spot);
-            if ( ret < 0 )
-                return RC ( rcSRA, rcString, rcConstructing, rcData, rcCorrupt );
             spotname = tmp;
             spotname_sz = ret;
         }
@@ -301,14 +299,10 @@ rc_t FastqReader_Header(const FastqReader* self, bool* label,
         }
     }
 
-#if SNPRINTF_ACTUALLY_WORKED_THE_WAY_YOU_THINK
     if( ret < 0 ) {
         ret = 0;
         rc = RC(rcSRA, rcString, rcConstructing, rcMessage, rcUnknown);
     } else if( ret >= (int)maxlen ) {
-#else
-    if( ret < 0 || ret >= (int)maxlen ) {
-#endif
         rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
     }
     if( written != NULL ) {
@@ -376,7 +370,6 @@ rc_t FastqReader_CSconvert(char from, char to, char* first)
 LIB_EXPORT rc_t CC FastqReaderBase(const FastqReader* self, uint32_t readId, char* data, size_t dsize, size_t* written)
 {
     rc_t rc = 0;
-    uint32_t num_reads;
     INSDC_coord_zero read_start = 0;
     INSDC_coord_len read_len = 0;
 
@@ -384,13 +377,13 @@ LIB_EXPORT rc_t CC FastqReaderBase(const FastqReader* self, uint32_t readId, cha
     CHECK_SPOT(self->dad);
 
     if( readId > 0 ) {
-        if( (rc = FastqReader_SpotReadInfo(self, readId--, NULL, NULL, NULL, &read_start, &read_len)) != 0 ) {
+        if( (rc = FastqReader_SpotReadInfo(self, readId, NULL, NULL, NULL, &read_start, &read_len)) != 0 ) {
             return rc;
         }
-    } else if( (rc = FastqReader_SpotInfo(self, NULL, NULL, NULL, NULL, &read_len, &num_reads)) != 0 ) {
-        return rc;
-    } else if( (me->dad.options & eColorSpace) && num_reads > 1 ) {
+    } else if( me->dad.options & eColorSpace ) {
         return RC(rcSRA, rcFormatter, rcConstructing, rcFormat, rcUnsupported);
+    } else if( (rc = FastqReader_SpotInfo(self, NULL, NULL, NULL, NULL, &read_len, NULL)) != 0 ) {
+        return rc;
     }
     if( me->dad.options & eColorSpace ) {
         read_len++;
@@ -403,6 +396,7 @@ LIB_EXPORT rc_t CC FastqReaderBase(const FastqReader* self, uint32_t readId, cha
     }
     if( me->dad.options & eColorSpace ) {
         const char* b = self->csread->base;
+        --readId;
         data[0] = me->csKey == '\0' ? (*self->cs_key)[readId] : me->csKey;
         memcpy(&data[1], &b[read_start], read_len - 1);
         if( read_len > 1 ) {
diff --git a/libs/sra/reader-illumina.c b/libs/sra/reader-illumina.c
index 4c4e6d3..b3acfdf 100644
--- a/libs/sra/reader-illumina.c
+++ b/libs/sra/reader-illumina.c
@@ -30,13 +30,10 @@
 #include <sra/illumina.h>
 #include <os-native.h>
 #include <sysalloc.h>
-#include <va_copy.h>
 
 #include "reader-cmn.h"
 
 #include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
 #include <string.h>
 #include <math.h>
 
@@ -78,7 +75,7 @@ struct IlluminaReader {
     const int32_t** x;
     const int32_t** y;
     const SRAReaderColumn* read;
-    const SRAReaderColumn* qual1;
+    const uint8_t** qual1;
     const signed char** qual4;
     const float** signal;
     const float** noise;
@@ -108,7 +105,7 @@ rc_t IlluminaReaderInit(const IlluminaReader* self, bool read, bool qual1, bool
         (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[2], NULL, (const void***)&self->x)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[3], NULL, (const void***)&self->y)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[4], &me->read, NULL)) == 0 &&
-        (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[5], &me->qual1, NULL)) == 0 &&
+        (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[5], NULL, (const void***)&self->qual1)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[6], NULL, (const void***)&self->qual4)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[7], NULL, (const void***)&self->signal)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &IlluminaReader_master_columns_desc[8], NULL, (const void***)&self->noise)) == 0 &&
@@ -176,16 +173,16 @@ LIB_EXPORT rc_t CC IlluminaReader_SpotInfo(const IlluminaReader* self,
     rc_t rc = SRAReader_SpotInfo(&self->dad, spotname, spotname_sz, spot_len, num_reads);
     if( rc == 0 ) {
         if( lane ) {
-            *lane = (self->lane && *self->lane) ? **self->lane : 0;
+            *lane = self->lane ? **self->lane : 0;
         }
         if( tile ) {
-            *tile = (self->tile && *self->tile) ? **self->tile : ((self->dad.spot / 10001) + 1);
+            *tile = self->tile ? **self->tile : ((self->dad.spot / 10001) + 1);
         }
         if( x ) {
-            *x = (self->x && *self->x) ? **self->x : 0;
+            *x = self->x ? **self->x : 0;
         }
         if( y ) {
-            *y = (self->y && *self->y) ? **self->y : self->dad.spot;
+            *y = self->y ? **self->y : self->dad.spot;
         }
     }
     return rc;
@@ -199,39 +196,6 @@ LIB_EXPORT rc_t CC IlluminaReader_SpotReadInfo(const IlluminaReader* self, uint3
                                   read_label, read_label_sz, read_start, read_len);
 }
 
-static
-int kludge_snprintf ( char *buff, size_t bsize, const char *fmt, ... )
-{
-    int status;
-    va_list args, args2;
-
-    va_start ( args, fmt );
-    va_copy ( args2, args );
-
-    status = vsnprintf ( buff, bsize, fmt, args );
-    if ( status < 0 )
-    {
-        size_t kludge_size = 64 * 1024;
-        void *kludge = malloc ( kludge_size );
-        if ( kludge != NULL )
-        {
-            status = vsnprintf ( kludge, kludge_size, fmt, args2 );
-            if ( status >= 0 )
-            {
-                memcpy ( buff, kludge, ( size_t ) status > bsize ? bsize : ( size_t ) status );
-                if ( ( size_t ) status < bsize )
-                    buff [ status ] = 0;
-            }
-            free ( kludge );
-        }
-    }
-
-    va_end ( args2 );
-    va_end ( args );
-
-    return status;
-}
-
 LIB_EXPORT rc_t CC IlluminaReaderBase(const IlluminaReader* self, char* data, size_t dsize, size_t* written)
 {
     rc_t rc = 0;
@@ -249,12 +213,7 @@ LIB_EXPORT rc_t CC IlluminaReaderBase(const IlluminaReader* self, char* data, si
     } else if( (rc = IlluminaReader_SpotInfo(self, NULL, NULL, &lane, &tile, &x, &y, &spot_len, NULL)) == 0 ) {
         sz = snprintf(data, dsize, "%d\t%d\t%d\t%d\t", lane, tile, x, y);
         if( sz < 0 ) {
-#if SNPRINTF_ACTUALLY_WORKED_THE_WAY_YOU_THINK
             rc = RC(rcSRA, rcString, rcConstructing, rcNoObj, rcUnknown);
-#else
-            /* both approaches are wrong - the error code is rcBuffer, rcInsufficient */
-            rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
-#endif
         } else {
             sz += spot_len;
             if( sz >= (int)dsize ) {
@@ -306,22 +265,14 @@ rc_t IlluminaReader_4floats(const IlluminaReader* self, const float** col_data,
             f = *col_data;
             sz = snprintf(data, dsize, "%d\t%d\t%d\t%d", lane, tile, x, y);
             if( sz < 0 ) {
-#if SNPRINTF_ACTUALLY_WORKED_THE_WAY_YOU_THINK
                 rc = RC(rcSRA, rcString, rcConstructing, rcNoObj, rcUnknown);
-#else
-                rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
-#endif
             } else {
                 for(i = 0; rc == 0 && i < spot_len; i++, f += 4) {
                     int x = sz >= (int)dsize ? 0 : sz;
                     x = snprintf(&data[x], dsize - x, "\t%.*f %.*f %.*f %.*f", f[0] ? 1 : 0, f[0], f[1] ? 1 : 0, f[1],
                                  f[2] ? 1 : 0,  f[2], f[3] ? 1 : 0,  f[3]);
                     if( x < 0 ) {
-#if SNPRINTF_ACTUALLY_WORKED_THE_WAY_YOU_THINK
                         rc = RC(rcSRA, rcString, rcConstructing, rcNoObj, rcUnknown);
-#else
-                        rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
-#endif
                     }
                     sz += x;
                 }
@@ -365,21 +316,18 @@ LIB_EXPORT rc_t CC IlluminaReaderQuality1(const IlluminaReader* self, uint32_t r
         rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcNull);
     } else if( !(self->dad.options & eQual1) ) {
         rc = RC(rcSRA, rcString, rcConstructing, rcMessage, rcUnexpected);
-    } else if( self->qual1 == NULL || self->qual1->size == 0 ) {
-        /* empty value */
     } else if( readId > 0 ) {
         INSDC_coord_zero read_start;
         INSDC_coord_len read_len;
         if( (rc = IlluminaReader_SpotReadInfo(self, readId, NULL, NULL, NULL, &read_start, &read_len)) == 0 ) {
             sz = read_len;
-            p = self->qual1->base;
-            p += read_start;
+            p = (*self->qual1) + read_start;
         }
     } else {
         uint32_t spot_len;
         if( (rc = IlluminaReader_SpotInfo(self, NULL, NULL, NULL, NULL, NULL, NULL, &spot_len, NULL)) == 0 ) {
             sz = spot_len;
-            p = self->qual1->base;
+            p = *self->qual1;
         }
     }
     if( rc == 0 ) {
@@ -428,13 +376,8 @@ LIB_EXPORT rc_t CC IlluminaReaderQuality4(const IlluminaReader* self, char* data
             uint32_t len = 0;
             for(sz = 0; rc == 0 && len < spot_len; len++, q4 += 4) {
                 x = snprintf(&data[sz], dsize - sz, "%s%4d %4d %4d %4d", len > 0 ? "\t" : "", q4[0], q4[1], q4[2], q4[3]);
-#if SNPRINTF_ACTUALLY_WORKED_THE_WAY_YOU_THINK
                 if( x < 0 ) {
                     rc = RC(rcSRA, rcString, rcConstructing, rcNoObj, rcUnknown);
-#else
-                if( x < 0 || ( size_t ) sz + x >= dsize ) {
-                    rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
-#endif
                 }
                 sz += x;
             }
@@ -451,7 +394,6 @@ LIB_EXPORT rc_t CC IlluminaReaderQSeq(const IlluminaReader* self, uint32_t readI
     size_t spotname_sz;
     uint32_t nreads, spotlen;
     INSDC_coord_val lane, tile, x, y;
-    int sz = 0;
 
     CHECK_SELF(IlluminaReader);
     CHECK_SPOT(me->dad);
@@ -471,7 +413,7 @@ LIB_EXPORT rc_t CC IlluminaReaderQSeq(const IlluminaReader* self, uint32_t readI
             int sg_sz = 1;
             const char* runid = "0";
             size_t runid_sz = 1;
-            int i = 0;
+            int sz = 0, i = 0;
 
             if( spotname_sz > 0 ) {
                 const char* c = spotname + spotname_sz;
@@ -503,19 +445,17 @@ LIB_EXPORT rc_t CC IlluminaReaderQSeq(const IlluminaReader* self, uint32_t readI
             }
             i = snprintf(data, dsize, "%.*s\t%.*s\t%d\t%d\t%d\t%d\t%.*s\t%d\t",
                 (int)spotname_sz, spotname, (int)runid_sz, runid, lane, tile, x, y, sg_sz, sg, readId > 0 ? readId : 1);
-#if SNPRINTF_ACTUALLY_WORKED_THE_WAY_YOU_THINK
             if( i < 0 ) {
                 rc = RC(rcSRA, rcString, rcConstructing, rcNoObj, rcUnknown);
-#else
-            if( i < 0 || ( size_t ) i >= dsize ) {
-                rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
-#endif
             } else {
                 sz += i;
                 i = sz; /* save length of initial part */
 
                 /* precalc full line length: seq\tqual\tflt */
                 sz += 2 * (read_len + 1) + 1;
+                if( written != NULL ) {
+                    *written = sz;
+                }
                 if( sz >= (int)dsize ) {
                     rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
                 } else {
@@ -544,13 +484,10 @@ LIB_EXPORT rc_t CC IlluminaReaderQSeq(const IlluminaReader* self, uint32_t readI
                     }
                     sz += read_len;
                     data[sz++] = '\t';
-                    if( self->qual1 && self->qual1->size ) {
-                        const uint8_t* p = self->qual1->base;
-                        for(i = 0; i < read_len; i++) {
-                            data[sz + i] = p[read_start + i] + 64;
-                        }
-                        sz += read_len;
+                    for(i = 0; i < read_len; i++) {
+                        data[sz + i] = (*self->qual1)[read_start + i] + 64;
                     }
+                    sz += read_len;
                     data[sz++] = '\t';
                     data[sz++] = flt;
                     data[sz] = '\0';
@@ -558,8 +495,5 @@ LIB_EXPORT rc_t CC IlluminaReaderQSeq(const IlluminaReader* self, uint32_t readI
             }
         }
     }
-    if( written != NULL ) {
-        *written = sz;
-    }
     return rc;
 }
diff --git a/libs/sra/reader-sff.c b/libs/sra/reader-sff.c
index eba2632..3b1fe0e 100644
--- a/libs/sra/reader-sff.c
+++ b/libs/sra/reader-sff.c
@@ -33,14 +33,12 @@
 
 #include "reader-cmn.h"
 
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#   include <byteswap.h>
-#else
-#   define bswap_16(x) (x)
-#   define bswap_32(x) (x)
-#endif
+#include <byteswap.h>
 #include <string.h>
 
+/* remove after initial testing is done */
+#define SFF_READER_AS_OLD_VERSION 0
+
 /* column order is important here: see Init function below!!! */
 static
 const SRAReaderColumn SFFReader_master_columns_desc[] = {
@@ -50,10 +48,17 @@ const SRAReaderColumn SFFReader_master_columns_desc[] = {
     {SRAREADER_COL_MANDATORY, "QUALITY", insdc_phred_t, NULL, NULL, 0},
     {SRAREADER_COL_MANDATORY, "SIGNAL", ncbi_isamp1_t, NULL, NULL, 0},
     {SRAREADER_COL_MANDATORY, "POSITION", "INSDC:position:one", NULL, NULL, 0},
+#if SFF_READER_AS_OLD_VERSION
+    {SRAREADER_COL_OPTIONAL, "CLIP_QUALITY_LEFT", vdb_uint16_t, NULL, NULL, 0},
+    {SRAREADER_COL_OPTIONAL, "CLIP_QUALITY_RIGHT", vdb_uint16_t, NULL, NULL, 0},
+    {SRAREADER_COL_OPTIONAL, "CLIP_ADAPTER_LEFT", vdb_uint16_t, NULL, NULL, 0},
+    {SRAREADER_COL_OPTIONAL, "CLIP_ADAPTER_RIGHT", vdb_uint16_t, NULL, NULL, 0},
+#else
     {SRAREADER_COL_OPTIONAL, "CLIP_QUALITY_LEFT", "INSDC:coord:one", NULL, NULL, 0},
     {SRAREADER_COL_OPTIONAL, "CLIP_QUALITY_RIGHT", "INSDC:coord:one", NULL, NULL, 0},
     {SRAREADER_COL_OPTIONAL, "CLIP_ADAPTER_LEFT", "INSDC:coord:one", NULL, NULL, 0},
     {SRAREADER_COL_OPTIONAL, "CLIP_ADAPTER_RIGHT", "INSDC:coord:one", NULL, NULL, 0},
+#endif
     {0, NULL, NULL, NULL, NULL, 0} /* terminator */
 };
 
@@ -64,13 +69,20 @@ struct SFFReader {
     const SRAReaderColumn* flow_chars;
     const SRAReaderColumn* key_seq;
     const SRAReaderColumn* read;
-    const SRAReaderColumn* qual1;
-    const SRAReaderColumn* signal;
-    const SRAReaderColumn* position;
+    const INSDC_quality_phred** qual1;
+    const uint16_t** signal;
+    const INSDC_position_one** position;
+#if SFF_READER_AS_OLD_VERSION
+    const int16_t** clip_q_left;
+    const int16_t** clip_q_right;
+    const int16_t** clip_adapter_left;
+    const int16_t** clip_adapter_right;
+#else
     const INSDC_coord_one** clip_q_left;
     const INSDC_coord_one** clip_q_right;
     const INSDC_coord_one** clip_adapter_left;
     const INSDC_coord_one** clip_adapter_right;
+#endif
 };
 
 static
@@ -86,9 +98,9 @@ rc_t SFFReaderInit(const SFFReader* self)
         (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[0], &me->flow_chars, NULL)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[1], &me->key_seq, NULL)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[2], &me->read, NULL)) == 0 &&
-        (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[3], &me->qual1, NULL)) == 0 &&
-        (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[4], &me->signal, NULL)) == 0 &&
-        (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[5], &me->position, NULL)) == 0 &&
+        (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[3], NULL, (const void***)&self->qual1)) == 0 &&
+        (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[4], NULL, (const void***)&self->signal)) == 0 &&
+        (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[5], NULL, (const void***)&self->position)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[6], NULL, (const void***)&self->clip_q_left)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[7], NULL, (const void***)&self->clip_q_right)) == 0 &&
         (rc = SRAReader_FindColData(&self->dad, &SFFReader_master_columns_desc[8], NULL, (const void***)&self->clip_adapter_left)) == 0 &&
@@ -256,27 +268,19 @@ LIB_EXPORT rc_t CC SFFReaderReadHeader(const SFFReader* self, char* data, size_t
 LIB_EXPORT rc_t CC SFFReaderReadData(const SFFReader* self, char* data, size_t dsize, size_t* written)
 {
     rc_t rc = 0;
-    size_t flows, len, padding;
+    size_t flows, len = 0;
     uint32_t spot_len;
-    /* SFF type defining vars, not used */
-    const uint16_t sff_signal;
-    const uint8_t sff_position;
-    const char sff_bases;
-    const uint8_t sff_quality;
 
     CHECK_SELF(SFFReader);
     CHECK_SPOT(me->dad);
 
-    /* if for some reason READ, QUAL and POSITION rows are uneqaul in size,
-       base their length on actual READ size */
-    spot_len = self->read->size / sizeof(INSDC_dna_text);
-    /* this size if fixed across the file */
-    flows = self->flow_chars->size / sizeof(INSDC_dna_text);
+    flows = self->flow_chars->size;
 
-    /* read data section size: per SFF spec types sizes + 8-byte padding */
-    len = flows * sizeof(sff_signal) + spot_len * (sizeof(sff_position) + sizeof(sff_bases) + sizeof(sff_quality));
-    padding = (len % 8) ? (8 - (len % 8)) : 0;
-    len += padding;
+    if( (rc = SFFReader_SpotInfo(self, NULL, NULL, &spot_len, NULL)) != 0 ) {
+        return rc;
+    }
+    len = flows * 2 + spot_len * 3;
+    len += (len % 8) ? (8 - (len % 8)) : 0;
 
     if( written != NULL ) {
         *written = len;
@@ -284,52 +288,23 @@ LIB_EXPORT rc_t CC SFFReaderReadData(const SFFReader* self, char* data, size_t d
     if( len > dsize ) {
         rc = RC(rcSRA, rcString, rcConstructing, rcMemory, rcInsufficient);
     } else {
-        size_t qty;
-        INSDC_position_one ppos;
-        const uint16_t* signal = self->signal->base;
-        uint16_t* dst_sig = (uint16_t*)data;
-        const INSDC_position_one* position = self->position->base;
-
-        qty = self->signal->size / sizeof(*signal);
-        if( qty > flows ) {
-            qty = flows;
-        }
-        for(len = 0; len < qty; len++) {
-            dst_sig[len] = bswap_16(signal[len]);
-        }
-        if( qty < flows ) {
-            memset(&data[qty * sizeof(sff_signal)], 0, (flows - qty) * sizeof(sff_signal));
-        }
-        data += flows * sizeof(sff_signal);
+        size_t offset = 0;
+        uint8_t ppos = 0;
 
-        qty = self->position->size / sizeof(*position);
-        if( qty > spot_len ) {
-            qty = spot_len;
-        }
-        for(ppos = 0, len = 0; len < qty; len++) {
-            data[len] = (uint8_t)(position[len] - ppos);
-            ppos = position[len];
-        }
-        if( qty < spot_len ) {
-            memset(&data[qty], 0, (spot_len - qty) * sizeof(sff_position));
-        }
-        data += spot_len;
-
-        /* this are guaranteed above to be same length */
-        memcpy(data, self->read->base, spot_len);
-        data += spot_len;
-
-        qty = self->qual1->size / sizeof(INSDC_quality_phred);
-        if( qty > spot_len ) {
-            qty = spot_len;
-        }
-        memcpy(data, self->qual1->base, qty);
-        if( qty < spot_len ) {
-            memset(&data[qty], 0, (spot_len - qty) * sizeof(sff_quality));
+        memset(data, 0, len);
+        for(len = 0; len < flows; len++) {
+            const uint16_t x = bswap_16((*self->signal)[len]);
+            memcpy(&data[len * 2], &x, 2);
         }
-        if( padding > 0 ) {
-            memset(&data[spot_len], 0, padding);
+        offset = flows * 2;
+        for(len = 0; len < spot_len; len++) {
+            data[offset + len] = (*self->position)[len] - ppos;
+            ppos = (uint8_t)( (*self->position)[len] );
         }
+        offset += spot_len;
+        memcpy(&data[offset], self->read->base, spot_len);
+        offset += spot_len;
+        memcpy(&data[offset], *self->qual1, spot_len);
     }
     return rc;
 }
diff --git a/libs/sra/sra-dflt-schema.c b/libs/sra/sra-dflt-schema.c
index cbaacf7..9235481 100644
--- a/libs/sra/sra-dflt-schema.c
+++ b/libs/sra/sra-dflt-schema.c
@@ -36,6 +36,7 @@
 #include <klib/out.h>
 #include <klib/rc.h>
 #include <klib/namelist.h>
+#include <fmtdef.h>
 #include <os-native.h>
 #include <sysalloc.h>
 
diff --git a/libs/sra/sra-priv.h b/libs/sra/sra-priv.h
index c5798c5..3c74a9c 100644
--- a/libs/sra/sra-priv.h
+++ b/libs/sra/sra-priv.h
@@ -59,11 +59,7 @@ struct VTable;
 struct VCursor;
 struct VTypedecl;
 struct VTypedef;
-struct VResolver;
-struct SRACache;
 
-#define CSRA_EXT(lite) (lite ? ".lite.sra" : ".sra")
-#define SRA_EXT(lite) (lite ? ".lite.sra" : ".sra")
 
 /*--------------------------------------------------------------------------
  * SRAMgr
@@ -72,12 +68,7 @@ struct SRAMgr
 {
     struct VDBManager KONST *vmgr;
     struct VSchema const *schema;
-#if OLD_SRAPATH_MGR
-    struct SRAPath volatile *_pmgr;
-#else
-    struct VResolver volatile *_pmgr;
-#endif
-    struct SRACache* cache;
+    struct SRAPath *pmgr;
     KRefcount refcount;
     KCreateMode mode;
     bool read_only;
@@ -95,12 +86,6 @@ SRAMgr *SRAMgrAttach ( const SRAMgr *self );
 rc_t SRAMgrSever ( const SRAMgr *self );
 
 
-/* AccessSRAPath
- *  returns a new reference to SRAPath
- *  do NOT access "pmgr" directly
- */
-struct SRAPath *SRAMgrAccessSRAPath ( const SRAMgr *self );
-
 /*--------------------------------------------------------------------------
  * SRATable
  */
@@ -154,9 +139,9 @@ rc_t SRATableColDatatype ( const SRATable *self, uint32_t idx,
 rc_t SRATableGetIdRange ( const SRATable *self, uint32_t idx,
     spotid_t id, spotid_t *pfirst, spotid_t *last );
 
+rc_t SRATableLoadMetadata(SRATable *self);
 rc_t ResolveTablePath ( const SRAMgr *mgr, char *path, size_t psize, const char *spec, va_list args );
-
-rc_t SRATableFillOut ( SRATable *self, bool update );
+    
     
 /*--------------------------------------------------------------------------
  * SRAColumn
diff --git a/libs/sra/sracache.c b/libs/sra/sracache.c
deleted file mode 100644
index ef8a833..0000000
--- a/libs/sra/sracache.c
+++ /dev/null
@@ -1,466 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <sra/extern.h>
-#include <sra/sradb-priv.h>
-
-#include <sysalloc.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include <strtol.h>
-
-#include <klib/rc.h>
-
-#include <kproc/lock.h>
-
-/* some of the above #defines index on sun */
-#undef index
-
-/*================================== SRACacheMetrics ==================================*/
-static
-void 
-MetricsInit(SRACacheMetrics* self, const SRATable* table)
-{
-    self->bytes     = 0;/* TBD */
-    self->elements  = 1;
-    self->threads   = 0;/* TBD */
-    self->fds       = 0;/* TBD */
-}
-
-LIB_EXPORT
-bool CC
-SRACacheMetricsLessThan(const SRACacheMetrics* a, const SRACacheMetrics* b)
-{
-    if (a->bytes > 0 && b->bytes > 0 && a->bytes >= b->bytes)
-        return false;
-    if (a->elements > 0 && b->elements > 0 && a->elements >= b->elements)
-        return false;
-    if (a->threads > 0 && b->threads > 0 && a->threads >= b->threads)
-        return false;
-    if (a->fds > 0 && b->fds > 0 && a->fds >= b->fds)
-        return false;
-    return true;
-}
-
-static
-void 
-MetricsAdd(SRACacheMetrics* a, const SRACacheMetrics* b)
-{
-    a->bytes    += b->bytes;
-    a->elements += b->elements;
-    a->threads  += b->threads;
-    a->fds      += b->fds;
-}
-
-static
-void 
-MetricsSubtract(SRACacheMetrics* a, const SRACacheMetrics* b)
-{
-    a->bytes    -= b->bytes;
-    a->elements -= b->elements;
-    a->threads  -= b->threads;
-    a->fds      -= b->fds;
-}
-
-/*================================== SRACacheElement ==================================*/
-LIB_EXPORT rc_t CC SRACacheElementMake(SRACacheElement**        self, 
-                                       SRATable*                object, 
-                                       struct SRACacheIndex*    index, 
-                                       uint32_t                 key, 
-                                       const SRACacheMetrics*   metrics)
-{
-    rc_t rc = 0;
-    if ( self == NULL || object == NULL || index == NULL || metrics == NULL )
-        return RC( rcSRA, rcNode, rcConstructing, rcParam, rcNull );
-        
-    *self = malloc(sizeof(**self));
-    if (self == NULL)
-        rc = RC ( rcSRA, rcNode, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        (*self)->dad.next = NULL;
-        (*self)->dad.prev = NULL;
-        
-        (*self)->object = object;
-        SRATableAddRef(object);
-        
-        (*self)->index = index;
-        
-        (*self)->key = key;
-        
-        memcpy(&(*self)->metrics, metrics, sizeof((*self)->metrics));
-    }
-        
-    return rc;
-}
-
-LIB_EXPORT rc_t CC SRACacheElementDestroy(SRACacheElement* self)
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        return RC( rcSRA, rcNode, rcDestroying, rcSelf, rcNull );
-        
-    rc = SRATableRelease(self->object);
-    
-    free(self);
-    
-    return rc;
-}
-
-/*================================== SRACacheIndex ==================================*/
-LIB_EXPORT rc_t CC SRACacheIndexMake(SRACacheIndex** self, String* prefix)
-{
-    rc_t rc = 0;
-    if ( self == NULL || prefix == NULL )
-        return RC( rcSRA, rcIndex, rcConstructing, rcParam, rcNull );
-        
-    *self = malloc(sizeof(**self));
-    if (self == NULL)
-        rc = RC ( rcSRA, rcIndex, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        memset(*self, 0, sizeof(**self));
-        rc = StringCopy((const String**)&(*self)->prefix, prefix);
-        if (rc == 0)
-        {
-            rc = KVectorMake(&(*self)->body);
-            if (rc != 0)
-                StringWhack((*self)->prefix);
-        }
-        
-        if (rc != 0)
-        {
-            free(*self);
-            *self = NULL;
-        }
-    }
-    
-    return rc;
-}
-
-LIB_EXPORT rc_t CC SRACacheIndexDestroy(SRACacheIndex* self)
-{
-    rc_t rc;
-    if ( self == NULL  )
-        return RC( rcSRA, rcIndex, rcDestroying, rcSelf, rcNull );
-        
-    rc = KVectorRelease(self->body);
-    StringWhack(self->prefix);
-    free(self);
-    return rc;
-}
-
-/*================================== SRACache ==================================*/
-
-LIB_EXPORT rc_t CC SRACacheInit(SRACache** self)
-{
-    rc_t rc = 0;
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcConstructing, rcSelf, rcNull );
-        
-    *self = malloc(sizeof(**self));
-    if (*self == NULL)
-        rc = RC ( rcSRA, rcData, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        BSTreeInit( & (*self)->indexes );
-        DLListInit( & (*self)->lru );
-        
-        (*self)->softThreshold.bytes    = SRACacheThresholdSoftBytesDefault;
-        (*self)->softThreshold.elements = SRACacheThresholdSoftElementsDefault;
-        (*self)->softThreshold.threads  = SRACacheThresholdSoftThreadsDefault;
-        (*self)->softThreshold.fds      = SRACacheThresholdSoftFdsDefault;        
-                                          
-        (*self)->hardThreshold.bytes    = SRACacheThresholdHardBytesDefault;
-        (*self)->hardThreshold.elements = SRACacheThresholdHardElementsDefault;
-        (*self)->hardThreshold.threads  = SRACacheThresholdHardThreadsDefault;
-        (*self)->hardThreshold.fds      = SRACacheThresholdHardFdsDefault;        
-        
-        memset(&(*self)->usage, 0, sizeof(*self)->usage);
-        
-        rc = KLockMake(&(*self)->mutex);
-    }        
-    
-    return rc;
-}
-
-LIB_EXPORT rc_t CC SRACacheGetSoftThreshold(SRACache* self, SRACacheMetrics* metrics)
-{
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcSelf, rcNull );
-    if (metrics == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcParam, rcNull );
-    memcpy(metrics, &self->softThreshold, sizeof(self->softThreshold));
-    return 0;
-}
-
-LIB_EXPORT rc_t CC SRACacheSetSoftThreshold(SRACache* self, const SRACacheMetrics* metrics)
-{
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcUpdating, rcSelf, rcNull );
-    if (metrics == NULL)
-        return RC( rcSRA, rcData, rcUpdating, rcParam, rcNull );
-    memcpy(&self->softThreshold, metrics, sizeof(self->softThreshold));
-    return 0;
-}
-
-LIB_EXPORT rc_t CC SRACacheGetHardThreshold(SRACache* self, SRACacheMetrics* metrics)
-{
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcSelf, rcNull );
-    if (metrics == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcParam, rcNull );
-    memcpy(metrics, &self->hardThreshold, sizeof(self->hardThreshold));
-    return 0;
-}
-
-LIB_EXPORT rc_t CC SRACacheSetHardThreshold(SRACache* self, const SRACacheMetrics* metrics)
-{
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcUpdating, rcSelf, rcNull );
-    if (metrics == NULL)
-        return RC( rcSRA, rcData, rcUpdating, rcParam, rcNull );
-    memcpy(&self->hardThreshold, metrics, sizeof(self->hardThreshold));
-    return 0;
-}
-
-static void CC SRACacheIndexDestructor(BSTNode *n, void *data)
-{
-    SRACacheIndexDestroy((SRACacheIndex*)n);
-}
-static void CC SRACacheElementDestructor(DLNode *n, void *data)
-{
-    SRACacheElementDestroy((SRACacheElement*)n);
-}
-
-LIB_EXPORT rc_t CC SRACacheWhack(SRACache* self)
-{
-    rc_t rc = 0;
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcDestroying, rcSelf, rcNull );
-
-    BSTreeWhack(&self->indexes, SRACacheIndexDestructor, NULL);
-    DLListWhack(&self->lru, SRACacheElementDestructor, NULL);
-    
-    rc = KLockRelease(self->mutex);
-    free(self);
-    return rc;
-}
-
-LIB_EXPORT rc_t CC SRACacheGetUsage(SRACache* self, SRACacheMetrics* metrics)
-{
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcSelf, rcNull );
-    if (metrics == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcParam, rcNull );
-    memcpy(metrics, &self->usage, sizeof(self->usage));
-    return 0;
-}
-
-static
-int CC IndexCmp (const BSTNode * item, const BSTNode * n)
-{
-    return StringCompare( ((const SRACacheIndex *)item)->prefix, ((const SRACacheIndex *)n)->prefix );
-}
-    
-static
-int CC PrefixCmp (const void * item, const BSTNode * n)
-{
-    return StringCompare( (const String*)item, ((const SRACacheIndex *)n)->prefix );
-}
-    
-static
-rc_t
-AddNewIndex(BSTree* indexes, String* prefix, SRACacheIndex** newIdx)
-{
-    rc_t rc = SRACacheIndexMake(newIdx, prefix);
-    if (rc == 0)
-    {
-        rc = BSTreeInsert(indexes, &(*newIdx)->dad, IndexCmp);
-        if (rc != 0)
-            SRACacheIndexDestroy(*newIdx);
-    }
-    return rc;
-}
-
-static
-rc_t
-ParseAccessionName(const char *acc, String* prefix, uint32_t* key)
-{
-    rc_t rc = 0;
-    
-    /*  extract the alphabetic prefix from the accession's name */
-    size_t prefLen = 0;
-    while (acc[prefLen] != 0 && isalpha(acc[prefLen]))
-        ++prefLen;
-    StringInit(prefix, acc, prefLen, prefLen);
-    
-    {   /* the numeric key will be the rest of the accession's name, if fully numeric */
-        char *end;
-        *key = strtou32 ( acc + prefLen, & end, 10 );
-        if ( end [ 0 ] != 0 )
-            rc = RC( rcSRA, rcData, rcAccessing, rcName, rcInvalid );
-    }
-    return rc;
-}
-
-LIB_EXPORT rc_t CC SRACacheAddTable(SRACache* self, const char* acc, SRATable* table)
-{ /* if crosses soft threshold, signal BG thread to wake up */
-    rc_t rc = 0;
-    String prefix;
-    uint32_t key;
-    
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcSelf, rcNull );
-    if (acc == NULL || acc[0] == 0 || table == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcParam, rcNull );
-
-    rc = ParseAccessionName(acc, &prefix, &key);
-    if (rc == 0)
-    {
-        rc = KLockAcquire(self->mutex);
-        if (rc == 0)
-        {
-            SRACacheIndex* index = (SRACacheIndex*) BSTreeFind ( &self->indexes, &prefix, PrefixCmp );
-            if (index == NULL)
-                rc = AddNewIndex( &self->indexes, &prefix, &index );
-                
-            if (rc == 0)
-            {
-                SRACacheElement* elem = NULL;
-                rc = KVectorGetPtr ( index->body, key, (void**)&elem );   
-                if (rc == 0 && elem != NULL) /* table already in cache */
-                    rc = RC( rcSRA, rcData, rcInserting, rcParam, rcExists );
-                else if (GetRCState(rc) == rcNotFound)
-                {
-                    SRACacheMetrics metrics;
-                    MetricsInit(&metrics, table);
-                    rc = SRACacheElementMake(&elem, table, index, key, &metrics);
-                    if (rc == 0)
-                    {
-                        rc = KVectorSetPtr( index->body, key, elem );
-                        if (rc != 0)
-                            SRACacheElementDestroy(elem);
-                        else
-                        {   /* success - update global usage and time-sorted list */
-                            MetricsAdd(&self->usage, &metrics);
-                            DLListPushTail( &self->lru, (DLNode*)elem );
-                        }
-                    }
-                }
-            }
-                
-            {
-                rc_t rc2 = KLockUnlock(self->mutex);
-                if (rc == 0)
-                    rc = rc2;
-            }
-        }
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC SRACacheGetTable(SRACache* self, const char* acc, const SRATable** object)
-{
-    rc_t rc = 0;
-    String prefix;
-    uint32_t key;
-    
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcSelf, rcNull );
-    if (acc == NULL || acc[0] == 0 || object == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcParam, rcNull );
-
-    *object = NULL;
-    
-    rc = ParseAccessionName(acc, &prefix, &key);
-    if (rc == 0)
-    {
-        rc = KLockAcquire(self->mutex);
-        if (rc == 0)
-        {
-            SRACacheIndex* index = (SRACacheIndex*) BSTreeFind ( &self->indexes, &prefix, PrefixCmp );
-            if (index != NULL)
-            {
-                SRACacheElement* elem = NULL;
-                rc = KVectorGetPtr ( index->body, key, (void**)&elem );   
-                if (rc == 0 && elem != NULL) 
-                {   /* move to the least recently used position */
-                    DLListUnlink    ( &self->lru, &elem->dad );
-                    DLListPushTail  ( &self->lru, &elem->dad );
-                    
-                    *object = elem->object;
-                }
-                else if (GetRCState(rc) == rcNotFound || elem == NULL)
-                    rc = 0;
-            }
-                
-            {
-                rc_t rc2 = KLockUnlock(self->mutex);
-                if (rc == 0)
-                    rc = rc2;
-            }
-        }
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC SRACacheFlush(SRACache* self)
-{
-    rc_t rc = 0;
-    if (self == NULL)
-        return RC( rcSRA, rcData, rcAccessing, rcSelf, rcNull );
-        
-    rc = KLockAcquire(self->mutex);
-    if (rc == 0)
-    {
-        while ( ! SRACacheMetricsLessThan( &self->usage, &self->softThreshold ) )
-        {
-            SRACacheElement* toFlush = (SRACacheElement*) DLListPopHead( &self->lru );
-            if (toFlush == NULL)
-                break;
-            rc = KVectorUnset( toFlush->index->body, toFlush->key );
-            if (rc != 0)
-                break; /* something is badly wrong */
-            MetricsSubtract( &self->usage, &toFlush->metrics );
-            rc = SRACacheElementDestroy(toFlush);
-            if (rc != 0)
-                break;
-        }
-        
-        {
-            rc_t rc2 = KLockUnlock(self->mutex);
-            if (rc == 0)
-                rc = rc2;
-        }
-    }
-
-    return rc;
-}
diff --git a/libs/sra/sramgr-cmn.c b/libs/sra/sramgr-cmn.c
index fbfde97..d73264b 100644
--- a/libs/sra/sramgr-cmn.c
+++ b/libs/sra/sramgr-cmn.c
@@ -26,25 +26,21 @@
 
 #include <sra/extern.h>
 
-#include <klib/namelist.h>
-#include <klib/refcount.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <kfs/directory.h>
-#include <kfg/config.h>
-#include <vfs/manager.h>
-#include <vfs/resolver.h>
-#include <kdb/manager.h>
-#include <kdb/kdb-priv.h>
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/vdb-priv.h>
 #include <sra/sradb.h>
 #include <sra/sraschema.h>
 #include <sra/srapath.h>
 #include <sra/sradb-priv.h>
+#include <vdb/manager.h>
+#include <vdb/schema.h>
+#include <vdb/vdb-priv.h>
+#include <kdb/manager.h>
+#include <kdb/kdb-priv.h>
+#include <kfs/directory.h>
+#include <klib/namelist.h>
+#include <klib/refcount.h>
+#include <klib/log.h>
+#include <klib/rc.h>
 #include <sysalloc.h>
-#include <atomic.h>
 
 #include "sra-priv.h"
 
@@ -64,18 +60,11 @@ rc_t SRAMgrWhack ( const SRAMgr *that )
 
     VSchemaRelease ( self -> schema );
     VDBManagerRelease ( self -> vmgr );
-    SRACacheWhack ( self -> cache );
-    
+
     /* must check here for NULL because
        SRAPathRelease is weak-linked */
-    if ( self -> _pmgr != NULL )
-    {
-#if OLD_SRAPATH_MGR
-        SRAPathRelease ( self -> _pmgr );
-#else
-        VResolverRelease ( ( const VResolver* ) self -> _pmgr );
-#endif
-    }
+    if ( self -> pmgr != NULL )
+        SRAPathRelease ( self -> pmgr );
 
     free ( self );
     return 0;
@@ -157,37 +146,16 @@ rc_t SRAMgrSever ( const SRAMgr *self )
 static
 rc_t SRAMgrInitPath ( SRAMgr *mgr, const KDirectory *wd )
 {
-#if OLD_SRAPATH_MGR
     /* try to make the path manager */
-    rc_t rc = SRAPathMake ( & mgr -> _pmgr, wd );
-
+    rc_t rc = SRAPathMake ( & mgr -> pmgr, wd );
     if ( GetRCState ( rc ) == rcNotFound && GetRCTarget ( rc ) == rcDylib )
     {
         /* we are operating outside of the archive */
-        assert ( mgr -> _pmgr == NULL );
+        assert ( mgr -> pmgr == NULL );
         rc = 0;
     }
 
     return rc;
-#else
-    KConfig *kfg;
-    rc_t rc = KConfigMake ( & kfg, NULL );
-    if ( rc == 0 )
-    {
-        VFSManager *vfs;
-        rc = VFSManagerMake ( & vfs );
-        if ( rc == 0 )
-        {
-            rc = VFSManagerMakeResolver ( vfs, ( VResolver** ) & mgr -> _pmgr, kfg );
-            VFSManagerRelease ( vfs );
-        }
-        KConfigRelease ( kfg );
-    }
-    if ( rc != 0 )
-        mgr -> _pmgr = NULL;
-
-    return 0;
-#endif
 }
 
 rc_t SRAMgrMake ( SRAMgr **mgrp,
@@ -208,17 +176,13 @@ rc_t SRAMgrMake ( SRAMgr **mgrp,
             rc = SRAMgrInitPath ( mgr, wd );
             if ( rc == 0 )
             {
-                rc = SRACacheInit ( & mgr -> cache );
-                if ( rc == 0 )
-                {
-                    KRefcountInit ( & mgr -> refcount, 1, "SRAMgr", "SRAMgrMake", "sramgr" );
-                    mgr -> vmgr = vmgr;
-                    mgr -> schema = schema;
-                    mgr -> mode = kcmCreate; /* TBD - should this include parents? */
-                    mgr -> read_only = true;
-                    * mgrp = mgr;
-                    return 0;
-                }
+                KRefcountInit ( & mgr -> refcount, 1, "SRAMgr", "SRAMgrMake", "sramgr" );
+                mgr -> vmgr = vmgr;
+                mgr -> schema = schema;
+                mgr -> mode = kcmCreate; /* TBD - should this include parents? */
+                mgr -> read_only = true;
+                * mgrp = mgr;
+                return 0;
             }
 
             VSchemaRelease ( schema );
@@ -263,24 +227,6 @@ LIB_EXPORT rc_t CC SRAMgrWritable ( const SRAMgr *self,
 }
 
 
-/* AccessSRAPath
- *  returns a new reference to SRAPath
- *  do NOT access "pmgr" directly
- */
-SRAPath *SRAMgrAccessSRAPath ( const SRAMgr *cself )
-{
-    SRAMgr *self = ( SRAMgr* ) cself;
-    if ( self != NULL )
-    {
-#if OLD_SRAPATH_MGR
-        /* get a pointer to object - read is expected to be atomic */
-        SRAPath *pold = self -> _pmgr;
-#endif
-    }
-    return NULL;
-}
-
-
 /* GetSRAPath
  *  retrieve a reference to SRAPath object in use - may be NULL
  * UseSRAPath
@@ -289,7 +235,7 @@ SRAPath *SRAMgrAccessSRAPath ( const SRAMgr *cself )
 LIB_EXPORT rc_t CC SRAMgrGetSRAPath ( const SRAMgr *self,
         SRAPath **path )
 {
-    rc_t rc = 0;
+    rc_t rc;
 
     if ( path == NULL )
         rc = RC ( rcSRA, rcMgr, rcAccessing, rcParam, rcNull );
@@ -297,21 +243,17 @@ LIB_EXPORT rc_t CC SRAMgrGetSRAPath ( const SRAMgr *self,
     {
         if ( self == NULL )
             rc = RC ( rcSRA, rcMgr, rcAccessing, rcSelf, rcNull );
-#if OLD_SRAPATH_MGR
-        else if ( self -> _pmgr == NULL )
+        else if ( self -> pmgr == NULL )
             rc = 0;
         else
         {
-            rc = SRAPathAddRef ( self -> _pmgr );
+            rc = SRAPathAddRef ( self -> pmgr );
             if ( rc == 0 )
             {
-                * path = self -> _pmgr;
+                * path = self -> pmgr;
                 return 0;
             }
         }
-#else
-        else
-#endif
 
         * path = NULL;
     }
@@ -326,16 +268,15 @@ LIB_EXPORT rc_t CC SRAMgrUseSRAPath ( const SRAMgr *cself, SRAPath *path )
 
     if ( self == NULL )
         rc = RC ( rcSRA, rcMgr, rcUpdating, rcSelf, rcNull );
-#if OLD_SRAPATH_MGR
-    else if ( path == self -> _pmgr )
+    else if ( path == self -> pmgr )
         rc = 0;
     else if ( path == NULL )
     {
         rc = 0;
-        if ( self -> _pmgr != NULL )
+        if ( self -> pmgr != NULL )
         {
-            SRAPathRelease ( self -> _pmgr );
-            self -> _pmgr = NULL;
+            SRAPathRelease ( self -> pmgr );
+            self -> pmgr = NULL;
         }
     }
     else
@@ -343,61 +284,14 @@ LIB_EXPORT rc_t CC SRAMgrUseSRAPath ( const SRAMgr *cself, SRAPath *path )
         rc = SRAPathAddRef ( path );
         if ( rc == 0 )
         {
-            SRAPathRelease ( self -> _pmgr );
-            self -> _pmgr = path;
+            SRAPathRelease ( self -> pmgr );
+            self -> pmgr = path;
         }
     }
-#else
-    else
-        rc = 0;
-#endif
 
     return rc;
 }
 
-LIB_EXPORT rc_t CC SRAMgrConfigReload( const SRAMgr *cself, const KDirectory *wd )
-{
-#if OLD_SRAPATH_MGR
-    SRAMgr *self = cself;
-
-    /* create a new SRAPath object */
-    SRAPath *pnew;
-    rc_t rc = SRAPathMake ( & pnew, wd );
-    if ( rc == 0 )
-    {
-        /* swap with the old guy */
-        SRAPath *pold = self -> _pmgr;
-        if ( atomic_test_and_set_ptr ( ( void *volatile* ) & self -> _pmgr, pnew, pold ) == ( void* ) pold )
-            SRAPathRelease ( pold );
-        else
-            SRAPathRelease ( pnew );
-    }
-
-    return rc;
-#else
-    return 0;
-#endif
-
-#if 0
-
-
-    /* do not reload VDBManager config for now
-       it cannot reload properly and grows in memory */
-    rc_t rc = 0;
-    /* (not thread) safely re-instanciate sra path config */
-    SRAMgr *self = (SRAMgr*)cself;
-    SRAPath* p = cself->_pmgr;
-    self->_pmgr = NULL;
-    if( (rc = SRAMgrInitPath(self, wd)) == 0 ) {
-        SRAPathRelease(p);
-    } else {
-        /* roll back */
-        self->_pmgr = p;
-    }
-    return rc;
-#endif
-
-}
 
 /* GetVDBManager
  *  returns a new reference to VDBManager used by SRAMgr
@@ -497,33 +391,6 @@ LIB_EXPORT rc_t CC SRAMgrGetTableModDate ( const SRAMgr *self,
     return rc;
 }
 
-LIB_EXPORT rc_t CC SRAMgrSingleFileArchiveExt(const SRAMgr *self, const char* spec, const bool lightweight, const char** ext)
-{
-    rc_t rc;
-
-    if( self == NULL || spec == NULL || ext == NULL ) {
-        rc = RC(rcSRA, rcFile, rcConstructing, rcParam, rcNull);
-    } else {
-        char buf[4096];
-        va_list args;
-
-        if( (rc = ResolveTablePath(self, buf, sizeof(buf), spec, args)) == 0 ) {
-            const KDBManager* kmgr;
-            if( (rc = SRAMgrGetKDBManagerRead(self, &kmgr)) == 0 ) {
-                int type = KDBManagerPathType(kmgr, buf) & ~kptAlias;
-                if( type == kptDatabase ) {
-                    *ext = CSRA_EXT(lightweight);
-                } else if( type == kptTable ) {
-                    *ext = SRA_EXT(lightweight);
-                } else {
-                    rc = RC(rcSRA, rcPath, rcResolving, rcType, rcUnknown);        
-                }
-                KDBManagerRelease(kmgr);
-            }
-        }
-    }
-    return rc;
-}
 
 /* FlushPath
  * FlushRun
@@ -547,14 +414,7 @@ LIB_EXPORT rc_t CC SRAMgrFlushRun ( const SRAMgr *self, const char *accession )
 
 LIB_EXPORT rc_t CC SRAMgrRunBGTasks ( const SRAMgr *self )
 {
-    rc_t rc;
-
-    if( self == NULL  )
-        rc = RC(rcSRA, rcFile, rcProcessing, rcSelf, rcNull);
-        
-    rc = SRACacheFlush(self->cache);
-    
-    return rc;
+    return 0;
 }
 
 
diff --git a/libs/vfs/srapath-stub.c b/libs/sra/srapath-stub.c
similarity index 78%
rename from libs/vfs/srapath-stub.c
rename to libs/sra/srapath-stub.c
index da0985d..7112df7 100644
--- a/libs/vfs/srapath-stub.c
+++ b/libs/sra/srapath-stub.c
@@ -24,10 +24,9 @@
 *
 */
 
-#include <sra/extern.h>
 #include <klib/rc.h>
 #include <klib/defs.h>
-#include <klib/refcount.h>
+#include <kfs/dyload.h>
 #include <sra/srapath.h>
 #include <sra/sradb-priv.h>
 #include <sysalloc.h>
@@ -39,12 +38,59 @@
 #include <assert.h>
 #include <stdio.h>
 
-
 /*--------------------------------------------------------------------------
  * SRAPath
  *  manages accession -> path conversion
  */
 
+/* LoadLibrary
+ *  loads libsraschema and fills out function pointers
+ */
+static KDylib *libsrapath = NULL;
+
+static struct
+{
+    rc_t ( CC * sraPathMake ) ( SRAPath **pm, struct KDirectory const *dir );
+
+} imports;
+
+static
+rc_t SRAPathLoadLibrary ( void )
+{
+    KDyld *dl;
+    rc_t rc = KDyldMake ( & dl );
+    if ( rc == 0 )
+    {
+        rc = KDyldLoadLib ( dl, & libsrapath, LPFX "sra-path" SHLX );
+	if (rc != 0){
+		rc = KDyldLoadLib ( dl, & libsrapath, NULL );
+	}
+        if ( rc == 0 )
+        {
+            KSymAddr *sym;
+
+            /* resolve symbols */
+            rc = KDylibSymbol ( libsrapath, & sym, "SRAPathMakeImpl" );
+            if ( rc == 0 )
+            {
+                KSymAddrAsFunc ( sym, ( fptr_t* ) & imports . sraPathMake );
+                KSymAddrRelease ( sym );
+            }
+
+            /* bail on error */
+            if ( rc != 0 )
+            {
+                KDylibRelease ( libsrapath );
+                libsrapath = NULL;
+                memset ( & imports, 0, sizeof imports );
+            }
+        }
+        KDyldRelease ( dl );
+    }
+
+    return rc;
+}
+
 /* Make
  *  create path manager
  *
@@ -55,36 +101,41 @@
  *  "dir" [ IN, NULL OKAY ] - optional root directory to use
  *  attaches a new reference
  */
-LIB_EXPORT rc_t CC SRAPathMake ( SRAPath **pm, struct KDirectory const *dir )
+rc_t CC SRAPathMake ( SRAPath **pm, struct KDirectory const *dir )
 {
-    rc_t rc;
-
-    if ( pm == NULL )
-        rc = RC ( rcSRA, rcMgr, rcConstructing, rcParam, rcNull );
-    else
+    if ( libsrapath == NULL )
     {
-        rc = SRAPathMakeImpl( pm, dir );
-        if ( rc == 0 )
-            return 0;
-
-        * pm = NULL;
+        rc_t rc = SRAPathLoadLibrary ();
+        if ( rc != 0 )
+        {
+            /* if the library couldn't be loaded,
+               return the error code plus NULL pointer */
+            if ( pm != NULL )
+                * pm = NULL;
+
+#if _DEBUGGING
+            return rc;
+#else
+            return RC ( rcFS, rcDylib, rcLoading, rcPath, rcNotFound );
+#endif
+        }
     }
 
-    return rc;
+    assert ( imports . sraPathMake != NULL );
+    return ( * imports . sraPathMake ) ( pm, dir );
 }
 
 
 /* AddRef
  * Release
  */
-LIB_EXPORT rc_t CC SRAPathAddRef ( const SRAPath *self )
+rc_t CC SRAPathAddRef ( const SRAPath *self )
 {
     if ( self != NULL )
     {
         switch ( self -> vt -> v1 . maj )
         {
         case 1:
-        case 2:
             return self -> vt -> v1 . addref ( self );
         }
 
@@ -93,14 +144,13 @@ LIB_EXPORT rc_t CC SRAPathAddRef ( const SRAPath *self )
     return 0;
 }
 
-LIB_EXPORT rc_t CC SRAPathRelease ( const SRAPath *self )
+rc_t CC SRAPathRelease ( const SRAPath *self )
 {
     if ( self != NULL )
     {
         switch ( self -> vt -> v1 . maj )
         {
         case 1:
-        case 2:
             return self -> vt -> v1 . release ( self );
         }
 
@@ -113,7 +163,7 @@ LIB_EXPORT rc_t CC SRAPathRelease ( const SRAPath *self )
 /* Version
  *  returns the library version
  */
-LIB_EXPORT rc_t CC SRAPathVersion ( const SRAPath *self, uint32_t *version )
+rc_t CC SRAPathVersion ( const SRAPath *self, uint32_t *version )
 {
     if ( version == NULL )
         return RC ( rcSRA, rcMgr, rcAccessing, rcParam, rcNull );
@@ -126,7 +176,6 @@ LIB_EXPORT rc_t CC SRAPathVersion ( const SRAPath *self, uint32_t *version )
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-    case 2:
         return self -> vt -> v1 . version ( self, version );
     }
 
@@ -137,7 +186,7 @@ LIB_EXPORT rc_t CC SRAPathVersion ( const SRAPath *self, uint32_t *version )
 /* Clear
  *  forget all existing server and volume paths
  */
-LIB_EXPORT rc_t CC SRAPathClear ( SRAPath *self )
+rc_t CC SRAPathClear ( SRAPath *self )
 {
     if ( self == NULL )
         return RC ( rcSRA, rcMgr, rcResetting, rcSelf, rcNull );
@@ -145,7 +194,6 @@ LIB_EXPORT rc_t CC SRAPathClear ( SRAPath *self )
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-    case 2:
         return self -> vt -> v1 . clear ( self );
     }
 
@@ -165,7 +213,7 @@ LIB_EXPORT rc_t CC SRAPathClear ( SRAPath *self )
  *  at which time the successful server is placed at the
  *  head of the search path.
  */
-LIB_EXPORT rc_t CC SRAPathAddRepPath ( SRAPath *self, const char *path )
+rc_t CC SRAPathAddRepPath ( SRAPath *self, const char *path )
 {
     if ( self == NULL )
         return RC ( rcSRA, rcMgr, rcUpdating, rcSelf, rcNull );
@@ -177,7 +225,6 @@ LIB_EXPORT rc_t CC SRAPathAddRepPath ( SRAPath *self, const char *path )
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-    case 2:
         return self -> vt -> v1 . addRepPath ( self, path );
     }
 
@@ -195,7 +242,7 @@ LIB_EXPORT rc_t CC SRAPathAddRepPath ( SRAPath *self, const char *path )
  *  NB - volumes are searched in the order provided,
  *  first to last. they are never re-ordered.
  */
-LIB_EXPORT rc_t CC SRAPathAddVolPath ( SRAPath *self, const char *path )
+rc_t CC SRAPathAddVolPath ( SRAPath *self, const char *path )
 {
     if ( self == NULL )
         return RC ( rcSRA, rcMgr, rcUpdating, rcSelf, rcNull );
@@ -207,7 +254,6 @@ LIB_EXPORT rc_t CC SRAPathAddVolPath ( SRAPath *self, const char *path )
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-    case 2:
         return self -> vt -> v1 . addVolPath ( self, path );
     }
 
@@ -230,7 +276,7 @@ LIB_EXPORT rc_t CC SRAPathAddVolPath ( SRAPath *self, const char *path )
  *  "path" [ OUT ] and "path_max" [ IN ] - return buffer for
  *  NUL-terminated full path to accession.
  */
-LIB_EXPORT rc_t CC SRAPathFull ( const SRAPath *self, const char *rep,
+rc_t CC SRAPathFull ( const SRAPath *self, const char *rep,
     const char *vol, const char *accession, char *path, size_t path_max )
 {
     if ( path_max == 0 )
@@ -258,7 +304,6 @@ LIB_EXPORT rc_t CC SRAPathFull ( const SRAPath *self, const char *rep,
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-    case 2:
         return self -> vt -> v1 . fullPath ( self, rep, vol, accession, path, path_max );
     }
 
@@ -272,7 +317,7 @@ LIB_EXPORT rc_t CC SRAPathFull ( const SRAPath *self, const char *rep,
  *
  *  "path" [ IN ] - NUL terminated path to run
  */
-LIB_EXPORT bool CC SRAPathTest ( const SRAPath *self, const char *path )
+bool CC SRAPathTest ( const SRAPath *self, const char *path )
 {
     if ( self == NULL )
         return false;
@@ -282,7 +327,6 @@ LIB_EXPORT bool CC SRAPathTest ( const SRAPath *self, const char *path )
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-    case 2:
         return self -> vt -> v1 . testPath ( self, path );
     }
 
@@ -303,7 +347,7 @@ LIB_EXPORT bool CC SRAPathTest ( const SRAPath *self, const char *path )
  *  path cannot be found, and rcInsufficient if buffer is
  *  too small.
  */
-LIB_EXPORT rc_t CC SRAPathFindWithRepLen ( const SRAPath *self,
+rc_t CC SRAPathFindWithRepLen ( const SRAPath *self,
     const char *accession, char *path, size_t path_max, size_t *rep_len )
 {
     if ( path == NULL )
@@ -311,13 +355,6 @@ LIB_EXPORT rc_t CC SRAPathFindWithRepLen ( const SRAPath *self,
     if ( path_max == 0 )
         return RC ( rcSRA, rcMgr, rcSelecting, rcBuffer, rcInsufficient );
 
-    /* looking for illegal character in the accession 'name'
-     * this will be the RC from something like "ncbi-acc:./SRR000001"
-     * or if this is called as a default resolution in the old manner
-     */
-    if ( strchr ( accession, '/' ) != NULL )
-        return RC ( rcSRA, rcUri, rcResolving, rcPath, rcIncorrect );
-
     path [ 0 ] = 0;
 
     if ( self == NULL )
@@ -330,21 +367,20 @@ LIB_EXPORT rc_t CC SRAPathFindWithRepLen ( const SRAPath *self,
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-    case 2:
         return self -> vt -> v1 . findPath ( self, accession, path, path_max, rep_len );
     }
 
     return RC ( rcSRA, rcMgr, rcSelecting, rcInterface, rcBadVersion );
 }
 
-LIB_EXPORT rc_t CC SRAPathFind ( const SRAPath *self,
+rc_t CC SRAPathFind ( const SRAPath *self,
     const char *accession, char *path, size_t path_max )
 {
     return SRAPathFindWithRepLen ( self, accession, path, path_max, NULL );
 }
 
 
-/* List (Deprecated)
+/* List
  *  list all runs known to SRAPath
  *  this can be VERY SLOW due to the large number of runs
  *
@@ -352,7 +388,7 @@ LIB_EXPORT rc_t CC SRAPathFind ( const SRAPath *self,
  *
  *  "deep" [ IN ] - when false, list only first responding server
  */
-LIB_EXPORT rc_t CC SRAPathList ( const SRAPath *self, struct KNamelist **runs, bool deep )
+rc_t CC SRAPathList ( const SRAPath *self, struct KNamelist **runs, bool deep )
 {
     if ( runs == NULL )
         return RC ( rcSRA, rcMgr, rcListing, rcParam, rcNull );
@@ -365,7 +401,7 @@ LIB_EXPORT rc_t CC SRAPathList ( const SRAPath *self, struct KNamelist **runs, b
     switch ( self -> vt -> v1 . maj )
     {
     case 1:
-        return RC ( rcSRA, rcMgr, rcListing, rcInterface, rcUnsupported ); /* removed from v1 */
+        return self -> vt -> v1 . listPath ( self, runs, deep );
     }
 
     return RC ( rcSRA, rcMgr, rcListing, rcInterface, rcBadVersion );
diff --git a/libs/sra/sraschema-stub.c b/libs/sra/sraschema-stub.c
index 2cfdc97..d672b42 100644
--- a/libs/sra/sraschema-stub.c
+++ b/libs/sra/sraschema-stub.c
@@ -26,21 +26,88 @@
 
 #include <sra/sraschema.h>
 #include <sra/sradb-priv.h>
+#include <kfs/dyload.h>
 #include <klib/rc.h>
 
+#include <sysalloc.h>
+#include <os-native.h>
+
 #include "sra-priv.h"
 
+#include <string.h>
+#include <assert.h>
+
+
 /*--------------------------------------------------------------------------
  * SRASchema
  *  a schema object pre-loaded with default SRA schema
  */
 
+#if ! _STATIC
+/* LoadLibrary
+ *  loads libsraschema and fills out function pointers
+ */
+static KDylib *libsraschema = NULL;
+
+static struct
+{
+    rc_t ( CC * sraSchemaMake ) ( struct VSchema **schema, struct VDBManager const *mgr );
+
+} imports;
+
+static
+rc_t SRASchemaLoadLibrary ( void )
+{
+    KDyld *dl;
+    rc_t rc = KDyldMake ( & dl );
+    if ( rc == 0 )
+    {
+        rc = KDyldLoadLib ( dl, & libsraschema, LPFX "sra-schema" SHLX );
+        if ( rc == 0 )
+        {
+            KSymAddr *sym;
+
+            /* resolve symbols */
+            rc = KDylibSymbol ( libsraschema, & sym, "SRASchemaMake" );
+            if ( rc == 0 )
+            {
+                KSymAddrAsFunc ( sym, ( fptr_t* ) & imports . sraSchemaMake );
+                KSymAddrRelease ( sym );
+            }
+
+            /* bail on error */
+            if ( rc != 0 )
+            {
+                KDylibRelease ( libsraschema );
+                libsraschema = NULL;
+                memset ( & imports, 0, sizeof imports );
+            }
+        }
+        KDyldRelease ( dl );
+    }
+
+    return rc;
+}
+#endif
+
 /* Make
  *  create an instance of the default SRA schema
  */
 rc_t CC VDBManagerMakeSRASchema ( struct VDBManager const *self, struct VSchema **schema )
 {
+#if _STATIC
     return SRASchemaMake ( schema, self );
+#else
+    if ( libsraschema == NULL )
+    {
+        rc_t rc = SRASchemaLoadLibrary ();
+        if ( rc != 0 )
+            return rc;
+    }
+
+    assert ( imports . sraSchemaMake != NULL );
+    return ( * imports . sraSchemaMake ) ( schema, self );
+#endif
 }
 
 rc_t CC SRAMgrMakeSRASchema ( const SRAMgr *self, struct VSchema **schema )
diff --git a/libs/sra/sratbl-cmn.c b/libs/sra/sratbl-cmn.c
index 0957d67..ab1ead5 100644
--- a/libs/sra/sratbl-cmn.c
+++ b/libs/sra/sratbl-cmn.c
@@ -35,15 +35,10 @@
 #include <vdb/table.h>
 #include <vdb/cursor.h>
 #include <vdb/vdb-priv.h>
-#include <vdb/dependencies.h>
 #include <kdb/meta.h>
-#include <kdb/manager.h>
 #include <kdb/table.h>
 #include <kdb/database.h>
 #include <kdb/kdb-priv.h>
-#include <vfs/path.h>
-#include <vfs/path-priv.h>
-#include <vfs/resolver.h>
 #include <klib/refcount.h>
 #include <klib/log.h>
 #include <klib/debug.h>
@@ -60,7 +55,6 @@
 #include <string.h>
 #include <stdio.h>
 #include <assert.h>
-#include <va_copy.h>
 
 /* Destroy
  */
@@ -80,8 +74,6 @@ void SRATableDestroy ( SRATable *self )
     VTableRelease ( self -> vtbl );
     SRAMgrSever ( self -> mgr );
 
-    memset(self, 0, sizeof *self);
-
     free ( self );
 }
 
@@ -170,191 +162,35 @@ static rc_t ReadSpotSequence_v1(SRATable *self)
     return rc;
 }
 
-typedef enum {
-    eNotRead,
-    eNotFound,
-    eFailed,
-    eRead
-} EState;
-typedef struct {
-    EState state;
-    rc_t rc;
-} State;
-typedef struct {
-    uint64_t value;
-    State state;
-} U64;
-typedef struct {
-    uint32_t value;
-    State state;
-} U32;
-typedef struct {
-    U64 BASE_COUNT;
-    U32 MAX_SPOT_ID;
-    U32 MIN_SPOT_ID;
-    U64 SPOT_COUNT;
-} PseudoMeta;
-static
-rc_t VCursor_ReadPseudoMeta(rc_t rc, const VCursor *self,
-    const char *name, void *buffer, uint32_t blen, State *state)
-{
-    uint32_t idx = ~0;
-    uint32_t row_len = ~0;
-
-    assert(state);
-    state->rc = 0;
-
-    if (rc != 0)
-    {   return rc; }
-
-    state->state = eNotRead;
-
-    rc = VCursorAddColumn(self, &idx, name);
-
-    if (rc != 0) {
-        state->rc = rc;
-
-        if (GetRCObject(rc) == rcColumn && GetRCState(rc) == rcNotFound) {
-            rc = 0;
-            state->state = eNotFound;
-        }
-        else {
-            state->state = eFailed;
-        }
-    }
-
-    if (state->rc == 0) {
-        rc = VCursorReadDirect(self, 1, idx, blen * 8, buffer, blen, &row_len);
-
-        state->rc = rc;
-
-        if (rc != 0)
-        {   state->state = eFailed; }
-        else
-        {   state->state = eRead; }
-
-    }
-
-    return rc;
-}
-
-static
-rc_t VCursor_ReadPseudoMetaU32(rc_t rc, const VCursor *self,
-    const char *name, U32 *val)
-{
-    assert(val);
-    return VCursor_ReadPseudoMeta(rc, self,
-        name, &val->value, sizeof val->value, &val->state);
-}
-
-static
-rc_t VCursor_ReadPseudoMetaU64(rc_t rc, const VCursor *self,
-    const char *name, U64 *val)
-{
-    assert(val);
-    return VCursor_ReadPseudoMeta(rc, self,
-        name, &val->value, sizeof val->value, &val->state);
-}
-
-static
-rc_t PseudoMetaInit(PseudoMeta *self, const VCursor *curs,
-    bool readSpotCount, uint64_t spot_count)
-{
-    rc_t rc = 0;
-
-    assert(self);
-
-    memset(self, 0, sizeof *self);
-
-    if (readSpotCount) {
-        rc =
-         VCursor_ReadPseudoMetaU64(rc, curs, "SPOT_COUNT", &self->SPOT_COUNT);
-    }
-    else {
-        self->SPOT_COUNT.value = spot_count;
-        self->SPOT_COUNT.state.state = eRead;
-    }
-
-    rc = VCursor_ReadPseudoMetaU64(rc, curs, "BASE_COUNT", &self->BASE_COUNT);
-
-    rc = VCursor_ReadPseudoMetaU32(rc, curs, "MIN_SPOT_ID", &self->MIN_SPOT_ID);
-
-    rc = VCursor_ReadPseudoMetaU32(rc, curs, "MAX_SPOT_ID", &self->MAX_SPOT_ID);
-
-    return rc;
-}
-
-static
-rc_t PseudoMetaFix(PseudoMeta *self)
-{
-    rc_t rc = 0;
-
-    assert(self);
-
-    if (self->MIN_SPOT_ID.state.state != eRead)
-    {   self->MIN_SPOT_ID.value = 1; }
-
-    if (self->SPOT_COUNT.state.state != eRead &&
-        self->MAX_SPOT_ID.state.state != eRead)
-    {
-        return self->SPOT_COUNT.state.rc;
-    }
-    else if (self->SPOT_COUNT.state.state == eRead) {
-        if (self->MAX_SPOT_ID.state.state != eRead) {
-            self->MAX_SPOT_ID.value
-                = self->MIN_SPOT_ID.value + self->SPOT_COUNT.value - 1;
-        }
-        else if (self->MAX_SPOT_ID.value >= self->MIN_SPOT_ID.value) {
-            if (self->SPOT_COUNT.value
-                > self->MAX_SPOT_ID.value - self->MIN_SPOT_ID.value + 1)
-            {
-                self->SPOT_COUNT.value
-                    = self->MAX_SPOT_ID.value - self->MIN_SPOT_ID.value + 1;
-            }
-        }
-    }
-    else {
-            self->SPOT_COUNT.value
-                = self->MAX_SPOT_ID.value - self->MIN_SPOT_ID.value - 1;
-    }
-
-    return rc;
-}
-
-static
-rc_t SRATableLoadMetadata(SRATable *self)
+rc_t SRATableLoadMetadata( SRATable *self )
 {
     rc_t rc = 0;
-    PseudoMeta meta;
-    bool readSpotCount = true;
-
-    assert(self && self->curs != NULL);
+    uint32_t idx, len;
+   
+    assert(self->curs != NULL);
     assert(self->curs_open == true);
 
-    readSpotCount = self->metavers > 1;
-    if (!readSpotCount) {
-        rc = ReadSpotSequence_v1(self);
-        if (rc != 0)
-        {   return rc; }
+#define RD_META(nm, var, fail, dflt) \
+    if( (rc = VCursorAddColumn(self->curs, &idx, nm)) != 0 || \
+        (rc = VCursorReadDirect(self->curs, 1, idx, sizeof(var) * 8, \
+                                &var, sizeof(var), &len)) != 0 ) { \
+        if( fail ) return rc; else rc = 0; \
+	    var = dflt; \
     }
 
-    rc = PseudoMetaInit(&meta, self->curs, readSpotCount, self->spot_count);
-    if (rc != 0)
-    {   return rc; }
-
-    rc = PseudoMetaFix(&meta);
-    if (rc != 0)
-    {   return rc; }
-
-    self->spot_count = meta.SPOT_COUNT.value;
-    self->base_count = meta.BASE_COUNT.value;
-    self->min_spot_id = meta.MIN_SPOT_ID.value;
-    self->max_spot_id = meta.MAX_SPOT_ID.value;
-
+    if(self->metavers <= 1 ) {
+        rc = ReadSpotSequence_v1 ( self );
+        if ( rc != 0 ) return rc;
+    } else {	
+        RD_META("SPOT_COUNT", self->spot_count, true, 0);
+    }
+    RD_META("BASE_COUNT", self->base_count, false, 0);
+    RD_META("MIN_SPOT_ID", self->min_spot_id, false, 1);
+    RD_META("MAX_SPOT_ID", self->max_spot_id, false, self->spot_count);
     return rc;
 }
 
-rc_t SRATableFillOut ( SRATable *self, bool update )
+LIB_EXPORT rc_t CC SRATableFillOut ( SRATable *self )
 {
     rc_t rc;
     
@@ -366,9 +202,7 @@ rc_t SRATableFillOut ( SRATable *self, bool update )
     if ( rc != 0 )
         return rc;
     self -> curs_open = true;
-    if ( ! update )
-        rc = SRATableLoadMetadata(self);
-    return rc;
+    return SRATableLoadMetadata(self);
 }
 
 
@@ -378,16 +212,15 @@ rc_t SRATableFillOut ( SRATable *self, bool update )
  *  resolves via SRAPath mgr if present
  */
 rc_t ResolveTablePath ( const SRAMgr *mgr,
-    char *path, size_t psize, const char *spec, va_list args )
+        char *path, size_t psize, const char *spec, va_list args )
 {
-#if OLD_SRAPATH_MGR
     int len;
     char tblpath [ 4096 ];
-    const SRAPath *pmgr = mgr -> _pmgr;
+    const SRAPath *pmgr = mgr -> pmgr;
 
     /* if no path manager or if the spec string has embedded path separators,
        then this can't be an accession - just print it out */
-    if ( mgr -> _pmgr == NULL || strchr( spec, '/' ) != NULL )
+    if ( mgr -> pmgr == NULL || strchr( spec, '/' ) != NULL )
     {
         len = vsnprintf ( path, psize, spec, args );
         if ( len < 0 || ( size_t ) len >= psize )
@@ -403,6 +236,7 @@ rc_t ResolveTablePath ( const SRAMgr *mgr,
     /* test if the path exists in current directory, i.e. with assumed dot */
     if ( ! SRAPathTest ( pmgr, tblpath ) )
     {
+        /* try to resolve the path using mgr */
         rc_t rc = SRAPathFind ( pmgr, tblpath, path, psize );
         if ( rc == 0 )
             return 0;
@@ -414,23 +248,6 @@ rc_t ResolveTablePath ( const SRAMgr *mgr,
     strcpy ( path, tblpath );
 
     return 0;
-#else
-    VPath *accession;
-    const VPath *tblpath = NULL;
-    rc_t rc = VPathMakeFmt ( & accession, spec, args );
-    if ( rc == 0 )
-    {
-        rc = VResolverLocal ( ( const VResolver* ) mgr -> _pmgr, accession, & tblpath );
-        if ( rc == 0 )
-        {
-            size_t size;
-            rc = VPathReadPath ( tblpath, path, psize, & size );
-            VPathRelease ( tblpath );
-        }
-        VPathRelease ( accession );
-    }
-    return rc;
-#endif
 }
 
 /* OpenRead
@@ -459,65 +276,66 @@ rc_t CC SRAMgrVOpenAltTableRead ( const SRAMgr *self,
             rc = RC ( rcSRA, rcTable, rcOpening, rcName, rcEmpty );
         else
         {
-            SRATable *tbl = calloc ( 1, sizeof *tbl );
-            if ( tbl == NULL )
-                rc = RC ( rcSRA, rcTable, rcConstructing, rcMemory, rcExhausted );
-            else
+            char path [ 4096 ];
+            rc = ResolveTablePath ( self, path, sizeof path, spec, args );
+            if ( rc == 0 )
             {
-                VSchema *schema = NULL;
-
-                rc = VDBManagerMakeSRASchema(self -> vmgr, & schema);
-                if ( rc == 0 ) 
+                SRATable *tbl = calloc ( 1, sizeof *tbl );
+                if ( tbl == NULL )
+                    rc = RC ( rcSRA, rcTable, rcConstructing, rcMemory, rcExhausted );
+                else
                 {
-                    va_list args_copy;
-                    va_copy ( args_copy, args );
-                    rc = VDBManagerVOpenTableRead ( self -> vmgr, & tbl -> vtbl, schema, spec, args );
-                    if ( rc != 0 && GetRCObject ( rc ) == rcTable && GetRCState ( rc ) == rcIncorrect )
+                    VSchema *schema;
+                    rc = VDBManagerMakeSRASchema ( self -> vmgr, & schema );
+                    if ( rc == 0 ) 
                     {
-                        const VDatabase *db;
-                        rc_t rc2 = VDBManagerVOpenDBRead ( self -> vmgr, & db, schema, spec, args_copy );
-                        if ( rc2 == 0 )
+                        rc = VDBManagerOpenTableRead ( self -> vmgr, & tbl -> vtbl, schema, path );
+                        if ( rc != 0 && GetRCObject ( rc ) == rcPath && GetRCState ( rc ) == rcIncorrect )
                         {
-                            rc2 = VDatabaseOpenTableRead ( db, & tbl -> vtbl, altname );
+                            const VDatabase *db;
+                            rc_t rc2 = VDBManagerOpenDBRead ( self -> vmgr, & db, schema, path );
                             if ( rc2 == 0 )
-                                rc = 0;
+                            {
+                                rc2 = VDatabaseOpenTableRead ( db, & tbl -> vtbl, altname );
+                                if ( rc2 == 0 )
+                                    rc = 0;
 
-                            VDatabaseRelease ( db );
+                                VDatabaseRelease ( db );
+                            }
                         }
-                    }
-                    va_end ( args_copy );
 
-                    VSchemaRelease(schema);
+                        VSchemaRelease(schema);
 
-                    if ( rc == 0 )
-                    {
-                        rc = VTableOpenMetadataRead ( tbl -> vtbl, & tbl -> meta );
                         if ( rc == 0 )
                         {
-                            rc = KMetadataVersion ( tbl -> meta, & tbl -> metavers );
+                            rc = VTableOpenMetadataRead ( tbl -> vtbl, & tbl -> meta );
                             if ( rc == 0 )
                             {
-                                rc = VTableCreateCursorRead ( tbl -> vtbl, & tbl -> curs );
+                                rc = KMetadataVersion ( tbl -> meta, & tbl -> metavers );
                                 if ( rc == 0 )
                                 {
-                                    tbl -> mgr = SRAMgrAttach ( self );
-                                    tbl -> mode = self -> mode;
-                                    tbl -> read_only = true;
-                                    KRefcountInit ( & tbl -> refcount, 1, "SRATable", "OpenTableRead", spec );
-                                        
-                                    rc = SRATableFillOut ( tbl, false );
+                                    rc = VTableCreateCursorRead ( tbl -> vtbl, & tbl -> curs );
                                     if ( rc == 0 )
                                     {
-                                        * rslt = tbl;
-                                        return 0;
+                                        tbl -> mgr = SRAMgrAttach ( self );
+                                        tbl -> mode = self -> mode;
+                                        tbl -> read_only = true;
+                                        KRefcountInit ( & tbl -> refcount, 1, "SRATable", "OpenTableRead", path );
+                                        
+                                        rc = SRATableFillOut ( tbl );
+                                        if ( rc == 0 )
+                                        {
+                                            * rslt = tbl;
+                                            return 0;
+                                        }
                                     }
                                 }
                             }
                         }
+                        
                     }
-                    
+                    SRATableWhack ( tbl );
                 }
-                SRATableWhack ( tbl );
             }
         }
 
@@ -590,8 +408,6 @@ rc_t SRATableRead ( const SRATable *self, spotid_t id, uint32_t idx,
                 * offset = elem_off * elem_bits;
                 * size   = elem_cnt * elem_bits;
                 return 0;
-            } else if( UIError(rc, NULL, self->vtbl) ) {
-                UITableLOGError(rc, self->vtbl, true);
             }
         }
     }
@@ -1257,16 +1073,14 @@ LIB_EXPORT rc_t CC SRATableMakeSingleFileArchive ( const SRATable *self, const K
             const VDatabase *db;
             if( (rc = VTableOpenParentRead(self->vtbl, &db)) == 0 && db != NULL ) {
                 const KDatabase *kdb;
-                if ((rc = VDatabaseOpenKDatabaseRead(db, &kdb)) == 0) {
+                if( (rc = VDatabaseOpenKDatabaseRead(db, &kdb)) == 0 ) {
                     const KDirectory *db_dir;
                     if( (rc = KDatabaseOpenDirectoryRead(kdb, &db_dir)) == 0 ) {
-                        rc = KDirectoryOpenTocFileRead(db_dir, sfa,
-                            sraAlign4Byte,
-                            lightweight ? sfa_filter_light : sfa_filter,
-                            (void*)sfa_path_type_db, sfa_sort_db);
+                        rc = KDirectoryOpenTocFileRead(db_dir, sfa, sraAlign4Byte,
+                           lightweight ? sfa_filter_light : sfa_filter, (void*)sfa_path_type_db, sfa_sort_db);
                         KDirectoryRelease(db_dir);
                         if( ext != NULL ) {
-                            *ext = CSRA_EXT(lightweight);
+                            *ext = lightweight ? ".lite.csra" : ".csra";
                         }
                     }
                     KDatabaseRelease(kdb);
@@ -1283,7 +1097,7 @@ LIB_EXPORT rc_t CC SRATableMakeSingleFileArchive ( const SRATable *self, const K
                             lightweight ? sfa_filter_light : sfa_filter, (void*)sfa_path_type_tbl, sfa_sort_tbl);
                         KDirectoryRelease(tbl_dir);
                         if( ext != NULL ) {
-                            *ext = SRA_EXT(lightweight);
+                            *ext = lightweight ? ".lite.sra" : ".sra";
                         }
                     }
                     KTableRelease(ktbl);
diff --git a/libs/sra/wsramgr.c b/libs/sra/wsramgr.c
index 6c430bc..0f3f502 100644
--- a/libs/sra/wsramgr.c
+++ b/libs/sra/wsramgr.c
@@ -41,7 +41,6 @@
 #include <klib/refcount.h>
 #include <klib/log.h>
 #include <klib/rc.h>
-#include <klib/text.h>
 
 #include <stdlib.h>
 #include <sysalloc.h>
diff --git a/libs/sra/wsraschema-stub.c b/libs/sra/wsraschema-stub.c
old mode 100644
new mode 100755
index 2cfdc97..a71799f
--- a/libs/sra/wsraschema-stub.c
+++ b/libs/sra/wsraschema-stub.c
@@ -26,21 +26,88 @@
 
 #include <sra/sraschema.h>
 #include <sra/sradb-priv.h>
+#include <kfs/dyload.h>
 #include <klib/rc.h>
 
+#include <sysalloc.h>
+#include <os-native.h>
+
 #include "sra-priv.h"
 
+#include <string.h>
+#include <assert.h>
+
+
 /*--------------------------------------------------------------------------
  * SRASchema
  *  a schema object pre-loaded with default SRA schema
  */
 
+#if ! _STATIC
+/* LoadLibrary
+ *  loads libsraschema and fills out function pointers
+ */
+static KDylib *libsraschema = NULL;
+
+static struct
+{
+    rc_t ( CC * sraSchemaMake ) ( struct VSchema **schema, struct VDBManager const *mgr );
+
+} imports;
+
+static
+rc_t SRASchemaLoadLibrary ( void )
+{
+    KDyld *dl;
+    rc_t rc = KDyldMake ( & dl );
+    if ( rc == 0 )
+    {
+        rc = KDyldLoadLib ( dl, & libsraschema, LPFX "wsra-schema" SHLX );
+        if ( rc == 0 )
+        {
+            KSymAddr *sym;
+
+            /* resolve symbols */
+            rc = KDylibSymbol ( libsraschema, & sym, "SRASchemaMake" );
+            if ( rc == 0 )
+            {
+                KSymAddrAsFunc ( sym, ( fptr_t* ) & imports . sraSchemaMake );
+                KSymAddrRelease ( sym );
+            }
+
+            /* bail on error */
+            if ( rc != 0 )
+            {
+                KDylibRelease ( libsraschema );
+                libsraschema = NULL;
+                memset ( & imports, 0, sizeof imports );
+            }
+        }
+        KDyldRelease ( dl );
+    }
+
+    return rc;
+}
+#endif
+
 /* Make
  *  create an instance of the default SRA schema
  */
 rc_t CC VDBManagerMakeSRASchema ( struct VDBManager const *self, struct VSchema **schema )
 {
+#if _STATIC
     return SRASchemaMake ( schema, self );
+#else
+    if ( libsraschema == NULL )
+    {
+        rc_t rc = SRASchemaLoadLibrary ();
+        if ( rc != 0 )
+            return rc;
+    }
+
+    assert ( imports . sraSchemaMake != NULL );
+    return ( * imports . sraSchemaMake ) ( schema, self );
+#endif
 }
 
 rc_t CC SRAMgrMakeSRASchema ( const SRAMgr *self, struct VSchema **schema )
diff --git a/libs/sra/wsratbl.c b/libs/sra/wsratbl.c
index 945ae68..0aeec9c 100644
--- a/libs/sra/wsratbl.c
+++ b/libs/sra/wsratbl.c
@@ -32,7 +32,6 @@
 #include <vdb/cursor.h>
 #include <vdb/vdb-priv.h>
 #include <kdb/meta.h>
-#include <klib/printf.h> /* string_vprintf */
 #include <klib/refcount.h>
 #include <klib/log.h>
 #include <klib/debug.h>
@@ -95,11 +94,8 @@ LIB_EXPORT rc_t CC SRAMgrVCreateTable ( SRAMgr *self, SRATable **rslt,
             rc = RC ( rcSRA, rcTable, rcConstructing, rcString, rcEmpty );
         else
         {
-            char path [ 4097 ];
-            size_t act_size = 0;
-            
-            rc = string_vprintf(path, 4097, &act_size, spec, args);
-            path[act_size] = '\0';
+            char path [ 4096 ];
+            rc = ResolveTablePath ( self, path, sizeof path, spec, args );
             if ( rc == 0 )
             {
                 VTable *vtbl;
@@ -200,14 +196,11 @@ LIB_EXPORT rc_t CC SRAMgrVOpenTableUpdate(SRAMgr *mgr, SRATable **rslt, const ch
                     self->read_only = false;
                     KRefcountInit(&self->refcount, 1, "SRATable", "OpenTableUpdate", path);
                     
-                    rc = SRATableFillOut ( self, true );
-                    if ( rc == 0 )
-                    {
-                        VectorInit ( & self -> wcol, 0, 16 );
+                    SRATableLoadMetadata(self); /* fallible */
+                    VectorInit(&self->wcol, 0, 16);
                     
-                        *rslt = self;
-                        return 0;
-                    }
+                    *rslt = self;
+                    return 0;
                 }
             }
         }
diff --git a/libs/sraxf/Makefile b/libs/sraxf/Makefile
index 453bc1c..dbc168b 100644
--- a/libs/sraxf/Makefile
+++ b/libs/sraxf/Makefile
@@ -43,13 +43,15 @@ include $(TOP)/build/Makefile.env
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: makedirs
+vers-includes: $(addsuffix .vers.h,$(ALL_LIBS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_LIBS): makedirs
+$(ALL_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-.PHONY: all std $(ALL_LIBS)
+.PHONY: vers-includes all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -67,6 +69,14 @@ clean: stdclean
 .PHONY: clean
 
 #-------------------------------------------------------------------------------
+# tag
+#
+tag: \
+	$(addsuffix _tag,$(ALL_LIBS))
+
+.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
+
+#-------------------------------------------------------------------------------
 # sra transform library
 #
 $(TARGDIR)/libsraxf: $(addprefix $(TARGDIR)/libsraxf.,$(MODEXT))
@@ -122,7 +132,10 @@ $(MODDIR)/libsraxf.$(SHLX): $(SRAXF_OBJ)
 $(TARGDIR)/libsraxf.$(LIBX): $(ILIBDIR)/libsraxf.$(LIBX)
 
 $(ILIBDIR)/libsraxf.$(LIBX): $(SRAXF_OBJ)
-	$(LD) --slib -o $@ $^ $(SRAXF_LIB)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(SRAXF_LIB)
+
+libsraxf_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) libsraxf $(SRAXF_OBJ)
 
 
 #-------------------------------------------------------------------------------
@@ -157,4 +170,7 @@ $(WMODDIR)/libwsraxf.$(SHLX): $(WSRAXF_OBJ)
 $(TARGDIR)/libwsraxf.$(LIBX): $(ILIBDIR)/libwsraxf.$(LIBX)
 
 $(ILIBDIR)/libwsraxf.$(LIBX): $(WSRAXF_OBJ)
-	$(LD) --slib -o $@ $^ $(WSRAXF_LIB)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(WSRAXF_LIB)
+
+libswraxf_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) libwsraxf $(WSRAXF_OBJ)
diff --git a/libs/sraxf/fix_read_seg_impl.h b/libs/sraxf/fix_read_seg_impl.h
deleted file mode 100644
index 977485f..0000000
--- a/libs/sraxf/fix_read_seg_impl.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/* READ_SEG was engineered to be capable of holding
-   any sort of read description, including out-of-order,
-   non-contiguous, gapped or overlapped segments.
-
-   This property was never used, and READ_SEG is by now
-   obsolete, so we can count on it being used as a sort
-   of READ_LEN where the starts represent an integration
-   of the lengths, i.e. all segments are in order and
-   contiguous. */
-#define READ_SEGS_ALWAYS_CONTIGUOUS 1
-
-static void fix_read_seg_impl(const uint16_t *rs_src, uint32_t nreads,
-    uint32_t spot_len, uint32_t * rs_dst)
-{
-    const uint32_t nreads2 = nreads + nreads;
-        uint32_t i, total;
-
-        assert(rs_src && rs_dst);
-
-#if READ_SEGS_ALWAYS_CONTIGUOUS
-        /* first, check the stated bases within the read-seg */
-        for ( i = 1, total = 0; i < nreads2; i += 2 )
-            total += rs_src [ i ];
-
-        /* if there are no bases reported, just divide the
-           spot_len by the number of reads and rewrite */
-        if ( total == 0 )
-        {
-            /* if there is a single read, fix it */
-            if ( nreads == 1 )
-            {
-                rs_dst [ 0 ] = 0;
-                rs_dst [ 1 ] = spot_len;
-            }
-            else
-            {
-                double fstart = 0;
-                double flen = ( double ) spot_len / nreads;
-                for ( i = total = 0; i < nreads2; fstart += flen, i += 2 )
-                {
-                    long int start = lround ( fstart );
-                    long int end = lround ( fstart + flen );
-                    if ( start >= ( long int ) spot_len )
-                    {
-                        rs_dst [ i ] = spot_len;
-                        rs_dst [ i + 1 ] = 0;
-                    }
-                    else
-                    {
-                        if ( end > ( long int ) spot_len )
-                            end = ( long int ) spot_len - start;
-                        else
-                            end -= start;
-
-                        rs_dst [ i ] = ( uint32_t ) start;
-                        rs_dst [ i + 1 ] = ( uint32_t ) end;
-                    }
-
-                    total += rs_dst [ i + 1 ];
-                }
-
-                assert ( total == spot_len );
-            }
-        }
-
-        /* have the right number of bases - just rewrite starts */
-        else if ( total == spot_len )
-        {
-            for ( i = total = 0; i < nreads2; i += 2 )
-            {
-                rs_dst [ i ] = total;
-                total += ( rs_dst [ i + 1 ] = rs_src [ i + 1 ] );
-            }
-        }
-
-        /* have too many bases - trust all up to limit */
-        else if ( total > spot_len )
-        {
-            for ( i = total = 0; i < nreads2; i += 2 )
-            {
-                rs_dst [ i ] = total;
-                total += ( rs_dst [ i + 1 ] = rs_src [ i + 1 ] );
-                if ( total > spot_len )
-                {
-                    total = spot_len;
-                    rs_dst [ i + 1 ] = total - rs_dst [ i ];
-                }
-            }
-        }
-
-        /* too few bases - trust all but last */
-        else
-        {
-            for ( i = 0; i < nreads2; i += 2 )
-                rs_dst [ i + 1 ] = rs_src [ i + 1 ];
-
-            for ( ; total < spot_len && i != 0; )
-            {
-                uint32_t remaining = spot_len - total;
-                i -= 2;
-                rs_dst [ i + 1 ] += remaining;
-                total += remaining;
-            }
-
-            for ( i = 0, total = 0; i < nreads2; i += 2 )
-            {
-                rs_dst [ i ] = total;
-                total += rs_dst [ i + 1 ];
-            }
-        }
-#else
-        /* loop increments by 2
-           where the read start is even, read length odd */
-        for ( i = total = 0; i < nreads2; i += 2 )
-        {
-            /* is start greater than max? */
-            if ( rs_src [ i ] >= spot_len )
-            {
-                /* clip start to end */
-                rs_dst [ i ] = spot_len;
-                /* zero length read */
-                rs_dst [ i + 1 ] = 0;
-            }
-            /* is end greater than max? */
-            else if ( rs_src [ i ] + rs_src [ i + 1 ] > spot_len )
-            {
-                /* keep start */
-                rs_dst [ i ] = rs_src [ i ];
-                /* clip length to end */
-                rs_dst [ i + 1 ] = spot_len - rs_src [ i ];
-            }
-            else
-            {
-                /* copy existing segment */
-                rs_dst [ i ]   = rs_src [ i ];
-                rs_dst [ i + 1 ] = rs_src [ i + 1 ];
-            }
-
-            /* sum total length */
-            total += rs_src [ i + 1 ];
-        }
-#endif
-}
diff --git a/libs/sraxf/format-spot-name.c b/libs/sraxf/format-spot-name.c
index 9859ed5..36034e6 100644
--- a/libs/sraxf/format-spot-name.c
+++ b/libs/sraxf/format-spot-name.c
@@ -28,7 +28,6 @@
 #include <vdb/xform.h>
 #include <klib/data-buffer.h>
 #include <klib/text.h>
-#include <klib/printf.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
 #include "name-tokenizer.h"
@@ -86,7 +85,6 @@ rc_t CC format_spot_name ( void *self,
     /* check for NAME_FMT */
     if ( argv [ 0 ] . u. data . elem_count != 0 )
     {
-        size_t num_writ;
         char sname[1024]; /** name on stack **/
         const char *name_fmt = ((char*)argv[0].u.data.base) + argv[0].u.data.first_elem;
         uint32_t i, j, x, y;
@@ -142,9 +140,7 @@ rc_t CC format_spot_name ( void *self,
                     }
                     break;
 		 case 'r': case 'R':
-            rc = string_printf ( & sname [ j ], sizeof sname - j, & num_writ, "%ld", row_id );
-            assert ( rc == 0 );
-            j += ( uint32_t ) num_writ;
+		    j+=sprintf(sname+j,"%ld",row_id);
 		    i+=2;
 		    break;
                 default:
@@ -231,7 +227,6 @@ rc_t CC format_spot_name_no_coord ( void *self,
     /* check for NAME_FMT */
     if ( argv [ 0 ] . u. data . elem_count != 0 )
     {
-        size_t num_writ;
         char sname[1024]; /** name on stack **/
         const char *name_fmt = ((char*)argv[0].u.data.base) + argv[0].u.data.first_elem;
         uint32_t i, j;
@@ -241,9 +236,7 @@ rc_t CC format_spot_name_no_coord ( void *self,
             if( name_fmt [ i ] == '$' ){
                 switch( name_fmt [ i+1 ]){
 		 case 'r': case 'R':
-            rc = string_printf ( & sname [ j ], sizeof sname - j, & num_writ, "%ld", row_id );
-            assert ( rc == 0 );
-		    j += ( uint32_t ) num_writ;
+		    j+=sprintf(sname+j,"%ld",row_id);
 		    i+=2;
 		    break;
                 default:
diff --git a/libs/sraxf/index_lookup.c b/libs/sraxf/index_lookup.c
index fbafa89..1468e9d 100644
--- a/libs/sraxf/index_lookup.c
+++ b/libs/sraxf/index_lookup.c
@@ -81,28 +81,9 @@ static int CC SRAPTNodeFindFmt ( const void *item, const struct PBSTNode *n, voi
     for(i=j=0;q[i]!=0 && db[j]!= 0;){
         if(q[i] == db[j]){
                 i++;j++;
-        } else if(db[j] == '$'){
+        } else if(   db[j] == '$'
+                  && isdigit(q[i])){
                 switch(db[j+1]){
-		 case 'q':
-                 case 'Q':
-		 {
-			int k;
-			uint32_t xy=0;
-			j+=2;
-			for(k=0;k<5 && q[i]!=0;k++,i++){
-				xy *= 36;
-				if(isdigit(q[i])){
-					xy += q[i] - '0' + 26;
-				} else if(isalpha(q[i])){
-					xy += toupper(q[i]) - 'A';
-				}
-			}
-			if(u){
-				u->x = xy >> 12;
-				u->y = xy &0xFFF;
-			}
-	       		break;
-		 }
                  case 'x':
                  case 'X':
                         if(u) u->x=atoi(q+i);
diff --git a/libs/sraxf/libsraxf.vers b/libs/sraxf/libsraxf.vers
index e25d8d9..781dcb0 100644
--- a/libs/sraxf/libsraxf.vers
+++ b/libs/sraxf/libsraxf.vers
@@ -1 +1 @@
-1.1.5
+1.1.3
diff --git a/libs/sraxf/libsraxf.vers.h b/libs/sraxf/libsraxf.vers.h
new file mode 100644
index 0000000..924b642
--- /dev/null
+++ b/libs/sraxf/libsraxf.vers.h
@@ -0,0 +1 @@
+#define LIBSRAXF_VERS 0x01010003
diff --git a/libs/sraxf/libwsraxf.vers b/libs/sraxf/libwsraxf.vers
index e25d8d9..781dcb0 100644
--- a/libs/sraxf/libwsraxf.vers
+++ b/libs/sraxf/libwsraxf.vers
@@ -1 +1 @@
-1.1.5
+1.1.3
diff --git a/libs/sraxf/libwsraxf.vers.h b/libs/sraxf/libwsraxf.vers.h
new file mode 100644
index 0000000..dcc1cec
--- /dev/null
+++ b/libs/sraxf/libwsraxf.vers.h
@@ -0,0 +1 @@
+#define LIBWSRAXF_VERS 0x01010003
diff --git a/libs/sraxf/prefix-tree-to-name.c b/libs/sraxf/prefix-tree-to-name.c
index 06a2e1b..8537495 100644
--- a/libs/sraxf/prefix-tree-to-name.c
+++ b/libs/sraxf/prefix-tree-to-name.c
@@ -31,7 +31,9 @@
 #include <kdb/index.h>
 #include <klib/data-buffer.h>
 #include <klib/text.h>
+#include <klib/out.h>
 #include <klib/rc.h>
+#include <klib/debug.h>
 
 #include <string.h>
 #include <assert.h>
diff --git a/libs/sraxf/read-desc.c b/libs/sraxf/read-desc.c
index d3ce922..15fa952 100644
--- a/libs/sraxf/read-desc.c
+++ b/libs/sraxf/read-desc.c
@@ -33,7 +33,6 @@
 #include <sysalloc.h>
 
 #include <assert.h>
-#include <string.h>
 
 static
 rc_t CC make_read_desc ( void *self, const VXformInfo *info, int64_t row_id,
@@ -98,7 +97,6 @@ rc_t CC make_read_desc ( void *self, const VXformInfo *info, int64_t row_id,
         {
             uint32_t label_start = lbl_start [ idx ];
             uint32_t label_len = lbl_len [ idx ];
-            size_t   label_used;
             if ( label_start + label_len > label_max )
             {
                 if ( label_start > label_max )
@@ -112,11 +110,8 @@ rc_t CC make_read_desc ( void *self, const VXformInfo *info, int64_t row_id,
             dst[idx].type = read_type[idx] & SRA_READ_TYPE_BIOLOGICAL;
             dst[idx].cs_key = cs_key[idx];
 
-            label_used = string_copy( dst[idx].label, sizeof(dst[idx].label), 
-                                      & label [ label_start ], label_len );
-            /* Pad with NULs so that bitcmp sees fully initialized data */
-            memset( dst[idx].label + label_used, '\0',
-                    sizeof(dst[idx].label) - label_used );        
+            string_copy( dst[idx].label, sizeof(dst[idx].label), 
+                         & label [ label_start ], label_len );
         }
 
         rslt->elem_bits = sizeof(*dst) * 8;
diff --git a/libs/sraxf/read-seg-from-readn.c b/libs/sraxf/read-seg-from-readn.c
index 99bdf68..1777690 100644
--- a/libs/sraxf/read-seg-from-readn.c
+++ b/libs/sraxf/read-seg-from-readn.c
@@ -39,10 +39,8 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <math.h>
 #include <assert.h>
 
-#include "fix_read_seg_impl.h"
 
 /* readn_read_desc
  *  "nreads" [ DATA ] - bases for entire spot
@@ -332,12 +330,10 @@ rc_t CC fix_read_seg ( void *data, const VXformInfo *info, int64_t row_id,
 {
     rc_t rc;
 
-    const uint16_t *rs_src = argv [ 0 ] . u . data . base;
-    const uint32_t nreads = argv [ 0 ] . u . data . elem_count;
-    const uint32_t *spot_lenp = argv [ 1 ] . u . data . base;
-    const uint32_t spot_len = spot_lenp [ argv [ 1 ] . u . data . first_elem ];
-
-    rs_src += argv [ 0 ] . u . data . first_elem;
+    const uint16_t *rs_src = ((uint16_t*)argv[0].u.data.base)+argv[0].u.data.first_elem;
+    const uint32_t nreads = argv[0].u.data.elem_count;
+    uint32_t spot_len = ((uint32_t*)argv[1].u.data.base)[argv[1].u.data.first_elem];
+    uint32_t nreads2 = nreads + nreads;
 
     assert ( spot_len > 0 );
     assert ( nreads > 0);
@@ -345,8 +341,37 @@ rc_t CC fix_read_seg ( void *data, const VXformInfo *info, int64_t row_id,
     rc = KDataBufferResize ( rslt -> data, nreads );
     if ( rc == 0 )
     {
+        uint32_t i;
         uint32_t * rs_dst = rslt -> data -> base;
-        fix_read_seg_impl(rs_src, nreads, spot_len, rs_dst);
+
+        /* loop increments by 2
+           where the read start is even, read length odd */
+        for( i = 0; i < nreads2; i += 2 )
+        {
+            /* is start greater than max? */
+            if( rs_src [ i ] >= spot_len )
+            {
+                /* clip start to end */
+                rs_dst [ i ] = spot_len;
+                /* zero length read */
+                rs_dst [ i + 1 ] = 0;
+            }
+            /* is end greater than max? */
+            else if ( rs_src [ i ] + rs_src [ i + 1 ] > spot_len )
+            {
+                /* keep start */
+                rs_dst [ i ] = rs_src [ i ];
+                /* clip length to end */
+                rs_dst [ i + 1 ] = spot_len - rs_src [ i ];
+            }
+            else
+            {
+                /* copy existing segment */
+                rs_dst [ i ]   = rs_src [ i ];
+                rs_dst [ i + 1 ] = rs_src [ i + 1 ];
+            }
+        }
+
         rslt -> elem_count = nreads;
     }
     return rc;
diff --git a/libs/sraxf/stats.c b/libs/sraxf/stats.c
index 0b53093..691da53 100644
--- a/libs/sraxf/stats.c
+++ b/libs/sraxf/stats.c
@@ -30,7 +30,6 @@
 #include <vdb/table.h>
 #include <klib/data-buffer.h>
 #include <klib/text.h>
-#include <klib/printf.h>
 #include <klib/rc.h>
 #include <kdb/meta.h>
 #include <os-native.h> /* strncasecmp */
@@ -59,37 +58,37 @@ typedef struct sra_meta_stats_data_struct
     sra_meta_stats_node_group table;
     sra_meta_stats_node_group dflt_grp;
     char* last_grp_name;
-    uint64_t last_grp_name_len; /* strlen */
-    uint64_t last_grp_name_sz; /* buffer size */
+    uint64_t last_grp_name_len;
+    uint64_t last_grp_name_sz;
     sra_meta_stats_node_group last_grp;
-    uint32_t grp_qty;
 } sra_meta_stats_data;
 
 static
-rc_t sra_meta_stats_node_read(KMDataNode* node, void* value)
+rc_t sra_meta_stats_node_read(KMDataNode* node, void* value, size_t sz)
 {
-    rc_t rc = KMDataNodeReadAsU64(node, value);
-    if ( rc != 0 )
-    {
-        if ( GetRCState ( rc ) == rcIncomplete && GetRCObject ( rc ) == rcTransfer )
-        {
-            * ( uint64_t* ) value = 0;
-            rc = 0;
-        }
+    rc_t rc = 0;
+    size_t num_read, remaining;
+
+    if( (rc = KMDataNodeRead(node, 0, value, sz, &num_read, &remaining)) == 0 &&
+        num_read == sz && remaining == 0 ) {
+    } else if( rc == 0 && num_read == 0 && remaining == 0 ) {
+        memset(value, 0, sz);
+    } else {
+        rc = rc ? rc : RC(rcVDB, rcFunction, rcUpdating, rcMetadata, rcCorrupt);
     }
     return rc;
 }
 
 static
 rc_t sra_meta_stats_node_group_update(sra_meta_stats_node_group* g,
-    const int64_t spot_id, const uint32_t spot_len,
-    const uint32_t bio_spot_len, const uint32_t cmp_spot_len)
+                                      const int64_t spot_id, const uint32_t spot_len,
+                                      const uint32_t bio_spot_len, const uint32_t cmp_spot_len)
 {
     rc_t rc = 0;
     uint64_t u64;
     int64_t i64;
 
-    if( (rc = sra_meta_stats_node_read(g->node_spot_count, &u64)) == 0 ) {
+    if( (rc = sra_meta_stats_node_read(g->node_spot_count, &u64, sizeof(u64))) == 0 ) {
         if( u64 + 1 < u64 ) {
             rc = RC(rcVDB, rcFunction, rcUpdating, rcMetadata, rcOutofrange);
         } else {
@@ -99,7 +98,7 @@ rc_t sra_meta_stats_node_group_update(sra_meta_stats_node_group* g,
             rc = KMDataNodeWriteB64(g->node_spot_count, &u64);
         }
     }
-    if( (rc = sra_meta_stats_node_read(g->node_base_count, &u64)) == 0 ) {
+    if( (rc = sra_meta_stats_node_read(g->node_base_count, &u64, sizeof(u64))) == 0 ) {
         if( u64 + 1 < u64 ) {
             rc = RC(rcVDB, rcFunction, rcUpdating, rcMetadata, rcOutofrange);
         } else {
@@ -107,7 +106,7 @@ rc_t sra_meta_stats_node_group_update(sra_meta_stats_node_group* g,
             rc = KMDataNodeWriteB64(g->node_base_count, &u64);
         }
     }
-    if( (rc = sra_meta_stats_node_read(g->node_bio_base_count, &u64)) == 0 ) {
+    if( (rc = sra_meta_stats_node_read(g->node_bio_base_count, &u64, sizeof(u64))) == 0 ) {
         if( u64 + bio_spot_len < u64 ) {
             rc = RC(rcVDB, rcFunction, rcUpdating, rcMetadata, rcOutofrange);
         } else {
@@ -116,7 +115,7 @@ rc_t sra_meta_stats_node_group_update(sra_meta_stats_node_group* g,
         }
     }
     if( g->node_cmp_base_count != NULL ) {
-        if( (rc = sra_meta_stats_node_read(g->node_cmp_base_count, &u64)) == 0 ) {
+        if( (rc = sra_meta_stats_node_read(g->node_cmp_base_count, &u64, sizeof(u64))) == 0 ) {
             if( u64 + cmp_spot_len < u64 ) {
                 rc = RC(rcVDB, rcFunction, rcUpdating, rcMetadata, rcOutofrange);
             } else {
@@ -125,16 +124,14 @@ rc_t sra_meta_stats_node_group_update(sra_meta_stats_node_group* g,
             }
         }
     }
-    if( (rc = sra_meta_stats_node_read(g->node_spot_max, &i64)) == 0 ) {
+    if( (rc = sra_meta_stats_node_read(g->node_spot_max, &i64, sizeof(i64))) == 0 ) {
         if( i64 == 0 || i64 < spot_id ) {
-            i64 = spot_id;
-            rc = KMDataNodeWriteB64(g->node_spot_max, &i64);
+            rc = KMDataNodeWriteB64(g->node_spot_max, &spot_id);
         }
     }
-    if( (rc = sra_meta_stats_node_read(g->node_spot_min, &i64)) == 0 ) {
+    if( (rc = sra_meta_stats_node_read(g->node_spot_min, &i64, sizeof(i64))) == 0 ) {
         if( i64 == 0 || i64 > spot_id ) {
-            i64 = spot_id;
-            rc = KMDataNodeWriteB64(g->node_spot_min, &i64);
+            rc = KMDataNodeWriteB64(g->node_spot_min, &spot_id);
         }
     }
     return rc;
@@ -154,6 +151,9 @@ rc_t sra_meta_stats_node_group_open(KMDataNode* parent, sra_meta_stats_node_grou
         if( compressed ) { 
             rc = KMDataNodeOpenNodeUpdate(parent, &g->node_cmp_base_count, "CMP_BASE_COUNT");
         }
+        if( rc == 0 ) {
+            rc = sra_meta_stats_node_group_update(g, 0, 0, 0, 0);
+        }
     }
     return rc;
 }
@@ -161,15 +161,13 @@ rc_t sra_meta_stats_node_group_open(KMDataNode* parent, sra_meta_stats_node_grou
 static
 void sra_meta_stats_node_group_release(sra_meta_stats_node_group* g)
 {
-    if ( g != NULL )
-    {
+    if( g ) {
         KMDataNodeRelease(g->node_spot_count);
         KMDataNodeRelease(g->node_base_count);
         KMDataNodeRelease(g->node_bio_base_count);
         KMDataNodeRelease(g->node_cmp_base_count);
         KMDataNodeRelease(g->node_spot_min);
         KMDataNodeRelease(g->node_spot_max);
-        memset ( g, 0, sizeof * g );
     }
 }
 
@@ -219,120 +217,57 @@ rc_t sra_meta_stats_make(sra_meta_stats_data** self, VTable* vtbl, bool has_spot
 
 static
 rc_t CC sra_meta_stats_update(sra_meta_stats_data* self,
-    const int64_t spot_id, const uint32_t spot_len,
-    const uint32_t bio_spot_len, const uint32_t cmp_spot_len,
-    bool has_grp, const char* grp, uint64_t grp_len)
+                              const int64_t spot_id, const uint32_t spot_len,
+                              const uint32_t bio_spot_len, const uint32_t cmp_spot_len,
+                              bool has_grp, const char* grp, uint64_t grp_len)
 {
     rc_t rc = 0;
-    const uint32_t max_grp_qty = 10000;
 
     assert(self != NULL);
 
     rc = sra_meta_stats_node_group_update(&self->table, spot_id, spot_len, bio_spot_len, cmp_spot_len);
-    if( has_grp && self->grp_qty <= max_grp_qty && rc == 0 )
-    {
+    if( rc == 0 && has_grp ) {
         /* an empty group is considered default */
         if( grp_len == 0 || grp == NULL || grp[0] == '\0' ||
-            (grp_len == 7 && strncasecmp("default", grp, grp_len) == 0 ) )
-        {
+            (grp_len == 7 && strncasecmp("default", grp, grp_len) == 0 ) ) {
             rc = sra_meta_stats_node_group_update(&self->dflt_grp, spot_id, spot_len, bio_spot_len, cmp_spot_len);
-        }
-        else
-        {
-            size_t i;
-            KMDataNode* n;
-            const KMDataNode *cn;
-            bool new_group, unsafe;
-
-            /* look for cached node */
-            if ( self->last_grp_name != NULL &&
-                 self->last_grp_name_len == grp_len &&
-                 strncmp(self->last_grp_name, grp, grp_len) == 0 )
-            {
-                return sra_meta_stats_node_group_update(&self->last_grp, spot_id, spot_len, bio_spot_len, cmp_spot_len);
-            }
-
-            /* release cached group */
-            sra_meta_stats_node_group_release(&self->last_grp);
-
-            /* realloc cached name */
-            if ( self->last_grp_name == NULL || grp_len >= self->last_grp_name_sz )
-            {
-                char *p = realloc ( self -> last_grp_name, grp_len + 1 );
-                if ( p == NULL )
-                    return RC ( rcXF, rcFunction, rcExecuting, rcMemory, rcExhausted );
-    
-                self -> last_grp_name = p;
-                self -> last_grp_name_sz = grp_len + 1;
-            }
-
-            /* sanitize name */
-            for ( unsafe = false, i = 0; i < grp_len; ++ i )
-            {
-                if ( ( self -> last_grp_name [ i ] = grp [ i ] ) == '/' )
-                {
-                    unsafe = true;
-                    self -> last_grp_name [ i ] = '\\';
-                }
-            }
-            self -> last_grp_name_len = i;
-            self -> last_grp_name [ i ] = 0;
-
-            /* look for new group */
-            new_group = true;
-            rc = KMetadataOpenNodeRead(self->meta, &cn, "STATS/SPOT_GROUP/%s", self->last_grp_name );
-            if ( rc == 0 )
-            {
-                new_group = false;
-                KMDataNodeRelease ( cn );
-            }
-
-            /* detect abusive quantity of nodes */
-            if ( new_group && ++self->grp_qty > max_grp_qty )
-            {
-                rc = KMetadataOpenNodeUpdate(self->meta, &n, "STATS");
-                if( rc == 0 )
-                {
-                    sra_meta_stats_node_group_release(&self->dflt_grp);
-                    KMDataNodeDropChild(n, "SPOT_GROUP");
-                    KMDataNodeRelease(n);
-                    free(self->last_grp_name);
-                    self->last_grp_name = NULL;
+        } else {
+            if( self->last_grp_name == NULL ||
+                self->last_grp_name_len != grp_len || strncmp(self->last_grp_name, grp, grp_len) != 0 ) {
+                if( self->last_grp_name_sz < (grp_len + 1) ) {
+                    char* p = realloc(self->last_grp_name, grp_len + 2);
+                    if( p == NULL ) {
+                        rc = RC(rcVDB, rcFunction, rcConstructing, rcMemory, rcExhausted);
+                    } else {
+                        self->last_grp_name = p;
+                        self->last_grp_name_sz = grp_len + 2;
+                    }
                 }
-                return rc;
-            }
-
-            /* create new or cache existing group */
-            rc = KMetadataOpenNodeUpdate(self->meta, &n, "STATS/SPOT_GROUP/%s", self->last_grp_name );
-            if ( rc == 0 )
-            {
-                rc = sra_meta_stats_node_group_open(n, &self->last_grp, self->compressed);
-                if (rc == 0 && new_group) {
-                    if (unsafe)
-                    {
-                        char value [ 512 ], *v = value;
-                        if ( grp_len >= sizeof value )
-                            v = malloc ( grp_len + 1 );
-                        if ( v == NULL )
-                            rc = RC ( rcXF, rcFunction, rcExecuting, rcMemory, rcExhausted );
-                        else
-                        {
-                            rc = string_printf ( v, grp_len + 1, NULL, "%.*s", ( uint32_t ) grp_len, grp );
-                            assert ( rc == 0 );
-                            rc = KMDataNodeWriteAttr(n, "name", v);
-                            if ( rc == 0 )
-                                memcpy ( self->last_grp_name, grp, grp_len );
-                            if ( v != value )
-                                free ( v );
+                if( rc == 0 ) {
+                    KMDataNode *ngrps;
+                    const char* safe = grp;
+
+                    char* p = self->last_grp_name;
+                    self->last_grp_name_len = grp_len;
+                    string_copy(self->last_grp_name, self->last_grp_name_sz, grp, grp_len);
+                    /* replace all '/' for '\' in spot_group */
+                    while( *p != '\0' && (p = strchr(p, '/')) != NULL ) {
+                        safe = self->last_grp_name;
+                        *p++ = '\\';
+                    }
+                    sra_meta_stats_node_group_release(&self->last_grp);
+                    if( (rc = KMetadataOpenNodeUpdate(self->meta, &ngrps, "STATS/SPOT_GROUP/%.*s", grp_len, safe)) == 0 ) {
+                        rc = sra_meta_stats_node_group_open(ngrps, &self->last_grp, self->compressed);
+                        if( rc == 0 && grp != safe ) {
+                            string_copy(self->last_grp_name, self->last_grp_name_sz, grp, grp_len);
+                            rc = KMDataNodeWriteAttr(ngrps, "name", self->last_grp_name);
                         }
+                        KMDataNodeRelease(ngrps);
                     }
-                    if ( rc == 0 )
-                        rc = sra_meta_stats_node_group_update(&self->last_grp, 0, 0, 0, 0);
                 }
-                KMDataNodeRelease(n);
-
-                if( rc == 0 )
-                    rc = sra_meta_stats_node_group_update(&self->last_grp, spot_id, spot_len, bio_spot_len, cmp_spot_len);
+            }
+            if( rc == 0 ) {
+                rc = sra_meta_stats_node_group_update(&self->last_grp, spot_id, spot_len, bio_spot_len, cmp_spot_len);
             }
         }
     }
diff --git a/libs/sraxf/stats_quality.c b/libs/sraxf/stats_quality.c
index ddc42a3..6a8fc1b 100644
--- a/libs/sraxf/stats_quality.c
+++ b/libs/sraxf/stats_quality.c
@@ -99,12 +99,12 @@ rc_t CC phred_stats_trigger(void *data, const VXformInfo *info, int64_t row_id,
 
     assert(self != NULL);
     assert(argc == 1);
+    assert(argv[0].u.data.base != NULL);
     assert(argv[0].u.data.elem_bits == (sizeof(INSDC_quality_phred) * 8));
 
     len = argv[0].u.data.elem_count;
     if( len > 0 ) {
         const INSDC_quality_phred* q = argv[0].u.data.base;
-        assert(argv[0].u.data.base != NULL);
         q += argv[0].u.data.first_elem;
         do {
             self->count[q[--len]]++;
diff --git a/libs/sraxf/tokenize-spot_name-ion-torrent.c b/libs/sraxf/tokenize-spot_name-ion-torrent.c
index b7f6e98..bf66ecd 100644
--- a/libs/sraxf/tokenize-spot_name-ion-torrent.c
+++ b/libs/sraxf/tokenize-spot_name-ion-torrent.c
@@ -53,68 +53,43 @@ rc_t CC tokenize_spot_name_IonTorrent( void *self, const VXformInfo *info, int64
     
     assert(rslt->elem_bits == sizeof(spot_name_tok[0]) * 8);
     rslt->data->elem_bits = sizeof(spot_name_tok[0]) * 8;
-    rc = KDataBufferResize(rslt->data, EXPECTED_NUMBER_OF_TOKENS);
-    if( rc != 0 )
+    if( (rc = KDataBufferResize(rslt->data, EXPECTED_NUMBER_OF_TOKENS)) != 0 ) {
         return rc;
+    }
     
     spot_name_tok = rslt->data->base;
     
     /* reverse line parse by format:
        /^(.+):([0-9]+):([0-9]+)$/ = (name, x, x) = ($1, $2, $3)
     */
-    name = argv[0].u.data.base;
-    name += argv[0].u.data.first_elem;
+    name = &((const char *)argv[0].u.data.base)[argv[0].u.data.first_elem];
     end = name + argv[0].u.data.elem_count;
 
-    while ( end > name && tok > 0 )
-    {
-        const char *num_start, *num_end = end;
-
-        /* examine least significant digit */
-        -- end;
-        if ( ! isdigit ( * end ) )
-            break;
-
-        /* any digit 0-9 is okay as least significant */
-        num_start = end;
-
-        /* examine remaining digits */
-        while ( end > name )
-        {
-            /* require 0-9 to stay within parse */
-            -- end;
-            if ( ! isdigit ( * end ) )
-                break;
-
-            /* only reset numeric start if not 0 */
-            if ( * end != '0' )
-                num_start = end;
+    while(rc == 0 && end > name && tok > 0 ) {
+        size_t l = 0;
+        while( isdigit(*--end) && end > name ) {
+            l++;
+        }
+        if( *end != ':' || l == 0 ) {
+            rc = RC(rcSRA, rcFormatter, rcReading, rcName, rcUnrecognized);
+        } else {
+            tok--;
+            spot_name_tok[tok].s.token_type = types[tok];
+            spot_name_tok[tok].s.position = end - name + 1;
+            spot_name_tok[tok].s.length = l;
         }
-
-        /* should have stopped on ':' */
-        if ( *end != ':' )
-            break;
-
-        /* we have a numeric token
-           due to oddities, exclude leading zeros from numeral */
-        -- tok;
-        spot_name_tok[tok].s.token_type = types[tok];
-        spot_name_tok[tok].s.position = num_start - name;
-        spot_name_tok[tok].s.length = num_end - num_start;
     }
-
-    /* if all tokens were seen, the parse was good */
-    if( tok == 0 )
-        rslt->elem_count = EXPECTED_NUMBER_OF_TOKENS;
-    else
-    {
-        /* otherwise, treat entire string as unrecognized */
+    if( rc == 0 && tok != 0 ) {
+        rc = RC(rcSRA, rcFormatter, rcReading, rcName, rcInvalid);
+    }
+    if( rc != 0 ) {
         spot_name_tok[0].s.token_type = nt_unrecognized;
         spot_name_tok[0].s.position = 0;
         spot_name_tok[0].s.length = argv[0].u.data.elem_count;
         rslt->elem_count = 1;
+    } else {
+        rslt->elem_count = EXPECTED_NUMBER_OF_TOKENS;
     }
-
     return 0;
 }
 
diff --git a/libs/sraxf/varloc.c b/libs/sraxf/varloc.c
old mode 100644
new mode 100755
diff --git a/libs/vdb/Makefile b/libs/vdb/Makefile
index 22bfcdb..86ca6f7 100644
--- a/libs/vdb/Makefile
+++ b/libs/vdb/Makefile
@@ -43,16 +43,18 @@ include $(TOP)/build/Makefile.env
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(INT_LIBS): vers-includes
+$(INT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(ILIBDIR)/$@
 
-$(EXT_LIBS): vers-includes
+$(EXT_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(LIBDIR)/$@
 
-.PHONY: all std $(ALL_LIBS)
+.PHONY: vers-includes all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -64,13 +66,6 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/all $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -107,7 +102,6 @@ VDBCMN_SRC = \
 	linker-int \
 	linker-cmn \
 	database-cmn \
-	database-depend \
 	database-load \
 	table-cmn \
 	table-load \
@@ -136,9 +130,7 @@ VDBCMN_SRC = \
 	redimension \
 	index_project \
 	index_lookup \
-	transpose \
-	delta_average \
-	report-vdb
+	transpose
 
 VDB_SRC = \
 	$(VDBCMN_SRC) \
@@ -156,10 +148,8 @@ VDB_OBJ = \
 
 VDB_LIB = \
 	-dkdb \
-	-dvfs \
 	-dkfg \
 	-dkfs \
-	-dkproc \
 	-dklib \
 	-dz
 
@@ -197,7 +187,6 @@ WVDB_OBJ = \
 
 WVDB_LIB = \
 	-dwkdb \
-	-dvfs \
 	-dkfg \
 	-dkfs \
 	-dkproc \
diff --git a/libs/vdb/blob-priv.h b/libs/vdb/blob-priv.h
index 625e979..c904365 100644
--- a/libs/vdb/blob-priv.h
+++ b/libs/vdb/blob-priv.h
@@ -31,10 +31,6 @@
 #include <klib/defs.h>
 #endif
 
-#ifndef _h_vdb_blob_
-#include <vdb/blob.h>
-#endif
-
 #ifndef _h_klib_refcount_
 #include <klib/refcount.h>
 #endif
@@ -69,29 +65,10 @@ struct BlobHeaders;
 struct VProduction;
 struct VBlobPageMapCache;
 
-typedef struct PageMapProcessRequest{
-    struct PageMap *pm;        /**** deserialized form **/
-    KDataBuffer data;   /**** serialized   form **/
-    uint32_t    row_count;
-    uint64_t    elem_count;
-    rc_t rc;            /**** results **/
-
-    volatile enum {
-        ePMPR_STATE_NONE=0,
-        ePMPR_STATE_SERIALIZE_REQUESTED,
-        ePMPR_STATE_DESERIALIZE_REQUESTED,
-        ePMPR_STATE_SERIALIZE_DONE,
-        ePMPR_STATE_DESERIALIZE_DONE,
-	ePMPR_STATE_EXIT
-    } state;            /**** request state      **/
-    struct KLock      *lock;
-    struct KCondition *cond;
-} PageMapProcessRequest;
-
-
 /*--------------------------------------------------------------------------
  * VBlob
  */
+typedef struct VBlob VBlob;
 struct VBlob
 {
     int64_t start_id;
@@ -129,15 +106,9 @@ struct VBlobPageMapCache {
 
 rc_t VBlobNew( VBlob **lhs, int64_t start_id, int64_t stop_id, const char *name );
 
-/* use inline-able addref and release on blobs
-   within the library for efficiency */
 #if 1
 #define VBlobAddRef( self ) \
-    ( ( ( self ) == NULL ) ? \
-      0 : ( atomic32_inc ( & ( self ) -> refcount ), 0 ) )
-#define VBlobRelease( self ) \
-    ( ( ( self ) == NULL || atomic32_read_and_add_gt ( & ( self ) -> refcount, -1, 1 ) > 1 ) ? \
-      0 : VBlobRelease ( self ) )
+    ( ( ( self ) == NULL ) ? 0 : ( atomic32_inc ( & ( self ) -> refcount ), 0 ) )
 #endif
 
 #if _DEBUGGING
@@ -147,12 +118,20 @@ void VBlobCheckIntegrity ( const VBlob *self );
   ( void ) 0
 #endif
 
+#ifdef VBlobAddRef
+rc_t VBlobReleaseLast ( VBlob *self );
+#define VBlobRelease( self ) \
+    ( ( ( self ) == NULL || atomic32_read_and_add_gt ( & ( self ) -> refcount, -1, 1 ) > 1 ) ? 0 : VBlobReleaseLast ( self ) )
+#else
+rc_t VBlobAddRef( VBlob *self );
+rc_t VBlobRelease( VBlob *self );
+#endif
+
 rc_t VBlobCreateFromData(
                          struct VBlob **lhs,
                          int64_t start_id, int64_t stop_id,
                          const KDataBuffer *src,
-                         uint32_t elem_bits,
-			 PageMapProcessRequest const *pmpr
+                         uint32_t elem_bits
 );
 
 rc_t VBlobCreateFromSingleRow(
@@ -161,8 +140,6 @@ rc_t VBlobCreateFromSingleRow(
                               const KDataBuffer *src,
                               VByteOrder byte_order
 );
-/*** VBlob as a new array; meaning fixed len,data_run(..)=1 **/
-rc_t VBlobNewAsArray(struct VBlob **lhs, int64_t start_id, int64_t stop_id, uint32_t rowlen, uint32_t elem_bits); 
     
 rc_t VBlobSerialize( const VBlob *self, KDataBuffer *result );
 
@@ -174,26 +151,6 @@ rc_t VBlobAppend( struct VBlob *self, const struct VBlob *other );
 /**** finds start_id in a blob and builds sub-blob for the number or repetitions ***/
 rc_t VBlobSubblob( const struct VBlob *self,struct VBlob **sub, int64_t start_id );
 
-void VBlobPageMapOptimize( struct VBlob **self );
-
-#define LAST_BLOB_CACHE_SIZE 256
-
-
-typedef struct VBlobMRUCache VBlobMRUCache; /** forward declaration **/
-typedef  struct VBlobMRUCacheCursorContext {  /** to be used to pass cache context down to production level ***/
-	VBlobMRUCache * cache;
-	uint32_t	col_idx;
-} VBlobMRUCacheCursorContext;
-
-VBlobMRUCache * VBlobMRUCacheMake(uint64_t capacity );
-void VBlobMRUCacheDestroy( VBlobMRUCache *self );
-const VBlob* VBlobMRUCacheFind(const VBlobMRUCache *cself, uint32_t col_idx, int64_t row_id);
-rc_t VBlobMRUCacheSave(const VBlobMRUCache *cself, uint32_t col_idx, const VBlob *blob);
-
-
-rc_t PageMapProcessGetPagemap(const PageMapProcessRequest *self,struct PageMap **pm);
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/libs/vdb/blob.c b/libs/vdb/blob.c
index dbf63cc..58faa71 100644
--- a/libs/vdb/blob.c
+++ b/libs/vdb/blob.c
@@ -36,23 +36,16 @@
 #include <klib/defs.h>
 #include <byteswap.h>
 #include <klib/data-buffer.h>
-#include <klib/container.h>
 #include <klib/vlen-encode.h>
-#include <kdb/btree.h>
 #include <vdb/schema.h>
 #include <vdb/xform.h>
 #include <klib/log.h>
 #include <sysalloc.h>
 #include <bitstr.h>
 
-#include <kproc/timeout.h>
-#include <kproc/lock.h>
-#include <kproc/cond.h>
-
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
-#include <os-native.h>
 
 #include <stdio.h> /* temp for debugging */
 
@@ -62,7 +55,7 @@ void VBlobCheckIntegrity ( const VBlob *self )
     if ( self != NULL )
     {
         rc_t rc = KDataBufferCheckIntegrity ( & self -> data );
-        if ( rc != 0 )
+	if ( rc != 0 )
         {
             fprintf ( stderr, "AAAAAH!\n" );
         }
@@ -99,24 +92,6 @@ rc_t VBlobNew ( VBlob **lhs, int64_t start_id, int64_t stop_id, const char *name
     }
     return RC(rcVDB, rcBlob, rcConstructing, rcMemory, rcExhausted);
 }
-rc_t VBlobNewAsArray(struct VBlob **lhs, int64_t start_id, int64_t stop_id, uint32_t rowlen, uint32_t elem_bits)
-{
-	VBlob *y;
-	rc_t rc = VBlobNew(&y,start_id,stop_id,NULL);
-	if(rc == 0){
-		rc = KDataBufferMake(&y->data,elem_bits,rowlen*(stop_id-start_id+1));
-		if(rc == 0){
-			rc=PageMapNewFixedRowLength(&y->pm,stop_id-start_id+1,rowlen);
-			if(rc == 0){
-				*lhs = y;
-				return 0;
-			}
-			PageMapRelease(y->pm);
-		}
-		VBlobRelease(y);
-	}
-	return rc;
-}
 
 static rc_t VBlobDestroy( VBlob *that ) {
     if (that->spmc) {
@@ -133,6 +108,37 @@ static rc_t VBlobDestroy( VBlob *that ) {
     return 0;
 }
 
+#ifdef VBlobAddRef
+rc_t VBlobReleaseLast ( VBlob *self )
+#else
+rc_t VBlobAddRef ( const VBlob *self )
+{
+    if ( self != NULL )
+        KRefcountAdd(&self->refcount, "VBlob");
+    return 0;
+}
+
+rc_t VBlobRelease ( const VBlob *self )
+#endif
+{
+    rc_t rc = 0;
+
+    if ( self != 0 )
+    {
+        switch ( KRefcountDrop(&self->refcount, "VBlob") )
+        {
+        case krefWhack:
+            return VBlobDestroy ( self );
+        case krefNegative:
+            rc = RC (rcVDB, rcBlob, rcDestroying, rcBlob, rcExcessive);
+            PLOGERR ( klogInt, (klogInt, rc, "Released a blob $(B) with no more references",
+                      PLOG_P(self)));
+            break;
+        }
+    }
+    return rc;
+}
+
 static rc_t decode_header_byte_v2(
                                   uint8_t header_byte,
                                   uint8_t *variant,
@@ -298,8 +304,8 @@ static rc_t encode_header_v1(
         dst[0] = header_byte;
         dst[1] = ( uint8_t ) row_length;
         dst[2] = ( uint8_t ) ( row_length >> 8 );
-        dst[3] = ( uint8_t ) ( row_length >> 16 );
-        dst[4] = ( uint8_t ) ( row_length >> 24 );
+        dst[2] = ( uint8_t ) ( row_length >> 16 );
+        dst[3] = ( uint8_t ) ( row_length >> 24 );
     }
     return 0;
 }
@@ -375,81 +381,13 @@ static rc_t encode_header_v2(
 }
 
 static
-rc_t PageMapProcessRequestLock(PageMapProcessRequest *self)
-{
-	rc_t rc=RC(rcVDB,rcPagemap, rcConstructing, rcSelf, rcNull);
-	if(self){
-		struct timeout_t tm;
-		TimeoutInit(&tm,0);
-		TimeoutPrepare(&tm);
-		/*** no plans to wait here the thread should be relased by now ****/
-		rc = KLockTimedAcquire(self->lock,&tm);
-		if(rc == 0){
-			if(self->state != ePMPR_STATE_NONE){ /*** thread is not released yet **/
-				assert(0); /** should not happen ***/
-				KLockUnlock(self->lock);
-				rc=RC(rcVDB, rcPagemap, rcConstructing, rcThread, rcBusy);
-			}
-		}
-	}
-	return rc;
-}
-
-static
-void PageMapProcessRequestLaunch(PageMapProcessRequest *self)
-{
-	KLockUnlock(self -> lock);
-	KConditionSignal ( self -> cond );
-}
-
-rc_t PageMapProcessGetPagemap(const PageMapProcessRequest *cself,struct PageMap **pm)
-{
-	rc_t rc=RC(rcVDB,rcPagemap, rcConstructing, rcSelf, rcNull);
-        if(cself){
-	    PageMapProcessRequest *self=(PageMapProcessRequest*)cself;
-	    if(self->lock == NULL){
-		/** NOT LOCKABLE **/
-		rc=0;
-	    } else if((rc = KLockAcquire ( self->lock ))==0){
-CHECK_AGAIN:
-		switch(self->state){
-		 case ePMPR_STATE_DESERIALIZE_REQUESTED:
-			/*fprintf(stderr,"Waiting for pagemap %p\n",cself->lock);*/
-			rc = KConditionWait ( self -> cond, self -> lock );
-                        goto CHECK_AGAIN;
-		 case ePMPR_STATE_DESERIALIZE_DONE:
-			assert(self->pm);
-			/*fprintf(stderr,"Pagemap %p Used R:%6d|DR:%d|LR:%d\n",self->lock, self->pm->row_count,self->pm->data_recs,self->pm->leng_recs);*/
-			*pm=self->pm;
-			self->pm = NULL;
-			KDataBufferWhack(&self->data);
-			self->row_count = 0;
-			self->state = ePMPR_STATE_NONE;
-			KLockUnlock(self -> lock);
-			KConditionSignal(self->cond);
-			break;
-		case ePMPR_STATE_NONE: /* not requested */
-			KLockUnlock(self -> lock);
-		    rc = 0;
-		    break;
-		 default: /** should never happen ***/
-			assert(0);
-			KLockUnlock(self -> lock);
-			return RC(rcVDB, rcPagemap, rcConverting, rcParam, rcInvalid );
-		}
-	    }
-        }
-        return rc;
-}
-
-
-static
 rc_t VBlobCreateFromData_v2(
                             VBlob **lhs,
                             const KDataBuffer *data,
                             int64_t start_id, int64_t stop_id,
-                            uint32_t elem_bits, PageMapProcessRequest *pmpr
+                            uint32_t elem_bits
 ) {
+    const uint8_t *src = data->base;
     uint64_t ssize = data->elem_count;
     uint32_t hsize;
     uint32_t msize;
@@ -458,10 +396,8 @@ rc_t VBlobCreateFromData_v2(
     uint8_t adjust;
     VBlob *y;
     uint32_t data_offset;
-    uint32_t pagemap_offset;
     bitsz_t databits;
     uint32_t elem_count;
-    uint8_t *src = data->base;
     rc_t rc;
     
     rc = decode_header_v2(src, ssize, &hsize, &msize, &offset, &adjust, &byte_order);
@@ -471,8 +407,8 @@ rc_t VBlobCreateFromData_v2(
     if (ssize < offset + hsize + msize)
         return RC(rcVDB, rcBlob, rcConstructing, rcData, rcInsufficient);
     
-    pagemap_offset = offset + hsize;
-    data_offset = pagemap_offset + msize;
+    src += offset;
+    data_offset = offset + hsize + msize;
     assert(data_offset <= ssize);
     ssize -= data_offset;
     databits = (ssize << 3) - adjust;
@@ -483,23 +419,9 @@ rc_t VBlobCreateFromData_v2(
     TRACK_BLOB (VBlobNew, y);
     if (rc == 0) {
         if (hsize)
-            rc = BlobHeadersCreateFromData(&y->headers, src+offset , hsize);
+            rc = BlobHeadersCreateFromData(&y->headers, src, hsize);
         if (rc == 0) {
-            if (msize > 0) {
-                if(PageMapProcessRequestLock(pmpr)==0) {
-                    KDataBufferSub(data, &pmpr->data, pagemap_offset, msize);
-                    pmpr->row_count = BlobRowCount(y);
-                    pmpr->state = ePMPR_STATE_DESERIALIZE_REQUESTED;
-                    /*fprintf(stderr,"Pagemap %p Requested R:%6d|SZ:%d|%ld:%ld\n",pmpr->lock, pmpr->row_count,msize,start_id, stop_id);*/
-                    PageMapProcessRequestLaunch(pmpr);
-                }
-                else {
-                    KDataBuffer tdata;
-                    KDataBufferSub(data, &tdata, pagemap_offset, msize);
-                    rc = PageMapDeserialize(&y->pm, tdata.base,tdata.elem_count, BlobRowCount(y));
-                    KDataBufferWhack(&tdata);
-                }
-            }
+            rc = PageMapDeserialize(&y->pm, src + hsize, msize, BlobRowCount(y));
             if (rc == 0) {
                 KDataBufferSub(data, &y->data, data_offset, ssize);
                 y->data.elem_bits = elem_bits;
@@ -539,10 +461,19 @@ rc_t VBlobCreateFromData_v1(
     
     header = *src;
     byte_order = header & 3; header >>= 2;
+#if 0
+    /* v1 stores adjustment as the number of bits to subtract:
+       stored_adjust = ( 8 - ( data_bits & 7 ) ) & 7;
+       calculated_bits_from_blob_size = blob_bytes << 3;
+       actual_blob_bits = calculated_bits_from_blob_size - stored_adjust; */
+    adjust = (8 - (header & 7)) & 7;
+#else
     adjust = header & 7;
+#endif
     header >>= 3;
     rls = header & 3;
     
+#if 1
     /* convert rls from a code to an actual length */
     rls = "\x01\x02\x04\x00" [ rls ];
 
@@ -568,35 +499,48 @@ rc_t VBlobCreateFromData_v1(
 #endif
     }
 
+#else
+    switch (rls) {
+    case 0:
+        offset = 2;
+        if (ssize < offset)
+            return RC(rcVDB, rcBlob, rcConstructing, rcData, rcInsufficient);
+        row_len = src[1];
+        break;
+    case 1:
+        offset = 3;
+        if (ssize < offset)
+            return RC(rcVDB, rcBlob, rcConstructing, rcData, rcInsufficient);
+        /* the result of these sub-expressions is a uint8_t
+           and will not survive the shifts. casting to uint32_t
+           on the very first access will fix the problem */
+        row_len = (src[2] << 8) | src[1];
+        break;
+    case 2:
+        offset = 5;
+        if (ssize < offset)
+            return RC(rcVDB, rcBlob, rcConstructing, rcData, rcInsufficient);
+        /* see comment above */
+        row_len = (((((src[4] << 8) | src[3]) << 8) | src[2]) << 8) | src[1];
+        break;
+    default:
+        offset = 1;
+        row_len = 1;
+        break;
+    }
+#endif
     ssize -= offset;
     databits = (ssize << 3) - adjust;
     assert(databits % elem_bits == 0);
 
+    /* TBD - row_len CAN be 0 in certain cases
+       wait on legacy decoding function to extract
+       row length, and then SET IT */
     rc = VBlobNew(&y, start_id, stop_id, NULL);
     TRACK_BLOB (VBLobNew, y);
     if (rc == 0) {
-
-        uint64_t row_count = BlobRowCount ( y );
-
-        /* test for badly formed row-length */
-        if ( rls == 4 )
-        {
-            assert ( row_len != 0 );
-            if ( row_len * row_count != databits / elem_bits )
-            {
-                /* we can fix a length if we know the count */
-                if ( row_count != 0 )
-                    row_len = ( databits / elem_bits ) / row_count;
-                else
-                {
-                    /* rely on code to handle legacy blobs in prod-cmn.c:VFunctionProdCallByteswap */
-                    row_len = 0;
-                }
-            }
-        }
-
         if ( row_len != 0 )
-            rc = PageMapNewFixedRowLength( &y->pm, row_count, row_len );
+            rc = PageMapNewFixedRowLength( &y->pm, BlobRowCount(y), (uint32_t)row_len );
         if (rc == 0) {
             KDataBufferSub(data, &y->data, offset, ssize);
             y->data.elem_bits = elem_bits;
@@ -613,258 +557,6 @@ rc_t VBlobCreateFromData_v1(
     return rc;
 }
 
-static void VBlobOptimize_UnRLE_uint8_t(VBlob **vblobp)
-{
-	VBlob   *sblob  = *vblobp;
-	VBlob *vblob;
-	rc_t rc = VBlobNewAsArray(&vblob,sblob -> start_id, sblob -> stop_id,sblob->pm->length[0],sblob->data.elem_bits);
-	if( rc == 0){
-		uint32_t i,j;
-		uint8_t *src=sblob->data.base;
-		uint8_t *dst=vblob->data.base;
-		for(i=j=0;i<sblob->pm->data_recs;i++){
-			row_count_t data_len=sblob->pm->data_run[i];
-			while(data_len > 0){
-				assert(j < sblob->pm->row_count);
-				dst[j++] = src[i];
-				data_len--;
-			}
-		}
-		vblob->pm->optimized = eBlobPageMapOptimizedSucceeded;
-		VBlobRelease(sblob);
-		(*vblobp) = vblob;
-	}
-}
-static void VBlobOptimize_UnRLE_uint16_t(VBlob **vblobp)
-{
-	VBlob   *sblob  = *vblobp;
-	VBlob *vblob;
-	rc_t rc = VBlobNewAsArray(&vblob,sblob -> start_id, sblob -> stop_id,sblob->pm->length[0],sblob->data.elem_bits);
-	if( rc == 0) {
-		uint32_t i,j;
-		uint16_t *src=sblob->data.base;
-		uint16_t *dst=vblob->data.base;
-		for(i=j=0;i<sblob->pm->data_recs;i++){
-			row_count_t data_len=sblob->pm->data_run[i];
-			while(data_len > 0){
-				assert(j < sblob->pm->row_count);
-				dst[j++] = src[i];
-				data_len--;
-			}
-		}
-		vblob->pm->optimized = eBlobPageMapOptimizedSucceeded;
-		VBlobRelease(sblob);
-		(*vblobp) = vblob;
-	}
-}
-static void VBlobOptimize_UnRLE_uint32_t(VBlob **vblobp)
-{
-	VBlob   *sblob  = *vblobp;
-	VBlob *vblob;
-	rc_t rc = VBlobNewAsArray(&vblob,sblob -> start_id, sblob -> stop_id,sblob->pm->length[0],sblob->data.elem_bits);
-	if( rc == 0) {
-		uint32_t i,j;
-		uint32_t *src=sblob->data.base;
-		uint32_t *dst=vblob->data.base;
-		for(i=j=0;i<sblob->pm->data_recs;i++){
-			row_count_t data_len=sblob->pm->data_run[i];
-			while(data_len > 0){
-				assert(j < sblob->pm->row_count);
-				dst[j++] = src[i];
-				data_len--;
-			}
-		}
-		vblob->pm->optimized = eBlobPageMapOptimizedSucceeded;
-		VBlobRelease(sblob);
-		(*vblobp) = vblob;
-	}
-}
-static void VBlobOptimize_UnRLE_uint64_t(VBlob **vblobp)
-{
-	VBlob   *sblob  = *vblobp;
-	VBlob *vblob;
-	rc_t rc = VBlobNewAsArray(&vblob,sblob -> start_id, sblob -> stop_id,sblob->pm->length[0],sblob->data.elem_bits);
-	if( rc == 0) {
-		uint32_t i,j;
-		uint64_t *src=sblob->data.base;
-		uint64_t *dst=vblob->data.base;
-		for(i=j=0;i<sblob->pm->data_recs;i++){
-			row_count_t data_len=sblob->pm->data_run[i];
-			while(data_len > 0){
-				assert(j < sblob->pm->row_count);
-				dst[j++] = src[i];
-				data_len--;
-			}
-		}
-		vblob->pm->optimized = eBlobPageMapOptimizedSucceeded;
-		VBlobRelease(sblob);
-		(*vblobp) = vblob;
-	}
-}
-
-
-void VBlobPageMapOptimize ( VBlob **vblobp)
-{
-	VBlob   *sblob  = *vblobp;
-	PageMap *pm     = sblob->pm;
-	if(pm->optimized != eBlobPageMapOptimizedNone) return; /* do not optimize previously optimized blobs */
-	pm->optimized = eBlobPageMapOptimizedFailed; /*** prevent future optimization if none of the algorithms succeeds ***/
-
-	if(pm->leng_recs == 1)
-    {
-		if( pm->length[0] * sblob->data.elem_bits == 8 /** 1 byte data ***/
-		    &&  pm->data_recs < pm->row_count       /** rle was used ***/
-		    &&  pm->data_recs * 6 > pm->row_count){ /** but not super efficiently **/
-			/*printf("OPTIMIZATION: UnRLE(8)\n");*/
-			VBlobOptimize_UnRLE_uint8_t(vblobp); 
-			return;
-		}
-		if( pm->length[0] * sblob->data.elem_bits == 16 /** 2 byte data ***/
-		    &&  pm->data_recs < pm->row_count       /** rle was used ***/
-		    &&  pm->data_recs * 2 > pm->row_count){ /** but not super efficiently **/
-			/*printf("OPTIMIZATION: UnRLE(16)\n");*/
-			VBlobOptimize_UnRLE_uint16_t(vblobp);
-			return;
-		}
-		if( pm->length[0] * sblob->data.elem_bits == 32 /** 4 byte data ***/
-		    &&  pm->data_recs < pm->row_count       /** rle was used ***/
-		    &&  pm->data_recs * 15 > pm->row_count * 10 ){ /** but not super efficiently **/
-			/*printf("OPTIMIZATION: UnRLE(32)\n");*/
-			VBlobOptimize_UnRLE_uint32_t(vblobp);
-			return;
-		}
-		if( pm->length[0] * sblob->data.elem_bits == 64 /** 8 byte data ***/
-		    &&  pm->data_recs < pm->row_count       /** rle was used ***/
-		    &&  pm->data_recs * 11 > pm->row_count * 10 ){ /** but not super efficiently **/
-			/*printf("OPTIMIZATION: UnRLE(64)\n");*/
-			VBlobOptimize_UnRLE_uint64_t(vblobp);
-			return;
-		}
-
-	}
-
-	if(pm->row_count > 1024 && (sblob->data.elem_bits & 7) == 0)
-    {
-		elem_count_t	minlen,maxlen;
-		elem_count_t	elem_sz = sblob->data.elem_bits/8;
-		rc_t rc = PageMapRowLengthRange(pm, &minlen,&maxlen);
-		if( rc == 0  && maxlen*elem_sz > 2 ){ 
-		/******* TRY dictionary **/
-			int64_t		limit_vocab_size;
-			uint32_t	vocab_cnt=0;
-			KBTree		*vocab_key2id = NULL;
-			bool		valid_data_run = (pm->row_count != pm->data_recs);
-			uint32_t	*data_offset = NULL;
-			KDataBuffer     new_data;
-
-			rc=KDataBufferMake(&new_data,sblob->data.elem_bits,0); /** no allocation - shoulf not fail at all **/
-			assert(rc==0);
-/*******************
-* another formula
-* the savings should not be less than the waste on pointers into data vocabulary
-* it is assumed that the data offsets will cost us not more than 2 bytes on disk
-* the nasty left part is the average number of bytes in a row
-* limit_vocab_size = ((int64_t)sblob->data.elem_count*elem_sz - 2*pm->row_count) * sblob->data.elem_count / pm->data_recs / elem_sz;
-****************/
-			limit_vocab_size = ((int64_t)sblob->data.elem_count*elem_sz +(valid_data_run?pm->data_recs*2:0) -  2*pm->row_count)
-					   * pm->data_recs / (int64_t)sblob->data.elem_count / elem_sz;
-			
-
-			if(limit_vocab_size <=1 ){
-				rc = RC(rcVDB, rcBlob, rcConstructing, rcId, rcOutofrange);
-			}
-			if(limit_vocab_size > pm->data_recs/4){
-				limit_vocab_size = pm->data_recs/4;  /* to limit the amount of work **/
-			}
-#define MAX_VOCAB_SIZE 2048
-			if(limit_vocab_size > MAX_VOCAB_SIZE) limit_vocab_size=MAX_VOCAB_SIZE;
-			if(rc == 0)
-				rc=KBTreeMakeUpdate(&vocab_key2id, NULL, 256*1024*1024,
-				      false, kbtOpaqueKey,
-				      minlen?minlen*elem_sz:1,maxlen*elem_sz, sizeof ( uint32_t ), NULL);
-			if(rc == 0){
-				uint32_t i,j;
-				uint8_t  *src;
-				uint32_t dst_offset;
-				uint32_t vocab_arr[MAX_VOCAB_SIZE];
-				data_offset = malloc(pm->data_recs * sizeof(*data_offset));
-				if(data_offset == NULL){
-					rc = RC(rcVDB, rcBlob, rcConstructing, rcMemory, rcExhausted);
-				}
-				for(i=j=0,src = sblob->data.base,dst_offset=0;i<pm->leng_recs && rc == 0 ;i++){
-					row_count_t leng_run = pm->leng_run[i];
-					if(pm->length[i] == 0){/*** trivial case, can point anywhere - no vocabulary**/
-						for(;leng_run > 0;j++){
-							row_count_t data_run = valid_data_run?pm->data_run[j]:1;
-							assert(leng_run >= data_run);
-							data_offset[j] = 0; /**  point to offset=0 **/
-							leng_run -=data_run;
-						}
-					} else for(;leng_run > 0 && rc == 0;j++){
-						row_count_t data_run = valid_data_run?pm->data_run[j]:1;
-						bool wasInserted;
-						uint64_t tmp_id = vocab_cnt;
-						assert(leng_run >= data_run);
-						leng_run -=data_run;
-						rc = KBTreeEntry(vocab_key2id, &tmp_id, &wasInserted, src, pm->length[i]*elem_sz);
-						if(rc == 0){
-							if(wasInserted){
-								vocab_cnt++;
-								if(vocab_cnt == limit_vocab_size) {
-									rc = RC(rcVDB, rcBlob, rcConstructing, rcId, rcTooBig);
-								} else {
-									vocab_arr[tmp_id] = dst_offset; /** save offset */
-									data_offset[j]    = dst_offset;
-									rc = KDataBufferResize(&new_data,dst_offset+pm->length[i]);
-									if(rc == 0){
-										memcpy((uint8_t*)new_data.base+dst_offset*elem_sz,src,pm->length[i]*elem_sz);
-										dst_offset += pm->length[i];
-									}
-								}
-							} else {
-								assert(vocab_arr[tmp_id] <= dst_offset);
-								data_offset[j] = vocab_arr[tmp_id]; /** retrieve offset **/
-							}
-						}
-						src +=pm->length[i]*elem_sz;
-						assert(src - (uint8_t*)sblob->data.base <= sblob->data.elem_count * elem_sz);
-					}
-				}
-				if(rc == 0 ){
-					PageMap *new_pm;
-					/*printf("OPTIMIZATION LEVEL REACHED: vocab:%d,rows:%d,data_recs:%d\n",vocab_cnt ,pm->row_count,pm->data_recs);*/
-					rc=PageMapToRandomAccess(&new_pm,pm,data_offset); 
-					if(rc == 0){
-						/** DONE ***/
-						VBlob *vblob;
-						rc=VBlobNew(&vblob, sblob->start_id, sblob->stop_id, NULL);
-						if(rc==0){
-							vblob->pm = new_pm;
-							vblob->pm->optimized = eBlobPageMapOptimizedSucceeded;
-							vblob->data = new_data;
-							VBlobRelease(sblob);
-							*vblobp=vblob;
-							free(data_offset);
-							KBTreeRelease(vocab_key2id);
-							return;
-						}
-						PageMapRelease(new_pm);
-						
-					}
-					KDataBufferWhack(&new_data);
-				} else {
-					/*printf("NO OPTIMIZATION: vocab:%d,rows:%d,data_recs:%d\n",vocab_cnt ,pm->row_count,pm->data_recs);*/
-					KDataBufferWhack(&new_data);
-				}
-				if(data_offset) free(data_offset);
-				if(vocab_key2id) KBTreeRelease  ( vocab_key2id );
-			}
-		}
-	}
-
-}
-
-
 rc_t VBlobSerialize ( const VBlob *self, KDataBuffer *result ) {
     uint64_t sz;
     rc_t rc;
@@ -939,7 +631,7 @@ rc_t VBlobSerialize ( const VBlob *self, KDataBuffer *result ) {
 rc_t VBlobCreateFromData ( struct VBlob **lhs,
                          int64_t start_id, int64_t stop_id,
                          const KDataBuffer *src,
-                         uint32_t elem_bits , PageMapProcessRequest const *pmpr)
+                         uint32_t elem_bits )
 {
     VBlob *y = NULL;
     rc_t rc;
@@ -954,7 +646,7 @@ rc_t VBlobCreateFromData ( struct VBlob **lhs,
     if ((((const uint8_t *)src->base)[0] & 0x80) == 0)
         rc = VBlobCreateFromData_v1(&y, src, start_id, stop_id, elem_bits);
     else
-        rc = VBlobCreateFromData_v2(&y, src, start_id, stop_id, elem_bits, (PageMapProcessRequest*)pmpr);
+        rc = VBlobCreateFromData_v2(&y, src, start_id, stop_id, elem_bits);
 
     if (rc == 0)
         *lhs = y;
@@ -979,6 +671,17 @@ rc_t VBlobCreateFromSingleRow (
         if (rc == 0) {
             rc = KDataBufferSub(src, &y->data, 0, UINT64_MAX);
             if (rc == 0) {
+                switch (byte_order) {
+                default:
+                    break;
+                case vboNative:
+                case vboNone:
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+                    byte_order = vboLittleEndian;
+#else
+                    byte_order = vboBigEndian;
+#endif
+                }
                 y->byte_order = byte_order;
                 *lhs = y;
                 return 0;
@@ -990,7 +693,7 @@ rc_t VBlobCreateFromSingleRow (
 }
 
 bool VBlobIsSingleRow( const struct VBlob *self ) {
-    return (self->pm && self->pm->data_recs==1) ? true : false;
+    return self->pm && PageMapFastRowCount(self->pm) == BlobRowCount(self) ? true : false;
 }
 
 uint32_t VBlobFixedRowLength( const struct VBlob *self ) {
@@ -1133,10 +836,10 @@ rc_t VBlobSubblob( const struct VBlob *self,struct VBlob **sub, int64_t start_id
             
             rc = KDataBufferSub(&self->data, &kd, offset, length);
             if(rc == 0){
-                int64_t	stop_id;
+		int64_t	stop_id;
 
-                if(length > 0) stop_id = start_id + numrep - 1;
-                else           stop_id = start_id; /*** HACK - 0 sized data may be a sign that real data is somewhere else ***/
+		if(length > 0) stop_id = start_id + numrep - 1;
+		else           stop_id = start_id; /*** HACK - 0 sized data may be a sign that real data is somewhere else ***/
 
                 rc = VBlobCreateFromSingleRow(sub, start_id, stop_id, &kd, self->byte_order);
                 KDataBufferWhack(&kd);
@@ -1148,401 +851,3 @@ rc_t VBlobSubblob( const struct VBlob *self,struct VBlob **sub, int64_t start_id
     return rc;
 }
 
-
-LIB_EXPORT rc_t CC VBlobIdRange ( const VBlob *self,
-    int64_t *first, uint64_t *count )
-{
-    if ( self == NULL )
-    {   return RC ( rcVDB, rcBlob, rcAccessing, rcSelf, rcNull ); }
-
-    if ( first != NULL )
-    {   *first = self -> start_id; }
-
-    if ( count != NULL )
-    {   *count = self -> stop_id + 1 - self -> start_id; }
-
-    return 0;
-}
-
-LIB_EXPORT rc_t CC VBlobCellData ( const VBlob *self, int64_t row_id,
-    uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len )
-{
-    uint32_t dummyb;
-    uint32_t dummyr;
-    if ( boff == NULL )
-    {   boff = & dummyb; }
-    if ( row_len == NULL )
-    {   row_len = & dummyr; }
-
-    if ( self == NULL )
-    {   return RC ( rcVDB, rcBlob, rcAccessing, rcSelf, rcNull ); }
-
-    if ( base == NULL )
-    {   return RC ( rcVDB, rcBlob, rcAccessing, rcParam, rcNull ); }
-
-    *base = self -> data . base;
-
-    if ( elem_bits != NULL )
-    {   *elem_bits = self -> data . elem_bits; }
-
-    *row_len = PageMapGetIdxRowInfo ( self -> pm,
-        ( uint32_t ) ( row_id - self -> start_id ), boff );
-
-    return 0;
-}
-
-/* a copy of VCursorRead() */
-LIB_EXPORT rc_t CC VBlobRead ( const VBlob *self, int64_t row_id,
-    uint32_t elem_bits, void *buffer, uint32_t blen, uint32_t *row_len )
-{
-    rc_t rc = 0;
-    const void* base = NULL;
-    uint32_t boff = 0;
-    uint32_t elem_size = 0;
-    uint64_t to_read = 0;
-    uint64_t bsize = 0;
-
-    if ( self == NULL )
-    {   return RC ( rcVDB, rcBlob, rcReading, rcSelf, rcNull ); }
-
-    if ( buffer == NULL || row_len == NULL )
-    {   return RC ( rcVDB, rcBlob, rcReading, rcParam, rcNull ); }
-
-    if ( elem_bits == 0 || ( elem_bits & 7 ) != 0 )
-    {   return RC ( rcVDB, rcCursor, rcReading, rcParam, rcInvalid ); }
-
-    rc = VBlobCellData ( self, row_id, &elem_size, &base, &boff, row_len );
-    if ( rc != 0 )
-    {   return rc; }
-    if ( elem_size < elem_bits && elem_bits % elem_size != 0 )
-    {   return RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent ); }
-    if ( elem_size > elem_bits && elem_size % elem_bits != 0 )
-    {   return RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent ); }
-    if ( * row_len == 0 )
-    {   return 0; }
-    if ( blen == 0 )
-    {   return RC ( rcVDB, rcCursor, rcReading, rcBuffer, rcInsufficient ); }
-
-    to_read = * row_len * elem_size;
-    bsize = blen * elem_bits;
-
-    /* always return the required buffer size */
-    * row_len = ( uint32_t ) ( to_read / elem_bits );
-
-    /* detect buffer too small */
-    if ( to_read > bsize ) {
-        rc = RC ( rcVDB, rcCursor, rcReading, rcBuffer, rcInsufficient );
-        to_read = bsize;
-    }
-
-    /* copy out data up to limit */
-    assert ( boff == 0 );
-    memcpy ( buffer, base, ( size_t ) ( to_read >> 3 ) );
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC VBlobReadBits ( const VBlob *self, int64_t row_id,
-    uint32_t elem_bits, uint32_t start, void *buffer, uint32_t off,
-    uint32_t blen, uint32_t *num_read, uint32_t *remaining )
-{
-    rc_t rc = 0;
-    const void* base = NULL;
-    uint32_t boff = 0;
-    uint32_t elem_size = 0;
-    uint64_t to_read = 0;
-    uint64_t bsize = 0;
-    uint32_t row_len = 0;
-    uint32_t dummy;
-    if ( remaining == NULL )
-    {   remaining = & dummy; }
-
-    if ( self == NULL )
-    {   return RC ( rcVDB, rcBlob, rcReading, rcSelf, rcNull ); }
-
-    if ( buffer == NULL || num_read == NULL )
-    {   return RC ( rcVDB, rcBlob, rcReading, rcParam, rcNull ); }
-
-    if ( elem_bits == 0 || ( elem_bits & 7 ) != 0  )
-    {   return RC ( rcVDB, rcBlob, rcReading, rcParam, rcInvalid ); }
-
-    rc = VBlobCellData ( self, row_id, &elem_size, &base, &boff, &row_len );
-    if ( rc != 0 )
-    {   return rc; }
-    if ( elem_size < elem_bits && elem_bits % elem_size != 0 )
-    {   return RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent ); }
-    if ( elem_size > elem_bits && elem_size % elem_bits != 0 )
-    {   return RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent ); }
-    if ( row_len == 0 ) {
-        * num_read = * remaining = 0;
-        return 0;
-    }
-    if ( * num_read == 0 )
-    {   return 0; }
-    to_read = row_len * elem_size;
-    bsize = blen * elem_bits;
-
-    if ( blen == 0 ) {
-        * num_read = 0;
-        * remaining = ( uint32_t ) ( to_read / elem_bits );
-        return 0;
-    }
-    bsize = blen * elem_size;
-    if ( to_read <= bsize )
-    {   * remaining = 0; }
-    else {
-        * remaining = (uint32_t)( ( to_read - bsize ) / elem_bits );
-        to_read = bsize;
-    }
-    bitcpy ( buffer, off, base, boff, ( bitsz_t ) to_read );
-    * num_read = ( uint32_t ) ( to_read / elem_bits );
-
-    return rc;
-}
-
-#undef VBlobAddRef
-#undef VBlobRelease
-
-LIB_EXPORT rc_t CC VBlobAddRef ( const VBlob *self )
-{
-    if ( self != NULL )
-        KRefcountAdd(&self->refcount, "VBlob");
-    return 0;
-}
-
-LIB_EXPORT rc_t CC VBlobRelease ( const VBlob *self )
-{
-    rc_t rc = 0;
-
-    if ( self != 0 )
-    {
-        switch ( KRefcountDrop(&self->refcount, "VBlob") )
-        {
-        case krefWhack:
-            return VBlobDestroy ( (VBlob*) self );
-        case krefNegative:
-            rc = RC (rcVDB, rcBlob, rcDestroying, rcBlob, rcExcessive);
-            PLOGERR ( klogInt, (klogInt, rc, "Released a blob $(B) with no more references",
-                      PLOG_P(self)));
-            break;
-        }
-    }
-    return rc;
-}
-
-/*--------------------------------------------------------------------------
- * VBlobCache
- */
-typedef struct VBlobCache VBlobCache;
-struct VBlobCache
-{
-    BSTNode bn;
-    DLNode ln;
-    size_t size;
-    const VBlob *blob;
-    uint32_t col_idx;
-};
-
-static
-void CC VBlobCacheWhack ( BSTNode *n, void *ignore )
-{
-    VBlobCache *self = ( VBlobCache* ) n;
-    VBlobRelease ( ( VBlob* ) self -> blob );
-    free ( self );
-}
-
-static
-rc_t VBlobCacheMake ( VBlobCache **bcp, const VBlob *blob, uint32_t col_idx, size_t blob_size )
-{
-    VBlobCache *bc = malloc ( sizeof * bc );
-    if ( bc == NULL )
-        return RC ( rcVDB, rcCursor, rcReading, rcMemory, rcExhausted );
-
-    bc -> size = blob_size;
-    bc -> blob = blob;
-    VBlobAddRef(blob);
-    bc -> col_idx = col_idx;
-    * bcp = bc;
-    return 0;
-}
-typedef struct VBlobCacheKey VBlobCacheKey;
-struct VBlobCacheKey
-{
-    int64_t row_id;
-    uint32_t col_idx;
-};
-
-static
-int CC VBlobCacheCmp ( const void *a, const BSTNode *b )
-{
-    const VBlobCacheKey * key = a;
-    const VBlobCache * node = ( const VBlobCache* ) b;
-
-    if ( key -> col_idx != node -> col_idx )
-        return ( int ) key -> col_idx - ( int ) node -> col_idx;
-
-    if ( key -> row_id < node -> blob -> start_id )
-        return -1;
-    return key -> row_id > node -> blob -> stop_id;
-}
-
-static
-int CC VBlobCacheSort ( const BSTNode *a, const BSTNode *b )
-{
-    const VBlobCache * item = ( const VBlobCache* ) a;
-    const VBlobCache * node = ( const VBlobCache* ) b;
-
-    if ( item -> col_idx != node -> col_idx )
-        return ( int ) item -> col_idx - ( int ) node -> col_idx;
-
-    if ( item -> blob -> stop_id < node -> blob -> start_id )
-        return -1;
-    return item -> blob -> start_id > node -> blob -> stop_id;
-}
-
-struct VBlobMRUCache { /* read-only blob cache */
-    BSTree cache;
-    DLList lru;
-    size_t capacity;
-    size_t contents;
-    /* last blob cache */
-    VBlob *last[LAST_BLOB_CACHE_SIZE]; /** last 4 blob to be cached per given col_idx, limiting col_idx  **/
-};
-
-
-VBlobMRUCache * VBlobMRUCacheMake(uint64_t capacity )
-{
-    VBlobMRUCache *self = NULL;
-    if(capacity > 0){
-	self = malloc(sizeof(*self));
-        if(self){
-		BSTreeInit ( & self -> cache);
-		DLListInit ( & self -> lru );
-		memset(self -> last,0,LAST_BLOB_CACHE_SIZE*sizeof(*self -> last));
-		self->capacity = capacity;
-		self->contents = 0;
-	}
-   }
-   return self;
-}
-
-void VBlobMRUCacheDestroy( VBlobMRUCache *self )
-{
-    if(self){
-	int i;
-	BSTreeWhack ( & self -> cache, VBlobCacheWhack, NULL );
-	DLListInit ( & self -> lru );
-	for(i=0;i<LAST_BLOB_CACHE_SIZE;i++){
-		if(self -> last[i]) {
-		    VBlobRelease(self -> last[i]);
-		    self->last[i] = NULL;
-		}
-	}
-	free(self);
-    }
-}
-
-const VBlob* VBlobMRUCacheFind(const VBlobMRUCache *cself, uint32_t col_idx, int64_t row_id)
-{
-    const VBlob* blob;
-    VBlobCache *bc;
-    VBlobCacheKey bck;
-    VBlobMRUCache *self = (VBlobMRUCache*)cself;
-
-    /* check MRU blob */
-    if(col_idx <= LAST_BLOB_CACHE_SIZE)
-    {
-	blob = self->last[col_idx-1];
-	if(blob && row_id >= blob->start_id && row_id <= blob->stop_id)
-	{
-	    return blob;
-		
-	}
-    }
-
-    /* check cache for entry */
-    bck . row_id = row_id;
-    bck . col_idx = col_idx;
-    bc = ( VBlobCache* ) BSTreeFind ( & self -> cache, & bck, VBlobCacheCmp );
-    if ( bc != NULL )
-    {
-        /* save in MRU */
-        if(col_idx <= LAST_BLOB_CACHE_SIZE)
-        {
-            if(self->last[col_idx-1])
-                VBlobRelease(self->last[col_idx-1]);
-            self->last[col_idx-1] = (VBlob*)bc->blob;
-            if(VBlobAddRef (self->last[col_idx-1])!=0)
-		return NULL;
-        }
-        /* maintain LRU */
-        DLListUnlink  (&self->lru,&bc->ln);
-        DLListPushHead(&self->lru,&bc->ln);
-        /* ask column to read from blob */
-        return bc->blob;
-    }
-    return NULL;
-}
-rc_t VBlobMRUCacheSave(const VBlobMRUCache *cself, uint32_t col_idx, const VBlob *blob)
-{
-    rc_t   rc;
-    size_t blob_size =sizeof(VBlobCache) + sizeof(VBlob);
-    VBlobCache *bc=NULL;
-    VBlobMRUCache *self = (VBlobMRUCache*)cself;
-
-    if(blob->no_cache) return 0;
-
-    blob_size  += KDataBufferBytes(&blob->data);
-    if (blob->pm != NULL) {
-        blob_size += 
-                  KDataBufferBytes(&blob->pm->cstorage)
-                + KDataBufferBytes(&blob->pm->dstorage)
-                + KDataBufferBytes(&blob->pm->istorage);
-    }
-    /** auto-raise capacity for large blob **/
-    if(blob_size > self -> capacity) self -> capacity = blob_size;
-
-    /* now cache the blob */
-    rc = VBlobCacheMake ( & bc, blob, col_idx, blob_size );
-    if ( rc == 0 ) {
-        /* attempt a unique insertion */
-        VBlobCache *existing;
-        rc = BSTreeInsertUnique ( &self -> cache, & bc -> bn, ( BSTNode** ) & existing, VBlobCacheSort );
-        if ( rc != 0 ){
-            VBlobCacheWhack ( & bc -> bn, NULL );
-	    rc = 0;
-        } else {
-            /* remember as last used  **/
-            if(col_idx <= LAST_BLOB_CACHE_SIZE)
-            {
-		if(self->last[col_idx-1])
-			VBlobRelease(self->last[col_idx-1]);
-		self->last[col_idx-1] = (VBlob*)bc->blob;
-		rc = VBlobAddRef (self->last[col_idx-1]);
-		if(rc != 0)
-		   return rc;
-	    }
-            /* perform accounting */
-            self -> contents += blob_size;
-            while ( self -> contents > self -> capacity )
-            {
-                /* get least recently used */
-                DLNode *last = DLListPopTail ( & self -> lru );
-                if ( last == NULL )
-                    break;
-
-                /* drop blob */
-                existing = ( VBlobCache* ) ( ( char* ) last - sizeof existing -> bn );
-
-                BSTreeUnlink ( & self -> cache, & existing -> bn );
-                self -> contents -= existing -> size;
-                VBlobCacheWhack ( & existing -> bn, NULL );
-            }
-
-            /* insert at head of list */
-            DLListPushHead ( & self -> lru, & bc -> ln );
-        }
-    }
-    return 0;
-}
-
diff --git a/libs/vdb/blob.h b/libs/vdb/blob.h
index 860e7c8..28b44e4 100644
--- a/libs/vdb/blob.h
+++ b/libs/vdb/blob.h
@@ -45,6 +45,13 @@ enum VBlobVariant_t {
 };
 
 
+#ifndef VBlobAddRef
+rc_t VBlobAddRef(const VBlob *self);
+#endif
+#ifndef VBlobRelease
+rc_t VBlobRelease(const VBlob *self);
+#endif
+
 /* Write the row lengths for the rows from start_id thru stop_id, inclusive
  */
 rc_t VBlobWritePageMap( VBlob *self, int64_t start_id, int64_t stop_id, const uint32_t row_length[] );
diff --git a/libs/vdb/column-cmn.c b/libs/vdb/column-cmn.c
index ab7ef52..17f96ea 100644
--- a/libs/vdb/column-cmn.c
+++ b/libs/vdb/column-cmn.c
@@ -226,7 +226,7 @@ rc_t VColumnReadCachedBlob ( const VColumn *self, const VBlob *vblob, int64_t ro
 }
 
 rc_t VColumnReadBlob ( const VColumn *cself, const VBlob **vblobp, int64_t row_id,
-   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len, VBlobMRUCacheCursorContext *cctx )
+   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len )
 {
     rc_t rc;
 
@@ -235,7 +235,7 @@ rc_t VColumnReadBlob ( const VColumn *cself, const VBlob **vblobp, int64_t row_i
     else
     {
         VBlob *vblob;
-        rc = VProductionReadBlob ( cself -> in, & vblob, row_id, 1, cctx );
+        rc = VProductionReadBlob ( cself -> in, & vblob, row_id, 1 );
         if ( rc == 0 )
         {
             VColumn *self = ( VColumn* ) cself;
@@ -259,32 +259,28 @@ rc_t VColumnReadBlob ( const VColumn *cself, const VBlob **vblobp, int64_t row_i
 }
 
 rc_t VColumnRead ( const VColumn *cself, int64_t row_id,
-   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len,
-   VBlob **vblob)
+   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len )
 {
     rc_t rc;
-    VBlob *dummy = NULL;
-    if (vblob == NULL)
-    {   vblob = &dummy; }
 
     if ( cself -> in == NULL )
         rc = RC ( rcVDB, rcColumn, rcReading, rcColumn, rcNotOpen );
     else
     {
-        rc = VProductionReadBlob ( cself -> in, vblob, row_id, 1, NULL );
+        VBlob *vblob;
+        rc = VProductionReadBlob ( cself -> in, & vblob, row_id, 1 );
         if ( rc == 0 )
         {
             VColumn *self = ( VColumn* ) cself;
-            VColumnReadCachedBlob ( self, *vblob, row_id, elem_bits, base, boff, row_len );
+            VColumnReadCachedBlob ( self, vblob, row_id, elem_bits, base, boff, row_len );
 
 #if USE_KURT
             TRACK_BLOB ( VBlobRelease, self -> cache );
             ( void ) VBlobRelease ( self -> cache );
-            self -> cache = *vblob;
+            self -> cache = vblob;
 #else
-            TRACK_BLOB ( VBlobRelease, *vblob );
-            ( void ) VBlobRelease ( *vblob );
-            *vblob = NULL;
+            TRACK_BLOB ( VBlobRelease, vblob );
+            ( void ) VBlobRelease ( vblob );            
 #endif
         }
     }
diff --git a/libs/vdb/column-priv.h b/libs/vdb/column-priv.h
index 5cb10a8..b001cbf 100644
--- a/libs/vdb/column-priv.h
+++ b/libs/vdb/column-priv.h
@@ -63,7 +63,6 @@ struct SColumn;
 struct SExpression;
 struct VProduction;
 struct VBlob;
-struct VBlobMRUCacheCursorContext;
 
 
 /*--------------------------------------------------------------------------
@@ -118,11 +117,10 @@ rc_t VColumnDatatype ( const VColumn *self,
     struct VTypedecl *type, struct VTypedesc *desc );
 
 rc_t VColumnRead ( const VColumn *self, int64_t row_id,
-   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len,
-   struct VBlob **vblob );
+   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len );
 
 rc_t VColumnReadBlob ( const VColumn *self, struct VBlob const **blob, int64_t row_id,
-   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len, struct VBlobMRUCacheCursorContext *cctx);
+   uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len );
 
 rc_t VColumnReadCachedBlob ( const VColumn *self, struct VBlob const *blob, int64_t row_id,
    uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len );
@@ -142,6 +140,9 @@ struct WColumn
     /* half-closed id for page cutoff */
     int64_t cutoff_id;
 
+    /* manager - for mempool */
+    struct VDBManager *mgr;
+
     /* alternate read production */
     struct VProduction *alt;
 
@@ -154,30 +155,27 @@ struct WColumn
     /* output page */
     struct VBlob *page;
 
-    /* default row data */
-    KDataBuffer dflt;
-
     /* accumulators */
-    KDataBuffer data, rowmap;
-
-    /* peak byte size history of data accumulator */
-    size_t data_peak_hist [ 16 ];
-    size_t data_peak;
+    DLList data, rowmap;
 
-    /* total committed bits in buffer */
-    bitsz_t bits_in_buffer;
+    /* buffer offsets */
+    bitsz_t data_off;
+    size_t rowmap_off;
 
-    /* number of uncommitted bits in buffer */
-    bitsz_t row_len;
-
-    /* size ( in bytes ) to trigger page commit */
+    /* size to trigger page commit */
     size_t trigger;
 
+    /* default row data */
+    KDataBuffer dflt;
+
     /* number of committed rows in buffer */
     size_t num_rows;
 
-    /* peak history index */
-    uint8_t peak_hist_idx;
+    /* number of committed elements in buffer */
+    size_t num_elems;
+
+    /* number of uncommitted elements in buffer */
+    size_t row_len;
 
     /* true if there is a default value */
     bool have_dflt;
@@ -185,19 +183,23 @@ struct WColumn
     /* set upon any successful write */
     bool row_written;
 
-    /* set if the last row written was default */
-    bool dflt_last;
-
     /* set upon row commit */
     bool row_committed;
 };
 
 /* WColumnRowMap
+ *  NB - size must be an integral power of 2
+ *  8, 16, 32 are okay, but not 24.
+ *
+ *  in particular, sizeof VDBMem.page % sizeof WColumnRowMap == 0 || aaaaah!
  */
 typedef struct WColumnRowMap WColumnRowMap;
 struct WColumnRowMap
 {
+#if _DEBUGGING
     int64_t start_id;
+    int64_t align;
+#endif
     uint64_t len, cnt;
 };
 
@@ -243,14 +245,6 @@ bool CC WColumnRowDefaults ( void *self, void *rc );
  */
 bool CC WColumnCommitRow ( void *self, void *end_id );
 
-/* RepeatRow
- *  go into the last row entry
- *  extend the count by count
- *  data points to this structure
- */
-typedef struct { int64_t end_id; uint64_t count; } WColumnRepeatRowData;
-void CC WColumnRepeatRow ( void *self, void *data );
-
 /* CloseRow
  *  discards uncommitted data
  *  update state
diff --git a/libs/vdb/cursor-cmn.c b/libs/vdb/cursor-cmn.c
index f42149a..2891de6 100644
--- a/libs/vdb/cursor-cmn.c
+++ b/libs/vdb/cursor-cmn.c
@@ -45,7 +45,6 @@
 #undef KONST
 #undef SKONST
 #include "blob-priv.h"
-#include "page-map.h"
 
 #include <vdb/cursor.h>
 #include <vdb/table.h>
@@ -63,26 +62,20 @@
 #include <os-native.h>
 #include <sysalloc.h>
 
-#include <kproc/lock.h>
-#include <kproc/cond.h>
-#include <kproc/thread.h>
-
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
 #include <assert.h>
 
+#if _DEBUGGING
+#include <fmtdef.h>
+#endif
+
 
 #define PERMIT_POST_OPEN_ADD 1
 #define DISABLE_READ_CACHE 0
 
-/* normally false
-   can be set for certain applications using VDBManagerDisablePagemapThread
-*/
-static bool s_disable_pagemap_thread;
-
 
 /*--------------------------------------------------------------------------
  * VCursorCache
@@ -198,45 +191,77 @@ int CC NamedParamNodeComp ( const BSTNode *A, const BSTNode *B )
 
     return StringOrderNoNullCheck ( & a -> name, & b -> name );
 }
+
+
 /*--------------------------------------------------------------------------
- * LinkedCursorNode
+ * VBlobCache
  */
-
-typedef struct LinkedCursorNode LinkedCursorNode;
-struct LinkedCursorNode
+typedef struct VBlobCache VBlobCache;
+struct VBlobCache
 {
-    BSTNode n;
-    char tbl[64];
-    VCursor *curs;
+    BSTNode bn;
+    DLNode ln;
+    size_t size;
+    const VBlob *blob;
+    uint32_t col_idx;
 };
 
 static
-void CC LinkedCursorNodeWhack ( BSTNode *n, void *ignore )
+void CC VBlobCacheWhack ( BSTNode *n, void *ignore )
 {
-    LinkedCursorNode *self = ( LinkedCursorNode* ) n;
-    VCursorRelease (  self -> curs );
+    VBlobCache *self = ( VBlobCache* ) n;
+    VBlobRelease ( ( VBlob* ) self -> blob );
     free ( self );
 }
 
 static
-int CC LinkedCursorComp ( const void *item, const BSTNode *n )
+rc_t VBlobCacheMake ( VBlobCache **bcp, const VBlob *blob, uint32_t col_idx )
 {
-    const char *tbl = item;
-    const LinkedCursorNode *node = ( const LinkedCursorNode* ) n;
+    VBlobCache *bc = malloc ( sizeof * bc );
+    if ( bc == NULL )
+        return RC ( rcVDB, rcCursor, rcReading, rcMemory, rcExhausted );
 
-    return strncmp ( tbl, node -> tbl, sizeof(node -> tbl) );
+    bc -> size = BlobBufferBytes ( blob );
+    bc -> blob = blob;
+    bc -> col_idx = col_idx;
+    * bcp = bc;
+    return 0;
 }
 
+typedef struct VBlobCacheKey VBlobCacheKey;
+struct VBlobCacheKey
+{
+    int64_t row_id;
+    uint32_t col_idx;
+};
+
 static
-int CC LinkedCursorNodeComp ( const BSTNode *A, const BSTNode *B )
+int CC VBlobCacheCmp ( const void *a, const BSTNode *b )
 {
-    const LinkedCursorNode *a = (const LinkedCursorNode *) A;
-    const LinkedCursorNode *b = (const LinkedCursorNode *) B;
+    const VBlobCacheKey * key = a;
+    const VBlobCache * node = ( const VBlobCache* ) b;
 
-    return strncmp ( a -> tbl, b -> tbl,sizeof(a->tbl) );
+    if ( key -> col_idx != node -> col_idx )
+        return ( int ) key -> col_idx - ( int ) node -> col_idx;
+
+    if ( key -> row_id < node -> blob -> start_id )
+        return -1;
+    return key -> row_id > node -> blob -> stop_id;
 }
 
+static
+int CC VBlobCacheSort ( const BSTNode *a, const BSTNode *b )
+{
+    const VBlobCache * item = ( const VBlobCache* ) a;
+    const VBlobCache * node = ( const VBlobCache* ) b;
+
+    if ( item -> col_idx != node -> col_idx )
+        return ( int ) item -> col_idx - ( int ) node -> col_idx;
 
+    if ( item -> blob -> stop_id < node -> blob -> start_id )
+        return -1;
+    return item -> blob -> start_id > node -> blob -> stop_id;
+}
 
 /*--------------------------------------------------------------------------
  * VCursor
@@ -254,11 +279,14 @@ static void CC VCursorVColumnWhack_checked( void *item, void *data )
 rc_t VCursorDestroy ( VCursor *self )
 {
     KRefcountWhack ( & self -> refcount, "VCursor" );
-    VBlobMRUCacheDestroy ( self->blob_mru_cache);
+
+    BSTreeWhack ( & self -> blob_cache, VBlobCacheWhack, NULL );
+    DLListInit ( & self -> blob_lru );
+
     if ( self -> user_whack != NULL )
         ( * self -> user_whack ) ( self -> user );
+
     BSTreeWhack ( & self -> named_params, NamedParamNodeWhack, NULL );
-    BSTreeWhack ( & self -> linked_cursors, LinkedCursorNodeWhack, NULL );
     VCursorCacheWhack ( & self -> col, NULL, NULL );
     VCursorCacheWhack ( & self -> phys, VPhysicalWhack, NULL );
     VCursorCacheWhack ( & self -> prod, NULL, NULL );
@@ -324,7 +352,7 @@ rc_t VCursorMake ( VCursor **cursp, const VTable *tbl )
 
     /* create a structure */
     curs = calloc ( 1, sizeof * curs );
-    if ( curs == NULL )
+    if ( tbl == NULL )
         rc = RC ( rcVDB, rcCursor, rcConstructing, rcMemory, rcExhausted );
     else
     {
@@ -345,8 +373,9 @@ rc_t VCursorMake ( VCursor **cursp, const VTable *tbl )
                 VectorInit ( & curs -> trig, 0, 64 );
                 KRefcountInit ( & curs -> refcount, 1, "VCursor", "make", "vcurs" );
                 curs -> state = vcConstruct;
-                curs -> permit_add_column = true;
-		curs -> suspend_triggers  = false;
+#if PERMIT_POST_OPEN_ADD
+                curs -> permit_post_open_add = true;
+#endif
                 * cursp = curs;
                 return 0;
             }
@@ -464,8 +493,7 @@ rc_t VCursorSupplementStatic ( const KSymTable *tbl, const VCursor *self )
                         rc = VSchemaResolveTypedecl ( self -> schema, & td, typedecl );
                         if ( rc == 0 )
                             rc = VCursorSupplementName ( tbl, self -> stbl, & td, name );
-
-                        rc = 0; /*** don't care if name is not in the schema ***/
+			rc = 0; /*** don't care if name is not in the schema ***/
 		
                     }
 
@@ -505,61 +533,48 @@ rc_t VCursorSupplementSchema ( const VCursor *self )
  *  "capacity" [ IN ] - the maximum bytes to cache on the cursor before
  *  dropping least recently used blobs
  */
-static rc_t VTableCreateCachedCursorReadImpl(const VTable *self, const VCursor **cursp, size_t capacity,bool create_pagemap_thread);
 LIB_EXPORT rc_t CC VTableCreateCachedCursorRead ( const VTable *self,
     const VCursor **cursp, size_t capacity )
 {
-	return VTableCreateCachedCursorReadImpl(self,cursp,capacity,true);
-}
-/**
-*** VTableCreateCursorReadInternal is only visible in vdb and needed for schema resolutions
-****/
-rc_t  VTableCreateCursorReadInternal(const VTable *self, const VCursor **cursp)
-{
-	return VTableCreateCachedCursorReadImpl(self,cursp,0,false);
-}
-static rc_t VTableCreateCachedCursorReadImpl ( const VTable *self,
-    const VCursor **cursp, size_t capacity, bool create_pagemap_thread  )
-{
     rc_t rc;
+
 #if DISABLE_READ_CACHE
     capacity = 0;
 #endif
+
     if ( cursp == NULL )
         rc = RC ( rcVDB, rcTable, rcOpening, rcParam, rcNull );
-    else {
+    else
+    {
         if ( self == NULL )
             rc = RC ( rcVDB, rcTable, rcOpening, rcSelf, rcNull );
-        else {
+        else
+        {
             VCursor *curs;
+
 #if LAZY_OPEN_COL_NODE
             if ( self -> col_node == NULL )
                 KMetadataOpenNodeRead ( self -> meta, & ( ( VTable* ) self ) -> col_node, "col" );
 #endif
             rc = VCursorMake ( & curs, self );
-            if ( rc == 0 ) {
-                curs -> blob_mru_cache = VBlobMRUCacheMake(capacity);
+            if ( rc == 0 )
+            {
+                curs -> blob_cache_capacity = capacity;
                 curs -> read_only = true;
                 rc = VCursorSupplementSchema ( curs );
-               
-#if 0  
-                if(create_pagemap_thread && capacity > 0 && rc == 0 )
-                    rc = VCursorLaunchPagemapThread ( curs );
-#endif
                 if ( rc == 0 )
                 {
-                    if(capacity > 0)
-                        curs->launch_cnt = 5;
-                    else
-                        curs->launch_cnt=200;
                     * cursp = curs;
                     return 0;
                 }
+
                 VCursorRelease ( curs );
             }
         }
+
         * cursp = NULL;
     }
+
     return rc;
 }
 
@@ -599,25 +614,6 @@ LIB_EXPORT rc_t CC VCursorPermitPostOpenAdd ( const VCursor *cself )
 
     return rc;
 }
-/*  SuspendTriggers
- *  blocks resolution of schema-based triggers
- *  
- */
-LIB_EXPORT rc_t CC VCursorSuspendTriggers ( const VCursor *cself )
-{
-    rc_t rc;
-    VCursor *self = ( VCursor* ) cself;
-
-    if ( self == NULL )
-        rc = RC ( rcVDB, rcCursor, rcUpdating, rcSelf, rcNull );
-    else
-    {
-        self -> suspend_triggers = true;
-        rc = 0;
-    }
-
-    return rc;
-}
 
 
 /* AddSColumn
@@ -753,7 +749,7 @@ LIB_EXPORT rc_t CC VCursorVAddColumn ( const VCursor *cself,
             rc = RC ( rcVDB, rcCursor, rcUpdating, rcName, rcEmpty );
         else if ( self -> state == vcFailed )
             rc = RC ( rcVDB, rcCursor, rcUpdating, rcCursor, rcInvalid );
-        else if ( self -> state != vcConstruct && ! self -> permit_add_column )
+        else if ( self -> state != vcConstruct && ! self -> permit_post_open_add )
             rc = RC ( rcVDB, rcCursor, rcUpdating, rcCursor, rcLocked );
         else
         {
@@ -768,7 +764,7 @@ LIB_EXPORT rc_t CC VCursorVAddColumn ( const VCursor *cself,
                     return rc;
             }
 
-            if ( ! self -> permit_add_column )
+            if ( ! self -> permit_post_open_add )
             {
                 PLOGERR ( klogErr, ( klogErr, rc, "failed to add column '$(spec)' to cursor",
                                      "spec=%s", colspec ));
@@ -989,24 +985,21 @@ struct VCursorIdRangeData
 static
 bool CC column_id_range ( void *item, void *data )
 {
-    if ( ( size_t ) item > 8 )
-    {
-        int64_t first, last;
-        VCursorIdRangeData *pb = data;
+    int64_t first, last;
+    VCursorIdRangeData *pb = data;
 
-        rc_t rc = VColumnIdRange ( ( const void* ) item, & first, & last );
+    rc_t rc = VColumnIdRange ( ( const void* ) item, & first, & last );
 
-        if ( GetRCState ( rc ) == rcEmpty )
-            return false;
+    if ( GetRCState ( rc ) == rcEmpty )
+        return false;
 
-        if ( ( pb -> rc = rc ) != 0 )
-            return true;
+    if ( ( pb -> rc = rc ) != 0 )
+        return true;
 
-        if ( first < pb -> first )
-            pb -> first = first;
-        if ( last > pb -> last )
-            pb -> last = last;
-    }
+    if ( first < pb -> first )
+        pb -> first = first;
+    if ( last > pb -> last )
+        pb -> last = last;
 
     return false;
 }
@@ -1126,58 +1119,54 @@ struct VProdResolveData
 static
 bool CC VCursorResolveColumn ( void *item, void *data )
 {
-    if ( item != NULL )
-    {
-        void *ignore;
-        VCursor *self;
+    void *ignore;
+    VCursor *self;
 
-        VColumn *col = item;
-        VProdResolveData *pb = data;
-        SColumn *scol = ( SColumn* ) col -> scol;
+    VColumn *col = item;
+    VProdResolveData *pb = data;
+    SColumn *scol = ( SColumn* ) col -> scol;
 
-        VProduction *src = NULL;
-        pb -> rc = VProdResolveColumnRoot ( & pb -> pr, & src, scol );
-        if ( pb -> rc == 0 )
+    VProduction *src = NULL;
+    pb -> rc = VProdResolveColumnRoot ( & pb -> pr, & src, scol );
+    if ( pb -> rc == 0 )
+    {
+        if ( src > FAILED_PRODUCTION )
         {
-            if ( src > FAILED_PRODUCTION )
-            {
-                /* repair for incomplete implicit column decl */
-                if ( scol -> td . type_id == 0 )
-                    scol -> td = src -> fd . td;
+            /* repair for incomplete implicit column decl */
+            if ( scol -> td . type_id == 0 )
+                scol -> td = src -> fd . td;
 
-                return false;
-            }
-
-            pb -> rc = RC ( rcVDB, rcCursor, rcOpening, rcColumn, rcUndefined );
+            return false;
         }
 
-        /* check for tolerance */
-        self = pb -> pr . curs;
-        if ( ! pb -> pr . ignore_column_errors )
-        {
-            if ( ! self -> permit_post_open_add )
-            {
-                PLOGERR ( klogErr, ( klogErr, pb -> rc, "failed to resolve column '$(name)' idx '$(idx)'",
-                                     "name=%.*s,idx=%u"
-                                     , ( int ) scol -> name -> name . size
-                                     , scol -> name -> name . addr
-                                     , col -> ord ));
-            }
+        pb -> rc = RC ( rcVDB, rcCursor, rcOpening, rcColumn, rcUndefined );
+    }
 
-            return true;
+    /* check for tolerance */
+    self = pb -> pr . curs;
+    if ( ! pb -> pr . ignore_column_errors )
+    {
+        if ( ! self -> permit_post_open_add )
+        {
+            PLOGERR ( klogErr, ( klogErr, pb -> rc, "failed to resolve column '$(name)' idx '$(idx)'",
+                       "name=%.*s,idx=%u"
+                       , ( int ) scol -> name -> name . size
+                       , scol -> name -> name . addr
+                       , col -> ord ));
         }
 
-        /* remove from row and cache */
-        VectorSwap ( & self -> row, col -> ord, NULL, & ignore );
-        VCursorCacheSwap ( & self -> col, & scol -> cid, NULL, & ignore );
+        return true;
+    }
 
-        /* dump the VColumn */
-        VColumnWhack ( col, NULL );
+    /* remove from row and cache */
+    VectorSwap ( & self -> row, col -> ord, NULL, & ignore );
+    VCursorCacheSwap ( & self -> col, & scol -> cid, NULL, & ignore );
 
-        /* return no-error */
-        pb -> rc = 0;
-    }
+    /* dump the VColumn */
+    VColumnWhack ( col, NULL );
 
+    /* return no-error */
+    pb -> rc = 0;
     return false;
 }
 
@@ -1371,152 +1360,84 @@ rc_t VCursorCloseRowRead ( VCursor *self )
  */
 static
 rc_t VCursorReadColumnDirectInt ( const VCursor *cself, int64_t row_id, uint32_t col_idx,
-    uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len,
-    const VBlob **rslt )
+    uint32_t *elem_bits, const void **base, uint32_t *boff, uint32_t *row_len )
 {
-    rc_t rc,rc_cache=0;
-    const VColumn *col;
+    rc_t rc;
+    VBlobCache *bc;
+    VBlobCacheKey bck;
     const VBlob *blob;
+    const VColumn *col;
+    size_t sz_cache_overhead=sizeof(VBlobCache) + sizeof(VBlob);
 
     col = ( const void* ) VectorGet ( & cself -> row, col_idx );
     if ( col == NULL )
         return RC ( rcVDB, rcCursor, rcReading, rcColumn, rcInvalid );
 
     /* 2.0 behavior if not caching */
-    if ( cself -> blob_mru_cache == NULL )
-        return VColumnRead ( col, row_id, elem_bits, base, boff, row_len, (VBlob**) rslt );
-
-    /* check MRU blob */
-    blob = VBlobMRUCacheFind(cself->blob_mru_cache,col_idx,row_id);
-    if(blob){
+    if ( cself -> blob_cache_capacity == 0 )
+        return VColumnRead ( col, row_id, elem_bits, base, boff, row_len );
+
+    /* check cache for entry */
+    bck . row_id = row_id;
+    bck . col_idx = col_idx;
+    bc = ( VBlobCache* ) BSTreeFind ( & cself -> blob_cache, & bck, VBlobCacheCmp );
+    if ( bc != NULL )
+    {
         /* ask column to read from blob */
-	assert(row_id >= blob->start_id && row_id <= blob->stop_id);
-        return VColumnReadCachedBlob ( col, blob, row_id, elem_bits, base, boff, row_len);
-    }
-    { /* ask column to produce a blob to be cached */
-	VBlobMRUCacheCursorContext cctx;
-	cctx.cache=cself -> blob_mru_cache;
-	cctx.col_idx = col_idx;
-	rc = VColumnReadBlob(col,&blob,row_id,elem_bits,base,boff,row_len,&cctx);
+        return VColumnReadCachedBlob ( col, bc -> blob, bck . row_id, elem_bits, base, boff, row_len );
     }
-    if ( rc != 0 || blob == NULL ){
-	if(rslt) *rslt = NULL;
-        return rc;
-    }
-    if(blob->stop_id > blob->start_id + 4)
-	    rc_cache=VBlobMRUCacheSave(cself->blob_mru_cache, col_idx, blob);
-    if(rslt==NULL){ /** user does not care about the blob ***/
-	if( rc_cache == 0){
-		VBlobRelease((VBlob*)blob);
-	} /** else the memory will leak **/
-    } else {
-	*rslt=blob;
-    }
-    return 0;
-}
-
-/* GetBlob
- *  retrieve a blob of data containing the current row id
- * GetBlobDirect
- *  retrieve a blob of data containing the requested row id
- *
- *  "blob" [ OUT ] - return parameter for a new reference
- *  to VBlob containing requested cell. NB - must be released
- *  via VBlobRelease when no longer needed.
- *
- *  "row_id" [ IN ] - allows ReadDirect random access to any cell
- *  in column
- *
- *  "col_idx" [ IN ] - index of column to be read, returned by "AddColumn"
- */
-LIB_EXPORT rc_t CC VCursorGetBlob ( const VCursor *self,
-    const VBlob **blob, uint32_t col_idx )
-{
-    rc_t rc;
-
-    if ( blob == NULL )
-        rc = RC ( rcVDB, rcCursor, rcAccessing, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcVDB, rcCursor, rcAccessing, rcSelf, rcNull );
-        else if ( ! self -> read_only )
-            rc = RC ( rcVDB, rcCursor, rcReading, rcCursor, rcWriteonly );
-        else
-        {
-            const void *base;
-            uint32_t elem_bits, boff, row_len;
 
-            switch ( self -> state )
-            {
-            case vcConstruct:
-                rc = RC ( rcVDB, rcCursor, rcReading, rcCursor, rcNotOpen );
-                break;
-            case vcReady:
-                rc = RC ( rcVDB, rcCursor, rcReading, rcRow, rcNotOpen );
-                break;
-            case vcRowOpen:
-                rc = VCursorReadColumnDirectInt
-                    ( self, self -> row_id, col_idx, &elem_bits, &base, &boff, &row_len, blob );
-                if ( rc == 0 )
-                {
-                    rc = VBlobAddRef ( ( VBlob* ) *blob );
-                    if ( rc == 0 )
-                        return 0;
-                }
-                break;
-            default:
-                rc = RC ( rcVDB, rcCursor, rcReading, rcCursor, rcInvalid );
-            }
-        }
+    /* ask column to produce a blob to be cached */
+    rc = VColumnReadBlob ( col, & blob, bck . row_id, elem_bits, base, boff, row_len );
+    if ( rc != 0 || blob == NULL )
+        return rc;
 
-        * blob = NULL;
+    if(   blob -> no_cache 
+       || BlobBufferBytes(blob) <= 128 /*** blob overhead is ~ 200 overhead ****/
+       || BlobBufferBytes(blob) > cself->blob_cache_capacity ){
+	VBlobRelease ( ( VBlob* ) blob );
+	return 0;
     }
-    return rc;
-}
-
-LIB_EXPORT rc_t CC VCursorGetBlobDirect ( const VCursor *self,
-    const VBlob **blob, int64_t row_id, uint32_t col_idx )
-{
-    rc_t rc;
 
-    if ( blob == NULL )
-        rc = RC ( rcVDB, rcCursor, rcAccessing, rcParam, rcNull );
+    /* now cache the blob */
+    rc = VBlobCacheMake ( & bc, blob, col_idx );
+    if ( rc != 0 )
+        VBlobRelease ( ( VBlob* ) blob );
     else
     {
-        if ( self == NULL )
-            rc = RC ( rcVDB, rcCursor, rcAccessing, rcSelf, rcNull );
-        else if ( ! self -> read_only )
-            rc = RC ( rcVDB, rcCursor, rcReading, rcCursor, rcWriteonly );
+        /* mutable cache object */
+        VCursor *self = ( VCursor* ) cself;
+
+        /* attempt an unique insertion */
+        VBlobCache *existing;
+        rc = BSTreeInsertUnique ( & self -> blob_cache,
+            & bc -> bn, ( BSTNode** ) & existing, VBlobCacheSort );
+        if ( rc != 0 )
+            VBlobCacheWhack ( & bc -> bn, NULL );
         else
         {
-            const void *base;
-            uint32_t elem_bits, boff, row_len;
-
-            switch ( self -> state )
+            /* perform accounting */
+            self -> blob_cache_contents += bc -> size + sz_cache_overhead;
+            while ( self -> blob_cache_contents > self -> blob_cache_capacity )
             {
-            case vcConstruct:
-                rc = RC ( rcVDB, rcCursor, rcReading, rcCursor, rcNotOpen );
-                break;
-            case vcReady:
-            case vcRowOpen:
-                rc = VCursorReadColumnDirectInt
-                    ( self, row_id, col_idx, &elem_bits, &base, &boff, &row_len, blob );
-                if ( rc == 0 )
-                {
-                    rc = VBlobAddRef ( ( VBlob* ) *blob );
-                    if ( rc == 0 )
-                        return 0;
-                }
-                break;
-            default:
-                rc = RC ( rcVDB, rcCursor, rcReading, rcCursor, rcInvalid );
+                /* get least recently used */
+                DLNode *last = DLListPopTail ( & self -> blob_lru );
+                if ( last == NULL )
+                    break;
+
+                /* drop blob */
+                existing = ( VBlobCache* ) ( ( char* ) last - sizeof existing -> bn );
+                BSTreeUnlink ( & self -> blob_cache, & existing -> bn );
+                self -> blob_cache_contents -= existing -> size + sz_cache_overhead;
+                VBlobCacheWhack ( & existing -> bn, NULL );
             }
-        }
 
-        * blob = NULL;
+            /* insert at head of list */
+            DLListPushHead ( & self -> blob_lru, & bc -> ln );
+        }
     }
-    return rc;
+
+    return 0;
 }
 
 static
@@ -1537,8 +1458,7 @@ rc_t VCursorReadColumnDirect ( const VCursor *self, int64_t row_id, uint32_t col
         return RC ( rcVDB, rcCursor, rcReading, rcCursor, rcInvalid );
     }
 
-    return VCursorReadColumnDirectInt
-        ( self, row_id, col_idx, elem_bits, base, boff, row_len, NULL );
+    return VCursorReadColumnDirectInt ( self, row_id, col_idx, elem_bits, base, boff, row_len );
 }
 
 
@@ -1549,32 +1469,17 @@ rc_t VCursorReadColumn ( const VCursor *self, uint32_t col_idx,
     if ( ! self -> read_only )
         return RC ( rcVDB, rcCursor, rcReading, rcCursor, rcWriteonly );
 
-    switch ( self -> state )
+    if ( self -> state != vcRowOpen ) switch ( self -> state )
     {
     case vcConstruct:
         return RC ( rcVDB, rcCursor, rcReading, rcCursor, rcNotOpen );
     case vcReady:
         return RC ( rcVDB, rcCursor, rcReading, rcRow, rcNotOpen );
-    case vcRowOpen:
-        break;
     default:
         return RC ( rcVDB, rcCursor, rcReading, rcCursor, rcInvalid );
     }
 
-    return VCursorReadColumnDirectInt
-        ( self, self -> row_id, col_idx, elem_bits, base, boff, row_len, NULL );
-}
-
-static __inline__
-bool bad_elem_bits ( uint32_t elem_size, uint32_t elem_bits )
-{
-    if ( elem_size != elem_bits )
-    {
-        if ( elem_size < elem_bits && elem_bits % elem_size != 0 )
-            return true;
-        return ( elem_size % elem_bits != 0 );
-    }
-    return false;
+    return VCursorReadColumnDirectInt ( self, self -> row_id, col_idx, elem_bits, base, boff, row_len );
 }
 
 LIB_EXPORT rc_t CC VCursorRead ( const VCursor *self, uint32_t col_idx,
@@ -1597,7 +1502,9 @@ LIB_EXPORT rc_t CC VCursorRead ( const VCursor *self, uint32_t col_idx,
                 & base, & boff, row_len );
             if ( rc == 0 )
             {
-                if ( bad_elem_bits ( elem_size, elem_bits ) )
+                if ( elem_size < elem_bits && elem_bits % elem_size != 0 )
+                    rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
+                else if ( elem_size > elem_bits && elem_size % elem_bits != 0 )
                     rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
                 else if ( * row_len != 0 )
                 {
@@ -1656,7 +1563,9 @@ LIB_EXPORT rc_t CC VCursorReadDirect ( const VCursor *self, int64_t row_id, uint
                 & elem_size, & base, & boff, row_len );
             if ( rc == 0 )
             {
-                if ( bad_elem_bits ( elem_size, elem_bits ) )
+                if ( elem_size < elem_bits && elem_bits % elem_size != 0 )
+                    rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
+                else if ( elem_size > elem_bits && elem_size % elem_bits != 0 )
                     rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
                 else if ( * row_len != 0 )
                 {
@@ -1745,13 +1654,13 @@ LIB_EXPORT rc_t CC VCursorReadBits ( const VCursor *self, uint32_t col_idx,
                 & base, & boff, num_read );
             if ( rc == 0 )
             {
-                if ( bad_elem_bits ( elem_size, elem_bits ) )
+                if ( elem_size < elem_bits && elem_bits % elem_size != 0 )
+                    rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
+                else if ( elem_size > elem_bits && elem_size % elem_bits != 0 )
                     rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
                 else if ( * num_read != 0 )
                 {
                     uint64_t to_read = * num_read * elem_size;
-                    uint64_t doff = start * elem_bits;
-                    to_read = to_read > doff ? to_read - doff : 0;
                     if ( blen == 0 )
                     {
                         * num_read = 0;
@@ -1771,7 +1680,7 @@ LIB_EXPORT rc_t CC VCursorReadBits ( const VCursor *self, uint32_t col_idx,
                             * remaining = (uint32_t)( ( to_read - bsize ) / elem_bits );
                             to_read = bsize;
                         }
-                        bitcpy ( buffer, off, base, boff + doff, ( bitsz_t ) to_read );
+                        bitcpy ( buffer, off, base, boff, ( bitsz_t ) to_read );
                         * num_read = ( uint32_t ) ( to_read / elem_bits );
                         return 0;
                     }
@@ -1812,13 +1721,13 @@ LIB_EXPORT rc_t CC VCursorReadBitsDirect ( const VCursor *self, int64_t row_id,
                 & elem_size, & base, & boff, num_read );
             if ( rc == 0 )
             {
-                if ( bad_elem_bits ( elem_size, elem_bits ) )
+                if ( elem_size < elem_bits && elem_bits % elem_size != 0 )
+                    rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
+                else if ( elem_size > elem_bits && elem_size % elem_bits != 0 )
                     rc = RC ( rcVDB, rcCursor, rcReading, rcType, rcInconsistent );
                 else if ( * num_read != 0 )
                 {
                     uint64_t to_read = * num_read * elem_size;
-                    uint64_t doff = start * elem_bits;
-                    to_read = to_read > doff ? to_read - doff : 0;
                     if ( blen == 0 )
                     {
                         * num_read = 0;
@@ -1838,7 +1747,7 @@ LIB_EXPORT rc_t CC VCursorReadBitsDirect ( const VCursor *self, int64_t row_id,
                             * remaining = (uint32_t)( ( to_read - bsize ) / elem_bits );
                             to_read = bsize;
                         }
-                        bitcpy ( buffer, off, base, boff + doff, ( bitsz_t ) to_read );
+                        bitcpy ( buffer, off, base, boff, ( bitsz_t ) to_read );
                         * num_read = ( uint32_t ) ( to_read / elem_bits );
                         return 0;
                     }
@@ -2093,51 +2002,6 @@ LIB_EXPORT rc_t CC VCursorSetUserData ( const VCursor *cself,
     return 0;
 }
 
-LIB_EXPORT rc_t CC VCursorLinkedCursorGet(const VCursor *cself,const char *tbl,VCursor const **curs)
-{
-    LinkedCursorNode *node;
-    VCursor *self = (VCursor *)cself;
-
-    if(cself == NULL)
-        return RC(rcVDB, rcCursor, rcAccessing, rcSelf, rcNull);
-    if(tbl == NULL)
-        return RC(rcVDB, rcCursor, rcAccessing, rcName, rcNull);
-    if(tbl[0] == '\0')
-        return RC(rcVDB, rcCursor, rcAccessing, rcName, rcEmpty);
-    node = (LinkedCursorNode *)BSTreeFind(&self->linked_cursors, tbl, LinkedCursorComp);
-    if (node == NULL)
-        return RC(rcVDB, rcCursor, rcAccessing, rcName, rcNotFound);
-
-    *curs = node->curs;
-    return 0;
-}
-LIB_EXPORT rc_t CC VCursorLinkedCursorSet(const VCursor *cself,const char *tbl,VCursor const *curs)
-{
-    LinkedCursorNode *node;
-    VCursor *self = (VCursor *)cself;
-    rc_t rc;
-
-    if(cself == NULL)
-        return RC(rcVDB, rcCursor, rcAccessing, rcSelf, rcNull);
-    if(tbl == NULL)
-        return RC(rcVDB, rcCursor, rcAccessing, rcName, rcNull);
-    if(tbl[0] == '\0')
-        return RC(rcVDB, rcCursor, rcAccessing, rcName, rcEmpty);
-
-    node = malloc(sizeof(*node));
-    if (node == NULL)
-            return RC(rcVDB, rcCursor, rcAccessing, rcMemory, rcExhausted);
-    strncpy(node->tbl,tbl,sizeof(node->tbl));
-    node->curs=(VCursor*)curs;
-    rc = BSTreeInsertUnique(&self->linked_cursors, (BSTNode *)node, NULL, LinkedCursorNodeComp);
-    if (rc)
-       free(node); 
-    else 
-	VCursorAddRef(curs);
-    return rc;
-}
-
-
 /* private */
 LIB_EXPORT rc_t CC VCursorParamsGet( struct VCursorParams const *cself,
     const char *Name, KDataBuffer **value )
@@ -2280,125 +2144,3 @@ LIB_EXPORT struct VSchema const * CC VCursorGetSchema ( struct VCursor const *se
 {
     return self ? self->schema : NULL;
 }
-
-
-static rc_t run_pagemap_thread ( const KThread *t, void *data )
-{
-    rc_t rc;
-    VCursor *self = data;
-    /* acquire lock */
-    MTCURSOR_DBG (( "run_pagemap_thread: acquiring lock\n" ));
-    while((rc = KLockAcquire ( self -> pmpr.lock ))==0){
-CHECK_AGAIN:
-	switch(self->pmpr.state){
-	 case ePMPR_STATE_NONE: 		/* wait for new request */
-	 case ePMPR_STATE_SERIALIZE_DONE: 	/* wait for result pickup **/
-	 case ePMPR_STATE_DESERIALIZE_DONE:	/* wait for result pickup **/
-		MTCURSOR_DBG (( "run_pagemap_thread: waiting for new request\n" ));
-		rc = KConditionWait ( self -> pmpr.cond, self -> pmpr.lock );
-		goto CHECK_AGAIN;
-	 case ePMPR_STATE_EXIT: /** exit requested ***/
-		MTCURSOR_DBG (( "run_pagemap_thread: exit by request\n" ));
-		KLockUnlock(self -> pmpr.lock);
-		return 0;
-	 case ePMPR_STATE_DESERIALIZE_REQUESTED:
-		MTCURSOR_DBG (( "run_pagemap_thread: request to deserialize\n" ));
-		self->pmpr.rc = PageMapDeserialize(&self->pmpr.pm,self->pmpr.data.base,self->pmpr.data.elem_count,self->pmpr.row_count);
-		if(self->pmpr.rc == 0){
-			self->pmpr.rc=PageMapExpandFull(self->pmpr.pm);
-			/*self->pmpr.rc=PageMapExpand(self->pmpr.pm,self->pmpr.row_count<2048?self->pmpr.row_count-1:2048);*/
-			assert(self->pmpr.rc == 0);
-		}
-		self->pmpr.state = ePMPR_STATE_DESERIALIZE_DONE;
-		/*fprintf(stderr,"Pagemap %p Done R:%6d|DR:%d|LR:%d\n",self->pmpr.lock, self->pmpr.pm->row_count,self->pmpr.pm->data_recs,self->pmpr.pm->leng_recs);*/
-		KLockUnlock(self -> pmpr.lock);
-		KConditionSignal ( self -> pmpr.cond );
-		break;
-	 case ePMPR_STATE_SERIALIZE_REQUESTED:
-		MTCURSOR_DBG (( "run_pagemap_thread: request to serialize\n" ));
-		self->pmpr.rc = PageMapSerialize(self->pmpr.pm,&self->pmpr.data,0,&self->pmpr.elem_count);
-		self->pmpr.state = ePMPR_STATE_SERIALIZE_DONE;
-		KLockUnlock(self -> pmpr.lock);
-		KConditionSignal ( self -> pmpr.cond );
-		break;
-	 default:
-		assert(0);
-		KLockUnlock(self -> pmpr.lock);
-		return RC(rcVDB, rcPagemap, rcConverting, rcParam, rcInvalid );
-	 
-	}
-    }
-    MTCURSOR_DBG (( "run_pagemap_thread: exit\n" ));
-    return rc;
-}
-
-rc_t VCursorLaunchPagemapThread(VCursor *curs)
-{
-	rc_t rc;
-
-    assert ( curs != NULL );
-	curs -> pagemap_thread = NULL; /** if fails - will not use **/
-
-    if ( s_disable_pagemap_thread )
-        return RC ( rcVDB, rcCursor, rcExecuting, rcThread, rcNotAvailable );
-
-	rc = KLockMake ( & curs -> pmpr.lock );
-	if(rc == 0)
-    {
-		rc = KConditionMake ( & curs -> pmpr.cond );
-        if(rc == 0)
-        {
-            rc = KThreadMake ( & curs -> pagemap_thread, run_pagemap_thread, curs );
-            if ( rc == 0 )
-                return 0;
-
-            KConditionRelease ( curs -> pmpr . cond );
-            curs -> pmpr . cond = NULL;
-        }
-
-        KLockRelease ( curs -> pmpr . lock );
-        curs -> pmpr . lock = NULL;
-    }
-
-	return rc;
-}
-
-rc_t VCursorTerminatePagemapThread(VCursor *self)
-{
-	rc_t rc=0;
-
-    assert ( self != NULL );
-
-	if(self -> pagemap_thread != NULL)
-    {
-		rc = KLockAcquire ( self -> pmpr.lock );
-		if ( rc == 0 )
-        {
-			self -> pmpr.state = ePMPR_STATE_EXIT;
-			KConditionSignal ( self -> pmpr.cond );
-			KLockUnlock ( self -> pmpr.lock );
-		}
-		KThreadWait ( self -> pagemap_thread, NULL );
-	}
-
-	KThreadRelease ( self -> pagemap_thread );
-	KConditionRelease ( self -> pmpr.cond );
-	KLockRelease ( self -> pmpr.lock );
-
-    self -> pagemap_thread = NULL;
-    self -> pmpr . cond = NULL;
-    self -> pmpr . lock = NULL;
-
-	return rc;
-}
-
-/* DisablePagemapThread
- *  this can cause difficulties for some clients
- */
-LIB_EXPORT rc_t CC VDBManagerDisablePagemapThread ( struct VDBManager const *self )
-{
-    if ( self == NULL )
-        return RC ( rcVDB, rcMgr, rcUpdating, rcSelf, rcNull );
-    s_disable_pagemap_thread = true;
-    return 0;
-}
diff --git a/libs/vdb/cursor-priv.h b/libs/vdb/cursor-priv.h
index ec91798..b0e3da8 100644
--- a/libs/vdb/cursor-priv.h
+++ b/libs/vdb/cursor-priv.h
@@ -55,11 +55,6 @@
 extern "C" {
 #endif
 
-#include "blob-priv.h"
-
-#define MTCURSOR_DBG( msg ) DBGMSG ( DBG_VDB, DBG_FLAG ( DBG_VDB_MTCURSOR ), msg )
-
-
 
 #define VCURSOR_WRITE_MODES_SUPPORTED 0
 
@@ -76,7 +71,6 @@ extern "C" {
 struct KLock;
 struct KCondition;
 struct KThread;
-struct KNamelist;
 struct KDlset;
 struct VTable;
 struct VCtxId;
@@ -147,7 +141,6 @@ enum
     vfExit
 };
 
-
 struct VCursor
 {
     /* row id */
@@ -167,26 +160,22 @@ struct VCursor
     struct STable SKONST *stbl;
 
     /* background flush thread objects */
-    int64_t   launch_cnt;
     struct KThread *flush_thread;
     struct KLock *flush_lock;
     struct KCondition *flush_cond;
 
-    /* background pagemap conversion objects */
-    struct KThread *pagemap_thread;
-    PageMapProcessRequest pmpr;
-
     /* user data */
     void *user;
     void ( CC * user_whack ) ( void *data );
 
     /* external named cursor parameters */    
     BSTree named_params;
-    /* linked cursors */
-    BSTree linked_cursors;
 
     /* read-only blob cache */
-    VBlobMRUCache *blob_mru_cache;
+    BSTree blob_cache;
+    DLList blob_lru;
+    size_t blob_cache_capacity;
+    size_t blob_cache_contents;
 
     /* external row of VColumn* by ord ( owned ) */
     Vector row;
@@ -196,7 +185,6 @@ struct VCursor
 
     /* physical columns by cid ( owned ) */
     VCursorCache phys;
-    uint32_t	phys_cnt;
 
     /* productions by cid ( not-owned ) */
     VCursorCache prod;
@@ -220,10 +208,7 @@ struct VCursor
     bool read_only;
 
     /* support for sradb-v1 API */
-    bool permit_add_column;
     bool permit_post_open_add;
-    /* support suspension of schema-declared triggers **/
-    bool suspend_triggers;
 };
 
 
@@ -231,8 +216,6 @@ struct VCursor
  */
 rc_t VCursorMake ( struct VCursor **cursp, struct VTable const *tbl );
 
-rc_t VTableCreateCursorWriteInt ( struct VTable *self, struct VCursor **cursp, KCreateMode mode, bool create_thread );
-
 /* Whack
  * Destroy
  */
@@ -262,11 +245,6 @@ rc_t VCursorSetRowIdRead ( struct VCursor *self, int64_t row_id );
 /* Open
  */
 rc_t VCursorOpenRead ( struct VCursor *self, struct KDlset const *libs );
-/**
-*** VTableCreateCursorReadInternal is only visible in vdb and needed for schema resolutions
-****/
-rc_t  VTableCreateCursorReadInternal(const struct VTable *self, const struct VCursor **cursp);
-
 
 /* ListReadableColumns
  *  performs an insert of '*' to cursor
@@ -283,7 +261,6 @@ rc_t VCursorListReadableColumns ( struct VCursor *self, BSTree *columns );
  *  populates BTree with VColumnRef objects
  */
 rc_t VCursorListWritableColumns ( struct VCursor *self, BSTree *columns );
-rc_t VCursorListSeededWritableColumns ( struct VCursor *self, BSTree *columns, struct KNamelist const *seed );
 
 /* PostOpenAdd
  *  handle opening of a column after the cursor is opened
@@ -298,11 +275,6 @@ rc_t VCursorOpenRowRead ( struct VCursor *self );
 rc_t VCursorCloseRowRead ( struct VCursor *self );
 
 
-/** pagemap supporting thread **/
-rc_t VCursorLaunchPagemapThread(struct VCursor *self);
-rc_t VCursorTerminatePagemapThread(struct VCursor *self);
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/libs/vdb/cursor.c b/libs/vdb/cursor.c
index 4786fef..6fd8525 100644
--- a/libs/vdb/cursor.c
+++ b/libs/vdb/cursor.c
@@ -61,7 +61,6 @@
  */
 rc_t VCursorWhack ( VCursor *self )
 {
-    VCursorTerminatePagemapThread(self);
     return VCursorDestroy ( self );
 }
 
@@ -114,7 +113,7 @@ LIB_EXPORT rc_t CC VCursorOpen ( const VCursor *cself )
                 {
                     /* permit empty open when run from sradb */
                     if ( GetRCState ( rc ) == rcEmpty && GetRCObject ( rc ) == rcRange &&
-                         self -> permit_add_column && VectorLength ( & self -> row ) == 0 )
+                         self -> permit_post_open_add && VectorLength ( & self -> row ) == 0 )
                     {
                         rc = 0;
                     }
diff --git a/libs/vdb/database-cmn.c b/libs/vdb/database-cmn.c
index 83eaf98..e952264 100644
--- a/libs/vdb/database-cmn.c
+++ b/libs/vdb/database-cmn.c
@@ -364,31 +364,6 @@ LIB_EXPORT bool CC VDatabaseLocked ( const VDatabase *self )
 }
 
 
-/* IsAlias
- *  returns true if object name is an alias
- *  returns path to fundamental name if it was aliased
- *
- *  "type" [ IN ] - a KDBPathType
- *  valid values are kptDatabase, kptTable and kptIndex
- *
- *  "resolved" [ OUT ] and "rsize" [ IN ] - optional output buffer
- *  for fundamenta object name if "alias" is not a fundamental name, 
- *
- *  "name" [ IN ] - NUL terminated object name
- */
-LIB_EXPORT bool CC VDatabaseIsAlias ( const VDatabase *self, uint32_t type,
-    char *resolved, size_t rsize, const char *name )
-{
-    if ( self != NULL )
-        return KDatabaseIsAlias ( self -> kdb, type, resolved, rsize, name );
-
-    if ( resolved != NULL && rsize != 0 )
-        * resolved = 0;
-
-    return false;
-}
-
-
 /* Writable
  *  returns 0 if object is writable
  *  or a reason why if not
diff --git a/libs/vdb/database-depend.c b/libs/vdb/database-depend.c
deleted file mode 100644
index 0b66975..0000000
--- a/libs/vdb/database-depend.c
+++ /dev/null
@@ -1,1715 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/* /netmnt/traces04/sra3/SRR/000379/SRR388696
-  /netmnt/traces04/sra4/SRR/000345/SRR353827 */
-
-#include <vdb/extern.h>
-
-#include <vdb/cursor.h>
-#include <vdb/table.h>
-#include <vdb/database.h>
-#include <vdb/dependencies.h>
-
-#include <kdb/manager.h>
-
-#include <vfs/manager.h> /* VFSManager */
-#include <vfs/resolver.h> /* VResolver */
-#include <vfs/path.h>
-
-#include <kfg/config.h>
-
-#include <klib/container.h>
-#include <klib/printf.h> /* string_printf */
-#include <klib/text.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/rc.h>
-
-#include <sysalloc.h>
-
-#include "cursor-priv.h"
-
-/* missing macros/function from klib/rc.h
- */
-#define GetRCSTATE( rc ) \
-    ( ( rc ) & 0x00003FFF )
-#define RC_STATE( obj, state)                         \
-    ( rc_t ) ( ( ( rc_t ) ( obj ) << 6 ) |            \
-               ( ( rc_t ) ( state ) ) )
-
-#include <assert.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
-
-static bool OLD = true;
-
-typedef struct {
-    /* deprecated way */
-    char ref[PATH_MAX + 1];
-
-    /* new way */
-    const String *local;
-    const String *remote;
-    const String *cache;
-
-    uint32_t count;
-    rc_t rc;
-} Resolved;
-typedef struct {
-    BSTNode n;
-
-    bool circular;
-    char* name;
-    uint32_t readLen;
-    char* seqId;
-    bool local;
-
-    Resolved resolved;
-} RefNode;
-static rc_t _ResolvedRelease(Resolved *self) {
-    rc_t rc = 0;
-
-    assert(self);
-
-    free((void*)self->local);
-    free((void*)self->cache);
-    free((void*)self->remote);
-
-    memset(self, 0, sizeof *self);
-
-    return rc;
-}
-
-
-static void CC bstWhack( BSTNode* n, void* ignore )
-{
-    RefNode* sn = (RefNode*) n;
-
-    assert( sn );
-
-    free( sn->name );
-
-    free( sn->seqId );
-
-    _ResolvedRelease( &sn->resolved );
-
-    memset( sn, 0, sizeof *sn );
-
-    free( sn );
-}
-
-static
-int CC bstCmpBySeqId(const void* item, const BSTNode* n)
-{
-    const char* s1 = item;
-    const RefNode* sn = (const RefNode*) n;
-
-    assert(s1 && sn);
-
-    return strcmp(s1, sn->seqId);
-}
-
-static int CC bstCmpByRemote(const void* item, const BSTNode* n)
-{
-    const String* s1 = item;
-    const RefNode* sn = (const RefNode*) n;
-
-    assert(sn);
-
-    if (s1 == NULL) {
-        return sn->resolved.remote != NULL;
-    }
-    else {
-        int min = s1->size < sn->resolved.remote->size
-            ? s1->size : sn->resolved.remote->size;
-        return strncmp(s1->addr, sn->resolved.remote->addr, min);
-    }
-}
-
-static
-int CC bstSortBySeqId(const BSTNode* item, const BSTNode* n)
-{
-    const RefNode* sn = (const RefNode*) item;
-
-    return bstCmpBySeqId(sn->seqId, n);
-}
-
-static
-int CC bstSortByRemote(const BSTNode* item, const BSTNode* n)
-{
-    const RefNode* sn = (const RefNode*) item;
-
-    return bstCmpByRemote(sn->resolved.remote, n);
-}
-
-typedef struct Column {
-    uint32_t idx;
-    const char* name;
-    uint32_t expected;
-    uint32_t elem_bits;
-} Column;
-
-static
-rc_t AddColumn(rc_t rc, const VCursor* curs, Column* col)
-{
-    if (rc == 0) {
-        assert(curs && col);
-
-        rc = VCursorAddColumn(curs, &col->idx, col->name);
-    }
-
-    return rc;
-}
-
-/* Read a column data from a Cursor */
-static
-rc_t CursorRead(rc_t rc, const VCursor* curs, int64_t row_id,
-    const Column* col, void* buffer, uint32_t blen, uint32_t* row_len)
-{
-    assert(curs);
-
-    if (rc == 0) {
-        uint32_t elem_bits = col->elem_bits;
-        uint32_t expected = col->expected;
-        assert(col);
-
-        if (blen == 0) {
-            assert(buffer == NULL);
-            ++blen;
-        }
-
-        rc = VCursorReadDirect
-            (curs, row_id, col->idx, elem_bits, buffer, blen - 1, row_len);
-
-        if (rc != 0) {
-            if (buffer == NULL &&
-                rc == RC(rcVDB, rcCursor, rcReading, rcBuffer, rcInsufficient))
-            {
-                rc = 0;
-            }
-        }
-        else {
-            if (expected > 0 && *row_len != expected) {
-                rc = RC(rcVDB, rcCursor, rcReading, rcData, rcUnexpected);
-            }
-            if (buffer != NULL && expected == 0)
-            {   ((char*)buffer)[*row_len] = '\0'; }
-        }
-    }
-
-    return rc;
-}
-
-/* Read a String from Configuration into "value" buffer */
-static rc_t ReadCfgStr
-(const KConfig* kfg, const char* path, char* value, size_t value_sz)
-{
-    rc_t rc = 0;
-    const KConfigNode *node = NULL;
-
-    rc = KConfigOpenNodeRead(kfg, &node, path);
-    if (rc == 0) {
-        size_t num_read = 0;
-        size_t remaining = 0;
-        rc = KConfigNodeRead
-            (node, 0, value, value_sz - 1, &num_read, &remaining);
-        if (rc == 0) {
-            if (remaining != 0)
-            {   rc = RC(rcVDB, rcString, rcReading, rcSize, rcExcessive); }
-/* TODO: make sure check value[num_read] assignment is valid
-         when remaining == 0 */
-            else { value[num_read] = '\0'; }
-        }
-    }
-
-    RELEASE(KConfigNode, node);
-
-    return rc;
-}
-
-#define SIZE 4096
-
-/* Ctx struct is used to find a file using KConfig "refseq" parameters */
-typedef struct {
-    KDirectory* dir;
-
-    char servers[SIZE];
-    char volumes[SIZE];
-    char paths[SIZE];
-
-    VResolver* resolver;
-
-    const Resolved* last;
-    bool hasDuplicates;
-} Ctx;
-static rc_t CtxInit(Ctx* self) {
-    rc_t rc = 0;
-    KConfig* cfg = NULL;
-
-    assert(self);
-
-    memset(self, 0, sizeof *self);
-
-    if (rc == 0) {
-        rc = KConfigMake(&cfg, NULL);
-        if (rc == 0) {
-            const KConfigNode *node = NULL;
-            rc = KConfigOpenNodeRead(cfg, &node, "repository");
-            if (rc == 0) {
-                OLD = false;
-                LOGMSG(klogInfo, "KConfig(repository) found: using VResolver");
-            }
-            else {
-                OLD = true;
-                LOGMSG(klogInfo,
-                    "KConfig(repository) not found: not using VResolver");
-            }
-            RELEASE(KConfigNode, node);
-        }
-    }
-
-    if (OLD) {
-        if (self->dir != NULL) {
-            return rc;
-        }
-
-        rc = KDirectoryNativeDir(&self->dir);
-
-        if (rc == 0) {
-            const char path[] = "refseq/servers";
-            rc = ReadCfgStr(cfg, path, self->servers, sizeof self->servers);
-            if (rc != 0) {
-                if (GetRCState(rc) == rcNotFound)
-                {   rc = 0; }
-            }
-            else {
-                const char path[] = "refseq/volumes";
-                rc = ReadCfgStr(cfg, path, self->volumes, sizeof self->volumes);
-                if (rc != 0) {
-                    if (GetRCState(rc) == rcNotFound)
-                    {   rc = 0; }
-                }
-            }
-
-            if (rc == 0) {
-                const char path[] = "refseq/paths";
-                rc = ReadCfgStr(cfg, path, self->paths, sizeof self->paths);
-                if (rc != 0) {
-                    if (GetRCState(rc) == rcNotFound)
-                    {   rc = 0; }
-                }
-            }
-        }
-    }
-    else {
-        VFSManager* mgr = NULL;
-
-        rc = VFSManagerMake(&mgr);
-
-        if (rc == 0) {
-            rc = VFSManagerMakeResolver(mgr, &self->resolver, cfg);
-        }
-
-        RELEASE(VFSManager, mgr);
-    }
-
-    RELEASE(KConfig, cfg);
-
-    return rc;
-}
-
-static rc_t CtxDestroy(Ctx* self) {
-    rc_t rc = 0;
-
-    assert(self);
-
-    RELEASE(KDirectory, self->dir);
-    RELEASE(VResolver, self->resolver);
-
-    memset(self, 0, sizeof *self);
-
-    return rc;
-}
-
-typedef struct {
-    const char* file;
-    bool found;
-} FindRefseq;
-static rc_t CC is_file_in_dir(const KDirectory* dir,
-    uint32_t type, const char* name, void* data)
-{
-    rc_t rc = 0;
-
-    FindRefseq* t = data;
-
-    assert(dir && name && data && t->file);
-
-    if (strcmp(t->file, name) == 0) {
-        uint64_t size = 0;
-        rc = KDirectoryFileSize(dir, &size, name);
-        if (rc == 0 && size > 0) {
-            /* compensate configuration-assistant.perl behavior:
-               it used to create an empty refseq file
-               when failed to download it */
-            t->found = true;
-        }
-    }
-
-    return rc;
-}
-
-/* Find file within srv/vol. If found then copy complete path to buf.
- * Return true if found
- */
-static bool FindInDir(rc_t* aRc, const KDirectory* native, const char* srv,
-    const char* vol, const char* file, char* buf, size_t blen)
-{
-    rc_t rc = 0;
-
-    const KDirectory* dir = NULL;
-
-    FindRefseq t;
-
-    assert(aRc && native && srv && file && buf && blen);
-
-    rc = *aRc;
-
-    if (rc != 0)
-    {   return false; }
-
-    if (vol)
-    {   rc = KDirectoryOpenDirRead(native, &dir, false, "%s/%s", srv, vol); }
-    else
-    {   rc = KDirectoryOpenDirRead(native, &dir, false, srv); }
-
-    if (rc == 0) {
-        memset(&t, 0, sizeof t);
-        t.file = file;
-        rc = KDirectoryVVisit(dir, false, is_file_in_dir, &t, ".", NULL);
-        if (GetRCObject(rc) == rcDirectory && GetRCState(rc) == rcUnauthorized)
-        {   rc = 0; }
-
-        if (rc == 0 && t.found) {
-            if (vol) {
-                rc = KDirectoryResolvePath(native,
-                    true, buf, blen, "%s/%s/%s", srv, vol, file);
-            }
-            else {
-                rc = KDirectoryResolvePath(native,
-                    true, buf, blen, "%s/%s", srv, file);
-            }
-        }
-    }
-    else if (rc == SILENT_RC(rcFS,
-        rcDirectory, rcOpening, rcPath, rcIncorrect))
-    {
-        /* ignored nonexistent directory */
-        rc = 0;
-    }
-
-    RELEASE(KDirectory, dir);
-
-    *aRc = rc;
-
-    return t.found;
-}
-
-#define rcResolver   rcTree
-static bool NotFoundByResolver(rc_t rc) {
-    if (GetRCModule(rc) == rcVFS) {
-        if (GetRCTarget(rc) == rcResolver) {
-            if (GetRCContext(rc) == rcResolving) {
-                if (GetRCState(rc) == rcNotFound) {
-                    return true;
-                }
-            }
-        }
-    }
-    return false;
-}
-
-/* find remote reference using VResolver */
-static rc_t FindRef(Ctx* ctx, const char* seqId, Resolved* resolved) {
-    rc_t rc = 0;
-
-    VPath* acc = NULL;
-    const VPath *remote = NULL;
-    size_t num_writ = 0;
-    char ncbiAcc[512] = "";
-
-    assert(resolved);
-
-    if (rc == 0) {
-        rc = string_printf(ncbiAcc, sizeof ncbiAcc, &num_writ,
-            "ncbi-acc:%s?vdb-ctx=refseq", seqId);
-        if (rc == 0 && num_writ > sizeof ncbiAcc) {
-            return RC(rcExe, rcFile, rcCopying, rcBuffer, rcInsufficient);
-        }
-    }
-
-    if (rc == 0) {
-        rc = VPathMake(&acc, ncbiAcc);
-    }
-
-    if (rc == 0) {
-        bool remoteNotFound = false;
-        const VPath *local = NULL;
-        rc = VResolverLocal(ctx->resolver, acc, &local);
-        if (rc == 0) {
-            rc = VPathMakeString(local, &resolved->local);
-            RELEASE(VPath, local);
-        }
-        else if (NotFoundByResolver(rc)) {
-            rc = 0;
-        }
-
-        if (rc == 0) {
-            rc = VResolverRemote(ctx->resolver, acc, &remote, NULL);
-            if (rc == 0) {
-                rc = VPathMakeString(remote, &resolved->remote);
-                if (rc == 0) {
-                    char *fragment = string_chr(resolved->remote->addr,
-                        resolved->remote->size, '#');
-                    if (fragment != NULL) {
-                        *fragment = '\0';
-                    }
-                }
-            }
-            else if (NotFoundByResolver(rc)) {
-                remoteNotFound = true;
-                rc = 0;
-            }
-        }
-
-        if (rc == 0 && !remoteNotFound) {
-            uint64_t file_size = 0;
-            const VPath *cache = NULL;
-            rc = VResolverCache(ctx->resolver, remote, &cache, file_size);
-            if (rc == 0) {
-                rc = VPathMakeString(cache, &resolved->cache);
-            }
-            else if (NotFoundByResolver(rc)) {
-                rc = 0;
-            }
-            RELEASE(VPath, cache);
-        }
-
-        if (rc == 0) {
-            if (ctx->last == NULL) {
-                ctx->last = resolved;
-            }
-            else {
-                const String *last = ctx->last->remote;
-                const String *crnt = resolved->remote;
-                if (last != NULL && crnt != NULL &&
-                    last->addr != NULL && crnt->addr != NULL)
-                {
-                    int min = crnt->size < last->size ? crnt->size : last->size;
-                    if (strncmp(last->addr, crnt->addr, min) == 0) {
-                        ctx->hasDuplicates = true;
-                    }
-                }
-            }
-        }
-    }
-
-    RELEASE(VPath, remote);
-    RELEASE(VPath, acc);
-
-    return rc;
-}
-
-/* find remote reference using KConfig values */
-static
-rc_t DeprecatedFindRef(Ctx* ctx, const char* seqId, Resolved* resolved)
-{
-    rc_t rc = 0;
-    bool found = false;
-
-    int i = ~0;
-
-    char* buf = NULL;
-    size_t blen = 0;
-
-    assert(ctx && seqId && resolved);
-
-    memset(resolved, 0, sizeof *resolved);
-    buf = resolved->ref;
-    blen = sizeof resolved->ref;
-
-    for (i = 0; i < 2 && !found; ++i) {
-        char prefix[7] = "";
-        if (i > 0) {
-            if (strlen(seqId) > 6) {
-                strncpy(prefix, seqId, 6);
-                prefix[6] = '\0';
-                seqId = prefix;
-            }
-            else {
-                break;
-            }
-        }
-        if (rc == 0 && ctx->dir != NULL) {
-            if (FindInDir(&rc, ctx->dir, ".", NULL, seqId, buf, blen)) {
-                found = true;
-            }
-            else {
-                if (ctx->paths[0]) {
-                    char paths[SIZE];
-                    char* path_rem = paths;
-                    char* path_sep = NULL;
-                    strcpy(paths, ctx->paths);
-                    do {
-                        char const* path = path_rem;
-                        path_sep = strchr(path, ':');
-                        if (path_sep) {
-                            path_rem = path_sep + 1;
-                            *path_sep = 0;
-                        }
-                        if (FindInDir(&rc, ctx->dir, path, NULL,
-                            seqId, buf, blen))
-                        {
-                            found = true;
-                            break;
-                        }
-                    } while(path_sep && rc == 0);
-                }
-                if (!found && ctx->servers[0] && ctx->volumes[0]) {
-                    char server[SIZE];
-                    char vol[SIZE];
-                    char* srv_sep = NULL;
-                    char* srv_rem = server;
-                    strcpy(server, ctx->servers);
-    /* TODO check for multiple servers/volumes */
-                    do {
-                        char* vol_rem = vol;
-                        char* vol_sep = NULL;
-                        strcpy(vol, ctx->volumes);
-                        srv_sep = strchr(server, ':');
-                        if (srv_sep) {
-                            srv_rem = srv_sep + 1;
-                            *srv_sep = '\0';
-                        }
-                        do {
-                            char const* volume = vol_rem;
-                            vol_sep = strchr(volume, ':');
-                            if (vol_sep) {
-                                vol_rem = vol_sep + 1;
-                                *vol_sep = 0;
-                            }
-                            if (FindInDir(&rc, ctx->dir, server, volume,
-                                seqId, buf, blen))
-                            {
-                                found = true;
-                                break;
-                            }
-                        } while (vol_sep && rc == 0);
-                    } while (!found && srv_sep && rc == 0);
-                }
-            }
-        }
-    }
-
-    return rc;
-}
-
-typedef struct {
-/* row values */
-    uint32_t readLen;
-    char circular[8];
-    char name[256];
-    char seqId[256];
-
-/* we do not read CMP_READ value, just its row_len */
-    uint32_t row_lenCMP_READ;
-} Row;
-
-/* Add a REFERENCE table Row to BSTree */
-static
-rc_t AddRow(BSTree* tr, Row* data, Ctx* ctx)
-{
-    rc_t rc = 0;
-    bool newRemote = false;
-    RefNode* sn = NULL;
-
-    assert(tr && data && ctx);
-
-    sn = (RefNode*) BSTreeFind(tr, data->seqId, bstCmpBySeqId);
-    if (sn == NULL) {
-        sn = calloc(1, sizeof *sn);
-        if (sn == NULL) {
-            return RC
-                (rcVDB, rcStorage, rcAllocating, rcMemory, rcExhausted);
-        }
-        sn->seqId = string_dup_measure(data->seqId, NULL);
-        if (sn->seqId == NULL) {
-            bstWhack((BSTNode*) sn, NULL);
-            sn = NULL;
-            return RC
-                (rcVDB, rcStorage, rcAllocating, rcMemory, rcExhausted);
-        }
-
-        sn->name = string_dup_measure(data->name, NULL);
-        if (sn->name == NULL) {
-            bstWhack((BSTNode*) sn, NULL);
-            sn = NULL;
-            return RC
-                (rcVDB, rcStorage, rcAllocating, rcMemory, rcExhausted);
-        }
-
-        sn->circular = data->circular[0];
-        sn->readLen = data->readLen;
-        sn->local = (data->row_lenCMP_READ != 0);
-        newRemote = ! sn->local;
-
-        BSTreeInsert(tr, (BSTNode*)sn, bstSortBySeqId);
-    }
-    else {
-        if (data->row_lenCMP_READ != 0) {
-            sn->local = true;
-        }
-        if (strcmp(sn->name, data->name) || sn->circular != data->circular[0]) {
-            return RC(rcVDB, rcCursor, rcReading, rcData, rcInconsistent);
-        }
-        sn->readLen += data->readLen;
-    }
-
-    if (rc == 0 && newRemote) {
-        if (OLD) {
-            rc = DeprecatedFindRef(ctx, sn->seqId, &sn->resolved);
-        }
-        else {
-            rc = FindRef(ctx, sn->seqId, &sn->resolved);
-        }
-    }
-
-    return rc;
-}
-
-struct VDBDependencies {
-    uint32_t count;
-    RefNode** dependencies;
-
-    BSTree* tr;
-
-    /* open references */
-    KRefcount refcount;
-};
-typedef struct Initializer {
-    bool all;            /* IN: when false: process just missed */
-    bool fill;           /* IN:
-                          false: count(fill count); true: fill dep(use count) */
-    uint32_t count;      /* IO: all/missed count */
-    VDBDependencies* dep;/* OUT: to be filled */
-    uint32_t i;          /* PRIVATE: index in dep */
-    rc_t rc;             /* OUT */
-} Initializer;
-
-/* Work function to process dependencies tree
- * Input parameters are in Initializer:
- *  all (true: all dependencies, false: just missing)
- *  fill(false: count dependencies, true: fill dependencies array
- */
-static void CC bstProcess(BSTNode* n, void* data) {
-    RefNode* elm = (RefNode*) n;
-    Initializer* obj = (Initializer*) data;
-    bool go = false;
-
-    assert(elm && obj);
-
- /* remore reference && refseq table not found */
-    if (obj->all) {
-        go = true;
-    }
-    else if (!elm->local) {
-        if (OLD) {
-            if (elm->resolved.ref[0] == '\0') {
-                go = true;
-            }
-        }
-        else {
-            if (elm->resolved.local == NULL) {
-                go = true;
-            }
-        }
-    }
-
-    if (!go) {
-        return;
-    }
-
-    if (!obj->fill) {
-        ++obj->count;
-    }
-    else {
-        if (obj->dep == NULL || obj->dep->dependencies == NULL) {
-            return;
-        }
-        if (obj->i < obj->count) {
-            *(obj->dep->dependencies + ((obj->i)++)) = elm;
-        }
-        else {
-            obj->rc = RC(rcVDB, rcDatabase, rcAccessing, rcSelf, rcCorrupt);
-        }
-    }
-}
-
-/* Read REFERENCE table; fill in BSTree */
-static
-rc_t CC VDatabaseDependencies(const VDatabase *self, BSTree* tr,
-    bool* has_no_REFERENCE, bool* hasDuplicates)
-{
-    rc_t rc = 0;
-
-    int64_t i = 0;
-    int64_t firstId = 0;
-    int64_t lastId = 0;
-
-    Column CIRCULAR = { 0, "CIRCULAR", 1,  8 };
-    Column CMP_READ = { 0, "CMP_READ", 0,  8 };
-    Column NAME     = { 0, "NAME"    , 0,  8 };
-    Column READ_LEN = { 0, "READ_LEN", 1, 32 };
-    Column SEQ_ID   = { 0, "SEQ_ID",   0,  8 };
-
-    const VTable* tbl = NULL;
-    const VCursor* curs = NULL;
-
-    Ctx ctx;
-
-    assert(self && tr && has_no_REFERENCE);
-
-    *has_no_REFERENCE = false;
-
-    if (rc == 0) {
-        rc = CtxInit(&ctx);
-    }
-
-    if (rc == 0) {
-        rc = VDatabaseOpenTableRead(self, &tbl, "REFERENCE");
-        if (GetRCState(rc) == rcNotFound) {
-            *has_no_REFERENCE = true;
-        }
-    }
-    if (rc == 0) {
-        rc = VTableCreateCursorReadInternal(tbl, &curs);
-    }
-
-    rc = AddColumn(rc, curs, &CIRCULAR);
-    rc = AddColumn(rc, curs, &CMP_READ);
-    rc = AddColumn(rc, curs, &NAME    );
-    rc = AddColumn(rc, curs, &READ_LEN);
-    rc = AddColumn(rc, curs, &SEQ_ID  );
-
-    if (rc == 0) {
-        rc = VCursorOpen(curs);
-    }
-    if (rc == 0) {
-        uint64_t count = 0;
-        rc = VCursorIdRange(curs, 0, &firstId, &count);
-        lastId = firstId + count - 1;
-    }
-
-    for (i = firstId; i <= lastId && rc == 0; ++i) {
-        uint32_t row_len = 0;
-        Row data;
-        if (rc == 0) {
-            rc = CursorRead(rc, curs, i, &CIRCULAR,
-                data.circular, sizeof data.circular, &row_len);
-            if (rc != 0) {
-                PLOGERR(klogErr, (klogErr, rc,
-                    "failed to read cursor(col='CIRCULAR', spot='$(id)')",
-                    "id=%ld", i));
-            }
-        }
-        if (rc == 0) {
-            rc = CursorRead(rc, curs, i, &CMP_READ,
-                NULL, 0, &data.row_lenCMP_READ);
-            if (rc != 0) {
-                PLOGERR(klogErr, (klogErr, rc,
-                    "failed to read cursor(col='CMP_READ', spot='$(id)')",
-                    "id=%ld", i));
-            }
-        }
-        if (rc == 0) {
-            rc = CursorRead(rc, curs, i, &NAME,
-                data.name, sizeof data.name, &row_len);
-            if (rc != 0) {
-                PLOGERR(klogErr, (klogErr, rc,
-                    "failed to read cursor(col='NAME', spot='$(id)')",
-                    "id=%ld", i));
-            }
-        }
-        if (rc == 0) {
-            rc = CursorRead(rc, curs, i, &READ_LEN,
-                &data.readLen, sizeof data.readLen, &row_len);
-            if (rc != 0) {
-                PLOGERR(klogErr, (klogErr, rc,
-                    "failed to read cursor(col='READ_LEN', spot='$(id)')",
-                    "id=%ld", i));
-            }
-        }
-        if (rc == 0) {
-            rc = CursorRead(rc, curs, i, &SEQ_ID,
-                data.seqId, sizeof data.seqId, &row_len);
-            if (rc != 0) {
-                PLOGERR(klogErr, (klogErr, rc,
-                    "failed to read cursor(col='SEQ_ID', spot='$(id)')",
-                    "id=%ld", i));
-            }
-        }
-        if (rc == 0) {
-            rc = AddRow(tr, &data, &ctx);
-        }
-    }
-
-    if (rc == 0 && hasDuplicates != NULL) {
-        *hasDuplicates = ctx.hasDuplicates;
-    }
-
-    if (*has_no_REFERENCE) {
-        rc = 0;
-    }
-
-    {
-        rc_t rc2 = CtxDestroy(&ctx);
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-
-    RELEASE(VCursor, curs);
-    RELEASE(VTable, tbl);
-
-    return rc;
-}
-
-/* Get dependency number "idx" */
-static
-rc_t VDBDependenciesGet(const VDBDependencies* self,
-    RefNode** dep, uint32_t idx)
-{
-    rc_t rc = 0;
-
-    assert(dep);
-
-    if (self == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcSelf, rcNull);
-    }
-
-    if (idx >= self->count) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcExcessive);
-    }
-
-    *dep = *(self->dependencies + idx);
-    if (*dep == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcSelf, rcCorrupt);
-    }
-
-    return rc;
-}
-
-/* Count
- *  retrieve the number of dependencies
- *
- *  "count" [ OUT ] - return parameter for dependencies count
- */
-LIB_EXPORT rc_t CC VDBDependenciesCount(const VDBDependencies* self,
-    uint32_t* count)
-{
-    if (self == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcSelf, rcNull);
-    }
-
-    if (count == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    *count = self->count;
-
-    return 0;
-}
-
-/* Circular */
-LIB_EXPORT rc_t CC VDBDependenciesCircular(const VDBDependencies* self,
-    bool* circular, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (circular == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        *circular = dep->circular;
-    }
-
-    return rc;
-}
-
-/* Local
- *  retrieve local property
- *
- *  "local" [ OUT ] - true if object is stored internally
- *
- *  "idx" [ IN ] - zero-based index of dependency
- */
-LIB_EXPORT rc_t CC VDBDependenciesLocal(const VDBDependencies* self,
-    bool* local, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (local == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        *local = dep->local;
-    }
-
-    return rc;
-}
-
-/* Name
- *
- * "name" [ OUT ] - returned pointed should not be released.
- *                  it becomes invalid after VDBDependenciesRelease
- */
-LIB_EXPORT rc_t CC VDBDependenciesName(const VDBDependencies* self,
-    const char** name, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (name == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        *name = dep->name;
-    }
-
-    return rc;
-}
-
-static rc_t VDBDependencyGetPath(const String* from, const char** to) {
-    assert(to);
-
-    *to = NULL;
-
-    if (OLD) {
-        return 0;
-    }
-
-    if (from == NULL) {
-        return 0;
-    }
-
-    if (from->addr != NULL && from->size > 0 &&
-        from->addr[from->size - 1] != '\0' &&
-        from->addr[from->size] != '\0')
-    {
-        return RC(rcVDB, rcString, rcValidating, rcChar, rcInvalid);
-    }
-
-    *to = from->addr;
-    return 0;
-}
-
-/* Path
- *  for remote dependencies: returns:
- *                              path for resolved dependency,
- *                              NULL for missing dependency.
- *  returns NULL for local dependencies
- *
- * "path" [ OUT ] - returned pointed should not be released.
- *                  it becomes invalid after VDBDependenciesRelease
- */
-LIB_EXPORT rc_t CC VDBDependenciesPath(const VDBDependencies* self,
-    const char** path, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (path == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        if (dep->local) {
-            *path = NULL;
-        }
-        else {
-            if (OLD) {
-                *path = dep->resolved.ref;
-            }
-            else {
-                rc = VDBDependencyGetPath(dep->resolved.local, path);
-            }
-        }
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC VDBDependenciesPathRemote(const VDBDependencies* self,
-    const char** path, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (path == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        rc = VDBDependencyGetPath(dep->resolved.remote, path);
-    }
-
-    return rc;
-}
-
-LIB_EXPORT rc_t CC VDBDependenciesPathCache(const VDBDependencies* self,
-    const char** path, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (path == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        rc = VDBDependencyGetPath(dep->resolved.cache, path);
-    }
-
-    return rc;
-}
-
-/* SeqId
- *
- * "seq_id" [ OUT ] - returned pointed should not be released.
- *                    it becomes invalid after VDBDependenciesRelease
- */
-LIB_EXPORT rc_t CC VDBDependenciesSeqId(const VDBDependencies* self,
-    const char** seq_id, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (seq_id == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        *seq_id = dep->seqId;
-    }
-
-    return rc;
-}
-
-/* Type
- *
- * "type" [ OUT ] - a KDBPathType from kdb/manager.h
- */
-LIB_EXPORT rc_t CC VDBDependenciesType(const VDBDependencies* self,
-    uint32_t* type, uint32_t idx)
-{
-    rc_t rc = 0;
-    RefNode* dep = NULL;
-
-    if (type == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    rc = VDBDependenciesGet(self, &dep, idx);
-
-    if (rc == 0) {
-        *type = kptTable;
-    }
-
-    return rc;
-}
-
-#define CLSNAME "VDBDependencies"
-
-VDB_EXTERN rc_t CC VDBDependenciesAddRef(const VDBDependencies* self ) {
-    if (self != NULL) {
-        switch (KRefcountAdd(&self->refcount, CLSNAME)) {
-            case krefLimit:
-                return RC(rcVDB, rcDatabase, rcAttaching, rcRange, rcExcessive);
-        }
-    }
-
-    return 0;
-}
-
-static rc_t VDBDependenciesWhack(VDBDependencies* self) {
-    if (self == NULL) {
-        return 0;
-    }
-
-    KRefcountWhack(&self->refcount, CLSNAME);
-
-    BSTreeWhack(self->tr, bstWhack, NULL);
-    free(self->tr);
-
-    free(self->dependencies);
-
-    memset(self, 0, sizeof *self);
-
-    free(self);
-
-    return 0;
-}
-
-/* Release
- *  (objects ARE NOT reference counted)
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC VDBDependenciesRelease(const VDBDependencies* self) {
-    if (self != NULL) {
-        switch (KRefcountDrop(&self->refcount, CLSNAME)) {
-        case krefWhack:
-            return VDBDependenciesWhack((VDBDependencies*)self);
-        case krefLimit:
-            return RC(rcVDB, rcDatabase, rcReleasing, rcRange, rcExcessive);
-        }
-    }
-
-    return 0;
-}
-
-typedef struct {
-    BSTree* tr;
-    int count;
-    bool all;
-} SBstCopy;
-
-static void CC bstCopy(BSTNode* n, void* data) {
-    RefNode* sn = NULL;
-    RefNode* elm = (RefNode*) n;
-    SBstCopy* x = (SBstCopy*)data;
-    BSTree* tr = x->tr;
-    bool go = false;
-    assert(elm && tr);
-
-    if (x->all) {
-        go = true;
-    } else if (!elm->local) {
-        assert(!OLD);
-        if (elm->resolved.local == NULL) {
-            go = true;
-        }
-    }
-
-    if (!go) {
-        return;
-    }
-
-    sn = (RefNode*) BSTreeFind(tr, elm->resolved.remote, bstCmpByRemote);
-    if (sn == NULL) {
-        sn = calloc(1, sizeof *sn);
-        if (sn == NULL) {
-/* TODO: generate error message */
-            return;
-        }
-
-        sn->seqId = string_dup_measure(elm->seqId, NULL);
-        if (sn->seqId == NULL) {
-            bstWhack((BSTNode*) sn, NULL);
-            return;
-        }
-
-        sn->name = string_dup_measure(elm->name, NULL);
-        if (sn->name == NULL) {
-            bstWhack((BSTNode*) sn, NULL);
-            return;
-        }
-
-        sn->circular = elm->circular;
-        sn->readLen = elm->readLen;
-        sn->local = elm->local;
-
-        sn->resolved.count = 1;
-
-        sn->resolved.local = elm->resolved.local;
-        elm->resolved.local = NULL;
-
-        sn->resolved.remote = elm->resolved.remote;
-        elm->resolved.remote = NULL;
-
-        sn->resolved.cache = elm->resolved.cache;
-        elm->resolved.cache = NULL;
-
-        BSTreeInsert(tr, (BSTNode*)sn, bstSortByRemote);
-        ++x->count;
-    }
-    else {
-        bool archived = false;
-        if (sn->resolved.rc != 0) {
-            return;
-        }
-        else if (sn->circular != elm->circular) {
-            sn->resolved.rc
-                = RC(rcVDB, rcNumeral, rcComparing, rcData, rcInvalid);
-        }
-        else if ((sn->name == NULL && elm->name != NULL)
-            || (sn->name != NULL && elm->name == NULL))
-        {
-            sn->resolved.rc
-                = RC(rcVDB, rcString, rcComparing, rcData, rcInvalid);
-        }
-        else if (strcmp(sn->name, elm->name) != 0) {
-            if (strncmp(sn->name, elm->name, 6) == 0) {
-                archived = true;
-            }
-            else {
-                sn->resolved.rc
-                    = RC(rcVDB, rcString, rcComparing, rcData, rcInvalid);
-            }
-        }
-
-        if (sn->resolved.rc != 0) {
-        }
-        else if (sn->readLen != elm->readLen && !archived) {
-            sn->resolved.rc
-                = RC(rcVDB, rcNumeral, rcComparing, rcData, rcInvalid);
-        }
-        else if (sn->seqId == NULL || elm->seqId == NULL) {
-            sn->resolved.rc
-                = RC(rcVDB, rcString, rcComparing, rcData, rcInvalid);
-        }
-        else if (sn->local != elm->local) {
-            sn->resolved.rc
-                = RC(rcVDB, rcNumeral, rcComparing, rcData, rcInvalid);
-        }
-        else if (sn->resolved.ref[0] != '\0' || elm->resolved.ref[0] != '\0') {
-            sn->resolved.rc
-                = RC(rcVDB, rcString, rcComparing, rcData, rcInvalid);
-        }
-        else if (sn->resolved.local != NULL || elm->resolved.local != NULL) {
-            sn->resolved.rc
-                = RC(rcVDB, rcString, rcComparing, rcData, rcInvalid);
-        }
-        else if (StringCompare(sn->resolved.remote, elm->resolved.remote) != 0)
-        {
-            int min = sn->resolved.remote->size < elm->resolved.remote->size
-                ? sn->resolved.remote->size : elm->resolved.remote->size;
-            if (!archived || strncmp(sn->resolved.remote->addr,
-                                elm->resolved.remote->addr, min) != 0)
-            {
-                sn->resolved.rc
-                    = RC(rcVDB, rcString, rcComparing, rcData, rcInvalid);
-            }
-        }
-
-        if (sn->resolved.rc != 0) {
-        }
-        else if (StringCompare(sn->resolved.cache, elm->resolved.cache) != 0)
-        {
-            sn->resolved.rc
-                = RC(rcVDB, rcString, rcComparing, rcData, rcInvalid);
-        }
-        else {
-            if (archived) {
-                int i = 0;
-                bool tail = false;
-                for (;;++i) {
-                    char* c1 = &sn->seqId[i];
-                    const char c2 = elm->seqId[i];
-                    if (*c1 == '\0') {
-                        break;
-                    }
-                    if (!tail && (c2 == '\0' || *c1 != c2)) {
-                        tail = true;
-                    }
-                    if (tail) {
-     /* incorrect:
-        we keep at least one seqid for archived refseqs to be able to resolve them
-                        *c1 = '.'; */
-                    }
-                }
-            }
-            ++sn->resolved.count;
-        }
-    }
-}
-
-/* ListDependencies
- *  create a dependencies object: list all dependencies
- *
- *  "dep" [ OUT ] - return for VDBDependencies object
- *
- *  "missing" [ IN ] - if true, list only missing dependencies
- *  otherwise, list all dependencies
- *
- * N.B. If missing == true then
- *      just one refseq dependency will be returned for 'container' Refseq files.
- */
-LIB_EXPORT rc_t CC VDatabaseListDependencies(const VDatabase* self,
-    const VDBDependencies** dep, bool missing)
-{
-    rc_t rc = 0;
-    VDBDependencies* obj;
-    bool all = ! missing;
-    bool has_no_REFERENCE = false;
-    bool hasDuplicates = false;
-
-    if (self == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcSelf, rcNull);
-    }
-    if (dep == NULL) {
-        return RC(rcVDB, rcDatabase, rcAccessing, rcParam, rcNull);
-    }
-
-    obj = calloc(1, sizeof *obj);
-    if (obj == NULL) {
-        return RC(rcVDB, rcStorage, rcAllocating, rcMemory, rcExhausted);
-    }
-
-    obj->tr = malloc(sizeof *obj->tr);
-    if (obj->tr == NULL) {
-        free(obj);
-        return RC(rcVDB, rcStorage, rcAllocating, rcMemory, rcExhausted);
-    }
-    BSTreeInit(obj->tr);
-
-    /* initialize dependencie tree */
-    rc = VDatabaseDependencies(self, obj->tr,
-        &has_no_REFERENCE, &hasDuplicates);
-    if (rc == 0 && has_no_REFERENCE) {
-        *dep = obj;
-        return rc;
-    }
-
-    if (rc == 0) {
-        Initializer init;
-        memset(&init, 0, sizeof init);
-
-        /* count all/missing dependencies */
-        init.all = all;
-        init.fill = false;
-        BSTreeForEach(obj->tr, false, bstProcess, &init);
-     /* now init.count = number of (all == true ? 'all' : 'missed') references*/
-
-        rc = init.rc;
-        if (rc == 0) {
-            obj->count = init.count;
-        }
-
-        if (rc == 0 && missing && hasDuplicates) {
-            /* references have duplicates. e.g. AAAB01... */
-            SBstCopy x;
-            BSTree* tr = malloc(sizeof *tr);
-            if (tr == NULL) {
-                rc = RC(rcVDB, rcStorage, rcAllocating, rcMemory, rcExhausted);
-                return rc;
-            }
-            BSTreeInit(tr);
-            x.count = 0;
-            x.tr = tr;
-            x.all = all;
-
-         /* compact obj->tr into tr, skip duplicates
-            x.count is the number of all references from obj.tr */
-            BSTreeForEach(obj->tr, false, bstCopy, &x);
-            BSTreeWhack(obj->tr, bstWhack, NULL);
-            free(obj->tr);
-            obj->tr = tr;
-            obj->count = init.count = x.count;
-        }
-
-        if (rc == 0) {
-            /* initialize dependencies array with pointers to tree values */
-            if (obj->count > 0) {
-                obj->dependencies
-                    = calloc(obj->count, sizeof obj->dependencies);
-                if (obj->dependencies == NULL) {
-                    free(obj);
-                    return RC
-                        (rcVDB, rcStorage, rcAllocating, rcMemory, rcExhausted);
-                }
-                init.fill = true;
-                init.dep = obj;
-                BSTreeForEach(obj->tr, false, bstProcess, &init);
-                rc = init.rc;
-                if (rc == 0 && init.i != init.count) {
-                    rc = RC(rcVDB, rcDatabase, rcAccessing, rcSelf, rcCorrupt);
-                }
-            }
-        }
-    }
-
-    if (rc == 0) {
-        KRefcountInit(&obj->refcount, 1, CLSNAME, "make", "dep");
-        *dep = obj;
-    }
-    else {
-        VDBDependenciesRelease(obj);
-    }
-
-    return rc;
-}
-
-static bool DependenciesError(rc_t rc) {
-    return GetRCModule(rc) == rcAlign && GetRCObject(rc) == rcTable
-          && GetRCState(rc) == rcNotFound;
-}
-
-typedef enum ErrType {
-    eUnknown,
-    eNoEncInKfg,
-    ePwdFileNotFound,
-    eBadPwdFile,
-    eBadEncKey
-} ErrType;
-static ErrType DependenciesType(rc_t rc) {
-    if (GetRCTarget(rc) == rcEncryptionKey)
-    {
-        switch (GetRCSTATE(rc))
-        {
-            /* no configuration or environment */
-        case RC_STATE(rcFile, rcUnknown):
-            return eNoEncInKfg;
-
-            /* no file where told to look */
-        case RC_STATE(rcFile, rcNotFound):
-            return ePwdFileNotFound;
-
-            /* after decryption the file wasn't a database object */
-        case RC_STATE(rcEncryption, rcIncorrect):
-            return eBadEncKey;
-
-        default:
-            break;
-        }
-    }
-    else if (GetRCTarget(rc) == rcMgr)
-    {
-        switch (GetRCSTATE(rc))
-        {
-        case RC_STATE(rcEncryptionKey, rcTooShort): /* too short */
-        case RC_STATE(rcEncryptionKey, rcTooLong): /* too long */
-            return eBadPwdFile;
-
-        default:
-            break;
-        }
-    }
-    return eUnknown;
-}
-
-LIB_EXPORT bool CC UIError( rc_t rc,
-    const VDatabase* db, const VTable* table)
-{
-    bool retval = false;
-    if( db != NULL || table != NULL ) {
-      if( DependenciesError(rc) ) {
-        if( db != NULL ) {
-            VDatabaseAddRef(db);
-        } else if( VTableOpenParentRead(table, &db) != 0 ) {
-            db = NULL;
-        }
-        if( db != NULL ) {
-            const VTable* ref;
-            if( VDatabaseOpenTableRead(db, &ref, "REFERENCE") == 0 ) {
-                const VCursor* c;
-                if( VTableCreateCachedCursorRead(ref, &c, 0) == 0 ) {
-                    uint32_t i;
-                    retval = VCursorAddColumn(c, &i, "CIRCULAR") == 0
-                        && VCursorOpen(c) == 0;
-                    VCursorRelease(c);
-                }
-                VTableRelease(ref);
-            }
-            VDatabaseRelease(db);
-        }
-      }
-    }
-    else if (db == NULL && table == NULL) {
-        ErrType type = DependenciesType(rc);
-        if (type != eUnknown) {
-            retval = true;
-        }
-    }
-    return retval;
-}
-
-static
-void CC VDBDependenciesLOGMissing( rc_t rc,
-    const VDatabase* db, bool log_list )
-{
-    static bool once = false;
-    if( !once ) {
-      KWrtHandler handler;
-
-      once = true;
-
-      handler.writer = KOutWriterGet();
-      handler.data = KOutDataGet();
-      KOutHandlerSetStdErr();
-
-      if (DependenciesError(rc)) {
-        OUTMSG(("This operation requires access to external"
-            " reference sequence(s) that could not be located\n"));
-        if (db && log_list) {
-            const VDBDependencies* dep = NULL;
-            uint32_t i, count = 0;
-            if( VDatabaseListDependencies(db, &dep, true) == 0 &&
-                VDBDependenciesCount(dep, &count) == 0 ) {
-                for(i = 0; i < count; i++) {
-                    const char* name = NULL, *seqId = NULL;
-                    if (VDBDependenciesName(dep, &name, i) == 0
-                            && VDBDependenciesSeqId(dep, &seqId, i) == 0)
-                    {
-                        OUTMSG(("Reference sequence %s %s was not found\n",
-                                seqId, name));
-                    }
-                }
-                VDBDependenciesRelease(dep);
-            }
-        }
-        OUTMSG((
-              "Please run \"perl configuration-assistant.perl\" and try again\n"
-            ));
-      }
-      else {
-        switch (DependenciesType(rc)) {
-            case eNoEncInKfg:
-                OUTMSG((
-"The file you are trying to open is encrypted,\n"
-"but no decryption password could be located.\n"
-"To set up a password,\n"
-"run the 'configuration-assistant.perl' script provided with the toolkit.\n"));
-                break;
-            case ePwdFileNotFound:
-                OUTMSG((
-"The file you are trying to open is encrypted,\n"
-"but no decryption password could be obtained\n"
-"from the path given in configuration.\n"
-"To set up or change a password,\n"
-"run the 'configuration-assistant.perl' script provided with the toolkit.\n"));
-                break;
-            case eBadEncKey:
-                OUTMSG((
-"The file you are trying to open is encrypted, but could not be opened.\n"
-"Either your password is incorrect or the downloaded file is corrupt.\n"
-"To set up or change a password,\n"
-"run the 'configuration-assistant.perl' script provided with the toolkit.\n"
-"To test the file for corruption,\n"
-"run the 'nencvalid' tool provided with the toolkit.\n"));
-                break;
-        case eBadPwdFile:
-                OUTMSG((
-"The file you are trying to open is encrypted, but could not be opened.\n"
-"The password in the password file in unusable either from being 0 bytes\n"
-"or more than 4096 bytes long. The password starts at the beginning of\n"
-"the file and ends with the first CR (\\r) pr LF (\\n) or at the end of\n"
-"the file.\n"
-"To set up or change a password,\n"
-"run the 'configuration-assistant.perl' script provided with the toolkit.\n"));
-                break;
-            default:
-                assert(0);
-        }
-      }
-
-      OUTMSG(("\n"));
-      KOutHandlerSet(handler.writer, handler.data);
-    }
-}
-
-LIB_EXPORT const char* CC UIDatabaseGetErrorString(rc_t rc)
-{
-    if (DependenciesError(rc)) {
-        return "This operation requires access to external"
-            " reference sequence(s) that could not be located";
-    }
-    else {
-        switch (DependenciesType(rc)) {
-            case eNoEncInKfg:
-                return "The file is encrypted, "
-                    "but no decryption password could be located";
-            case ePwdFileNotFound:
-                return "The file is encrypted, "
-                    "but no decryption password could be obtained "
-                    "from the path given in configuration";
-            case eBadEncKey:
-                return "The file is encrypted, but could not be opened. "
-                    "Either the password is incorrect or the file is corrupt";
-            case eBadPwdFile:
-                return "The file is encrypted, but could not be opened. "
-                    "The password in the password file in unusable";
-            default:
-                assert(0);
-                return "Unexpected Dependency Type";
-        }
-    }
-}
-
-LIB_EXPORT void CC UIDatabaseLOGError( rc_t rc,
-    const VDatabase* db, bool log_list )
-{
-    VDBDependenciesLOGMissing(rc, db, log_list);
-}
-
-LIB_EXPORT void CC UITableLOGError( rc_t rc,
-    const VTable* table, bool log_list )
-{
-    const VDatabase* db;
-    if( table == NULL ) {
-        VDBDependenciesLOGMissing(rc, NULL, log_list);
-    }
-    else if( VTableOpenParentRead(table, &db) == 0 && db != NULL ) {
-        VDBDependenciesLOGMissing(rc, db, log_list);
-        VDatabaseRelease(db);
-    }
-}
diff --git a/libs/vdb/dbmgr-cmn.c b/libs/vdb/dbmgr-cmn.c
index 7d8c0c9..ad8f7f0 100644
--- a/libs/vdb/dbmgr-cmn.c
+++ b/libs/vdb/dbmgr-cmn.c
@@ -38,16 +38,11 @@
 
 #include <vdb/manager.h>
 #include <vdb/database.h>
-#include <vdb/table.h>
 #include <vdb/vdb-priv.h>
 #include <kdb/manager.h>
-#include <kdb/database.h>
-#include <kdb/table.h>
-#include <kdb/meta.h>
 #include <kfg/config.h>
 #include <kfs/directory.h>
 #include <kfs/dyload.h>
-#include <klib/log.h>
 #include <klib/text.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
@@ -58,12 +53,51 @@
 #include <assert.h>
 
 #if 1
-#define DEBUG_PRINT( fmt, ... ) ( void ) 0
+#define DEBUG_PRINT(fmt, ...) { do { } while(0); }
 #else
 #define DEBUG_PRINT(fmt, ...) fprintf(stderr, "%s - " fmt "\n", __func__, __VA_ARGS__)
 #endif
 
 /*--------------------------------------------------------------------------
+ * VDBMem
+ */
+
+/* Whack
+ */
+static
+void CC VDBMemWhack ( DLNode *n, void *ignore )
+{
+    DEBUG_PRINT("freeing mem", 0);
+    free ( n );
+}
+
+
+/* Release
+ */
+void CC VDBMemRelease ( DLNode *item, void *data )
+{
+    VDBMem *self = ( VDBMem* ) item;
+    VDBManager *mgr = data;
+
+    if ( self != NULL )
+    {
+        if ( mgr == NULL || mgr -> pcount >= mgr -> plimit ) {
+            if (mgr) {
+                DEBUG_PRINT("freeing mem, pcount: %u, plimit: %u", mgr->pcount, mgr->plimit);
+                --mgr->mcount;
+            }
+            free ( self );
+        }
+        else
+        {
+            DEBUG_PRINT("pooling mem, pcount: %u, plimit: %u", mgr->pcount, mgr->plimit);
+            DLListPushTail ( & mgr -> mpool, & self -> n );
+            ++ mgr -> pcount;
+        }
+    }
+}
+
+/*--------------------------------------------------------------------------
  * VDBManager
  *  opaque handle to library
  */
@@ -90,6 +124,7 @@ rc_t VDBManagerWhack ( VDBManager *self )
 
         VSchemaRelease ( self -> schema );
         VLinkerRelease ( self -> linker );
+        DLListWhack ( & self -> mpool, VDBMemWhack, NULL );
         free ( self );
         return 0;
     }
@@ -321,27 +356,15 @@ rc_t VDBManagerConfigFromKfg ( VDBManager *self, bool update )
                 /* add path between "path" and "colon" */
                 rc = VDBManagerAddSchemaIncludePath ( self, "%.*s", ( int ) ( colon - path ), path );
                 if ( rc != 0 )
-                {
-                    PLOGERR ( klogWarn, ( klogWarn, rc, "schema path '$(path)' was rejected",
-                                          "path=%.*s", ( int ) ( colon - path ), path ) );
-                    rc = 0;
-                }
-                num_read -= colon - path + 1;
+                    break;
+                num_read -= ( colon - path ) - 1;
                 path = colon + 1;
                 colon = string_chr ( path, num_read, ':' );
             }
 
             /* add in last portion */
             if ( rc == 0 && num_read != 0 )
-            {
                 rc = VDBManagerAddSchemaIncludePath ( self, "%.*s", ( int ) ( num_read ), path );
-                if ( rc != 0 )
-                {
-                    PLOGERR ( klogWarn, ( klogWarn, rc, "schema path '$(path)' was rejected",
-                                          "path=%.*s", ( int ) num_read, path ) );
-                    rc = 0;
-                }
-            }
         }
 
         KConfigRelease ( kfg );
@@ -490,258 +513,93 @@ LIB_EXPORT rc_t CC VDBManagerSetUserData ( const VDBManager *cself,
     return 0;
 }
 
-/* OpenKDBManager
- *  returns a new reference to KDBManager used by VDBManager
+
+/* MakeMem
+ *  pops a buffer from pool
+ *  or allocates a new one on demand
  */
-LIB_EXPORT rc_t CC VDBManagerOpenKDBManagerRead ( const VDBManager *self, const KDBManager **kmgr )
+rc_t VDBManagerMakeMem ( VDBManager *self, VDBMem **memp )
 {
     rc_t rc;
 
-    if ( kmgr == NULL )
-        rc = RC ( rcVDB, rcMgr, rcAccessing, rcParam, rcNull );
+    if ( memp == NULL )
+        rc = RC ( rcVDB, rcMgr, rcAllocating, rcParam, rcNull );
     else
     {
         if ( self == NULL )
-            rc = RC ( rcVDB, rcMgr, rcAccessing, rcSelf, rcNull );
+            rc = RC ( rcVDB, rcMgr, rcAllocating, rcSelf, rcNull );
         else
         {
-            rc = KDBManagerAddRef ( self -> kmgr );
-            if ( rc == 0 )
-            {
-                * kmgr = self -> kmgr;
-                return 0;
-            }
-        }
+            VDBMem *mem;
 
-        * kmgr = NULL;
-    }
-
-    return rc;
-}
-
-
-static
-ver_t VDBManagerGetLoaderVersFromMeta ( const KMetadata * meta )
-{
-    const KMDataNode *node = NULL;
-    rc_t rc = KMetadataOpenNodeRead ( meta, & node, "SOFTWARE/loader" );
-    KMDataNodeRelease ( node );
-    if ( rc == 0 )
-    {
-        size_t num_read;
-        char vers_string [ 64 ];
-        rc = KMDataNodeReadAttr ( node, "vers", vers_string, sizeof vers_string, & num_read );
-        if ( rc == 0 )
-        {
-            char *end, *start = vers_string;
-            unsigned long maj = strtoul ( start, & end, 10 );
+            if ( self -> pcount > 0 )
+            {
+                /* "count" tells us that there is at least 1 pooled buffer */
+                mem = ( VDBMem* ) DLListPopHead ( & self -> mpool );
+                assert ( mem != NULL );
 
-            KMDataNodeRelease ( node );
+                /* should always happen */
+                if ( mem != NULL )
+                {
+                    DEBUG_PRINT("retrieving mem from pool", 0);
+                    -- self -> pcount;
+                    * memp = mem;
+                    return 0;
+                }
 
-            if ( end > start && end [ 0 ] == '.' )
-            {
-                unsigned long min = strtoul ( start = end + 1, & end, 10 );
-                if ( end > start && end [ 0 ] == '.' )
+                /* should never happen */
+                self -> pcount = 0;
+            }
+            
+            if (self->mcount > self->mlimit) {
+                rc = RC(rcVDB, rcMgr, rcAllocating, rcResources, rcExhausted);
+                DEBUG_PRINT("refusing to allocate; too many allocs", 0);
+            }
+            else {
+                mem = malloc ( sizeof * mem );
+                if ( mem == NULL )
+                    rc = RC ( rcVDB, rcMgr, rcAllocating, rcMemory, rcExhausted );
+                else
                 {
-                    unsigned long rel = strtoul ( start = end + 1, & end, 10 );
-                    if ( end > start )
-                        return ( maj << 24 ) | ( min << 16 ) | rel;
+                    ++self->mcount;
+                    DEBUG_PRINT("allocating mem %u", self->mcount);
+                    * memp = mem;
+                    return 0;
                 }
             }
         }
-    }
-    return 0;
-}
-
-
-/* VDBManagerGetVersFromMeta
- *  helper-function for VDBManagerGetObjVersion
- */
-static
-ver_t VDBManagerGetVersFromMeta ( const KMetadata * meta, bool is_db )
-{
-    rc_t rc = 0;
-    uint32_t meta_vers;
-    const KMDataNode *node;
-
-    /* look for loader version as first clue */
-    ver_t version = VDBManagerGetLoaderVersFromMeta ( meta );
-    if ( VersionGetMajor ( version ) >= 2 ) {
-        return version;
-    }
 
-    /* was the run vdb-copied? */
-    rc = KMetadataOpenNodeRead ( meta, & node, "SOFTWARE/update" );
-    if ( rc == 0 ) {
-        KMDataNodeRelease ( node );
-        return 0x2000000;
+        * memp = NULL;
     }
 
-    /* If SOFTWARE/loader/@vers exists but SOFTWARE/update does not
-     * then return the former */
-    if ( version != 0 ) {
-        return version;
-    }
-
-    /* THE PRINCIPAL DESCRIPTION OF SOFTWARE VERSION
-       WAS NOT FOUND. USE HEURISTICS TO DETERMINE VERSION
-       FROM THIS POINT FORWARD. */
-
-    /* look at the version of the metadata file itself
-       metdata version 1 means pre-vdb, i.e. v0 */
-    rc = KMetadataVersion ( meta, & meta_vers );
-    if ( rc == 0 && meta_vers < 2 )
-        return 0;
-
-    /* assume all databases are v2 */
-    if ( is_db )
-        return 0x2000000;
-
-
-    /* AT THIS POINT, WE KNOW WE MUST HAVE A TABLE,
-       BUT WE DON'T HAVE PERFECT EVIDENCE OF VERSION,
-       SINCE THE SOFTWARE NODE IS NOT MANDATORY. */
-
-    /* if "schema" exists, it's v2 */
-    rc = KMetadataOpenNodeRead ( meta, & node, "schema" );
-    if ( rc == 0 )
-    {
-        KMDataNodeRelease ( node );
-        return 0x2000000;
-    }
-
-    /* if "col" exists, it's v1 */
-    rc = KMetadataOpenNodeRead ( meta, &node, "col" );
-    if ( rc == 0 )
-    {
-        KMDataNodeRelease ( node );
-        return 0x1000000;
-    }
-
-    /* appears to be v0 */
-    return 0;
+    return rc;
 }
 
-
-/* VDBManagerGetObjVersion
- *  returns the vdb-version of the given object
+/* OpenKDBManager
+ *  returns a new reference to KDBManager used by VDBManager
  */
-LIB_EXPORT rc_t CC VDBManagerGetObjVersion ( const VDBManager *self, ver_t * version, const char *path )
+LIB_EXPORT rc_t CC VDBManagerOpenKDBManagerRead ( const VDBManager *self, const KDBManager **kmgr )
 {
     rc_t rc;
 
-    if ( version == NULL )
+    if ( kmgr == NULL )
         rc = RC ( rcVDB, rcMgr, rcAccessing, rcParam, rcNull );
     else
     {
         if ( self == NULL )
             rc = RC ( rcVDB, rcMgr, rcAccessing, rcSelf, rcNull );
-        else if ( path == NULL )
-            rc = RC ( rcVDB, rcMgr, rcAccessing, rcPath, rcNull );
-        else if ( path [ 0 ] == 0 )
-            rc = RC ( rcVDB, rcMgr, rcAccessing, rcPath, rcEmpty );
         else
         {
-            const KTable *tbl;
-            const KDatabase *db;
-            const KMetadata *meta;
-
-            int path_type = KDBManagerPathType ( self -> kmgr, path ) & ~ kptAlias;
-            switch ( path_type )
-            {
-            case kptDatabase:
-                rc = KDBManagerOpenDBRead ( self -> kmgr, & db, path );
-                if ( rc == 0 )
-                {
-                    rc = KDatabaseOpenMetadataRead ( db, & meta );
-                    KDatabaseRelease ( db );
-                }
-                break;
-            case kptTable:
-                rc = KDBManagerOpenTableRead ( self -> kmgr, & tbl, path );
-                if ( rc == 0 )
-                {
-                    rc = KTableOpenMetadataRead ( tbl, & meta );
-                    KTableRelease ( tbl );
-                }
-                break;
-
-            case kptPrereleaseTbl:
-                * version = 0;
-                return 0;
-
-            default:
-                rc = RC ( rcVDB, rcMgr, rcAccessing, rcPath, rcIncorrect );
-            }
-
+            rc = KDBManagerAddRef ( self -> kmgr );
             if ( rc == 0 )
             {
-                * version = VDBManagerGetVersFromMeta ( meta, path_type == kptDatabase );
-                KMetadataRelease ( meta );
+                * kmgr = self -> kmgr;
                 return 0;
             }
         }
 
-        * version = 0;
-    }
-
-    return rc;
-}
-
-
-/* ListExternalSchemaModules
- */
-LIB_EXPORT rc_t CC VDBManagerListExternalSchemaModules ( const VDBManager *self, KNamelist **listp )
-{
-    rc_t rc;
-
-    if ( listp == NULL )
-        rc = RC ( rcVDB, rcMgr, rcListing, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcVDB, rcMgr, rcListing, rcSelf, rcNull );
-        else
-        {
-            rc = VLinkerListExternalSchemaModules ( self -> linker, listp );
-            if ( rc == 0 )
-                return 0;
-        }
-
-        * listp = NULL;
+        * kmgr = NULL;
     }
 
     return rc;
 }
-
-
-/* PathType
- *  check the path type of an object/directory path.
- *
- *  this is an extension of the KDirectoryPathType ( see <kdb/manager.h> )
- *  and will return the KDirectory values if a path type is not specifically
- *  a VDB or KDB object.
- */
-LIB_EXPORT int CC VDBManagerPathType ( const VDBManager * self,
-    const char *path, ... )
-{
-    int type;
-
-    va_list args;
-    va_start ( args, path );
-
-    type = VDBManagerVPathType ( self, path, args );
-
-    va_end ( args );
-
-    return type;
-}
-
-LIB_EXPORT int CC VDBManagerVPathType ( const VDBManager * self,
-    const char *path, va_list args )
-{
-    if ( self != NULL )
-        return KDBManagerVPathType ( self -> kmgr, path, args );
-
-    return kptBadPath;
-}
diff --git a/libs/vdb/dbmgr-priv.h b/libs/vdb/dbmgr-priv.h
index aa1b36b..310c7a8 100644
--- a/libs/vdb/dbmgr-priv.h
+++ b/libs/vdb/dbmgr-priv.h
@@ -47,6 +47,13 @@
 #define KONST
 #endif
 
+#if _DEBUGGING && 0
+#define VDBM_PAGE_SIZE 256
+#elif _DEBUGGING && 0
+#define VDBM_PAGE_SIZE ( 256 * 1024 )
+#else
+#define VDBM_PAGE_SIZE ( 32 * 1024 )
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -62,6 +69,27 @@ struct VLinker;
 
 
 /*--------------------------------------------------------------------------
+ * VDBMem
+ *  a page of pooled memory
+ */
+typedef struct VDBMem VDBMem;
+struct VDBMem
+{
+    DLNode n;
+    uint8_t page [ VDBM_PAGE_SIZE ];
+};
+
+#undef VDBM_PAGE_SIZE
+
+
+/* Release
+ *  return memory block to pool
+ *  or delete it if pool is already full
+ */
+void CC VDBMemRelease ( DLNode *self, void *mgr );
+
+
+/*--------------------------------------------------------------------------
  * VDBManager
  *  handle to library
  */
@@ -80,6 +108,13 @@ struct VDBManager
     void *user;
     void ( CC * user_whack ) ( void *data );
 
+    /* memory pool, max buffers to keep, count in pool */
+    DLList mpool;
+    uint32_t plimit;
+    uint32_t pcount;
+    uint32_t mlimit; /* alloc'ed limit */ 
+    uint32_t mcount; /* alloc'ed count */
+
     /* open references */
     KRefcount refcount;
 };
@@ -100,6 +135,13 @@ rc_t VDBManagerSever ( const VDBManager *self );
 rc_t VDBManagerConfigPaths ( VDBManager *self, bool update );
 
 
+/* MakeMem
+ *  pops a buffer from pool
+ *  or allocates a new one on demand
+ */
+rc_t VDBManagerMakeMem ( VDBManager *self, VDBMem **mem );
+
+
 /*--------------------------------------------------------------------------
  * generic whackers
  */
diff --git a/libs/vdb/dbmgr.c b/libs/vdb/dbmgr.c
index 2551b6b..753c804 100644
--- a/libs/vdb/dbmgr.c
+++ b/libs/vdb/dbmgr.c
@@ -90,6 +90,11 @@ LIB_EXPORT rc_t CC VDBManagerMakeRead ( const VDBManager **mgrp, const KDirector
                         {
                             mgr -> user = NULL;
                             mgr -> user_whack = NULL;
+                            DLListInit ( & mgr -> mpool );
+                            mgr -> mlimit = 0;
+                            mgr -> mcount = 0;
+                            mgr -> plimit = 0;
+                            mgr -> pcount = 0;
                             KRefcountInit ( & mgr -> refcount, 1, "VDBManager", "make-read", "vmgr" );
                             * mgrp = mgr;
                             return 0;
diff --git a/libs/vdb/delta_average.c b/libs/vdb/delta_average.c
deleted file mode 100644
index a00e1eb..0000000
--- a/libs/vdb/delta_average.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <vdb/extern.h>
-
-#include <vdb/xform.h>
-#include <klib/rc.h>
-
-#include "xform-priv.h"
-#include "blob-priv.h"
-#include "blob-headers.h"
-#include "blob.h"
-#include "page-map.h"
-
-#include <sysalloc.h>
-
-#include <assert.h>
-#include <stdlib.h>
-
-
-/* Create
- *
- * Create a new blob.  A new data buffer is sized to
- * 'element_count' * sizeof datatype; its contents are
- * uninitialized.
- */
-static
-rc_t VBlobCreateEncode ( VBlob **blobp, const VBlob *in, uint32_t max_rl_bytes,uint8_t *avg, uint32_t elem_bytes )
-{
-    rc_t rc = VBlobNew ( blobp, in -> start_id, in -> stop_id, "delta_average" );
-    if ( rc == 0 )
-    {
-        VBlob *blob = * blobp;
-        rc = PageMapAddRef ( in -> pm );
-	if(rc == 0) {
-		blob->pm = in -> pm ;
-		if(max_rl_bytes > 0){
-			rc = KDataBufferMake ( & blob -> data, in -> data . elem_bits, in -> data . elem_count );
-		} else {
-			rc = KDataBufferSub(&in->data, &blob->data, 0, UINT64_MAX);
-		}
-		if ( rc == 0 ){
-			rc = BlobHeadersCreateChild(in->headers, &blob->headers);
-			if ( rc == 0) {
-				VBlobHeader *hdr = BlobHeadersGetHdrWrite(blob->headers);
-				assert(hdr!=NULL);
-				if(hdr != 0){
-					int i;
-					VBlobHeaderSetVersion (hdr, 1);
-					rc = VBlobHeaderArgPushTail(hdr, max_rl_bytes);
-					assert(rc == 0);
-					rc = VBlobHeaderArgPushTail(hdr, elem_bytes);
-                                        assert(rc == 0);
-					for(i=0; i< max_rl_bytes; i++){
-						rc = VBlobHeaderOpPushTail(hdr,avg[i]);
-						assert(rc==0);
-					}
-					blob -> byte_order = in -> byte_order;
-					VBlobHeaderRelease(hdr);
-					return 0;
-				}
-			}
-		}
-		PageMapRelease( blob->pm);
-        }
-	VBlobRelease ( blob );
-        * blobp = NULL;
-    }
-    return rc;
-}
-
-static
-rc_t VBlobCreateDecode ( VBlob **blobp, const VBlob *in, uint32_t *max_rl_bytes,uint8_t **avg, uint32_t *elem_bytes)
-{
-    rc_t rc = VBlobNew ( blobp, in -> start_id, in -> stop_id, "undelta_average" );
-    if ( rc == 0 )
-    {
-        VBlob *blob = * blobp;
-        rc = PageMapAddRef ( in -> pm );
-	if(rc == 0) {
-		VBlobHeader *hdr;
-		blob->pm = in -> pm ;
-                blob->headers = (BlobHeaders *)BlobHeadersGetNextFrame(in->headers);
-		BlobHeadersAddRef(blob->headers);
-		hdr = BlobHeadersGetHeader(in->headers);
-		if(hdr || VBlobHeaderVersion(hdr)!=1) {
-			int64_t len;
-			int64_t eb;
-			rc = VBlobHeaderArgPopHead(hdr, &len);
-			if( rc == 0)
-				rc = VBlobHeaderArgPopHead(hdr, &eb);
-			if( rc == 0){
-				*max_rl_bytes=len;
-				*elem_bytes = eb;
-				if(len > 0){
-					rc = KDataBufferMake ( & blob -> data, in -> data . elem_bits, in -> data . elem_count );
-					if ( rc == 0){
-						*avg=malloc(len);
-						if(*avg){
-							int i;
-							for(i=0;i<len && rc == 0;i++){
-								rc = VBlobHeaderOpPopHead(hdr,(*avg)+i);
-							}
-							if(rc == 0){
-								VBlobHeaderRelease(hdr);
-								return 0;
-							} else {
-								rc =  RC(rcVDB, rcFunction, rcExecuting, rcHeader, rcCorrupt) ;
-							}
-						} else {
-							rc =  RC(rcVDB, rcFunction, rcExecuting, rcMemory, rcExhausted) ;
-						}
-					}
-				} else {
-					rc = KDataBufferSub(&in->data, &blob->data, 0, UINT64_MAX);
-					if(rc == 0){
-						VBlobHeaderRelease(hdr);
-						return 0;
-					}
-				}
-				VBlobHeaderRelease(hdr);
-			} else {
-				rc =  RC(rcVDB, rcFunction, rcExecuting, rcHeader, rcCorrupt) ;
-			}
-		} else {
-			rc =  RC(rcVDB, rcFunction, rcExecuting, rcHeader, rcCorrupt) ;
-		}
-		PageMapRelease( blob->pm);
-        }
-	VBlobRelease ( blob );
-        * blobp = NULL;
-    }
-    return rc;
-}
-
-static
-rc_t CC undelta_average ( void *self, const VXformInfo *info, int64_t row_id,
-    VBlob **rslt, uint32_t argc, const VBlob *argv [] )
-{
-    uint32_t  max_rl_bytes;
-    uint8_t   *avg = NULL;
-    uint32_t elem_bytes;
-    /* input blob - schema assures us that it is ready to go */
-    const VBlob *in = argv [ 0 ];
-  /* allocate output blob of same size */
-    rc_t rc = VBlobCreateDecode ( rslt, in,&max_rl_bytes,&avg,&elem_bytes );
-    if(rc == 0 && max_rl_bytes > 0){
-	uint8_t *dst = (*rslt)->data.base; /** destination pointer **/
-	uint8_t *src = in -> data.base;
-	int	i,j,k;
-	PageMap *pm  = in->pm;
-
-	for(i=j=0,src = in -> data.base;i<pm->leng_recs;i++){
-                row_count_t leng_run=pm->leng_run[i];
-                elem_count_t len = pm->length[i];
-                assert(len<=max_rl_bytes);
-                while(leng_run > 0){
-                        for(k=0;k<len*elem_bytes;k++,src++,dst++){
-                                dst[0] = avg[k] - src[0]; /** symmetrical to encode **/
-                        }
-                        assert(leng_run >= (pm->data_run?pm->data_run[j]:1));
-                        leng_run -= pm->data_run?pm->data_run[j]:1;
-			j++;
-                }
-        }
-
-    }
-    if(avg) free(avg);
-    return rc;
-}
-
-VTRANSFACT_BUILTIN_IMPL ( vdb_undelta_average, 1, 0, 0 )
-    ( const void *self, const VXfactInfo *info, VFuncDesc *rslt,
-      const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    VFUNCDESC_INTERNAL_FUNCS ( rslt ) -> bfN = undelta_average;
-    rslt -> variant = vftBlobN;
-    return 0;
-}
-
-static
-rc_t CC delta_average ( void *self, const VXformInfo *info, int64_t row_id,
-    VBlob **rslt, uint32_t argc, const VBlob *argv [] )
-{
-    rc_t rc;
-    /* input blob - schema assures us that it is ready to go */
-    const VBlob *in = argv [ 0 ];
-    const PageMap *pm = in->pm; 
-    uint8_t     *src;
-    elem_count_t   min_row_len,max_row_len;
-    uint64_t	min_rl_bytes,max_rl_bytes;
-    uint32_t    *cnts;
-    uint32_t    elem_bytes;
-    int         i,j,k;
-    uint8_t	*avg=NULL;
-    uint64_t    sum_rle;
-    uint8_t	last;
-
-    if(pm->row_count < 256 || (in->data.elem_bits & 7)!=0){
-	return VBlobCreateEncode ( rslt, in, 0,NULL,0 );
-    }
-    elem_bytes = in->data.elem_bits >> 3;
-    PageMapRowLengthRange(pm,&min_row_len,&max_row_len);
-    if(max_row_len > 1024){
-	return VBlobCreateEncode ( rslt, in, 0,NULL,0 );
-    }
-    /*** rescale to bytes **/
-    min_rl_bytes = (min_row_len * in->data.elem_bits) >> 3;
-    max_rl_bytes = (max_row_len * in->data.elem_bits) >> 3;
-
-    cnts=calloc(sizeof(*cnts),256*max_rl_bytes); /** computing counts of values **/
-    avg=malloc(max_rl_bytes);
-
-    /** collect sums and averages ***/
-    /** using tight loop instead of iterators **/
-    for(i=j=0,src = in -> data.base, sum_rle=0,last=0;i<pm->leng_recs;i++){
-	row_count_t leng_run=pm->leng_run[i];
-	elem_count_t len = pm->length[i];
-	assert(len<=max_rl_bytes);
-	while(leng_run > 0){
-		for(k=0;k<len*elem_bytes;k++,src++){
-			if(last==src[0]) sum_rle++;
-			cnts[256*k+src[0]]++;
-			last=src[0];
-		}
-		assert(leng_run >= (pm->data_run?pm->data_run[j]:1));
-		leng_run -= pm->data_run?pm->data_run[j]:1;
-		j++;
-	}
-    }
-    if(sum_rle * 10 > elem_bytes * in->data.elem_count * 3){/** total number of repetitions is high - leave it for zlib RLE ***/
-        free(cnts);
-        free(avg);
-        return VBlobCreateEncode(rslt,in,0,NULL,0);
-    }
-
-    for(i=0;i<max_rl_bytes;i++){
-	avg[i] = 0;
-	for(j=1;j<256;j++){
-		if(cnts[256*i+j] > cnts[256*i+avg[i]]){
-			avg[i]=j; 
-		}
-	}
-    }
-    rc = VBlobCreateEncode ( rslt, in, max_rl_bytes,avg,elem_bytes );
-    if (rc == 0 ){
-	uint8_t *dst = (*rslt)->data.base; /** destination pointer **/
-	for(i=j=0,src = in -> data.base;i<pm->leng_recs;i++){
-		row_count_t leng_run=pm->leng_run[i];
-		elem_count_t len = pm->length[i];
-		assert(len<=max_rl_bytes);
-		while(leng_run > 0){
-			for(k=0;k < len*elem_bytes;k++,src++,dst++){
-				dst[0] = avg[k] - src[0]; /** will do it in this direction **/
-			}
-			assert(leng_run >= (pm->data_run?pm->data_run[j]:1));
-			leng_run -= pm->data_run?pm->data_run[j]:1;
-			j++;
-		}
-	}
-     }
-    if(cnts) free(cnts);
-    if(avg)  free(avg);
-    return rc;
-}
-
-VTRANSFACT_BUILTIN_IMPL ( vdb_delta_average, 1, 0, 0 )
-    ( const void *self, const VXfactInfo *info, VFuncDesc *rslt,
-      const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    VFUNCDESC_INTERNAL_FUNCS ( rslt ) -> bfN = delta_average;
-    rslt -> variant = vftBlobN;
-    return 0;
-}
diff --git a/libs/vdb/libvdb.vers b/libs/vdb/libvdb.vers
index 2714f53..530cdd9 100644
--- a/libs/vdb/libvdb.vers
+++ b/libs/vdb/libvdb.vers
@@ -1 +1 @@
-2.6.4
+2.2.4
diff --git a/libs/vdb/libvdb.vers.h b/libs/vdb/libvdb.vers.h
new file mode 100644
index 0000000..926364c
--- /dev/null
+++ b/libs/vdb/libvdb.vers.h
@@ -0,0 +1 @@
+#define LIBVDB_VERS 0x02020004
diff --git a/libs/vdb/libwvdb.vers b/libs/vdb/libwvdb.vers
index 2714f53..530cdd9 100644
--- a/libs/vdb/libwvdb.vers
+++ b/libs/vdb/libwvdb.vers
@@ -1 +1 @@
-2.6.4
+2.2.4
diff --git a/libs/vdb/libwvdb.vers.h b/libs/vdb/libwvdb.vers.h
new file mode 100644
index 0000000..e22dd0f
--- /dev/null
+++ b/libs/vdb/libwvdb.vers.h
@@ -0,0 +1 @@
+#define LIBWVDB_VERS 0x02020004
diff --git a/libs/vdb/linker-cmn.c b/libs/vdb/linker-cmn.c
index a68e6de..a1ed68e 100644
--- a/libs/vdb/linker-cmn.c
+++ b/libs/vdb/linker-cmn.c
@@ -34,7 +34,6 @@
 
 #include <kfs/directory.h>
 #include <kfs/dyload.h>
-#include <kfs/kfs-priv.h>
 #include <klib/symbol.h>
 #include <klib/symtab.h>
 #include <klib/rc.h>
@@ -620,27 +619,3 @@ rc_t VLinkerFindUntyped ( VLinker *self, const KDlset *libs,
     }
     return rc;
 }
-
-
-/* ListExternalSchemaModules
- */
-rc_t VLinkerListExternalSchemaModules ( const VLinker *self, struct KNamelist **listp )
-{
-    rc_t rc;
-
-    assert ( listp != NULL );
-    if ( self == NULL )
-        rc = RC ( rcVDB, rcDylib, rcListing, rcSelf, rcNull );
-    else
-    {
-        KDlset *libs;
-        rc = VLinkerOpen ( self, & libs );
-        if ( rc == 0 )
-        {
-            rc = KDlsetList ( libs, listp );
-            KDlsetRelease ( libs );
-        }
-    }
-
-    return rc;
-}
diff --git a/libs/vdb/linker-int.c b/libs/vdb/linker-int.c
index d1a614f..afb8886 100644
--- a/libs/vdb/linker-int.c
+++ b/libs/vdb/linker-int.c
@@ -34,7 +34,6 @@
 #include <klib/token.h>
 #include <klib/symtab.h>
 #include <klib/symbol.h>
-#include <klib/out.h>
 #include <klib/rc.h>
 #include <sysalloc.h>
 
@@ -55,8 +54,6 @@ extern VTRANSFACT_DECL ( vdb_merge );
 extern VTRANSFACT_DECL ( vdb_split );
 extern VTRANSFACT_DECL ( vdb_transpose );
 extern VTRANSFACT_DECL ( vdb_detranspose );
-extern VTRANSFACT_DECL ( vdb_delta_average );
-extern VTRANSFACT_DECL ( vdb_undelta_average );
 extern VTRANSFACT_DECL ( meta_read );
 extern VTRANSFACT_DECL ( meta_value );
 extern VTRANSFACT_DECL ( meta_attr_read );
@@ -84,13 +81,15 @@ VTRANSFACT_BUILTIN_IMPL ( vdb_select, 1, 0, 0 ) ( const void *self,
 
 /* temporary silly stuff
  */
+#include <stdio.h>
+#include "fmtdef.h"
 
 static
 rc_t CC hello_func ( void *self, const VXformInfo *info, int64_t row_id,
     VRowResult *rslt, uint32_t argc, const VRowData argv [] )
 {
     char *func_hello = self;
-    OUTMSG (( "%s - row id %ld\n", func_hello, row_id ));
+    printf ( "%s - row id %" LD64 "\n", func_hello, row_id );
     return 0;
 }
 
@@ -115,7 +114,7 @@ VTRANSFACT_BUILTIN_IMPL ( vdb_hello, 1, 0, 0 ) ( const void *self,
     rslt -> u . rf = hello_func;
     rslt -> variant = vftRow;
 
-    OUTMSG (( "%s - %u factory params, %u function params\n", fact_hello, cp -> argc, dp -> argc ));
+    printf ( "%s - %u factory params, %u function params\n", fact_hello, cp -> argc, dp -> argc );
     return 0;
 }
 
@@ -209,8 +208,6 @@ rc_t VLinkerInitFactoriesRead ( VLinker *self,  KSymTable *tbl, const SchemaEnv
         { vdb_split, "vdb:split" },
         { vdb_transpose, "vdb:transpose" },
         { vdb_detranspose, "vdb:detranspose" },
-        { vdb_delta_average, "vdb:delta_average" },
-        { vdb_undelta_average, "vdb:undelta_average" },
         { meta_read, "meta:read" },
         { meta_value, "meta:value" },
         { meta_attr_read, "meta:attr:read" },
diff --git a/libs/vdb/linker-priv.h b/libs/vdb/linker-priv.h
index 6144cd5..fdf6566 100644
--- a/libs/vdb/linker-priv.h
+++ b/libs/vdb/linker-priv.h
@@ -65,7 +65,6 @@ extern "C" {
  */
 struct KSymbol;
 struct KSymTable;
-struct KNamelist;
 struct KDyld;
 struct KDlset;
 struct KSymAddr;
@@ -208,12 +207,6 @@ rc_t VLinkerFindUntyped ( VLinker *self, struct KDlset const *libs,
     VUntypedTableTest *func, struct SFunction const *proto );
 
 
-/* ListExternalSchemaModules
- */
-rc_t VLinkerListExternalSchemaModules ( const VLinker *self,
-    struct KNamelist **list );
-
-
 /*--------------------------------------------------------------------------
  * LFactory
  *  describes an external C function factory
diff --git a/libs/vdb/meta-attr-write.c b/libs/vdb/meta-attr-write.c
index 2a2421c..5cbdd64 100644
--- a/libs/vdb/meta-attr-write.c
+++ b/libs/vdb/meta-attr-write.c
@@ -27,13 +27,13 @@
 #include <vdb/extern.h>
 
 #include <klib/defs.h>
-#include <klib/printf.h>
 #include <klib/rc.h>
 #include <vdb/table.h>
 #include <vdb/xform.h>
 #include <vdb/schema.h>
 #include <kdb/meta.h>
 #include <klib/data-buffer.h>
+#include <fmtdef.h>
 #include <sysalloc.h>
 #include "xform-priv.h"
 
@@ -56,21 +56,18 @@ static void CC self_whack( void *vp ) {
     free( vp );
 }
 
-static rc_t meta_attr_write_fmt( self_t *self, const char *fmt, ... )
-{
-    rc_t rc;
-    size_t n;
+static rc_t meta_attr_write_fmt( self_t *self, const char *fmt, ... ) {
+    int n;
     char sbuf[4096];
 
     va_list va;
     va_start(va, fmt);
-    rc = string_vprintf(sbuf, sizeof(sbuf), & n, fmt, va);
+    n = vsnprintf(sbuf, sizeof(sbuf), fmt, va);
     va_end(va);
     
-    if ( rc == 0 )
-        rc = KMDataNodeWriteAttr(self->node, self->name, sbuf);
-
-    return rc;
+    if (n < 0 || n >= sizeof sbuf)
+        return RC(rcVDB, rcFunction, rcExecuting, rcParam, rcExcessive);
+    return KMDataNodeWriteAttr(self->node, self->name, sbuf);
 }
 
 static
@@ -329,7 +326,7 @@ rc_t CC meta_attr_write_I64(
         return rc;
     
     *(int64_t *)rslt->data->base = value;
-    rc = meta_attr_write_fmt(self, "%ld", value);
+    rc = meta_attr_write_fmt(self, "%" LD64, value);
     if (rc)
         return rc;
     
@@ -358,7 +355,7 @@ rc_t CC meta_attr_write_U64(
         return rc;
     
     *(uint64_t *)rslt->data->base = value;
-    rc = meta_attr_write_fmt(self, "%lu", value);
+    rc = meta_attr_write_fmt(self, "%" LU64, value);
     if (rc)
         return rc;
     
diff --git a/libs/vdb/page-map.c b/libs/vdb/page-map.c
index 08c0066..847c151 100644
--- a/libs/vdb/page-map.c
+++ b/libs/vdb/page-map.c
@@ -34,6 +34,8 @@
 
 #include <klib/pack.h>
 #include <klib/vlen-encode.h>
+#include <klib/refcount.h>
+#include <klib/data-buffer.h>
 #include <sysalloc.h>
 #include "page-map.h"
 
@@ -49,475 +51,129 @@
  * I.e. if two identical rows are stored sequentially 
  */
 
+typedef uint32_t pm_size_t;
 
+struct PageMap {
+    /* memory allocation object for length[], leng_run[], data_run[] */
+    KDataBuffer cstorage;
+    /* memory allocation object for explength[], exp_offset[] */
+    KDataBuffer estorage;
+    
+    /* array of row lengths
+     * has leng_recs elements
+     * is sized to reserve_leng elements
+     * == storage.base
+     */
+    elem_count_t *length;
+    
+    /* array of run lengths of row lengths
+     * has leng_recs elements
+     * is sized to reserve_leng elements
+     * == length + reserve_leng
+     */
+    row_count_t *leng_run;
+    
+    /* array of repeat counts of data
+     * has data_recs elements
+     * is sized to reserve_data elements
+     * == leng_run + reserve_leng
+     */
+    row_count_t *data_run;
+
+    elem_count_t *exp_length;
+    elem_count_t *exp_offset;
+    row_count_t  *exp_repeat;
+    pm_size_t    exp_length_last; /* index of last length expanded */
+    pm_size_t    exp_offset_last; /* index of last offset expanded */
+    elem_count_t exp_offset_next;
+    
+    pm_size_t leng_recs;     /* number of valid elements in length[] and leng_run[] */
+    pm_size_t data_recs;     /* number of valid elements in data_run[] */
+    pm_size_t reserve_leng;  /* number of allocated elements in length[] and leng_run[] */
+    pm_size_t reserve_data;  /* number of allocated elements in data_run[] */
+    pm_size_t start_valid;   /* the expanded array contains valid data upto start_valid */
+    row_count_t row_count;     /* total number of rows in page map */
+    KRefcount refcount;
+};
 
 #define VALIDATE_PAGEMAPS 0
-#define PAGEMAP_STATISTICS 0
-#if PAGEMAP_STATISTICS
-static struct {
-    size_t currentFootprint;
-    size_t maxFootprint;
-    size_t currentWaste;
-    size_t maxWaste;
-    unsigned alive;
-    unsigned maxAlive;
-    unsigned create;
-    unsigned createStatic;
-    unsigned createFixedRow;
-    unsigned createSingle;
-    unsigned grows;
-    unsigned expands;
-    unsigned expandCalls;
-    unsigned appends;
-} pm_stats;
-#endif
 
 elem_count_t PageMapLastLength(const PageMap *cself) {
     return cself->leng_recs > 0 ? cself->length[cself->leng_recs - 1] : 0;
 }
 
-
-
-static rc_t PageMapRegionExpand(PageMap *self,pm_expand_region_type_t TYPE,row_count_t numrows,elem_count_t length,elem_count_t data_offset)
-{
-	rc_t rc;
-	if(   self->exp_rgn_last == 0           /** not started **/
-	   || self->exp_rgn_last->type != TYPE 	/** another type **/
-           || (TYPE == PM_REGION_EXPAND_SAMEDATA && self->exp_rgn_last->data_offset != data_offset)  /** not the same data */
-           || (TYPE!=PM_REGION_EXPAND_FULL && self->exp_rgn_last->length != length) /** all non-full types are length-dependant**/
-		){ /** New region **/
-		self->exp_rgn_cnt++;
-		rc = KDataBufferResize(&self->istorage, self->exp_rgn_cnt);
-		if(rc) return rc;
-
-		self->exp_rgn_last = (PageMapRegion *)self->istorage.base + self->exp_rgn_cnt -1;
-		self->exp_rgn_last->type=TYPE;
-		self->exp_rgn_last->start_row=self->exp_row_last;
-		self->exp_rgn_last->data_offset = data_offset;
-		self->exp_rgn_last->length = length;
-		self->exp_rgn_last->numrows = numrows;
-		self->exp_rgn_last->expanded = false;
- 	} else { /** continue with existing region **/
-		if(TYPE == PM_REGION_EXPAND_FULL){
-			row_count_t i;
-			elem_count_t *base;
-			uint64_t old_cnt = self->dstorage.elem_count;
-			uint64_t new_cnt = old_cnt + 2*numrows;
-			if(!self->exp_rgn_last->expanded){/*** need to start expansion ***/
-				new_cnt += 2*self->exp_rgn_last->numrows; /*** need to catch up **/
-				rc = KDataBufferResize(&self->dstorage, new_cnt);
-				if(rc) return rc;
-				base = (elem_count_t *)self->dstorage.base + old_cnt;
-				for(i=0;i<self->exp_rgn_last->numrows;i++){
-					base[2*i] = self->exp_rgn_last->length;
-					base[2*i+1] = self->exp_rgn_last->data_offset;
-				}
-				self->exp_rgn_last->data_offset = old_cnt;
-				self->exp_rgn_last->expanded=true;
-			} else {
-				rc = KDataBufferResize(&self->dstorage, new_cnt);
-				if(rc) return rc;
-				base = (elem_count_t *)self->dstorage.base + self->exp_rgn_last->data_offset;
-			}
-			base += 2*self->exp_rgn_last->numrows;
-			for(i=0;i<numrows;i++){
-				base[2*i]   = length;
-				base[2*i+1] = data_offset;
-			}
-		} else if(TYPE == PM_REGION_EXPAND_SAMELEN){
-			 row_count_t i;
-                        elem_count_t *base;
-                        uint64_t old_cnt = self->dstorage.elem_count;
-                        uint64_t new_cnt = old_cnt + numrows;
-                        if(!self->exp_rgn_last->expanded){/*** need to start expansion ***/
-                                new_cnt += self->exp_rgn_last->numrows; /*** need to catch up **/
-                                rc = KDataBufferResize(&self->dstorage, new_cnt);
-                                if(rc) return rc;
-                                base = (elem_count_t *)self->dstorage.base + old_cnt;
-                                for(i=0;i<self->exp_rgn_last->numrows;i++){
-                                        base[i] = self->exp_rgn_last->data_offset;
-                                }
-                                self->exp_rgn_last->data_offset = old_cnt;
-				self->exp_rgn_last->expanded=true;
-                        } else {
-				rc = KDataBufferResize(&self->dstorage, new_cnt);
-				if(rc) return rc;
-                                base = (elem_count_t *)self->dstorage.base + self->exp_rgn_last->data_offset;
-                        }
-			base += self->exp_rgn_last->numrows;
-                        for(i=0;i<numrows;i++){
-                                base[i]   = data_offset;
-                        }
-		}
-		self->exp_rgn_last->numrows += numrows;
-	}
-	return 0;
-}
-
-rc_t PageMapPreExpandFull(const PageMap *cself, row_count_t upto) /*** mostly for use as a temporary pagemap ***/
-{
-	rc_t    rc=0;
-	if(upto > 0){
-		PageMap *self = (PageMap *)cself;
-		assert(self->exp_rgn_last == 0);
-		rc = KDataBufferResize(&self->istorage, 1); /** one and only one pagemap **/
-		if(rc) return rc;
-		
-		self->exp_rgn_last = (PageMapRegion *)self->istorage.base + self->exp_rgn_cnt;
-		self->exp_rgn_cnt = ++self->exp_dr_last;
-
-		self->exp_rgn_last->data_offset = 0;
-		rc=KDataBufferResize(&self->dstorage, upto*2);
-		if(rc) return rc;
-		self->exp_rgn_last->start_row   = 0;
-		self->exp_rgn_last->numrows = 0;
-		self->exp_rgn_last->type = PM_REGION_EXPAND_FULL;
-		self->exp_rgn_last->expanded = true;
-		self->pre_exp_row_count = upto;
-	}
-	return rc;
-}
-
-rc_t PageMapExpandFull(const PageMap *cself)
-{
-	rc_t rc;
-	PageMap *self = (PageMap *)cself;
-	if(self->leng_recs == 1){ 
-		if(   self->data_recs == 1  /* static */
-                   || self->random_access ){ 
-			return 0;
-		} else if(self->data_recs == self->row_count && !self->random_access){ /** equidistant **/
-			rc=PageMapRegionExpand(self,PM_REGION_EXPAND_EQUIDISTANT,self->row_count,self->length[0],0);
-			if(rc) return rc;
-			self->exp_data_offset_last += self->row_count*self->length[0];
-			self->exp_row_last = self->row_count ;
-			self->exp_dr_last =  self->row_count;
-			self->exp_lr_last =  1;
-			self->exp_lr_used =  self->row_count;
-			return  0;
-		}
-        }
-	return 0;
-/*** OTHER VARIANTS  ***
-	return PageMapExpand(cself, cself->row_count);
-	return PageMapExpand(cself, cself->row_count < 1024?cself->row_count:1024);
-******************/
-}
-
-rc_t PageMapExpand(const PageMap *cself, row_count_t upto)
-{
-	rc_t	rc;
+static rc_t PageMapExpand( const PageMap *cself, row_count_t upto ) {
+    if (cself->start_valid < upto) {
         PageMap *self = (PageMap *)cself;
-#define LENG_RUN_TRIGGER 8
-#define DATA_RUN_TRIGGER 8
-#define EQUI_RUN_TRIGGER 8
-	if( self->leng_recs == 1 && self->row_count > self->data_recs*12/10 && !self->random_access){ /*** Shortcut to make tight loop ***/
-
-		if(self->exp_rgn_last == 0){
-			rc = KDataBufferResize(&self->istorage, self->data_recs);
-			if(rc) return rc;
-		}
-		self->exp_rgn_last = (PageMapRegion *)self->istorage.base + self->exp_rgn_cnt;
-		while(self->exp_dr_last < self->data_recs && self->exp_row_last <= upto + 128){
-			self->exp_rgn_last->start_row   = self->exp_row_last;
-			self->exp_rgn_last->data_offset = self->length[0]*self->exp_dr_last;
-			self->exp_rgn_last->numrows = self->data_run?self->data_run[self->exp_dr_last]:1;
-			self->exp_row_last += self->data_run?self->data_run[self->exp_dr_last]:1;
-			self->exp_rgn_last->type = PM_REGION_EXPAND_SAMEDATA;
-			self->exp_rgn_last->length      = self->length[0];
-			self->exp_rgn_last->expanded = false;
-			self->exp_dr_last  ++;
-			self->exp_rgn_last ++;
-		}
-		self->exp_rgn_cnt = self->exp_dr_last;
-	} else for(;self->exp_lr_last < self->leng_recs && self->exp_dr_last < self->data_recs && self->exp_row_last <= upto + 128;){
-		row_count_t leng_run=self->leng_run[self->exp_lr_last] - self->exp_lr_used;
-		elem_count_t length =self->length[self->exp_lr_last];
-		if(leng_run == 0) {
-			self->exp_lr_last++;
-			self->exp_lr_used=0;
-			continue;
-		}
-		if(leng_run >= LENG_RUN_TRIGGER && !self->random_access){
-			while(leng_run > 0 && self->exp_row_last <= upto + 128){
-				row_count_t data_run=self->data_run?self->data_run[self->exp_dr_last]:1;
-				assert(leng_run >= data_run);/** data runs should have the same lengths **/
-				assert(data_run > 0);
-				if(data_run >= DATA_RUN_TRIGGER){
-					rc=PageMapRegionExpand(self,PM_REGION_EXPAND_SAMEDATA,data_run, length,self->exp_data_offset_last);
-					if(rc) return rc;
-					assert(leng_run >= data_run);
-					leng_run -= data_run;
-					self->exp_lr_used += data_run;
-					self->exp_row_last+= data_run; 
-					self->exp_dr_last++;
-					self->exp_data_offset_last += length;
-				} else if( /**** quick check if all remaining rows are equidistant ****/
-					     self->exp_lr_last == self->leng_recs - 1 /*** last leng_run ***/
-					  && self->row_count - self->exp_row_last == self->data_recs - self->exp_dr_last /*** all remaining data_runs are 1 ***/
-					  && self->row_count - self->exp_row_last > EQUI_RUN_TRIGGER){ 
-						assert( leng_run == self->row_count - self->exp_row_last);
-						assert(data_run == 1);
-						rc=PageMapRegionExpand(self,PM_REGION_EXPAND_EQUIDISTANT,leng_run, length,self->exp_data_offset_last);
-						if(rc) return rc;
-						self->exp_data_offset_last += leng_run*length;
-						self->exp_row_last = self->row_count ;
-						self->exp_dr_last =  self->data_recs;
-						self->exp_lr_last = self->leng_recs;
-						self->exp_lr_used += leng_run;
-						leng_run = 0;
-						
-				} else {
-					if( data_run == 1){
-						row_count_t data_run_unique;
-						for( data_run_unique =0;
-						     data_run_unique < leng_run && ((self->data_run==NULL)||self->data_run[self->exp_dr_last+data_run_unique]==1);
-						     data_run_unique++){}
-						if(data_run_unique >= EQUI_RUN_TRIGGER){
-							rc=PageMapRegionExpand(self,PM_REGION_EXPAND_EQUIDISTANT,data_run_unique,length,self->exp_data_offset_last);
-							self->exp_dr_last += data_run_unique;
-							self->exp_data_offset_last += data_run_unique*length;
-							assert(leng_run >= data_run_unique);
-							leng_run -= data_run_unique;
-						        self->exp_lr_used  += data_run_unique;
-							self->exp_row_last += data_run_unique;
-						} else while(data_run_unique){
-							rc=PageMapRegionExpand(self,PM_REGION_EXPAND_SAMELEN,data_run,length,self->exp_data_offset_last);
-							if(rc) return rc;
-							assert(leng_run > 0);
-							leng_run --;
-							self->exp_lr_used ++;
-							self->exp_row_last++;
-							self->exp_dr_last++;
-							self->exp_data_offset_last += length;
-							data_run_unique--;
-						}
-					} else {
-						rc=PageMapRegionExpand(self,PM_REGION_EXPAND_SAMELEN,data_run,length,self->exp_data_offset_last);
-						if(rc) return rc;
-						assert(leng_run >= data_run);
-						leng_run -= data_run;
-						self->exp_lr_used += data_run;
-						self->exp_row_last+= data_run;
-						self->exp_dr_last++;
-						self->exp_data_offset_last += length;
-					}
-				}
-			}
-			assert(self->exp_row_last <= self->row_count);
-		} else {
-			while(leng_run > 0){
-				row_count_t data_run=cself->data_run?cself->data_run[self->exp_dr_last]:1;
-				assert(leng_run >= data_run);/** data runs should have the same lengths **/
-				if(self->random_access){
-					rc=PageMapRegionExpand(self,PM_REGION_EXPAND_FULL,data_run,length,self->data_offset[self->exp_row_last]);
-					self->exp_data_offset_last  = self->data_offset[self->exp_row_last] + length;
-				} else {
-					rc=PageMapRegionExpand(self,PM_REGION_EXPAND_FULL,data_run,length,self->exp_data_offset_last);
-					self->exp_data_offset_last += length;
-				}
-				if(rc) return rc;
-				self->exp_row_last += data_run;
-				assert(leng_run >= data_run);
-				leng_run -= data_run;
-				self->exp_lr_used += data_run;
-				self->exp_dr_last++;
-			}
-		}
-	}
-	return 0;
-}
-
-static rc_t PageMapFindRegion(const PageMap *cself,uint64_t row,PageMapRegion **pmr)
-{
-	/*** in PageMap rows are 0-based **/
-	rc_t	rc;
-	pm_size_t left,right,i_rgn;
-	if(row >= cself->row_count )
-		return  RC (rcVDB, rcPagemap, rcSearching, rcRow, rcNotFound );
-	if(cself -> exp_row_last <= row){
-		rc=PageMapExpand(cself,row);
-		if(rc) return rc;
-	}
-
-	if(cself->exp_rgn_cnt > 1){
-		i_rgn = cself->i_rgn_last;
-		left = 0;
-		right = cself->exp_rgn_cnt - 1;
-		while(right > left){
-			PageMapRegion*  rgn=  (PageMapRegion*)cself->istorage.base + i_rgn;
-			assert(i_rgn < cself->exp_rgn_cnt);
-			if(row < rgn->start_row){
-				right = i_rgn-1;
-				i_rgn  = (left + right) / 2;
-			} else if(row == rgn->start_row + rgn->numrows){ /*** special case for positive sequentual scans ***/
-				i_rgn++;
-			} else if(row > rgn->start_row + rgn->numrows){
-				left = i_rgn+1;
-				i_rgn =  (left + right + 1) / 2;
-			} else {
-				break;
-			}
-		}
-	} else {
-		i_rgn = 0;
-	}
-	{
-		PageMap *self = (PageMap *)cself;
-		self->i_rgn_last = i_rgn;
-		self->rgn_last = (PageMapRegion*)self->istorage.base+cself->i_rgn_last;
-	}
-	assert(cself->rgn_last->start_row <= row);
-	assert(cself->rgn_last->start_row + cself->rgn_last->numrows > row);
-	if(pmr) *pmr=(PageMapRegion*)cself->istorage.base + i_rgn;
-	return 0;
-}
-
-static rc_t PageMapRegionGetData(const PageMapRegion *cself,const elem_count_t *exp_base,uint64_t row,uint32_t * data_offset,uint32_t * data_length,uint32_t * repeat_count)
-{
-	if(row < cself->start_row || row >= cself->start_row + cself->numrows)
-		return  RC (rcVDB, rcPagemap, rcSearching, rcRow, rcNotFound );
-
-	if(data_offset != NULL || data_length != NULL || repeat_count != NULL){
-		if(!cself->expanded){
-			if(data_length) *data_length=cself->length;
-			if(data_offset){
-				*data_offset=cself->data_offset;
-				if(cself->type == PM_REGION_EXPAND_EQUIDISTANT){
-					*data_offset += cself->length * (row - cself->start_row);
-				}
-			}
-			if(repeat_count) {
-				if(cself->type == PM_REGION_EXPAND_EQUIDISTANT) *repeat_count=1;
-				else *repeat_count = cself->numrows + cself->start_row - row;
-			}
-		} else switch(cself->type){
-			case PM_REGION_EXPAND_FULL:
-				{
-					row_count_t  i = row - cself->start_row;
-					exp_base += cself->data_offset;
-					if(data_length)  *data_length = exp_base[2*i];
-					if(data_offset)  *data_offset = exp_base[2*i+1];
-					if(repeat_count){
-						int j;
-						for(j=i+1;   j<cself->numrows
-							  && exp_base[2*i]   == exp_base[2*j]
-							  && exp_base[2*i+1] == exp_base[2*j+1];j++){}
-						*repeat_count = j-i;
-					}
-				}
-				break;
-			case PM_REGION_EXPAND_SAMELEN:
-				if(data_length) *data_length=cself->length;
-				if(data_offset || repeat_count){
-					row_count_t  i = row - cself->start_row;
-					exp_base += cself->data_offset;
-					if(data_offset) *data_offset = exp_base[i];
-					if(repeat_count){
-						int j;
-						for(j=i+1;j<cself->numrows && exp_base[i] == exp_base[j];j++){}
-						*repeat_count = j-i;
-					}
-				}
-				break;
-			default: /*** should not happen to anything but 2 above **/
-				return RC (rcVDB, rcPagemap, rcSearching, rcData, rcInconsistent ); 
-		}
-	}
-	return 0;
-}
-
-/*** This is a heavy-weight function which gets data by integration all the time - useful for debugging ****/
-static rc_t PageMapGetData_HW(const PageMap *cself,uint64_t row,uint32_t * data_offset,uint32_t * data_length,uint32_t * repeat_count)
-{
-	if(row >= cself->row_count)
-		return  RC (rcVDB, rcPagemap, rcSearching, rcRow, rcNotFound );
-	if(data_offset != NULL || data_length != NULL || repeat_count != NULL){
-		uint64_t i,j,r;
-		uint32_t dto,dtl,dtr;
-		uint32_t leng_run,data_run;
-		r=dto=i=j=0;
-		leng_run=cself->leng_run[0];
-		while(1){
-			dtl  = cself->length[i];
-			data_run=cself->data_run?cself->data_run[j]:1;
-			j++;
-			r+= data_run;
-			if(r > row){
-				dtr = r - row;
-				 break;
-			}
-			dto += dtl;
-			leng_run -= data_run;
-			if(leng_run == 0){
-				i++;
-				leng_run=cself->leng_run[i];
-			}
-		}
-		if(data_length)   *data_length=dtl;
-		if(data_offset)   *data_offset=dto;
-		if(repeat_count)  *repeat_count=dtr;
-	}
-	return 0;
-}
-/*** another function to help debugging ***/
-static int DEBUG_PageMapPrintSum(const PageMap *pm, uint32_t row)
-{
-	int i,r;
-	for(i=0,r=row; i < pm->data_recs && r > 0;r-=pm->data_run?pm->data_run[i]:1,i++){}
-	printf("Data recs= <%d>, rows_left = <%d>\n",i,r);
-	for(i=0,r=row; i < pm->leng_recs && r >0;r-=pm->leng_run[i++]){}
-	printf("Leng recs= <%d>, rows_left = <%d>\n",i,r);
-	return 0;
-}
-rc_t PageMapFindRow(const PageMap *cself,uint64_t row,uint32_t * data_offset,uint32_t * data_length,uint32_t * repeat_count)
-{
-	rc_t	rc=0;
-	PageMapRegion *pmr;
-
-	if(cself->data_recs == 1){ /** static **/
-		if(repeat_count) *repeat_count = UINT32_MAX;
-		if(data_offset)  *data_offset = 0;
-		if(data_length)  *data_length = cself->length[0];
-		return 0;
+        elem_count_t *offset;
+        row_count_t *repeat;
+        pm_size_t i;
+        pm_size_t j;
+        pm_size_t m;
+        
+        if (cself->estorage.elem_count < cself->row_count) {
+            rc_t rc;
+            
+            self->exp_length_last = self->exp_offset_last = self->exp_offset_next = 0;
+            self->start_valid = 0;
+            
+            self->estorage.elem_bits = 32 * 3;
+            rc = KDataBufferResize(&self->estorage, cself->row_count * 2);
+            if (rc) return rc;
+            
+            self->exp_offset = self->estorage.base;
+            self->exp_repeat = &self->exp_offset[self->estorage.elem_count];
+            self->exp_length = &self->exp_repeat[self->estorage.elem_count];
         }
-	if(cself->random_access && cself->leng_recs == 1){
-		if(row >= cself->data_recs)
-			return RC(rcVDB, rcPagemap, rcAccessing, rcRow, rcOutofrange);
-		if(data_length)  *data_length = cself->length[0];
-		if(data_offset)  *data_offset =  cself->data_offset[row];
-		if(repeat_count){
-			uint64_t i;
-			for( i=row+1, repeat_count[0]=1; i < cself->data_recs &&  cself->data_offset[i] == cself->data_offset[row]; i++, repeat_count[0]++ ){}
-		}
-		return 0;
-	}
-
-	rc = PageMapFindRegion(cself,row,&pmr);
-	if(rc) return rc;
-
-        rc = PageMapRegionGetData(pmr,cself->dstorage.base,row,data_offset,data_length,repeat_count);
-	if(rc) return rc;
-
-#if _HEAVY_PAGEMAP_DEBUGGING
-	{
-		uint32_t dto,dtl,dtr;
-		rc = PageMapGetData_HW(cself,row,&dto,&dtl,&dtr);
-		assert(rc == 0);
-		if(data_length) assert(dtl==*data_length);
-		if(data_offset) assert(dto==*data_offset);
-		if(repeat_count)  assert(dtr==*repeat_count);
-	}
-#endif
-	return 0;
+        offset = self->exp_offset;
+        repeat = self->exp_repeat;
+        
+        if (cself->leng_recs > 1) {
+            elem_count_t *length = self->exp_length;
+            elem_count_t n = cself->exp_offset_next;
+            
+            j = cself->start_valid;
+            for (i = cself->exp_length_last; i != cself->leng_recs; ++i) {
+                for (m = 0; m != cself->leng_run[i]; ++m, ++j) {
+                    length[j] = cself->length[i];
+                }
+            }
+            
+            j = cself->start_valid;
+            for (i = cself->exp_offset_last; i != cself->data_recs; ++i) {
+                elem_count_t temp = n;
+                
+                n += length[j];
+                for (m = 0; m != cself->data_run[i]; ++m, ++j) {
+                    offset[j] = temp;
+                    repeat[j] = cself->data_run[i] - m;
+                }
+            }
+            self->exp_offset_next = n; /* where to start next time */
+        }
+        else {
+            j = cself->start_valid;
+            for (i = cself->exp_offset_last; i != cself->data_recs; ++i) {
+                for (m = 0; m != cself->data_run[i]; ++m, ++j) {
+                    offset[j] = i * cself->length[0];
+                    repeat[j] = cself->data_run[i] - m;
+                }
+            }
+        }
+        self->exp_length_last = cself->leng_recs; /* where to start next time */
+        self->exp_offset_last = cself->data_recs; /* where to start next time */
+        
+        self->start_valid = j;
+    }
+    return 0;
 }
 
 rc_t PageMapNewIterator(const PageMap *self, PageMapIterator *lhs, uint64_t first_row, uint64_t num_rows)
 {
     rc_t rc;
 
-    if (first_row + num_rows > self->row_count)
-        num_rows = self->row_count - first_row;
+    if (num_rows > self->row_count)
+        num_rows = self->row_count;
 
 #if _DEBUGGING
     if (self->data_recs > 1) {
@@ -529,96 +185,45 @@ rc_t PageMapNewIterator(const PageMap *self, PageMapIterator *lhs, uint64_t firs
     
     memset(lhs, 0, sizeof(*lhs));
 
-#if _HEAVY_PAGEMAP_DEBUGGING
-    lhs->parent = self;
-#endif
-
-    lhs->last_row = first_row + num_rows;
+    lhs->end_row = first_row + num_rows;
     lhs->cur_row = first_row;
-    if(self->data_recs == 1){
-	lhs->repeat_count  = (num_rows < UINT32_MAX)?num_rows:UINT32_MAX;
-	lhs->static_datalen = self->length[0];
-	return 0;
-    }
-    if(self->random_access && self->leng_recs == 1 && first_row < self->row_count){ /** simple random access - no explosion needed **/
-	lhs->static_datalen = self->length[0];
-	lhs->exp_base = &self->data_offset;
-	if(lhs->last_row > self->row_count) lhs->last_row = self->row_count;
-	return 0;
-    }
-    if( self->exp_row_last < lhs->last_row){
-	    rc = PageMapExpand(self,lhs->last_row-1);
-	    if(rc) return rc;
+    
+    lhs->length = self->length;
+    
+    if (self->data_recs == 1) {
+        lhs->variant = pmivConstant;
+        
+        return 0;
     }
-    rc = PageMapFindRow(self,first_row,NULL,NULL,NULL);
-    if(rc) return rc;
-    lhs->rgns    = (PageMapRegion**) &self->istorage.base;
-    lhs->exp_base = (elem_count_t**) &self->dstorage.base;
-    lhs->cur_rgn  = self->i_rgn_last;
-    lhs->cur_rgn_row = lhs->cur_row - (*lhs->rgns)[self->i_rgn_last].start_row;
-    assert(lhs->cur_rgn_row < (*lhs->rgns)[self->i_rgn_last].numrows);
-    return  0;
-}
-
-static PageMap *new_PageMap(void) {
-
-    PageMap *y;
-    y = malloc(sizeof(*y));
-    if (y) {
-	memset(y,0,sizeof(*y));
-        KRefcountInit(&y->refcount, 1, "PageMap", "new", "");
-	y->istorage.elem_bits = sizeof(PageMapRegion)*8;
-	y->dstorage.elem_bits = sizeof(elem_count_t)*8;
+    if (self->leng_recs == 1 && self->data_recs == self->row_count) {
+        lhs->variant = pmivVersion1;
+        
+        return 0;
     }
-    return y;
-}
 
-static PageMap *new_StaticPageMap(unsigned length, unsigned data) {
-    union {
-        PageMap pm;
-        row_count_t rcnt;
-        elem_count_t ecnt;
-    } *y;
-    size_t const sz = sizeof(*y)
-                    + sizeof(y->pm.length[0]) * length
-                    + sizeof(y->pm.leng_run[0]) * length
-                    + sizeof(y->pm.data_run[0]) * data;
-    
-    y = malloc(sz);
-    if (y) {
-#if PAGEMAP_STATISTICS
-        ++pm_stats.createStatic;
-        ++pm_stats.alive;
-        if (pm_stats.maxAlive < pm_stats.alive)
-            pm_stats.maxAlive = pm_stats.alive;
-        pm_stats.currentFootprint += sz;
-        if (pm_stats.maxFootprint < pm_stats.currentFootprint)
-            pm_stats.maxFootprint = pm_stats.currentFootprint;
-#endif
-        memset(&y->pm, 0, sizeof(y->pm));
-        KRefcountInit(&y->pm.refcount, 1, "PageMap", "new_Static", "");
-        y->pm.length = (elem_count_t *)&y[1];
-        y->pm.leng_run = (row_count_t *)&y->pm.length[length];
-        y->pm.data_run = &y->pm.leng_run[length];
-        y->pm.reserve_leng = length;
-        y->pm.reserve_data = data;
-	y->pm.istorage.elem_bits = sizeof(PageMapRegion)*8;
-	y->pm.dstorage.elem_bits = sizeof(elem_count_t)*8;
+    rc = PageMapExpand(self, lhs->end_row);
+    if (rc == 0) {
+        lhs->repeat = self->exp_repeat;
+        lhs->offset = self->exp_offset;
+        if (self->leng_recs == 1) {
+            lhs->variant = pmivFixedRowLength;
+        }
+        else {
+            lhs->variant = pmivFull;
+            lhs->length = self->exp_length;
+        }
     }
-    return &y->pm;
+    return rc;
 }
 
 static
-rc_t PageMapGrow(PageMap *self, uint32_t new_reserve_leng, uint32_t new_reserve_data) {
+rc_t PageMapGrow( PageMap *self, uint32_t new_reserve_leng, uint32_t new_reserve_data ) {
     uint32_t sz;
     PageMap temp = *self;
     uint32_t reserve_data = self->reserve_data;
     uint32_t reserve_leng = self->reserve_leng;
     rc_t rc;
-
-#if PAGEMAP_STATISTICS
-    ++pm_stats.grows;
-#endif
+    
     if (new_reserve_leng > (1UL << 31) || new_reserve_data > (1UL << 31))
         return RC(rcVDB, rcPagemap, rcAllocating, rcParam, rcExcessive);
     
@@ -629,148 +234,74 @@ rc_t PageMapGrow(PageMap *self, uint32_t new_reserve_leng, uint32_t new_reserve_
 #define MIN_KBUF_RESERVE_SIZE 256  
     while (reserve_leng < new_reserve_leng)
         reserve_leng <<= 1;
-    if (reserve_leng < MIN_KBUF_RESERVE_SIZE) reserve_leng = MIN_KBUF_RESERVE_SIZE;
+    if ( reserve_leng < MIN_KBUF_RESERVE_SIZE) reserve_leng = MIN_KBUF_RESERVE_SIZE;
     while (reserve_data < new_reserve_data)
         reserve_data <<= 1;
-    if (reserve_data < MIN_KBUF_RESERVE_SIZE) reserve_data = MIN_KBUF_RESERVE_SIZE;
+    if ( reserve_data < MIN_KBUF_RESERVE_SIZE) reserve_data = MIN_KBUF_RESERVE_SIZE;
 
     sz = reserve_leng * 2 + reserve_data;
-#if PAGEMAP_STATISTICS
-    pm_stats.currentFootprint -= KDataBufferMemorySize(&self->estorage);
-#endif
+    KDataBufferWhack(&self->estorage);
     {
         KDataBuffer new_buffer;
         
         rc = KDataBufferMake(&new_buffer, 8 * sizeof(uint32_t), sz);
         if (rc)
             return rc;
-#if PAGEMAP_STATISTICS
-        pm_stats.currentFootprint += KDataBufferMemorySize(&self->estorage);
-        if (pm_stats.maxFootprint < pm_stats.currentFootprint)
-            pm_stats.maxFootprint = pm_stats.currentFootprint;
-#endif
         self->cstorage = new_buffer;
     }
+    self->reserve_leng = reserve_leng;
+    self->reserve_data = reserve_data;
     self->length = self->cstorage.base;
     self->leng_run = self->length + reserve_leng;
     self->data_run = self->leng_run + reserve_leng;
+    self->exp_length = NULL;
+    self->exp_offset = NULL;
     self->start_valid = 0;
     
     if (self->leng_recs > 0 && temp.length != NULL) {
-        memcpy(self->length  , temp.length  , self->reserve_leng * sizeof(uint32_t));
-        memcpy(self->leng_run, temp.leng_run, self->reserve_leng * sizeof(uint32_t));
+        memcpy(self->length  , temp.length  , self->leng_recs * sizeof(uint32_t));
+        memcpy(self->leng_run, temp.leng_run, self->leng_recs * sizeof(uint32_t));
     }
     if (self->data_recs > 0 && temp.data_run != NULL)
-        memcpy(self->data_run, temp.data_run, self->reserve_data * sizeof(uint32_t));
+        memcpy(self->data_run, temp.data_run, self->data_recs * sizeof(uint32_t));
 
-    self->reserve_leng = reserve_leng;
-    self->reserve_data = reserve_data;
-#if PAGEMAP_STATISTICS
-    pm_stats.currentWaste += (self->reserve_data - self->data_recs) * sizeof(self->data_run[0]) +
-                             (self->reserve_leng - self->leng_recs) * (sizeof(self->leng_run[0]) + sizeof(self->length[0]));
-    if (pm_stats.maxWaste < pm_stats.currentWaste)
-        pm_stats.maxWaste = pm_stats.currentWaste;
-#endif
     KDataBufferWhack(&temp.cstorage);
 
     return 0;
 }
 
-rc_t PageMapNew(PageMap **lhs, uint32_t reserve) {
-    PageMap *y = new_PageMap();
+rc_t PageMapNew ( PageMap **lhs, uint32_t reserve ) {
+    PageMap *y;
 
+    y = calloc(1, sizeof(*y));
     if (y == NULL)
         return RC(rcVDB, rcPagemap, rcConstructing, rcMemory, rcExhausted);
 
+    KRefcountInit(&y->refcount, 1, "PageMap", "new", "");
     if (reserve > 0) {
         rc_t rc = PageMapGrow(y, reserve, reserve);
         if (rc) {
             free(y);
             return rc;
         }
-#if PAGEMAP_STATISTICS
-        --pm_stats.grows;
-#endif
     }
     *lhs = y;
-#if PAGEMAP_STATISTICS
-    ++pm_stats.create;
-    ++pm_stats.alive;
-    if (pm_stats.maxAlive < pm_stats.alive)
-        pm_stats.maxAlive = pm_stats.alive;
-    pm_stats.currentFootprint += sizeof(*y);
-    if (pm_stats.maxFootprint < pm_stats.currentFootprint)
-        pm_stats.maxFootprint = pm_stats.currentFootprint;
-#endif
     return 0;
 }
 
-rc_t PageMapToRandomAccess(PageMap **rslt, PageMap * src,uint32_t *data_offset) /** data_offset should have dimension of data_run ***/
-{
-	rc_t rc;
-	bool simple = (src->row_count == src->data_recs);
-	PageMap *dst;
-	assert(src->row_count >= src->leng_recs);
-	rc = PageMapNew(&dst, 0);
-	if(rc == 0){
-		dst->leng_recs=src->leng_recs;
-		dst->row_count=src->row_count;
-		rc = KDataBufferMake(&dst->cstorage, 8 * sizeof(uint32_t), 2*dst->leng_recs+(data_offset?dst->row_count:0));
-		if(rc == 0){
-			dst->length = dst->cstorage.base;
-			dst->leng_run    = dst->length   + dst->leng_recs;
-			dst->data_recs = src->row_count;
-			memcpy(dst->length,  src->length,  sizeof(uint32_t)*dst->leng_recs);
-			memcpy(dst->leng_run,src->leng_run,sizeof(uint32_t)*dst->leng_recs);
-			if(data_offset){
-				dst->data_offset = dst->leng_run + dst->leng_recs;
-				if(simple){
-					memcpy(dst->data_offset,data_offset,sizeof(uint32_t)*dst->row_count);
-				} else {
-					uint32_t i,j;
-					for(i=j=0;i<src->data_recs;i++){
-						elem_count_t data_len=src->data_run[i];
-						while(data_len > 0){
-							assert(j < src->row_count);
-							dst->data_offset[j++] = data_offset[i];
-							data_len--;
-						}
-					}
-				}
-				dst->random_access=true;
-			} 
-			dst->reserve_leng = dst->leng_recs;
-			dst->reserve_data = dst->row_count;
-			dst->start_valid = dst->row_count;
-			*rslt = dst;
-			return 0;
-		}
-		PageMapRelease(dst);
-	}
-	return rc;
-}
-
-
-rc_t PageMapNewFixedRowLength(PageMap **lhs, uint64_t row_count, uint64_t row_len) {
+rc_t PageMapNewFixedRowLength ( PageMap **lhs, uint64_t row_count, uint64_t row_len ) {
     PageMap *y;
     rc_t rc;
+    unsigned i;
 
     if (row_count >> 32 != 0 || row_len >> 32 != 0)
         return RC(rcVDB, rcPagemap, rcConstructing, rcParam, rcTooBig);
     
     rc = PageMapNew(&y, 0);
-#if PAGEMAP_STATISTICS
-    ++pm_stats.createFixedRow;
-    --pm_stats.create;
-#endif
     if (rc)
         return rc;
     rc = PageMapGrow(y, 1, (uint32_t)row_count);
-#if PAGEMAP_STATISTICS
-    --pm_stats.grows;
-#endif
     if (rc == 0) {
-	int i;
         *lhs = y;
         y->length[0] = (uint32_t)row_len;
         y->leng_run[0] = (uint32_t)row_count;
@@ -780,14 +311,13 @@ rc_t PageMapNewFixedRowLength(PageMap **lhs, uint64_t row_count, uint64_t row_le
         for (i = 0; i != (uint32_t)row_count; ++i) {
             y->data_run[i] = 1;
         }
-
     }
     if (rc)
         PageMapRelease(y);
     return rc;
 }
 
-rc_t PageMapNewSingle(PageMap **lhs, uint64_t row_count, uint64_t row_len) {
+rc_t PageMapNewSingle ( PageMap **lhs, uint64_t row_count, uint64_t row_len ) {
     PageMap *y;
     rc_t rc;
     
@@ -796,10 +326,6 @@ rc_t PageMapNewSingle(PageMap **lhs, uint64_t row_count, uint64_t row_len) {
     
     rc = PageMapNewFixedRowLength(&y, 1, row_len);
     if (rc == 0) {
-#if PAGEMAP_STATISTICS
-        ++pm_stats.createSingle;
-        --pm_stats.createFixedRow;
-#endif
         y->row_count = y->data_run[0] = y->leng_run[0] = (uint32_t)row_count;
         *lhs = y;
     }
@@ -810,7 +336,15 @@ bool PageMapHasRows(const PageMap *self) {
     return self->data_recs > 0;
 }
 
-uint32_t PageMapFixedRowLength (const PageMap *self) {
+uint32_t PageMapFastRowCount ( const PageMap *self ) {
+    uint32_t rslt = 0;
+
+    if (self->data_recs == 1)
+        rslt = self->data_run[0];
+    return rslt;
+}
+
+uint32_t PageMapFixedRowLength ( const PageMap *self ) {
     uint32_t rslt = 0;
     
     if (self->leng_recs == 1)
@@ -818,31 +352,22 @@ uint32_t PageMapFixedRowLength (const PageMap *self) {
     return rslt;
 }
 
-rc_t PageMapRowLengthRange (const PageMap *self,elem_count_t *min,elem_count_t *max)
-{
-    int i;
-    *min = *max = self->length[0];
-    for(i=1;i<self->leng_recs;i++){
-	if      (self->length[i] < *min) *min = self->length[i];
-	else if (self->length[i] > *max) *max = self->length[i];
-    }
-    return 0;
-}
-
-
-uint32_t PageMapHasSimpleStructure(const PageMap *self) {
+uint32_t PageMapHasSimpleStructure( const PageMap *self ) {
     uint32_t rslt = PageMapFixedRowLength(self);
+    unsigned i;
     
     if (rslt == 0)
         return rslt;
 
-    if(self->data_recs != self->row_count) return 0;
-
+    for (i = 0; i != self->data_recs; ++i) {
+        if (self->data_run[i] != 1)
+            return 0;
+    }
     return rslt;
 }
 
 #if 0
-static bool PageMapValidate(const PageMap *cself) {
+static bool PageMapValidate( const PageMap *cself ) {
     unsigned i;
     uint32_t n;
     uint32_t m;
@@ -854,7 +379,7 @@ static bool PageMapValidate(const PageMap *cself) {
 }
 
 static
-rc_t PageMapAppendRun(PageMap *self, uint32_t run_length, uint32_t row_length) {
+rc_t PageMapAppendRun( PageMap *self, uint32_t run_length, uint32_t row_length ) {
     return -1;
 }
 #endif
@@ -876,11 +401,6 @@ rc_t PageMapAppendRows(PageMap *self, uint64_t row_length, uint64_t run_length,
         same_data = false;
         leng_cur = self->leng_recs;
         ++self->leng_recs;
-
-#if PAGEMAP_STATISTICS
-        pm_stats.currentWaste -= sizeof(self->leng_run[0]) + sizeof(self->length[0]);
-#endif
-        
         if (self->leng_recs >= self->reserve_leng) {
             rc = PageMapGrow(self, self->leng_recs, 0);
             if (rc)
@@ -894,11 +414,6 @@ rc_t PageMapAppendRows(PageMap *self, uint64_t row_length, uint64_t run_length,
     else {
         data_cur = self->data_recs;
         ++self->data_recs;
-        
-#if PAGEMAP_STATISTICS
-        pm_stats.currentWaste -= sizeof(self->data_run[0]);
-#endif
-        
         if (self->data_recs >= self->reserve_data) {
             rc = PageMapGrow(self, 0, self->data_recs);
             if (rc)
@@ -906,28 +421,6 @@ rc_t PageMapAppendRows(PageMap *self, uint64_t row_length, uint64_t run_length,
         }
         self->data_run[data_cur] = run_length;
     }
-    if(self->row_count < self->pre_exp_row_count){
-	int i;
-	elem_count_t *exp_base = self->dstorage.base;
-	elem_count_t data_offset;
-	if(same_data){
-		if(self->row_count == 0){
-			data_offset = 0;
-		} else {
-			data_offset = exp_base[2*self->row_count-1];
-		}
-	} else {
-		data_offset = self->exp_data_offset_last;
-		self->exp_data_offset_last += row_length;
-	}
-	for(i=self->row_count;i<run_length+self->row_count;i++){
-		exp_base[2*i]  =  row_length;
-		exp_base[2*i+1]=  data_offset;
-	}
-	self->exp_row_last += run_length;
-	self->exp_rgn_last->numrows += run_length;
-	
-    }
     self->row_count += run_length;
     return 0;
 }
@@ -956,105 +449,37 @@ static rc_t serialize_lengths(
     return rc;
 }
 
-#if 0
-
 static rc_t deserialize_lengths(
                                 uint32_t run[],
                                 unsigned runs,
-                                uint8_t const src[],
-                                unsigned ssize,
+                                const uint8_t *src,
+                                uint64_t ssize,
                                 uint64_t *consumed
 ) {
+    rc_t rc = 0;
     unsigned i;
-    unsigned j;
+    uint64_t j;
     uint64_t n;
     
     *consumed = 0;
-    for (i = 0, j = 0; i != runs; ++i, j += (unsigned)n) {
+    for (i = 0, j = 0; i != runs; ++i, j += n) {
         uint64_t val;
-        rc_t rc = vlen_decodeU1(&val, src + j, ssize - j, &n);
         
-        if (rc) return rc;
+        rc = vlen_decodeU1(&val, src + j, ssize - j, &n);
+        if (rc)
+            break;
         run[i] = (uint32_t)val;
     }
-    *consumed = j;
-    return 0;
-}
-#else
-
-#if _ARCH_BITS == 32
-#define FLAG_64 0x8080808080808080ULL
-#define VAL_64  0x7F7F7F7F7F7F7F7FULL
-#else
-#define FLAG_64 0x8080808080808080UL
-#define VAL_64  0x7F7F7F7F7F7F7F7FUL
-#endif
-
-static rc_t deserialize_lengths(
-                                uint32_t run[],
-                                unsigned runs,
-                                uint8_t const src[],
-                                unsigned ssize,
-                                uint64_t *consumed
-) {
-    uint8_t	to_align = 16 - (((long)src)&15);/** alignmentto 16 bytes will make optimizer and cpu happy. don't care about loss in cast - we need the lowest byte **/
-    int		si=0;/**source index **/
-    int		di=0;/** destination index **/
-    int		pcnt = (ssize - to_align )/8; 
-
-    memset(run,0,runs*sizeof(*run));
-    if(pcnt){ /** does it make sense at all ***/
-	uint64_t    *ptr=(uint64_t*) (src + to_align);
-	int         pi;
-	
-	for(;si<to_align && di < runs ;si++){ /** align the pointer first **/
-		if(((int8_t)src[si]) < 0) {
-			run[di] += src[si] & 0x7F;
-			run[di] <<= 7;
-		} else {
-			run[di++] += src[si];
-		}
-	}	
-	assert((((long)ptr)&15) == 0);
-	for(pi = 0; pi < pcnt && di < runs; pi++){ /** do bulk staff **/
-		uint64_t flag = ptr[pi] & FLAG_64;
-		uint64_t  val = ptr[pi] & VAL_64;
-		int  i;
-		int8_t     *cf = (int8_t*)&flag;
-		uint8_t	   *cv = (uint8_t*)&val;
-		for(i=0;i<8 && di < runs;i++){ /** no endian problem - casting of ptr matches casting of flag & val **/
-			si++;
-			run[di] += cv[i];
-			if(cf[i] < 0){
-				run[di] <<= 7;
-			} else {
-				di++;
-			}
-		}
-	}
-    }
-   
-    for(;si < ssize && di < runs;si++){/** deal with tails **/
-	if(((int8_t)src[si]) < 0) {
-		run[di] += src[si] & 0x7F;
-		run[di] <<= 7;
-	} else {
-		run[di++] += src[si];
-	}
-    }
-    *consumed = si;
-    return 0;
+    if (rc == 0)
+        *consumed = j;
+    return rc;
 }
 
-#endif
-
 static
-rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
+rc_t serialize( const PageMap *self, KDataBuffer *buffer, uint64_t *size ) {
 /*
  variant 0: fixed row length, data_run[..] == 1
     vlencode(row_length)
- version 2: same as 0 but random access
-    adds serialize(data_offset)
 
  variant 1: fixed row length, variable data_run
     vlencode(row_length)
@@ -1065,8 +490,6 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
     vlencode(leng_recs)
     serialize(length)
     serialize(leng_run)
- versuion 2: same as 2 but random access
-    adds serialize(data_offset)
  
  variant 3: variable row length, variable data_run
     vlencode(leng_recs)
@@ -1075,21 +498,26 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
     serialize(leng_run)
     serialize(data_run)
 
-  
-
  */
-    uint8_t version = self->random_access?2:1;
+    uint8_t version = 1;
     uint8_t variant = 0;
     uint8_t header;
     rc_t rc = 0;
+    bool simple_data = true;
+    unsigned i;
     uint64_t sz;
     KDataBuffer compress;
 
-
-
     memset(&compress, 0, sizeof(compress));
-
-    variant = ( (self->data_recs == self->row_count)? 0 : 1) | ((self->leng_recs == 1 ? 0 : 1) << 1);
+    
+    for (i = 0; i != self->data_recs; ++i) {
+        if (self->data_run[i] != 1) {
+            simple_data = false;
+            break;
+        }
+    }
+    
+    variant = (simple_data ? 0 : 1) | ((self->leng_recs == 1 ? 0 : 1) << 1);
     header = (version << 2) | variant;
     switch (variant) {
     case 0:
@@ -1097,14 +525,7 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
         if (rc == 0) {
             ((uint8_t *)buffer->base)[0] = header;
             vlen_encodeU1(((uint8_t *)buffer->base) + 1, 5, &sz, self->length[0]);
-	    buffer->elem_count = sz + 1;
-	    if(self->random_access){
-		rc = KDataBufferMakeBytes(&compress, 5*self->row_count);
-		if(rc == 0){
-			rc = serialize_lengths(&compress, 0, self->data_offset, self->row_count, &sz);
-			compress.elem_count = sz;
-		}
-	    }
+            buffer->elem_count = sz + 1;
         }
         break;
     case 1:
@@ -1126,7 +547,7 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
     case 2:
         rc = KDataBufferResize(buffer, 6);
         if (rc == 0) {
-            rc = KDataBufferMakeBytes(&compress, 10 * self->leng_recs + (self->random_access?5*self->row_count:0));
+            rc = KDataBufferMakeBytes(&compress, 10 * self->leng_recs);
             if (rc == 0) {
                 ((uint8_t *)buffer->base)[0] = header;
                 vlen_encodeU1(((uint8_t *)buffer->base) + 1, 5, &sz, self->leng_recs);
@@ -1135,16 +556,12 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
                 rc = serialize_lengths(&compress, 0, self->length, self->leng_recs, &sz);
                 compress.elem_count = sz;
                 if (rc == 0) {
-                    rc = serialize_lengths(&compress, compress.elem_count, self->leng_run, self->leng_recs, &sz);
+                    rc = serialize_lengths(&compress, sz, self->leng_run, self->leng_recs, &sz);
                     compress.elem_count += sz;
-		    if(self->random_access && rc == 0) {
-                        rc = serialize_lengths(&compress, compress.elem_count, self->data_offset, self->row_count, &sz);
-                        compress.elem_count += sz;
-		    }
                 }
             }
         }
-	break;
+        break;
     case 3:
         rc = KDataBufferResize(buffer, 11);
         if (rc == 0) {
@@ -1194,10 +611,18 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
                 zr = deflateInit2(&zs, Z_BEST_SPEED, Z_DEFLATED, -15, 9, Z_DEFAULT_STRATEGY);
                 switch (zr) {
                 case Z_OK:
-                    for (; ;) {
+                    break;
+                case Z_MEM_ERROR:
+                    rc = RC(rcVDB, rcPagemap, rcWriting, rcMemory, rcExhausted);
+                    break;
+                default:
+                    rc = RC(rcVDB, rcPagemap, rcWriting, rcParam, rcInvalid);
+                }
+                if (rc == 0) {
+                    for ( ; ; ) {
                         zr = deflate(&zs, Z_FINISH);
                         if (zr == Z_OK) {
-                            unsigned const offset = (unsigned)(zs.next_out - (Bytef *)buffer->base);
+                            unsigned offset = (unsigned int)( zs.next_out - (Bytef *)buffer->base );
                             rc = KDataBufferResize(buffer, buffer->elem_count * 2);
                             if (rc)
                                 break;
@@ -1214,12 +639,6 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
                         }
                     }
                     deflateEnd(&zs);
-                    break;
-                case Z_MEM_ERROR:
-                    rc = RC(rcVDB, rcPagemap, rcWriting, rcMemory, rcExhausted);
-                    break;
-                default:
-                    rc = RC(rcVDB, rcPagemap, rcWriting, rcParam, rcInvalid);
                 }
             }
         }
@@ -1231,7 +650,7 @@ rc_t serialize(const PageMap *self, KDataBuffer *buffer, uint64_t *size) {
     return rc;
 }
 
-rc_t PageMapSerialize (const PageMap *self, KDataBuffer *buffer, uint64_t offset, uint64_t *size) {
+rc_t PageMapSerialize ( const PageMap *self, KDataBuffer *buffer, uint64_t offset, uint64_t *size ) {
     rc_t rc;
     KDataBuffer temp;
 
@@ -1255,145 +674,133 @@ rc_t PageMapSerialize (const PageMap *self, KDataBuffer *buffer, uint64_t offset
 }
 
 static
-rc_t PageMapDeserialize_v0(PageMap **lhs, uint8_t const src[], unsigned ssize, row_count_t row_count) {
-    uint8_t variant = src[0] & 3;
-    uint8_t version =src[0] >> 2;
-    unsigned cur = 1;
-    uint64_t row_len;
-    uint64_t data_recs;
-    uint64_t leng_recs;
+rc_t PageMapDeserialize_v0( PageMap **lhs, const uint8_t *src, uint64_t ssize, uint32_t row_count ) {
+    uint8_t variant = *src & 3;
+    const uint8_t * const endp = src + ssize;
+    uint64_t val;
     uint64_t sz;
-    bool     random_access=(version==2?true:false);
     rc_t rc = 0;
     
+    ++src;
     switch (variant) {
     case 0:
-        /*
-         variant 0: fixed row length, data_run[..] == 1
-         vlencode(row_length)
-         */
-        rc = vlen_decodeU1(&row_len, &src[cur], ssize - cur, &sz); if (rc) return rc;
-	cur += sz;
-        
-        *lhs = new_StaticPageMap(1, random_access?row_count:1);
-        if (*lhs == NULL)
-            return RC(rcVDB, rcPagemap, rcConstructing, rcMemory, rcExhausted);
-        
-        (**lhs).data_recs = row_count;
-        (**lhs).leng_recs = 1;
-        
-        (**lhs).length[0] = (elem_count_t)row_len;
-        (**lhs).leng_run[0] = row_count;
-
-	if(random_access){
-		(**lhs).data_offset= (**lhs).data_run;
-		rc = deserialize_lengths((**lhs).data_offset, (unsigned)row_count, &src[cur], ssize - cur, &sz);
-	}
-	(**lhs).data_run = 0;
+        rc = vlen_decodeU1(&val, src, endp - src, &sz);
+        if (rc == 0)
+            return PageMapNewFixedRowLength( lhs, row_count, (uint32_t)val );
         break;
     case 1:
-        /*
-         variant 1: fixed row length, variable data_run
-         vlencode(row_length)
-         vlencode(data_recs)
-         serialize(data_run)
-         */
-        rc = vlen_decodeU1(&row_len, &src[cur], ssize - cur, &sz); if (rc) return rc;
-        cur += sz;
-        
-        rc = vlen_decodeU1(&data_recs, &src[cur], ssize - cur, &sz); if (rc) return rc;
-        cur += sz;
-        
-        *lhs = new_StaticPageMap(1, data_recs);
-        if (*lhs == NULL)
-            return RC(rcVDB, rcPagemap, rcConstructing, rcMemory, rcExhausted);
-        
-        (**lhs).data_recs = data_recs;
-        (**lhs).leng_recs = 1;
-        
-        (**lhs).length[0] = (elem_count_t)row_len;
-        (**lhs).leng_run[0] = row_count;
-        
-        rc = deserialize_lengths((**lhs).data_run, (unsigned)data_recs, &src[cur], ssize - cur, &sz);
+        {
+            uint32_t row_length;
+            
+            rc = vlen_decodeU1( &val, src, endp - src, &sz );
+            if (rc == 0) {
+                src += sz;
+                row_length = (uint32_t)val;
+                rc = vlen_decodeU1( &val, src, endp - src, &sz );
+                if (rc == 0) {
+                    src += sz;
+                    /* i'm lying about the row_count, this will create val entries
+                     * in the data_run array and that is how many i need
+                     * i'll then decompress into the data_run array.
+                     */
+                    rc = PageMapNewFixedRowLength( lhs, (uint32_t)val, row_length );
+                    if (rc == 0) {
+                        (*lhs)->leng_run[0] = row_count;
+                        rc = deserialize_lengths( (*lhs)->data_run, (unsigned int)val, src, endp - src, &sz );
+                        if (rc == 0)
+                        {
+                            uint32_t ix;
+                            uint32_t sum;
+                            uint32_t *pdr = (**lhs).data_run;
+                                
+                            for (sum = ix = 0; ix < (**lhs).data_recs; ++ix)
+                                sum += *pdr++;
+                            (**lhs).leng_run[0] = sum;
+                            return 0;
+                        }
+                        PageMapRelease(*lhs);
+                    }
+                }
+            }
+        }
         break;
     case 2:
-        /*
-         variant 2: variable row length, data_run[..] == 1
-         vlencode(leng_recs)
-         serialize(length)
-         serialize(leng_run)
-         */
-        rc = vlen_decodeU1(&leng_recs, &src[cur], ssize - cur, &sz); if (rc) return rc;
-        cur += sz;
-        
-        *lhs = new_StaticPageMap((unsigned)leng_recs, random_access?row_count:1);
-        if (*lhs == NULL)
-            return RC(rcVDB, rcPagemap, rcConstructing, rcMemory, rcExhausted);
-        
-        (**lhs).data_recs = row_count;
-        (**lhs).leng_recs = leng_recs;
-        
-#if 0  
-        rc = deserialize_lengths((**lhs).length, (unsigned)leng_recs, &src[cur], ssize - cur, &sz);
+        rc = vlen_decodeU1( &val, src, endp - src, &sz );
         if (rc == 0) {
-            cur += sz;
-            rc = deserialize_lengths((**lhs).leng_run, (unsigned)leng_recs, &src[cur], ssize - cur, &sz);
+            src += sz;
+            rc = PageMapNewFixedRowLength( lhs, row_count, 1 );
+            if (rc == 0) {
+                do {
+                    rc = PageMapGrow( *lhs, (uint32_t)val, 0 );
+                    if (rc)
+                        break;
+                    rc = deserialize_lengths( (*lhs)->length, (unsigned)val, src, endp - src, &sz );
+                    if (rc)
+                        break;
+                    src += sz;
+                    rc = deserialize_lengths( (*lhs)->leng_run, (unsigned)val, src, endp - src, &sz );
+                    if (rc == 0) {
+                        (*lhs)->leng_recs = (uint32_t)val;
+                        (*lhs)->data_recs = row_count;
+                        return 0;
+                    }
+                } while (0);
+                PageMapRelease(*lhs);
+                *lhs = 0;
+                break;
+            }
         }
-#else /** can use the fact that both length and leng_run a sequentually allocated ***/
-	rc = deserialize_lengths((**lhs).length, (unsigned)(2*leng_recs), &src[cur], ssize - cur, &sz);
-	if(rc == 0 && random_access){
-		cur+=sz;
-		(**lhs).data_offset= (**lhs).data_run;
-		rc = deserialize_lengths((**lhs).data_offset, (unsigned)row_count, &src[cur], ssize - cur, &sz);
-	}
-	(**lhs).data_run = 0;
-		
-#endif
         break;
     case 3:
-        /*
-         variant 3: variable row length, variable data_run
-         vlencode(leng_recs)
-         vlencode(data_recs)
-         serialize(length)
-         serialize(leng_run)
-         serialize(data_run)
-         */
-        rc = vlen_decodeU1(&leng_recs, &src[cur], ssize - cur, &sz);  if (rc) return rc;
-        cur += sz;
-        
-        rc = vlen_decodeU1(&data_recs, &src[cur], ssize - cur, &sz);  if (rc) return rc;
-        cur += sz;
-        
-        *lhs = new_StaticPageMap(leng_recs, data_recs);
-        if (*lhs == NULL)
-            return RC(rcVDB, rcPagemap, rcConstructing, rcMemory, rcExhausted);
-        
-        (**lhs).data_recs = data_recs;
-        (**lhs).leng_recs = leng_recs;
-#if 0   
-        rc = deserialize_lengths((**lhs).length, leng_recs, &src[cur], ssize - cur, &sz);
-        if (rc == 0) {
-            cur += sz;
-            rc = deserialize_lengths((**lhs).leng_run, leng_recs, &src[cur], ssize - cur, &sz);
+        do {
+            uint32_t leng_recs;
+            uint32_t data_recs;
+            
+            rc = vlen_decodeU1( &val, src, endp - src, &sz );
+            if (rc)
+                break;
+            src += sz;
+            leng_recs = (uint32_t)val;
+            
+            rc = vlen_decodeU1( &val, src, endp - src, &sz );
+            if (rc)
+                break;
+            src += sz;
+            data_recs = (uint32_t)val;
+            
+            rc = PageMapNew(lhs, 0);
             if (rc == 0) {
-                cur += sz;
-                rc = deserialize_lengths((*lhs)->data_run, data_recs, &src[cur], ssize - cur, &sz);
+                do {
+                    rc = PageMapGrow(*lhs, leng_recs, data_recs);
+                    if (rc)
+                        break;
+                    rc = deserialize_lengths( (*lhs)->length, leng_recs, src, endp - src, &sz );
+                    if (rc)
+                        break;
+                    src += sz;
+                    rc = deserialize_lengths( (*lhs)->leng_run, leng_recs, src, endp - src, &sz );
+                    if (rc)
+                        break;
+                    src += sz;
+                    rc = deserialize_lengths( (*lhs)->data_run, data_recs, src, endp - src, &sz );
+                    if (rc == 0) {
+                        (*lhs)->leng_recs = leng_recs;
+                        (*lhs)->data_recs = data_recs;
+                        return 0;
+                    }
+                } while (0);
+                PageMapRelease(*lhs);
+                *lhs = 0;
+                break;
             }
-        }
-#else /** can use the fact that both length and leng_run a sequentually allocated ***/
-	rc = deserialize_lengths((**lhs).length, (unsigned)(2*leng_recs+data_recs), &src[cur], ssize - cur, &sz);
-#endif
+        } while (0);
         break;
-     default:
-	rc = RC(rcVDB, rcPagemap, rcConstructing, rcFormat, rcUnrecognized);
     }
-    (**lhs).random_access = random_access;
     return rc;
 }
 
 static
-rc_t PageMapDeserialize_v1(PageMap **lhs, const uint8_t *Src, uint64_t ssize, uint32_t row_count) {
+rc_t PageMapDeserialize_v1( PageMap **lhs, const uint8_t *Src, uint64_t ssize, uint32_t row_count ) {
     const uint8_t *src = Src;
     const uint8_t * const endp = src + ssize;
     uint8_t variant = *src & 3;
@@ -1405,20 +812,10 @@ rc_t PageMapDeserialize_v1(PageMap **lhs, const uint8_t *Src, uint64_t ssize, ui
     KDataBuffer decompress;
     z_stream zs;
     int zr;
-    bool random_access = ((src[0]>>2)==2);
     
     switch (variant) {
     case 0:
-	if(!random_access)
-		return PageMapDeserialize_v0(lhs, src, ssize, row_count);
-	++src;
-	rc = vlen_decodeU1(&val, src, endp - src, &sz);
-	if( rc == 0){
-		src += sz;
-		hsize = src - Src;
-		bsize = 5 * row_count;
-	}
-	break;
+        return PageMapDeserialize_v0(lhs, src, ssize, row_count);
     case 1:
         ++src;
         rc = vlen_decodeU1(&val, src, endp - src, &sz);
@@ -1439,9 +836,6 @@ rc_t PageMapDeserialize_v1(PageMap **lhs, const uint8_t *Src, uint64_t ssize, ui
             src += sz;
             hsize = src - Src;
             bsize = 10 * val;
-	    if(random_access){
-		bsize +=  5 * row_count;
-	    }
         }
         break;
     case 3:
@@ -1495,7 +889,7 @@ rc_t PageMapDeserialize_v1(PageMap **lhs, const uint8_t *Src, uint64_t ssize, ui
     return rc;
 }
 
-rc_t PageMapDeserialize (PageMap **lhs, const void *src, uint64_t ssize, uint64_t row_count) {
+rc_t PageMapDeserialize ( PageMap **lhs, const void *src, uint64_t ssize, uint64_t row_count ) {
     rc_t rc;
 
     if ((uint32_t)row_count != row_count)
@@ -1507,13 +901,11 @@ rc_t PageMapDeserialize (PageMap **lhs, const void *src, uint64_t ssize, uint64_
     *lhs = NULL;
     if (src == NULL || ssize == 0)
         return 0;
-
     switch (*(const uint8_t *)src >> 2) {
     case 0:
         rc = PageMapDeserialize_v0(lhs, src, ssize, (uint32_t)row_count);
         break;
     case 1:
-    case 2:
         rc = PageMapDeserialize_v1(lhs, src, ssize, (uint32_t)row_count);
         break;
     default:
@@ -1521,55 +913,19 @@ rc_t PageMapDeserialize (PageMap **lhs, const void *src, uint64_t ssize, uint64_
     }
     if (rc == 0)
         (**lhs).row_count = (uint32_t)row_count;
-    else
-        PageMapRelease(*lhs);
     return rc;
 }
 
 static
-rc_t PageMapDestroy(PageMap *that)
+rc_t PageMapDestroy( PageMap *that )
 {
-#if PAGEMAP_STATISTICS
-    pm_stats.currentWaste -= (that->reserve_data - that->data_recs) * sizeof(that->data_run[0]) +
-                             (that->reserve_leng - that->leng_recs) * (sizeof(that->leng_run[0]) + sizeof(that->length[0]));
-    pm_stats.currentFootprint -= sizeof(*that) + that->reserve_data * sizeof(that->data_run[0]) +
-                                 that->reserve_leng * (sizeof(that->leng_run[0]) + sizeof(that->length[0]));
-    --pm_stats.alive;
-    if (pm_stats.alive == 0) {
-        fprintf(stderr, 
-                "PM Stats:\n"
-                "Footprint (cur/max): %u/%u\n"
-                "Waste (cur/max): %u/%u\n"
-                "Alive (cur/max): %u/%u\n"
-                "Created (static/fixed/single/total): %u/%u/%u/%u\n"
-                "Grows: %u\n"
-                "Expands (act/calls): %u/%u\n"
-                "Appends: %u\n\n",
-                (unsigned)pm_stats.currentFootprint,
-                (unsigned)pm_stats.maxFootprint,
-                (unsigned)pm_stats.currentWaste,
-                (unsigned)pm_stats.maxWaste,
-                pm_stats.alive,
-                pm_stats.maxAlive,
-                pm_stats.createStatic,
-                pm_stats.createFixedRow,
-                pm_stats.createSingle,
-                pm_stats.create + pm_stats.createStatic + pm_stats.createFixedRow + pm_stats.createSingle,
-                pm_stats.grows,
-                pm_stats.expands,
-                pm_stats.expandCalls,
-                pm_stats.appends
-                );
-    }
-#endif
-    KDataBufferWhack(&that->istorage);
-    KDataBufferWhack(&that->dstorage);
-    KDataBufferWhack(&that->cstorage);
-    free(that);
+    KDataBufferWhack( &that->estorage );
+    KDataBufferWhack( &that->cstorage );
+    free( that );
     return 0;
 }
 
-rc_t PageMapRelease (const PageMap *self) {
+rc_t PageMapRelease ( const PageMap *self ) {
     if (self) {
         if (KRefcountDrop(&self->refcount, "PageMap") == krefWhack)
           return PageMapDestroy((PageMap *)self);
@@ -1577,34 +933,48 @@ rc_t PageMapRelease (const PageMap *self) {
     return 0;
 }
 
-rc_t PageMapAddRef (const PageMap *self) {
+rc_t PageMapAddRef ( const PageMap *self ) {
     if (self)
         KRefcountAdd(&self->refcount, "PageMap");
     return 0;
 }
 
-uint32_t PageMapGetIdxRowInfo (const PageMap *cself, uint32_t idx, uint32_t *starting_element)
-{
-	rc_t rc=0;
-	uint32_t	len;
-
-	if (idx  < (cself->data_run?cself->data_run[0]:1) || cself->data_recs == 1) {
-		if (starting_element) *starting_element = 0;
-		if (cself->leng_recs == 0) len=0;
-		else  len = cself->length[0];
-		return cself->length[0];
-	} else {
-		rc = PageMapFindRow(cself,idx,starting_element,&len,NULL);
-		if(rc) len=0;
-	}
-	return len;
+uint32_t PageMapGetIdxRowInfo ( const PageMap *cself, uint32_t idx, uint32_t *starting_element ) {
+    rc_t rc;
+
+	if (idx == 0 || cself->data_recs == 1) {
+        if (starting_element)
+            *starting_element = 0;
+        if (cself->leng_recs == 0)
+            return 0;
+        return cself->length[0];
+    }
+    if (cself->leng_recs == 1) {
+        if (starting_element == NULL)
+            return cself->length[0];
+        
+        if (cself->data_recs == cself->row_count) {
+        /* fixed row length and no rle on data */
+            if (starting_element)
+                *starting_element = idx * cself->length[0];
+            return cself->length[0];
+        }
+    }
+    
+    rc = PageMapExpand(cself, idx);
+    if (rc)
+        return 0;
+
+    if (starting_element)
+        *starting_element = cself->exp_offset[idx];
+    return cself->leng_recs > 1 ? cself->exp_length[idx] : cself->length[0];
 }
 
-int PageMapCompare(const PageMap *a, const PageMap *b) {
-    unsigned ai;
-    unsigned bi;
-    unsigned ar; /* runs in a */
-    unsigned br; /* runs in b */
+int PageMapCompare( const PageMap *a, const PageMap *b ) {
+    unsigned i;
+    unsigned j;
+    unsigned i_rl;
+    unsigned j_rl;
     
     if (
         a == b || (
@@ -1616,33 +986,33 @@ int PageMapCompare(const PageMap *a, const PageMap *b) {
     ))
         return 2;
     
-    ai = bi = 0;
-    ar = a->leng_run[0];
-    br = b->leng_run[0];
+    i = j = 0;
+    i_rl = a->leng_run[0];
+    j_rl = b->leng_run[0];
     
-    while (ai < a->leng_recs && bi < b->leng_recs) {
-        if (a->length[ai] != b->length[bi])
+    while (i < a->leng_recs && j < b->leng_recs) {
+        if (a->length[i] != b->length[j])
             return 0;
-        if (ar < br) {
-            br -= ar;
-            ar = a->leng_run[++ai];
-        }
-        else if (ar == br) {
-            ar = a->leng_run[++ai];
-            br = b->leng_run[++bi];
+        if (i_rl < j_rl) {
+            j_rl -= i_rl;
+            i_rl = 0;
         }
         else {
-            ar -= br;
-            br = b->leng_run[++bi];
+            i_rl -= j_rl;
+            j_rl = 0;
         }
+        if (i_rl == 0)
+            i_rl = a->leng_run[++i];
+        if (j_rl == 0)
+            j_rl = b->leng_run[++j];
     }
-    if (ai != a->leng_recs || bi != b->leng_recs)
+    if (i != a->leng_recs || j != b->leng_recs)
         return -1;
     else
         return 1;
 }
 
-int PageMapCompareStatic (const PageMap *a, const PageMap *b) {
+int PageMapCompareStatic ( const PageMap *a, const PageMap *b ) {
     if (
 	  a->data_recs != 1 ||
 	  a->leng_recs != 1 ||
@@ -1668,23 +1038,16 @@ int PageMapCompareStatic (const PageMap *a, const PageMap *b) {
     return 0;  /* not same */
 }
 
-rc_t PageMapAppend(PageMap *self, const PageMap *other) {
+rc_t PageMapAppend( PageMap *self, const PageMap *other ) {
     KDataBuffer cstorage;
     rc_t rc;
     
     rc = KDataBufferMake(&cstorage, sizeof(self->length[0]) * 8, (self->leng_recs + other->leng_recs) * 2 + self->data_recs + other->data_recs);
     if (rc == 0) {
-        uint32_t *const length = cstorage.base;
-        uint32_t *const leng_run = length + self->leng_recs + other->leng_recs;
-        uint32_t *const data_run = leng_run + self->leng_recs + other->leng_recs;
+        uint32_t *length = cstorage.base;
+        uint32_t *leng_run = length + self->leng_recs + other->leng_recs;
+        uint32_t *data_run = leng_run + self->leng_recs + other->leng_recs;
         
-#if PAGEMAP_STATISTICS
-        ++pm_stats.appends;
-        pm_stats.currentWaste -= (self->reserve_data - self->data_recs) * sizeof(self->data_run[0]) +
-                                 (self->reserve_leng - self->leng_recs) * (sizeof(self->leng_run[0]) + sizeof(self->length[0]));
-        pm_stats.currentFootprint -= self->reserve_data * sizeof(self->data_run[0]) +
-                                     self->reserve_leng * (sizeof(self->leng_run[0]) + sizeof(self->length[0]));
-#endif
         memcpy(length                  , self->length , self->leng_recs  * sizeof(length[0]));
         memcpy(length + self->leng_recs, other->length, other->leng_recs * sizeof(length[0]));
 
@@ -1707,14 +1070,6 @@ rc_t PageMapAppend(PageMap *self, const PageMap *other) {
         self->reserve_leng = self->leng_recs;
         self->reserve_data = self->data_recs;
         
-#if PAGEMAP_STATISTICS
-        pm_stats.currentWaste += (self->reserve_data - self->data_recs) * sizeof(self->data_run[0]) +
-                                 (self->reserve_leng - self->leng_recs) * (sizeof(self->leng_run[0]) + sizeof(self->length[0]));
-        pm_stats.currentFootprint += self->reserve_data * sizeof(self->data_run[0]) +
-                                     self->reserve_leng * (sizeof(self->leng_run[0]) + sizeof(self->length[0]));
-        if (pm_stats.maxFootprint < pm_stats.currentFootprint)
-            pm_stats.maxFootprint = pm_stats.currentFootprint;
-#endif
         return 0;
     }
     return rc;
diff --git a/libs/vdb/page-map.h b/libs/vdb/page-map.h
index 427dc45..f57158a 100644
--- a/libs/vdb/page-map.h
+++ b/libs/vdb/page-map.h
@@ -27,8 +27,6 @@
 #ifndef _h_page_map_
 #define _h_page_map_
 
-#include <assert.h>
-
 #ifndef _h_vdb_extern_
 #include <vdb/extern.h>
 #endif
@@ -37,98 +35,11 @@
 #include <klib/defs.h>
 #endif
 
-#include <klib/data-buffer.h>
-#include <klib/refcount.h>
-
-#if _DEBUGGING
-#define _HEAVY_PAGEMAP_DEBUGGING 0
-#endif
-
 struct KDataBuffer;
-
-typedef uint32_t pm_size_t;
+typedef struct PageMap PageMap;
 typedef uint32_t row_count_t;
 typedef uint32_t elem_count_t;
 
-typedef enum {  PM_REGION_EXPAND_UNKNOWN=0,     /** notset **/
-                PM_REGION_EXPAND_FULL,          /** full expansion     - 2 arrays: offset,length**/
-                PM_REGION_EXPAND_SAMELEN,       /** partial expansion  - 1 array: offset **/
-                PM_REGION_EXPAND_EQUIDISTANT,   /** data have same length and always unique - no expansion needed **/
-                PM_REGION_EXPAND_SAMEDATA       /** same data - no expansion needed ***/
-} pm_expand_region_type_t;
-
-typedef struct PageMapRegion {
-	row_count_t	start_row;
-	row_count_t	numrows;
-	elem_count_t	data_offset;/** for unexpanded regions first direct offset into data**/
-				    /** for expanded regions - offset into expanded storage **/
-	elem_count_t	length;	    /** first length of the region ***/
-	uint8_t		type;       /** one of the types from pm_expand_region_type_t*/
-	bool		expanded;   /** if expandable storage is being used ***/
-} PageMapRegion;
-
-
-
-
-typedef struct PageMap {
-    /* memory allocation object for length[], leng_run[], data_run[] */
-    KDataBuffer cstorage;
-
-    /* array of row lengths
-     * has leng_recs elements
-     * is sized to reserve_leng elements
-     * == storage.base
-     */
-    bool   random_access;
-    enum { eBlobPageMapOptimizedNone, eBlobPageMapOptimizedSucceeded, eBlobPageMapOptimizedFailed}  optimized;
-    elem_count_t *length;
-
-    /* array of run lengths of row lengths
-     * has leng_recs elements
-     * is sized to reserve_leng elements
-     * == length + reserve_leng
-     */
-    row_count_t *leng_run;
-
-    /* array of repeat counts of data
-     * has data_recs elements
-     * is sized to reserve_data elements
-     * == leng_run + reserve_leng
-     */
-    row_count_t *data_run;
-    /** expanded offsets into data - needed for random access ***/
-    /** only valid when random_access is true **/
-    elem_count_t *data_offset;
-
-/******* DYNAMIC EXPANSION CONTROL *****************/
-    PageMapRegion		*exp_rgn_last;
-    row_count_t			exp_row_last;   /* last row analyzed for region expansion */
-    row_count_t			exp_lr_used;    /* how much leng_run was used from the */
-    pm_size_t			exp_lr_last;	/* index of last leng_run expanded */
-    pm_size_t			exp_dr_last;	/* index of last data_run expanded */
-    pm_size_t			exp_rgn_cnt;    /* current number of expanded regions */
-    elem_count_t		exp_data_offset_last;/* last offset into data */
-    
-
-    KDataBuffer			istorage;	/* binary searchable storage for expansion regions */
-    KDataBuffer			dstorage;	/* storage for expanded data */
-/** LAST SEARCH CONTROL *****/
-    pm_size_t			i_rgn_last; 	/* region index found in previous lookup **/
-    PageMapRegion*		rgn_last; 	/* redundant - region found in previous lookup **/
-
-/****************************/
-
-    pm_size_t leng_recs;     /* number of valid elements in length[] and leng_run[] */
-    pm_size_t data_recs;     /* number of valid elements in data_run[] */
-    pm_size_t reserve_leng;  /* number of allocated elements in length[] and leng_run[] */
-    pm_size_t reserve_data;  /* number of allocated elements in data_run[] */
-    pm_size_t start_valid;   /* the expanded array contains valid data upto start_valid */
-    row_count_t row_count;   /* total number of rows in page map */
-    row_count_t pre_exp_row_count; /* number of rows pre-expanded */
-    KRefcount refcount;
-} PageMap;
-
-
 /* a pessimistic estimate - actual size will *always* be less than or equal */
 size_t PageMapGetMaxBufferSize(const PageMap *self);
 
@@ -168,12 +79,10 @@ rc_t PageMapNewSingle(PageMap **lhs, uint64_t row_count, uint64_t row_length);
 
 rc_t PageMapNewFixedRowLength(PageMap **lhs, uint64_t row_count, uint64_t row_len);
 
-rc_t PageMapToRandomAccess(PageMap **rslt, PageMap * src,uint32_t *data_offset);
+uint32_t PageMapFastRowCount(const PageMap *self);
 
 uint32_t PageMapFixedRowLength(const PageMap *self);
 
-rc_t	PageMapRowLengthRange(const PageMap *self, elem_count_t *min,elem_count_t *max);
-
 uint32_t PageMapHasSimpleStructure(const PageMap *self);
 
 rc_t PageMapAppendRows(PageMap *self, uint64_t row_length, uint64_t run_length, bool same_data);
@@ -186,9 +95,6 @@ rc_t PageMapAppendRows(PageMap *self, uint64_t row_length, uint64_t run_length,
 /* concatenate two page maps */
 rc_t PageMapAppend(PageMap *self, const PageMap *other);
 
-/** Find data using pagemap ***/
-rc_t PageMapFindRow(const PageMap *cself,uint64_t row,uint32_t * data_offset,uint32_t * data_length,uint32_t * repeat_count);
-
 
 /*
  -1: error
@@ -200,36 +106,28 @@ int PageMapCompare(const PageMap *a, const PageMap *b);
 /* same but static columns */
 int PageMapCompareStatic(const PageMap *a, const PageMap *b);
 
+enum PageMapIteratorVariants {
+    pmivConstant,
+    pmivVersion1, /* fixed row length and no repeats */
+    pmivFixedRowLength,
+    pmivFull /* variable row length and has repeats */
+};
+
 typedef struct PageMapIterator PageMapIterator;
 struct PageMapIterator {
-    row_count_t		last_row;
-    row_count_t		cur_row;
-    PageMapRegion**	rgns;	  /** all regions from the pagemap **/
-    pm_size_t		cur_rgn;  /** offset of the current region **/
-    row_count_t 	cur_rgn_row; /** row relative to offset of the region **/
-    elem_count_t	**exp_base; /*** exp buffer ***/
-    row_count_t		repeat_count; /** remaining repeat count **/
-    elem_count_t	static_datalen;
-#if _HEAVY_PAGEMAP_DEBUGGING
-    PageMap *parent;
-#endif
+    row_count_t end_row;
+    row_count_t cur_row;
+    const elem_count_t *length;
+    const elem_count_t *offset;
+    const row_count_t  *repeat;
+    enum PageMapIteratorVariants variant;
 };
 
 rc_t PageMapNewIterator(const PageMap *self, PageMapIterator *lhs, uint64_t first_row, uint64_t num_rows);
 
-static __inline__ bool PageMapIteratorAdvance(PageMapIterator *self, row_count_t rows)
-{
-    if (self->cur_row + rows < self->last_row) {
-	self->cur_row += rows;
-	self->cur_rgn_row += rows;
-	if(self->repeat_count > rows) self->repeat_count-= rows;
-	else self->repeat_count = 0;
-	if(self->rgns){/** non-static, non simple random access**/
-		while((*self->rgns)[self->cur_rgn].numrows <= self->cur_rgn_row){
-			self->cur_rgn_row -= (*self->rgns)[self->cur_rgn].numrows;
-			self->cur_rgn++;
-		}
-        }
+static __inline__ bool PageMapIteratorAdvance(PageMapIterator *self, row_count_t rows) {
+    if (self->cur_row + rows < self->end_row) {
+        self->cur_row += rows;
         return true;
     }
     return false;
@@ -237,147 +135,38 @@ static __inline__ bool PageMapIteratorAdvance(PageMapIterator *self, row_count_t
 
 #define PageMapIteratorNext(SELF) PageMapIteratorAdvance(SELF, 1)
 
-static __inline__ elem_count_t PageMapIteratorDataLength(const PageMapIterator *self)
-{
-    elem_count_t datalen=0;
-    if(self->rgns == NULL) {/* static or simple random-access*/
-	return  self->static_datalen;
+static __inline__ elem_count_t PageMapIteratorDataLength(const PageMapIterator *self) {
+    switch (self->variant) {
+    default:
+        return self->length[0];
+    case pmivFull:
+        return self->length[self->cur_row];
     }
-    switch ((*self->rgns)[self->cur_rgn].type){
-	case PM_REGION_EXPAND_FULL:
-		if((*self->rgns)[self->cur_rgn].expanded){
-			datalen = (*self->exp_base)[(*self->rgns)[self->cur_rgn].data_offset + 2*self->cur_rgn_row];
-		} else {
-			datalen = (*self->rgns)[self->cur_rgn].length;
-		}
-                break;
-	case PM_REGION_EXPAND_SAMELEN:
-	case PM_REGION_EXPAND_EQUIDISTANT:
-	case PM_REGION_EXPAND_SAMEDATA:
-		datalen = (*self->rgns)[self->cur_rgn].length;
-		break;
-	default:
-		assert(0);
-		break;
-   }
-#if _HEAVY_PAGEMAP_DEBUGGING
-   {
-	elem_count_t dtl,dto,dtr;
-	PageMapFindRow(self->parent,self->cur_row,&dto,&dtl,&dtr);
-	assert(dtl==datalen);
-   }
-#endif
-   /*printf("DATA_LEN=%d\n",datalen);*/
-   return datalen;
 }
 
-static __inline__ elem_count_t PageMapIteratorDataOffset(const PageMapIterator *self)
-{
-    elem_count_t dataoff=0;
-    if(self->rgns == NULL){ /** static or simple random **/
-	if(self->exp_base != NULL)  /** simple random access */
-		dataoff= (*self->exp_base)[self->cur_row];
-	return dataoff;
-    }
-    switch ((*self->rgns)[self->cur_rgn].type){
-        case PM_REGION_EXPAND_FULL:
-                if((*self->rgns)[self->cur_rgn].expanded){
-                        dataoff = (*self->exp_base)[(*self->rgns)[self->cur_rgn].data_offset + 2*self->cur_rgn_row + 1];
-                } else {
-                        dataoff = (*self->rgns)[self->cur_rgn].data_offset;
-                }
-                break;
-        case PM_REGION_EXPAND_SAMELEN:
-		if((*self->rgns)[self->cur_rgn].expanded){
-                        dataoff = (*self->exp_base)[(*self->rgns)[self->cur_rgn].data_offset + self->cur_rgn_row];
-                } else {
-                        dataoff = (*self->rgns)[self->cur_rgn].data_offset;
-                }
-                break;
-        case PM_REGION_EXPAND_EQUIDISTANT:
-		dataoff = (*self->rgns)[self->cur_rgn].data_offset + (*self->rgns)[self->cur_rgn].length * self->cur_rgn_row;
-		break;
-        case PM_REGION_EXPAND_SAMEDATA:
-                dataoff = (*self->rgns)[self->cur_rgn].data_offset;
-                break;
-        default:
-                assert(0);
-                break;
+static __inline__ elem_count_t PageMapIteratorDataOffset(const PageMapIterator *self) {
+    switch (self->variant) {
+    case pmivConstant:
+        return 0;
+    case pmivVersion1:
+        return self->length[0] * self->cur_row;
+    default:
+        return self->offset[self->cur_row];
     }
-#if _HEAVY_PAGEMAP_DEBUGGING
-   {
-        elem_count_t dtl,dto,dtr;
-        PageMapFindRow(self->parent,self->cur_row,&dto,&dtl,&dtr);
-        assert(dto==dataoff);
-   }
-#endif
-    return dataoff;
 }
 
-static __inline__ row_count_t PageMapIteratorRepeatCount(const PageMapIterator *cself)
-{
-    if(cself->repeat_count==0){
-	PageMapIterator *self = (PageMapIterator*) cself;
-	if(self->rgns==NULL){ /** must be simple random access **/
-		uint64_t i;
-		assert(*self->exp_base);
-		for(i=self->cur_row+1,self->repeat_count=1;
-                    i< self->last_row && (*self->exp_base)[i]==(*self->exp_base)[self->cur_row];
-                    i++,self->repeat_count++){}
-	} else {
-		switch ((*self->rgns)[self->cur_rgn].type){
-		 case PM_REGION_EXPAND_FULL:
-			if((*self->rgns)[self->cur_rgn].expanded){
-				int i;
-				elem_count_t* base = (*self->exp_base) + (*self->rgns)[self->cur_rgn].data_offset;
-				self->repeat_count = 1;
-				for(i=self->cur_rgn_row+1;i<(*self->rgns)[self->cur_rgn].numrows;i++){
-					if(base[2*self->cur_rgn_row]== base[2*i] && base[2*self->cur_rgn_row+1]== base[2*i+1]) self->repeat_count++;
-					else break;
-				}
-			} else {
-				self->repeat_count =  (*self->rgns)[self->cur_rgn].numrows - self->cur_rgn_row;
-			}
-			break;
-		 case PM_REGION_EXPAND_SAMELEN:
-			if((*self->rgns)[self->cur_rgn].expanded){
-				int i;
-				elem_count_t* base = (*self->exp_base) + (*self->rgns)[self->cur_rgn].data_offset;
-				self->repeat_count = 1;
-				for(i=self->cur_rgn_row+1;i<(*self->rgns)[self->cur_rgn].numrows;i++){
-					if(base[self->cur_rgn_row] == base[i]) self->repeat_count++;
-					else break;
-				}
-			} else {
-				self->repeat_count = (*self->rgns)[self->cur_rgn].numrows - self->cur_rgn_row;
-			}
-			break;
-		 case PM_REGION_EXPAND_EQUIDISTANT:
-			self->repeat_count = 1;
-			break;
-		 case PM_REGION_EXPAND_SAMEDATA:
-			self->repeat_count =  (*self->rgns)[self->cur_rgn].numrows - self->cur_rgn_row;
-			break;
-		 default:
-			assert(0);
-			break;
-		}
-	}
+static __inline__ row_count_t PageMapIteratorRepeatCount(const PageMapIterator *self) {
+    switch (self->variant) {
+    case pmivConstant:
+        return self->end_row - self->cur_row;
+    case pmivVersion1:
+        return 1;
+    default:
+        return self->repeat[self->cur_row];
     }
-#if _HEAVY_PAGEMAP_DEBUGGING
-   {
-        elem_count_t dtl,dto,dtr;
-        PageMapFindRow(cself->parent,cself->cur_row,&dto,&dtl,&dtr);
-        assert(dtr==cself->repeat_count);
-   }
-#endif
-    return cself->repeat_count;
 }
 
 elem_count_t PageMapLastLength(const PageMap *cself);
 bool PageMapHasRows(const PageMap *self);
-rc_t PageMapExpand(const PageMap *cself, row_count_t upto);
-rc_t PageMapExpandFull(const PageMap *cself);
-rc_t PageMapPreExpandFull(const PageMap *cself, row_count_t upto);
 
 #endif /* _h_page_map_ */
diff --git a/libs/vdb/phys-cmn.c b/libs/vdb/phys-cmn.c
index 7af0c10..727b61c 100644
--- a/libs/vdb/phys-cmn.c
+++ b/libs/vdb/phys-cmn.c
@@ -415,7 +415,7 @@ rc_t VPhysicalReadKColumn ( VPhysical *self, VBlob **vblob, int64_t id, uint32_t
                     num_read = 2;
 
                 /* create data buffer */
-                rc = KDataBufferMakeBytes ( & buffer, num_read + remaining );
+                rc = KDataBufferMakeBytes ( & buffer, (uint32_t)( num_read + remaining ) );
                 if ( rc == 0 )
                 {
                     /* read entire blob */
@@ -458,7 +458,7 @@ rc_t VPhysicalReadKColumn ( VPhysical *self, VBlob **vblob, int64_t id, uint32_t
  *  read a blob from static data or decoding chain
  */
 static
-rc_t VPhysicalReadStatic ( VPhysical *self, VBlob **vblob, int64_t id, uint32_t elem_bits )
+rc_t VPhysicalReadStatic ( VPhysical *self, VBlob **vblob, uint32_t elem_bits )
 {
     bool reversed;
     rc_t rc = KMDataNodeByteOrder ( self -> knode, & reversed );
@@ -515,23 +515,10 @@ rc_t VPhysicalReadStatic ( VPhysical *self, VBlob **vblob, int64_t id, uint32_t
                     rc = KDataBufferMake ( & buffer, elem_bits, ( uint32_t ) ( row_bits / elem_bits ) );
                     if ( rc == 0 )
                     {
-                        int64_t sstart_id = self -> sstart_id;
-                        int64_t sstop_id = self -> sstop_id;
-
                         /* copy out single row */
                         memcpy ( buffer . base, base, bytes );
-                        self->fixed_len = buffer.elem_count;
-
-                        /* limit row range */
-                        if ( ( ( sstop_id - sstart_id ) >> 32 ) != 0 )
-                        {
-                            sstart_id  =   ((id-1) &  ~0x7fffffffUL ) + 1;  /** Truncate to the nearest 2 billion **/
-                            if ( ( ( sstop_id - sstart_id ) >> 32 ) != 0 ) /** still not enough ***/
-                                sstop_id = sstart_id + 0x80000000UL ; /** leave only 2 billion */
-                        }
-
                         rc = VBlobCreateFromSingleRow ( vblob,
-                            sstart_id, sstop_id, & buffer, byte_order );
+                            self -> sstart_id, self -> sstop_id, & buffer, byte_order );
                         KDataBufferWhack( &buffer );
                     }
                 }
@@ -550,18 +537,11 @@ rc_t VPhysicalReadBlob ( VPhysical *self, VBlob **vblob, int64_t id, uint32_t el
     if ( self -> knode != NULL &&
          id >= self -> sstart_id && id <= self -> sstop_id )
     {
-        return VPhysicalReadStatic ( self, vblob, id, elem_bits );
+        return VPhysicalReadStatic ( self, vblob, elem_bits );
     }
-    {
+
     /* need to read from kcolumn path */
-	rc_t rc = VProductionReadBlob ( self -> b2p, vblob, id , 1, NULL);
-	if(rc == 0){
-	    if((*vblob)->pm==NULL){
-		rc = PageMapProcessGetPagemap(&self->curs->pmpr,&(*vblob)->pm);
-	    }
-	}
-	return rc;
-   }
+    return VProductionReadBlob ( self -> b2p, vblob, id , 1);
 }
 
 
@@ -570,10 +550,9 @@ rc_t VPhysicalReadBlob ( VPhysical *self, VBlob **vblob, int64_t id, uint32_t el
  */
 
 rc_t VPhysicalProdMake ( VProduction **prodp, Vector *owned,
-    struct VCursor *curs, VPhysical *phys, int sub, const char *name,
+    VPhysical *phys, int sub, const char *name,
     const VFormatdecl *fd, const VTypedesc *desc )
 {
-#define PHYSPROD_INDEX_OFFSET 1000000000
     VPhysicalProd *prod;
     rc_t rc = VProductionMake ( prodp, owned, sizeof * prod,
         prodPhysical, sub, name, fd, desc, NULL, chainDecoding );
@@ -583,10 +562,6 @@ rc_t VPhysicalProdMake ( VProduction **prodp, Vector *owned,
 
         /* this class only knows how to redirect messages to VPhysical */
         prod -> phys = phys;
-	if(sub == prodPhysicalOut){
-		(*prodp) -> cctx.cache   = curs->blob_mru_cache;
-		(*prodp) -> cctx.col_idx = PHYSPROD_INDEX_OFFSET + (++curs -> phys_cnt);
-	}
     }
     return rc;
 }
diff --git a/libs/vdb/prod-cmn.c b/libs/vdb/prod-cmn.c
index 3be26a4..bc0e275 100644
--- a/libs/vdb/prod-cmn.c
+++ b/libs/vdb/prod-cmn.c
@@ -65,10 +65,6 @@
 #include <stdio.h>
 #include <limits.h>
 
-#if ! WINDOWS
-#define LAUNCH_PAGEMAP_THREAD 1
-#endif
-
 
 /*--------------------------------------------------------------------------
  * VBlob
@@ -172,7 +168,7 @@ static
 void VProductionFlushCacheDeep ( VProduction *self, const char *context )
 {
     int i;
-    for ( i = 0; i < self -> cache_cnt; ++ i )
+    for ( i = 0; i < PROD_CACHE; ++ i )
     {
 #if TRACKING_BLOBS
         if ( self -> cache [ i ] != NULL )
@@ -200,7 +196,7 @@ void VProductionFlushCacheDeep ( VProduction *self, const char *context )
 
 /* Make
  */
-rc_t VSimpleProdMake ( VProduction **prodp, Vector *owned, struct VCursor const *curs,
+rc_t VSimpleProdMake ( VProduction **prodp, Vector *owned,
    int sub, const char *name, const VFormatdecl *fd, const VTypedesc *desc,
     const VCtxId *cid, VProduction *in, uint8_t chain )
 {
@@ -211,7 +207,6 @@ rc_t VSimpleProdMake ( VProduction **prodp, Vector *owned, struct VCursor const
     {
         prod = ( VSimpleProd* ) * prodp;
         prod -> in = in;
-        prod -> curs = curs;
     }
     return rc;
 }
@@ -219,7 +214,7 @@ rc_t VSimpleProdMake ( VProduction **prodp, Vector *owned, struct VCursor const
 static
 rc_t VSimpleProdPage2Blob ( VSimpleProd *self, VBlob **rslt, int64_t id ,uint32_t cnt)
 {
-    return VProductionReadBlob(self->in, rslt, id, cnt, NULL);
+    return VProductionReadBlob(self->in, rslt, id, cnt);
 }
 
 static
@@ -227,7 +222,7 @@ rc_t VSimpleProdSerial2Blob ( VSimpleProd *self, VBlob **rslt, int64_t id, uint3
 {
     /* read serialized blob */
     VBlob *sblob;
-    rc_t rc = VProductionReadBlob ( self -> in, &sblob, id, cnt, NULL );
+    rc_t rc = VProductionReadBlob ( self -> in, &sblob, id, cnt );
     if ( rc == 0 )
     {
         /* recast data to 8 bit */
@@ -237,18 +232,8 @@ rc_t VSimpleProdSerial2Blob ( VSimpleProd *self, VBlob **rslt, int64_t id, uint3
         {
             /* create a new, fluffy blob having rowmap and headers */
             VBlob *y;
-#if LAUNCH_PAGEMAP_THREAD
-            if(self->curs->pagemap_thread == NULL){
-                VCursor *curs = (VCursor*) self->curs;
-                if(--curs->launch_cnt<=0){
-                    /* ignoring errors because we operate with or without thread */
-                    VCursorLaunchPagemapThread(curs);
-                }
-            }
-#endif
-		
             rc = VBlobCreateFromData ( & y, sblob -> start_id, sblob -> stop_id,
-                & buffer, VTypedescSizeof ( & self -> dad . desc ), self->curs->pagemap_thread?&self->curs->pmpr:NULL );
+                & buffer, VTypedescSizeof ( & self -> dad . desc ) );
             KDataBufferWhack ( & buffer );
 
             /* return on success */
@@ -269,7 +254,7 @@ rc_t VSimpleProdBlob2Serial( VSimpleProd *self, VBlob **rslt, int64_t id, uint32
     rc_t rc;
     VBlob *sblob;
     
-    rc = VProductionReadBlob(self->in, &sblob, id, cnt, NULL);
+    rc = VProductionReadBlob(self->in, &sblob, id, cnt);
     if (rc == 0) {
         VBlob *y;
         
@@ -298,14 +283,14 @@ rc_t VSimpleProdBlob2Serial( VSimpleProd *self, VBlob **rslt, int64_t id, uint32
 /* Read
  *  return a blob containing row id
  */
-rc_t VSimpleProdRead ( VSimpleProd *self, VBlob **vblob, int64_t id, uint32_t cnt, VBlobMRUCacheCursorContext *cctx)
+rc_t VSimpleProdRead ( VSimpleProd *self, VBlob **vblob, int64_t id, uint32_t cnt )
 {
     rc_t rc;
 
     switch ( self -> dad . sub )
     {
     case prodSimpleCast:
-        rc = VProductionReadBlob ( self -> in, vblob, id , cnt, cctx );
+        rc = VProductionReadBlob ( self -> in, vblob, id , cnt );
         break;
     case prodSimplePage2Blob:
         return VSimpleProdPage2Blob(self, vblob, id, cnt);
@@ -509,6 +494,8 @@ rc_t VFunctionProdCallRowFunc( VFunctionProd *self, VBlob **prslt, int64_t row_i
     uint32_t row_count, const VXformInfo *info, Vector *args )
 {
     rc_t rc;
+    int64_t start_id;
+    int64_t stop_id;
     uint32_t i, argc = VectorLength ( args );
     VRowResult rslt;
     VRowData args_os[16], *args_oh, *argv;
@@ -518,7 +505,6 @@ rc_t VFunctionProdCallRowFunc( VFunctionProd *self, VBlob **prslt, int64_t row_i
     PageMapIterator iter_os[16], *iter_oh, *iter;
     uint64_t last = 0;
     uint32_t last_len = 0;
-    uint64_t  window;
     
     if (argc == 0) {
         memset(&scratch, 0, sizeof(scratch));
@@ -550,56 +536,44 @@ rc_t VFunctionProdCallRowFunc( VFunctionProd *self, VBlob **prslt, int64_t row_i
         KDataBufferWhack(&scratch);
         return rc;
     }
-
-
-#define MAX_BLOB_REGROUP 256 /** max rows in blob for regrouping ***/
-    window=self->stop_id-self->start_id+1;/*** from previous fetch **/
-    if(row_id == self->stop_id+1){ /** sequentual io ***/
-	if( window < MAX_BLOB_REGROUP && (row_id%(4*window))==1){
-		window *=4;
-	}
-    } else {
-	window = 1;
-    } 
-
-    if(window == 1){
-	self->start_id=self->stop_id=row_id;
-	if(row_count > 0) self->stop_id += row_count-1;
-    } else { 
-      for (self->start_id=-INT64_MAX - 1,self->stop_id=INT64_MAX,i = 0; i != argc; ++ i) {
+    
+    /* get row range */
+#define MAX_BLOB_REGROUP 1024 /** max rows in blob for regrouping ***/
+#if 1
+      for (start_id=-INT64_MAX - 1,stop_id=INT64_MAX,i = 0; i != argc; ++ i) {
           in = VectorGet(args, i);
-        if(self->start_id < in->start_id) self->start_id=in->start_id;
-        if(self->stop_id  > in->stop_id ) self->stop_id =in->stop_id;
+        if(start_id < in->start_id) start_id=in->start_id;
+        if(stop_id  > in->stop_id ) stop_id =in->stop_id;
       }
-      assert(row_id >= self->start_id && row_id  + row_count -1 <= self->stop_id);
-      if(self->start_id==-INT64_MAX - 1 || self->stop_id==INT64_MAX){
-        self->start_id=self->stop_id=row_id;
-        if(row_count > 0) self->stop_id += row_count-1;
+      assert(row_id >= start_id && row_id  + row_count -1 <= stop_id);
+      if(start_id==-INT64_MAX - 1 || stop_id==INT64_MAX){
+        start_id=stop_id=row_id;
+        if(row_count > 0) stop_id += row_count-1;
       } else if (    row_count ==1 /*we are re-blobing */
-                  && self->stop_id - self->start_id > 2*window){
-	int64_t	n=(row_id-1)/window;
-	if(self->start_id <= n*window)      self->start_id=n*window+1;
-	if(self->stop_id > (n+1) * window) self->stop_id = (n+1)*window;
+                  && stop_id - start_id > 2*MAX_BLOB_REGROUP){
+	int	n=(row_id-1)/MAX_BLOB_REGROUP;
+	if(start_id <= n*MAX_BLOB_REGROUP)      start_id=n*MAX_BLOB_REGROUP+1;
+	if(stop_id > (n+1) * MAX_BLOB_REGROUP) stop_id = (n+1)*MAX_BLOB_REGROUP;
       }
-    }
+#else
+    start_id=stop_id=row_id;
+    if(row_count > 0) stop_id += row_count-1;
+#endif
     
 #if PROD_NAME
-    rc = VBlobNew ( &blob, self->start_id, self->stop_id, self->dad.name );
+    rc = VBlobNew ( &blob, start_id, stop_id, self->dad.name );
 #else
-    rc = VBlobNew ( &blob, self->start_id, self->stop_id, "VFunctionProdCallDetRowFunc" );
+    rc = VBlobNew ( &blob, start_id, stop_id, "VFunctionProdCallDetRowFunc" );
 #endif
     TRACK_BLOB ( VBlobNew, blob );
     if (rc)
         return rc;
     rc = PageMapNew(&blob->pm, BlobRowCount(blob));
-    if (rc == 0)
-	rc = PageMapPreExpandFull(blob->pm, BlobRowCount(blob));
     if (rc) {
       vblob_release(blob, NULL);
         return rc;
     }
     
-    
     memset(&scratch, 0, sizeof(scratch));
     rslt.data = &scratch;
     rslt.elem_bits = scratch.elem_bits = blob->data.elem_bits = VTypedescSizeof(&self->dad.desc);
@@ -611,28 +585,22 @@ rc_t VFunctionProdCallRowFunc( VFunctionProd *self, VBlob **prslt, int64_t row_i
     
     for (i = 0; i != argc; ++ i) {
         in = VectorGet(args, i);
-       
-	if(in->start_id == -INT64_MAX - 1 ) {
-		rc = PageMapNewIterator(in->pm, &iter[i],0,-1);
-	} else {
-		rc = PageMapNewIterator(in->pm, &iter[i], self->start_id-in->start_id, self->stop_id - self->start_id + 1);
-	}
+        
+        rc = PageMapNewIterator(in->pm, &iter[i], 0, -1);
         if ( rc ) break;
-/*********
         if ( !PageMapIteratorAdvance( &iter[i], (uint32_t)( start_id - in->start_id ) ) ) {
             rc = RC(rcVDB, rcFunction, rcExecuting, rcBlob, rcCorrupt);
             break;
         }
-**********/
         memset(&argv[i], 0, sizeof(argv[i]));
         argv[i].variant = vrdData;
         argv[i].u.data.elem_bits = in->data.elem_bits;
         argv[i].u.data.base = in->data.base;
     }
     
-    for (row_id = self->start_id; row_id <= self->stop_id && rc == 0; ) {
+    for (row_id = start_id; row_id <= stop_id && rc == 0; ) {
         uint32_t row_count = 1;
-	if(self->dad.sub == vftRow ){
+	if(self->dad.sub == vftRow){
 		row_count = PageMapIteratorRepeatCount(&iter[0]);
 		
 		for (i = 1; i != argc; ++i) {
@@ -640,8 +608,8 @@ rc_t VFunctionProdCallRowFunc( VFunctionProd *self, VBlob **prslt, int64_t row_i
 		    if (row_count > j)
 			row_count = j;
 		}
-		if (row_id + row_count > self->stop_id + 1)
-		    row_count = (uint32_t)( self->stop_id + 1 - row_id );
+		if (row_id + row_count > stop_id + 1)
+		    row_count = (uint32_t)( stop_id + 1 - row_id );
 	}
 			
 	for (i = 0; i != argc; ++i) {
@@ -655,7 +623,7 @@ rc_t VFunctionProdCallRowFunc( VFunctionProd *self, VBlob **prslt, int64_t row_i
         
         assert(rslt.elem_count >> 32 == 0);
 
-        if ( row_id == self->start_id || last_len != rslt.elem_count || 
+        if (row_id == start_id || last_len != rslt.elem_count ||
             bitcmp(blob->data.base, last * rslt.elem_bits,
                    rslt.data->base, 0, rslt.elem_count * rslt.elem_bits) != 0)
         {
@@ -777,7 +745,7 @@ rc_t VFunctionProdCallPageFunc( VFunctionProd *self, VBlob **rslt, int64_t id,
     
     VECTOR_ALLOC_ARRAY(argc, argv, on_stack, on_heap);
     VECTOR_ALLOC_ARRAY(argc, param, pb_stack, pb_heap);
-
+    
     memset(argv, 0, sizeof(argv[0]) * argc);
     
     for (start_id = stop_id = 0,
@@ -786,13 +754,6 @@ rc_t VFunctionProdCallPageFunc( VFunctionProd *self, VBlob **rslt, int64_t id,
          i = 0; i != argc ; ++i) {
         const VBlob *b = (const VBlob *)VectorGet(args, i);
         const VProduction *prod = (const VProduction *)VectorGet(&self->parms, i);
-
-
-        if(b->pm == NULL){
-		rc=PageMapProcessGetPagemap(&self->curs->pmpr,&b->pm);
-		if(rc != 0) return rc;
-	}
-
         
         if (prod->control) {
             param[i].variant = vrdControl;
@@ -1053,11 +1014,7 @@ rc_t VFunctionProdCallBlobFuncDecoding( VFunctionProd *self, VBlob *rslt,
          * are fixed row-length so we know the data size
          * we are relying on the blob deserialization code
          * to set the page map up correctly */
-        if (sblob->pm == NULL) {
-            hdr = BlobHeadersCreateDummyHeader(0, 0, 0, (sblob->data.elem_bits * sblob->data.elem_count + 7) >> 3);
-        }
-        else
-            hdr = BlobHeadersCreateDummyHeader(0, 0, 0, BlobRowCount(sblob) * PageMapGetIdxRowInfo(sblob->pm, 0, 0));
+        hdr = BlobHeadersCreateDummyHeader(0, 0, 0, BlobRowCount(sblob) * PageMapGetIdxRowInfo(sblob->pm, 0, 0));
         /* leave rslt->headers null so that the next
          * stage will also create a dummy header */
     }
@@ -1126,12 +1083,7 @@ rc_t VFunctionProdCallBlobFunc( VFunctionProd *self, VBlob **prslt,
     
     sblob = VectorGet(args, 0);
     assert(sblob);
-    if(self->dad.chain == chainEncoding){
-	VBlobAddRef(sblob);
-	if(sblob->headers==NULL)/**first in encryption chain***/
-		VBlobPageMapOptimize(&sblob); /** try to optimize the blob **/
-    }
-
+    
 #if PROD_NAME
     rc = VBlobNew(&rslt, sblob->start_id, sblob->stop_id, self->dad.name);
 #else
@@ -1148,12 +1100,10 @@ rc_t VFunctionProdCallBlobFunc( VFunctionProd *self, VBlob **prslt,
     
     rslt->byte_order = sblob->byte_order;
     
-    if (self->dad.chain == chainEncoding){
+    if (self->dad.chain == chainEncoding)
         rc = VFunctionProdCallBlobFuncEncoding(self, rslt, id, info, sblob);
-	vblob_release( sblob, NULL );
-    } else {
+    else
         rc = VFunctionProdCallBlobFuncDecoding(self, rslt, id, info, sblob);
-    }
     
     if (rc == 0) {
         *prslt = rslt;
@@ -1173,16 +1123,6 @@ rc_t VFunctionProdCallBlobNFunc( VFunctionProd *self, VBlob **rslt,
     rc_t rc;
     
     VECTOR_TO_ARRAY(argc, argv, on_stack, on_heap, args);
-    {
-	int i;
-	for(i=0;i<argc;i++){
-		VBlob const *vb=argv[i];
-		if(vb->pm == NULL){
-			rc=PageMapProcessGetPagemap(&self->curs->pmpr,&vb->pm);
-			if(rc != 0) return rc;
-		}
-	}
-    }
     rc = self->u.bfN(self->fself, info, id, rslt, argc, argv);
     if ( on_heap )
         free( (void*) on_heap );
@@ -1263,13 +1203,34 @@ rc_t VFunctionProdCallByteswap ( VFunctionProd *self, VBlob **vblob,
          * repair missing pagemap
          */
         if (blob->pm == NULL) {
-            uint64_t row_count = BlobRowCount ( blob );
-            if ( row_count == 0 || blob->data.elem_count % row_count != 0)
+#if 0
+            uint32_t row_length = blob->data.elem_count / blob->row_count;
+
+            if (row_length == 0)
+                rc = RC(rcVDB, rcBlob, rcReading, rcBlob, rcCorrupt);
+            else {
+                uint32_t elem_count = row_length * blob->row_count;
+                if (elem_count < blob->data.elem_count) {
+                    fprintf(stderr, "blob contains too much elements, expected %u have %u\n", elem_count, blob->data.elem_count );
+#if 1
+                    blob->data.elem_count = elem_count;
+#else
+                    blob->row_count = blob->data.elem_count / row_length;
+                    blob->stop_id = blob->start_id + blob->row_count - 1;
+                    fprintf(stderr, "new row_count: %u\n", blob->row_count );
+#endif
+                }
+                rc = PageMapNewFixedRowLength(&blob->pm, blob->row_count, row_length);
+            }
+#else
+            if (blob->data.elem_count % BlobRowCount(blob) != 0)
                 rc = RC(rcVDB, rcBlob, rcReading, rcBlob, rcCorrupt);
             else {
-                uint64_t row_len = blob->data.elem_count / row_count;
-                rc = PageMapNewFixedRowLength(&blob->pm, row_count, row_len);
+                uint64_t row_len = blob->data.elem_count / BlobRowCount(blob);
+                assert(row_len >> 32 == 0);
+                rc = PageMapNewFixedRowLength(&blob->pm, BlobRowCount(blob), (uint32_t)row_len);
             }
+#endif
         }
     }
 
@@ -1329,7 +1290,7 @@ rc_t VFunctionProdCallCompare1(VFunctionProd *self, VBlob **vblob, int64_t id, u
     
     *vblob = NULL;
     assert(VectorLength(&self->parms) == 2);
-    rc = VProductionReadBlob((const VProduction *)VectorGet(&self->parms, 0), &orig, id, cnt, NULL);
+    rc = VProductionReadBlob((const VProduction *)VectorGet(&self->parms, 0), &orig, id, cnt);
     if (rc == 0) {
         int64_t i;
         PageMapIterator oi;
@@ -1347,7 +1308,7 @@ rc_t VFunctionProdCallCompare1(VFunctionProd *self, VBlob **vblob, int64_t id, u
 
             j = PageMapIteratorDataLength(&oi);
 
-            rc = VProductionReadBlob(test_prod, &test, i, 1, NULL);
+            rc = VProductionReadBlob(test_prod, &test, i, 1);
             if (rc == 0) {
                 if (orig->data.elem_bits != test->data.elem_bits || orig->byte_order != test->byte_order)
                     rc = RC(rcVDB, rcBlob, rcValidating, rcBlob, rcCorrupt);
@@ -1419,7 +1380,8 @@ rc_t VFunctionProdCallCompare1(VFunctionProd *self, VBlob **vblob, int64_t id, u
                 }
                 vblob_release(test, NULL);
                 if (rc)
-                    break; }
+                    break;
+            }
             else
                 break;
             PageMapIteratorAdvance(&oi, 1);
@@ -1434,24 +1396,19 @@ static
 rc_t VFunctionProdCallCompare( VFunctionProd *self, VBlob **vblob, int64_t id, uint32_t cnt ) {
     VBlob *orig;
     rc_t rc;
-    VProduction const *orig_prod;
     
     *vblob = NULL;
     assert(VectorLength(&self->parms) == 2);
-    orig_prod = (const VProduction *)VectorGet(&self->parms, 0);
-    rc = VProductionReadBlob(orig_prod, &orig, id, cnt, NULL);
+    rc = VProductionReadBlob((const VProduction *)VectorGet(&self->parms, 0), &orig, id, cnt);
     if (rc == 0) {
         VBlob *test;
         const VProduction *test_prod = VectorGet(&self->parms, 1);
         
-        rc = VProductionReadBlob(test_prod, &test, id, cnt, NULL);
+        rc = VProductionReadBlob(test_prod, &test, id, cnt);
         if (rc == 0) {
-            if (orig->data.elem_bits != test->data.elem_bits || orig->byte_order != test->byte_order){
+            if (orig->data.elem_bits != test->data.elem_bits || orig->byte_order != test->byte_order)
                 rc = RC(rcVDB, rcBlob, rcValidating, rcBlob, rcCorrupt);
-            } else if(   orig->pm->data_recs != 1				/*** catching static **/
-                      || test->pm->data_recs != 1				/*** trying quick comparison **/
-		      || orig->data.elem_count != test->data.elem_count
-                      || memcmp( orig->data.base, test->data.base, (orig->data.elem_bits*orig->data.elem_count+7)/8)){
+            else {
                 uint64_t i;
                 PageMapIterator oi;
                 PageMapIterator ti;
@@ -1507,7 +1464,7 @@ rc_t VFunctionProdCallCompare( VFunctionProd *self, VBlob **vblob, int64_t id, u
                             break;
                         }
                         i += j;
-			if ( done || (int64_t)i > orig->stop_id || test->pm->random_access || orig->pm->random_access || !PageMapIteratorAdvance( &ti, 0 ) )
+                        if ( done || (int64_t)i > orig->stop_id || !PageMapIteratorAdvance( &ti, 0 ) )
                             break;
                     }
                     if (rc)
@@ -1535,7 +1492,7 @@ rc_t VFunctionProdCallCompare( VFunctionProd *self, VBlob **vblob, int64_t id, u
                     if (!PageMapIteratorAdvance(&ti, 0)) {
                         VBlob *temp;
                         
-                        rc = VProductionReadBlob(test_prod, &temp, i, orig->stop_id - i, NULL);
+                        rc = VProductionReadBlob(test_prod, &temp, i, orig->stop_id - i);
                         if (rc == 0) {
                             vblob_release(test, NULL);
                             test = temp;
@@ -1575,7 +1532,7 @@ bool CC fetch_param_blob ( void *item, void *data )
     fetch_param_blob_data *pb = data;
     VBlob *blob;
     
-    pb -> rc = VProductionReadBlob ( item, & blob, pb -> id , pb -> cnt, NULL);
+    pb -> rc = VProductionReadBlob ( item, & blob, pb -> id , pb -> cnt);
     if ( pb -> rc == 0 )
     {
         pb -> rc = VectorAppend ( pb -> inputs, NULL, blob );
@@ -1595,7 +1552,7 @@ bool CC fetch_first_param_blob ( void *item, void *data )
 {
     fetch_param_blob_data *pb = data;
     
-    pb -> rc = VProductionReadBlob ( item, &pb->vblob, pb -> id , pb -> cnt, NULL);
+    pb -> rc = VProductionReadBlob ( item, &pb->vblob, pb -> id , pb -> cnt);
     if (GetRCState(pb->rc) == rcNotFound)
         return false;
     if ( pb -> vblob -> data.elem_count == 0 )
@@ -1703,7 +1660,7 @@ static rc_t VFunctionProdReadNormal ( VFunctionProd *self, VBlob **vblob, int64_
                 rc = RC ( rcVDB, rcFunction, rcReading, rcProduction, rcNull );
             }
             else {
-                if (vb -> start_id > id_run || vb -> stop_id < id_run) { /*** shoudn't happen ***/
+                if (vb -> start_id > id_run) { /*** shoudn't happen ***/
                     rc = RC ( rcVDB, rcBlob, rcReading, rcRange, rcInsufficient );
                 }
                 if (*vblob == NULL) {
@@ -1827,7 +1784,7 @@ bool CC fetch_param_FixedRowLength ( void *item, void *data )
 static
 uint32_t VFunctionProdFixedRowLength ( const VFunctionProd *self, int64_t row_id,bool  ignore_self )
 {
-    if(ignore_self == false &&  (self->dad.sub == vftRow || self->dad.sub == vftNonDetRow || self->dad.sub == vftIdDepRow )){
+    if(ignore_self == false &&  (self->dad.sub == vftRow || self->dad.sub == vftNonDetRow || self->dad.sub == vftIdDepRow)){
 	return 0;
     } else {
 	fetch_param_FixedRowLength_data pb;
@@ -1843,7 +1800,7 @@ uint32_t VFunctionProdFixedRowLength ( const VFunctionProd *self, int64_t row_id
  * VScriptProd
  */
 
-rc_t VScriptProdMake ( VScriptProd **prodp, Vector *owned, struct VCursor const *curs,
+rc_t VScriptProdMake ( VScriptProd **prodp, Vector *owned,
     int sub, const char *name, const VFormatdecl *fd,
     const VTypedesc *desc, uint8_t chain )
 {
@@ -1853,7 +1810,6 @@ rc_t VScriptProdMake ( VScriptProd **prodp, Vector *owned, struct VCursor const
     if ( rc == 0 )
     {
         prod = * prodp;
-        prod -> curs = curs;
         VectorInit ( & prod -> owned, 0, 4 );
     }
     return rc;
@@ -1869,7 +1825,7 @@ void VScriptProdDestroy ( VScriptProd *self )
  */
 rc_t VScriptProdRead ( VScriptProd *self, VBlob **vblob, int64_t id,uint32_t cnt )
 {
-    return VProductionReadBlob ( self -> rtn, vblob, id , cnt, NULL);
+    return VProductionReadBlob ( self -> rtn, vblob, id , cnt);
 }
 
 static rc_t VScriptProdColumnIdRange ( const VScriptProd *self, int64_t *first, int64_t *last )
@@ -2001,9 +1957,6 @@ LIB_EXPORT int CC VProductionSort ( const void *item, const void *n )
 rc_t VProductionColumnIdRange ( const VProduction *self,
     int64_t *first, int64_t *last )
 {
-    if ( self <= FAILED_PRODUCTION )
-        return 0;
-
     switch ( self -> var )
     {
     case prodSimple:
@@ -2017,7 +1970,7 @@ rc_t VProductionColumnIdRange ( const VProduction *self,
     case prodColumn:
         return RC ( rcVDB, rcColumn, rcAccessing, rcRange, rcEmpty );
     }
-    
+
     return RC ( rcVDB, rcColumn, rcAccessing, rcType, rcUnknown );
 }
 
@@ -2025,7 +1978,7 @@ rc_t VProductionPageIdRange ( VProduction *self,
     int64_t id, int64_t *first, int64_t *last )
 {
     VBlob *blob;
-    rc_t rc = VProductionReadBlob ( self, & blob, id , 1, NULL);
+    rc_t rc = VProductionReadBlob ( self, & blob, id , 1);
     if ( rc == 0 )
     {
         * first = blob -> start_id;
@@ -2044,11 +1997,11 @@ uint32_t VProductionRowLength ( const VProduction *self, int64_t row_id )
     uint32_t row_len;
 
     VBlob *blob;
-    rc_t rc = VProductionReadBlob ( self, & blob, row_id, 1, NULL );
+    rc_t rc = VProductionReadBlob ( self, & blob, row_id, 1 );
     if ( rc != 0 )
         return 0;
     
-    row_len = PageMapGetIdxRowInfo ( blob -> pm, (uint32_t)( row_id - blob -> start_id) , NULL );
+    row_len = PageMapGetIdxRowInfo ( blob -> pm, (uint32_t)row_id, NULL );
 
     vblob_release ( blob, NULL );
     
@@ -2079,7 +2032,7 @@ uint32_t VProductionFixedRowLength ( const VProduction *self, int64_t row_id,boo
 
 /* ReadBlob
  */
-rc_t VProductionReadBlob ( const VProduction *cself, VBlob **vblob, int64_t id, uint32_t cnt, VBlobMRUCacheCursorContext *cctx )
+rc_t VProductionReadBlob ( const VProduction *cself, VBlob **vblob, int64_t id, uint32_t cnt )
 {
     rc_t rc;
     VProduction *self = ( VProduction* ) cself;
@@ -2095,25 +2048,9 @@ rc_t VProductionReadBlob ( const VProduction *cself, VBlob **vblob, int64_t id,
     if ( self == NULL )
         return RC ( rcVDB, rcProduction, rcReading, rcSelf, rcNull );
 
-    /*** Cursor-level column blobs may be 1-to-1 with production blobs ***/
-    if(cctx != NULL && self->cctx.cache == NULL ){ /*** we are connected to read cursor **/
-	self->cctx = *cctx; /*** remember it ***/
-	/** No need to do anything else here - we are on "direct line" to the column ***/
-    } else if(self->cctx.cache != NULL){
-	/** somewhere else this production is connected to a cursor **/
-	/** lets try to get answers from the cursor **/
-	blob=(VBlob*) VBlobMRUCacheFind(self->cctx.cache,self->cctx.col_idx,id);
-	if(blob){
-		rc = VBlobAddRef ( blob );
-                if ( rc != 0 ) return rc;
-		*vblob=blob;
-		return 0;
-	}
-    }
-
 #if PROD_CACHE
     /* check cache */
-    for ( i = 0; i < self -> cache_cnt; ++ i )
+    for ( i = 0; i < PROD_CACHE; ++ i )
     {
         blob = self -> cache [ i ];
         if ( self -> cache [ i ] != NULL )
@@ -2146,11 +2083,10 @@ rc_t VProductionReadBlob ( const VProduction *cself, VBlob **vblob, int64_t id,
                 /* MRU cache */
                 if ( i > 0 )
                 {
-		    memmove(self -> cache +1,self -> cache,i*sizeof(*self->cache));
+                    do
+                        self -> cache [ i ] = self -> cache [ i - 1 ];
+                    while ( -- i > 0 );
                     self -> cache [ 0 ] = blob;
-		    if( i > self->cache_cnt_max / 2 -1 ){ /** this is how wash area is defined **/
-			self->cache_wash_access_cnt++; /** we are accessing  wash area of the cache **/
-		    }
                 }
 #endif
                 return 0;
@@ -2163,7 +2099,7 @@ rc_t VProductionReadBlob ( const VProduction *cself, VBlob **vblob, int64_t id,
     switch ( self -> var )
     {
     case prodSimple:
-        rc = VSimpleProdRead ( ( VSimpleProd* ) self, vblob, id, cnt,cctx );
+        rc = VSimpleProdRead ( ( VSimpleProd* ) self, vblob, id, cnt );
         break;
     case prodFunc:
         rc = VFunctionProdRead ( ( VFunctionProd* ) self, vblob, id , cnt);
@@ -2199,41 +2135,24 @@ rc_t VProductionReadBlob ( const VProduction *cself, VBlob **vblob, int64_t id,
     if ( ! blob -> no_cache )
         return 0;
 #endif
-    if(cctx == NULL && self->cctx.cache != NULL && blob->stop_id > blob->start_id + 4){/** we will benefit from caching here **/
-	VBlobMRUCacheSave(self->cctx.cache,self->cctx.col_idx,blob);
-	return 0;
-    }
-
-    if(blob->pm == NULL) return 0;
-
 
     /* cache output */
     rc = VBlobAddRef ( blob );
     if ( rc == 0 )
     {
         VBlobCheckIntegrity ( blob );
-        if(self -> cache_cnt_max == 0){ /*** set the cache size now ***/
-		self -> cache_cnt_max = PROD_CACHE;
-#if 0
-	} else if(   self->var==prodScript
-		  && self -> cache_cnt >= self -> cache_cnt_max
-		  && self -> cache_cnt_max/PROD_CACHE  < PROD_CACHE_MAX_EXTENTS
-		  && self -> cache_wash_access_cnt > PROD_CACHE_WASH_ACCESS_THRESHOLD){  /** try to extend the cache ***/
-			 self -> cache_cnt_max += PROD_CACHE;
-                         self -> cache_wash_access_cnt = 0;
-#endif
-	}
-	if(self -> cache_cnt < self -> cache_cnt_max){
-		if(self -> cache_cnt > 0 ){
-			memmove(self -> cache + 1, self -> cache , self -> cache_cnt * sizeof(*self -> cache));
-		}
-		self -> cache_cnt ++;
-	} else {
-		/* release whatever was there previously */
-        	/* drop LRU */
-		vblob_release ( self -> cache [ self -> cache_cnt - 1 ], NULL );
-		memmove(self -> cache + 1, self -> cache , (self -> cache_cnt -1) * sizeof(*self -> cache));
+
+        /* release whatever was there previously */
+        vblob_release ( self -> cache [ PROD_CACHE - 1 ], NULL );
+
+#if PROD_CACHE > 1
+        /* drop LRU */
+        if ( self -> cache [ 0 ] != NULL )
+        {
+            for ( i = PROD_CACHE - 1; i > 0; -- i )
+                self -> cache [ i ] = self -> cache [ i - 1 ];
         }
+#endif
         /* insert a head of list */
         self -> cache [ 0 ] = blob;
                 
diff --git a/libs/vdb/prod-expr.c b/libs/vdb/prod-expr.c
index 07a3080..3a2e9da 100644
--- a/libs/vdb/prod-expr.c
+++ b/libs/vdb/prod-expr.c
@@ -127,7 +127,7 @@ rc_t VProdResolveCastExpr ( const VProdResolve *self, VProduction **out, const S
 
            in all cases, the sizeof rh production element
            matches "cast" size */
-        rc = VSimpleProdMake ( out, self -> owned, self -> curs, prodSimpleCast,
+        rc = VSimpleProdMake ( out, self -> owned, prodSimpleCast,
             "cast", & cast, & desc, NULL, * out, self -> chain );
     }
 
@@ -196,7 +196,7 @@ rc_t VProdResolveSProduction ( const VProdResolve *self, VProduction **out, cons
         {
             const char *name = sprod -> name -> name . addr;
             assert ( name [ sprod -> name -> name . size ] == 0 );
-            rc = VSimpleProdMake ( out, self -> owned, self -> curs, prodSimpleCast, 
+            rc = VSimpleProdMake ( out, self -> owned, prodSimpleCast,
                 name, & fd, & desc, & sprod -> cid, * out, self -> chain );
             if ( rc == 0 )
             {
@@ -762,7 +762,7 @@ rc_t VProdResolveColumnRead ( const VProdResolve *self,
     /* create a simple prod to manage fd and desc */
     name = scol -> name -> name . addr;
     assert ( name [ scol -> name -> name . size ] == 0 );
-    rc = VSimpleProdMake ( out, self -> owned, self->curs, prodSimpleCast,
+    rc = VSimpleProdMake ( out, self -> owned, prodSimpleCast,
         name, & fd, & vcol -> desc, NULL, * out, self -> chain );
 
     assert (rc != -1);
@@ -829,7 +829,7 @@ rc_t VProdResolvePhysicalRead ( const VProdResolve *self, VPhysical *phys )
 
     /* create output adapter */
     rc = VPhysicalProdMake ( & prod, self -> owned,
-        curs, phys, prodPhysicalOut, name, & fd, & desc );
+        phys, prodPhysicalOut, name, & fd, & desc );
     if ( rc != 0 )
         return rc;
 
@@ -853,12 +853,12 @@ rc_t VProdResolvePhysicalRead ( const VProdResolve *self, VPhysical *phys )
 
     /* create adapter */
     rc = VPhysicalProdMake ( & prod, self -> owned,
-        curs, phys, prodPhysicalKCol, name, & fd, & desc );
+        phys, prodPhysicalKCol, name, & fd, & desc );
     if ( rc != 0 )
         return rc;
 
     /* create serial-to-blob stage */
-    rc = VSimpleProdMake ( & prod, self -> owned, self->curs,
+    rc = VSimpleProdMake ( & prod, self -> owned,
         prodSimpleSerial2Blob, name, & fd, & desc, NULL, prod, chainDecoding );
     if ( rc != 0 )
         return rc;
diff --git a/libs/vdb/prod-func.c b/libs/vdb/prod-func.c
index 173bd09..a7e18bd 100644
--- a/libs/vdb/prod-func.c
+++ b/libs/vdb/prod-func.c
@@ -251,7 +251,7 @@ rc_t VProdResolveFuncParamExpr ( const VProdResolve *self, Vector *out,
                 assert ( name [ sprod -> name -> name . size ] == 0 );
             }
 
-            rc = VSimpleProdMake ( & prod, self -> owned, self-> curs,
+            rc = VSimpleProdMake ( & prod, self -> owned,
                 prodSimpleCast, name,fd, & desc, NULL, prod, self -> chain);
             if ( rc == 0 )
             {
@@ -405,7 +405,7 @@ rc_t VProdResolveScriptExpr ( const VProdResolve *self,
 
                 /* by this time, we have bound all parameters */
                 VScriptProd *script;
-                rc = VScriptProdMake ( & script, self -> owned, self->curs,
+                rc = VScriptProdMake ( & script, self -> owned,
                     prodScriptFunction, name, & fd, & desc, self -> chain );
                 if ( rc == 0 )
                 {
@@ -766,7 +766,7 @@ rc_t VProdResolveEncodingExpr ( const VProdResolve *self,
                     {
                         VScriptProd *script;
                         const char *name = sphys -> name -> name . addr;
-                        rc = VScriptProdMake ( & script, self -> owned, self->curs,
+                        rc = VScriptProdMake ( & script, self -> owned,
                             prodScriptFunction, name, & fd, NULL, self -> chain );
                         if ( rc == 0 )
                         {
diff --git a/libs/vdb/prod-priv.h b/libs/vdb/prod-priv.h
index 81a45fb..b30d37c 100644
--- a/libs/vdb/prod-priv.h
+++ b/libs/vdb/prod-priv.h
@@ -43,34 +43,12 @@
 #include "schema-priv.h"
 #endif
 
-#ifndef _h_blob_priv_
-#include "blob-priv.h"
-#endif
-
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 
-#define PROD_CACHE  	  2                   	/** default size of Production Cache ***/
-#define PROD_CACHE_MAX_EXTENTS  4		/** maximum multiplier for extending selected production caches when random io is detected ***/
-#define PROD_CACHE_WASH_ACCESS_THRESHOLD 10	/** number of accesses to wash part of the cache to trigger cache extension ***/
-						/** this is to determine random access pattern ***/
-
-/* IT IS A BAD IDEA TO USE EXTERN COLUMNS IN EXPRESSIONS
-   but it used to be okay in version 0 of the schema, so
-   it still occurs sometimes. We have allowed opening
-   columns from within schema but were afraid to alter the
-   row vector because this disturbs the serial allocation
-   of ids that could fool programmers trying to be clever.
-   Unfortunately, this resulted in a stray reference after
-   we shifted reference ownership to the row vector.
-
-   Setting this symbol to 1 will cause schema-opened columns
-   to be inserted into the row vector, disturbing the index
-   series passed out to clients, but not losing the reference. */
-#define OPEN_COLUMN_ALTERS_ROW 1
+#define PROD_CACHE 4
 
 #if _DEBUGGING
 #define PROD_NAME 1
@@ -85,7 +63,6 @@ struct VBlob;
 struct VColumn;
 struct VPhysical;
 struct VProdResolve;
-struct VBlobMRUCacheCursorContext;
 
 
 /*--------------------------------------------------------------------------
@@ -130,10 +107,7 @@ struct VProduction
 #endif
 #if PROD_CACHE
     /* cached output */
-    struct VBlob *cache [ PROD_CACHE * PROD_CACHE_MAX_EXTENTS];
-    uint32_t cache_cnt_max;
-    uint32_t cache_cnt;
-    uint32_t cache_wash_access_cnt;
+    struct VBlob *cache [ PROD_CACHE ];
 #endif
     /* format declaration and element type description */
     VFormatdecl fd;
@@ -156,8 +130,6 @@ struct VProduction
 
     /* true if used as control parameter */
     bool control;
-    /* is this production directly connected to a Column in a Cursor */
-    VBlobMRUCacheCursorContext cctx;
 };
 
 
@@ -231,7 +203,7 @@ uint32_t VProductionFixedRowLength ( const VProduction *self, int64_t row_id, bo
  *  fetch a blob containing at least the requested row
  *  returns a new reference
  */
-rc_t VProductionReadBlob ( const VProduction *self, struct VBlob **vblob, int64_t id , uint32_t cnt, struct VBlobMRUCacheCursorContext* cctx);
+rc_t VProductionReadBlob ( const VProduction *self, struct VBlob **vblob, int64_t id , uint32_t cnt);
 
 
 /*--------------------------------------------------------------------------
@@ -256,11 +228,10 @@ struct VSimpleProd
 {
     VProduction dad;
     VProduction *in;
-    struct VCursor const *curs;
 };
 
 rc_t VSimpleProdMake ( VProduction **prod, Vector *owned,
-    struct VCursor const *curs,int sub, const char *name, const VFormatdecl *fd,
+    int sub, const char *name, const VFormatdecl *fd,
     const VTypedesc *desc, const VCtxId *cid,
     VProduction *in, uint8_t chain );
 
@@ -270,7 +241,7 @@ rc_t VSimpleProdMake ( VProduction **prod, Vector *owned,
 /* Read
  *  return a blob containing row id
  */
-rc_t VSimpleProdRead ( VSimpleProd *self, struct VBlob **vblob, int64_t id, uint32_t cnt, struct VBlobMRUCacheCursorContext *cctx );
+rc_t VSimpleProdRead ( VSimpleProd *self, struct VBlob **vblob, int64_t id, uint32_t cnt );
 
 
 /*--------------------------------------------------------------------------
@@ -323,10 +294,6 @@ struct VFunctionProd
 
     /* vector of VProduction input parameters */
     Vector parms;
-
-    /* adaptive prefetch parameters */
-   int64_t start_id;
-   int64_t stop_id;
 };
 
 
@@ -365,12 +332,11 @@ struct VScriptProd
     VProduction dad;
     VProduction *rtn;
     Vector owned;
-    struct VCursor const *curs;
 };
 
 
 rc_t VScriptProdMake ( VScriptProd **prod, Vector *owned,
-    struct VCursor const *curs, int sub, const char *name, const VFormatdecl *fd,
+    int sub, const char *name, const VFormatdecl *fd,
     const VTypedesc *desc, uint8_t chain );
 
 void VScriptProdDestroy ( VScriptProd *self );
@@ -379,7 +345,7 @@ void VScriptProdDestroy ( VScriptProd *self );
 /* Read
  */
 rc_t VScriptProdRead ( VScriptProd *self,
-    struct VBlob **vblob, int64_t id, uint32_t cnt);
+    struct VBlob **vblob, int64_t id, uint32_t cnt );
 
 
 /*--------------------------------------------------------------------------
@@ -400,7 +366,7 @@ struct VPhysicalProd
 };
 
 rc_t VPhysicalProdMake ( VProduction **prod, Vector *owned,
-    struct VCursor *curs, struct VPhysical *phys, int sub, const char *name,
+    struct VPhysical *phys, int sub, const char *name,
     const VFormatdecl *fd, const VTypedesc *desc );
 
 void VPhysicalProdDestroy ( VPhysicalProd *self );
diff --git a/libs/vdb/prod.c b/libs/vdb/prod.c
index eb9730d..d3370e4 100644
--- a/libs/vdb/prod.c
+++ b/libs/vdb/prod.c
@@ -83,22 +83,9 @@ rc_t VProdResolveColumn ( const VProdResolve *self,
         if ( rc != 0 )
             return rc;
 
-#if OPEN_COLUMN_ALTERS_ROW
-        rc = VectorAppend ( & curs -> row, & vcol -> ord, vcol );
-        if ( rc != 0 )
-        {
-            VColumnWhack ( vcol, NULL );
-            return rc;
-        }
-#endif
         rc = VCursorCacheSet ( & curs -> col, & scol -> cid, vcol );
         if ( rc != 0 )
         {
-#if OPEN_COLUMN_ALTERS_ROW
-            void *ignore;
-            VectorSwap ( & curs -> row, vcol -> ord, NULL, & ignore );
-            vcol -> ord = 0;
-#endif
             VColumnWhack ( vcol, NULL );
             return rc;
         }
diff --git a/libs/vdb/redimension.c b/libs/vdb/redimension.c
index 3e22dfe..e312c3b 100644
--- a/libs/vdb/redimension.c
+++ b/libs/vdb/redimension.c
@@ -69,7 +69,6 @@ rc_t CC redimension_drvr(
     if (rc == 0) {
         y->byte_order = src->byte_order;
         PageMapAddRef(y->pm = src->pm);
-	y->pm->optimized = eBlobPageMapOptimizedFailed; /** pagemap is no longer valid; prevent optimization ***/
         BlobHeadersAddRef(y->headers = src->headers);
         
         *rslt = y;
diff --git a/libs/vdb/report-vdb.c b/libs/vdb/report-vdb.c
deleted file mode 100644
index a231dd7..0000000
--- a/libs/vdb/report-vdb.c
+++ /dev/null
@@ -1,856 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <vdb/extern.h>
-
-#include <klib/report.h> /* ReportInit */
-#include <klib/time.h> /* KTime */
-#include <klib/namelist.h> /* KNamelistRelease */
-#include <klib/out.h> /* OUTMSG */
-#include <klib/klib-priv.h> /* ReportFuncs */
-
-#include <vdb/report.h> /* ... */
-#include <vdb/manager.h> /* VDBManagerVersion */
-#include <vdb/vdb-priv.h> /* VTableOpenKTableRead */
-#include <vdb/database.h> /* VDatabaseRelease */
-#include <vdb/table.h> /* VTableOpenParentRead */
-#include <vdb/dependencies.h> /* VDBDependenciesRelease */
-
-#include <kdb/kdb-priv.h> /* KDatabaseGetPath */
-#include <kdb/manager.h> /* kptDatabase */
-#include <kdb/database.h> /* KDatabaseRelease */
-#include <kdb/table.h> /* KTableRelease */
-
-#include <kfs/dyload.h> /* KDyld */
-#include <kfs/file.h> /* KFileRead */
-#include <kfs/nullfile.h> /* KFileMakeNullUpdate */
-#include <kfs/md5.h> /* KMD5SumFmt */
-
-#include <atomic.h>
-
-#include <stdarg.h> /* va_start */
-#include <stdio.h> /* sprintf */
-#include <stdlib.h> /* malloc */
-#include <string.h> /* memset */
-#include <limits.h> /* PATH_MAX */
-#include <assert.h>
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
-
-/*
- * An unrecoverable error happened.
- * We can help to solve it
- * by reporting information about known application execution environment.
- */
-
-typedef struct Report {
-    const VDBManager* mgr;
-    const VDatabase* db;
-    const VTable* table;
-} Report;
-
-static Report *report_singleton;
-
-static rc_t CC ReportRelease ( void )
-{
-    rc_t rc = 0;
-    Report *prev_report, *cur_report;
-
-    cur_report = report_singleton;
-    do
-    {
-        prev_report = cur_report;
-        cur_report = atomic_test_and_set_ptr ( ( void* volatile* ) & report_singleton, NULL, prev_report );
-    }
-    while ( cur_report != prev_report );
-
-    if ( cur_report != NULL )
-    {
-        /* cleanup */
-        VTableRelease ( cur_report -> table );
-        VDatabaseRelease ( cur_report -> db );
-        VDBManagerRelease ( cur_report -> mgr );
-        memset ( cur_report, 0, sizeof * cur_report );
-    }
-
-    return rc;
-}
-
-static rc_t CC ReportObj(const ReportFuncs *f, uint32_t indent,
-    const char *path, bool *wasDbOrTableSet);
-static rc_t CC ReportSOFTWARE ( const ReportFuncs *f, uint32_t indent, const char *argv_0, const char *date, ver_t tool_ver );
-
-static rc_t ReportGet(Report** self)
-{
-    rc_t rc = 0;
-
-    static bool latch;
-    if ( ! latch )
-    {
-        static Report self;
-
-        rc = ReportInitVDB ( ReportObj, ReportSOFTWARE, ReportRelease );
-        if ( rc == 0 )
-        {
-            report_singleton = & self;
-            latch = true;
-        }
-    }
-
-    * self = ( Report* ) report_singleton;
-
-    return rc;
-}
-
-#define report ( * f -> report )
-#define reportData ( * f -> reportData )
-#define reportData1 ( * f -> reportData1 )
-#define reportOpen ( * f -> reportOpen )
-#define reportOpen1 ( * f -> reportOpen1 )
-#define reportClose ( * f -> reportClose )
-#define reportClose1 ( * f -> reportClose1 )
-#define reportError ( * f -> reportError )
-#define reportErrorStr ( * f -> reportErrorStr )
-#define reportErrorStrImpl ( * f -> reportErrorStrImpl )
-#define reportErrorStrInt ( * f -> reportErrorStrInt )
-#define reportError3Str ( * f -> reportError3Str )
-
-static
-rc_t ReportBuild(const ReportFuncs *f, uint32_t indent, bool dynamic, const VDBManager* mgr)
-{
-    rc_t rc = 0;
-    if (!dynamic)
-    {   report(indent, "Build", 1, "static", 's', "true"); }
-    else {
-        KNamelist* list = NULL;
-        reportOpen(indent, "Build", 1, "static", 's', "false");
-        if (mgr) {
-            rc_t rc2 = VDBManagerListExternalSchemaModules(mgr, &list);
-            if (rc2 != 0) {
-                reportError
-                    (indent + 1, rc2, "VDBManagerListExternalSchemaModules");
-                if (rc == 0 && rc2 != 0)
-                {   rc = rc2; }
-            }
-            else {
-                uint32_t count = 0;
-                rc2 = KNamelistCount(list, &count);
-                if (rc2 != 0) {
-                    reportErrorStr(indent + 1, rc2, "KNamelistCount", "origin",
-                        "VDBManagerListExternalSchemaModules");
-                    if (rc == 0 && rc2 != 0)
-                    {   rc = rc2; }
-                }
-                else {
-                    int64_t i = 0;
-                    for (i = 0; i < count && rc2 == 0; ++i) {
-                        const char* name = NULL;
-                        rc2 = KNamelistGet(list, i, &name);
-                        if (rc2 != 0) {
-                            reportErrorStr(
-                                indent + 1, rc2, "KNamelistGet", "origin",
-                                "VDBManagerListExternalSchemaModules");
-                            if (rc == 0 && rc2 != 0)
-                            {   rc = rc2; }
-                        }
-                        else {
-                            report(indent + 1, "Module", 1, "name", 's', name);
-                        }
-                    }
-                }
-            }
-        }
-        RELEASE(KNamelist, list);
-        reportClose(indent, "Build");
-    }
-    return rc;
-}
-
-static rc_t VDBDependenciesReportDepend1(const VDBDependencies *self,
-    const ReportFuncs *f,
-    uint32_t count, uint32_t indent, bool toreport, uint32_t *missing)
-{
-    KDirectory *dir = NULL;
-    rc_t rc = 0;
-    uint32_t i = ~0;
-
-    assert(count && missing);
-
-    *missing = 0;
-
-    for (i = 0; i < count; ++i) {
-        bool isMissing = false;
-        bool local = false;
-        const char* seq_id = "";
-        const char* path = NULL;
-        rc = VDBDependenciesSeqId(self, &seq_id, i);
-        if (rc != 0 && toreport)
-            reportErrorStrInt(indent, rc, "VDBDependenciesSeqId",
-                "origin", "VDatabaseListDependencies", "idx", i);
-        if (rc == 0) {
-            rc = VDBDependenciesLocal(self, &local, i);
-            if (rc != 0 && toreport) {
-                reportErrorStrInt(indent, rc,
-                    "VDBDependenciesLocal",
-                    "origin", "VDatabaseListDependencies", "idx", i);
-            }
-        }
-        if (rc == 0) {
-            rc = VDBDependenciesPath(self, &path, i);
-            if (rc != 0 && toreport) {
-                reportErrorStrInt(indent, rc, "VDBDependenciesPath",
-                    "origin", "VDatabaseListDependencies", "idx", i);
-            }
-        }
-        if (rc == 0) {
-            if (!local && (path == NULL || path[0] == '\0')) {
-                isMissing = true;
-                ++*missing;
-            }
-            if (toreport) {
-                bool reported = false;
-                if (!isMissing && !local)  {
-                    rc_t rc = 0;
-                    bool readable = false;
-                    uint64_t size = ~0;
-                    KTime_t date = 0;
-                    bool ready = false;
-                    if (dir == NULL)
-                    {   rc = KDirectoryNativeDir(&dir); }
-                    assert(!local && path && path[0]);
-                    if (dir != NULL) {
-                        rc = KDirectoryFileSize(dir, &size, path);
-                        if (rc == 0)
-                        {   rc = KDirectoryDate(dir, &date, path); }
-                        if (rc == 0) {
-                            const KFile* f = NULL;
-                            rc = KDirectoryOpenFileRead(dir, &f, path);
-                            if (rc == 0) {
-                                char buffer[1024];
-                                size_t num_read = 0;
-                                size_t bsize =
-                                    size > sizeof buffer ? sizeof buffer : size;
-                                rc = KFileReadAll(f,
-                                    0, buffer, bsize, &num_read);
-                                if (rc == 0 && num_read != bsize) {
-                                    rc = RC(rcVDB, rcFile, rcReading,
-                                        rcBuffer, rcExcessive);
-                                }
-                                if (rc == 0)
-                                {   readable = true; }
-                            }
-                            KFileRelease(f);
-                        }
-                        if (rc == 0)
-                        {   ready = true; }
-                    }
-                    if (ready) {
-                        KTime kt;
-                        memset(&kt, 0, sizeof kt);
-                        KTimeLocal(&kt, date);
-                        report(indent, "Dependency", 7,
-                            "index", 'd', i,
-                            "seq_id", 's', seq_id,
-                            "local", 's', local ? "true" : "false",
-                            "path", 's', path,
-                            "size", 'u', size,
-                            "date", 'T', &kt,
-                            "readable", 's', readable ? "true" : "false");
-                        reported = true;
-                    }
-                    else {
-                        report(indent, "Dependency", 5,
-                            "index", 'd', i,
-                            "seq_id", 's', seq_id,
-                            "local", 's', local ? "true" : "false",
-                            "path", 's', path,
-                            "error", 'R', rc);
-                        reported = true;
-                    }
-                }
-                if (!reported) {
-                    report(indent, "Dependency", 4,
-                        "index", 'd', i,
-                        "seq_id", 's', seq_id,
-                        "local", 's', local ? "true" : "false",
-                        "path", 's', path == NULL ? "" : path);
-                }
-            }
-        }
-        if (rc != 0 && !toreport)
-        {   break; }
-    }
-
-    RELEASE(KDirectory, dir);
-
-    return rc;
-}
-
-static rc_t ReportDepend(const ReportFuncs *f,
-    uint32_t indent, const VDatabase* db)
-{
-    rc_t rc = 0;
-
-    const VDBDependencies* dep = NULL;
-
-    const char tag[] = "Dependencies";
-
-    assert(db);
-
-    reportOpen(indent, tag, 0);
-
-    rc = VDatabaseListDependencies(db, &dep, false);
-    if (rc != 0) {
-        reportError(indent + 1, rc, "VDatabaseListDependencies");
-    }
-    else {
-        uint32_t count = 0;
-        rc = VDBDependenciesCount(dep, &count);
-        if (rc != 0) { 
-            reportError(indent + 1, rc, "VDBDependenciesCount");
-        }
-        else {
-            uint32_t missing = 0;
-            const char tag[] = "List";
-            rc = VDBDependenciesReportDepend1(dep, f,
-                count, indent + 2, false, &missing);
-
-            if (rc == 0) {
-                reportOpen(indent + 1, tag, 2, "count", 'd', count,
-                    "missing", 'd', missing);
-            }
-            else {
-                reportOpen(indent + 1, tag, 1, "count", 'd', count);
-            }
-            
-            rc = VDBDependenciesReportDepend1(dep, f,
-                count, indent + 2, true, &missing);
-            reportClose(indent + 1, tag);
-        }
-    }
-
-    reportClose(indent, tag);
-
-    RELEASE(VDBDependencies, dep);
-
-    return rc;
-}
-
-typedef struct Total {
-    int64_t sz;
-    int64_t files;
-} Total;
-
-static rc_t CC visitor(const KDirectory* dir,
-    uint32_t type, const char* name, void* data)
-{
-    rc_t rc = 0;
-    Total* total = (Total*) data;
-    if (type & kptAlias)
-    {   return rc; }
-    assert(total);
-    switch (type) {
-        case kptFile: {
-            uint64_t size = 0;
-            rc = KDirectoryFileSize(dir, &size, name);
-            if (rc == 0) {
-                total->sz += size;
-            }
-            ++total->files;
-            break;
-        }
-        case kptDir: 
-            rc = KDirectoryVisit(dir, false, visitor, total, name);
-            break;
-        default:
-            rc = RC(rcVDB, rcDirectory, rcVisiting, rcType, rcUnexpected);
-            break;
-    }
-    return rc;
-}
-
-static rc_t ReportDir(const ReportFuncs *f, uint32_t indent, const KTable* tbl) {
-    rc_t rc = 0;
-    const KDirectory* dir = NULL;
-    if (tbl == NULL) {
-        report(indent, "Error", 1, "KTable" , 's', "NULL");
-        return rc;
-    }
-    rc = KTableOpenDirectoryRead(tbl, &dir);
-    if (rc != 0) {
-        reportError(indent, rc, "KTableOpenDirectoryRead");
-    }
-    else {
-        Total total;
-        memset(&total, 0, sizeof total);
-        rc = KDirectoryVisit(dir, false, visitor, &total, NULL);
-        report(indent, "Directory", 2,
-            "size", 'l', total.sz, "files", 'l', total.files);
-    }
-    RELEASE(KDirectory, dir);
-    return rc;
-}
-
-#define OBJ_OPEN(indent,count,path,type) reportOpen(indent, "Object", count, \
-    "path", 's', path, "type", 's', type
-#define OBJ_P_OPEN(indent,count,path,type,file_type) \
-    OBJ_OPEN(indent, count, path, type), "fs_type", 's', file_type
-
-#define OBJ(indent,path,type) \
-    OBJ_OPEN(indent, 2, path, type) )
-#define OBJ_P(indent,path,type,file_type) \
-    OBJ_P_OPEN(indent, 3, path, type, file_type) )
-#define OBJ_P_A(indent,path,type,file_type) \
-    OBJ_P_OPEN(indent, 4, path, type, file_type), "alias", 's', "true")
-#define OBJ_P_S(indent,path,type,file_type,size) \
-    OBJ_P_OPEN(indent, 4, path, type, file_type), "size", 'l', size)
-#define OBJ_P_S_A(indent,path,type,file_type,size) \
-    OBJ_P_OPEN(indent, 5, path, type, file_type), "size", 'l', size, \
-                                                  "alias", 's', "true")
-
-static rc_t CC ReportObj(const ReportFuncs *f, uint32_t indent,
-    const char *object, bool *wasDbOrTableSet)
-{
-    Report* self = NULL;
-    const char* fullpath = NULL;
-    const KDatabase* kdb = NULL;
-    const KTable* ktbl = NULL;
-    const VDatabase* db = NULL;
-    KPathType type = kptNotFound;
-    KPathType file_type = kptNotFound;
-    bool alias = false;
-    uint64_t size = 0;
-    bool size_unknown = true;
-
-    rc_t rc = ReportGet(&self);
-    assert(self);
-
-    if (wasDbOrTableSet != NULL) {
-        *wasDbOrTableSet = self->db != NULL || self->table != NULL;
-        return 0;
-    }
-
-    if (self->db != NULL) {
-        type = kptDatabase;
-        db = self->db;
-    }
-    else if (self->table != NULL) {
-        rc_t rc2 = VTableOpenParentRead(self->table, &db);
-        if (rc2)
-        {
-            if (rc == 0)
-            {
-                rc = rc2;
-            }
-        }
-        else if (!db)
-        {
-            type = kptTable;
-            rc2 = VTableGetKTableRead(self->table, &ktbl);
-            if (rc2)
-            {
-                if (rc == 0)
-                {
-                    rc = rc2;
-                }
-            }
-            else
-            {
-                rc2 = KTableGetPath(ktbl, &fullpath);
-            }
-        }
-    }
-
-    if (db) {
-        rc_t rc2 = VDatabaseOpenKDatabaseRead(db, &kdb);
-        type = kptDatabase;
-        if (rc2) {
-            if (rc == 0)
-            {   rc = rc2; }
-        }
-        else {
-            rc2 = KDatabaseGetPath(kdb, &fullpath);
-            if (rc2) {
-                if (rc == 0)
-                {   rc = rc2; }
-            }
-        }
-    }
-
-    if (fullpath) {
-        KDirectory* dir = NULL;
-        rc_t rc2 = KDirectoryNativeDir(&dir);
-        if (rc2) {
-            if (rc == 0)
-            {   rc = rc2; }
-        }
-        else {
-            file_type = KDirectoryPathType(dir, fullpath);
-            alias = file_type & kptAlias;
-            file_type &= ~kptAlias;
-            if (file_type == kptFile) {
-                rc2 = KDirectoryFileSize(dir, &size, fullpath);
-                if (rc2) {
-                    if (rc == 0)
-                    {   rc = rc2; }
-                }
-                else {  size_unknown = false; }
-            }
-        }
-        RELEASE(KDirectory, dir);
-    }
-
-    if (object || type != kptNotFound) {
-        const char* path
-            = fullpath ? fullpath : object ? object : "not set";
-        const char* stype = type == kptTable ? "table" : 
-            type == kptDatabase ? "database" : "unknown";
-        const char* sfile_type = file_type == kptFile ? "archive" : 
-            file_type == kptDir ? "dir" : "unexpected";
-
-        if (fullpath && !size_unknown) {
-            if (alias)
-            { OBJ_P_S_A(indent, path, stype, sfile_type, size); }
-            else
-            { OBJ_P_S  (indent, path, stype, sfile_type, size); }
-        }
-        else if (fullpath && size_unknown) {
-            if (alias)
-            { OBJ_P_A  (indent, path, stype, sfile_type); }
-            else
-            { OBJ_P    (indent, path, stype, sfile_type); }
-        }
-        else
-        {     OBJ      (indent, path, stype); }
-
-        if (!db)
-        {   db = self->db; }
-
-        if (db) {
-            rc_t rc2 = ReportDepend(f, indent + 1, db);
-            if (rc == 0)
-            {   rc = rc2; }
-        }
-        if (file_type == kptDir) {
-            rc_t rc2 = ReportDir(f, indent + 1, ktbl);
-            if (rc == 0)
-            {   rc = rc2; }
-        }
-
-        reportClose(indent, "Object");
-    }
-
-    if (db != self->db)
-    {   RELEASE(VDatabase, db); }
-    RELEASE(KTable, ktbl);
-    RELEASE(KDatabase, kdb);
-
-    return rc;
-}
-
-#ifdef _STATIC
-
-static
-rc_t md5(const char* path, uint8_t digest[16], const KDirectory* dir)
-{
-    const KFile* kf = NULL;
-    rc_t rc = KDirectoryOpenFileRead(dir, &kf, path);
-    if (rc == 0) {
-        KFile* fnull = NULL;
-        rc = KFileMakeNullUpdate(&fnull);
-        if (rc == 0) {
-            KMD5SumFmt* fmt = NULL;
-            rc = KMD5SumFmtMakeUpdate(&fmt, fnull);
-            if (rc == 0) {
-                const KFile* md5 = NULL;
-                rc = KFileMakeNewMD5Read(&md5, kf, fmt, path);
-                if (rc == 0) {
-                    uint64_t ps = 0;
-                    char buffer[512];
-                    size_t read = 0;
-                    do {
-                        rc = KFileRead(md5, ps, buffer, sizeof buffer, &read);
-                        if (rc == 0)
-                        {   ps += read; }
-                    } while (rc == 0 && read > 0);
-                    if (rc == 0) {
-                        bool bin;
-                        rc = KMD5SumFmtFind(fmt, path, digest, &bin);
-                    }
-                }
-                RELEASE(KFile, md5);
-            }
-            RELEASE(KMD5SumFmt, fmt);
-        }
-/*      RELEASE(KFile, fnull); fnull is released by KMD5SumFmt* fmt */
-    }
-/*  RELEASE(KFile, kf); kf is released by KFile* md5 */
-    return rc;
-}
-
-static
-rc_t ReportAlias(const ReportFuncs *f, uint32_t indent, const char* alias, const KDirectory* dir)
-{
-    char resolved[PATH_MAX + 1];
-    rc_t rc
-        = KDirectoryResolveAlias(dir, false, resolved, sizeof resolved, alias);
-    if (rc == 0) {
-        const char tag[] = "Alias";
-        uint32_t type = KDirectoryPathType(dir, resolved);
-        if (type & kptAlias) {
-            reportOpen(indent, tag, 1, "resolved", 's', resolved);
-            rc = ReportAlias(f, indent + 1, resolved, dir);
-            reportClose(indent, tag);
-        }
-        else
-        {   report(indent, tag, 1, "resolved", 's', resolved); }
-    }
-    return rc;
-}
-
-static rc_t ReportBinary(const ReportFuncs *f, uint32_t indent, const char* argv0) {
-    rc_t rc = 0;
-#ifdef _STATIC
-    KDyld *dyld = NULL;
-    assert(argv0);
-    rc = KDyldMake(&dyld);
-    if (rc != 0) {
-        reportError(indent + 1, rc, "KDyldMake");
-    }
-    else {
-        const KDirectory* dir = NULL;
-        rc = KDyldHomeDirectory(dyld, &dir, (fptr_t) ReportFinalize);
-        if (rc != 0) {
-            reportError(indent + 1, rc, "KDyldHomeDirectory");
-        }
-        else {
-            char binary[PATH_MAX + 1];
-            const char* name = strpbrk(argv0, "/\\");
-            const char* last_name = name;
-            if (last_name)
-            {   ++last_name; }
-            while (name) {
-                name = strpbrk(last_name, "/\\");
-                if (name) {
-                    last_name = name;
-                    if (last_name)
-                    {   ++last_name; }
-                }
-            }
-            name = last_name ? last_name : argv0;
-            rc = KDirectoryResolvePath(dir, true, binary, sizeof binary, name);
-            if (rc != 0) {
-                reportErrorStr(indent + 1, rc, "KDirectoryResolvePath",
-                    "origin", "KDyldHomeDirectory");
-            }
-            else {
-                bool found = false;
-                const char tag[] = "Binary";
-                const char* sType = NULL;
-                uint8_t digest[16];
-                uint32_t type = KDirectoryPathType(dir, binary);
-                switch (type & ~kptAlias) {
-                    case kptFile:
-                        sType = type & kptAlias ? "alias" : "file";
-                        found = true;
-                        break;
-                    case kptNotFound:
-                        sType = "not found";
-                        break;
-                    default:
-                        sType = "unknown";
-                        break;
-                }
-                if (found)
-                {   rc = md5(name, digest, dir); }
-                if (type & kptAlias) {
-                    if (found && rc == 0)  {
-                        reportOpen(indent, tag, 3, "path", 's', binary,
-                            "type", 's', sType, "md5", 'M', digest);
-                    }
-                    else {
-                        reportOpen(indent, tag, 2, "path", 's', binary,
-                            "type", 's', sType);
-                    }
-                    if (rc == 0 && type & kptAlias)
-                    {   rc = ReportAlias(f, indent + 1, name, dir); }
-                    reportClose(indent, tag);
-                }
-                else {
-                    if (found && rc == 0)  {
-                        report(indent, tag, 3, "path", 's', binary,
-                            "type", 's', sType, "md5", 'M', digest);
-                    }
-                    else {
-                        report(indent, tag, 2, "path", 's', binary,
-                            "type", 's', sType);
-                    }
-                }
-            }
-        }
-        RELEASE(KDirectory, dir);
-    }
-    RELEASE(KDyld, dyld);
-#endif
-    return rc;
-}
-#endif
-
-static rc_t CC ReportSOFTWARE(const ReportFuncs *f, uint32_t indent, const char *argv_0, const char *date, ver_t tool_ver ) {
-    rc_t rc = 0;
-
-    Report* self = NULL;
-    ReportGet(&self);
-    assert(self);
-
-    reportOpen(indent, "SOFTWARE", 0);
-
-    if (self->mgr) {
-        uint32_t version = 0;
-        rc = VDBManagerVersion(self->mgr, &version);
-        if (rc != 0) {
-            reportOpen(indent + 1, "Library", 0);
-            reportError(indent + 2, rc, "VDBManagerVersion");
-            reportClose(indent + 1, "Library");
-        }
-        else { report(indent + 1, "VDBLibrary", 1, "vers", 'V', version); }
-    }
-
-    {
-#ifdef _STATIC
-        bool dynamic = false;
-#else
-        bool dynamic = true;
-#endif
-
-        rc_t rc2 = ReportBuild(f, indent + 1, dynamic, self->mgr);
-        if (rc == 0 && rc2 != 0)
-        {   rc = rc2; }
-    }
-
-    if (argv_0) {
-        const char tag[] = "Tool";
-#ifdef _STATIC
-        reportOpen(indent + 1, tag, 3, "date", 's', date,
-                   "name", 's', argv_0, "vers", 'V', tool_ver);
-        {
-            rc_t rc2 = ReportBinary(f, indent + 2, argv_0);
-            if (rc == 0 && rc2 != 0)
-            {   rc = rc2; }
-        }
-        reportClose(indent + 1, tag);
-#else
-        report(indent + 1, tag, 3, "date", 's', date,
-                   "name", 's', argv_0, "vers", 'V', tool_ver);
-#endif
-    }
-
-    reportClose(indent, "SOFTWARE");
-
-    return rc;
-}
-
-
-
-/* SetVDBManager
- *  remember the manager in use
- */
-LIB_EXPORT rc_t CC ReportSetVDBManager(const VDBManager *mgr) {
-    rc_t rc = 0;
-
-    Report* self = NULL;
-    ReportGet(&self);
-    if ( self != NULL )
-    {
-        rc = VDBManagerAddRef ( mgr );
-        if ( rc == 0 )
-        {
-            rc = VDBManagerRelease ( self -> mgr );
-            if ( rc != 0 )
-                VDBManagerRelease ( mgr );
-            else
-                self -> mgr = mgr;
-        }
-    }
-    return rc;
-}
-
-
-/* SetDatabase
- *  call it if you work with Database
- *
- *  "path" [ IN ] - path to the database that is used to access it
- */
-LIB_EXPORT rc_t CC ReportResetDatabase ( const char *path, const VDatabase *db )
-{
-    rc_t rc = 0;
-
-    Report* self = NULL;
-    ReportGet(&self);
-    if ( self != NULL )
-    {
-        rc = VDatabaseAddRef ( db );
-        if ( rc == 0 )
-        {
-            VTableRelease ( self -> table ), self -> table = NULL;
-            VDatabaseRelease ( self -> db );
-            self -> db = db;
-        }
-    }
-
-    return rc;
-}
-
-
-/* SetTable
- *  call it if you work with Table
- *
- *  "path" [ IN ] - path to the table that is used to access it
- */
-LIB_EXPORT rc_t CC ReportResetTable ( const char *path, const VTable *tbl )
-{
-    rc_t rc = 0;
-
-    Report* self = NULL;
-    ReportGet(&self);
-    if ( self != NULL )
-    {
-        rc = VTableAddRef ( tbl );
-        if ( rc == 0 )
-        {
-            VDatabaseRelease ( self -> db ), self -> db = NULL;
-            VTableRelease ( self -> table );
-            self -> table = tbl;
-        }
-    }
-
-    return rc;
-}
diff --git a/libs/vdb/schema-dump.c b/libs/vdb/schema-dump.c
index 5ef2ca3..f45bad2 100644
--- a/libs/vdb/schema-dump.c
+++ b/libs/vdb/schema-dump.c
@@ -32,11 +32,11 @@
 #include "schema-expr.h"
 
 #include <klib/text.h>
-#include <klib/printf.h>
 #include <klib/symbol.h>
 #include <klib/symtab.h>
 #include <klib/log.h>
 #include <klib/rc.h>
+#include <fmtdef.h>
 #include <os-native.h>
 #include <sysalloc.h>
 
@@ -217,7 +217,6 @@ rc_t SDumperVPrint ( SDumper *self, const char *fmt, va_list args )
     for ( rc = 0, start = end = fmt; * end != 0; ++ end )
     {
         int len;
-        size_t size;
         char buffer [ 256 ];
 
         switch ( * end )
@@ -275,36 +274,30 @@ rc_t SDumperVPrint ( SDumper *self, const char *fmt, va_list args )
                 switch ( * ( ++ end ) )
                 {
                 case 'd':
-                    rc = string_printf ( buffer, sizeof buffer, & size, "%ld", va_arg ( args, int64_t ) );
-                    if ( rc == 0 )
-                        rc = SDumperWrite ( self, buffer, size );
+                    len = sprintf ( buffer, "%" LD64, va_arg ( args, int64_t ) );
+                    rc = SDumperWrite ( self, buffer, len );
                     break;
                 case 'u':
-                    rc = string_printf ( buffer, sizeof buffer, & size, "%lu", va_arg ( args, uint64_t ) );
-                    if ( rc == 0 )
-                        rc = SDumperWrite ( self, buffer, size );
+                    len = sprintf ( buffer, "%" LU64, va_arg ( args, uint64_t ) );
+                    rc = SDumperWrite ( self, buffer, len );
                     break;
                 case 'x':
-                    rc = string_printf ( buffer, sizeof buffer, & size, "%lx", va_arg ( args, uint64_t ) );
-                    if ( rc == 0 )
-                        rc = SDumperWrite ( self, buffer, size );
+                    len = sprintf ( buffer, "%" Lx64, va_arg ( args, uint64_t ) );
+                    rc = SDumperWrite ( self, buffer, len );
                     break;
                 case 'X':
-                    rc = string_printf ( buffer, sizeof buffer, & size, "%lX", va_arg ( args, uint64_t ) );
-                    if ( rc == 0 )
-                        rc = SDumperWrite ( self, buffer, size );
+                    len = sprintf ( buffer, "%" LX64, va_arg ( args, uint64_t ) );
+                    rc = SDumperWrite ( self, buffer, len );
                     break;
                 }
                 break;
             case 'p':
-                rc = string_printf ( buffer, sizeof buffer, & size, "0x%p", va_arg ( args, size_t ) );
-                if ( rc == 0 )
-                    rc = SDumperWrite ( self, buffer, size );
+                len = sprintf ( buffer, "0x%" LXSZ, va_arg ( args, size_t ) );
+                rc = SDumperWrite ( self, buffer, len );
                 break;
             case 'z':
-                rc = string_printf ( buffer, sizeof buffer, & size, "%zu", va_arg ( args, size_t ) );
-                if ( rc == 0 )
-                    rc = SDumperWrite ( self, buffer, size );
+                len = sprintf ( buffer, "%" LUSZ, va_arg ( args, size_t ) );
+                rc = SDumperWrite ( self, buffer, len );
                 break;
             case 's':
                 len = snprintf ( buffer, sizeof buffer, "%s", va_arg ( args, const char* ) );
@@ -623,9 +616,9 @@ static rc_t CC dump_to_stderr(void *dst, const void *buf, size_t sz)
     return 0;
 }
 
-rc_t VSchemaDebugPrint ( const VSchema *self, const char *decl )
+rc_t VSchemaDebugPrint(const VSchema *self, const char *decl)
 {
-    return VSchemaDump ( self, sdmPrint, decl, dump_to_stderr, NULL );
+    return VSchemaDump(self, sdmPrint, decl, dump_to_stderr, NULL);
 }
 
 /* ToText
diff --git a/libs/vdb/schema-expr.c b/libs/vdb/schema-expr.c
index df73ba2..adfcdfe 100644
--- a/libs/vdb/schema-expr.c
+++ b/libs/vdb/schema-expr.c
@@ -505,14 +505,10 @@ static
 rc_t SPhysEncExprDump ( const SPhysEncExpr *self, SDumper *b )
 {
     rc_t rc;
-    bool compact = SDumperMode ( b ) == sdmCompact ? true : false;
 
     if ( VectorLength ( & self -> schem ) != 0 )
     {
-        if ( compact )
-            rc = SExpressionBracketListDump ( & self -> schem, b, "<", ">" );
-        else
-            rc = SExpressionBracketListDump ( & self -> schem, b, "< ", " > " );
+        rc = SExpressionBracketListDump ( & self -> schem, b, "< ", " > " );
         if ( rc != 0 )
             return rc;
     }
@@ -530,10 +526,7 @@ rc_t SPhysEncExprDump ( const SPhysEncExpr *self, SDumper *b )
 
     if ( VectorLength ( & self -> pfact ) != 0 )
     {
-        if ( compact )
-            rc = SExpressionBracketListDump ( & self -> pfact, b, "<", ">" );
-        else
-            rc = SExpressionBracketListDump ( & self -> pfact, b, " < ", " >" );
+        rc = SExpressionBracketListDump ( & self -> pfact, b, " < ", " >" );
         if ( rc != 0 )
             return rc;
     }
diff --git a/libs/vdb/schema-int.c b/libs/vdb/schema-int.c
index d0204cf..572384f 100644
--- a/libs/vdb/schema-int.c
+++ b/libs/vdb/schema-int.c
@@ -87,7 +87,6 @@ rc_t init_keywords ( KSymTable *tbl )
         KEYWORD ( typeset ),
         KEYWORD ( validate ),
         KEYWORD ( version ),
-        KEYWORD ( view ),
         KEYWORD ( virtual ),
         KEYWORD ( void ),
         KEYWORD ( writeonly ),
diff --git a/libs/vdb/schema-parse.c b/libs/vdb/schema-parse.c
index d36cd8b..a19d864 100644
--- a/libs/vdb/schema-parse.c
+++ b/libs/vdb/schema-parse.c
@@ -65,14 +65,6 @@ void SchemaEnvInitFeatures ( SchemaEnv *env )
         env -> mixed_fact_param_list = 1;
         env -> script_function_called_schema = 1;
         break;
-    case 1:
-        switch ( ( uint8_t ) ( env -> version >> 16 ) )
-        {
-        case 1:
-            env -> default_view_decl = 1;
-            env -> has_view_keyword = 1;
-            break;
-        }
     }
 }
 
diff --git a/libs/vdb/schema-parse.h b/libs/vdb/schema-parse.h
index 2c955dc..22317ba 100644
--- a/libs/vdb/schema-parse.h
+++ b/libs/vdb/schema-parse.h
@@ -175,7 +175,6 @@ enum
     kw_typeset,
     kw_validate,
     kw_version,
-    kw_view,
     kw_virtual,
     kw_void,
     kw_writeonly,
@@ -202,10 +201,6 @@ struct SchemaEnv
     uint32_t schema_param_types_absent : 1;
     uint32_t mixed_fact_param_list : 1;
     uint32_t script_function_called_schema : 1;
-
-    /* V1 SWITCHES */
-    uint32_t default_view_decl : 1;
-    uint32_t has_view_keyword : 1;
 };
 
 /* SCHEMA_LANG_VERSION
diff --git a/libs/vdb/schema-priv.h b/libs/vdb/schema-priv.h
index dab6a6c..1d96432 100644
--- a/libs/vdb/schema-priv.h
+++ b/libs/vdb/schema-priv.h
@@ -923,9 +923,6 @@ struct STable
     /* optional expression for limiting all columns' blob sizes */
     struct SExpression const *limit;
 
-    /* optional default view declaration */
-    const String *dflt_view;
-
     /* scope */
     BSTree scope;
 
diff --git a/libs/vdb/schema-tbl.c b/libs/vdb/schema-tbl.c
index 2a0be41..586b434 100644
--- a/libs/vdb/schema-tbl.c
+++ b/libs/vdb/schema-tbl.c
@@ -52,9 +52,6 @@
 /* make implicit physical expressions explicit on output */
 #define DUMP_EXPLICIT_PHYS_MEMBERS 0
 
-/* temporary v1 schema modification */
-#define ALLOW_DEFAULT_VIEW_DECL 1
-
 
 /*--------------------------------------------------------------------------
  * SColumn
@@ -447,10 +444,6 @@ bool CC STableOverridesClone ( void *item, void *data )
 void CC STableWhack ( void *item, void *ignore )
 {
     STable *self = item;
-
-    if ( self -> dflt_view != NULL )
-        StringWhack ( self -> dflt_view );
-
 #if SLVL >= 8
     VectorWhack ( & self -> col, SColumnWhack, NULL );
     VectorWhack ( & self -> cname, SNameOverloadWhack, NULL );
@@ -2212,42 +2205,6 @@ rc_t untyped_tbl_expr ( KSymTable *tbl, KTokenSource *src, KToken *t,
     return rc;
 }
 
-#if SLVL >= 8
-static
-rc_t default_view_decl ( KSymTable *tbl, KTokenSource *src, KToken *t,
-    const SchemaEnv *env, VSchema *self, STable *table )
-{
-    rc_t rc;
-    bool string_too_long;
-
-    if ( next_token ( tbl, src, t ) -> id != eString )
-        return KTokenExpected ( t, klogErr, "default view declaration" );
-
-    string_too_long = false;
-    if ( t -> str . size >= 236 + 2 )
-    {
-        KTokenExpected ( t, klogWarn, "default view declaration less than 236 characters" );
-        string_too_long = true;
-    }
-
-    rc = expect ( tbl, src, t, eSemiColon, ";", true );
-    if ( rc == 0 && ! string_too_long )
-    {
-        String decl = t -> str;
-        ++ decl . addr;
-        decl . size -= 2;
-        decl . len -= 2;
-
-        if ( table -> dflt_view != NULL )
-            StringWhack ( table -> dflt_view );
-
-        rc = StringCopy ( & table -> dflt_view, & decl );
-    }
-
-    return rc;
-}
-#endif
-
 /*
  * table-local-decl   = [ 'virtual' ] 'column' <column-decl>
  *                    | 'physical' [ 'column' ] <physical-decl>
@@ -2263,14 +2220,6 @@ rc_t table_local_decl ( KSymTable *tbl, KTokenSource *src, KToken *t,
     {
 #if SLVL >= 8
     case kw_default:
-        if ( env -> default_view_decl )
-        {
-            KToken t2;
-            if ( next_token ( tbl, src, & t2 ) -> id == kw_view )
-                return default_view_decl ( tbl, src, t, env, self, table );
-             KTokenSourceReturn ( src, & t2 );
-        }
-        /* no break */
     case kw_extern:
     case kw_column:
     case kw_readonly:
@@ -2859,13 +2808,14 @@ rc_t table_declaration ( KSymTable *tbl, KTokenSource *src, KToken *t,
     rc_t rc;
     void *ignore;
 
-    STable *table = calloc ( 1, sizeof * table );
+    STable *table = malloc ( sizeof * table );
     if ( table == NULL )
     {
         rc = RC ( rcVDB, rcSchema, rcParsing, rcMemory, rcExhausted );
         return KTokenRCExplain ( t, klogInt, rc );
     }
 
+    memset ( table, 0, sizeof * table );
     rc = table_decl ( tbl, src, t, env, self, table );
     if ( rc == 0 )
     {
diff --git a/libs/vdb/schema-type.c b/libs/vdb/schema-type.c
index 0bb5186..019b1df 100644
--- a/libs/vdb/schema-type.c
+++ b/libs/vdb/schema-type.c
@@ -1343,7 +1343,7 @@ rc_t VTypedeclDump ( const VTypedecl *self, SDumper *b )
     {
         const SDatatype *dt = VSchemaFindTypeid ( b -> schema, type_id );
         rc = SDatatypeDump ( dt, b );
-        if ( rc == 0 && dt != NULL && dt -> id == 0 )
+        if ( rc == 0 && dt -> id == 0 )
             return 0;
     }
     else if ( type_id < 0x80000000 )
@@ -1818,13 +1818,7 @@ rc_t create_fqn_sym ( KSymTable *tbl, KTokenSource *src, KToken *t,
     if ( KTokenizerNext ( kDefaultTokenizer, & src2, & t2 ) -> id == eColon )
     {
         /* and again to find ident or name */
-        KTokenizerNext ( kDefaultTokenizer, & src2, & t2 );
-
-        /* allow reserved word "view" to be used in schemas <= 1.0 */
-        if ( t2 . id == kw_view && ! env -> has_view_keyword )
-            t2 . id = eIdent;
-
-        if ( t2 . id == eIdent || t2 . id == eName )
+        if ( KTokenizerNext ( kDefaultTokenizer, & src2, & t2 ) -> id == eIdent || t2 . id == eName )
         {
             /* create a namespace and go in */
             KSymbol *ns;
@@ -1875,13 +1869,6 @@ rc_t enter_namespace ( KSymTable *tbl, KTokenSource *src, KToken *t,
         case eName:
             rc = create_fqn_sym ( tbl, src, t, env, id, obj );
             break;
-        case kw_view:
-            if ( ! env -> has_view_keyword )
-            {
-                rc = create_fqn_sym ( tbl, src, t, env, id, obj );
-                break;
-            }
-            /* no break */
         default:
             if ( t -> id == id )
                 rc = RC ( rcVDB, rcSchema, rcParsing, rcToken, rcExists );
@@ -1903,6 +1890,7 @@ rc_t create_fqn ( KSymTable *tbl, KTokenSource *src, KToken *t,
         return enter_namespace ( tbl, src, t, env, id, obj );
     case eIdent:
         return create_fqn_sym ( tbl, src, t, env, id, obj );
+
     default:
         if ( t -> id == id )
             return RC ( rcVDB, rcSchema, rcParsing, rcToken, rcExists );
diff --git a/libs/vdb/schema.c b/libs/vdb/schema.c
index 183df2a..343ff8c 100644
--- a/libs/vdb/schema.c
+++ b/libs/vdb/schema.c
@@ -47,8 +47,8 @@
 #include <klib/namelist.h>
 #include <klib/data-buffer.h>
 #include <klib/printf.h>
-#include <klib/out.h>
 #include <klib/rc.h>
+#include <fmtdef.h>
 #include <os-native.h>      /* because of snprintf on windows */
 #include <sysalloc.h>
 
@@ -181,11 +181,11 @@ void CC KSymbolList ( BSTNode *item, void *data )
     const KSymbol *self = ( const KSymbol* ) item;
     const char *indent = ( const char* ) data;
 
-    OUTMSG (( "%s%.*s = %#p"
+    printf ( "%s%.*s = 0x%" LUSZ
              , indent
              , ( int ) self -> name . size, self -> name . addr
-             , self
-        ));
+             , ( size_t ) self
+        );
 
     if ( self -> type != eNamespace )
         putchar ( '\n' );
@@ -202,10 +202,10 @@ void CC KSymbolList ( BSTNode *item, void *data )
 static
 void CC BSTreeListSymbols ( const BSTree *self, const char *indent )
 {
-    OUTMSG (( "%sscope = %#p\n"
+    printf ( "%sscope = 0x%" LUSZ "\n"
              , indent
-             , self
-        ));
+             , ( size_t ) self
+        );
 
     if ( indent [ -1 ] != '.' )
         -- indent;
@@ -741,8 +741,7 @@ rc_t CC VSchemaParseTextInt ( VSchema *self,
     KTokenText tt;
     KTokenSource src;
     String str, path;
-    rc_t rc;
-    
+
     if ( name == NULL || name [ 0 ] == 0 )
         CONST_STRING ( & path, "<unnamed>" );
     else
@@ -752,14 +751,7 @@ rc_t CC VSchemaParseTextInt ( VSchema *self,
     KTokenTextInit ( & tt, & str, & path );
     KTokenSourceInit ( & src, & tt );
 
-    rc = schema ( & src, self );
-    
-    if (rc == 0)
-        PARSE_DEBUG( ("Parsed schema from %s\n", name) );
-    else
-        PARSE_DEBUG( ("Failed to parse schema from %s\n", name) );
-    
-    return rc;
+    return schema ( & src, self );
 }
 
 LIB_EXPORT rc_t CC VSchemaParseText ( VSchema *self, const char *name,
diff --git a/libs/vdb/table-cmn.c b/libs/vdb/table-cmn.c
index 3b289b2..980ac23 100644
--- a/libs/vdb/table-cmn.c
+++ b/libs/vdb/table-cmn.c
@@ -518,7 +518,7 @@ rc_t list_readable_columns ( const VTable *cself )
     VTable *self = ( VTable* ) cself;
 
     VCursor *curs;
-    rc_t rc = VTableCreateCursorReadInternal ( self, ( const VCursor** ) & curs );
+    rc_t rc = VTableCreateCursorRead ( self, ( const VCursor** ) & curs );
     if (  rc == 0 )
     {
         /* let this private VCursor-function list the columns */
@@ -596,97 +596,6 @@ LIB_EXPORT rc_t CC VTableListCol ( const VTable *cself, KNamelist **names )
 }
 
 
-
-/* ListPhysColumns
- *  avail: 2.4
- */
-LIB_EXPORT rc_t CC VTableListPhysColumns ( const VTable *self, KNamelist **names )
-{
-    rc_t rc;
-
-    if ( names == NULL )
-        rc = RC ( rcVDB, rcTable, rcListing, rcParam, rcNull );
-    else
-    {
-        * names = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcVDB, rcTable, rcListing, rcSelf, rcNull );
-        else
-        {
-            KNamelist *kcol_names;
-            rc = KTableListCol ( self -> ktbl, & kcol_names );
-            if ( rc == 0 )
-            {
-                uint32_t kcol_count;
-                rc = KNamelistCount ( kcol_names, & kcol_count );
-                if ( rc == 0 )
-                {
-                    uint32_t scol_count = 0;
-                    KNamelist *scol_names = NULL;
-                    const KMDataNode *col_node = self -> col_node;
-
-#if LAZY_OPEN_COL_NODE
-                    if ( col_node == NULL )
-                    {
-                        rc = KMetadataOpenNodeRead ( self -> meta, & ( ( VTable* ) self ) -> col_node, "col" );
-                        if ( rc == 0 || GetRCState ( rc ) != rcNotFound )
-                            col_node = self -> col_node;
-                    }
-#endif
-                    if ( col_node != NULL )
-                    {
-                        rc = KMDataNodeListChildren ( col_node, & scol_names );
-                        if ( rc == 0 )
-                            rc = KNamelistCount ( scol_names, & scol_count );
-                    }
-
-                    if ( rc == 0 )
-                    {
-                        VNamelist *vnames;
-                        rc = VNamelistMake ( & vnames, kcol_count + scol_count );
-                        if ( rc == 0 )
-                        {
-                            uint32_t i;
-                            const char *name;
-
-                            for ( i = 0; i < kcol_count && rc == 0; ++ i )
-                            {
-                                rc = KNamelistGet ( kcol_names, i, & name );
-                                if ( rc == 0 )
-                                    rc = VNamelistAppend ( vnames, name );
-                            }
-
-                            for ( i = 0; i < scol_count && rc == 0; ++ i )
-                            {
-                                rc = KNamelistGet ( scol_names, i, & name );
-                                if ( rc == 0 )
-                                    rc = VNamelistAppend ( vnames, name );
-                            }
-
-                            if ( rc == 0 )
-                            {
-                                rc = VNamelistToNamelist ( vnames, names );
-                                if ( rc == 0 )
-                                    VNamelistReorder ( vnames, false );
-                            }
-                        }
-
-                        VNamelistRelease ( vnames );
-                    }
-
-                    KNamelistRelease ( scol_names );
-                }
-
-                KNamelistRelease ( kcol_names );
-            }
-        }
-    }
-
-    return rc;
-}
-
-
 /* ListDatatypes
  *  returns list of typedecls for named column
  *
@@ -1037,34 +946,6 @@ LIB_EXPORT rc_t CC VTableTypespec ( const VTable *self, char *ts_buff, size_t ts
 }
 
 
-/* HasStaticColumn - PRIVATE
- *  given a physical column name, report whether it exists
- *  and is ( currently ) static
- *  avail: 2.5
- */
-LIB_EXPORT bool CC VTableHasStaticColumn ( const VTable *self, const char *name )
-{
-    if ( self != NULL && name != NULL && name [ 0 ] != 0 )
-    {
-        /* a full check of this might include testing that the column
-           can be opened for read or write, but the API is purposely
-           vague on what this means.
-
-           currently the meaning of this ( PRIVATE ) API is whether
-           there is a metadata column entry with this name - period. */
-        const KMDataNode *node;
-        rc_t rc = KMetadataOpenNodeRead ( self -> meta, & node, "/col/%s", name );
-        if ( rc == 0 )
-        {
-            KMDataNodeRelease ( node );
-            return true;
-        }
-    }
-
-    return false;
-}
-
-
 /*--------------------------------------------------------------------------
  * VColumnRef
  *  cache entry
@@ -1146,7 +1027,7 @@ rc_t create_cursor_all_readable_columns(const VTable *self,
     rc_t rc = VTableListReadableColumns(self, &list);
     
     if (rc == 0) {
-        rc = VTableCreateCursorReadInternal(self, curs);
+        rc = VTableCreateCursorRead(self, curs);
         if (rc == 0) {
             uint32_t n;
             
diff --git a/libs/vdb/table-priv.h b/libs/vdb/table-priv.h
index 4835628..e9078ec 100644
--- a/libs/vdb/table-priv.h
+++ b/libs/vdb/table-priv.h
@@ -175,7 +175,7 @@ rc_t VTableLoadSchema ( VTable *self );
 /* StoreSchema
  *  stores schema definition in metadata
  */
-VDB_EXTERN rc_t VTableStoreSchema ( VTable *self );
+rc_t VTableStoreSchema ( VTable *self );
 
 /* support for listing
  */
diff --git a/libs/vdb/wcolumn.c b/libs/vdb/wcolumn.c
index 1a4fa97..44a93a2 100644
--- a/libs/vdb/wcolumn.c
+++ b/libs/vdb/wcolumn.c
@@ -49,27 +49,175 @@
 #include <string.h>
 #include <assert.h>
 
-/* these constants MUST each be a power of two */
-#define INITIAL_DATA_PEAK ( 32 * 1024 )
-#define SINGLE_PAGE_SIZE ( 4 * 1024 )
-
-/* this is a fairly high value, useful for writing single tables
-   of data that are generally accessed serially. it's bad for random. */
 #define DFLT_TRIGGER ( 2 * 1024 * 1024 )
-
-/* debugging aid - Row-wise RunLengthEncoding ( repeated column
-   elimination ) can be disabled to check for errors it may introduce. */
 #define USE_RLE 1
 
-/* when defined, use as an additional condition for detecting
-   auto-commit cutoff points, with a limit in kilo-rows given below */
-#define ROW_COUNT_CUTOFFS 128
+/*--------------------------------------------------------------------------
+ * VDBMemBuffer
+ *  manages a linked list of VDBMem objects
+ */
+typedef struct VDBMemBuffer VDBMemBuffer;
+struct VDBMemBuffer
+{
+    bitsz_t start;      /* offset in bits from the first memory page start to the first unwritten element */
+    bitsz_t end;        /* bit offset just past last unwritten element */
+    bitsz_t marker;     /* a cursor of sorts that should be in the page referred to by mem */
+    /* NOTE: marker is not always referring to an element and the user of this object
+     * is required to track this */
+    const VDBMem *mem;  /* a memory page that should contain the marker below */
+};
+
+/* these are compile time constants */
+#define VDBMemBitsInPage()      ((bitsz_t)(sizeof ((VDBMem*)0)->page * 8))
+#define VDBMemBitsInPageMask()  (VDBMemBitsInPage()-1)
+
+/* InitHead
+ * initialize buffer to point to left edge of first element
+ * buffer may be empty
+ *
+ * Parameters are expected to be good, no production run-time verification applied.
+ */
+static
+void VDBMemBufferInitHead ( VDBMemBuffer *self, void *mem,
+    bitsz_t start, bitsz_t elem_size, uint64_t elem_count )
+{
+    /* during development these are validated: element size can't ever be zero
+     * the memory page must be an actual page or if its not then there can't be
+     * any elements or offset with in the NULL page */
+    assert (self != NULL);
+    assert (elem_size != 0);
+    assert ((mem != NULL) || ((mem == NULL) && (start == 0) && (elem_count == 0)));
+
+    self -> mem = ( const void* ) mem;
+    self -> start = self -> marker = start;     /* cursor at first element */
+    self -> end = start + elem_size * elem_count; /* just past last element */
+}
+
+/* InitTail
+ *  initialize buffer to point to last bit
+ *  buffer must not be empty
+ *
+ * Parameters are expected to be good, no verification applied.
+ */
+static
+void VDBMemBufferInitTail ( VDBMemBuffer *self, void *mem,
+    bitsz_t start, bitsz_t elem_size, uint64_t elem_count )
+{
+    /* during development these are validated: element size can't ever be zero
+     * the memory page must be an actual page and there must be valid elements */
+    assert (self != NULL);
+    assert (elem_size != 0);
+    assert ( mem != NULL );
+    assert (elem_count != 0);
+    assert (start < VDBMemBitsInPage());
+
+    self -> mem = ( const void* ) mem;
+    self -> start = start;
+    self -> end = start + elem_size * elem_count;
+    assert ( self -> end > start );
+    self -> marker = self -> end - 1;   /* cursor at last element's last bit */
+    /* NOTE: with marker not referring to an element the first "advance" must
+     * take that off by one bit into account rather than seek the exact number of bits
+     * in elements that we'd want to move the marker */
+}
+
+/* Advance
+ *  sets marker
+ */
+static
+bool VDBMemBufferAdvance ( VDBMemBuffer *self, bitsz_t bits, bool reverse )
+{
+    if ( bits != 0 )
+    {
+        bitsz_t marker;
+        const VDBMem *mem;
+        uint64_t cur, targ;
+
+        if ( ! reverse )                        /* forward */
+            marker = self -> marker + bits;
+        else                                    /* backward */
+        {
+            if ( self -> marker < bits )        /* can't back up past beginning of buffer list */
+                return false;
+            marker = self -> marker - bits;
+            if ( marker < self -> start )       /* can't back up past stored begining of valid data */
+                return false;
+        }
+
+        /* anything beyond buffer is an illegal seek */
+        if ( marker >= self -> end )
+            return false;
+
+        /* convert markers to zero-based page ids */
+        cur = self -> marker / ( sizeof mem -> page * 8 );
+        targ = marker / ( sizeof mem -> page * 8 );
+        if ( cur != targ )      /* change pages if we have to */
+        {
+            /* rewind loop */
+            for ( mem = self -> mem; cur > targ; -- cur )
+            {
+                mem = ( const VDBMem* ) DLNodePrev ( & mem -> n );
+                assert ( mem != NULL );
+            }
+
+            /* forward loop */
+            for ( ; cur < targ; ++ cur )
+            {
+                mem = ( const VDBMem* ) DLNodeNext ( & mem -> n );
+                assert ( mem != NULL );
+            }
+
+            self -> mem = mem;
+        }
+
+        /* take new marker */
+        self -> marker = marker;
+    }
+
+    return true;
+}
+
+/* Access
+ *  return pointer to current element (by marker/cursor)
+ *  along with bit offset and number of BITS available
+ */
+static
+const void *VDBMemBufferAccess ( VDBMemBuffer *self, bitsz_t *boff, bitsz_t *avail )
+{
+    const VDBMem *mem = self -> mem;
+    bitsz_t bits, marker = self -> marker;
+
+    /* if nothing was ever added to the buffer list */
+    assert (marker < self->end);
+    if ( mem == NULL )
+    {
+        if ( boff != NULL )
+            * boff = 0;
+        if ( avail != NULL )
+            * avail = 0;
+        return NULL;
+    }
+
+    /* bits available in page past marker */
+    bits =  VDBMemBitsInPage() - ( marker & VDBMemBitsInPageMask()) ;
+
+    /* limit to end of buffer if not full page */
+    if ( marker + bits > self -> end )
+        bits = self -> end - marker;
+
+    /* return bit offset */
+    if ( boff != NULL )
+        * boff = marker & 7;
+
+    /* return bytes available */
+    if ( avail != NULL )
+        * avail = bits;
+
+    /* return byte pointer */
+/*     return & mem -> page [ ( marker >> 3 ) & ( sizeof mem -> page - 1 ) ]; */
+    return & mem->page[(marker & VDBMemBitsInPageMask()) >> 3];
+}
 
-#if ROW_COUNT_CUTOFFS
-#define MAX_ROW_COUNT ( ROW_COUNT_CUTOFFS * 1024 )
-#else
-#define MAX_ROW_COUNT 0x40000000
-#endif
 
 
 /*--------------------------------------------------------------------------
@@ -77,17 +225,15 @@
  */
 
 static 
-void WColumnDestroy ( WColumn * self )
+void WColumnDestroy (WColumn * self)
 {
 #if PROD_REFCOUNT && ! PROD_ALL_IN_CURSOR
-    PROD_TRACK_REFCOUNT ( VProductionRelease, self -> out );
-    VProductionRelease ( self -> out, NULL );
-    PROD_TRACK_REFCOUNT ( VProductionRelease, self -> val );
-    VProductionRelease ( self -> val, NULL );
+    PROD_TRACK_REFCOUNT (VProductionRelease,self->out);
+    VProductionRelease ( self->out, NULL);
+    PROD_TRACK_REFCOUNT (VProductionRelease,self->val);
+    VProductionRelease (self->val, NULL);
 #endif
 }
-
-
 /* Whack
  *  perform read-only cleanup
  */
@@ -105,18 +251,19 @@ void CC VColumnWhack ( void *item, void *data )
 
     if ( ! self -> read_only )
     {
-        WColumn *wself = ( WColumn* ) self;
+        WColumn *wself = (WColumn *)self;
 
         if ( wself -> page != NULL )
         {
             TRACK_BLOB (VBlobRelease, wself->page);
-            VBlobRelease ( wself -> page );
+            (void)VBlobRelease ( wself -> page );
         }
 
         KDataBufferWhack ( & wself -> dflt );
-        KDataBufferWhack ( & wself -> data );
-        KDataBufferWhack ( & wself -> rowmap );
-        WColumnDestroy ( wself );
+        DLListWhack ( & wself -> data, VDBMemRelease, wself -> mgr );
+        DLListWhack ( & wself -> rowmap, VDBMemRelease, wself -> mgr );
+        VDBManagerSever ( wself -> mgr );
+        WColumnDestroy (wself);
 
     }
 
@@ -139,35 +286,27 @@ rc_t WColumnMake ( VColumn **colp, const VSchema *schema,
     assert ( scol != NULL );
     assert ( mgr != NULL );
 
-    col = calloc ( 1, sizeof * col );
+    col = malloc ( sizeof * col );
     if ( col == NULL )
         rc = RC ( rcVDB, rcColumn, rcConstructing, rcMemory, rcExhausted );
     else
     {
+        memset ( col, 0, sizeof * col );
         rc = VColumnInit ( & col -> dad, schema, scol );
         if ( rc == 0 )
         {
-            uint32_t i;
-
-            /* initialize peak histories */
-            for ( i = 0; i < sizeof col -> data_peak_hist / sizeof col -> data_peak_hist [ 0 ]; ++ i )
-                col -> data_peak_hist [ i ] = INITIAL_DATA_PEAK;
+            col -> mgr = VDBManagerAttach ( mgr );
+            DLListInit ( & col -> data );
+            DLListInit ( & col -> rowmap );
 
-            /* initial current peak */
-            col -> data_peak = INITIAL_DATA_PEAK;
-
-            /* use column-specific expression if provided */
             if ( scol -> limit != NULL )
                 blob_limit = scol -> limit;
 
-            /* evaluate blob cutoff limit expression */
             if ( blob_limit == NULL )
             {
 #ifdef DFLT_TRIGGER
-                /* use define */
                 col -> trigger = DFLT_TRIGGER;
 #else
-                /* produce max unsigned integer */
                 -- col -> trigger;
 #endif
             }
@@ -236,7 +375,7 @@ rc_t WColumnSetDefault ( VColumn *vcol,
     bitsz_t elem_bits, const void *buffer, bitsz_t boff, uint64_t len )
 {
     rc_t rc;
-    bitsz_t elem_size, to_copy;
+    bitsz_t elem_size;
     WColumn *self = ( WColumn* ) vcol;
 
     assert ( elem_bits != 0 );
@@ -273,16 +412,11 @@ rc_t WColumnSetDefault ( VColumn *vcol,
     }
 
     /* copy in the row */
-    to_copy = len * elem_bits;
-    if ( ( ( boff | to_copy ) & 7 ) != 0 )
-        bitcpy ( self -> dflt . base, 0, buffer, boff, to_copy );
-    else
-        memcpy ( self -> dflt . base, & ( ( const uint8_t* ) buffer ) [ boff >> 3 ], to_copy >> 3 );
+    bitcpy ( self -> dflt . base, 0, buffer, boff, len * elem_bits );
     self -> have_dflt = true;
     return 0;
 }
 
-
 /* OpenRow
  *  update state
  *
@@ -292,24 +426,22 @@ rc_t WColumnSetDefault ( VColumn *vcol,
 void CC WColumnOpenRow ( void *item, void *const_row_id )
 {
     WColumn *self = item;
-    if ( self != NULL )
-    {
-        int64_t row_id = * ( const int64_t* ) const_row_id;
+    int64_t row_id = * ( const int64_t* ) const_row_id;
 
-        assert ( ! self -> row_written );
-        if ( self -> start_id != self -> end_id )
-        {
-            assert ( row_id == self -> end_id );
-        }
-        else
-        {
-            /* capture row id */
-            self -> start_id = self -> end_id = self -> cutoff_id = row_id;
-            assert ( self -> bits_in_buffer == 0 );
-            assert ( self -> row_len == 0 );
-            assert ( self -> num_rows == 0 );
-            assert ( self -> dflt_last == false );
-        }
+    assert ( ! self -> row_written );
+    if ( self -> start_id != self -> end_id )
+    {
+        assert ( row_id == self -> end_id );
+    }
+    else
+    {
+        /* capture row id */
+        self -> start_id = self -> end_id = self -> cutoff_id = row_id;
+        assert ( self -> data_off == 0 );
+        assert ( self -> rowmap_off == 0 );
+        assert ( self -> num_rows == 0 );
+        assert ( self -> num_elems == 0 );
+        assert ( self -> row_len == 0 );
     }
 }
 
@@ -319,34 +451,30 @@ void CC WColumnOpenRow ( void *item, void *const_row_id )
 rc_t WColumnWrite ( VColumn *cself,
     bitsz_t elem_bits, const void *buffer, bitsz_t boff, uint64_t len )
 {
+    rc_t rc;
+    bitsz_t elem_size;
     WColumn *self = ( WColumn* ) cself;
 
-    bitsz_t elem_size, num_bits, data_bits, doff;
+    DLList data;
+    VDBMem *mem;
+    uint8_t *dst;
+    bitsz_t num_bits, num_writ, to_write, doff;
 
     assert ( elem_bits != 0 );
     assert ( buffer != NULL || ( boff == 0 && len == 0 ) );
 
-    /* the number of bits to write */
-    num_bits = ( bitsz_t ) elem_bits * len;
-
     /* test "compatibility" of elem_bits
        this is used to interpret "len" */
     elem_size = VTypedescSizeof ( & self -> dad . desc );
-    if ( elem_bits != elem_size )
-    {
-        if ( elem_bits < elem_size && elem_size % elem_bits != 0 )
-            return RC ( rcVDB, rcColumn, rcUpdating, rcType, rcInconsistent );
-        if ( elem_bits > elem_size && elem_bits % elem_size != 0 )
-            return RC ( rcVDB, rcColumn, rcUpdating, rcType, rcInconsistent );
-        if ( num_bits % elem_size != 0 )
-            return RC ( rcVDB, rcColumn, rcUpdating, rcType, rcInconsistent );
-    }
+    if ( elem_bits < elem_size && elem_size % elem_bits != 0 )
+        return RC ( rcVDB, rcColumn, rcUpdating, rcType, rcInconsistent );
+    if ( elem_bits > elem_size && elem_bits % elem_size != 0 )
+        return RC ( rcVDB, rcColumn, rcUpdating, rcType, rcInconsistent );
 
     /* allow empty row */
     if ( len == 0 )
     {
         self -> row_written = true;
-        self -> dflt_last = false;
         return 0;
     }
 
@@ -354,55 +482,58 @@ rc_t WColumnWrite ( VColumn *cself,
     if ( self -> row_committed )
         return RC ( rcVDB, rcColumn, rcUpdating, rcColumn, rcBusy );
 
-    /* total number of bits to be put into buffer */
-    doff = self -> bits_in_buffer + self -> row_len;
-    data_bits = doff + num_bits;
+    /* the number of bits to write */
+    num_bits = ( bitsz_t ) elem_bits * len;
 
-    /* see if it fits into buffer */
-    if ( data_bits > KDataBufferBits ( & self -> data ) )
-    {
-        rc_t rc;
+    /* prepare data row pointer */
+    doff = self -> data_off + ( self -> num_elems + self -> row_len ) * elem_size;
+    doff &= sizeof mem -> page * 8 - 1;
 
-        /* calculate needed bytes */
-        size_t new_size = ( ( size_t ) ( ( data_bits + 7 ) >> 3 ) + INITIAL_DATA_PEAK - 1 )
-            & ~ ( size_t ) ( INITIAL_DATA_PEAK - 1 );
+    /* prepare whack lists */
+    DLListInit ( & data );
 
-        /* need buffer memory */
-        if ( self -> data . elem_count == 0 )
-        {
-            /* always go with the peak size if larger */
-            if ( new_size < self -> data_peak )
-                new_size = self -> data_peak;
+    /* prepare initial destination pointer */
+    mem = ( VDBMem* ) DLListTail ( & self -> data );
+    dst = ( mem == NULL ) ? NULL : mem -> page;
 
-            /* make initial buffer at most recent peak */
-            rc = KDataBufferMakeBytes ( & self -> data, new_size );
-            if ( rc != 0 )
-                return rc;
-        }
-        else
+    /* append row data */
+    for ( rc = 0, num_writ = 0; num_writ < num_bits; doff += to_write, num_writ += to_write )
+    {
+        bitsz_t avail;
+
+        /* allocate more buffer space */
+        if ( ( doff & ( sizeof mem -> page * 8 - 1 ) ) == 0 )
         {
-            /* we have a new peak */
-            rc = KDataBufferResize ( & self -> data, new_size );
+            rc = VDBManagerMakeMem ( self -> mgr, & mem );
             if ( rc != 0 )
-                return rc;
+                break;
+            DLListPushTail ( & data, & mem -> n );
+            dst = mem -> page;
+            doff = 0;
         }
+
+        /* decide on the bits to write */
+        avail = ( sizeof mem -> page * 8 ) - doff;
+        to_write = num_bits - num_writ;
+        if ( avail < to_write )
+            to_write = avail;
+
+        /* copy in the data */
+        bitcpy ( dst, doff, buffer, boff + num_writ, to_write );
     }
 
-    /* copy in data */
-    if ( ( ( boff | doff | num_bits ) & 7 ) != 0 )
-        bitcpy ( self -> data . base, doff, buffer, boff, num_bits );
-    else
+    /* if all were written, accept changes */
+    if ( rc == 0 )
     {
-        memcpy ( & ( ( uint8_t* ) self -> data . base ) [ doff >> 3 ],
-                 & ( ( const uint8_t* ) buffer ) [ boff >> 3 ], num_bits >> 3 );
+        self -> row_len += num_bits / elem_size;
+        DLListAppendList ( & self -> data, & data );
+        self -> row_written = true;
     }
 
-    /* accept changes */
-    self -> row_len += num_bits;
-    self -> row_written = true;
-    self -> dflt_last = false;
+    /* drop any uncommitted buffers */
+    DLListWhack ( & data, VDBMemRelease, self -> mgr );
 
-    return 0;
+    return rc;
 }
 
 /* RowDefaults
@@ -420,52 +551,31 @@ bool CC WColumnRowDefaults ( void *item, void *data )
     rc_t *rc = data;
 
     /* nothing to do if row written */
-    if ( self == NULL || self -> row_written )
+    if ( self -> row_written )
         return false;
 
     /* error if no default value */
     if ( ! self -> have_dflt )
     {
         * rc = RC ( rcVDB, rcColumn, rcClosing, rcRow, rcIncomplete );
-        PLOGERR ( klogErr,
-                  ( klogErr, * rc, "Column: $(col)", "col=%.*s"
-                    , self -> dad . scol -> name -> name . size
-                    , self -> dad . scol -> name -> name . addr )
-            );
+        (void)PLOGERR(klogErr, (klogErr, *rc, "Column: $(col)", "col=%.*s", self->dad.scol->name->name.size, self->dad.scol->name->name.addr));
         return true;
     }
-        
+
     /* detect NULL row as default */
     if ( self -> dflt . elem_bits == 0 )
     {
+        /* need to clip here, i.e. need to cut off blobs */
         * rc = RC ( rcVDB, rcColumn, rcClosing, rcRow, rcNull );
-        PLOGERR ( klogWarn,
-                  ( klogWarn, * rc, "Column: $(col)", "col=%.*s"
-                    , self -> dad . scol -> name -> name . size
-                    , self -> dad . scol -> name -> name . addr )
-            );
-        return false;
-    }
-
-    /* if the last column written was default,
-       there is an opportunity for simply incrementing the repeat count */
-    if ( USE_RLE && self -> dflt_last )
-    {
-        WColumnRowMap *rm = self -> rowmap . base;
-        assert ( self -> num_rows != 0 );
-        ++ rm [ self -> num_rows - 1 ] . cnt;
+        (void)PLOGERR(klogWarn, (klogWarn, *rc, "Column: $(col)", "col=%.*s", self->dad.scol->name->name.size, self->dad.scol->name->name.addr));
         return false;
     }
 
     /* write default data */
     * rc = WColumnWrite ( & self -> dad, self -> dflt . elem_bits,
         self -> dflt . base, 0, self -> dflt . elem_count );
-    if ( * rc != 0 )
-        return true;
-    
-    /* record the fact that this was default */
-    self -> dflt_last = true;
-    return false;
+
+    return ( * rc != 0 ) ? true : false;
 }
 
 /* CommitRow
@@ -480,115 +590,166 @@ bool CC WColumnRowDefaults ( void *item, void *data )
  *
  *  returns true if there was a memory error.
  */
-static
-bool WColumnCommitRepeatedRow ( WColumn *self, WColumnRowMap *rm, int64_t end_id )
+bool CC WColumnCommitRow ( void *item, void *data )
 {
-    /* if we've previously declared a cutoff id,
-       incorporate the repeated row into the range */
-    if ( ( self -> cutoff_id != self -> start_id ) && ( self -> cutoff_id + 1 == end_id ) )
-        self -> cutoff_id = end_id;
-
-    /* just account for the repeated row */
-    ++ rm -> cnt;
-
-    /* drop data */
-    self -> row_len = 0;
-
-    /* the row has been successfully committed */
-    self -> row_committed = true;
-
-    /* no error */
-    return false;
-}
+    WColumn *self = item;
+    int64_t *end_id = data;
 
-static
-bool WColumnCommitRowData ( WColumn *self, int64_t *end_id )
-{
-    size_t cur_size;
-    uint64_t row_len;
+    VDBMem *mem;
     bitsz_t elem_bits;
     WColumnRowMap *rm;
+    size_t rmoff, cur_size;
 
     /* if no data were written and that's okay, ignore */
     if ( ! self -> row_written )
     {
-        assert ( self -> row_len == 0 );
         self -> row_committed = true;
         return false;
     }
 
-    /* column's element size */
+    /* likely to need this later */
     elem_bits = VTypedescSizeof ( & self -> dad . desc );
-    assert ( self -> row_len % elem_bits == 0 );
-    row_len = self -> row_len / elem_bits;
 
-    /* detect repeated row */
-    if ( USE_RLE && self -> num_rows != 0 )
-    {
-        rm = self -> rowmap . base;
-        rm += self -> num_rows - 1;
+    /* last buffer */
+    mem = ( VDBMem* ) DLListTail ( & self -> rowmap );
 
-        if ( rm -> len == row_len )
-        {
-            bitsz_t poff, coff;
-            const uint8_t *base;
+    /* detect a prior row */
+    if ( self -> num_rows != 0 )
+    {
+        /* byte offset to rowmap entry */
+        rmoff = ( self -> num_rows + self -> rowmap_off - 1 ) * sizeof * rm;
 
-            if ( row_len == 0 )
-                return WColumnCommitRepeatedRow ( self, rm, * end_id );
+        assert ( mem != NULL );
 
-            base = ( const void* ) self -> data . base;
-            assert ( self -> bits_in_buffer >= self -> row_len );
-            coff = self -> bits_in_buffer;
-            poff = self -> bits_in_buffer - self -> row_len;
+        /* point to prior row entry */
+        rm = ( void* ) & mem -> page [ rmoff & ( sizeof mem -> page - 1 ) ];
 
-            if ( ( ( poff | coff | self -> row_len ) & 7 ) != 0 )
+        /* RLE comparison starts with lengths */
+        if ( USE_RLE && rm -> len == self -> row_len )
+        {
+            /* two consecutive rows with same length */
+            if ( self -> row_len == 0 )
             {
-                if ( bitcmp ( base, poff, base, coff, self -> row_len ) == 0 )
-                    return WColumnCommitRepeatedRow ( self, rm, * end_id );
+                /* when the length is zero, there's nothing much to do */
+                ++ rm -> cnt;
+                self -> row_committed = true;
+                return false;
             }
             else
             {
-                if ( memcmp ( & base [ poff >> 3 ], & base [ coff >> 3 ], self -> row_len >> 3 ) == 0 )
-                    return WColumnCommitRepeatedRow ( self, rm, * end_id );
+                VDBMemBuffer cur, prior;
+                bitsz_t cnt, to_cmp, num_bits = ( bitsz_t ) elem_bits * self -> row_len;
+
+                /* create first view onto buffer at tail */
+                VDBMemBufferInitTail ( & cur, DLListTail ( & self -> data ),
+                    self -> data_off, elem_bits, self -> num_elems + self -> row_len );
+
+                /* back up to beginning of uncommitted row */
+                if ( ! VDBMemBufferAdvance ( & cur, num_bits - 1, true ) )
+                    return true;
+
+                /* "cur" points at the current row. prepare "prior" to point to
+                   the row before that which is the last committed row, which we
+                   know is the same length as the current row */
+                prior = cur;
+                assert ( self -> num_elems >= self -> row_len );
+                if ( ! VDBMemBufferAdvance ( & prior, num_bits, true ) )
+                    return true;
+
+                /* comparison loop */
+                for ( cnt = to_cmp = 0; cnt < num_bits; cnt += to_cmp )
+                {
+                    const void *p, *c;
+                    bitsz_t coff, cavail, poff, pavail;
+
+                    VDBMemBufferAdvance ( & prior, to_cmp, false );
+                    p = VDBMemBufferAccess ( & prior, & poff, & pavail );
+                    c = VDBMemBufferAccess ( & cur, & coff, & cavail );
+                    if ( p == NULL || c == NULL )
+                        return true;
+
+                    to_cmp = num_bits - cnt;
+                    if ( to_cmp > pavail )
+                        to_cmp = pavail;
+                    if ( to_cmp > cavail )
+                        to_cmp = cavail;
+
+                    /* compare bits */
+                    if ( bitcmp ( p, poff, c, coff, to_cmp ) != 0 )
+                        break;
+
+                    /* advance buffers */
+                    VDBMemBufferAdvance ( & cur, to_cmp, false );
+                }
+
+                /* if the rows were identical */
+                if ( cnt == num_bits )
+                {
+                    /* just bump the repeat count */
+                    ++ rm -> cnt;
+
+                    if ((self->cutoff_id != self->start_id) && (self->cutoff_id + 1 == *end_id))
+                        self->cutoff_id = *end_id;
+#if 1
+                    /* drop any extra buffers used during write */
+                    for ( mem = ( VDBMem* ) DLNodeNext ( & prior . mem -> n );
+                          mem != NULL;
+                          mem = ( VDBMem* ) DLNodeNext ( & prior . mem -> n ) )
+                    {
+                        DLListUnlink ( & self -> data, & mem -> n );
+                        VDBMemRelease ( & mem -> n, self -> mgr );
+                    }
+#else
+                    while ( DLListTail ( & self -> data ) != prior . mem -> n )
+                    {
+                        mem = ( VDBMem * ) DLListPopTail ( & self -> data );
+                        VDBMemRelease ( & mem -> n, self -> mgr );
+                    }
+#endif                    
+
+                    /* consider the row committed */
+                    self -> row_len = 0;
+                    self -> row_committed = true;
+                    goto check_size;
+                }
             }
         }
     }
 
-    /* need to add a new row */
-    if ( ( uint64_t ) self -> num_rows == self -> rowmap . elem_count )
+    /* offset to next rowmap entry */
+    rmoff = ( self -> num_rows + self -> rowmap_off ) * sizeof * rm;
+
+    /* check for space */
+    if ( mem == NULL ||( rmoff & ( sizeof mem -> page - 1 ) ) == 0 )
     {
-        /* need more memory */
-        rc_t rc;
-        self -> rowmap . elem_bits = sizeof * rm * 8;
-        rc = KDataBufferResize ( & self -> rowmap, self -> rowmap . elem_count + 16 * 1024 );
+        rc_t rc = VDBManagerMakeMem ( self -> mgr, & mem );
         if ( rc != 0 )
-        {
-            PLOGERR ( klogErr,
-                      ( klogErr, rc, "Column: $(col) failed to resize row map", "col=%.*s"
-                        , self -> dad . scol -> name -> name . size
-                        , self -> dad . scol -> name -> name . addr )
-                );
             return true;
-        }
+        DLListPushTail ( & self -> rowmap, & mem -> n );
+        rmoff = 0;
     }
 
-    rm = self -> rowmap . base;
-    rm += self -> num_rows;
-
+    /* mem might not be initialized! */
+    /* new rowmap entry */
+    rm = ( void* ) & mem -> page [ rmoff & ( sizeof mem -> page - 1 ) ];
+#if _DEBUGGING
     rm -> start_id = self -> end_id;
-    rm -> len = row_len;
+#endif
+    rm -> len = self -> row_len;
     rm -> cnt = 1;
 
-    self -> bits_in_buffer += self -> row_len;
-    self -> row_len = 0;
-
+    self -> num_elems += self -> row_len;
     ++ self -> num_rows;
+    self -> row_len = 0;
     self -> row_committed = true;
+check_size:
+    /* current size in bytes */
+    cur_size = ( (size_t)self -> num_elems * elem_bits + 7 ) >> 3;
 
-    /* detect 1x blob cutoff */
-    cur_size = ( size_t ) ( self -> bits_in_buffer + 7 ) >> 3;
+    /* if the buffer is large enough */
     if ( cur_size >= self -> trigger )
     {
+
         /* if size just crossed the trigger boundary and 
          * cutoff_id has not been advanced yet */
         if ( self -> cutoff_id == self -> start_id )
@@ -602,116 +763,56 @@ bool WColumnCommitRowData ( WColumn *self, int64_t *end_id )
             /* set to min of current end or our cutoff */
             if ( self -> cutoff_id < * end_id )
             {
-#if ROW_COUNT_CUTOFFS
-                /* the number of rows until our cutoff */
-                uint64_t row_count = self -> cutoff_id - self -> start_id;
-                if ( row_count != 0 )
-                {
-                    int64_t end;
-                    uint64_t msb = row_count;
-
-                    /* adjust id to nearest power of two size
-                       that does not exceed current id */
-                    while ( ( msb & ( msb - 1 ) ) != 0 )
-                        msb &= msb - 1;
-
-                    /* add in rounding factor to row_count */
-                    row_count += ( msb >> 1 );
-
-                    /* truncate */
-                    row_count &= ~ ( msb - 1 );
-
-                    if ( row_count >= 1024 )
-                    {
-                        /* limit to current row */
-                        while ( row_count > 1024 && self -> start_id + row_count > * end_id )
-                            row_count >>= 1;
-
-                        if ( self -> start_id + row_count <= * end_id )
-                            self -> cutoff_id = self -> start_id + row_count;
-                    }
-                }
-#endif
                 * end_id = self -> cutoff_id;
             }
         }
     }
-
     return false;
 }
 
-bool CC WColumnCommitRow ( void *item, void *data )
+/* CloseRow
+ *  discards uncommitted data
+ *  update state
+ */
+void CC WColumnCloseRow ( void *item, void *ignore )
 {
     WColumn *self = item;
-    if ( self != NULL )
+
+    if ( self -> row_len != 0 )
     {
-        int64_t *end_id = data;
+        /* discard any extra buffers used */
+        VDBMem *mem;
+        bitsz_t elem_bits = VTypedescSizeof ( & self -> dad . desc );
+        bitsz_t boff = self -> data_off + self -> num_elems * elem_bits;
+        bitsz_t origin = boff + self -> row_len * elem_bits;
 
-        if ( WColumnCommitRowData ( self, end_id ) )
-            return true;
+        /* set origin to the start of last buffer */
+        origin = ( origin - 1 ) & ~ ( bitsz_t ) ( sizeof mem -> page * 8 - 1 );
 
-        /* if the row range is too great */
-        if ( ( self -> end_id - self -> start_id ) >= MAX_ROW_COUNT )
+        if ((boff == 0) && (origin == 0)) /* we got nothing */
         {
-            /* if row range has just crossed the boundary and 
-             * cutoff_id has not been advanced yet */
-            if ( self -> cutoff_id == self -> start_id )
-            {
-                self -> cutoff_id = * end_id;
-            }
-
-            /* set to min of current end or our cutoff */
-            else if ( self -> cutoff_id < * end_id )
+            /* delete all but it should only be one if any */
+            while ((mem = (VDBMem*)DLListPopTail (&self->data)) != NULL)
+                VDBMemRelease ( & mem -> n, self -> mgr );
+        }
+        else
+        {
+            /* not reached, not tested, not understood */
+            for ( ; origin >= boff ; origin -= sizeof mem -> page * 8 )
             {
-                * end_id = self -> cutoff_id;
+                mem = ( VDBMem* ) DLListPopTail ( & self -> data );
+                assert ( mem != NULL );
+                VDBMemRelease ( & mem -> n, self -> mgr );
             }
         }
     }
 
-    return false;
-}
-
-/* RepeatRow
- *  go into the last row entry
- *  extend the count by uint64_t
- */
-void CC WColumnRepeatRow ( void *item, void *data )
-{
-    WColumn *self = item;
-    const WColumnRepeatRowData *pb = data;
-
-    if ( self != NULL && self -> num_rows != 0 )
-    {
-        WColumnRowMap *rm = self -> rowmap . base;
-        rm += self -> num_rows - 1;
-
-        /* if we've previously declared a cutoff id,
-           incorporate the repeated row into the range */
-        if ( ( self -> cutoff_id != self -> start_id ) && ( self -> cutoff_id + 1 == pb -> end_id ) )
-            self -> cutoff_id = pb -> end_id + pb -> count;
-
-        /* just account for the repeated row */
-        rm -> cnt += pb -> count;
-        self -> end_id += pb -> count;
-    }
-}
-
-/* CloseRow
- *  discards uncommitted data
- *  update state
- */
-void CC WColumnCloseRow ( void *item, void *ignore )
-{
-    WColumn *self = item;
-    if ( self != NULL )
-    {
-        if ( self -> row_committed )
-            ++ self -> end_id;
+    if ( self -> row_committed )
+        ++ self -> end_id;
 
-        self -> row_len = 0;
-        self -> row_written = false;
-        self -> row_committed = false;
-    }
+    self -> row_len = 0;
+    self -> row_written = false;
+    self -> row_committed = false;
 }
 
 /* BufferPage
@@ -724,316 +825,248 @@ void CC WColumnCloseRow ( void *item, void *ignore )
  *  returns true if there was a memory error.
  */
 static
-bool WColumnSplitBuffer ( WColumn *self, int64_t end_id, size_t rm_idx )
+rc_t WColumnMakePage ( WColumn *self, int64_t end_id,
+   bitsz_t elem_bits, uint64_t num_elems, uint64_t num_rows )
 {
     rc_t rc;
-    int64_t id;
-    VBlob *vblob;
-    bool splitting;
-    size_t i, data_cur;
-    uint64_t sum_elems;
-
-    const WColumnRowMap *rm = self -> rowmap . base;
-
-    uint64_t num_rows = rm [ rm_idx ] . start_id + rm [ rm_idx ] . cnt - self -> start_id;
-    assert ( rm [ 0 ] . start_id == self -> start_id );
-
-    /* adjust end_id [ TAKES CARE OF THEORETICAL ERROR CONDITION
-       NOT KNOWN TO EXIST ] and num_rows ( when splitting repeat ) */
-    id = end_id;
-    splitting = false;
-    if ( self -> start_id + num_rows <= id )
-        id = self -> start_id + num_rows;
-    else
-    {
-        num_rows = id - self -> start_id;
-        splitting = true;
-    }
 
-    /* release previous ( but unexpected ) cache if there */
     if ( self -> page != NULL )
     {
-        TRACK_BLOB ( VBlobRelease, self -> page );
-        VBlobRelease ( self -> page );
+        TRACK_BLOB (VBlobRelease, self->page);
+        ( void ) VBlobRelease ( self -> page );
         self -> page = NULL;
     }
 
-    /* create new blob */
-    rc = VBlobNew ( & vblob,
-                    self -> start_id, id - 1,
-                    self -> dad . scol -> name -> name . addr );
-    TRACK_BLOB ( VBlobNew, vblob );
-    if ( rc != 0 )
-    {
-        PLOGERR ( klogErr,
-                  ( klogErr, rc, "Column: $(col) failed to allocate page", "col=%.*s"
-                    , self -> dad . scol -> name -> name . size
-                    , self -> dad . scol -> name -> name . addr )
-            );
-        return true;
-    }
+    rc = VBlobNew ( & self -> page, self -> start_id, end_id - 1, self -> dad . scol -> name -> name . addr );
+    TRACK_BLOB (VBlobNew, self->page);
 
-    /* create blob page map */
-    rc = PageMapNew ( & vblob -> pm, rm_idx + 1 ); /*** rm_idx tells many WColumnRowMap need to be added to PageMap ***/
-    if ( rc != 0 )
+    if ( rc == 0 )
     {
-        TRACK_BLOB ( VBlobRelease, vblob );
-        VBlobRelease ( vblob );
-
-        PLOGERR ( klogErr,
-                  ( klogErr, rc, "Column: $(col) failed to create page map", "col=%.*s"
-                    , self -> dad . scol -> name -> name . size
-                    , self -> dad . scol -> name -> name . addr )
-            );
-        return true;
+        VBlob *vblob = self -> page;
+        rc = KDataBufferMake ( & vblob -> data, elem_bits, num_elems );
+        if ( rc == 0 )
+        {
+            rc = PageMapNew ( & vblob -> pm, num_rows );
+            if ( rc == 0 )
+                return 0;
+        }
+
+        TRACK_BLOB (VBlobRelease, vblob);
+        (void)VBlobRelease ( vblob );
+        self -> page = NULL;
     }
+    return rc;
+}
 
-    /* write page map up to ( but not including ) last entry */
-    for ( sum_elems = 0, i = 0; i < rm_idx; ++ i )
+#define ROWMAPS_PER_PAGE (sizeof(((const VDBMem *)0)->page) / sizeof(WColumnRowMap))
+#define ROWMAP_BITS (sizeof(WColumnRowMap) * 8)
+/* false return is good, true return is failure of some sort */
+bool CC WColumnBufferPage ( void *item, void *const_end_id )
+{
+    rc_t rc;
+    WColumn *self = item;
+    int64_t id, end_id = * ( const int64_t* ) const_end_id;
+
+    VDBMem *mem;
+    bool seek_ok;
+    const WColumnRowMap *rm = NULL;
+    VDBMemBuffer rowmap, data;
+    uint64_t num_elems, num_rows;
+    uint64_t rowmap_off;
+    bitsz_t cnt, num_bits, to_cpy, elem_bits;
+    bool advance = true;
+
+    /* initialize buffer onto rowmap */
+    VDBMemBufferInitHead ( & rowmap, DLListHead ( & self -> rowmap ),
+        self -> rowmap_off * ROWMAP_BITS, ROWMAP_BITS, self -> num_rows );
+
+    /* walk row map to count rows and elements through end_id not the whole list */
+    num_elems = num_rows = 0;
+    for ( id = self -> start_id;
+          id < end_id;
+          id += rm -> cnt )
     {
-        sum_elems += rm [ i ] . len;
-        rc = PageMapAppendSomeRows ( vblob -> pm, rm [ i ] . len, rm [ i ] . cnt );
-        if ( rc != 0 )
+        rm = VDBMemBufferAccess ( & rowmap, NULL, NULL );
+        if ( rm == NULL )
+            return true;
+        if (advance)
+            advance  = VDBMemBufferAdvance ( & rowmap, ROWMAP_BITS, false );
+        else
         {
-            TRACK_BLOB ( VBlobRelease, vblob );
-            VBlobRelease ( vblob );
-
-            PLOGERR ( klogErr,
-                      ( klogErr, rc, "Column: $(col) failed to write page map", "col=%.*s"
-                        , self -> dad . scol -> name -> name . size
-                        , self -> dad . scol -> name -> name . addr )
-                );
+            /* assert (0); */
             return true;
         }
+        num_elems += rm -> len;
+        assert (rm->start_id == id);
+        ++ num_rows;
     }
 
-    sum_elems += rm [ i ] . len;
-    rc = PageMapAppendSomeRows ( vblob -> pm, rm [ i ] . len, id - rm [ i ] . start_id );
+    /* allocate page */
+    elem_bits = VTypedescSizeof ( & self -> dad . desc );
+    rc = WColumnMakePage ( self, end_id, elem_bits, num_elems, num_rows );
     if ( rc != 0 )
-    {
-        TRACK_BLOB ( VBlobRelease, vblob );
-        VBlobRelease ( vblob );
-
-        PLOGERR ( klogErr,
-                  ( klogErr, rc, "Column: $(col) failed to write page map", "col=%.*s"
-                    , self -> dad . scol -> name -> name . size
-                    , self -> dad . scol -> name -> name . addr )
-            );
         return true;
-    }
 
-    /* determine current data buffer usage */
-    data_cur = ( size_t ) ( ( ( self -> bits_in_buffer + 7 ) >> 3 )
-        + SINGLE_PAGE_SIZE - 1 ) & ~ ( size_t ) ( SINGLE_PAGE_SIZE - 1 );
+    /* initialize data buffer */
+    VDBMemBufferInitHead ( & data, DLListHead ( & self -> data ),
+          self -> data_off, elem_bits, self -> num_elems + self -> row_len );
 
-    /* update peak history */
-    if ( self -> data_peak_hist [ self -> peak_hist_idx ] == self -> data_peak )
+    /* copy data */
+    num_bits = KDataBufferBits ( & self -> page -> data );
+    for ( seek_ok = true, cnt = 0; cnt < num_bits; cnt += to_cpy )
     {
-        int j;
-        size_t data_peak = data_cur;
+        bitsz_t avail, soff;
+        const void *src = VDBMemBufferAccess ( & data, & soff, & avail );
+        if ( src == NULL )
+            return true;
 
-        for ( j = ( self -> peak_hist_idx + 1 ) & 0xF;
-              j != self -> peak_hist_idx;
-              j = ( j + 1 ) & 0xF )
-        {
-            if ( self -> data_peak_hist [ j ] > data_peak )
-                data_peak = self -> data_peak_hist [ j ];
-        }
+        to_cpy = num_bits - cnt;
+        if ( to_cpy > avail )
+            to_cpy = avail;
 
-        self -> data_peak = data_peak;
+        bitcpy ( self -> page -> data . base, cnt, src, soff, to_cpy );
+
+        seek_ok = VDBMemBufferAdvance ( & data, to_cpy, false );
     }
-    self -> data_peak_hist [ self -> peak_hist_idx ] = data_cur;
-    self -> peak_hist_idx = ( self -> peak_hist_idx + 1 ) & 0xF;
-    if ( data_cur > self -> data_peak )
-        self -> data_peak = data_cur;
-
-    /* hand data over to blob */
-    vblob -> data = self -> data;
-    vblob -> data . elem_bits = VTypedescSizeof ( & self -> dad . desc );
-    vblob -> data . elem_count = sum_elems;
-
-    /* handle residual data */
-    if ( splitting )
-        sum_elems -= rm [ rm_idx ] . len;
-    else
-        ++ rm_idx;
 
-    if ( rm_idx == self -> num_rows )
+    /* if last seek failed, "to_cpy" represents the bits remaining */
+    if ( seek_ok )
+        to_cpy = 0;
+
+    /* capture left edge of data */
+    self -> data_off = data . marker + to_cpy;
+
+    /* if keeping the last row, back off by that amount:
+     * we could only "over shoot" by one in the loop above */
+    if ( id > end_id )
     {
-        /* no residual data/rows */
-        memset ( & self -> data, 0, sizeof self -> data );
-        self -> bits_in_buffer = 0;
-        self -> num_rows = 0;
-        self -> start_id = self -> cutoff_id = end_id;
+        self -> data_off -= elem_bits * rm -> len;
     }
-    else
+    /* drop data pages */
+    for ( ; self -> data_off >= sizeof mem -> page * 8; self -> data_off -= sizeof mem -> page * 8 )
     {
-        KDataBuffer data;
-        bitsz_t boff, to_copy;
-
-        /* allocate a new data buffer */
-        rc = KDataBufferMakeBytes ( & data, self -> data_peak );
-        if ( rc != 0 )
-        {
-            /* forget transfer of blob */
-            memset ( & vblob -> data, 0, sizeof vblob -> data );
+        mem = ( VDBMem* ) DLListPopHead ( & self -> data );
+        VDBMemRelease ( & mem -> n, self -> mgr );
+    }
 
-            TRACK_BLOB ( VBlobRelease, vblob );
-            VBlobRelease ( vblob );
+    /* re-initialize rowmap buffer */
+    VDBMemBufferInitHead ( & rowmap, DLListHead ( & self -> rowmap ),
+        self -> rowmap_off * ROWMAP_BITS, ROWMAP_BITS, self -> num_rows );
 
-            PLOGERR ( klogErr,
-                      ( klogErr, rc, "Column: $(col) failed to split page", "col=%.*s"
-                        , self -> dad . scol -> name -> name . size
-                        , self -> dad . scol -> name -> name . addr )
-                );
+    /* copy row map */
+    for ( ; num_rows > 1; -- num_rows )
+    {
+        rm = VDBMemBufferAccess ( & rowmap, NULL, NULL );
+        assert ( rm != NULL );
+        rc = PageMapAppendSomeRows ( self -> page -> pm, rm -> len, rm -> cnt );
+        if ( rc != 0 )
             return true;
-        }
-
-        /* copy data */
-        boff = ( rm_idx > 0 ) ?
-            sum_elems * vblob -> data . elem_bits : 0;
-        to_copy = self -> bits_in_buffer - boff;
-        if ( ( ( boff | to_copy ) & 7 ) != 0 )
-            bitcpy ( data . base, 0, self -> data . base, boff, to_copy );
-        else
-            memcpy ( data . base, & ( ( const uint8_t* ) self -> data . base ) [ boff >> 3 ], to_copy >> 3 );
-
-        self -> data = data;
-        self -> bits_in_buffer = to_copy;
-
-        /* copy row map */
-        memmove ( self -> rowmap . base, & rm [ rm_idx ], ( self -> num_rows -= rm_idx ) * sizeof * rm );
-
-        /* adjust starting id and repeat count if splitting single row */
-        if ( splitting )
-        {
-            WColumnRowMap *split = self -> rowmap . base;
-            split -> cnt = split -> start_id + split -> cnt - id;
-            split -> start_id = id;
-        }
-
-        self -> start_id = self -> cutoff_id = id;
+        VDBMemBufferAdvance ( & rowmap, ROWMAP_BITS, false );
     }
-
-    self -> page = vblob;
-    self -> dflt_last = false;
-
-    return false;
-}
-
-static
-int WColumnRowMapCompare ( const WColumnRowMap *self, int64_t id )
-{
-    /* id is right-edge exclusive */
-    if ( self -> start_id >= id )
-        return -1;
-    return id > self -> start_id + self -> cnt;
-}
-
-bool CC WColumnBufferPage ( void *item, void *const_end_id )
-{
-    WColumn *self = item;
-    if ( self != NULL )
+    for ( seek_ok = true; num_rows > 0; -- num_rows )
     {
-        int64_t end_id = * ( const int64_t* ) const_end_id;
-
-        int diff;
-        const WColumnRowMap *rm = self -> rowmap . base;
-        size_t i, left, right = self -> num_rows;
-
-        /* find the entry mentioned */
-        if ( self -> num_rows == 0 )
-        {
-            PLOGMSG ( klogWarn,
-                      ( klogWarn, "Column: $(col) has no rows to buffer", "col=%.*s"
-                        , self -> dad . scol -> name -> name . size
-                        , self -> dad . scol -> name -> name . addr )
-                );
+        uint64_t row_count;
+        
+        rm = VDBMemBufferAccess ( & rowmap, NULL, NULL );
+        assert ( rm != NULL );
+        
+        row_count = rm -> cnt - ( id - end_id );
+        rc = PageMapAppendSomeRows ( self -> page -> pm, rm -> len, row_count);
+        if ( rc != 0 )
             return true;
-        }
-
-        /* check last entry */
-        i = right - 1;
-        diff = WColumnRowMapCompare ( & rm [ i ], end_id );
-        if ( diff >= 0 )
-            return WColumnSplitBuffer ( self, end_id, i );
-
-        /* check that the id is within our range at all */
-        assert ( self -> start_id == rm [ 0 ] . start_id );
-        if ( end_id < self -> start_id )
+#if _DEBUGGING
+        if (id - end_id)
         {
-            PLOGMSG ( klogWarn,
-                      ( klogWarn, "Column: $(col) cutoff id $(id) is not within range"
-                        , "col=%.*s,id=%ld"
-                        , self -> dad . scol -> name -> name . size
-                        , self -> dad . scol -> name -> name . addr
-                        , end_id )
-                );
-            return true;
+            ((WColumnRowMap *)rm)->start_id += row_count;
         }
+#endif
+        seek_ok = VDBMemBufferAdvance ( & rowmap, ROWMAP_BITS, false );
+    }
 
-        /* search rails are left ( inclusive ) at 0, right ( exclusive ) at num_rows */
-        left = 0;
+    /* capture left edge of rowmap:  that is capture the number of bits to the new
+     * offset to the first unwritten rowmap that might be a different page than the
+     * current rowmap offset */
+    rowmap_off = rowmap . marker / ROWMAP_BITS;
 
-        /* perform arithmetic search for initial portion */
-        if ( right > 1000 )
-        {
-            double p = ( double ) ( end_id - rm [ left ] . start_id ) /
-                ( rm [ right - 1 ] . start_id + rm [ right - 1 ] . cnt - rm [ left ] . start_id );
-            assert ( p >= 0.0 && p <= 1.0 );
+    /* if last advance failed, incorporate bits */
+    if ( ! seek_ok )
+        ++rowmap_off;
 
-            i = left + p * ( right - left );
+    /* if last rowmap entry needs to be preserved */
+    if ( id > end_id )
+    {
+        /* back up to preserve row */
+        --rowmap_off;
+        /* adjust row count */
+        ( ( WColumnRowMap* ) rm ) -> cnt = id - end_id;
+    }
 
-            diff = WColumnRowMapCompare ( & rm [ i ], end_id );
-            if ( diff == 0 )
-                return WColumnSplitBuffer ( self, end_id, i );
-            if ( diff < 0 )
-                right = i;
-            else
-                left = i + 1;
+    /* drop rowmap pages and fix up other fields
+     * this is less complex if we are clearing out all pages */
+    if (rowmap_off - self->rowmap_off == self->num_rows)
+    {
+        /* delete all */
+        while ((mem = (VDBMem*)DLListPopHead (&self->rowmap)) != NULL)
+            VDBMemRelease (&mem->n, self->mgr);
 
-            if ( left < right )
-            {
-                p = ( double ) ( end_id - rm [ left ] . start_id ) /
-                    ( rm [ right - 1 ] . start_id + rm [ right - 1 ] . cnt - rm [ left ] . start_id );
-                assert ( p >= 0.0 && p <= 1.0 );
-
-                i = left + p * ( right - left );
-
-                diff = WColumnRowMapCompare ( & rm [ i ], end_id );
-                if ( diff == 0 )
-                    return WColumnSplitBuffer ( self, end_id, i );
-                if ( diff < 0 )
-                    right = i;
-                else
-                    left = i + 1;
-            }
+        self->num_elems = 0;
+        self->num_rows = 0;
+        self->rowmap_off = 0;
+    }
+    else
+    {
+        uint64_t rowmaps_this_page;
+
+        /* page must be exactly divisible by sizeof ( WColumnRowMap ) */
+        assert ( VDBMemBitsInPage () % sizeof ( WColumnRowMap ) == 0 );
+
+        /* Kind of ugly:  The first page might have less that the
+         * maximum number of rowmaps due to its having an offset
+         * to the first current rowmap.  When that page is dropped
+         * the number of rows needs to be reduced by that partial
+         * number of rowmaps.  But this seemed preferable to
+         * a more awkward check for a first partial page followed by
+         * a loop over full pages. */
+        for ( rowmaps_this_page = ROWMAPS_PER_PAGE - self->rowmap_off;
+              rowmap_off >= ROWMAPS_PER_PAGE;
+              rowmaps_this_page = ROWMAPS_PER_PAGE )
+        {
+            mem = ( VDBMem* ) DLListPopHead ( & self -> rowmap );
+            assert ( mem != NULL );
+            VDBMemRelease ( & mem -> n, self -> mgr );
+            rowmap_off -= ROWMAPS_PER_PAGE;
+            assert ( self->num_rows > rowmaps_this_page );
+            self->num_rows -= rowmaps_this_page;
+            self->rowmap_off = 0;     /* old rowmap_off is no longer on the same page */
         }
-
-        /* normal binary search */
-        while ( left < right )
+        /* new number of rows needs to lose the rows on this page that are done;
+         * that might be just the new rowmap_off or it might be new - old
+         * this expression assumes new is page decremented in the loop and
+         * the old is dropped in the loop or that the loop is not run
+         * and the new and old are both from the same page
+         */
+        assert ( self->num_rows > (rowmap_off - self->rowmap_off));
+        self->num_rows -= (rowmap_off - self->rowmap_off);
+        self->rowmap_off = rowmap_off;
+
+        /* reinitialize buffer onto rowmap */
+        VDBMemBufferInitHead ( & rowmap, DLListHead ( & self -> rowmap ),
+                               rowmap_off * ROWMAP_BITS, ROWMAP_BITS, self -> num_rows );
+
+        /* walk row map to count actual elements */
+        for ( num_elems = 0, num_rows = 0; num_rows != self -> num_rows; ++num_rows )
         {
-            i = ( left + right ) >> 1;
-
-            diff = WColumnRowMapCompare ( & rm [ i ], end_id );
-            if ( diff == 0 )
-                return WColumnSplitBuffer ( self, end_id, i );
-            if ( diff < 0 )
-                right = i;
-            else
-                left = i + 1;
+            rm = VDBMemBufferAccess ( & rowmap, NULL, NULL );
+            if ( rm == NULL )
+                return true;
+            VDBMemBufferAdvance ( & rowmap, ROWMAP_BITS, false );
+            num_elems += rm->len;
         }
-
-        PLOGMSG ( klogErr,
-                  ( klogErr, "Column: $(col) cutoff id $(id) is not within range"
-                    , "col=%.*s,id=%ld"
-                    , self -> dad . scol -> name -> name . size
-                    , self -> dad . scol -> name -> name . addr
-                    , end_id )
-            );
+        self->num_elems = num_elems;
     }
 
-    return true;
+    self->start_id = self->cutoff_id = end_id;
+    return false;
 }
 
 /* ReadBlob
@@ -1048,8 +1081,8 @@ rc_t WColumnReadBlob ( WColumn *self, VBlob **vblob, int64_t id )
         return RC ( rcVDB, rcColumn, rcReading, rcRow, rcNotFound );
 
     * vblob = self -> page;
-    VBlobAddRef ( self -> page );
-    TRACK_BLOB ( VBlobAddRef, self -> page );
+    (void)VBlobAddRef ( self -> page );
+    TRACK_BLOB(VBlobAddRef, self->page);
 
     return 0;
 }
@@ -1060,10 +1093,10 @@ rc_t WColumnReadBlob ( WColumn *self, VBlob **vblob, int64_t id )
 void CC WColumnDropPage ( void *item, void *ignore )
 {
     WColumn *self = item;
-    if ( self != NULL && self -> page != NULL )
+    if ( self -> page != NULL )
     {
-        TRACK_BLOB ( VBlobRelease, self -> page );
-        VBlobRelease ( self -> page );
+        TRACK_BLOB(VBlobRelease,self->page);
+        (void)VBlobRelease ( self -> page );
         self -> page = NULL;
     }
 }
diff --git a/libs/vdb/wcursor.c b/libs/vdb/wcursor.c
index 6c88983..e8c1939 100644
--- a/libs/vdb/wcursor.c
+++ b/libs/vdb/wcursor.c
@@ -68,17 +68,14 @@
 #include <string.h>
 #include <assert.h>
 
+#define MTCURSOR_DBG( msg ) \
+    DBGMSG ( DBG_VDB, DBG_FLAG ( DBG_VDB_MTCURSOR ), msg )
 
 /*--------------------------------------------------------------------------
  * VCursor
  *  a row cursor onto a VTable
  */
 
-/* forward
- *  to avoid reordering whole page
- */
-static
-rc_t VCursorFlushPageInt ( VCursor *self );
 
 
 /* Whack
@@ -110,7 +107,6 @@ rc_t VCursorWhack ( VCursor *self )
     KConditionRelease ( self -> flush_cond );
     KLockRelease ( self -> flush_lock );
 #endif
-    VCursorTerminatePagemapThread(self);
     return VCursorDestroy ( self );
 }
 
@@ -131,7 +127,7 @@ rc_t VCursorWhack ( VCursor *self )
 static rc_t CC run_flush_thread ( const KThread *t, void *data );
 #endif
 
-rc_t VTableCreateCursorWriteInt ( VTable *self, VCursor **cursp, KCreateMode mode, bool create_thread )
+LIB_EXPORT rc_t CC VTableCreateCursorWrite ( VTable *self, VCursor **cursp, KCreateMode mode )
 {
     rc_t rc;
 
@@ -162,17 +158,13 @@ rc_t VTableCreateCursorWriteInt ( VTable *self, VCursor **cursp, KCreateMode mod
             {
                 rc = VCursorSupplementSchema ( curs );
 #if VCURSOR_FLUSH_THREAD
-                if ( rc == 0 && create_thread )
-                {
+                if ( rc == 0 )
                     rc = KLockMake ( & curs -> flush_lock );
-                    if ( rc == 0 )
-                        rc = KConditionMake ( & curs -> flush_cond );
-                    if ( rc == 0 )
-                        rc = KThreadMake ( & curs -> flush_thread, run_flush_thread, curs );
-                }
+                if ( rc == 0 )
+                    rc = KConditionMake ( & curs -> flush_cond );
+                if ( rc == 0 )
+                    rc = KThreadMake ( & curs -> flush_thread, run_flush_thread, curs );
 #endif
-                if(rc == 0)
-                    rc = VCursorLaunchPagemapThread(curs);
                 if ( rc == 0 )
                 {
                     * cursp = curs;
@@ -189,11 +181,6 @@ rc_t VTableCreateCursorWriteInt ( VTable *self, VCursor **cursp, KCreateMode mod
     return rc;
 }
 
-LIB_EXPORT rc_t CC VTableCreateCursorWrite ( VTable *self, VCursor **cursp, KCreateMode mode )
-{
-    return VTableCreateCursorWriteInt ( self, cursp, mode, true );
-}
-
 
 /* MakeColumn
  */
@@ -306,8 +293,7 @@ LIB_EXPORT rc_t CC VCursorOpen ( const VCursor *cself )
                     pr . ignore_column_errors = false;
                     pr . discover_writable_columns = false;
 
-		    if ( !self -> suspend_triggers )
-			    rc = VProdResolveAddTriggers ( & pr, self -> stbl );
+                    rc = VProdResolveAddTriggers ( & pr, self -> stbl );
                 }
                 if ( rc == 0 )
                 {
@@ -325,7 +311,7 @@ LIB_EXPORT rc_t CC VCursorOpen ( const VCursor *cself )
                             if ( ! self -> read_only ||
                                  /* permit empty open when run from sradb */
                                  ( GetRCObject ( rc ) == rcRange &&
-                                   self -> permit_add_column &&
+                                   self -> permit_post_open_add &&
                                    VectorLength ( & self -> row ) == 0 ) )
                             {
                                 rc = 0;
@@ -365,56 +351,18 @@ LIB_EXPORT rc_t CC VCursorOpen ( const VCursor *cself )
  *  records any SColumn that can be reached
  *  populates BTree with VColumnRef objects
  */
-struct resolve_phys_data
-{
-    VProdResolve pr;
-    const KNamelist *seed;
-    uint32_t count;
-};
-
 static
 void CC resolve_writable_sphys ( void *item, void *data )
 {
-    struct resolve_phys_data *pb = data;
-    const SPhysMember *smbr = ( const void* ) item;
+    VProdResolve *self = data;
     VProduction *out = NULL;
-
-    if ( pb -> seed == NULL )
-        VProdResolveSPhysMember ( & pb -> pr, & out, smbr );
-    else
-    {
-        uint32_t i;
-        const KSymbol *sym = smbr -> name;
-        const char *sname = sym -> name . addr;
-        size_t ssize = sym -> name . size;
-        if ( sname [ 0 ] == '.' )
-        {
-            ++ sname;
-            -- ssize;
-        }
-
-        /* TBD - this is not too speedy, but it is
-           very low frequency in all known cases */
-        for ( i = 0; i < pb -> count; ++ i )
-        {
-            const char *name;
-            rc_t rc = KNamelistGet ( pb -> seed, i, & name );
-            if ( rc == 0 )
-            {
-                if ( strlen ( name ) == ssize && memcmp ( sname, name, ssize ) == 0 )
-                {
-                    VProdResolveSPhysMember ( & pb -> pr, & out, smbr );
-                    break;
-                }
-            }
-        }
-    }
+    VProdResolveSPhysMember ( self, & out, item );
 }
 
 static
-void VProdResolveWritableColumns ( struct resolve_phys_data *pb, bool suspend_triggers )
+void VProdResolveWritableColumns ( VProdResolve *self )
 {
-    const STable *dad, *stbl = pb -> pr . stbl;
+    const STable *dad, *stbl = self -> stbl;
 
     /* walk table schema looking for parents */
     uint32_t i = VectorStart ( & stbl -> overrides );
@@ -422,51 +370,40 @@ void VProdResolveWritableColumns ( struct resolve_phys_data *pb, bool suspend_tr
     for ( end += i; i < end; ++ i )
     {
         dad = STableFindOrdAncestor ( stbl, i );
-        VectorForEach ( & dad -> phys, false, resolve_writable_sphys, pb );
+        VectorForEach ( & dad -> phys, false, resolve_writable_sphys, self );
     }
 
     /* walk current table */
-    VectorForEach ( & stbl -> phys, false, resolve_writable_sphys, pb );
+    VectorForEach ( & stbl -> phys, false, resolve_writable_sphys, self );
 
     /* add triggers */
-    if ( !suspend_triggers && pb -> seed == NULL )
-    {
-        pb -> pr . chain = chainUncommitted;
-        VProdResolveAddTriggers ( & pb -> pr, stbl );
-    }
+    self -> chain = chainUncommitted;
+    VProdResolveAddTriggers ( self, stbl );
 }
 
-rc_t VCursorListSeededWritableColumns ( VCursor *self, BSTree *columns, const KNamelist *seed )
+rc_t VCursorListWritableColumns ( VCursor *self, BSTree *columns )
 {
     rc_t rc;
     KDlset *libs;
 
-    struct resolve_phys_data pb;
-    pb . pr . schema = self -> schema;
-    pb . pr . ld = self -> tbl -> linker;
-    pb . pr . stbl = self -> stbl;
-    pb . pr . curs = self;
-    pb . pr . cache = & self -> prod;
-    pb . pr . owned = & self -> owned;
-    pb . pr . chain = chainEncoding;
-    pb . pr . blobbing = false;
-    pb . pr . ignore_column_errors = true;
-    pb . pr . discover_writable_columns = true;
-    pb . seed = seed;
-
-    if ( seed != NULL )
-    {
-        rc = KNamelistCount ( seed, & pb . count );
-        if ( rc != 0 )
-            return rc;
-    }
+    VProdResolve pb;
+    pb . schema = self -> schema;
+    pb . ld = self -> tbl -> linker;
+    pb . stbl = self -> stbl;
+    pb . curs = self;
+    pb . cache = & self -> prod;
+    pb . owned = & self -> owned;
+    pb . chain = chainEncoding;
+    pb . blobbing = false;
+    pb . ignore_column_errors = true;
+    pb . discover_writable_columns = true;
 
     /* open the dynamic linker libraries */
-    rc = VLinkerOpen ( pb . pr . ld, & libs );
+    rc = VLinkerOpen ( pb . ld, & libs );
     if ( rc == 0 )
     {
-        pb . pr . libs = libs;
-        VProdResolveWritableColumns ( & pb , self->suspend_triggers );
+        pb . libs = libs;
+        VProdResolveWritableColumns ( & pb );
         KDlsetRelease ( libs );
 
         if ( rc == 0 )
@@ -495,11 +432,6 @@ rc_t VCursorListSeededWritableColumns ( VCursor *self, BSTree *columns, const KN
     return rc;
 }
 
-rc_t VCursorListWritableColumns ( VCursor *self, BSTree *columns )
-{
-    return VCursorListSeededWritableColumns ( self, columns, NULL );
-}
-
 /* SetRowId
  *  seek to given row id
  *
@@ -592,7 +524,7 @@ LIB_EXPORT rc_t CC VCursorCommitRow ( VCursor *self )
         rc = 0;
     else
     {
-        self -> permit_add_column = self -> permit_post_open_add;
+        self -> permit_post_open_add = false;
 
         /* tell columns to slam in any default values */
         rc = 0;
@@ -621,52 +553,6 @@ LIB_EXPORT rc_t CC VCursorCommitRow ( VCursor *self )
     return rc;
 }
 
-/* RepeatRow
- *  repeats the current row by the count provided
- *  row must have been committed
- *
- *  AVAILABILITY: version 2.6
- *
- *  "count" [ IN ] - the number of times to repeat
- *  the current row.
- */
-LIB_EXPORT rc_t CC VCursorRepeatRow ( VCursor *self, uint64_t count )
-{
-    rc_t rc = 0;
-
-    if ( self == NULL )
-        rc = RC ( rcVDB, rcCursor, rcUpdating, rcSelf, rcNull );
-    else if ( self -> read_only )
-        rc = RC ( rcVDB, rcCursor, rcUpdating, rcCursor, rcReadonly );
-    else if ( self -> state == vcFailed )
-        rc = RC ( rcVDB, rcCursor, rcUpdating, rcCursor, rcInvalid );
-    else if ( self -> state < vcRowOpen )
-        rc = RC ( rcVDB, rcCursor, rcUpdating, rcRow, rcNotOpen );
-    else if ( self -> state < vcRowCommitted )
-        rc = RC ( rcVDB, rcCursor, rcUpdating, rcRow, rcInvalid );
-    else if ( count != 0 )
-    {
-        WColumnRepeatRowData pb;
-        pb . end_id = self -> row_id;
-        pb . count = count;
-
-        /* tell columns to commit the row, and allow
-           each to return an earlier cutoff id ( half-closed ) */
-        VectorForEach ( & self -> row, false, WColumnRepeatRow, & pb );
-
-        /* extend the current row-id */
-        if ( self -> end_id < self -> row_id )
-            self -> row_id += count;
-        else
-        {
-            self -> row_id += count;
-            self -> end_id += count;
-        }
-    }
-
-    return rc;
-}
-
 /* CloseRow
  *  balances OpenRow message
  *  if there are uncommitted modifications,
@@ -698,7 +584,7 @@ LIB_EXPORT rc_t CC VCursorCloseRow ( const VCursor *cself )
             /* close off the page if so requested */
             if ( self -> state == vcPageCommit )
             {
-                rc = VCursorFlushPageInt ( self );
+                rc = VCursorFlushPage ( self );
                 if ( rc )
                 {
                     self -> state = vcFailed;
@@ -833,7 +719,7 @@ bool CC run_trigger_prods ( void *item, void *data )
     VProduction *prod = item;
 
     VBlob *blob;
-    pb -> rc = VProductionReadBlob ( prod, & blob, pb -> id , pb -> cnt, NULL);
+    pb -> rc = VProductionReadBlob ( prod, & blob, pb -> id , pb -> cnt);
     if ( pb -> rc != 0 )
         return true;
     if ( blob != NULL )
@@ -938,8 +824,7 @@ rc_t CC run_flush_thread ( const KThread *t, void *data )
 }
 #endif
 
-static
-rc_t VCursorFlushPageInt ( VCursor *self )
+LIB_EXPORT rc_t CC VCursorFlushPage ( VCursor *self )
 {
     rc_t rc;
 
@@ -977,22 +862,22 @@ rc_t VCursorFlushPageInt ( VCursor *self )
             }
 
 #if VCURSOR_FLUSH_THREAD
-            MTCURSOR_DBG (( "VCursorFlushPageInt: going to acquire lock\n" ));
+            MTCURSOR_DBG (( "VCursorFlushPage: going to acquire lock\n" ));
             /* get lock */
             rc = KLockAcquire ( self -> flush_lock );
             if ( rc != 0 )
                 return rc;
 
-            MTCURSOR_DBG (( "VCursorFlushPageInt: have lock\n" ));
+            MTCURSOR_DBG (( "VCursorFlushPage: have lock\n" ));
 
             /* make sure that background thread is ready */
             while ( self -> flush_state == vfBusy )
             {
-                MTCURSOR_DBG (( "VCursorFlushPageInt: waiting for background thread\n" ));
+                MTCURSOR_DBG (( "VCursorFlushPage: waiting for background thread\n" ));
                 rc = KConditionWait ( self -> flush_cond, self -> flush_lock );
                 if ( rc != 0 )
                 {
-                    LOGERR ( klogSys, rc, "VCursorFlushPageInt: wait failed - exiting" );
+                    LOGERR ( klogSys, rc, "VCursorFlushPage: wait failed - exiting" );
                     KLockUnlock ( self -> flush_lock );
                     return rc;
                 }
@@ -1005,23 +890,23 @@ rc_t VCursorFlushPageInt ( VCursor *self )
                 else
                 {
                     rc_t rc2;
-                    MTCURSOR_DBG (( "VCursorFlushPageInt: waiting on thread to exit\n" ));
+                    MTCURSOR_DBG (( "VCursorFlushPage: waiting on thread to exit\n" ));
                     rc = KThreadWait ( self -> flush_thread, & rc2 );
                     if ( rc == 0 )
                     {
                         rc = rc2;
-                        MTCURSOR_DBG (( "VCursorFlushPageInt: releasing thread\n" ));
+                        MTCURSOR_DBG (( "VCursorFlushPage: releasing thread\n" ));
                         KThreadRelease ( self -> flush_thread );
                         self -> flush_thread = NULL;
                     }
                 }
 
-                PLOGERR ( klogInt, (klogInt, rc, "VCursorFlushPageInt: not in ready state[$(state)] - exiting","state=%hu",self -> flush_state ));
+                LOGERR ( klogInt, rc, "VCursorFlushPage: not in ready state - exiting" );
                 KLockUnlock ( self -> flush_lock );
                 return rc;
             }
 
-            MTCURSOR_DBG (( "VCursorFlushPageInt: running buffer page\n" ));
+            MTCURSOR_DBG (( "VCursorFlushPage: running buffer page\n" ));
 #endif
 
             /* first, tell all columns to bundle up their pages into buffers */
@@ -1037,7 +922,7 @@ rc_t VCursorFlushPageInt ( VCursor *self )
                 /* supposed to be constant */
                 assert ( end_id == self -> end_id );
 #if VCURSOR_FLUSH_THREAD
-                MTCURSOR_DBG (( "VCursorFlushPageInt: pages buffered - capturing id and count\n" ));
+                MTCURSOR_DBG (( "VCursorFlushPage: pages buffered - capturing id and count\n" ));
                 self -> flush_id = self -> start_id;
                 self -> flush_cnt = self -> end_id - self -> start_id;
 
@@ -1045,11 +930,11 @@ rc_t VCursorFlushPageInt ( VCursor *self )
                 self -> end_id = self -> row_id + 1;
                 self -> state = vcReady;
 
-                MTCURSOR_DBG (( "VCursorFlushPageInt: state set to busy - signaling bg thread\n" ));
+                MTCURSOR_DBG (( "VCursorFlushPage: state set to busy - signaling bg thread\n" ));
                 self -> flush_state = vfBusy;
                 rc = KConditionSignal ( self -> flush_cond );
                 if ( rc != 0 )
-                    LOGERR ( klogSys, rc, "VCursorFlushPageInt: condition returned error on signal" );
+                    LOGERR ( klogSys, rc, "VCursorFlushPage: condition returned error on signal" );
 #else
                 /* run all validation and trigger productions */
                 pb . id = self -> start_id;
@@ -1070,7 +955,7 @@ rc_t VCursorFlushPageInt ( VCursor *self )
             }
 
 #if VCURSOR_FLUSH_THREAD
-            MTCURSOR_DBG (( "VCursorFlushPageInt: unlocking\n" ));
+            MTCURSOR_DBG (( "VCursorFlushPage: unlocking\n" ));
             KLockUnlock ( self -> flush_lock );
 #endif
         }
@@ -1079,67 +964,6 @@ rc_t VCursorFlushPageInt ( VCursor *self )
     return rc;
 }
 
-LIB_EXPORT rc_t CC VCursorFlushPage ( VCursor *self )
-{
-    rc_t rc = VCursorFlushPageInt ( self );
-    if ( rc == 0 )
-    {
-#if VCURSOR_FLUSH_THREAD
-        MTCURSOR_DBG (( "VCursorFlushPage: going to acquire lock\n" ));
-        /* get lock */
-        rc = KLockAcquire ( self -> flush_lock );
-        if ( rc != 0 )
-            return rc;
-
-        MTCURSOR_DBG (( "VCursorFlushPage: have lock\n" ));
-
-        /* wait until background thread has finished */
-        while ( self -> flush_state == vfBusy )
-        {
-            MTCURSOR_DBG (( "VCursorFlushPage: waiting for background thread\n" ));
-            rc = KConditionWait ( self -> flush_cond, self -> flush_lock );
-            if ( rc != 0 )
-            {
-                LOGERR ( klogSys, rc, "VCursorFlushPage: wait failed - exiting" );
-                KLockUnlock ( self -> flush_lock );
-                return rc;
-            }
-        }
-
-        /* what was the proper rc */
-        if ( self -> flush_state != vfReady )
-        {
-            if ( self -> flush_state != vfBgErr )
-                rc = RC ( rcVDB, rcCursor, rcFlushing, rcCursor, rcInconsistent );
-            else
-            {
-                rc_t rc2;
-                MTCURSOR_DBG (( "VCursorFlushPage: waiting on thread to exit\n" ));
-                rc = KThreadWait ( self -> flush_thread, & rc2 );
-                if ( rc == 0 )
-                {
-                    rc = rc2;
-                    MTCURSOR_DBG (( "VCursorFlushPage: releasing thread\n" ));
-                    KThreadRelease ( self -> flush_thread );
-                    self -> flush_thread = NULL;
-                }
-            }
-
-            PLOGERR ( klogInt, (klogInt, rc, "VCursorFlushPage: not in ready state[$(state)] - exiting",
-                                "state=%hu", self -> flush_state ));
-
-            KLockUnlock ( self -> flush_lock );
-            return rc;
-        }
-        KLockUnlock ( self -> flush_lock );
-#endif
-        assert ( self -> row_id == self -> start_id );
-        self -> end_id = self -> row_id;
-    }
-
-    return rc;
-}
-
 LIB_EXPORT rc_t CC VCursorCommit ( VCursor *self )
 {
     rc_t rc = VCursorFlushPage ( self );
diff --git a/libs/vdb/wdbmgr.c b/libs/vdb/wdbmgr.c
index f45a53f..63e1a5d 100644
--- a/libs/vdb/wdbmgr.c
+++ b/libs/vdb/wdbmgr.c
@@ -47,6 +47,7 @@
 #include <stdlib.h>
 #include <assert.h>
 
+#define MLIMIT ( 512 * 1024 * 1024 )
 
 /*--------------------------------------------------------------------------
  * VDBManager
@@ -84,8 +85,14 @@ LIB_EXPORT rc_t CC VDBManagerMakeUpdate ( VDBManager **mgrp,  KDirectory *wd )
                         rc = VDBManagerConfigPaths ( mgr, true );
                         if ( rc == 0 )
                         {
+                            const VDBMem *mem;
                             mgr -> user = NULL;
                             mgr -> user_whack = NULL;
+                            DLListInit ( & mgr -> mpool );
+                            mgr -> plimit = MLIMIT / sizeof mem -> page;
+                            mgr -> mlimit = MLIMIT / sizeof mem -> page;
+                            mgr -> pcount = 0;
+                            mgr -> mcount = 0;
                             KRefcountInit ( & mgr -> refcount, 1, "VDBManager", "make-update", "vmgr" );
                             * mgrp = mgr;
                             return 0;
diff --git a/libs/vdb/wphys.c b/libs/vdb/wphys.c
index e1f2d27..a9a180c 100644
--- a/libs/vdb/wphys.c
+++ b/libs/vdb/wphys.c
@@ -70,9 +70,6 @@
  * VPhysical
  */
 
-static
-rc_t VPhysicalConvertStatic ( VPhysical *self );
-
 
 /* Whack
  */
@@ -81,16 +78,6 @@ void CC VPhysicalWhack ( void *item, void *ignore )
     VPhysical *self = item;
     if ( self > FAILED_PHYSICAL )
     {
-#if PROD_CACHE
-        /* detect close of static column */
-        if ( ! self -> read_only && self -> knode != NULL )
-        {
-            /* if the column is fairly large for metadata */
-            if ( KDataBufferBytes ( & self -> srow ) > 64 * 1024 )
-                /* convert it to a single blob */
-                VPhysicalConvertStatic ( self );
-        }
-#endif
         if ( ! self -> read_only )
         {
             rc_t rc;
@@ -650,77 +637,55 @@ rc_t VPhysicalConvertStatic ( VPhysical *self )
     rc_t rc = VPhysicalCreateKColumn ( self );
     if ( rc == 0 )
     {
-        int64_t sstart_id, sstop_id;
-
-        /* save incoming blob cache on stack */
-        VBlob *cache [ PROD_CACHE * PROD_CACHE_MAX_EXTENTS ];
+        /* put incoming blob cache on stack */
+        VBlob *cache [ PROD_CACHE ];
         assert ( sizeof cache == sizeof self -> in -> cache );
         memcpy ( cache, self -> in -> cache, sizeof cache );
 
         /* set incoming blob cache to empty */
         memset ( self -> in -> cache, 0, sizeof self -> in -> cache );
 
-        for ( sstart_id = self -> sstart_id;
-              rc == 0 && sstart_id <= self -> sstop_id;
-              sstart_id = sstop_id + 1 )
+        /* recreate a VBlob from static that can be sent through encoding */
+        rc = VBlobCreateFromSingleRow ( & self -> in -> cache [ 0 ],
+            self -> sstart_id, self -> sstop_id, & self -> srow, vboNative );
+        if ( rc == 0 )
         {
-            /* 3G rows */
-            sstop_id = sstart_id + 0xC0000000;
-            assert ( sstop_id > sstart_id );
-
-            /* limit to actual end */
-            if ( sstop_id > self -> sstop_id )
-                sstop_id = self -> sstop_id;
-
-            /* don't create tiny additional blobs */
-            else if ( ( self -> sstop_id - sstop_id ) < 1000 )
-                sstop_id = self -> sstop_id;
-
-            /* recreate a VBlob from static that can be sent through encoding */
-            rc = VBlobCreateFromSingleRow ( & self -> in -> cache [ 0 ],
-                sstart_id, sstop_id, & self -> srow, vboNative );
+            /* get an encoded version of static blob */
+            VBlob *vblob;
+            rc = VProductionReadBlob ( self -> b2s, & vblob, self -> sstart_id, 1 );
             if ( rc == 0 )
             {
-                /* get an encoded version of static blob */
-                VBlob *vblob;
-                rc = VProductionReadBlob ( self -> b2s, & vblob, sstart_id, 1,NULL );
+                /* write encoded blob to physical */
+                rc = VPhysicalWriteKColumn ( self, vblob );
                 if ( rc == 0 )
                 {
-                    /* write encoded blob to physical */
-                    rc = VPhysicalWriteKColumn ( self, vblob );
+                    const String *name;
+                    VCursor *curs = self -> curs;
+                    VTable *tbl = curs -> tbl;
+
+                    /* tear down static */
+                    KMDataNodeRelease ( self -> knode );
+                    self -> knode = NULL;
 
-                    /* in all events, release blob */
-                    TRACK_BLOB ( VBlobRelease, vblob );
-                    ( void ) VBlobRelease ( vblob );
+                    /* delete column from table */
+                    name = & self -> smbr -> name -> name;
+                    assert ( tbl -> col_node != NULL );
+                    rc = KMDataNodeDropChild ( tbl -> col_node,
+                        "%.*s.tmp", ( int ) name -> size - 1, name -> addr + 1 );
                 }
-            
-                /* release the blob from static */
-                TRACK_BLOB ( VBlobRelease, self -> in -> cache [ 0 ] );
-                ( void ) VBlobRelease ( self -> in -> cache [ 0 ] );
+
+                TRACK_BLOB ( VBlobRelease, vblob );
+                ( void ) VBlobRelease ( vblob );
             }
+            
+            /* release the blob from static */
+            TRACK_BLOB ( VBlobRelease, self -> in -> cache [ 0 ] );
+            ( void ) VBlobRelease ( self -> in -> cache [ 0 ] );
         }
 
         /* restore cache from stack */
         memcpy ( self -> in -> cache, cache, sizeof self -> in -> cache );
-
-        if ( rc == 0 )
-        {
-            const String *name;
-            VCursor *curs = self -> curs;
-            VTable *tbl = curs -> tbl;
-
-            /* tear down static */
-            KMDataNodeRelease ( self -> knode );
-            self -> knode = NULL;
-
-            /* delete column from table */
-            name = & self -> smbr -> name -> name;
-            assert ( tbl -> col_node != NULL );
-            rc = KMDataNodeDropChild ( tbl -> col_node,
-                "%.*s.tmp", ( int ) name -> size - 1, name -> addr + 1 );
-        }
     }
-
     return rc;
 #endif
 }
@@ -797,7 +762,7 @@ rc_t VPhysicalWrite ( VPhysical *self, int64_t id, uint32_t cnt )
 {
     /* read from page space */
     VBlob *vblob;
-    rc_t rc = VProductionReadBlob ( self -> in, & vblob, id , cnt,NULL);
+    rc_t rc = VProductionReadBlob ( self -> in, & vblob, id , cnt);
     if ( rc == 0 )
     {
         /* test for single row in blob */
@@ -872,7 +837,7 @@ rc_t VPhysicalWrite ( VPhysical *self, int64_t id, uint32_t cnt )
             {
                 TRACK_BLOB ( VBlobRelease, vblob );
                 ( void ) VBlobRelease ( vblob );
-                rc = VProductionReadBlob ( self -> b2s, & vblob, id, cnt,NULL );
+                rc = VProductionReadBlob ( self -> b2s, & vblob, id, cnt );
                 if ( rc == 0 )
                 {
                     /* write encoded blob to physical */
diff --git a/libs/vdb/wprod.c b/libs/vdb/wprod.c
index 41db5e9..a1ba4a8 100644
--- a/libs/vdb/wprod.c
+++ b/libs/vdb/wprod.c
@@ -124,7 +124,7 @@ rc_t VProdResolveColumnRoot ( const VProdResolve *self,
     /* pick up production */
     if ( scol -> validate != NULL )
     {
-        rc = VSimpleProdMake ( & wcol -> val, self -> owned, self -> curs,
+        rc = VSimpleProdMake ( & wcol -> val, self -> owned,
             prodSimpleCast, name, NULL, NULL, NULL, in, chainDecoding );
         if ( rc != 0 )
             return rc;
@@ -180,22 +180,9 @@ rc_t VProdResolveColumn ( const VProdResolve *self,
             if ( rc != 0 )
                 return rc;
 
-#if OPEN_COLUMN_ALTERS_ROW
-            rc = VectorAppend ( & curs -> row, & vcol -> ord, vcol );
-            if ( rc != 0 )
-            {
-                VColumnWhack ( vcol, NULL );
-                return rc;
-            }
-#endif
             rc = VCursorCacheSet ( & curs -> col, & scol -> cid, vcol );
             if ( rc != 0 )
             {
-#if OPEN_COLUMN_ALTERS_ROW
-                void *ignore;
-                VectorSwap ( & curs -> row, vcol -> ord, NULL, & ignore );
-                vcol -> ord = 0;
-#endif
                 VColumnWhack ( vcol, NULL );
                 return rc;
             }
@@ -220,19 +207,19 @@ rc_t VProdResolveColumn ( const VProdResolve *self,
     wcol = VCursorCacheGet ( & curs -> col, & scol -> cid );
     if ( wcol == NULL )
     {
+        uint32_t idx;
+
         /* normally write-only cursor must have existing column */
         if ( ! self -> discover_writable_columns )
             return 0;
 
         /* auto-create writable column for purposes of discovery */
-        if ( scol -> read_only )
-            return 0;
         rc = VCursorMakeColumn ( curs, & vcol, scol );
         if ( rc != 0 )
             return rc;
 
         /* add it to the row as if user had done it */
-        rc = VectorAppend ( & curs -> row, & vcol -> ord, vcol );
+        rc = VectorAppend ( & curs -> row, & idx, vcol );
         if ( rc == 0 )
         {
             /* add it to the indexed vector */
@@ -240,8 +227,7 @@ rc_t VProdResolveColumn ( const VProdResolve *self,
             if ( rc != 0 )
             {
                 void *ignore;
-                VectorSwap ( & curs -> row, vcol -> ord, NULL, & ignore );
-                vcol -> ord = 0;
+                VectorSwap ( & curs -> row, idx, NULL, & ignore );
             }
         }
 
@@ -345,7 +331,7 @@ rc_t VProdResolvePhysicalWrite ( const VProdResolve *self, VPhysical *phys )
     /* build encoding schema in steps:
          in <- page-to-blob
     */
-    rc = VSimpleProdMake ( & prod, pr . owned,  self->curs,
+    rc = VSimpleProdMake ( & prod, pr . owned,
         prodSimplePage2Blob, name, & fd, & desc, NULL, phys -> in, chainEncoding );
     if ( rc == 0 && enc != NULL )
     {
@@ -361,7 +347,7 @@ rc_t VProdResolvePhysicalWrite ( const VProdResolve *self, VPhysical *phys )
     }
     if ( rc == 0 )
     {
-        rc = VSimpleProdMake ( & phys -> b2s, pr . owned, self->curs,
+        rc = VSimpleProdMake ( & phys -> b2s, pr . owned,
             prodSimpleBlob2Serial, name, & fd, & desc, NULL, prod, chainEncoding );
     }
 
diff --git a/libs/vdb/wtable.c b/libs/vdb/wtable.c
index 6a6b2ef..23a3243 100644
--- a/libs/vdb/wtable.c
+++ b/libs/vdb/wtable.c
@@ -64,9 +64,9 @@
 /* StoreSchema
  *  stores schema definition in metadata
  *
- *  <schema name="">...</schema>
+ *  <schema type="">...</schema>
  */
-LIB_EXPORT rc_t VTableStoreSchema ( VTable *self )
+rc_t VTableStoreSchema ( VTable *self )
 {
     /* open schema node */
     KMDataNode *node;
@@ -82,45 +82,10 @@ LIB_EXPORT rc_t VTableStoreSchema ( VTable *self )
         else
         {
             expr [ num_writ ] = 0;
-
-            /* if table has a default view declaration,
-               store the table information under a new attribute */
-            if ( self -> stbl -> dflt_view != NULL )
-            {
-                uint32_t type;
-                const SNameOverload *name;
-                const STable *view = VSchemaFind ( self -> schema, & name, & type,
-                    self -> stbl -> dflt_view-> addr, __func__, false );
-                if ( view == NULL )
-                {
-                    rc = RC ( rcVDB, rcTable, rcUpdating, rcSchema, rcNotFound );
-                    PLOGERR ( klogInt, ( klogInt, rc, "failed to locate default view schema '$(expr)'",
-                                         "expr=%S", self -> stbl -> dflt_view ));
-                }
-                else
-                {
-                    rc = KMDataNodeWriteAttr ( node, "table", expr );
-                    if ( rc != 0 )
-                        PLOGERR ( klogInt, ( klogInt, rc, "failed to write table type '$(expr)'", "expr=%s", expr ));
-                    else
-                    {
-                        rc = VSchemaToText ( self -> schema, expr, sizeof expr - 1, & num_writ,
-                            "%N%V", view -> name, view -> version );
-                        if ( rc != 0 )
-                            LOGERR ( klogInt, rc, "failed to determine table default view schema" );
-                        else
-                            expr [ num_writ ] = 0;
-                    }
-                }
-            }
-
-            if ( rc == 0 )
-            {
-                rc = KMDataNodeWriteAttr ( node, "name", expr );
-                if ( rc != 0 )
-                    PLOGERR ( klogInt, ( klogInt, rc, "failed to write table name '$(expr)'", "expr=%s", expr ));
-            }
-            if ( rc == 0 )
+            rc = KMDataNodeWriteAttr ( node, "name", expr );
+            if ( rc != 0 )
+                PLOGERR ( klogInt, ( klogInt, rc, "failed to write table type '$(expr)'", "expr=%s", expr ));
+            else
             {
                 /* truncate existing schema */
                 rc = KMDataNodeWrite ( node, "", 0 );
@@ -695,11 +660,9 @@ rc_t list_writable_columns ( VTable *self )
         return 0;
     }
 
-    rc = VTableCreateCursorWriteInt ( self, & curs, kcmInsert, false );
+    rc = VTableCreateCursorWrite ( self, & curs, kcmInsert );
     if (  rc == 0 )
     {
-	/* no need for schema-based triggers to fire **/
-	VCursorSuspendTriggers ( curs );
         /* let this private VCursor-function list the columns */
         rc = VCursorListWritableColumns ( curs, & self -> write_col_cache );
         VCursorRelease ( curs );
@@ -734,50 +697,6 @@ LIB_EXPORT rc_t CC VTableListWritableColumns ( VTable *self, KNamelist **names )
     return rc;
 }
 
-LIB_EXPORT rc_t CC VTableListSeededWritableColumns ( VTable *self,
-    KNamelist **names, const KNamelist *seed )
-{
-    rc_t rc;
-
-    if ( names == NULL )
-        rc = RC ( rcVDB, rcTable, rcListing, rcParam, rcNull );
-    else
-    {
-        * names = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcVDB, rcTable, rcListing, rcSelf, rcNull );
-        else if ( seed == NULL )
-            rc = RC ( rcVDB, rcTable, rcListing, rcParam, rcNull );
-        else
-        {
-            BSTree cache;
-            BSTreeInit ( & cache );
-
-            rc = 0;
-
-            if ( ! self -> read_only )
-            {
-                VCursor *curs;
-                rc = VTableCreateCursorWriteInt ( self, & curs, kcmInsert, false );
-                if (  rc == 0 )
-                {
-                    /* let this private VCursor-function list the columns */
-                    rc = VCursorListSeededWritableColumns ( curs, & cache, seed );
-                    VCursorRelease ( curs );
-                }
-            }
-
-            if ( rc == 0 )
-                rc = make_column_namelist ( & cache, names );
-
-            BSTreeWhack ( & cache, VColumnRefWhack, NULL );
-        }
-    }
-
-    return rc;
-}
-
 
 /* ListDatatypes
  *  returns list of typedecls for named column
@@ -967,21 +886,3 @@ LIB_EXPORT rc_t CC VTableDropColumn(VTable *self, const char fmt[], ...)
     va_end(va);
     return rc;
 }
-
-LIB_EXPORT rc_t CC VTableRenameColumn ( struct VTable *self, bool force,
-    const char *from, const char *to )
-{
-    rc_t rc;
-
-    if ( self == NULL )
-        rc = RC ( rcVDB, rcTable, rcAccessing, rcSelf, rcNull );
-    else
-    {
-        rc = KTableRenameColumn ( self->ktbl, force, from, to );
-        if ( GetRCState(rc) == rcNotFound )
-           rc = KMDataNodeRenameChild( self->col_node, from, to );
-    }
-
-    return rc;
-}
-
diff --git a/libs/vfs/Makefile b/libs/vfs/Makefile
deleted file mode 100644
index 390cc48..0000000
--- a/libs/vfs/Makefile
+++ /dev/null
@@ -1,139 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-default: all
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = libs/vfs
-
-INT_LIBS = \
-
-EXT_LIBS = \
-	libsrapath \
-	libvfs
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-TEST_TOOLS = \
-
-include $(TOP)/build/Makefile.env
-
-RWORKDIR=$(TOP)/$(MODULE)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(INT_LIBS): vers-includes
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_LIBS): vers-includes
-	@ $(MAKE_CMD) $(LIBDIR)/$@
-
-$(TEST_TOOLS): makedirs
-	@ $(MAKE_CMD) $(TEST_BINDIR)/$@
-
-.PHONY: all std $(ALL_LIBS) $(TEST_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
-	$(addprefix $(LIBDIR)/,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_LIBS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-	@ rm -f $(addsuffix *,$(addprefix $(TEST_BINDIR)/,$(TEST_TOOLS)))
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_LIBS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
-
-#-------------------------------------------------------------------------------
-# srapath library
-#
-$(LIBDIR)/libsrapath: $(LIBDIR)/libsrapath.$(LIBX)
-
-SRAPATH_SRC = \
-	srapath-stub \
-	srapath
-
-SRAPATH_OBJ = \
-	$(addsuffix .$(LOBX),$(SRAPATH_SRC))
-
-$(LIBDIR)/libsrapath.$(LIBX): $(SRAPATH_OBJ)
-	$(LD) --slib --vers $(SRCDIR) -o $@ $^
-
-#-------------------------------------------------------------------------------
-# vfs
-#
-$(LIBDIR)/libvfs: $(addprefix $(LIBDIR)/libvfs.,$(LIBEXT))
-
-VFS_SRC = \
-	path \
-	syspath \
-	manager  \
-	resolver
-
-VFS_OBJ = \
-	$(addsuffix .$(LOBX),$(VFS_SRC))
-
-VFS_LIB = \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lklib
-
-$(LIBDIR)/libvfs.$(SHLX): $(VFS_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ -ssrapath $(VFS_LIB)
-
-$(LIBDIR)/libvfs.$(LIBX): $(VFS_OBJ)
-	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(VFS_LIB)
-
-libvfs_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libvfs $(VFS_OBJ)
-
diff --git a/libs/vfs/libsrapath.vers b/libs/vfs/libsrapath.vers
deleted file mode 100644
index e9bc149..0000000
--- a/libs/vfs/libsrapath.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.1.14
diff --git a/libs/vfs/libvfs.vers b/libs/vfs/libvfs.vers
deleted file mode 100644
index 59e9e60..0000000
--- a/libs/vfs/libvfs.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.0.11
diff --git a/libs/vfs/manager.c b/libs/vfs/manager.c
deleted file mode 100644
index 15086c5..0000000
--- a/libs/vfs/manager.c
+++ /dev/null
@@ -1,3709 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <vfs/extern.h>
-#include <vfs/manager.h>
-#include <vfs/path.h>
-#include "path-priv.h"
-
-#include <krypto/key.h>
-#include <krypto/encfile.h>
-#include <krypto/wgaencrypt.h>
-#include <krypto/ciphermgr.h>
-#include <kfg/config.h>
-#include <kfg/repository.h>
-
-#include <vfs/resolver.h>
-#include <sra/srapath.h>
-
-#include <kfs/directory.h>
-#include <kfs/file.h>
-#include <kfs/sra.h>
-#include <kfs/tar.h>
-#include <kfs/dyload.h>
-#include <kfs/kfs-priv.h>
-#include <kfs/nullfile.h>
-#include <kfs/buffile.h>
-#include <kfs/quickmount.h>
-#include <kfs/cacheteefile.h>
-
-#include <kns/curl-file.h>
-#include <kxml/xml.h>
-#include <klib/refcount.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-
-#include <sysalloc.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-
-#ifdef _DEBUGGING
-#define MGR_DEBUG(msg) DBGMSG(DBG_VFS,DBG_FLAG(DBG_VFS_MGR), msg)
-#else
-#define MGR_DEBUG(msg)
-#endif
-
-
-#define DEFAULT_CACHE_BLOCKSIZE ( 32768 * 4 )
-#define DEFAULT_CACHE_CLUSTER 1
-
-/*--------------------------------------------------------------------------
- * VFSManager
- */
-
-/* currently expected to be a singleton and not use a vtable but
- * be fully fleashed out here */
-struct VFSManager
-{
-    KRefcount refcount;
-
-    /* the current directory in the eyes of the O/S when created */
-    KDirectory * cwd;
-
-    /* the underlying operating systems view of the path of the 
-     * current working directory */
-    VPath * cpath;
-
-
-    /* configuration manager */
-    KConfig * cfg;
-
-    /* krypto's cipher manager */
-    KCipherManager * cipher;
-
-    /* SRAPath will be replaced with a VResolver */
-    struct VResolver * resolver;
-    /* SRAPath */
-    struct SRAPath * srapath;
-
-    /* if not NULL, need to remove from environment and free */
-    char *pw_env;
-};
-
-static const char kfsmanager_classname [] = "VFSManager";
-
-static 
-VFSManager * singleton = NULL;
-
-
-/* Destroy
- *  destroy file
- */
-LIB_EXPORT rc_t CC VFSManagerDestroy ( VFSManager *self )
-{
-    if ( self == NULL )
-        return RC ( rcVFS, rcFile, rcDestroying, rcSelf, rcNull );
-
-    KRefcountWhack (&self->refcount, kfsmanager_classname);
-
-    KDirectoryRelease (self->cwd);
-
-    VPathRelease (self->cpath);
-
-    KConfigRelease (self->cfg);
-
-    KCipherManagerRelease (self->cipher);
-
-    VResolverRelease ( self->resolver );
-
-    SRAPathRelease ( self->srapath );
-
-    if ( self -> pw_env != NULL )
-    {
-        putenv ( "VDB_PWFILE=" );
-        free ( self -> pw_env );
-    }
-
-    free (self);
-
-    singleton = NULL;
-    return 0;
-}
-
-/* AddRef
- *  creates a new reference
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC VFSManagerAddRef ( const VFSManager *self )
-{
-    if (self != NULL)
-    {
-        switch (KRefcountAdd (&self->refcount, kfsmanager_classname))
-        {
-        case krefOkay:
-            break;
-        case krefZero:
-            return RC (rcVFS, rcMgr, rcAttaching, rcRefcount, rcIncorrect);
-        case krefLimit:
-            return RC (rcVFS, rcMgr, rcAttaching, rcRefcount, rcExhausted);
-        case krefNegative:
-            return RC (rcVFS, rcMgr, rcAttaching, rcRefcount, rcInvalid);
-        default:
-            return RC (rcVFS, rcMgr, rcAttaching, rcRefcount, rcUnknown);
-        }
-    }
-    return 0;
-}
-
-/* Release
- *  discard reference to file
- *  ignores NULL references
- */
-LIB_EXPORT rc_t CC VFSManagerRelease ( const VFSManager *self )
-{
-    rc_t rc = 0;
-    if (self != NULL)
-    {
-        switch (KRefcountDrop (&self->refcount, kfsmanager_classname))
-        {
-        case krefOkay:
-        case krefZero:
-            break;
-        case krefWhack:
-            rc = VFSManagerDestroy ((VFSManager*)self);
-            break;
-        case krefNegative:
-            return RC (rcVFS, rcMgr, rcAttaching, rcRefcount, rcInvalid);
-        default:
-            rc = RC (rcVFS, rcMgr, rcAttaching, rcRefcount, rcUnknown);
-            break;            
-        }
-    }
-    return rc;
-}
-
-
-
-/*--------------------------------------------------------------------------
- * VFSManagerMakeCurlFile
- */
-static
-rc_t VFSManagerMakeCurlFile( const VFSManager * self, const KFile **cfp,
-                             const char * url, const char * cache_location )
-{
-    rc_t rc = KCurlFileMake ( cfp, url, false );
-    if ( rc == 0 )
-    {
-        const KFile *temp_file;
-        rc_t rc2;
-        if ( cache_location == NULL )
-        {
-            /* there is no cache_location! just wrap the remote file in a buffer */
-            rc2 = KBufFileMakeRead ( & temp_file, * cfp, 128 * 1024 * 1024 );
-        }
-        else
-        {
-            /* we do have a cache_location! wrap the remote file in a cacheteefile */
-            rc2 = KDirectoryMakeCacheTee ( self->cwd, &temp_file, *cfp, NULL,
-                                           DEFAULT_CACHE_BLOCKSIZE, DEFAULT_CACHE_CLUSTER,
-                                           false, "%s", cache_location );
-        }
-        if ( rc2 == 0 )
-        {
-            KFileRelease ( * cfp );
-            * cfp = temp_file;
-        }
-    }
-    return rc;
-}
-
-
-
-LIB_EXPORT rc_t CC VFSManagerGetConfigPWFd ( const VFSManager * self, 
-                                            char * b, size_t bz, size_t * pz)
-{
-#if 1
-    rc_t rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcUnsupported);
-#else
-    const KConfigNode * node;
-    size_t oopsy;
-    size_t z;
-    rc_t rc;
-
-    *pz = 0;
-
-/*    rc = KConfigOpenNodeRead (self->cfg, &node, KRYPTO_PWFD); */
-    rc = KConfigOpenNodeRead (self->cfg, &node, "krypto/pwfd");
-    if (rc == 0)
-    {
-        rc = KConfigNodeRead (node, 0, b, bz-1, &z, &oopsy);
-        if (rc == 0)
-        {
-            if (oopsy != 0)
-                rc = RC (rcKrypto, rcMgr, rcReading, rcBuffer, rcInsufficient);
-            else
-            {
-                b[z] = '\0';
-                *pz = z;
-            }
-        }
-        KConfigNodeRelease (node);
-    }
-#endif
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerGetConfigPWFile (const VFSManager * self, 
-                                              char * b, size_t bz, size_t * pz)
-{
-    const char * env;
-    const KConfigNode * node;
-    size_t oopsy;
-    size_t z;
-    rc_t rc;
-
-    if (pz)
-        *pz = 0;
-
-/*#ifdef ENV_KRYPTO_PWFILE */
-/*    env = getenv (ENV_KRYPTO_PWFILE); */
-    env = getenv ("VDB_PWFILE");
-
-    if (env)
-    {
-        z = string_copy (b, bz, env, string_size (env));
-
-        /* force a NUL that string_copy might have omitted 
-         * even if this truncates the path */
-        b[bz-1] = '\0';
-
-        if (pz)
-            *pz = z;
-       
-        return 0;
-    }
-/* #endif */
-
-/*     rc = KConfigOpenNodeRead (self->cfg, &node, KFG_KRYPTO_PWFILE); */
-    rc = KConfigOpenNodeRead (self->cfg, &node, "krypto/pwfile");
-    if (rc)
-    {
-        /* if not found, change object from path to encryption key */
-        if (GetRCState(rc) == rcNotFound)
-            rc = RC (rcVFS, rcMgr, rcOpening, rcEncryptionKey, rcNotFound);
-    }
-    else
-    {
-        rc = KConfigNodeRead (node, 0, b, bz-1, &z, &oopsy);
-        if (rc == 0)
-        {
-            if (oopsy != 0)
-                rc = RC (rcKrypto, rcMgr, rcReading, rcBuffer, rcInsufficient);
-            else
-            {
-                b[z] = '\0';
-                *pz = z;
-            }
-        }
-        KConfigNodeRelease (node);
-    }
-    return rc;
-}
-
-
-/*
- * This is still hack - must match VFSManagerResolvePathRelativeDir()
- */
-LIB_EXPORT rc_t CC VFSManagerWGAValidateHack (const VFSManager * self, 
-                                              const KFile * file,
-                                              const char * path) /* we'll move this to a vpath */
-{
-    VPath * vpath;
-    rc_t rc = 0;
-
-    rc = VPathMake (&vpath, path);
-    if (rc == 0)
-    {
-        size_t z;
-        char obuff [4096 + 2]; /* 1 for over-read and 1 for NUL */
-        const KFile * pwfile;
-        bool is_fd = false;
-        bool have_pwd = false;
-/*      char tbuff [4096 + 2]; */
-
-        /* -----
-         * get the path to and open the pwfile
-         *
-         * first check the insecure password on the command line hack 
-         * then check the option for pwfile in the VPath
-         * then check the option for pwfd
-         * then check the environment
-         * then check the configuration
-         *
-         * some odd jumping around due to ordering of where
-         * to look
-         */
-        /* obviously not used yet */
-        if (VPathOption (vpath, vpopt_temporary_pw_hack, obuff, sizeof obuff, &z) == 0)
-        {
-            if (z < 1)
-                rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-            else
-            {
-                size_t x = 0;
-                size_t y = 0;
-                int ch, h, l;
-
-                while (x < z)
-                {
-                    h = tolower(obuff[x++]);
-                    l = tolower(obuff[x++]);
-
-                    if (!isxdigit(h) || !isxdigit(l))
-                        rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-
-                    if (isdigit(h))
-                        ch = (h - '0') << 4;
-                    else
-                        ch = (h + 10 - 'a') << 4;
-                    if (isdigit(l))
-                        ch |= (l - '0');
-                    else
-                        ch |= (l + 10 - 'a');
-
-                    /* added for compatibility with other passwords */
-                    if ((ch == '\r') || (ch == '\r'))
-                        break;
-                    obuff[y++] = (char)ch;
-                }
-                obuff[y] = '\0';
-                assert (z == x);
-                assert (z/2 == y);
-                z = y;
-            }
-        }
-        else
-        {
-            /* also not used yet */
-            if (VPathOption (vpath, vpopt_pwpath, obuff,
-                             sizeof obuff - 1, &z) == 0)
-                have_pwd = true;
-
-            /* also not used yet */
-            else if (VPathOption (vpath, vpopt_pwfd, obuff,
-                                  sizeof obuff - 1, &z) == 0)
-                have_pwd = is_fd = true;
-
-            /* This is used */
-            else if (VFSManagerGetConfigPWFile(self, obuff,
-                                               sizeof obuff-1,
-                                               &z) == 0)
-            have_pwd = true;
-
-            else
-                rc = RC (rcVFS, rcEncryptionKey, rcOpening, rcFile, rcUnknown);
-
-            if (have_pwd)
-            {
-                /* force a NUL terminator that is probably already
-                 * there */
-                obuff [z] = '\0';
-
-                /* -----
-                 * pwfd is not fully a VPath at this point: we 
-                 * should obsolete it
-                 */
-                if (is_fd)
-                    rc = KFileMakeFDFileRead (&pwfile, atoi (obuff));
-
-                else
-                {
-                    VPath * pwp;
-
-                    rc = VPathMakeSysPath (&pwp, obuff);
-                    if (rc == 0)
-                    {
-                        rc = VFSManagerOpenFileRead (self, &pwfile, pwp);
-                        if (rc)
-                        {
-                            rc = RC (rcVFS, rcEncryptionKey, rcOpening, rcFile, rcNotFound);
-                            /* log? */
-                        }
-                        VPathRelease (pwp);
-                    }
-                }
-
-                /* if rc is 0 then we have opened a password file */
-                if (rc == 0)
-                {
-                    /* at this point we are only getting the password from a 
-                     * file but in the future if we can get it from a pipe of
-                     * some sort we can't count on the ReadAll to really know
-                     * if we hit end of file and not just a pause in the
-                     * streaming.  VDB 3 / VFS/KFS 2 will have to fix this somehow
-                     */
-
-                    /* 2 is one for overread and one ful NUL */
-                    assert (VFS_KRYPTO_PASSWORD_MAX_SIZE <= sizeof obuff - 2);
-
-                    /* read the password into obuff */
-                    rc = KFileReadAll (pwfile, 0, obuff, sizeof obuff - 1, &z);
-
-                    /* we're done with the password file (or fd) now */
-                    KFileRelease (pwfile);
-            
-                    if (rc == 0)
-                    {
-                        char * pc;
-
-                        /* -----
-                         * trim back the contents of the file to
-                         * a single ASCII/UTF-8 text line
-                         * We actually only check for the two normal
-                         * end of line characters so it could have other
-                         * control characters...
-                         */
-                        assert (z < sizeof (obuff));
-
-                        obuff[z] = '\0';
-
-                        pc = string_chr (obuff, z, '\r');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = pc - obuff;
-                        }
-                        pc = string_chr (obuff, z, '\n');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = pc - obuff;
-                        }
-
-                        if (z == 0)
-                            rc = RC (rcVFS, rcMgr, rcOpening, rcEncryptionKey, rcTooShort);
-
-                        else if  (VFS_KRYPTO_PASSWORD_MAX_SIZE < z) /* pwz came in as greater than 4096 */
-                            rc = RC (rcVFS, rcMgr, rcOpening, rcEncryptionKey, rcTooLong);
-                    }
-                }
-            }
-        }
-        if (rc == 0)
-        {
-            rc = WGAEncValidate (file, obuff, z);
-        }
-    }
-    return rc;
-}
-
-
-
-/* ResolvePath
- *
- * take a VPath and resolve to a final form apropriate for KDB
- *
- * that is take a relative path and resolve it against the CWD
- * or take an accession and resolve into the local or remote 
- * VResolver file based on config. It is just a single resolution percall
- */
-static rc_t VFSManagerResolvePathResolver (const VFSManager * self,
-                                           uint32_t flags,
-                                           const VPath * in_path,
-                                           VPath ** out_path)
-{
-    rc_t rc = 0;
-
-    *out_path = NULL;
-
-    /*
-     * this RC perculates up for ncbi-acc: schemes but not for
-     * no scheme uris
-     */
-    if ((flags & vfsmgr_rflag_no_acc) == vfsmgr_rflag_no_acc)
-    {
-        /* hack */
-        if (in_path->scheme == vpuri_none)
-            rc = SILENT_RC (rcVFS, rcMgr, rcResolving, rcSRA, rcNotAvailable);
-        else
-            rc = RC (rcVFS, rcMgr, rcResolving, rcSRA, rcNotAvailable);
-    }
-    else
-    {
-        bool not_done = true;
-
-        /*
-         * cast because we seem to have the restriction on the output from
-         * VResolver that seems too restrictive
-         */
-        if ((flags & vfsmgr_rflag_no_acc_local) == 0)
-        {
-            rc = VResolverLocal (self->resolver, in_path, (const VPath **)out_path);
-            if (rc == 0)
-                not_done = false;
-        }
-            
-        if (not_done && ((flags & vfsmgr_rflag_no_acc_remote) == 0))
-            rc = VResolverRemote (self->resolver, in_path, 
-                                  (const VPath **)out_path, NULL);
-    }
-    return rc;
-}
-
-
-static rc_t VFSManagerResolvePathInt (const VFSManager * self,
-                                      uint32_t flags,
-                                      const KDirectory * base_dir,
-                                      const VPath * in_path,
-                                      VPath ** out_path)
-{
-    char * pc;
-    rc_t rc;
-
-    assert (self);
-    assert (in_path);
-    assert (out_path);
-
-    switch (in_path->scheme)
-    {
-    default:
-        rc = RC (rcVFS, rcMgr, rcResolving, rcPath, rcInvalid);
-        break;
-
-    case vpuri_not_supported:
-    case vpuri_ncbi_legrefseq:
-        rc = RC (rcVFS, rcMgr, rcResolving, rcPath, rcUnsupported);
-        break;
-
-    case vpuri_ncbi_acc:
-        rc = VFSManagerResolvePathResolver (self, flags, in_path, out_path);
-        break;
-
-    case vpuri_none:
-        /* for KDB purposes, no scheme might be an accession */
-        if (flags & vfsmgr_rflag_kdb_acc)
-        {
-             /* no '/' is permitted in an accession */
-            pc = string_chr (in_path->path.addr, in_path->path.size, '/');
-            if (pc == NULL)
-            {
-                rc = VFSManagerResolvePathResolver (self, flags, in_path, out_path);
-                if (rc == 0)
-                    break;
-            }
-        }
-        /* Fall through */
-    case vpuri_ncbi_vfs:
-#if SUPPORT_FILE_URL
-    case vpuri_file:
-#endif
-        /* check for relative versus full path : assumes no 'auth' not starting with '/' */
-        if (in_path->path.addr[0] == '/')
-        {
-            rc = VPathAddRef (in_path);
-            if (rc == 0)
-                *out_path = (VPath *)in_path; /* oh these const ptr are annoying */
-        }
-        else
-        {
-            char b [4 * 1024];
-
-            /* not 'properly' handling query, fragment etc. for relative path
-             * assumes path within VPath is ASCIZ
-             *
-             * If KDirectoryResolvePath took our format and not vsnprintf we
-             *  could use %S and get the string out of the VPath.
-             */
-            rc = KDirectoryResolvePath (base_dir, true, b, sizeof b,
-                                        in_path->path.addr);
-            if (rc == 0)
-            {
-                VPath * v;
-                char u [32 * 1024];
-
-                switch (in_path->scheme)
-                {
-                default:
-                    rc = RC (rcVFS, rcMgr, rcResolving, rcFunction, rcInvalid);
-                    break;
-
-                case vpuri_ncbi_vfs:
-                    rc = string_printf (u, sizeof u, NULL, "%s:%s?%s#%s",
-                                        in_path->storage, b,
-                                        in_path->query, in_path->fragment);
-                    if (rc == 0)
-                        rc = VPathMake (&v, u);
-                    break;
-
-                case vpuri_none:
-                case vpuri_file:
-                    rc = VPathMake (&v, b);
-                    break;
-                }
-                if (rc == 0)
-                    *out_path = v;
-            }
-        }
-        break;
-
-        /* these are considered fully resolved already */
-    case vpuri_http:
-    case vpuri_ftp:
-        rc = VPathAddRef (in_path);
-        if (rc == 0)
-            *out_path = (VPath*)in_path;
-        break;
-
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerResolvePath (const VFSManager * self,
-                                          uint32_t flags,
-                                          const VPath * in_path,
-                                          VPath ** out_path)
-{
-    if (out_path == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcParam, rcNull);
-
-    *out_path = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcSelf, rcNull);
-
-    if (in_path == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcParam, rcNull);
-
-    return VFSManagerResolvePathInt (self, flags, self->cwd, in_path, out_path);
-}
-
-LIB_EXPORT rc_t CC VFSManagerResolvePathRelative (const VFSManager * self,
-                                                  uint32_t flags,
-                                                  const struct  VPath * base_path,
-                                                  const struct  VPath * in_path,
-                                                  struct VPath ** out_path)
-{
-    const KDirectory * dir;
-    rc_t rc;
-
-    if (out_path == NULL)
-        rc = RC (rcVFS, rcMgr, rcResolving, rcParam, rcNull);
-
-    *out_path = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcSelf, rcNull);
-
-    if (in_path == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcParam, rcNull);
-
-    rc = VFSManagerOpenDirectoryRead (self, &dir, base_path);
-    if (rc == 0)
-        rc = VFSManagerResolvePathInt (self, flags, dir, in_path, out_path);
-
-    return rc;
-}
-
-/*
- * This is still hack - must match VFSManagerGetEncryptionKey()
- */
-
-LIB_EXPORT rc_t CC VFSManagerResolvePathRelativeDir (const VFSManager * self,
-                                                     uint32_t flags,
-                                                     const KDirectory * base_dir,
-                                                     const VPath * in_path,
-                                                     VPath ** out_path)
-{
-    if (out_path == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcParam, rcNull);
-
-    *out_path = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcSelf, rcNull);
-
-    if (in_path == NULL)
-        return RC (rcVFS, rcMgr, rcResolving, rcParam, rcNull);
-
-    return VFSManagerResolvePathInt (self, flags, base_dir, in_path, out_path);
-}
-
-
-/* OpenFileRead
- *  opens an existing file with read-only access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- */
-static
-rc_t VFSManagerOpenFileReadDecryption (const VFSManager *self,
-                                       const KDirectory * dir,
-                                       const KFile ** f,
-                                       const KFile * file,
-                                       const VPath * path,
-                                       bool force_decrypt,
-                                       bool * was_encrypted)
-{
-    rc_t rc = 0;
-    size_t z;
-    char obuff [4096 + 2]; /* 1 for over-read and 1 for NUL */
-    bool has_enc_opt;
-
-    if (was_encrypted)
-        *was_encrypted = false;
-
-    /* -----
-     * at this point we have no fatal errors and we have the
-     * file opened but we have not seen if we have to decrypt
-     * or use other query options
-     */
-    has_enc_opt = (VPathOption (path, vpopt_encrypted, obuff,
-                                sizeof obuff, &z) == 0);
-
-    if ((has_enc_opt == false) &&
-        (force_decrypt == false))
-    {
-        /* if we are not told to decrypt, don't and we are done */
-        KFileAddRef (file);
-        *f = file;
-    }
-
-    else /* we are told to decrypt if possible */
-    {
-        rc_t erc = 0;
-        const KFile * pwfile;
-        bool is_fd = false;
-        bool have_pwd = false;
-        char tbuff [4096];
-
-        /* -----
-         * get the path to and open the pwfile
-         *
-         * first check the insecure password on the command line hack 
-         * then check the option for pwfile in the VPath
-         * then check the option for pwfd
-         * then check the environment
-         * then check the configuration
-         *
-         * some odd jumping around due to ordering of where
-         * to look
-         */
-        if (VPathOption (path, vpopt_temporary_pw_hack, obuff, sizeof obuff, &z) == 0)
-        {
-            if (z < 1)
-                erc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-            else
-            {
-                size_t x = 0;
-                size_t y = 0;
-                int ch, h, l;
-
-                while (x < z)
-                {
-
-                    h = tolower(obuff[x++]);
-                    l = tolower(obuff[x++]);
-
-                    if (!isxdigit(h) || !isxdigit(l))
-                        erc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-
-                    if (isdigit(h))
-                        ch = (h - '0') << 4;
-                    else
-                        ch = (h + 10 - 'a') << 4;
-                    if (isdigit(l))
-                        ch |= (l - '0');
-                    else
-                        ch |= (l + 10 - 'a');
-
-                    /* added for compatibility with other passwords */
-                    if ((ch == '\r') || (ch == '\r'))
-                        break;
-
-                    obuff[y++] = (char)ch;
-                }
-                obuff[y] = '\0';
-                assert (z == x);
-                assert (z/2 == y);
-                z = y;
-            }
-        }
-        else
-        {
-            if (VPathOption (path, vpopt_pwpath, obuff,
-                             sizeof obuff - 1, &z) == 0)
-                have_pwd = true;
-
-            else if (VPathOption (path, vpopt_pwfd, obuff,
-                                  sizeof obuff - 1, &z) == 0)
-                have_pwd = is_fd = true;
-
-            else if (VFSManagerGetConfigPWFile(self, obuff,
-                                               sizeof obuff-1,
-                                               &z) == 0)
-                have_pwd = true;
-
-            else
-                erc = RC (rcVFS, rcEncryptionKey, rcOpening, rcFile, rcUnknown);
-
-            if (have_pwd)
-            {
-                /* force a NUL terminator that is probably already
-                 * there */
-                obuff [z] = '\0';
-
-                /* -----
-                 * pwfd is not fully a VPath at this point: we 
-                 * should obsolete it
-                 */
-                if (is_fd)
-                    rc = KFileMakeFDFileRead (&pwfile, atoi (obuff));
-
-                else
-                {
-                    VPath * pwp;
-
-                    erc = VPathMakeSysPath (&pwp, obuff);
-                    if (erc)
-                        ; /* log ? */
-
-                    else
-                    {
-                        erc = VFSManagerOpenFileRead (self, &pwfile, pwp);
-                        if (erc)
-                        {
-                            erc = RC (rcVFS, rcEncryptionKey, rcOpening, rcFile, rcNotFound);
-                            /* log? */
-                        }
-                        VPathRelease (pwp);
-                    }
-                }
-        
-
-                /* if erc is 0 then we have opened a password file */
-                if (erc == 0)
-                {
-                    /* at this point we are only getting the password from a 
-                     * file but in the future if we can get it from a pipe of
-                     * some sort we can't count on the ReadAll to really know
-                     * if we hit end of file and not just a pause in the
-                     * streaming.  VDB 3 / VFS/KFS 2 will have to fix this somehow
-                     */
-
-                    /* 2 is one for overread and one ful NUL */
-                    assert (VFS_KRYPTO_PASSWORD_MAX_SIZE <= sizeof obuff - 2);
-
-                    /* read the password into obuff */
-                    erc = KFileReadAll (pwfile, 0, obuff, sizeof obuff - 1, &z);
-
-                    /* we're done with the password file (or fd) now */
-                    KFileRelease (pwfile);
-            
-                    if (erc)
-                        ; /* log ? */
-
-                    else
-                    {
-                        char * pc;
-
-                        /* -----
-                         * trim back the contents of the file to
-                         * a single ASCII/UTF-8 text line
-                         * We actually only check for the two normal
-                         * end of line characters so it could have other
-                         * control characters...
-                         */
-
-                        assert (z < sizeof (obuff));
-
-                        obuff[z] = '\0';
-
-                        pc = string_chr (obuff, z, '\r');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = pc - obuff;
-                        }
-                        pc = string_chr (obuff, z, '\n');
-                        if (pc)
-                        {
-                            *pc = '\0';
-                            z = pc - obuff;
-                        }
-
-                        if (z == 0)
-                            erc = RC (rcVFS, rcMgr, rcOpening, rcEncryptionKey, rcTooShort);
-
-                        else if  (VFS_KRYPTO_PASSWORD_MAX_SIZE < z) /* pwz came in as greater than 4096 */
-                            erc = RC (rcVFS, rcMgr, rcOpening, rcEncryptionKey, rcTooLong);
-                    }
-                }
-            }
-        }
-
-        /* -----
-         * pre-read 4kb from the 'encrypted file'
-         */
-        rc = KFileRandomAccess (file);
-        if (rc == 0)
-            ;
-        /* most common and easiest option is it has random
-         * access - a no-op here
-         */
-        else if (GetRCState(rc) == rcUnsupported)
-        {
-            const KFile * buffile;
-
-            rc = KBufFileMakeRead (&buffile, file, 32 * 2 * 1024);
-            if (rc)
-                ;
-            else
-            {
-                /* there is an extra reference to file now, but
-                 * it gets removed after this function returns
-                 */
-                file = buffile;
-            }
-        }
-        
-        if (rc == 0)
-        {
-            size_t tz;
-
-            /* we now have a file from which we can pre-read the
-             * possible encrypted format header */
-            rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-            if (rc == 0)
-            {
-                /* 
-                 * we've successfully read 4KB from the file,
-                 * now decide if is actually an encrypted file
-                 * format we support
-                 */
-                const KFile * encfile;
-
-                /* is this the header of an ecnrypted file? */
-                if (KFileIsEnc (tbuff, tz) == 0)
-                {
-                    if (was_encrypted)
-                        *was_encrypted = true;
-
-                    if (erc)
-                        rc = erc;
-
-                    else
-                    {
-                        KKey key;
-
-                        /* create the AES Key */
-                        rc = KKeyInitRead (&key, kkeyAES128, obuff, z);
-                        if (rc)
-                            ;
-                        else
-                        {
-                            rc = KEncFileMakeRead (&encfile, file, &key);
-                            if (rc)
-                                ;
-                            else
-                            {
-                                const KFile * buffile;
-
-                                /*
-                                 * TODO: make the bsize a config item not a hard constant
-                                 */
-                                rc = KBufFileMakeRead (&buffile, encfile,
-                                                       256 * 1024 * 1024);
-                                if (rc == 0)
-                                {
-                                    /* we'll release an extra reference to file
-                                     * after this function returns
-                                     */
-                                    *f = buffile;
-                                    return 0;
-                                }
-                                KFileRelease (encfile);
-                            }
-                        }
-                    }
-                }
-                else if (KFileIsWGAEnc (tbuff, tz) == 0)
-                {
-                    if (was_encrypted)
-                        *was_encrypted = true;
-
-                    if (erc)
-                        rc = erc;
-
-                    else
-                    {
-                        rc = KFileMakeWGAEncRead (&encfile, file, obuff, z);
-                        if (rc)
-                            ;
-                        else
-                        {
-                            /* we'll release anextra reference to file
-                             * after this function returns
-                             */
-                            *f = encfile;
-                            return 0;
-                        }
-                    }
-                }
-                else
-                {
-                    /* -----
-                     * not encrypted in a manner we can decrypt so 
-                     * give back the raw file (possibly buffered
-                     *
-                     * since file is released in the caller
-                     * we need another reference
-                     */
-                    KFileAddRef (file);
-                    *f = file;
-                    return 0;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-/*
- * try to open the file as a regular file
- */
-static
-rc_t VFSManagerOpenFileReadRegularFile (char * pbuff, size_t z,
-                                        KFile const ** file,
-                                        const KDirectory * dir)
-{
-    rc_t rc;
-    char rbuff [8192];
-
-    assert ((pbuff) && (pbuff[0]));
-    assert (*file == NULL);
-
-    rc = KDirectoryResolvePath (dir, true, rbuff, sizeof rbuff,
-                                pbuff);
-    if (rc)
-        ; /* log? */
-    else
-    {
-        /* validate that the file system agrees the path refers
-         * to a regular file (even if through a link */
-        uint32_t type;
-
-        type = KDirectoryPathType (dir, rbuff);
-        switch (type & ~kptAlias)
-        {
-        case kptNotFound:
-            rc = RC (rcVFS, rcMgr, rcOpening, rcFile,
-                     rcNotFound);
-            break;
-
-        case kptBadPath:
-            rc = RC (rcVFS, rcMgr, rcOpening, rcFile,
-                     rcInvalid);
-            break;
-
-        case kptDir:
-        case kptCharDev:
-        case kptBlockDev:
-        case kptFIFO:
-        case kptZombieFile:
-            rc = RC (rcVFS, rcMgr, rcOpening, rcFile,
-                     rcIncorrect);
-            break;
-
-        default:
-            rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcUnknown);
-            break;
-
-        case kptFile:
-            /*
-             * this is the good/successful path: open the file 
-             * as a const KFile
-             */
-            rc = KDirectoryOpenFileRead (dir, file, rbuff);
-            break;
-        }
-    }
-
-    return rc;
-}
-
-/*
- * if successful set *file to a usable KFile * and return 0
- * if unsuccessful but without error, set *file to NULL and return 0
- * if an error encountered set *file to NULL and return non-zero.
- */
-static
-rc_t VFSManagerOpenFileReadSpecial (char * pbuff, size_t z, KFile const ** file)
-{
-    rc_t rc;
-    static const char dev [] = "/dev/";
-    static const char dev_stdin [] = "/dev/stdin";
-    static const char dev_null [] = "/dev/null";
-
-    assert (pbuff);
-    assert (z);
-    assert (file);
-
-    *file = NULL;
-
-    /*
-     * Handle a few special case path names that are pre-opened
-     * 'file descriptors'
-     *
-     * This probably needs to be system specific eventually
-     *
-     * First check for the path being in the 'dev' directory in
-     * posix/unix terms
-     */
-    if (string_cmp (dev, sizeof dev - 1, pbuff, z, sizeof dev - 1) != 0)
-        rc = 0; /* we're done */
-
-    else
-    {
-        if (strcmp (dev_stdin, pbuff) == 0)
-            rc = KFileMakeStdIn (file);
-
-        else if (strcmp (dev_null, pbuff) == 0)
-            rc = KFileMakeNullRead (file);
-
-        else if (strncmp ("/dev/fd/", pbuff, sizeof "/dev/fd/" - 1) == 0)
-        {
-            char * pc;
-            size_t ix;
-
-            pc = pbuff + sizeof "/dev/fd/" - 1;
-
-            for (ix = 0; isdigit (pc[ix]); ++ix)
-                assert (ix <= z);
-
-            if ((ix > 0)&&(pc[ix] == '\0'))
-            {
-                int fd;
-
-                fd = atoi (pc);
-                rc = KFileMakeFDFileRead (file, fd);
-            }
-        }
-    }
-
-    return rc;
-}
-
-static
-rc_t VFSManagerOpenFileReadInt (const VFSManager *self,
-                                const KDirectory * dir,
-                                KFile const **f,
-                                const VPath * path,
-                                bool force_decrypt,
-                                bool * was_encrypted)
-{
-    /* -----
-     * this is a first pass that only opens files directory referenced from 
-     * the ced or have a sysdir root; that is it uses KSysDir and KSysFile
-     * only.
-     */
-    const KFile * file = NULL;
-    size_t num_read;
-    char pbuff [4096];
-    rc_t rc;
-
-    rc = VPathReadPath (path, pbuff, sizeof pbuff, &num_read);
-    if (rc)
-        ; /* log? */
-    else
-    {
-        /* -----
-         * try to open path as a special file if requested
-         *
-         * *file will be set or a usable file or to NULL and rc will reflect
-         * any error
-         */
-        rc = VFSManagerOpenFileReadSpecial (pbuff, num_read, &file);
-
-
-        /* -----
-         * If we didn't open the file using the special
-         * logic above for special paths open the file and have no error,
-         * continue
-         */
-        if ((rc == 0) && (file == NULL))
-            rc = VFSManagerOpenFileReadRegularFile (pbuff, num_read,
-                                                    &file, dir);
-
-        /*
-         * we either have an rc to return with or we have an open KFile:
-         * check for possible encryption that we are told to decrypt
-         */
-        if (rc == 0)
-        {
-            rc = VFSManagerOpenFileReadDecryption (self, dir, f, file, path,
-                                                   force_decrypt, was_encrypted);
-        }
-    }
-    /* release file if we are here and it is open */
-    KFileRelease (file);
-    return rc;
-}
-
-
-static
-rc_t VFSManagerOpenFileReadDirectoryRelativeInt (const VFSManager *self,
-                                                 const KDirectory * dir,
-                                                 KFile const **f,
-                                                 const VPath * path,
-                                                 bool force_decrypt,
-                                                 bool * was_encrypted)
-{
-    rc_t rc;
-
-    if (f == NULL)
-        rc = RC (rcVFS, rcMgr, rcOpening, rcParam, rcNull);
-
-    else
-    {
-        *f = NULL;
-
-        if ((f == NULL) || (path == NULL))
-            rc = RC (rcVFS, rcMgr, rcOpening, rcParam, rcNull);
-
-        else if (self == NULL)
-            rc = RC (rcVFS, rcMgr, rcOpening, rcSelf, rcNull);
-
-        else
-        {
-
-            rc = VFSManagerOpenFileReadInt (self, dir, f, path, force_decrypt, was_encrypted);
-        }
-    }
-    return rc;
-}
-
-
-/* we will create a KFile from a http or ftp url... */
-static rc_t VFSManagerOpenCurlFile ( const VFSManager *self,
-                                     KFile const **f,
-                                     const VPath * path )
-{
-    rc_t rc;
-/*    const char * url; */
-    const String * uri = NULL;
-
-    if ( f == NULL )
-        return RC( rcVFS, rcMgr, rcOpening, rcParam, rcNull );
-    *f = NULL;
-    if ( self == NULL )
-        return RC( rcVFS, rcMgr, rcOpening, rcSelf, rcNull );
-    if ( path == NULL )
-        return RC( rcVFS, rcMgr, rcOpening, rcParam, rcNull );
-
-/*    url = path->path.addr; */
-    rc = VPathMakeString ( path, &uri );
-    if ( rc == 0 )
-    {
-        if ( self->resolver != NULL )
-        {
-            const VPath * local_cache;
-            /* find cache - vresolver call */
-            rc = VResolverCache ( self->resolver, path, &local_cache, 0 );
-            if ( rc == 0 )
-                /* we did find a place for local cache --> use it! */
-                rc = VFSManagerMakeCurlFile( self, f, uri->addr, local_cache->path.addr );
-            else
-                /* we did NOT find a place for local cache --> we are not caching! */
-                rc = VFSManagerMakeCurlFile( self, f, uri->addr, NULL );
-        }
-        else
-            rc = VFSManagerMakeCurlFile( self, f, uri->addr, NULL );
-        free( ( void * )uri );
-    }
-    return rc;
-}
-
-
-LIB_EXPORT
-rc_t CC VFSManagerOpenFileReadDirectoryRelative (const VFSManager *self,
-                                                 const KDirectory * dir,
-                                                 KFile const **f,
-                                                 const VPath * path)
-{
-    return VFSManagerOpenFileReadDirectoryRelativeInt (self, dir, f, path, false, NULL);
-}
-
-LIB_EXPORT
-rc_t CC VFSManagerOpenFileReadDirectoryRelativeDecrypt (const VFSManager *self,
-                                                        const KDirectory * dir,
-                                                        KFile const **f,
-                                                        const VPath * path,
-                                                        bool force_decrypt)
-{
-    return VFSManagerOpenFileReadDirectoryRelativeInt (self, dir, f, path, true, NULL);
-}
-
-
-static rc_t ResolveVPathByVResolver( struct VResolver * resolver, const VPath ** path )
-{
-    rc_t rc;
-
-    if ( resolver == NULL )
-        rc = RC ( rcVFS, rcFile, rcOpening, rcSRA, rcUnsupported );
-    else
-    {
-        const VPath * tpath;
-        rc = VResolverLocal ( resolver, *path, &tpath );
-        if ( rc == 0 )
-        {
-            VPathRelease ( *path );
-            *path = tpath;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t ResolveVPathBySRAPath( SRAPath * srapath, const VPath ** path )
-{
-    rc_t rc;
-
-    if ( srapath == NULL )
-        rc = RC ( rcVFS, rcFile, rcOpening, rcSRA, rcUnsupported );
-    else
-    {
-        char spath [ 8192 ];
-        rc = SRAPathFind ( srapath, (*path)->path.addr, spath, sizeof spath );
-        if ( rc == 0 )
-        {
-            char npath [ 8192 ];
-            size_t zz;
-
-            if ( (*path)->query && (*path)->query[ 0 ] )
-                rc = string_printf ( npath, sizeof npath, &zz, "ncbi-file:%s?%s",
-                                     spath, (*path)->query );
-            else
-                rc = string_printf ( npath, sizeof npath, &zz, "ncbi-file:%s",
-                                     spath );
-            if ( rc == 0 )
-            {
-                VPath * tpath;
-                rc = VPathMake ( &tpath, npath );
-                if ( rc == 0 )
-                {
-                    VPathRelease ( *path );
-                    *path = tpath;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerOpenFileRead ( const VFSManager *self,
-                                            KFile const **f,
-                                            const VPath * path_ )
-{
-    rc_t rc;
-
-    if ( f == NULL )
-        rc = RC (rcVFS, rcMgr, rcOpen, rcParam, rcNull);
-    else
-    {
-        *f = NULL;
-
-        if  (self == NULL )
-            rc = RC ( rcVFS, rcMgr, rcOpen, rcSelf, rcNull );
-        else if ( f == NULL )
-            rc = RC ( rcVFS, rcMgr, rcOpen, rcParam, rcNull );
-        else
-        {
-            rc = VPathAddRef ( path_ );
-            if ( rc == 0 )
-            {
-                const VPath * path = path_;
-
-                switch ( path->scheme )
-                {
-                default:
-                case vpuri_invalid:
-                    rc = RC (rcVFS, rcFile, rcOpening, rcPath, rcInvalid);
-                    break;
-
-                case vpuri_not_supported:
-                    rc = RC (rcVFS, rcFile, rcOpening, rcPath, rcUnsupported);
-                    break;
-
-                case vpuri_ncbi_acc:
-                    if ( self->resolver != NULL )
-                        rc = ResolveVPathByVResolver( self->resolver, &path );
-                    else
-                        rc = ResolveVPathBySRAPath( self->srapath, &path );
-
-                    if ( rc != 0 )
-                        break;
-
-                /* !!! fall through !!! */
-
-                case vpuri_none:
-                case vpuri_ncbi_vfs:
-#if SUPPORT_FILE_URL
-                case vpuri_file:
-#endif
-                    rc = VFSManagerOpenFileReadDirectoryRelativeInt ( self, self->cwd, f, path, false, NULL );
-                    break;
-
-                case vpuri_ncbi_legrefseq:
-                    rc = RC ( rcVFS, rcFile, rcOpening, rcPath, rcIncorrect );
-                    break;
-
-                case vpuri_http:
-                case vpuri_ftp:
-                    rc = VFSManagerOpenCurlFile ( self, f, path );
-                    break;
-                }
-                VPathRelease (path);
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerOpenFileReadDecrypt (const VFSManager *self,
-                                                  KFile const **f,
-                                                  const VPath * path)
-{
-    return VFSManagerOpenFileReadDirectoryRelativeInt ( self, self->cwd, f, path, true, NULL );
-}
-
-
-static
-rc_t get_config_password (const VFSManager * self, char * b, size_t s, size_t * p)
-{
-    const KFile * pwfile;
-    size_t z;
-    rc_t rc;
-    char obuff [4096 + 16];
-
-    assert (b && s && p);
-
-    rc = VFSManagerGetConfigPWFile(self, obuff, sizeof obuff, &z);
-    if (rc == 0)
-    {
-        VPath * vpath;
-
-        rc = VPathMake (&vpath, obuff);
-        if (rc)
-            ;
-
-        else
-        {
-            rc =  VFSManagerOpenFileRead (self, &pwfile, vpath);
-            if (rc)
-                rc = RC (rcVFS, rcEncryptionKey, rcOpening, rcFile, rcNotFound);
-
-            else
-            {
-                VPathRelease (vpath);
-
-                /* read the password into obuff */
-                rc = KFileReadAll (pwfile, 0, obuff, sizeof obuff - 1, &z);
-            
-                KFileRelease (pwfile);
-
-                if (rc == 0)
-                {
-                    char * pc;
-
-                    /* -----
-                     * trim back the contents of the file to
-                     * a single ASCII/UTF-8 text line
-                     * We actually only check for the two normal
-                     * end of line characters so it could have other
-                     * control characters...
-                     */
-                    obuff[z] = '\0';
-                    pc = string_chr (obuff, z, '\r');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        z = pc - obuff;
-                    }
-                    pc = string_chr (obuff, z, '\n');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        z = pc - obuff;
-                    }
-
-                    if (z > 4096) /* arbitrary maximum size */
-                        rc = RC (rcKrypto, rcEncryptionKey, rcRetrieving, rcEncryptionKey, rcExcessive);
-
-                    else if (s < z)
-                        rc = RC (rcKrypto, rcEncryptionKey, rcRetrieving, rcBuffer, rcInsufficient);
-
-                    else
-                    {
-                        memcpy (b, obuff, z);
-                        if (s>z)
-                            b[z] = '\0';
-                        *p = z;
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT
-rc_t CC VFSManagerOpenDirectoryUpdateDirectoryRelative (const VFSManager *self,
-                                                        const KDirectory * dir,
-                                                        KDirectory **d,
-                                                        const VPath * path)
-{
-    size_t num_read;
-    char pbuff [4096]; /* path buffer */
-    rc_t rc;
-
-    if ((d == NULL) || (path == NULL))
-        return RC (rcVFS, rcMgr, rcOpening, rcParam, rcNull);
-
-    *d = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcOpening, rcSelf, rcNull);
-
-    switch ( path->scheme )
-    {
-    case vpuri_http :
-    case vpuri_ftp :
-        return RC( rcVFS, rcMgr, rcOpening, rcParam, rcWrongType );
-
-    default :
-        rc = VPathReadPath (path, pbuff, sizeof pbuff, &num_read);
-        if (rc == 0)
-        {
-            char rbuff [4096]; /* resolved path buffer */
-
-            rc = KDirectoryResolvePath (dir, true, rbuff, sizeof rbuff, pbuff);
-            if (rc == 0)
-            {
-                uint32_t type;
-
-                type = KDirectoryPathType (dir, rbuff);
-                switch (type & ~kptAlias)
-                {
-                case kptNotFound:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcDirectory, rcNotFound);
-                    break;
-
-                case kptFile:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcDirectory, rcReadonly);
-                    break;
-
-                case kptBadPath:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcDirectory, rcInvalid);
-                    break;
-
-                case kptDir:
-                    rc = KDirectoryOpenDirUpdate ((KDirectory*)dir, d, false, rbuff);
-                    return rc;
-
-                case kptCharDev:
-                case kptBlockDev:
-                case kptFIFO:
-                case kptZombieFile:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcDirectory, rcIncorrect);
-                    break;
-
-                default:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcDirectory, rcUnknown);
-                    break;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerOpenDirectoryUpdate (const VFSManager *self,
-                                                  KDirectory **d,
-                                                  const VPath * path)
-{
-    return VFSManagerOpenDirectoryUpdateDirectoryRelative (self, self->cwd, d, path);
-}
-
-
-static
-rc_t TransformFileToDirectory(const KDirectory * dir,
-                              const KFile * file,
-                              KDirectory const **d,
-                              const char *path_str,
-                              bool was_encrypted)
-{
-    rc_t rc;
-
-    rc = KFileRandomAccess( file );
-    if (rc)
-        PLOGERR(klogErr,(klogErr, rc, "Can not use files without random access"
-                         " as database archives '$(P)'", "P=%s", path_str));
-    else
-    {
-        size_t tz;
-        char tbuff [4096];
-
-        rc = KFileReadAll (file, 0, tbuff, sizeof tbuff, &tz);
-        if ( rc )
-            LOGERR (klogErr, rc, "Error reading the head of an archive to use as a database object");
-        else
-        {
-            /* we only use KAR/SRA or tar files as archives so try to identify
-             * as our KAR/SRA file */
-            if ( KFileIsSRA( tbuff, tz ) == 0 )
-                /* if it was open it as a directory */
-                rc = KDirectoryOpenSraArchiveReadUnbounded_silent_preopened( dir, d, false, file, path_str );
-
-            else
-            {
-                rc = KDirectoryOpenTarArchiveRead_silent_preopened( dir, d, false, file, path_str );
-
-                /*
-                 * if RC here we did not have an SRA and did not have
-                 * a tar file we could use; assume the problem was decryption
-                 * if the file was encrypted
-                 */
-                if ( was_encrypted )
-                {
-                    rc = RC( rcVFS, rcEncryptionKey, rcOpening, rcEncryption,
-                             rcIncorrect );
-                    PLOGERR (klogErr, (klogErr, rc, "could not use '$(P)' as an "
-                                       "archive it was encrypted so the password"
-                                       " was possibly wrong", "P=%s", path_str));
-                }
-                else
-                    PLOGERR (klogInfo, (klogInfo, rc, "could not use '$(P)' as an "
-                                       "archive not identified as SRA or"
-                                       " TAR file", "P=%s", path_str));
-            }
-        }
-    }
-    return rc;
-}
-
-/* also handles ftp - if it cant we'll need another function */
-static
-rc_t VFSManagerOpenDirectoryReadHttp (const VFSManager *self,
-                                      const KDirectory * dir,
-                                      KDirectory const **d,
-                                      const VPath * path,
-                                      bool force_decrypt)
-{
-    rc_t rc;
-
-    {
-        char urlbuffer[ 4096 ];
-        size_t num_writ;
-
-        /*
-         * we have to rebuild the full http-uri again from scheme + path 
-         *
-         * This should become a method in the ath class rather than this 
-         * quick hack
-         *
-         * NOTE we need to eventually remove encryption related options
-         */
-        rc = string_printf (urlbuffer, sizeof urlbuffer, &num_writ, "%s:%s", path->storage, path->path.addr );
-
-        if (rc)
-            PLOGERR (klogErr, (klogErr, rc, "error with url re-creation "
-                               "'$(U)' from '$(P)'","U=%s,P=%S",
-                               urlbuffer,&path->path));
-        else
-        {
-            const KFile * file = NULL;
-
-            rc = VFSManagerOpenCurlFile ( self, &file, path );
-/*            rc = VFSManagerMakeCurlFile( self, &file, urlbuffer, NULL ); */
-            if ( rc != 0 )
-                PLOGERR ( klogErr, ( klogErr, rc, "error with curl open '$(U)'",
-                                     "U=%s", urlbuffer ) );
-            else
-            {
-                const char mountpointpath[] = "/";
-                const KDirectory * mountpoint;
-
-                rc = KQuickMountDirMake (self->cwd, &mountpoint, file,
-                                         mountpointpath, sizeof mountpointpath - 1, 
-                                         path->path.addr, path->path.size);
-                if (rc)
-                    PLOGERR (klogErr, (klogErr, rc, "error creating mount "
-                                       "'$(M)' for '$(F)", "M=%s,F=%S",
-                                       mountpointpath, &path->path));
-                else
-                {
-                    const KFile * f;
-                    bool was_encrypted = false;
-
-                    rc = VFSManagerOpenFileReadDecryption (self, mountpoint, &f,
-                                                           file, path,
-                                                           force_decrypt,
-                                                           &was_encrypted);
-                    if (rc == 0)
-                    {
-
-                        rc = TransformFileToDirectory (mountpoint, f, d, 
-                                                       path->path.addr,
-                                                       was_encrypted);
-                        /* hacking in the fragment bit */
-                        if ((rc == 0) && (path->fragment != NULL) && (path->fragment[0] != '\0'))
-                        {
-                            const KDirectory * tempd;
-
-                            tempd = *d;
-
-                            rc = KDirectoryOpenDirRead (tempd, d, false, path->fragment);
-                
-                            KDirectoryRelease (tempd);
-                        }
-                        KFileRelease (f);
-                    }
-                    KDirectoryRelease (mountpoint);
-                }
-                KFileRelease (file);
-            }
-        }
-    }
-    return rc;
-}
-
-
-static
-rc_t VFSManagerOpenDirectoryReadKfs (const VFSManager *self,
-                                     const KDirectory * dir,
-                                     KDirectory const **d,
-                                     const VPath * path,
-                                     bool force_decrypt)
-{
-    const KFile * file;
-    size_t num_read;
-    char pbuff [4096]; /* path buffer */
-    rc_t rc;
-
-    assert (self);
-    assert (dir);
-    assert (d);
-    assert (path);
-    assert ((force_decrypt == false) || (force_decrypt == true));
-    assert (*d == NULL);
-
-    file = NULL;
-
-    rc = VPathReadPath (path, pbuff, sizeof pbuff, &num_read);
-    if ( rc == 0 )
-    {
-        char rbuff[ 4096 ]; /* resolved path buffer */
-        rc = KDirectoryResolvePath( dir, true, rbuff, sizeof rbuff, pbuff );
-        if ( rc == 0 )
-        {
-            uint32_t type;
-            bool was_encrypted;
-
-            type = KDirectoryPathType( dir, rbuff );
-            switch (type & ~kptAlias)
-            {
-            case kptNotFound:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcNotFound );
-                break;
-
-            case kptFile:
-                rc = VFSManagerOpenFileReadDirectoryRelativeInt (self, dir, 
-                                                                 &file, path, 
-                                                                 force_decrypt,
-                                                                 &was_encrypted);
-                if (rc == 0)
-                    rc = TransformFileToDirectory (dir, file, d, rbuff,
-                                                   was_encrypted);
-                break;
-
-            case kptBadPath:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcInvalid );
-                break;
-
-            case kptDir:
-                rc = KDirectoryOpenDirRead( dir, d, false, rbuff );
-                return rc;
-
-            case kptCharDev:
-            case kptBlockDev:
-            case kptFIFO:
-            case kptZombieFile:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcIncorrect );
-                break;
-
-            default:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcUnknown );
-                break;
-            }
-
-            /* hacking in the fragment bit */
-            if ((rc == 0) && (path->fragment != NULL) && (path->fragment[0] != '\0'))
-            {
-                const KDirectory * tempd;
-
-                tempd = *d;
-
-                rc = KDirectoryOpenDirRead (tempd, d, false, path->fragment);
-                
-                KDirectoryRelease (tempd);
-            }
-
-
-        }
-    }
-
-    KFileRelease(file);
-
-    return rc;
-}
-
-
-static
-rc_t VFSManagerOpenDirectoryReadLegrefseq (const VFSManager *self,
-                                           const KDirectory * dir,
-                                           KDirectory const **d,
-                                           const VPath * path,
-                                           bool force_decrypt)
-{
-    const KFile * file;
-    const KDirectory * dd;
-    size_t num_read;
-    char pbuff [4096]; /* path buffer */
-    rc_t rc;
-
-    assert (self);
-    assert (dir);
-    assert (d);
-    assert (path);
-    assert ((force_decrypt == false) || (force_decrypt == true));
-    assert (*d == NULL);
-
-    file = NULL;
-    dd = NULL;
-
-    /* hier part only */
-    rc = VPathReadPath (path, pbuff, sizeof pbuff, &num_read);
-    if ( rc == 0 )
-    {
-        char rbuff[ 4096 ]; /* resolved path buffer */
-        rc = KDirectoryResolvePath( dir, true, rbuff, sizeof rbuff, pbuff );
-        if ( rc == 0 )
-        {
-            uint32_t type;
-            bool was_encrypted;
-
-            type = KDirectoryPathType( dir, rbuff );
-            switch (type & ~kptAlias)
-            {
-            case kptNotFound:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcNotFound );
-                break;
-
-            case kptFile:
-                rc = VFSManagerOpenFileReadDirectoryRelativeInt (self, dir, 
-                                                                 &file, path, 
-                                                                 force_decrypt,
-                                                                 &was_encrypted);
-                if (rc == 0)
-                    rc = TransformFileToDirectory (dir, file, &dd, rbuff,
-                                                   was_encrypted);
-                break;
-
-            case kptBadPath:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcInvalid );
-                break;
-
-            case kptDir:
-                rc = KDirectoryOpenDirRead( dir, &dd, false, rbuff );
-                break;
-
-            case kptCharDev:
-            case kptBlockDev:
-            case kptFIFO:
-            case kptZombieFile:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcIncorrect );
-                break;
-
-            default:
-                rc = RC( rcVFS, rcMgr, rcOpening, rcDirectory, rcUnknown );
-                break;
-            }
-
-            if (rc == 0)
-            {
-                rc = KDirectoryOpenDirRead (dd, d, false, path->fragment);
-
-                KDirectoryRelease (dd);
-            }
-        }
-    }
-    return rc;
-}
-
-
-static
-rc_t VFSManagerOpenDirectoryReadDirectoryRelativeInt (const VFSManager *self,
-                                                      const KDirectory * dir,
-                                                      KDirectory const **d,
-                                                      const VPath * path_,
-                                                      bool force_decrypt)
-{
-    rc_t rc;
-    do 
-    {
-        if (d == NULL)
-        {
-            rc =  RC (rcVFS, rcDirectory, rcOpening, rcParam, rcNull);
-            break;
-        }
-
-        *d = NULL;
-
-        if (self == NULL)
-        {
-            rc = RC (rcVFS, rcDirectory, rcOpening, rcSelf, rcNull);
-            break;
-        }
-
-        if ((dir == NULL) || (path_ == NULL))
-        {
-            rc = RC (rcVFS, rcDirectory, rcOpening, rcParam, rcNull);
-            break;
-        }
-
-        if ((force_decrypt != false) && (force_decrypt != true))
-        {
-            rc = RC (rcVFS, rcDirectory, rcOpening, rcParam, rcInvalid);
-            break;
-        }
-
-        rc = VPathAddRef (path_);
-        if ( rc )
-            break;
-        else
-        {
-            const VPath *path = path_;
-
-            switch ( path->scheme )
-            {
-            default:
-            case vpuri_invalid:
-                rc = RC (rcVFS, rcDirectory, rcOpening, rcPath, rcInvalid);
-                break;
-
-
-            case vpuri_not_supported:
-                rc = RC (rcVFS, rcDirectory, rcOpening, rcPath, rcUnsupported);
-                break;
-
-            case vpuri_ncbi_acc:
-                if ( self->resolver != NULL )
-                    rc = ResolveVPathByVResolver( self->resolver, &path );
-                else
-                    rc = ResolveVPathBySRAPath( self->srapath, &path );
-                if ( rc != 0 )
-                    break;
-
-            /* !!! fall through !!! */
-
-            case vpuri_none:
-            case vpuri_ncbi_vfs:
-#if SUPPORT_FILE_URL
-            case vpuri_file:
-#endif
-                rc = VFSManagerOpenDirectoryReadKfs ( self, dir, d, path, force_decrypt );
-                break;
-
-            case vpuri_ncbi_legrefseq:
-                rc = VFSManagerOpenDirectoryReadLegrefseq ( self, dir, d, path, force_decrypt );
-                break;
-
-            case vpuri_http:
-            case vpuri_ftp:
-                rc = VFSManagerOpenDirectoryReadHttp ( self, dir, d, path, force_decrypt );
-                break;
-            }
-            VPathRelease ( path ); /* same as path_ if not uri */
-        }
-    } while (0);
-    return rc;
-}
-
-
-LIB_EXPORT 
-rc_t CC VFSManagerOpenDirectoryReadDirectoryRelative (const VFSManager *self,
-                                                      const KDirectory * dir,
-                                                      KDirectory const **d,
-                                                      const VPath * path)
-{
-    return VFSManagerOpenDirectoryReadDirectoryRelativeInt (self, dir, d, path, false);
-}
-
-
-LIB_EXPORT 
-rc_t CC VFSManagerOpenDirectoryReadDirectoryRelativeDecrypt (const VFSManager *self,
-                                                             const KDirectory * dir,
-                                                             KDirectory const **d,
-                                                             const VPath * path)
-{
-    return VFSManagerOpenDirectoryReadDirectoryRelativeInt (self, dir, d, path, true);
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerOpenDirectoryReadDecrypt (const VFSManager *self,
-                                                       KDirectory const **d,
-                                                       const VPath * path)
-{
-    return VFSManagerOpenDirectoryReadDirectoryRelativeInt (self, self->cwd, d, path, true);
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerOpenDirectoryRead (const VFSManager *self,
-                                                KDirectory const **d,
-                                                const VPath * path)
-{
-    return VFSManagerOpenDirectoryReadDirectoryRelativeInt (self, self->cwd, d, path, false);
-}
-
-
-/* OpenFileWrite
- *  opens an existing file with write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target file
- */
-LIB_EXPORT rc_t CC VFSManagerOpenFileWrite (const VFSManager *self,
-                                            KFile **f, bool update,
-                                            const VPath * path )
-{
-    /* -----
-     * this is a first pass that only opens files directory referenced from 
-     * the ced or have a sysdir root; that is it uses KSysDir and KSysFile
-     * only.
-     */
-    KFile * file = NULL;
-    size_t num_read;
-    char pbuff [4096];
-    rc_t rc;
-
-    if ((f == NULL) || (path == NULL))
-        return RC (rcVFS, rcMgr, rcOpening, rcParam, rcNull);
-
-    *f = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcOpening, rcSelf, rcNull);
-
-    rc = VPathReadPath (path, pbuff, sizeof pbuff, &num_read);
-    if (rc == 0)
-    {
-        /* handle a few special case path names
-         * This probably needs to be system specifica eventually
-         */
-        if (strncmp ("/dev/", pbuff, sizeof "/dev/" - 1) == 0)
-        {
-
-            if (strcmp ("/dev/stdout", pbuff) == 0)
-                rc = KFileMakeStdOut (&file);
-            else if (strcmp ("/dev/stderr", pbuff) == 0)
-                rc = KFileMakeStdErr (&file);
-            else if (strcmp ("/dev/null", pbuff) == 0)
-                rc = KFileMakeNullUpdate (&file);
-            else if (strncmp ("/dev/fd/", pbuff, sizeof "/dev/fd/" - 1) == 0)
-            {
-                char * pc;
-                size_t ix;
-
-                pc = pbuff + sizeof "/dev/fd/" - 1;
-
-                for (ix = 0; isdigit (pc[ix]); ++ix)
-                    ;
-
-                if ((ix > 0)&&(pc[ix] == '\0'))
-                {
-                    int fd = atoi (pc);
-
-                    rc = KFileMakeFDFileWrite (&file, update, fd);
-                }
-            }
-        }
-        if ((rc == 0)&&(file == NULL))
-        {
-            char rbuff [4096];
-
-            rc = KDirectoryResolvePath (self->cwd, true, rbuff, sizeof rbuff, pbuff);
-            if (rc == 0)
-            {
-                uint32_t type;
-
-                type = KDirectoryPathType (self->cwd, rbuff);
-                switch (type & ~kptAlias)
-                {
-                case kptNotFound:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcNotFound);
-                    break;
-
-                case kptFile:
-                    rc = KDirectoryOpenFileWrite (self->cwd, f, update, rbuff);
-                    break;
-
-                case kptBadPath:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcInvalid);
-                    break;
-                case kptDir:
-                case kptCharDev:
-                case kptBlockDev:
-                case kptFIFO:
-                case kptZombieFile:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcIncorrect);
-                    break;
-
-                default:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcUnknown);
-                    break;
-                }
-            }
-        }
-    }
-    if (rc == 0)
-    {
-        size_t z;
-        char obuff [4096+1];
-
-        if (VPathOption (path, vpopt_encrypted, obuff, sizeof obuff, &z) == 0)
-        {
-            const KFile * pwfile;
-
-            if (VPathOption (path, vpopt_temporary_pw_hack, obuff, sizeof obuff, &z) == 0)
-            {
-                if (z < 1)
-                    rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-                else
-                {
-                    size_t x = 0;
-                    size_t y = 0;
-
-                    while (x < z)
-                    {
-                        int ch, h, l;
-
-                        h = tolower(obuff[x++]);
-                        l = tolower(obuff[x++]);
-
-                        if (!isxdigit(h) || !isxdigit(l))
-                            rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-
-                        if (!isxdigit(h) || !isxdigit(l))
-                            rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-
-                        if (isdigit(h))
-                            ch = (h - '0') << 4;
-                        else
-                            ch = (h + 10 - 'a') << 4;
-                        if (isdigit(l))
-                            ch |= (l - '0');
-                        else
-                            ch |= (l + 10 - 'a');
-
-                        obuff[y++] = ch;
-                    }
-                    obuff[y] = '\0';
-                    assert (z == x);
-                    assert (z/2 == y);
-                    z = y;
-                }
-                if (rc == 0)
-                    goto have_password;
-            }
-            else if (VPathOption (path, vpopt_pwpath, obuff, sizeof obuff, &z) == 0)
-                rc = KDirectoryOpenFileRead (self->cwd, &pwfile, obuff);
-
-            else if (VPathOption (path, vpopt_pwfd, obuff, sizeof obuff, &z) == 0)
-                rc = KFileMakeFDFileRead (&pwfile, atoi (obuff));
-
-            else if ((rc = VFSManagerGetConfigPWFile(self, obuff, sizeof obuff, &z)) == 0)
-                rc = KDirectoryOpenFileRead (self->cwd, &pwfile, obuff);
-
-            else
-                rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcUnsupported);
-
-            if (rc == 0)
-            {
-                rc = KFileReadAll (pwfile, 0, obuff, sizeof obuff - 1, &z);
-                
-                KFileRelease (pwfile);
-
-            have_password:
-
-                if (rc == 0)
-                {
-                    KKey key;
-                    KFile * encfile;
-                    char * pc;
-
-                    obuff[z] = '\0';
-                    pc = string_chr (obuff, z, '\r');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        z = pc - obuff;
-                    }
-                    pc = string_chr (obuff, z, '\n');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        z = pc - obuff;
-                    }
-
-                    rc = KKeyInitUpdate (&key, kkeyAES128, obuff, z);
-                    if (rc == 0)
-                    {
-                        rc = KEncFileMakeWrite (&encfile, file, &key);
-                        if (rc == 0)
-                        {
-                            *f = encfile;
-                            return 0;
-                        }
-                    }
-                }
-            }
-            if (rc)
-                KFileRelease (file);
-        }
-        else
-        {
-            *f = file;
-            return 0;
-        }
-    }
-    return rc;
-}
-
-
-/* CreateFile
- *  opens a file with write access
- *
- *  "f" [ OUT ] - return parameter for newly opened file
- *
- *  "update" [ IN ] - if true, open in read/write mode
- *  otherwise, open in write-only mode
- *
- *  "access" [ IN ] - standard Unix access mode, e.g. 0664
- *
- *  "mode" [ IN ] - a creation mode ( see explanation above ).
- *
- *  "path" [ IN ] VPath representing the path, URL or URN of the desired file
- */
-LIB_EXPORT rc_t CC VFSManagerCreateFile ( const VFSManager *self, KFile **f,
-                                          bool update, uint32_t access, KCreateMode mode, const VPath * path )
-{
-    /* -----
-     * this is a first pass that only opens files directory referenced from 
-     * the ced or have a sysdir root; that is it uses KSysDir and KSysFile
-     * only.
-     */
-    KFile * file = NULL;
-    size_t num_read;
-    rc_t rc;
-    bool file_created = false;
-    char pbuff [4096];
-    char rbuff [4096];
-
-    if ((f == NULL) || (path == NULL))
-        return RC (rcVFS, rcMgr, rcOpening, rcParam, rcNull);
-
-    *f = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcOpening, rcSelf, rcNull);
-
-    rc = VPathReadPath (path, pbuff, sizeof pbuff, &num_read);
-    if (rc == 0)
-    {
-
-        /* handle a few special case path names
-         * This probably needs to be system specifica eventually
-         */
-        if (strncmp ("/dev/", pbuff, sizeof "/dev/" - 1) == 0)
-        {
-
-            if (strcmp ("/dev/stdout", pbuff) == 0)
-                rc = KFileMakeStdOut (&file);
-            else if (strcmp ("/dev/stderr", pbuff) == 0)
-                rc = KFileMakeStdErr (&file);
-            else if (strcmp ("/dev/null", pbuff) == 0)
-                rc = KFileMakeNullUpdate (&file);
-            else if (strncmp ("/dev/fd/", pbuff, sizeof "/dev/fd/" - 1) == 0)
-            {
-                char * pc;
-                size_t ix;
-
-                pc = pbuff + sizeof "/dev/fd/" - 1;
-
-                for (ix = 0; isdigit (pc[ix]); ++ix)
-                    ;
-
-                if ((ix > 0)&&(pc[ix] == '\0'))
-                {
-                    int fd = atoi (pc);
-
-                    rc = KFileMakeFDFileWrite (&file, update, fd);
-                }
-            }
-        }
-        if ((rc == 0)&&(file == NULL))
-        {
-            rc = KDirectoryResolvePath (self->cwd, true, rbuff, sizeof rbuff, pbuff);
-            if (rc == 0)
-            {
-                uint32_t type;
-
-                type = KDirectoryPathType (self->cwd, rbuff);
-                switch (type & ~kptAlias)
-                {
-                case kptNotFound:
-                case kptFile:
-                    rc = KDirectoryCreateFile (self->cwd, &file, update, access, mode,
-                                               rbuff);
-                    if (rc == 0)
-                        file_created = true;
-                    break;
-
-                case kptBadPath:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcInvalid);
-                    break;
-                case kptDir:
-                case kptCharDev:
-                case kptBlockDev:
-                case kptFIFO:
-                case kptZombieFile:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcIncorrect);
-                    break;
-
-                default:
-                    rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcUnknown);
-                    break;
-                }
-            }
-        }
-    }
-    if (rc == 0)
-    {
-        size_t z;
-        char obuff [4096];
-
-        if (VPathOption (path, vpopt_encrypted, obuff, sizeof obuff, &z) == 0)
-        {
-            const KFile * pwfile;
-
-            if (VPathOption (path, vpopt_temporary_pw_hack, obuff, sizeof obuff, &z) == 0)
-            {
-                if (z < 1)
-                    rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-                else
-                {
-                    size_t x = 0;
-                    size_t y = 0;
-
-                    while (x < z)
-                    {
-                        int ch, h, l;
-
-                        h = tolower(obuff[x++]);
-                        l = tolower(obuff[x++]);
-
-                        if (!isxdigit(h) || !isxdigit(l))
-                            rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-
-                        if (!isxdigit(h) || !isxdigit(l))
-                            rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcInvalid);
-
-                        if (isdigit(h))
-                            ch = (h - '0') << 4;
-                        else
-                            ch = (h + 10 - 'a') << 4;
-                        if (isdigit(l))
-                            ch |= (l - '0');
-                        else
-                            ch |= (l + 10 - 'a');
-
-                        obuff[y++] = ch;
-                    }
-                    obuff[y] = '\0';
-                    assert (z == x);
-                    assert (z/2 == y);
-                    z = y;
-                }
-                if (rc == 0)
-                    goto have_password;
-            }
-
-            else if (VPathOption (path, vpopt_pwpath, obuff, sizeof obuff, &z) == 0)
-                rc = KDirectoryOpenFileRead (self->cwd, &pwfile, obuff);
-
-            else if (VPathOption (path, vpopt_pwfd, obuff, sizeof obuff, &z) == 0)
-                rc = KFileMakeFDFileRead (&pwfile, atoi (obuff));
-            else
-                rc = RC (rcVFS, rcPath, rcConstructing, rcParam, rcUnsupported);
-
-            if (rc == 0)
-            {
-                rc = KFileRead (pwfile, 0, obuff, sizeof obuff, &z);
-                
-                KFileRelease (pwfile);
-
-            have_password:
-
-                if (rc == 0)
-                {
-                    KKey key;
-                    KFile * encfile;
-                    char * pc;
-
-                    pc = string_chr (obuff, z, '\r');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        z = pc - obuff;
-                    }
-                    pc = string_chr (obuff, z, '\n');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        z = pc - obuff;
-                    }
-
-                    rc = KKeyInitUpdate (&key, kkeyAES128, obuff, z);
-
-                    obuff[z] = '\0';
-
-                    rc = KEncFileMakeWrite (&encfile, file, &key);
-                    if (rc == 0)
-                    {
-                        *f = encfile;
-                        return 0;
-                    }
-                }
-            }
-            if (rc)
-                KFileRelease (file);
-        }
-        else
-        {
-            *f = file;
-            return 0;
-        }
-    }
-    if (rc && file_created)
-        KDirectoryRemove (self->cwd, true, rbuff);
-    return rc;
-}
-
-
-/* Remove
- *  remove an accessible object from its directory
- *
- *  "force" [ IN ] - if true and target is a directory,
- *  remove recursively
- *
- *  "path" [ IN ] - NUL terminated string in directory-native
- *  character set denoting target object
- */
-LIB_EXPORT rc_t CC VFSManagerRemove ( const VFSManager *self, bool force,
-                                      const VPath * path )
-{
-    /* -----
-     * this is a first pass that only opens files directory referenced from 
-     * the ced or have a sysdir root; that is it uses KSysDir and KSysFile
-     * only.
-     */
-    size_t num_read;
-    char pbuff [4096];
-    rc_t rc;
-
-    if (path == NULL)
-        return RC (rcVFS, rcMgr, rcOpening, rcParam, rcNull);
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcOpening, rcSelf, rcNull);
-
-    rc = VPathReadPath (path, pbuff, sizeof pbuff, &num_read);
-    if (rc == 0)
-    {
-        char rbuff [4096];
-    
-        rc = KDirectoryResolvePath (self->cwd, true, rbuff, sizeof rbuff, pbuff);
-        if (rc == 0)
-        {
-            uint32_t type;
-
-            type = KDirectoryPathType (self->cwd, rbuff);
-            switch (type & ~kptAlias)
-            {
-            case kptNotFound:
-                break;
-
-            case kptFile:
-            case kptDir:
-            case kptCharDev:
-            case kptBlockDev:
-            case kptFIFO:
-            case kptZombieFile:
-                rc = KDirectoryRemove (self->cwd, force, rbuff);
-                break;
-
-            case kptBadPath:
-                rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcInvalid);
-                break;
-/*                 rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcIncorrect); */
-/*                 break; */
-
-            default:
-                rc = RC (rcVFS, rcMgr, rcOpening, rcFile, rcUnknown);
-                break;
-            }
-        }
-    }
-    return rc;
-}
-
-static
-rc_t VFSManagerCaptureCurrentEncryptionKey ( VFSManager * self )
-{
-    rc_t rc = 0;
-
-    /* kludge time - for today, we check to see if there is
-       already a path to an encryption-key file. should not
-       be, but we never know. if present, it continues to
-       override everything else. if not present, we can use
-       the current behavior to set it to have a path to the
-       current file if there. */
-    const char * env = getenv ( "VDB_PWFILE" );
-    if ( env == NULL || env [ 0 ] == 0 )
-    {
-        const KRepositoryMgr *rmgr;
-        rc = KConfigMakeRepositoryMgrRead ( self -> cfg, & rmgr );
-        if ( rc != 0 )
-            rc = 0;
-        else
-        {
-            const KRepository *protected;
-            rc = KRepositoryMgrCurrentProtectedRepository ( rmgr, & protected );
-            if ( rc != 0 )
-                rc = 0;
-            else
-            {
-                char path [ 4096 + 16 ];
-                const size_t env_key_size = sizeof "VDB_PWFILE=" - 1;
-                memcpy ( path, "VDB_PWFILE=", env_key_size );
-                rc = KRepositoryEncryptionKeyFile ( protected, & path [ env_key_size ], sizeof path - env_key_size, NULL );
-                if ( rc == 0 && path [ env_key_size ] != 0 )
-                {
-                    size_t env_size = string_size ( path );
-                    self -> pw_env = malloc ( env_size + 1 );
-                    if ( self -> pw_env == NULL )
-                        rc = RC ( rcVFS, rcMgr, rcConstructing, rcMemory, rcExhausted );
-                    else
-                    {
-                        int status;
-                        memcpy ( self -> pw_env, path, env_size + 1 );
-                        status = putenv ( self -> pw_env );
-                        if ( status != 0 )
-                        {
-                            rc = RC ( rcVFS, rcMgr, rcConstructing, rcPath, rcCorrupt );
-                            free ( self -> pw_env );
-                            self -> pw_env = NULL;
-                        }
-                    }
-                }
-
-                KRepositoryRelease ( protected );
-            }
-
-            KRepositoryMgrRelease ( rmgr );
-        }
-    }
-
-    return rc;
-}
-
-
-/* Make
- */
-LIB_EXPORT rc_t CC VFSManagerMake ( VFSManager ** pmanager )
-{
-    rc_t rc;
-
-    if (pmanager == NULL)
-        return RC (rcVFS, rcMgr, rcConstructing, rcParam, rcNull);
-
-    *pmanager = singleton;
-    if (singleton != NULL)
-    {
-        rc = VFSManagerAddRef ( singleton );
-        if ( rc != 0 )
-            *pmanager = NULL;
-    }
-    else
-    {
-        VFSManager * obj;
-
-        obj = calloc (1, sizeof (*obj));
-        if (obj == NULL)
-            rc = RC (rcVFS, rcMgr, rcConstructing, rcMemory, rcExhausted);
-        else
-        {
-            KRefcountInit (&obj->refcount, 1, kfsmanager_classname, "init", 
-                           kfsmanager_classname);
-
-            rc = KDirectoryNativeDir (&obj->cwd);
-            if (rc == 0)
-            {
-                rc = VPathMakeCurrentPath (&obj->cpath);
-                if ( rc == 0 )
-                {
-                    rc = KConfigMake (&obj->cfg, NULL);
-                    if ( rc == 0 )
-                    {
-                        rc = VFSManagerCaptureCurrentEncryptionKey ( obj );
-                        if ( rc == 0 )
-                        {
-                            rc = KCipherManagerMake (&obj->cipher);
-                            if ( rc == 0 )
-                            {
-
-                                rc = VFSManagerMakeResolver ( obj, &obj->resolver, obj->cfg );
-                                if ( rc != 0 )
-                                {
-                                    LOGERR ( klogWarn, rc, "could not build vfs-resolver" );
-                                    rc = 0;
-                                }
-
-                                rc = SRAPathMake ( &obj->srapath, obj->cwd );
-                                if ( rc != 0 )
-                                {
-                                    LOGERR ( klogWarn, rc, "could not build srapath manager" );
-                                    rc = 0;
-                                }
-
-                                *pmanager = singleton = obj;
-                                return rc;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        VFSManagerDestroy (obj);
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerGetCWD (const VFSManager * self, KDirectory ** cwd)
-{
-    rc_t rc;
-
-    if (cwd == NULL)
-        return RC (rcVFS, rcMgr, rcAccessing, rcParam, rcNull);
-
-    *cwd = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcAccessing, rcSelf, rcNull);
-
-    rc = KDirectoryAddRef ( self->cwd );
-    if (rc)
-        return rc;
-
-    *cwd = self->cwd;
-
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerGetSRAPath ( const VFSManager * self, struct SRAPath ** pmgr )
-{
-    if ( pmgr == NULL )
-        return RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcNull );
-
-    *pmgr = NULL;
-
-    if ( self == NULL )
-        return RC ( rcVFS, rcMgr, rcAccessing, rcSelf, rcNull );
-
-    if ( self->srapath )
-    {
-        rc_t rc = SRAPathAddRef ( self->srapath );
-        if ( rc != 0 )
-            return rc;
-    }
-    *pmgr = self->srapath;
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerGetResolver ( const VFSManager * self, struct VResolver ** resolver )
-{
-    if ( resolver == NULL )
-        return RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcNull );
-
-    *resolver = NULL;
-
-    if ( self == NULL )
-        return RC ( rcVFS, rcMgr, rcAccessing, rcSelf, rcNull );
-
-    if ( self->resolver )
-    {
-        rc_t rc = VResolverAddRef ( self->resolver );
-        if ( rc != 0 )
-            return rc;
-    }
-    *resolver = self->resolver;
-    return 0;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerGetKryptoPassword (const VFSManager * self,
-                                                char * password,
-                                                size_t max_size,
-                                                size_t * size)
-{
-    rc_t rc;
-
-    if (self == NULL)
-        rc = RC (rcVFS, rcMgr, rcAccessing, rcSelf, rcNull);
-
-    else if ((password == NULL) || (max_size == 0) || (size == NULL))
-        rc = RC (rcVFS, rcMgr, rcAccessing, rcParam, rcNull);
-
-    else
-        rc = get_config_password (self, password, max_size, size);
-
-    return rc;
-}
-
-
-#if 0 /* not using this now */
-LIB_EXPORT rc_t CC VFSManagerSetKryptoPassword (const VFSManager * self,
-                                                char * password,
-                                                size_t size)
-{
-    rc_t rc;
-
-    if (self == NULL)
-        rc = RC (rcVFS, rcMgr, rcAccessing, rcSelf, rcNull);
-
-    else if ((password == NULL) || (size == NULL))
-        rc = RC (rcVFS, rcMgr, rcAccessing, rcParam, rcNull);
-
-    else
-    {
-        KFile * pwfile;
-        size_t size;
-        char buffer [8192];
-        
-
-        rc = VFSManagerGetConfigPWFile (self, buffer, sizeof buffer, &size);
-        if (rc)
-            PLOGERR (klogErr,
-                     (klogErr,
-                      "failed to obtain configured path for password file "
-                      "'$(P)'", "P=%s", buffer));
-
-        else
-        {
-            VPath * vpath;
-
-            buffer[size] = '\0';
-
-            rc = VPathMake (&vpath, buffer);
-            if (rc)
-                PLOGERR (klogErr,
-                         (klogErr,
-                          "failed to create vpath for password file '$(P)'",
-                          "P=%s", buffer));
-
-            else
-            {
-                KPath * file;
-
-                rc = VFSManagerCreateFile (self, &file, false, 0600,
-                                           kcmInit|kcmParents, vpath);
-                if (rc)
-                    PLOGERR (klogErr,
-                             (klogErr,
-                              "failed to create password file '$(P)'",
-                              "P=%s", buffer));
-
-                else
-                {
-                    size_t writ;
-
-                    rc = KFileWriteAll (file, 0, password, size, &writ);
-                    if (rc)
-                        PLOGERR (klogErr,
-                                 (klogErr,
-                                  "failed to write to password file '$(P)'",
-                                  "P=%s", buffer));
-                    else
-                    {
-                        if (writ != size)
-                        {
-                            rc = KFileSetSize (file. 0);
-                            if (rc)
-                                PLOGERR (klogErr,
-                                         (klogErr,
-                                          "failed to emplty corrupt "
-                                          "password file '$(P)'",
-                                          "P=%s", buffer));
-
-                            rc = RC (rcVfs, rcMgr, rcWriting,
-                                     rcInsufficient);
-                        }
-                    }
-                    KFileRelease (file);
-
-                    if (rc)
-                    {
-                        rc_t orc;
-
-                        orc = KDirectoryRemove (self->cwd, force, buffer);
-                        if (orc)
-                            PLOGERR (klogErr,
-                                     (klogErr,
-                                      "failed to delete bad password file "
-                                      "'$(P)'", "P=%s", buffer));
-                    }
-                }
-                VPathRelease (vpath);
-            }
-        }
-    }
-
-    return rc;
-}
-#endif
-
-LIB_EXPORT rc_t CC VFSManagerUpdateKryptoPassword (const VFSManager * self, 
-                                                   const char * password,
-                                                   size_t size,
-                                                   char * pwd_dir,
-                                                   size_t pwd_dir_size)
-{
-    static const char temp_extension [] = ".tmp";
-    rc_t rc;
-
-    if (self == NULL)
-        rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcSelf, rcNull);
-
-    else if ((password == NULL) || (size == 0))
-        rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcParam, rcNull);
-
-    else if (size > VFS_KRYPTO_PASSWORD_MAX_SIZE)
-        rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcSize, rcExcessive);
-
-    else if ((string_chr (password, size, '\n') != NULL) ||
-             (string_chr (password, size, '\r') != NULL))
-        rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcEncryptionKey, rcInvalid);
-
-    else
-    {
-        size_t old_password_file_size;
-        char old_password_file [8193];
-        
-        rc = VFSManagerGetConfigPWFile (self, old_password_file,
-                                        sizeof old_password_file - 1,
-                                        &old_password_file_size);
-        if (rc) {
-            if (rc ==
-                SILENT_RC(rcKrypto, rcMgr, rcReading, rcBuffer, rcInsufficient))
-            {
-                rc =
-                    RC(rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcExcessive);
-            }
-            LOGERR (klogErr, rc, "failed to obtain configured path for password file");
-        }
-
-        else if (old_password_file_size >= (sizeof old_password_file - 1))
-        {
-            rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcExcessive);
-            PLOGERR (klogErr,
-                     (klogErr, rc, "configured path too long for function "
-                      "'$(P)' '${F}'", "P=%s,F=%s",
-                      old_password_file, __func__));
-        }
-        else
-        {
-            KPathType ftype;
-            bool old_exists;
-
-            old_password_file[old_password_file_size] = '\0';
-            ftype = KDirectoryPathType (self->cwd, old_password_file);
-
-            switch (ftype)
-            {
-            case kptNotFound:
-                old_exists = false;
-                break;
-
-            case kptBadPath:
-                rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcInvalid);
-                break;
-
-            case kptFile:
-                old_exists = true;
-                break;
-
-            case kptDir:
-            case kptCharDev:
-            case kptBlockDev:
-            case kptFIFO:
-            case kptZombieFile:
-            case kptDataset:
-            case kptDatatype:
-                rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcIncorrect);
-                break;
-
-            default:
-                rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcPath, rcCorrupt);
-                break;
-            }
-
-            if (rc)
-                PLOGERR (klogErr,
-                         (klogErr, rc, "cannot use configured path for "
-                          "password file '$(P)'", "P=%s", old_password_file));
-
-            else
-            {
-                VPath * vold;
-                size_t new_password_file_size;
-                char new_password_file [sizeof old_password_file + sizeof temp_extension];
-                size_t password_dir_size;
-                char password_dir [sizeof old_password_file];
-/*                 bool save_old_password; */
-                char * pc;
-
-                memcpy (password_dir, old_password_file, old_password_file_size);
-                memcpy (new_password_file, old_password_file, old_password_file_size);
-                memcpy (new_password_file + old_password_file_size, temp_extension, sizeof temp_extension);
-                new_password_file_size = old_password_file_size + sizeof temp_extension - 1;
-
-                pc = string_rchr (password_dir, old_password_file_size, '/');
-                if (pc == NULL)
-                {
-                    password_dir[0] = '.';
-                    pc = password_dir+1;
-                }
-                *pc = '\0';
-                password_dir_size = pc - password_dir;
-
-                if (pwd_dir && pwd_dir_size) {
-                    size_t n = string_copy(pwd_dir, pwd_dir_size,
-                                           password_dir, password_dir_size + 1);
-                    if (n >= pwd_dir_size) {
-                        int i = 0;
-                        size_t p = pwd_dir_size - 1;
-                        pwd_dir[p] = '\0';
-                        for (i = 0; i < 3; ++i) {
-                            if (p == 0)
-                            {   break; }
-                            pwd_dir[--p] = '.';
-                        }
-                        if (p != 0)
-                        {   pwd_dir[--p] = ' '; }
-                    }
-                }
-
-                rc = VPathMake (&vold, old_password_file);
-                if (rc)
-                    PLOGERR (klogErr,
-                             (klogErr, rc, "could not create vpath for "
-                              "password file '$(P)'", "P=%s",
-                              old_password_file));
-
-                else
-                {
-                    VPath * vnew;
-
-                    rc = VPathMake (&vnew, new_password_file);
-                    if (rc)
-                        PLOGERR (klogErr,
-                                 (klogErr, rc, "could not create vpath for "
-                                  "password file '$(P)'", "P=%s",
-                                  new_password_file));
-
-                    else
-                    {
-                        const KFile * fold = NULL;
-                        KFile * fnew = NULL;
-
-                        if (old_exists)
-                        {
-                            rc = VFSManagerOpenFileRead (self, &fold, vold);
-
-                            if (rc)
-                                PLOGERR (klogErr,
-                                         (klogErr, rc, "unable to open existing "
-                                          "password file '$(P)'", "P=%s",
-                                          old_password_file));
-                        }
-                        
-
-                        if (rc == 0)
-                        {
-                            rc = VFSManagerCreateFile (self, &fnew, false, 0600,
-                                                       kcmInit|kcmParents,
-                                                       vnew);
-                            if (rc)
-                                PLOGERR (klogErr,
-                                         (klogErr, rc, "unable to open temporary "
-                                          "password file '$(P)'", "P=%s",
-                                          new_password_file));
-
-                            else
-                            {
-                                uint64_t writ;
-                                size_t this_writ;
-
-                                rc = KFileWriteAll (fnew, 0, password, size, &this_writ);
-                                if (rc)
-                                    PLOGERR (klogErr,
-                                             (klogErr, rc, "unable to write "
-                                              "password to temporary password "
-                                              "file '$(P)'", "P=%s",
-                                              new_password_file));
-
-                                else if (this_writ != size)
-                                {
-                                    rc = RC (rcVFS, rcEncryptionKey, rcWriting,
-                                             rcFile, rcInsufficient);
-                                    PLOGERR (klogErr,
-                                             (klogErr, rc, "unable to write complete "
-                                              "password to temporary password "
-                                              "file '$(P)'", "P=%s",
-                                              new_password_file));
-                                }
-
-                                else
-                                {
-                                    writ = this_writ;
-
-                                    rc = KFileWriteAll (fnew, this_writ, "\n", 1, &this_writ);
-                                    if (rc)
-                                        PLOGERR (klogErr,
-                                                 (klogErr, rc, "unable to write "
-                                                  "password to temporary password "
-                                                  "file '$(P)'", "P=%s",
-                                                  new_password_file));
-
-                                    else if (this_writ != 1)
-                                    {
-                                        rc = RC (rcVFS, rcEncryptionKey, rcWriting,
-                                                 rcFile, rcInsufficient);
-                                        PLOGERR (klogErr,
-                                                 (klogErr, rc, "unable to write complete "
-                                                  "password to temporary password "
-                                                  "file '$(P)'", "P=%s",
-                                                  new_password_file));
-                                    }
-
-                                    else
-                                    {
-                                        bool do_rename;
-
-                                        do_rename = true;
-                                        ++writ;
-
-                                        if (old_exists)
-                                        {
-                                            uint64_t read;
-                                            size_t this_read;
-                                            char buffer [VFS_KRYPTO_PASSWORD_MAX_SIZE+4];
-
-                                            rc = KFileReadAll (fold, 0, buffer,
-                                                               sizeof buffer, &this_read);
-                                            if (rc)
-                                                ;
-
-                                            else
-                                            {
-                                                read = this_read;
-                                                /* look for duplicated password */
-                                                if (read > size)
-                                                {
-                                                    char cc;
-
-                                                    cc = buffer[size];
-                                                    if (((cc == '\n') || (cc == '\r')) &&
-                                                        (memcmp (buffer, password, size) == 0))
-                                                    {
-                                                        do_rename = false;
-                                                    }
-                                                }
-                                                if (read)
-                                                    rc = KFileWriteAll (fnew, writ, buffer, read, &this_writ);
-
-                                                if (rc)
-                                                    ;
-                                                else if (do_rename)
-                                                {
-                                                    writ += this_writ;
-
-                                                    do
-                                                    {
-                                                        rc = KFileReadAll (fold, read, buffer,
-                                                                           sizeof buffer, &this_read);
-                                                        if (rc)
-                                                            ;
-
-                                                        else if (this_read == 0)
-                                                            break;
-
-                                                        else
-                                                        {
-                                                            rc = KFileWriteAll (fnew, writ, buffer,
-                                                                                this_read, &this_writ);
-                                                            if (rc)
-                                                                ;
-
-                                                            else if (this_read != this_writ)
-                                                            {
-                                                                rc = RC (rcVFS, rcEncryptionKey, rcWriting,
-                                                                         rcFile, rcInsufficient);
-                                                                PLOGERR (klogErr,
-                                                                         (klogErr, rc,
-                                                                          "unable to write complete "
-                                                                          "password to temporary password "
-                                                                          "file '$(P)'", "P=%s",
-                                                                          new_password_file));
-                                                            }
-
-                                                            else
-                                                            {
-                                                                read += this_read;
-                                                                writ += this_writ;
-                                                            }
-                                                        }
-                                                    } while (rc == 0);
-                                                }
-                                            }
-                                            KFileRelease (fold);
-                                            fold = NULL;
-                                        }
-
-                                        KFileRelease (fnew);
-                                        fnew = NULL;
-
-                                        if (rc == 0)
-                                        {
-                                            if (do_rename)
-                                            {
-                                                rc = KDirectoryRename (self->cwd, true, 
-                                                                       new_password_file,
-                                                                       old_password_file);
-                                            }
-                                            else
-                                            {
-                                                KDirectoryRemove (self->cwd, true, new_password_file);
-                                            }
-
-#if !WINDOWS
-                                            if (rc == 0)
-                                            {
-                                                uint32_t access;
-
-                                                rc = KDirectoryAccess (self->cwd,
-                                                                       &access, password_dir);
-                                                if (rc)
-                                                    ;
-
-                                                else
-                                                {
-                                                    if (access & 0027)
-                                                        rc = RC (rcVFS, rcEncryptionKey, rcUpdating, rcDirectory, rcExcessive);
-                                                }
-                                            }
-#endif
-                                        }
-                                    }
-                                }
-                                KFileRelease (fnew);
-                            }
-                            KFileRelease (fold);
-                        }
-                        VPathRelease (vold);
-                    }
-                    VPathRelease (vnew);
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerGetCPath (const VFSManager * self, VPath ** cpath)
-{
-    rc_t rc;
-
-    if (cpath == NULL)
-        return RC (rcVFS, rcMgr, rcAccessing, rcParam, rcNull);
-
-    *cpath = NULL;
-
-    if (self == NULL)
-        return RC (rcVFS, rcMgr, rcAccessing, rcSelf, rcNull);
-
-    rc = VPathAddRef (self->cpath);
-    if (rc)
-        return rc;
-
-    *cpath = self->cpath;
-
-    return 0;
-}
-
-
-
-
-
-/*--------------------------------------------------------------------------
- * KConfig
- *  placing some KConfig code that relies upon VFS here
- */
-
-
-/* ReadVPath
- *  read a VPath node value
- *
- * self [ IN ] - KConfig object
- * path [ IN ] - path to the node
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-LIB_EXPORT rc_t CC KConfigReadVPath ( struct KConfig const* self, const char* path, struct VPath** result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        struct KConfigNode const *n;
-        rc = KConfigOpenNodeRead ( self, & n, path );
-        if ( rc == 0 )
-        {
-            rc = KConfigNodeReadVPath ( n, result );
-            KConfigNodeRelease ( n );
-            return rc;
-        }
-
-        * result = NULL;
-    }
-
-    return rc;
-}
-
-/* ReadVPath
- *  read a VPath node value
- *
- * self [ IN ] - KConfigNode object
- * result [ OUT ] - return value (rc != 0 if cannot be converted)
- *
- */
-LIB_EXPORT rc_t CC KConfigNodeReadVPath ( struct KConfigNode const *self, struct VPath** result )
-{
-    rc_t rc;
-
-    if ( result == NULL )
-        rc = RC ( rcKFG, rcNode, rcReading, rcParam, rcNull );
-    else
-    {
-        char buffer [ 4096 ];
-        size_t num_read, to_read;
-        rc = KConfigNodeRead ( self, 0, buffer, sizeof buffer, & num_read, & to_read );
-        if ( rc == 0 )
-        {
-            char *p;
-
-            if ( to_read == 0 && num_read < sizeof buffer )
-            {
-                buffer [ num_read ] = 0;
-                return VPathMake ( result, buffer );
-            }
-
-            p = malloc ( num_read + to_read + 1 );
-            if ( p == NULL )
-                rc = RC ( rcKFG, rcNode, rcReading, rcMemory, rcExhausted );
-            else
-            {
-                rc = KConfigNodeRead ( self, 0, p, num_read + to_read + 1, & num_read, & to_read );
-                if ( rc == 0 )
-                {
-                    p [ num_read ] = 0;
-                    rc = VPathMake ( result, p );
-                }
-
-                free ( p );
-                return rc;
-            }
-        }
-
-        * result = NULL;
-    }
-
-    return rc;
-}
-
-
-static rc_t VFSManagerResolveAcc( const VFSManager * self,
-                                  const struct VPath * source,
-                                  struct VPath ** path_to_build,
-                                  const struct KFile ** remote_file,
-                                  const struct VPath ** local_cache )
-{
-    rc_t rc;
-    
-    assert (self);
-    assert (source);
-    assert (path_to_build);
-    assert (remote_file);
-    assert (local_cache);
-
-    /* first try to find it localy */
-    rc = VResolverLocal ( self->resolver, source, (const VPath **)path_to_build );
-    if ( GetRCState( rc ) == rcNotFound )
-    {
-        /* if not found localy, try to find it remotely */
-        rc = VResolverRemote ( self->resolver, source, (const VPath **)path_to_build, remote_file );
-        if ( rc == 0 && remote_file != NULL && local_cache != NULL )
-        {
-            /* if found and the caller wants to know the location of a local cache file... */
-            uint64_t size_of_remote_file = 0;
-            if ( *remote_file != NULL )
-                rc = KFileSize ( *remote_file, &size_of_remote_file );
-            if ( rc ==  0 )
-                rc = VResolverCache ( self->resolver, *path_to_build, local_cache, size_of_remote_file );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t VFSManagerResolveLocal( const VFSManager * self,
-                                    const char * local_path,
-                                    struct VPath ** path_to_build )
-{
-    char buffer[ 4096 ];
-    size_t num_writ;
-    rc_t rc;
-
-    assert (self);
-    assert (local_path);
-    assert (path_to_build);
-
-    rc = string_printf ( buffer, sizeof buffer, &num_writ, "ncbi-file:%s", local_path );
-    if ( rc == 0 && num_writ > 0 )
-    {
-        rc = VPathMake ( path_to_build, buffer );
-    }
-    return rc;
-}
-
-static rc_t VFSManagerResolvePathOrAcc( const VFSManager * self,
-                                        const struct VPath * source,
-                                        struct VPath ** path_to_build,
-                                        const struct KFile ** remote_file,
-                                        const struct VPath ** local_cache,
-                                        bool resolve_acc )
-{
-    char buffer[ 4096 ];
-    size_t num_read;
-    rc_t rc = VPathReadPath ( source, buffer, sizeof buffer, &num_read );
-    if ( rc == 0 && num_read > 0 )
-    {
-        char * pos_of_slash = string_chr ( buffer, string_size( buffer ), '/' );
-        if ( pos_of_slash != NULL )
-        {
-            /* we can now assume that the source is a filesystem-path :
-               we build a new VPath and prepend with 'ncbi-file:' */
-            rc = VFSManagerResolveLocal( self, buffer, path_to_build );
-        }
-        else if ( resolve_acc )
-        {
-            /* we assume the source is an accession! */
-            rc = VFSManagerResolveAcc( self, source, path_to_build, remote_file, local_cache );
-            if ( GetRCState( rc ) == rcNotFound )
-            {
-                /* if we were not able to find the source as accession, we assume it is a local path */
-                rc = VFSManagerResolveLocal( self, buffer, path_to_build );
-            }
-        }
-        else
-        {
-            rc = RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcInvalid );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t VFSManagerResolveRemote( const VFSManager * self,
-                                     struct VPath ** source,
-                                     struct VPath ** path_to_build,
-                                     const struct KFile ** remote_file,
-                                     const struct VPath ** local_cache )
-{
-    rc_t rc = 0;
-    *path_to_build = *source;
-    if ( local_cache != NULL && remote_file != NULL && self->resolver != NULL )
-    {
-
-/*        VFS_EXTERN rc_t CC VPathMakeString ( const VPath * self, const String ** uri ); */
-        char full_url[ 4096 ];
-        size_t num_read;
-        rc = VPathReadPath ( *source, full_url, sizeof full_url, &num_read );
-        if ( rc == 0 && num_read > 0 )
-        {
-            rc = KCurlFileMake ( remote_file, full_url, false );
-            if ( rc == 0 )
-            {
-                uint64_t size_of_remote_file = 0;
-                rc = KFileSize ( *remote_file, &size_of_remote_file );
-                if ( rc == 0 )
-                    rc = VResolverCache ( self->resolver, *source, local_cache, size_of_remote_file );
-            }
-        }
-    }
-    *source = NULL;
-    return rc;
-}
-
-/* DEPRECATED */
-LIB_EXPORT rc_t CC VFSManagerResolveSpec ( const VFSManager * self,
-                                           const char * spec,
-                                           struct VPath ** path_to_build,
-                                           const struct KFile ** remote_file,
-                                           const struct VPath ** local_cache,
-                                           bool resolve_acc )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-        rc = RC ( rcVFS, rcMgr, rcAccessing, rcSelf, rcNull );
-    else if ( spec == NULL || path_to_build == NULL )
-        rc = RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcNull );
-    else if ( spec[ 0 ] == 0 )
-        rc = RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcEmpty );
-    else
-    {
-        VPath * temp;
-        *path_to_build = NULL;
-        if ( local_cache != NULL )
-            *local_cache = NULL;
-        if ( remote_file != NULL ) 
-            *remote_file = NULL;
-        rc = VPathMake ( &temp, spec );
-        if ( rc == 0 )
-        {
-            VPUri_t uri_type;
-            rc = VPathGetScheme_t( temp, &uri_type );
-            if ( rc == 0 )
-            {
-                switch ( uri_type )
-                {
-                default                  : /* !! fall through !! */
-                case vpuri_invalid       : rc = RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcInvalid );
-                                           break;
-
-                case vpuri_none          : /* !! fall through !! */
-                case vpuri_not_supported : rc = VFSManagerResolvePathOrAcc( self, temp, path_to_build, remote_file, local_cache, resolve_acc );
-                                           break;
-
-                case vpuri_ncbi_vfs      : /* !! fall through !! */
-                case vpuri_file          : *path_to_build = temp;
-                                           temp = NULL;
-                                           break;
-
-                case vpuri_ncbi_acc      : if ( resolve_acc )
-                                                rc = VFSManagerResolveAcc( self, temp, path_to_build, remote_file, local_cache );
-                                           else
-                                                rc = RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcInvalid );
-                                           break;
-
-                case vpuri_http          : /* !! fall through !! */
-                case vpuri_ftp           : rc = VFSManagerResolveRemote( self, &temp, path_to_build, remote_file, local_cache );
-                                           break;
-
-                case vpuri_ncbi_legrefseq: /* ??? */
-                                           break;
-                }
-            }
-            if ( temp != NULL )
-                VPathRelease ( temp );
-        }
-    }
-    return rc;
-}
-
-
-
-#if 0
-static rc_t VFSManagerResolveSpecLocal( const VFSManager * self,
-                                        const VPath * vpath,
-                                        const KDirectory ** dir )
-{
-    char path[ 4096 ];
-    size_t num_read;
-    rc_t rc = VPathReadPath ( vpath, path, sizeof path, &num_read );
-    if ( rc == 0 && num_read > 0 )
-    {
-        const KFile * local_file = NULL;
-        /* it is a local file or directory... */
-        rc = VFSManagerOpenFileReadRegularFile( path, sizeof path, &local_file, self->cwd );
-        if ( rc == 0 )
-        {
-            bool was_encrypted = false;
-            /* handle encryption here */
-
-            /* it is possible to open it as a file: transform it now into a directory */
-            rc = TransformFileToDirectory ( self->cwd, local_file, dir,
-                                            vpath->path.addr, was_encrypted );
-        }
-        else
-        {
-            /* try to open it as a directory */
-            rc = KDirectoryOpenDirRead ( self->cwd, dir, false, "%s", path );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t VFSManagerResolveSpecRemote( const VFSManager * self,
-                                         const VPath * vpath,
-                                         const KFile * remote_file,
-                                         const VPath * local_cache,
-                                         const KDirectory ** dir )
-{
-    const KFile *temp_file;
-    rc_t rc;
-    if ( local_cache == NULL )
-        rc = KBufFileMakeRead ( &temp_file, remote_file, 128 * 1024 * 1024 );
-    else
-    {
-        char buffer[ 4096 ];
-        size_t num_read;
-        rc = VPathReadPath ( local_cache, buffer, sizeof buffer, &num_read );
-        if ( rc == 0 && num_read > 0 )
-            rc = KDirectoryMakeCacheTee ( self->cwd, &temp_file, remote_file, NULL,
-                                          DEFAULT_CACHE_BLOCKSIZE, DEFAULT_CACHE_CLUSTER,
-                                          false, "%s", buffer );
-    }
-    KFileRelease ( remote_file ); /* we can do that, because it is wrapped now */
-    if ( rc == 0 )
-    {
-        const char mountpointpath[] = "/";
-        const KDirectory * mountpoint;
-
-        rc = KQuickMountDirMake ( self->cwd, &mountpoint, remote_file,
-                                  mountpointpath, sizeof mountpointpath - 1, 
-                                  vpath->path.addr, vpath->path.size );
-        if ( rc != 0 )
-            PLOGERR ( klogErr, ( klogErr, rc, "error creating mount "
-                                 "'$(M)' for '$(F)", "M=%s,F=%S",
-                                 mountpointpath, &vpath->path ) );
-        else
-        {
-            bool was_encrypted = false;
-            /* handle encryption here */
-            rc = TransformFileToDirectory ( mountpoint, temp_file, dir,
-                                            vpath->path.addr,
-                                            was_encrypted );
-            KDirectoryRelease ( mountpoint );
-        }
-        /* release the temp_file after it was transformed into a directory? */
-        KFileRelease( temp_file );
-    }
-    return rc;
-}
-
-
-LIB_EXPORT rc_t CC VFSManagerResolveSpecIntoDir ( const VFSManager * self,
-                                                  const char * spec,
-                                                  const KDirectory ** dir,
-                                                  bool resolve_acc )
-{
-    rc_t rc;
-
-    if ( dir == NULL )
-        rc = RC ( rcVFS, rcMgr, rcAccessing, rcParam, rcNull );
-    else
-    {
-        VPath * vpath;
-        const KFile * remote_file;
-        const VPath * local_cache;
-
-        *dir = NULL;
-        rc = VFSManagerResolveSpec ( self, spec, &vpath, &remote_file, &local_cache, resolve_acc );
-        if ( rc == 0 )
-        {
-            if ( remote_file == NULL )
-                rc = VFSManagerResolveSpecLocal( self, vpath, dir );
-            else
-            {
-                rc = VFSManagerResolveSpecRemote( self, vpath, remote_file, local_cache, dir );
-                KFileRelease( remote_file );
-                if ( local_cache != NULL )
-                    VPathRelease( local_cache );
-            }
-
-            VPathRelease( vpath );
-        }
-    }
-    return rc;
-}
-#endif
-
diff --git a/libs/vfs/resolver-priv.h b/libs/vfs/resolver-priv.h
deleted file mode 100644
index 860c601..0000000
--- a/libs/vfs/resolver-priv.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*===========================================================================
-*
-*                            Public Domain Notice
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_resolver_priv_
-#define _h_resolver_priv_
-
-#ifndef _h_vfs_resolver_
-#include <vfs/resolver.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*--------------------------------------------------------------------------
- * KConfig Repository Structure
- *  expressed in pseudo BNF:
- *
- *  base-config
- *      = "repository" <category>*
- *      ;
- *
- *  category
- *      = "remote" <remote-sub-category>*
- *      | "site" <site-sub-category>*
- *      | "user" <user-sub-category>*
- *      ;
- *
- *  remote-sub-category
- *      = "main" <public-remote-named-repository>*
- *      | "aux" <public-remote-named-repository>*
- *      | "protected" <protected-remote-named-repository>*
- *      ;
- *
- *  site-sub-category
- *      = "main" <site-named-repository>*
- *      | "aux" <site-named-repository>*
- *      ;
- *
- *  user-sub-category
- *      = "public" <public-user-named-repository>*
- *      | "protected" ID <protected-user-named-repository>*
- *      ;
- *
- *  public-remote-named-repository
- *      = ID <public-remote-repository>
- *      ;
- *
- *  protected-remote-named-repository
- *      = ID <protected-remote-repository>
- *      ;
- *
- *  site-named-repository
- *      = ID <site-repository>
- *      ;
- *
- *  public-user-named-repository
- *      = ID <public-user-repository>
- *      ;
- *
- *  protected-user-named-repository
- *      = ID <protected-user-repository>
- *      ;
- *
- *  public-remote-repository
- *      = <public-remote-root> [ <disabled> ] <apps>*
- *      ;
- *
- *  protected-remote-repository
- *      = <protected-remote-root> [ <disabled> ] <apps>*
- *      ;
- *
- *  site-repository
- *      = <local-root> [ <disabled> ] <apps>*
- *      ;
- *
- *  public-user-repository
- *      = <local-root> [ <disabled> ] [ <cache-enabled> ] <apps>*
- *      ;
- *
- *  protected-user-repository
- *      = <local-root> <passwd> <download-ticket> [ <disabled> ] [ <cache-enabled> ] <apps>*
- *      ;
- *
- *  apps
- *      = "refseq" <app>
- *      | "sra" <app>
- *      | "wgs" <app>
- *      ;
- *
- *  app
- *      = [ <disabled> ] "volumes" <volume>*
- *      ;
- *
- *  volume
- *      = <expansion-alg> "=" <path-list>
- *      ;
- *
- *  expansion-alg
- *      = "flat" | "sra1000" | "sra1024" | "fuse1000" | "refseq" | ...
- *      ;
- *
- *  disabled
- *      = "disabled" "=" ( "true" | * )  # any value other than "true" is false
- *      ;
- *
- *  cache-enabled
- *      = "cache-enabled" "=" ( "true" | * )  # any value other than "true" is false
- *      ;
- */
-
-#define rcResolver   rcTree
-#define rcRepository rcDirectory
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_resolver_priv_ */
diff --git a/libs/vfs/resolver.c b/libs/vfs/resolver.c
deleted file mode 100644
index 69f522d..0000000
--- a/libs/vfs/resolver.c
+++ /dev/null
@@ -1,2694 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-
-#include <vfs/extern.h>
-#include "resolver-priv.h"
-
-#include <vfs/manager.h>
-#include <vfs/path.h>
-#include <kns/manager.h>
-#include <kns/curl-file.h>
-#include <kns/KCurlRequest.h>
-#include <kfs/file.h>
-#include <kfs/directory.h>
-#include <kfg/repository.h>
-#include <kfg/config.h>
-#include <klib/text.h>
-#include <klib/vector.h>
-#include <klib/refcount.h>
-#include <klib/namelist.h>
-#include <klib/printf.h>
-#include <klib/data-buffer.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include <vfs/path-priv.h>
-#include "path-priv.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-/* to turn of CGI name resolution for
-   any refseq accessions */
-#define NO_REFSEQ_CGI 1
-
-/* to turn of CGI name resolution for
-   legacy WGS packages used by refseq */
-#define NO_LEGACY_WGS_REFSEQ_CGI NO_REFSEQ_CGI
-
-
-/*--------------------------------------------------------------------------
- * String
- */
-static
-void CC string_whack ( void *obj, void *ignore )
-{
-    StringWhack ( ( String* ) obj );
-}
-
-
-
-/*--------------------------------------------------------------------------
- * VResolverAccToken
- *  breaks up an accession into parts
- *
- *  "acc" is entire accession as given
- *
- *  the remainder is divided like so:
- *
- *    [<prefix>_]<alpha><digits>[.<ext1>[.<ext2>]]
- *
- *  prefix is optional
- *  alpha can be zero length iff prefix is not zero length
- *  digits must be non-zero length
- *  ext1 and ext2 are optional
- */
-typedef struct VResolverAccToken VResolverAccToken;
-struct VResolverAccToken
-{
-    String acc;
-    String prefix;
-    String alpha;
-    String digits;
-    String ext1;
-    String ext2;
-};
-
-/*--------------------------------------------------------------------------
- * VResolverAlg
- *  represents a set of zero or more volumes
- *  each of which is addressed using a particular expansion algorithm
- */
-typedef enum
-{
-    appUnknown,
-    appAny,
-    appREFSEQ,
-    appSRA,
-    appWGS,
-    appCount
-} VResolverAppID;
-
-typedef enum
-{
-    algCGI,
-    algSRAFlat,
-    algSRA1024,
-    algSRA1000,
-    algFUSE1000,
-    algREFSEQ,
-    algWGSFlat,
-    algWGS,
-    algFuseWGS,
-    algSRA_NCBI,
-    algSRA_EBI,
-
-    /* leave as last value */
-    algUnknown
-
-} VResolverAlgID;
-
-typedef enum
-{
-    cacheDisallow,
-    cacheAllow
-} VResolverCacheAllow;
-
-typedef struct VResolverAlg VResolverAlg;
-struct VResolverAlg
-{
-    /* volume paths - stored as String* */
-    Vector vols;
-
-    /* root path - borrowed reference */
-    const String *root;
-
-    /* download ticket - borrowed reference
-       non-NULL means that the root is a
-       resolver CGI. also, don't rely on
-       presence of any volumes... */
-    const String *ticket;
-
-    /* app_id helps to filter out volumes by app */
-    VResolverAppID app_id;
-
-    /* how to expand an accession */
-    VResolverAlgID alg_id;
-
-    /* a property of the repository */
-    bool protected;
-
-    /* whether the volumes are cache-capable
-       in particularl, enabled if cache forced */
-    bool cache_capable;
-
-    /* whether the volumes are cache-enabled */
-    bool cache_enabled;
-
-    /* whether the volume is disabled in config */
-    bool disabled;
-};
-
-
-/* Whack
- */
-static
-void CC VResolverAlgWhack ( void *item, void *ignore )
-{
-    VResolverAlg *self = item;
-
-    /* drop any volumes */
-    VectorWhack ( & self -> vols, string_whack, NULL );
-
-    /* everything else is a borrowed reference */
-
-    free ( self );
-}
-
-/* Make
- */
-static
-rc_t VResolverAlgMake ( VResolverAlg **algp, const String *root,
-     VResolverAppID app_id, VResolverAlgID alg_id, bool protected, bool disabled )
-{
-    rc_t rc;
-    VResolverAlg *alg = calloc ( 1, sizeof * alg );
-    if ( alg == NULL )
-        rc = RC ( rcVFS, rcMgr, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        VectorInit ( & alg -> vols, 0, 8 );
-        alg -> root = root;
-        alg -> app_id = app_id;
-        alg -> alg_id = alg_id;
-        alg -> protected = protected;
-        alg -> disabled = disabled;
-        rc = 0;
-    }
-
-    * algp = alg;
-    return rc;
-}
-
-/* MakeeLocalWGSRefseqURI
- *  create a special URI that tells KDB how to open this
- *  obscured table, hidden away within a KAR file
- */
-static
-rc_t VResolverAlgMakeLocalWGSRefseqURI ( const VResolverAlg *self,
-    const String *vol, const String *exp, const String *acc, const VPath ** path )
-{
-    if ( self -> root == NULL )
-        return VPathMakeFmt ( ( VPath** ) path, NCBI_FILE_SCHEME ":%S/%S#tbl/%S", vol, exp, acc );
-    return VPathMakeFmt ( ( VPath** ) path, NCBI_FILE_SCHEME ":%S/%S/%S#tbl/%S", self -> root, vol, exp, acc );
-}
-
-/* MakeeRemoteWGSRefseqURI
- *  create a special URI that tells KDB how to open this
- *  obscured table, hidden away within a KAR file
- */
-static
-rc_t VResolverAlgMakeRemoteWGSRefseqURI ( const VResolverAlg *self,
-    const char *url, const String *acc, const VPath ** path )
-{
-    return VPathMakeFmt ( ( VPath** ) path, "%s#tbl/%S", url, acc );
-}
-
-/* MakeRemotePath
- *  the path is known to exist in the remote file system
- *  turn it into a VPath
- */
-static
-rc_t VResolverAlgMakeRemotePath ( const VResolverAlg *self,
-    const char *url, const VPath ** path )
-{
-    return VPathMakeFmt ( ( VPath** ) path, url );
-}
-
-/* MakeLocalPath
- *  the path is known to exist in the local file system
- *  turn it into a VPath
- */
-static
-rc_t VResolverAlgMakeLocalPath ( const VResolverAlg *self,
-    const String *vol, const String *exp, const VPath ** path )
-{
-    if ( self -> root == NULL )
-        return VPathMakeFmt ( ( VPath** ) path, "%S/%S", vol, exp );
-    return VPathMakeFmt ( ( VPath** ) path, "%S/%S/%S", self -> root, vol, exp );
-}
-
-/* expand_accession
- *  expand accession according to algorithm
- */
-static
-rc_t expand_algorithm ( const VResolverAlg *self, const VResolverAccToken *tok,
-    char *expanded, size_t bsize, size_t *size, bool legacy_wgs_refseq )
-{
-    rc_t rc;
-    uint32_t num;
-
-   switch ( self -> alg_id )
-    {
-    case algCGI:
-        return RC ( rcVFS, rcResolver, rcResolving, rcType, rcIncorrect );
-    case algSRAFlat:
-        rc = string_printf ( expanded, bsize, size,
-            "%S%S.sra", & tok -> alpha, & tok -> digits );
-        break;
-    case algSRA1024:
-        num = ( uint32_t ) strtoul ( tok -> digits . addr, NULL, 10 );
-        rc = string_printf ( expanded, bsize, size,
-            "%S/%06u/%S%S.sra", & tok -> alpha, num >> 10, & tok -> alpha, & tok -> digits );
-        break;
-    case algSRA1000:
-        num = ( uint32_t ) ( tok -> alpha . size + tok -> digits . size - 3 );
-        rc = string_printf ( expanded, bsize, size,
-            "%S/%.*S/%S%S.sra", & tok -> alpha, num, & tok -> acc, & tok -> alpha, & tok -> digits );
-        break;
-    case algFUSE1000:
-        num = ( uint32_t ) ( tok -> alpha . size + tok -> digits . size - 3 );
-        rc = string_printf ( expanded, bsize, size,
-            "%S/%.*S/%S%S/%S%S.sra", & tok -> alpha, num, & tok -> acc, 
-            & tok -> alpha, & tok -> digits, & tok -> alpha, & tok -> digits );
-        break;
-    case algREFSEQ:
-        if ( ! legacy_wgs_refseq )
-            rc = string_printf ( expanded, bsize, size, "%S", & tok -> acc );
-        else
-            rc = string_printf ( expanded, bsize, size, "%S%.2S", & tok -> alpha, & tok -> digits );
-        break;
-    case algWGSFlat:
-        num = ( uint32_t ) ( tok -> alpha . size + 2 );
-        if ( tok -> prefix . size != 0 )
-            num += tok -> prefix . size + 1;
-        rc = string_printf ( expanded, bsize, size,
-            "%.*S", num, & tok -> acc );
-        break;
-    case algWGS:
-        num = ( uint32_t ) ( tok -> alpha . size + 2 );
-        if ( tok -> prefix . size != 0 )
-            num += tok -> prefix . size + 1;
-        rc = string_printf ( expanded, bsize, size,
-            "WGS/%.2s/%.2s/%.*S", tok -> alpha . addr, tok -> alpha . addr + 2, num, & tok -> acc );
-        break;
-    case algFuseWGS:
-        num = ( uint32_t ) ( tok -> alpha . size + 2 );
-        if ( tok -> prefix . size != 0 )
-            num += tok -> prefix . size + 1;
-        rc = string_printf ( expanded, bsize, size,
-            "%.2s/%.2s/%.*S", tok -> alpha . addr, tok -> alpha . addr + 2, num, & tok -> acc );
-        break;
-    case algSRA_NCBI:
-        num = ( uint32_t ) strtoul ( tok -> digits . addr, NULL, 10 );
-        rc = string_printf ( expanded, bsize, size,
-            "%S/%06u/%S%S", & tok -> alpha, num >> 10, & tok -> alpha, & tok -> digits );
-        break;
-    case algSRA_EBI:
-        num = ( uint32_t ) ( tok -> alpha . size + tok -> digits . size - 3 );
-        rc = string_printf ( expanded, bsize, size,
-            "%S/%.*S/%S%S", & tok -> alpha, num, & tok -> acc, & tok -> alpha, & tok -> digits );
-        break;
-    default:
-        return RC ( rcVFS, rcResolver, rcResolving, rcType, rcUnrecognized );
-    }
-
-   return rc;
-}
-
-/* LocalResolve
- *  resolve an accession into a VPath or not found
- *
- *  1. expand accession according to algorithm
- *  2. search all volumes for accession
- *  3. return not found or new VPath
- */
-static
-rc_t VResolverAlgLocalResolve ( const VResolverAlg *self,
-    const KDirectory *wd, const VResolverAccToken *tok,
-    const VPath ** path, bool legacy_wgs_refseq, bool for_cache )
-{
-    KPathType kpt;
-    uint32_t i, count;
-
-    /* expanded accession */
-    String exp;
-    size_t size;
-    char expanded [ 256 ];
-
-    /* in some cases, "root" is NULL */
-    const String *vol, *root = self -> root;
-
-    /* expand the accession */
-    rc_t rc = expand_algorithm ( self, tok, expanded, sizeof expanded, & size, legacy_wgs_refseq );
-
-    /* should never have a problem here... */
-    if ( rc != 0 )
-        return rc;
-
-    /* if this is to detect a cache file, append extension */
-    if ( for_cache )
-    {
-        size += string_copy ( & expanded [ size ], sizeof expanded - size, ".cache", sizeof ".cache" - 1 );
-        if ( size == sizeof expanded )
-            return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-    }
-
-    /* turn the expanded portion into a String
-       we know that size is also length due to
-       accession content rules */
-    StringInit ( & exp, expanded, size, ( uint32_t ) size );
-
-    /* remove the cache extension */
-    if ( for_cache )
-    {
-        exp . len -= sizeof ".cache" - 1;
-        exp . size -= sizeof ".cache" - 1;
-    }
-
-    /* now search all volumes */
-    count = VectorLength ( & self -> vols );
-    if ( root == NULL )
-    {
-        for ( i = 0; i < count; ++ i )
-        {
-            vol = VectorGet ( & self -> vols, i );
-            kpt = KDirectoryPathType ( wd, "%.*s/%.*s"
-                , ( int ) vol -> size, vol -> addr
-                , ( int ) size, expanded );
-            switch ( kpt & ~ kptAlias )
-            {
-            case kptFile:
-            case kptDir:
-                if ( legacy_wgs_refseq )
-                    return VResolverAlgMakeLocalWGSRefseqURI ( self, vol, & exp, & tok -> acc, path );
-                return VResolverAlgMakeLocalPath ( self, vol, & exp, path );
-            default:
-                break;
-            }
-        }
-    }
-    else
-    {
-        for ( i = 0; i < count; ++ i )
-        {
-            vol = VectorGet ( & self -> vols, i );
-            kpt = KDirectoryPathType ( wd, "%.*s/%.*s/%.*s"
-                , ( int ) root -> size, root -> addr
-                , ( int ) vol -> size, vol -> addr
-                , ( int ) size, expanded );
-            switch ( kpt & ~ kptAlias )
-            {
-            case kptFile:
-            case kptDir:
-                if ( legacy_wgs_refseq )
-                    return VResolverAlgMakeLocalWGSRefseqURI ( self, vol, & exp, & tok -> acc, path );
-                return VResolverAlgMakeLocalPath ( self, vol, & exp, path );
-            default:
-                break;
-            }
-        }
-    }
-    
-    return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-}
-
-
-/* ParseResolverCGIResponse_1_0
- *  expect single row table, with this structure:
- *
- *  <accession>|<download-ticket>|<url>|<result-code>|<message>
- */
-static
-rc_t VResolverAlgParseResolverCGIResponse_1_0 ( const char *start, size_t size, const VPath ** path, const String *acc )
-{
-    rc_t rc;
-    KLogLevel lvl;
-    uint32_t result_code;
-    const char *url_start, *url_end;
-    const char *ticket_start, *ticket_end;
-
-    /* skip over accession */
-    const char *end = start + size;
-    const char *sep = string_chr ( start, size, '|' );
-    if ( sep == NULL )
-        return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-
-    /* get the download-ticket */
-    start = sep + 1;
-    sep = string_chr ( start, end - start, '|' );
-    if ( sep == NULL )
-        return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-
-    /* capture ticket */
-    ticket_start = start;
-    ticket_end = sep;
-
-    /* get the url */
-    start = sep + 1;
-    sep = string_chr ( start, end - start, '|' );
-    if ( sep == NULL )
-        return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-
-    /* capture url */
-    url_start = start;
-    url_end = sep;
-
-    /* get the result code */
-    start = sep + 1;
-    sep = string_chr ( start, end - start, '|' );
-    if ( sep == NULL )
-        return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-    result_code = strtoul ( start, NULL, 10 );
-
-    /* get the message */
-    start = sep + 1;
-    sep = string_chr ( start, end - start, '\n' );
-    if ( sep == NULL )
-    {
-        sep = string_chr ( start, end - start, '\r' );
-        if ( sep == NULL )
-            sep = end;
-    }
-    else if ( sep > start && sep [ -1 ] == '\r' )
-    {
-        -- sep;
-    }
-
-    switch ( result_code / 100 )
-    {
-    case 1:
-        /* informational response
-           not much we can do here */
-        lvl = klogInt;
-        rc = RC ( rcVFS, rcResolver, rcResolving, rcError, rcUnexpected );
-        break;
-
-    case 2:
-        /* successful response
-           but can only handle 200 */
-        if ( result_code == 200 )
-        {
-            /* detect protected response */
-            if ( ticket_end > ticket_start )
-            {
-                return VPathMakeFmt ( ( VPath** ) path, "%.*s?tic=%.*s"
-                    , ( uint32_t ) ( url_end - url_start ), url_start
-                    , ( uint32_t ) ( ticket_end - ticket_start ), ticket_start
-                );
-            }
-            
-            /* normal public response */
-            return VPathMakeFmt ( ( VPath** ) path, "%.*s", ( uint32_t ) ( url_end - url_start ), url_start );
-        }
-
-        lvl = klogInt;
-        rc = RC ( rcVFS, rcResolver, rcResolving, rcError, rcUnexpected );
-        break;
-
-    case 3:
-        /* redirection
-           currently this is being handled by our request object */
-        lvl = klogInt;
-        rc = RC ( rcVFS, rcResolver, rcResolving, rcError, rcUnexpected );
-        break;
-
-    case 4:
-        /* client error */
-        lvl = klogErr;
-        switch ( result_code )
-        {
-        case 400:
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcMessage, rcInvalid );
-            break;
-        case 401:
-        case 403:
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcQuery, rcUnauthorized );
-            break;
-        case 404:
-            return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-        case 410:
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-            break;
-        default:
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcError, rcUnexpected );
-        }
-        break;
-
-    case 5:
-        /* server error */
-        lvl = klogSys;
-        switch ( result_code )
-        {
-        case 503:
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcDatabase, rcNotAvailable );
-            break;
-        case 504:
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcTimeout, rcExhausted );
-            break;
-        default:
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcError, rcUnexpected );
-        }
-        break;
-
-    default:
-        lvl = klogInt;
-        rc = RC ( rcVFS, rcResolver, rcResolving, rcError, rcUnexpected );
-    }
-
-    /* log message to user */
-    PLOGERR ( lvl, ( lvl, rc, "failed to resolve accession '$(acc)' - $(msg) ( $(code) )",
-        "acc=%S,msg=%.*s,code=%u", acc, ( uint32_t ) ( sep - start ), start, result_code ) );
-    return rc;
-}
-
-
-/* ParseResolverCGIResponse
- *  the response should be NUL terminated
- *  but should also be close to the size of result
- */
-static
-rc_t VResolverAlgParseResolverCGIResponse ( const KDataBuffer *result, const VPath ** path, const String *acc )
-{
-    /* the textual response */
-    const char *start = ( const void* ) result -> base;
-    size_t i, size = KDataBufferBytes ( result );
-
-    /* peel back buffer to significant bytes */
-    while ( size > 0 && start [ size - 1 ] == 0 )
-        -- size;
-
-    /* skip over blanks */
-    for ( i = 0; i < size; ++ i )
-    {
-        if ( ! isspace ( start [ i ] ) )
-            break;
-    }
-
-    /* at this point, we expect only version 1.0 */
-    if ( string_cmp ( & start [ i ], size - i, "#1.0", sizeof "#1.0" - 1, sizeof "#1.0" - 1 ) == 0 )
-    {
-        do
-        {
-            /* accept version line */
-            i += sizeof "#1.0" - 1;
-
-            /* must be followed by eoln */
-            if ( start [ i ] == '\r' && start [ i + 1 ] == '\n' )
-                i += 2;
-            else if ( start [ i ] == '\n' )
-                i += 1;
-            else
-                break;
-
-            /* parse 1.0 response table */
-            return VResolverAlgParseResolverCGIResponse_1_0 ( & start [ i ], size - i, path, acc );
-        }
-        while ( false );
-    }
-
-    return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-}
-
-
-/* RemoteProtectedResolve
- *  use NCBI CGI to resolve accession into URL
- */
-static
-rc_t VResolverAlgRemoteProtectedResolve ( const VResolverAlg *self,
-    const KNSManager *kns, const String *acc,
-    const VPath ** path, bool legacy_wgs_refseq )
-{
-    struct KCurlRequest *req;
-    rc_t rc = KNSManagerMakeRequest ( kns, & req, self -> root -> addr, false );
-    if ( rc == 0 )
-    {
-        String name, val;
-
-        /* build up POST information: */
-        CONST_STRING ( & name, "version" );
-        CONST_STRING (& val, "1.0" );
-        rc = KCurlRequestAddSField ( req, & name, & val );
-        if ( rc == 0 )
-        {
-            CONST_STRING ( & name, "acc" );
-            rc = KCurlRequestAddSField ( req, & name, acc );
-        }
-        if ( rc == 0 && legacy_wgs_refseq )
-        {
-            CONST_STRING ( & name, "ctx" );
-            CONST_STRING (& val, "refseq" );
-            rc = KCurlRequestAddSField ( req, & name, & val );
-        }
-        if ( rc == 0 && self -> ticket != NULL )
-        {
-            CONST_STRING ( & name, "tic" );
-            rc = KCurlRequestAddSField ( req, & name, self -> ticket );
-        }
-
-        /* execute post */
-        if ( rc == 0 )
-        {
-            KDataBuffer result;
-            memset ( & result, 0, sizeof result );
-            rc = KCurlRequestPerform ( req, & result );
-            if ( rc == 0 )
-            {
-                /* expect a table as a NUL-terminated string, but
-                   having close to the number of bytes in results */
-                rc = VResolverAlgParseResolverCGIResponse ( & result, path, acc );
-                KDataBufferWhack ( & result );
-            }
-        }
-
-        KCurlRequestRelease ( req );
-    }
-
-    return rc == 0 ? 0 : RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-}
-
-/* RemoteResolve
- *  resolve an accession into a VPath or not found
- *
- *  1. expand accession according to algorithm
- *  2. search all volumes for accession
- *  3. return not found or new VPath
- */
-static
-rc_t VResolverAlgRemoteResolve ( const VResolverAlg *self,
-    const KNSManager *kns, const VResolverAccToken *tok,
-    const VPath ** path, const KFile ** opt_file_rtn,
-    bool legacy_wgs_refseq )
-{
-    rc_t rc;
-    uint32_t i, count;
-
-    /* expanded accession */
-    String exp;
-    size_t size;
-    char expanded [ 256 ];
-
-    const String *root;
-
-    /* check for download ticket */
-    if ( self -> alg_id == algCGI
-#if NO_LEGACY_WGS_REFSEQ_CGI
-         && ! legacy_wgs_refseq
-#endif
-        )
-    {
-        rc = VResolverAlgRemoteProtectedResolve ( self,
-            kns, & tok -> acc, path, legacy_wgs_refseq );
-        if (rc == 0 && path != NULL && *path != NULL &&
-            opt_file_rtn != NULL && *opt_file_rtn == NULL)
-        {
-            const String *s = NULL;
-            rc_t rc = VPathMakeString(*path, &s);
-            if (rc != 0) {
-                LOGERR(klogInt, rc,
-                    "failed to make string from remote protected path");
-            }
-            else {
-                rc = KCurlFileMake(opt_file_rtn, s->addr, false);
-                if (rc != 0) {
-                    PLOGERR(klogInt, (klogInt, rc,
-                        "failed to open file for $(path)", "path=%s", s->addr));
-                }
-                free((void*)s);
-            }
-        }
-        return rc;
-    }
-
-    /* for remote, root can never be NULL */
-    root = self -> root;
-
-    /* expand the accession */
-    rc = expand_algorithm ( self, tok, expanded, sizeof expanded, & size, legacy_wgs_refseq );
-
-    /* should never have a problem here... */
-    if ( rc != 0 )
-        return rc;
-
-    /* turn the expanded portion into a String
-       we know that size is also length due to
-       accession content rules */
-    StringInit ( & exp, expanded, size, ( uint32_t ) size );
-
-    /* now search all remote volumes */
-    count = VectorLength ( & self -> vols );
-    for ( i = 0; i < count; ++ i )
-    {
-        char url [ 8192 ];
-        const String *vol = VectorGet ( & self -> vols, i );
-        rc = string_printf ( url, sizeof url, NULL, "%S/%S/%S", root, vol, & exp );
-        if ( rc == 0 )
-        {
-            const KFile *f;
-            rc = KCurlFileMake ( & f, url, false );
-            if ( rc == 0 )
-            {
-                if ( opt_file_rtn != NULL )
-                    * opt_file_rtn = f;
-                else
-                    KFileRelease ( f );
-
-                if ( legacy_wgs_refseq )
-                    return VResolverAlgMakeRemoteWGSRefseqURI ( self, url, & tok -> acc, path );
-                return VResolverAlgMakeRemotePath ( self, url, path );
-            }
-        }
-    }
-    
-    return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-}
-
-
-/* CacheResolve
- *  try to resolve accession for currently cached file
- */
-static
-rc_t VResolverAlgCacheResolve ( const VResolverAlg *self,
-    const KDirectory *wd, const VResolverAccToken *tok,
-    const VPath ** path, bool legacy_wgs_refseq )
-{
-    /* see if the cache file already exists */
-    const bool for_cache = true;
-    rc_t rc = VResolverAlgLocalResolve ( self, wd, tok, path, legacy_wgs_refseq, for_cache );
-    if ( rc == 0 )
-        return 0;
-
-    /* TBD - see if any of these volumes is a good candidate for creating a file */
-
-    return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-}
-
-
-
-/* MakeCachePath
- *  we have an accession that matches this volume
- *  create a path for it
- */
-static
-rc_t VResolverAlgMakeCachePath ( const VResolverAlg *self,
-    const VResolverAccToken *tok, const VPath ** path, bool legacy_wgs_refseq )
-{
-    uint32_t i, count;
-
-    /* expanded accession */
-    String exp;
-    size_t size;
-    char expanded [ 256 ];
-
-    const String *vol;
-
-    /* expand the accession */
-    rc_t rc = expand_algorithm ( self, tok, expanded, sizeof expanded, & size, legacy_wgs_refseq );
-
-    /* should never have a problem here... */
-    if ( rc != 0 )
-        return rc;
-
-    /* turn the expanded portion into a String
-       we know that size is also length due to
-       accession content rules */
-    StringInit ( & exp, expanded, size, ( uint32_t ) size );
-
-    /* now search all volumes */
-    count = VectorLength ( & self -> vols );
-    for ( i = 0; i < count; ++ i )
-    {
-        vol = VectorGet ( & self -> vols, i );
-        return VResolverAlgMakeLocalPath ( self, vol, & exp, path );
-    }
-    
-    return RC ( rcVFS, rcResolver, rcResolving, rcPath, rcNotFound );
-}
-
-
-
-/*--------------------------------------------------------------------------
- * VResolver
- */
-struct VResolver
-{
-    /* root paths - stored as String* */
-    Vector roots;
-
-    /* volume algorithms - stored as VResolverAlg* */
-    Vector local;
-    Vector remote;
-
-    /* working directory for testing local paths */
-    const KDirectory *wd;
-
-    /* if there is a protected remote resolver,
-       we will need a KNS manager */
-    const KNSManager *kns;
-
-    /* if there is a working protected repository,
-       store the download ticket here */
-    const String *ticket;
-
-    KRefcount refcount;
-
-    /* counters for various app volumes */
-    uint32_t num_app_vols [ appCount ];
-};
-
-
-/* "process" global settings
- *  actually, they are library-closure global
- */
-static atomic32_t enable_local, enable_remote, enable_cache;
-
-
-/* Whack
- */
-static
-rc_t VResolverWhack ( VResolver *self )
-{
-    KRefcountWhack ( & self -> refcount, "VResolver" );
-
-    /* drop all remote volume sets */
-    VectorWhack ( & self -> remote, VResolverAlgWhack, NULL );
-
-    /* drop local volume sets */
-    VectorWhack ( & self -> local, VResolverAlgWhack, NULL );
-
-    /* drop download ticket */
-    if ( self -> ticket != NULL )
-        StringWhack ( ( String* ) self -> ticket );
-
-    /* drop root paths */
-    VectorWhack ( & self -> roots, string_whack, NULL );
-
-    /* release kns */
-    if ( self -> kns != NULL )
-        KNSManagerRelease ( self -> kns );
-
-    /* release directory onto local file system */
-    KDirectoryRelease ( self -> wd );
-
-    free ( self );
-    return 0;
-}
-
-
-/* AddRef
- * Release
- */
-LIB_EXPORT
-rc_t CC VResolverAddRef ( const VResolver * self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "VResolver" ) )
-        {
-        case krefOkay:
-            break;
-        case krefZero:
-            return RC ( rcVFS, rcResolver, rcAttaching, rcRefcount, rcIncorrect );
-        case krefLimit:
-            return RC ( rcVFS, rcResolver, rcAttaching, rcRefcount, rcExhausted );
-        case krefNegative:
-            return RC ( rcVFS, rcResolver, rcAttaching, rcRefcount, rcInvalid );
-        default:
-            return RC ( rcVFS, rcResolver, rcAttaching, rcRefcount, rcUnknown );
-        }
-    }
-    return 0;
-}
-
-LIB_EXPORT
-rc_t CC VResolverRelease ( const VResolver * self )
-{
-    rc_t rc = 0;
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "VResolver" ) )
-        {
-        case krefOkay:
-        case krefZero:
-            break;
-        case krefWhack:
-            VResolverWhack ( ( VResolver* ) self );
-            break;
-        case krefNegative:
-            return RC ( rcVFS, rcResolver, rcAttaching, rcRefcount, rcInvalid );
-        default:
-            rc = RC ( rcVFS, rcResolver, rcAttaching, rcRefcount, rcUnknown );
-            break;            
-        }
-    }
-    return rc;
-}
-
-
-/* get_accession_code
- */
-static
-uint32_t get_accession_code ( const String * accession, VResolverAccToken *tok )
-{
-#if USE_VPATH_OPTIONS_STRINGS
-#error this thing is wrong
-#else
-    uint32_t code;
-
-    const char *acc = accession -> addr;
-    size_t i, size = accession -> size;
-
-    /* capture the whole accession */
-    tok -> acc = * accession;
-
-    /* scan prefix or alpha */
-    for ( i = 0; i < size; ++ i )
-    {
-        if ( ! isalpha ( acc [ i ] ) )
-            break;
-    }
-
-    /* terrible situation - unrecognizable */
-    if ( i == size || i == 0 || i >= 16 )
-    {
-        StringInit ( & tok -> prefix, acc, 0, 0 );
-        StringInit ( & tok -> alpha, acc, i, i );
-        StringInit ( & tok -> digits, & acc [ i ], 0, 0 );
-        tok -> ext1 = tok -> ext2 = tok -> digits;
-        return 0;
-    }
-
-    /* if stopped on '_', we have a prefix */
-    if ( acc [ i ] == '_' )
-    {
-        /* prefix
-           store only its presence, not length */
-        code = 1 << 4 * 4;
-        StringInit ( & tok -> prefix, acc, i, i );
-
-        /* remove prefix */
-        acc += ++ i;
-        size -= i;
-
-        /* scan for alpha */
-        for ( i = 0; i < size; ++ i )
-        {
-            if ( ! isalpha ( acc [ i ] ) )
-                break;
-        }
-
-        if ( i == size || i >= 16 )
-        {
-            StringInit ( & tok -> alpha, acc, i, i );
-            StringInit ( & tok -> digits, & acc [ i ], 0, 0 );
-            tok -> ext1 = tok -> ext2 = tok -> digits;
-            return 0;
-        }
-
-        code |= i << 4 * 3;
-        StringInit ( & tok -> alpha, acc, i, i );
-    }
-    else if ( ! isdigit ( acc [ i ] ) )
-    {
-        StringInit ( & tok -> prefix, acc, 0, 0 );
-        StringInit ( & tok -> alpha, acc, i, i );
-        StringInit ( & tok -> digits, & acc [ i ], 0, 0 );
-        tok -> ext1 = tok -> ext2 = tok -> digits;
-        return 0;
-    }
-    else
-    {
-        /* alpha */
-        code = i << 4 * 3;
-        StringInit ( & tok -> prefix, acc, 0, 0 );
-        StringInit ( & tok -> alpha, acc, i, i );
-    }
-
-    /* remove alpha */
-    acc += i;
-    size -= i;
-
-    /* scan digits */
-    for ( i = 0; i < size; ++ i )
-    {
-        if ( ! isdigit ( acc [ i ] ) )
-            break;
-    }
-
-    /* record digits */
-    StringInit ( & tok -> digits, acc, i, i );
-    StringInit ( & tok -> ext1, & acc [ i ], 0, 0 );
-    tok -> ext2 = tok -> ext1;
-
-    if ( i == 0 || i >= 16 )
-        return 0;
-
-    code |= i << 4 * 2;
-
-    /* normal return point for SRA */
-    if ( i == size )
-        return code;
-
-    /* check for extension */
-    if ( acc [ i ] != '.' )
-        return 0;
-
-    /* remove digit */
-    acc += ++ i;
-    size -= i;
-
-    /* scan numeric extension */
-    for ( i = 0; i < size; ++ i )
-    {
-        if ( ! isdigit ( acc [ i ] ) )
-            break;
-    }
-
-    if ( i == 0 || i >= 16 )
-        return 0;
-
-    /* record the actual extension */
-    StringInit ( & tok -> ext1, acc, i, i );
-    /* codify the extension simply as present, not by its length */
-    code |= 1 << 4 * 1;
-
-    if ( i == size )
-        return code;
-
-    if ( acc [ i ] != '.' )
-        return 0;
-
-
-    /* remove first extension */
-    acc += ++ i;
-    size -= i;
-
-    /* scan 2nd numeric extension */
-    for ( i = 0; i < size; ++ i )
-    {
-        if ( ! isdigit ( acc [ i ] ) )
-            break;
-    }
-
-    if ( i == 0 || i >= 16 )
-        return 0;
-
-    StringInit ( & tok -> ext2, acc, i, i );
-    code |= 1 << 4 * 0;
-
-    if ( i == size )
-        return code;
-
-    /* no other patterns are accepted */
-    return 0;
-#endif
-}
-
-
-/* get_accession_app
- */
-static
-VResolverAppID get_accession_app ( const String * accession, bool refseq_ctx,
-    VResolverAccToken *tok, bool *legacy_wgs_refseq )
-{
-    VResolverAppID app;
-    uint32_t code = get_accession_code ( accession, tok );
-
-    /* disregard extensions at this point */
-    switch ( code >> 4 * 2 )
-    {
-    case 0x015: /* e.g. "J01415" or "J01415.2"     */
-    case 0x026: /* e.g. "CM000071" or "CM000039.2" */
-    case 0x126: /* e.g. "NZ_DS995509.1"            */
-        app = appREFSEQ;
-        break;
-
-    case 0x036: /* e.g. "SRR012345"    */
-    case 0x037: /* e.g. "SRR0123456"   */
-    case 0x038: /* e.g. "SRR01234567"  */
-    case 0x039: /* e.g. "SRR012345678" */
-        app = appSRA;
-        break;
-
-    case 0x106: /* e.g. "NC_000012.10"                      */
-    case 0x109: /* e.g. "NW_003315935.1", "GPC_000000393.1" */
-        app = appREFSEQ;
-        break;
-
-    case 0x042: /* e.g. "AAAB01" is WGS package name */
-    case 0x048: /* e.g. "AAAA01000001"               */
-    case 0x049: /* contig can be 6 or 7 digits       */
-    case 0x142: /* e.g. "NZ_AAEW01"                  */
-    case 0x148: /* e.g. "NZ_AAEW01000001"            */
-    case 0x149:
-        app = appWGS;
-        break;
-
-    default:
-        /* TBD - people appear to be able to throw anything into refseq,
-           so anything unrecognized we may as well test out there...
-           but this should not stay the case */
-        app = appREFSEQ;
-    }
-
-    if ( app == appWGS )
-    {
-        /* if we know this is for refseq, clobber it here */
-        if ( refseq_ctx )
-        {
-            app = appREFSEQ;
-            * legacy_wgs_refseq = true;
-        }
-    }
-
-    return app;
-}
-
-
-/* LocalResolve
- *  resolve an accession into a VPath or not found
- *
- *  1. determine the type of accession we have, i.e. its "app"
- *  2. search all local algorithms of app type for accession
- *  3. return not found or new VPath
- */
-static
-rc_t VResolverLocalResolve ( const VResolver *self,
-    const String * accession, const VPath ** path, bool refseq_ctx )
-{
-    rc_t rc;
-    uint32_t i, count;
-
-    VResolverAccToken tok;
-    bool legacy_wgs_refseq = false;
-    VResolverAppID app = get_accession_app ( accession, refseq_ctx, & tok, & legacy_wgs_refseq );
-
-    /* search all local volumes by app and accession algorithm expansion */
-    count = VectorLength ( & self -> local );
-    for ( i = 0; i < count; ++ i )
-    {
-        const VResolverAlg *alg = VectorGet ( & self -> local, i );
-        if ( alg -> app_id == app )
-        {
-            const bool for_cache = false;
-            rc = VResolverAlgLocalResolve ( alg, self -> wd, & tok, path, legacy_wgs_refseq, for_cache );
-            if ( rc == 0 )
-                return 0;
-        }
-    }
-
-    return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-}
-
-static
-bool VPathHasRefseqContext ( const VPath * accession )
-{
-    size_t num_read;
-    char option [ 64 ];
-    rc_t rc = VPathOption ( accession, vpopt_vdb_ctx, option, sizeof option, & num_read );
-    if ( rc != 0 )
-        return false;
-    return ( num_read == sizeof "refseq" - 1 &&
-             strcase_cmp ( "refseq", sizeof "refseq" - 1,
-                           option, num_read, num_read ) == 0 );
-}
-
-
-/* Local
- *  Find an existing local file/directory that is named by the accession.
- *  rcState of rcNotFound means it does not exist.
- *
- *  other rc code for failure are possible.
- *
- *  Accession must be an ncbi-acc scheme or a simple name with no 
- *  directory paths.
- */
-LIB_EXPORT
-rc_t CC VResolverLocal ( const VResolver * self,
-    const VPath * accession, const VPath ** path )
-{
-    rc_t rc;
-
-    if ( path == NULL )
-        rc = RC ( rcVFS, rcResolver, rcResolving, rcParam, rcNull );
-    else
-    {
-        * path = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcSelf, rcNull );
-        else if ( accession == NULL )
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcPath, rcNull );
-        else
-        {
-            bool refseq_ctx = false;
-            VPUri_t uri_type = VPathGetUri_t ( accession );
-            switch ( uri_type )
-            {
-            case vpuri_none:
-                /* this is a simple spec -
-                   check for not being a POSIX path */
-#if USE_VPATH_OPTIONS_STRINGS
-#error this is wrong
-#else
-                if ( string_chr ( accession -> path . addr, accession -> path . size, '/' ) == NULL )
-                    return VResolverLocalResolve ( self, & accession -> path, path, refseq_ctx );
-#endif
-
-                /* no break */
-            case vpuri_not_supported:
-            case vpuri_ncbi_vfs:
-#if SUPPORT_FILE_URL
-            case vpuri_file:
-#endif
-            case vpuri_http:
-            case vpuri_ftp:
-            case vpuri_ncbi_legrefseq:
-                rc = RC ( rcVFS, rcResolver, rcResolving, rcUri, rcIncorrect );
-                break;
-
-            case vpuri_ncbi_acc:
-            {
-                refseq_ctx = VPathHasRefseqContext ( accession );
-#if USE_VPATH_OPTIONS_STRINGS
-#error this is wrong
-#else
-                return VResolverLocalResolve ( self, & accession -> path, path, refseq_ctx );
-#endif
-            }
-
-            default:
-                rc = RC ( rcVFS, rcResolver, rcResolving, rcUri, rcInvalid );
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* LocalEnable
- *  modify settings for using local repositories,
- *  meaning site, user-public and user-protected.
- *
- *  "enable" [ IN ] - enable or disable local access,
- *  or follow settings in KConfig
- *
- *  returns the previous state of "remote-enabled" property
- *
- * NB - in VDB-2, the state is associated with library code
- *  shared libraries in separate closures will have separate
- *  state. this can only occur if dynamic ( manual ) loading of
- *  shared libraries is used, and will not occur with normal
- *  usage. in VDB-3 the state will be stored with the process,
- *  not the library.
- */
-LIB_EXPORT VResolverEnableState CC VResolverLocalEnable ( const VResolver * self, VResolverEnableState enable )
-{
-    int32_t val, cur, prior;
-
-    if ( self == NULL )
-        return false;
-
-    /* convert "VResolverEnableState" to 32-bit signed integer for atomic operation */
-    val = ( int32_t ) enable;
-
-    /* before performing atomic swap, get the current setting,
-       and return right away if it is already set correctly */
-    prior = atomic32_read ( & enable_local );
-    if ( prior != val ) do
-    {
-        cur = prior;
-        prior = atomic32_test_and_set ( & enable_local, val, prior );
-    }
-    while ( prior != cur );
-
-    return prior;
-}
-
-
-/* RemoteEnable
- *  apply or remove a process-wide enabling of remote access
- *  regardless of configuration settings
- *
- *  "enable" [ IN ] - if "true", enable all remote access
- *  if false, use settings from configuration.
- *
- *  returns the previous state of "remote-enabled" property
- *
- * NB - in VDB-2, the state is associated with library code
- *  shared libraries in separate closures will have separate
- *  state. this can only occur if dynamic ( manual ) loading of
- *  shared libraries is used, and will not occur with normal
- *  usage. in VDB-3 the state will be stored with the process,
- *  not the library.
- */
-LIB_EXPORT VResolverEnableState CC VResolverRemoteEnable ( const VResolver * self, VResolverEnableState enable )
-{
-    int32_t val, cur, prior;
-
-    if ( self == NULL )
-        return false;
-
-    /* convert "VResolverEnableState" to 32-bit signed integer for atomic operation */
-    val = ( int32_t ) enable;
-
-    /* before performing atomic swap, get the current setting,
-       and return right away if it is already set correctly */
-    prior = atomic32_read ( & enable_remote );
-    if ( prior != val ) do
-    {
-        cur = prior;
-        prior = atomic32_test_and_set ( & enable_remote, val, prior );
-    }
-    while ( prior != cur );
-
-    return prior;
-}
-
-
-/* CacheEnable
- *  modify settings for caching files in user repositories
- *
- *  "enable" [ IN ] - enable or disable user repository cache,
- *  or follow settings in KConfig
- *
- *  returns the previous state of "cache-enabled" property
- *
- * NB - in VDB-2, the state is associated with library code
- *  shared libraries in separate closures will have separate
- *  state. this can only occur if dynamic ( manual ) loading of
- *  shared libraries is used, and will not occur with normal
- *  usage. in VDB-3 the state will be stored with the process,
- *  not the library.
- */
-LIB_EXPORT VResolverEnableState CC VResolverCacheEnable ( const VResolver * self, VResolverEnableState enable )
-{
-    int32_t val, cur, prior;
-
-    if ( self == NULL )
-        return false;
-
-    /* convert "VResolverEnableState" to 32-bit signed integer for atomic operation */
-    val = ( int32_t ) enable;
-
-    /* before performing atomic swap, get the current setting,
-       and return right away if it is already set correctly */
-    prior = atomic32_read ( & enable_cache );
-    if ( prior != val ) do
-    {
-        cur = prior;
-        prior = atomic32_test_and_set ( & enable_cache, val, prior );
-    }
-    while ( prior != cur );
-
-    return prior;
-}
-
-
-/* RemoteResolve
- *  resolve an accession into a remote VPath or not found
- *  may optionally open a KFile to the object in the process
- *  of finding it
- *
- *  2. determine the type of accession we have, i.e. its "app"
- *  3. search all local algorithms of app type for accession
- *  4. return not found or new VPath
- */
-static
-rc_t VResolverRemoteResolve ( const VResolver *self,
-    const String * accession, const VPath ** path,
-    const KFile ** opt_file_rtn, bool refseq_ctx )
-{
-    rc_t rc, try_rc;
-    uint32_t i, count;
-
-    VResolverAccToken tok;
-    VResolverAppID app, wildCard;
-    bool legacy_wgs_refseq = false;
-
-    /* here, determine whether remote access is globally disabled */
-    VResolverEnableState remote_state = atomic32_read ( & enable_remote );
-    if ( remote_state == vrAlwaysDisable )
-        return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-
-    /* subject the accession to pattern recognition */
-    app = get_accession_app ( accession, refseq_ctx, & tok, & legacy_wgs_refseq );
-
-    /* search all remote volumes by app and accession algorithm expansion */
-    count = VectorLength ( & self -> remote );
-
-    /* allow matching wildcard app */
-    wildCard = appAny;
-#if NO_REFSEQ_CGI
-    if ( app == appREFSEQ )
-        wildCard = -1;
-#endif
-
-    /* no error recorded yet */
-    rc = 0;
-
-    /* test for forced enable, which applies only to main guys
-       TBD - limit to main sub-category */
-    if ( remote_state == vrAlwaysEnable )
-    {
-        for ( i = 0; i < count; ++ i )
-        {
-            const VResolverAlg *alg = VectorGet ( & self -> remote, i );
-            if ( alg -> app_id == app || alg -> app_id == wildCard )
-            {
-                try_rc = VResolverAlgRemoteResolve ( alg, self -> kns, & tok, path, opt_file_rtn, legacy_wgs_refseq );
-                if ( try_rc == 0 )
-                    return 0;
-                if ( rc == 0 )
-                    rc = try_rc;
-            }
-        }
-    }
-    else
-    {
-        for ( i = 0; i < count; ++ i )
-        {
-            const VResolverAlg *alg = VectorGet ( & self -> remote, i );
-            if ( ( alg -> app_id == app || alg -> app_id == wildCard ) && ! alg -> disabled )
-            {
-                try_rc = VResolverAlgRemoteResolve ( alg, self -> kns, & tok, path, opt_file_rtn, legacy_wgs_refseq );
-                if ( try_rc == 0 )
-                    return 0;
-                if ( rc == 0 )
-                    rc = try_rc;
-            }
-        }
-    }
-
-    if ( rc != 0 )
-        return rc;
-
-    return RC ( rcVFS, rcResolver, rcResolving, rcName, rcNotFound );
-}
-
-
-/* Remote
- *  Find an existing remote file that is named by the accession.
- *
- *  rcState of rcNotFound means it did not exist and can not be 
- *  downloaded. Probably a bad accession name.
- *
- *  Need a specific rc for no network configured.
- *  Need a specific rc for network access permitted.
- *
- *  Other rc code for failure are possible.
- *
- *  Accession must be an ncbi-acc scheme or a simple name with no 
- *  directory paths.
- *
- *  "opt_file_rtn" [ OUT, NULL OKAY ] - optional return parameter for
- *   any KFile that may be opened as a result of resolution. This can
- *   happen if resolving an accession involves opening a URL to a
- *   remote server, for example, in which case the KFile can be returned.
- */
-LIB_EXPORT
-rc_t CC VResolverRemote ( const VResolver * self,
-    const VPath * accession, const VPath ** path,
-    const KFile ** opt_file_rtn )
-{
-    rc_t rc;
-
-    if ( path == NULL )
-        rc = RC ( rcVFS, rcResolver, rcResolving, rcParam, rcNull );
-    else
-    {
-        * path = NULL;
-
-        if ( opt_file_rtn != NULL )
-            * opt_file_rtn = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcSelf, rcNull );
-        else if ( accession == NULL )
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcPath, rcNull );
-        else
-        {
-            bool refseq_ctx = false;
-            VPUri_t uri_type = VPathGetUri_t ( accession );
-            switch ( uri_type )
-            {
-            case vpuri_none:
-                /* this is a simple spec -
-                   check for not being a POSIX path */
-#if USE_VPATH_OPTIONS_STRINGS
-#error this is wrong
-#else
-                if ( string_chr ( accession -> path . addr, accession -> path . size, '/' ) == NULL )
-                    return VResolverRemoteResolve ( self, & accession -> path, path, opt_file_rtn, refseq_ctx );
-#endif
-
-                /* no break */
-            case vpuri_not_supported:
-            case vpuri_ncbi_vfs:
-#if SUPPORT_FILE_URL
-            case vpuri_file:
-#endif
-            case vpuri_http:
-            case vpuri_ftp:
-            case vpuri_ncbi_legrefseq:
-                rc = RC ( rcVFS, rcResolver, rcResolving, rcUri, rcIncorrect );
-                break;
-
-            case vpuri_ncbi_acc:
-            {
-                refseq_ctx = VPathHasRefseqContext ( accession );
-#if USE_VPATH_OPTIONS_STRINGS
-#error this is wrong
-#else
-                return VResolverRemoteResolve ( self, & accession -> path, path, opt_file_rtn, refseq_ctx );
-#endif
-            }
-
-            default:
-                rc = RC ( rcVFS, rcResolver, rcResolving, rcUri, rcInvalid );
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* ExtractURLAccessionApp
- *  examine a URL for accession portion,
- *  and try to recognize what app it belongs to
- */
-static
-VResolverAppID VResolverExtractURLAccessionApp ( const VResolver *self, const VPath * url,
-    String * accession, VResolverAccToken * tok, bool *legacy_wgs_refseq )
-{
-    const char *p;
-    bool refseq_ctx = false;
-
-    /* have the difficulty here of determining whether there is
-       a table fragment, which would indicate that the download
-       is appREFSEQ even if the accession indicates appWGS. */
-
-#if USE_VPATH_OPTIONS_STRINGS
-#error this is wrong
-#else
-    * accession = url -> path;
-    if ( url -> fragment != NULL && url -> fragment [ 0 ] != 0 )
-        refseq_ctx = true;
-#endif
-    p = string_rchr ( accession -> addr, accession -> size, '/' );
-    if ( p != NULL )
-    {
-        accession -> size -= ++ p - accession -> addr;
-        accession -> addr = p;
-        accession -> len = string_len ( p, accession -> size );
-    }
-    p = string_rchr ( accession -> addr, accession -> size, '.' );
-    if ( p != NULL )
-    {
-        if ( strcase_cmp ( p, accession -> size - ( p - accession -> addr ),
-                           ".sra", sizeof ".sra" - 1, -1 ) == 0 )
-        {
-            accession -> size -= sizeof ".sra" - 1;
-            accession -> len -= sizeof ".sra" - 1;
-        }
-        else if ( strcase_cmp ( p, accession -> size - ( p - accession -> addr ),
-                                ".wgs", sizeof ".wgs" - 1, -1 ) == 0 )
-        {
-            accession -> size -= sizeof ".wgs" - 1;
-            accession -> len -= sizeof ".wgs" - 1;
-        }
-    }
-
-    /* should have something looking like an accession.
-       determine its app to see if we were successful */
-    return get_accession_app ( accession, refseq_ctx, tok, legacy_wgs_refseq );
-}
-
-static
-bool VPathHasDownloadTicket ( const VPath * url )
-{
-    size_t num_read;
-    char option [ 64 ];
-    rc_t rc = VPathOption ( url, vpopt_gap_ticket, option, sizeof option, & num_read );
-    return rc == 0;
-}
-
-
-/* Cache
- *  Find a cache directory that might or might not contain a partially
- *  downloaded file.
- *
- *  Accession must be an ncbi-acc scheme, an http url or a simple name with no 
- *  directory paths. All three should return the same directory URL as a VPath. (?)
- *  Or should it be a directory or a file url depending upon finding a partial
- *  download? This would require co-ordination with all download mechanisms that
- *  we permit.
- *
- *  With refseq holding wgs objects we have a case were the downloaded file is not
- *  named the same as the original accession as the file archive you want is a
- *  container for other files.
- *
- *  Find local will give a path that has a special scheme in these cases. 
- *  Find remote will give the url for the container that contains the accession
- *  so using the returned VPath from resolve remote is better than the original
- *  accession in this one case.  I think...
- */
-LIB_EXPORT
-rc_t CC VResolverCache ( const VResolver * self,
-    const VPath * url, const VPath ** path, uint64_t file_size )
-{
-    rc_t rc;
-
-    VResolverEnableState cache_state = atomic32_read ( & enable_cache );
-
-    if ( path == NULL )
-        rc = RC ( rcVFS, rcResolver, rcResolving, rcParam, rcNull );
-    else
-    {
-        * path = NULL;
-
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcSelf, rcNull );
-        else if ( url == NULL )
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcParam, rcNull );
-        else if ( cache_state == vrAlwaysDisable )
-            rc = RC ( rcVFS, rcResolver, rcResolving, rcPath, rcNotFound );
-        else
-        {
-            VPUri_t uri_type = VPathGetUri_t ( url );
-            switch ( uri_type )
-            {
-            case vpuri_http:
-            {
-                String accession;
-                VResolverAccToken tok;
-                bool legacy_wgs_refseq = false;
-                VResolverAppID app = VResolverExtractURLAccessionApp ( self,
-                    url, & accession, & tok, & legacy_wgs_refseq );
-
-                /* going to walk the local volumes, and remember
-                   which one was best. actually, we have no algorithm
-                   for determining it, so it's just the comment for TBD */
-                const VResolverAlg *alg, *best = NULL;
-
-                /* search the volumes for a cache-enabled place */
-                uint32_t i, count = VectorLength ( & self -> local );
-
-                /* check for protected status by presence of a download ticket */
-                bool protected = VPathHasDownloadTicket ( url );
-
-                /* check for cache-enable override */
-                if ( cache_state == vrAlwaysEnable )
-                {
-                    for ( i = 0; i < count; ++ i )
-                    {
-                        alg = VectorGet ( & self -> local, i );
-                        if ( alg -> cache_capable && alg -> protected == protected &&
-                             ( alg -> app_id == app || alg -> app_id == appAny ) )
-                        {
-                            /* try to find an existing cache file
-                               NB - race condition exists unless
-                               we do something with lock files */
-                            rc = VResolverAlgCacheResolve ( alg, self -> wd, & tok, path, legacy_wgs_refseq );
-                            if ( rc == 0 )
-                                return 0;
-
-                            /* just remember the first as best for now */
-                            if ( best == NULL )
-                                best = alg;
-                        }
-                    }
-                }
-                else
-                {
-                    for ( i = 0; i < count; ++ i )
-                    {
-                        alg = VectorGet ( & self -> local, i );
-                        if ( alg -> cache_enabled && alg -> protected == protected &&
-                             ( alg -> app_id == app || alg -> app_id == appAny ) )
-                        {
-                            /* try to find an existing cache file
-                               NB - race condition exists unless
-                               we do something with lock files */
-                            rc = VResolverAlgCacheResolve ( alg, self -> wd, & tok, path, legacy_wgs_refseq );
-                            if ( rc == 0 )
-                                return 0;
-
-                            /* just remember the first as best for now */
-                            if ( best == NULL )
-                                best = alg;
-                        }
-                    }
-                }
-
-                /* no existing cache file was found,
-                   so create a new one using the best
-                   TBD - this should remember a volume path */
-                if ( best == NULL )
-                    rc = RC ( rcVFS, rcResolver, rcResolving, rcPath, rcNotFound );
-                else
-                    rc = VResolverAlgMakeCachePath ( best, & tok, path, legacy_wgs_refseq );
-                break;
-            }
-            default:
-                rc = RC ( rcVFS, rcResolver, rcResolving, rcUri, rcInvalid );
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* LoadVolume
- *  capture volume path and other information
- */
-static
-rc_t VResolverAlgLoadVolume ( VResolverAlg *self, uint32_t *num_vols, const char *start, size_t size )
-{
-    rc_t rc = 0;
-
-#if 0
-    /* trim volume whitespace */
-    while ( size != 0 && isspace ( start [ 0 ] ) )
-    {
-        ++ start;
-        -- size;
-    }
-    while ( size != 0 && isspace ( start [ size - 1 ] ) )
-        -- size;
-#endif
-
-    /* trim trailing slashes */
-    while ( size != 0 && start [ size - 1 ] == '/' )
-        -- size;
-
-    /* now see if the string survives */
-    if ( size != 0 )
-    {
-        String loc_vol_str;
-        const String *vol_str;
-        StringInit ( & loc_vol_str, start, size, string_len ( start, size ) );
-        rc = StringCopy ( & vol_str, & loc_vol_str );
-        if ( rc == 0 )
-        {
-            rc = VectorAppend ( & self -> vols, NULL, vol_str );
-            if ( rc == 0 )
-            {
-                * num_vols += 1;
-                return 0;
-            }
-
-            StringWhack ( vol_str );
-        }
-    }
-
-    return rc;
-}
-
-/* LoadVolumes
- *
- *    path-list
- *        = PATH
- *        | <path-list> ':' PATH ;
- */
-static
-rc_t VResolverAlgLoadVolumes ( VResolverAlg *self, uint32_t *num_vols, const String *vol_list )
-{
-    const char *start = vol_list -> addr;
-    const char *end = & vol_list -> addr [ vol_list -> size ];
-    const char *sep = string_chr ( start, end - start, ':' );
-    while ( sep != NULL )
-    {
-        rc_t rc = VResolverAlgLoadVolume ( self, num_vols, start, sep - start );
-        if ( rc != 0 )
-            return rc;
-        start = sep + 1;
-        sep = string_chr ( start, end - start, ':' );
-    }
-    return VResolverAlgLoadVolume ( self, num_vols, start, end - start );
-}
-
-/* LoadAlgVolumes
- *
- *    volumes
- *        = <path-list> ;
- */
-static
-rc_t VResolverLoadAlgVolumes ( Vector *algs, const String *root, const String *ticket,
-    VResolverCacheAllow allow_cache, VResolverAppID app_id, VResolverAlgID alg_id,
-     uint32_t *num_vols, const String *vol_list, bool protected, bool disabled, bool caching )
-{
-    VResolverAlg *alg;
-    rc_t rc = VResolverAlgMake ( & alg, root, app_id, alg_id, protected, disabled );
-    if ( rc == 0 )
-    {
-        alg -> ticket = ticket;
-        alg -> cache_capable = allow_cache == cacheAllow;
-        alg -> cache_enabled = caching;
-
-        if ( ticket != NULL )
-            alg -> alg_id = algCGI;
-
-        rc = VResolverAlgLoadVolumes ( alg, num_vols, vol_list );
-        if ( rc == 0 && VectorLength ( & alg -> vols ) != 0 )
-        {
-            rc = VectorAppend ( algs, NULL, alg );
-            if ( rc == 0 )
-                return 0;
-        }
-
-        VResolverAlgWhack ( alg, NULL );
-    }
-
-    return rc;
-}
-
-/* LoadApp
- *
- *    alg-block
- *        = <alg-type> <volumes> ;
- *
- *    alg-type
- *        = "flat" | "sraFlat" | "sra1024" | "sra1000" | "fuse1000"
- *        | "refseq" | "wgs" | "fuseWGS" | "ncbi" | "ddbj" | "ebi" ;
- */
-static
-rc_t VResolverLoadVolumes ( Vector *algs, const String *root, const String *ticket,
-    VResolverCacheAllow allow_cache, VResolverAppID app_id, uint32_t *num_vols,
-    const KConfigNode *vols, bool resolver_cgi, bool protected, bool disabled, bool caching )
-{
-    KNamelist *algnames;
-    rc_t rc = KConfigNodeListChildren ( vols, & algnames );
-    if ( rc == 0 )
-    {
-        uint32_t i, count;
-        rc = KNamelistCount ( algnames, & count );
-        for ( i = 0; i < count && rc == 0; ++ i )
-        {
-            const char *algname;
-            rc = KNamelistGet ( algnames, i, & algname );
-            if ( rc == 0 )
-            {
-                const KConfigNode *alg;
-                rc = KConfigNodeOpenNodeRead ( vols, & alg, algname );
-                if ( rc == 0 )
-                {
-                    VResolverAlgID alg_id = algUnknown;
-
-                    /* if using CGI for resolution */
-                    if ( resolver_cgi || strcmp ( algname, "cgi" ) == 0 )
-                        alg_id = algCGI;
-                    /* stored in a flat directory with ".sra" extension */
-                    else if ( strcmp ( algname, "sraFlat" ) == 0 )
-                        alg_id = algSRAFlat;
-                    /* stored in a three-level directory with 1K banks and ".sra" extension */
-                    else if ( strcmp ( algname, "sra1024" ) == 0 )
-                        alg_id = algSRA1024;
-                    /* stored in a three-level directory with 1000 banks and ".sra" extension */
-                    else if ( strcmp ( algname, "sra1000" ) == 0 )
-                        alg_id = algSRA1000;
-                    /* stored in a four-level directory with 1000 banks and ".sra" extension */
-                    else if ( strcmp ( algname, "fuse1000" ) == 0 )
-                        alg_id = algFUSE1000;
-                    /* stored in a flat directory with no extension */
-                    else if ( strcmp ( algname, "refseq" ) == 0 )
-                        alg_id = algREFSEQ;
-                    /* stored in a flat directory with no extension */
-                    else if ( strcmp ( algname, "wgsFlat" ) == 0 )
-                        alg_id = algWGSFlat;
-                    /* stored in a multi-level directory with no extension */
-                    else if ( strcmp ( algname, "wgs" ) == 0 )
-                        alg_id = algWGS;
-                    else if ( strcmp ( algname, "fuseWGS" ) == 0 )
-                        alg_id = algFuseWGS;
-                    /* stored in a three-level directory with 1K banks and no extension */
-                    else if ( strcmp ( algname, "ncbi" ) == 0 ||
-                              strcmp ( algname, "ddbj" ) == 0 )
-                        alg_id = algSRA_NCBI;
-                    /* stored in a three-level directory with 1000 banks and no extension */
-                    else if ( strcmp ( algname, "ebi" ) == 0 )
-                        alg_id = algSRA_EBI;
-
-                    if ( alg_id != algUnknown )
-                    {
-                        String *vol_list;
-                        rc = KConfigNodeReadString ( alg, & vol_list );
-                        if ( rc == 0 )
-                        {
-                            if ( StringLength ( vol_list ) != 0 )
-                            {
-                                rc = VResolverLoadAlgVolumes ( algs, root, ticket, allow_cache,
-                                    app_id, alg_id, num_vols, vol_list, protected, disabled, caching );
-                            }
-                            StringWhack ( vol_list );
-                        }
-                    }
-
-                    KConfigNodeRelease ( alg );
-                }
-            }
-        }
-
-        KNamelistRelease ( algnames );
-    }
-    return rc;
-}
-
-/* LoadApp
- *
- *    app
- *        = [ <disabled> ] [ <cache-enabled> ] <vol-group> ;
- *
- *    disabled
- *        = "disabled" '=' ( "true" | "false" ) ;
- *
- *    cache-enabled
- *        = "cache-enabled" '=' ( "true" | "false" ) ;
- *
- *    vol-group
- *        = "volumes" <alg-block>* ;
- */
-static
-rc_t VResolverLoadApp ( VResolver *self, Vector *algs, const String *root, const String *ticket,
-    VResolverCacheAllow allow_cache, VResolverAppID app_id, uint32_t *num_vols,
-    const KConfigNode *app, bool resolver_cgi, bool protected, bool disabled, bool caching )
-{
-    const KConfigNode *node;
-
-    /* test for disabled app - it is entirely possible */
-    rc_t rc = KConfigNodeOpenNodeRead ( app, & node, "disabled" );
-    if ( rc == 0 )
-    {
-        bool app_disabled = false;
-        rc = KConfigNodeReadBool ( node, & app_disabled );
-        KConfigNodeRelease ( node );
-        if ( rc == 0 && app_disabled && algs == & self -> local )
-            return 0;
-        disabled |= app_disabled;
-    }
-
-    /* test again for cache enabled */
-    if ( allow_cache == cacheAllow )
-    {
-        rc = KConfigNodeOpenNodeRead ( app, & node, "cache-enabled" );
-        if ( rc == 0 )
-        {
-            /* allow this node to override current value */
-            bool cache;
-            rc = KConfigNodeReadBool ( node, & cache );
-            KConfigNodeRelease ( node );
-            if ( rc == 0 )
-                caching = cache;
-        }
-    }
-
-    /* get volumes */
-    rc = KConfigNodeOpenNodeRead ( app, & node, "volumes" );
-    if ( GetRCState ( rc ) == rcNotFound )
-        rc = 0;
-    else if ( rc == 0 )
-    {
-        rc = VResolverLoadVolumes ( algs, root, ticket, allow_cache,
-            app_id, num_vols, node, resolver_cgi, protected, disabled, caching );
-        KConfigNodeRelease ( node );
-    }
-
-    return rc;
-}
-
-/* LoadApps
- *
- *    app-block
- *        = <app-name> <app> ;
- *
- *    app-name
- *        = "refseq" | "sra" | "wgs" ;
- */
-static
-rc_t VResolverLoadApps ( VResolver *self, Vector *algs, const String *root,
-    const String *ticket, VResolverCacheAllow allow_cache, const KConfigNode *apps,
-    bool resolver_cgi, bool protected, bool disabled, bool caching )
-{
-    KNamelist *appnames;
-    rc_t rc = KConfigNodeListChildren ( apps, & appnames );
-    if ( rc == 0 )
-    {
-        uint32_t i, count;
-        rc = KNamelistCount ( appnames, & count );
-        if ( resolver_cgi && rc == 0 && count == 0 )
-        {
-            VResolverAlg *cgi;
-            rc = VResolverAlgMake ( & cgi, root, appAny, algCGI, protected, disabled );
-            if ( rc == 0 )
-            {
-                rc = VectorAppend ( algs, NULL, cgi );
-                if ( rc == 0 )
-                {
-                    ++ self -> num_app_vols [ appAny ];
-                    return 0;
-                }
-            }
-        }
-        else for ( i = 0; i < count && rc == 0; ++ i )
-        {
-            const char *appname;
-            rc = KNamelistGet ( appnames, i, & appname );
-            if ( rc == 0 )
-            {
-                const KConfigNode *app;
-                rc = KConfigNodeOpenNodeRead ( apps, & app, appname );
-                if ( rc == 0 )
-                {
-                    VResolverAppID app_id = appUnknown;
-                    if ( strcmp ( appname, "refseq" ) == 0 )
-                        app_id = appREFSEQ;
-                    else if ( strcmp ( appname, "sra" ) == 0 )
-                        app_id = appSRA;
-                    else if ( strcmp ( appname, "wgs" ) == 0 )
-                        app_id = appWGS;
-
-                    rc = VResolverLoadApp ( self, algs, root, ticket, allow_cache, app_id,
-                        & self -> num_app_vols [ app_id ], app, resolver_cgi, protected, disabled, caching );
-
-                    KConfigNodeRelease ( app );
-                }
-            }
-        }
-        KNamelistRelease ( appnames );
-    }
-    return rc;
-}
-
-/* LoadRepo
- *
- *    repository
- *        = [ <disabled> ] [ <cache-enabled> ] <root> <app-group> ;
- *
- *    disabled
- *        = "disabled" '=' ( "true" | "false" ) ;
- *
- *    cache-enabled
- *        = "cache-enabled" '=' ( "true" | "false" ) ;
- *
- *    root
- *        = "root" '=' PATH ;
- *
- *    app-group
- *        = "apps" <app-block>* ;
- */
-static
-rc_t VResolverLoadRepo ( VResolver *self, Vector *algs, const KConfigNode *repo,
-    const String *ticket, VResolverCacheAllow allow_cache, bool protected )
-{
-    const KConfigNode *node;
-    bool caching, resolver_cgi;
-
-    /* test for disabled repository */
-    bool disabled = false;
-    rc_t rc = KConfigNodeOpenNodeRead ( repo, & node, "disabled" );
-    if ( rc == 0 )
-    {
-        rc = KConfigNodeReadBool ( node, & disabled );
-        KConfigNodeRelease ( node );
-
-        /* don't bother recording local, disabled repositories */
-        if ( rc == 0 && disabled && algs == & self -> local )
-            return 0;
-    }
-
-    /* check for caching */
-    caching = allow_cache;
-    if ( allow_cache )
-    {
-        rc = KConfigNodeOpenNodeRead ( repo, & node, "cache-enabled" );
-        if ( rc == 0 )
-        {
-            rc = KConfigNodeReadBool ( node, & caching );
-            KConfigNodeRelease ( node );
-            if ( rc != 0 )
-                caching = false;
-        }
-    }
-
-    /* cache-capable repositories cannot be remote resolvers */
-    resolver_cgi = false;
-    if ( allow_cache )
-        rc = KConfigNodeOpenNodeRead ( repo, & node, "root" );
-    else
-    {
-        /* check for specific resolver CGI */
-        rc = KConfigNodeOpenNodeRead ( repo, & node, "resolver-cgi" );
-        if ( rc == 0 )
-            resolver_cgi = true;
-        /* or get the repository root */
-        else if ( GetRCState ( rc ) == rcNotFound )
-        {
-            rc = KConfigNodeOpenNodeRead ( repo, & node, "root" );
-        }
-    }
-    if ( GetRCState ( rc ) == rcNotFound )
-        rc = 0;
-    else if ( rc == 0 )
-    {
-        /* read root as String */
-        String *root;
-        rc = KConfigNodeReadString ( node, & root );
-        KConfigNodeRelease ( node );
-        if ( GetRCState ( rc ) == rcNotFound )
-            rc = 0;
-        else if ( rc == 0 )
-        {
-            /* perform a bit of cleanup on root */
-            while ( root -> size != 0 && root -> addr [ root -> size - 1 ] == '/' )
-            {
-                /* this is terribly nasty, but known to be safe */
-                -- root -> len;
-                -- root -> size;
-            }
-
-            /* store string on VResolver for management purposes,
-               pass the loaned reference to sub-structures */
-            rc = VectorAppend ( & self -> roots, NULL, root );
-            if ( rc != 0 )
-                StringWhack ( root );
-            else
-            {
-                /* open the "apps" sub-node */
-                rc = KConfigNodeOpenNodeRead ( repo, & node, "apps" );
-                if ( rc == 0 )
-                {
-                    rc = VResolverLoadApps ( self, algs, root, ticket,
-                        allow_cache, node, resolver_cgi, protected, disabled, caching );
-                    KConfigNodeRelease ( node );
-                }
-                else if ( GetRCState ( rc ) == rcNotFound )
-                {
-                    rc = 0;
-                    if ( resolver_cgi )
-                    {
-                        VResolverAlg *cgi;
-                        rc = VResolverAlgMake ( & cgi, root, appAny, algCGI, protected, disabled );
-                        if ( rc == 0 )
-                        {
-                            cgi -> ticket = ticket;
-
-                            rc = VectorAppend ( algs, NULL, cgi );
-                            if ( rc == 0 )
-                            {
-                                ++ self -> num_app_vols [ appAny ];
-                                return 0;
-                            }
-                        }
-
-                        VResolverAlgWhack ( cgi, NULL );
-                    }
-                }
-            }
-        }
-    }
-
-    return rc;
-}
-
-
-/* LoadNamedRepo
- *
- *    repository-block
- *        = ID <repository> ;
- */
-static
-rc_t VResolverLoadNamedRepo ( VResolver *self, Vector *algs, const KConfigNode *sub,
-    const String *ticket, const char *name, VResolverCacheAllow allow_cache, bool protected )
-{
-    const KConfigNode *repo;
-    rc_t rc = KConfigNodeOpenNodeRead ( sub, & repo, name );
-    if ( GetRCState ( rc ) == rcNotFound )
-        rc = 0;
-    else if ( rc == 0 )
-    {
-        rc = VResolverLoadRepo ( self, algs, repo, ticket, allow_cache, protected );
-        KConfigNodeRelease ( repo );
-    }
-    return rc;
-}
-
-/* LoadSubCategory
- *
- *    sub-category-block
- *        = <sub-category> <repository-block>* ;
- *
- *    sub-category
- *        = "main" | "aux" | "protected"
- *
- *    repository-block
- *        = ID <repository> ;
- */
-static
-rc_t VResolverLoadSubCategory ( VResolver *self, Vector *algs, const KConfigNode *kfg,
-    const String *ticket, const char *sub_path, VResolverCacheAllow allow_cache, bool protected )
-{
-    const KConfigNode *sub;
-    rc_t rc = KConfigNodeOpenNodeRead ( kfg, & sub, sub_path );
-    if ( GetRCState ( rc ) == rcNotFound )
-        rc = 0;
-    else if ( rc == 0 )
-    {
-        KNamelist *children;
-        rc = KConfigNodeListChildren ( sub, & children );
-        if ( rc == 0 )
-        {
-            uint32_t i, count;
-            rc = KNamelistCount ( children, & count );
-            for ( i = 0; i < count && rc == 0; ++ i )
-            {
-                const char *name;
-                rc = KNamelistGet ( children, i, & name );
-                if ( rc == 0 )
-                    rc = VResolverLoadNamedRepo ( self, algs, sub, ticket, name, allow_cache, protected );
-            }
-
-            KNamelistRelease ( children );
-        }
-        KConfigNodeRelease ( sub );
-    }
-    return rc;
-}
-
-/* LoadProtected
- *  special function to handle single, active protected workspace
- */
-static
-rc_t VResolverLoadProtected ( VResolver *self, const KConfigNode *kfg, const char *rep_name )
-{
-    const KConfigNode *repo;
-    rc_t rc = KConfigNodeOpenNodeRead ( kfg, & repo, "user/protected/%s", rep_name );
-    if ( GetRCState ( rc ) == rcNotFound )
-        rc = 0;
-    else if ( rc == 0 )
-    {
-        rc = VResolverLoadRepo ( self, & self -> local, repo, NULL, cacheAllow, true );
-        KConfigNodeRelease ( repo );
-    }
-    return rc;
-}
-
-/* LoadLegacyRefseq
- *  load refseq information from KConfig
- *
- *  there are two legacy versions being supported
- *
- *    legacy-refseq
- *        = "refseq" <legacy-vol-or-repo> ;
- *
- *    legacy-vol-or-repo
- *        = "volumes" '=' <path-list>
- *        | <legacy-refseq-repo> <legacy-refseq-vols>
- *        ;
- */
-static
-rc_t VResolverLoadLegacyRefseq ( VResolver *self, const KConfig *cfg )
-{
-    const KConfigNode *vols;
-    rc_t rc = KConfigOpenNodeRead ( cfg, & vols, "/refseq/paths" );
-    if ( GetRCState ( rc ) == rcNotFound )
-        rc = 0;
-    else if ( rc == 0 )
-    {
-        String *vol_list;
-        rc = KConfigNodeReadString ( vols, & vol_list );
-        if ( rc == 0 )
-        {
-            const bool protected = false;
-            const bool disabled = false;
-            const bool caching = true;
-            rc = VResolverLoadAlgVolumes ( & self -> local, NULL, NULL, cacheAllow,
-                appREFSEQ, algREFSEQ,  & self -> num_app_vols [ appREFSEQ ],
-                vol_list, protected, disabled, caching );
-            StringWhack ( vol_list );
-        }
-        KConfigNodeRelease ( vols );
-    }
-
-    return rc;
-}
-
-
-/* ForceRemoteRefseq
- *  makes sure there is a remote source of refseq
- *  or else adds a hard-coded URL to NCBI
- */
-static
-rc_t VResolverForceRemoteRefseq ( VResolver *self )
-{
-    rc_t rc;
-    bool found;
-    String local_root;
-    const String *root;
-
-    uint32_t i, count = VectorLength ( & self -> remote );
-    for ( found = false, i = 0; i < count; ++ i )
-    {
-        VResolverAlg *alg = ( VResolverAlg* ) VectorGet ( & self -> remote, i );
-        if ( alg -> app_id == appREFSEQ )
-        {
-            found = true;
-            if ( alg -> disabled )
-                alg -> disabled = false;
-        }
-    }
-
-    if ( found )
-        return 0;
-
-    if ( self -> num_app_vols [ appAny ] != 0 )
-    {
-        for ( i = 0; i < count; ++ i )
-        {
-            VResolverAlg *alg = ( VResolverAlg* ) VectorGet ( & self -> remote, i );
-            if ( alg -> app_id == appAny )
-            {
-                found = true;
-                if ( alg -> disabled )
-                    alg -> disabled = false;
-            }
-        }
-    }
-
-    if ( found )
-        return 0;
-
-    /* create one from hard-coded constants */
-    StringInitCString ( & local_root, "http://ftp-trace.ncbi.nlm.nih.gov/sra" );
-    rc = StringCopy ( & root, & local_root );    
-    if ( rc == 0 )
-    {
-        rc = VectorAppend ( & self -> roots, NULL, root );
-        if ( rc != 0 )
-            StringWhack ( root );
-        else
-        {
-            String vol_list;
-            const bool protected = false;
-            const bool disabled = false;
-            const bool caching = false;
-            StringInitCString ( & vol_list, "refseq" );
-            rc = VResolverLoadAlgVolumes ( & self -> remote, root, NULL, cacheDisallow,
-                appREFSEQ, algREFSEQ, & self -> num_app_vols [ appREFSEQ ],
-                & vol_list, protected, disabled, caching );
-        }
-    }
-
-    return rc;
-}
-
-
-/* GetDownloadTicket
- *  if we are within a working environment that has a download ticket,
- *  capture it here and add that local repository into the mix
- */
-static
-const String *VResolverGetDownloadTicket ( const VResolver *self, const KConfig *cfg,
-    char *buffer, size_t bsize )
-{
-    const String *ticket = NULL;
-    const KRepositoryMgr *rmgr;
-    rc_t rc = KConfigMakeRepositoryMgrRead ( cfg, & rmgr );
-    if ( rc == 0 )
-    {
-        const KRepository *protected;
-        rc = KRepositoryMgrCurrentProtectedRepository ( rmgr, & protected );
-        if ( rc == 0 )
-        {
-            rc = KRepositoryName ( protected, buffer, bsize, NULL );
-            if ( rc == 0 )
-            {
-                size_t ticsz;
-                char ticbuf [ 256 ];
-                rc = KRepositoryDownloadTicket ( protected, ticbuf, sizeof ticbuf, & ticsz );
-                if ( rc == 0 )
-                {
-                    String tic;
-                    StringInit ( & tic, ticbuf, ticsz, ( uint32_t ) ticsz );
-                    rc = StringCopy ( & ticket, & tic );
-                }
-            }
-
-            KRepositoryRelease ( protected );
-        }
-
-        KRepositoryMgrRelease ( rmgr );
-    }
-    return ticket;
-}
-
-
-/* ForceRemoteProtected
- *  makes sure there is a remote CGI
- */
-static
-rc_t VResolverForceRemoteProtected ( VResolver *self )
-{
-    rc_t rc;
-    const String *root;
-
-    /* create one from hard-coded constants */
-    String cgi_root;
-    StringInitCString ( & cgi_root, "http://www.ncbi.nlm.nih.gov/Traces/names/names.cgi" );
-    rc = StringCopy ( & root, & cgi_root );    
-    if ( rc == 0 )
-    {
-        rc = VectorAppend ( & self -> roots, NULL, root );
-        if ( rc != 0 )
-            StringWhack ( root );
-        else
-        {
-            const bool protected = true;
-            const bool disabled = false;
-
-            VResolverAlg *cgi;
-            rc = VResolverAlgMake ( & cgi, root, appAny, algCGI, protected, disabled );
-            if ( rc == 0 )
-            {
-                cgi -> ticket = self -> ticket;
-
-                rc = VectorAppend ( & self -> remote, NULL, cgi );
-                if ( rc == 0 )
-                {
-                    ++ self -> num_app_vols [ appAny ];
-                    return 0;
-                }
-            }
-
-            VResolverAlgWhack ( cgi, NULL );
-        }
-    }
-
-    return rc;
-}
-
-
-/* Load
- *  load the respository from ( current ) KConfig
- *
- *  using pseudo BNF, it looks like this:
- *
- *    repositories
- *        = "repository" <category-block>* ;
- *
- *    category-block
- *        = <category> <sub-category-block>* ;
- *
- *    category
- *        = "remote" | "site" | "user" ;
- *
- *    sub-category-block
- *        = <sub-category> <repository-block>* ;
- *
- *    sub-category
- *        = "main" | "aux" | "protected"
- */
-static
-rc_t VResolverLoad ( VResolver *self, const KConfig *cfg )
-{
-    bool have_remote_protected = false;
-
-    const KConfigNode *kfg;
-    rc_t rc = KConfigOpenNodeRead ( cfg, & kfg, "repository" );
-    if ( GetRCState ( rc ) == rcNotFound )
-        rc = 0;
-    else if ( rc == 0 )
-    {
-        /* if the user is inside of a protected workspace, load it first */
-        char buffer [ 256 ];
-        self -> ticket = VResolverGetDownloadTicket ( self, cfg, buffer, sizeof buffer );
-        if ( self -> ticket != NULL )
-            rc = VResolverLoadProtected ( self, kfg, buffer );
-
-        /* now load user public repositories */
-        if ( rc == 0 )
-            rc = VResolverLoadSubCategory ( self, & self -> local, kfg, NULL, "user/main", cacheAllow, false );
-        if ( rc == 0 )
-            rc = VResolverLoadSubCategory ( self, & self -> local, kfg, NULL, "user/aux", cacheAllow, false );
-
-        /* load any site repositories */
-        if ( rc == 0 )
-            rc = VResolverLoadSubCategory ( self, & self -> local, kfg, NULL, "site/main", cacheDisallow, false );
-        if ( rc == 0 )
-            rc = VResolverLoadSubCategory ( self, & self -> local, kfg, NULL, "site/aux", cacheDisallow, false );
-
-        /* if within a protected workspace, load protected remote repositories */
-        if ( rc == 0 && self -> ticket != NULL )
-        {
-            rc = KNSManagerMake ( ( KNSManager** ) & self -> kns );
-            if ( rc == 0 )
-            {
-                uint32_t entry_vols = VectorLength ( & self -> remote );
-                rc = VResolverLoadSubCategory ( self, & self -> remote, kfg,
-                    self -> ticket, "remote/protected", cacheDisallow, true );
-                have_remote_protected = VectorLength ( & self -> remote ) > entry_vols;
-            }
-        }
-
-        /* load any remote repositories */
-        if ( rc == 0 )
-            rc = VResolverLoadSubCategory ( self, & self -> remote, kfg, NULL, "remote/main", cacheDisallow, false );
-        if ( rc == 0 )
-            rc = VResolverLoadSubCategory ( self, & self -> remote, kfg, NULL, "remote/aux", cacheDisallow, false );
-
-        KConfigNodeRelease ( kfg );
-
-        /* recover from public remote repositories using resolver CGI */
-        if ( self -> kns == NULL && self -> num_app_vols [ appAny ] != 0 )
-            rc = KNSManagerMake ( ( KNSManager** ) & self -> kns );
-    }
-
-    if ( rc == 0 && self -> num_app_vols [ appAny ] == 0 )
-    {
-        bool has_current_refseq = true;
-
-        /* AT THIS POINT, a current configuration will have something.
-           But, older out-of-date configurations may exist and need special handling. */
-        if ( self -> num_app_vols [ appREFSEQ ] == 0 )
-        {
-            has_current_refseq = false;
-            rc = VResolverLoadLegacyRefseq ( self, cfg );
-        }
-
-        /* now, one more special case - for external users
-           who had legacy refseq configuration but nothing for SRA,
-           force existence of a remote refseq access */
-        if ( rc == 0
-             && ! has_current_refseq
-             && self -> num_app_vols [ appREFSEQ ] != 0
-             && self -> num_app_vols [ appSRA ] == 0 )
-        {
-            rc = VResolverForceRemoteRefseq ( self );
-        }
-    }
-
-    if ( rc == 0 && self -> ticket != NULL && ! have_remote_protected )
-        rc = VResolverForceRemoteProtected ( self );
-
-    return rc;
-}
-
-
-/* Make
- *  internal factory function
- */
-static
-rc_t VResolverMake ( VResolver ** objp, const KDirectory *wd, const KConfig *kfg )
-{
-    rc_t rc;
-
-    VResolver *obj = calloc ( 1, sizeof * obj );
-    if ( obj == NULL )
-        rc = RC ( rcVFS, rcMgr, rcCreating, rcMemory, rcExhausted );
-    else
-    {
-        VectorInit ( & obj -> roots, 0, 8 );
-        VectorInit ( & obj -> local, 0, 8 );
-        VectorInit ( & obj -> remote, 0, 8 );
-        obj -> wd = wd;
-
-        KRefcountInit ( & obj -> refcount, 1, "VResolver", "make", "resolver" );
-
-        rc = VResolverLoad ( obj, kfg );
-        if ( rc == 0 )
-        {
-            * objp = obj;
-            return 0;
-        }
-
-        VResolverWhack ( obj );
-    }
-
-    return rc;
-}
-
-/* Make
- *  ask the VFS manager to make a resolver
- */
-LIB_EXPORT
-rc_t CC VFSManagerMakeResolver ( const VFSManager * self,
-    VResolver ** new_resolver, const KConfig * cfg )
-{
-    rc_t rc;
-
-    if ( new_resolver == NULL )
-        rc = RC ( rcVFS, rcMgr, rcCreating, rcParam, rcNull );
-    else
-    {
-        if ( self == NULL )
-            rc = RC ( rcVFS, rcMgr, rcCreating, rcSelf, rcNull );
-        else if ( cfg == NULL )
-            rc = RC ( rcVFS, rcMgr, rcCreating, rcParam, rcNull );
-        else
-        {
-            KDirectory *wd;
-            rc = VFSManagerGetCWD ( self, & wd );
-            if ( rc == 0 )
-            {
-                rc = VResolverMake ( new_resolver, wd, cfg );
-                if ( rc == 0 )
-                    return 0;
-
-                KDirectoryRelease ( wd );
-            }
-        }
-
-        *new_resolver = NULL;
-    }
-
-    return rc;
-}
diff --git a/libs/vfs/srapath.c b/libs/vfs/srapath.c
deleted file mode 100644
index eb1ae28..0000000
--- a/libs/vfs/srapath.c
+++ /dev/null
@@ -1,1424 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <sra/path-extern.h>
-
-struct SRARunlist;
-#define KNAMELIST_IMPL struct SRARunlist
-#include <klib/impl.h>
-
-struct NCBISRAPath;
-#define SRAPATH_IMPL struct NCBISRAPath
-#include <sra/impl.h>
-
-#include "libsrapath.vers.h"
-
-#include <vfs/manager.h>
-#include <sra/srapath.h>
-#include <kfs/directory.h>
-#include <kfs/file.h>
-#include <kfs/mmap.h>
-#include <kfs/dyload.h>
-#include <klib/container.h>
-#include <klib/vector.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-#include <kfg/config.h>
-#include <kfg/kfg-priv.h>
-#include <klib/debug.h>
-#include <klib/log.h>
-#include <os-native.h>
-#include <sysalloc.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "path-priv.h"
-
-/*--------------------------------------------------------------------------
- * SRAPathString
- */
-enum
-{
-    alg_none,
-    alg_ncbi,
-    alg_ddbj,
-    alg_ebi,
-    alg_refseq,
-    alg_wgs
-};
-
-typedef struct SRAPathString SRAPathString;
-struct SRAPathString
-{
-    DLNode n;
-    uint8_t alg;
-    char path [ 1 ];
-};
-
-/* Whack
- */
-static
-void CC SRAPathStringWhack ( DLNode *n, void *ignore )
-{
-    free ( n );
-}
-
-/* Make
- */
-static
-rc_t SRAPathStringMake ( DLList *list, const char *path, size_t sz, uint8_t alg )
-{
-    SRAPathString *s = (SRAPathString*) malloc ( sizeof * s + sz );
-    if ( s == NULL )
-        return RC ( rcSRA, rcMgr, rcUpdating, rcMemory, rcExhausted );
-
-    s -> alg = alg;
-    string_copy ( s -> path, sz + 1, path, sz );
-    DLListPushTail ( list, & s -> n );
-
-    return 0;
-}
-
-
-/* Find
- */
-typedef struct SRAPathFindInfo SRAPathFindInfo;
-struct SRAPathFindInfo
-{
-    const char *path;
-    size_t size;
-    uint8_t alg;
-    bool found;
-};
-
-static
-bool CC SRAPathStringFind ( DLNode *n, void *data )
-{
-    const SRAPathString *p = ( const SRAPathString* ) n;
-    SRAPathFindInfo *pb = ( SRAPathFindInfo* ) data;
-    if ( memcmp ( p -> path, pb -> path, pb -> size ) == 0 )
-    {
-        if ( p -> path [ pb -> size ] == 0 )
-        {
-            pb -> alg = p -> alg;
-            return pb -> found = true;
-        }
-    }
-    return false;
-}
-
-/*--------------------------------------------------------------------------
- * NCBIRepository
- *  represents a repository: replication server(s) / volume(s)
- */
-typedef struct NCBIRepository NCBIRepository;
-struct NCBIRepository
-{
-    DLNode n;
-
-    uint8_t type; /* repository type: alg_ncbi (sra: ncbi/ebi/ddbj), alg_wgs, alg_refseq*/
-
-    /* replication servers */
-    DLList repsrv;
-
-    /* volumes upon each repserver */
-    DLList vols;
-};
-/* Init
- */
-static
-rc_t CC SRARepoMake(NCBIRepository** repo)
-{
-    *repo = (NCBIRepository*)malloc(sizeof(NCBIRepository));
-    if (* repo == 0)
-    {
-        return RC ( rcSRA, rcMgr, rcInitializing, rcMemory, rcExhausted );
-    }
-    (*repo)->type = alg_ncbi;
-    (*repo)->n.next = NULL;
-    (*repo)->n.prev = NULL;
-    DLListInit(&(*repo)->repsrv);
-    DLListInit(&(*repo)->vols);
-    return 0;
-}
-/* Whack
- */
-static
-void CC SRARepoWhack ( DLNode *n, void *ignore )
-{
-    if (n != NULL)
-    {
-        DLListWhack ( & ((NCBIRepository*) n) -> repsrv, SRAPathStringWhack, NULL );
-        DLListWhack ( & ((NCBIRepository*) n) -> vols, SRAPathStringWhack, NULL );
-        free ( (NCBIRepository*) n );
-    }
-}
-
-static 
-const char* AlgToStr(uint8_t alg)
-{
-    switch (alg)
-    {
-    case alg_ncbi: 
-    case alg_ddbj:
-    case alg_ebi: return "SRA";
-    case alg_wgs: return "WGS";
-    case alg_refseq: return "REFSEQ";
-    default: return "<unknown>";
-    }
-}
-
-
-static 
-void CC LogVolume( DLNode *n, void *data )
-{
-    const SRAPathString* self = (const SRAPathString*)n;
-    PATH_DEBUG (("        \"%s\", type=%s\n", 
-                  self->path,
-                  AlgToStr(self->alg)));
-}
-
-static 
-void CC LogServer( DLNode *n, void *data )
-{
-    const SRAPathString* self = (const SRAPathString*)n;
-    PATH_DEBUG (("        \"%s\"\n", self->path));
-}
-
-static 
-void CC LogRepository ( DLNode *n, void *data )
-{
-    if (n != NULL)
-    {
-        const NCBIRepository* self = (const NCBIRepository*)n;
-        PATH_DEBUG (("    type=%s\n", AlgToStr(self->type)));
-        PATH_DEBUG (("    servers:\n"));
-        DLListForEach ( & self->repsrv, false, LogServer, NULL );
-        PATH_DEBUG (("    volumes:\n"));
-        DLListForEach ( & self->vols, false, LogVolume, NULL );
-    }
-}
-
-/*--------------------------------------------------------------------------
- * NCBISRAPath
- *  manages accession -> path conversion
- */
-typedef struct NCBISRAPath NCBISRAPath;
-struct NCBISRAPath
-{
-    struct SRAPath dad;
-
-    /* working directory */
-    const KDirectory *dir;
-
-    /* repositories */
-    DLList repos;
-    NCBIRepository* dflt_repo; /* default repository (likely to be removed in the future versions) */ 
-
-    atomic32_t refcount;
-};
-
-static void LogPathInfo(const NCBISRAPath* self)
-{
-    PATH_DEBUG (("NCBISRAPath configuration:\n"));
-    DLListForEach ( & self->repos, false, LogRepository, NULL );
-    PATH_DEBUG (("default repository:\n"));
-    LogRepository( (DLNode*) self->dflt_repo, NULL );
-}
-
-/* Whack
- */
-static
-rc_t SRAPathWhack ( NCBISRAPath *self )
-{
-    rc_t rc = KDirectoryRelease ( self -> dir );
-    if ( rc == 0 )
-    {
-        DLListWhack ( & self -> repos, SRARepoWhack, NULL );
-        SRARepoWhack ( (DLNode*) self -> dflt_repo, NULL );
-        free ( self );
-    }
-    return rc;
-}
-
-
-/* AddRef
- * Release
- */
-static
-rc_t CC NCBISRAPathAddRef ( const NCBISRAPath *cself )
-{
-    atomic32_inc ( & ( ( NCBISRAPath* ) cself ) -> refcount );
-    return 0;
-}
-
-static
-rc_t CC NCBISRAPathRelease ( const NCBISRAPath *cself )
-{
-    NCBISRAPath *self = ( NCBISRAPath* ) cself;
-    if ( atomic32_dec_and_test ( & self -> refcount ) )
-        return SRAPathWhack ( self );
-    return 0;
-}
-
-
-/* Version
- *  returns the library version
- */
-static
-rc_t CC NCBISRAPathVersion ( const NCBISRAPath *self, uint32_t *version )
-{
-    * version = LIBSRAPATH_VERS;
-    return 0;
-}
-
-
-/* Clear
- *  forget existing server and volume paths for the default repository
- */
-static
-rc_t CC NCBISRAPathClear ( NCBISRAPath *self )
-{
-    DLListWhack ( & self -> dflt_repo -> repsrv, SRAPathStringWhack, NULL );
-    DLListWhack ( & self -> dflt_repo -> vols, SRAPathStringWhack, NULL );
-    DLListInit ( & self -> dflt_repo -> repsrv );
-    DLListInit ( & self -> dflt_repo -> vols );
-
-    return 0;
-}
-
-
-/* AddPath
- *  add an alternate replication or volume path
- *
- *  "path" [ IN ] and "size" [ IN ] - sets a search path
- *
- *  "alt" [ IN ] - use std or alternate volume path algorithm
- */
-static
-rc_t SRAPathAddSubPath ( DLList *list, const char *path, size_t size, uint8_t alg )
-{
-    /* see if it's already there */
-    SRAPathFindInfo pb;
-    pb . path = path;
-    pb . size = size;
-    pb . found = 0;
-    DLListDoUntil ( list, 0, SRAPathStringFind, & pb );
-    if ( pb . found )
-        return 0;
-
-    /* create a new one */
-    return SRAPathStringMake ( list, path, size, alg );
-}
-
-static
-rc_t SRAPathAddPath ( DLList *list, const char *path, uint8_t alg )
-{
-    rc_t rc;
-    if ( path == NULL )
-        rc = RC ( rcSRA, rcMgr, rcUpdating, rcString, rcNull );
-    else if ( path [ 0 ] == 0 )
-        rc = RC ( rcSRA, rcMgr, rcUpdating, rcString, rcEmpty );
-    else
-    {
-        /* treat path as a Unix-style multi-path */
-        size_t size = string_size ( path );
-        while ( 1 )
-        {
-            /* find separator */
-            const char *sep = string_chr ( path, size, ':' );
-            if ( sep == NULL )
-                break;
-
-            /* add sub-path */
-            rc = SRAPathAddSubPath ( list, path, sep - path, alg );
-            if ( rc != 0 )
-                return rc;
-
-            /* consume ':' */
-            ++ sep;
-
-            /* pop from string */
-            size -= sep - path;
-            path = sep;
-        }
-
-        return SRAPathAddSubPath ( list, path, size, alg );
-    }
-    return rc;
-}
-
-/* AddRepPath
- *  add a replication path to a repository
- *
- *  "rep" [ IN ] - NUL-terminated server search path
- *  may be a compound path with ':' separator characters, e.g.
- *  "/panfs/traces01:/panfs/traces31"
- *
- *  NB - servers are searched in the order provided,
- *  first to last, until one of them satisfies a request,
- *  at which time the successful server is placed at the
- *  head of the search path.
- */
-static
-rc_t CC NCBISRAPathAddRepPath ( NCBIRepository* repo, const char *rep )
-{
-    return SRAPathAddPath ( & repo -> repsrv, rep, alg_none );
-}
-static
-rc_t CC NCBISRAPathAddRepPathDefault ( NCBISRAPath *self, const char *rep )
-{
-    return NCBISRAPathAddRepPath ( self -> dflt_repo, rep );
-}
-
-/* AddVolPath
- *  add a volume path to the default repository
- *
- *  "vol" [ IN ] - NUL-terminated volume search path
- *  may be a compound path with ':' separator characters, e.g.
- *  "sra2:sra1:sra0"
- *
- *  NB - volumes are searched in the order provided,
- *  first to last. they are never re-ordered.
- */
-static
-rc_t SRAPathAddAlgVolPath ( NCBIRepository* repo, const char *vol, uint8_t alg )
-{
-    return SRAPathAddPath ( & repo -> vols, vol, alg );
-}
-static
-rc_t CC NCBISRAPathAddVolPathDefault ( NCBISRAPath *self, const char *vol )
-{
-    return SRAPathAddAlgVolPath ( self -> dflt_repo, vol, alg_ncbi);
-}
-
-/* Config
- *  configure an existing path manager
- */
-static
-rc_t SRAPathConfigValue ( const KConfig *kfg, const char *node_path,
-    char *value, size_t value_size, const char *dflt )
-{
-    const KConfigNode *node;
-    rc_t rc = KConfigOpenNodeRead ( kfg, & node, node_path );
-    if ( rc == 0 )
-    {
-        size_t num_read, remaining;
-        rc = KConfigNodeRead ( node, 0, value, value_size - 1, & num_read,  & remaining );
-        if ( rc == 0 )
-        {
-            if ( remaining != 0 )
-                rc = RC ( rcSRA, rcMgr, rcConstructing, rcString, rcExcessive );
-            else
-                value [ num_read ] = 0;
-        }
-
-        KConfigNodeRelease ( node );
-    }
-
-    if ( rc != 0 )
-    {
-        if ( dflt != NULL && dflt [ 0 ] != 0 )
-        {
-            size_t num_read = string_copy_measure ( value, value_size, dflt );
-            rc = 0;
-            if ( num_read == value_size )
-                rc = RC ( rcSRA, rcMgr, rcConstructing, rcString, rcExcessive );
-        }
-        else
-	    	value[0] = 0;     
-    }
-    return rc;
-}
-
-static 
-rc_t ConfigVolume(NCBIRepository* repo, KConfig * kfg, const char* keyPref, const char* keySuff, uint8_t alg )
-{
-    char value [ 4096 ];
-    char key [ 4096 ];
-    size_t pSize = string_size(keyPref);
-    size_t sSize = string_size(keySuff);
-    if ( pSize + sSize >= sizeof(key))
-    {
-        return RC ( rcSRA, rcMgr, rcConstructing, rcString, rcExcessive );
-    }
-    string_copy(key, sizeof(key), keyPref, pSize);
-    string_copy(key + pSize, sizeof(key) - pSize, keySuff, sSize);
-    key[pSize+sSize] = 0;
-    value[0] = '\0';
-    if ( SRAPathConfigValue ( kfg, key, value, sizeof value, NULL ) == 0 )        
-        SRAPathAddAlgVolPath ( repo, value, alg );
-    return 0;
-}
-
-static
-rc_t ConfigRepo(KConfig * kfg, const char *dflt, const char* reps, const char* volPref, uint8_t type, NCBIRepository** repo)
-{
-    char value [ 4096 ] = "";
-    rc_t rc;
-
-    /* set up a new repo */ 
-    rc = SRARepoMake(repo);
-    if ( rc == 0 )
-    {
-        (*repo)->type = type;
-
-        /* set up servers */
-        if ( SRAPathConfigValue ( kfg, reps, value, sizeof value, dflt ) == 0 )
-            NCBISRAPathAddRepPath ( *repo, value );
-
-        if ( type == alg_ncbi )
-        {
-            /* set up NCBI volumes */
-            rc = ConfigVolume( *repo, kfg, volPref, "/ncbi/volumes", alg_ncbi );
-
-            /* set up EBI volumes */
-            if (rc == 0)
-                rc = ConfigVolume( *repo, kfg, volPref, "/ebi/volumes", alg_ebi );
-
-            /* set up DDBJ volumes */
-            if (rc == 0)
-                rc = ConfigVolume( *repo, kfg, volPref, "/ddbj/volumes", alg_ddbj );
-        }
-        else if (rc == 0)
-        {
-                rc = ConfigVolume( *repo, kfg, volPref, "/volumes", type);
-        }
-    }
-    return rc;
-}
-
-static
-rc_t ConfigRepoSet(DLList* repos, KConfig * kfg, const char* kfgPath, const char *dflt, uint8_t type)
-{
-    const KConfigNode *node;
-
-    rc_t rc = KConfigOpenNodeRead ( kfg, & node, kfgPath );
-    if ( rc == 0 )
-    {
-        KNamelist* children;
-        rc = KConfigNodeListChild ( node, &children );
-        if ( rc == 0 )
-        {
-            uint32_t count;
-            rc = KNamelistCount ( children, &count );
-            if ( rc == 0 )
-            {
-                uint32_t i;
-                for (i = 0; i < count; ++i)
-                {
-                    const char* name;
-                    rc = KNamelistGet ( children, i, &name );
-                    if ( rc == 0 )
-                    {
-                        #define BufSize 4096
-                        char buf[ BufSize ];
-                        size_t bSize = string_size(kfgPath);
-                        string_copy(buf, BufSize, kfgPath, bSize);
-                        if (bSize + string_size(name) < sizeof(buf))
-                        {
-                            NCBIRepository* repo;
-                            string_copy(buf + bSize, sizeof(buf) - bSize, name, string_size(name) + 1);
-                            rc = ConfigRepo( kfg, dflt, buf, buf, type, &repo );
-                            DLListPushTail( repos, (DLNode*) repo );
-                        }
-                        #undef BufSize
-                    }
-                    else
-                    {
-                        rc = RC ( rcSRA, rcMgr, rcConstructing, rcString, rcExcessive );
-                    }
-                    if ( rc != 0 )
-                    {
-                        break;
-                    }
-                }
-            }
-            KNamelistRelease ( children );
-        }
-
-        KConfigNodeRelease ( node );
-    }
-    if (GetRCState(rc) == rcNotFound)
-    {
-        return 0;
-    }
-    return rc;
-}
-
-static
-rc_t SRAPathConfig ( NCBISRAPath *self )
-{
-    const char *dflt;
-    KConfig * kfg;
-    rc_t rc = KConfigMakeLocal ( & kfg, NULL );
-    assert ( ( rc == 0 && kfg != NULL ) || ( rc != 0 && kfg == NULL ) );
-
-    /* look for defaults */
-    dflt = getenv ( "SRAPATH" );
-
-    /* locate and configure all repositories */
-    if ( rc == 0 )
-        rc = ConfigRepoSet( & self->repos, kfg, "/sra/repository/", dflt, alg_ncbi );
-    if ( rc == 0 )
-        rc = ConfigRepoSet( & self->repos, kfg, "/wgs/repository/", dflt, alg_wgs );
-    if ( rc == 0 )
-        rc = ConfigRepoSet( & self->repos, kfg, "/refseq/repository/", dflt, alg_refseq );
-
-    if ( rc == 0 )
-    {   /* default repository for backwards compatibility */
-        rc = ConfigRepo( kfg, dflt, "sra/servers", "sra", alg_ncbi, &self->dflt_repo );
-
-        /* set up REFSEQ volumes */
-        if (rc == 0)
-            rc = ConfigVolume( self->dflt_repo, kfg, "", "/refseq/volumes", alg_refseq );
-
-        /* set up WGS volumes */
-        if (rc == 0)
-            rc = ConfigVolume( self->dflt_repo, kfg, "sra", "/wgs/volumes", alg_wgs );
-    }
-
-    LogPathInfo(self);
-
-    /* kfg may be NULL */        
-    KConfigRelease ( kfg );
-
-    return rc;
-}
-
-
-/* ParseRunAccession
- *  accession is a string matching <prefix><number>
- *  extract prefix length and accession number
- */
-static
-rc_t SRAPathParseRunAccession ( const char *accession, uint32_t *prefix, uint32_t *number )
-{
-    char *end;
-    uint32_t i;
-
-    for ( i = 0; accession [ i ] != 0; ++ i )
-    {
-        if ( isdigit ( accession [ i ] ) )
-            break;
-    }
-
-    if ( i == 0 )
-        return RC ( rcSRA, rcMgr, rcResolving, rcPath, rcInvalid );
-
-    * prefix = i;
-    * number = ( uint32_t ) strtoul ( & accession [ i ], & end, 10 );
-
-    if (( end [ 0 ] == 0 ) || ( end [ 0 ] == '.' ))
-    {
-        return 0;
-    }
-    return RC ( rcSRA, rcMgr, rcResolving, rcPath, rcInvalid );
-}
-
-
-/* Full
- *  creates full path from server, volume & accession
- *
- *  "rep" [ IN ] - NUL terminated full path of replication
- *  server, e.g. "/panfs/traces01"
- *
- *  "vol" [ IN ] - NUL terminated relative path of volume,
- *  e.g. "sra2"
- *
- *  "accession" [ IN ] - NUL terminated run accession,
- *  e.g. "SRR000001"
- *
- *  "path" [ OUT ] and "path_max" [ IN ] - return buffer for
- *  NUL-terminated full path to accession.
- */
-static
-rc_t SRAPathFullInt ( const NCBISRAPath *self, const char *rep, const char *vol,
-    const char *accession, char *path, size_t path_max, size_t bank_size )
-{
-    /* pick apart accession */
-    uint32_t prefix, number;
-    rc_t rc = SRAPathParseRunAccession ( accession, & prefix, & number );
-    if ( rc == 0 )
-    {
-        size_t len;
-        size_t total = 0;
-        uint32_t bank = number / bank_size;
-
-        if ( rep [ 0 ] != 0 && vol [ 0 ] != 0 )
-        {
-            /* normally write all parts at once */
-            if ( rep [ strlen (rep) - 1 ] == '/') /* check for need or not a '/' between rep and vol */
-                rc= string_printf ( path, path_max, &len, "%s%s/%.*s/%06u/%s"
-                                 , rep
-                                 , vol
-                                 , ( int ) prefix, accession
-                                 , bank
-                                 , accession );
-            else
-                rc= string_printf  ( path, path_max, &len, "%s/%s/%.*s/%06u/%s"
-                                 , rep
-                                 , vol
-                                 , ( int ) prefix, accession
-                                 , bank
-                                 , accession );
-        }
-        else
-        {
-            /* allow for individual rep-server and volume parts */
-            if ( rep [ 0 ] != 0 )
-            {
-                rc = string_printf ( path, path_max, &len, "%s/", rep );
-                if ( rc != 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-            else if ( vol [ 0 ] != 0 )
-            {
-                rc = string_printf ( & path [ total ], path_max - total, &len, "%s/", vol );
-                if ( rc != 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-
-            /* append the accession */
-            rc = string_printf ( & path [ total ], path_max - total, &len, "%.*s/%06u/%s"
-                             , ( int ) prefix, accession
-                             , bank
-                             , accession );
-        }
-
-        /* common detection of buffer overflow */
-        if ( rc != 0 || ( total += len ) >= path_max )
-            rc = RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-    }
-
-    return rc;
-}
-
-static
-rc_t SRAPathFullEBI ( const NCBISRAPath *self, const char *rep, const char *vol,
-    const char *accession, char *path, size_t path_max )
-{
-    /* pick apart accession */
-    uint32_t prefix, number;
-    rc_t rc = SRAPathParseRunAccession ( accession, & prefix, & number );
-    if ( rc == 0 )
-    {
-        size_t len;
-        size_t total = 0;
-        uint32_t bank = number / 1000;
-
-        if ( rep [ 0 ] != 0 && vol [ 0 ] != 0 )
-        {
-            /* normally write all parts at once */
-            if ( rep [ strlen (rep) - 1 ] == '/') /* check for need or not a '/' between rep and vol */
-                rc= string_printf ( path, path_max, &len, "%s%s/%.*s/%.*s%03u/%s"
-                                 , rep
-                                 , vol
-                                 , ( int ) prefix, accession
-                                 , ( int ) prefix, accession
-                                 , bank
-                                 , accession );
-            else
-                rc= string_printf  ( path, path_max, &len, "%s/%s/%.*s/%.*s%03u/%s"
-                                 , rep
-                                 , vol
-                                 , ( int ) prefix, accession
-                                 , ( int ) prefix, accession
-                                 , bank
-                                 , accession );
-        }
-        else
-        {
-            /* allow for individual rep-server and volume parts */
-            if ( rep [ 0 ] != 0 )
-            {
-                rc = string_printf ( path, path_max, &len, "%s/", rep );
-                if ( rc < 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-            else if ( vol [ 0 ] != 0 )
-            {
-                rc = string_printf ( & path [ total ], path_max - total, &len, "%s/", vol );
-                if ( rc != 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-
-            /* append the accession */
-            rc = string_printf ( & path [ total ], path_max - total, &len, "%.*s/%.*s%03u/%s"
-                             , ( int ) prefix, accession
-                             , ( int ) prefix, accession
-                             , bank
-                             , accession );
-        }
-
-        /* common detection of buffer overflow */
-        if ( len < 0 || ( total += len ) >= path_max )
-            rc = RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-    }
-
-    return rc;
-}
-
-/*
-* Refseq-style accessions come in 2 naming flavors, flat or SRA-like.
-* If an accession with a flat name does not exist, use SRAPathFullInt to create an SRA-like path
-*/
-static
-rc_t SRAPathFullREFSEQ ( const NCBISRAPath *self, const char *rep, const char *vol,
-    const char *accession, char *path, size_t path_max )
-{
-    /* pick apart accession */
-    uint32_t prefix, number;
-    rc_t rc = SRAPathParseRunAccession ( accession, & prefix, & number );
-    if ( rc == 0 )
-    {
-        size_t len;
-        size_t total = 0;
-
-        if ( rep [ 0 ] != 0 && vol [ 0 ] != 0 )
-        {
-            /* normally write all parts at once */
-            if ( rep [ strlen (rep) - 1 ] == '/') /* check for need or not a '/' between rep and vol */
-                rc= string_printf ( path, path_max, &len, "%s%s/%s"
-                                 , rep
-                                 , vol
-                                 , accession );
-            else
-                rc= string_printf  ( path, path_max, &len, "%s/%s/%s"
-                                 , rep
-                                 , vol
-                                 , accession );
-        }
-        else
-        {
-            /* allow for individual rep-server and volume parts */
-            if ( rep [ 0 ] != 0 )
-            {
-                rc = string_printf ( path, path_max, &len, "%s/", rep );
-                if ( rc != 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-            else if ( vol [ 0 ] != 0 )
-            {
-                rc = string_printf ( & path [ total ], path_max - total, &len, "%s/", vol );
-                if ( rc != 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-
-            /* append the accession */
-            rc = string_printf ( & path [ total ], path_max - total, &len, "%s"
-                             , accession );
-        }
-
-        /* common detection of buffer overflow */
-        if ( rc != 0 || ( total += len ) >= path_max )
-            rc = RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-    }
-
-    return rc;
-}
-
-/*
- * Try to locate in RefSeq Archives:
- * check for pattern '(\w{4}\d{2})[\.\d]+'; the archive is $1
- * use the scheme "x-ncbi-legrefseq" for vfs to recognize special case
- */
-static
-rc_t SRAPathFullREFSEQArchive(NCBISRAPath const *self,
-                              char const rep[],
-                              char const vol[],
-                              char const accession[],
-                              char path[],
-                              size_t path_max
-                             )
-{
-    size_t const rep_sz = strlen(rep);
-    size_t const vol_sz = strlen(vol);
-    char const *const rep_sep = (rep_sz > 0 && rep[rep_sz - 1] != '/') ? "/" : "";
-    char const *const vol_sep = (vol_sz > 0 && vol[vol_sz - 1] != '/') ? "/" : "";
-    size_t sz;
-    unsigned i;
-    VFSManager *vfs;
-    rc_t rc = VFSManagerMake(&vfs);
-    VPath *vpath;
-    KDirectory const *dir;
-    KPathType type;
-    
-    if (rc)
-        return rc;
-    
-    for (i = 0; i < 4; ++i) {
-        int const ch = accession[i];
-        
-        if (ch == 0 || !isalpha(ch))
-            return RC(rcSRA, rcMgr, rcAccessing, rcPath, rcIncorrect);
-    }
-    for ( ; ; ++i) {
-        int const ch = accession[i];
-        
-        if (ch == 0)
-            break;
-        if (ch != '.' && !isdigit(ch))
-            return RC(rcSRA, rcMgr, rcAccessing, rcPath, rcIncorrect);
-    }
-    if (i < 8)
-        return RC(rcSRA, rcMgr, rcAccessing, rcPath, rcIncorrect);
-    
-    rc = string_printf(path, path_max, &sz, "x-ncbi-legrefseq:%s%s%s%s%.6s", rep, rep_sep, vol, vol_sep, accession);
-    if (rc) return rc;
-    i = sz;
-    
-    rc = VPathMake(&vpath, path + 17);
-    if (rc) return rc;
-
-    rc = VFSManagerOpenDirectoryRead(vfs, &dir, vpath);
-    VPathRelease(vpath);
-    VFSManagerRelease(vfs);
-    if (rc) return rc;
-    
-    type = KDirectoryPathType(dir, "tbl/%s", accession);
-    KDirectoryRelease(dir);
-    
-    if (type != kptDir)
-        return RC(rcSRA, rcMgr, rcAccessing, rcPath, rcIncorrect);
-
-    rc = string_printf(path + i, path_max - i, &sz, "#tbl/%s", accession);
-    
-    return rc;
-}
-
-/*
-* WGS style naming: accession name ABCD01 resolves into WGS/AB/CD/ABCD01
-*/
-static
-rc_t SRAPathFullWGS( const NCBISRAPath *self, const char *rep, const char *vol,
-    const char *accession, char *path, size_t path_max )
-{
-    /* pick apart accession */
-    uint32_t prefix, number;
-    rc_t rc = SRAPathParseRunAccession ( accession, & prefix, & number );
-    if ( rc == 0 )
-    {
-        size_t len;
-        size_t total = 0;
-
-        if ( prefix < 4 )
-        {
-            return RC ( rcSRA, rcMgr, rcResolving, rcName, rcTooShort );
-        }
-
-        if ( rep [ 0 ] != 0 && vol [ 0 ] != 0 )
-        {
-            /* normally write all parts at once */
-            if ( rep [ strlen (rep) - 1 ] == '/') /* check for need or not a '/' between rep and vol */
-                rc= string_printf ( path, path_max, &len, "%s%s/WGS/%.2s/%.2s/%s"
-                                 , rep
-                                 , vol
-                                 , accession
-                                 , accession+2
-                                 , accession );
-            else
-                rc= string_printf ( path, path_max, &len, "%s/%s/WGS/%.2s/%.2s/%s"
-                                 , rep
-                                 , vol
-                                 , accession
-                                 , accession+2
-                                 , accession );
-        }
-        else
-        {
-            /* allow for individual rep-server and volume parts */
-            if ( rep [ 0 ] != 0 )
-            {
-                rc = string_printf ( path, path_max, &len, "%s/", rep );
-                if ( rc != 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-            else if ( vol [ 0 ] != 0 )
-            {
-                rc = string_printf ( & path [ total ], path_max - total, &len, "%s/", vol );
-                if ( rc != 0 || ( total = len ) >= path_max )
-                    return RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-            }
-
-            /* append the accession */
-                rc= string_printf ( & path [ total ], path_max - total, &len, "WGS/%.2s/%.2s/%s"
-                                 , accession
-                                 , accession+2
-                                 , accession );
-        }
-
-        /* common detection of buffer overflow */
-        if ( rc != 0 || ( total += len ) >= path_max )
-            rc = RC ( rcSRA, rcMgr, rcAccessing, rcBuffer, rcInsufficient );
-    }
-
-    return rc;
-}
-
-static
-rc_t ApplyAlg( const NCBISRAPath *self, const char *rep, const char *vol, 
-    const char *accession, char *path, size_t path_max, NCBIRepository *repo, bool* found)
-{
-    SRAPathFindInfo pb;
-    /* see if we recognize volume */
-    pb . path = vol;
-    pb . size = strlen ( vol );
-    pb . found = 0;
-
-    DLListDoUntil ( & repo -> vols, 0, SRAPathStringFind, & pb );
-    if ( pb . found )
-    {
-        *found = true;
-        switch (pb . alg)
-        {
-        case alg_ebi:
-            return SRAPathFullEBI ( self, rep, vol, accession, path, path_max );
-        case alg_refseq:
-        {
-            rc_t rc = SRAPathFullREFSEQ ( self, rep, vol, accession, path, path_max );
-            if ( rc == 0) /* check for existence of accession at the root of the volume, and if not found try to apply the default path-building scheme */
-            {
-                switch ( KDirectoryPathType ( self -> dir, path ) )
-                {
-                case kptNotFound:
-                case kptBadPath:
-                    return SRAPathFullREFSEQArchive( self, rep, vol, accession, path, path_max );
-                default:
-                	return 0;
-                }
-            }
-		}            
-        case alg_wgs:
-            return SRAPathFullWGS ( self, rep, vol, accession, path, path_max );
-        default:
-            break;
-        }
-    }
-    *found = false;
-    return 0;
-}
-
-static
-rc_t CC NCBISRAPathFull ( const NCBISRAPath *self, const char *rep, const char *vol,
-    const char *accession, char *path, size_t path_max )
-{
-    NCBIRepository *repo;
-    bool found;
-    rc_t rc;
-
-    /* loop through repositories */ 
-    for ( repo = ( NCBIRepository* ) DLListHead ( & self -> repos );
-          repo != NULL; repo = ( NCBIRepository* ) DLNodeNext ( & repo -> n ) )
-    {
-        rc = ApplyAlg( self, rep, vol, accession, path, path_max, repo, &found);
-        if (found)
-        {
-            return rc;
-        }
-    }
-    /* try the default repository */
-    rc = ApplyAlg( self, rep, vol, accession, path, path_max, self -> dflt_repo, &found);
-    if (found)
-    {
-        return rc;
-    }
-    /* internal version */
-    return SRAPathFullInt ( self, rep, vol, accession, path, path_max, 1024 );
-}
-
-
-/* Test
- *  returns true if path appears to be accession
- *  the test is a heuristic, and may return false positives
- *
- *  "path" [ IN ] - NUL terminated path to run
- */
-static
-bool SRAPathTestTable ( const KDirectory *dir, uint32_t type, const char *path )
-{
-    /* differentiate between legacy and current structure */
-    switch ( KDirectoryPathType ( dir, "%s/idx", path ) )
-    {
-    case kptNotFound:
-        switch ( KDirectoryPathType ( dir, "%s/meta", path ) )
-        {
-        case kptFile:
-        case kptFile | kptAlias:
-            switch ( KDirectoryPathType ( dir, "%s/skey", path ) )
-            {
-            case kptFile:
-            case kptFile | kptAlias:
-                return true;
-            }
-            break;
-        }
-        break;
-
-    case kptDir:
-    case kptDir | kptAlias:
-        switch ( KDirectoryPathType ( dir, "%s/md/cur", path ) )
-        {
-        case kptFile:
-        case kptFile | kptAlias:
-            return true;
-        }
-        break;
-    }
-
-    /* not a table */
-    return false;
-}
-
-static
-bool SRAPathTestDatabase ( const KDirectory *dir, uint32_t type, const char *path )
-{
-    /* don't have a more stringent requirement for database at this time */
-    return true;
-}
-
-static
-bool SRAPathTestFile ( const KDirectory *dir, uint32_t type, const char *path )
-{
-    /* TBD - need to look at magic information */
-    return false;
-}
-
-static
-bool SRAPathTestInt ( const KDirectory *dir, uint32_t type, const char *path )
-{
-    switch ( type )
-    {
-    case kptDir:
-    case kptDir | kptAlias:
-        break;
-
-    case kptFile:
-    case kptFile | kptAlias:
-        return SRAPathTestFile ( dir, type, path );
-
-    default:
-        return false;
-    }
-
-    /* detect apparent tables */
-    switch ( KDirectoryPathType ( dir, "%s/col", path ) )
-    {
-    case kptDir:
-    case kptDir | kptAlias:
-        return SRAPathTestTable ( dir, type, path );
-    }
-
-    /* detect apparent databases */
-    switch ( KDirectoryPathType ( dir, "%s/tbl", path ) )
-    {
-    case kptDir:
-    case kptDir | kptAlias:
-        return SRAPathTestDatabase ( dir, type, path );
-    }
-
-    /* not a recognized accession */
-    return false;
-}
-
-static
-bool CC NCBISRAPathTest ( const NCBISRAPath *self, const char *path )
-{
-    return SRAPathTestInt ( self -> dir,
-        KDirectoryPathType ( self -> dir, path ), path );
-}
-
-
-/* FindOnServer
- *  find accession on rep-server 
- */
-static
-rc_t SRAPathFindOnServer ( const NCBISRAPath *self, const NCBIRepository *repo, const SRAPathString *srv,
-    const char *accession, char *path, size_t path_max, int vol_type )
-{
-    const SRAPathString *vol;
-
-    PATH_DEBUG (("SRAPathFindOnServer(%s)\n", srv->path));
-
-    for ( vol = ( const SRAPathString* ) DLListHead ( & repo -> vols );
-          vol != NULL; vol = ( const SRAPathString* ) DLNodeNext ( & vol -> n ) )
-    {
-        if ( vol_type == alg_none || vol_type == vol->alg )
-        {
-            rc_t rc;
-
-            PATH_DEBUG (("SRAPathFindOnServer trying volume %s\n", vol->path));
-
-            switch ( vol -> alg )
-            {
-            case alg_ebi:
-                rc = SRAPathFullEBI ( self, srv -> path, vol -> path, accession, path, path_max );
-                break;
-            case alg_refseq:
-                rc = SRAPathFullREFSEQ ( self, srv -> path, vol -> path, accession, path, path_max );
-                if ( rc == 0) /* check for existence of accession at the root of the volume, and if not found try to apply the default path-building scheme */
-                {
-                    switch ( KDirectoryPathType ( self -> dir, path ) )
-                    {
-                    case kptNotFound:
-                    case kptBadPath:
-                        rc = SRAPathFullREFSEQArchive( self, srv -> path, vol -> path, accession, path, path_max );
-                        if (rc == 0) {
-                            PATH_DEBUG (("SRAPathFindOnServer: found(%s)\n", path));
-                            return 0;
-                        }
-                        break;
-                    default:
-                    	return 0;
-                    }
-                }
-                break;
-            case alg_wgs:
-                rc = SRAPathFullWGS ( self, srv -> path, vol -> path, accession, path, path_max );
-                break;
-            default:
-                rc = SRAPathFullInt ( self, srv -> path, vol -> path, accession, path, path_max, 1024 );
-                break;
-            }
-            if ( rc == 0 )
-            {
-                switch ( KDirectoryPathType ( self -> dir, path ) )
-                {
-                case kptNotFound:
-                case kptBadPath:
-                    break;
-                default:
-                    PATH_DEBUG (("SRAPathFindOnServer: found(%s)\n", path));
-                    return 0;
-                }
-            }
-            else
-            {
-                if ( GetRCState( rc ) == rcInsufficient )
-                    return rc;
-            }
-        }
-    }
-
-    return RC ( rcSRA, rcMgr, rcSelecting, rcPath, rcNotFound );
-}
-
-/* FindInRepo
- *  find accession in a repository
- */
-static
-rc_t SRAPathFindInRepo ( const NCBISRAPath *self, NCBIRepository *repo, const char *accession, 
-                         char *path, size_t path_max, size_t *rep_len, int vol_type )
-{
-    SRAPathString *srv;
-
-    PATH_DEBUG (("SRAPathFindInRepo(%s)\n", AlgToStr(repo->type)));
-
-    /* look for accession on a rep-server */
-    for ( srv = ( SRAPathString* ) DLListHead ( & repo -> repsrv ); srv != NULL; srv = ( SRAPathString* ) DLNodeNext ( & srv -> n ) )
-    {
-        /* try with this server */
-        rc_t rc = SRAPathFindOnServer ( self, repo, srv, accession, path, path_max, vol_type );
-        if ( rc == 0 )
-        {
-            /* make sure server is at head of list */
-            if ( DLNodePrev ( & srv -> n ) != NULL )
-            {
-                DLListUnlink ( & repo -> repsrv, & srv -> n );
-                DLListPushHead ( & repo -> repsrv, & srv -> n );
-            }
-
-            if ( rep_len != NULL )
-                * rep_len = strlen ( srv -> path );
-            
-            return 0;
-        }
-
-        if ( GetRCState ( rc ) != rcNotFound )
-            return rc;
-    }
-
-    return RC ( rcSRA, rcMgr, rcSelecting, rcPath, rcNotFound );
-}
-
-/* FindInRepoByType
- *  find accession in a repository of a given type
- */
-static
-rc_t SRAPathFindInRepoByType ( const NCBISRAPath *self, const char *accession, char *path, size_t path_max, size_t *rep_len, int repo_type, int vol_type )
-{
-    /* loop through all repositories */
-    NCBIRepository *repo; 
-    for ( repo = ( NCBIRepository* ) DLListHead ( & self -> repos ); repo != NULL; repo = ( NCBIRepository* ) DLNodeNext ( & repo -> n ) )
-    {
-        if ( repo->type == repo_type && SRAPathFindInRepo(self, repo, accession, path, path_max, rep_len, vol_type) == 0 )
-            return 0;
-    }
-    return RC ( rcSRA, rcMgr, rcSelecting, rcPath, rcNotFound );
-}
-
-/* FastFind
- * Uses heuristics to select the repository most likely to contain the accession, then tries to locate the acecssion in the repository.
-*/
-static
-rc_t FindFast( const NCBISRAPath *cself, const char *accession, char *path, size_t path_max, size_t *rep_len )
-{
-    /*TODO: look up cache first */
-    
-    /* recognize known naming schemes */
-    size_t size = string_size(accession);
-    if ( string_cmp(accession, size, "SRR", 3, 3) == 0 )
-        return SRAPathFindInRepoByType(cself, accession, path, path_max, rep_len, alg_ncbi, alg_ncbi);
-
-    if ( string_cmp(accession, size, "ERR", 3, 3) == 0 )
-        return SRAPathFindInRepoByType(cself, accession, path, path_max, rep_len, alg_ncbi, alg_ebi);
-
-    if ( string_cmp(accession, size, "DRR", 3, 3) == 0 )
-        return SRAPathFindInRepoByType(cself, accession, path, path_max, rep_len, alg_ncbi, alg_ddbj);
-        
-    if ( string_chr(accession, size, '.') != NULL )
-        return SRAPathFindInRepoByType(cself, accession, path, path_max, rep_len, alg_refseq, alg_none);    
-        
-    if ( size > 2 && isdigit(accession[size-1]) && isdigit(accession[size-2]) && ! isdigit(accession[size-3]) ) 
-        return SRAPathFindInRepoByType(cself, accession, path, path_max, rep_len, alg_wgs, alg_none);    
-        
-    return RC ( rcSRA, rcMgr, rcSelecting, rcPath, rcNotFound );
-}
-
-/* Find
- *  finds location of run within rep-server/volume matrix
- *
- *  "accession" [ IN ] - NUL terminated run accession,
- *   e.g. "SRR000001"
- *
- *  "path" [ OUT ] and "path_max" [ IN ] - return buffer for
- *  NUL-terminated full path to accession.
- *
- *  returns 0 if path exists, rc state rcNotFound if
- *  path cannot be found, and rcInsufficient if buffer is
- *  too small.
- */
-static
-rc_t CC NCBISRAPathFindWithRepLen ( const NCBISRAPath *cself, const char *accession, char *path, size_t path_max, size_t *rep_len )
-{
-    rc_t rc;
-    NCBIRepository *repo;
-
-    PATH_DEBUG(("NCBISRAPathFindWithRepLen(%s)\n", accession));
-
-    rc = FindFast( cself, accession, path, path_max, rep_len );
-    if ( rc == 0 )
-        return 0;
-        
-    /* loop through all repositories */ 
-    for ( repo = ( NCBIRepository* ) DLListHead ( & cself -> repos ); repo != NULL; repo = ( NCBIRepository* ) DLNodeNext ( & repo -> n ) )
-    {
-        rc = SRAPathFindInRepo(cself, repo, accession, path, path_max, rep_len, alg_none);
-        if ( rc == 0 )
-            return 0;
-    }
-    /* default repository */
-    return SRAPathFindInRepo(cself, cself -> dflt_repo, accession, path, path_max, rep_len, alg_none);
-}
-
-struct SRAPath_vt_v2 vtSRAPath =
-{
-    2, 1,
-    NCBISRAPathAddRef,
-    NCBISRAPathRelease,
-    NCBISRAPathVersion,
-    NCBISRAPathClear,
-    NCBISRAPathAddRepPathDefault,
-    NCBISRAPathAddVolPathDefault,
-    NCBISRAPathFull,
-    NCBISRAPathTest,
-    NCBISRAPathFindWithRepLen
-};
-
-/* Make
- *  create path manager
- *
- *  the path manager should already be configured with
- *  standard search paths, but can be augmented by using
- *  the Add*Path messages.
- *
- *  "dir" [ IN, NULL OKAY ] - optional root directory to use
- *  attaches a new reference
- */
-MOD_EXPORT
-rc_t CC SRAPathMakeImpl ( SRAPath **pm, const KDirectory *dir )
-{
-    rc_t rc;
-
-    if ( pm == NULL )
-        rc = RC ( rcSRA, rcMgr, rcConstructing, rcParam, rcNull );
-    else
-    {
-        NCBISRAPath *p = (NCBISRAPath *) malloc ( sizeof * p );
-        if ( p == NULL )
-            rc = RC ( rcSRA, rcMgr, rcConstructing, rcMemory, rcExhausted );
-        else
-        {
-            p -> dad . vt = ( SRAPath_vt* ) & vtSRAPath;
-            p -> dir = dir;
-            if ( dir != NULL )
-                rc = KDirectoryAddRef ( dir );
-            else
-            {
-                KDirectory *wd;
-                rc = KDirectoryNativeDir ( & wd );
-                p -> dir = wd;
-            }
-
-            if ( rc != 0 )
-                free ( p );
-            else
-            {
-                DLListInit ( & p -> repos );
-                p -> dflt_repo = NULL;
-                atomic32_set ( & p -> refcount, 1 );
-
-                /* the object is now complete */
-                rc = SRAPathConfig ( p );
-                if ( rc == 0 )
-                {
-                    * pm = & p -> dad;
-                    return 0;
-                }
-
-                SRAPathWhack ( p );
-            }
-        }
-
-        * pm = NULL;
-    }
-
-    return rc;
-}
diff --git a/libs/vxf/Makefile b/libs/vxf/Makefile
index 930dd5f..ebd2c1a 100644
--- a/libs/vxf/Makefile
+++ b/libs/vxf/Makefile
@@ -32,27 +32,23 @@ MOD_LIBS = \
 	libvxf \
 	libwvxf
 
-TEST_TOOLS = \
-	wb-test-vxf
-
-include $(TOP)/build/Makefile.env
-
 ALL_LIBS = \
 	$(MOD_LIBS)
 
+include $(TOP)/build/Makefile.env
+
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: makedirs
+vers-includes: $(addsuffix .vers.h,$(ALL_LIBS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(MOD_LIBS): makedirs
+$(MOD_LIBS): makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-$(TEST_TOOLS): makedirs
-	@ $(MAKE_CMD) $(TEST_BINDIR)/$@
-
-.PHONY: all std $(ALL_LIBS) $(TEST_TOOLS)
+.PHONY: vers-includes all std $(ALL_LIBS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -70,6 +66,14 @@ clean: stdclean
 .PHONY: clean
 
 #-------------------------------------------------------------------------------
+# tag
+#
+tag: \
+	$(addsuffix _tag,$(ALL_LIBS))
+
+.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
+
+#-------------------------------------------------------------------------------
 # vdb transform library
 #
 $(TARGDIR)/libvxf: $(addprefix $(TARGDIR)/libvxf.,$(MODEXT))
@@ -115,9 +119,7 @@ VXF_SRC = \
 	simple-sub-select \
 	extract_token \
 	strtonum \
-	sprintf \
-	wgs-tokenize-accession \
-	lower-case-tech-reads
+	sprintf
 
 VXF_OBJ = \
 	$(addsuffix .$(LOBX),$(VXF_SRC))
@@ -135,7 +137,10 @@ $(MODDIR)/libvxf.$(SHLX): $(VXF_OBJ)
 $(TARGDIR)/libvxf.$(LIBX): $(ILIBDIR)/libvxf.$(LIBX)
 
 $(ILIBDIR)/libvxf.$(LIBX): $(VXF_OBJ)
-	$(LD) --slib -o $@ $^ $(VXF_LIB)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(VXF_LIB)
+
+libvxf_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) libvxf $(VXF_OBJ)
 
 #-------------------------------------------------------------------------------
 # wvdb transform library
@@ -171,37 +176,12 @@ $(WMODDIR)/libwvxf.$(SHLX): $(WVXF_OBJ)
 $(TARGDIR)/libwvxf.$(LIBX): $(ILIBDIR)/libwvxf.$(LIBX)
 
 $(ILIBDIR)/libwvxf.$(LIBX): $(WVXF_OBJ)
-	$(LD) --slib -o $@ $^ $(WVXF_LIB)
+	$(LD) --slib --vers $(SRCDIR) -o $@ $^ $(WVXF_LIB)
+
+libwvxf_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) libwvxf $(WVXF_OBJ)
 
 libwvxf.vers.h:
 	@ true
 
 .PHONY: $(TARGDIR)/libwvxf $(TARGDIR)/libwvxf.$(SHLX) $(TARGDIR)/libwvxf.$(LIBX)
-
-#-------------------------------------------------------------------------------
-# white-box test
-#
-TEST_SRC = \
-	wb-test-vxf \
-	wb-irzip-impl
-
-TEST_OBJ = \
-	$(addsuffix .$(OBJX),$(TEST_SRC))
-
-TEST_LIBS = \
-    -skapp \
-    -svdb \
-    -skdb \
-	-svfs \
-	-skurl \
-	-skrypto \
-    -skfg \
-	-skfs \
-	-skproc \
-    -sktst \
-	-sklib 
-
-$(TEST_BINDIR)/wb-test-vxf: $(TEST_OBJ)
-	$(LP) --exe -o $@ $^ $(TEST_LIBS)
-
-
diff --git a/libs/vxf/checksum.c b/libs/vxf/checksum.c
index 37b3903..b63404a 100644
--- a/libs/vxf/checksum.c
+++ b/libs/vxf/checksum.c
@@ -33,8 +33,6 @@
 #include <klib/text.h>
 #include <klib/rc.h>
 
-#include <sysalloc.h>
-
 #include <bitstr.h>
 
 #include <stdlib.h>
diff --git a/libs/vxf/irzip.c b/libs/vxf/irzip.c
index 2ef4995..9b3c54e 100644
--- a/libs/vxf/irzip.c
+++ b/libs/vxf/irzip.c
@@ -304,14 +304,10 @@ rc_t CC irzip(
 /* 
  function izip_fmt izip #2.1 ( izip_set in )
  */
-VTRANSFACT_IMPL(vdb_izip, 2, 1, 1) (const void *Self, const VXfactInfo *info,
+VTRANSFACT_IMPL(vdb_izip, 2, 1, 0) (const void *Self, const VXfactInfo *info,
                                      VFuncDesc *rslt, const VFactoryParams *cp,
                                      const VFunctionParams *dp )
 {
-/*
-* 2.1.1: bug fix for #VDB-539, bad conversions in encode_u64
-*/
-
     if (dp->argc != 1) {
 #if _DEBUGGING
         fprintf(stderr, "dp->argc = %u != 1\n", dp->argc);
diff --git a/libs/vxf/irzip.impl.h b/libs/vxf/irzip.impl.h
index ff12a7b..0335ed8 100644
--- a/libs/vxf/irzip.impl.h
+++ b/libs/vxf/irzip.impl.h
@@ -43,8 +43,9 @@ static rc_t ENCODE(uint8_t dst[], size_t dsize, size_t *used, int64_t *Min, int6
     unsigned k;
     rc_t rc=0;
     STYPE min,a0;
-    int64_t 	slope, delta_type = DELTA_UND,y_cur;
-    uint64_t    sum_a0,sum_min,sum_y,sum_delta;
+    STYPE y_cur;
+    int64_t 	slope, delta_type = DELTA_UND;
+    uint64_t    sum_a0,sum_min,sum_i,sum_delta;
     uint64_t	max_diff;
     uint8_t	*scratch=NULL;
 #ifdef TRY2SERIES
@@ -75,20 +76,22 @@ static rc_t ENCODE(uint8_t dst[], size_t dsize, size_t *used, int64_t *Min, int6
     /*** floating point calculations are avoided ***/
 	a0 =  Y[0];
 	y_cur = Y[1];
-	sum_y =  Y[0] +  Y[1];
-	slope = (int64_t)Y[1] - (int64_t)Y[0];
-	if(slope < 0) {
-		min = Y[1]; 
-		sum_delta = -slope;
+	slope = (int64_t)Y[1] - Y[0];
+	if(Y[1] < Y[0]) {
+		min = y_cur; 
+        /*** can overflow when STYPE is uint64_t ***/
+        assert ( slope < 0 );
+		sum_min = -slope;
 		delta_type = DELTA_NEG;
 	} else {
-		min = Y[0];
-		sum_delta = slope;
+		min = a0;
+		sum_min = slope;
 		if( slope != 0 ) delta_type = DELTA_POS;
 	}
-	max_diff = sum_delta;
+	sum_a0 = 0;
+	max_diff = sum_delta = sum_min;
 #ifdef TRY2SERIES
-	if(sum_delta >= TRIGGER_2ND_SERIES){
+	if(sum_min >= TRIGGER_2ND_SERIES){
 		last[0]=0; last[1]=1;
 		series[0]=0; series[1]=1;
 	} else {
@@ -99,14 +102,17 @@ static rc_t ENCODE(uint8_t dst[], size_t dsize, size_t *used, int64_t *Min, int6
 		max_diff2[0]= sum_delta;
 	}
 #endif
+	sum_i = 1;
 	for (i = 2; i < N; ++i) {
-		int64_t  md = (int64_t)Y[i] - (int64_t)min;
-		int64_t diff =  (int64_t)Y[i] - (int64_t)Y[i-1];
-		uint64_t abs_diff = (diff >= 0) ? diff : -diff;
+		int64_t  ad;
+		int64_t  md = (int64_t)Y[i] - min;
+		int64_t diff =  (int64_t)Y[i] - Y[i-1];
+		int64_t abs_diff = labs(diff);
 #ifdef TRY2SERIES
 		int64_t	last_delta_type = delta_type ;
 #endif
-		sum_y += Y[i];
+		
+
 		sum_delta += abs_diff;
 		if(abs_diff > max_diff) max_diff = abs_diff;
 #define MACRO_SET_DELTA_TYPE(Diff,DeltaType) \
@@ -133,10 +139,10 @@ static rc_t ENCODE(uint8_t dst[], size_t dsize, size_t *used, int64_t *Min, int6
 				series[i]=0;
 			}
 		} else { /*** second series is in being built ***/
-			int64_t diff1 =  (int64_t)Y[i] - (int64_t)Y[last[0]];
-			int64_t diff2 =  (int64_t)Y[i] - (int64_t)Y[last[1]];
-			uint64_t abs_diff1 = (diff1 >= 0) ? diff1 : -diff1;
-			uint64_t abs_diff2 = (diff2 >= 0) ? diff2 : -diff2;
+			int64_t diff1 =  (int64_t)Y[i] - Y[last[0]];
+			int64_t diff2 =  (int64_t)Y[i] - Y[last[1]];
+			int64_t abs_diff1 = labs(diff1);
+			int64_t abs_diff2 = labs(diff2);
 			if(abs_diff1 <= abs_diff2){
 				last[0]=i;
 				series[i]=0;
@@ -152,24 +158,32 @@ static rc_t ENCODE(uint8_t dst[], size_t dsize, size_t *used, int64_t *Min, int6
 			}
 		}
 #endif
-		if ( md < 0 ) {
+
+		sum_i += i;
+		if ( md > 0) {
+			sum_min+= md;
+		} else if ( md < 0 ) {
 			min = Y[i];
+			sum_min += -md * (i - 1 ); /** running sum difference increases by this amount ***/
 		}
 		y_cur += slope;
-		if(y_cur > (int64_t)Y[i]){/*** reduce the slope ***/
-			slope =  ((int64_t)Y[i] - (int64_t)Y[0] - i+1/**round down**/) /i;
-			y_cur =  (int64_t)Y[0] + (int64_t)(i* slope);
-			assert( y_cur <= (int64_t)Y[i]);
+		ad = (int64_t)Y[i] - y_cur;
+		if ( ad > 0 ) {
+			sum_a0 += ad;
+		} else if (ad < 0 ){ /** need to adjust the slope ***/
+			int64_t sd = -ad / i;
+			if (sd*i < -ad) sd++; /** to adjust for rounding above **/
+			
+			y_cur -= sd*i;
+			slope -= sd;
+			sum_a0 = sum_a0 + ad + sum_i*sd;
+
 		}
 	}
 
     /*** define which delta is the smallest **/
     *series_count=1;
     if(delta_type == DELTA_BOTH) sum_delta <<= 1; /*** in DELTA_BOTH case we will use extra bit ***/
-    
-    sum_min = sum_y - N*min;
-    sum_a0  = sum_y - N*a0 - slope*N*(N-1)/2;
-    
 			
     if( (delta_type == DELTA_POS || delta_type == DELTA_NEG ||
         (delta_type == DELTA_BOTH &&  max_diff <  (((uint64_t)1)<<(sizeof(STYPE)*8-1))) /*** to prevent loosing a bit **/
@@ -267,7 +281,7 @@ static rc_t ENCODE(uint8_t dst[], size_t dsize, size_t *used, int64_t *Min, int6
     } else if( slope == DELTA_NEG){
 	for( i = 0; i != N; ++i){
 		uint64_t  val = a0 - Y[i];
-		assert(Y[i] <= a0);
+		assert(Y[i] < a0);
                 a0 =  Y[i];
 		MACRO_FLUSH_VALUE;
 	}
@@ -285,7 +299,7 @@ static rc_t ENCODE(uint8_t dst[], size_t dsize, size_t *used, int64_t *Min, int6
     } else {
 	for( i = 0; i != N; ++i){
 		uint64_t val =  Y[i] - a0 - slope*i;
-		assert((int64_t)Y[i] >=  (int64_t)a0 + slope*i);
+		assert(Y[i] >=  a0 + slope*i);
 		MACRO_FLUSH_VALUE;
 	}
     }
@@ -320,10 +334,9 @@ static rc_t DECODE(STYPE Y[], unsigned N, int64_t* min, int64_t* slope, uint8_t
     unsigned i;
     uint8_t *scratch=NULL;
     rc_t rc=0;
-    bool    first;
 
     memset(Y, 0, sizeof(Y[0]) * N);
-    for (j = k = 0, m = 1,first=true; m < 0x100; m <<= 1, k += 8) {
+    for (j = k = 0, m = 1; m < 0x100; m <<= 1, k += 8) {
         size_t n;
         
         if ((planes & m) == 0)
@@ -335,92 +348,18 @@ static rc_t DECODE(STYPE Y[], unsigned N, int64_t* min, int64_t* slope, uint8_t
         rc = zlib_decompress(scratch, N, &n, src + j, ssize - j);
         if (rc) goto DONE;
         j += n;
-	if(first){
-		for (i = 0; i != N; ++i) Y[i] = ((STYPE)scratch[i]) << k;
-		first = false;
-	} else {
-		for (i = 0; i != N; ++i) Y[i] |= ((STYPE)scratch[i]) << k;
-	}
+        
+        for (i = 0; i != N; ++i)
+            Y[i] |= ((STYPE)scratch[i]) << k;
     }
     if(series_count == 2){
-#if 0 /** trying to unroll ***/
-	STYPE Ylast;
-	if(slope[0]==DELTA_BOTH){
-		if(slope[1]==DELTA_BOTH){ 
-			for(i = 0; i != N; ++i){
-				scratch[i] = Y[i]&3;
-				Y[i] = ((USTYPE)Y[i]) >> 2;
-			}
-		} else {
-			for(i = 0; i != N; ++i){
-				uint8_t tmp = Y[i]&1;
-				if(tmp){
-					scratch[i] = tmp;
-					Y[i] = ((USTYPE)Y[i]) >> 1;
-				} else {
-					scratch[i] = Y[i]&3;
-					Y[i] = ((USTYPE)Y[i]) >> 2;
-				}
-                        }
-
-		}
-	} else {
-		if(slope[1]==DELTA_BOTH){
-			for(i = 0; i != N; ++i){
-                                uint8_t tmp = Y[i]&1;
-                                if(!tmp){
-                                        scratch[i] = tmp;
-					Y[i] = ((USTYPE)Y[i]) >> 1;
-                                } else {
-                                        scratch[i] = Y[i]&3;
-					Y[i] = ((USTYPE)Y[i]) >> 2;
-
-                                }
-                        }
-		} else {
-			for(i = 0; i != N; ++i){
-				scratch[i] = Y[i]&1;
-				Y[i] = ((USTYPE)Y[i]) >> 1;
-			}
-		}
-	}
-	/** k=0 - main series, k=1 -secondary **/
-	for(k=0;k<2;k++){
-		Ylast = min[k];
-		if(slope[k]==DELTA_POS) {
-			for (i = 0; i != N; ++i){
-				if((scratch[i]&1)==k){
-					Y[i]  = Ylast + Y[i];
-					Ylast = Y[i];
-				}
-			}
-		} else if (slope[k]==DELTA_NEG){
-			for (i = 0; i != N; ++i){
-				if((scratch[i]&1)==k){
-					Y[i]  = Ylast - Y[i];
-					Ylast = Y[i];
-				}
-			}
-		} else for (i = 0; i != N; ++i){
-			if((scratch[i]&1)==k){
-				if(scratch[i]&2){
-					Y[i]  = Ylast - Y[i];
-				} else {
-					Y[i]  = Ylast + Y[i];
-				}
-				Ylast = Y[i];
-			}
-		}
-	}
-
-#else
 	uint32_t last[2]={0,0};
 	for (i = 0; i != N; ++i){
 		if( (Y[i]&1) == 0 ){/**main series **/
 			USTYPE val = (USTYPE)Y[i];
 			val >>= 1;
 			if(i==0){
-                                Y[i] = (STYPE)min[0];
+                                Y[i] = min[0];
                                 last[0]=i;
                         }
 			if(slope[0]==DELTA_POS)      Y[i] = Y[last[0]] + val;
@@ -432,7 +371,7 @@ static rc_t DECODE(STYPE Y[], unsigned N, int64_t* min, int64_t* slope, uint8_t
 			USTYPE val = (USTYPE)Y[i];
 			val >>= 1;
 			if(last[1]==0){
-				Y[i] = (STYPE)min[1];
+				Y[i] = min[1];
 				last[1]=i;
 			}
                         if(slope[1]==DELTA_POS)      Y[i] = Y[last[1]] + val;
@@ -442,23 +381,22 @@ static rc_t DECODE(STYPE Y[], unsigned N, int64_t* min, int64_t* slope, uint8_t
                         last[1]=i;
 		}
         }
-#endif
     } else if(min[0]==0 && slope[0]==0){ /*** no slope no offset - nothing to do ***/
     } else if(slope[0] == DELTA_POS){
 	assert(Y[0] == 0);
-	Y[0] = (STYPE)min[0];
+	Y[0] = min[0];
 	for (i = 1; i != N; ++i){
 		Y[i] = Y[i-1] + Y[i];
 	}
     } else if (slope[0] == DELTA_NEG ) {
 	assert(Y[0] == 0);
-	Y[0] = (STYPE)min[0];
+	Y[0] = min[0];
 	for (i = 1; i != N; ++i){
 		Y[i] =  Y[i-1] - Y[i];
 	}
     } else if (slope[0] == DELTA_BOTH){
 	assert(Y[0] == 0);
-	Y[0] = (STYPE)min[0];
+	Y[0] = min[0];
 	for (i = 1; i != N; ++i){
 		USTYPE val = (USTYPE)Y[i];
 		val >>= 1;
@@ -467,16 +405,16 @@ static rc_t DECODE(STYPE Y[], unsigned N, int64_t* min, int64_t* slope, uint8_t
 	}
     } else if(slope[0] == 0) {
 	for (i = 0; i != N; ++i){
-		Y[i]  += (STYPE)min[0];
+		Y[i]  += min[0];
 	}
     } else {
 	for (i = 0; i != N; ++i){
-                Y[i]  += (STYPE)min[0];
+                Y[i]  += min[0];
                 min[0] += slope[0];
         }
     }
 
 DONE:
-    if(scratch) free(scratch);
+    free(scratch);
     return rc;
 }
diff --git a/libs/vxf/iunzip.c b/libs/vxf/iunzip.c
index fb9cf52..acd5ecc 100644
--- a/libs/vxf/iunzip.c
+++ b/libs/vxf/iunzip.c
@@ -400,12 +400,7 @@ static rc_t decode_encoded(struct decoded *y, const struct encoded *x) {
             n = x->u.izipped.diff_size;
             memcpy(y->diff->data.u8, x->u.izipped.diff, n);
         }
-
-        if ( y->diff->size != 0 )
-            elem_bits = (n * 8) / y->diff->size;
-        else
-            return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
-
+        elem_bits = (n * 8) / y->diff->size;
         if (elem_bits * y->diff->size / 8 != n)
             return RC(rcXF, rcFunction, rcExecuting, rcData, rcInvalid);
         BITS_TO_VARIANT(y->diff, elem_bits);
diff --git a/libs/vxf/izip-common.h b/libs/vxf/izip-common.h
index c6dc84c..ee9f9db 100644
--- a/libs/vxf/izip-common.h
+++ b/libs/vxf/izip-common.h
@@ -69,8 +69,8 @@ static nbuf *alloc_nbuf(unsigned cnt, unsigned var) {
     nbuf *rslt;
     
     rslt = malloc(sizeof(*rslt) - sizeof(rslt->data) + cnt * sizeof(rslt->data.raw[0]));
-    if ( rslt != NULL ) {
-        memset(rslt, 0, sizeof(*rslt) - sizeof(rslt->data));
+    memset(rslt, 0, sizeof(*rslt) - sizeof(rslt->data));
+    if (rslt) {
         rslt->size = cnt;
         rslt->used = 0;
         rslt->var = var;
diff --git a/libs/vxf/libvxf.vers b/libs/vxf/libvxf.vers
index 2bf1ca5..e25d8d9 100644
--- a/libs/vxf/libvxf.vers
+++ b/libs/vxf/libvxf.vers
@@ -1 +1 @@
-1.1.7
+1.1.5
diff --git a/libs/vxf/libvxf.vers.h b/libs/vxf/libvxf.vers.h
new file mode 100644
index 0000000..9ddfc82
--- /dev/null
+++ b/libs/vxf/libvxf.vers.h
@@ -0,0 +1 @@
+#define LIBVXF_VERS 0x01010005
diff --git a/libs/vxf/libwvxf.vers b/libs/vxf/libwvxf.vers
index 0664a8f..65087b4 100644
--- a/libs/vxf/libwvxf.vers
+++ b/libs/vxf/libwvxf.vers
@@ -1 +1 @@
-1.1.6
+1.1.4
diff --git a/libs/vxf/lower-case-tech-reads.c b/libs/vxf/lower-case-tech-reads.c
deleted file mode 100644
index 9f9e911..0000000
--- a/libs/vxf/lower-case-tech-reads.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <vdb/extern.h>
-#include <vdb/xform.h>
-#include <insdc/insdc.h>
-#include <klib/data-buffer.h>
-#include <klib/rc.h>
-
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-
-static
-rc_t CC lower_case_tech_reads ( void *data, const VXformInfo *info, int64_t row_id,
-    VRowResult *rslt, uint32_t argc, const VRowData argv [] )
-{
-    uint32_t i, j, k;
-
-    char *mixed;
-    const char *read_text = argv [ 0 ] . u . data . base;
-    const INSDC_coord_len *read_len = argv [ 1 ] . u . data . base;
-    const INSDC_read_type *read_type = argv [ 2 ] . u . data . base;
-
-    rc_t rc = KDataBufferResize ( rslt -> data, argv [ 0 ] . u . data . elem_count );
-    if ( rc != 0 )
-        return rc;
-
-    rslt -> elem_count = argv [ 0 ] . u . data . elem_count;
-
-    mixed = rslt -> data -> base;
-    read_text += argv [ 0 ] . u . data . first_elem;
-    read_len += argv [ 1 ] . u . data . first_elem;
-    read_type += argv [ 2 ] . u . data . first_elem;
-
-    for ( i = j = 0; i < argv [ 0 ] . u . data . elem_count; ++ j )
-    {
-        /* should still have reads described */
-        if ( j == argv [ 1 ] . u . data . elem_count || j == argv [ 2 ] . u . data . elem_count )
-            break;
-
-        /* get read length */
-        k = read_len [ j ];
-        if ( i + k > argv [ 0 ] . u . data . elem_count )
-            k = argv [ 0 ] . u . data . elem_count - i;
-
-        /* decide upon upper or lower case */
-        if ( ( read_type [ j ] & 1 ) != READ_TYPE_BIOLOGICAL )
-        {
-            for ( ; k > 0; ++ i, -- k )
-                mixed [ i ] = tolower ( read_text [ i ] );
-        }
-        else
-        {
-            for ( ; k > 0; ++ i, -- k )
-                mixed [ i ] = toupper ( read_text [ i ] );
-        }
-    }
-
-    for ( ; i < argv [ 0 ] . u . data . elem_count; ++ i )
-        mixed [ i ] = toupper ( read_text [ i ] );
-
-    return 0;
-}
-
-
-/* lower_case_tech_reads
- *  locates technical reads within an IUPAC sequence
- *  converts them to lower-case
- *
- *  "read_text" [ DATA ] - IUPAC source text
- *
- *  "read_len" [ DATA ] - ordered array of read lengths
- *
- *  "read_type" [ DATA ] - describes which reads are technical
- *  and which are biological. determines the case of each read segment
- *
- * extern function
- * INSDC:dna:mixed_case:text NCBI:lower_case_tech_reads #1 ( INSDC:dna:text read_text,
- *     INSDC:coord:len read_len, INSDC:read:type read_type );
- */
-VTRANSFACT_IMPL ( NCBI_lower_case_tech_reads, 1, 0, 0 ) ( const void *self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt -> u . rf = lower_case_tech_reads;
-    rslt -> variant = vftRow;
-    return 0;
-}
diff --git a/libs/vxf/math-funcs-impl.h b/libs/vxf/math-funcs-impl.h
index 8f95e12..73269ea 100644
--- a/libs/vxf/math-funcs-impl.h
+++ b/libs/vxf/math-funcs-impl.h
@@ -225,7 +225,7 @@ rc_t CC array_func(
     self_t hack;
 
     hack.vp = Self;
-    hack.f(dst, src, ( size_t ) num_elements);
+    hack.f(dst, src, num_elements);
     return 0;
 }
 
diff --git a/libs/vxf/simple-sub-select.c b/libs/vxf/simple-sub-select.c
index 044d0aa..f04e34c 100644
--- a/libs/vxf/simple-sub-select.c
+++ b/libs/vxf/simple-sub-select.c
@@ -28,7 +28,6 @@
 #include <vdb/database.h>
 #include <vdb/table.h>
 #include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
 
 
 #include <klib/rc.h>
@@ -50,10 +49,6 @@ struct SubSelect
 {
     const VCursor *curs;
     uint32_t idx;
-    const VCursor *native_curs; /** Native cursors are either master cursor or sub_cursors - no need to AddRef **/
-    bool  first_time;
-    char  *col_name;
-    uint32_t col_name_len;
 };
 
 static
@@ -81,18 +76,6 @@ rc_t CC simple_sub_select ( void *data, const VXformInfo *info,
     	const int32_t *remote_idx = argv[1].u.data.base;
 	idx=remote_idx[argv[1].u.data.first_elem];
     }
-    if(self->native_curs && self->first_time){ /*** can we use native cursor for the data? ***/
-	SubSelect *mself = (SubSelect *)self;
-	uint32_t idx;
-	rc = VCursorAddColumn ( mself->native_curs, & idx, "%.*s", mself->col_name_len, mself->col_name );
-	if(rc == 0 || GetRCState(rc) == rcExists){
-		VCursorRelease( mself->curs);
-		mself->curs = mself->native_curs;
-		mself->idx  = idx;
-	}
-	mself->first_time = false;
-	rc = 0; /** reset rc? **/
-    }
 	
     /* sub-select */
     rc = VCursorCellDataDirect ( self -> curs, * remote_row_id, self -> idx,
@@ -139,53 +122,39 @@ rc_t CC simple_sub_select ( void *data, const VXformInfo *info,
 /* open_sub_cursor
  */
 static
-rc_t open_sub_cursor ( SubSelect **fself, const VXfactInfo *info, const VFactoryParams *cp, const VCursor *native_curs )
+rc_t open_sub_cursor ( SubSelect **fself, const VXfactInfo *info, const VFactoryParams *cp )
 {
     rc_t rc=0;
+    const VDatabase *db;
     const VTable *tbl, *ftbl = NULL;
-    char name[256]="";
-    const VCursor *curs;
 
     if ( cp -> argv [ 0 ] . count > 0 )
     {
-	sprintf(name,"%.*s",(int)cp->argv[0].count,cp->argv[0].data.ascii);
-	rc = VCursorLinkedCursorGet(native_curs,name,&curs);
-	if(rc == 0){
-		rc = VCursorOpenParentRead(curs,&ftbl);
-		if(rc != 0)
-			return rc;
-		VCursorAddRef(curs);
-		tbl = ftbl;
-	} else {
-		const VDatabase *db;
-		rc = VTableOpenParentRead ( info -> tbl, & db );
-		if(rc != 0) return rc;
-		rc = VDatabaseOpenTableRead ( db, & ftbl,name);
-		if(rc != 0) return rc;
-		VDatabaseRelease ( db );
-		tbl = ftbl;
-		rc = VTableCreateCachedCursorRead ( tbl, (const VCursor**)& curs, 256*1024*1024 ); /*** some random io is expected ***/
-		if(rc != 0) return rc;
-		rc = VCursorPermitPostOpenAdd( curs );
-		if(rc != 0) return rc;
-		rc = VCursorOpen( curs );
-		if(rc != 0) return rc;
-		rc = VCursorLinkedCursorSet(native_curs,name,curs);
-		if(rc != 0) return rc;
-	}
-	native_curs = NULL;
+    	rc = VTableOpenParentRead ( info -> tbl, & db );
+        if ( rc ==0 )
+        {
+            rc = VDatabaseOpenTableRead ( db, & ftbl,"%.*s",
+		        ( int ) cp -> argv [ 0 ] . count, cp -> argv [ 0 ] . data . ascii );
+            VDatabaseRelease ( db );
+            tbl = ftbl;
+        }
     }
-    else /** we don't now if native_curs permits adding columns **/
+    else
     {
         tbl = info -> tbl;
-	rc = VTableCreateCachedCursorRead ( tbl, & curs, 0 ); /*** some random io is expected ***/
     }
+
+	
     if ( rc == 0 )
     {
+        const VCursor *curs;
+        rc = VTableCreateCachedCursorRead ( tbl, & curs, 4*1024*1024 ); /*** some random io is expected ***/
+        if ( rc == 0 )
+        {
             uint32_t idx;
             rc = VCursorAddColumn ( curs, & idx, "%.*s",
                 ( int ) cp -> argv [ 1 ] . count, cp -> argv [ 1 ] . data . ascii );
-            if ( rc == 0 || GetRCState(rc) == rcExists)
+            if ( rc == 0 )
             {
                 rc = VCursorOpen ( curs );
                 if ( rc == 0 )
@@ -210,11 +179,6 @@ rc_t open_sub_cursor ( SubSelect **fself, const VXfactInfo *info, const VFactory
                             {
                                 self -> curs = curs;
                                 self -> idx = idx;
-				self->native_curs = native_curs;
-				self->first_time  = true;
-				self->col_name_len  = cp->argv[1].count;
-				self->col_name = malloc(self->col_name_len);
-				memcpy(self->col_name,cp->argv[1].data.ascii,self->col_name_len);
                                 * fself = self;
                                 if ( ftbl != NULL )
                                     VTableRelease ( ftbl );
@@ -225,7 +189,9 @@ rc_t open_sub_cursor ( SubSelect **fself, const VXfactInfo *info, const VFactory
                 }
             }
             VCursorRelease ( curs );
+        }
     }
+
     if ( ftbl != NULL )
         VTableRelease ( ftbl );
 
@@ -239,8 +205,7 @@ static
 void CC close_sub_cursor ( void *data )
 {
     SubSelect *self = data;
-    if(self->curs != self->native_curs) VCursorRelease ( self -> curs );
-    free ( self->col_name);
+    VCursorRelease ( self -> curs );
     free ( self );
 }
 
@@ -259,7 +224,7 @@ VTRANSFACT_IMPL ( vdb_simple_sub_select_1, 1, 0, 0 ) ( const void *Self, const V
     assert ( cp -> argc == 2 );
     assert ( dp -> argc == 1 || dp -> argc == 2);
 
-    rc = open_sub_cursor ( & fself, info, cp, (const VCursor*)info->parms );
+    rc = open_sub_cursor ( & fself, info, cp );
     if ( rc == 0 )
     {
         rslt -> self = fself;
diff --git a/libs/vxf/sprintf.c b/libs/vxf/sprintf.c
index 385d25c..f275f97 100644
--- a/libs/vxf/sprintf.c
+++ b/libs/vxf/sprintf.c
@@ -24,1256 +24,132 @@
  *
  */
 #include <vdb/extern.h>
-
+#include <insdc/insdc.h>
+#include <klib/defs.h>
+#include <klib/rc.h>
+#include <vdb/table.h>
 #include <vdb/xform.h>
 #include <vdb/schema.h>
+#include <kdb/meta.h>
 #include <klib/data-buffer.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <klib/debug.h>
-#include <klib/rc.h>
+#include <bitstr.h>
+#include <os-native.h>
 #include <sysalloc.h>
 
+#include <stdint.h>
 #include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
 #include <assert.h>
+#include <string.h>
+#include <stdio.h>
 
-
-/* the number of PrintFmt, PrintArg and String
-   elements to allocate in function-local storage */
-#define LOCAL_FMT_COUNT 64
-
-
-typedef struct Sprintf Sprintf;
-struct Sprintf
-{
-    const PrintFmt *fmt;
-    PrintArg *args;
-    String *str;
-};
-
-static uint8_t const radix2_size [ 4 ] = { 8, 16, 32, 64 };
-static uint8_t const radix8_size [ 4 ] = { 3, 6, 11, 22 };
-static uint8_t const radix10_size [ 4 ] = { 3, 5, 10, 20 };
-static uint8_t const radix16_size [ 4 ] = { 2, 4, 8, 16 };
-
-#if _DEBUGGING
 static
-rc_t validate_obj ( const Sprintf *obj, bool fmt_only )
+rc_t CC sprintf_1 ( void *data, const VXformInfo *info, int64_t row_id,
+                   VRowResult *rslt, uint32_t argc, const VRowData argv [] )
 {
-    uint32_t i;
-
-    /* validate the format blocks */
-    for ( i = 0; obj -> fmt [ i ] . type != sptTerm; ++ i )
-    {
-        /* at this point, only looking for bad formats */
-        if ( obj -> fmt [ i ] . type == sptLiteral )
-        {
-            if ( obj -> fmt [ i ] . u . l . text == NULL )
-                return RC ( rcXF, rcFunction, rcConstructing, rcString, rcNull );
-            if ( obj -> fmt [ i ] . u . l . size == 0 )
-                return RC ( rcXF, rcFunction, rcConstructing, rcString, rcEmpty );
-            if ( string_chr ( obj -> fmt [ i ] . u . l . text, obj -> fmt [ i ] . u . l . size, 0 ) != NULL )
-                return RC ( rcXF, rcFunction, rcConstructing, rcString, rcInvalid );
-        }
+    rc_t rc;
+    uint32_t const *val = argv[0].u.data.base;
+    int n;
+    int count;
+    
+    assert(argv[0].u.data.elem_bits == sizeof(val[0]) * 8);
+    val += argv[0].u.data.first_elem;
+    
+    n = 11;
+    rslt->data->elem_bits = rslt->elem_bits;
+
+    /* loop up to 2 times for resize errors */
+    for (count = 0; count != 2; ++count) {
+
+        /* set buffer size */
+        rc = KDataBufferResize(rslt->data, n);
+        if (rc) return rc;
+        
+        /* try snprintf and check return */
+        n = snprintf(rslt->data->base, n, "%u", val[0]);
+        if ( n >= 0 && n < rslt->data->elem_count)
+        {
+            /* "n" is valid */
+            rslt->elem_count = n;
+            return 0;
+        }
+
+        /* "n" says we probably didn't have enough buffer space
+           loop again */
+        if ( n < 0 )
+            n = rslt->data->elem_count * 2;
     }
-
-    return 0;
+    return RC(rcXF, rcFunction, rcExecuting, rcConstraint, rcViolated);
 }
-#endif
 
 static
-size_t get_radix_size ( const PrintFmt *fmt, uint32_t selector )
+rc_t CC sprintf_3 ( void *data, const VXformInfo *info, int64_t row_id,
+    VRowResult *rslt, uint32_t argc, const VRowData argv [] )
 {
-    const uint8_t *radix_size;
-    switch ( fmt -> radix )
-    {
-    case 0:
+    rc_t rc;
+    char const *str = argv[0].u.data.base;
+    uint32_t const *len = argv[1].u.data.base;
+    uint32_t const *val = argv[2].u.data.base;
+    int n;
+    int count;
+    
+    assert(argv[0].u.data.elem_bits == sizeof(str[0]) * 8);
+    assert(argv[1].u.data.elem_bits == sizeof(len[0]) * 8);
+    assert(argv[2].u.data.elem_bits == sizeof(val[0]) * 8);
+
+    str += argv[0].u.data.first_elem;
+    len += argv[1].u.data.first_elem;
+    val += argv[2].u.data.first_elem;
+    
+    if (argv[0].u.data.elem_count == 0 && len[0] == 0) {
+        rslt->elem_count = 0;
         return 0;
-    case 10:
-        radix_size = radix10_size;
-        break;
-    case 16:
-        radix_size = radix16_size;
-        break;
-    case 8:
-        radix_size = radix8_size;
-        break;
-    default:
-        radix_size = radix2_size;
     }
-    return radix_size [ selector ];
-}
-
-typedef struct FuncArgs FuncArgs;
-struct FuncArgs
-{
-    const VRowData *argv;
-    uint32_t argc;
-    uint32_t idx;
-};
-
-static
-const void *access_cell_data ( FuncArgs *args, uint64_t *row_len, size_t *size )
-{
-    size_t elem_bytes;
-    const uint8_t *data;
 
-    if ( args -> idx == args -> argc )
-        return NULL;
+    n = argv[0].u.data.elem_count + len[0] + 1;
+    rslt->data->elem_bits = rslt->elem_bits;
 
-    elem_bytes = args -> argv [ args -> idx ] . u . data . elem_bits / 8;
-    assert ( elem_bytes * 8 == args -> argv [ args -> idx ] . u . data . elem_bits );
+    for (count = 0; count != 2; ++count) {
 
-    data = args -> argv [ args -> idx ] . u . data . base;
-    * row_len = args -> argv [ args -> idx ] . u . data . elem_count;
-
-    data += args -> argv [ args -> idx ] . u . data . first_elem * elem_bytes;
-
-    if ( size != NULL )
-        * size = ( size_t ) ( * row_len * elem_bytes );
-
-    ++ args -> idx;
-    return data;
-}
+        rc = KDataBufferResize(rslt->data, n);
+        if (rc) return rc;
 
-static
-rc_t capture_uint_scalar ( FuncArgs *args, uint64_t *val )
-{
-    uint64_t row_len;
-    const void *data = access_cell_data ( args, & row_len, NULL );
-
-    if ( data == NULL )
-        return RC ( rcXF, rcFunction, rcExecuting, rcData, rcNull );
-
-    if ( row_len != 1 )
-        return RC ( rcXF, rcFunction, rcExecuting, rcRange, rcExcessive );
-
-    switch ( args -> argv [ args -> idx - 1 ] . u . data . elem_bits )
-    {
-    case 8:
-        * val = * ( const uint8_t* ) data;
-        break;
-    case 16:
-        * val = * ( const uint16_t* ) data;
-        break;
-    case 32:
-        * val = * ( const uint32_t* ) data;
-        break;
-    case 64:
-        * val = * ( const uint64_t* ) data;
-        break;
-    }
-
-    return 0;
-}
-
-static
-rc_t CC sprintf_func ( void *obj,
-     const VXformInfo *info, int64_t row_id, VRowResult *rslt,
-     uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    size_t cell_size;
-    uint32_t str_idx, fmt_idx, arg_idx;
-
-    Sprintf *self = obj;
-
-    const PrintFmt *fmt = self -> fmt;
-    PrintArg *args = self -> args;
-    String *str = self -> str;
-
-    FuncArgs vargs;
-    vargs . argv = argv;
-    vargs . argc = argc;
-    vargs . idx = 0;
-
-    str_idx = fmt_idx = arg_idx = 0;
-
-#if _DEBUGGING
-    rc = validate_obj ( self, false );
-    if ( rc != 0 )
-        KDbgMsg ( "%s - self is bad on entry: %R\n", __func__, rc );
-#endif
-
-    /* initial pass - prepare argument list & estimate cell size */
-    for ( rc = 0, cell_size = 0; fmt [ fmt_idx ] . type != sptTerm; ++ fmt_idx )
-    {
-        size_t arg_size;
-        bool check_index;
-        uint64_t row_len, start_idx, select_len;
-        uint32_t ext_start_index, ext_stop_index;
-
-        row_len = 0;
-
-        /* test for external field width, precision, index */
-        if ( fmt [ fmt_idx ] . ext_field_width )
-        {
-            rc = capture_uint_scalar ( & vargs, & args [ arg_idx ++ ] . u );
-            if ( rc != 0 )
-                return rc;
+        if (len[0]) {
+            n = snprintf(rslt->data->base, n, "%.*s%0*u",
+                     (int)argv[0].u.data.elem_count, str,
+                     (int)len[0], val[0]);
         }
-        if ( fmt [ fmt_idx ] . ext_precision )
-        {
-            rc = capture_uint_scalar ( & vargs, & args [ arg_idx ++ ] . u );
-            if ( rc != 0 )
-                return rc;
+        else {
+            /* snprintf puts '\0' when len[0] == 0
+               and adds this characted into returned count */
+            n = snprintf(rslt->data->base, n, "%.*s",
+                     (int)argv[0].u.data.elem_count, str);
         }
-
-        if ( ! fmt [ fmt_idx ] . ext_start_index )
-            start_idx = fmt [ fmt_idx ] . u . f . start_idx;
-        else
+        if (n >= 0 && n < rslt->data->elem_count)
         {
-            /* if the start index is the last in vector,
-               this needs to be suspended until later */
-            if ( ! fmt [ fmt_idx ] . inf_start_index )
-            {
-                rc = capture_uint_scalar ( & vargs, & start_idx );
-                if ( rc != 0 )
-                    return rc;
-                args [ arg_idx ] . u = start_idx;
-            }
-
-            ext_start_index = arg_idx ++;
+            rslt->elem_count = n;
+            return 0;
         }
 
-        if ( ! fmt [ fmt_idx ] . ext_stop_index && ! fmt [ fmt_idx ] . ext_select_len )
-            select_len = fmt [ fmt_idx ] . u . f . select_len;
-        else
-        {
-            /* if the stop index is the last in vector,
-               this needs to be suspended until later */
-            if ( ! fmt [ fmt_idx ] . inf_stop_index )
-            {
-                rc = capture_uint_scalar ( & vargs, & select_len );
-                if ( rc != 0 )
-                    return rc;
-                args [ arg_idx ] . u = select_len;
-            }
-            ext_stop_index = arg_idx ++;
-        }
-
-        /* make an estimate of the bytes needed by sprintf engine for argument
-           get row_len at the same time */
-        check_index = false;
-        switch ( fmt [ fmt_idx ] . type )
-        {
-        case sptLiteral:                     /* char literal        - arg in fmt   */
-            assert ( fmt [ fmt_idx ] . u . l . text != NULL );
-            arg_size = fmt [ fmt_idx ] . u . l . size;
-            row_len = arg_size;
-            -- arg_idx;
-            break;
-        case sptSignedInt8Vect:              /* signed vector int   - arg is d8    */
-            args [ arg_idx ] . d8 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 0 ) + 1;
-            break;
-        case sptSignedInt16Vect:             /* signed vector int   - arg is d16   */
-            args [ arg_idx ] . d16 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 1 ) + 1;
-            break;
-        case sptSignedInt32Vect:             /* signed vector int   - arg is d32   */
-            args [ arg_idx ] . d32 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 2 ) + 1;
-            break;
-        case sptSignedInt64Vect:             /* signed vector int   - arg is d64   */
-            args [ arg_idx ] . d64 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 3 ) + 1;
-            break;
-        case sptUnsignedInt8Vect:            /* unsigned vector int - arg is u8    */
-            args [ arg_idx ] . u8 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 0 ) + 2;
-            break;
-        case sptUnsignedInt16Vect:           /* unsigned vector int - arg is u16   */
-            args [ arg_idx ] . u16 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 1 ) + 2;
-            break;
-        case sptUnsignedInt32Vect:           /* unsigned vector int - arg is u32   */
-            args [ arg_idx ] . u32 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 2 ) + 2;
-            break;
-        case sptUnsignedInt64Vect:           /* unsigned vector int - arg is u64   */
-            args [ arg_idx ] . u64 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 3 ) + 2;
-            break;
-        case sptFloat32Vect:                 /* vector float        - arg is f32   */
-            args [ arg_idx ] . f32 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = 32;
-            break;
-        case sptFloat64Vect:                 /* vector float        - arg is f64   */
-            args [ arg_idx ] . f64 = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = 32;
-            break;
-        case sptFloatLongVect:               /* vector float        - arg is flong */
-            args [ arg_idx ] . flong = access_cell_data ( & vargs, & row_len, NULL );
-            arg_size = 32;
-            break;
-        case sptString:                      /* vector character    - arg is S     */
-            str [ str_idx ] . addr = access_cell_data ( & vargs, & row_len, & str [ str_idx ] . size );
-            str [ str_idx ] . len = ( uint32_t ) str [ str_idx ] . size;
-            arg_size = str [ str_idx ] . size;
-            args [ arg_idx ] . S = & str [ str_idx ++ ];
-            check_index = true;
-            break;
-        case sptUCS2String:                  /* vector character    - arg is S     */
-        case sptUTF32String:                 /* vector character    - arg is S     */
-            return RC ( rcXF, rcFunction, rcExecuting, rcType, rcUnsupported );
-        case sptRowId:                       /* current row id      - arg is d     */
-            args [ arg_idx ] . d = row_id;
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 3 ) + 1;
-            ++ arg_idx;
-            continue;
-        case sptRowLen:                      /* current row length  - arg is u     */
-            access_cell_data ( & vargs, & args [ arg_idx ] . u, NULL );
-            arg_size = get_radix_size ( & fmt [ fmt_idx ], 3 ) + 2;
-            ++ arg_idx;
-            continue;
-        }
-
-        /* back-fill based upon row-length in case of non-empty rows */
-        if ( row_len != 0 )
-        {
-            /* start index is last in row */
-            if ( fmt [ fmt_idx ] . inf_start_index )
-                start_idx = args [ ext_start_index ] . u = row_len - 1;
-
-            /* end index is last in row */
-            if ( fmt [ fmt_idx ] . inf_stop_index )
-                select_len = args [ ext_stop_index ] . u = row_len - 1;
-        }
-
-        /* detect runtime error condition */
-        if ( start_idx >= row_len )
-            args [ arg_idx ] . p = NULL;
-        else
-        {
-            /* adjust size by index */
-            if ( check_index )
-            {
-                /* the select_len should be correct,
-                   unless the end is a stop coordinate */
-                if ( fmt [ fmt_idx ] . ext_stop_index )
-                {
-                    if ( select_len <= start_idx )
-                        select_len = 1;
-                    else
-                        select_len -= start_idx - 1;
-                }
-
-                /* select_len of 0 means infinite */
-                if ( select_len == 0 )
-                    select_len = row_len - start_idx;
-
-                /* real size after sub-str */
-                arg_size = argv [ vargs . idx - 1 ] . u . data . elem_bits * select_len / 8;
-            }
-
-            /* incorporate size into calcuation */
-            cell_size += arg_size;
-        }
-
-        /* done with argument */
-        ++ arg_idx;
+        if ( n < 0 )
+            n = ( argv[0].u.data.elem_count + len[0] + 1 ) * 2;
     }
-
-    /* round cell-size up to nearest 4K */
-    cell_size = ( cell_size + 4095 ) & ~ ( size_t ) 4095;
-
-    /* set output buffer size */
-    rc = KDataBufferResize( rslt -> data, cell_size );
-    if ( rc == 0 )
-    {
-#if _DEBUGGING
-        rc = validate_obj ( self, false );
-        if ( rc != 0 )
-            KDbgMsg ( "%s - self is bad before invoking structured_sprintf: %R\n", __func__, rc );
-#endif
-        /* invoke sprintf engine */
-        rc = structured_sprintf ( rslt -> data -> base,
-            rslt -> data -> elem_count, & cell_size, fmt, args );
-
-        /* recover from buffer insufficient */
-        if ( GetRCState ( rc ) == rcInsufficient && GetRCObject ( rc ) == rcBuffer )
-        {
-            rc = KDataBufferResize ( rslt -> data, cell_size + 1 );
-            if ( rc == 0 )
-            {
-                rc = structured_sprintf ( rslt -> data -> base,
-                    rslt -> data -> elem_count, & cell_size, fmt, args );
-            }
-        }
-
-        if ( rc == 0 )
-        {
-            /* set the return parameters */
-            rc = KDataBufferResize ( rslt -> data, cell_size );
-            if ( rc == 0 )
-            {
-                rslt -> elem_count = cell_size;
-                rslt -> elem_bits = 8;
-            }
-        }
-    }
-
-    return rc;
-}
-
-typedef struct ParseData ParseData;
-struct ParseData
-{
-    KDataBuffer overflow;
-    size_t fmt_size;
-    size_t lit_size;
-    PrintFmt *fmt;
-    uint32_t str_idx;
-    uint32_t fmt_idx;
-    uint32_t arg_idx;
-};
-
-/* create_overflow
- *  create a buffer so large that it cannot overflow again
- *  copy in existing structures
- */
-static
-rc_t create_overflow ( ParseData *pd, uint32_t fmt_idx )
-{
-    /* infer that we can never have more format items than characters in the string... */
-
-    /* our size will create a format for every byte.
-       this should be a total overkill. */
-    size_t buff_size = sizeof pd -> fmt [ 0 ] * pd -> fmt_size;
-
-    /* make the buffer */
-    rc_t rc = KDataBufferMakeBytes ( & pd -> overflow, buff_size );
-    if ( rc == 0 )
-    {
-        /* capture pointers to stack structures */
-        const PrintFmt *fmt = pd -> fmt;
-
-        /* destination pointer */
-        pd -> fmt = pd -> overflow . base;
-
-        /* copy existing data */
-        memcpy ( pd -> fmt, fmt, fmt_idx * sizeof pd -> fmt [ 0 ] );
-   }
-
-    pd -> fmt_idx = fmt_idx;
-
-    return rc;
+    return RC(rcXF, rcFunction, rcExecuting, rcConstraint, rcViolated);
 }
 
-typedef struct VAList VAList;
-struct VAList
-{
-    const VFunctionParams *dp;
-    uint32_t idx;
-};
-
-static
-rc_t check_integer_arg ( VAList *vargs )
+VTRANSFACT_IMPL ( vdb_sprintf, 1, 0, 0 ) ( const void *Self, const VXfactInfo *info,
+    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
 {
-    if ( vargs -> idx == vargs -> dp -> argc )
-        return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcInsufficient );
-
-    switch ( vargs -> dp -> argv [ vargs -> idx ] . desc . domain )
-    {
-    case vtdBool:
-    case vtdInt:
-    case vtdUint:
+    switch (dp->argc) {
+    case 1:
+        rslt->u.rf = sprintf_1;
         break;
-    default:
-        return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
-    }
-
-    switch ( VTypedescSizeof ( & vargs -> dp -> argv [ vargs -> idx ] . desc ) )
-    {
-    case 8:
-    case 16:
-    case 32:
-    case 64:
+    case 3:
+        rslt->u.rf = sprintf_3;
         break;
     default:
-        return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
-    }
-
-    ++ vargs -> idx;
-    return 0;
-}
-
-static
-rc_t extract_size_modifier ( VAList *vargs, char *size_modifier )
-{
-    switch ( vargs -> dp -> argv [ vargs -> idx ] . desc . domain )
-    {
-    case vtdBool:
-        * size_modifier = 0;
-        break;
-    case vtdUint:
-    case vtdInt:
-        switch ( VTypedescSizeof ( & vargs -> dp -> argv [ vargs -> idx ] . desc ) )
-        {
-        case 8:
-            * size_modifier = 't';
-            break;
-        case 16:
-            * size_modifier = 'h';
-            break;
-        case 32:
-            * size_modifier = 0;
-            break;
-        case 64:
-            * size_modifier = 'l';
-            break;
-        default:
-            return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
-        }
-        break;
-    case vtdFloat:
-        switch ( VTypedescSizeof ( & vargs -> dp -> argv [ vargs -> idx ] . desc ) )
-        {
-        case 32:
-            * size_modifier = 'h';
-            break;
-        case 64:
-            * size_modifier = 0;
-            break;
-        default:
-            return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
-        }
-        break;
-    case vtdAscii:
-        * size_modifier = 0;
-        break;
-    case vtdUnicode:
-        switch ( vargs -> dp -> argv [ vargs -> idx ] . desc . intrinsic_bits )
-        {
-        case 8:
-            * size_modifier = 0;
-            break;
-        case 16:
-            * size_modifier = 'h';
-            break;
-        case 32:
-            * size_modifier = 'l';
-            break;
-        default:
-            return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
-        }
+        return RC(rcXF, rcFunction, rcConstructing, rcParam, rcUnsupported);
         break;
-    default:
-        return RC ( rcXF, rcFunction, rcConstructing, rcParam, rcIncorrect );
     }
+    rslt->variant = vftRow;
     return 0;
 }
-
-
-/* parse_format_string
- *  parse format string and args into structured format
- */
-static
-rc_t parse_format_string ( const char *fmt_str, ParseData *pd, VAList *vargs )
-{
-    rc_t rc;
-    uint32_t i, fmt_idx;
-
-    PrintFmt *fmt = pd -> fmt;
-
-    /* initialize returned counters */
-    pd -> lit_size = 0;
-    pd -> str_idx = pd -> fmt_idx = pd -> arg_idx = 0;
-
-    /* loop over format string */
-    for ( rc = 0, i = fmt_idx = 0; fmt_str [ i ] != 0; ++ i )
-    {
-        uint32_t domain;
-        bool alternate, numeric;
-        char size_modifier, time_modifier;
-        bool has_width, has_precision, has_index;
-
-        /* loop to gather literal portions */
-        uint32_t start;
-        for ( start = i; ; ++ i )
-        {
-            /* run until we hit start of substitution token
-               or until we hit end of format string */
-            if ( fmt_str [ i ] != 0 && fmt_str [ i ] != '%' )
-                continue;
-
-            /* detect a literal string */
-            if ( i != start )
-            {
-                /* expand into overflow */
-                if ( fmt_idx == LOCAL_FMT_COUNT )
-                {
-                    rc = create_overflow ( pd, fmt_idx );
-                    if ( rc != 0 )
-                        return rc;
-
-                    fmt = pd -> fmt;
-                }
-
-                /* create a text-literal format */
-                memset ( & fmt [ fmt_idx ], 0, sizeof fmt [ 0 ] );
-                fmt [ fmt_idx ] . u . l . text = & fmt_str [ start ];
-                fmt [ fmt_idx ] . u . l . size = i - start;
-                pd -> lit_size += i - start;
-                fmt [ fmt_idx ] . fmt = spfText;
-                fmt [ fmt_idx ] . type = sptLiteral;
-
-                /* increment counter */
-                ++ fmt_idx;
-            }
-
-            /* detect escape sequence */
-            if ( fmt_str [ i ] == 0 || fmt_str [ i + 1 ] != '%' )
-                break;
-
-            /* skip over escape */
-            start = ++ i;
-        }
-
-        /* done when NUL byte is seen */
-        if ( fmt_str [ i ] == 0 )
-            break;
-
-        /* detect overflow */
-        if ( fmt_idx == LOCAL_FMT_COUNT )
-        {
-            rc = create_overflow ( pd, fmt_idx );
-            if ( rc != 0 )
-                return rc;
-
-            fmt = pd -> fmt;
-        }
-
-        /* initial format
-         *  thousands_separate    = false
-         *  add_prefix            = false
-         *  force_decimal_point   = false
-         *  leave_trailing_zeros  = false
-         *  print_time            = false
-         *  print_date            = false
-         *  print_weekday         = false
-         *  print_timezone        = false
-         *  hour_24               = false
-         *  sign                  = 0
-         *  left_fill             = space
-         */
-        memset ( & fmt [ fmt_idx ], 0, sizeof fmt [ 0 ] );
-        fmt [ fmt_idx ] . left_fill = ' ';
-
-        /* scan flags */
-        alternate = false;
-        while ( 1 )
-        {
-            switch ( fmt_str [ ++ i ] )
-            {
-                /* plus and space modify application of sign
-                   to signed integer and floating point conversions.
-                   plus overrides space. */
-            case ' ':
-                if ( fmt [ fmt_idx ] . sign == 0 )
-            case '+':
-                    fmt [ fmt_idx ] . sign = fmt_str [ i ];
-                continue;
-
-                /* dash indicates left-alignment. indicate this
-                   by setting "left_fill" to NUL. */
-            case '-':
-                fmt [ fmt_idx ] . left_fill = 0;
-                continue;
-
-                /* zero indicates an alternate left-fill for
-                   numeric conversions. the zero is inserted before
-                   any sign character in { '+', '-' or ' ' }.
-                   since "left_fill" is also used to indicate
-                   alignment, only store when right aligning. */
-            case '0':
-                if ( fmt [ fmt_idx ] . left_fill != 0 )
-                    fmt [ fmt_idx ] . left_fill = '0';
-                continue;
-
-                /* hash indicates that the formatter should use an
-                   "alternate" approach. that approach is specific
-                   to the format. */
-            case '#':
-                alternate = true;
-                continue;
-
-                /* comma ( or apostrophe outside of US ) indicates
-                   that the integer portion of a numeral should use
-                   a comma as a thousands separator for legibility. */
-            case ',':
-            case '\'':
-                fmt [ fmt_idx ] . thousands_separate = 1;
-                continue;
-            }
-
-            /* we've hit a non-flag character */
-            break;
-        }
-
-        /* minimum field width */
-        has_width = false;
-        if ( isdigit ( fmt_str [ i ] ) )
-        {
-            /* literal */
-            has_width = true;
-            fmt [ fmt_idx ] . u . f . min_field_width = fmt_str [ i ] - '0';
-            while ( isdigit ( fmt_str [ ++ i ] ) )
-            {
-                fmt [ fmt_idx ] . u . f . min_field_width *= 10;
-                fmt [ fmt_idx ] . u . f . min_field_width += fmt_str [ i ] - '0';
-            }
-        }
-        else if ( fmt_str [ i ] == '*' )
-        {
-            /* external */
-            rc = check_integer_arg ( vargs );
-            if ( rc != 0 )
-                return rc;
-
-            has_width = true;
-            fmt [ fmt_idx ] . ext_field_width = 1;
-            ++ pd -> arg_idx;
-            ++ i;
-        }
-
-        /* precision */
-        has_precision = false;
-        if ( fmt_str [ i ] == '.' )
-        {
-            /* a single dot implies a precision value of 0 */
-            has_precision = true;
-
-            if ( isdigit ( fmt_str [ ++ i ] ) )
-            {
-                /* a literal precision */
-                fmt [ fmt_idx ] . u . f . precision = fmt_str [ i ] - '0';
-                while ( isdigit ( fmt_str [ ++ i ] ) )
-                {
-                    fmt [ fmt_idx ] . u . f . precision *= 10;
-                    fmt [ fmt_idx ] . u . f . precision += fmt_str [ i ] - '0';
-                }
-            }
-            else if ( fmt_str [ i ] == '*' )
-            {
-                /* external */
-                rc = check_integer_arg ( vargs );
-                if ( rc != 0 )
-                    return rc;
-
-                fmt [ fmt_idx ] . ext_precision = 1;
-                ++ pd -> arg_idx;
-                ++ i;
-            }
-            else if ( fmt_str [ i ] == '-' )
-            {
-                /* eat a negative precision - treat as 0 */
-                while ( isdigit ( fmt_str [ ++ i ] ) )
-                    ( void ) 0;
-            }
-        }
-
-        /* index - given when parameter is a vector */
-        has_index = false;
-        if ( fmt_str [ i ] == ':' )
-        {
-            bool has_start, has_len, has_end, end_is_stop;
-            has_start = has_len = has_end = end_is_stop = false;
-
-            /* parameter is taken as a vector,
-               with a default index starting at 0 */
-            has_index = true;
-
-            if ( isdigit ( fmt_str [ ++ i ] ) )
-            {
-                /* literal index */
-                fmt [ fmt_idx ] . u . f . start_idx = fmt_str [ i ] - '0';
-                while ( isdigit ( fmt_str [ ++ i ] ) )
-                {
-                    fmt [ fmt_idx ] . u . f . start_idx *= 10;
-                    fmt [ fmt_idx ] . u . f . start_idx += fmt_str [ i ] - '0';
-                }
-                has_start = true;
-            }
-            else switch ( fmt_str [ i ] )
-            {
-            case '*':
-                /* external */
-                rc = check_integer_arg ( vargs );
-                if ( rc != 0 )
-                    return rc;
-
-                fmt [ fmt_idx ] . ext_start_index = 1;
-                ++ pd -> arg_idx;
-                ++ i;
-                has_start = true;
-                break;
-            case '$':
-                fmt [ fmt_idx ] . inf_start_index = 1;
-                fmt [ fmt_idx ] . ext_start_index = 1;
-                ++ pd -> arg_idx;
-                ++ i;
-                has_start = true;
-                break;
-            }
-
-            /* detect range */
-            switch ( fmt_str [ i ] )
-            {
-                /* given as start-stop */
-            case '-':
-                end_is_stop = true;
-
-                /* given as start/len */
-            case '/':
-
-                has_len = true;
-
-                if ( isdigit ( fmt_str [ ++ i ] ) )
-                {
-                    /* literal selection length or end */
-                    fmt [ fmt_idx ] . u . f . select_len = fmt_str [ i ] - '0';
-                    while ( isdigit ( fmt_str [ ++ i ] ) )
-                    {
-                        fmt [ fmt_idx ] . u . f . select_len *= 10;
-                        fmt [ fmt_idx ] . u . f . select_len += fmt_str [ i ] - '0';
-                    }
-                    has_end = true;
-                }
-                else switch ( fmt_str [ i ] )
-                {
-                case '*':
-                    /* external */
-                    rc = check_integer_arg ( vargs );
-                    if ( rc != 0 )
-                        return rc;
-
-                    /* external selection length or end */
-                    fmt [ fmt_idx ] . ext_stop_index = end_is_stop;
-                    fmt [ fmt_idx ] . ext_select_len = ! end_is_stop;
-                    ++ pd -> arg_idx;
-                    ++ i;
-                    has_end = true;
-                    break;
-                case '$':
-                    /* ignore index end if start is infinite */
-                    if ( ! fmt [ fmt_idx ] . inf_start_index )
-                    {
-                        fmt [ fmt_idx ] . inf_stop_index = 1;
-                        fmt [ fmt_idx ] . ext_stop_index = 1;
-                        ++ pd -> arg_idx;
-                        end_is_stop = has_end = true;
-                    }
-                    ++ i;
-                    break;
-                case '-':
-                    /* negatives are garbage */
-                    while ( isdigit ( fmt_str [ ++ i ] ) )
-                        ( void ) 0;
-                    break;
-                default:
-                    end_is_stop = false;
-                }
-                break;
-            }
-
-            if ( ! has_len && has_start )
-                fmt [ fmt_idx ] . u . f . select_len = 1;
-        }
-
-        /* size - accept for brownie-points and for KTime */
-        size_modifier = time_modifier = 0;
-        switch ( fmt_str [ i ] )
-        {
-            /* "Tiny" modifier - like "hh" in C format */
-        case 't':
-            /* "Half" modifier - same as C format */
-        case 'h':
-            /* "Long" modifier - means 64-bit for integers, otherwise like C */
-        case 'l':
-            size_modifier = time_modifier = fmt_str [ i ++ ];
-            break;
-            /* "siZe" modifier - whatever the size of size_t is */
-        case 'z':
-            ++ i;
-            time_modifier = 'z';
-            if ( sizeof ( size_t ) == sizeof ( uint64_t ) )
-                size_modifier = 'l';
-            break;
-        }
-
-        /* output format
-           describes the formatting to apply on output
-           if precision has not been set, give it a default value */
-        domain = 0;
-        numeric = false;
-        switch ( fmt_str [ i ] )
-        {
-            /* decimal signed integer */
-        case 'd':
-        case 'i':
-            fmt [ fmt_idx ] . radix = 10;
-            fmt [ fmt_idx ] . fmt = spfSignedInt;
-            numeric = true;
-            if ( ! has_precision )
-                fmt [ fmt_idx ] . u . f . precision = 1;
-            else if ( fmt [ fmt_idx ] . left_fill == '0' )
-                fmt [ fmt_idx ] . left_fill = ' ';
-            domain = vtdInt;
-            break;
-
-            /* decimal unsigned integer */
-        case 'u':
-            fmt [ fmt_idx ] . radix = 10;
-        unsigned_int:
-            fmt [ fmt_idx ] . fmt = spfUnsigned;
-            fmt [ fmt_idx ] . sign = 0;
-            numeric = true;
-            if ( ! has_precision )
-                fmt [ fmt_idx ] . u . f . precision = 1;
-            else if ( fmt [ fmt_idx ] . left_fill == '0' )
-                fmt [ fmt_idx ] . left_fill = ' ';
-            domain = vtdUint;
-            break;
-
-            /* hex unsigned integer */
-        case 'x':
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 16;
-            goto unsigned_int;
-
-            /* upper-case hex unsigned integer */
-        case 'X':
-            fmt [ fmt_idx ] . upper_case_num = 1;
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 16;
-            goto unsigned_int;
-
-            /* octal unsigned integer */
-        case 'o':
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 8;
-            goto unsigned_int;
-
-            /* binary unsigned integer */
-        case 'b':
-            fmt [ fmt_idx ] . add_prefix = alternate;
-            fmt [ fmt_idx ] . radix = 2;
-            goto unsigned_int;
-
-            /* decimal signed floating point */
-        case 'f':
-            fmt [ fmt_idx ] . fmt = spfStdFloat;
-        fmt_float:
-            fmt [ fmt_idx ] . radix = 10;
-            fmt [ fmt_idx ] . force_decimal_point = alternate;
-            numeric = true;
-            if ( ! has_precision )
-                fmt [ fmt_idx ] . u . f . precision = 6;
-            domain = vtdFloat;
-            break;
-
-            /* scientific notation floating point */
-        case 'e':
-            fmt [ fmt_idx ] . fmt = spfSciFloat;
-            goto fmt_float;
-
-            /* "general" floating point */
-        case 'g':
-            fmt [ fmt_idx ] . leave_trailing_zeros = alternate;
-            fmt [ fmt_idx ] . fmt = spfGenFloat;
-            goto fmt_float;
-
-            /* character data */
-        case 's':
-            if ( ! has_precision )
-            /* no break */
-        case 'c':
-                fmt [ fmt_idx ] . u . f . precision = -1;
-            fmt [ fmt_idx ] . fmt = spfText;
-            domain = vtdUnicode;
-            break;
-
-        default:
-            return RC ( rcXF, rcString, rcFormatting, rcFormat, rcUnrecognized );
-        }
-
-        /* handle zero padding for non-numeric cases */
-        if ( ! numeric && fmt [ fmt_idx ] . left_fill == '0' )
-            fmt [ fmt_idx ] . left_fill = ' ';
-
-        /* take size from actual parameter */
-        rc = extract_size_modifier ( vargs, & size_modifier );
-        if ( rc != 0 )
-            return rc;
-
-        /* determine type from argument */
-        switch ( vargs -> dp -> argv [ vargs -> idx ] . desc . domain )
-        {
-        case vtdBool:
-        case vtdUint:
-            switch ( domain )
-            {
-            case vtdBool:
-            case vtdUint:
-            case vtdInt:
-                break;
-            case vtdFloat:
-                fmt [ fmt_idx ] . type_cast = 1;
-                break;
-            default:
-                return RC ( rcXF, rcString, rcFormatting, rcParam, rcIncorrect );
-            }
-
-            switch ( size_modifier )
-            {
-            case 't':
-                fmt [ fmt_idx ] . type = sptUnsignedInt8Vect;
-                break;
-            case 'h':
-                fmt [ fmt_idx ] . type = sptUnsignedInt16Vect;
-                break;
-            case 0:
-                fmt [ fmt_idx ] . type = sptUnsignedInt32Vect;
-                break;
-            case 'l':
-                fmt [ fmt_idx ] . type = sptUnsignedInt64Vect;
-                break;
-            }
-            break;
-
-        case vtdInt:
-            switch ( domain )
-            {
-            case vtdBool:
-            case vtdUint:
-            case vtdInt:
-                break;
-            case vtdFloat:
-                fmt [ fmt_idx ] . type_cast = 1;
-                break;
-            default:
-                return RC ( rcXF, rcString, rcFormatting, rcParam, rcIncorrect );
-            }
-
-            switch ( size_modifier )
-            {
-            case 't':
-                fmt [ fmt_idx ] . type = sptSignedInt8Vect;
-                break;
-            case 'h':
-                fmt [ fmt_idx ] . type = sptSignedInt16Vect;
-                break;
-            case 0:
-                fmt [ fmt_idx ] . type = sptSignedInt32Vect;
-                break;
-            case 'l':
-                fmt [ fmt_idx ] . type = sptSignedInt64Vect;
-                break;
-            }
-            break;
-
-        case vtdFloat:
-            switch ( domain )
-            {
-            case vtdBool:
-            case vtdUint:
-            case vtdInt:
-                fmt [ fmt_idx ] . type_cast = 1;
-                break;
-            case vtdFloat:
-                break;
-            default:
-                return RC ( rcXF, rcString, rcFormatting, rcParam, rcIncorrect );
-            }
-
-            switch ( size_modifier )
-            {
-            case 'h':
-                fmt [ fmt_idx ] . type = sptFloat32Vect;
-                break;
-            case 0:
-                fmt [ fmt_idx ] . type = sptFloat64Vect;
-                break;
-            }
-            break;
-
-        case vtdAscii:
-            switch ( domain )
-            {
-            case vtdAscii:
-            case vtdUnicode:
-                if ( size_modifier != 0 )
-                    fmt [ fmt_idx ] . type_cast = 1;
-                break;
-            default:
-                return RC ( rcXF, rcString, rcFormatting, rcParam, rcIncorrect );
-            }
-
-            fmt [ fmt_idx ] . type = sptString;
-
-            ++ pd -> str_idx;
-            break;
-
-        case vtdUnicode:
-            switch ( domain )
-            {
-            case vtdAscii:
-            case vtdUnicode:
-                switch ( size_modifier )
-                {
-                case 0:
-                    fmt [ fmt_idx ] . type = sptString;
-                    break;
-                case 'h':
-                    fmt [ fmt_idx ] . type_cast = 1;
-                    fmt [ fmt_idx ] . type = sptUCS2String;
-                    break;
-                case 'l':
-                    fmt [ fmt_idx ] . type_cast = 1;
-                    fmt [ fmt_idx ] . type = sptUTF32String;
-                    break;
-                }
-                break;
-            default:
-                return RC ( rcXF, rcString, rcFormatting, rcParam, rcIncorrect );
-            }
-
-            ++ pd -> str_idx;
-            break;
-        }
-
-        /* account for format argument */
-        ++ fmt_idx;
-        ++ pd -> arg_idx;
-        ++ vargs -> idx;
-    }
-
-    /* record final fmt */
-    if ( rc == 0 )
-    {
-        if ( fmt_idx == LOCAL_FMT_COUNT )
-        {
-            rc = create_overflow ( pd, fmt_idx );
-            if ( rc != 0 )
-                return rc;
-
-            fmt = pd -> fmt;
-        }
-
-        memset ( & fmt [ fmt_idx ++ ], 0, sizeof fmt [ 0 ] );
-
-        /* if not all arguments were consumed, should this be an error? */
-        if ( vargs -> idx != vargs -> dp -> argc )
-        {
-            /* produce warning */
-        }
-    }
-
-    pd -> fmt_idx = fmt_idx;
-
-    return rc;
-}
-
-VTRANSFACT_IMPL ( vdb_sprintf, 1, 0, 0 ) ( const void *self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rc_t rc;
-    Sprintf *obj;
-
-    /* const format string */
-    VAList vargs;
-    const char *fmt_str = cp -> argv [ 0 ] . data . ascii;
-
-    /* local formatting storage */
-    PrintFmt fmt [ LOCAL_FMT_COUNT ];
-
-    /* data block for parse */
-    ParseData pd;
-    pd . fmt_size = cp -> argv [ 0 ] . count;
-    pd . fmt = fmt;
-
-    /* packaged va_list */
-    vargs . dp = dp;
-    vargs . idx = 0;
-
-    /* parse the format string */
-    rc = parse_format_string ( fmt_str, & pd, & vargs );
-    if ( rc == 0 )
-    {
-        /* the object size:
-           literal data bytes +
-           space for PrintFmt +
-           space for PrintArg */
-        size_t obj_extra = pd . lit_size +
-            pd . fmt_idx * sizeof ( PrintFmt ) +
-            pd . arg_idx * sizeof ( PrintArg ) +
-            pd . str_idx * sizeof ( String );
-        obj = malloc ( sizeof * obj + 1 + obj_extra );
-        if ( obj == NULL )
-            rc = RC ( rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted );
-        else
-        {
-            uint32_t i;
-
-            char *lit;
-            PrintFmt *dfmt;
-            size_t lit_size;
-
-            obj -> args = ( void* ) ( obj + 1 );
-            dfmt = ( void* ) & obj -> args [ pd . arg_idx ];
-            obj -> str = ( void* ) & dfmt [ pd . fmt_idx ];
-            lit = ( void* ) & obj -> str [ pd . str_idx ];
-            obj -> fmt = dfmt;
-
-            /* not necessary or even helpful, but doesn't cost much */
-            memset ( obj -> args, 0, pd . arg_idx * sizeof obj -> args [ 0 ] );
-            memset ( obj -> str, 0, pd . str_idx * sizeof obj -> str [ 0 ] );
-
-            /* copy format and literals */
-            for ( lit_size = 0, i = 0; i < pd . fmt_idx; ++ i )
-            {
-                /* simple copy */
-                dfmt [ i ] = pd . fmt [ i ];
-                if ( pd . fmt [ i ] . type == sptLiteral )
-                {
-                    /* copy over literal data */
-                    dfmt [ i ] . u . l . text = & lit [ lit_size ];
-                    memcpy ( & lit [ lit_size ],
-                        pd . fmt [ i ] . u . l . text,
-                        pd . fmt [ i ] . u . l . size );
-                    lit_size += pd . fmt [ i ] . u . l . size;
-                }
-            }
-
-            /* NUL-terminate the literal text - again, doesn't help but doesn't hurt */
-            lit [ lit_size ] = 0;
-        }
-    }
-
-    /* douse any overflow memory used */
-    if ( pd . fmt != fmt )
-        KDataBufferWhack ( & pd . overflow );
-
-#if _DEBUGGING
-    if ( rc == 0 )
-    {
-        rc = validate_obj ( obj, true );
-        if ( rc != 0 )
-            KDbgMsg ( "%s - self is bad on factory exit: %R\n", __func__, rc );
-    }
-#endif
-
-    if ( rc == 0 )
-    {
-        rslt -> self = obj;
-        rslt -> whack = free;
-        rslt -> u . rf = sprintf_func;
-        rslt -> variant = vftRow;
-    }
-
-    return rc;
-}
diff --git a/libs/vxf/unzip.c b/libs/vxf/unzip.c
index 7b4f4f3..615a2dc 100644
--- a/libs/vxf/unzip.c
+++ b/libs/vxf/unzip.c
@@ -38,7 +38,6 @@
 #include <byteswap.h>
 #include <string.h>
 #include <zlib.h>
-#include <assert.h>
 
 static rc_t invoke_zlib(void *dst, size_t dsize, const void *src, size_t ssize, int windowBits)
 {
@@ -124,17 +123,14 @@ rc_t unzip_func_v2(
         dst -> byte_order = src -> byte_order;
         dst -> elem_bits = 1;
 
-        /* the feed to zlib MUST be byte aligned
-           so the output must be as well */
-        assert ( ( dst -> elem_count & 7 ) == 0 );
-        rc = invoke_zlib(dst->data, (((size_t)dst->elem_count) >> 3),
+        rc = invoke_zlib(dst->data, (((size_t)dst->elem_count + 7) >> 3),
                          src->data, (((size_t)src->elem_count * src->elem_bits + 7) >> 3),
                          -15);
-
-        /* if the original, uncompressed source was NOT byte aligned,
-           back off the rounded up byte and add in the original bit count */
-        if ( rc == 0 && trailing != 0 )
-            dst -> elem_count -= 8 - trailing;
+        if ( rc == 0 )
+        {
+            dst -> elem_count &= ( uint64_t ) ~ 7;
+            dst -> elem_count |= trailing;
+        }
     }
 
     return rc;
diff --git a/libs/vxf/vec-sum.c b/libs/vxf/vec-sum.c
index 9903124..af9f1b9 100644
--- a/libs/vxf/vec-sum.c
+++ b/libs/vxf/vec-sum.c
@@ -28,7 +28,6 @@
 #include <klib/rc.h>
 #include <vdb/xform.h>
 #include <vdb/schema.h>
-#include <klib/data-buffer.h>
 #include <sysalloc.h>
 
 #include <stdint.h>
@@ -36,9 +35,7 @@
 #include <math.h>
 #include <assert.h>
 
-typedef void (*math_f)(void *const dst,
-                       void const *const src, uint32_t const offset,
-                       uint32_t const vec_length, uint32_t const vec_count);
+typedef void (*math_f)(void *dst, const void *src, uint32_t vec_length, uint32_t vec_count);
 typedef struct self_t {
     uint32_t vec_length;
     math_f f;
@@ -47,10 +44,10 @@ typedef struct self_t {
 #define FUNC(VALTYPE) F_ ## VALTYPE
 
 #define FUNC_DEF(VALTYPE) \
-static void FUNC(VALTYPE)(void *Dst, void const *Src, uint32_t const offset, uint32_t const vec_length, uint32_t const vec_count) { \
+static void FUNC(VALTYPE)(void *Dst, const void *Src, uint32_t vec_length, uint32_t vec_count) { \
     VALTYPE sum; \
-    VALTYPE *const dst = (VALTYPE *)Dst; \
-    VALTYPE const *const src = &((VALTYPE const *)Src)[offset]; \
+    VALTYPE *dst = (VALTYPE *)Dst; \
+    const VALTYPE *src = (const VALTYPE *)Src; \
     uint32_t i; \
     uint32_t j; \
     uint32_t k; \
@@ -74,30 +71,7 @@ FUNC_DEF(int32_t)
 FUNC_DEF(int64_t)
 
 static
-rc_t CC vec_sum_row_func(void *const Self,
-                         VXformInfo const *info,
-                         int64_t const row_id,
-                         VRowResult *const rslt,
-                         uint32_t const argc,
-                         VRowData const argv[])
-{
-    self_t const *self = Self;
-    rc_t rc;
-    
-    assert(argc == 1);
-    
-    rslt->data->elem_bits = rslt->elem_bits;
-    rc = KDataBufferResize(rslt->data, rslt->elem_count = 1);
-    if (rc == 0) {
-        self->f(rslt->data->base,
-                argv[0].u.data.base, argv[0].u.data.first_elem,
-                argv[0].u.data.elem_count, 1);
-    }
-    return rc;
-}
-
-static
-rc_t CC vec_sum_array_func(
+rc_t CC array_func(
                 void *Self,
                 const VXformInfo *info,
                 void *dst,
@@ -108,7 +82,7 @@ rc_t CC vec_sum_array_func(
     
     assert(elem_count % self->vec_length == 0);
     assert((elem_count / self->vec_length) >> 32 == 0);
-    self->f(dst, src, 0, self->vec_length, (uint32_t)(elem_count / self->vec_length));
+    self->f(dst, src, self->vec_length, (uint32_t)(elem_count / self->vec_length));
     return 0;
 }
 
@@ -118,122 +92,90 @@ void CC vxf_vec_sum_wrapper( void *ptr )
 	free( ptr );
 }
 
-rc_t vec_sum_make(self_t **const rslt,
-                  VXfactInfo const *const info,
-                  VFunctionParams const *const dp)
-{
+/*
+ function < type T, U32 dim >
+ T vec_sum #1.0 ( T [ dim ] in )
+ */
+VTRANSFACT_IMPL(vdb_vec_sum, 1, 0, 0) (
+                                       const void *Self,
+                                       const VXfactInfo *info,
+                                       VFuncDesc *rslt,
+                                       const VFactoryParams *cp,
+                                       const VFunctionParams *dp
+) {
     self_t *self;
     rc_t rc = 0;
     
     self = malloc(sizeof(*self));
     if (self == NULL)
-        rc = RC(rcVDB, rcFunction, rcConstructing, rcMemory, rcExhausted);
-    else {
-        self->vec_length = dp->argv[0].fd.td.dim;
-        
-        switch (info->fdesc.desc.intrinsic_bits) {
-        case 8:
-            switch (info->fdesc.desc.domain) {
-            case vtdInt:
-                self->f = FUNC(int8_t);
-                break;
-            case vtdUint:
-                self->f = FUNC(uint8_t);
-                break;
-            default:
-                rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
-            }
+        return RC(rcVDB, rcFunction, rcConstructing, rcMemory, rcExhausted);
+    
+    rslt->self = self;
+    rslt->whack = vxf_vec_sum_wrapper;
+    rslt->variant = vftArray;
+    rslt->u.af = array_func;
+    
+    self->vec_length = dp->argv[0].fd.td.dim;
+    
+    switch (info->fdesc.desc.intrinsic_bits) {
+    case 8:
+        switch (info->fdesc.desc.domain) {
+        case vtdInt:
+            self->f = FUNC(int8_t);
             break;
-        case 16:
-            switch (info->fdesc.desc.domain) {
-            case vtdInt:
-                self->f = FUNC(int16_t);
-                break;
-            case vtdUint:
-                self->f = FUNC(uint16_t);
-                break;
-            default:
-                rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
-            }
+        case vtdUint:
+            self->f = FUNC(uint8_t);
             break;
-        case 32:
-            switch (info->fdesc.desc.domain) {
-            case vtdInt:
-                self->f = FUNC(int32_t);
-                break;
-            case vtdUint:
-                self->f = FUNC(uint32_t);
-                break;
-            case vtdFloat:
-                self->f = FUNC(float);
-                break;
-            default:
-                rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
-            }
+        default:
+            rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
+        }
+        break;
+    case 16:
+        switch (info->fdesc.desc.domain) {
+        case vtdInt:
+            self->f = FUNC(int16_t);
             break;
-        case 64:
-            switch (info->fdesc.desc.domain) {
-            case vtdInt:
-                self->f = FUNC(int64_t);
-                break;
-            case vtdUint:
-                self->f = FUNC(uint64_t);
-                break;
-            case vtdFloat:
-                self->f = FUNC(double);
-                break;
-            default:
-                rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
-            }
+        case vtdUint:
+            self->f = FUNC(uint16_t);
             break;
         default:
             rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
         }
-        if (rc) {
-            free(self);
-            self = NULL;
+        break;
+    case 32:
+        switch (info->fdesc.desc.domain) {
+        case vtdInt:
+            self->f = FUNC(int32_t);
+            break;
+        case vtdUint:
+            self->f = FUNC(uint32_t);
+            break;
+        case vtdFloat:
+            self->f = FUNC(float);
+            break;
+        default:
+            rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
         }
+        break;
+    case 64:
+        switch (info->fdesc.desc.domain) {
+        case vtdInt:
+            self->f = FUNC(int64_t);
+            break;
+        case vtdUint:
+            self->f = FUNC(uint64_t);
+            break;
+        case vtdFloat:
+            self->f = FUNC(double);
+            break;
+        default:
+            rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
+        }
+        break;
+    default:
+        rc = RC(rcVDB, rcFunction, rcConstructing, rcParam, rcInvalid);
     }
-    *rslt = self;
-    return rc;
-}
-
-VTRANSFACT_IMPL(vdb_vec_sum, 1, 0, 0)(const void *Self,
-                                      const VXfactInfo *info,
-                                      VFuncDesc *rslt,
-                                      const VFactoryParams *cp,
-                                      const VFunctionParams *dp)
-{
-    self_t *self;
-    rc_t rc = vec_sum_make(&self, info, dp);
-    
-    if (rc == 0) {
-        rslt->self = self;
-        rslt->whack = vxf_vec_sum_wrapper;
-        rslt->variant = vftRow;
-        rslt->u.rf = vec_sum_row_func;
-    }
-    return rc;
-}
-
-/*
- function < type T, U32 dim >
- T vec_sum #1.0 ( T [ dim ] in )
- */
-VTRANSFACT_IMPL(vdb_fixed_vec_sum, 1, 0, 0)(const void *Self,
-                                            const VXfactInfo *info,
-                                            VFuncDesc *rslt,
-                                            const VFactoryParams *cp,
-                                            const VFunctionParams *dp)
-{
-    self_t *self;
-    rc_t rc = vec_sum_make(&self, info, dp);
-    
-    if (rc == 0) {
-        rslt->self = self;
-        rslt->whack = vxf_vec_sum_wrapper;
-        rslt->variant = vftArray;
-        rslt->u.af = vec_sum_array_func;
-    }
-    return rc;
+    if (rc)
+        free(self);
+    return 0;
 }
diff --git a/libs/vxf/wgs-tokenize-accession.c b/libs/vxf/wgs-tokenize-accession.c
deleted file mode 100644
index 04454fc..0000000
--- a/libs/vxf/wgs-tokenize-accession.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-#include <vdb/extern.h>
-
-#include <vdb/xform.h>
-#include <vdb/schema.h>
-#include <klib/data-buffer.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-enum
-{
-    NCBI_WGS_acc_token_unrecognized = 1,
-    NCBI_WGS_acc_token_prefix,
-    NCBI_WGS_acc_token_contig
-};
-
-enum
-{
-    TTextToken_id,
-    TTextToken_start,
-    TTextToken_len
-};
-
-
-static
-uint32_t ParseWgsAccession ( uint16_t *tok, const char *acc, size_t acc_len )
-{
-    /* WGS accessions have form:
-     * [NZ_]<4-letter prefix><2-digit version><6-7 digit contig>
-     */
-    size_t i;
-
-    /* scan non-digits */
-    for ( i = 0; i < acc_len; ++ i )
-    {
-        if ( isdigit ( acc [ i ] ) )
-            break;
-    }
-
-    /* require at least 4 characters... */
-    if ( i >= 4 )
-    {
-        /* require at least 8 digits */
-        if ( acc_len - i >= 8 )
-        {
-            /* 2-digit version */
-            if ( isdigit ( acc [ ++ i ] ) )
-            {
-                /* record first token as prefix */
-                tok [ 0 + TTextToken_id ] = NCBI_WGS_acc_token_prefix;
-                tok [ 0 + TTextToken_start ] = 0;
-                tok [ 0 + TTextToken_len ] = ( uint16_t ) ++ i;
-
-                /* the remainder should be contig */
-                tok [ 3 + TTextToken_id ] = NCBI_WGS_acc_token_contig;
-                tok [ 3 + TTextToken_start ] = ( uint16_t ) i;
-                tok [ 3 + TTextToken_len ] = ( uint16_t ) ( acc_len - i );
-
-                /* verify that it is numeric */
-                for ( ; i < acc_len; ++ i )
-                {
-                    if ( ! isdigit ( acc [ i ] ) )
-                        break;
-                }
-
-                /* great success */
-                if ( i == acc_len )
-                    return 2;
-            }
-        }
-    }
-
-    tok [ 0 + TTextToken_id ] = NCBI_WGS_acc_token_unrecognized;
-    tok [ 0 + TTextToken_start ] = 0;
-    tok [ 0 + TTextToken_len ] = ( uint16_t ) acc_len;
-
-    return 1;
-}
-
-static
-rc_t CC tokenize_nuc_accession ( void *obj,
-     const VXformInfo *info, int64_t row_id, VRowResult *rslt,
-     uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    const char *acc;
-    
-    assert ( rslt -> elem_bits == 16 * 3 );
-
-    rslt -> data -> elem_bits = rslt -> elem_bits;
-    rc = KDataBufferResize ( rslt -> data, 2 );
-    if ( rc != 0 )
-        return rc;
-
-    acc = argv [ 0 ] . u . data . base;
-    acc += argv [ 0 ] . u . data . first_elem;
-
-    rslt -> elem_count = ParseWgsAccession ( rslt -> data -> base, acc, argv [ 0 ] . u . data . elem_count );
-    if ( rslt -> elem_count != 2 )
-        rc = KDataBufferResize ( rslt -> data, rslt -> elem_count );
-
-    return rc;
-}
-
-static
-uint32_t ParseProtAccession ( uint16_t *tok, const char *acc, size_t acc_len )
-{
-    /* Protein accessions generally have pattern 
-     * <Cap-letter prefix><digital suffix>
-     * If this doesn't hold, use full accession as prefix, and make suffix empty.
-     */
-    size_t i;
-
-    for ( i = 0; i < acc_len; ++ i )
-    {
-        if ( isdigit ( acc [ i ] ) )
-            break;
-    }
-
-    tok [ 0 + TTextToken_id ] = NCBI_WGS_acc_token_prefix;
-    tok [ 0 + TTextToken_start ] = 0;
-    tok [ 0 + TTextToken_len ] = ( uint16_t ) i;
-
-    for ( ; i < acc_len; ++ i )
-    {
-        if ( ! isdigit ( acc [ i ] ) )
-            break;
-    }
-
-    if ( i == acc_len )
-    {
-        tok [ 3 + TTextToken_id ] = NCBI_WGS_acc_token_contig;
-        tok [ 3 + TTextToken_start ] = tok [ 0 + TTextToken_len ];
-        tok [ 3 + TTextToken_len ] = ( uint16_t ) ( i - tok [ 0 + TTextToken_len ] );
-        return 2;
-    }
-
-    tok [ 0 + TTextToken_len ] = ( uint16_t ) acc_len;
-    return 1;
-}
-
-static
-rc_t CC tokenize_prot_accession ( void *obj,
-     const VXformInfo *info, int64_t row_id, VRowResult *rslt,
-     uint32_t argc, const VRowData argv [] )
-{
-    rc_t rc;
-    const char *acc;
-    
-    assert ( rslt -> elem_bits == 16 * 3 );
-
-    rslt -> data -> elem_bits = rslt -> elem_bits;
-    rc = KDataBufferResize ( rslt -> data, 2 );
-    if ( rc != 0 )
-        return rc;
-
-    acc = argv [ 0 ] . u . data . base;
-    acc += argv [ 0 ] . u . data . first_elem;
-
-    rslt -> elem_count = ParseProtAccession ( rslt -> data -> base, acc, argv [ 0 ] . u . data . elem_count );
-    if ( rslt -> elem_count != 2 )
-        rc = KDataBufferResize ( rslt -> data, rslt -> elem_count );
-
-    return rc;
-}
-
-VTRANSFACT_IMPL ( NCBI_WGS_tokenize_nuc_accession, 1, 0, 0 ) ( const void *self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt -> u . rf = tokenize_nuc_accession;
-    rslt -> variant = vftRow;
-    return 0;
-}
-
-VTRANSFACT_IMPL ( NCBI_WGS_tokenize_prot_accession, 1, 0, 0 ) ( const void *self, const VXfactInfo *info,
-    VFuncDesc *rslt, const VFactoryParams *cp, const VFunctionParams *dp )
-{
-    rslt -> u . rf = tokenize_prot_accession;
-    rslt -> variant = vftRow;
-    return 0;
-}
diff --git a/libs/wgsxf/Makefile b/libs/wgsxf/Makefile
deleted file mode 100644
index 8342ebf..0000000
--- a/libs/wgsxf/Makefile
+++ /dev/null
@@ -1,138 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = libs/wgsxf
-
-MOD_LIBS = \
-	libwgsxf \
-	libwwgsxf
-
-TEST_TOOLS = \
-
-include $(TOP)/build/Makefile.env
-
-RWORKDIR = $(BINDIR)
-
-ALL_LIBS = \
-	$(MOD_LIBS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: makedirs
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(MOD_LIBS): makedirs
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(TEST_TOOLS): makedirs
-	@ $(MAKE_CMD) $(TEST_BINDIR)/$@
-
-.PHONY: all std $(ALL_LIBS) $(TEST_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(TARGDIR)/,$(MOD_LIBS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# wgs-vdb transform library
-#
-$(TARGDIR)/libwgsxf: $(addprefix $(TARGDIR)/libwgsxf.,$(MODEXT))
-
-$(TARGDIR)/libwgsxf.$(SHLX): $(MODDIR)/libwgsxf.$(SHLX)
-
-WGSXF_SRC = \
-	build_scaffold \
-	build_read_type
-
-WGSXF_OBJ = \
-	$(addsuffix .$(LOBX),$(WGSXF_SRC))
-
-WGSXF_LIB = \
-	-dvdb \
-	-dklib \
-	-dm \
-	-dz \
-	-dbz2
-
-$(MODDIR)/libwgsxf.$(SHLX): $(WGSXF_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(WGSXF_LIB)
-
-$(TARGDIR)/libwgsxf.$(LIBX): $(ILIBDIR)/libwgsxf.$(LIBX)
-
-$(ILIBDIR)/libwgsxf.$(LIBX): $(WGSXF_OBJ)
-	$(LD) --slib -o $@ $^ $(WGSXF_LIB)
-
-.PHONY: $(TARGDIR)/libwgsxf $(TARGDIR)/libwgsxf.$(SHLX) $(TARGDIR)/libwgsxf.$(LIBX)
-
-#-------------------------------------------------------------------------------
-# update-side wgs transform library
-#
-
-$(TARGDIR)/libwwgsxf: $(addprefix $(TARGDIR)/libwwgsxf.,$(MODEXT))
-
-$(TARGDIR)/libwwgsxf.$(SHLX): $(WMODDIR)/libwwgsxf.$(SHLX)
-
-WWGSXF_SRC = \
-	$(WGSXF_SRC)
-
-WWGSXF_OBJ = \
-	$(addsuffix .$(LOBX),$(WWGSXF_SRC))
-
-# temporary
-WWGSXF_LIB = \
-	-dwvdb \
-	-dwkdb \
-	-dklib \
-	-dm \
-	-dz \
-	-dbz2
-
-$(WMODDIR)/libwwgsxf.$(SHLX): $(WWGSXF_OBJ)
-	$(LD) --dlib --vers $(SRCDIR) -o $@ $^ $(WWGSXF_LIB)
-
-$(TARGDIR)/libwwgsxf.$(LIBX): $(ILIBDIR)/libwwgsxf.$(LIBX)
-
-$(ILIBDIR)/libwwgsxf.$(LIBX): $(WWGSXF_OBJ)
-	$(LD) --slib -o $@ $^ $(WWGSXF_LIB)
-
-libwwgsxf.vers.h:
-	@ true
-
-.PHONY: $(TARGDIR)/libwwgsxf $(TARGDIR)/libwwgsxf.$(SHLX) $(TARGDIR)/libwwgsxf.$(LIBX)
diff --git a/libs/wgsxf/build_read_type.c b/libs/wgsxf/build_read_type.c
deleted file mode 100644
index 02ebed5..0000000
--- a/libs/wgsxf/build_read_type.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-#include <vdb/extern.h>
-#include <vdb/xform.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/schema.h>
-
-#include <klib/defs.h>
-#include <klib/rc.h>
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <insdc/insdc.h>
-#include <insdc/sra.h>
-#include <ncbi/wgs-contig.h>
-
-static
-rc_t build_read_type(INSDC_SRA_xread_type dst[],
-                     unsigned const components,
-                     NCBI_WGS_component_props const Props[/* components */])
-{
-    unsigned i;
-    
-    for (i = 0; i != components; ++i) {
-        int const props = Props[i];
-        
-        if (props < 0) {
-            dst[i] = SRA_READ_TYPE_TECHNICAL;
-        }
-        else {
-            int const type = props & 0x0F;
-            
-            if (type == 0) {
-                int const strand = props & ~(NCBI_WGS_strand_plus | NCBI_WGS_strand_minus);
-                
-                switch (strand) {
-                case 0:
-                    dst[i] = SRA_READ_TYPE_BIOLOGICAL;
-                    break;
-                case NCBI_WGS_strand_plus:
-                    dst[i] = SRA_READ_TYPE_BIOLOGICAL | SRA_READ_TYPE_FORWARD;
-                    break;
-                case NCBI_WGS_strand_minus:
-                    dst[i] = SRA_READ_TYPE_BIOLOGICAL | SRA_READ_TYPE_REVERSE;
-                    break;
-                default:
-                    return RC(rcXF, rcFunction, rcExecuting, rcType, rcInvalid);
-                }
-            }
-            else
-                return RC(rcXF, rcFunction, rcExecuting, rcType, rcInvalid);
-        }
-    }
-    return 0;
-}
-
-/*
- * function INSDC:SRA:xread_type NCBI:WGS:build_read_type #1
- *     ( NCBI:WGS:component_props component_props )
- */
-
-static
-rc_t CC build_read_type_impl(void *self, VXformInfo const *info, int64_t row_id,
-                             VFixedRowResult const *rslt,
-                             uint32_t argc, VRowData const argv[])
-{
-    NCBI_WGS_component_props const *const props = argv[0].u.data.base;
-    unsigned const components = argv[0].u.data.elem_count;
-    INSDC_SRA_xread_type *const dst = rslt->base;
-
-    return build_read_type(&dst[rslt->first_elem], components,
-                           &props[argv[0].u.data.first_elem]);
-}
-
-VTRANSFACT_IMPL(NCBI_WGS_build_read_type, 1, 0, 0)(void const *const Self,
-                                                   VXfactInfo const *const info,
-                                                   VFuncDesc *const rslt,
-                                                   VFactoryParams const *const cp,
-                                                   VFunctionParams const *const dp)
-{
-    rslt->variant = vftFixedRow;
-    rslt->u.pf = build_read_type_impl;
-    return 0;
-}
diff --git a/libs/wgsxf/build_scaffold.c b/libs/wgsxf/build_scaffold.c
deleted file mode 100644
index c9f3f2b..0000000
--- a/libs/wgsxf/build_scaffold.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-#include <vdb/extern.h>
-#include <vdb/xform.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/schema.h>
-
-#include <klib/defs.h>
-#include <klib/rc.h>
-#include <kdb/meta.h>
-#include <klib/data-buffer.h>
-#include <insdc/insdc.h>
-#include <align/refseq-mgr.h>
-#include <bitstr.h>
-#include <sysalloc.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <insdc/sra.h>
-#include <ncbi/wgs-contig.h>
-
-#define READ_GAP_VALUE (0)
-#define QUAL_GAP_VALUE (2)
-
-#define CURSOR_CACHE_SIZE (4 * 1024 * 1024)
-
-typedef struct self_t self_t;
-typedef rc_t (*impl_f)(self_t const *const self, void *const Dst,
-                       unsigned const components,
-                       INSDC_coord_one const start[/* components */],
-                       INSDC_coord_len const length[/* components */],
-                       NCBI_WGS_component_props const props[/* components */],
-                       int64_t const join[/* components */]);
-
-struct self_t
-{
-    VCursor const *curs;
-    uint32_t col_idx;
-    impl_f impl;
-};
-
-static void free_self(self_t *const self)
-{
-    VCursorRelease(self->curs);
-}
-
-static
-void CC whack(void *vp)
-{
-    if (vp) {
-        free_self(vp);
-        free(vp);
-    }
-}
-
-static
-rc_t init_self(self_t *self, VTable const *const srctbl, char const column[])
-{
-    VDatabase const *db;
-    rc_t rc = VTableOpenParentRead(srctbl, &db);
-
-    if (rc == 0) {
-        VTable const *tbl;
-        
-        rc = VDatabaseOpenTableRead(db, &tbl, "SEQUENCE");
-        VDatabaseRelease(db);
-        if (rc == 0) {
-            VCursor const *curs;
-#if CURSOR_CACHE_SIZE
-            rc = VTableCreateCachedCursorRead(tbl, &curs, CURSOR_CACHE_SIZE);
-#else
-            rc = VTableCreateCursorRead(tbl, &curs);
-#endif
-            VTableRelease(tbl);
-            if (rc == 0) {
-                uint32_t col_idx;
-                
-                rc = VCursorAddColumn(curs, &col_idx, column);
-                if (rc == 0) {
-                    rc = VCursorOpen(curs);
-                    if (rc == 0) {
-                        self->curs = curs;
-                        self->col_idx = col_idx;
-                        return 0;
-                    }
-                    if (GetRCObject(rc) == rcColumn && GetRCState(rc) == rcUndefined)
-                        rc = 0;
-                }
-                VCursorRelease(curs);
-            }
-        }
-    }
-    return rc;
-}
-
-static
-rc_t build_scaffold_read_impl(self_t const *const self, void *const Dst,
-                              unsigned const components,
-                              INSDC_coord_one const Start[/* components */],
-                              INSDC_coord_len const Length[/* components */],
-                              NCBI_WGS_component_props const Props[/* components */],
-                              int64_t const join[/* components */])
-{
-    INSDC_4na_bin *const dst = Dst;
-    unsigned i;
-    unsigned j;
-    unsigned id;
-    rc_t rc;
-    
-    for (rc = 0, id = j = i = 0; rc == 0 && i != components; ++i) {
-        INSDC_coord_len const length = Length[i];
-        int const props = Props[i];
-
-        if (props < 0) {
-            /* gap */
-            memset(dst + j, READ_GAP_VALUE, length);
-        }
-        else if (self->curs == NULL) {
-            memset(dst + j, 15, length);
-        }
-        else {
-            int const type = props & 0x0F;
-            int const strand = (props & ~(NCBI_WGS_strand_plus | NCBI_WGS_strand_minus)) >> 4;
-            
-            if (type != 0 || strand == 3)
-                rc = RC(rcXF, rcFunction, rcExecuting, rcType, rcInvalid);
-            else {
-                int64_t const row = join[id++];
-                uint32_t elem_bits;
-                uint32_t bit_offset;
-                uint32_t elem_count;
-                void const *base;
-                
-                rc = VCursorCellDataDirect(self->curs, row, self->col_idx,
-                                           &elem_bits, &base, &bit_offset,
-                                           &elem_count);
-                assert(bit_offset == 0);
-                if (rc == 0) {
-                    INSDC_coord_one const start = Start[i] - 1;
-                    
-                    if (elem_count < start + length)
-                        rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInsufficient);
-                    else {
-                        INSDC_4na_bin const *const src = base;
-                        
-                        if (strand == 2) {
-                            static INSDC_4na_bin const complement[] = {
-                                /* 0  0000 - 0000*/  0,
-                                /* 1  0001 - 1000*/  8,
-                                /* 2  0010 - 0100*/  4,
-                                /* 3  0011 - 1100*/ 12,
-                                /* 4  0100 - 0010*/  2,
-                                /* 5  0101 - 1010*/ 10,
-                                /* 6  0110 - 0110*/  6,
-                                /* 7  0111 - 1110*/ 14,
-                                /* 8  1000 - 0001*/  1,
-                                /* 9  1001 - 1001*/  9,
-                                /*10  1010 - 0101*/  5,
-                                /*11  1011 - 1101*/ 13,
-                                /*12  1100 - 0011*/  3,
-                                /*13  1101 - 1011*/ 11,
-                                /*14  1110 - 0111*/  7,
-                                /*15  1111 - 1111*/ 15
-                            };
-                            unsigned k;
-                            unsigned jj;
-                            
-                            for (jj = j + length, k = 0; k != length; ++k) {
-                                INSDC_4na_bin const elem = src[start + k];
-                                
-                                assert(0 <= elem && elem <= 15);
-                                --jj;
-                                dst[jj] = complement[elem];
-                            }
-                        }
-                        else
-                            memcpy(&dst[j], &src[start], length);
-                    }
-                }
-            }
-        }
-
-        j += length;
-    }
-    return rc;
-}
-
-static
-rc_t build_scaffold_qual_impl(self_t const *const self, void *const Dst,
-                              unsigned const components,
-                              INSDC_coord_one const Start[/* components */],
-                              INSDC_coord_len const Length[/* components */],
-                              NCBI_WGS_component_props const Props[/* components */],
-                              int64_t const join[/* components */])
-{
-    INSDC_quality_phred *const dst = Dst;
-    unsigned i;
-    unsigned j;
-    unsigned id;
-    rc_t rc;
-    
-    for (rc = 0, id = j = i = 0; rc == 0 && i != components; ++i) {
-        INSDC_coord_len const length = Length[i];
-        int const props = Props[i];
-        
-        if (props < 0) {
-            /* gap */
-            memset(dst + j, QUAL_GAP_VALUE, length);
-        }
-        else if (self->curs == NULL) {
-            memset(dst + j, 30, length);
-        }
-        else {
-            int const type = props & 0x0F;
-            int const strand = (props & ~(NCBI_WGS_strand_plus | NCBI_WGS_strand_minus)) >> 4;
-            
-            if (type != 0 || strand == 3)
-                rc = RC(rcXF, rcFunction, rcExecuting, rcType, rcInvalid);
-            else {
-                int64_t const row = join[id++];
-                uint32_t elem_bits;
-                uint32_t bit_offset;
-                uint32_t elem_count;
-                void const *base;
-                
-                rc = VCursorCellDataDirect(self->curs, row, self->col_idx,
-                                           &elem_bits, &base, &bit_offset,
-                                           &elem_count);
-                assert(bit_offset == 0);
-                if (rc == 0) {
-                    INSDC_quality_phred const start = Start[i] - 1;
-                    
-                    if (elem_count < start + length)
-                        rc = RC(rcXF, rcFunction, rcExecuting, rcData, rcInsufficient);
-                    else {
-                        INSDC_quality_phred const *const src = base;
-                        
-                        if (strand == 2) {
-                            unsigned k;
-                            unsigned jj;
-                            
-                            for (jj = j + length, k = 0; k != length; ++k) {
-                                INSDC_quality_phred const elem = src[start + k];
-                                
-                                --jj;
-                                dst[jj] = elem;
-                            }
-                        }
-                        else
-                            memcpy(&dst[j], &src[start], length);
-                    }
-                }
-            }
-        }
-        
-        j += length;
-    }
-    return rc;
-}
-
-static
-unsigned total_length(unsigned const components, INSDC_coord_len const length[/* components */])
-{
-    unsigned i;
-    unsigned len;
-    
-    for (i = len = 0; i != components; ++i)
-        len += length[i];
-    return len;
-}
-
-
-/*
- * function INSDC:4na:bin NCBI:WGS:build_scaffold_read #1
- *     ( INSDC:coord:one component_start, INSDC:coord:len component_len,
- *       NCBI:WGS:component_props component_props, I64 component_id )
- *
- * function INSDC:quality:phred NCBI:WGS:build_scaffold_qual #1
- *     ( INSDC:coord:one component_start, INSDC:coord:len component_len,
- *       NCBI:WGS:component_props component_props, I64 component_id )
- */
-
-static
-rc_t CC build_scaffold_impl(void *const data, VXformInfo const *const info,
-                            int64_t const row_id, VRowResult *const rslt,
-                            uint32_t const argc, VRowData const argv[])
-{
-    self_t const *const self = data;
-    INSDC_coord_one const *const start = argv[0].u.data.base;
-    INSDC_coord_len const *const length = argv[1].u.data.base;
-    NCBI_WGS_component_props const *const props = argv[2].u.data.base;
-    int64_t const *const join = argv[3].u.data.base;
-    unsigned const components = argv[0].u.data.elem_count;
-    rc_t rc;
-    
-    assert(argv[1].u.data.elem_count == components);
-    assert(argv[2].u.data.elem_count == components);
-    
-    assert(start != NULL);
-    assert(length != NULL);
-    assert(props != NULL);
-    assert(join != NULL);
-    
-    assert(rslt->elem_bits == 8);
-    rslt->elem_count = total_length(components, &length[argv[1].u.data.first_elem]);
-    rc = KDataBufferResize(rslt->data, rslt->elem_count);
-    if (rc == 0)
-        rc = self->impl(self, rslt->data->base, components,
-                        &start[argv[0].u.data.first_elem],
-                        &length[argv[1].u.data.first_elem],
-                        &props[argv[2].u.data.first_elem],
-                        &join[argv[3].u.data.first_elem]);
-    return rc;
-}
-
-VTRANSFACT_IMPL(NCBI_WGS_build_scaffold_read, 1, 0, 0)(void const * Self,
-                                                       VXfactInfo const * info,
-                                                       VFuncDesc * rslt,
-                                                       VFactoryParams const * cp,
-                                                       VFunctionParams const * dp)
-{
-    self_t *self = calloc(1, sizeof(*self));
-    if (self) {
-        rc_t const rc = init_self(self, info->tbl, "(INSDC:4na:bin)READ");
-        
-        if (rc == 0) {
-            self->impl = build_scaffold_read_impl;
-            
-            rslt->self = self;
-            rslt->whack = whack;
-            rslt->variant = vftRow;
-            rslt->u.rf = build_scaffold_impl;
-        }
-        return rc;
-    }
-    return RC(rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted);
-}
-
-VTRANSFACT_IMPL(NCBI_WGS_build_scaffold_qual, 1, 0, 0)(void const * Self,
-                                                       VXfactInfo const * info,
-                                                       VFuncDesc * rslt,
-                                                       VFactoryParams const * cp,
-                                                       VFunctionParams const * dp)
-{
-    self_t *self = calloc(1, sizeof(*self));
-    if (self) {
-        rc_t const rc = init_self(self, info->tbl, "(INSDC:quality:phred)QUALITY");
-    
-        if (rc == 0) {
-            self->impl = build_scaffold_qual_impl;
-            
-            rslt->self = self;
-            rslt->whack = whack;
-            rslt->variant = vftRow;
-            rslt->u.rf = build_scaffold_impl;
-        }
-        return rc;
-    }
-    return RC(rcXF, rcFunction, rcConstructing, rcMemory, rcExhausted);
-}
diff --git a/libs/wgsxf/libwgsxf.vers b/libs/wgsxf/libwgsxf.vers
deleted file mode 100644
index 3eefcb9..0000000
--- a/libs/wgsxf/libwgsxf.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0
diff --git a/libs/wgsxf/libwwgsxf.vers b/libs/wgsxf/libwwgsxf.vers
deleted file mode 100644
index 3eefcb9..0000000
--- a/libs/wgsxf/libwwgsxf.vers
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0
diff --git a/tools/Makefile b/tools/Makefile
index 87cbc82..ec5f90d 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -38,22 +38,12 @@ SUBDIRS = \
 	vdb-dump \
 	sra-dump \
 	sra-load \
-	sra-pileup \
-	bam-loader \
-	srapath \
+	sam-dump \
 	sra-stat \
 	vdb-copy \
 	sra-dbcc \
 	vdb-config \
-	align-info \
-	prefetch \
-	nenctool \
-	nencvalid \
-	vdb-decrypt \
-	vdb-validate \
-	sra-sort \
-	cg-load \
-    fastq-loader
+	align-info
 
 default: $(SUBDIRS)
 
@@ -111,17 +101,6 @@ $(SUBDIRS_TAG):
 
 .PHONY: tag $(SUBDIRS_TAG)
 
-#-------------------------------------------------------------------------------
-# runtests
-#
-SUBDIRS_RUNTESTS = $(addsuffix _runtests, bam-loader fastq-loader)
-
-runtests: std $(SUBDIRS_RUNTESTS)
-
-$(SUBDIRS_RUNTESTS):
-	@ $(MAKE) -C $(subst _runtests,,$@) runtests
-
-.PHONY: runtests $(SUBDIRS_RUNTESTS)
 
 #-------------------------------------------------------------------------------
 # pass-through
diff --git a/tools/align-info/Makefile b/tools/align-info/Makefile
index 030af03..c5e5312 100644
--- a/tools/align-info/Makefile
+++ b/tools/align-info/Makefile
@@ -25,7 +25,7 @@
 
 default: std
 
-TOP ?= $(shell ../../build/abspath.sh ../..)
+TOP ?= $(abspath ../..)
 MODULE = tools/align-info
 
 include $(TOP)/build/Makefile.env
@@ -42,13 +42,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -59,18 +61,19 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
+# clean
 #
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+clean: stdclean
 
-.PHONY: $(TARGDIR)/vers-includes
+.PHONY: clean
 
 #-------------------------------------------------------------------------------
-# clean
+# tag
 #
-clean: stdclean
+tag: \
+	$(addsuffix _tag,$(ALL_TOOLS))
 
-.PHONY: clean
+.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
 
 #-------------------------------------------------------------------------------
 # align-info
@@ -85,18 +88,22 @@ ALIGN_INFO_LIB = \
 	-lkapp \
 	-lsraschema \
 	-dalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
+	-daxf \
+	-dsraxf \
+	-dvxf \
 	-dksrch \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
-	-lkproc \
 	-lklib \
+	-lbz2 \
+	-ldl \
+	-lz \
 	-lm
 
 $(BINDIR)/align-info: $(ALIGN_INFO_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(ALIGN_INFO_LIB)
+
+align_info_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) align-info $(ALIGN_INFO_OBJ)
diff --git a/tools/align-info/align-info.c b/tools/align-info/align-info.c
index 40bc8a8..bd52e46 100644
--- a/tools/align-info/align-info.c
+++ b/tools/align-info/align-info.c
@@ -30,17 +30,14 @@
 
 #include <vdb/manager.h> /* VDBManager */
 #include <vdb/database.h> /* VDatabase */
-#include <vdb/dependencies.h> /* VDBDependencies */
 #include <vdb/table.h> /* VTable */
 #include <vdb/schema.h> /* VSchema */
 #include <vdb/cursor.h> /* VCursor */
-#include <vdb/vdb-priv.h> /* VDBManagerOpenKDBManagerRead */
 
 #include <kapp/main.h>
 
 #include <kfg/config.h> /* KConfig */
 
-#include <kdb/manager.h> /* KDBManagerRelease */
 #include <kdb/namelist.h> /* KMDataNodeListChild */
 #include <kdb/meta.h> /* KMetadata */
 
@@ -52,10 +49,15 @@
 #include <klib/rc.h> /* RC */
 
 #include <assert.h>
+#include <limits.h> /* PATH_MAX */
 #include <stdio.h> /* sscanf */
 #include <stdlib.h> /* free */
 #include <string.h> /* strcmp */
 
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
 #define DISP_RC(rc, msg) (void)((rc == 0) ? 0 : LOGERR(klogInt, rc, msg))
 #define DISP_RC2(rc, name, msg) (void)((rc == 0) ? 0 : \
     PLOGERR(klogInt, (klogInt,rc, "$(msg): $(name)","msg=%s,name=%s",msg,name)))
@@ -69,6 +71,253 @@ typedef struct Params {
     bool paramQuality;
     bool paramRef;
 } Params;
+typedef struct RefNode {
+    BSTNode n;
+    bool circular;
+    char* name;
+    char* seqId;
+    bool row_lenCMP_READwas0;
+} RefNode;
+static rc_t ReadCfgStr
+(const KConfig* kfg, const char* path, char* value, size_t value_sz)
+{
+    rc_t rc = 0;
+    const KConfigNode *node = NULL;
+
+    rc = KConfigOpenNodeRead(kfg, &node, path);
+    if (rc == 0) {
+        size_t num_read = 0;
+        size_t remaining = 0;
+        rc = KConfigNodeRead
+            (node, 0, value, value_sz - 1, &num_read, &remaining);
+        if (rc == 0) {
+            if (remaining != 0)
+            {   rc = RC(rcExe, rcConfig, rcReading, rcString, rcTooLong); }
+            else { value[num_read] = '\0'; }
+        }
+    }
+
+    DESTRUCT(KConfigNode, node);
+
+    return rc;
+}
+
+typedef struct FindRefseq {
+    const char* seqId;
+    bool found;
+} FindRefseq;
+static rc_t CC scan_refseq_dir(const KDirectory* dir,
+    uint32_t type, const char* name, void* data)
+{
+    FindRefseq* t = data;
+    assert(dir && name && data && t->seqId);
+    if (strcmp(t->seqId, name) == 0)
+    {   t->found = true; }
+    return 0;
+}
+
+static bool construct(rc_t* aRc, const KDirectory* native, const char* srv,
+    const char* vol, const char* seqId, char* buf, size_t blen)
+{
+    rc_t rc = 0;
+
+    const KDirectory* dir = NULL;
+
+    FindRefseq t;
+
+    assert(aRc && native && srv && seqId && buf && blen);
+
+    rc = *aRc;
+
+    if (rc != 0)
+    {   return false; }
+
+    if (vol)
+    {   rc = KDirectoryOpenDirRead(native, &dir, false, "%s/%s", srv, vol); }
+    else
+    {   rc = KDirectoryOpenDirRead(native, &dir, false, srv); }
+
+    if (rc == 0) {
+        memset(&t, 0, sizeof t);
+        t.seqId = seqId;
+        rc = KDirectoryVVisit(dir, false, scan_refseq_dir, &t, ".", NULL);
+    }
+
+    if (rc == 0 && t.found) {
+        if (vol) {
+            rc = KDirectoryResolvePath
+                (native, true, buf, blen, "%s/%s/%s", srv, vol, seqId);
+        }
+        else {
+            rc = KDirectoryResolvePath
+                (native, true, buf, blen, "%s/%s", srv, seqId);
+        }
+    }
+
+    DESTRUCT(KDirectory, dir);
+
+    *aRc = rc;
+
+    return t.found;
+}
+
+static
+rc_t privFindRef(const char* seqId, char* buf, size_t blen,
+    bool destroy)
+{
+#define SIZE 4096
+    rc_t rc = 0;
+    static KDirectory* dir = NULL;
+    static KConfig* cfg = NULL;
+    static char Servers[SIZE] = "";
+    static char Volumes[SIZE] = "";
+    static char Paths[SIZE] = "";
+    if (cfg == NULL && !destroy) {
+        if (rc == 0) {
+            rc = KDirectoryNativeDir(&dir);
+            DISP_RC(rc, "while calling KDirectoryNativeDir");
+        }
+        if (rc == 0) {
+            rc = KConfigMake(&cfg, NULL);
+            DISP_RC(rc, "while calling KConfigMake");
+        }
+        if (rc == 0) {
+            const char path[] = "refseq/servers";
+            rc = ReadCfgStr(cfg, path, Servers, sizeof Servers);
+            if (rc != 0) {
+                if (GetRCState(rc) == rcNotFound)
+                {   rc = 0; }
+                else { DISP_RC2(rc, path, "while reading Node"); }
+            }
+            else {
+                const char path[] = "refseq/volumes";
+                rc = ReadCfgStr(cfg, path, Volumes, sizeof Volumes);
+                if (rc != 0) {
+                    if (GetRCState(rc) == rcNotFound)
+                    {   rc = 0; }
+                    else { DISP_RC2(rc, path, "while reading Node"); }
+                }
+            }
+            if (rc == 0) {
+                const char path[] = "refseq/paths";
+                rc = ReadCfgStr(cfg, path, Paths, sizeof Paths);
+                if (rc != 0) {
+                    if (GetRCState(rc) == rcNotFound)
+                    {   rc = 0; }
+                    else { DISP_RC2(rc, path, "while reading Node"); }
+                }
+            }
+        }
+    }
+    if (!destroy && rc == 0 && dir != NULL && cfg != NULL) {
+        if (Servers[0] && Volumes[0])
+        {
+            char server[SIZE];
+            char vol[SIZE];
+            char* srv_sep = NULL;
+            char *srv_rem = server;
+            strcpy(server, Servers);
+    /* TODO check for multiple servers/volumes */
+            do {
+                char *vol_rem = vol;
+                char *vol_sep = NULL;
+                strcpy(vol, Volumes);
+                srv_sep = strchr(server, ':');
+                if (srv_sep) {
+                    srv_rem = srv_sep + 1;
+                    *srv_sep = '\0';
+                }
+                do {
+                    char const* volume = vol_rem;
+                    vol_sep = strchr(volume, ':');
+                    if (vol_sep) {
+                        vol_rem = vol_sep + 1;
+                        *vol_sep = 0;
+                    }
+                    if (construct(&rc, dir, server, volume,
+                        seqId, buf, blen))
+                    {   break; }
+                } while(vol_sep && rc == 0);
+            } while(srv_sep && rc == 0);
+        }
+        else if (Paths[0]) {
+            char paths[SIZE];
+            char *path_rem = paths;
+            char *path_sep = NULL;
+            strcpy(paths, Paths);
+            do {
+                char const* path = path_rem;
+                path_sep = strchr(path, ':');
+                if (path_sep) {
+                    path_rem = path_sep + 1;
+                    *path_sep = 0;
+                }
+                if (construct(&rc, dir, path, NULL, seqId, buf, blen))
+                {   break; }
+            } while(path_sep && rc == 0);
+        }
+    }
+    if (destroy) {
+        DESTRUCT(KConfig, cfg);
+        DESTRUCT(KDirectory, dir);
+    }
+    return rc;
+}
+
+static rc_t DestroyConfig(void) { return privFindRef(NULL, NULL, 0, true); }
+
+static rc_t FindRef(const char* seqId, char* buf, size_t blen)
+{   return privFindRef(seqId, buf, blen, false); }
+
+static int CC bstCmp(const void* item, const BSTNode* n) {
+    const char* lhs = item;
+    const RefNode* sn = (const RefNode*) n;
+
+    assert(lhs && sn);
+
+    return strcmp(lhs, sn->seqId);
+}
+
+static int CC bstSort(const BSTNode* item, const BSTNode* n) {
+    const RefNode* sn = (const RefNode*) item;
+
+    return bstCmp(sn->seqId, n);
+}
+
+static void CC bstPrint(BSTNode* n, void* data) {
+    char buf[PATH_MAX + 1] = "";
+    bool remote = false;
+    const RefNode* sn = (const RefNode*) n;
+
+    assert(sn);
+
+    remote = sn->row_lenCMP_READwas0;
+    if (remote) {
+        rc_t rc = FindRef(sn->seqId, buf, sizeof buf);
+        if (rc)
+        {   buf[0] = '\0'; }
+    }
+
+    OUTMSG(("%s,%s,%s,%s", sn->seqId, sn->name,
+        (sn->circular ? "true" : "false"), (remote ? "remote" : "local")));
+    if (buf[0])
+        {   OUTMSG((":%s", buf)); }
+    OUTMSG(("\n"));
+}
+
+static void CC bstWhack(BSTNode* n, void* ignore) {
+    RefNode* sn = (RefNode*) n;
+
+    assert(sn);
+
+    free(sn->name);
+    sn->name = NULL;
+
+    free(sn->seqId);
+    sn->seqId = NULL;
+
+    free(sn);
+}
 
 #define ALIAS_ALL    "a"
 #define OPTION_ALL   "all"
@@ -142,6 +391,67 @@ const char UsageDefaultName[] = "align-info";
 
 ver_t CC KAppVersion(void) { return ALIGN_INFO_VERS; }
 
+static rc_t ArgsRelease(Args* self) { return ArgsWhack(self); }
+
+typedef struct Column {
+    uint32_t idx;
+    const char* name;
+} Column;
+
+static rc_t AddColumn(rc_t rc, const VCursor* curs, Column* col) {
+    if (rc == 0) {
+        assert(col);
+
+        rc = VCursorAddColumn(curs, &col->idx, col->name);
+        DISP_RC2(rc, col->name, "while calling VCursorAddColumn");
+    }
+
+    return rc;
+}
+
+static rc_t CursorRead(rc_t rc, const VCursor* curs, int64_t row_id,
+    const Column* col, char* buffer, uint32_t blen, uint32_t expected,
+    uint32_t* row_len)
+{
+    if (rc == 0) {
+        assert(col);
+
+        if (blen == 0) {
+            assert(buffer == NULL);
+            ++blen;
+        }
+
+        rc = VCursorReadDirect
+            (curs, row_id, col->idx, 8, buffer, blen - 1, row_len);
+
+        if (rc != 0) {
+            if (buffer == NULL &&
+                rc == RC(rcVDB, rcCursor, rcReading, rcBuffer, rcInsufficient))
+            {
+                rc = 0;
+            }
+            else {
+                PLOGERR(klogInt, (klogInt, rc,
+                    "Error while calling VCursorReadDirect"
+                    "($(name), row_len=$(row_len))",
+                    "name=%s,row_len=%d", col->name, *row_len));
+            }
+        }
+        else {
+            if (expected > 0 && *row_len != expected) {
+                rc = RC(rcExe, rcCursor, rcReading, rcData, rcUnexpected);
+                PLOGERR(klogInt, (klogInt, rc,
+                    "$(name) row_len = $(row_len)",
+                    "name=%s,row_len=%d", col->name, row_len));
+            }
+            if (buffer != NULL)
+            {   buffer[*row_len] = '\0'; }
+        }
+    }
+
+    return rc;
+}
+
 static rc_t bam_header(const VDatabase* db) {
     rc_t rc = 0;
     const char path[] = "BAM_HEADER";
@@ -315,141 +625,151 @@ static rc_t qual_stats(const Params* prm, const VDatabase* db) {
     return rc;
 }
 
-static rc_t align_info(const Params* prm) {
+static rc_t Valign_info(const VDatabase* db, BSTree* tr) {
     rc_t rc = 0;
+    int64_t i = 0;
+    int64_t firstId = 0;
+    int64_t lastId = 0;
+    const char tblName[] = "REFERENCE";
+    Column CIRCULAR = { 0, "CIRCULAR" };
+    Column CMP_READ = { 0, "CMP_READ" };
+    Column NAME     = { 0, "NAME"     };
+    Column SEQ_ID   = { 0, "SEQ_ID"   };
+    const VCursor* curs = NULL;
+    const VTable* tbl = NULL;
+    if (db == NULL || tr == NULL)
+    {   return RC(rcExe, rcQuery, rcExecuting, rcParam, rcNull); }
+    if (rc == 0) {
+        rc = VDatabaseOpenTableRead(db, &tbl, tblName);
+        DISP_RC2(rc, tblName, "while calling VDatabaseOpenTableRead");
+    }
+    if (rc == 0) {
+        rc = VTableCreateCursorRead(tbl, &curs);
+        DISP_RC2(rc, tblName, "while calling VTableCreateCursorRead");
+    }
+    rc = AddColumn(rc, curs, &CIRCULAR);
+    rc = AddColumn(rc, curs, &CMP_READ);
+    rc = AddColumn(rc, curs, &NAME);
+    rc = AddColumn(rc, curs, &SEQ_ID);
+    if (rc == 0) {
+        rc = VCursorOpen(curs);
+        DISP_RC2(rc, tblName, "while calling VCursorOpen");
+    }
+    if (rc == 0) {
+        uint64_t count = 0;
+        rc = VCursorIdRange(curs, 0, &firstId, &count);
+        DISP_RC2(rc, tblName, "while calling VCursorIdRange");
+        lastId = firstId + count - 1;
+    }
+    for (i = firstId; i <= lastId && rc == 0; ++i) {
+        uint32_t row_len = 0;
+        uint32_t row_lenCMP_READ = 0;
+        char circular[8] = "";
+        char name[256] = "";
+        char seqId[256] = "";
+        rc = CursorRead(rc, curs, i, &CMP_READ, NULL, 0, 0, &row_lenCMP_READ);
+        rc = CursorRead(rc, curs, i, &CIRCULAR, circular, sizeof circular, 1,
+            &row_len);
+        rc = CursorRead(rc, curs, i, &SEQ_ID, seqId, sizeof seqId, 0, &row_len);
+        rc = CursorRead(rc, curs, i, &NAME, name, sizeof name, 0, &row_len);
+        if (rc == 0) {
+            RefNode* sn = NULL;
+            DBGMSG(DBG_APP, DBG_COND_1, ("SEQ_ID: %s\n", seqId));
+            sn = (RefNode*) BSTreeFind(tr, seqId, bstCmp);
+            if (sn == NULL) {
+                sn = calloc(1, sizeof(*sn));
+                if (sn == NULL) {
+                    rc = RC
+                        (rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
+                    break;
+                }
+                sn->seqId = strdup(seqId);
+                if (sn->seqId == NULL) {
+                    bstWhack((BSTNode*) sn, NULL);
+                    sn = NULL;
+                    rc = RC
+                        (rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
+                    break;
+                }
+                sn->name = strdup(name);
+                if (sn->name == NULL) {
+                    bstWhack((BSTNode*) sn, NULL);
+                    sn = NULL;
+                    rc = RC
+                        (rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
+                    break;
+                }
+                sn->circular = circular[0];
+                sn->row_lenCMP_READwas0 = (row_lenCMP_READ == 0);
+                BSTreeInsert(tr, (BSTNode*)sn, bstSort);
+            }
+            else {
+                if (row_lenCMP_READ == 0)
+                {   sn->row_lenCMP_READwas0 = true; }
+                if (strcmp(sn->name, name) || sn->circular != circular[0]) {
+                    rc = RC(rcExe, rcCursor, rcReading, rcData, rcInconsistent);
+                    PLOGERR(klogInt, (klogInt, rc,
+                        "while reading row $(row_id)", "row_id=%d", i));
+                }
+            }
+        }
+    }
+    DESTRUCT(VTable, tbl);
+    DESTRUCT(VCursor, curs);
+    return rc;
+}
 
+static rc_t align_info(const Params* prm) {
+    rc_t rc = 0;
     const VDatabase* db = NULL;
     const VDBManager* mgr = NULL;
-    const KDBManager *kmgr = NULL;
     VSchema* schema = NULL;
-    bool is_db = false;
-
     if (prm == NULL)
     {   return RC(rcExe, rcQuery, rcExecuting, rcParam, rcNull); }
-
     if (rc == 0) {
         rc = VDBManagerMakeRead(&mgr, NULL);
         DISP_RC(rc, "while calling VDBManagerMakeRead");
     }
-
-    if (rc == 0) {
-        rc = VDBManagerOpenKDBManagerRead(mgr, &kmgr);
-        DISP_RC(rc, "while calling VDBManagerOpenKDBManagerRead");
-    }
-
     if (rc == 0) {
         rc = VDBManagerMakeSRASchema(mgr, &schema);
         DISP_RC(rc, "while calling VDBManagerMakeSRASchema");
     }
-
     if (rc == 0) {
 /*      const char path[] = "/panfs/pan1/trace_work/scratch/XXX000013"; */
         rc = VDBManagerOpenDBRead(mgr, &db, schema, prm->dbPath);
-        if (rc == 0) {
-            is_db = true;
-        }
-        else if (rc == SILENT_RC(rcDB, rcMgr, rcOpening, rcDatabase, rcIncorrect)) {
-            PLOGMSG(klogWarn, (klogWarn,
-                "'$(path)' is not a database", "path=%s", prm->dbPath));
-            rc = 0;
-        }
-        else {
-            PLOGERR(klogErr,
-                (klogErr, rc, "$(path)", "path=%s", prm->dbPath));
-        }
+        if (rc)
+	{   PLOGERR(klogErr,(klogErr, rc, "$(path)", "path=%s", prm->dbPath)); }
     }
-
-    if (is_db) {
-        if (rc == 0) {
-            if (prm->paramRef) {
-                const VDBDependencies* dep = NULL;
-                uint32_t count = 0;
-                int i = 0;
-                rc = VDatabaseListDependencies(db, &dep, false);
-                DISP_RC2(rc, prm->dbPath,
-                    "while calling VDatabaseListDependencies");
-                if (rc == 0) {
-                    rc = VDBDependenciesCount(dep, &count);
-                    DISP_RC2(rc, prm->dbPath,
-                        "while calling VDBDependenciesCount");
-                }
-                for (i = 0; i < count && rc == 0; ++i) {
-                    bool circular = false;
-                    const char* name = NULL;
-                    const char* path = NULL;
-                    const char* remote = NULL;
-                    bool local = false;
-                    const char* seqId = NULL;
-                    rc = VDBDependenciesCircular(dep, &circular, i);
-                    if (rc != 0) {
-                        DISP_RC2(rc, prm->dbPath,
-                            "while calling VDBDependenciesCircular");
-                        break;
-                    }
-                    rc = VDBDependenciesName(dep, &name, i);
-                    if (rc != 0) {
-                        DISP_RC2(rc, prm->dbPath,
-                            "while calling VDBDependenciesName");
-                        break;
-                    }
-                    rc = VDBDependenciesPath(dep, &path, i);
-                    if (rc != 0) {
-                        DISP_RC2(rc, prm->dbPath,
-                            "while calling VDBDependenciesPath");
-                        break;
-                    }
-                    rc = VDBDependenciesLocal(dep, &local, i);
-                    if (rc != 0) {
-                        DISP_RC2(rc, prm->dbPath,
-                            "while calling VDBDependenciesLocal");
-                        break;
-                    }
-                    rc = VDBDependenciesSeqId(dep, &seqId, i);
-                    if (rc != 0) {
-                        DISP_RC2(rc, prm->dbPath,
-                            "while calling VDBDependenciesSeqId");
-                        break;
-                    }
-                    rc = VDBDependenciesPathRemote(dep, &remote, i);
-                    if (rc != 0) {
-                        DISP_RC2(rc, prm->dbPath,
-                            "while calling VDBDependenciesRemote");
-                        break;
-                    }
-                    OUTMSG(("%s,%s,%s,%s", seqId, name,
-                        (circular ? "true" : "false"),
-                        (local ? "local" : "remote")));
-                    if (path && path[0]) {
-                        OUTMSG((":%s", path));
-                    }
-                    else if (remote && remote[0]) {
-                        OUTMSG(("::%s", remote));
-                    }
-                    OUTMSG(("\n"));
-                }
-                DESTRUCT(VDBDependencies, dep);
-            }
-
-            if (prm->paramBamHeader) {
-                rc_t rc3 = bam_header(db);
-                if (rc3 != 0 && rc == 0)
-                {   rc = rc3; }
+    if (rc == 0) {
+        if (prm->paramRef) {
+            BSTree tr;
+            BSTreeInit(&tr);
+            rc = Valign_info(db, &tr);
+            if (rc == 0) {
+                BSTreeForEach(&tr, false, bstPrint, NULL);
+                OUTMSG(("\n"));
             }
-
-            if (prm->paramQuality) {
-                rc_t rc3 = qual_stats(prm, db);
-                if (rc3 != 0 && rc == 0)
-                {   rc = rc3; }
+            BSTreeWhack(&tr, bstWhack, NULL);
+            {
+                rc_t rc2 = DestroyConfig();
+                if (rc2 != 0 && rc == 0)
+                {   rc = rc2; }
             }
         }
-
+        if (prm->paramBamHeader) {
+            rc_t rc3 = bam_header(db);
+            if (rc3 != 0 && rc == 0)
+            {   rc = rc3; }
+        }
+        if (prm->paramQuality) {
+            rc_t rc3 = qual_stats(prm, db);
+            if (rc3 != 0 && rc == 0)
+            {   rc = rc3; }
+        }
     }
-
     DESTRUCT(VSchema, schema);
-    DESTRUCT(KDBManager, kmgr);
     DESTRUCT(VDBManager, mgr);
     DESTRUCT(VDatabase, db);
-
     return rc;
 }
 
@@ -475,9 +795,8 @@ rc_t CC KMain(int argc, char* argv[]) {
             break;
         }
         if (pcount < 1) {
+            rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInsufficient);
             MiniUsage(args);
-            DESTRUCT(Args, args);
-            exit(1);
             break;
         }
         if (pcount > 1) {
diff --git a/tools/align-info/align-info.vers b/tools/align-info/align-info.vers
index f90b1af..04b10b4 100644
--- a/tools/align-info/align-info.vers
+++ b/tools/align-info/align-info.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/align-info/align-info.vers.h b/tools/align-info/align-info.vers.h
new file mode 100644
index 0000000..76b6f33
--- /dev/null
+++ b/tools/align-info/align-info.vers.h
@@ -0,0 +1 @@
+#define ALIGN_INFO_VERS 0x02010007
diff --git a/tools/bam-loader/Globals.h b/tools/bam-loader/Globals.h
deleted file mode 100644
index 50a0d9c..0000000
--- a/tools/bam-loader/Globals.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_GLOBALS_H_
-#define BAM_LOAD_GLOBALS_H_ 1
-
-enum LoaderModes {
-    mode_Archive,
-    mode_Analysis
-};
-
-typedef struct globals
-{
-    char const *inpath;
-    char const *outpath;
-    char const *tmpfs;
-    
-    struct KFile *noMatchLog;
-    
-    char const *schemaPath;
-    char const *schemaIncludePath;
-    
-    char const *refXRefPath;
-    
-    char const *QualQuantizer;
-    
-    char const *refFilter;
-
-    char const** refFiles; /* NULL-terminated array pointing to argv */
-    
-    char const *headerText;
-    
-    uint64_t maxAlignCount;
-    size_t cache_size;
-
-    unsigned errCount;
-    unsigned maxErrCount;
-    unsigned maxWarnCount_NoMatch;
-    unsigned maxWarnCount_DupConflict;
-    unsigned pid;
-    unsigned minMatchCount; /* minimum number of matches to count as an alignment */
-    int minMapQual;
-    enum LoaderModes mode;
-    uint32_t maxSeqLen;
-    bool omit_aligned_reads;
-    bool omit_reference_reads;
-    bool no_real_output;
-    bool expectUnsorted;
-    bool noVerifyReferences;
-    bool onlyVerifyReferences;
-    bool useQUAL;
-    bool limit2config;
-    bool editAlignedQual;
-    bool keepMismatchQual;
-    bool acceptBadDups; /* accept spots with inconsistent PCR duplicate flags */
-    bool acceptNoMatch; /* accept without any matching bases */
-    bool noSpotAssembly;
-    uint8_t alignedQualValue;
-    bool allUnaligned; /* treat all records as unaligned */
-    bool noColorSpace;
-    bool noSecondary;
-    bool hasTI;
-    bool acceptHardClip;
-} Globals;
-
-extern Globals G;
-#endif
diff --git a/tools/bam-loader/KFileHelper.c b/tools/bam-loader/KFileHelper.c
deleted file mode 100644
index b9c65c0..0000000
--- a/tools/bam-loader/KFileHelper.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "KFileHelper.h"
-#include <string.h>
-
-rc_t BufferedKFileGets(KDataBuffer *buf, unsigned offset, unsigned *nread, BufferedKFile *strm) {
-    unsigned i;
-    unsigned n;
-    int ch;
-    rc_t rc;
-    
-    do {
-        if (strm->cur != strm->inbuf) {
-            ch = strm->buf[strm->cur];
-            
-            if (ch == '\r' || ch == '\n')
-                ++strm->cur;
-            else
-                break;
-        }
-        else {
-            size_t numread;
-            
-            rc = KFileRead(strm->kfp, strm->fpos, strm->buf, sizeof(strm->buf), &numread);
-            if (rc) return -1;
-            
-            strm->cur = 0;
-            strm->inbuf = numread;
-            strm->fpos += numread;
-            if (numread == 0) {
-                *nread = 0;
-                return 0;
-            }
-        }
-    } while (1);
-    
-    for (n = 0, i = offset; ; ++i, ++n) {
-        if (strm->cur != strm->inbuf) {
-            ch = strm->buf[strm->cur++];
-        }
-        else {
-            size_t numread;
-            
-            rc = KFileRead(strm->kfp, strm->fpos, strm->buf, sizeof(strm->buf), &numread);
-            if (rc) return rc;
-            
-            strm->cur = 0;
-            strm->inbuf = numread;
-            if (numread == 0) break;
-            strm->fpos += numread;
-            ch = strm->buf[strm->cur++];
-        }
-        if (ch == '\r' || ch == '\n') break;
-        if (i >= buf->elem_count) {
-            rc = KDataBufferResize(buf, buf->elem_count ? buf->elem_count * 2 : 1024);
-            if (rc) return rc;
-        }
-        ((char *)buf->base)[i] = ch;
-    }
-    *nread = n;
-    return 0;
-}
-
-rc_t BufferedKFileOpen(const KDirectory *directory, BufferedKFile *rslt, const char *fileName, ...) {
-    va_list va;
-    rc_t rc;
-
-    memset(rslt, 0, sizeof(rslt) - sizeof(rslt->buf));
-
-    va_start(va, fileName);
-    rc = KDirectoryVOpenFileRead(directory, &rslt->kfp, fileName, va);
-    va_end(va);
-    
-    return rc;
-}
-
-rc_t BufferedKFileClose(BufferedKFile *strm) {
-    return KFileRelease(strm->kfp);
-}
-
-rc_t LoadFile(KDataBuffer *dst, uint64_t *lineCount, const KDirectory *dir, const char *fileName, ...) {
-    BufferedKFile strm;
-    rc_t rc;
-    unsigned line = 0;
-
-    memset(&strm, 0, sizeof(strm) - sizeof(strm.buf));
-    {
-        va_list va;
-
-        va_start(va, fileName);
-        rc = KDirectoryVOpenFileRead(dir, &strm.kfp, fileName, va);
-        va_end(va);
-    }
-    if (rc == 0) {
-        unsigned offset = 0;
-        unsigned i;
-        
-        while ((rc = BufferedKFileGets(dst, offset, &i, &strm)) == 0 && i) {
-            offset += i;
-            if (offset + 1 >= dst->elem_count) {
-                rc = KDataBufferResize(dst, offset + 1);
-                if (rc)
-                    break;
-            }
-            ((char *)dst->base)[offset++] = '\0';
-            ++line;
-        }
-        BufferedKFileClose(&strm);
-        if (rc == 0)
-            rc = KDataBufferResize(dst, offset);
-    }
-    if (rc != 0) {
-        KDataBufferResize(dst, 0);
-        line = 0;
-    }
-    if (lineCount) *lineCount = line;
-    return rc;
-}
diff --git a/tools/bam-loader/KFileHelper.h b/tools/bam-loader/KFileHelper.h
deleted file mode 100644
index 4551952..0000000
--- a/tools/bam-loader/KFileHelper.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_KFILEHELPER_H_
-#define BAM_LOAD_KFILEHELPER_H_ 1
-#include <klib/data-buffer.h>
-#include <kfs/directory.h>
-#include <kfs/file.h>
-
-typedef struct BufferedKFile BufferedKFile;
-
-#define KFILE_BUF_SIZE (4096)
-struct BufferedKFile {
-    uint64_t fpos;
-    const KFile *kfp;
-    unsigned inbuf;
-    unsigned cur;
-    char buf[KFILE_BUF_SIZE];
-};
-
-rc_t BufferedKFileGets(KDataBuffer *buf, unsigned offset, unsigned *nread, BufferedKFile *strm);
-rc_t BufferedKFileOpen(const KDirectory *directory, BufferedKFile *rslt, const char *fileName, ...);
-rc_t BufferedKFileClose(BufferedKFile *strm);
-rc_t LoadFile(KDataBuffer *dst, uint64_t *lineCount, const KDirectory *dir, const char *fileName, ...);
-#endif
diff --git a/tools/bam-loader/KVPFile.c b/tools/bam-loader/KVPFile.c
deleted file mode 100644
index c9d60cd..0000000
--- a/tools/bam-loader/KVPFile.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "KVPFile.h"
-
-#include <kfs/file.h>
-#include <klib/rc.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#define USE_KDB_BTREE 1
-
-#if USE_KDB_BTREE
-#include <kdb/btree.h>
-#else
-#include "hashtable.h"
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#endif
-
-
-
-#if USE_KDB_BTREE
-
-/* going to make an index with:                                                                        
- *  a) backing file                                                                                     
- *  b) page size is fixed at 32K, otherwise the page size would have to be stored somewhere             
- *  c) page cache - need cache limit in bytes                                                           
- *  d) 2 chunked value streams - need key chunking and value chunking                                   
- *  e) B-Tree-ish index, requiring a comparison function. this interface uses opaque keys.              
- *     the "matched-count" parameter is useful for trie traversal, but this will be built-in            
- */
-rc_t KVPFileMake ( KVPFile **rslt, KFile *file, size_t climit,
-    size_t kchunk_size, size_t vchunk_size,
-    size_t min_ksize, size_t max_ksize, size_t min_vsize, size_t max_vsize,
-    KVPFileCompareFunc cmp )
-{
-    return KBTreeMakeUpdate ( ( KBTree** ) rslt, file, climit, false, kbtOpaqueKey,
-        kchunk_size, vchunk_size, min_ksize, max_ksize, min_vsize, max_vsize, cmp );
-}
-
-
-/* this whacker works fine
- */
-rc_t KVPFileWhack ( KVPFile *xself, bool commit )
-{
-    KBTree *self = ( KBTree* ) xself;
-
-    rc_t rc = 0;
-
-    if ( self != NULL )
-    {
-        /* drop the backing file unless commiting */
-        if ( ! commit )
-            rc = KBTreeDropBacking ( self );
-
-        /* drop the b-tree */
-        rc = KBTreeRelease ( self );
-    }
-
-    return rc;
-}
-
-
-/* whacker */
-void KVPValueWhack ( KVPValue *self )
-{
-    KBTreeValueWhack ( self );
-}
-
-/* return the pointer to thingie */
-rc_t KVPValueAccessRead ( const KVPValue *self, const void **mem, size_t *bytes )
-{
-    return KBTreeValueAccessRead ( self, mem, bytes );
-}
-
-rc_t KVPValueAccessUpdate ( KVPValue *self, void **mem, size_t *bytes )
-{
-    return KBTreeValueAccessUpdate ( self, mem, bytes );
-}
-
-
-/* find will not modify the index in any way
- *  returns a pointer into a page, meaning that the values cannot exceed 32K in size
- *  this is done
- */
-rc_t KVPFileFind ( const KVPFile *self, KVPValue *val, const void *key, size_t ksize )
-{
-    return KBTreeFind ( ( const KBTree* ) self, val, key, ksize );
-}
-
-
-
-/* find or insert will return an existing or create a new entry
- * note that the new entry is initially zeroed
- */
-rc_t KVPFileFindOrInsert ( KVPFile *self, KVPValue *val,
-                          bool *was_inserted, size_t alloc_size,
-                          const void *key, size_t ksize )
-{
-    return KBTreeEntry ( ( KBTree* ) self, val, was_inserted, alloc_size, key, ksize );
-}
-
-rc_t KVPFileForEach ( const KVPFile *self,
-                      void ( CC * f )( const void *key, size_t ksize, KVPValue *val, void *ctx ),
-                      void *ctx )
-{
-    return KBTreeForEach((KBTree *)self, 0, f, ctx);
-}
-
-
-#else
-typedef struct KTempMMap {
-    void *base;
-    size_t sz;
-    int fd;
-    unsigned elemsize;
-    unsigned fileNo;
-} KTempMMap;
-
-static rc_t KTempMMapMake(KTempMMap *rslt, size_t initSize, size_t elemSize)
-{
-    char fname[4096];
-    
-    memset(rslt, 0, sizeof(*rslt));
-    rslt->elemsize = elemSize;
-    
-    sprintf(fname, "/tmp/kvp.%u.XXXXXX", getpid());
-    rslt->fd = mkstemp(fname);
-    if (rslt->fd < 0) {
-        perror(fname);
-        return RC(rcApp, rcFile, rcCreating, rcFile, rcUnknown);
-    }    
-    unlink(fname);
-
-    if (ftruncate(rslt->fd, initSize * elemSize) != 0)
-        return RC(rcApp, rcFile, rcResizing, rcFile, rcUnknown);
-    
-    rslt->sz = initSize;
-    
-    rslt->base = mmap(0, initSize * elemSize, PROT_READ | PROT_WRITE, MAP_SHARED, rslt->fd, 0);
-    if (rslt->base == MAP_FAILED)
-        return RC(rcApp, rcMemMap, rcCreating, rcMemory, rcInsufficient);
-    
-    return 0;
-}
-
-static rc_t KTempMMapWhack(KTempMMap *self)
-{
-    close(self->fd);
-    madvise(self->base, self->sz, MADV_DONTNEED);
-    munmap(self->base, self->sz);
-    return 0;
-}
-
-static void *KTempMMapPointer(KTempMMap *self, size_t offset, size_t count)
-{
-    void *temp;
-    size_t newsz;
-    
-    if (offset + count <= self->sz)
-        return &((uint8_t *)self->base)[offset * self->elemsize];
-
-    newsz = self->sz;
-    while (newsz < offset + count)
-        newsz <<= 1;
-    
-    if (ftruncate(self->fd, newsz * self->elemsize) != 0)
-        return NULL;
-
-    temp = mmap(0, newsz * self->elemsize, PROT_READ | PROT_WRITE, MAP_SHARED, self->fd, 0);
-    if (temp == MAP_FAILED)
-        return NULL;
-    
-    munmap(self->base, self->sz);
-    self->base = temp;
-    self->sz = newsz;
-    
-    return &((uint8_t *)self->base)[offset * self->elemsize];
-}
-
-typedef struct key_t {
-    uint8_t len;
-    char key[255];
-} my_key_t;
-
-struct KVPFile {
-    HashTable *ht;
-    size_t next_obj;
-    KTempMMap keys;
-    KTempMMap values;
-};
-
-typedef struct KVPValueImpl KVPValueImpl;
-struct KVPValueImpl
-{
-    KVPFile * file;
-    size_t offset;
-    size_t size;
-};
-
-static int KeyComp(const void *id, const void *key, uint32_t len, void *ctx)
-{
-    KVPFile *self = ctx;
-    const my_key_t *test = KTempMMapPointer(&self->keys, (intptr_t)id, 1);
-    int r = memcmp(test->key, key, test->len < len ? test->len : len);
-    if (r == 0)
-        r = test->len - len;
-    return r;
-}
-
-rc_t KVPFileMake(KVPFile **rslt,
-                 KFile *file,
-                 size_t climit,
-                 size_t kchunk_size, size_t vchunk_size,
-                 size_t min_ksize, size_t max_ksize,
-                 size_t min_vsize, size_t max_vsize,
-                 KVPFileCompareFunc cmp
-                 )
-{
-    rc_t rc;
-    KVPFile *self = calloc(1, sizeof(*self));
-    
-    if (self == NULL)
-        return RC(rcApp, rcMemMap, rcAllocating, rcMemory, rcExhausted);
-    
-    rc = KTempMMapMake(&self->keys, 256, sizeof(my_key_t));
-    if (rc == 0) {
-        rc = KTempMMapMake(&self->values, 256, max_vsize);
-        if (rc == 0) {
-            rc = HashTableMake(&self->ht, 256, KeyComp, self);
-            if (rc == 0) {
-                *rslt = self;
-                return 0;
-            }
-            KTempMMapWhack(&self->values);
-        }
-        KTempMMapWhack(&self->keys);
-    }
-    free(self);
-    return rc;
-}
-
-rc_t KVPFileWhack(KVPFile *self, bool commit)
-{
-    if (self) {
-        KTempMMapWhack(&self->values);
-        KTempMMapWhack(&self->keys);
-        HashTableWhack(self->ht, 0, 0);
-        free(self);
-    }
-    return 0;
-}
-
-rc_t KVPFileFind(const KVPFile *self, KVPValue *xval, const void *key, size_t ksize)
-{
-    KVPValueImpl *val = ( KVPValueImpl* ) xval;
-    const HashTableIterator iter = HashTableLookup(self->ht, key, ksize);
-    if (HashTableIteratorHasValue(&iter)) {
-        val->file = (void *)self;
-        val->offset = (intptr_t)HashTableIteratorGetValue(&iter);
-        val->size = 1;
-        return 0;
-    }
-    return RC(rcApp, rcMemMap, rcReading, rcId, rcNotFound);
-}
-
-rc_t KVPFileFindOrInsert(KVPFile *self, KVPValue *xval,
-                         bool *was_inserted, size_t alloc_size,
-                         const void *key, size_t ksize
-                         )
-{
-    KVPValueImpl *val = ( KVPValueImpl* ) xval;
-    HashTableIterator iter = HashTableLookup(self->ht, key, ksize);
-    
-    if (HashTableIteratorHasValue(&iter)) {
-        val->file = (void *)self;
-        val->offset = (intptr_t)HashTableIteratorGetValue(&iter);
-        val->size = 1;
-        *was_inserted = false;
-        return 0;
-    }
-    else {
-        size_t new_id = self->next_obj++;
-        my_key_t *new_key = KTempMMapPointer(&self->keys, new_id, 1);
-        
-        new_key->len = ksize;
-        memcpy(new_key->key, key, ksize);
-        
-        *was_inserted = true;
-        val->file = (void *)self;
-        val->offset = new_id;
-        val->size = 1;
-        HashTableIteratorSetValue(&iter, (void *)(val->offset));
-    }
-    return 0;
-}
-
-static rc_t KVPValueAccess(const KVPValueImpl *value, void **mem, size_t *bytes)
-{
-    KVPFile *self = value->file;
-    void *temp = KTempMMapPointer(&self->values, value->offset, value->size);
-    
-    if (temp != NULL) {
-        *bytes = self->values.elemsize * value->size;
-        *mem = temp;
-        return 0;
-    }
-    *bytes = 0;
-    *mem = NULL;
-    return RC(rcApp, rcMemMap, rcReading, rcMemory, rcNotFound);
-}
-
-rc_t KVPValueAccessRead(const KVPValue *self, const void **mem, size_t *bytes)
-{
-    return KVPValueAccess((const KVPValueImpl*)self, (void **)mem, bytes);
-}
-
-rc_t KVPValueAccessUpdate(KVPValue *self, void **mem, size_t *bytes)
-{
-    return KVPValueAccess((KVPValueImpl*)self, mem, bytes);
-}
-
-void KVPValueWhack(KVPValue *self)
-{
-}
-
-#endif /* USE_KDB_BTREE */
diff --git a/tools/bam-loader/KVPFile.h b/tools/bam-loader/KVPFile.h
deleted file mode 100644
index 01de157..0000000
--- a/tools/bam-loader/KVPFile.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_KVPFile_
-#define _h_KVPFile_
-
-#ifndef _h_kdb_btree_
-#include <kdb/btree.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* this can be made to work as we go forward
- */
-typedef struct KVPFile KVPFile;
-
-
-/* generic comparison function
- *  size_t indicates bytes
- */
-typedef KBTreeCompareFunc KVPFileCompareFunc;
-
-
-/* going to make an index with:                                                                        
- *  a) backing file                                                                                     
- *  b) page size is fixed at 32K, otherwise the page size would have to be stored somewhere             
- *  c) page cache - need cache limit in bytes                                                           
- *  d) 2 chunked value streams - need key chunking and value chunking                                   
- *  e) B-Tree-ish index, requiring a comparison function. this interface uses opaque keys.              
- *     the "matched-count" parameter is useful for trie traversal, but this will be built-in            
- *                                                                                                      
- *  "rslt" [ OUT ] - return of Ken's object                                                             
- *                                                                                                      
- *  "file" [ IN ] - open file with read/write permissions.                                              
- *   NB - a reference will be attached to this file, so you still own it                                
- *                                                                                                      
- *  "climit" [ IN ] - cache limit in bytes. the internal page cache will                                
- *   retain UP TO ( but not exceeding ) the limit specified. for 32K pages,                             
- *   this means than the byte values 0..0x7FFF will result in NO CACHE.                                 
- *   internally, this limit is converted to a page count by simple division,                            
- *   i.e. cpage-limit = climit / PGSIZE.                                                                
- *                                                                                                      
- *  "kchunk_size" [ IN ] and "vchunk_size" [ IN ] - the "chunking" ( alignment )                        
- *   factor for storing keys and values, respectively. rounded up to the nearest                        
- *   power of 2 that will hold the bytes specified.                                                     
- *                                                                                                      
- *  "min_ksize" [ IN ] and "max_ksize" [ IN ] - specifies the allowed key sizes. if                     
- *   unknown, a min of 1 and a max of ~ ( size_t ) 0 will allow for any size. if fixed,                 
- *   min_ksize == max_ksize will indicate this, and the size will be used exactly as                    
- *   chunking factor ( see "kchunk_size" above ).                                                       
- *                                                                                                      
- *  "min_vsize" [ IN ] and "max_vsize" [ IN ] - specifies allowed value sizes. see above.               
- *                                                                                                      
- *  "cmp" [ IN ] - comparison callback function for opaque keys. later, we'll want to                   
- *   make use of key type knowledge to improve traversal ( callbacks are expensive ), but               
- *   for now, we can treat them as opaque.                                                              
- */
-rc_t KVPFileMake ( KVPFile **rslt, struct KFile *file, size_t climit,
-                  size_t kchunk_size, size_t vchunk_size,
-                  size_t min_ksize, size_t max_ksize, size_t min_vsize, size_t max_vsize,
-                  KVPFileCompareFunc cmp );
-
-
-
-/* this whacker works fine
- *
- * "commit" [ IN ] - if false, tells the underlying pagefile
- *  to forget its backing before whacking the cache.
- */
-rc_t KVPFileWhack ( KVPFile *self, bool commit );
-
-
-/* results point directly into pages, and thus require a reference
- * I'm going to invent a structure to use and some functions - the
- * structure itself may change, but we should be able to make it work
- *
- * it will be an defined structure, although it may be defined simply as
- * an array of 3 size_t to make it opaque. if it were made an allocation,
- * then we'd have to have a special allocator in order to keep the noise
- * down. maybe that's the way to go, but it means more code. for now,...
- */
-typedef struct KBTreeValue KVPValue;
-
-
-/* whacker */
-void KVPValueWhack ( KVPValue *self );
-
-/* return the pointer to thingie */
-rc_t KVPValueAccessRead ( const KVPValue *self, const void **mem, size_t *bytes );
-rc_t KVPValueAccessUpdate ( KVPValue *self, void **mem, size_t *bytes );
-
-
-/* find will not modify the index in any way
- *  returns a pointer into a page, meaning that the values cannot exceed 32K in size
- *  this is done
- *
- *  "val" [ OUT ] - pointer to an uninitialized block that will contain
- *   information on how to access data within a page. note that the value
- *   is "live", and if accessed for update will cause the page to be modified.
- *   it is not clear whether this is desired or side-effect behavior, so I'm
- *   leaving it alone for now.
- *
- *  "key" [ IN ] and "ksize" [ IN ] - opaque key description
- */
-rc_t KVPFileFind ( const KVPFile *self, KVPValue *val, const void *key, size_t ksize );
-
-
-
-/* find or insert will return an existing or create a new entry
- * note that the new entry is initially zeroed
- *
- *  "val" [ OUT ] - pointer to uninitialized block that will contain value data.
- *   since the intention is to modify the value, access to val will most certainly
- *   be via "KVPValueAccessUpdate" which will dirty the page regardless.
- *
- *  "was_inserted" [ OUT ] - if true, the returned value was the result of an
- *   insertion and can be guaranteed to be all 0 bits. otherwise, the returned
- *   value will be whatever was there previously.
- *
- *  "alloc_size" [ IN ] - the number of value bytes to allocate upon insertion,
- *   i.e. if the key was not found. this value must agree with the limits specified
- *   in Make.
- *
- *  "key" [ IN ] and "ksize" [ IN ] - opaque key description
- */
-rc_t KVPFileFindOrInsert ( KVPFile *self, KVPValue *val,
-                          bool *was_inserted, size_t alloc_size,
-                          const void *key, size_t ksize );
-
-rc_t KVPFileForEach ( const KVPFile *self,
-    void ( CC * f )( const void *key, size_t ksize, KVPValue *val, void *ctx ),
-    void *ctx);
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_KVPFile_ */
diff --git a/tools/bam-loader/Makefile b/tools/bam-loader/Makefile
deleted file mode 100644
index eb098de..0000000
--- a/tools/bam-loader/Makefile
+++ /dev/null
@@ -1,136 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/bam-loader
-
-INT_TOOLS = \
-
-EXT_TOOLS = \
-	bam-load
-
-TEST_TOOLS = \
-	wb-test-bam-loader    
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-RUNTESTS_OVERRIDE=1
-
-include $(TOP)/build/Makefile.env
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-ifeq (win,$(OS))
-all std:
-	@ echo "not building bam-load under Windows"
-else
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-endif
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-$(TEST_TOOLS): makedirs
-	@ $(MAKE_CMD) $(TEST_BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS) $(TEST_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_TOOLS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
-
-
-#-------------------------------------------------------------------------------
-# bam-load.2.*
-#
-BAMLOAD_SRC = \
-	bam-loader \
-	alignment-writer \
-	reference-writer \
-	sequence-writer \
-	loader-imp
-
-BAMLOAD_OBJ = \
-	$(addsuffix .$(OBJX),$(BAMLOAD_SRC))
-
-BAMLOAD_LIB = \
-	-lkapp \
-	-dwaxf \
-	-dwsraxf \
-	-dwvxf \
-	-lload \
-	-lncbi-bam \
-	-lalign-writer \
-	-lwvdb \
-	-lwkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lksrch \
-	-lkproc \
-	-lkq \
-	-lklib \
-	-lm \
-	-lz
-
-$(BINDIR)/bam-load: $(BAMLOAD_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(BAMLOAD_LIB)
-
-bam-load_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) bam-load $(BAMLOAD_OBJ)
diff --git a/tools/bam-loader/alignment-writer.c b/tools/bam-loader/alignment-writer.c
deleted file mode 100644
index fe84dc8..0000000
--- a/tools/bam-loader/alignment-writer.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <sysalloc.h>
-#include <klib/out.h>
-
-#include <vdb/vdb-priv.h>
-
-#include "alignment-writer.h"
-#include "Globals.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-enum e_tables {
-    tblPrimary,
-    tblSecondary,
-    tblN
-};
-
-struct s_alignment {
-    VDatabase *db;
-    TableWriterAlgn const *tbl[tblN];
-    int64_t rowId;
-    int st;
-};
-
-Alignment *AlignmentMake(VDatabase *db) {
-    Alignment *self = calloc(1, sizeof(*self));
-    
-    if (self) {
-        self->db = db;
-        VDatabaseAddRef(self->db);
-    }
-    return self;
-}
-
-static rc_t SetColumnDefaults(TableWriterAlgn const *tbl)
-{
-    return 0;
-}
-
-static rc_t WritePrimaryRecord(Alignment *const self, AlignmentRecord *const data)
-{
-    if (self->tbl[tblPrimary] == NULL) {
-        rc_t rc = TableWriterAlgn_Make(&self->tbl[tblPrimary], self->db,
-                                       ewalgn_tabletype_PrimaryAlignment,
-                                       ewalgn_co_TMP_KEY_ID + 
-                                       (G.expectUnsorted ? ewalgn_co_unsorted : 0));
-        if (rc)
-            return rc;
-        rc = SetColumnDefaults(self->tbl[tblPrimary]);
-        if (rc)
-            return rc;
-    }
-    return TableWriterAlgn_Write(self->tbl[tblPrimary], &data->data, &data->alignId);
-}
-
-static rc_t WriteSecondaryRecord(Alignment *const self, AlignmentRecord *const data)
-{
-    if (self->tbl[tblSecondary] == NULL) {
-        rc_t rc = TableWriterAlgn_Make(&self->tbl[tblSecondary], self->db,
-                                       ewalgn_tabletype_SecondaryAlignment,
-                                       ewalgn_co_TMP_KEY_ID + 
-                                       (G.expectUnsorted ? ewalgn_co_unsorted : 0));
-        if (rc)
-            return rc;
-        rc = SetColumnDefaults(self->tbl[tblSecondary]);
-        if (rc)
-            return rc;
-    }
-#if 1
-    /* try to make consistent with cg-load */
-    if (data->mate_ref_pos == 0) {
-        data->data.mate_ref_orientation.elements = 0;
-    }
-#endif
-    return TableWriterAlgn_Write(self->tbl[tblSecondary], &data->data, &data->alignId);
-}
-
-rc_t AlignmentWriteRecord(Alignment *const self, AlignmentRecord *const data)
-{
-    return data->isPrimary ? WritePrimaryRecord(self, data) : WriteSecondaryRecord(self, data);
-}
-
-rc_t AlignmentStartUpdatingSpotIds(Alignment *const self)
-{
-    return 0;
-}
-
-rc_t AlignmentGetSpotKey(Alignment *const self, uint64_t * keyId)
-{
-    rc_t rc;
-    
-    switch (self->st) {
-    case 0:
-        rc = TableWriterAlgn_TmpKeyStart(self->tbl[tblPrimary]);
-        if (rc)
-            break;
-        self->rowId = 0;
-        ++self->st;
-    case 1:
-        rc = TableWriterAlgn_TmpKey(self->tbl[tblPrimary], ++self->rowId, keyId);
-        if (rc == 0)
-            break;
-        ++self->st;
-        if (GetRCState(rc) != rcNotFound || GetRCObject(rc) != rcRow || self->tbl[tblSecondary] == NULL)
-            break;
-    case 2:
-        rc = TableWriterAlgn_TmpKeyStart(self->tbl[tblSecondary]);
-        if (rc)
-            break;
-        self->rowId = 0;
-        ++self->st;
-    case 3:
-        rc = TableWriterAlgn_TmpKey(self->tbl[tblSecondary], ++self->rowId, keyId);
-        if (rc == 0)
-            break;
-        if (GetRCState(rc) != rcNotFound || GetRCObject(rc) != rcRow)
-            break;
-        ++self->st;
-        break;
-    default:
-        rc = RC(rcAlign, rcTable, rcUpdating, rcError, rcIgnored);
-        break;
-    }
-    return rc;
-}
-
-rc_t AlignmentWriteSpotId(Alignment * const self, int64_t const spotId)
-{
-    switch (self->st) {
-    case 1:
-        return TableWriterAlgn_Write_SpotId(self->tbl[tblPrimary], self->rowId, spotId);
-    case 3:
-        return TableWriterAlgn_Write_SpotId(self->tbl[tblSecondary], self->rowId, spotId);
-    default:
-        return RC(rcAlign, rcTable, rcUpdating, rcSelf, rcInconsistent);
-    }
-}
-
-rc_t AlignmentWhack(Alignment * const self, bool const commit) 
-{
-    rc_t const rc = TableWriterAlgn_Whack(self->tbl[tblPrimary], commit, NULL);
-    rc_t const rc2 = self->tbl[tblSecondary] ? TableWriterAlgn_Whack(self->tbl[tblSecondary], commit | (rc == 0), NULL) : 0;
-
-    VDatabaseRelease(self->db);
-    free(self);
-    return rc ? rc : rc2;
-}
diff --git a/tools/bam-loader/alignment-writer.h b/tools/bam-loader/alignment-writer.h
deleted file mode 100644
index bd8dfed..0000000
--- a/tools/bam-loader/alignment-writer.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_ALIGNMENT_WRITER_H_
-#define BAM_LOAD_ALIGNMENT_WRITER_H_ 1
-
-#include <klib/text.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-
-#include <insdc/insdc.h>
-
-#include <align/writer-alignment.h>
-
-typedef struct s_alignment Alignment;
-typedef struct AlignmentRecord AlignmentRecord;
-
-struct AlignmentRecord {
-    TableWriterAlgnData data;
-    int64_t alignId;
-    bool isPrimary;
-
-    INSDC_coord_one read_id;
-    int64_t ref_id;
-    INSDC_coord_zero ref_start;
-    uint64_t global_ref_start;
-    bool ref_orientation;
-    uint32_t mapq;
-    uint64_t tmp_key_id;
-
-    INSDC_coord_zero read_start;
-    INSDC_coord_len read_len;
-
-    bool mate_ref_orientation;
-    int64_t mate_ref_id;
-    INSDC_coord_zero mate_ref_pos;
-    int64_t mate_align_id;
-    int32_t template_len;
-};
-
-#define AR_REF_ID(X) ((X).ref_id)
-#define AR_REF_START(X) ((X).global_ref_start)
-#define AR_REF_LEN(X) ((X).ref_len)
-#define AR_REF_ORIENT(X) ((X).ref_orientation)
-#define AR_READNO(X) ((X).read_id)
-#define AR_MAPQ(X) ((X).mapq)
-#define AR_KEY(X) ((X).tmp_key_id)
-
-#define AR_BASECOUNT(X) ((X).data.has_mismatch.elements)
-#define AR_HAS_MISMATCH(X) ((bool *)((X).data.has_mismatch.buffer))
-#define AR_HAS_OFFSET(X) ((bool *)((X).data.has_ref_offset.buffer))
-
-#define AR_NUM_MISMATCH(X) ((X).data.mismatch.elements)
-#define AR_MISMATCH(X) ((char *)((X).data.mismatch.buffer))
-
-#define AR_NUM_OFFSET(X) ((X).data.ref_offset.elements)
-#define AR_OFFSET(X) ((INSDC_coord_zero *)((X).data.ref_offset.buffer))
-
-Alignment *AlignmentMake(VDatabase *db);
-
-rc_t AlignmentWriteRecord(Alignment *self, AlignmentRecord *data);
-
-rc_t AlignmentStartUpdatingSpotIds(Alignment *self);
-
-rc_t AlignmentGetSpotKey(Alignment *self, uint64_t *keyId);
-
-rc_t AlignmentWriteSpotId(Alignment *self, int64_t spotId);
-
-rc_t AlignmentWhack(Alignment *self, bool commit);
-
-#endif
diff --git a/tools/bam-loader/analysis.c b/tools/bam-loader/analysis.c
deleted file mode 100644
index cccc329..0000000
--- a/tools/bam-loader/analysis.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-#include <klib/data-buffer.h>
-#include <klib/sort.h>
-
-#include "KFileHelper.h"
-#include "analysis.h"
-#include "Globals.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-static rc_t ParseAnalysis(Analysis *rslt, unsigned lines, char *src) {
-    unsigned i;
-    
-    rslt->N = lines;
-    memset(&rslt->line[0], 0, lines * sizeof(rslt->line[0]));
-    
-    for (i = 0; i != lines; ++i) {
-        char *endp;
-        char *tab;
-        
-        endp = strchr(src, 0);
-        assert(endp);
-        
-        rslt->line[i].name = src;
-        tab = strchr(src, '\t');
-        if (!tab) break;
-        src = tab + 1;
-        tab[0] = '\0';
-        
-        rslt->line[i].refID = src;
-        tab = strchr(src, '\t');
-        if (!tab) break;
-        src = tab + 1;
-        tab[0] = '\0';
-        
-        tab = strchr(src, '\t');
-        if (!tab) break;
-        src = tab + 1;
-        
-        rslt->line[i].bamFile = src;
-        tab = strchr(src, '\t');
-        if (!tab) break;
-        src = tab + 1;
-        tab[0] = '\0';
-        
-        rslt->line[i].asoFile = src;
-        tab = strchr(src, '\t');
-        if (!tab) break;
-        tab[0] = '\0';
-        
-        src = endp + 1;
-    }
-    for (i = 0; i != lines; ++i) {
-        if (rslt->line[i].name == NULL ||
-            rslt->line[i].refID == NULL ||
-            rslt->line[i].bamFile == NULL ||
-            rslt->line[i].asoFile == NULL
-            )
-        {
-            return RC(rcApp, rcFile, rcReading, rcData, rcCorrupt);
-        }
-    }
-    return 0;
-}
-
-static int CC CompAnalysisLineBamFile(const void *A, const void *B, void *ignore) {
-    const AnalysisLine *a = A;
-    const AnalysisLine *b = B;
-    int rslt = strcmp(a->bamFile, b->bamFile);
-    
-    if (rslt == 0)
-        rslt = strcmp(a->name, b->name);
-    return rslt;
-}
-
-const char *AnalysisNextBAMFile(const char *last) {
-    unsigned i;
-    if (last == NULL) {
-        return G.analysis->line[0].bamFile;
-    }
-    for (i = 1; i < G.analysis->N; ++i) {
-        if (strcmp(last, G.analysis->line[i].bamFile) > 0) {
-            return G.analysis->line[i].bamFile;
-        }
-    }
-    return NULL;
-}
-
-AnalysisLine *AnalysisMatch(const char *bamFile, const char *name) {
-    unsigned i;
-    
-    for (i = 0; i != G.analysis->N; ++i) {
-        if (strcmp(bamFile, G.analysis->line[i].bamFile) == 0 &&
-            strcmp(name, G.analysis->line[i].name) == 0
-            )
-        {
-            return &G.analysis->line[i];
-        }
-    }
-    return NULL;
-}
-
-rc_t LoadAnalysis(const char *fileName) {
-    rc_t rc;
-    KDataBuffer buf;
-    uint64_t lines;
-    
-    memset(&buf, 0, sizeof(buf));
-    buf.elem_bits = 8;
-    
-    rc = LoadFile(&buf, &lines, G.inDir, fileName);
-    if (rc == 0) {
-        if (lines > 0 && buf.elem_count > 0) {
-            G.analysis = malloc(sizeof(*G.analysis) + (lines - 1) * sizeof(G.analysis->line[0]) + buf.elem_count);
-            if (G.analysis)
-                memcpy(&G.analysis->line[lines], buf.base, buf.elem_count);
-            else
-                rc = RC(rcApp, rcFile, rcReading, rcMemory, rcExhausted);
-        }
-        else
-            rc = RC(rcApp, rcFile, rcReading, rcData, rcEmpty);
-    }
-    KDataBufferWhack(&buf);
-    if (rc == 0) {
-        rc = ParseAnalysis(G.analysis, lines, (char *)&G.analysis->line[lines]);
-    }
-    return rc;
-}
-
diff --git a/tools/bam-loader/analysis.h b/tools/bam-loader/analysis.h
deleted file mode 100644
index 766a652..0000000
--- a/tools/bam-loader/analysis.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_ANALYSIS_H_
-#define BAM_LOAD_ANALYSIS_H_ 1
-#include <klib/rc.h>
-
-typedef struct s_analysis_line {
-    const char *name;
-    const char *refID;
-    const char *bamFile;
-    const char *asoFile;
-    uint64_t    startPos;
-} AnalysisLine;
-
-typedef struct s_analysis {
-    unsigned N;
-    AnalysisLine line[1];
-} Analysis;
-
-const char *AnalysisNextBAMFile(const char *last);
-
-AnalysisLine *AnalysisMatch(const char *bamFile, const char *name);
-
-rc_t LoadAnalysis(const char *fileName);
-#endif
diff --git a/tools/bam-loader/bam-load.vers b/tools/bam-loader/bam-load.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/bam-loader/bam-load.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/bam-loader/bam-loader.c b/tools/bam-loader/bam-loader.c
deleted file mode 100644
index 3d4ab92..0000000
--- a/tools/bam-loader/bam-loader.c
+++ /dev/null
@@ -1,987 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "bam-load.vers.h"
-
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <klib/text.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/status.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-#include <kfs/directory.h>
-#include <kfs/file.h>
-#include <kapp/log-xml.h>
-#include <align/writer-refseq.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-#include <limits.h>
-
-#include "Globals.h"
-#include "loader-imp.h"
-
-/* MARK: Arguments and Usage */
-static char const option_input[] = "input";
-static char const option_output[] = "output";
-static char const option_tmpfs[] = "tmpfs";
-static char const option_config[] = "config";
-static char const option_min_mapq[] = "min-mapq";
-static char const option_qual_compress[] = "qual-quant";
-static char const option_cache_size[] = "cache-size";
-static char const option_unsorted[] = "unsorted";
-static char const option_max_err_count[] = "max-err-count";
-static char const option_max_rec_count[] = "max-rec-count";
-static char const option_no_verify[] = "no-verify";
-static char const option_only_verify[] = "only-verify";
-static char const option_use_qual[] = "use-QUAL";
-static char const option_ref_filter[] = "ref-filter";
-static char const option_ref_config[] = "ref-config";
-static char const option_edit_aligned_qual[] = "edit-aligned-qual";
-static char const option_unaligned[] = "unaligned";
-static char const option_accept_dup[] = "accept-dups";
-static char const option_accept_nomatch[] = "accept-nomatch";
-static char const option_nomatch_log[] = "nomatch-log";
-static char const option_keep_mismatch_qual[] = "keep-mismatch-qual";
-static char const option_min_match[] = "minimum-match";
-static char const option_header[] = "header";
-static char const option_no_cs[] = "no-cs";
-static char const option_no_secondary[] = "no-secondary";
-static char const option_ref_file[] = "ref-file";
-static char const option_TI[] = "TI";
-static char const option_max_warn_dup_flag[] = "max-warning-dup-flag";
-static char const option_accept_hard_clip[] = "accept-hard-clip";
-
-#define OPTION_INPUT option_input
-#define OPTION_OUTPUT option_output
-#define OPTION_TMPFS option_tmpfs
-#define OPTION_CONFIG option_config
-#define OPTION_MINMAPQ option_min_mapq
-#define OPTION_QCOMP option_qual_compress
-#define OPTION_CACHE_SIZE option_cache_size
-#define OPTION_MAX_ERR_COUNT option_max_err_count
-#define OPTION_MAX_REC_COUNT option_max_rec_count
-#define OPTION_UNALIGNED option_unaligned
-#define OPTION_ACCEPT_DUP option_accept_dup
-#define OPTION_ACCEPT_NOMATCH option_accept_nomatch
-#define OPTION_NOMATCH_LOG option_nomatch_log
-#define OPTION_MIN_MATCH option_min_match
-#define OPTION_HEADER option_header
-#define OPTION_NO_CS option_no_cs
-#define OPTION_NO_SECONDARY option_no_secondary
-#define OPTION_REF_FILE option_ref_file
-#define OPTION_TI option_TI
-#define OPTION_MAX_WARN_DUP_FLAG option_max_warn_dup_flag
-#define OPTION_ACCEPT_HARD_CLIP option_accept_hard_clip
-
-#define ALIAS_INPUT  "i"
-#define ALIAS_OUTPUT "o"
-#define ALIAS_TMPFS "t"
-#define ALIAS_CONFIG "k"
-#define ALIAS_MINMAPQ "q"
-#define ALIAS_QCOMP "Q"
-#define ALIAS_MAX_ERR_COUNT "E"
-#define ALIAS_UNALIGNED "u"
-#define ALIAS_ACCEPT_DUP "d"
-#define ALIAS_NO_SECONDARY "P"
-#define ALIAS_REF_FILE "r"
-
-static
-char const * input_usage[] = 
-{
-    "Path where to get fasta files from.",
-    NULL
-};
-
-static
-char const * output_usage[] = 
-{
-    "Path and Name of the output database.",
-    NULL
-};
-
-static
-char const * tmpfs_usage[] = 
-{
-    "Path to be used for scratch files.",
-    NULL
-};
-
-static
-char const * config_usage[] = 
-{
-    "Path to configuration file:",
-    "maps the input BAM file's reference names to the equivalent GenBank accession.",
-    "It is a tab-delimited text file with unix line endings (\\n - LF) with the following fields in this order:",
-    "#1 reference name as it occurs in the BAM file's SN field of @SQ header record;",
-    "#2 INSDC reference ID",
-    NULL
-};
-
-static
-char const * min_mapq_usage[] = 
-{
-    "Minimum mapping quality to be considered an alignment.",
-    NULL
-};
-
-static
-char const * qcomp_usage[] = 
-{
-    "Quality scores quantization level, can be a number (0: none, 1: 2bit, 2: 1bit), or a string like '1:10,10:20,20:30,30:-' (which is equivalent to 1) (nb. the endpoint is exclusive).",
-    NULL
-};
-
-static
-char const * unsorted_usage[] = 
-{
-    "Tell the loader to expect unsorted input (requires more memory)",
-    NULL
-};
-
-static
-char const * cache_size_usage[] = 
-{
-    "Set the cache size in MB for the temporary indices",
-    NULL
-};
-
-static
-char const * mrc_usage[] = 
-{
-    "Set the maximum number of records to process from the BAM file",
-    NULL
-};
-
-static
-char const * mec_usage[] = 
-{
-    "Set the maximum number of errors to ignore from the BAM file",
-    NULL
-};
-
-static
-char const * no_verify_usage[] = 
-{
-    "Skip verify existence of references from the BAM file",
-    NULL
-};
-
-static
-char const * only_verify_usage[] = 
-{
-    "Exit after verifying existence of references from the BAM file",
-    NULL
-};
-
-static
-char const * use_QUAL_usage[] = 
-{
-    "use QUAL column for quality values (default is to use OQ if it is available)",
-    NULL
-};
-
-static
-char const * use_ref_filter[] = 
-{
-    "Only process alignments to the given reference",
-    NULL
-};
-
-static
-char const * use_ref_config[] = 
-{
-    "Only process alignments to references in the config file",
-    NULL
-};
-
-static
-char const * use_edit_aligned_qual[] = 
-{
-    "Convert quality at aligned positions to this value",
-    NULL
-};
-
-static
-char const * use_keep_mismatch_qual[] = 
-{
-    "Don't quantized quality at mismatched positions",
-    NULL
-};
-
-static
-char const * use_unaligned[] = 
-{
-    "Specify file without aligned reads",
-    NULL
-};
-
-static
-char const * use_accept_dups[] = 
-{
-    "Accept spots inconsistent PCR duplicate flags",
-    NULL
-};
-
-static
-char const * use_accept_nomatch[] = 
-{
-    "Accept alignments with no matching bases",
-    NULL
-};
-
-static
-char const * use_nomatch_log[] = 
-{
-    "Where to write info for alignments with no matching bases",
-    NULL
-};
-
-static
-char const * use_min_match[] = 
-{
-    "minimum number of matches for an alignment",
-    NULL
-};
-
-static
-char const * use_header[] = 
-{
-    "path to a file containing the SAM header to store in the resulting cSRA, recommended in case of multiple input BAMs",
-    NULL
-};
-
-static
-char const * use_no_cs[] = 
-{
-    "turn off awareness of colorspace",
-    NULL
-};
-
-static
-char const * use_no_secondary[] = 
-{
-    "ignore alignments marked as secondary",
-    NULL
-};
-
-static
-char const * use_ref_file[] = 
-{
-    "path to a fasta file with references",
-    NULL
-};
-
-static
-char const * use_TI[] = 
-{
-    "for trace alignments",
-    NULL
-};
-
-static
-char const * use_max_dup_warnings[] = 
-{
-    "set limit for number of duplicate flag mismatch warnings",
-    NULL
-};
-
-static
-char const * use_accept_hard_clip[] = 
-{
-    "accept hard clipping in CIGAR",
-    NULL
-};
-
-OptDef Options[] = 
-{
-    /* order here is same as in param array below!!! */
-    { OPTION_INPUT, ALIAS_INPUT,  NULL,  input_usage, 1, true,  false },
-    { OPTION_OUTPUT, ALIAS_OUTPUT, NULL, output_usage, 1, true,  true },
-    { OPTION_CONFIG, ALIAS_CONFIG,  NULL,  config_usage, 1, true, false },
-    { OPTION_HEADER, NULL, NULL, use_header, 1, true, false },
-    { OPTION_TMPFS, ALIAS_TMPFS, NULL, tmpfs_usage, 1, true,  false },
-    { OPTION_UNALIGNED, ALIAS_UNALIGNED, NULL, use_unaligned, 256, true, false },
-    { OPTION_ACCEPT_DUP, ALIAS_ACCEPT_DUP, NULL, use_accept_dups, 1, false, false },
-    { OPTION_ACCEPT_NOMATCH, NULL, NULL, use_accept_nomatch, 1, false, false },
-    { OPTION_NOMATCH_LOG, NULL, NULL, use_nomatch_log, 1, true, false },
-    { OPTION_QCOMP, ALIAS_QCOMP, NULL, qcomp_usage, 1, true,  false },
-    { OPTION_MINMAPQ, ALIAS_MINMAPQ, NULL, min_mapq_usage, 1, true,  false },
-    { OPTION_CACHE_SIZE, NULL, NULL, cache_size_usage, 1, true,  false },
-    { OPTION_NO_CS, NULL, NULL, use_no_cs, 1, false,  false },
-    { OPTION_MIN_MATCH, NULL, NULL, use_min_match, 1, true, false },
-    { OPTION_NO_SECONDARY, ALIAS_NO_SECONDARY, NULL, use_no_secondary, 1, false, false },
-    { option_unsorted, NULL, NULL, unsorted_usage, 1, false,  false },
-    { option_no_verify, NULL, NULL, no_verify_usage, 1, false,  false },
-    { option_only_verify, NULL, NULL, only_verify_usage, 1, false,  false },
-    { option_use_qual, NULL, NULL, use_QUAL_usage, 1, false,  false },
-    { option_ref_config, NULL, NULL, use_ref_config, 1, false,  false },
-    { option_ref_filter, NULL, NULL, use_ref_filter, 1, true,  false },
-    { option_edit_aligned_qual, NULL, NULL, use_edit_aligned_qual, 1, true, false },
-    { option_keep_mismatch_qual, NULL, NULL, use_keep_mismatch_qual, 1, false,  false },
-    { OPTION_MAX_REC_COUNT, NULL, NULL, mrc_usage, 1, true,  false },
-    { OPTION_MAX_ERR_COUNT, ALIAS_MAX_ERR_COUNT, NULL, mec_usage, 1, true,  false },
-    { OPTION_REF_FILE, ALIAS_REF_FILE, NULL, use_ref_file, 0, true, false },
-    { OPTION_TI, NULL, NULL, use_TI, 1, false, false },
-    { OPTION_MAX_WARN_DUP_FLAG, NULL, NULL, use_max_dup_warnings, 1, true, false },
-    { OPTION_ACCEPT_HARD_CLIP, NULL, NULL, use_accept_hard_clip, 1, false, false }
-};
-
-const char* OptHelpParam[] =
-{
-    /* order here is same as in OptDef array above!!! */
-    "path",
-    "path",
-    "path-to-file",
-    "path-to-file",
-    "path",
-    "path-to-file",
-    NULL,
-    NULL,
-    NULL,
-    "level",
-    "phred-score",
-    "mbytes",
-    NULL,
-    "count",
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    "name",
-    "new-value",
-    NULL,
-    NULL,
-    NULL,
-    "path-to-file",
-    NULL,
-    "count",
-    NULL
-};
-
-rc_t UsageSummary (char const * progname)
-{
-    return KOutMsg (
-        "Usage:\n"
-        "\t%s [options] <bam-file>\n"
-        "\n"
-        "Summary:\n"
-        "\tLoad a BAM formatted data file\n"
-        "\n"
-        "Example:\n"
-        "\t%s -o /tmp/SRZ123456 -k analysis.bam.cfg 123456.bam\n"
-        "\n"
-        ,progname, progname);
-}
-
-char const UsageDefaultName[] = "bam-load";
-
-rc_t CC Usage (const Args * args)
-{
-    rc_t rc;
-    int i;
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    const size_t argsQty = sizeof(Options) / sizeof(Options[0]);
-
-    if (args == NULL)
-        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    else
-        rc = ArgsProgram (args, &fullpath, &progname);
-    if (rc)
-        progname = fullpath = UsageDefaultName;
-
-    UsageSummary (progname);
-
-    for(i = 0; i < argsQty; i++ ) {
-        if( Options[i].required && Options[i].help[0] != NULL ) {
-            HelpOptionLine(Options[i].aliases, Options[i].name, OptHelpParam[i], Options[i].help);
-        }
-    }
-    OUTMSG(("\nOptions:\n"));
-    for(i = 0; i < argsQty; i++ ) {
-        if( !Options[i].required && Options[i].help[0] != NULL ) {
-            HelpOptionLine(Options[i].aliases, Options[i].name, OptHelpParam[i], Options[i].help);
-        }
-    }
-    XMLLogger_Usage();
-    OUTMSG(("\n"));
-    HelpOptionsStandard ();
-    HelpVersion (fullpath, KAppVersion());
-    return rc;
-}
-
-/* MARK: Definitions and Globals */
-
-#define SCHEMAFILE "align/align.vschema"
-
-Globals G;
-
-uint32_t CC KAppVersion (void)
-{
-    return BAM_LOAD_VERS;
-}
-
-#ifdef _WIN32
-#include <process.h>
-#else
-#include <unistd.h>
-#endif
-static void set_pid(void)
-{
-    G.pid = getpid();
-}
-
-static rc_t PathWithBasePath(char rslt[], size_t sz, char const path[], char const base[])
-{
-    size_t const plen = strlen(path);
-    bool const hasBase = base && base[0];
-    bool const isBareName = strchr(path, '/') == NULL;
-    
-    if (isBareName && hasBase) {
-        if (string_printf(rslt, sz, NULL, "%s/%s", base, path) == 0)
-            return 0;
-    }
-    else if (plen < sz) {
-        strcpy(rslt, path);
-        return 0;
-    }
-    {
-        rc_t const rc = RC(rcApp, rcArgv, rcAccessing, rcBuffer, rcInsufficient);
-        (void)LOGERR(klogErr, rc, "The path to the file is too long");
-        return rc;
-    }
-}
-
-static rc_t OpenFile(KFile const **kf, char const path[], char const base[])
-{
-    char fname[4096];
-    rc_t rc = PathWithBasePath(fname, sizeof(fname), path, base);
-    
-    if (rc == 0) {
-        KDirectory *dir;
-        
-        rc = KDirectoryNativeDir(&dir);
-        if (rc == 0) {
-            rc = KDirectoryOpenFileRead(dir, kf, fname);
-            KDirectoryRelease(dir);
-        }
-    }
-    return rc;
-}
-
-static rc_t LoadHeader(char const **rslt, char const path[], char const base[])
-{
-    KFile const *kf;
-    rc_t rc = OpenFile(&kf, path, base);
-    
-    *rslt = NULL;
-    if (rc == 0) {
-        uint64_t fsize;
-        rc = KFileSize(kf, &fsize);
-        if (rc == 0) {
-            char *fdata = malloc(fsize+1);
-            
-            if (fdata) {
-                size_t nread;
-                rc = KFileRead(kf, 0, fdata, fsize, &nread);
-                if (rc == 0) {
-                    if (nread) {
-                        fdata[nread] = '\0';
-                        *rslt = fdata;
-                    }
-                    else {
-                        free(fdata);
-                        rc = RC(rcApp, rcArgv, rcAccessing, rcFile, rcEmpty);
-                        (void)PLOGERR(klogErr, (klogErr, rc, "File '$(file)' is empty", "file=%s", path));
-                    }
-                }
-                else {
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Failed to read file '$(file)'", "file=%s", path));
-                }
-            }
-            else {
-                rc = RC(rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted);
-                (void)PLOGERR(klogErr, (klogErr, rc, "Failed to read file '$(file)'", "file=%s", path));
-            }
-        }
-        KFileRelease(kf);
-    }
-    else {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Failed to open file '$(file)'", "file=%s", path));
-    }
-    return rc;
-}
-
-rc_t CC KMain (int argc, char * argv[])
-{
-    Args * args;
-    rc_t rc;
-    unsigned n_aligned = 0;
-    unsigned n_unalgnd = 0;
-    char *aligned[256];
-    char *unalgnd[256];
-    char *name_buffer = NULL;
-    unsigned next_name = 0;
-    unsigned nbsz = 0;
-    char const *value;
-    char *dummy;
-    const XMLLogger* xml_logger = NULL;
-    
-    memset(&G, 0, sizeof(G));
-    
-    G.mode = mode_Archive;
-    G.maxSeqLen = TableWriterRefSeq_MAX_SEQ_LEN;
-    G.schemaPath = SCHEMAFILE;
-    G.omit_aligned_reads = true;
-    G.omit_reference_reads = true;
-    G.minMapQual = 0; /* accept all */
-    G.tmpfs = "/tmp";
-#if _ARCH_BITS == 32
-    G.cache_size = ( size_t ) 1 << 30;
-#else
-    G.cache_size = ( size_t ) 10 << 30;
-#endif
-    G.maxErrCount = 1000;
-    G.minMatchCount = 10;
-    
-    set_pid();
-
-    rc = ArgsMakeAndHandle (&args, argc, argv, 2, Options,
-                            sizeof Options / sizeof (OptDef), XMLLogger_Args, XMLLogger_ArgsQty);
-
-    while (rc == 0) {
-        uint32_t pcount;
-
-        if( (rc = XMLLogger_Make(&xml_logger, NULL, args)) != 0 ) {
-            break;
-        }
-        rc = ArgsOptionCount(args, option_only_verify, &pcount);
-        if (rc)
-            break;
-        G.onlyVerifyReferences = (pcount > 0);
-        
-        rc = ArgsOptionCount(args, option_no_verify, &pcount);
-        if (rc)
-            break;
-        G.noVerifyReferences = (pcount > 0);
-        
-        rc = ArgsOptionCount(args, option_use_qual, &pcount);
-        if (rc)
-            break;
-        G.useQUAL = (pcount > 0);
-        
-        rc = ArgsOptionCount(args, option_ref_config, &pcount);
-        if (rc)
-            break;
-        G.limit2config = (pcount > 0);
-        
-        rc = ArgsOptionCount(args, OPTION_REF_FILE, &pcount);
-        if (rc)
-            break;
-        G.refFiles = calloc(pcount + 1, sizeof(*(G.refFiles)));
-        if( !G.refFiles ) {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted);
-            break;
-        }
-        while(pcount-- > 0) {
-            rc = ArgsOptionValue(args, OPTION_REF_FILE, pcount, &G.refFiles[pcount]);
-            if (rc)
-                break;
-        }
-
-        rc = ArgsOptionCount (args, OPTION_TMPFS, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_TMPFS, 0, &G.tmpfs);
-            if (rc)
-                break;
-        }
-        else if (pcount > 1)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            OUTMSG (("Single parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_INPUT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_INPUT, 0, &G.inpath);
-            if (rc)
-                break;
-        }
-        else if (pcount > 1)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            OUTMSG (("Single input parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, option_ref_filter, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, option_ref_filter, 0, &G.refFilter);
-            if (rc)
-                break;
-        }
-        else if (pcount > 1)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            OUTMSG (("Single parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_CONFIG, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_CONFIG, 0, &G.refXRefPath);
-            if (rc)
-                break;
-        }
-        else if (pcount > 1)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            OUTMSG (("Single input parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_OUTPUT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_OUTPUT, 0, &G.outpath);
-            if (rc)
-                break;
-        }
-        else if (pcount > 1)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            OUTMSG (("Single output parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        else if (!G.onlyVerifyReferences) {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcInsufficient);
-            OUTMSG (("Output parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_MINMAPQ, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MINMAPQ, 0, &value);
-            if (rc)
-                break;
-            G.minMapQual = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_QCOMP, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_QCOMP, 0, &G.QualQuantizer);
-            if (rc)
-                break;
-        }
-        
-        rc = ArgsOptionCount (args, option_edit_aligned_qual, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, option_edit_aligned_qual, 0, &value);
-            if (rc)
-                break;
-            G.alignedQualValue = strtoul(value, &dummy, 0);
-            if (G.alignedQualValue == 0) {
-                rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcIncorrect);
-                OUTMSG (("edit-aligned-qual: bad value\n"));
-                MiniUsage (args);
-                break;
-            }
-            G.editAlignedQual = true;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_CACHE_SIZE, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_CACHE_SIZE, 0, &value);
-            if (rc)
-                break;
-            G.cache_size = strtoul(value, &dummy, 0) * 1024UL * 1024UL;
-            if (G.cache_size == 0) {
-                rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcIncorrect);
-                OUTMSG (("cache-size: bad value\n"));
-                MiniUsage (args);
-                break;
-            }
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_MAX_WARN_DUP_FLAG, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MAX_WARN_DUP_FLAG, 0, &value);
-            if (rc)
-                break;
-            G.maxWarnCount_DupConflict = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, option_unsorted, &pcount);
-        if (rc)
-            break;
-        G.expectUnsorted = pcount > 0;
-        
-        rc = ArgsOptionCount (args, OPTION_MAX_REC_COUNT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MAX_REC_COUNT, 0, &value);
-            if (rc)
-                break;
-            G.maxAlignCount = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_MAX_ERR_COUNT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MAX_ERR_COUNT, 0, &value);
-            if (rc)
-                break;
-            G.maxErrCount = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_MIN_MATCH, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MIN_MATCH, 0, &value);
-            if (rc)
-                break;
-            G.minMatchCount = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_ACCEPT_DUP, &pcount);
-        if (rc)
-            break;
-        G.acceptBadDups = pcount > 0;
-        
-        rc = ArgsOptionCount (args, OPTION_ACCEPT_NOMATCH, &pcount);
-        if (rc)
-            break;
-        G.acceptNoMatch = pcount > 0;
-        
-        rc = ArgsOptionCount (args, option_keep_mismatch_qual, &pcount);
-        if (rc)
-            break;
-        G.keepMismatchQual = pcount > 0;
-        
-        rc = ArgsOptionCount (args, OPTION_NO_CS, &pcount);
-        if (rc)
-            break;
-        G.noColorSpace = pcount > 0;
-        
-        rc = ArgsOptionCount (args, OPTION_NO_SECONDARY, &pcount);
-        if (rc)
-            break;
-        G.noSecondary = pcount > 0;
-        
-        rc = ArgsOptionCount (args, OPTION_TI, &pcount);
-        if (rc)
-            break;
-        G.hasTI = pcount > 0;
-        
-        rc = ArgsOptionCount (args, OPTION_ACCEPT_HARD_CLIP, &pcount);
-        if (rc)
-            break;
-        G.acceptHardClip = pcount > 0;
-        
-        rc = ArgsOptionCount (args, OPTION_NOMATCH_LOG, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            KDirectory *dir;
-            
-            rc = ArgsOptionValue (args, OPTION_NOMATCH_LOG, 0, &value);
-            if (rc) break;
-            rc = KDirectoryNativeDir(&dir);
-            if (rc) break;
-            rc = KDirectoryCreateFile(dir, &G.noMatchLog, 0, 0664, kcmInit, value);
-            KDirectoryRelease(dir);
-            if (rc) break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_HEADER, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1) {
-            rc = ArgsOptionValue (args, OPTION_HEADER, 0, &value);
-            if (rc) break;
-            rc = LoadHeader(&G.headerText, value, G.inpath);
-            if (rc) break;
-        }
-        
-        rc = ArgsParamCount (args, &pcount);
-        if (rc) break;
-        if (pcount == 0)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcInsufficient);
-            MiniUsage (args);
-            break;
-        }
-        else if (pcount > sizeof(aligned)/sizeof(aligned[0])) {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            (void)PLOGERR(klogErr, (klogErr, rc, "$(count) input files is too many, $(max) is the limit",
-                        "count=%u,max=%u", (unsigned)pcount, (unsigned)(sizeof(aligned)/sizeof(aligned[0]))));
-            break;
-        }
-        else {
-            unsigned need = G.inpath ? (strlen(G.inpath) + 1) * pcount : 0;
-            unsigned i;
-            
-            for (i = 0; i < pcount; ++i) {
-                rc = ArgsParamValue(args, i, &value);
-                if (rc) break;
-                need += strlen(value) + 1;
-            }
-            nbsz = need;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_UNALIGNED, &pcount);
-        if (rc)
-            break;
-        if (pcount > 0)
-        {
-            unsigned need = G.inpath ? (strlen(G.inpath) + 1) * pcount : 0;
-            unsigned i;
-            
-            for (i = 0; i < pcount; ++i) {
-                rc = ArgsOptionValue(args, OPTION_UNALIGNED, i, &value);
-                if (rc) break;
-                need += strlen(value) + 1;
-            }
-            if (rc) break;
-            nbsz += need;
-        }
-        
-        name_buffer = malloc(nbsz);
-        if (name_buffer == NULL) {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_UNALIGNED, &pcount);
-        if (rc == 0) {
-            unsigned i;
-            
-            for (i = 0; i < pcount; ++i) {
-                rc = ArgsOptionValue(args, OPTION_UNALIGNED, i, &value);
-                if (rc) break;
-                
-                unalgnd[n_unalgnd++] = name_buffer + next_name;
-                rc = PathWithBasePath(name_buffer + next_name, nbsz - next_name, value, G.inpath);
-                if (rc) break;
-                next_name += strlen(name_buffer + next_name) + 1;
-            }
-            if (rc) break;
-        }
-        else
-            break;
-        
-        rc = ArgsParamCount (args, &pcount);
-        if (rc == 0) {
-            unsigned i;
-            
-            for (i = 0; i < pcount; ++i) {
-                rc = ArgsParamValue(args, i, &value);
-                if (rc) break;
-                
-                aligned[n_aligned++] = name_buffer + next_name;
-                rc = PathWithBasePath(name_buffer + next_name, nbsz - next_name, value, G.inpath);
-                if (rc) break;
-                next_name += strlen(name_buffer + next_name) + 1;
-            }
-        }
-        else
-            break;
-        
-        rc = run(argv[0], n_aligned, (char const **)aligned, n_unalgnd, (char const **)unalgnd);
-        break;
-    }
-    free(name_buffer);
-    free((void *)G.headerText);
-    free(G.refFiles);
-
-    value = G.outpath ? strrchr(G.outpath, '/') : "/???";
-    if( value == NULL ) {
-        value = G.outpath;
-    } else {
-        value++;
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "load failed",
-                "severity=total,status=failure,accession=%s,errors=%u", value, G.errCount));
-    } else {
-        (void)PLOGMSG(klogInfo, (klogInfo, "loaded",
-                "severity=total,status=success,accession=%s,errors=%u", value, G.errCount));
-    }
-    ArgsWhack(args);
-    XMLLogger_Release(xml_logger);
-    return rc;
-}
diff --git a/tools/bam-loader/hashtable.c b/tools/bam-loader/hashtable.c
deleted file mode 100644
index ee8f8e6..0000000
--- a/tools/bam-loader/hashtable.c
+++ /dev/null
@@ -1,878 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-
-#include <stddef.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#if TESTING
-#include <stdio.h>
-#include <string.h>
-#endif
-
-#include "hashtable.h"
-
-typedef struct HTBucket HTBucket;
-typedef struct HTEntry HTEntry;
-
-#define HASH_TABLE_ENTRIES_MAX (0x80000)
-#define HASH_TABLE_PREALLOC_MAX 1
-
-struct HTEntry {
-    const void *payload;
-    uint32_t hashValue;
-};
-
-struct HTBucket {
-    HTBucket *overflow;
-    uint32_t used;      /* one bit per entry */
-    HTEntry entry[32];
-};
-
-struct HashTable {
-    size_t hashMask;    /* the "size" of the table is hashMask + 1 */
-    size_t entryCount;  /* total number of entries in table */
-
-    HashTableKeyCompFunc comp_func;
-    const void *ctx;
-    
-#if HASH_TABLE_PREALLOC_MAX
-    HTBucket table[HASH_TABLE_ENTRIES_MAX];
-#else
-    HTBucket *table;
-#endif
-};
-
-typedef struct HashTableRealIterator {
-    HashTable *table;
-    HTBucket *bucket;
-    uint32_t slot;
-    uint32_t hashValue;
-} HashTableRealIterator;
-
-typedef union HashTableImplIterator {
-    HashTableRealIterator real;
-    HashTableIterator user;
-} HashTableImplIterator;
-
-static unsigned FirstSet(unsigned bits)
-{
-    assert(bits != 0);
-    if ((bits & 0xFFFF) != 0) {
-        if ((bits & 0xFF) != 0) {
-            if ((bits & 0xF) != 0) {
-                if ((bits & 0x3) != 0) {
-                    if ((bits & 0x1) != 0)
-                        return 0;
-                    else
-                        return 1;
-                }
-                else if ((bits & 0x4) != 0)
-                    return 2;
-                else
-                    return 3;
-            }
-            else if ((bits & 0x30) != 0) {
-                if ((bits & 0x10) != 0)
-                    return 4;
-                else
-                    return 5;
-            }
-            else if ((bits & 0x40) != 0)
-                return 6;
-            else
-                return 7;
-        }
-        else if ((bits & 0xF00) != 0) {
-            if ((bits & 0x300) != 0) {
-                if ((bits & 0x100) != 0)
-                    return 8;
-                else
-                    return 9;
-            }
-            else if ((bits & 0x400) != 0)
-                return 10;
-            else
-                return 11;
-        }
-        else if ((bits & 0x3000) != 0) {
-            if ((bits & 0x1000) != 0)
-                return 12;
-            else
-                return 13;
-        }
-        else if ((bits & 0x4000) != 0)
-            return 14;
-        else
-            return 15; 
-    }
-    else if ((bits & 0xFF0000) != 0) {
-        if ((bits & 0xF0000) != 0) {
-            if ((bits & 0x30000) != 0) {
-                if ((bits & 0x10000) != 0)
-                    return 16;
-                else
-                    return 17;
-            }
-            else if ((bits & 0x40000) != 0)
-                return 18;
-            else
-                return 19;
-        }
-        else if ((bits & 0x300000) != 0) {
-            if ((bits & 0x100000) != 0)
-                return 20;
-            else
-                return 21;
-        }
-        else if ((bits & 0x400000) != 0)
-            return 22;
-        else
-            return 23;
-    }
-    else if ((bits & 0xF000000) != 0) {
-        if ((bits & 0x3000000) != 0) {
-            if ((bits & 0x1000000) != 0)
-                return 24;
-            else
-                return 25;
-        }
-        else if ((bits & 0x4000000) != 0)
-            return 26;
-        else
-            return 27;
-    }
-    else if ((bits & 0x30000000) != 0) {
-        if ((bits & 0x10000000) != 0)
-            return 28;
-        else
-            return 29;
-    }
-    else if ((bits & 0x40000000) != 0)
-        return 30;
-    else
-        return 31;
-    
-}
-
-static rc_t HTBucketNextOpenSlot(HTBucket *self, HTBucket **rslt, unsigned *slot)
-{
-    while (self->used == 0xFFFFFFFF) {
-        if (self->overflow != NULL) {
-            self = self->overflow;
-            continue;
-        }
-        self->overflow = malloc(sizeof(*self->overflow));
-        if (self->overflow == NULL)
-            return RC(rcCont, rcBuffer, rcAllocating, rcMemory, rcExhausted);
-        self->overflow->overflow = NULL;
-        self->overflow->used = 0;
-        *rslt = self->overflow;
-        *slot = 0;
-        return 0;
-    }
-    *rslt = self;
-    *slot = FirstSet(~self->used);
-    
-    return 0;
-}
-
-static rc_t HTBucketInsert(HTBucket *self, const HTEntry *entry)
-{
-    HTBucket *found;
-    unsigned slot;
-    rc_t rc = HTBucketNextOpenSlot(self, &found, &slot);
-    
-    if (rc)
-        return rc;
-    found->used |= (1 << slot);
-    found->entry[slot] = *entry;
-    return 0;
-}
-
-static bool HTBucketFreeSlot(HTBucket *self, unsigned slot)
-{
-    unsigned i;
-    
-    self->used &= ~(1 << slot);
-#if _DEBUGGING
-    self->entry[slot].payload = NULL;
-#endif
-    if (self->overflow == NULL)
-        return true;
-    
-    /* pull something out of the overflow */
-    i = FirstSet(self->overflow->used);
-    self->entry[slot] = self->overflow->entry[i];
-    self->used |= (1 << slot);
-    HTBucketFreeSlot(self->overflow, i);
-    if (self->overflow->used == 0) {
-        free(self->overflow);
-        self->overflow = NULL;
-    }
-    return false;
-}
-
-static void HTBucketForEach(const HTBucket *self, void (*fn)(void *payload, void *ctx), void *ctx)
-{
-    do {
-        uint32_t bits = self->used;
-        unsigned i;
-        
-        for (i = 0; i != 32 && bits != 0; ++i, bits >>= 1) {
-            if ((bits & 1) == 0)
-                continue;
-            fn((void *)self->entry[i].payload, ctx);
-        }
-        self = self->overflow;
-    } while (self != NULL);
-}
-
-static bool HTBucketDoUntil(const HTBucket *self, bool (*fn)(void *payload, void *ctx), void *ctx)
-{
-    do {
-        uint32_t bits = self->used;
-        unsigned i;
-        
-        for (i = 0; i != 32 && bits != 0; ++i, bits >>= 1) {
-            if ((bits & 1) == 0)
-                continue;
-            if (fn((void *)self->entry[i].payload, ctx))
-                return true;
-        }
-        self = self->overflow;
-    } while (self != NULL);
-    return false;
-}
-
-static bool HTBucketValidate(const HTBucket *self, uint32_t hash, uint32_t mask)
-{
-    do {
-        uint32_t bits = self->used;
-        unsigned i;
-        
-        for (i = 0; i != 32 && bits != 0; ++i, bits >>= 1) {
-            const HTEntry *entry = &self->entry[i];
-            bool is_free = (bits & 1) == 0;
-#if _DEBUGGING
-            bool is_null = entry->payload == NULL;
-            
-            if (is_free != is_null)
-                return true;
-#endif
-            if (is_free)
-                continue;
-            if ((entry->hashValue & mask) != hash)
-                return true;
-        }
-        if (self->overflow && self->overflow->used == 0)
-            return true;
-        self = self->overflow;
-    } while (self != NULL);
-    return false;
-}
-
-static void HTBucketWhack(HTBucket *self, void (*fn)(void *payload, void *ctx), void *ctx)
-{
-    uint32_t bits;
-    unsigned i;
-    
-    if (self->overflow) {
-        HTBucketWhack(self->overflow, fn, ctx);
-        free(self->overflow);
-    }
-    for (i = 0, bits = self->used; i != 32 && bits != 0 && fn; ++i, bits >>= 1) {
-        if ((bits & 1) == 0)
-            continue;
-        fn((void *)self->entry[i].payload, ctx);
-    }
-}
-
-static uint32_t GetHashValue(const uint8_t *key, unsigned len)
-{
-    /*
-     * My basic hash function is Pearson's hash.
-     * The tables below contain each value between 0 and 255 inclusive, in
-     * random order.  The tables were generated with the following perl script.
-     *
-     *   #!perl -w
-     *   my @x = (0 .. 255); # each value between 0 and 255 inclusive
-     *   foreach (0 .. 10000) { # randomize the order
-     *       my $i = $_ % 256;                    # a sequential index
-     *       my $r = rand(256);                   # a random index
-     *       ($x[$i], $x[$r]) = ($x[$r], $x[$i]); # swap x[i] and x[r]
-     *   }
-     *   print join(', ', map { sprintf '%3u', $_; } @x);
-     *
-     * You can generate lots of different 8-bit hash functions this way.
-     *
-     * I generate four 8-bit hashes and combine them to make a 32-bit one.
-     * Even though I may not use all bits for the hash (e.g. the limit on the
-     * table's size is much less than UINT32_MAX), computing and storing the
-     * full hash reduces the number of string compares I have to do when buckets
-     * have lots of items in them.
-     */
-    static const uint8_t T1[] = {
-         64, 186,  39, 203,  54, 211,  98,  32,  26,  23, 219,  94,  77,  60,  56, 184,
-        129, 242,  10,  91,  84, 192,  19, 197, 231, 133, 125, 244,  48, 176, 160, 164,
-         17,  41,  57, 137,  44, 196, 116, 146, 105,  40, 122,  47, 220, 226, 213, 212,
-        107, 191,  52, 144,   9, 145,  81, 101, 217, 206,  85, 134, 143,  58, 128,  20,
-        236, 102,  83, 149, 148, 180, 167, 163,  12, 239,  31,   0,  73, 152,   1,  15,
-         75, 200,   4, 165,   5,  66,  25, 111, 255,  70, 174, 151,  96, 126, 147,  34,
-        112, 161, 127, 181, 237,  78,  37,  74, 222, 123,  21, 132,  95,  51, 141,  45,
-         61, 131, 193,  68,  62, 249, 178,  33,   7, 195, 228,  82,  27,  46, 254,  90,
-        185, 240, 246, 124, 205, 182,  42,  22, 198,  69, 166,  92, 169, 136, 223, 245,
-        118,  97, 115,  80, 252, 209,  49,  79, 221,  38,  28,  35,  36, 208, 187, 248,
-        158, 201, 202, 168,   2,  18, 189, 119, 216, 214,  11,   6,  89,  16, 229, 109,
-        120,  43, 162, 106, 204,   8, 199, 235, 142, 210,  86, 153, 227, 230,  24, 100,
-        224, 113, 190, 243, 218, 215, 225, 173,  99, 238, 138,  59, 183, 154, 171, 232,
-        157, 247, 233,  67,  88,  50, 253, 251, 140, 104, 156, 170, 150, 103, 117, 110,
-        155,  72, 207, 250, 159, 194, 177, 130, 135,  87,  71, 175,  14,  55, 172, 121,
-        234,  13,  30, 241,  93, 188,  53, 114,  76,  29,  65,   3, 179, 108,  63, 139
-    };
-    static const uint8_t T2[] = {
-        119, 174,  44, 225,  94, 226, 141, 197,  35, 241, 179, 154,  26, 161, 129,  10,
-        104,  53,  97,  12, 243,  80,  51, 123, 185,  13,  66, 214, 114,  17,  74, 165,
-        110, 143, 170, 222, 242,  73,  40, 101,  56, 163,  68,  86, 198,   9,  21,  90,
-          8,   1, 146, 121, 103,  70,   5, 160, 149,  50, 145, 236, 100,  75, 148,  58,
-         55,  15,  33, 131, 127, 186,   6, 109, 115,   2, 108,  52, 209, 128, 208,  47,
-        220, 173,  45,  72, 156, 212, 152, 102,  77,  36, 134, 137, 162,  54, 235, 167,
-         28, 255, 155, 240, 135, 176, 246, 244,  22, 157,  20, 224, 210, 192,  71, 140,
-         14, 211, 251, 204,  30, 213, 132, 248, 178, 187, 142,  62, 215, 106, 229, 125,
-         41, 216,  49,  29,  98,  32,  18, 237,  79, 206,  63, 227,  25,  99, 150, 223,
-        171, 118,   4, 139,  81,   0, 133,  95, 188, 120,  27, 124,  61, 195, 231, 207,
-         31, 202,  91, 252,  46,  39, 250, 144, 238, 254, 219, 200, 130, 201,  48, 107,
-        205, 177,  88,  16, 147, 221, 164, 184,  89,  67, 190,  11, 175,  42, 136, 189,
-        245, 117,  83,   3, 180, 172,  76,  43, 183,  84, 218, 169, 253, 159, 196,  59,
-        193, 249, 181, 116, 153,  24,  87, 239, 138, 199, 111,  82,  69, 105,  78, 151,
-        122, 168, 126,  85, 228, 233,  34, 113, 194, 191,  19, 230, 182,  96, 217,  38,
-        234, 232,  92,  23,  57, 203,  65,  60,  64,  37, 158, 247,  93, 166, 112,   7
-    };
-    static const uint8_t T3[] = {
-        103,  33, 228,  32, 183, 231, 139,  60,  67,  80, 184, 100,  70,  19,  14,  58,
-        104,  48, 140,  10,  91, 137,  31,  96, 102, 180,  77, 121, 251, 167,  37, 206,
-         79, 151, 109,  15,  92, 174, 108,  16,  95, 145,  18, 236,  49, 177, 135,   0,
-        165,  86,  83, 107, 144,  44,  27, 116, 168, 193, 119, 230,  56,  97, 138, 149,
-        132,  21, 176,  39, 205,  12,  69, 179, 210,  25, 213, 194, 239, 209, 248,  28,
-         93,  38, 224,  66, 105, 160,  40,  17,  23, 129, 212,   8, 178, 118, 163,  73,
-          3,  63,  57,  94, 254, 186, 131, 166,  61, 191, 133, 192,  78, 114, 250, 200,
-        222, 136, 188, 204, 101,  11, 247, 146, 142, 152, 171, 157, 110, 141, 199,  29,
-        147,  88, 211, 240, 164, 196, 189,  50,  65, 112, 219, 237, 197, 115, 126, 154,
-        246, 170, 227, 235,  42, 148,  84, 201, 242,  85,  35,   6, 173, 122, 215, 218,
-         75,  82,   1, 169, 143, 195,  51, 155,  54,   9,  71,  24,  53,   7,  47, 229,
-        158,  26, 245,  89, 150, 181, 255, 249, 221, 217, 223,  76,  90,  36, 216, 130,
-        220, 125, 182,  55, 202, 234, 203, 123,  34, 172,  74,  30,   4, 241, 162, 233,
-         64,  62, 127,  20,  52, 106, 190, 253, 185, 111, 232,   2, 187,  13,  68, 117,
-        128,  98, 208,  41, 159,  46, 207, 244, 226,  22, 252, 214,   5, 243,  99, 113,
-        120, 225, 175, 124, 134, 161, 156,  45,  72,  87,  43,  59, 198, 153, 238,  81
-    };
-    static const uint8_t T4[] = {
-        103, 124,  53, 254,  91, 106, 131,  69, 158,  23, 249, 171, 241,  30, 194, 217,
-         64, 123, 129, 118,  35,  16, 209, 190, 155, 104, 148, 163,  78, 188, 174, 245,
-        218, 125, 210, 250, 107, 212, 117,  17, 109,  44,  71,  38, 253, 177,  11, 114,
-         60, 192, 133, 219,  97, 246,  41, 228, 127, 151,  62, 213, 224, 234, 138, 162,
-         31, 110, 222, 141,  25, 135,  18,  49, 132, 242, 203, 207,  68, 130, 116,  59,
-         63,  67, 169, 147,  94,   0, 134,  77,  51, 128, 247,  21,  88, 145, 122,  19,
-         40,  58,   9,  39, 252,   8, 156, 126, 146,  80, 159, 201, 186, 175,  74,  89,
-         54, 173, 208,  86, 239,   6,  61, 139,  66,  87, 150, 231,  82,  42, 197, 202,
-        199, 196, 121, 112, 161,  99,  90, 144, 105, 195, 255,  27,   3, 216, 187, 172,
-         12,   4, 221, 182, 215, 214,  76,  98,  15,  33,  47, 200, 113, 140, 227, 191,
-        100,  24, 251, 185, 152, 237, 235,  92,  96,   1, 193,   2, 154,  72, 198, 223,
-         28,  46,  13,  56, 153, 232, 233, 143, 108, 184,  43, 119,  84, 189, 120, 211,
-         10, 164,  73, 230, 149, 238,  20,  37,  95, 166, 240,  29, 204, 167, 243, 236,
-         45, 170, 220,   5,   7,  50, 160,  83, 157,  22, 168, 111,  55, 137, 206,  36,
-         85, 180,  79, 142, 102, 181,  14, 115,  57,  34,  75, 244, 248,  48,  93, 183,
-        229, 101, 205,  70, 226, 225, 165, 176, 136, 179,  52,  32,  26,  81,  65, 178
-    };
-    unsigned h1 = 0;
-    unsigned h2 = 0;
-    unsigned h3 = 0;
-    unsigned h4 = 0;
-    unsigned i;
-    
-    for (i = 0; i != len; ++i) {
-        uint8_t ch = key[i];
-        h1 = T1[h1 ^ ch];
-        h2 = T2[h2 ^ ch];
-        h3 = T3[h3 ^ ch];
-        h4 = T4[h4 ^ ch];
-    }
-    
-    return (h4 << 24) | (h3 << 16) | (h2 << 8) | h1;
-}
-
-rc_t HashTableMake(HashTable **rslt, uint32_t initialSize, HashTableKeyCompFunc kf, const void *ctx)
-{
-    HashTable *self;
-    unsigned i;
-
-    *rslt = NULL;
-    
-    if (initialSize == 0)
-        initialSize = 2;
-    else {
-        uint32_t m;
-        
-        for (m = 2; m < initialSize; m <<= 1)
-            ;
-        initialSize = m;
-        
-        if (initialSize > HASH_TABLE_ENTRIES_MAX)
-            initialSize = HASH_TABLE_ENTRIES_MAX;
-    }
-    
-    self = malloc(sizeof(*self));
-    if (self == NULL)
-        return RC(rcCont, rcSelf, rcAllocating, rcMemory, rcExhausted);
-    
-#if HASH_TABLE_PREALLOC_MAX
-#else
-    self->table = malloc(initialSize * sizeof(self->table[0]));
-    if (self == NULL) {
-        free(self);
-        return RC(rcCont, rcSelf, rcAllocating, rcMemory, rcExhausted);
-    }
-#endif
-    
-    for (i = 0; i != initialSize; ++i) {
-        self->table[i].used = 0;
-        self->table[i].overflow = NULL;
-    }
-    
-    self->hashMask = initialSize - 1;
-    self->entryCount = 0;
-    
-    self->comp_func = kf;
-    self->ctx = ctx;
-
-    *rslt = self;
-    
-    return 0;
-}
-
-static bool HashTableValidate(const HashTable *self)
-{
-    unsigned i;
-    
-    for (i = 0; i != self->hashMask + 1; ++i) {
-        if (HTBucketValidate(&self->table[i], i, self->hashMask))
-            return true;
-    }
-    return false;
-}
-
-static rc_t HashTableExpand(HashTable *self)
-{
-    const uint32_t mask = (self->hashMask << 1) | 1;
-    size_t size;
-    unsigned i;
-#if HASH_TABLE_PREALLOC_MAX
-#else
-    HTBucket *temp;
-#endif
-    
-    /* the table must be smaller than the limit */
-    if (self->hashMask >= HASH_TABLE_ENTRIES_MAX - 1)
-        return 0;
-    
-    size = self->hashMask + 1;
-    
-    /* the density of used slots needs to be high enough */
-    if (self->entryCount * 4 < size * 3 * 32)
-        return 0;
-    
-#if HASH_TABLE_PREALLOC_MAX
-#else
-    temp = realloc(self->table, size * 2);
-    if (temp == NULL)
-        return RC(rcCont, rcTable, rcResizing, rcMemory, rcExhausted);
-    self->table = temp;
-#endif
-    
-    /* move any items that should be moved
-     * to the new buckets (about half should)
-     */
-    for (i = 0; i != size; ++i) {
-        HTBucket *bucket = &self->table[i];
-        HTBucket *other  = &self->table[i + size];
-        
-        other->overflow = NULL;
-        other->used = 0;
-        do {
-            unsigned j;
-            uint32_t bits = bucket->used;
-            
-            for (j = 0; j != 32 && bits != 0; ++j, bits >>= 1) {
-                /* slot j occupied? */
-                if ((bits & 1) != 0) {
-                    HTEntry *entry = &bucket->entry[j];
-                    
-                    assert((entry->hashValue & self->hashMask) == i);
-                    
-                    while ((entry->hashValue & mask) != i) {
-                        rc_t rc;
-
-                        /* move to new bucket */
-                        assert((entry->hashValue & mask) == i + size);
-                        
-                        rc = HTBucketInsert(other, entry);
-                        if (rc) return rc;
-                        if (HTBucketFreeSlot(bucket, j))
-                            break;
-                        
-                        /* FreeSlot decided to reuse the slot
-                         * for something from the overflow,
-                         * so process the new thing
-                         */
-                        assert((entry->hashValue & self->hashMask) == i);
-                    }
-                }
-            }
-            bucket = bucket->overflow;
-        } while (bucket);
-    }
-    self->hashMask = mask;
-#if 0
-    HashTableValidate(self);
-#endif    
-    return 0;
-}
-
-static rc_t HashTableShrink(HashTable *self)
-{
-    const uint32_t mask = self->hashMask >> 1;
-    size_t size;
-    unsigned i;
-    unsigned j;
-    
-    if (self->hashMask > 255)
-        return 0;
-    
-    size = self->hashMask + 1;
-    
-    if (self->entryCount * 4 >= size * 3 * 32)
-        return 0;
-    
-    for (j = 0, i = mask + 1; i != size; ++i, ++j) {
-        HTBucket *bucket = &self->table[i];
-        HTBucket *other  = &self->table[j];
-        
-        do {
-            unsigned k;
-            uint32_t bits = bucket->used;
-            
-            for (k = 0; k != 32 && bits != 0; ++k, bits >>= 1) {
-                if ((bits & 1) != 0) {
-                    rc_t rc;
-                    HTEntry *entry = &bucket->entry[k];
-                    
-                    assert((entry->hashValue & self->hashMask) == i);
-                    assert((entry->hashValue & mask) == j);
-                        
-                    rc = HTBucketInsert(other, entry);
-                    if (rc) return rc;
-                }
-            }
-            bucket = bucket->overflow;
-        } while (bucket);
-    }
-    self->hashMask = mask;
-#if 0
-    HashTableValidate(self);
-#endif    
-    return 0;
-}
-
-static bool HashTableFindSlot(const HashTable *self,
-                              const void *key,
-                              uint32_t key_len,
-                              HashTableRealIterator *iter
-                              )
-{
-    uint32_t h = GetHashValue(key, key_len);
-    const HTBucket *bucket = &self->table[h & self->hashMask];
-    const HTBucket *open_bucket = NULL;
-    int slot = 0;
-    
-    iter->hashValue = h;
-    do {
-        unsigned i;
-        uint32_t bits = bucket->used;
-        
-        for (i = 0; i != 32 && (bits != 0 || open_bucket == NULL); ++i, bits >>= 1) {
-            if ((bits & 1) == 0) {
-                if (open_bucket == NULL) {
-                    open_bucket = bucket;
-                    slot = i;
-                }
-                continue;
-            }
-            if (bucket->entry[i].hashValue != h)
-                continue;
-            if (self->comp_func(bucket->entry[i].payload, key, key_len, (void *)self->ctx) != 0)
-                continue;
-            
-            iter->bucket = (HTBucket *)bucket;
-            iter->slot = i;
-            return true;
-        }
-        if (bucket->overflow == NULL)
-            break;
-        bucket = bucket->overflow;
-    } while (1);
-    if (open_bucket == NULL) {
-        iter->bucket = (HTBucket *)bucket;
-        iter->slot = 32;
-    }
-    else {
-        iter->bucket = (HTBucket *)open_bucket;
-        iter->slot = slot;
-    }
-
-    return false;
-}
-
-HashTableIterator HashTableLookup(HashTable *self, const void *key, uint32_t key_length)
-{
-    HashTableImplIterator rslt;
-    
-    rslt.real.table = self;
-    HashTableFindSlot(self, key, key_length, &rslt.real);
-    
-    return rslt.user;
-}
-
-void HashTableRemove(HashTable *self, const HashTableIterator *iter,
-                        HashTableFreeFunc whack, void *ctx)
-{
-    const HashTableRealIterator *i = &((const HashTableImplIterator *)iter)->real;
-    uint32_t hv;
-    
-    assert(i->table == self);
-    if (i->slot > 32)
-        return;
-    if ((i->bucket->used & (1 << i->slot)) == 0)
-        return;
-    
-    hv = i->hashValue;
-    assert(hv == i->bucket->entry[i->slot].hashValue);
-    
-    if (whack)
-        whack((void *)i->bucket->entry[i->slot].payload, ctx);
-    
-    HTBucketFreeSlot(i->bucket, i->slot);
-    if (i->bucket->used == 0) {
-        HTBucket *parent = &self->table[hv & self->hashMask];
-        
-        if (i->bucket != parent) {
-            while (parent->overflow != i->bucket)
-                parent = parent->overflow;
-            assert(parent->overflow == i->bucket);
-            assert(i->bucket->overflow == NULL);
-            parent->overflow = NULL;
-            free(i->bucket);
-        }
-    }
-    --self->entryCount;
-}
-
-void HashTableForEach(const HashTable *self, void (*fn)(void *payload, void *ctx), void *ctx)
-{
-    unsigned i;
-    
-    for (i = 0; i != self->hashMask + 1; ++i) {
-        HTBucketForEach(&self->table[i], fn, ctx);
-    }
-}
-
-bool HashTableDoUntil(const HashTable *self, bool (*fn)(void *payload, void *ctx), void *ctx)
-{
-    unsigned i;
-    
-    for (i = 0; i != self->hashMask + 1; ++i) {
-        if (HTBucketDoUntil(&self->table[i], fn, ctx))
-            return true;
-    }
-    return false;
-}
-
-void HashTableWhack(HashTable *self, HashTableFreeFunc fn, void *ctx)
-{
-    unsigned i;
-    
-    if (self) {
-        for (i = 0; i != self->hashMask + 1; ++i)
-            HTBucketWhack(&self->table[i], fn, ctx);
-#if HASH_TABLE_PREALLOC_MAX
-#else
-        free(self->table);
-#endif
-        free(self);
-    }
-}
-
-bool HashTableIteratorHasValue(const HashTableIterator *iter)
-{
-    const HashTableRealIterator *i = &((const HashTableImplIterator *)iter)->real;
-    
-    if (i->slot < 32 && (i->bucket->used & (1 << i->slot)) != 0)
-        return true;
-    return false;
-}
-
-const void *HashTableIteratorGetValue(const HashTableIterator *iter)
-{
-    const HashTableRealIterator *i = &((const HashTableImplIterator *)iter)->real;
-    return i->bucket->entry[i->slot].payload;
-}
-
-rc_t HashTableIteratorSetValue(HashTableIterator *iter, const void *value)
-{
-    HashTableRealIterator *i = &((HashTableImplIterator *)iter)->real;
-    HashTable *self = i->table;
-    
-    if (i->slot >= 32) {
-        rc_t rc;
-        
-        assert(i->bucket->used == 0xFFFFFFFF);
-        rc = HashTableExpand(self);
-        if (rc)
-            return rc;
-        rc = HTBucketNextOpenSlot(&self->table[i->hashValue & self->hashMask], &i->bucket, &i->slot);
-        if (rc)
-            return rc;
-    }
-    assert((i->bucket->used & (1 << i->slot)) == 0);
-    i->bucket->entry[i->slot].hashValue = i->hashValue;
-    i->bucket->entry[i->slot].payload = value;
-    i->bucket->used |= (1 << i->slot);
-    ++self->entryCount;
-    return 0;
-}
-
-#define TESTING 0
-#if TESTING
-#include <stdio.h>
-#include <string.h>
-
-struct pstring {
-    uint8_t len;
-    char str[255];
-};
-
-static int comp_func(const void *Obj, const void *key, uint32_t len, void *ignore)
-{
-    const struct pstring *obj = Obj;
-    return obj->len == len ? memcmp(obj->str, key, len) : obj->len - len;
-}
-
-static void print_key(void *Obj, void *ignore)
-{
-    const struct pstring *obj = Obj;
-    
-    printf("%s\n", obj->str);
-    return;
-}
-
-static struct pstring **LoadTestData(unsigned *count) {
-    FILE *fp = fopen("spot_name.txt", "r");
-    unsigned N = 0;
-    unsigned bytes = 0;
-    struct pstring **rslt;
-    
-    *count = 0;
-    if (fp == NULL) {
-        perror("failed to open test data file");
-        return NULL;
-    }
-    do {
-        char buf[256];
-        int i = fscanf(fp, " %256s ", buf);
-        if (i != 1)
-            break;
-        ++N;
-        bytes += strlen(buf);
-    } while (1);
-    rewind(fp);
-    
-    rslt = malloc(N * (sizeof(*rslt) + 2) + bytes);
-    if (rslt) {
-        unsigned i;
-        char *cp = (char *)&rslt[N];
-        
-        for (i = 0; i != N; ++i) {
-            rslt[i] = (struct pstring *)cp;
-            fscanf(fp, " %s ", rslt[i]->str);
-            rslt[i]->len = strlen(rslt[i]->str);
-            cp += rslt[i]->len + 2;
-        }
-        *count = N;
-    }
-    fclose(fp);
-    return rslt;
-}
-
-bool is_not_consistent(void *payload, void *context)
-{
-    return payload == NULL;
-}
-
-void test(void) {
-    HashTable *ht;
-    struct pstring **testdata;
-    unsigned N;
-    unsigned i;
-    
-    srand(time(0));
-    
-    testdata = LoadTestData(&N);
-   
-    if (HashTableMake(&ht, 0, comp_func, 0) != 0)
-        return;
-    
-    for (i = 0; i != N; ++i) {
-        const struct pstring *val = testdata[i % N];
-        HashTableIterator iter = HashTableLookup(ht, val->str, val->len);
-        
-        if (HashTableIteratorHasValue(&iter)) {
-            HashTableRemove(ht, &iter, 0, 0);
-        }
-        else {
-            HashTableIteratorSetValue(&iter, val);
-        }
-    }
-#if 1
-    HashTableValidate(ht);
-#else
-    HashTableForEach(ht, print_key, 0);
-#endif
-    HashTableWhack(ht, 0, 0);
-}
-#endif
-
diff --git a/tools/bam-loader/hashtable.h b/tools/bam-loader/hashtable.h
deleted file mode 100644
index e77ee9c..0000000
--- a/tools/bam-loader/hashtable.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct HashTable HashTable;
-typedef struct HashTableIterator HashTableIterator;
-
-typedef int (*HashTableKeyCompFunc)(const void *value, const void *key, uint32_t key_length, void *context);
-typedef void (*HashTableFreeFunc)(void *value, void *context);
-
-struct HashTableIterator {
-    const void *root;
-    const void *bucket;
-    uint64_t id;
-};
-
-rc_t HashTableMake(HashTable **rslt, uint32_t initialSize, HashTableKeyCompFunc kf, const void *context);
-
-void HashTableForEach(const HashTable *self, void (*fn)(void *value, void *context), void *context);
-
-bool HashTableDoUntil(const HashTable *self, bool (*fn)(void *value, void *context), void *context);
-
-HashTableIterator HashTableLookup(HashTable *self, const void *key, uint32_t key_length);
-
-void HashTableWhack(HashTable *self, HashTableFreeFunc fn, void *context);
-
-void HashTableRemove(HashTable *self, const HashTableIterator *iter, HashTableFreeFunc whack, void *context);
-
-bool HashTableIteratorHasValue(const HashTableIterator *iter);
-
-const void *HashTableIteratorGetValue(const HashTableIterator *iter);
-
-rc_t HashTableIteratorSetValue(HashTableIterator *iter, const void *value);
diff --git a/tools/bam-loader/loader-imp.c b/tools/bam-loader/loader-imp.c
deleted file mode 100644
index 1747156..0000000
--- a/tools/bam-loader/loader-imp.c
+++ /dev/null
@@ -1,2097 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-/* #include "bam-load.vers.h" */
-
-#include <klib/callconv.h>
-#include <klib/data-buffer.h>
-#include <klib/text.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/status.h>
-#include <klib/rc.h>
-#include <klib/sort.h>
-#include <klib/printf.h>
-
-#include <kfs/directory.h>
-#include <kfs/file.h>
-#include <kfs/mmap.h>
-#include <kfs/pagefile.h>
-#include <kfs/pmem.h>
-#include <kdb/btree.h>
-#include <kdb/manager.h>
-#include <kdb/database.h>
-#include <kdb/table.h>
-#include <kdb/meta.h>
-
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
-
-#include <insdc/insdc.h>
-#include <insdc/sra.h>
-#include <align/dna-reverse-cmpl.h>
-
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <kapp/loader-file.h>
-#include <kapp/loader-meta.h>
-#include <kapp/log-xml.h>
-#include <kapp/progressbar.h>
-
-#include <sysalloc.h>
-#include <atomic32.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-#include <limits.h>
-#include <time.h>
-
-#include <align/bam.h>
-
-#include "Globals.h"
-#include "sequence-writer.h"
-#include "reference-writer.h"
-#include "alignment-writer.h"
-
-#define NUM_ID_SPACES (256u)
-
-#define MMA_NUM_CHUNKS_BITS (24u)
-#define MMA_NUM_SUBCHUNKS_BITS ((32u)-(MMA_NUM_CHUNKS_BITS))
-#define MMA_SUBCHUNK_SIZE (1u << MMA_NUM_CHUNKS_BITS)
-#define MMA_SUBCHUNK_COUNT (1u << MMA_NUM_SUBCHUNKS_BITS)
-
-typedef struct {
-    KFile *fp;
-    size_t elemSize;
-    uint64_t fsize;
-    struct mma_map_s {
-        struct mma_submap_s {
-            uint8_t *base;
-            KMMap *mmap;
-        } submap[MMA_SUBCHUNK_COUNT];
-    } map[NUM_ID_SPACES];
-} MMArray;
-
-#define FRAG_CHUNK_SIZE (128)
-typedef struct {
-    uint32_t primaryId[2];
-    uint32_t spotId;
-    uint32_t fragmentId;
-    uint8_t  platform;
-    uint8_t  pId_ext[2];
-    uint8_t  spotId_ext;
-    uint8_t  alignmentCount[2]; /* 0..254; 254: saturated max; 255: special meaning "too many" */
-    uint8_t  unmated: 1,
-             pcr_dup: 1,
-             has_a_read: 1,
-             unaligned_1: 1,
-             unaligned_2: 1;
-} ctx_value_t;
-
-#define CTX_VALUE_SET_P_ID(O,N,V) do { int64_t tv = (V); (O).primaryId[N] = (uint32_t)tv; (O).pId_ext[N] = tv >> 32; } while(0);
-#define CTX_VALUE_GET_P_ID(O,N) ((((int64_t)((O).pId_ext[N])) << 32) | (O).primaryId[N])
-
-#define CTX_VALUE_SET_S_ID(O,V) do { int64_t tv = (V); (O).spotId = (uint32_t)tv; (O).spotId_ext = tv >> 32; } while(0);
-#define CTX_VALUE_GET_S_ID(O) ((((int64_t)(O).spotId_ext) << 32) | (O).spotId)
-
-typedef struct FragmentInfo {
-    uint64_t ti;
-    uint32_t readlen;
-    uint8_t  aligned;
-    uint8_t  is_bad;
-    uint8_t  orientation;
-    uint8_t  otherReadNo;
-    uint8_t  sglen;
-    uint8_t  cskey;
-} FragmentInfo;
-
-typedef struct context_t {
-    const KLoadProgressbar *progress[4];
-    KBTree *key2id[NUM_ID_SPACES];
-    char *key2id_names;
-    MMArray *id2value;
-    KMemBank *fragsBoth; /*** mate will be there soon ***/
-    KMemBank *fragsOne;  /*** mate may not be found soon or even show up ***/
-    int64_t spotId;
-    int64_t primaryId;
-    int64_t secondId;
-    uint64_t alignCount;
-    
-    uint32_t idCount[NUM_ID_SPACES];
-    uint32_t key2id_hash[NUM_ID_SPACES];
-
-    unsigned key2id_max;
-    unsigned key2id_name_max;
-    unsigned key2id_name_alloc;
-    unsigned key2id_count;
-    
-    unsigned key2id_name[NUM_ID_SPACES];
-    /* this array is kept in name order */
-    /* this maps the names to key2id and idCount */
-    unsigned key2id_oid[NUM_ID_SPACES];
-    
-    unsigned pass;
-    bool isColorSpace;
-} context_t;
-
-static char const *Print_ctx_value_t(ctx_value_t const *const self)
-{
-    static char buffer[4096];
-    rc_t rc = string_printf(buffer, sizeof(buffer), NULL, "pid: { %lu, %lu }, sid: %lu, fid: %u, alc: { %u, %u }, flg: %x", CTX_VALUE_GET_P_ID(*self, 0), CTX_VALUE_GET_P_ID(*self, 1), CTX_VALUE_GET_S_ID(*self), self->fragmentId, self->alignmentCount[0], self->alignmentCount[1], self->alignmentCount[2]);
-
-    if (rc)
-        return 0;
-    return buffer;
-}
-
-static rc_t MMArrayMake(MMArray **rslt, KFile *fp, uint32_t elemSize)
-{
-    MMArray *const self = calloc(1, sizeof(*self));
-
-    if (self == NULL)
-        return RC(rcExe, rcMemMap, rcConstructing, rcMemory, rcExhausted);
-    self->elemSize = (elemSize + 3) & ~(3u); /** align to 4 byte **/
-    self->fp = fp;
-    KFileAddRef(fp);
-    *rslt = self;
-    return 0;
-}
-
-#define PERF 0
-
-static rc_t MMArrayGet(MMArray *const self, void **const value, uint64_t const element)
-{
-    unsigned const bin_no = element >> 32;
-    unsigned const subbin = ((uint32_t)element) >> MMA_NUM_CHUNKS_BITS;
-    unsigned const in_bin = (uint32_t)element & (MMA_SUBCHUNK_SIZE - 1);
-
-    if (bin_no >= sizeof(self->map)/sizeof(self->map[0]))
-        return RC(rcExe, rcMemMap, rcConstructing, rcId, rcExcessive);
-    
-    if (self->map[bin_no].submap[subbin].base == NULL) {
-        size_t const chunk = MMA_SUBCHUNK_SIZE * self->elemSize;
-        size_t const fsize = self->fsize + chunk;
-        rc_t rc = KFileSetSize(self->fp, fsize);
-        
-        if (rc == 0) {
-            KMMap *mmap;
-            
-            self->fsize = fsize;
-            rc = KMMapMakeRgnUpdate(&mmap, self->fp, self->fsize, chunk);
-            if (rc == 0) {
-                void *base;
-                
-                rc = KMMapAddrUpdate(mmap, &base);
-                if (rc == 0) {
-#if PERF
-                    static unsigned mapcount = 0;
-
-                    (void)PLOGMSG(klogInfo, (klogInfo, "Number of mmaps: $(cnt)", "cnt=%u", ++mapcount));
-#endif
-                    self->map[bin_no].submap[subbin].mmap = mmap;
-                    self->map[bin_no].submap[subbin].base = base;
-
-                    goto GET_MAP;
-                }
-                KMMapRelease(mmap);
-            }
-        }
-        return rc;
-    }
-GET_MAP:
-    *value = &self->map[bin_no].submap[subbin].base[(size_t)in_bin * self->elemSize];
-    return 0;
-}
-
-static void MMArrayWhack(MMArray *self)
-{
-    unsigned i;
-
-    for (i = 0; i != sizeof(self->map)/sizeof(self->map[0]); ++i) {
-        unsigned j;
-        
-        for (j = 0; j != sizeof(self->map[0].submap)/sizeof(self->map[0].submap[0]); ++j) {
-            if (self->map[i].submap[j].mmap)
-                KMMapRelease(self->map[i].submap[j].mmap);
-            self->map[i].submap[j].mmap = NULL;
-            self->map[i].submap[j].base = NULL;
-        }
-    }
-    KFileRelease(self->fp);
-    free(self);
-}
-
-static rc_t OpenKBTree(KBTree **const rslt, unsigned n, unsigned max)
-{
-    size_t const cacheSize = (((G.cache_size - (G.cache_size / 2) - (G.cache_size / 8)) / max)
-                            + 0xFFFFF) & ~((size_t)0xFFFFF);
-    KFile *file = NULL;
-    KDirectory *dir;
-    char fname[4096];
-    rc_t rc;
-    
-    rc = KDirectoryNativeDir(&dir);
-    if (rc)
-        return rc;
-    
-    rc = string_printf(fname, sizeof(fname), NULL, "%s/key2id.%u.%u", G.tmpfs, G.pid, n); if (rc) return rc;
-    rc = KDirectoryCreateFile(dir, &file, true, 0600, kcmInit, fname);
-    KDirectoryRemove(dir, 0, fname);
-    KDirectoryRelease(dir);
-    if (rc == 0) {
-        rc = KBTreeMakeUpdate(rslt, file, cacheSize,
-                              false, kbtOpaqueKey,
-                              1, 255, sizeof ( uint32_t ),
-                              NULL
-                              );
-        KFileRelease(file);
-#if PERF
-        if (rc == 0) {
-            static unsigned treecount = 0;
-
-            (void)PLOGMSG(klogInfo, (klogInfo, "Number of trees: $(cnt)", "cnt=%u", ++treecount));
-        }
-#endif
-    }
-    return rc;
-}
-
-static rc_t GetKeyIDOld(context_t *const ctx, uint64_t *const rslt, bool *const wasInserted, char const key[], char const name[], unsigned const namelen)
-{
-    unsigned const keylen = strlen(key);
-    rc_t rc;
-    uint64_t tmpKey;
-
-    if (ctx->key2id_count == 0) {
-        rc = OpenKBTree(&ctx->key2id[0], 1, 1);
-        if (rc) return rc;
-        ctx->key2id_count = 1;
-    }
-    if (memcmp(key, name, keylen) == 0) {
-        /* qname starts with read group; no append */
-        tmpKey = ctx->idCount[0];
-        rc = KBTreeEntry(ctx->key2id[0], &tmpKey, wasInserted, name, namelen);
-    }
-    else {
-        char sbuf[4096];
-        char *buf = sbuf;
-        char *hbuf = NULL;
-        size_t bsize = sizeof(sbuf);
-        size_t actsize;
-        
-        if (keylen + namelen + 2 > bsize) {
-            hbuf = malloc(bsize = keylen + namelen + 2);
-            if (hbuf == NULL)
-                return RC(rcExe, rcName, rcAllocating, rcMemory, rcExhausted);
-            buf = hbuf;
-        }
-        rc = string_printf(buf, bsize, &actsize, "%s\t%.*s", key, (int)namelen, name);
-        
-        tmpKey = ctx->idCount[0];
-        rc = KBTreeEntry(ctx->key2id[0], &tmpKey, wasInserted, buf, actsize);
-        if (hbuf)
-            free(hbuf);
-    }
-    if (rc == 0) {
-        *rslt = tmpKey;
-        if (*wasInserted)
-            ++ctx->idCount[0];
-    }
-    return rc;
-}
-
-static unsigned HashKey(void const *key, unsigned keylen)
-{
-    /* There is nothing special about this hash. It was randomly generated. */
-    static const uint8_t T1[] = {
-         64, 186,  39, 203,  54, 211,  98,  32,  26,  23, 219,  94,  77,  60,  56, 184,
-        129, 242,  10,  91,  84, 192,  19, 197, 231, 133, 125, 244,  48, 176, 160, 164,
-         17,  41,  57, 137,  44, 196, 116, 146, 105,  40, 122,  47, 220, 226, 213, 212,
-        107, 191,  52, 144,   9, 145,  81, 101, 217, 206,  85, 134, 143,  58, 128,  20,
-        236, 102,  83, 149, 148, 180, 167, 163,  12, 239,  31,   0,  73, 152,   1,  15,
-         75, 200,   4, 165,   5,  66,  25, 111, 255,  70, 174, 151,  96, 126, 147,  34,
-        112, 161, 127, 181, 237,  78,  37,  74, 222, 123,  21, 132,  95,  51, 141,  45,
-         61, 131, 193,  68,  62, 249, 178,  33,   7, 195, 228,  82,  27,  46, 254,  90,
-        185, 240, 246, 124, 205, 182,  42,  22, 198,  69, 166,  92, 169, 136, 223, 245,
-        118,  97, 115,  80, 252, 209,  49,  79, 221,  38,  28,  35,  36, 208, 187, 248,
-        158, 201, 202, 168,   2,  18, 189, 119, 216, 214,  11,   6,  89,  16, 229, 109,
-        120,  43, 162, 106, 204,   8, 199, 235, 142, 210,  86, 153, 227, 230,  24, 100,
-        224, 113, 190, 243, 218, 215, 225, 173,  99, 238, 138,  59, 183, 154, 171, 232,
-        157, 247, 233,  67,  88,  50, 253, 251, 140, 104, 156, 170, 150, 103, 117, 110,
-        155,  72, 207, 250, 159, 194, 177, 130, 135,  87,  71, 175,  14,  55, 172, 121,
-        234,  13,  30, 241,  93, 188,  53, 114,  76,  29,  65,   3, 179, 108,  63, 139
-    };
-    unsigned h = 0x55;
-    unsigned i = keylen;
-    
-    do { h = T1[h ^ ((uint8_t)i)]; } while ((i >>= 8) != 0);
-
-    for (i = 0; i != keylen; ++i)
-        h = T1[h ^ ((uint8_t const *)key)[i]];
-
-    return h;
-}
-
-static rc_t GetKeyID(context_t *const ctx, uint64_t *const rslt, bool *const wasInserted, char const key[], char const name[], unsigned const namelen)
-{
-    if (ctx->key2id_max == 1)
-        return GetKeyIDOld(ctx, rslt, wasInserted, key, name, namelen);
-    else {
-        unsigned const keylen = strlen(key);
-        unsigned const h = HashKey(key, keylen);
-        unsigned f;
-        unsigned e = ctx->key2id_count;
-        uint64_t tmpKey;
-        
-        *rslt = 0;
-        {{
-            uint32_t const bucket_value = ctx->key2id_hash[h];
-            unsigned const n  = (uint8_t) bucket_value;
-            unsigned const i1 = (uint8_t)(bucket_value >>  8);
-            unsigned const i2 = (uint8_t)(bucket_value >> 16);
-            unsigned const i3 = (uint8_t)(bucket_value >> 24);
-            
-            if (n > 0 && strcmp(key, ctx->key2id_names + ctx->key2id_name[i1]) == 0) {
-                f = i1;
-                /*
-                ctx->key2id_hash[h] = (i3 << 24) | (i2 << 16) | (i1 << 8) | n;
-                 */
-                goto GET_ID;
-            }
-            if (n > 1 && strcmp(key, ctx->key2id_names + ctx->key2id_name[i2]) == 0) {
-                f = i2;
-                ctx->key2id_hash[h] = (i3 << 24) | (i1 << 16) | (i2 << 8) | n;
-                goto GET_ID;
-            }
-            if (n > 2 && strcmp(key, ctx->key2id_names + ctx->key2id_name[i3]) == 0) {
-                f = i3;
-                ctx->key2id_hash[h] = (i2 << 24) | (i1 << 16) | (i3 << 8) | n;
-                goto GET_ID;
-            }
-        }}
-        f = 0;
-        while (f < e) {
-            unsigned const m = (f + e) / 2;
-            unsigned const oid = ctx->key2id_oid[m];
-            int const diff = strcmp(key, ctx->key2id_names + ctx->key2id_name[oid]);
-            
-            if (diff < 0)
-                e = m;
-            else if (diff > 0)
-                f = m + 1;
-            else {
-                f = oid;
-                goto GET_ID;
-            }
-        }
-        if (ctx->key2id_count < ctx->key2id_max) {
-            unsigned const name_max = ctx->key2id_name_max + keylen + 1;
-            KBTree *tree;
-            rc_t rc = OpenKBTree(&tree, ctx->key2id_count + 1, 1); /* ctx->key2id_max); */
-            
-            if (rc) return rc;
-            
-            if (ctx->key2id_name_alloc < name_max) {
-                unsigned alloc = ctx->key2id_name_alloc;
-                void *tmp;
-                
-                if (alloc == 0)
-                    alloc = 4096;
-                while (alloc < name_max)
-                    alloc <<= 1;
-                tmp = realloc(ctx->key2id_names, alloc);
-                if (tmp == NULL)
-                    return RC(rcExe, rcName, rcAllocating, rcMemory, rcExhausted);
-                ctx->key2id_names = tmp;
-                ctx->key2id_name_alloc = alloc;
-            }
-            if (f < ctx->key2id_count) {
-                memmove(&ctx->key2id_oid[f + 1], &ctx->key2id_oid[f], (ctx->key2id_count - f) * sizeof(ctx->key2id_oid[f]));
-            }
-            ctx->key2id_oid[f] = ctx->key2id_count;
-            ++ctx->key2id_count;
-            f = ctx->key2id_oid[f];
-            ctx->key2id_name[f] = ctx->key2id_name_max;
-            ctx->key2id_name_max = name_max;
-
-            memcpy(&ctx->key2id_names[ctx->key2id_name[f]], key, keylen + 1);
-            ctx->key2id[f] = tree;
-            ctx->idCount[f] = 0;
-            if ((uint8_t)ctx->key2id_hash[h] < 3) {
-                unsigned const n = (uint8_t)ctx->key2id_hash[h] + 1;
-                
-                ctx->key2id_hash[h] = (((ctx->key2id_hash[h] & ~(0xFFu)) | f) << 8) | n;
-            }
-            else {
-                /* the hash function isn't working too well
-                 * keep the 3 mru
-                 */
-                ctx->key2id_hash[h] = (((ctx->key2id_hash[h] & ~(0xFFu)) | f) << 8) | 3;
-            }
-        GET_ID:
-            tmpKey = ctx->idCount[f];
-            rc = KBTreeEntry(ctx->key2id[f], &tmpKey, wasInserted, name, namelen);
-            if (rc == 0) {
-                *rslt = (((uint64_t)f) << 32) | tmpKey;
-                if (*wasInserted)
-                    ++ctx->idCount[f];
-                assert(tmpKey < ctx->idCount[f]);
-            }
-            return rc;
-        }
-        return RC(rcExe, rcTree, rcAllocating, rcConstraint, rcViolated);
-    }
-}
-
-static rc_t OpenMMapFile(context_t *const ctx, KDirectory *const dir)
-{
-    KFile *file = NULL;
-    char fname[4096];
-    rc_t rc = string_printf(fname, sizeof(fname), NULL, "%s/id2value.%u", G.tmpfs, G.pid);
-    
-    if (rc)
-        return rc;
-    
-    rc = KDirectoryCreateFile(dir, &file, true, 0600, kcmInit, fname);
-    KDirectoryRemove(dir, 0, fname);
-    if (rc == 0)
-        rc = MMArrayMake(&ctx->id2value, file, sizeof(ctx_value_t));
-    KFileRelease(file);
-    return rc;
-}
-
-static rc_t OpenMBankFile(context_t *const ctx, KDirectory *const dir, int which, size_t climit)
-{
-    KFile *file = NULL;
-    char fname[4096];
-    char const *const suffix = which == 1 ? "One" : "Both";
-    KMemBank **const mbank = which == 1 ? &ctx->fragsOne : &ctx->fragsBoth;
-    rc_t rc = string_printf(fname, sizeof(fname), NULL, "%s/frag_data%s.%u", G.tmpfs, suffix, G.pid);
-    
-    if (rc)
-        return rc;
-    
-    rc = KDirectoryCreateFile(dir, &file, true, 0600, kcmInit, fname);
-    KDirectoryRemove(dir, 0, fname);
-    if (rc == 0) {
-        KPageFile *backing;
-        
-        rc = KPageFileMakeUpdate(&backing, file, climit, false);
-        KFileRelease(file);
-        if (rc == 0) {
-            rc = KMemBankMake(mbank, FRAG_CHUNK_SIZE, 0, backing);
-            KPageFileRelease(backing);
-        }
-    }
-    return rc;
-}
-
-static rc_t SetupContext(context_t *ctx, unsigned numfiles)
-{
-    rc_t rc = 0;
-
-    memset(ctx, 0, sizeof(*ctx));
-    
-    if (G.mode == mode_Archive) {
-        KDirectory *dir;
-        size_t fragSizeBoth; /*** temporary hold for first side of mate pair with both sides aligned**/
-        size_t fragSizeOne; /*** temporary hold for first side of mate pair with one side aligned**/
-
-        fragSizeBoth    =   (G.cache_size / 8);
-        fragSizeOne     =   (G.cache_size / 2);
-
-        rc = KLoadProgressbar_Make(&ctx->progress[0], 0); if (rc) return rc;
-        rc = KLoadProgressbar_Make(&ctx->progress[1], 0); if (rc) return rc;
-        rc = KLoadProgressbar_Make(&ctx->progress[2], 0); if (rc) return rc;
-        rc = KLoadProgressbar_Make(&ctx->progress[3], 0); if (rc) return rc;
-        
-        KLoadProgressbar_Append(ctx->progress[0], 100 * numfiles);
-        
-        rc = KDirectoryNativeDir(&dir);
-        if (rc == 0)
-            rc = OpenMMapFile(ctx, dir);
-        if (rc == 0)
-            rc = OpenMBankFile(ctx, dir, 0, fragSizeBoth);
-        if (rc == 0)
-            rc = OpenMBankFile(ctx, dir, 1, fragSizeOne);
-        KDirectoryRelease(dir);
-    }
-    return rc;
-}
-
-static void ContextReleaseMemBank(context_t *ctx)
-{
-    KMemBankRelease(ctx->fragsOne);
-    ctx->fragsOne = NULL;
-    KMemBankRelease(ctx->fragsBoth);
-    ctx->fragsBoth = NULL;
-}
-
-static void ContextRelease(context_t *ctx)
-{
-    KLoadProgressbar_Release(ctx->progress[0], true);
-    KLoadProgressbar_Release(ctx->progress[1], true);
-    KLoadProgressbar_Release(ctx->progress[2], true);
-    KLoadProgressbar_Release(ctx->progress[3], true);
-    MMArrayWhack(ctx->id2value);
-}
-
-static
-void COPY_QUAL(uint8_t D[], uint8_t const S[], unsigned const L, bool const R) 
-{
-    if (R) {
-        unsigned i;
-        unsigned j;
-        
-        for (i = 0, j = L - 1; i != L; ++i, --j)
-            D[i] = S[j];
-    }
-    else
-        memcpy(D, S, L);
-}
-
-static
-void COPY_READ(INSDC_dna_text D[], INSDC_dna_text const S[], unsigned const L, bool const R)
-{
-    static INSDC_dna_text const compl[] = {
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 , '.',  0 , 
-        '0', '1', '2', '3',  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 , 'T', 'V', 'G', 'H',  0 ,  0 , 'C', 
-        'D',  0 ,  0 , 'M',  0 , 'K', 'N',  0 , 
-         0 ,  0 , 'Y', 'S', 'A', 'A', 'B', 'W', 
-         0 , 'R',  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 , 'T', 'V', 'G', 'H',  0 ,  0 , 'C', 
-        'D',  0 ,  0 , 'M',  0 , 'K', 'N',  0 , 
-         0 ,  0 , 'Y', 'S', 'A', 'A', 'B', 'W', 
-         0 , 'R',  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 , 
-         0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0 ,  0
-    };
-    if (R) {
-        unsigned i;
-        unsigned j;
-        
-        for (i = 0, j = L - 1; i != L; ++i, --j)
-            D[i] = compl[((uint8_t const *)S)[j]];
-    }
-    else
-        memcpy(D, S, L);
-}
-
-static rc_t OpenBAM(const BAMFile **bam, VDatabase *db, const char bamFile[])
-{
-    rc_t rc = BAMFileMakeWithHeader(bam, G.headerText, bamFile);
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Failed to open '$(file)'", "file=%s", bamFile));
-    }
-    else if (db) {
-        KMetadata *dbmeta;
-        
-        rc = VDatabaseOpenMetadataUpdate(db, &dbmeta);
-        if (rc == 0) {
-            KMDataNode *node;
-            
-            rc = KMetadataOpenNodeUpdate(dbmeta, &node, "BAM_HEADER");
-            KMetadataRelease(dbmeta);
-            if (rc == 0) {
-                char const *header;
-                size_t size;
-                
-                rc = BAMFileGetHeaderText(*bam, &header, &size);
-                if (rc == 0) {
-                    rc = KMDataNodeWrite(node, header, size);
-                }
-                KMDataNodeRelease(node);
-            }
-        }
-    }
-
-    return rc;
-}
-
-static rc_t VerifyReferences(BAMFile const *bam, Reference const *ref)
-{
-    rc_t rc = 0;
-    uint32_t n;
-    unsigned i;
-    
-    BAMFileGetRefSeqCount(bam, &n);
-    for (i = 0; i != n; ++i) {
-        BAMRefSeq const *refSeq;
-        
-        BAMFileGetRefSeq(bam, i, &refSeq);
-        if (G.refFilter && strcmp(refSeq->name, G.refFilter) != 0)
-            continue;
-        
-        rc = ReferenceVerify(ref, refSeq->name, refSeq->length, refSeq->checksum);
-        if (rc) {
-            if (GetRCObject(rc) == rcChecksum && GetRCState(rc) == rcUnequal) {
-#if NCBI
-                (void)PLOGMSG(klogWarn, (klogWarn, "Reference: '$(name)', Length: $(len); checksums do not match", "name=%s,len=%u", refSeq->name, (unsigned)refSeq->length));
-#endif
-            }
-            else
-            if (GetRCObject(rc) == rcSize && GetRCState(rc) == rcUnequal) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Reference: '$(name)', Length: $(len); lengths do not match", "name=%s,len=%u", refSeq->name, (unsigned)refSeq->length));
-            }
-            else if (GetRCObject(rc) == rcSize && GetRCState(rc) == rcEmpty) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Reference: '$(name)', Length: $(len); fasta file is empty", "name=%s,len=%u", refSeq->name, (unsigned)refSeq->length));
-            }
-            else if (GetRCObject(rc) == rcId && GetRCState(rc) == rcNotFound) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Reference: '$(name)', Length: $(len); no match found", "name=%s,len=%u", refSeq->name, (unsigned)refSeq->length));
-            }
-            else {
-                (void)PLOGERR(klogWarn, (klogWarn, rc, "Reference: '$(name)', Length: $(len); error", "name=%s,len=%u", refSeq->name, (unsigned)refSeq->length));
-            }
-        }
-        else if (G.onlyVerifyReferences) {
-            (void)PLOGMSG(klogInfo, (klogInfo, "Reference: '$(name)', Length: $(len); match found", "name=%s,len=%u", refSeq->name, (unsigned)refSeq->length));
-        }
-    }
-    return 0;
-}
-
-static uint8_t GetMapQ(BAMAlignment const *rec)
-{
-    uint8_t mapQ;
-    
-    BAMAlignmentGetMapQuality(rec, &mapQ);
-    return mapQ;
-}
-
-static void EditAlignedQualities(uint8_t qual[], bool const hasMismatch[], unsigned readlen)
-{
-    unsigned i;
-    
-    for (i = 0; i < readlen; ++i) {
-        uint8_t const q = hasMismatch[i] ? G.alignedQualValue : qual[i];
-        
-        qual[i] = q;
-    }
-}
-
-static void EditUnalignedQualities(uint8_t qual[], bool const hasMismatch[], unsigned readlen)
-{
-    unsigned i;
-    
-    for (i = 0; i < readlen; ++i) {
-        uint8_t const q = (qual[i] & 0x7F) | (hasMismatch[i] ? 0x80 : 0);
-        
-        qual[i] = q;
-    }
-}
-
-static void AlignmentRecordInit(AlignmentRecord *self, void *buffer, unsigned readlen, char **endp)
-{
-    memset(self, 0, sizeof(*self));
-
-    self->data.seq_read_id.buffer = &self->read_id;
-    self->data.seq_read_id.elements = 1;
-    self->data.ref_id.buffer = &self->ref_id;
-    self->data.ref_id.elements = 1;
-    if (G.expectUnsorted) {
-        self->data.ref_start.buffer = &self->ref_start;
-        self->data.ref_start.elements = 1;
-    }
-    else {
-        self->data.global_ref_start.buffer = &self->global_ref_start;
-        self->data.global_ref_start.elements = 1;
-    }
-    self->data.ref_orientation.buffer = &self->ref_orientation;
-    self->data.ref_orientation.elements = 1;
-    self->data.mapq.buffer = &self->mapq;
-    self->data.mapq.elements = 1;
-    self->data.tmp_key_id.buffer = &self->tmp_key_id;
-    self->data.tmp_key_id.elements = 1;
-    
-    self->data.read_start.buffer = &self->read_start;
-    self->data.read_start.elements = 1;
-    self->data.read_len.buffer = &self->read_len;
-    self->data.read_len.elements = 1;
-    
-    self->data.mate_ref_orientation.buffer = &self->mate_ref_orientation;
-    self->data.mate_ref_orientation.elements = 1;
-    self->data.mate_ref_id.buffer = &self->mate_ref_id;
-    self->data.mate_ref_id.elements = 1;
-    self->data.mate_ref_pos.buffer = &self->mate_ref_pos;
-    self->data.mate_ref_pos.elements = 1;
-    self->data.mate_align_id.buffer = &self->mate_align_id;
-    self->data.mate_align_id.elements = 1;
-    self->data.template_len.buffer = &self->template_len;
-    self->data.template_len.elements = 1;
-    
-    self->data.ref_offset.buffer = (int32_t *)buffer;
-    self->data.has_mismatch.buffer = (bool *)&AR_OFFSET(*self)[readlen];
-    self->data.has_mismatch.elements = readlen;
-    self->data.has_ref_offset.buffer = &AR_HAS_MISMATCH(*self)[readlen];
-    self->data.has_ref_offset.elements = readlen;
-    self->data.mismatch.buffer = (char *)&AR_HAS_OFFSET(*self)[readlen];
-    
-    *endp = (char *)&AR_MISMATCH(*self)[readlen];
-}
-
-static bool platform_cmp(char const platform[], char const test[])
-{
-    unsigned i;
-
-    for (i = 0; ; ++i) {
-        int ch1 = test[i];
-        int ch2 = toupper(platform[i]);
-        
-        if (ch1 != ch2)
-            break;
-        if (ch1 == 0)
-            return true;
-    }
-    return false;
-}
-
-static
-INSDC_SRA_platform_id GetINSDCPlatform(BAMFile const *bam, char const name[]) {
-    if (name) {
-        BAMReadGroup const *rg;
-
-        BAMFileGetReadGroupByName(bam, name, &rg);
-        if (rg && rg->platform) {
-            switch (toupper(rg->platform[0])) {
-            case 'C':
-                if (platform_cmp(rg->platform, "COMPLETE GENOMICS"))
-                    return SRA_PLATFORM_COMPLETE_GENOMICS;
-                if (platform_cmp(rg->platform, "CAPILLARY"))
-                    return SRA_PLATFORM_SANGER;
-                break;
-            case 'H':
-                if (platform_cmp(rg->platform, "HELICOS"))
-                    return SRA_PLATFORM_HELICOS;
-                break;
-            case 'I':
-                if (platform_cmp(rg->platform, "ILLUMINA"))
-                    return SRA_PLATFORM_ILLUMINA;
-                if (platform_cmp(rg->platform, "IONTORRENT"))
-                    return SRA_PLATFORM_ION_TORRENT;
-                break;
-            case 'L':
-                if (platform_cmp(rg->platform, "LS454"))
-                    return SRA_PLATFORM_454;
-                break;
-            case 'P':
-                if (platform_cmp(rg->platform, "PACBIO"))
-                    return SRA_PLATFORM_PACBIO_SMRT;
-                break;
-            case 'S':
-                if (platform_cmp(rg->platform, "SOLID"))
-                    return SRA_PLATFORM_ABSOLID;
-                break;
-            default:
-                break;
-            }
-        }
-    }
-    return SRA_PLATFORM_UNDEFINED;
-}
-
-static
-rc_t CheckLimitAndLogError(void)
-{
-    ++G.errCount;
-    if (G.maxErrCount > 0 && G.errCount > G.maxErrCount) {
-        (void)PLOGERR(klogErr, (klogErr, RC(rcAlign, rcFile, rcReading, rcError, rcExcessive), "Number of errors $(cnt) exceeds limit of $(max): Exiting", "cnt=%u,max=%u", G.errCount, G.maxErrCount));
-        return RC(rcAlign, rcFile, rcReading, rcError, rcExcessive);
-    }
-    return 0;
-}
-
-static
-void RecordNoMatch(char const readName[], char const refName[], uint32_t const refPos)
-{
-    if (G.noMatchLog) {
-        static uint64_t lpos = 0;
-        char logbuf[256];
-        size_t len;
-        
-        if (string_printf(logbuf, sizeof(logbuf), &len, "%s\t%s\t%u\n", readName, refName, refPos) == 0) {
-            KFileWrite(G.noMatchLog, lpos, logbuf, len, NULL);
-            lpos += len;
-        }
-    }
-}
-
-static
-rc_t LogNoMatch(char const readName[], char const refName[], unsigned rpos, unsigned matches)
-{
-    rc_t const rc = CheckLimitAndLogError();
-    static unsigned count = 0;
-    
-    ++count;
-    if (rc) {
-        (void)PLOGMSG(klogInfo, (klogInfo, "This is the last warning; this class of warning occurred $(occurred) times",
-                                 "occurred=%u", count));
-        (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' contains too few ($(count)) matching bases to reference '$(ref)' at $(pos)",
-                                 "name=%s,ref=%s,pos=%u,count=%u", readName, refName, rpos, matches));
-    }
-    else if (G.maxWarnCount_NoMatch == 0 || count < G.maxWarnCount_NoMatch)
-        (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' contains too few ($(count)) matching bases to reference '$(ref)' at $(pos)",
-                                 "name=%s,ref=%s,pos=%u,count=%u", readName, refName, rpos, matches));
-    return rc;
-}
-
-static
-rc_t LogDupConflict(char const readName[])
-{
-    rc_t const rc = CheckLimitAndLogError();
-    static unsigned count = 0;
-    
-    ++count;
-    if (rc) {
-        (void)PLOGMSG(klogInfo, (klogInfo, "This is the last warning; this class of warning occurred $(occurred) times",
-                                 "occurred=%u", count));
-        (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                 "Spot '$(name)' is both a duplicate and NOT a duplicate!",
-                                 "name=%s", readName));
-    }
-    else if (G.maxWarnCount_DupConflict == 0 || count < G.maxWarnCount_DupConflict)
-        (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                 "Spot '$(name)' is both a duplicate and NOT a duplicate!",
-                                 "name=%s", readName));
-    return rc;
-}
-
-static rc_t ProcessBAM(char const bamFile[], context_t *ctx, VDatabase *db,
-                       Reference *ref, Sequence *seq, Alignment *align,
-                       bool *had_alignments, bool *had_sequences)
-{
-    const BAMFile *bam;
-    const BAMAlignment *rec;
-    KDataBuffer buf;
-    KDataBuffer fragBuf;
-    KDataBuffer cigBuf;
-    rc_t rc;
-    int32_t lastRefSeqId = -1;
-    size_t rsize;
-    uint64_t keyId = 0;
-    uint64_t reccount = 0;
-    SequenceRecord srec;
-    char spotGroup[512];
-    size_t namelen;
-    unsigned progress = 0;
-    unsigned warned = 0;
-    long     fcountBoth=0;
-    long     fcountOne=0;
-    int skipRefSeqID = -1;
-    uint64_t recordsProcessed = 0;
-    uint64_t filterFlagConflictRecords=0; /*** counts number of conflicts between flags 0x400 and 0x200 ***/
-#define MAX_WARNINGS_FLAG_CONFLICT 10000 /*** maximum errors to report ***/
-
-    bool isColorSpace = false;
-    bool isNotColorSpace = G.noColorSpace;
-    char alignGroup[32];
-    size_t alignGroupLen;
-    
-    rc = OpenBAM(&bam, db, bamFile);
-    if (rc) return rc;
-    if (!G.noVerifyReferences && ref != NULL) {
-        rc = VerifyReferences(bam, ref);
-        if (G.onlyVerifyReferences) {
-            BAMFileRelease(bam);
-            return rc;
-        }
-    }
-    if (ctx->key2id_max == 0) {
-        uint32_t rgcount;
-        unsigned rgi;
-        
-        BAMFileGetReadGroupCount(bam, &rgcount);
-        if (rgcount > (sizeof(ctx->key2id)/sizeof(ctx->key2id[0]) - 1))
-            ctx->key2id_max = 1;
-        else
-            ctx->key2id_max = sizeof(ctx->key2id)/sizeof(ctx->key2id[0]);
-        
-        for (rgi = 0; rgi != rgcount; ++rgi) {
-            BAMReadGroup const *rg;
-            
-            BAMFileGetReadGroup(bam, rgi, &rg);
-            if (rg && rg->platform && platform_cmp(rg->platform, "CAPILLARY")) {
-                G.hasTI = true;
-                break;
-            }
-        }
-    }
-    memset(&srec, 0, sizeof(srec));
-    
-    rc = KDataBufferMake(&cigBuf, 32, 0);
-    if (rc)
-        return rc;
-    
-    rc = KDataBufferMake(&fragBuf, 8, FRAG_CHUNK_SIZE);
-    if (rc)
-        return rc;
-    
-    rc = KDataBufferMake(&buf, (sizeof(int32_t) + sizeof(bool) * 2 + sizeof(char) * 2 + sizeof(uint8_t))*8, 0);
-    if (rc)
-        return rc;
-    
-    if (rc == 0) {
-        (void)PLOGMSG(klogInfo, (klogInfo, "Loading '$(file)'", "file=%s", bamFile));
-    }
-    while (rc == 0 && (rc = Quitting()) == 0) {
-        bool aligned;
-        AlignmentRecord data;
-        uint32_t readlen;
-        uint16_t flags;
-        int64_t rpos=0;
-        char *seqDNA;
-        const BAMRefSeq *refSeq;
-        ctx_value_t *value;
-        bool wasInserted;
-        int32_t refSeqId=-1;
-        uint8_t *qual;
-        bool mated;
-        const char *name;
-        char cskey = 0;
-        bool originally_aligned;
-        bool isPrimary;
-        uint32_t opCount;
-        bool hasCG;
-        uint64_t ti = 0;
-        uint32_t csSeqLen = 0;
-
-        rc = BAMFileRead(bam, &rec);
-        if (rc) {
-            if (GetRCModule(rc) == rcAlign && GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound)
-                rc = 0;
-            break;
-        }
-        if ((unsigned)(BAMFileGetProportionalPosition(bam) * 100.0) > progress) {
-            unsigned new_value = BAMFileGetProportionalPosition(bam) * 100.0;
-            KLoadProgressbar_Process(ctx->progress[0], new_value - progress, false);
-            progress = new_value;
-        }
-
-
-        /**************************************************************/
-        if (!G.noColorSpace) {
-            if (BAMAlignmentHasColorSpace(rec)) {/*BAM*/
-                if (isNotColorSpace) {
-                MIXED_BASE_AND_COLOR:
-                    rc = RC(rcApp, rcFile, rcReading, rcData, rcInconsistent);  
-                    (void)PLOGERR(klogErr, (klogErr, rc, "File '$(file)' contains base space and color space", "file=%s", bamFile));
-                    goto LOOP_END;
-                }
-                ctx->isColorSpace = isColorSpace = true;
-            }
-            else if (isColorSpace)
-                goto MIXED_BASE_AND_COLOR;
-            else
-                isNotColorSpace = true;
-        }
-        hasCG = BAMAlignmentHasCGData(rec);/*BAM*/
-        if (hasCG) {
-            BAMAlignmentGetCigarCount(rec, &opCount);/*BAM*/
-            rc = KDataBufferResize(&cigBuf, opCount * 2 + 5);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to resize CIGAR buffer");
-                goto LOOP_END;
-            }
-            
-            rc = KDataBufferResize(&buf, readlen = 35);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to resize record buffer");
-                goto LOOP_END;
-            }
-            
-            AlignmentRecordInit(&data, buf.base, readlen, &seqDNA);
-            qual = (uint8_t *)&seqDNA[readlen];
-        }
-        else {
-            uint32_t const *tmp;
-            
-            BAMAlignmentGetRawCigar(rec, &tmp, &opCount);/*BAM*/
-            rc = KDataBufferResize(&cigBuf, opCount);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to resize CIGAR buffer");
-                goto LOOP_END;
-            }
-            memcpy(cigBuf.base, tmp, opCount * sizeof(uint32_t));
-            
-            BAMAlignmentGetReadLength(rec, &readlen);/*BAM*/
-            if (isColorSpace) {
-                BAMAlignmentGetCSSeqLen(rec, &csSeqLen);
-                if (readlen != csSeqLen && readlen != 0) {
-                    rc = RC(rcAlign, rcRow, rcReading, rcData, rcInconsistent);
-                    (void)LOGERR(klogErr, rc, "Sequence length and CS Sequence length are not equal");
-                    goto LOOP_END;
-                }
-            }
-            else if (readlen == 0) {
-            }
-            rc = KDataBufferResize(&buf, readlen | csSeqLen);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to resize record buffer");
-                goto LOOP_END;
-            }
-            
-            AlignmentRecordInit(&data, buf.base, readlen | csSeqLen, &seqDNA);
-            qual = (uint8_t *)&seqDNA[readlen | csSeqLen];
-        }
-        BAMAlignmentGetSequence(rec, seqDNA);/*BAM*/
-        if (G.useQUAL) {
-            uint8_t const *squal;
-            
-            BAMAlignmentGetQuality(rec, &squal);/*BAM*/
-            memcpy(qual, squal, readlen);
-        }
-        else {
-            uint8_t const *squal;
-            uint8_t qoffset = 0;
-            unsigned i;
-            
-            rc = BAMAlignmentGetQuality2(rec, &squal, &qoffset);/*BAM*/
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "Spot '$(name)': length of original quality does not match sequence", "name=%s", name));
-                goto LOOP_END;
-            }
-            if (qoffset) {
-                for (i = 0; i != readlen; ++i)
-                    qual[i] = squal[i] - qoffset;
-            }
-            else
-                memcpy(qual, squal, readlen);
-        }
-        if (hasCG) {
-            rc = BAMAlignmentGetCGSeqQual(rec, seqDNA, qual);/*BAM*/
-            if (rc == 0)
-                rc = BAMAlignmentGetCGCigar(rec, cigBuf.base, cigBuf.elem_count, &opCount);/*BAM*/
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "Failed to read CG data");
-                goto LOOP_END;
-            }
-        }
-        if (G.hasTI) {
-            rc = BAMAlignmentGetTI(rec, &ti);/*BAM*/
-            if (rc)
-                ti = 0;
-            rc = 0;
-        }
-        data.data.align_group.buffer = alignGroup;
-        if (BAMAlignmentGetCGAlignGroup(rec, alignGroup, sizeof(alignGroup), &alignGroupLen) == 0)/*BAM*/
-            data.data.align_group.elements = alignGroupLen;
-        else
-            data.data.align_group.elements = 0;
-
-        AR_MAPQ(data) = GetMapQ(rec);
-        BAMAlignmentGetFlags(rec, &flags);/*BAM*/
-        BAMAlignmentGetReadName2(rec, &name, &namelen);/*BAM*/
-        {{
-            char const *rgname;
-
-            BAMAlignmentGetReadGroupName(rec, &rgname);/*BAM*/
-            if (rgname)
-                strcpy(spotGroup, rgname);
-            else
-                spotGroup[0] = '\0';
-        }}        
-        AR_REF_ORIENT(data) = (flags & BAMFlags_SelfIsReverse) == 0 ? false : true;/*BAM*/
-        isPrimary = (flags & BAMFlags_IsNotPrimary) == 0 ? true : false;/*BAM*/
-        if (G.noSecondary && !isPrimary)
-            goto LOOP_END;
-        originally_aligned = (flags & BAMFlags_SelfIsUnmapped) == 0;/*BAM*/
-        aligned = originally_aligned && (AR_MAPQ(data) >= G.minMapQual);
-        
-        if (aligned && align == NULL) {
-            rc = RC(rcApp, rcFile, rcReading, rcData, rcInconsistent);
-            (void)PLOGERR(klogErr, (klogErr, rc, "File '$(file)' contains aligned records", "file=%s", bamFile));
-            goto LOOP_END;
-        }
-        while (aligned) {
-            BAMAlignmentGetPosition(rec, &rpos);/*BAM*/
-            BAMAlignmentGetRefSeqId(rec, &refSeqId);/*BAM*/
-            if (rpos >= 0 && refSeqId >= 0) {
-                if (refSeqId == skipRefSeqID)
-                    goto LOOP_END;
-                if (refSeqId == lastRefSeqId)
-                    break;
-                refSeq = NULL;
-                BAMFileGetRefSeqById(bam, refSeqId, &refSeq);/*BAM*/
-                if (refSeq == NULL) {
-                    rc = RC(rcApp, rcFile, rcReading, rcData, rcInconsistent);
-                    (void)PLOGERR(klogWarn, (klogWarn, rc, "File '$(file)': Spot '$(name)' refers to an unknown Reference number $(refSeqId)", "file=%s,refSeqId=%i,name=%s", bamFile, (int)refSeqId, name));
-                    rc = CheckLimitAndLogError();
-                    goto LOOP_END;
-                }
-                else {
-                    if (G.refFilter && strcmp(G.refFilter, refSeq->name) != 0) {
-                        (void)PLOGMSG(klogInfo, (klogInfo, "Skipping Reference '$(name)'", "name=%s", refSeq->name));
-                        skipRefSeqID = refSeqId;
-                        goto LOOP_END;
-                    }
-                    
-                    rc = ReferenceSetFile(ref, refSeq->name, refSeq->length, refSeq->checksum);
-                    if (rc == 0) {
-                        lastRefSeqId = refSeqId;
-                        break;
-                    }
-                    if (GetRCObject(rc) == rcConstraint && GetRCState(rc) == rcViolated) {
-                        int const level = G.limit2config ? klogWarn : klogErr;
-                        
-                        (void)PLOGMSG(level, (level, "Could not find a Reference to match { name: '$(name)', length: $(rlen) }", "name=%s,rlen=%u", refSeq->name, (unsigned)refSeq->length));
-                    }
-                    else if (!G.limit2config)
-                        (void)PLOGERR(klogErr, (klogErr, rc, "File '$(file)': Spot '$(sname)' refers to an unknown Reference '$(rname)'", "file=%s,rname=%s,sname=%s", bamFile, refSeq->name, name));
-                    if (G.limit2config)
-                        rc = 0;
-                    goto LOOP_END;
-                }
-            }
-            else if (refSeqId < 0) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' was marked aligned, but reference id = $(id) is invalid", "name=%.*s,id=%i", namelen, name, refSeqId));
-                if ((rc = CheckLimitAndLogError()) != 0) goto LOOP_END;
-            }
-            else {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' was marked aligned, but reference position = $(pos) is invalid", "name=%.*s,pos=%i", namelen, name, rpos));
-                if ((rc = CheckLimitAndLogError()) != 0) goto LOOP_END;
-            }
-
-            aligned = false;
-        }
-        if (!aligned && (G.refFilter != NULL || G.limit2config))
-            goto LOOP_END;
-        
-        rc = GetKeyID(ctx, &keyId, &wasInserted, spotGroup, name, namelen);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "KBTreeEntry: failed on key '$(key)'", "key=%.*s", namelen, name));
-            goto LOOP_END;
-        }
-        rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "MMArrayGet: failed on id '$(id)'", "id=%u", keyId));
-            goto LOOP_END;
-        }
-        
-        AR_KEY(data) = keyId;
-        
-        mated = false;
-        if (flags & BAMFlags_WasPaired) {/*BAM*/
-            if ((flags & BAMFlags_IsFirst) != 0)/*BAM*/
-                AR_READNO(data) |= 1;
-            if ((flags & BAMFlags_IsSecond) != 0)/*BAM*/
-                AR_READNO(data) |= 2;
-            switch (AR_READNO(data)) {
-            case 1:
-            case 2:
-                mated = true;
-                break;
-            case 0:
-                if ((warned & 1) == 0) {
-                    (void)LOGMSG(klogWarn, "Spots without fragment info have been encountered");
-                    warned |= 1;
-                }
-                break;
-            case 3:
-                if ((warned & 2) == 0) {
-                    (void)LOGMSG(klogWarn, "Spots with more than two fragments have been encountered");
-                    warned |= 2;
-                }
-                break;
-            }
-        }
-        if (!mated)
-            AR_READNO(data) = 1;
-        
-        if (wasInserted) {
-            memset(value, 0, sizeof(*value));
-            value->unmated = !mated;
-            value->pcr_dup = (flags & BAMFlags_IsDuplicate) == 0 ? 0 : 1;/*BAM*/
-            value->platform = GetINSDCPlatform(bam, spotGroup);
-        }
-        else {
-            if (!G.acceptBadDups && value->pcr_dup != ((flags & BAMFlags_IsDuplicate) == 0 ? 0 : 1)) {/*BAM*/
-                rc = LogDupConflict(name);
-                goto LOOP_END; /* TODO: is this correct? */
-            }
-            value->pcr_dup &= (flags & BAMFlags_IsDuplicate) == 0 ? 0 : 1;/*BAM*/
-            if (mated && value->unmated) {
-                (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                         "Spot '$(name)', which was first seen without mate info, now has mate info",
-                                         "name=%s", name));
-                rc = CheckLimitAndLogError();
-                goto LOOP_END;
-            }
-            else if (!mated && !value->unmated) {
-                (void)PLOGERR(klogWarn, (klogWarn, RC(rcApp, rcFile, rcReading, rcData, rcInconsistent),
-                                         "Spot '$(name)', which was first seen with mate info, now has no mate info",
-                                         "name=%s", name));
-                rc = CheckLimitAndLogError();
-                goto LOOP_END;
-            }
-        }
-        
-        ++recordsProcessed;
-
-        if (isPrimary) {
-            switch (AR_READNO(data)) {
-            case 1:
-                if (CTX_VALUE_GET_P_ID(*value, 0) != 0)
-                    isPrimary = false;
-                else if (aligned && value->unaligned_1) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Read 1 of spot '$(name)', which was unmapped, is now being mapped at position $(pos) on reference '$(ref)'; this alignment will be considered as secondary", "name=%s,ref=%s,pos=%u", name, refSeq->name, rpos));
-                    isPrimary = false;
-                }
-                break;
-            case 2:
-                if (CTX_VALUE_GET_P_ID(*value, 1) != 0)
-                    isPrimary = false;
-                else if (aligned && value->unaligned_2) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Read 2 of spot '$(name)', which was unmapped, is now being mapped at position $(pos) on reference '$(ref)'; this alignment will be considered as secondary", "name=%s,ref=%s,pos=%u", name, refSeq->name, rpos));
-                    isPrimary = false;
-                }
-                break;
-            default:
-                break;
-            }
-        }
-        data.isPrimary = isPrimary;
-        if (aligned) {
-            uint32_t matches = 0;
-            
-            rc = ReferenceRead(ref, &data, rpos, cigBuf.base, opCount, seqDNA, readlen, &matches);
-            if (rc) {
-                aligned = false;
-                
-                if (   (GetRCState(rc) == rcViolated  && GetRCObject(rc) == rcConstraint)
-                    || (GetRCState(rc) == rcExcessive && GetRCObject(rc) == rcRange))
-                {
-                    RecordNoMatch(name, refSeq->name, rpos);
-                }
-                if (GetRCState(rc) == rcViolated && GetRCObject(rc) == rcConstraint) {
-                    rc = LogNoMatch(name, refSeq->name, (unsigned)rpos, (unsigned)matches);
-                }
-                else if (GetRCObject(rc) == rcData && GetRCState(rc) == rcInvalid) {
-                    (void)PLOGERR(klogWarn, (klogWarn, rc, "Spot '$(name)': bad alignment to reference '$(ref)' at $(pos)", "name=%s,ref=%s,pos=%u", name, refSeq->name, rpos));
-                    CheckLimitAndLogError();
-                }
-                else if (GetRCObject(rc) == rcData) {
-                    (void)PLOGERR(klogWarn, (klogWarn, rc, "Spot '$(name)': bad alignment to reference '$(ref)' at $(pos)", "name=%s,ref=%s,pos=%u", name, refSeq->name, rpos));
-                    rc = CheckLimitAndLogError();
-                }
-                else {
-                    (void)PLOGERR(klogWarn, (klogWarn, rc, "Spot '$(name)': error reading reference '$(ref)' at $(pos)", "name=%s,ref=%s,pos=%u", name, refSeq->name, rpos));
-                    rc = CheckLimitAndLogError();
-                }
-                if (rc) goto LOOP_END;
-            }
-        }
-        if (isColorSpace) {
-            /* must be after ReferenceRead */
-            BAMAlignmentGetCSKey(rec, &cskey);/*BAM*/
-            BAMAlignmentGetCSSequence(rec, seqDNA, csSeqLen);/*BAM*/
-            if (!aligned && !G.useQUAL) {
-                uint8_t const *squal;
-                uint8_t qoffset = 0;
-                
-                rc = BAMAlignmentGetCSQuality(rec, &squal, &qoffset);/*BAM*/
-                if (rc) {
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Spot '$(name)': length of colorspace quality does not match sequence", "name=%s", name));
-                    goto LOOP_END;
-                }
-                if (qoffset) {
-                    unsigned i;
-                    
-                    for (i = 0; i < csSeqLen; ++i)
-                        qual[i] = squal[i] - qoffset;
-                }
-                else
-                    memcpy(qual, squal, csSeqLen);
-                readlen = csSeqLen;
-            }
-        }
-        
-        if (aligned) {
-            if (G.editAlignedQual ) EditAlignedQualities  (qual, AR_HAS_MISMATCH(data), readlen);
-            if (G.keepMismatchQual) EditUnalignedQualities(qual, AR_HAS_MISMATCH(data), readlen);
-        }
-        else if (isPrimary) {
-            switch (AR_READNO(data)) {
-            case 1:
-                value->unaligned_1 = 1;
-                break;
-            case 2:
-                value->unaligned_2 = 1;
-                break;
-            default:
-                break;
-            }
-        }
-        if (isPrimary) {
-            switch (AR_READNO(data)) {
-            case 1:
-                if (CTX_VALUE_GET_P_ID(*value, 0) == 0 && aligned) {
-                    data.alignId = ++ctx->primaryId;
-                    CTX_VALUE_SET_P_ID(*value, 0, data.alignId);
-                }
-                break;
-            case 2:
-                if (CTX_VALUE_GET_P_ID(*value, 1) == 0 && aligned) {
-                    data.alignId = ++ctx->primaryId;
-                    CTX_VALUE_SET_P_ID(*value, 1, data.alignId);
-                }
-                break;
-            default:
-                break;
-            }
-        }
-        if (mated) {
-            if (isPrimary || !originally_aligned) {
-                if (CTX_VALUE_GET_S_ID(*value) != 0) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)' has already been assigned a spot id", "name=%.*s", namelen, name));
-                }
-                else if (!value->has_a_read) {
-                    /* new mated fragment - do spot assembly */
-                    unsigned sz;
-                    uint64_t    fragmentId;
-                    FragmentInfo fi;
-                    KMemBank *frags;
-                    int32_t mate_refSeqId = -1;
-                    int64_t pnext = 0;
-                    
-                    memset(&fi, 0, sizeof(fi));
-                    fi.aligned = aligned;
-                    fi.ti = ti;
-                    fi.orientation = AR_REF_ORIENT(data);
-                    fi.otherReadNo = AR_READNO(data);
-                    fi.sglen   = strlen(spotGroup);
-                    fi.readlen = readlen;
-                    fi.cskey = cskey;
-                    fi.is_bad = (flags & BAMFlags_IsLowQuality) != 0;/*BAM*/
-                    sz = sizeof(fi) + 2*fi.readlen + fi.sglen;
-                    if (align) {
-                        BAMAlignmentGetMateRefSeqId(rec, &mate_refSeqId);/*BAM*/
-                        BAMAlignmentGetMatePosition(rec, &pnext);/*BAM*/
-                    }
-                    if(align && mate_refSeqId == refSeqId && pnext > 0 && pnext!=rpos /*** weird case in some bams**/){ 
-                        frags = ctx->fragsBoth;
-                        rc = KMemBankAlloc(frags, &fragmentId, sz, 0);
-                        value->fragmentId = fragmentId*2;
-                        fcountBoth++;
-                    } else {
-                        frags = ctx->fragsOne;
-                        rc = KMemBankAlloc(frags, &fragmentId, sz, 0);
-                        value->fragmentId = fragmentId*2+1;
-                        fcountOne++;
-                    }
-                    if (rc) {
-                        (void)LOGERR(klogErr, rc, "KMemBankAlloc failed");
-                        goto LOOP_END;
-                    }
-                    /*printf("IN:%10d\tcnt2=%ld\tcnt1=%ld\n",value->fragmentId,fcountBoth,fcountOne);*/
-                    
-                    rc = KDataBufferResize(&fragBuf, sz);
-                    if (rc) {
-                        (void)LOGERR(klogErr, rc, "Failed to resize fragment buffer");
-                        goto LOOP_END;
-                    }
-                    {{
-                        uint8_t *dst = (uint8_t*) fragBuf.base;
-                        memcpy(dst,&fi,sizeof(fi));
-                        dst += sizeof(fi);
-                        COPY_READ((char *)dst, seqDNA, fi.readlen, (isColorSpace && !aligned) ? 0 : fi.orientation);
-                        dst += fi.readlen;
-                        COPY_QUAL(dst, qual, fi.readlen, (isColorSpace && !aligned) ? 0 : fi.orientation);
-                        dst += fi.readlen;
-                        memcpy(dst,spotGroup,fi.sglen);
-                    }}
-                    rc = KMemBankWrite(frags, fragmentId, 0, fragBuf.base, sz, &rsize);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankWrite failed writing fragment $(id)", "id=%u", fragmentId));
-                        goto LOOP_END;
-                    }
-                    value->has_a_read = 1;
-                }
-                else if (value->fragmentId != 0 ) {
-                    /* might be second fragment */
-                    uint64_t sz;
-                    FragmentInfo *fip;
-                    KMemBank *frags;
-                    
-                    if(value->fragmentId & 1) frags = ctx->fragsOne;
-                    else               frags = ctx->fragsBoth; 
-                    
-                    rc=KMemBankSize(frags, value->fragmentId>>1, &sz);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankSize failed on fragment $(id)", "id=%u", value->fragmentId>>1));
-                        goto LOOP_END;
-                    }
-                    rc=KDataBufferResize(&fragBuf, (size_t)sz);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "Failed to resize fragment buffer", ""));
-                        goto LOOP_END;
-                    }
-                    rc=KMemBankRead(frags, value->fragmentId>>1, 0, fragBuf.base, sz, &rsize);
-                    if (rc) {
-                        (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankRead failed on fragment $(id)", "id=%u", value->fragmentId>>1));
-                        goto LOOP_END;
-                    }
-                    
-                    assert( rsize == sz );
-                    fip = (FragmentInfo *) fragBuf.base;
-                    if(AR_READNO(data) != fip->otherReadNo) {
-                        /* mate found */
-                        unsigned readLen[2];
-                        unsigned read1 = 0;
-                        unsigned read2 = 1;
-                        uint8_t  *src  = (uint8_t*) fip + sizeof(*fip);
-                        
-                        if (AR_READNO(data) < fip->otherReadNo) {
-                            read1 = 1;
-                            read2 = 0;
-                        }
-                        readLen[read1] = fip->readlen;
-                        readLen[read2] = readlen;
-                        rc = SequenceRecordInit(&srec, 2, readLen);
-                        if (rc) {
-                            (void)PLOGERR(klogErr, (klogErr, rc, "Failed resizing sequence record buffer", ""));
-                            goto LOOP_END;
-                        }
-                        srec.ti[read1] = fip->ti;
-                        srec.aligned[read1] = fip->aligned;
-                        srec.is_bad[read1] = fip->is_bad;
-                        srec.orientation[read1] = fip->orientation;
-                        srec.cskey[read1] = fip->cskey;
-                        memcpy(srec.seq + srec.readStart[read1], src, fip->readlen);
-                        src += fip->readlen;
-                        memcpy(srec.qual + srec.readStart[read1], src, fip->readlen);
-                        src += fip->readlen;
-                        
-                        srec.orientation[read2] = AR_REF_ORIENT(data);
-                        COPY_READ(srec.seq + srec.readStart[read2], seqDNA, srec.readLen[read2], (isColorSpace && !aligned) ? 0 : srec.orientation[read2]);
-                        COPY_QUAL(srec.qual + srec.readStart[read2], qual, srec.readLen[read2],  (isColorSpace && !aligned) ? 0 : srec.orientation[read2]);
-
-                        srec.keyId = keyId;
-                        srec.is_bad[read2] = (flags & BAMFlags_IsLowQuality) != 0;
-                        srec.aligned[read2] = aligned;
-                        srec.cskey[read2] = cskey;
-                        srec.ti[read2] = ti;
-                        
-                        srec.spotGroup = spotGroup;
-                        srec.spotGroupLen = strlen(spotGroup);
-                        if (value->pcr_dup && (srec.is_bad[0] || srec.is_bad[1])) {
-                            filterFlagConflictRecords++;
-                            if(filterFlagConflictRecords < MAX_WARNINGS_FLAG_CONFLICT){
-                                (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)': both 0x400 and 0x200 flag bits set, only 0x400 will be saved", "name=%s", name));
-                            } else if(filterFlagConflictRecords == MAX_WARNINGS_FLAG_CONFLICT){
-                                (void)PLOGMSG(klogWarn, (klogWarn, "Last reported warning: Spot '$(name)': both 0x400 and 0x200 flag bits set, only 0x400 will be saved", "name=%s", name));
-                            }
-                        }
-                        rc = SequenceWriteRecord(seq, &srec, isColorSpace, value->pcr_dup, value->platform);
-                        if (rc) {
-                            (void)LOGERR(klogErr, rc, "SequenceWriteRecord failed");
-                            goto LOOP_END;
-                        }
-                        CTX_VALUE_SET_S_ID(*value, ++ctx->spotId);
-                        if(value->fragmentId & 1){
-                            fcountOne--;
-                        } else {
-                            fcountBoth--;
-                        }
-                        /*	printf("OUT:%9d\tcnt2=%ld\tcnt1=%ld\n",value->fragmentId,fcountBoth,fcountOne);*/
-                        rc = KMemBankFree(frags, value->fragmentId>>1);
-                        if (rc) {
-                            (void)PLOGERR(klogErr, (klogErr, rc, "KMemBankFree failed on fragment $(id)", "id=%u", value->fragmentId>>1));
-                            goto LOOP_END;
-                        }
-                        value->fragmentId = 0;
-                    }
-                }
-            }
-            if (!isPrimary && aligned) {
-                int32_t bam_mrid;
-                int64_t mpos;
-                int64_t mrid;
-                int64_t tlen;
-                
-                BAMAlignmentGetMatePosition(rec, &mpos);/*BAM*/
-                BAMAlignmentGetMateRefSeqId(rec, &bam_mrid);/*BAM*/
-                BAMAlignmentGetInsertSize(rec, &tlen);/*BAM*/
-                
-                if (mpos >= 0 && bam_mrid >= 0 && tlen != 0) {
-                    BAMRefSeq const *mref;/*BAM*/
-                    
-                    BAMFileGetRefSeq(bam, bam_mrid, &mref);/*BAM*/
-                    if (mref) {
-                        rc_t rc_temp = ReferenceGet1stRow(ref, &mrid, mref->name);
-                        if (rc_temp == 0) {
-                            data.mate_ref_pos = mpos;
-                            data.template_len = tlen;
-                            data.mate_ref_orientation = (flags & BAMFlags_MateIsReverse) ? 1 : 0;
-                        }
-                        else {
-                            (void)PLOGERR(klogWarn, (klogWarn, rc_temp, "Failed to get refID for $(name)", "name=%s", mref->name));
-                            mrid = 0;
-                        }
-                        data.mate_ref_id = mrid;
-                    }
-                }
-            }
-        }
-        else if (wasInserted & (isPrimary || !originally_aligned)) {
-            /* new unmated fragment - no spot assembly */
-            unsigned readLen[1];
-            
-            readLen[0] = readlen;
-            rc = SequenceRecordInit(&srec, 1, readLen);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "Failed resizing sequence record buffer", ""));
-                goto LOOP_END;
-            }
-            srec.ti[0] = ti;
-            srec.aligned[0] = aligned;
-            srec.is_bad[0] = (flags & BAMFlags_IsLowQuality) != 0;
-            srec.orientation[0] = AR_REF_ORIENT(data);
-            srec.cskey[0] = cskey;
-            COPY_READ(srec.seq  + srec.readStart[0], seqDNA, readlen, (isColorSpace && !aligned) ? 0 : srec.orientation[0]);
-            COPY_QUAL(srec.qual + srec.readStart[0], qual, readlen, (isColorSpace && !aligned) ? 0 : srec.orientation[0]);
-	     
-            srec.keyId = keyId;
-            
-            srec.spotGroup = spotGroup;
-            srec.spotGroupLen = strlen(spotGroup);
-            if (value->pcr_dup && srec.is_bad[0]) {
-                filterFlagConflictRecords++;
-                if (filterFlagConflictRecords < MAX_WARNINGS_FLAG_CONFLICT) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(name)': both 0x400 and 0x200 flag bits set, only 0x400 will be saved", "name=%s", name));
-                }
-                else if (filterFlagConflictRecords == MAX_WARNINGS_FLAG_CONFLICT) {
-                    (void)PLOGMSG(klogWarn, (klogWarn, "Last reported warning: Spot '$(name)': both 0x400 and 0x200 flag bits set, only 0x400 will be saved", "name=%s", name));
-		}
-            }
-            rc = SequenceWriteRecord(seq, &srec, isColorSpace, value->pcr_dup, value->platform);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "SequenceWriteRecord failed", ""));
-                goto LOOP_END;
-            }
-            CTX_VALUE_SET_S_ID(*value, ++ctx->spotId);
-            value->fragmentId = 0;
-        }
-        
-        if (aligned) {
-            if (value->alignmentCount[AR_READNO(data) - 1] < 254)
-                ++value->alignmentCount[AR_READNO(data) - 1];
-            ++ctx->alignCount;
-            
-            assert(keyId >> 32 < ctx->key2id_count);
-            assert((uint32_t)keyId < ctx->idCount[keyId >> 32]);
-            
-            rc = AlignmentWriteRecord(align, &data);
-            if (rc == 0) {
-                if (!isPrimary)
-                    data.alignId = ++ctx->secondId;
-                
-                rc = ReferenceAddAlignId(ref, data.alignId, isPrimary);
-                if (rc) {
-                    (void)PLOGERR(klogErr, (klogErr, rc, "ReferenceAddAlignId failed", ""));
-                }
-                else {
-                    *had_alignments = true;
-                }
-            }
-            else {
-                (void)PLOGERR(klogErr, (klogErr, rc, "AlignmentWriteRecord failed", ""));
-            }
-        }
-        /**************************************************************/
-        
-    LOOP_END:
-        BAMAlignmentRelease(rec);
-        ++reccount;
-        if (G.maxAlignCount > 0 && reccount >= G.maxAlignCount)
-            break;
-        if (rc == 0)
-            *had_sequences = true;
-    }
-    if (filterFlagConflictRecords > 0) {
-        (void)PLOGMSG(klogWarn, (klogWarn, "$(cnt1) out of $(cnt2) records contained warning : both 0x400 and 0x200 flag bits set, only 0x400 will be saved", "cnt1=%lu,cnt2=%lu", filterFlagConflictRecords,recordsProcessed));
-    }
-    if (rc == 0 && recordsProcessed == 0) {
-        (void)LOGMSG(klogWarn, (G.limit2config || G.refFilter != NULL) ? 
-                     "All records from the file were filtered out" :
-                     "The file contained no records that were processed.");
-        rc = RC(rcAlign, rcFile, rcReading, rcData, rcEmpty);
-    }
-    BAMFileRelease(bam);
-    KDataBufferWhack(&buf);
-    KDataBufferWhack(&fragBuf);
-    KDataBufferWhack(&srec.storage);
-    KDataBufferWhack(&cigBuf);
-    return rc;
-}
-
-static rc_t WriteSoloFragments(context_t *ctx, Sequence *seq)
-{
-    uint32_t i;
-    unsigned j;
-    uint32_t fcountOne  = 0;
-    uint32_t fcountBoth = 0;
-    uint64_t idCount = 0;
-    rc_t rc;
-    KDataBuffer fragBuf;
-    SequenceRecord srec;
-    
-    ++ctx->pass;
-    memset(&srec, 0, sizeof(srec));
-    
-    rc = KDataBufferMake(&fragBuf, 8, 0);
-    if (rc) {
-        (void)LOGERR(klogErr, rc, "KDataBufferMake failed");
-        return rc;
-    }
-    for (idCount = 0, j = 0; j < ctx->key2id_count; ++j) {
-        idCount += ctx->idCount[j];
-    }
-    KLoadProgressbar_Append(ctx->progress[ctx->pass - 1], idCount);
-    
-    for (idCount = 0, j = 0; j < ctx->key2id_count; ++j) {
-        for (i = 0; i != ctx->idCount[j]; ++i, ++idCount) {
-            uint64_t const keyId = ((uint64_t)j << 32) | i;
-            ctx_value_t *value;
-            size_t rsize;
-            uint64_t id;
-            uint64_t sz;
-            unsigned readLen[2];
-            unsigned read = 0;
-            FragmentInfo const *fip;
-            uint8_t const *src;
-            KMemBank *frags;
-            
-            rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-            if (rc)
-                break;
-            KLoadProgressbar_Process(ctx->progress[ctx->pass - 1], 1, false);
-            if (value->fragmentId == 0)
-                continue;
-            if (value->fragmentId & 1) {
-                frags = ctx->fragsOne;
-                fcountOne++;
-            }
-            else {
-                frags = ctx->fragsBoth; 
-                fcountBoth++;
-            }
-            id = value->fragmentId >> 1;
-            
-            rc = KMemBankSize(frags, id, &sz);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "KMemBankSize failed");
-                break;
-            }
-            rc = KDataBufferResize(&fragBuf, (size_t)sz);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "KDataBufferResize failed");
-                break;
-            }
-            rc = KMemBankRead(frags, id, 0, fragBuf.base, sz, &rsize);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "KMemBankRead failed");
-                break;
-            }
-            assert( rsize == sz );
-            fip = (FragmentInfo const *)fragBuf.base;
-            src = (uint8_t const *)&fip[1];
-            
-            readLen[0] = readLen[1] = 0;
-            if (!value->unmated && (   (fip->aligned && CTX_VALUE_GET_P_ID(*value, 0) == 0)
-                                    || (value->unaligned_2)))
-            {
-                read = 1;
-            }
-            
-            readLen[read] = fip->readlen;
-            rc = SequenceRecordInit(&srec, value->unmated ? 1 : 2, readLen);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "SequenceRecordInit failed");
-                break;
-            }
-            
-            srec.ti[read] = fip->ti;
-            srec.aligned[read] = fip->aligned;
-            srec.is_bad[read] = fip->is_bad;
-            srec.orientation[read] = fip->orientation;
-            srec.cskey[read] = fip->cskey;
-            memcpy(srec.seq + srec.readStart[read], src, srec.readLen[read]);
-            src += fip->readlen;
-            memcpy(srec.qual + srec.readStart[read], src, srec.readLen[read]);
-            src += fip->readlen;
-            srec.spotGroup = (char *)src;
-            srec.spotGroupLen = fip->sglen;
-            srec.keyId = keyId;
-            
-            rc = SequenceWriteRecord(seq, &srec, ctx->isColorSpace, value->pcr_dup, value->platform);
-            if (rc) {
-                (void)LOGERR(klogErr, rc, "SequenceWriteRecord failed");
-                break;
-            }
-            /*rc = KMemBankFree(frags, id);*/
-            CTX_VALUE_SET_S_ID(*value, ++ctx->spotId);
-        }
-    }
-    /*printf("DONE_SOLO:\tcnt2=%d\tcnt1=%d\n",fcountBoth,fcountOne);*/
-    KDataBufferWhack(&fragBuf);
-    KDataBufferWhack(&srec.storage);
-    return rc;
-}
-
-static rc_t SequenceUpdateAlignInfo(context_t *ctx, Sequence *seq)
-{
-    rc_t rc = 0;
-    uint64_t row;
-    const ctx_value_t *value;
-    uint64_t keyId;
-    
-    ++ctx->pass;
-    KLoadProgressbar_Append(ctx->progress[ctx->pass - 1], ctx->spotId + 1);
-    
-    for (row = 1; row <= ctx->spotId; ++row) {
-        rc = SequenceReadKey(seq, row, &keyId);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "Failed to get key for row $(row)", "row=%u", (unsigned)row));
-            break;
-        }
-        rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-        if (rc) {
-            (void)PLOGERR(klogErr, (klogErr, rc, "Failed to read info for row $(row), index $(idx)", "row=%u,idx=%u", (unsigned)row, (unsigned)keyId));
-            break;
-        }
-        if (row != CTX_VALUE_GET_S_ID(*value)) {
-            rc = RC(rcApp, rcTable, rcWriting, rcData, rcUnexpected);
-            (void)PLOGMSG(klogErr, (klogErr, "Unexpected spot id $(spotId) for row $(row), index $(idx)", "spotId=%u,row=%u,idx=%u", (unsigned)CTX_VALUE_GET_S_ID(*value), (unsigned)row, (unsigned)keyId));
-            break;
-        }
-        {{
-            int64_t primaryId[2];
-            uint64_t const spotId = CTX_VALUE_GET_S_ID(*value);
-            
-            primaryId[0] = CTX_VALUE_GET_P_ID(*value, 0);
-            primaryId[1] = CTX_VALUE_GET_P_ID(*value, 1);
-            
-            rc = SequenceUpdateAlignData(seq, row, value->unmated ? 1 : 2,
-                                         primaryId,
-                                         value->alignmentCount);
-        }}
-        if (rc) {
-            (void)LOGERR(klogErr, rc, "Failed updating Alignment data in sequence table");
-            break;
-        }
-        KLoadProgressbar_Process(ctx->progress[ctx->pass - 1], 1, false);
-    }
-    return rc;
-}
-
-static rc_t AlignmentUpdateSpotInfo(context_t *ctx, Alignment *align)
-{
-    rc_t rc;
-    uint64_t keyId;
-    
-    ++ctx->pass;
-
-    KLoadProgressbar_Append(ctx->progress[ctx->pass - 1], ctx->alignCount);
-
-    rc = AlignmentStartUpdatingSpotIds(align);
-    while (rc == 0 && (rc = Quitting()) == 0) {
-        ctx_value_t const *value;
-        
-        rc = AlignmentGetSpotKey(align, &keyId);
-        if (rc) {
-            if (GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound)
-                rc = 0;
-            break;
-        }
-        assert(keyId >> 32 < ctx->key2id_count);
-        assert((uint32_t)keyId < ctx->idCount[keyId >> 32]);
-        rc = MMArrayGet(ctx->id2value, (void **)&value, keyId);
-        if (rc == 0) {
-            int64_t const spotId = CTX_VALUE_GET_S_ID(*value);
-            
-            if (spotId == 0) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Spot '$(id)' was never assigned a spot id, probably has no primary alignments", "id=%lx", keyId));
-                /* (void)PLOGMSG(klogWarn, (klogWarn, "Spot #$(i): { $(s) }", "i=%lu,s=%s", keyId, Print_ctx_value_t(value))); */
-            }
-            rc = AlignmentWriteSpotId(align, spotId);
-        }
-        KLoadProgressbar_Process(ctx->progress[ctx->pass - 1], 1, false);
-    }
-    return rc;
-}
-
-static rc_t ArchiveBAM(VDBManager *mgr, VDatabase *db,
-                       unsigned bamFiles, char const *bamFile[],
-                       unsigned seqFiles, char const *seqFile[],
-                       bool *has_alignments)
-{
-    rc_t rc = 0;
-    rc_t rc2;
-    Reference ref;
-    Sequence seq;
-    Alignment *align;
-    context_t ctx;
-    bool has_sequences = false;
-    unsigned i;
-    
-    *has_alignments = false;
-    rc = ReferenceInit(&ref, mgr, db);
-    if (rc)
-        return rc;
-    
-    if (G.onlyVerifyReferences) {
-        for (i = 0; i < bamFiles && rc == 0; ++i) {
-            rc = ProcessBAM(bamFile[i], NULL, db, &ref, NULL, NULL, NULL, NULL);
-        }
-        ReferenceWhack(&ref, false);
-        return rc;
-    }
-    SequenceInit(&seq, db);
-    align = AlignmentMake(db);
-    
-    rc = SetupContext(&ctx, bamFiles + seqFiles);
-    if (rc)
-        return rc;
-    
-    ++ctx.pass;
-    for (i = 0; i < bamFiles && rc == 0; ++i) {
-        bool this_has_alignments = false;
-        bool this_has_sequences = false;
-        
-        rc = ProcessBAM(bamFile[i], &ctx, db, &ref, &seq, align, &this_has_alignments, &this_has_sequences);
-        *has_alignments |= this_has_alignments;
-        has_sequences |= this_has_sequences;
-    }
-    for (i = 0; i < seqFiles && rc == 0; ++i) {
-        bool this_has_alignments = false;
-        bool this_has_sequences = false;
-        
-        rc = ProcessBAM(seqFile[i], &ctx, db, &ref, &seq, align, &this_has_alignments, &this_has_sequences);
-        *has_alignments |= this_has_alignments;
-        has_sequences |= this_has_sequences;
-    }
-/*** No longer need memory for key2id ***/
-    for (i = 0; i != ctx.key2id_count; ++i) {
-        KBTreeDropBacking(ctx.key2id[i]);
-        KBTreeRelease(ctx.key2id[i]);
-        ctx.key2id[i] = NULL;
-    }
-    free(ctx.key2id_names);
-    ctx.key2id_names = NULL;
-/*******************/
-
-    if (has_sequences) {
-        if (rc == 0 && (rc = Quitting()) == 0) {
-            (void)LOGMSG(klogInfo, "Writing unpaired sequences");
-            rc = WriteSoloFragments(&ctx, &seq);
-            ContextReleaseMemBank(&ctx);
-            if (rc == 0) {
-                rc = SequenceDoneWriting(&seq);
-                if (rc == 0) {
-                    (void)LOGMSG(klogInfo, "Updating sequence alignment info");
-                    rc = SequenceUpdateAlignInfo(&ctx, &seq);
-                }
-            }
-        }
-    }
-    
-    if (*has_alignments && rc == 0 && (rc = Quitting()) == 0) {
-        (void)LOGMSG(klogInfo, "Writing alignment spot ids");
-        rc = AlignmentUpdateSpotInfo(&ctx, align);
-    }
-    rc2 = AlignmentWhack(align, *has_alignments && rc == 0 && (rc = Quitting()) == 0);
-    if (rc == 0)
-        rc = rc2;
-
-    rc2 = ReferenceWhack(&ref, *has_alignments && rc == 0 && (rc = Quitting()) == 0);
-    if (rc == 0)
-        rc = rc2;
-    
-    SequenceWhack(&seq, rc == 0);
-    
-    ContextRelease(&ctx);
-
-    if (rc == 0) {
-        (void)LOGMSG(klogInfo, "Successfully loaded all files");
-    }
-    return rc;
-}
-
-rc_t WriteLoaderSignature(KMetadata *meta, char const progName[])
-{
-    KMDataNode *node;
-    rc_t rc = KMetadataOpenNodeUpdate(meta, &node, "/");
-    
-    if (rc == 0) {
-        rc = KLoaderMeta_Write(node, progName, __DATE__, "BAM", KAppVersion());
-        KMDataNodeRelease(node);
-    }
-    if (rc) {
-        (void)LOGERR(klogErr, rc, "Cannot update loader meta");
-    }
-    return rc;
-}
-
-rc_t OpenPath(char const path[], KDirectory **dir)
-{
-    KDirectory *p;
-    rc_t rc = KDirectoryNativeDir(&p);
-    
-    if (rc == 0) {
-        rc = KDirectoryOpenDirUpdate(p, dir, false, path);
-        KDirectoryRelease(p);
-    }
-    return rc;
-}
-
-static
-rc_t ConvertDatabaseToUnmapped(VDatabase *db)
-{
-    VTable* tbl;
-    rc_t rc = VDatabaseOpenTableUpdate(db, &tbl, "SEQUENCE");
-    if (rc == 0) 
-    {
-        VTableRenameColumn(tbl, false, "CMP_ALTREAD", "ALTREAD");
-        VTableRenameColumn(tbl, false, "CMP_READ", "READ");
-        VTableRenameColumn(tbl, false, "CMP_ALTCSREAD", "ALTCSREAD");
-        VTableRenameColumn(tbl, false, "CMP_CSREAD", "CSREAD");
-        rc = VTableRelease(tbl);
-    }
-    return rc;
-}
-rc_t run(char const progName[],
-         unsigned bamFiles, char const *bamFile[],
-         unsigned seqFiles, char const *seqFile[])
-{
-    VDBManager *mgr;
-    rc_t rc;
-    rc_t rc2;
-    char const *db_type = G.expectUnsorted ? "NCBI:align:db:alignment_unsorted" : "NCBI:align:db:alignment_sorted";
-    
-    rc = VDBManagerMakeUpdate(&mgr, NULL);
-    if (rc) {
-        (void)LOGERR (klogErr, rc, "failed to create VDB Manager!");
-    }
-    else {
-        bool has_alignments = false;
-            
-        if (G.onlyVerifyReferences) {
-            rc = ArchiveBAM(mgr, NULL, bamFiles, bamFile, 0, NULL, &has_alignments);
-        }
-        else {
-            VSchema *schema;
-        
-            rc = VDBManagerMakeSchema(mgr, &schema);
-            if (rc) {
-                (void)LOGERR (klogErr, rc, "failed to create schema");
-            }
-            else {
-                (void)(rc = VSchemaAddIncludePath(schema, G.schemaIncludePath));
-                rc = VSchemaParseFile(schema, G.schemaPath);
-                if (rc) {
-                    (void)PLOGERR(klogErr, (klogErr, rc, "failed to parse schema file $(file)", "file=%s", G.schemaPath));
-                }
-                else {
-                    VDatabase *db;
-                    
-                    rc = VDBManagerCreateDB(mgr, &db, schema, db_type,
-                                            kcmInit + kcmMD5, G.outpath);
-                    rc2 = VSchemaRelease(schema);
-                    if (rc2)
-                        (void)LOGERR(klogWarn, rc2, "Failed to release schema");
-                    if (rc == 0)
-                        rc = rc2;
-                    if (rc == 0) {
-                        rc = ArchiveBAM(mgr, db, bamFiles, bamFile, seqFiles, seqFile, &has_alignments);
-                        if (rc == 0 && !has_alignments) {
-                            rc = ConvertDatabaseToUnmapped(db);
-                        }
-                        
-                        rc2 = VDatabaseRelease(db);
-                        if (rc2)
-                            (void)LOGERR(klogWarn, rc2, "Failed to close database");
-                        if (rc == 0)
-                            rc = rc2;
-                        
-                        if (rc == 0) {
-                            KMetadata *meta;
-                            KDBManager *kmgr;
-                            
-                            rc = VDBManagerOpenKDBManagerUpdate(mgr, &kmgr);
-                            if (rc == 0) {
-                                KDatabase *kdb;
-                                
-                                rc = KDBManagerOpenDBUpdate(kmgr, &kdb, G.outpath);
-                                if (rc == 0) {
-                                    rc = KDatabaseOpenMetadataUpdate(kdb, &meta);
-                                    KDatabaseRelease(kdb);
-                                }
-                                KDBManagerRelease(kmgr);
-                            }
-                            if (rc == 0) {
-                                rc = WriteLoaderSignature(meta, progName);
-                                KMetadataRelease(meta);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        rc2 = VDBManagerRelease(mgr);
-        if (rc2)
-            (void)LOGERR(klogWarn, rc2, "Failed to release VDB Manager");
-        if (rc == 0)
-            rc = rc2;
-    }
-    return rc;
-}
diff --git a/tools/bam-loader/loader-imp.h b/tools/bam-loader/loader-imp.h
deleted file mode 100644
index 6f524a7..0000000
--- a/tools/bam-loader/loader-imp.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-rc_t run(char const argv0[],
-         unsigned countAligned, char const *bamFile[],
-         unsigned countUnaligned, char const *unaligned[]);
diff --git a/tools/bam-loader/reference-writer.c b/tools/bam-loader/reference-writer.c
deleted file mode 100644
index dd1dc68..0000000
--- a/tools/bam-loader/reference-writer.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <kfs/file.h>
-
-#include <vdb/schema.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-
-#include <align/writer-refseq.h>
-
-#include "reference-writer.h"
-#include "Globals.h"
-
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <assert.h>
-#include <ctype.h>
-
-#define SORTED_OPEN_TABLE_LIMIT (2)
-#define SORTED_CACHE_SIZE ((2 * 1024 * 1024)/(SORTED_OPEN_TABLE_LIMIT))
-
-#ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
-#define UNSORTED_OPEN_TABLE_LIMIT (8)
-#define UNSORTED_CACHE_SIZE ((1024 * 1024 * 1024)/(UNSORTED_OPEN_TABLE_LIMIT))
-#else
-#define UNSORTED_OPEN_TABLE_LIMIT (64)
-#define UNSORTED_CACHE_SIZE (350 * 1024 * 1024)
-#endif
-
-#if _DEBUGGING
-#define DUMP_CONFIG 1
-#endif
-
-struct overlap_s {
-    uint32_t min; /* minimum start pos of any alignment that ends in this chunk */
-    uint32_t max; /* maximum end pos of any alignment that starts before this chunk and ends in this chunk */
-};
-
-extern void ReferenceMgr_DumpConfig(ReferenceMgr const *const self);
-
-rc_t ReferenceInit(Reference *self, const VDBManager *mgr, VDatabase *db)
-{
-    rc_t rc;
-    size_t const cache = G.expectUnsorted ? UNSORTED_CACHE_SIZE : SORTED_CACHE_SIZE;
-    unsigned const open_count = G.expectUnsorted ? UNSORTED_OPEN_TABLE_LIMIT : SORTED_OPEN_TABLE_LIMIT;
-    
-    memset(self, 0, sizeof(*self));
-    
-    self->coverage.elem_bits = self->mismatches.elem_bits = self->indels.elem_bits = 32;
-    self->pri_align.elem_bits = self->sec_align.elem_bits = 64;
-    self->pri_overlap.elem_bits = self->sec_overlap.elem_bits = sizeof(struct overlap_s) * 8;
-    
-    rc = ReferenceMgr_Make(&self->mgr, db, mgr, ewrefmgr_co_Coverage,
-                           G.refXRefPath, G.inpath,
-                           G.maxSeqLen, cache, open_count);
-    if (rc == 0) {
-        unsigned i;
-        
-        for (i = 0; G.refFiles[i]; ++i) {
-            rc = ReferenceMgr_FastaPath(self->mgr, G.refFiles[i]);
-            if (rc) {
-                (void)PLOGERR(klogWarn, (klogWarn, rc, "fasta file '$(file)'", "file=%s", G.refFiles[i]));
-                break;
-            }
-        }
-#if DUMP_CONFIG
-        if (rc == 0) {
-            ReferenceMgr_DumpConfig(self->mgr);
-        }
-#endif
-    }
-    return rc;
-}
-
-static
-void Unsorted(Reference *self) {
-    (void)LOGMSG(klogWarn, "Alignments are unsorted");
-    self->out_of_order = true;
-    ReferenceMgr_SetCache(self->mgr, UNSORTED_CACHE_SIZE, UNSORTED_OPEN_TABLE_LIMIT);
-    KDataBufferWhack(&self->sec_align);
-    KDataBufferWhack(&self->pri_align);
-    KDataBufferWhack(&self->mismatches);
-    KDataBufferWhack(&self->indels);
-    KDataBufferWhack(&self->coverage);
-    KDataBufferWhack(&self->pri_overlap);
-    KDataBufferWhack(&self->sec_overlap);
-}
-
-#define BAIL_ON_FAIL(STMT) do { rc_t const rc__ = (STMT); if (rc__) return rc__; } while(0)
-
-static rc_t FlushBuffers(Reference *self, uint64_t upto, bool full, bool final)
-{
-    if (!self->out_of_order && upto > 0) {
-        size_t offset = 0;
-        unsigned *const miss = (unsigned *)self->mismatches.base;
-        unsigned *const indel = (unsigned *)self->indels.base;
-        unsigned *const cov = (unsigned *)self->coverage.base;
-        struct overlap_s *const pri_overlap = (struct overlap_s *)self->pri_overlap.base;
-        struct overlap_s *const sec_overlap = (struct overlap_s *)self->sec_overlap.base;
-        unsigned chunk = 0;
-        
-        while ((self->curPos + offset + (full ? 0 : G.maxSeqLen)) <= upto) {
-            ReferenceSeqCoverage data;
-            uint64_t const curPos = self->curPos + offset;
-            unsigned const n = self->endPos > (curPos + G.maxSeqLen) ?
-                               G.maxSeqLen : (self->endPos - curPos);
-            unsigned const m = curPos + n > upto ? upto - curPos : n;
-            unsigned i;
-            unsigned hi;
-            unsigned lo;
-            
-            if (n == 0) break;
-            
-            memset(&data, 0, sizeof(data));
-            
-            data.ids[ewrefcov_primary_table].elements = self->pri_align.elem_count;
-            data.ids[ewrefcov_primary_table].buffer = self->pri_align.base;
-            data.overlap_ref_pos[ewrefcov_primary_table] = pri_overlap[chunk].min;
-            data.overlap_ref_len[ewrefcov_primary_table] = pri_overlap[chunk].max ? pri_overlap[chunk].max - curPos : 0;
-            
-            data.ids[ewrefcov_secondary_table].elements = self->sec_align.elem_count;
-            data.ids[ewrefcov_secondary_table].buffer = self->sec_align.base;
-            data.overlap_ref_pos[ewrefcov_secondary_table] = sec_overlap[chunk].min;
-            data.overlap_ref_len[ewrefcov_secondary_table] = sec_overlap[chunk].max ? sec_overlap[chunk].max - curPos : 0;
-            
-            for (hi = 0, lo = UINT_MAX, i = 0; i != m; ++i) {
-                unsigned const coverage = cov[offset + i];
-                
-                if (hi < coverage)
-                    hi = coverage;
-                if (lo > coverage)
-                    lo = coverage;
-            }
-            data.low  = lo > 255 ? 255 : lo;
-            data.high = hi > 255 ? 255 : hi;
-            
-            for (i = 0; i != m; ++i)
-                data.mismatches += miss[offset + i];
-
-            for (i = 0; i != m; ++i)
-                data.indels += indel[offset + i];
-            
-            {
-                rc_t rc = ReferenceSeq_AddCoverage(self->rseq, curPos, &data);
-                
-                if (rc) {
-                    Unsorted(self);
-                    return 0;
-                }
-            }
-            
-            KDataBufferResize(&self->pri_align, 0);
-            KDataBufferResize(&self->sec_align, 0);
-            offset += n;
-            ++chunk;
-        }
-        if (!final && offset > 0) {
-            unsigned const newChunkCount = self->pri_overlap.elem_count - chunk;
-            unsigned const newBaseCount = self->endPos - self->curPos - offset;
-            
-            memmove(self->pri_overlap.base, pri_overlap + chunk, newChunkCount * sizeof(pri_overlap[0]));
-            memmove(self->sec_overlap.base, sec_overlap + chunk, newChunkCount * sizeof(sec_overlap[0]));
-            memmove(self->mismatches.base, miss + offset, newBaseCount * sizeof(miss[0]));
-            memmove(self->indels.base, indel + offset, newBaseCount * sizeof(indel[0]));
-            memmove(self->coverage.base, cov + offset, newBaseCount * sizeof(cov[0]));
-
-            KDataBufferResize(&self->pri_overlap, newChunkCount);
-            KDataBufferResize(&self->sec_overlap, newChunkCount);
-            
-            self->curPos += offset;
-        }
-    }
-    return 0;
-}
-
-rc_t ReferenceSetFile(Reference *self, const char id[],
-                      uint64_t length, uint8_t const md5[16])
-{
-    const ReferenceSeq *rseq;
-    unsigned n;
-    
-    for (n = 0; ; ++n) {
-        if (self->last_id[n] != id[n])
-            break;
-        if (self->last_id[n] == 0 && id[n] == 0)
-            return 0;
-    }
-    while (id[n])
-        ++n;
-    if (n >= sizeof(self->last_id))
-        return RC(rcApp, rcTable, rcAccessing, rcParam, rcTooLong);
-    
-    BAIL_ON_FAIL(FlushBuffers(self, self->length, true, true));
-    BAIL_ON_FAIL(ReferenceMgr_GetSeq(self->mgr, &rseq, id));
-
-    if (self->rseq)
-        ReferenceSeq_Release(self->rseq);
-    self->rseq = rseq;
-    
-    memcpy(self->last_id, id, n + 1);
-    self->curPos = self->endPos = 0;
-    self->length = length;
-    self->lastOffset = 0;
-    KDataBufferResize(&self->pri_overlap, 0);
-    KDataBufferResize(&self->sec_overlap, 0);
-
-    if(!self->out_of_order) (void)PLOGMSG(klogInfo, (klogInfo, "Processing Reference '$(id)'", "id=%s", id));
-    
-    return 0;
-}
-
-rc_t ReferenceVerify(Reference const *self, char const id[], uint64_t length, uint8_t const md5[16])
-{
-    return ReferenceMgr_Verify(self->mgr, id, length, md5);
-}
-
-rc_t ReferenceGet1stRow(Reference const *self, int64_t *refID, char const refName[])
-{
-    const ReferenceSeq* rseq;
-    rc_t rc = ReferenceMgr_GetSeq(self->mgr, &rseq, refName);
-    if( rc == 0 ) {
-        rc = ReferenceSeq_Get1stRow(rseq, refID);
-        ReferenceSeq_Release(rseq);
-    }
-    return rc;
-}
-
-static
-rc_t ReferenceAddCoverage(Reference *const self,
-                          unsigned const refStart,
-                          unsigned const refLength,
-                          uint32_t const mismatches,
-                          uint32_t const indels,
-                          bool const isPrimary
-                          )
-{
-    unsigned const refEnd = refStart + refLength;
-    
-    if (refEnd > self->endPos) {
-        unsigned const t1 = refEnd + (G.maxSeqLen - 1);
-        unsigned const adjust = t1 % G.maxSeqLen;
-        unsigned const newEndPos = t1 - adjust;
-        unsigned const baseCount = self->endPos - self->curPos;
-        unsigned const newBaseCount = newEndPos - self->curPos;
-        
-        BAIL_ON_FAIL(KDataBufferResize(&self->coverage, newBaseCount));
-        BAIL_ON_FAIL(KDataBufferResize(&self->mismatches, newBaseCount));
-        BAIL_ON_FAIL(KDataBufferResize(&self->indels, newBaseCount));
-        
-        memset(&((unsigned *)self->coverage.base)[baseCount], 0, (newBaseCount - baseCount) * sizeof(unsigned));
-        memset(&((unsigned *)self->mismatches.base)[baseCount], 0, (newBaseCount - baseCount) * sizeof(unsigned));
-        memset(&((unsigned *)self->indels.base)[baseCount], 0, (newBaseCount - baseCount) * sizeof(unsigned));
-        self->endPos = newEndPos;
-    }
-    if ((refEnd - self->curPos) / G.maxSeqLen >= self->pri_overlap.elem_count) {
-        unsigned const chunks = (refEnd - self->curPos) / G.maxSeqLen + 1;
-        unsigned const end = self->pri_overlap.elem_count;
-        
-        BAIL_ON_FAIL(KDataBufferResize(&self->pri_overlap, chunks));
-        BAIL_ON_FAIL(KDataBufferResize(&self->sec_overlap, chunks));
-        
-        memset(&((struct overlap_s *)self->pri_overlap.base)[end], 0, (chunks - end) * sizeof(struct overlap_s));
-        memset(&((struct overlap_s *)self->sec_overlap.base)[end], 0, (chunks - end) * sizeof(struct overlap_s));
-    }
-    BAIL_ON_FAIL(FlushBuffers(self, refStart, false, false));
-    if (!self->out_of_order) {
-        unsigned const startBase = refStart - self->curPos;
-        unsigned const endChunk = (startBase + refLength) / G.maxSeqLen;
-        KDataBuffer *const overlapBuffer = isPrimary ? &self->pri_overlap : &self->sec_overlap;
-        unsigned *const cov = &((unsigned *)self->coverage.base)[startBase];
-        unsigned i;
-        
-        ((unsigned *)self->mismatches.base)[startBase] += mismatches;
-        ((unsigned *)self->indels.base)[startBase] += indels;
-        
-        if (((struct overlap_s *)overlapBuffer->base)[endChunk].min == 0 || 
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].min > refStart)
-        {
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].min = refStart;
-        }
-        if (endChunk != 0 &&
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].max < refStart + refLength)
-        {
-            ((struct overlap_s *)overlapBuffer->base)[endChunk].max = refStart + refLength;
-        }
-        
-        for (i = 0; i != refLength; ++i) {
-            if (cov[i] < UINT_MAX)
-                ++cov[i];
-        }
-    }
-    return 0;
-}
-
-static void GetCounts(AlignmentRecord const *data, unsigned const seqLen,
-                      unsigned *const nMatch,
-                      unsigned *const nMiss,
-                      unsigned *const nIndels)
-{
-    bool const *has_mismatch = data->data.has_mismatch.buffer;
-    bool const *has_offset = data->data.has_ref_offset.buffer;
-    int32_t const *ref_offset = data->data.ref_offset.buffer;
-    unsigned const n = data->data.ref_offset.elements;
-    unsigned const left_clip = (n != 0 && has_offset[0] && ref_offset[0] < 0) ? -ref_offset[0] : 0;
-    int right_edge;
-    unsigned nmis;
-    unsigned nmatch;
-    unsigned i;
-    unsigned j;
-    
-    for (right_edge = data->data.ref_len, i = 0; i != n; ++i)
-        right_edge -= ref_offset[i];
-    if (right_edge > seqLen)
-        right_edge = seqLen;
-    for (j = left_clip ? 1 : 0, i = left_clip, nmatch = nmis = 0; i < right_edge; ) {
-        if (has_offset[i]) {
-            int const offs = ref_offset[j++];
-            
-            if (offs < 0) {
-                i += (unsigned)(-offs);
-                continue;
-            }
-        }
-        if (has_mismatch[i])
-            ++nmis;
-        else
-            ++nmatch;
-        ++i;
-    }
-    *nMatch = nmatch;
-    *nMiss = nmis;
-    *nIndels = n - (left_clip ? 1 : 0);
-}
-
-rc_t ReferenceRead(Reference *self, AlignmentRecord *data, uint64_t const pos,
-                   uint32_t const rawCigar[], uint32_t const cigCount,
-                   char const seqDNA[], uint32_t const seqLen, uint32_t *matches)
-{
-    *matches = 0;
-    BAIL_ON_FAIL(ReferenceSeq_Compress(self->rseq, (G.acceptHardClip ? ewrefmgr_co_AcceptHardClip : 0) + ewrefmgr_cmp_Binary, pos,
-        seqDNA, seqLen, rawCigar, cigCount, 0, NULL, 0, 0, NULL, 0, &data->data));
-
-    if (!G.acceptNoMatch && data->data.ref_len == 0)
-        return RC(rcApp, rcFile, rcReading, rcConstraint, rcViolated);
-    
-    if (!self->out_of_order && pos < self->lastOffset) {
-        Unsorted(self);
-    }
-    if (self->out_of_order)
-        return 0;
-    else {
-        unsigned nmis;
-        unsigned nmatch;
-        unsigned indels;
-
-        self->lastOffset = data->data.effective_offset;
-        GetCounts(data, seqLen, &nmatch, &nmis, &indels);
-        *matches = nmatch;
-        
-        if (G.acceptNoMatch || nmatch >= G.minMatchCount)
-            return ReferenceAddCoverage(self, data->data.effective_offset,
-                                        data->data.ref_len, nmis, indels,
-                                        data->isPrimary);
-        else
-            return RC(rcApp, rcFile, rcReading, rcConstraint, rcViolated);
-    }
-}
-
-static rc_t IdVecAppend(KDataBuffer *vec, uint64_t id)
-{
-    uint64_t const end = vec->elem_count;
-    
-    BAIL_ON_FAIL(KDataBufferResize(vec, end + 1));
-    ((uint64_t *)vec->base)[end] = id;
-    return 0;
-}
-
-rc_t ReferenceAddAlignId(Reference *self,
-                         int64_t align_id,
-                         bool is_primary
-                         )
-{
-    if (self->out_of_order)
-        return 0;
-    return IdVecAppend(is_primary ? &self->pri_align : &self->sec_align, align_id);
-}
-
-rc_t ReferenceWhack(Reference *self, bool commit)
-{
-    rc_t rc = 0;
-    
-    if (self) {
-#if DUMP_CONFIG
-        if (self->mgr)
-            ReferenceMgr_DumpConfig(self->mgr);
-#endif
-        if (commit) {
-            rc = FlushBuffers(self, self->length, true, true);
-            if (rc != 0)
-                commit = false;
-        }
-        KDataBufferWhack(&self->sec_align);
-        KDataBufferWhack(&self->pri_align);
-        KDataBufferWhack(&self->mismatches);
-        KDataBufferWhack(&self->indels);
-        KDataBufferWhack(&self->coverage);
-        KDataBufferWhack(&self->pri_overlap);
-        KDataBufferWhack(&self->sec_overlap);
-        if (self->rseq)
-            rc = ReferenceSeq_Release(self->rseq);
-        if (self->out_of_order) {
-            (void)LOGMSG(klogInfo, "Starting coverage calculation");
-            rc = ReferenceMgr_Release(self->mgr, commit, NULL, true);
-        }
-        else {
-            rc = ReferenceMgr_Release(self->mgr, commit, NULL, false);
-        }
-    }
-    return rc;
-}
diff --git a/tools/bam-loader/reference-writer.h b/tools/bam-loader/reference-writer.h
deleted file mode 100644
index 67d57f4..0000000
--- a/tools/bam-loader/reference-writer.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_REFERENCE_WRITER_H_
-#define BAM_LOAD_REFERENCE_WRITER_H_ 1
-
-#include <vdb/manager.h>
-#include <vdb/database.h>
-#include <klib/data-buffer.h>
-
-#include <align/writer-reference.h>
-#include "alignment-writer.h"
-
-typedef struct s_reference {
-    const ReferenceMgr *mgr;
-    const ReferenceSeq *rseq;
-    int64_t lastRefId;
-    int32_t lastOffset;
-    unsigned curPos;
-    unsigned endPos;
-    unsigned length;
-    KDataBuffer coverage;
-    KDataBuffer mismatches;
-    KDataBuffer indels;
-    KDataBuffer pri_align;
-    KDataBuffer sec_align;
-    KDataBuffer pri_overlap;
-    KDataBuffer sec_overlap;
-    bool out_of_order;
-    char last_id[256];
-} Reference;
-
-rc_t ReferenceInit(Reference *self, const VDBManager *mgr, VDatabase *db);
-rc_t ReferenceSetFile(Reference *self, const char *id, uint64_t length, uint8_t const md5[16]);
-rc_t ReferenceVerify(Reference const *self, char const id[], uint64_t length, uint8_t const md5[16]);
-rc_t ReferenceGet1stRow(Reference const *self, int64_t *refID, char const refName[]);
-rc_t ReferenceAddAlignId(Reference *self,
-                         int64_t align_id,
-                         bool is_primary
-                         );
-rc_t ReferenceRead(Reference *self, AlignmentRecord *data, uint64_t pos,
-                   uint32_t const rawCigar[], uint32_t cigCount,
-                   char const seqDNA[], uint32_t seqLen, uint32_t *matches);
-rc_t ReferenceWhack(Reference *self, bool commit);
-
-#endif
diff --git a/tools/bam-loader/sequence-writer.c b/tools/bam-loader/sequence-writer.c
deleted file mode 100644
index ec0f22e..0000000
--- a/tools/bam-loader/sequence-writer.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <klib/rc.h>
-#include <klib/log.h>
-
-#include <vdb/database.h>
-
-#include <kdb/manager.h>
-
-#include <insdc/sra.h>
-#include <insdc/insdc.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <assert.h>
-#include <ctype.h>
-
-#include "Globals.h"
-#include <align/writer-sequence.h>
-#include "sequence-writer.h"
-
-/* MARK: Sequence Object */
-
-Sequence *SequenceInit(Sequence *self, VDatabase *db) {
-    memset(self, 0, sizeof(*self));
-    self->db = db;
-    VDatabaseAddRef(db);
-    return self;
-}
-
-rc_t SequenceWriteRecord(Sequence *self,
-                         SequenceRecord const *rec,
-                         bool color,
-                         bool isDup,
-                         INSDC_SRA_platform_id platform
-                         )
-{
-    rc_t rc = 0;
-    uint8_t nreads = rec->numreads;
-    unsigned i;
-    unsigned seqLen;
-    int64_t dummyRowId;
-    
-    uint8_t readInfo[4096];
-    void *h_readInfo = NULL;
-    
-    INSDC_coord_zero *readStart = (void *)readInfo;
-    INSDC_coord_len *readLen;
-    uint8_t *alcnt;
-    INSDC_SRA_xread_type *readType;
-    INSDC_SRA_read_filter *readFilter;
-    bool *mask = NULL;
-    size_t const elemSize = sizeof(alcnt[0]) + sizeof(readType[0])
-                          + sizeof(readStart[0]) + sizeof(readLen[0])
-                          + sizeof(readFilter[0]);
-    
-    TableWriterSeqData data;
-
-    for (i = seqLen = 0; i != nreads; ++i) {
-        seqLen += rec->readLen[i];
-    }
-    
-    if (nreads * elemSize + G.keepMismatchQual * seqLen * sizeof(mask[0]) > sizeof(readInfo))
-    {
-        h_readInfo = malloc(nreads * elemSize + G.keepMismatchQual * seqLen * sizeof(mask[0]));
-        if (h_readInfo == NULL)
-            return RC(rcAlign, rcTable, rcWriting, rcMemory, rcExhausted);
-        readStart = h_readInfo;
-    }
-    readLen = (INSDC_coord_len *)&readStart[nreads];
-    alcnt = (uint8_t *)&readLen[nreads];
-    readType = (INSDC_SRA_xread_type *)&alcnt[nreads];
-    readFilter = (INSDC_SRA_read_filter *)&readType[nreads];
-    
-    if (G.keepMismatchQual) {
-        mask = (bool *)&readFilter[nreads];
-        
-        for (i = 0; i != seqLen; ++i) {
-            mask[i] = (rec->qual[i] & 0x80) != 0;
-        }
-    }
-    
-    for (i = 0; i != nreads; ++i) {
-        alcnt[i] = rec->aligned[i] ? 1 : 0;
-        readLen[i] = rec->readLen[i];
-        readStart[i] = rec->readStart[i];
-        readType[i] = SRA_READ_TYPE_BIOLOGICAL | (rec->orientation[i] ?
-                                                  SRA_READ_TYPE_REVERSE:
-                                                  SRA_READ_TYPE_FORWARD
-                                                  );
-        readFilter[i] = isDup ? SRA_READ_FILTER_CRITERIA
-                      : rec->is_bad[i] ? SRA_READ_FILTER_REJECT : SRA_READ_FILTER_PASS;
-    }
-
-    memset(&data, 0, sizeof(data));
-    
-    data.sequence.buffer = rec->seq;
-    data.sequence.elements = seqLen;
-    
-    data.quality.buffer = rec->qual;
-    data.quality.elements = seqLen;
-    
-    if (G.keepMismatchQual) {
-        data.no_quantize_mask.buffer = mask;
-        data.no_quantize_mask.elements = seqLen;
-    }
-    
-    data.alignment_count.buffer = alcnt;
-    data.alignment_count.elements = nreads;
-    
-    data.nreads = nreads;
-    
-    data.read_type.buffer = readType;
-    data.read_type.elements = nreads;
-    
-    data.read_start.buffer = readStart;
-    data.read_start.elements = nreads;
-    
-    data.read_len.buffer = readLen;
-    data.read_len.elements = nreads;
-    
-    data.tmp_key_id = rec->keyId;
-    
-    data.spot_group.buffer = rec->spotGroup;
-    data.spot_group.elements = rec->spotGroupLen;
-    
-    data.cskey.buffer = rec->cskey;
-    data.cskey.elements = nreads;
-    
-    data.read_filter.buffer = readFilter;
-    data.read_filter.elements = nreads;
-    
-    data.platform.buffer = &platform;
-    data.platform.elements = 1;
-    
-    data.ti.buffer = rec->ti;
-    data.ti.elements = nreads;
-    
-    if (!G.no_real_output) {
-        if (self->tbl == NULL) {
-            int csoption = (color ? ewseq_co_ColorSpace : 0);
-
-	    if(G.hasTI) csoption |= ewseq_co_TI;
-            
-            rc = TableWriterSeq_Make(&self->tbl, self->db,
-                                     csoption | ewseq_co_NoLabelData | ewseq_co_SpotGroup, G.QualQuantizer);
-        }
-        if (rc == 0) {
-            rc = TableWriterSeq_Write(self->tbl, &data, &dummyRowId);
-        }
-    }
-    
-    if (h_readInfo)
-        free(h_readInfo);
-    
-    return rc;
-}
-
-rc_t SequenceDoneWriting(Sequence *self)
-{
-    return TableWriterSeq_TmpKeyStart(self->tbl);
-}
-
-rc_t SequenceReadKey(const Sequence *cself, int64_t row, uint64_t *keyId)
-{
-    return TableWriterSeq_TmpKey(cself->tbl, row, keyId);
-}
-
-rc_t SequenceUpdateAlignData(Sequence *self, int64_t rowId, unsigned nreads,
-                             int64_t const primeId[/* nreads */],
-                             uint8_t const algnCnt[/* nreads */])
-{
-    TableWriterData data[2];
-    
-    data[0].buffer = primeId; data[0].elements = nreads;
-    data[1].buffer = algnCnt; data[1].elements = nreads;
-    
-    return TableWriterSeq_WriteAlignmentData(self->tbl, rowId, &data[0], &data[1]);
-}
-
-void SequenceWhack(Sequence *self, bool commit) {
-    uint64_t dummyRows;
-    rc_t rc;
-    
-    VDatabaseRelease(self->db);
-    
-    if (self->tbl == NULL)
-        return;
-    
-    rc = TableWriterSeq_Whack(self->tbl, commit, &dummyRows);
-}
-
-/* MARK: SequenceRecord Object */
-static
-rc_t SequenceRecordResize(SequenceRecord *self,
-                          KDataBuffer *storage,
-                          unsigned numreads,
-                          unsigned seqLen)
-{
-    size_t sz;
-    rc_t rc;
-    
-    sz = seqLen * (sizeof(self->seq[0]) + sizeof(self->qual[0])) +
-         numreads * (sizeof(self->ti) +
-                     sizeof(self->readStart[0]) +
-                     sizeof(self->readLen[0]) +
-                     sizeof(self->aligned[0]) + 
-                     sizeof(self->orientation[0]) +
-                     sizeof(self->alignmentCount[0]) +
-                     sizeof(self->cskey[0])
-                     );
-    storage->elem_bits = 8;
-    rc = KDataBufferResize(storage, sz);
-    if (rc)
-        return rc;
-    self->numreads = numreads;
-    
-    self->ti = (uint64_t *)storage->base;
-    self->readStart = (uint32_t *)&self->ti[numreads];
-    self->readLen = (uint32_t *)&self->readStart[numreads];
-    self->aligned = (bool *)&self->readLen[numreads];
-    self->orientation = (uint8_t *)&self->aligned[numreads];
-    self->is_bad = (uint8_t *)&self->orientation[numreads];
-    self->alignmentCount = (uint8_t *)&self->is_bad[numreads];
-    self->cskey = (char *)&self->alignmentCount[numreads];
-    self->seq = (char *)&self->cskey[numreads];
-    self->qual = (uint8_t *)&self->seq[seqLen];
-
-    self->spotGroup = NULL;
-    self->spotGroupLen = 0;
-    
-    return 0;
-}
-
-rc_t SequenceRecordInit(SequenceRecord *self, unsigned numreads, unsigned readLen[])
-{
-    unsigned i;
-    unsigned seqlen = 0;
-    rc_t rc;
-    
-    for (i = 0; i != numreads; ++i) {
-        seqlen += readLen[i];
-    }
-    rc = SequenceRecordResize(self, &self->storage, numreads, seqlen);
-    if (rc)
-        return rc;
-    memset(self->storage.base, 0, KDataBufferBytes(&self->storage));
-    
-    for (seqlen = 0, i = 0; i != numreads; ++i) {
-        self->readLen[i] = readLen[i];
-        self->readStart[i] = seqlen;
-        seqlen += readLen[i];
-    }
-    self->numreads = numreads;
-    memset(self->cskey, 'T', numreads);
-    return 0;
-}
-
-rc_t SequenceRecordAppend(SequenceRecord *self,
-                          const SequenceRecord *other
-                          )
-{
-    /* save the locations of the original data */
-    unsigned const seq = (uint8_t const *)self->seq - (uint8_t const *)self->storage.base;
-    unsigned const qual = (uint8_t const *)self->qual - (uint8_t const *)self->storage.base;
-    unsigned const cskey = (uint8_t const *)self->cskey - (uint8_t const *)self->storage.base;
-    unsigned const alignmentCount = (uint8_t const *)self->alignmentCount - (uint8_t const *)self->storage.base;
-    unsigned const is_bad = (uint8_t const *)self->is_bad - (uint8_t const *)self->storage.base;
-    unsigned const orientation = (uint8_t const *)self->orientation - (uint8_t const *)self->storage.base;
-    unsigned const aligned = (uint8_t const *)self->aligned - (uint8_t const *)self->storage.base;
-    unsigned const ti = (uint8_t const *)self->ti - (uint8_t const *)self->storage.base;
-    unsigned const readLen = (uint8_t const *)self->readLen - (uint8_t const *)self->storage.base;
-    unsigned const readStart = (uint8_t const *)self->readStart - (uint8_t const *)self->storage.base;
-
-    rc_t rc;
-    unsigned seqlen;
-    unsigned otherSeqlen;
-    unsigned i;
-    unsigned numreads = self->numreads;
-    
-    for (seqlen = 0, i = 0; i != numreads; ++i) {
-        seqlen += self->readLen[i];
-    }
-    for (otherSeqlen = 0, i = 0; i != other->numreads; ++i) {
-        otherSeqlen += other->readLen[i];
-    }
-
-    rc = SequenceRecordResize(self, &self->storage, self->numreads + other->numreads, seqlen + otherSeqlen);
-    if (rc)
-        return rc;
-    /* this needs to be reverse order from assignment in Resize function
-     * these regions can overlap
-     */
-    memmove(self->qual,             &((uint8_t const *)self->storage.base)[qual],              seqlen);
-    memmove(self->seq,              &((uint8_t const *)self->storage.base)[seq],               seqlen);
-    memmove(self->cskey,            &((uint8_t const *)self->storage.base)[cskey],             numreads * sizeof(self->cskey[0]));
-    memmove(self->alignmentCount,   &((uint8_t const *)self->storage.base)[alignmentCount],    numreads * sizeof(self->alignmentCount[0]));
-    memmove(self->is_bad,           &((uint8_t const *)self->storage.base)[is_bad],            numreads * sizeof(self->is_bad[0]));
-    memmove(self->orientation,      &((uint8_t const *)self->storage.base)[orientation],       numreads * sizeof(self->orientation[0]));
-    memmove(self->aligned,          &((uint8_t const *)self->storage.base)[aligned],           numreads * sizeof(self->aligned[0]));
-    memmove(self->readLen,          &((uint8_t const *)self->storage.base)[readLen],           numreads * sizeof(self->readLen[0]));
-    memmove(self->ti,               &((uint8_t const *)self->storage.base)[ti],                numreads * sizeof(self->ti[0]));
-    
-    memcpy(&self->ti[numreads],             other->ti,              other->numreads * sizeof(self->ti[0]));
-    memcpy(&self->readLen[numreads],        other->readLen,         other->numreads * sizeof(self->readLen[0]));
-    memcpy(&self->aligned[numreads],        other->aligned,         other->numreads * sizeof(self->aligned[0]));
-    memcpy(&self->orientation[numreads],    other->orientation,     other->numreads * sizeof(self->orientation[0]));
-    memcpy(&self->is_bad[numreads],         other->is_bad,          other->numreads * sizeof(self->is_bad[0]));
-    memcpy(&self->alignmentCount[numreads], other->alignmentCount,  other->numreads * sizeof(self->alignmentCount[0]));
-    memcpy(&self->cskey[numreads],          other->cskey,           other->numreads * sizeof(self->cskey[0]));
-    memcpy(&self->seq[seqlen],              other->seq,             otherSeqlen);
-    memcpy(&self->qual[seqlen],             other->qual,            otherSeqlen);
-    
-    for (i = 0, seqlen = 0; i != self->numreads; ++i) {
-        self->readStart[i] = seqlen;
-        seqlen += self->readLen[i];
-    }
-    
-    return 0;
-}
diff --git a/tools/bam-loader/sequence-writer.h b/tools/bam-loader/sequence-writer.h
deleted file mode 100644
index ccd4071..0000000
--- a/tools/bam-loader/sequence-writer.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef BAM_LOAD_SEQUENCE_WRITER_H_
-#define BAM_LOAD_SEQUENCE_WRITER_H_ 1
-
-#include <vdb/manager.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-
-#include <klib/text.h>
-#include <klib/data-buffer.h>
-
-struct TableWriterSeq;
-
-typedef struct s_sequence_record {
-    char *seq;
-    uint8_t *qual;
-    uint32_t *readStart;
-    uint32_t *readLen;
-    uint8_t *orientation;
-    uint8_t *is_bad;
-    uint8_t *alignmentCount;
-    char *spotGroup;
-    bool *aligned;
-    char *cskey;
-    uint64_t *ti;
-    uint64_t keyId;
-    unsigned spotGroupLen;
-    KDataBuffer storage;
-    uint8_t numreads;
-} SequenceRecord;
-
-
-rc_t SequenceRecordInit(SequenceRecord *self,
-                        unsigned numreads, unsigned readLen[]);
-
-rc_t SequenceRecordAppend(SequenceRecord *self,
-                          const SequenceRecord *other);
-
-typedef struct s_sequence {
-    VDatabase *db;
-    struct TableWriterSeq const *tbl;
-} Sequence;
-
-Sequence *SequenceInit(Sequence *self, VDatabase *db);
-
-rc_t SequenceWriteRecord(Sequence *self, SequenceRecord const *rec,
-                         bool color, bool isDup, INSDC_SRA_platform_id platform);
-
-rc_t SequenceDoneWriting(Sequence *self);
-rc_t SequenceReadKey(const Sequence *self, int64_t row, uint64_t *key);
-rc_t SequenceUpdateAlignData(Sequence *self, int64_t row, unsigned nreads,
-                             const int64_t primeId[/* nreads */],
-                             const uint8_t alignCount[/* nreads */]);
-
-void SequenceWhack(Sequence *self, bool commit);
-
-
-#endif /* ndef BAM_LOAD_SEQUENCE_WRITER_H_ */
diff --git a/tools/cg-load/Makefile b/tools/cg-load/Makefile
deleted file mode 100644
index a84ba01..0000000
--- a/tools/cg-load/Makefile
+++ /dev/null
@@ -1,119 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/cg-load
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS =
-
-EXT_TOOLS = \
-	cg-load
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# cg-load
-#
-CGLOAD_SRC = \
-	file-version-factory \
-	file \
-	f1_3 \
-	f1_5 \
-	f2_0 \
-	f2_2 \
-	factory-reads \
-	factory-mappings \
-	factory-evidence-intervals \
-	factory-evidence-dnbs \
-	writer-seq \
-	writer-algn \
-	writer-evidence-intervals \
-	writer-evidence-dnbs \
-	cg-load
-
-CGLOAD_OBJ = \
-	$(addsuffix .$(OBJX),$(CGLOAD_SRC))
-
-CGLOAD_LIB = \
-	-lload \
-	-lkapp \
-	-lalign-writer \
-	-dwaxf \
-	-dwsraxf \
-	-dwvxf \
-	-lwvdb \
-	-lwkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lksrch \
-	-lkfg \
-	-lkfs \
-	-lklib \
-	-lkq \
-	-lkproc \
-	-lm
-
-$(BINDIR)/cg-load: $(CGLOAD_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(CGLOAD_LIB)
diff --git a/tools/cg-load/cg-load.c b/tools/cg-load/cg-load.c
deleted file mode 100644
index c73db05..0000000
--- a/tools/cg-load/cg-load.c
+++ /dev/null
@@ -1,1120 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <klib/container.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/status.h>
-#include <klib/rc.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <kfs/directory.h>
-#include <kfs/arc.h>
-#include <kfs/tar.h>
-#include <kfs/file.h>
-#include <kdb/manager.h>
-#include <kdb/meta.h>
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <kapp/loader-meta.h>
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <insdc/insdc.h>
-#include <align/writer-reference.h>
-#include <kapp/log-xml.h>
-
-#include "debug.h"
-#include "cg-load.vers.h"
-#include "file.h"
-#include "writer-seq.h"
-#include "writer-algn.h"
-#include "writer-evidence-intervals.h"
-
-#include <os-native.h>
-#include <sysalloc.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <limits.h>
-#include <assert.h>
-
-typedef struct SParam_struct
-{
-    const char* argv0;
-
-    KDirectory* input_dir;
-    const KDirectory *map_dir;
-    const KDirectory *asm_dir;
-    KDirectory* output_dir;
-
-    const char* map_path;
-    const char* asm_path;
-    const char* schema;
-    const char* refseqcfg;
-    const char* refseqpath;
-    const char* library;
-    char const** refFiles; /* NULL-terminated array pointing to argv */
-    /* mostly for debugging */
-    uint32_t refseq_chunk;
-    const char* out;
-    uint32_t force;
-    uint32_t force_refw;
-    uint32_t force_readw;
-    uint32_t no_read_ahead;
-    const char* qual_quant;
-    uint32_t no_spot_group;
-    uint32_t min_mapq;
-    uint32_t single_mate;
-    uint32_t cluster_size;
-} SParam;
-
-typedef struct DB_Handle_struct {
-    VDBManager* mgr;
-    VSchema* schema;
-    VDatabase* db;
-    const ReferenceMgr* rmgr;
-    const CGWriterSeq* wseq;
-    TReadsData* reads;
-    const CGWriterAlgn* walgn;
-    TMappingsData* mappings;
-    const CGWriterEvdInt* wev_int;
-    TEvidenceIntervalsData* ev_int;
-    const CGWriterEvdDnbs* wev_dnb;
-    TEvidenceDnbsData* ev_dnb;
-} DB_Handle;
-
-static
-rc_t DB_Init(const SParam* p, DB_Handle* h)
-{
-    rc_t rc;
-
-    if( (rc = VDBManagerMakeUpdate(&h->mgr, NULL)) != 0 ) {
-        LOGERR(klogErr, rc, "failed to create VDB Manager");
-
-    }
-    else if( (rc = VDBManagerMakeSchema(h->mgr, &h->schema)) != 0 ) {
-        LOGERR(klogErr, rc, "failed to create schema");
-
-    }
-    else if( (rc = VSchemaParseFile(h->schema, p->schema)) != 0 ) {
-        PLOGERR(klogErr, (klogErr, rc, "failed to parse schema file '$(schema)'", PLOG_S(schema), p->schema));
-
-    }
-    else if( (rc = VDBManagerCreateDB(h->mgr, &h->db, h->schema, "NCBI:align:db:alignment_evidence",
-                                        p->force ? kcmInit : kcmCreate, p->out)) != 0 ) {
-        PLOGERR(klogErr, (klogErr, rc, "failed to create database at '$(path)'", PLOG_S(path), p->out));
-
-    }
-    else if( (rc = ReferenceMgr_Make(&h->rmgr, h->db, h->mgr, (p->force_refw ? ewrefmgr_co_allREADs : 0),
-                        p->refseqcfg, p->refseqpath, p->refseq_chunk, 350 * 1024 * 1024, 0)) != 0 ) {
-        LOGERR(klogErr, rc, "failed to create reference manager");
-
-    }
-    else if( (rc = CGWriterAlgn_Make(&h->walgn, &h->mappings, h->db, h->rmgr, p->min_mapq, p->single_mate, p->cluster_size)) != 0 ) {
-        LOGERR(klogErr, rc, "failed to create alignment writer");
-
-    }
-    else if( (rc = CGWriterSeq_Make(&h->wseq, &h->reads, h->db, (p->force_readw ? ewseq_co_SaveRead : 0) |
-                                      (p->no_spot_group ? 0 : ewseq_co_SpotGroup), p->qual_quant)) != 0 ) {
-        LOGERR(klogErr, rc, "failed to create sequence writer");
-
-    } else if( p->asm_path && (rc = CGWriterEvdInt_Make(&h->wev_int, &h->ev_int, h->db, h->rmgr, 0)) != 0 ) {
-        LOGERR(klogErr, rc, "failed to create evidence intervals writer");
-
-    } else if( p->asm_path && (rc = CGWriterEvdDnbs_Make(&h->wev_dnb, &h->ev_dnb, h->db, h->rmgr, 0)) != 0 ) {
-        LOGERR(klogErr, rc, "failed to create evidence dnbs writer");
-    } else {
-        const char** r = p->refFiles;
-        while( rc == 0 && *r != NULL ) {
-            if( (rc = ReferenceMgr_FastaPath(h->rmgr, *r++)) != 0 ) {
-                PLOGERR(klogInfo, (klogInfo, rc, "fasta file '$(file)'", "file=%s", r[-1]));
-            }
-        }
-    }
-    return rc;
-}
-
-static
-rc_t DB_Fini(const SParam* p, DB_Handle* h, bool drop)
-{
-    rc_t rc = 0, rc2;
-
-    /* THIS FUNCTION MAKES NO ATTEMPT TO PRESERVE INITIAL ERROR CODES
-       EACH SUCCESSIVE ERROR OVERWRITES THE PREVIOUS CODE */
-    if( h != NULL ) {
-        PLOGMSG(klogInfo, (klogInfo, "Fini SEQUENCE", "severity=status"));
-        if( (rc2 = CGWriterSeq_Whack(h->wseq, !drop, NULL)) != 0 && !drop ) {
-            drop = true;
-            rc = rc2;
-        }
-        h->wseq = NULL;
-        h->reads = NULL;
-        PLOGMSG(klogInfo, (klogInfo, "Fini (PRI&SEC)_ALIGNMENT", "severity=status"));
-        if( (rc2 = CGWriterAlgn_Whack(h->walgn, !drop, NULL, NULL)) != 0 && !drop ) {
-            drop = true;
-            rc = rc2;
-        }
-        h->walgn = NULL;
-        h->mappings = NULL;
-        PLOGMSG(klogInfo, (klogInfo, "Fini EVIDENCE_INTERVAL", "severity=status"));
-        if( (rc2 = CGWriterEvdInt_Whack(h->wev_int, !drop, NULL)) != 0 && !drop ) {
-            drop = true;
-            rc = rc2;
-        }
-        h->wev_int = NULL;
-        h->ev_int = NULL;
-        PLOGMSG(klogInfo, (klogInfo, "Fini EVIDENCE_ALIGNMENT", "severity=status"));
-        if( (rc2 = CGWriterEvdDnbs_Whack(h->wev_dnb, !drop, NULL)) != 0 && !drop ) {
-            drop = true;
-            rc = rc2;
-        }
-        h->wev_dnb = NULL;
-        h->ev_dnb = NULL;
-        PLOGMSG(klogInfo, (klogInfo, "Fini calculating reference coverage", "severity=status"));
-        if( (rc2 = ReferenceMgr_Release(h->rmgr, !drop, NULL, drop ? false : true)) != 0 && !drop ) {
-            drop = true;
-            rc = rc2;
-	    LOGERR(klogErr, rc, "Failed calculating reference coverage");
-        }
-        h->rmgr = NULL;
-        if( rc == 0 )
-        {
-            KMetadata* meta;
-            if( (rc = VDatabaseOpenMetadataUpdate(h->db, &meta)) == 0 ) {
-                KMDataNode *node;
-                if( (rc = KMetadataOpenNodeUpdate(meta, &node, "/")) == 0 ) {
-                    if( (rc = KLoaderMeta_Write(node, p->argv0, __DATE__, "Complete Genomics", KAppVersion())) != 0 ) {
-                        LOGERR(klogErr, rc, "Cannot update loader meta");
-                    }
-                    KMDataNodeRelease(node);
-                }
-                KMetadataRelease(meta);
-            }
-        }
-        PLOGMSG(klogInfo, (klogInfo, "Fini VDatabaseRelease", "severity=status"));
-        VDatabaseRelease(h->db);
-        h->db = NULL;
-        VSchemaRelease(h->schema);
-        h->schema = NULL;
-        if( drop || rc != 0 ) {
-            rc2 = VDBManagerDrop(h->mgr, kptDatabase, p->out);
-            if( GetRCState(rc2) == rcNotFound ) {
-                /* WHAT WOULD BE THE POINT OF RESETTING "rc" TO ZERO? */
-                rc = 0;
-            } else if( rc2 != 0 ) {
-                if ( rc == 0 )
-                    rc = rc2;
-                PLOGERR(klogErr, (klogErr, rc2, "cannot drop db at '$(path)'", PLOG_S(path), p->out));
-            }
-        }
-        VDBManagerRelease(h->mgr);
-        h->mgr = NULL;
-    }
-    return rc;
-}
-
-typedef struct FGroupKey_struct {
-    CG_EFileType type;
-    const CGFIELD_ASSEMBLY_ID_TYPE* assembly_id;
-    union {
-        struct {
-            const CGFIELD_SLIDE_TYPE* slide;
-            const CGFIELD_LANE_TYPE* lane;
-            const CGFIELD_BATCH_FILE_NUMBER_TYPE* batch_file_number;
-        } map;
-        struct {
-            const CGFIELD_SAMPLE_TYPE* sample;
-            const CGFIELD_CHROMOSOME_TYPE* chromosome;
-        } asmb;
-    } u;
-} FGroupKey;
-
-static
-rc_t CC FGroupKey_Make(FGroupKey* key, const CGLoaderFile* file, const SParam* param)
-{
-    rc_t rc = 0;
-    CG_EFileType ftype;
-
-    if( (rc = CGLoaderFile_GetType(file, &ftype)) == 0 ) {
-        switch(ftype) {
-            case cg_eFileType_READS:
-            case cg_eFileType_MAPPINGS:
-                key->type = cg_eFileType_READS;
-                if( (rc = CGLoaderFile_GetAssemblyId(file, &key->assembly_id)) == 0 &&
-                    (rc = CGLoaderFile_GetSlide(file, &key->u.map.slide)) == 0 &&
-                    (rc = CGLoaderFile_GetLane(file, &key->u.map.lane)) == 0 ) {
-                    rc = CGLoaderFile_GetBatchFileNumber(file, &key->u.map.batch_file_number);
-                }
-                break;
-            case cg_eFileType_EVIDENCE_INTERVALS:
-            case cg_eFileType_EVIDENCE_DNBS:
-                if( param->asm_path != NULL ) {
-                    /* do not pick up ASM files if not requested */
-                    key->type = cg_eFileType_EVIDENCE_INTERVALS;
-                    if( (rc = CGLoaderFile_GetAssemblyId(file, &key->assembly_id)) == 0 &&
-                        (rc = CGLoaderFile_GetSample(file, &key->u.asmb.sample)) == 0 ) {
-                        rc = CGLoaderFile_GetChromosome(file, &key->u.asmb.chromosome);
-                    }
-                    break;
-                }
-            default:
-                rc = RC(rcExe, rcQueue, rcInserting, rcItem, rcIgnored);
-                break;
-        }
-    }
-    return rc;
-}
-static
-rc_t CC FGroupKey_Validate(const FGroupKey* key)
-{
-    rc_t rc = 0;
-    DEBUG_MSG(5, ("KEY: "));
-    switch( key->type ) {
-        case cg_eFileType_READS:
-            DEBUG_MSG(5, ("%s:%s:%s:%04u", key->assembly_id, key->u.map.slide, key->u.map.lane, key->u.map.batch_file_number));
-            if( !key->assembly_id || !key->u.map.slide || !key->u.map.lane || !key->u.map.batch_file_number ) {
-                rc = RC(rcExe, rcQueue, rcValidating, rcId, rcIncomplete);
-            }
-            break;
-        case cg_eFileType_EVIDENCE_INTERVALS:
-            DEBUG_MSG(5, ("%s:%s:%s", key->assembly_id, key->u.asmb.sample, key->u.asmb.chromosome));
-            if( !key->assembly_id || !key->u.asmb.sample || !key->u.asmb.chromosome ) {
-                rc = RC(rcExe, rcQueue, rcValidating, rcId, rcIncomplete);
-            }
-            break;
-        default:
-            DEBUG_MSG(5, ("CORRUPT!!"));
-            rc = RC(rcExe, rcQueue, rcValidating, rcId, rcWrongType);
-            break;
-    }
-    return rc;
-}
-
-typedef struct FGroupMAP_struct {
-    BSTNode dad;
-    FGroupKey key;
-    const CGLoaderFile* seq;
-    const CGLoaderFile* align;
-} FGroupMAP;
-
-static
-void FGroupMAP_CloseFiles(FGroupMAP *g)
-{
-    CGLoaderFile_Close(g->seq);
-    CGLoaderFile_Close(g->align);
-}
-
-static
-void CC FGroupMAP_Whack( BSTNode *node, void *data )
-{
-    FGroupMAP* n = (FGroupMAP*)node;
-    CGLoaderFile_Release(n->seq, false);
-    CGLoaderFile_Release(n->align, false);
-    free(node);
-}
-
-static
-int CC FGroupMAP_Cmp( const void *item, const BSTNode *node )
-{
-    const FGroupKey* i = (const FGroupKey*)item;
-    const FGroupMAP* n = (const FGroupMAP*)node;
-
-    int r = strcmp(i->assembly_id, n->key.assembly_id);
-    if( r == 0 ) {
-        if( i->type == n->key.type ) {
-            switch( i->type ) {
-                case cg_eFileType_READS:
-                    if( (r = strcmp(i->u.map.slide, n->key.u.map.slide)) == 0 ) {
-                        if( (r = strcmp(i->u.map.lane, n->key.u.map.lane)) == 0 ) {
-                            r = *(i->u.map.batch_file_number) - *(n->key.u.map.batch_file_number);
-                        }
-                    }
-                    break;
-                case cg_eFileType_EVIDENCE_INTERVALS:
-                    if( (r = strcmp(i->u.asmb.sample, n->key.u.asmb.sample)) == 0 ) {
-                        r = strcmp(i->u.asmb.chromosome, n->key.u.asmb.chromosome);
-                    }
-                    break;
-                default:
-                    r = -1;
-                    break;
-            }
-        } else {
-            r = -1;
-        }
-    }
-    return r;
-}
-
-static
-int CC FGroupMAP_Sort( const BSTNode *item, const BSTNode *n )
-{
-    return FGroupMAP_Cmp(&((const FGroupMAP*)item)->key, n);
-}
-
-typedef struct FGroupMAP_FindData_struct {
-    FGroupKey key;
-    int64_t rowid;
-} FGroupMAP_FindData;
-
-static
-bool CC FGroupMAP_FindRowId( BSTNode *node, void *data )
-{
-    FGroupMAP_FindData* d = (FGroupMAP_FindData*)data;
-    const FGroupMAP* n = (const FGroupMAP*)node;
-
-    if( FGroupMAP_Cmp(&d->key, node) == 0 ) {
-        if( CGLoaderFile_GetStartRow(n->seq, &d->rowid) == 0 ) {
-            return true;
-        }
-    }
-    return false;
-}
-
-static
-rc_t CC FGroupMAP_Set(FGroupMAP* g, const CGLoaderFile* file)
-{
-    rc_t rc = 0;
-    CG_EFileType ftype;
-
-    if( (rc = CGLoaderFile_GetType(file, &ftype)) == 0 ) {
-        if( g->key.type == cg_eFileType_READS ) {
-            if( ftype == cg_eFileType_READS ) {
-                if( g->seq == NULL ) {
-                    g->seq = file;
-                } else {
-                    rc = RC(rcExe, rcQueue, rcInserting, rcItem, rcDuplicate);
-                }
-            } else if( ftype == cg_eFileType_MAPPINGS ) {
-                if( g->align == NULL ) {
-                    g->align = file;
-                } else {
-                    rc = RC(rcExe, rcQueue, rcInserting, rcItem, rcDuplicate);
-                }
-            } else {
-                rc = RC(rcExe, rcQueue, rcInserting, rcItem, rcWrongType);
-            }
-        } else if( g->key.type == cg_eFileType_EVIDENCE_INTERVALS ) {
-            if( ftype == cg_eFileType_EVIDENCE_INTERVALS ) {
-                if( g->seq != NULL ) {
-                    rc = RC(rcExe, rcQueue, rcInserting, rcItem, rcDuplicate);
-                } else {
-                    g->seq = file;
-                }
-            } else if( ftype == cg_eFileType_EVIDENCE_DNBS ) {
-                if( g->align == NULL ) {
-                    g->align = file;
-                } else {
-                    rc = RC(rcExe, rcQueue, rcInserting, rcItem, rcDuplicate);
-                }
-            } else {
-                rc = RC(rcExe, rcQueue, rcInserting, rcItem, rcWrongType);
-            }
-        } else {
-            rc = RC(rcExe, rcQueue, rcInserting, rcType, rcUnexpected);
-        }
-    }
-    return rc;
-}
-
-static
-void CC FGroupMAP_Validate( BSTNode *n, void *data )
-{
-    const FGroupMAP* g = (const FGroupMAP*)n;
-    rc_t rc = 0, *rc_out = (rc_t*)data;
-    const char* rnm = NULL, *mnm = NULL;
-
-    rc = FGroupKey_Validate(&g->key);
-    if( g->seq != NULL ) {
-        CGLoaderFile_Filename(g->seq, &rnm);
-        rnm = rnm ? strrchr(rnm, '/') : rnm;
-        DEBUG_MSG(5, (" READS(%s)", rnm));
-    }
-    if( g->align ) {
-        CGLoaderFile_Filename(g->align, &mnm);
-        mnm = mnm ? strrchr(mnm, '/') : mnm;
-        DEBUG_MSG(5, (" MAPPINGS(%s)", mnm));
-    }
-    DEBUG_MSG(5, ("\n"));
-    if( rc == 0 && g->seq == NULL ) {
-        rc = RC(rcExe, rcQueue, rcValidating, rcItem, rcIncomplete);
-    }
-
-    /* THIS USED TO WIPE OUT THE "rc" ON EACH ENTRY */
-    if( rc != 0)  {
-        PLOGERR(klogErr, (klogErr, rc,  "file pair $(f1)[mandatory], $(f2)[optional]", PLOG_2(PLOG_S(f1),PLOG_S(f2)), rnm, mnm));
-        if ( * rc_out == 0 )
-            *rc_out = rc;
-#if 0
-    } else {
-        *rc_out = RC(0, 0, 0, 0, 0);
-#endif
-    }
-}
-
-typedef struct DirVisit_Data_Struct {
-    const SParam* param;
-    BSTree* tree;
-    const KDirectory* dir;
-} DirVisit_Data;
-
-/* you cannot addref to this dir object cause it's created on stack silently */
-static
-rc_t CC DirVisitor(const KDirectory *dir, uint32_t type, const char *name, void *data)
-{
-    rc_t rc = 0;
-    DirVisit_Data* d = (DirVisit_Data*)data;
-
-    if( (type & ~kptAlias) == kptFile ) {
-        if (strcmp(&name[strlen(name) - 4], ".tsv") == 0 ||
-            strcmp(&name[strlen(name) - 8], ".tsv.bz2") == 0 ||
-            strcmp(&name[strlen(name) - 7], ".tsv.gz") == 0)
-        {
-            char buf[4096];
-            const CGLoaderFile* file;
-            FGroupKey key;
-            if( (rc = KDirectoryResolvePath(dir, true, buf, sizeof(buf), name)) == 0 &&
-                (rc = CGLoaderFile_Make(&file, d->dir, buf, NULL, !d->param->no_read_ahead)) == 0 &&
-                (rc = FGroupKey_Make(&key, file, d->param)) == 0 ) {
-
-                FGroupMAP* found = (FGroupMAP*)BSTreeFind(d->tree, &key, FGroupMAP_Cmp);
-                DEBUG_MSG(5, ("file %s recognized\n", name));
-                if( found != NULL ) {
-                    rc = FGroupMAP_Set(found, file);
-                } else {
-                    FGroupMAP* x = calloc(1, sizeof(*x));
-                    if( x == NULL ) {
-                        rc = RC(rcExe, rcFile, rcInserting, rcMemory, rcExhausted);
-                    } else {
-                        memcpy(&x->key, &key, sizeof(key));
-                        if( (rc = FGroupMAP_Set(x, file)) == 0 ) {
-                            rc = BSTreeInsertUnique(d->tree, &x->dad, NULL, FGroupMAP_Sort);
-                        }
-                    }
-                }
-            } else if( GetRCObject(rc) == rcItem && GetRCState(rc) == rcIgnored ) {
-                DEBUG_MSG(5, ("file %s ignored\n", name));
-                rc = CGLoaderFile_Release(file, true);
-                file = NULL;
-            }
-            if( rc != 0 && file != NULL ) {
-                CGLoaderFile_LOG(file, klogErr, rc, NULL, NULL);
-                CGLoaderFile_Release(file, true);
-            }
-        } else if( strcmp(&name[strlen(name) - 4], ".tar") == 0 ) {
-            const KDirectory* tmp = d->dir;
-            if( (rc = KDirectoryOpenArcDirRead(dir, &d->dir, true, name, tocKFile, KArcParseTAR, NULL, NULL)) == 0 ) {
-                rc = KDirectoryVisit(d->dir, true, DirVisitor, d, ".");
-                KDirectoryRelease(d->dir);
-            }
-            d->dir = tmp;
-        }
-    }
-    return rc;
-}
-
-typedef struct FGroupMAP_LoadData_struct {
-    rc_t rc;
-    const SParam* param;
-    DB_Handle db;
-    const BSTree* reads;
-} FGroupMAP_LoadData;
-
-bool CC FGroupMAP_LoadReads( BSTNode *node, void *data )
-{
-    FGroupMAP* n = (FGroupMAP*)node;
-    FGroupMAP_LoadData* d = (FGroupMAP_LoadData*)data;
-
-    DEBUG_MSG(5, (" started\n", FGroupKey_Validate(&n->key)));
-    while( d->rc == 0 )
-    {
-        if( (d->rc = CGLoaderFile_GetRead(n->seq, d->db.reads)) == 0 ) {
-            if( (d->db.reads->flags & (cg_eLeftHalfDnbNoMatches | cg_eLeftHalfDnbMapOverflow)) &&
-                (d->db.reads->flags & (cg_eRightHalfDnbNoMatches | cg_eRightHalfDnbMapOverflow)) ) {
-                d->db.mappings->map_qty = 0;
-            } else {
-                d->rc = CGLoaderFile_GetMapping(n->align, d->db.mappings);
-            }
-            /* alignment written 1st than sequence -> primary_alignment_id must be set!! */
-            if( d->rc == 0 && (d->rc = CGWriterAlgn_Write(d->db.walgn, d->db.reads)) == 0 ) {
-                d->rc = CGWriterSeq_Write(d->db.wseq);
-            }
-        }
-        if( GetRCState(d->rc) == rcDone && GetRCObject(d->rc) == rcData ) {
-            bool eof = false;
-            d->rc = 0;
-            if( n->align == NULL || ((d->rc = CGLoaderFile_IsEof(n->align, &eof)) == 0 && eof) ) {
-                /* mappings file EOF detected ok */
-                DEBUG_MSG(5, (" done\n", FGroupKey_Validate(&n->key)));
-                break;
-            } else if( d->rc == 0 ) {
-                /* not EOF */
-                d->rc = RC(rcExe, rcFile, rcReading, rcData, rcUnexpected);
-                CGLoaderFile_LOG(n->align, klogErr, d->rc,
-                    "extra mappings, possible that corresponding reads file is truncated", NULL);
-            }
-        }
-        d->rc = d->rc ? d->rc : Quitting();
-    }
-    if( d->rc != 0 ) {
-        CGLoaderFile_LOG(n->seq, klogErr, d->rc, NULL, NULL);
-        CGLoaderFile_LOG(n->align, klogErr, d->rc, NULL, NULL);
-    }
-    FGroupMAP_CloseFiles(n);
-    return d->rc != 0;
-}
-
-bool CC FGroupMAP_LoadEvidence( BSTNode *node, void *data )
-{
-    FGroupMAP* n = (FGroupMAP*)node;
-    FGroupMAP_LoadData* d = (FGroupMAP_LoadData*)data;
-
-    DEBUG_MSG(5, ("' started\n", FGroupKey_Validate(&n->key)));
-     while( d->rc == 0 ) {
-        if( (d->rc = CGLoaderFile_GetEvidenceIntervals(n->seq, d->db.ev_int)) == 0 ) {
-            int64_t evint_rowid;
-            if( n->align != NULL ) {
-                d->rc = CGLoaderFile_GetEvidenceDnbs(n->align, d->db.ev_int->interval_id, d->db.ev_dnb);
-            } else {
-		d->db.ev_dnb->qty = 0; /***weird, but the easiest place to fix ***/
-	    }
-            /* interval written 1st than dnbs which uses interval as reference */
-            if( d->rc == 0 ) {
-                d->rc = CGWriterEvdInt_Write(d->db.wev_int, d->db.ev_dnb, &evint_rowid);
-            }
-            if( d->rc == 0 && n->align != NULL ) {
-                /* attach dnbs to reads */
-                uint16_t i;
-                FGroupMAP_FindData found;
-
-                found.key.type = cg_eFileType_READS;
-                d->rc = CGLoaderFile_GetAssemblyId(n->align, &found.key.assembly_id);
-                for(i = 0; d->rc == 0 && i < d->db.ev_dnb->qty; i++) {
-                    found.key.u.map.slide = d->db.ev_dnb->dnbs[i].slide;
-                    found.key.u.map.lane = d->db.ev_dnb->dnbs[i].lane;
-                    found.key.u.map.batch_file_number = &d->db.ev_dnb->dnbs[i].file_num_in_lane;
-                    if( BSTreeDoUntil(d->reads, false, FGroupMAP_FindRowId, &found) ) {
-                        d->rc = CGWriterEvdDnbs_SetSEQ(d->db.wev_dnb, i, found.rowid);
-                    } else {
-                        d->rc = RC(rcExe, rcFile, rcWriting, rcData, rcInconsistent);
-                    }
-                }
-            }
-            if( d->rc == 0 && n->align != NULL ) {
-                d->rc = CGWriterEvdDnbs_Write(d->db.wev_dnb, d->db.ev_int, evint_rowid);
-            }
-        }
-        if( GetRCState(d->rc) == rcDone && GetRCObject(d->rc) == rcData ) {
-            bool eof = false;
-            d->rc = 0;
-            if( n->align == NULL || ((d->rc = CGLoaderFile_IsEof(n->align, &eof)) == 0 && eof) ) {
-                /* dnbs file EOF detected ok */
-                DEBUG_MSG(5, ("' done\n", FGroupKey_Validate(&n->key)));
-                break;
-            } else if( d->rc == 0 ) {
-                /* not EOF */
-                d->rc = RC(rcExe, rcFile, rcReading, rcData, rcUnexpected);
-                CGLoaderFile_LOG(n->align, klogErr, d->rc,
-                    "extra dnbs, possible that corresponding intervals file is truncated", NULL);
-            }
-        }
-        d->rc = d->rc ? d->rc : Quitting();
-    }
-    if( d->rc != 0 ) {
-        CGLoaderFile_LOG(n->seq, klogErr, d->rc, NULL, NULL);
-        CGLoaderFile_LOG(n->align, klogErr, d->rc, NULL, NULL);
-    }
-    FGroupMAP_CloseFiles(n);
-    return d->rc != 0;
-}
-
-
-static const char * lib_dst = "extra/library";
-
-static rc_t copy_library( const KDirectory * src_dir, KDirectory * dst_dir,
-                          const char * in_path, const char * out_path )
-{
-    rc_t rc;
-    size_t l = string_size( out_path ) + string_size( lib_dst ) + 2;
-    char * dst = malloc( l );
-    if ( dst == NULL )
-        rc = RC( rcExe, rcFile, rcCopying, rcMemory, rcExhausted );
-    else
-    {
-        size_t written;
-        rc = string_printf( dst, l, &written, "%s/%s", out_path, lib_dst );
-        if ( rc == 0 )
-            rc = KDirectoryCopy( src_dir, dst_dir, true, in_path, dst );
-        free( dst );
-    }
-    return rc;
-}
-
-
-static rc_t open_dir_or_tar( const KDirectory *dir, const KDirectory **sub, const char * name )
-{
-    rc_t rc1, rc2;
-    rc1 = KDirectoryOpenDirRead( dir, sub, true, name );
-    if ( rc1 != 0 )
-    {
-        rc2 = KDirectoryOpenTarArchiveRead( dir, sub, true, name );
-        if ( rc2 == 0 )
-            rc1 = rc2;
-    }
-    return rc1;
-}
-
-static rc_t Load( SParam* param )
-{
-    rc_t rc = 0, rc1 = 0;
-    BSTree slides, evidence;
-    
-
-    param->map_dir = NULL;
-    param->asm_dir = NULL;
-    param->output_dir = ( KDirectory * )param->input_dir;
-    BSTreeInit( &slides );
-    BSTreeInit( &evidence );
-
-    rc = open_dir_or_tar( param->input_dir, &param->map_dir, param->map_path );
-    if ( rc == 0 )
-    {
-        DirVisit_Data dv;
-
-        dv.param = param;
-        dv.tree = &slides;
-        dv.dir = param->map_dir;
-        rc = KDirectoryVisit( param->map_dir, true, DirVisitor, &dv, NULL );
-        if ( rc == 0 )
-        {
-            if ( param->asm_path != NULL )
-            {
-                rc_t rc2 = open_dir_or_tar( param->input_dir, &param->asm_dir, param->asm_path );
-                if ( rc2 == 0 )
-                {
-                    dv.tree = &evidence;
-                    dv.dir = param->asm_dir;
-                    rc = KDirectoryVisit( param->asm_dir, true, DirVisitor, &dv, NULL );
-                }
-            }
-            if ( rc == 0 )
-            {
-                /* SHOULD HAVE A BSTreeEmpty FUNCTION OR SOMETHING...
-                   MAKE ONE HERE - WITH KNOWLEDGE THAT TREE IS NOT NULL: */
-#ifndef BSTreeEmpty
-#define BSTreeEmpty( bst ) \
-    ( ( bst ) -> root == NULL )
-#endif
-                if ( BSTreeEmpty ( & slides ) && BSTreeEmpty ( & evidence ) )
-                    rc = RC( rcExe, rcFile, rcReading, rcData, rcInsufficient );
-                else
-                {
-                    /* CORRECTED SETTING OF "rc" IN "FGroupMAP_Validate" */
-                    assert ( rc == 0 );
-                    BSTreeForEach( &slides, false, FGroupMAP_Validate, &rc );
-                    BSTreeForEach( &evidence, false, FGroupMAP_Validate, &rc );
-                }
-
-                if ( rc == 0 )
-                {
-                    FGroupMAP_LoadData data;
-
-                    PLOGMSG( klogInfo, ( klogInfo, "file set validation complete", "severity=status" ) );
-                    memset( &data, 0, sizeof( data ) );
-                    data.rc = 0;
-                    data.param = param;
-                    data.reads = &slides;
-                    rc = DB_Init( param, &data.db );
-                    if ( rc == 0 )
-                    {
-                        BSTreeDoUntil( &slides, false, FGroupMAP_LoadReads, &data );
-                        rc = data.rc;
-                        if ( rc == 0 )
-                        {
-                            PLOGMSG( klogInfo, ( klogInfo, "MAP loaded", "severity=status" ) );
-                            BSTreeDoUntil( &evidence, false, FGroupMAP_LoadEvidence, &data );
-                            rc = data.rc;
-                            if ( rc == 0 )
-                                PLOGMSG( klogInfo, ( klogInfo, "ASM loaded", "severity=status" ) );
-                        }
-                    }
-                    rc1 = DB_Fini( param, &data.db, rc != 0 );
-                    if ( rc == 0 )
-                        rc = rc1;
-                }
-            }
-        }
-
-        /* copy the extra library ( file or recursive directory ) */
-        if ( rc == 0 && param->library != NULL )
-        {
-            const KDirectory *lib_src;
-            rc = open_dir_or_tar( param->input_dir, &lib_src, param->library );
-            if ( rc == 0 )
-            {
-                rc = copy_library( param->input_dir, param->output_dir,
-                                   param->library, param->out );
-                if ( rc == 0 )
-                    STSMSG( 0, ( "extra lib copied" ) );
-                else
-                    LOGERR( klogErr, rc, "failed to copy extra library" );
-                KDirectoryRelease( lib_src );
-            }
-/*
-            else
-            {
-                rc = copy_library( param->input_dir, param->output_dir,
-                                   ".", param->out );
-                if ( rc == 0 )
-                    STSMSG( 0, ( "extra lib copied" ) );
-                else
-                    LOGERR( klogErr, rc, "failed to copy extra library" );
-            }
-*/
-        }
-        KDirectoryRelease( param->map_dir );
-        KDirectoryRelease( param->asm_dir );
-    }
-    BSTreeWhack( &slides, FGroupMAP_Whack, NULL );
-    BSTreeWhack( &evidence, FGroupMAP_Whack, NULL );
-    return rc;
-}
-
-
-ver_t CC KAppVersion( void )
-{
-    return CG_LOAD_VERS;
-}
-
-const char* map_usage[] = {"MAP input directory path containing files", NULL};
-const char* asm_usage[] = {"ASM input directory path containing files", NULL};
-const char* schema_usage[] = {"database schema file name", NULL};
-const char* output_usage[] = {"output database path", NULL};
-const char* force_usage[] = {"force output overwrite", NULL};
-const char* refseqcfg_usage[] = {"path to a file with reference-to-accession list", NULL};
-const char* refseqpath_usage[] = {"path to a directory with reference sequences in fasta", NULL};
-const char* refseqchunk_usage[] = {NULL, "hidden param to override REFERENCE table seq chunk size for testing", NULL};
-const char* reffile_usage[] = {"path to fasta file with references", NULL};
-const char* forceref_usage[] = {"force reference sequence write", NULL};
-const char* forceread_usage[] = {"force reads write", NULL};
-const char* qualquant_usage[] = {"quality scores quantization level, can be a number (0: none, 1: 2bit, 2: 1bit), or a string like '1:10,10:20,20:30,30:-' (which is equivalent to 1)", NULL};
-const char* nospotgroup_usage[] = {"do not write source file key to SPOT_GROUP column", NULL};
-const char* min_mapq_usage[] = {"filter secondary mappings by minimum weight (phred)", NULL};
-const char* no_secondary_usage[] = {"preserve only one mapping per half-DNB based on weight", NULL};
-const char* single_mate_usage[] = {"if secondary mates have duplicates preserve only one in each pair based on weight", NULL};
-const char* cluster_size_usage[] = {"defines cluster window on the reference, records only 1 placement from given cluster size; default is zero which means ignore", NULL};
-const char* no_read_ahead_usage[] = {"disable input files threaded caching", NULL};
-const char* library_usage[] = {"copy extra file/directory into output", NULL};
-
-/* this enum must have same order as MainArgs array below */
-enum OptDefIndex {
-    eopt_MapInput = 0,
-    eopt_AsmInput,
-    eopt_Schema,
-    eopt_RefSeqConfig,
-    eopt_RefSeqPath,
-    eopt_RefSeqChunk,
-    eopt_RefFile,
-    eopt_Output,
-    eopt_Force,
-    eopt_ForceRef,
-    eopt_ForceRead,
-    eopt_QualQuantization,
-    eopt_NoSpotGroup,
-    eopt_MinMapQ,
-    eopt_No2nd_ary,
-    eopt_SingleMate,
-    eopt_ClusterSize,
-    eopt_noReadAhead,
-    eopt_Library
-};
-
-OptDef MainArgs[] =
-{
-    /* if you change order in this array, rearrange enum above accordingly! */
-    { "map",              "m",  NULL, map_usage,            1, true,  true  },
-    { "asm",              "a",  NULL, asm_usage,            1, true,  false },
-    { "schema",           "s",  NULL, schema_usage,         1, true,  false },
-    { "refseq-config",    "k",  NULL, refseqcfg_usage,      1, true,  false },
-    { "refseq-path",      "i",  NULL, refseqpath_usage,     1, true,  false },
-    { "refseq-chunk",     "C",  NULL, refseqchunk_usage,    1, true,  false },
-    { "ref-file",         "r",  NULL, reffile_usage,        1, true,  false },
-    { "output",           "o",  NULL, output_usage,         1, true,  true  },
-    { "force",            "f",  NULL, force_usage,          1, false, false },
-    { "write-reference",  "g",  NULL, forceref_usage,       1, false, false },
-    { "write-read",       "w",  NULL, forceread_usage,      1, false, false },
-    { "qual-quant",       "Q",  NULL, qualquant_usage,      1, true,  false },
-    { "no-spotgroup",     "G",  NULL, nospotgroup_usage,    1, false, false },
-    { "min-mapq",         "q",  NULL, min_mapq_usage,       1, true,  false },
-    { "no-secondary",     "P",  NULL, no_secondary_usage,   1, false, false },
-    { "single-mate",      NULL, NULL, single_mate_usage,    1, false, false },
-    { "cluster-size",     NULL, NULL, cluster_size_usage,   1, true,  false },
-    { "input-no-threads", "t",  NULL, no_read_ahead_usage,  1, false, false },
-    { "library",          "l",  NULL, library_usage,        1, true,  false }
-};
-const size_t MainArgsQty = sizeof(MainArgs) / sizeof(MainArgs[0]);
-
-rc_t UsageSummary (char const * progname)
-{
-    OUTMSG((
-        "Usage:\n"
-        "\t%s [options] -m map-dir -o path-to-run\n"
-        "\n"
-        "Summary:\n"
-        "\tLoad a Complete Genomics formatted data files\n"
-        "\n"
-        "Example:\n"
-        "\t%s -m build36/MAP -o /tmp/SRZ123456\n"
-        "\n"
-        ,progname, progname));
-    return 0;
-}
-
-char const UsageDefaultName[] = "cg-load";
-
-rc_t CC Usage( const Args* args )
-{
-    rc_t rc;
-    int i;
-    const char* progname = UsageDefaultName;
-    const char* fullname = UsageDefaultName;
-
-    rc = ArgsProgram(args, &fullname, &progname);
-
-    UsageSummary(progname);
-
-    for(i = 0; i < MainArgsQty; i++ ) {
-        if( MainArgs[i].required && MainArgs[i].help[0] != NULL ) {
-            HelpOptionLine(MainArgs[i].aliases, MainArgs[i].name, NULL, MainArgs[i].help);
-        }
-    }
-    OUTMSG(("\nOptions:\n"));
-    for(i = 0; i < MainArgsQty; i++ ) {
-        if( !MainArgs[i].required && MainArgs[i].help[0] != NULL ) {
-            HelpOptionLine(MainArgs[i].aliases, MainArgs[i].name, NULL, MainArgs[i].help);
-        }
-    }
-    XMLLogger_Usage();
-    OUTMSG(("\n"));
-    HelpOptionsStandard();
-    HelpVersion(fullname, KAppVersion());
-    return rc;
-}
-
-rc_t CC KMain( int argc, char* argv[] )
-{
-    rc_t rc = 0;
-    Args* args = NULL;
-    const char* errmsg = NULL, *refseq_chunk = NULL, *min_mapq = NULL, *cluster_size = NULL;
-    const XMLLogger* xml_logger = NULL;
-    SParam params;
-    memset(&params, 0, sizeof(params));
-    params.schema = "align/align.vschema";
-
-    params.argv0 = argv[0];
-    
-    if( (rc = ArgsMakeAndHandle(&args, argc, argv, 2, MainArgs, MainArgsQty, XMLLogger_Args, XMLLogger_ArgsQty)) == 0 ) {
-        uint32_t count;
-        if( (rc = ArgsParamCount (args, &count)) != 0 || count != 0 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            ArgsParamValue(args, 0, &errmsg);
-        
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_Output].name, &count)) != 0 || count != 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, count ? rcExcessive : rcInsufficient);
-            errmsg = MainArgs[eopt_Output].name;
-        } else if( (rc = ArgsOptionValue(args, MainArgs[eopt_Output].name, 0, &params.out)) != 0 ) {
-            errmsg = MainArgs[eopt_Output].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_MapInput].name, &count)) != 0 || count != 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, count ? rcExcessive : rcInsufficient);
-            errmsg = MainArgs[eopt_MapInput].name;
-        } else if( (rc = ArgsOptionValue(args, MainArgs[eopt_MapInput].name, 0, &params.map_path)) != 0 ) {
-            errmsg = MainArgs[eopt_MapInput].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_Schema].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, count ? rcExcessive : rcInsufficient);
-            errmsg = MainArgs[eopt_Schema].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_Schema].name, 0, &params.schema)) != 0 ) {
-            errmsg = MainArgs[eopt_Schema].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_AsmInput].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_AsmInput].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_AsmInput].name, 0, &params.asm_path)) != 0 ) {
-            errmsg = MainArgs[eopt_AsmInput].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_RefSeqConfig].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_RefSeqConfig].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_RefSeqConfig].name, 0, &params.refseqcfg)) != 0 ) {
-            errmsg = MainArgs[eopt_RefSeqConfig].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_RefSeqPath].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_RefSeqPath].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_RefSeqPath].name, 0, &params.refseqpath)) != 0 ) {
-            errmsg = MainArgs[eopt_RefSeqPath].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_Library].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_Library].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_Library].name, 0, &params.library)) != 0 ) {
-            errmsg = MainArgs[eopt_Library].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_RefSeqChunk].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_RefSeqChunk].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_RefSeqChunk].name, 0, &refseq_chunk)) != 0 ) {
-            errmsg = MainArgs[eopt_RefSeqChunk].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_Force].name, &params.force)) != 0 ) {
-            errmsg = MainArgs[eopt_Force].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_ForceRef].name, &params.force_refw)) != 0 ) {
-            errmsg = MainArgs[eopt_ForceRef].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_ForceRead].name, &params.force_readw)) != 0 ) {
-            errmsg = MainArgs[eopt_ForceRead].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_noReadAhead].name, &params.no_read_ahead)) != 0 ) {
-            errmsg = MainArgs[eopt_noReadAhead].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_NoSpotGroup].name, &params.no_spot_group)) != 0 ) {
-            errmsg = MainArgs[eopt_NoSpotGroup].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_No2nd_ary].name, &params.min_mapq)) != 0 ) {
-            errmsg = MainArgs[eopt_No2nd_ary].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_QualQuantization].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_QualQuantization].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_QualQuantization].name, 0, &params.qual_quant)) != 0 ) {
-            errmsg = MainArgs[eopt_QualQuantization].name;
-
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_MinMapQ].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_MinMapQ].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_MinMapQ].name, 0, &min_mapq)) != 0 ) {
-            errmsg = MainArgs[eopt_MinMapQ].name;
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_ClusterSize].name, &count)) != 0 || count > 1 ) {
-            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-            errmsg = MainArgs[eopt_ClusterSize].name;
-        } else if( count > 0 && (rc = ArgsOptionValue(args, MainArgs[eopt_ClusterSize].name, 0, &cluster_size)) != 0 ) {
-            errmsg = MainArgs[eopt_ClusterSize].name;
-        } else if( (rc = ArgsOptionCount(args, MainArgs[eopt_SingleMate].name, &params.single_mate)) != 0 ) {
-            errmsg = MainArgs[eopt_SingleMate].name;
-
-        } else {
-            do {
-                long val = 0;
-                char* end = NULL;
-                uint32_t count;
-
-                if( (rc = ArgsOptionCount(args, MainArgs[eopt_RefFile].name, &count)) != 0 ) {
-                    break;
-                } else {
-                    params.refFiles = calloc(count + 1, sizeof(*(params.refFiles)));
-                    if( params.refFiles == NULL ) {
-                        rc = RC(rcApp, rcArgv, rcReading, rcMemory, rcExhausted);
-                        break;
-                    }
-                    while(rc == 0 && count-- > 0) {
-                        rc = ArgsOptionValue(args, MainArgs[eopt_RefFile].name, count, &params.refFiles[count]);
-                    }
-                }
-
-                if( refseq_chunk != NULL ) {
-                    errno = 0;
-                    val = strtol(refseq_chunk, &end, 10);
-                    if( errno != 0 || refseq_chunk == end || *end != '\0' || val < 0 || val > UINT32_MAX ) {
-                        rc = RC(rcExe, rcArgv, rcReading, rcParam, rcInvalid);
-                        break;
-                    }
-                    params.refseq_chunk = val;
-                }
-                if( params.min_mapq > 0 ) {
-                    params.min_mapq = ~0;
-                } else if( min_mapq != NULL ) {
-                    errno = 0;
-                    val = strtol(min_mapq, &end, 10);
-                    if( errno != 0 || min_mapq == end || *end != '\0' || val < 0 || val > 255 ) {
-                        rc = RC(rcExe, rcArgv, rcReading, rcParam, rcInvalid);
-                        break;
-                    }
-                    params.min_mapq = val;
-                }
-
-                if ( cluster_size )
-                    params.cluster_size = atoi( cluster_size );
-                else
-                    params.cluster_size = 0;
-
-                rc = KDirectoryNativeDir( &params.input_dir );
-                if ( rc != 0 )
-                    errmsg = "current directory";
-                else
-                {
-                    rc = XMLLogger_Make( &xml_logger, params.input_dir, args );
-                    if ( rc != 0 )
-                        errmsg = "XML logging";
-                    else
-                        rc = Load( &params );
-                }
-            } while( false );
-            KDirectoryRelease( params.input_dir );
-        }
-    }
-    /* find accession as last part of path for internal XML logging */
-    refseq_chunk = params.out ? strrchr(params.out, '/') : "/???";
-    if( refseq_chunk ++ == NULL )
-        refseq_chunk = params.out;
-
-    if( argc < 2 )
-        MiniUsage(args);
-    else if( rc != 0 )
-    {
-        if( errmsg )
-        {
-            MiniUsage(args);
-            LOGERR(klogErr, rc, errmsg);
-        }
-        else
-        {
-            PLOGERR(klogErr, (klogErr, rc, "load failed: $(reason_short)",
-                    "severity=total,status=failure,accession=%s", refseq_chunk));
-        }
-    }
-    else
-    {
-        PLOGMSG(klogInfo, (klogInfo, "loaded",
-                "severity=total,status=success,accession=%s", refseq_chunk));
-    }
-    ArgsWhack(args);
-    XMLLogger_Release(xml_logger);
-    return rc;
-}
diff --git a/tools/cg-load/cg-load.vers b/tools/cg-load/cg-load.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/cg-load/cg-load.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/cg-load/debug.h b/tools/cg-load/debug.h
deleted file mode 100644
index 2d732c4..0000000
--- a/tools/cg-load/debug.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_debug_h_
-#define _tools_cg_load_debug_h_
-
-#include <klib/debug.h>
-
-#define DEBUG_MSG_PASTE(a,b) a##b
-#define DEBUG_MSG(flag,msg) DBGMSG(DBG_APP,DBG_FLAG(DEBUG_MSG_PASTE(DBG_APP_,flag)), msg)
-
-#endif /* _tools_cg_load_debug_h_ */
diff --git a/tools/cg-load/defs.h b/tools/cg-load/defs.h
deleted file mode 100644
index 9e06969..0000000
--- a/tools/cg-load/defs.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_defs_h_
-#define _tools_cg_load_defs_h_
-
-/* buffers and sizes */
-
-/*
-#define CG_CHROMOSOME_NAME (8) make if fit NC_003977 */
-#define CG_CHROMOSOME_NAME (10)
-
-#define CG_SLIDE (32)
-#define CG_LANE (8)
-
-#define CG_READS_NREADS (2)
-#define CG_READS_SPOT_LEN (70)
-#define CG_READS_NGAPS (3)
-#define CG_MAPPINGS_MAX (2048)
-#define CG_EVDNC_PLOIDY (3)
-#define CG_EVDNC_INTERVALID_LEN (32)
-#define CG_EVDNC_SPOT_LEN (10 * 1024)
-
-/* CG_EVDNC_ALLELE_NUM is 3 in v.1.5; 4 in v.2 */
-#define CG_EVDNC_ALLELE_NUM (4)
-
-#define CG_EVDNC_ALLELE_LEN (10 * 1024)
-#define CG_EVDNC_ALLELE_CIGAR_LEN (10 * 1024)
-
-typedef char CGFIELD_LIBRARY_TYPE;
-typedef char CGFIELD_SAMPLE_TYPE;
-typedef char CGFIELD_SLIDE_TYPE;
-typedef char CGFIELD_LANE_TYPE;
-typedef char CGFIELD_CHROMOSOME_TYPE;
-typedef char CGFIELD_ASSEMBLY_ID_TYPE;
-typedef char CGFIELD_SOFTWARE_VERSION_TYPE;
-typedef char CGFIELD_DBSNP_BUILD_TYPE;
-typedef char CGFIELD_COSMIC_TYPE;
-typedef char CGFIELD_PFAM_DATE_TYPE;
-typedef char CGFIELD_MIRBASE_VERSION_TYPE;
-typedef char CGFIELD_DGV_VERSION_TYPE;
-typedef char CGFIELD_GENERATED_AT_TYPE;
-typedef char CGFIELD_GENERATED_BY_TYPE;
-typedef char CGFIELD_GENE_ANNOTATIONS_TYPE;
-typedef char CGFIELD_GENOME_REFERENCE_TYPE;
-typedef uint32_t CGFIELD_BATCH_FILE_NUMBER_TYPE;
-typedef uint64_t CGFIELD_BATCH_OFFSET_TYPE;
-typedef uint32_t CGFIELD_FIELD_SIZE_TYPE;
-typedef uint32_t CGFIELD_MAX_PLOIDY_TYPE;
-typedef uint16_t CGFIELD_WINDOW_SHIFT_TYPE;
-typedef uint16_t CGFIELD_WINDOW_WIDTH_TYPE;
-typedef uint16_t CGFIELD_NUMBER_LEVELS_TYPE;
-typedef uint16_t CGFIELD_MEAN_LEVEL_X_TYPE;
-
-typedef enum CG_EFileType_enum {
-    cg_eFileType_Unknown = 0,
-    cg_eFileType_READS = 1,
-    cg_eFileType_MAPPINGS,
-    cg_eFileType_LIB_DNB,
-    cg_eFileType_LIB_MATE_GAPS,
-    cg_eFileType_LIB_SEQDEP_GAPS,
-    cg_eFileType_REFMETRICS,
-    cg_eFileType_IDENTIFIER_MAPPING,
-    cg_eFileType_DBSNP_TO_CGI,
-    cg_eFileType_GENE_ANNOTATION,
-    cg_eFileType_SUMMARY_REPORT,
-    cg_eFileType_VAR_ANNOTATION,
-    cg_eFileType_GENE_VAR_SUMMARY_REPORT,
-    cg_eFileType_EVIDENCE_CORRELATION,
-    cg_eFileType_EVIDENCE_DNBS,
-    cg_eFileType_EVIDENCE_INTERVALS,
-    cg_eFileType_COVERAGE_DISTRIBUTION,
-    cg_eFileType_COVERAGE_BY_GC,
-    cg_eFileType_DEPTH_OF_COVERAGE,
-    cg_eFileType_INDEL_LENGTH_CODING,
-    cg_eFileType_INDEL_LENGTH,
-    cg_eFileType_SUBSTITUTION_LENGTH_CODING,
-    cg_eFileType_SUBSTITUTION_LENGTH,
-    cg_eFileType_CNV_SEGMENTS,
-    cg_eFileType_TUMOR_CNV_SEGMENTS,
-    cg_eFileType_CNV_DETAILS_SCORES,
-    cg_eFileType_TUMOR_DETAILS_SCORES,
-    cg_eFileType_NONDIPLOID_SOMATIC_CNV_SEGMENTS,
-    cg_eFileType_NONDIPLOID_SOMATIC_CNV_DETAILS,
-    cg_eFileType_JUNCTIONS,
-    cg_eFileType_JUNCTION_DNBS,
-    cg_eFileType_SV_EVENTS,
-    cg_eFileType_VAR_OLPL,
-    cg_eFileType_MEI,
-    cg_eFileType_TUMOR_CNV_DETAILS,
-    cg_eFileType_DIPLOID_SOMATIC_CNV_SEGMENTS,
-    cg_eFileType_COVERAGE_DISTRIBUTION_CODING,
-    cg_eFileType_COVERAGE_BY_GC_CODING,
-    cg_eFileType_LIB_SMALL_GAPS_ROLLUP,
-    cg_eFileType_DIPLOID_SOMATIC_CNV_DETAILSCORES,
-    cg_eFileType_Last
-} CG_EFileType;
-
-typedef enum CG_EReadsFlags_enum {
-    cg_eLeftHalfDnbNoMatches = 0x01,
-    cg_eLeftHalfDnbMapOverflow = 0x02,
-    cg_eRightHalfDnbNoMatches = 0x04,
-    cg_eRightHalfDnbMapOverflow = 0x08
-} CG_EReadsFlags;
-
-typedef enum CG_EMappingsFlags_enum {
-    cg_eLastDNBRecord = 0x01,
-    cg_eLeftHalfDnbMap = 0x00,
-    cg_eRightHalfDnbMap = 0x02,
-    cg_eFwdDnbStrand = 0x00,
-    cg_eRevDnbStrand = 0x04
-} CG_EMappingsFlags;
-
-#endif /* _tools_cg_load_defs_h_ */
diff --git a/tools/cg-load/f1_3.c b/tools/cg-load/f1_3.c
deleted file mode 100644
index 315f4e0..0000000
--- a/tools/cg-load/f1_3.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-
-#include "factory-reads.h"
-#include "factory-mappings.h"
-#include "factory-evidence-intervals.h"
-#include "factory-evidence-dnbs.h"
-
-#include "file.h"
-
-static const CGFileTypeFactory cg_ETypeXX_names[] = {
-    { "READS", cg_eFileType_READS, CGReads13_Make },
-    { "MAPPINGS", cg_eFileType_MAPPINGS, CGMappings13_Make },
-    { "LIB-DNB", cg_eFileType_LIB_DNB, NULL },
-    { "LIB-MATE-GAPS", cg_eFileType_LIB_MATE_GAPS, NULL },
-    { "LIB-SEQDEP-GAPS", cg_eFileType_LIB_SEQDEP_GAPS, NULL },
-    { "REFMETRICS", cg_eFileType_REFMETRICS, NULL },
-    { "DBSNP-TO-CGI", cg_eFileType_DBSNP_TO_CGI, NULL },
-    { "GENE-ANNOTATION", cg_eFileType_GENE_ANNOTATION, NULL },
-    { "SUMMARY-REPORT", cg_eFileType_SUMMARY_REPORT, NULL },
-    { "VAR-ANNOTATION", cg_eFileType_VAR_ANNOTATION, NULL },
-    { "GENE-VAR-SUMMARY-REPORT", cg_eFileType_GENE_VAR_SUMMARY_REPORT, NULL },
-    { "EVIDENCE-CORRELATION", cg_eFileType_EVIDENCE_CORRELATION, NULL },
-    { "EVIDENCE-DNBS", cg_eFileType_EVIDENCE_DNBS, CGEvidenceDnbs13_Make },
-    { "EVIDENCE-INTERVALS",
-                cg_eFileType_EVIDENCE_INTERVALS, CGEvidenceIntervals13_Make },
-    { "COVERAGE-DISTRIBUTION", cg_eFileType_COVERAGE_DISTRIBUTION, NULL },
-    { "COVERAGE-BY-GC", cg_eFileType_COVERAGE_BY_GC, NULL },
-    { "DEPTH-OF-COVERAGE", cg_eFileType_DEPTH_OF_COVERAGE, NULL },
-    { "INDEL-LENGTH-CODING", cg_eFileType_INDEL_LENGTH_CODING, NULL },
-    { "INDEL-LENGTH", cg_eFileType_INDEL_LENGTH, NULL },
-    { "SUBSTITUTION-LENGTH-CODING",
-                cg_eFileType_SUBSTITUTION_LENGTH_CODING, NULL },
-    { "SUBSTITUTION-LENGTH", cg_eFileType_SUBSTITUTION_LENGTH, NULL },
-    { "CNV_SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "CNV-SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "TUMOR_CNV_SEGMENTS", cg_eFileType_TUMOR_CNV_SEGMENTS, NULL },
-    { "CNV_DETAILS_SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "CNV-DETAIL-SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "TUMOR_DETAILS_SCORES", cg_eFileType_TUMOR_DETAILS_SCORES, NULL },
-    { "JUNCTIONS", cg_eFileType_JUNCTIONS, NULL },
-    { "JUNCTION-DNBS", cg_eFileType_JUNCTION_DNBS, NULL },
-    /* undocumented */
-    { "VAR-OLPL", cg_eFileType_VAR_OLPL, NULL }
-    
-};
-
-rc_t CGFile13_Make(const CGFileType** self,
-    const char* type, const CGLoaderFile* file)
-{
-    return CGLoaderFileMakeCGFileType(file, type,
-        cg_ETypeXX_names, sizeof cg_ETypeXX_names / sizeof cg_ETypeXX_names[0],
-        self);
-}
diff --git a/tools/cg-load/f1_5.c b/tools/cg-load/f1_5.c
deleted file mode 100644
index dcb152c..0000000
--- a/tools/cg-load/f1_5.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-
-#include "factory-reads.h"
-#include "factory-mappings.h"
-#include "factory-evidence-intervals.h"
-#include "factory-evidence-dnbs.h"
-
-#include "file.h"
-
-static const CGFileTypeFactory cg_ETypeXX_names[] = {
-    { "READS", cg_eFileType_READS, CGReads15_Make },
-    { "MAPPINGS", cg_eFileType_MAPPINGS, CGMappings15_Make },
-    { "LIB-DNB", cg_eFileType_LIB_DNB, NULL },
-    { "LIB-MATE-GAPS", cg_eFileType_LIB_MATE_GAPS, NULL },
-    { "LIB-SEQDEP-GAPS", cg_eFileType_LIB_SEQDEP_GAPS, NULL },
-    { "REFMETRICS", cg_eFileType_REFMETRICS, NULL },
-    { "DBSNP-TO-CGI", cg_eFileType_DBSNP_TO_CGI, NULL },
-    { "GENE-ANNOTATION", cg_eFileType_GENE_ANNOTATION, NULL },
-    { "SUMMARY-REPORT", cg_eFileType_SUMMARY_REPORT, NULL },
-    { "VAR-ANNOTATION", cg_eFileType_VAR_ANNOTATION, NULL },
-    { "GENE-VAR-SUMMARY-REPORT", cg_eFileType_GENE_VAR_SUMMARY_REPORT, NULL },
-    { "EVIDENCE-CORRELATION", cg_eFileType_EVIDENCE_CORRELATION, NULL },
-    { "EVIDENCE-DNBS", cg_eFileType_EVIDENCE_DNBS, CGEvidenceDnbs15_Make },
-    { "EVIDENCE-INTERVALS",
-                cg_eFileType_EVIDENCE_INTERVALS, CGEvidenceIntervals15_Make },
-    { "COVERAGE-DISTRIBUTION", cg_eFileType_COVERAGE_DISTRIBUTION, NULL },
-    { "COVERAGE-BY-GC", cg_eFileType_COVERAGE_BY_GC, NULL },
-    { "DEPTH-OF-COVERAGE", cg_eFileType_DEPTH_OF_COVERAGE, NULL },
-    { "INDEL-LENGTH-CODING", cg_eFileType_INDEL_LENGTH_CODING, NULL },
-    { "INDEL-LENGTH", cg_eFileType_INDEL_LENGTH, NULL },
-    { "SUBSTITUTION-LENGTH-CODING",
-                cg_eFileType_SUBSTITUTION_LENGTH_CODING, NULL },
-    { "SUBSTITUTION-LENGTH", cg_eFileType_SUBSTITUTION_LENGTH, NULL },
-    { "CNV_SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "CNV-SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "TUMOR_CNV_SEGMENTS", cg_eFileType_TUMOR_CNV_SEGMENTS, NULL },
-    { "CNV_DETAILS_SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "CNV-DETAIL-SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "TUMOR_DETAILS_SCORES", cg_eFileType_TUMOR_DETAILS_SCORES, NULL },
-    { "JUNCTIONS", cg_eFileType_JUNCTIONS, NULL },
-    { "JUNCTION-DNBS", cg_eFileType_JUNCTION_DNBS, NULL },
-    /* undocumented */
-    { "VAR-OLPL", cg_eFileType_VAR_OLPL, NULL }
-    
-};
-
-rc_t CGFile15_Make(const CGFileType** self,
-    const char* type, const CGLoaderFile* file)
-{
-    return CGLoaderFileMakeCGFileType(file, type,
-        cg_ETypeXX_names, sizeof cg_ETypeXX_names / sizeof cg_ETypeXX_names[0],
-        self);
-}
diff --git a/tools/cg-load/f2_0.c b/tools/cg-load/f2_0.c
deleted file mode 100644
index ba28f44..0000000
--- a/tools/cg-load/f2_0.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-
-#include "factory-reads.h"
-#include "factory-mappings.h"
-#include "factory-evidence-intervals.h"
-#include "factory-evidence-dnbs.h"
-
-#include "file.h"
-
-static const CGFileTypeFactory cg_ETypeXX_names[] = {
-    { "READS", cg_eFileType_READS, CGReads20_Make },
-    { "MAPPINGS", cg_eFileType_MAPPINGS, CGMappings20_Make },
-    { "LIB-DNB", cg_eFileType_LIB_DNB, NULL },
-    { "LIB-MATE-GAPS", cg_eFileType_LIB_MATE_GAPS, NULL },
-    { "LIB-SEQDEP-GAPS", cg_eFileType_LIB_SEQDEP_GAPS, NULL },
-    { "REFMETRICS", cg_eFileType_REFMETRICS, NULL },
-    { "DBSNP-TO-CGI", cg_eFileType_DBSNP_TO_CGI, NULL },
-    { "GENE-ANNOTATION", cg_eFileType_GENE_ANNOTATION, NULL },
-    { "SUMMARY-REPORT", cg_eFileType_SUMMARY_REPORT, NULL },
-    { "VAR-ANNOTATION", cg_eFileType_VAR_ANNOTATION, NULL },
-    { "GENE-VAR-SUMMARY-REPORT", cg_eFileType_GENE_VAR_SUMMARY_REPORT, NULL },
-    { "EVIDENCE-CORRELATION", cg_eFileType_EVIDENCE_CORRELATION, NULL },
-    { "EVIDENCE-DNBS", cg_eFileType_EVIDENCE_DNBS, CGEvidenceDnbs20_Make },
-    { "EVIDENCE-INTERVALS",
-                cg_eFileType_EVIDENCE_INTERVALS, CGEvidenceIntervals20_Make },
-    { "COVERAGE-DISTRIBUTION", cg_eFileType_COVERAGE_DISTRIBUTION, NULL },
-    { "COVERAGE-BY-GC", cg_eFileType_COVERAGE_BY_GC, NULL },
-    { "DEPTH-OF-COVERAGE", cg_eFileType_DEPTH_OF_COVERAGE, NULL },
-    { "INDEL-LENGTH-CODING", cg_eFileType_INDEL_LENGTH_CODING, NULL },
-    { "INDEL-LENGTH", cg_eFileType_INDEL_LENGTH, NULL },
-    { "SUBSTITUTION-LENGTH-CODING",
-                cg_eFileType_SUBSTITUTION_LENGTH_CODING, NULL },
-    { "SUBSTITUTION-LENGTH", cg_eFileType_SUBSTITUTION_LENGTH, NULL },
-    { "CNV_SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "CNV-SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "TUMOR_CNV_SEGMENTS", cg_eFileType_TUMOR_CNV_SEGMENTS, NULL },
-    { "TUMOR-CNV-SEGMENTS", cg_eFileType_TUMOR_CNV_SEGMENTS, NULL },
-    { "CNV_DETAILS_SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "CNV-DETAILS-SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "CNV-DETAIL-SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "TUMOR_DETAILS_SCORES", cg_eFileType_TUMOR_DETAILS_SCORES, NULL },
-    { "TUMOR-DETAILS-SCORES", cg_eFileType_TUMOR_DETAILS_SCORES, NULL },
-    { "JUNCTIONS", cg_eFileType_JUNCTIONS, NULL },
-    { "JUNCTION-DNBS", cg_eFileType_JUNCTION_DNBS, NULL },
-    { "SV-EVENTS", cg_eFileType_SV_EVENTS, NULL },
-    { "VAR-OLPL", cg_eFileType_VAR_OLPL, NULL },
-    { "MEI", cg_eFileType_MEI, NULL },    
-};
-
-rc_t CGFile20_Make(const CGFileType** self,
-    const char* type, const CGLoaderFile* file)
-{
-    return CGLoaderFileMakeCGFileType(file, type,
-        cg_ETypeXX_names, sizeof cg_ETypeXX_names / sizeof cg_ETypeXX_names[0],
-        self);
-}
diff --git a/tools/cg-load/f2_2.c b/tools/cg-load/f2_2.c
deleted file mode 100644
index 1d4986d..0000000
--- a/tools/cg-load/f2_2.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-
-#include "factory-reads.h"
-#include "factory-mappings.h"
-#include "factory-evidence-intervals.h"
-#include "factory-evidence-dnbs.h"
-
-#include "file.h"
-
-static const CGFileTypeFactory cg_ETypeXX_names[] = {
-    { "READS", cg_eFileType_READS, CGReads22_Make },
-    { "MAPPINGS", cg_eFileType_MAPPINGS, CGMappings22_Make },
-    { "LIB-DNB", cg_eFileType_LIB_DNB, NULL },
-    { "LIB-MATE-GAPS", cg_eFileType_LIB_MATE_GAPS, NULL },
-    { "LIB-SEQDEP-GAPS", cg_eFileType_LIB_SEQDEP_GAPS, NULL },
-    { "REFMETRICS", cg_eFileType_REFMETRICS, NULL },
-    { "IDENTIFIER-MAPPING", cg_eFileType_IDENTIFIER_MAPPING, NULL },
-    { "DBSNP-TO-CGI", cg_eFileType_DBSNP_TO_CGI, NULL },
-    { "GENE-ANNOTATION", cg_eFileType_GENE_ANNOTATION, NULL },
-    { "SUMMARY-REPORT", cg_eFileType_SUMMARY_REPORT, NULL },
-    { "VAR-ANNOTATION", cg_eFileType_VAR_ANNOTATION, NULL },
-    { "GENE-VAR-SUMMARY-REPORT", cg_eFileType_GENE_VAR_SUMMARY_REPORT, NULL },
-    { "EVIDENCE-CORRELATION", cg_eFileType_EVIDENCE_CORRELATION, NULL },
-    { "EVIDENCE-DNBS", cg_eFileType_EVIDENCE_DNBS, CGEvidenceDnbs22_Make },
-    { "EVIDENCE-INTERVALS",
-                cg_eFileType_EVIDENCE_INTERVALS, CGEvidenceIntervals22_Make },
-    { "COVERAGE-DISTRIBUTION", cg_eFileType_COVERAGE_DISTRIBUTION, NULL },
-    { "COVERAGE-BY-GC", cg_eFileType_COVERAGE_BY_GC, NULL },
-    { "DEPTH-OF-COVERAGE", cg_eFileType_DEPTH_OF_COVERAGE, NULL },
-    { "INDEL-LENGTH-CODING", cg_eFileType_INDEL_LENGTH_CODING, NULL },
-    { "INDEL-LENGTH", cg_eFileType_INDEL_LENGTH, NULL },
-    { "SUBSTITUTION-LENGTH-CODING",
-                cg_eFileType_SUBSTITUTION_LENGTH_CODING, NULL },
-    { "SUBSTITUTION-LENGTH", cg_eFileType_SUBSTITUTION_LENGTH, NULL },
-    { "CNV_SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "CNV-SEGMENTS", cg_eFileType_CNV_SEGMENTS, NULL },
-    { "TUMOR_CNV_SEGMENTS", cg_eFileType_TUMOR_CNV_SEGMENTS, NULL },
-    { "TUMOR-CNV-SEGMENTS", cg_eFileType_TUMOR_CNV_SEGMENTS, NULL },
-    { "CNV_DETAILS_SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "CNV-DETAILS-SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "CNV-DETAIL-SCORES", cg_eFileType_CNV_DETAILS_SCORES, NULL },
-    { "TUMOR_DETAILS_SCORES", cg_eFileType_TUMOR_DETAILS_SCORES, NULL },
-    { "TUMOR-DETAILS-SCORES", cg_eFileType_TUMOR_DETAILS_SCORES, NULL },
-    { "NONDIPLOID-SOMATIC-CNV-SEGMENTS",
-                cg_eFileType_NONDIPLOID_SOMATIC_CNV_SEGMENTS, NULL },
-    { "NONDIPLOID-SOMATIC-CNV-DETAILS",
-                cg_eFileType_NONDIPLOID_SOMATIC_CNV_DETAILS, NULL },
-    { "JUNCTIONS", cg_eFileType_JUNCTIONS, NULL },
-    { "JUNCTION-DNBS", cg_eFileType_JUNCTION_DNBS, NULL },
-    { "SV-EVENTS", cg_eFileType_SV_EVENTS, NULL },
-    { "VAR-OLPL", cg_eFileType_VAR_OLPL, NULL },
-    { "MEI", cg_eFileType_MEI, NULL },
-    /* from Standard Sequencing Service Data File Formats file test */
-    { "TUMOR-CNV-DETAILS", cg_eFileType_TUMOR_CNV_DETAILS, NULL },
-    { "DIPLOID-SOMATIC-CNV-SEGMENTS",
-                cg_eFileType_DIPLOID_SOMATIC_CNV_SEGMENTS, NULL },
-    { "COVERAGE-DISTRIBUTION-CODING",
-                cg_eFileType_COVERAGE_DISTRIBUTION_CODING, NULL },
-    { "COVERAGE-BY-GC-CODING", cg_eFileType_COVERAGE_BY_GC_CODING, NULL },
-    { "LIB-SMALL-GAPS-ROLLUP", cg_eFileType_LIB_SMALL_GAPS_ROLLUP, NULL },
-    /* from Cancer Sequencing Service Data File Formats file test */
-    { "DIPLOID-SOMATIC-CNV-DETAILSCORES",
-                cg_eFileType_DIPLOID_SOMATIC_CNV_DETAILSCORES, NULL },
-};
-
-rc_t CGFile22_Make(const CGFileType** self,
-    const char* type, const CGLoaderFile* file)
-{
-    return CGLoaderFileMakeCGFileType(file, type,
-        cg_ETypeXX_names, sizeof cg_ETypeXX_names / sizeof cg_ETypeXX_names[0],
-        self);
-}
diff --git a/tools/cg-load/factory-cmn.h b/tools/cg-load/factory-cmn.h
deleted file mode 100644
index a2eaaaa..0000000
--- a/tools/cg-load/factory-cmn.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_factory_cmh_h_
-#define _tools_cg_load_factory_cmh_h_
-
-#include <klib/defs.h>
-#include "defs.h"
-
-typedef CGFIELD_LIBRARY_TYPE CGFIELD15_LIBRARY[32];
-typedef CGFIELD_SAMPLE_TYPE CGFIELD15_SAMPLE[32];
-typedef CGFIELD_SLIDE_TYPE CGFIELD15_SLIDE[CG_SLIDE];
-typedef CGFIELD_LANE_TYPE CGFIELD15_LANE[CG_LANE];
-typedef CGFIELD_CHROMOSOME_TYPE CGFIELD15_CHROMOSOME[CG_CHROMOSOME_NAME];
-typedef CGFIELD_ASSEMBLY_ID_TYPE CGFIELD15_ASSEMBLY_ID[32];
-
-/* VDB-951: make it process invalid #SOFTWARE_VERSION value
-typedef CGFIELD_SOFTWARE_VERSION_TYPE CGFIELD15_SOFTWARE_VERSION[16];*/
-typedef CGFIELD_SOFTWARE_VERSION_TYPE CGFIELD15_SOFTWARE_VERSION[38];
-
-typedef CGFIELD_DBSNP_BUILD_TYPE CGFIELD15_DBSNP_BUILD[8];
-typedef CGFIELD_COSMIC_TYPE CGFIELD15_COSMIC[8];
-typedef CGFIELD_PFAM_DATE_TYPE CGFIELD15_PFAM_DATE[16];
-typedef CGFIELD_MIRBASE_VERSION_TYPE CGFIELD15_MIRBASE_VERSION[8];
-typedef CGFIELD_DGV_VERSION_TYPE CGFIELD15_DGV_VERSION[16];
-typedef CGFIELD_GENERATED_AT_TYPE CGFIELD15_GENERATED_AT[32];
-typedef CGFIELD_GENERATED_BY_TYPE CGFIELD15_GENERATED_BY[32];
-typedef CGFIELD_GENE_ANNOTATIONS_TYPE CGFIELD15_GENE_ANNOTATIONS[16];
-typedef CGFIELD_GENOME_REFERENCE_TYPE CGFIELD15_GENOME_REFERENCE[16];
-typedef CGFIELD_BATCH_FILE_NUMBER_TYPE CGFIELD15_BATCH_FILE_NUMBER;
-typedef CGFIELD_BATCH_OFFSET_TYPE CGFIELD15_BATCH_OFFSET;
-typedef CGFIELD_FIELD_SIZE_TYPE CGFIELD15_FIELD_SIZE;
-typedef CGFIELD_MAX_PLOIDY_TYPE CGFIELD15_MAX_PLOIDY;
-typedef CGFIELD_WINDOW_SHIFT_TYPE CGFIELD15_WINDOW_SHIFT;
-typedef CGFIELD_WINDOW_WIDTH_TYPE CGFIELD15_WINDOW_WIDTH;
-typedef CGFIELD_NUMBER_LEVELS_TYPE CGFIELD15_NUMBER_LEVELS;
-typedef CGFIELD_MEAN_LEVEL_X_TYPE CGFIELD15_MEAN_LEVEL_X;
-
-#endif /* _tools_cg_load_factory_cmh_h_ */
diff --git a/tools/cg-load/factory-evidence-dnbs.c b/tools/cg-load/factory-evidence-dnbs.c
deleted file mode 100644
index a4af12b..0000000
--- a/tools/cg-load/factory-evidence-dnbs.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-
-typedef struct CGEvidenceDnbs15 CGEvidenceDnbs15;
-#define CGFILETYPE_IMPL CGEvidenceDnbs15
-#include "file.h"
-#include "factory-cmn.h"
-#include "factory-evidence-dnbs.h"
-#include "debug.h"
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-
-struct CGEvidenceDnbs15 {
-    CGFileType dad;
-    const CGLoaderFile* file;
-    uint64_t records;
-    /* headers */
-    CGFIELD15_ASSEMBLY_ID assembly_id;
-    CGFIELD15_CHROMOSOME chromosome;
-    CGFIELD15_GENERATED_AT generated_at;
-    CGFIELD15_GENERATED_BY generated_by;
-    CGFIELD15_SAMPLE sample;
-    CGFIELD15_SOFTWARE_VERSION software_version;
-};
-
-void CGEvidenceDnbs15_Release(const CGEvidenceDnbs15* cself, uint64_t* records)
-{
-    if( cself != NULL ) {
-        CGEvidenceDnbs15* self = (CGEvidenceDnbs15*)cself;
-        if( records != NULL ) {
-            *records = cself->records;
-        }
-        free(self);
-    }
-}
-
-static
-rc_t CC CGEvidenceDnbs15_Header(const CGEvidenceDnbs15* cself, const char* buf, const size_t len)
-{
-    rc_t rc = 0;
-    size_t slen;
-    CGEvidenceDnbs15* self = (CGEvidenceDnbs15*)cself;
-
-    if( strncmp("ASSEMBLY_ID\t", buf, slen = 12) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->assembly_id, sizeof(self->assembly_id));
-    } else if( strncmp("CHROMOSOME\t", buf, slen = 11) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->chromosome, sizeof(self->chromosome));
-    } else if( strncmp("GENERATED_AT\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_at, sizeof(self->generated_at));
-    } else if( strncmp("GENERATED_BY\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_by, sizeof(self->generated_by));
-    } else if( strncmp("SAMPLE\t", buf, slen = 7) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->sample, sizeof(self->sample));
-    } else if( strncmp("SOFTWARE_VERSION\t", buf, slen = 17) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->software_version, sizeof(self->software_version));
-    } else {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcName, rcUnrecognized);
-    }
-    return rc;
-}
-
-static
-rc_t CGEvidenceDnbs15_GetAssemblyId(const CGEvidenceDnbs15* cself, const CGFIELD_ASSEMBLY_ID_TYPE** assembly_id)
-{
-    if( cself->assembly_id[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *assembly_id = cself->assembly_id;
-    return 0;
-}
-
-static
-rc_t CGEvidenceDnbs15_GetSample(const CGEvidenceDnbs15* cself, const CGFIELD_SAMPLE_TYPE** sample)
-{
-    if( cself->sample[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *sample = cself->sample;
-    return 0;
-}
-
-static
-rc_t CGEvidenceDnbs15_GetChromosome(const CGEvidenceDnbs15* cself, const CGFIELD_CHROMOSOME_TYPE** chromosome)
-{
-    if( cself->chromosome[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *chromosome = cself->chromosome;
-    return 0;
-}
-
-static
-rc_t CC CGEvidenceDnbs_Read(const CGEvidenceDnbs15* cself, const char* interval_id, TEvidenceDnbsData* data, int score_allele_num)
-{
-    rc_t rc = 0;
-    TEvidenceDnbsData_dnb* m = NULL;
-    static TEvidenceDnbsData_dnb next_rec;
-    static char next_interval_id[32] = "";
-
-    /* local copy of unused TEvidenceDnbsData_dnb struct elements */
-    char reference_alignment[CG_EVDNC_ALLELE_CIGAR_LEN];
-    INSDC_coord_zero mate_offset_in_reference;
-    char mate_reference_alignment[CG_EVDNC_ALLELE_CIGAR_LEN];
-    uint16_t score_allele[4] = {0, 0, 0, 0}; /* v1.5 has ScoreAllele[012]; v2.0 - [0123] */
-    char qual[CG_EVDNC_SPOT_LEN];
-
-    strcpy(data->interval_id, interval_id);
-    data->qty = 0;
-    /* already read one rec for this interval_id */
-    if( next_interval_id[0] != '\0' ) {
-        if( strcmp(next_interval_id, interval_id) != 0 ) {
-            /* nothing todo since next interval id is different */
-            return rc;
-        }
-        m = &data->dnbs[data->qty++];
-        memcpy(m, &next_rec, sizeof(next_rec));
-        DEBUG_MSG(10, ("%3u evidenceDnbs: '%s'\t'%s'\t'%s'\t'%s'\t%u\t%lu\t%hu\t%c\t%c\t%i\t'%.*s'"
-                        "\t%i\tnot_used\t0\tnot_used\t%c\t0\t0\t0\t'%.*s'\t'--'\n",
-            data->qty, next_interval_id, m->chr, m->slide, m->lane, m->file_num_in_lane,
-            m->dnb_offset_in_lane_file, m->allele_index, m->side, m->strand, m->offset_in_allele,
-            m->allele_alignment_length, m->allele_alignment, m->offset_in_reference,
-            m->mapping_quality, m->read_len, m->read));
-    }
-    do {
-        int i = 0;
-        char tmp[2];
-        CG_LINE_START(cself->file, b, len, p);
-        if( b == NULL || len == 0 ) {
-            next_interval_id[0] = '\0';
-            break; /* EOF */
-        }
-        if( data->qty >= data->max_qty ) {
-            TEvidenceDnbsData_dnb* x;
-            data->max_qty += 100;
-            x = realloc(data->dnbs, sizeof(*(data->dnbs)) * data->max_qty);
-            if( x == NULL ) {
-                rc = RC(rcRuntime, rcFile, rcReading, rcMemory, rcExhausted);
-                break;
-            }
-            data->dnbs = x;
-        }
-        m = &data->dnbs[data->qty++];
-
-        /*DEBUG_MSG(10, ("%2hu evidenceDnbs: '%.*s'\n", data->qty, len, b));*/
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, next_interval_id, sizeof(next_interval_id));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, m->chr, sizeof(m->chr));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, m->slide, sizeof(m->slide));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, m->lane, sizeof(m->lane));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2u32(b, p - b, &m->file_num_in_lane);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2u64(b, p - b, &m->dnb_offset_in_lane_file);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2u16(b, p - b, &m->allele_index);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, tmp, sizeof(tmp));
-        if( tmp[0] != 'L' && tmp[0] != 'R' ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-        }
-        m->side = tmp[0];
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, tmp, sizeof(tmp));
-        if( tmp[0] != '+' && tmp[0] != '-' ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-        }
-        m->strand = tmp[0];
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i32(b, p - b, &m->offset_in_allele);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, m->allele_alignment, sizeof(m->allele_alignment));
-        m->allele_alignment_length = p - b;
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i32(b, p - b, &m->offset_in_reference);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, reference_alignment, sizeof(reference_alignment));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i32(b, p - b, &mate_offset_in_reference);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, mate_reference_alignment, sizeof(mate_reference_alignment));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, tmp, sizeof(tmp));
-        if( tmp[0] < 33 || tmp[0] > 126 ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-        }
-        m->mapping_quality = tmp[0];
-        for (i = 0; i < score_allele_num; ++i) {
-            CG_LINE_NEXT_FIELD(b, len, p);
-            rc = str2u16(b, p - b, &score_allele[i]);
-	    if(rc){
-		score_allele[i] =0;
-		rc =0;
-	    }
-        }
-        CG_LINE_NEXT_FIELD(b, len, p);
-        m->read_len = p - b;
-        rc = str2buf(b, m->read_len, m->read, sizeof(m->read));
-        CG_LINE_LAST_FIELD(b, len, p);
-        if( m->read_len != p - b ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcInconsistent);
-        } else {
-            rc = str2buf(b, p - b, qual, sizeof(qual));
-        }
-        ((CGEvidenceDnbs15*)cself)->records++;
-        if( strcmp(next_interval_id, data->interval_id) != 0 ) {
-            if (score_allele_num == 3) {
-              DEBUG_MSG(10, ("%3u evidenceDnbs: '%s'\t'%s'\t'%s'\t'%s'\t%u\t%lu\t%hu\t%c\t%c\t%i\t'%.*s'"
-                            "\t%i\t'%s'\t%i\t'%s'\t%c\t%hu\t%hu\t%hu\t'%.*s'\t'%s'\n",
-                data->qty, next_interval_id, m->chr, m->slide, m->lane, m->file_num_in_lane,
-                m->dnb_offset_in_lane_file, m->allele_index, m->side, m->strand, m->offset_in_allele,
-                m->allele_alignment_length, m->allele_alignment, m->offset_in_reference,
-                reference_alignment, mate_offset_in_reference, mate_reference_alignment,
-                m->mapping_quality, score_allele[0], score_allele[1], score_allele[2], m->read_len, m->read, qual));
-            }
-            else if (score_allele_num == 4) {
-              DEBUG_MSG(10, ("%3u evidenceDnbs: '%s'\t'%s'\t'%s'\t'%s'\t%u\t%lu\t%hu\t%c\t%c\t%i\t'%.*s'"
-                            "\t%i\t'%s'\t%i\t'%s'\t%c\t%hu\t%hu\t%hu\t%hu\t'%.*s'\t'%s'\n",
-                data->qty, next_interval_id, m->chr, m->slide, m->lane, m->file_num_in_lane,
-                m->dnb_offset_in_lane_file, m->allele_index, m->side, m->strand, m->offset_in_allele,
-                m->allele_alignment_length, m->allele_alignment, m->offset_in_reference,
-                reference_alignment, mate_offset_in_reference, mate_reference_alignment,
-                m->mapping_quality, score_allele[0], score_allele[1], score_allele[2], score_allele[3], m->read_len, m->read, qual));
-            }
-            else { assert(0); }
-        }
-        CG_LINE_END();
-        if( next_interval_id[0] == '\0' ) {
-            break;
-        }
-        if( strcmp(next_interval_id, data->interval_id) != 0 ) {
-            /* next record is from next interval, remeber it and stop */
-            memcpy(&next_rec, m, sizeof(next_rec));
-            data->qty--;
-            break;
-        }
-    } while( rc == 0 );
-    return rc;
-}
-
-static
-rc_t CC CGEvidenceDnbs15_Read(const CGEvidenceDnbs15* self, const char* interval_id, TEvidenceDnbsData* data)
-{   return CGEvidenceDnbs_Read(self, interval_id, data, 3); }
-
-static
-rc_t CC CGEvidenceDnbs20_Read(const CGEvidenceDnbs15* self, const char* interval_id, TEvidenceDnbsData* data)
-{   return CGEvidenceDnbs_Read(self, interval_id, data, 4); }
-
-static const CGFileType_vt CGEvidenceDnbs15_vt =
-{
-    CGEvidenceDnbs15_Header,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceDnbs15_Read,
-    CGEvidenceDnbs15_GetAssemblyId,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceDnbs15_GetSample,
-    CGEvidenceDnbs15_GetChromosome,
-    CGEvidenceDnbs15_Release
-};
-
-static const CGFileType_vt CGEvidenceDnbs20_vt =
-{
-    CGEvidenceDnbs15_Header,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceDnbs20_Read,
-    CGEvidenceDnbs15_GetAssemblyId,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceDnbs15_GetSample,
-    CGEvidenceDnbs15_GetChromosome,
-    CGEvidenceDnbs15_Release
-};
-
-static
-rc_t CC CGEvidenceDnbs_Make(const CGFileType** cself, const CGLoaderFile* file,
-                              const CGFileType_vt* vt)
-{
-    rc_t rc = 0;
-    CGEvidenceDnbs15* obj = NULL;
-
-    assert(vt);
-
-    if( cself == NULL || file == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcParam, rcNull);
-    } else {
-        *cself = NULL;
-        if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcMemory, rcExhausted);
-        } else {
-            obj->file = file;
-            obj->dad.type = cg_eFileType_EVIDENCE_DNBS;
-            obj->dad.vt = vt;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = &obj->dad;
-    } else {
-        CGEvidenceDnbs15_Release(obj, NULL);
-    }
-    return rc;
-}
-
-rc_t CC CGEvidenceDnbs15_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGEvidenceDnbs_Make(self, file, &CGEvidenceDnbs15_vt); }
-
-rc_t CC CGEvidenceDnbs13_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGEvidenceDnbs15_Make(self, file); }
-
-rc_t CC CGEvidenceDnbs20_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGEvidenceDnbs_Make(self, file, &CGEvidenceDnbs20_vt); }
-
-rc_t CC CGEvidenceDnbs22_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGEvidenceDnbs_Make(self, file, &CGEvidenceDnbs20_vt); }
diff --git a/tools/cg-load/factory-evidence-dnbs.h b/tools/cg-load/factory-evidence-dnbs.h
deleted file mode 100644
index 4ba4b4f..0000000
--- a/tools/cg-load/factory-evidence-dnbs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_factory_evidence_dnbs_h_
-#define _tools_cg_load_factory_evidence_dnbs_h_
-
-#include <klib/defs.h>
-
-struct CGFileType;
-struct CGLoaderFile;
-
-rc_t CC CGEvidenceDnbs13_Make(const struct CGFileType** self,
-                              const struct CGLoaderFile* file);
-rc_t CC CGEvidenceDnbs15_Make(const struct CGFileType** self,
-                              const struct CGLoaderFile* file);
-rc_t CC CGEvidenceDnbs20_Make(const struct CGFileType** self,
-                              const struct CGLoaderFile* file);
-rc_t CC CGEvidenceDnbs22_Make(const struct CGFileType** self,
-                              const struct CGLoaderFile* file);
-
-#endif /* _tools_cg_load_factory_evidence_dnbs_h_ */
diff --git a/tools/cg-load/factory-evidence-intervals.c b/tools/cg-load/factory-evidence-intervals.c
deleted file mode 100644
index 1705bdc..0000000
--- a/tools/cg-load/factory-evidence-intervals.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-
-typedef struct CGEvidenceIntervals15 CGEvidenceIntervals15;
-#define CGFILETYPE_IMPL CGEvidenceIntervals15
-#include "file.h"
-#include "factory-cmn.h"
-#include "factory-evidence-intervals.h"
-#include "debug.h"
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-struct CGEvidenceIntervals15 {
-    CGFileType dad;
-    const CGLoaderFile* file;
-    uint64_t records;
-    /* headers */
-    CGFIELD15_ASSEMBLY_ID assembly_id;
-    CGFIELD15_CHROMOSOME chromosome;
-    CGFIELD15_GENERATED_AT generated_at;
-    CGFIELD15_GENERATED_BY generated_by;
-    CGFIELD15_SAMPLE sample;
-    CGFIELD15_SOFTWARE_VERSION software_version;
-};
-
-static
-rc_t CC CGEvidenceIntervals15_Header(const CGEvidenceIntervals15* cself, const char* buf, const size_t len)
-{
-    rc_t rc = 0;
-    size_t slen;
-    CGEvidenceIntervals15* self = (CGEvidenceIntervals15*)cself;
-
-    if( strncmp("ASSEMBLY_ID\t", buf, slen = 12) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->assembly_id, sizeof(self->assembly_id));
-    } else if( strncmp("CHROMOSOME\t", buf, slen = 11) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->chromosome, sizeof(self->chromosome));
-    } else if( strncmp("GENERATED_AT\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_at, sizeof(self->generated_at));
-    } else if( strncmp("GENERATED_BY\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_by, sizeof(self->generated_by));
-    } else if( strncmp("SAMPLE\t", buf, slen = 7) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->sample, sizeof(self->sample));
-    } else if( strncmp("SOFTWARE_VERSION\t", buf, slen = 17) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->software_version, sizeof(self->software_version));
-    } else {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcName, rcUnrecognized);
-    }
-    return rc;
-}
-
-static
-rc_t CGEvidenceIntervals15_GetAssemblyId(const CGEvidenceIntervals15* cself, const CGFIELD_ASSEMBLY_ID_TYPE** assembly_id)
-{
-    if( cself->assembly_id[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *assembly_id = cself->assembly_id;
-    return 0;
-}
-
-static
-rc_t CGEvidenceIntervals15_GetSample(const CGEvidenceIntervals15* cself, const CGFIELD_SAMPLE_TYPE** sample)
-{
-    if( cself->sample[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *sample = cself->sample;
-    return 0;
-}
-
-static
-rc_t CGEvidenceIntervals15_GetChromosome(const CGEvidenceIntervals15* cself, const CGFIELD_CHROMOSOME_TYPE** chromosome)
-{
-    if( cself->chromosome[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *chromosome = cself->chromosome;
-    return 0;
-}
-
-static
-rc_t CC CGEvidenceIntervals15_Read(const CGEvidenceIntervals15* cself, TEvidenceIntervalsData* data)
-{
-    rc_t rc = 0;
-
-    CG_LINE_START(cself->file, b, len, p);
-    if( b == NULL || len == 0) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcData, rcDone);
-        break;
-    }
-    /*DEBUG_MSG(10, ("evidenceIntervals: '%.*s'\n", len, b));*/
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->interval_id, sizeof(data->interval_id));
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->chr, sizeof(data->chr));
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2i32(b, p - b, &data->offset);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2u32(b, p - b, &data->length);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2u16(b, p - b, &data->ploidy);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele_indexes, sizeof(data->allele_indexes));
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2i32(b, p - b, &data->score);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele[0], sizeof(data->allele[0]));
-    data->allele_length[0] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele[1], sizeof(data->allele[1]));
-    data->allele_length[1] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele[2], sizeof(data->allele[2]));
-    data->allele_length[2] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele_alignment[1], sizeof(data->allele_alignment[1]));
-    data->allele_alignment_length[1] = p - b;
-    CG_LINE_LAST_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele_alignment[2], sizeof(data->allele_alignment[2]));
-    data->allele_alignment_length[2] = p - b;
-    ((CGEvidenceIntervals15*)cself)->records++;
-    DEBUG_MSG(10, ("evidenceIntervals: '%s'\t'%s'\t%i\t%u\t%u\t%s\t%u\t'%s'\t'%s'\t'%s'\t'%s'\t'%s'\n",
-        data->interval_id, data->chr, data->offset, data->length, data->ploidy,
-        data->allele_indexes, data->score, data->allele[0], data->allele[1], data->allele[2],
-        data->allele_alignment[1], data->allele_alignment[2]));
-    CG_LINE_END();
-    return rc;
-}
-
-static
-rc_t CC CGEvidenceIntervals20_Read(const CGEvidenceIntervals15* cself, TEvidenceIntervalsData* data)
-{
-    rc_t rc = 0;
-
-    CG_LINE_START(cself->file, b, len, p);
-    if( b == NULL || len == 0) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcData, rcDone);
-        break;
-    }
-    /*DEBUG_MSG(10, ("evidenceIntervals: '%.*s'\n", len, b));*/
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->interval_id, sizeof(data->interval_id));
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->chr, sizeof(data->chr));
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2i32(b, p - b, &data->offset);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2u32(b, p - b, &data->length);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2u16(b, p - b, &data->ploidy);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele_indexes, sizeof(data->allele_indexes));
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2i32(b, p - b, &data->scoreVAF);
-    data->score = data->scoreVAF; /***TODO: do we need re-calculation? ***/
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2i32(b, p - b, &data->scoreEAF);
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele[0], sizeof(data->allele[0]));
-    data->allele_length[0] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele[1], sizeof(data->allele[1]));
-    data->allele_length[1] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele[2], sizeof(data->allele[2]));
-    data->allele_length[2] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele[3], sizeof(data->allele[3]));
-    data->allele_length[3] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele_alignment[1], sizeof(data->allele_alignment[1]));
-    data->allele_alignment_length[1] = p - b;
-    CG_LINE_NEXT_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele_alignment[2], sizeof(data->allele_alignment[2]));
-    data->allele_alignment_length[2] = p - b;
-    CG_LINE_LAST_FIELD(b, len, p);
-    rc = str2buf(b, p - b, data->allele_alignment[3], sizeof(data->allele_alignment[3]));
-    data->allele_alignment_length[3] = p - b;
-    ((CGEvidenceIntervals15*)cself)->records++;
-    DEBUG_MSG(10, (
-        "evidenceIntervals: '%s'\t'%s'\t%i\t%u\t%u\t%s\t%u\t%u\t'%s'\t'%s'\t'%s'\t'%s'\t'%s'\t'%s'\t'%s'\n",
-        data->interval_id, data->chr, data->offset, data->length, data->ploidy,
-        data->allele_indexes, data->scoreVAF, data->scoreEAF,
-        data->allele[0], data->allele[1], data->allele[2], data->allele[3],
-        data->allele_alignment[1], data->allele_alignment[2], data->allele_alignment[3]));
-    CG_LINE_END();
-    return rc;
-}
-
-static
-void CC CGEvidenceIntervals15_Release(const CGEvidenceIntervals15* cself, uint64_t* records)
-{
-    if( cself != NULL ) {
-        CGEvidenceIntervals15* self = (CGEvidenceIntervals15*)cself;
-        if( records != NULL ) {
-            *records = cself->records;
-        }
-        free(self);
-    }
-}
-
-static const CGFileType_vt CGEvidenceIntervals15_vt =
-{
-    CGEvidenceIntervals15_Header,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceIntervals15_Read,
-    NULL,
-    CGEvidenceIntervals15_GetAssemblyId,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceIntervals15_GetSample,
-    CGEvidenceIntervals15_GetChromosome,
-    CGEvidenceIntervals15_Release
-};
-
-static const CGFileType_vt CGEvidenceIntervals20_vt =
-{
-    CGEvidenceIntervals15_Header,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceIntervals20_Read,
-    NULL,
-    CGEvidenceIntervals15_GetAssemblyId,
-    NULL,
-    NULL,
-    NULL,
-    CGEvidenceIntervals15_GetSample,
-    CGEvidenceIntervals15_GetChromosome,
-    CGEvidenceIntervals15_Release
-};
-
-static
-rc_t CGEvidenceIntervals_Make(const CGFileType** cself, const CGLoaderFile* file, const CGFileType_vt* vt)
-{
-    rc_t rc = 0;
-    CGEvidenceIntervals15* obj = NULL;
-
-    assert(vt);
-
-    if( cself == NULL || file == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcParam, rcNull);
-    }
-    if( rc == 0 ) {
-        *cself = NULL;
-        if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcMemory, rcExhausted);
-        } else {
-            obj->file = file;
-            obj->dad.type = cg_eFileType_EVIDENCE_INTERVALS;
-            obj->dad.vt = vt;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = &obj->dad;
-    } else {
-        CGEvidenceIntervals15_Release(obj, NULL);
-    }
-    return rc;
-}
-
-rc_t CGEvidenceIntervals15_Make(const CGFileType** self,
-    const CGLoaderFile* file)
-{   return CGEvidenceIntervals_Make(self, file, &CGEvidenceIntervals15_vt); }
-
-rc_t CGEvidenceIntervals13_Make(const CGFileType** self,
-    const CGLoaderFile* file)
-{   return CGEvidenceIntervals15_Make(self, file); }
-
-rc_t CGEvidenceIntervals20_Make(const CGFileType** self,
-    const CGLoaderFile* file)
-{   return CGEvidenceIntervals_Make(self, file, &CGEvidenceIntervals20_vt); }
-
-rc_t CGEvidenceIntervals22_Make(const CGFileType** self,
-    const CGLoaderFile* file)
-{   return CGEvidenceIntervals20_Make(self, file); }
diff --git a/tools/cg-load/factory-evidence-intervals.h b/tools/cg-load/factory-evidence-intervals.h
deleted file mode 100644
index 2f84fd4..0000000
--- a/tools/cg-load/factory-evidence-intervals.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_factory_evidence_intervals_h_
-#define _tools_cg_load_factory_evidence_intervals_h_
-
-#include <klib/defs.h>
-
-struct CGFileType;
-struct CGLoaderFile;
-
-rc_t CGEvidenceIntervals13_Make(const struct CGFileType** self,
-                                const struct CGLoaderFile* file);
-rc_t CGEvidenceIntervals15_Make(const struct CGFileType** self,
-                                const struct CGLoaderFile* file);
-rc_t CGEvidenceIntervals20_Make(const struct CGFileType** self,
-                                const struct CGLoaderFile* file);
-rc_t CGEvidenceIntervals22_Make(const struct CGFileType** self,
-                                const struct CGLoaderFile* file);
-
-#endif /* _tools_cg_load_factory_evidence_intervals_h_ */
diff --git a/tools/cg-load/factory-file.h b/tools/cg-load/factory-file.h
deleted file mode 100644
index 8931fca..0000000
--- a/tools/cg-load/factory-file.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_factory_file_h_
-#define _tools_cg_load_factory_file_h_
-
-#include <klib/defs.h>
-
-struct CGFileType;
-struct CGLoaderFile;
-
-rc_t CGFile13_Make(const struct CGFileType** self,
-                   const char* type, const struct CGLoaderFile* file);
-rc_t CGFile15_Make(const struct CGFileType** self,
-                   const char* type, const struct CGLoaderFile* file);
-rc_t CGFile20_Make(const struct CGFileType** self,
-                   const char* type, const struct CGLoaderFile* file);
-rc_t CGFile22_Make(const struct CGFileType** self,
-                   const char* type, const struct CGLoaderFile* file);
-
-#endif /* _tools_cg_load_factory_file_h_ */
diff --git a/tools/cg-load/factory-mappings.c b/tools/cg-load/factory-mappings.c
deleted file mode 100644
index 43537f2..0000000
--- a/tools/cg-load/factory-mappings.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-
-typedef struct CGMappings15 CGMappings15;
-#define CGFILETYPE_IMPL CGMappings15
-#include "file.h"
-#include "factory-cmn.h"
-#include "factory-mappings.h"
-#include "debug.h"
-
-#include <string.h>
-#include <stdlib.h>
-
-struct CGMappings15 {
-    CGFileType dad;
-    const CGLoaderFile* file;
-    uint64_t records;
-    /* headers */
-    CGFIELD15_ASSEMBLY_ID assembly_id;
-    CGFIELD15_BATCH_FILE_NUMBER batch_file_number;
-    CGFIELD15_GENERATED_AT generated_at;
-    CGFIELD15_GENERATED_BY generated_by;
-    CGFIELD15_LANE lane;
-    CGFIELD15_LIBRARY library;
-    CGFIELD15_SAMPLE sample;
-    CGFIELD15_SLIDE slide;
-    CGFIELD15_SOFTWARE_VERSION software_version;
-};
-
-void CGMappings15_Release(const CGMappings15* cself, uint64_t* records)
-{
-    if( cself != NULL ) {
-        CGMappings15* self = (CGMappings15*)cself;
-        if( records != NULL ) {
-            *records = cself->records;
-        }
-        free(self);
-    }
-}
-
-static
-rc_t CC CGMappings15_Header(const CGMappings15* cself, const char* buf, const size_t len)
-{
-    rc_t rc = 0;
-    size_t slen;
-    CGMappings15* self = (CGMappings15*)cself;
-
-    if( strncmp("ASSEMBLY_ID\t", buf, slen = 12) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->assembly_id, sizeof(self->assembly_id));
-    } else if( strncmp("BATCH_FILE_NUMBER\t", buf, slen = 18) == 0 ) {
-        rc = str2u32(&buf[slen], len - slen, &self->batch_file_number);
-        if( self->batch_file_number < 1 ) {
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcItem, rcOutofrange);
-        }
-    } else if( strncmp("GENERATED_AT\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_at, sizeof(self->generated_at));
-    } else if( strncmp("GENERATED_BY\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_by, sizeof(self->generated_by));
-    } else if( strncmp("LANE\t", buf, slen = 5) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->lane, sizeof(self->lane));
-    } else if( strncmp("LIBRARY\t", buf, slen = 8) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->library, sizeof(self->library));
-    } else if( strncmp("SAMPLE\t", buf, slen = 7) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->sample, sizeof(self->sample));
-    } else if( strncmp("SLIDE\t", buf, slen = 6) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->slide, sizeof(self->slide));
-    } else if( strncmp("SOFTWARE_VERSION\t", buf, slen = 17) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->software_version, sizeof(self->software_version));
-    } else {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcName, rcUnrecognized);
-    }
-    return rc;
-}
-
-static
-rc_t CGMappings15_GetAssemblyId(const CGMappings15* cself, const CGFIELD_ASSEMBLY_ID_TYPE** assembly_id)
-{
-    if( cself->assembly_id[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *assembly_id = cself->assembly_id;
-    return 0;
-}
-
-static
-rc_t CGMappings15_GetSlide(const CGMappings15* cself, const CGFIELD_SLIDE_TYPE** slide)
-{
-    if( cself->slide[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *slide = cself->slide;
-    return 0;
-}
-
-static
-rc_t CGMappings15_GetLane(const CGMappings15* cself, const CGFIELD_LANE_TYPE** lane)
-{
-    if( cself->lane[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *lane = cself->lane;
-    return 0;
-}
-
-static
-rc_t CGMappings15_GetBatchFileNumber(const CGMappings15* cself, const CGFIELD_BATCH_FILE_NUMBER_TYPE** batch_file_number)
-{
-    *batch_file_number = &cself->batch_file_number;
-    return 0;
-}
-
-static
-rc_t CC CGMappings15_Read(const CGMappings15* cself, TMappingsData* data)
-{
-    rc_t rc = 0;
-    TMappingsData_map* m = NULL;
-
-    data->map_qty = 0;
-    do {
-        char tmp[2];
-        CG_LINE_START(cself->file, b, len, p);
-        if( b == NULL || len == 0 ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcInsufficient);
-            break;
-        }
-        m = &data->map[data->map_qty];
-        m->saved = false;
-        /*DEBUG_MSG(10, ("mappings %4u: '%.*s'\n", data->map_qty, len, b));*/
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2u16(b, p - b, &m->flags);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, m->chr, sizeof(m->chr));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i32(b, p - b, &m->offset);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i16(b, p - b, &m->gap[0]);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i16(b, p - b, &m->gap[1]);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i16(b, p - b, &m->gap[2]);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, tmp, sizeof(tmp));
-        if( tmp[0] < 33 || tmp[0] > 126 ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-        }
-        m->weight = tmp[0];
-        CG_LINE_LAST_FIELD(b, len, p);
-        if( (rc = str2u32(b, p - b, &m->mate)) != 0 ) {
-        } else if( m->flags > 7 ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-        } else if( ++data->map_qty >= CG_MAPPINGS_MAX ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcBuffer, rcInsufficient);
-        }
-        ((CGMappings15*)cself)->records++;
-        DEBUG_MSG(10, ("mappings %4u:  %u\t'%s'\t%u\t%i\t%i\t%i\t%c\t%u\n",
-                        data->map_qty - 1, m->flags, m->chr, m->offset,
-                        m->gap[0], m->gap[1], m->gap[2], m->weight, m->mate));
-        CG_LINE_END();
-    } while( rc == 0 && !(m->flags & cg_eLastDNBRecord) );
-    if (rc == 0) {
-        unsigned i;
-        unsigned const n = data->map_qty;
-        
-        for (i = 0; i != n && rc == 0; ++i) {
-            unsigned const mate = data->map[i].mate;
-            
-            if (mate > n)
-                data->map[i].mate = i;
-        }
-    }
-    return rc;
-}
-
-static
-rc_t CC CGMappings22_Read(const CGMappings15* cself, TMappingsData* data)
-{
-    rc_t rc = 0;
-    TMappingsData_map* m = NULL;
-
-    data->map_qty = 0;
-    do {
-        char tmp[2];
-        char armWeight = '\0';
-        CG_LINE_START(cself->file, b, len, p);
-        if( b == NULL || len == 0 ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcInsufficient);
-            break;
-        }
-        m = &data->map[data->map_qty];
-        m->saved = false;
-        /*DEBUG_MSG(10, ("mappings %4u: '%.*s'\n", data->map_qty, len, b));*/
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2u16(b, p - b, &m->flags);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, m->chr, sizeof(m->chr));
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i32(b, p - b, &m->offset);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i16(b, p - b, &m->gap[0]);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i16(b, p - b, &m->gap[1]);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2i16(b, p - b, &m->gap[2]);
-        CG_LINE_NEXT_FIELD(b, len, p);
-        rc = str2buf(b, p - b, tmp, sizeof(tmp));
-        if( tmp[0] < 33 || tmp[0] > 126 ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-        }
-        m->weight = tmp[0];
-        CG_LINE_NEXT_FIELD(b, len, p);
-        if( (rc = str2u32(b, p - b, &m->mate)) != 0 ) {
-        } else if( m->flags > 7 ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-        } else if( ++data->map_qty >= CG_MAPPINGS_MAX ) {
-            rc = RC(rcRuntime, rcFile, rcReading, rcBuffer, rcInsufficient);
-        }
-        CG_LINE_LAST_FIELD(b, len, p);
-        rc = str2buf(b, p - b, tmp, sizeof(tmp));
-        if (tmp[0] < 33 || tmp[0] > 126)
-        {   rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange); }
-        armWeight = tmp[0]; /* ignore armWeight */
-        ((CGMappings15*)cself)->records++;
-        DEBUG_MSG(10, ("mappings %4u:  %u\t'%s'\t%u\t%i\t%i\t%i\t%c\t%u\t%c\n",
-            data->map_qty - 1, m->flags, m->chr, m->offset,
-            m->gap[0], m->gap[1], m->gap[2], m->weight, m->mate, armWeight));
-        CG_LINE_END();
-    } while( rc == 0 && !(m->flags & cg_eLastDNBRecord) );
-    if (rc == 0) {
-        unsigned i;
-        unsigned const n = data->map_qty;
-        
-        for (i = 0; i != n && rc == 0; ++i) {
-            unsigned const mate = data->map[i].mate;
-            
-            if (mate > n)
-                data->map[i].mate = n;
-        }
-    }
-    return rc;
-}
-
-static const CGFileType_vt CGMappings15_vt =
-{
-    CGMappings15_Header,
-    NULL,
-    NULL,
-    CGMappings15_Read,
-    NULL,
-    NULL,
-    CGMappings15_GetAssemblyId,
-    CGMappings15_GetSlide,
-    CGMappings15_GetLane,
-    CGMappings15_GetBatchFileNumber,
-    NULL,
-    NULL,
-    CGMappings15_Release
-};
-
-static const CGFileType_vt CGMappings22_vt =
-{
-    CGMappings15_Header,
-    NULL,
-    NULL,
-    CGMappings22_Read,
-    NULL,
-    NULL,
-    CGMappings15_GetAssemblyId,
-    CGMappings15_GetSlide,
-    CGMappings15_GetLane,
-    CGMappings15_GetBatchFileNumber,
-    NULL,
-    NULL,
-    CGMappings15_Release
-};
-
-static
-rc_t CC CGMappings_Make(const CGFileType** cself,
-    const CGLoaderFile* file, const CGFileType_vt* vt)
-{
-    rc_t rc = 0;
-    CGMappings15* obj = NULL;
-    
-    if( cself == NULL || file == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcParam, rcNull);
-    } else {
-        *cself = NULL;
-        if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcMemory, rcExhausted);
-        } else {
-            obj->file = file;
-            obj->dad.type = cg_eFileType_MAPPINGS;
-            obj->dad.vt = vt;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = &obj->dad;
-    } else {
-        CGMappings15_Release(obj, NULL);
-    }
-    return rc;
-}
-
-rc_t CC CGMappings15_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGMappings_Make(self, file, &CGMappings15_vt); }
-
-rc_t CC CGMappings13_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGMappings15_Make(self, file); }
-
-rc_t CC CGMappings20_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGMappings15_Make(self, file); }
-
-rc_t CC CGMappings22_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGMappings_Make(self, file, &CGMappings22_vt); }
diff --git a/tools/cg-load/factory-mappings.h b/tools/cg-load/factory-mappings.h
deleted file mode 100644
index cc283b7..0000000
--- a/tools/cg-load/factory-mappings.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_factory_mappings_h_
-#define _tools_cg_load_factory_mappings_h_
-
-#include <klib/defs.h>
-
-struct CGFileType;
-struct CGLoaderFile;
-
-rc_t CC CGMappings13_Make(const struct CGFileType** self,
-                          const struct CGLoaderFile* file);
-rc_t CC CGMappings15_Make(const struct CGFileType** self,
-                          const struct CGLoaderFile* file);
-rc_t CC CGMappings20_Make(const struct CGFileType** self,
-                          const struct CGLoaderFile* file);
-rc_t CC CGMappings22_Make(const struct CGFileType** self,
-                          const struct CGLoaderFile* file);
-
-#endif /* _tools_cg_load_factory_mappings_h_ */
diff --git a/tools/cg-load/factory-reads.c b/tools/cg-load/factory-reads.c
deleted file mode 100644
index 8b39f9a..0000000
--- a/tools/cg-load/factory-reads.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-
-typedef struct CGReads15 CGReads15;
-#define CGFILETYPE_IMPL CGReads15
-#include "file.h"
-#include "factory-cmn.h"
-#include "factory-reads.h"
-#include "debug.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <os-native.h>
-
-struct CGReads15 {
-    CGFileType dad;
-    const CGLoaderFile* file;
-    int64_t start_rowid;
-    char spot_group[512];
-    uint64_t records;
-    /* headers */
-    CGFIELD15_ASSEMBLY_ID assembly_id;
-    CGFIELD15_BATCH_FILE_NUMBER batch_file_number;
-    CGFIELD15_BATCH_OFFSET batch_offset;
-    CGFIELD15_FIELD_SIZE field_size;
-    CGFIELD15_GENERATED_AT generated_at;
-    CGFIELD15_GENERATED_BY generated_by;
-    CGFIELD15_LANE lane;
-    CGFIELD15_LIBRARY library;
-    CGFIELD15_SAMPLE sample;
-    CGFIELD15_SLIDE slide;
-    CGFIELD15_SOFTWARE_VERSION software_version;
-};
-
-static
-rc_t CC CGReads15_Header(const CGReads15* cself, const char* buf, const size_t len)
-{
-    rc_t rc = 0;
-    size_t slen;
-    CGReads15* self = (CGReads15*)cself;
-
-    if( strncmp("ASSEMBLY_ID\t", buf, slen = 12) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->assembly_id, sizeof(self->assembly_id));
-    } else if( strncmp("BATCH_FILE_NUMBER\t", buf, slen = 18) == 0 ) {
-        rc = str2u32(&buf[slen], len - slen, &self->batch_file_number);
-        if( self->batch_file_number < 1 ) {
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcItem, rcOutofrange);
-        }
-    } else if( strncmp("BATCH_OFFSET\t", buf, slen = 13) == 0 ) {
-        rc = str2u64(&buf[slen], len - slen, &self->batch_offset);
-    } else if( strncmp("FIELD_SIZE\t", buf, slen = 11) == 0 ) {
-        rc = str2u32(&buf[slen], len - slen, &self->field_size);
-    } else if( strncmp("GENERATED_AT\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_at, sizeof(self->generated_at));
-    } else if( strncmp("GENERATED_BY\t", buf, slen = 13) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->generated_by, sizeof(self->generated_by));
-    } else if( strncmp("LANE\t", buf, slen = 5) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->lane, sizeof(self->lane));
-    } else if( strncmp("LIBRARY\t", buf, slen = 8) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->library, sizeof(self->library));
-    } else if( strncmp("SAMPLE\t", buf, slen = 7) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->sample, sizeof(self->sample));
-    } else if( strncmp("SLIDE\t", buf, slen = 6) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->slide, sizeof(self->slide));
-    } else if( strncmp("SOFTWARE_VERSION\t", buf, slen = 17) == 0 ) {
-        rc = str2buf(&buf[slen], len - slen, self->software_version, sizeof(self->software_version));
-    } else {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcName, rcUnrecognized);
-    }
-    return rc;
-}
-
-static
-rc_t CGReads15_GetAssemblyId(const CGReads15* cself, const CGFIELD_ASSEMBLY_ID_TYPE** assembly_id)
-{
-    if( cself->assembly_id[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *assembly_id = cself->assembly_id;
-    return 0;
-}
-
-static
-rc_t CGReads15_GetSlide(const CGReads15* cself, const CGFIELD_SLIDE_TYPE** slide)
-{
-    if( cself->slide[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *slide = cself->slide;
-    return 0;
-}
-
-static
-rc_t CGReads15_GetLane(const CGReads15* cself, const CGFIELD_LANE_TYPE** lane)
-{
-    if( cself->lane[0] == '\0' ) {
-        return RC(rcRuntime, rcFile, rcReading, rcFormat, rcInvalid);
-    }
-    *lane = cself->lane;
-    return 0;
-}
-
-static
-rc_t CGReads15_GetBatchFileNumber(const CGReads15* cself, const CGFIELD_BATCH_FILE_NUMBER_TYPE** batch_file_number)
-{
-    *batch_file_number = &cself->batch_file_number;
-    return 0;
-}
-
-static
-rc_t CC CGReads15_Read(const CGReads15* cself, TReadsData* data)
-{
-    rc_t rc = 0;
-
-    if( cself->start_rowid == 0 ) {
-        ((CGReads15*)cself)->start_rowid = data->rowid;
-    }
-    CG_LINE_START(cself->file, b, len, p);
-    if( b == NULL || len == 0) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcData, rcDone);
-        break;
-    }
-    /*DEBUG_MSG(10, ("reads: '%.*s'\n", len, b));*/
-    CG_LINE_NEXT_FIELD(b, len, p);
-    if( (rc = str2u16(b, p - b, &data->flags)) != 0 ) {
-    } else if( data->flags > 10 ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcData, rcOutofrange);
-    } else if( (data->flags & 0x03) == 3 || (data->flags & 0x07) == 7 ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcData, rcInvalid);
-    }
-    CG_LINE_NEXT_FIELD(b, len, p);
-    data->seq.sequence.elements = p - b;
-    if( data->seq.sequence.elements != CG_READS_SPOT_LEN ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcData, rcInvalid);
-    } else {
-        rc = str2buf(b, data->seq.sequence.elements, data->read, sizeof(data->read));
-        /* clear cache, set in algnment writer */
-        data->reverse[0] = '\0';
-        data->reverse[CG_READS_SPOT_LEN / 2] = '\0';
-    }
-    CG_LINE_LAST_FIELD(b, len, p);
-    data->seq.quality.elements = p - b;
-    if( data->seq.quality.elements != CG_READS_SPOT_LEN ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcData, rcInvalid);
-    } else {
-        rc = str2buf(b, data->seq.quality.elements, data->qual, sizeof(data->qual));
-    }
-    if( cself->records == 0 ) {
-        size_t w;
-        
-#if 0
-        rc = string_printf(((CGReads15*)cself)->spot_group, sizeof(cself->spot_group), &w, "%s:%s:%s:%04u",
-                           cself->assembly_id, cself->slide, cself->lane, cself->batch_file_number);
-#else
-        rc = string_printf(((CGReads15*)cself)->spot_group, sizeof(cself->spot_group), &w, "%s-%s",
-                           cself->slide, cself->lane);
-#endif
-        data->seq.spot_group.buffer = cself->spot_group;
-        data->seq.spot_group.elements = w;
-    }
-    ((CGReads15*)cself)->records++;
-    DEBUG_MSG(10, ("reads:  %u\t'%s'\t'%s'\n", data->flags, data->read, data->qual));
-    CG_LINE_END();
-    return rc;
-}
-
-static
-rc_t CGReads15_GetStartRow(const CGReads15* cself, int64_t* rowid)
-{
-    *rowid = cself->start_rowid;
-    return 0;
-}
-
-static
-void CC CGReads15_Release(const CGReads15* cself, uint64_t* records)
-{
-    if( cself != NULL ) {
-        CGReads15* self = (CGReads15*)cself;
-        if( records != NULL ) {
-            *records = cself->records;
-        }
-        free(self);
-    }
-}
-
-static const CGFileType_vt CGReads15_vt =
-{
-    CGReads15_Header,
-    CGReads15_Read,
-    CGReads15_GetStartRow,
-    NULL,
-    NULL,
-    NULL,
-    CGReads15_GetAssemblyId,
-    CGReads15_GetSlide,
-    CGReads15_GetLane,
-    CGReads15_GetBatchFileNumber,
-    NULL,
-    NULL,
-    CGReads15_Release
-};
-
-rc_t CC CGReads15_Make(const CGFileType** cself, const CGLoaderFile* file)
-{
-    rc_t rc = 0;
-    CGReads15* obj = NULL;
-    
-    if( cself == NULL || file == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcParam, rcNull);
-    }
-    if( rc == 0 ) {
-        *cself = NULL;
-        if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcMemory, rcExhausted);
-        } else {
-            obj->file = file;
-            obj->dad.type = cg_eFileType_READS;
-            obj->dad.vt = &CGReads15_vt;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = &obj->dad;
-    } else {
-        CGReads15_Release(obj, NULL);
-    }
-    return rc;
-}
-
-rc_t CC CGReads13_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGReads15_Make(self, file); }
-
-rc_t CC CGReads20_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGReads15_Make(self, file); }
-
-rc_t CC CGReads22_Make(const CGFileType** self, const CGLoaderFile* file)
-{   return CGReads15_Make(self, file); }
diff --git a/tools/cg-load/factory-reads.h b/tools/cg-load/factory-reads.h
deleted file mode 100644
index e0266d3..0000000
--- a/tools/cg-load/factory-reads.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_factory_reads_h_
-#define _tools_cg_load_factory_reads_h_
-
-#include <klib/defs.h>
-
-struct CGFileType;
-struct CGLoaderFile;
-
-rc_t CC CGReads13_Make(const struct CGFileType** self,
-                       const struct CGLoaderFile* file);
-rc_t CC CGReads15_Make(const struct CGFileType** self,
-                       const struct CGLoaderFile* file);
-rc_t CC CGReads20_Make(const struct CGFileType** self,
-                       const struct CGLoaderFile* file);
-rc_t CC CGReads22_Make(const struct CGFileType** self,
-                       const struct CGLoaderFile* file);
-
-#endif /* _tools_cg_load_factory_reads_h_ */
diff --git a/tools/cg-load/file-version-factory.c b/tools/cg-load/file-version-factory.c
deleted file mode 100644
index 55372f8..0000000
--- a/tools/cg-load/file-version-factory.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-
-#include "factory-file.h" /* CGFile15_Make ... */
-
-typedef struct CGIgnored CGIgnored;
-#define CGFILETYPE_IMPL CGIgnored
-
-#include "file.h" /* CGLoaderFile */
-
-#include <assert.h>
-
-rc_t CGLoaderFile_CreateCGFile(CGLoaderFile* self,
-    uint32_t FORMAT_VERSION, const char* TYPE)
-{
-    assert(self && !self->cg_file);
-
-    switch (FORMAT_VERSION) {
-        case 0x01030000:
-            return CGFile13_Make(&self->cg_file, TYPE, self);
-        case 0x01050000:
-        case 0x01060000:
-            return CGFile15_Make(&self->cg_file, TYPE, self);
-        case 0x02000000:
-            return CGFile20_Make(&self->cg_file, TYPE, self);
-        case 0x02020000:
-            return CGFile22_Make(&self->cg_file, TYPE, self);
-        default: {
-            const char* name = NULL;
-            rc_t rc = CGLoaderFile_Filename(self, &name);
-            if (rc != 0 || name == NULL)
-            {   name = " | UNKNOWN | "; }
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcData, rcBadVersion);
-            PLOGERR(klogErr, (klogErr, rc,
-                "Unexpected #FORMAT_VERSION value '$(FORMAT_VERSION)' "
-                "in CG file '$(name)'",
-                "FORMAT_VERSION=%X,name=%s", FORMAT_VERSION, name));
-            return rc;
-        }
-    }
-}
-
-struct CGIgnored {
-    CGFileType dad;
-};
-
-static
-void CC CGIgnored_Release(const CGIgnored* cself, uint64_t* records)
-{
-    if( cself != NULL ) {
-        CGIgnored* self = (CGIgnored*)cself;
-        if( records != NULL ) {
-            *records = 0;
-        }
-        free(self);
-    }
-}
-
-static
-rc_t CC CGIgnored_Header(const CGIgnored* cself,
-    const char* buf, const size_t len)
-{
-    return 0;
-}
-
-static const CGFileType_vt CGIgnored_vt =
-{
-    CGIgnored_Header,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    CGIgnored_Release
-};
-
-rc_t CGLoaderFileMakeCGFileType(const CGLoaderFile* self, const char* type,
-    const CGFileTypeFactory* factory, size_t factories,
-    const CGFileType** ftype)
-{
-    rc_t rc = 0;
-    CGIgnored* obj = NULL;
-    uint32_t i;
-
-    if (self == NULL || type == NULL ||
-        factory == NULL || factories == 0 || ftype == NULL)
-    {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcParam, rcNull);
-    }
-    else {
-        *ftype = NULL;
-
-        for (i = 0; i < factories; ++i) {
-            if (strcmp(type, factory[i].name) == 0) {
-                if (factory[i].make != NULL) {
-                    return factory[i].make(ftype, self);
-                } else if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
-                    rc = RC(rcRuntime,
-                        rcFile, rcConstructing, rcMemory, rcExhausted);
-                } else {
-                    obj->dad.vt = &CGIgnored_vt;
-                    obj->dad.type = factory[i].type;
-                }
-                break;
-            }
-        }
-
-        if( obj == NULL ) {
-            const char* name = NULL;
-            rc = CGLoaderFile_Filename(self, &name);
-            if (rc != 0 || name == NULL)
-            {   name = " | UNKNOWN | "; }
-
-            rc = RC(rcRuntime, rcFile, rcConstructing, rcItem, rcUnrecognized);
-            PLOGERR(klogErr, (klogErr, rc,
-                "Unexpected header #TYPE value '$(TYPE)' in CG file '$(name)'",
-                "TYPE=%s,name=%s", type, name));
-        }
-    }
-
-    if( rc == 0 ) {
-        *ftype = &obj->dad;
-    }
-    else {
-        CGIgnored_Release(obj, NULL);
-    }
-
-    return rc;
-}
diff --git a/tools/cg-load/file.c b/tools/cg-load/file.c
deleted file mode 100644
index 0e9a272..0000000
--- a/tools/cg-load/file.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/status.h>
-#include <kfs/directory.h>
-#include <kapp/loader-file.h>
-#include <strtol.h>
-
-#include "defs.h"
-#include "file.h"
-#include "factory-file.h"
-#include "debug.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-rc_t CGLoaderFile_IsEof(const CGLoaderFile* cself, bool* eof)
-{
-    return KLoaderFile_IsEof(cself ? cself->file : NULL, eof);
-}
-
-rc_t CGLoaderFile_Close(const CGLoaderFile* cself)
-{
-    const char* nm;
-
-    if( KLoaderFile_FullName(cself ? cself->file : NULL, &nm) == 0 ) {
-        PLOGMSG(klogInfo, (klogInfo, "File $(file) done", "severity=status,file=%s", nm));
-    }
-    return KLoaderFile_Close(cself ? cself->file : NULL);
-}
-
-rc_t CGLoaderFile_Line(const CGLoaderFile* cself, uint64_t* line)
-{
-    return KLoaderFile_Line(cself ? cself->file : NULL, line);
-}
-
-
-rc_t CGLoaderFile_Readline(const CGLoaderFile* cself, const void** buffer, size_t* length)
-{
-    return KLoaderFile_Readline(cself ? cself->file : NULL, buffer, length);
-}
-
-rc_t CGLoaderFile_Filename(const CGLoaderFile* cself, const char** name)
-{
-    return KLoaderFile_Name(cself ? cself->file : NULL, name);
-}
-
-rc_t CGLoaderFile_LOG(const CGLoaderFile* cself, KLogLevel lvl, rc_t rc, const char *msg, const char *fmt, ...)
-{
-    if( cself != NULL ) {
-        va_list args;
-        va_start(args, fmt);
-        rc = KLoaderFile_VLOG(cself->file, lvl, rc, msg, fmt, args);
-        va_end(args);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_Release(const CGLoaderFile* cself, bool ignored)
-{
-    rc_t rc = 0;
-
-    if( cself ) {
-        CGLoaderFile* self = (CGLoaderFile*)cself;
-        /* may return md5 check error here */
-        if( self->cg_file && self->cg_file->vt->destroy ) {
-            uint64_t recs = 0;
-            self->cg_file->vt->destroy(self->cg_file, &recs);
-            if( rc == 0 && !ignored ) {
-                const char* name = NULL;
-                CGLoaderFile_Filename(cself, &name);
-                STSMSG(0, ("file %s %lu records", name, recs));
-            }
-        }
-        rc = KLoaderFile_Release(self->file, ignored);
-        free(self);
-    }
-    return rc;
-}
-
-static
-rc_t parse_version(const char* buf, size_t len, uint32_t* v)
-{
-    rc_t rc = 0;
-    int i = 0;
-    int64_t q;
-    char* end = (char*)buf;
-    const size_t sz = sizeof(*v) / sizeof(char);
-
-    *v = 0;
-    do {
-        if( i == sz ) {
-            rc = RC(rcRuntime, rcHeader, rcConstructing, rcFile, rcBadVersion);
-        } else {
-            q = strtoi64(end, &end, 10);
-            if( q < 0 || q > 255 ) {
-                rc = RC(rcRuntime, rcHeader, rcConstructing, rcFile, rcBadVersion);
-            } else if( *end == '.' ) {
-                end++;
-            } else if( end - buf < len ) {
-                rc = RC(rcRuntime, rcHeader, rcConstructing, rcFile, rcBadVersion);
-            }
-            *v = *v | ((uint8_t)q << ((sz - ++i) * 8));
-        }
-    } while( rc == 0 && end - buf < len);
-    return rc;
-}
-
-static
-rc_t CGLoaderFile_header(const CGLoaderFile* cself)
-{
-    rc_t rc = 0;
-
-    if( cself->cg_file == NULL ) {
-        CGLoaderFile* self = (CGLoaderFile*)cself;
-        const char* buf;
-        size_t len;
-        uint32_t fver = 0;
-        char type[64];
-
-        do {
-            if( (rc = CGLoaderFile_Readline(self, (const void**)&buf, &len)) == 0 ) {
-                if( buf == NULL ) {
-                    rc = RC(rcRuntime, rcFile, rcConstructing, rcData, rcTooShort);
-                } else if( len == 0 ) {
-                    /* empty line: skip */
-                } else if( buf[0] == '>' ) {
-                    /* start of records */
-                    break;
-                } else if( buf[0] == '#' ) {
-                    len--; buf++;
-                    if( strncmp("FORMAT_VERSION\t", buf, 15) == 0 ) {
-                        rc = parse_version(&buf[15], len - 15, &fver);
-                    } else if( strncmp("TYPE\t", buf, 5) == 0 ) {
-                        rc = str2buf(&buf[5], len - 5, type, sizeof(type));
-                    }
-                } else {
-                    rc = RC(rcRuntime, rcFile, rcConstructing, rcData, rcUnrecognized);
-                }
-            }
-        } while( rc == 0 && self->cg_file == NULL );
-        if( rc == 0 ) {
-            rc = CGLoaderFile_CreateCGFile(self, fver, type);
-
-            if( rc == 0 ) {
-                CGFileType* f = (CGFileType*)self->cg_file;
-                f->format_version = fver;
-                if( f->type == cg_eFileType_Unknown || !f->vt || !f->vt->header ) {
-                    rc = RC(rcRuntime, rcFile, rcConstructing, rcInterface, rcIncomplete);
-                }
-            }
-            if( rc == 0 ) {
-                /* we need to restart file for loading all header by sub class */
-                KLoaderFile_Reset(self->file);
-            }
-            while( rc == 0 ) {
-                if( (rc = CGLoaderFile_Readline(self, (const void**)&buf, &len)) == 0 ) {
-                    if( buf == NULL ) {
-                        rc = RC(rcRuntime, rcFile, rcConstructing, rcData, rcTooShort);
-                    } else if( len == 0 ) {
-                        /* empty line: skip */
-                    } else if( buf[0] == '>' ) {
-                        /* start of records */
-                        break;
-                    } else if( buf[0] == '#' ) {
-                        if( strncmp("FORMAT_VERSION\t", &buf[1], 15) != 0 && strncmp("TYPE\t", &buf[1], 5) != 0 ) {
-                            rc = cself->cg_file->vt->header(cself->cg_file, &buf[1], len - 1);
-                        }
-                    } else {
-                        rc = RC(rcRuntime, rcFile, rcConstructing, rcData, rcUnrecognized);
-                    }
-                }
-            }
-        }
-        /* close file after file is processed, but stay at data start */
-        KLoaderFile_SetReadAhead(self->file, self->read_ahead);
-        KLoaderFile_Close(self->file);
-    }
-
-    return rc;
-}
-
-rc_t CGLoaderFile_Make(const CGLoaderFile** cself, const KDirectory* dir, const char* filename,
-                       const uint8_t* md5_digest, bool read_ahead)
-{
-    rc_t rc = 0;
-    CGLoaderFile* obj = NULL;
-
-    if( cself == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcSelf, rcNull);
-    } else if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcConstructing, rcMemory, rcExhausted);
-    } else if( (rc = KLoaderFile_Make(&obj->file, dir, filename, md5_digest, false)) == 0 ) {
-        obj->read_ahead = read_ahead;
-    }
-    if( rc == 0 ) {
-        *cself = obj;
-    } else {
-        CGLoaderFile_Release(obj, true);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetType(const CGLoaderFile* cself, CG_EFileType* type)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || type == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcClassifying, rcParam, rcNull);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        *type = cself->cg_file->type;
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetRead(const CGLoaderFile* cself, TReadsData* data)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || data == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->type != cg_eFileType_READS ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( cself->cg_file->vt->reads == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcIncomplete);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->reads(cself->cg_file, data);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetStartRow(const CGLoaderFile* cself, int64_t* rowid)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || rowid == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->type != cg_eFileType_READS ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( cself->cg_file->vt->get_start_row == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcIncomplete);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->get_start_row(cself->cg_file, rowid);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetMapping(const CGLoaderFile* cself, TMappingsData* data)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || data == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->type != cg_eFileType_MAPPINGS ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( cself->cg_file->vt->mappings == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcIncomplete);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->mappings(cself->cg_file, data);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetEvidenceIntervals(const CGLoaderFile* cself, TEvidenceIntervalsData* data)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || data == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->type != cg_eFileType_EVIDENCE_INTERVALS ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( cself->cg_file->vt->evidence_intervals == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcIncomplete);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->evidence_intervals(cself->cg_file, data);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetEvidenceDnbs(const CGLoaderFile* cself, const char* interval_id, TEvidenceDnbsData* data)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || interval_id == NULL || data == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->type != cg_eFileType_EVIDENCE_DNBS ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( cself->cg_file->vt->evidence_dnbs == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcIncomplete);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->evidence_dnbs(cself->cg_file, interval_id, data);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetAssemblyId(const CGLoaderFile* cself, const CGFIELD_ASSEMBLY_ID_TYPE** assembly_id)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || assembly_id == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->vt->assembly_id == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->assembly_id(cself->cg_file, assembly_id);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetSlide(const CGLoaderFile* cself, const CGFIELD_SLIDE_TYPE** slide)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || slide == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->vt->slide == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->slide(cself->cg_file, slide);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetLane(const CGLoaderFile* cself, const CGFIELD_LANE_TYPE** lane)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || lane == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->vt->lane == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->lane(cself->cg_file, lane);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetBatchFileNumber(const CGLoaderFile* cself, const CGFIELD_BATCH_FILE_NUMBER_TYPE** batch_file_number)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || batch_file_number == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->vt->batch_file_number == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->batch_file_number(cself->cg_file, batch_file_number);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetSample(const CGLoaderFile* cself, const CGFIELD_SAMPLE_TYPE** sample)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || sample == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->vt->sample == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->sample(cself->cg_file, sample);
-    }
-    return rc;
-}
-
-rc_t CGLoaderFile_GetChromosome(const CGLoaderFile* cself, const CGFIELD_CHROMOSOME_TYPE** chromosome)
-{
-    rc_t rc = 0;
-
-    if( cself == NULL || chromosome == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcParam, rcNull);
-    } else if( cself->cg_file->vt->chromosome == NULL ) {
-        rc = RC(rcRuntime, rcFile, rcReading, rcInterface, rcUnsupported);
-    } else if( (rc = CGLoaderFile_header(cself)) == 0 ) {
-        rc = cself->cg_file->vt->chromosome(cself->cg_file, chromosome);
-    }
-    return rc;
-}
diff --git a/tools/cg-load/file.h b/tools/cg-load/file.h
deleted file mode 100644
index d9bc44a..0000000
--- a/tools/cg-load/file.h
+++ /dev/null
@@ -1,330 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_file_h_
-#define _tools_cg_load_file_h_
-
-#include <kfs/file.h>
-#include <kfs/directory.h>
-
-#include <klib/container.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-
-#include "defs.h"
-#include "writer-seq.h"
-#include "writer-algn.h"
-#include "writer-evidence-intervals.h"
-#include "writer-evidence-dnbs.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <strtol.h>
-
-
-/* some usefull utils */
-/* strchr but in fixed size buffer (not asciiZ!) */
-static __inline__ const char* str_chr(const char* str, const size_t len, char sep)
-{
-    const char* end = str + len;
-    while( str < end ) {
-        if( *str == sep ) {
-            break;
-        }
-        str++;
-    }
-    return str == end ? NULL : str;
-}
-
-static __inline__
-rc_t str2buf(const char* str, const size_t len, char* buf, const size_t buf_sz)
-{
-    if( buf_sz <= len ) {
-        rc_t rc = RC(rcRuntime, rcString, rcCopying, rcBuffer, rcInsufficient);
-        if (rc != 0) {
-            PLOGERR(klogErr, (klogErr, rc,  "'$(str)': $(sz) <= $(len)",
-                "str=%.*s,sz=%lu,len=%lu", len, str, buf_sz, len));
-        }
-        return rc;
-    }
-    memcpy(buf, str, len);
-    buf[len] = '\0';
-    return 0;
-}
-
-static __inline__
-rc_t str2unsigned(const char* str, const size_t len, uint64_t max, uint64_t* value)
-{
-    char* end;
-    int64_t q;
-
-    if( len == 0 ) {
-        return RC(rcRuntime, rcString, rcConverting, rcData, rcTooShort);
-    }
-    q = strtou64(str, &end, 10);
-    if( end - str != len ) {
-        return RC(rcRuntime, rcString, rcConverting, rcData, rcInvalid);
-    }
-    if( q < 0 || ( uint64_t ) q > max ) {
-        return RC(rcRuntime, rcString, rcConverting, rcData, rcOutofrange);
-    }
-    *value = q;
-    return 0;
-}
-static __inline__
-rc_t str2u64(const char* str, const size_t len, uint64_t* value)
-{
-    rc_t rc;
-    uint64_t q;
-
-    if( (rc = str2unsigned(str, len, -1, &q)) == 0 ) {
-        *value = q;
-    }
-    return rc;
-}
-
-static __inline__
-rc_t str2signed(const char* str, const size_t len, int64_t min, int64_t max, int64_t* value)
-{
-    char* end;
-    int64_t q;
-
-    if( len == 0 ) {
-        return RC(rcRuntime, rcString, rcConverting, rcData, rcTooShort);
-    }
-    q = strtoi64(str, &end, 10);
-    if( end - str != len ) {
-        return RC(rcRuntime, rcString, rcConverting, rcData, rcInvalid);
-    }
-    if( q < min || q > max ) {
-        return RC(rcRuntime, rcString, rcConverting, rcData, rcOutofrange);
-    }
-    *value = q;
-    return 0;
-}
-static __inline__
-rc_t str2i64(const char* str, const size_t len, int64_t* value)
-{
-    rc_t rc;
-    int64_t q;
-
-#if _ARCH_BITS == 32
-    if( (rc = str2signed(str, len, -0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFFLL, &q)) == 0 ) {
-        *value = q;
-    }
-#else
-    if( (rc = str2signed(str, len, -0x7FFFFFFFFFFFFFFFL, 0x7FFFFFFFFFFFFFFFL, &q)) == 0 ) {
-        *value = q;
-    }
-#endif
-    return rc;
-}
-static __inline__
-rc_t str2i32(const char* str, const size_t len, int32_t* value)
-{
-    rc_t rc;
-    int64_t q;
-
-    if( (rc = str2signed(str, len, -0x7FFFFFFF - 1, 0x7FFFFFFF, &q)) == 0 ) {
-        *value = ( int32_t ) q;
-    }
-    return rc;
-}
-static __inline__
-rc_t str2u32(const char* str, const size_t len, uint32_t* value)
-{
-    rc_t rc;
-    uint64_t q;
-
-    if( (rc = str2unsigned(str, len, 0xFFFFFFFF, &q)) == 0 ) {
-        *value = ( uint32_t ) q;
-    }
-    return rc;
-}
-static __inline__
-rc_t str2i16(const char* str, const size_t len, int16_t* value)
-{
-    rc_t rc;
-    int64_t q;
-
-    if( (rc = str2signed(str, len, -0x7FFF - 1, 0x7FFF, &q)) == 0 ) {
-        *value = ( int16_t ) q;
-    }
-    return rc;
-}
-static __inline__
-rc_t str2u16(const char* str, const size_t len, uint16_t* value)
-{
-    rc_t rc;
-    uint64_t q;
-
-    if( (rc = str2unsigned(str, len, 0xFFFF, &q)) == 0 ) {
-        *value = ( uint16_t ) q;
-    }
-    return rc;
-}
-#define CG_LINE_START(file, buf, len, res) \
-    do { \
-        const char* buf, *res; \
-        size_t len; \
-        if( (rc = CGLoaderFile_Readline(file, (const void**)&buf, &len)) != 0 ) { \
-            break; \
-        } \
-        res = buf - 1;
-
-#define CG_LINE_NEXT_FIELD(buf, len, res) \
-    if( rc != 0 ) { \
-        break; \
-    } else { \
-        len -= ++res - buf; \
-        buf = res; \
-        if( (res = str_chr(buf, len, '\t')) == NULL ) { \
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcCorrupt); \
-            break; \
-        } \
-    }
-
-#define CG_LINE_LAST_FIELD(buf, len, res) \
-    if( rc != 0 ) { \
-        break; \
-    } else { \
-        len -= ++res - buf; \
-        buf = res; \
-        res = buf + len; \
-        if( str_chr(buf, len, '\t') != NULL ) { \
-            rc = RC(rcRuntime, rcFile, rcReading, rcData, rcCorrupt); \
-            break; \
-        } \
-    }
-
-#define CG_LINE_END() \
-    } while(false)
-
-#ifndef CGFILETYPE_IMPL
-#define CGFILETYPE_IMPL CGFileType
-#endif
-
-typedef struct CGFileType CGFileType;
-
-typedef struct CGFileType_vt_struct {
-    rc_t ( CC *header ) (const CGFILETYPE_IMPL* self, const char* buf, const size_t len);
-
-    rc_t ( CC *reads ) (const CGFILETYPE_IMPL* cself, TReadsData* data);
-    rc_t ( CC *get_start_row ) (const CGFILETYPE_IMPL* cself, int64_t* rowid);
-    rc_t ( CC *mappings ) (const CGFILETYPE_IMPL* cself, TMappingsData* data);
-    rc_t ( CC *evidence_intervals )(const CGFILETYPE_IMPL* cself, TEvidenceIntervalsData* data);
-    rc_t ( CC *evidence_dnbs )(const CGFILETYPE_IMPL* cself, const char* interval_id, TEvidenceDnbsData* data);
-
-    rc_t ( CC *assembly_id) (const CGFILETYPE_IMPL* self, const CGFIELD_ASSEMBLY_ID_TYPE** assembly_id);
-    rc_t ( CC *slide) (const CGFILETYPE_IMPL* self, const CGFIELD_SLIDE_TYPE** slide);
-    rc_t ( CC *lane) (const CGFILETYPE_IMPL* self, const CGFIELD_LANE_TYPE** lane);
-    rc_t ( CC *batch_file_number) (const CGFILETYPE_IMPL* self, const CGFIELD_BATCH_FILE_NUMBER_TYPE** batch_file_number);
-    rc_t ( CC *sample) (const CGFILETYPE_IMPL* self, const CGFIELD_SAMPLE_TYPE** sample);
-    rc_t ( CC *chromosome) (const CGFILETYPE_IMPL* self, const CGFIELD_CHROMOSOME_TYPE** chromosome);
-
-    void ( CC *destroy ) (const CGFILETYPE_IMPL* self, uint64_t* records);
-} CGFileType_vt;
-
-struct CGFileType {
-    uint32_t format_version;
-    CG_EFileType type;
-    const CGFileType_vt* vt;
-};
-
-typedef struct CGLoaderFile
-{
-    bool read_ahead;
-    const struct KLoaderFile *file;
-    const CGFileType* cg_file;
-} CGLoaderFile;
-
-typedef struct CGFileTypeFactory {
-    const char* name;
-    CG_EFileType type;
-    rc_t ( CC *make ) (const CGFileType** self, const CGLoaderFile* file);
-} CGFileTypeFactory;
-
-rc_t CGLoaderFile_Make(const CGLoaderFile **cself, const KDirectory* dir, const char* filename,
-                       const uint8_t* md5_digest, bool read_ahead);
-
-rc_t CGLoaderFile_Release(const CGLoaderFile* cself, bool ignored);
-
-/* returns true if eof is reached and buffer is empty */
-rc_t CGLoaderFile_IsEof(const CGLoaderFile* cself, bool* eof);
-
-/* closes the underlying file */
-rc_t CGLoaderFile_Close(const CGLoaderFile* cself);
-
-/* returns current 1-based line number in file */
-rc_t CGLoaderFile_Line(const CGLoaderFile* cself, uint64_t* line);
-
-rc_t CGLoaderFile_Filename(const CGLoaderFile *cself, const char** name);
-
-rc_t CGLoaderFile_LOG(const CGLoaderFile* cself, KLogLevel lvl, rc_t rc, const char *msg, const char *fmt, ...);
-
-rc_t CGLoaderFile_GetType(const CGLoaderFile* cself, CG_EFileType* type);
-
-rc_t CGLoaderFile_GetRead(const CGLoaderFile* cself, TReadsData* data);
-rc_t CGLoaderFile_GetStartRow(const CGLoaderFile* cself, int64_t* rowid);
-
-rc_t CGLoaderFile_GetMapping(const CGLoaderFile* cself, TMappingsData* data);
-
-rc_t CGLoaderFile_GetEvidenceIntervals(const CGLoaderFile* cself, TEvidenceIntervalsData* data);
-
-rc_t CGLoaderFile_GetEvidenceDnbs(const CGLoaderFile* cself, const char* interval_id, TEvidenceDnbsData* data);
-
-rc_t CGLoaderFile_GetAssemblyId(const CGLoaderFile* cself, const CGFIELD_ASSEMBLY_ID_TYPE** assembly_id);
-rc_t CGLoaderFile_GetSlide(const CGLoaderFile* cself, const CGFIELD_SLIDE_TYPE** slide);
-rc_t CGLoaderFile_GetLane(const CGLoaderFile* cself, const CGFIELD_LANE_TYPE** lane);
-rc_t CGLoaderFile_GetBatchFileNumber(const CGLoaderFile* cself, const CGFIELD_BATCH_FILE_NUMBER_TYPE** batch_file_number);
-rc_t CGLoaderFile_GetSample(const CGLoaderFile* cself, const CGFIELD_SAMPLE_TYPE** sample);
-rc_t CGLoaderFile_GetChromosome(const CGLoaderFile* cself, const CGFIELD_CHROMOSOME_TYPE** chromosome);
-
-
-/* Readline
- *  makes next line from a file available in buffer.
- *  eligable EOL symbols are: \n (unix), \r (older mac), \r\n (win)
- *  EOL symbol(s) never included in buffer length.
- *  line is \0 terminated.
- *  if there is no EOL at EOF - not an error.
- *  fails if internal buffer is insufficient.
- *  buffer is NULL on EOF
- *  rc state of (rcString rcTooLong) means line was too long
- *              you may copy line and readline again for the tail of the line
- *
- *  "buffer" [ OUT ] and "length" [ OUT ] - returned line and it's length
- */
-rc_t CGLoaderFile_Readline(const CGLoaderFile* cself, const void** buffer, size_t* length);
-
-rc_t CGLoaderFile_CreateCGFile(CGLoaderFile* self,
-    uint32_t FORMAT_VERSION, const char* TYPE);
-
-rc_t CGLoaderFileMakeCGFileType(const CGLoaderFile* self, const char* type,
-    const CGFileTypeFactory* factory, size_t factories,
-    const CGFileType** ftype);
-
-#endif /* _tools_cg_load_file_h_ */
diff --git a/tools/cg-load/writer-algn.c b/tools/cg-load/writer-algn.c
deleted file mode 100644
index cb025dc..0000000
--- a/tools/cg-load/writer-algn.c
+++ /dev/null
@@ -1,775 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-#include <klib/sort.h>
-#include <kfs/file.h>
-#include <insdc/insdc.h>
-#include <align/dna-reverse-cmpl.h>
-
-#include "defs.h"
-#include "writer-algn.h"
-#include "debug.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-#include <assert.h>
-
-typedef struct CGWriterAlgn_match_struct {
-    /* filled out by ReferenceMgr_Compress */
-    INSDC_coord_zero read_start;
-    INSDC_coord_len read_len;
-    bool has_ref_offset[CG_READS_SPOT_LEN];
-    int32_t ref_offset[CG_READS_SPOT_LEN];
-    bool has_mismatch[CG_READS_SPOT_LEN];
-    char mismatch[CG_READS_SPOT_LEN];
-    int64_t ref_id;
-    INSDC_coord_zero ref_start;
-    /* fill oud here */
-    int64_t seq_spot_id;
-    INSDC_coord_one seq_read_id;
-    bool ref_orientation;
-    uint32_t mapq;
-    /* used only only in secondary */
-    bool mate_ref_orientation;
-    int64_t mate_ref_id;
-    INSDC_coord_zero mate_ref_pos;
-    INSDC_coord_zero template_len;
-    INSDC_coord_len ref_len;
-} CGWriterAlgn_match;
-
-struct CGWriterAlgn {
-    const ReferenceMgr* rmgr;
-    const TableWriterAlgn* primary;
-    const TableWriterAlgn* secondary;
-    TableWriterAlgnData algn[CG_MAPPINGS_MAX];
-    CGWriterAlgn_match match[CG_MAPPINGS_MAX];
-    TMappingsData data;
-    uint32_t min_mapq;
-    bool single_mate;
-    uint64_t forced_pairs_cnt;
-    uint64_t dropped_mates_cnt;
-};
-    
-
-static uint32_t global_cluster_size;
-
-rc_t CGWriterAlgn_Make(const CGWriterAlgn** cself, TMappingsData** data, VDatabase* db, const ReferenceMgr* rmgr,
-                       uint32_t min_mapq, bool single_mate, uint32_t cluster_size)
-{
-    rc_t rc = 0;
-    CGWriterAlgn* self;
-
-    if( cself == NULL || db == NULL ) {
-        return RC(rcExe, rcFormatter, rcConstructing, rcParam, rcNull);
-    }
-    self = calloc(1, sizeof(*self));
-    if( self == NULL ) {
-        rc = RC(rcExe, rcFormatter, rcConstructing, rcMemory, rcExhausted);
-    } else {
-        if( (rc = TableWriterAlgn_Make(&self->primary, db,
-                            ewalgn_tabletype_PrimaryAlignment, ewalgn_co_SEQ_SPOT_ID | ewalgn_co_unsorted)) != 0 ){
-            LOGERR(klogErr, rc, "primary alignment table");
-        } else if( (rc = TableWriterAlgn_Make(&self->secondary, db,
-                            ewalgn_tabletype_SecondaryAlignment, ewalgn_co_SEQ_SPOT_ID | ewalgn_co_unsorted)) != 0 ) {
-            LOGERR(klogErr, rc, "secondary alignment table");
-        } else {
-            int i;
-            /* interconnect buffers */
-            for(i = 0; i < CG_MAPPINGS_MAX; i++) {
-                self->algn[i].seq_spot_id.buffer = &self->match[i].seq_spot_id;
-                self->algn[i].seq_spot_id.elements = 1;
-                
-                self->algn[i].seq_read_id.buffer = &self->match[i].seq_read_id;
-                self->algn[i].seq_read_id.elements = 1;
-
-                self->algn[i].read_start.buffer = &self->match[i].read_start;
-                
-                self->algn[i].read_len.buffer = &self->match[i].read_len;
-                
-                self->algn[i].has_ref_offset.buffer = self->match[i].has_ref_offset;
-                
-                self->algn[i].ref_offset.buffer = self->match[i].ref_offset;
-                
-                self->algn[i].ref_id.buffer = &self->match[i].ref_id;
-                
-                self->algn[i].ref_start.buffer = &self->match[i].ref_start;
-                
-                self->algn[i].has_mismatch.buffer = self->match[i].has_mismatch;
-                
-                self->algn[i].mismatch.buffer = self->match[i].mismatch;
-                
-                self->algn[i].ref_orientation.buffer = &self->match[i].ref_orientation;
-                self->algn[i].ref_orientation.elements = 1;
-                
-                self->algn[i].mapq.buffer = &self->match[i].mapq;
-                self->algn[i].mapq.elements = 1;
-                
-                self->algn[i].mate_ref_orientation.buffer = &self->match[i].mate_ref_orientation;
-                self->algn[i].mate_ref_orientation.elements = 1;
-                
-                self->algn[i].mate_ref_id.buffer = &self->match[i].mate_ref_id;
-                self->algn[i].mate_ref_id.elements = 1;
-                
-                self->algn[i].mate_ref_pos.buffer = &self->match[i].mate_ref_pos;
-                self->algn[i].mate_ref_pos.elements = 1;
-                
-                self->algn[i].template_len.buffer = &self->match[i].template_len;
-                self->algn[i].template_len.elements = 1;
-            }
-            self->rmgr = rmgr;
-            self->min_mapq = min_mapq;
-            self->single_mate = single_mate;
-            global_cluster_size = cluster_size;
-            *data = &self->data;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = self;
-    } else {
-        CGWriterAlgn_Whack(self, false, NULL, NULL);
-    }
-    return rc;
-}
-
-rc_t CGWriterAlgn_Whack(const CGWriterAlgn* cself, bool commit, uint64_t* rows_1st, uint64_t* rows_2nd)
-{
-    rc_t rc = 0;
-    if( cself != NULL ) {
-        CGWriterAlgn* self = (CGWriterAlgn*)cself;
-        rc_t rc1 = TableWriterAlgn_Whack(cself->primary, commit, rows_1st);
-        rc_t rc2 = TableWriterAlgn_Whack(cself->secondary, commit, rows_2nd);
-        if( self->forced_pairs_cnt > 0 ) {
-            PLOGMSG(klogInfo, (klogInfo, "$(forced_pairs_cnt) forced pairs to PRIMARY", "forced_pairs_cnt=%lu", self->forced_pairs_cnt));
-        }
-        if( self->dropped_mates_cnt > 0 ) {
-            PLOGMSG(klogInfo, (klogInfo, "$(dropped_mates_cnt) dropped duplicate mates in SECONDARY", "dropped_mates_cnt=%lu", self->dropped_mates_cnt));
-        }
-        rc = rc1 ? rc1 : rc2;
-        free(self);
-    }
-    return rc;
-}
-
-static
-rc_t CGWriterAlgn_Save(CGWriterAlgn *const self,
-                       TReadsData *const rd,
-                       TableWriterAlgn const *const writer,
-                       uint32_t const mate,
-                       int64_t *const rowid)
-{
-    rc_t rc = 0;
-    TMappingsData_map *const map = &self->data.map[mate];
-
-    if( !map->saved ) {
-        CGWriterAlgn_match *const match = &self->match[mate];
-        TableWriterAlgnData *const algn = &self->algn[mate];
-        uint32_t* cigar, g;
-        uint32_t left_cigar[] = { 5 << 4, 0, 10 << 4, 0, 10 << 4, 0, 10 << 4 };
-        uint32_t right_cigar[] = { 10 << 4, 0, 10 << 4, 0, 10 << 4, 0, 5 << 4 };
-        const uint32_t read_len = CG_READS_SPOT_LEN / 2;
-        const char* read;
-
-        if (match->seq_read_id == 2) {
-            read = &((const char*)(rd->seq.sequence.buffer))[read_len];
-            cigar = right_cigar;
-            g = CG_READS_SPOT_LEN / 2;
-        }
-        else {
-            read = rd->seq.sequence.buffer;
-            cigar = left_cigar;
-            g = 0;
-        }
-        if (match->ref_orientation) {
-            if( rd->reverse[g] == '\0' ) {
-                if( (rc = DNAReverseCompliment(read, &rd->reverse[g], read_len)) != 0) {
-                    return rc;
-                }
-                DEBUG_MSG(10, ("'%.*s' -> cg_eRevDnbStrand: '%.*s'\n", read_len, read, read_len, &rd->reverse[g]));
-            }
-            read = &rd->reverse[g];
-            cigar = (cigar == left_cigar) ? right_cigar : left_cigar;
-        }
-        for(g = 0; g < CG_READS_NGAPS; g++) {
-            if( map->gap[g] > 0 ) {
-                cigar[g * 2 + 1] = (map->gap[g] << 4) | 2; /* 'xN' */
-            } else if( map->gap[g] < 0 ) {
-                cigar[g * 2 + 1] = (-map->gap[g] << 4) | 9; /* 'xB' */
-            } else {
-                cigar[g * 2 + 1] = 0; /* '0M' */
-            }
-        }
-        algn->ploidy = 0;
-        if( (rc = ReferenceMgr_Compress(self->rmgr, ewrefmgr_cmp_Binary,
-                    map->chr, map->offset, read, read_len, cigar, 7, 0, NULL, 0, 0, NULL, 0, algn)) != 0 ) {
-            PLOGERR(klogErr, (klogErr, rc, "compression failed $(id) $(o)",
-                    PLOG_2(PLOG_S(id),PLOG_I32(o)), map->chr, map->offset));
-        }
-        else {
-#if 1
-            /* this is to try represent these alignments as unmated to match cgatools
-             * axf uses the row length of MATE_REF_ORIENTATION as the indicator of 
-             * mate presence
-             */
-            unsigned const save = algn->mate_ref_orientation.elements;
-            
-            if (map->mate == mate)
-                algn->mate_ref_orientation.elements = 0;
-            
-            rc = TableWriterAlgn_Write(writer, algn, rowid);
-            
-            if (map->mate == mate)
-                algn->mate_ref_orientation.elements = save;
-#else
-            rc = TableWriterAlgn_Write(writer, algn, rowid);
-#endif
-            map->saved = true;
-        }
-    }
-    return rc;
-}
-
-#if 1
-static
-double JointQ(double const Q1, double const Q2)
-{
-    double const P1 =   1.0 - pow(10.0, Q1/-10.0);  /* prob that  1  is not incorrect */
-    double const P2 =   1.0 - pow(10.0, Q2/-10.0);  /* prob that  2  is not incorrect */
-    double const Pj =   1.0 - P1*P2;                /* prob that 1+2   is   incorrect */
-    double const Q  = -10.0 * log10(Pj);
-    
-    return Q;
-}
-
-static
-unsigned FindBestPair(TMappingsData *const data)
-{
-    unsigned const N = data->map_qty;
-    unsigned i;
-    double maxq;
-    unsigned best = N;
-    
-    /* pick best of the reciprocal pairs */
-    for (i = 0, maxq = -1.0; i != N; ++i) {
-        unsigned const mate = data->map[i].mate;
-        bool const is_left = (data->map[i].flags & cg_eRightHalfDnbMap) == 0;
-        
-        if (mate < N && mate != i && data->map[mate].mate == i && is_left) {
-            double const Q1 = (int)data->map[i].weight - 33;
-            double const Q2 = (int)data->map[mate].weight - 33;
-            double const q = JointQ(Q1, Q2);
-
-            assert(Q1 >= 0);
-            assert(Q2 >= 0);
-            assert(q >= 0);
-            if (maxq < q) {
-                maxq = q;
-                best = i;
-            }
-        }
-    }
-    if (best < N)
-        return best;
-    
-    /* no reciprocal pairs, pick best of any pair */
-    for (i = 0, maxq = 0.0; i != N; ++i) {
-        unsigned const mate = data->map[i].mate;
-        if (mate < N && mate != i) {
-            double const Q1 = (int)data->map[i].weight - 33;
-            double const Q2 = (int)data->map[mate].weight - 33;
-            double const q = JointQ(Q1, Q2);
-            
-            assert(Q1 >= 0);
-            assert(Q2 >= 0);
-            assert(q >= 0);
-            if (maxq < q) {
-                maxq = q;
-                best = i;
-            }
-        }
-    }
-    if (best == N) {
-        /* no pair with a joint Q > 0; pick best mapping */
-        for (i = 0, maxq = 0.0; i != N; ++i) {
-            unsigned const mate = data->map[i].mate;
-            if (mate < N && mate != i) {
-                double const q = (int)data->map[i].weight - 33;
-                
-                if (maxq < q) {
-                    maxq = q;
-                    best = i;
-                }
-            }
-        }
-        if (best == N) {
-            /* no mapping with Q > 0; pick first */
-            for (i = 0, maxq = 0.0; i != N; ++i) {
-                unsigned const mate = data->map[i].mate;
-                if (mate < N && mate != i) {
-                    best = i;
-                    break;
-                }
-            }
-            if (best == N) {
-                /* give up */
-                return N;
-            }
-        }
-    }
-    {
-        /* make the pair reciprocal */
-        unsigned const mate = data->map[best].mate;
-        
-        if (mate < N) {
-            data->map[mate].mate = best;
-            return (data->map[best].flags & cg_eRightHalfDnbMap) ? mate : best;
-        }
-        return N;
-    }
-}
-
-static
-unsigned FindBestLeft(TMappingsData *const data)
-{
-    unsigned const N = data->map_qty;
-    unsigned i;
-    unsigned best;
-    int maxq;
-    
-    for (best = N, maxq = -1, i = 0; i != N; ++i) {
-        int const q = (int)data->map[i].weight;
-        
-        if ((data->map[i].flags & cg_eRightHalfDnbMap) == 0 && maxq < q) {
-            maxq = q;
-            best = i;
-        }
-    }
-    return best;
-}
-
-static
-unsigned FindBestRight(TMappingsData *const data)
-{
-    unsigned const N = data->map_qty;
-    unsigned i;
-    unsigned best;
-    int maxq;
-    
-    for (best = N, maxq = -1, i = 0; i != N; ++i) {
-        int const q = (int)data->map[i].weight;
-        
-        if ((data->map[i].flags & cg_eRightHalfDnbMap) != 0 && maxq < q) {
-            maxq = q;
-            best = i;
-        }
-    }
-    return best;
-}
-
-static
-bool check_in_cluster(TMappingsData_map const *const a, TMappingsData_map const *const b)
-{
-	if (   (a->flags & cg_eRightHalfDnbMap) == (b->flags & cg_eRightHalfDnbMap)
-        && (strcmp(a->chr, b->chr) == 0)
-        && abs((int)a->offset - (int)b->offset) <= global_cluster_size)
-    {
-        return true;
-	}
-	return false;
-}
-
-static
-int clustering_sort_cb(void const *const A, void const *const B, void *const ctx)
-{
-    TMappingsData const *const data = (TMappingsData const *)ctx;
-    unsigned const ia = *(unsigned const *)A;
-    unsigned const ib = *(unsigned const *)B;
-    TMappingsData_map const *const a = &data->map[ia];
-    TMappingsData_map const *const b = &data->map[ib];
-    int res;
-    
-	res = (int)(a->flags & cg_eRightHalfDnbMap) - (int)(b->flags & cg_eRightHalfDnbMap); /**** separate by DNP side ***/
-	if (res) return res;
-    
-    res = strcmp(a->chr, b->chr); /* same chromosome ? **/
-	if (res) return res;
-    
-	res = (a->offset - b->offset) / (global_cluster_size + 1); /***  is it within the range ***/
-	if (res) return res;
-    
-	/**cluster is defined here; now pick the winner **/
-	res = (int)a->saved - (int)b->saved; /*** if already saved **/
-	if (res) return -res;
-    
-	res = (int)a->weight - (int)b->weight; /*** has  higher score **/
-	if (res) return -res;
-    
-	res = (int)(a->gap[0] + a->gap[1] + a->gap[2])
-    - (int)(b->gap[0] + b->gap[1] + b->gap[2]); /** has lower projection on the reference **/
-    return res;
-}
-
-static
-void cluster_mates(TMappingsData *const data)
-{
-    unsigned index[CG_MAPPINGS_MAX];
-    unsigned i;
-    unsigned j;
-    
-    for (i = 0; i != data->map_qty; ++i)
-        index[i] = i;
-    
-    ksort(index, data->map_qty, sizeof(index[0]), clustering_sort_cb, data);
-    for (i = 0, j = 1; j != data->map_qty; ++j) {
-        unsigned const ii = index[i];
-        unsigned const ij = index[j];
-        TMappingsData_map *const a = &data->map[ij];
-        TMappingsData_map const *const b = &data->map[ii];
-        
-        if (check_in_cluster(a, b)) {
-            unsigned const a_mate = a->mate;
-            unsigned const b_mate = b->mate;
-            
-            if (   a_mate == ij /** remove singletons **/
-                || a_mate == b_mate) /** or cluster originator has the same mate **/
-            {
-                a->saved = true;
-                DEBUG_MSG(10, ("mapping %u was dropped as a part of cluster at mapping %u\n", ij, ii));
-            }
-        }
-        else
-            i = j;
-    }
-}
-
-static
-INSDC_coord_zero template_length(unsigned const self_left,
-                                 unsigned const mate_left,
-                                 unsigned const self_len,
-                                 unsigned const mate_len,
-                                 unsigned const read_id)
-{
-    /* adapted from libs/axf/template_len.c */
-    unsigned const self_right = self_left + self_len;
-    unsigned const mate_right = mate_left + mate_len;
-    unsigned const  leftmost  = (self_left  < mate_left ) ? self_left  : mate_left;
-    unsigned const rightmost  = (self_right > mate_right) ? self_right : mate_right;
-    unsigned const tlen = rightmost - leftmost;
-    
-    /* The standard says, "The leftmost segment has a plus sign and the rightmost has a minus sign." */
-    if (   (self_left <= mate_left && self_right >= mate_right)     /* mate fully contained within self or */
-        || (mate_left <= self_left && mate_right >= self_right))    /* self fully contained within mate; */
-    {
-        if (self_left < mate_left || (read_id == 1 && self_left == mate_left))
-            return (INSDC_coord_zero)tlen;
-        else
-            return -(INSDC_coord_zero)tlen;
-    }
-    else if (   (self_right == mate_right && mate_left == leftmost) /* both are rightmost, but mate is leftmost */
-             ||  self_right == rightmost)
-    {
-        return -(INSDC_coord_zero)tlen;
-    }
-    else
-        return (INSDC_coord_zero)tlen;
-}
-
-static
-rc_t CGWriterAlgn_Write_int(CGWriterAlgn *const self, TReadsData *const read)
-{
-    TMappingsData *const data = &self->data;
-    unsigned const N = data->map_qty;
-    rc_t rc = 0;
-
-    if (N != 0) {
-        unsigned left_prime = N;
-        unsigned right_prime = N;
-        unsigned i;
-        unsigned countLeft  = 0;
-        unsigned countRight = 0;
-        
-        for (i = 0; i != N; ++i) {
-            char const *const refname = data->map[i].chr;
-            unsigned j;
-            INSDC_coord_len reflen = 35;
-            ReferenceSeq const *rseq;
-            
-            memset(&self->match[i], 0, sizeof(self->match[i]));
-            
-            rc = ReferenceMgr_GetSeq(self->rmgr, &rseq, refname);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "Failed accessing Reference '$(ref)'", "ref=%s", refname));
-                break;
-            }
-            rc = ReferenceSeq_Get1stRow(rseq, &self->match[i].ref_id); /* if the above worked, this is infallible */
-            assert(rc == 0);
-            ReferenceSeq_Release(rseq);
-            
-            for (j = 0; j != CG_READS_NGAPS; ++j)
-                reflen += data->map[i].gap[j];
-            
-            self->match[i].seq_spot_id = read->rowid;
-            self->match[i].mapq = data->map[i].weight - 33;
-            self->match[i].ref_orientation = (data->map[i].flags & cg_eRevDnbStrand) ? true : false;
-            self->match[i].ref_len = reflen;
-            
-            if (data->map[i].flags & cg_eRightHalfDnbMap) {
-                self->match[i].seq_read_id = 2;
-                ++countRight;
-            }
-            else {
-                self->match[i].seq_read_id = 1;
-                ++countLeft;
-            }
-        }
-
-        if (countLeft > 0 && countRight > 0) {
-            left_prime = FindBestPair(data);
-            if (left_prime < N) {
-                right_prime = data->map[left_prime].mate;
-            }
-            else { /* force the pairing */
-                left_prime = FindBestLeft(data);
-                right_prime = FindBestRight(data);
-                data->map[left_prime].mate = right_prime;
-                data->map[right_prime].mate = left_prime;
-            }
-            for (i = 0; i != N; ++i) {
-                unsigned const mate = data->map[i].mate;
-                
-                if (mate < N && mate != i) {
-                    INSDC_coord_zero const tlen = (self->match[i].ref_id == self->match[mate].ref_id)
-                                                ? template_length(data->map[i].offset,
-                                                                  data->map[mate].offset,
-                                                                  self->match[i].ref_len,
-                                                                  self->match[mate].ref_len,
-                                                                  self->match[i].seq_read_id)
-                                                : 0;
-
-                    self->match[i].mate_ref_id = self->match[mate].ref_id;
-                    self->match[i].mate_ref_orientation = self->match[mate].ref_orientation;
-                    self->match[i].mate_ref_pos = data->map[mate].offset;
-                    self->match[i].template_len = tlen;
-                }
-            }
-        }
-        else if (countLeft > 0) {
-            left_prime = FindBestLeft(data);
-        }
-        else {
-            assert(countRight > 0);
-            right_prime = FindBestRight(data);
-        }
-        
-        read->align_count[0] = countLeft  < 254 ? countLeft  : 255;
-        read->align_count[1] = countRight < 254 ? countRight : 255;
-        if (rc == 0 && left_prime < N) {
-            rc = CGWriterAlgn_Save(self, read, self->primary, left_prime,
-                                   &read->prim_algn_id[0]);
-            read->prim_is_reverse[0] = self->match[left_prime].ref_orientation;
-            data->map[left_prime].saved = 1;
-        }
-        if (rc == 0 && right_prime < N) {
-            rc = CGWriterAlgn_Save(self, read, self->primary, right_prime,
-                                   &read->prim_algn_id[1]);
-            read->prim_is_reverse[1] = self->match[right_prime].ref_orientation;
-            data->map[right_prime].saved = 1;
-        }
-        if (global_cluster_size > 0 && data->map_qty > 1 + (left_prime < N ? 1 : 0) + (right_prime < N ? 1 : 0)) {
-            cluster_mates(data);
-        }
-        for (i = 0; i != N && rc == 0; ++i) {
-            if (data->map[i].saved || self->match[i].mapq < self->min_mapq)
-                continue;
-            rc = CGWriterAlgn_Save(self, read, self->secondary, i, NULL);
-        }
-    }
-    return rc;
-}
-
-rc_t CGWriterAlgn_Write(const CGWriterAlgn* cself, TReadsData* read)
-{
-    assert(cself != NULL);
-    assert(read != NULL);
-    assert(read->seq.sequence.buffer != NULL && read->seq.sequence.elements == CG_READS_SPOT_LEN);
-    
-    memset(read->prim_algn_id, 0, sizeof(read->prim_algn_id));
-    memset(read->align_count, 0, sizeof(read->align_count));
-    memset(read->prim_is_reverse, 0, sizeof(read->prim_is_reverse));
-    
-    return CGWriterAlgn_Write_int((CGWriterAlgn *)cself, read);
-}
-
-#else
-
-rc_t CGWriterAlgn_Write(const CGWriterAlgn* cself, TReadsData* read)
-{
-    if( cself->data.map_qty != 0 ) {
-        /* primary is-found indicator: weights are ASCII-33 so they can't be 0 if found */
-        uint8_t left_weight = 0, right_weight = 0, pair_weight = 0;
-        uint32_t i, left_prim = 0, right_prim = 0, paired = 0;
-
-        CGWriterAlgn* self = (CGWriterAlgn*)cself;
-        TMappingsData* data = &self->data;
-
-        /* find best left, right and pair */
-        for(i = 0; i < data->map_qty; i++) {
-            int k = (data->map[i].flags & cg_eRightHalfDnbMap) ? 1 : 0;
-            if( read->align_count[k] < 254 ) {
-                read->align_count[k]++;
-            }
-            if( k == 0 ) {
-                if( left_weight < data->map[i].weight ) {
-                    left_prim = i;
-                    left_weight = data->map[i].weight;
-                }
-            } else {
-                if( right_weight < data->map[i].weight ) {
-                    right_prim = i;
-                    right_weight = data->map[i].weight;
-                }
-            }
-            if( i != data->map[i].mate && pair_weight < data->map[i].weight ) {
-                if( data->map[i].mate < data->map_qty ) {
-                    /* note pair's left mate id */
-                    paired = k == 0 ? i : data->map[i].mate;
-                    pair_weight = data->map[i].weight;
-                } else {
-                    /* fail safe in case mate id is out of map boundaries */
-                    data->map[i].mate = i;
-                }
-            }
-        }
-        /* choose primary pair */
-        if( left_weight > right_weight && data->map[left_prim].mate != left_prim ) {
-            /* left is better and has a mate -> choose left pair */
-            right_prim = data->map[left_prim].mate;
-            right_weight = data->map[right_prim].weight;
-        } else if( right_weight > left_weight && data->map[right_prim].mate != right_prim ) {
-            /* right is better and has a mate -> choose right pair */
-            left_prim = data->map[right_prim].mate;
-            left_weight = data->map[left_prim].weight;
-        } else if( pair_weight > 0 ) {
-            /* use paired as primary */
-            left_prim = paired;
-            left_weight = data->map[left_prim].weight;
-            right_prim = data->map[left_prim].mate;
-            right_weight = data->map[right_prim].weight;
-        } else if( left_weight > 0 && right_weight > 0 ) {
-            /* force best left and right to be mates */
-            data->map[left_prim].mate = right_prim;
-            data->map[right_prim].mate = left_prim;
-            self->forced_pairs_cnt++;
-            DEBUG_MSG(10, ("forced pair: %u %u\n", left_prim, right_prim));
-        }
-#if _DEBUGGING
-        DEBUG_MSG(10, ("alignment_count [%hu,%hu]", read->align_count[0], read->align_count[1]));
-        DEBUG_MSG(10, (" left primary: "));
-        if( left_weight > 0 ) {
-            DEBUG_MSG(10, ("weight %hu [%c], id %u", left_weight, left_weight, left_prim));
-        } else {
-            DEBUG_MSG(10, ("none"));
-        }
-        DEBUG_MSG(10, ("; right primary: "));
-        if( right_weight > 0 ) {
-            DEBUG_MSG(10, ("weight %hu [%c], id %u", right_weight, right_weight, right_prim));
-        } else {
-            DEBUG_MSG(10, ("none"));
-        }
-        DEBUG_MSG(10, ("\n"));
-#endif
-        assert((left_weight == 0 && read->align_count[0] == 0) || (left_weight > 0 && read->align_count[0] > 0));
-        assert((right_weight == 0 && read->align_count[1] == 0) || (right_weight > 0 && read->align_count[1] > 0));
-
-        /* write left primary */
-        if( rc == 0 && left_weight > 0 ) {
-            rc = CGWriterAlgn_Save(self, read, self->primary, left_prim, &read->prim_algn_id[0]);
-            read->prim_is_reverse[0] = cself->match[left_prim].ref_orientation;
-        }
-        /* write right primary */
-        if( rc == 0 && right_weight > 0 ) {
-            rc = CGWriterAlgn_Save(self, read, self->primary, right_prim, &read->prim_algn_id[1]);
-            read->prim_is_reverse[1] = cself->match[right_prim].ref_orientation;
-        }
-        DEBUG_MSG(10, ("prim_algn_rowid [%li,%li], ", read->prim_algn_id[0], read->prim_algn_id[1]));
-        DEBUG_MSG(10, ("prim_is_reverse [%hu,%hu]\n", read->prim_is_reverse[0], read->prim_is_reverse[1]));
-        if( rc == 0 ) {
-            /* others go to secondary */
-            int64_t row;
-            
-            rc = TableWriterAlgn_GetNextRowId(cself->secondary, &row);
-            if( global_cluster_size > 0  && data->map_qty > 1) {
-                cluster_mates(data);
-            }
-            if( cself->single_mate ) {
-                /* we need to re-mate in case original mate's weight is lower */
-                for(i = 0; rc == 0 && i < data->map_qty; i++ ) {
-                    if( !data->map[i].saved && data->map[i].weight >= cself->min_mapq ) {
-                        uint32_t mate = data->map[i].mate;
-                        if( mate != i && data->map[mate].mate != i ) {
-                            self->dropped_mates_cnt++;
-                            if( data->map[data->map[mate].mate].weight < data->map[i].weight ) {
-                                /* do not save my mate's mate */
-                                DEBUG_MSG(10, ("mate %u dropped as pair of %u\n", data->map[mate].mate, mate));
-                                data->map[data->map[mate].mate].saved = true;
-                                /* repoint mate to me */
-                                data->map[mate].mate = i;
-                            } else {
-                                /* do not save me */
-                                DEBUG_MSG(10, ("mate %u dropped as pair of %u\n", i, mate));
-                                data->map[i].saved = true;
-                            }
-                        }
-                    }
-                }
-            }
-            for(i = 0; rc == 0 && i < data->map_qty; i++ ) {
-                if( !data->map[i].saved && data->map[i].weight >= cself->min_mapq ) {
-                    uint32_t mate = data->map[i].mate;
-                    /* no mate or mate is under-weigth */
-                    if( mate == i || data->map[mate].weight < cself->min_mapq ||
-                       /* or mate was saved in primary */
-                       (left_weight > 0 && mate == left_prim) || (right_weight > 0 && mate == right_prim) ) {
-                        self->match[i].mate_align_id = 0;
-                        rc = CGWriterAlgn_Save(self, read, self->secondary, i, NULL);
-                        row++;
-                    } else {
-                        self->match[mate].mate_align_id = row++;
-                        self->match[i].mate_align_id = row++;
-                        if( (rc = CGWriterAlgn_Save(self, read, self->secondary, i, NULL)) == 0 ) {
-                            rc = CGWriterAlgn_Save(self, read, self->secondary, mate, NULL);
-                        }
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-#endif
diff --git a/tools/cg-load/writer-algn.h b/tools/cg-load/writer-algn.h
deleted file mode 100644
index 6ccb019..0000000
--- a/tools/cg-load/writer-algn.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_writer_algn_h_
-#define _tools_cg_load_writer_algn_h_
-
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/manager.h>
-#include <insdc/insdc.h>
-#include <align/writer-alignment.h>
-#include <align/writer-reference.h>
-
-#include "writer-seq.h"
-
-typedef struct TMappingsData_map_struct {
-    bool saved;
-    uint16_t flags;
-    char chr[CG_CHROMOSOME_NAME];
-    INSDC_coord_zero offset;
-    int16_t gap[CG_READS_NGAPS];
-    uint8_t weight;
-    uint32_t mate;
-} TMappingsData_map;
-
-typedef struct TMappingsData_struct {
-    uint16_t map_qty;
-    TMappingsData_map map[CG_MAPPINGS_MAX];
-} TMappingsData;
-
-typedef struct CGWriterAlgn CGWriterAlgn;
-
-rc_t CGWriterAlgn_Make(const CGWriterAlgn** cself, TMappingsData** data, VDatabase* db, const ReferenceMgr* rmgr,
-                       uint32_t min_mapq, bool single_mate, uint32_t cluster_size);
-
-rc_t CGWriterAlgn_Whack(const CGWriterAlgn* cself, bool commit, uint64_t* rows_1st, uint64_t* rows_2nd);
-
-rc_t CGWriterAlgn_Write(const CGWriterAlgn* cself, TReadsData* read);
-
-#endif /* _tools_cg_load_writer_algn_h_ */
diff --git a/tools/cg-load/writer-evidence-dnbs.c b/tools/cg-load/writer-evidence-dnbs.c
deleted file mode 100644
index 18be548..0000000
--- a/tools/cg-load/writer-evidence-dnbs.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/container.h>
-#include <kfs/file.h>
-#include <insdc/insdc.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <align/writer-alignment.h>
-#include <align/dna-reverse-cmpl.h>
-
-#include "debug.h"
-#include "defs.h"
-#include "writer-evidence-intervals.h"
-#include "writer-evidence-dnbs.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#include <assert.h>
-
-typedef struct CGWriterEvdDnb_match_struct {
-
-    int64_t seq_spot_id;
-    INSDC_coord_one seq_read_id;
-
-    /* filled out by ReferenceMgr_Compress */
-    INSDC_coord_zero read_start;
-    INSDC_coord_len read_len;
-    bool has_ref_offset[CG_EVDNC_ALLELE_LEN];
-    int32_t ref_offset[CG_EVDNC_ALLELE_LEN];
-    int64_t ref_id;
-    INSDC_coord_zero ref_start;
-    bool has_mismatch[CG_EVDNC_ALLELE_LEN];
-    char mismatch[CG_EVDNC_ALLELE_LEN];
-
-    bool ref_orientation;
-    uint32_t ref_ploidy;
-    uint32_t mapq;
-
-} CGWriterEvdDnb_match;
-
-struct CGWriterEvdDnbs {
-    const ReferenceMgr* rmgr;
-    const TableWriterAlgn* writer;
-
-    TableWriterAlgnData algn;
-    CGWriterEvdDnb_match match;
-    
-    TEvidenceDnbsData data;
-
-    uint64_t bad_allele_index;
-};
-
-rc_t CGWriterEvdDnbs_Make(const CGWriterEvdDnbs** cself, TEvidenceDnbsData** data,
-                          VDatabase* db, const ReferenceMgr* rmgr, const uint32_t options)
-{
-    rc_t rc = 0;
-    CGWriterEvdDnbs* self;
-
-    if( cself == NULL || db == NULL ) {
-        return RC(rcExe, rcFormatter, rcConstructing, rcParam, rcNull);
-    }
-    self = calloc(1, sizeof(*self));
-    if( self == NULL ) {
-        rc = RC(rcExe, rcFormatter, rcConstructing, rcMemory, rcExhausted);
-    } else {
-        if( (rc = TableWriterAlgn_Make(&self->writer, db, ewalgn_tabletype_EvidenceAlignment, ewalgn_co_SEQ_SPOT_ID)) == 0 ) {
-            self->algn.seq_spot_id.buffer = &self->match.seq_spot_id;
-            self->algn.seq_spot_id.elements = 1;
-            self->algn.seq_read_id.buffer = &self->match.seq_read_id;
-            self->algn.seq_read_id.elements = 1;
-
-            self->algn.read_start.buffer = &self->match.read_start;
-            self->algn.read_len.buffer = &self->match.read_len;
-            self->algn.has_ref_offset.buffer = self->match.has_ref_offset;
-            self->algn.ref_offset.buffer = self->match.ref_offset;
-            self->algn.ref_id.buffer = &self->match.ref_id;
-            self->algn.ref_id.elements = 1;
-            self->algn.ref_start.buffer = &self->match.ref_start;
-            self->algn.ref_start.elements = 1;
-            self->algn.has_mismatch.buffer = self->match.has_mismatch;
-            self->algn.mismatch.buffer = self->match.mismatch;
-            self->algn.ref_orientation.buffer = &self->match.ref_orientation;
-            self->algn.ref_orientation.elements = 1;
-            self->algn.ref_ploidy.buffer = &self->match.ref_ploidy;
-            self->algn.ref_ploidy.elements = 1;
-            self->algn.mapq.buffer = &self->match.mapq;
-            self->algn.mapq.elements = 1;
-            self->rmgr = rmgr;
-
-            /* set to 1st row for evidence_interval to collect ids */
-            self->data.last_rowid = 1;
-            *data = &self->data;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = self;
-    } else {
-        CGWriterEvdDnbs_Whack(self, false, NULL);
-    }
-    return rc;
-}
-
-rc_t CGWriterEvdDnbs_Whack(const CGWriterEvdDnbs* cself, bool commit, uint64_t* rows)
-{
-    rc_t rc = 0;
-    if( cself != NULL ) {
-        CGWriterEvdDnbs* self = (CGWriterEvdDnbs*)cself;
-        if( self->bad_allele_index > 0 ) {
-            PLOGMSG(klogInfo, (klogInfo, "$(bad_allele_index) bad allele_indexes in evidence dnbs",
-                    "bad_allele_index=%lu", self->bad_allele_index));
-        }
-        rc = TableWriterAlgn_Whack(cself->writer, commit, rows);
-        free(self->data.dnbs);
-        free(self);
-    }
-    return rc;
-}
-
-rc_t CGWriterEvdDnbs_SetSEQ(const CGWriterEvdDnbs* cself, uint16_t dnb, const int64_t seq_spot_id_1st)
-{
-    rc_t rc = 0;
-    CGWriterEvdDnbs* self =(CGWriterEvdDnbs*)cself;
-
-    assert(cself != NULL);
-
-    self->data.dnbs[dnb].seq_spot_id = seq_spot_id_1st + self->data.dnbs[dnb].dnb_offset_in_lane_file;
-
-    return rc;
-}
-
-rc_t CGWriterEvdDnbs_Write(const CGWriterEvdDnbs* cself, const TEvidenceIntervalsData* ref, int64_t ref_rowid)
-{
-    rc_t rc = 0;
-    uint16_t i;
-    int64_t last_rowid;
-    CGWriterEvdDnbs* self =(CGWriterEvdDnbs*)cself;
-
-    assert(cself != NULL);
-    assert(ref != NULL);
-
-    for(i = 0; rc == 0 && i < cself->data.qty; i++) {
-
-        /* align against allele */
-        uint16_t ai = cself->data.dnbs[i].allele_index;
-        self->match.ref_ploidy = ref->allele_indexes_to_read_number[ai];
-        if( self->match.ref_ploidy == 0 ) {
-            DEBUG_MSG(3, ("bad allele_index for interval %s %s[%hu]\n", cself->data.dnbs[i].chr, cself->data.interval_id, i + 1));
-            self->bad_allele_index++;
-            continue;
-        } else {
-            const char* read;
-            char reversed[CG_READS_SPOT_LEN];
-            uint32_t read_len = CG_READS_SPOT_LEN / 2;
-
-            if( cself->data.dnbs[i].side == 'L' ) {
-                self->match.seq_read_id = 1;
-                read = cself->data.dnbs[i].read;
-            } else {
-                self->match.seq_read_id = 2;
-                read = &cself->data.dnbs[i].read[read_len];
-            }
-            if( cself->data.dnbs[i].strand == '-' ) {
-                if( (rc = DNAReverseCompliment(read, reversed, read_len)) != 0 ) {
-                    break;
-                }
-                read = reversed;
-                self->match.ref_orientation = true;
-            } else {
-                self->match.ref_orientation = false;
-            }
-            self->algn.ploidy = 0;
-            if( (rc = ReferenceMgr_Compress(cself->rmgr, 0, cself->data.dnbs[i].chr,
-                                            cself->data.dnbs[i].offset_in_reference, read, read_len,
-                                            cself->data.dnbs[i].allele_alignment, cself->data.dnbs[i].allele_alignment_length,
-                                            ref->offset,
-                                            ref->allele[ai], ref->allele_length[ai],
-					    cself->data.dnbs[i].offset_in_allele,
-                                            ref->allele_alignment[ai], ref->allele_alignment_length[ai],
-                                            &self->algn)) == 0 ) {
-                self->match.mapq = cself->data.dnbs[i].mapping_quality - 33;
-                /* pointer to SEQUENCE table spot and read */
-                self->match.seq_spot_id = cself->data.dnbs[i].seq_spot_id;
-                self->match.ref_id = ref_rowid;
-                self->match.ref_start = cself->data.dnbs[i].offset_in_allele;
-                DEBUG_MSG(3, ("REF_ID: %li, REF_START: %i, REF_PLOIDY: %hu\n",
-                    self->match.ref_id, self->match.ref_start, self->match.ref_ploidy));
-                rc = TableWriterAlgn_Write(cself->writer, &self->algn, &last_rowid);
-		if( rc == 0 && self->data.last_rowid++ != last_rowid ) {
-		    rc = RC(rcExe, rcTable, rcWriting, rcData, rcInconsistent);
-		}
-            } else if( GetRCObject(rc) == rcOffset && GetRCState(rc) == rcOutofrange ) {
-                PLOGERR(klogErr, (klogErr, rc, "evidence dnb for $(chr) interval $(interval) OffsetInReference $(offset) skipped",
-                    "chr=%s,interval=%s,offset=%i", ref->chr, ref->interval_id, cself->data.dnbs[i].offset_in_reference));
-                rc = 0;
-            }
-        }
-    }
-    return rc;
-}
diff --git a/tools/cg-load/writer-evidence-dnbs.h b/tools/cg-load/writer-evidence-dnbs.h
deleted file mode 100644
index 6c9014b..0000000
--- a/tools/cg-load/writer-evidence-dnbs.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_writer_evidence_dnbs_h_
-#define _tools_cg_load_writer_evidence_dnbs_h_
-
-#include <insdc/insdc.h>
-#include <vdb/database.h>
-#include <sra/sradb.h>
-
-#include "defs.h"
-#include "factory-cmn.h"
-
-typedef struct TEvidenceDnbsData_dnb_struct {
-
-    /* translated:
-       slide+lane+file_num_in_lane+dnb_offset_in_lane_file --> SEQ_SPOT_ID */
-    int64_t seq_spot_id;
-
-    char chr[CG_CHROMOSOME_NAME];
-    char slide[CG_SLIDE];
-    char lane[CG_LANE];
-    CGFIELD15_BATCH_FILE_NUMBER file_num_in_lane;
-    uint64_t dnb_offset_in_lane_file; /* zero-based */
-    uint16_t allele_index;
-    char side;
-    char strand;
-    INSDC_coord_zero offset_in_allele;
-    char allele_alignment[CG_EVDNC_ALLELE_CIGAR_LEN];
-    /* strlen for allele_alignment[] buffer */
-    size_t allele_alignment_length;
-    uint8_t mapping_quality;
-    INSDC_coord_zero offset_in_reference;
-    /* moved into reading function since it is not used after reading anyway
-    char reference_alignment[CG_EVDNC_ALLELE_CIGAR_LEN];
-    INSDC_coord_zero mate_offset_in_reference;
-    char mate_reference_alignment[CG_EVDNC_ALLELE_CIGAR_LEN];
-    uint16_t score_allele[3];*/
-    char read[CG_EVDNC_SPOT_LEN];
-    size_t read_len;
-    /*char qual[CG_EVDNC_SPOT_LEN];
-    */
-} TEvidenceDnbsData_dnb;
-
-typedef struct TEvidenceDnbsData {
-    char interval_id[CG_EVDNC_INTERVALID_LEN];
-    uint16_t qty;
-    uint16_t max_qty;
-    TEvidenceDnbsData_dnb* dnbs;
-    int64_t last_rowid; /* last used rowid in this table */
-} TEvidenceDnbsData;
-
-typedef struct CGWriterEvdDnbs CGWriterEvdDnbs;
-
-struct TEvidenceIntervalsData;
-
-rc_t CGWriterEvdDnbs_Make(const CGWriterEvdDnbs** cself, TEvidenceDnbsData** data,
-                          VDatabase* db, const ReferenceMgr* rmgr, const uint32_t options);
-
-rc_t CGWriterEvdDnbs_Whack(const CGWriterEvdDnbs* cself, bool commit, uint64_t* rows);
-
-rc_t CGWriterEvdDnbs_SetSEQ(const CGWriterEvdDnbs* cself, uint16_t dnb, const int64_t seq_spot_id_1st);
-
-rc_t CGWriterEvdDnbs_Write(const CGWriterEvdDnbs* cself, const struct TEvidenceIntervalsData* ref, int64_t ref_rowid);
-
-#endif /* _tools_cg_load_writer_evidence_dnbs_h_ */
diff --git a/tools/cg-load/writer-evidence-intervals.c b/tools/cg-load/writer-evidence-intervals.c
deleted file mode 100644
index 070cfc7..0000000
--- a/tools/cg-load/writer-evidence-intervals.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/printf.h>
-#include <kfs/file.h>
-#include <vdb/table.h>
-
-#include "defs.h"
-#include "writer-evidence-intervals.h"
-#include "writer-evidence-dnbs.h"
-#include "debug.h"
-#include "file.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-typedef struct CGWriterEvdInt_match_struct {
-
-    /* filled out by ReferenceMgr_Compress */
-    INSDC_coord_zero read_start[CG_EVDNC_PLOIDY];
-    INSDC_coord_len read_len[CG_EVDNC_PLOIDY];
-    bool has_ref_offset[CG_EVDNC_ALLELE_LEN];
-    int32_t ref_offset[CG_EVDNC_ALLELE_LEN];
-    bool has_mismatch[CG_EVDNC_ALLELE_LEN];
-    char mismatch[CG_EVDNC_ALLELE_LEN];
-    int64_t ref_id;
-    INSDC_coord_zero ref_start;
-    bool ref_orientation;
-    uint32_t mapq;
-
-} CGWriterEvdInt_match;
-
-struct CGWriterEvdInt {
-    const ReferenceMgr* rmgr;
-    const TableWriterAlgn* writer;
-    TableWriterAlgnData algn;
-    TEvidenceIntervalsData data;
-    CGWriterEvdInt_match match;
-    int64_t* dnbs_ids;
-    uint64_t dnbs_ids_max;
-};
-
-rc_t CGWriterEvdInt_Make(const CGWriterEvdInt** cself, TEvidenceIntervalsData** data,
-                         VDatabase* db, const ReferenceMgr* rmgr, const uint32_t options)
-{
-    rc_t rc = 0;
-    CGWriterEvdInt* self;
-
-    if( cself == NULL || db == NULL ) {
-        return RC(rcExe, rcFormatter, rcConstructing, rcParam, rcNull);
-    }
-    self = calloc(1, sizeof(*self));
-    if( self == NULL ) {
-        rc = RC(rcExe, rcFormatter, rcConstructing, rcMemory, rcExhausted);
-    } else {
-        if( (rc = TableWriterAlgn_Make(&self->writer, db, ewalgn_tabletype_EvidenceInterval, 0)) == 0 ) {
-            self->algn.read_start.buffer = &self->match.read_start;
-            self->algn.read_len.buffer = &self->match.read_len;
-            self->algn.has_ref_offset.buffer = self->match.has_ref_offset;
-            self->algn.ref_offset.buffer = self->match.ref_offset;
-            self->algn.has_mismatch.buffer = self->match.has_mismatch;
-            self->algn.mismatch.buffer = self->match.mismatch;
-            self->algn.ref_id.buffer = &self->match.ref_id;
-            self->algn.ref_id.elements = 1;
-            self->algn.ref_start.buffer = &self->match.ref_start;
-            self->algn.ref_start.elements = 1;
-            self->match.ref_orientation = false;
-            self->algn.ref_orientation.buffer = &self->match.ref_orientation;
-            self->algn.ref_orientation.elements = 1;
-            self->algn.mapq.buffer = &self->match.mapq;
-            self->algn.mapq.elements = 1;
-            self->algn.alingment_ids.buffer = self->dnbs_ids;
-            self->rmgr = rmgr;
-            *data = &self->data;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = self;
-    } else {
-        CGWriterEvdInt_Whack(self, false, NULL);
-    }
-    return rc;
-}
-
-rc_t CGWriterEvdInt_Whack(const CGWriterEvdInt* cself, bool commit, uint64_t* rows)
-{
-    rc_t rc = 0;
-    if( cself != NULL ) {
-        CGWriterEvdInt* self = (CGWriterEvdInt*)cself;
-        rc = TableWriterAlgn_Whack(cself->writer, commit, rows);
-        free(self->dnbs_ids);
-        free(self);
-    }
-    return rc;
-}
-
-rc_t CGWriterEvdInt_Write(const CGWriterEvdInt* cself, const TEvidenceDnbsData* dnbs, int64_t* rowid)
-{
-    rc_t rc = 0;
-    CGWriterEvdInt* self = (CGWriterEvdInt*)cself;
-    
-    assert(cself != NULL);
-
-    memset(self->data.allele_indexes_to_read_number, 0, sizeof(self->data.allele_indexes_to_read_number));
-    if( self->data.ploidy == 1 ) {
-
-        uint32_t i = self->data.allele_indexes[0] - '0';
-
-        if( self->data.allele_indexes[1] != '\0' || i > 2 ) {
-            rc = RC(rcExe, rcFormatter, rcWriting, rcData, rcOutofrange);
-        } else if( self->data.allele_alignment_length[i] == 0 ) {
-            rc = RC(rcExe, rcFormatter, rcWriting, rcData, rcEmpty);
-        } else {
-            if( i == 0 ) {
-                rc = string_printf(self->data.allele_alignment[0], sizeof(self->data.allele_alignment[0]),
-                                   &self->data.allele_alignment_length[0], "%uM", self->data.length);
-            }
-            if( rc == 0 ) {
-                self->algn.ploidy = 0;
-                rc = ReferenceMgr_Compress(cself->rmgr, ewrefmgr_cmp_Exact, self->data.chr, self->data.offset, self->data.allele[i], self->data.allele_length[i],
-                                           self->data.allele_alignment[i], self->data.allele_alignment_length[i],
-                                           0, NULL, 0, 0, NULL, 0, &self->algn);
-                self->data.allele_indexes_to_read_number[i] = 1; /* 1st read */
-            }
-        }
-
-    } else if( self->data.ploidy == 2 ) {  /** possibilities: 0;1 1;2 and 1;1 - single ploidy but recorded as dual **/
-        uint32_t i1 = self->data.allele_indexes[0] - '0';
-        uint32_t i2 = self->data.allele_indexes[2] - '0';
-
-        if( self->data.allele_indexes[1] != ';' || self->data.allele_indexes[3] != '\0' || i1 > 2 || i2 > 2) {
-            rc = RC(rcExe, rcFormatter, rcWriting, rcData, rcOutofrange);
-        } else {
-            if( i1 == 0 || i2 == 0 ) {
-                rc = string_printf(self->data.allele_alignment[0], sizeof(self->data.allele_alignment[0]),
-                                   &self->data.allele_alignment_length[0], "%uM", self->data.length);
-            }
-            if( self->data.allele_alignment_length[i1] == 0 || self->data.allele_alignment_length[i2] == 0 ) {
-                rc = RC(rcExe, rcFormatter, rcWriting, rcData, rcEmpty);
-            }
-            if( rc == 0 ) {
-                self->algn.ploidy = 0;
-                rc = ReferenceMgr_Compress(cself->rmgr, ewrefmgr_cmp_Exact, self->data.chr, self->data.offset, self->data.allele[i1], self->data.allele_length[i1],
-                                           self->data.allele_alignment[i1], self->data.allele_alignment_length[i1],
-                                           0, NULL, 0, 0, NULL, 0, &self->algn);
-                self->data.allele_indexes_to_read_number[i1] = 1; /* 1st read */
-            }
-            if( rc == 0 ) {
-		if ( i2 != i1 ) {
-			rc = ReferenceMgr_Compress(cself->rmgr, ewrefmgr_cmp_Exact, self->data.chr, self->data.offset, self->data.allele[i2], self->data.allele_length[i2],
-                                           self->data.allele_alignment[i2], self->data.allele_alignment_length[i2],
-                                           0, NULL, 0, 0, NULL, 0, &self->algn);
-			self->data.allele_indexes_to_read_number[i2] = 2; /* 2nd read */
-		} else {
-			self->data.ploidy = 1;
-		}
-            }
-        }
-
-    }  else if( self->data.ploidy == 3 ) { /** possibilities: 0;1;2 1;2;3 **/
-        uint32_t i1 = self->data.allele_indexes[0] - '0';
-        uint32_t i2 = self->data.allele_indexes[2] - '0';
-        uint32_t i3 = self->data.allele_indexes[4] - '0';
-
-
-        if( self->data.allele_indexes[1] != ';'  || self->data.allele_indexes[3] != ';' || self->data.allele_indexes[5] != '\0' || i1 > 3 || i2 > 3 || i3 > 3) {
-            rc = RC(rcExe, rcFormatter, rcWriting, rcData, rcOutofrange);
-        } else {
-            if( i1 == 0 || i2 == 0 || i3 == 0) {
-                rc = string_printf(self->data.allele_alignment[0], sizeof(self->data.allele_alignment[0]),
-                                   &self->data.allele_alignment_length[0], "%uM", self->data.length);
-            }
-            if( self->data.allele_alignment_length[i1] == 0 || self->data.allele_alignment_length[i2] == 0 || self->data.allele_alignment_length[i3]==0) {
-                rc = RC(rcExe, rcFormatter, rcWriting, rcData, rcEmpty);
-            }
-            if( rc == 0 ) {
-                self->algn.ploidy = 0;
-                rc = ReferenceMgr_Compress(cself->rmgr, ewrefmgr_cmp_Exact, self->data.chr, self->data.offset, self->data.allele[i1], self->data.allele_length[i1],
-                                           self->data.allele_alignment[i1], self->data.allele_alignment_length[i1],
-                                           0, NULL, 0, 0, NULL, 0, &self->algn);
-                self->data.allele_indexes_to_read_number[i1] = 1; /* 1st read */
-            }
-            if( rc == 0 ) {
-                rc = ReferenceMgr_Compress(cself->rmgr, ewrefmgr_cmp_Exact, self->data.chr, self->data.offset, self->data.allele[i2], self->data.allele_length[i2],
-                                           self->data.allele_alignment[i2], self->data.allele_alignment_length[i2],
-                                           0, NULL, 0, 0, NULL, 0, &self->algn);
-                self->data.allele_indexes_to_read_number[i2] = 2; /* 2nd read */
-            }
-            if( rc == 0 ) {
-                rc = ReferenceMgr_Compress(cself->rmgr, ewrefmgr_cmp_Exact, self->data.chr, self->data.offset, self->data.allele[i3], self->data.allele_length[i3],
-                                           self->data.allele_alignment[i3], self->data.allele_alignment_length[i3],
-                                           0, NULL, 0, 0, NULL, 0, &self->algn);
-                self->data.allele_indexes_to_read_number[i3] = 3; /* 3rd read */
-            }
-        }
-
-    } else {
-        rc = RC(rcExe, rcFormatter, rcWriting, rcData, rcUnrecognized);
-    }
-    if( rc == 0 ) { /*** a bit careful here - were are predicting what EvidenceDnb writer will do ***/
-	uint32_t i,valid_qty;
-	for(valid_qty = i = 0;i< dnbs->qty;i++){
-		if(self->data.allele_indexes_to_read_number[dnbs->dnbs[i].allele_index] > 0){
-			valid_qty++;
-		}
-	}
-        if( self->dnbs_ids_max < valid_qty ) {
-            void* p = realloc(self->dnbs_ids, sizeof(*(self->dnbs_ids)) * valid_qty);
-            if( p == NULL ) {
-                rc = RC(rcExe, rcFormatter, rcWriting, rcMemory, rcExhausted);
-            } else {
-                self->dnbs_ids = p;
-                self->dnbs_ids_max = valid_qty;
-                self->algn.alingment_ids.buffer = self->dnbs_ids;
-            }
-        }
-        if( rc == 0 ) {
-            self->algn.alingment_ids.elements = valid_qty;
-	    for(i=0;i<valid_qty;i++){
-		self->dnbs_ids[i] = dnbs->last_rowid + i;
-            }
-        }
-    }
-    if( rc == 0 ) {
-        self->match.mapq = self->data.score;
-        rc = TableWriterAlgn_Write(self->writer, &self->algn, rowid);
-    }
-    return rc;
-}
diff --git a/tools/cg-load/writer-evidence-intervals.h b/tools/cg-load/writer-evidence-intervals.h
deleted file mode 100644
index 7a8f586..0000000
--- a/tools/cg-load/writer-evidence-intervals.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_writer_evidence_intervals
-#define _tools_cg_load_writer_evidence_intervals
-
-#include <vdb/database.h>
-#include <vdb/manager.h>
-#include <insdc/insdc.h>
-
-#include "defs.h"
-#include <align/writer-alignment.h>
-#include <align/writer-reference.h>
-
-typedef struct TEvidenceIntervalsData {
-    char interval_id[CG_EVDNC_INTERVALID_LEN];
-    char chr[CG_CHROMOSOME_NAME];
-    INSDC_coord_zero offset;
-    INSDC_coord_len length;
-    uint16_t ploidy;
-    char allele_indexes[16];
-    /* translation from allele_indexes into read id for use in dnbs */
-    uint8_t allele_indexes_to_read_number[CG_EVDNC_ALLELE_NUM];
-    int32_t score;
-    int32_t scoreVAF;
-    int32_t scoreEAF;
-    char allele[CG_EVDNC_ALLELE_NUM][CG_EVDNC_ALLELE_LEN];
-    /* strlen for allele[3][] buffers */
-    size_t allele_length[CG_EVDNC_ALLELE_NUM];
-    char allele_alignment[CG_EVDNC_ALLELE_NUM][CG_EVDNC_ALLELE_CIGAR_LEN];
-    /* strlen for allele_alignment[3][] buffers */
-    size_t allele_alignment_length[CG_EVDNC_ALLELE_NUM];
-} TEvidenceIntervalsData;
-
-typedef struct CGWriterEvdInt CGWriterEvdInt;
-
-struct TEvidenceDnbsData;
-
-rc_t CGWriterEvdInt_Make(const CGWriterEvdInt** cself, TEvidenceIntervalsData** data,
-                         VDatabase* db, const ReferenceMgr* rmgr, const uint32_t options);
-
-rc_t CGWriterEvdInt_Whack(const CGWriterEvdInt* cself, bool commit, uint64_t* rows);
-
-rc_t CGWriterEvdInt_Write(const CGWriterEvdInt* cself, const struct TEvidenceDnbsData* dnbs, int64_t* rowid);
-
-#endif /* _tools_cg_load_writer_evidence_intervals */
diff --git a/tools/cg-load/writer-seq.c b/tools/cg-load/writer-seq.c
deleted file mode 100644
index 43b34bd..0000000
--- a/tools/cg-load/writer-seq.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <insdc/insdc.h>
-
-#include "debug.h"
-#include "defs.h"
-#include "writer-seq.h"
-
-#include <stdlib.h>
-#include <assert.h>
-
-const INSDC_SRA_platform_id DFTL_platform = SRA_PLATFORM_COMPLETE_GENOMICS;
-const char DFTL_label[] = "LeftRight";
-const INSDC_coord_zero DFTL_label_start[CG_READS_NREADS] = {0, 4};
-const INSDC_coord_len DFTL_label_len[CG_READS_NREADS] =    {4, 5};
-const INSDC_coord_zero DFTL_read_start[CG_READS_NREADS] =  {0, 35};
-const INSDC_coord_len DFTL_read_len[CG_READS_NREADS] =    {35, 35};
-const INSDC_SRA_read_filter DFTL_read_filter[CG_READS_NREADS] =  {SRA_READ_FILTER_PASS, SRA_READ_FILTER_PASS};
-
-struct CGWriterSeq {
-    const TableWriterSeq* base;
-    TReadsData data;
-};
-
-rc_t CGWriterSeq_Make(const CGWriterSeq** cself, TReadsData** data, VDatabase* db, const uint32_t options, const char* quality_quantization)
-{
-    rc_t rc = 0;
-    CGWriterSeq* self;
-
-    if( cself == NULL || db == NULL ) {
-        return RC(rcExe, rcFormatter, rcConstructing, rcParam, rcNull);
-    }
-    self = calloc(1, sizeof(*self));
-    if( self == NULL ) {
-        rc = RC(rcExe, rcFormatter, rcConstructing, rcMemory, rcExhausted);
-    } else {
-        TableWriterData p;
-        p.buffer = &DFTL_platform;
-        p.elements = 1;
-        if( (rc = TableWriterSeq_Make(&self->base, db, options | ewseq_co_AlignData | ewseq_co_SpotGroup, quality_quantization)) != 0 ) {
-            LOGERR(klogErr, rc, "sequence table");
-        } else if( (rc = TableWriteSeq_WriteDefault(self->base, ewseq_cn_PLATFORM, &p)) == 0 ) {
-            /* attach data pointer to data */
-            self->data.seq.nreads = CG_READS_NREADS;
-            self->data.seq.alignment_count.buffer = self->data.align_count;
-            self->data.seq.alignment_count.elements = CG_READS_NREADS;
-            self->data.seq.primary_alignment_id.buffer = self->data.prim_algn_id;
-            self->data.seq.primary_alignment_id.elements = CG_READS_NREADS;
-            self->data.seq.sequence.buffer = self->data.read;
-            self->data.seq.quality.buffer = self->data.qual;
-            self->data.seq.label.buffer = DFTL_label;
-            self->data.seq.label.elements = sizeof(DFTL_label) - 1;
-            self->data.seq.label_start.buffer = DFTL_label_start;
-            self->data.seq.label_start.elements = CG_READS_NREADS;
-            self->data.seq.label_len.buffer = DFTL_label_len;
-            self->data.seq.label_len.elements = CG_READS_NREADS;
-            self->data.seq.read_type.buffer = self->data.read_type;
-            self->data.seq.read_type.elements = CG_READS_NREADS;
-            self->data.seq.read_start.buffer = DFTL_read_start;
-            self->data.seq.read_start.elements = CG_READS_NREADS;
-            self->data.seq.read_len.buffer = DFTL_read_len;
-            self->data.seq.read_len.elements = CG_READS_NREADS;
-            self->data.seq.read_filter.buffer = DFTL_read_filter;
-            self->data.seq.read_filter.elements = CG_READS_NREADS;
-
-            /* set to 1st row for aligment to refer */
-            self->data.rowid = 1;
-            *data = &self->data;
-        }
-    }
-    if( rc == 0 ) {
-        *cself = self;
-    } else {
-        CGWriterSeq_Whack(self, false, NULL);
-    }
-    return rc;
-}
-
-rc_t CGWriterSeq_Whack(const CGWriterSeq* cself, bool commit, uint64_t* rows)
-{
-    rc_t rc = 0;
-    if( cself != NULL ) {
-        CGWriterSeq* self = (CGWriterSeq*)cself;
-        rc = TableWriterSeq_Whack(cself->base, commit, rows);
-        free(self);
-    }
-    return rc;
-}
-
-rc_t CGWriterSeq_Write(const CGWriterSeq* cself)
-{
-    uint64_t i;
-    int64_t r;
-    rc_t rc;
-    INSDC_quality_phred* b;
-    CGWriterSeq* self = (CGWriterSeq*)cself;
-
-    assert(cself != NULL);
-
-    b = (INSDC_quality_phred*)(self->data.seq.quality.buffer);
-    for(i = 0; i < cself->data.seq.quality.elements; i++ ) {
-        b[i] -= 33;
-    }
-    for(i = 0; i < CG_READS_NREADS; i++) {
-        self->data.read_type[i] = SRA_READ_TYPE_BIOLOGICAL |
-            (cself->data.prim_is_reverse[i] ? SRA_READ_TYPE_REVERSE : SRA_READ_TYPE_FORWARD);
-    }
-    rc = TableWriterSeq_Write(cself->base, &cself->data.seq, &r);
-    return rc ? rc : (self->data.rowid++ == r ? 0 : RC(rcExe, rcTable, rcWriting, rcData, rcInconsistent));
-}
diff --git a/tools/cg-load/writer-seq.h b/tools/cg-load/writer-seq.h
deleted file mode 100644
index b9a1da7..0000000
--- a/tools/cg-load/writer-seq.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_cg_load_writer_seq_h_
-#define _tools_cg_load_writer_seq_h_
-
-#include <insdc/insdc.h>
-#include <vdb/database.h>
-#include <sra/sradb.h>
-#include <align/writer-sequence.h>
-
-typedef struct TReadsData_struct {
-    uint16_t flags;
-    char read[CG_READS_SPOT_LEN + 1];
-    char qual[CG_READS_SPOT_LEN + 1];
-
-    /* reverse read cache by half-dnb */
-    INSDC_dna_text reverse[CG_READS_SPOT_LEN];
-
-    TableWriterSeqData seq;
-    int64_t rowid;
-    uint8_t align_count[CG_READS_NREADS];
-    int64_t prim_algn_id[CG_READS_NREADS];
-    bool prim_is_reverse[CG_READS_NREADS];
-    SRAReadTypes read_type[CG_READS_NREADS];
-} TReadsData;
-
-typedef struct CGWriterSeq CGWriterSeq;
-
-rc_t CGWriterSeq_Make(const CGWriterSeq** cself, TReadsData** data, VDatabase* db, const uint32_t options, const char* quality_quantization);
-
-rc_t CGWriterSeq_Whack(const CGWriterSeq* cself, bool commit, uint64_t* rows);
-
-rc_t CGWriterSeq_Write(const CGWriterSeq* cself);
-
-#endif /* _tools_cg_load_writer_seq_h_ */
diff --git a/tools/fastq-loader/Makefile b/tools/fastq-loader/Makefile
deleted file mode 100644
index 77bcfae..0000000
--- a/tools/fastq-loader/Makefile
+++ /dev/null
@@ -1,222 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/fastq-loader
-
-INT_LIBS = \
-	libfastqloader
-
-ALL_LIBS = \
-	$(INT_LIBS) \
-	$(EXT_LIBS)
-
-EXT_TOOLS = \
-    latf-load
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)    
-
-TEST_TOOLS = \
-	wb-test-fastq
-
-include $(TOP)/build/Makefile.env
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes 
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(INT_LIBS): vers-includes
-	@ $(MAKE_CMD) $(ILIBDIR)/$@
-
-$(EXT_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@    
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-$(TEST_TOOLS): std 
-	@ $(MAKE_CMD) $(TEST_BINDIR)/$@
-
-valgrind: $(TEST_TOOLS)
-	@echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++
-	@echo Run $(TEST_BINDIR)/$(TEST_TOOLS)
-	valgrind $(RUN_REMOTELY) $(TEST_BINDIR)/$(TEST_TOOLS)
-
-.PHONY: all std $(ALL_LIBS) $(TEST_TOOLS) valgrind
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(ILIBDIR)/,$(INT_LIBS)) \
-	$(addprefix $(LIBDIR)/,$(EXT_LIBS)) \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-INTERM_SRC = \
-	$(SRCDIR)/fastq-lex.c \
-	$(SRCDIR)/fastq-grammar.c \
-	$(SRCDIR)/fastq-tokens.h 
-
-clean: stdclean
-	@ rm -f $(addsuffix *,$(addprefix $(TEST_BINDIR)/,$(TEST_TOOLS)))
-
-.PHONY: clean
-
-.PRECIOUS: $(INTERM_SRC)
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_LIBS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_LIBS))
-
-#-------------------------------------------------------------------------------
-# fastq
-#
-$(ILIBDIR)/libfastqloader: $(ILIBDIR)/libfastqloader.$(LIBX)
-
-FASTQ_SRC = \
-    fastq-reader \
-	fastq-grammar \
-	fastq-lex
-
-$(SRCDIR)/fastq-grammar.c $(SRCDIR)/fastq-tokens.h: $(SRCDIR)/fastq-grammar.y
-	$(YACC) -o $(SRCDIR)/fastq-grammar.c --defines=$(SRCDIR)/fastq-tokens.h -v $^
-
-FASTQ_OBJ = \
-	$(addsuffix .$(LOBX),$(FASTQ_SRC))
-
-FASTQ_LIB = \
-    -lload \
-    -lloader \
-	-lkfs \
-	-lklib \
-
-ifneq (win,$(OS))
-    FASTQ_LIB += -lkq
-endif
-
-$(ILIBDIR)/libfastqloader.$(SHLX): $(INTERM_SRC) $(FASTQ_OBJ)
-	$(LD) --dlib -o $@ $^ $(FASTQ_LIB)
-
-$(ILIBDIR)/libfastqloader.$(LIBX): $(INTERM_SRC) $(FASTQ_OBJ)
-	$(LD) --slib -o $@ $^ $(FASTQ_LIB)
-
-libfastqloader_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) libfastqloader $(FASTQ_OBJ)
-
-#------------------------------------------------------------------------------
-# fastq-load.3
-#
-FASTQ_LOAD_SRC = \
-	fastq-loader \
-    loader-imp
-
-FASTQ_LOAD_OBJ = \
-	$(addsuffix .$(OBJX),$(FASTQ_LOAD_SRC))
-
-ifneq (win, $(OS))
-    QLIB = -skq
-endif
-FASTQ_LOADER_LIB = \
-	-skapp \
-    -dwvxf \
-	-dwaxf \
-	-dwsraxf \
-	-sfastqloader \
-    -sload \
-	-sloader \
-	-salign-writer \
-    -swvdb \
-    -swkdb \
-    -svfs \
-	-skurl \
-    -skrypto \
-    -skfg \
-    -skfs \
-	-lksrch \
-    $(QLIB) \
-    -skproc \
-	-sklib \
-	-lz    \
-    -lm
-
-
-$(BINDIR)/latf-load: $(FASTQ_LOAD_OBJ)
-	$(LD) --exe --vers $(SRCDIR)/latf-load.vers -o $@ $^ $(FASTQ_LOADER_LIB)
-
-#-------------------------------------------------------------------------------
-# white-box test
-#
-FASTQ_TEST_SRC = \
-	wb-test-fastq
-
-FASTQ_TEST_OBJ = \
-	$(addsuffix .$(OBJX),$(FASTQ_TEST_SRC))
-
-ifneq (win, $(OS))
-    QLIB = -skq
-endif
-
-FASTQ_TEST_LIB = \
-	-sktst \
-	-skapp \
-	-sfastqloader \
-    -sload \
-	-sloader \
-	-salign-writer \
-    -swvdb \
-    -swkdb \
-    -svfs \
-	-skurl \
-    -skrypto \
-    -skfg \
-    -skfs \
-    $(QLIB) \
-    -skproc \
-	-sklib
-
-$(TEST_BINDIR)/wb-test-fastq: $(FASTQ_TEST_OBJ)
-	$(LP) --exe -o $@ $^ $(FASTQ_TEST_LIB)
diff --git a/tools/fastq-loader/fastq-grammar.c b/tools/fastq-loader/fastq-grammar.c
deleted file mode 100644
index b8cc5cd..0000000
--- a/tools/fastq-loader/fastq-grammar.c
+++ /dev/null
@@ -1,2100 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
-
-/* Bison implementation for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "2.5"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 1
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-/* Substitute the variable and function names.  */
-#define yyparse         FASTQ_parse
-#define yylex           FASTQ_lex
-#define yyerror         FASTQ_error
-#define yylval          FASTQ_lval
-#define yychar          FASTQ_char
-#define yydebug         FASTQ_debug
-#define yynerrs         FASTQ_nerrs
-
-
-/* Copy the first part of user declarations.  */
-
-  
-    #include <ctype.h>
-    #include <stdlib.h>
-    #include <string.h>
-
-    #include "fastq-parse.h"
-
-    #define YYSTYPE FASTQToken
-    #define YYLEX_PARAM pb->scanner
-    #define YYDEBUG 1
-
-    #include "fastq-tokens.h"
-
-    static void AddQuality(FASTQParseBlock* pb, const FASTQToken* token);
-    static void SetReadNumber(FASTQParseBlock* pb, const FASTQToken* token);
-    static void GrowTagLine(FASTQParseBlock* pb, const FASTQToken* token);
-    static void StopSpotName(FASTQParseBlock* pb);
-    static void SetSpotGroup(FASTQParseBlock* pb, const FASTQToken* token);
-    static void SetRead(FASTQParseBlock* pb, const FASTQToken* token);
-
-    #define UNLEX do { if (yychar != YYEMPTY && yychar != YYEOF) FASTQ_unlex(pb, & yylval); } while (0)
-
-
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 1
-#endif
-
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     fqENDOFTEXT = 0,
-     fqNUMBER = 258,
-     fqALPHANUM = 259,
-     fqWS = 260,
-     fqENDLINE = 261,
-     fqBASESEQ = 262,
-     fqCOLORSEQ = 263,
-     fqTOKEN = 264,
-     fqASCQUAL = 265,
-     fqUNRECOGNIZED = 266
-   };
-#endif
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef int YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-/* Copy the second part of user declarations.  */
-
-
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
-#else
-static int
-YYID (yyi)
-    int yyi;
-#endif
-{
-  return yyi;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-	     && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
-    do									\
-      {									\
-	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
-	Stack = &yyptr->Stack_alloc;					\
-	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-	yyptr += yynewbytes / sizeof (*yyptr);				\
-      }									\
-    while (YYID (0))
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  YYSIZE_T yyi;				\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];		\
-	}					\
-      while (YYID (0))
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  24
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   89
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  22
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  50
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  86
-/* YYNRULES -- Number of states.  */
-#define YYNSTATES  127
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   266
-
-#define YYTRANSLATE(YYX)						\
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,    18,     2,     2,     2,     2,
-       2,     2,     2,    21,     2,    16,    17,    19,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
-       2,    20,    14,     2,    13,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,    15,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint8 yyprhs[] =
-{
-       0,     0,     3,     6,     8,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    46,    50,    52,
-      54,    57,    59,    63,    68,    72,    75,    78,    80,    82,
-      83,    87,    88,    93,    94,    98,    99,   104,   106,   108,
-     110,   113,   114,   118,   120,   122,   125,   128,   131,   134,
-     137,   140,   141,   145,   146,   150,   151,   152,   156,   157,
-     161,   162,   166,   167,   172,   173,   174,   175,   176,   177,
-     178,   192,   194,   196,   197,   199,   202,   205,   208,   211,
-     214,   218,   223,   225,   228,   231,   235
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int8 yyrhs[] =
-{
-      23,     0,    -1,    37,    68,    -1,    37,    -1,    68,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,     4,    24,    12,    25,     3,    26,    12,    27,     3,
-      28,    12,    29,     3,    30,    12,    31,     3,    32,    12,
-      33,    46,    12,    34,    70,    -1,     4,     1,    36,    -1,
-      35,    -1,     0,    -1,    36,    35,    -1,     6,    -1,    38,
-      36,    39,    -1,    38,    36,     1,    36,    -1,     1,    36,
-      39,    -1,    13,    47,    -1,    14,    47,    -1,    40,    -1,
-      43,    -1,    -1,     7,    41,    36,    -1,    -1,    40,     7,
-      42,    36,    -1,    -1,     8,    44,    36,    -1,    -1,    43,
-       8,    45,    36,    -1,     7,    -1,     8,    -1,    48,    -1,
-      48,    54,    -1,    -1,    50,    49,    51,    -1,     4,    -1,
-       3,    -1,    50,    15,    -1,    50,    16,    -1,    50,    17,
-      -1,    50,    12,    -1,    50,     4,    -1,    50,     3,    -1,
-      -1,    18,    52,     3,    -1,    -1,    18,    53,     4,    -1,
-      -1,    -1,    19,    55,     3,    -1,    -1,     5,    56,    59,
-      -1,    -1,     5,    57,    67,    -1,    -1,    54,     5,    58,
-      67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    60,
-      12,    61,     4,    62,    12,    63,     3,    64,    12,    65,
-      66,    -1,     4,    -1,     3,    -1,    -1,     4,    -1,    67,
-       3,    -1,    67,     4,    -1,    67,    15,    -1,    67,    19,
-      -1,    67,    20,    -1,    69,    36,    70,    -1,    69,    36,
-       1,    36,    -1,    21,    -1,    69,     9,    -1,    71,    36,
-      -1,    70,    71,    36,    -1,    10,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const yytype_uint8 yyrline[] =
-{
-       0,    70,    70,    72,    74,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    87,    76,    90,    92,    96,
-      97,   101,   105,   106,   107,   111,   112,   116,   117,   121,
-     121,   123,   123,   128,   128,   130,   130,   135,   136,   141,
-     142,   146,   146,   151,   152,   153,   154,   155,   156,   157,
-     158,   162,   162,   164,   164,   166,   170,   170,   172,   172,
-     174,   174,   176,   176,   180,   181,   182,   183,   184,   185,
-     180,   189,   190,   191,   195,   196,   197,   198,   199,   200,
-     206,   207,   211,   212,   216,   217,   220
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "fqENDOFTEXT", "error", "$undefined", "fqNUMBER", "fqALPHANUM", "fqWS",
-  "fqENDLINE", "fqBASESEQ", "fqCOLORSEQ", "fqTOKEN", "fqASCQUAL",
-  "fqUNRECOGNIZED", "':'", "'@'", "'>'", "'_'", "'-'", "'.'", "'#'", "'/'",
-  "'='", "'+'", "$accept", "sequence", "$@1", "$@2", "$@3", "$@4", "$@5",
-  "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "endfile", "endline",
-  "readLines", "header", "read", "baseRead", "$@12", "$@13", "csRead",
-  "$@14", "$@15", "inlineRead", "tagLine", "nameSpotGroup", "$@16", "name",
-  "spotGroup", "$@17", "$@18", "readNumberOrTail", "$@19", "$@20", "$@21",
-  "$@22", "casava1_8", "$@23", "$@24", "$@25", "$@26", "$@27", "$@28",
-  "indexSequence", "tail", "qualityLines", "qualityHeader", "quality",
-  "qualityLine", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,    58,    64,    62,    95,    45,    46,    35,    47,
-      61,    43
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    22,    23,    23,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    23,    23,    23,    35,
-      35,    36,    37,    37,    37,    38,    38,    39,    39,    41,
-      40,    42,    40,    44,    43,    45,    43,    46,    46,    47,
-      47,    49,    48,    50,    50,    50,    50,    50,    50,    50,
-      50,    52,    51,    53,    51,    51,    55,    54,    56,    54,
-      57,    54,    58,    54,    60,    61,    62,    63,    64,    65,
-      59,    66,    66,    66,    67,    67,    67,    67,    67,    67,
-      68,    68,    69,    69,    70,    70,    71
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     2,     1,     1,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    24,     3,     1,     1,
-       2,     1,     3,     4,     3,     2,     2,     1,     1,     0,
-       3,     0,     4,     0,     3,     0,     4,     1,     1,     1,
-       2,     0,     3,     1,     1,     2,     2,     2,     2,     2,
-       2,     0,     3,     0,     3,     0,     0,     3,     0,     3,
-       0,     3,     0,     4,     0,     0,     0,     0,     0,     0,
-      13,     1,     1,     0,     1,     2,     2,     2,     2,     2,
-       3,     4,     1,     2,     2,     3,     1
-};
-
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       0,    19,     0,     0,    21,     0,     0,    82,     0,    18,
-       0,     3,     0,     4,     0,     0,     0,     0,    44,    43,
-      25,    39,    41,    26,     1,    20,     2,     0,    83,     0,
-      29,    33,    24,    27,    28,    17,     6,    58,    56,    40,
-      50,    49,    48,    45,    46,    47,    55,     0,    22,     0,
-      86,    80,     0,     0,     0,    31,    35,     0,     0,     0,
-       0,    62,    51,    42,    23,    81,     0,    84,    30,    34,
-       0,     0,     7,    64,    59,    74,    61,    57,     0,     0,
-       0,    85,    32,    36,     0,     0,    75,    76,    77,    78,
-      79,    63,    52,    54,     8,    65,     0,     0,     9,    66,
-       0,     0,    10,    67,     0,     0,    11,    68,     0,     0,
-      12,    69,     0,    73,    13,    72,    71,    70,     0,    14,
-       0,    37,    38,     0,    15,     0,    16
-};
-
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-      -1,     8,    17,    57,    84,    96,   100,   104,   108,   112,
-     118,   120,   125,     9,    10,    11,    12,    32,    33,    53,
-      70,    34,    54,    71,   123,    20,    21,    46,    22,    63,
-      79,    80,    39,    60,    58,    59,    78,    74,    85,    97,
-     101,   105,   109,   113,   117,    76,    13,    14,    51,    52
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -52
-static const yytype_int8 yypact[] =
-{
-       3,   -52,     6,     9,   -52,    34,    34,   -52,    23,   -52,
-       2,     8,     6,   -52,    16,    35,     6,    19,   -52,   -52,
-     -52,     1,    24,   -52,   -52,   -52,   -52,    25,   -52,     4,
-     -52,   -52,   -52,    40,    46,   -52,   -52,    51,   -52,    52,
-     -52,   -52,   -52,   -52,   -52,   -52,    38,     6,   -52,     6,
-     -52,    48,     6,     6,     6,   -52,   -52,    56,    57,    58,
-      60,   -52,    62,   -52,   -52,   -52,     6,   -52,   -52,   -52,
-       6,     6,   -52,   -52,   -52,   -52,    15,   -52,    58,    61,
-      63,   -52,   -52,   -52,    49,    59,   -52,   -52,   -52,   -52,
-     -52,    15,   -52,   -52,   -52,   -52,    65,    68,   -52,   -52,
-      64,    66,   -52,   -52,    70,    71,   -52,   -52,    67,    69,
-     -52,   -52,    74,    41,   -52,   -52,   -52,   -52,    72,   -52,
-      42,   -52,   -52,    73,   -52,    48,    48
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-     -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,
-     -52,   -52,   -52,    76,    -1,   -52,   -52,    53,   -52,   -52,
-     -52,   -52,   -52,   -52,   -52,    77,   -52,   -52,   -52,   -52,
-     -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,
-     -52,   -52,   -52,   -52,   -52,    10,    78,   -52,   -43,   -51
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -61
-static const yytype_int8 yytable[] =
-{
-      66,    15,     1,     1,     2,    49,    37,     3,     4,     4,
-      16,    27,     4,    29,    50,    35,     5,     6,    86,    87,
-      38,    -5,     4,    24,     7,    28,    47,    40,    41,     7,
-      88,    36,    30,    31,    89,    90,    42,    18,    19,    43,
-      44,    45,    30,    31,   115,   116,    64,    55,    65,   121,
-     122,    67,    68,    69,    56,   -60,    62,    61,    50,    72,
-      73,    94,    75,    77,    92,    81,   -53,    93,    98,    82,
-      83,    95,    99,   106,   107,    66,   102,   114,   103,   110,
-      48,   111,   126,    23,   119,   124,    25,     0,    91,    26
-};
-
-#define yypact_value_is_default(yystate) \
-  ((yystate) == (-52))
-
-#define yytable_value_is_error(yytable_value) \
-  YYID (0)
-
-static const yytype_int8 yycheck[] =
-{
-      51,     2,     0,     0,     1,     1,     5,     4,     6,     6,
-       1,    12,     6,    14,    10,    16,    13,    14,     3,     4,
-      19,    12,     6,     0,    21,     9,     1,     3,     4,    21,
-      15,    12,     7,     8,    19,    20,    12,     3,     4,    15,
-      16,    17,     7,     8,     3,     4,    47,     7,    49,     7,
-       8,    52,    53,    54,     8,     4,    18,     5,    10,     3,
-       3,    12,     4,     3,     3,    66,     4,     4,     3,    70,
-      71,    12,     4,     3,     3,   126,    12,     3,    12,    12,
-      27,    12,   125,     6,    12,    12,    10,    -1,    78,    11
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const yytype_uint8 yystos[] =
-{
-       0,     0,     1,     4,     6,    13,    14,    21,    23,    35,
-      36,    37,    38,    68,    69,    36,     1,    24,     3,     4,
-      47,    48,    50,    47,     0,    35,    68,    36,     9,    36,
-       7,     8,    39,    40,    43,    36,    12,     5,    19,    54,
-       3,     4,    12,    15,    16,    17,    49,     1,    39,     1,
-      10,    70,    71,    41,    44,     7,     8,    25,    56,    57,
-      55,     5,    18,    51,    36,    36,    71,    36,    36,    36,
-      42,    45,     3,     3,    59,     4,    67,     3,    58,    52,
-      53,    36,    36,    36,    26,    60,     3,     4,    15,    19,
-      20,    67,     3,     4,    12,    12,    27,    61,     3,     4,
-      28,    62,    12,    12,    29,    63,     3,     3,    30,    64,
-      12,    12,    31,    65,     3,     3,     4,    66,    32,    12,
-      33,     7,     8,    46,    12,    34,    70
-};
-
-#define yyerrok		(yyerrstatus = 0)
-#define yyclearin	(yychar = YYEMPTY)
-#define YYEMPTY		(-2)
-#define YYEOF		0
-
-#define YYACCEPT	goto yyacceptlab
-#define YYABORT		goto yyabortlab
-#define YYERROR		goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
-
-#define YYFAIL		goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)					\
-do								\
-  if (yychar == YYEMPTY && yylen == 1)				\
-    {								\
-      yychar = (Token);						\
-      yylval = (Value);						\
-      YYPOPSTACK (1);						\
-      goto yybackup;						\
-    }								\
-  else								\
-    {								\
-      yyerror (pb, YY_("syntax error: cannot back up")); \
-      YYERROR;							\
-    }								\
-while (YYID (0))
-
-
-#define YYTERROR	1
-#define YYERRCODE	256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)				\
-    do									\
-      if (YYID (N))                                                    \
-	{								\
-	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
-	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
-	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
-	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
-	}								\
-      else								\
-	{								\
-	  (Current).first_line   = (Current).last_line   =		\
-	    YYRHSLOC (Rhs, 0).last_line;				\
-	  (Current).first_column = (Current).last_column =		\
-	    YYRHSLOC (Rhs, 0).last_column;				\
-	}								\
-    while (YYID (0))
-#endif
-
-
-/* This macro is provided for backward compatibility. */
-
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (&yylval, YYLEX_PARAM)
-#else
-# define YYLEX yylex (&yylval, pb)
-#endif
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)			\
-do {						\
-  if (yydebug)					\
-    YYFPRINTF Args;				\
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
-do {									  \
-  if (yydebug)								  \
-    {									  \
-      YYFPRINTF (stderr, "%s ", Title);					  \
-      yy_symbol_print (stderr,						  \
-		  Type, Value, pb); \
-      YYFPRINTF (stderr, "\n");						  \
-    }									  \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, FASTQParseBlock* pb)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, pb)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    FASTQParseBlock* pb;
-#endif
-{
-  if (!yyvaluep)
-    return;
-  YYUSE (pb);
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
-# endif
-  switch (yytype)
-    {
-      default:
-	break;
-    }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, FASTQParseBlock* pb)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, pb)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-    FASTQParseBlock* pb;
-#endif
-{
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, pb);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
-    yytype_int16 *yybottom;
-    yytype_int16 *yytop;
-#endif
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)				\
-do {								\
-  if (yydebug)							\
-    yy_stack_print ((Bottom), (Top));				\
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule, FASTQParseBlock* pb)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule, pb)
-    YYSTYPE *yyvsp;
-    int yyrule;
-    FASTQParseBlock* pb;
-#endif
-{
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  unsigned long int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-	     yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-		       &(yyvsp[(yyi + 1) - (yynrhs)])
-		       		       , pb);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)		\
-do {					\
-  if (yydebug)				\
-    yy_reduce_print (yyvsp, Rule, pb); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef	YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-	switch (*++yyp)
-	  {
-	  case '\'':
-	  case ',':
-	    goto do_not_strip_quotes;
-
-	  case '\\':
-	    if (*++yyp != '\\')
-	      goto do_not_strip_quotes;
-	    /* Fall through.  */
-	  default:
-	    if (yyres)
-	      yyres[yyn] = *yyp;
-	    yyn++;
-	    break;
-
-	  case '"':
-	    if (yyres)
-	      yyres[yyn] = '\0';
-	    return yyn;
-	  }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  YYSIZE_T yysize1;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = 0;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - Assume YYFAIL is not used.  It's too flawed to consider.  See
-       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
-       for details.  YYERROR is fine as it does not invoke this
-       function.
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-                if (! (yysize <= yysize1
-                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                  return 2;
-                yysize = yysize1;
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  yysize1 = yysize + yystrlen (yyformat);
-  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-    return 2;
-  yysize = yysize1;
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, FASTQParseBlock* pb)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep, pb)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-    FASTQParseBlock* pb;
-#endif
-{
-  YYUSE (yyvaluep);
-  YYUSE (pb);
-
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  switch (yytype)
-    {
-
-      default:
-	break;
-    }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes.  */
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (FASTQParseBlock* pb);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (FASTQParseBlock* pb)
-#else
-int
-yyparse (pb)
-    FASTQParseBlock* pb;
-#endif
-#endif
-{
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-
-    /* Number of syntax errors so far.  */
-    int yynerrs;
-
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       `yyss': related to states.
-       `yyvs': related to semantic values.
-
-       Refer to the stacks thru separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yytoken = 0;
-  yyss = yyssa;
-  yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-  yyssp = yyss;
-  yyvsp = yyvs;
-
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-	/* Give user a chance to reallocate the stack.  Use copies of
-	   these so that the &'s don't force the real ones into
-	   memory.  */
-	YYSTYPE *yyvs1 = yyvs;
-	yytype_int16 *yyss1 = yyss;
-
-	/* Each stack pointer address is followed by the size of the
-	   data in use in that stack, in bytes.  This used to be a
-	   conditional around just the two extra args, but that might
-	   be undefined if yyoverflow is a macro.  */
-	yyoverflow (YY_("memory exhausted"),
-		    &yyss1, yysize * sizeof (*yyssp),
-		    &yyvs1, yysize * sizeof (*yyvsp),
-		    &yystacksize);
-
-	yyss = yyss1;
-	yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-	goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-	yystacksize = YYMAXDEPTH;
-
-      {
-	yytype_int16 *yyss1 = yyss;
-	union yyalloc *yyptr =
-	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-	if (! yyptr)
-	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss_alloc, yyss);
-	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-	if (yyss1 != yyssa)
-	  YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-		  (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-	YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  *++yyvsp = yylval;
-
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 2:
-
-    { UNLEX; return 1; }
-    break;
-
-  case 3:
-
-    { UNLEX; return 1; }
-    break;
-
-  case 4:
-
-    { UNLEX; return 1; }
-    break;
-
-  case 5:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 6:
-
-    { GrowTagLine(pb, &(yyvsp[(3) - (3)])); }
-    break;
-
-  case 7:
-
-    { GrowTagLine(pb, &(yyvsp[(5) - (5)])); }
-    break;
-
-  case 8:
-
-    { GrowTagLine(pb, &(yyvsp[(7) - (7)]));}
-    break;
-
-  case 9:
-
-    { GrowTagLine(pb, &(yyvsp[(9) - (9)])); }
-    break;
-
-  case 10:
-
-    { GrowTagLine(pb, &(yyvsp[(11) - (11)])); }
-    break;
-
-  case 11:
-
-    { GrowTagLine(pb, &(yyvsp[(13) - (13)])); }
-    break;
-
-  case 12:
-
-    { GrowTagLine(pb, &(yyvsp[(15) - (15)])); }
-    break;
-
-  case 13:
-
-    { GrowTagLine(pb, &(yyvsp[(17) - (17)])); }
-    break;
-
-  case 14:
-
-    { FASTQScan_inline_sequence(pb); }
-    break;
-
-  case 15:
-
-    { FASTQScan_inline_quality(pb); }
-    break;
-
-  case 16:
-
-    { UNLEX; return 1; }
-    break;
-
-  case 17:
-
-    { UNLEX; return 1; }
-    break;
-
-  case 18:
-
-    { return 0; }
-    break;
-
-  case 27:
-
-    { pb->record->seq.is_colorspace = false; }
-    break;
-
-  case 28:
-
-    { pb->record->seq.is_colorspace = true; }
-    break;
-
-  case 29:
-
-    { SetRead(pb, & (yyvsp[(1) - (1)])); }
-    break;
-
-  case 31:
-
-    { SetRead(pb, & (yyvsp[(2) - (2)])); }
-    break;
-
-  case 33:
-
-    { SetRead(pb, & (yyvsp[(1) - (1)])); }
-    break;
-
-  case 35:
-
-    { SetRead(pb, & (yyvsp[(2) - (2)])); }
-    break;
-
-  case 37:
-
-    { SetRead(pb, & (yyvsp[(1) - (1)])); pb->record->seq.is_colorspace = false; }
-    break;
-
-  case 38:
-
-    { SetRead(pb, & (yyvsp[(1) - (1)])); pb->record->seq.is_colorspace = true; }
-    break;
-
-  case 41:
-
-    { StopSpotName(pb); }
-    break;
-
-  case 43:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 44:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 45:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 46:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 47:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 48:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 49:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 50:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 51:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 52:
-
-    { SetSpotGroup(pb, &(yyvsp[(3) - (3)]));  GrowTagLine(pb, &(yyvsp[(3) - (3)])); }
-    break;
-
-  case 53:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 54:
-
-    { SetSpotGroup(pb, &(yyvsp[(3) - (3)]));  GrowTagLine(pb, &(yyvsp[(3) - (3)])); }
-    break;
-
-  case 56:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 57:
-
-    { SetReadNumber(pb, &(yyvsp[(3) - (3)])); GrowTagLine(pb, &(yyvsp[(3) - (3)])); }
-    break;
-
-  case 58:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 60:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 62:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 64:
-
-    { SetReadNumber(pb, &(yyvsp[(1) - (1)])); GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 65:
-
-    { GrowTagLine(pb, &(yyvsp[(3) - (3)])); }
-    break;
-
-  case 66:
-
-    { GrowTagLine(pb, &(yyvsp[(5) - (5)])); if ((yyvsp[(5) - (5)]).tokenLength == 1 && (yyvsp[(5) - (5)]).tokenText[0] == 'Y') pb->record->seq.lowQuality = true; }
-    break;
-
-  case 67:
-
-    { GrowTagLine(pb, &(yyvsp[(7) - (7)])); }
-    break;
-
-  case 68:
-
-    { GrowTagLine(pb, &(yyvsp[(9) - (9)])); }
-    break;
-
-  case 69:
-
-    { GrowTagLine(pb, &(yyvsp[(11) - (11)])); }
-    break;
-
-  case 71:
-
-    { SetSpotGroup(pb, &(yyvsp[(1) - (1)])); GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 72:
-
-    { SetSpotGroup(pb, &(yyvsp[(1) - (1)])); GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 74:
-
-    { GrowTagLine(pb, &(yyvsp[(1) - (1)])); }
-    break;
-
-  case 75:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 76:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 77:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 78:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 79:
-
-    { GrowTagLine(pb, &(yyvsp[(2) - (2)])); }
-    break;
-
-  case 86:
-
-    {  AddQuality(pb, & (yyvsp[(1) - (1)])); }
-    break;
-
-
-
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-  /* Now `shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (pb, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (pb, yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-	 error, discard it.  */
-
-      if (yychar <= YYEOF)
-	{
-	  /* Return failure if at end of input.  */
-	  if (yychar == YYEOF)
-	    YYABORT;
-	}
-      else
-	{
-	  yydestruct ("Error: discarding",
-		      yytoken, &yylval, pb);
-	  yychar = YYEMPTY;
-	}
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-	{
-	  yyn += YYTERROR;
-	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-	    {
-	      yyn = yytable[yyn];
-	      if (0 < yyn)
-		break;
-	    }
-	}
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-	YYABORT;
-
-
-      yydestruct ("Error: popping",
-		  yystos[yystate], yyvsp, pb);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  *++yyvsp = yylval;
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined(yyoverflow) || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (pb, YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, pb);
-    }
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-		  yystos[*yyssp], yyvsp, pb);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
-}
-
-
-
-
-
-static
-void GrowByteBuffer(KDataBuffer* self, const char* buf, uint64_t length)
-{
-    uint64_t oldSize = self->elem_count;
-    KDataBufferResize( self, oldSize + length );
-    memcpy( (char*)self->base + oldSize, buf, length );
-}
-
-void AddQuality(FASTQParseBlock* pb, const FASTQToken* token)
-{
-    if (pb->phredOffset != 0)
-    {
-        uint8_t floor   = pb->phredOffset == 33 ? MIN_PHRED_33 : MIN_PHRED_64;
-        uint8_t ceiling = pb->phredOffset == 33 ? MAX_PHRED_33 : MAX_PHRED_64;
-        unsigned int i;
-        for (i=0; i < token->tokenLength; ++i)
-        {
-            char buf[200];
-            if (token->tokenText[i] < floor || token->tokenText[i] > ceiling)
-            {
-                sprintf(buf, "Invalid quality value (%d): for %s, valid range is from %d to %d.", 
-                                                         token->tokenText[i],
-                                                         pb->phredOffset == 33 ? "Phred33": "Phred64", 
-                                                         floor, 
-                                                         ceiling);
-                pb->fatalError = true;
-                yyerror(pb, buf);
-                return;
-            }
-        }
-    }
-    GrowByteBuffer( & pb->quality, token->tokenText, token->tokenLength);
-}
-
-void SetReadNumber(FASTQParseBlock* pb, const FASTQToken* token)
-{
-    if (token->tokenLength == 1)
-    {
-        switch (token->tokenText[0])
-        {
-        case '1': pb->record->seq.readnumber = 1; return;
-        case '2': pb->record->seq.readnumber = 2; return;
-        }
-    }
-    pb->record->seq.readnumber = pb->defaultReadNumber;
-}
-
-void GrowTagLine(FASTQParseBlock* pb, const FASTQToken* token)
-{
-    /* TODO: move tagline to FileReader, move this function to fastq-reader.c */
-
-    /* grow the buffer as necessary*/
-    uint64_t oldSize = pb->tagLine.elem_count;
-    KDataBufferResize( & pb->tagLine, oldSize + token->tokenLength);
-    string_copy((char*)pb->tagLine.base + oldSize, pb->tagLine.elem_count - oldSize, token->tokenText, token->tokenLength);
-    
-    if (!pb->spotNameDone)
-        pb->spotNameLength = pb->tagLine.elem_count;
-}
-
-void StopSpotName(FASTQParseBlock* pb)
-{   /* spot name is the current content of the tag line (there may be more tokens coming, they will not be a part of the spot name) */
-    pb->spotNameDone = true;
-}
-
-void SetSpotGroup(FASTQParseBlock* pb, const FASTQToken* token)
-{
-    if (token->tokenLength != 1 || token->tokenText[0] != '0') /* ignore spot group 0 */
-    {
-        pb->spotGroupOffset = pb->tagLine.elem_count;    
-        pb->spotGroupLength = token->tokenLength;
-    }
-}
-
-void SetRead(FASTQParseBlock* pb, const FASTQToken* token)
-{ 
-    if (pb->record->seq.read)
-    {
-        pb->record->seq.read = (char*)realloc(pb->record->seq.read, strlen(pb->record->seq.read) + 1 + token->tokenLength + 1);
-        strcat(pb->record->seq.read, token->tokenText); 
-        ++pb->expectedQualityLines;
-    }
-    else
-    {
-        pb->record->seq.read = (char*)malloc(token->tokenLength+1);
-        strcpy(pb->record->seq.read, token->tokenText); 
-        pb->expectedQualityLines = 1;
-    }
-}
-
diff --git a/tools/fastq-loader/fastq-grammar.y b/tools/fastq-loader/fastq-grammar.y
deleted file mode 100644
index 66c36ef..0000000
--- a/tools/fastq-loader/fastq-grammar.y
+++ /dev/null
@@ -1,294 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
- 
-%{  
-    #include <ctype.h>
-    #include <stdlib.h>
-
-	#include "fastq-parse.h"
-
-   	#define YYSTYPE FASTQToken
-    #define YYLEX_PARAM pb->scanner
-    #define YYDEBUG 1
-
-	#include "fastq-tokens.h"
-
-    static uint64_t string_touint(const char* str, size_t length);
-    static void AddBinaryQuality(FASTQParseBlock* pb, int8_t value);
-    static void SetReadNumber(FASTQParseBlock* pb, const FASTQToken* token);
-    static void SetTagLine(FASTQParseBlock* pb, const char* start, size_t length, const FASTQToken* coords);
-    static void SetSpotGroup(FASTQParseBlock* pb, const FASTQToken* token);
-
-%}
-
-%pure-parser
-%parse-param {FASTQParseBlock* pb }
-%lex-param {FASTQParseBlock* pb }
-
-%name-prefix="FASTQ_"
-
-%token fqNUMBER
-%token fqALPHANUM
-%token fqWS
-%token fqENDLINE
-%token fqBASESEQ
-%token fqCOLORSEQ
-%token fqTOKEN
-%token fqASC33QUAL
-%token fqASC64QUAL
-%token fqUNRECOGNIZED
-%token fqENDOFTEXT 0
-
-%%
-
-sequence
-    : readLines qualityLines    { return 1; }
-    | readLines                 { if (yychar != YYEMPTY && yychar != YYEOF) FASTQ_unlex(pb, & yylval); return 1; }
-    | readQualityLines          { return 1; }
-    | qualityLines              { return 1; } 
-    | name ':' coords ':'           { FASTQScan_inline_sequence(pb); } 
-                 read ':'           { FASTQScan_inline_quality(pb); } 
-                 quality endline    { return 1; }
-    | name error endline        { return 1; }
-    | endfile                   { return 0; }
-    ;
-
-endfile
-    : fqENDOFTEXT
-    | endline fqENDOFTEXT
-    | endline endfile
-    ;
-
-endline
-    : fqENDLINE
-    ;
-
-readLines
-    : header  endline  read endline  
-    | qheader endline  read endline  
-    | header  endline error endline
-    | error   endline  read endline
-    ;
-
-readQualityLines
-    : qheader endline quality endline
-    | qheader endline   error endline
-    ;
-
-read
-    : fqBASESEQ                  { pb->record->seq.read = string_dup($1.tokenText, $1.tokenLength); pb->record->seq.is_colorspace = false; }
-    | fqCOLORSEQ                 { pb->record->seq.read = string_dup($1.tokenText, $1.tokenLength); pb->record->seq.is_colorspace = true; }
-    ;
-
-header 
-    : headerStart tagLine;
-
-headerStart
-    : '@' { pb->tagStart = $1.tokenText + 1; }
-    ;
-
-qheader 
-    : qheaderStart tagLine;
-
-qheaderStart
-    : '>' { pb->tagStart = $1.tokenText + 1; }
-    ;
-
-tagLine    
-    : name ':' coords tail  { SetTagLine(pb, $1.tokenText, $1.tokenLength + $2.tokenLength + $3.tokenLength + $4.tokenLength, &$3); }  
-    | name ':' coords       { SetTagLine(pb, $1.tokenText, $1.tokenLength + $2.tokenLength + $3.tokenLength, &$3); }  
-    | name                  { SetTagLine(pb, $1.tokenText, $1.tokenLength, 0); /* coords may be embbedded in the name with '_' as the separator */ }
-    | coords tail           { SetTagLine(pb, $1.tokenText, $1.tokenLength + $2.tokenLength, &$1); }  
-    | coords                { SetTagLine(pb, $1.tokenText, $1.tokenLength, &$1); }  
-    ;
-
-name
-    : fqALPHANUM        { $$ = $1; }
-    | name '_'          { $$ = $1; $$.tokenLength += $2.tokenLength; }
-    | name '-'          { $$ = $1; $$.tokenLength += $2.tokenLength; }
-    | name fqALPHANUM   { $$ = $1; $$.tokenLength += $2.tokenLength; }
-    | name fqNUMBER     { $$ = $1; $$.tokenLength += $2.tokenLength; }
-    ;
-
-coords
-    : fqNUMBER ':' fqNUMBER ':' signedNumber ':' signedNumber 
-        { $$ = $1; $$.tokenLength += ($2.tokenLength + $3.tokenLength + $4.tokenLength + $5.tokenLength + $6.tokenLength + $7.tokenLength); }
-    ;
-
-signedNumber
-    : '+' fqNUMBER  { pb->signedNumber =    (int8_t)string_touint($2.tokenText, $2.tokenLength); }
-    | '-' fqNUMBER  { pb->signedNumber =  - (int8_t)string_touint($2.tokenText, $2.tokenLength); }
-    | fqNUMBER      { pb->signedNumber =    (int8_t)string_touint($1.tokenText, $1.tokenLength); }
-    ;
-
-tail
-    : tailPiece
-    | tail tailPiece
-    ;
-
-tailPiece
-    : ':'                           { $$ = $1; }
-    | ':' fqNUMBER                  { $$ = $1; $$.tokenLength += $2.tokenLength; }
-    | '.' fqNUMBER                  { $$ = $1; $$.tokenLength += $2.tokenLength; }
-    
-    | '#' fqNUMBER                  { $$ = $1; $$.tokenLength += $2.tokenLength; SetSpotGroup(pb, & $2); }
-    | '#' fqALPHANUM                { $$ = $1; $$.tokenLength += $2.tokenLength; SetSpotGroup(pb, & $2); }
-    | '/' fqNUMBER                  { $$ = $1; $$.tokenLength += $2.tokenLength; SetReadNumber(pb, & $2); }
-
-    | fqWS fqALPHANUM '=' value     { $$ = $1; $$.tokenLength += ($2.tokenLength + $3.tokenLength + $4.tokenLength); }
-    ;
-
-value
-    : anyToken                      
-    | value anyToken                { $$ = $1; $$.tokenLength += $2.tokenLength; }
-    ;
-
-anyToken
-    : fqNUMBER
-    | fqALPHANUM
-    |'_'
-    ;
-
-qualityLines
-    : qualityHeader endline quality endline
-    | qualityHeader endline error endline
-    ;
-
-qualityHeader
-    : '+'                 
-    | qualityHeader fqTOKEN
-    ;
-
-quality
-    : fqASC33QUAL                { 
-                                    pb->record->seq.qualityBase     = 33; 
-                                    pb->record->seq.qualityType     = QT_Phred; 
-                                    pb->record->seq.quality         = (int8_t*)string_dup($1.tokenText, $1.tokenLength); 
-                                    pb->record->seq.qualityLength   = $1.tokenLength;
-                                 }
-    | fqASC64QUAL                { 
-                                    pb->record->seq.qualityBase     = 64; 
-                                    pb->record->seq.qualityType     = QT_Phred; 
-                                    pb->record->seq.quality         = (int8_t*)string_dup($1.tokenText, $1.tokenLength); 
-                                    pb->record->seq.qualityLength   = $1.tokenLength;
-                                 }
-    | decList                    {  /*consume the quality buffer */
-                                    pb->record->seq.qualityBase     = 0; 
-                                    pb->record->seq.qualityType     = QT_LogOdds; 
-                                    pb->record->seq.quality         = pb->quality.buffer; 
-                                    pb->record->seq.qualityLength   = pb->quality.curIdx;
-                                    pb->quality.buffer = 0; 
-                                    pb->quality.curIdx = 0;
-                                 }
-    ;
-
-decList
-    : signedNumber              { AddBinaryQuality(pb, (int8_t)pb->signedNumber); }
-    | decList signedNumber      { AddBinaryQuality(pb, (int8_t)pb->signedNumber); }
-    | decList ',' signedNumber  { AddBinaryQuality(pb, (int8_t)pb->signedNumber); }
-    ;
-
-%%
-
-static
-uint64_t string_touint(const char* str, size_t length)
-{
-    size_t i;
-    uint64_t ret = 0;
-    for (i = 0; i < length; ++i)
-    {
-        if (isdigit(str[i]))
-        {
-            ret = ret*10 + (str[i] - '0');
-        }
-    }
-    return ret;
-}
-
-void AddBinaryQuality(FASTQParseBlock* pb, int8_t value)
-{
-    #define ChunkSize 128
-
-    if (pb->quality.buffer == 0) 
-    {   /* allocate based on the size of the previous buffer, if any */
-        if (pb->quality.bufLen == 0)
-        {
-            pb->quality.bufLen = ChunkSize;
-        }
-        pb->quality.buffer = (int8_t*)malloc(pb->quality.bufLen);
-        pb->quality.curIdx = 0;
-    }
-    else if (pb->quality.curIdx == pb->quality.bufLen)
-    {   /* grow the buffer */
-        pb->quality.bufLen += ChunkSize;
-        pb->quality.buffer = (int8_t*)realloc(pb->quality.buffer, pb->quality.bufLen);
-    }
-    pb->quality.buffer[pb->quality.curIdx] = value;
-    ++ pb->quality.curIdx;
-
-    #undef ChunkSize
-}
-
-void SetReadNumber(FASTQParseBlock* pb, const FASTQToken* token)
-{
-    if (token->tokenLength == 1)
-    {
-        switch (token->tokenText[0])
-        {
-        case '1': pb->record->seq.readnumber = 1; return;
-        case '2': pb->record->seq.readnumber = 2; return;
-        }
-    }
-    pb->record->seq.readnumber = 0;
-}
-
-void SetTagLine(FASTQParseBlock* pb, const char* start, size_t length, const FASTQToken* coords)
-{
-    pb->record->seq.tagline = string_dup(start, length);
-    if (coords != 0)
-    {   /* assumes that a buffer switch can only happen at a line boundary*/ 
-        StringInit(& pb->record->seq.spotname, pb->record->seq.tagline, coords->tokenText - start + coords->tokenLength + 1, coords->tokenText - start + coords->tokenLength);
-    }
-    else
-    {
-        StringInit(& pb->record->seq.spotname, pb->record->seq.tagline, length + 1, length);
-    }
-    if (pb->spotGroupOffset != 0)
-    {
-        StringInit(& pb->record->seq.spotgroup, pb->record->seq.tagline + pb->spotGroupOffset, pb->spotGroupLength, pb->spotGroupLength);
-        pb->spotGroupOffset = 0;
-    }
-    else
-    {
-        StringInit(& pb->record->seq.spotgroup, 0, 0, 0);
-    }
-}
-
-void SetSpotGroup(FASTQParseBlock* pb, const FASTQToken* token)
-{
-    pb->spotGroupOffset = token->tokenText - pb->tagStart;    
-    pb->spotGroupLength = token->tokenLength;
-}
diff --git a/tools/fastq-loader/fastq-lex.c b/tools/fastq-loader/fastq-lex.c
deleted file mode 100644
index c8b018d..0000000
--- a/tools/fastq-loader/fastq-lex.c
+++ /dev/null
@@ -1,2418 +0,0 @@
-
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* An opaque pointer. */
-#ifndef YY_TYPEDEF_YY_SCANNER_T
-#define YY_TYPEDEF_YY_SCANNER_T
-typedef void* yyscan_t;
-#endif
-
-/* For convenience, these vars (plus the bison vars far below)
-   are macros in the reentrant scanner. */
-#define yyin yyg->yyin_r
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
-#define yy_flex_debug yyg->yy_flex_debug_r
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yyg->yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yyg->yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE FASTQ_restart(yyin ,yyscanner )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
-     *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE FASTQ_lex. 
-     *       One obvious solution it to make yy_act a global. I tried that, and saw
-     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
-     */
-    #define  YY_LESS_LINENO(n) \
-            do { \
-                int yyl;\
-                for ( yyl = n; yyl < yyleng; ++yyl )\
-                    if ( yytext[yyl] == '\n' )\
-                        --yylineno;\
-            }while(0)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = yyg->yy_hold_char; \
-		YY_RESTORE_YY_MORE_OFFSET \
-		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-		} \
-	while ( 0 )
-
-#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	yy_size_t yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	int yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via FASTQ_restart()), so that the user can continue scanning by
-	 * just pointing yyin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
-                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
-
-void FASTQ_restart (FILE *input_file ,yyscan_t yyscanner );
-void FASTQ__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-YY_BUFFER_STATE FASTQ__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
-void FASTQ__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void FASTQ__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void FASTQ_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-void FASTQ_pop_buffer_state (yyscan_t yyscanner );
-
-static void FASTQ_ensure_buffer_stack (yyscan_t yyscanner );
-static void FASTQ__load_buffer_state (yyscan_t yyscanner );
-static void FASTQ__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
-
-#define YY_FLUSH_BUFFER FASTQ__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
-
-YY_BUFFER_STATE FASTQ__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
-YY_BUFFER_STATE FASTQ__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
-YY_BUFFER_STATE FASTQ__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
-
-void *FASTQ_alloc (yy_size_t ,yyscan_t yyscanner );
-void *FASTQ_realloc (void *,yy_size_t ,yyscan_t yyscanner );
-void FASTQ_free (void * ,yyscan_t yyscanner );
-
-#define yy_new_buffer FASTQ__create_buffer
-
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        FASTQ_ensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            FASTQ__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        FASTQ_ensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            FASTQ__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define FASTQ_wrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-typedef int yy_state_type;
-
-#define yytext_ptr yytext_r
-
-static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
-static int yy_get_next_buffer (yyscan_t yyscanner );
-static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
-	yyg->yytext_ptr = yy_bp; \
-	yyleng = (size_t) (yy_cp - yy_bp); \
-	yyg->yy_hold_char = *yy_cp; \
-	*yy_cp = '\0'; \
-	yyg->yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 27
-#define YY_END_OF_BUFFER 28
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_acclist[175] =
-    {   0,
-       28,    9,   27,    6,    9,   27,   26,   27,    9,   26,
-       27,    5,    9,   27,    4,    5,    9,   27,    3,    9,
-       27,    9,   27,16391,    2,    9,   27,    1,    9,   27,
-        5,    9,   27,16391,    5,    9,   27,16391,    6,    9,
-       27,   10,   27,    9,   10,   27,   27,   27,   14,   27,
-       27,16397,   27,16395,16397,   27,16395,16397,   27,   18,
-       27,   18,   27,   22,   27,   19,   22,   27,   21,   27,
-       21,   22,   27,   22,   27,16404,   19,   22,   27,16404,
-       15,   27,   15,   27,   25,   27,   19,   25,   27,   24,
-       27,   24,   25,   27,   25,   27,16407,   19,   25,   27,
-
-    16407,    6,   26,    5,    4,    5, 8199, 8199,16391,16391,
-    16392,    5,16392,    5,16391,    6,   10,   10,   14, 8205,
-       14, 8205,16397, 8203, 8205,   14, 8203, 8205,16395,16397,
-    16395,16396,16397,16396,16397,   17,   17,   18,   19,   21,
-     8212, 8212,16404,   19,16404,   15,   15,   16,   16,   24,
-     8215, 8215,16407,   19,16407, 8199, 8200, 8199, 8200,16392,
-     8200, 8200, 8203, 8204, 8205,   14, 8203, 8204, 8205, 8204,
-     8205,   14, 8204, 8205
-    } ;
-
-static yyconst flex_int16_t yy_accept[113] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    2,    4,    7,    9,   12,   15,   19,
-       22,   25,   28,   31,   35,   39,   42,   44,   47,   48,
-       49,   51,   53,   56,   59,   60,   62,   64,   66,   69,
-       71,   74,   77,   81,   83,   85,   87,   90,   92,   95,
-       98,  102,  103,  104,  105,  107,  108,  109,  110,  112,
-      114,  116,  117,  118,  119,  119,  120,  122,  123,  124,
-      127,  129,  131,  134,  136,  136,  137,  139,  140,  141,
-      142,  143,  144,  146,  147,  149,  150,  151,  152,  153,
-
-      154,  156,  158,  160,  161,  162,  163,  167,  170,  173,
-      175,  175
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    4,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    6,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    7,    5,    8,    9,    5,   10,   10,   10,
-       10,   11,   11,   11,   11,   11,   11,    5,    5,    5,
-        5,   12,    5,   13,   14,    8,   14,    8,    8,    8,
-       14,    8,    8,    8,    8,    8,    8,   15,    8,    8,
-        8,    8,    8,   14,    8,    8,    8,    8,    8,    8,
-        5,    5,    5,    5,    8,    5,   14,    8,   14,    8,
-
-        8,    8,   14,    8,    8,    8,    8,    8,    8,   15,
-        8,    8,    8,    8,    8,   14,    8,    8,    8,    8,
-        8,    8,    5,    5,    5,    5,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[16] =
-    {   0,
-        1,    1,    2,    2,    3,    3,    3,    4,    5,    4,
-        4,    3,    3,    6,    6
-    } ;
-
-static yyconst flex_int16_t yy_base[125] =
-    {   0,
-        0,    9,   23,   21,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   36,   16,   28,   50,   56,   54,    0,
-       69,   75,  172,  252,   59,  252,  168,    0,   23,  252,
-       63,  252,  252,   79,   75,   93,  252,  167,  252,  162,
-      252,   99,  103,   82,  161,  252,  160,  252,  107,  252,
-      159,  107,  117,    0,  105,  252,  120,  252,  150,  121,
-      125,  128,  252,    0,    0,  252,  149,  129,  132,  145,
-        0,    0,  252,  137,  113,  252,  252,  105,  155,  252,
-       95,    0,  157,  165,   83,  252,  252,  137,  252,  252,
-       77,  134,    0,    0,    0,  135,  252,  252,   71,  147,
-
-        0,  252,   61,  173,  252,   52,  252,   25,  252,   14,
-      252,  183,  189,  195,  201,  207,  210,  215,  221,  227,
-      233,  238,  240,  245
-    } ;
-
-static yyconst flex_int16_t yy_def[125] =
-    {   0,
-      111,    1,    1,    3,  112,  112,  112,  112,  112,  112,
-      112,  112,  112,  111,  113,  113,  114,  115,  112,   19,
-      116,  116,  111,  111,  111,  111,  111,  117,  117,  111,
-      118,  111,  111,  111,   34,  111,  111,  111,  111,  119,
-      111,  120,  120,   43,  121,  111,  121,  111,  111,  111,
-      111,  122,  122,  123,  123,  111,  111,  111,  111,  124,
-      124,  111,  111,  117,   29,  111,  111,  118,  111,  117,
-       35,   36,  111,  111,  119,  111,  111,  119,  120,  111,
-      119,   43,   43,   79,  121,  111,  111,  111,  111,  111,
-      111,  122,   53,  123,   55,  111,  111,  111,  111,  124,
-
-       61,  111,  111,  111,  111,  111,  111,  119,  111,  119,
-        0,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111
-    } ;
-
-static yyconst flex_int16_t yy_nxt[268] =
-    {   0,
-       24,   25,   26,   27,   24,   25,   24,   28,   24,   29,
-       29,   24,   24,   28,   28,   30,  109,   31,   46,   47,
-       32,   33,   34,   35,   36,   37,   38,  107,   36,   31,
-       46,   47,   65,   65,   34,   35,   40,   40,   41,   40,
-       42,   42,   42,   42,   43,   42,   42,   42,   42,   44,
-       43,   49,   50,   51,  105,   49,   48,   49,   50,   51,
-       62,   53,   54,  102,   62,   66,   67,   55,   54,   56,
-       57,   58,   59,   98,   61,   56,   57,   58,   59,   90,
-       61,   66,   67,   68,   64,   86,   64,   69,   70,   64,
-       83,   84,   71,   71,   72,   73,   74,   80,   72,   75,
-
-       75,   77,   78,   75,   75,   80,   81,   77,   88,   90,
-       91,   82,   88,   95,   96,   76,   82,   82,   88,   90,
-       91,   88,   93,   98,   99,   88,   88,   98,   99,   62,
-      101,   66,   67,   62,  102,  103,   90,   91,   88,   73,
-       69,  104,   88,   96,   96,   68,   68,  105,  106,   98,
-       99,   66,   97,  104,   70,   75,   75,   77,   78,  107,
-      108,   89,   87,   86,   76,   83,   84,  109,  110,   73,
-       63,  111,  111,   84,   84,  105,  106,  111,  111,  111,
-      111,  104,  104,   39,   39,   39,   39,   39,   39,   45,
-       45,   45,   45,   45,   45,   48,   48,   48,   48,   48,
-
-       48,   52,   52,   52,   52,   52,   52,   60,   60,   60,
-       60,   60,   60,   64,  111,   64,   68,  111,  111,   68,
-       68,   75,   75,   75,   75,   75,   75,   79,   79,   79,
-       79,   79,   79,   85,   85,   85,   85,   85,   85,   92,
-       92,   92,   92,   92,   94,   94,  100,  100,  100,  100,
-      100,   23,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111
-    } ;
-
-static yyconst flex_int16_t yy_chk[268] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    2,  110,    2,   15,   15,
-        2,    2,    2,    2,    3,    3,    3,  108,    3,    4,
-       16,   16,   29,   29,    4,    4,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
-       14,   17,   17,   17,  106,   17,   18,   18,   18,   18,
-       25,   18,   19,  103,   25,   31,   31,   19,   19,   21,
-       21,   21,   21,   99,   21,   22,   22,   22,   22,   91,
-       22,   34,   34,   35,   35,   85,   34,   34,   34,   34,
-       44,   44,   34,   34,   36,   36,   36,   81,   36,   42,
-
-       42,   42,   42,   43,   43,   43,   43,   78,   49,   52,
-       52,   43,   49,   55,   55,   75,   43,   43,   53,   53,
-       53,   57,   53,   60,   60,   57,   61,   61,   61,   62,
-       61,   68,   68,   62,   69,   69,   92,   92,   88,   74,
-       69,   69,   88,   96,   96,   69,   69,   70,   70,  100,
-      100,   67,   59,   70,   70,   79,   79,   79,   79,   83,
-       83,   51,   47,   45,   40,   83,   83,   84,   84,   38,
-       27,   23,    0,   84,   84,  104,  104,    0,    0,    0,
-        0,  104,  104,  112,  112,  112,  112,  112,  112,  113,
-      113,  113,  113,  113,  113,  114,  114,  114,  114,  114,
-
-      114,  115,  115,  115,  115,  115,  115,  116,  116,  116,
-      116,  116,  116,  117,    0,  117,  118,    0,    0,  118,
-      118,  119,  119,  119,  119,  119,  119,  120,  120,  120,
-      120,  120,  120,  121,  121,  121,  121,  121,  121,  122,
-      122,  122,  122,  122,  123,  123,  124,  124,  124,  124,
-      124,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111
-    } ;
-
-/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[28] =
-    {   0,
-0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
-    1, 1, 0, 1, 1, 0, 1, 0,     };
-
-#define YY_TRAILING_MASK 0x2000
-#define YY_TRAILING_HEAD_MASK 0x4000
-#define REJECT \
-{ \
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ \
-yy_cp = yyg->yy_full_match; /* restore poss. backed-over text */ \
-yyg->yy_lp = yyg->yy_full_lp; /* restore orig. accepting pos. */ \
-yyg->yy_state_ptr = yyg->yy_full_state; /* restore orig. state */ \
-yy_current_state = *yyg->yy_state_ptr; /* restore curr. state */ \
-++yyg->yy_lp; \
-goto find_rule; \
-}
-
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-    #include <ctype.h>
-    
-    #include <klib/rc.h>
-
-	#include "fastq-parse.h"
-	#include "fastq-tokens.h"    
-	
-    #define YYSTYPE FASTQToken
-
-    /* code to populate token with internal values */
-    #define YY_USER_ACTION              \
-        yylval -> tokenText		= yytext;	\
-        yylval -> tokenLength	= yyleng;	\
-        yylval -> line_no		= yylineno;	\
-        yylval -> column_no		= yyextra -> column; \
-        yyextra -> column += yyleng; \
-        yyextra -> length += yyleng; \
-        yyextra -> lastToken = yylval; 
-
-    #define ENDLINE \
-        yyextra -> column=1;\
-        return fqENDLINE;
-
-    #define YY_INPUT(buf, result, max_size) \
-        result = yyextra->input(yyextra, buf, max_size)
-
-    #define ECHO
-
-#define YY_NO_UNISTD_H 1
-/*%option debug*/
-
-/* there are more: =ACMGRSVTWYHKDBN. plus lowercase */
-
-#define INITIAL 0
-#define TAG_LINE 1
-#define SEE_COORDS 2
-#define PAST_COORDS 3
-#define READ_NUMBER 4
-#define NAMEVALUE 5
-#define IN_SEQUENCE 6
-#define QTAG_LINE 7
-#define IN_QUALITY 8
-#define INLINE_SEQUENCE 9
-#define INLINE_QUALITY 10
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#define YY_EXTRA_TYPE FASTQParseBlock*
-
-/* Holds the entire state of the reentrant scanner. */
-struct yyguts_t
-    {
-
-    /* User-defined. Not touched by flex. */
-    YY_EXTRA_TYPE yyextra_r;
-
-    /* The rest are the same as the globals declared in the non-reentrant scanner. */
-    FILE *yyin_r, *yyout_r;
-    size_t yy_buffer_stack_top; /**< index of top of stack. */
-    size_t yy_buffer_stack_max; /**< capacity of stack. */
-    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
-    char yy_hold_char;
-    int yy_n_chars;
-    int yyleng_r;
-    char *yy_c_buf_p;
-    int yy_init;
-    int yy_start;
-    int yy_did_buffer_switch_on_eof;
-    int yy_start_stack_ptr;
-    int yy_start_stack_depth;
-    int *yy_start_stack;
-    yy_state_type yy_last_accepting_state;
-    char* yy_last_accepting_cpos;
-
-    int yylineno_r;
-    int yy_flex_debug_r;
-
-    yy_state_type *yy_state_buf;
-    yy_state_type *yy_state_ptr;
-    char *yy_full_match;
-    int yy_lp;
-
-    /* These are only needed for trailing context rules,
-     * but there's no conditional variable for that yet. */
-    int yy_looking_for_trail_begin;
-    int yy_full_lp;
-    int *yy_full_state;
-
-    char *yytext_r;
-    int yy_more_flag;
-    int yy_more_len;
-
-    YYSTYPE * yylval_r;
-
-    }; /* end struct yyguts_t */
-
-static int yy_init_globals (yyscan_t yyscanner );
-
-    /* This must go here because YYSTYPE and YYLTYPE are included
-     * from bison output in section 1.*/
-    #    define yylval yyg->yylval_r
-    
-int FASTQ_lex_init (yyscan_t* scanner);
-
-int FASTQ_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int FASTQ_lex_destroy (yyscan_t yyscanner );
-
-int FASTQ_get_debug (yyscan_t yyscanner );
-
-void FASTQ_set_debug (int debug_flag ,yyscan_t yyscanner );
-
-YY_EXTRA_TYPE FASTQ_get_extra (yyscan_t yyscanner );
-
-void FASTQ_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
-
-FILE *FASTQ_get_in (yyscan_t yyscanner );
-
-void FASTQ_set_in  (FILE * in_str ,yyscan_t yyscanner );
-
-FILE *FASTQ_get_out (yyscan_t yyscanner );
-
-void FASTQ_set_out  (FILE * out_str ,yyscan_t yyscanner );
-
-int FASTQ_get_leng (yyscan_t yyscanner );
-
-char *FASTQ_get_text (yyscan_t yyscanner );
-
-int FASTQ_get_lineno (yyscan_t yyscanner );
-
-void FASTQ_set_lineno (int line_number ,yyscan_t yyscanner );
-
-YYSTYPE * FASTQ_get_lval (yyscan_t yyscanner );
-
-void FASTQ_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int FASTQ_wrap (yyscan_t yyscanner );
-#else
-extern int FASTQ_wrap (yyscan_t yyscanner );
-#endif
-#endif
-
-    static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
-    
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (yyscan_t yyscanner );
-#else
-static int input (yyscan_t yyscanner );
-#endif
-
-#endif
-
-    static void yy_push_state (int new_state ,yyscan_t yyscanner);
-    
-    static void yy_pop_state (yyscan_t yyscanner );
-    
-    static int yy_top_state (yyscan_t yyscanner );
-    
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		int n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( yyin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(yyin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int FASTQ_lex \
-               (YYSTYPE * yylval_param ,yyscan_t yyscanner);
-
-#define YY_DECL int FASTQ_lex \
-               (YYSTYPE * yylval_param , yyscan_t yyscanner)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-	if ( yyleng > 0 ) \
-		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
-				(yytext[yyleng - 1] == '\n'); \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    yylval = yylval_param;
-
-	if ( !yyg->yy_init )
-		{
-		yyg->yy_init = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-        /* Create the reject buffer large enough to save one state per allowed character. */
-        if ( ! yyg->yy_state_buf )
-            yyg->yy_state_buf = (yy_state_type *)FASTQ_alloc(YY_STATE_BUF_SIZE  ,yyscanner);
-            if ( ! yyg->yy_state_buf )
-                YY_FATAL_ERROR( "out of dynamic memory in FASTQ_lex()" );
-
-		if ( ! yyg->yy_start )
-			yyg->yy_start = 1;	/* first start state */
-
-		if ( ! yyin )
-			yyin = stdin;
-
-		if ( ! yyout )
-			yyout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			FASTQ_ensure_buffer_stack (yyscanner);
-			YY_CURRENT_BUFFER_LVALUE =
-				FASTQ__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-		}
-
-		FASTQ__load_buffer_state(yyscanner );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		yy_cp = yyg->yy_c_buf_p;
-
-		/* Support of yytext. */
-		*yy_cp = yyg->yy_hold_char;
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = yyg->yy_start;
-		yy_current_state += YY_AT_BOL();
-
-		yyg->yy_state_ptr = yyg->yy_state_buf;
-		*yyg->yy_state_ptr++ = yy_current_state;
-
-yy_match:
-		do
-			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 112 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			*yyg->yy_state_ptr++ = yy_current_state;
-			++yy_cp;
-			}
-		while ( yy_current_state != 111 );
-
-yy_find_action:
-		yy_current_state = *--yyg->yy_state_ptr;
-		yyg->yy_lp = yy_accept[yy_current_state];
-find_rule: /* we branch to this label when backing up */
-		for ( ; ; ) /* until we find what rule we matched */
-			{
-			if ( yyg->yy_lp && yyg->yy_lp < yy_accept[yy_current_state + 1] )
-				{
-				yy_act = yy_acclist[yyg->yy_lp];
-				if ( yy_act & YY_TRAILING_HEAD_MASK ||
-				     yyg->yy_looking_for_trail_begin )
-					{
-					if ( yy_act == yyg->yy_looking_for_trail_begin )
-						{
-						yyg->yy_looking_for_trail_begin = 0;
-						yy_act &= ~YY_TRAILING_HEAD_MASK;
-						break;
-						}
-					}
-				else if ( yy_act & YY_TRAILING_MASK )
-					{
-					yyg->yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
-					yyg->yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
-					}
-				else
-					{
-					yyg->yy_full_match = yy_cp;
-					yyg->yy_full_state = yyg->yy_state_ptr;
-					yyg->yy_full_lp = yyg->yy_lp;
-					break;
-					}
-				++yyg->yy_lp;
-				goto find_rule;
-				}
-			--yy_cp;
-			yy_current_state = *--yyg->yy_state_ptr;
-			yyg->yy_lp = yy_accept[yy_current_state];
-			}
-
-		YY_DO_BEFORE_ACTION;
-
-		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
-			{
-			int yyl;
-			for ( yyl = 0; yyl < yyleng; ++yyl )
-				if ( yytext[yyl] == '\n' )
-					   
-    do{ yylineno++;
-        yycolumn=0;
-    }while(0)
-;
-			}
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-case 1:
-YY_RULE_SETUP
-{ BEGIN TAG_LINE; return yytext[0]; }
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-{ BEGIN TAG_LINE; return yytext[0]; }
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-{ BEGIN QTAG_LINE; return yytext[0]; }
-	YY_BREAK
-
-case 4:
-YY_RULE_SETUP
-{ return fqNUMBER; }
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-{ return fqALPHANUM; }
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-{ return fqWS; }
-	YY_BREAK
-case 7:
-/* rule 7 can match eol */
-YY_RULE_SETUP
-{ return fqBASESEQ; }
-	YY_BREAK
-case 8:
-/* rule 8 can match eol */
-YY_RULE_SETUP
-{ return fqCOLORSEQ; }
-	YY_BREAK
-case 9:
-YY_RULE_SETUP
-{ return yytext[0]; }
-	YY_BREAK
-
-case 10:
-/* rule 10 can match eol */
-YY_RULE_SETUP
-{ BEGIN IN_SEQUENCE; ENDLINE; }
-	YY_BREAK
-
-case 11:
-/* rule 11 can match eol */
-YY_RULE_SETUP
-{ BEGIN 0; return fqBASESEQ; }
-	YY_BREAK
-case 12:
-/* rule 12 can match eol */
-YY_RULE_SETUP
-{ BEGIN 0; return fqCOLORSEQ; }
-	YY_BREAK
-case 13:
-/* rule 13 can match eol */
-YY_RULE_SETUP
-{ BEGIN 0; return fqASCQUAL; }
-	YY_BREAK
-case 14:
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ BEGIN 0; return fqUNRECOGNIZED; }
-	YY_BREAK
-
-case 15:
-YY_RULE_SETUP
-{ BEGIN 0; return fqBASESEQ; }
-	YY_BREAK
-case 16:
-YY_RULE_SETUP
-{ BEGIN 0; return fqCOLORSEQ; }
-	YY_BREAK
-
-case 17:
-*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
-yyg->yy_c_buf_p = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-{ return fqTOKEN; /* do not bother to parse the inside of the line */ }
-	YY_BREAK
-case 18:
-/* rule 18 can match eol */
-YY_RULE_SETUP
-{ BEGIN IN_QUALITY; ENDLINE }
-	YY_BREAK
-
-case 19:
-YY_RULE_SETUP
-{ } 
-	YY_BREAK
-
-case 20:
-/* rule 20 can match eol */
-YY_RULE_SETUP
-{ return fqASCQUAL; }
-	YY_BREAK
-case 21:
-/* rule 21 can match eol */
-YY_RULE_SETUP
-{   /* if read was split across several lines, expect the same number of lines in quality */
-                                    if (yyextra->expectedQualityLines <= 1) 
-                                        BEGIN 0; 
-                                    else 
-                                        --yyextra->expectedQualityLines;
-                                    ENDLINE; 
-                                }
-	YY_BREAK
-case 22:
-YY_RULE_SETUP
-{ return yytext[0]; }
-	YY_BREAK
-
-case 23:
-/* rule 23 can match eol */
-YY_RULE_SETUP
-{ return fqASCQUAL; }
-	YY_BREAK
-case 24:
-/* rule 24 can match eol */
-YY_RULE_SETUP
-{ BEGIN 0; ENDLINE; }
-	YY_BREAK
-case 25:
-YY_RULE_SETUP
-{ return yytext[0]; }
-	YY_BREAK
-
-case 26:
-/* rule 26 can match eol */
-YY_RULE_SETUP
-{ ENDLINE; }
-	YY_BREAK
-case 27:
-YY_RULE_SETUP
-ECHO;
-	YY_BREAK
-			case YY_STATE_EOF(INITIAL):
-			case YY_STATE_EOF(TAG_LINE):
-			case YY_STATE_EOF(SEE_COORDS):
-			case YY_STATE_EOF(PAST_COORDS):
-			case YY_STATE_EOF(READ_NUMBER):
-			case YY_STATE_EOF(NAMEVALUE):
-			case YY_STATE_EOF(IN_SEQUENCE):
-			case YY_STATE_EOF(QTAG_LINE):
-			case YY_STATE_EOF(IN_QUALITY):
-			case YY_STATE_EOF(INLINE_SEQUENCE):
-			case YY_STATE_EOF(INLINE_QUALITY):
-				yyterminate();
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = yyg->yy_hold_char;
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed yyin at a new source and called
-			 * FASTQ_lex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state( yyscanner );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
-
-			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++yyg->yy_c_buf_p;
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = yyg->yy_c_buf_p;
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer( yyscanner ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				yyg->yy_did_buffer_switch_on_eof = 0;
-
-				if ( FASTQ_wrap(yyscanner ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * yytext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				yyg->yy_c_buf_p =
-					yyg->yytext_ptr + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				yyg->yy_c_buf_p =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of FASTQ_lex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = yyg->yytext_ptr;
-	register int number_to_move, i;
-	int ret_val;
-
-	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
-
-	else
-		{
-			int num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			YY_FATAL_ERROR(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			yyg->yy_n_chars, (size_t) num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	if ( yyg->yy_n_chars == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			FASTQ_restart(yyin  ,yyscanner);
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) FASTQ_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
-	yyg->yy_n_chars += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
-	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	yy_current_state = yyg->yy_start;
-	yy_current_state += YY_AT_BOL();
-
-	yyg->yy_state_ptr = yyg->yy_state_buf;
-	*yyg->yy_state_ptr++ = yy_current_state;
-
-	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
-		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 112 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		*yyg->yy_state_ptr++ = yy_current_state;
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
-{
-	register int yy_is_jam;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
-
-	register YY_CHAR yy_c = 1;
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 112 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 111);
-	if ( ! yy_is_jam )
-		*yyg->yy_state_ptr++ = yy_current_state;
-
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-    static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
-{
-	register char *yy_cp;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    yy_cp = yyg->yy_c_buf_p;
-
-	/* undo effects of setting up yytext */
-	*yy_cp = yyg->yy_hold_char;
-
-	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-		{ /* need to shift things up to make room */
-		/* +2 for EOB chars. */
-		register int number_to_move = yyg->yy_n_chars + 2;
-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-		register char *source =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
-		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			*--dest = *--source;
-
-		yy_cp += (int) (dest - source);
-		yy_bp += (int) (dest - source);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
-		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-			YY_FATAL_ERROR( "flex scanner push-back overflow" );
-		}
-
-	*--yy_cp = (char) c;
-
-    if ( c == '\n' ){
-        --yylineno;
-    }
-
-	yyg->yytext_ptr = yy_bp;
-	yyg->yy_hold_char = *yy_cp;
-	yyg->yy_c_buf_p = yy_cp;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (yyscan_t yyscanner)
-#else
-    static int input  (yyscan_t yyscanner)
-#endif
-
-{
-	int c;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	*yyg->yy_c_buf_p = yyg->yy_hold_char;
-
-	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			/* This was really a NUL. */
-			*yyg->yy_c_buf_p = '\0';
-
-		else
-			{ /* need more input */
-			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
-			++yyg->yy_c_buf_p;
-
-			switch ( yy_get_next_buffer( yyscanner ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					FASTQ_restart(yyin ,yyscanner);
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( FASTQ_wrap(yyscanner ) )
-						return EOF;
-
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput(yyscanner);
-#else
-					return input(yyscanner);
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
-	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
-	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
-
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
-		   
-    do{ yylineno++;
-        yycolumn=0;
-    }while(0)
-;
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * @param yyscanner The scanner object.
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void FASTQ_restart  (FILE * input_file , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! YY_CURRENT_BUFFER ){
-        FASTQ_ensure_buffer_stack (yyscanner);
-		YY_CURRENT_BUFFER_LVALUE =
-            FASTQ__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
-	}
-
-	FASTQ__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
-	FASTQ__load_buffer_state(yyscanner );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * @param yyscanner The scanner object.
- */
-    void FASTQ__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		FASTQ_pop_buffer_state();
-	 *		FASTQ_push_buffer_state(new_buffer);
-     */
-	FASTQ_ensure_buffer_stack (yyscanner);
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	FASTQ__load_buffer_state(yyscanner );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (FASTQ_wrap()) processing, but the only time this flag
-	 * is looked at is after FASTQ_wrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-static void FASTQ__load_buffer_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	yyg->yy_hold_char = *yyg->yy_c_buf_p;
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * @param yyscanner The scanner object.
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE FASTQ__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) FASTQ_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in FASTQ__create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) FASTQ_alloc(b->yy_buf_size + 2 ,yyscanner );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in FASTQ__create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	FASTQ__init_buffer(b,file ,yyscanner);
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with FASTQ__create_buffer()
- * @param yyscanner The scanner object.
- */
-    void FASTQ__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		FASTQ_free((void *) b->yy_ch_buf ,yyscanner );
-
-	FASTQ_free((void *) b ,yyscanner );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a FASTQ_restart() or at EOF.
- */
-    static void FASTQ__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
-
-{
-	int oerrno = errno;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	FASTQ__flush_buffer(b ,yyscanner);
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then FASTQ__init_buffer was _probably_
-     * called from FASTQ_restart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * @param yyscanner The scanner object.
- */
-    void FASTQ__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		FASTQ__load_buffer_state(yyscanner );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  @param yyscanner The scanner object.
- */
-void FASTQ_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (new_buffer == NULL)
-		return;
-
-	FASTQ_ensure_buffer_stack(yyscanner);
-
-	/* This block is copied from FASTQ__switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		yyg->yy_buffer_stack_top++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from FASTQ__switch_to_buffer. */
-	FASTQ__load_buffer_state(yyscanner );
-	yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  @param yyscanner The scanner object.
- */
-void FASTQ_pop_buffer_state (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (!YY_CURRENT_BUFFER)
-		return;
-
-	FASTQ__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if (yyg->yy_buffer_stack_top > 0)
-		--yyg->yy_buffer_stack_top;
-
-	if (YY_CURRENT_BUFFER) {
-		FASTQ__load_buffer_state(yyscanner );
-		yyg->yy_did_buffer_switch_on_eof = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void FASTQ_ensure_buffer_stack (yyscan_t yyscanner)
-{
-	int num_to_alloc;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if (!yyg->yy_buffer_stack) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		yyg->yy_buffer_stack = (struct yy_buffer_state**)FASTQ_alloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								, yyscanner);
-		if ( ! yyg->yy_buffer_stack )
-			YY_FATAL_ERROR( "out of dynamic memory in FASTQ_ensure_buffer_stack()" );
-								  
-		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		yyg->yy_buffer_stack_max = num_to_alloc;
-		yyg->yy_buffer_stack_top = 0;
-		return;
-	}
-
-	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
-		yyg->yy_buffer_stack = (struct yy_buffer_state**)FASTQ_realloc
-								(yyg->yy_buffer_stack,
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								, yyscanner);
-		if ( ! yyg->yy_buffer_stack )
-			YY_FATAL_ERROR( "out of dynamic memory in FASTQ_ensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
-		yyg->yy_buffer_stack_max = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE FASTQ__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return 0;
-
-	b = (YY_BUFFER_STATE) FASTQ_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in FASTQ__scan_buffer()" );
-
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	FASTQ__switch_to_buffer(b ,yyscanner );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to FASTQ_lex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       FASTQ__scan_bytes() instead.
- */
-YY_BUFFER_STATE FASTQ__scan_string (yyconst char * yystr , yyscan_t yyscanner)
-{
-    
-	return FASTQ__scan_bytes(yystr,strlen(yystr) ,yyscanner);
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to FASTQ_lex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE FASTQ__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n;
-	int i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) FASTQ_alloc(n ,yyscanner );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in FASTQ__scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = FASTQ__scan_buffer(buf,n ,yyscanner);
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in FASTQ__scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-    static void yy_push_state (int  new_state , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
-		{
-		yy_size_t new_size;
-
-		yyg->yy_start_stack_depth += YY_START_STACK_INCR;
-		new_size = yyg->yy_start_stack_depth * sizeof( int );
-
-		if ( ! yyg->yy_start_stack )
-			yyg->yy_start_stack = (int *) FASTQ_alloc(new_size ,yyscanner );
-
-		else
-			yyg->yy_start_stack = (int *) FASTQ_realloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
-
-		if ( ! yyg->yy_start_stack )
-			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
-		}
-
-	yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
-
-	BEGIN(new_state);
-}
-
-    static void yy_pop_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( --yyg->yy_start_stack_ptr < 0 )
-		YY_FATAL_ERROR( "start-condition stack underflow" );
-
-	BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
-}
-
-    static int yy_top_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		yytext[yyleng] = yyg->yy_hold_char; \
-		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
-		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
-		*yyg->yy_c_buf_p = '\0'; \
-		yyleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the user-defined data for this scanner.
- * @param yyscanner The scanner object.
- */
-YY_EXTRA_TYPE FASTQ_get_extra  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyextra;
-}
-
-/** Get the current line number.
- * @param yyscanner The scanner object.
- */
-int FASTQ_get_lineno  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-    
-    return yylineno;
-}
-
-/** Get the current column number.
- * @param yyscanner The scanner object.
- */
-int FASTQ_get_column  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-    
-    return yycolumn;
-}
-
-/** Get the input stream.
- * @param yyscanner The scanner object.
- */
-FILE *FASTQ_get_in  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyin;
-}
-
-/** Get the output stream.
- * @param yyscanner The scanner object.
- */
-FILE *FASTQ_get_out  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyout;
-}
-
-/** Get the length of the current token.
- * @param yyscanner The scanner object.
- */
-int FASTQ_get_leng  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyleng;
-}
-
-/** Get the current token.
- * @param yyscanner The scanner object.
- */
-
-char *FASTQ_get_text  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yytext;
-}
-
-/** Set the user-defined data. This data is never touched by the scanner.
- * @param user_defined The data to be associated with this scanner.
- * @param yyscanner The scanner object.
- */
-void FASTQ_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyextra = user_defined ;
-}
-
-/** Set the current line number.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-void FASTQ_set_lineno (int  line_number , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* lineno is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           yy_fatal_error( "FASTQ_set_lineno called with no buffer" , yyscanner); 
-    
-    yylineno = line_number;
-}
-
-/** Set the current column.
- * @param line_number
- * @param yyscanner The scanner object.
- */
-void FASTQ_set_column (int  column_no , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* column is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           yy_fatal_error( "FASTQ_set_column called with no buffer" , yyscanner); 
-    
-    yycolumn = column_no;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * @param yyscanner The scanner object.
- * @see FASTQ__switch_to_buffer
- */
-void FASTQ_set_in (FILE *  in_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyin = in_str ;
-}
-
-void FASTQ_set_out (FILE *  out_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyout = out_str ;
-}
-
-int FASTQ_get_debug  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yy_flex_debug;
-}
-
-void FASTQ_set_debug (int  bdebug , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yy_flex_debug = bdebug ;
-}
-
-/* Accessor methods for yylval and yylloc */
-
-YYSTYPE * FASTQ_get_lval  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yylval;
-}
-
-void FASTQ_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yylval = yylval_param;
-}
-
-/* User-visible API */
-
-/* FASTQ_lex_init is special because it creates the scanner itself, so it is
- * the ONLY reentrant function that doesn't take the scanner as the last argument.
- * That's why we explicitly handle the declaration, instead of using our macros.
- */
-
-int FASTQ_lex_init(yyscan_t* ptr_yy_globals)
-
-{
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-
-    *ptr_yy_globals = (yyscan_t) FASTQ_alloc ( sizeof( struct yyguts_t ), NULL );
-
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-
-    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-/* FASTQ_lex_init_extra has the same functionality as FASTQ_lex_init, but follows the
- * convention of taking the scanner as the last argument. Note however, that
- * this is a *pointer* to a scanner, as it will be allocated by this call (and
- * is the reason, too, why this function also must handle its own declaration).
- * The user defined value in the first argument will be available to FASTQ_alloc in
- * the yyextra field.
- */
-
-int FASTQ_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
-
-{
-    struct yyguts_t dummy_yyguts;
-
-    FASTQ_set_extra (yy_user_defined, &dummy_yyguts);
-
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-	
-    *ptr_yy_globals = (yyscan_t) FASTQ_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
-	
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-    
-    /* By setting to 0xAA, we expose bugs in
-    yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-    
-    FASTQ_set_extra (yy_user_defined, *ptr_yy_globals);
-    
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-static int yy_init_globals (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from FASTQ_lex_destroy(), so don't allocate here.
-     */
-
-    yyg->yy_buffer_stack = 0;
-    yyg->yy_buffer_stack_top = 0;
-    yyg->yy_buffer_stack_max = 0;
-    yyg->yy_c_buf_p = (char *) 0;
-    yyg->yy_init = 0;
-    yyg->yy_start = 0;
-
-    yyg->yy_start_stack_ptr = 0;
-    yyg->yy_start_stack_depth = 0;
-    yyg->yy_start_stack =  NULL;
-
-    yyg->yy_state_buf = 0;
-    yyg->yy_state_ptr = 0;
-    yyg->yy_full_match = 0;
-    yyg->yy_lp = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    yyin = stdin;
-    yyout = stdout;
-#else
-    yyin = (FILE *) 0;
-    yyout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * FASTQ_lex_init()
-     */
-    return 0;
-}
-
-/* FASTQ_lex_destroy is for both reentrant and non-reentrant scanners. */
-int FASTQ_lex_destroy  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		FASTQ__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		FASTQ_pop_buffer_state(yyscanner);
-	}
-
-	/* Destroy the stack itself. */
-	FASTQ_free(yyg->yy_buffer_stack ,yyscanner);
-	yyg->yy_buffer_stack = NULL;
-
-    /* Destroy the start condition stack. */
-        FASTQ_free(yyg->yy_start_stack ,yyscanner );
-        yyg->yy_start_stack = NULL;
-
-    FASTQ_free ( yyg->yy_state_buf , yyscanner);
-    yyg->yy_state_buf  = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * FASTQ_lex() is called, initialization will occur. */
-    yy_init_globals( yyscanner);
-
-    /* Destroy the main struct (reentrant only). */
-    FASTQ_free ( yyscanner , yyscanner );
-    yyscanner = NULL;
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
-{
-	register int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
-{
-	register int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *FASTQ_alloc (yy_size_t  size , yyscan_t yyscanner)
-{
-	return (void *) malloc( size );
-}
-
-void *FASTQ_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
-{
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void FASTQ_free (void * ptr , yyscan_t yyscanner)
-{
-	free( (char *) ptr );	/* see FASTQ_realloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-rc_t CC FASTQScan_yylex_init(FASTQParseBlock* sb, bool debug)
-{
-	if (FASTQ_lex_init_extra(sb,&sb->scanner) != 0)
-	{
-		return RC ( rcKFG, rcMgr, rcParsing, rcMemory, rcExhausted );
-	}		
-
-    sb->length = 0;
-    sb->lastToken = NULL;
-    sb->record = NULL;
-    sb->column = 1;
-    KDataBufferMakeBytes( &sb->tagLine, 1024);
-    
-    sb->spotNameLength = 0;
-    sb->spotNameDone = false;
-    sb->spotGroupOffset = 0;
-    sb->spotGroupLength = 0;
-
-    KDataBufferMakeBytes( &sb->quality, 1024);
-    sb->expectedQualityLines = 0;
-    
-	FASTQ_set_debug(debug ? 1 : 0,sb->scanner);
-
-    yy_push_state(INITIAL, sb->scanner);
-    
-	return 0;
-}
-
-void CC FASTQScan_yylex_destroy(FASTQParseBlock* sb)
-{
-    KDataBufferWhack( & sb->tagLine);
-    KDataBufferWhack( & sb->quality);
-	if (sb->scanner)
-	{
-		FASTQ_lex_destroy(sb->scanner);
-	}		
-	sb->scanner=0;
-}
-
-void CC FASTQScan_inline_sequence(FASTQParseBlock* pb)
-{
-    yy_pop_state(pb->scanner);
-    yy_push_state(INLINE_SEQUENCE, pb->scanner);
-}
-
-void CC FASTQScan_inline_quality(FASTQParseBlock* pb)
-{
-    yy_pop_state(pb->scanner);
-    yy_push_state(INLINE_QUALITY, pb->scanner);
-}
-
-void CC FASTQ_unlex(FASTQParseBlock* pb, FASTQToken* token)
-{
-    size_t i;
-    struct yyguts_t* yyg = (struct yyguts_t*)pb->scanner;
-    for (i = 0; i < token->tokenLength; ++i)
-    {
-        yyunput(token->tokenText[token->tokenLength-1-i], yyg->yytext_r, pb->scanner);
-    }
-    yyextra -> column -= token->tokenLength; 
-    yyextra -> length -= token->tokenLength; 
-}
-
diff --git a/tools/fastq-loader/fastq-lex.l b/tools/fastq-loader/fastq-lex.l
deleted file mode 100644
index 64481aa..0000000
--- a/tools/fastq-loader/fastq-lex.l
+++ /dev/null
@@ -1,294 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
- 
-%{ 
-    #include <ctype.h>
-    
-    #include <klib/rc.h>
-
-	#include "fastq-parse.h"
-	#include "fastq-tokens.h"    
-	
-    #define YYSTYPE FASTQToken
-
-    /* code to populate token with internal values */
-    #define YY_USER_ACTION              \
-        yylval -> tokenText		= yytext;	\
-        yylval -> tokenLength	= yyleng;	\
-        yylval -> line_no		= yylineno;	\
-        yylval -> column_no		= yyextra -> column; \
-        yyextra -> column += yyleng; \
-        yyextra -> length += yyleng; \
-        yyextra -> lastToken = yylval; 
-
-    #define ENDLINE \
-        yyextra -> column=1;\
-        return fqENDLINE;
-
-    #define YY_INPUT(buf, result, max_size) \
-        result = yyextra->input(yyextra, buf, max_size)
-
-    #define ECHO
-
-    static bool IsDecList(const char*, size_t*, int*);
-
-    #define CHECK_FOR_DECLIST                               \
-        int token;                                          \
-        size_t firstNumLen = yylval -> tokenLength;         \
-        if (IsDecList(yytext, & firstNumLen, & token))      \
-        {                                                   \
-            yyextra -> column -= (yyleng - firstNumLen);    \
-            yyextra -> length -= (yyleng - firstNumLen);    \
-            yylval -> tokenLength   = firstNumLen;          \
-            BEGIN DECLIST;                                  \
-            yyless(firstNumLen);                            \
-            return token;                                   \
-        }
-%}
-
-%option never-interactive nounistd yylineno reentrant bison-bridge stack noyywrap
-
-%option prefix="FASTQ_"
-%option extra-type="FASTQParseBlock*"
-
- /*%option debug*/
-
-%x TAG_LINE
-%x SEE_COORDS
-%x PAST_COORDS
-%x READ_NUMBER
-%x NAMEVALUE
-%x IN_SEQUENCE
-%x QTAG_LINE
-%x IN_QUALITY
-%x INLINE_SEQUENCE
-%x INLINE_QUALITY
-%x DECLIST
-
-ws          [ \t]+
-digits      [0-9]+
-alphanum    [A-Za-z0-9]+
-eol         (\r\n|\r|\n)
-
-/* there are more: =ACMGRSVTWYHKDBN. plus lowercase */
-base [ACGTacgtNn.]   
-cskey [ACGTacgt]
-color   [0-3.]
-
-asc33qual   [\x0E-\x1F \x21-\x7E]+
-asc64qual   [\x40-\x7E]+
-
-%%
-
-^@                              { BEGIN TAG_LINE; return yytext[0]; }
-^>                              { BEGIN TAG_LINE; return yytext[0]; }
-
-^\+                             { BEGIN QTAG_LINE; return yytext[0]; }
-
-<INITIAL,TAG_LINE>
-{
-    {digits}                    { return fqNUMBER; }
-    {alphanum}                  { return fqALPHANUM; }
-    {ws}                        { return fqWS; }
-    .                           { return yytext[0]; }
-}
-
-<TAG_LINE>[ \t]*{eol}           { BEGIN IN_SEQUENCE; ENDLINE; }
-
-<IN_SEQUENCE>
-{
-    ^{base}+/{eol}              { BEGIN 0; return fqBASESEQ; }
-    ^{cskey}{color}+/{eol}      { BEGIN 0; return fqCOLORSEQ; }
-    ^{asc64qual}/{eol}          { CHECK_FOR_DECLIST; BEGIN 0; return fqASC64QUAL; }
-    ^{asc33qual}/{eol}          { CHECK_FOR_DECLIST; BEGIN 0; return fqASC33QUAL; }
-    ^.*$                        { BEGIN 0; return fqUNRECOGNIZED; }
-}
-
-<INLINE_SEQUENCE>
-{
-    {base}+                     { BEGIN 0; return fqBASESEQ; }
-    {cskey}{color}+             { BEGIN 0; return fqCOLORSEQ; }
-}
-
-<QTAG_LINE>
-{
-    .+$                         { return fqTOKEN; /* do not bother to parse the inside of the line */ }
-    {eol}                       { BEGIN IN_QUALITY; ENDLINE }
-}
-
-<IN_QUALITY,INLINE_QUALITY,DECLIST>
-{
-    {ws}                        { } 
-    {digits}                    { BEGIN DECLIST; return fqNUMBER; }
-}
-
-<IN_QUALITY>
-{
-    ^{asc64qual}/{eol}          { CHECK_FOR_DECLIST; return fqASC64QUAL; }
-    ^{asc33qual}/{eol}          { CHECK_FOR_DECLIST; return fqASC33QUAL; }
-    {eol}                       { BEGIN 0; ENDLINE; }
-    .                           { return yytext[0]; }
-}
-
-<INLINE_QUALITY>
-{
-    {digits}/{eol}              { BEGIN DECLIST; return fqNUMBER; }
-    {asc64qual}/{eol}           { CHECK_FOR_DECLIST; return fqASC64QUAL; }
-    {asc33qual}/{eol}           { CHECK_FOR_DECLIST; return fqASC33QUAL; }
-    {eol}                       { BEGIN 0; ENDLINE; }
-    .                           { return yytext[0]; }
-}
-
-<DECLIST>
-{
-    {digits}/{eol}              { return fqNUMBER; }
-    {eol}                       { BEGIN 0; ENDLINE; }
-    .                           { return yytext[0]; }
-}
-
-{eol}                           { ENDLINE; }
-
-%%    
-
-rc_t CC FASTQScan_yylex_init(FASTQParseBlock* sb, bool debug)
-{
-	if (yylex_init_extra(sb, &sb->scanner) != 0)
-	{
-		return RC ( rcKFG, rcMgr, rcParsing, rcMemory, rcExhausted );
-	}		
-
-	yyset_debug(debug ? 1 : 0, sb->scanner);
-
-    yy_push_state(INITIAL, sb->scanner);
-
-    sb->column = 1;
-
-	return 0;
-}
-
-void CC FASTQScan_yylex_destroy(FASTQParseBlock* sb)
-{
-	if (sb->scanner)
-	{
-		yylex_destroy(sb->scanner);
-	}		
-	sb->scanner=0;
-}
-
-void CC FASTQScan_inline_sequence(FASTQParseBlock* pb)
-{
-    yy_pop_state(pb->scanner);
-    yy_push_state(INLINE_SEQUENCE, pb->scanner);
-}
-
-void CC FASTQScan_inline_quality(FASTQParseBlock* pb)
-{
-    yy_pop_state(pb->scanner);
-    yy_push_state(INLINE_QUALITY, pb->scanner);
-}
-
-/* 
- * True if the token appears to be a comma/whitespace separated list of signed decimals, each no longer than 3 decimal positions.
- */
-bool IsDecList(const char* token, size_t* size, int* p_newToken)
-{
-    size_t firstTokenSize = 0;
-    size_t curNumberSize = 0;
-    int newToken;
-    bool inFirstToken = true;
-    size_t i;
-    for (i=0; i < *size; ++i)
-    {
-        char ch=token[i];
-        if (strchr("0123456789, -+", ch) == NULL)
-        {
-            return false;
-        }
-        if (inFirstToken)
-        {
-            if (i == 0)
-            {   /* decide on the first character */ 
-                if (isdigit(ch))
-                {
-                    newToken = fqNUMBER;
-                    firstTokenSize = 1;
-                    curNumberSize = 1;
-                }
-                else if (ch == '-' || ch == '+')
-                {
-                    newToken = ch;
-                    firstTokenSize = 1;
-                    inFirstToken = false;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-            else if (isdigit(ch))
-            {   /* keep on tracking the first token's size */
-                ++firstTokenSize;
-                ++curNumberSize;
-                if (curNumberSize > 3)
-                {
-                    return false;
-                }
-            }
-            else
-            {   /* end of the first token */ 
-                curNumberSize = 0;
-                inFirstToken = false;
-            }
-        }
-        else if (isdigit(ch))
-        {   /* keep on tracking the current number's size */
-            ++curNumberSize;
-            if (curNumberSize > 3)
-            {
-                return false;
-            }
-        }
-        else
-        {
-            curNumberSize = 0;
-        }
-    }
-    *size = firstTokenSize;
-    *p_newToken = newToken;
-    return true;
-}
-
-void CC FASTQ_unlex(FASTQParseBlock* pb, FASTQToken* token)
-{
-    size_t i;
-    struct yyguts_t* yyg = (struct yyguts_t*)pb->scanner;
-    for (i = 0; i < token->tokenLength; ++i)
-    {
-        yyunput(token->tokenText[token->tokenLength-1-i], yyg->yytext_r, pb->scanner);
-    }
-    yyextra -> column -= token->tokenLength; 
-    yyextra -> length -= token->tokenLength; 
-}
diff --git a/tools/fastq-loader/fastq-loader.c b/tools/fastq-loader/fastq-loader.c
deleted file mode 100644
index 9acc6e5..0000000
--- a/tools/fastq-loader/fastq-loader.c
+++ /dev/null
@@ -1,541 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- * 
- */
-
-#include "latf-load.vers.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <limits.h>
-
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <loader/common-writer.h>
-#include <klib/rc.h>
-#include <klib/out.h>
-#include <klib/log.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <kapp/log-xml.h>
-#include <align/writer-refseq.h>
-
-extern rc_t run(char const argv0[], 
-                struct CommonWriterSettings* G,
-                unsigned countReads, 
-                const char* reads[],
-                uint8_t qualityOffset,
-                const uint8_t defaultReadNumbers[]);
-
-/* MARK: Arguments and Usage */
-static char const option_input[] = "input";
-static char const option_output[] = "output";
-static char const option_tmpfs[] = "tmpfs";
-static char const option_qual_compress[] = "qual-quant";
-static char const option_cache_size[] = "cache-size";
-static char const option_max_err_count[] = "max-err-count";
-static char const option_max_rec_count[] = "max-rec-count";
-static char const option_platform[] = "platform";
-static char const option_quality[] = "quality";
-static char const option_read[] = "read";
-static char const option_max_err_pct[] = "max-err-pct";
-
-#define OPTION_INPUT option_input
-#define OPTION_OUTPUT option_output
-#define OPTION_TMPFS option_tmpfs
-#define OPTION_QCOMP option_qual_compress
-#define OPTION_CACHE_SIZE option_cache_size
-#define OPTION_MAX_ERR_COUNT option_max_err_count
-#define OPTION_MAX_REC_COUNT option_max_rec_count
-#define OPTION_PLATFORM option_platform
-#define OPTION_QUALITY option_quality
-#define OPTION_READ option_read
-#define OPTION_MAX_ERR_PCT option_max_err_pct
-
-#define ALIAS_INPUT  "i"
-#define ALIAS_OUTPUT "o"
-#define ALIAS_TMPFS "t"
-#define ALIAS_QCOMP "Q"
-#define ALIAS_MAX_ERR_COUNT "E"
-#define ALIAS_PLATFORM "p"
-#define ALIAS_READ "r"
-/* this alias is deprecated (conflicts with -q for --quiet): */
-#define ALIAS_QUALITY "q"
-
-static
-char const * output_usage[] = 
-{
-    "Path and Name of the output database.",
-    NULL
-};
-
-static
-char const * tmpfs_usage[] = 
-{
-    "Path to be used for scratch files.",
-    NULL
-};
-
-static
-char const * qcomp_usage[] = 
-{
-    "Quality scores quantization level, can be a number (0: none - default, 1: 2bit, 2: 1bit), or a string like '1:10,10:20,20:30,30:-' (which is equivalent to 1).",
-    NULL
-};
-
-static
-char const * cache_size_usage[] = 
-{
-    "Set the cache size in MB for the temporary indices",
-    NULL
-};
-
-static
-char const * mrc_usage[] = 
-{
-    "Set the maximum number of records to process from the FASTQ file",
-    NULL
-};
-
-static
-char const * mec_usage[] = 
-{
-    "Set the maximum number of errors to ignore from the FASTQ file",
-    NULL
-};
-
-static
-char const * use_platform[] = 
-{
-    "Platform (ILLUMINA, LS454, SOLID, COMPLETE_GENOMICS, HELICOS, PACBIO, IONTORRENT, CAPILLARY)",
-    NULL
-};
-
-static
-char const * use_quality[] = 
-{
-    "Quality encoding (PHRED_33, PHRED_64)",
-    NULL
-};
-
-/*static
-char const * use_read[] = 
-{
-    "Default read number (1 or 2)",
-    NULL
-};*/
-
-static
-char const * use_max_err_pct[] = 
-{
-    "acceptable percentage of spots creation errors, default is 5",
-    NULL
-};
-
-OptDef Options[] = 
-{
-    /* order here is same as in param array below!!! */               /* max#,  needs param, required */
-    { OPTION_OUTPUT,        ALIAS_OUTPUT,           NULL, output_usage,     1,  true,        true },
-    { OPTION_TMPFS,         ALIAS_TMPFS,            NULL, tmpfs_usage,      1,  true,        false },
-    { OPTION_QCOMP,         ALIAS_QCOMP,            NULL, qcomp_usage,      1,  true,        false },
-    { OPTION_CACHE_SIZE,    NULL,                   NULL, cache_size_usage, 1,  true,        false },
-    { OPTION_MAX_REC_COUNT, NULL,                   NULL, mrc_usage,        1,  true,        false },
-    { OPTION_MAX_ERR_COUNT, ALIAS_MAX_ERR_COUNT,    NULL, mec_usage,        1,  true,        false },
-    { OPTION_PLATFORM,      ALIAS_PLATFORM,         NULL, use_platform,     1,  true,        false },
-    { OPTION_QUALITY,       ALIAS_QUALITY,          NULL, use_quality,      1,  true,        true },
-    { OPTION_MAX_ERR_PCT,   NULL,                   NULL, use_max_err_pct,  1,  true,        false },
-/*    { OPTION_READ,          ALIAS_READ,             NULL, use_read,         0,  true,        false },*/
-};
-
-const char* OptHelpParam[] =
-{
-    /* order here is same as in OptDef array above!!! */
-    "path",
-    "path-to-file",
-    "phred-score",
-    "mbytes",
-    "count",
-    "count",
-    NULL,
-    NULL,
-    NULL,
-};
-
-rc_t UsageSummary (char const * progname)
-{
-    return KOutMsg (
-        "Usage:\n"
-        "\t%s [options] <fastq-file> ...\n"
-        "\n"
-        "Summary:\n"
-        "\tLoad FASTQ formatted data files\n"
-        "\n"
-        "Example:\n"
-        "\t%s -p 454 -o /tmp/SRZ123456 123456-1.fastq 123456-2.fastq\n"
-        "\n"
-        ,progname, progname);
-}
-
-char const UsageDefaultName[] = "fastq-load";
-
-rc_t CC Usage (const Args * args)
-{
-    rc_t rc;
-    int i;
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    const size_t argsQty = sizeof(Options) / sizeof(Options[0]);
-
-    if (args == NULL)
-        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    else
-        rc = ArgsProgram (args, &fullpath, &progname);
-    if (rc)
-        progname = fullpath = UsageDefaultName;
-
-    UsageSummary (progname);
-
-    for(i = 0; i < argsQty; i++ ) {
-        if( Options[i].required && Options[i].help[0] != NULL ) {
-            HelpOptionLine(Options[i].aliases, Options[i].name, OptHelpParam[i], Options[i].help);
-        }
-    }
-    OUTMSG(("\nOptions:\n"));
-    for(i = 0; i < argsQty; i++ ) {
-        if( !Options[i].required && Options[i].help[0] != NULL ) {
-            HelpOptionLine(Options[i].aliases, Options[i].name, OptHelpParam[i], Options[i].help);
-        }
-    }
-    XMLLogger_Usage();
-    OUTMSG(("\n"));
-    HelpOptionsStandard ();
-    HelpVersion (fullpath, KAppVersion());
-    return rc;
-}
-
-/* MARK: Definitions and Globals */
-
-#define SCHEMAFILE "align/align.vschema"
-
-CommonWriterSettings G;
-
-uint32_t CC KAppVersion (void)
-{
-    return LATF_LOAD_VERS;
-}
-
-#ifdef _WIN32
-#include <process.h>
-#else
-#include <unistd.h>
-#endif
-static void set_pid(void)
-{
-    G.pid = getpid();
-}
-
-static rc_t PathWithBasePath(char rslt[], size_t sz, char const path[], char const base[])
-{
-    size_t const plen = strlen(path);
-    bool const hasBase = base && base[0];
-    bool const isBareName = strchr(path, '/') == NULL;
-    
-    if (isBareName && hasBase) {
-        if (string_printf(rslt, sz, NULL, "%s/%s", base, path) == 0)
-            return 0;
-    }
-    else if (plen < sz) {
-        strcpy(rslt, path);
-        return 0;
-    }
-    {
-        rc_t const rc = RC(rcApp, rcArgv, rcAccessing, rcBuffer, rcInsufficient);
-        (void)LOGERR(klogErr, rc, "The path to the file is too long");
-        return rc;
-    }
-}
-
-rc_t CC KMain (int argc, char * argv[])
-{
-    Args * args;
-    rc_t rc;
-    char *files[256];
-    uint8_t defaultReadNumbers[256];
-    char *name_buffer = NULL;
-    unsigned next_name = 0;
-    unsigned nbsz = 0;
-    char const *value;
-    char *dummy;
-    const XMLLogger* xml_logger = NULL;
-    uint8_t qualityOffset;
-    
-    memset(&G, 0, sizeof(G));
-    
-    G.mode = mode_Archive;
-    G.maxSeqLen = TableWriterRefSeq_MAX_SEQ_LEN;
-    G.schemaPath = SCHEMAFILE;
-    G.omit_aligned_reads = true;
-    G.omit_reference_reads = true;
-    G.minMapQual = 0; /* accept all */
-    G.tmpfs = "/tmp";
-#if _ARCH_BITS == 32
-    G.cache_size = ( size_t ) 1 << 30;
-#else
-    G.cache_size = ( size_t ) 10 << 30;
-#endif
-    G.maxErrCount = 1000;
-    G.maxErrPct = 5;
-    G.acceptNoMatch = true; 
-    G.minMatchCount = 0; 
-    G.QualQuantizer="0";
-    
-    set_pid();
-
-    rc = ArgsMakeAndHandle (&args, argc, argv, 2, Options,
-                            sizeof Options / sizeof (OptDef), XMLLogger_Args, XMLLogger_ArgsQty);
-
-    while (rc == 0) {
-        uint32_t pcount;
-
-        if( (rc = XMLLogger_Make(&xml_logger, NULL, args)) != 0 ) {
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_TMPFS, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_TMPFS, 0, &G.tmpfs);
-            if (rc)
-                break;
-        }
-        else if (pcount > 1)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            OUTMSG (("Single parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_OUTPUT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_OUTPUT, 0, &G.outpath);
-            if (rc)
-                break;
-        }
-        else if (pcount > 1)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            OUTMSG (("Single output parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        else {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcInsufficient);
-            OUTMSG (("Output parameter required\n"));
-            MiniUsage (args);
-            break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_QCOMP, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_QCOMP, 0, &G.QualQuantizer);
-            if (rc)
-                break;
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_CACHE_SIZE, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_CACHE_SIZE, 0, &value);
-            if (rc)
-                break;
-            G.cache_size = strtoul(value, &dummy, 0) * 1024UL * 1024UL;
-            if (G.cache_size == 0  || G.cache_size == ULONG_MAX) {
-                rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcIncorrect);
-                OUTMSG (("cache-size: bad value\n"));
-                MiniUsage (args);
-                break;
-            }
-        }
-        
-        G.expectUnsorted = true;
-        
-        rc = ArgsOptionCount (args, OPTION_MAX_REC_COUNT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MAX_REC_COUNT, 0, &value);
-            if (rc)
-                break;
-            G.maxAlignCount = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_MAX_ERR_COUNT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MAX_ERR_COUNT, 0, &value);
-            if (rc)
-                break;
-            G.maxErrCount = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_MAX_ERR_PCT, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_MAX_ERR_PCT, 0, &value);
-            if (rc)
-                break;
-            G.maxErrPct = strtoul(value, &dummy, 0);
-        }
-        
-        rc = ArgsOptionCount (args, OPTION_PLATFORM, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_PLATFORM, 0, &value);
-            if (rc)
-                break;
-            G.platform = PlatformToId(value);
-            if (G.platform == SRA_PLATFORM_UNDEFINED)
-            {
-                rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcIncorrect);
-                (void)PLOGERR(klogErr, (klogErr, rc, "Invalid platform $(v)",
-                            "v=%s", value));
-                break;
-            }
-        }
-        else
-            G.platform = SRA_PLATFORM_UNDEFINED;
-
-        rc = ArgsOptionCount (args, OPTION_QUALITY, &pcount);
-        if (rc)
-            break;
-        if (pcount == 1)
-        {
-            rc = ArgsOptionValue (args, OPTION_QUALITY, 0, &value);
-            if (rc)
-                break;
-            if (strcmp(value, "PHRED_33") == 0)
-                qualityOffset = 33;
-            else if (strcmp(value, "PHRED_64") == 0)
-                qualityOffset = 64;
-            else
-            {
-                rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcIncorrect);
-                (void)PLOGERR(klogErr, (klogErr, rc, "Invalid quality encoding $(v)",
-                            "v=%s", value));
-                break;
-            }
-        }
-        else
-            qualityOffset = 0;
-            
-        rc = ArgsParamCount (args, &pcount);
-        if (rc) break;
-        if (pcount == 0)
-        {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcInsufficient);
-            MiniUsage (args);
-            break;
-        }
-        else if (pcount > sizeof(files)/sizeof(files[0])) {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcExcessive);
-            (void)PLOGERR(klogErr, (klogErr, rc, "$(count) input files is too many, $(max) is the limit",
-                        "count=%u,max=%u", (unsigned)pcount, (unsigned)(sizeof(files)/sizeof(files[0]))));
-            break;
-        }
-        else {
-            unsigned need = G.inpath ? (strlen(G.inpath) + 1) * pcount : 0;
-            unsigned i;
-            
-            for (i = 0; i < pcount; ++i) {
-                rc = ArgsParamValue(args, i, &value);
-                if (rc) break;
-                need += strlen(value) + 1;
-            }
-            nbsz = need;
-        }
-        
-        name_buffer = malloc(nbsz);
-        if (name_buffer == NULL) {
-            rc = RC(rcApp, rcArgv, rcAccessing, rcMemory, rcExhausted);
-            break;
-        }
-        
-        rc = ArgsParamCount (args, &pcount);
-        if (rc == 0) {
-            unsigned i;
-            
-            for (i = 0; i < pcount; ++i) {
-                rc = ArgsParamValue(args, i, &value);
-                if (rc) break;
-
-                defaultReadNumbers[i] = 0;
-                files[i] = name_buffer + next_name;
-                rc = PathWithBasePath(name_buffer + next_name, nbsz - next_name, value, G.inpath);
-                if (rc) break;
-                next_name += strlen(name_buffer + next_name) + 1;
-            }
-        }
-        else
-            break;
-        
-        rc = run(argv[0], &G, pcount, (char const **)files, qualityOffset, defaultReadNumbers);
-        break;
-    }
-    free(name_buffer);
-
-    value = G.outpath ? strrchr(G.outpath, '/') : "/???";
-    if( value == NULL ) {
-        value = G.outpath;
-    } else {
-        value++;
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "load failed",
-                "severity=total,status=failure,accession=%s,errors=%u", value, G.errCount));
-    } else {
-        (void)PLOGMSG(klogInfo, (klogInfo, "loaded",
-                "severity=total,status=success,accession=%s,errors=%u", value, G.errCount));
-    }
-    ArgsWhack(args);
-    XMLLogger_Release(xml_logger);
-    return rc;
-}
diff --git a/tools/fastq-loader/fastq-parse.h b/tools/fastq-loader/fastq-parse.h
deleted file mode 100644
index fdd4d2d..0000000
--- a/tools/fastq-loader/fastq-parse.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_fastq_scan_
-#define _h_fasta_scan_
-
-#include <align/extern.h>
-#include <klib/text.h>
-
-#include <loader/common-reader-priv.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* values used in validating quality lines */
-#define MIN_PHRED_33 33
-#define MAX_PHRED_33 74
-#define MIN_PHRED_64 64
-#define MAX_PHRED_64 127
-
-struct FastqSequence
-{
-    Sequence_vt sequence_vt;
-    KRefcount   refcount;
-
-    /* tagline components: */
-    String spotname; /* tag line up to and including coordinates */
-    String spotgroup; /* token following '#' */
-    uint8_t readnumber; /* token following '/' 1 - IsFirst, 2 - IsSecond, 0 - dont know */
-
-    /* not populated at this time: */
-#if 0
-    String rungroup; 
-    String fmt_name; /* x and y replaced with $X and $Y */
-    uint8_t coord_num;
-    int32_t coords[16];
-#endif
-
-    char* read;
-    bool is_colorspace;
-    
-    String  quality;
-    uint8_t qualityOffset;
-    
-    bool lowQuality;
-};
-
-struct FastqRecord
-{
-    Record  dad;
-
-    KDataBuffer source;
-    struct FastqSequence    seq;
-    Rejected*               rej; 
-};
-
-typedef struct FASTQToken
-{ 
-    const char* tokenText;
-    size_t tokenLength;
-    size_t line_no;
-    size_t column_no;
-} FASTQToken;
-
-typedef struct FASTQParseBlock
-{
-    void* self;
-    size_t (CC *input)(struct FASTQParseBlock* sb, char* buf, size_t max_size);
-    uint8_t phredOffset;
-    
-    void* scanner;
-    size_t length; /* input characters consumed for the current record */
-    FASTQToken* lastToken;
-    struct FastqRecord* record;
-    size_t column;
-
-    /* temporaries for bison: */
-    KDataBuffer tagLine;
-
-    size_t spotNameLength;
-    bool spotNameDone;
-    size_t spotGroupOffset;
-    size_t spotGroupLength;
-
-    KDataBuffer quality;
-    size_t expectedQualityLines;
-    
-    uint8_t defaultReadNumber;
-    
-    bool fatalError;
-} FASTQParseBlock;
-
-extern rc_t CC FASTQScan_yylex_init(FASTQParseBlock* context, bool debug);
-extern void CC FASTQScan_yylex_destroy(FASTQParseBlock* context);
-
-/* explicit FLEX state control for bison*/
-extern void CC FASTQScan_inline_sequence(FASTQParseBlock* pb);
-extern void CC FASTQScan_inline_quality(FASTQParseBlock* pb);
-
-extern void CC FASTQ_set_lineno (int line_number, void* scanner);
-
-extern int CC FASTQ_lex(FASTQToken* pb, void * scanner);
-extern void CC FASTQ_unlex(FASTQParseBlock* pb, FASTQToken* token);
-extern void CC FASTQ_qualityContext(FASTQParseBlock* pb);
-
-extern int FASTQ_debug; /* set to 1 to print Bison trace */ 
-
-extern int CC FASTQ_parse(FASTQParseBlock* pb); /* 0 = end of input, 1 = success, a new record is in context->record, 2 - syntax error */
-
-extern void CC FASTQ_error(FASTQParseBlock* pb, const char* msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_fastq_scan_ */
diff --git a/tools/fastq-loader/fastq-reader.c b/tools/fastq-loader/fastq-reader.c
deleted file mode 100644
index 6129920..0000000
--- a/tools/fastq-loader/fastq-reader.c
+++ /dev/null
@@ -1,701 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct FastqReaderFile  FastqReaderFile;
-typedef struct FastqRecord      FastqRecord;
-typedef struct FastqSequence    FastqSequence;
-
-#define READERFILE_IMPL FastqReaderFile
-#define RECORD_IMPL     FastqRecord
-#define SEQUENCE_IMPL   FastqSequence
-
-#include "fastq-reader.h"
-#include "fastq-parse.h"
-
-#include <stdlib.h>
-#include <sysalloc.h>
-#include <assert.h>
-#include <string.h>
-
-#include <kapp/loader-file.h>
-#include <kfs/directory.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-
-static rc_t FastqSequenceInit(FastqSequence* self);
-
-/*--------------------------------------------------------------------------
- * FastqRecord
- */
-static rc_t FastqRecordAddRef   ( const FastqRecord* self );
-static rc_t FastqRecordRelease  ( const FastqRecord* self );
-static rc_t FastqRecordGetSequence  ( const FastqRecord* self, const Sequence** result);
-static rc_t FastqRecordGetAlignment ( const FastqRecord* self, const Alignment** result);
-static rc_t FastqRecordGetRejected  ( const FastqRecord* self, const Rejected** result);
-
-static Record_vt_v1 FastqRecord_vt = 
-{
-    1, 0, 
-    /* start minor version == 0 */
-    FastqRecordAddRef,
-    FastqRecordRelease,
-    FastqRecordGetSequence,
-    FastqRecordGetAlignment,
-    FastqRecordGetRejected,
-    /* end minor version == 0 */
-};
-
-static rc_t CC FastqRecordInit ( FastqRecord* self )
-{
-    assert(self);
-    self->dad.vt.v1 = & FastqRecord_vt; 
-    KDataBufferMakeBytes ( & self->source, 0 );
-    self->rej = 0;
-    return FastqSequenceInit(& self->seq);
-}
-
-static rc_t FastqRecordWhack( const FastqRecord* cself )
-{
-    rc_t rc = 0;
-    FastqRecord* self = (FastqRecord*)cself;
-    assert(self);
-    
-    free((void*)self->seq.read);
-    
-    rc = KDataBufferWhack( & self->source );
-    
-    if (rc)
-        RejectedRelease(self->rej);
-    else
-        rc = RejectedRelease(self->rej);
-        
-    free(self);    
-      
-    return rc;
-}
-
-static rc_t FastqRecordAddRef( const FastqRecord* self )
-{
-    assert(self);
-    KRefcountAdd( & self->seq.refcount, "FastqRecord" );
-    /* TODO: handle rc from KRefcountAdd */
-    return 0;
-}
-
-static rc_t FastqRecordRelease( const FastqRecord* cself )
-{
-    if ( cself != NULL )
-    {
-        FastqRecord *self = ( FastqRecord* ) cself;
-        switch ( KRefcountDrop ( & self ->seq.refcount, "FastqRecord" ) )
-        {
-        case krefWhack:
-            FastqRecordWhack( self );
-            break;
-        default:
-            /* TODO: handle other values */
-            break;
-        }
-    }
-    return 0;
-}
-
-static rc_t FastqRecordGetSequence( const FastqRecord* self, const Sequence** result )
-{
-    rc_t rc = 0;
-    assert(result);
-    *result = 0;
-    if (self->rej == 0)
-    {
-        rc = FastqRecordAddRef(self);
-        if (rc == 0)
-            *result = (const Sequence*) & self->seq;
-    }
-    return rc;
-}
-
-static rc_t FastqRecordGetAlignment( const FastqRecord* self, const Alignment** result)
-{
-    *result = 0;
-    return 0;
-}
-
-static rc_t FastqRecordGetRejected( const FastqRecord* self, const Rejected** result)
-{
-    rc_t rc = 0;
-    assert(result);
-    *result = 0;
-    if (self->rej != 0)
-    {
-        rc = RejectedAddRef(self->rej);
-        if (rc == 0)
-            *result = self->rej;
-    }
-    return rc;
-}
-
-/*--------------------------------------------------------------------------
- * FastqSequence
- */
-
-static rc_t FastqSequenceAddRef              ( const SEQUENCE_IMPL* self );
-static rc_t FastqSequenceRelease             ( const SEQUENCE_IMPL* self );
-static rc_t FastqSequenceGetReadLength       ( const SEQUENCE_IMPL *self, uint32_t *length );
-static rc_t FastqSequenceGetRead             ( const SEQUENCE_IMPL *self, char *sequence );
-static rc_t FastqSequenceGetRead2            ( const SEQUENCE_IMPL *self, char *sequence, uint32_t start, uint32_t stop );
-static rc_t FastqSequenceGetQuality          ( const SEQUENCE_IMPL *self, const int8_t **quality, uint8_t *offset, int *qualType );
-static rc_t FastqSequenceGetSpotGroup        ( const SEQUENCE_IMPL *self, const char **name, size_t *length );
-static rc_t FastqSequenceGetSpotName         ( const SEQUENCE_IMPL *self, const char **name, size_t *length );
-static bool FastqSequenceIsColorSpace        ( const SEQUENCE_IMPL *self );
-static rc_t FastqSequenceGetCSKey            ( const SEQUENCE_IMPL *self, char cskey[1] );
-static rc_t FastqSequenceGetCSReadLength     ( const SEQUENCE_IMPL *self, uint32_t *length );
-static rc_t FastqSequenceGetCSRead           ( const SEQUENCE_IMPL *self, char *sequence );
-static rc_t FastqSequenceGetCSQuality        ( const SEQUENCE_IMPL *self, const int8_t **quality, uint8_t *offset, int *qualType );
-static bool FastqSequenceRecordWasPaired     ( const SEQUENCE_IMPL *self );
-static int  FastqSequenceGetOrientationSelf  ( const SEQUENCE_IMPL *self );
-static int  FastqSequenceGetOrientationMate  ( const SEQUENCE_IMPL *self );
-static bool FastqSequenceRecordIsFirst       ( const SEQUENCE_IMPL *self );
-static bool FastqSequenceRecordIsSecond      ( const SEQUENCE_IMPL *self );
-static bool FastqSequenceIsDuplicate         ( const SEQUENCE_IMPL *self ); 
-static bool FastqSequenceIsLowQuality        ( const SEQUENCE_IMPL *self ); 
-static rc_t FastqSequenceGetTI               ( const SEQUENCE_IMPL *self, uint64_t *ti );
-
-static Sequence_vt_v1 FastqSequence_vt = 
-{
-    1, 0, 
-    /* start minor version == 0 */
-    FastqSequenceAddRef,
-    FastqSequenceRelease,
-    FastqSequenceGetReadLength,
-    FastqSequenceGetRead,
-    FastqSequenceGetRead2,
-    FastqSequenceGetQuality,
-    FastqSequenceGetSpotGroup,
-    FastqSequenceGetSpotName,
-    FastqSequenceIsColorSpace,
-    FastqSequenceGetCSKey,
-    FastqSequenceGetCSReadLength,
-    FastqSequenceGetCSRead,
-    FastqSequenceGetCSQuality,
-    FastqSequenceRecordWasPaired,
-    FastqSequenceGetOrientationSelf,
-    FastqSequenceGetOrientationMate,
-    FastqSequenceRecordIsFirst,
-    FastqSequenceRecordIsSecond,
-    FastqSequenceIsDuplicate,  
-    FastqSequenceIsLowQuality, 
-    FastqSequenceGetTI,        
-    /* end minor version == 0 */
-};
-
-static
-rc_t
-FastqSequenceInit(FastqSequence* self)
-{
-    self->sequence_vt.v1 = & FastqSequence_vt;
-    KRefcountInit ( & self -> refcount, 1, "FastqSequence", "FastqSequenceInit", "");
-
-    StringInit(&self->spotname, 0, 0, 0);
-    StringInit(&self->spotgroup, 0, 0, 0);
-    self->readnumber = 0; 
-
-    self->read = 0;
-    self->is_colorspace = false;
-    StringInit(&self->quality, 0, 0, 0);
-    self->qualityOffset = 0;
-    self->lowQuality = false;
-
-    return 0;
-}
-
-static const FastqRecord*
-FastqSequenceToRecord(const FastqSequence* seq) 
-{
-    return ( const FastqRecord * ) ( (uint8_t*)seq - offsetof ( FastqRecord, seq ) );
-}
-
-static rc_t FastqSequenceAddRef( const FastqSequence* self )
-{
-    switch (KRefcountAdd( & self->refcount, "FastqSequence" ))
-    {
-    case krefLimit:
-        return RC ( RC_MODULE, rcData, rcAttaching, rcRange, rcExcessive );
-    case krefNegative:
-        return RC ( RC_MODULE, rcData, rcAttaching, rcRefcount, rcInvalid );
-    }
-    return 0;
-}
-
-static rc_t FastqSequenceRelease( const FastqSequence* self )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "FastqSequence" ) )
-        {
-        case krefWhack:
-            return FastqRecordWhack ( FastqSequenceToRecord(self) );
-
-        case krefNegative:
-            return RC ( RC_MODULE, rcData, rcDestroying, rcSelf, rcDestroyed );
-        }
-    }
-
-    return 0;
-
-}
-
-static rc_t FastqSequenceGetReadLength ( const FastqSequence *self, uint32_t *length )
-{
-    assert(self);
-    if ( self->read == NULL || self->is_colorspace )
-    {
-        *length = 0;
-    }
-    else
-    {
-        *length = string_measure(self->read, NULL);
-    }
-    return 0;
-}
-
-static rc_t FastqSequenceGetRead ( const FastqSequence *self, char *sequence )
-{
-    assert(self);
-    assert(sequence);
-    if ( self->read != NULL && !self->is_colorspace )
-    {
-        uint32_t length = string_measure(self->read, NULL);
-        string_copy(sequence, length, self->read, length);
-    }
-    return 0;
-}
-
-static rc_t FastqSequenceGetRead2 ( const FastqSequence *self, char *sequence, uint32_t start, uint32_t stop )
-{
-    assert(self);
-    assert(sequence);
-    if ( self->read == NULL || self->is_colorspace )
-    {
-        return RC( RC_MODULE, rcData, rcAccessing, rcItem, rcEmpty );
-    }
-    else
-    {
-        uint32_t length = string_measure(self->read, NULL);
-        if (start >= length || stop >= length || start >= stop)
-        {
-            return RC( RC_MODULE, rcData, rcAccessing, rcRange, rcInvalid);
-        }
-        string_copy(sequence, stop - start, self->read + start, stop - start);
-    }
-    return 0;
-}
-
-static rc_t FastqSequenceGetQuality ( const FastqSequence *self, const int8_t **quality, uint8_t *offset, int *qualType )
-{
-    assert(self);
-    assert(quality);
-    assert(offset);
-    assert(qualType);
-    *quality = NULL;
-    if ( self->quality.size != 0)
-    {
-        *quality = (const int8_t *)self->quality.addr;
-        *offset = self->qualityOffset;
-    }
-    else
-    {
-        *quality = NULL;
-        *offset = 0;
-    }
-    *qualType = QT_Phred;
-    return 0;
-}
-
-static rc_t FastqSequenceGetSpotGroup ( const FastqSequence *self, const char **name, size_t *length )
-{
-    assert(self);
-    assert(name);
-    *name = self->spotgroup.addr;
-    *length = self->spotgroup.len;
-    return 0;
-}
-
-static rc_t FastqSequenceGetSpotName ( const FastqSequence *self, const char **name, size_t *length )
-{
-    assert(self);
-    assert(name);
-    *name = self->spotname.addr;
-    *length = self->spotname.len;
-    return 0;
-}
-
-static bool FastqSequenceIsColorSpace ( const FastqSequence *self )
-{
-    assert(self);
-    return self->is_colorspace;
-}
-
-static rc_t FastqSequenceGetCSKey ( const FastqSequence *self, char cskey[1] )
-{
-    assert(self);
-    if (self->is_colorspace)
-        cskey[0] = self->read[0];
-    return 0;
-}
-
-static rc_t FastqSequenceGetCSReadLength ( const FastqSequence *self, uint32_t *length )
-{
-    assert(self);
-    if ( self->read == NULL )
-    {
-        *length = 0;
-    }
-    else if (self->is_colorspace)
-    {
-        *length = string_measure(self->read + 1, NULL);
-    }
-    return 0;
-}
-
-static rc_t FastqSequenceGetCSRead ( const FastqSequence *self, char *sequence )
-{
-    assert(self);
-    assert(sequence);
-    if ( self->read != NULL && self->is_colorspace )
-    {
-        uint32_t length = string_measure(self->read + 1, NULL);
-        string_copy(sequence, length, self->read + 1, length);
-    }
-    return 0;
-}
-
-static rc_t FastqSequenceGetCSQuality ( const FastqSequence *self, const int8_t **quality, uint8_t *offset, int *qualType )
-{
-    assert(self);
-    assert(quality);
-    assert(offset);
-    assert(qualType);
-    *quality = NULL;
-    if ( self->quality.size != 0 && self->is_colorspace )
-    {
-        *quality = (const int8_t *)self->quality.addr + 1;
-        *offset = self->qualityOffset;
-    }
-    else
-    {
-        *quality = NULL;
-        *offset = 0;
-    }
-    *qualType = QT_Phred;
-    return 0;
-}
-
-static bool FastqSequenceRecordWasPaired ( const FastqSequence *self )
-{
-    assert(self);
-    return self->readnumber != 0;
-}
-
-static int FastqSequenceGetOrientationSelf ( const FastqSequence *self )
-{
-    assert(self);
-    return ReadOrientationUnknown;
-}
-
-static int FastqSequenceGetOrientationMate ( const FastqSequence *self )
-{
-    assert(self);
-    return ReadOrientationUnknown;
-}
-
-static bool FastqSequenceRecordIsFirst ( const FastqSequence *self )
-{
-    assert(self);
-    return self->readnumber == 1;
-}
-
-static bool FastqSequenceRecordIsSecond ( const FastqSequence *self )
-{
-    assert(self);
-    return self->readnumber == 2;
-}
-
-static bool FastqSequenceIsDuplicate         ( const SEQUENCE_IMPL *self )
-{
-    assert(self);
-    return 0;
-}
-
-static bool FastqSequenceIsLowQuality        ( const SEQUENCE_IMPL *self )
-{
-    assert(self);
-    return self->lowQuality;
-}
-
-static rc_t FastqSequenceGetTI               ( const SEQUENCE_IMPL *self, uint64_t *ti )
-{
-    assert(self);
-    return false;
-}
-
-/*--------------------------------------------------------------------------
- * FastqReaderFile
- */
-
-static rc_t FastqReaderFileWhack( READERFILE_IMPL* self );
-static rc_t FastqReaderFileGetRecord ( const READERFILE_IMPL *self, const Record** result );
-static float FastqReaderFileGetProportionalPosition ( const READERFILE_IMPL *self );
-static rc_t FastqReaderFileGetReferenceInfo ( const READERFILE_IMPL *self, const ReferenceInfo** result );
-
-static ReaderFile_vt_v1 FastqReaderFile_vt = 
-{
-    1, 0, 
-    /* start minor version == 0 */
-    FastqReaderFileWhack,
-    FastqReaderFileGetRecord,
-    FastqReaderFileGetProportionalPosition,
-    FastqReaderFileGetReferenceInfo,
-    /* end minor version == 0 */
-};
-
-struct FastqReaderFile
-{
-    ReaderFile dad;
-
-    FASTQParseBlock pb; 
-    const KLoaderFile* reader;
-
-    const char* recordStart; /* raw source of the record being currently parsed */
-    size_t curPos;           /* current tokenization position relative to recordStart */
-    bool lastEol;
-    bool eolInserted;
-};
-
-rc_t FastqReaderFileWhack( FastqReaderFile* f )
-{
-    FastqReaderFile* self = (FastqReaderFile*) f;
-
-    FASTQScan_yylex_destroy(& self->pb);
-
-    if (self->reader)
-        KLoaderFile_Release ( self->reader, true );
-
-    ReaderFileWhack( &self->dad );
-
-    free ( self );
-    return 0;
-}
-
-rc_t FastqReaderFileGetRecord ( const FastqReaderFile *f, const Record** result )
-{
-    rc_t rc;
-    FastqReaderFile* self = (FastqReaderFile*) f;
-    
-    if (self->pb.fatalError)
-        return 0;
-
-    self->pb.record = (FastqRecord*)malloc(sizeof(FastqRecord));
-    if (self->pb.record == NULL)
-    {
-        rc = RC ( RC_MODULE, rcData, rcAllocating, rcMemory, rcExhausted );
-        return 0;
-    }
-    rc = FastqRecordInit(self->pb.record);
-    if (rc != 0)
-        return rc;
-
-    self->pb.length = 0;
-    KDataBufferResize( & self->pb.tagLine, 0 );
-    KDataBufferResize( & self->pb.quality, 0 );
-    self->pb.spotNameDone = false;
-
-    if ( FASTQ_parse( & self->pb ) == 0 && self->pb.record->rej == 0 )
-    {   /* normal end of input */
-        RecordRelease((const Record*)self->pb.record);
-        *result = 0;
-        return 0;
-    }
-
-    /*TODO: remove? compensate for an artificially inserted trailing \n */
-    if ( self->eolInserted )
-    {
-        -- self->pb.length;
-        self->eolInserted = false;
-    }
-
-    if (self->pb.record->rej != 0) /* had error(s) */
-    {   /* save the complete raw source in the Rejected object */
-        StringInit(& self->pb.record->rej->source, string_dup(self->recordStart, self->pb.length), self->pb.length, self->pb.length);
-        self->pb.record->rej->fatal = self->pb.fatalError;
-    }
-
-    if (rc == 0 && self->reader != 0)
-    {   
-        /* advance the record start pointer beyond the last token */ 
-        size_t length;
-        rc = KLoaderFile_Read( self->reader, self->pb.length, 0, (const void**)& self->recordStart, & length);
-        if (rc != 0)
-            LogErr(klogErr, rc, "FastqReaderFileGetRecord failed");
-
-        self->curPos -= self->pb.length;
-    }
-
-    StringInit( & self->pb.record->seq.spotname,    (const char*)self->pb.tagLine.base, self->pb.spotNameLength, self->pb.spotNameLength);
-    StringInit( & self->pb.record->seq.spotgroup,   (const char*)self->pb.tagLine.base + self->pb.spotGroupOffset, self->pb.spotGroupLength, self->pb.spotGroupLength);
-    StringInit( & self->pb.record->seq.quality,     (const char*)self->pb.quality.base, self->pb.quality.elem_count, self->pb.quality.elem_count); 
-    self->pb.record->seq.qualityOffset = self->pb.phredOffset;
-    
-    if (self->pb.record->seq.readnumber == 0)
-        self->pb.record->seq.readnumber = self->pb.defaultReadNumber;
-    
-    *result = (const Record*) self->pb.record;
-
-    return rc;
-}
-
-void CC FASTQ_error(struct FASTQParseBlock* sb, const char* msg)
-{
-    if (sb->record->rej == 0)
-    {   /* save the error information in the Rejected object */
-        sb->record->rej = (Rejected*)malloc(sizeof(Rejected));
-        RejectedInit(sb->record->rej);
-
-        sb->record->rej->message    = string_dup(msg, strlen(msg));
-        sb->record->rej->line       = sb->lastToken->line_no;
-        sb->record->rej->column     = sb->lastToken->column_no;
-    }
-    /* subsequent errors in this record will be ignored */
-}
-
-size_t CC FASTQ_input(FASTQParseBlock* pb, char* buf, size_t max_size)
-{
-    FastqReaderFile* self = (FastqReaderFile*)pb->self;
-    size_t length;
-
-    rc_t rc = KLoaderFile_Read( self->reader, 0, self->curPos + max_size, (const void**)& self->recordStart, & length);
-
-    if ( rc != 0 )
-    {
-        LogErr(klogErr, rc, "FASTQ_input failed");
-        return 0;
-    }
-    
-    length -= self->curPos;
-    if ( length == 0 ) /* nothing new read = end of file */
-    {   /* insert an additional \n before the end of file if missing */
-        if ( !self->lastEol )
-        {
-            buf[0] = '\n';
-            self->eolInserted = true;
-            self->lastEol = true;
-            return 1;
-        }
-        else
-        {   
-            return 0; /* signal EOF to flex */
-        }
-    }
-
-    memcpy(buf, self->recordStart + self->curPos, length);
-    self->lastEol = ( buf[length-1] == '\n' );
-    self->curPos += length;
-    return length;
-}
-
-rc_t CC FastqReaderFileMake( const ReaderFile **reader, const KDirectory* dir, const char* file, uint8_t phredOffset, uint8_t defaultReadNumber)
-{
-    rc_t rc;
-    FastqReaderFile* self = (FastqReaderFile*) malloc ( sizeof * self );
-    if ( self == NULL )
-    {
-         rc = RC ( RC_MODULE, rcFileFormat, rcAllocating, rcMemory, rcExhausted );
-    }
-    else
-    {
-        memset(self, 0, sizeof(*self));
-        rc = ReaderFileInit ( self );
-        self->dad.vt.v1 = & FastqReaderFile_vt;
-
-        self->dad.pathname = string_dup(file, strlen(file)+1);
-        if ( self->dad.pathname == NULL )
-        {
-            rc = RC ( RC_MODULE, rcFileFormat, rcAllocating, rcMemory, rcExhausted );
-        }
-        else
-        {
-            rc = KLoaderFile_Make( & self->reader, dir, file, 0, true );
-        }
-        if (rc == 0)
-        {
-            self->pb.self = self;
-            self->pb.input = FASTQ_input;    
-            self->pb.phredOffset = phredOffset;
-            /* TODO: 
-                if phredOffset is 0, 
-                    guess based on the raw values on the first quality line:
-                        if all values are above MAX_PHRED_33, phredOffset = 64
-                        if all values are in MIN_PHRED_33..MAX_PHRED_33, phredOffset = 33
-                        if any value is below MIN_PHRED_33, abort
-                    if the guess is 33 and proven wrong (a raw quality value >MAX_PHRED_33 is encountered and no values below MIN_PHRED_64 ever seen)
-                        reopen the file, 
-                        phredOffset = 64
-                        try to parse again
-                        if a value below MIN_PHRED_64 seen, abort 
-            */
-            self->pb.defaultReadNumber = defaultReadNumber;
-            
-            rc = FASTQScan_yylex_init(& self->pb, true); 
-            if (rc == 0)
-            {
-                *reader = (const ReaderFile *) self;
-            } 
-            else
-            {
-                KLoaderFile_Release( self->reader, true );
-                ReaderFileRelease( & self->dad );
-                *reader = 0;
-            }
-        }
-        else
-        {
-            ReaderFileRelease( & self->dad );
-            *reader = 0;
-        }
-    }
- 
-    return rc;
-}
-
-float FastqReaderFileGetProportionalPosition ( const READERFILE_IMPL *self )
-{
-    return 0.0f;
-}
-
-rc_t FastqReaderFileGetReferenceInfo ( const READERFILE_IMPL *self, const ReferenceInfo** result )
-{
-    *result = NULL;
-    return 0;
-}
diff --git a/tools/fastq-loader/fastq-reader.h b/tools/fastq-loader/fastq-reader.h
deleted file mode 100644
index bd92150..0000000
--- a/tools/fastq-loader/fastq-reader.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_fastq_reader_
-#define _h_fastq_reader_
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KDirectory;
-struct ReaderFile;
-
-rc_t CC FastqReaderFileMake( const struct ReaderFile **self, const struct KDirectory* dir, const char* file, uint8_t phredOffset, uint8_t defaultReadNumber);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _h_fastq_reader_ */
diff --git a/tools/fastq-loader/fastq-tokens.h b/tools/fastq-loader/fastq-tokens.h
deleted file mode 100644
index bcb059d..0000000
--- a/tools/fastq-loader/fastq-tokens.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
-
-/* Bison interface for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     fqENDOFTEXT = 0,
-     fqNUMBER = 258,
-     fqALPHANUM = 259,
-     fqWS = 260,
-     fqENDLINE = 261,
-     fqBASESEQ = 262,
-     fqCOLORSEQ = 263,
-     fqTOKEN = 264,
-     fqASCQUAL = 265,
-     fqUNRECOGNIZED = 266
-   };
-#endif
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef int YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-
-
diff --git a/tools/fastq-loader/latf-load.vers b/tools/fastq-loader/latf-load.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/fastq-loader/latf-load.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/fastq-loader/loader-imp.c b/tools/fastq-loader/loader-imp.c
deleted file mode 100644
index e75f860..0000000
--- a/tools/fastq-loader/loader-imp.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <sysalloc.h>
-#include <stdlib.h>
-#include <string.h>
- 
-#include <klib/rc.h>
-#include <klib/log.h>
-
-#include <kdb/btree.h>
-#include <kdb/meta.h>
-#include <kdb/manager.h>
-#include <kdb/database.h>
-
-#include <kapp/loader-meta.h>
-#include <kapp/main.h>
-
-#include <kfs/directory.h>
-
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/database.h>
-#include <vdb/vdb-priv.h>
-
-#include <loader/common-reader.h>
-#include <loader/common-writer.h>
-#include <loader/sequence-writer.h>
-#include <loader/reference-writer.h>
-
-#include "fastq-reader.h"
-
-rc_t AcrhiveFASTQ(CommonWriterSettings* G, 
-                VDBManager *mgr, 
-                VDatabase *db,
-                unsigned seqFiles, 
-                char const *seqFile[], 
-                uint8_t qualityOffset, 
-                const uint8_t defaultReadNumbers[])
-{
-    rc_t rc = 0;
-    unsigned i;
-    CommonWriter cw;
-
-    KDirectory *dir;
-    rc = KDirectoryNativeDir(&dir);    
-    if (rc != 0)
-        return rc;
-
-    rc = CommonWriterInit( &cw, mgr, db, G);
-    if (rc != 0)
-    {
-        KDirectoryRelease(dir);
-        return rc;
-    }
-    
-    for (i = 0; i < seqFiles; ++i) {
-        const ReaderFile *reader;
-        rc = FastqReaderFileMake(&reader, dir, seqFile[i], qualityOffset, defaultReadNumbers[i]);
-        if (rc == 0) 
-        {
-            rc = CommonWriterArchive( &cw, reader );
-            if (rc != 0) 
-                ReaderFileRelease(reader);
-            else
-                rc = ReaderFileRelease(reader);
-        }
-        if (rc != 0)
-            break;
-    }
-    if (rc == 0)
-        rc = CommonWriterComplete( &cw, Quitting() != 0 );
-    else
-        CommonWriterComplete( &cw, true );
-        
-    G->errCount = cw.err_count;
-        
-    if (rc == 0)
-        rc = CommonWriterWhack( &cw );
-    else
-        CommonWriterWhack( &cw );
-    
-    if (rc == 0)
-        rc = KDirectoryRelease(dir);
-    else
-        KDirectoryRelease(dir);
-        
-    if (rc == 0) {
-        (void)LOGMSG(klogInfo, "Successfully loaded all files");
-    }
-    return rc;
-}
- 
-rc_t WriteLoaderSignature(KMetadata *meta, char const progName[])
-{
-    KMDataNode *node;
-    rc_t rc = KMetadataOpenNodeUpdate(meta, &node, "/");
-    
-    if (rc == 0) {
-        rc = KLoaderMeta_Write(node, progName, __DATE__, "FASTQ", KAppVersion());
-        KMDataNodeRelease(node);
-    }
-    if (rc) {
-        (void)LOGERR(klogErr, rc, "Cannot update loader meta");
-    }
-    return rc;
-}
-
-rc_t OpenPath(char const path[], KDirectory **dir)
-{
-    KDirectory *p;
-    rc_t rc = KDirectoryNativeDir(&p);
-    
-    if (rc == 0) {
-        rc = KDirectoryOpenDirUpdate(p, dir, false, path);
-        KDirectoryRelease(p);
-    }
-    return rc;
-}
-
-rc_t ConvertDatabaseToUnmapped(VDatabase* db)
-{
-    VTable* tbl;
-    rc_t rc = VDatabaseOpenTableUpdate(db, &tbl, "SEQUENCE");
-    if (rc == 0) 
-    {
-        rc = VTableRenameColumn(tbl, false, "CMP_ALTREAD", "ALTREAD");
-        if (rc == 0 || GetRCState(rc) == rcNotFound)
-            rc = VTableRenameColumn(tbl, false, "CMP_READ", "READ");
-/*        if (rc == 0 || GetRCState(rc) == rcNotFound)
-            rc = VTableRenameColumn(tbl, false, "CMP_ALTCSREAD", "ALTCSREAD");
-        if (rc == 0 || GetRCState(rc) == rcNotFound)
-            rc = VTableRenameColumn(tbl, false, "CMP_CSREAD", "CSREAD");*/
-        if (GetRCState(rc) == rcNotFound)
-            rc = 0;
-        rc = VTableRelease(tbl);
-    }
-    return rc;
-}
-
-rc_t run(char const progName[], CommonWriterSettings* G, unsigned seqFiles, const char *seqFile[], uint8_t qualityOffset, const uint8_t defaultReadNumbers[])
-{
-    VDBManager *mgr;
-    rc_t rc;
-    rc_t rc2;
-    char const *db_type = "NCBI:align:db:alignment_sorted"; 
-    
-    rc = VDBManagerMakeUpdate(&mgr, NULL);
-    if (rc) {
-        (void)LOGERR (klogErr, rc, "failed to create VDB Manager!");
-    }
-    else {
-        VSchema *schema;
-
-        rc = VDBManagerMakeSchema(mgr, &schema);
-        if (rc) {
-            (void)LOGERR (klogErr, rc, "failed to create schema");
-        }
-        else {
-            (void)(rc = VSchemaAddIncludePath(schema, G->schemaIncludePath));
-            rc = VSchemaParseFile(schema, G->schemaPath);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "failed to parse schema file $(file)", "file=%s", G->schemaPath));
-            }
-            else {
-                VDatabase *db;
-                
-                rc = VDBManagerCreateDB(mgr, &db, schema, db_type, kcmInit + kcmMD5, G->outpath);
-                rc2 = VSchemaRelease(schema);
-                if (rc2)
-                    (void)LOGERR(klogWarn, rc2, "Failed to release schema");
-                if (rc == 0)
-                    rc = rc2;
-                if (rc == 0) {
-                    rc = AcrhiveFASTQ(G, mgr, db, seqFiles, seqFile, qualityOffset, defaultReadNumbers);
-                }
-
-                if (rc == 0) {
-                    rc = ConvertDatabaseToUnmapped(db);
-                }
-
-                rc2 = VDatabaseRelease(db);
-                if (rc == 0)
-                {
-                    if (rc2)
-                        (void)LOGERR(klogWarn, rc2, "Failed to close database");
-                    rc = rc2;
-                }
-                
-                if (rc == 0) {
-                    KMetadata *meta;
-                    KDBManager *kmgr;
-                    
-                    rc = VDBManagerOpenKDBManagerUpdate(mgr, &kmgr);
-                    if (rc == 0) {
-                        KDatabase *kdb;
-                        
-                        rc = KDBManagerOpenDBUpdate(kmgr, &kdb, G->outpath);
-                        if (rc == 0) {
-                            rc = KDatabaseOpenMetadataUpdate(kdb, &meta);
-                            KDatabaseRelease(kdb);
-                        }
-                        KDBManagerRelease(kmgr);
-                    }
-                    if (rc == 0) {
-                        rc = WriteLoaderSignature(meta, progName);
-                        KMetadataRelease(meta);
-                    }
-                }
-            }
-            rc2 = VDBManagerRelease(mgr);
-            if (rc2)
-                (void)LOGERR(klogWarn, rc2, "Failed to release VDB Manager");
-            if (rc == 0)
-                rc = rc2;
-        }
-    }
-    return rc;
-}
diff --git a/tools/kar/Makefile b/tools/kar/Makefile
index 99b0798..9b2ed86 100644
--- a/tools/kar/Makefile
+++ b/tools/kar/Makefile
@@ -43,13 +43,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -60,13 +62,6 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -94,14 +89,11 @@ KAR_OBJ = \
 
 KAR_LIB = \
 	-skapp \
-	-lvfs \
-	-lkurl \
-	-lkfg \
-	-lkrypto \
 	-lkfs \
-	-lkproc \
 	-lklib \
-	-lm
+	-ldl \
+	-lz \
+	-lbz2
 
 $(BINDIR)/kar: $(KAR_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(KAR_LIB)
@@ -121,17 +113,17 @@ SRA_KAR_OBJ = \
 
 SRA_KAR_LIB = \
 	-skapp \
+	-ssraschema \
+	-lsrapath \
 	-lsradb \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-lkurl \
 	-lkfg \
-	-lkrypto \
 	-lkfs \
-	-lkproc \
 	-lklib \
-	-lm
+	-ldl \
+	-lz \
+	-lbz2
 
 $(BINDIR)/sra-kar: $(SRA_KAR_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SRA_KAR_LIB)
diff --git a/tools/kar/kar.c b/tools/kar/kar.c
index 92c6f2d..96a06d1 100644
--- a/tools/kar/kar.c
+++ b/tools/kar/kar.c
@@ -46,6 +46,7 @@
 
 #include <kapp/main.h>
 #include <kapp/args.h>
+#include <fmtdef.h>
 
 
 #include <stdio.h>
@@ -92,7 +93,7 @@ static const char * directory_usage[] =
 static const char * force_usage[] =
 { "(no parameter) this will cause the extract or",
   "create to over-write existing files unless",
-  "they are write-protected.  Without this",
+  "they are write-protected.  without this",
   "option the program will fail if the archive",
   "already exists for a create or the target",
   "directory exists for an extract", NULL };
@@ -163,12 +164,10 @@ rc_t CC Usage (const Args * args)
     HelpOptionLine (ALIAS_TEST, OPTION_TEST, archive, test_usage);
     OUTMSG (("\n"
              "Archive:\n"
-             "  Path to a file that will/does hold the archive of other files.\n"
-             "  This can be a full or relative path.\n"
+             "  Path to a file that will/does hold the archive of other files\n"
              "\n"
              "Directory:\n"
-	     "  Required for create or extract command, ignored for test command.\n"
-             "  This can be a full or relative path.\n"
+	     "    Required for create or extract command, ignored for test command\n"
              "\n"
              "Filters:\n"
 	     "  When present these act as include filters.\n"
@@ -184,37 +183,6 @@ rc_t CC Usage (const Args * args)
 
     HelpOptionsStandard ();
 
-    OUTMSG (("\n"
-             "Use examples:"
-             "\n"
-             "  To create an archive named 'example.sra' that contains the same\n"
-             "  contents as a subdirectory 'example' of the current directory\n"
-             "\n"
-             "  $ %s --%s example.sra --%s example\n",
-             progname, OPTION_CREATE, OPTION_DIRECTORY));
-
-    OUTMSG (("\n"
-             "  To replace an existing archive named 'example.sra' with another that contains\n"
-             "  the same contents as a subdirectory 'example' of the current directory\n"
-             "\n"
-             "  $ %s -%s -%s example.sra -%s example\n",
-             progname, ALIAS_FORCE, ALIAS_CREATE, ALIAS_DIRECTORY));
-
-    OUTMSG (("\n"
-             "  To examine in detail the contents of an archive named 'example.sra'\n"
-             "\n"
-             "  $ %s --%s --%s example.sra\n",
-             progname, OPTION_LONGLIST, OPTION_TEST));
-
-    OUTMSG (("\n"
-             "  To extract the files from an archive named 'example.sra' into\n"
-             "  a subdirectory 'example' of the current directory.\n"
-             "  NOTE: all extracted files will be read only.\n"
-             "\n"
-             "  $ %s --%s example.sra --%s example\n",
-             progname, OPTION_EXTRACT, OPTION_DIRECTORY));
-
-
     HelpVersion (fullpath, KAppVersion());
 
     return rc;
@@ -359,54 +327,6 @@ static KSRAFileAlignment get_alignment (const char * str)
     }
     return sraAlignInvalid;
 }
-
-static
-int CC sort_cmp (const void ** l, const void ** r, void * data)
-{
-    KDirectory * d;
-    uint64_t lz, rz;
-    rc_t rc;
-
-    d = data;
-/*     lz = l; */
-/*     rz = r; */
-
-    rc = KDirectoryFileSize (data, &lz, *l);
-    if (rc == 0)
-    {
-        rc = KDirectoryFileSize (data, &rz, *r);
-        if (rc == 0)
-        {
-            int64_t zdiff;
-
-            zdiff = lz - rz;
-            if (zdiff != 0)
-                return (zdiff < 0) ? -1 : 1;
-            else
-            {
-                size_t lsz = string_size (*l);
-                size_t rsz = string_size (*r);
-
-                return string_cmp (*l, lsz, *r, rsz, lsz+1);
-            }
-        }
-    }
-    return 0; /* dunno just leave it... */
-}
-
-
-static
-rc_t CC sort_size_then_rel_path (const KDirectory * d, struct Vector * v)
-{
-    VectorReorder (v, sort_cmp, (void*)d);
-
-    return 0;
-}
-
-
-
-
-
 static
 rc_t open_dir_as_archive (const char * path, const KFile ** file)
 {
@@ -440,7 +360,7 @@ rc_t open_dir_as_archive (const char * path, const KFile ** file)
     }
     if (rc == 0)
     {
-        rc = KDirectoryOpenTocFileRead (d, file, alignment, pnamesFilter, NULL, sort_size_then_rel_path );
+        rc = KDirectoryOpenTocFileRead ( d, file, alignment, pnamesFilter, NULL, NULL );
         KDirectoryRelease (d);
     }
     return rc;
@@ -546,14 +466,6 @@ rc_t open_out_file (const char * path, KFile ** fout)
     }
     return rc;
 }
-
-
-static
-void remove_out_file (const char * path)
-{
-    KDirectoryRemove (kdir, true, path);
-}
-
 static
 rc_t copy_file (const KFile * fin, KFile *fout)
 {
@@ -849,12 +761,6 @@ rc_t	run_kar_create(const char * archive, const char * directory)
         }
         KFileRelease (fout);
         free (directorystr);
-
-        if (rc)
-        {
-            remove_out_file (archive);
-        }
-
     }
     return rc;
 }
diff --git a/tools/kar/kar.vers b/tools/kar/kar.vers
index f90b1af..04b10b4 100644
--- a/tools/kar/kar.vers
+++ b/tools/kar/kar.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/kar/kar.vers.h b/tools/kar/kar.vers.h
new file mode 100644
index 0000000..4b110aa
--- /dev/null
+++ b/tools/kar/kar.vers.h
@@ -0,0 +1 @@
+#define KAR_VERS 0x02010007
diff --git a/tools/kar/sra-kar.c b/tools/kar/sra-kar.c
index 67d8745..2c771da 100644
--- a/tools/kar/sra-kar.c
+++ b/tools/kar/sra-kar.c
@@ -119,41 +119,6 @@ rc_t run ( srakar_parms *pb )
     KFile * outfile;
     rc_t rc;
 
-    const SRAMgr *mgr;
-
-    rc = SRAMgrMakeRead ( & mgr );
-    if ( rc != 0 )
-        LOGERR ( klogInt, rc, "failed to open SRAMgr" );
-    else
-    {
-        const SRATable *tbl;
-        rc = SRAMgrOpenTableRead ( mgr, & tbl, pb -> src_path );
-        if ( rc != 0 )
-            PLOGERR ( klogInt, (klogInt, rc,
-                "failed to open SRATable '$(spec)'", "spec=%s",
-                pb -> src_path ));
-        else
-        {
-            rc = KDirectoryCreateFile (pb->dir, &outfile, false, 0446,
-                kcmParents | ( pb->force ? kcmInit : kcmCreate) , pb->dst_path);
-            if (rc == 0)
-            {
-                const KFile * archive;
-
-                rc = SRATableMakeSingleFileArchive (tbl, &archive, pb->lite,
-                    NULL);
-                if (rc == 0)
-                {
-                    rc = copy_file (archive, outfile);
-                    KFileRelease (archive);
-                }
-                KFileRelease (outfile);
-            }
-            SRATableRelease ( tbl );
-        }
-        SRAMgrRelease (mgr);
-    }
-/*
     rc = KDirectoryCreateFile (pb->dir, &outfile, false, 0446, kcmParents | ( pb->force ? kcmInit : kcmCreate) , pb->dst_path);
 
     if (rc == 0)
@@ -185,7 +150,7 @@ rc_t run ( srakar_parms *pb )
         }
         KFileRelease (outfile);
     }
-*/
+
     return rc;
 }
 
diff --git a/tools/kar/sra-kar.vers b/tools/kar/sra-kar.vers
index f90b1af..04b10b4 100644
--- a/tools/kar/sra-kar.vers
+++ b/tools/kar/sra-kar.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/kar/sra-kar.vers.h b/tools/kar/sra-kar.vers.h
new file mode 100644
index 0000000..21cdd87
--- /dev/null
+++ b/tools/kar/sra-kar.vers.h
@@ -0,0 +1 @@
+#define SRA_KAR_VERS 0x02010007
diff --git a/tools/nenctool/Makefile b/tools/nenctool/Makefile
deleted file mode 100644
index f6a51c8..0000000
--- a/tools/nenctool/Makefile
+++ /dev/null
@@ -1,123 +0,0 @@
-# ==============================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-USE_GCC_IF_ICC = 1
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/nenctool
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS =
-
-EXT_TOOLS = \
-	nenctool
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# nenctool
-#  Copy files from one directory to another while cataloging the contents.
-#  XML files can be redirected as well.
-#
-NENCTOOL_SRC = \
-	nenctool
-
-NENCTOOL_OBJ = \
-	$(addsuffix .$(OBJX),$(NENCTOOL_SRC))
-
-NENCTOOL_LIB = \
-	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib
-
-$(BINDIR)/nenctool: $(NENCTOOL_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(NENCTOOL_LIB)
-
-#-------------------------------------------------------------------------------
-# nenctest
-#  Copy files from one directory to another while cataloging the contents.
-#  XML files can be redirected as well.
-#
-NENCTEST_SRC = \
-	nenctest
-
-NENCTEST_OBJ = \
-	$(addsuffix .$(OBJX),$(NENCTEST_SRC))
-
-NENCTEST_LIB = \
-	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkryptotest \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib
-
-$(BINDIR)/nenctest: $(NENCTEST_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(NENCTEST_LIB)
diff --git a/tools/nenctool/nenctest.c b/tools/nenctool/nenctest.c
deleted file mode 100644
index fb9fe53..0000000
--- a/tools/nenctool/nenctest.c
+++ /dev/null
@@ -1,502 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "nenctest.vers.h"
-
-#include <kapp/main.h>
-
-#include <vfs/manager.h>
-#include <vfs/path.h>
-#include <krypto/testciphermgr.h>
-#include <krypto/encfile.h>
-#include <kfs/file.h>
-
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/status.h>
-#include <klib/debug.h> /* DBGMSG */
-#include <klib/rc.h>
-
-#include <assert.h>
-
-
-/* Version  EXTERN
- *  return 4-part version code: 0xMMmmrrrr, where
- *      MM = major release
- *      mm = minor release
- *    rrrr = bug-fix release
- */
-ver_t CC KAppVersion ( void )
-{
-    return NENCTEST_VERS;
-}
-
-
-#define OPTION_FORCE   "force"
-#define ALIAS_FORCE   "f"
-static
-const char * force_usage[] = 
-{ "force overwrite of existing files", NULL };
-
-
-#define OPTION_CIPHER  "cipher"
-#define ALIAS_CIPHER   "c"
-static
-const char * cipher_usage[] = 
-{ "choose cipher version ",
-  "0-byte oritented vector", 
-  "1-vector",
-  "2-vector register",
-  "3-aes-ni",
-  "not all implementatons exist on all platforms",
-  NULL };
-static
-OptDef Options[] = 
-{
-    /* name            alias max times oparam required fmtfunc help text loc */
-    { OPTION_FORCE,  ALIAS_FORCE,  NULL, force_usage,  0, false, false },
-    { OPTION_CIPHER, ALIAS_CIPHER, NULL, cipher_usage, 1, true,  false }
-};
-
-
-
-/* Usage
- */
-const char UsageDefaultName [] = "nencvalid";
-
-rc_t CC UsageSummary (const char * progname)
-{
-    return KOutMsg (
-        "\n"
-        "Usage:\n"
-        "  %s [options] <source-file-path> <destination-file-path>\n"
-        "\n"
-        "Summary:\n"
-        "  Copy a file from the first parameter to the second parameter\n"
-        "  Encryption, decryption, or re-encryption are the expected purpose.\n"
-        "  This is a version of nenctool with some testing features added.\n"
-        "  The first added feature is some level of cipher implementation\n"
-        "  selection.\n"
-        "\n", progname);
-}
-
-static
-const char * first_usage[] = 
-{
-    "The path to a file either in native format",
-};
-
-static
-const char * second_usage[] = 
-{
-    "in 'file' URI scheme or in 'ncbi-file'",
-    "URI scheme.",
-    "\"ncbi-file\" scheme adds a query to the \"file\" scheme",
-    "where 'enc' or 'encrypt' means the file is encrypted",
-    "and 'pwfile=<path>' points to a file to get the password",
-    "or 'pwfd=<fd>' refers to a file descriptor from which to",
-    "read a password."
-};
-
-rc_t CC Usage (const Args * args)
-{
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    rc_t rc;
-
-    if (args == NULL)
-        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    else
-        rc = ArgsProgram (args, &fullpath, &progname);
-
-    UsageSummary (progname);
-
-    KOutMsg ("Parameters:\n");
-
-    HelpParamLine ("source-file-path", first_usage);
-    HelpParamLine ("destination-file-path", second_usage);
-
-    KOutMsg ("\nOptions:\n");
-
-    HelpOptionLine (ALIAS_FORCE, OPTION_FORCE, NULL, force_usage);
-    HelpOptionLine (ALIAS_CIPHER, OPTION_CIPHER, "implementation", cipher_usage);
-
-    HelpOptionsStandard ();
-
-    OUTMSG (("\n"
-             "ncbi-file uri syntax:\n"
-             "  'ncbi-file' uris are based on a combination of the standard\n"
-             "  'file' and 'http' syntax familiar to browser users.\n"
-             "  Enclosing questions marks are probably necessary.\n"
-             "\n"
-             "  URI syntax is 'scheme:'hierarchical-part'?'query'#'fragment'\n"
-             "  scheme:\n"
-             "    ncbi-file\n"
-             "  hierarchical-part:\n"
-             "    this is the same as for scheme file and can be the native form or\n"));
-    OUTMSG (("    the ncbi 'posix' format that matches most flavors of Unix.\n"
-             "    Environment variables and short hands such as '~' are not interpreted.\n"
-             "  query:\n"
-             "    Zero or two symbols separated by the '&'.  The whole query can be omitted.\n"
-             "      enc or encrypt\n"
-             "      pwfile='path to a file containing a password'\n"
-             "      pwfd='file descriptor where the password can be read'\n"
-             "    If the encrypt is present exactly one of the other two must be present.\n"
-             "  fragment:\n"
-             "    No fragment is permitted.\n"));
-    OUTMSG (("\n"
-             "password contents:\n"
-             "  The file or file descriptor containing the password is read enough to satisfy\n"
-             "  the following restriction.  The password is terminated by the end of file,\n"
-             "  a carriage return or a line feed.  The length must be no more than 4096 bytes.\n"
-             "  The password file should have limited read access to protect it.\n"));
-
-
-    OUTMSG (("\n"
-             "Use examples:"
-             "\n"
-             "  To encrypt a create a file named 'example' with a password from a file\n"
-             "  named 'password-file' to a file named 'example.nenc' all in the current\n"
-             "  directory:\n"
-             "\n"
-             "  $ %s example \"ncbi-file:example.nenc?encrypt&pwfile=password-file\"\n",
-             progname));
-    OUTMSG (("\n"
-             "  To decrypt a file named 'example.nenc' with a password from a file\n"
-             "  named 'password-file' to a file named 'example' in directories implied\n"
-             "  in the command:\n"
-             "\n"
-             "  $ %s \"ncbi-file:/home/user/downloads/example.nenc?encrypt&pwfile=/home/user/password-file\" example\n",
-             progname));
-    OUTMSG (("\n"
-             "  To change the encryption of a file from one password to another:\n"
-             "\n"
-             "  $ %s \"ncbi-file:/home/user/downloads/example.nenc?encrypt&pwfile=old-password-file\" \\\n"
-             "         \"ncbi-file:example.nenc?encrypt&pwfile=/home/user/new-password-file\"\n",
-             progname));
-
-    HelpVersion (fullpath, KAppVersion());
-
-    return rc;
-}
-
-
-static
-rc_t copy_file (const char * src, const char * dst, const KFile * fin, KFile *fout)
-{
-    rc_t rc;
-    uint8_t	buff	[64 * 1024];
-    size_t	num_read;
-    uint64_t	inpos;
-    uint64_t	outpos;
-
-    assert (src);
-    assert (dst);
-    assert (fin);
-    assert (fout);
-
-    inpos = 0;
-    outpos = 0;
-
-#if 1
-    for (inpos = 0; ; inpos += num_read)
-    {
-        rc = Quitting ();
-        if (rc)
-        {
-            LOGMSG (klogFatal, "Received quit");
-            break;
-        }
-        else
-        {
-            rc = KFileReadAll (fin, inpos, buff, sizeof (buff), &num_read);
-            if (rc)
-            {
-                PLOGERR (klogErr,
-                         (klogErr, rc,
-                          "Failed to read from file $(F) at $(P)",
-                          "F=%s,P=%lu", src, inpos));
-                break;
-            }
-            else if (num_read)
-            {
-                size_t num_writ;
-
-                rc = KFileWriteAll (fout, inpos, buff, num_read, &num_writ);
-                if (rc)
-                {
-                    PLOGERR (klogErr,
-                             (klogErr, rc,
-                              "Failed to write to file $(F) at $(P)",
-                              "F=%s,P=%lu", dst, outpos));
-                    break;
-                }
-                else if (num_writ != num_read)
-                {
-                    rc = RC (rcExe, rcFile, rcWriting, rcFile, rcInsufficient);
-                    PLOGERR (klogErr,
-                             (klogErr, rc,
-                              "Failed to write all to file $(F) at $(P)",
-                              "F=%s,P=%lu", dst, outpos));
-                    break;
-                }
-            }
-            else 
-                break;
-        }
-    }
-#else
-    do
-    {
-        rc = Quitting ();
-        if (rc)
-        {
-            LOGMSG (klogFatal, "Received quit");
-            break;
-        }
-        rc = KFileRead (fin, inpos, buff, sizeof (buff), &num_read);
-        if (rc)
-        {
-            PLOGERR (klogErr,
-                     (klogErr, rc,
-                      "Failed to read from file $(F) at $(P)",
-                      "F=%s,P=%lu", src, inpos));
-            break;
-        }
-        else if (num_read > 0)
-        {
-            size_t to_write;
-
-            inpos += (uint64_t)num_read;
-
-            STSMSG (2, ("Read %zu bytes to %lu", num_read, inpos));
-
-            to_write = num_read;
-            while (to_write > 0)
-            {
-                size_t num_writ;
-                rc = KFileWrite (fout, outpos, buff, num_read, &num_writ);
-                if (rc)
-                {
-                    PLOGERR (klogErr,
-                             (klogErr, rc,
-                              "Failed to write to file $(F) at $(P)",
-                              "F=%s,P=%lu", dst, outpos));
-                    break;
-                }
-                outpos += num_writ;
-                to_write -= num_writ;
-            }
-        }
-        if (rc)
-            break;
-    } while (num_read != 0);
-#endif
-    return rc;
-}
-
-
-static
-rc_t nenctest (const char * srcstr, const char * dststr, bool force)
-{
-    VFSManager * mgr;
-    rc_t rc;
-
-    rc = VFSManagerMake (&mgr);
-    if (rc)
-        LOGERR (klogInt, rc, "failed to create file system manager");
-    else
-    {
-        VPath * srcpath;
-
-        rc = VPathMake (&srcpath, srcstr);
-        if (rc)
-            PLOGERR (klogErr,
-                     (klogErr, rc, "Failed to parse source path '$(path)'",
-                      "path=%s", srcstr));
-        else
-        {
-            VPath * dstpath;
-
-            rc = VPathMake (&dstpath, dststr);
-            if (rc)
-                PLOGERR (klogErr,
-                         (klogErr, rc, "Failed to parse destination path '$(path)'",
-                          "path=%s", dststr));
-            else
-            {
-                const KFile * srcfile;
-
-                rc = VFSManagerOpenFileRead (mgr, &srcfile, srcpath);
-                if (rc)
-                    PLOGERR (klogErr,
-                             (klogErr, rc, "Failed to open source path '$(path)'",
-                              "path=%s", srcstr));
-                else
-                {
-                    KFile * dstfile;
-
-                    rc = VFSManagerCreateFile (mgr, &dstfile, false, 0666,
-                                               kcmParents | (force ? kcmInit : kcmCreate),
-                                               dstpath);
-                    if (rc)
-                        PLOGERR (klogErr,
-                                 (klogErr, rc, "failed to open destination path '$(path)'",
-                                  "path=%s", dststr));
-                    else
-                    {
-                        rc = copy_file (srcstr, dststr, srcfile, dstfile);
-                        if (rc)
-                        {
-                            PLOGERR (klogErr,
-                                     (klogErr, rc, "failed to copy '$(S)' to '$(D)'",
-                                      "S=%s,D=%s", srcstr, dststr));
-
-                            VFSManagerRemove (mgr, true, dstpath);
-                        }
-
-                        KFileRelease (dstfile);
-                    }
-                    KFileRelease (srcfile);
-                }
-                VPathRelease (dstpath);
-            }
-            VPathRelease (srcpath);
-        }
-        VFSManagerRelease (mgr);
-    }
-    return rc;
-}
-
-
-/* KMain - EXTERN
- *  executable entrypoint "main" is implemented by
- *  an OS-specific wrapper that takes care of establishing
- *  signal handlers, logging, etc.
- *
- *  in turn, OS-specific "main" will invoke "KMain" as
- *  platform independent main entrypoint.
- *
- *  "argc" [ IN ] - the number of textual parameters in "argv"
- *  should never be < 0, but has been left as a signed int
- *  for reasons of tradition.
- *
- *  "argv" [ IN ] - array of NUL terminated strings expected
- *  to be in the shell-native character set: ASCII or UTF-8
- *  element 0 is expected to be executable identity or path.
- */
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args* args = NULL;
-    rc_t rc;
-
-    rc = ArgsMakeAndHandle(&args, argc, argv, 1, Options, sizeof Options / sizeof (OptDef));
-    if (rc)
-        LOGERR (klogInt, rc, "failed to parse command line parameters");
-    if (rc == 0)
-    {
-        uint32_t pcount;
-        bool force;
-
-        rc = ArgsOptionCount (args, OPTION_FORCE, &pcount);
-        if (rc)
-            LOGERR (klogInt, rc, "failed to examine force option");
-        else
-        {
-            force = (pcount > 0);
- 
-            rc = ArgsOptionCount (args, OPTION_CIPHER, &pcount);
-            if (rc)
-                LOGERR (klogInt, rc, "failed to examine cipher option");
-            else
-            {
-                if (pcount)
-                {
-                    const char * value;
-
-                    rc = ArgsOptionValue (args, OPTION_CIPHER, 0, &value);
-                    if (rc)
-                        LOGERR (klogInt, rc, "failed to examine cipher value");
-                    else
-                    {
-                        if (value[1])
-                            rc = RC (rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-                        else
-                            switch (value[0])
-                            {
-                            case '0':
-                            case '1':
-                            case '2':
-                            case '3':
-                                KCipherSubType = value[0] - '0';
-                                break;
-                            default:
-                                rc = RC (rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-                                break;
-                            }
-                        if (rc)
-                            LOGERR (klogErr, rc, "bad value for cipher implmentation");
-                    }
-                }
-                if (rc == 0)
-                {
-                    rc = ArgsParamCount (args, &pcount);
-                    if (rc)
-                        LOGERR (klogInt, rc, "failed to count parameters");
-                    else
-                    {
-                        if (pcount != 2)
-                            MiniUsage (args);
-                        else
-                        {
-                            const char * src;
-
-                            rc = ArgsParamValue (args, 0, &src);
-                            if (rc)
-                                LOGERR (klogInt, rc, "failed to get source parameter");
-                            else
-                            {
-                                const char * dst;
-                                rc = ArgsParamValue (args, 1, &dst);
-                                if (rc)
-                                    LOGERR (klogInt, rc, "failed to get destination parameter");
-                                else
-                                {
-                                    rc = nenctest (src, dst, force);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        ArgsWhack (args);
-    }
-    STSMSG (1, ("exiting: %R (%u)", rc, rc));
-    return rc;
-}
-
-/* EOF */
diff --git a/tools/nenctool/nenctest.vers b/tools/nenctool/nenctest.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/nenctool/nenctest.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/nenctool/nenctool.c b/tools/nenctool/nenctool.c
deleted file mode 100644
index 3cf5f5f..0000000
--- a/tools/nenctool/nenctool.c
+++ /dev/null
@@ -1,446 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "nenctool.vers.h"
-
-#include <kapp/main.h>
-
-#include <vfs/manager.h>
-#include <vfs/path.h>
-#include <krypto/encfile.h>
-#include <kfs/file.h>
-
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/status.h>
-#include <klib/debug.h> /* DBGMSG */
-#include <klib/rc.h>
-
-#include <assert.h>
-
-
-/* Version  EXTERN
- *  return 4-part version code: 0xMMmmrrrr, where
- *      MM = major release
- *      mm = minor release
- *    rrrr = bug-fix release
- */
-ver_t CC KAppVersion ( void )
-{
-    return NENCTOOL_VERS;
-}
-
-
-#define OPTION_FORCE   "force"
-#define ALIAS_FORCE   "f"
-static
-const char * force_usage[] = 
-{ "force overwrite of existing files", NULL };
-static
-OptDef Options[] = 
-{
-    /* name            alias max times oparam required fmtfunc help text loc */
-    { OPTION_FORCE,   ALIAS_FORCE,   NULL, force_usage,   0, false, false }
-};
-
-
-
-/* Usage
- */
-const char UsageDefaultName [] = "nencvalid";
-
-rc_t CC UsageSummary (const char * progname)
-{
-    return KOutMsg (
-        "\n"
-        "Usage:\n"
-        "  %s [options] <source-file-path> <destination-file-path>\n"
-        "\n"
-        "Summary:\n"
-        "  Copy a file from the first parameter to the second parameter\n"
-        "  Encryption, decryption, or re-encryption are the expected purpose.\n"
-        "\n", progname);
-}
-
-static
-const char * first_usage[] = 
-{
-    "The path to a file either in native format",
-};
-
-static
-const char * second_usage[] = 
-{
-    "in 'file' URI scheme or in 'ncbi-file'",
-    "URI scheme.",
-    "\"ncbi-file\" scheme adds a query to the \"file\" scheme",
-    "where 'enc' or 'encrypt' means the file is encrypted",
-    "and 'pwfile=<path>' points to a file to get the password",
-    "or 'pwfd=<fd>' refers to a file descriptor from which to",
-    "read a password."
-};
-
-rc_t CC Usage (const Args * args)
-{
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    rc_t rc;
-
-    if (args == NULL)
-        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    else
-        rc = ArgsProgram (args, &fullpath, &progname);
-
-    UsageSummary (progname);
-
-    KOutMsg ("Parameters:\n");
-
-    HelpParamLine ("source-file-path", first_usage);
-    HelpParamLine ("destination-file-path", second_usage);
-
-    KOutMsg ("\nOptions:\n");
-
-    HelpOptionLine (ALIAS_FORCE, OPTION_FORCE, NULL, force_usage);
-
-    HelpOptionsStandard ();
-
-    OUTMSG (("\n"
-             "ncbi-file uri syntax:\n"
-             "  'ncbi-file' uris are based on a combination of the standard\n"
-             "  'file' and 'http' syntax familiar to browser users.\n"
-             "  Enclosing questions marks are probably necessary.\n"
-             "\n"
-             "  URI syntax is 'scheme:'hierarchical-part'?'query'#'fragment'\n"
-             "  scheme:\n"
-             "    ncbi-file\n"
-             "  hierarchical-part:\n"
-             "    this is the same as for scheme file and can be the native form or\n"));
-    OUTMSG (("    the ncbi 'posix' format that matches most flavors of Unix.\n"
-             "    Environment variables and short hands such as '~' are not interpreted.\n"
-             "  query:\n"
-             "    Zero or two symbols separated by the '&'.  The whole query can be omitted.\n"
-             "      enc or encrypt\n"
-             "      pwfile='path to a file containing a password'\n"
-             "      pwfd='file descriptor where the password can be read'\n"
-             "    If the encrypt is present exactly one of the other two must be present.\n"
-             "  fragment:\n"
-             "    No fragment is permitted.\n"));
-    OUTMSG (("\n"
-             "password contents:\n"
-             "  The file or file descriptor containing the password is read enough to satisfy\n"
-             "  the following restriction.  The password is terminated by the end of file,\n"
-             "  a carriage return or a line feed.  The length must be no more than 4096 bytes.\n"
-             "  The password file should have limited read access to protect it.\n"));
-
-
-    OUTMSG (("\n"
-             "Use examples:"
-             "\n"
-             "  To encrypt a create a file named 'example' with a password from a file\n"
-             "  named 'password-file' to a file named 'example.nenc' all in the current\n"
-             "  directory:\n"
-             "\n"
-             "  $ %s example \"ncbi-file:example.nenc?encrypt&pwfile=password-file\"\n",
-             progname));
-    OUTMSG (("\n"
-             "  To decrypt a file named 'example.nenc' with a password from a file\n"
-             "  named 'password-file' to a file named 'example' in directories implied\n"
-             "  in the command:\n"
-             "\n"
-             "  $ %s \"ncbi-file:/home/user/downloads/example.nenc?encrypt&pwfile=/home/user/password-file\" example\n",
-             progname));
-    OUTMSG (("\n"
-             "  To change the encryption of a file from one password to another:\n"
-             "\n"
-             "  $ %s \"ncbi-file:/home/user/downloads/example.nenc?encrypt&pwfile=old-password-file\" \\\n"
-             "         \"ncbi-file:example.nenc?encrypt&pwfile=/home/user/new-password-file\"\n",
-             progname));
-
-    HelpVersion (fullpath, KAppVersion());
-
-    return rc;
-}
-
-
-static
-rc_t copy_file (const char * src, const char * dst, const KFile * fin, KFile *fout)
-{
-    rc_t rc;
-    uint8_t	buff	[64 * 1024];
-    size_t	num_read;
-    uint64_t	inpos;
-    uint64_t	outpos;
-
-    assert (src);
-    assert (dst);
-    assert (fin);
-    assert (fout);
-
-    inpos = 0;
-    outpos = 0;
-
-#if 1
-    for (inpos = 0; ; inpos += num_read)
-    {
-        rc = Quitting ();
-        if (rc)
-        {
-            LOGMSG (klogFatal, "Received quit");
-            break;
-        }
-        else
-        {
-            rc = KFileReadAll (fin, inpos, buff, sizeof (buff), &num_read);
-            if (rc)
-            {
-                PLOGERR (klogErr,
-                         (klogErr, rc,
-                          "Failed to read from file $(F) at $(P)",
-                          "F=%s,P=%lu", src, inpos));
-                break;
-            }
-            else if (num_read)
-            {
-                size_t num_writ;
-
-                rc = KFileWriteAll (fout, inpos, buff, num_read, &num_writ);
-                if (rc)
-                {
-                    PLOGERR (klogErr,
-                             (klogErr, rc,
-                              "Failed to write to file $(F) at $(P)",
-                              "F=%s,P=%lu", dst, outpos));
-                    break;
-                }
-                else if (num_writ != num_read)
-                {
-                    rc = RC (rcExe, rcFile, rcWriting, rcFile, rcInsufficient);
-                    PLOGERR (klogErr,
-                             (klogErr, rc,
-                              "Failed to write all to file $(F) at $(P)",
-                              "F=%s,P=%lu", dst, outpos));
-                    break;
-                }
-            }
-            else 
-                break;
-        }
-    }
-#else
-    do
-    {
-        rc = Quitting ();
-        if (rc)
-        {
-            LOGMSG (klogFatal, "Received quit");
-            break;
-        }
-        rc = KFileRead (fin, inpos, buff, sizeof (buff), &num_read);
-        if (rc)
-        {
-            PLOGERR (klogErr,
-                     (klogErr, rc,
-                      "Failed to read from file $(F) at $(P)",
-                      "F=%s,P=%lu", src, inpos));
-            break;
-        }
-        else if (num_read > 0)
-        {
-            size_t to_write;
-
-            inpos += (uint64_t)num_read;
-
-            STSMSG (2, ("Read %zu bytes to %lu", num_read, inpos));
-
-            to_write = num_read;
-            while (to_write > 0)
-            {
-                size_t num_writ;
-                rc = KFileWrite (fout, outpos, buff, num_read, &num_writ);
-                if (rc)
-                {
-                    PLOGERR (klogErr,
-                             (klogErr, rc,
-                              "Failed to write to file $(F) at $(P)",
-                              "F=%s,P=%lu", dst, outpos));
-                    break;
-                }
-                outpos += num_writ;
-                to_write -= num_writ;
-            }
-        }
-        if (rc)
-            break;
-    } while (num_read != 0);
-#endif
-    return rc;
-}
-
-
-static
-rc_t nenctool (const char * srcstr, const char * dststr, bool force)
-{
-    VFSManager * mgr;
-    rc_t rc;
-
-    rc = VFSManagerMake (&mgr);
-    if (rc)
-        LOGERR (klogInt, rc, "failed to create file system manager");
-    else
-    {
-        VPath * srcpath;
-
-        rc = VPathMake (&srcpath, srcstr);
-        if (rc)
-            PLOGERR (klogErr,
-                     (klogErr, rc, "Failed to parse source path '$(path)'",
-                      "path=%s", srcstr));
-        else
-        {
-            VPath * dstpath;
-
-            rc = VPathMake (&dstpath, dststr);
-            if (rc)
-                PLOGERR (klogErr,
-                         (klogErr, rc, "Failed to parse destination path '$(path)'",
-                          "path=%s", dststr));
-            else
-            {
-                const KFile * srcfile;
-
-                rc = VFSManagerOpenFileRead (mgr, &srcfile, srcpath);
-                if (rc)
-                    PLOGERR (klogErr,
-                             (klogErr, rc, "Failed to open source path '$(path)'",
-                              "path=%s", srcstr));
-                else
-                {
-                    KFile * dstfile;
-
-                    rc = VFSManagerCreateFile (mgr, &dstfile, false, 0666,
-                                               kcmParents | (force ? kcmInit : kcmCreate),
-                                               dstpath);
-                    if (rc)
-                        PLOGERR (klogErr,
-                                 (klogErr, rc, "failed to open destination path '$(path)'",
-                                  "path=%s", dststr));
-                    else
-                    {
-                        rc = copy_file (srcstr, dststr, srcfile, dstfile);
-                        if (rc)
-                        {
-                            PLOGERR (klogErr,
-                                     (klogErr, rc, "failed to copy '$(S)' to '$(D)'",
-                                      "S=%s,D=%s", srcstr, dststr));
-
-                            VFSManagerRemove (mgr, true, dstpath);
-                        }
-
-                        KFileRelease (dstfile);
-                    }
-                    KFileRelease (srcfile);
-                }
-                VPathRelease (dstpath);
-            }
-            VPathRelease (srcpath);
-        }
-        VFSManagerRelease (mgr);
-    }
-    return rc;
-}
-
-
-/* KMain - EXTERN
- *  executable entrypoint "main" is implemented by
- *  an OS-specific wrapper that takes care of establishing
- *  signal handlers, logging, etc.
- *
- *  in turn, OS-specific "main" will invoke "KMain" as
- *  platform independent main entrypoint.
- *
- *  "argc" [ IN ] - the number of textual parameters in "argv"
- *  should never be < 0, but has been left as a signed int
- *  for reasons of tradition.
- *
- *  "argv" [ IN ] - array of NUL terminated strings expected
- *  to be in the shell-native character set: ASCII or UTF-8
- *  element 0 is expected to be executable identity or path.
- */
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args* args = NULL;
-    rc_t rc;
-
-    rc = ArgsMakeAndHandle(&args, argc, argv, 1, Options, sizeof Options / sizeof (OptDef));
-    if (rc)
-        LOGERR (klogInt, rc, "failed to parse command line parameters");
-    if (rc == 0)
-    {
-        uint32_t pcount;
-        bool force;
-
-        rc = ArgsOptionCount (args, OPTION_FORCE, &pcount);
-        if (rc)
-            LOGERR (klogInt, rc, "failed to examine force option");
-        else
-        {
-            force = (pcount > 0);
-
-            rc = ArgsParamCount (args, &pcount);
-            if (rc)
-                LOGERR (klogInt, rc, "failed to count parameters");
-            else
-            {
-                if (pcount != 2)
-                    MiniUsage (args);
-                else
-                {
-                    const char * src;
-
-                    rc = ArgsParamValue (args, 0, &src);
-                    if (rc)
-                        LOGERR (klogInt, rc, "failed to get source parameter");
-                    else
-                    {
-                        const char * dst;
-                        rc = ArgsParamValue (args, 1, &dst);
-                        if (rc)
-                            LOGERR (klogInt, rc, "failed to get destination parameter");
-                        else
-                        {
-                            rc = nenctool (src, dst, force);
-                        }
-                    }
-                }
-            }
-        }
-        ArgsWhack (args);
-    }
-    STSMSG (1, ("exiting: %R (%u)", rc, rc));
-    return rc;
-}
-
-/* EOF */
diff --git a/tools/nenctool/nenctool.vers b/tools/nenctool/nenctool.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/nenctool/nenctool.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/nencvalid/Makefile b/tools/nencvalid/Makefile
deleted file mode 100644
index 2628e5e..0000000
--- a/tools/nencvalid/Makefile
+++ /dev/null
@@ -1,111 +0,0 @@
-# ==============================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/nencvalid
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS =
-
-EXT_TOOLS = \
-	nencvalid
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_TOOLS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_LIBS)) $(addsuffix _tag,$(ALL_TOOLS))
-
-#-------------------------------------------------------------------------------
-# nencvalid
-#  Copy files from one directory to another while cataloging the contents.
-#  XML files can be redirected as well.
-#
-NENCVALID_SRC = \
-	nencvalid
-
-NENCVALID_OBJ = \
-	$(addsuffix .$(OBJX),$(NENCVALID_SRC))
-
-NENCVALID_LIB = \
-	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib
-
-$(BINDIR)/nencvalid: $(NENCVALID_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(NENCVALID_LIB)
-
-nencvalid_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) nencvalid $(NENCVALID_OBJ)
-
-
-
diff --git a/tools/nencvalid/nencvalid.c b/tools/nencvalid/nencvalid.c
deleted file mode 100644
index f3833fc..0000000
--- a/tools/nencvalid/nencvalid.c
+++ /dev/null
@@ -1,683 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "nencvalid.vers.h"
-
-#include <kapp/main.h>
-
-#include <vfs/manager.h>
-#include <vfs/path.h>
-
-#include <krypto/encfile.h>
-#include <krypto/wgaencrypt.h>
-
-#include <kfs/file.h>
-#include <kfs/buffile.h>
-
-#include <klib/log.h>
-#include <klib/status.h>
-#include <klib/out.h>
-#include <klib/debug.h> /* DBGMSG */
-#include <klib/rc.h>
-#include <klib/text.h>
-
-#include <assert.h>
-#include <stdlib.h>
-
-/* Version  EXTERN
- *  return 4-part version code: 0xMMmmrrrr, where
- *      MM = major release
- *      mm = minor release
- *    rrrr = bug-fix release
- */
-ver_t CC KAppVersion ( void )
-{
-    return NENCVALID_VERS;
-}
-
-#define OPTION_DECRYPT_BIN_COMPATIBILITY "compatibility-mode"
-/* "decrypt.bin" */
-
-static
-OptDef Options[] = 
-{
-    /* private option for decrypt.bin script */
-    { OPTION_DECRYPT_BIN_COMPATIBILITY, NULL,        NULL, NULL,        0, false, false }
-};
-
-enum CompatibilityModeExitCode
-{
-    CMEC_NO_ERROR = 0,
-    CMEC_BAD_TYPE = 100,
-    CMEC_BAD_HEADER = 101,
-    CMEC_TRUNCATED = 102,
-    CMEC_EXCESS = 103,
-    CMEC_NO_CHECKSUM = 104,
-    CMEC_NO_PASSWORD = 105,
-    CMEC_BAD_CHECKSUM = 106
-};
-
-/* Usage
- */
-const char UsageDefaultName [] = "nencvalid";
-
-rc_t CC UsageSummary (const char * progname)
-{
-    return KOutMsg (
-        "\n"
-        "Usage:\n"
-        "  %s [options] <file-path> [ <file-path> ...]\n"
-        "\n"
-        "Summary:\n"
-        "  Validate the consistency of NCBI format encrypted files\n"
-        "\n", progname);
-}
-
-static
-const char * param_usage[] = 
-{
-    "A file in an NCBI encrypted file format.", 
-    "The first version encrypted file format",
-    "needs a password to validate the content",
-    "while the second version does not.  If the",
-    "ncbi-file uri format is used if you ask",
-    "file decryption (encrypt in the query)",
-    "the validation will be on the decrypted",
-    "file which might not be the intention.",
-    "The password if needed for validation will",
-    "have to be in the standard NCBI VDB",
-    "configuration as 'krypto/pwfile' or ",
-    "referenced by the environment variable",
-    "VDB_PWFILE or Config parameter", NULL
-};
-
-rc_t CC Usage (const Args * args)
-{
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    rc_t rc;
-
-    if (args == NULL)
-        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    else
-        rc = ArgsProgram (args, &fullpath, &progname);
-
-    UsageSummary (progname);
-
-    KOutMsg ("Parameters:\n");
-
-    HelpParamLine ("file-path", param_usage);
-
-    KOutMsg ("\nOptions:\n");
-
-    HelpOptionsStandard ();
-
-    HelpVersion (fullpath, KAppVersion());
-
-    return rc;
-}
-
-static rc_t wga_log_error (const char * path, rc_t rc, bool decrypt_bin_compatible)
-{
-    switch (GetRCObject(rc))
-    {
-    case rcSize:
-        switch (GetRCState(rc))
-        {
-        case rcExcessive:
-            if (decrypt_bin_compatible)
-                exit (CMEC_EXCESS);
-            PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                              "probably mis-concatenated file '$(P)'",
-                              "P=%s", path));
-            return rc;
-
-        case rcInsufficient:
-            if (decrypt_bin_compatible)
-                exit (CMEC_TRUNCATED);
-            PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                              "probably truncated file '$(P)'",
-                              "P=%s", path));
-            return rc;
-
-        default:
-            break;
-        }
-        break;
-
-    case rcChecksum:
-        switch (GetRCState(rc))
-        {
-        case rcInvalid:
-            if (decrypt_bin_compatible)
-                exit (CMEC_BAD_CHECKSUM);
-            PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                              "checksum of contents '$(P)'",
-                              "P=%s", path));
-            return rc;
-
-        case rcNull:
-            if (decrypt_bin_compatible)
-                exit (CMEC_NO_CHECKSUM);
-            PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                              "checksum of contents without password '$(P)'",
-                              "P=%s", path));
-            return 0;
-
-        default:
-            break;
-        }
-        break;
-
-    case rcConstraint:
-        switch (GetRCState(rc))
-        {
-        case rcCorrupt:
-            if (decrypt_bin_compatible)
-                exit (CMEC_BAD_CHECKSUM);
-            PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                              "checksum of contents '$(P)'",
-                              "P=%s", path));
-            return rc;
-
-        default:
-            break;
-        }
-        break;
-
-    case rcEncryption:
-        switch (GetRCState(rc))
-        {
-        case rcNull:
-            if (decrypt_bin_compatible)
-                exit (CMEC_NO_PASSWORD);
-            LOGERR (klogWarn, rc, "length validated but content not checked without a password");
-            return 0;
-
-        case rcNotFound:
-            if (decrypt_bin_compatible)
-                exit (CMEC_NO_CHECKSUM);
-            LOGERR (klogWarn, rc, "length validated but content not has no checksum");
-            return 0;
-
-        default:
-            break;
-        }
-        break;
-
-    default:
-        break;
-    }
-    PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                      "with non-specified error file "
-                      "'$(P)'", "P=%s", path));
-    return rc;
-}
-
-static rc_t nencvalidWGAEncValidate (const char * path, const KFile * file, VFSManager * mgr, bool decrypt_bin_compatible)
-{
-    rc_t rc;
-    size_t ppathz;
-    char ppath [4097];
-    size_t pwz;
-    char   pw [8192];
-    bool error_logged = false;
-
-    rc = VFSManagerGetConfigPWFile (mgr, ppath, sizeof (ppath) - 1, &ppathz);
-
-    /* failure to read configuration */
-    if (rc)
-    {
-        if (GetRCState(rc) != rcNotFound)
-        {
-            LOGERR (klogInt, rc, "unable to read configuration to get password file");
-            error_logged = true;
-        }
-        else
-        {
-            LOGERR (klogWarn, rc, "no password file configured file content will not be validated");
-
-            /* configuration did not contain a password file so set it to nul */
-            pw[0] = '\0';
-            pwz = 0;
-            rc = 0;
-        }
-    }
-    /* we got a password file from configuration */
-    else
-    {
-        VPath * vpath;
-
-        pwz = 0;
-
-        /* force to ASCIZ which is probably redundant */
-        ppath[ppathz] = '\0';
-
-        rc = VPathMake (&vpath, ppath);
-        if (rc)
-        {
-            PLOGERR (klogInt, (klogInt, rc, "unable to create vpath for "
-                               "password file '$(P)'", "P=%s", ppath));
-            error_logged = true;
-        }
-        else
-        {
-            const KFile * pwfile;
-
-            rc = VFSManagerOpenFileRead (mgr, &pwfile, vpath);
-            if (rc)
-            {
-                PLOGERR (klogInt, (klogInt, rc, "unable to open "
-                                   "password file '$(P)'", "P=%s", ppath));
-                error_logged = true;
-            }
-            else
-            {
-                rc = KFileReadAll (pwfile, 0, pw, sizeof pw - 1, &pwz);
-                if (rc)
-                {
-                    PLOGERR (klogInt, (klogInt, rc, "unable to read "
-                                       "password file '$(P)'", "P=%s", ppath));
-                    error_logged = true;
-                }
-
-                else
-                {
-                    char * pc;
-
-                    pc = string_chr (pw, pwz, '\n');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        pwz = pc - pw;
-                    }
-
-                    pc = string_chr (pw, pwz, '\r');
-                    if (pc)
-                    {
-                        *pc = '\0';
-                        pwz = pc - pw;
-                    }
-
-                    if (pwz == sizeof pw-1)
-                    {
-                        rc = RC (rcExe, rcFile, rcAccessing, rcBuffer, rcInsufficient);
-                        PLOGERR (klogInt, (klogInt, rc, "password too long in "
-                                           "password file '$(P)' ignoring", "P=%s", ppath));
-                        pwz = 0;
-                    }
-                }
-                KFileRelease (pwfile);
-            }
-            VPathRelease (vpath);
-        }
-    }
-
-    if (rc == 0)
-    {
-        rc = WGAEncValidate (file, pw, pwz);
-        if (rc)
-            rc =  wga_log_error (path, rc, decrypt_bin_compatible);
-    }
-    return rc;
-}
-
-
-/*
- * do out thing on a single file name
- */
-static
-rc_t HandleOneFile (VFSManager * mgr, const char * path, bool decrypt_bin_compatible)
-{
-    rc_t rc;
-    VPath * vpath;
-
-    rc = VPathMake (&vpath, path);
-    if (rc)
-        PLOGERR (klogErr,
-                 (klogErr, rc, "failed to parse path "
-                  "parameter '$(P)'", "P=%s", path));
-
-    else
-    {
-        const KFile * file;
-
-        rc = VFSManagerOpenFileRead (mgr, &file, vpath);
-        if (rc)
-            PLOGERR (klogErr,
-                     (klogErr, rc, "failed to parse path "
-                      "parameter '$(P)'", "P=%s", path));
-
-        else
-        {
-            size_t  buffread;
-            const KFile * buffile;
-
-            rc = KBufFileMakeRead (&buffile, file, 64*1024);
-            if (rc)
-                LOGERR (klogInt, rc, "unable to buffer file");
-            else
-            {
-                /* the two current encrypted file types have an 8 byte signature (magic(
-                 * at the beginning of the file.  If these 8 don't match we don't even call it
-                 * an encrypted file at all */
-                char buffer [8];
-
-                rc = KFileRead (buffile, 0, buffer, sizeof buffer, &buffread);
-                if (rc)
-                    LOGERR (klogInt, rc, "Unable to read file signature");
-                else
-                {
-                    if (buffread < sizeof buffer)
-                    {
-                        if (decrypt_bin_compatible)
-                            exit (CMEC_BAD_TYPE);
-                        else
-                        {
-                            rc = RC (rcExe, rcFile, rcValidating, rcHeader, rcWrongType);
-                            LOGERR (klogErr, rc, "File too short to be encrypted file");
-                        }
-                    }
-                    else
-                    {
-                        rc = KFileIsEnc (buffer, sizeof buffer);
-
-                        switch (GetRCState(rc))
-                        {
-                        case 0:
-                        case rcInsufficient:
-                            rc = KEncFileValidate (buffile);
-                            if (rc)
-                            {
-                                switch (GetRCObject(rc))
-                                {
-                                    /* unsuable header */
-                                case rcHeader:
-                                case rcByteOrder:
-                                    if (decrypt_bin_compatible)
-                                        exit (CMEC_BAD_HEADER);
-                                    PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                                                      "with a bad header file '$(P)'",
-                                                      "P=%s", path));
-                                    break;
-
-                                case rcFile:
-                                    switch (GetRCState(rc))
-                                    {
-                                        /* bad block count in the footer: guess it was a truncataiont
-                                         * an inconvienent point */
-                                    case rcCorrupt:
-                                        /* block read was neither a block nor a footer */
-                                    case rcInsufficient:
-                                        if (decrypt_bin_compatible)
-                                            exit (CMEC_TRUNCATED);
-                                        PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                                                          "probably truncated file '$(P)'",
-                                                          "P=%s", path));
-
-                                        break;
-                                    default:
-                                        PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                                                          "with non-specified error file "
-                                                          "'$(P)'", "P=%s", path));
-
-                                        break;
-                                    }
-                                    break;
-
-                                case rcCrc:
-                                    if (decrypt_bin_compatible)
-                                        exit (CMEC_BAD_CHECKSUM);
-                                    PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                                                      "with good length but bad checksum file "
-                                                      "'$(P)'", "P=%s", path));
-                                    break;
-
-                                default:
-                                    PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                                                      "with non-specified error file "
-                                                      "'$(P)'", "P=%s", path));
-                                    break;
-                                }
-                            }
-                            else
-                                STSMSG (1, ("validated file content and size for '%s'\n", path));
-                            break;
-
-                        case rcWrongType:
-                            rc = KFileIsWGAEnc (buffer, buffread);
-                            switch (GetRCState(rc))
-                            {
-                            case 0:
-                                rc = nencvalidWGAEncValidate (path, buffile, mgr, decrypt_bin_compatible);
-                                break;
-
-                            case rcWrongType:
-                                if (decrypt_bin_compatible)
-                                    exit (CMEC_BAD_TYPE);
-                                STSMSG (1, ("'%s' is not an encrypted file", path));
-                                break;
-
-                            default:
-                                break;
-                            }
-
-                        default:
-                            if (rc)
-                                PLOGERR (klogErr,(klogErr, rc, "failed to validate "
-                                                  "with non-specified error file "
-                                                  "'$(P)'", "P=%s", path));
-                            break;
-                        }
-                    }
-                }
-                KFileRelease (buffile);
-            }
-            KFileRelease (file);
-        }
-        VPathRelease (vpath);
-    }
-    if (rc)
-        STSMSG (1, ("failed validation '%s'", path));
-    else
-        STSMSG (1, ("passed validation '%s'", path));
-
-    return rc;
-}
-
-
-/*
- * params are file names so retrienve them one by one and process them
- */
-static __inline__
-rc_t HandleParams (VFSManager * mgr, Args * args, uint32_t pcount)
-{
-    rc_t rc;
-    rc_t orc;
-    uint32_t ix;
-
-    rc = orc = 0;
-    for (ix = 0; (ix < pcount); ++ix)
-    {
-        const char * pc;
-
-        rc = ArgsParamValue (args, ix, &pc);
-        if (rc)
-            PLOGERR (klogErr, 
-                     (klogErr, rc, "failed to retrieve "
-                      "parameter '$(P)'", "P=%u", ix));
-        else
-        {
-            /*
-             * we will return rc but use orc to handle
-             * the return error code form the first found error on a parameter
-             * though we will continue to process all file parameters
-             */
-            orc = HandleOneFile (mgr, pc, false);
-            if (rc == 0)
-                rc = orc;
-        }
-    }
-    return rc;
-}
-
-
-/*
- * handle the command line options then handle the file name parameters
- */
-static __inline__
-rc_t HandleOptions (Args * args)
-{
-    uint32_t pcount;
-    rc_t rc;
-
-    rc = ArgsParamCount (args, &pcount);
-    if (rc)
-        LOGERR (klogInt, rc, "failed to count parameters");
-
-    else
-    {
-        if (pcount == 0)
-            MiniUsage(args);
-
-        else
-        {
-            uint32_t ocount;
-
-            rc = ArgsOptionCount (args, OPTION_QUIET, &ocount);
-            if (rc)
-                LOGERR (klogInt, rc, "failed to retrieve quiet option");
-
-            else
-            {
-                bool quiet;
-
-                quiet = (ocount != 0);
-
-                rc = ArgsOptionCount (args, OPTION_DECRYPT_BIN_COMPATIBILITY, &ocount);
-                if (rc)
-                    LOGERR (klogInt, rc, "failed to retrieve compatibility option");
-
-                else
-                {
-                    VFSManager * mgr;
-
-                    rc = VFSManagerMake (&mgr);
-                    if (rc)
-                        LOGERR (klogErr, rc, "failed to open file system manager");
-
-                    else
-                    {
-                        bool decrypt_bin_compatible;
-
-                        if (ocount == 0)
-                            decrypt_bin_compatible = false;
-
-                        else
-                            decrypt_bin_compatible = true;
-
-
-                        if (quiet)
-                        {
-                            KStsLevelSet (0);
-                            KLogLevelSet (0);
-                        }
-                        else if (!decrypt_bin_compatible)
-                        {
-                            if (KStsLevelGet() == 0)
-                                KStsLevelSet(1);
-                        }
-
-
-                        if (decrypt_bin_compatible)
-                        {
-                            if (pcount > 1)
-                            {
-                                rc = RC (rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
-                                LOGERR (0, rc, "compatibility mode can only handle one file parameter");
-                            }
-                            else
-                            {
-                                const char * pc;
-
-                                rc = ArgsParamValue (args, 0, &pc);
-                                if (rc)
-                                    LOGERR (0, rc, "unable to retrieve file parameter");
-
-                                if (rc == 0)
-                                    rc = HandleOneFile (mgr, pc, true); 
-                            }
-                        }
-                        else
-                        {
-                            rc = HandleParams (mgr, args, pcount);
-                        }
-                    
-                        VFSManagerRelease (mgr);
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
- 
-
-/* KMain - EXTERN
- *  executable entrypoint "main" is implemented by
- *  an OS-specific wrapper that takes care of establishing
- *  signal handlers, logging, etc.
- *
- *  in turn, OS-specific "main" will invoke "KMain" as
- *  platform independent main entrypoint.
- *
- *  "argc" [ IN ] - the number of textual parameters in "argv"
- *  should never be < 0, but has been left as a signed int
- *  for reasons of tradition.
- *
- *  "argv" [ IN ] - array of NUL terminated strings expected
- *  to be in the shell-native character set: ASCII or UTF-8
- *  element 0 is expected to be executable identity or path.
- */
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args* args = NULL;
-    rc_t rc;
-
-    rc = ArgsMakeAndHandle(&args, argc, argv, 1, Options, sizeof Options / sizeof (Options[0]) );
-    if (rc)
-        LOGERR (klogInt, rc, "failed to parse command line parameters");
-    if (rc == 0)
-    {
-        rc = HandleOptions (args);
-
-        ArgsWhack (args);
-    }
-    STSMSG (2,("exiting: %R (%u)", rc, rc));
-    return rc;
-}
-
-/* EOF */
diff --git a/tools/nencvalid/nencvalid.vers b/tools/nencvalid/nencvalid.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/nencvalid/nencvalid.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/prefetch/Makefile b/tools/prefetch/Makefile
deleted file mode 100644
index 9b03031..0000000
--- a/tools/prefetch/Makefile
+++ /dev/null
@@ -1,111 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/prefetch
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS = \
-
-EXT_TOOLS = \
-	prefetch
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# prefetch
-#
-PREFETCH_SRC = \
-	prefetch
-
-PREFETCH_OBJ = \
-	$(addsuffix .$(OBJX),$(PREFETCH_SRC))
-
-PREFETCH_LIB = \
-	-ssraschema \
-	-dsraxf \
-	-dvxf \
-	-lvdb \
-	-lkapp \
-	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lksrch \
-	-lklib \
-	-lkproc \
-	-lm
-
-
-$(BINDIR)/prefetch: $(PREFETCH_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(PREFETCH_LIB)
diff --git a/tools/prefetch/prefetch.c b/tools/prefetch/prefetch.c
deleted file mode 100644
index 771ef70..0000000
--- a/tools/prefetch/prefetch.c
+++ /dev/null
@@ -1,1177 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "prefetch.vers.h"
-
-#include <kapp/main.h> /* KAppVersion */
-
-#include <vdb/manager.h> /* VDBManager */
-#include <vdb/database.h> /* VDatabase */
-#include <vdb/dependencies.h> /* VDBDependencies */
-
-#include <vfs/manager.h> /* VFSManager */
-#include <vfs/resolver.h> /* VResolver */
-#include <vfs/path.h> /* VPath */
-
-#include <kfg/config.h> /* KConfig */
-
-#include <kfs/file.h> /* KFile */
-
-#include <klib/printf.h> /* string_printf */
-#include <klib/container.h> /* BSTree */
-#include <klib/text.h> /* String */
-#include <klib/status.h> /* STSMSG */
-#include <klib/log.h> /* PLOGERR */
-#include <klib/out.h> /* KOutMsg */
-#include <klib/rc.h>
-
-#include <assert.h>
-#include <stdlib.h> /* free */
-#include <string.h> /* memset */
-#include <time.h> /* time */
-
-#include <stdio.h> /* printf */
-
-#define DISP_RC(rc, err) (void)((rc == 0) ? 0 : LOGERR(klogInt, rc, err))
-
-#define DISP_RC2(rc, name, msg) (void)((rc == 0) ? 0 : \
-    PLOGERR(klogInt, (klogInt,rc, "$(msg): $(name)","msg=%s,name=%s",msg,name)))
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 != 0 && rc == 0) { rc = rc2; } obj = NULL; } while (false)
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define STS_TOP 0
-#define STS_INFO 1
-#define STS_DBG 2
-#define STS_FIN 3
-
-#define rcResolver   rcTree
-static bool NotFoundByResolver(rc_t rc) {
-    if (GetRCModule(rc) == rcVFS) {
-        if (GetRCTarget(rc) == rcResolver) {
-            if (GetRCContext(rc) == rcResolving) {
-                if (GetRCState(rc) == rcNotFound) {
-                    return true;
-                }
-            }
-        }
-    }
-    return false;
-}
-
-typedef struct {
-    const VPath *path;
-    const String *str;
-} VPathStr;
-static rc_t VPathStrFini(VPathStr *self) {
-    rc_t rc = 0;
-    assert(self);
-    VPathRelease(self->path);
-    free((void*)self->str);
-    memset(self, 0, sizeof *self);
-    return rc;
-}
-static rc_t VResolverResolve(VResolver *self, const char *accession,
-    VPathStr *local, const String **remote, const String **cache,
-    const KFile **file)
-{
-    rc_t rc = 0;
-    VPath* vaccession = NULL;
-    const VPath* vremote = NULL;
-    if (self == NULL) {
-        return RC(rcVFS, rcResolver, rcResolving, rcSelf, rcNull);
-    }
-    if (accession == NULL) {
-        return RC(rcVFS, rcResolver, rcResolving, rcParam, rcNull);
-    }
-    if (rc == 0) {
-        rc = VPathMake(&vaccession, accession);
-        DISP_RC2(rc, "VPathMake", accession);
-    }
-    if (rc == 0 && local != NULL) {
-        memset(local, 0, sizeof *local);
-        rc = VResolverLocal(self, vaccession, &local->path);
-        if (rc == 0) {
-            rc = VPathMakeString(local->path, &local->str);
-            DISP_RC2(rc, "VPathMakeString(VResolverLocal)", accession);
-        }
-        else if (NotFoundByResolver(rc)) {
-            rc = 0;
-        }
-        else {
-            DISP_RC2(rc, "VResolverLocal", accession);
-        }
-    }
-    if (rc == 0 && remote != NULL) {
-        rc = VResolverRemote(self, vaccession, &vremote, file);
-        if (rc == 0) {
-            rc = VPathMakeString(vremote, remote);
-            DISP_RC2(rc, "VPathMakeString(VResolverRemote)", accession);
-        }
-        else if (NotFoundByResolver(rc)) {
-            PLOGERR(klogErr, (klogErr, rc, "$(acc) cannot be found.",
-                "acc=%s", accession));
-        }
-        else {
-            DISP_RC2(rc, "Cannot resolve remote", accession);
-        }
-    }
-    if (rc == 0 && cache != NULL) {
-        const VPath* vpath = NULL;
-        uint64_t file_size = 0;
-        rc = VResolverCache(self, vremote, &vpath, file_size);
-        if (rc == 0) {
-            rc = VPathMakeString(vpath, cache);
-            DISP_RC2(rc, "VPathMakeString(VResolverCache)", accession);
-        }
-        else {
-            DISP_RC2(rc, "Cannot resolve cache", accession);
-        }
-        RELEASE(VPath, vpath);
-    }
-    RELEASE(VPath, vremote);
-    RELEASE(VPath, vaccession);
-    return rc;
-}
-
-typedef enum {
-    eForceNo, /* do not download found and complete objects */
-    eForceYes,/* force download of found and complete objects */
-    eForceYES /* force download; ignore lockes */
-} Force;
-typedef struct {
-    BSTNode n;
-    char *path;
-} TreeNode;
-typedef struct {
-    Args *args;
-    bool check_all;
-    Force force;
-    const VDBManager *mgr;
-    KDirectory *dir;
-    VResolver *resolver;
-
-    void *buffer;
-    size_t bsize;
-
-    BSTree downloaded;
-} Main;
-static rc_t StringRelease(const String *self) {
-    free((String*)self);
-    return 0;
-}
-
-typedef struct {
-    VPathStr local;
-    const String *remote;
-    const String *cache;
-    const KFile *file;
-
-    bool existing;
-
-    /* path to the resolved object : either local or cache:
-    should not be released */
-    const char *path;
-
-    const char *acc; /* do not release */
-} Resolved;
-static rc_t ResolvedInit(Resolved *self,
-    const char *acc, VResolver *resolver, KDirectory *dir)
-{
-    rc_t rc = 0;
-    KPathType type = kptNotFound;
-
-    assert(self);
-
-    memset(self, 0, sizeof *self);
-
-    self->acc = acc;
-
-    type = KDirectoryPathType(dir, acc) & ~kptAlias;
-    if (type == kptFile || type == kptDir) {
-        self->path = acc;
-        self->existing = true;
-        return 0;
-    }
-
-    rc = VResolverResolve(resolver,
-        acc, &self->local, &self->remote, &self->cache, &self->file);
-
-    STSMSG(STS_DBG, ("Resolve(%s) = %R:", acc, rc));
-    STSMSG(STS_DBG, ("local(%s)",
-        self->local.str ? self->local.str->addr : "NULL"));
-    STSMSG(STS_DBG, ("remote(%s)", self->remote ? self->remote->addr : "NULL"));
-    STSMSG(STS_DBG, ("cache(%s)", self->cache ? self->cache->addr : "NULL"));
-
-    if (rc == 0) {
-        if (self->local.str == NULL
-            && (self->cache == NULL ||
-                self->remote == NULL || self->file == NULL))
-        {
-            rc = RC(rcExe, rcPath, rcValidating, rcParam, rcNull);
-            PLOGERR(klogInt, (klogInt, rc,
-                "bad VResolverResolve($(acc)) result", "acc=%s", acc));
-        }
-    }
-
-    return rc;
-}
-
-static rc_t ResolvedFini(Resolved *self) {
-    rc_t rc = 0;
-
-    assert(self);
-
-    rc = VPathStrFini(&self->local);
-
-    RELEASE(String, self->remote);
-    RELEASE(String, self->cache);
-
-    RELEASE(KFile, self->file);
-
-    memset(self, 0, sizeof *self);
-
-    return rc;
-}
-
-/** isLocal is set to true when the object is found locally.
-    i.e. does not need need not be [re]downloaded */
-static rc_t ResolvedLocal(const Resolved *self,
-    const KDirectory *dir, bool *isLocal, Force force)
-{
-    rc_t rc = 0;
-    uint64_t sRemote = 0;
-    uint64_t sLocal = 0;
-    const KFile *local = NULL;
-    char path[PATH_MAX] = "";
-
-    assert(isLocal && self);
-
-    *isLocal = false;
-
-    if (self->local.str == NULL) {
-        return 0;
-    }
-
-    rc = VPathReadPath(self->local.path, path, sizeof path, NULL);
-    DISP_RC(rc, "VPathReadPath");
-
-    if (rc == 0 && KDirectoryPathType(dir, path) != kptFile) {
-        if (force == eForceNo) {
-            STSMSG(STS_TOP,
-                ("%s (not a file) is found locally: consider it complete",
-                 path));
-            *isLocal = true;
-        }
-        else {
-            STSMSG(STS_TOP,
-                ("%s (not a file) is found locally and will be redownloaded",
-                 path));
-        }
-        return 0;
-    }
-
-    if (rc == 0) {
-        rc = KFileSize(self->file, &sRemote);
-        DISP_RC2(rc, "KFileSize(remote)", self->acc);
-    }
-
-    if (rc == 0) {
-        rc = KDirectoryOpenFileRead(dir, &local, path);
-        DISP_RC2(rc, "KDirectoryOpenFileRead", path);
-    }
-
-    if (rc == 0) {
-        rc = KFileSize(local, &sLocal);
-        DISP_RC2(rc, "KFileSize", path);
-    }
-
-    if (rc == 0) {
-        if (sRemote == sLocal) {
-            if (force == eForceNo) {
-                *isLocal = true;
-                STSMSG(STS_INFO, ("%s (%lu) is found and is complete",
-                    path, sLocal));
-            }
-            else {
-                STSMSG(STS_INFO, ("%s (%lu) is found and will be redownloaded",
-                    path, sLocal));
-            }
-        }
-        else {
-            STSMSG(STS_TOP, ("%s (%lu) is incomplete. Expected size is %lu. "
-                "It will be re-downloaded", path, sLocal, sRemote));
-        }
-    }
-
-    RELEASE(KFile, local);
-
-    return rc;
-}
-
-static rc_t _KDirectoryMkTmpPrefix(const KDirectory *self,
-    const String *prefix, char *out, size_t sz)
-{
-    size_t num_writ = 0;
-    rc_t rc = string_printf(out, sz, &num_writ,
-        "%.*s.tmp", prefix->size, prefix->addr);
-    if (rc != 0) {
-        DISP_RC2(rc, "string_printf(tmp)", prefix->addr);
-        return rc;
-    }
-
-    if (num_writ > sz) {
-        rc = RC(rcExe, rcFile, rcCopying, rcBuffer, rcInsufficient);
-        PLOGERR(klogInt, (klogInt, rc,
-            "bad string_printf($(s).tmp) result", "s=%s", prefix->addr));
-        return rc;
-    }
-
-    return rc;
-}
-
-static rc_t _KDirectoryMkTmpName(const KDirectory *self,
-    const String *prefix, char *out, size_t sz)
-{
-    rc_t rc = 0;
-    int i = 0;
-
-    assert(prefix);
-
-    while (rc == 0) {
-        size_t num_writ = 0;
-        rc = string_printf(out, sz, &num_writ,
-            "%.*s.tmp.%d.tmp", prefix->size, prefix->addr, rand() % 100000);
-        if (rc != 0) {
-            DISP_RC2(rc, "string_printf(tmp.rand)", prefix->addr);
-            break;
-        }
-
-        if (num_writ > sz) {
-            rc = RC(rcExe, rcFile, rcCopying, rcBuffer, rcInsufficient);
-            PLOGERR(klogInt, (klogInt, rc,
-                "bad string_printf($(s).tmp.rand) result",
-                "s=%s", prefix->addr));
-            return rc;
-        }
-        if (KDirectoryPathType(self, out) == kptNotFound) {
-            break;
-        }
-        if (++i > 999) {
-            rc = RC(rcExe, rcFile, rcCopying, rcName, rcUndefined);
-            PLOGERR(klogInt, (klogInt, rc,
-                "cannot generate unique tmp file name for $(name)", "name=%s",
-                prefix->addr));
-            return rc;
-        }
-    }
-
-    return rc;
-}
-
-static rc_t _KDirectoryMkLockName(const KDirectory *self,
-    const String *prefix, char *out, size_t sz)
-{
-    rc_t rc = 0;
-    size_t num_writ = 0;
-
-    assert(prefix);
-
-    rc = string_printf(out, sz, &num_writ,
-        "%.*s.lock", prefix->size, prefix->addr);
-    DISP_RC2(rc, "string_printf(lock)", prefix->addr);
-
-    if (rc == 0 && num_writ > sz) {
-        rc = RC(rcExe, rcFile, rcCopying, rcBuffer, rcInsufficient);
-        PLOGERR(klogInt, (klogInt, rc,
-            "bad string_printf($(s).lock) result", "s=%s", prefix->addr));
-        return rc;
-    }
-
-    return rc;
-}
-
-static rc_t _KDirectoryCleanCache(KDirectory *self, const String *local) {
-    rc_t rc = 0;
-
-    char cache[PATH_MAX] = "";
-    size_t num_writ = 0;
-
-    assert(self && local && local->addr);
-
-    if (rc == 0) {
-        rc = string_printf(cache, sizeof cache, &num_writ, "%s.cache",
-            local->addr);
-        DISP_RC2(rc, "string_printf(.cache)", local->addr);
-    }
-
-    if (rc == 0 && KDirectoryPathType(self, cache) != kptNotFound) {
-        STSMSG(STS_DBG, ("removing %s", cache));
-        rc = KDirectoryRemove(self, false, cache);
-    }
-
-    return rc;
-}
-
-static rc_t _KDirectoryClean(KDirectory *self, const String *cache,
-    const char *lock, const char *tmp, bool rmSelf)
-{
-    rc_t rc = 0;
-    rc_t rc2 = 0;
-
-    char tmpName[PATH_MAX] = "";
-    const char *dir = tmpName;
-    const char *tmpPfx = NULL;
-    size_t tmpPfxLen = 0;
-
-    assert(self && cache);
-
-    rc = _KDirectoryMkTmpPrefix(self, cache, tmpName, sizeof tmpName);
-    if (rc == 0) {
-        char *slash = strrchr(tmpName, '/');
-        if (slash != NULL) {
-            if (strlen(tmpName) == slash + 1 - tmpName) {
-                rc = RC(rcExe,
-                    rcDirectory, rcSearching, rcDirectory, rcIncorrect);
-                PLOGERR(klogInt, (klogInt, rc,
-                    "bad file name $(path)", "path=%s", tmpName));
-            }
-            else {
-                *slash = '\0';
-                tmpPfx = slash + 1;
-            }
-        }
-        else {
-            rc = RC(rcExe, rcDirectory, rcSearching, rcChar, rcNotFound);
-            PLOGERR(klogInt, (klogInt, rc,
-                    "cannot extract directory from $(path)", "path=%s", dir));
-        }
-        tmpPfxLen = strlen(tmpPfx);
-    }
-
-    if (tmp != NULL && KDirectoryPathType(self, tmp) != kptNotFound) {
-        rc_t rc3 = 0;
-        STSMSG(STS_DBG, ("removing %s", tmp));
-        rc3 = KDirectoryRemove(self, false, tmp);
-        if (rc2 == 0 && rc3 != 0) {
-            rc2 = rc3;
-        }
-    }
-
-    if (rmSelf && KDirectoryPathType(self, cache->addr) != kptNotFound) {
-        rc_t rc3 = 0;
-        STSMSG(STS_DBG, ("removing %s", cache->addr));
-        rc3 = KDirectoryRemove(self, false, cache->addr);
-        if (rc2 == 0 && rc3 != 0) {
-            rc2 = rc3;
-        }
-    }
-
-    if (rc == 0) {
-        uint32_t count = 0;
-        uint32_t i = 0;
-        KNamelist *list = NULL;
-        STSMSG(STS_DBG, ("listing %s for old temporary files", dir));
-        rc = KDirectoryList(self, &list, NULL, NULL, dir);
-        DISP_RC2(rc, "KDirectoryList", dir);
-
-        if (rc == 0) {
-            rc = KNamelistCount(list, &count);
-            DISP_RC2(rc, "KNamelistCount(KDirectoryList)", dir);
-        }
-
-        for (i = 0; i < count && rc == 0; ++i) {
-            const char *name = NULL;
-            rc = KNamelistGet(list, i, &name);
-            if (rc != 0) {
-                DISP_RC2(rc, "KNamelistGet(KDirectoryList)", dir);
-            }
-            else {
-                if (strncmp(name, tmpPfx, tmpPfxLen) == 0) {
-                    rc_t rc3 = 0;
-                    STSMSG(STS_DBG, ("removing %s", name));
-                    rc3 = KDirectoryRemove(self, false,
-                        "%s%c%s", dir, '/', name);
-                    if (rc2 == 0 && rc3 != 0) {
-                        rc2 = rc3;
-                    }
-                }
-            }
-        }
-
-        RELEASE(KNamelist, list);
-    }
-
-    if (lock != NULL && KDirectoryPathType(self, lock) != kptNotFound) {
-        rc_t rc3 = 0;
-        STSMSG(STS_DBG, ("removing %s", lock));
-        rc3 = KDirectoryRemove(self, false, lock);
-        if (rc2 == 0 && rc3 != 0) {
-            rc2 = rc3;
-        }
-    }
-
-    if (rc == 0 && rc2 != 0) {
-        rc = rc2;
-    }
-
-    return rc;
-}
-
-static int CC bstCmp(const void *item, const BSTNode *n) {
-    const char* path = item;
-    const TreeNode* sn = (const TreeNode*) n;
-
-    assert(path && sn && sn->path);
-
-    return strcmp(path, sn->path);
-}
-
-static int CC bstSort(const BSTNode* item, const BSTNode* n) {
-    const TreeNode* sn = (const TreeNode*) item;
-
-    return bstCmp(sn->path, n);
-}
-
-static void CC bstWhack(BSTNode* n, void* ignore) {
-    TreeNode* sn = (TreeNode*) n;
-
-    assert(sn);
-
-    free(sn->path);
-
-    memset(sn, 0, sizeof *sn);
-
-    free(sn);
-}
-
-static bool MainHasDownloaded(const Main *self, const char *local) {
-    TreeNode *sn = NULL;
-
-    assert(self);
-
-    sn = (TreeNode*) BSTreeFind(&self->downloaded, local, bstCmp);
-
-    return sn != NULL;
-}
-
-static rc_t MainDownloaded(Main *self, const char *path) {
-    TreeNode *sn = NULL;
-
-    assert(self);
-
-    if (MainHasDownloaded(self, path)) {
-        return 0;
-    }
-
-    sn = calloc(1, sizeof *sn);
-    if (sn == NULL) {
-        return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-    }
-
-    sn->path = string_dup_measure(path, NULL);
-    if (sn->path == NULL) {
-        bstWhack((BSTNode*) sn, NULL);
-        sn = NULL;
-        return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-    }
-
-    BSTreeInsert(&self->downloaded, (BSTNode*)sn, bstSort);
-
-    return 0;
-}
-
-static rc_t ResolvedDownload(const Resolved *self, Main *main) {
-    rc_t rc = 0;
-    KFile *out = NULL;
-    KFile *flock = NULL;
-    uint64_t pos = 0;
-    size_t num_read = 0;
-    uint64_t opos = 0;
-    size_t num_writ = 0;
-
-    char tmp[PATH_MAX] = "";
-    char lock[PATH_MAX] = "";
-
-    assert(self
-        && self->cache && self->cache->size && self->cache->addr && main);
-
-    if (main->force != eForceYES &&
-        MainHasDownloaded(main, self->cache->addr))
-    {
-        STSMSG(STS_INFO, ("%s has just been downloaded", self->cache->addr));
-        return 0;
-    }
-
-    if (rc == 0) {
-        rc = _KDirectoryMkLockName(main->dir, self->cache, lock, sizeof lock);
-    }
-
-    if (rc == 0) {
-        rc = _KDirectoryMkTmpName(main->dir, self->cache, tmp, sizeof tmp);
-    }
-
-    if (KDirectoryPathType(main->dir, lock) != kptNotFound) {
-        if (main->force != eForceYES) {
-            KTime_t date = 0;
-            rc = KDirectoryDate(main->dir, &date, lock);
-            if (rc == 0) {
-                time_t t = time(NULL) - date;
-                if (t < 60 * 60 * 24) { /* 24 hours */
-                    STSMSG(STS_DBG, ("%s found: canceling download", lock));
-                    rc = RC(rcExe, rcFile, rcCopying, rcLock, rcExists);
-                    PLOGERR(klogWarn, (klogWarn, rc,
-                        "Lock file $(file) exists: download canceled",
-                        "file=%s", lock));
-                    return rc;
-                }
-                else {
-                    STSMSG(STS_DBG, ("%s found and ignored as too old", lock));
-                    rc = _KDirectoryClean(main->dir,
-                        self->cache, NULL, NULL, true);
-                }
-            }
-            else {
-                STSMSG(STS_DBG, ("%s found", lock));
-                DISP_RC2(rc, "KDirectoryDate", lock);
-            }
-        }
-        else {
-            STSMSG(STS_DBG, ("%s found and forced to be ignored", lock));
-            rc = _KDirectoryClean(main->dir, self->cache, NULL, NULL, true);
-        }
-    }
-    else {
-        STSMSG(STS_DBG, ("%s not found", lock));
-    }
-
-    if (rc == 0) {
-        STSMSG(STS_DBG, ("creating %s", lock));
-        rc = KDirectoryCreateFile(main->dir, &flock,
-            false, 0664, kcmInit | kcmParents, lock);
-        DISP_RC2(rc, "Cannot OpenFileWrite", lock);
-    }
-
-    if (rc == 0) {
-        STSMSG(STS_DBG, ("creating %s", tmp));
-        rc = KDirectoryCreateFile(main->dir, &out,
-            false, 0664, kcmInit | kcmParents, tmp);
-        DISP_RC2(rc, "Cannot OpenFileWrite", tmp);
-    }
-
-    assert(self->remote);
-
-    STSMSG(STS_INFO, ("%s -> %s", self->remote->addr, tmp));
-    do {
-        rc = Quitting();
-
-        if (rc == 0) {
-            STSMSG(STS_FIN,
-                ("> Reading %lu bytes from pos. %lu", main->bsize, pos));
-            rc = KFileRead(self->file,
-                pos, main->buffer, main->bsize, &num_read);
-            if (rc != 0) {
-                DISP_RC2(rc, "Cannot KFileRead", self->remote->addr);
-            }
-            else {
-                STSMSG(STS_FIN,
-                    ("< Read %lu bytes from pos. %lu", num_read, pos));
-                pos += num_read;
-            }
-        }
-
-        if (rc == 0 && num_read > 0) {
-            rc = KFileWrite(out, opos, main->buffer, num_read, &num_writ);
-            DISP_RC2(rc, "Cannot KFileWrite", tmp);
-            opos += num_writ;
-        }
-    } while (rc == 0 && num_read > 0);
-
-    RELEASE(KFile, out);
-    RELEASE(KFile, flock);
-
-    if (rc == 0) {
-        STSMSG(STS_DBG, ("renaming %s -> %s", tmp, self->cache->addr));
-        rc = KDirectoryRename(main->dir, true, tmp, self->cache->addr);
-        if (rc != 0) {
-            PLOGERR(klogInt, (klogInt, rc, "cannot rename $(from) to $(to)",
-                "from=%s,to=%s", tmp, self->cache->addr));
-        }
-    }
-
-    if (rc == 0) {
-        rc = MainDownloaded(main, self->cache->addr);
-    }
-
-    if (rc == 0) {
-        rc_t rc2 = _KDirectoryCleanCache(main->dir, self->cache);
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-
-    {
-        rc_t rc2 = _KDirectoryClean(main->dir, self->cache, lock, tmp, rc != 0);
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-
-    return rc;
-}
-
-static
-rc_t ResolvedResolve(Resolved *self, Main *main, const char *acc)
-{
-    static int n = 0;
-    rc_t rc = 0;
-    bool isLocal = false;
-
-    assert(self && main);
-
-    ++n;
-
-    rc = ResolvedInit(self, acc, main->resolver, main->dir);
-
-    if (rc == 0) {
-        if (self->existing) {
-            self->path = acc;
-            return rc;
-        }
-
-        rc = ResolvedLocal(self, main->dir, &isLocal, main->force);
-    }
-
-    if (rc == 0) {
-        if (isLocal) {
-            STSMSG(STS_TOP, ("%d) %s is found locally", n, acc));
-            if (self->local.str != NULL) {
-                self->path = self->local.str->addr;
-            }
-        }
-        else {
-            STSMSG(STS_TOP, ("%d) Downloading %s...", n, acc));
-            rc = ResolvedDownload(self, main);
-            if (rc == 0) {
-                STSMSG(STS_TOP, ("%d) %s was downloaded successfully", n, acc));
-                if (self->cache != NULL) {
-                    self->path = self->cache->addr;
-                }
-            }
-            else {
-                STSMSG(STS_TOP, ("%d) failed to download %s", n, acc));
-            }
-        }
-    }
-
-    return rc;
-}
-
-static rc_t MainDependenciesList(const Main *self,
-    const char *path, const VDBDependencies **deps)
-{
-    rc_t rc = 0;
-    bool isDb = true;
-    const VDatabase *db = NULL;
-
-    assert(self && path && deps);
-
-    rc = VDBManagerOpenDBRead(self->mgr, &db, NULL, path);
-    if (rc != 0) {
-        if (rc == SILENT_RC(rcDB, rcMgr, rcOpening, rcDatabase, rcIncorrect)) {
-            isDb = false;
-            rc = 0;
-        }
-        DISP_RC2(rc, "Cannot open database", path);
-    }
-
-    if (rc == 0 && isDb) {
-        bool all = self->check_all || self->force != eForceNo;
-        rc = VDatabaseListDependencies(db, deps, !all);
-        DISP_RC2(rc, "VDatabaseListDependencies", path);
-    }
-
-    RELEASE(VDatabase, db);
-
-    return rc;
-}
-
-static rc_t MainExecute(Main *self, const char *acc) {
-    rc_t rc = 0;
-    rc_t rc2 = 0;
-    const VDBDependencies *deps = NULL;
-    uint32_t count = 0;
-    uint32_t i = 0;
-
-    Resolved resolved;
-
-    assert(self);
-
-    rc = ResolvedResolve(&resolved, self, acc);
-
-    if (rc == 0) {
-        rc = MainDependenciesList(self, resolved.path, &deps);
-    }
-
-    if (rc == 0 && deps != NULL) {
-        rc = VDBDependenciesCount(deps, &count);
-        if (rc == 0) {
-            STSMSG(STS_TOP, ("%s has %d%s dependenc%s",
-                acc, count, self->check_all ? "" : " unresolved",
-                count > 1 ? "ies" : "y"));
-        }
-        else {
-            DISP_RC2(rc, "Failed to check %s's dependencies", acc);
-        }
-    }
-
-    for (i = 0; i < count && rc == 0; ++i) {
-        bool local = true;
-        const char *seq_id = NULL;
-
-        if (rc == 0) {
-            rc = VDBDependenciesLocal(deps, &local, i);
-            DISP_RC2(rc, "VDBDependenciesLocal", acc);
-            if (local) {
-                continue;
-            }
-        }
-
-        if (rc == 0) {
-            rc = VDBDependenciesSeqId(deps, &seq_id, i);
-            DISP_RC2(rc, "VDBDependenciesSeqId", acc);
-        }
-
-        if (rc == 0) {
-            size_t num_writ = 0;
-            char ncbiAcc[512] = "";
-
-            assert(seq_id);
-
-            rc = string_printf(ncbiAcc, sizeof ncbiAcc, &num_writ,
-                "ncbi-acc:%s?vdb-ctx=refseq", seq_id);
-            DISP_RC2(rc, "string_printf(?vdb-ctx=refseq)", seq_id);
-            if (rc == 0 && num_writ > sizeof ncbiAcc) {
-                rc = RC(rcExe, rcFile, rcCopying, rcBuffer, rcInsufficient);
-                PLOGERR(klogInt, (klogInt, rc,
-                    "bad string_printf($(s)?vdb-ctx=refseq) result",
-                    "s=%s", seq_id));
-            }
-    
-            if (rc == 0) {
-                Resolved resolved;
-                rc = ResolvedResolve(&resolved, self, ncbiAcc);
-                rc2 = ResolvedFini(&resolved);
-            }
-        }
-    }
-
-    if (rc == 0 && rc2 != 0) {
-        rc = rc2;
-    }
-
-    RELEASE(VDBDependencies, deps);
-
-    {
-        rc_t rc2 = ResolvedFini(&resolved);
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-
-    return rc;
-}
-
-#define CHECK_ALL_ALIAS  "c"
-#define CHECK_ALL_OPTION "check-all"
-static const char* CHECK_ALL_USAGE[] = { "double-check all refseqs", NULL };
-
-#define FORCE_ALIAS  "f"
-#define FORCE_OPTION "force"
-static const char* FORCE_USAGE[] = { "force object download::",
-    "no [default]: skip download if the object if found and complete;",
-    "yes: download it even if it is found and is complete;", "all: ignore lock "
-    "files (stale locks or it is beeing downloaded by another process)", NULL };
-
-static OptDef Options[] = {
-    /*                                                    needs_value required*/
-    { CHECK_ALL_OPTION, CHECK_ALL_ALIAS, NULL, CHECK_ALL_USAGE, 1, false, false
-    },
-    { FORCE_OPTION    , FORCE_ALIAS    , NULL, FORCE_USAGE , 1, true, false }
-};
-
-static rc_t MainProcessArgs(Main *self, int argc, char *argv[]) {
-    rc_t rc = 0;
-
-    uint32_t pcount = 0;
-
-    assert(self);
-
-    rc = ArgsMakeAndHandle(&self->args, argc, argv, 1,
-        Options, sizeof Options / sizeof (OptDef));
-    if (rc != 0) {
-        DISP_RC(rc, "ArgsMakeAndHandle");
-        return rc;
-    }
-
-    do {
-        rc = ArgsOptionCount (self->args, FORCE_OPTION, &pcount);
-        if (rc != 0) {
-            LOGERR(klogErr, rc, "Failure to get '" FORCE_OPTION "' argument");
-            break;
-        }
-
-        if (pcount > 0) {
-            const char *val = NULL;
-            rc = ArgsOptionValue(self->args, FORCE_OPTION, 0, &val);
-            if (rc != 0) {
-                LOGERR(klogErr, rc,
-                    "Failure to get '" FORCE_OPTION "' argument value");
-                break;
-            }
-            if (val == NULL || val[0] == '\0') {
-                rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInvalid);
-                LOGERR(klogErr, rc,
-                    "Unrecognized '" FORCE_OPTION "' argument value");
-                break;
-            }
-            switch (val[0]) {
-                case 'n':
-                case 'N':
-                    self->force = eForceNo;
-                    break;
-                case 'y':
-                case 'Y':
-                    self->force = eForceYes;
-                    break;
-                case 'a':
-                case 'A':
-                    self->force = eForceYES;
-                    break;
-                default:
-                    rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInvalid);
-                    LOGERR(klogErr, rc,
-                        "Unrecognized '" FORCE_OPTION "' argument value");
-                    break;
-            }
-            if (rc != 0) {
-                break;
-            }
-        }
-
-        rc = ArgsOptionCount (self->args, CHECK_ALL_OPTION, &pcount);
-        if (rc != 0) {
-            LOGERR(klogErr,
-                rc, "Failure to get '" CHECK_ALL_OPTION "' argument");
-            break;
-        }
-        if (pcount > 0 || self->force != eForceNo) {
-            self->check_all = true;
-        }
-    } while (false);
-    return rc;
-}
-
-static rc_t MainInit(int argc, char *argv[], Main *self) {
-    rc_t rc = 0;
-    VFSManager *mgr = NULL;
-    KConfig *cfg = NULL;
-
-    assert(self);
-    memset(self, 0, sizeof *self);
-
-    BSTreeInit(&self->downloaded);
-
-    if (rc == 0) {
-        rc = MainProcessArgs(self, argc, argv);
-    }
-
-    if (rc == 0) {
-        self->bsize = 1024 * 1024;
-        self->buffer = malloc(self->bsize);
-        if (self->buffer == NULL) {
-            rc = RC(rcExe, rcData, rcAllocating, rcMemory, rcExhausted);
-        }
-    }
-
-    if (rc == 0) {
-        rc = VFSManagerMake(&mgr);
-        DISP_RC(rc, "VFSManagerMake");
-    }
-
-    if (rc == 0) {
-        VResolver *resolver = NULL;
-        rc = VFSManagerGetResolver(mgr, &resolver);
-        DISP_RC(rc, "VFSManagerGetResolver");
-        VResolverRemoteEnable(resolver, vrAlwaysEnable);
-        RELEASE(VResolver, resolver);
-    }
-
-    if (rc == 0) {
-        rc = KConfigMake(&cfg, NULL);
-        DISP_RC(rc, "KConfigMake");
-    }
-
-    if (rc == 0) {
-        rc = VFSManagerMakeResolver(mgr, &self->resolver, cfg);
-        DISP_RC(rc, "VFSManagerMakeResolver");
-    }
-
-    if (rc == 0) {
-        VResolverRemoteEnable ( self -> resolver, vrAlwaysEnable );
-        VResolverCacheEnable ( self -> resolver, vrAlwaysEnable );
-    }
-
-    if (rc == 0) {
-        rc = VDBManagerMakeRead(&self->mgr, NULL);
-        DISP_RC(rc, "VDBManagerMakeRead");
-    }
-
-    if (rc == 0) {
-        rc = KDirectoryNativeDir(&self->dir);
-        DISP_RC(rc, "KDirectoryNativeDir");
-    }
-
-    if (rc == 0) {
-        srand(time(NULL));
-    }
-
-    RELEASE(KConfig, cfg);
-    RELEASE(VFSManager, mgr);
-
-    return rc;
-}
-
-static rc_t MainFini(Main *self) {
-    rc_t rc = 0;
-
-    assert(self);
-
-    RELEASE(VResolver, self->resolver);
-    RELEASE(VDBManager, self->mgr);
-    RELEASE(KDirectory, self->dir);
-    RELEASE(Args, self->args);
-
-    free(self->buffer);
-
-    BSTreeWhack(&self->downloaded, bstWhack, NULL);
-
-    memset(self, 0, sizeof *self);
-
-    return rc;
-}
-
-const char UsageDefaultName[] = "prefetch";
-rc_t UsageSummary(const char *progname) {
-    return OUTMSG((
-        "Usage:\n"
-        "  %s [options] <SRA accession> [...]\n"
-        "  Download SRA file and its dependencies\n"
-        "\n"
-        "  %s [options] <SRA file> [...]\n"
-        "  Check SRA for missed dependencies and download them\n",
-        progname, progname));
-}
-
-rc_t CC Usage(const Args *args) {
-    rc_t rc = 0;
-    int i = 0;
-
-    const char *progname = UsageDefaultName;
-    const char *fullpath = UsageDefaultName;
-
-    if (args == NULL) {
-        rc = RC(rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    }
-    else {
-        rc = ArgsProgram(args, &fullpath, &progname);
-    }
-    if (rc != 0) {
-        progname = fullpath = UsageDefaultName;
-    }
-
-    UsageSummary(progname);
-    OUTMSG(("\n"));
-
-    OUTMSG(("Options:\n"));
-    for (i = 0; i < sizeof(Options) / sizeof(Options[0]); i++ ) {
-        const char *param = NULL;
-        if (strcmp(Options[i].aliases, FORCE_ALIAS) == 0) {
-            param = "value";
-        }
-        HelpOptionLine(Options[i].aliases, Options[i].name,
-            param, Options[i].help);
-    }
-
-    OUTMSG(("\n"));
-    HelpOptionsStandard();
-    HelpVersion(fullpath, KAppVersion());
-
-    return rc;
-}
-
-ver_t CC KAppVersion(void) { return PREFETCH_VERS; }
-
-/******************************************************************************/
-
-rc_t CC KMain(int argc, char *argv[]) {
-    rc_t rc = 0;
-    uint32_t pcount = 0;
-    uint32_t i = ~0;
-
-    Main pars;
-    rc = MainInit(argc, argv, &pars);
-
-    if (rc == 0) {
-        rc = ArgsParamCount(pars.args, &pcount);
-    }
-
-    if (rc == 0 && pcount == 0) {
-        rc = UsageSummary(UsageDefaultName);
-    }
-
-    for (i = 0; rc == 0 && i < pcount; ++i) {
-        const char *path = NULL;
-        rc = ArgsParamValue(pars.args, i, &path);
-        DISP_RC(rc, "ArgsParamValue");
-        if (rc == 0) {
-            rc = MainExecute(&pars, path);
-        }
-    }
-
-    {
-        rc_t rc2 = MainFini(&pars);
-        if (rc2 != 0 && rc == 0) {
-            rc = rc2;
-        }
-    }
-
-    return rc;
-}
diff --git a/tools/prefetch/prefetch.vers b/tools/prefetch/prefetch.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/prefetch/prefetch.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/refseq-load/Makefile b/tools/refseq-load/Makefile
old mode 100644
new mode 100755
index 8c7cf8c..8287971
--- a/tools/refseq-load/Makefile
+++ b/tools/refseq-load/Makefile
@@ -42,18 +42,20 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
 ifeq (win,$(OS))
 all std:
 	@ echo "not building refseq-load under Windows"
 else
-all std: vers-includes
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 endif
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # all
@@ -72,13 +74,6 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -93,7 +88,8 @@ tag: $(addsuffix _tag,$(ALL_TOOLS))
 .PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
 
 #-------------------------------------------------------------------------------
-# refseq-load
+# vdb-copy
+#  vdb copy tool
 #
 REFSEQ_LOAD_SRC = \
 	context \
@@ -103,6 +99,7 @@ REFSEQ_LOAD_OBJ = \
 	$(addsuffix .$(OBJX),$(REFSEQ_LOAD_SRC))
 
 REFSEQ_LOAD_LIB = \
+	-ssrapath \
 	-ssraschema \
 	-dwsraxf \
 	-dwvxf \
@@ -112,16 +109,15 @@ REFSEQ_LOAD_LIB = \
 	-lwvdb \
 	-lwkdb \
 	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
 	-lksrch \
 	-lcurl \
 	-lklib \
-	-lkq \
 	-lkproc \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 $(BINDIR)/refseq-load: $(REFSEQ_LOAD_OBJ)
diff --git a/tools/refseq-load/context.c b/tools/refseq-load/context.c
index 06f9312..43d1d54 100644
--- a/tools/refseq-load/context.c
+++ b/tools/refseq-load/context.c
@@ -160,36 +160,24 @@ static rc_t context_evaluate_arguments( const Args *my_args, p_context ctx )
     uint32_t count, idx;
     
     rc_t rc = ArgsParamCount( my_args, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "ArgsParamCount() failed" );
-    }
+    DISP_RC( rc, "ArgsParamCount() failed" );
     if ( rc != 0 ) return rc;
 
     for ( idx = 0; idx < count && rc == 0; ++idx )
     {
         const char *value = NULL;
         rc = ArgsParamValue( my_args, idx, &value );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "ArgsParamValue() failed" );
-        }
-        else
+        DISP_RC( rc, "ArgsParamValue() failed" );
+        if ( rc == 0 )
         {
             switch( idx )
             {
             case 0 : rc = context_set_src( ctx, value );
-                     if ( rc != 0 )
-                     {
-                        LOGERR( klogErr, rc, "context_set_src() failed" );
-                     }
+                     DISP_RC( rc, "context_set_src() failed" );
                      break;
 
             case 1 : rc = context_set_dst_path( ctx, value );
-                     if ( rc != 0 )
-                     {
-                        LOGERR( klogErr, rc, "context_set_dst_path() failed" );
-                     }
+                     DISP_RC( rc, "context_set_dst_path() failed" );
                      break;
             }
         }
@@ -203,10 +191,7 @@ static bool context_get_bool_option( const Args *my_args,
 {
     uint32_t count;
     rc_t rc = ArgsOptionCount( my_args, name, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "ArgsOptionCount() failed" );
-    }
+    DISP_RC( rc, "ArgsOptionCount() failed" );
     return ( ( rc == 0 && count > 0 ) );
 }
 
@@ -217,17 +202,11 @@ static const char* context_get_str_option( const Args *my_args,
     const char* res = NULL;
     uint32_t count;
     rc_t rc = ArgsOptionCount( my_args, name, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "ArgsOptionCount() failed" );
-    }
-    else if ( count > 0 )
+    DISP_RC( rc, "ArgsOptionCount() failed" );
+    if ( ( rc == 0 )&&( count > 0 ) )
     {
         rc = ArgsOptionValue( my_args, name, 0, &res );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "ArgsOptionValue() failed" );
-        }
+        DISP_RC( rc, "ArgsOptionValue() failed" );
     }
     return res;
 }
@@ -239,22 +218,13 @@ static uint32_t context_get_uint_32_option( const Args *my_args,
 {
     uint32_t count, res = def;
     rc_t rc = ArgsOptionCount( my_args, name, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "ArgsOptionCount() failed" );
-    }
-    else if ( count > 0 )
+    DISP_RC( rc, "ArgsOptionCount() failed" );
+    if ( ( rc == 0 )&&( count > 0 ) )
     {
         const char *s;
         rc = ArgsOptionValue( my_args, name, 0,  &s );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "ArgsOptionValue() failed" );
-        }
-        else
-        {
-            res = atoi( s );
-        }
+        DISP_RC( rc, "ArgsOptionValue() failed" );
+        if ( rc == 0 ) res = atoi( s );
     }
     return res;
 }
@@ -271,24 +241,16 @@ static rc_t context_evaluate_options( const Args *my_args, p_context ctx )
     context_set_src( ctx, context_get_str_option( my_args, OPTION_SRC ) );
     context_set_dst_path( ctx, context_get_str_option( my_args, OPTION_DST_PATH ) );
     context_set_schema( ctx, context_get_str_option( my_args, OPTION_SCHEMA ) );
-    ctx->chunk_size     = context_get_uint_32_option( my_args, OPTION_CHUNK_SIZE, 0 );
-    circular            = context_get_str_option( my_args, OPTION_CIRCULAR );
-    ctx->quiet          = context_get_bool_option( my_args, OPTION_QUIET );
-    ctx->force_target   = context_get_bool_option( my_args, OPTION_FORCE );
-    ctx->input_is_file  = context_get_bool_option( my_args, OPTION_IFILE );
-    if ( circular != NULL )
-    {
-        if ( strcasecmp( circular, "yes" ) == 0 )
-        {
+    ctx->chunk_size = context_get_uint_32_option( my_args, OPTION_CHUNK_SIZE, 0 );
+    circular = context_get_str_option( my_args, OPTION_CIRCULAR );
+    ctx->quiet = context_get_bool_option( my_args, OPTION_QUIET );
+    if( circular != NULL ) {
+        if(strcasecmp(circular, "yes") == 0 ) {
             ctx->circular = true;
-        }
-        else if ( strcasecmp( circular, "no" ) == 0 )
-        {
+        } else if(strcasecmp(circular, "no") == 0 ) {
             ctx->circular = false;
-        }
-        else
-        {
-            rc = RC( rcExe, rcNoTarg, rcParsing, rcParam, rcUnrecognized );
+        } else {
+            rc = RC( rcExe, rcNoTarg, rcParsing, rcParam, rcUnrecognized);
         }
     }
     else
@@ -305,34 +267,17 @@ static rc_t context_evaluate_options( const Args *my_args, p_context ctx )
 */
 rc_t context_capture_arguments_and_options( const Args * args, p_context ctx )
 {
-    rc_t rc = context_evaluate_arguments( args, ctx );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "context_evaluate_arguments() failed" );
-    }
-    else
+    rc_t rc;
+
+    rc = context_evaluate_arguments( args, ctx );
+    DISP_RC( rc, "evaluate_arguments() failed" );
+    if ( rc == 0 )
     {
-        rc = context_evaluate_options( args, ctx );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "context_evaluate_options() failed" );
-        }
-        else
-        {
+        if( (rc = context_evaluate_options( args, ctx )) == 0 ) {
             context_check_if_usage_necessary( ctx );
-            rc = ArgsArgvValue( args, 0, &ctx->argv0 );
-            if ( rc != 0 )
-            {
-                LOGERR( klogErr, rc, "ArgsArgvValue() failed" );
-            }
-            else
-            {
-                rc = ArgsHandleLogLevel( args );
-                if ( rc != 0 )
-                {
-                    LOGERR( klogErr, rc, "ArgsHandleLogLevel() failed" );
-                }
-            }
+
+            rc = ArgsHandleLogLevel( args );
+            DISP_RC( rc, "ArgsHandleLogLevel() failed" );
         }
     }
     return rc;
diff --git a/tools/refseq-load/context.h b/tools/refseq-load/context.h
index 5eb5ccc..5f1c0b4 100644
--- a/tools/refseq-load/context.h
+++ b/tools/refseq-load/context.h
@@ -42,25 +42,21 @@ extern "C" {
 #include <kapp/args.h>
 
 #define OPTION_DST_PATH          "dst-path"
-#define OPTION_FORCE             "Force"
 #define OPTION_SRC               "src"
 #define OPTION_SCHEMA            "schema"
 #define OPTION_CHUNK_SIZE        "chunk-size"
 #define OPTION_CIRCULAR          "circular"
 #define OPTION_QUIET             "quiet"
-#define OPTION_IFILE             "input-is-file"
 
 #define ALIAS_DST_PATH          "d"
-#define ALIAS_FORCE             "F"
 #define ALIAS_SRC               "f"
 #define ALIAS_SCHEMA            "s"
 #define ALIAS_CHUNK_SIZE        "b"
 #define ALIAS_CIRCULAR          "c"
-#define ALIAS_IFILE             "i"
+#define ALIAS_QUIET             "q"
 
 typedef struct context
 {
-    const char* argv0;
     char *dst_path;
     char *src;
     char *schema;
@@ -68,8 +64,6 @@ typedef struct context
     bool usage_requested;
     bool circular;
     bool quiet;
-    bool force_target;
-    bool input_is_file;
 } context;
 typedef context* p_context;
 
diff --git a/tools/refseq-load/definitions.h b/tools/refseq-load/definitions.h
index ee4b2bb..faf5507 100644
--- a/tools/refseq-load/definitions.h
+++ b/tools/refseq-load/definitions.h
@@ -43,6 +43,10 @@ extern "C" {
 #include <klib/rc.h>
 #endif
 
+#define DISP_RC(rc,err) (void)((rc == 0) ? 0 : LOGERR( klogInt, rc, err ))
+
+#define DISP_RC2(rc,err,succ) \
+    (void)((rc != 0)? 0 : (succ) ? LOGMSG( klogInfo, succ ) : LOGERR( klogInt, rc, err ))
 
 #define DEFAULT_SCHEMA "align/refseq.vschema"
 #define ENTREZ_URL "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&rettype=fasta&id="
diff --git a/tools/refseq-load/refseq-load.c b/tools/refseq-load/refseq-load.c
index c0de17a..deeaec4 100644
--- a/tools/refseq-load/refseq-load.c
+++ b/tools/refseq-load/refseq-load.c
@@ -41,6 +41,7 @@
 #include <sysalloc.h>
 
 #include <curl/curl.h>
+#include <curl/types.h>
 #include <curl/easy.h>
 
 #include <stdlib.h>
@@ -48,21 +49,19 @@
 
 static const char * src_usage[] = { "full url or name of accession", NULL };
 static const char * dst_usage[] = { "name of the table to write", NULL };
-static const char * force_usage[] = { "force target overwrite ", NULL };
 static const char * schema_usage[] = { "name of the schema-file for dst-table", NULL };
 static const char * chunk_size_usage[] = { "size of the seq-chunk (default = 5k)", NULL };
 static const char * circular_usage[] = { "indicate if refseq is circular (ex: mitochondria)", NULL };
-static const char * ifile_usage[] = { "treats input-obj as filename not url", NULL };
+static const char * quiet_usage[] = { "switch off all 'non-error' output", NULL };
 
 OptDef MyOptions[] =
-{                                                                       /* needs_value, required */
-    { OPTION_SRC,           ALIAS_SRC,          NULL, src_usage,        1,  true,   false },
-    { OPTION_DST_PATH,      ALIAS_DST_PATH,     NULL, dst_usage,        1,  true,   false },
-    { OPTION_FORCE,         ALIAS_FORCE,        NULL, force_usage,      1,  false,  false },
-    { OPTION_SCHEMA,        ALIAS_SCHEMA,       NULL, schema_usage,     1,  true,   false },
-    { OPTION_CHUNK_SIZE,    ALIAS_CHUNK_SIZE,   NULL, chunk_size_usage, 1,  true,   false },
-    { OPTION_CIRCULAR,      ALIAS_CIRCULAR,     NULL, circular_usage,   1,  true,   true  },
-    { OPTION_IFILE,         ALIAS_IFILE,        NULL, ifile_usage,      1,  false,  false }
+{
+    { OPTION_SRC, ALIAS_SRC, NULL, src_usage, 1, true, false },
+    { OPTION_DST_PATH, ALIAS_DST_PATH, NULL, dst_usage, 1, true, false },
+    { OPTION_SCHEMA, ALIAS_SCHEMA, NULL, schema_usage, 1, true, false },
+    { OPTION_CHUNK_SIZE, ALIAS_CHUNK_SIZE, NULL, chunk_size_usage, 1, true, false },
+    { OPTION_CIRCULAR, ALIAS_CIRCULAR, NULL, circular_usage, 1, true, true },
+    { OPTION_QUIET, ALIAS_QUIET, NULL, quiet_usage, 1, false, false }
 };
 
 const char UsageDefaultName [] = "refseq-load";
@@ -84,7 +83,7 @@ rc_t CC Usage ( const Args * args )
     rc_t rc;
 
     if (args == NULL)
-        rc = RC (rcExe, rcArgv, rcAccessing, rcSelf, rcNull);
+        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
     else
         rc = ArgsProgram (args, &fullpath, &progname);
     if (rc)
@@ -92,18 +91,18 @@ rc_t CC Usage ( const Args * args )
 
     UsageSummary (progname);
 
-    KOutMsg ( "Options:\n" );
+    KOutMsg ("Options:\n");
 
 
     HelpOptionLine ( ALIAS_SRC, OPTION_SRC, "src", src_usage );
     HelpOptionLine ( ALIAS_DST_PATH, OPTION_DST_PATH, "dst", dst_usage );
     HelpOptionLine ( ALIAS_CIRCULAR, OPTION_CIRCULAR, "yes|no", circular_usage);
 
-    KOutMsg ( "\nOptions:\n" );
+    OUTMSG (( "\nOptions:\n" ));
     HelpOptionLine ( ALIAS_SCHEMA, OPTION_SCHEMA, "schema", schema_usage );
     HelpOptionLine ( ALIAS_CHUNK_SIZE, OPTION_CHUNK_SIZE, "chunk-size", chunk_size_usage );
-    HelpOptionLine ( ALIAS_IFILE, OPTION_IFILE, "fileinput", ifile_usage);
-    KOutMsg( "\n" );
+    HelpOptionLine ( ALIAS_QUIET, OPTION_QUIET, "quiet", quiet_usage );
+    OUTMSG (( "\n" ));
 
     HelpOptionsStandard ();
 
@@ -130,7 +129,6 @@ static bool is_full_url( const char * s )
     return strchr(s, '/' ) != NULL;
 }
 
-
 static rc_t build_full_url( char ** s )
 {
     rc_t rc;
@@ -149,7 +147,6 @@ static rc_t build_full_url( char ** s )
     return rc;
 }
 
-
 typedef struct data_ctx
 {
     char *buffer;
@@ -163,7 +160,6 @@ typedef struct data_ctx
 } data_ctx;
 typedef data_ctx* p_data_ctx;
 
-
 static rc_t write_default_uint32( const uint32_t value,
                            enum ETableWriterRefSeq_ColNames which_col,
                            const TableWriterRefSeq* wr )
@@ -173,14 +169,10 @@ static rc_t write_default_uint32( const uint32_t value,
     data.buffer = &value;
     data.elements = 1;
     rc = TableWriterRefSeq_WriteDefault( wr, which_col, &data );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "write_default_uint32:TableWriterRefSeq_WriteDefault() failed" );
-    }
+    DISP_RC( rc, "write_default_uint32:TableWriterRefSeq_WriteDefault() failed" );
     return rc;
 }
 
-
 static rc_t write_default_str( const char * value,
                            enum ETableWriterRefSeq_ColNames which_col,
                            const TableWriterRefSeq* wr )
@@ -190,14 +182,10 @@ static rc_t write_default_str( const char * value,
     data.buffer = (void*)value;
     data.elements = strlen( value );
     rc = TableWriterRefSeq_WriteDefault( wr, which_col, &data );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "write_default_str:TableWriterRefSeq_WriteDefault() failed" );
-    }
+    DISP_RC( rc, "write_default_str:TableWriterRefSeq_WriteDefault() failed" );
     return rc;
 }
 
-
 static rc_t write_default_bool( const bool value,
                                 enum ETableWriterRefSeq_ColNames which_col,
                                 const TableWriterRefSeq* wr )
@@ -207,14 +195,10 @@ static rc_t write_default_bool( const bool value,
     data.buffer = &value;
     data.elements = 1;
     rc = TableWriterRefSeq_WriteDefault( wr, which_col, &data );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "write_default_bool:TableWriterRefSeq_WriteDefault() failed" );
-    }
+    DISP_RC( rc, "write_default_bool:TableWriterRefSeq_WriteDefault() failed" );
     return rc;
 }
 
-
 static void write_curl_data( p_data_ctx dctx )
 {
     TableWriterRefSeqData data;
@@ -222,16 +206,10 @@ static void write_curl_data( p_data_ctx dctx )
     data.read.buffer = dctx->buffer;
     data.read.elements = dctx->data_count;
     dctx->rc = TableWriterRefSeq_Write( dctx->wr, &data, &dctx->rowid );
-    if ( dctx->rc != 0 )
-    {
-        LOGERR( klogErr, dctx->rc, "handle_curl_byte:TableWriterRefSeq_Write() failed" );
-    }
-
-    if ( ( !dctx->quiet ) && ( dctx->rowid % 100 == 0 ) )
-    {
-        KOutMsg( "row %ld\r", dctx->rowid );
-    }
-
+    DISP_RC( dctx->rc, "handle_curl_byte:TableWriterRefSeq_Write() failed" );
+    if ( dctx->rowid % 100 == 0 )
+    if ( !dctx->quiet )
+        OUTMSG (( "row %ld\r", dctx->rowid ));
     dctx->data_count = 0;
 }
 
@@ -270,16 +248,15 @@ static bool handle_first_line( p_data_ctx dctx )
         *space = 0;
     }
     if ( !dctx->quiet )
-        KOutMsg( "SEQ_ID: %s\n", s );
+        OUTMSG(( "SEQ_ID: %s\n", s ));
     write_default_str( s, ewrefseq_cn_SEQ_ID, dctx->wr );
     space++;
     if ( !dctx->quiet )
-        KOutMsg( "DEF_LINE: %s\n", space );
+        OUTMSG(( "DEF_LINE: %s\n", space ));
     write_default_str( space, ewrefseq_cn_DEF_LINE, dctx->wr );
     return true;
 }
 
-
 static void handle_curl_byte( const char c, p_data_ctx dctx )
 {
     if ( dctx->first_line )
@@ -289,8 +266,8 @@ static void handle_curl_byte( const char c, p_data_ctx dctx )
             dctx->buffer[ dctx->data_count++ ] = 0;
             if ( !handle_first_line( dctx ) )
             {
-                dctx->rc = RC(rcExe, rcBuffer, rcAccessing, rcData, rcInvalid );
-                LOGERR( klogErr, dctx->rc, "server returned invalid data, possibly wrong accession/url" );
+                dctx->rc = RC ( rcApp, rcBuffer, rcAccessing, rcData, rcInvalid );
+                DISP_RC( dctx->rc, "server returned invalid data, possibly wrong accession/url" );
             }
             dctx->data_count = 0;
             dctx->first_line = false;
@@ -325,9 +302,7 @@ static size_t CC on_curl_data( void *ptr, size_t size, size_t nmemb, void *data
         /* to be able to cancel the loop by signal */
         dctx->rc = Quitting();
         for ( idx = 0; idx < given_bytes && dctx->rc == 0; ++idx )
-        {
             handle_curl_byte( ((char *)ptr)[idx], dctx );
-        }
 
         /* tell curl via return value to stop downloading,
            if we encountered an error or quit */
@@ -338,43 +313,6 @@ static size_t CC on_curl_data( void *ptr, size_t size, size_t nmemb, void *data
 }
 
 
-static rc_t init_data_context( const p_context ctx, const TableWriterRefSeq* wr, data_ctx * dctx )
-{
-    rc_t rc = 0;
-    dctx->buff_size = ctx->chunk_size;
-    dctx->data_count = 0;
-    dctx->first_line = true;
-    dctx->quiet = ctx->quiet;
-    dctx->wr = wr;
-    dctx->rc = 0;
-    dctx->rowid = 0;
-    dctx->byte_count = 0;
-    dctx->buffer = malloc( dctx->buff_size );
-    if ( dctx->buffer == NULL )
-    {
-        rc = RC( rcExe, rcFile, rcConstructing, rcMemory, rcExhausted );
-        LOGERR( klogErr, rc, "creating receive-buffer failed" );
-    }
-    return rc;
-}
-
-
-static void finish_data_context( const p_context ctx, data_ctx * dctx )
-{
-    /* write the remainder of data that is eventually left 
-      in the buffer by the callback */
-    if ( dctx->data_count > 0 )
-    {
-        /* returns the rc-code in dctx.rc, this function will return this code at the end */
-        write_curl_data( dctx );
-    }
-
-    if ( !ctx->quiet )
-        KOutMsg( "%ld bases\n", dctx->byte_count );
-    free( dctx->buffer );
-}
-
-
 static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr )
 {
     CURL *curl_handle;
@@ -386,20 +324,29 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
     if ( curl_handle == NULL )
     {
         rc = RC( rcExe, rcFile, rcConstructing, rcData, rcInvalid );
-        LOGERR( klogErr, rc, "cur_easy_init() failed" );
+        DISP_RC( rc, "cur_easy_init() failed" );
         return rc;
     }
 
 #ifdef _DEBUGGING
-    if( KDbgTestModConds( DBG_APP, DBG_FLAG_ANY ) )
-    {
+    if( KDbgTestModConds(DBG_APP, DBG_FLAG_ANY) ) {
         curl_easy_setopt( curl_handle, CURLOPT_VERBOSE , 1 );
     }
 #endif
 
-    rc = init_data_context( ctx, wr, &dctx );
-    if ( rc != 0 )
+    dctx.buff_size = ctx->chunk_size;
+    dctx.data_count = 0;
+    dctx.first_line = true;
+    dctx.quiet = ctx->quiet;
+    dctx.wr = wr;
+    dctx.rc = 0;
+    dctx.rowid = 0;
+    dctx.byte_count = 0;
+    dctx.buffer = malloc( dctx.buff_size );
+    if ( dctx.buffer == NULL )
     {
+        rc = RC( rcExe, rcFile, rcConstructing, rcMemory, rcExhausted );
+        DISP_RC( rc, "creating receive-buffer failed" );
         curl_easy_cleanup( curl_handle );
         return rc;
     }
@@ -408,7 +355,7 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
     if ( rcc != CURLE_OK )
     {
         rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt(callback) failed" );
+        DISP_RC( rc, "curl_easy_setopt(callback) failed" );
         free( dctx.buffer );
         curl_easy_cleanup( curl_handle );
         return rc;
@@ -418,7 +365,7 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
     if ( rcc != CURLE_OK )
     {
         rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt(context) failed" );
+        DISP_RC( rc, "curl_easy_setopt(context) failed" );
         free( dctx.buffer );
         curl_easy_cleanup( curl_handle );
         return rc;
@@ -428,7 +375,7 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
     if ( rcc != CURLE_OK )
     {
         rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt(uri) failed" );
+        DISP_RC( rc, "curl_easy_setopt(uri) failed" );
         free( dctx.buffer );
         curl_easy_cleanup( curl_handle );
         return rc;
@@ -438,7 +385,7 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
     if ( rcc != CURLE_OK )
     {
         rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt(CURLOPT_LOW_SPEED_LIMIT) to 1000 failed" );
+        DISP_RC( rc, "curl_easy_setopt(CURLOPT_LOW_SPEED_LIMIT) to 1000 failed" );
         free( dctx.buffer );
         curl_easy_cleanup( curl_handle );
         return rc;
@@ -448,7 +395,7 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
     if ( rcc != CURLE_OK )
     {
         rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_setopt(CURLOPT_LOW_SPEED_TIME) to 5 failed" );
+        DISP_RC( rc, "curl_easy_setopt(CURLOPT_LOW_SPEED_TIME) to 5 failed" );
         free( dctx.buffer );
         curl_easy_cleanup( curl_handle );
         return rc;
@@ -458,10 +405,20 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
     if ( rcc != CURLE_OK )
     {
         rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "curl_easy_perform() failed" );
+        DISP_RC( rc, "curl_easy_perform() failed" );
+    }
+
+    /* write the remainder of data that is eventually left 
+      in the buffer by the callback */
+    if ( dctx.data_count > 0 )
+    {
+        /* returns the rc-code in dctx.rc, this function will return this code at the end */
+        write_curl_data( &dctx );
     }
 
-    finish_data_context( ctx, &dctx );
+    if ( !ctx->quiet )
+        OUTMSG (( "%ld bases\n", dctx.byte_count ));
+    free( dctx.buffer );
     curl_easy_cleanup( curl_handle );
     if ( dctx.rc == 0 )
     {
@@ -471,129 +428,38 @@ static rc_t perform_curl_load( const p_context ctx, const TableWriterRefSeq* wr
 }
 
 
-static rc_t perform_file_load( const p_context ctx, KDirectory *dir, const TableWriterRefSeq* wr )
-{
-    rc_t rc = 0;
-    uint32_t pt = KDirectoryPathType ( dir, "%s", ctx->src );
-    if ( pt != kptFile )
-    {
-        rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-        LOGERR( klogErr, rc, "input-file not found" );
-    }
-    else
-    {
-        const KFile * f;
-        rc = KDirectoryOpenFileRead ( dir, &f, "%s", ctx->src );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "cannot open input-file for read" );
-        }
-        else
-        {
-            data_ctx dctx;
-            rc = init_data_context( ctx, wr, &dctx );
-            if ( rc == 0 )
-            {
-                uint64_t pos = 0;
-                bool done = false;
-                while ( !done )
-                {
-                    size_t num_read;
-                    char buffer[ 8192 ];
-                    rc = KFileReadAll ( f, pos, buffer, sizeof buffer, &num_read );
-                    if ( rc != 0 )
-                    {
-                        PLOGERR( klogErr, ( klogErr, rc, "$(path) at $(pos)", "path=%s,pos=%lu", ctx->src, pos ) );
-                        done = true;
-                    }
-                    else
-                    {
-                        on_curl_data( buffer, 1, num_read, &dctx );
-
-                        if ( num_read < sizeof( buffer ) )
-                            done = true;
-                        else
-                            pos += num_read;
-                    }
-                }
-                finish_data_context( ctx, &dctx );
-                if ( dctx.rc == 0 )
-                {
-                    dctx.rc = rc;
-                }
-            }
-            KFileRelease( f );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t perform_load( const p_context ctx, KDirectory *dir, VDBManager *mgr )
+static rc_t perform_load( const p_context ctx, VDBManager *mgr )
 {
-    const TableWriterRefSeq * wr;
+    const TableWriterRefSeq* wr;
 
     rc_t rc = TableWriterRefSeq_Make( &wr, mgr, ctx->schema, ctx->dst_path, 0 );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "perform_load:TableWriterRefSeq_Make() failed" );
-    }
-    else
+    DISP_RC( rc, "perform_load:TableWriterRefSeq_Make() failed" );
+    if ( rc == 0 )
     {
-        rc_t rc1;
         uint64_t rows;
 
         if ( ctx->chunk_size != TableWriterRefSeq_MAX_SEQ_LEN )
         {
             rc = write_default_uint32( ctx->chunk_size,
                                        ewrefseq_cn_MAX_SEQ_LEN, wr );
-            if ( rc != 0 )
-            {
-                LOGERR( klogErr, rc, "perform_load:write_default_uint32() failed" );
-            }
+            DISP_RC( rc, "perform_load:write_default_uint32() failed" );
         }
 
         if ( rc == 0 )
         {
             rc = write_default_bool( ctx->circular, ewrefseq_cn_CIRCULAR, wr );
-            if ( rc != 0 )
-            {
-                LOGERR( klogErr, rc, "perform_load:write_default_bool() failed" );
-            }
-        }
-
-        if ( rc == 0 )
-        {
-            if ( ctx->input_is_file )
-            {
-                rc = perform_file_load( ctx, dir, wr ); /* <====================== */
-                if ( rc != 0 )
-                {
-                    LOGERR( klogErr, rc, "perform_load:perform_file_load() failed" );
-                }
-            }
-            else
-            {
-                rc = perform_curl_load( ctx, wr ); /* <====================== */
-                if ( rc != 0 )
-                {
-                    LOGERR( klogErr, rc, "perform_load:perform_curl_load() failed" );
-                }
-            }
+            DISP_RC( rc, "perform_load:write_default_bool() failed" );
         }
 
-        rc1 = TableWriterRefSeq_Whack( wr, rc == 0, &rows, ctx->argv0, __DATE__, "RefSeq", REFSEQ_LOAD_VERS );
         if ( rc == 0 )
         {
-            if ( rc1 != 0 )
-            {
-                LOGERR( klogErr, rc1, "perform_load:TableWriterRefSeq_Whack() failed" );
-            }
-            rc = rc1;
+            rc = perform_curl_load( ctx, wr );
+            DISP_RC( rc, "perform_load:perform_curl_load() failed" );
         }
 
+        TableWriterRefSeq_Whack( wr, rc == 0, &rows );
         if ( !ctx->quiet )
-            KOutMsg( "%lu rows were written\n", rows );
+            OUTMSG (( "%lu rows were written\n", rows ));
     }
     return rc;
 }
@@ -603,38 +469,23 @@ static rc_t check_if_schema_exists( KDirectory * dir, const char * schema_name )
 {
     KConfig * cfg;
     rc_t rc = KConfigMake ( &cfg, NULL );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "check_if_schema_exists:KConfigMake() failed" );
-    }
-    else
+    if ( rc == 0 )
     {
         const KConfigNode *node;
         rc = KConfigOpenNodeRead ( cfg, &node, "vdb/schema/paths" );
-        if ( rc !=  0 )
-        {
-            LOGERR( klogErr, rc, "check_if_schema_exists:KConfigOpenNodeRead( 'vdb/schema/paths' ) failed" );
-        }
-        else
+        if ( rc ==  0 )
         {
             char buffer[ 1024 ];
             size_t num_read;
             rc = KConfigNodeRead ( node, 0, buffer, sizeof buffer, &num_read, NULL );
-            if ( rc != 0 )
-            {
-                LOGERR( klogErr, rc, "check_if_schema_exists:KConfigNodeRead() failed" );
-            }
-            else
+            if ( rc ==  0 )
             {
                 uint32_t path_type;
                 buffer[ num_read ] = 0;
                 path_type = KDirectoryPathType ( dir, "%s/%s", buffer, schema_name );
                 if ( ( path_type & kptFile ) == 0 )
-                {
                     rc = RC( rcExe, rcFile, rcConstructing, rcParam, rcInvalid );
-                }
             }
-            KConfigNodeRelease ( node );
         }
         KConfigRelease ( cfg );
     }
@@ -645,49 +496,42 @@ static rc_t check_if_schema_exists( KDirectory * dir, const char * schema_name )
 static rc_t prepare_load( KDirectory * dir, const p_context ctx )
 {
     rc_t rc = 0;
-
-    if ( !ctx->input_is_file )
+    if ( !is_full_url( ctx->src ) )
     {
-        /* if the input is not specified as a file, we check for url and correctness */
-        if ( !is_full_url( ctx->src ) )
-        {
-            if ( !ctx->quiet )
-                KOutMsg( "src is not a full url, assuming it is a accession\n" );
-            rc = build_full_url( &ctx->src );
-            if ( rc != 0 )
-            {
-                LOGERR( klogErr, rc, "prepare_load:build_full_url() failed" );
-            }
-        }
+        if ( !ctx->quiet )
+            OUTMSG (( "src is not a full url, assuming it is a accession\n" ));
+        rc = build_full_url( &ctx->src );
+        DISP_RC( rc, "ref_seq_load_main:build_full_url() failed" );
+    }
+    if ( rc != 0 )
+    {
+        return rc;
+    }
+    if ( ctx->schema == NULL )
+    {
+        ctx->schema = string_dup_measure ( DEFAULT_SCHEMA, NULL );
+    }
+    if ( ctx->chunk_size == 0 )
+    {
+        ctx->chunk_size = TableWriterRefSeq_MAX_SEQ_LEN;
     }
 
-    /* and then we look if the given schema does exist */
-    if ( rc == 0 )
+    rc = check_if_schema_exists( dir, ctx->schema );
+    DISP_RC( rc, "check_if_schema_exists() failed" );
+    if ( rc != 0 )
     {
-        if ( ctx->schema == NULL )
-        {
-            ctx->schema = string_dup_measure ( DEFAULT_SCHEMA, NULL );
-        }
-        if ( ctx->chunk_size == 0 )
-        {
-            ctx->chunk_size = TableWriterRefSeq_MAX_SEQ_LEN;
-        }
+        return rc;
+    }
 
-        rc = check_if_schema_exists( dir, ctx->schema );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "check_if_schema_exists() failed" );
-        }
-        else if ( !ctx->quiet )
-        {
-            KOutMsg( "src        = '%s'\n", ctx->src );
-            KOutMsg( "dst        = '%s'\n", ctx->dst_path );
-            KOutMsg( "schema     = '%s'\n", ctx->schema );
-            KOutMsg( "chunk-size = %u\n",   ctx->chunk_size );
-            KOutMsg( "srs is file= %s\n",   ctx->input_is_file ? "yes" : "no" );
-        }
+    if ( !ctx->quiet )
+    {
+        OUTMSG (( "src        = '%s'\n", ctx->src ));
+        OUTMSG (( "dst        = '%s'\n", ctx->dst_path ));
+        OUTMSG (( "schema     = '%s'\n", ctx->schema ));
+        OUTMSG (( "chunk-size = %u\n", ctx->chunk_size ));
     }
-    return rc;
+
+    return 0;
 }
 
 
@@ -696,71 +540,35 @@ static rc_t remove_path( KDirectory * dir, const char * path, bool quiet )
     rc_t rc;
 
     if ( !quiet )
-    {
         PLOGMSG( klogInfo, ( klogInfo, "removing '$(path)'", "path=%s", path ));
-    }
     rc = KDirectoryRemove ( dir, true, path );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "remove_path:KDirectoryRemove() failed" );
-    }
+    DISP_RC( rc, "remove_path:KDirectoryRemove() failed" );
     return rc;
 }
 
 
 static rc_t ref_seq_load_main( const p_context ctx )
 {
+    rc_t rc;
     KDirectory *dir;
-    rc_t rc = KDirectoryNativeDir( &dir );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "ref_seq_load_main:KDirectoryNativeDir() failed" );
-    }
-    else
+
+    rc = KDirectoryNativeDir( &dir );
+    DISP_RC( rc, "ref_seq_load_main:KDirectoryNativeDir() failed" );
+    if ( rc == 0 )
     {
         VDBManager *mgr;
         rc = VDBManagerMakeUpdate ( &mgr, dir );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "ref_seq_load_main:VDBManagerMakeRead() failed" );
-        }
-        else
+        DISP_RC( rc, "ref_seq_load_main:VDBManagerMakeRead() failed" );
+        if ( rc == 0 )
         {
             rc = prepare_load( dir, ctx );
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "ref_seq_load_main:prepare_load() failed" );
-            }
-            else
-            {
-                char tblpath[ 4096 ];
-                rc = KDirectoryResolvePath( dir, true, tblpath, sizeof tblpath, ctx->dst_path );
-                if ( rc != 0 )
-                {
-                    LOGERR( klogErr, rc, "ref_seq_load_main:KDirectoryResolvePath() failed" );
-                }
-                else
-                {
-                    KPathType type = VDBManagerPathType( mgr, tblpath );
-                    if ( type != kptNotFound )
-                    {
-                        rc = RC( rcExe, rcDatabase, rcCreating, rcFile, rcExists );
-                        PLOGERR( klogErr, ( klogErr, rc, "$(path)", "path=%s", tblpath ) );
-                    }
-                }
-            }
-
+            DISP_RC( rc, "ref_seq_load_main:prepare_load() failed" );
             if ( rc == 0 )
-            {
-                rc = perform_load( ctx, dir, mgr ); /* <====================== */
-                if ( rc != 0 )
-                {
-                    remove_path( dir, ctx->dst_path, ctx->quiet );
-                }
-            }
-
+                rc = perform_load( ctx, mgr );
             VDBManagerRelease( mgr );
         }
+        if ( rc != 0 )
+            remove_path( dir, ctx->dst_path, ctx->quiet );
         KDirectoryRelease( dir );
     }
     return rc;
@@ -779,41 +587,37 @@ static rc_t ref_seq_load_main( const p_context ctx )
 rc_t CC KMain ( int argc, char *argv [] )
 {
     Args * args;
+    context *ctx;
+
     rc_t rc = ArgsMakeAndHandle ( &args, argc, argv, 1,
-                                  MyOptions, sizeof MyOptions / sizeof ( OptDef ) );
+                             MyOptions, sizeof MyOptions / sizeof ( OptDef ) );
+    DISP_RC( rc, "KMain:ArgsMakeAndHandle() failed" );
+    if ( rc != 0 ) return rc;
+    
+    KLogHandlerSetStdErr();
+    rc = context_init( &ctx );
+    DISP_RC( rc, "KMain:copy_context_init() failed" );
     if ( rc != 0 )
     {
-        LOGERR( klogErr, rc, "ArgsMakeAndHandle() failed" );
+        ArgsWhack ( args );
+        return rc;
     }
-    else
+    
+    rc = context_capture_arguments_and_options( args, ctx );
+    if ( rc != 0 )
     {
-        context *ctx;
-
-        KLogHandlerSetStdErr();
-        rc = context_init( &ctx );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "KMain:context_init() failed" );
-
-        }
-        else
-        {
-            rc = context_capture_arguments_and_options( args, ctx );
-            if ( rc != 0 )
-            {
-                MiniUsage( args );
-                if ( argc < 2 ) rc = 0;
-            }
-            else
-            {
-                if ( ctx->usage_requested )
-                    MiniUsage( args );
-                else
-                    rc = ref_seq_load_main( ctx ); /* <====================== */
-            }
-            context_destroy( ctx );
-        }
+        MiniUsage( args );
+        context_destroy( ctx );
         ArgsWhack ( args );
+        return rc;
     }
+
+    if ( ctx->usage_requested )
+        MiniUsage( args );
+    else
+        rc = ref_seq_load_main( ctx );
+
+    context_destroy( ctx );
+    ArgsWhack (args);
     return rc;
 }
diff --git a/tools/refseq-load/refseq-load.vers b/tools/refseq-load/refseq-load.vers
index f90b1af..63a1a1c 100644
--- a/tools/refseq-load/refseq-load.vers
+++ b/tools/refseq-load/refseq-load.vers
@@ -1 +1 @@
-2.3.2
+2.1.9
diff --git a/tools/refseq-load/refseq-load.vers.h b/tools/refseq-load/refseq-load.vers.h
new file mode 100644
index 0000000..d3401fe
--- /dev/null
+++ b/tools/refseq-load/refseq-load.vers.h
@@ -0,0 +1 @@
+#define REFSEQ_LOAD_VERS 0x02010005
diff --git a/tools/sam-dump/#Makefile# b/tools/sam-dump/#Makefile#
deleted file mode 100644
index 4c1363e..0000000
--- a/tools/sam-dump/#Makefile#
+++ /dev/null
@@ -1,118 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/sam-dump
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS =
-
-EXT_TOOLS = \
-	sam-dump
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: \
-	$(addsuffix _tag,$(ALL_TOOLS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
-
-#-------------------------------------------------------------------------------
-# sam-dump
-#
-SAMDUMP_SRC = \
-	sam-dump
-
-SAMDUMP_OBJ = \
-	$(addsuffix .$(OBJX),$(SAMDUMP_SRC))
-
-SAMDUMP_LIB = \
-	-lkapp \
-	-ssrapath \
-	-lalign-reader \
-	-daxf \
-	-lsraschema \
-	-dsraxf \
-	-dvxf \
-	-lvdb \
-	-lkdb \
-	-lvfs \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lksrch \
-	-lklib \
-	-lm
-
-ifdef NCBI
-CFLAGS += -DNCBI
-endif
-
-$(BINDIR)/sam-dump: $(SAMDUMP_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SAMDUMP_LIB)
-
-samdump_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) samdump $(SAMDUMP_OBJ)
diff --git a/tools/sam-dump/Makefile b/tools/sam-dump/Makefile
index 8d1d212..4fda8fe 100644
--- a/tools/sam-dump/Makefile
+++ b/tools/sam-dump/Makefile
@@ -25,7 +25,7 @@
 
 default: std
 
-TOP ?= $(shell ../../build/abspath.sh ../..)
+TOP ?= $(abspath ../..)
 MODULE = tools/sam-dump
 
 include $(TOP)/build/Makefile.env
@@ -42,13 +42,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -59,18 +61,19 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
+# clean
 #
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+clean: stdclean
 
-.PHONY: $(TARGDIR)/vers-includes
+.PHONY: clean
 
 #-------------------------------------------------------------------------------
-# clean
+# tag
 #
-clean: stdclean
+tag: \
+	$(addsuffix _tag,$(ALL_TOOLS))
 
-.PHONY: clean
+.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
 
 #-------------------------------------------------------------------------------
 # sam-dump
@@ -83,20 +86,25 @@ SAMDUMP_OBJ = \
 
 SAMDUMP_LIB = \
 	-lkapp \
+	-ssrapath \
 	-lalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
+	-daxf \
 	-lsraschema \
+	-dsraxf \
+	-dvxf \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-ssrapath \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
 	-lksrch \
-	-lkproc \
 	-lklib \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 $(BINDIR)/sam-dump: $(SAMDUMP_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SAMDUMP_LIB)
+
+samdump_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) samdump $(SAMDUMP_OBJ)
diff --git a/tools/sam-dump/sam-dump.c b/tools/sam-dump/sam-dump.c
index 682f264..f359554 100644
--- a/tools/sam-dump/sam-dump.c
+++ b/tools/sam-dump/sam-dump.c
@@ -23,41 +23,29 @@
 * ===========================================================================
 *
 */
-#include <klib/report.h>
 #include <klib/container.h>
 #include <klib/log.h>
 #include <klib/out.h>
 #include <klib/status.h>
 #include <klib/rc.h>
-#include <klib/vector.h>
-#include <klib/printf.h>
-#include <klib/data-buffer.h>
-#include <vfs/path.h>
-#include <vfs/path-priv.h>
 #include <kfs/file.h>
 #include <kfs/buffile.h>
 #include <kfs/gzip.h>
 #include <kfs/bzip.h>
+#include <kdb/manager.h>
 #include <kdb/meta.h>
 #include <kdb/namelist.h>
 #include <kapp/main.h>
 #include <kapp/args.h>
 #include <insdc/insdc.h>
 #include <insdc/sra.h>
-#include <vdb/report.h>
 #include <vdb/manager.h>
 #include <vdb/database.h>
 #include <vdb/table.h>
 #include <vdb/cursor.h>
 #include <vdb/vdb-priv.h>
 #include <vdb/schema.h>
-#include <vdb/dependencies.h>
 #include <sra/sraschema.h>
-#include <sra/srapath.h>
-#include <align/dna-reverse-cmpl.h>
-#include <align/iterator.h>
-#include <align/reference.h>
-#include <align/quality-quantizer.h>
 
 #include <kfs/directory.h>
 #include <os-native.h>
@@ -65,28 +53,14 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <stdint.h>
-#include <limits.h>
 #include <string.h>
-#include <strtol.h>
 #include <ctype.h>
 #include <assert.h>
 
 #include "debug.h"
 #include "sam-dump.vers.h"
 
-#if _ARCH_BITS == 64
-#define USE_MATE_CACHE 1
-#define CURSOR_CACHE (4 * 1024 * 1024 * 1024UL)
-#else
-#define USE_MATE_CACHE 0
-#define CURSOR_CACHE (256 * 1024 * 1024)
-#endif
-
-
-
-typedef struct TAlignedRegion_struct
-{
+typedef struct TAlignedRegion_struct {
     char name[1024];
     struct {
         INSDC_coord_zero from;
@@ -94,29 +68,18 @@ typedef struct TAlignedRegion_struct
     } r[10240];
     int rq;
     INSDC_coord_zero max_to;
-    INSDC_coord_zero min_from;
-    int printed;
 } TAlignedRegion;
 
-
-typedef struct TMatepairDistance_struct
-{
-    uint32_t from;
-    uint32_t to;
+typedef struct TMatepairDistance_struct {
+    uint64_t from;
+    uint64_t to;
 } TMatepairDistance;
 
-
-struct params_s
-{
-    /* which outputs are on */
-    bool primaries;
-    bool secondaries;
-    bool unaligned;
-    bool cg_evidence;
-    bool cg_ev_dnb;
-    bool cg_sam;
-    
+typedef struct SParam_struct {
+    const char* accession;
+    const char* path;
     bool use_seqid;
+    bool unaligned;
     bool long_cigar;
     bool reheader;
     bool noheader;
@@ -124,16 +87,7 @@ struct params_s
     bool fasta;
     bool fastq;
     bool spot_group_in_name;
-    bool cg_friendly_names;
-    bool reverse_unaligned;
-    bool unaligned_spots;
-    
-    bool output_gzip;
-    bool output_bz2;
-    
-    bool xi;
-    int cg_style; /* 0: raw; 1: with B's; 2: without B's, fixed up SEQ/QUAL; */
-    char const *name_prefix;
+    const char* name_prefix;
     /* region filter data */
     TAlignedRegion* region;
     uint32_t region_qty;
@@ -141,1663 +95,668 @@ struct params_s
     bool mp_dist_unknown;
     TMatepairDistance* mp_dist;
     uint32_t mp_dist_qty;
-    uint32_t test_rows;
-
-    /* mate info cache */
-    int64_t mate_row_gap_cachable;
-    
-    char const **comments;
-    
-    bool quantizeQual;
-    uint8_t qualQuant[256];
-    uint8_t qualQuantSingle; /*** the quality is quantized - single value, no need to retrieve **/
-};
-
-
-struct params_s const *param;
-ReferenceList const *gRefList;
-
-
-typedef union UData_union
-{
-    void const *v;
-    uint32_t const *u32;
-    int32_t const *i32;
-    int64_t const *i64;
-    uint64_t const *u64;
-    uint8_t const *u8;
-    char const *str;
-    bool const *tf;
+} SParam;
+
+typedef union UData_union {
+    const void* v;
+    const uint32_t* u32;
+    const int32_t* i32;
+    const int64_t* i64;
+    const uint8_t* u8;
+    const char* str;
     INSDC_coord_one* coord1;
     INSDC_coord_zero* coord0;
     INSDC_coord_len* coord_len;
     INSDC_coord_val* coord_val;
     INSDC_SRA_xread_type* read_type;
-    INSDC_SRA_read_filter* read_filter;
 } UData;
 
-
-typedef struct SCol_struct
-{
-    char const *name;
+typedef struct SCol_struct {
+    const char* name;
     uint32_t idx;
     UData base;
     uint32_t len;
     bool optional;
 } SCol;
 
-
-typedef struct STable_struct
-{
-    char const *name;
-    VTable const *vtbl;
-} STable;
-
-
-typedef struct SCursCache_struct
-{
-    KVector* cache;
-    KVector* cache_unaligned_mate; /* keeps unaligned-mate for a half-aligned spots */
-    uint32_t sam_flags;
-    INSDC_coord_zero pnext;
-    int32_t tlen;
-    ReferenceObj const *ref;
-    /* cache stats */
-    uint64_t projected;
-    uint64_t added;
-    uint64_t hit;
-    uint64_t bad;
-} SCursCache;
-
-
-typedef struct SCurs_struct
-{
-    STable const *tbl;
-    VCursor const *vcurs;
-    SCursCache* cache;
-    SCursCache cache_local;
-    uint64_t col_reads_qty;
-} SCurs;
-
-enum eDSTableType
-{
-    edstt_NotSpecified,
-    edstt_Reference,
-    edstt_Sequence,
-    edstt_PrimaryAlignment,
-    edstt_SecondaryAlignment,
-    edstt_EvidenceAlignment,
-    edstt_EvidenceInterval
-};
-
-
-typedef struct DataSource_s {
-    STable tbl;
-    SCurs curs;
-    SCol *cols;
-    enum eDSTableType type;
-} DataSource;
-
-
-#define DATASOURCE_INIT(O, NAME) do { memset(&O, 0, sizeof(O)); O.tbl.name = NAME; O.curs.tbl = &O.tbl; } while(0)
-
-
-typedef struct SAM_dump_ctx_s
-{
-    VDatabase const *db;
-    char const *fullPath;
-    char const *accession;
-    char const *readGroup;
-    
-    DataSource ref;
-    DataSource pri;
-    DataSource sec;
-    DataSource evi;
-    DataSource eva;
-    DataSource seq;
-} SAM_dump_ctx_t;
-
-
-enum ealg_col
-{
-    alg_SEQ_SPOT_ID = 0,
-    alg_SEQ_NAME,
-    alg_MAPQ,
-    alg_CIGAR,
-    alg_READ,
-    alg_READ_START,
-    alg_READ_LEN,
-    alg_CIGAR_LEN,
-    alg_SAM_QUALITY,
-    alg_SPOT_GROUP,
-    alg_SEQ_SPOT_GROUP,
-    alg_SEQ_READ_ID,
-    alg_REVERSED,
-    alg_ALIGNMENT_COUNT,
-    alg_EDIT_DISTANCE,
-    alg_READ_FILTER,
-    alg_MATE_ALIGN_ID,
-    alg_MATE_REF_NAME,
-    alg_SAM_FLAGS,
-    alg_REF_START,
-    alg_MATE_REF_POS,
-    alg_ALIGN_GROUP,
-    alg_EVIDENCE_ALIGNMENT_IDS,
-    alg_REF_PLOIDY,
-    alg_REF_ID,
-    alg_MATE_REF_ID,
-    alg_HAS_MISMATCH,
-    alg_REGION_FILTER,
-    alg_REF_NAME = alg_REGION_FILTER,
-    alg_REF_SEQ_ID,
-    alg_REF_POS,
-    alg_REF_LEN,
-    alg_DISTANCE_FILTER,
-    alg_TEMPLATE_LEN = alg_DISTANCE_FILTER,
-    alg_CG_TAGS_STR
-};
-
-
-SCol const g_alg_col_tmpl[] =
-{
-    { "SEQ_SPOT_ID", 0, {NULL}, 0, true },
-    { "SEQ_NAME", 0, {NULL}, 0, false },
-    { "MAPQ", 0, {NULL}, 0, false },
-    { "?CIGAR column name?", 0, {NULL}, 0, false },
-    { "?READ column name?", 0, {NULL}, 0, false },
-    { "READ_START", 0, {NULL}, 0, false }, /* READ_START */
-    { "READ_LEN", 0, {NULL}, 0, false }, /* READ_LEN */
-    { "?CIGAR_LEN column name?", 0, {NULL}, 0, true }, /* CIGAR_LEN */
-    { "SAM_QUALITY", 0, {NULL}, 0, false },
-    { "SPOT_GROUP", 0, {NULL}, 0, true },
-    { "SEQ_SPOT_GROUP", 0, {NULL}, 0, true },
-    { "SEQ_READ_ID", 0, {NULL}, 0, true },
-    { "REF_ORIENTATION", 0, {NULL}, 0, true },
-    { "ALIGNMENT_COUNT", 0, {NULL}, 0, true },
-    { "EDIT_DISTANCE", 0, {NULL}, 0, false },
-    { "", 0, {NULL}, 0, false },
-    /* start cols used as standalone in DumpUnaligned */
-    /* MATE_ALIGN_ID col must preceeed
-       MATE_REF_NAME, MATE_REF_POS, SAM_FLAGS, TEMPLATE_LEN for cache to work */
-    { "MATE_ALIGN_ID", 0, {NULL}, 0, false },
-    { "?MATE_REF_NAME column name?", 0, {NULL}, 0, false },
-    { "SAM_FLAGS", 0, {NULL}, 0, false },
-    { "REF_START", 0, {NULL}, 0, false },  /* priming cursor cache */
-    { "MATE_REF_POS", 0, {NULL}, 0, false },
-    { "ALIGN_GROUP", 0, {NULL}, 0, true },
-    { "", 0, {NULL}, 0, true }, /* EVIDENCE_ALIGNMENT_IDS */
-    { "", 0, {NULL}, 0, true }, /* REF_PLOIDY */
-    { "REF_ID", 0, {NULL}, 0, true }, /* REF_ID */
-    { "MATE_REF_ID", 0, {NULL}, 0, true }, /* priming cursor cache */
-    { "(bool)HAS_MISMATCH", 0, {NULL}, 0, true },
-    /* these are read before any other for filtering so they must be last */
-    { "REF_NAME", 0, {NULL}, 0, false },
-    { "REF_SEQ_ID", 0, {NULL}, 0, false },
-    { "REF_POS", 0, {NULL}, 0, false },
-    /* end cols used as standalone in DumpUnaligned */
-    { "REF_LEN", 0, {NULL}, 0, false },
-    { "TEMPLATE_LEN", 0, {NULL}, 0, false },
-    { NULL, 0, {NULL}, 0, false }, /* alg_CG_TAGS_STR */
-    { NULL, 0, {NULL}, 0, false }
-};
-
-enum eseq_col
-{
-    seq_READ = 0,
-    seq_QUALITY,
-    seq_SPOT_GROUP,
-    seq_READ_START,
-    seq_READ_LEN,
-    seq_READ_TYPE,
-    seq_READ_FILTER,
-    seq_NAME,
-    seq_PRIMARY_ALIGNMENT_ID
-};
-
-static 
-SCol const gSeqCol[] =
-{
-    { "READ", 0, {NULL}, 0, false },
-/*    { "(INSDC:quality:text:phred_33)QUALITY", 0, {NULL}, 0, false }, */
-    { "(INSDC:quality:phred)QUALITY", 0, {NULL}, 0, false }, /* changed Jan 29 2013, because some runs don't have the phred_33-type in schema */
-    { "SPOT_GROUP", 0, {NULL}, 0, true },
-    { "READ_START", 0, {NULL}, 0, true },
-    { "READ_LEN", 0, {NULL}, 0, true },
-    { "READ_TYPE", 0, {NULL}, 0, true },
-    { "READ_FILTER", 0, {NULL}, 0, true },
-    { "NAME", 0, {NULL}, 0, true },
-    /* must be last in list to avoid reading all columns */
-    { "PRIMARY_ALIGNMENT_ID", 0, {NULL}, 0, true },
-    { NULL, 0, {NULL}, 0, false }
-};
-
-
-static rc_t RefSeqPrint( void )
+static
+rc_t OpenVTable(const VDatabase* db, const VTable** tbl, const char *name, bool optional)
 {
-    rc_t rc = 0;
-    uint32_t i, count = 0;
-    
-    rc = ReferenceList_Count( gRefList, &count );
-    for( i = 0; rc == 0 && i < count; i++ )
-    {
-        ReferenceObj const *obj;
-        rc = ReferenceList_Get( gRefList, &obj, i );
-        if ( rc == 0 )
-        {
-            char const *seqid = NULL;
-            rc = ReferenceObj_SeqId( obj, &seqid );
-            if ( rc == 0 )
-            {
-                char const *name = NULL;
-                rc = ReferenceObj_Name( obj, &name );
-                if ( rc == 0 )
-                {
-                    INSDC_coord_len len;
-                    rc = ReferenceObj_SeqLength( obj, &len );
-                    if ( rc == 0 )
-                    {
-                        char const *nm;
-                        if ( param->use_seqid && seqid != NULL && seqid[ 0 ] != '\0' )
-                        {
-                            nm = seqid;
-                        }
-                        else
-                        {
-                            nm = name;
-                        }
-                        KOutMsg( "@SQ\tSN:%s", nm );
-                        if ( nm != seqid && seqid != NULL && seqid[ 0 ] != '\0' && strcmp( nm, seqid ) != 0)
-                        {
-                            KOutMsg( "\tAS:%s", seqid );
-                        }
-                        KOutMsg( "\tLN:%u\n", len );
-                    }
-                }
-            }
-            ReferenceObj_Release( obj );
-        }
+    rc_t rc = VDatabaseOpenTableRead(db, tbl, name);
+    if( GetRCState(rc) == rcNotFound && optional ) {
+        rc = 0;
+        *tbl = NULL;
     }
     return rc;
 }
 
-
-#if USE_MATE_CACHE
-static rc_t Cache_Init( SCursCache* c )
-{
-    if ( c != NULL )
-    {
-	rc_t rc;
-        memset( c, 0, sizeof( *c ) );
-        rc=KVectorMake( &c->cache );
-	if(rc == 0){
-		rc=KVectorMake( &c->cache_unaligned_mate );
-	}
-    }
-    return 0;
-}
-
-
-static void Cache_Close( char const *name, SCursCache* c )
-{
-    if ( c != NULL )
-    {
-        KVectorRelease( c->cache );
-        KVectorRelease( c->cache_unaligned_mate );
-        if ( c->added > 0 )
-        {
-            SAM_DUMP_DBG( 2, ( "%s cache stats: projected %lu added of those %lu; "
-                               "hits %lu of those broken %lu;\n",
-                               name, c->projected, c->added, c->hit, c->bad ) );
-        }
-    }
-    memset( c, 0, sizeof( *c ) );
-}
-
-
-static rc_t Cache_Add( uint64_t key, SCurs const *curs, SCol const *cols )
+static
+rc_t Cursor_Init(const VTable* tbl, const VCursor** curs, SCol* cols)
 {
-    /* compact values for mate record to cache as:
-        pos_delta - 32bit, ref_proj - 11bit, flags - 11bit, rnext_idx - 10bit = 64bit
-    */
     rc_t rc = 0;
-    ReferenceObj const *r = NULL;
-    uint32_t rid = 0;
-    uint64_t val = 0;
-    int64_t mate_id = cols[ alg_MATE_ALIGN_ID ].len > 0 ? cols[ alg_MATE_ALIGN_ID ].base.i64[ 0 ] : 0;
-
-    rc = ReferenceList_Find( gRefList, &r, cols[ alg_REF_NAME ].base.str, cols[ alg_REF_NAME ].len );
-    if ( rc == 0 )
-    {
-        rc = ReferenceObj_Idx( r, &rid );
-    }
-#if _DEBUGGING
-    {
-        char const *rname = NULL;
-        curs->cache->projected++;
-        ReferenceObj_Name( r, &rname );
-        SAM_DUMP_DBG( 10, ( "to cache row %li for mate %li: %u,%s[%hu],%u,%u,%i",
-            key, mate_id, cols[ alg_SAM_FLAGS ].base.u32[ 0 ], rname, rid,
-            cols[ alg_REF_POS ].len ? cols[ alg_REF_POS ].base.coord0[ 0 ] : 0,
-            cols[ alg_MATE_REF_POS ].len ? cols[ alg_MATE_REF_POS ].base.coord0[ 0 ] : 0,
-            cols[ alg_TEMPLATE_LEN ].len > 0 ? cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] : 0));
-    }
-#endif
-    if ( rc == 0 && !( rid & 0xFC00 ) )
-    {
-        int64_t pos_delta64;
-        int32_t pos_delta32;
-
-        if ( mate_id != 0 )
-        {
-            ReferenceObj const *rm = NULL;
-            uint32_t rm_id;
-
-            rc = ReferenceList_Find( gRefList, &rm, cols[ alg_MATE_REF_NAME ].base.str, cols[ alg_MATE_REF_NAME ].len );
-            if ( rc == 0 )
-            {
-                rc = ReferenceObj_Idx( rm, &rm_id );
-            }
-            assert( rm != NULL );
-            if ( rc == 0 && rid != rm_id )
-            {
-                char const *rm_name = NULL;
-                ReferenceObj_Name( rm, &rm_name );
-                mate_id = 0;
-                SAM_DUMP_DBG( 10, ( " mate ref differ: %s[%hu]!", rm_name, rm_id ) );
-            }
-            ReferenceObj_Release( rm );
-        }
-
-        if ( mate_id != 0 )
-        {
-            pos_delta64 = cols[ alg_MATE_REF_POS ].base.coord0[ 0 ] - cols[ alg_REF_POS ].base.coord0[ 0 ];
-        }
-        else
-        {
-            pos_delta64 = cols[ alg_REF_POS ].base.coord0[ 0 ];
-        }
 
-        pos_delta32 = pos_delta64;
-        if ( pos_delta64 == pos_delta32 )
-        {
-            int64_t ref_proj;
-            if ( mate_id == 0 )
-            {
-                ref_proj = 0; /* indicates full value in delta */
-            }
-            else if ( cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] < 0 )
-            {
-                assert( pos_delta32 <= 0 );
-                ref_proj = pos_delta32 - cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ];
-            }
-            else
-            {
-                assert( pos_delta32 >= 0 );
-                ref_proj = cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] - pos_delta32;
-            }
+    *curs = NULL;
+    if (tbl == NULL)
+        return 0;
 
-            if ( !( ref_proj & 0xFFFFF800 ) )
-            {
-                val = ( pos_delta64 << 32 ) | ( ref_proj << 21 ) | ( cols[ alg_SAM_FLAGS ].base.u32[ 0 ] << 10 ) | rid;
-                rc = KVectorSetU64( curs->cache->cache, key, val );
+    rc = VTableCreateCachedCursorRead(tbl, curs, 32 * 1024 * 1024);
+    while(rc == 0 && cols->name != NULL) {
+        if( (rc = VCursorAddColumn(*curs, &cols->idx, cols->name)) != 0 ) {
+            if( GetRCState(rc) == rcExists ||
+                (GetRCState(rc) == rcNotFound && cols->optional) ) {
+                rc = 0;
+            } else {
+                PLOGERR(klogErr, (klogErr, rc, "column $(c)", PLOG_S(c), cols->name));
             }
         }
+        cols++;
     }
-    ReferenceObj_Release( r );
-
-#if _DEBUGGING
-    if ( val == 0 )
-    {
-        SAM_DUMP_DBG( 10, ( " --> out of range\n" ) );
+    if( rc == 0 ) {
+        rc = VCursorOpen(*curs);
     }
-    else
-    {
-        SAM_DUMP_DBG( 10, ( " --> %016lX\n", val ) );
-        curs->cache->added++;
+    if( rc != 0 ) {
+        VCursorRelease(*curs);
+        *curs = NULL;
     }
-#endif
     return rc;
 }
 
-
-static rc_t Cache_Get( SCurs const *curs, uint64_t key, uint64_t* val )
+static
+rc_t Cursor_Read(const VCursor* curs, int64_t row_id, SCol* cols)
 {
-    rc_t rc = KVectorGetU64( curs->cache->cache, key, val );
-    if ( rc == 0 )
-    {
-        uint32_t id = ( *val & 0x3FF );
-#if _DEBUGGING
-        curs->cache->hit++;
-#endif
-        KVectorUnset( curs->cache->cache, key );
-        rc = ReferenceList_Get( gRefList, &curs->cache->ref, id );
-        if ( rc != 0 )
-        {
-            *val = 0;
-            curs->cache->ref = NULL;
-            rc = RC( rcExe, rcNoTarg, rcSearching, rcItem, rcNotFound );
-#if _DEBUGGING
-            curs->cache->bad++;
-#endif
-        }
-        else
-        {
-            SAM_DUMP_DBG( 10, ( "from cache row %li %016lX", key, *val ) );
+    rc_t rc = 0;
+    if( (rc = VCursorCloseRow(curs)) == 0 &&
+        (rc = VCursorSetRowId(curs, row_id)) == 0 &&
+        (rc = VCursorOpenRow(curs)) == 0 ) {
+        while( rc == 0 && cols->name != NULL ) {
+            if( cols->idx != 0 && (rc = VCursorCellData(curs, cols->idx, NULL, &cols->base.v, NULL, &cols->len)) != 0 ) {
+                SAM_DUMP_DBG(2, ("%s: read column %s spot %u %R\n", __func__, cols->name, row_id, rc));
+                break;
+            }
+            cols++;
         }
     }
     return rc;
 }
 
+struct {
+    KWrtWriter writer;
+    void* data;
+    KFile* kfile;
+    uint64_t pos;
+} g_out_writer = {NULL};
 
-static void Cache_Unpack( uint64_t val, int64_t mate_id, SCurs const *curs, SCol* cols )
+static
+rc_t CC BufferedWriter(void* self, const char* buffer, size_t bufsize, size_t* num_writ)
 {
-    int32_t pos_delta = ( val & 0xFFFFFFFF00000000 ) >> 32;
-    uint32_t ref_proj = ( val & 0x00000000FFE00000 ) >> 21;
-    uint32_t flags = ( val & 0x00000000001FFC00 ) >> 10;
-
-    if ( mate_id != 0 )
-    {
-        /* adjust flags for mate record */
-        curs->cache->sam_flags = ( flags & 0x1 ) |
-                                 ( flags & 0x2 ) |
-                                 ( ( flags & 0x8 ) >> 1 ) |
-                                 ( ( flags & 0x4 ) << 1 ) |
-                                 ( ( flags & 0x20 ) >> 1 ) |
-                                 ( ( flags & 0x10 ) << 1 ) |
-                                 ( ( flags & 0x40 ) ? 0x80 : 0x40 ) |
-                                 ( flags & 0x700 );
-    }
-    else
-    {
-        /* preserve flags as if original records is restored */
-        curs->cache->sam_flags = flags;
-    }
-    cols[ alg_SAM_FLAGS ].base.u32 = &curs->cache->sam_flags;
-    cols[ alg_SAM_FLAGS ].len = sizeof( curs->cache->sam_flags );
-
-    if ( param->use_seqid )
-    {
-        ReferenceObj_SeqId( curs->cache->ref, &cols[ alg_MATE_REF_NAME ].base.str );
-    }
-    else
-    {
-        ReferenceObj_Name( curs->cache->ref, &cols[ alg_MATE_REF_NAME ].base.str );
-    }
-
-    cols[ alg_MATE_REF_NAME ].len = strlen( cols[ alg_MATE_REF_NAME ].base.str );
-
-    if ( ref_proj == 0 )
-    {
-        curs->cache->pnext = pos_delta;
-        curs->cache->tlen = 0;
-    }
-    else if ( pos_delta > 0 )
-    {
-        curs->cache->pnext = ( cols[ alg_REF_POS ].len > 0 ? cols[ alg_REF_POS ].base.coord0[ 0 ] : 0 ) - pos_delta;
-        curs->cache->tlen = - ( ref_proj + pos_delta );
-    }
-    else
-    {
-        curs->cache->pnext = ( cols[ alg_REF_POS ].len > 0 ? cols[ alg_REF_POS ].base.coord0[ 0 ] : 0 ) - pos_delta;
-        curs->cache->tlen = ref_proj - pos_delta;
-    }
+    rc_t rc = 0;
 
-    cols[ alg_MATE_REF_POS ].base.coord0 = &curs->cache->pnext;
-    cols[ alg_MATE_REF_POS ].len = sizeof( curs->cache->pnext );
-    cols[ alg_TEMPLATE_LEN ].base.i32 = &curs->cache->tlen;
-    cols[ alg_TEMPLATE_LEN ].len = sizeof( curs->cache->tlen );
-    {
-        uint32_t id;
-        ReferenceObj_Idx( curs->cache->ref, &id );
-        SAM_DUMP_DBG( 10, ( " --> mate %li: %u,%s[%hu],%u,%i\n",
-            mate_id, curs->cache->sam_flags, cols[ alg_MATE_REF_NAME ].base.str,
-            id, curs->cache->pnext, curs->cache->tlen ) );
-    }
-}
-#endif /* USE_MATE_CACHE */
+    assert(buffer != NULL);
+    assert(num_writ != NULL);
 
-#if 0
-static rc_t OpenVTable( VDatabase const *db, STable* tbl, char const *name, bool optional )
-{
-    rc_t rc = VDatabaseOpenTableRead( db, &tbl->vtbl, name );
-    if ( GetRCState( rc ) == rcNotFound && optional )
-    {
-        rc = 0;
-        tbl->vtbl = NULL;
-    }
-    tbl->name = name;
+    do {
+        if( (rc = KFileWrite(g_out_writer.kfile, g_out_writer.pos, buffer, bufsize, num_writ)) == 0 ) {
+            buffer += *num_writ;
+            bufsize -= *num_writ;
+            g_out_writer.pos += *num_writ;
+        }
+    } while(rc == 0 && bufsize > 0);
     return rc;
 }
-#endif
 
-static rc_t Cursor_Open( STable const *const tbl, SCurs *const curs, SCol cols[], SCursCache* cache )
+static
+rc_t BufferedWriterMake(bool gzip, bool bzip2)
 {
     rc_t rc = 0;
-    unsigned i;
-
-    curs->vcurs = NULL;
-    if ( tbl == NULL || tbl->vtbl == NULL )
-        return 0;
-
-    rc = VTableCreateCachedCursorRead( tbl->vtbl, &curs->vcurs, CURSOR_CACHE );
-    if ( rc != 0 )
-        return rc;
-    
-    rc = VCursorPermitPostOpenAdd( curs->vcurs );
-    if ( rc != 0 )
-        return rc;
 
-    if ( rc == 0 )
-    {
-        rc = VCursorOpen( curs->vcurs );
-        if ( rc == 0 )
-        {
-#if USE_MATE_CACHE
-            if ( cache != NULL )
-            {
-                curs->cache = cache;
+    if( gzip && bzip2 ) {
+        rc = RC(rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous);
+    } else if( g_out_writer.writer != NULL ) {
+        rc = RC(rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous);
+    } else if( (rc = KFileMakeStdOut(&g_out_writer.kfile)) == 0 ) {
+        g_out_writer.pos = 0;
+        if( gzip ) {
+            KFile* gz;
+            if( (rc = KFileMakeGzipForWrite(&gz, g_out_writer.kfile)) == 0 ) {
+                KFileRelease(g_out_writer.kfile);
+                g_out_writer.kfile = gz;
             }
-            else
-            {
-                curs->cache = &curs->cache_local;
-                rc = Cache_Init( &curs->cache_local );
+        } else if( bzip2 ) {
+            KFile* bz;
+            if( (rc = KFileMakeBzip2ForWrite(&bz, g_out_writer.kfile)) == 0 ) {
+                KFileRelease(g_out_writer.kfile);
+                g_out_writer.kfile = bz;
             }
-#endif /* USE_MATE_CACHE */
-            curs->tbl = tbl;
         }
-    }
-    
-    for ( i = 0; cols[ i ].name != NULL; ++i )
-    {
-        if ( cols[ i ].name[ 0 ] == 0 )
-            continue;
-        rc = VCursorAddColumn( curs->vcurs, &cols[ i ].idx, cols[ i ].name );
-        if ( GetRCObject( rc ) == rcColumn )
-        {
-            switch ( GetRCState( rc ) )
-            {
-            case rcNotFound:
-            case rcUndefined:
-                if ( !cols[ i ].optional )
-                    break;
-            case rcExists:
-                rc = 0;
-            default:
-                break;
+        if( rc == 0 ) {
+            KFile* buf;
+            if( (rc = KBufFileMakeWrite(&buf, g_out_writer.kfile, false, 128 * 1024)) == 0 ) {
+                KFileRelease(g_out_writer.kfile);
+                g_out_writer.kfile = buf;
+                g_out_writer.writer = KOutWriterGet();
+                g_out_writer.data = KOutDataGet();
+                rc = KOutHandlerSet(BufferedWriter, &g_out_writer);
             }
         }
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "table $(t) column $(c)", "t=%s,c=%s", tbl->name, cols[ i ].name ) );
-            break;
-        }
-    }
-    if ( rc != 0 )
-    {
-        VCursorRelease( curs->vcurs );
-        curs->vcurs = NULL;
-        if ( rc != KLogLastErrorCode() )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "table $(t)", "t=%s", tbl->name ) );
-        }
-    }
-    else
-    {
-        SAM_DUMP_DBG( 2, ( "%s: table %s\n", __func__, curs->tbl->name ) );
     }
     return rc;
 }
 
-
-static void Cursor_Close( SCurs* curs )
+static
+void BufferedWriterRelease(void)
 {
-    if ( curs != NULL && curs->vcurs != NULL )
-    {
-        SAM_DUMP_DBG( 2, ( "%s: table %s, columns rows read %lu\n", __func__, curs->tbl->name, curs->col_reads_qty ) );
-        VCursorRelease( curs->vcurs );
-#if USE_MATE_CACHE
-        if ( curs->cache == &curs->cache_local )
-        {
-            Cache_Close( curs->tbl->name, curs->cache );
-        }
-#endif /* USE_MATE_CACHE */
-        memset( curs, 0, sizeof( *curs ) );
+    KFileRelease(g_out_writer.kfile);
+    if( g_out_writer.writer != NULL ) {
+        KOutHandlerSet(g_out_writer.writer, g_out_writer.data);
     }
+    g_out_writer.writer = NULL;
 }
 
+typedef struct RefSeq {
+    BSTNode node;
+    char name[1024];
+    char seqid[1024];
+    uint32_t len;
+} RefSeq;
 
-static rc_t Cursor_Read( DataSource *ds, int64_t row_id, int firstCol, unsigned nCols )
+static
+int CC RefSeq_sort( const BSTNode* item, const BSTNode* node )
 {
-    rc_t rc = 0;
-
-    if ( ds->curs.vcurs == NULL )
-    {
-        rc = Cursor_Open( &ds->tbl, &ds->curs, ds->cols, ds->curs.cache );
-        if ( rc != 0 )
-            return rc;
-    }
-    if (1)
-    {
-        SCol *const col = &ds->cols[ firstCol ];
-        unsigned i;
-        
-        for ( i = 0; i < nCols && col[ i ].name; ++i )
-        {
-            uint32_t const idx = col[ i ].idx;
-            
-            if ( idx != 0 )
-            {
-                uint32_t elem_bits;
-                uint32_t bit_offset;
-                uint32_t elem_count;
-                void const *base;
-                
-                rc = VCursorCellDataDirect( ds->curs.vcurs, row_id, idx, &elem_bits, &base, &bit_offset, &elem_count );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogWarn, ( klogWarn, rc, "reading $(t) row $(r), column $(c)", "t=%s,r=%li,c=%s",
-                                               ds->tbl.name, row_id, col[ i ].name ) );
-                    return rc;
-                }
-                
-                assert( bit_offset == 0 );
-                assert( elem_bits % 8 == 0 );
-                
-                col[ i ].base.v = base;
-                col[ i ].len = elem_count;
-            }
-        }
-    }
-    return rc;
+    return strcmp(((const RefSeq*)item)->name, ((const RefSeq*)node)->name);
 }
 
-struct
-{
-    KWrtWriter writer;
-    void* data;
-    KFile* kfile;
-    uint64_t pos;
-} g_out_writer = {NULL};
-
+typedef struct RefSeq_rowrange_data_struct {
+    int64_t ref_id;
+    const RefSeq* node;
+} RefSeq_rowrange_data;
 
-static rc_t CC BufferedWriter( void *const self, char const buffer[], size_t const bufsize, size_t *const pnum_writ )
+static
+void CC RefSeq_dump( BSTNode *n, void *data )
 {
-    rc_t rc = 0;
-    size_t written = 0;
-
-    assert( buffer != NULL );
+    const RefSeq* r = (RefSeq*)n;
+    const SParam* p = (SParam*)data;
+    const char* nm;
 
-    while ( written < bufsize )
-    {
-        size_t n;
-
-        rc = KFileWrite( g_out_writer.kfile, g_out_writer.pos + written, &buffer[ written ], bufsize - written, &n );
-        if ( rc != 0 )
-            break;
-        written += n;
+    if( p->use_seqid && r->seqid[0] != '\0' ) {
+        nm = r->seqid;
+    } else {
+        nm = r->name;
     }
-    g_out_writer.pos += written;
-    if ( pnum_writ != NULL )
-        *pnum_writ = written;
-    return rc;
+    OUTMSG(("@SQ SN:%s", nm));
+    if( nm != r->seqid && r->seqid[0] != '\0' && strcmp(nm, r->seqid) != 0 ) {
+        OUTMSG((" AS:%s", r->seqid));
+    }
+    OUTMSG((" LN:%u\n", r->len));
 }
 
-
-static rc_t BufferedWriterMake( bool gzip, bool bzip2 )
+static
+rc_t CC DumpRefSeqs(const VTable* tbl, const SParam* param)
 {
     rc_t rc = 0;
+    const VCursor* curs;
+    BSTree tree;
 
-    if ( gzip && bzip2 )
-    {
-        rc = RC( rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous );
-    }
-    else if ( g_out_writer.writer != NULL )
-    {
-        rc = RC( rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous );
-    }
-    else
-    {
-        rc = KFileMakeStdOut( &g_out_writer.kfile );
-        if ( rc == 0 )
-        {
-            g_out_writer.pos = 0;
-            if ( gzip )
-            {
-                KFile* gz;
-                rc = KFileMakeGzipForWrite( &gz, g_out_writer.kfile );
-                if ( rc == 0 )
-                {
-                    KFileRelease( g_out_writer.kfile );
-                    g_out_writer.kfile = gz;
-                }
-            }
-            else if ( bzip2 )
-            {
-                KFile* bz;
-                rc = KFileMakeBzip2ForWrite( &bz, g_out_writer.kfile );
-                if ( rc == 0 )
-                {
-                    KFileRelease( g_out_writer.kfile );
-                    g_out_writer.kfile = bz;
-                }
-            }
-            if ( rc == 0 )
-            {
-                KFile* buf;
-                rc = KBufFileMakeWrite( &buf, g_out_writer.kfile, false, 128 * 1024 );
-                if ( rc == 0 )
-                {
-                    KFileRelease( g_out_writer.kfile );
-                    g_out_writer.kfile = buf;
-                    g_out_writer.writer = KOutWriterGet();
-                    g_out_writer.data = KOutDataGet();
-                    rc = KOutHandlerSet( BufferedWriter, &g_out_writer );
+    SCol cols[] = {
+        {"NAME", 0, {NULL}, 0, false},
+        {"SEQ_ID", 0, {NULL}, 0, false},
+        {"SEQ_LEN", 0, {NULL}, 0, false},
+        {NULL, 0, {NULL}, 0, false}
+    };
+    BSTreeInit(&tree);
+    if( (rc = Cursor_Init(tbl, &curs, cols)) == 0 ) {
+        int64_t start;
+        uint64_t count;
+
+        if( (rc = VCursorIdRange(curs, 0, &start, &count)) == 0 ) {
+            RefSeq* node = NULL;
+            uint32_t last_len = 0;
+
+            while( count > 0 && rc == 0 ) {
+                if( (rc = Cursor_Read(curs, start, cols)) == 0 ) {
+                    if( node == NULL || last_len != cols[0].len || strncmp(cols[0].base.str, node->name, cols[0].len) != 0 ) {
+                        node = malloc(sizeof(*node));
+                        if( node == NULL ) {
+                            rc = RC(rcExe, rcNode, rcConstructing, rcMemory, rcExhausted);
+                        } else if( cols[0].len >= sizeof(node->name) ||
+                                   cols[1].len >= sizeof(node->seqid) ) {
+                            rc = RC(rcExe, rcString, rcCopying, rcBuffer, rcInsufficient);
+                        } else {
+                            last_len = cols[0].len;
+                            strncpy(node->name, cols[0].base.str, last_len);
+                            strncpy(node->seqid, cols[1].base.str, cols[1].len);
+                            node->name[last_len] = '\0';
+                            node->seqid[cols[1].len] = '\0';
+                            node->len = 0;
+                            rc = BSTreeInsertUnique(&tree, &node->node, NULL, RefSeq_sort);
+                        }
+                    }
+                    node->len += cols[2].base.coord_len[0];
+                } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow ) {
+                    /* a gap in ids? */
+                    rc = 0;
                 }
+                start++;
+                count--;
             }
         }
+        VCursorRelease(curs);
     }
-    return rc;
-}
-
-
-static void BufferedWriterRelease( bool flush )
-{
-    if ( flush )
-    {
-        /* avoid flushing buffered data after failure */
-        KFileRelease( g_out_writer.kfile );
-    }
-    if ( g_out_writer.writer != NULL )
-    {
-        KOutHandlerSet( g_out_writer.writer, g_out_writer.data );
+    if( rc == 0 ) {
+        BSTreeForEach(&tree, false, RefSeq_dump, (void*)param);
     }
-    g_out_writer.writer = NULL;
+    BSTreeWhack(&tree, NULL, NULL);
+    return rc;
 }
 
-
-typedef struct ReadGroup
-{
+typedef struct ReadGroup {
     BSTNode node;
-    char name[ 1024 ];
+    char name[1024];
 } ReadGroup;
 
-
-static int CC ReadGroup_sort( BSTNode const *item, BSTNode const *node )
-{
-    return strcmp( ( ( ReadGroup const * )item )->name, ( ( ReadGroup const * ) node )->name );
-}
-
-
-static void ReadGroup_print( char const *nm )
+static
+int CC ReadGroup_sort( const BSTNode *item, const BSTNode *node )
 {
-    if ( nm[ 0 ] != '\0' && strcasecmp( nm, "default" ) )
-    {
-        KOutMsg( "@RG\tID:%s\n", nm );
-    }
+    return strcmp(((const ReadGroup*)item)->name, ((const ReadGroup*)node)->name);
 }
 
-
-static void CC ReadGroup_dump( BSTNode *n, void *data )
+static
+void CC ReadGroup_dump( BSTNode *n, void *data )
 {
-    ReadGroup const *g = ( ReadGroup* )n;
-    ReadGroup_print( g->name );
+    const ReadGroup* g = (ReadGroup*)n;
+    OUTMSG(("@RG ID:%s\n", g->name));
 }
 
 
-static rc_t CC DumpReadGroupsScan( STable const *tbl )
+static
+rc_t CC DumpReadGroupsScan(const VTable* tbl)
 {
-    SCol cols[] =
-    {
-        { "SPOT_GROUP", 0, {NULL}, 0, false },
-        { NULL, 0, {NULL}, 0, false }
-    };
     rc_t rc = 0;
+    const VCursor* curs = NULL;
     BSTree tree;
-    DataSource ds;
 
-    memset( &ds, 0, sizeof( ds ) );
-    ds.cols = cols;
+    SCol cols[] = {
+        {"SPOT_GROUP", 0, {NULL}, 0, false},
+        {NULL, 0, {NULL}, 0, false}
+    };
 
-    BSTreeInit( &tree );
-    rc = Cursor_Open( tbl, &ds.curs, ds.cols, NULL );
-    if ( rc == 0 )
-    {
+    BSTreeInit(&tree);
+    if( (rc = Cursor_Init(tbl, &curs, cols)) == 0 ) {
         int64_t start;
         uint64_t count;
 
-        rc = VCursorIdRange( ds.curs.vcurs, 0, &start, &count );
-        if ( rc == 0 )
-        {
-            ReadGroup* node = NULL;
+        if( (rc = VCursorIdRange(curs, 0, &start, &count)) == 0 ) {
+            RefSeq* node = NULL;
             uint32_t last_len = 0;
 
-            while ( count > 0 && rc == 0 )
-            {
-                rc = Cursor_Read( &ds, start, 0, ~(unsigned)0 );
-                if ( rc == 0 && cols[ 0 ].len != 0 )
-                {
-                    if ( node == NULL ||
-                         last_len != cols[ 0 ].len ||
-                         strncmp( cols[ 0 ].base.str, node->name, cols[ 0 ].len ) != 0 )
-                    {
-                        node = malloc( sizeof( *node ) );
-                        if ( node == NULL )
-                        {
-                            rc = RC( rcExe, rcNode, rcConstructing, rcMemory, rcExhausted );
-                        }
-                        else if ( cols[ 0 ].len > sizeof( node->name ) )
-                        {
-                            rc = RC( rcExe, rcString, rcCopying, rcBuffer, rcInsufficient ); 
-                        }
-                        else
-                        {
-                            last_len = cols[ 0 ].len;
-                            strncpy( node->name, cols[ 0 ].base.str, last_len );
-                            node->name[ last_len ] = '\0';
-                            rc = BSTreeInsertUnique( &tree, &node->node, NULL, ReadGroup_sort );
-                            if ( GetRCState( rc ) == rcExists )
-                            {
-                                free( node );
+            while( count > 0 && rc == 0 ) {
+                if( (rc = Cursor_Read(curs, start, cols)) == 0 && cols[0].len != 0 ) {
+                    if( node == NULL || last_len != cols[0].len || strncmp(cols[0].base.str, node->name, cols[0].len) != 0 ) {
+                        node = malloc(sizeof(*node));
+                        if( node == NULL ) {
+                            rc = RC(rcExe, rcNode, rcConstructing, rcMemory, rcExhausted);
+                        } else if( cols[0].len > sizeof(node->name) ) {
+                            rc = RC(rcExe, rcString, rcCopying, rcBuffer, rcInsufficient);
+                        } else {
+                            last_len = cols[0].len;
+                            strncpy(node->name, cols[0].base.str, last_len);
+                            node->name[last_len] = '\0';
+                            rc = BSTreeInsertUnique(&tree, &node->node, NULL, ReadGroup_sort);
+                            if (GetRCState(rc) == rcExists) {
+                                free(node);
                                 rc = 0;
                             }
                         }
                     }
-                }
-                else if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcRow )
-                {
+                } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow ) {
+                    /* a gap in ids? */
                     rc = 0;
                 }
                 start++;
                 count--;
             }
         }
-        Cursor_Close( &ds.curs );
-    }
-
-    if ( rc == 0 )
-    {
-        BSTreeForEach( &tree, false, ReadGroup_dump, NULL );
+        VCursorRelease(curs);
     }
-    else if ( rc != KLogLastErrorCode() )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "$(f)", "f=%s", __func__ ) );
+    if( rc == 0 ) {
+        BSTreeForEach(&tree, false, ReadGroup_dump, NULL);
     }
-    BSTreeWhack( &tree, NULL, NULL );
+    BSTreeWhack(&tree, NULL, NULL);
     return rc;
 }
 
-
-rc_t CC DumpReadGroups( STable const *tbl )
+rc_t CC DumpReadGroups(const VTable* tbl)
 {
     rc_t rc = 0;
-    KMetadata const *m;
+    const KMetadata* m;
 
     /* try getting list from stats meta */
-    rc = VTableOpenMetadataRead( tbl->vtbl, &m );
-    if ( rc == 0 )
-    {
-        KMDataNode const *n;
-        rc = KMetadataOpenNodeRead( m, &n, "/STATS/SPOT_GROUP" );
-        if ( rc == 0 )
-        {
+    if( (rc = VTableOpenMetadataRead(tbl, &m)) == 0 ) {
+        const KMDataNode* n;
+        if( (rc = KMetadataOpenNodeRead(m, &n, "/STATS/SPOT_GROUP")) == 0 ) {
             KNamelist* names;
-            rc = KMDataNodeListChild( n, &names );
-            if ( rc == 0 )
-            {
+            if( (rc = KMDataNodeListChild(n, &names)) == 0 ) {
                 uint32_t i, q;
-                rc = KNamelistCount( names, &q );
-                if ( rc == 0 )
-                {
-                    for ( i = 0; rc == 0 && i < q; i++ )
-                    {
-                        char const *nm;
-                        rc = KNamelistGet( names, i, &nm );
-                        if ( rc == 0 )
-                        {
-                            ReadGroup_print( nm );
+                if( (rc = KNamelistCount(names, &q)) == 0 ) {
+                    for(i = 0; rc == 0 && i < q; i++) {
+                        const char* nm;
+                        if( (rc = KNamelistGet(names, i, &nm)) == 0 && strcasecmp(nm, "default") ) {
+                            OUTMSG(("@RG ID:%s\n", nm));
                         }
                     }
                 }
-                KNamelistRelease( names );
+                KNamelistRelease(names);
             }
-            KMDataNodeRelease( n );
+            KMDataNodeRelease(n);
         }
-        KMetadataRelease( m );
+        KMetadataRelease(m);
     }
-
-    if ( GetRCState( rc ) == rcNotFound )
-    {
-        rc = DumpReadGroupsScan( tbl );
-    }
-    else if ( rc != 0 && rc != KLogLastErrorCode() )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "$(f)", "f=%s", __func__ ) );
-    }
-    return rc;
-}
-
-static rc_t Cursor_ReadAlign( SCurs const *curs, int64_t row_id, SCol* cols, uint32_t idx )
-{
-    rc_t rc = 0;
-    SCol* c = NULL;
-    SCol* mate_id = NULL;
-#if USE_MATE_CACHE
-    uint64_t cache_val = 0;
-    bool cache_miss = false;
-#endif /* USE_MATE_CACHE */
-
-    
-    for( ; rc == 0 && cols[ idx ].name != NULL; idx++ )
-    {
-        c = &cols[ idx ];
-        if ( c->idx != 0 )
-        {
-#if USE_MATE_CACHE
-            if ( mate_id != NULL && curs->cache != NULL && !cache_miss &&
-                ( idx == alg_SAM_FLAGS || idx == alg_MATE_REF_NAME || idx == alg_MATE_REF_POS || idx == alg_TEMPLATE_LEN ) &&
-                mate_id->idx && mate_id->len > 0 && mate_id->base.i64[ 0 ] > 0 )
-            {
-                if ( cache_val != 0 )
-                {
-                    continue;
-                }
-                rc = Cache_Get( curs, mate_id->base.u64[ 0 ], &cache_val );
-                if ( rc == 0 )
-                {
-                    continue;
-                }
-                else if ( !( GetRCObject( rc ) == rcItem && GetRCState( rc ) == rcNotFound ) )
-                {
-                    break;
-                }
-                else
-                {
-                    /* avoid multiple lookups in cache */
-                    cache_miss = true;
-                }
-            }
-#endif /* USE_MATE_CACHE */
-            rc = VCursorCellDataDirect( curs->vcurs, row_id, c->idx, NULL, &c->base.v, NULL, &c->len );
-            if ( rc == 0 )
-            {
-                if ( idx == alg_SEQ_SPOT_ID && ( c->len  ==0 || c->base.i64[ 0 ] == 0 ) )
-                {
-                    return RC( rcExe, rcColumn, rcReading, rcRow, rcNotFound );
-                }
-                if ( idx == alg_MATE_ALIGN_ID )
-                {
-                    mate_id = &cols[ alg_MATE_ALIGN_ID ];
-                }
-#if _DEBUGGING
-                ( ( SCurs* )curs )->col_reads_qty++;
-#endif
-            }
-        }
-        else
-        {
-            static INSDC_coord_zero readStart;
-            static INSDC_coord_len  readLen;
-            static INSDC_coord_len  cigarLen;
-            
-            switch ( (int)idx )
-            {
-            case alg_READ_START:
-                readStart = 0;
-                c->base.coord0 = &readStart;
-                c->len = 1;
-                break;
-            case alg_READ_LEN:
-                readLen = cols[ alg_READ ].len;
-                c->base.coord_len = &readLen;
-                c->len = 1;
-                break;
-            case alg_CIGAR_LEN:
-                cigarLen = cols[ alg_CIGAR ].len;
-                c->base.coord_len = &cigarLen;
-                c->len = 1;
-                break;
-            }
-        }
-    }
-
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogWarn, ( klogWarn, rc, "reading $(t) row $(r), column $(c)", "t=%s,r=%li,c=%s",
-            curs->tbl->name, row_id, c ? c->name : "<none>" ) );
-#if USE_MATE_CACHE
-    }
-    else if ( curs->cache == NULL )
-    {
-    }
-    else if ( cache_val == 0 )
-    {
-        /* this row is not from cache */
-        int64_t mate_align_id = ( mate_id != NULL && mate_id->len > 0 ) ? mate_id->base.i64[ 0 ] : 0;
-        if ( cols[ 0 ].idx != 0 && /* we have full cursor which means we are reading alignment table */
-            /* no mate -> unaligned (not secondary!) */
-            ( ( mate_align_id == 0 && param->unaligned && curs->cache != &curs->cache_local ) ||
-            /* 2nd mate with higher rowid and more than set gap rows away */
-              ( mate_align_id != 0 && mate_align_id > row_id && ( mate_align_id - row_id) > param->mate_row_gap_cachable ) ) )
-        {
-          rc = Cache_Add( row_id, curs, cols );
-        }
-	if(param->unaligned == true && mate_align_id == 0 ){
-	  rc = KVectorSetBool( curs->cache->cache_unaligned_mate, cols[alg_SEQ_SPOT_ID].base.i64[0], true );
-        }
-    }
-    else
-    {
-        Cache_Unpack( cache_val, row_id, curs, cols );
-#endif /* USE_MATE_CACHE */
+    if( GetRCState(rc) == rcNotFound ) {
+        rc = DumpReadGroupsScan(tbl);
     }
     return rc;
 }
 
+enum ealg_col {
+    alg_SEQ_NAME = 0,
+    alg_SAM_FLAGS,
+    alg_MAPQ,
+    alg_CIGAR,
+    alg_MATE_REF_NAME,
+    alg_MATE_REF_POS,
+    alg_READ,
+    alg_SAM_QUALITY,
+    alg_SPOT_GROUP,
+    alg_SEQ_SPOT_GROUP,
+    alg_SEQ_SPOT_ID,
+    alg_SEQ_READ_ID,
+    alg_EDIT_DISTANCE,
+    alg_REGION_FILTER,
+    alg_REF_NAME = alg_REGION_FILTER,
+    alg_REF_SEQ_ID,
+    alg_REF_POS,
+    alg_REF_LEN,
+    alg_DISTANCE_FILTER,
+    alg_TEMPLATE_LEN = alg_DISTANCE_FILTER
+};
 
-static void DumpName( char const *name, size_t name_len,
-                      const char spot_group_sep, char const *spot_group,
-                     size_t spot_group_len, int64_t spot_id )
-{
-    if ( param->cg_friendly_names ) {
-        KOutMsg("%.*s-1:%lu", spot_group_len, spot_group, spot_id);
-    }
-    else {
-        if ( param->name_prefix != NULL )
-        {
-            KOutMsg( "%s.", param->name_prefix );
-        }
-        BufferedWriter( NULL, name, name_len, NULL );
-        if ( param->spot_group_in_name && spot_group_len > 0 )
-        {
-            BufferedWriter( NULL, &spot_group_sep, 1, NULL );
-            BufferedWriter( NULL, spot_group, spot_group_len, NULL );
-        }
-    }
-}
-
-
-static void DumpQuality( char const quality[], unsigned const count, bool const reverse, bool const quantize )
-{
-    if ( quality == NULL )
-    {
-        unsigned i;
-
-        for ( i = 0; i < count; ++i )
-        {
-            char const newValue = ((param->qualQuant && param->qualQuantSingle)?param->qualQuantSingle:30) + 33;
-
-            BufferedWriter( NULL, &newValue, 1, NULL );
-        }
-    }
-    else if ( reverse || quantize )
-    {
-        unsigned i;
-
-        for ( i = 0; i < count; ++i )
-        {
-            char const qual = quality[ reverse ? ( count - i - 1 ) : i ];
-
-            /* changed Jan 29 2013, because some runs dont have the phred_33 - type */
-            /* char const newValue = quantize ? param->qualQuant[ qual - 33 ] + 33 : qual; */
-            char const newValue = ( quantize ? param->qualQuant[ (unsigned int)qual ] : qual ) + 33 ;
-            BufferedWriter( NULL, &newValue, 1, NULL );
-        }
-    }
-    else
-    {
-        /* changed Jan 29 2013, because some runs dont have the phred_33 - type */
-        /* BufferedWriter( NULL, quality, count, NULL ); */
-        unsigned i;
-        for ( i = 0; i < count; ++i )
-        {
-            char const qual = quality[ i ] + 33;
-            BufferedWriter( NULL, &qual, 1, NULL );
-        }
-    }
-}
-
+enum eseq_col {
+    seq_READ = 0,
+    seq_QUALITY,
+    seq_SPOT_GROUP,
+    seq_READ_START,
+    seq_READ_LEN,
+    seq_READ_TYPE,
+    seq_NAME
+};
 
-static void DumpQuality_33( char const quality[], unsigned const count, bool const reverse, bool const quantize )
+static
+void DumpName(const SParam* param, const char* name, size_t name_len,
+              const char spot_group_sep, const char* spot_group, size_t spot_group_len)
 {
-    if ( quality == NULL )
-    {
-        unsigned i;
-
-        for ( i = 0; i < count; ++i )
-        {
-            char const newValue = ((param->qualQuant && param->qualQuantSingle)?param->qualQuantSingle:30) + 33;
-
-            BufferedWriter( NULL, &newValue, 1, NULL );
-        }
-    }
-    else if ( reverse || quantize )
-    {
-        unsigned i;
-
-        for ( i = 0; i < count; ++i )
-        {
-            char const qual = quality[ reverse ? ( count - i - 1 ) : i ];
-            char const newValue = quantize ? param->qualQuant[ qual - 33 ] + 33 : qual;
-            BufferedWriter( NULL, &newValue, 1, NULL );
-        }
+    size_t nm;
+    if( param->name_prefix != NULL ) {
+        OUTMSG(("%s.", param->name_prefix));
     }
-    else
-    {
-        BufferedWriter( NULL, quality, count, NULL );
+    BufferedWriter(NULL, name, name_len, &nm);
+    if( param->spot_group_in_name && spot_group_len > 0 ) {
+        BufferedWriter(NULL, &spot_group_sep, 1, &nm);
+        BufferedWriter(NULL, spot_group, spot_group_len, &nm);
     }
 }
 
-
-static void DumpUnalignedFastX( const SCol cols[], uint32_t read_id, INSDC_coord_zero readStart, INSDC_coord_len readLen, int64_t row_id )
+static
+void DumpUnalignedFastX(const SCol cols[], const SParam* param, uint32_t read_id,
+                        INSDC_coord_zero readStart, INSDC_coord_len readLen)
 {
+    size_t nm;
     /* fast[AQ] represnted in SAM fields:
        [@|>]QNAME unaligned
        SEQ
        +
        QUAL
     */
-    BufferedWriter( NULL, param->fastq ? "@" : ">", 1, NULL );
-
+    BufferedWriter(NULL, param->fastq ? "@" : ">", 1, &nm);
     /* QNAME: [PFX.]SEQUENCE:NAME[#SPOT_GROUP] */
-    DumpName( cols[ seq_NAME ].base.str, cols[ seq_NAME ].len, '#',
-              cols[ seq_SPOT_GROUP ].base.str, cols[ seq_SPOT_GROUP ].len, row_id );
-    if ( read_id > 0 )
-    {
-        KOutMsg( "/%u", read_id );
+    DumpName(param, cols[seq_NAME].base.str, cols[seq_NAME].len, '#', cols[seq_SPOT_GROUP].base.str, cols[seq_SPOT_GROUP].len);
+    if( read_id > 0 ) {
+        OUTMSG(("/%u", read_id));
     }
-    BufferedWriter( NULL, " unaligned\n", 11, NULL );
-
+    BufferedWriter(NULL, " unaligned\n", 11, &nm);
     /* SEQ: SEQUENCE.READ */
-    BufferedWriter( NULL, &cols[ seq_READ ].base.str[readStart], readLen, NULL );
-    if ( param->fastq )
-    {
+    BufferedWriter(NULL, &cols[seq_READ].base.str[readStart], readLen, &nm);
+    if( param->fastq ) {
         /* QUAL: SEQUENCE.QUALITY */
-        BufferedWriter( NULL, "\n+\n", 3, NULL );
-        DumpQuality( &cols[ seq_QUALITY ].base.str[ readStart ], readLen, false, param->quantizeQual );
+        BufferedWriter(NULL, "\n+\n", 3, &nm);
+        BufferedWriter(NULL, &cols[seq_QUALITY].base.str[readStart], readLen, &nm);
     }
-    BufferedWriter( NULL, "\n", 1, NULL );
+    BufferedWriter(NULL, "\n", 1, &nm);
 }
 
-
-static void DumpAlignedFastX( const SCol cols[], int64_t const alignId, uint32_t read_id, bool primary, bool secondary )
+static
+void DumpAlignedFastX(const SCol cols[], const SParam* param, uint32_t read_id, bool primary)
 {
     size_t nm;
-    unsigned readId;
-    unsigned const nreads = cols[ alg_READ_LEN ].len;
-
-    for ( readId = 0; readId < nreads; ++readId )
-    {
-        char const *qname = cols[ alg_SEQ_NAME ].base.str;
-        size_t qname_len = cols[ alg_SEQ_NAME ].len;
-        char synth_qname[ 40 ];
-	int64_t const spot_id = cols[alg_SEQ_SPOT_ID].len > 0 ? cols[alg_SEQ_SPOT_ID].base.i64[0] : 0;
-        char const *const read = cols[ alg_READ ].base.str + cols[ alg_READ_START ].base.coord0[ readId ];
-        char const *const qual = cols[ alg_SAM_QUALITY ].base.v
-                               ? cols[ alg_SAM_QUALITY ].base.str + cols[ alg_READ_START ].base.coord0[ readId ]
-                               : NULL;
-        unsigned const readlen = cols[ alg_READ_LEN ].base.coord_len[ readId ];
-
-        /* fast[AQ] represnted in SAM fields:
-           [@|>]QNAME primary|secondary ref=RNAME pos=POS mapq=MAPQ
-           SEQ
-           +
-           QUAL
-        */
-        BufferedWriter( NULL, param->fastq ? "@" : ">", 1, NULL );
-        /* QNAME: [PFX.]SEQ_NAME[#SPOT_GROUP] */
-        if ( qname_len == 0 || qname == NULL )
-        {
-            string_printf( synth_qname, sizeof( synth_qname ), &qname_len, "%li.%u", alignId, readId + 1 );
-            qname = synth_qname;
-        }
-        nm = cols[ alg_SPOT_GROUP ].len ? alg_SPOT_GROUP : alg_SEQ_SPOT_GROUP;
-        DumpName( qname, qname_len, '.', cols[ nm ].base.str, cols[ nm ].len, spot_id);
-
-        if ( read_id > 0 )
-        {
-            KOutMsg( "/%u", read_id );
-        }
-
-        if ( primary )
-        {
-            BufferedWriter( NULL, " primary", 8, NULL );
-        }
-        else if ( secondary )
-        {
-            BufferedWriter( NULL, " secondary", 10, NULL );
-        }
-
-        /* RNAME: REF_NAME or REF_SEQ_ID */
-        BufferedWriter( NULL, " ref=", 5, NULL );
-        if ( param->use_seqid )
-        {
-            BufferedWriter( NULL, cols[ alg_REF_SEQ_ID ].base.str, cols[ alg_REF_SEQ_ID ].len, NULL );
-        }
-        else
-        {
-            BufferedWriter( NULL, cols[ alg_REF_NAME ].base.str, cols[ alg_REF_NAME ].len, NULL );
-        }
 
-        /* POS: REF_POS, MAPQ: MAPQ */
-        KOutMsg( " pos=%u mapq=%i\n", cols[ alg_REF_POS ].base.coord0[ 0 ] + 1, cols[ alg_MAPQ ].base.i32[ 0 ] );
-        
-        /* SEQ: READ */
-        BufferedWriter( NULL, read, readlen, NULL );
-        if ( param->fastq )
-        {
-            /* QUAL: SAM_QUALITY */
-            BufferedWriter( NULL, "\n+\n", 3, NULL );
-            DumpQuality_33( qual, readlen, false, param->quantizeQual );
-        }
-        BufferedWriter( NULL, "\n", 1, NULL );
+    /* fast[AQ] represnted in SAM fields:
+       [@|>]QNAME primary|secondary ref=RNAME pos=POS mapq=MAPQ
+       SEQ
+       +
+       QUAL
+    */
+    BufferedWriter(NULL, param->fastq ? "@" : ">", 1, &nm);
+    /* QNAME: [PFX.]SEQ_NAME[#SPOT_GROUP] */
+    nm = cols[alg_SPOT_GROUP].len ? alg_SPOT_GROUP : alg_SEQ_SPOT_GROUP;
+    DumpName(param, cols[alg_SEQ_NAME].base.str, cols[alg_SEQ_NAME].len, '#', cols[nm].base.str, cols[nm].len);
+    if( read_id > 0 ) {
+        OUTMSG(("/%u", read_id));
+    }
+    if( primary ) {
+        BufferedWriter(NULL, " primary", 8, &nm);
+    } else {
+        BufferedWriter(NULL, " secondary", 10, &nm);
+    }
+    /* RNAME: REF_NAME or REF_SEQ_ID */
+    BufferedWriter(NULL, " ref=", 5, &nm);
+    if( param->use_seqid ) {
+        BufferedWriter(NULL, cols[alg_REF_SEQ_ID].base.str, cols[alg_REF_SEQ_ID].len, &nm);
+    } else {
+        BufferedWriter(NULL, cols[alg_REF_NAME].base.str, cols[alg_REF_NAME].len, &nm);
+    }
+    /* POS: REF_POS, MAPQ: MAPQ */
+    OUTMSG((" pos=%u mapq=%i\n", cols[alg_REF_POS].base.coord0[0] + 1, cols[alg_MAPQ].base.i32[0]));
+    
+    /* SEQ: READ */
+    BufferedWriter(NULL, cols[alg_READ].base.str, cols[alg_READ].len, &nm);
+    if( param->fastq ) {
+        /* QUAL: SAM_QUALITY */
+        BufferedWriter(NULL, "\n+\n", 3, &nm);
+        BufferedWriter(NULL, cols[alg_SAM_QUALITY].base.str, cols[alg_SAM_QUALITY].len, &nm);
     }
+    BufferedWriter(NULL, "\n", 1, &nm);
 }
 
-
 static
-void DumpUnalignedSAM( const SCol cols[], uint32_t flags, INSDC_coord_zero readStart, INSDC_coord_len readLen,
-                      char const *rnext, uint32_t rnext_len, INSDC_coord_zero pnext, char const readGroup[], int64_t row_id )
+void DumpUnalignedSAM(const SCol cols[], const SParam* param,
+                      uint16_t flags, INSDC_coord_zero readStart, INSDC_coord_len readLen,
+                      const char* rnext, uint32_t rnext_len, INSDC_coord_zero pnext)
 {
-    unsigned i;
-
+    size_t nm;
     /* QNAME: [PFX.]NAME[.SPOT_GROUP] */
-    DumpName( cols[ seq_NAME ].base.str, cols[ seq_NAME ].len, '.',
-              cols[ seq_SPOT_GROUP ].base.str, cols[ seq_SPOT_GROUP ].len, row_id );
+    DumpName(param, cols[seq_NAME].base.str, cols[seq_NAME].len, '.', cols[seq_SPOT_GROUP].base.str, cols[seq_SPOT_GROUP].len);
 
     /* all these fields are const text for now */
-    KOutMsg( "\t%u\t*\t0\t0\t*\t%.*s\t%u\t0\t",
-             flags, rnext_len ? rnext_len : 1, rnext_len ? rnext : "*", pnext );
+    OUTMSG(("\t%u\t*\t0\t0\t*\t%.*s\t%u\t0\t", (unsigned)flags,
+            rnext_len ? rnext_len : 1, rnext_len ? rnext : "*", pnext ? pnext : pnext));
     /* SEQ: SEQUENCE.READ */
-    if ( flags & 0x10 )
-    {
-        for( i = 0; i < readLen; i++ )
-        {
-            char base;
-
-            DNAReverseCompliment( &cols[ seq_READ ].base.str[ readStart + readLen - 1 - i ], &base, 1 );
-            BufferedWriter( NULL, &base, 1, NULL );
-        }
-    }
-    else
-    {
-        BufferedWriter( NULL, &cols[ seq_READ ].base.str[ readStart ], readLen, NULL );
-    }
-
-    BufferedWriter( NULL, "\t", 1, NULL );
+    BufferedWriter(NULL, &cols[seq_READ].base.str[readStart], readLen, &nm);
+    BufferedWriter(NULL, "\t", 1, &nm);
     /* QUAL: SEQUENCE.QUALITY */
-    DumpQuality( &cols[ seq_QUALITY ].base.str[ readStart ], readLen, flags & 0x10, param->quantizeQual );
-
+    BufferedWriter(NULL, &cols[seq_QUALITY].base.str[readStart], readLen, &nm);
     /* optional fields: */
-    if ( readGroup )
-    {
-        BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-        BufferedWriter( NULL, readGroup, strlen( readGroup ), NULL );
-    }
-    else if ( cols[ seq_SPOT_GROUP ].len > 0 )
-    {
+    if( cols[seq_SPOT_GROUP].len > 0 ) {
         /* read group */
-        BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-        BufferedWriter( NULL, cols[ seq_SPOT_GROUP ].base.str, cols[ seq_SPOT_GROUP ].len, NULL );
+        BufferedWriter(NULL, "\tRG:Z:", 6, &nm);
+        BufferedWriter(NULL, cols[seq_SPOT_GROUP].base.str, cols[seq_SPOT_GROUP].len, &nm);
     }
-    BufferedWriter( NULL, "\n", 1, NULL );
+    BufferedWriter(NULL, "\n", 1, &nm);
 }
 
-
 static
-void DumpAlignedSAM(SAM_dump_ctx_t *const ctx,
-                    DataSource const *ds,
-                    int64_t alignId,
-                    char const readGroup[],
-                    int type)
+void DumpAlignedSAM(const SCol cols[], const SParam* param)
 {
-    unsigned const nreads = ds->cols[ alg_READ_LEN ].len;
-    SCol const *const cols = ds->cols;
-    int64_t const spot_id = cols[alg_SEQ_SPOT_ID].len > 0 ? cols[alg_SEQ_SPOT_ID].base.i64[0] : 0;
-    INSDC_coord_one const read_id = cols[alg_SEQ_READ_ID].len > 0 ? cols[alg_SEQ_READ_ID].base.coord1[0] : 0;
-    INSDC_SRA_read_filter const *align_filter = cols[alg_READ_FILTER].len == nreads ? cols[alg_READ_FILTER].base.read_filter : NULL;
-    INSDC_SRA_read_filter seq_filter = 0;
-    unsigned readId;
-    unsigned cigOffset = 0;
-    
-    if (align_filter == NULL && spot_id && read_id && ctx->seq.cols) {
-        rc_t rc;
-        
-        rc = Cursor_Read(&ctx->seq, spot_id, seq_READ_FILTER, 1);
-        if (rc == 0 && ctx->seq.cols[seq_READ_FILTER].len >= read_id)
-            seq_filter = ctx->seq.cols[seq_READ_FILTER].base.read_filter[read_id - 1];
-    }
-    for ( readId = 0; readId < nreads; ++readId ) {
-        char const *qname = cols[ alg_SEQ_NAME ].base.str;
-        size_t qname_len = cols[ alg_SEQ_NAME ].len;
-        char const *const read = cols[ alg_READ ].base.str + cols[ alg_READ_START ].base.coord0[ readId ];
-        char const *const qual = cols[ alg_SAM_QUALITY ].base.v
-                               ? cols[ alg_SAM_QUALITY ].base.str + cols[ alg_READ_START ].base.coord0[ readId ]
-                               : NULL;
-        unsigned const readlen = nreads > 1 ? cols[ alg_READ_LEN ].base.coord_len[ readId ] : cols[ alg_READ ].len;
-        unsigned const sflags = cols[ alg_SAM_FLAGS ].base.v ? cols[ alg_SAM_FLAGS ].base.u32[ readId ] : 0;
-        INSDC_SRA_read_filter const filt = align_filter ? align_filter[readId] : seq_filter;
-        unsigned const flags = (sflags & ~((unsigned)0x200)) | ((filt == SRA_READ_FILTER_REJECT) ? 0x200 : 0);
-        char const *const cigar = cols[ alg_CIGAR ].base.str + cigOffset;
-        unsigned const cigLen = nreads > 1 ? cols[ alg_CIGAR_LEN ].base.coord_len[ readId ] : cols[ alg_CIGAR ].len;
-        size_t nm;
-        char synth_qname[1024];
-        
-        cigOffset += cigLen;
-        if ( qname_len == 0 || qname == NULL )
-        {
-            string_printf( synth_qname, sizeof( synth_qname ), &qname_len, "ALLELE_%li.%u", alignId, readId + 1 );
-            qname = synth_qname;
-        }
-        else if (ds->type == edstt_EvidenceAlignment) {
-            string_printf( synth_qname, sizeof( synth_qname ), &qname_len, "%u/ALLELE_%li.%u", spot_id, cols[ alg_REF_ID ].base.i64[ readId ], cols[ alg_REF_PLOIDY ].base.u32[ readId ] );
-            qname = synth_qname;
-        }
-        nm = cols[ alg_SPOT_GROUP ].len ? alg_SPOT_GROUP : alg_SEQ_SPOT_GROUP;
-        DumpName( qname, qname_len, '.', cols[ nm ].base.str, cols[ nm ].len, spot_id );
-
-        /* FLAG: SAM_FLAGS */
-        if (ds->type == edstt_EvidenceAlignment) {
-            bool const cmpl = cols[alg_REVERSED].base.v && readId < cols[alg_REVERSED].len ? cols[alg_REVERSED].base.tf[readId] : false;
-            
-            KOutMsg( "\t%u\t", 1 | (cmpl ? 0x10 : 0) | (read_id == 1 ? 0x40 : 0x80) );
-        }
-        else if ( !param->unaligned      /** not going to dump unaligned **/
-             && ( flags & 0x1 )     /** but we have sequenced multiple fragments **/
-             && ( flags & 0x8 ) )   /** and not all of them align **/
-        {
-            /*** remove flags talking about multiple reads **/
-            /* turn off 0x001 0x008 0x040 0x080 */
-            KOutMsg( "\t%u\t", flags & ~0xC9 );
-        }
-        else
-            KOutMsg( "\t%u\t", flags );
-        
-        if ( ds->type == edstt_EvidenceAlignment && type == 0 )
-            KOutMsg( "ALLELE_%li.%u", cols[ alg_REF_ID ].base.i64[ readId ], cols[ alg_REF_PLOIDY ].base.u32[ readId ] );
-        else
-        {
-            /* RNAME: REF_NAME or REF_SEQ_ID */
-            if ( param->use_seqid )
-                BufferedWriter( NULL, cols[ alg_REF_SEQ_ID ].base.str, cols[ alg_REF_SEQ_ID ].len, NULL );
-            else
-                BufferedWriter( NULL, cols[ alg_REF_NAME ].base.str, cols[ alg_REF_NAME ].len, NULL );
-        }
-        BufferedWriter( NULL, "\t", 1, NULL );
-        
-        /* POS: REF_POS */
-        KOutMsg( "%i\t", cols[ alg_REF_POS ].base.coord0[ 0 ] + 1 );
-        /* MAPQ: MAPQ */
-        KOutMsg( "%i\t", cols[ alg_MAPQ ].base.i32[ 0 ] );
-        /* CIGAR: CIGAR_* */
-        if (ds->type == edstt_EvidenceInterval) {
-            unsigned i;
-            
-            for (i = 0; i != cigLen; ++i) {
-                char ch = cigar[i];
-                
-                if (ch == 'S')
-                    ch = 'I';
-                BufferedWriter(NULL, &ch, 1, NULL);
-            }
-        }
-        else
-            BufferedWriter( NULL, cigar, cigLen, NULL );
-        BufferedWriter( NULL, "\t", 1, NULL );
-        
-        /* RNEXT: MATE_REF_NAME or '*' */
-        /* PNEXT: MATE_REF_POS or 0 */
-        if ( cols[ alg_MATE_REF_NAME ].len )
-        {
-            if ( cols[ alg_MATE_REF_NAME ].len == cols[ alg_REF_NAME ].len &&
-                memcmp( cols[ alg_MATE_REF_NAME ].base.str, cols[ alg_REF_NAME ].base.str, cols[ alg_MATE_REF_NAME ].len ) == 0 )
-            {
-                BufferedWriter( NULL, "=\t", 2, NULL );
-            }
-            else
-            {
-                BufferedWriter( NULL, cols[ alg_MATE_REF_NAME ].base.str, cols[ alg_MATE_REF_NAME ].len, NULL );
-                BufferedWriter( NULL, "\t", 1, NULL );
-            }
-            KOutMsg( "%u\t", cols[ alg_MATE_REF_POS ].base.coord0[ 0 ] + 1 );
-        }
-        else
-        {
-            BufferedWriter( NULL, "*\t0\t", 4, NULL );
-        }
-        /* TLEN: TEMPLATE_LEN */
-        KOutMsg( "%i\t", cols[ alg_TEMPLATE_LEN ].base.v ? cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] : 0 );
-        /* SEQ: READ */
-        BufferedWriter( NULL, read, readlen, NULL );
-        BufferedWriter( NULL, "\t", 1, NULL );
-        /* QUAL: SAM_QUALITY */
-        DumpQuality_33( qual, readlen, false, param->quantizeQual );
-    
-        /* optional fields: */
-        if ( ds->type == edstt_EvidenceInterval )
-        {
-            KOutMsg( "\tRG:Z:ALLELE_%u", readId + 1 );
-        }
-        if ( readGroup )
-        {
-            BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-            BufferedWriter( NULL, readGroup, strlen( readGroup ), NULL );
-        }
-        else if ( cols[ alg_SPOT_GROUP ].len > 0 )
-        {
-            /* read group */
-            BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-            BufferedWriter( NULL, cols[ alg_SPOT_GROUP ].base.str, cols[ alg_SPOT_GROUP ].len, NULL );
-        }
-        else if ( cols[ alg_SEQ_SPOT_GROUP ].len > 0 )
-        {
-            /* backward compatibility */
-            BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-            BufferedWriter( NULL, cols[ alg_SEQ_SPOT_GROUP ].base.str, cols[ alg_SEQ_SPOT_GROUP ].len, NULL );
-        }
-        if ( param->cg_style > 0 && cols[ alg_CG_TAGS_STR ].len > 0 )
-        {
-            BufferedWriter( NULL, cols[ alg_CG_TAGS_STR ].base.str, cols[ alg_CG_TAGS_STR ].len, NULL );
-        }
-
-        if ( param->cg_style > 0 && cols[ alg_ALIGN_GROUP ].len > 0 )
-        {
-            char const *ZI = cols[ alg_ALIGN_GROUP ].base.str;
-            unsigned i;
-            
-            for ( i = 0; i < cols[ alg_ALIGN_GROUP ].len - 1; ++i )
-            {
-                if ( ZI[ i ] == '_' )
-                {
-                    KOutMsg( "\tZI:i:%.*s\tZA:i:%.1s", i, ZI, ZI + i + 1 );
-                    break;
-                }
-            }
-        }
-        else if ( ds->type == edstt_EvidenceAlignment && type == 1 )
-            KOutMsg( "\tZI:i:%li\tZA:i:%u", cols[ alg_REF_ID ].base.i64[ readId ], cols[ alg_REF_PLOIDY ].base.u32[ readId ] );
-
-        /* align id */
-        if ( param->xi )
-            KOutMsg( "\tXI:i:%li", alignId );
-
-        /* hit count */
-        if (cols[alg_ALIGNMENT_COUNT].len)
-            KOutMsg( "\tNH:i:%i", (int)cols[ alg_ALIGNMENT_COUNT ].base.u8[ readId ] );
-
-        /* edit distance */
-        if ( cols[ alg_EDIT_DISTANCE ].len )
-            KOutMsg( "\tNM:i:%i", cols[ alg_EDIT_DISTANCE ].base.i32[ readId ] );
+    size_t nm;
+    uint32_t flags;
+
+    /* QNAME: [SPOT_GROUP.]SEQ_NAME */
+    nm = cols[alg_SPOT_GROUP].len ? alg_SPOT_GROUP : alg_SEQ_SPOT_GROUP;
+    DumpName(param, cols[alg_SEQ_NAME].base.str, cols[alg_SEQ_NAME].len, '.', cols[nm].base.str, cols[nm].len);
+    /* FLAG: SAM_FLAGS */
+    flags = cols[alg_SAM_FLAGS].base.u32[0];
+    if( !param->unaligned ) {
+        flags &= ~0xC9; /* turn off 0x001 0x008 0x040 0x080 */
+    }
+    OUTMSG(("\t%u\t", flags));
+    /* RNAME: REF_NAME or REF_SEQ_ID */
+    if( param->use_seqid ) {
+        BufferedWriter(NULL, cols[alg_REF_SEQ_ID].base.str, cols[alg_REF_SEQ_ID].len, &nm);
+        BufferedWriter(NULL, "\t", 1, &nm);
+    } else {
+        BufferedWriter(NULL, cols[alg_REF_NAME].base.str, cols[alg_REF_NAME].len, &nm);
+        BufferedWriter(NULL, "\t", 1, &nm);
+    }
+    /* POS: REF_POS */
+    OUTMSG(("%u\t", cols[alg_REF_POS].base.coord0[0] + 1));
+    /* MAPQ: MAPQ */
+    OUTMSG(("%i\t", cols[alg_MAPQ].base.i32[0]));
+    /* CIGAR: CIGAR_* */
+    BufferedWriter(NULL, cols[alg_CIGAR].base.str, cols[alg_CIGAR].len, &nm);
+    BufferedWriter(NULL, "\t", 1, &nm);
+    
+    /* RNEXT: MATE_REF_NAME or '*' */
+    if( cols[alg_MATE_REF_NAME].len ) {
+        if( cols[alg_MATE_REF_NAME].len == cols[alg_REF_NAME].len &&
+            memcmp(cols[alg_MATE_REF_NAME].base.str, cols[alg_REF_NAME].base.str, cols[alg_MATE_REF_NAME].len) == 0 ) {
+            BufferedWriter(NULL, "=\t", 2, &nm);
+        } else {
+            BufferedWriter(NULL, cols[alg_MATE_REF_NAME].base.str, cols[alg_MATE_REF_NAME].len, &nm);
+            BufferedWriter(NULL, "\t", 1, &nm);
+        }
+    } else {
+        BufferedWriter(NULL, "*\t", 2, &nm);
+    }
+    /* PNEXT: MATE_REF_POS or 0 */
+    if( cols[alg_MATE_REF_POS].len ) {
+        OUTMSG(("%u\t", cols[alg_MATE_REF_POS].base.coord0[0] + 1));
+    } else {
+        BufferedWriter(NULL, "0\t", 2, &nm);
+    }
+    /* TLEN: TEMPLATE_LEN */
+    OUTMSG(("%i\t", cols[alg_TEMPLATE_LEN].base.i32[0]));
+    /* SEQ: READ */
+    BufferedWriter(NULL, cols[alg_READ].base.str, cols[alg_READ].len, &nm);
+    BufferedWriter(NULL, "\t", 1, &nm);
+    /* QUAL: SAM_QUALITY */
+    BufferedWriter(NULL, cols[alg_SAM_QUALITY].base.str, cols[alg_SAM_QUALITY].len, &nm);
 
-        KOutMsg( "\n" );
+    /* optional fields: */
+    if( cols[alg_SPOT_GROUP].len > 0 ) {
+        /* read group */
+        BufferedWriter(NULL, "\tRG:Z:", 6, &nm);
+        BufferedWriter(NULL, cols[alg_SPOT_GROUP].base.str, cols[alg_SPOT_GROUP].len, &nm);
+    } else if( cols[alg_SEQ_SPOT_GROUP].len > 0 ) {
+        /* backward compatibility */
+        BufferedWriter(NULL, "\tRG:Z:", 6, &nm);
+        BufferedWriter(NULL, cols[alg_SEQ_SPOT_GROUP].base.str, cols[alg_SEQ_SPOT_GROUP].len, &nm);
     }
+    /* edit distance */
+    OUTMSG(("\tNM:i:%i\n", cols[alg_EDIT_DISTANCE].len ? cols[alg_EDIT_DISTANCE].base.i32[0] : 0));
 }
 
-
-static rc_t DumpUnalignedReads( SAM_dump_ctx_t *const ctx, SCol const calg_col[], int64_t row_id, uint64_t* rcount )
+static
+rc_t DumpUnalignedSpot(const SParam* param, const SCol calg_col[], int64_t row_id,
+                       const VCursor* cseq, SCol cseq_col[], int col_id, uint64_t* rcount)
 {
     rc_t rc = 0;
     uint32_t i, nreads = 0;
 
-    if ( calg_col != NULL )
-    {
-        if ( calg_col[ alg_SAM_FLAGS ].base.u32[ 0 ] & 0x02 )
-        {
-            /* skip all aligned rows by flag */
-            return rc;
-        }
+    if( calg_col != NULL ) {
         /* get primary alignments only */
-        rc = Cursor_Read( &ctx->seq, calg_col[ alg_SEQ_SPOT_ID ].base.i64[ 0 ], seq_PRIMARY_ALIGNMENT_ID, ~(unsigned)0 );
-        if ( rc == 0 )
-        {
-            for ( i = 0; i < ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len; i++ )
-            {
-                if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ] != 0 )
-                {
-                    if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ] < row_id )
-                    {
-                        /* unaligned were printed with 1st aligment */
-                        return rc;
-                    }
-                }
-                else
-                {
-                    nreads++;
+        rc = Cursor_Read(cseq, calg_col[alg_SEQ_SPOT_ID].base.i64[0], &cseq_col[col_id]);
+
+        for(i = 0; i < cseq_col[col_id].len; i++) {
+            if( cseq_col[col_id].base.i64[i] != 0 ) {
+                if( cseq_col[col_id].base.i64[i] < row_id ) {
+                    /* unaligned were printed with 1st aligment */
+                    return rc;
                 }
+            } else {
+                nreads++;
             }
-            if ( nreads == ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len )
-            {
-                /* skip all aligned rows by actual data, if flag above is not set properly */
-                return rc;
-            }
-            row_id = calg_col[ alg_SEQ_SPOT_ID ].base.i64[ 0 ];
         }
+        if( nreads == cseq_col[col_id].len ) {
+            /* all aligned */
+            return rc;
+        }
+        row_id = calg_col[alg_SEQ_SPOT_ID].base.i64[0];
     }
-    if ( rc == 0 )
-    {
-        rc = Cursor_Read( &ctx->seq, row_id, 0, ~(unsigned)0 );
-        if ( rc == 0 )
-        {
-            unsigned non_empty_reads = 0;
-            
-            nreads = ctx->seq.cols[ seq_READ_LEN ].idx != 0 ? ctx->seq.cols[ seq_READ_LEN ].len : 1;
-
-            for( i = 0; i < nreads; i++ ) {
-                unsigned const readLen = ctx->seq.cols[ seq_READ_LEN ].idx
-                                       ? ctx->seq.cols[ seq_READ_LEN ].base.coord_len[ i ]
-                                       : 0;
-                
-                if (readLen)
-                    ++non_empty_reads;
-            }
-            for( i = 0; i < nreads; i++ )
-            {
-                INSDC_coord_zero readStart;
-                INSDC_coord_len readLen;
-
-                if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].idx != 0 && 
-                     ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ] != 0 )
-                {
-                    continue;
-                }
-
-                if ( ctx->seq.cols[ seq_READ_TYPE ].idx != 0 && 
-                     !( ctx->seq.cols[ seq_READ_TYPE ].base.read_type[ i ] & SRA_READ_TYPE_BIOLOGICAL ) )
-                {
-                    continue;
-                }
+    if( (rc = Cursor_Read(cseq, row_id, cseq_col)) == 0 ) {
+        nreads = cseq_col[seq_READ_LEN].idx != 0 ? cseq_col[seq_READ_LEN].len : 1;
 
-                readLen = ctx->seq.cols[ seq_READ_LEN ].idx ? 
-                            ctx->seq.cols[ seq_READ_LEN ].base.coord_len[ i ] :
-                            ctx->seq.cols[ seq_READ ].len;
-                if ( readLen == 0 )
-                {
-                    continue;
-                }
+        for(i = 0; i < nreads; i++) {
+            INSDC_coord_zero readStart;
+            INSDC_coord_len readLen;
 
-                readStart = ctx->seq.cols[ seq_READ_START ].idx ?
-                                ctx->seq.cols[ seq_READ_START ].base.coord0[ i ] :
-                                0;
-                if ( param->fasta || param->fastq )
-                {
-                    DumpUnalignedFastX( ctx->seq.cols, nreads > 1 ? i + 1 : 0, readStart, readLen, row_id );
-                }
-                else
-                {
-                    uint32_t cflags = 0x4;
-                    if ( param->reverse_unaligned )
-                    {
-                        if ( ctx->seq.cols[ seq_READ_TYPE ].base.read_type[ i ] & SRA_READ_TYPE_REVERSE )
-                        {
-                            cflags |= 0x10;
-                        }
-                        if ( ctx->seq.cols[ seq_READ_TYPE ].base.read_type[ i == nreads - 1 ? 0 : ( i + 1 ) ] & SRA_READ_TYPE_REVERSE )
-                        {
-                            cflags |= 0x20;
-                        }
-                    }
-                    if ( ctx->seq.cols[ seq_READ_FILTER ].idx != 0 )
-                    {
-                        if ( ctx->seq.cols[ seq_READ_FILTER ].base.read_filter[ i ] == SRA_READ_FILTER_REJECT )
-                        {
-                            cflags |= 0x200;
-                        }
-                        else if ( ctx->seq.cols[ seq_READ_FILTER ].base.read_filter[ i ] == SRA_READ_FILTER_CRITERIA )
-                        {
-                            cflags |= 0x400;
-                        }
-                    }
-                    if ( calg_col == NULL )
-                    {
-                        DumpUnalignedSAM( ctx->seq.cols, cflags |
-                                          ( non_empty_reads > 1 ? ( 0x1 | 0x8 | ( i == 0 ? 0x40 : 0x00 ) | ( i == nreads - 1 ? 0x80 : 0x00 ) ) : 0x00 ),
-                                          readStart, readLen, NULL, 0, 0, ctx->readGroup, row_id );
-                    }
-                    else
-                    {
-                        int c = param->use_seqid ? alg_REF_SEQ_ID : alg_REF_NAME;
-                        uint16_t flags = cflags | 0x1 |
-                                         ( ( calg_col[ alg_SAM_FLAGS ].base.u32[ 0 ] & 0x10 ) << 1 ) |
-                                         ( ( calg_col[ alg_SAM_FLAGS ].base.u32[ 0 ] & 0x40 ) ? 0x80 : 0x40 );
-                        DumpUnalignedSAM( ctx->seq.cols, flags, readStart, readLen,
-                                          calg_col[ c ].base.str, calg_col[ c ].len,
-                                          calg_col[ alg_REF_POS ].base.coord0[ 0 ] + 1, ctx->readGroup, row_id );
-                    }
+            if( calg_col != NULL && cseq_col[col_id].base.i64[i] != 0 ) {
+                continue;
+            }
+            if( cseq_col[seq_READ_TYPE].idx != 0 && !(cseq_col[seq_READ_TYPE].base.read_type[i] & SRA_READ_TYPE_BIOLOGICAL) ) {
+                continue;
+            }
+            readLen = cseq_col[seq_READ_LEN].idx ? cseq_col[seq_READ_LEN].base.coord_len[i] : cseq_col[seq_READ].len;
+            if( readLen == 0 ) {
+                continue;
+            }
+            readStart = cseq_col[seq_READ_START].idx ? cseq_col[seq_READ_START].base.coord0[i] : 0;
+            if( param->fasta || param->fastq) {
+                DumpUnalignedFastX(cseq_col, param, nreads > 1 ? i + 1 : 0, readStart, readLen);
+            } else {
+                if( calg_col == NULL ) {
+                    DumpUnalignedSAM(cseq_col, param,
+                        4 | (nreads > 1 ? 1 : 0) | (i == 0 ? 0x40 : 0) | (i == nreads - 1 ? 0x80 : 0),
+                        readStart, readLen, NULL, 0, 0);
+                } else {
+                    int c = param->use_seqid ? alg_REF_SEQ_ID : alg_REF_NAME;
+                    uint16_t flags = 1 | 4 |
+                                     ((calg_col[alg_SAM_FLAGS].base.u32[0] & 0x10) << 1) |
+                                     ((calg_col[alg_SAM_FLAGS].base.u32[0] & 0x40) ? 0x80 : 0x40) |
+                                     (calg_col[alg_SAM_FLAGS].base.u32[0] & 0x400);
+                    DumpUnalignedSAM(cseq_col, param, flags, readStart, readLen,
+                        calg_col[c].base.str, calg_col[c].len, calg_col[alg_REF_POS].base.coord0[0] + 1);
                 }
-                *rcount = *rcount + 1;
+            }
+            if( rcount != NULL ) {
+                *rcount += 1;
             }
         }
     }
     return rc;
 }
 
-
-static bool AlignRegionFilter( SCol const *cols )
+static
+bool AlignRegionFilter(const SParam* param, const SCol* cols)
 {
-    if ( param->region_qty == 0 )
-        return true;
-    if ( cols[ alg_REF_NAME ].len != 0 || cols[ alg_REF_SEQ_ID ].len != 0 )
-    {
-        unsigned i;
+    if( cols[alg_REF_NAME].len != 0 || cols[alg_REF_SEQ_ID].len != 0 ) {
+        uint32_t i, j, k;
 
-        assert( cols[ alg_REF_POS ].len == cols[ alg_REF_LEN ].len );
+        assert(cols[alg_REF_POS].len == cols[alg_REF_LEN].len);
 
-        for ( i = 0; i < param->region_qty; i++ )
-        {
-            unsigned j;
-            
-            for ( j = 0; j < cols[ alg_REF_POS ].len; j++ )
-            {
-                unsigned const refStart_zero = cols[ alg_REF_POS ].base.coord0[ j ];
-                unsigned const refEnd_exclusive = refStart_zero + cols[ alg_REF_LEN ].base.coord_len[ j ];
-                unsigned k;
-                
-                for ( k = 0; k < param->region[ i ].rq; k++ )
-                {
-                    unsigned const from_zero = param->region[ i ].r[ k ].from;
-                    unsigned const to_inclusive = param->region[ i ].r[ k ].to;
-                    
-                    if ( from_zero < refEnd_exclusive && refStart_zero <= to_inclusive )
+        for(i = 0; i < param->region_qty; i++) {
+            for(j = 0; j < cols[alg_REF_POS].len; j++) {
+                for(k = 0; k < param->region[i].rq; k++) {
+                    if( !( cols[alg_REF_POS].base.coord0[j] + cols[alg_REF_LEN].base.coord_len[j] < param->region[i].r[k].from ||
+                           cols[alg_REF_POS].base.coord0[j] > param->region[i].r[k].to ) ) {
                         return true;
+                    }
                 }
             }
         }
@@ -1805,26 +764,19 @@ static bool AlignRegionFilter( SCol const *cols )
     return false;
 }
 
-
-static bool AlignDistanceFilter( SCol const *cols )
+static
+bool AlignDistanceFilter(const SParam* param, const SCol* cols)
 {
-    if ( param->mp_dist_qty != 0 || param->mp_dist_unknown )
-    {
-        if ( cols[ alg_TEMPLATE_LEN ].len == 0 && param->mp_dist_unknown )
-        {
+    if( param->mp_dist_qty != 0 || param->mp_dist_unknown ) {
+        if( cols[alg_TEMPLATE_LEN].len == 0 && param->mp_dist_unknown ) {
             return true;
-        }
-        else
-        {
+        } else {
             uint32_t i, j;
-            for( i = 0; i < param->mp_dist_qty; i++ )
-            {
-                for( j = 0; j < cols[ alg_TEMPLATE_LEN ].len; j++ )
-                {
-                    if ( ( cols[ alg_TEMPLATE_LEN ].base.i32[ j ] == 0 && param->mp_dist_unknown ) ||
-                         ( param->mp_dist[ i ].from <= cols[ alg_TEMPLATE_LEN ].base.i32[ j ] &&
-                         cols[ alg_TEMPLATE_LEN ].base.i32[ j ] <= param->mp_dist[ i ].to ) )
-                    {
+            for(i = 0; i < param->mp_dist_qty; i++) {
+                for(j = 0; j < cols[alg_TEMPLATE_LEN].len; j++) {
+                    if( (cols[alg_TEMPLATE_LEN].base.i32[j] == 0 && param->mp_dist_unknown) ||
+                        (param->mp_dist[i].from <= cols[alg_TEMPLATE_LEN].base.i32[j] &&
+                         cols[alg_TEMPLATE_LEN].base.i32[j] <= param->mp_dist[i].to) ) {
                         return true;
                     }
                 }
@@ -1835,3036 +787,765 @@ static bool AlignDistanceFilter( SCol const *cols )
     return true;
 }
 
-
-typedef struct cgOp_s
-{
-    uint16_t length;
-    uint8_t type; /* 0: match, 1: insert, 2: delete */
-    char code;
-} cgOp;
-
-
-static void print_CG_cigar( int line, cgOp const op[], unsigned const ops, unsigned const gap[ 3 ] )
-{
-#if _DEBUGGING
-    unsigned i;
-    
-    SAM_DUMP_DBG( 3, ( "%5i: ", line ) );
-    for ( i = 0; i < ops; ++i )
-    {
-        if ( gap && ( i == gap[ 0 ] || i == gap[ 1 ] || i == gap[ 2 ] ) )
-        {
-            SAM_DUMP_DBG( 3, ( "%u%c", op[ i ].length, tolower( op[ i ].code ) ) );
-        }
-        else
-        {
-            SAM_DUMP_DBG( 3, ( "%u%c", op[ i ].length, toupper( op[ i ].code ) ) );
-        }
-    }
-    SAM_DUMP_DBG( 3, ( "\n" ) );
-#endif
-}
-
-/* gap contains the indices of the wobbles in op
- * gap[0] is between read 1 and 2; it is the 'B'
- * gap[1] is between read 2 and 3; it is an 'N'
- * gap[2] is between read 3 and 4; it is an 'N'
- */
-
-static rc_t CIGAR_to_CG_Ops( cgOp op[], unsigned const maxOps,
-                             unsigned *const opCnt,
-                             unsigned gap[ 3 ],
-                             char const cigar[], unsigned const ciglen,
-                             unsigned *const S_adjust,
-                             unsigned *const CG_adjust,
-                             unsigned const read,
-                             bool const reversed )
+static
+rc_t DumpAlignmentList(const SParam* param, const VCursor* curs, SCol* cols, const SCol* ids,
+                       const VCursor* cseq, SCol cseq_col[], int col_id)
 {
-    unsigned i;
-    unsigned ops = 0;
-    unsigned gapno;
-
-    *opCnt = 0;
-    *S_adjust = 0;
-    for ( i = 0; i < ciglen; ++ops )
-    {
-        char opChar=0;
-        int opLen=0;
-        int n;
-
-	for(n=0;n+i<ciglen && isdigit(cigar[n+i]);n++){
-		opLen = opLen * 10 + cigar[n+i] - '0';
-	}
-	if(n+i<ciglen){
-		opChar = cigar[n+i];
-		n++;
-	}
-        if ( ops + 1 >= maxOps )
-            return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-
-        i += n;
-        
-        op[ ops ].length = opLen;
-        op[ ops ].code = opChar;
-        switch ( opChar )
-        {
-        case 'M':
-        case '=':
-        case 'X':
-            op[ ops ].type = 0;
-            break;
-        case 'S':
-            *S_adjust += opLen;
-        case 'I':
-            op[ ops ].type = 1;
-            op[ ops ].code = 'I';
-            break;
-        case 'D':
-            op[ ops ].type = 2;
-            break;
-        default:
-            return RC( rcExe, rcData, rcReading, rcConstraint, rcViolated );
-        }
-    }
-    *opCnt = ops;
-    gap[ 0 ] = gap[ 1 ] = gap[ 2 ] = ops;
-    print_CG_cigar( __LINE__, op, ops, NULL );
-    if ( ops < 3 )
-        return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-
-    {
-        unsigned fwd = 0; /* 5 10 10 10 */
-        unsigned rev = 0; /* 10 10 10 5 */
-        unsigned acc; /* accumulated length */
-        
-        if ( ( read == 1 && !reversed ) || ( read == 2 && reversed ) )
-        {
-            for ( i = 0, acc = 0; i < ops  && acc <=5; ++i )
-            {
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[ i + 1 ].type == 1 )
-                    {
-                        fwd = i + 1;
-                        break;
-                    }
-                    else if ( acc > 5 )
-                    {
-                        unsigned const right = acc - 5;
-                        unsigned const left = op[ i ].length - right;
-                        
-                        memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                        ops += 2;
-                        op[ i ].length = left;
-                        op[ i + 2 ].length = right;
-                        
-                        op[ i + 1 ].type = 1;
-                        op[ i + 1 ].code = 'B';
-                        op[ i + 1 ].length = 0;
-                        
-                        fwd = i + 1;
-                        break;
-                    }
-                }
-            }
-        }
-        else if ( ( read == 2 && !reversed ) || ( read == 1 && reversed ) )
-        {
-            for ( i = ops, acc = 0; i > 0 && acc <= 5; )
-            {
-                --i;
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[ i ].type == 1 )
-                    {
-                        rev = i;
-                        break;
+    rc_t rc = 0;
+    uint32_t i;
+
+    for(i = 0; rc == 0 && i < ids->len; i++) {
+        if( (rc = Cursor_Read(curs, ids->base.i64[i], &cols[alg_REGION_FILTER])) == 0 ) {
+            if( AlignRegionFilter(param, cols) && AlignDistanceFilter(param, cols) ) {
+                if( (rc = Cursor_Read(curs, ids->base.i64[i], cols)) == 0 ) {
+                    if( param->fasta || param->fastq) {
+                        DumpAlignedFastX(cols, param, cols[alg_SEQ_READ_ID].base.coord1[0], cseq != NULL);
+                    } else {
+                        DumpAlignedSAM(cols, param);
                     }
-                    else if ( acc > 5 )
-                    {
-                        unsigned const left = acc - 5;
-                        unsigned const right = op[ i ].length - left;
-                        
-                        memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                        ops += 2;
-                        op[ i ].length = left;
-                        op[ i + 2 ].length = right;
-                        
-                        op[ i + 1 ].type = 1;
-                        op[ i + 1 ].code = 'B';
-                        op[ i + 1 ].length = 0;
-                         
-                        rev = i + 1;
-                        break;
+                    if( cseq_col && param->unaligned ) {
+                        rc = DumpUnalignedSpot(param, cols, ids->base.i64[i], cseq, cseq_col, col_id, NULL);
                     }
                 }
             }
+        } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow ) {
+            /* a gap in ids? */
+            rc = 0;
         }
-        else
-        {
-            /* fprintf(stderr, "guessing layout\n"); */
-            for ( i = 0, acc = 0; i < ops  && acc <= 5; ++i )
-            {
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[ i + 1 ].type == 1 )
-                    {
-                        fwd = i + 1;
-                    }
-                }
-            }
-            for ( i = ops, acc = 0; i > 0 && acc <= 5; )
-            {
-                --i;
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[i].type == 1 )
-                    {
-                        rev = i;
+        rc = rc ? rc : Quitting();
+    }
+    return rc;
+}
+
+static
+rc_t DumpAlignments(const SParam* param, const VTable* talgP, const VTable* talgS,
+                    const VTable* tref, const VTable* tseq)
+{
+    rc_t rc = 0;
+    const VCursor *calgP = NULL, *calgS = NULL, *cseq = NULL;
+
+    /* see enums above!!! */
+    SCol calg_col[] = {
+        {"SEQ_NAME", 0, {NULL}, 0, false},
+        {"SAM_FLAGS", 0, {NULL}, 0, false},
+        {"MAPQ", 0, {NULL}, 0, false},
+        {"?CIGAR field column name?", 0, {NULL}, 0, false},
+        {"MATE_REF_NAME", 0, {NULL}, 0, false},
+        {"MATE_REF_POS", 0, {NULL}, 0, false},
+        {"?READ filed column name?", 0, {NULL}, 0, false},
+        {"SAM_QUALITY", 0, {NULL}, 0, false},
+        {"SPOT_GROUP", 0, {NULL}, 0, true},
+        {"SEQ_SPOT_GROUP", 0, {NULL}, 0, true},
+        {"SEQ_SPOT_ID", 0, {NULL}, 0, true},
+        {"SEQ_READ_ID", 0, {NULL}, 0, true},
+        {"EDIT_DISTANCE", 0, {NULL}, 0, false},
+        /* this are read before any other for filtering so they must be last */
+        {"REF_NAME", 0, {NULL}, 0, false},
+        {"REF_SEQ_ID", 0, {NULL}, 0, false},
+        {"REF_POS", 0, {NULL}, 0, false},
+        {"REF_LEN", 0, {NULL}, 0, false},
+        {"TEMPLATE_LEN", 0, {NULL}, 0, false},
+        {NULL, 0, {NULL}, 0, false}
+    },
+    cseq_col[] = {
+        /* APPEND ONLY TO THIS LIST OF COLUMNS!!!
+           unless you change enum above and SCol in DumpUnaligned below in sync!! */
+        {"READ", 0, {NULL}, 0, false},
+        {"(INSDC:quality:text:phred_33)QUALITY", 0, {NULL}, 0, false},
+        {"SPOT_GROUP", 0, {NULL}, 0, true},
+        {"READ_START", 0, {NULL}, 0, true},
+        {"READ_LEN", 0, {NULL}, 0, true},
+        {"READ_TYPE", 0, {NULL}, 0, true},
+        {"NAME", 0, {NULL}, 0, true},
+        {"PRIMARY_ALIGNMENT_ID", 0, {NULL}, 0, true},
+        {NULL, 0, {NULL}, 0, false}
+    };
+    if( param->fasta || param->fastq ) {
+        calg_col[alg_READ].name = "RAW_READ";
+    } else {
+        calg_col[alg_READ].name = param->hide_identical? "MISMATCH_READ" : "READ";
+    }
+    calg_col[alg_CIGAR].name = param->long_cigar ? "CIGAR_LONG" : "CIGAR_SHORT";
+
+    if( (rc = Cursor_Init(talgP, &calgP, calg_col)) == 0 &&
+        (rc = Cursor_Init(talgS, &calgS, calg_col)) == 0 &&
+        ((param->unaligned && (rc = Cursor_Init(tseq,  &cseq, cseq_col)) == 0) || !param->unaligned) ) {
+
+        int64_t start = 0;
+        uint64_t count = 0;
+
+        if( param->region_qty == 0 ) {
+            SAM_DUMP_DBG(2, ("%s PRIMARY_ALIGNMENTs\n", param->accession));
+            if( rc == 0 && (rc = VCursorIdRange(calgP, 0, &start, &count)) == 0 ) {
+                uint64_t rcount = 0;
+
+                SAM_DUMP_DBG(2, ("range from %ld qty %lu\n", start, count));
+                while( count > 0 && rc == 0 ) {
+                    if( (rc = Cursor_Read(calgP, start, &calg_col[alg_DISTANCE_FILTER])) == 0 ) {
+                        if( AlignDistanceFilter(param, calg_col) ) {
+                            if( (rc = Cursor_Read(calgP, start, calg_col)) == 0 ) {
+                                if( param->fasta || param->fastq ) {
+                                    DumpAlignedFastX(calg_col, param, calg_col[alg_SEQ_READ_ID].base.coord1[0], true);
+                                } else {
+                                    DumpAlignedSAM(calg_col, param);
+                                }
+                                if( param->unaligned ) {
+                                    rc = DumpUnalignedSpot(param, calg_col, start, cseq, cseq_col, seq_NAME + 1, &rcount);
+                                }
+                            }
+                        }
+                    } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow ) {
+                        /* a gap in ids? */
+                        rc = 0;
                     }
+                    start++;
+                    count--;
+                    ++rcount;
+                    rc = rc ? rc : Quitting();
                 }
-            }
-            if ( ( fwd == 0 && rev == 0 ) || ( fwd != 0 && rev != 0 ) )
-            {
-                for ( i = 0; i < ops; ++i )
-                {
-                    if ( op[ i ].type == 2 )
-                    {
-                        op[ i ].code = 'N';
-                        *CG_adjust += op[ i ].length;
+                SAM_DUMP_DBG(2, ("%s: dumped %lu PRIMARY_ALIGNMENTs\n", param->accession, rcount));
+            }
+            SAM_DUMP_DBG(2, ("%s SECONDARY_ALIGNMENTs\n", param->accession));
+            if( calgS != NULL && rc == 0 && (rc = VCursorIdRange(calgS, 0, &start, &count)) == 0 ) {
+                uint64_t rcount = 0;
+
+                SAM_DUMP_DBG(2, ("range from %ld qty %lu\n", start, count));
+                while( count > 0 && rc == 0 ) {
+                    if( (rc = Cursor_Read(calgS, start, &calg_col[alg_DISTANCE_FILTER])) == 0 ) {
+                        if( AlignDistanceFilter(param, calg_col) ) {
+                            if( (rc = Cursor_Read(calgS, start, calg_col)) == 0 ) {
+                                if( param->fasta || param->fastq ) {
+                                    DumpAlignedFastX(calg_col, param, calg_col[alg_SEQ_READ_ID].base.coord1[0], false);
+                                } else {
+                                    DumpAlignedSAM(calg_col, param);
+                                }
+                            }
+                        }
+                    } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow ) {
+                        /* a gap in ids? */
+                        rc = 0;
                     }
+                    start++;
+                    count--;
+                    ++rcount;
+                    rc = rc ? rc : Quitting();
                 }
-                return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-            }
-        }
-        if ( fwd && op[ fwd ].type == 1 )
-        {
-            for ( i = ops, acc = 0; i > fwd + 1; )
-            {
-                --i;
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc >= 10 )
-                    {
-                        if ( acc > 10 )
-                        {
-                            unsigned const r = 10 + op[ i ].length - acc;
-                            unsigned const l = op[ i ].length - r;
-                            
-                            if ( ops + 2 >= maxOps )
-                                return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                            memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                            ops += 2;
-                            op[ i + 2 ].length = r;
-                            op[ i ].length = l;
-                            
-                            op[ i + 1 ].length = 0;
-                            op[ i + 1 ].type = 2;
-                            op[ i + 1 ].code = 'N';
-                            i += 2;
-                        }
-                        else if ( i - 1 > fwd )
-                        {
-                            if ( op[ i - 1 ].type == 2 )
-                                 op[ i - 1 ].code = 'N';
-                            else
-                            {
-                                if ( ops + 1 >= maxOps )
-                                    return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                                memmove( &op[ i + 1 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                                ops += 1;
-                                op[ i ].length = 0;
-                                op[ i ].type = 2;
-                                op[ i ].code = 'N';
-                                i += 1;
+                SAM_DUMP_DBG(2, ("%s: dumped %lu SECONDARY_ALIGNMENTs\n", param->accession, rcount));
+            }
+        } else {
+            /* use index to set REF_NAME ranges */
+            uint32_t r;
+            const KIndex* iname = NULL;
+            const VCursor *cref = NULL;
+
+            SCol cref_col[] = {
+                {"MAX_SEQ_LEN", 0, {NULL}, 0, false},
+                {"PRIMARY_ALIGNMENT_IDS", 0, {NULL}, 0, false},
+                {"SECONDARY_ALIGNMENT_IDS", 0, {NULL}, 0, false},
+                {NULL, 0, {NULL}, 0, false}
+            };
+            enum eref_col {
+                ref_MAX_SEQ_LEN = 0,
+                ref_PRIMARY_ALIGNMENT_IDS,
+                ref_SECONDARY_ALIGNMENT_IDS
+            };
+
+            if( (rc = VTableOpenIndexRead(tref, &iname, "i_name")) == 0 &&
+                (rc = Cursor_Init(tref, &cref, cref_col)) == 0 ) {
+                for(r = 0; rc == 0 && r < param->region_qty; r++ ) {
+                    if( (rc = KIndexFindText(iname, param->region[r].name, &start, &count, NULL, NULL)) == 0 ) {
+                        bool skip_initial = true;
+                        uint64_t cur_pos = 0;
+                        uint32_t max_seq_len = 0;
+
+                        SAM_DUMP_DBG(2, ("REFERENCE %s index range is [%lu:%lu]\n", param->region[r].name, start, start + count - 1));
+                        while( count > 0 && rc == 0 ) {
+                            if( (rc = Cursor_Read(cref, start, cref_col)) == 0 ) {
+                                if( skip_initial ) {
+                                    /* scroll to row with 1st region offset - 1 so algnmts tails in the range are not lost */
+                                    uint64_t inc = param->region[r].r[0].from / cref_col[ref_MAX_SEQ_LEN].base.u32[0];
+                                    max_seq_len = cref_col[ref_MAX_SEQ_LEN].base.u32[0];
+                                    skip_initial = false;
+                                    inc = inc ? inc - 1 : 0;
+                                    if( start + inc != start ) {
+                                        start += inc;
+                                        count -= inc;
+                                        cur_pos = max_seq_len * inc;
+                                        continue;
+                                    }
+                                } else if( cur_pos > param->region[r].max_to ) {
+                                    break;
+                                }
+                                SAM_DUMP_DBG(2, ("row %s index range is [%lu:%lu] pos %lu\n",
+                                    param->region[r].name, start, start + count - 1, cur_pos));
+                                if( (rc = DumpAlignmentList(param, calgP, calg_col, &cref_col[ref_PRIMARY_ALIGNMENT_IDS],
+                                                            cseq, cseq_col, seq_NAME + 1)) == 0 ) {
+                                    if( calgS != NULL ) {
+                                        rc = DumpAlignmentList(param, calgS, calg_col,
+                                                               &cref_col[ref_SECONDARY_ALIGNMENT_IDS], NULL, NULL, 0);
+                                    }
+                                }
+                            } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow ) {
+                                /* a gap in ids? */
+                                rc = 0;
                             }
+                            start++;
+                            count--;
+                            cur_pos += max_seq_len;
+                            rc = rc ? rc : Quitting();
                         }
-                        acc = 0;
+                    } else if( GetRCState(rc) == rcNotFound ) {
+                        PLOGMSG(klogWarn, (klogWarn, "REFERENCE $(r) not present in data", "r=%s", param->region[r].name));
+                        rc = 0;
                     }
                 }
             }
-            /** change I to B+M **/
-            op[ fwd ].code = 'B';
-            memmove( &op[ fwd + 1 ], &op[ fwd ], ( ops - fwd ) * sizeof( op[ 0 ] ) );
-            ops += 1;
-            op[ fwd + 1 ].code = 'M';
-            *opCnt = ops;
-            /** set the gaps now **/
-            for ( gapno = 3, i = ops; gapno > 1 && i > 0; )
-            {
-                --i;
-                if ( op[ i ].code == 'N' )
-                    gap[ --gapno ] = i;
-            }
-            gap[ 0 ] = fwd;
-            print_CG_cigar( __LINE__, op, ops, gap );
-            return 0;
+            VCursorRelease(cref);
+            KIndexRelease(iname);
         }
-        if ( rev && op[ rev ].type == 1 )
-        {
-            for ( acc = i = 0; i < rev; ++i )
-            {
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc >= 10 )
-                    {
-                        if ( acc > 10 )
-                        {
-                            unsigned const l = 10 + op[ i ].length - acc;
-                            unsigned const r = op[ i ].length - l;
-                            
-                            if ( ops + 2 >= maxOps )
-                                return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                            memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                            ops += 2;
-                            op[ i + 2 ].length = r;
-                            op[ i ].length = l;
-                            
-                            op[ i + 1 ].length = 0;
-                            op[ i + 1 ].type = 2;
-                            op[ i + 1 ].code = 'N';
-                            rev += 2;
-                            i += 2;
-                        }
-                        else if ( i + 1 < rev )
-                        {
-                            if ( op[ i + 1 ].type == 2)
-                                 op[ i + 1 ].code = 'N';
-                            else
-                            {
-                                if ( ops + 1 >= maxOps )
-                                    return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                                memmove( &op[ i + 1 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                                ops += 1;
-                                op[ i + 1 ].length = 0;
-                                op[ i + 1 ].type = 2;
-                                op[ i + 1 ].code = 'N';
-                                rev += 1;
-                                i += 1;
+    }
+    VCursorRelease(calgP);
+    VCursorRelease(calgS);
+    VCursorRelease(cseq);
+    return rc;
+}
+
+static
+rc_t DumpUnaligned(const SParam* param, const VTable* tseq)
+{
+    rc_t rc = 0;
+    const VCursor* cflt = NULL, *cseq = NULL;
+
+    SCol cseq_flt[] = {
+        {"PRIMARY_ALIGNMENT_ID", 0, {NULL}, 0, true},
+        {NULL, 0, {NULL}, 0, false}
+    },
+    cseq_col[] = {
+        /* APPEND ONLY TO THIS LIST OF COLUMNS!!!
+           unless you change enum above and SCol in DumpAlignments above in sync!! */
+        {"READ", 0, {NULL}, 0, false},
+        {"(INSDC:quality:text:phred_33)QUALITY", 0, {NULL}, 0, false},
+        {"SPOT_GROUP", 0, {NULL}, 0, true},
+        {"READ_START", 0, {NULL}, 0, true},
+        {"READ_LEN", 0, {NULL}, 0, true},
+        {"READ_TYPE", 0, {NULL}, 0, true},
+        {"NAME", 0, {NULL}, 0, true},
+        {NULL, 0, {NULL}, 0, false}
+    };
+    enum eseq_flt {
+        seq_PRIMARY_ALIGNMENT_ID = 0
+    };
+
+    if( (rc = Cursor_Init(tseq, &cflt, cseq_flt)) == 0 &&
+        (rc = Cursor_Init(tseq, &cseq, cseq_col)) == 0 ) {
+        int64_t start = 0;
+        uint64_t count = 0;
+        if( (rc = VCursorIdRange(cseq, 0, &start, &count)) == 0 ) {
+            uint64_t rcount = 0;
+
+            SAM_DUMP_DBG(2, ("%s SEQUENCEs without PRIMARY_ALIGNMENT_ID or equal 0\n", param->accession));
+            SAM_DUMP_DBG(2, ("range from %ld qty %lu\n", start, count));
+            while( count > 0 && rc == 0 ) {
+                uint32_t i, nreads = 1;
+
+                /* to avoid reading whole sequence cursor data unnecessarily
+                   nreads is used as flag based on PRIMARY_ALIGNMENT_ID column presence and values */
+                if( cseq_flt[seq_PRIMARY_ALIGNMENT_ID].idx != 0 ) {
+                    if( (rc = Cursor_Read(cflt, start, cseq_flt)) == 0 ) {
+                        nreads = 1;
+                        /* count unaligned reads on spot */
+                        for(i = 0; i < cseq_flt[seq_PRIMARY_ALIGNMENT_ID].len; i++) {
+                            if( cseq_flt[seq_PRIMARY_ALIGNMENT_ID].base.i64[i] != 0 ) {
+                                /* skip partially unaligned spots, they are printed 
+                                   together with aligned read (with lowest alignment id)
+                                   in PRIMARY_ALIGNMENT loop */
+                                nreads = 0;
+                                break;
                             }
                         }
-                        acc = 0;
                     }
                 }
+                if( rc == 0 && nreads != 0 ) {
+                    DumpUnalignedSpot(param, NULL, start, cseq, cseq_col, 0, &rcount);
+                } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcRow ) {
+                    /* a gap in ids? */
+                    rc = 0;
+                }
+                start++;
+                count--;
+                rc = rc ? rc : Quitting();
             }
-            for ( gapno = 3, i = 0; gapno > 1 && i < ops; ++i )
-            {
-                if ( op[ i ].code == 'N' )
-                    gap[ --gapno ] = i;
-            }
-            gap[ 0 ] = rev;
-            op[ rev ].code = 'B';
-            memmove( &op[ rev + 1 ], &op[ rev ], ( ops - rev ) * sizeof( op[ 0 ] ) );
-            ops += 1;
-            op[ rev + 1 ].code = 'M';
-            *opCnt = ops;
-            print_CG_cigar( __LINE__, op, ops, gap );
-            return 0;
+            SAM_DUMP_DBG(2, ("%s: dumped %lu unaligned reads\n", param->accession, rcount));
         }
     }
-    return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
+    VCursorRelease(cseq);
+    return rc;
 }
 
-
-static rc_t GenerateCGData( SCol cols[], unsigned style )
+static
+rc_t Dump(uint32_t idx, bool multi_run, SParam* param)
 {
     rc_t rc = 0;
-    
-    memset( &cols[ alg_CG_TAGS_STR], 0, sizeof( cols[ alg_CG_TAGS_STR ] ) );
-    
-    if ( cols[ alg_READ ].len == 35 && cols[ alg_SAM_QUALITY ].len == 35 )
-    {
-        static char newCIGAR[ 35 * 11 ];
-        static int32_t newEditDistance;
-        unsigned gap[ 3 ] = { 0, 0, 0 };
-        cgOp cigOp[ 35 ];
-        unsigned opCnt;
-        unsigned i;
-        unsigned j;
-        size_t sz;
-        unsigned S_adjust = 0;
-        unsigned CG_adjust = 0;
-        unsigned const read = cols[ alg_SEQ_READ_ID ].len && cols[ alg_REVERSED ].len ? cols[ alg_SEQ_READ_ID ].base.coord1[ 0 ] : 0;
-        bool const reversed = cols[ alg_REVERSED ].len ? cols[ alg_REVERSED ].base.u8[ 0 ] : false;
-        
-        rc = CIGAR_to_CG_Ops( cigOp, sizeof( cigOp ) / sizeof( cigOp[ 0 ] ), &opCnt, gap,
-                              cols[ alg_CIGAR ].base.str, cols[ alg_CIGAR ].len,
-                              &S_adjust, &CG_adjust, read, reversed );
-        if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcFormat )
-        {
-            rc = 0;
-            if ( style == 1 )
-                goto CLEAN_CIGAR;
-            else
-                goto PRINT_CIGAR;
-        }
-        if ( rc != 0 )
-            return 0;
-
-        if ( CG_adjust == 0 )
-            CG_adjust = ( gap[ 0 ] < opCnt ? cigOp[ gap[ 0 ] ].length : 0 )
-                      + ( gap[ 1 ] < opCnt ? cigOp[ gap[ 1 ] ].length : 0 )
-                      + ( gap[ 2 ] < opCnt ? cigOp[ gap[ 2 ] ].length : 0 );
-
-        print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-        if ( style == 1 )
-        {
-            static char newSeq[ 35 ];
-            static char newQual[ 35 ];
-            static char tags[ 35*22 + 1 ];
-            unsigned const B_len = cigOp[ gap[ 0 ] ].length;
-            unsigned const B_at = gap[ 0 ] < gap[ 2 ] ? 5 : 30;
-            
-            if ( 0 < B_len && B_len < 5 )
-            {
-                memcpy( newSeq, cols[ alg_READ ].base.v, 35 );
-                memcpy( newQual, cols[ alg_SAM_QUALITY ].base.v, 35 );
-                
-                cols[ alg_CG_TAGS_STR ].base.v = tags;
-                
-                cols[ alg_READ ].base.v = newSeq;
-                cols[ alg_READ ].len = 35 - B_len;
-                
-                cols[ alg_SAM_QUALITY ].base.v = newQual;
-                cols[ alg_SAM_QUALITY ].len = 35 - B_len;
-                
-                /* nBnM -> nB0M */
-                cigOp[ gap[ 0 ] + 1 ].length -= B_len;
-                if ( gap[ 0 ] < gap[ 2 ] )
-                {
-                    rc = string_printf( tags, sizeof( tags ), &sz, "\tGC:Z:%uS%uG%uS\tGS:Z:%.*s\tGQ:Z:%.*s",
-                        5 - B_len, B_len, 30 - B_len, 2 * B_len, &newSeq[ 5 - B_len ], 2 * B_len, &newQual[ 5 - B_len ] );
-                    if ( rc == 0 )
-                    {
-                        cols[ alg_CG_TAGS_STR ].len = sz;
-                    }
-                    memmove( &cigOp[ gap[ 0 ] ],
-                             &cigOp[ gap[ 0 ] + 1 ],
-                             ( opCnt - ( gap[ 0 ] + 1 ) ) * sizeof( cigOp[ 0 ] ) );
-                    --opCnt;
-                }
-                else
-                {
-                    rc = string_printf( tags, sizeof( tags ), &sz, "\tGC:Z:%uS%uG%uS\tGS:Z:%.*s\tGQ:Z:%.*s",
-                        30 - B_len, B_len, 5 - B_len, 2 * B_len, &newSeq[ 30 - B_len ], 2 * B_len, &newQual[ 30 - B_len ] );
-                    if ( rc == 0 )
-                    {
-                        cols[ alg_CG_TAGS_STR ].len = sz;
+    const VDBManager* mgr = NULL;
+    const KDBManager* kmgr = NULL;
+
+    if( (rc = VDBManagerMakeRead(&mgr, NULL)) == 0 &&
+        (rc = VDBManagerOpenKDBManagerRead(mgr, &kmgr)) == 0 ) {
+
+        int pathType = KDBManagerPathType(kmgr, param->path) & ~kptAlias;
+        if( pathType == kptDatabase ) {
+            const VDatabase* db;
+            if( (rc = VDBManagerOpenDBRead(mgr, &db, NULL, param->path)) == 0 ) {
+                const VTable* seq = NULL, *algP = NULL, *algS = NULL, *ref = NULL;
+                if( (rc = OpenVTable(db, &ref, "REFERENCE", false)) == 0 &&
+                    (rc = OpenVTable(db, &seq, "SEQUENCE", false)) == 0 &&
+                    (rc = OpenVTable(db, &algP, "PRIMARY_ALIGNMENT", false)) == 0 &&
+                    (rc = OpenVTable(db, &algS, "SECONDARY_ALIGNMENT", true)) == 0 ) {
+
+                    if( !param->noheader && !param->reheader && !multi_run ) {
+                        /* grab header from db meta node */
+                        const KMetadata* m;
+                        if( (rc = VDatabaseOpenMetadataRead(db, &m)) == 0 ) {
+                            const KMDataNode* n;
+                            if( (rc = KMetadataOpenNodeRead(m, &n, "BAM_HEADER")) == 0 ) {
+                                size_t offset = 0, num_read, remaining = ~0;
+                                char buffer[40960];
+                                while(rc == 0 && remaining > 0 ) {
+                                    if( (rc = KMDataNodeRead(n, offset, buffer, sizeof(buffer),
+                                                             &num_read, &remaining)) == 0 ) {
+                                        OUTMSG(("%.*s", ( uint32_t ) num_read, buffer));
+                                        offset += num_read;
+                                    }
+                                }
+                                if( rc == 0 && buffer[num_read - 1] != '\n' ) {
+                                    OUTMSG(("\n"));
+                                }
+                                KMDataNodeRelease(n);
+                            } else if( GetRCState(rc) == rcNotFound ) {
+                                param->reheader = true;
+                                rc = 0;
+                            }
+                            KMetadataRelease(m);
+                        }
                     }
-                    memmove( &cigOp[ gap[ 0 ] ],
-                             &cigOp[ gap[ 0 ] + 1 ],
-                             ( opCnt - ( gap[ 0 ] + 1 ) ) * sizeof( cigOp[ 0 ] ) );
-                    --opCnt;
-                }
-                if ( rc == 0 )
-                {
-                    for ( i = B_at; i < B_at + B_len; ++i )
-                    {
-                        int const Lq = newQual[ i - B_len ];
-                        int const Rq = newQual[ i ];
-
-                        if ( Lq <= Rq )
-                        {
-                            newSeq[ i - B_len ] = newSeq[ i ];
-                            newQual[ i - B_len ] = Rq;
+                    if( rc == 0 && !param->noheader && (param->reheader || multi_run) ) {
+                        if( !multi_run || idx == 0 ) {
+                            OUTMSG(("@HD VN:1.3\n"));
                         }
-                        else
-                        {
-                            newSeq[ i ] = newSeq[ i - B_len ];
-                            newQual[ i ] = Lq;
+                        if( !multi_run && (rc = DumpRefSeqs(ref, param)) == 0 ) {
+                            rc = DumpReadGroups(seq);
                         }
                     }
-                    memmove( &newSeq [ B_at ], &newSeq [ B_at + B_len ], 35 - B_at - B_len );
-                    memmove( &newQual[ B_at ], &newQual[ B_at + B_len ], 35 - B_at - B_len );
-                }
-            }
-            else
-            {
-                int len = cigOp[ gap[ 0 ] ].length;
-                
-                cigOp[ gap[ 0 ] ].code = 'I';
-                for (i = gap[0] + 1; i < opCnt && len > 0; ++i) {
-                    if (cigOp[i].length <= len){
-                        len -= cigOp[i].length;
-                        cigOp[i].length = 0;
-                    }
-                    else {
-                        cigOp[i].length -= len;
-                        len = 0;
+                    if( rc == 0 ) {
+                        rc = DumpAlignments(param, algP, algS, ref, seq);
+                        if( rc == 0 && param->unaligned ) {
+                            rc = DumpUnaligned(param, seq);
+                        }
                     }
                 }
-                CG_adjust -= cigOp[ gap[ 0 ] ].length;
-            }
-        }
-        if ( rc == 0 )
-        {
-        PRINT_CIGAR:
-        CLEAN_CIGAR:
-            print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-            /* remove zero length ops */
-            for ( j = i = 0; i < opCnt; )
-            {
-                if ( cigOp[ j ].length == 0)
-                {
-                    ++j;
-                    --opCnt;
-                    continue;
+                VTableRelease(ref);
+                VTableRelease(seq);
+                VTableRelease(algP);
+                VTableRelease(algS);
+                VDatabaseRelease(db);
+            }
+        } else {
+            const VTable* seq = NULL;
+            VSchema* schema = NULL;
+
+UseLegacy:
+            if( (rc = VDBManagerOpenTableRead(mgr, &seq, schema, param->path)) == 0 ) {
+                OUTMSG(("@HD VN:1.3\n"));
+                if( (rc = DumpReadGroups(seq)) == 0 ) {
+                    rc = DumpUnaligned(param, seq);
                 }
-                cigOp[ i++ ] = cigOp[ j++ ];
-            }
-            print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-            if ( cols[ alg_EDIT_DISTANCE ].len )
-            {
-                int const edit_distance = cols[ alg_EDIT_DISTANCE ].base.i32[ 0 ];
-                int const adjusted = edit_distance + S_adjust - CG_adjust;
-            
-                newEditDistance = adjusted > 0 ? adjusted : 0;
-                SAM_DUMP_DBG( 4, ( "NM: before: %u, after: %u(+%u-%u)\n", edit_distance, newEditDistance, S_adjust, CG_adjust ) );
-                cols[ alg_EDIT_DISTANCE ].base.v = &newEditDistance;
-                cols[ alg_EDIT_DISTANCE ].len = 1;
+                VTableRelease(seq);
             }
-            /* merge adjacent ops */
-            for ( i = opCnt; i > 1; )
-            {
-                --i;
-                if ( cigOp[ i - 1 ].code == cigOp[ i ].code )
-                {
-                    cigOp[ i - 1 ].length += cigOp[ i ].length;
-                    memmove( &cigOp[ i ], &cigOp[ i + 1 ], ( opCnt - 1 - i ) * sizeof( cigOp[ 0 ] ) );
-                    --opCnt;
+            if( rc != 0 && schema == NULL ) {
+                if( (rc = VDBManagerMakeSRASchema(mgr, &schema)) == 0 ) {
+                    goto UseLegacy;
                 }
             }
-            print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-            for ( i = j = 0; i < opCnt && rc == 0; ++i )
-            {
-                rc = string_printf( &newCIGAR[ j ], sizeof( newCIGAR ) - j, &sz, "%u%c", cigOp[ i ].length, cigOp[ i ].code);
-                j += sz;
-            }
-            cols[ alg_CIGAR ].base.v = newCIGAR;
-            cols[ alg_CIGAR ].len = j;
-        }
-    }
-    return rc;
-}
-
-
-static bool DumpAlignedRow( SAM_dump_ctx_t *const ctx, DataSource *const ds,
-                    int64_t row,
-                    bool const primary,
-                    int const cg_style,
-                    rc_t *prc )
-{
-    rc_t rc;
-    
-    /* if SEQ_SPOT_ID is open then skip rows with no SEQ_SPOT_ID */
-    if ( ds->cols[ alg_SEQ_SPOT_ID ].idx )
-    {
-        rc = Cursor_Read( ds, row, alg_SEQ_SPOT_ID, 1 );
-        if ( rc != 0 )
-        {
-            if ( !( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound ) )
-                *prc = rc;
-            return false;
-        }
-        if ( ds->cols[ alg_SEQ_SPOT_ID ].len == 0 ||
-             ds->cols[ alg_SEQ_SPOT_ID ].base.i64[ 0 ] == 0 )
-            return false;
-    }
-
-    /* skip rows that fail mate distance filter */
-    if ( param->mp_dist_qty != 0 || param->mp_dist_unknown )
-    {
-        rc = Cursor_Read( ds, row, alg_TEMPLATE_LEN, 1 );
-        if ( rc != 0 )
-        {
-            if ( !( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound ) )
-                *prc = rc;
-            return false;
-        }
-        if ( !AlignDistanceFilter( ds->cols ) )
-            return false;
-    }
-
-    rc = Cursor_ReadAlign( &ds->curs, row, ds->cols, 0 );
-    if ( rc != 0 )
-    {
-        if ( !( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound ) )
-            *prc = rc;
-        return false;
-    }
-
-    if ( param->fasta || param->fastq )
-    {
-        unsigned const read_id = ds->cols[ alg_SEQ_READ_ID ].base.v ? ds->cols[ alg_SEQ_READ_ID ].base.coord1[ 0 ] : 0;
-        
-        DumpAlignedFastX( ctx->pri.cols, row, read_id, primary, false );
-    }
-    else
-    {
-        if ( cg_style != 0 )
-        {
-            rc = GenerateCGData( ds->cols, cg_style );
-            if ( rc != 0 )
-            {
-                *prc = rc;
-                return false;
-            }
-        }
-        DumpAlignedSAM(ctx, ds, row, ctx->readGroup, 0 );
-    }
-    *prc = 0;
-    return true;
-}
-
-
-static rc_t DumpAlignedRowList( SAM_dump_ctx_t *const ctx, DataSource *const ds, SCol const *const ids,
-                        int64_t *rcount,
-                        bool const primary,
-                        int const cg_style,
-                        bool const noFilter )
-{
-    rc_t rc;
-    unsigned i;
-    unsigned const n = ids->len;
-
-    for ( i = 0; ( rc = Quitting() ) == 0 && i < n; ++i )
-    {
-        int64_t const row = ids->base.i64[ i ];
-
-        if ( ! noFilter )
-            rc = Cursor_Read( ds, row, alg_REGION_FILTER, ~(unsigned)0 );
-
-        if ( rc == 0 )
-        {
-            if ( noFilter || AlignRegionFilter(ds->cols) )
-            {
-                if ( DumpAlignedRow( ctx, ds, row, primary, cg_style, &rc ) )
-                    ++*rcount;
-                if ( rc != 0 )
-                    break;
-            }
+            VSchemaRelease(schema);
         }
     }
+    VDBManagerRelease(mgr);
+    KDBManagerRelease(kmgr);
     return rc;
 }
 
-static rc_t DumpAlignedRowListIndirect( SAM_dump_ctx_t *const ctx,
-                                DataSource *const indirectSource,
-                                DataSource *const directSource,
-                                SCol const *const directIDs,
-                                int64_t *rcount,
-                                bool const primary,
-                                int const cg_style )
+ver_t CC KAppVersion( void )
 {
-    unsigned i;
-
-    for ( i = 0; i < directIDs->len; ++i )
-    {
-        int64_t const row = directIDs->base.i64[ i ];
-        rc_t rc = Cursor_Read( directSource, row, alg_REGION_FILTER, ~(unsigned)0 );
-        
-        if ( rc != 0 )
-            return rc;
-        
-        if ( !AlignRegionFilter( directSource->cols ) )
-            continue;
-            
-        rc = Cursor_Read( directSource, row, alg_EVIDENCE_ALIGNMENT_IDS, 1 );
-        if ( rc != 0 )
-            return rc;
-        
-        rc = DumpAlignedRowList( ctx, indirectSource, &directSource->cols[ alg_EVIDENCE_ALIGNMENT_IDS ],
-                                 rcount, primary, cg_style, true );
-        if ( rc != 0 )
-            return rc;
-    }
-    return 0;
+    return SAM_DUMP_VERS;
 }
 
+const char* seq_id_usage[] = {"Print reference SEQ_ID in RNAME instead of NAME", NULL};
+const char* unaligned_usage[] = {"Output unaligned reads", NULL};
+const char* cigartype_usage[] = {"Output long version of CIGAR", NULL};
+const char* header_usage[] = {"Always reconstruct header", NULL};
+const char* noheader_usage[] = {"Do not output headers", NULL};
+const char* region_usage[] = {"Filter by position on genome.",
+                              "Name can either be file specific name (ex: \"chr1\" or \"1\").",
+                              "\"from\" and \"to\" are 1-based coordinates", NULL};
+const char* distance_usage[] = {"Filter by distance between matepairs.",
+                                "Use \"unknown\" to find matepairs split between the references.",
+                                "Use from-to to limit matepair distance on the same reference", NULL};
+const char* identicalbases_usage[] = {"Output '=' if base is identical to reference", NULL};
+const char* gzip_usage[] = {"Compress output using gzip", NULL};
+const char* bzip2_usage[] = {"Compress output using bzip2", NULL};
+const char* qname_usage[] = {"Add .SPOT_GROUP to QNAME", NULL};
+const char* fasta_usage[] = {"Produce Fasta formatted ouput", NULL};
+const char* fastq_usage[] = {"Produce FastQ formatted ouput", NULL};
+const char* prefix_usage[] = {"Prefix QNAME: prefix.QNAME", NULL};
+
+const char* usage_params[] =
+{
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    "name[:from-to]",
+    "from-to|unknown",
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    "<prefix>"
+};
 
-enum e_tables
-{
-    primary_alignment,
-    secondary_alignment,
-    evidence_interval,
-    evidence_alignment
+enum eArgs {
+    earg_seq_id = 0,
+    earg_unaligned,
+    earg_cigartype,
+    earg_header,
+    earg_region,
+    earg_distance,
+    earg_identicalbases,
+    earg_gzip,
+    earg_bzip2,
+    earg_qname,
+    earg_noheader,
+    earg_fastq,
+    earg_fasta,
+    earg_prefix
 };
 
-enum e_IDS_opts
+OptDef DumpArgs[] =
 {
-    primary_IDS             = ( 1 << primary_alignment ),
-    secondary_IDS           = ( 1 << secondary_alignment ),
-    evidence_interval_IDS   = ( 1 << evidence_interval ),
-    evidence_alignment_IDS  = ( 1 << evidence_alignment )
+    {"seqid", "s", NULL, seq_id_usage, 0, false, false},
+    {"unaligned", "u", NULL, unaligned_usage, 0, false, false},
+    {"cigar-long", "c", NULL, cigartype_usage, 0, false, false},
+    {"header", "r", NULL, header_usage, 0, false, false},
+    {"aligned-region", NULL, NULL, region_usage, 0, true, false},
+    {"matepair-distance", NULL, NULL, distance_usage, 0, true, false},
+    {"hide-identical", "=", NULL, identicalbases_usage, 0, false, false},
+    {"gzip", NULL, NULL, gzip_usage, 0, false, false},
+    {"bzip2", NULL, NULL, bzip2_usage, 0, false, false},
+    {"spot-group", "g", NULL, qname_usage, 0, false, false},
+    {"no-header", "n", NULL, noheader_usage, 0, false, false},
+#ifdef NCBI
+    {"fastq", NULL, NULL, fasta_usage, 0, false, false},
+    {"fasta", NULL, NULL, fastq_usage, 0, false, false},
+#else
+    {"fastq", NULL, NULL, NULL, 0, false, false},
+    {"fasta", NULL, NULL, NULL, 0, false, false},
+#endif
+    {"prefix", "p", NULL, prefix_usage, 0, true, false},
 };
 
+const char UsageDefaultName[] = "sam-dump";
 
-static rc_t DumpAlignedRowList_cb( SAM_dump_ctx_t *const ctx, TAlignedRegion const *const rgn,
-                                   int options, int which, int64_t *rcount, SCol const *const IDS )
+rc_t CC UsageSummary (const char * progname)
 {
-    /*SAM_DUMP_DBG(2, ("row %s index range is [%lu:%lu] pos %lu\n",
-        param->region[r].name, start, start + count - 1, cur_pos));*/
-    switch ( which )
-    {
-    case primary_IDS:
-        return DumpAlignedRowList( ctx, &ctx->pri, IDS, rcount, true, param->cg_style, false );
-
-    case secondary_IDS:
-        return DumpAlignedRowList( ctx, &ctx->sec, IDS, rcount, false, param->cg_style, false );
-
-    case evidence_interval_IDS:
-        {
-            rc_t rc = 0;
-
-            if ( ( options & evidence_interval_IDS ) != 0 )
-                rc = DumpAlignedRowList( ctx, &ctx->evi, IDS, rcount, true, 0, false );
-
-            if ( rc == 0 && ( options & evidence_alignment_IDS ) != 0 )
-                rc = DumpAlignedRowListIndirect( ctx, &ctx->eva, &ctx->evi, IDS, rcount, true, param->cg_style );
-
-            return rc;
-        }
-    }
-    return RC( rcExe, rcTable, rcReading, rcParam, rcUnexpected );
+    return KOutMsg ( "Usage:\n"
+        "\t%s [options] path[ path ...]\n\n", progname );
+    return 0;
 }
 
 
-typedef struct CigOps{
-	char op;
-	int8_t	 ref_sign; /*** 0;+1;-1; ref_offset = ref_sign * offset ***/
-	int8_t	 seq_sign; /*** 0;+1;-1; seq_offset = seq_sign * offset ***/
-	uint32_t oplen;
-} CigOps;
-
-static void SetCigOp(CigOps *dst,char op,uint32_t oplen)
-{
-	dst->op    = op;
-	dst->oplen = oplen;
-	switch(op) { /*MX= DN B IS PH*/
-	 case 'M': case 'X': case '=':
-		dst->ref_sign=+1;
-		dst->seq_sign=+1;
-		break;
-	 case 'D': case 'N':
-		dst->ref_sign=+1;
-                dst->seq_sign= 0;
-                break;
-	 case 'B': 
-		dst->ref_sign=-1;
-                dst->seq_sign= 0;
-                break;
-	 case 'S': case 'I':
-		dst->ref_sign= 0;
-                dst->seq_sign=+1;
-                break;
-	 case 'P': case 'H':
-	  case 0: /** terminating op **/
-		dst->ref_sign= 0;
-                dst->seq_sign= 0;
-                break;
-	  default:
-		assert(0);
-                break;
-	}
-}
-
-static unsigned ExplodeCIGAR( CigOps dst[], unsigned len, char const cigar[], unsigned ciglen )
+rc_t CC Usage( const Args* args )
 {
-    unsigned i;
-    unsigned j;
-    int opLen;
-    
-    for ( i = j = opLen=0; i < ciglen; i++) {
-	if(isdigit(cigar[i])){
-		opLen = opLen * 10 + cigar[i] - '0';
-	} else {
-		assert(isalpha(cigar[i]));
-		SetCigOp(dst+j,cigar[i],opLen);
-		opLen=0;
-		j++;
-	}
-    }
-    SetCigOp(dst+j,0,0);
-    j++;
-    return j;
-}
-
-
-#define CG_CIGAR_STRING_MAX (35 * 11 + 1)
-
+    const char * progname = UsageDefaultName;
+    const char * fullpath = UsageDefaultName;
+    rc_t rc;
+    int i;
 
-#if 0
-static unsigned FormatCIGAR( char dst[], unsigned cp, unsigned oplen, int opcode )
-{
-    size_t sz;
-    string_printf( dst + cp, CG_CIGAR_STRING_MAX - cp, &sz, "%u%c", oplen, opcode );
-    return sz;
-}
+    rc = ArgsProgram(args, &fullpath, &progname);
 
+    OUTMSG (( "\nUsage:\n"
+        "\t%s [options] path[ path ...]\n\n", progname));
 
-static unsigned DeletedCIGAR( char dst[], unsigned const cp, int opcode, unsigned D,
-                              uint32_t const Op[], int ri, unsigned len )
-{
-    unsigned i;
-    unsigned curPos = 0;
-    int curOp = opcode;
-    unsigned oplen = 0;
-    
-    for ( i = 0; i < D && ri < len; ++i, ++ri )
-    {
-        uint32_t const op = Op[ ri ];
-        int const d = op >> 2;
-        int const m = op & 1;
-        int const nxtOp = m ? opcode : 'P';
-        
-        if ( d != 0 )
-        {
-            if ( oplen != 0 )
-                curPos += FormatCIGAR( dst, curPos + cp, oplen, curOp );
-            curPos += FormatCIGAR( dst, cp, d, 'D' );
-            oplen = 0;
-        }
-        if ( oplen == 0 || nxtOp == curOp )
-        {
-            ++oplen;
-        }
-        else
-        {
-            curPos += FormatCIGAR( dst, curPos + cp, oplen, curOp );
-            oplen = 1;
+    OUTMSG (("Options:\n"));
+    for(i = 0; i < sizeof(DumpArgs)/sizeof(DumpArgs[0]); i++ ) {
+        if( DumpArgs[i].help != NULL ) {
+            HelpOptionLine(DumpArgs[i].aliases, DumpArgs[i].name, usage_params[i], DumpArgs[i].help);
         }
-        curOp = nxtOp;
     }
+    OUTMSG (("\n"));
+    HelpOptionsStandard();
 
-    if ( oplen != 0 && curOp != opcode)
-    {
-        curPos += FormatCIGAR( dst, curPos + cp, oplen, curOp );
-        oplen = 0;
-    }
-    if ( i < D )
-        oplen += D - i;
-    if ( oplen )
-        curPos += FormatCIGAR( dst, curPos + cp, oplen, opcode );
-    return curPos;
-}
-#endif
+    HelpVersion(fullpath, KAppVersion());
 
-static char merge_M_type_ops(char a,char b)
-{ /*MX=*/
-	char c=0;
-	switch(b){
-	 case 'X':
-		switch(a){
-		 case '=': c='X'; break;
-		 case 'X': c='M'; break; /**we don't know - 2X may create '=' **/
-		 case 'M': c='M'; break;
-		}
-		break;
-	 case 'M':
-		c='M';
-		break;
-	 case '=':
-		c=a;
-		break;
-	}
-	assert(c!=0);
-	return c;
+    return rc;
 }
 
-
-static unsigned CombineCIGAR( char dst[], CigOps const seqOp[], unsigned seq_len,
-                              int refPos, CigOps const refOp[], unsigned ref_len )
+rc_t CC KMain( int argc, char* argv[] )
 {
-    bool     done=false;
-    unsigned ciglen=0,last_ciglen=0;
-    char     last_cig_op;
-    uint32_t last_cig_oplen=0;
-    int	     si=0,ri=0;
-    CigOps   seq_cop={0,0,0,0},ref_cop={0,0,0,0};
-    int	     seq_pos=0; /** seq_pos is tracked roughly - with every extraction from seqOp **/
-    int      ref_pos=0; /** ref_pos is tracked precisely - with every delta and consumption in cigar **/
-    int	     delta=refPos; /*** delta in relative positions of seq and ref **/
-			   /*** when delta < 0 - rewind or extend the reference ***/
-			   /*** wher delta > 0 - skip reference  ***/
-#define MACRO_BUILD_CIGAR(OP,OPLEN) \
-	if( last_cig_oplen > 0 && last_cig_op == OP){							\
-                last_cig_oplen += OPLEN;								\
-                ciglen = last_ciglen + sprintf(dst+last_ciglen,"%d%c",last_cig_oplen,last_cig_op);	\
-        } else {											\
-                last_ciglen = ciglen;									\
-                last_cig_oplen = OPLEN;									\
-                last_cig_op    = OP;									\
-                ciglen = ciglen      + sprintf(dst+last_ciglen,"%d%c",last_cig_oplen,last_cig_op);	\
-        }
-    while(!done){
-	while(delta < 0){ 
-		ref_pos += delta; /** we will make it to back up this way **/
-		if(ri > 0){ /** backing up on ref if possible ***/
-			int avail_oplen = refOp[ri-1].oplen - ref_cop.oplen;
-			if(avail_oplen > 0 ){
-				if((-delta) <= avail_oplen * ref_cop.ref_sign){ /*** rewind within last operation **/
-					ref_cop.oplen -= delta;
-					delta -= delta * ref_cop.ref_sign;
-				} else { /*** rewind the whole ***/
-					ref_cop.oplen += avail_oplen;
-					delta += avail_oplen * ref_cop.ref_sign;
-				}
-			} else {
-				ri--;
-				/** pick the previous as used up **/
-				ref_cop = refOp[ri-1];
-				ref_cop.oplen =0; 
-			}
-		} else { /** extending the reference **/
-			SetCigOp(&ref_cop,'=',ref_cop.oplen - delta);
-			delta = 0;
-		}
-		ref_pos -= delta; 
-	}
-	if(ref_cop.oplen == 0){ /*** advance the reference ***/
-		ref_cop = refOp[ri++];
-		if(ref_cop.oplen == 0) { /** extending beyond the reference **/
-			SetCigOp(&ref_cop,'=',1000);
-		}
-		assert(ref_cop.oplen > 0 );
-	}
-	if(delta > 0){ /***  skip refOps ***/
-		ref_pos += delta; /** may need to back up **/
-		if(delta >=  ref_cop.oplen){ /** full **/
-			delta -= ref_cop.oplen * ref_cop.ref_sign;
-			ref_cop.oplen = 0;
-		} else { /** partial **/
-			ref_cop.oplen -= delta;
-			delta -= delta * ref_cop.ref_sign;
-		}
-		ref_pos -= delta; /** if something left - restore ***/
-		continue;
-	}
-	/*** seq and ref should be synchronized here **/
-	assert(delta == 0);
-	if(seq_cop.oplen == 0){ /*** advance sequence ***/
-		if(seq_pos < seq_len){
-			seq_cop = seqOp[si++];
-			assert(seq_cop.oplen > 0 );
-			seq_pos += seq_cop.oplen * seq_cop.seq_sign;
-		} else {
-			done=true;
-		}
-	}
-        if(!done){
-		int seq_seq_step = seq_cop.oplen * seq_cop.seq_sign; /** sequence movement**/
-		int seq_ref_step = seq_cop.oplen * seq_cop.ref_sign; /** influence of sequence movement on intermediate reference **/
-		int ref_seq_step = ref_cop.oplen * ref_cop.seq_sign; /** movement of the intermediate reference ***/
-		int ref_ref_step = ref_cop.oplen * ref_cop.ref_sign; /** influence of the intermediate reference movement on final reference ***/
-		assert( ref_ref_step >= 0); /** no B in the reference **/
-		if( seq_ref_step <= 0){ /** BSIPH in the sequence against anything ***/
-			MACRO_BUILD_CIGAR( seq_cop.op, seq_cop.oplen );
-			seq_cop.oplen = 0;
-			delta = seq_ref_step; /** if negative - will force rewind next cycle **/
-		} else if(ref_ref_step <= 0){ /** MX=DN against SIPH in the reference***/
-			if(ref_seq_step == 0){ /** MX=DN against PH **/
-				MACRO_BUILD_CIGAR( ref_cop.op,ref_cop.oplen);
-				ref_cop.oplen = 0;
-			} else {
-				int min_len = (seq_cop.oplen<ref_cop.oplen)?seq_cop.oplen:ref_cop.oplen;
-				if(seq_seq_step == 0){ /** DN agains SI **/
-					MACRO_BUILD_CIGAR('P',min_len);
-				} else { /** MX= agains SI ***/
-					MACRO_BUILD_CIGAR( ref_cop.op,min_len);
-				}
-				seq_cop.oplen -= min_len;
-				ref_cop.oplen -= min_len;
-			}
-		} else { /*MX=DN  against MX=DN*/
-			int min_len = (seq_cop.oplen<ref_cop.oplen)?seq_cop.oplen:ref_cop.oplen;
-			if(seq_seq_step == 0){ /* DN against MX=DN */
-				if(ref_seq_step == 0){ /** padding DN against DN **/
-					MACRO_BUILD_CIGAR('P',min_len);
-					ref_cop.oplen -= min_len;
-					seq_cop.oplen -= min_len;
-				} else { /* DN against MX= **/
-					MACRO_BUILD_CIGAR(seq_cop.op,min_len);
-					seq_cop.oplen -= min_len;
-				}
-			} else if (ref_cop.seq_sign == 0){ /* MX= against DN - always wins */
-				MACRO_BUILD_CIGAR(ref_cop.op,min_len);
-				ref_cop.oplen -= min_len;
-			} else { /** MX= against MX= ***/
-				MACRO_BUILD_CIGAR(merge_M_type_ops(seq_cop.op,ref_cop.op),min_len);
-				ref_cop.oplen -= min_len;
-				seq_cop.oplen -= min_len;
-			}
-			ref_pos += min_len;
-		}
-        }
-    }
-    return ciglen;
-}
-
+    rc_t rc = 0;
+    Args* args;
+    const char* errmsg = "stop";
 
-static rc_t DumpCGSAM( SAM_dump_ctx_t *const ctx, TAlignedRegion const *const rgn, int options,
-                       int which, int64_t *rows, SCol const *const ids )
-{
-    if ( which == evidence_interval_IDS )
-    {
-        rc_t rc = 0;
-        unsigned i;
-        
-        for ( i = 0; i < ids->len; ++i )
-        {
-            int64_t const rowInterval = ids->base.i64[ i ];
+    memset(&g_out_writer, 0, sizeof(g_out_writer));
+    KOutHandlerSetStdOut();
+    KStsHandlerSetStdErr();
+    KLogHandlerSetStdErr();
+    ( void ) KDbgHandlerSetStdErr();
 
-            rc = Cursor_Read( &ctx->evi, rowInterval, alg_REGION_FILTER, ~(0u) );
-            if ( rc == 0 )
-            {
-                if ( AlignRegionFilter( ctx->evi.cols ) )
-                {
-                    rc = Cursor_ReadAlign( &ctx->evi.curs, rowInterval, ctx->evi.cols, 0 );
-                    if ( rc == 0 )
-                    {
-                        unsigned const evidence = ctx->evi.cols[ alg_EVIDENCE_ALIGNMENT_IDS ].len;
-                        if ( evidence != 0 )
-                        {
-                            INSDC_coord_len const *const refLen = ctx->evi.cols[ alg_READ_LEN ].base.coord_len;
-                            INSDC_coord_len const *const cigLen = ctx->evi.cols[ alg_CIGAR_LEN ].base.coord_len;
-                            unsigned const ploids = ctx->evi.cols[ alg_CIGAR_LEN ].len;
-                            unsigned const totalIntervalReadLen = ctx->evi.cols[ alg_READ ].len;
-			    CigOps  refCigOps_stack[1024];
-			    CigOps *refCigOps_heap=NULL;
-                            CigOps *refCigOps;
+    if( (rc = ArgsMakeAndHandle(&args, argc, argv, 1, DumpArgs, sizeof(DumpArgs)/sizeof(DumpArgs[0]))) == 0 ) {
+        SParam params;
+        uint32_t pcount, count[sizeof(DumpArgs)/sizeof(DumpArgs[0])];
 
-			    if( totalIntervalReadLen > 1000){
-				refCigOps=refCigOps_heap = malloc( sizeof( refCigOps[ 0 ] ) * (totalIntervalReadLen+ploids) );
-			    } else {
-				refCigOps=refCigOps_stack;
-			    }
-                            
-                            if ( refCigOps != NULL )
-                            {
-                                unsigned j;
-                                unsigned start;
-                                unsigned cigop_starts[256];
-                                
-                                assert(ploids < 256);
-                                
-                                for ( start = j = 0, cigop_starts[0]=0; j < ploids; ++j )
-                                {
-                                    unsigned len = cigLen[ j ];
-                                    cigop_starts[j+1] = cigop_starts[j] + ExplodeCIGAR( refCigOps + cigop_starts[j], refLen[ j ], 
-                                                                                       ctx->evi.cols[ alg_CIGAR ].base.str + start, len );
-                                    start += len;
+        memset(&params, 0, sizeof(params));
+        if( (rc = ArgsParamCount(args, &pcount)) != 0 || pcount < 1 ) {
+            errmsg = "";
+            rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInsufficient);
+            MiniUsage(args);
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_seq_id].name, &count[earg_seq_id])) != 0 ) {
+            errmsg = DumpArgs[earg_seq_id].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_unaligned].name, &count[earg_unaligned])) != 0 ) {
+            errmsg = DumpArgs[earg_unaligned].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_cigartype].name, &count[earg_cigartype])) != 0 ) {
+            errmsg = DumpArgs[earg_cigartype].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_header].name, &count[earg_header])) != 0 ) {
+            errmsg = DumpArgs[earg_header].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_region].name, &count[earg_region])) != 0 ) {
+            errmsg = DumpArgs[earg_region].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_distance].name, &count[earg_distance])) != 0 ) {
+            errmsg = DumpArgs[earg_distance].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_identicalbases].name, &count[earg_identicalbases])) != 0 ) {
+            errmsg = DumpArgs[earg_identicalbases].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_gzip].name, &count[earg_gzip])) != 0 ) {
+            errmsg = DumpArgs[earg_gzip].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_bzip2].name, &count[earg_bzip2])) != 0 ) {
+            errmsg = DumpArgs[earg_bzip2].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_qname].name, &count[earg_qname])) != 0 ) {
+            errmsg = DumpArgs[earg_qname].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_noheader].name, &count[earg_noheader])) != 0 ) {
+            errmsg = DumpArgs[earg_noheader].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_fastq].name, &count[earg_fastq])) != 0 ) {
+            errmsg = DumpArgs[earg_fastq].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_fasta].name, &count[earg_fasta])) != 0 ) {
+            errmsg = DumpArgs[earg_fasta].name;
+        } else if( (rc = ArgsOptionCount(args, DumpArgs[earg_prefix].name, &count[earg_prefix])) != 0 || count[earg_prefix] > 1) {
+            rc = rc ? rc : RC(rcExe, rcArgv, rcParsing, rcParam, rcExcessive);
+            errmsg = DumpArgs[earg_prefix].name;
+        } else if( count[earg_prefix] > 0 && (rc = ArgsOptionValue(args, DumpArgs[earg_prefix].name, 0, &params.name_prefix)) != 0 ) {
+            errmsg = DumpArgs[earg_prefix].name;
+        } else {
+            uint32_t p, i;
+            const char* arg;
+
+            for(p = 0; rc == 0 && p < count[earg_region]; p++) {
+                /* name[:[from][-[to]]] 1-based!!! */
+                TAlignedRegion r;
+
+                errmsg = DumpArgs[earg_region].name;
+                if( (rc = ArgsOptionValue(args, DumpArgs[earg_region].name, p, &arg)) == 0 ) {
+                    const char* c = strchr(arg, ':');
+                    if( c == NULL ) {
+                        strncpy(r.name, arg, sizeof(r.name));
+                        r.rq = 0;
+                    } else {
+                        INSDC_coord_zero* v;
+
+                        r.r[0].from = (c - arg) > sizeof(r.name) ? sizeof(r.name) : c - arg;
+                        strncpy(r.name, arg, r.r[0].from);
+                        r.name[r.r[0].from] = '\0';
+                        r.rq = 1;
+                        r.r[0].from = -1;
+                        r.r[0].to = -1;
+                        r.max_to = 0;
+                        v = &r.r[0].from;
+                        while(rc == 0 && *++c != '\0') {
+                            if( *c == '-' ) {
+                                v = &r.r[0].to;
+                            } else if( *c == '+' ) {
+                                if( *v != 0 ) {
+                                    rc = RC(rcExe, rcArgv, rcProcessing, rcParam, rcOutofrange);
                                 }
-                                
-                                for ( j = 0; j < evidence; ++j )
-                                {
-                                    int64_t const rowAlign = ctx->evi.cols[ alg_EVIDENCE_ALIGNMENT_IDS ].base.i64[ j ];
-                                    
-                                    rc = Cursor_ReadAlign( &ctx->eva.curs, rowAlign, ctx->eva.cols, 0 );
-                                    if ( rc == 0 )
-                                    {
-                                        if(param->cg_style != 0)
-                                            rc = GenerateCGData( ctx->eva.cols, param->cg_style );
-                                        if ( rc == 0 )
-                                        {
-                                            int const ploidy = ctx->eva.cols[ alg_REF_PLOIDY ].base.u32[ 0 ];
-                                            int const readLen = ctx->eva.cols[ alg_READ ].len;
-                                            INSDC_coord_zero refPos = ctx->eva.cols[ alg_REF_POS ].base.coord0[ 0 ];
-                                            CigOps op[ 36 ];
-                                            char cigbuf[ CG_CIGAR_STRING_MAX ];
-                                            
-                                            memset( cigbuf, 0, CG_CIGAR_STRING_MAX );
-                                            ExplodeCIGAR( op, readLen, ctx->eva.cols[ alg_CIGAR ].base.str,
-                                                         ctx->eva.cols[ alg_CIGAR ].len );
-                                            ctx->eva.cols[ alg_CIGAR ].len = CombineCIGAR( cigbuf, op, readLen, refPos, 
-                                                                                          refCigOps + cigop_starts[ ploidy - 1 ], refLen[ ploidy - 1 ] );
-                                            ctx->eva.cols[ alg_CIGAR ].base.str = cigbuf;
-                                            ctx->eva.cols[ alg_REF_POS ].base.v = &refPos;
-                                            refPos += ctx->evi.cols[ alg_REF_POS ].base.coord0[ 0 ] ;
-			  		    if(refPos < 0){
-						ReferenceObj const *r = NULL;
-    						rc = ReferenceList_Find( gRefList, &r,
-									ctx->evi.cols[ alg_REF_NAME ].base.str,
-									ctx->evi.cols[ alg_REF_NAME ].len );
-						if(rc == 0){
-							bool circular=false;
-							rc=ReferenceObj_Circular(r, &circular);
-							if(rc == 0 && circular){
-								INSDC_coord_len len;
-								rc=ReferenceObj_SeqLength(r,&len);
-								if(rc == 0)
-									refPos += len;
-							}
-							ReferenceObj_Release(r);
-						}
-					    }
-                                            DumpAlignedSAM(ctx, &ctx->eva, rowAlign, ctx->readGroup, 1);
-                                            ++*rows;
-                                        }
-                                        else
-                                            break;
-                                    }
-                                    else
-                                        break;
+                            } else if( !isdigit(*c) ) {
+                                rc = RC(rcExe, rcArgv, rcProcessing, rcParam, rcOutofrange);
+                            } else {
+                                if( *v == -1 ) {
+                                    *v = 0;
                                 }
-				if(refCigOps_heap) free( refCigOps_heap );
+                                *v = *v * 10 + (*c - '0');
                             }
-                            else
-                                rc = RC( rcExe, rcTable, rcReading, rcMemory, rcExhausted );
+                        }
+                        /* convert to 0-based offset */
+                        if( r.r[0].from > 0 ) {
+                            r.r[0].from--;
+                        } else if( r.r[0].to > 0 ) {
+                            r.r[0].from = 0;
+                        }
+                        if(r.r[0].to > 0 ) {
+                            r.r[0].to--;
+                        } else if( r.r[0].from >= 0 && r.r[0].to < 0 ) {
+                            r.r[0].to = r.r[0].from;
+                        }
+                        if( r.r[0].from < 0 && r.r[0].to < 0 ) {
+                            r.rq = 0;
+                        } else if( r.r[0].from > r.r[0].to ) {
+                            uint64_t x = r.r[0].from;
+                            r.r[0].from = r.r[0].to;
+                            r.r[0].to = x;
                         }
                     }
-                }
-            }
-            else
-                break;
-            rc = rc ? rc : Quitting();
-            if ( rc != 0 )
-                break;
-        }
-        return rc;
-    }
-    return RC( rcExe, rcTable, rcReading, rcParam, rcUnexpected );
-}
-
-
-static rc_t ForEachAlignedRegion( SAM_dump_ctx_t *const ctx, enum e_IDS_opts const Options,
-    rc_t ( *user_func )( SAM_dump_ctx_t *ctx, TAlignedRegion const *rgn, int options, int which, int64_t *rows, SCol const *IDS ) )
-{
-    SCol cols[] =
-    {
-        { "MAX_SEQ_LEN", 0, { NULL }, 0, false },
-        { "OVERLAP_REF_POS", 0, { NULL }, 0, true },
-        { "PRIMARY_ALIGNMENT_IDS", 0, { NULL }, 0, false },
-        { "SECONDARY_ALIGNMENT_IDS", 0, { NULL }, 0, true },
-        { "EVIDENCE_INTERVAL_IDS", 0, { NULL }, 0, true }, 
-        { NULL, 0, { NULL }, 0, false }
-    };
-    enum eref_col
-    {
-        ref_MAX_SEQ_LEN = 0,
-        ref_OVERLAP_REF_LEN,
-        ref_PRIMARY_ALIGNMENT_IDS,
-        ref_SECONDARY_ALIGNMENT_IDS,
-        ref_EVIDENCE_INTERVAL_IDS
-    };
-
-    KIndex const *iname = NULL;
-    int64_t rows = 0;
-    rc_t rc = 0;
-    int options = Options & 7;
-
-    if ( Options & evidence_alignment_IDS )
-        options |= evidence_interval_IDS;
-
-    if ( ( options & primary_IDS ) == 0 )
-        cols[ ref_PRIMARY_ALIGNMENT_IDS ].name = "";
-    if ( ( options & secondary_IDS ) == 0 )
-        cols[ ref_SECONDARY_ALIGNMENT_IDS ].name = "";
-    if ( ( options & evidence_interval_IDS ) == 0 )
-        cols[ ref_EVIDENCE_INTERVAL_IDS ].name = "";
-    
-    ctx->ref.cols = cols;
-    
-    rc = VTableOpenIndexRead( ctx->ref.tbl.vtbl, &iname, "i_name" );
-    if ( rc == 0 )
-    {
-        rc = Cursor_Open( &ctx->ref.tbl, &ctx->ref.curs, ctx->ref.cols, NULL );
-        if ( rc == 0 )
-        {
-            int64_t rowid = 1;
-            uint64_t count = 0;
-            char refname[ 1024 ];
-            size_t sz;
-            
-            if ( ctx->ref.cols[ ref_PRIMARY_ALIGNMENT_IDS ].idx == 0 )
-                options &= ~primary_IDS;
-            if ( ctx->ref.cols[ ref_SECONDARY_ALIGNMENT_IDS ].idx == 0 )
-                options &= ~secondary_IDS;
-            if ( ctx->ref.cols[ ref_EVIDENCE_INTERVAL_IDS ].idx == 0 )
-                options &= ~evidence_interval_IDS;
-
-            /* new: if we have a list of regions, reset the their print-flag */
-            if ( param->region_qty > 0 )
-            {
-                unsigned r;
-                for ( r = 0; r < param->region_qty; ++r )
-                {
-                    param->region[ r ].printed = 0;
-                }
-            }
-
-            while ( ( rc = KIndexProjectText(iname, rowid + count, &rowid, &count, refname, sizeof( refname ), &sz ) ) == 0 )
-            {
-                bool include;
-                unsigned r;
-                unsigned max_to = UINT_MAX;
-                unsigned min_from = 0;
-                
-                for ( include = false, r = 0; r < param->region_qty; ++r )
-                {
-                    if ( sz == strlen( param->region[ r ].name ) &&
-                         memcmp( param->region[ r ].name, refname, sz ) == 0 )
-                    {
-                        include = true;
-                        max_to = param->region[ r ].max_to;
-                        min_from = param->region[ r ].min_from;
-                        param->region[ r ].printed++; /* new: mark a region as printed */
-                        break;
-                    }
-                }
-
-                if ( param->region_qty == 0 || include )
-                {
-                    int64_t const endrow_exclusive = rowid + count;
-                    unsigned m;
-                    unsigned k;
-                    
-                    for ( k = 0, m = 1; rc == 0 && k < 3; ++k, m <<= 1 )
-                    {
-                        if ( m & options )
-                        {
-                            unsigned lookback = 0;
-                            int64_t row;
-                            int32_t row_start_offset;
-                            unsigned pos;
-			    unsigned const maxseqlen = 5000; /***** TODO: this code is to be rewritten anyway ****/
-                            
-                            if ( param->region_qty )
-                            {
-                                if ( ctx->ref.cols[ ref_OVERLAP_REF_LEN ].idx )
-                                {
-                                    rc = Cursor_Read( &ctx->ref, rowid, 0, ~(0u) );
-                                    if ( rc != 0 )
-                                        break;
-                                    if ( ctx->ref.cols[ ref_OVERLAP_REF_LEN ].len > k )
-                                    {
-                                        unsigned const overlap = ctx->ref.cols[ ref_OVERLAP_REF_LEN ].base.coord0[ k ];
-                                        
-                                        if ( overlap != 0 )
-                                        {
-                                            
-                                            assert( overlap < rowid * maxseqlen );
-                                            lookback = ( rowid - ( overlap / maxseqlen ) );
-                                        }
-                                    }
+                    if( rc == 0 ) {
+                        TAlignedRegion* x = NULL;
+                        for(i = 0; i < params.region_qty; i++) {
+                            if( strcmp(params.region[i].name, r.name) == 0 ) {
+                                x = &params.region[i];
+                                break;
+                            }
+                        }
+                        if( x == NULL ) {
+                            if( (x = realloc(params.region, sizeof(*params.region) * ++params.region_qty)) == NULL ) {
+                                rc = RC(rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted);
+                            } else {
+                                params.region = x;
+                                memcpy(&params.region[params.region_qty - 1], &r, sizeof(r));
+                            }
+                        } else {
+                            int32_t k = x->rq;
+                            for(i = 0; i < x->rq; i++) {
+                                /* sort by from asc */
+                                if( r.r[0].from <= x->r[i].from ) {
+                                    k = i;
+                                    break;
                                 }
-                                else
-                                    lookback = 1;
                             }
-			    row_start_offset = min_from/maxseqlen - lookback;
-			   if(row_start_offset < 0) row_start_offset=0;
-			    
-
-                            for ( pos = row_start_offset*maxseqlen, row = rowid + row_start_offset; rc == 0 && row < endrow_exclusive; ++row )
-                            {
-                                if ( row < 1 )
-                                {
-                                    row = 0;
-                                    continue;
+                            if( k >= 0 ) {
+                                /* insert at k position */
+                                if( x->rq >= sizeof(x->r) / sizeof(x->r[0]) ) {
+                                    rc = RC(rcExe, rcArgv, rcProcessing, rcBuffer, rcInsufficient);
+                                } else {
+                                    memmove(&x->r[k + 1], &x->r[k], sizeof(x->r[0]) * (x->rq - k));
+                                    x->r[k].from = r.r[0].from;
+                                    x->r[k].to = r.r[0].to;
+                                    x->rq++;
                                 }
-                                rc = Cursor_Read( &ctx->ref, row, 0, ~(0u) );
-                                if ( rc != 0 )
-                                    break;
-                                if ( ctx->ref.cols[ ref_PRIMARY_ALIGNMENT_IDS + k ].len > 0 )
-                                    rc = user_func( ctx, &param->region[r], Options, m, &rows,
-                                                    &ctx->ref.cols[ ref_PRIMARY_ALIGNMENT_IDS + k ] );
-                                pos += ctx->ref.cols[ ref_MAX_SEQ_LEN ].base.u32[ 0 ];
-                                if ( pos >= max_to )
-                                    break;
-                                if ( param->test_rows != 0 && rows > param->test_rows )
-                                    break;
                             }
                         }
                     }
                 }
-                if ( param->test_rows != 0 && rows > param->test_rows )
-                    break;
-                if ( rc != 0 )
-                    break;
-            } /* while */
-
-            /* new: walk the list of regions and report what was NOT printed ( found ) ... */
-            if ( param->region_qty > 0 && GetRCState( rc ) != rcCanceled )
-            {
-                unsigned r;
-                for ( r = 0; r < param->region_qty; ++r )
-                {
-                    if ( param->region[ r ].printed == 0 )
-                    {
-                        (void)PLOGMSG( klogWarn, ( klogWarn, "reference >$(a)< not found", "a=%s", param->region[ r ].name ) );
+            }
+            for(p = 0; p < params.region_qty; p++) {
+                SAM_DUMP_DBG(2, ("filter by %s\n", params.region[p].name));
+                if( params.region[p].rq == 0 ) {
+                    params.region[p].rq = 1;
+                    params.region[p].r[0].from = 0;
+                    params.region[p].r[0].to = 0x7FFFFFFF;
+                }
+                for(i = 0; i < params.region[p].rq; i++) {
+                    SAM_DUMP_DBG(2, ("   range: [%u:%u]\n", params.region[p].r[i].from, params.region[p].r[i].to));
+                    if( params.region[p].max_to < params.region[p].r[i].to ) {
+                        params.region[p].max_to = params.region[p].r[i].to;
                     }
                 }
             }
-
-            if ( GetRCObject( rc ) == rcId && GetRCState( rc ) == rcNotFound )
-            {
-                rc = 0;
-            }
-
-        }
-    }
-    Cursor_Close( &ctx->ref.curs );
-    KIndexRelease( iname );
-    
-    return rc;
-}
-
-
-static rc_t DumpAlignedTable( SAM_dump_ctx_t *const ctx, DataSource *const ds,
-                              bool const primary, int const cg_style, unsigned *const rcount )
-{
-    unsigned i;
-    int64_t start;
-    uint64_t count;
-    rc_t rc = VCursorIdRange( ds->curs.vcurs, 0, &start, &count );
-    
-    if ( rc != 0 )
-        return rc;
-    for ( i = 0; i != (unsigned)count; ++i )
-    {
-        if ( DumpAlignedRow(ctx, ds, start + i, primary, cg_style, &rc ) )
-            ++*rcount;
-        if ( rc != 0 || ( rc = Quitting() ) != 0 )
-            return rc;
-        if ( param->test_rows && *rcount > param->test_rows )
-            break;
-    }
-    return 0;
-}
-
-
-static rc_t DumpUnsorted( SAM_dump_ctx_t *const ctx )
-{
-    rc_t rc = 0;
-    unsigned rcount;
-    
-    if ( rc == 0 && param->cg_evidence )
-    {
-        SAM_DUMP_DBG( 2, ( "%s EVIDENCE_INTERVAL\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->evi, false, 0, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) allele sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    if ( rc == 0 && param->cg_ev_dnb )
-    {
-        SAM_DUMP_DBG( 2, ( "%s EVIDENCE_ALIGNMENT\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->eva, false, param->cg_style, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) support sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    if ( rc == 0 && ctx->pri.curs.vcurs )
-    {
-        SAM_DUMP_DBG( 2, ( "%s PRIMARY_ALIGNMENT\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->pri, true, param->cg_style, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) primary sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    if ( rc == 0 && ctx->sec.curs.vcurs )
-    {
-        SAM_DUMP_DBG( 2, ( "%s SECONDARY_ALIGNMENT\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->sec, false, param->cg_style, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) secondary sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    return rc;
-}
-
-
-static rc_t DumpUnaligned( SAM_dump_ctx_t *const ctx, bool const aligned )
-{
-    rc_t rc = 0;
-    int64_t start = 0;
-    uint64_t count = 0;
-
-    rc = VCursorIdRange( ctx->seq.curs.vcurs, 0, &start, &count );
-    if ( rc == 0 )
-    {
-        uint64_t rcount = 0;
-        if ( param->test_rows != 0 && count > param->test_rows )
-        {
-            count = param->test_rows;
-        }
-        SAM_DUMP_DBG( 2, ( "%s SEQUENCE table range from %ld qty %lu\n", ctx->accession, start, count ) );
-        while ( count > 0 && rc == 0 )
-        {
-            uint32_t i;
-
-            if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].idx == 0)
-            {
-                rc = DumpUnalignedReads( ctx, NULL, start, &rcount );
-            }
-            else
-            {
-                /* avoid reading whole sequence cursor data unnecessarily */
-                rc = Cursor_Read( &ctx->seq, start, seq_PRIMARY_ALIGNMENT_ID, ~(unsigned)0 );
-                if ( rc == 0 )
-                {
-                    /* find if its completely unaligned */
-                    int64_t min_prim_id = 0;
-                    bool has_unaligned = false;
-                    for ( i = 0; rc == 0 && i < ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len; i++ )
-                    {
-                        int64_t x = ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ];
-                        has_unaligned |= x == 0;
-                        if ( ( min_prim_id == 0 && x != 0 ) || min_prim_id < x )
-                        {
-                            min_prim_id = x;
-                        }
-                    }
-                    if ( min_prim_id == 0 )
-                    {
-                        /* fully unaligned spot */
-                        rc = DumpUnalignedReads( ctx, NULL, start, &rcount );
-                    }
-                    else if ( has_unaligned && !param->unaligned_spots )
-                    {
-                        if ( rc == 0 )
-                        {
-#if USE_MATE_CACHE
-                            uint64_t val;
-                            rc = Cache_Get( &ctx->pri.curs, min_prim_id, &val );
-                            if ( rc == 0 )
-                            {
-                                ctx->pri.cols[ alg_REF_POS ].len = 0;
-                                Cache_Unpack( val, 0, &ctx->pri.curs, ctx->pri.cols );
-                                ctx->pri.cols[ alg_SEQ_SPOT_ID ].base.i64 = &start;
-                                ctx->pri.cols[ alg_SEQ_SPOT_ID ].len = 1;
-                                memcpy( &ctx->pri.cols[ alg_REF_NAME ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-                                memcpy( &ctx->pri.cols[ alg_REF_SEQ_ID ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-                                memcpy( &ctx->pri.cols[ alg_REF_POS ], &ctx->pri.cols[ alg_MATE_REF_POS ], sizeof( SCol ) );
-                            }
-                            else if ( !( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcItem ) )
-                            {
-                                break;
-                            }
-                            else
-                            {
-#endif /* USE_MATE_CACHE */
-                                rc = Cursor_ReadAlign( &ctx->pri.curs, min_prim_id, ctx->pri.cols, alg_MATE_ALIGN_ID );
-#if USE_MATE_CACHE
+            for(p = 0; rc == 0 && p < count[earg_distance]; p++) {
+                /* from[-to] | [from]-to | unknown */
+                errmsg = DumpArgs[earg_distance].name;
+                if( (rc = ArgsOptionValue(args, DumpArgs[earg_distance].name, p, &arg)) != 0 ) {
+                } else if( strcasecmp(arg, "unknown") == 0 ) {
+                    params.mp_dist_unknown = true;
+                } else {
+                    TMatepairDistance* p;
+                    if( (p = realloc(params.mp_dist, sizeof(*params.mp_dist) * ++params.mp_dist_qty)) == NULL ) {
+                        rc = RC(rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted);
+                    } else {
+                        uint64_t* v;
+                        params.mp_dist = p;
+                        p = &params.mp_dist[params.mp_dist_qty - 1];
+                        p->from = 0;
+                        p->to = 0;
+                        v = &p->from;
+                        while(rc == 0 && *arg != '\0') {
+                            if( *arg == '-' ) {
+                                v = &p->to;
+                            } else if( *arg == '+' ) {
+                                if( *v != 0 ) {
+                                    rc = RC(rcExe, rcArgv, rcProcessing, rcParam, rcOutofrange);
+                                }
+                            } else if( !isdigit(*arg) ) {
+                                rc = RC(rcExe, rcArgv, rcProcessing, rcParam, rcOutofrange);
+                            } else {
+                                *v = *v * 10 + (*arg - '0');
                             }
-#endif /* USE_MATE_CACHE */
-                            rc = rc ? rc : DumpUnalignedReads( ctx, ctx->pri.cols, min_prim_id, &rcount );
+                            arg++;
+                        }
+                        if( p->from > p->to && p->to != 0 ) {
+                            uint64_t x = p->from;
+                            p->from = p->to;
+                            p->to = x;
+                        }
+                        if( p->from == 0 && p->to == 0 ) {
+                            params.mp_dist_qty--;
                         }
                     }
-                } else if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcRow )
-                {
-                    rc = 0;
                 }
             }
-            start++;
-            count--;
-            rc = rc ? rc : Quitting();
-        }
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) unaligned sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    return rc;
-}
-
-#if USE_MATE_CACHE
-static rc_t FlushUnalignedRead_cb (uint64_t key, bool value,void *user_data)
-{
-	rc_t rc;
-	int64_t spot_id = (int64_t) key;
-	int64_t aligned_mate_id = (int64_t) value;
-	SAM_dump_ctx_t *const ctx = user_data;
-	rc = Cursor_Read( &ctx->seq, spot_id, seq_PRIMARY_ALIGNMENT_ID, ~(unsigned)0 );
-	if ( rc == 0 ) {
-		uint64_t rcount;
-		uint64_t val;
-		assert(ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len == 2);
-		if(ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[0]==0){
-			aligned_mate_id = ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[1];
-			assert(aligned_mate_id != 0);
-		} else if(ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[1] == 0){
-			aligned_mate_id = ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[0];
-			assert(aligned_mate_id != 0);
-		} else {
-			assert(0);
-		}
-                rc = Cache_Get( &ctx->pri.curs, aligned_mate_id, &val );
-                if ( rc == 0 ) {
-			ctx->pri.cols[ alg_REF_POS ].len = 0;
-			Cache_Unpack( val, 0, &ctx->pri.curs, ctx->pri.cols );
-			ctx->pri.cols[ alg_SEQ_SPOT_ID ].base.i64 = &spot_id;
-			ctx->pri.cols[ alg_SEQ_SPOT_ID ].len = 1;
-			memcpy( &ctx->pri.cols[ alg_REF_NAME ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-			memcpy( &ctx->pri.cols[ alg_REF_SEQ_ID ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-			memcpy( &ctx->pri.cols[ alg_REF_POS ], &ctx->pri.cols[ alg_MATE_REF_POS ], sizeof( SCol ) );
-			rc =DumpUnalignedReads( ctx, ctx->pri.cols, aligned_mate_id, &rcount );
-		}
-	}
-        return rc;
-}
-static rc_t FlushUnaligned( SAM_dump_ctx_t *const ctx, const SCursCache * cache )
-{
-    return KVectorVisitBool (cache->cache_unaligned_mate, false, FlushUnalignedRead_cb, ctx );
-}
-#endif
-
-static rc_t DumpHeader( SAM_dump_ctx_t const *ctx )
-{
-    bool reheader = param->reheader;
-    rc_t rc = 0;
-    
-    if ( !reheader )
-    {
-        if ( ctx->db )
-        {
-            /* grab header from db meta node */
-            KMetadata const *meta;
+            for(p = 0; p < params.mp_dist_qty; p++) {
+                if( params.mp_dist_unknown ) {
+                    SAM_DUMP_DBG(2, ("distance 'unknown'\n"));
+                }
+                SAM_DUMP_DBG(2, ("distance [%lu-%lu]\n", params.mp_dist[p].from, params.mp_dist[p].to));
+            }
+            params.use_seqid = (count[earg_seq_id] > 0) || (pcount > 1);
+            params.unaligned = count[earg_unaligned] > 0;
+            params.long_cigar = count[earg_cigartype] > 0;
+            params.reheader = count[earg_header] > 0;
+            params.hide_identical = count[earg_identicalbases] > 0;
+            params.fasta = count[earg_fasta] > 0;
+            params.fastq = count[earg_fastq] > 0;
+            params.spot_group_in_name = (count[earg_qname] > 0) || (pcount > 1);
+            params.noheader = (count[earg_noheader] > 0) || params.fasta || params.fastq;
             
-            rc = VDatabaseOpenMetadataRead( ctx->db, &meta );
-            if ( rc == 0 )
-            {
-                KMDataNode const *node;
-                
-                rc = KMetadataOpenNodeRead( meta, &node, "BAM_HEADER" );
-                KMetadataRelease( meta );
-                
-                if ( rc == 0 )
-                {
-                    size_t offset = 0;
-                    
-                    for ( offset = 0; ; )
-                    {
-                        size_t remain;
-                        size_t nread;
-                        char buffer[ 4096 ];
-                        
-                        rc = KMDataNodeRead( node, offset, buffer, sizeof(buffer), &nread, &remain );
-                        if ( rc != 0 )
+            if( rc == 0 ) {
+                rc = BufferedWriterMake(count[earg_gzip] > 0, count[earg_bzip2] > 0);
+            }
+            for(p = 0; rc == 0 && p < pcount; p++) {
+                if( (rc = ArgsParamValue(args, p, &params.path)) == 0 ) {
+                    int i;
+                    params.accession = params.path;
+                    /* remove trailing /\ */
+                    for(i = strlen(params.path) - 1; i >= 0; i--) {
+                        if( params.path[i] != '/' && params.path[i] != '\\' ) {
                             break;
-                        BufferedWriter( NULL, buffer, nread, NULL );
-                        if ( remain == 0 )
-                        {
-                            if ( buffer[nread - 1] != '\n' )
-                            {
-                                 buffer[ 0 ] = '\n';
-                                 BufferedWriter( NULL, buffer, 1, NULL );
-                            }
+                        }
+                        ((char*)params.path)[i] = '\0';
+                    }
+                    /* use last path element as accession */
+                    for(i = strlen(params.path) - 1; i >= 0; i--) {
+                        if( params.path[i] == '/' || params.path[i] == '\\' ) {
+                            params.accession = &params.path[i + 1];
                             break;
                         }
-                        offset += nread;
                     }
-                    KMDataNodeRelease(node);
-                }
-                else if ( GetRCState( rc ) == rcNotFound )
-                {
-                    reheader = true;
-                    rc = 0;
+                    rc = Dump(p, pcount > 1, &params);
                 }
             }
-        }
-        else
-        {
-            reheader = true;
-            rc = 0;
-        }
-    }
-
-    if ( rc == 0 && reheader )
-    {
-        KOutMsg( "@HD\tVN:1.3\n" );
-        if ( gRefList )
-            rc = RefSeqPrint();
-        if ( ctx->readGroup )
-            ReadGroup_print( ctx->readGroup );
-        if ( ctx->seq.tbl.vtbl )
-            rc = DumpReadGroups( &ctx->seq.tbl );
-    }
-    if ( rc == 0 && param->comments )
-    {
-        unsigned i;
-        
-        for( i = 0; param->comments[ i ]; ++i )
-            KOutMsg( "@CO\t%s\n", param->comments[ i ] );
-    }
-    return rc;
-}
-
-
-static rc_t DumpDB( SAM_dump_ctx_t *const ctx )
-{
-    rc_t rc = 0;
-
-    if ( ctx->ref.tbl.vtbl != NULL )
-        rc = ReferenceList_MakeTable( &gRefList, ctx->ref.tbl.vtbl, 0, CURSOR_CACHE, NULL, 0 );
-    if ( !param->noheader )
-        rc = DumpHeader( ctx );
-    if ( rc == 0 )
-    {
-        if ( param->region_qty ){
-            rc = ForEachAlignedRegion(  ctx
-                                      ,   ( param->primaries   ? primary_IDS : 0 )
-                                        | ( param->secondaries ? secondary_IDS : 0 )
-                                        | ( param->cg_evidence ? evidence_interval_IDS : 0 )
-                                        | ( param->cg_ev_dnb   ? evidence_alignment_IDS : 0 )
-                                      , DumpAlignedRowList_cb );
-#if USE_MATE_CACHE
-	    if ( rc == 0 && param->unaligned ){
-                rc = FlushUnaligned( ctx,ctx->pri.curs.cache);
-	    }
-#endif
-	}
-        if ( param->cg_sam )
-            rc = ForEachAlignedRegion( ctx, evidence_interval_IDS, DumpCGSAM );
-
-        if ( param->region_qty == 0 )
-        {
-            rc = DumpUnsorted( ctx );
-            if ( rc == 0 && param->unaligned )
-                rc = DumpUnaligned( ctx, ctx->pri.tbl.vtbl != NULL );
-        }
-    }
-    ReferenceList_Release( gRefList );
-    return rc;
-}
-
-
-static rc_t DumpTable( SAM_dump_ctx_t *ctx )
-{
-    rc_t rc = 0;
-
-    if ( !param->noheader )
-        rc = DumpHeader( ctx );
-    if ( rc == 0 )
-        rc = DumpUnaligned( ctx, false );
-    return rc;
-}
-
-
-static rc_t ProcessTable( VDBManager const *mgr, char const fullPath[],
-                          char const accession[], char const readGroup[] )
-{
-    VTable const *tbl;
-    rc_t rc = VDBManagerOpenTableRead( mgr, &tbl, 0, fullPath );
-    
-    if ( rc != 0 )
-    {
-        VSchema *schema;
-        
-        rc = VDBManagerMakeSRASchema( mgr, &schema );
-        if ( rc == 0 )
-        {
-            rc = VDBManagerOpenTableRead( mgr, &tbl, schema, fullPath );
-            VSchemaRelease( schema );
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        SAM_dump_ctx_t ctx;
-        SCol seq_cols[ sizeof( gSeqCol ) / sizeof( gSeqCol[ 0 ] ) ];
-        
-        memset( &ctx, 0, sizeof( ctx ) );
-        
-        ctx.fullPath = fullPath;
-        ctx.accession = accession;
-        ctx.readGroup = readGroup;
-        
-        DATASOURCE_INIT( ctx.seq, accession );
-        ctx.seq.tbl.vtbl = tbl;
-        ctx.seq.type = edstt_Sequence;
-        
-        ReportResetTable( fullPath, tbl );
-
-        ctx.seq.cols = seq_cols;
-        memcpy( ctx.seq.cols, gSeqCol, sizeof( gSeqCol ) );
-        rc = Cursor_Open( &ctx.seq.tbl, &ctx.seq.curs, ctx.seq.cols, NULL );
-        if ( rc == 0 ) {
-            rc = DumpTable( &ctx );
-            Cursor_Close(&ctx.seq.curs);
-        }
-        VTableRelease( tbl );
-    }
-    return rc;
-}
-
-
-static void SetupColumns( DataSource *ds, enum eDSTableType type )
-{
-    memcpy( ds->cols, g_alg_col_tmpl, sizeof( g_alg_col_tmpl ) );
-    
-    ds->type = type;
-    if ( param->use_seqid )
-        ds->cols[ alg_MATE_REF_NAME ].name = "MATE_REF_SEQ_ID";
-    else
-        ds->cols[ alg_MATE_REF_NAME ].name = "MATE_REF_NAME";
-    
-    if ( param->fasta || param->fastq )
-        ds->cols[ alg_READ ].name = "RAW_READ";
-    else if ( param->hide_identical )
-        ds->cols[ alg_READ ].name = "MISMATCH_READ";
-    else
-        ds->cols[ alg_READ ].name = "READ";
-    
-    if ( param->long_cigar )
-    {
-        ds->cols[ alg_CIGAR ].name = "CIGAR_LONG";
-        ds->cols[ alg_CIGAR_LEN ].name = "CIGAR_LONG_LEN";
-    }
-    else
-    {
-        ds->cols[ alg_CIGAR ].name = "CIGAR_SHORT";
-        ds->cols[ alg_CIGAR_LEN ].name = "CIGAR_SHORT_LEN";
-    }
-
-    if(param->qualQuant && param->qualQuantSingle){ /** we don't really need quality ***/
-	ds->cols[ alg_SAM_QUALITY   ].name = "";
-    }
-    
-    switch ( type )
-    {
-    case edstt_EvidenceInterval:
-	
-        ds->cols[ alg_SEQ_SPOT_ID   ].name = "";
-        ds->cols[ alg_SEQ_NAME      ].name = "";
-        ds->cols[ alg_SAM_QUALITY   ].name = "";
-        ds->cols[ alg_SPOT_GROUP    ].name = "";
-        ds->cols[ alg_SEQ_SPOT_GROUP].name = "";
-        ds->cols[ alg_SEQ_READ_ID   ].name = "";
-        ds->cols[ alg_MATE_ALIGN_ID ].name = "";
-        ds->cols[ alg_MATE_REF_ID   ].name = "";
-        ds->cols[ alg_MATE_REF_NAME ].name = "";
-        ds->cols[ alg_SAM_FLAGS     ].name = "";
-        ds->cols[ alg_MATE_REF_POS  ].name = "";
-        ds->cols[ alg_ALIGN_GROUP   ].name = "";
-        ds->cols[ alg_TEMPLATE_LEN  ].name = "";
-        if ( param->cg_sam || param->cg_ev_dnb )
-            ds->cols[ alg_EVIDENCE_ALIGNMENT_IDS ].name = "EVIDENCE_ALIGNMENT_IDS";
-        break;
-
-    case edstt_EvidenceAlignment:
-        ds->cols[ alg_REF_PLOIDY    ].name = "REF_PLOIDY";
-        ds->cols[ alg_REF_ID        ].name = "REF_ID";
-        ds->cols[ alg_MATE_ALIGN_ID ].name = "";
-        ds->cols[ alg_MATE_REF_ID   ].name = "";
-        ds->cols[ alg_MATE_REF_NAME ].name = "";
-        ds->cols[ alg_SAM_FLAGS     ].name = "";
-        ds->cols[ alg_MATE_REF_POS  ].name = "";
-        ds->cols[ alg_ALIGN_GROUP   ].name = "";
-        ds->cols[ alg_TEMPLATE_LEN  ].name = "";
-        break;
-    default:
-        break;
-    }
-}
-
-
-static rc_t ProcessDB( VDatabase const *db, char const fullPath[],
-                       char const accession[], char const readGroup[] )
-{
-    char const *const refTableName = (   param->region_qty > 0
-                                      || param->cg_evidence
-                                      || param->cg_ev_dnb
-                                      || param->cg_sam
-                                      || param->reheader
-                                      || param->primaries
-                                      || param->secondaries
-                                     )
-                                   ? "REFERENCE"
-                                   : 0;
-    char const *const priTableName = param->primaries   ? "PRIMARY_ALIGNMENT" : 0;
-    char const *const secTableName = param->secondaries ? "SECONDARY_ALIGNMENT" : 0;
-    char const *const seqTableName = ( param->unaligned || param->reheader ) ? "SEQUENCE" : 0;
-    char const *const eviTableName = ( param->cg_evidence || ( param->cg_ev_dnb & ( param->region_qty > 0 ) ) || param->cg_sam ) ? "EVIDENCE_INTERVAL" : 0;
-    char const *const evaTableName = ( param->cg_ev_dnb   || param->cg_sam ) ? "EVIDENCE_ALIGNMENT" : 0;
-    
-    SAM_dump_ctx_t ctx;
-    SCol align_cols[ ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) * 4 ];
-    SCol seq_cols[ sizeof( gSeqCol ) / sizeof( gSeqCol[ 0 ] ) ];
-    rc_t rc = 0;
-    
-    memset( &ctx, 0, sizeof( ctx ) );
-    memset( align_cols, 0, sizeof( align_cols ) );
-    memset( seq_cols, 0, sizeof( seq_cols ) );
-    
-    ctx.db = db;
-    ctx.fullPath = fullPath;
-    ctx.accession = accession;
-    ctx.readGroup = readGroup;
-    
-    DATASOURCE_INIT( ctx.seq, seqTableName );
-    DATASOURCE_INIT( ctx.ref, refTableName );
-    DATASOURCE_INIT( ctx.pri, priTableName );
-    DATASOURCE_INIT( ctx.sec, secTableName );
-    DATASOURCE_INIT( ctx.evi, eviTableName );
-    DATASOURCE_INIT( ctx.eva, evaTableName );
-    
-    if ( ctx.seq.tbl.name )
-    {
-        rc = VDatabaseOpenTableRead( db, &ctx.seq.tbl.vtbl, ctx.seq.tbl.name );
-        if ( rc == 0 )
-        {
-            ctx.seq.cols = seq_cols;
-            memcpy(seq_cols, gSeqCol, sizeof(gSeqCol));
-            rc = Cursor_Open( &ctx.seq.tbl, &ctx.seq.curs, ctx.seq.cols, NULL );
-        }
-    }
-    ctx.pri.cols = &align_cols[ 0 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    ctx.sec.cols = &align_cols[ 1 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    ctx.evi.cols = &align_cols[ 2 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    ctx.eva.cols = &align_cols[ 3 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    
-    SetupColumns( &ctx.pri, edstt_PrimaryAlignment );
-    SetupColumns( &ctx.sec, edstt_SecondaryAlignment );
-    SetupColumns( &ctx.evi, edstt_EvidenceInterval );
-    SetupColumns( &ctx.eva, edstt_EvidenceAlignment );
-    
-    if ( ctx.pri.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.pri.tbl.vtbl, ctx.pri.tbl.name );
-    if ( ctx.sec.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.sec.tbl.vtbl, ctx.sec.tbl.name );
-    if ( ctx.evi.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.evi.tbl.vtbl, ctx.evi.tbl.name );
-    if ( ctx.eva.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.eva.tbl.vtbl, ctx.eva.tbl.name );
-    
-    if (   ctx.pri.tbl.vtbl == NULL
-        && ctx.sec.tbl.vtbl == NULL
-        && ctx.evi.tbl.vtbl == NULL
-        && ctx.eva.tbl.vtbl == NULL )
-    {
-        memset (&ctx.pri, 0, sizeof( ctx.pri ) * 4 );
-        if ( ctx.seq.tbl.name == NULL )
-        {
-            ctx.seq.tbl.name = "SEQUENCE";
-            rc = VDatabaseOpenTableRead( db, &ctx.seq.tbl.vtbl, ctx.seq.tbl.name );
-        }
-        if ( rc == 0 )
-        {
-            ctx.seq.cols = seq_cols;
-            memcpy(seq_cols, gSeqCol, sizeof(gSeqCol));
-            rc = Cursor_Open(&ctx.seq.tbl, &ctx.seq.curs, ctx.seq.cols, NULL);
-            if ( rc == 0 )
-            {
-                rc = DumpTable( &ctx );
-                Cursor_Close(&ctx.seq.curs);
-            }
-            VTableRelease(ctx.seq.tbl.vtbl);
-        }
-        VDatabaseRelease( db );
-        return rc;
-    }
-    ReportResetDatabase( fullPath, db );
-    
-    if ( ctx.ref.tbl.name )
-    {
-        rc = VDatabaseOpenTableRead( db, &ctx.ref.tbl.vtbl, ctx.ref.tbl.name );
-        ctx.ref.type = edstt_Reference;
-    }
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.pri.tbl, &ctx.pri.curs, ctx.pri.cols, ctx.seq.curs.cache );
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.sec.tbl, &ctx.sec.curs, ctx.sec.cols, NULL );
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.evi.tbl, &ctx.evi.curs, ctx.evi.cols, NULL );
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.eva.tbl, &ctx.eva.curs, ctx.eva.cols, NULL );
-    if ( rc == 0 )
-        rc = DumpDB( &ctx );
-    
-    Cursor_Close(&ctx.ref.curs);
-    Cursor_Close(&ctx.pri.curs);
-    Cursor_Close(&ctx.sec.curs);
-    Cursor_Close(&ctx.evi.curs);
-    Cursor_Close(&ctx.eva.curs);
-    Cursor_Close(&ctx.seq.curs);
-    
-    VTableRelease( ctx.ref.tbl.vtbl );
-    VTableRelease( ctx.pri.tbl.vtbl );
-    VTableRelease( ctx.sec.tbl.vtbl );
-    VTableRelease( ctx.evi.tbl.vtbl );
-    VTableRelease( ctx.eva.tbl.vtbl );
-    VTableRelease( ctx.seq.tbl.vtbl );
-    
-    return rc;
-}
-
-#if 0
-rc_t ResolvePath( char const *accession, char const ** path )
-{
-    rc_t rc = 0;
-    static char tblpath[ 4096 ];
-#if TOOLS_USE_SRAPATH != 0
-    static SRAPath* pmgr = NULL;
-    
-    if ( accession == NULL && path == NULL )
-    {
-        SRAPathRelease( pmgr );
-        return 0;
-    }
-    if (   pmgr != NULL
-        || ( rc = SRAPathMake( &pmgr, NULL ) ) == 0
-        || ( GetRCState( rc ) == rcNotFound && GetRCTarget( rc ) == rcDylib ) )
-    {
-        *path = tblpath;
-        tblpath[ 0 ] = '\0';
-        rc = 0;
-        do {
-            if ( pmgr != NULL && !SRAPathTest( pmgr, accession ) )
-            {
-                /* try to resolve the path using mgr */
-                rc = SRAPathFind( pmgr, accession, tblpath, sizeof( tblpath ) );
-                if ( rc == 0 )
-                    break;
-            }
-            if ( strlen( accession ) >= sizeof( tblpath ) )
-            {
-                rc = RC( rcExe, rcPath, rcResolving, rcBuffer, rcInsufficient );
-            }
-            else
-            {
-                strcpy( tblpath, accession );
-                rc = 0;
-            }
-        } while( false );
-    }
-#else
-    if ( accession != NULL && path != NULL )
-    {
-        *path = tblpath;
-        strcpy( tblpath, accession );
-    }
-#endif
-
-    return rc;
-}
-#endif
-
-
-static rc_t ProcessPath( VDBManager const *mgr, char const Path[] )
-{
-#if 0
-    unsigned pathlen = strlen( Path );
-    char *readGroup = NULL;
-    char *path = NULL;
-    unsigned i;
-    rc_t rc;
-    
-    /* strip trailing path seperators */
-    for ( i = pathlen; i > 0; )
-    {
-        int const ch = Path[ --i ];
-        
-        if ( ch == '/' || ch == '\\' )
-            --pathlen;
-        else
-            break;
-    }
-
-    /* find read group alias */
-    for ( i = pathlen; i > 0; )
-    {
-        int const ch = Path[ --i ];
-        
-        if ( ch == '=' )
-        {
-            unsigned const pos = i + 1;
-            unsigned const len = pathlen - pos;
-            
-            pathlen = i;
-            
-            readGroup = malloc( len + 1 );
-            if ( readGroup == NULL )
-                return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-            memcpy( readGroup, &Path[ pos ], len );
-            readGroup[ len ] = '\0';
-            break;
-        }
-    }
-
-    path = malloc( pathlen + 1 );
-    if ( path == NULL )
-        return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-    memcpy( path, Path, pathlen );
-    path[ pathlen ] = '\0';
-    
-    rc = ReportResetObject( path );
-    if ( rc == 0 )
-    {
-        char const *fullPath;
-
-        rc = ResolvePath( path, &fullPath );
-        if ( rc == 0 )
-        {
-            char const *accession = fullPath;
-            VDatabase const *db;
-            
-            /* use last path element as accession */
-            for ( i = pathlen; i > 0; )
-            {
-                int const ch = path[ --i ];
-                
-                if ( ch == '/' || ch == '\\' )
-                {
-                    accession = &fullPath[ i + i ];
-                    break;
-                }
-            }
-            rc = VDBManagerOpenDBRead( mgr, &db, NULL, fullPath );
-            if ( rc == 0 )
-            {
-                rc = ProcessDB( db, fullPath, accession, readGroup );
-                VDatabaseRelease( db );
-            }
-            else
-                rc = ProcessTable( mgr, fullPath, accession, readGroup );
-        }
-    }
-    free( path );
-    free( readGroup );
-    return rc;
-
-#else
-
-    char * pc;
-    rc_t rc = 0;
-
-    pc = strchr (Path, ':');
-    if (pc == NULL)
-    {
-        unsigned pathlen;
-        char *readGroup;
-        char *path;
-        unsigned i;
-
-    old:
-        pathlen = strlen( Path );
-        readGroup = NULL;
-        path = NULL;
-    
-        /* strip trailing path seperators */
-        for ( i = pathlen; i > 0; )
-        {
-            int const ch = Path[ --i ];
-        
-            if ( ch == '/' || ch == '\\' )
-                --pathlen;
-            else
-                break;
-        }
-
-        /* find read group alias */
-        for ( i = pathlen; i > 0; )
-        {
-            int const ch = Path[ --i ];
-        
-            if ( ch == '=' )
-            {
-                unsigned const pos = i + 1;
-                unsigned const len = pathlen - pos;
-            
-                pathlen = i;
-            
-                readGroup = malloc( len + 1 );
-                if ( readGroup == NULL )
-                    return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-                memcpy( readGroup, &Path[ pos ], len );
-                readGroup[ len ] = '\0';
-                break;
-            }
-        }
-
-        path = malloc( pathlen + 1 );
-        if ( path == NULL )
-            return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-        memcpy( path, Path, pathlen );
-        path[ pathlen ] = '\0';
-    
-        rc = ReportResetObject( path );
-        if ( rc == 0 )
-        {
-            char const *accession = path;
-            VDatabase const *db;
-            
-            /* use last path element as accession */
-            for ( i = pathlen; i > 0; )
-            {
-                int const ch = path[ --i ];
-                
-                if ( ch == '/' || ch == '\\' )
-                {
-                    accession = &path[ i + 1 ];
-                    break;
-                }
-            }
-            rc = VDBManagerOpenDBRead( mgr, &db, NULL, path );
-            if ( rc == 0 )
-            {
-                rc = ProcessDB( db, path, accession, readGroup );
-                if (UIError(rc, db, NULL)) {
-                    UIDatabaseLOGError(rc, db, true);
-/*                  *error_reported = true; */
-                }
-                VDatabaseRelease( db );
-            }
-            else {
-                rc = ProcessTable( mgr, path, accession, readGroup );
-                if (UIError(rc, NULL, NULL)) {
-                    UITableLOGError(rc, NULL, true);
-/*                  *error_reported = true; */
-                }
-            }
-        }
-        free( path );
-        free( readGroup );
-        return rc;
-    }
-    else
-    {
-        VPath * vpath;
-        char * basename;
-        size_t zz;
-        char buffer [8193];
-        char readgroup_ [257];
-        char * readgroup;
-
-        rc = VPathMake (&vpath, Path);
-        if (rc)
-            ; /* LOGERR */
-        else
-        {
-            VPUri_t uri_t;
-            switch (uri_t = VPathGetUri_t (vpath))
-            {
-            default:
-            case vpuri_invalid:
-                rc = RC (rcExe, rcParam, rcAccessing, rcPath, rcInvalid);
-                break;
-            case vpuri_not_supported:
-                rc = RC (rcExe, rcParam, rcAccessing, rcPath, rcUnsupported);
-                break;
-            case vpuri_none:
-                goto old;
-
-            case vpuri_ncbi_vfs:
-            case vpuri_file:
-            case vpuri_ncbi_acc:
-            case vpuri_http:
-                rc = VPathReadPath (vpath, buffer, sizeof buffer - 1, &zz);
-                if (rc)
-                    ;
-                else
-                {
-                loop:
-                    basename = strrchr (buffer, '/');
-                    if (basename)
-                    {
-                        if (basename[1] == '\0')
-                        {
-                            basename[0] = '\0';
-                            goto loop;
-                        }
-                        else
-                            ++basename;
-                    }
-                    else
-                        basename = buffer;
-
-                    {
-                        char * ext;
-
-                        /* cut off [.lite].[c]sra[.nenc||.ncbi_enc] if any */
-                        ext = strrchr( basename, '.' );
-                        if ( ext != NULL )
-                        {
-                            if ( strcasecmp( ext, ".nenc" ) == 0 || strcasecmp( ext, ",ncbi_enc" ) == 0 )
-                            {
-                                *ext = '\0';
-                                ext = strrchr( basename, '.' );
-                            }
-                            if ( ext != NULL )
-                            {
-                                if ( strcasecmp( ext, ".sra" ) == 0 || strcasecmp( ext, ".csra" ) == 0 )
-                                {
-                                    *ext = '\0';
-                                    ext = strrchr( basename, '.' );
-                                    if ( ext != NULL && strcasecmp( ext, ".lite" ) == 0 )
-                                        *ext = '\0';
-                                }
-                            }
-                        }
-                    }
-
-                    rc = VPathOption (vpath, vpopt_readgroup, readgroup_, 
-                                      sizeof readgroup_ - 1, &zz);
-                    if (rc)
-                    {
-                        if (GetRCState (rc) == rcNotFound)
-                        {
-                            rc = 0;
-                            readgroup = NULL;
-                        }
-                    }
-                    else
-                        readgroup = readgroup_;
-
-
-                    if (rc)
-                        ;
-                    else
-                    {
-                        VDatabase const *db;
-
-                        rc = VDBManagerOpenDBRead( mgr, &db, NULL, Path );
-                        if ( rc == 0 )
-                        {
-                            rc = ProcessDB( db, Path, basename, readgroup );
-                            VDatabaseRelease( db );
-                        }
-                        else
-                            rc = ProcessTable( mgr, Path, basename, readgroup );
-                    }
-                }
-                break;
-            }
-            VPathRelease (vpath);
-        }
-    }
-    return rc;
-#endif
-}
-
-
-ver_t CC KAppVersion( void )
-{
-    return SAM_DUMP_VERS;
-}
-
-char const *unaligned_usage[] = {"Output unaligned reads", NULL};
-char const *unaligned_only_usage[] = {"Only output unaligned spots", NULL};
-char const *primaryonly_usage[] = {"Output only primary alignments", NULL};
-char const *cigartype_usage[] = {"Output long version of CIGAR", NULL};
-char const *cigarCG_usage[] = {"Output CG version of CIGAR", NULL};
-char const *cigarCGMerge_usage[] = {"Apply CG fixups to CIGAR/SEQ/QUAL and outputs CG-specific columns", NULL};
-char const *CG_evidence[] = {"Output CG evidence aligned to reference", NULL};
-char const *CG_ev_dnb[] = {"Output CG evidence DNB's aligned to evidence", NULL};
-char const *CG_SAM[] = {"Output CG evidence DNB's aligned to reference ", NULL};
-char const *CG_mappings[] = {"Output CG sequences aligned to reference ", NULL};
-char const *header_usage[] = {"Replace original BAM header with a reconstructed one", NULL};
-char const *noheader_usage[] = {"Do not output headers", NULL};
-char const *region_usage[] = {"Filter by position on genome.",
-                              "Name can either be file specific name (ex: \"chr1\" or \"1\").",
-                              "\"from\" and \"to\" are 1-based coordinates", NULL};
-char const *distance_usage[] = {"Filter by distance between matepairs.",
-                                "Use \"unknown\" to find matepairs split between the references.",
-                                "Use from-to to limit matepair distance on the same reference", NULL};
-char const *seq_id_usage[] = {"Print reference SEQ_ID in RNAME instead of NAME", NULL};
-char const *identicalbases_usage[] = {"Output '=' if base is identical to reference", NULL};
-char const *gzip_usage[] = {"Compress output using gzip", NULL};
-char const *bzip2_usage[] = {"Compress output using bzip2", NULL};
-char const *qname_usage[] = {"Add .SPOT_GROUP to QNAME", NULL};
-char const *fasta_usage[] = {"Produce Fasta formatted output", NULL};
-char const *fastq_usage[] = {"Produce FastQ formatted output", NULL};
-char const *prefix_usage[] = {"Prefix QNAME: prefix.QNAME", NULL};
-char const *reverse_usage[] = {"Reverse unaligned reads according to read type", NULL};
-char const *comment_usage[] = {"Add comment to header. Use multiple times for several lines. Use quotes", NULL};
-char const *XI_usage[] = {"Output cSRA alignment id in XI column", NULL};
-char const *qual_quant_usage[] = {"Quality scores quantization level",
-                                  "a string like '1:10,10:20,20:30,30:-'", NULL};
-char const *CG_names[] = { "Generate CG friendly read names", NULL};
-
-char const *usage_params[] =
-{
-    NULL,                       /* unaligned */
-    NULL,                       /* unaligned-only */
-    NULL,                       /* primaryonly */
-    NULL,                       /* cigartype */
-    NULL,                       /* cigarCG */
-    NULL,                       /* header */
-    NULL,                       /* no-header */
-    "'text'",                   /* comment */
-    "name[:from-to]",           /* region */
-    "from-to|unknown",          /* distance */
-    NULL,                       /* seq-id */
-    NULL,                       /* identical-bases */
-    NULL,                       /* gzip */
-    NULL,                       /* bzip2 */
-    NULL,                       /* qname */
-    NULL,                       /* fasta */
-    NULL,                       /* fastq */
-    "prefix",                   /* prefix */
-    NULL,                       /* reverse */
-    NULL,                       /* test-rows */
-    NULL,                       /* mate-row-gap-cacheable */
-    NULL,                       /* cigarCGMerge */
-    NULL,                       /* XI */
-    "quantization string",      /* qual-quant */
-    NULL,                       /* cigarCGMerge */
-    NULL,                       /* CG-evidence */
-    NULL,                       /* CG-ev-dnb */
-    NULL,                       /* CG-mappings */
-    NULL,                       /* CG-SAM */
-    NULL                        /* CG-names */
-};
-
-enum eArgs
-{
-    earg_unaligned = 0,         /* unaligned */
-    earg_unaligned_only,        /* unaligned */
-    earg_prim_only,             /* primaryonly */
-    earg_cigartype,             /* cigartype */
-    earg_cigarCG,               /* cigarCG */
-    earg_header,                /* header */
-    earg_noheader,              /* no-header */
-    earg_comment,               /* comment */
-    earg_region,                /* region */
-    earg_distance,              /* distance */
-    earg_seq_id,                /* seq-id */
-    earg_identicalbases,        /* identical-bases */
-    earg_gzip,                  /* gzip */
-    earg_bzip2,                 /* bzip2 */
-    earg_qname,                 /* qname */
-    earg_fastq,                 /* fasta */
-    earg_fasta,                 /* fastq */
-    earg_prefix,                /* prefix */
-    earg_reverse,               /* reverse */
-    earg_test_rows,             /* test-rows */
-    earg_mate_row_gap_cachable, /* mate-row-gap-cacheable */
-    earg_cigarCG_merge,         /* cigarCGMerge */
-    earg_XI,                    /* XI */
-    earg_QualQuant,             /* qual-quant */
-    earg_CG_evidence,           /* CG-evidence */
-    earg_CG_ev_dnb,             /* CG-ev-dnb */
-    earg_CG_mappings,           /* CG-mappings */
-    earg_CG_SAM,                /* CG-SAM */
-    earg_CG_names               /* CG-names */
-};
-
-OptDef DumpArgs[] =
-{
-    { "unaligned", "u", NULL, unaligned_usage, 0, false, false },           /* unaligned */
-    { "unaligned-only", "U", NULL, unaligned_only_usage, 0, false, false }, /* unaligned-only */
-    { "primary", "1", NULL, primaryonly_usage, 0, false, false },           /* primaryonly */
-    { "cigar-long", "c", NULL, cigartype_usage, 0, false, false },          /* cigartype */
-    { "cigar-CG", NULL, NULL, cigarCG_usage, 0, false, false },             /* cigarCG */
-    { "header", "r", NULL, header_usage, 0, false, false },                 /* header */
-    { "no-header", "n", NULL, noheader_usage, 0, false, false },            /* no-header */
-    { "header-comment", NULL, NULL, comment_usage, 0, true, false },        /* comment */
-    { "aligned-region", NULL, NULL, region_usage, 0, true, false },         /* region */
-    { "matepair-distance", NULL, NULL, distance_usage, 0, true, false },    /* distance */
-    { "seqid", "s", NULL, seq_id_usage, 0, false, false },                  /* seq-id */
-    { "hide-identical", "=", NULL, identicalbases_usage, 0, false, false }, /* identical-bases */
-    { "gzip", NULL, NULL, gzip_usage, 0, false, false },                    /* gzip */
-    { "bzip2", NULL, NULL, bzip2_usage, 0, false, false },                  /* bzip2 */
-    { "spot-group", "g", NULL, qname_usage, 0, false, false },              /* qname */
-    { "fastq", NULL, NULL, fastq_usage, 0, false, false },                  /* fasta */
-    { "fasta", NULL, NULL, fasta_usage, 0, false, false },                  /* fastq */
-    { "prefix", "p", NULL, prefix_usage, 0, true, false },                  /* prefix */
-    { "reverse", NULL, NULL, reverse_usage, 0, false, false },              /* reverse */
-    { "test-rows", NULL, NULL, NULL, 0, true, false },                      /* test-rows */
-    { "mate-cache-row-gap", NULL, NULL, NULL, 0, true, false },             /* mate-row-gap-cacheable */
-    { "cigar-CG-merge", NULL, NULL, cigarCGMerge_usage, 0, false, false },  /* cigarCGMerge */
-    { "XI", NULL, NULL, XI_usage, 0, false, false },                        /* XI */
-    { "qual-quant", "Q", NULL, qual_quant_usage, 0, true, false },          /* qual-quant */
-    { "CG-evidence", NULL, NULL, CG_evidence, 0, false, false },            /* CG-evidence */
-    { "CG-ev-dnb"  , NULL, NULL, CG_ev_dnb  , 0, false, false },            /* CG-ev-dnb */
-    { "CG-mappings", NULL, NULL, CG_mappings, 0, false, false },            /* CG-mappings */
-    { "CG-SAM", NULL, NULL, CG_SAM, 0, false, false },                      /* CG-SAM */
-    { "CG-names", NULL, NULL, CG_names, 0, false, false }                   /* CG-names */
-};
-
-
-const char UsageDefaultName[] = "sam-dump";
-
-
-rc_t CC UsageSummary( char const *progname )
-{
-    return KOutMsg( "Usage:\n"
-        "\t%s [options] path-to-run[ path-to-run ...] > output.sam\n\n", progname );
-}
-
-
-rc_t CC Usage( Args const *args)
-{
-    char const *progname = UsageDefaultName;
-    char const *fullpath = UsageDefaultName;
-    rc_t rc;
-    unsigned i;
-
-    rc = ArgsProgram( args, &fullpath, &progname );
-
-    UsageSummary( progname );
-
-    KOutMsg( "Options:\n" );
-    for( i = 0; i < sizeof( DumpArgs ) / sizeof( DumpArgs[ 0 ] ); i++ )
-    {
-        if ( DumpArgs[ i ].help != NULL )
-        {
-            HelpOptionLine( DumpArgs[ i ].aliases, DumpArgs[ i ].name,
-                            usage_params[ i ], DumpArgs[ i ].help);
-        }
-    }
-    KOutMsg( "\n" );
-    HelpOptionsStandard();
-
-    HelpVersion( fullpath, KAppVersion() );
-
-    return rc;
-}
-
-
-#define ARGS_COUNT (sizeof(DumpArgs)/sizeof(DumpArgs[0]))
-
-
-static unsigned ParamCount( Args const *const args, rc_t *const prc )
-{
-    uint32_t y = 0;
-    rc_t rc = ArgsParamCount( args, &y );
-    
-    if ( prc != NULL )
-        *prc = rc;
-    return y;
-}
-
-
-static unsigned ArgCount( Args const *const args, rc_t *const prc )
-{
-    uint32_t y = 0;
-    rc_t rc = ArgsArgvCount( args, &y );
-    
-    if ( prc != NULL )
-        *prc = rc;
-    return y;
-}
-
-
-static rc_t CountArgs( Args const *const args, unsigned count[],
-                       char const **const errmsg )
-{
-    rc_t rc;
-    unsigned const pcount = ParamCount( args, &rc );
-    
-    memset( count, 0, ARGS_COUNT );
-    if ( rc != 0 || pcount == 0 )
-    {
-        *errmsg = "";
-        MiniUsage( args );
-        return ( ArgCount( args, NULL ) < 2 )
-             ? 0
-             : RC( rcExe, rcArgv, rcParsing, rcParam, rcInsufficient );
-    }
-#define COUNT_ARG(E) do {\
-    char const *const optname = DumpArgs[ (E) ].name; \
-    if ( ( rc = ArgsOptionCount( args, optname, &count[ (E) ] ) ) != 0 ) { \
-        *errmsg = optname; \
-        return rc; \
-    } } while( 0 )
-    
-    
-    /* record source options */
-    COUNT_ARG( earg_unaligned );
-    COUNT_ARG( earg_unaligned_only );
-    COUNT_ARG( earg_prim_only );
-    COUNT_ARG( earg_CG_evidence );
-    COUNT_ARG( earg_CG_ev_dnb );
-    COUNT_ARG( earg_CG_mappings );
-    COUNT_ARG( earg_CG_SAM );
-    
-    /* record filter options */
-    COUNT_ARG( earg_region );
-    COUNT_ARG( earg_distance );
-    
-    /* output format options */
-    COUNT_ARG( earg_fastq );
-    COUNT_ARG( earg_fasta );
-    
-    /* SAM header options */
-    COUNT_ARG( earg_header );
-    COUNT_ARG( earg_noheader );
-    COUNT_ARG( earg_comment );
-    
-    /* SAM field options */
-    COUNT_ARG( earg_prefix );
-    COUNT_ARG( earg_qname );
-    COUNT_ARG( earg_seq_id );
-    COUNT_ARG( earg_CG_names );
-    
-    COUNT_ARG( earg_cigartype );
-    COUNT_ARG( earg_cigarCG );
-    COUNT_ARG( earg_cigarCG_merge );
-    
-    COUNT_ARG( earg_identicalbases );
-    COUNT_ARG( earg_reverse );
-    COUNT_ARG( earg_QualQuant );
-    
-    /* output encoding options */
-    COUNT_ARG( earg_gzip );
-    COUNT_ARG( earg_bzip2 );
-    
-    COUNT_ARG( earg_mate_row_gap_cachable );
-    
-    /* debug options */
-    COUNT_ARG( earg_XI );
-    COUNT_ARG( earg_test_rows );
-#undef COUNT_ARG
-    return 0;
-}
-
-
-static unsigned GetOptValU( Args const *const args, char const *const argname,
-                            unsigned const defval, rc_t *const prc )
-{
-    unsigned y = defval;
-    char const *valstr;
-    rc_t rc = ArgsOptionValue( args, argname, 0, &valstr );
-    
-    if ( rc == 0 )
-    {
-        char *endp;
-        
-        y = strtou32( valstr, &endp, 0 );
-        if ( *endp != '\0' )
-        {
-            rc = RC( rcExe, rcArgv, rcProcessing, rcParam, rcInvalid );
-            y = 0;
-        }
-        if ( y == 0 )
-            y = defval;
-    }
-    if ( prc )
-        *prc = rc;
-    return y;
-}
-
-
-static rc_t GetComments( Args const *const args, struct params_s *const parms, unsigned const n )
-{
-    parms->comments = calloc( n + 1, sizeof( parms->comments[ 0 ] ) );
-    if ( parms->comments != NULL )
-    {
-        unsigned i;
-        
-        for ( i = 0; i < n; ++i )
-        {
-            rc_t const rc = ArgsOptionValue( args, DumpArgs[ earg_comment ].name, i, &parms->comments[ i ] );
-            if ( rc != 0 )
-            {
-                free( parms->comments );
-                parms->comments = NULL;
-                return rc;
-            }
-        }
-        return 0;
-    }
-    else
-        return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-}
-
-
-static rc_t ParseFromTo( int *const pFrom, int *const pTo, char const str[] )
-{
-    /* $str =~ /((\d+)-(\d+))|(-(\d+))|(\d+)/ */
-    int n;
-    char fr_str[ 16 ];
-    char to_str[ 16 ];
-    uint32_t fr = 0;
-    uint32_t to = 0;
-    int i = sscanf( str, "%15[0-9]-%15[0-9]%n", fr_str, to_str, &n );
-    
-    if ( i != 2 )
-    {
-        unsigned const offset = ( str[ 0 ] == '-' ) ? 1 : 0;
-        
-        fr = 0;
-        i = sscanf( str + offset, "%15[0-9]%n", to_str, &n );
-        if ( i != 1 )
-            return RC( rcExe, rcArgv, rcProcessing, rcParam, rcOutofrange );
-        to = strtou32( to_str, 0, 0 );
-    }
-    else
-    {
-        fr = strtou32( fr_str, 0, 0 );
-        to = strtou32( to_str, 0, 0 );
-        
-        if ( to < fr )
-        {
-            uint32_t const tmp = to;
-            to = fr;
-            fr = tmp;
-        }
-    }
-    /* was the entire string consumed */
-    if ( str[ n ] != 0 )
-        return RC( rcExe, rcArgv, rcProcessing, rcParam, rcInvalid );
-    *pFrom = ( int )fr;
-    *pTo = ( int )to;
-    return 0;
-}
-
-
-static rc_t GetDistance( Args const *const args, struct params_s *const parms, unsigned const n )
-{
-    rc_t rc;
-    TMatepairDistance *const mpd = calloc( n, sizeof( mpd[ 0 ] ) );
-    
-    if ( mpd == NULL )
-        rc = RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-    else
-    {
-        unsigned i;
-        unsigned j;
-        
-        for ( j = i = 0; i < n; ++i )
-        {
-            char const *valstr;
-            int from = 0;
-            int to = 0;
-
-            rc = ArgsOptionValue( args, DumpArgs[earg_distance].name, i, &valstr );
-            if ( rc != 0 )
-                break;
-            if ( strcasecmp( valstr, "unknown" ) == 0 )
-            {
-                parms->mp_dist_unknown = true;
-                continue;
-            }
-            rc = ParseFromTo( &from, &to, valstr );
-            if ( rc != 0 )
-                break;
-            if ( ( from != 0 ) || ( to != 0 ) )
-            {
-                mpd[ j ].from = from;
-                mpd[ j ].to = to;
-                ++j;
-            }
-        }
-        if ( rc == 0 )
-        {
-            parms->mp_dist = mpd;
-            parms->mp_dist_qty = j;
-            
-            SAM_DUMP_DBG( 2, ( "filter by mate pair distance\n" ) );
-            if ( parms->mp_dist_unknown )
-                SAM_DUMP_DBG( 2, ( "    distance: unknown\n" ) );
-            for ( i = 0; i < j; ++i )
-            {
-                SAM_DUMP_DBG( 2, ( "    distance [%lu-%lu]\n",
-                              parms->mp_dist[ i ].from, parms->mp_dist[ i ].to ) );
-            }
-        }
-        else
-            free( mpd );
-    }
-    return rc;
-}
-
-
-static rc_t GetRegion( Args const *const args, struct params_s *const parms, unsigned const n )
-{
-    rc_t rc;
-    TAlignedRegion *const reg = calloc( n, sizeof( reg[ 0 ] ) );
-    
-    if ( reg == NULL )
-        rc = RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-    else
-    {
-        unsigned i;
-        unsigned j;
-        
-        for ( rc = 0, j = i = 0; i < n; ++i )
-        {
-            char const *valstr;
-            char const *sep;
-            unsigned namelen;
-            unsigned f;
-            unsigned e;
-            TAlignedRegion r;
-
-	    memset(&r,0,sizeof(r));
-            
-            rc = ArgsOptionValue( args, DumpArgs[ earg_region ].name, i, &valstr );
-            if ( rc != 0 ) break;
-            
-            sep = strchr( valstr, ':' );
-            if ( sep != NULL )
-                namelen = sep - valstr;
-            else
-                namelen = strlen( valstr );
-            
-            if ( namelen >= sizeof( r.name ) )
-                return RC( rcExe, rcArgv, rcProcessing, rcParam, rcTooLong );
-            
-            memcpy( r.name, valstr, namelen );
-            r.name[ namelen ] = '\0';
-            
-            r.rq = UINT_MAX;
-            if ( sep != NULL )
-            {
-                int from = -1;
-                int to = -1;
-                
-                rc = ParseFromTo( &from, &to, sep + 1 );
-                if ( rc != 0 )
-                    break;
-                if ( from > 0 ) /* convert to 0-based */
-                    --from;
-                else if ( to > 0 )
-                    from = 0;
-                if ( to > 0 )
-                    --to;
-                else if ( from >= 0 && to < 0 )
-                    to = from;
-                if ( from >= 0 || to >= 0 )
-                {
-                    if ( from > to )
-                    {
-                        int tmp = to;
-                        to = from;
-                        from = tmp;
-                    }
-                    r.r[ 0 ].from = from;
-                    r.r[ 0 ].to = to;
-                    r.rq = 1;
-                }
-            }
-            
-            for ( f = 0, e = j; f < e; )
-            {
-                unsigned const m = ( ( f + e ) / 2 );
-                int const diff = strcmp( r.name, reg[ m ].name );
-                
-                if ( diff < 0 )
-                    e = m;
-                else
-                    f = m + 1;
-            }
-            if ( 0 < e && e < j && strcmp( r.name, reg[ e-1 ].name ) == 0 )
-            {
-                TAlignedRegion *const fnd = &reg[ e - 1 ];
-                
-                if ( fnd->rq != UINT_MAX )
-                {
-                    for ( f = 0, e = fnd->rq; f < e; )
-                    {
-                        unsigned const m = ( ( f + e ) / 2 );
-                        
-                        if ( r.r[ 0 ].from < fnd->r[ m ].from )
-                            e = m;
-                        else
-                            f = m + 1;
-                    }
-                    if ( fnd->rq >= ( sizeof( r.r ) / sizeof( r.r[0] ) ) )
-                    {
-                        rc = RC( rcExe, rcArgv, rcProcessing, rcBuffer, rcInsufficient );
-                        break;
-                    }
-                    memmove( &fnd->r[ e +1 ], &fnd->r[ e ], ( fnd->rq - e ) * sizeof( fnd->r[ 0 ] ) );
-                    fnd->r[ e ] = r.r[ 0 ];
-                    ++fnd->rq;
-                }
-            }
-            else
-            {
-                memmove( &reg[ e + 1 ], &reg[ e ], ( j - e ) * sizeof( reg[ 0 ] ) );
-                reg[ e ] = r;
-                ++j;
-            }
-        }
-        if ( rc == 0 )
-        {
-            parms->region = reg;
-            parms->region_qty = j;
-            
-            for ( i = 0; i < parms->region_qty; ++i )
-            {
-                TAlignedRegion *const r = &parms->region[ i ];
-                
-                SAM_DUMP_DBG( 2, ( "filter by %s\n", r->name ) );
-                if ( r->rq == UINT_MAX )
-                {
-                    r->rq = 1;
-                    r->r[ 0 ].from = 0;
-                    r->r[ 0 ].to = UINT_MAX;
-                }
-                for ( j = 0; j < r->rq; ++j )
-                {
-                    unsigned const to = r->r[ j ].to;
-                    unsigned const from = r->r[ j ].from;
-                    
-                    SAM_DUMP_DBG( 2, ( "   range: [%u:%u]\n", r->r[ j ].from, to ) );
-                    if ( r->max_to < to ) r->max_to = to;
-                    if ( r->min_from < from ) r->min_from = from;
-                }
-            }
-        }
-        else
-            free( reg );
-    }
-    return rc;
-}
-
-
-static rc_t GetQualQuant( Args const *const args, struct params_s *const parms )
-{
-    char const *valstr;
-    int i;
-    rc_t rc = ArgsOptionValue( args, DumpArgs[ earg_QualQuant ].name, 0, &valstr );
-    
-    if ( rc == 0 && strcmp( valstr, "0" ) != 0 )
-        parms->quantizeQual = QualityQuantizerInitMatrix( parms->qualQuant, valstr );
-    for(i=1; parms->qualQuant[i]==parms->qualQuant[0] && i<256;i++){}
-    if(i<256) parms->qualQuantSingle=0;
-    else      parms->qualQuantSingle = parms->qualQuant[0];
-    return rc;
-}
-
-
-static rc_t GetArgs( Args const *const args, unsigned const count[],
-                     char const **const errmsg )
-{
-    static struct params_s parms;
-    bool const multipass = ParamCount( args, 0 ) > 1;
-    rc_t rc;
-    
-    memset( &parms, 0, sizeof( parms ) );
-    
-    if ( count[ earg_comment ] )
-    {
-        rc = GetComments( args, &parms, count[ earg_comment ] );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_comment ].name;
-            return rc;
-        }
-    }
-    
-    if ( count[ earg_region ] && count[ earg_unaligned_only ] == 0 )
-    {
-        rc = GetRegion( args, &parms, count[ earg_region ] );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_region ].name;
-            return rc;
-        }
-    }
-
-    if ( count[ earg_distance ] && count[ earg_unaligned_only ] == 0 )
-    {
-        rc = GetDistance( args, &parms, count[ earg_distance ] );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_distance ].name;
-            return rc;
-        }
-    }
-
-    if ( count[ earg_QualQuant ] )
-    {
-        rc = GetQualQuant( args, &parms );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_QualQuant ].name;
-            return rc;
-        }
-    }
-    
-    parms.cg_sam = ( count[ earg_CG_SAM ] != 0 );
-    parms.cg_evidence = ( count[ earg_CG_evidence ] != 0 );
-    parms.cg_ev_dnb = ( count[ earg_CG_ev_dnb ] != 0 );
-    
-    if ( count[ earg_CG_mappings ] == 0 &&
-         ( parms.cg_sam || parms.cg_evidence || parms.cg_ev_dnb ) )
-    {
-        parms.primaries = false;
-        parms.secondaries = false;
-        parms.unaligned = false;
-    }
-    else
-    {
-        parms.primaries = true;
-        parms.secondaries = ( count[ earg_prim_only ] == 0 );
-        parms.unaligned = ( ( count[ earg_unaligned ] != 0 ) /*&& ( parms.region_qty == 0 )*/ );
-    }
-    
-    parms.long_cigar = ( count[ earg_cigartype ] != 0 );
-    parms.use_seqid = ( ( count[ earg_seq_id ] != 0 ) || multipass );
-    parms.hide_identical = ( count[ earg_identicalbases ] != 0 );
-    parms.fasta = ( count[ earg_fasta ] != 0 );
-    parms.fastq = ( count[ earg_fastq ] != 0 );
-    parms.reverse_unaligned = ( count[ earg_reverse ] != 0 );
-    parms.cg_friendly_names = count[ earg_CG_names ] != 0;
-    parms.spot_group_in_name = ( count[ earg_qname ] != 0 || multipass );
-    parms.noheader = ( ( count[ earg_noheader ] != 0 ) || parms.fasta || parms.fastq || multipass );
-    parms.reheader = ( ( count[ earg_header ] != 0 ) && !parms.noheader );
-    parms.xi = ( count[ earg_XI ] != 0 );
-    if ( ( count[ earg_cigarCG ] == 0 ) && ( count[ earg_cigarCG_merge ] == 0 ) )
-    {
-        parms.cg_style = 0;
-    }
-    else if ( count[ earg_cigarCG ] == 0 )
-    {
-        parms.cg_style = 1;
-        parms.long_cigar = false;
-    }
-    else if ( count[ earg_cigarCG_merge ] == 0 )
-    {
-        parms.cg_style = 2;
-    }
-    else
-    {
-        rc = RC( rcExe, rcArgv, rcProcessing, rcParam, rcInconsistent );
-        *errmsg = "cigar-CG and CG are mutually exclusive";
-        parms.cg_style = 0;
-    }
-
-    if (count[ earg_unaligned_only ] > 0) {
-        parms.unaligned_spots = true;
-        
-        parms.primaries = false;
-        parms.secondaries = false;
-        parms.unaligned = true;
-        parms.cg_ev_dnb = false;
-        parms.cg_evidence = false;
-        parms.cg_sam = false;
-        parms.cg_style = 0;
-    }
-    
-    parms.test_rows = GetOptValU( args, DumpArgs[ earg_test_rows ].name, 0, NULL );
-    parms.mate_row_gap_cachable = GetOptValU( args, DumpArgs[ earg_mate_row_gap_cachable ].name, 1000000, NULL );
-    
-    param = &parms;
-    return 0;
-}
-
-
-static rc_t GetParams( Args const *const args, char const **const errmsg )
-{
-    unsigned count[ ARGS_COUNT ];
-    rc_t rc = CountArgs( args, count, errmsg );
-    
-    if ( rc == 0 )
-        rc = GetArgs( args, count, errmsg );
-    return rc;
-}
-
-
-rc_t CC SAM_Dump_Main( int argc, char* argv[] )
-{
-    rc_t rc = 0;
-    Args* args;
-    char const *errmsg = "stop";
-    bool error_reported = false;
-
-    memset( &g_out_writer, 0, sizeof( g_out_writer ) );
-    KOutHandlerSetStdOut();
-    KStsHandlerSetStdErr();
-    KLogHandlerSetStdErr();
-    (void)KDbgHandlerSetStdErr();
-
-    ReportBuildDate( __DATE__ );
-
-    rc = ArgsMakeAndHandle( &args, argc, argv, 1, DumpArgs, ARGS_COUNT );
-    if ( rc == 0 )
-    {
-        uint32_t pcount;
-
-        rc = ArgsParamCount( args, &pcount );
-        if ( rc != 0 || pcount < 1 )
-        {
-            errmsg = "";
-            rc = argc < 2 ? 0 : RC( rcExe, rcArgv, rcParsing, rcParam, rcInsufficient );
-            MiniUsage( args );
-        }
-        else if ( ( rc = GetParams( args, &errmsg ) ) != 0 )
-        {
-        }
-        else
-        {
-            VDBManager const *mgr;
-            
-            rc = VDBManagerMakeRead( &mgr, NULL );
-            if ( rc == 0 )
-            {
-                rc = BufferedWriterMake( param->output_gzip, param->output_bz2 );
-                if ( rc == 0 )
-                {
-                    unsigned i;
-                    
-                    for ( i = 0; i < pcount; ++i )
-                    {
-                        char const *arg;
-                        
-                        rc = ArgsParamValue( args, i, &arg );
-                        if ( rc != 0 ) break;
-                        rc = ProcessPath( mgr, arg );
-#if _ARCH_BITS < 64
-                        /* look for "param excessive while writing vector within container module" */
-                        if (GetRCState(rc) == rcExcessive &&
-                            GetRCObject(rc) == rcParam &&
-                            GetRCContext(rc) == rcWriting &&
-                            GetRCTarget(rc) == rcVector &&
-                            GetRCModule(rc) == rcCont)
-                        {
-                            ( void )PLOGMSG( klogErr, (klogErr, "This run '$(run)' contains too many reads to be processed with a $(bits)-bit executable; please try again with a 64-bit executable.", "run=%s,bits=%u", arg, _ARCH_BITS));
-                        }
-#endif
-                        if ( rc != 0 ) break;
-                    }
-                    BufferedWriterRelease( rc == 0 );
-                }
-                VDBManagerRelease( mgr );
-            }
-        }
-        ArgsWhack( args );
-    }
-
-    if ( rc != 0 && !error_reported )
-    {
-        if ( errmsg[ 0 ] )
-        {
-            ( void )LOGERR( klogErr, rc, errmsg );
-        } else if ( KLogLastErrorCode() != rc )
-        {
-            ( void )LOGERR( klogErr, rc, "stop" );
-        }
-    }
-
-    {
-        /* Report execution environment if necessary */
-        rc_t rc2 = ReportFinalize( rc );
-        if ( rc == 0 )
-            rc = rc2;
-    }
-    return rc;
-}
-
-
-rc_t CC KMain( int argc, char* argv[] )
-{
-    char filename[ 4096 ];
-    /*
-       Try to find a option-file - parameter in the original parameters 
-       This is a hack to teach sam-dump to read it's parameters from a file/pipe instead
-       of the commandline
-       It is neccessary because the code above does not use libkapp to parse parameters!
-    */
-    rc_t rc = Args_find_option_in_argv( argc, argv, "--option-file", filename, sizeof filename );
-    if ( rc == 0 )
-    {
-        int new_argc;
-        char ** new_argv;
-        /* we found it! Now comes the special treatment: we fake a new argc/argv-pair! */
-        rc = Args_tokenize_file_and_progname_into_argv( filename, "sam-dump", &new_argc, &new_argv );
-        if ( rc == 0 )
-        {
-            /* pass the faked input-parameters from */
-            rc = SAM_Dump_Main( new_argc, new_argv );
+            BufferedWriterRelease();
 
-            Args_free_token_argv( new_argc, new_argv );
         }
+        ArgsWhack(args);
     }
-    else
-    {
-        /* we did not found the special option, just use the commandline-parameters unchanged */
-        rc = SAM_Dump_Main( argc, argv );
+    if( rc != 0 && errmsg[0] ) {
+        LOGERR(klogErr, rc, errmsg);
     }
     return rc;
 }
diff --git a/tools/sam-dump/sam-dump.vers b/tools/sam-dump/sam-dump.vers
index 5859406..04b10b4 100644
--- a/tools/sam-dump/sam-dump.vers
+++ b/tools/sam-dump/sam-dump.vers
@@ -1 +1 @@
-2.2.3
+2.1.7
diff --git a/tools/sam-dump/sam-dump.vers.h b/tools/sam-dump/sam-dump.vers.h
new file mode 100644
index 0000000..e4ee002
--- /dev/null
+++ b/tools/sam-dump/sam-dump.vers.h
@@ -0,0 +1 @@
+#define SAM_DUMP_VERS 0x02010007
diff --git a/tools/sra-dbcc/#Makefile# b/tools/sra-dbcc/#Makefile#
deleted file mode 100644
index d642b90..0000000
--- a/tools/sra-dbcc/#Makefile#
+++ /dev/null
@@ -1,126 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/sra-dbcc
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS = \
-
-
-EXT_TOOLS = \
-	sra-dbcc
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: $(addsuffix _tag,$(ALL_TOOLS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
-
-#-------------------------------------------------------------------------------
-# sra-dbcc
-#
-SRA_DBCC_SRC = \
-	sra-dbcc
-
-SRA_DBCC_OBJ = \
-	$(addsuffix .$(OBJX),$(SRA_DBCC_SRC))
-
-SRA_DBCC_LIB = \
-	-dalign-reader \
-	-daxf \
-	-dsraxf \
-	-dvxf \
-	-dksrch \
-	-lsradb \
-	-lvdb \
-	-lkdb \
-	-lkapp \
-	-lvfs \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lklib \
-	-lm \
-	-lkproc
-
-sra-dbcc.vers.h: sra-dbcc.vers
-	$(TOP)/build/make-vers-inc.sh SRA_DBCC_VERS $^ > $@
-
-$(BINDIR)/sra-dbcc: $(SRA_DBCC_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SRA_DBCC_LIB)
-
-sra-dbcc_tag:
-	@ $(TOP)/build/tag-module.sh \
-		$(MODULE) table-vers $(SRA_DBCC_OBJ)
diff --git a/tools/sra-dbcc/Makefile b/tools/sra-dbcc/Makefile
index beeda09..3befa25 100644
--- a/tools/sra-dbcc/Makefile
+++ b/tools/sra-dbcc/Makefile
@@ -25,13 +25,14 @@
 
 default: std
 
-TOP ?= $(shell ../../build/abspath.sh ../..)
+TOP ?= $(abspath ../..)
 MODULE = tools/sra-dbcc
 
 include $(TOP)/build/Makefile.env
 
 INT_TOOLS = \
 
+
 EXT_TOOLS = \
 	sra-dbcc
 
@@ -42,13 +43,15 @@ ALL_TOOLS = \
 #------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(ALL_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # all
@@ -67,18 +70,18 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
+# clean
 #
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+clean: stdclean
 
-.PHONY: $(TARGDIR)/vers-includes
+.PHONY: clean
 
 #-------------------------------------------------------------------------------
-# clean
+# tag
 #
-clean: stdclean
+tag: $(addsuffix _tag,$(ALL_TOOLS))
 
-.PHONY: clean
+.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
 
 #-------------------------------------------------------------------------------
 # sra-dbcc
@@ -90,20 +93,15 @@ SRA_DBCC_OBJ = \
 	$(addsuffix .$(OBJX),$(SRA_DBCC_SRC))
 
 SRA_DBCC_LIB = \
-	-dalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
-	-dksrch \
-	-lsradb \
-	-lvdb \
+	-lsrapath \
 	-lkdb \
 	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
-	-lkproc \
 	-lklib \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 sra-dbcc.vers.h: sra-dbcc.vers
@@ -111,3 +109,7 @@ sra-dbcc.vers.h: sra-dbcc.vers
 
 $(BINDIR)/sra-dbcc: $(SRA_DBCC_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SRA_DBCC_LIB)
+
+sra-dbcc_tag:
+	@ $(TOP)/build/tag-module.sh \
+		$(MODULE) table-vers $(SRA_DBCC_OBJ)
diff --git a/tools/sra-dbcc/sra-dbcc.c b/tools/sra-dbcc/sra-dbcc.c
index 869a787..8ce032a 100644
--- a/tools/sra-dbcc/sra-dbcc.c
+++ b/tools/sra-dbcc/sra-dbcc.c
@@ -24,88 +24,30 @@
  *
  */
 
-#include "sra-dbcc.vers.h"
-
 #include <kapp/main.h>
-#include <kapp/args.h>
-
-#include <insdc/insdc.h>
-#include <insdc/sra.h>
-
-#include <sra/sradb.h>
-#include <sra/sraschema.h>
-#include <sra/srapath.h>
-
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-
+#include <klib/log.h>
+#include <klib/rc.h>
+#include <klib/namelist.h>
+#include <klib/container.h>
+#include <klib/debug.h>
 #include <kdb/manager.h>
 #include <kdb/database.h>
 #include <kdb/table.h>
-#include <kdb/meta.h>
-#include <kdb/consistency-check.h>
 #include <kdb/namelist.h>
-
-#include <vfs/manager.h> /* VFSManager */
-#include <vfs/resolver.h> /* VResolver */
-#include <vfs/path.h> /* VPath */
-
-#include <kfs/sra.h>
-#include <kfs/tar.h>
+#include <kdb/consistency-check.h>
+#include <vdb/manager.h>
+#include <vdb/table.h>
 #include <kfs/kfs-priv.h>
-
-#include <klib/container.h>
-#include <klib/sort.h>
-#include <klib/namelist.h>
-#include <klib/data-buffer.h>
-#include <klib/text.h> /* String */
-#include <klib/out.h>
-#include <klib/log.h>
-#include <klib/debug.h>
-#include <klib/rc.h>
-
+#include <sra/srapath.h>
 #include <sysalloc.h>
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#ifndef PATH_MAX
-    #define PATH_MAX 4096
-#endif
 
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 != 0 && rc == 0) { rc = rc2; } obj = NULL; } while (false)
+#include "sra-dbcc.vers.h"
 
 static bool exhaustive;
-static bool md5_required;
-static bool ref_int_check;
-static bool s_IndexOnly = false;
-
-struct node_s {
-    int parent;
-    int prvSibl;
-    int nxtSibl;
-    int firstChild;
-    unsigned depth;
-    unsigned name;
-    uint32_t objType;
-};
-typedef struct node_s node_t;
-
-typedef struct cc_context_s {
-    node_t *nodes;
-    char *names;
-    rc_t rc;
-    unsigned num_columns;
-    unsigned nextNode;
-    unsigned nextName;
-} cc_context_t;
 
 static
 rc_t report_rtn ( rc_t rc )
@@ -113,25 +55,27 @@ rc_t report_rtn ( rc_t rc )
     return exhaustive ? 0 : rc;
 }
 
-static rc_t report_index(CCReportInfoBlock const *what, cc_context_t *ctx)
+rc_t CC Usage ( struct Args const * args ) { return 0; }
+
+static rc_t report_index(const CCReportInfoBlock *what, void *ctx)
 {
+    rc_t *rc2 = ctx;
+    
     switch (what->type) {
     case ccrpt_Done:
         if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Index '$(index)': $(mesg)",
-                                    "index=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
+            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Index '$(index)': $(mesg)", "index=%s,mesg=%s", what->objName, what->info.done.mesg));
+            if (*rc2 == 0)
+                *rc2 = what->info.done.rc;
         }
         return report_rtn (what->info.done.rc);
     case ccrpt_Index:
         return 0; /* continue with check */
     case ccrpt_MD5:
         if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of index '$(index)' failed MD5 check",
-                                    "file=%s,index=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
+            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of index '$(index)' failed MD5 check", "file=%s,index=%s", what->info.MD5.file, what->objName));
+            if (*rc2 == 0)
+                *rc2 = what->info.MD5.rc;
         }
         return report_rtn (what->info.MD5.rc);
     default:
@@ -139,30 +83,25 @@ static rc_t report_index(CCReportInfoBlock const *what, cc_context_t *ctx)
     }
 }
 
-static rc_t report_column(CCReportInfoBlock const *what, cc_context_t *ctx)
+static rc_t report_column(const CCReportInfoBlock *what, void *ctx)
 {
+    rc_t *rc2 = ctx;
+    
     switch (what->type) {
     case ccrpt_Done:
         if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Column '$(column)': $(mesg)",
-                                    "column=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
-        }
-        else {
-            (void)PLOGMSG(klogInfo, (klogInfo, "Column '$(column)': $(mesg)", "column=%s,mesg=%s",
-                                     what->objName, what->info.done.mesg ? what->info.done.mesg : "checked"));
-            ++ctx->num_columns;
+            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Column '$(column)': $(mesg)", "column=%s,mesg=%s", what->objName, what->info.done.mesg));
+            if (*rc2 == 0)
+                *rc2 = what->info.done.rc;
         }
         return report_rtn (what->info.done.rc);
     case ccrpt_Blob:
         return 0; /* continue with check */
     case ccrpt_MD5:
         if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of column '$(column)' failed MD5 check",
-                                    "file=%s,column=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
+            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of column '$(column)' failed MD5 check", "file=%s,column=%s", what->info.MD5.file, what->objName));
+            if (*rc2 == 0)
+                *rc2 = what->info.MD5.rc;
         }
         return report_rtn (what->info.MD5.rc);
     default:
@@ -170,39 +109,23 @@ static rc_t report_column(CCReportInfoBlock const *what, cc_context_t *ctx)
     }
 }
 
-static rc_t report_table(CCReportInfoBlock const *what, cc_context_t *ctx)
+static rc_t report_table(const CCReportInfoBlock *what, void *ctx)
 {
+    rc_t *rc2 = ctx;
+    
     switch (what->type) {
     case ccrpt_Done:
         if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Table '$(table)': $(mesg)",
-                                    "table=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
-        }
-        else if (what->info.done.mesg) {
-            if (strcmp(what->info.done.mesg, "missing md5 file") == 0 && md5_required) {
-                rc_t rc = RC(0, rcTable, rcValidating, rcChecksum, rcNotFound);
-                (void)PLOGERR(klogErr, (klogErr, rc, "Table '$(table)': is missing required md5 files",
-                                        "table=%s", what->objName));
-                return rc;
-            }
-            else if (strncmp("unexpected object ", what->info.done.mesg, 18) == 0) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Table '$(tbl)': $(mesg)", "tbl=%s,mesg=%s",
-                                         what->objName, what->info.done.mesg));
-            }
-            else {
-                (void)PLOGMSG(klogInfo, (klogInfo, "Table '$(tbl)' metadata: $(mesg)",
-                                         "tbl=%s,mesg=%s", what->objName, what->info.done.mesg));
-            }
+            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Table '$(table)': $(mesg)", "table=%s,mesg=%s", what->objName, what->info.done.mesg));
+            if (*rc2 == 0)
+                *rc2 = what->info.done.rc;
         }
         return report_rtn (what->info.done.rc);
     case ccrpt_MD5:
         if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of table '$(table)' failed MD5 check",
-                                    "file=%s,table=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
+            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of table '$(table)' failed MD5 check", "file=%s,table=%s", what->info.MD5.file, what->objName));
+            if (*rc2 == 0)
+                *rc2 = what->info.MD5.rc;
         }
         return report_rtn (what->info.MD5.rc);
     default:
@@ -210,35 +133,23 @@ static rc_t report_table(CCReportInfoBlock const *what, cc_context_t *ctx)
     }
 }
 
-static rc_t report_database(CCReportInfoBlock const *what, cc_context_t *ctx)
+static rc_t report_database(const CCReportInfoBlock *what, void *ctx)
 {
+    rc_t *rc2 = ctx;
+    
     switch (what->type) {
     case ccrpt_Done:
         if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Database '$(db)': $(mesg)",
-                                    "db=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
-        }
-        else if (what->info.done.mesg) {
-            if (strcmp(what->info.done.mesg, "missing md5 file") == 0 && md5_required) {
-                rc_t rc = RC(0, rcTable, rcValidating, rcChecksum, rcNotFound);
-                (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(table)': is missing required md5 files",
-                                        "table=%s", what->objName));
-                return rc;
-            }
-            else {
-                (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(db)' metadata: $(mesg)",
-                                         "db=%s,mesg=%s", what->objName, what->info.done.mesg));
-            }
+            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc, "Database '$(db)': $(mesg)", "db=%s,mesg=%s", what->objName, what->info.done.mesg));
+            if (*rc2 == 0)
+                *rc2 = what->info.done.rc;
         }
         return report_rtn (what->info.done.rc);
     case ccrpt_MD5:
         if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of database '$(db)' failed MD5 check",
-                                    "file=%s,db=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
+            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc, "File '$(file)' of database '$(db)' failed MD5 check", "file=%s,db=%s", what->info.MD5.file, what->objName));
+            if (*rc2 == 0)
+                *rc2 = what->info.MD5.rc;
         }
         return report_rtn (what->info.MD5.rc);
     default:
@@ -246,53 +157,12 @@ static rc_t report_database(CCReportInfoBlock const *what, cc_context_t *ctx)
     }
 }
 
-static rc_t visiting(CCReportInfoBlock const *what, cc_context_t *ctx)
-{
-    unsigned const nn = ctx->nextNode++;
-    node_t *const nxt = &ctx->nodes[nn];
-    node_t *const cur = nxt - 1;
-    
-    nxt->parent = nxt->prvSibl = nxt->nxtSibl = nxt->firstChild = -1;
-    nxt->depth = what->info.visit.depth;
-    nxt->objType = what->objType;
-    nxt->name = ctx->nextName;
-    ctx->nextName += strlen(what->objName) + 1;
-    strcpy(&ctx->names[nxt->name], what->objName);
-    
-    if (nn) {
-        if (cur->depth == nxt->depth) {
-            nxt->parent = cur->parent;
-            nxt->prvSibl = nn - 1;
-            cur->nxtSibl = nn;
-        }
-        else if (cur->depth < nxt->depth) {
-            nxt->parent = nn - 1;
-            cur->firstChild = nn;
-        }
-        else {
-            unsigned sibling = cur->parent;
-            
-            while (ctx->nodes[sibling].depth > nxt->depth)
-                sibling = ctx->nodes[sibling].parent;
-            nxt->parent = ctx->nodes[sibling].parent;
-            nxt->prvSibl = sibling;
-            ctx->nodes[sibling].nxtSibl = nn;
-        }
-    }
-    return 0;
-}
-
-static rc_t CC report(CCReportInfoBlock const *what, void *Ctx)
+static rc_t CC report(const CCReportInfoBlock *what, void *ctx)
 {
-    cc_context_t *ctx = Ctx;
     rc_t rc = Quitting();
     
     if (rc)
         return rc;
-    
-    if (what->type == ccrpt_Visit)
-        return visiting(what, ctx);
-
     switch (what->objType) {
     case kptDatabase:
         return report_database(what, ctx);
@@ -308,79 +178,50 @@ static rc_t CC report(CCReportInfoBlock const *what, void *Ctx)
 }
 
 static
-rc_t kdbcc(const KDirectory *dir, char const name[], uint32_t mode, bool *is_db,
-    bool is_file, node_t nodes[], char names[], INSDC_SRA_platform_id platform)
+rc_t kdbcc(const KDirectory *dir, const char name[], int mode, bool *is_db)
 {
     const KDBManager *mgr;
-    rc_t rc = KDBManagerMakeRead ( & mgr, NULL );
-
+    rc_t rc = KDBManagerMakeRead ( & mgr, dir );
     if ( rc == 0 )
     {
-        cc_context_t ctx;
-        char const *objtype;
-
+        rc_t rc2 = 0;
         uint32_t level = ( mode & 4 ) ? 3 : ( mode & 2 ) ? 1 : 0;
-        if (s_IndexOnly) {
-            level |= CC_INDEX_ONLY;
-        }
-
-        memset(&ctx, 0, sizeof(ctx));
-        ctx.nodes = &nodes[0];
-        ctx.names = &names[0];
 
         * is_db = KDBManagerExists ( mgr, kptDatabase, name );
         if ( * is_db )
         {
             const KDatabase *db;
-            
-            objtype = "database";
             rc = KDBManagerOpenDBRead ( mgr, & db, name );
             if ( rc == 0 )
             {
-                rc = KDatabaseConsistencyCheck ( db, 0, level, report, & ctx );
-                if ( rc == 0 ) {
-                    rc = ctx.rc;
-                    if (s_IndexOnly)
-                    {   (void)LOGMSG(klogInfo, "Indices: checked"); }
-                }
+                rc = KDatabaseConsistencyCheck ( db, level, report, & rc2 );
+                if ( rc == 0 )
+                    rc = rc2;
+
                 KDatabaseRelease ( db );
             }
         }
-        else
+        else 
         {
             const KTable *tbl;
-
-            objtype = "table";
             rc = KDBManagerOpenTableRead ( mgr, & tbl, name );
             if ( rc == 0 )
             {
-                rc = KTableConsistencyCheck ( tbl, 0, level, report, & ctx,
-                    platform );
-                if ( rc == 0 ) {
-                    rc = ctx.rc;
-                }
-                if ( rc == 0 && s_IndexOnly ) {
-                    (void)LOGMSG(klogInfo, "Index: checked");
-                }
+                rc = KTableConsistencyCheck ( tbl, level, report, & rc2 );
+                if ( rc == 0 )
+                    rc = rc2;
+
                 KTableRelease ( tbl );
             }
         }
-        if (rc == 0 && ctx.num_columns == 0 && !s_IndexOnly) {
-            if (is_file) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Nothing to validate; the file '$(file)' has no checksums or is truncated.", "file=%s", name));
-            }
-            else {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Nothing to validate; the $(type) '$(file)' has no checksums or is empty.", "type=%s,file=%s", objtype, name));
-            }
-        }
-        
+
         KDBManagerRelease ( mgr );
     }
     return rc;
 }
 
 static
-rc_t vdbcc(const KDirectory *dir, char const name[], uint32_t mode, bool is_db, bool is_file)
+rc_t vdbcc(const KDirectory *dir, const char name[], int mode, bool is_db)
 {
 #if 0
     if (mode & 8) {
@@ -400,826 +241,13 @@ rc_t vdbcc(const KDirectory *dir, char const name[], uint32_t mode, bool is_db,
     return 0;
 }
 
-typedef struct ColumnInfo_s {
-    char const *name;
-    union {
-        void     const *vp;
-        char     const *string;
-        bool     const *tf;
-        int8_t   const *i8;
-        uint8_t  const *u8;
-        int16_t  const *i16;
-        uint16_t const *u16;
-        int32_t  const *i32;
-        uint32_t const *u32;
-        int64_t  const *i64;
-        uint64_t const *u64;
-        float    const *f32;
-        double   const *f64;
-    } value;
-    uint32_t idx;
-    uint32_t elem_bits;
-    uint32_t elem_count;
-} ColumnInfo;
-
-static rc_t CC get_sizes_cb(const KDirectory *dir, uint32_t type, const char *name, void *data)
-{
-    struct {
-        unsigned count;
-        size_t size;
-    } *pb = data;
-
-    ++pb->count;    
-    pb->size += strlen(name) + 1;
-    
-    return 0;
-}
-
-static rc_t get_sizes(KDirectory const *dir, unsigned *nobj, size_t *namesz)
-{
-    rc_t rc;
-    struct {
-        unsigned count;
-        size_t size;
-    } pb;
-    
-    memset(&pb, 0, sizeof(pb));
-    rc = KDirectoryVVisit(dir, true, get_sizes_cb, &pb, NULL, NULL);
-    if (rc)
-        memset(&pb, 0, sizeof(pb));
-    *nobj = pb.count;
-    *namesz = pb.size;
-    return rc;
-}
-
-static rc_t init_dbcc(KDirectory const *dir, char const name[], bool is_file, node_t **nodes, char **names)
-{
-    KDirectory const *obj;
-    unsigned nobj;
-    size_t namesz;
-    rc_t rc;
-    
-    if (is_file) {
-        rc = KDirectoryOpenSraArchiveRead_silent(dir, &obj, false, name);
-        if (rc)
-            rc = KDirectoryOpenTarArchiveRead_silent(dir, &obj, false, name);
-    }
-    else {
-        rc = KDirectoryOpenDirRead(dir, &obj, false, name);
-    }
-    if (rc)
-        return rc;
-    rc = get_sizes(obj, &nobj, &namesz);
-    KDirectoryRelease(obj);
-    if (rc) {
-        *nodes = NULL;
-        *names = NULL;
-    }
-    else {
-        *nodes = malloc(nobj * sizeof(**nodes) + namesz);
-        if (nodes)
-            *names = (char *)&(*nodes)[nobj];
-        else
-            rc = RC(rcExe, rcSelf, rcConstructing, rcMemory, rcExhausted);
-    }
-    return rc;
-}
-
-static rc_t get_schema_info(KMetadata const *meta, char buffer[], size_t bsz, char **vers)
-{
-    KMDataNode const *node;
-    rc_t rc = KMetadataOpenNodeRead(meta, &node, "schema");
-    
-    if (rc == 0) {
-        size_t sz;
-        
-        rc = KMDataNodeReadAttr(node, "name", buffer, bsz, &sz);
-        if (rc == 0) {
-            buffer[sz] = '\0';
-            *vers = &buffer[sz];
-            while (sz) {
-                --sz;
-                if (buffer[sz] == '#') {
-                    buffer[sz] = '\0';
-                    *vers = &buffer[sz + 1];
-                    break;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-static rc_t get_tbl_schema_info(VTable const *tbl, char buffer[], size_t bsz, char **vers)
-{
-    KMetadata const *meta;
-    rc_t rc = VTableOpenMetadataRead(tbl, &meta);
-    
-    *(*vers = &buffer[0]) = '\0';
-    if (rc == 0) rc = get_schema_info(meta, buffer, bsz, vers);
-    return 0;
-}
-
-static rc_t get_db_schema_info(VDatabase const *db, char buffer[], size_t bsz, char **vers)
-{
-    KMetadata const *meta;
-    rc_t rc = VDatabaseOpenMetadataRead(db, &meta);
-    
-    *(*vers = &buffer[0]) = '\0';
-    if (rc == 0) rc = get_schema_info(meta, buffer, bsz, vers);
-    return rc;
-}
-
-static rc_t sra_dbcc_454(VTable const *tbl, char const name[])
-{
-    /* TODO: complete this */
-    return 0;
-}
-
-static rc_t sra_dbcc_fastq(VTable const *tbl, char const name[])
-{
-    static char const *const cn_FastQ[] = {
-        "READ", "QUALITY", "SPOT_LEN", "READ_START", "READ_LEN", "READ_TYPE"
-    };
-    
-    VCursor const *curs;
-    rc_t rc = VTableCreateCursorRead(tbl, &curs);
-    
-    if (rc == 0) {
-        unsigned const n = sizeof(cn_FastQ)/sizeof(cn_FastQ[0]);
-        ColumnInfo cols[sizeof(cn_FastQ)/sizeof(cn_FastQ[0])];
-        unsigned i;
-
-        memset(cols, 0, sizeof(cols));
-        for (i = 0; i < n; ++i) {
-            cols[i].name = cn_FastQ[i];
-            VCursorAddColumn(curs, &cols[i].idx, cols[i].name);
-        }
-        rc = VCursorOpen(curs);
-        if (rc == 0) {
-            rc = VCursorOpenRow(curs);
-            for (i = 0; i < n && rc == 0; ++i) {
-                VCursorCellData(curs, cols[i].idx, &cols[i].elem_bits, &cols[i].value.vp, NULL, &cols[i].elem_count);
-            }
-            if (   cols[0].idx == 0 || cols[0].elem_bits == 0 || cols[0].value.vp == NULL
-                || cols[1].idx == 0 || cols[1].elem_bits == 0 || cols[1].value.vp == NULL)
-            {
-                rc = RC(rcExe, rcTable, rcValidating, rcColumn, rcNotFound);
-            }
-            else if (cols[2].idx == 0 || cols[2].elem_bits == 0 || cols[2].value.vp == NULL) {
-                (void)PLOGERR(klogWarn, (klogWarn, RC(rcExe, rcTable, rcValidating, rcColumn, rcNotFound),
-                                         "Table '$(name)' is usable for fasta only; no quality data", "name=%s", name));
-            }
-        }
-        VCursorRelease(curs);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Table '$(name)' is damaged beyond any use", "name=%s", name));
-    }
-    return rc;
-}
-
-static rc_t VTable_get_platform(VTable const *tbl, INSDC_SRA_platform_id *rslt)
-{
-    rc_t rc;
-    VCursor const *curs;
-    INSDC_SRA_platform_id platform = -1;
-    
-    rc = VTableCreateCursorRead(tbl, &curs);
-    if (rc == 0) {
-        uint32_t cid;
-        
-        rc = VCursorAddColumn(curs, &cid, "("sra_platform_id_t")PLATFORM");
-        if (rc == 0) {
-            rc = VCursorOpen(curs);
-            if (rc == 0) {
-                uint32_t ebits;
-                void const *data;
-                uint32_t boff;
-                uint32_t ecnt;
-                
-                rc = VCursorCellDataDirect(curs, 1, cid, &ebits, &data, &boff, &ecnt);
-                if (rc == 0) {
-                    if (ebits == sizeof(platform) * 8 && boff == 0 && ecnt == 1)
-                        platform = ((INSDC_SRA_platform_id *)data)[0];
-                    else
-                        rc = RC(rcExe, rcTable, rcReading, rcType, rcUnexpected);
-                }
-            }
-        }
-        else
-            rc = 0;
-        VCursorRelease(curs);
-    }
-    rslt[0] = platform;
-    return rc;
-}
-
-static rc_t verify_table(VTable const *tbl, char const name[])
-{
-    char schemaName[1024];
-    char *schemaVers = NULL;
-    rc_t rc = 0;
-    
-    get_tbl_schema_info(tbl, schemaName, sizeof(schemaName), &schemaVers);
-    
-    if (schemaName[0] == '\0' || strncmp(schemaName, "NCBI:SRA:", 9) == 0) {
-        /* SRA or legacy SRA */
-        INSDC_SRA_platform_id platform;
-        
-        rc = VTable_get_platform(tbl, &platform);
-        if (rc == 0) {
-            if (platform == (INSDC_SRA_platform_id)-1) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Couldn't determine SRA Platform; type of table '$(name)' is indeterminate.", "name=%s", name));
-            }
-            rc = sra_dbcc_fastq(tbl, name);
-            if (rc == 0 && platform == SRA_PLATFORM_454) {
-                rc = sra_dbcc_454(tbl, name);
-            }
-        }
-        else {
-            (void)PLOGERR(klogErr, (klogErr, rc, "Failed to read table '$(name)'", "name=%s", name));
-        }
-    }
-    return rc;
-}
-
-static rc_t verify_mgr_table(VDBManager const *mgr, char const name[])
-{
-    VTable const *tbl;
-    VSchema *sra_schema = NULL;
-    
-    for ( ; ; ) {
-        rc_t rc = VDBManagerOpenTableRead(mgr, &tbl, sra_schema, name);
-        VSchemaRelease(sra_schema);
-        if (rc == 0) {
-            rc = verify_table(tbl, name);
-            VTableRelease(tbl);
-            return rc;
-        }
-        else if (GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcSchema && sra_schema == NULL) {
-            rc = VDBManagerMakeSRASchema(mgr, &sra_schema);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "Failed to open table '$(name)'", "name=%s", name));
-                return rc;
-            }
-        }
-        else {
-            (void)PLOGERR(klogErr, (klogErr, rc, "Failed to open table '$(name)'", "name=%s", name));
-            return rc;
-        }
-    }
-}
-
-#if 0
-static rc_t verify_db_table(VDatabase const *db, char const name[])
-{
-    VTable const *tbl;
-    rc_t rc = VDatabaseOpenTableRead(db, &tbl, name);
-    
-    if (rc == 0) {
-        rc = verify_table(tbl, name);
-        VTableRelease(tbl);
-    }
-    else {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Failed to open table '$(name)'", "name=%s", name));
-    }
-    return rc;
-}
-
-static rc_t align_dbcc_primary_alignment(VTable const *tbl, char const name[])
-{
-    VCursor const *curs;
-    rc_t rc = VTableCreateCursorRead(tbl, &curs);
-    
-    if (rc == 0) {
-        static char const *const cn_SAM[] = {
-            "SEQ_NAME",
-            "SAM_FLAGS",
-            "REF_NAME",
-            "REF_POS",
-            "MAPQ",
-            "HAS_MISMATCH",
-            "HAS_REF_OFFSET",
-            "REF_OFFSET",
-            "MATE_REF_NAME",
-            "MATE_REF_POS",
-            "TEMPLATE_LEN",
-            "READ",
-            "QUALITY"
-        };
-        unsigned const n = sizeof(cn_SAM)/sizeof(cn_SAM[0]);
-        ColumnInfo cols[sizeof(cn_SAM)/sizeof(cn_SAM[0])];
-        unsigned i;
-        
-        memset(cols, 0, sizeof(cols));
-        for (i = 0; i < n; ++i) {
-            cols[i].name = cn_SAM[i];
-            VCursorAddColumn(curs, &cols[i].idx, cols[i].name);
-        }
-        rc = VCursorOpen(curs);
-        if (rc == 0) {
-            rc = VCursorOpenRow(curs);
-            for (i = 0; i < n && rc == 0; ++i) {
-                VCursorCellData(curs, cols[i].idx, &cols[i].elem_bits, &cols[i].value.vp, NULL, &cols[i].elem_count);
-            }
-            for (i = 0; i < n && rc == 0; ++i) {
-                if (cols[i].idx == 0 || cols[i].elem_bits == 0) {
-                    (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(name)' could not be used to generate SAM", "name=%s", name));
-                    break;
-                }
-            }
-        }
-        VCursorRelease(curs);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)' is damaged beyond any use", "name=%s", name));
-    }
-    return rc;
-}
-#endif
-
-typedef struct id_pair_s {
-    int64_t first;
-    int64_t second;
-} id_pair_t;
-
-static int CC id_pair_cmp(void const *A, void const *B, void *ignored)
-{
-    id_pair_t const *a = A;
-    id_pair_t const *b = B;
-    
-    return a->first < b->first ? -1 : a->first == b->first ? a->second < b->second ? -1 : a->second == b->second ? 0 : 1 : 1;
-}
-
-static rc_t ric_align_ref_and_align(char const dbname[],
-                                    VTable const *ref,
-                                    VTable const *align,
-                                    int which)
-{
-    char const *const id_col_name = which == 0 ? "PRIMARY_ALIGNMENT_IDS"
-                                  : which == 1 ? "SECONDARY_ALIGNMENT_IDS"
-                                  : which == 2 ? "EVIDENCE_ALIGNMENT_IDS"
-                                  : NULL;
-    rc_t rc;
-    VCursor const *curs = NULL;
-    ColumnInfo ci;
-    int64_t startId;
-    uint64_t count;
-    
-    rc = VTableCreateCursorRead(align, &curs);
-    if (rc == 0) {
-        rc = VCursorAddColumn(curs, &ci.idx, "REF_ID");
-        if (rc == 0)
-            rc = VCursorOpen(curs);
-        if (rc == 0)
-            rc = VCursorIdRange(curs, ci.idx, &startId, &count);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': alignment table can not be read", "name=%s", dbname));
-    }
-    else {
-        id_pair_t *const id_pair = malloc(sizeof(id_pair_t) * count);
-        
-        if (id_pair) {
-            uint64_t i;
-            uint64_t j;
-            
-            for (j = i = 0; i < count && rc == 0; ++i) {
-                int64_t const row = startId + i;
-                
-                rc = VCursorCellDataDirect(curs, row, ci.idx, &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                if (rc == 0) {
-                    if (ci.elem_count != 1) {
-                        rc = RC(rcExe, rcDatabase, rcValidating, rcData, rcUnexpected);
-                        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': failed referential integrity check", "name=%s", dbname));
-                        break;
-                    }
-                    else {
-                        id_pair[j].second = row;
-                        id_pair[j].first = ci.value.i64[0];
-                        ++j;
-                    }
-                }
-                else if (GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound)
-                    rc = 0;
-            }
-            VCursorRelease(curs); curs = NULL;
-            if (rc == 0) {
-                bool ooo_warned = false;
-                bool failed = false;
-                
-                ksort(id_pair, count, sizeof(id_pair_t), id_pair_cmp, NULL);
-                
-                rc = VTableCreateCursorRead(ref, &curs);
-                if (rc == 0)
-                    rc = VCursorAddColumn(curs, &ci.idx, id_col_name);
-                if (rc == 0)
-                    rc = VCursorOpen(curs);
-                if (rc == 0)
-                    rc = VCursorIdRange(curs, ci.idx, &startId, &count);
-                if (rc == 0) {
-                    for (i = j = 0; rc == 0 && i < count; ++i) {
-                        int64_t const row = startId + i;
-                        
-                        rc = VCursorCellDataDirect(curs, row, ci.idx, &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                        if (rc == 0) {
-                            unsigned k;
-                            int64_t prvId = ci.value.i64[0];
-                            
-                            for (k = 0; rc == 0 && k < ci.elem_count; ++k, ++j) {
-                                int64_t const alignId = ci.value.i64[k];
-                                
-                                if (!ooo_warned && prvId > alignId) {
-                                    (void)PLOGMSG(klogWarn, (klogWarn, "Database '$(name)': column '$(idcol)' is not ordered", "name=%s,idcol=%s", dbname, id_col_name));
-                                    ooo_warned = true;
-                                }
-                                if (id_pair[j].first != row) {
-                                    if (!failed) {
-                                        rc = RC(rcExe, rcDatabase, rcValidating, rcData, rcInconsistent);
-                                        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': column '$(idcol)' failed referential integrity check", "name=%s,idcol=%s", dbname, id_col_name));
-                                    }
-                                    failed = true;
-                                }
-                                else if (id_pair[j].second != alignId) {
-                                    if (!ooo_warned) {
-                                        (void)PLOGMSG(klogWarn, (klogWarn, "Database '$(name)': column '$(idcol)' might fail referential integrity check", "name=%s,idcol=%s", dbname, id_col_name));
-                                    }
-                                }
-                                prvId = alignId;
-                            }
-                        }
-                        else if (GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound)
-                            rc = 0;
-                    }
-                    if (!failed && i < count) {
-                        rc = RC(rcExe, rcDatabase, rcValidating, rcData, rcInconsistent);
-                        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': column '$(idcol)' failed referential integrity check", "name=%s,idcol=%s", dbname, id_col_name));
-                    }
-                }
-                else
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': reference table can not be read", "name=%s", dbname));
-            }
-            free(id_pair);
-            VCursorRelease(curs);
-        }
-        else {
-            rc = RC(rcExe, rcDatabase, rcValidating, rcMemory, rcExhausted);
-            (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': referential integrity could not be checked", "name=%s", dbname));
-        }
-    }
-    return rc;
-}
-
-static rc_t ric_align_seq_and_pri(char const dbname[],
-                                  VTable const *seq,
-                                  VTable const *pri)
-{
-    rc_t rc;
-    VCursor const *curs = NULL;
-    ColumnInfo ci;
-    int64_t startId;
-    uint64_t count;
-    
-    rc = VTableCreateCursorRead(pri, &curs);
-    if (rc == 0) {
-        rc = VCursorAddColumn(curs, &ci.idx, "SEQ_SPOT_ID");
-        if (rc == 0)
-            rc = VCursorOpen(curs);
-        if (rc == 0)
-            rc = VCursorIdRange(curs, ci.idx, &startId, &count);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': alignment table can not be read", "name=%s", dbname));
-    }
-    else {
-        id_pair_t *const id_pair = malloc(sizeof(id_pair_t) * count);
-
-        if (id_pair) {
-            uint64_t i;
-            uint64_t j;
-            
-            for (j = i = 0; i < count && rc == 0; ++i) {
-                int64_t const row = startId + i;
-                
-                rc = VCursorCellDataDirect(curs, row, ci.idx, &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                if (rc == 0) {
-                    if (ci.elem_count != 1) {
-                        rc = RC(rcExe, rcDatabase, rcValidating, rcData, rcUnexpected);
-                        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': failed referential integrity check", "name=%s", dbname));
-                        break;
-                    }
-                    else {
-                        id_pair[j].second = row;
-                        id_pair[j].first = ci.value.i64[0];
-                        ++j;
-                    }
-                }
-                else if (GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound)
-                    rc = 0;
-            }
-            VCursorRelease(curs); curs = NULL;
-            if (rc == 0) {
-                ksort(id_pair, count, sizeof(id_pair_t), id_pair_cmp, NULL);
-                
-                rc = VTableCreateCursorRead(seq, &curs);
-                if (rc == 0)
-                    rc = VCursorAddColumn(curs, &ci.idx, "PRIMARY_ALIGNMENT_ID");
-                if (rc == 0)
-                    rc = VCursorOpen(curs);
-                if (rc == 0) {
-                    for (i = 0; rc == 0 && i < count; ++i) {
-                        int64_t const row = id_pair[i].first;
-                        int64_t const alignId = id_pair[i].second;
-                        
-                        rc = VCursorCellDataDirect(curs, row, ci.idx, &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                        if (rc == 0) {
-                            bool found = false;
-                            
-                            for (j = 0; j < ci.elem_count; ++j)
-                                found |= (alignId == ci.value.i64[j]);
-                            
-                            if (!found) {
-                                rc = RC(rcExe, rcDatabase, rcValidating, rcData, rcInconsistent);
-                                (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': column 'SEQ_SPOT_ID' failed referential integrity check", "name=%s", dbname));
-                            }
-                        }
-                        else if (GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound) {
-                            rc = RC(rcExe, rcDatabase, rcValidating, rcData, rcInconsistent);
-                            (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': column 'SEQ_SPOT_ID' failed referential integrity check", "name=%s", dbname));
-                        }
-                        else
-                            (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': sequence table can not be read", "name=%s", dbname));
-                    }
-                }
-                else
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': sequence table can not be read", "name=%s", dbname));
-            }
-            free(id_pair);
-        }
-        else {
-            rc = RC(rcExe, rcDatabase, rcValidating, rcMemory, rcExhausted);
-            (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': referential integrity could not be checked", "name=%s", dbname));
-        }
-        VCursorRelease(curs);
-    }
-    return rc;
-}
-
-/* database referential integrity check for alignment database */
-static rc_t dbric_align(char const dbname[],
-                        VTable const *pri,
-                        VTable const *seq,
-                        VTable const *ref)
-{
-    rc_t rc = 0;
-    
-    if ((rc == 0 || exhaustive) && (pri != NULL && seq != NULL)) {
-        rc_t rc2 = ric_align_seq_and_pri(dbname, seq, pri);
-        
-        if (rc2 == 0) {
-            (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(dbname)': SEQUENCE.PRIMARY_ALIGNMENT_ID <-> PRIMARY_ALIGNMENT.SEQ_SPOT_ID referential integrity ok", "dbname=%s", dbname));
-        }
-        if (rc == 0) {
-            rc = rc2;
-        }
-    }
-    if ((rc == 0 || exhaustive) && (pri != NULL && ref != NULL)) {
-        rc_t rc2 = ric_align_ref_and_align(dbname, ref, pri, 0);
-        
-        if (rc2 == 0) {
-            (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(dbname)': REFERENCE.PRIMARY_ALIGNMENT_IDS <-> PRIMARY_ALIGNMENT.REF_ID referential integrity ok", "dbname=%s", dbname));
-        }
-        if (rc == 0) {
-            rc = rc2;
-        }
-    }
-    return rc;
-}
-                        
-
-static rc_t verify_database_align(VDatabase const *db, char const name[], node_t const nodes[], char const names[])
-{
-    rc_t rc = 0;
-    unsigned tables = 0;
-    node_t const *tbl = &nodes[nodes[0].firstChild];
-    enum table_bits {
-        tbEvidenceInterval   = ( 1u << 0 ),
-        tbEvidenceAlignment  = ( 1u << 1 ),
-        tbPrimaryAlignment   = ( 1u << 2 ),
-        tbReference          = ( 1u << 3 ),
-        tbSequence           = ( 1u << 4 ),
-        tbSecondaryAlignment = ( 1u << 5 )
-    };
-    
-    if (nodes[0].firstChild) {
-        for ( ; ; ) {
-            char const *tname = &names[tbl->name];
-            unsigned this_table = 0;
-            
-            if (tbl->objType == kptTable) {
-                switch (tname[0]) {
-                case 'E':
-                    if (strcmp(tname, "EVIDENCE_INTERVAL") == 0)
-                        this_table |= tbEvidenceInterval;
-                    else if (strcmp(tname, "EVIDENCE_ALIGNMENT") == 0)
-                        this_table |= tbEvidenceAlignment;
-                    break;
-                case 'P':
-                    if (strcmp(tname, "PRIMARY_ALIGNMENT") == 0)
-                        this_table |= tbPrimaryAlignment;
-                    break;
-                case 'R':
-                    if (strcmp(tname, "REFERENCE") == 0)
-                        this_table |= tbReference;
-                    break;
-                case 'S':
-                    if (strcmp(tname, "SEQUENCE") == 0)
-                        this_table |= tbSequence;
-                    else if (strcmp(tname, "SECONDARY_ALIGNMENT") == 0)
-                        this_table |= tbSecondaryAlignment;
-                    break;
-                }
-                if (this_table == 0) {
-                    (void)PLOGERR(klogWarn, (klogWarn, RC(rcExe, rcDatabase, rcValidating, rcTable, rcUnexpected),
-                                             "Database '$(name)' contains unexpected table '$(table)'",
-                                             "name=%s,table=%s", name, tname));
-                }
-                tables |= this_table;
-            }
-            else {
-                (void)PLOGERR(klogWarn, (klogWarn, RC(rcExe, rcDatabase, rcValidating, rcType, rcUnexpected),
-                                         "Database '$(name)' contains unexpected object '$(obj)'",
-                                         "name=%s,obj=%s", name, tname));
-            }
-            if (tbl->nxtSibl > 0)
-                tbl = &nodes[tbl->nxtSibl];
-            else
-                break;
-        }
-    }
-    if (tables == tbSequence) {
-        /* sequence data only */
-        (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(name)' contains only unaligned reads", "name=%s", name));
-    }
-    else if (   (tables & tbReference) == 0
-             || (tables & tbPrimaryAlignment) == 0)
-    {
-        /* missing reference or primary alignment */
-        (void)PLOGERR(klogWarn, (klogWarn, rc = RC(rcExe, rcDatabase, rcValidating, rcDatabase, rcIncomplete),
-                                 "Database '$(name)' does not contain all required tables",
-                                 "name=%s", name));
-    }
-    else if (   ((tables & tbEvidenceAlignment) != 0)
-             != ((tables & tbEvidenceInterval ) != 0))
-    {
-        /* both must be present or both must be absent */
-        (void)PLOGERR(klogWarn, (klogWarn, rc = RC(rcExe, rcDatabase, rcValidating, rcDatabase, rcIncomplete),
-                                 "Database '$(name)' does not contain all required tables",
-                                 "name=%s", name));
-    }
-    while (ref_int_check) {
-        VTable const *pri = NULL;
-        VTable const *seq = NULL;
-        VTable const *ref = NULL;
-        
-        if ((tables & tbPrimaryAlignment) != 0) {
-            rc = VDatabaseOpenTableRead(db, &pri, "PRIMARY_ALIGNMENT");
-            if (rc) break;
-        }
-        if ((tables & tbSequence) != 0) {
-            rc = VDatabaseOpenTableRead(db, &seq, "SEQUENCE");
-            if (rc) break;
-        }
-        if ((tables & tbReference) != 0) {
-            rc = VDatabaseOpenTableRead(db, &ref, "REFERENCE");
-            if (rc) break;
-        }
-        rc = dbric_align(name, pri, seq, ref);
-        break;
-    }
-    return rc;    
-}
-
-static rc_t verify_database(VDatabase const *db, char const name[], node_t const nodes[], char const names[])
-{
-    char schemaName[1024];
-    char *schemaVers = NULL;
-    rc_t rc;
-    
-    rc = get_db_schema_info(db, schemaName, sizeof(schemaName), &schemaVers);
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Failed to find database schema for '$(name)'", "name=%s", name));
-    }
-    else if (strncmp(schemaName, "NCBI:var:db:", 12) == 0) {
-        /* TODO: verify NCBI:var:db:* */
-    }
-    else if (strncmp(schemaName, "NCBI:WGS:db:", 12) == 0) {
-        /* TODO: verify NCBI:WGS:db:* */
-    }
-    else if (strncmp(schemaName, "NCBI:align:db:", 14) == 0) {
-        rc = verify_database_align(db, name, nodes, names);
-    }
-    else if (strcmp(schemaName, "NCBI:SRA:PacBio:smrt:db") == 0) {
-        /* TODO: verify NCBI:SRA:PacBio:smrt:db */
-    }
-    else {
-        (void)PLOGERR(klogWarn, (klogWarn, RC(rcExe, rcDatabase, rcValidating, rcType, rcUnrecognized),
-                                 "Database '$(name)' has unrecognized type '$(type)'",
-                                 "name=%s,type=%s", name, schemaName));
-    }
-    return rc;
-}
-
-static rc_t verify_mgr_database(VDBManager const *mgr, char const name[], node_t const nodes[], char const names[])
-{
-    VDatabase const *child;
-    rc_t rc = VDBManagerOpenDBRead(mgr, &child, NULL, name);
-    
-    if (rc == 0) {
-        rc = verify_database(child, name, nodes, names);
-        VDatabaseRelease(child);
-    }
-    return rc;
-}
-
-static rc_t sra_dbcc(KDirectory const *dir, char const name[], node_t const nodes[], char const names[])
-{
-    const VDBManager *mgr;
-    rc_t rc = VDBManagerMakeRead(&mgr, NULL);
-    
-    if (rc) return rc;
-    
-    if (nodes[0].objType == kptDatabase)
-        rc = verify_mgr_database(mgr, name, nodes, names);
-    else
-        rc = verify_mgr_table(mgr, name);
-    VDBManagerRelease(mgr);
-    
-    return rc;
-}
-
 static
-rc_t get_platform(const KDirectory *dir, const VDBManager *aMgr,
-    const VTable *aTbl, char const name[], INSDC_SRA_platform_id *platform)
+rc_t dbcc(const KDirectory *dir, const char name[], int mode, bool *is_db)
 {
-    rc_t rc = 0;
-    const VDBManager *mgr = aMgr;
-    const VTable *tbl = aTbl;
-    assert(name && platform);
-    if (mgr == NULL) {
-        rc = VDBManagerMakeRead(&mgr, NULL);
-        if (rc != 0) {
-            return rc;
-        }
-    }
-    if (tbl == NULL) {
-        VSchema *sra_schema = NULL;
-        for ( ; rc == 0; ) {
-            rc = VDBManagerOpenTableRead(mgr, &tbl, sra_schema, name);
-            VSchemaRelease(sra_schema);
-            if (rc == 0) {
-                rc = VTable_get_platform(tbl, platform);
-                break;
-            }
-            else if (GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcSchema
-                && sra_schema == NULL)
-            {
-                rc = VDBManagerMakeSRASchema(mgr, &sra_schema);
-            }
-        }
-    }
-    if (aTbl == NULL) {
-        VTableRelease(tbl);
-    }
-    if (aMgr == NULL) {
-        VDBManagerRelease(mgr);
-    }
-    return rc;
-}
+    rc_t rc = kdbcc(dir, name, mode, is_db);
 
-static
-rc_t dbcc(const char *src_path, const KDirectory *dir,
-    char const name[], uint32_t mode, bool *is_db, bool is_file)
-{
-    rc_t rc;
-    node_t *nodes = NULL;
-    char *names;
-
-    assert(src_path);
-
-    rc = init_dbcc(dir, name, is_file, &nodes, &names);
-    if (rc == 0) {
-        INSDC_SRA_platform_id platform = SRA_PLATFORM_UNDEFINED;
-        get_platform(dir, NULL, NULL, src_path, &platform);
-        rc = kdbcc(dir, src_path, mode, is_db, is_file, nodes, names, platform);
-        if ( rc == 0 )
-            rc = vdbcc(dir, src_path, mode, * is_db, is_file);
-    }
-    if (rc == 0)
-        rc = sra_dbcc(dir, src_path, nodes, names);
-
-    free(nodes);
+    if ( rc == 0 )
+        rc = vdbcc(dir, name, mode, * is_db);
 
     return rc;
 }
@@ -1231,68 +259,30 @@ static char const* const defaultLogLevel =
 "info";
 #endif
 
-/******************************************************************************
+/*******************************************************************************
  * Usage
- ******************************************************************************/
+ *******************************************************************************/
 const char UsageDefaultName[] = "sra-dbcc";
+rc_t CC UsageSummary(const char * name) {return 0;}
 
-rc_t CC UsageSummary(const char *prog_name)
+static void usage(const char *progName)
 {
-    return KOutMsg("Usage: %s [options] table\n\n", prog_name);
-}
-
-char const *help_text[] = 
-{
-    "Check components md5s if present, fail unless other checks are requested (default: yes)", NULL,
-    "Check blobs CRC32 (default: no)", NULL,
-    "Check 'skey' index (default: no)", NULL,
-    "Continue checking table for all possible errors (default: no)", NULL,
-    "Check data referential integrity for databases (default: no)", NULL,
-    "Check index-only with blobs CRC32 (default: no)", NULL
-};
-
-OptDef Options[] = 
-{
-    { "md5"       , "5", NULL, &help_text[0], 1, false, false },
-    { "blob-crc"  , "b", NULL, &help_text[2], 1, false, false },
-#if CHECK_INDEX
-    { "index"     , "i", NULL, &help_text[4], 1, false, false },
+    const char* p = strrchr(progName, '/');
+    p = p ? p + 1 : progName;
+    printf("\nUsage: %s [options] table\n\n", p);
+    printf(
+           "    -5|--md5        Check components md5s if present, fail otherwise,\n"
+           "                    unless other checks are requested (default: yes)\n"
+           "    -b|--blob-crc   Check blobs CRC32 (default: no)\n"
+#if 0
+           "    -i|--index      Check 'skey' index (default: no)\n"
 #endif
-    { "exhaustive", "x", NULL, &help_text[6], 1, false, false },
-    { "dri"       , "d", NULL, &help_text[8], 1, false, false },
-
-    /* should be the last one here: it is not printed by --help */
-    { "index-only",NULL, NULL, &help_text[10], 1, false, false }
-};
-#define NOPTS ( sizeof(Options)/sizeof(Options[0]))
-
-rc_t CC Usage (const Args * args)
-{
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    rc_t rc;
-    unsigned i;
-    
-    if (args == NULL)
-        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    else
-        rc = ArgsProgram (args, &fullpath, &progname);
-    if (rc)
-        progname = fullpath = UsageDefaultName;
-    
-    UsageSummary (progname);
-    
-    KOutMsg ("Options:\n");
-    
-    for (i = 0; i != NOPTS - 1; ++i) {
-        HelpOptionLine(Options[i].aliases, Options[i].name, NULL, Options[i].help);
-    }
-    
-    HelpOptionsStandard ();
-    
-    HelpVersion (fullpath, KAppVersion());
-    
-    return 0;
+           "    -x|--exhaustive Continue checking table for all possible errors\n"
+           "                    ( default is to exit after first error )\n"
+           "\n"
+           "    -h|--help       This help\n"
+           "    -V|--version    Program version\n"
+           "\n");
 }
 
 uint32_t CC KAppVersion(void)
@@ -1300,278 +290,144 @@ uint32_t CC KAppVersion(void)
     return SRA_DBCC_VERS;
 }
 
-#ifdef MAC
-#define SRAPathMake(...) (RC(rcRuntime, rcDylib, rcSearching, rcFunction, rcUnsupported))
-#define SRAPathFind(...) (RC(rcRuntime, rcDylib, rcSearching, rcFunction, rcUnsupported))
-#define SRAPathRelease(...) ((rc_t)(0))
-#endif
-
 rc_t CC KMain ( int argc, char *argv [] )
 {
-    Args * args;
-    char *src_dir_path = NULL;
+    rc_t rc = 0;
+    int i;
     char *src_path = NULL;
-    char *obj_name = NULL;
+    char *tbl_name = NULL;
     bool md5_chk = true, md5_chk_explicit = false;
     bool blob_crc = false;
     bool index_chk = false;
-    bool is_file = false;
     const KDirectory *src_dir = NULL;
-/*  char path_buffer [ 4096 ]; */
-    VFSManager *mgr = NULL;
-    VResolver *resolver = NULL;
 
-    rc_t rc = KLogLevelSet ( klogInfo );
+    char path_buffer [ 4096 ];
 
-    if ( rc == 0 )
-        rc = ArgsMakeAndHandle(&args, argc, argv, 1, Options, NOPTS);
+    KLogLevelSet(klogInfo);
     
-    if (rc == 0) {
-        rc = VFSManagerMake(&mgr);
-        if (rc != 0) {
-            LOGERR(klogErr, rc, "Failed to VFSManagerMake()");
-        }
-    }
-
-    if (rc == 0) {
-        rc = VFSManagerGetResolver(mgr, &resolver);
-        if (rc != 0) {
-            LOGERR(klogInt, rc, "Cannot VFSManagerGetResolver");
-        }
-        else {
-            VResolverRemoteEnable(resolver, vrAlwaysDisable);
-        }
+    if (argc < 2)
+    {
+        usage(argv[0]);
+        return RC(rcExe, rcArgv, rcReading, rcParam, rcUnknown);
     }
 
-    RELEASE(VFSManager, mgr);
-
-    while (rc == 0) {
-        uint32_t pcount;
-        
-        rc = ArgsParamCount(args, &pcount); if (rc) break;
-        if (pcount == 1) {
+    for (i = 1; rc == 0 && i < argc; i++)
+    {
+        char *arg = argv[i];
+        if (arg[0] != '-' && src_path == NULL)
+        {
             KDirectory *dir;
             rc = KDirectoryNativeDir(&dir);
             if (rc == 0)
             {
-                char const *value;
-                
-                rc = ArgsParamValue (args, 0, &value); if (rc) break;
-                src_dir_path = strdup(value);
-                src_path = strdup(value);
-                obj_name = strrchr(src_dir_path, '/');
-                if ( obj_name != NULL && obj_name [ 1 ] == 0 )
-                {
-                    * obj_name = 0;
-                    obj_name = strrchr(src_dir_path, '/');
-                }
-                if (obj_name != NULL)
+                src_path = arg;
+                tbl_name = strrchr(src_path, '/');
+                if (tbl_name != NULL)
                 {
-                    if (obj_name == src_dir_path) {
-                        src_dir_path[0] = '/';
-                        src_dir_path[1] = '\0';
-                    }
-                    *obj_name++ = '\0';
+                    if (tbl_name == src_path)
+                        src_path = "/";
+                    *tbl_name++ = '\0';
                 }
                 else
                 {
-                    uint32_t type
-                        = KDirectoryPathType(dir, src_path) & ~kptAlias;
-                    if (type != kptFile && type != kptDir) {
-                        /* check for accession */
-                        VPath *acc = NULL;
-                        const VPath *pLocal = NULL;
-                        const String *local = NULL;
-
-                        if (rc == 0) {
-                            rc = VPathMake(&acc, src_path);
-                            if (rc != 0) {
-                                PLOGERR(klogErr, (klogErr, rc,
-                                    "VPathMake($(path)) failed",
-                                    PLOG_S(path), src_path));
-                            }
-                            else {
-                               rc = VResolverLocal(resolver, acc, &pLocal);
-                            }
-                        }
-                        if (rc == 0) {
-                            rc = VPathMakeString(pLocal, &local);
-                            if (rc != 0) {
-                                PLOGERR(klogErr, (klogErr, rc,
-                                    "VPathMake(local $(path)) failed",
-                                    PLOG_S(path), src_path));
-                            }
-                        }
+                    SRAPath *pmgr;
+                    
+                    /* check for accession */
+                    rc = SRAPathMake ( & pmgr, dir );
+                    if ( rc == 0 )
+                    {
+                        rc = SRAPathFind ( pmgr, src_path, path_buffer, sizeof path_buffer );
                         if ( rc == 0 )
                         {
-                            PLOGMSG(klogInfo, (klogInfo,
-                                "Validating '$(path)'...", PLOG_S(path),
-                                local->addr));
                             /* use mapped path */
-                            free(src_path);
-                            src_path = string_dup(local->addr, local->size);
-                            free(src_dir_path);
-                            src_dir_path = string_dup(local->addr, local->size);
-                            obj_name = strrchr(src_dir_path, '/');
-                            if ( obj_name == NULL )
-                                obj_name = src_dir_path;
+                            src_path = path_buffer;
+                            tbl_name = strrchr(src_path, '/');
+                            if ( tbl_name == NULL )
+                                tbl_name = src_path;
                             else
                             {
-                                if ( obj_name == src_dir_path ) {
-                                    src_dir_path[0] = '/';
-                                    src_dir_path[1] = '\0';
-                                }
-                                * obj_name ++ = '\0';
-                            }
-                        }
-
-                        RELEASE(VPath, pLocal);
-                        RELEASE(VPath, acc);
-                        free((void*)local);
-                    }
-                    else {
-                        char full[PATH_MAX];
-                        rc = KDirectoryResolvePath(dir, true,
-                            full, sizeof full, src_path);
-                        if (rc == 0) {
-                            PLOGMSG(klogInfo, (klogInfo,
-                                "Validating '$(path)'...", PLOG_S(path),
-                                full));
-                            /* use mapped path */
-                            free(src_path);
-                            src_path = string_dup(full, strlen(full));
-                            free(src_dir_path);
-                            src_dir_path = string_dup(full, strlen(full));
-                            obj_name = strrchr(src_dir_path, '/');
-                            if ( obj_name == NULL )
-                                obj_name = src_dir_path;
-                            else
-                            {
-                                if ( obj_name == src_dir_path ) {
-                                    src_dir_path[0] = '/';
-                                    src_dir_path[1] = '\0';
-                                }
-                                * obj_name ++ = '\0';
+                                if ( tbl_name == src_path )
+                                    src_path = "/";
+                                * tbl_name ++ = '\0';
                             }
                         }
+                        
+                        (void)SRAPathRelease ( pmgr );
                     }
-
+                    
                     if ( rc != 0 )
                     {
                         /* appears to be a simple name */
-                        obj_name = strdup(src_dir_path);
-                        src_dir_path[0] = '.';
-                        src_dir_path[1] = '\0';
+                        tbl_name = src_path;
+                        src_path = ".";
                     }
                 }
                 
-                rc = KDirectoryOpenDirRead(dir, &src_dir, false, src_dir_path);
+                rc = KDirectoryOpenDirRead(dir, &src_dir, false, src_path);
                 KDirectoryRelease(dir);
-                if (rc) {
-                    (void)PLOGERR(klogErr, (klogErr, rc,
-                        "Failed to open '$(dir)'", "dir=%s", src_dir_path));
-                    break;
-                }
-                else {
-                    uint32_t const obj_type = KDirectoryPathType(src_dir, obj_name) & (~((uint32_t)kptAlias));
-                    
-                    switch (obj_type) {
-                    case kptFile:
-                        is_file = true;
-                        break;
-                    default:
-                        break;
-                    }
-                }
             }
         }
-        else {
-            MiniUsage(args);
-            ArgsWhack(args);
-            exit(EXIT_FAILURE);
+        else if (strcmp(arg, "-5") == 0 || strcmp(arg, "--md5") == 0 ) {
+            md5_chk_explicit = true;
         }
-
-        rc = ArgsOptionCount(args, "md5", &pcount); if (rc) break;
-        md5_chk_explicit = md5_required = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
-        }
-        
-        rc = ArgsOptionCount(args, "blob-crc", &pcount); if (rc) break;
-        blob_crc = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
+        else if (strcmp(arg, "-b") == 0 || strcmp(arg, "--blob-crc") == 0 ) {
+            blob_crc = true;
         }
-        
-        rc = ArgsOptionCount(args, "exhaustive", &pcount); if (rc) break;
-        exhaustive = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
-        }
-        
-        rc = ArgsOptionCount(args, "dri", &pcount); if (rc) break;
-        ref_int_check = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
+        else if (strcmp(arg, "-x") == 0 || strcmp(arg, "--exhaustive") == 0 ) {
+            exhaustive = true;
         }
-        
-#if CHECK_INDEX
-        rc = ArgsOptionCount(args, "index", &pcount); if (rc) break;
-        index_chk = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
+#if 1
+        else if (strcmp(arg, "-i") == 0 || strcmp(arg, "--index") == 0 ) {
+            index_chk = true;
         }
 #endif
-
-        rc = ArgsOptionCount(args, "index-only", &pcount);
-        if (rc) {
-            break;
+        else if (strcmp(arg, "-h") == 0 || strcmp(arg, "--help") == 0 ) {
+            usage(argv[0]);
+            return 0;
         }
-        if (pcount > 0) {
-            s_IndexOnly = blob_crc = true;
+        else if (strcmp(arg, "-V") == 0 || strcmp(arg, "--version") == 0 ) {
+            printf("Version: %u.%u.%u\n", KAppVersion() >> 24, (KAppVersion() >> 16) & 0xFF, KAppVersion() & 0xFFFF);
+            return 0;
         }
-            
+        else {
+            usage(argv[0]);
+            rc = RC(rcExe, rcArgv, rcReading, rcParam, rcUnknown);
+        }
+    }
 
+    if (rc == 0)
+    {
         if (blob_crc || index_chk)
         {
             /* if blob or index is requested, md5 is off unless explicitly requested */
             md5_chk = md5_chk_explicit;
         }
-        
+
+        if (src_path == NULL)
+            rc = RC(rcExe, rcArgv, rcReading, rcParam, rcNotFound);
+        else
         {
             bool is_db = false;
-            rc = dbcc(src_path, src_dir, obj_name, (md5_chk ? 1 : 0)|(blob_crc ? 2 : 0)|(index_chk ? 4 : 0), & is_db, is_file);
+            rc = dbcc(src_dir, tbl_name, (md5_chk ? 1 : 0)|(blob_crc ? 2 : 0)|(index_chk ? 4 : 0), & is_db);
             if ( is_db )
             {
                 if ( rc != 0 )
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(db)' check failed", PLOG_S(db), obj_name));
+                    (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(db)' check failed", PLOG_S(db), tbl_name));
                 else
-                    (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(db)' is consistent", PLOG_S(db), obj_name));
+                    (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(db)' ok", PLOG_S(db), tbl_name));
             }
             else
             {
                 if ( rc != 0 )
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Table '$(table)' check failed", PLOG_S(table), obj_name));
+                    (void)PLOGERR(klogErr, (klogErr, rc, "Table '$(table)' check failed", PLOG_S(table), tbl_name));
                 else
-                    (void)PLOGMSG(klogInfo, (klogInfo, "Table '$(table)' is consistent", PLOG_S(table), obj_name));
+                    (void)PLOGMSG(klogInfo, (klogInfo, "Table '$(table)' ok", PLOG_S(table), tbl_name));
             }
         }
-        break;
     }
 
-    RELEASE(VResolver, resolver);
-    RELEASE(KDirectory, src_dir);
-    free(src_path);
-   
+    KDirectoryRelease(src_dir);
+
+    
     return rc;
 }
diff --git a/tools/sra-dbcc/sra-dbcc.vers b/tools/sra-dbcc/sra-dbcc.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-dbcc/sra-dbcc.vers
+++ b/tools/sra-dbcc/sra-dbcc.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-dbcc/sra-dbcc.vers.h b/tools/sra-dbcc/sra-dbcc.vers.h
new file mode 100644
index 0000000..26b549c
--- /dev/null
+++ b/tools/sra-dbcc/sra-dbcc.vers.h
@@ -0,0 +1 @@
+#define SRA_DBCC_VERS 0x02010007
diff --git a/tools/sra-dump/Makefile b/tools/sra-dump/Makefile
index 7e2d4cc..88c228b 100644
--- a/tools/sra-dump/Makefile
+++ b/tools/sra-dump/Makefile
@@ -46,13 +46,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -63,13 +65,6 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -97,18 +92,21 @@ SRADUMP_OBJ = \
 SRADUMP_LIB = \
 	-lkapp \
 	-lsradb \
+	-ssrapath \
+	-ssraschema \
 	-lalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
+	-daxf \
+	-dsraxf \
+	-dvxf \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
 	-dksrch \
-	-lkproc \
 	-lklib \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 $(BINDIR)/sra-dump: $(SRADUMP_OBJ)
@@ -122,27 +120,27 @@ sradump_tag:
 #
 DUMP_COMMON_SRC = \
 	factory \
-	fasta_dump \
 	core
 
 DUMP_COMMON_LIB = \
-	-lkapp \
+	-lsradb \
+	-lsrareader \
+	-ssrapath \
+	-ssraschema \
 	-dsraxf \
+	-dalign-reader \
 	-daxf \
+	-lkapp \
 	-dvxf \
-	-lsradb \
-	-lsrareader \
-	-lalign-reader \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
 	-dksrch \
-	-lkproc \
 	-lklib \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 #-------------------------------------------------------------------------------
diff --git a/tools/sra-dump/abi-dump.vers b/tools/sra-dump/abi-dump.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-dump/abi-dump.vers
+++ b/tools/sra-dump/abi-dump.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-dump/abi-dump.vers.h b/tools/sra-dump/abi-dump.vers.h
new file mode 100644
index 0000000..fc0e775
--- /dev/null
+++ b/tools/sra-dump/abi-dump.vers.h
@@ -0,0 +1 @@
+#define ABI_DUMP_VERS 0x02010007
diff --git a/tools/sra-dump/abi.c b/tools/sra-dump/abi.c
index 3cdfdcc..60ebd9c 100644
--- a/tools/sra-dump/abi.c
+++ b/tools/sra-dump/abi.c
@@ -25,7 +25,6 @@
 */
 #include <klib/log.h>
 #include <klib/container.h>
-#include <klib/printf.h>
 #include <kapp/main.h>
 
 #include <sra/sradb.h>
@@ -42,8 +41,6 @@
 #include "abi-dump.vers.h"
 #include "debug.h"
 
-#define DATABUFFERINITSIZE 10240
-
 /* ============== Absolid read type (bio/tech) filter ============================ */
 
 typedef struct Absolid2BioFilter_struct {
@@ -79,7 +76,7 @@ rc_t Absolid2BioFilter_GetKey(const SRASplitter* cself, const char** key, spotid
                 *key = "";
                 copy_readmask(new_mask, readmask);
             }
-        } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+        } else if( GetRCState(rc) == rcNotFound ) {
             SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
             *key = NULL;
             rc = 0;
@@ -158,8 +155,8 @@ rc_t Absolid2BioFilterFactory_Make(const SRASplitterFactory** cself, const char*
 typedef struct AbsolidLabelerFilter_struct {
     const AbsolidReader* reader;
     bool is_platform_cs_native;
-    SRASplitter_Keys keys[7];
-    size_t key_sz[7];
+    SRASplitter_Keys keys[4];
+    size_t key_sz[4];
 } AbsolidLabelerFilter;
 
 static
@@ -211,7 +208,7 @@ rc_t AbsolidLabelerFilter_GetKeySet(const SRASplitter* cself, const SRASplitter_
                     q++;
                 }
             }
-        } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+        } else if( GetRCState(rc) == rcNotFound ) {
             SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
@@ -257,16 +254,10 @@ rc_t AbsolidLabelerFilterFactory_NewObj(const SRASplitterFactory* cself, const S
             ((AbsolidLabelerFilter*)(*splitter))->keys[1].key = "R3";
             ((AbsolidLabelerFilter*)(*splitter))->keys[2].key = "F5-P2";
             ((AbsolidLabelerFilter*)(*splitter))->keys[3].key = "F5-BC";
-            ((AbsolidLabelerFilter*)(*splitter))->keys[4].key = "F5-RNA";
-            ((AbsolidLabelerFilter*)(*splitter))->keys[5].key = "F5-DNA";
-            ((AbsolidLabelerFilter*)(*splitter))->keys[6].key = "F3-DNA";
             ((AbsolidLabelerFilter*)(*splitter))->key_sz[0] = 2;
             ((AbsolidLabelerFilter*)(*splitter))->key_sz[1] = 2;
             ((AbsolidLabelerFilter*)(*splitter))->key_sz[2] = 5;
             ((AbsolidLabelerFilter*)(*splitter))->key_sz[3] = 5;
-            ((AbsolidLabelerFilter*)(*splitter))->key_sz[4] = 6;
-            ((AbsolidLabelerFilter*)(*splitter))->key_sz[5] = 6;
-            ((AbsolidLabelerFilter*)(*splitter))->key_sz[6] = 6;
         }
     }
     return rc;
@@ -342,7 +333,7 @@ rc_t AbsolidReadLenFilter_GetKey(const SRASplitter* cself, const char** key, spo
                 }
                 copy_readmask(new_mask, readmask);
             }
-        } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+        } else if( GetRCState(rc) == rcNotFound ) {
             SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
             *key = NULL;
             rc = 0;
@@ -426,7 +417,7 @@ rc_t AbsolidReadLenFilterFactory_Make(const SRASplitterFactory** cself, const ch
 
 typedef struct AbsolidQFilter_struct {
     const AbsolidReader* reader;
-    KDataBuffer* b;
+    char buf[512 * 1024];
 } AbsolidQFilter;
 
 
@@ -453,9 +444,8 @@ rc_t AbsolidQFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t
                 clear_readmask(new_mask);
                 for(readId = 0; rc == 0 && readId < num_reads; readId++) {
                     if( (rc = AbsolidReader_SpotReadInfo(self->reader, readId + 1, NULL, NULL, NULL, NULL, &read_len)) == 0 ) {
-                        IF_BUF((AbsolidReaderBase(self->reader, readId + 1, self->b->base, KDataBufferBytes(self->b), NULL)), self->b, read_len) {
-                            const char* b = self->b->base;
-                            if( strncmp(&b[1], colorStr, xLen) == 0 && strcmp(&b[read_len - xLen + 1], colorStr) == 0 )  {
+                        if( (rc = AbsolidReaderBase(self->reader, readId + 1, self->buf, sizeof(self->buf), NULL)) == 0 ) {
+                            if( strncmp(&self->buf[1], colorStr, xLen) == 0 && strcmp(&self->buf[read_len - xLen + 1], colorStr) == 0 )  {
                                 continue;
                             }
                         }
@@ -465,7 +455,7 @@ rc_t AbsolidQFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t
                 *key = "";
                 copy_readmask(new_mask, readmask);
             }
-        } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+        } else if( GetRCState(rc) == rcNotFound ) {
             SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
             *key = NULL;
             rc = 0;
@@ -479,7 +469,6 @@ typedef struct AbsolidQFilterFactory_struct {
     const SRATable* table;
     bool clip;
     const AbsolidReader* reader;
-    KDataBuffer buf;
 } AbsolidQFilterFactory;
 
 static
@@ -490,7 +479,7 @@ rc_t AbsolidQFilterFactory_Init(const SRASplitterFactory* cself)
 
     if( self == NULL ) {
         rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
-    } else if( (rc = KDataBufferMakeBytes(&self->buf, DATABUFFERINITSIZE)) == 0 ) {
+    } else {
         rc = AbsolidReaderMake(&self->reader, self->table, self->accession,
                                false, self->clip, 0, 0, 0, false);
     }
@@ -508,7 +497,6 @@ rc_t AbsolidQFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASpli
     } else {
         if( (rc = SRASplitter_Make(splitter, sizeof(AbsolidQFilter), AbsolidQFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
             ((AbsolidQFilter*)(*splitter))->reader = self->reader;
-            ((AbsolidQFilter*)(*splitter))->b = &self->buf;
         }
     }
     return rc;
@@ -519,7 +507,6 @@ void AbsolidQFilterFactory_Release(const SRASplitterFactory* cself)
 {
     if( cself != NULL ) {
         AbsolidQFilterFactory* self = (AbsolidQFilterFactory*)cself;
-        KDataBufferWhack(&self->buf);
         AbsolidReaderWhack(self->reader);
     }
 }
@@ -548,10 +535,10 @@ rc_t AbsolidQFilterFactory_Make(const SRASplitterFactory** cself, const char* ac
 
 typedef struct AbsolidFormatterSplitter_struct {
     const AbsolidReader* reader;
-    char pfx[10 * 1024];
+    char pfx[1024];
     int pfx_sz;
-    KDataBuffer* hb;
-    KDataBuffer* b;
+    char head[10 * 1024];
+    char buf[1024 * 1024];
 } AbsolidFormatterSplitter;
 
 static
@@ -579,73 +566,74 @@ rc_t AbsolidFormatterSplitter_Dump(const SRASplitter* cself, spotid_t spot, cons
                         if( head_sz >= sizeof(self->pfx) ) {
                             rc = RC(rcSRA, rcString, rcCopying, rcBuffer, rcInsufficient);
                         } else {
+                            int x;
                             self->pfx_sz = head_sz;
                             memcpy(self->pfx, prefix, head_sz);
-                            IF_BUF((string_printf(self->hb->base, KDataBufferBytes(self->hb), &head_sz,
-                                   "#\n# Title: %.*s\n#\n", self->pfx_sz, self->pfx)), self->hb, head_sz);
+                            x = snprintf(self->head, sizeof(self->head) - 1, "#\n# Title: %.*s\n#\n", self->pfx_sz, self->pfx);
+                            if( x < 0 || x == sizeof(self->head) - 1 ) {
+                                rc = RC(rcSRA, rcType, rcExecuting, rcBuffer, rcInsufficient);
+                            }
+                            head_sz = x;
                         }
                     } else {
                         head_sz = 0;
                     }
                 }
-                if( rc == 0 ) {
-                    char* h = self->hb->base;
-                    IF_BUF((AbsolidReaderHeader(self->reader, readId, &h[head_sz],
-                            KDataBufferBytes(self->hb) - head_sz - 1, &writ)), self->hb, writ + head_sz + 1) {
-                        head_sz += writ;
-                        h[head_sz++] = '\n';
-                    }
+                if( rc == 0 && (rc = AbsolidReaderHeader(self->reader, readId,
+                                                         &self->head[head_sz], sizeof(self->head) - head_sz - 1, &writ)) == 0 ) {
+                    head_sz += writ;
+                    self->head[head_sz++] = '\n';
                 }
                 if( rc == 0 && (rc = SRASplitter_FileActivate(cself, ".csfasta")) == 0 ) {
-                    IF_BUF((AbsolidReaderBase(self->reader, readId, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                        if( writ > 0 && (rc = SRASplitter_FileWrite(cself, 0, self->hb->base, head_sz)) == 0 ) {
-                            ((char*)(self->b->base))[writ] = '\n';
-                            rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
+                    if( (rc = AbsolidReaderBase(self->reader, readId, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0) {
+                        if( (rc = SRASplitter_FileWrite(cself, 0, self->head, head_sz)) == 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
                 if( rc == 0 && (rc = SRASplitter_FileActivate(cself, "_QV.qual")) == 0 ) {
-                    IF_BUF((AbsolidReaderQuality(self->reader, readId, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                        if( writ > 0 && (rc = SRASplitter_FileWrite(cself, 0, self->hb->base, head_sz)) == 0 ) {
-                            ((char*)(self->b->base))[writ] = '\n';
-                            rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
+                    if( (rc = AbsolidReaderQuality(self->reader, readId, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                        if( (rc = SRASplitter_FileWrite(cself, 0, self->head, head_sz)) == 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
                 if( rc == 0 && (rc = SRASplitter_FileActivate(cself, "_intensity.ScaledFTC.fasta")) == 0 ) {
-                    IF_BUF((AbsolidReaderSignalFTC(self->reader, readId, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                        if( writ > 0 && (rc = SRASplitter_FileWrite(cself, 0, self->hb->base, head_sz)) == 0 ) {
-                            ((char*)(self->b->base))[writ] = '\n';
-                            rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
+                    if( (rc = AbsolidReaderSignalFTC(self->reader, readId, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                        if( (rc = SRASplitter_FileWrite(cself, 0, self->head, head_sz)) == 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
                 if( rc == 0 && (rc = SRASplitter_FileActivate(cself, "_intensity.ScaledCY3.fasta")) == 0 ) {
-                    IF_BUF((AbsolidReaderSignalCY3(self->reader, readId, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                        if( writ > 0 && (rc = SRASplitter_FileWrite(cself, 0, self->hb->base, head_sz)) == 0 ) {
-                            ((char*)(self->b->base))[writ] = '\n';
-                            rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
+                    if( (rc = AbsolidReaderSignalCY3(self->reader, readId, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                        if( (rc = SRASplitter_FileWrite(cself, 0, self->head, head_sz)) == 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
                 if( rc == 0 && (rc = SRASplitter_FileActivate(cself, "_intensity.ScaledTXR.fasta")) == 0 ) {
-                    IF_BUF((AbsolidReaderSignalTXR(self->reader, readId, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                        if( writ > 0 && (rc = SRASplitter_FileWrite(cself, 0, self->hb->base, head_sz)) == 0 ) {
-                            ((char*)(self->b->base))[writ] = '\n';
-                            rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
+                    if( (rc = AbsolidReaderSignalTXR(self->reader, readId, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                        if( (rc = SRASplitter_FileWrite(cself, 0, self->head, head_sz)) == 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
                 if( rc == 0 && (rc = SRASplitter_FileActivate(cself, "_intensity.ScaledCY5.fasta")) == 0 ) {
-                    IF_BUF((AbsolidReaderSignalCY5(self->reader, readId, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                        if( writ > 0 && (rc = SRASplitter_FileWrite(cself, 0, self->hb->base, head_sz)) == 0 ) {
-                            ((char*)(self->b->base))[writ] = '\n';
-                            rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
+                    if( (rc = AbsolidReaderSignalCY5(self->reader, readId, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                        if( (rc = SRASplitter_FileWrite(cself, 0, self->head, head_sz)) == 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
             }
-        } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+        } else if( GetRCState(rc) == rcNotFound ) {
             SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
@@ -659,8 +647,6 @@ typedef struct AbsolidFormatterFactory_struct {
     bool orig;
     bool clip;
     const AbsolidReader* reader;
-    KDataBuffer hbuf;
-    KDataBuffer buf;
 } AbsolidFormatterFactory;
 
 static
@@ -671,8 +657,7 @@ rc_t AbsolidFormatterFactory_Init(const SRASplitterFactory* cself)
 
     if( self == NULL ) {
         rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
-    } else if( (rc = KDataBufferMakeBytes(&self->hbuf, DATABUFFERINITSIZE)) == 0 &&
-               (rc = KDataBufferMakeBytes(&self->buf, DATABUFFERINITSIZE)) == 0 ) {
+    } else {
         rc = AbsolidReaderMake(&self->reader, self->table, self->accession,
                                self->orig, !self->clip, 0, 0, 0, true);
     }
@@ -692,9 +677,6 @@ rc_t AbsolidFormatterFactory_NewObj(const SRASplitterFactory* cself, const SRASp
             ((AbsolidFormatterSplitter*)(*splitter))->reader = self->reader;
             ((AbsolidFormatterSplitter*)(*splitter))->pfx[0] = '\0';
             ((AbsolidFormatterSplitter*)(*splitter))->pfx_sz = 0;
-            ((AbsolidFormatterSplitter*)(*splitter))->hb = &self->hbuf;
-            ((AbsolidFormatterSplitter*)(*splitter))->b = &self->buf;
-
         }
     }
     return rc;
@@ -705,8 +687,6 @@ void AbsolidFormatterFactory_Release(const SRASplitterFactory* cself)
 {
     if( cself != NULL ) {
         AbsolidFormatterFactory* self = (AbsolidFormatterFactory*)cself;
-        KDataBufferWhack(&self->hbuf);
-        KDataBufferWhack(&self->buf);
         AbsolidReaderWhack(self->reader);
     }
 }
diff --git a/tools/sra-dump/core.c b/tools/sra-dump/core.c
index 5388297..3c59be2 100644
--- a/tools/sra-dump/core.c
+++ b/tools/sra-dump/core.c
@@ -23,19 +23,10 @@
 * ===========================================================================
 *
 */
-
-#include <vdb/table.h> /* VTableRelease */
-#include <kfg/config.h> /* KConfigDisableUserSettings */
-
-#include <vdb/manager.h> /* VDBManagerRelease */
-#include <vdb/dependencies.h> /* UIError */
-#include <klib/report.h> /* ReportInit */
-#include <vdb/report.h>
 #include <klib/container.h>
 #include <klib/log.h>
 #include <klib/out.h>
 #include <klib/status.h>
-#include <klib/text.h>
 #include <kapp/main.h>
 #include <kfs/directory.h>
 #include <sra/sradb-priv.h>
@@ -45,45 +36,34 @@
 
 #include "debug.h"
 #include "core.h"
-#include "fasta_dump.h"
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <assert.h>
 
 /* ### checks to see if NREADS <= nreads_max defined in factory.h ##################################################### */
 
-typedef struct MaxNReadsValidator_struct
-{
+typedef struct MaxNReadsValidator_struct {
     const SRAColumn* col;
 } MaxNReadsValidator;
 
-
-static rc_t MaxNReadsValidator_GetKey( const SRASplitter* cself, 
-    const char** key, spotid_t spot, readmask_t* readmask )
+static
+rc_t MaxNReadsValidator_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    MaxNReadsValidator* self = ( MaxNReadsValidator* )cself;
+    MaxNReadsValidator* self = (MaxNReadsValidator*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcSRA, rcNode, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcSRA, rcNode, rcExecuting, rcParam, rcNull);
+    } else {
         const void* nreads = NULL;
         bitsz_t o = 0, sz = 0;
         uint64_t nn = 0;
 
         *key = "";
-        if ( self->col != NULL )
-        {
-            rc = SRAColumnRead( self->col, spot, &nreads, &o, &sz );
-            if ( rc == 0 )
-            {
-                switch( sz )
-                {
+        if( self->col != NULL ) {
+            if( (rc = SRAColumnRead(self->col, spot, &nreads, &o, &sz)) == 0 ) {
+                switch(sz) {
                     case 8:
                         nn = *((const uint8_t*)nreads);
                         break;
@@ -97,49 +77,40 @@ static rc_t MaxNReadsValidator_GetKey( const SRASplitter* cself,
                         nn = *((const uint64_t*)nreads);
                         break;
                     default:
-                        rc = RC( rcSRA, rcNode, rcExecuting, rcData, rcUnexpected );
+                        rc = RC(rcSRA, rcNode, rcExecuting, rcData, rcUnexpected);
                         break;
                 }
-                if ( nn > nreads_max )
-                {
-                    clear_readmask( readmask );
+                if( nn > nreads_max ) {
+                    clear_readmask(readmask);
                     PLOGMSG(klogWarn, (klogWarn, "too many reads $(nreads) at spot id $(row), maximum $(max) supported, skipped",
                                        PLOG_3(PLOG_U64(nreads),PLOG_I64(row),PLOG_U32(max)), nn, spot, nreads_max));
-                }
-                else if ( nn == nreads_max - 1 )
-                {
+                } else if( nn == nreads_max - 1 ) {
                     PLOGMSG(klogWarn, (klogWarn, "too many reads $(nreads) at spot id $(row), truncated to $(max)",
                                        PLOG_3(PLOG_U64(nreads),PLOG_I64(row),PLOG_U32(max)), nn + 1, spot, nreads_max));
                 }
+
             }
         }
     }
     return rc;
 }
 
-typedef struct MaxNReadsValidatorFactory_struct
-{
+typedef struct MaxNReadsValidatorFactory_struct {
     const SRATable* table;
     const SRAColumn* col;
 } MaxNReadsValidatorFactory;
 
-
-static rc_t MaxNReadsValidatorFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t MaxNReadsValidatorFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    MaxNReadsValidatorFactory* self = ( MaxNReadsValidatorFactory* )cself;
+    MaxNReadsValidatorFactory* self = (MaxNReadsValidatorFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRATableOpenColumnRead( self->table, &self->col, "NREADS", NULL );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) == rcNotFound || GetRCState( rc ) == rcExists )
-            {
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        if( (rc = SRATableOpenColumnRead(self->table, &self->col, "NREADS", NULL)) != 0 ) {
+            if( GetRCState(rc) == rcNotFound || GetRCState(rc) == rcExists ) {
                 rc = 0;
             }
         }
@@ -147,67 +118,52 @@ static rc_t MaxNReadsValidatorFactory_Init( const SRASplitterFactory* cself )
     return rc;
 }
 
-
-static rc_t MaxNReadsValidatorFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t MaxNReadsValidatorFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    MaxNReadsValidatorFactory* self = ( MaxNReadsValidatorFactory* )cself;
+    MaxNReadsValidatorFactory* self = (MaxNReadsValidatorFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof(MaxNReadsValidator),
-                               MaxNReadsValidator_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (MaxNReadsValidator*)(*splitter) )->col = self->col;
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(MaxNReadsValidator), MaxNReadsValidator_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((MaxNReadsValidator*)(*splitter))->col = self->col;
         }
     }
     return rc;
 }
 
-
-static void MaxNReadsValidatorFactory_Release( const SRASplitterFactory* cself )
+static
+void MaxNReadsValidatorFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        MaxNReadsValidatorFactory* self = ( MaxNReadsValidatorFactory* )cself;
-        SRAColumnRelease( self->col );
+    if( cself != NULL ) {
+        MaxNReadsValidatorFactory* self = (MaxNReadsValidatorFactory*)cself;
+        SRAColumnRelease(self->col);
     }
 }
 
-
-static rc_t MaxNReadsValidatorFactory_Make( const SRASplitterFactory** cself, const SRATable* table )
+static
+rc_t MaxNReadsValidatorFactory_Make(const SRASplitterFactory** cself, const SRATable* table)
 {
     rc_t rc = 0;
     MaxNReadsValidatorFactory* obj = NULL;
 
-    if( cself == NULL || table == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcAllocating, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                     MaxNReadsValidatorFactory_Init,
-                                     MaxNReadsValidatorFactory_NewObj,
-                                     MaxNReadsValidatorFactory_Release);
-        if ( rc == 0 )
-        {
-            obj = ( MaxNReadsValidatorFactory* )*cself;
-            obj->table = table;
-        }
+    if( cself == NULL || table == NULL ) {
+        rc = RC(rcSRA, rcType, rcAllocating, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             MaxNReadsValidatorFactory_Init,
+                                             MaxNReadsValidatorFactory_NewObj,
+                                             MaxNReadsValidatorFactory_Release)) == 0 ) {
+        obj = (MaxNReadsValidatorFactory*)*cself;
+        obj->table = table;
     }
     return rc;
 }
 
 /* ### READ_FILTER splitter/filter ##################################################### */
 
-enum EReadFilterSplitter_names
-{
+enum EReadFilterSplitter_names {
     EReadFilterSplitter_pass = 0,
     EReadFilterSplitter_reject,
     EReadFilterSplitter_criteria,
@@ -216,72 +172,49 @@ enum EReadFilterSplitter_names
     EReadFilterSplitter_max
 };
 
-
-typedef struct ReadFilterSplitter_struct
-{
+typedef struct ReadFilterSplitter_struct {
     const SRAColumn* col_rdf;
     SRAReadFilter read_filter;
     SRASplitter_Keys keys[5];
 } ReadFilterSplitter;
 
-
-static rc_t ReadFilterSplitter_GetKeySet( const SRASplitter* cself,
-        const SRASplitter_Keys** key, uint32_t* keys, spotid_t spot, const readmask_t* readmask )
+static
+rc_t ReadFilterSplitter_GetKeySet(const SRASplitter* cself, const SRASplitter_Keys** key, uint32_t* keys, spotid_t spot, const readmask_t* readmask)
 {
     rc_t rc = 0;
-    ReadFilterSplitter* self = ( ReadFilterSplitter* )cself;
+    ReadFilterSplitter* self = (ReadFilterSplitter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcSRA, rcNode, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcSRA, rcNode, rcExecuting, rcParam, rcNull);
+    } else {
         const INSDC_SRA_read_filter* rdf;
         bitsz_t o = 0, sz = 0;
 
         *keys = 0;
-        if ( self->col_rdf != NULL )
-        {
-            rc = SRAColumnRead( self->col_rdf, spot, (const void **)&rdf, &o, &sz );
-            if ( rc == 0 )
-            {
-                int32_t j, i = sz / sizeof( INSDC_SRA_read_filter ) / 8;
+        if( self->col_rdf != NULL ) {
+            if( (rc = SRAColumnRead(self->col_rdf, spot, (const void **)&rdf, &o, &sz)) == 0 ) {
+                int32_t j, i = sz / sizeof(INSDC_SRA_read_filter) / 8;
                 *key = self->keys;
-                *keys = sizeof( self->keys ) / sizeof( self->keys[ 0 ] );
-                for ( j = 0; j < *keys; j++ )
-                {
-                    clear_readmask( self->keys[ j ].readmask );
+                *keys = sizeof(self->keys) / sizeof(self->keys[0]);
+                for(j = 0; j < *keys; j++) {
+                    clear_readmask(self->keys[j].readmask);
                 }
-                while ( i > 0 )
-                {
+                while( i > 0 ) {
                     i--;
-                    if ( self->read_filter != 0xFF && self->read_filter != rdf[i] )
-                    {
+                    if( self->read_filter != 0xFF && self->read_filter != rdf[i] ) {
                         /* skip by filter value != to command line */
-                    }
-                    else if ( rdf[ i ] == SRA_READ_FILTER_PASS )
-                    {
-                        set_readmask( self->keys[ EReadFilterSplitter_pass ].readmask, i );
-                    }
-                    else if ( rdf[ i ] == SRA_READ_FILTER_REJECT )
-                    {
-                        set_readmask( self->keys[ EReadFilterSplitter_reject ].readmask, i );
-                    }
-                    else if( rdf[ i ] == SRA_READ_FILTER_CRITERIA )
-                    {
-                        set_readmask( self->keys[ EReadFilterSplitter_criteria ].readmask, i );
-                    }
-                    else if( rdf[ i ] == SRA_READ_FILTER_REDACTED )
-                    {
-                        set_readmask( self->keys[ EReadFilterSplitter_redacted ].readmask, i );
-                    }
-                    else
-                    {
-                        set_readmask( self->keys[ EReadFilterSplitter_unknown ].readmask, i );
-                        PLOGMSG( klogWarn, ( klogWarn,
-                                 "unknown READ_FILTER value $(value) at spot id $(row)",
-                                 PLOG_2( PLOG_U8( value ), PLOG_I64( row ) ), rdf[ i ], spot ) );
+                    } else if( rdf[i] == SRA_READ_FILTER_PASS ) {
+                        set_readmask(self->keys[EReadFilterSplitter_pass].readmask, i);
+                    } else if( rdf[i] == SRA_READ_FILTER_REJECT ) {
+                        set_readmask(self->keys[EReadFilterSplitter_reject].readmask, i);
+                    } else if( rdf[i] == SRA_READ_FILTER_CRITERIA ) {
+                        set_readmask(self->keys[EReadFilterSplitter_criteria].readmask, i);
+                    } else if( rdf[i] == SRA_READ_FILTER_REDACTED ) {
+                        set_readmask(self->keys[EReadFilterSplitter_redacted].readmask, i);
+                    } else {
+                        set_readmask(self->keys[EReadFilterSplitter_unknown].readmask, i);
+                        PLOGMSG(klogWarn, (klogWarn, "unknown READ_FILTER value $(value) at spot id $(row)",
+                                       PLOG_2(PLOG_U8(value),PLOG_I64(row)), rdf[i], spot));
                     }
                 }
             }
@@ -290,36 +223,26 @@ static rc_t ReadFilterSplitter_GetKeySet( const SRASplitter* cself,
     return rc;
 }
 
-
-typedef struct ReadFilterSplitterFactory_struct
-{
+typedef struct ReadFilterSplitterFactory_struct {
     const SRATable* table;
     const SRAColumn* col_rdf;
     SRAReadFilter read_filter;
 } ReadFilterSplitterFactory;
 
-
-static rc_t ReadFilterSplitterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t ReadFilterSplitterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    ReadFilterSplitterFactory* self = ( ReadFilterSplitterFactory* )cself;
-
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRATableOpenColumnRead( self->table, &self->col_rdf, "READ_FILTER", sra_read_filter_t );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) == rcNotFound )
-            {
-                LOGMSG( klogWarn, "Column READ_FILTER was not found, param ignored" );
+    ReadFilterSplitterFactory* self = (ReadFilterSplitterFactory*)cself;
+
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        if( (rc = SRATableOpenColumnRead(self->table, &self->col_rdf, "READ_FILTER", sra_read_filter_t)) != 0 ) {
+            if( GetRCState(rc) == rcNotFound ) {
+                LOGMSG(klogWarn, "Column READ_FILTER was not found, param ignored");
                 rc = 0;
-            }
-            else if ( GetRCState( rc ) == rcExists )
-            {
+            } else if( GetRCState(rc) == rcExists ) {
                 rc = 0;
             }
         }
@@ -327,134 +250,101 @@ static rc_t ReadFilterSplitterFactory_Init( const SRASplitterFactory* cself )
     return rc;
 }
 
-
-static rc_t ReadFilterSplitterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t ReadFilterSplitterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    ReadFilterSplitterFactory* self = ( ReadFilterSplitterFactory* )cself;
+    ReadFilterSplitterFactory* self = (ReadFilterSplitterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof(ReadFilterSplitter), NULL,
-                               ReadFilterSplitter_GetKeySet, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (ReadFilterSplitter*)(*splitter) )->col_rdf = self->col_rdf;
-            ( (ReadFilterSplitter*)(*splitter) )->read_filter = self->read_filter;
-            ( (ReadFilterSplitter*)(*splitter) )->keys[ EReadFilterSplitter_pass ].key = "pass";
-            ( (ReadFilterSplitter*)(*splitter) )->keys[ EReadFilterSplitter_reject ].key = "reject";
-            ( (ReadFilterSplitter*)(*splitter) )->keys[ EReadFilterSplitter_criteria ].key = "criteria";
-            ( (ReadFilterSplitter*)(*splitter) )->keys[ EReadFilterSplitter_redacted ].key = "redacted";
-            ( (ReadFilterSplitter*)(*splitter) )->keys[ EReadFilterSplitter_unknown ].key = "unknown";
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(ReadFilterSplitter), NULL, ReadFilterSplitter_GetKeySet, NULL, NULL)) == 0 ) {
+            ((ReadFilterSplitter*)(*splitter))->col_rdf = self->col_rdf;
+            ((ReadFilterSplitter*)(*splitter))->read_filter = self->read_filter;
+            ((ReadFilterSplitter*)(*splitter))->keys[EReadFilterSplitter_pass].key = "pass";
+            ((ReadFilterSplitter*)(*splitter))->keys[EReadFilterSplitter_reject].key = "reject";
+            ((ReadFilterSplitter*)(*splitter))->keys[EReadFilterSplitter_criteria].key = "criteria";
+            ((ReadFilterSplitter*)(*splitter))->keys[EReadFilterSplitter_redacted].key = "redacted";
+            ((ReadFilterSplitter*)(*splitter))->keys[EReadFilterSplitter_unknown].key = "unknown";
         }
     }
     return rc;
 }
 
-
-static void ReadFilterSplitterFactory_Release( const SRASplitterFactory* cself )
+static
+void ReadFilterSplitterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        ReadFilterSplitterFactory* self = ( ReadFilterSplitterFactory* )cself;
-        SRAColumnRelease( self->col_rdf );
+    if( cself != NULL ) {
+        ReadFilterSplitterFactory* self = (ReadFilterSplitterFactory*)cself;
+        SRAColumnRelease(self->col_rdf);
     }
 }
 
-
-static rc_t ReadFilterSplitterFactory_Make( const SRASplitterFactory** cself,
-            const SRATable* table, SRAReadFilter read_filter )
+static
+rc_t ReadFilterSplitterFactory_Make(const SRASplitterFactory** cself, const SRATable* table, SRAReadFilter read_filter)
 {
     rc_t rc = 0;
     ReadFilterSplitterFactory* obj = NULL;
 
-    if ( cself == NULL || table == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcAllocating, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterRead, sizeof( *obj ),
-                                        ReadFilterSplitterFactory_Init,
-                                        ReadFilterSplitterFactory_NewObj,
-                                        ReadFilterSplitterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( ReadFilterSplitterFactory* ) *cself;
-            obj->table = table;
-            obj->read_filter = read_filter;
-        }
+    if( cself == NULL || table == NULL ) {
+        rc = RC(rcSRA, rcType, rcAllocating, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterRead, sizeof(*obj),
+                                             ReadFilterSplitterFactory_Init,
+                                             ReadFilterSplitterFactory_NewObj,
+                                             ReadFilterSplitterFactory_Release)) == 0 ) {
+        obj = (ReadFilterSplitterFactory*)*cself;
+        obj->table = table;
+        obj->read_filter = read_filter;
     }
     return rc;
 }
 
-
 /* ### SPOT_GROUP splitter/filter ##################################################### */
 
-typedef struct SpotGroupSplitter_struct
-{
-    char cur_key[ 256 ];
+typedef struct SpotGroupSplitter_struct {
+    char cur_key[256];
     const SRAColumn* col;
     bool split;
     char* const* spot_group;
 } SpotGroupSplitter;
 
-
-static rc_t SpotGroupSplitter_GetKey( const SRASplitter* cself,
-            const char** key, spotid_t spot, readmask_t* readmask )
+static
+rc_t SpotGroupSplitter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    SpotGroupSplitter* self = ( SpotGroupSplitter* )cself;
+    SpotGroupSplitter* self = (SpotGroupSplitter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcSRA, rcNode, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcSRA, rcNode, rcExecuting, rcParam, rcNull);
+    } else {
         *key = self->cur_key;
-        if ( self->col != NULL )
-        {
+        if( self->col != NULL ) {
             const char* g = NULL;
             bitsz_t o = 0, sz = 0;
-            rc = SRAColumnRead( self->col, spot, (const void **)&g, &o, &sz );
-            if ( rc == 0 )
-            {
+            if( (rc = SRAColumnRead(self->col, spot, (const void **)&g, &o, &sz)) == 0 ) {
                 sz /= 8;
                 /* truncate trailing \0 */
-                while ( sz > 0 && g[ sz - 1 ] == '\0' )
-                {
+                while( sz > 0 && g[sz - 1] == '\0' ) {
                     sz--;
                 }
-                if ( sz > sizeof( self->cur_key ) - 1 )
-                {
-                    rc = RC( rcSRA, rcNode, rcExecuting, rcBuffer, rcInsufficient );
-                }
-                else
-                {
+                if( sz > sizeof(self->cur_key) - 1 ) {
+                    rc = RC(rcSRA, rcNode, rcExecuting, rcBuffer, rcInsufficient);
+                } else {
                     int i;
                     bool found = false;
-                    memcpy( self->cur_key, g, sz );
-                    self->cur_key[ sz ] = '\0';
-                    for ( i = 0; self->spot_group[ i ] != NULL; i++ )
-                    {
-                        if ( strcmp( self->cur_key, self->spot_group[ i ] ) == 0 )
-                        {
+                    memcpy(self->cur_key, g, sz);
+                    self->cur_key[sz] = '\0';
+                    for(i = 0; self->spot_group[i] != NULL; i++) {
+                        if( strcmp(self->cur_key, self->spot_group[i]) == 0 ) {
                             found = true;
                             break;
                         }
                     }
-                    if ( self->spot_group[ 0 ] != NULL && !found )
-                    {
+                    if( self->spot_group[0] != NULL && !found ) {
                         /* list not empty and not in list -> skip */
                         *key = NULL;
-                    }
-                    else if ( !self->split )
-                    {
+                    } else if( !self->split ) {
                         *key = "";
                     }
                 }
@@ -464,37 +354,27 @@ static rc_t SpotGroupSplitter_GetKey( const SRASplitter* cself,
     return rc;
 }
 
-
-typedef struct SpotGroupSplitterFactory_struct
-{
+typedef struct SpotGroupSplitterFactory_struct {
     const SRATable* table;
     const SRAColumn* col;
     bool split;
     char* const* spot_group;
 } SpotGroupSplitterFactory;
 
-
-static rc_t SpotGroupSplitterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t SpotGroupSplitterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    SpotGroupSplitterFactory* self = ( SpotGroupSplitterFactory* )cself;
+    SpotGroupSplitterFactory* self = (SpotGroupSplitterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRATableOpenColumnRead( self->table, &self->col, "SPOT_GROUP", vdb_ascii_t );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) == rcNotFound )
-            {
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        if( (rc = SRATableOpenColumnRead(self->table, &self->col, "SPOT_GROUP", vdb_ascii_t)) != 0 ) {
+            if( GetRCState(rc) == rcNotFound ) {
                 LOGMSG(klogWarn, "Column SPOT_GROUP was not found, param ignored");
                 rc = 0;
-            }
-            else if ( GetRCState( rc ) == rcExists )
-            {
+            } else if( GetRCState(rc) == rcExists ) {
                 rc = 0;
             }
         }
@@ -502,223 +382,187 @@ static rc_t SpotGroupSplitterFactory_Init( const SRASplitterFactory* cself )
     return rc;
 }
 
-
-static rc_t SpotGroupSplitterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t SpotGroupSplitterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    SpotGroupSplitterFactory* self = ( SpotGroupSplitterFactory* )cself;
+    SpotGroupSplitterFactory* self = (SpotGroupSplitterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( SpotGroupSplitter ),
-                               SpotGroupSplitter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (SpotGroupSplitter*)(*splitter) )->col = self->col;
-            ( (SpotGroupSplitter*)(*splitter) )->split = self->split;
-            ( (SpotGroupSplitter*)(*splitter) )->spot_group = self->spot_group;
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(SpotGroupSplitter), SpotGroupSplitter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((SpotGroupSplitter*)(*splitter))->col = self->col;
+            ((SpotGroupSplitter*)(*splitter))->split = self->split;
+            ((SpotGroupSplitter*)(*splitter))->spot_group = self->spot_group;
         }
     }
     return rc;
 }
 
-
-static void SpotGroupSplitterFactory_Release( const SRASplitterFactory* cself )
+static
+void SpotGroupSplitterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        SpotGroupSplitterFactory* self = ( SpotGroupSplitterFactory* )cself;
-        SRAColumnRelease( self->col );
+    if( cself != NULL ) {
+        SpotGroupSplitterFactory* self = (SpotGroupSplitterFactory*)cself;
+        SRAColumnRelease(self->col);
     }
 }
 
-
-static rc_t SpotGroupSplitterFactory_Make( const SRASplitterFactory** cself,
-            const SRATable* table, bool split, char* const spot_group[] )
+static
+rc_t SpotGroupSplitterFactory_Make(const SRASplitterFactory** cself, const SRATable* table, bool split, char* const spot_group[])
 {
     rc_t rc = 0;
     SpotGroupSplitterFactory* obj = NULL;
 
-    if ( cself == NULL || table == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcAllocating, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
+    if( cself == NULL || table == NULL ) {
+        rc = RC(rcSRA, rcType, rcAllocating, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
                                              SpotGroupSplitterFactory_Init,
                                              SpotGroupSplitterFactory_NewObj,
-                                             SpotGroupSplitterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( SpotGroupSplitterFactory* ) *cself;
-            obj->table = table;
-            obj->split = split;
-            obj->spot_group = spot_group;
-        }
+                                             SpotGroupSplitterFactory_Release)) == 0 ) {
+        obj = (SpotGroupSplitterFactory*)*cself;
+        obj->table = table;
+        obj->split = split;
+        obj->spot_group = spot_group;
     }
     return rc;
 }
 
 /* ### Common dumper code ##################################################### */
 
-
-static rc_t SRADumper_DumpRun( const SRATable* table,
-        spotid_t minSpotId, spotid_t maxSpotId, const SRASplitterFactory* factories )
+static
+rc_t SRADumper_DumpRun(const SRATable* table, spotid_t minSpotId, spotid_t maxSpotId, const SRASplitterFactory* factories)
 {
     rc_t rc = 0, rcr = 0;
     spotid_t spot = 0;
-    make_readmask( readmask );
+    make_readmask(readmask);
     const SRASplitter* root_splitter = NULL;
 
-    rc = SRASplitterFactory_NewObj( factories, &root_splitter );
+    rc = SRASplitterFactory_NewObj(factories, &root_splitter);
 
-    for( spot = minSpotId; rc == 0 && spot <= maxSpotId; spot++ )
-    {
-        reset_readmask( readmask );
-        rc = SRASplitter_AddSpot( root_splitter, spot, readmask );
+    for(spot = minSpotId; rc == 0 && spot <= maxSpotId; spot++ ) {
+        reset_readmask(readmask);
+        rc = SRASplitter_AddSpot(root_splitter, spot, readmask);
         rc = rc ? rc : Quitting();
     }
-    rcr = SRASplitter_Release( root_splitter );
+    rcr = SRASplitter_Release(root_splitter);
 
     return rc ? rc : rcr;
 }
 
-
 static const SRADumperFmt_Arg KMainArgs[] =
-{
-    { NULL, "no-user-settings", NULL, {"Internal Only", NULL}},
-    { "A", "accession", "accession", {"Replaces accession derived from <path> in filename(s) and deflines (only for single table dump)", NULL}},
-    { "O", "outdir", "path", {"Output directory, default is working directory ( '.' )", NULL}},
-    { "Z", "stdout", NULL, {"Output to stdout, all split data become joined into single stream", NULL}},
-    { NULL, "gzip", NULL, {"Compress output using gzip", NULL}},
-    { NULL, "bzip2", NULL, {"Compress output using bzip2", NULL}},
-    { "N", "minSpotId", "rowid", {"Minimum spot id", NULL}},
-    { "X", "maxSpotId", "rowid", {"Maximum spot id", NULL}},
-    { "G", "spot-group", NULL, {"Split into files by SPOT_GROUP (member name)", NULL}},
-    { NULL, "spot-groups", "[list]", {"Filter by SPOT_GROUP (member): name[,...]", NULL}},
-    { "R", "read-filter", "[filter]", {"Split into files by READ_FILTER value",
-                                      "optionally filter by a value: pass|reject|criteria|redacted", NULL}},
-    { "T", "group-in-dirs", NULL, {"Split into subdirectories instead of files", NULL}},
-    { "K", "keep-empty-files", NULL, {"Do not delete empty files", NULL}},
-    { NULL, "table", "table-name", {"Table name within cSRA object, default is \"SEQUENCE\"", NULL}},
-
-    { "h", "help", NULL, {"Output a brief explanation of program usage", NULL}},
-    { "V", "version", NULL, {"Display the version of the program", NULL}},
-
-    { "L", "log-level", "level", {"Logging level as number or enum string",
-                                 "One of (fatal|sys|int|err|warn|info) or (0-5)",
-                                 "Current/default is warn", NULL}},
-    { "v", "verbose", NULL, {"Increase the verbosity level of the program",
-                            "Use multiple times for more verbosity", NULL}},
-    { NULL, OPTION_REPORT, NULL, {
-"Control program execution environment report generation (if implemented).",
-"One of (never|error|always). Default is error",
-                      NULL}},
+    {
+        {"A", "accession", "accession", {"Replaces accession derived from <path> in filename(s) and deflines (only for single table dump)", NULL}},
+        {"O", "outdir", "path", {"Output directory, default is working directory ( '.' )", NULL}},
+        {"Z", "stdout", NULL, {"Output to stdout, all split data become joined into single stream", NULL}},
+        {NULL, "gzip", NULL, {"Compress output using gzip", NULL}},
+        {NULL, "bzip2", NULL, {"Compress output using bzip2", NULL}},
+        {"N", "minSpotId", "rowid", {"Minimum spot id", NULL}},
+        {"X", "maxSpotId", "rowid", {"Maximum spot id", NULL}},
+        {"G", "spot-group", NULL, {"Split into files by SPOT_GROUP (member name)", NULL}},
+        {NULL, "spot-groups", "[list]", {"Filter by SPOT_GROUP (member): name[,...]", NULL}},
+        {"R", "read-filter", "[filter]", {"Split into files by READ_FILTER value",
+                                          "optionally filter by a value: pass|reject|criteria|redacted", NULL}},
+        {"T", "group-in-dirs", NULL, {"Split into subdirectories instead of files", NULL}},
+        {"K", "keep-empty-files", NULL, {"Do not delete empty files", NULL}},
+        {NULL, "table", "table-name", {"[NEW] Table name within cSRA object, default is \"SEQUENCE\"", NULL}},
+
+        {"h", "help", NULL, {"Output a brief explanation of program usage", NULL}},
+        {"V", "version", NULL, {"Display the version of the program", NULL}},
+
+        {"L", "log-level", "level", {"Logging level as number or enum string",
+                                     "One of (fatal|sys|int|err|warn|info) or (0-5)",
+                                     "Current/default is warn", NULL}},
+        {"v", "verbose", NULL, {"Increase the verbosity level of the program",
+                                "Use multiple times for more verbosity", NULL}},
 #if _DEBUGGING
         {"+", "debug", "Module[-Flag]", {"Turn on debug output for module",
                                          "All flags if not specified", NULL}},
 #endif
 
-    { NULL, NULL, NULL, {NULL}} /* terminator */
-};
-
+        {NULL, NULL, NULL, {NULL}} /* terminator */
+    };
 
 rc_t CC Usage ( const Args * args )
 {
-    return fasta_dump_usage ( args );
+    const char * progname;
+    const char * fullname;
+    rc_t rc;
+    ver_t version;
+
+    fullname = "core-dumper";
+    progname = fullname;
+    version = KAppVersion();
+    rc = ArgsProgram (args, &fullname, &progname);
+
+    OUTMSG (( "\nUsage:\n" ));
+    return 0;
 }
 
-
-void CC SRADumper_PrintArg( const SRADumperFmt_Arg* arg )
+void CC SRADumper_PrintArg(const SRADumperFmt_Arg* arg)
 {
-    /* ??? */
+    
 }
 
-
-static void CoreUsage( const char* prog, const SRADumperFmt* fmt, bool brief, int exit_status )
+static
+void CoreUsage(const char* prog, const SRADumperFmt* fmt, bool brief)
 {
-    OUTMSG(( "\n"
-             "Usage:\n"
-             "  %s [options] <path [path...]>\n"
-             "  %s [options] [ -A ] <accession>\n"
-             "\n", prog, prog));
-
-    if ( !brief )
-    {
-        if ( fmt->usage )
-        {
-            rc_t rc = fmt->usage( fmt, KMainArgs, 1 );
-            if ( rc != 0 )
-            {
+    OUTMSG(("\n"
+            "Usage:\n"
+            "  %s [options] [ -A ] <accession>\n"
+            "  %s [options] <path [path...]>\n"
+            "\n", prog, prog));
+
+    if( !brief ) {
+        if( fmt->usage ) {
+            rc_t rc = fmt->usage(fmt, KMainArgs);
+            if( rc != 0 ) {
                 LOGERR(klogErr, rc, "Usage print failed");
             }
-        }
-        else
-        {
+        } else {
             int k, i;
-            const SRADumperFmt_Arg* d[ 2 ] = { KMainArgs, NULL };
-
-            d[ 1 ] = fmt->arg_desc;
-            for ( k = 0; k < ( sizeof( d ) / sizeof( d[0] ) ); k++ )
-            {
-                for ( i = 1;
-                      d[k] != NULL && ( d[ k ][ i ].abbr != NULL || d[ k ][ i ].full != NULL );
-                      ++ i )
-                {
-                    if ( ( !fmt->gzip && strcmp( d[ k ][ i ].full, "gzip" ) == 0 ) ||
-                         ( !fmt->bzip2 && strcmp (d[ k ][ i ].full, "bzip2" ) == 0 ) )
-                    {
+            const SRADumperFmt_Arg* d[2] = { KMainArgs, NULL };
+            d[1] = fmt->arg_desc;
+            for( k = 0; k < sizeof(d) / sizeof(d[0]); k++) {
+                for( i = 0; d[k] != NULL && (d[k][i].abbr != NULL || d[k][i].full != NULL); i++) {
+                    if( (!fmt->gzip && strcmp(d[k][i].full, "gzip") == 0) ||
+                        (!fmt->bzip2 && strcmp(d[k][i].full, "bzip2") == 0) ) {
                         continue;
                     }
-                    if ( k > 0 && i == 0 )
-                    {
+                    if( k > 0 && i == 0 ) {
                         OUTMSG(("\nFormat options:\n\n"));
                     }
-                    HelpOptionLine( d[ k ][ i ].abbr, d[ k ][ i ].full,
-                                    d[ k ][ i ].param, (const char**)( d[ k ][ i ].descr ) );
-                    if ( k == 0 && i == 0 )
-                    {
-                        OUTMSG(( "\nOptions:\n\n" ));
+                    HelpOptionLine(d[k][i].abbr, d[k][i].full, d[k][i].param, (const char**)(d[k][i].descr));
+                    if( k == 0 && i == 0 ) {
+                        OUTMSG(("\nOptions:\n\n"));
                     }
                 }
             }
         }
+    } else {
+        OUTMSG(("Use option --help for more information\n"));
     }
-    else
-    {
-        OUTMSG(( "Use option --help for more information\n" ));
-    }
-    HelpVersion( prog, KAppVersion() );
-    exit( exit_status );
+    HelpVersion(prog, KAppVersion());
+    exit(rcArgv);
 }
 
-
-static rc_t SRADumper_ArgsValidate( const char* prog, const SRADumperFmt* fmt )
+static
+rc_t SRADumper_ArgsValidate(const char* prog, const SRADumperFmt* fmt)
 {
     rc_t rc = 0;
     int k, i;
 
     /* set default log level */
     const char* default_log_level = "warn";
-    rc = LogLevelSet( default_log_level );
-    if ( rc != 0 )
-    {
-        PLOGERR( klogErr, ( klogErr, rc, "default log level to '$(lvl)'",
-                            PLOG_S( lvl ), default_log_level ) );
-        CoreUsage( prog, fmt, true, EXIT_FAILURE );
-    }
-    for ( i = 0; KMainArgs[ i ].abbr != NULL; i++ )
-    {
-        for ( k = 0; fmt->arg_desc != NULL && fmt->arg_desc[ k ].abbr != NULL; k++ )
-        {
-            if ( strcmp( fmt->arg_desc[ k ].abbr, KMainArgs[ i ].abbr ) == 0 ||
-                 ( fmt->arg_desc[ k ].full != NULL && strcmp( fmt->arg_desc[ k ].full, KMainArgs[ i ].full ) == 0 ) )
-            {
+    if( (rc = LogLevelSet(default_log_level)) != 0 ) {
+        PLOGERR(klogErr, (klogErr, rc, "default log level to '$(lvl)'", PLOG_S(lvl), default_log_level));
+        CoreUsage(prog, fmt, true);
+    }
+    for( i = 0; KMainArgs[i].abbr != NULL; i++) {
+        for( k = 0; fmt->arg_desc != NULL && fmt->arg_desc[k].abbr != NULL; k++) {
+            if( strcmp(fmt->arg_desc[k].abbr, KMainArgs[i].abbr) == 0 ||
+                (fmt->arg_desc[k].full != NULL && strcmp(fmt->arg_desc[k].full, KMainArgs[i].full) == 0) ) {
                 rc = RC(rcExe, rcArgv, rcValidating, rcParam, rcDuplicate);
             }
         }
@@ -726,122 +570,60 @@ static rc_t SRADumper_ArgsValidate( const char* prog, const SRADumperFmt* fmt )
     return rc;
 }
 
-
-bool CC SRADumper_GetArg( const SRADumperFmt* fmt, char const* const abbr, char const* const full,
-                          int* i, int argc, char *argv[], const char** value )
+bool CC SRADumper_GetArg(const SRADumperFmt* fmt, char const* const abbr, char const* const full,
+                         int* i, int argc, char *argv[], const char** value)
 {
     rc_t rc = 0;
     const char* arg = argv[*i];
-    while ( *arg == '-' && *arg != '\0')
-    {
+    while(*arg == '-' && *arg != '\0') {
         arg++;
     }
-    if ( abbr != NULL && strcmp(arg, abbr) == 0 )
-    {
-        SRA_DUMP_DBG( 9, ( "GetArg key: '%s'\n", arg ) );
-        arg = arg + strlen( abbr );
-        if ( value != NULL && arg[0] == '\0' && (*i + 1) < argc )
-        {
+    if( abbr != NULL && strcmp(arg, abbr) == 0 ) {
+        SRA_DUMP_DBG(9, ("GetArg key: '%s'\n", arg));
+        arg = arg + strlen(abbr);
+        if( value != NULL && arg[0] == '\0' && (*i + 1) < argc ) {
             arg = NULL;
-            if ( argv[ *i + 1 ][ 0 ] != '-' )
-            {
+            if( argv[*i + 1][0] != '-' ) {
                 /* advance only if next is not an option with '-' */
                 *i = *i + 1;
-                arg = argv[ *i ];
+                arg = argv[*i];
             }
-        }
-        else
-        {
+        } else {
             arg = NULL;
         }
-    }
-    else if ( full != NULL && strcmp( arg, full ) == 0 )
-    {
-        SRA_DUMP_DBG( 9, ( "GetArg key: '%s'\n", arg ) );
+    } else if( full != NULL && strcmp(arg, full) == 0 ) {
+        SRA_DUMP_DBG(9, ("GetArg key: '%s'\n", arg));
         arg = NULL;
-        if ( value != NULL && ( *i + 1 ) < argc )
-        {
-            if ( argv[ *i + 1 ][ 0 ] != '-' )
-            {
+        if( value != NULL && (*i + 1) < argc ) {
+            if( argv[*i + 1][0] != '-' ) {
                 /* advance only if next is not an option with '-' */
                 *i = *i + 1;
-                arg = argv[ *i ];
+                arg = argv[*i];
             }
         }
-    }
-    else
-    {
+    } else {
         return false;
     }
 
-    SRA_DUMP_DBG( 9, ( "GetArg val: '%s'\n", arg ) );
-    if ( value == NULL && arg != NULL )
-    {
-        rc = RC( rcApp, rcArgv, rcAccessing, rcParam, rcUnexpected );
-    }
-    else if ( value != NULL )
-    {
-        if ( arg == NULL && *value == '\0' )
-        {
-            rc = RC( rcApp, rcArgv, rcAccessing, rcParam, rcNotFound );
-        }
-        else if ( arg != NULL && arg[0] != '\0' )
-        {
+    SRA_DUMP_DBG(9, ("GetArg val: '%s'\n", arg));
+    if( value == NULL && arg != NULL ) {
+        rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcUnexpected);
+    } else if( value != NULL ) {
+        if( arg == NULL && *value == '\0' ) {
+            rc = RC(rcApp, rcArgv, rcAccessing, rcParam, rcNotFound);
+        } else if( arg != NULL && arg[0] != '\0' ) {
             *value = arg;
         }
     }
-    if ( rc != 0 )
-    {
-        PLOGERR( klogErr, ( klogErr, rc, "$(a0)$(a1)$(a2)$(f0)$(f1): $(v)",
+    if( rc != 0 ) {
+        PLOGERR(klogErr, (klogErr, rc, "$(a0)$(a1)$(a2)$(f0)$(f1): $(v)",
             PLOG_3(PLOG_S(a0),PLOG_S(a1),PLOG_S(a2))","PLOG_3(PLOG_S(f0),PLOG_S(f1),PLOG_S(v)),
             abbr ? "-": "", abbr ? abbr : "", abbr ? ", " : "", full ? "--" : "", full ? full : "", arg));
-        CoreUsage( argv[ 0 ], fmt, true, EXIT_FAILURE );
+        CoreUsage(argv[0], fmt, true);
     }
     return rc == 0 ? true : false;
 }
 
-
-static bool reportToUserSffFromNot454Run(rc_t rc, char* argv0, bool silent) {
-    assert( argv0 );
-    if ( rc == SILENT_RC( rcSRA, rcFormatter, rcConstructing,
-        rcData, rcUnsupported ) )
-    {
-        const char* name = strpbrk( argv0, "/\\" );
-        const char* last_name = name;
-        if ( last_name )
-        {
-        ++last_name;
-        }
-        while ( name )
-        {
-            name = strpbrk( last_name, "/\\" );
-            if ( name )
-            {
-                last_name = name;
-                if ( last_name )
-                {
-                    ++last_name;
-                }
-            }
-        }
-        name = last_name ? last_name : argv0;
-        if ( strcmp( "sff-dump", name ) == 0 )
-        {
-            if (!silent) {
-              OUTMSG((
-               "This run cannot be transformed into SFF format.\n"
-               "Conversion cannot be completed because the source lacks\n"
-               "one or more of the data series required by the SFF format.\n"
-               "You should be able to dump it as FASTQ by running fastq-dump.\n"
-               "\n"));
-            }
-            return true;
-        }
-    }
-    return false;
-}
-
-
 /*******************************************************************************
  * KMain - defined for use with kapp library
  *******************************************************************************/
@@ -876,249 +658,146 @@ rc_t CC KMain ( int argc, char* argv[] )
     bool read_filter_on = false;
     SRAReadFilter read_filter = 0xFF;
 
-    /* for the fasta-ouput of fastq-dump: branch out completely of 'common' code */
-    if ( fasta_dump_requested( argc, argv ) )
-    {
-        return fasta_dump( argc, argv );
-    }
-
-    /* Prepare for the worst: report this information after disaster */
-    ReportBuildDate ( __DATE__ );
-
-    memset( &fmt, 0, sizeof( fmt ) );
-    rc = SRADumper_Init( &fmt );
-    if ( rc != 0 )
-    {
+    memset(&fmt, 0, sizeof(fmt));
+    if( (rc = SRADumper_Init(&fmt)) != 0 ) {
         LOGERR(klogErr, rc, "formatter initialization");
         return 100;
-    }
-    else if ( fmt.get_factory == NULL )
-    {
-        rc = RC( rcExe, rcFormatter, rcValidating, rcInterface, rcNull );
-        LOGERR( klogErr, rc, "formatter factory" );
+    } else if( fmt.get_factory == NULL ) {
+        rc = RC(rcExe, rcFormatter, rcValidating, rcInterface, rcNull);
+        LOGERR(klogErr, rc, "formatter factory");
         return 101;
+    } else if( (rc = SRADumper_ArgsValidate(argv[0], &fmt)) != 0 ) {
+        LOGERR(klogErr, rc, "formatter args list");
+        return 102;
     }
-    else
-    {
-        rc = SRADumper_ArgsValidate( argv[0], &fmt );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "formatter args list" );
-            return 102;
-        }
-    }
-
-    if ( argc < 2 )
-    {
-        CoreUsage( argv[0], &fmt, true, EXIT_FAILURE );
+    if ( argc < 2 ) {
+        CoreUsage(argv[0], &fmt, true);
         return 0;
     }
-
-    for ( i = 1; i < argc; i++ )
+    for(i = 1; i < argc; i++)
     {
-        arg = argv[ i ];
-        if ( arg[ 0 ] != '-' )
-        {
+        arg = argv[i];
+        if( arg[0] != '-' ) {
             uint32_t k;
-            for ( k = 0; k < table_path_qty; k++ )
-            {
-                if ( strcmp( arg, table_path[ k ] ) == 0 )
-                {
+            for(k = 0; k < table_path_qty; k++) {
+                if( strcmp(arg, table_path[k]) == 0 ) {
                     break;
                 }
             }
-            if ( k >= table_path_qty )
-            {
-                if ( ( table_path_qty + 1 ) >= ( sizeof( table_path ) / sizeof( table_path[ 0 ] ) ) )
-                {
-                    rc = RC( rcExe, rcArgv, rcReading, rcBuffer, rcInsufficient );
+            if( k >= table_path_qty ) {
+                if( (table_path_qty + 1) >= (sizeof(table_path) / sizeof(table_path[0])) ) {
+                    rc = RC(rcExe, rcArgv, rcReading, rcBuffer, rcInsufficient);
                     goto Catch;
                 }
-                table_path[ table_path_qty++ ] = arg;
+                table_path[table_path_qty++] = arg;
             }
             continue;
         }
         arg = NULL;
-        if ( SRADumper_GetArg( &fmt, "L", "log-level", &i, argc, argv, &arg ) )
-        {
-            rc = LogLevelSet( arg );
-            if ( rc != 0 )
-            {
-                PLOGERR( klogErr, ( klogErr, rc, "log level $(lvl)", PLOG_S( lvl ), arg ) );
+        if( SRADumper_GetArg(&fmt, "L", "log-level", &i, argc, argv, &arg) ) {
+            if( (rc = LogLevelSet(arg)) != 0 ) {
+                PLOGERR(klogErr, (klogErr, rc, "log level $(lvl)", PLOG_S(lvl), arg));
                 goto Catch;
             }
-        }
-        else if ( SRADumper_GetArg( &fmt, NULL, OPTION_REPORT, &i, argc, argv, &arg ) )
-        {
-        }
-        else if ( SRADumper_GetArg( &fmt, "+", "debug", &i, argc, argv, &arg ) )
-        {
+        } else if( SRADumper_GetArg(&fmt, "+", "debug", &i, argc, argv, &arg) ) {
 #if _DEBUGGING
-            rc = KDbgSetString( arg );
-            if ( rc != 0 )
-            {
-                PLOGERR( klogErr, ( klogErr, rc, "debug level $(lvl)", PLOG_S( lvl ), arg ) );
+            if( (rc = KDbgSetString(arg)) != 0 ) {
+                PLOGERR(klogErr, (klogErr, rc, "debug level $(lvl)", PLOG_S(lvl), arg));
                 goto Catch;
             }
 #endif
-        }
-        else if ( SRADumper_GetArg( &fmt, "H", "help", &i, argc, argv, NULL ) ||
-                  SRADumper_GetArg( &fmt, "?", "h", &i, argc, argv, NULL ) )
-        {
-            CoreUsage( argv[ 0 ], &fmt, false, EXIT_SUCCESS );
+        } else if(SRADumper_GetArg(&fmt, "H", "help", &i, argc, argv, NULL) ||
+                  SRADumper_GetArg(&fmt, "?", "h", &i, argc, argv, NULL) ) {
+            CoreUsage(argv[0], &fmt, false);
 
-        }
-        else if ( SRADumper_GetArg( &fmt, "V", "version", &i, argc, argv, NULL ) )
-        {
-            HelpVersion ( argv[ 0 ], KAppVersion() );
+        } else if(SRADumper_GetArg(&fmt, "V", "version", &i, argc, argv, NULL) ) {
+            HelpVersion (argv[0], KAppVersion());
             return 0;
-        }
-        else if ( SRADumper_GetArg( &fmt, "v", NULL, &i, argc, argv, NULL ) )
-        {
-            KStsLevelAdjust( 1 );
+        } else if(SRADumper_GetArg(&fmt, "v", NULL, &i, argc, argv, NULL) ) {
+            KStsLevelAdjust(1);
 
-        }
-        else if ( SRADumper_GetArg( &fmt, "D", "table-path", &i, argc, argv, &D_option ) )
-        {
-            LOGMSG( klogErr, "option -D is deprecated, see --help" );
-        }
-        else if ( SRADumper_GetArg( &fmt, "P", "path", &i, argc, argv, &P_option ) )
-        {
-            LOGMSG( klogErr, "option -P is deprecated, see --help" );
+        } else if( SRADumper_GetArg(&fmt, "D", "table-path", &i, argc, argv, &D_option) ) {
+            LOGMSG(klogErr, "option -D is deprecated, see --help");
+        } else if( SRADumper_GetArg(&fmt, "P", "path", &i, argc, argv, &P_option) ) {
+            LOGMSG(klogErr, "option -P is deprecated, see --help");
 
-        }
-        else if ( SRADumper_GetArg( &fmt, "A", "accession", &i, argc, argv, &accession ) )
-        {
-        }
-        else if ( SRADumper_GetArg( &fmt, "O", "outdir", &i, argc, argv, &outdir ) )
-        {
-        }
-        else if ( SRADumper_GetArg( &fmt, "Z", "stdout", &i, argc, argv, NULL ) )
-        {
+        } else if( SRADumper_GetArg(&fmt, "A", "accession", &i, argc, argv, &accession) ) {
+        } else if( SRADumper_GetArg(&fmt, "O", "outdir", &i, argc, argv, &outdir) ) {
+        } else if( SRADumper_GetArg(&fmt, "Z", "stdout", &i, argc, argv, NULL) ) {
             to_stdout = true;
-        }
-        else if ( fmt.gzip && SRADumper_GetArg( &fmt, NULL, "gzip", &i, argc, argv, NULL ) )
-        {
+        } else if( fmt.gzip && SRADumper_GetArg(&fmt, NULL, "gzip", &i, argc, argv, NULL) ) {
             do_gzip = true;
-        }
-        else if ( fmt.bzip2 && SRADumper_GetArg( &fmt, NULL, "bzip2", &i, argc, argv, NULL ) )
-        {
+        } else if( fmt.bzip2 && SRADumper_GetArg(&fmt, NULL, "bzip2", &i, argc, argv, NULL) ) {
             do_bzip2 = true;
-        }
-        else if ( SRADumper_GetArg( &fmt, NULL, "table", &i, argc, argv, &table_name ) )
-        {
-        }
-        else if ( SRADumper_GetArg( &fmt, "N", "minSpotId", &i, argc, argv, &arg ) )
-        {
-            minSpotId = AsciiToU32( arg, NULL, NULL );
-        }
-        else if ( SRADumper_GetArg( &fmt, "X", "maxSpotId", &i, argc, argv, &arg ) )
-        {
-            maxSpotId = AsciiToU32( arg, NULL, NULL );
-        }
-        else if ( SRADumper_GetArg( &fmt, "G", "spot-group", &i, argc, argv, NULL ) )
-        {
+        } else if( SRADumper_GetArg(&fmt, NULL, "table", &i, argc, argv, &table_name) ) {
+        } else if( SRADumper_GetArg(&fmt, "N", "minSpotId", &i, argc, argv, &arg) ) {
+            minSpotId = AsciiToU32(arg, NULL, NULL);
+        } else if( SRADumper_GetArg(&fmt, "X", "maxSpotId", &i, argc, argv, &arg) ) {
+            maxSpotId = AsciiToU32(arg, NULL, NULL);
+        } else if( SRADumper_GetArg(&fmt, "G", "spot-group", &i, argc, argv, NULL) ) {
             spot_group_on = true;
-        }
-        else if ( SRADumper_GetArg( &fmt, NULL, "spot-groups", &i, argc, argv, NULL ) )
-        {
-            if ( i + 1 < argc && argv[ i + 1 ][ 0 ] != '-' )
-            {
+        } else if( SRADumper_GetArg(&fmt, NULL, "spot-groups", &i, argc, argv, NULL) ) {
+            if( i + 1 < argc && argv[i + 1][0] != '-' ) {
                 int f = 0, t = 0;
                 i++;
-                while ( argv[ i ][ t ] != '\0' )
-                {
-                    if ( argv[ i ][ t ] == ',' )
-                    {
-                        if ( t - f > 0 )
-                        {
-                            spot_group[ spot_groups++ ] = string_dup( &argv[ i ][ f ], t - f );
+                while( argv[i][t] != '\0' ) {
+                    if( argv[i][t] == ',' ) {
+                        if( t - f > 0 ) {
+                            spot_group[spot_groups++] = strndup(&argv[i][f], t - f);
                         }
                         f = t + 1;
                     }
                     t++;
                 }
-                if ( t - f > 0 )
-                {
-                    spot_group[ spot_groups++ ] = string_dup( &argv[ i ][ f ], t - f );
+                if( t - f > 0 ) {
+                    spot_group[spot_groups++] = strndup(&argv[i][f], t - f);
                 }
-                if ( spot_groups < 1 )
-                {
-                    rc = RC( rcApp, rcArgv, rcReading, rcParam, rcEmpty );
-                    PLOGERR( klogErr, ( klogErr, rc, "$(p)", PLOG_S( p ), argv[ i - 1 ] ) );
-                    CoreUsage( argv[ 0 ], &fmt, false, EXIT_FAILURE );
+                if( spot_groups < 1 ) {
+                    rc = RC(rcApp, rcArgv, rcReading, rcParam, rcEmpty);
+                    PLOGERR(klogErr, (klogErr, rc, "$(p)", PLOG_S(p), argv[i - 1]));
+                    CoreUsage(argv[0], &fmt, false);
                 }
-                spot_group[ spot_groups ] = NULL;
+                spot_group[spot_groups] = NULL;
             }
-        }
-        else if ( SRADumper_GetArg( &fmt, "R", "read-filter", &i, argc, argv, NULL ) )
-        {
+        } else if( SRADumper_GetArg(&fmt, "R", "read-filter", &i, argc, argv, NULL) ) {
             read_filter_on = true;
-            if ( i + 1 < argc && argv[ i + 1 ][ 0 ] != '-' )
-            {
+            if( i + 1 < argc && argv[i + 1][0] != '-' ) {
                 i++;
-                if ( read_filter != 0xFF )
-                {
-                    rc = RC( rcApp, rcArgv, rcReading, rcParam, rcDuplicate );
-                    PLOGERR( klogErr, ( klogErr, rc, "$(p): $(o)",
-                             PLOG_2( PLOG_S( p ),PLOG_S( o ) ), argv[ i - 1 ], argv[ i ] ) );
-                    CoreUsage( argv[ 0 ], &fmt, false, EXIT_FAILURE );
+                if( read_filter != 0xFF ) {
+                    rc = RC(rcApp, rcArgv, rcReading, rcParam, rcDuplicate);
+                    PLOGERR(klogErr, (klogErr, rc, "$(p): $(o)", PLOG_2(PLOG_S(p),PLOG_S(o)), argv[i - 1], argv[i]));
+                    CoreUsage(argv[0], &fmt, false);
                 }
-                if ( strcasecmp( argv[ i ], "pass" ) == 0 )
-                {
+                if( strcasecmp(argv[i], "pass") == 0 ) {
                     read_filter = SRA_READ_FILTER_PASS;
-                }
-                else if ( strcasecmp( argv[ i ], "reject" ) == 0 )
-                {
+                } else if( strcasecmp(argv[i], "reject") == 0 ) {
                     read_filter = SRA_READ_FILTER_REJECT;
-                }
-                else if ( strcasecmp( argv[ i ], "criteria" ) == 0 )
-                {
+                } else if( strcasecmp(argv[i], "criteria") == 0 ) {
                     read_filter = SRA_READ_FILTER_CRITERIA;
-                }
-                else if ( strcasecmp( argv[ i ], "redacted" ) == 0 )
-                {
+                } else if( strcasecmp(argv[i], "redacted") == 0 ) {
                     read_filter = SRA_READ_FILTER_REDACTED;
-                }
-                else
-                {
+                } else {
                     /* must be accession */
                     i--;
                 }
             }
-        }
-        else if ( SRADumper_GetArg( &fmt, "T", "group-in-dirs", &i, argc, argv, NULL ) )
-        {
+        } else if( SRADumper_GetArg(&fmt, "T", "group-in-dirs", &i, argc, argv, NULL) ) {
             sub_dir = true;
-        }
-        else if ( SRADumper_GetArg( &fmt, "K", "keep-empty-files", &i, argc, argv, NULL ) )
-        {
+        } else if( SRADumper_GetArg(&fmt, "K", "keep-empty-files", &i, argc, argv, NULL) ) {
             keep_empty = true;
-        }
-        else if ( SRADumper_GetArg( &fmt, NULL, "no-user-settings", &i, argc, argv, NULL ) )
-        {
-             KConfigDisableUserSettings ();
-        }
-        else if ( fmt.add_arg && fmt.add_arg( &fmt, SRADumper_GetArg, &i, argc, argv ) )
-        {
-        }
-        else
-        {
-            rc = RC( rcApp, rcArgv, rcReading, rcParam, rcIncorrect );
-            PLOGERR( klogErr, ( klogErr, rc, "$(p)", PLOG_S( p ), argv[ i ] ) );
-            CoreUsage( argv[ 0 ], &fmt, false, EXIT_FAILURE );
+        } else if( fmt.add_arg && fmt.add_arg(&fmt, SRADumper_GetArg, &i, argc, argv) ) {
+        } else {
+            rc = RC(rcApp, rcArgv, rcReading, rcParam, rcIncorrect);
+            PLOGERR(klogErr, (klogErr, rc, "$(p)", PLOG_S(p), argv[i]));
+            CoreUsage(argv[0], &fmt, false);
         }
     }
-
-    if ( to_stdout )
-    {
-        if ( outdir != NULL || sub_dir || keep_empty ||
-            spot_group_on || ( read_filter_on && read_filter == 0xFF ) )
-        {
-            LOGMSG( klogWarn, "stdout mode is set, some options are ignored" );
+    if( to_stdout ) {
+        if( outdir != NULL || sub_dir || keep_empty ||
+            spot_group_on || (read_filter_on && read_filter == 0xFF) ) {
+            LOGMSG(klogWarn, "stdout mode is set, some options are ignored");
             spot_group_on = false;
-            if ( read_filter == 0xFF )
-            {
+            if( read_filter == 0xFF ) {
                 read_filter_on = false;
             }
         }
@@ -1127,386 +806,197 @@ rc_t CC KMain ( int argc, char* argv[] )
         KLogHandlerSetStdErr();
         ( void ) KDbgHandlerSetStdErr();
     }
-
-    if ( do_gzip && do_bzip2 )
-    {
-        rc = RC( rcApp, rcArgv, rcReading, rcParam, rcAmbiguous );
-        LOGERR( klogErr, rc, "output compression method" );
-        CoreUsage( argv[ 0 ], &fmt, false, EXIT_FAILURE );
+    if( do_gzip && do_bzip2 ) {
+        rc = RC(rcApp, rcArgv, rcReading, rcParam, rcAmbiguous);
+        LOGERR(klogErr, rc, "output compression method");
+        CoreUsage(argv[0], &fmt, false);
     }
-
-    if ( minSpotId > maxSpotId )
-    {
+    if( minSpotId > maxSpotId ) {
         spotid_t temp = maxSpotId;
         maxSpotId = minSpotId;
         minSpotId = temp;
     }
-
-    if ( table_path_qty == 0 )
-    {
-        if ( D_option != NULL && D_option[ 0 ] != '\0' )
-        {
+    if( table_path_qty == 0 ) {
+        if( D_option != NULL && D_option[0] != '\0' ) {
             /* support deprecated '-D' option */
-            table_path[ table_path_qty++ ] = D_option;
-        }
-        else if ( accession == NULL || accession[ 0 ] == '\0' )
-        {
+            table_path[table_path_qty++] = D_option;
+        } else if( accession == NULL || accession[0] == '\0' ) {
             /* must have accession to proceed */
-            rc = RC( rcExe, rcArgv, rcValidating, rcParam, rcEmpty );
-            LOGERR( klogErr, rc, "expected accession" );
+            rc = RC(rcExe, rcArgv, rcValidating, rcParam, rcEmpty);
+            LOGERR(klogErr, rc, "expected accession");
             goto Catch;
-        }
-        else if ( P_option != NULL && P_option[ 0 ] != '\0' )
-        {
+        } else if( P_option != NULL && P_option[0] != '\0' ) {
             /* support deprecated '-P' option */
-            i = snprintf( P_option_buffer, sizeof( P_option_buffer ), "%s/%s", P_option, accession );
-            if ( i < 0 || i >= sizeof( P_option_buffer ) )
-            {
-                rc = RC( rcExe, rcArgv, rcValidating, rcParam, rcExcessive );
-                LOGERR( klogErr, rc, "path too long" );
+            i = snprintf(P_option_buffer, sizeof(P_option_buffer), "%s/%s", P_option, accession);
+            if( i < 0 || i >= sizeof(P_option_buffer) ) {
+                rc = RC(rcExe, rcArgv, rcValidating, rcParam, rcExcessive);
+                LOGERR(klogErr, rc, "path too long");
                 goto Catch;
             }
-            table_path[ table_path_qty++ ] = P_option_buffer;
-        }
-        else
-        {
-            table_path[ table_path_qty++ ] = accession;
+            table_path[table_path_qty++] = P_option_buffer;
+        } else {
+            table_path[table_path_qty++] = accession;
         }
     }
-
-    rc = SRAMgrMakeRead( &sraMGR );
-    if ( rc != 0 )
-    {
-        LOGERR( klogErr, rc, "failed to open SRA manager" );
+    if( (rc = SRAMgrMakeRead(&sraMGR)) != 0 ) {
+        LOGERR(klogErr, rc, "failed to open SRA manager");
+        goto Catch;
+    } else if( (rc = SRASplitterFactory_FilerInit(to_stdout, do_gzip, do_bzip2, sub_dir, keep_empty, outdir)) != 0 ) {
+        LOGERR(klogErr, rc, "failed to initialize files");
         goto Catch;
     }
-    else
-    {
-        rc = SRASplitterFactory_FilerInit( to_stdout, do_gzip, do_bzip2, sub_dir, keep_empty, outdir );
-        if ( rc != 0 )
-        {
-            LOGERR( klogErr, rc, "failed to initialize files" );
-            goto Catch;
-        }
-    }
-
-    {
-        const VDBManager* vmgr = NULL;
-        rc_t rc2 = SRAMgrGetVDBManagerRead( sraMGR, &vmgr );
-        if ( rc2 != 0 )
-        {
-            LOGERR( klogErr, rc2, "while calling SRAMgrGetVDBManagerRead" );
-        }
-        rc2 = ReportSetVDBManager( vmgr );
-        VDBManagerRelease( vmgr );
-    }
-
-
     /* loop tables */
-    for ( i = 0; i < table_path_qty; i++ )
-    {
+    for(i = 0; i < table_path_qty; i++) {
         const SRASplitterFactory* fact_head = NULL;
         spotid_t smax, smin;
 
-        SRA_DUMP_DBG( 5, ( "table path '%s', name '%s'\n", table_path[ i ], table_name ) );
-        if ( table_name != NULL )
-        {
-            rc = SRAMgrOpenAltTableRead( sraMGR, &fmt.table, table_name, table_path[ i ] );
-            if ( rc != 0 )
-            {
-                PLOGERR( klogErr, ( klogErr, rc, 
-                    "failed to open '$(path):$(table)'", "path=%s,table=%s",
-                    table_path[ i ], table_name ) );
-                continue;
-            }
+        SRA_DUMP_DBG(5, ("table path '%s', name '%s'\n", table_path[i], table_name));
+        if( table_name != NULL && (rc = SRAMgrOpenAltTableRead(sraMGR, &fmt.table, table_name, table_path[i])) != 0 ) {
+            PLOGERR(klogErr, (klogErr, rc, "failed to open '$(path):$(table)'", "path=%s,table=%s", table_path[i], table_name));
+            continue;
         }
-
-        ReportResetObject( table_path[ i ] );
-        if ( fmt.table == NULL )
-        {
-            rc = SRAMgrOpenTableRead( sraMGR, &fmt.table, table_path[ i ] );
-            if ( rc != 0 )
-            {
-                if ( UIError( rc, NULL, NULL ) )
-                {
-                    UITableLOGError( rc, NULL, true );
-                }
-                else
-                {
-                    PLOGERR( klogErr, ( klogErr, rc,
-                            "failed to open '$(path)'", "path=%s", table_path[ i ] ) );
-                }
-                continue;
-            }
+        if( fmt.table == NULL && (rc = SRAMgrOpenTableRead(sraMGR, &fmt.table, table_path[i])) != 0 ) {
+            PLOGERR(klogErr, (klogErr, rc, "failed to open '$(path)'", "path=%s", table_path[i]));
+            continue;
         }
-
         /* infer accession from table_path if missing or more than one table */
         fmt.accession = table_path_qty > 1 ? NULL : accession;
-        if ( fmt.accession == NULL || fmt.accession[ 0 ] == 0 )
-        {
-            char * basename;
+        if( fmt.accession == NULL || fmt.accession[0] == 0 ) {
             char *ext;
             size_t l;
-            bool is_url = false;
-
-            strcpy( P_option_buffer, table_path[ i ] );
-
-            basename = strchr ( P_option_buffer, ':' );
-            if ( basename )
-            {
-                ++basename;
-                if ( basename [0] == '\0' )
-                    basename = P_option_buffer;
-                else
-                    is_url = true;
-            }
-            else
-                basename = P_option_buffer;
-
-            if ( is_url )
-            {
-                ext = strchr ( basename, '#' );
-                if ( ext )
-                    ext[ 0 ] = '\0';
-                ext = strchr ( basename, '?' );
-                if ( ext )
-                    ext[ 0 ] = '\0';
-            }
 
-
-            l = strlen( basename  );
-            while ( strchr( "\\/", basename[ l - 1 ] ) != NULL )
-            {
-                basename[ --l ] = '\0';
-            }
-            fmt.accession = strrchr( basename, '/' );
-            if ( fmt.accession++ == NULL )
-            {
-                fmt.accession = basename;
-            }
-
-            /* cut off [.lite].[c]sra[.nenc||.ncbi_enc] if any */
-            ext = strrchr( fmt.accession, '.' );
-            if ( ext != NULL )
-            {
-                if ( strcasecmp( ext, ".nenc" ) == 0 || strcasecmp( ext, ",ncbi_enc" ) == 0 )
-                {
+            strcpy(P_option_buffer, table_path[i]);
+            l = strlen(P_option_buffer);
+            while( strchr("\\/", P_option_buffer[l - 1]) != NULL ) {
+                P_option_buffer[--l] = '\0';
+            }
+            fmt.accession = strrchr(P_option_buffer, '/');
+            if( fmt.accession++ == NULL ) {
+                fmt.accession = P_option_buffer;
+            }
+            /* cut of [.lite].[c]sra if any */
+            ext = strrchr(fmt.accession, '.');
+            if( ext != NULL && (strcasecmp(ext, ".sra") == 0 || strcasecmp(ext, ".csra") == 0) ) {
+                *ext = '\0';
+                ext = strrchr(fmt.accession, '.');
+                if( ext != NULL && strcasecmp(ext, ".lite") == 0 ) {
                     *ext = '\0';
-                    ext = strrchr( fmt.accession, '.' );
-                }
-                if ( ext != NULL && ( strcasecmp( ext, ".sra" ) == 0 || strcasecmp( ext, ".csra" ) == 0 ) )
-                {
-                    *ext = '\0';
-                    ext = strrchr( fmt.accession, '.' );
-                    if ( ext != NULL && strcasecmp( ext, ".lite" ) == 0 )
-                    {
-                        *ext = '\0';
-                    }
                 }
             }
         }
+        SRA_DUMP_DBG(5, ("accession: '%s'\n", fmt.accession));
+        rc = SRASplitterFactory_FilerPrefix(accession ? accession : fmt.accession);
 
-        SRA_DUMP_DBG( 5, ( "accession: '%s'\n", fmt.accession ) );
-        rc = SRASplitterFactory_FilerPrefix( accession ? accession : fmt.accession );
-
-        while ( rc == 0 )
-        {
+        while( rc == 0 ) {
             /* sort out the spot id range */
-            if ( ( rc = SRATableMaxSpotId( fmt.table, &smax ) ) != 0 ||
-                 ( rc = SRATableMinSpotId( fmt.table, &smin ) ) != 0 )
-            {
+            if( (rc = SRATableMaxSpotId(fmt.table, &smax)) != 0 ||
+                (rc = SRATableMinSpotId(fmt.table, &smin)) != 0 ) {
                 break;
             }
-
-            {
-                const struct VTable* tbl = NULL;
-                rc_t rc2 = SRATableGetVTableRead( fmt.table, &tbl );
-                if ( rc == 0 )
-                {
-                    rc = rc2;
-                }
-                rc2 = ReportResetTable( table_path[i], tbl );
-                if ( rc == 0 )
-                {
-                    rc = rc2;
-                }
-                VTableRelease( tbl );   /* SRATableGetVTableRead adds Reference to tbl! */
-            }
-
             /* test if we have to dump anything... */
-            if ( smax < minSpotId || smin > maxSpotId )
-            {
+            if( smax < minSpotId || smin > maxSpotId ) {
                 break;
             }
-            if ( smax > maxSpotId )
-            {
+            if( smax > maxSpotId ) {
                 smax = maxSpotId;
             }
-            if ( smin < minSpotId )
-            {
+            if( smin < minSpotId) {
                 smin = minSpotId;
             }
-
             /* hack to reduce looping in AddSpot: needs redesign to pass nreads along through tree */
-            if ( true ) /* ??? */
-            {
+            if( true ) {
                 const SRAColumn* c = NULL;
                 nreads_max = NREADS_MAX;
-                rc = SRATableOpenColumnRead( fmt.table, &c, "PLATFORM", sra_platform_id_t );
-                if ( rc == 0 )
-                {
-                    const INSDC_SRA_platform_id *platform;
+                if( (rc = SRATableOpenColumnRead(fmt.table, &c, "PLATFORM", sra_platform_id_t)) == 0 ) {
+                    const INSDC_SRA_platform_id* platform;
                     bitsz_t o, z;
-                    rc = SRAColumnRead( c, 1, (const void **)&platform, &o, &z );
-                    if ( rc == 0 && platform != NULL )
-                    {
-                        if ( *platform != SRA_PLATFORM_PACBIO_SMRT )
-                        {
+                    if( (rc = SRAColumnRead(c, 1, (const void **)&platform, &o, &z)) == 0 ) {
+                        if( *platform != SRA_PLATFORM_PACBIO_SMRT ) {
                             nreads_max = 32;
                         }
                     }
-                    SRAColumnRelease( c );
-                }
-                else if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcColumn )
-                {
+                    SRAColumnRelease(c);
+                } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcColumn ) {
                     rc = 0;
                 }
             }
-
             /* table dependent */
-            rc = fmt.get_factory( &fmt, &fact_head );
-            if ( rc != 0 )
-            {
+            if( (rc = fmt.get_factory(&fmt, &fact_head)) != 0 ) {
                 break;
             }
-            if ( fact_head == NULL )
-            {
-                rc = RC( rcExe, rcFormatter, rcResolving, rcInterface, rcNull );
+            if( fact_head == NULL ) {
+                rc = RC(rcExe, rcFormatter, rcResolving, rcInterface, rcNull);
                 break;
             }
-
-            if ( rc == 0 && ( spot_group_on || spot_groups > 0 ) )
-            {
+            if( rc == 0 && (spot_group_on || spot_groups > 0) ) {
                 const SRASplitterFactory* f = NULL;
-                rc = SpotGroupSplitterFactory_Make( &f, fmt.table, spot_group_on, spot_group );
-                if ( rc == 0 )
-                {
-                    rc = SRASplitterFactory_AddNext( f, fact_head );
-                    if ( rc == 0 )
-                    {
+                if( (rc = SpotGroupSplitterFactory_Make(&f, fmt.table, spot_group_on, spot_group)) == 0 ) {
+                    if( (rc = SRASplitterFactory_AddNext(f, fact_head)) == 0 ) {
                         fact_head = f;
-                    }
-                    else
-                    {
-                        SRASplitterFactory_Release( f );
+                    } else {
+                        SRASplitterFactory_Release(f);
                     }
                 }
             }
-
-            if ( rc == 0 && read_filter_on )
-            {
+            if( rc == 0 && read_filter_on ) {
                 const SRASplitterFactory* f = NULL;
-                rc = ReadFilterSplitterFactory_Make( &f, fmt.table, read_filter );
-                if ( rc == 0 )
-                {
-                    rc = SRASplitterFactory_AddNext( f, fact_head );
-                    if ( rc == 0 )
-                    {
+                if( (rc = ReadFilterSplitterFactory_Make(&f, fmt.table, read_filter)) == 0 ) {
+                    if( (rc = SRASplitterFactory_AddNext(f, fact_head)) == 0 ) {
                         fact_head = f;
-                    }
-                    else
-                    {
-                        SRASplitterFactory_Release( f );
+                    } else {
+                        SRASplitterFactory_Release(f);
                     }
                 }
             }
-
-            if ( rc == 0 )
-            {
+            if( rc == 0 ) {
                 /* this filter takes over head of chain to be first and kill off bad NREADS */
                 const SRASplitterFactory* f = NULL;
-                rc = MaxNReadsValidatorFactory_Make( &f, fmt.table );
-                if ( rc == 0 )
-                {
-                    rc = SRASplitterFactory_AddNext( f, fact_head );
-                    if ( rc == 0 )
-                    {
+                if( (rc = MaxNReadsValidatorFactory_Make(&f, fmt.table)) == 0 ) {
+                    if( (rc = SRASplitterFactory_AddNext(f, fact_head)) == 0 ) {
                         fact_head = f;
-                    }
-                    else
-                    {
-                        SRASplitterFactory_Release( f );
+                    } else {
+                        SRASplitterFactory_Release(f);
                     }
                 }
             }
-
-            rc = SRASplitterFactory_Init( fact_head );
-            if ( rc == 0 )
-            {
-                /* ********************************************************** */
-                rc = SRADumper_DumpRun( fmt.table, smin, smax, fact_head );
-                /* ********************************************************** */
-                if ( rc == 0 )
-                { 
-                    uint64_t total = 0, file = 0;
-                    SRASplitterFactory_FilerReport( &total, &file );
-                    OUTMSG(( "Written %lu spots for %s\n", total - total_spots, table_path[ i ] ));
-                    if ( to_stdout && total > 0 )
-                    {
-                        PLOGMSG( klogInfo, ( klogInfo, "$(t) biggest file has $(n) spots",
-                            PLOG_2( PLOG_S( t ), PLOG_U64( n ) ), table_path[ i ], file ));
-                    }
-                    total_spots = total;
+            if( (rc = SRASplitterFactory_Init(fact_head)) == 0 &&
+                (rc = SRADumper_DumpRun(fmt.table, smin, smax, fact_head)) == 0 ) { 
+                uint64_t total = 0, file = 0;
+                SRASplitterFactory_FilerReport(&total, &file);
+                OUTMSG(("Written %lu spots for %s\n", total - total_spots, table_path[i]));
+                if( to_stdout && total > 0 ) {
+                    PLOGMSG(klogInfo, (klogInfo, "$(t) biggest file has $(n) spots",
+                        PLOG_2(PLOG_S(t),PLOG_U64(n)), table_path[i], file));
                 }
+                total_spots = total;
             }
             break;
         }
-
-        SRASplitterFactory_Release( fact_head );
-        SRATableRelease( fmt.table );
+        SRASplitterFactory_Release(fact_head);
+        SRATableRelease(fmt.table);
         fmt.table = NULL;
-        if ( rc == 0 )
-        {
-            PLOGMSG( klogInfo, ( klogInfo, "$(path)$(dot)$(table) $(spots) spots",
+        if( rc == 0 ) {
+            PLOGMSG(klogInfo, (klogInfo, "$(path)$(dot)$(table) $(spots) spots",
                     PLOG_4(PLOG_S(path),PLOG_S(dot),PLOG_S(table),PLOG_U32(spots)),
-                    table_path[ i ], table_name ? ":" : "", table_name ? table_name : "", smax - smin + 1 ) );
-        }
-        else if (!reportToUserSffFromNot454Run(rc, argv [0], false)) {
-            PLOGERR( klogErr, ( klogErr, rc, "failed $(path)$(dot)$(table)",
+                    table_path[i], table_name ? ":" : "", table_name ? table_name : "", smax - smin + 1));
+        } else {
+            PLOGERR(klogErr, (klogErr, rc, "failed $(path)$(dot)$(table)",
                     PLOG_3(PLOG_S(path),PLOG_S(dot),PLOG_S(table)),
-                    table_path[ i ], table_name ? ":" : "", table_name ? table_name : "" ) );
+                    table_path[i], table_name ? ":" : "", table_name ? table_name : ""));
         }
     }
-
 Catch:
-    if ( fmt.release )
-    {
-        rc_t rr = fmt.release( &fmt );
-        if ( rr != 0 )
-        {
-            SRA_DUMP_DBG( 1, ( "formatter release error %R\n", rr ) );
+    if( fmt.release ) {
+        rc_t rr = fmt.release(&fmt);
+        if( rr != 0 ) {
+            SRA_DUMP_DBG(1, ("formatter release error %R\n", rr));
         }
     }
-
-    for ( i = 0; i < spot_groups; i++ )
-    {
-        free( spot_group[ i ] );
+    for(i = 0; i < spot_groups; i++) {
+        free(spot_group[i]);
     }
     SRASplitterFiler_Release();
-    SRAMgrRelease( sraMGR );
-    OUTMSG(( "Written %lu spots total\n", total_spots ));
-
-
-    /* Report execution environment if necessary */
-    if (rc != 0 && reportToUserSffFromNot454Run(rc, argv [0], true)) {
-        ReportSilence();
-    }
-    {
-        rc_t rc2 = ReportFinalize( rc );
-        if ( rc == 0 )
-        {
-            rc = rc2;
-        }
-    }
+    SRAMgrRelease(sraMGR);
+    OUTMSG(("Written %lu spots total\n", total_spots));
     return rc;
 }
diff --git a/tools/sra-dump/core.h b/tools/sra-dump/core.h
index 493b1ab..5861475 100644
--- a/tools/sra-dump/core.h
+++ b/tools/sra-dump/core.h
@@ -54,7 +54,7 @@ struct SRADumperFmt
     const SRADumperFmt_Arg* arg_desc;
 
     /* optional - prints custom help page */
-    rc_t (*usage)(const SRADumperFmt* fmt, const SRADumperFmt_Arg* core_args, int first );
+    rc_t (*usage)(const SRADumperFmt* fmt, const SRADumperFmt_Arg* core_args);
     /* optional */
     rc_t (*release)(const SRADumperFmt* fmt);
     /* optional process current arg and advance i by number of processed args */
diff --git a/tools/sra-dump/factory.c b/tools/sra-dump/factory.c
index d4b9d29..e0f5741 100644
--- a/tools/sra-dump/factory.c
+++ b/tools/sra-dump/factory.c
@@ -181,7 +181,8 @@ rc_t SRASplitterFiler_PopKey(void)
     if( g_filer->path_tail == 0 ) {
         return RC(rcExe, rcFile, rcDetaching, rcDirEntry, rcTooShort);
     }
-    g_filer->path_len -= strlen(g_filer->path[--g_filer->path_tail]) + 1;
+    g_filer->path_tail--;
+    g_filer->path_len -= strlen(g_filer->path[g_filer->path_tail]) + 1;
     return 0;
 }
 
@@ -411,14 +412,12 @@ rc_t SRASplitterFactory_FilerPrefix(const char* prefix)
     if( g_filer == NULL ) {
         rc = RC(rcExe, rcFile, rcUpdating, rcSelf, rcNotOpen);
     } else if( prefix == NULL || strcmp(prefix, g_filer->prefix) != 0 ) {
-        if( (rc = SRASplitterFiler_PopKey()) == 0 ) {
-            free(g_filer->prefix);
-            g_filer->prefix = strdup(prefix ? prefix : "");
-            if( g_filer->prefix == NULL ) {
-                rc = RC(rcExe, rcFile, rcConstructing, rcMemory, rcExhausted);
-            } else {
-                rc = SRASplitterFiler_PushKey(g_filer->prefix);
-            }
+        free(g_filer->prefix);
+        g_filer->prefix = strdup(prefix ? prefix : "");
+        if( g_filer->prefix == NULL ) {
+            rc = RC(rcExe, rcFile, rcConstructing, rcMemory, rcExhausted);
+        } else if( (rc = SRASplitterFiler_PopKey()) == 0 ) {
+            rc = SRASplitterFiler_PushKey(g_filer->prefix);
         }
     }
     return rc;
@@ -824,32 +823,24 @@ rc_t SRASplitter_FileActivate(const SRASplitter* cself, const char* key)
     return rc;
 }
 
-rc_t SRASplitter_FileWrite( const SRASplitter* cself, spotid_t spot, const void* buf, size_t size )
+rc_t SRASplitter_FileWrite(const SRASplitter* cself, spotid_t spot, const void* buf, size_t size)
 {
+    rc_t rc = 0;
     SRASplitter* self = NULL;
-    
-    rc_t rc = SRASplitter_ResolveSelf( cself, rcWriting, &self );
-    if ( rc == 0 )
-    {
-        if ( self->last_found == NULL )
-        {
-            rc = RC( rcExe, rcFile, rcWriting, rcDirEntry, rcUnknown );
-        }
-        else if ( buf != NULL && size > 0 )
-        {
+
+    if( (rc = SRASplitter_ResolveSelf(cself, rcWriting, &self)) == 0 ) {
+        if( self->last_found == NULL ) {
+            rc = RC(rcExe, rcFile, rcWriting, rcDirEntry, rcUnknown);
+        } else if( buf != NULL && size > 0 ) {
             size_t writ = 0;
-            SRASplitterFile* f = ( SRASplitterFile* )( self->last_found->child.file );
-            rc = KFileWrite( f->file, f->pos, buf, size, &writ );
-            if ( rc == 0 )
-            {
+            SRASplitterFile* f = (SRASplitterFile*)(self->last_found->child.file);
+            if( (rc = KFileWrite(f->file, f->pos, buf, size, &writ)) == 0 ) {
                 f->pos += writ;
-                if ( f->curr_spot != spot && spot != 0 )
-                {
-                     f->curr_spot = spot;
-                     f->spot_qty = f->spot_qty + 1;
+                if( f->curr_spot != spot && spot != 0 ) {
+                    f->curr_spot = spot;
+                    f->spot_qty = f->spot_qty + 1;
                 }
-                if ( g_filer->curr_spot != spot && spot != 0 )
-                {
+                if( g_filer->curr_spot != spot && spot != 0 ) {
                     g_filer->curr_spot = spot;
                     g_filer->spot_qty = g_filer->spot_qty + 1;
                 }
@@ -859,30 +850,24 @@ rc_t SRASplitter_FileWrite( const SRASplitter* cself, spotid_t spot, const void*
     return rc;
 }
 
-rc_t SRASplitter_FileWritePos( const SRASplitter* cself, spotid_t spot, 
-                               uint64_t pos, const void* buf, size_t size )
+rc_t SRASplitter_FileWritePos(const SRASplitter* cself, spotid_t spot, uint64_t pos, const void* buf, size_t size)
 {
+    rc_t rc = 0;
     SRASplitter* self = NULL;
 
-    rc_t rc = SRASplitter_ResolveSelf( cself, rcWriting, &self );
-    if ( rc == 0 )
-    {
-        if ( self->last_found == NULL )
-        {
-            rc = RC( rcExe, rcFile, rcWriting, rcDirEntry, rcUnknown );
-        }
-        else if ( buf != NULL && size > 0 )
-        {
+    if( (rc = SRASplitter_ResolveSelf(cself, rcWriting, &self)) == 0 ) {
+        if( self->last_found == NULL ) {
+            rc = RC(rcExe, rcFile, rcWriting, rcDirEntry, rcUnknown);
+        } else if( buf != NULL && size > 0 ) {
             const SRASplitterFile* f = self->last_found->child.file;
             /* remember last position */
             uint64_t old_pos = f->pos;
-            ( ( SRASplitterFile* ) f )->pos = pos;
+            ((SRASplitterFile*)f)->pos = pos;
             /* write to requested position */
-            rc = SRASplitter_FileWrite( cself, spot, buf, size );
-            if ( f->pos < old_pos )
-            {
+            rc = SRASplitter_FileWrite(cself, spot, buf, size);
+            if( f->pos < old_pos ) {
                 /* revert to last position if wrote less than it was */
-                ( ( SRASplitterFile* ) f )->pos = old_pos;
+                ((SRASplitterFile*)f)->pos = old_pos;
             }
         }
     }
diff --git a/tools/sra-dump/factory.h b/tools/sra-dump/factory.h
index fcf91ff..d92d5b3 100644
--- a/tools/sra-dump/factory.h
+++ b/tools/sra-dump/factory.h
@@ -28,23 +28,8 @@
 
 #include <klib/rc.h>
 #include <kfs/file.h>
-#include <klib/data-buffer.h>
 #include <sra/sradb.h>
 
-#define DATABUFFER_INC_SZ 4096
-
-/* KDataBuffer is used as byte buffer-only here! */
-#define IF_BUF(expr, buf, writ) \
-    while( (rc = (expr)) != 0 && \
-           (GetRCObject(rc) == rcMemory || GetRCObject(rc) == rcBuffer) && \
-           (GetRCState(rc) == rcInsufficient || GetRCState(rc) == rcExhausted) ) { \
-        SRA_DUMP_DBG(10, ("\n%s grow buffer from %u to %u\n", __func__, buf->elem_count, writ + DATABUFFER_INC_SZ)); \
-        if( (rc = KDataBufferResize(buf, writ + DATABUFFER_INC_SZ)) != 0 ) { \
-            break; \
-        } \
-    } \
-    if( rc == 0 )
-
 typedef enum {
     eSplitterSpot = 1,
     eSplitterRead,
@@ -54,8 +39,8 @@ typedef enum {
 typedef struct SRASplitter SRASplitter;
 
 #define NREADS_MAX (8*1024)
-typedef uint8_t readmask_t; 
-extern uint32_t nreads_max;
+typedef uint8_t readmask_t;
+uint32_t nreads_max;
 
 #define make_readmask(m) readmask_t m[NREADS_MAX]
 #define copy_readmask(src,dst) (memcpy(dst, src, sizeof(readmask_t) * nreads_max))
@@ -123,8 +108,8 @@ rc_t SRASplitter_FileActivate(const SRASplitter* self, const char* key);
    spot can be zero to indicate file header/footer
    which no considered as actual data and file treated as empty if no actual spots is written
  */
-rc_t SRASplitter_FileWrite( const SRASplitter* cself, spotid_t spot, const void* buf, size_t size );
-rc_t SRASplitter_FileWritePos( const SRASplitter* cself, spotid_t spot, uint64_t pos, const void* buf, size_t size );
+rc_t SRASplitter_FileWrite(const SRASplitter* self, spotid_t spot, const void* buf, size_t size);
+rc_t SRASplitter_FileWritePos(const SRASplitter* self, spotid_t spot, uint64_t pos, const void* buf, size_t size);
 
 typedef struct SRASplitterFactory SRASplitterFactory;
 
diff --git a/tools/sra-dump/fasta_dump.c b/tools/sra-dump/fasta_dump.c
deleted file mode 100644
index 41e7b58..0000000
--- a/tools/sra-dump/fasta_dump.c
+++ /dev/null
@@ -1,752 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <klib/rc.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/log.h>
-#include <klib/printf.h>
-
-#include <kapp/main.h>
-#include <kapp/args.h>
-
-#include <kfs/file.h>
-#include <kfs/directory.h>
-#include <kfs/buffile.h>
-#include <kfs/bzip.h>
-#include <kfs/gzip.h>
-
-#include <vdb/manager.h>
-
-#include <align/manager.h>
-#include <align/reference.h>
-
-#include <sra/srapath.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-
-static bool string_ends_with( const char * s, const char * pattern )
-{
-    const char * found = strstr ( s, pattern );
-    if ( found == NULL )
-        return false;
-    else
-    {
-        size_t len_string = string_size ( s );
-        size_t len_pattern = string_size ( pattern );
-        size_t found_at = ( found - s );
-        return ( found_at == ( len_string - len_pattern ) );
-    }
-}
-
-
-static char * fasta_ref = "--fastaref";
-
-/* we have to test if argv[0] ends in 'fastq-dump' or 'fastq-dump.exe',
-   and we have an argument called '--fasta' */
-bool fasta_dump_requested( int argc, char* argv[] )
-{
-    if ( string_ends_with( argv[ 0 ], "fastq-dump" ) ||
-         string_ends_with( argv[ 0 ], "fastq-dump.exe" ) )
-    {
-        int i;
-        for ( i = 1; i < argc; ++i )
-        {
-            if ( strcmp( argv[ i ], fasta_ref ) == 0 )
-                return true;
-        }
-    }
-
-    return false;
-}
-
-#define OPTION_OUTF    "outfile"
-#define ALIAS_OUTF     "o"
-
-#define OPTION_WIDTH   "width"
-#define ALIAS_WIDTH    "w"
-
-#define OPTION_GZIP    "gzip"
-#define ALIAS_GZIP     NULL
-
-#define OPTION_BZIP    "bzip2"
-#define ALIAS_BZIP     NULL
-
-#define OPTION_REFNAME "refname"
-#define ALIAS_REFNAME  "r"
-
-#define OPTION_FROM    "from"
-#define ALIAS_FROM     "N"
-
-#define OPTION_LENGTH   "length"
-#define ALIAS_LENGTH    "X"
-
-#define OPTION_FAREF    "fastaref"
-#define ALIAS_FAREF     NULL
-
-
-OptDef MyOptions[] =
-{
-    /*name,           alias,         hfkt, usage-help,    maxcount, needs value, required */
-    { OPTION_OUTF,    ALIAS_OUTF,    NULL, NULL,          1,        true,        false },
-    { OPTION_WIDTH,   ALIAS_WIDTH,   NULL, NULL,          1,        true,        false },
-    { OPTION_GZIP,    ALIAS_GZIP,    NULL, NULL,          1,        false,       false },
-    { OPTION_BZIP,    ALIAS_BZIP,    NULL, NULL,          1,        false,       false },
-    { OPTION_REFNAME, ALIAS_REFNAME, NULL, NULL,          0,        true,        false },
-    { OPTION_FROM,    ALIAS_FROM,    NULL, NULL,          1,        true,        false },
-    { OPTION_LENGTH,  ALIAS_LENGTH,  NULL, NULL,          1,        true,        false },
-    { OPTION_FAREF,   ALIAS_FAREF,   NULL, NULL,          1,        false,       false }
-};
-
-
-/* =========================================================================================== */
-
-
-/* GLOBAL VARIABLES */
-struct {
-    KWrtWriter org_writer;
-    void* org_data;
-    KFile* kfile;
-    uint64_t pos;
-} g_out_writer = { NULL };
-
-
-/* =========================================================================================== */
-
-static rc_t get_str_option( const Args *args, const char *name, const char ** res )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    *res = NULL;
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ArgsOptionCount() failed" );
-    }
-    else
-    {
-        if ( count > 0 )
-        {
-            rc = ArgsOptionValue( args, name, 0, res );
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "ArgsOptionValue() failed" );
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t get_bool_option( const Args *args, const char *name, bool *res, const bool def )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    if ( rc == 0 && count > 0 )
-    {
-        *res = true;
-    }
-    else
-    {
-        *res = def;
-    }
-    return rc;
-}
-
-
-static rc_t get_int_option( const Args *args, const char *name, uint32_t *res, const uint32_t def )
-{
-    const char * s;
-    rc_t rc = get_str_option( args, name, &s );
-    *res = def;
-    if ( rc == 0 && s != NULL )
-    {
-        *res = atoi( s );
-    }
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-static rc_t CC BufferedWriter ( void* self, const char* buffer, size_t bufsize, size_t* num_writ )
-{
-    rc_t rc = 0;
-
-    assert( buffer != NULL );
-    assert( num_writ != NULL );
-
-    do {
-        rc = KFileWrite( g_out_writer.kfile, g_out_writer.pos, buffer, bufsize, num_writ );
-        if ( rc == 0 )
-        {
-            buffer += *num_writ;
-            bufsize -= *num_writ;
-            g_out_writer.pos += *num_writ;
-        }
-    } while ( rc == 0 && bufsize > 0 );
-    return rc;
-}
-
-
-static rc_t set_stdout_to( bool gzip, bool bzip2, const char * filename, size_t bufsize )
-{
-    rc_t rc = 0;
-    if ( gzip && bzip2 )
-    {
-        rc = RC( rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous );
-    }
-    else
-    {
-        KDirectory *dir;
-        rc = KDirectoryNativeDir( &dir );
-        if ( rc != 0 )
-            LOGERR( klogInt, rc, "KDirectoryNativeDir() failed" );
-        else
-        {
-            KFile *of;
-            rc = KDirectoryCreateFile ( dir, &of, false, 0664, kcmInit, "%s", filename );
-            if ( rc == 0 )
-            {
-                KFile *buf;
-                if ( gzip )
-                {
-                    KFile *gz;
-                    rc = KFileMakeGzipForWrite( &gz, of );
-                    if ( rc == 0 )
-                    {
-                        KFileRelease( of );
-                        of = gz;
-                    }
-                }
-                if ( bzip2 )
-                {
-                    KFile *bz;
-                    rc = KFileMakeBzip2ForWrite( &bz, of );
-                    if ( rc == 0 )
-                    {
-                        KFileRelease( of );
-                        of = bz;
-                    }
-                }
-
-                rc = KBufFileMakeWrite( &buf, of, false, bufsize );
-                if ( rc == 0 )
-                {
-                    g_out_writer.kfile = buf;
-                    g_out_writer.org_writer = KOutWriterGet();
-                    g_out_writer.org_data = KOutDataGet();
-                    rc = KOutHandlerSet( BufferedWriter, &g_out_writer );
-                    if ( rc != 0 )
-                        LOGERR( klogInt, rc, "KOutHandlerSet() failed" );
-                }
-                KFileRelease( of );
-            }
-            KDirectoryRelease( dir );
-        }
-    }
-    return rc;
-}
-
-
-static void release_stdout_redirection( void )
-{
-    KFileRelease( g_out_writer.kfile );
-    if( g_out_writer.org_writer != NULL )
-    {
-        KOutHandlerSet( g_out_writer.org_writer, g_out_writer.org_data );
-    }
-    g_out_writer.org_writer = NULL;
-}
-
-
-static rc_t CC write_to_FILE( void *f, const char *buffer, size_t bytes, size_t *num_writ )
-{
-    * num_writ = fwrite ( buffer, 1, bytes, f );
-    if ( * num_writ != bytes )
-        return RC( rcExe, rcFile, rcWriting, rcTransfer, rcIncomplete );
-    return 0;
-}
-
-
-/* =========================================================================================== */
-
-typedef struct fasta_options
-{
-    uint32_t width;
-    bool gzip;
-    bool bzip;
-    const char * outfile;
-    INSDC_coord_zero from;
-    INSDC_coord_len length;
-} fasta_options;
-
-
-static rc_t get_fasta_options( Args * args, fasta_options *opts )
-{
-    rc_t rc = get_int_option( args, OPTION_WIDTH, &opts->width, 80 );
-
-    if ( rc == 0 )
-        rc = get_str_option( args, OPTION_OUTF, &opts->outfile );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_GZIP, &opts->gzip, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_BZIP, &opts->bzip, false );
-
-    if ( rc == 0 )
-    {
-        uint32_t x;
-        rc = get_int_option( args, OPTION_FROM, &x, 0 );
-        if ( rc == 0 )
-            opts->from = x;
-    }
-
-    if ( rc == 0 )
-    {
-        uint32_t x;
-        rc = get_int_option( args, OPTION_LENGTH, &x, 0 );
-        if ( rc == 0 )
-            opts->length = x;
-    }
-
-    return rc;
-}
-
-/* =========================================================================================== */
-
-#if TOOLS_USE_SRAPATH != 0
-static bool is_this_a_filesystem_path( const char * path )
-{
-    bool res = false;
-    size_t i, n = string_size ( path );
-    for ( i = 0; i < n && !res; ++i )
-    {
-        char c = path[ i ];
-        res = ( c == '.' || c == '/' || c == '\\' );
-    }
-    return res;
-}
-#endif
-
-#if TOOLS_USE_SRAPATH != 0
-static char *translate_accession( SRAPath *my_sra_path,
-                           const char *accession,
-                           const size_t bufsize )
-{
-    rc_t rc;
-    char * res = calloc( 1, bufsize );
-    if ( res == NULL ) return NULL;
-
-    rc = SRAPathFind( my_sra_path, accession, res, bufsize );
-    if ( GetRCState( rc ) == rcNotFound )
-    {
-        free( res );
-        return NULL;
-    }
-    else if ( GetRCState( rc ) == rcInsufficient )
-    {
-        free( res );
-        return translate_accession( my_sra_path, accession, bufsize * 2 );
-    }
-    else if ( rc != 0 )
-    {
-        free( res );
-        return NULL;
-    }
-    return res;
-}
-#endif
-
-#if TOOLS_USE_SRAPATH != 0
-static rc_t resolve_accession( const KDirectory *my_dir, char ** path )
-{
-    SRAPath *my_sra_path;
-    rc_t rc = 0;
-
-    if ( strchr ( *path, '/' ) != NULL )
-        return 0;
-
-    rc = SRAPathMake( &my_sra_path, my_dir );
-    if ( rc != 0 )
-    {
-        if ( GetRCState ( rc ) != rcNotFound || GetRCTarget ( rc ) != rcDylib )
-        {
-            if ( rc != 0 )
-                LOGERR( klogInt, rc, "SRAPathMake() failed" );
-        }
-        else
-            rc = 0;
-    }
-    else
-    {
-        if ( !SRAPathTest( my_sra_path, *path ) )
-        {
-            char *buf = translate_accession( my_sra_path, *path, 64 );
-            if ( buf != NULL )
-            {
-                free( (char*)(*path) );
-                *path = buf;
-            }
-        }
-        SRAPathRelease( my_sra_path );
-    }
-    return rc;
-}
-#endif
-
-/* =========================================================================================== */
-
-
-typedef struct fasta_ctx
-{
-    KDirectory *dir;
-    const VDBManager *vdb_mgr;
-    const AlignMgr *almgr;
-} fasta_ctx;
-
-
-static rc_t dump_reference_loop( fasta_options *opts, const ReferenceObj* refobj )
-{
-    rc_t rc = 0;
-    uint8_t * buffer = malloc( opts->width + 2 );
-    if ( buffer == NULL )
-    {
-        rc = RC( rcExe, rcNoTarg, rcListing, rcMemory, rcExhausted );
-        LOGERR( klogInt, rc, "allocating reference-buffer failed!" );
-    }
-    else
-    {
-        INSDC_coord_zero pos = opts->from;
-        INSDC_coord_len w = opts->length;
-
-        while ( w > 0 && rc == 0 )
-        {
-            INSDC_coord_len written;
-            INSDC_coord_len to_read = ( w > opts->width ? opts->width : w );
-            rc = ReferenceObj_Read( refobj, pos, to_read, buffer, &written );
-            if ( rc != 0 )
-                LOGERR( klogInt, rc, "ReferenceObj_Read() failed" );
-            else
-            {
-                OUTMSG(( "%.*s\n", written, buffer ));
-                w -= written;
-                pos += written;
-            }
-        }
-        free( buffer );
-    }
-    return rc;
-}
-
-
-static rc_t dump_reference( fasta_options *opts, const ReferenceObj* refobj )
-{
-    const char * name;
-    rc_t rc = ReferenceObj_Name( refobj, &name );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "ReferenceObj_Name() failed!" );
-    else
-    {
-        INSDC_coord_len seq_len;
-        rc = ReferenceObj_SeqLength( refobj, &seq_len );
-        if ( rc != 0 )
-            LOGERR( klogInt, rc, "ReferenceObj_SeqLength() failed!" );
-        else
-        {
-            if ( opts->from == 0 )
-            {
-                if ( opts->length == 0 )
-                    opts->length = seq_len;
-            }
-            else
-            {
-                if ( opts->length == 0 )
-                    opts->length = ( seq_len - opts->from );
-            }
-            if ( opts->from >= seq_len )
-            {
-                rc = RC( rcExe, rcNoTarg, rcListing, rcParam, rcInvalid );
-                LOGERR( klogInt, rc, "reference-start-point beyond reference-end!" );
-            }
-            else
-            {
-                if ( opts->from + opts->length > seq_len )
-                    opts->length = ( seq_len - opts->from );
-                OUTMSG(( ">%s|from %u|%u bases\n", name, opts->from, opts->from + opts->length -1 ));
-                rc = dump_reference_loop( opts, refobj );
-            }
-        }
-    }
-    return 0;
-}
-
-
-static rc_t dump_all_reference( fasta_options *opts, const ReferenceList* reflist )
-{
-    uint32_t count;
-    rc_t rc = ReferenceList_Count( reflist, &count );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "ReferenceList_Count() failed!" );
-    else
-    {
-        uint32_t i;
-        for ( i = 0; i < count && rc == 0; ++i )
-        {
-            const ReferenceObj* refobj;
-            rc = ReferenceList_Get( reflist, &refobj, i );
-            if ( rc != 0 )
-                LOGERR( klogInt, rc, "ReferenceList_Get() failed!" );
-            else
-                rc = dump_reference( opts, refobj );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t foreach_refname( Args * args, fasta_options *opts, fasta_ctx *ctx, const char * path )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, OPTION_REFNAME, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ArgsOptionCount( REFNAME ) failed" );
-    }
-    else
-    {
-        const ReferenceList* reflist;
-
-        rc = ReferenceList_MakePath( &reflist, ctx->vdb_mgr, path,
-                        ereferencelist_usePrimaryIds, 0, NULL, 0 );
-        if ( rc != 0 )
-            LOGERR( klogInt, rc, "ReferenceList_MakePath() failed!" );
-        else
-        {
-            if ( count == 0 )
-            {
-                /* dump all references... */
-                rc = dump_all_reference( opts, reflist );
-            }
-            else
-            {
-                uint32_t i;
-                for ( i = 0; i < count && rc == 0; ++i )
-                {
-                    const char * refname;
-                    rc = ArgsOptionValue( args, OPTION_REFNAME, 0, &refname );
-                    if ( rc != 0 )
-                    {
-                        LOGERR( klogInt, rc, "ArgsOptionValue( REFNAME ) failed" );
-                    }
-                    else
-                    {
-                        const ReferenceObj* refobj;
-                        rc = ReferenceList_Find( reflist, &refobj, refname, string_size( refname ) );
-                        if ( rc != 0 )
-                            LOGERR( klogInt, rc, "ReferenceList_Find() failed" );
-                        else
-                            rc = dump_reference( opts, refobj );
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t foreach_argument( Args * args, fasta_options *opts, fasta_ctx *ctx )
-{
-    uint32_t count;
-    rc_t rc = ArgsParamCount( args, &count );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "ArgsParamCount() failed" );
-    else
-    {
-        uint32_t idx;
-        if ( count < 1 )
-        {
-            rc = RC( rcExe, rcNoTarg, rcListing, rcParam, rcEmpty );
-            LOGERR( klogInt, rc, "no source-files given!" );
-        }
-        else
-        {
-            for ( idx = 0; idx < count && rc == 0; ++idx )
-            {
-                const char *param = NULL;
-                rc = ArgsParamValue( args, idx, &param );
-                if ( rc != 0 )
-                    LOGERR( klogInt, rc, "ArgsParamvalue() failed" );
-                else
-                {
-                    char *path = string_dup_measure ( param, NULL );
-                    if ( path == NULL )
-                    {
-                        rc = RC( rcExe, rcNoTarg, rcListing, rcMemory, rcExhausted );
-                        LOGERR( klogInt, rc, "allocating path to source-file failed!" );
-                    }
-                    else
-                    {
-
-#if TOOLS_USE_SRAPATH != 0
-                        if ( !is_this_a_filesystem_path( path ) )
-                        {
-                            rc = resolve_accession( ctx->dir, &path );
-                        }
-#endif
-
-                        if ( rc == 0 )
-                        {
-                            rc = foreach_refname( args, opts, ctx, path );
-                        }
-                        free( path );
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t fasta_main( Args * args, fasta_options *opts )
-{
-    rc_t rc;
-    fasta_ctx ctx;
-
-    memset( &ctx, 0, sizeof ctx );
-    rc = KDirectoryNativeDir( &ctx.dir );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "KDirectoryNativeDir() failed" );
-    else
-    {
-        rc = VDBManagerMakeRead ( &ctx.vdb_mgr, ctx.dir );
-        if ( rc != 0 )
-            LOGERR( klogInt, rc, "VDBManagerMakeRead() failed" );
-        else
-        {
-            rc = AlignMgrMakeRead ( &ctx.almgr );
-            if ( rc != 0 )
-                LOGERR( klogInt, rc, "AlignMgrMake() failed" );
-            else
-            {
-                rc = foreach_argument( args, opts, &ctx );
-                AlignMgrRelease ( ctx.almgr );
-            }
-            VDBManagerRelease( ctx.vdb_mgr );
-        }
-        KDirectoryRelease( ctx.dir );
-    }
-    return rc;
-}
-
-/* =========================================================================================== */
-
-
-rc_t fasta_dump( int argc, char* argv[] )
-{
-    rc_t rc = KOutHandlerSet( write_to_FILE, stdout );
-    if ( rc != 0 )
-        LOGERR( klogInt, rc, "KOutHandlerSet() failed" );
-    else
-    {
-        Args * args;
-
-        KLogHandlerSetStdErr();
-        rc = ArgsMakeAndHandle( &args, argc, argv, 1,
-            MyOptions, sizeof MyOptions / sizeof MyOptions [ 0 ] );
-        if ( rc == 0 )
-        {
-            fasta_options opts;
-            rc = get_fasta_options( args, &opts );
-            if ( rc == 0 )
-            {
-                if ( opts.outfile != NULL )
-                {
-                    rc = set_stdout_to( opts.gzip,
-                                        opts.bzip,
-                                        opts.outfile,
-                                        32 * 1024 );
-                }
-
-                if ( rc == 0 )
-                {
-                    /* ============================== */
-                    rc = fasta_main( args, &opts );
-                    /* ============================== */
-                }
-
-                if ( opts.outfile != NULL )
-                    release_stdout_redirection();
-            }
-            ArgsWhack( args );
-        }
-    }
-    return rc;
-}
-
-
-static const char * outf_usage[]     = { "output to stdout if omitted", NULL };
-static const char * width_usage[]    = { "default = 80 bases", NULL };
-static const char * gzip_usage[]     = { "for file and stdout", NULL };
-static const char * bzip_usage[]     = { "for file and stdout", NULL };
-static const char * refname_usage[]  = { "multiple ref's permitted", NULL };
-static const char * from_usage[]     = { "zero-based", NULL };
-static const char * length_usage[]   = { NULL };
-
-rc_t CC fasta_dump_usage ( const Args * args )
-{
-    rc_t rc;
-    const char * fullname = "fastq-dump";
-    const char * progname = fullname;
-
-    if ( args == NULL )
-        rc = RC( rcApp, rcArgv, rcAccessing, rcSelf, rcNull );
-    else
-        rc = ArgsProgram( args, &fullname, &progname );
-
-    KOutMsg( "\nUsage:\n"
-              "  %s <path> [options]\n"
-              "\n", progname );
-
-    KOutMsg( "Options:\n" );
-
-    HelpOptionLine( ALIAS_OUTF,    OPTION_OUTF,    "output-file", outf_usage );
-    HelpOptionLine( ALIAS_WIDTH,   OPTION_WIDTH,   "bases per line", width_usage );
-    HelpOptionLine( ALIAS_GZIP,    OPTION_GZIP,    "output gzipped", gzip_usage );
-    HelpOptionLine( ALIAS_BZIP,    OPTION_BZIP,    "output bzipped", bzip_usage );
-    HelpOptionLine( ALIAS_REFNAME, OPTION_REFNAME, "reference to dump", refname_usage );
-    HelpOptionLine( ALIAS_FROM,    OPTION_FROM,    "start-offset", from_usage );
-    HelpOptionLine( ALIAS_LENGTH,  OPTION_LENGTH,  "length of sequence", length_usage );
-
-    HelpOptionsStandard ();
-    HelpVersion ( fullname, KAppVersion() );
-    return rc;
-}
diff --git a/tools/sra-dump/fasta_dump.h b/tools/sra-dump/fasta_dump.h
deleted file mode 100644
index 9d3fe8a..0000000
--- a/tools/sra-dump/fasta_dump.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_fasta_dump_hdr_
-#define _h_fasta_dump_hdr_
-
-
-bool fasta_dump_requested( int argc, char* argv[] );
-
-rc_t fasta_dump( int argc, char* argv[] );
-
-rc_t CC fasta_dump_usage ( const Args * args );
-
-#endif
diff --git a/tools/sra-dump/fastq-dump.vers b/tools/sra-dump/fastq-dump.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-dump/fastq-dump.vers
+++ b/tools/sra-dump/fastq-dump.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-dump/fastq-dump.vers.h b/tools/sra-dump/fastq-dump.vers.h
new file mode 100644
index 0000000..56c1ee4
--- /dev/null
+++ b/tools/sra-dump/fastq-dump.vers.h
@@ -0,0 +1 @@
+#define FASTQ_DUMP_VERS 0x02010007
diff --git a/tools/sra-dump/fastq.c b/tools/sra-dump/fastq.c
index f5a1f74..29bb12b 100644
--- a/tools/sra-dump/fastq.c
+++ b/tools/sra-dump/fastq.c
@@ -26,7 +26,6 @@
 #include <klib/log.h>
 #include <klib/out.h>
 #include <klib/container.h>
-#include <klib/text.h>
 #include <kapp/main.h>
 
 #include <sra/sradb.h>
@@ -40,17 +39,12 @@
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
-#include <errno.h>
-#include <strtol.h>
 
 #include "core.h"
 #include "fastq-dump.vers.h"
 #include "debug.h"
 
-#define DATABUFFERINITSIZE 10240
-
-typedef struct TAlignedRegion_struct
-{
+typedef struct TAlignedRegion_struct {
     const char* name;
     uint32_t name_len;
     /* 1-based, 0 - means not set */
@@ -58,16 +52,12 @@ typedef struct TAlignedRegion_struct
     uint64_t to;
 } TAlignedRegion;
 
-
-typedef struct TMatepairDistance_struct
-{
+typedef struct TMatepairDistance_struct {
     uint64_t from;
     uint64_t to;
 } TMatepairDistance;
 
-
-struct FastqArgs_struct
-{
+struct FastqArgs_struct {
     bool is_platform_cs_native;
 
     int maxReads;
@@ -89,7 +79,7 @@ struct FastqArgs_struct
     bool split_files;
     bool split_3;
     bool split_spot;
-    uint64_t fasta;
+    bool fasta;
     const char* file_extension;
     bool aligned;
     bool unaligned;
@@ -100,9 +90,7 @@ struct FastqArgs_struct
     uint32_t mp_dist_qty;
 } FastqArgs;
 
-
-typedef enum DefNodeType_enum
-{
+typedef enum DefNodeType_enum {
     DefNode_Unknown = 0,
     DefNode_Text = 1,
     DefNode_Optional,
@@ -117,180 +105,146 @@ typedef enum DefNodeType_enum
     DefNode_Last
 } DefNodeType;
 
-
-typedef struct DefNode_struct
-{
+typedef struct DefNode_struct {
     SLNode node;
     DefNodeType type;
-    union
-    {
+    union {
         SLList* optional;
         char* text;
     } data;
 } DefNode;
 
-
-typedef struct DeflineData_struct
-{
+typedef struct DeflineData_struct {
     rc_t rc;
     bool optional;
-    union
-    {
+    union {
         spotid_t* id;
-        struct
-        {
+        struct {
             const char* s;
             size_t sz;
         } str;
         uint32_t* u32;
-    } values[ DefNode_Last ];
+    } values[DefNode_Last];
     char* buf;
     size_t buf_sz;
     size_t* writ;
 } DeflineData;
 
-
-static bool CC Defline_Builder( SLNode *node, void *data )
+static
+bool CC Defline_Builder( SLNode *node, void *data )
 {
-    DefNode* n = ( DefNode* )node;
-    DeflineData* d = ( DeflineData* )data;
-    char s[ 256 ];
+    DefNode* n = (DefNode*)node;
+    DeflineData* d = (DeflineData*)data;
+    char s[256];
     size_t w;
     int x = 0;
 
-    s[ 0 ] = '\0';
-    switch ( n->type )
-    {
-        case DefNode_Optional :
+    s[0] = '\0';
+    switch(n->type) {
+        case DefNode_Optional:
             d->optional = true;
             w = *d->writ;
             *d->writ = 0;
             SLListDoUntil( n->data.optional, Defline_Builder, data );
-            x = ( *d->writ == 0 ) ? 0 : 1;
+            x = (*d->writ == 0) ? 0 : 1;
             d->optional = false;
             *d->writ = w;
-            if ( x > 0 )
-            {
+            if( x > 0 ) {
                 SLListDoUntil( n->data.optional, Defline_Builder, data );
             }
             break;
 
-        case DefNode_Text :
-            if ( d->optional )
-            {
+        case DefNode_Text:
+            if( d->optional ) {
                 break;
             }
             d->values[n->type].str.s = n->data.text;
-            d->values[n->type].str.sz = strlen( n->data.text );
-
-        case DefNode_Accession :
-        case DefNode_SpotName :
-        case DefNode_SpotGroup :
-        case DefNode_ReadName :
-            if ( d->values[n->type].str.s != NULL )
-            {
-                x = d->values[ n->type ].str.sz;
-                if ( x < sizeof( s ) )
-                {
-                    strncpy( s, d->values[ n->type ].str.s, x );
-                    s[ x ] = '\0';
+            d->values[n->type].str.sz = strlen(n->data.text);
+        case DefNode_Accession:
+        case DefNode_SpotName:
+        case DefNode_SpotGroup:
+        case DefNode_ReadName:
+            if( d->values[n->type].str.s != NULL ) {
+                x = d->values[n->type].str.sz;
+                if( x < sizeof(s) ) {
+                    strncpy(s, d->values[n->type].str.s, x);
+                    s[x] = '\0';
                     *d->writ = *d->writ + x;
-                }
-                else
-                {
-                    d->rc = RC( rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient );
+                } else {
+                    d->rc = RC(rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient);
                 }
             }
             break;
 
-        case DefNode_SpotId :
-            if ( d->values[ n->type ].id != NULL &&
-                ( !d->optional || *d->values[ n->type ].id > 0 ) )
-            {
-                x = snprintf( s, sizeof( s ), "%u", *d->values[ n->type ].id );
-                if ( x < 0 || x >= sizeof( s ) )
-                {
-                    d->rc = RC( rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient );
-                }
-                else
-                {
+        case DefNode_SpotId:
+            if( d->values[n->type].id != NULL && (!d->optional || *d->values[n->type].id > 0) ) {
+                x = snprintf(s, sizeof(s), "%u", *d->values[n->type].id);
+                if( x < 0 || x >= sizeof(s) ) {
+                    d->rc = RC(rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient);
+                } else {
                     *d->writ = *d->writ + x;
                 }
             }
             break;
 
-        case DefNode_ReadId :
-        case DefNode_SpotLen :
-        case DefNode_ReadLen :
-            if ( d->values[ n->type] .u32 != NULL &&
-                 ( !d->optional || *d->values[ n->type ].u32 > 0 ) )
-            {
-                x = snprintf( s, sizeof( s ), "%u", *d->values[ n->type ].u32 );
-                if ( x < 0 || x >= sizeof( s ) )
-                {
-                    d->rc = RC( rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient );
-                }
-                else
-                {
+        case DefNode_ReadId:
+        case DefNode_SpotLen:
+        case DefNode_ReadLen:
+            if( d->values[n->type].u32 != NULL && (!d->optional || *d->values[n->type].u32 > 0) ) {
+                x = snprintf(s, sizeof(s), "%u", *d->values[n->type].u32);
+                if( x < 0 || x >= sizeof(s) ) {
+                    d->rc = RC(rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient);
+                } else {
                     *d->writ = *d->writ + x;
                 }
             }
             break;
 
         default:
-            d->rc = RC( rcExe, rcNamelist, rcExecuting, rcId, rcInvalid );
-    } /* switch */
-
-    if ( d->rc == 0 && !d->optional && n->type != DefNode_Optional )
-    {
-        if ( *d->writ < d->buf_sz )
-        {
-            strcat( d->buf, s );
-        }
-        else
-        {
-            d->rc = RC( rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient );
+            d->rc = RC(rcExe, rcNamelist, rcExecuting, rcId, rcInvalid);
+    }
+    if( d->rc == 0 && !d->optional && n->type != DefNode_Optional ) {
+        if( *d->writ < d->buf_sz ) {
+            strcat(d->buf, s);
+        } else {
+            d->rc = RC(rcExe, rcNamelist, rcExecuting, rcBuffer, rcInsufficient);
         }
     }
     return d->rc != 0;
 }
 
-
-static rc_t Defline_Bind( DeflineData* data, const char* accession,
-            spotid_t* spotId, const char* spot_name, size_t spotname_sz,
-            const char* spot_group, size_t sgrp_sz, uint32_t* spot_len,
-            uint32_t* readId, const char* read_name, INSDC_coord_len rlabel_sz,
-            INSDC_coord_len* read_len )
-{
-    if ( data == NULL )
-    {
-        return RC( rcExe, rcNamelist, rcExecuting, rcMemory, rcInsufficient );
-    }
-    data->values[ DefNode_Unknown ].str.s = NULL;
-    data->values[ DefNode_Text ].str.s = NULL;
-    data->values[ DefNode_Optional ].str.s = NULL;
-    data->values[ DefNode_Accession ].str.s = accession;
-    data->values[ DefNode_Accession ].str.sz = strlen( accession );
-    data->values[ DefNode_SpotId ].id = spotId;
-    data->values[ DefNode_SpotName ].str.s = spot_name;
-    data->values[ DefNode_SpotName ].str.sz = spotname_sz;
-    data->values[ DefNode_SpotGroup ].str.s = spot_group;
-    data->values[ DefNode_SpotGroup ].str.sz = sgrp_sz;
-    data->values[ DefNode_SpotLen ].u32 = spot_len;
-    data->values[ DefNode_ReadId ].u32 = readId;
-    data->values[ DefNode_ReadName ].str.s = read_name;
-    data->values[ DefNode_ReadName ].str.sz = rlabel_sz;
-    data->values[ DefNode_ReadLen ].u32 = read_len;
+static
+rc_t Defline_Bind(DeflineData* data, const char* accession,
+                  spotid_t* spotId, const char* spot_name, size_t spotname_sz,
+                  const char* spot_group, size_t sgrp_sz, uint32_t* spot_len,
+                  uint32_t* readId, const char* read_name, INSDC_coord_len rlabel_sz, INSDC_coord_len* read_len)
+{
+    if( data == NULL ) {
+        return RC(rcExe, rcNamelist, rcExecuting, rcMemory, rcInsufficient);
+    }
+    data->values[DefNode_Unknown].str.s = NULL;
+    data->values[DefNode_Text].str.s = NULL;
+    data->values[DefNode_Optional].str.s = NULL;
+    data->values[DefNode_Accession].str.s = accession;
+    data->values[DefNode_Accession].str.sz = strlen(accession);
+    data->values[DefNode_SpotId].id = spotId;
+    data->values[DefNode_SpotName].str.s = spot_name;
+    data->values[DefNode_SpotName].str.sz = spotname_sz;
+    data->values[DefNode_SpotGroup].str.s = spot_group;
+    data->values[DefNode_SpotGroup].str.sz = sgrp_sz;
+    data->values[DefNode_SpotLen].u32 = spot_len;
+    data->values[DefNode_ReadId].u32 = readId;
+    data->values[DefNode_ReadName].str.s = read_name;
+    data->values[DefNode_ReadName].str.sz = rlabel_sz;
+    data->values[DefNode_ReadLen].u32 = read_len;
     return 0;
 }
 
-
-static rc_t Defline_Build( const SLList* def, DeflineData* data, char* buf,
-                           size_t buf_sz, size_t* writ )
+static
+rc_t Defline_Build(const SLList* def, DeflineData* data, char* buf, size_t buf_sz, size_t* writ)
 {
-    if ( data == NULL )
-    {
-        return RC( rcExe, rcNamelist, rcExecuting, rcMemory, rcInsufficient );
+    if( data == NULL ) {
+        return RC(rcExe, rcNamelist, rcExecuting, rcMemory, rcInsufficient);
     }
 
     data->rc = 0;
@@ -299,287 +253,253 @@ static rc_t Defline_Build( const SLList* def, DeflineData* data, char* buf,
     data->buf_sz = buf_sz;
     data->writ = writ;
 
-    data->buf[ 0 ] = '\0';
+    data->buf[0] = '\0';
     *data->writ = 0;
 
     SLListDoUntil( def, Defline_Builder, data );
     return data->rc;
 }
 
-
-static rc_t DeflineNode_Add( SLList* list, DefNode** node,
-                            DefNodeType type, const char* text, size_t text_sz )
+static
+rc_t DeflineNode_Add(SLList* list, DefNode** node, DefNodeType type, const char* text, size_t text_sz)
 {
     rc_t rc = 0;
 
-    *node = calloc( 1, sizeof( **node ) );
-    if ( *node == NULL )
-    {
-        rc = RC( rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted );
-    }
-    else if ( type == DefNode_Text && ( text == NULL || text_sz == 0 ) )
-    {
-        rc = RC( rcExe, rcNamelist, rcConstructing, rcParam, rcInvalid );
-    }
-    else
-    {
-        ( *node )->type = type;
-        if ( type == DefNode_Text )
-        {
-            ( *node )->data.text = string_dup( text, text_sz );
-            if ( ( *node )->data.text == NULL )
-            {
-                rc = RC( rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted );
-                free( *node );
-            }
-        }
-        else if ( type == DefNode_Optional )
-        {
-            ( *node )->data.optional = malloc( sizeof( SLList ) );
-            if ( ( *node )->data.optional == NULL )
-            {
-                rc = RC( rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted );
-                free( *node );
+    *node = calloc(1, sizeof(**node));
+    if( *node == NULL ) {
+        rc = RC(rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted);
+    } else if(type == DefNode_Text && (text == NULL || text_sz == 0) ) {
+        rc = RC(rcExe, rcNamelist, rcConstructing, rcParam, rcInvalid);
+    } else {
+        (*node)->type = type;
+        if( type == DefNode_Text ) {
+            (*node)->data.text = strndup(text, text_sz);
+            if( (*node)->data.text == NULL ) {
+                rc = RC(rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted);
+                free(*node);
             }
-            else
-            {
-                SLListInit( ( *node )->data.optional );
+        } else if( type == DefNode_Optional ) {
+            (*node)->data.optional = malloc(sizeof(SLList));
+            if( (*node)->data.optional == NULL ) {
+                rc = RC(rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted);
+                free(*node);
+            } else {
+                SLListInit((*node)->data.optional);
             }
         }
-        if ( rc == 0 )
-        {
-            SLListPushTail( list, &( *node )->node );
+        if( rc == 0 ) {
+            SLListPushTail(list, &(*node)->node);
         }
     }
     return rc;
 }
 
+static
+void Defline_Release(SLList* list);
 
-static void Defline_Release( SLList* list );
-
-
-static void CC DeflineNode_Whack( SLNode* node, void* data )
+static
+void CC DeflineNode_Whack( SLNode* node, void* data )
 {
-    if ( node != NULL )
-    {
+    if( node != NULL ) {
         DefNode* n = (DefNode*)node;
-        if ( n->type == DefNode_Text )
-        {
-            free( n->data.text );
-        }
-        else if ( n->type == DefNode_Optional )
-        {
-            Defline_Release( n->data.optional );
+        if( n->type == DefNode_Text ) {
+            free(n->data.text);
+        } else if( n->type == DefNode_Optional ) {
+            Defline_Release(n->data.optional);
         }
-        free( node );
+        free(node);
     }
 }
 
-
-static void Defline_Release( SLList* list )
+static
+void Defline_Release( SLList* list )
 {
-    if ( list != NULL )
-    {
+    if( list != NULL ) {
         SLListForEach( list, DeflineNode_Whack, NULL );
-        free( list );
+        free(list);
     }
 }
 
-
 #if _DEBUGGING
-static void CC Defline_Dump( SLNode* node, void* data )
+static
+void CC Defline_Dump( SLNode* node, void* data )
 {
-    DefNode* n = ( DefNode* )node;
+    DefNode* n = (DefNode*)node;
     const char* s = NULL, *t;
-    if ( n->type == DefNode_Text )
-    {
+    if( n->type == DefNode_Text ) {
         s = n->data.text;
     }
-    switch ( n->type )
-    {
-        case DefNode_Unknown :      t = "Unknown";   break;
-        case DefNode_Text :         t = "Text";      break;
-        case DefNode_Optional :     t = "Optional";  break;
-        case DefNode_Accession :    t = "Accession"; break;
-        case DefNode_SpotId :       t = "SpotId";    break;
-        case DefNode_SpotName :     t = "SpotName";  break;
-        case DefNode_SpotGroup :    t = "SpotGroup"; break;
-        case DefNode_SpotLen :      t = "SpotLen";   break;
-        case DefNode_ReadId :       t = "ReadId";    break;
-        case DefNode_ReadName :     t = "ReadName";  break;
-        case DefNode_ReadLen :      t = "ReadLen";   break;
-        default :  t = "ERROR";
-    }
-
-    SRA_DUMP_DBG( 3, ( "%s type %s", data, t ) );
-    if ( s )
-    {
-        SRA_DUMP_DBG( 3, ( ": '%s'", s ) );
+    switch(n->type) {
+        case DefNode_Unknown:
+            t = "Unknown";
+            break;
+        case DefNode_Text:
+            t = "Text";
+            break;
+        case DefNode_Optional:
+            t = "Optional";
+            break;
+        case DefNode_Accession:
+            t = "Accession";
+            break;
+        case DefNode_SpotId:
+            t = "SpotId";
+            break;
+        case DefNode_SpotName:
+            t = "SpotName";
+            break;
+        case DefNode_SpotGroup:
+            t = "SpotGroup";
+            break;
+        case DefNode_SpotLen:
+            t = "SpotLen";
+            break;
+        case DefNode_ReadId:
+            t = "ReadId";
+            break;
+        case DefNode_ReadName:
+            t = "ReadName";
+            break;
+        case DefNode_ReadLen:
+            t = "ReadLen";
+            break;
+        default:
+            t = "ERROR";
     }
-    SRA_DUMP_DBG( 3, ( "\n" ) );
-    if ( n->type == DefNode_Optional )
-    {
+
+    SRA_DUMP_DBG(3, ("%s type %s", data, t));
+    if( s ) {
+        SRA_DUMP_DBG(3, (": '%s'", s));
+    }
+    SRA_DUMP_DBG(3, ("\n"));
+    if( n->type == DefNode_Optional ) {
         SLListForEach( n->data.optional, Defline_Dump, "+-->" );
     }
 }
 #endif
 
-
-static rc_t Defline_Parse( SLList** def, const char* line )
+static
+rc_t Defline_Parse(SLList** def, const char* line)
 {
     rc_t rc = 0;
     size_t i, sz, text = 0, opt_vars = 0;
     DefNode* node;
     SLList* list = NULL;
 
-    if ( def == NULL || line == NULL )
-    {
-        return RC( rcExe, rcNamelist, rcConstructing, rcParam, rcInvalid );
+    if( def == NULL || line == NULL ) {
+        return RC(rcExe, rcNamelist, rcConstructing, rcParam, rcInvalid);
     }
-    *def = malloc( sizeof( SLList ) );
-    if ( *def  == NULL )
-    {
-        return RC( rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted );
+    *def = malloc(sizeof(SLList));
+    if( *def  == NULL ) {
+        return RC(rcExe, rcNamelist, rcConstructing, rcMemory, rcExhausted);
     }
-    sz = strlen( line );
+    sz = strlen(line);
     list = *def;
-    SLListInit( list );
+    SLListInit(list);
 
-    for ( i = 0; rc == 0 && i < sz; i++ )
-    {
-        if ( line[ i ] == '[' )
-        {
-            if ( ( i + 1 ) < sz && line[ i + 1 ] == '[' )
-            {
+    for(i = 0; rc == 0 && i < sz; i++ ) {
+        if( line[i] == '[' ) {
+            if( (i + 1) < sz && line[i + 1] == '[' ) {
                 i++;
-            }
-            else
-            {
-                if ( list != *def )
-                {
-                    rc = RC( rcExe, rcNamelist, rcConstructing, rcFormat, rcIncorrect );
-                }
-                else if ( i > text )
-                {
-                    rc = DeflineNode_Add( list, &node, DefNode_Text, &line[text], i - text );
-                }
-                if ( rc == 0 )
-                {
-                    rc = DeflineNode_Add( list, &node, DefNode_Optional, NULL, 0 );
-                    if ( rc == 0 )
-                    {
-                        opt_vars = 0;
-                        list = node->data.optional;
-                        text = i + 1;
-                    }
+            } else {
+                if( list != *def ) {
+                    rc = RC(rcExe, rcNamelist, rcConstructing, rcFormat, rcIncorrect);
+                } else if( i > text ) {
+                    rc = DeflineNode_Add(list, &node, DefNode_Text, &line[text], i - text);
+                }
+                if( rc == 0 && (rc = DeflineNode_Add(list, &node, DefNode_Optional, NULL, 0)) == 0 ) {
+                    opt_vars = 0;
+                    list = node->data.optional;
+                    text = i + 1;
                 }
             }
-        }
-        else if ( line[ i ] == ']' )
-        {
-            if ( ( i + 1 ) < sz && line[ i + 1 ] == ']' )
-            {
+        } else if( line[i] == ']' ) {
+            if( (i + 1) < sz && line[i + 1] == ']' ) {
                 i++;
-            }
-            else
-            {
-                if ( list == *def )
-                {
-                    rc = RC( rcExe, rcNamelist, rcConstructing, rcFormat, rcIncorrect );
-                }
-                else
-                {
-                    if ( opt_vars < 1 )
-                    {
-                        rc = RC( rcExe, rcNamelist, rcConstructing, rcConstraint, rcEmpty );
-                    }
-                    else if ( i > text )
-                    {
-                        rc = DeflineNode_Add( list, &node, DefNode_Text, &line[text], i - text );
+            } else {
+                if( list == *def ) {
+                    rc = RC(rcExe, rcNamelist, rcConstructing, rcFormat, rcIncorrect);
+                } else {
+                    if( opt_vars < 1 ) {
+                        rc = RC(rcExe, rcNamelist, rcConstructing, rcConstraint, rcEmpty);
+                    } else if( i > text ) {
+                        rc = DeflineNode_Add(list, &node, DefNode_Text, &line[text], i - text);
                     }
                     list = *def;
                     text = i + 1;
                 }
             }
-        }
-        else if ( line[ i ] == '$' )
-        {
-            if ( ( i + 1 ) < sz && line[ i + 1 ] == '$' )
-            {
+        } else if( line[i] == '$' ) {
+            if( (i + 1) < sz && line[i + 1] == '$' ) {
                 i++;
-            }
-            else
-            {
+            } else {
                 DefNodeType type = DefNode_Unknown;
-                switch ( line[ ++i] )
-                {
-                    case 'a' :
-                        switch( line[ ++i ] )
-                        {
-                            case 'c': type = DefNode_Accession; break;
+                switch(line[++i]) {
+                    case 'a':
+                        switch(line[++i]) {
+                            case 'c':
+                                type = DefNode_Accession;
+                                break;
                         }
                         break;
-
-                    case 's' :
-                        switch ( line[ ++i ] )
-                        {
-                            case 'i': type = DefNode_SpotId; break;
-                            case 'n': type = DefNode_SpotName; break;
-                            case 'g': type = DefNode_SpotGroup; break;
-                            case 'l': type = DefNode_SpotLen; break;
+                    case 's':
+                        switch(line[++i]) {
+                            case 'i':
+                                type = DefNode_SpotId;
+                                break;
+                            case 'n':
+                                type = DefNode_SpotName;
+                                break;
+                            case 'g':
+                                type = DefNode_SpotGroup;
+                                break;
+                            case 'l':
+                                type = DefNode_SpotLen;
+                                break;
                         }
                         break;
-                    case 'r' :
-                        switch( line[ ++i ] )
-                        {
-                            case 'i': type = DefNode_ReadId; break;
-                            case 'n': type = DefNode_ReadName; break;
-                            case 'l': type = DefNode_ReadLen; break;
+                    case 'r':
+                        switch(line[++i]) {
+                            case 'i':
+                                type = DefNode_ReadId;
+                                break;
+                            case 'n':
+                                type = DefNode_ReadName;
+                                break;
+                            case 'l':
+                                type = DefNode_ReadLen;
+                                break;
                         }
                         break;
                 }
-                if ( type == DefNode_Unknown )
-                {
-                    rc = RC( rcExe, rcNamelist, rcConstructing, rcName, rcUnrecognized );
-                }
-                else
-                {
-                    if ( ( i - 2 ) > text )
-                    {
-                        rc = DeflineNode_Add( list, &node, DefNode_Text, &line[ text ], i - text - 2 );
+                if( type == DefNode_Unknown ) {
+                    rc = RC(rcExe, rcNamelist, rcConstructing, rcName, rcUnrecognized);
+                } else {
+                    if( (i - 2) > text ) {
+                        rc = DeflineNode_Add(list, &node, DefNode_Text, &line[text], i - text - 2);
                     }
-                    if ( rc == 0 )
-                    {
-                        rc = DeflineNode_Add( list, &node, type, NULL, 0 );
-                        if ( rc == 0 )
-                        {
-                            opt_vars++;
-                            text = i + 1;
-                        }
+                    if( rc == 0 && (rc = DeflineNode_Add(list, &node, type, NULL, 0)) == 0 ) {
+                        opt_vars++;
+                        text = i + 1;
                     }
                 }
             }
         }
     }
-    if ( rc == 0 )
-    {
-        if ( list != *def )
-        {
-            rc = RC( rcExe, rcNamelist, rcConstructing, rcFormat, rcInvalid );
-        }
-        else if ( i > text )
-        {
-            rc = DeflineNode_Add( list, &node, DefNode_Text, &line[ text ], i - text );
+    if( rc == 0 ) {
+        if( list != *def ) {
+            rc = RC(rcExe, rcNamelist, rcConstructing, rcFormat, rcInvalid);
+        } else if( i > text ) {
+            rc = DeflineNode_Add(list, &node, DefNode_Text, &line[text], i - text);
         }
     }
-    if ( rc != 0 )
-    {
+    if( rc != 0 ) {
         i = i < sz ? i : sz;
-        PLOGERR( klogErr, ( klogErr, rc, "$(l1) -->$(c)<-- $(l2)",
-                 "l1=%.*s,c=%c,l2=%.*s", i - 1, line, line[ i - 1 ], sz - i, &line[ i ] ) );
+        PLOGERR(klogErr,(klogErr, rc, "$(l1) -->$(c)<-- $(l2)",
+                            "l1=%.*s,c=%c,l2=%.*s", i - 1, line, line[i - 1], sz - i, &line[i]));
     }
 #if _DEBUGGING
-    SRA_DUMP_DBG( 3, ( "| defline\n" ) );
+    SRA_DUMP_DBG(3, ("| defline\n"));
     SLListForEach( *def, Defline_Dump, "+->" );
 #endif
     return rc;
@@ -587,41 +507,31 @@ static rc_t Defline_Parse( SLList** def, const char* line )
 
 /* ### ALIGNMENT_COUNT based filtering ##################################################### */
 
-typedef struct AlignedFilter_struct
-{
+typedef struct AlignedFilter_struct {
     const SRAColumn* col;
     bool aligned;
     bool unaligned;
 } AlignedFilter;
 
-
-static rc_t AlignedFilter_GetKey( const SRASplitter* cself, const char** key,
-                                  spotid_t spot, readmask_t* readmask )
+static
+rc_t AlignedFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    AlignedFilter* self = ( AlignedFilter* )cself;
+    AlignedFilter* self = (AlignedFilter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcSRA, rcNode, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcSRA, rcNode, rcExecuting, rcParam, rcNull);
+    } else {
         *key = "";
-        if ( self->col != NULL )
-        {
+        if( self->col != NULL ) {
             const uint8_t* ac = NULL;
             bitsz_t o = 0, sz = 0;
-            rc = SRAColumnRead( self->col, spot, (const void **)&ac, &o, &sz );
-            if ( rc == 0 )
-            {
-                sz = sz / 8 / sizeof( *ac );
-                for( o = 0; o < sz; o++ )
-                {
-                    if ( ( self->aligned   && !self->unaligned && ac[ o ] == 0 ) ||
-                         ( self->unaligned && !self->aligned   && ac[ o ] != 0 ) )
-                    {
-                        unset_readmask( readmask, o );
+            if( (rc = SRAColumnRead(self->col, spot, (const void **)&ac, &o, &sz)) == 0 ) {
+                sz = sz / 8 / sizeof(*ac);
+                for(o = 0; o < sz; o++) {
+                    if( (self->aligned   && !self->unaligned && ac[o] == 0) ||
+                        (self->unaligned && !self->aligned   && ac[o] != 0) ) {
+                        unset_readmask(readmask, o);
                     }
                 }
             }
@@ -630,37 +540,27 @@ static rc_t AlignedFilter_GetKey( const SRASplitter* cself, const char** key,
     return rc;
 }
 
-
-typedef struct AlignedFilterFactory_struct
-{
+typedef struct AlignedFilterFactory_struct {
     const SRATable* table;
     const SRAColumn* col;
     bool aligned;
     bool unaligned;
 } AlignedFilterFactory;
 
-
-static rc_t AlignedFilterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t AlignedFilterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    AlignedFilterFactory* self = ( AlignedFilterFactory* )cself;
-
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRATableOpenColumnRead( self->table, &self->col, "ALIGNMENT_COUNT", vdb_uint8_t );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) == rcNotFound )
-            {
-                LOGMSG( klogWarn, "Column ALIGNMENT_COUNT was not found, param ignored" );
+    AlignedFilterFactory* self = (AlignedFilterFactory*)cself;
+
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        if( (rc = SRATableOpenColumnRead(self->table, &self->col, "ALIGNMENT_COUNT", vdb_uint8_t)) != 0 ) {
+            if( GetRCState(rc) == rcNotFound ) {
+                LOGMSG(klogWarn, "Column ALIGNMENT_COUNT was not found, param ignored");
                 rc = 0;
-            }
-            else if ( GetRCState( rc ) == rcExists )
-            {
+            } else if( GetRCState(rc) == rcExists ) {
                 rc = 0;
             }
         }
@@ -668,73 +568,56 @@ static rc_t AlignedFilterFactory_Init( const SRASplitterFactory* cself )
     return rc;
 }
 
-
-static rc_t AlignedFilterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t AlignedFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    AlignedFilterFactory* self = ( AlignedFilterFactory* )cself;
+    AlignedFilterFactory* self = (AlignedFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( AlignedFilter ),
-                               AlignedFilter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (AlignedFilter*)(*splitter) )->col = self->col;
-            ( (AlignedFilter*)(*splitter) )->aligned = self->aligned;
-            ( (AlignedFilter*)(*splitter) )->unaligned = self->unaligned;
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(AlignedFilter), AlignedFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((AlignedFilter*)(*splitter))->col = self->col;
+            ((AlignedFilter*)(*splitter))->aligned = self->aligned;
+            ((AlignedFilter*)(*splitter))->unaligned = self->unaligned;
         }
     }
     return rc;
 }
 
-
-static void AlignedFilterFactory_Release( const SRASplitterFactory* cself )
+static
+void AlignedFilterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        AlignedFilterFactory* self = ( AlignedFilterFactory* )cself;
-        SRAColumnRelease( self->col );
+    if( cself != NULL ) {
+        AlignedFilterFactory* self = (AlignedFilterFactory*)cself;
+        SRAColumnRelease(self->col);
     }
 }
 
-
-static rc_t AlignedFilterFactory_Make( const SRASplitterFactory** cself,
-                    const SRATable* table, bool aligned, bool unaligned )
+static
+rc_t AlignedFilterFactory_Make(const SRASplitterFactory** cself, const SRATable* table, bool aligned, bool unaligned)
 {
     rc_t rc = 0;
     AlignedFilterFactory* obj = NULL;
 
-    if ( cself == NULL || table == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcAllocating, rcParam, rcNull );
-    }
-    else
-    {
-        SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                 AlignedFilterFactory_Init,
-                                 AlignedFilterFactory_NewObj,
-                                 AlignedFilterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( AlignedFilterFactory* )*cself;
-            obj->table = table;
-            obj->aligned = aligned;
-            obj->unaligned = unaligned;
-        }
+    if( cself == NULL || table == NULL ) {
+        rc = RC(rcSRA, rcType, rcAllocating, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             AlignedFilterFactory_Init,
+                                             AlignedFilterFactory_NewObj,
+                                             AlignedFilterFactory_Release)) == 0 ) {
+        obj = (AlignedFilterFactory*)*cself;
+        obj->table = table;
+        obj->aligned = aligned;
+        obj->unaligned = unaligned;
     }
     return rc;
 }
 
-
 /* ### alignment region filtering ##################################################### */
 
-typedef struct AlignRegionFilter_struct
-{
+typedef struct AlignRegionFilter_struct {
     const SRAColumn* col_pos;
     const SRAColumn* col_name;
     const SRAColumn* col_seqid;
@@ -742,86 +625,65 @@ typedef struct AlignRegionFilter_struct
     uint32_t alregion_qty;
 } AlignRegionFilter;
 
-
-static rc_t AlignRegionFilter_GetKey( const SRASplitter* cself, const char** key,
-                                      spotid_t spot, readmask_t* readmask )
+static
+rc_t AlignRegionFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    AlignRegionFilter* self = ( AlignRegionFilter* )cself;
+    AlignRegionFilter* self = (AlignRegionFilter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcSRA, rcNode, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcSRA, rcNode, rcExecuting, rcParam, rcNull);
+    } else {
         *key = "";
-        reset_readmask( readmask );
-        if ( self->col_name || self->col_seqid )
-        {
+        reset_readmask(readmask);
+        if( self->col_name || self->col_seqid ) {
             bool match = false;
             uint32_t i;
             const char* nm, *si;
             bitsz_t o, nm_len = 0, si_len = 0;
 
-            if ( self->col_name )
-            {
-                rc = SRAColumnRead( self->col_name, spot, (const void **)&nm, &o, &nm_len );
+            if( self->col_name ) {
+                rc = SRAColumnRead(self->col_name, spot, (const void **)&nm, &o, &nm_len);
                 nm_len /= 8;
             }
-            if ( rc == 0 && self->col_seqid )
-            {
-                rc = SRAColumnRead( self->col_seqid, spot, (const void **)&si, &o, &si_len );
+            if( rc == 0 && self->col_seqid ) {
+                rc = SRAColumnRead(self->col_seqid, spot, (const void **)&si, &o, &si_len);
                 si_len /= 8;
             }
-            for ( i = 0; rc == 0 && i < self->alregion_qty; i++ )
-            {
-                if ( ( self->alregion[i].name_len == nm_len && 
-                       strncasecmp( self->alregion[ i ].name, nm, nm_len ) == 0 ) ||
-                     ( self->alregion[i].name_len == si_len && 
-                       strncasecmp(self->alregion[i].name, si, si_len) == 0 ) )
-                {
-                    if ( self->col_pos )
-                    {
+            for(i = 0; rc == 0 && i < self->alregion_qty; i++) {
+                if( (self->alregion[i].name_len == nm_len && 
+                     strncasecmp(self->alregion[i].name, nm, nm_len) == 0) ||
+                     (self->alregion[i].name_len == si_len && 
+                     strncasecmp(self->alregion[i].name, si, si_len) == 0)) {
+                    if( self->col_pos ) {
                         INSDC_coord_zero* pos;
                         bitsz_t nreads, j;
-                        rc = SRAColumnRead( self->col_pos, spot, ( const void ** )&pos, &o, &nreads );
-                        if ( rc == 0 )
-                        {
+                        if( (rc = SRAColumnRead(self->col_pos, spot, (const void **)&pos, &o, &nreads)) == 0 ) {
                             nreads = nreads / sizeof(*pos) / 8;
-                            for ( i = 0; !match && i < self->alregion_qty; i++ )
-                            {
-                                for ( j = 0; j < nreads; j++ )
-                                {
-                                    if ( self->alregion[i].from <= pos[j] &&
-                                         pos[j] <= self->alregion[i].to )
-                                    {
+                            for(i = 0; !match && i < self->alregion_qty; i++) {
+                                for(j = 0; j < nreads; j++) {
+                                    if( self->alregion[i].from <= pos[j] && pos[j] <= self->alregion[i].to ) {
                                         match = true;
                                         break;
                                     }
                                 }
                             }
                         }
-                    }
-                    else
-                    {
+                    } else {
                         match = true;
                     }
                     break;
                 }
             }
-            if ( !match )
-            {
-                clear_readmask( readmask );
+            if( !match ) {
+                clear_readmask(readmask);
             }
         }
     }
     return rc;
 }
 
-
-typedef struct AlignRegionFilterFactory_struct
-{
+typedef struct AlignRegionFilterFactory_struct {
     const SRATable* table;
     const SRAColumn* col_pos;
     const SRAColumn* col_name;
@@ -830,75 +692,54 @@ typedef struct AlignRegionFilterFactory_struct
     uint32_t alregion_qty;
 } AlignRegionFilterFactory;
 
-
-static rc_t AlignRegionFilterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t AlignRegionFilterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    AlignRegionFilterFactory* self = ( AlignRegionFilterFactory* )cself;
+    AlignRegionFilterFactory* self = (AlignRegionFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
+    } else {
 
 #define COLNF(v,n,t) (!(rc == 0 && ((rc = SRATableOpenColumnRead(self->table, &v, n, t)) == 0 || \
                        GetRCState(rc) == rcExists)) && GetRCState(rc) == rcNotFound)
 
-        if ( COLNF( self->col_name, "REF_NAME", vdb_ascii_t ) )
-        {
-            SRAColumnRelease( self->col_name );
+        if( COLNF(self->col_name, "REF_NAME", vdb_ascii_t) ) {
+            SRAColumnRelease(self->col_name);
             self->col_name = NULL;
             rc = 0;
         }
-
-        if ( COLNF( self->col_seqid, "REF_SEQ_ID", vdb_ascii_t ) )
-        {
-            SRAColumnRelease( self->col_seqid );
+        if( COLNF(self->col_seqid, "REF_SEQ_ID", vdb_ascii_t) ) {
+            SRAColumnRelease(self->col_seqid);
             self->col_seqid = NULL;
             rc = 0;
         }
-
-        if ( self->col_name == NULL && self->col_seqid == NULL )
-        {
-            LOGMSG( klogWarn, "None of columns REF_NAME or REF_SEQ_ID was found, no region filtering" );
-        }
-        else
-        {
+        if( self->col_name == NULL && self->col_seqid == NULL ) {
+            LOGMSG(klogWarn, "None of columns REF_NAME or REF_SEQ_ID was found, no region filtering");
+        } else {
             bool range_used = false;
             uint32_t i;
             /* see if there are any actual ranges set and open col only if yes */
-            for ( i = 0; i < self->alregion_qty; i++ )
-            {
-                if ( self->alregion[ i ].from != 0 || self->alregion[ i ].to != 0 )
-                {
+            for(i = 0; i < self->alregion_qty; i++) {
+                if( self->alregion[i].from != 0 || self->alregion[i].to != 0 ) {
                     range_used = true;
                     break;
                 }
             }
-            if ( range_used )
-            {
-                if ( COLNF( self->col_pos, "REF_POS", "INSDC:coord:zero" ) )
-                {
-                    LOGMSG( klogWarn, "Column REF_POS is not found, no region position filtering" );
+            if( range_used ) {
+                if( COLNF(self->col_pos, "REF_POS", "INSDC:coord:zero") ) {
+                    LOGMSG(klogWarn, "Column REF_POS is not found, no region position filtering");
                     rc = 0;
-                }
-                else
-                {
-                    for ( i = 0; i < self->alregion_qty; i++ )
-                    {
-                        if ( self->alregion[ i ].from > 0 )
-                        {
-                            self->alregion[ i ].from--;
-                        }
-                        if ( self->alregion[ i ].to > 0 )
-                        {
-                            self->alregion[ i ].to--;
+                } else {
+                    for(i = 0; i < self->alregion_qty; i++) {
+                        if( self->alregion[i].from > 0 ) {
+                            self->alregion[i].from--;
                         }
-                        else if ( self->alregion[ i ].to == 0 )
-                        {
-                            self->alregion[ i ].to = ~0;
+                        if( self->alregion[i].to > 0 ) {
+                            self->alregion[i].to--;
+                        } else if( self->alregion[i].to == 0 ) {
+                            self->alregion[i].to = ~0;
                         }
                     }
                 }
@@ -909,115 +750,89 @@ static rc_t AlignRegionFilterFactory_Init( const SRASplitterFactory* cself )
     return rc;
 }
 
-
-static rc_t AlignRegionFilterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t AlignRegionFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    AlignRegionFilterFactory* self = ( AlignRegionFilterFactory* )cself;
+    AlignRegionFilterFactory* self = (AlignRegionFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( AlignRegionFilter ),
-                               AlignRegionFilter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (AlignRegionFilter*)(*splitter) )->col_pos = self->col_pos;
-            ( (AlignRegionFilter*)(*splitter) )->col_name = self->col_name;
-            ( (AlignRegionFilter*)(*splitter) )->col_seqid = self->col_seqid;
-            ( (AlignRegionFilter*)(*splitter) )->alregion = self->alregion;
-            ( (AlignRegionFilter*)(*splitter) )->alregion_qty = self->alregion_qty;
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(AlignRegionFilter), AlignRegionFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((AlignRegionFilter*)(*splitter))->col_pos = self->col_pos;
+            ((AlignRegionFilter*)(*splitter))->col_name = self->col_name;
+            ((AlignRegionFilter*)(*splitter))->col_seqid = self->col_seqid;
+            ((AlignRegionFilter*)(*splitter))->alregion = self->alregion;
+            ((AlignRegionFilter*)(*splitter))->alregion_qty = self->alregion_qty;
         }
     }
     return rc;
 }
 
-
-static void AlignRegionFilterFactory_Release( const SRASplitterFactory* cself )
+static
+void AlignRegionFilterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        AlignRegionFilterFactory* self = ( AlignRegionFilterFactory* )cself;
-        SRAColumnRelease( self->col_pos );
-        SRAColumnRelease( self->col_name );
-        SRAColumnRelease( self->col_seqid );
+    if( cself != NULL ) {
+        AlignRegionFilterFactory* self = (AlignRegionFilterFactory*)cself;
+        SRAColumnRelease(self->col_pos);
+        SRAColumnRelease(self->col_name);
+        SRAColumnRelease(self->col_seqid);
     }
 }
 
-
-static rc_t AlignRegionFilterFactory_Make( const SRASplitterFactory** cself,
-            const SRATable* table, TAlignedRegion* alregion, uint32_t alregion_qty )
+static
+rc_t AlignRegionFilterFactory_Make(const SRASplitterFactory** cself, const SRATable* table,
+                                   TAlignedRegion* alregion, uint32_t alregion_qty)
 {
     rc_t rc = 0;
     AlignRegionFilterFactory* obj = NULL;
 
-    if ( cself == NULL || table == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcAllocating, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                      AlignRegionFilterFactory_Init,
-                                      AlignRegionFilterFactory_NewObj,
-                                      AlignRegionFilterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( AlignRegionFilterFactory* )*cself;
-            obj->table = table;
-            obj->alregion = alregion;
-            obj->alregion_qty = alregion_qty;
-        }
+    if( cself == NULL || table == NULL ) {
+        rc = RC(rcSRA, rcType, rcAllocating, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             AlignRegionFilterFactory_Init,
+                                             AlignRegionFilterFactory_NewObj,
+                                             AlignRegionFilterFactory_Release)) == 0 ) {
+        obj = (AlignRegionFilterFactory*)*cself;
+        obj->table = table;
+        obj->alregion = alregion;
+        obj->alregion_qty = alregion_qty;
     }
     return rc;
 }
 
 /* ### alignment meta-pair distance filtering ##################################################### */
 
-typedef struct AlignPairDistanceFilter_struct
-{
+typedef struct AlignPairDistanceFilter_struct {
     const SRAColumn* col_tlen;
     bool mp_dist_unknown;
     const TMatepairDistance* mp_dist;
     uint32_t mp_dist_qty;
 } AlignPairDistanceFilter;
 
-
-static rc_t AlignPairDistanceFilter_GetKey( const SRASplitter* cself,
-                const char** key, spotid_t spot, readmask_t* readmask )
+static
+rc_t AlignPairDistanceFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    AlignPairDistanceFilter* self = ( AlignPairDistanceFilter* )cself;
+    AlignPairDistanceFilter* self = (AlignPairDistanceFilter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcSRA, rcNode, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcSRA, rcNode, rcExecuting, rcParam, rcNull);
+    } else {
         *key = "";
-        reset_readmask( readmask );
-        if ( self->col_tlen )
-        {
+        reset_readmask(readmask);
+        if( self->col_tlen ) {
             uint32_t i, j;
             bitsz_t o, nreads;
             int32_t* tlen;
-            rc = SRAColumnRead( self->col_tlen, spot, (const void **)&tlen, &o, &nreads );
-            if ( rc == 0 )
-            {
+            if( (rc = SRAColumnRead(self->col_tlen, spot, (const void **)&tlen, &o, &nreads)) == 0 ) {
                 nreads = nreads / sizeof(*tlen) / 8;
-                for ( i = 0; i < self->mp_dist_qty; i++ )
-                {
-                    for ( j = 0; j < nreads; j++ )
-                    {
-                        if ( ( tlen[ j ] == 0 && !self->mp_dist_unknown) ||
-                             ( tlen[ j ] != 0 && 
-                               ( tlen[ j ] < self->mp_dist[ i ].from || self->mp_dist[ i ].to < tlen[ j ] ) ) )
-                        {
-                            unset_readmask( readmask, j );
+                for(i = 0; i < self->mp_dist_qty; i++) {
+                    for(j = 0; j < nreads; j++) {
+                        if( (tlen[j] == 0 && !self->mp_dist_unknown) ||
+                            (tlen[j] != 0 && (tlen[j] < self->mp_dist[i].from || self->mp_dist[i].to < tlen[j])) ) {
+                            unset_readmask(readmask, j);
                         }
                     }
                 }
@@ -1027,9 +842,7 @@ static rc_t AlignPairDistanceFilter_GetKey( const SRASplitter* cself,
     return rc;
 }
 
-
-typedef struct AlignPairDistanceFilterFactory_struct
-{
+typedef struct AlignPairDistanceFilterFactory_struct {
     const SRATable* table;
     const SRAColumn* col_tlen;
     bool mp_dist_unknown;
@@ -1037,33 +850,26 @@ typedef struct AlignPairDistanceFilterFactory_struct
     uint32_t mp_dist_qty;
 } AlignPairDistanceFilterFactory;
 
-
-static rc_t AlignPairDistanceFilterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t AlignPairDistanceFilterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    AlignPairDistanceFilterFactory* self = ( AlignPairDistanceFilterFactory* )cself;
-
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRATableOpenColumnRead( self->table, &self->col_tlen, "TEMPLATE_LEN", "I32" );
-        if( !( rc == 0 || GetRCState( rc ) == rcExists ) && GetRCState( rc ) == rcNotFound )
-        {
-            LOGMSG( klogWarn, "Column TLEN was not found, no distance filtering" );
+    AlignPairDistanceFilterFactory* self = (AlignPairDistanceFilterFactory*)cself;
+
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        if( !((rc = SRATableOpenColumnRead(self->table, &self->col_tlen, "TEMPLATE_LEN", "I32")) == 0 ||
+             GetRCState(rc) == rcExists) && GetRCState(rc) == rcNotFound ) {
+            LOGMSG(klogWarn, "Column TLEN was not found, no distance filtering");
             self->col_tlen = NULL;
             rc = 0;
         }
-        if ( rc == 0 )
-        {
+        if( rc == 0 ) {
             uint32_t i;
-            for ( i = 0; i < self->mp_dist_qty; i++ )
-            {
-                if ( self->mp_dist[ i ].to == 0 )
-                {
-                    self->mp_dist[ i ].to = ~0;
+            for(i = 0; i < self->mp_dist_qty; i++ ) {
+                if( self->mp_dist[i].to == 0 ) {
+                    self->mp_dist[i].to = ~0;
                 }
             }
         }
@@ -1071,1599 +877,1093 @@ static rc_t AlignPairDistanceFilterFactory_Init( const SRASplitterFactory* cself
     return rc;
 }
 
-
-static rc_t AlignPairDistanceFilterFactory_NewObj( const SRASplitterFactory* cself,
-                                                   const SRASplitter** splitter )
+static
+rc_t AlignPairDistanceFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    AlignPairDistanceFilterFactory* self = ( AlignPairDistanceFilterFactory* )cself;
+    AlignPairDistanceFilterFactory* self = (AlignPairDistanceFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( AlignPairDistanceFilter ),
-                               AlignPairDistanceFilter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (AlignPairDistanceFilter*)(*splitter) )->col_tlen = self->col_tlen;
-            ( (AlignPairDistanceFilter*)(*splitter) )->mp_dist_unknown = self->mp_dist_unknown;
-            ( (AlignPairDistanceFilter*)(*splitter) )->mp_dist = self->mp_dist;
-            ( (AlignPairDistanceFilter*)(*splitter) )->mp_dist_qty = self->mp_dist_qty;
+    if( self == NULL ) {
+        rc = RC(rcSRA, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(AlignPairDistanceFilter), AlignPairDistanceFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((AlignPairDistanceFilter*)(*splitter))->col_tlen = self->col_tlen;
+            ((AlignPairDistanceFilter*)(*splitter))->mp_dist_unknown = self->mp_dist_unknown;
+            ((AlignPairDistanceFilter*)(*splitter))->mp_dist = self->mp_dist;
+            ((AlignPairDistanceFilter*)(*splitter))->mp_dist_qty = self->mp_dist_qty;
         }
     }
     return rc;
 }
 
-
-static void AlignPairDistanceFilterFactory_Release( const SRASplitterFactory* cself )
+static
+void AlignPairDistanceFilterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        AlignPairDistanceFilterFactory* self = ( AlignPairDistanceFilterFactory* )cself;
-        SRAColumnRelease( self->col_tlen );
+    if( cself != NULL ) {
+        AlignPairDistanceFilterFactory* self = (AlignPairDistanceFilterFactory*)cself;
+        SRAColumnRelease(self->col_tlen);
     }
 }
 
-
-static rc_t AlignPairDistanceFilterFactory_Make( const SRASplitterFactory** cself,
-        const SRATable* table, bool mp_dist_unknown, TMatepairDistance* mp_dist, uint32_t mp_dist_qty )
+static
+rc_t AlignPairDistanceFilterFactory_Make(const SRASplitterFactory** cself, const SRATable* table,
+                                   bool mp_dist_unknown, TMatepairDistance* mp_dist, uint32_t mp_dist_qty)
 {
     rc_t rc = 0;
     AlignPairDistanceFilterFactory* obj = NULL;
 
-    if ( cself == NULL || table == NULL )
-    {
-        rc = RC( rcSRA, rcType, rcAllocating, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                      AlignPairDistanceFilterFactory_Init,
-                                      AlignPairDistanceFilterFactory_NewObj,
-                                      AlignPairDistanceFilterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( AlignPairDistanceFilterFactory* ) *cself;
-            obj->table = table;
-            obj->mp_dist_unknown = mp_dist_unknown;
-            obj->mp_dist = mp_dist;
-            obj->mp_dist_qty = mp_dist_qty;
-        }
+    if( cself == NULL || table == NULL ) {
+        rc = RC(rcSRA, rcType, rcAllocating, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             AlignPairDistanceFilterFactory_Init,
+                                             AlignPairDistanceFilterFactory_NewObj,
+                                             AlignPairDistanceFilterFactory_Release)) == 0 ) {
+        obj = (AlignPairDistanceFilterFactory*)*cself;
+        obj->table = table;
+        obj->mp_dist_unknown = mp_dist_unknown;
+        obj->mp_dist = mp_dist;
+        obj->mp_dist_qty = mp_dist_qty;
     }
     return rc;
 }
 
-
 /* ============== FASTQ read type (bio/tech) filter ============================ */
 
-typedef struct FastqBioFilter_struct
-{
+typedef struct FastqBioFilter_struct {
     const FastqReader* reader;
 } FastqBioFilter;
 
 
 /* filter out non-bio reads */
-static rc_t FastqBioFilter_GetKey( const SRASplitter* cself, const char** key,
-                                   spotid_t spot, readmask_t* readmask )
+static
+rc_t FastqBioFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    FastqBioFilter* self = ( FastqBioFilter* )cself;
+    FastqBioFilter* self = (FastqBioFilter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcExe, rcNode, rcExecuting, rcParam, rcInvalid );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcExe, rcNode, rcExecuting, rcParam, rcInvalid);
+    } else {
         uint32_t num_reads = 0;
 
         *key = NULL;
-        rc = FastqReaderSeekSpot( self->reader, spot );
-        if ( rc == 0 )
-        {
-            rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads );
-            if ( rc == 0 )
-            {
+        if( (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
+            if( (rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads)) == 0 ) {
                 uint32_t readId;
-                SRA_DUMP_DBG( 3, ( "%s %u row reads: ", __func__, spot ) );
-                for (readId = 0; rc == 0 && readId < num_reads; readId++ )
-                {
-                    if ( isset_readmask( readmask, readId ) )
-                    {
+                SRA_DUMP_DBG(3, ("%s %u row reads: ", __func__, spot));
+                for(readId = 0; rc == 0 && readId < num_reads; readId++) {
+                    if( isset_readmask(readmask, readId) ) {
                         SRAReadTypes read_type;
-                        rc = FastqReader_SpotReadInfo( self->reader, readId + 1, &read_type,
-                                                       NULL, NULL, NULL, NULL);
-                        if ( rc == 0 )
-                        {
-                            if ( !( read_type & SRA_READ_TYPE_BIOLOGICAL ) )
-                            {
-                                unset_readmask( readmask, readId );
-                            }
-                            else
-                            {
-                                SRA_DUMP_DBG( 3, ( " %u", readId ) );
+                        if( (rc = FastqReader_SpotReadInfo(self->reader, readId + 1, &read_type,
+                                                           NULL, NULL, NULL, NULL)) == 0 ) {
+                            if( !(read_type & SRA_READ_TYPE_BIOLOGICAL) ) {
+                                unset_readmask(readmask, readId);
+                            } else {
+                                SRA_DUMP_DBG(3, (" %u", readId));
                             }
                         }
                     }
                 }
                 *key = "";
-                SRA_DUMP_DBG( 3, ( " key '%s'\n", *key ) );
+                SRA_DUMP_DBG(3, (" key '%s'\n", *key));
             }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-            SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
     }
     return rc;
 }
 
-
-typedef struct FastqBioFilterFactory_struct
-{
+typedef struct FastqBioFilterFactory_struct {
     const char* accession;
     const SRATable* table;
     const FastqReader* reader;
 } FastqBioFilterFactory;
 
-
-static rc_t FastqBioFilterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t FastqBioFilterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    FastqBioFilterFactory* self = ( FastqBioFilterFactory* )cself;
+    FastqBioFilterFactory* self = (FastqBioFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = FastqReaderMake( &self->reader, self->table, self->accession,
-                              /* preserve orig spot format to save on conversions */
-                              FastqArgs.is_platform_cs_native, false, FastqArgs.fasta > 0, false, 
-                              false, !FastqArgs.applyClip, 0,
-                              FastqArgs.offset, '\0', 0, 0) ;
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        rc = FastqReaderMake(&self->reader, self->table, self->accession,
+                             /* preserve orig spot format to save on conversions */
+                             FastqArgs.is_platform_cs_native, false, FastqArgs.fasta, false, 
+                             false, !FastqArgs.applyClip, 0,
+                             FastqArgs.offset, '\0', 0, 0);
     }
     return rc;
 }
 
-
-static rc_t FastqBioFilterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t FastqBioFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    FastqBioFilterFactory* self = ( FastqBioFilterFactory* )cself;
+    FastqBioFilterFactory* self = (FastqBioFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( FastqBioFilter ),
-                               FastqBioFilter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (FastqBioFilter*)(*splitter) )->reader = self->reader;
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(FastqBioFilter), FastqBioFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((FastqBioFilter*)(*splitter))->reader = self->reader;
         }
     }
     return rc;
 }
 
-
-static void FastqBioFilterFactory_Release( const SRASplitterFactory* cself )
+static
+void FastqBioFilterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        FastqBioFilterFactory* self = ( FastqBioFilterFactory* )cself;
-        FastqReaderWhack( self->reader );
+    if( cself != NULL ) {
+        FastqBioFilterFactory* self = (FastqBioFilterFactory*)cself;
+        FastqReaderWhack(self->reader);
     }
 }
 
-
-static rc_t FastqBioFilterFactory_Make( const SRASplitterFactory** cself,
-                        const char* accession, const SRATable* table )
+static
+rc_t FastqBioFilterFactory_Make(const SRASplitterFactory** cself, const char* accession, const SRATable* table)
 {
     rc_t rc = 0;
     FastqBioFilterFactory* obj = NULL;
 
-    if ( cself == NULL || accession == NULL || table == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                      FastqBioFilterFactory_Init,
-                                      FastqBioFilterFactory_NewObj,
-                                      FastqBioFilterFactory_Release );
-
-        if ( rc == 0 )
-        {
-            obj = ( FastqBioFilterFactory* )*cself;
-            obj->accession = accession;
-            obj->table = table;
-        }
+    if( cself == NULL || accession == NULL || table == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             FastqBioFilterFactory_Init,
+                                             FastqBioFilterFactory_NewObj,
+                                             FastqBioFilterFactory_Release)) == 0 ) {
+        obj = (FastqBioFilterFactory*)*cself;
+        obj->accession = accession;
+        obj->table = table;
     }
     return rc;
 }
 
-
 /* ============== FASTQ number of reads filter ============================ */
 
-typedef struct FastqRNumberFilter_struct
-{
+typedef struct FastqRNumberFilter_struct {
     const FastqReader* reader;
 } FastqRNumberFilter;
 
 
-static rc_t FastqRNumberFilter_GetKey( const SRASplitter* cself, const char** key,
-                                       spotid_t spot, readmask_t* readmask )
+static
+rc_t FastqRNumberFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    FastqRNumberFilter* self = ( FastqRNumberFilter* )cself;
+    FastqRNumberFilter* self = (FastqRNumberFilter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcExe, rcNode, rcExecuting, rcParam, rcInvalid );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcExe, rcNode, rcExecuting, rcParam, rcInvalid);
+    } else {
         uint32_t num_reads = 0;
 
         *key = NULL;
-        rc = FastqReaderSeekSpot( self->reader, spot );
-        if ( rc == 0 )
-        {
-            rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads );
-            if ( rc == 0 )
-            {
+        if( (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
+            if( (rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads)) == 0 ) {
                 int readId, q;
 
-                SRA_DUMP_DBG( 3, ( "%s %u row reads: ", __func__, spot ) );
-                for ( readId = 0, q = 0; readId < num_reads; readId++ )
-                {
-                    if ( isset_readmask( readmask, readId ) )
-                    {
-                        if ( ++q > FastqArgs.maxReads )
-                        {
-                            unset_readmask( readmask, 1 << readId );
-                        }
-                        else
-                        {
-                            SRA_DUMP_DBG( 3, ( " %u", readId ) );
+                SRA_DUMP_DBG(3, ("%s %u row reads: ", __func__, spot));
+                for(readId = 0, q = 0; readId < num_reads; readId++) {
+                    if( isset_readmask(readmask, readId) ) {
+                        if( ++q > FastqArgs.maxReads ) {
+                            unset_readmask(readmask, 1 << readId);
+                        } else {
+                            SRA_DUMP_DBG(3, (" %u", readId));
                         }
                     }
                 }
                 *key = "";
-                SRA_DUMP_DBG( 3, ( " key '%s'\n", *key ) );
+                SRA_DUMP_DBG(3, (" key '%s'\n", *key));
             }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-            SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
     }
     return rc;
 }
 
-
-typedef struct FastqRNumberFilterFactory_struct
-{
+typedef struct FastqRNumberFilterFactory_struct {
     const char* accession;
     const SRATable* table;
     const FastqReader* reader;
 } FastqRNumberFilterFactory;
 
-
-static rc_t FastqRNumberFilterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t FastqRNumberFilterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    FastqRNumberFilterFactory* self = ( FastqRNumberFilterFactory* )cself;
+    FastqRNumberFilterFactory* self = (FastqRNumberFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = FastqReaderMake( &self->reader, self->table, self->accession,
-                              /* preserve orig spot format to save on conversions */
-                              FastqArgs.is_platform_cs_native, false, FastqArgs.fasta > 0, false, 
-                              false, !FastqArgs.applyClip, 0,
-                              FastqArgs.offset, '\0', 0, 0 );
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        rc = FastqReaderMake(&self->reader, self->table, self->accession,
+                             /* preserve orig spot format to save on conversions */
+                             FastqArgs.is_platform_cs_native, false, FastqArgs.fasta, false, 
+                             false, !FastqArgs.applyClip, 0,
+                             FastqArgs.offset, '\0', 0, 0);
     }
     return rc;
 }
 
-
-static rc_t FastqRNumberFilterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t FastqRNumberFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    FastqRNumberFilterFactory* self = ( FastqRNumberFilterFactory* )cself;
+    FastqRNumberFilterFactory* self = (FastqRNumberFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( FastqRNumberFilter ),
-                               FastqRNumberFilter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (FastqRNumberFilter*)(*splitter) )->reader = self->reader;
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(FastqRNumberFilter), FastqRNumberFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((FastqRNumberFilter*)(*splitter))->reader = self->reader;
         }
     }
     return rc;
 }
 
-
-static void FastqRNumberFilterFactory_Release( const SRASplitterFactory* cself )
+static
+void FastqRNumberFilterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        FastqRNumberFilterFactory* self = ( FastqRNumberFilterFactory* )cself;
-        FastqReaderWhack( self->reader );
+    if( cself != NULL ) {
+        FastqRNumberFilterFactory* self = (FastqRNumberFilterFactory*)cself;
+        FastqReaderWhack(self->reader);
     }
 }
 
-
-static rc_t FastqRNumberFilterFactory_Make( const SRASplitterFactory** cself,
-                                const char* accession, const SRATable* table )
+static
+rc_t FastqRNumberFilterFactory_Make(const SRASplitterFactory** cself, const char* accession, const SRATable* table)
 {
     rc_t rc = 0;
     FastqRNumberFilterFactory* obj = NULL;
 
-    if ( cself == NULL || accession == NULL || table == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                      FastqRNumberFilterFactory_Init,
-                                      FastqRNumberFilterFactory_NewObj,
-                                      FastqRNumberFilterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( FastqRNumberFilterFactory* )*cself;
-            obj->accession = accession;
-            obj->table = table;
-        }
+    if( cself == NULL || accession == NULL || table == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             FastqRNumberFilterFactory_Init,
+                                             FastqRNumberFilterFactory_NewObj,
+                                             FastqRNumberFilterFactory_Release)) == 0 ) {
+        obj = (FastqRNumberFilterFactory*)*cself;
+        obj->accession = accession;
+        obj->table = table;
     }
     return rc;
 }
 
 /* ============== FASTQ quality filter ============================ */
 
-typedef struct FastqQFilter_struct
-{
+typedef struct FastqQFilter_struct {
     const FastqReader* reader;
-    KDataBuffer* kdbuf;
+    char buf[512 * 1024];
 } FastqQFilter;
 
 
 /* filter out reads by leading/trialing quality */
-static rc_t FastqQFilter_GetKey( const SRASplitter* cself, const char** key,
-                                 spotid_t spot, readmask_t* readmask )
+static
+rc_t FastqQFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    FastqQFilter* self = ( FastqQFilter* )cself;
+    FastqQFilter* self = (FastqQFilter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcExe, rcNode, rcExecuting, rcParam, rcInvalid );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcExe, rcNode, rcExecuting, rcParam, rcInvalid);
+    } else {
         uint32_t num_reads = 0, spot_len;
 
         *key = NULL;
-        rc = FastqReaderSeekSpot( self->reader, spot );
-        if ( rc == 0 )
-        {
-            rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, &spot_len, &num_reads );
-            if ( rc == 0 )
-            {
+        if( (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
+            if( (rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, &spot_len, &num_reads)) == 0 ) {
                 static char const* const baseStr = "NNNNNNNNNN";
                 static char const* const colorStr = "..........";
-                static const uint32_t strLen = 10;
+                uint32_t readId, xLen = 10;
 
-                SRA_DUMP_DBG( 3, ( "%s %u row reads: ", __func__, spot ) );
-                if ( FastqArgs.split_spot )
-                {
-                    uint32_t readId;
-                    INSDC_coord_len read_len;
-                    for ( readId = 0; rc == 0 && readId < num_reads; readId++ )
-                    {
-                        if ( isset_readmask( readmask, readId ) )
-                        {
-                            rc = FastqReader_SpotReadInfo( self->reader, readId + 1, NULL, NULL, NULL, NULL, &read_len );
-                            if ( rc == 0 )
-                            {
-                                uint32_t xLen = read_len < strLen ? read_len : strLen;
-                                IF_BUF( ( FastqReaderBase(self->reader, readId + 1,
-                                          self->kdbuf->base, KDataBufferBytes( self->kdbuf ), NULL) ), self->kdbuf, read_len )
-                                {
-                                    const char* b = self->kdbuf->base;
-                                    if ( ( FastqArgs.is_platform_cs_native &&
-                                           ( strncmp( &b[ 1 ], colorStr, xLen) == 0 || strcmp( &b[ read_len - xLen + 1 ], colorStr ) == 0 ) ) ||
-                                           ( strncmp( b, baseStr, xLen ) == 0 || strcmp( &b[ read_len - xLen ], baseStr ) == 0 ) )
-                                    {
-                                        unset_readmask( readmask, readId );
-                                    }
-                                    else
-                                    {
-                                        SRA_DUMP_DBG( 3, ( " %u", readId ) );
+                SRA_DUMP_DBG(3, ("%s %u row reads: ", __func__, spot));
+                if( FastqArgs.split_spot ) {
+                    INSDC_coord_len read_len = 0;
+                    for(readId = 0; rc == 0 && readId < num_reads; readId++) {
+                        if( isset_readmask(readmask, readId) ) {
+                            if( (rc = FastqReader_SpotReadInfo(self->reader, readId + 1, NULL, NULL, NULL, NULL, &read_len)) == 0 ) {
+                                if( read_len < xLen ) {
+                                    xLen = read_len;
+                                }
+                                if( (rc = FastqReaderBase(self->reader, readId + 1, self->buf, sizeof(self->buf), NULL)) == 0 ) {
+                                    if( (FastqArgs.is_platform_cs_native &&
+                                         (strncmp(&self->buf[1], colorStr, xLen) == 0 ||
+                                          strcmp(&self->buf[read_len - xLen + 1], colorStr) == 0)) ||
+                                        (strncmp(self->buf, baseStr, xLen) == 0 ||
+                                         strcmp(&self->buf[read_len - xLen], baseStr) == 0) )  {
+                                        unset_readmask(readmask, readId);
+                                    } else {
+                                        SRA_DUMP_DBG(3, (" %u", readId));
                                     }
                                 }
                             }
                         }
                     }
                     *key = "";
-                }
-                else
-                {
-                    uint32_t xLen = spot_len < strLen ? spot_len : strLen;
-                    IF_BUF( ( FastqReaderBase( self->reader, 0, self->kdbuf->base, KDataBufferBytes( self->kdbuf ), NULL ) ), self->kdbuf, spot_len )
-                    {
-                        const char* b = self->kdbuf->base;
-                        if ( ( FastqArgs.is_platform_cs_native &&
-                               ( strncmp( &b[ 1 ], colorStr, xLen ) == 0 || strcmp( &b[ spot_len - xLen + 1 ], colorStr ) == 0 ) ) ||
-                               ( strncmp( b, baseStr, xLen ) == 0 || strcmp( &b[ spot_len - xLen ], baseStr ) == 0 ) )
-                        {
-                        }
-                        else
-                        {
+                } else {
+                    if( spot_len < xLen ) {
+                        xLen = spot_len;
+                    }
+                    if( (rc = FastqReaderBase(self->reader, 0, self->buf, sizeof(self->buf), NULL)) == 0 ) {
+                        if( (FastqArgs.is_platform_cs_native &&
+                             (strncmp(&self->buf[1], colorStr, xLen) == 0 ||
+                              strcmp(&self->buf[spot_len - xLen + 1], colorStr) == 0)) ||
+                            (strncmp(self->buf, baseStr, xLen) == 0 ||
+                            strcmp(&self->buf[spot_len - xLen], baseStr) == 0) ) {
+                        } else {
                             *key = "";
-                            SRA_DUMP_DBG( 3, ( " whole spot" ) );
+                            SRA_DUMP_DBG(3, (" whole spot"));
                         }
                     }
                 }
-                SRA_DUMP_DBG( 3, ( " key '%s'\n", *key ) );
+                SRA_DUMP_DBG(3, (" key '%s'\n", *key));
             }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-            SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
     }
     return rc;
 }
 
-
-typedef struct FastqQFilterFactory_struct
-{
+typedef struct FastqQFilterFactory_struct {
     const char* accession;
     const SRATable* table;
     const FastqReader* reader;
-    KDataBuffer kdbuf;
 } FastqQFilterFactory;
 
-
-static rc_t FastqQFilterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t FastqQFilterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    FastqQFilterFactory* self = ( FastqQFilterFactory* )cself;
+    FastqQFilterFactory* self = (FastqQFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = KDataBufferMakeBytes( &self->kdbuf, DATABUFFERINITSIZE );
-        if ( rc == 0 )
-        {
-            rc = FastqReaderMake( &self->reader, self->table, self->accession,
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        rc = FastqReaderMake(&self->reader, self->table, self->accession,
                              /* preserve orig spot format to save on conversions */
-                             FastqArgs.is_platform_cs_native, false, FastqArgs.fasta > 0, false, 
+                             FastqArgs.is_platform_cs_native, false, FastqArgs.fasta, false, 
                              false, !FastqArgs.applyClip, 0,
-                             FastqArgs.offset, '\0', 0, 0 );
-        }
+                             FastqArgs.offset, '\0', 0, 0);
     }
     return rc;
 }
 
-
-static rc_t FastqQFilterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t FastqQFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    FastqQFilterFactory* self = ( FastqQFilterFactory* )cself;
+    FastqQFilterFactory* self = (FastqQFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( FastqQFilter ), FastqQFilter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (FastqQFilter*)(*splitter) )->reader = self->reader;
-            ( (FastqQFilter*)(*splitter) )->kdbuf = &self->kdbuf;
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(FastqQFilter), FastqQFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((FastqQFilter*)(*splitter))->reader = self->reader;
         }
     }
     return rc;
 }
 
-
-static void FastqQFilterFactory_Release( const SRASplitterFactory* cself )
+static
+void FastqQFilterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        FastqQFilterFactory* self = ( FastqQFilterFactory* )cself;
-        KDataBufferWhack( &self->kdbuf );
-        FastqReaderWhack( self->reader );
+    if( cself != NULL ) {
+        FastqQFilterFactory* self = (FastqQFilterFactory*)cself;
+        FastqReaderWhack(self->reader);
     }
 }
 
-
-static rc_t FastqQFilterFactory_Make( const SRASplitterFactory** cself,
-                                      const char* accession, const SRATable* table )
+static
+rc_t FastqQFilterFactory_Make(const SRASplitterFactory** cself, const char* accession, const SRATable* table)
 {
     rc_t rc = 0;
     FastqQFilterFactory* obj = NULL;
 
-    if ( cself == NULL || accession == NULL || table == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                      FastqQFilterFactory_Init,
-                                      FastqQFilterFactory_NewObj,
-                                      FastqQFilterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( FastqQFilterFactory* )*cself;
-            obj->accession = accession;
-            obj->table = table;
-        }
+    if( cself == NULL || accession == NULL || table == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             FastqQFilterFactory_Init,
+                                             FastqQFilterFactory_NewObj,
+                                             FastqQFilterFactory_Release)) == 0 ) {
+        obj = (FastqQFilterFactory*)*cself;
+        obj->accession = accession;
+        obj->table = table;
     }
     return rc;
 }
 
-
 /* ============== FASTQ min read length filter ============================ */
 
-
-typedef struct FastqReadLenFilter_struct
-{
+typedef struct FastqReadLenFilter_struct {
     const FastqReader* reader;
 } FastqReadLenFilter;
 
-
-static rc_t FastqReadLenFilter_GetKey( const SRASplitter* cself, const char** key,
-                                       spotid_t spot, readmask_t* readmask )
+static
+rc_t FastqReadLenFilter_GetKey(const SRASplitter* cself, const char** key, spotid_t spot, readmask_t* readmask)
 {
     rc_t rc = 0;
-    FastqReadLenFilter* self = ( FastqReadLenFilter* )cself;
+    FastqReadLenFilter* self = (FastqReadLenFilter*)cself;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcExe, rcNode, rcExecuting, rcParam, rcInvalid );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcExe, rcNode, rcExecuting, rcParam, rcInvalid);
+    } else {
         uint32_t num_reads = 0, spot_len = 0;
 
         *key = NULL;
-        rc = FastqReaderSeekSpot( self->reader, spot );
-        if ( rc == 0 )
-        {
-            rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, &spot_len, &num_reads );
-            if ( rc == 0 )
-            {
-                SRA_DUMP_DBG( 3, ( "%s %u row reads:", __func__, spot ) );
-                if ( FastqArgs.split_spot )
-                {
+        if( rc == 0 && (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
+            if( (rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, &spot_len, &num_reads)) == 0 ) {
+                SRA_DUMP_DBG(3, ("%s %u row reads:", __func__, spot));
+                if( FastqArgs.split_spot ) {
                     uint32_t readId;
                     INSDC_coord_len read_len = 0;
-                    for ( readId = 0; rc == 0 && readId < num_reads; readId++ )
-                    {
-                        if ( isset_readmask( readmask, readId ) )
-                        {
-                            rc = FastqReader_SpotReadInfo( self->reader, readId + 1, NULL, NULL, NULL, NULL, &read_len );
-                            if ( rc == 0 )
-                            {
-                                if ( read_len < FastqArgs.minReadLen )
-                                {
-                                    unset_readmask( readmask, readId );
-                                }
-                                else
-                                {
-                                    SRA_DUMP_DBG( 3, ( " %u", readId ) );
+                    for(readId = 0; rc == 0 && readId < num_reads; readId++) {
+                        if( isset_readmask(readmask, readId) ) {
+                            if( (rc = FastqReader_SpotReadInfo(self->reader, readId + 1, NULL, NULL, NULL, NULL, &read_len)) == 0 ) {
+                                if( read_len < FastqArgs.minReadLen ) {
+                                    unset_readmask(readmask, readId);
+                                } else {
+                                    SRA_DUMP_DBG(3, (" %u", readId));
                                 }
                             }
                         }
                     }
                     *key = "";
-                }
-                else
-                {
-                    if ( spot_len >= FastqArgs.minReadLen )
-                    {
+                } else {
+                    if( spot_len >= FastqArgs.minReadLen ) {
                         *key = "";
-                        SRA_DUMP_DBG( 3, ( " whole spot" ) );
+                        SRA_DUMP_DBG(3, (" whole spot"));
                     }
                 }
-                SRA_DUMP_DBG( 3, ( "\n" ) );
+                SRA_DUMP_DBG(3, ("\n"));
             }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-            SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
     }
     return rc;
 }
 
-
-typedef struct FastqReadLenFilterFactory_struct
-{
+typedef struct FastqReadLenFilterFactory_struct {
     const char* accession;
     const SRATable* table;
     const FastqReader* reader;
 } FastqReadLenFilterFactory;
 
-
-static rc_t FastqReadLenFilterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t FastqReadLenFilterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    FastqReadLenFilterFactory* self = ( FastqReadLenFilterFactory* )cself;
+    FastqReadLenFilterFactory* self = (FastqReadLenFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = FastqReaderMake( &self->reader, self->table, self->accession,
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        rc = FastqReaderMake(&self->reader, self->table, self->accession,
                              /* preserve orig spot format to save on conversions */
-                              FastqArgs.is_platform_cs_native, false, FastqArgs.fasta > 0, false, 
-                              false, !FastqArgs.applyClip, 0,
-                              FastqArgs.offset, '\0', 0, 0 );
+                             FastqArgs.is_platform_cs_native, false, FastqArgs.fasta, false, 
+                             false, !FastqArgs.applyClip, 0,
+                             FastqArgs.offset, '\0', 0, 0);
     }
     return rc;
 }
 
-
-static rc_t FastqReadLenFilterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t FastqReadLenFilterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    FastqReadLenFilterFactory* self = ( FastqReadLenFilterFactory* )cself;
+    FastqReadLenFilterFactory* self = (FastqReadLenFilterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( FastqReadLenFilter ),
-                               FastqReadLenFilter_GetKey, NULL, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (FastqReadLenFilter*)(*splitter) )->reader = self->reader;
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(FastqReadLenFilter), FastqReadLenFilter_GetKey, NULL, NULL, NULL)) == 0 ) {
+            ((FastqReadLenFilter*)(*splitter))->reader = self->reader;
         }
     }
     return rc;
 }
 
-
-static void FastqReadLenFilterFactory_Release( const SRASplitterFactory* cself )
+static
+void FastqReadLenFilterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        FastqReadLenFilterFactory* self = ( FastqReadLenFilterFactory* )cself;
-        FastqReaderWhack( self->reader );
+    if( cself != NULL ) {
+        FastqReadLenFilterFactory* self = (FastqReadLenFilterFactory*)cself;
+        FastqReaderWhack(self->reader);
     }
 }
 
-
-static rc_t FastqReadLenFilterFactory_Make( const SRASplitterFactory** cself,
-                            const char* accession, const SRATable* table )
+static
+rc_t FastqReadLenFilterFactory_Make(const SRASplitterFactory** cself, const char* accession, const SRATable* table)
 {
     rc_t rc = 0;
     FastqReadLenFilterFactory* obj = NULL;
 
-    if ( cself == NULL || accession == NULL || table == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterSpot, sizeof( *obj ),
-                                      FastqReadLenFilterFactory_Init,
-                                      FastqReadLenFilterFactory_NewObj,
-                                      FastqReadLenFilterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( FastqReadLenFilterFactory* )*cself;
-            obj->accession = accession;
-            obj->table = table;
-        }
+    if( cself == NULL || accession == NULL || table == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterSpot, sizeof(*obj),
+                                             FastqReadLenFilterFactory_Init,
+                                             FastqReadLenFilterFactory_NewObj,
+                                             FastqReadLenFilterFactory_Release)) == 0 ) {
+        obj = (FastqReadLenFilterFactory*)*cself;
+        obj->accession = accession;
+        obj->table = table;
     }
     return rc;
 }
 
-
 /* ============== FASTQ read splitter ============================ */
 
 char* FastqReadSplitter_key_buf = NULL;
 
-
-typedef struct FastqReadSplitter_struct
-{
+typedef struct FastqReadSplitter_struct {
     const FastqReader* reader;
     SRASplitter_Keys* keys;
     uint32_t keys_max;
 } FastqReadSplitter;
 
-
-static rc_t FastqReadSplitter_GetKeySet( const SRASplitter* cself, const SRASplitter_Keys** key,
-                    uint32_t* keys, spotid_t spot, const readmask_t* readmask )
+static
+rc_t FastqReadSplitter_GetKeySet(const SRASplitter* cself, const SRASplitter_Keys** key, uint32_t* keys, spotid_t spot, const readmask_t* readmask)
 {
     rc_t rc = 0;
-    FastqReadSplitter* self = ( FastqReadSplitter* )cself;
+    FastqReadSplitter* self = (FastqReadSplitter*)cself;
     const size_t key_offset = 5;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcExe, rcNode, rcExecuting, rcParam, rcInvalid );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcExe, rcNode, rcExecuting, rcParam, rcInvalid);
+    } else {
         uint32_t num_reads = 0;
 
         *keys = 0;
-        if ( FastqReadSplitter_key_buf == NULL )
-        {
+        if( FastqReadSplitter_key_buf == NULL ) {
             /* initial alloc key_buf: "  1\0  2\0...\0  9\0 10\0 11\0...\03220..\08192\0" */
-            if ( nreads_max > 9999 )
-            {
+            if( nreads_max > 9999 ) {
                 /* key_offset and sprintf format size are insufficient for keys longer than 4 digits */
-                rc = RC( rcExe, rcNode, rcExecuting, rcBuffer, rcInsufficient );
-            }
-            else
-            {
-                FastqReadSplitter_key_buf = malloc( nreads_max * key_offset );
-                if ( FastqReadSplitter_key_buf == NULL )
-                {
-                    rc = RC( rcExe, rcNode, rcExecuting, rcMemory, rcExhausted );
-                }
-                else
-                {
-                    /* fill buffer w/keys */
-                    int i;
-                    char* p = FastqReadSplitter_key_buf;
-                    for ( i = 1; rc == 0 && i <= nreads_max; i++ )
-                    {
-                        if ( sprintf( p, "%4u", i ) <= 0 )
-                        {
-                            rc = RC( rcExe, rcNode, rcExecuting, rcTransfer, rcIncomplete );
-                        }
-                        p += key_offset;
+                rc = RC(rcExe, rcNode, rcExecuting, rcBuffer, rcInsufficient);
+            } else if( (FastqReadSplitter_key_buf = malloc(nreads_max * key_offset)) == NULL ) {
+                rc = RC(rcExe, rcNode, rcExecuting, rcMemory, rcExhausted);
+            } else {
+                /* fill buffer w/keys */
+                int i;
+                char* p = FastqReadSplitter_key_buf;
+                for(i = 1; rc == 0 && i <= nreads_max; i++) {
+                    if( sprintf(p, "%4u", i) <= 0 ) {
+                        rc = RC(rcExe, rcNode, rcExecuting, rcTransfer, rcIncomplete);
                     }
+                    p += key_offset;
                 }
             }
         }
+        if( rc == 0 && (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
+            if( (rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads)) == 0 ) {
+                uint32_t readId, good = 0;
 
-        if ( rc == 0 )
-        {
-            rc = FastqReaderSeekSpot( self->reader, spot );
-            if ( rc == 0 )
-            {
-                rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads );
-                if ( rc == 0 )
-                {
-                    uint32_t readId, good = 0;
-
-                    SRA_DUMP_DBG( 3, ( "%s %u row reads:", __func__, spot ) );
-                    for ( readId = 0; rc == 0 && readId < num_reads; readId++ )
-                    {
-                        rc = FastqReader_SpotReadInfo( self->reader, readId + 1, NULL, NULL, NULL, NULL, NULL );
-                        if ( !isset_readmask( readmask, readId ) )
-                        {
-                            continue;
-                        }
-                        if ( self->keys_max < ( good + 1 ) )
-                        {
-                            void* p = realloc( self->keys, sizeof( *self->keys ) * ( good + 1 ) );
-                            if ( p == NULL )
-                            {
-                                rc = RC( rcExe, rcNode, rcExecuting, rcMemory, rcExhausted );
-                                break;
-                            }
-                            else
-                            {
-                                self->keys = p;
-                                self->keys_max = good + 1;
-                            }
-                        }
-                        self->keys[ good ].key = &FastqReadSplitter_key_buf[ readId * key_offset ];
-                        while ( self->keys[ good ].key[ 0 ] == ' ' && self->keys[ good ].key[0] != '\0' )
-                        {
-                            self->keys[ good ].key++;
+                SRA_DUMP_DBG(3, ("%s %u row reads:", __func__, spot));
+                for(readId = 0; rc == 0 && readId < num_reads; readId++) {
+                    rc = FastqReader_SpotReadInfo(self->reader, readId + 1, NULL, NULL, NULL, NULL, NULL);
+                    if( !isset_readmask(readmask, readId) ) {
+                        continue;
+                    }
+                    if( self->keys_max < (good + 1) ) {
+                        void* p = realloc(self->keys, sizeof(*self->keys) * (good + 1));
+                        if( p == NULL ) {
+                            rc = RC(rcExe, rcNode, rcExecuting, rcMemory, rcExhausted);
+                            break;
+                        } else {
+                            self->keys = p;
+                            self->keys_max = good + 1;
                         }
-                        clear_readmask( self->keys[ good ].readmask );
-                        set_readmask( self->keys[good].readmask, readId );
-                        SRA_DUMP_DBG( 3, ( " key['%s']+=%u", self->keys[ good ].key, readId ) );
-                        good++;
                     }
-                    if ( rc == 0 )
-                    {
-                        *key = self->keys;
-                        *keys = good;
+                    self->keys[good].key = &FastqReadSplitter_key_buf[readId * key_offset];
+                    while( self->keys[good].key[0] == ' ' && self->keys[good].key[0] != '\0' ) {
+                        self->keys[good].key++;
                     }
-                    SRA_DUMP_DBG( 3, ( "\n" ) );
+                    clear_readmask(self->keys[good].readmask);
+                    set_readmask(self->keys[good].readmask, readId);
+                    SRA_DUMP_DBG(3, (" key['%s']+=%u", self->keys[good].key, readId));
+                    good++;
                 }
+                if( rc == 0 ) {
+                    *key = self->keys;
+                    *keys = good;
+                }
+                SRA_DUMP_DBG(3, ("\n"));
             }
-            else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-            {
-                SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
-                rc = 0;
-            }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-                SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
-                rc = 0;
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
+            rc = 0;
         }
     }
     return rc;
 }
 
-
-rc_t FastqReadSplitter_Release( const SRASplitter* cself )
+rc_t FastqReadSplitter_Release(const SRASplitter* cself)
 {
-    if ( cself != NULL )
-    {
-        FastqReadSplitter* self = ( FastqReadSplitter* )cself;
-        free( self->keys );
+    if( cself != NULL ) {
+        FastqReadSplitter* self = (FastqReadSplitter*)cself;
+        free(self->keys);
     }
     return 0;
 }
 
-
-typedef struct FastqReadSplitterFactory_struct
-{
+typedef struct FastqReadSplitterFactory_struct {
     const char* accession;
     const SRATable* table;
     const FastqReader* reader;
 } FastqReadSplitterFactory;
 
-
-static rc_t FastqReadSplitterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t FastqReadSplitterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    FastqReadSplitterFactory* self = ( FastqReadSplitterFactory* )cself;
+    FastqReadSplitterFactory* self = (FastqReadSplitterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = FastqReaderMake( &self->reader, self->table, self->accession,
-                              /* preserve orig spot format to save on conversions */
-                              FastqArgs.is_platform_cs_native, false, FastqArgs.fasta > 0, false, 
-                              false, !FastqArgs.applyClip, 0,
-                              FastqArgs.offset, '\0', 0, 0 );
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        rc = FastqReaderMake(&self->reader, self->table, self->accession,
+                             /* preserve orig spot format to save on conversions */
+                             FastqArgs.is_platform_cs_native, false, FastqArgs.fasta, false, 
+                             false, !FastqArgs.applyClip, 0,
+                             FastqArgs.offset, '\0', 0, 0);
     }
     return rc;
 }
 
-
-static rc_t FastqReadSplitterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t FastqReadSplitterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    FastqReadSplitterFactory* self = ( FastqReadSplitterFactory* )cself;
+    FastqReadSplitterFactory* self = (FastqReadSplitterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( FastqReadSplitter ), NULL,
-                               FastqReadSplitter_GetKeySet, NULL, FastqReadSplitter_Release );
-        if ( rc == 0 )
-        {
-            ( (FastqReadSplitter*)(*splitter) )->reader = self->reader;
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(FastqReadSplitter), NULL, FastqReadSplitter_GetKeySet, NULL, FastqReadSplitter_Release)) == 0 ) {
+            ((FastqReadSplitter*)(*splitter))->reader = self->reader;
         }
     }
     return rc;
 }
 
-
-static void FastqReadSplitterFactory_Release( const SRASplitterFactory* cself )
+static
+void FastqReadSplitterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        FastqReadSplitterFactory* self = ( FastqReadSplitterFactory* )cself;
-        FastqReaderWhack( self->reader );
-        free( FastqReadSplitter_key_buf );
-        FastqReadSplitter_key_buf = NULL;
+    if( cself != NULL ) {
+        FastqReadSplitterFactory* self = (FastqReadSplitterFactory*)cself;
+        FastqReaderWhack(self->reader);
+        free(FastqReadSplitter_key_buf);
     }
 }
 
-
-static rc_t FastqReadSplitterFactory_Make( const SRASplitterFactory** cself,
-                const char* accession, const SRATable* table )
+static
+rc_t FastqReadSplitterFactory_Make(const SRASplitterFactory** cself, const char* accession, const SRATable* table)
 {
     rc_t rc = 0;
     FastqReadSplitterFactory* obj = NULL;
 
-    if ( cself == NULL || accession == NULL || table == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterRead, sizeof( *obj ),
-                                      FastqReadSplitterFactory_Init,
-                                      FastqReadSplitterFactory_NewObj,
-                                      FastqReadSplitterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( FastqReadSplitterFactory* )*cself;
-            obj->accession = accession;
-            obj->table = table;
-        }
+    if( cself == NULL || accession == NULL || table == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterRead, sizeof(*obj),
+                                             FastqReadSplitterFactory_Init,
+                                             FastqReadSplitterFactory_NewObj,
+                                             FastqReadSplitterFactory_Release)) == 0 ) {
+        obj = (FastqReadSplitterFactory*)*cself;
+        obj->accession = accession;
+        obj->table = table;
     }
     return rc;
 }
 
-
 /* ============== FASTQ 3 read splitter ============================ */
 
 char* Fastq3ReadSplitter_key_buf = NULL;
 
-typedef struct Fastq3ReadSplitter_struct
-{
+typedef struct Fastq3ReadSplitter_struct {
     const FastqReader* reader;
-    SRASplitter_Keys keys[ 2 ];
+    SRASplitter_Keys keys[2];
 } Fastq3ReadSplitter;
 
-
 /* if all active reads len >= minreadlen, reads are splitted into separate files, otherwise on single key "" is returnded for all reads */
-static rc_t Fastq3ReadSplitter_GetKeySet( const SRASplitter* cself, const SRASplitter_Keys** key,
-            uint32_t* keys, spotid_t spot, const readmask_t* readmask )
+static
+rc_t Fastq3ReadSplitter_GetKeySet(const SRASplitter* cself, const SRASplitter_Keys** key, uint32_t* keys, spotid_t spot, const readmask_t* readmask)
 {
     rc_t rc = 0;
-    Fastq3ReadSplitter* self = ( Fastq3ReadSplitter* )cself;
+    Fastq3ReadSplitter* self = (Fastq3ReadSplitter*)cself;
     const size_t key_offset = 5;
 
-    if ( self == NULL || key == NULL )
-    {
-        rc = RC( rcExe, rcNode, rcExecuting, rcParam, rcInvalid );
-    }
-    else
-    {
+    if( self == NULL || key == NULL ) {
+        rc = RC(rcExe, rcNode, rcExecuting, rcParam, rcInvalid);
+    } else {
         uint32_t num_reads = 0;
 
         *keys = 0;
-        if ( Fastq3ReadSplitter_key_buf == NULL )
-        {
+        if( Fastq3ReadSplitter_key_buf == NULL ) {
             /* initial alloc key_buf: "  1\0  2\0...\0  9\0 10\0 11\0...\03220..\08192\0" */
-            if ( nreads_max > 9999 )
-            {
+            if( nreads_max > 9999 ) {
                 /* key_offset and sprintf format size are insufficient for keys longer than 4 digits */
-                rc = RC( rcExe, rcNode, rcExecuting, rcBuffer, rcInsufficient );
-            }
-            else
-            {
-                Fastq3ReadSplitter_key_buf = malloc( nreads_max * key_offset );
-                if ( Fastq3ReadSplitter_key_buf == NULL )
-                {
-                    rc = RC( rcExe, rcNode, rcExecuting, rcMemory, rcExhausted );
-                }
-                else
-                {
-                    /* fill buffer w/keys */
-                    int i;
-                    char* p = Fastq3ReadSplitter_key_buf;
-                    for ( i = 1; rc == 0 && i <= nreads_max; i++ )
-                    {
-                        if ( sprintf( p, "%4u", i ) <= 0 )
-                        {
-                            rc = RC( rcExe, rcNode, rcExecuting, rcTransfer, rcIncomplete );
-                        }
-                        p += key_offset;
+                rc = RC(rcExe, rcNode, rcExecuting, rcBuffer, rcInsufficient);
+            } else if( (Fastq3ReadSplitter_key_buf = malloc(nreads_max * key_offset)) == NULL ) {
+                rc = RC(rcExe, rcNode, rcExecuting, rcMemory, rcExhausted);
+            } else {
+                /* fill buffer w/keys */
+                int i;
+                char* p = Fastq3ReadSplitter_key_buf;
+                for(i = 1; rc == 0 && i <= nreads_max; i++) {
+                    if( sprintf(p, "%4u", i) <= 0 ) {
+                        rc = RC(rcExe, rcNode, rcExecuting, rcTransfer, rcIncomplete);
                     }
+                    p += key_offset;
                 }
             }
         }
+        if( rc == 0 && (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
+            if( (rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads)) == 0 ) {
+                uint32_t readId, good  = 0;
+                const uint32_t max_reads = sizeof(self->keys) /sizeof(self->keys[0]);
 
-        if ( rc == 0 )
-        {
-            rc = FastqReaderSeekSpot( self->reader, spot );
-            if ( rc == 0 )
-            {
-                rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads );
-                if ( rc == 0 )
-                {
-                    uint32_t readId, good  = 0;
-                    const uint32_t max_reads = sizeof( self->keys ) /sizeof( self->keys[ 0 ] );
-
-                    SRA_DUMP_DBG( 3, ( "%s %u row reads:", __func__, spot ) );
-                    for ( readId = 0; rc == 0 && readId < num_reads && good < max_reads; readId++ )
-                    {
-                        rc = FastqReader_SpotReadInfo( self->reader, readId + 1, NULL, NULL, NULL, NULL, NULL );
-                        if ( !isset_readmask( readmask, readId ) )
-                        {
-                            continue;
-                        }
-                        self->keys[ good ].key = &Fastq3ReadSplitter_key_buf[ good * key_offset ];
-                        while ( self->keys[ good ].key[ 0 ] == ' ' && self->keys[good].key[ 0 ] != '\0' )
-                        {
-                            self->keys[ good ].key++;
-                        }
-                        clear_readmask( self->keys[ good ].readmask );
-                        set_readmask( self->keys[ good ].readmask, readId );
-                        SRA_DUMP_DBG( 3, ( " key['%s']+=%u", self->keys[ good ].key, readId ) );
-                        good++;
+                SRA_DUMP_DBG(3, ("%s %u row reads:", __func__, spot));
+                for(readId = 0; rc == 0 && readId < num_reads && good < max_reads; readId++) {
+                    rc = FastqReader_SpotReadInfo(self->reader, readId + 1, NULL, NULL, NULL, NULL, NULL);
+                    if( !isset_readmask(readmask, readId) ) {
+                        continue;
                     }
-                    if ( rc == 0 )
-                    {
-                        *key = self->keys;
-                        *keys = good;
-                        if ( good != max_reads )
-                        {
-                            /* some are short -> reset keys to same value for all valid reads */
-                            /* run has just one read -> no suffix */
-                            /* or single file was requested */
-                            for ( readId = 0; readId < good; readId++ )
-                            {
-                                self->keys[ readId ].key = "";
-                            }
-                            SRA_DUMP_DBG( 3, ( " all keys joined to ''" ) );
+                    self->keys[good].key = &Fastq3ReadSplitter_key_buf[good * key_offset];
+                    while( self->keys[good].key[0] == ' ' && self->keys[good].key[0] != '\0' ) {
+                        self->keys[good].key++;
+                    }
+                    clear_readmask(self->keys[good].readmask);
+                    set_readmask(self->keys[good].readmask, readId);
+                    SRA_DUMP_DBG(3, (" key['%s']+=%u", self->keys[good].key, readId));
+                    good++;
+                }
+                if( rc == 0 ) {
+                    *key = self->keys;
+                    *keys = good;
+                    if( good != max_reads ) {
+                        /* some are short -> reset keys to same value for all valid reads */
+                        /* run has just one read -> no suffix */
+                        /* or single file was requested */
+                        for(readId = 0; readId < good; readId++) {
+                            self->keys[readId].key = "";
                         }
+                        SRA_DUMP_DBG(3, (" all keys joined to ''"));
                     }
-                    SRA_DUMP_DBG( 3, ( "\n" ) );
                 }
+                SRA_DUMP_DBG(3, ("\n"));
             }
-            else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-            {
-                SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
-                rc = 0;
-            }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-            SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
     }
     return rc;
 }
 
-typedef struct Fastq3ReadSplitterFactory_struct
-{
+typedef struct Fastq3ReadSplitterFactory_struct {
     const char* accession;
     const SRATable* table;
     const FastqReader* reader;
 } Fastq3ReadSplitterFactory;
 
-
-static rc_t Fastq3ReadSplitterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t Fastq3ReadSplitterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    Fastq3ReadSplitterFactory* self = ( Fastq3ReadSplitterFactory* )cself;
+    Fastq3ReadSplitterFactory* self = (Fastq3ReadSplitterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = FastqReaderMake( &self->reader, self->table, self->accession,
-                              /* preserve orig spot format to save on conversions */
-                              FastqArgs.is_platform_cs_native, false, FastqArgs.fasta > 0, false, 
-                              false, !FastqArgs.applyClip, 0,
-                              FastqArgs.offset, '\0', 0, 0 );
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        rc = FastqReaderMake(&self->reader, self->table, self->accession,
+                             /* preserve orig spot format to save on conversions */
+                             FastqArgs.is_platform_cs_native, false, FastqArgs.fasta, false, 
+                             false, !FastqArgs.applyClip, 0,
+                             FastqArgs.offset, '\0', 0, 0);
     }
     return rc;
 }
 
-
-static rc_t Fastq3ReadSplitterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t Fastq3ReadSplitterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    Fastq3ReadSplitterFactory* self = ( Fastq3ReadSplitterFactory* )cself;
+    Fastq3ReadSplitterFactory* self = (Fastq3ReadSplitterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make( splitter, sizeof( Fastq3ReadSplitter ),
-                               NULL, Fastq3ReadSplitter_GetKeySet, NULL, NULL );
-        if ( rc == 0 )
-        {
-            ( (Fastq3ReadSplitter*)(*splitter) )->reader = self->reader;
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(Fastq3ReadSplitter), NULL, Fastq3ReadSplitter_GetKeySet, NULL, NULL)) == 0 ) {
+            ((Fastq3ReadSplitter*)(*splitter))->reader = self->reader;
         }
     }
     return rc;
 }
 
-
-static void Fastq3ReadSplitterFactory_Release( const SRASplitterFactory* cself )
+static
+void Fastq3ReadSplitterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        Fastq3ReadSplitterFactory* self = ( Fastq3ReadSplitterFactory* )cself;
-        FastqReaderWhack( self->reader );
-        free( Fastq3ReadSplitter_key_buf );
+    if( cself != NULL ) {
+        Fastq3ReadSplitterFactory* self = (Fastq3ReadSplitterFactory*)cself;
+        FastqReaderWhack(self->reader);
+        free(Fastq3ReadSplitter_key_buf);
     }
 }
 
-
-static rc_t Fastq3ReadSplitterFactory_Make( const SRASplitterFactory** cself,
-                    const char* accession, const SRATable* table )
+static
+rc_t Fastq3ReadSplitterFactory_Make(const SRASplitterFactory** cself, const char* accession, const SRATable* table)
 {
     rc_t rc = 0;
     Fastq3ReadSplitterFactory* obj = NULL;
 
-    if ( cself == NULL || accession == NULL || table == NULL ) 
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterRead, sizeof( *obj ),
-                                      Fastq3ReadSplitterFactory_Init,
-                                      Fastq3ReadSplitterFactory_NewObj,
-                                      Fastq3ReadSplitterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = ( Fastq3ReadSplitterFactory* )*cself;
-            obj->accession = accession;
-            obj->table = table;
-        }
+    if( cself == NULL || accession == NULL || table == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterRead, sizeof(*obj),
+                                             Fastq3ReadSplitterFactory_Init,
+                                             Fastq3ReadSplitterFactory_NewObj,
+                                             Fastq3ReadSplitterFactory_Release)) == 0 ) {
+        obj = (Fastq3ReadSplitterFactory*)*cself;
+        obj->accession = accession;
+        obj->table = table;
     }
     return rc;
 }
 
-
 /* ============== FASTQ formatter object  ============================ */
 
-
-typedef struct FastqFormatterSplitter_struct
-{
+typedef struct FastqFormatterSplitter_struct {
     const char* accession;
     const FastqReader* reader;
-    KDataBuffer* b[ 5 ];
-    size_t bsz[ 5 ]; /* fifth is for fasta line wrap */
+    char l[4][1024 * 1024];
 } FastqFormatterSplitter;
 
-
-static rc_t FastqFormatterSplitter_WrapLine( const KDataBuffer* src, size_t src_sz,
-                                             KDataBuffer* dst, size_t* dst_sz, const uint64_t width )
-{
-    rc_t rc = 0;
-    size_t sz = src_sz + ( src_sz - 1 ) / width;
-
-    if ( KDataBufferBytes( dst ) < sz )
-    {
-        SRA_DUMP_DBG( 10, ( "%s grow buffer from %u to %u\n", __func__, KDataBufferBytes( dst ), sz + 10 ) );
-        rc = KDataBufferResize( dst, sz + 10 );
-    }
-    if ( rc == 0 )
-    {
-        const char* s = src->base;
-        char* d = dst->base;
-        *dst_sz = sz = src_sz;
-        while ( sz > 0 )
-        {
-            memcpy( d, s, sz > width ? width : sz );
-            if ( sz <= width )
-            {
-                break;
-            }
-            d += width;
-            *d++ = '\n';
-            *dst_sz = *dst_sz + 1;
-            s += width;
-            sz -= width;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t FastqFormatterSplitter_DumpByRead( const SRASplitter* cself, spotid_t spot, const readmask_t* readmask )
+static
+rc_t FastqFormatterSplitter_DumpByRead(const SRASplitter* cself, spotid_t spot, const readmask_t* readmask)
 {
     rc_t rc = 0;
-    FastqFormatterSplitter* self = ( FastqFormatterSplitter* )cself;
+    FastqFormatterSplitter* self = (FastqFormatterSplitter*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else 
-    {
-        rc = FastqReaderSeekSpot( self->reader, spot );
-        if ( rc == 0 )
-        {
-            rc = SRASplitter_FileActivate( cself, FastqArgs.file_extension );
-            if ( rc == 0 )
-            {
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
+            if( (rc = SRASplitter_FileActivate(cself, FastqArgs.file_extension)) == 0 ) {
                 DeflineData def_data;
                 const char* spot_name = NULL, *spot_group = NULL, *read_name = NULL;
                 uint32_t readIdx, spot_len = 0;
                 uint32_t num_reads, readId, k;
-                size_t sname_sz, sgrp_sz;
+                size_t lsz[4], sname_sz, sgrp_sz;
                 INSDC_coord_len rlabel_sz = 0, read_len = 0;
 
-                if ( FastqArgs.b_defline || FastqArgs.q_defline )
-                {
-                    rc = FastqReader_SpotInfo( self->reader, &spot_name, &sname_sz, &spot_group, &sgrp_sz, &spot_len, &num_reads );
-                }
-                else
-                {
-                    rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads );
+                if( FastqArgs.b_defline || FastqArgs.q_defline ) {
+                    rc = FastqReader_SpotInfo(self->reader, &spot_name, &sname_sz, &spot_group, &sgrp_sz, &spot_len, &num_reads);
+                } else {
+                    rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads);
                 }
 
-                for ( readId = 1, readIdx = 1; rc == 0 && readId <= num_reads; readId++, readIdx++ )
-                {
-                    if ( !isset_readmask( readmask, readId - 1 ) )
-                    {
+                for(readId = 1, readIdx = 1; rc == 0 && readId <= num_reads; readId++, readIdx++) {
+                    if( !isset_readmask(readmask, readId - 1) ) {
                         continue;
                     }
-                    if ( FastqArgs.b_defline || FastqArgs.q_defline )
-                    {
-                        rc = FastqReader_SpotReadInfo( self->reader, readId, NULL, &read_name, &rlabel_sz, NULL, &read_len );
-                        if ( rc == 0 )
-                        {
-                            rc = Defline_Bind( &def_data, self->accession, &spot, spot_name, sname_sz, spot_group, sgrp_sz,
-                                               &spot_len, &readIdx, read_name, rlabel_sz, &read_len );
+                    if( FastqArgs.b_defline || FastqArgs.q_defline ) {
+                        if( (rc = FastqReader_SpotReadInfo(self->reader, readId, NULL, &read_name, &rlabel_sz, NULL, &read_len)) == 0 ) {
+                            rc = Defline_Bind(&def_data, self->accession, &spot, spot_name, sname_sz, spot_group, sgrp_sz,
+                                              &spot_len, &readIdx, read_name, rlabel_sz, &read_len);
                         }
                     }
-                    if ( rc == 0 )
-                    {
-                        if ( FastqArgs.b_defline )
-                        {
-                            IF_BUF( ( Defline_Build( FastqArgs.b_defline, &def_data, self->b[0]->base,
-                                      KDataBufferBytes( self->b[0] ), &self->bsz[0] ) ), self->b[0], self->bsz[0] );
-                        }
-                        else
-                        {
-                            IF_BUF( ( FastqReaderBaseName( self->reader, readId, &FastqArgs.dumpCs, self->b[0]->base,
-                                      KDataBufferBytes( self->b[0] ), &self->bsz[0] ) ), self->b[0], self->bsz[0] );
+                    if( rc == 0 ) {
+                        if( FastqArgs.b_defline ) {
+                            rc = Defline_Build(FastqArgs.b_defline, &def_data, self->l[0], sizeof(self->l[0]), &lsz[0]);
+                        } else {
+                            rc = FastqReaderBaseName(self->reader, readId, &FastqArgs.dumpCs, self->l[0], sizeof(self->l[0]), &lsz[0]);
                         }
                     }
-                    if ( rc == 0 )
-                    {
-                        if ( FastqArgs.fasta > 0 )
-                        {
-                            IF_BUF( ( FastqReaderBase( self->reader, readId, self->b[4]->base, KDataBufferBytes( self->b[4] ),
-                                      &self->bsz[4] ) ), self->b[4], self->bsz[4] )
-                            {
-                                rc = FastqFormatterSplitter_WrapLine( self->b[4], self->bsz[4], self->b[1], &self->bsz[1], FastqArgs.fasta );
-                            }
-                        }
-                        else
-                        {
-                            IF_BUF( ( FastqReaderBase( self->reader, readId, self->b[1]->base,
-                                      KDataBufferBytes( self->b[1] ), &self->bsz[1] ) ), self->b[1], self->bsz[1] );
-                        }
+                    if( rc == 0 ) {
+                        rc = FastqReaderBase(self->reader, readId, self->l[1], sizeof(self->l[1]), &lsz[1]);
                     }
-                    if ( !FastqArgs.fasta && rc == 0 )
-                    {
-                        if ( FastqArgs.q_defline )
-                        {
-                            IF_BUF( ( Defline_Build( FastqArgs.q_defline, &def_data, self->b[2]->base,
-                                      KDataBufferBytes( self->b[2] ), &self->bsz[2] ) ), self->b[2], self->bsz[2] );
-                        }
-                        else
-                        {
-                            IF_BUF( ( FastqReaderQualityName( self->reader, readId, &FastqArgs.dumpCs, self->b[2]->base,
-                                      KDataBufferBytes( self->b[2] ), &self->bsz[2] ) ), self->b[2], self->bsz[2] );
+                    if( !FastqArgs.fasta && rc == 0 ) {
+                        if( FastqArgs.q_defline ) {
+                            rc = Defline_Build(FastqArgs.q_defline, &def_data, self->l[2], sizeof(self->l[2]), &lsz[2]);
+                        } else {
+                            rc = FastqReaderQualityName(self->reader, readId, &FastqArgs.dumpCs, self->l[2], sizeof(self->l[2]), &lsz[2]);
                         }
-                        if ( rc == 0 )
-                        {
-                            IF_BUF( ( FastqReaderQuality( self->reader, readId, self->b[3]->base,
-                                      KDataBufferBytes( self->b[3] ), &self->bsz[3] ) ), self->b[3], self->bsz[3] );
+                        if( rc == 0 ) {
+                            rc = FastqReaderQuality(self->reader, readId, self->l[3], sizeof(self->l[3]), &lsz[3]);
                         }
+                    } else if( self->l[0][0] == '@' ) {
+                        self->l[0][0] = '>';
                     }
-                    else if ( ( (char*)(self->b[0]->base))[0] == '@' )
-                    {
-                        ( (char*)(self->b[0]->base) )[0] = '>';
-                    }
-                    for ( k = 0; rc == 0 && k < ( FastqArgs.fasta ? 2 : 4); k++ )
-                    {
-                        rc = SRASplitter_FileWrite( cself, spot, self->b[ k ]->base, self->bsz[ k ] );
-                        if ( rc == 0 )
-                        {
-                            rc = SRASplitter_FileWrite( cself, spot, "\n", 1 );
+                    for(k = 0; rc == 0 && k < (FastqArgs.fasta ? 2 : 4); k++) {
+                        if( (rc = SRASplitter_FileWrite(cself, spot, self->l[k], lsz[k])) == 0 ) {
+                            rc = SRASplitter_FileWrite(cself, spot, "\n", 1);
                         }
                     }
                 }
             }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-            SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
     }
     return rc;
 }
 
-
-static rc_t Fasta_dump( const SRASplitter* cself, FastqFormatterSplitter* self, spotid_t spot, uint32_t columns )
-{
-    uint32_t readId;
-    rc_t rc = FastqFormatterSplitter_WrapLine( self->b[4], self->bsz[4], self->b[1], &self->bsz[1], columns );
-    for ( readId = 0; rc == 0 && readId < 2; readId++ )
-    {
-        rc = SRASplitter_FileWrite( cself, spot, self->b[readId]->base, self->bsz[ readId ] );
-        if ( rc == 0 )
-        {
-            rc = SRASplitter_FileWrite( cself, spot, "\n", 1 );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t FastqFormatterSplitter_DumpBySpot( const SRASplitter* cself, spotid_t spot, const readmask_t* readmask )
+static
+rc_t FastqFormatterSplitter_DumpBySpot(const SRASplitter* cself, spotid_t spot, const readmask_t* readmask)
 {
     rc_t rc = 0;
-    FastqFormatterSplitter* self = ( FastqFormatterSplitter* )cself;
+    FastqFormatterSplitter* self = (FastqFormatterSplitter*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = FastqReaderSeekSpot( self->reader, spot );
-        if ( rc == 0 )
-        {
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = FastqReaderSeekSpot(self->reader, spot)) == 0 ) {
             uint32_t num_reads, readId;
 
-            rc = FastqReader_SpotInfo( self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads );
-            for ( readId = 0; rc == 0 && readId < num_reads; readId++ )
-            {
+            rc = FastqReader_SpotInfo(self->reader, NULL, NULL, NULL, NULL, NULL, &num_reads);
+            for(readId = 0; rc == 0 && readId < num_reads; readId++) {
                 /* if any read in readmask is not set - skip whole spot */
-                if ( !isset_readmask( readmask, readId ) )
-                {
+                if( !isset_readmask(readmask, readId) ) {
                     return 0;
                 }
             }
-            if ( rc == 0 )
-            {
-                rc = SRASplitter_FileActivate( cself, FastqArgs.file_extension );
-                if ( rc == 0 )
-                {
-                    DeflineData def_data;
-                    const char* spot_name = NULL, *spot_group = NULL;
-                    uint32_t spot_len = 0;
-                    size_t writ, sname_sz, sgrp_sz;
-                    const int base_i = FastqArgs.fasta ? 4 : 1;
-
-                    if ( FastqArgs.b_defline || FastqArgs.q_defline )
-                    {
-                        rc = FastqReader_SpotInfo( self->reader, &spot_name, &sname_sz,
-                                                   &spot_group, &sgrp_sz, &spot_len, NULL );
-                        if ( rc == 0 )
-                        {
-                            rc = Defline_Bind( &def_data, self->accession, &spot, spot_name,
-                                               sname_sz, spot_group, sgrp_sz, 
-                                               &spot_len, &readId, NULL, 0, &spot_len );
-                        }
+            if( rc == 0 && (rc = SRASplitter_FileActivate(cself, FastqArgs.file_extension)) == 0 ) {
+                DeflineData def_data;
+                const char* spot_name = NULL, *spot_group = NULL;
+                uint32_t spot_len = 0;
+                size_t lsz[4], writ, sname_sz, sgrp_sz;
+                const size_t lmax = sizeof(self->l[0]);
+
+                if( FastqArgs.b_defline || FastqArgs.q_defline ) {
+                    if( (rc = FastqReader_SpotInfo(self->reader, &spot_name, &sname_sz, &spot_group, &sgrp_sz, &spot_len, NULL)) == 0 ) {
+                        rc = Defline_Bind(&def_data, self->accession, &spot, spot_name, sname_sz, spot_group, sgrp_sz, 
+                                          &spot_len, &readId, NULL, 0, &spot_len);
                     }
-
-                    if ( rc == 0 )
-                    {
-                        if ( FastqArgs.b_defline )
-                        {
-                            IF_BUF( ( Defline_Build( FastqArgs.b_defline, &def_data, self->b[0]->base,
-                                      KDataBufferBytes( self->b[0] ), &self->bsz[0] ) ), self->b[0], self->bsz[0] );
-                        }
-                        else
-                        {
-                            IF_BUF( ( FastqReaderBaseName( self->reader, 0, &FastqArgs.dumpCs, self->b[0]->base,
-                                      KDataBufferBytes( self->b[0] ), &self->bsz[0] ) ), self->b[0], self->bsz[0] );
-                        }
-                        self->bsz[ base_i ] = 0;
-                        if ( !FastqArgs.fasta && rc == 0 )
-                        {
-                            if ( FastqArgs.q_defline )
-                            {
-                                IF_BUF( ( Defline_Build( FastqArgs.q_defline, &def_data, self->b[2]->base,
-                                          KDataBufferBytes( self->b[2] ), &self->bsz[2] ) ), self->b[2], self->bsz[2] );
-                            }
-                            else
-                            {
-                                IF_BUF( ( FastqReaderQualityName( self->reader, 0, &FastqArgs.dumpCs, self->b[2]->base,
-                                          KDataBufferBytes( self->b[2] ), &self->bsz[2] ) ), self->b[2], self->bsz[2] );
-                            }
-                            self->bsz[3] = 0;
-                        }
-                        else if ( ( (char*)(self->b[0]->base) )[0] == '@' )
-                        {
-                            ( (char*)(self->b[0]->base) )[0] = '>';
-                        }
+                }
+                if( rc == 0 ) {
+                    if( FastqArgs.b_defline ) {
+                        rc = Defline_Build(FastqArgs.b_defline, &def_data, self->l[0], sizeof(self->l[0]), &lsz[0]);
+                    } else {
+                        rc = FastqReaderBaseName(self->reader, 0, &FastqArgs.dumpCs, self->l[0], sizeof(self->l[0]), &lsz[0]);
                     }
-
-                    for ( readId = 1; rc == 0 && readId <= num_reads; readId++ )
-                    {
-                        IF_BUF( ( FastqReaderBase( self->reader, readId, &( (char*)(self->b[base_i]->base) )[ self->bsz[ base_i ] ],
-                                  KDataBufferBytes( self->b[ base_i ] ) - self->bsz[ base_i ], &writ) ), self->b[ base_i ], self->bsz[ base_i ] + writ )
-                        {
-                            self->bsz[base_i] += writ;
-                            if ( !FastqArgs.fasta )
-                            {
-                                IF_BUF( ( FastqReaderQuality( self->reader, readId, &( (char*)(self->b[3]->base) )[ self->bsz[3] ],
-                                        KDataBufferBytes( self->b[3] ) - self->bsz[3], &writ ) ), self->b[3], self->bsz[3] + writ )
-                                {
-                                    self->bsz[ 3 ] += writ;
-                                }
-                            }
+                    lsz[1] = 0;
+                    if( !FastqArgs.fasta && rc == 0 ) {
+                        if( FastqArgs.q_defline ) {
+                            rc = Defline_Build(FastqArgs.q_defline, &def_data, self->l[2], sizeof(self->l[2]), &lsz[2]);
+                        } else {
+                            rc = FastqReaderQualityName(self->reader, 0, &FastqArgs.dumpCs, self->l[2], sizeof(self->l[2]), &lsz[2]);
                         }
+                        lsz[3] = 0;
+                    } else if( self->l[0][0] == '@' ) {
+                        self->l[0][0] = '>';
                     }
-
-                    if ( rc == 0 )
-                    {
-                        if ( FastqArgs.fasta > 0 )
-                        {
-                            /* special printint of fasta-output ( line-wrap... ) */
-                            rc = Fasta_dump( cself, self, spot, FastqArgs.fasta );
-                        }
-                        else
-                        {
-                            for ( readId = 0; rc == 0 && readId < 4; readId++ )
-                            {
-                                rc = SRASplitter_FileWrite( cself, spot, self->b[readId]->base, self->bsz[ readId ] );
-                                if ( rc == 0 )
-                                {
-                                    rc = SRASplitter_FileWrite( cself, spot, "\n", 1 );
-                                }
-                            }
-                        }
+                }
+                for(readId = 1; rc == 0 && readId <= num_reads; readId++) {
+                    rc = FastqReaderBase(self->reader, readId, &self->l[1][lsz[1]], lmax - lsz[1], &writ);
+                    lsz[1] += writ;
+                    if( !FastqArgs.fasta && rc == 0 ) {
+                        rc = FastqReaderQuality(self->reader, readId, &self->l[3][lsz[3]], lmax - lsz[3], &writ);
+                        lsz[3] += writ;
+                    }
+                }
+                for(readId = 0; rc == 0 && readId < (FastqArgs.fasta ? 2 : 4); readId++) {
+                    if( (rc = SRASplitter_FileWrite(cself, spot, self->l[readId], lsz[readId])) == 0 ) {
+                        rc = SRASplitter_FileWrite(cself, spot, "\n", 1);
                     }
                 }
             }
-        }
-        else if ( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound )
-        {
-            SRA_DUMP_DBG( 3, ( "%s skipped %u row\n", __func__, spot ) );
+        } else if( GetRCState(rc) == rcNotFound ) {
+            SRA_DUMP_DBG(3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
     }
     return rc;
 }
 
-
-typedef struct FastqFormatterFactory_struct
-{
+typedef struct FastqFormatterFactory_struct {
     const char* accession;
     const SRATable* table;
     const FastqReader* reader;
-    KDataBuffer buf[ 5 ]; /* fifth is for fasta line wrap */
 } FastqFormatterFactory;
 
-
-static rc_t FastqFormatterFactory_Init( const SRASplitterFactory* cself )
+static
+rc_t FastqFormatterFactory_Init(const SRASplitterFactory* cself)
 {
     rc_t rc = 0;
-    FastqFormatterFactory* self = ( FastqFormatterFactory* )cself;
+    FastqFormatterFactory* self = (FastqFormatterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = FastqReaderMake( &self->reader, self->table, self->accession,
-                     FastqArgs.dumpCs, FastqArgs.dumpOrigFmt, FastqArgs.fasta > 0, FastqArgs.dumpCs,
-                     FastqArgs.readIds, !FastqArgs.applyClip, 0,
-                     FastqArgs.offset, FastqArgs.desiredCsKey[ 0 ], 0, 0 );
-        if ( rc == 0 )
-        {
-            int i;
-            for( i = 0; rc == 0 && i < sizeof( self->buf ) / sizeof( self->buf[ 0 ] ); i++ )
-            {
-                rc = KDataBufferMakeBytes( &self->buf[ i ], DATABUFFERINITSIZE );
-            }
-        }
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else {
+        rc = FastqReaderMake(&self->reader, self->table, self->accession,
+                             FastqArgs.dumpCs, FastqArgs.dumpOrigFmt, FastqArgs.fasta, FastqArgs.dumpCs,
+                             FastqArgs.readIds, !FastqArgs.applyClip, 0,
+                             FastqArgs.offset, FastqArgs.desiredCsKey[0], 0, 0);
     }
     return rc;
 }
 
-
-static rc_t FastqFormatterFactory_NewObj( const SRASplitterFactory* cself, const SRASplitter** splitter )
+static
+rc_t FastqFormatterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitter** splitter)
 {
     rc_t rc = 0;
-    FastqFormatterFactory* self = ( FastqFormatterFactory* )cself;
+    FastqFormatterFactory* self = (FastqFormatterFactory*)cself;
 
-    if ( self == NULL )
-    {
-        rc = RC( rcExe, rcType, rcExecuting, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitter_Make ( splitter, sizeof( FastqFormatterSplitter ), NULL, NULL,
-                                FastqArgs.split_spot ?
-                                    FastqFormatterSplitter_DumpByRead :
-                                    FastqFormatterSplitter_DumpBySpot, NULL );
-        if ( rc == 0 )
-        {
-            int i;
-            ( (FastqFormatterSplitter*)(*splitter) )->accession = self->accession;
-            ( (FastqFormatterSplitter*)(*splitter) )->reader = self->reader;
-            for ( i = 0; i < sizeof( self->buf ) / sizeof( self->buf[ 0 ] ); i++ )
-            {
-                ( (FastqFormatterSplitter*)(*splitter) )->b[ i ] = &self->buf[ i ];
-            }
+    if( self == NULL ) {
+        rc = RC(rcExe, rcType, rcExecuting, rcParam, rcNull);
+    } else {
+        if( (rc = SRASplitter_Make(splitter, sizeof(FastqFormatterSplitter), NULL, NULL,
+                                   FastqArgs.split_spot ?
+                                            FastqFormatterSplitter_DumpByRead :
+                                            FastqFormatterSplitter_DumpBySpot, NULL)) == 0 ) {
+            ((FastqFormatterSplitter*)(*splitter))->accession = self->accession;
+            ((FastqFormatterSplitter*)(*splitter))->reader = self->reader;
         }
     }
     return rc;
 }
 
-
-static void FastqFormatterFactory_Release( const SRASplitterFactory* cself )
+static
+void FastqFormatterFactory_Release(const SRASplitterFactory* cself)
 {
-    if ( cself != NULL )
-    {
-        int i;
-        FastqFormatterFactory* self = ( FastqFormatterFactory* )cself;
-        FastqReaderWhack( self->reader );
-        for ( i = 0; i < sizeof( self->buf ) / sizeof( self->buf[ 0 ] ); i++ )
-        {
-            KDataBufferWhack( &self->buf[ i ] );
-        }
+    if( cself != NULL ) {
+        FastqFormatterFactory* self = (FastqFormatterFactory*)cself;
+        FastqReaderWhack(self->reader);
     }
 }
 
-
-static rc_t FastqFormatterFactory_Make( const SRASplitterFactory** cself,
-                const char* accession, const SRATable* table )
+static
+rc_t FastqFormatterFactory_Make(const SRASplitterFactory** cself, const char* accession, const SRATable* table)
 {
     rc_t rc = 0;
     FastqFormatterFactory* obj = NULL;
 
-    if ( cself == NULL || accession == NULL || table == NULL )
-    {
-        rc = RC( rcExe, rcType, rcConstructing, rcParam, rcNull );
-    }
-    else
-    {
-        rc = SRASplitterFactory_Make( cself, eSplitterFormat, sizeof( *obj ),
-                                      FastqFormatterFactory_Init,
-                                      FastqFormatterFactory_NewObj,
-                                      FastqFormatterFactory_Release );
-        if ( rc == 0 )
-        {
-            obj = (FastqFormatterFactory*)*cself;
-            obj->accession = accession;
-            obj->table = table;
-        }
+    if( cself == NULL || accession == NULL || table == NULL ) {
+        rc = RC(rcExe, rcType, rcConstructing, rcParam, rcNull);
+    } else if( (rc = SRASplitterFactory_Make(cself, eSplitterFormat, sizeof(*obj),
+                                             FastqFormatterFactory_Init,
+                                             FastqFormatterFactory_NewObj,
+                                             FastqFormatterFactory_Release)) == 0 ) {
+        obj = (FastqFormatterFactory*)*cself;
+        obj->accession = accession;
+        obj->table = table;
     }
     return rc;
 }
 
-
 /* ### External entry points ##################################################### */
 
-
 const char UsageDefaultName[] = "fastq-dump";
 
-
-rc_t CC UsageSummary ( const char * progname )
+rc_t CC UsageSummary (const char * progname)
 {
     return 0;
 }
@@ -2674,306 +1974,211 @@ ver_t CC KAppVersion( void )
 }
 
 
-rc_t FastqDumper_Usage( const SRADumperFmt* fmt, const SRADumperFmt_Arg* core_args, int first )
+rc_t FastqDumper_Usage(const SRADumperFmt* fmt, const SRADumperFmt_Arg* core_args)
 {
     int i, j;
     /* known core options */
-    const SRADumperFmt_Arg* core[ 13 ];
-
-    memset( (void*)core, 0, sizeof( core ) );
-    for ( i = first; core_args[i].abbr != NULL || core_args[ i ].full != NULL; i++ )
-    {
-        const char* nm = core_args[ i ].abbr;
-        nm = nm ? nm : core_args[ i ].full;
-        if ( strcmp( nm, "A" ) == 0 )
-        {
-            core[ 0 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "O" ) == 0 )
-        {
-            core[ 1 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "N" ) == 0 )
-        {
-            core[ 2 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "X" ) == 0 )
-        {
-            core[ 3 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "G" ) == 0 )
-        {
-            core[ 4 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "spot-groups" ) == 0 )
-        {
-            core[ 5 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "R" ) == 0 )
-        {
-            core[ 6 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "T" ) == 0 )
-        {
-            core[ 7 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "K" ) == 0 )
-        {
-            core[ 8 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "table" ) == 0 )
-        {
-            core[ 9 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "Z" ) == 0 )
-        {
-            core[ 10 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "gzip" ) == 0 )
-        {
-            core[ 11 ] = &core_args[ i ];
-        }
-        else if ( strcmp( nm, "bzip2" ) == 0 )
-        {
-            core[ 12 ] = &core_args[ i ];
+    const SRADumperFmt_Arg* core[13];
+
+    memset(core, 0, sizeof(core));
+    for(i = 0; core_args[i].abbr != NULL || core_args[i].full != NULL; i++) {
+        const char* nm = core_args[i].abbr;
+        nm = nm ? nm : core_args[i].full;
+        if( strcmp(nm, "A") == 0 ) {
+            core[0] = &core_args[i];
+        } else if( strcmp(nm, "O") == 0 ) {
+            core[1] = &core_args[i];
+        } else if( strcmp(nm, "N") == 0 ) {
+            core[2] = &core_args[i];
+        } else if( strcmp(nm, "X") == 0 ) {
+            core[3] = &core_args[i];
+        } else if( strcmp(nm, "G") == 0 ) {
+            core[4] = &core_args[i];
+        } else if( strcmp(nm, "spot-groups") == 0 ) {
+            core[5] = &core_args[i];
+        } else if( strcmp(nm, "R") == 0 ) {
+            core[6] = &core_args[i];
+        } else if( strcmp(nm, "T") == 0 ) {
+            core[7] = &core_args[i];
+        } else if( strcmp(nm, "K") == 0 ) {
+            core[8] = &core_args[i];
+        } else if( strcmp(nm, "table") == 0 ) {
+            core[9] = &core_args[i];
+        } else if( strcmp(nm, "Z") == 0 ) {
+            core[10] = &core_args[i];
+        } else if( strcmp(nm, "gzip") == 0 ) {
+            core[11] = &core_args[i];
+        } else if( strcmp(nm, "bzip2") == 0 ) {
+            core[12] = &core_args[i];
         }
     }
 
 #define OARG(arg,msg) (arg ? HelpOptionLine((arg)->abbr, (arg)->full, (arg)->param, \
                        msg ? msg : (const char**)((arg)->descr)) : ((void)(0)))
 
-    OUTMSG(( "INPUT\n" ));
-    OARG( core[ 0 ], NULL );
-    OARG( core[ 9 ], NULL );
-
-    OUTMSG(( "\nPROCESSING\n" ));
-    OUTMSG(( "\nRead Splitting                     Sequence data may be used in raw form or\n"));
-    OUTMSG(( "                                     split into individual reads\n" ));
-    OARG( &fmt->arg_desc[ 0 ], NULL);
-
-    OUTMSG(( "\nFull Spot Filters                  Applied to the full spot independently\n" ));
-    OUTMSG(( "                                     of --%s\n", fmt->arg_desc[0].full ));
-    OARG( core[ 2 ], NULL );
-    OARG( core[ 3 ], NULL );
-    OARG( core[ 5 ], NULL );
-    OARG( &fmt->arg_desc[ 1 ], NULL );
-
-    OUTMSG(( "\nCommon Filters                     Applied to spots when --%s is not\n",
-                                                  fmt->arg_desc[0].full ));
-    OUTMSG(( "                                     set, otherwise - to individual reads\n" ));
-    OARG( &fmt->arg_desc[ 2 ], NULL );
-    OARG( core[ 6 ], NULL );
-    OARG( &fmt->arg_desc[ 3 ], NULL );
-
-    OUTMSG(( "\nFilters based on alignments        Filters are active when alignment\n" ));
-    OUTMSG(( "                                     data are present\n" ));
-    OARG( &fmt->arg_desc[ 16 ], NULL );
-    OARG( &fmt->arg_desc[ 17 ], NULL );
-    OARG( &fmt->arg_desc[ 18 ], NULL );
-    OARG( &fmt->arg_desc[ 19 ], NULL );
-
-    OUTMSG(( "\nFilters for individual reads       Applied only with --%s set\n",
-                                                  fmt->arg_desc[0].full ));
-    OARG( &fmt->arg_desc[ 4 ], NULL );
-
-    OUTMSG(( "\nOUTPUT\n" ));
-    OARG( core[ 1 ], NULL );
-    OARG( core[ 10 ], NULL );
-    OARG( core[ 11 ], NULL  );
-    OARG( core[ 12 ], NULL);
-
-    OUTMSG(( "\nMultiple File Options              Setting these options will produce more\n" ));
-    OUTMSG(( "                                     than 1 file, each of which will be suffixed\n" ));
-    OUTMSG(( "                                     according to splitting criteria.\n" ));
-    OARG( &fmt->arg_desc[ 5 ], NULL );
-    OARG( &fmt->arg_desc[ 6 ], NULL );
-    OARG( core[ 4 ], NULL );
-    OARG( core[ 6 ], NULL );
-    OARG( core[ 7 ], NULL );
-    OARG( core[ 8 ], NULL );
-
-    OUTMSG(( "\nFORMATTING\n" ));
-    OUTMSG(( "\nSequence\n" ));
-    OARG( &fmt->arg_desc[ 7 ], NULL );
-    OARG( &fmt->arg_desc[ 8 ], NULL );
-
-    OUTMSG(( "\nQuality\n" ));
-    OARG( &fmt->arg_desc[ 9 ], NULL );
-    OARG( &fmt->arg_desc[ 10 ], NULL );
-
-    OUTMSG(( "\nDefline\n" ));
-    OARG( &fmt->arg_desc[ 11 ], NULL );
-    OARG( &fmt->arg_desc[ 12 ], NULL );
-    OARG( &fmt->arg_desc[ 13 ], NULL );
-    OARG( &fmt->arg_desc[ 14 ], NULL );
-    OARG( &fmt->arg_desc[ 15 ], NULL );
-
-    OUTMSG(( "OTHER:\n" ));
-    for ( i = first; core_args[ i ].abbr != NULL || core_args[ i ].full != NULL; i++ )
-    {
+    OUTMSG(("INPUT\n"));
+    OARG(core[0], NULL);
+    OARG(core[9], NULL);
+
+    OUTMSG(("\nPROCESSING\n"));
+    OUTMSG(("\nRead Splitting                     Sequence data may be used in raw form or\n"));
+    OUTMSG(("                                     split into individual reads\n"));
+    OARG(&fmt->arg_desc[0], NULL);
+
+    OUTMSG(("\nFull Spot Filters                  Applied to the full spot independently\n"));
+    OUTMSG(("                                     of --%s\n", fmt->arg_desc[0].full));
+    OARG(core[2], NULL);
+    OARG(core[3], NULL);
+    OARG(core[5], NULL);
+    OARG(&fmt->arg_desc[1], NULL);
+
+    OUTMSG(("\nCommon Filters                     Applied to spots when --%s is not\n",
+                                                  fmt->arg_desc[0].full));
+    OUTMSG(("                                     set, otherwise - to individual reads\n"));
+    OARG(&fmt->arg_desc[2], NULL);
+    OARG(core[6], NULL);
+    OARG(&fmt->arg_desc[3], NULL);
+
+    OUTMSG(("\nFilters based on alignments        Filters are active when alignment\n"));
+    OUTMSG(("                                     data are present\n"));
+    OARG(&fmt->arg_desc[16], NULL);
+    OARG(&fmt->arg_desc[17], NULL);
+    OARG(&fmt->arg_desc[18], NULL);
+    OARG(&fmt->arg_desc[19], NULL);
+
+    OUTMSG(("\nFilters for individual reads       Applied only with --%s set\n",
+                                                  fmt->arg_desc[0].full));
+    OARG(&fmt->arg_desc[4], NULL);
+
+    OUTMSG(("\nOUTPUT\n"));
+    OARG(core[1], NULL);
+    OARG(core[10], NULL);
+    OARG(core[11], NULL);
+    OARG(core[12], NULL);
+
+    OUTMSG(("\nMultiple File Options              Setting these options will produce more\n"));
+    OUTMSG(("                                     than 1 file, each of which will be suffixed\n"));
+    OUTMSG(("                                     according to splitting criteria.\n"));
+    OARG(&fmt->arg_desc[5], NULL);
+    OARG(&fmt->arg_desc[6], NULL);
+    OARG(core[4], NULL);
+    OARG(core[6], NULL);
+    OARG(core[7], NULL);
+    OARG(core[8], NULL);
+
+    OUTMSG(("\nFORMATTING\n"));
+    OUTMSG(("\nSequence\n"));
+    OARG(&fmt->arg_desc[7], NULL);
+    OARG(&fmt->arg_desc[8], NULL);
+
+    OUTMSG(("\nQuality\n"));
+    OARG(&fmt->arg_desc[9], NULL);
+    OARG(&fmt->arg_desc[10], NULL);
+
+    OUTMSG(("\nDefline\n"));
+    OARG(&fmt->arg_desc[11], NULL);
+    OARG(&fmt->arg_desc[12], NULL);
+    OARG(&fmt->arg_desc[13], NULL);
+    OARG(&fmt->arg_desc[14], NULL);
+    OARG(&fmt->arg_desc[15], NULL);
+
+    OUTMSG(("OTHER:\n"));
+    for(i = 0; core_args[i].abbr != NULL || core_args[i].full != NULL; i++) {
         bool print = true;
-        for ( j = 0; j < sizeof( core ) / sizeof( core[ 0 ] ); j++ )
-        {
-            if ( core[ j ] == &core_args[ i ] )
-            {
+        for(j = 0; j < sizeof(core) / sizeof(core[0]); j++) {
+            if( core[j] == &core_args[i] ) {
                 print = false;
                 break;
             }
         }
-        if ( print )
-        {
-            OARG( &core_args[ i ], NULL );
+        if( print ) {
+            OARG(&core_args[i], NULL);
         }
     }
     return 0;
 }
 
-
-rc_t FastqDumper_Release( const SRADumperFmt* fmt )
+rc_t FastqDumper_Release(const SRADumperFmt* fmt)
 {
-    if ( fmt == NULL )
-    {
-        return RC( rcExe, rcFormatter, rcDestroying, rcParam, rcInvalid );
-    }
-    else
-    {
-        Defline_Release( FastqArgs.b_defline );
-        Defline_Release( FastqArgs.q_defline );
-        free( FastqArgs.alregion );
+    if( fmt == NULL ) {
+        return RC(rcExe, rcFormatter, rcDestroying, rcParam, rcInvalid);
+    } else {
+        Defline_Release(FastqArgs.b_defline);
+        Defline_Release(FastqArgs.q_defline);
+        free(FastqArgs.alregion);
     }
     return 0;
 }
 
-
-bool FastqDumper_AddArg( const SRADumperFmt* fmt, GetArg* f, int* i, int argc, char *argv[] )
+bool FastqDumper_AddArg(const SRADumperFmt* fmt, GetArg* f, int* i, int argc, char *argv[])
 {
     const char* arg = NULL;
 
-    if ( fmt == NULL || f == NULL || i == NULL || argv == NULL )
-    {
-        LOGERR( klogErr, RC( rcExe, rcArgv, rcReading, rcParam, rcInvalid ), "null param" );
+    if( fmt == NULL || f == NULL || i == NULL || argv == NULL ) {
+        LOGERR(klogErr, RC(rcExe, rcArgv, rcReading, rcParam, rcInvalid), "null param");
         return false;
-    }
-    else if ( f( fmt, "M", "minReadLen", i, argc, argv, &arg ) )
-    {
-        FastqArgs.minReadLen = AsciiToU32( arg, NULL, NULL );
-    }
-    else if ( f( fmt, "W", "clip", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "M", "minReadLen", i, argc, argv, &arg) ) {
+        FastqArgs.minReadLen = AsciiToU32(arg, NULL, NULL);
+    } else if( f(fmt, "W", "clip", i, argc, argv, NULL) ) {
         FastqArgs.applyClip = true;
-    }
-    else if ( f( fmt, "F", "origfmt", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "F", "origfmt", i, argc, argv, NULL) ) {
         FastqArgs.dumpOrigFmt = true;
-    }
-    else if ( f( fmt, "C", "dumpcs", i, argc, argv, NULL ) )
-    {
-        int k = ( *i ) + 1;
+    } else if( f(fmt, "C", "dumpcs", i, argc, argv, NULL) ) {
+        int k = (*i) + 1;
         FastqArgs.dumpCs = true;
-        if ( k < argc && strlen( argv[ k ] ) == 1 && strchr( "acgtACGT", argv[ k ][ 0 ] ) != NULL )
-        {
-            FastqArgs.desiredCsKey = argv[ k ];
+        if( k < argc && strlen(argv[k]) == 1 && strchr("acgtACGT", argv[k][0]) != NULL ) {
+            FastqArgs.desiredCsKey = argv[k];
             *i = k;
         }
-    }
-    else if ( f( fmt, "B", "dumpbase", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "B", "dumpbase", i, argc, argv, NULL) ) {
         FastqArgs.dumpBase = true;
-    }
-    else if ( f( fmt, "Q", "offset", i, argc, argv, &arg ) )
-    {
-        FastqArgs.offset = AsciiToU32( arg, NULL, NULL );
-    }
-    else if ( f( fmt, "I", "readids", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "Q", "offset", i, argc, argv, &arg) ) {
+        FastqArgs.offset = AsciiToU32(arg, NULL, NULL);
+    } else if( f(fmt, "I", "readids", i, argc, argv, NULL) ) {
         FastqArgs.readIds = true;
-    }
-    else if ( f( fmt, "E", "qual-filter", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "E", "qual-filter", i, argc, argv, NULL) ) {
         FastqArgs.qual_filter = true;
-    }
-    else if ( f( fmt, "DB", "defline-seq", i, argc, argv, &arg ) )
-    {
+    } else if( f(fmt, "DB", "defline-seq", i, argc, argv, &arg) ) {
         FastqArgs.b_deffmt = arg;
-    }
-    else if ( f( fmt, "DQ", "defline-qual", i, argc, argv, &arg ) )
-    {
+    } else if( f(fmt, "DQ", "defline-qual", i, argc, argv, &arg) ) {
         FastqArgs.q_deffmt = arg;
-    }
-    else if ( f( fmt, "TR", "skip-technical", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "TR", "skip-technical", i, argc, argv, NULL) ) {
         FastqArgs.skipTechnical = true;
-    }
-    else if ( f( fmt, "SF", "split-files", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "SF", "split-files", i, argc, argv, NULL) ) {
         FastqArgs.split_spot = true;
         FastqArgs.split_files = true;
-    }
-    else if ( f( fmt, NULL, "split-3", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, NULL, "split-3", i, argc, argv, NULL) ) {
         FastqArgs.split_3 = true;
         FastqArgs.split_spot = true;
         FastqArgs.maxReads = 2;
         FastqArgs.skipTechnical = true;
-    }
-    else if ( f( fmt, "SL", "split-spot", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "SL", "split-spot", i, argc, argv, NULL) ) {
         FastqArgs.split_spot = true;
-    }
-    else if ( f( fmt, "HS", "helicos", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, "HS", "helicos", i, argc, argv, NULL) ) {
         FastqArgs.b_deffmt = "@$sn";
         FastqArgs.q_deffmt =  "+";
-    }
-    else if ( f( fmt, "FA", "fasta", i, argc, argv, NULL ) )
-    {
-        int k = (*i) + 1;
-        FastqArgs.fasta = 70;
-        if ( k < argc && isdigit( argv[ k ][ 0 ] ) )
-        {
-            char* endp = NULL;
-            errno = 0;
-            FastqArgs.fasta = strtou64( argv[ k ], &endp, 10 );
-            if ( errno != 0 || endp == NULL || *endp != '\0' )
-            {
-                return false;
-            }
-            *i = k;
-            if ( FastqArgs.fasta == 0 )
-            {
-                FastqArgs.fasta = ~0;
-            }
-        }
+    } else if( f(fmt, "FA", "fasta", i, argc, argv, NULL) ) {
+        FastqArgs.fasta = true;
         FastqArgs.file_extension = ".fasta";
-    }
-    else if ( f( fmt, NULL, "aligned", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, NULL, "aligned", i, argc, argv, NULL) ) {
         FastqArgs.aligned = true;
-    }
-    else if ( f( fmt, NULL, "unaligned", i, argc, argv, NULL ) )
-    {
+    } else if( f(fmt, NULL, "unaligned", i, argc, argv, NULL) ) {
         FastqArgs.unaligned = true;
-    }
-    else if ( f( fmt, NULL, "aligned-region", i, argc, argv, &arg ) )
-    {
+    } else if( f(fmt, NULL, "aligned-region", i, argc, argv, &arg) ) {
         /* name[:[from][-[to]]] */
-        TAlignedRegion* r = realloc( FastqArgs.alregion, sizeof( *FastqArgs.alregion ) * ++FastqArgs.alregion_qty );
-        if ( r == NULL )
-        {
+        TAlignedRegion* r = realloc(FastqArgs.alregion, sizeof(*FastqArgs.alregion) * ++FastqArgs.alregion_qty);
+        if( r == NULL ) {
             return false;
         }
         FastqArgs.alregion = r;
-        r = &FastqArgs.alregion[ FastqArgs.alregion_qty - 1 ];
-        r->name = strchr( arg, ':' );
+        r = &FastqArgs.alregion[FastqArgs.alregion_qty - 1];
+        r->name = strchr(arg, ':');
         r->from = 0;
         r->to = 0;
-        if ( r->name == NULL )
-        {
+        if( r->name == NULL ) {
             r->name = arg;
-            r->name_len = strlen( arg );
-        }
-        else
-        {
+            r->name_len = strlen(arg);
+        } else {
             const char* c;
             uint64_t* v;
 
@@ -2982,407 +2187,250 @@ bool FastqDumper_AddArg( const SRADumperFmt* fmt, GetArg* f, int* i, int argc, c
             r->name = arg;
 
             v = &r->from;
-            while ( *++c != '\0')
-            {
-                if ( *c == '-' )
-                {
+            while(*++c != '\0') {
+                if( *c == '-' ) {
                     v = &r->to;
-                }
-                else if ( *c == '+' )
-                {
-                    if ( *v != 0 )
-                    {
+                } else if( *c == '+' ) {
+                    if( *v != 0 ) {
                         return false;
                     }
-                }
-                else if ( !isdigit( *c ) )
-                {
+                } else if( !isdigit(*c) ) {
                     return false;
-                }
-                else
-                {
-                    *v = *v * 10 + ( *c - '0' );
+                } else {
+                    *v = *v * 10 + (*c - '0');
                 }
             }
-            if ( r->from > r->to && r->to != 0 )
-            {
+            if( r->from > r->to && r->to != 0 ) {
                 uint64_t x = r->from;
                 r->from = r->to;
                 r->to = x;
             }
         }
-    }
-    else if ( f( fmt, NULL, "matepair-distance", i, argc, argv, &arg ) )
-    {
+    } else if( f(fmt, NULL, "matepair-distance", i, argc, argv, &arg) ) {
         /* from[-to] | [from]-to | unknown */
-        if ( strcmp( arg, "unknown" ) == 0 )
-        {
+        if( strcmp(arg, "unknown") == 0 ) {
             FastqArgs.mp_dist_unknown = true;
-        }
-        else
-        {
+        } else {
             uint64_t* v;
-            TMatepairDistance* p = realloc( FastqArgs.mp_dist, sizeof( *FastqArgs.mp_dist ) * ++FastqArgs.mp_dist_qty );
-            if ( p == NULL )
-            {
+            TMatepairDistance* p = realloc(FastqArgs.mp_dist, sizeof(*FastqArgs.mp_dist) * ++FastqArgs.mp_dist_qty);
+            if( p == NULL ) {
                 return false;
             }
             FastqArgs.mp_dist = p;
-            p = &FastqArgs.mp_dist[ FastqArgs.mp_dist_qty - 1 ];
+            p = &FastqArgs.mp_dist[FastqArgs.mp_dist_qty - 1];
             p->from = 0;
             p->to = 0;
 
             v = &p->from;
-            while ( *++arg != '\0' )
-            {
-                if ( *arg == '-' )
-                {
+            while(*++arg != '\0') {
+                if( *arg == '-' ) {
                     v = &p->to;
-                }
-                else if ( *arg == '+' )
-                {
-                    if ( *v != 0 )
-                    {
+                } else if( *arg == '+' ) {
+                    if( *v != 0 ) {
                         return false;
                     }
-                }
-                else if ( !isdigit( *arg ) )
-                {
+                } else if( !isdigit(*arg) ) {
                     return false;
-                }
-                else
-                {
-                    *v = *v * 10 + ( *arg - '0' );
+                } else {
+                    *v = *v * 10 + (*arg - '0');
                 }
             }
-            if ( p->from > p->to && p->to != 0 )
-            {
+            if( p->from > p->to && p->to != 0 ) {
                 uint64_t x = p->from;
                 p->from = p->to;
                 p->to = x;
             }
-            if ( p->from == 0 && p->to == 0 )
-            {
+            if( p->from == 0 && p->to == 0 ) {
                 FastqArgs.mp_dist_qty--;
             }
         }
-    }
-    else
-    {
+    } else {
         return false;
     }
     return true;
 }
 
-
-rc_t FastqDumper_Factories( const SRADumperFmt* fmt, const SRASplitterFactory** factory )
+rc_t FastqDumper_Factories(const SRADumperFmt* fmt, const SRASplitterFactory** factory)
 {
     rc_t rc = 0;
     const SRASplitterFactory* parent = NULL, *child = NULL;
 
-    if ( fmt == NULL || factory == NULL )
-    {
-        return RC( rcExe, rcFormatter, rcReading, rcParam, rcInvalid );
+    if( fmt == NULL || factory == NULL ) {
+        return RC(rcExe, rcFormatter, rcReading, rcParam, rcInvalid);
     }
     *factory = NULL;
     {
         const SRAColumn* c = NULL;
-        rc = SRATableOpenColumnRead( fmt->table, &c, "PLATFORM", sra_platform_id_t );
-        if ( rc == 0 )
-        {
-            const INSDC_SRA_platform_id * platform;
+        if( (rc = SRATableOpenColumnRead(fmt->table, &c, "PLATFORM", sra_platform_id_t)) == 0 ) {
+            const INSDC_SRA_platform_id* platform;
             bitsz_t o, z;
-            rc = SRAColumnRead( c, 1, ( const void ** )&platform, &o, &z );
-            if ( rc == 0 )
-            {
-                if ( !FastqArgs.dumpCs && !FastqArgs.dumpBase )
-                {
-                    if ( platform != NULL && *platform == SRA_PLATFORM_ABSOLID )
-                    {
+            if( (rc = SRAColumnRead(c, 1, (const void **)&platform, &o, &z)) == 0 ) {
+                if( !FastqArgs.dumpCs && !FastqArgs.dumpBase ) {
+                    if( *platform == SRA_PLATFORM_ABSOLID ) {
                         FastqArgs.dumpCs = true;
-                    }
-                    else
-                    {
+                    } else {
                         FastqArgs.dumpBase = true;
                     }
                 }
-                if ( platform != NULL && *platform == SRA_PLATFORM_ABSOLID )
-                {
+                if( *platform == SRA_PLATFORM_ABSOLID ) {
                     FastqArgs.is_platform_cs_native = true;
                 }
             }
-            SRAColumnRelease( c );
-        }
-        else if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcColumn )
-        {
+            SRAColumnRelease(c);
+        } else if( GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcColumn ) {
             rc = 0;
         }
     }
-
-    if ( ( FastqArgs.aligned || FastqArgs.unaligned ) && !( FastqArgs.aligned && FastqArgs.unaligned ) )
-    {
-        rc = AlignedFilterFactory_Make( &child, fmt->table, FastqArgs.aligned, FastqArgs.unaligned );
-        if ( rc == 0 )
-        {
-            if ( parent != NULL )
-            {
-                rc = SRASplitterFactory_AddNext( parent, child );
-                if ( rc != 0 )
-                {
+    if( (FastqArgs.aligned || FastqArgs.unaligned) && !(FastqArgs.aligned && FastqArgs.unaligned) ) {
+        if( (rc = AlignedFilterFactory_Make(&child, fmt->table, FastqArgs.aligned, FastqArgs.unaligned)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
                     SRASplitterFactory_Release(child);
-                }
-                else
-                {
+                } else {
                     parent = child;
                 }
-            }
-            else
-            {
+            } else {
                 parent = child;
                 *factory = parent;
             }
         }
     }
-
-    if ( FastqArgs.alregion_qty > 0 )
-    {
-        rc = AlignRegionFilterFactory_Make( &child, fmt->table, FastqArgs.alregion, FastqArgs.alregion_qty );
-        if ( rc == 0 )
-        {
-            if ( parent != NULL )
-            {
-                rc = SRASplitterFactory_AddNext( parent, child );
-                if ( rc != 0 )
-                {
-                    SRASplitterFactory_Release( child );
-                }
-                else
-                {
+    if( FastqArgs.alregion_qty > 0 ) {
+        if( (rc = AlignRegionFilterFactory_Make(&child, fmt->table, FastqArgs.alregion, FastqArgs.alregion_qty)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
+                    SRASplitterFactory_Release(child);
+                } else {
                     parent = child;
                 }
-            }
-            else
-            {
+            } else {
                 parent = child;
                 *factory = parent;
             }
         }
     }
-
-    if ( FastqArgs.mp_dist_unknown || FastqArgs.mp_dist_qty > 0 )
-    {
-        rc = AlignPairDistanceFilterFactory_Make( &child, fmt->table,
-                FastqArgs.mp_dist_unknown, FastqArgs.mp_dist, FastqArgs.mp_dist_qty);
-        if ( rc == 0 )
-        {
-            if ( parent != NULL )
-            {
-                rc = SRASplitterFactory_AddNext( parent, child );
-                if ( rc != 0 )
-                {
+    if( FastqArgs.mp_dist_unknown || FastqArgs.mp_dist_qty > 0 ) {
+        if( (rc = AlignPairDistanceFilterFactory_Make(&child, fmt->table,
+                                        FastqArgs.mp_dist_unknown, FastqArgs.mp_dist, FastqArgs.mp_dist_qty)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
                     SRASplitterFactory_Release(child);
-                }
-                else
-                {
+                } else {
                     parent = child;
                 }
-            }
-            else
-            {
+            } else {
                 parent = child;
                 *factory = parent;
             }
         }
     }
-
-    if ( rc == 0 && FastqArgs.skipTechnical && FastqArgs.split_spot )
-    {
-        rc = FastqBioFilterFactory_Make( &child, fmt->accession, fmt->table );
-        if ( rc == 0 )
-        {
-            if ( parent != NULL )
-            {
-                rc = SRASplitterFactory_AddNext( parent, child );
-                if ( rc != 0 )
-                {
-                    SRASplitterFactory_Release( child );
-                }
-                else
-                {
+    if( rc == 0 && FastqArgs.skipTechnical && FastqArgs.split_spot ) {
+        if( (rc = FastqBioFilterFactory_Make(&child, fmt->accession, fmt->table)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
+                    SRASplitterFactory_Release(child);
+                } else {
                     parent = child;
                 }
-            }
-            else
-            {
+            } else {
                 parent = child;
                 *factory = parent;
             }
         }
     }
-
-    if ( rc == 0 && FastqArgs.maxReads > 0 )
-    {
-        rc = FastqRNumberFilterFactory_Make( &child, fmt->accession, fmt->table );
-        if ( rc == 0 )
-        {
-            if ( parent != NULL )
-            {
-                rc = SRASplitterFactory_AddNext( parent, child );
-                if ( rc != 0 )
-                {
-                    SRASplitterFactory_Release( child );
-                }
-                else
-                {
+    if( rc == 0 && FastqArgs.maxReads > 0 ) {
+        if( (rc = FastqRNumberFilterFactory_Make(&child, fmt->accession, fmt->table)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
+                    SRASplitterFactory_Release(child);
+                } else {
                     parent = child;
                 }
-            }
-            else
-            {
+            } else {
                 parent = child;
                 *factory = parent;
             }
         }
     }
-
-    if ( rc == 0 && FastqArgs.qual_filter )
-    {
-        rc = FastqQFilterFactory_Make( &child, fmt->accession, fmt->table );
-        if ( rc == 0 )
-        {
-            if ( parent != NULL )
-            {
-                rc = SRASplitterFactory_AddNext( parent, child );
-                if ( rc != 0 )
-                {
-                    SRASplitterFactory_Release( child );
-                }
-                else
-                {
+    if( rc == 0 && FastqArgs.qual_filter ) {
+        if( (rc = FastqQFilterFactory_Make(&child, fmt->accession, fmt->table)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
+                    SRASplitterFactory_Release(child);
+                } else {
                     parent = child;
                 }
-            }
-            else
-            {
+            } else {
                 parent = child;
                 *factory = parent;
             }
         }
     }
-
-    if ( rc == 0 )
-    {
-        rc = FastqReadLenFilterFactory_Make( &child, fmt->accession, fmt->table );
-        if ( rc == 0 )
-        {
-            if ( parent != NULL )
-            {
-                rc = SRASplitterFactory_AddNext( parent, child );
-                if ( rc != 0 )
-                {
-                    SRASplitterFactory_Release( child );
-                }
-                else
-                {
+    if( rc == 0 ) {
+        if( (rc = FastqReadLenFilterFactory_Make(&child, fmt->accession, fmt->table)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
+                    SRASplitterFactory_Release(child);
+                } else {
                     parent = child;
                 }
-            }
-            else
-            {
+            } else {
                 parent = child;
                 *factory = parent;
             }
         }
     }
-
-    if ( rc == 0 )
-    {
-        if ( FastqArgs.split_3 )
-        {
-            rc = Fastq3ReadSplitterFactory_Make( &child, fmt->accession, fmt->table );
-            if ( rc == 0 )
-            {
-                if ( parent != NULL )
-                {
-                    rc = SRASplitterFactory_AddNext( parent, child );
-                    if ( rc != 0 )
-                    {
-                        SRASplitterFactory_Release( child );
-                    }
-                    else
-                    {
+    if( rc == 0 ) {
+        if( FastqArgs.split_3 ) {
+            if( (rc = Fastq3ReadSplitterFactory_Make(&child, fmt->accession, fmt->table)) == 0 ) {
+                if( parent != NULL ) {
+                    if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
+                        SRASplitterFactory_Release(child);
+                    } else {
                         parent = child;
                     }
-                }
-                else
-                {
+                } else {
                     parent = child;
                     *factory = parent;
                 }
             }
-        }
-        else if ( FastqArgs.split_files )
-        {
-            rc = FastqReadSplitterFactory_Make( &child, fmt->accession, fmt->table );
-            if ( rc == 0 )
-            {
-                if ( parent != NULL )
-                {
-                    rc = SRASplitterFactory_AddNext( parent, child );
-                    if ( rc != 0 )
-                    {
+        } else if( FastqArgs.split_files ) {
+            if( (rc = FastqReadSplitterFactory_Make(&child, fmt->accession, fmt->table)) == 0 ) {
+                if( parent != NULL ) {
+                    if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
                         SRASplitterFactory_Release(child);
-                    }
-                    else
-                    {
+                    } else {
                         parent = child;
                     }
-                }
-                else
-                {
+                } else {
                     parent = child;
                     *factory = parent;
                 }
             }
         }
     }
-
-    if ( rc == 0 )
-    {
-        if ( FastqArgs.b_deffmt != NULL )
-        {
-            rc = Defline_Parse( &FastqArgs.b_defline, FastqArgs.b_deffmt );
+    if( rc == 0 ) {
+        if( FastqArgs.b_deffmt != NULL ) {
+            rc = Defline_Parse(&FastqArgs.b_defline, FastqArgs.b_deffmt);
         }
-        if ( FastqArgs.q_deffmt != NULL )
-        {
-            rc = Defline_Parse( &FastqArgs.q_defline, FastqArgs.q_deffmt );
+        if( FastqArgs.q_deffmt != NULL ) {
+            rc = Defline_Parse(&FastqArgs.q_defline, FastqArgs.q_deffmt);
         }
-        if ( rc == 0 )
-        {
-            rc = FastqFormatterFactory_Make( &child, fmt->accession, fmt->table );
-            if ( rc == 0 )
-            {
-                if ( parent != NULL )
-                {
-                    rc = SRASplitterFactory_AddNext( parent, child );
-                    if ( rc != 0 ) 
-                    {
-                        SRASplitterFactory_Release( child );
-                    }
-                }
-                else
-                {
-                    *factory = child;
+        if( rc == 0 && (rc = FastqFormatterFactory_Make(&child, fmt->accession, fmt->table)) == 0 ) {
+            if( parent != NULL ) {
+                if( (rc = SRASplitterFactory_AddNext(parent, child)) != 0 ) {
+                    SRASplitterFactory_Release(child);
                 }
+            } else {
+                *factory = child;
             }
         }
     }
     return rc;
 }
 
-
 /* main entry point of the file */
-rc_t SRADumper_Init( SRADumperFmt* fmt )
+rc_t SRADumper_Init(SRADumperFmt* fmt)
 {
     static const SRADumperFmt_Arg arg[] =
         {
@@ -3413,7 +2461,7 @@ rc_t SRADumper_Init( SRADumperFmt* fmt )
 
             /* DO NOT ADD IN THE MIDDLE ORDER IS IMPORTANT IN USAGE FUNCTION ABOVE!!! */
             {"Q", "offset", "integer", {"Offset to use for quality conversion, default is 33", NULL}},
-            {NULL, "fasta", "[line width]", {"FASTA only, no qualities, optional line wrap width (set to zero for no wrapping)", NULL}},
+            {NULL, "fasta", NULL, {"FASTA only, no qualities", NULL}},
 
             {"F", "origfmt", NULL, {"Defline contains only original sequence name", NULL}},
             {"I", "readids", NULL, {"Append read id after spot id as 'accession.spot.readid' on defline", NULL}},
@@ -3442,12 +2490,11 @@ rc_t SRADumper_Init( SRADumperFmt* fmt )
             {NULL, NULL, NULL, {NULL}}
         };
 
-    if ( fmt == NULL )
-    {
-        return RC( rcExe, rcFileFormat, rcConstructing, rcParam, rcNull );
+    if( fmt == NULL ) {
+        return RC(rcExe, rcFileFormat, rcConstructing, rcParam, rcNull);
     }
 
-    memset( &FastqArgs, 0, sizeof( FastqArgs ) );
+    memset(&FastqArgs, 0, sizeof(FastqArgs));
     FastqArgs.is_platform_cs_native = false;
     FastqArgs.maxReads = 0;
     FastqArgs.skipTechnical = false;
@@ -3467,7 +2514,7 @@ rc_t SRADumper_Init( SRADumperFmt* fmt )
     FastqArgs.split_files = false;
     FastqArgs.split_3 = false;
     FastqArgs.split_spot = false;
-    FastqArgs.fasta = 0;
+    FastqArgs.fasta = false;
     FastqArgs.file_extension = ".fastq";
     FastqArgs.aligned = false;
     FastqArgs.unaligned = false;
diff --git a/tools/sra-dump/illumina-dump.vers b/tools/sra-dump/illumina-dump.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-dump/illumina-dump.vers
+++ b/tools/sra-dump/illumina-dump.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-dump/illumina-dump.vers.h b/tools/sra-dump/illumina-dump.vers.h
new file mode 100644
index 0000000..e610c68
--- /dev/null
+++ b/tools/sra-dump/illumina-dump.vers.h
@@ -0,0 +1 @@
+#define ILLUMINA_DUMP_VERS 0x02010007
diff --git a/tools/sra-dump/illumina.c b/tools/sra-dump/illumina.c
index 17e8d23..a4d28af 100644
--- a/tools/sra-dump/illumina.c
+++ b/tools/sra-dump/illumina.c
@@ -38,8 +38,6 @@
 #include "core.h"
 #include "illumina-dump.vers.h"
 
-#define DATABUFFERINITSIZE 10240
-
 typedef enum {
     eRead = 0x01,
     eQual1_S = 0x02,
@@ -98,7 +96,7 @@ rc_t IlluminaU32Splitter_GetKey(const SRASplitter* cself, const char** key, spot
             if( rc == 0 ) {
                 sprintf(self->key, "%0*d", w, val);
             }
-        } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+        } else if( GetRCState(rc) == rcNotFound ) {
             SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
             *key = NULL;
             rc = 0;
@@ -185,7 +183,7 @@ rc_t IlluminaU32SplitterFactory_Make(const SRASplitterFactory** cself, const cha
 
 typedef struct IlluminaFormatterSplitter_struct {
     const IlluminaReader* reader;
-    KDataBuffer* b;
+    char buf[512 * 1024];
 } IlluminaFormatterSplitter;
 
 static
@@ -202,20 +200,16 @@ rc_t IlluminaFormatterSplitter_Dump(const SRASplitter* cself, spotid_t spot, con
 
             if( rc == 0 && (IlluminaArgs.opt & eRead) &&
                 (rc = SRASplitter_FileActivate(cself, "seq.txt")) == 0 ) {
-                    IF_BUF((IlluminaReaderBase(self->reader, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                    if( writ > 0 ) {
-                        ((char*)(self->b->base))[writ] = '\n';
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                    }
+                if( (rc = IlluminaReaderBase(self->reader, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0) {
+                    self->buf[writ] = '\n';
+                    rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                 }
             }
             if( rc == 0 && (IlluminaArgs.opt & eQual1_S) &&
                 (rc = SRASplitter_FileActivate(cself, "qcal.txt")) == 0 ) {
-                IF_BUF((IlluminaReaderQuality1(self->reader, 0, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                    if( writ > 0 ) {
-                        ((char*)(self->b->base))[writ] = '\n';
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                    }
+                if( (rc = IlluminaReaderQuality1(self->reader, 0, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                    self->buf[writ] = '\n';
+                    rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                 }
             }
             if( rc == 0 && (IlluminaArgs.opt & eQual1_M) ) {
@@ -225,55 +219,47 @@ rc_t IlluminaFormatterSplitter_Dump(const SRASplitter* cself, spotid_t spot, con
                     char key[128];
                     for(readId = 1; rc == 0 && readId <= num_reads; readId++) {
                         sprintf(key, "%u_qcal.txt", readId);
-                        if( (rc = SRASplitter_FileActivate(cself, key)) == 0 ) {
-                            IF_BUF((IlluminaReaderQuality1(self->reader, readId, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                                if( writ > 0 ) {
-                                    ((char*)(self->b->base))[writ] = '\n';
-                                    rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                                }
-                            }
+                        if( (rc = SRASplitter_FileActivate(cself, key)) == 0 &&
+                            (rc = IlluminaReaderQuality1(self->reader, readId, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
             }
-            if( rc == 0 && (IlluminaArgs.opt & eQual4) && (rc = SRASplitter_FileActivate(cself, "prb.txt")) == 0 ) {
-                IF_BUF((IlluminaReaderQuality4(self->reader, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                    if( writ > 0 ) {
-                        ((char*)(self->b->base))[writ] = '\n';
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                    }
+            if( rc == 0 && (IlluminaArgs.opt & eQual4) &&
+                (rc = SRASplitter_FileActivate(cself, "prb.txt")) == 0 ) {
+                if( (rc = IlluminaReaderQuality4(self->reader, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                    self->buf[writ] = '\n';
+                    rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                 }
             }
-            if( rc == 0 && (IlluminaArgs.opt & eIntensity) && (rc = SRASplitter_FileActivate(cself, "int.txt")) == 0 ) {
-                IF_BUF((IlluminaReaderIntensity(self->reader, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                    if( writ > 0 ) {
-                        ((char*)(self->b->base))[writ] = '\n';
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                    }
+            if( rc == 0 && (IlluminaArgs.opt & eIntensity) &&
+                (rc = SRASplitter_FileActivate(cself, "int.txt")) == 0 ) {
+                if( (rc = IlluminaReaderIntensity(self->reader, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                    self->buf[writ] = '\n';
+                    rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                 }
             }
-            if( rc == 0 && (IlluminaArgs.opt & eNoise) && (rc = SRASplitter_FileActivate(cself, "nse.txt")) == 0 ) {
-                IF_BUF((IlluminaReaderNoise(self->reader, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                    if( writ > 0 ) {
-                        ((char*)(self->b->base))[writ] = '\n';
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                    }
+            if( rc == 0 && (IlluminaArgs.opt & eNoise) &&
+                (rc = SRASplitter_FileActivate(cself, "nse.txt")) == 0 ) {
+                if( (rc = IlluminaReaderNoise(self->reader, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                    self->buf[writ] = '\n';
+                    rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                 }
             }
-            if( rc == 0 && (IlluminaArgs.opt & eSignal) && (rc = SRASplitter_FileActivate(cself, "sig2.txt")) == 0 ) {
-                IF_BUF((IlluminaReaderSignal(self->reader, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                    if( writ > 0 ) {
-                        ((char*)(self->b->base))[writ] = '\n';
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                    }
+            if( rc == 0 && (IlluminaArgs.opt & eSignal) &&
+                (rc = SRASplitter_FileActivate(cself, "sig2.txt")) == 0 ) {
+                if( (rc = IlluminaReaderSignal(self->reader, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                    self->buf[writ] = '\n';
+                    rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                 }
             }
-            if( rc == 0 && (IlluminaArgs.opt & eQSeq_S) && (rc = SRASplitter_FileActivate(cself, "qseq.txt")) == 0 ) {
-                IF_BUF((IlluminaReaderQSeq(self->reader, 0, true, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                    if( writ > 0 ) {
-                        ((char*)(self->b->base))[writ] = '\n';
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                    }
+            if( rc == 0 && (IlluminaArgs.opt & eQSeq_S) &&
+                (rc = SRASplitter_FileActivate(cself, "qseq.txt")) == 0 ) {
+                if( (rc = IlluminaReaderQSeq(self->reader, 0, true, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                    self->buf[writ] = '\n';
+                    rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                 }
             }
             if( rc == 0 && (IlluminaArgs.opt & eQSeq_M) ) {
@@ -283,18 +269,15 @@ rc_t IlluminaFormatterSplitter_Dump(const SRASplitter* cself, spotid_t spot, con
                     char key[128];
                     for(readId = 1; rc == 0 && readId <= num_reads; readId++) {
                         sprintf(key, "%u_qseq.txt", readId);
-                        if( (rc = SRASplitter_FileActivate(cself, key)) == 0 ) {
-                            IF_BUF((IlluminaReaderQSeq(self->reader, readId, true, self->b->base, KDataBufferBytes(self->b) - 1, &writ)), self->b, writ) {
-                                if( writ > 0 ) {
-                                    ((char*)(self->b->base))[writ] = '\n';
-                                    rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ + 1);
-                                }
-                            }
+                        if( (rc = SRASplitter_FileActivate(cself, key)) == 0 &&
+                            (rc = IlluminaReaderQSeq(self->reader, readId, true, self->buf, sizeof(self->buf) - 1, &writ)) == 0 && writ > 0 ) {
+                            self->buf[writ] = '\n';
+                            rc = SRASplitter_FileWrite(cself, spot, self->buf, writ + 1);
                         }
                     }
                 }
             }
-        } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+        } else if( GetRCState(rc) == rcNotFound ) {
             SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
             rc = 0;
         }
@@ -306,7 +289,6 @@ typedef struct IlluminaFormatterFactory_struct {
     const char* accession;
     const SRATable* table;
     const IlluminaReader* reader;
-    KDataBuffer buf;
 } IlluminaFormatterFactory;
 
 static
@@ -317,11 +299,11 @@ rc_t IlluminaFormatterFactory_Init(const SRASplitterFactory* cself)
 
     if( self == NULL ) {
         rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
-    } else if( (rc = IlluminaReaderMake(&self->reader, self->table, self->accession,
+    } else {
+        rc = IlluminaReaderMake(&self->reader, self->table, self->accession,
                                 IlluminaArgs.opt & eRead, IlluminaArgs.opt & (eQual1_S | eQual1_M), IlluminaArgs.opt & eQual4, 
                                 IlluminaArgs.opt & eIntensity, IlluminaArgs.opt & eNoise, IlluminaArgs.opt & eSignal,
-                                IlluminaArgs.opt & (eQSeq_S | eQSeq_M), 0, 0)) == 0 ) {
-        rc = KDataBufferMakeBytes(&self->buf, DATABUFFERINITSIZE);
+                                IlluminaArgs.opt & (eQSeq_S | eQSeq_M), 0, 0);
     }
     return rc;
 }
@@ -337,7 +319,6 @@ rc_t IlluminaFormatterFactory_NewObj(const SRASplitterFactory* cself, const SRAS
     } else {
         if( (rc = SRASplitter_Make(splitter, sizeof(IlluminaFormatterSplitter), NULL, NULL, IlluminaFormatterSplitter_Dump, NULL)) == 0 ) {
             ((IlluminaFormatterSplitter*)(*splitter))->reader = self->reader;
-            ((IlluminaFormatterSplitter*)(*splitter))->b = &self->buf;
         }
     }
     return rc;
@@ -349,7 +330,6 @@ void IlluminaFormatterFactory_Release(const SRASplitterFactory* cself)
     if( cself != NULL ) {
         IlluminaFormatterFactory* self = (IlluminaFormatterFactory*)cself;
         IlluminaReaderWhack(self->reader);
-        KDataBufferWhack(&self->buf);
     }
 }
 
diff --git a/tools/sra-dump/sff-dump.vers b/tools/sra-dump/sff-dump.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-dump/sff-dump.vers
+++ b/tools/sra-dump/sff-dump.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-dump/sff-dump.vers.h b/tools/sra-dump/sff-dump.vers.h
new file mode 100644
index 0000000..f5e4559
--- /dev/null
+++ b/tools/sra-dump/sff-dump.vers.h
@@ -0,0 +1 @@
+#define SFF_DUMP_VERS 0x02010007
diff --git a/tools/sra-dump/sff.c b/tools/sra-dump/sff.c
index cf39716..f635d13 100644
--- a/tools/sra-dump/sff.c
+++ b/tools/sra-dump/sff.c
@@ -37,12 +37,10 @@
 #include "core.h"
 #include "sff-dump.vers.h"
 
-#define DATABUFFERINITSIZE 10240
-
 typedef struct SFFFormatterSplitter_struct {
     const SFFReader* reader;
     spotid_t spots;
-    KDataBuffer* b;
+    char buf[1 * 1024 * 1024];
 } SFFFormatterSplitter;
 
 static const char* SFFFormatterSplitter_Dump_Ext = ".sff";
@@ -60,17 +58,17 @@ rc_t SFFFormatterSplitter_Dump(const SRASplitter* cself, spotid_t spot, const re
 
         if( (rc = SRASplitter_FileActivate(cself, SFFFormatterSplitter_Dump_Ext)) == 0 ) {
             if( self->spots == 0 ) {
-                IF_BUF((SFFReaderHeader(self->reader, 0, self->b->base, KDataBufferBytes(self->b), &writ)), self->b, writ) {
-                    rc = SRASplitter_FileWrite(cself, 0, self->b->base, writ);
+                if( (rc = SFFReaderHeader(self->reader, 0, self->buf, sizeof(self->buf), &writ)) == 0 ) {
+                    rc = SRASplitter_FileWrite(cself, 0, self->buf, writ);
                 }
             }
             if( rc == 0 ) {
                 if( (rc = SFFReaderSeekSpot(self->reader, spot)) == 0 ) {
-                    IF_BUF((SFFReader_GetCurrentSpotData(self->reader, self->b->base, KDataBufferBytes(self->b), &writ)), self->b, writ) {
-                        rc = SRASplitter_FileWrite(cself, spot, self->b->base, writ);
+                    if( (rc = SFFReader_GetCurrentSpotData(self->reader, self->buf, sizeof(self->buf), &writ)) == 0 ) {
+                        rc = SRASplitter_FileWrite(cself, spot, self->buf, writ);
                         self->spots++;
                     }
-                } else if( GetRCObject(rc) == rcRow && GetRCState(rc) == rcNotFound ) {
+                } else if( GetRCState(rc) == rcNotFound ) {
                     SRA_DUMP_DBG (3, ("%s skipped %u row\n", __func__, spot));
                     self->spots++;
                     rc = 0;
@@ -93,8 +91,8 @@ rc_t SFFFormatterSplitter_Release(const SRASplitter* cself)
         if( self->spots > 0 ) {
             size_t writ = 0;
             /* tweak SFF file header with real number of reads per file */
-            IF_BUF((SFFReaderHeader(self->reader, self->spots, self->b->base, KDataBufferBytes(self->b), &writ)), self->b, writ) {
-                rc = SRASplitter_FileWritePos(cself, 0, 0, self->b->base, writ);
+            if( (rc = SFFReaderHeader(self->reader, self->spots, self->buf, sizeof(self->buf), &writ)) == 0 ) {
+                rc = SRASplitter_FileWritePos(cself, 0, 0, self->buf, writ);
             }
         }
     }
@@ -105,7 +103,6 @@ typedef struct SFFFormatterFactory_struct {
     const char* accession;
     const SRATable* table;
     const SFFReader* reader;
-    KDataBuffer kdbuf;
 } SFFFormatterFactory;
 
 static
@@ -116,7 +113,7 @@ rc_t SFFFormatterFactory_Init(const SRASplitterFactory* cself)
 
     if( self == NULL ) {
         rc = RC(rcSRA, rcType, rcConstructing, rcParam, rcNull);
-    } else if( (rc = KDataBufferMakeBytes(&self->kdbuf, DATABUFFERINITSIZE)) == 0 ) {
+    } else {
         rc = SFFReaderMake(&self->reader, self->table, self->accession, 0, 0);
     }
     return rc;
@@ -133,7 +130,6 @@ rc_t SFFFormatterFactory_NewObj(const SRASplitterFactory* cself, const SRASplitt
     } else {
         if( (rc = SRASplitter_Make(splitter, sizeof(SFFFormatterSplitter), NULL, NULL, SFFFormatterSplitter_Dump, SFFFormatterSplitter_Release)) == 0 ) {
             ((SFFFormatterSplitter*)(*splitter))->reader = self->reader;
-            ((SFFFormatterSplitter*)(*splitter))->b = &self->kdbuf;
         }
     }
     return rc;
@@ -144,7 +140,6 @@ void SFFFormatterFactory_Release(const SRASplitterFactory* cself)
 {
     if( cself != NULL ) {
         SFFFormatterFactory* self = (SFFFormatterFactory*)cself;
-        KDataBufferWhack(&self->kdbuf);
         SFFReaderWhack(self->reader);
     }
 }
diff --git a/tools/sra-dump/sra-dump.c b/tools/sra-dump/sra-dump.c
index 8355511..ab83c81 100644
--- a/tools/sra-dump/sra-dump.c
+++ b/tools/sra-dump/sra-dump.c
@@ -39,6 +39,7 @@
 #include <klib/status.h>
 #include <klib/container.h>
 #include <klib/rc.h>
+#include <fmtdef.h>
 #include <os-native.h>
 #include <sysalloc.h>
 
@@ -80,9 +81,9 @@ void dump_text ( const void *base, bitsz_t row_bits )
     for ( i = 0; i < count; ++ i )
   {
         if ( isprint ( data [ i ] ) )
-            OUTMSG(( "%c", data [ i ] ));
+            putchar ( data [ i ] );
         else
-            OUTMSG(( "\\x%2x", data [ i ] ));
+            printf ( "\\x%2x", data [ i ] );
     }
 }
 
@@ -94,7 +95,7 @@ void dump_I8 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 3;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%d", sep, data [ i ] ));
+        printf ( "%s%d", sep, data [ i ] );
 }
 
 static
@@ -105,7 +106,7 @@ void dump_U8 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 3;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%u", sep, data [ i ] ));
+        printf ( "%s%u", sep, data [ i ] );
 }
 
 static
@@ -116,7 +117,7 @@ void dump_I16 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 4;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%d", sep, data [ i ] ));
+        printf ( "%s%d", sep, data [ i ] );
 }
 
 static
@@ -127,7 +128,7 @@ void dump_U16 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 4;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%u", sep, data [ i ] ));
+        printf ( "%s%u", sep, data [ i ] );
 }
 
 static
@@ -138,7 +139,7 @@ void dump_I32 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 5;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%d", sep, data [ i ] ));
+        printf ( "%s%d", sep, data [ i ] );
 }
 
 static
@@ -149,7 +150,7 @@ void dump_U32 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 5;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%u", sep, data [ i ] ));
+        printf ( "%s%u", sep, data [ i ] );
 }
 
 static
@@ -160,7 +161,7 @@ void dump_I64 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 6;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%ld", sep, data [ i ] ));
+        printf ( "%s%" LD64, sep, data [ i ] );
 }
 
 static
@@ -171,7 +172,7 @@ void dump_U64 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 6;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%lu", sep, data [ i ] ));
+        printf ( "%s%" LU64, sep, data [ i ] );
 }
 
 static
@@ -182,7 +183,7 @@ void dump_F32 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 5;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%f", sep, data [ i ] ));
+        printf ( "%s%f", sep, data [ i ] );
 }
 
 static
@@ -193,7 +194,7 @@ void dump_F64 ( const void *base, bitsz_t row_bits )
     uint32_t i, count = row_bits >> 6;
 
     for ( i = 0; i < count; sep = ",", ++ i )
-        OUTMSG(( "%s%f", sep, data [ i ] ));
+        printf ( "%s%f", sep, data [ i ] );
 }
 
 
@@ -214,10 +215,10 @@ void dump_platform ( const void *base, bitsz_t row_bits )
     CASE ( SRA_PLATFORM_COMPLETE_GENOMICS );
     CASE ( SRA_PLATFORM_HELICOS );
     default:
-        OUTMSG(( "%u", data [ 0 ] ));
+        printf ( "%u", data [ 0 ] );
         return;
     }
-    OUTMSG(( "%s", p ));
+    printf ( "%s", p );
 }
 
 static
@@ -238,10 +239,10 @@ void dump_readtype ( const void *base, bitsz_t row_bits )
         CASE ( SRA_READ_TYPE_TECHNICAL|SRA_READ_TYPE_REVERSE );
         CASE ( SRA_READ_TYPE_BIOLOGICAL|SRA_READ_TYPE_REVERSE );
         default:
-            OUTMSG(( "%s%u", sep, data [ 0 ] ));
+            printf ( "%s%u", sep, data [ 0 ] );
             continue;
         }
-        OUTMSG(( "%s%s", sep, p ));
+        printf ( "%s%s", sep, p );
     }
 }
 
@@ -261,10 +262,10 @@ void dump_readfilt ( const void *base, bitsz_t row_bits )
         CASE ( SRA_READ_FILTER_CRITERIA );
         CASE ( SRA_READ_FILTER_REDACTED );
         default:
-            OUTMSG(( "%s%u", sep, data [ 0 ] ));
+            printf ( "%s%u", sep, data [ 0 ] );
             continue;
         }
-        OUTMSG(( "%s%s", sep, p ));
+        printf ( "%s%s", sep, p );
     }
 }
 
@@ -301,7 +302,7 @@ rc_t dump_row ( const sradump_parms *pb, const column_map *cm, uint32_t count, s
         }
 
         /* write cell header - TBD - improve column alignment for readability */
-        OUTMSG(( "%u. %s: ", row, cm [ i ] . name ));
+        printf ( "%u. %s: ", row, cm [ i ] . name );
 
         /* write cell data */
         if ( cm [ i ] . td . dim == 1 )
@@ -315,14 +316,14 @@ rc_t dump_row ( const sradump_parms *pb, const column_map *cm, uint32_t count, s
 
             for ( sep = "{", j = 0; j < row_len; sep = "},{", ++ j )
             {
-                OUTMSG(( "%s", sep ));
+                printf ( "%s", sep );
                 ( cm [ i ] . dump ) ( & data [ j * elem_bits >> 3 ], elem_bits );
             }
 
-            OUTMSG(( "}" ));
+            putchar ( '}' );
         }
 
-        OUTMSG(( "\n" ));
+        putchar ( '\n' );
     }
 
     return rc;
@@ -880,7 +881,7 @@ rc_t CC Usage (const Args * args)
 
     UsageSummary (progname);
 
-    OUTMSG (( "Options:\n" ));
+    KOutMsg ("Options:\n");
 
     OUTMSG (("table:\n"
 	     "  path to table or accession id within NCBI\n"
@@ -890,7 +891,7 @@ rc_t CC Usage (const Args * args)
     HelpParamLine (name_param[0], name_param+1);
     HelpParamLine (typedecl_param[0], typedecl_param+1);
 
-    OUTMSG (( "\nOptions:\n" ));
+    KOutMsg ("\nOptions:\n");
 
     HelpOptionLine (ALIAS_START, OPTION_START, "ID", start_usage);
 
@@ -976,11 +977,11 @@ rc_t CC KMain ( int argc, char *argv [] )
             if (rc)
                 break;
 
-            if (pcount == 0) {
-                OUTMSG (("missing source table\n"));
+            if (pcount == 0)
+	    {
+		OUTMSG (("missing source table\n"));
                 rc = MiniUsage (args);
-                ArgsWhack(args);
-                exit(EXIT_FAILURE);
+                break;
             }
 
             rc = ArgsParamValue (args, 0, &pb.src_path);
@@ -1016,8 +1017,7 @@ rc_t CC KMain ( int argc, char *argv [] )
                 }
 
                 if ( pcount != 1 )
-                    /* brain damaged windows compiler warned about next line */
-                    free ( (void*)pb.columns );
+                    free ( pb.columns );
             }
         } while (0);
  
diff --git a/tools/sra-dump/sra-dump.vers b/tools/sra-dump/sra-dump.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-dump/sra-dump.vers
+++ b/tools/sra-dump/sra-dump.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-dump/sra-dump.vers.h b/tools/sra-dump/sra-dump.vers.h
new file mode 100644
index 0000000..9b50d59
--- /dev/null
+++ b/tools/sra-dump/sra-dump.vers.h
@@ -0,0 +1 @@
+#define SRA_DUMP_VERS 0x02010007
diff --git a/tools/sra-load/Makefile b/tools/sra-load/Makefile
index 1198ac2..c2fa13f 100644
--- a/tools/sra-load/Makefile
+++ b/tools/sra-load/Makefile
@@ -46,18 +46,20 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
 ifeq (win,$(OS))
 all std:
 	@ echo "not building loaders under Windows"
 else
-all std: vers-includes
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 endif
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -68,13 +70,6 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -107,24 +102,25 @@ LOADER_OBJ = \
 	$(addsuffix .$(OBJX),$(LOADER_SRC))
 
 LOADER_LIB = \
-	-lkapp \
-	-lload \
+	-lwsradb \
+	-ssrapath \
+	-ssraschema \
 	-dwsraxf \
+	-lkapp \
 	-dwvxf \
-	-lwsradb \
 	-lwvdb \
 	-lwkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkxml \
-	-lkxfs \
 	-lkfg \
+	-lload \
 	-lkfs \
 	-lksrch \
-	-lkq \
-	-lkproc \
+	-lkxml \
+	-lkxfs \
 	-lklib \
+	-lkproc \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 ifneq (win,$(OS))
diff --git a/tools/sra-load/abi-load.vers b/tools/sra-load/abi-load.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-load/abi-load.vers
+++ b/tools/sra-load/abi-load.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-load/abi-load.vers.h b/tools/sra-load/abi-load.vers.h
new file mode 100644
index 0000000..911efb9
--- /dev/null
+++ b/tools/sra-load/abi-load.vers.h
@@ -0,0 +1 @@
+#define ABI_LOAD_VERS 0x02010007
diff --git a/tools/sra-load/absolid-fmt.c b/tools/sra-load/absolid-fmt.c
index f8b5186..ead3f3c 100644
--- a/tools/sra-load/absolid-fmt.c
+++ b/tools/sra-load/absolid-fmt.c
@@ -526,6 +526,12 @@ rc_t AbiLoaderFmt_Whack(AbiLoaderFmt *self, SRATable** table)
 
 const char UsageDefaultName[] = "abi-load";
 
+rc_t CC UsageSummary (const char * progname)
+{
+    return 0;
+}
+
+
 uint32_t KAppVersion(void)
 {
     return ABI_LOAD_VERS;
diff --git a/tools/sra-load/common-xml.c b/tools/sra-load/common-xml.c
index 9b1b389..314b246 100644
--- a/tools/sra-load/common-xml.c
+++ b/tools/sra-load/common-xml.c
@@ -557,6 +557,23 @@ rc_t XMLNode_get_u32node(const KXMLNode* node, const char* child, bool optional,
     return rc;
 }
 
+static
+rc_t PlatformXML_verify_instrument_model(const char** models, const char* instrument_model)
+{
+    rc_t rc = RC(rcExe, rcFormatter, rcConstructing, rcId, rcOutofrange);
+    int i = 0;
+    while( models[i] != NULL ) {
+        if( strcmp(instrument_model, models[i++]) == 0 ) {
+            rc = 0;
+            break;
+        }
+    }
+    if( rc != 0 ) {
+        PLOGERR(klogErr, (klogErr, rc, "INSTRUMENT_MODEL $(model)", PLOG_S(model), instrument_model));
+    }
+    return rc;
+}
+
 rc_t PlatformXML_Make(const PlatformXML** cself, const KXMLNode* node, uint32_t* spot_length)
 {
     rc_t rc = 0;
@@ -577,7 +594,10 @@ rc_t PlatformXML_Make(const PlatformXML** cself, const KXMLNode* node, uint32_t*
                     if( (rc = KXMLNodeElementName(n, &name)) == 0 ) {
                         DEBUG_MSG (4, ("PLATFORM: %s\n", name));
                         if( strcmp(name, "LS454") == 0 ) {
-                            if( (rc = XMLNode_get_strnode(n, "KEY_SEQUENCE", true, &platform->param.ls454.key_sequence)) == 0 &&
+                            const char* models[] = {"454 GS", "454 GS 20", "454 GS FLX", "454 GS FLX Titanium", "454 Titanium", "454 GS Junior", NULL};
+                            if( (rc = XMLNode_get_strnode(n, "INSTRUMENT_MODEL", false, &platform->param.ls454.instrument_model)) == 0 &&
+                                (rc = PlatformXML_verify_instrument_model(models, platform->param.ls454.instrument_model)) == 0 &&
+                                (rc = XMLNode_get_strnode(n, "KEY_SEQUENCE", true, &platform->param.ls454.key_sequence)) == 0 &&
                                 (rc = XMLNode_get_strnode(n, "FLOW_SEQUENCE", true, &platform->param.ls454.flow_sequence)) == 0 &&
                                 (rc = XMLNode_get_u32node(n, "FLOW_COUNT", true, &platform->param.ls454.flow_count)) == 0 ) {
                                 platform->id = SRA_PLATFORM_454;
@@ -609,7 +629,10 @@ rc_t PlatformXML_Make(const PlatformXML** cself, const KXMLNode* node, uint32_t*
                                 }
                             }
                         } else if( strcmp(name, "ION_TORRENT") == 0 ) {
-                            if( (rc = XMLNode_get_strnode(n, "KEY_SEQUENCE", true, &platform->param.ion_torrent.key_sequence)) == 0 &&
+                            const char* models[] = {"Ion Torrent PGM", NULL};
+                            if( (rc = XMLNode_get_strnode(n, "INSTRUMENT_MODEL", false, &platform->param.ion_torrent.instrument_model)) == 0 &&
+                                (rc = PlatformXML_verify_instrument_model(models, platform->param.ion_torrent.instrument_model)) == 0 &&
+                                (rc = XMLNode_get_strnode(n, "KEY_SEQUENCE", true, &platform->param.ion_torrent.key_sequence)) == 0 &&
                                 (rc = XMLNode_get_strnode(n, "FLOW_SEQUENCE", true, &platform->param.ion_torrent.flow_sequence)) == 0 &&
                                 (rc = XMLNode_get_u32node(n, "FLOW_COUNT", true, &platform->param.ion_torrent.flow_count)) == 0 ) {
                                 platform->id = SRA_PLATFORM_ION_TORRENT;
@@ -641,30 +664,51 @@ rc_t PlatformXML_Make(const PlatformXML** cself, const KXMLNode* node, uint32_t*
                                 }
                             }
                         } else if( strcmp(name, "ILLUMINA") == 0 ) {
-                            if( (rc = XMLNode_get_u32node(n, "SEQUENCE_LENGTH", false, spot_length)) != 0 &&
-                                GetRCState(rc) == rcNotFound ) {
-                                rc = XMLNode_get_u32node(n, "CYCLE_COUNT", true, spot_length);
-                            }
-                            if( rc == 0 ) {
-                                platform->id = SRA_PLATFORM_ILLUMINA;
+                            const char* models[] = {"Illumina Genome Analyzer", "Illumina Genome Analyzer II",
+                                                    "Illumina Genome Analyzer IIx", "Illumina HiSeq 2000", NULL};
+                            if( (rc = XMLNode_get_strnode(n, "INSTRUMENT_MODEL", false, &platform->param.illumina.instrument_model)) == 0 &&
+                                (rc = PlatformXML_verify_instrument_model(models, platform->param.illumina.instrument_model)) == 0 ) {
+                                if( (rc = XMLNode_get_u32node(n, "SEQUENCE_LENGTH", false, spot_length)) != 0 &&
+                                    GetRCState(rc) == rcNotFound ) {
+                                    rc = XMLNode_get_u32node(n, "CYCLE_COUNT", true, spot_length);
+                                }
+                                if( rc == 0 ) {
+                                    platform->id = SRA_PLATFORM_ILLUMINA;
+                                }
                             }
                         } else if( strcmp(name, "HELICOS") == 0 ) {
-                            if( (rc = XMLNode_get_strnode(n, "FLOW_SEQUENCE", true, &platform->param.helicos.flow_sequence)) == 0 &&
+                            const char* models[] = {"Helicos HeliScope", NULL};
+                            if( (rc = XMLNode_get_strnode(n, "INSTRUMENT_MODEL", false, &platform->param.helicos.instrument_model)) == 0 &&
+                                (rc = PlatformXML_verify_instrument_model(models, platform->param.helicos.instrument_model)) == 0 &&
+                                (rc = XMLNode_get_strnode(n, "FLOW_SEQUENCE", true, &platform->param.helicos.flow_sequence)) == 0 &&
                                 (rc = XMLNode_get_u32node(n, "FLOW_COUNT", true, &platform->param.helicos.flow_count)) == 0 ) {
                                 platform->id = SRA_PLATFORM_HELICOS;
                             }
                         } else if( strcmp(name, "ABI_SOLID") == 0 ) {
-                            if( (rc = XMLNode_get_u32node(n, "SEQUENCE_LENGTH", false, spot_length)) != 0 &&
-                                GetRCState(rc) == rcNotFound ) {
-                                rc = XMLNode_get_u32node(n, "CYCLE_COUNT", true, spot_length);
+                            const char* models[] = {"AB SOLiD System", "AB SOLiD System 2.0", "AB SOLiD System 3.0",
+                                                    "AB SOLiD 4 System", "AB SOLiD 4hq System", "AB SOLiD PI System", NULL};
+                            if( (rc = XMLNode_get_strnode(n, "INSTRUMENT_MODEL", false, &platform->param.absolid.instrument_model)) == 0 &&
+                                (rc = PlatformXML_verify_instrument_model(models, platform->param.absolid.instrument_model)) == 0 ) {
+                                if( (rc = XMLNode_get_u32node(n, "SEQUENCE_LENGTH", false, spot_length)) != 0 &&
+                                    GetRCState(rc) == rcNotFound ) {
+                                    rc = XMLNode_get_u32node(n, "CYCLE_COUNT", true, spot_length);
+                                }
                             }
                             if( rc == 0 ) {
                                 platform->id = SRA_PLATFORM_ABSOLID;
                             }
                         } else if( strcmp(name, "PACBIO_SMRT") == 0 ) {
-                            platform->id = SRA_PLATFORM_PACBIO_SMRT;
+                            const char* models[] = {"PacBio RS", NULL};
+                            if( (rc = XMLNode_get_strnode(n, "INSTRUMENT_MODEL", false, &platform->param.pacbio_smrt.instrument_model)) == 0 &&
+                                (rc = PlatformXML_verify_instrument_model(models, platform->param.pacbio_smrt.instrument_model)) == 0 ) {
+                                platform->id = SRA_PLATFORM_PACBIO_SMRT;
+                            }
                         } else if( strcmp(name, "COMPLETE_GENOMICS") == 0 ) {
-                            platform->id = SRA_PLATFORM_COMPLETE_GENOMICS;
+                            const char* models[] = {"Complete Genomics", NULL};
+                            if( (rc = XMLNode_get_strnode(n, "INSTRUMENT_MODEL", false, &platform->param.complete_genomics.instrument_model)) == 0 &&
+                                (rc = PlatformXML_verify_instrument_model(models, platform->param.complete_genomics.instrument_model)) == 0 ) {
+                                platform->id = SRA_PLATFORM_COMPLETE_GENOMICS;
+                            }
                         }
                         if( rc != 0 || platform->id == SRA_PLATFORM_UNDEFINED ) {
                             rc = rc ? rc : RC(rcExe, rcFormatter, rcConstructing, rcId, rcUnrecognized);
@@ -693,23 +737,30 @@ void PlatformXML_Whack(const PlatformXML* cself)
         PlatformXML* self = (PlatformXML*)cself;
         switch(self->id) {
             case SRA_PLATFORM_454:
+                free(self->param.ls454.instrument_model);
                 free(self->param.ls454.key_sequence);
                 free(self->param.ls454.flow_sequence);
                 break;
             case SRA_PLATFORM_ION_TORRENT:
+                free(self->param.ion_torrent.instrument_model);
                 free(self->param.ion_torrent.key_sequence);
                 free(self->param.ion_torrent.flow_sequence);
                 break;
             case SRA_PLATFORM_ILLUMINA:
+                free(self->param.illumina.instrument_model);
                 break;
             case SRA_PLATFORM_HELICOS:
+                free(self->param.helicos.instrument_model);
                 free(self->param.helicos.flow_sequence);
                 break;
             case SRA_PLATFORM_ABSOLID:
+                free(self->param.absolid.instrument_model);
                 break;
             case SRA_PLATFORM_PACBIO_SMRT:
+                free(self->param.pacbio_smrt.instrument_model);
                 break;
             case SRA_PLATFORM_COMPLETE_GENOMICS:
+                free(self->param.complete_genomics.instrument_model);
                 break;
             case SRA_PLATFORM_UNDEFINED:
                 break;
diff --git a/tools/sra-load/common-xml.h b/tools/sra-load/common-xml.h
index 918a142..a39a3f1 100644
--- a/tools/sra-load/common-xml.h
+++ b/tools/sra-load/common-xml.h
@@ -26,7 +26,7 @@
 #ifndef _sra_load_common_xml_
 #define _sra_load_common_xml_
 
-#include <kxml/xml.h>
+#include <klib/xml.h>
 #include <search/grep.h>
 #include <sra/sradb.h>
 
@@ -38,21 +38,49 @@ typedef struct PlatformXML_struct {
     SRAPlatforms id;
     union {
         struct {
+            char* instrument_model;
             char* key_sequence; /* optional */
             char* flow_sequence; /* optional */
             uint32_t flow_count; /* optional */
         } ls454;
 
         struct {
+            char* instrument_model;
             char* key_sequence; /* optional */
             char* flow_sequence; /* optional */
             uint32_t flow_count; /* optional */
         } ion_torrent;
 
         struct {
+            char* instrument_model;
+            /* CYCLE_COUNT not optional, but deprecated so this is filled instead */
+            /* SEQUENCE_LENGTH is not yet deprecated but we use SPOT_LENGTH from SPOT_DECODE_SPEC as primary source */
+        } illumina;
+
+        struct {
+            char* instrument_model;
             char* flow_sequence; /* optional */
             uint32_t flow_count; /* optional */
         } helicos;
+
+        struct {
+            char* instrument_model;
+            /* not used now
+            ????? color_matrix;
+            char* color_matrix_code;
+            */
+            /* CYCLE_COUNT not optional, but deprecated so this is filled instead */
+            /* SEQUENCE_LENGTH is not yet deprecated but we use SPOT_LENGTH from SPOT_DECODE_SPEC as primary source */
+        } absolid;
+
+        struct {
+            char* instrument_model;
+        } pacbio_smrt;
+
+        struct {
+            char* instrument_model;
+        } complete_genomics;
+
     } param;
 } PlatformXML;
 
diff --git a/tools/sra-load/experiment-xml.c b/tools/sra-load/experiment-xml.c
index 3995c90..9cfc664 100644
--- a/tools/sra-load/experiment-xml.c
+++ b/tools/sra-load/experiment-xml.c
@@ -55,6 +55,8 @@ typedef struct PoolMember_struct {
     BSTNode node;
     const char *name;
     PoolReadSpec spec[MAX_SPOT_DESCRIPTOR_READS];
+    uint32_t added;
+    uint32_t removed;
 } PoolMember;
 
 struct ExperimentXML {
@@ -133,6 +135,107 @@ void CC PoolMember_Dump( BSTNode *node, void *data )
 }
 #endif
 
+typedef struct PoolMember_Stat_struct {
+    SLNode node;
+    const char *member;
+    uint32_t added;
+    uint32_t deleted;
+} PoolMember_Stat;
+
+typedef struct PoolMember_StatFindData_struct {
+    const char* search;
+    PoolMember_Stat* node;
+} PoolMember_StatFindData;
+
+static
+bool CC PoolMemberStats_Find(SLNode *n, void *d)
+{
+    PoolMember_Stat* node = (PoolMember_Stat*)n;
+    PoolMember_StatFindData* data = (PoolMember_StatFindData*)d;
+
+    if( ((node->member == NULL || node->member[0] == '\0') && (data->search == NULL || data->search[0] == '\0')) ||
+        (node->member != NULL && data->search != NULL && strcmp(node->member, data->search) == 0) ) {
+        data->node = node;
+        return true;
+    }
+    return false;
+}
+
+static
+void CC PoolMemberStats_Log( SLNode *n, void *data )
+{
+    PoolMember_Stat* node = (PoolMember_Stat*)n;
+
+    const char* mm = node->member ? node->member : "default";
+    PLOGMSG(klogInfo, (klogInfo, "Member stat $(name): +$(added), -$(removed)",
+             "severity=member,name=%s,added=%u,removed=%u", mm, node->added, node->deleted));
+}
+
+static
+void CC PoolMemberStats_Whack( SLNode *n, void *data )
+{
+    PoolMember_Stat* node = (PoolMember_Stat*)n;
+    free((void*)node->member);
+    free(node);
+}
+
+static
+rc_t PoolMemberStats(const ExperimentXML* self, const char* member_name, PoolMember_Stat** node)
+{
+    rc_t rc = 0;
+    PoolMember_StatFindData data;
+
+    data.node = NULL;
+    data.search = member_name;
+
+    if( !SLListDoUntil(&self->member_stats, PoolMemberStats_Find, &data) ) {
+        char* nm = (member_name && member_name[0] != '\0') ? strdup(member_name) : NULL;
+        data.node = calloc(1, sizeof(*data.node));
+        if( data.node == NULL || (nm == NULL && member_name && member_name[0] != '\0') ) {
+            free(data.node);
+            free(nm);
+            rc = RC(rcSRA, rcFormatter, rcResolving, rcMemory, rcExhausted);
+        } else {
+            data.node->member = nm;
+            SLListPushTail((SLList*)&self->member_stats, &data.node->node);
+        }
+    }
+    *node = data.node;
+    return rc;
+}
+
+static
+rc_t PoolMemberStats_Set(const ExperimentXML* self, const char* member_name)
+{
+    PoolMember_Stat* node = NULL;
+
+    return PoolMemberStats(self, member_name, &node);
+}
+
+static
+rc_t PoolMemberStats_Add(const ExperimentXML* self, const char* member_name)
+{
+    rc_t rc = 0;
+    PoolMember_Stat* node = NULL;
+
+    if( (rc = PoolMemberStats(self, member_name, &node)) == 0 ) {
+        node->added++;
+    }
+    return rc;
+}
+
+static
+rc_t PoolMemberStats_Delete(const ExperimentXML* self, const char* member_name)
+{
+    rc_t rc = 0;
+    PoolMember_Stat* node = NULL;
+
+    if( (rc = PoolMemberStats(self, member_name, &node)) == 0 ) {
+        node->deleted++;
+    }
+    return rc;
+}
+
 static
 rc_t PoolMember_Add(ExperimentXML* self, const char* name)
 {
@@ -217,6 +320,7 @@ rc_t PoolMember_Add(ExperimentXML* self, const char* name)
                     break;
             }
         }
+        rc = PoolMemberStats_Set(self, member->name);
     } else {
         PoolMember_Whack(&member->node, NULL);
     }
@@ -432,32 +536,20 @@ bool Experiment_ExpectedTableMatch(const ReadSpecXML_read_BASECALL_TABLE* table,
         match.score = -1;
         if( data->left_adjusted ) {
             if( AgrepFindFirst(bc->agrep, bc->max_mismatch, data->seq, data->len, &match) ) {
-                if( data->direction == etm_Reverse ) {
-                    int32_t right_tail = data->len - match.position - strlen(bc->basecall);
-                    if( right_tail > bc->max_mismatch - match.score ) {
-                        match.score = -1;
-                    } else if( match.position > 0 ) {
-                        match.score += right_tail;
-                        match.length += right_tail;
-                        match.position = 0;
-                    }
-                } else {
-                    if( match.position > bc->max_mismatch - match.score ) {
-                        match.score = -1;
-                    } else if( match.position > 0 ) {
-                        match.score += match.position;
-                        match.length += match.position;
-                        match.position = 0;
-                    }
+                if( match.position > bc->max_mismatch - match.score ) {
+                    match.score = -1;
+                } else if( match.position > 0 ) {
+                    match.score += match.position;
+                    match.length += match.position;
+                    match.position = 0;
                 }
             }
         } else {
             AgrepFindBest(bc->agrep, bc->max_mismatch, data->seq, data->len, &match);
         }
         if( !(match.score < 0) ) {
-            DEBUG_MSG(3, ("agrep match bc %s, min: %u, max: %u, edge: %s%s, [%d:%d] score %d\n", bc->basecall, bc->min_match, bc->max_mismatch,
+            DEBUG_MSG(3, ("agrep match bc %s, min: %u, max: %u, edge: %s, [%d:%d] score %d\n", bc->basecall, bc->min_match, bc->max_mismatch,
                        bc->match_edge == match_edge_Full ? "Full" : (bc->match_edge == match_edge_Start ? "Start" : "End"),
-                       data->left_adjusted ? " left adjusted" : "",
                        match.position, match.length, match.score));
             if( (data->match.score < 0 || data->match.score > match.score) ) {
                 memcpy(&data->match, &match, sizeof(data->match));
@@ -577,20 +669,20 @@ rc_t Experiment_FillRead(const ReadSpecXML_read* spec, PoolReadSpec* pool,
                     break;
                 }
                 for(i = 0; i < data.len; i++) {
-                    /* reverse a portion of seq */
+                    /* reverse part of seq */
                     r[i] = bases[pool[1].start - i - 1];
                 }
                 data.seq = r;
                 data.tag = *tag;
                 data.direction = etm_Reverse;
-                data.left_adjusted = spec[1].coord_type != rdsp_RelativeOrder_ct && pool[1].start > 0;
+                data.left_adjusted = true;
                 DEBUG_MSG(3, ("agrep find read %u rev in: '%.*s' = %u\n", nreads, data.len, data.seq, data.len));
                 if( Experiment_ExpectedTableMatch(&spec->coord.expected_basecalls, &data) ) {
                     DEBUG_MSG(3, ("agrep found rev from %hd match %d:%d - %d '%s' in '%.*s' \n",
                                     start, data.match.position, data.match.length, data.match.score,
                                     data.bc->basecall, data.len, &bases[pool[1].start - data.len]));
                     if( pool->length < 0 || data.match.score < pool->score ) {
-                        pool->start = pool[1].start - data.match.position - data.match.length;
+                        pool->start = pool[1].start - data.match.length;
                         pool->length = data.match.length;
                         pool->item[0] = data.bc;
                         pool->score = data.match.score;
@@ -608,12 +700,7 @@ rc_t Experiment_FillRead(const ReadSpecXML_read* spec, PoolReadSpec* pool,
             gap = pool[1].start - (pool->start + pool->length);
             if( gap > 0 ) {
                 /* right gap */
-                if( spec[1].coord_type == rdsp_RelativeOrder_ct ) {
-                    /* adjust right read's start to the tail of current read */
-                    pool[1].start -= gap;
-                    pool[1].length += gap;
-                    gap = 0;
-                } else if( spec[1].coord_type >= rdsp_ExpectedBaseCall_ct &&
+                if( spec[1].coord_type >= rdsp_ExpectedBaseCall_ct &&
                     spec[1].coord.expected_basecalls.base_coord <= 0 && pool[1].item[0] != NULL ) {
                     /* move left read's start to left as much as possible */
                     int32_t left = pool[1].item[0]->max_mismatch - pool[1].score;
@@ -794,10 +881,17 @@ rc_t Experiment_MemberSeg(const ExperimentXML* self,
         if( self->member_pool == NULL || self->processing.barcode_rule == eBarcodeRule_ignore_barcode ) {
             if( (rc = Experiment_FillSegAgrep(self, pool, self->member_null, nbases, bases, NULL)) == 0 ) {
                 *new_member_name = mm;
+                rc = PoolMemberStats_Add(self, *new_member_name);
             }
         } else if( mm == NULL ) {
             *new_member_name = NULL;
-	    rc = Experiment_FillSegAgrep(self, pool, self->member_null, nbases, bases, new_member_name);
+            if( (rc = Experiment_FillSegAgrep(self, pool, self->member_null, nbases, bases, new_member_name)) == 0 ) {
+                if( (rc = PoolMemberStats_Add(self, *new_member_name)) == 0 ) {
+                    if( *new_member_name != NULL && **new_member_name != '\0' ) {
+                        rc = PoolMemberStats_Delete(self, NULL);
+                    }
+                }
+            }
         } else {
             PoolMember* pm = (PoolMember*)BSTreeFind(self->member_pool, mm, PoolMember_FindByName);
             if( pm == NULL ) {
@@ -806,6 +900,7 @@ rc_t Experiment_MemberSeg(const ExperimentXML* self,
             } else {
                 if( (rc = Experiment_FillSegAgrep(self, pool, pm, nbases, bases, NULL)) == 0 ) {
                     *new_member_name = mm;
+                    rc = PoolMemberStats_Add(self, *new_member_name);
                 }
             }
         }
@@ -867,7 +962,7 @@ rc_t Experiment_MemberSeg(const ExperimentXML* self,
             size_t max = sizeof(err_buf);
 
             for(i = 1; i <= self->reads->nreads; i++) {
-                int x = snprintf(p, max, "[%hd:%d, len = %hd", pool[i].start, pool[i].start + pool[i].length, pool[i].length);
+                int x = snprintf(p, max, "[%hd:%hd, len = %hd", pool[i].start, pool[i].start + pool[i].length, pool[i].length);
                 if( x > 0 && x < max ) {
                     max -= x;
                     p += x;
@@ -923,6 +1018,9 @@ rc_t Experiment_MemberSegSimple(const ExperimentXML* self,
                 *new_member_name = NULL;
                 break;
         }
+        if( rc == 0 ) {
+            rc = PoolMemberStats_Add(self, *new_member_name);
+        }
     }
     return rc;
 }
@@ -1239,6 +1337,17 @@ rc_t Experiment_ReadSegDefault(const ExperimentXML* self, SRASegment* seg)
     return rc;
 }
 
+rc_t Experiment_LogStats(const ExperimentXML* cself)
+{
+    rc_t rc = 0;
+    if( cself == NULL ) {
+        rc = RC(rcSRA, rcFormatter, rcAccessing, rcParam, rcNull);
+    } else {
+        SLListForEach(&cself->member_stats, PoolMemberStats_Log, NULL);
+    }
+    return rc;
+}
+
 void Experiment_Whack(const ExperimentXML* cself)
 {
     if( cself != NULL ) {
@@ -1249,6 +1358,7 @@ void Experiment_Whack(const ExperimentXML* cself)
         BSTreeWhack(self->member_pool, PoolMember_Whack, NULL);
         free(self->member_pool);
         PoolMember_Whack(&self->member_null->node, NULL);
+        SLListWhack(&self->member_stats, PoolMemberStats_Whack, NULL);
         PlatformXML_Whack(self->platform);
         free(self);
     }
diff --git a/tools/sra-load/experiment-xml.h b/tools/sra-load/experiment-xml.h
index 8ab869d..ff81c05 100644
--- a/tools/sra-load/experiment-xml.h
+++ b/tools/sra-load/experiment-xml.h
@@ -71,6 +71,7 @@ rc_t Experiment_MemberSegSimple(const ExperimentXML* self,
                                 const char* const file_member_name, const char* const data_block_member_name,
                                 const char** const new_member_name);
 
+rc_t Experiment_LogStats(const ExperimentXML* cself);
 
 void Experiment_Whack(const ExperimentXML* cself);
 
diff --git a/tools/sra-load/fastq-fmt.c b/tools/sra-load/fastq-fmt.c
index 35c3090..efcc7f9 100644
--- a/tools/sra-load/fastq-fmt.c
+++ b/tools/sra-load/fastq-fmt.c
@@ -98,7 +98,6 @@ static
 rc_t file_read_line(FastqFileInfo* file, bool optional)
 {
     rc_t rc = 0;
-static unsigned long lineNo=0;
 
     if( file->line == NULL ) {
         if( (rc = SRALoaderFileReadline(file->file, (const void**)&file->line, &file->line_len)) == 0 ) {
@@ -120,7 +119,6 @@ static unsigned long lineNo=0;
                 }
             }
         }
-        ++lineNo;
     }
     return rc;
 }
@@ -250,8 +248,8 @@ uint8_t parse_spot_name(const SRALoaderFile* file, FileReadData* spot, const cha
             x++;
         }
         /* find last '=' and use only whatever is to the left of it */
-        if( (x = memrchr(spot->name.data, '=', spot->name.len)) != NULL ) {
-            rc = pstring_assign(&spot->name, spot->name.data, (x - spot->name.data) );
+        if( (x = memrchr(spot->name.data, '=', spot->name.len)) == NULL ) {
+            rc = pstring_assign(&spot->name, x + 1, spot->name.len - (x - spot->name.data));
         }
     }
     return score;
@@ -478,16 +476,13 @@ rc_t read_next_spot(FastqLoaderFmt* self, FastqFileInfo* file)
             if( rd->ready && rd->read.qual_type != ILLUMINAWRITER_COLMASK_NOTSET ) {
                 if( file->qualOffset == 0 ) {
                     /* detect and remember */
-                    file->qualOffset = 33;
-		    file->qualMax = 94;
+                    file->qualOffset = 64;
                     rc = pstring_quality_convert(&rd->read.qual, file->qualEnc, file->qualOffset, file->qualMin, file->qualMax);
                     if( GetRCState(rc) == rcOutofrange ) {
-                        file->qualOffset = 64;
-			file->qualMax = 61;
+                        file->qualOffset = 33;
                         rc = pstring_quality_convert(&rd->read.qual, file->qualEnc, file->qualOffset, file->qualMin, file->qualMax);
                     }
                 } else {
-		    if(file->qualOffset == 33) file->qualMax = 94;
                     rc = pstring_quality_convert(&rd->read.qual, file->qualEnc, file->qualOffset, file->qualMin, file->qualMax);
                 }
                 if( rc != 0 ) {
@@ -546,7 +541,7 @@ rc_t FastqLoaderFmt_WriteData(FastqLoaderFmt* self, uint32_t argc, const SRALoad
                 case eExperimentQualityType_Phred:
                     file->qualType = ILLUMINAWRITER_COLMASK_QUALITY_PHRED;
                     file->qualMin = 0;
-                    file->qualMax = (self->wIllumina) ? 61: 127;
+                    file->qualMax = (self->wIllumina) ? 41: 127;
                     break;
             }
         }
@@ -636,6 +631,12 @@ rc_t FastqLoaderFmt_Whack(FastqLoaderFmt *self, SRATable** table)
 
 const char UsageDefaultName[] = "fastq-load";
 
+rc_t CC UsageSummary (const char * progname)
+{
+    return 0;
+}
+
+
 uint32_t KAppVersion(void)
 {
     return FASTQ_LOAD_VERS;
@@ -681,10 +682,22 @@ rc_t SRALoaderFmtMake(SRALoaderFmt **self, const SRALoaderConfig *config)
         return rc;
     }
     if( platform->id == SRA_PLATFORM_454 ) {
+        if( platform->param.ls454.flow_sequence == NULL ) {
+            LOGMSG(klogWarn, "missing FLOW_SEQUENCE in PLATFORM");
+        }
+        if( platform->param.ls454.key_sequence == NULL ) {
+            LOGMSG(klogWarn, "missing KEY_SEQUENCE in PLATFORM");
+        }
         if( rc == 0 && (rc = SRAWriter454_Make(&fmt->w454, config)) != 0 ) {
             LOGERR(klogInt, rc, "failed to initialize 454 writer");
         }
     } else if( platform->id == SRA_PLATFORM_ION_TORRENT ) {
+        if( platform->param.ion_torrent.flow_sequence == NULL ) {
+            LOGMSG(klogWarn, "missing FLOW_SEQUENCE in PLATFORM");
+        }
+        if( platform->param.ion_torrent.key_sequence == NULL ) {
+            LOGMSG(klogWarn, "missing KEY_SEQUENCE in PLATFORM");
+        }
         if( rc == 0 && (rc = SRAWriterIonTorrent_Make(&fmt->wIonTorrent, config)) != 0 ) {
             LOGERR(klogInt, rc, "failed to initialize Ion Torrent writer");
         }
diff --git a/tools/sra-load/fastq-load.vers b/tools/sra-load/fastq-load.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-load/fastq-load.vers
+++ b/tools/sra-load/fastq-load.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-load/fastq-load.vers.h b/tools/sra-load/fastq-load.vers.h
new file mode 100644
index 0000000..517027e
--- /dev/null
+++ b/tools/sra-load/fastq-load.vers.h
@@ -0,0 +1 @@
+#define FASTQ_LOAD_VERS 0x02010007
diff --git a/tools/sra-load/helicos-fmt.c b/tools/sra-load/helicos-fmt.c
index d2f254b..810f427 100644
--- a/tools/sra-load/helicos-fmt.c
+++ b/tools/sra-load/helicos-fmt.c
@@ -227,6 +227,11 @@ rc_t HelicosLoaderFmt_Whack(HelicosLoaderFmt *self, SRATable** table)
 
 const char UsageDefaultName[] = "helicos-load";
 
+rc_t CC UsageSummary (const char * progname)
+{
+    return 0;
+}
+
 uint32_t KAppVersion(void)
 {
     return HELICOS_LOAD_VERS;
diff --git a/tools/sra-load/helicos-load.vers b/tools/sra-load/helicos-load.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-load/helicos-load.vers
+++ b/tools/sra-load/helicos-load.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-load/helicos-load.vers.h b/tools/sra-load/helicos-load.vers.h
new file mode 100644
index 0000000..d25307a
--- /dev/null
+++ b/tools/sra-load/helicos-load.vers.h
@@ -0,0 +1 @@
+#define HELICOS_LOAD_VERS 0x02010007
diff --git a/tools/sra-load/illumina-fmt.c b/tools/sra-load/illumina-fmt.c
index ad0caa6..9bafe77 100644
--- a/tools/sra-load/illumina-fmt.c
+++ b/tools/sra-load/illumina-fmt.c
@@ -797,6 +797,11 @@ rc_t IlluminaLoaderFmt_Whack(IlluminaLoaderFmt *self, SRATable** table)
 
 const char UsageDefaultName[] = "illumina-load";
 
+rc_t CC UsageSummary (const char * progname)
+{
+    return 0;
+}
+
 uint32_t KAppVersion(void)
 {
     return ILLUMINA_LOAD_VERS;
diff --git a/tools/sra-load/illumina-load.vers b/tools/sra-load/illumina-load.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-load/illumina-load.vers
+++ b/tools/sra-load/illumina-load.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-load/illumina-load.vers.h b/tools/sra-load/illumina-load.vers.h
new file mode 100644
index 0000000..77ce9c4
--- /dev/null
+++ b/tools/sra-load/illumina-load.vers.h
@@ -0,0 +1 @@
+#define ILLUMINA_LOAD_VERS 0x02010007
diff --git a/tools/sra-load/loader-file.c b/tools/sra-load/loader-file.c
index feeff1a..879ecdf 100644
--- a/tools/sra-load/loader-file.c
+++ b/tools/sra-load/loader-file.c
@@ -76,11 +76,6 @@ rc_t SRALoaderFileFullName(const SRALoaderFile *cself, const char **name)
     return KLoaderFile_FullName(cself ? cself->lfile : NULL, name);
 }
 
-rc_t SRALoaderFileResolveName(const SRALoaderFile *self, char *resolved, size_t rsize)
-{
-    return KLoaderFile_ResolveName(self ? self->lfile : NULL, resolved, rsize);
-}
-
 rc_t SRALoaderFileBlockName ( const SRALoaderFile *cself, const char **block_name )
 {
     if( cself == NULL || block_name == NULL ) {
@@ -167,7 +162,7 @@ rc_t SRALoaderFile_Release(const SRALoaderFile* cself)
 }
 
 rc_t SRALoaderFile_Make(const SRALoaderFile **cself, const KDirectory* dir, const char* filename,
-                        const DataBlock* block, const DataBlockFileAttr* fileattr, const uint8_t* md5_digest, bool read_ahead)
+                        const DataBlock* block, const DataBlockFileAttr* fileattr, const uint8_t* md5_digest)
 {
     rc_t rc = 0;
     SRALoaderFile* obj;
@@ -177,7 +172,7 @@ rc_t SRALoaderFile_Make(const SRALoaderFile **cself, const KDirectory* dir, cons
     } else {
         if( (obj = calloc(1, sizeof(*obj))) == NULL ) {
             rc = RC(rcSRA, rcFile, rcConstructing, rcMemory, rcExhausted);
-        } else if( (rc = KLoaderFile_Make(&obj->lfile, dir, filename, md5_digest, read_ahead)) == 0 ) {
+        } else if( (rc = KLoaderFile_Make(&obj->lfile, dir, filename, md5_digest)) == 0 ) {
             obj->data_block = block;
             obj->file_attr = fileattr;
             *cself = obj;
diff --git a/tools/sra-load/loader-file.h b/tools/sra-load/loader-file.h
index 261eb32..73cbffc 100644
--- a/tools/sra-load/loader-file.h
+++ b/tools/sra-load/loader-file.h
@@ -40,7 +40,7 @@
 typedef struct SRALoaderFile SRALoaderFile;
 
 rc_t SRALoaderFile_Make(const SRALoaderFile **cself, const KDirectory* dir, const char* filename,
-                        const DataBlock* block, const DataBlockFileAttr* fileattr, const uint8_t* md5_digest, bool read_ahead);
+                        const DataBlock* block, const DataBlockFileAttr* fileattr, const uint8_t* md5_digest);
 
 rc_t SRALoaderFile_Release(const SRALoaderFile* cself);
 
@@ -59,8 +59,6 @@ rc_t SRALoaderFileName ( const SRALoaderFile *cself, const char **name );
 
 rc_t SRALoaderFileFullName(const SRALoaderFile *cself, const char **name);
 
-rc_t SRALoaderFileResolveName(const SRALoaderFile  *self, char *resolved, size_t rsize);
-
 /* DATA_BLOCK name attribute */
 rc_t SRALoaderFileBlockName ( const SRALoaderFile *cself, const char **block_name );
 
diff --git a/tools/sra-load/loader-fmt.h b/tools/sra-load/loader-fmt.h
index 9ef888c..3a25fd5 100644
--- a/tools/sra-load/loader-fmt.h
+++ b/tools/sra-load/loader-fmt.h
@@ -50,7 +50,6 @@ typedef struct TArgs_struct {
     const char *_runXmlPath;
     const char* _input_path;
     uint32_t _input_unpacked; /* as bool */
-    uint32_t _no_read_ahead; /* as bool */
 
     const char *_experimentXmlPath;
     const char *_target;
diff --git a/tools/sra-load/loader.c b/tools/sra-load/loader.c
index 9c9c888..f2c09f8 100644
--- a/tools/sra-load/loader.c
+++ b/tools/sra-load/loader.c
@@ -28,7 +28,7 @@
 #include <klib/log.h>
 #include <klib/out.h>
 #include <klib/status.h>
-#include <kxml/xml.h>
+#include <klib/xml.h>
 #include <kfs/md5.h>
 #include <kfs/arc.h>
 #include <kfs/tar.h>
@@ -64,7 +64,6 @@ enum TArgsIndex {
     targs_RunXML = 0,
     targs_InputPath,
     targs_InputUnpacked,
-    targs_InputNoCache,
     targs_ExperimentXML,
     targs_Target,
     targs_ForceTarget,
@@ -80,7 +79,6 @@ const char* usage_text[targs_ArgsQty][5] = {
 	{ "path to run.xml describing input files", NULL },
 	{ "input files location, default '.'", NULL },
 	{ "input files are unpacked", NULL },
-    { "disable input files threaded caching", NULL },
 	{ "path to experiment.xml", NULL },
     { "target location", NULL },
 	{ "force target overwrite", NULL },
@@ -88,10 +86,10 @@ const char* usage_text[targs_ArgsQty][5] = {
 	{ "acceptable number of spot creation errors, default is 50", NULL },
 	{ "acceptable percentage of spots creation errors, default is 5", NULL },
 	{ "path to expected.xml", NULL },
-	{ "[on | off] load intensity data, default is off. For ",
+	{ "[on | off] load intensity data, default is off:",
       "  Illumina: signal, intensity, noise;",
       "  AB SOLiD: signal(s);",
-      "  LS454: signal, position (for SFF files this option is ON by default).", NULL },
+      "  LS454: signal, position (for SFF files ON by default).", NULL }
 };
 
 OptDef TArgsDef[] =
@@ -100,23 +98,16 @@ OptDef TArgsDef[] =
     {"run-xml", "r", NULL, usage_text[targs_RunXML], 1, true, true},
     {"input-path", "i", NULL, usage_text[targs_InputPath], 1, true, false},
     {"input-unpacked", "u", NULL, usage_text[targs_InputUnpacked], 1, false, false},
-    {"input-no-threads", "t", NULL, usage_text[targs_InputNoCache], 1, false, false},
     {"experiment", "e", NULL, usage_text[targs_ExperimentXML], 1, true, true},
     {"output-path", "o", NULL, usage_text[targs_Target], 1, true, true},
     {"force", "f", NULL, usage_text[targs_ForceTarget], 1, false, false},
     {"spots-number", "n", NULL, usage_text[targs_SpotsNumber], 1, true, false},
-    {"bad-spot-number", "bE", NULL, usage_text[targs_BadSpotsNumber], 1, true, false},
+    {"bad-spot-number", "b", NULL, usage_text[targs_BadSpotsNumber], 1, true, false},
     {"bad-spot-percentage", "p", NULL, usage_text[targs_BadSpotPercentage], 1, true, false},
     {"expected", "x", NULL, usage_text[targs_ExpectedXML], 1, true, false},
     {"intensities", "s", NULL, usage_text[targs_Intensities], 1, true, false}
 };
 
-rc_t CC UsageSummary (const char * progname)
-{
-    OUTMSG(( "\nUsage:\n\t%s [options] -r run.xml -e experiment.xml -o output-path\n\n", progname));
-    return 0;
-}
-
 rc_t Usage( const Args * args )
 {
     const char * progname = UsageDefaultName;
@@ -124,15 +115,19 @@ rc_t Usage( const Args * args )
     rc_t rc;
     int i;
 
-    if(args == NULL) {
+    if (args == NULL)
         rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    } else {
+    else
         rc = ArgsProgram (args, &fullpath, &progname);
-    }
-    if(rc != 0 ) {
+    if (rc)
         progname = fullpath = UsageDefaultName;
-    }
-    UsageSummary(progname);
+
+/*     UsageSummary (progname); */
+
+/*     KOutMsg ("Options:\n"); */
+
+
+    OUTMSG(( "\nUsage:\n\t%s [options] -r run.xml -e experiment.xml -o output-path\n\n", progname));
 
     for(i = 0; i < targs_ArgsQty; i++ ) {
         if( TArgsDef[i].required && TArgsDef[i].help[0] != NULL ) {
@@ -197,9 +192,6 @@ rc_t TArgsParse(TArgs *args, int argc, char *argv[])
     } else if( (rc = ArgsOptionCount(args->args, TArgsDef[targs_InputUnpacked].name, &args->_input_unpacked)) != 0 ) {
         errmsg = TArgsDef[targs_InputUnpacked].name;
 
-    } else if( (rc = ArgsOptionCount(args->args, TArgsDef[targs_InputNoCache].name, &args->_no_read_ahead)) != 0 ) {
-        errmsg = TArgsDef[targs_InputNoCache].name;
-
     } else if( (rc = ArgsOptionCount(args->args, TArgsDef[targs_ForceTarget].name, &args->_force_target)) != 0 ) {
         errmsg = TArgsDef[targs_ForceTarget].name;
 
@@ -330,12 +322,7 @@ rc_t TArgsMake(TArgs **args, int argc, char *argv[])
         r->_spots_bad_allowed = 50;
         r->_spots_bad_allowed_percentage = 5;
         r->_input_unpacked = false;
-        if( argc > 1 ) {
-            rc = TArgsParse(r, argc, argv);
-        } else {
-            MiniUsage(r->args);
-            exit(0);
-        }
+        rc = TArgsParse(r, argc, argv);
     }
     if( rc == 0 ) {
         *args = r;
@@ -644,6 +631,9 @@ static rc_t TArgsLogResultTotal(const TArgs *self, rc_t status, uint64_t spotCou
     /* raise log level in order to print stats */
     tmp_lvl = KLogLevelGet();
     KLogLevelSet(klogInfo);
+    if(status == 0) {
+        Experiment_LogStats(self->_experiment);
+    }
     for(i = 0; self->_expected != NULL && i < self->_expected->number_of_results && rc == 0; i++) {
         ResultXML *f = self->_expected->result[i];
         PLOGMSG(klogInfo, (klogInfo, "loaded",
@@ -765,12 +755,15 @@ rc_t SInputOpen(const SInput **cself, TArgs *args)
                                 const KFile* kf = NULL;
                                 if( ccdirs_qty + 1 > sizeof(ccdirs) / sizeof(ccdirs[0]) ) {
                                     rc = RC(rcExe, rcStorage, rcAllocating, rcNamelist, rcTooLong);
-                                } else if( (rc = KDirectoryOpenFileRead(args->_input_dir, &kf, "%s.xml", b->files[j].cc_xml)) == 0) {
+                                } else if( (rc = KDirectoryOpenFileRead(args->_input_dir, &kf, "%s.xml", b->files[j].cc_xml)) == 0)
+                                {
                                     char base_path[4096];
                                     int r = snprintf(base_path, sizeof base_path, "%s/", b->files[j].cc_xml);
                                     if (r >= sizeof base_path) {
                                         rc = RC(rcExe, rcStorage, rcAllocating, rcFile, rcTooLong);
-                                    } else if ((rc = KDirectoryOpenXTocDirRead(args->_input_dir, &ccdirs[ccdirs_qty].xdir, false, kf, base_path)) == 0 ) {
+                                    }
+                                    else if ((rc = KDirectoryOpenXTocDirRead(args->_input_dir, &ccdirs[ccdirs_qty].xdir,
+                                                                    base_path, kf)) == 0 ) {
                                         cd = ccdirs_qty++;
                                         ccdirs[cd].uid = b->files[j].cc_xml;
                                         KFileRelease(kf);
@@ -784,8 +777,7 @@ rc_t SInputOpen(const SInput **cself, TArgs *args)
                             if( fn == NULL ) {
                                 rc = RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
                             } else {
-                                rc = SRALoaderFile_Make(&self->blocks[i].files[f++], fdir, fn, b, &b->files[j].attr,
-                                                        NULL, !args->_no_read_ahead);
+                                rc = SRALoaderFile_Make(&self->blocks[i].files[f++], fdir, fn, b, &b->files[j].attr, NULL);
                                 file_qty++;
                                 free(fn);
                             }
@@ -833,8 +825,7 @@ rc_t SInputOpen(const SInput **cself, TArgs *args)
                             }
                             self->blocks[i].files = p;
                             for(k = 0; k < data.count; k++) {
-                                rc = SRALoaderFile_Make(&self->blocks[i].files[f++], tar, data.files[k], b, &b->files[j].attr,
-                                                        NULL, !args->_no_read_ahead);
+                                rc = SRALoaderFile_Make(&self->blocks[i].files[f++], tar, data.files[k], b, &b->files[j].attr, NULL);
                                 file_qty++;
                             }
                             free(data.files);
@@ -845,8 +836,7 @@ rc_t SInputOpen(const SInput **cself, TArgs *args)
                         if( fn == NULL ) {
                             rc = RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
                         } else {
-                            rc = SRALoaderFile_Make(&self->blocks[i].files[f++], args->_input_dir, fn, b, &b->files[j].attr,
-                                                    b->files[j].md5_digest, !args->_no_read_ahead);
+                            rc = SRALoaderFile_Make(&self->blocks[i].files[f++], args->_input_dir, fn, b, &b->files[j].attr, b->files[j].md5_digest);
                             file_qty++;
                             free(fn);
                         }
@@ -1116,8 +1106,8 @@ rc_t KMain(int argc, char *argv[])
 
     /* make sure the error was reported */
     if( rc != 0 &&
-        rc != SILENT_RC(rcExe, rcProcess, rcExecuting, rcProcess, rcCanceled) &&
-        rc != SILENT_RC(rcExe, rcProcess, rcExecuting, rcTransfer, rcDone)) {
+        rc != RC(rcExe, rcProcess, rcExecuting, rcProcess, rcCanceled) &&
+        rc != RC(rcExe, rcProcess, rcExecuting, rcTransfer, rcDone)) {
         if (lastRc == 0) {
             lastRc = KLogLastErrorCode();
         }
diff --git a/tools/sra-load/run-xml.c b/tools/sra-load/run-xml.c
index 12399eb..a569ea7 100644
--- a/tools/sra-load/run-xml.c
+++ b/tools/sra-load/run-xml.c
@@ -101,8 +101,7 @@ const struct {
     { "Illumina_native_int", rft_IlluminaNativeInt },
     { "Illumina_native_qseq", rft_IlluminaNativeQseq },
     { "SOLiD_native_csfasta", rft_ABINativeCSFasta },
-    { "SOLiD_native_qual", rft_ABINativeQuality },
-    { "PacBio_HDF5", rft_PacBio_HDF5 }
+    { "SOLiD_native_qual", rft_ABINativeQuality }
 };
 
 static
@@ -249,7 +248,7 @@ rc_t parse_FILE(const KXMLNode* FILE, DataBlockFile* file)
             if( file->attr.filetype == 0 ) {
                 rc4 = RC(rcExe, rcStorage, rcConstructing, rcAttr, rcOutofrange);
                 PLOGERR(klogErr, (klogErr, rc4, "FILE $(file) @filetype '$(type)'",
-                         PLOG_2(PLOG_S(file),PLOG_S(type)), file->filename, filetype));
+                         PLOG_2(PLOG_S(file),PLOG_S(digits)), file->filename, filetype));
             }
         }
         rc = rc1 ? rc1 : (rc2 ? rc2 : (rc3 ? rc3 : rc4));
diff --git a/tools/sra-load/run-xml.h b/tools/sra-load/run-xml.h
index b46172b..f1119dd 100644
--- a/tools/sra-load/run-xml.h
+++ b/tools/sra-load/run-xml.h
@@ -43,8 +43,7 @@ typedef enum ERunFileType_enum {
     rft_IlluminaNativeInt,
     rft_IlluminaNativeQseq,
     rft_ABINativeCSFasta,
-    rft_ABINativeQuality,
-    rft_PacBio_HDF5
+    rft_ABINativeQuality
 } ERunFileType;
 
 typedef struct DataBlockFileAttr_struct {
diff --git a/tools/sra-load/sff-fmt.c b/tools/sra-load/sff-fmt.c
index 49ce718..66a7ca4 100644
--- a/tools/sra-load/sff-fmt.c
+++ b/tools/sra-load/sff-fmt.c
@@ -404,6 +404,11 @@ rc_t SFFLoaderFmtWriteDataFile(SFFLoaderFmt* self, const SRALoaderFile* file)
 
 const char UsageDefaultName[] = "sff-load";
 
+rc_t CC UsageSummary (const char * progname)
+{
+    return 0;
+}
+
 uint32_t KAppVersion(void)
 {
     return SFF_LOAD_VERS;
diff --git a/tools/sra-load/sff-load.vers b/tools/sra-load/sff-load.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-load/sff-load.vers
+++ b/tools/sra-load/sff-load.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-load/sff-load.vers.h b/tools/sra-load/sff-load.vers.h
new file mode 100644
index 0000000..e2c52f4
--- /dev/null
+++ b/tools/sra-load/sff-load.vers.h
@@ -0,0 +1 @@
+#define SFF_LOAD_VERS 0x02010000
diff --git a/tools/sra-load/srf-fmt.c b/tools/sra-load/srf-fmt.c
index 19252f3..c0f8749 100644
--- a/tools/sra-load/srf-fmt.c
+++ b/tools/sra-load/srf-fmt.c
@@ -40,6 +40,11 @@
 
 const char UsageDefaultName[] = "srf-load";
 
+rc_t CC UsageSummary (const char * progname)
+{
+    return 0;
+}
+
 uint32_t KAppVersion(void)
 {
     return SRF_LOAD_VERS;
diff --git a/tools/sra-load/srf-load.vers b/tools/sra-load/srf-load.vers
index f90b1af..04b10b4 100644
--- a/tools/sra-load/srf-load.vers
+++ b/tools/sra-load/srf-load.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/sra-load/srf-load.vers.h b/tools/sra-load/srf-load.vers.h
new file mode 100644
index 0000000..c1e1293
--- /dev/null
+++ b/tools/sra-load/srf-load.vers.h
@@ -0,0 +1 @@
+#define SRF_LOAD_VERS 0x02010007
diff --git a/tools/sra-load/writer-absolid.c b/tools/sra-load/writer-absolid.c
index faaaec4..922360c 100644
--- a/tools/sra-load/writer-absolid.c
+++ b/tools/sra-load/writer-absolid.c
@@ -38,8 +38,8 @@
 #include <ctype.h>
 #include <assert.h>
 
-const int AbisolidReadType2ReadNumber [] = {0, 0, 0, 1, 1, 1, 1, 1, 1};
-const char *AbisolidReadType2ReadLabel [] = {"", "", "F3", "R3", "F5-P2", "F5-BC", "F5-RNA", "F5-DNA", "F3-DNA"};
+const int AbisolidReadType2ReadNumber [] = {0, 0, 0, 1, 1, 1};
+const char *AbisolidReadType2ReadLabel [] = {"", "", "F3", "R3", "F5-P2", "F5-BC"};
 
 void AbsolidRead_Init(AbsolidRead* read)
 {
@@ -75,12 +75,6 @@ EAbisolidReadType AbsolidRead_Suffix2ReadType(const char* s)
         type = eAbisolidReadType_F5_P2;
     } else if( len > 4 && strcmp(&s[len - 5], "F5-BC") == 0 ) {
         type = eAbisolidReadType_F5_BC;
-    } else if( len > 5 && strcmp(&s[len - 6], "F5-RNA") == 0 ) {
-        type = eAbisolidReadType_F5_RNA;
-    } else if( len > 5 && strcmp(&s[len - 6], "F5-DNA") == 0 ) {
-        type = eAbisolidReadType_F5_DNA;
-    } else if( len > 5 && strcmp(&s[len - 6], "F3-DNA") == 0 ) {
-        type = eAbisolidReadType_F3_DNA;
     } else {
         int i;
         for(i = 0; i < len; i++) {
diff --git a/tools/sra-load/writer-absolid.h b/tools/sra-load/writer-absolid.h
index 220a990..74bdcf7 100644
--- a/tools/sra-load/writer-absolid.h
+++ b/tools/sra-load/writer-absolid.h
@@ -46,10 +46,7 @@ typedef enum EAbisolidReadType_enum {
     eAbisolidReadType_F3 = 2,
     eAbisolidReadType_R3 = 3,
     eAbisolidReadType_F5_P2 = 4,
-    eAbisolidReadType_F5_BC = 5,
-    eAbisolidReadType_F5_RNA = 6,
-    eAbisolidReadType_F5_DNA = 7,
-    eAbisolidReadType_F3_DNA = 8
+    eAbisolidReadType_F5_BC = 5
 } EAbisolidReadType;
 
 extern const int AbisolidReadType2ReadNumber [];
diff --git a/tools/sra-pileup/Makefile b/tools/sra-pileup/Makefile
deleted file mode 100644
index 2eb89fa..0000000
--- a/tools/sra-pileup/Makefile
+++ /dev/null
@@ -1,152 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/sra-pileup
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS = \
-
-EXT_TOOLS = \
-	sra-pileup \
-	sam-dump
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# sra-pileup
-#
-TOOL_SRC = \
-	cmdline_cmn \
-	reref \
-	sra-pileup
-
-TOOL_OBJ = \
-	$(addsuffix .$(OBJX),$(TOOL_SRC))
-
-TOOL_LIB = \
-	-lkapp \
-	-lalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
-	-lsraschema \
-	-lvdb \
-	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lksrch \
-	-lkproc \
-	-lklib \
-	-lm
-
-$(BINDIR)/sra-pileup: $(TOOL_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(TOOL_LIB)
-
-#-------------------------------------------------------------------------------
-# sam-dump
-#
-SAMDUMP3_SRC = \
-	inputfiles \
-	sam-dump-opts \
-	out_redir \
-	sam-hdr \
-	matecache \
-	read_fkt \
-	sam-aligned \
-	sam-unaligned \
-	cg_tools \
-	sam-dump \
-	sam-dump3
-
-SAMDUMP3_OBJ = \
-	$(addsuffix .$(OBJX),$(SAMDUMP3_SRC))
-
-SAMDUMP3_LIB = \
-	-lkapp \
-	-lalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
-	-lsraschema \
-	-lvdb \
-	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lksrch \
-	-lkproc \
-	-lklib \
-	-lm
-
-$(BINDIR)/sam-dump: $(SAMDUMP3_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SAMDUMP3_LIB)
diff --git a/tools/sra-pileup/cg_tools.c b/tools/sra-pileup/cg_tools.c
deleted file mode 100644
index 77b8f78..0000000
--- a/tools/sra-pileup/cg_tools.c
+++ /dev/null
@@ -1,532 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "cg_tools.h"
-#include "debug.h"
-
-#include <klib/printf.h>
-#include <sysalloc.h>
-#include <ctype.h>
-#include <string.h>
-#include <assert.h>
-
-typedef struct CigOps
-{
-    char op;
-    int8_t   ref_sign; /* 0;+1;-1; ref_offset = ref_sign * offset */
-    int8_t   seq_sign; /* 0;+1;-1; seq_offset = seq_sign * offset */
-    uint32_t oplen;
-} CigOps;
-
-
-static void SetCigOp( CigOps * dst, char op, uint32_t oplen )
-{
-    dst->op    = op;
-    dst->oplen = oplen;
-    switch( op ) 
-    { /*MX= DN B IS PH*/
-
-    case 'M' :
-    case 'X' :
-    case '=' :  dst->ref_sign = +1;
-                dst->seq_sign = +1;
-                break;
-
-    case 'D' :
-    case 'N' :  dst->ref_sign = +1;
-                dst->seq_sign = 0;
-                break;
-
-    case 'B' :  dst->ref_sign = -1;
-                dst->seq_sign = 0;
-                break;
-
-    case 'S' :
-    case 'I' :  dst->ref_sign = 0;
-                dst->seq_sign = +1;
-                break;
-
-    case 'P' :
-    case 'H' :
-    case 0   :  dst->ref_sign= 0;   /* terminating op */
-                dst->seq_sign= 0;
-                break;
-
-    default :   assert( 0 );
-                break;
-    }
-}
-
-
-static int32_t ExplodeCIGAR( CigOps dst[], uint32_t len, char const cigar[], uint32_t ciglen )
-{
-    uint32_t i;
-    uint32_t j;
-    int32_t opLen;
-    
-    for ( i = j = opLen = 0; i < ciglen; ++i )
-    {
-        if ( isdigit( cigar[ i ] ) )
-        {
-            opLen = opLen * 10 + cigar[ i ] - '0';
-        }
-        else
-        {
-            assert( isalpha( cigar[ i ] ) );
-            SetCigOp( dst + j, cigar[ i ], opLen );
-            opLen = 0;
-            j++;
-        }
-    }
-    SetCigOp( dst + j, 0, 0 );
-    j++;
-    return j;
-}
-
-
-typedef struct cgOp_s
-{
-    uint16_t length;
-    uint8_t type; /* 0: match, 1: insert, 2: delete */
-    char code;
-} cgOp;
-
-
-static void print_CG_cigar( int line, cgOp const op[], unsigned const ops, unsigned const gap[ 3 ] )
-{
-#if _DEBUGGING
-    unsigned i;
-    
-    SAM_DUMP_DBG( 3, ( "%5i: ", line ) );
-    for ( i = 0; i < ops; ++i )
-    {
-        if ( gap && ( i == gap[ 0 ] || i == gap[ 1 ] || i == gap[ 2 ] ) )
-        {
-            SAM_DUMP_DBG( 3, ( "%u%c", op[ i ].length, tolower( op[ i ].code ) ) );
-        }
-        else
-        {
-            SAM_DUMP_DBG( 3, ( "%u%c", op[ i ].length, toupper( op[ i ].code ) ) );
-        }
-    }
-    SAM_DUMP_DBG( 3, ( "\n" ) );
-#endif
-}
-
-
-/* gap contains the indices of the wobbles in op
- * gap[0] is between read 1 and 2; it is the 'B'
- * gap[1] is between read 2 and 3; it is an 'N'
- * gap[2] is between read 3 and 4; it is an 'N'
- */
-
-typedef struct cg_cigar_temp
-{
-    unsigned gap[ 3 ];
-    cgOp cigOp[ MAX_READ_LEN ];
-    unsigned opCnt;
-    unsigned S_adjust;
-    unsigned CG_adjust;
-} cg_cigar_temp;
-
-
-static rc_t CIGAR_to_CG_Ops( const cg_cigar_input * input,
-                             cg_cigar_temp * tmp )
-{
-    unsigned i;
-    unsigned ops = 0;
-    unsigned gapno;
-
-    tmp->opCnt = 0;
-    tmp->S_adjust = 0;
-    for ( i = 0; i < input->cigar_len; ++ops )
-    {
-        char opChar = 0;
-        int opLen = 0;
-        int n;
-
-        for ( n = 0; ( ( n + i ) < input->cigar_len ) && ( isdigit( input->cigar[ n + i ] ) ); n++ )
-        {
-            opLen = opLen * 10 + input->cigar[ n + i ] - '0';
-        }
-
-        if ( ( n + i ) < input->cigar_len )
-        {
-            opChar = input->cigar[ n + i ];
-            n++;
-        }
-
-        if ( ( ops + 1 ) >= MAX_READ_LEN )
-            return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-
-        i += n;
-        
-        tmp->cigOp[ ops ].length = opLen;
-        tmp->cigOp[ ops ].code = opChar;
-        switch ( opChar )
-        {
-            case 'M' :
-            case '=' :
-            case 'X' :  tmp->cigOp[ ops ].type = 0;
-                        break;
-
-            case 'S' :  tmp->S_adjust += opLen;
-            case 'I' :  tmp->cigOp[ ops ].type = 1;
-                        tmp->cigOp[ ops ].code = 'I';
-                        break;
-
-            case 'D':   tmp->cigOp[ ops ].type = 2;
-                        break;
-
-            default :   return RC( rcExe, rcData, rcReading, rcConstraint, rcViolated );
-        }
-    }
-
-    tmp->opCnt = ops;
-    tmp->gap[ 0 ] = tmp->gap[ 1 ] = tmp->gap[ 2 ] = ops;
-    print_CG_cigar( __LINE__, tmp->cigOp, ops, NULL );
-
-    if ( ops < 3 )
-        return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-
-    {
-        unsigned fwd = 0; /* 5 10 10 10 */
-        unsigned rev = 0; /* 10 10 10 5 */
-        unsigned acc; /* accumulated length */
-        
-        if ( ( input->seq_req_id == 1 && !input->orientation ) ||
-             ( input->seq_req_id == 2 && input->orientation ) )
-        {
-            for ( i = 0, acc = 0; i < ops  && acc <= 5; ++i )
-            {
-                if ( tmp->cigOp[ i ].type != 2 )
-                {
-                    acc += tmp->cigOp[ i ].length;
-                    if ( acc == 5 && tmp->cigOp[ i + 1 ].type == 1 )
-                    {
-                        fwd = i + 1;
-                        break;
-                    }
-                    else if ( acc > 5 )
-                    {
-                        unsigned const right = acc - 5;
-                        unsigned const left = tmp->cigOp[ i ].length - right;
-                        
-                        memmove( &tmp->cigOp[ i + 2 ], &tmp->cigOp[ i ], ( ops - i ) * sizeof( tmp->cigOp[ 0 ] ) );
-                        ops += 2;
-                        tmp->cigOp[ i ].length = left;
-                        tmp->cigOp[ i + 2 ].length = right;
-                        
-                        tmp->cigOp[ i + 1 ].type = 1;
-                        tmp->cigOp[ i + 1 ].code = 'B';
-                        tmp->cigOp[ i + 1 ].length = 0;
-                        
-                        fwd = i + 1;
-                        break;
-                    }
-                }
-            }
-        }
-        else if ( ( input->seq_req_id == 2 && !input->orientation ) ||
-                  ( input->seq_req_id == 1 && input->orientation ) )
-        {
-            for ( i = ops, acc = 0; i > 0 && acc <= 5; )
-            {
-                --i;
-                if ( tmp->cigOp[ i ].type != 2 )
-                {
-                    acc += tmp->cigOp[ i ].length;
-                    if ( acc == 5 && tmp->cigOp[ i ].type == 1 )
-                    {
-                        rev = i;
-                        break;
-                    }
-                    else if ( acc > 5 )
-                    {
-                        unsigned const left = acc - 5;
-                        unsigned const right = tmp->cigOp[ i ].length - left;
-                        
-                        memmove( &tmp->cigOp[ i + 2 ], &tmp->cigOp[ i ], ( ops - i ) * sizeof( tmp->cigOp[ 0 ] ) );
-                        ops += 2;
-                        tmp->cigOp[ i ].length = left;
-                        tmp->cigOp[ i + 2 ].length = right;
-                        
-                        tmp->cigOp[ i + 1 ].type = 1;
-                        tmp->cigOp[ i + 1 ].code = 'B';
-                        tmp->cigOp[ i + 1 ].length = 0;
-                         
-                        rev = i + 1;
-                        break;
-                    }
-                }
-            }
-        }
-        else
-        {
-            /* fprintf(stderr, "guessing layout\n"); */
-            for ( i = 0, acc = 0; i < ops  && acc <= 5; ++i )
-            {
-                if ( tmp->cigOp[ i ].type != 2 )
-                {
-                    acc += tmp->cigOp[ i ].length;
-                    if ( acc == 5 && tmp->cigOp[ i + 1 ].type == 1 )
-                    {
-                        fwd = i + 1;
-                    }
-                }
-            }
-            for ( i = ops, acc = 0; i > 0 && acc <= 5; )
-            {
-                --i;
-                if ( tmp->cigOp[ i ].type != 2 )
-                {
-                    acc += tmp->cigOp[ i ].length;
-                    if ( acc == 5 && tmp->cigOp[i].type == 1 )
-                    {
-                        rev = i;
-                    }
-                }
-            }
-            if ( ( fwd == 0 && rev == 0 ) || ( fwd != 0 && rev != 0 ) )
-            {
-                for ( i = 0; i < ops; ++i )
-                {
-                    if ( tmp->cigOp[ i ].type == 2 )
-                    {
-                        tmp->cigOp[ i ].code = 'N';
-                        tmp->CG_adjust += tmp->cigOp[ i ].length;
-                    }
-                }
-                return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-            }
-        }
-        if ( fwd && tmp->cigOp[ fwd ].type == 1 )
-        {
-            for ( i = ops, acc = 0; i > fwd + 1; )
-            {
-                --i;
-                if ( tmp->cigOp[ i ].type != 2 )
-                {
-                    acc += tmp->cigOp[ i ].length;
-                    if ( acc >= 10 )
-                    {
-                        if ( acc > 10 )
-                        {
-                            unsigned const r = 10 + tmp->cigOp[ i ].length - acc;
-                            unsigned const l = tmp->cigOp[ i ].length - r;
-                            
-                            if ( ops + 2 >= MAX_READ_LEN )
-                                return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                            memmove( &tmp->cigOp[ i + 2 ], &tmp->cigOp[ i ], ( ops - i ) * sizeof( tmp->cigOp[ 0 ] ) );
-                            ops += 2;
-                            tmp->cigOp[ i + 2 ].length = r;
-                            tmp->cigOp[ i ].length = l;
-                            
-                            tmp->cigOp[ i + 1 ].length = 0;
-                            tmp->cigOp[ i + 1 ].type = 2;
-                            tmp->cigOp[ i + 1 ].code = 'N';
-                            i += 2;
-                        }
-                        else if ( i - 1 > fwd )
-                        {
-                            if ( tmp->cigOp[ i - 1 ].type == 2 )
-                                 tmp->cigOp[ i - 1 ].code = 'N';
-                            else
-                            {
-                                if ( ops + 1 >= MAX_READ_LEN )
-                                    return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                                memmove( &tmp->cigOp[ i + 1 ], &tmp->cigOp[ i ], ( ops - i ) * sizeof( tmp->cigOp[ 0 ] ) );
-                                ops += 1;
-                                tmp->cigOp[ i ].length = 0;
-                                tmp->cigOp[ i ].type = 2;
-                                tmp->cigOp[ i ].code = 'N';
-                                i += 1;
-                            }
-                        }
-                        acc = 0;
-                    }
-                }
-            }
-            /** change I to B+M **/
-            tmp->cigOp[ fwd ].code = 'B';
-            memmove( &tmp->cigOp[ fwd + 1 ], &tmp->cigOp[ fwd ], ( ops - fwd ) * sizeof( tmp->cigOp[ 0 ] ) );
-            ops += 1;
-            tmp->cigOp[ fwd + 1 ].code = 'M';
-            tmp->opCnt = ops;
-            /** set the gaps now **/
-            for ( gapno = 3, i = ops; gapno > 1 && i > 0; )
-            {
-                --i;
-                if ( tmp->cigOp[ i ].code == 'N' )
-                    tmp->gap[ --gapno ] = i;
-            }
-            tmp->gap[ 0 ] = fwd;
-            print_CG_cigar( __LINE__, tmp->cigOp, ops, tmp->gap );
-            return 0;
-        }
-        if ( rev && tmp->cigOp[ rev ].type == 1 )
-        {
-            for ( acc = i = 0; i < rev; ++i )
-            {
-                if ( tmp->cigOp[ i ].type != 2 )
-                {
-                    acc += tmp->cigOp[ i ].length;
-                    if ( acc >= 10 )
-                    {
-                        if ( acc > 10 )
-                        {
-                            unsigned const l = 10 + tmp->cigOp[ i ].length - acc;
-                            unsigned const r = tmp->cigOp[ i ].length - l;
-                            
-                            if ( ops + 2 >= MAX_READ_LEN )
-                                return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                            memmove( &tmp->cigOp[ i + 2 ], &tmp->cigOp[ i ], ( ops - i ) * sizeof( tmp->cigOp[ 0 ] ) );
-                            ops += 2;
-                            tmp->cigOp[ i + 2 ].length = r;
-                            tmp->cigOp[ i ].length = l;
-                            
-                            tmp->cigOp[ i + 1 ].length = 0;
-                            tmp->cigOp[ i + 1 ].type = 2;
-                            tmp->cigOp[ i + 1 ].code = 'N';
-                            rev += 2;
-                            i += 2;
-                        }
-                        else if ( i + 1 < rev )
-                        {
-                            if ( tmp->cigOp[ i + 1 ].type == 2 )
-                                 tmp->cigOp[ i + 1 ].code = 'N';
-                            else
-                            {
-                                if ( ops + 1 >= MAX_READ_LEN )
-                                    return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                                memmove( &tmp->cigOp[ i + 1 ], &tmp->cigOp[ i ], ( ops - i ) * sizeof( tmp->cigOp[ 0 ] ) );
-                                ops += 1;
-                                tmp->cigOp[ i + 1 ].length = 0;
-                                tmp->cigOp[ i + 1 ].type = 2;
-                                tmp->cigOp[ i + 1 ].code = 'N';
-                                rev += 1;
-                                i += 1;
-                            }
-                        }
-                        acc = 0;
-                    }
-                }
-            }
-            for ( gapno = 3, i = 0; gapno > 1 && i < ops; ++i )
-            {
-                if ( tmp->cigOp[ i ].code == 'N' )
-                    tmp->gap[ --gapno ] = i;
-            }
-            tmp->gap[ 0 ] = rev;
-            tmp->cigOp[ rev ].code = 'B';
-            memmove( &tmp->cigOp[ rev + 1 ], &tmp->cigOp[ rev ], ( ops - rev ) * sizeof( tmp->cigOp[ 0 ] ) );
-            ops += 1;
-            tmp->cigOp[ rev + 1 ].code = 'M';
-            tmp->opCnt = ops;
-            print_CG_cigar( __LINE__, tmp->cigOp, ops, tmp->gap );
-            return 0;
-        }
-    }
-    return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-}
-
-
-static rc_t adjust_cigar( const cg_cigar_input * input, cg_cigar_temp * tmp, cg_cigar_output * output )
-{
-    rc_t rc = 0;
-    unsigned i, j;
-    size_t sz;
-
-    print_CG_cigar( __LINE__, tmp->cigOp, tmp->opCnt, NULL );
-
-    /* remove zero length ops */
-    for ( j = i = 0; i < tmp->opCnt; )
-    {
-        if ( tmp->cigOp[ j ].length == 0 )
-        {
-            ++j;
-            --(tmp->opCnt);
-            continue;
-        }
-        tmp->cigOp[ i++ ] = tmp->cigOp[ j++ ];
-    }
-
-    print_CG_cigar( __LINE__, tmp->cigOp, tmp->opCnt, NULL );
-
-    if ( input->edit_dist_available )
-    {
-        int const adjusted = input->edit_dist + tmp->S_adjust - tmp->CG_adjust;
-        output->edit_dist = adjusted > 0 ? adjusted : 0;
-        SAM_DUMP_DBG( 4, ( "NM: before: %u, after: %u(+%u-%u)\n", input->edit_dist, output->edit_dist, tmp->S_adjust, tmp->CG_adjust ) );
-    }
-    else
-    {
-        output->edit_dist = input->edit_dist;
-    }
-
-    /* merge adjacent ops */
-    for ( i = tmp->opCnt; i > 1; )
-    {
-        --i;
-        if ( tmp->cigOp[ i - 1 ].code == tmp->cigOp[ i ].code )
-        {
-            tmp->cigOp[ i - 1 ].length += tmp->cigOp[ i ].length;
-            memmove( &tmp->cigOp[ i ], &tmp->cigOp[ i + 1 ], ( tmp->opCnt - 1 - i ) * sizeof( tmp->cigOp[ 0 ] ) );
-            --(tmp->opCnt);
-        }
-    }
-    print_CG_cigar( __LINE__, tmp->cigOp, tmp->opCnt, NULL );
-    for ( i = j = 0; i < tmp->opCnt && rc == 0; ++i )
-    {
-        rc = string_printf( &output->cigar[ j ], sizeof( output->cigar ) - j, &sz, "%u%c", tmp->cigOp[ i ].length, tmp->cigOp[ i ].code );
-        j += sz;
-    }
-    output->cigar_len = j;
-    return rc;
-}
-
-
-rc_t make_cg_cigar( const cg_cigar_input * input, cg_cigar_output * output )
-{
-    rc_t rc;
-    cg_cigar_temp tmp;
-    memset( &tmp, 0, sizeof tmp );
-
-    rc = CIGAR_to_CG_Ops( input, &tmp );
-    if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcFormat )
-    {
-        memmove( &output->cigar[ 0 ], &input->cigar[ 0 ], input->cigar_len );
-        output->cigar_len = input->cigar_len;
-        output->cigar[ output->cigar_len ] = 0;
-        output->edit_dist = input->edit_dist;
-        rc = 0;
-    }
-    else if ( rc == 0 )
-    {
-        rc = adjust_cigar( input, &tmp, output );
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/cg_tools.h b/tools/sra-pileup/cg_tools.h
deleted file mode 100644
index bf40134..0000000
--- a/tools/sra-pileup/cg_tools.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_cgtools_
-#define _h_cgtools_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <klib/rc.h>
-
-#define MAX_CG_CIGAR_LEN ( ( 11 * 35 ) + 1 )
-#define MAX_GC_LEN ( ( 11 * 3 ) + 1 )
-#define MAX_READ_LEN ( 35 )
-
-typedef struct cg_cigar_input
-{
-    const char *cigar;
-    size_t cigar_len;
-    bool orientation;
-    uint32_t seq_req_id;
-    bool edit_dist_available;
-    int32_t edit_dist;
-} cg_cigar_input;
-
-
-typedef struct cg_cigar_output
-{
-    char cigar[ MAX_CG_CIGAR_LEN ];
-    size_t cigar_len;
-    int32_t edit_dist;
-} cg_cigar_output;
-
-
-rc_t make_cg_cigar( const cg_cigar_input * input, cg_cigar_output * output );
-
-#endif
\ No newline at end of file
diff --git a/tools/sra-pileup/cmdline_cmn.c b/tools/sra-pileup/cmdline_cmn.c
deleted file mode 100644
index 6ee4088..0000000
--- a/tools/sra-pileup/cmdline_cmn.c
+++ /dev/null
@@ -1,1042 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "cmdline_cmn.h"
-
-#include <kapp/args.h>
-
-#include <vdb/report.h> /* ReportResetTable */
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/out.h>
-
-#include <sra/srapath.h>
-
-#include <vfs/path.h>
-#include <vfs/path-priv.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-
-#include <os-native.h>
-#include <sysalloc.h>
-
-const char * ref_usage[] = { "Filter by position on genome.",
-                             "Name can either be file specific name",
-                             "(ex: \"chr1\" or \"1\").",
-                             "\"from\" and \"to\" are 1-based coordinates",
-                             NULL };
-
-const char * outf_usage[] = { "Output will be written to this file",
-                              "instead of std-out", NULL };
-
-const char * table_usage[] = { "Which alignment table(s) to use (p|s|e):", 
-                               "p - primary, s - secondary, e - evidence-interval", 
-                               "(default = p)", NULL };
-
-const char * gzip_usage[] = { "Compress output using gzip", NULL };
-
-const char * bzip_usage[] = { "Compress output using bzip2", NULL };
-
-const char * inf_usage[] = { "File with all input-parameters / options", NULL };
-
-const char * schema_usage[] = { "optional schema-file to be used", NULL };
-
-#define OPTION_REF     "aligned-region"
-#define ALIAS_REF      "r"
-
-#define OPTION_OUTF    "outfile"
-#define ALIAS_OUTF     "o"
-
-#define OPTION_TABLE   "table"
-#define ALIAS_TABLE    "t"
-
-#define OPTION_GZIP    "gzip"
-#define ALIAS_GZIP     NULL
-
-#define OPTION_BZIP    "bzip2"
-#define ALIAS_BZIP     NULL
-
-#define OPTION_INF    "infile"
-#define ALIAS_INF     "f"
-
-#define OPTION_SCHEMA "schema"
-#define ALIAS_SCHEMA  "S"
-
-OptDef CommonOptions[] =
-{
-    /*name,           alias,         hfkt, usage-help,    maxcount, needs value, required */
-    { OPTION_REF,     ALIAS_REF,     NULL, ref_usage,     0,        true,        false },
-    { OPTION_OUTF,    ALIAS_OUTF,    NULL, outf_usage,    1,        true,        false },
-    { OPTION_TABLE,   ALIAS_TABLE,   NULL, table_usage,   1,        true,        false },
-    { OPTION_GZIP,    ALIAS_GZIP,    NULL, gzip_usage,    1,        false,       false },
-    { OPTION_BZIP,    ALIAS_BZIP,    NULL, bzip_usage,    1,        false,       false },
-    { OPTION_INF,     ALIAS_INF,     NULL, inf_usage,     0,        true,        false },
-    { OPTION_SCHEMA,  ALIAS_SCHEMA,  NULL, schema_usage,  1,        true,        false }
-};
-
-
-/* =========================================================================================== */
-
-static rc_t get_str_option( const Args *args, const char *name, const char ** res )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    *res = NULL;
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ArgsOptionCount() failed" );
-    }
-    else
-    {
-        if ( count > 0 )
-        {
-            rc = ArgsOptionValue( args, name, 0, res );
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "ArgsOptionValue() failed" );
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t get_bool_option( const Args *args, const char *name, bool *res, const bool def )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    if ( rc == 0 && count > 0 )
-    {
-        *res = true;
-    }
-    else
-    {
-        *res = def;
-    }
-    return rc;
-}
-
-/* =========================================================================================== */
-
-rc_t get_common_options( Args * args, common_options *opts )
-{
-    rc_t rc = get_str_option( args, OPTION_OUTF, &opts->output_file );
-
-    if ( rc == 0 )
-        rc = get_str_option( args, OPTION_INF, &opts->input_file );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_GZIP, &opts->gzip_output, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_BZIP, &opts->bzip_output, false );
-
-    if ( rc == 0 )
-        rc = get_str_option( args, OPTION_SCHEMA, &opts->schema_file );
-
-    if ( rc == 0 )
-    {
-        const char * table2use = NULL;
-        rc = get_str_option( args, OPTION_TABLE, &table2use );
-        opts->tab_select = primary_ats;
-        if ( rc == 0 && table2use != NULL )
-        {
-            size_t l = string_size ( table2use );
-            opts->tab_select = 0;
-            if ( ( string_chr ( table2use, l, 'p' ) != NULL )||
-                 ( string_chr ( table2use, l, 'P' ) != NULL ) )
-            { opts->tab_select |= primary_ats; };
-
-            if ( ( string_chr ( table2use, l, 's' ) != NULL )||
-                 ( string_chr ( table2use, l, 'S' ) != NULL ) )
-            { opts->tab_select |= secondary_ats; };
-
-            if ( ( string_chr ( table2use, l, 'e' ) != NULL )||
-                 ( string_chr ( table2use, l, 'E' ) != NULL ) )
-            { opts->tab_select |= evidence_ats; };
-        }
-    }
-
-    return rc;
-}
-
-void print_common_helplines( void )
-{
-    HelpOptionLine ( ALIAS_REF, OPTION_REF, "name[:from-to]", ref_usage );
-    HelpOptionLine ( ALIAS_OUTF, OPTION_OUTF, "output-file", outf_usage );
-    HelpOptionLine ( ALIAS_TABLE, OPTION_TABLE, "table", table_usage );
-    HelpOptionLine ( ALIAS_BZIP, OPTION_BZIP, "bzip", bzip_usage );
-    HelpOptionLine ( ALIAS_GZIP, OPTION_GZIP, "gzip", gzip_usage );
-}
-
-
-OptDef * CommonOptions_ptr( void )
-{
-    return &CommonOptions[ 0 ];
-}
-
-size_t CommonOptions_count( void )
-{
-    return ( sizeof CommonOptions / sizeof CommonOptions [ 0 ] );
-}
-
-
-/* =========================================================================================== */
-
-
-static int cmp_pchar( const char * a, const char * b )
-{
-    int res = 0;
-    if ( ( a != NULL )&&( b != NULL ) )
-    {
-        size_t len_a = string_size( a );
-        size_t len_b = string_size( b );
-        res = string_cmp ( a, len_a, b, len_b, ( len_a < len_b ) ? len_b : len_a );
-    }
-    return res;
-}
-
-
-/* =========================================================================================== */
-
-
-typedef struct range
-{
-    uint32_t start;
-    uint32_t end;
-} range;
-
-
-static range * make_range( const uint64_t start, const uint64_t end )
-{
-    range *res = calloc( sizeof *res, 1 );
-    if ( res != NULL )
-    {
-        res->start = start;
-        res->end = end;
-    }
-    return res;
-}
-
-
-static int cmp_range( const range * a, const range * b )
-{
-
-    int res = ( a->start - b->start );
-    if ( res == 0 )
-        res = ( a->end - b->end );
-    return res;
-}
-
-
-static bool range_overlapp( const range * a, const range * b )
-{
-    return ( !( ( b->end < a->start ) || ( b->start > a->end ) ) );
-}
-
-
-/* =========================================================================================== */
-
-typedef struct reference_region
-{
-    BSTNode node;
-    const char * name;
-    Vector ranges;
-} reference_region;
-
-
-static reference_region * make_reference_region( const char *name )
-{
-    reference_region *res = calloc( sizeof *res, 1 );
-    if ( res != NULL )
-    {
-        res->name = string_dup_measure ( name, NULL );
-        VectorInit ( &res->ranges, 0, 5 );
-    }
-    return res;
-}
-
-
-static int CC cmp_range_wrapper( const void *item, const void *n )
-{   return cmp_range( item, n ); }
-
-
-static rc_t add_ref_region_range( reference_region * self, const uint64_t start, const uint64_t end )
-{
-    rc_t rc = 0;
-    range *r = make_range( start, end );
-    if ( r == NULL )
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        rc = VectorInsert ( &self->ranges, r, NULL, cmp_range_wrapper );
-        if ( rc != 0 )
-            free( r );
-    }
-    return rc;
-}
-
-
-#define RR_NAME  1
-#define RR_START 2
-#define RR_END   3
-
-
-static void put_c( char *s, size_t size, size_t *dst, char c )
-{
-    if ( *dst < ( size - 1 ) )
-        s[ *dst ] = c;
-    (*dst)++;
-}
-
-static void finish_txt( char *s, size_t size, size_t *dst )
-{
-    if ( *dst > size )
-        s[ size - 1 ] = 0;
-    else
-        s[ *dst ] = 0;
-    *dst = 0;
-}
-
-static uint64_t finish_num( char *s, size_t size, size_t *dst )
-{
-    uint64_t res = 0;
-    char *endp;
-    finish_txt( s, size, dst );
-    res = strtou64( s, &endp, 10 );
-    return res;
-}
-
-
-/* s = refname:1000-2000 */
-static void parse_definition( const char *s, char * name, size_t len,
-                              uint64_t *start, uint64_t *end )
-{
-    size_t n = string_size( s );
-
-    *start = 0;
-    *end   = 0;
-    name[ 0 ] = 0;
-    if ( n > 0 )
-    {
-        size_t i, st, dst = 0;
-        char tmp[ 32 ];
-        st = RR_NAME;
-        for ( i = 0; i < n; ++i )
-        {
-            char c = s[ i ];
-            switch( st )
-            {
-                case RR_NAME  : if ( c == ':' )
-                                {
-                                    finish_txt( name, len, &dst );
-                                    st = RR_START;
-                                }
-                                else
-                                {
-                                    put_c( name, len, &dst, c );
-                                }
-                                break;
-
-                case RR_START : if ( c == '-' )
-                                {
-                                    *start = finish_num( tmp, sizeof tmp, &dst );
-                                    st = RR_END;
-                                }
-                                else if ( ( c >= '0' )&&( c <= '9' ) )
-                                {
-                                    put_c( tmp, sizeof tmp, &dst, c );
-                                }
-                                break;
-
-                case RR_END   : if ( ( c >= '0' )&&( c <= '9' ) )
-                                {
-                                    put_c( tmp, sizeof tmp, &dst, c );
-                                }
-                                break;
-            }
-        }
-        switch( st )
-        {
-            case RR_NAME  : finish_txt( name, len, &dst );
-                            break;
-
-            case RR_START : *start = finish_num( tmp, sizeof tmp, &dst );
-                            break;
-
-            case RR_END   : *end = finish_num( tmp, sizeof tmp, &dst );
-                            break;
-        }
-    }
-}
-
-
-static void CC release_range_wrapper( void * item, void * data )
-{
-    free( item );
-}
-
-
-static void free_reference_region( reference_region * self )
-{
-    free( (void*)self->name );
-    VectorWhack ( &self->ranges, release_range_wrapper, NULL );
-    free( self );
-}
-
-
-static void check_ref_region_ranges( reference_region * self )
-{
-    uint32_t n = VectorLength( &self->ranges );
-    uint32_t i = 0;
-    range *a = NULL;
-    while ( i < n )
-    {
-        range *b = VectorGet ( &self->ranges, i );
-        bool remove = false;
-        if ( a != NULL )
-        {
-            remove = range_overlapp( a, b );
-            if ( remove )
-            {
-                range *r;
-                a->end = b->end;
-                VectorRemove ( &self->ranges, i, (void**)&r );
-                free( r );
-                n--;
-            }
-        }
-        if ( !remove )
-        {
-            a = b;
-            ++i;
-        }
-    }
-}
-
-
-/* =========================================================================================== */
-
-
-static int CC reference_vs_pchar_wrapper( const void *item, const BSTNode *n )
-{
-    const reference_region * r = ( const reference_region * )n;
-    return cmp_pchar( (const char *)item, r->name );
-}
-
-static reference_region * find_reference_region( BSTree * regions, const char * name )
-{
-    return ( reference_region * ) BSTreeFind ( regions, name, reference_vs_pchar_wrapper );
-}
-
-static int CC ref_vs_ref_wrapper( const BSTNode *item, const BSTNode *n )
-{
-   const reference_region * a = ( const reference_region * )item;
-   const reference_region * b = ( const reference_region * )n;
-   return cmp_pchar( a->name, b->name );
-}
-
-static rc_t add_refrange( BSTree * regions, const char * name, const uint64_t start, const uint64_t end )
-{
-    rc_t rc;
-
-    reference_region * r = find_reference_region( regions, name );
-    if ( r == NULL )
-    {
-        r = make_reference_region( name );
-        if ( r == NULL )
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        else
-            rc = add_ref_region_range( r, start, end );
-        if ( rc == 0 )
-            rc = BSTreeInsert ( regions, (BSTNode *)r, ref_vs_ref_wrapper );
-        if ( rc != 0 )
-            free_reference_region( r );
-    }
-    else
-    {
-        rc = add_ref_region_range( r, start, end );
-    }
-    return rc;
-}
-
-
-rc_t parse_and_add_region( BSTree * regions, const char * s )
-{
-    uint64_t start, end;
-    char name[ 64 ];
-    parse_definition( s, name, sizeof name, &start, &end );
-    if ( name[ 0 ] == 0 )
-        return RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-    else
-        return add_refrange( regions, name, start, end );
-}
-
-
-static void CC check_refrange_wrapper( BSTNode *n, void *data )
-{
-    check_ref_region_ranges( ( reference_region * ) n );
-}
-
-
-void check_ref_regions( BSTree * regions )
-{
-    BSTreeForEach ( regions, false, check_refrange_wrapper, NULL );
-}
-
-
-static void CC release_ref_region_wrapper( BSTNode *n, void * data )
-{
-    free_reference_region( ( reference_region * ) n );
-}
-
-
-void free_ref_regions( BSTree * regions )
-{    
-    BSTreeWhack ( regions, release_ref_region_wrapper, NULL );
-}
-
-
-rc_t init_ref_regions( BSTree * tree, Args * args )
-{
-    uint32_t count;
-    rc_t rc;
-
-    BSTreeInit( tree );
-    rc = ArgsOptionCount( args, OPTION_REF, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ArgsOptionCount() failed" );
-    }
-    else
-    {
-        uint32_t i;
-        for ( i = 0; i < count && rc == 0; ++i )
-        {
-            const char * s;
-            rc = ArgsOptionValue( args, OPTION_REF, i, &s );
-            if ( rc != 0 )
-                LOGERR( klogInt, rc, "ArgsOptionValue() failed" );
-            else
-                rc = parse_and_add_region( tree, s );
-        }
-    }
-    return rc;
-}
-
-
-static void CC count_ref_region_wrapper( BSTNode *n, void *data )
-{   
-    reference_region * r = ( reference_region * ) n;
-    uint32_t * count = ( uint32_t * ) data;
-    *count += VectorLength( &(r->ranges) );
-}
-
-
-uint32_t count_ref_regions( BSTree * regions )
-{
-    uint32_t res = 0;
-    BSTreeForEach ( regions, false, count_ref_region_wrapper, &res );
-    return res;
-}
-
-
-typedef struct foreach_ref_region_func
-{
-    rc_t ( CC * on_region ) ( const char * name, uint32_t start, uint32_t end, void *data );
-    const char * name;
-    void * data;
-    rc_t rc;
-} foreach_ref_region_func;
-
-
-static void CC foreach_range_vector_wrapper( void *item, void *data )
-{
-    range * r = ( range * ) item;
-    foreach_ref_region_func * func = ( foreach_ref_region_func * )data;
-
-    if ( func->rc == 0 )
-    {
-        func->rc = func->on_region( func->name, r->start, r->end, func->data );
-    }
-}
-
-
-static void CC foreach_ref_region_wrapper( BSTNode *n, void *data )
-{   
-    reference_region * r = ( reference_region * ) n;
-    foreach_ref_region_func * func = ( foreach_ref_region_func * )data;
-
-    if ( func->rc == 0 )
-    {
-        func->name = r->name;
-        VectorForEach ( &(r->ranges), false, foreach_range_vector_wrapper, data );
-    }
-}
-
-
-rc_t foreach_ref_region( BSTree * regions,
-    rc_t ( CC * on_region ) ( const char * name, uint32_t start, uint32_t end, void *data ), 
-    void *data )
-{
-    foreach_ref_region_func func;
-
-    func.on_region = on_region;
-    func.data = data;
-    func.rc = 0;
-    BSTreeForEach ( regions, false, foreach_ref_region_wrapper, &func );
-    return func.rc;
-}
-
-
-/* =========================================================================================== */
-
-#if TOOLS_USE_SRAPATH != 0
-static bool is_this_a_filesystem_path( const char * path )
-{
-    bool res = false;
-    size_t i, n = string_size ( path );
-    for ( i = 0; i < n && !res; ++i )
-    {
-        char c = path[ i ];
-        res = ( c == '.' || c == '/' || c == '\\' );
-    }
-    return res;
-}
-#endif
-
-#if TOOLS_USE_SRAPATH != 0
-static char *translate_accession( SRAPath *my_sra_path,
-                           const char *accession,
-                           const size_t bufsize )
-{
-    rc_t rc;
-    char * res = calloc( 1, bufsize );
-    if ( res == NULL ) return NULL;
-
-    rc = SRAPathFind( my_sra_path, accession, res, bufsize );
-    if ( GetRCState( rc ) == rcNotFound )
-    {
-        free( res );
-        return NULL;
-    }
-    else if ( GetRCState( rc ) == rcInsufficient )
-    {
-        free( res );
-        return translate_accession( my_sra_path, accession, bufsize * 2 );
-    }
-    else if ( rc != 0 )
-    {
-        free( res );
-        return NULL;
-    }
-    return res;
-}
-#endif
-
-#if TOOLS_USE_SRAPATH != 0
-static rc_t resolve_accession( const KDirectory *my_dir, char ** path )
-{
-    SRAPath *my_sra_path;
-    rc_t rc = 0;
-
-    if ( strchr ( *path, '/' ) != NULL )
-        return 0;
-
-    rc = SRAPathMake( &my_sra_path, my_dir );
-    if ( rc != 0 )
-    {
-        if ( GetRCState ( rc ) != rcNotFound || GetRCTarget ( rc ) != rcDylib )
-        {
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "SRAPathMake() failed" );
-            }
-        }
-        else
-            rc = 0;
-    }
-    else
-    {
-        if ( !SRAPathTest( my_sra_path, *path ) )
-        {
-            char *buf = translate_accession( my_sra_path, *path, 64 );
-            if ( buf != NULL )
-            {
-                free( (char*)(*path) );
-                *path = buf;
-            }
-        }
-        SRAPathRelease( my_sra_path );
-    }
-    return rc;
-}
-#endif
-
-
-/* =========================================================================================== */
-
-
-/****************************************************************************************
-    splits an argument
-
-    example: "/path/file=grp1" into path = "/path/file" and attribute = "grp1"
-    or
-    example: "/path/file" into path = "/path/file" and attribute = NULL
-
-****************************************************************************************/
-static rc_t split_argument( const char *argument, char ** path, char ** attribute, char delim )
-{
-    if ( argument == NULL || path == NULL || attribute == NULL )
-        return RC( rcApp, rcNoTarg, rcConstructing, rcParam, rcNull );
-    else
-    {
-        char * delim_ptr = string_chr ( argument, string_size ( argument ), delim );
-        if ( delim_ptr == NULL )
-        {
-            *path = string_dup_measure( argument, NULL );
-            *attribute = NULL;
-        }
-        else
-        {
-            size_t len = string_size( argument );
-            size_t len1 = ( delim_ptr - argument );
-            *path = string_dup ( argument, len1 );
-            if ( delim_ptr < argument + len - 1 )
-                *attribute = string_dup ( delim_ptr + 1, len - ( len1 + 1 ) );
-            else
-                *attribute = NULL;
-        }
-    }
-    return 0;
-}
-
-
-static rc_t split_vpath_into_path_and_readgroup( VPath *vpath, const char *argument, char ** path, char ** attribute )
-{
-    size_t zz;
-    char readgroup_buffer[ 256 ];
-    rc_t rc1 = VPathOption( vpath, vpopt_readgroup, readgroup_buffer, sizeof readgroup_buffer - 1, &zz );
-    if ( rc1 == 0 )
-        *attribute = string_dup( readgroup_buffer, zz );
-    *path = string_dup( argument, string_size( argument ) );
-    return 0;
-}
-
-
-static rc_t test_split_vpath_into_path_and_readgroup( VPath *vpath, const char *argument, char ** path, char ** attribute )
-{
-    rc_t rc = 0;
-    VPUri_t uri_type = VPathGetUri_t( vpath );
-    switch ( uri_type )
-    {
-        default:
-        case vpuri_invalid:
-            rc = RC( rcExe, rcParam, rcAccessing, rcPath, rcInvalid );
-            break;
-
-        case vpuri_not_supported:
-            rc = RC( rcExe, rcParam, rcAccessing, rcPath, rcUnsupported );
-            break;
-
-        case vpuri_none:
-            rc = split_argument( argument, path, attribute, '=' );
-            break;
-
-        case vpuri_ncbi_vfs:
-        case vpuri_file:
-        case vpuri_ncbi_acc:
-        case vpuri_http:
-            rc = split_vpath_into_path_and_readgroup( vpath, argument, path, attribute );
-            break;
-    }
-    return rc;
-}
-
-
-static rc_t split_argument_into_path_and_readgroup( const char *argument, char ** path, char ** attribute )
-{
-    rc_t rc;
-    char * colon_ptr = string_chr ( argument, string_size ( argument ), ':' );
-    if ( colon_ptr == NULL )
-    {
-        /* we do not have a colon in the argument, that means: there is no uri-syntax involved
-           ---> we can split the "old fashioned way" at the equal-sign */
-        rc = split_argument( argument, path, attribute, '=' );
-    }
-    else
-    {
-        VPath * vpath;
-        rc_t rc = VPathMake( &vpath, argument );
-        *path = NULL;
-        *attribute = NULL;
-
-        if ( rc == 0 )
-        {
-            rc = test_split_vpath_into_path_and_readgroup( vpath, argument, path, attribute );
-            VPathRelease( vpath );
-        }
-    }
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-rc_t foreach_argument( Args * args, KDirectory *dir, bool div_by_spotgrp, bool * empty,
-    rc_t ( CC * on_argument ) ( const char * path, const char * spot_group, void * data ), void * data )
-{
-    uint32_t count;
-    rc_t rc = ArgsParamCount( args, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ArgsParamCount() failed" );
-    }
-    else
-    {
-        uint32_t idx;
-        if ( empty != NULL )
-        {
-            *empty = ( count == 0 );
-        }
-        for ( idx = 0; idx < count && rc == 0; ++idx )
-        {
-            const char *param = NULL;
-            rc = ArgsParamValue( args, idx, &param );
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "ArgsParamvalue() failed" );
-            }
-            else
-            {
-                
-                char * path = NULL;
-                char * spot_group = NULL;
-
-                rc = split_argument_into_path_and_readgroup( param, &path, &spot_group );
-                if ( rc == 0 && path != NULL )
-                {
-                    /* in case there is no spotgroup-override from the commandline AND
-                       the option to divide by spot-group is set, let spot_group point
-                       to an empty string ---> divide by original spot-group! */
-                    if ( spot_group == NULL && div_by_spotgrp )
-                    {
-                        spot_group = calloc( 1, 1 );
-                    }
-
-#if TOOLS_USE_SRAPATH != 0
-                    if ( !is_this_a_filesystem_path( path ) )
-                    {
-                        rc = resolve_accession( dir, &path );
-                    }
-#endif
-
-                    if ( rc == 0 )
-                    {
-                        rc = on_argument( path, spot_group, data );
-                    }
-
-                    free( path );
-                    if ( spot_group != NULL )
-                        free( spot_group );
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-static rc_t prepare_whole_file( prepare_ctx * ctx )
-{
-    rc_t rc = 0;
-    if ( ctx->reflist != NULL )
-    {
-        uint32_t count;
-        rc = ReferenceList_Count( ctx->reflist, &count );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "ReferenceList_Count() failed" );
-        }
-        else
-        {
-            uint32_t idx;
-            for ( idx = 0; idx < count && rc == 0; ++idx )
-            {
-                rc = ReferenceList_Get( ctx->reflist, &ctx->refobj, idx );
-                if ( rc != 0 )
-                {
-                    LOGERR( klogInt, rc, "ReferenceList_Get() failed" );
-                }
-                else
-                {
-                    rc = ctx->on_section( ctx, 0, 0 );
-                    if ( rc == 0 )
-                        ReferenceObj_Release( ctx->refobj );
-                }
-            }
-        }
-    }
-    else
-    {
-        ctx->refobj = NULL;
-        rc = ctx->on_section( ctx, 0, 0 );
-    }
-    return rc;
-}
-
-
-static rc_t CC prepare_region_cb( const char * name, uint32_t start, uint32_t end, void * data )
-{
-    prepare_ctx * ctx = ( prepare_ctx * )data;
-    rc_t rc = ReferenceList_Find( ctx->reflist, &ctx->refobj, name, string_size( name ) );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ReferenceList_Find() failed" );
-    }
-    else
-    {
-        rc = ctx->on_section( ctx, start, end );
-        if ( rc == 0 )
-            ReferenceObj_Release( ctx->refobj );
-    }
-    return rc;
-}
-
-
-static rc_t prepare_db_table( prepare_ctx *ctx,
-                              const VDBManager *vdb_mgr,
-                              VSchema *vdb_schema,
-                              const char * path )
-{
-    rc_t rc;
-    ctx->db = NULL;
-    ctx->seq_tab = NULL;
-
-    rc = VDBManagerOpenDBRead ( vdb_mgr, &ctx->db, vdb_schema, "%s", path );
-    if ( rc != 0 )
-    {
-        rc = VDBManagerOpenTableRead ( vdb_mgr, &ctx->seq_tab, NULL, "%s", path );
-        if ( rc != 0 )
-        {
-            PLOGERR(klogInt, (klogInt, rc, "failed to open '$(path)'",
-                "path=%s", path));
-        }
-        else {
-            ReportResetTable(path, ctx->seq_tab);
-        }
-    }
-    else
-    {
-        rc = VDatabaseOpenTableRead( ctx->db, &ctx->seq_tab, "SEQUENCE" );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "VDatabaseOpenTableRead( SEQUENCE ) failed" );
-        }
-        else {
-            ReportResetDatabase(path, ctx->db);
-        }
-    }
-    return rc;
-}
-
-
-static rc_t prepare_reflist( prepare_ctx *ctx )
-{
-    rc_t rc = 0;
-    ctx->reflist = NULL;
-    if ( ctx->db != NULL )
-    {
-        uint32_t reflist_options = ereferencelist_4na;
-
-        if ( ctx->use_primary_alignments )
-            reflist_options |= ereferencelist_usePrimaryIds;
-
-        if ( ctx->use_secondary_alignments )
-            reflist_options |= ereferencelist_useSecondaryIds;
-
-        if ( ctx->use_evidence_alignments )
-            reflist_options |= ereferencelist_useEvidenceIds;
-
-        rc = ReferenceList_MakeDatabase( &ctx->reflist, ctx->db, reflist_options, 0, NULL, 0 );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "ReferenceList_MakeDatabase() failed" );
-        }
-    }
-    return rc;
-}
-
-
-rc_t prepare_ref_iter( prepare_ctx *ctx,
-                       const VDBManager *vdb_mgr,
-                       VSchema *vdb_schema,
-                       const char * path,
-                       BSTree * regions )
-{
-    rc_t rc = prepare_db_table( ctx, vdb_mgr, vdb_schema, path );
-    if ( rc == 0 )
-    {
-        rc = prepare_reflist( ctx );
-        if( rc == 0 )
-        {
-            if ( ctx->reflist == NULL || count_ref_regions( regions ) == 0 )
-            {
-                /* the user has not specified a reference-range : use the whole file... */
-                rc = prepare_whole_file( ctx );
-            }
-            else
-            {
-                /* pick only the requested ranges... */
-                rc = foreach_ref_region( regions, prepare_region_cb, ctx );
-            }
-        }
-        if ( ctx->reflist != NULL )
-        {
-            ReferenceList_Release( ctx->reflist );
-        }
-    }
-    VTableRelease ( ctx->seq_tab );
-    VDatabaseRelease ( ctx->db );
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-rc_t parse_inf_file( Args * args )
-{
-    return Args_parse_inf_file( args, OPTION_INF );
-}
diff --git a/tools/sra-pileup/cmdline_cmn.h b/tools/sra-pileup/cmdline_cmn.h
deleted file mode 100644
index bb46575..0000000
--- a/tools/sra-pileup/cmdline_cmn.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_cmdline_cmn_
-#define _h_cmdline_cmn_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <kapp/args.h>
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/text.h>
-#include <klib/vector.h>
-#include <klib/container.h>
-
-#include <kfs/directory.h>
-/* #include <sra/srapath.h> */
-
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-
-#include <align/iterator.h>
-#include <align/reference.h>
-
-#include <strtol.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-typedef uint8_t align_tab_select;
-enum { primary_ats = 1, secondary_ats = 2, evidence_ats = 4 };
-
-typedef struct common_options
-{
-    bool gzip_output;
-    bool bzip_output;
-    align_tab_select tab_select;
-    const char * output_file;
-    const char * input_file;
-    const char * schema_file;
-} common_options;
-
-
-void print_common_helplines( void );
-
-rc_t get_common_options( Args * args, common_options *opts );
-OptDef * CommonOptions_ptr( void );
-size_t CommonOptions_count( void );
-
-/* get ref-ranges from the command-line and iterate them... */
-rc_t init_ref_regions( BSTree * regions, Args * args );
-uint32_t count_ref_regions( BSTree * regions );
-
-rc_t parse_and_add_region( BSTree * regions, const char * s );
-
-rc_t foreach_ref_region( BSTree * regions,
-    rc_t ( CC * on_range ) ( const char * name, uint32_t start, uint32_t end, void *data ), 
-    void *data );
-
-void check_ref_regions( BSTree * regions );
-void free_ref_regions( BSTree * regions );
-
-rc_t foreach_argument( Args * args, KDirectory *dir, bool div_by_spotgrp, bool * empty,
-    rc_t ( CC * on_argument ) ( const char * path, const char * spot_group, void * data ), void * data );
-
-
-typedef struct prepare_ctx
-{
-    ReferenceIterator *ref_iter;
-    PlacementSetIterator *plset_iter;
-    const VDatabase *db;
-    const VTable *seq_tab;
-    const ReferenceList *reflist;
-    const ReferenceObj *refobj;
-    const char * spot_group;
-    bool omit_qualities;
-    bool use_primary_alignments;
-    bool use_secondary_alignments;
-    bool use_evidence_alignments;
-    void * data;
-    rc_t ( CC * on_section ) ( struct prepare_ctx * ctx, uint32_t start, uint32_t end );
-    const char *path;
-} prepare_ctx;
-
-
-
-rc_t prepare_ref_iter( prepare_ctx *ctx,
-                       const VDBManager *vdb_mgr,
-                       VSchema *vdb_schema,
-                       const char * path,
-                       BSTree * regions );
-
-rc_t prepare_plset_iter( prepare_ctx *ctx,
-                         const VDBManager *vdb_mgr,
-                         VSchema *vdb_schema,
-                         const char * path,
-                         BSTree * ranges );
-
-
-rc_t parse_inf_file( Args * args );
-
-#endif
diff --git a/tools/sra-pileup/debug.h b/tools/sra-pileup/debug.h
deleted file mode 100644
index d1a321b..0000000
--- a/tools/sra-pileup/debug.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _tools_sam_dump_debug_h_
-#define _tools_sam_dump_debug_h_
-
-#include <klib/debug.h>
-
-#define SAM_DUMP_DBG_PASTE(a,b) a##b
-#define SAM_DUMP_DBG(flag,msg) DBGMSG(DBG_APP,DBG_FLAG(SAM_DUMP_DBG_PASTE(DBG_APP_,flag)), msg)
-
-#endif /* _tools_sam_dump_debug_h_ */
diff --git a/tools/sra-pileup/inputfiles.c b/tools/sra-pileup/inputfiles.c
deleted file mode 100644
index 0c8ba0d..0000000
--- a/tools/sra-pileup/inputfiles.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include "inputfiles.h"
-
-#include <sra/sraschema.h> /* VDBManagerMakeSRASchema */
-#include <vdb/schema.h> /* VSchemaRelease */
-
-#include <kdb/manager.h>
-#include <kfs/file.h>
-#include <vfs/manager.h>
-#include <vfs/path.h>
-
-#include <sysalloc.h>
-#include <stdlib.h>
-
-
-static void free_input_database( input_database * id )
-{
-    if ( id->path != NULL ) free( id->path );
-    if ( id->db != NULL ) VDatabaseRelease( id->db );
-    if ( id->reflist != NULL ) ReferenceList_Release( id->reflist );
-    if ( id->prim_ctx != NULL ) free( id->prim_ctx );
-    if ( id->sec_ctx != NULL ) free( id->sec_ctx );
-    if ( id->ev_ctx != NULL ) free( id->ev_ctx );
-    free( id );
-}
-
-
-static void free_input_table( input_table * it )
-{
-    if ( it->path != NULL ) free( it->path );
-    if ( it->tab != NULL ) VTableRelease( it->tab );
-    free( it );
-}
-
-
-static rc_t append_database( input_files *self, const VDatabase * db,
-                             const char * path, uint32_t reflist_options, bool show_err )
-{
-    const ReferenceList *reflist;
-    rc_t rc = ReferenceList_MakeDatabase( &reflist, db, reflist_options, 0, NULL, 0 );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "cannot create reflist for '$(t)'", "t=%s", path ) );
-    }
-    else
-    {
-        input_database * id = calloc( sizeof * id, 1 );
-        if ( id == NULL )
-        {
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-            (void)LOGERR( klogErr, rc, "cannot create input-database structure" );
-        }
-        else
-        {
-            uint32_t idx;
-
-            id->db = db;
-            id->reflist = reflist;
-            id->path = string_dup( path, string_size( path ) );
-
-            rc = VectorAppend( &self->dbs, &idx, id );
-            if ( rc != 0 )
-            {
-                (void)PLOGERR( klogErr, ( klogErr, rc, "cannot append db '$(t)' to inputfiles", "t=%s", path ) );
-                free_input_database( id );
-            }
-            else
-            {
-                ++(self->database_count);
-                id->db_idx = idx;
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t append_table( input_files *self, const VTable *tab, const char * path )
-{
-    rc_t rc = 0;
-    input_table * it = calloc( sizeof * it, 1 );
-    if ( it == NULL )
-    {
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        (void)LOGERR( klogErr, rc, "cannot create input-table structure" );
-    }
-    else
-    {
-        it->path = string_dup( path, string_size( path ) );
-        it->tab = tab;
-
-        rc = VectorAppend( &self->tabs, NULL, it );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "cannot append tab '$(t)' to inputfiles", "t=%s", path ) );
-            free_input_table( it );
-        }
-        else
-        {
-            ++(self->table_count);
-        }
-    }
-    return rc;
-}
-
-
-static int cmp_pchar( const char * a, const char * b )
-{
-    int res = 0;
-    if ( ( a != NULL )&&( b != NULL ) )
-    {
-        size_t len_a = string_size( a );
-        size_t len_b = string_size( b );
-        res = string_cmp ( a, len_a, b, len_b, ( len_a < len_b ) ? len_b : len_a );
-    }
-    return res;
-}
-
-
-static rc_t contains_ref_and_alignments( const VDatabase * db, const char * path, bool * res, bool show_err )
-{
-    KNamelist *tables;
-    rc_t rc = VDatabaseListTbl ( db, &tables );
-    if ( rc != 0 )
-    {
-        if ( show_err )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "VDatabaseListTbl() failed on '$(t)'", "t=%s", path ) );
-        }
-    }
-    else
-    {
-        uint32_t count;
-        rc = KNamelistCount ( tables, &count );
-        if ( rc != 0 )
-        {
-            if ( show_err )
-            {
-                (void)PLOGERR( klogErr, ( klogErr, rc, "KNamelistCount on Table-Names-List failed on '$(t)'", "t=%s", path ) );
-            }
-        }
-        else
-        {
-            uint32_t idx;
-            bool has_ref = false;
-            bool has_alignment = false;
-            for ( idx = 0; rc == 0 && idx < count; ++idx )
-            {
-                const char * tabname;
-                rc = KNamelistGet ( tables, idx, &tabname );
-                if ( rc != 0 )
-                {
-                    if ( show_err )
-                    {
-                        (void)PLOGERR( klogErr, ( klogErr, rc, "KNamelistGet on Table-Names-List failed on '$(t)'", "t=%s", path ) );
-                    }
-                }
-                else
-                {
-                    if ( cmp_pchar( tabname, "REFERENCE" ) == 0 )
-                        has_ref = true;
-                    if ( cmp_pchar( tabname, "PRIMARY_ALIGNMENT" ) == 0 )
-                        has_alignment = true;
-                }
-            }
-            *res = ( has_ref && has_alignment );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t open_database( input_files *self, const VDBManager *mgr,
-                           const char * path, uint32_t reflist_options, bool show_err )
-{
-    const VDatabase * db;
-    rc_t rc = VDBManagerOpenDBRead( mgr, &db, NULL, "%s", path );
-    if ( rc != 0 )
-    {
-        if ( show_err )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open db '$(t)'", "t=%s", path ) );
-        }
-    }
-    else
-    {
-        bool has_alignments = false;
-        rc = contains_ref_and_alignments( db, path, &has_alignments, show_err );
-        if ( rc == 0 )
-        {
-            if ( has_alignments )
-            {
-                rc = append_database( self, db, path, reflist_options, show_err );
-            }
-            else
-            {
-                const VTable *tab;
-                rc = VDatabaseOpenTableRead ( db, &tab, "SEQUENCE" );
-                if ( rc != 0 )
-                {
-                    if ( show_err )
-                    {
-                        (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open table SEQUENCE for '$(t)'", "t=%s", path ) );
-                    }
-                }
-                else
-                {
-                    rc = append_table( self, tab, path );
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t open_table( input_files *self, const VDBManager *mgr, const char * path, bool show_error )
-{
-    const VTable * tab;    
-
-    rc_t rc = VDBManagerOpenTableRead( mgr, &tab, NULL, "%s", path );
-    if ( rc != 0 )
-    {
-        struct VSchema* schema = NULL;
-        rc = VDBManagerMakeSRASchema( mgr, &schema );
-        if ( rc != 0 )
-        {
-            (void)LOGERR( klogErr, rc, "cannot MakeSRASchema" );
-        }
-        else
-        {
-            rc = VDBManagerOpenTableRead( mgr, &tab, schema, "%s", path );
-            if ( rc != 0 )
-            {
-                if ( show_error )
-                {
-                    (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open tab '$(t)'", "t=%s", path ) );
-                }
-            }
-            VSchemaRelease( schema );
-        }
-    }
-
-    if ( rc == 0 )
-        rc = append_table( self, tab, path );
-
-    return rc;
-}
-
-
-static rc_t is_unknown( input_files *self, const char * path )
-{
-    rc_t rc = VNamelistAppend( self->not_found, path );
-    if ( rc == 0 )
-        ++( self->not_found_count );
-    return rc;
-}
-
-
-static rc_t split_input_files( input_files *self, const VDBManager *mgr,
-                               const VNamelist * src, uint32_t reflist_options )
-{
-    uint32_t src_count;
-    rc_t rc = VNameListCount( src, &src_count );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "VNameListCount failed" );
-    }
-    else
-    {
-        uint32_t src_idx;
-        for ( src_idx = 0; src_idx < src_count && rc == 0 ; ++src_idx )
-        {
-            const char * path;
-            rc = VNameListGet( src, src_idx, &path );
-            if ( rc == 0 && path != NULL )
-            {
-                int path_type = VDBManagerPathType ( mgr, path );
-                if ( rc == 0 )
-                {
-                    switch( path_type )
-                    {
-                        case kptDatabase : rc = open_database( self, mgr, path, reflist_options, true ); break;
-
-                        case kptPrereleaseTbl :
-                        case kptTable    : rc = open_table( self, mgr, path, true ); break;
-
-                        default          : rc = is_unknown( self, path ); break;
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-rc_t discover_input_files( input_files **self, const VDBManager *mgr,
-                           const VNamelist * src, uint32_t reflist_options )
-{
-    rc_t rc = 0;
-
-    input_files * ipf = calloc( sizeof * ipf, 1 );
-    *self = NULL;
-    if ( ipf == NULL )
-    {
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        (void)LOGERR( klogErr, rc, "cannot create inputfiles structure" );
-    }
-    else
-    {
-        rc = VNamelistMake( &( ipf->not_found ), 5 );
-        if ( rc != 0 )
-            (void)LOGERR( klogErr, rc, "cannot create inputfiles.not_found structure" );
-        else
-        {
-            VectorInit( &( ipf->dbs ), 0, 5 );
-            VectorInit( &( ipf->tabs ), 0, 5 );
-            rc = split_input_files( ipf, mgr, src, reflist_options );
-        }
-        if ( rc != 0 )
-            release_input_files( ipf );
-        else
-            *self = ipf;
-    }
-    return rc;
-}
-
-
-static void CC db_whack( void * item, void * data )
-{
-    input_database * id = ( input_database * )item;
-    free_input_database( id );
-}
-
-
-static void CC tab_whack( void * item, void * data )
-{
-    input_table * it = ( input_table * )item;
-    free( it->path );
-    VTableRelease( it->tab );
-    free( it );
-}
-
-
-void release_input_files( input_files *self )
-{
-    VectorWhack( &self->dbs, db_whack, NULL );
-    VectorWhack( &self->tabs, tab_whack, NULL );
-    VNamelistRelease( self->not_found );
-    free( self );
-}
diff --git a/tools/sra-pileup/inputfiles.h b/tools/sra-pileup/inputfiles.h
deleted file mode 100644
index 4698785..0000000
--- a/tools/sra-pileup/inputfiles.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_inputfiles_
-#define _h_inputfiles_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <klib/vector.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/namelist.h>
-
-#include <vdb/manager.h>
-#include <vdb/vdb-priv.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-
-#include <align/reference.h>
-#include <align/manager.h>
-
-/*
-    the VNamelist of input-files/accessions/uri's is tested one at a time
-    if it is: a database, a table or cannot be found
-    in case of a database : a vdb-db-handle is opened
-    in case of a table    : a vdb-tab-handle is opened
-    in case of not found  : name is put into the not-found list
-*/
-
-
-typedef struct input_database
-{
-    uint32_t db_idx;
-    char * path;
-    const VDatabase * db;
-    const ReferenceList *reflist;
-    void * prim_ctx;
-    void * sec_ctx;
-    void * ev_ctx;
-} input_database;
-
-
-typedef struct input_table
-{
-    char * path;
-    const VTable * tab;
-} input_table;
-
-
-
-typedef struct input_files
-{
-    uint32_t database_count;
-    uint32_t table_count;
-    uint32_t not_found_count;
-
-    Vector dbs;
-    Vector tabs;
-    VNamelist * not_found;
-} input_files;
-
-
-
-rc_t discover_input_files( input_files **self, const VDBManager *mgr,
-                           const VNamelist * src, uint32_t reflist_options );
-
-void release_input_files( input_files *self );
-
-#endif
diff --git a/tools/sra-pileup/matecache.c b/tools/sra-pileup/matecache.c
deleted file mode 100644
index 646eeb6..0000000
--- a/tools/sra-pileup/matecache.c
+++ /dev/null
@@ -1,439 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "matecache.h"
-#include <sysalloc.h>
-#include <stdlib.h>
-
-void release_matecache( matecache * const self )
-{
-    if ( self != NULL )
-    {
-        if ( self->per_file != NULL )
-        {
-            uint32_t idx;
-            for ( idx = 0; idx < self->count; ++idx )
-            {
-                if ( self->per_file[ idx ].same_ref_64 != NULL )
-                    KVectorRelease( self->per_file[ idx ].same_ref_64 );
-                if ( self->per_file[ idx ].same_ref_16 != NULL )
-                    KVectorRelease( self->per_file[ idx ].same_ref_16 );
-
-                if ( self->per_file[ idx ].unaligned_64_a != NULL )
-                    KVectorRelease( self->per_file[ idx ].unaligned_64_a );
-                if ( self->per_file[ idx ].unaligned_64_b != NULL )
-                    KVectorRelease( self->per_file[ idx ].unaligned_64_b );
-            }
-            free( self->per_file );
-        }
-        free( self );
-    }
-}
-
-
-rc_t make_matecache( matecache **self, uint32_t count )
-{
-    rc_t rc = 0;
-
-    matecache * mc = calloc( sizeof * mc, 1 );
-    *self = NULL;
-    if ( mc == NULL )
-    {
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        (void)LOGERR( klogErr, rc, "cannot create matecache structure" );
-    }
-    else
-    {
-        mc->count = count;
-        mc->per_file = calloc( sizeof *(mc->per_file), count );
-        if ( mc->per_file == NULL )
-        {
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-            (void)LOGERR( klogErr, rc, "cannot create matecache internal structure" );
-        }
-        else
-        {
-            uint32_t idx;
-            for ( idx = 0; idx < count && rc == 0; ++idx )
-            {
-                rc = KVectorMake( &( mc->per_file[ idx ].same_ref_64 ) );
-                if ( rc != 0 )
-                    (void)LOGERR( klogErr, rc, "cannot create KVector (same-ref) U64" );
-                else
-                {
-                    rc = KVectorMake( &( mc->per_file[ idx ].same_ref_16 ) );
-                    if ( rc != 0 )
-                        (void)LOGERR( klogErr, rc, "cannot create KVector (same-ref) U16" );
-                    else
-                    {
-                        rc = KVectorMake( &( mc->per_file[ idx ].unaligned_64_a ) );
-                        if ( rc != 0 )
-                            (void)LOGERR( klogErr, rc, "cannot create KVector (unaligned a) U64" );
-                        else
-                        {
-                            rc = KVectorMake( &( mc->per_file[ idx ].unaligned_64_b ) );
-                            if ( rc != 0 )
-                                (void)LOGERR( klogErr, rc, "cannot create KVector (unaligned b) U64" );
-                        }
-                    }
-                }
-            }
-            if ( rc == 0 )
-                *self = mc;
-        }
-        if ( rc != 0 )
-            release_matecache( mc );
-    }
-    return rc;
-}
-
-#if 0
-static int32_t calc_tlen( uint32_t self_pos, uint32_t mate_pos,
-                   uint32_t self_len, uint32_t mate_len, uint32_t read_num )
-{
-    int32_t res = 0;
-    unsigned const self_left  = self_pos;
-    unsigned const mate_left  = mate_pos;
-    unsigned const self_right = self_left + self_len;
-    unsigned const mate_right = mate_left + mate_len;
-    unsigned const  leftmost  = (self_left  < mate_left ) ? self_left  : mate_left;
-    unsigned const rightmost  = (self_right > mate_right) ? self_right : mate_right;
-    unsigned const tlen = rightmost - leftmost;
-            
-    /* The standard says, "The leftmost segment has a plus sign and the rightmost has a minus sign." */
-    if (   ( self_left <= mate_left && self_right >= mate_right )      /* mate fully contained within self or */
-        || ( mate_left <= self_left && mate_right >= self_right ) )    /* self fully contained within mate; */
-    {
-        if ( self_left < mate_left || ( read_num == 1 && self_left == mate_left ) )
-            res = tlen;
-        else
-            res = -tlen;
-    }
-    else if ( ( self_right == mate_right && mate_left == leftmost ) /* both are rightmost, but mate is leftmost */
-             ||  self_right == rightmost )
-    {
-        res = -tlen;
-    }
-    else
-        res = tlen;
-
-    return res;
-}
-#endif
-
-static rc_t matecache_check( const matecache * const self, uint32_t db_idx, matecache_per_file ** mcpf )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-    {
-        rc = RC( rcApp, rcNoTarg, rcAccessing, rcSelf, rcNull );
-        (void)LOGERR( klogErr, rc, "cannot insert into same-ref-cache" );
-    }
-    else if ( db_idx < self->count )
-    {
-        *mcpf = &self->per_file[ db_idx ];
-        if ( mcpf == NULL )
-        {
-            rc = RC( rcApp, rcNoTarg, rcAccessing, rcParam, rcInvalid );
-            (void)LOGERR( klogErr, rc, "cannot insert into same-ref-cache" );
-        }
-    }
-    return rc;
-}
-
-
-rc_t matecache_insert_same_ref( matecache * const self,
-        uint32_t db_idx, int64_t key, INSDC_coord_zero ref_pos, uint32_t flags, INSDC_coord_len tlen )
-{
-    matecache_per_file * mcpf = NULL;
-    rc_t rc = matecache_check( self, db_idx, &mcpf );
-    if ( rc == 0 )
-    {
-        uint64_t ref_pos_and_tlen = ref_pos;
-        ref_pos_and_tlen <<= 32;
-        ref_pos_and_tlen |= tlen;
-        rc = KVectorSetU64( mcpf->same_ref_64, key, ref_pos_and_tlen );
-        if ( rc != 0 )
-            (void)LOGERR( klogErr, rc, "cannot insert into KVector (same-ref) U64" );
-        else
-        {
-            rc = KVectorSetU16( mcpf->same_ref_16, key, flags );
-            if ( rc != 0 )
-                (void)LOGERR( klogErr, rc, "cannot insert into KVector (same-ref) U16" );
-        }
-        if ( rc == 0 )
-        {
-            mcpf->stat_same_ref.count++;
-            if ( mcpf->stat_same_ref.count > mcpf->maxcount_same_ref )
-                mcpf->maxcount_same_ref = mcpf->stat_same_ref.count;
-            mcpf->stat_same_ref.inserts++;
-        }
-    }
-    return rc;
-}
-
-
-rc_t matecache_lookup_same_ref( const matecache * const self, uint32_t db_idx, int64_t key,
-                       INSDC_coord_zero *ref_pos, uint32_t *flags, INSDC_coord_len *tlen )
-{
-    matecache_per_file * mcpf = NULL;
-    rc_t rc = matecache_check( self, db_idx, &mcpf );
-    if ( rc == 0 )
-    {
-        uint64_t value64;
-        mcpf->stat_same_ref.lookups++;
-        rc = KVectorGetU64( mcpf->same_ref_64, key, &value64 );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) != rcNotFound )
-                (void)LOGERR( klogErr, rc, "cannot retrieve value (same-ref) U64" );
-        }
-        else
-        {
-            uint16_t value16;
-            rc = KVectorGetU16( mcpf->same_ref_16, key, &value16 );
-            if ( rc != 0 )
-            {
-                if ( GetRCState( rc ) != rcNotFound )
-                    (void)LOGERR( klogErr, rc, "cannot retrieve value (same-ref) U16" );
-            }
-            else
-            {
-                *ref_pos = ( value64 >> 32 );
-                *tlen = ( value64 & 0xFFFFFFFF );
-                *flags = value16;
-                mcpf->stat_same_ref.finds++;
-            }
-        }
-    }
-    return rc;
-}
-
-
-rc_t matecache_remove_same_ref( matecache * const self, uint32_t db_idx, int64_t key )
-{
-    matecache_per_file * mcpf = NULL;
-    rc_t rc = matecache_check( self, db_idx, &mcpf );
-    if ( rc == 0 )
-    {
-        rc = KVectorUnset( mcpf->same_ref_64, key );
-        if ( rc != 0 )
-            (void)LOGERR( klogErr, rc, "cannot remove from same-ref-cache (64bit)" );
-        else
-        {
-            rc = KVectorUnset( mcpf->same_ref_16, key );
-            if ( rc != 0 )
-                (void)LOGERR( klogErr, rc, "cannot remove from same-ref-cache (16bit)" );
-        }
-        if ( rc == 0 && mcpf->stat_same_ref.count > 0 )
-            mcpf->stat_same_ref.count--;
-    }
-    return rc;
-}
-
-
-static rc_t matecache_clear_same_ref_per_file( matecache_per_file * const mcpf )
-{
-    rc_t rc = KVectorRelease( mcpf->same_ref_64 );
-    if ( rc != 0 )
-        (void)LOGERR( klogErr, rc, "cannot release same-ref-cache (64bit)" );
-    else
-    {
-        rc = KVectorRelease( mcpf->same_ref_16 );
-        if ( rc != 0 )
-            (void)LOGERR( klogErr, rc, "cannot release same-ref-cache (16bit)" );
-        else
-        {
-            rc = KVectorMake( &mcpf->same_ref_64 );
-            if ( rc != 0 )
-                (void)LOGERR( klogErr, rc, "cannot make same-ref-cache (64bit)" );
-            else
-            {
-                rc = KVectorMake( &mcpf->same_ref_16 );
-                if ( rc != 0 )
-                    (void)LOGERR( klogErr, rc, "cannot make same-ref-cache (16bit)" );
-            }
-        }
-    }
-    return rc;
-}
-
-
-rc_t matecache_clear_same_ref( matecache * const self )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-    {
-        rc = RC( rcApp, rcNoTarg, rcAccessing, rcSelf, rcNull );
-        (void)LOGERR( klogErr, rc, "cannot clear same-ref-cache" );
-    }
-    else
-    {
-        uint32_t idx;
-        for ( idx = 0; idx < self->count && rc == 0; ++idx )
-        {
-            rc = matecache_clear_same_ref_per_file( &self->per_file[ idx ] );
-        }
-        self->flashes++;
-   }
-    return rc;
-}
-
-
-rc_t matecache_report( const matecache * const self )
-{
-    rc_t rc = 0;
-    if ( self == NULL )
-    {
-        rc = RC( rcApp, rcNoTarg, rcAccessing, rcSelf, rcNull );
-        (void)LOGERR( klogErr, rc, "cannot report same-ref-cache" );
-    }
-    else
-    {
-        uint32_t idx;
-        for ( idx = 0; idx < self->count && rc == 0; ++idx )
-        {
-            rc = KOutMsg( "on same reference:\n" );
-            if ( rc == 0 )
-                rc = KOutMsg( "matecache[ %u ].maxcount = %,lu\n", idx, self->per_file[ idx ].maxcount_same_ref );
-            if ( rc == 0 )
-                rc = KOutMsg( "matecache[ %u ].inserts = %,lu\n", idx, self->per_file[ idx ].stat_same_ref.inserts );
-            if ( rc == 0 )
-                rc = KOutMsg( "matecache[ %u ].lookups = %,lu\n", idx, self->per_file[ idx ].stat_same_ref.lookups );
-            if ( rc == 0 )
-                rc = KOutMsg( "matecache[ %u ].finds = %,lu\n", idx, self->per_file[ idx ].stat_same_ref.finds );
-            if ( rc == 0 )
-                rc = KOutMsg( "unaligned:\n" );
-            if ( rc == 0 )
-                rc = KOutMsg( "matecache[ %u ].count = %,lu\n", idx, self->per_file[ idx ].stat_unaligned.count );
-            if ( rc == 0 )
-                rc = KOutMsg( "matecache[ %u ].lookups = %,lu\n", idx, self->per_file[ idx ].stat_unaligned.lookups );
-            if ( rc == 0 )
-                rc = KOutMsg( "matecache[ %u ].finds = %,lu\n", idx, self->per_file[ idx ].stat_unaligned.finds );
-        }
-        if ( rc == 0 )
-            rc = KOutMsg( "matecache.flashes = %,lu\n", idx, self->flashes );
-    }
-    return rc;
-}
-
-
-rc_t matecache_insert_unaligned( matecache * const self,
-        uint32_t db_idx, int64_t key, INSDC_coord_zero ref_pos, uint32_t ref_idx, int64_t seq_id )
-{
-    matecache_per_file * mcpf = NULL;
-    rc_t rc = matecache_check( self, db_idx, &mcpf );
-    if ( rc == 0 )
-    {
-        uint64_t ref_pos_and_ref_idx = ref_pos;
-        ref_pos_and_ref_idx <<= 32;
-        ref_pos_and_ref_idx |= ref_idx;
-        rc = KVectorSetU64( mcpf->unaligned_64_a, key, ref_pos_and_ref_idx );
-        if ( rc != 0 )
-            (void)LOGERR( klogErr, rc, "cannot insert into KVector (unaligned a) U64" );
-        else
-        {
-            rc = KVectorSetU64( mcpf->unaligned_64_b, key, seq_id );
-            if ( rc != 0 )
-                (void)LOGERR( klogErr, rc, "cannot insert into KVector (unaligned b) U64" );
-        }
-        if ( rc == 0 )
-        {
-            mcpf->stat_unaligned.count++;
-            mcpf->stat_unaligned.inserts++;
-        }
-    }
-    return rc;
-}
-
-
-rc_t matecache_lookup_unaligned( const matecache * const self, uint32_t db_idx, int64_t key,
-                                 INSDC_coord_zero * const ref_pos, uint32_t * const ref_idx, int64_t * const seq_id )
-{
-    matecache_per_file * mcpf = NULL;
-    rc_t rc = matecache_check( self, db_idx, &mcpf );
-    if ( rc == 0 )
-    {
-        uint64_t value64_a;
-        mcpf->stat_unaligned.lookups++;
-        rc = KVectorGetU64( mcpf->unaligned_64_a, key, &value64_a );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) != rcNotFound )
-                (void)LOGERR( klogErr, rc, "cannot retrieve value (unaligned a) U64" );
-        }
-        else
-        {
-            uint64_t value64_b;
-            rc = KVectorGetU64( mcpf->unaligned_64_b, key, &value64_b );
-            if ( rc != 0 )
-            {
-                if ( GetRCState( rc ) != rcNotFound )
-                    (void)LOGERR( klogErr, rc, "cannot retrieve value (unaligned b) U64" );
-            }
-            else
-            {
-                *seq_id = ( int64_t )value64_b;
-                *ref_pos = ( value64_a >> 32 );
-                *ref_idx = ( value64_a & 0xFFFFFFFF );
-                mcpf->stat_unaligned.finds++;
-            }
-        }
-    }
-    return rc;
-}
-
-
-typedef struct visit_ctx
-{
-    rc_t ( CC * f ) ( int64_t seq_id, int64_t al_id, void * user_data );
-    void * user_data;
-} visit_ctx;
-
-
-static rc_t CC on_seq_id( uint64_t key, int64_t value, void *user_data )
-{
-    visit_ctx * vctx = user_data;
-    return vctx->f( ( int64_t )key, value, vctx->user_data );
-}
-
-
-rc_t foreach_unaligned_entry( const matecache * const self,
-                              uint32_t db_idx,
-                              rc_t ( CC * f ) ( int64_t seq_id, int64_t al_id, void * user_data ),
-                              void * user_data )
-{
-    matecache_per_file * mcpf = NULL;
-    rc_t rc = matecache_check( self, db_idx, &mcpf );
-    if ( rc == 0 )
-    {
-        visit_ctx vctx;
-        vctx.f = f;
-        vctx.user_data = user_data;
-        rc = KVectorVisitI64 ( mcpf->unaligned_64_b, false, on_seq_id, &vctx );
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/matecache.h b/tools/sra-pileup/matecache.h
deleted file mode 100644
index 0b8d9df..0000000
--- a/tools/sra-pileup/matecache.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_matecache_
-#define _h_matecache_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <klib/vector.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-
-#include <insdc/sra.h>
-
-typedef struct matecache_stat
-{
-    uint64_t count;
-    uint64_t lookups;
-    uint64_t finds;
-    uint64_t inserts;
-} matecache_stat;
-
-
-typedef struct matecache_per_file
-{
-    KVector *same_ref_64;   /* ref-pos and ref-idx */
-    KVector *same_ref_16;   /* flags */
-
-    KVector *unaligned_64_a;  /* ref-pos and ref-idx */
-    KVector *unaligned_64_b;  /* seq_spot_id */
-
-    matecache_stat stat_same_ref;
-    matecache_stat stat_unaligned;
-    uint64_t maxcount_same_ref;
-} matecache_per_file;
-
-
-typedef struct matecache
-{
-    matecache_per_file *per_file;
-    uint32_t count;
-    uint32_t flashes;
-} matecache;
-
-
-/* general cache functions */
-
-rc_t make_matecache( matecache **self, uint32_t count );
-
-void release_matecache( matecache * const self );
-
-rc_t matecache_clear_same_ref( matecache * const self );
-
-rc_t matecache_report( const matecache * const self );
-
-
-/* cache functions for aligned mates on the same reference */
-
-rc_t matecache_insert_same_ref( matecache * const self,
-        uint32_t db_idx, int64_t key, INSDC_coord_zero ref_pos, uint32_t flags, INSDC_coord_len tlen );
-
-rc_t matecache_lookup_same_ref( const matecache * const self, uint32_t db_idx, int64_t key,
-                       INSDC_coord_zero *ref_pos, uint32_t *flags, INSDC_coord_len *tlen );
-
-rc_t matecache_remove_same_ref( matecache * const self, uint32_t db_idx, int64_t key );
-
-
-/* cache functions for half aligned mates */
-
-/*
-    db_idx  ... index, what input-file did the alignment come from
-    key     ... row-id of aligned half
-    pos     ... position of the aligned half
-    flags   ... sam-flags of the aligned half
-    ref_idx ... idx of reference the aligned half aligns to
-*/
-
-rc_t matecache_insert_unaligned( matecache * const self,
-        uint32_t db_idx, int64_t key, INSDC_coord_zero ref_pos, uint32_t ref_idx, int64_t seq_id );
-
-rc_t matecache_lookup_unaligned( const matecache * const self, uint32_t db_idx, int64_t key,
-                                 INSDC_coord_zero * const ref_pos, uint32_t * const ref_idx, int64_t * const seq_id );
-
-rc_t foreach_unaligned_entry( const matecache * const self,
-                              uint32_t db_idx,
-                              rc_t ( CC * f ) ( int64_t seq_id, int64_t al_id, void * user_data ),
-                              void * user_data );
-
-
-#endif
diff --git a/tools/sra-pileup/out_redir.c b/tools/sra-pileup/out_redir.c
deleted file mode 100644
index c089d78..0000000
--- a/tools/sra-pileup/out_redir.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "out_redir.h"
-
-#include <kfs/directory.h>
-#include <kfs/buffile.h>
-#include <kfs/bzip.h>
-#include <kfs/gzip.h>
-#include <sysalloc.h>
-
-static rc_t CC out_redir_callback( void * self, const char * buffer, size_t bufsize, size_t * num_writ )
-{
-    out_redir * redir = ( out_redir * )self;
-    rc_t rc = KFileWriteAll( redir->kfile, redir->pos, buffer, bufsize, num_writ );
-    if ( rc == 0 )
-        redir->pos += *num_writ;
-    return rc;
-}
-
-
-rc_t init_out_redir( out_redir * self, enum out_redir_mode mode, const char * filename, size_t bufsize )
-{
-    rc_t rc;
-    KFile *output_file;
-
-    if ( filename != NULL )
-    {
-        KDirectory *dir;
-        rc = KDirectoryNativeDir( &dir );
-        if ( rc != 0 )
-            LOGERR( klogInt, rc, "KDirectoryNativeDir() failed" );
-        else
-        {
-            rc = KDirectoryCreateFile ( dir, &output_file, false, 0664, kcmInit, "%s", filename );
-            KDirectoryRelease( dir );
-        }
-    }
-    else
-        rc = KFileMakeStdOut ( &output_file );
-
-    if ( rc == 0 )
-    {
-        KFile *temp_file;
-
-        /* wrap the output-file in compression, if requested */
-        switch ( mode )
-        {
-            case orm_gzip  : rc = KFileMakeGzipForWrite( &temp_file, output_file ); break;
-            case orm_bzip2 : rc = KFileMakeBzip2ForWrite( &temp_file, output_file ); break;
-            case orm_uncompressed : break;
-        }
-        if ( rc == 0 )
-        {
-            if ( mode != orm_uncompressed )
-            {
-                KFileRelease( output_file );
-                output_file = temp_file;
-            }
-
-            /* wrap the output/compressed-file in buffering, if requested */
-            if ( bufsize != 0 )
-            {
-                rc = KBufFileMakeWrite( &temp_file, output_file, false, bufsize );
-                if ( rc == 0 )
-                {
-                    KFileRelease( output_file );
-                    output_file = temp_file;
-                }
-            }
-
-            if ( rc == 0 )
-            {
-                self->kfile = output_file;
-                self->org_writer = KOutWriterGet();
-                self->org_data = KOutDataGet();
-                self->pos = 0;
-                rc = KOutHandlerSet( out_redir_callback, self );
-                if ( rc != 0 )
-                    LOGERR( klogInt, rc, "KOutHandlerSet() failed" );
-            }
-        }
-    }
-    return rc;
-}
-
-
-void release_out_redir( out_redir * self )
-{
-    KFileRelease( self->kfile );
-    if( self->org_writer != NULL )
-    {
-        KOutHandlerSet( self->org_writer, self->org_data );
-    }
-    self->org_writer = NULL;
-}
-
diff --git a/tools/sra-pileup/out_redir.h b/tools/sra-pileup/out_redir.h
deleted file mode 100644
index 6eacab5..0000000
--- a/tools/sra-pileup/out_redir.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_out_redir_
-#define _h_out_redir_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <klib/out.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-
-#include <kfs/file.h>
-
-enum out_redir_mode
-{
-    orm_uncompressed = 0,
-    orm_gzip,
-    orm_bzip2
-};
-
-
-/* GLOBAL VARIABLES */
-typedef struct out_redir
-{
-    KWrtWriter org_writer;
-    void* org_data;
-    KFile* kfile;
-    uint64_t pos;
-} out_redir;
-
-
-rc_t init_out_redir( out_redir * self, enum out_redir_mode mode, const char * filename, size_t bufsize );
-
-void release_out_redir( out_redir * self );
-
-#endif
diff --git a/tools/sra-pileup/read_fkt.c b/tools/sra-pileup/read_fkt.c
deleted file mode 100644
index 5a7fa68..0000000
--- a/tools/sra-pileup/read_fkt.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "read_fkt.h"
-#include <sysalloc.h>
-
-rc_t read_bool( int64_t row_id, const VCursor * cursor, uint32_t idx, bool *res, bool dflt )
-{
-    const bool * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) bool failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        *res = row_len > 0 ? *value : dflt;
-    }
-    return rc;
-}
-
-
-rc_t read_int64( int64_t row_id, const VCursor * cursor, uint32_t idx, int64_t *res, int64_t dflt )
-{
-    const int64_t *value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) int64 failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        *res = row_len > 0 ? *value : dflt;
-    }
-    return rc;
-}
-
-
-rc_t read_char_ptr_and_size( int64_t row_id, const VCursor * cursor, uint32_t idx, const char **res, size_t *res_len )
-{
-    const char * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) char_ptr failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        if ( res_len != NULL )
-            *res_len = ( size_t )row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_u8_ptr_and_size( int64_t row_id, const VCursor * cursor, uint32_t idx, const uint8_t **res, size_t *res_len )
-{
-    const uint8_t * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) char_ptr failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        if ( res_len != NULL )
-            *res_len = ( size_t )row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_INSDC_coord_zero( int64_t row_id, const VCursor * cursor, uint32_t idx, INSDC_coord_zero *res, size_t *res_len )
-{
-    INSDC_coord_zero * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) INSDC_coord_zero failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = *value;
-        if ( res_len != NULL )
-            *res_len = ( size_t )row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_INSDC_coord_len( int64_t row_id, const VCursor * cursor, uint32_t idx, INSDC_coord_len *res )
-{
-    INSDC_coord_len * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) INSDC_coord_len failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else if ( row_len > 0 )
-        *res = *value;
-    return rc;
-}
-
-
-rc_t read_uint32_t( int64_t row_id, const VCursor * cursor, uint32_t idx, uint32_t *res, uint32_t dflt )
-{
-    uint32_t * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) uint32_t failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        *res = ( row_len > 0 ) ? *value : dflt;
-    }
-    return rc;
-}
-
-
-rc_t read_uint32_t_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, uint32_t **res, uint32_t *len )
-{
-    uint32_t * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) uint32_t (ptr) failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        *len = row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_int64_t_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, int64_t **res, uint32_t *len )
-{
-    int64_t * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) uint64_t (ptr) failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        *len = row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_INSDC_read_type_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_read_type **res, uint32_t *len )
-{
-    const INSDC_read_type * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) INSDC_read_type (ptr) failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        *len = row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_INSDC_read_filter_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_read_filter **res, uint32_t *len )
-{
-    const INSDC_read_filter * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) INSDC_read_filter (ptr) failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        *len = row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_INSDC_coord_len_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_coord_len **res, uint32_t *len )
-{
-    const INSDC_coord_len * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) INSDC_coord_len (ptr) failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        *len = row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_INSDC_coord_zero_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_coord_zero **res, uint32_t *len )
-{
-    const INSDC_coord_zero * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) INSDC_coord_zero (ptr) failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        *len = row_len;
-    }
-    return rc;
-}
-
-
-rc_t read_INSDC_dna_text_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_dna_text **res, uint32_t *len )
-{
-    const INSDC_dna_text * value;
-    uint32_t elem_bits, boff, row_len;
-    rc_t rc = VCursorCellDataDirect( cursor, row_id, idx, &elem_bits, (const void**)&value, &boff, &row_len );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorCellDataDirect( $(tr).$(ti) ) INSDC_dna_text (ptr) failed", 
-            "tr=%li,ti=%u", row_id, idx ) );
-    }
-    else
-    {
-        if ( row_len > 0 )
-            *res = value;
-        *len = row_len;
-    }
-    return rc;
-}
-
-
-rc_t add_column( const VCursor * cursor, const char *colname, uint32_t * idx )
-{
-    rc_t rc = VCursorAddColumn( cursor, idx, colname );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorAddColumn( $(cn) ) failed", "cn=%s", colname ) );
-    }
-    return rc;
-}
-
-
-bool namelist_contains( const KNamelist *tables, const char * table_name )
-{
-    bool res = false;
-    uint32_t count;
-    rc_t rc = KNamelistCount( tables, &count );
-    if ( rc == 0 && count > 0 )
-    {
-        uint32_t idx;
-        size_t table_name_len = string_size( table_name );
-        for ( idx = 0; idx < count && rc == 0 && !res; ++idx )
-        {
-            const char * name;
-            rc = KNamelistGet( tables, idx, &name );
-            if ( rc == 0 && name != NULL )
-            {
-                size_t name_len = string_size( name );
-                size_t max_len = table_name_len > name_len ? table_name_len : name_len;
-                int cmp = string_cmp( table_name, table_name_len, name, name_len, max_len );
-                if ( cmp == 0 )
-                    res = true;
-            }
-        }
-    }
-    return res;
-}
diff --git a/tools/sra-pileup/read_fkt.h b/tools/sra-pileup/read_fkt.h
deleted file mode 100644
index 0290864..0000000
--- a/tools/sra-pileup/read_fkt.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_read_fkt_
-#define _h_read_fkt_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <klib/vector.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-
-#include <vdb/cursor.h>
-#include <insdc/sra.h>
-
-rc_t read_bool( int64_t row_id, const VCursor * cursor, uint32_t idx, bool *res, bool dflt );
-rc_t read_int64( int64_t row_id, const VCursor * cursor, uint32_t idx, int64_t *res, int64_t dflt );
-rc_t read_char_ptr_and_size( int64_t row_id, const VCursor * cursor, uint32_t idx, const char **res, size_t *res_len );
-rc_t read_u8_ptr_and_size( int64_t row_id, const VCursor * cursor, uint32_t idx, const uint8_t **res, size_t *res_len );
-rc_t read_INSDC_coord_zero( int64_t row_id, const VCursor * cursor, uint32_t idx, INSDC_coord_zero *res, size_t *res_len );
-rc_t read_INSDC_coord_len( int64_t row_id, const VCursor * cursor, uint32_t idx, INSDC_coord_len *res );
-rc_t read_uint32_t( int64_t row_id, const VCursor * cursor, uint32_t idx, uint32_t *res, uint32_t dflt );
-rc_t read_uint32_t_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, uint32_t **res, uint32_t *len );
-rc_t read_int64_t_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, int64_t **res, uint32_t *len );
-rc_t read_INSDC_read_type_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_read_type **res, uint32_t *len );
-rc_t read_INSDC_read_filter_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_read_filter **res, uint32_t *len );
-rc_t read_INSDC_coord_len_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_coord_len **res, uint32_t *len );
-rc_t read_INSDC_coord_zero_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_coord_zero **res, uint32_t *len );
-rc_t read_INSDC_dna_text_ptr( int64_t row_id, const VCursor * cursor, uint32_t idx, const INSDC_dna_text **res, uint32_t *len );
-
-rc_t add_column( const VCursor * cursor, const char *colname, uint32_t * idx );
-bool namelist_contains( const KNamelist *tables, const char * table_name );
-
-#endif
\ No newline at end of file
diff --git a/tools/sra-pileup/reref.c b/tools/sra-pileup/reref.c
deleted file mode 100644
index 201d995..0000000
--- a/tools/sra-pileup/reref.c
+++ /dev/null
@@ -1,498 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "reref.h"
-
-#include <klib/text.h>
-#include <kfs/file.h>
-#include <vfs/manager.h>
-#include <vfs/path.h>
-#include <vfs/resolver.h>
-#include <align/reference.h>
-
-#include <sysalloc.h>
-#include <stdlib.h>
-
-typedef struct report_row_ctx
-{
-    uint32_t prim_idx;
-    uint32_t sec_idx;
-    int64_t row_id;
-} report_row_ctx;
-
-
-static rc_t report_ref_row( const VCursor *cur, report_row_ctx * row_ctx )
-{
-    rc_t rc = 0;
-    uint32_t elem_bits, boff, prim_count, sec_count;
-    const void *base;
-    rc = VCursorCellDataDirect ( cur, row_ctx->row_id, row_ctx->prim_idx, &elem_bits, &base, &boff, &prim_count );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot read colum >PRIMARY_ALIGNMENT_IDS<" );
-    }
-    else
-    {
-        rc = VCursorCellDataDirect ( cur, row_ctx->row_id, row_ctx->sec_idx, &elem_bits, &base, &boff, &sec_count );
-        if ( rc != 0 )
-        {
-            (void)LOGERR( klogErr, rc, "cannot read colum >SECONDARY_ALIGNMENT_IDS<" );
-        }
-        else if ( prim_count > 0 || sec_count > 0 )
-        {
-            rc = KOutMsg( "ROW[ %,lu ]: PRIM:%,u SEC:%,u\n", row_ctx->row_id, prim_count, sec_count );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t report_ref_cursor( const VCursor *cur, int64_t start, int64_t stop )
-{
-    report_row_ctx row_ctx;
-    rc_t rc = VCursorAddColumn ( cur, &row_ctx.prim_idx, "PRIMARY_ALIGNMENT_IDS" );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot add column >PRIMARY_ALIGNMENT_IDS<" );
-    }
-    else
-    {
-        rc = VCursorAddColumn ( cur, &row_ctx.sec_idx, "SECONDARY_ALIGNMENT_IDS" );
-        if ( rc != 0 )
-        {
-            (void)LOGERR( klogErr, rc, "cannot add column >SECONDARY_ALIGNMENT_IDS<" );
-        }
-        else
-        {
-            rc = VCursorOpen ( cur );
-            if ( rc != 0 )
-            {
-                (void)LOGERR( klogErr, rc, "cannot open REFERENCE-CURSOR" );
-            }
-            else
-            {
-                for ( row_ctx.row_id = start; rc == 0 && row_ctx.row_id <= stop; ++row_ctx.row_id )
-                {
-                    rc = report_ref_row( cur, &row_ctx );
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t report_ref_table( const VDBManager *vdb_mgr, const char * path, int64_t start, int64_t stop )
-{
-    const VDatabase* db;
-    rc_t rc = VDBManagerOpenDBRead ( vdb_mgr, &db, NULL, "%s", path );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot open vdb-database" );
-    }
-    else
-    {
-        const VTable* tb;
-        rc = VDatabaseOpenTableRead ( db, &tb, "REFERENCE" );
-        if ( rc != 0 )
-        {
-            (void)LOGERR( klogErr, rc, "cannot open REFERENCE-table" );
-        }
-        else
-        {
-            const VCursor *cur;
-            rc = VTableCreateCursorRead ( tb, &cur );
-            if ( rc != 0 )
-            {
-                (void)LOGERR( klogErr, rc, "cannot open REFERENCE-cursor" );
-            }
-            else
-            {
-                rc = report_ref_cursor( cur, start, stop );
-                VCursorRelease( cur );
-            }
-            VTableRelease ( tb );
-        }
-        VDatabaseRelease ( db );
-    }
-    return rc;
-}
-
-
-static rc_t report_ref_table2( const ReferenceObj* ref_obj, int64_t start, int64_t stop )
-{
-    rc_t rc = 0;
-    int64_t row_id, max_prim_at, max_sec_at, max_ev_at;
-    uint64_t sum_prim, sum_sec, sum_ev, max_prim, max_sec, max_ev;
-    sum_prim = sum_sec = sum_ev = max_prim = max_sec = max_ev = 0;
-
-    for ( row_id = start; rc == 0 && row_id <= stop; ++row_id )
-    {
-        uint32_t count[ 3 ];
-        rc = ReferenceObj_GetIdCount( ref_obj, row_id, count );
-        if ( rc == 0 )
-        {
-            sum_prim += count[ 0 ];
-            sum_sec  += count[ 1 ];
-            sum_ev   += count[ 2 ];
-
-            if ( count[ 0 ] > max_prim )
-            {
-                max_prim = count[ 0 ];
-                max_prim_at = row_id;
-            }
-            if ( count[ 1 ] > max_sec )
-            {
-                max_sec = count[ 1 ];
-                max_sec_at = row_id;
-            }
-            if ( count[ 2 ] > max_ev )
-            {
-                max_ev = count[ 2 ];
-                max_ev_at = row_id;
-            }
-        }
-    }
-
-    rc = KOutMsg( "alignments:\t%,u PRI\t%,u SEC\t%,u EV\n", sum_prim, sum_sec, sum_ev );
-    if ( rc == 0 && max_prim > 0 )
-    {
-        uint64_t from = ( ( max_prim_at - start ) * 5000 ) + 1;
-        rc = KOutMsg( "max. PRI:\t%,u\tat row #%,i ( from pos: %,u ... %,u )\n", max_prim, max_prim_at, from, from + 4999 );
-    }
-    if ( rc == 0 && max_sec > 0 )
-    {
-        uint64_t from = ( ( max_sec_at - start ) * 5000 ) + 1;
-        rc = KOutMsg( "max. SEC:\t%,u\tat row #%,i ( from pos: %,u ... %,u )\n", max_sec, max_sec_at, from, from + 4999 );
-    }
-    if ( rc == 0 && max_ev > 0 )
-    {
-        uint64_t from = ( ( max_ev_at - start ) * 5000 ) + 1;
-        rc = KOutMsg( "max. EV:\t%,u\tat row #%,i ( from pos: %,u ... %,u )\n", max_ev, max_ev_at, from, from + 4999 );
-    }
-    return rc;
-}
-
-
-const char * ss_Database        = "Database";
-const char * ss_Table           = "Table";
-const char * ss_PrereleaseTbl   = "Prerelease Table";
-const char * ss_Column          = "Column";
-const char * ss_Index           = "Index";
-const char * ss_NotFound        = "not found";
-const char * ss_BadPath         = "bad path";
-const char * ss_File            = "File";
-const char * ss_Dir             = "Dir";
-const char * ss_CharDev         = "CharDev";
-const char * ss_BlockDev        = "BlockDev";
-const char * ss_FIFO            = "FIFO";
-const char * ss_ZombieFile      = "ZombieFile";
-const char * ss_Dataset         = "Dataset";
-const char * ss_Datatype        = "Datatype";
-const char * ss_unknown         = "unknown pathtype";
-
-
-static const char * path_type_2_str( const uint32_t pt )
-{
-    const char * res = ss_unknown;
-    switch ( pt )
-    {
-    case kptDatabase      :   res = ss_Database; break;
-    case kptTable         :   res = ss_Table; break;
-    case kptPrereleaseTbl :   res = ss_PrereleaseTbl; break;
-    case kptColumn        :   res = ss_Column; break;
-    case kptIndex         :   res = ss_Index; break;
-    case kptNotFound      :   res = ss_NotFound; break;
-    case kptBadPath       :   res = ss_BadPath; break;
-    case kptFile          :   res = ss_File; break;
-    case kptDir           :   res = ss_Dir; break;
-    case kptCharDev       :   res = ss_CharDev; break;
-    case kptBlockDev      :   res = ss_BlockDev; break;
-    case kptFIFO          :   res = ss_FIFO; break;
-    case kptZombieFile    :   res = ss_ZombieFile; break;
-    case kptDataset       :   res = ss_Dataset; break;
-    case kptDatatype      :   res = ss_Datatype; break;
-    default               :   res = ss_unknown; break;
-    }
-    return res;
-}
-
-
-static rc_t resolve_accession( VFSManager * vfs_mgr, const char * accession, const String ** path )
-{
-    VResolver * resolver;
-    rc_t rc = VFSManagerGetResolver( vfs_mgr, &resolver );
-    if ( rc == 0 )
-    {
-        const VPath * vpath;
-        rc = VPathMakeSysPath( ( VPath** )&vpath, accession );
-        if ( rc == 0 )
-        {
-            const VPath * rpath;
-            rc = VResolverLocal( resolver, vpath, &rpath );
-            if ( GetRCState( rc ) == rcNotFound )
-                rc = VResolverRemote( resolver, vpath, &rpath, NULL );
-            if ( rc == 0 )
-            {
-                const String * s;
-                rc = VPathMakeString( rpath, &s );
-                if ( rc == 0 )
-                {
-                    rc = StringCopy ( path, s );
-                    free ((void*)s);
-                }
-                VPathRelease ( rpath );
-            }
-            VPathRelease ( vpath );
-        }
-        VResolverRelease( resolver );
-    }
-    return rc;
-}
-
-
-static rc_t report_ref_loc( const VDBManager *vdb_mgr, VFSManager * vfs_mgr, const char * seq_id )
-{
-    const String * path;
-    rc_t rc = resolve_accession( vfs_mgr, seq_id, &path );
-    if ( rc == 0 )
-    {
-        rc = KOutMsg( "location:\t%S\n", path );
-        if ( rc == 0 )
-        {
-            uint32_t pt = VDBManagerPathType ( vdb_mgr, "%S", path );
-            const char * spt = path_type_2_str( pt );
-            rc = KOutMsg( "pathtype:\t%s\n", spt );
-        }
-        free ( (void*) path );
-    }
-    return rc;
-}
-
-
-static rc_t report_ref_obj( const VDBManager *vdb_mgr, VFSManager * vfs_mgr, const char * path, uint32_t idx,
-                            const ReferenceObj* ref_obj, bool extended )
-{
-    const char * s;
-    const char * seq_id;
-    INSDC_coord_len len;
-    bool circular, external;
-    int64_t start, stop;
-
-    rc_t rc = ReferenceObj_Name( ref_obj, &s );
-    if ( rc == 0 )
-        rc = KOutMsg( "\nREF[%u].Name     = '%s'\n", idx, s );
-
-    if ( rc == 0 )
-        rc = ReferenceObj_SeqId( ref_obj, &seq_id );
-    if ( rc == 0 )
-        rc = KOutMsg( "REF[%u].SeqId    = '%s'\n", idx, seq_id );
-
-    if ( rc == 0 )
-        rc = ReferenceObj_SeqLength( ref_obj, &len );
-    if ( rc == 0 )
-        rc = KOutMsg( "REF[%u].Length   = %,u\n", idx, len );
-
-    if ( rc == 0 )
-        rc = ReferenceObj_Circular( ref_obj, &circular );
-    if ( rc == 0 )
-        rc = KOutMsg( "REF[%u].Circular = %s\n", idx, circular ? "yes" : "no" );
-
-    if ( rc == 0 )
-        rc = ReferenceObj_IdRange( ref_obj, &start, &stop );
-    if ( rc == 0 )
-        rc = KOutMsg( "REF[%u].IdRange  = [%,lu]...[%,lu]\n", idx, start, stop );
-
-    if ( rc == 0 )
-        rc = ReferenceObj_External( ref_obj, &external, NULL );
-    if ( rc == 0 )
-        rc = KOutMsg( "REF[%u].Extern   = %s\n", idx, external ? "yes" : "no" );
-    if ( rc == 0 && external )
-    {
-        rc = report_ref_loc( vdb_mgr, vfs_mgr, seq_id );
-    }
-
-    if ( rc == 0 && extended )
-        rc = report_ref_table2( ref_obj, start, stop );
-
-    return rc;
-}
-
-
-static rc_t report_ref_database( const VDBManager *vdb_mgr, VFSManager * vfs_mgr, const char * path, bool extended )
-{
-    const ReferenceList* reflist;
-    uint32_t options = ( ereferencelist_usePrimaryIds | ereferencelist_useSecondaryIds | ereferencelist_useEvidenceIds );
-    rc_t rc = ReferenceList_MakePath( &reflist, vdb_mgr, path, options, 0, NULL, 0 );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot create ReferenceList" );
-    }
-    else
-    {
-        uint32_t count;
-        rc = ReferenceList_Count( reflist, &count );
-        if ( rc != 0 )
-        {
-            (void)LOGERR( klogErr, rc, "ReferenceList_Count() failed" );
-        }
-        else
-        {
-            rc = KOutMsg( "this object uses %u references\n", count );
-            if ( rc == 0 )
-            {
-                uint32_t idx;
-                for ( idx = 0; idx < count && rc == 0; ++idx )
-                {
-                    const ReferenceObj* ref_obj;
-                    rc = ReferenceList_Get( reflist, &ref_obj, idx );
-                    if ( rc != 0 )
-                    {
-                        (void)LOGERR( klogErr, rc, "ReferenceList_Get() failed" );
-                    }
-                    else
-                    {
-                        rc = report_ref_obj( vdb_mgr, vfs_mgr, path, idx, ref_obj, extended );
-                        ReferenceObj_Release( ref_obj );
-                    }
-                }
-            }
-        }
-        ReferenceList_Release( reflist );
-    }
-    return rc;
-}
-
-
-static rc_t report_references( const VDBManager *vdb_mgr, VFSManager * vfs_mgr, const char * spec,
-                               bool extended )
-{
-    rc_t rc = KOutMsg( "\nreporting references of '%s'\n", spec );
-    if ( rc == 0 )
-    {
-        VPath * path = NULL;
-        const VPath * local_cache = NULL;
-        const KFile * remote_file = NULL;
-        rc = VFSManagerResolveSpec ( vfs_mgr, spec, &path, &remote_file, &local_cache, true );
-        if ( rc != 0 )
-        {
-            (void)LOGERR( klogErr, rc, "cannot resolve spec via VFSManager" );
-        }
-        else
-        {
-            char buffer[ 4096 ];
-            size_t num_read;
-            rc = VPathReadPath ( path, buffer, sizeof buffer, &num_read );
-            if ( rc != 0 )
-            {
-                (void)LOGERR( klogErr, rc, "cannot read path from vpath" );
-            }
-            else
-            {
-                rc = KOutMsg( "resolved into '%s'\n", buffer );
-                if ( rc == 0 )
-                {
-                    int path_type = ( VDBManagerPathType ( vdb_mgr, "%s", buffer ) & ~ kptAlias );
-                    switch( path_type )
-                    {
-                        case kptDatabase : rc = report_ref_database( vdb_mgr, vfs_mgr, buffer, extended );
-                                           break;
-
-                        case kptTable    : rc = KOutMsg( "cannot report references on a table-object\n" );
-                                           break;
-
-                        default          : rc = KOutMsg( "the given object is not a vdb-database\n" );
-                                           break;
-                    }
-                }
-            }
-            KFileRelease( remote_file );
-            VPathRelease ( local_cache );
-            VPathRelease ( path );
-        }
-    }
-    return rc;
-}
-
-
-rc_t report_on_reference( Args * args, bool extended )
-{
-    uint32_t count;
-    rc_t rc = ArgsParamCount( args, &count );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ArgsParamCount() failed" );
-    }
-    else
-    {
-        KDirectory *dir; 
-        rc = KDirectoryNativeDir( &dir );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "KDirectoryNativeDir() failed" );
-        }
-        else
-        {
-            const VDBManager *vdb_mgr;
-            rc = VDBManagerMakeRead ( &vdb_mgr, dir );
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "VDBManagerMakeRead() failed" );
-            }
-            else
-            {
-                VFSManager * vfs_mgr;
-                rc =  VFSManagerMake ( &vfs_mgr );
-                if ( rc != 0 )
-                {
-                    (void)LOGERR( klogErr, rc, "cannot make vfs-manager" );
-                }
-                else
-                {
-                    uint32_t idx;
-                    for ( idx = 0; idx < count && rc == 0; ++idx )
-                    {
-                        const char *param = NULL;
-                        rc = ArgsParamValue( args, idx, &param );
-                        if ( rc != 0 )
-                        {
-                            LOGERR( klogInt, rc, "ArgsParamvalue() failed" );
-                        }
-                        else
-                        {
-                            /* rc value not used, because it can be something that has no references */
-                            report_references( vdb_mgr, vfs_mgr, param, extended );
-                        }
-                    }
-                    VFSManagerRelease ( vfs_mgr );
-                }
-                VDBManagerRelease( vdb_mgr );
-            }
-            KDirectoryRelease( dir );
-        }
-    }
-    return rc;
-}
\ No newline at end of file
diff --git a/tools/sra-pileup/reref.h b/tools/sra-pileup/reref.h
deleted file mode 100644
index 13e3136..0000000
--- a/tools/sra-pileup/reref.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_reref_
-#define _h_reref_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <kapp/args.h>
-
-#include <klib/out.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-
-#include <vdb/manager.h>
-#include <vdb/vdb-priv.h>
-#include <kdb/manager.h>
-
-rc_t report_on_reference( Args * args, bool extended );
-
-#endif
diff --git a/tools/sra-pileup/sam-aligned.c b/tools/sra-pileup/sam-aligned.c
deleted file mode 100644
index fbcdea7..0000000
--- a/tools/sra-pileup/sam-aligned.c
+++ /dev/null
@@ -1,1604 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <align/manager.h>
-#include <align/iterator.h>
-#include <kapp/main.h>
-#include <sysalloc.h>
-
-#include "read_fkt.h"
-#include "cg_tools.h"
-#include "sam-aligned.h"
-
-/* -------------------------------------------------------------------------------------------
-    column                      PRIM    SEC     EV_INT      EV_ALIGN ( outside of iterator )
-
-    SEQ_SPOT_ID                 X       X       -           X
-    SAM_FLAGS                   X       X       -           -
-    CIGAR_LONG                  X       X       X           X 
-    CIGAR_SHORT                 X       X       X           X
-    CIGAR_LONG_LEN              X       X       X           X 
-    CIGAR_SHORT_LEN             X       X       X           X
-    MATE_ALIGN_ID               X       X       -           -
-    MATE_REF_NAME               X       X       -           -
-    MATE_REF_POS                X       X       -           -
-    TEMPLATE_LEN                X       X       -           -
-    READ                        X       X       X           X
-    READ_LEN                    X       X       X           X
-    MISMATCH_READ               X       X       X           X
-    SAM_QUALITY                 X       X       X           X
-    REF_ORIENTATION             X       X       X           X
-    EDIT_DISTANCE               X       X       X           X
-    SEQ_SPOT_GROUP              X       X       -           X
-    SEQ_READ_ID                 X       X       -           X
-    RAW_READ                    X       X       X           X
-    READ_FILTER                 X       X       X           X
-    EVIDENCE_ALIGNMENT_IDS      -       -       X           -
-    REF_POS                                                 o
-    REF_PLOIDY                                              o
-   -------------------------------------------------------------------------------------------*/
-
-
-#define COL_NOT_AVAILABLE 0xFFFFFFFF
-
-#define COL_SEQ_SPOT_ID "(I64)SEQ_SPOT_ID"
-#define COL_SAM_FLAGS "(U32)SAM_FLAGS"
-#define COL_LONG_CIGAR "(ascii)CIGAR_LONG"
-#define COL_SHORT_CIGAR "(ascii)CIGAR_SHORT"
-#define COL_MATE_ALIGN_ID "(I64)MATE_ALIGN_ID"
-#define COL_MATE_REF_NAME "(ascii)MATE_REF_NAME"
-#define COL_MATE_REF_POS "(INSDC:coord:zero)MATE_REF_POS"
-#define COL_TEMPLATE_LEN "(I32)TEMPLATE_LEN"
-#define COL_MISMATCH_READ "(ascii)MISMATCH_READ"
-#define COL_SAM_QUALITY "(INSDC:quality:text:phred_33)SAM_QUALITY"
-#define COL_REF_ORIENTATION "(bool)REF_ORIENTATION"
-#define COL_EDIT_DIST "(U32)EDIT_DISTANCE"
-#define COL_SEQ_SPOT_GROUP "(ascii)SEQ_SPOT_GROUP"
-#define COL_SEQ_READ_ID "(INSDC:coord:one)SEQ_READ_ID"
-#define COL_RAW_READ "(INSDC:dna:text)RAW_READ"
-#define COL_PLOIDY "(NCBI:align:ploidy)PLOIDY"
-#define COL_CIGAR_LONG_LEN "(INSDC:coord:len)CIGAR_LONG_LEN"
-#define COL_CIGAR_SHORT_LEN "(INSDC:coord:len)CIGAR_SHORT_LEN"
-#define COL_READ_LEN "(INSDC:coord:len)READ_LEN"
-#define COL_EV_ALIGNMENTS "(I64)EVIDENCE_ALIGNMENT_IDS"
-#define COL_REF_POS "(INSDC:coord:zero)REF_POS"
-#define COL_REF_PLOIDY "(U32)REF_PLOIDY"
-#define COL_READ_FILTER "(INSDC:SRA:read_filter)READ_FILTER"
-
-
-enum align_table_type
-{
-    att_primary = 0,
-    att_secondary,
-    att_evidence
-};
-
-
-/* the part common to prim/sec/ev-alignment */
-typedef struct align_cmn_context
-{
-    const VCursor * cursor;
-
-    uint32_t seq_spot_id_idx;
-    uint32_t cigar_idx;
-    uint32_t cigar_len_idx;
-    uint32_t read_idx;
-    uint32_t read_len_idx;
-    uint32_t edit_dist_idx;
-    uint32_t seq_spot_group_idx;
-    uint32_t seq_read_id_idx;
-    uint32_t raw_read_idx;
-    uint32_t sam_quality_idx;
-    uint32_t ref_orientation_idx;
-    uint32_t read_filter_idx;
-} align_cmn_context;
-
-
-typedef struct align_table_context
-{
-    /* which Reference-Obj in the ReferenceList we are aligning against... */
-    const ReferenceObj* ref_obj;
-    uint32_t ref_idx;
-
-    /* which index into the input-files object / needed to distinguish cache entries with the same number
-       but comming from different input-files */
-    uint32_t db_idx;
-
-    /* objects of which table are we aligning PRIM/SEC/EV ? */
-    enum align_table_type align_table_type;
-
-    /* the part common to prim/sec/ev-alignment */
-    align_cmn_context cmn;
-
-    /* this is specific to pim/sec */
-    uint32_t sam_flags_idx;
-    uint32_t mate_align_id_idx;
-    uint32_t mate_ref_name_idx;
-    uint32_t mate_ref_pos_idx;
-    uint32_t tlen_idx;
-
-    /* this is specific to ev-interval/ev-alignmnet */
-    uint32_t ploidy_idx;
-    uint32_t ev_alignments_idx;
-    uint32_t ref_pos_idx;
-    uint32_t ref_ploidy_idx;
-
-    /* the common part repeats for evidence-alignment */
-    align_cmn_context eval;
-} align_table_context;
-
-
-static void invalidate_all_cmn_column_idx( align_cmn_context * const actx )
-{
-    actx->seq_spot_id_idx       = COL_NOT_AVAILABLE;
-    actx->cigar_idx             = COL_NOT_AVAILABLE;    
-    actx->cigar_len_idx         = COL_NOT_AVAILABLE;
-    actx->read_idx              = COL_NOT_AVAILABLE;
-    actx->read_len_idx          = COL_NOT_AVAILABLE;    
-    actx->edit_dist_idx         = COL_NOT_AVAILABLE;
-    actx->seq_spot_group_idx    = COL_NOT_AVAILABLE;
-    actx->seq_read_id_idx       = COL_NOT_AVAILABLE;
-    actx->raw_read_idx          = COL_NOT_AVAILABLE;
-    actx->sam_quality_idx       = COL_NOT_AVAILABLE;
-    actx->ref_orientation_idx   = COL_NOT_AVAILABLE;
-    actx->read_filter_idx       = COL_NOT_AVAILABLE;
-}
-
-static void invalidate_all_column_idx( align_table_context * const atx )
-{
-    atx->sam_flags_idx      = COL_NOT_AVAILABLE;
-    atx->mate_align_id_idx  = COL_NOT_AVAILABLE;
-    atx->mate_ref_name_idx  = COL_NOT_AVAILABLE;
-    atx->mate_ref_pos_idx   = COL_NOT_AVAILABLE;
-    atx->tlen_idx           = COL_NOT_AVAILABLE;
-    atx->ploidy_idx         = COL_NOT_AVAILABLE;
-    atx->ev_alignments_idx  = COL_NOT_AVAILABLE;
-    atx->ref_pos_idx        = COL_NOT_AVAILABLE;
-    atx->ref_ploidy_idx     = COL_NOT_AVAILABLE;
-    invalidate_all_cmn_column_idx( &atx->cmn );
-    invalidate_all_cmn_column_idx( &atx->eval );
-}
-
-
-static rc_t prepare_cmn_table_rows( const samdump_opts * const opts, align_cmn_context * const cmn, bool prim_sec )
-{
-    const VCursor * cursor = cmn->cursor;
-    rc_t rc = 0;
-
-    if ( prim_sec )
-        rc = add_column( cursor, COL_SEQ_SPOT_ID, &cmn->seq_spot_id_idx );
-
-    if ( rc == 0 )
-    {
-        if ( opts->use_long_cigar )
-        {
-            rc = add_column( cursor, COL_LONG_CIGAR, &cmn->cigar_idx );
-            if ( rc == 0 && !prim_sec )
-                rc = add_column( cursor, COL_CIGAR_LONG_LEN, &cmn->cigar_len_idx );
-        }
-        else
-        {
-            rc = add_column( cursor, COL_SHORT_CIGAR, &cmn->cigar_idx );
-            if ( rc == 0 && !prim_sec )
-                rc = add_column( cursor, COL_CIGAR_SHORT_LEN, &cmn->cigar_len_idx );
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        if ( opts->print_matches_as_equal_sign )
-            rc = add_column( cursor, COL_MISMATCH_READ, &cmn->read_idx );
-        else
-            rc = add_column( cursor, COL_READ, &cmn->read_idx );
-    }
-
-    if ( rc == 0 )
-        rc = add_column( cursor, COL_READ_LEN, &cmn->read_len_idx );
-
-    if ( rc == 0 )
-        rc = add_column( cursor, COL_SAM_QUALITY, &cmn->sam_quality_idx );
-
-    if ( rc == 0 )
-        rc = add_column( cursor, COL_REF_ORIENTATION, &cmn->ref_orientation_idx );
-
-    if ( rc == 0 )
-        rc = add_column( cursor, COL_EDIT_DIST, &cmn->edit_dist_idx );
-
-    if ( prim_sec && rc == 0 )
-        rc = add_column( cursor, COL_SEQ_SPOT_GROUP, &cmn->seq_spot_group_idx );
-
-    if ( prim_sec && rc == 0 )
-        rc = add_column( cursor, COL_SEQ_READ_ID, &cmn->seq_read_id_idx );
-
-    if ( rc == 0 )
-        rc = add_column( cursor, COL_RAW_READ, &cmn->raw_read_idx );
-
-    if ( rc == 0 )
-        rc = add_column( cursor, COL_READ_FILTER, &cmn->read_filter_idx );
-
-    return rc;
-}
-
-
-static rc_t prepare_prim_sec_table_cursor( const samdump_opts * const opts, const VDatabase * db,
-                                           const char * table_name, align_table_context * const atx )
-{
-    const VTable *tbl;
-    rc_t rc = VDatabaseOpenTableRead( db, &tbl, table_name );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VDatabaseOpenTableRead( $(tn) ) failed", "tn=%s", table_name ) );
-    }
-    else
-    {
-        if ( opts->cursor_cache_size == 0 )
-            rc = VTableCreateCursorRead( tbl, &atx->cmn.cursor );
-        else
-            rc = VTableCreateCachedCursorRead( tbl, &atx->cmn.cursor, opts->cursor_cache_size );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "VTableCreateCursorRead( $(tn) ) failed", "tn=%s", table_name ) );
-        }
-        else
-        {
-            const VCursor * cursor = atx->cmn.cursor;
-            
-            rc = prepare_cmn_table_rows( opts, &atx->cmn, true );
-
-            if ( rc == 0 )
-                rc = add_column( cursor, COL_SAM_FLAGS, &atx->sam_flags_idx );
-
-            /*  i don't have to add REF_NAME or REF_SEQ_ID, because i have it from the ref_obj later
-                i don't have to add REF_POS, because i have it from the iterator later
-                i don't have to add MAPQ, it is in the PlacementRecord later
-                    ... when walking the iterator ...
-            */
-            if ( rc == 0 )
-                rc = add_column( cursor, COL_MATE_ALIGN_ID, &atx->mate_align_id_idx );
-            if ( rc == 0 )
-                rc = add_column( cursor, COL_MATE_REF_NAME, &atx->mate_ref_name_idx );
-            if ( rc == 0 )
-                rc = add_column( cursor, COL_MATE_REF_POS, &atx->mate_ref_pos_idx );
-            if ( rc == 0 )
-                rc = add_column( cursor, COL_TEMPLATE_LEN, &atx->tlen_idx );
-
-            if ( rc != 0 )
-                VCursorRelease( cursor );
-        }
-        VTableRelease ( tbl ); /* the cursor keeps the table alive */
-    }
-    return rc;
-}
-
-
-static rc_t prepare_evidence_table_cursor( const samdump_opts * const opts, const VDatabase * db,
-                                           const char * table_name, align_table_context * const atx )
-{
-    const VTable *evidence_interval_tbl;
-    rc_t rc = VDatabaseOpenTableRead( db, &evidence_interval_tbl, table_name );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VDatabaseOpenTableRead( $(tn) ) failed", "tn=%s", table_name ) );
-    }
-    else
-    {
-        if ( opts->cursor_cache_size == 0 )
-            rc = VTableCreateCursorRead( evidence_interval_tbl, &atx->cmn.cursor );
-        else
-            rc = VTableCreateCachedCursorRead( evidence_interval_tbl, &atx->cmn.cursor, opts->cursor_cache_size );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "VTableCreateCursorRead( $(tn) ) failed", "tn=%s", table_name ) );
-        }
-        else
-        {
-            rc = prepare_cmn_table_rows( opts, &atx->cmn, false );
-            if ( rc == 0 )
-                rc = add_column( atx->cmn.cursor, COL_PLOIDY, &atx->ploidy_idx );            
-
-            if ( rc == 0 && opts->dump_cg_sam )
-                rc = add_column( atx->cmn.cursor, COL_EV_ALIGNMENTS, &atx->ev_alignments_idx );
-
-            if ( rc == 0 && opts->dump_cg_sam )
-            {
-                const VTable *evidence_alignment_tbl;
-                rc = VDatabaseOpenTableRead( db, &evidence_alignment_tbl, "EVIDENCE_ALIGNMENT" );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogInt, ( klogInt, rc, "VDatabaseOpenTableRead( $(tn) ) failed", "tn=%s", "EVIDENCE_ALIGNMENT" ) );
-                }
-                else
-                {
-                    if ( opts->cursor_cache_size == 0 )
-                        rc = VTableCreateCursorRead( evidence_alignment_tbl, &atx->eval.cursor );
-                    else
-                        rc = VTableCreateCachedCursorRead( evidence_alignment_tbl, &atx->eval.cursor, opts->cursor_cache_size );
-                    if ( rc != 0 )
-                    {
-                        (void)PLOGERR( klogInt, ( klogInt, rc, "VTableCreateCursorRead( $(tn) ) failed", "tn=%s", "EVIDENCE_ALIGNMENT" ) );
-                    }
-                    else
-                    {
-                        rc = prepare_cmn_table_rows( opts, &atx->eval, false ); /* common to prim/sec/ev-align */
-                        if ( rc == 0 )
-                        {
-                            /* special to ev-align */
-                            rc = add_column( atx->eval.cursor, COL_REF_POS, &atx->ref_pos_idx );
-                            if ( rc == 0 )
-                                rc = add_column( atx->eval.cursor, COL_REF_PLOIDY, &atx->ref_ploidy_idx );
-                        }
-                        rc = VCursorOpen( atx->eval.cursor );
-                        if ( rc != 0 )
-                        {
-                            (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorOpen( $(tn) ) failed", "tn=%s", "EVIDENCE_ALIGNMENT" ) );
-                        }
-                    }
-                }
-                VTableRelease ( evidence_alignment_tbl ); /* the cursor keeps the table alive */
-            }
-            if ( rc != 0 )
-                VCursorRelease( atx->cmn.cursor );
-        }
-        VTableRelease ( evidence_interval_tbl ); /* the cursor keeps the table alive */
-    }
-    return rc;
-}
-
-
-static rc_t add_table_pl_iter( const samdump_opts * const opts, PlacementSetIterator * const set_iter,
-                               const ReferenceObj * const ref_obj, const input_database * const ids,
-                               INSDC_coord_zero ref_pos, INSDC_coord_len ref_len, const char * spot_group,
-                               const char * table_name, align_id_src id_src_selector, Vector * const context_list )
-{
-    rc_t rc = 0;
-    align_table_context * atx;
-    PlacementRecordExtendFuncs ext_0; /* ReferenceObj_MakePlacementIterator makes copies of the elements */
-
-    memset( &ext_0, 0, sizeof ext_0 );
-    atx = calloc( sizeof *atx, 1 );
-    if ( atx == NULL )
-    {
-        rc = RC( rcExe, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        (void)PLOGERR( klogInt, ( klogInt, rc, "align-context-allocation for $(tn) failed", "tn=%s", table_name ) );
-    }
-    else
-    {
-        atx->db_idx = ids->db_idx;
-        atx->ref_obj = ref_obj;
-        invalidate_all_column_idx( atx );
-        rc = ReferenceObj_Idx( ref_obj, &atx->ref_idx );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "failed to detect ref-idx for $(tn) failed", "tn=%s", table_name ) );
-        }
-        else
-        {
-            switch( id_src_selector )
-            {
-                case primary_align_ids   :  atx->align_table_type = att_primary;
-                                            rc = prepare_prim_sec_table_cursor( opts, ids->db, table_name, atx );
-                                            break;
-
-                case secondary_align_ids :  atx->align_table_type = att_secondary;
-                                            rc = prepare_prim_sec_table_cursor( opts, ids->db, table_name, atx );
-                                            break;
-
-                case evidence_align_ids  :  atx->align_table_type = att_evidence;
-                                            rc = prepare_evidence_table_cursor( opts, ids->db, table_name, atx );
-                                            break;
-            }
-        }
-        if ( rc == 0 )
-        {
-            ext_0.data = atx;
-            /* we must put the atx-ptr into a global list, in order to close everything later at the end... */
-        }
-        else
-            free( atx );
-    }
-
-    if ( rc == 0 )
-    {
-        int32_t min_mapq = 0;
-        PlacementIterator *pl_iter;
-
-        if ( opts->use_min_mapq )
-            min_mapq = opts->min_mapq;
-
-        rc = ReferenceObj_MakePlacementIterator( ref_obj, /* the reference-obj it is made from */
-            &pl_iter,           /* the placement-iterator we want to make */
-            ref_pos,            /* where it starts on the reference */
-            ref_len,            /* the whole length of this reference/chromosome */
-            min_mapq,           /* no minimal mapping-quality to filter out */
-            NULL,               /* no special reference-cursor */
-            atx->cmn.cursor,    /* a cursor into the PRIMARY/SECONDARY/EVIDENCE-table */
-            id_src_selector,    /* what ID-source to select from REFERENCE-table (ref_obj) */
-            &ext_0,             /* placement-record extensions #0 with data-ptr pointing to cursor/index-struct */
-            NULL,               /* no placement-record extensions #1 */
-            spot_group );       /* no spotgroup re-grouping (yet) */
-        if ( rc == 0 )
-        {
-            rc = PlacementSetIteratorAddPlacementIterator ( set_iter, pl_iter );
-            if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-        }
-    }
-
-    if ( rc == 0 )
-        rc = VectorAppend ( context_list, NULL, atx );
-    return rc;
-}
-
-
-static rc_t add_pl_iter( const samdump_opts * const opts, PlacementSetIterator * const set_iter,
-                         const ReferenceObj * const ref_obj, const input_database * const ids,
-                         INSDC_coord_zero ref_pos, INSDC_coord_len ref_len,
-                         const char * spot_group, Vector * const context_list )
-{
-    KNamelist *tables;
-    rc_t rc = VDatabaseListTbl( ids->db, &tables );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VDatabaseListTbl( $(tn) ) failed", "tn=%s", ids->path ) );
-    }
-    else
-    {
-        if ( opts->dump_primary_alignments && namelist_contains( tables, "PRIMARY_ALIGNMENT" ) )
-        {
-            rc = add_table_pl_iter( opts, set_iter, ref_obj, ids, ref_pos, ref_len, spot_group, 
-                                    "PRIMARY_ALIGNMENT", primary_align_ids, context_list );
-        }
-
-        if ( rc == 0 && opts->dump_secondary_alignments && namelist_contains( tables, "SECONDARY_ALIGNMENT" ) )
-        {
-            rc = add_table_pl_iter( opts, set_iter, ref_obj, ids, ref_pos, ref_len, spot_group, 
-                                    "SECONDARY_ALIGNMENT", secondary_align_ids, context_list );
-        }
-
-        if ( rc == 0 && ( opts->dump_cg_evidence ) && namelist_contains( tables, "EVIDENCE_INTERVAL" ) )
-        {
-            rc = add_table_pl_iter( opts, set_iter, ref_obj, ids, ref_pos, ref_len, spot_group, 
-                                    "EVIDENCE_INTERVAL", evidence_align_ids, context_list );
-        }
-        KNamelistRelease( tables );
-    }
-    return rc;
-}
-
-
-/* the user did not specify ranges on the reference, that means the whole file has to be dumped...
-   the reflist is iterated over all ref-objects it contains ... */
-static rc_t prepare_whole_files( const samdump_opts * const opts, const input_files * const ifs,
-                                 PlacementSetIterator * const set_iter, Vector * const context_list )
-{
-    rc_t rc = 0;
-    uint32_t db_idx;
-    /* we now loop through all input-databases... */
-    for ( db_idx = 0; db_idx < ifs->database_count && rc == 0; ++db_idx )
-    {
-        const input_database * ids = VectorGet( &ifs->dbs, db_idx );
-        if ( ids != NULL )
-        {
-            uint32_t refobj_count;
-            rc = ReferenceList_Count( ids->reflist, &refobj_count );
-            if ( rc == 0 && refobj_count > 0 )
-            {
-                uint32_t ref_idx;
-                for ( ref_idx = 0; ref_idx < refobj_count && rc == 0; ++ref_idx )
-                {
-                    const ReferenceObj* ref_obj;
-                    rc = ReferenceList_Get( ids->reflist, &ref_obj, ref_idx );
-                    if ( rc == 0 && ref_obj != NULL )
-                    {
-                        INSDC_coord_len ref_len;
-                        rc = ReferenceObj_SeqLength( ref_obj, &ref_len );
-                        if ( rc == 0 )
-                            rc = add_pl_iter( opts,
-                                set_iter,
-                                ref_obj,
-                                ids,
-                                0,                  /* where it starts on the reference */
-                                ref_len,            /* the whole length of this reference/chromosome */
-                                NULL,               /* no spotgroup re-grouping (yet) */
-                                context_list
-                                );
-                        ReferenceObj_Release( ref_obj );
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-typedef struct on_region_ctx
-{
-    rc_t rc;
-    const samdump_opts * opts;
-    input_database * ids;
-    PlacementSetIterator * set_iter;
-    Vector *context_list;
-} on_region_ctx;
-
-
-static void CC on_region( BSTNode *n, void *data )
-{
-    on_region_ctx * rctx = data;
-    if ( rctx->rc == 0 )
-    {
-        reference_region * ref_rgn = ( reference_region * )n;
-        const ReferenceObj * ref_obj;
-        rctx->rc = ReferenceList_Find( rctx->ids->reflist, &ref_obj, ref_rgn->name, string_size( ref_rgn->name ) );
-        if ( rctx->rc == 0 )
-        {
-            uint32_t range_idx, range_count = VectorLength( &ref_rgn->ranges );
-            for ( range_idx = 0; range_idx < range_count && rctx->rc == 0; ++range_idx )
-            {
-                range * r = VectorGet( &ref_rgn->ranges, range_idx );
-                if ( r != NULL )
-                {
-                    INSDC_coord_len len;
-                    if ( r->start == 0 && r->end == 0 )
-                    {
-                        r->start = 1;
-                        rctx->rc = ReferenceObj_SeqLength( ref_obj, &len );
-                        if ( rctx->rc == 0 )
-                            r->end = ( r->start + len );
-                    }
-                    else
-                    {
-                        len = ( r->end - r->start + 1 );
-                    }
-                    if ( rctx->rc == 0 )
-                    {
-                        rctx->rc = add_pl_iter( rctx->opts, rctx->set_iter, ref_obj, rctx->ids,
-                            r->start,           /* where the range starts on the reference */
-                            len,                /* the length of this range */
-                            NULL,               /* no spotgroup re-grouping (yet) */
-                            rctx->context_list
-                            );
-                    }
-                }
-            }
-            ReferenceObj_Release( ref_obj );
-        }
-        else
-        {
-            if ( GetRCState( rctx->rc ) == rcNotFound ) rctx->rc = 0;
-        }
-    }
-}
-
-
-static rc_t prepare_regions( const samdump_opts * const opts, const input_files * const ifs,
-                             PlacementSetIterator * const set_iter, Vector * const context_list )
-{
-    uint32_t db_idx;
-    on_region_ctx rctx;
-
-    rctx.rc = 0;
-    rctx.opts = opts;
-    rctx.set_iter = set_iter;
-    rctx.context_list = context_list;
-    /* we now loop through all input-databases... */
-    for ( db_idx = 0; db_idx < ifs->database_count && rctx.rc == 0; ++db_idx )
-    {
-        rctx.ids = VectorGet( &ifs->dbs, db_idx );
-        if ( rctx.ids != NULL )
-            BSTreeForEach( ( BSTree * ) &opts->regions, false, on_region, &rctx );
-    }
-    return rctx.rc;
-}
-
-
-static uint32_t calc_mate_flags( uint32_t flags )
-{
-    uint32_t res = ( flags & 0x1 ) |
-                   ( flags & 0x2 ) |
-                   ( ( flags & 0x8 ) >> 1 ) |
-                   ( ( flags & 0x4 ) << 1 ) |
-                   ( ( flags & 0x20 ) >> 1 ) |
-                   ( ( flags & 0x10 ) << 1 ) |
-                   ( ( flags & 0x40 ) ? 0x80 : 0x40 ) |
-                   ( flags & 0x700 );
-    return res;
-}
-
-
-static const char *equal_sign = "=";
-
-
-static rc_t print_slice( const char * source, uint32_t source_str_len, uint32_t *source_offset, 
-                         uint32_t *source_len_vector, uint32_t source_len_vector_len,
-                         uint32_t slice_nr )
-{
-    rc_t rc = 0;
-    if ( *source_offset > source_str_len || slice_nr >= source_len_vector_len )
-        rc = RC( rcExe, rcNoTarg, rcReading, rcParam, rcInvalid );
-    else
-    {
-        uint32_t len = source_len_vector[ slice_nr ];
-        if ( len > 0 )
-        {
-            const char * ptr = &source[ *source_offset ];
-            rc = KOutMsg( "%.*s\t", len, ptr );
-            *source_offset += len;
-        }
-        else
-            rc = KOutMsg( "*\t" );
-    }
-    return rc;
-}
-
-
-static rc_t print_qslice( const samdump_opts * const opts, bool reverse, const char * source, uint32_t source_str_len,
-                          uint32_t *source_offset, uint32_t *source_len_vector,
-                          uint32_t source_len_vector_len, uint32_t slice_nr )
-{
-    rc_t rc = 0;
-    if ( *source_offset > source_str_len || slice_nr >= source_len_vector_len )
-        rc = RC( rcExe, rcNoTarg, rcReading, rcParam, rcInvalid );
-    else
-    {
-        uint32_t len = source_len_vector[ slice_nr ];
-        if ( len > 0 )
-        {
-            const char * ptr = &source[ *source_offset ];
-            rc = dump_quality_33( opts, ptr, len, reverse ); /* sam-dump-opts.c */
-            if ( rc == 0 )
-            {
-                rc = KOutMsg( "\t" );
-                if ( rc == 0 )
-                    *source_offset += len;
-            }
-        }
-        else
-            rc = KOutMsg( "*\t" );
-    }
-    return rc;
-}
-
-
-static rc_t print_allel_name( const PlacementRecord * const rec, uint32_t ploidy_idx )
-{
-    rc_t rc = KOutMsg( "ALLELE_%li.%u\t", rec->id, ploidy_idx + 1 );
-    return rc;
-}
-
-static rc_t print_char_ptr( int64_t row_id, const VCursor * cursor, uint32_t col_idx )
-{
-    const char *ptr;
-    size_t len;
-    rc_t rc = read_char_ptr_and_size( row_id, cursor, col_idx, &ptr, &len );
-    if ( rc == 0 )
-    {
-        if ( len > 0 )
-            rc = KOutMsg( "%.*s\t", len, ptr );
-        else
-            rc = KOutMsg( "*\t" );
-    }
-    return rc;
-}
-
-
-static rc_t modify_and_print_cigar( int64_t row_id, const VCursor * cursor, uint32_t col_idx )
-{
-    cg_cigar_input input;
-    rc_t rc = read_char_ptr_and_size( row_id, cursor, col_idx, &input.cigar, &input.cigar_len );
-    if ( rc == 0 )
-    {
-        if ( input.cigar_len > 0 )
-        {
-            cg_cigar_output output;
-
-            input.orientation = false;
-            input.seq_req_id = 0;
-            input.edit_dist_available = false;
-            input.edit_dist = 0;
-            rc = make_cg_cigar( &input, &output ); /* cg_tools.c */
-            if ( rc == 0 )
-                rc = KOutMsg( "%.*s\t", output.cigar_len, output.cigar );
-        }
-        else
-            rc = KOutMsg( "*\t" );
-    }
-    return rc;
-}
-
-
-static rc_t print_evidence_alignment( const samdump_opts * const opts, const PlacementRecord * const rec,
-                                      const align_table_context * const atx, int64_t align_id, uint32_t ploidy_idx )
-{
-    uint32_t ref_ploidy;
-    const VCursor * cursor = atx->eval.cursor;
-    rc_t rc = read_uint32_t( align_id, cursor, atx->ref_ploidy_idx, &ref_ploidy, 0 );
-    if ( rc == 0 && ( ref_ploidy == ploidy_idx ) )
-    {
-        uint32_t sam_flags = 0x40;
-        INSDC_coord_zero ref_pos;
-        size_t ref_pos_len;
-
-        /* SAM-FIELD: QNAME     constructed from allel-id/sub-id */
-        rc = KOutMsg( "%li\t", align_id );
-
-        if ( rc == 0 )
-            rc = read_INSDC_coord_zero( align_id, cursor, atx->ref_pos_idx, &ref_pos, &ref_pos_len );
-
-        /* SAM-FIELD: FLAG      SRA-column: SAM_FLAGS ( uint32 ) */
-        /* SAM-FIELD: RNAME     SRA-column: ALLEL-NAME.ploidy_idx */
-        /* SAM-FIELD: POS       SRA-column: REF_POS + 1 */
-        /* SAM-FIELD: MAPQ      SRA-column: MAPQ */
-        if ( rc == 0 )
-            rc = KOutMsg( "%u\tALLELE_%li.%u\t%i\t%d\t", sam_flags, rec->id, ploidy_idx, ref_pos + 1, rec->mapq );
-
-        /* SAM-FIELD: CIGAR     SRA-column: CIGAR_SHORT / with special treatment */
-        if ( rc == 0 )
-            rc = modify_and_print_cigar( align_id, cursor, atx->eval.cigar_idx );
-
-
-        /* SAM-FIELD: RNEXT     SRA-column: MATE_REF_NAME '*' no mates! */
-        /* SAM-FIELD: PNEXT     SRA-column: MATE_REF_POS + 1 '0' no mates */
-        /* SAM-FIELD: TLEN      SRA-column: TEMPLATE_LEN '0' not in table */
-        if ( rc == 0 )
-            rc = KOutMsg( "*\t0\t0\t" );
-
-        /* SAM-FIELD: SEQ       SRA-column: READ  */
-        if ( rc == 0 )
-            rc = print_char_ptr( align_id, cursor, atx->eval.read_idx );
-
-        /* SAM-FIELD: QUAL      SRA-column: SAM_QUALITY */
-        if ( rc == 0 )
-        {
-            const char * quality;
-            size_t quality_str_len;
-
-            rc = read_char_ptr_and_size( rec->id, cursor, atx->eval.sam_quality_idx, &quality, &quality_str_len );
-            if ( rc == 0 )
-                rc = dump_quality_33( opts, quality, quality_str_len, false );
-        }
-
-        /* OPT SAM-FIELD: XI     SRA-column: ALIGN_ID */
-        if ( rc == 0 && opts->print_alignment_id_in_column_xi )
-            rc = KOutMsg( "\tXI:i:%u", align_id );
-
-        if ( rc == 0 )
-            rc = KOutMsg( "\n" );
-
-    }
-    return rc;
-}
-
-
-static rc_t print_evidence_alignments( const samdump_opts * const opts, const PlacementRecord * const rec,
-                                       const align_table_context * const atx, uint32_t ploidy_idx )
-{
-    int64_t *ev_al_ids;
-    uint32_t ev_al_ids_count;
-    rc_t rc = read_int64_t_ptr( rec->id, atx->cmn.cursor, atx->ev_alignments_idx, &ev_al_ids, &ev_al_ids_count );
-    if ( rc == 0 && ev_al_ids_count > 0 )
-    {
-        uint32_t idx;
-        for ( idx = 0; idx < ev_al_ids_count && rc == 0; ++idx )
-        {
-            rc = print_evidence_alignment( opts, rec, atx, ev_al_ids[ idx ], ploidy_idx );
-        }
-    }
-    return rc;
-}
-
-
-/* print minimal one alignment from the EVIDENCE-INTERVAL / EVIDENCE-ALIGNMENT - table(s) */
-static rc_t print_alignment_sam_ev( const samdump_opts * const opts, const char * ref_name,
-                                    INSDC_coord_zero pos,
-                                    const PlacementRecord * const rec, const align_table_context * const atx,
-                                    uint64_t * const rows_so_far )
-{
-    uint32_t ploidy;
-    const VCursor * cursor = atx->cmn.cursor;
-    rc_t rc = read_uint32_t( rec->id, cursor, atx->ploidy_idx, &ploidy, 0 );
-    if ( rc == 0 && ploidy > 0 )
-    {
-        uint32_t ploidy_idx, cigar_len_vector_len, read_len_vector_len, edit_dist_vector_len;
-        size_t cigar_str_len=0, read_str_len, quality_str_len;
-        uint32_t *cigar_len_vector;
-        uint32_t *read_len_vector;
-        uint32_t *edit_dist_vector;
-        uint32_t cigar_offset = 0;
-        uint32_t read_offset = 0;
-        uint32_t quality_offset = 0;
-        uint32_t sam_flags = 0x40;
-        const char * cigar = NULL;
-        const char * read;
-        const char * quality;
-
-        rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.cigar_idx, &cigar, &cigar_str_len );
-        if ( rc == 0 )
-            rc = read_uint32_t_ptr( rec->id, cursor, atx->cmn.cigar_len_idx, &cigar_len_vector, &cigar_len_vector_len );
-        if ( rc == 0 )
-            rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.read_idx, &read, &read_str_len );
-        if ( rc == 0 )
-            rc = read_uint32_t_ptr( rec->id, cursor, atx->cmn.read_len_idx, &read_len_vector, &read_len_vector_len );
-        if ( rc == 0 )
-            rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.sam_quality_idx, &quality, &quality_str_len );
-        if ( rc == 0 )
-            rc = read_uint32_t_ptr( rec->id, cursor, atx->cmn.edit_dist_idx, &edit_dist_vector, &edit_dist_vector_len );
-
-        for ( ploidy_idx = 0; ploidy_idx < ploidy && rc == 0; ++ploidy_idx )
-        {
-            /* SAM-FIELD: QNAME     SRA-column: eventually prefixed row-id into EVIDENCE_INTERVAL - table */
-            rc = print_allel_name( rec, ploidy_idx );
-
-            /* SAM-FIELD: FLAG      SRA-column: SAM_FLAGS ( uint32 ) */
-            /* SAM-FIELD: RNAME     SRA-column: REF_NAME / REF_SEQ_ID ( char * ) */
-            /* SAM-FIELD: POS       SRA-column: REF_POS + 1 */
-            /* SAM-FIELD: MAPQ      SRA-column: MAPQ */
-            if ( rc == 0 )
-                rc = KOutMsg( "%u\t%s\t%u\t%d\t", sam_flags, ref_name, pos + 1, rec->mapq );
-
-            /* SAM-FIELD: CIGAR     SRA-column: CIGAR_SHORT / CIGAR_LONG sliced!!! */
-            if ( rc == 0 )
-                rc = print_slice( cigar, cigar_str_len, &cigar_offset, cigar_len_vector, cigar_len_vector_len, ploidy_idx );
-
-            /* SAM-FIELD: RNEXT     SRA-column: MATE_REF_NAME ( !!! row_len can be zero !!! ) */
-            /* SAM-FIELD: PNEXT     SRA-column: MATE_REF_POS + 1 ( !!! row_len can be zero !!! ) */
-            /* SAM-FIELD: TLEN      SRA-column: TEMPLATE_LEN ( !!! row_len can be zero !!! ) */
-            if ( rc == 0 )
-                rc = KOutMsg( "*\t%u\t%d\t", 0, 0 );
-
-            /* SAM-FIELD: SEQ       SRA-column: READ sliced!!! */
-            if ( rc == 0 )
-                rc = print_slice( read, read_str_len, &read_offset, read_len_vector, read_len_vector_len, ploidy_idx );
-
-            /* SAM-FIELD: QUAL      SRA-column: SAM_QUALITY sliced!!! */
-            if ( rc == 0 )
-                rc = print_qslice( opts, false, quality, quality_str_len, &quality_offset, read_len_vector, read_len_vector_len, ploidy_idx );
-
-            /* OPT SAM-FIELD: XI     SRA-column: ALIGN_ID */
-            if ( rc == 0 && opts->print_alignment_id_in_column_xi )
-                rc = KOutMsg( "\tXI:i:%u", rec->id );
-
-            /* OPT SAM-FIELD: NM     SRA-column: EDIT_DISTANCE sliced!!! */
-            if ( rc == 0 )
-            {
-                if ( ploidy_idx < edit_dist_vector_len )
-                    rc = KOutMsg( "\tNM:i:%u", edit_dist_vector[ ploidy_idx ] );
-            }
-
-            if ( rc == 0 )
-                rc = KOutMsg( "\n" );
-
-            (*rows_so_far)++;
-
-            /* we do that here per ALLEL-READ, not at the end per ALLEL, because we have to test which alignments
-               fit the ploidy_idx */
-            if ( rc == 0 && opts->dump_cg_sam )
-                rc = print_evidence_alignments( opts, rec, atx, ploidy_idx + 1 );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t print_alignment_sam_ps( const samdump_opts * const opts, const char * ref_name,
-                                    INSDC_coord_zero pos, matecache * const mc,
-                                    const PlacementRecord * const rec, const align_table_context * const atx,
-                                    uint64_t * const rows_so_far )
-{
-    uint32_t sam_flags = 0;
-    INSDC_coord_zero mate_ref_pos = 0;
-    INSDC_coord_len tlen = 0;
-    int64_t mate_align_id = 0;
-    const char * mate_ref_name = ref_name;
-    size_t mate_ref_name_len = string_size( ref_name );
-    size_t mate_ref_pos_len = 0;
-    const VCursor * cursor = atx->cmn.cursor;
-    int64_t *seq_spot_id;
-    uint32_t seq_spot_id_len;
-
-    /* SAM-FIELD: NONE      SRA-column: MATE_ALIGN_ID ( int64 ) ... for cache lookup's */
-    rc_t rc = read_int64( rec->id, cursor, atx->mate_align_id_idx, &mate_align_id, 0 );
-
-    /* pre-read seq-spot-id, needed for unaligned cache and SAM-field QNAME */
-    if ( rc == 0 )
-        rc = read_int64_t_ptr( rec->id, cursor, atx->cmn.seq_spot_id_idx, &seq_spot_id, &seq_spot_id_len );
-
-    /* try to find the info about the mate in the CACHE... */
-    if ( rc == 0 )
-    {
-        if ( mate_align_id != 0 )
-        {
-            if ( opts->use_mate_cache && mc != NULL )
-            {
-                rc = matecache_lookup_same_ref( mc, atx->db_idx, mate_align_id, &mate_ref_pos, &sam_flags, &tlen );
-                if ( rc == 0 )
-                {
-                    const INSDC_read_filter * read_filter;
-                    uint32_t read_filter_len;
-
-                    /* cache entry-found! (on the same reference) -> that means we have now mate_ref_pos, flags and tlen */
-                    rc = matecache_remove_same_ref( mc, atx->db_idx, mate_align_id );
-                    mate_ref_name = equal_sign;
-                    mate_ref_name_len = 1;
-                    mate_ref_pos_len = 1;
-
-                    /* read the read-filter column and adjust the sam-flags value to reflect the presense
-                       of the flag SRA_READ_FILTER_REJECT, if it is there switch 0x200 on, of not switch 0x200 off */
-                    rc = read_INSDC_read_filter_ptr( rec->id, cursor, atx->cmn.read_filter_idx, &read_filter, &read_filter_len );
-                    if ( rc == 0 && read_filter_len > 0 )
-                    {
-                        if ( ( read_filter[ 0 ] & READ_FILTER_REJECT ) == READ_FILTER_REJECT )
-                            sam_flags |= 0x200;
-                        else
-                            sam_flags &= ~0x200;
-
-                        if ( ( read_filter[ 0 ] & READ_FILTER_CRITERIA ) == READ_FILTER_CRITERIA )
-                            sam_flags |= 0x400;
-                        else
-                            sam_flags &= ~0x400;
-                    }
-                }
-            }
-            else
-            {
-                rc = RC( rcApp, rcNoTarg, rcAccessing, rcItem, rcNotFound );
-            }
-        }
-
-        if ( ( mate_align_id != 0 && GetRCState( rc ) == rcNotFound )||( mate_align_id == 0 ) )
-        {
-            /* no cache entry-found OR do not use mate-cache
-               ---> that means we have to read it from the table... */
-
-            rc = read_char_ptr_and_size( rec->id, cursor, atx->mate_ref_name_idx, &mate_ref_name, &mate_ref_name_len );
-            if ( rc == 0 )
-                rc = read_INSDC_coord_zero( rec->id, cursor, atx->mate_ref_pos_idx, &mate_ref_pos, &mate_ref_pos_len );
-            if ( rc == 0 )
-                rc = read_INSDC_coord_len( rec->id, cursor, atx->tlen_idx, &tlen );
-            if ( rc == 0 )
-                rc = read_uint32_t( rec->id, cursor, atx->sam_flags_idx, &sam_flags, 0 );
-
-            if ( rc == 0 )
-            {
-                if ( mate_align_id != 0 )
-                {
-                    /* now that we have the data, store it in sam-ref-cache it the mate is on the same ref. */
-                    if ( mate_ref_name_len > 0 )
-                    {
-                        int cmp = string_cmp( mate_ref_name, mate_ref_name_len, ref_name, string_size( ref_name ), mate_ref_name_len );
-                        if ( cmp == 0 )
-                        {
-                            if ( opts->use_mate_cache )
-                            {
-                                uint32_t mate_flags = calc_mate_flags( sam_flags );
-                                rc = matecache_insert_same_ref( mc, atx->db_idx, rec->id, pos, mate_flags, -tlen );
-                            }
-                            mate_ref_name = equal_sign;
-                            mate_ref_name_len = 1;
-                        }
-                    }
-                }
-                else if ( opts->print_half_unaligned_reads )
-                {
-                    if ( opts->use_mate_cache )
-                    {
-                        rc = matecache_insert_unaligned( mc, atx->db_idx, rec->id, pos, atx->ref_idx, *seq_spot_id );
-                    }
-                }
-            }
-        }
-    }
-
-    if ( rc == 0 && opts->use_matepair_filter )
-    {
-        if ( !filter_by_matepair_dist( opts, tlen ) )
-            return 0;
-    }
-
-    (*rows_so_far)++;
-
-    /* SAM-FIELD: QNAME     SRA-column: SEQ_SPOT_ID ( int64 ) */
-    if ( rc == 0 )
-    {
-        if ( seq_spot_id_len > 0 )
-        {
-            if ( opts->print_spot_group_in_name | opts->print_cg_names )
-            {
-                const char * spot_group;
-                size_t spot_group_len;
-                rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.seq_spot_group_idx, &spot_group, &spot_group_len );
-                if ( rc == 0 )
-                    rc = dump_name( opts, *seq_spot_id, spot_group, spot_group_len );
-            }
-            else
-                rc = dump_name( opts, *seq_spot_id, NULL, 0 );
-        }
-        else
-            rc = KOutMsg( "*" );
-    }
-
-    if ( rc == 0 )
-        rc = KOutMsg( "\t" );
-
-
-    /* massage the sam-flag if we are not dumping unaligned reads... */
-    if ( !opts->dump_unaligned_reads    /** not going to dump unaligned **/
-         && ( sam_flags & 0x1 )         /** but we have sequenced multiple fragments **/
-         && ( sam_flags & 0x8 ) )       /** and not all of them align **/
-    {
-        /*** remove flags talking about multiple reads **/
-        /* turn off 0x001 0x008 0x040 0x080 */
-        sam_flags &= ~0xC9;
-    }
-
-    /* SAM-FIELD: FLAG      SRA-column: SAM_FLAGS ( uint32 ) */
-    /* SAM-FIELD: RNAME     SRA-column: REF_NAME / REF_SEQ_ID ( char * ) */
-    /* SAM-FIELD: POS       SRA-column: REF_POS + 1 */
-    /* SAM-FIELD: MAPQ      SRA-column: MAPQ */
-    if ( rc == 0 )
-        rc = KOutMsg( "%u\t%s\t%u\t%d\t", sam_flags, ref_name, pos + 1, rec->mapq );
-
-    /* SAM-FIELD: CIGAR     SRA-column: CIGAR_SHORT / CIGAR_LONG */
-    if ( rc == 0 )
-        rc = print_char_ptr( rec->id, cursor, atx->cmn.cigar_idx );
-
-    /* SAM-FIELD: RNEXT     SRA-column: MATE_REF_NAME ( !!! row_len can be zero !!! ) */
-    /* SAM-FIELD: PNEXT     SRA-column: MATE_REF_POS + 1 ( !!! row_len can be zero !!! ) */
-    /* SAM-FIELD: TLEN      SRA-column: TEMPLATE_LEN ( !!! row_len can be zero !!! ) */
-    if ( rc == 0 )
-    {
-        if ( mate_ref_name_len > 0 )
-        {
-            rc = KOutMsg( "%.*s\t%u\t%d\t", mate_ref_name_len, mate_ref_name, mate_ref_pos + 1, tlen );
-        }
-        else
-        {
-            if ( mate_ref_pos_len == 0 )
-                rc = KOutMsg( "*\t0\t%d\t", tlen );
-            else
-                rc = KOutMsg( "*\t%u\t%d\t", mate_ref_pos + 1, tlen );
-        }
-    }
-
-    /* SAM-FIELD: SEQ       SRA-column: READ */
-    if ( rc == 0 )
-        rc = print_char_ptr( rec->id, cursor, atx->cmn.read_idx );
-
-    /* SAM-FIELD: QUAL      SRA-column: SAM_QUALITY */
-    if ( rc == 0 )
-    {
-        const char * quality;
-        size_t quality_len;
-        rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.sam_quality_idx, &quality, &quality_len );
-        if ( rc == 0 )
-        {
-            if ( quality_len > 0 )
-                rc = dump_quality_33( opts, quality, quality_len, false );
-            else
-                rc = KOutMsg( "*" );
-        }
-    }
-
-    /* OPT SAM-FIELD: RG     SRA-column: SPOT_GROUP */
-    if ( rc == 0 )
-    {
-        if ( atx->cmn.seq_spot_group_idx != COL_NOT_AVAILABLE )
-        {
-            const char * spot_grp;
-            size_t spot_grp_len;
-            rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.seq_spot_group_idx, &spot_grp, &spot_grp_len );
-            if ( rc == 0 && spot_grp_len > 0 )
-                rc = KOutMsg( "\tRG:Z:%.*s", spot_grp_len, spot_grp );
-        }
-    }
-
-    /* OPT SAM-FIELD: XI     SRA-column: ALIGN_ID */
-    if ( rc == 0 && opts->print_alignment_id_in_column_xi )
-        rc = KOutMsg( "\tXI:i:%u", rec->id );
-
-    /* OPT SAM-FIELD: NM     SRA-column: EDIT_DISTANCE */
-    if ( rc == 0 )
-    {
-        uint32_t *edit_dist;
-        uint32_t edit_dist_len;
-        rc = read_uint32_t_ptr( rec->id, cursor, atx->cmn.edit_dist_idx, &edit_dist, &edit_dist_len );
-        if ( rc == 0 && edit_dist_len > 0 )
-            rc = KOutMsg( "\tNM:i:%u", *edit_dist );
-    }
-
-    if ( rc == 0 )
-        rc = KOutMsg( "\n" );
-    return rc;
-}
-
-
-static rc_t print_alignment_fastx( const samdump_opts * const opts, const char * ref_name,
-                                   INSDC_coord_zero pos, matecache * const mc,
-                                   const PlacementRecord * const rec, const align_table_context * const atx,
-                                   uint64_t * const rows_so_far )
-{
-    bool orientation;
-    const VCursor *cursor = atx->cmn.cursor;
-    int64_t mate_align_id;
-    int64_t * seq_spot_id;
-    uint32_t seq_spot_id_len;
-
-    rc_t rc = read_int64_t_ptr( rec->id, cursor, atx->cmn.seq_spot_id_idx, &seq_spot_id, &seq_spot_id_len );
-
-    /* this is here to detect if the mate is aligned, if NOT, we want to put it into the unaligned-cache! */
-    if ( rc == 0 && opts->print_half_unaligned_reads )
-    {
-        rc = read_int64( rec->id, cursor, atx->mate_align_id_idx, &mate_align_id, 0 );
-        if ( rc == 0 && mate_align_id == 0 && mc != NULL && opts->use_mate_cache )
-        {
-            rc = matecache_insert_unaligned( mc, atx->db_idx, rec->id, pos, atx->ref_idx, *seq_spot_id );
-        }
-    }
-
-    ( *rows_so_far )++;
-
-    if ( opts->output_format == of_fastq )
-        rc = KOutMsg( "@" );
-    else
-        rc = KOutMsg( ">" );
-
-    /* SAM-FIELD: QNAME     1.row: name */
-    if ( rc == 0 )
-    {
-        if ( seq_spot_id_len > 0 )
-        {
-            if ( opts->print_spot_group_in_name )
-            {
-                const char * spot_grp;
-                size_t spot_grp_len;
-                rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.seq_spot_group_idx, &spot_grp, &spot_grp_len );
-                if ( rc == 0 )
-                    rc = dump_name( opts, *seq_spot_id, spot_grp, spot_grp_len );
-            }
-            else
-                rc = dump_name( opts, *seq_spot_id, NULL, 0 );
-        }
-        else
-            rc = KOutMsg( "*" );
-
-        if ( rc == 0 )
-        {
-            uint32_t * seq_read_id;
-            uint32_t seq_read_id_len;
-            rc = read_uint32_t_ptr( rec->id, cursor, atx->cmn.seq_read_id_idx, &seq_read_id, &seq_read_id_len );
-            if ( rc == 0 && seq_read_id_len > 0 )
-                rc = KOutMsg( "/%u", *seq_read_id );
-        }
-    }
-
-    /* SRA-column: REF_ORIENTATION ( bool ) ... needed for quality */
-    if ( rc == 0 )
-        rc = read_bool( rec->id, cursor, atx->cmn.ref_orientation_idx, &orientation, false );
-
-    /* source of the alignment: primary/secondary/evidence */
-    if ( rc == 0 )
-    {
-        switch( atx->align_table_type )
-        {
-        case att_primary    :   rc = KOutMsg( " primary" ); break;
-        case att_secondary  :   rc = KOutMsg( " secondary" ); break;
-        case att_evidence   :   rc = KOutMsg( " evidence" ); break;
-        }
-    }
-
-    /* against what reference aligned, at what position, with what mapping-quality */
-    if ( rc == 0 )
-        rc = KOutMsg( " ref=%s pos=%u mapq=%i\n", ref_name, pos + 1, rec->mapq );
-
-    /* READ at a new line */
-    if ( rc == 0 )
-    {
-        const char * read;
-        size_t read_size;
-        rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.raw_read_idx, &read, &read_size );
-        if ( rc == 0 )
-        {
-            if ( read_size > 0 )
-                rc = KOutMsg( "%.*s\n", read_size, read );
-            else
-                rc = KOutMsg( "*\n" );
-        }
-    }
-
-    /* QUALITY on a new line if in fastq-mode */
-    if ( rc == 0 && opts->output_format == of_fastq )
-    {
-        rc = KOutMsg( "+\n" );
-        if ( rc == 0 )
-        {
-            const char * quality;
-            size_t quality_size;
-            rc = read_char_ptr_and_size( rec->id, cursor, atx->cmn.sam_quality_idx, &quality, &quality_size );
-            if ( rc == 0 )
-            {
-                if ( quality_size > 0 )
-                    rc = dump_quality_33( opts, quality, quality_size, false );
-                else
-                    rc = KOutMsg( "*" );
-            }
-            if ( rc == 0 )
-                rc = KOutMsg( "\n" );
-        }
-    }
-
-    return rc;
-}
-
-
-/* print one record of alignment-information in SAM-format */
-static rc_t walk_position( const samdump_opts * const opts, PlacementSetIterator * const set_iter,
-                           const char * ref_name, INSDC_coord_zero pos,
-                           matecache * const mc, uint64_t * const rows_so_far )
-{
-    rc_t rc = 0;
-    while ( rc == 0 && !test_limit_reached( opts, *rows_so_far ) )
-    {
-        rc = Quitting ();
-        if ( rc == 0 )
-        {
-            const PlacementRecord *rec;
-            rc = PlacementSetIteratorNextRecordAt( set_iter, pos, &rec );
-            if ( rc != 0 )
-            {
-                if ( GetRCState( rc ) != rcDone )
-                {
-                    LOGERR( klogInt, rc, "PlacementSetIteratorNextRecordAt() failed" );
-                }
-            }
-            else
-            {
-                align_table_context * atx = PlacementRecord_get_ext_data_ptr( rec, placementRecordExtension0 );
-                if ( atx == NULL )
-                {
-                    rc = RC( rcExe, rcNoTarg, rcReading, rcParam, rcNull );
-                    LOGERR( klogInt, rc, "no placement-record-context available" );
-                }
-                else
-                {
-                    if ( opts->output_format == of_sam )
-                    {
-                        if ( atx->align_table_type == att_evidence )
-                            rc = print_alignment_sam_ev( opts, ref_name, pos, rec, atx, rows_so_far );
-                        else
-                            rc = print_alignment_sam_ps( opts, ref_name, pos, mc, rec, atx, rows_so_far );
-                    }
-                    else
-                        rc = print_alignment_fastx( opts, ref_name, pos, mc, rec, atx, rows_so_far );
-                }
-            }
-        }
-    }
-    if ( GetRCState( rc ) == rcDone ) rc = 0;
-    return rc;
-}
-
-
-static rc_t walk_window( const samdump_opts * const opts, PlacementSetIterator * const set_iter,
-                         const char * ref_name, matecache * const mc, uint64_t * const rows_so_far )
-{
-    rc_t rc = 0;
-    while ( rc == 0 && !test_limit_reached( opts, *rows_so_far ) )
-    {
-        rc = Quitting ();
-        if ( rc == 0 )
-        {
-            INSDC_coord_zero pos;
-            rc = PlacementSetIteratorNextAvailPos( set_iter, &pos, NULL );
-            if ( rc != 0 )
-            {
-                if ( GetRCState( rc ) != rcDone )
-                {
-                    LOGERR( klogInt, rc, "PlacementSetIteratorNextAvailPos() failed" );
-                }
-            }
-            else
-            {
-                rc = walk_position( opts, set_iter, ref_name, pos, mc, rows_so_far );
-            }
-        }
-    }
-    if ( GetRCState( rc ) == rcDone ) rc = 0;
-    return rc;
-}
-
-
-static rc_t walk_reference( const samdump_opts * const opts, PlacementSetIterator * const set_iter,
-                            struct ReferenceObj const * ref_obj, const char * ref_name,
-                            matecache * const mc, uint64_t * const rows_so_far )
-{
-    rc_t rc = 0;
-    while ( rc == 0 && !test_limit_reached( opts, *rows_so_far ) )
-    {
-        rc = Quitting ();
-        if ( rc == 0 )
-        {
-            INSDC_coord_zero first_pos;
-            INSDC_coord_len len;
-            rc = PlacementSetIteratorNextWindow( set_iter, &first_pos, &len );
-            if ( rc != 0 )
-            {
-                if ( GetRCState( rc ) != rcDone )
-                {
-                    LOGERR( klogInt, rc, "PlacementSetIteratorNextWindow() failed" );
-                }
-            }
-            else
-                rc = walk_window( opts, set_iter, ref_name, mc, rows_so_far );
-        }
-    }
-    if ( GetRCState( rc ) == rcDone ) rc = 0;
-
-    if ( rc == 0 && mc != NULL && opts->use_mate_cache )
-        rc = matecache_clear_same_ref( mc );
-
-    return rc;
-}
-
-
-static rc_t walk_placements( const samdump_opts * const opts, PlacementSetIterator * const set_iter,
-                             matecache * const mc, uint64_t * const rows_so_far )
-{
-    rc_t rc = 0;
-    while ( rc == 0 && !test_limit_reached( opts, *rows_so_far ) )
-    {
-        struct ReferenceObj const * ref_obj;
-
-        rc = PlacementSetIteratorNextReference( set_iter, NULL, NULL, &ref_obj );
-        if ( rc == 0 )
-        {
-            if ( ref_obj != NULL )
-            {
-                const char * ref_name = NULL;
-                if ( opts->use_seqid_as_refname )
-                    rc = ReferenceObj_SeqId( ref_obj, &ref_name );
-                else
-                    rc = ReferenceObj_Name( ref_obj, &ref_name );
-
-                if ( rc == 0 )
-                    rc = walk_reference( opts, set_iter, ref_obj, ref_name, mc, rows_so_far );
-                else
-                {
-                    if ( opts->use_seqid_as_refname )
-                    {
-                        (void)LOGERR( klogInt, rc, "ReferenceObj_SeqId() failed" );
-                    }
-                    else
-                    {
-                        (void)LOGERR( klogInt, rc, "ReferenceObj_Name() failed" );
-                    }
-                }
-            }
-        }
-        else if ( GetRCState( rc ) != rcDone )
-        {
-            (void)LOGERR( klogInt, rc, "ReferenceIteratorNextReference() failed" );
-        }
-    }
-
-    if ( GetRCState( rc ) == rcDone )
-        rc = 0;
-    return rc;
-}
-
-
-static void CC destroy_align_table_context( void *item, void *data )
-{
-    align_table_context * atx = item;
-    VCursorRelease( atx->cmn.cursor );
-    VCursorRelease( atx->eval.cursor );
-    free( atx );
-}
-
-
-static rc_t print_all_aligned_spots_of_this_reference( const samdump_opts * const opts, const input_database * const ids,
-                                                       matecache * const mc, const AlignMgr * const a_mgr,
-                                                       const ReferenceObj * const ref_obj, uint64_t * const rows_so_far )
-{
-    PlacementSetIterator * set_iter;
-    /* the we ask the alignment-manager to produce a placement-set-iterator... */
-    rc_t rc = AlignMgrMakePlacementSetIterator( a_mgr, &set_iter );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot create PlacementSetIterator" );
-    }
-    else
-    {
-        /* here we need a vector to passed along into the creation of the iterators */
-        Vector context_list;
-        INSDC_coord_len ref_len;
-
-        VectorInit ( &context_list, 0, 5 );
-
-        rc = ReferenceObj_SeqLength( ref_obj, &ref_len );
-        if ( rc == 0 )
-        {
-            rc = add_pl_iter( opts, set_iter, ref_obj, ids,
-                0,                  /* where it starts on the reference */
-                ref_len,            /* the whole length of this reference/chromosome */
-                NULL,               /* no spotgroup re-grouping (yet) */
-                &context_list
-                );
-            if ( rc == 0 )
-                rc = walk_placements( opts, set_iter, mc, rows_so_far );
-        }
-
-        /* walk the context_list to free the align_table_context records, close/free the cursors... */
-        VectorWhack ( &context_list, destroy_align_table_context, NULL );
-        PlacementSetIteratorRelease( set_iter );
-    }
-    return rc;
-}
-
-
-/*
-   the user did not specify regions, print all alignments from all input-files
-   this is strategy #1 to do this, create a ref_iter for every reference each
-    + ... less cursors will be open at the same time, more resource efficient
-    - ... if more than one input-file, the output will be sorted only within each reference
-*/
-static rc_t print_all_aligned_spots_0( const samdump_opts * const opts, const input_files * const ifs,
-                                       matecache * const mc, const AlignMgr * const a_mgr, uint64_t * const rows_so_far )
-{
-    rc_t rc = 0;
-    uint32_t db_idx;
-    /* we now loop through all input-databases... */
-    for ( db_idx = 0; db_idx < ifs->database_count && rc == 0; ++db_idx )
-    {
-        const input_database * ids = VectorGet( &ifs->dbs, db_idx );
-        if ( ids != NULL )
-        {
-            uint32_t refobj_count;
-            rc = ReferenceList_Count( ids->reflist, &refobj_count );
-            if ( rc == 0 && refobj_count > 0 )
-            {
-                uint32_t ref_idx;
-                for ( ref_idx = 0; ref_idx < refobj_count && rc == 0; ++ref_idx )
-                {
-                    const ReferenceObj * ref_obj;
-                    rc = ReferenceList_Get( ids->reflist, &ref_obj, ref_idx );
-                    if ( rc == 0 && ref_obj != NULL )
-                    {
-                        rc = print_all_aligned_spots_of_this_reference( opts, ids, mc, a_mgr, ref_obj, rows_so_far );
-                        ReferenceObj_Release( ref_obj );
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-/*
-   the user did not specify regions, print all alignments from all input-files
-   this is strategy #2 to do this, throw all iterators for all input-files and all there references
-   into one set_iter.
-    + ... if more than one input-file, everything will be sorted
-    - ... creates a large number of open cursors ( because of sub-cursors due to schema-functions )
-          this can result in not beeing able to perform the functions at all because of running out of resources
-    - ... a long delay at start up, before the 1st alignment is printed ( all the cursors have to be opened )
-*/
-static rc_t print_all_aligned_spots_1( const samdump_opts * const opts, const input_files * const ifs,
-                                       matecache * const mc, const AlignMgr * const a_mgr, uint64_t * const rows_so_far )
-{
-    PlacementSetIterator * set_iter;
-    /* the we ask the alignment-manager to produce a placement-set-iterator... */
-    rc_t rc = AlignMgrMakePlacementSetIterator( a_mgr, &set_iter );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot create PlacementSetIterator" );
-    }
-    else
-    {
-        /* here we need a vector to passed along into the creation of the iterators */
-        Vector context_list;
-        VectorInit ( &context_list, 0, 5 );
-
-        rc = prepare_whole_files( opts, ifs, set_iter, &context_list );
-
-        if ( rc == 0 )
-            rc = walk_placements( opts, set_iter, mc, rows_so_far );
-
-        /* walk the context_list to free the align_table_context records, close/free the cursors... */
-        VectorWhack ( &context_list, destroy_align_table_context, NULL );
-        PlacementSetIteratorRelease( set_iter );
-    }
-    return rc;
-}
-
-
-/*
-   the user has specified certain regions on the references,
-   print only alignments, that start in these regions
-*/
-static rc_t print_selected_aligned_spots( const samdump_opts * const opts, const input_files * const ifs,
-                                          matecache * const mc, const AlignMgr * const a_mgr, uint64_t * const rows_so_far )
-{
-    PlacementSetIterator * set_iter;
-    /* the we ask the alignment-manager to produce a placement-set-iterator... */
-    rc_t rc = AlignMgrMakePlacementSetIterator( a_mgr, &set_iter );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot create PlacementSetIterator" );
-    }
-    else
-    {
-        /* here we need a vector to passed along into the creation of the iterators */
-        Vector context_list;
-        VectorInit ( &context_list, 0, 5 );
-
-        rc = prepare_regions( opts, ifs, set_iter, &context_list );
-
-        if ( rc == 0 )
-            rc = walk_placements( opts, set_iter, mc, rows_so_far );
-
-        /* walk the context_list to free the align_table_context records, close/free the cursors... */
-        VectorWhack ( &context_list, destroy_align_table_context, NULL );
-
-        PlacementSetIteratorRelease( set_iter );
-    }
-    return rc;
-}
-
-
-/*
-   this is called from sam-dump3.c, it prepares the iterators and then walks them
-   ---> only entry into this module <--- 
-*/
-rc_t print_aligned_spots( const samdump_opts * const opts, const input_files * const ifs,
-                          matecache * const mc, uint64_t * const rows_so_far )
-{
-    const AlignMgr * a_mgr;
-    /* first we make an alignment-manager */
-    rc_t rc = AlignMgrMakeRead( &a_mgr );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot create alignment-manager" );
-    }
-    else
-    {
-        if ( opts->region_count == 0 )
-        {
-            /* the user did not specify regions to be printed ==> print all alignments */
-            switch( opts->dump_mode )
-            {
-                case dm_one_ref_at_a_time : rc = print_all_aligned_spots_0( opts, ifs, mc, a_mgr, rows_so_far ); break;
-                case dm_prepare_all_refs  : rc = print_all_aligned_spots_1( opts, ifs, mc, a_mgr, rows_so_far ); break;
-            }
-        }
-        else
-        {
-            /* the user did specify regions to be printed ==> print only the alignments in these regions */
-            rc = print_selected_aligned_spots( opts, ifs, mc, a_mgr, rows_so_far );
-        }
-        AlignMgrRelease( a_mgr );
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/sam-aligned.h b/tools/sra-pileup/sam-aligned.h
deleted file mode 100644
index b8a4260..0000000
--- a/tools/sra-pileup/sam-aligned.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_sam_aligned_
-#define _h_sam_aligned_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include "sam-dump-opts.h"
-#include "inputfiles.h"
-#include "matecache.h"
-
-#define COL_READ "(INSDC:dna:text)READ"
-
-rc_t print_aligned_spots( const samdump_opts * const opts, const input_files * const ifs,
-                          matecache * const mc, uint64_t * const rows_so_far );
-
-#endif
\ No newline at end of file
diff --git a/tools/sra-pileup/sam-dump-opts.c b/tools/sra-pileup/sam-dump-opts.c
deleted file mode 100644
index 6a069c1..0000000
--- a/tools/sra-pileup/sam-dump-opts.c
+++ /dev/null
@@ -1,1493 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-
-#include "sam-dump-opts.h"
-#include <align/quality-quantizer.h>
-#include <sysalloc.h>
-
-#define CURSOR_CACHE_SIZE 256*1024*1024
-
-/* =========================================================================================== */
-
-
-static int cmp_pchar( const char * a, const char * b )
-{
-    int res = 0;
-    if ( ( a != NULL )&&( b != NULL ) )
-    {
-        size_t len_a = string_size( a );
-        size_t len_b = string_size( b );
-        res = string_cmp ( a, len_a, b, len_b, ( len_a < len_b ) ? len_b : len_a );
-    }
-    return res;
-}
-
-
-/* =========================================================================================== */
-
-
-static range * make_range( const uint64_t start, const uint64_t end )
-{
-    range *res = calloc( sizeof *res, 1 );
-    if ( res != NULL )
-    {
-        res->start = start;
-        res->end = end;
-    }
-    return res;
-}
-
-
-static int cmp_range( const range * a, const range * b )
-{
-
-    int res = ( a->start - b->start );
-    if ( res == 0 )
-        res = ( a->end - b->end );
-    return res;
-}
-
-
-static bool range_overlapp( const range * a, const range * b )
-{
-    return ( !( ( b->end < a->start ) || ( b->start > a->end ) ) );
-}
-
-
-/* =========================================================================================== */
-
-
-static reference_region * make_reference_region( const char *name )
-{
-    reference_region *res = calloc( sizeof *res, 1 );
-    if ( res != NULL )
-    {
-        res->name = string_dup_measure ( name, NULL );
-        if ( res->name == NULL )
-        {
-            free( res );
-            res = NULL;
-        }
-        else
-            VectorInit ( &res->ranges, 0, 5 );
-    }
-    return res;
-}
-
-
-static int CC cmp_range_wrapper( const void *item, const void *n )
-{   return cmp_range( item, n ); }
-
-
-static rc_t add_ref_region_range( reference_region * self, const uint64_t start, const uint64_t end )
-{
-    rc_t rc = 0;
-    range *r = make_range( start, end );
-    if ( r == NULL )
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        rc = VectorInsert ( &self->ranges, r, NULL, cmp_range_wrapper );
-        if ( rc != 0 )
-            free( r );
-    }
-    return rc;
-}
-
-
-#define RR_NAME  1
-#define RR_START 2
-#define RR_END   3
-
-
-static void put_c( char *s, size_t size, size_t *dst, char c )
-{
-    if ( *dst < ( size - 1 ) )
-        s[ *dst ] = c;
-    (*dst)++;
-}
-
-static void finish_txt( char *s, size_t size, size_t *dst )
-{
-    if ( *dst > size )
-        s[ size - 1 ] = 0;
-    else
-        s[ *dst ] = 0;
-    *dst = 0;
-}
-
-static uint64_t finish_num( char *s, size_t size, size_t *dst )
-{
-    uint64_t res = 0;
-    char *endp;
-    finish_txt( s, size, dst );
-    res = strtou64( s, &endp, 10 );
-    return res;
-}
-
-
-/* s = refname:1000-2000 */
-static void parse_definition( const char *s, char * name, size_t len,
-                              uint64_t *start, uint64_t *end )
-{
-    size_t n = string_size( s );
-
-    *start = 0;
-    *end   = 0;
-    name[ 0 ] = 0;
-    if ( n > 0 )
-    {
-        size_t i, st, dst = 0;
-        char tmp[ 32 ];
-        st = RR_NAME;
-        for ( i = 0; i < n; ++i )
-        {
-            char c = s[ i ];
-            switch( st )
-            {
-                case RR_NAME  : if ( c == ':' )
-                                {
-                                    finish_txt( name, len, &dst );
-                                    st = RR_START;
-                                }
-                                else
-                                {
-                                    put_c( name, len, &dst, c );
-                                }
-                                break;
-
-                case RR_START : if ( c == '-' )
-                                {
-                                    *start = finish_num( tmp, sizeof tmp, &dst );
-                                    st = RR_END;
-                                }
-                                else if ( ( c >= '0' )&&( c <= '9' ) )
-                                {
-                                    put_c( tmp, sizeof tmp, &dst, c );
-                                }
-                                break;
-
-                case RR_END   : if ( ( c >= '0' )&&( c <= '9' ) )
-                                {
-                                    put_c( tmp, sizeof tmp, &dst, c );
-                                }
-                                break;
-            }
-        }
-        switch( st )
-        {
-            case RR_NAME  : finish_txt( name, len, &dst );
-                            break;
-
-            case RR_START : *start = finish_num( tmp, sizeof tmp, &dst );
-                            break;
-
-            case RR_END   : *end = finish_num( tmp, sizeof tmp, &dst );
-                            break;
-        }
-    }
-}
-
-
-static void CC release_range_wrapper( void * item, void * data )
-{
-    free( item );
-}
-
-
-static void free_reference_region( reference_region * self )
-{
-    free( (void*)self->name );
-    VectorWhack ( &self->ranges, release_range_wrapper, NULL );
-    free( self );
-}
-
-
-static void check_ref_region_ranges( reference_region * self )
-{
-    uint32_t n = VectorLength( &self->ranges );
-    uint32_t i = 0;
-    range *a = NULL;
-    while ( i < n )
-    {
-        range *b = VectorGet ( &self->ranges, i );
-        bool remove = false;
-        if ( a != NULL )
-        {
-            remove = range_overlapp( a, b );
-            if ( remove )
-            {
-                range *r;
-                a->end = b->end;
-                VectorRemove ( &self->ranges, i, (void**)&r );
-                free( r );
-                n--;
-            }
-        }
-        if ( !remove )
-        {
-            a = b;
-            ++i;
-        }
-    }
-}
-
-
-/* =========================================================================================== */
-
-
-static int CC reference_vs_pchar_wrapper( const void *item, const BSTNode *n )
-{
-    const reference_region * r = ( const reference_region * )n;
-    return cmp_pchar( (const char *)item, r->name );
-}
-
-static reference_region * find_reference_region( BSTree * regions, const char * name )
-{
-    return ( reference_region * ) BSTreeFind ( regions, name, reference_vs_pchar_wrapper );
-}
-
-
-typedef struct frrl
-{
-    const char * name;
-    size_t len;
-} frrl;
-
-
-static int cmp_pchar_vs_len( const char * a, const char * b, size_t len_b )
-{
-    int res = 0;
-    if ( ( a != NULL )&&( b != NULL ) )
-    {
-        size_t len_a = string_size( a );
-        res = string_cmp ( a, len_a, b, len_b, ( len_a < len_b ) ? len_b : len_a );
-    }
-    return res;
-}
-
-static int CC reference_vs_frr_wrapper( const void *item, const BSTNode *n )
-{
-    const reference_region * r = ( const reference_region * )n;
-    const frrl * ctx = item;
-    return cmp_pchar_vs_len( r->name, ctx->name, ctx->len );
-}
-
-static reference_region * find_reference_region_len( BSTree * regions, const char * name, size_t len )
-{
-    frrl ctx;
-    ctx.name = name;
-    ctx.len  = len;
-    return ( reference_region * ) BSTreeFind ( regions, &ctx, reference_vs_frr_wrapper );
-}
-
-
-static int CC ref_vs_ref_wrapper( const BSTNode *item, const BSTNode *n )
-{
-   const reference_region * a = ( const reference_region * )item;
-   const reference_region * b = ( const reference_region * )n;
-   return cmp_pchar( a->name, b->name );
-}
-
-static rc_t add_refrange( BSTree * regions, const char * name, const uint64_t start, const uint64_t end )
-{
-    rc_t rc;
-
-    reference_region * r = find_reference_region( regions, name );
-    if ( r == NULL )
-    {
-        r = make_reference_region( name );
-        if ( r == NULL )
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        else
-            rc = add_ref_region_range( r, start, end );
-        if ( rc == 0 )
-            rc = BSTreeInsert ( regions, (BSTNode *)r, ref_vs_ref_wrapper );
-        if ( rc != 0 )
-            free_reference_region( r );
-    }
-    else
-    {
-        rc = add_ref_region_range( r, start, end );
-    }
-    return rc;
-}
-
-
-static rc_t parse_and_add_region( BSTree * regions, const char * s )
-{
-    rc_t rc = 0;
-    uint64_t start, end;
-    char name[ 64 ];
-    parse_definition( s, name, sizeof name, &start, &end );
-    if ( name[ 0 ] == 0 )
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-    else
-    {
-        uint64_t start_0based = ( start > 0 ) ? start - 1 : 0;
-        uint64_t end_0based = ( end > 0 ) ? end - 1 : 0;
-        if ( end_0based != 0 && end_0based < start_0based )
-        {
-            uint64_t temp = end_0based;
-            end_0based = start_0based;
-            start_0based = temp;
-        }
-        rc = add_refrange( regions, name, start_0based, end_0based );
-    }
-    return rc;
-}
-
-
-static void CC check_refrange_wrapper( BSTNode *n, void *data )
-{
-    check_ref_region_ranges( ( reference_region * ) n );
-}
-
-
-static void check_ref_regions( BSTree * regions )
-{
-    BSTreeForEach ( regions, false, check_refrange_wrapper, NULL );
-}
-
-
-static void CC release_ref_region_wrapper( BSTNode *n, void * data )
-{
-    free_reference_region( ( reference_region * ) n );
-}
-
-
-static void free_ref_regions( BSTree * regions )
-{    
-    BSTreeWhack ( regions, release_ref_region_wrapper, NULL );
-}
-
-
-static void CC count_ref_region_wrapper( BSTNode *n, void *data )
-{   
-    reference_region * r = ( reference_region * ) n;
-    uint32_t * count = ( uint32_t * ) data;
-    *count += VectorLength( &(r->ranges) );
-}
-
-
-static uint32_t count_ref_regions( BSTree * regions )
-{
-    uint32_t res = 0;
-    BSTreeForEach ( regions, false, count_ref_region_wrapper, &res );
-    return res;
-}
-
-
-/* =========================================================================================== */
-
-
-static void CC foreach_reference_wrapper( BSTNode *n, void *data )
-{   
-    reference_region * r = ( reference_region * ) n;
-    foreach_reference_func * func = ( foreach_reference_func * )data;
-
-    if ( func->rc == 0 )
-        func->rc = func->on_reference( r->name, &(r->ranges), func->data );
-}
-
-
-rc_t foreach_reference( BSTree * regions,
-    rc_t ( CC * on_reference ) ( const char * name, Vector *ranges, void *data ), 
-    void *data )
-{
-    foreach_reference_func func;
-
-    func.on_reference = on_reference;
-    func.data = data;
-    func.rc = 0;
-    BSTreeForEach ( regions, false, foreach_reference_wrapper, &func );
-    return func.rc;
-}
-
-
-/* =========================================================================================== */
-
-/* s = 1000-2000 */
-static void parse_matepair_definition( const char *s, uint64_t *start, uint64_t *end )
-{
-    size_t n = string_size( s );
-    if ( n > 0 )
-    {
-        size_t i, st, dst = 0;
-        char tmp[ 32 ];
-        st = RR_START;
-        for ( i = 0; i < n; ++i )
-        {
-            char c = s[ i ];
-            switch( st )
-            {
-                case RR_START : if ( c == '-' )
-                                {
-                                    *start = finish_num( tmp, sizeof tmp, &dst );
-                                    st = RR_END;
-                                }
-                                else if ( ( c >= '0' )&&( c <= '9' ) )
-                                {
-                                    put_c( tmp, sizeof tmp, &dst, c );
-                                }
-                                break;
-
-                case RR_END   : if ( ( c >= '0' )&&( c <= '9' ) )
-                                {
-                                    put_c( tmp, sizeof tmp, &dst, c );
-                                }
-                                break;
-            }
-        }
-        switch( st )
-        {
-            case RR_START : *start = finish_num( tmp, sizeof tmp, &dst );
-                            break;
-
-            case RR_END   : *end = finish_num( tmp, sizeof tmp, &dst );
-                            break;
-        }
-    }
-}
-
-
-static rc_t parse_and_add_matepair_dist( Vector * dist_vector, const char * s )
-{
-    rc_t rc = 0;
-    uint64_t start = 0, end = 0;
-    range *r;
-
-    if ( cmp_pchar( s, "unknown" ) != 0 )
-        parse_matepair_definition( s, &start, &end );
-
-    r = make_range( start, end );
-    if ( r == NULL )
-    {
-        rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted );
-        (void)LOGERR( klogErr, rc, "error storing matepair-distance" );
-    }
-    else
-    {
-        rc = VectorInsert ( dist_vector, r, NULL, cmp_range_wrapper );
-        if ( rc != 0 )
-            free( r );
-    }
-    return rc;
-}
-
-
-bool filter_by_matepair_dist( const samdump_opts * opts, int32_t tlen )
-{
-    bool res = false;
-
-    uint32_t count = VectorLength( &opts->mp_dist );
-    if ( count > 0 )
-    {
-        uint32_t idx, tlen_v;
-
-        res = false;
-        if ( tlen < 0 )
-            tlen_v = -(tlen);
-        else
-            tlen_v = tlen;
-
-        for ( idx = 0; idx < count && !res; ++idx )
-        {
-            range * r = VectorGet( &opts->mp_dist, idx );
-            if ( r != NULL )
-                res = ( ( tlen_v >= r->start )&&( tlen_v <= r->end ) );
-        }
-    }
-    return res;
-}
-
-/* =========================================================================================== */
-
-
-static rc_t get_bool_option( Args * args, const char * name, bool *value )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "error reading comandline option '$(t)'", "t=%s", name ) );
-    }
-    else
-    {
-        *value = ( count > 0 );
-    }
-    return rc;
-}
-
-
-static rc_t gather_region_options( Args * args, samdump_opts * opts )
-{
-    uint32_t count;
-
-    rc_t rc = ArgsOptionCount( args, OPT_REGION, &count );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "error counting comandline option '$(t)'", "t=%s", OPT_REGION ) );
-    }
-    else if ( count > 0 )
-    {
-        uint32_t i;
-
-        BSTreeInit( &opts->regions );
-        for ( i = 0; i < count && rc == 0; ++i )
-        {
-            const char * s;
-            rc = ArgsOptionValue( args, OPT_REGION, i, &s );
-            if ( rc != 0 )
-            {
-                (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline option '$(t)'", "t=%s", OPT_REGION ) );
-            }
-            else
-                rc = parse_and_add_region( &opts->regions, s );
-        }
-        if ( rc == 0 )
-        {
-            check_ref_regions( &opts->regions );
-            opts->region_count = count_ref_regions( &opts->regions );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t gather_matepair_distances( Args * args, samdump_opts * opts )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, OPT_MATE_DIST, &count );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "error counting comandline option '$(t)'", "t=%s", OPT_REGION ) );
-    }
-    else if ( count > 0 )
-    {
-        uint32_t i;
-
-        VectorInit( &opts->mp_dist, 0, 10 );
-        for ( i = 0; i < count && rc == 0; ++i )
-        {
-            const char * s;
-            rc = ArgsOptionValue( args, OPT_MATE_DIST, i, &s );
-            if ( rc != 0 )
-            {
-                (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline option '$(t)'", "t=%s", OPT_MATE_DIST ) );
-            }
-            else
-                rc = parse_and_add_matepair_dist( &opts->mp_dist, s );
-        }
-        opts->use_matepair_filter = ( VectorLength( &opts->mp_dist ) > 0 );
-    }
-    return rc;
-}
-
-
-static rc_t gather_2_bool( Args * args, const char *name1, const char *name2, bool *b1, bool *b2 )
-{
-    rc_t rc = get_bool_option( args, name1, b1 );
-    if ( rc != 0 ) return rc;
-
-    rc = get_bool_option( args, name2, b2 );
-    if ( rc != 0 ) return rc;
-
-    if ( *b1 && *b2 )
-    {
-        rc = RC( rcExe, rcNoTarg, rcValidating, rcParam, rcInvalid );
-        (void)PLOGERR( klogErr, ( klogErr, rc, "the parameters '--$(p1)' and '--$(p2)' are mutually exclusive", 
-                      "p1=%s,p2=%s", name1, name2 ) );
-    }
-    return rc;
-}
-
-
-static rc_t gather_flag_options( Args * args, samdump_opts * opts )
-{
-    bool dump_prim_only;
-
-    /* do we have to dump unaligned reads too? */
-    rc_t rc = get_bool_option( args, OPT_UNALIGNED, &opts->dump_unaligned_reads );
-    if ( rc != 0 ) return rc;
-
-    /* assume we have to dump primary alignments, maybe switched off later by other option */
-    opts->dump_primary_alignments = true;
-
-    /* we are dumping secondary alignments only if the user does
-       not explicitly ask for "primary only" */
-    rc = get_bool_option( args, OPT_PRIM_ONLY, &dump_prim_only );
-    if ( rc != 0 ) return rc;
-    opts->dump_secondary_alignments = !dump_prim_only;
-
-    /* check if we are asked to be in cga-tool compatible mode */
-    rc = get_bool_option( args, OPT_CG_SAM, &opts->dump_cg_sam );
-    if ( rc != 0 ) return rc;
-
-    /* check if we have to dump "EVIDENCE_INTERVAL" against the reference */
-    rc = get_bool_option( args, OPT_CG_EVIDENCE, &opts->dump_cg_evidence );
-    if ( rc != 0 ) return rc;
-
-    /* check if we have to dump "EVIDENCE_ALIGNMENT" against "EVIDENCE_INTERVAL" */
-    rc = get_bool_option( args, OPT_CG_EV_DNB, &opts->dump_cg_ev_dnb );
-    if ( rc != 0 ) return rc;
-
-    {
-        bool dump_cg_mappings;
-
-        /* look if cg-mappings is requested */
-        rc = get_bool_option( args, OPT_CG_MAPP, &dump_cg_mappings );
-        if ( rc != 0 ) return rc;
-
-        /* do some mode logic ... */
-        if ( !dump_cg_mappings &&
-             ( opts->dump_cga_tools_mode || opts->dump_cg_evidence || opts->dump_cg_ev_dnb ) )
-        {
-            opts->dump_primary_alignments = false;
-            opts->dump_secondary_alignments = false;
-            opts->dump_unaligned_reads = false;
-        }
-        else
-        {
-            opts->dump_primary_alignments = true;
-            opts->dump_secondary_alignments = !dump_prim_only;
-            /* opts->dump_unaligned_reads = ( opts->dump_unaligned_reads && opts->region_count == 0 ); */
-        }
-    }
-
-    /* do we have to print the long-version of the cigar-string? */
-    rc = get_bool_option( args, OPT_CIGAR_LONG, &opts->use_long_cigar );
-    if ( rc != 0 ) return rc;
-
-    /* print the sequence-id instead of the sequence-name */
-    rc = get_bool_option( args, OPT_USE_SEQID, &opts->use_seqid_as_refname );
-    if ( rc != 0 ) return rc;
-
-    /* print the READ where matched bases are replaced with '=' */
-    rc = get_bool_option( args, OPT_HIDE_IDENT, &opts->print_matches_as_equal_sign );
-    if ( rc != 0 ) return rc;
-
-    {
-        bool recalc_header, dont_print_header;
-
-        /* do we have to recalculate the header instead of printing the meta-data */
-        rc = get_bool_option( args, OPT_RECAL_HDR, &recalc_header );
-        if ( rc != 0 ) return rc;
-        /* should we suppress the header completely */
-        rc = get_bool_option( args, OPT_NO_HDR, &dont_print_header );
-        if ( rc != 0 ) return rc;
-        if ( dont_print_header )
-            opts->header_mode = hm_none;
-        else if ( recalc_header )
-            opts->header_mode = hm_recalc;
-        else
-            opts->header_mode = hm_dump;
-    }
-
-    {
-        bool cigar_cg, cigar_cg_merge;
-
-        /* do we have to transform cigar into cg-style ( has B/N ) */
-        /* do we have to transform cg-data(length of read/patterns in cigar) into valid SAM (cigar/READ/QUALITY) */
-        rc = gather_2_bool( args, OPT_CIGAR_CG, OPT_CIGAR_CG, &cigar_cg, &cigar_cg_merge );
-        if ( rc != 0 ) return rc;
-        if ( cigar_cg )
-            opts->cigar_treatment = ct_cg_style;
-        if ( cigar_cg_merge )
-            opts->cigar_treatment = ct_cg_merge;
-    }
-
-    {
-        bool gzip, bzip2;
-
-        /* do we have to compress the output with gzip ? */
-        /* do we have to compress the output with bzip2 ? */
-        rc = gather_2_bool( args, OPT_GZIP, OPT_BZIP2, &gzip, &bzip2 );
-        if ( rc != 0 ) return rc;
-        if ( gzip )
-            opts->output_compression = oc_gzip;
-        if ( bzip2 )
-            opts->output_compression = oc_bzip2;
-    }
-
-
-    {
-        bool fasta, fastq;
-
-        /* output in FASTA - mode  ? */
-        /* output in FASTQ - mode  ? */
-        rc = gather_2_bool( args, OPT_FASTA, OPT_FASTQ, &fasta, &fastq );
-        if ( rc != 0 ) return rc;
-        if ( fasta )
-            opts->output_format = of_fasta;
-        if ( fastq )
-            opts->output_format = of_fastq;
-    }
-
-
-    /* do we have to reverse unaligned reads if the flag in the row says so */
-    rc = get_bool_option( args, OPT_REVERSE, &opts->reverse_unaligned_reads );
-    if ( rc != 0 ) return rc;
-
-    /* do we have to add the spotgroup to the qname-column */
-    rc = get_bool_option( args, OPT_SPOTGRP, &opts->print_spot_group_in_name );
-    if ( rc != 0 ) return rc;
-
-    /* do we have to report options instead of executing */
-    rc = get_bool_option( args, OPT_REPORT, &opts->report_options );
-    if ( rc != 0 ) return rc;
-
-    /* do we have to print the alignment id in column XI */
-    rc = get_bool_option( args, OPT_XI_DEBUG, &opts->print_alignment_id_in_column_xi );
-    if ( rc != 0 ) return rc;
-
-    /* do we have to print the alignment id in column XI */
-    rc = get_bool_option( args, OPT_CACHEREPORT, &opts->report_cache );
-    if ( rc != 0 ) return rc;
-
-    /* do we have to dump unaligned reads only */
-    rc = get_bool_option( args, OPT_UNALIGNED_ONLY, &opts->dump_unaligned_only );
-    if ( rc != 0 ) return rc;
-
-    /* do we have to print the spot-group in a special way */
-    rc = get_bool_option( args, OPT_CG_NAMES, &opts->print_cg_names );
-    if ( rc != 0 ) return rc;
-
-    /* do we use a mate-cache */
-    rc = get_bool_option( args, OPT_NO_MATE_CACHE, &opts->use_mate_cache );
-    if ( rc != 0 ) return rc;
-    opts->use_mate_cache = !opts->use_mate_cache;
-
-    /* do we use a mate-cache */
-    rc = get_bool_option( args, OPT_LEGACY, &opts->force_legacy );
-    if ( rc != 0 ) return rc;
-
-    /* do we have to merge cigar ( and read/qual ) for cg-operations in cigar */
-    rc = get_bool_option( args, OPT_CIGAR_CG_M, &opts->merge_cg_cigar );
-
-    return rc;
-}
-
-
-static rc_t get_str_option( Args * args, const char * name, const char ** s )
-{
-    uint32_t count;
-
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    *s = NULL;
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "error counting comandline option '$(t)'", "t=%s", name ) );
-    }
-    else if ( count > 0 )
-    {
-        rc = ArgsOptionValue( args, name, 0, s );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline option '$(t)'", "t=%s", name ) );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t get_int_option( Args * args, const char * name, uint32_t def, uint32_t * value, bool dflt_if_zero )
-{
-    const char * s;
-    rc_t rc = get_str_option( args, name, &s );
-    *value = def;
-    if ( rc == 0 && s != NULL )
-    {
-        char *endp;
-        *value = strtou32( s, &endp, 0 );
-        if ( *endp != '\0' )
-        {
-            rc = RC( rcExe, rcArgv, rcProcessing, rcParam, rcInvalid );
-            (void)PLOGERR( klogErr, ( klogErr, rc, "error converting string to integer option '$(t)'", "t=%s", name ) );
-        }
-        else if ( dflt_if_zero && *value == 0 )
-            *value = def;
-    }
-    return rc;
-}
-
-
-static rc_t get_int32_options( Args * args, const char * name, int32_t * value, bool * used )
-{
-    const char * s;
-    rc_t rc = get_str_option( args, name, &s );
-    if ( rc == 0 && s != NULL )
-    {
-        char *endp;
-        *value = strtoi32( s, &endp, 0 );
-        if ( *endp != '\0' )
-        {
-            rc = RC( rcExe, rcArgv, rcProcessing, rcParam, rcInvalid );
-            (void)PLOGERR( klogErr, ( klogErr, rc, "error converting string to integer option '$(t)'", "t=%s", name ) );
-        }
-        else
-        {
-            *used = true;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t get_int64_option( Args * args, const char * name, uint64_t def, uint64_t * value )
-{
-    const char * s;
-    rc_t rc = get_str_option( args, name, &s );
-    *value = def;
-    if ( rc == 0 && s != NULL )
-    {
-        char *endp;
-        *value = strtou32( s, &endp, 0 );
-        if ( *endp != '\0' )
-        {
-            rc = RC( rcExe, rcArgv, rcProcessing, rcParam, rcInvalid );
-            (void)PLOGERR( klogErr, ( klogErr, rc, "error converting string to integer option '$(t)'", "t=%s", name ) );
-        }
-        else if ( *value == 0 )
-            *value = def;
-    }
-    return rc;
-}
-
-
-static rc_t gather_int_options( Args * args, samdump_opts * opts )
-{
-    rc_t rc = get_int_option( args, OPT_MATE_GAP, 10000, &opts->mape_gap_cache_limit, true );
-    if ( rc == 0 )
-        rc = get_int64_option( args, OPT_TEST_ROWS, 0, &opts->test_rows );
-    if ( rc == 0 )
-        rc = get_int_option( args, OPT_OUTBUFSIZE, 1024 * 32, &opts->output_buffer_size, false );
-    if ( rc == 0 )
-    {
-        uint32_t cs;
-        rc = get_int_option( args, OPT_CURSOR_CACHE, CURSOR_CACHE_SIZE, &cs, false );
-        if ( rc == 0 )
-            opts->cursor_cache_size = ( size_t )cs;
-    }
-    if ( rc == 0 )
-    {
-        uint32_t mode;
-        rc = get_int_option( args, OPT_DUMP_MODE, 0, &mode, true );
-        if ( rc == 0 )
-        {
-            switch( mode )
-            {
-                case 0  : opts->dump_mode = dm_one_ref_at_a_time; break;
-                case 1  : opts->dump_mode = dm_prepare_all_refs; break;
-                default : opts->dump_mode = dm_one_ref_at_a_time; break;
-            }
-        }
-    }
-    if ( rc == 0 )
-    {
-        rc = get_int32_options( args, OPT_MIN_MAPQ, &opts->min_mapq, &opts->use_min_mapq );
-    }
-    return rc;
-}
-
-
-static rc_t gather_string_options( Args * args, samdump_opts * opts )
-{
-    const char * s;
-    uint32_t count;
-
-    rc_t rc = get_str_option( args, OPT_PREFIX, &s );
-    if ( rc == 0 && s != NULL )
-    {
-        opts->qname_prefix = string_dup_measure( s, NULL );
-        if ( opts->qname_prefix == NULL )
-        {
-            rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted );
-            (void)LOGERR( klogErr, rc, "error storing QNAME-PREFIX" );
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        rc = get_str_option( args, OPT_Q_QUANT, &s );
-        if ( rc == 0 && s != NULL )
-        {
-            opts->qual_quant = string_dup_measure( s, NULL );
-            if ( opts->qual_quant == NULL )
-            {
-                rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted );
-                (void)LOGERR( klogErr, rc, "error storing QUAL-QUANT" );
-            }
-            else
-            {
-                bool bres = QualityQuantizerInitMatrix( opts->qual_quant_matrix, opts->qual_quant );
-                if ( !bres )
-                {
-                    rc = RC( rcExe, rcNoTarg, rcValidating, rcParam, rcInvalid );
-                    (void)LOGERR( klogErr, rc, "error initializing quality-quantizer-matrix" );
-                }
-            }
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        rc = get_str_option( args, OPT_OUTPUTFILE, &s );
-        if ( rc == 0 && s != NULL )
-        {
-            opts->outputfile = string_dup_measure( s, NULL );
-            if ( opts->outputfile == NULL )
-            {
-                rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted );
-                (void)LOGERR( klogErr, rc, "error storing OUTPUTFILE" );
-            }
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        rc = ArgsOptionCount( args, OPT_HDR_COMMENT, &count );
-        if ( rc == 0 && count > 0 )
-        {
-            uint32_t i;
-            rc = VNamelistMake( &opts->hdr_comments, 10 );
-            for ( i = 0; i < count && rc == 0; ++i )
-            {
-                const char * src;
-                rc = ArgsOptionValue( args, OPT_HDR_COMMENT, i, &src );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline option '$(t)' #$(n)", 
-                                              "t=%s,n=%u", OPT_HDR_COMMENT, i ) );
-                }
-                else
-                {
-                    rc = VNamelistAppend( opts->hdr_comments, src );
-                    if ( rc != 0 )
-                    {
-                        (void)PLOGERR( klogErr, ( klogErr, rc, "error appending hdr-comment '$(t)'", 
-                                                  "t=%s", src ) );
-                    }
-                }
-            }
-            if ( rc != 0 )
-            {
-                VNamelistRelease( opts->hdr_comments );
-                opts->hdr_comments = NULL;
-            }
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        rc = ArgsParamCount( args, &count );
-        if ( rc == 0 && count > 0 )
-        {
-            uint32_t i;
-            rc = VNamelistMake( &opts->input_files, 10 );
-            for ( i = 0; i < count && rc == 0; ++i )
-            {
-                const char * src;
-                rc = ArgsParamValue( args, i, &src );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline param #$(n)", 
-                                              "n=%u", i ) );
-                }
-                else
-                {
-                    rc = VNamelistAppend( opts->input_files, src );
-                    if ( rc != 0 )
-                    {
-                        (void)PLOGERR( klogErr, ( klogErr, rc, "error appending input_file '$(t)'", 
-                                                  "t=%s", src ) );
-                    }
-                }
-            }
-            if ( rc != 0 )
-            {
-                VNamelistRelease( opts->input_files );
-                opts->input_files = NULL;
-            }
-        }
-        opts->input_file_count = count;
-    }
-
-    rc = get_str_option( args, OPT_CIGAR_TEST, &s );
-    if ( rc == 0 && s != NULL )
-    {
-        opts->cigar_test = string_dup_measure( s, NULL );
-        if ( opts->cigar_test == NULL )
-        {
-            rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted );
-            (void)LOGERR( klogErr, rc, "error storing CIGAR-TEST" );
-        }
-    }
-
-    return rc;
-}
-
-
-/*********************************************************************************************
-
-                                            fa ... fully aligned reads
-                                            ha ... half aligned reads
-                                            hu ... half unaligned reads
-                                            fu ... fully unaligned reads
-
-    regions > 0     |   dump-unaligned  |
-    ----------------------------------------------------------------------
-        no          |       no          |   fa  ha  hu
-        no          |       yes         |   fa  ha  hu  fu
-        yes         |       no          |   fa  ha
-        yes         |       yes         |   fa  ha  hu
-
-*********************************************************************************************/
-static void gather_unaligned_options( samdump_opts * opts )
-{
-    if ( opts->region_count == 0 )
-    {
-        if ( opts->dump_unaligned_only )
-        {
-            opts->print_half_unaligned_reads  = false;
-            opts->print_fully_unaligned_reads = true;
-        }
-        else
-        {
-            opts->print_half_unaligned_reads  = true;
-            opts->print_fully_unaligned_reads = opts->dump_unaligned_reads;
-        }
-    }
-    else
-    {
-        opts->print_fully_unaligned_reads = false;
-        opts->print_half_unaligned_reads  = opts->dump_unaligned_reads;
-    }
-}
-
-/* =========================================================================================== */
-
-
-static rc_t CC report_reference_cb( const char * name, Vector * ranges, void *data )
-{
-    rc_t rc = KOutMsg( "region: <%s>\n",  name );
-    if ( rc == 0 )
-    {
-        uint32_t count = VectorLength( ranges );
-        if ( count > 0 )
-        {
-            uint32_t i;
-            for ( i = VectorStart( ranges ); i < count && rc == 0; ++i )
-            {
-                range *r = VectorGet( ranges, i );
-                if ( r->end == 0 )
-                {
-                    if ( r->start == 0 )
-                        rc = KOutMsg( "\t[ start ... end ]\n" );
-                    else
-                        rc = KOutMsg( "\t[ %u ... ]\n", r->start );
-                }
-                else
-                    rc = KOutMsg( "\t[ %u ... %u ]\n", r->start, r->end );
-            }
-        }
-    }
-    return rc;
-}
-
-
-void report_options( const samdump_opts * opts )
-{
-    rc_t rc;
-    uint32_t len;
-
-    KOutMsg( "dump unaligned reads  : %s\n",  opts->dump_unaligned_reads ? "YES" : "NO" );
-    KOutMsg( "dump unaligned only   : %s\n",  opts->dump_unaligned_only ? "YES" : "NO" );
-    KOutMsg( "dump prim. alignments : %s\n",  opts->dump_primary_alignments ? "YES" : "NO" );
-    KOutMsg( "dump sec. alignments  : %s\n",  opts->dump_secondary_alignments ? "YES" : "NO" );
-    KOutMsg( "dump cga-tools-mode   : %s\n",  opts->dump_cga_tools_mode ? "YES" : "NO" );
-    KOutMsg( "dump cg-evidence      : %s\n",  opts->dump_cg_evidence ? "YES" : "NO" );
-    KOutMsg( "dump cg-ev-dnb        : %s\n",  opts->dump_cg_ev_dnb ? "YES" : "NO" );
-    KOutMsg( "dump cg-sam           : %s\n",  opts->dump_cg_sam ? "YES" : "NO" );
-    KOutMsg( "merge cg-cigar        : %s\n",  opts->merge_cg_cigar ? "YES" : "NO" );
-
-    KOutMsg( "use long cigar        : %s\n",  opts->use_long_cigar ? "YES" : "NO" );
-    KOutMsg( "print seqid           : %s\n",  opts->use_seqid_as_refname ? "YES" : "NO" );
-    KOutMsg( "print READ with '='   : %s\n",  opts->print_matches_as_equal_sign ? "YES" : "NO" );
-    KOutMsg( "reverse unaligned rd  : %s\n",  opts->reverse_unaligned_reads ? "YES" : "NO" );
-    KOutMsg( "add spotgrp to qname  : %s\n",  opts->print_spot_group_in_name ? "YES" : "NO" );
-    KOutMsg( "print id in col. XI   : %s\n",  opts->print_alignment_id_in_column_xi ? "YES" : "NO" );
-    KOutMsg( "report matecache      : %s\n",  opts->report_cache ? "YES" : "NO" );
-    KOutMsg( "print cg-names        : %s\n",  opts->print_cg_names ? "YES" : "NO" );
-
-    switch( opts->header_mode )
-    {
-        case hm_none   : KOutMsg( "header-mode           : dont print\n" ); break;
-        case hm_recalc : KOutMsg( "header-mode           : recalculate\n" ); break;
-        case hm_dump   : KOutMsg( "header-mode           : print meta-data\n" ); break;
-        default        : KOutMsg( "header-mode           : unknown\n" ); break;
-    }
-
-    switch( opts->cigar_treatment )
-    {
-        case ct_unchanged : KOutMsg( "cigar-treatment       : unchanged\n" ); break;
-        case ct_cg_style  : KOutMsg( "cigar-treatment       : transform cg to 'cg-style\n" ); break;
-        case ct_cg_merge  : KOutMsg( "cigar-treatment       : transform cg to valid SAM\n" ); break;
-        default           : KOutMsg( "cigar-treatment       : unknow'\n" ); break;
-    }
-
-    switch( opts->output_compression )
-    {
-        case oc_none  : KOutMsg( "output-compression    : none\n" ); break;
-        case oc_gzip  : KOutMsg( "output-compression    : gzip\n" ); break;
-        case oc_bzip2 : KOutMsg( "output-compression    : bzip2\n" ); break;
-        default       : KOutMsg( "output-compression    : unknown\n" ); break;
-    }
-
-    switch( opts->output_format )
-    {
-        case of_sam   : KOutMsg( "output-format         : SAM\n" ); break;
-        case of_fasta : KOutMsg( "output-format         : FASTA\n" ); break;
-        case of_fastq : KOutMsg( "output-format         : FASTQ\n" ); break;
-        default       : KOutMsg( "output-format         : unknown\n" ); break;
-    }
-
-    switch( opts->dump_mode )
-    {
-        case dm_one_ref_at_a_time : KOutMsg( "dump-mode             : one ref at a time\n" ); break;
-        case dm_prepare_all_refs  : KOutMsg( "dump-mode             : prepare all refs\n" ); break;
-        default                   : KOutMsg( "dump-mode             : unknown\n" ); break;
-    }
-
-    KOutMsg( "number of regions     : %u\n",  opts->region_count );
-    if ( opts->region_count > 0 )
-        foreach_reference( (BSTree *)&opts->regions, report_reference_cb, NULL );
-
-    if ( opts->qname_prefix == NULL )
-        KOutMsg( "qname-prefix          : NONE\n" );
-    else
-        KOutMsg( "qname-prefix          : '%s'\n",  opts->qname_prefix );
-
-    if ( opts->qual_quant == NULL )
-        KOutMsg( "quality-quantization  : NONE\n" );
-    else
-        KOutMsg( "quality-quantization  : '%s'\n",  opts->qual_quant );
-
-    if ( opts->hdr_comments != NULL )
-    {
-        rc = VNameListCount( opts->hdr_comments, &len );
-        if ( rc == 0 && len > 0 )
-        {
-            uint32_t i;
-
-            KOutMsg( "header-comments-count : %u\n",  len );
-            for ( i = 0; i < len; ++i )
-            {
-                const char * s;
-                rc = VNameListGet( opts->hdr_comments, i, &s );
-                if ( rc == 0 && s != NULL )
-                    KOutMsg( "header-comment[ %u ]  : '%s'\n",  i, s );
-            }
-        }
-    }
-
-    if ( opts->input_files != NULL )
-    {
-        rc = VNameListCount( opts->input_files, &len );
-        if ( rc == 0 && len > 0 )
-        {
-            uint32_t i;
-
-            KOutMsg( "input-file-count      : %u\n",  len );
-            for ( i = 0; i < len; ++i )
-            {
-                const char * s;
-                rc = VNameListGet( opts->input_files, i, &s );
-                if ( rc == 0 && s != NULL )
-                    KOutMsg( "input-file[ %u ]      : '%s'\n",  i, s );
-            }
-        }
-    }
-
-    len = VectorLength( &opts->mp_dist );
-    if ( len > 0 )
-    {
-        uint32_t i;
-
-        KOutMsg( "matepair-dist-filters : %u\n",  len );
-        for ( i = 0; i < len; ++i )
-        {
-            range *r = VectorGet( &opts->mp_dist, i );
-            if ( r != NULL )
-                KOutMsg( "matepair-dist[ %u ]   : '%u ... %u'\n",  i, r->start, r->end );
-        }
-    }
-
-    KOutMsg( "mate-gap-cache-limit  : %u\n",  opts->mape_gap_cache_limit );
-    KOutMsg( "test-row limit        : %u\n",  opts->test_rows );
-    KOutMsg( "outputfile            : %s\n",  opts->outputfile );
-    KOutMsg( "outputbuffer-size     : %u\n",  opts->output_buffer_size );
-    KOutMsg( "cursor-cache-size     : %u\n",  opts->cursor_cache_size );
-
-    KOutMsg( "use mate-cache        : %s\n",  opts->use_mate_cache ? "YES" : "NO" );
-    KOutMsg( "force legacy code     : %s\n",  opts->force_legacy ? "YES" : "NO" );
-    KOutMsg( "use min-mapq          : %s\n",  opts->use_min_mapq ? "YES" : "NO" );
-    KOutMsg( "min-mapq              : %i\n",  opts->min_mapq );
-}
-
-
-/* =========================================================================================== */
-
-
-void release_options( samdump_opts * opts )
-{
-    free_ref_regions( &opts->regions );
-    if ( opts->qname_prefix != NULL )
-        free( (void*)opts->qname_prefix );
-    if ( opts->qual_quant != NULL )
-        free( (void*)opts->qual_quant );
-    if( opts->outputfile != NULL )
-        free( (void*)opts->outputfile );
-    VNamelistRelease( opts->hdr_comments );
-    VNamelistRelease( opts->input_files );
-    VectorWhack ( &opts->mp_dist, release_range_wrapper, NULL );
-}
-
-/* =========================================================================================== */
-
-
-rc_t gather_options( Args * args, samdump_opts * opts )
-{
-    rc_t rc = gather_region_options( args, opts );
-    if ( rc == 0 )
-        rc = gather_flag_options( args, opts );
-    if ( rc == 0 )
-        rc = gather_string_options( args, opts );
-    if ( rc == 0 )
-        rc = gather_int_options( args, opts );
-    if ( rc == 0 )
-        rc = gather_matepair_distances( args, opts );
-    if ( rc == 0 )
-        gather_unaligned_options( opts );
-    return rc;
-}
-
-
-bool is_this_alignment_requested( const samdump_opts * opts, const char *refname, uint32_t refname_len,
-                                  uint64_t start, uint64_t end )
-{
-    bool res = false;
-    if ( opts != NULL )
-    {
-        reference_region *rr = find_reference_region_len( ( BSTree * )&opts->regions, refname, refname_len );
-        if ( rr != NULL )
-        {
-            Vector *v = &(rr->ranges);
-            uint32_t i, count = VectorLength( v );
-            for ( i = 0; i < count && !res; ++i )
-            {
-                range * r = VectorGet ( v, i );
-                if ( r != NULL )
-                {
-                    res = ( ( end >= r->start )&&( start <= r->end ) );
-                }
-            }
-        }
-    }
-    return res;
-}
-
-
-bool test_limit_reached( const samdump_opts * opts, uint64_t rows_so_far )
-{
-    bool res = false;
-    if ( opts->test_rows > 0 )
-        res = ( rows_so_far >= opts->test_rows );
-    return res;
-}
-
-
-rc_t dump_name( const samdump_opts * opts, int64_t seq_spot_id,
-                const char * spot_group, uint32_t spot_group_len )
-{
-    rc_t rc;
-
-    if ( opts->print_cg_names )
-    {
-        if ( spot_group != NULL && spot_group_len != 0 )
-            rc = KOutMsg( "%.*s_1:%d", spot_group_len, spot_group, seq_spot_id );
-        else
-            rc = KOutMsg( "%d", seq_spot_id );
-    }
-    else
-    {
-        if ( opts->qname_prefix != NULL )
-        {
-            /* we do have to print a prefix */
-            if ( opts->print_spot_group_in_name && spot_group != NULL && spot_group_len > 0 )
-                rc = KOutMsg( "%s.%d.%.*s", opts->qname_prefix, seq_spot_id, spot_group_len, spot_group );
-            else
-            /* we do NOT have to append the spot-group */
-                rc = KOutMsg( "%s.%d", opts->qname_prefix, seq_spot_id );
-        }
-        else
-        {
-            /* we do NOT have to print a prefix */
-            if ( opts->print_spot_group_in_name && spot_group != NULL && spot_group_len > 0 )
-                rc = KOutMsg( "%d.%.*s", seq_spot_id, spot_group_len, spot_group );
-            else
-            /* we do NOT have to append the spot-group */
-                rc = KOutMsg( "%d", seq_spot_id );
-        }
-    }
-    return rc;
-}
-
-
-rc_t dump_name_legacy( const samdump_opts * opts, const char * name, size_t name_len,
-                       const char * spot_group, uint32_t spot_group_len )
-{
-    rc_t rc;
-
-    if ( opts->qname_prefix != NULL )
-    {
-        /* we do have to print a prefix */
-        if ( opts->print_spot_group_in_name && spot_group != NULL && spot_group_len > 0 )
-            rc = KOutMsg( "%s.%.*s%.*s", opts->qname_prefix, name_len, name, spot_group_len, spot_group );
-        else
-        /* we do NOT have to append the spot-group */
-            rc = KOutMsg( "%s.%.*s", opts->qname_prefix, name_len, name );
-    }
-    else
-    {
-        /* we do NOT have to print a prefix */
-        if ( opts->print_spot_group_in_name && spot_group != NULL && spot_group_len > 0 )
-            rc = KOutMsg( "%.*s.%.*s", name_len, name, spot_group_len, spot_group );
-        else
-        /* we do NOT have to append the spot-group */
-            rc = KOutMsg( "%.*s", name_len, name );
-    }
-    return rc;
-}
-
-
-rc_t dump_quality( const samdump_opts * opts, char const *quality, uint32_t qual_len, bool reverse )
-{
-    rc_t rc = 0;
-    bool quantize = ( opts->qual_quant != NULL );
-    uint32_t i;
-    if ( reverse )
-    {
-        if ( quantize )
-        {
-            for ( i = 0; i < qual_len && rc == 0; ++i )
-            {
-                uint32_t qual = quality[ qual_len - i - 1 ];
-                char newValue = ( opts->qual_quant_matrix[ qual ] + 33 );
-                rc = KOutMsg( "%c", newValue );
-            }
-        }
-        else
-        {
-            for ( i = 0; i < qual_len && rc == 0; ++i )
-            {
-                char qual = quality[ qual_len - i - 1 ] + 33;
-                rc = KOutMsg( "%c", qual );
-            }
-        }
-    }
-    else
-    {
-        if ( quantize )
-        {
-            for ( i = 0; i < qual_len && rc == 0; ++i )
-            {
-                uint32_t qual = quality[ i ];
-                char newValue = opts->qual_quant_matrix[ qual ] + 33;
-                rc = KOutMsg( "%c", newValue );
-            }
-
-        }
-        else
-        {
-            for ( i = 0; i < qual_len && rc == 0; ++i )
-            {
-                char qual = quality[ i ] + 33;
-                rc = KOutMsg( "%c", qual );
-            }
-        }
-    }
-    return rc;
-}
-
-
-rc_t dump_quality_33( const samdump_opts * opts, char const *quality, uint32_t qual_len, bool reverse )
-{
-    rc_t rc = 0;
-    bool quantize = ( opts->qual_quant != NULL );
-    uint32_t i;
-    if ( reverse )
-    {
-        if ( quantize )
-        {
-            for ( i = 0; i < qual_len && rc == 0; ++i )
-            {
-                uint32_t qual = quality[ qual_len - i - 1 ] - 33;
-                char newValue = ( opts->qual_quant_matrix[ qual ] + 33 );
-                rc = KOutMsg( "%c", newValue );
-            }
-        }
-        else
-        {
-            for ( i = 0; i < qual_len && rc == 0; ++i )
-            {
-                char qual = quality[ qual_len - i - 1 ];
-                rc = KOutMsg( "%c", qual );
-            }
-        }
-    }
-    else
-    {
-        if ( quantize )
-        {
-            for ( i = 0; i < qual_len && rc == 0; ++i )
-            {
-                uint32_t qual = quality[ i ] - 33;
-                char newValue = opts->qual_quant_matrix[ qual ] + 33;
-                rc = KOutMsg( "%c", newValue );
-            }
-
-        }
-        else
-        {
-            rc = KOutMsg( "%.*s", qual_len, quality );
-        }
-    }
-    return rc;
-}
-
-
diff --git a/tools/sra-pileup/sam-dump-opts.h b/tools/sra-pileup/sam-dump-opts.h
deleted file mode 100644
index acd933c..0000000
--- a/tools/sra-pileup/sam-dump-opts.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_sam_dump_opts_
-#define _h_sam_dump_opts_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <klib/container.h>
-#include <klib/vector.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/namelist.h>
-
-#include <kapp/args.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <strtol.h>
-
-
-#define OPT_UNALIGNED   "unaligned"
-#define OPT_PRIM_ONLY   "primary"
-#define OPT_CIGAR_LONG  "cigar-long"
-#define OPT_CG_SAM      "CG-SAM"
-#define OPT_CG_EVIDENCE "CG-evidence"
-#define OPT_CG_EV_DNB   "CG-ev-dnb"
-#define OPT_CG_MAPP     "CG-mappings"
-#define OPT_REGION      "aligned-region"
-#define OPT_RECAL_HDR   "header"
-#define OPT_NO_HDR      "no-header"
-#define OPT_USE_SEQID   "seqid"
-#define OPT_HIDE_IDENT  "hide-identical"
-#define OPT_CIGAR_CG    "cigar-CG"
-#define OPT_CIGAR_CG_M  "cigar-CG-merge"
-#define OPT_PREFIX      "prefix"
-#define OPT_REVERSE     "reverse"
-#define OPT_SPOTGRP     "spot-group"
-#define OPT_MATE_GAP    "mate-cache-row-gap"
-#define OPT_TEST_ROWS   "test-rows"
-#define OPT_XI_DEBUG    "XI"
-#define OPT_Q_QUANT     "qual-quant"
-#define OPT_GZIP        "gzip"
-#define OPT_BZIP2       "bzip2"
-#define OPT_FASTQ       "fastq"
-#define OPT_FASTA       "fasta"
-#define OPT_HDR_COMMENT "header-comment"
-#define OPT_MATE_DIST   "matepair-distance"
-#define OPT_OUTPUTFILE  "output-file"
-#define OPT_OUTBUFSIZE  "output-buffer-size"
-#define OPT_REPORT      "report"
-#define OPT_CACHEREPORT "cachereport"
-#define OPT_UNALIGNED_ONLY "unaligned-spots-only"
-#define OPT_CG_NAMES    "CG-names"
-#define OPT_CIGAR_TEST  "cigar-test"
-#define OPT_CURSOR_CACHE "cursor-cache"
-#define OPT_DUMP_MODE   "dump-mode"
-#define OPT_MIN_MAPQ    "min-mapq"
-#define OPT_NO_MATE_CACHE "no-mate-cache"
-#define OPT_LEGACY      "legacy"
-
-typedef struct range
-{
-    uint64_t start;
-    uint64_t end;
-} range;
-
-
-typedef struct reference_region
-{
-    BSTNode node;
-    const char * name;      /* the name of the reference */
-    Vector ranges;          /* what regions on this reference */
-} reference_region;
-
-
-enum header_mode
-{
-    hm_none = 0,    /* do not dump the headers at all */
-    hm_recalc,      /* recalculate the headers */
-    hm_dump         /* dump the header found in metadata */
-};
-
-enum output_format
-{
-    of_sam = 0,     /* use sam-tools format */
-    of_fasta,       /* use fasta-format */
-    of_fastq        /* use fastq-format */
-};
-
-enum output_compression
-{
-    oc_none = 0,    /* do not compress output */
-    oc_gzip,        /* compress output with gzip */
-    oc_bzip2        /* compress output with bzip2 */
-};
-
-enum cigar_treatment
-{
-    ct_unchanged = 0,   /* use the cigar-string as it is stored */
-    ct_cg_style,        /* transform cigar into cg-style ( has B/N ) */
-    ct_cg_merge         /* transform cg-data(length of read/patterns in cigar) into valid SAM (cigar/READ/QUALITY) */
-};
-
-
-enum dump_mode
-{
-    /* in case of: aligned reads requested + no regions given */
-    dm_one_ref_at_a_time = 0,   /* create a set-iter each for every reference sequentially, put only one reference into it */
-    dm_prepare_all_refs         /* create only ONE set-iter, put ALL references into it */
-};
-
-
-typedef struct samdump_opts
-{
-    /* tree with regions, each node has a sorted vector of ranges, can be empty ... */
-    BSTree regions;     /* contains reference_region structs */
-
-    /* vector with header-comments, can be empty... */
-    VNamelist * hdr_comments;
-
-    /* vector input files/accessions/url's */
-    VNamelist * input_files;
-
-    /* vector with metapair-distances... */
-    Vector mp_dist;
-
-    /* prepend qname with this prefix */
-    const char * qname_prefix;
-
-    /* the quality quantization string */
-    const char * qual_quant;
-
-    /* optional outputfile */
-    const char * outputfile;
-
-    /* cigar-test >>> not advertized! */
-    const char * cigar_test;
-
-    uint32_t region_count;
-    uint32_t input_file_count;
-
-    int32_t min_mapq;
-
-    /* how much buffering on the output-buffer, of OFF if zero */
-    uint32_t output_buffer_size;
-
-    /* mate's farther apart than this are not cached */
-    uint32_t mape_gap_cache_limit;
-
-    /* limit the output of each table to max. this number of rows, if set to a vaue greater than zero */
-    uint64_t test_rows;
-    uint64_t rows_so_far;
-
-    size_t cursor_cache_size;
-
-    /* how the sam-headers are treated */
-    enum header_mode header_mode;
-
-    /* how the cigar-string is treated */
-    enum cigar_treatment cigar_treatment;
-
-    /* in which format should the output be created */
-    enum output_format output_format;
-
-    /* should the output be compressed / in which format */
-    enum output_compression output_compression;
-
-    /* how to process in case of: aligned reads requested + no regions given */
-    enum dump_mode dump_mode;
-
-    /* use a mate-cache to dump aligned and half-aligned reads */
-    bool use_mate_cache;
-    bool force_legacy;
-
-    /* which tables have to be processed/dumped */
-    bool dump_primary_alignments;
-    bool dump_secondary_alignments;
-    bool dump_cg_evidence;
-    bool dump_cg_sam;
-    bool dump_cg_ev_dnb;
-    bool merge_cg_cigar;
-
-    bool dump_unaligned_reads;
-    bool dump_unaligned_only;
-    bool dump_cga_tools_mode;
-
-    /* what alignment/unaligned reads should be dumped */
-    bool print_half_unaligned_reads;
-    bool print_fully_unaligned_reads;
-
-    /* flag that shows if we need to filter by matepair-distance */
-    bool use_matepair_filter;
-    bool use_min_mapq;
-
-    /* options changing the output-format */
-    bool use_seqid_as_refname;
-    bool use_long_cigar;
-    bool print_matches_as_equal_sign;
-    bool print_spot_group_in_name;
-    bool reverse_unaligned_reads;
-    bool print_alignment_id_in_column_xi;
-    bool report_options;
-    bool report_cache;
-    bool print_cg_names;
-
-    uint8_t qual_quant_matrix[ 256 ];
-} samdump_opts;
-
-
-typedef struct foreach_reference_func
-{
-    rc_t ( CC * on_reference ) ( const char * name, Vector *ranges, void *data );
-    const char * name;
-    void * data;
-    rc_t rc;
-} foreach_reference_func;
-
-
-rc_t foreach_reference( BSTree * regions,
-    rc_t ( CC * on_reference ) ( const char * name, Vector *ranges, void *data ), 
-    void *data );
-
-
-rc_t gather_options( Args * args, samdump_opts * opts );
-void report_options( const samdump_opts * opts );
-void release_options( samdump_opts * opts );
-
-bool filter_by_matepair_dist( const samdump_opts * opts, int32_t tlen );
-
-bool is_this_alignment_requested( const samdump_opts * opts, const char *refname, uint32_t refname_len,
-                                  uint64_t start, uint64_t len );
-
-bool test_limit_reached( const samdump_opts * opts, uint64_t rows_so_far );
-
-rc_t dump_name( const samdump_opts * opts, int64_t seq_spot_id,
-                const char * spot_group, uint32_t spot_group_len );
-rc_t dump_name_legacy( const samdump_opts * opts, const char * name, size_t name_len,
-                       const char * spot_group, uint32_t spot_group_len );
-
-rc_t dump_quality( const samdump_opts * opts, char const *quality, uint32_t qual_len, bool reverse );
-
-rc_t dump_quality_33( const samdump_opts * opts, char const *quality, uint32_t qual_len, bool reverse );
-
-#endif
diff --git a/tools/sra-pileup/sam-dump.c b/tools/sra-pileup/sam-dump.c
deleted file mode 100644
index 4532c97..0000000
--- a/tools/sra-pileup/sam-dump.c
+++ /dev/null
@@ -1,4917 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include <klib/report.h>
-#include <klib/container.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/text.h>
-#include <klib/status.h>
-#include <klib/rc.h>
-#include <klib/vector.h>
-#include <klib/printf.h>
-#include <klib/data-buffer.h>
-#include <vfs/path.h>
-#include <vfs/path-priv.h>
-#include <kfs/file.h>
-#include <kfs/buffile.h>
-#include <kfs/gzip.h>
-#include <kfs/bzip.h>
-#include <kdb/meta.h>
-#include <kdb/namelist.h>
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <insdc/insdc.h>
-#include <insdc/sra.h>
-#include <vdb/report.h>
-#include <vdb/manager.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
-#include <vdb/schema.h>
-#include <vdb/dependencies.h>
-#include <sra/sraschema.h>
-#include <sra/srapath.h>
-#include <align/dna-reverse-cmpl.h>
-#include <align/iterator.h>
-#include <align/reference.h>
-#include <align/quality-quantizer.h>
-
-#include <kfs/directory.h>
-#include <os-native.h>
-#include <sysalloc.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <limits.h>
-#include <string.h>
-#include <strtol.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "debug.h"
-/* #include "sam-dump.vers.h" */
-
-#if _ARCH_BITS == 64
-#define USE_MATE_CACHE 1
-#define CURSOR_CACHE (4 * 1024 * 1024 * 1024UL)
-#else
-#define USE_MATE_CACHE 0
-#define CURSOR_CACHE (256 * 1024 * 1024)
-#endif
-
-
-
-typedef struct TAlignedRegion_struct
-{
-    char name[1024];
-    struct {
-        INSDC_coord_zero from;
-        INSDC_coord_zero to;
-    } r[10240];
-    int rq;
-    INSDC_coord_zero max_to;
-    INSDC_coord_zero min_from;
-    int printed;
-} TAlignedRegion;
-
-
-typedef struct TMatepairDistance_struct
-{
-    uint32_t from;
-    uint32_t to;
-} TMatepairDistance;
-
-
-struct params_s
-{
-    /* which outputs are on */
-    bool primaries;
-    bool secondaries;
-    bool unaligned;
-    bool cg_evidence;
-    bool cg_ev_dnb;
-    bool cg_sam;
-    
-    bool use_seqid;
-    bool long_cigar;
-    bool reheader;
-    bool noheader;
-    bool hide_identical;
-    bool fasta;
-    bool fastq;
-    bool spot_group_in_name;
-    bool cg_friendly_names;
-    bool reverse_unaligned;
-    bool unaligned_spots;
-    
-    bool output_gzip;
-    bool output_bz2;
-    
-    bool xi;
-    int cg_style; /* 0: raw; 1: with B's; 2: without B's, fixed up SEQ/QUAL; */
-    char const *name_prefix;
-    /* region filter data */
-    TAlignedRegion* region;
-    uint32_t region_qty;
-    /* distance filter data */
-    bool mp_dist_unknown;
-    TMatepairDistance* mp_dist;
-    uint32_t mp_dist_qty;
-    uint32_t test_rows;
-
-    /* mate info cache */
-    int64_t mate_row_gap_cachable;
-    
-    char const **comments;
-    
-    bool quantizeQual;
-    uint8_t qualQuant[256];
-    uint8_t qualQuantSingle; /*** the quality is quantized - single value, no need to retrieve **/
-};
-
-
-struct params_s const *param;
-ReferenceList const *gRefList;
-
-
-typedef union UData_union
-{
-    void const *v;
-    uint32_t const *u32;
-    int32_t const *i32;
-    int64_t const *i64;
-    uint64_t const *u64;
-    uint8_t const *u8;
-    char const *str;
-    bool const *tf;
-    INSDC_coord_one* coord1;
-    INSDC_coord_zero* coord0;
-    INSDC_coord_len* coord_len;
-    INSDC_coord_val* coord_val;
-    INSDC_SRA_xread_type* read_type;
-    INSDC_SRA_read_filter* read_filter;
-} UData;
-
-
-typedef struct SCol_struct
-{
-    char const *name;
-    uint32_t idx;
-    UData base;
-    uint32_t len;
-    bool optional;
-} SCol;
-
-
-typedef struct STable_struct
-{
-    char const *name;
-    VTable const *vtbl;
-} STable;
-
-
-typedef struct SCursCache_struct
-{
-    KVector* cache;
-    KVector* cache_unaligned_mate; /* keeps unaligned-mate for a half-aligned spots */
-    uint32_t sam_flags;
-    INSDC_coord_zero pnext;
-    int32_t tlen;
-    ReferenceObj const *ref;
-    /* cache stats */
-    uint64_t projected;
-    uint64_t added;
-    uint64_t hit;
-    uint64_t bad;
-} SCursCache;
-
-
-typedef struct SCurs_struct
-{
-    STable const *tbl;
-    VCursor const *vcurs;
-    SCursCache* cache;
-    SCursCache cache_local;
-    uint64_t col_reads_qty;
-} SCurs;
-
-enum eDSTableType
-{
-    edstt_NotSpecified,
-    edstt_Reference,
-    edstt_Sequence,
-    edstt_PrimaryAlignment,
-    edstt_SecondaryAlignment,
-    edstt_EvidenceAlignment,
-    edstt_EvidenceInterval
-};
-
-
-typedef struct DataSource_s {
-    STable tbl;
-    SCurs curs;
-    SCol *cols;
-    enum eDSTableType type;
-} DataSource;
-
-
-#define DATASOURCE_INIT(O, NAME) do { memset(&O, 0, sizeof(O)); O.tbl.name = NAME; O.curs.tbl = &O.tbl; } while(0)
-
-
-typedef struct SAM_dump_ctx_s
-{
-    VDatabase const *db;
-    char const *fullPath;
-    char const *accession;
-    char const *readGroup;
-    
-    DataSource ref;
-    DataSource pri;
-    DataSource sec;
-    DataSource evi;
-    DataSource eva;
-    DataSource seq;
-} SAM_dump_ctx_t;
-
-
-enum ealg_col
-{
-    alg_SEQ_SPOT_ID = 0,
-    alg_SEQ_NAME,
-    alg_MAPQ,
-    alg_CIGAR,
-    alg_READ,
-    alg_READ_START,
-    alg_READ_LEN,
-    alg_CIGAR_LEN,
-    alg_SAM_QUALITY,
-    alg_SPOT_GROUP,
-    alg_SEQ_SPOT_GROUP,
-    alg_SEQ_READ_ID,
-    alg_REVERSED,
-    alg_ALIGNMENT_COUNT,
-    alg_EDIT_DISTANCE,
-    alg_READ_FILTER,
-    alg_MATE_ALIGN_ID,
-    alg_MATE_REF_NAME,
-    alg_SAM_FLAGS,
-    alg_REF_START,
-    alg_MATE_REF_POS,
-    alg_ALIGN_GROUP,
-    alg_EVIDENCE_ALIGNMENT_IDS,
-    alg_REF_PLOIDY,
-    alg_REF_ID,
-    alg_MATE_REF_ID,
-    alg_HAS_MISMATCH,
-    alg_REGION_FILTER,
-    alg_REF_NAME = alg_REGION_FILTER,
-    alg_REF_SEQ_ID,
-    alg_REF_POS,
-    alg_REF_LEN,
-    alg_DISTANCE_FILTER,
-    alg_TEMPLATE_LEN = alg_DISTANCE_FILTER,
-    alg_CG_TAGS_STR
-};
-
-
-SCol const g_alg_col_tmpl[] =
-{
-    { "SEQ_SPOT_ID", 0, {NULL}, 0, true },
-    { "SEQ_NAME", 0, {NULL}, 0, false },
-    { "MAPQ", 0, {NULL}, 0, false },
-    { "?CIGAR column name?", 0, {NULL}, 0, false },
-    { "?READ column name?", 0, {NULL}, 0, false },
-    { "READ_START", 0, {NULL}, 0, false }, /* READ_START */
-    { "READ_LEN", 0, {NULL}, 0, false }, /* READ_LEN */
-    { "?CIGAR_LEN column name?", 0, {NULL}, 0, true }, /* CIGAR_LEN */
-    { "SAM_QUALITY", 0, {NULL}, 0, false },
-    { "SPOT_GROUP", 0, {NULL}, 0, true },
-    { "SEQ_SPOT_GROUP", 0, {NULL}, 0, true },
-    { "SEQ_READ_ID", 0, {NULL}, 0, true },
-    { "REF_ORIENTATION", 0, {NULL}, 0, true },
-    { "ALIGNMENT_COUNT", 0, {NULL}, 0, true },
-    { "EDIT_DISTANCE", 0, {NULL}, 0, false },
-    { "", 0, {NULL}, 0, false },
-    /* start cols used as standalone in DumpUnaligned */
-    /* MATE_ALIGN_ID col must preceeed
-       MATE_REF_NAME, MATE_REF_POS, SAM_FLAGS, TEMPLATE_LEN for cache to work */
-    { "MATE_ALIGN_ID", 0, {NULL}, 0, false },
-    { "?MATE_REF_NAME column name?", 0, {NULL}, 0, false },
-    { "SAM_FLAGS", 0, {NULL}, 0, false },
-    { "REF_START", 0, {NULL}, 0, false },  /* priming cursor cache */
-    { "MATE_REF_POS", 0, {NULL}, 0, false },
-    { "ALIGN_GROUP", 0, {NULL}, 0, true },
-    { "", 0, {NULL}, 0, true }, /* EVIDENCE_ALIGNMENT_IDS */
-    { "", 0, {NULL}, 0, true }, /* REF_PLOIDY */
-    { "REF_ID", 0, {NULL}, 0, true }, /* REF_ID */
-    { "MATE_REF_ID", 0, {NULL}, 0, true }, /* priming cursor cache */
-    { "(bool)HAS_MISMATCH", 0, {NULL}, 0, true },
-    /* these are read before any other for filtering so they must be last */
-    { "REF_NAME", 0, {NULL}, 0, false },
-    { "REF_SEQ_ID", 0, {NULL}, 0, false },
-    { "REF_POS", 0, {NULL}, 0, false },
-    /* end cols used as standalone in DumpUnaligned */
-    { "REF_LEN", 0, {NULL}, 0, false },
-    { "TEMPLATE_LEN", 0, {NULL}, 0, false },
-    { NULL, 0, {NULL}, 0, false }, /* alg_CG_TAGS_STR */
-    { NULL, 0, {NULL}, 0, false }
-};
-
-enum eseq_col
-{
-    seq_READ = 0,
-    seq_QUALITY,
-    seq_SPOT_GROUP,
-    seq_READ_START,
-    seq_READ_LEN,
-    seq_READ_TYPE,
-    seq_READ_FILTER,
-    seq_NAME,
-    seq_PRIMARY_ALIGNMENT_ID
-};
-
-static 
-SCol const gSeqCol[] =
-{
-    { "READ", 0, {NULL}, 0, false },
-    { "(INSDC:quality:text:phred_33)QUALITY", 0, {NULL}, 0, false },
-    { "SPOT_GROUP", 0, {NULL}, 0, true },
-    { "READ_START", 0, {NULL}, 0, true },
-    { "READ_LEN", 0, {NULL}, 0, true },
-    { "READ_TYPE", 0, {NULL}, 0, true },
-    { "READ_FILTER", 0, {NULL}, 0, true },
-    { "NAME", 0, {NULL}, 0, true },
-    /* must be last in list to avoid reading all columns */
-    { "PRIMARY_ALIGNMENT_ID", 0, {NULL}, 0, true },
-    { NULL, 0, {NULL}, 0, false }
-};
-
-
-static rc_t RefSeqPrint( void )
-{
-    rc_t rc = 0;
-    uint32_t i, count = 0;
-    
-    rc = ReferenceList_Count( gRefList, &count );
-    for( i = 0; rc == 0 && i < count; i++ )
-    {
-        ReferenceObj const *obj;
-        rc = ReferenceList_Get( gRefList, &obj, i );
-        if ( rc == 0 )
-        {
-            char const *seqid = NULL;
-            rc = ReferenceObj_SeqId( obj, &seqid );
-            if ( rc == 0 )
-            {
-                char const *name = NULL;
-                rc = ReferenceObj_Name( obj, &name );
-                if ( rc == 0 )
-                {
-                    INSDC_coord_len len;
-                    rc = ReferenceObj_SeqLength( obj, &len );
-                    if ( rc == 0 )
-                    {
-                        char const *nm;
-                        if ( param->use_seqid && seqid != NULL && seqid[ 0 ] != '\0' )
-                        {
-                            nm = seqid;
-                        }
-                        else
-                        {
-                            nm = name;
-                        }
-                        KOutMsg( "@SQ\tSN:%s", nm );
-                        if ( nm != seqid && seqid != NULL && seqid[ 0 ] != '\0' && strcmp( nm, seqid ) != 0)
-                        {
-                            KOutMsg( "\tAS:%s", seqid );
-                        }
-                        KOutMsg( "\tLN:%u\n", len );
-                    }
-                }
-            }
-            ReferenceObj_Release( obj );
-        }
-    }
-    return rc;
-}
-
-
-#if USE_MATE_CACHE
-static rc_t Cache_Init( SCursCache* c )
-{
-    if ( c != NULL )
-    {
-	rc_t rc;
-        memset( c, 0, sizeof( *c ) );
-        rc=KVectorMake( &c->cache );
-	if(rc == 0){
-		rc=KVectorMake( &c->cache_unaligned_mate );
-	}
-    }
-    return 0;
-}
-
-
-static void Cache_Close( char const *name, SCursCache* c )
-{
-    if ( c != NULL )
-    {
-        KVectorRelease( c->cache );
-        KVectorRelease( c->cache_unaligned_mate );
-        if ( c->added > 0 )
-        {
-            SAM_DUMP_DBG( 2, ( "%s cache stats: projected %lu added of those %lu; "
-                               "hits %lu of those broken %lu;\n",
-                               name, c->projected, c->added, c->hit, c->bad ) );
-        }
-    }
-    memset( c, 0, sizeof( *c ) );
-}
-
-
-static rc_t Cache_Add( uint64_t key, SCurs const *curs, SCol const *cols )
-{
-    /* compact values for mate record to cache as:
-        pos_delta - 32bit, ref_proj - 11bit, flags - 11bit, rnext_idx - 10bit = 64bit
-    */
-    rc_t rc = 0;
-    ReferenceObj const *r = NULL;
-    uint32_t rid = 0;
-    uint64_t val = 0;
-    int64_t mate_id = cols[ alg_MATE_ALIGN_ID ].len > 0 ? cols[ alg_MATE_ALIGN_ID ].base.i64[ 0 ] : 0;
-
-    rc = ReferenceList_Find( gRefList, &r, cols[ alg_REF_NAME ].base.str, cols[ alg_REF_NAME ].len );
-    if ( rc == 0 )
-    {
-        rc = ReferenceObj_Idx( r, &rid );
-    }
-#if _DEBUGGING
-    {
-        char const *rname = NULL;
-        curs->cache->projected++;
-        ReferenceObj_Name( r, &rname );
-        SAM_DUMP_DBG( 10, ( "to cache row %li for mate %li: %u,%s[%hu],%u,%u,%i",
-            key, mate_id, cols[ alg_SAM_FLAGS ].base.u32[ 0 ], rname, rid,
-            cols[ alg_REF_POS ].len ? cols[ alg_REF_POS ].base.coord0[ 0 ] : 0,
-            cols[ alg_MATE_REF_POS ].len ? cols[ alg_MATE_REF_POS ].base.coord0[ 0 ] : 0,
-            cols[ alg_TEMPLATE_LEN ].len > 0 ? cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] : 0));
-    }
-#endif
-    if ( rc == 0 && !( rid & 0xFC00 ) )
-    {
-        int64_t pos_delta64;
-        int32_t pos_delta32;
-
-        if ( mate_id != 0 )
-        {
-            ReferenceObj const *rm = NULL;
-            uint32_t rm_id;
-
-            rc = ReferenceList_Find( gRefList, &rm, cols[ alg_MATE_REF_NAME ].base.str, cols[ alg_MATE_REF_NAME ].len );
-            if ( rc == 0 )
-            {
-                rc = ReferenceObj_Idx( rm, &rm_id );
-            }
-            assert( rm != NULL );
-            if ( rc == 0 && rid != rm_id )
-            {
-                char const *rm_name = NULL;
-                ReferenceObj_Name( rm, &rm_name );
-                mate_id = 0;
-                SAM_DUMP_DBG( 10, ( " mate ref differ: %s[%hu]!", rm_name, rm_id ) );
-            }
-            ReferenceObj_Release( rm );
-        }
-
-        if ( mate_id != 0 )
-        {
-            pos_delta64 = cols[ alg_MATE_REF_POS ].base.coord0[ 0 ] - cols[ alg_REF_POS ].base.coord0[ 0 ];
-        }
-        else
-        {
-            pos_delta64 = cols[ alg_REF_POS ].base.coord0[ 0 ];
-        }
-
-        pos_delta32 = pos_delta64;
-        if ( pos_delta64 == pos_delta32 )
-        {
-            int64_t ref_proj;
-            if ( mate_id == 0 )
-            {
-                ref_proj = 0; /* indicates full value in delta */
-            }
-            else if ( cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] < 0 )
-            {
-                assert( pos_delta32 <= 0 );
-                ref_proj = pos_delta32 - cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ];
-            }
-            else
-            {
-                assert( pos_delta32 >= 0 );
-                ref_proj = cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] - pos_delta32;
-            }
-
-            if ( !( ref_proj & 0xFFFFF800 ) )
-            {
-                val = ( pos_delta64 << 32 ) | ( ref_proj << 21 ) | ( cols[ alg_SAM_FLAGS ].base.u32[ 0 ] << 10 ) | rid;
-                rc = KVectorSetU64( curs->cache->cache, key, val );
-            }
-        }
-    }
-    ReferenceObj_Release( r );
-
-#if _DEBUGGING
-    if ( val == 0 )
-    {
-        SAM_DUMP_DBG( 10, ( " --> out of range\n" ) );
-    }
-    else
-    {
-        SAM_DUMP_DBG( 10, ( " --> %016lX\n", val ) );
-        curs->cache->added++;
-    }
-#endif
-    return rc;
-}
-
-
-static rc_t Cache_Get( SCurs const *curs, uint64_t key, uint64_t* val )
-{
-    rc_t rc = KVectorGetU64( curs->cache->cache, key, val );
-    if ( rc == 0 )
-    {
-        uint32_t id = ( *val & 0x3FF );
-#if _DEBUGGING
-        curs->cache->hit++;
-#endif
-        KVectorUnset( curs->cache->cache, key );
-        rc = ReferenceList_Get( gRefList, &curs->cache->ref, id );
-        if ( rc != 0 )
-        {
-            *val = 0;
-            curs->cache->ref = NULL;
-            rc = RC( rcExe, rcNoTarg, rcSearching, rcItem, rcNotFound );
-#if _DEBUGGING
-            curs->cache->bad++;
-#endif
-        }
-        else
-        {
-            SAM_DUMP_DBG( 10, ( "from cache row %li %016lX", key, *val ) );
-        }
-    }
-    return rc;
-}
-
-
-static void Cache_Unpack( uint64_t val, int64_t mate_id, SCurs const *curs, SCol* cols )
-{
-    int32_t pos_delta = ( val & 0xFFFFFFFF00000000 ) >> 32;
-    uint32_t ref_proj = ( val & 0x00000000FFE00000 ) >> 21;
-    uint32_t flags = ( val & 0x00000000001FFC00 ) >> 10;
-
-    if ( mate_id != 0 )
-    {
-        /* adjust flags for mate record */
-        curs->cache->sam_flags = ( flags & 0x1 ) |
-                                 ( flags & 0x2 ) |
-                                 ( ( flags & 0x8 ) >> 1 ) |
-                                 ( ( flags & 0x4 ) << 1 ) |
-                                 ( ( flags & 0x20 ) >> 1 ) |
-                                 ( ( flags & 0x10 ) << 1 ) |
-                                 ( ( flags & 0x40 ) ? 0x80 : 0x40 ) |
-                                 ( flags & 0x700 );
-    }
-    else
-    {
-        /* preserve flags as if original records is restored */
-        curs->cache->sam_flags = flags;
-    }
-    cols[ alg_SAM_FLAGS ].base.u32 = &curs->cache->sam_flags;
-    cols[ alg_SAM_FLAGS ].len = sizeof( curs->cache->sam_flags );
-
-    if ( param->use_seqid )
-    {
-        ReferenceObj_SeqId( curs->cache->ref, &cols[ alg_MATE_REF_NAME ].base.str );
-    }
-    else
-    {
-        ReferenceObj_Name( curs->cache->ref, &cols[ alg_MATE_REF_NAME ].base.str );
-    }
-
-    cols[ alg_MATE_REF_NAME ].len = string_size( cols[ alg_MATE_REF_NAME ].base.str );
-
-    if ( ref_proj == 0 )
-    {
-        curs->cache->pnext = pos_delta;
-        curs->cache->tlen = 0;
-    }
-    else if ( pos_delta > 0 )
-    {
-        curs->cache->pnext = ( cols[ alg_REF_POS ].len > 0 ? cols[ alg_REF_POS ].base.coord0[ 0 ] : 0 ) - pos_delta;
-        curs->cache->tlen = - ( ref_proj + pos_delta );
-    }
-    else
-    {
-        curs->cache->pnext = ( cols[ alg_REF_POS ].len > 0 ? cols[ alg_REF_POS ].base.coord0[ 0 ] : 0 ) - pos_delta;
-        curs->cache->tlen = ref_proj - pos_delta;
-    }
-
-    cols[ alg_MATE_REF_POS ].base.coord0 = &curs->cache->pnext;
-    cols[ alg_MATE_REF_POS ].len = sizeof( curs->cache->pnext );
-    cols[ alg_TEMPLATE_LEN ].base.i32 = &curs->cache->tlen;
-    cols[ alg_TEMPLATE_LEN ].len = sizeof( curs->cache->tlen );
-    {
-        uint32_t id;
-        ReferenceObj_Idx( curs->cache->ref, &id );
-        SAM_DUMP_DBG( 10, ( " --> mate %li: %u,%s[%hu],%u,%i\n",
-            mate_id, curs->cache->sam_flags, cols[ alg_MATE_REF_NAME ].base.str,
-            id, curs->cache->pnext, curs->cache->tlen ) );
-    }
-}
-#endif /* USE_MATE_CACHE */
-
-#if 0
-static rc_t OpenVTable( VDatabase const *db, STable* tbl, char const *name, bool optional )
-{
-    rc_t rc = VDatabaseOpenTableRead( db, &tbl->vtbl, name );
-    if ( GetRCState( rc ) == rcNotFound && optional )
-    {
-        rc = 0;
-        tbl->vtbl = NULL;
-    }
-    tbl->name = name;
-    return rc;
-}
-#endif
-
-static rc_t Cursor_Open( STable const *const tbl, SCurs *const curs, SCol cols[], SCursCache* cache )
-{
-    rc_t rc = 0;
-    unsigned i;
-
-    curs->vcurs = NULL;
-    if ( tbl == NULL || tbl->vtbl == NULL )
-        return 0;
-
-    rc = VTableCreateCachedCursorRead( tbl->vtbl, &curs->vcurs, CURSOR_CACHE );
-    if ( rc != 0 )
-        return rc;
-    
-    rc = VCursorPermitPostOpenAdd( curs->vcurs );
-    if ( rc != 0 )
-        return rc;
-
-    if ( rc == 0 )
-    {
-        rc = VCursorOpen( curs->vcurs );
-        if ( rc == 0 )
-        {
-#if USE_MATE_CACHE
-            if ( cache != NULL )
-            {
-                curs->cache = cache;
-            }
-            else
-            {
-                curs->cache = &curs->cache_local;
-                rc = Cache_Init( &curs->cache_local );
-            }
-#endif /* USE_MATE_CACHE */
-            curs->tbl = tbl;
-        }
-    }
-    
-    for ( i = 0; cols[ i ].name != NULL; ++i )
-    {
-        if ( cols[ i ].name[ 0 ] == 0 )
-            continue;
-        rc = VCursorAddColumn( curs->vcurs, &cols[ i ].idx, cols[ i ].name );
-        if ( GetRCObject( rc ) == rcColumn )
-        {
-            switch ( GetRCState( rc ) )
-            {
-            case rcNotFound:
-            case rcUndefined:
-                if ( !cols[ i ].optional )
-                    break;
-            case rcExists:
-                rc = 0;
-            default:
-                break;
-            }
-        }
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "table $(t) column $(c)", "t=%s,c=%s", tbl->name, cols[ i ].name ) );
-            break;
-        }
-    }
-    if ( rc != 0 )
-    {
-        VCursorRelease( curs->vcurs );
-        curs->vcurs = NULL;
-        if ( rc != KLogLastErrorCode() )
-        {
-            (void)PLOGERR( klogErr, ( klogErr, rc, "table $(t)", "t=%s", tbl->name ) );
-        }
-    }
-    else
-    {
-        SAM_DUMP_DBG( 2, ( "%s: table %s\n", __func__, curs->tbl->name ) );
-    }
-    return rc;
-}
-
-
-static void Cursor_Close( SCurs* curs )
-{
-    if ( curs != NULL && curs->vcurs != NULL )
-    {
-        SAM_DUMP_DBG( 2, ( "%s: table %s, columns rows read %lu\n", __func__, curs->tbl->name, curs->col_reads_qty ) );
-        VCursorRelease( curs->vcurs );
-#if USE_MATE_CACHE
-        if ( curs->cache == &curs->cache_local )
-        {
-            Cache_Close( curs->tbl->name, curs->cache );
-        }
-#endif /* USE_MATE_CACHE */
-        memset( curs, 0, sizeof( *curs ) );
-    }
-}
-
-
-static rc_t Cursor_Read( DataSource *ds, int64_t row_id, int firstCol, unsigned nCols )
-{
-    rc_t rc = 0;
-
-    if ( ds->curs.vcurs == NULL )
-    {
-        rc = Cursor_Open( &ds->tbl, &ds->curs, ds->cols, ds->curs.cache );
-        if ( rc != 0 )
-            return rc;
-    }
-    if (1)
-    {
-        SCol *const col = &ds->cols[ firstCol ];
-        unsigned i;
-        
-        for ( i = 0; i < nCols && col[ i ].name; ++i )
-        {
-            uint32_t const idx = col[ i ].idx;
-            
-            if ( idx != 0 )
-            {
-                uint32_t elem_bits;
-                uint32_t bit_offset;
-                uint32_t elem_count;
-                void const *base;
-                
-                rc = VCursorCellDataDirect( ds->curs.vcurs, row_id, idx, &elem_bits, &base, &bit_offset, &elem_count );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogWarn, ( klogWarn, rc, "reading $(t) row $(r), column $(c)", "t=%s,r=%li,c=%s",
-                                               ds->tbl.name, row_id, col[ i ].name ) );
-                    return rc;
-                }
-                
-                assert( bit_offset == 0 );
-                assert( elem_bits % 8 == 0 );
-                
-                col[ i ].base.v = base;
-                col[ i ].len = elem_count;
-            }
-        }
-    }
-    return rc;
-}
-
-struct
-{
-    KWrtWriter writer;
-    void* data;
-    KFile* kfile;
-    uint64_t pos;
-} g_out_writer = {NULL};
-
-
-static rc_t CC BufferedWriter( void *const self, char const buffer[], size_t const bufsize, size_t *const pnum_writ )
-{
-    rc_t rc = 0;
-    size_t written = 0;
-
-    assert( buffer != NULL );
-
-    while ( written < bufsize )
-    {
-        size_t n;
-
-        rc = KFileWrite( g_out_writer.kfile, g_out_writer.pos + written, &buffer[ written ], bufsize - written, &n );
-        if ( rc != 0 )
-            break;
-        written += n;
-    }
-    g_out_writer.pos += written;
-    if ( pnum_writ != NULL )
-        *pnum_writ = written;
-    return rc;
-}
-
-
-static rc_t BufferedWriterMake( bool gzip, bool bzip2 )
-{
-    rc_t rc = 0;
-
-    if ( gzip && bzip2 )
-    {
-        rc = RC( rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous );
-    }
-    else if ( g_out_writer.writer != NULL )
-    {
-        rc = RC( rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous );
-    }
-    else
-    {
-        rc = KFileMakeStdOut( &g_out_writer.kfile );
-        if ( rc == 0 )
-        {
-            g_out_writer.pos = 0;
-            if ( gzip )
-            {
-                KFile* gz;
-                rc = KFileMakeGzipForWrite( &gz, g_out_writer.kfile );
-                if ( rc == 0 )
-                {
-                    KFileRelease( g_out_writer.kfile );
-                    g_out_writer.kfile = gz;
-                }
-            }
-            else if ( bzip2 )
-            {
-                KFile* bz;
-                rc = KFileMakeBzip2ForWrite( &bz, g_out_writer.kfile );
-                if ( rc == 0 )
-                {
-                    KFileRelease( g_out_writer.kfile );
-                    g_out_writer.kfile = bz;
-                }
-            }
-            if ( rc == 0 )
-            {
-                KFile* buf;
-                rc = KBufFileMakeWrite( &buf, g_out_writer.kfile, false, 128 * 1024 );
-                if ( rc == 0 )
-                {
-                    KFileRelease( g_out_writer.kfile );
-                    g_out_writer.kfile = buf;
-                    g_out_writer.writer = KOutWriterGet();
-                    g_out_writer.data = KOutDataGet();
-                    rc = KOutHandlerSet( BufferedWriter, &g_out_writer );
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static void BufferedWriterRelease( bool flush )
-{
-    if ( flush )
-    {
-        /* avoid flushing buffered data after failure */
-        KFileRelease( g_out_writer.kfile );
-    }
-    if ( g_out_writer.writer != NULL )
-    {
-        KOutHandlerSet( g_out_writer.writer, g_out_writer.data );
-    }
-    g_out_writer.writer = NULL;
-}
-
-
-typedef struct ReadGroup
-{
-    BSTNode node;
-    char name[ 1024 ];
-} ReadGroup;
-
-
-static int CC ReadGroup_sort( BSTNode const *item, BSTNode const *node )
-{
-    return strcmp( ( ( ReadGroup const * )item )->name, ( ( ReadGroup const * ) node )->name );
-}
-
-
-static rc_t ReadGroup_print( char const *nm )
-{
-    rc_t rc = 0;
-    if ( nm[ 0 ] != '\0' && strcasecmp( nm, "default" ) )
-    {
-        rc = KOutMsg( "@RG\tID:%s\n", nm );
-    }
-    return rc;
-}
-
-
-static void CC ReadGroup_dump( BSTNode *n, void *data )
-{
-    ReadGroup const *g = ( ReadGroup* )n;
-    ReadGroup_print( g->name );
-}
-
-
-static rc_t CC DumpReadGroupsScan( STable const *tbl )
-{
-    SCol cols[] =
-    {
-        { "SPOT_GROUP", 0, {NULL}, 0, false },
-        { NULL, 0, {NULL}, 0, false }
-    };
-    rc_t rc = 0;
-    BSTree tree;
-    DataSource ds;
-
-    memset( &ds, 0, sizeof( ds ) );
-    ds.cols = cols;
-
-    BSTreeInit( &tree );
-    rc = Cursor_Open( tbl, &ds.curs, ds.cols, NULL );
-    if ( rc == 0 )
-    {
-        int64_t start;
-        uint64_t count;
-
-        rc = VCursorIdRange( ds.curs.vcurs, 0, &start, &count );
-        if ( rc == 0 )
-        {
-            ReadGroup* node = NULL;
-            uint32_t last_len = 0;
-
-            while ( count > 0 && rc == 0 )
-            {
-                rc = Cursor_Read( &ds, start, 0, ~(unsigned)0 );
-                if ( rc == 0 && cols[ 0 ].len != 0 )
-                {
-                    if ( node == NULL ||
-                         last_len != cols[ 0 ].len ||
-                         strncmp( cols[ 0 ].base.str, node->name, cols[ 0 ].len ) != 0 )
-                    {
-                        node = malloc( sizeof( *node ) );
-                        if ( node == NULL )
-                        {
-                            rc = RC( rcExe, rcNode, rcConstructing, rcMemory, rcExhausted );
-                        }
-                        else if ( cols[ 0 ].len > sizeof( node->name ) )
-                        {
-                            rc = RC( rcExe, rcString, rcCopying, rcBuffer, rcInsufficient ); 
-                        }
-                        else
-                        {
-                            last_len = cols[ 0 ].len;
-                            string_copy( node->name, ( sizeof node->name ) - 1, cols[ 0 ].base.str, last_len );
-                            node->name[ last_len ] = '\0';
-                            rc = BSTreeInsertUnique( &tree, &node->node, NULL, ReadGroup_sort );
-                            if ( GetRCState( rc ) == rcExists )
-                            {
-                                free( node );
-                                rc = 0;
-                            }
-                        }
-                    }
-                }
-                else if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcRow )
-                {
-                    rc = 0;
-                }
-                start++;
-                count--;
-            }
-        }
-        Cursor_Close( &ds.curs );
-    }
-
-    if ( rc == 0 )
-    {
-        BSTreeForEach( &tree, false, ReadGroup_dump, NULL );
-    }
-    else if ( rc != KLogLastErrorCode() )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "$(f)", "f=%s", __func__ ) );
-    }
-    BSTreeWhack( &tree, NULL, NULL );
-    return rc;
-}
-
-
-rc_t CC DumpReadGroups( STable const *tbl )
-{
-    rc_t rc = 0;
-    KMetadata const *m;
-
-    /* try getting list from stats meta */
-    rc = VTableOpenMetadataRead( tbl->vtbl, &m );
-    if ( rc == 0 )
-    {
-        KMDataNode const *n;
-        rc = KMetadataOpenNodeRead( m, &n, "/STATS/SPOT_GROUP" );
-        if ( rc == 0 )
-        {
-            KNamelist* names;
-            rc = KMDataNodeListChild( n, &names );
-            if ( rc == 0 )
-            {
-                uint32_t i, q;
-                rc = KNamelistCount( names, &q );
-                if ( rc == 0 )
-                {
-                    for ( i = 0; rc == 0 && i < q; i++ )
-                    {
-                        char const *nm;
-                        rc = KNamelistGet( names, i, &nm );
-                        if ( rc == 0 )
-                        {
-                            rc = ReadGroup_print( nm );
-                        }
-                    }
-                }
-                KNamelistRelease( names );
-            }
-            KMDataNodeRelease( n );
-        }
-        KMetadataRelease( m );
-    }
-
-    if ( GetRCState( rc ) == rcNotFound )
-    {
-        rc = DumpReadGroupsScan( tbl );
-    }
-    else if ( rc != 0 && rc != KLogLastErrorCode() )
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "$(f)", "f=%s", __func__ ) );
-    }
-    return rc;
-}
-
-static rc_t Cursor_ReadAlign( SCurs const *curs, int64_t row_id, SCol* cols, uint32_t idx )
-{
-    rc_t rc = 0;
-    SCol* c = NULL;
-    SCol* mate_id = NULL;
-#if USE_MATE_CACHE
-    uint64_t cache_val = 0;
-    bool cache_miss = false;
-#endif /* USE_MATE_CACHE */
-
-    
-    for( ; rc == 0 && cols[ idx ].name != NULL; idx++ )
-    {
-        c = &cols[ idx ];
-        if ( c->idx != 0 )
-        {
-#if USE_MATE_CACHE
-            if ( mate_id != NULL && curs->cache != NULL && !cache_miss &&
-                ( idx == alg_SAM_FLAGS || idx == alg_MATE_REF_NAME || idx == alg_MATE_REF_POS || idx == alg_TEMPLATE_LEN ) &&
-                mate_id->idx && mate_id->len > 0 && mate_id->base.i64[ 0 ] > 0 )
-            {
-                if ( cache_val != 0 )
-                {
-                    continue;
-                }
-                rc = Cache_Get( curs, mate_id->base.u64[ 0 ], &cache_val );
-                if ( rc == 0 )
-                {
-                    continue;
-                }
-                else if ( !( GetRCObject( rc ) == rcItem && GetRCState( rc ) == rcNotFound ) )
-                {
-                    break;
-                }
-                else
-                {
-                    /* avoid multiple lookups in cache */
-                    cache_miss = true;
-                }
-            }
-#endif /* USE_MATE_CACHE */
-            rc = VCursorCellDataDirect( curs->vcurs, row_id, c->idx, NULL, &c->base.v, NULL, &c->len );
-            if ( rc == 0 )
-            {
-                if ( idx == alg_SEQ_SPOT_ID && ( c->len  ==0 || c->base.i64[ 0 ] == 0 ) )
-                {
-                    return RC( rcExe, rcColumn, rcReading, rcRow, rcNotFound );
-                }
-                if ( idx == alg_MATE_ALIGN_ID )
-                {
-                    mate_id = &cols[ alg_MATE_ALIGN_ID ];
-                }
-#if _DEBUGGING
-                ( ( SCurs* )curs )->col_reads_qty++;
-#endif
-            }
-        }
-        else
-        {
-            static INSDC_coord_zero readStart;
-            static INSDC_coord_len  readLen;
-            static INSDC_coord_len  cigarLen;
-            
-            switch ( (int)idx )
-            {
-            case alg_READ_START:
-                readStart = 0;
-                c->base.coord0 = &readStart;
-                c->len = 1;
-                break;
-            case alg_READ_LEN:
-                readLen = cols[ alg_READ ].len;
-                c->base.coord_len = &readLen;
-                c->len = 1;
-                break;
-            case alg_CIGAR_LEN:
-                cigarLen = cols[ alg_CIGAR ].len;
-                c->base.coord_len = &cigarLen;
-                c->len = 1;
-                break;
-            }
-        }
-    }
-
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogWarn, ( klogWarn, rc, "reading $(t) row $(r), column $(c)", "t=%s,r=%li,c=%s",
-            curs->tbl->name, row_id, c ? c->name : "<none>" ) );
-#if USE_MATE_CACHE
-    }
-    else if ( curs->cache == NULL )
-    {
-    }
-    else if ( cache_val == 0 )
-    {
-        /* this row is not from cache */
-        int64_t mate_align_id = ( mate_id != NULL && mate_id->len > 0 ) ? mate_id->base.i64[ 0 ] : 0;
-        if ( cols[ 0 ].idx != 0 && /* we have full cursor which means we are reading alignment table */
-            /* no mate -> unaligned (not secondary!) */
-            ( ( mate_align_id == 0 && param->unaligned && curs->cache != &curs->cache_local ) ||
-            /* 2nd mate with higher rowid and more than set gap rows away */
-              ( mate_align_id != 0 && mate_align_id > row_id && ( mate_align_id - row_id) > param->mate_row_gap_cachable ) ) )
-        {
-          rc = Cache_Add( row_id, curs, cols );
-        }
-	if(param->unaligned == true && mate_align_id == 0 ){
-	  rc = KVectorSetBool( curs->cache->cache_unaligned_mate, cols[alg_SEQ_SPOT_ID].base.i64[0], true );
-        }
-    }
-    else
-    {
-        Cache_Unpack( cache_val, row_id, curs, cols );
-#endif /* USE_MATE_CACHE */
-    }
-    return rc;
-}
-
-
-static rc_t DumpName( char const *name, size_t name_len,
-                      const char spot_group_sep, char const *spot_group,
-                      size_t spot_group_len, int64_t spot_id )
-{
-    rc_t rc = 0;
-    if ( param->cg_friendly_names )
-    {
-        rc = KOutMsg( "%.*s-1:%lu", spot_group_len, spot_group, spot_id );
-    }
-    else
-    {
-        if ( param->name_prefix != NULL )
-        {
-            rc = KOutMsg( "%s.", param->name_prefix );
-        }
-        rc = BufferedWriter( NULL, name, name_len, NULL );
-        if ( rc == 0 && param->spot_group_in_name && spot_group_len > 0 )
-        {
-            rc = BufferedWriter( NULL, &spot_group_sep, 1, NULL );
-            if ( rc == 0 )
-                rc = BufferedWriter( NULL, spot_group, spot_group_len, NULL );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t DumpQuality( char const quality[], unsigned const count, bool const reverse, bool const quantize )
-{
-    rc_t rc = 0;
-    if ( quality == NULL )
-    {
-        unsigned i;
-
-        for ( i = 0; rc == 0 && i < count; ++i )
-        {
-            char const newValue = ((param->qualQuant && param->qualQuantSingle)?param->qualQuantSingle:30) + 33;
-            rc = BufferedWriter( NULL, &newValue, 1, NULL );
-        }
-    }
-    else if ( reverse || quantize )
-    {
-        unsigned i;
-
-        for ( i = 0; rc == 0 && i < count; ++i )
-        {
-            char const qual = quality[ reverse ? ( count - i - 1 ) : i ];
-            char const newValue = quantize ? param->qualQuant[ qual - 33 ] + 33 : qual;
-
-            rc = BufferedWriter( NULL, &newValue, 1, NULL );
-        }
-    }
-    else
-    {
-        rc = BufferedWriter( NULL, quality, count, NULL );
-    }
-    return rc;
-}
-
-
-static rc_t DumpUnalignedFastX( const SCol cols[], uint32_t read_id, INSDC_coord_zero readStart, INSDC_coord_len readLen, int64_t row_id )
-{
-    /* fast[AQ] represnted in SAM fields:
-       [@|>]QNAME unaligned
-       SEQ
-       +
-       QUAL
-    */
-    rc_t rc = BufferedWriter( NULL, param->fastq ? "@" : ">", 1, NULL );
-
-    /* QNAME: [PFX.]SEQUENCE:NAME[#SPOT_GROUP] */
-    if ( rc == 0 )
-        rc = DumpName( cols[ seq_NAME ].base.str, cols[ seq_NAME ].len, '#',
-                       cols[ seq_SPOT_GROUP ].base.str, cols[ seq_SPOT_GROUP ].len, row_id );
-    if ( rc == 0 && read_id > 0 )
-    {
-        rc = KOutMsg( "/%u", read_id );
-    }
-    if ( rc == 0 )
-        rc = BufferedWriter( NULL, " unaligned\n", 11, NULL );
-
-    /* SEQ: SEQUENCE.READ */
-    if ( rc == 0 )
-        rc = BufferedWriter( NULL, &cols[ seq_READ ].base.str[readStart], readLen, NULL );
-    if ( rc == 0 && param->fastq )
-    {
-        /* QUAL: SEQUENCE.QUALITY */
-        rc = BufferedWriter( NULL, "\n+\n", 3, NULL );
-        if ( rc == 0 )
-            rc = DumpQuality( &cols[ seq_QUALITY ].base.str[ readStart ], readLen, false, param->quantizeQual );
-    }
-    if ( rc == 0 )
-        rc = BufferedWriter( NULL, "\n", 1, NULL );
-    return rc;
-}
-
-
-static rc_t DumpAlignedFastX( const SCol cols[], int64_t const alignId, uint32_t read_id, bool primary, bool secondary )
-{
-    rc_t rc = 0;
-    size_t nm;
-    unsigned readId;
-    unsigned const nreads = cols[ alg_READ_LEN ].len;
-
-    for ( readId = 0; readId < nreads && rc == 0 ; ++readId )
-    {
-        char const *qname = cols[ alg_SEQ_NAME ].base.str;
-        size_t qname_len = cols[ alg_SEQ_NAME ].len;
-        char synth_qname[ 40 ];
-        int64_t const spot_id = cols[alg_SEQ_SPOT_ID].len > 0 ? cols[alg_SEQ_SPOT_ID].base.i64[0] : 0;
-        char const *const read = cols[ alg_READ ].base.str + cols[ alg_READ_START ].base.coord0[ readId ];
-        char const *const qual = cols[ alg_SAM_QUALITY ].base.v
-                               ? cols[ alg_SAM_QUALITY ].base.str + cols[ alg_READ_START ].base.coord0[ readId ]
-                               : NULL;
-        unsigned const readlen = cols[ alg_READ_LEN ].base.coord_len[ readId ];
-
-        /* fast[AQ] represnted in SAM fields:
-           [@|>]QNAME primary|secondary ref=RNAME pos=POS mapq=MAPQ
-           SEQ
-           +
-           QUAL
-        */
-        rc = BufferedWriter( NULL, param->fastq ? "@" : ">", 1, NULL );
-        /* QNAME: [PFX.]SEQ_NAME[#SPOT_GROUP] */
-        if ( qname_len == 0 || qname == NULL )
-        {
-            string_printf( synth_qname, sizeof( synth_qname ), &qname_len, "%li.%u", alignId, readId + 1 );
-            qname = synth_qname;
-        }
-        nm = cols[ alg_SPOT_GROUP ].len ? alg_SPOT_GROUP : alg_SEQ_SPOT_GROUP;
-        if ( rc == 0 )
-            rc = DumpName( qname, qname_len, '.', cols[ nm ].base.str, cols[ nm ].len, spot_id);
-
-        if ( rc == 0 && read_id > 0 )
-            rc = KOutMsg( "/%u", read_id );
-
-        if ( rc == 0 )
-        {
-            if ( primary )
-            {
-                rc = BufferedWriter( NULL, " primary", 8, NULL );
-            }
-            else if ( secondary )
-            {
-                rc = BufferedWriter( NULL, " secondary", 10, NULL );
-            }
-        }
-
-        /* RNAME: REF_NAME or REF_SEQ_ID */
-        if ( rc == 0 )
-            rc = BufferedWriter( NULL, " ref=", 5, NULL );
-        if ( rc == 0 )
-        {
-            if ( param->use_seqid )
-            {
-                rc = BufferedWriter( NULL, cols[ alg_REF_SEQ_ID ].base.str, cols[ alg_REF_SEQ_ID ].len, NULL );
-            }
-            else
-            {
-                rc = BufferedWriter( NULL, cols[ alg_REF_NAME ].base.str, cols[ alg_REF_NAME ].len, NULL );
-            }
-        }
-
-        /* POS: REF_POS, MAPQ: MAPQ */
-        if ( rc == 0 )
-            rc = KOutMsg( " pos=%u mapq=%i\n", cols[ alg_REF_POS ].base.coord0[ 0 ] + 1, cols[ alg_MAPQ ].base.i32[ 0 ] );
-        
-        /* SEQ: READ */
-        if ( rc == 0 )
-            rc = BufferedWriter( NULL, read, readlen, NULL );
-        if ( rc == 0 && param->fastq )
-        {
-            /* QUAL: SAM_QUALITY */
-            rc = BufferedWriter( NULL, "\n+\n", 3, NULL );
-            if ( rc == 0 )
-                rc = DumpQuality( qual, readlen, false, param->quantizeQual );
-        }
-        if ( rc == 0 )
-            rc = BufferedWriter( NULL, "\n", 1, NULL );
-    }
-    return rc;
-}
-
-
-static
-rc_t DumpUnalignedSAM( const SCol cols[], uint32_t flags, INSDC_coord_zero readStart, INSDC_coord_len readLen,
-                       char const *rnext, uint32_t rnext_len, INSDC_coord_zero pnext, char const readGroup[], int64_t row_id )
-{
-    unsigned i;
-
-    /* QNAME: [PFX.]NAME[.SPOT_GROUP] */
-    rc_t rc = DumpName( cols[ seq_NAME ].base.str, cols[ seq_NAME ].len, '.',
-              cols[ seq_SPOT_GROUP ].base.str, cols[ seq_SPOT_GROUP ].len, row_id );
-
-    /* all these fields are const text for now */
-    if ( rc == 0 )
-        rc = KOutMsg( "\t%u\t*\t0\t0\t*\t%.*s\t%u\t0\t",
-             flags, rnext_len ? rnext_len : 1, rnext_len ? rnext : "*", pnext );
-    /* SEQ: SEQUENCE.READ */
-    if ( flags & 0x10 )
-    {
-        for( i = 0; i < readLen && rc == 0; i++ )
-        {
-            char base;
-
-            DNAReverseCompliment( &cols[ seq_READ ].base.str[ readStart + readLen - 1 - i ], &base, 1 );
-            rc = BufferedWriter( NULL, &base, 1, NULL );
-        }
-    }
-    else
-    {
-        rc = BufferedWriter( NULL, &cols[ seq_READ ].base.str[ readStart ], readLen, NULL );
-    }
-
-    if ( rc == 0 )
-        rc = BufferedWriter( NULL, "\t", 1, NULL );
-    /* QUAL: SEQUENCE.QUALITY */
-    if ( rc == 0 )
-        rc = DumpQuality( &cols[ seq_QUALITY ].base.str[ readStart ], readLen, flags & 0x10, param->quantizeQual );
-
-    /* optional fields: */
-    if ( rc == 0 )
-    {
-        if ( readGroup )
-        {
-            rc = BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-            if ( rc == 0 )
-                rc = BufferedWriter( NULL, readGroup, string_size( readGroup ), NULL );
-        }
-        else if ( cols[ seq_SPOT_GROUP ].len > 0 )
-        {
-            /* read group */
-            rc = BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-            if ( rc == 0 )
-                rc = BufferedWriter( NULL, cols[ seq_SPOT_GROUP ].base.str, cols[ seq_SPOT_GROUP ].len, NULL );
-        }
-    }
-    if ( rc == 0 )
-        rc = BufferedWriter( NULL, "\n", 1, NULL );
-    return rc;
-}
-
-
-static
-rc_t DumpAlignedSAM( SAM_dump_ctx_t *const ctx,
-                     DataSource const *ds,
-                     int64_t alignId,
-                     char const readGroup[],
-                     int type)
-{
-    rc_t rc = 0;
-    unsigned const nreads = ds->cols[ alg_READ_LEN ].len;
-    SCol const *const cols = ds->cols;
-    int64_t const spot_id = cols[alg_SEQ_SPOT_ID].len > 0 ? cols[alg_SEQ_SPOT_ID].base.i64[0] : 0;
-    INSDC_coord_one const read_id = cols[alg_SEQ_READ_ID].len > 0 ? cols[alg_SEQ_READ_ID].base.coord1[0] : 0;
-    INSDC_SRA_read_filter const *align_filter = cols[alg_READ_FILTER].len == nreads ? cols[alg_READ_FILTER].base.read_filter : NULL;
-    INSDC_SRA_read_filter seq_filter = 0;
-    unsigned readId;
-    unsigned cigOffset = 0;
-    
-    if ( align_filter == NULL && spot_id && read_id && ctx->seq.cols )
-    {
-        rc_t rc;
-        
-        rc = Cursor_Read(&ctx->seq, spot_id, seq_READ_FILTER, 1);
-        if (rc == 0 && ctx->seq.cols[seq_READ_FILTER].len >= read_id)
-            seq_filter = ctx->seq.cols[seq_READ_FILTER].base.read_filter[read_id - 1];
-    }
-
-    for ( readId = 0; readId < nreads && rc == 0 ; ++readId )
-    {
-        char const *qname = cols[ alg_SEQ_NAME ].base.str;
-        size_t qname_len = cols[ alg_SEQ_NAME ].len;
-        char const *const read = cols[ alg_READ ].base.str + cols[ alg_READ_START ].base.coord0[ readId ];
-        char const *const qual = cols[ alg_SAM_QUALITY ].base.v
-                               ? cols[ alg_SAM_QUALITY ].base.str + cols[ alg_READ_START ].base.coord0[ readId ]
-                               : NULL;
-        unsigned const readlen = nreads > 1 ? cols[ alg_READ_LEN ].base.coord_len[ readId ] : cols[ alg_READ ].len;
-        unsigned const sflags = cols[ alg_SAM_FLAGS ].base.v ? cols[ alg_SAM_FLAGS ].base.u32[ readId ] : 0;
-        INSDC_SRA_read_filter const filt = align_filter ? align_filter[readId] : seq_filter;
-        unsigned const flags = (sflags & ~((unsigned)0x200)) | ((filt == SRA_READ_FILTER_REJECT) ? 0x200 : 0);
-        char const *const cigar = cols[ alg_CIGAR ].base.str + cigOffset;
-        unsigned const cigLen = nreads > 1 ? cols[ alg_CIGAR_LEN ].base.coord_len[ readId ] : cols[ alg_CIGAR ].len;
-        size_t nm;
-        char synth_qname[1024];
-        
-        cigOffset += cigLen;
-        if ( qname_len == 0 || qname == NULL )
-        {
-            string_printf( synth_qname, sizeof( synth_qname ), &qname_len, "ALLELE_%li.%u", alignId, readId + 1 );
-            qname = synth_qname;
-        }
-        else if (ds->type == edstt_EvidenceAlignment) {
-            string_printf( synth_qname, sizeof( synth_qname ), &qname_len, "%u/ALLELE_%li.%u", spot_id, cols[ alg_REF_ID ].base.i64[ readId ], cols[ alg_REF_PLOIDY ].base.u32[ readId ] );
-            qname = synth_qname;
-        }
-        nm = cols[ alg_SPOT_GROUP ].len ? alg_SPOT_GROUP : alg_SEQ_SPOT_GROUP;
-        rc = DumpName( qname, qname_len, '.', cols[ nm ].base.str, cols[ nm ].len, spot_id );
-
-        /* FLAG: SAM_FLAGS */
-        if ( rc == 0 )
-        {
-            if ( ds->type == edstt_EvidenceAlignment )
-            {
-                bool const cmpl = cols[alg_REVERSED].base.v && readId < cols[alg_REVERSED].len ? cols[alg_REVERSED].base.tf[readId] : false;
-                rc = KOutMsg( "\t%u\t", 1 | (cmpl ? 0x10 : 0) | (read_id == 1 ? 0x40 : 0x80) );
-            }
-            else if ( !param->unaligned      /** not going to dump unaligned **/
-                 && ( flags & 0x1 )     /** but we have sequenced multiple fragments **/
-                 && ( flags & 0x8 ) )   /** and not all of them align **/
-            {
-                /*** remove flags talking about multiple reads **/
-                /* turn off 0x001 0x008 0x040 0x080 */
-                rc = KOutMsg( "\t%u\t", flags & ~0xC9 );
-            }
-            else
-            {
-                rc = KOutMsg( "\t%u\t", flags );
-            }
-        }
-
-        if ( rc == 0 )
-        {
-            if ( ds->type == edstt_EvidenceAlignment && type == 0 )
-            {
-                rc = KOutMsg( "ALLELE_%li.%u", cols[ alg_REF_ID ].base.i64[ readId ], cols[ alg_REF_PLOIDY ].base.u32[ readId ] );
-            }
-            else
-            {
-                /* RNAME: REF_NAME or REF_SEQ_ID */
-                if ( param->use_seqid )
-                    rc = BufferedWriter( NULL, cols[ alg_REF_SEQ_ID ].base.str, cols[ alg_REF_SEQ_ID ].len, NULL );
-                else
-                    rc = BufferedWriter( NULL, cols[ alg_REF_NAME ].base.str, cols[ alg_REF_NAME ].len, NULL );
-            }
-        }
-
-        if ( rc == 0 )
-            rc = BufferedWriter( NULL, "\t", 1, NULL );
-        
-        /* POS: REF_POS */
-        if ( rc == 0 )
-            rc = KOutMsg( "%i\t", cols[ alg_REF_POS ].base.coord0[ 0 ] + 1 );
-
-        /* MAPQ: MAPQ */
-        if ( rc == 0 )
-            rc = KOutMsg( "%i\t", cols[ alg_MAPQ ].base.i32[ 0 ] );
-
-        /* CIGAR: CIGAR_* */
-        if ( ds->type == edstt_EvidenceInterval )
-        {
-            unsigned i;
-            
-            for ( i = 0; i != cigLen && rc == 0; ++i )
-            {
-                char ch = cigar[i];
-                if ( ch == 'S' ) ch = 'I';
-                rc = BufferedWriter(NULL, &ch, 1, NULL);
-            }
-        }
-        else
-        {
-            if ( rc == 0 )
-                rc = BufferedWriter( NULL, cigar, cigLen, NULL );
-        }
-
-        if ( rc == 0 )
-            rc = BufferedWriter( NULL, "\t", 1, NULL );
-        
-        /* RNEXT: MATE_REF_NAME or '*' */
-        /* PNEXT: MATE_REF_POS or 0 */
-        if ( rc == 0 )
-        {
-            if ( cols[ alg_MATE_REF_NAME ].len )
-            {
-                if ( cols[ alg_MATE_REF_NAME ].len == cols[ alg_REF_NAME ].len &&
-                    memcmp( cols[ alg_MATE_REF_NAME ].base.str, cols[ alg_REF_NAME ].base.str, cols[ alg_MATE_REF_NAME ].len ) == 0 )
-                {
-                    rc = BufferedWriter( NULL, "=\t", 2, NULL );
-                }
-                else
-                {
-                    rc = BufferedWriter( NULL, cols[ alg_MATE_REF_NAME ].base.str, cols[ alg_MATE_REF_NAME ].len, NULL );
-                    if ( rc == 0 )
-                        rc = BufferedWriter( NULL, "\t", 1, NULL );
-                }
-                if ( rc == 0 )
-                    rc = KOutMsg( "%u\t", cols[ alg_MATE_REF_POS ].base.coord0[ 0 ] + 1 );
-            }
-            else
-            {
-                rc = BufferedWriter( NULL, "*\t0\t", 4, NULL );
-            }
-        }
-
-        /* TLEN: TEMPLATE_LEN */
-        if ( rc == 0 )
-            rc = KOutMsg( "%i\t", cols[ alg_TEMPLATE_LEN ].base.v ? cols[ alg_TEMPLATE_LEN ].base.i32[ 0 ] : 0 );
-
-        /* SEQ: READ */
-        if ( rc == 0 )
-            rc = BufferedWriter( NULL, read, readlen, NULL );
-        if ( rc == 0 )
-            rc = BufferedWriter( NULL, "\t", 1, NULL );
-
-        /* QUAL: SAM_QUALITY */
-        if ( rc == 0 )
-            rc = DumpQuality( qual, readlen, false, param->quantizeQual );
-    
-        /* optional fields: */
-        if ( rc == 0 && ds->type == edstt_EvidenceInterval )
-            rc = KOutMsg( "\tRG:Z:ALLELE_%u", readId + 1 );
-
-        if ( rc == 0 )
-        {
-            if ( readGroup )
-            {
-                rc = BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-                if ( rc == 0 )
-                    rc = BufferedWriter( NULL, readGroup, string_size( readGroup ), NULL );
-            }
-            else if ( cols[ alg_SPOT_GROUP ].len > 0 )
-            {
-                /* read group */
-                rc = BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-                if ( rc == 0 )
-                    rc = BufferedWriter( NULL, cols[ alg_SPOT_GROUP ].base.str, cols[ alg_SPOT_GROUP ].len, NULL );
-            }
-            else if ( cols[ alg_SEQ_SPOT_GROUP ].len > 0 )
-            {
-                /* backward compatibility */
-                rc = BufferedWriter( NULL, "\tRG:Z:", 6, NULL );
-                if ( rc == 0 )
-                    rc = BufferedWriter( NULL, cols[ alg_SEQ_SPOT_GROUP ].base.str, cols[ alg_SEQ_SPOT_GROUP ].len, NULL );
-            }
-        }
-
-        if ( rc == 0 && param->cg_style > 0 && cols[ alg_CG_TAGS_STR ].len > 0 )
-            rc = BufferedWriter( NULL, cols[ alg_CG_TAGS_STR ].base.str, cols[ alg_CG_TAGS_STR ].len, NULL );
-
-        if ( rc == 0 )
-        {
-            if ( param->cg_style > 0 && cols[ alg_ALIGN_GROUP ].len > 0 )
-            {
-                char const *ZI = cols[ alg_ALIGN_GROUP ].base.str;
-                unsigned i;
-                
-                for ( i = 0; rc == 0 && i < cols[ alg_ALIGN_GROUP ].len - 1; ++i )
-                {
-                    if ( ZI[ i ] == '_' )
-                    {
-                        rc = KOutMsg( "\tZI:i:%.*s\tZA:i:%.1s", i, ZI, ZI + i + 1 );
-                        break;
-                    }
-                }
-            }
-            else if ( ds->type == edstt_EvidenceAlignment && type == 1 )
-            {
-                rc = KOutMsg( "\tZI:i:%li\tZA:i:%u", cols[ alg_REF_ID ].base.i64[ readId ], cols[ alg_REF_PLOIDY ].base.u32[ readId ] );
-            }
-        }
-
-        /* align id */
-        if ( rc == 0 && param->xi )
-            rc = KOutMsg( "\tXI:i:%li", alignId );
-
-        /* hit count */
-        if ( rc == 0 && cols[alg_ALIGNMENT_COUNT].len )
-            rc = KOutMsg( "\tNH:i:%i", (int)cols[ alg_ALIGNMENT_COUNT ].base.u8[ readId ] );
-
-        /* edit distance */
-        if ( rc == 0 && cols[ alg_EDIT_DISTANCE ].len )
-            rc = KOutMsg( "\tNM:i:%i", cols[ alg_EDIT_DISTANCE ].base.i32[ readId ] );
-
-        if ( rc == 0 )
-            rc = KOutMsg( "\n" );
-    }
-    return rc;
-}
-
-
-static rc_t DumpUnalignedReads( SAM_dump_ctx_t *const ctx, SCol const calg_col[], int64_t row_id, uint64_t* rcount )
-{
-    rc_t rc = 0;
-    uint32_t i, nreads = 0;
-
-    if ( calg_col != NULL )
-    {
-        if ( calg_col[ alg_SAM_FLAGS ].base.u32[ 0 ] & 0x02 )
-        {
-            /* skip all aligned rows by flag */
-            return rc;
-        }
-        /* get primary alignments only */
-        rc = Cursor_Read( &ctx->seq, calg_col[ alg_SEQ_SPOT_ID ].base.i64[ 0 ], seq_PRIMARY_ALIGNMENT_ID, ~(unsigned)0 );
-        if ( rc == 0 )
-        {
-            for ( i = 0; i < ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len; i++ )
-            {
-                if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ] != 0 )
-                {
-                    if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ] < row_id )
-                    {
-                        /* unaligned were printed with 1st aligment */
-                        return rc;
-                    }
-                }
-                else
-                {
-                    nreads++;
-                }
-            }
-            if ( nreads == ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len )
-            {
-                /* skip all aligned rows by actual data, if flag above is not set properly */
-                return rc;
-            }
-            row_id = calg_col[ alg_SEQ_SPOT_ID ].base.i64[ 0 ];
-        }
-    }
-    if ( rc == 0 )
-    {
-        rc = Cursor_Read( &ctx->seq, row_id, 0, ~(unsigned)0 );
-        if ( rc == 0 )
-        {
-            unsigned non_empty_reads = 0;
-            
-            nreads = ctx->seq.cols[ seq_READ_LEN ].idx != 0 ? ctx->seq.cols[ seq_READ_LEN ].len : 1;
-
-            for( i = 0; i < nreads; i++ ) {
-                unsigned const readLen = ctx->seq.cols[ seq_READ_LEN ].idx
-                                       ? ctx->seq.cols[ seq_READ_LEN ].base.coord_len[ i ]
-                                       : 0;
-                
-                if (readLen)
-                    ++non_empty_reads;
-            }
-            for( i = 0; i < nreads; i++ )
-            {
-                INSDC_coord_zero readStart;
-                INSDC_coord_len readLen;
-
-                if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].idx != 0 && 
-                     ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ] != 0 )
-                {
-                    continue;
-                }
-
-                if ( ctx->seq.cols[ seq_READ_TYPE ].idx != 0 && 
-                     !( ctx->seq.cols[ seq_READ_TYPE ].base.read_type[ i ] & SRA_READ_TYPE_BIOLOGICAL ) )
-                {
-                    continue;
-                }
-
-                readLen = ctx->seq.cols[ seq_READ_LEN ].idx ? 
-                            ctx->seq.cols[ seq_READ_LEN ].base.coord_len[ i ] :
-                            ctx->seq.cols[ seq_READ ].len;
-                if ( readLen == 0 )
-                {
-                    continue;
-                }
-
-                readStart = ctx->seq.cols[ seq_READ_START ].idx ?
-                                ctx->seq.cols[ seq_READ_START ].base.coord0[ i ] :
-                                0;
-                if ( param->fasta || param->fastq )
-                {
-                    rc = DumpUnalignedFastX( ctx->seq.cols, nreads > 1 ? i + 1 : 0, readStart, readLen, row_id );
-                }
-                else
-                {
-                    uint32_t cflags = 0x4;
-                    if ( param->reverse_unaligned )
-                    {
-                        if ( ctx->seq.cols[ seq_READ_TYPE ].base.read_type[ i ] & SRA_READ_TYPE_REVERSE )
-                        {
-                            cflags |= 0x10;
-                        }
-                        if ( ctx->seq.cols[ seq_READ_TYPE ].base.read_type[ i == nreads - 1 ? 0 : ( i + 1 ) ] & SRA_READ_TYPE_REVERSE )
-                        {
-                            cflags |= 0x20;
-                        }
-                    }
-                    if ( ctx->seq.cols[ seq_READ_FILTER ].idx != 0 )
-                    {
-                        if ( ctx->seq.cols[ seq_READ_FILTER ].base.read_filter[ i ] == SRA_READ_FILTER_REJECT )
-                        {
-                            cflags |= 0x200;
-                        }
-                        else if ( ctx->seq.cols[ seq_READ_FILTER ].base.read_filter[ i ] == SRA_READ_FILTER_CRITERIA )
-                        {
-                            cflags |= 0x400;
-                        }
-                    }
-                    if ( calg_col == NULL )
-                    {
-                        rc = DumpUnalignedSAM( ctx->seq.cols, cflags |
-                                          ( non_empty_reads > 1 ? ( 0x1 | 0x8 | ( i == 0 ? 0x40 : 0x00 ) | ( i == nreads - 1 ? 0x80 : 0x00 ) ) : 0x00 ),
-                                          readStart, readLen, NULL, 0, 0, ctx->readGroup, row_id );
-                    }
-                    else
-                    {
-                        int c = param->use_seqid ? alg_REF_SEQ_ID : alg_REF_NAME;
-                        uint16_t flags = cflags | 0x1 |
-                                         ( ( calg_col[ alg_SAM_FLAGS ].base.u32[ 0 ] & 0x10 ) << 1 ) |
-                                         ( ( calg_col[ alg_SAM_FLAGS ].base.u32[ 0 ] & 0x40 ) ? 0x80 : 0x40 );
-                        rc = DumpUnalignedSAM( ctx->seq.cols, flags, readStart, readLen,
-                                          calg_col[ c ].base.str, calg_col[ c ].len,
-                                          calg_col[ alg_REF_POS ].base.coord0[ 0 ] + 1, ctx->readGroup, row_id );
-                    }
-                }
-                *rcount = *rcount + 1;
-            }
-        }
-    }
-    return rc;
-}
-
-
-static bool AlignRegionFilter( SCol const *cols )
-{
-    if ( param->region_qty == 0 )
-        return true;
-    if ( cols[ alg_REF_NAME ].len != 0 || cols[ alg_REF_SEQ_ID ].len != 0 )
-    {
-        unsigned i;
-
-        assert( cols[ alg_REF_POS ].len == cols[ alg_REF_LEN ].len );
-
-        for ( i = 0; i < param->region_qty; i++ )
-        {
-            unsigned j;
-            
-            for ( j = 0; j < cols[ alg_REF_POS ].len; j++ )
-            {
-                unsigned const refStart_zero = cols[ alg_REF_POS ].base.coord0[ j ];
-                unsigned const refEnd_exclusive = refStart_zero + cols[ alg_REF_LEN ].base.coord_len[ j ];
-                unsigned k;
-                
-                for ( k = 0; k < param->region[ i ].rq; k++ )
-                {
-                    unsigned const from_zero = param->region[ i ].r[ k ].from;
-                    unsigned const to_inclusive = param->region[ i ].r[ k ].to;
-                    
-                    if ( from_zero < refEnd_exclusive && refStart_zero <= to_inclusive )
-                        return true;
-                }
-            }
-        }
-    }
-    return false;
-}
-
-
-static bool AlignDistanceFilter( SCol const *cols )
-{
-    if ( param->mp_dist_qty != 0 || param->mp_dist_unknown )
-    {
-        if ( cols[ alg_TEMPLATE_LEN ].len == 0 && param->mp_dist_unknown )
-        {
-            return true;
-        }
-        else
-        {
-            uint32_t i, j;
-            for( i = 0; i < param->mp_dist_qty; i++ )
-            {
-                for( j = 0; j < cols[ alg_TEMPLATE_LEN ].len; j++ )
-                {
-                    if ( ( cols[ alg_TEMPLATE_LEN ].base.i32[ j ] == 0 && param->mp_dist_unknown ) ||
-                         ( param->mp_dist[ i ].from <= cols[ alg_TEMPLATE_LEN ].base.i32[ j ] &&
-                         cols[ alg_TEMPLATE_LEN ].base.i32[ j ] <= param->mp_dist[ i ].to ) )
-                    {
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-    return true;
-}
-
-
-typedef struct cgOp_s
-{
-    uint16_t length;
-    uint8_t type; /* 0: match, 1: insert, 2: delete */
-    char code;
-} cgOp;
-
-
-static void print_CG_cigar( int line, cgOp const op[], unsigned const ops, unsigned const gap[ 3 ] )
-{
-#if _DEBUGGING
-    unsigned i;
-    
-    SAM_DUMP_DBG( 3, ( "%5i: ", line ) );
-    for ( i = 0; i < ops; ++i )
-    {
-        if ( gap && ( i == gap[ 0 ] || i == gap[ 1 ] || i == gap[ 2 ] ) )
-        {
-            SAM_DUMP_DBG( 3, ( "%u%c", op[ i ].length, tolower( op[ i ].code ) ) );
-        }
-        else
-        {
-            SAM_DUMP_DBG( 3, ( "%u%c", op[ i ].length, toupper( op[ i ].code ) ) );
-        }
-    }
-    SAM_DUMP_DBG( 3, ( "\n" ) );
-#endif
-}
-
-/* gap contains the indices of the wobbles in op
- * gap[0] is between read 1 and 2; it is the 'B'
- * gap[1] is between read 2 and 3; it is an 'N'
- * gap[2] is between read 3 and 4; it is an 'N'
- */
-
-static rc_t CIGAR_to_CG_Ops( cgOp op[], unsigned const maxOps,
-                             unsigned *const opCnt,
-                             unsigned gap[ 3 ],
-                             char const cigar[], unsigned const ciglen,
-                             unsigned *const S_adjust,
-                             unsigned *const CG_adjust,
-                             unsigned const read,
-                             bool const reversed )
-{
-    unsigned i;
-    unsigned ops = 0;
-    unsigned gapno;
-
-    *opCnt = 0;
-    *S_adjust = 0;
-    for ( i = 0; i < ciglen; ++ops )
-    {
-        char opChar=0;
-        int opLen=0;
-        int n;
-
-	for(n=0;n+i<ciglen && isdigit(cigar[n+i]);n++){
-		opLen = opLen * 10 + cigar[n+i] - '0';
-	}
-	if(n+i<ciglen){
-		opChar = cigar[n+i];
-		n++;
-	}
-        if ( ops + 1 >= maxOps )
-            return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-
-        i += n;
-        
-        op[ ops ].length = opLen;
-        op[ ops ].code = opChar;
-        switch ( opChar )
-        {
-        case 'M':
-        case '=':
-        case 'X':
-            op[ ops ].type = 0;
-            break;
-        case 'S':
-            *S_adjust += opLen;
-        case 'I':
-            op[ ops ].type = 1;
-            op[ ops ].code = 'I';
-            break;
-        case 'D':
-            op[ ops ].type = 2;
-            break;
-        default:
-            return RC( rcExe, rcData, rcReading, rcConstraint, rcViolated );
-        }
-    }
-    *opCnt = ops;
-    gap[ 0 ] = gap[ 1 ] = gap[ 2 ] = ops;
-    print_CG_cigar( __LINE__, op, ops, NULL );
-    if ( ops < 3 )
-        return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-
-    {
-        unsigned fwd = 0; /* 5 10 10 10 */
-        unsigned rev = 0; /* 10 10 10 5 */
-        unsigned acc; /* accumulated length */
-        
-        if ( ( read == 1 && !reversed ) || ( read == 2 && reversed ) )
-        {
-            for ( i = 0, acc = 0; i < ops  && acc <=5; ++i )
-            {
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[ i + 1 ].type == 1 )
-                    {
-                        fwd = i + 1;
-                        break;
-                    }
-                    else if ( acc > 5 )
-                    {
-                        unsigned const right = acc - 5;
-                        unsigned const left = op[ i ].length - right;
-                        
-                        memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                        ops += 2;
-                        op[ i ].length = left;
-                        op[ i + 2 ].length = right;
-                        
-                        op[ i + 1 ].type = 1;
-                        op[ i + 1 ].code = 'B';
-                        op[ i + 1 ].length = 0;
-                        
-                        fwd = i + 1;
-                        break;
-                    }
-                }
-            }
-        }
-        else if ( ( read == 2 && !reversed ) || ( read == 1 && reversed ) )
-        {
-            for ( i = ops, acc = 0; i > 0 && acc <= 5; )
-            {
-                --i;
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[ i ].type == 1 )
-                    {
-                        rev = i;
-                        break;
-                    }
-                    else if ( acc > 5 )
-                    {
-                        unsigned const left = acc - 5;
-                        unsigned const right = op[ i ].length - left;
-                        
-                        memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                        ops += 2;
-                        op[ i ].length = left;
-                        op[ i + 2 ].length = right;
-                        
-                        op[ i + 1 ].type = 1;
-                        op[ i + 1 ].code = 'B';
-                        op[ i + 1 ].length = 0;
-                         
-                        rev = i + 1;
-                        break;
-                    }
-                }
-            }
-        }
-        else
-        {
-            /* fprintf(stderr, "guessing layout\n"); */
-            for ( i = 0, acc = 0; i < ops  && acc <= 5; ++i )
-            {
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[ i + 1 ].type == 1 )
-                    {
-                        fwd = i + 1;
-                    }
-                }
-            }
-            for ( i = ops, acc = 0; i > 0 && acc <= 5; )
-            {
-                --i;
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc == 5 && op[i].type == 1 )
-                    {
-                        rev = i;
-                    }
-                }
-            }
-            if ( ( fwd == 0 && rev == 0 ) || ( fwd != 0 && rev != 0 ) )
-            {
-                for ( i = 0; i < ops; ++i )
-                {
-                    if ( op[ i ].type == 2 )
-                    {
-                        op[ i ].code = 'N';
-                        *CG_adjust += op[ i ].length;
-                    }
-                }
-                return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-            }
-        }
-        if ( fwd && op[ fwd ].type == 1 )
-        {
-            for ( i = ops, acc = 0; i > fwd + 1; )
-            {
-                --i;
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc >= 10 )
-                    {
-                        if ( acc > 10 )
-                        {
-                            unsigned const r = 10 + op[ i ].length - acc;
-                            unsigned const l = op[ i ].length - r;
-                            
-                            if ( ops + 2 >= maxOps )
-                                return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                            memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                            ops += 2;
-                            op[ i + 2 ].length = r;
-                            op[ i ].length = l;
-                            
-                            op[ i + 1 ].length = 0;
-                            op[ i + 1 ].type = 2;
-                            op[ i + 1 ].code = 'N';
-                            i += 2;
-                        }
-                        else if ( i - 1 > fwd )
-                        {
-                            if ( op[ i - 1 ].type == 2 )
-                                 op[ i - 1 ].code = 'N';
-                            else
-                            {
-                                if ( ops + 1 >= maxOps )
-                                    return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                                memmove( &op[ i + 1 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                                ops += 1;
-                                op[ i ].length = 0;
-                                op[ i ].type = 2;
-                                op[ i ].code = 'N';
-                                i += 1;
-                            }
-                        }
-                        acc = 0;
-                    }
-                }
-            }
-            /** change I to B+M **/
-            op[ fwd ].code = 'B';
-            memmove( &op[ fwd + 1 ], &op[ fwd ], ( ops - fwd ) * sizeof( op[ 0 ] ) );
-            ops += 1;
-            op[ fwd + 1 ].code = 'M';
-            *opCnt = ops;
-            /** set the gaps now **/
-            for ( gapno = 3, i = ops; gapno > 1 && i > 0; )
-            {
-                --i;
-                if ( op[ i ].code == 'N' )
-                    gap[ --gapno ] = i;
-            }
-            gap[ 0 ] = fwd;
-            print_CG_cigar( __LINE__, op, ops, gap );
-            return 0;
-        }
-        if ( rev && op[ rev ].type == 1 )
-        {
-            for ( acc = i = 0; i < rev; ++i )
-            {
-                if ( op[ i ].type != 2 )
-                {
-                    acc += op[ i ].length;
-                    if ( acc >= 10 )
-                    {
-                        if ( acc > 10 )
-                        {
-                            unsigned const l = 10 + op[ i ].length - acc;
-                            unsigned const r = op[ i ].length - l;
-                            
-                            if ( ops + 2 >= maxOps )
-                                return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                            memmove( &op[ i + 2 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                            ops += 2;
-                            op[ i + 2 ].length = r;
-                            op[ i ].length = l;
-                            
-                            op[ i + 1 ].length = 0;
-                            op[ i + 1 ].type = 2;
-                            op[ i + 1 ].code = 'N';
-                            rev += 2;
-                            i += 2;
-                        }
-                        else if ( i + 1 < rev )
-                        {
-                            if ( op[ i + 1 ].type == 2)
-                                 op[ i + 1 ].code = 'N';
-                            else
-                            {
-                                if ( ops + 1 >= maxOps )
-                                    return RC( rcExe, rcData, rcReading, rcBuffer, rcInsufficient );
-                                memmove( &op[ i + 1 ], &op[ i ], ( ops - i ) * sizeof( op[ 0 ] ) );
-                                ops += 1;
-                                op[ i + 1 ].length = 0;
-                                op[ i + 1 ].type = 2;
-                                op[ i + 1 ].code = 'N';
-                                rev += 1;
-                                i += 1;
-                            }
-                        }
-                        acc = 0;
-                    }
-                }
-            }
-            for ( gapno = 3, i = 0; gapno > 1 && i < ops; ++i )
-            {
-                if ( op[ i ].code == 'N' )
-                    gap[ --gapno ] = i;
-            }
-            gap[ 0 ] = rev;
-            op[ rev ].code = 'B';
-            memmove( &op[ rev + 1 ], &op[ rev ], ( ops - rev ) * sizeof( op[ 0 ] ) );
-            ops += 1;
-            op[ rev + 1 ].code = 'M';
-            *opCnt = ops;
-            print_CG_cigar( __LINE__, op, ops, gap );
-            return 0;
-        }
-    }
-    return RC( rcExe, rcData, rcReading, rcFormat, rcNotFound ); /* CG pattern not found */
-}
-
-
-static rc_t GenerateCGData( SCol cols[], unsigned style )
-{
-    rc_t rc = 0;
-    
-    memset( &cols[ alg_CG_TAGS_STR], 0, sizeof( cols[ alg_CG_TAGS_STR ] ) );
-    
-    if ( cols[ alg_READ ].len == 35 && cols[ alg_SAM_QUALITY ].len == 35 )
-    {
-        static char newCIGAR[ 35 * 11 ];
-        static int32_t newEditDistance;
-        unsigned gap[ 3 ] = { 0, 0, 0 };
-        cgOp cigOp[ 35 ];
-        unsigned opCnt;
-        unsigned i;
-        unsigned j;
-        size_t sz;
-        unsigned S_adjust = 0;
-        unsigned CG_adjust = 0;
-        unsigned const read = cols[ alg_SEQ_READ_ID ].len && cols[ alg_REVERSED ].len ? cols[ alg_SEQ_READ_ID ].base.coord1[ 0 ] : 0;
-        bool const reversed = cols[ alg_REVERSED ].len ? cols[ alg_REVERSED ].base.u8[ 0 ] : false;
-        
-        rc = CIGAR_to_CG_Ops( cigOp, sizeof( cigOp ) / sizeof( cigOp[ 0 ] ), &opCnt, gap,
-                              cols[ alg_CIGAR ].base.str, cols[ alg_CIGAR ].len,
-                              &S_adjust, &CG_adjust, read, reversed );
-        if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcFormat )
-        {
-            rc = 0;
-            if ( style == 1 )
-                goto CLEAN_CIGAR;
-            else
-                goto PRINT_CIGAR;
-        }
-        if ( rc != 0 )
-            return 0;
-
-        if ( CG_adjust == 0 )
-            CG_adjust = ( gap[ 0 ] < opCnt ? cigOp[ gap[ 0 ] ].length : 0 )
-                      + ( gap[ 1 ] < opCnt ? cigOp[ gap[ 1 ] ].length : 0 )
-                      + ( gap[ 2 ] < opCnt ? cigOp[ gap[ 2 ] ].length : 0 );
-
-        print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-        if ( style == 1 )
-        {
-            static char newSeq[ 35 ];
-            static char newQual[ 35 ];
-            static char tags[ 35*22 + 1 ];
-            unsigned const B_len = cigOp[ gap[ 0 ] ].length;
-            unsigned const B_at = gap[ 0 ] < gap[ 2 ] ? 5 : 30;
-            
-            if ( 0 < B_len && B_len < 5 )
-            {
-                memcpy( newSeq, cols[ alg_READ ].base.v, 35 );
-                memcpy( newQual, cols[ alg_SAM_QUALITY ].base.v, 35 );
-                
-                cols[ alg_CG_TAGS_STR ].base.v = tags;
-                
-                cols[ alg_READ ].base.v = newSeq;
-                cols[ alg_READ ].len = 35 - B_len;
-                
-                cols[ alg_SAM_QUALITY ].base.v = newQual;
-                cols[ alg_SAM_QUALITY ].len = 35 - B_len;
-                
-                /* nBnM -> nB0M */
-                cigOp[ gap[ 0 ] + 1 ].length -= B_len;
-                if ( gap[ 0 ] < gap[ 2 ] )
-                {
-                    rc = string_printf( tags, sizeof( tags ), &sz, "\tGC:Z:%uS%uG%uS\tGS:Z:%.*s\tGQ:Z:%.*s",
-                        5 - B_len, B_len, 30 - B_len, 2 * B_len, &newSeq[ 5 - B_len ], 2 * B_len, &newQual[ 5 - B_len ] );
-                    if ( rc == 0 )
-                    {
-                        cols[ alg_CG_TAGS_STR ].len = sz;
-                    }
-                    memmove( &cigOp[ gap[ 0 ] ],
-                             &cigOp[ gap[ 0 ] + 1 ],
-                             ( opCnt - ( gap[ 0 ] + 1 ) ) * sizeof( cigOp[ 0 ] ) );
-                    --opCnt;
-                }
-                else
-                {
-                    rc = string_printf( tags, sizeof( tags ), &sz, "\tGC:Z:%uS%uG%uS\tGS:Z:%.*s\tGQ:Z:%.*s",
-                        30 - B_len, B_len, 5 - B_len, 2 * B_len, &newSeq[ 30 - B_len ], 2 * B_len, &newQual[ 30 - B_len ] );
-                    if ( rc == 0 )
-                    {
-                        cols[ alg_CG_TAGS_STR ].len = sz;
-                    }
-                    memmove( &cigOp[ gap[ 0 ] ],
-                             &cigOp[ gap[ 0 ] + 1 ],
-                             ( opCnt - ( gap[ 0 ] + 1 ) ) * sizeof( cigOp[ 0 ] ) );
-                    --opCnt;
-                }
-                if ( rc == 0 )
-                {
-                    for ( i = B_at; i < B_at + B_len; ++i )
-                    {
-                        int const Lq = newQual[ i - B_len ];
-                        int const Rq = newQual[ i ];
-
-                        if ( Lq <= Rq )
-                        {
-                            newSeq[ i - B_len ] = newSeq[ i ];
-                            newQual[ i - B_len ] = Rq;
-                        }
-                        else
-                        {
-                            newSeq[ i ] = newSeq[ i - B_len ];
-                            newQual[ i ] = Lq;
-                        }
-                    }
-                    memmove( &newSeq [ B_at ], &newSeq [ B_at + B_len ], 35 - B_at - B_len );
-                    memmove( &newQual[ B_at ], &newQual[ B_at + B_len ], 35 - B_at - B_len );
-                }
-            }
-            else
-            {
-                int len = cigOp[ gap[ 0 ] ].length;
-                
-                cigOp[ gap[ 0 ] ].code = 'I';
-                for (i = gap[0] + 1; i < opCnt && len > 0; ++i) {
-                    if (cigOp[i].length <= len){
-                        len -= cigOp[i].length;
-                        cigOp[i].length = 0;
-                    }
-                    else {
-                        cigOp[i].length -= len;
-                        len = 0;
-                    }
-                }
-                CG_adjust -= cigOp[ gap[ 0 ] ].length;
-            }
-        }
-        if ( rc == 0 )
-        {
-        PRINT_CIGAR:
-        CLEAN_CIGAR:
-            print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-            /* remove zero length ops */
-            for ( j = i = 0; i < opCnt; )
-            {
-                if ( cigOp[ j ].length == 0)
-                {
-                    ++j;
-                    --opCnt;
-                    continue;
-                }
-                cigOp[ i++ ] = cigOp[ j++ ];
-            }
-            print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-            if ( cols[ alg_EDIT_DISTANCE ].len )
-            {
-                int const edit_distance = cols[ alg_EDIT_DISTANCE ].base.i32[ 0 ];
-                int const adjusted = edit_distance + S_adjust - CG_adjust;
-            
-                newEditDistance = adjusted > 0 ? adjusted : 0;
-                SAM_DUMP_DBG( 4, ( "NM: before: %u, after: %u(+%u-%u)\n", edit_distance, newEditDistance, S_adjust, CG_adjust ) );
-                cols[ alg_EDIT_DISTANCE ].base.v = &newEditDistance;
-                cols[ alg_EDIT_DISTANCE ].len = 1;
-            }
-            /* merge adjacent ops */
-            for ( i = opCnt; i > 1; )
-            {
-                --i;
-                if ( cigOp[ i - 1 ].code == cigOp[ i ].code )
-                {
-                    cigOp[ i - 1 ].length += cigOp[ i ].length;
-                    memmove( &cigOp[ i ], &cigOp[ i + 1 ], ( opCnt - 1 - i ) * sizeof( cigOp[ 0 ] ) );
-                    --opCnt;
-                }
-            }
-            print_CG_cigar( __LINE__, cigOp, opCnt, NULL );
-            for ( i = j = 0; i < opCnt && rc == 0; ++i )
-            {
-                rc = string_printf( &newCIGAR[ j ], sizeof( newCIGAR ) - j, &sz, "%u%c", cigOp[ i ].length, cigOp[ i ].code);
-                j += sz;
-            }
-            cols[ alg_CIGAR ].base.v = newCIGAR;
-            cols[ alg_CIGAR ].len = j;
-        }
-    }
-    return rc;
-}
-
-
-static bool DumpAlignedRow( SAM_dump_ctx_t *const ctx, DataSource *const ds,
-                    int64_t row,
-                    bool const primary,
-                    int const cg_style,
-                    rc_t *prc )
-{
-    rc_t rc = 0;
-    
-    /* if SEQ_SPOT_ID is open then skip rows with no SEQ_SPOT_ID */
-    if ( ds->cols[ alg_SEQ_SPOT_ID ].idx )
-    {
-        rc = Cursor_Read( ds, row, alg_SEQ_SPOT_ID, 1 );
-        if ( rc != 0 )
-        {
-            if ( !( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound ) )
-                *prc = rc;
-            return false;
-        }
-        if ( ds->cols[ alg_SEQ_SPOT_ID ].len == 0 ||
-             ds->cols[ alg_SEQ_SPOT_ID ].base.i64[ 0 ] == 0 )
-            return false;
-    }
-
-    /* skip rows that fail mate distance filter */
-    if ( param->mp_dist_qty != 0 || param->mp_dist_unknown )
-    {
-        rc = Cursor_Read( ds, row, alg_TEMPLATE_LEN, 1 );
-        if ( rc != 0 )
-        {
-            if ( !( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound ) )
-                *prc = rc;
-            return false;
-        }
-        if ( !AlignDistanceFilter( ds->cols ) )
-            return false;
-    }
-
-    rc = Cursor_ReadAlign( &ds->curs, row, ds->cols, 0 );
-    if ( rc != 0 )
-    {
-        if ( !( GetRCObject( rc ) == rcRow && GetRCState( rc ) == rcNotFound ) )
-            *prc = rc;
-        return false;
-    }
-
-    if ( param->fasta || param->fastq )
-    {
-        unsigned const read_id = ds->cols[ alg_SEQ_READ_ID ].base.v ? ds->cols[ alg_SEQ_READ_ID ].base.coord1[ 0 ] : 0;
-        
-        rc = DumpAlignedFastX( ctx->pri.cols, row, read_id, primary, false );
-    }
-    else
-    {
-        if ( cg_style != 0 )
-        {
-            rc = GenerateCGData( ds->cols, cg_style );
-            if ( rc != 0 )
-            {
-                *prc = rc;
-                return false;
-            }
-        }
-        rc = DumpAlignedSAM(ctx, ds, row, ctx->readGroup, 0 );
-    }
-    *prc = rc;
-    return true;
-}
-
-
-static rc_t DumpAlignedRowList( SAM_dump_ctx_t *const ctx, DataSource *const ds, SCol const *const ids,
-                        int64_t *rcount,
-                        bool const primary,
-                        int const cg_style,
-                        bool const noFilter )
-{
-    rc_t rc;
-    unsigned i;
-    unsigned const n = ids->len;
-
-    for ( i = 0; ( rc = Quitting() ) == 0 && i < n; ++i )
-    {
-        int64_t const row = ids->base.i64[ i ];
-
-        if ( ! noFilter )
-            rc = Cursor_Read( ds, row, alg_REGION_FILTER, ~(unsigned)0 );
-
-        if ( rc == 0 )
-        {
-            if ( noFilter || AlignRegionFilter(ds->cols) )
-            {
-                if ( DumpAlignedRow( ctx, ds, row, primary, cg_style, &rc ) )
-                    ++*rcount;
-                if ( rc != 0 )
-                    break;
-            }
-        }
-    }
-    return rc;
-}
-
-static rc_t DumpAlignedRowListIndirect( SAM_dump_ctx_t *const ctx,
-                                DataSource *const indirectSource,
-                                DataSource *const directSource,
-                                SCol const *const directIDs,
-                                int64_t *rcount,
-                                bool const primary,
-                                int const cg_style )
-{
-    unsigned i;
-
-    for ( i = 0; i < directIDs->len; ++i )
-    {
-        int64_t const row = directIDs->base.i64[ i ];
-        rc_t rc = Cursor_Read( directSource, row, alg_REGION_FILTER, ~(unsigned)0 );
-        
-        if ( rc != 0 )
-            return rc;
-        
-        if ( !AlignRegionFilter( directSource->cols ) )
-            continue;
-            
-        rc = Cursor_Read( directSource, row, alg_EVIDENCE_ALIGNMENT_IDS, 1 );
-        if ( rc != 0 )
-            return rc;
-        
-        rc = DumpAlignedRowList( ctx, indirectSource, &directSource->cols[ alg_EVIDENCE_ALIGNMENT_IDS ],
-                                 rcount, primary, cg_style, true );
-        if ( rc != 0 )
-            return rc;
-    }
-    return 0;
-}
-
-
-enum e_tables
-{
-    primary_alignment,
-    secondary_alignment,
-    evidence_interval,
-    evidence_alignment
-};
-
-enum e_IDS_opts
-{
-    primary_IDS             = ( 1 << primary_alignment ),
-    secondary_IDS           = ( 1 << secondary_alignment ),
-    evidence_interval_IDS   = ( 1 << evidence_interval ),
-    evidence_alignment_IDS  = ( 1 << evidence_alignment )
-};
-
-
-static rc_t DumpAlignedRowList_cb( SAM_dump_ctx_t *const ctx, TAlignedRegion const *const rgn,
-                                   int options, int which, int64_t *rcount, SCol const *const IDS )
-{
-    /*SAM_DUMP_DBG(2, ("row %s index range is [%lu:%lu] pos %lu\n",
-        param->region[r].name, start, start + count - 1, cur_pos));*/
-    switch ( which )
-    {
-    case primary_IDS:
-        return DumpAlignedRowList( ctx, &ctx->pri, IDS, rcount, true, param->cg_style, false );
-
-    case secondary_IDS:
-        return DumpAlignedRowList( ctx, &ctx->sec, IDS, rcount, false, param->cg_style, false );
-
-    case evidence_interval_IDS:
-        {
-            rc_t rc = 0;
-
-            if ( ( options & evidence_interval_IDS ) != 0 )
-                rc = DumpAlignedRowList( ctx, &ctx->evi, IDS, rcount, true, 0, false );
-
-            if ( rc == 0 && ( options & evidence_alignment_IDS ) != 0 )
-                rc = DumpAlignedRowListIndirect( ctx, &ctx->eva, &ctx->evi, IDS, rcount, true, param->cg_style );
-
-            return rc;
-        }
-    }
-    return RC( rcExe, rcTable, rcReading, rcParam, rcUnexpected );
-}
-
-
-typedef struct CigOps{
-	char op;
-	int8_t	 ref_sign; /*** 0;+1;-1; ref_offset = ref_sign * offset ***/
-	int8_t	 seq_sign; /*** 0;+1;-1; seq_offset = seq_sign * offset ***/
-	uint32_t oplen;
-} CigOps;
-
-static void SetCigOp(CigOps *dst,char op,uint32_t oplen)
-{
-	dst->op    = op;
-	dst->oplen = oplen;
-	switch(op) { /*MX= DN B IS PH*/
-	 case 'M': case 'X': case '=':
-		dst->ref_sign=+1;
-		dst->seq_sign=+1;
-		break;
-	 case 'D': case 'N':
-		dst->ref_sign=+1;
-                dst->seq_sign= 0;
-                break;
-	 case 'B': 
-		dst->ref_sign=-1;
-                dst->seq_sign= 0;
-                break;
-	 case 'S': case 'I':
-		dst->ref_sign= 0;
-                dst->seq_sign=+1;
-                break;
-	 case 'P': case 'H':
-	  case 0: /** terminating op **/
-		dst->ref_sign= 0;
-                dst->seq_sign= 0;
-                break;
-	  default:
-		assert(0);
-                break;
-	}
-}
-
-static unsigned ExplodeCIGAR( CigOps dst[], unsigned len, char const cigar[], unsigned ciglen )
-{
-    unsigned i;
-    unsigned j;
-    int opLen;
-    
-    for ( i = j = opLen=0; i < ciglen; i++) {
-	if(isdigit(cigar[i])){
-		opLen = opLen * 10 + cigar[i] - '0';
-	} else {
-		assert(isalpha(cigar[i]));
-		SetCigOp(dst+j,cigar[i],opLen);
-		opLen=0;
-		j++;
-	}
-    }
-    SetCigOp(dst+j,0,0);
-    j++;
-    return j;
-}
-
-
-#define CG_CIGAR_STRING_MAX (35 * 11 + 1)
-
-
-#if 0
-static unsigned FormatCIGAR( char dst[], unsigned cp, unsigned oplen, int opcode )
-{
-    size_t sz;
-    string_printf( dst + cp, CG_CIGAR_STRING_MAX - cp, &sz, "%u%c", oplen, opcode );
-    return sz;
-}
-
-
-static unsigned DeletedCIGAR( char dst[], unsigned const cp, int opcode, unsigned D,
-                              uint32_t const Op[], int ri, unsigned len )
-{
-    unsigned i;
-    unsigned curPos = 0;
-    int curOp = opcode;
-    unsigned oplen = 0;
-    
-    for ( i = 0; i < D && ri < len; ++i, ++ri )
-    {
-        uint32_t const op = Op[ ri ];
-        int const d = op >> 2;
-        int const m = op & 1;
-        int const nxtOp = m ? opcode : 'P';
-        
-        if ( d != 0 )
-        {
-            if ( oplen != 0 )
-                curPos += FormatCIGAR( dst, curPos + cp, oplen, curOp );
-            curPos += FormatCIGAR( dst, cp, d, 'D' );
-            oplen = 0;
-        }
-        if ( oplen == 0 || nxtOp == curOp )
-        {
-            ++oplen;
-        }
-        else
-        {
-            curPos += FormatCIGAR( dst, curPos + cp, oplen, curOp );
-            oplen = 1;
-        }
-        curOp = nxtOp;
-    }
-
-    if ( oplen != 0 && curOp != opcode)
-    {
-        curPos += FormatCIGAR( dst, curPos + cp, oplen, curOp );
-        oplen = 0;
-    }
-    if ( i < D )
-        oplen += D - i;
-    if ( oplen )
-        curPos += FormatCIGAR( dst, curPos + cp, oplen, opcode );
-    return curPos;
-}
-#endif
-
-static char merge_M_type_ops(char a,char b)
-{ /*MX=*/
-	char c=0;
-	switch(b){
-	 case 'X':
-		switch(a){
-		 case '=': c='X'; break;
-		 case 'X': c='M'; break; /**we don't know - 2X may create '=' **/
-		 case 'M': c='M'; break;
-		}
-		break;
-	 case 'M':
-		c='M';
-		break;
-	 case '=':
-		c=a;
-		break;
-	}
-	assert(c!=0);
-	return c;
-}
-
-
-static unsigned CombineCIGAR( char dst[], CigOps const seqOp[], unsigned seq_len,
-                              int refPos, CigOps const refOp[], unsigned ref_len )
-{
-    bool     done=false;
-    unsigned ciglen=0,last_ciglen=0;
-    char     last_cig_op;
-    uint32_t last_cig_oplen=0;
-    int	     si=0,ri=0;
-    CigOps   seq_cop={0,0,0,0},ref_cop={0,0,0,0};
-    int	     seq_pos=0; /** seq_pos is tracked roughly - with every extraction from seqOp **/
-    int      ref_pos=0; /** ref_pos is tracked precisely - with every delta and consumption in cigar **/
-    int	     delta=refPos; /*** delta in relative positions of seq and ref **/
-			   /*** when delta < 0 - rewind or extend the reference ***/
-			   /*** wher delta > 0 - skip reference  ***/
-#define MACRO_BUILD_CIGAR(OP,OPLEN) \
-	if( last_cig_oplen > 0 && last_cig_op == OP){							\
-                last_cig_oplen += OPLEN;								\
-                ciglen = last_ciglen + sprintf(dst+last_ciglen,"%d%c",last_cig_oplen,last_cig_op);	\
-        } else {											\
-                last_ciglen = ciglen;									\
-                last_cig_oplen = OPLEN;									\
-                last_cig_op    = OP;									\
-                ciglen = ciglen      + sprintf(dst+last_ciglen,"%d%c",last_cig_oplen,last_cig_op);	\
-        }
-    while(!done){
-	while(delta < 0){ 
-		ref_pos += delta; /** we will make it to back up this way **/
-		if(ri > 0){ /** backing up on ref if possible ***/
-			int avail_oplen = refOp[ri-1].oplen - ref_cop.oplen;
-			if(avail_oplen > 0 ){
-				if((-delta) <= avail_oplen * ref_cop.ref_sign){ /*** rewind within last operation **/
-					ref_cop.oplen -= delta;
-					delta -= delta * ref_cop.ref_sign;
-				} else { /*** rewind the whole ***/
-					ref_cop.oplen += avail_oplen;
-					delta += avail_oplen * ref_cop.ref_sign;
-				}
-			} else {
-				ri--;
-				/** pick the previous as used up **/
-				ref_cop = refOp[ri-1];
-				ref_cop.oplen =0; 
-			}
-		} else { /** extending the reference **/
-			SetCigOp(&ref_cop,'=',ref_cop.oplen - delta);
-			delta = 0;
-		}
-		ref_pos -= delta; 
-	}
-	if(ref_cop.oplen == 0){ /*** advance the reference ***/
-		ref_cop = refOp[ri++];
-		if(ref_cop.oplen == 0) { /** extending beyond the reference **/
-			SetCigOp(&ref_cop,'=',1000);
-		}
-		assert(ref_cop.oplen > 0 );
-	}
-	if(delta > 0){ /***  skip refOps ***/
-		ref_pos += delta; /** may need to back up **/
-		if(delta >=  ref_cop.oplen){ /** full **/
-			delta -= ref_cop.oplen * ref_cop.ref_sign;
-			ref_cop.oplen = 0;
-		} else { /** partial **/
-			ref_cop.oplen -= delta;
-			delta -= delta * ref_cop.ref_sign;
-		}
-		ref_pos -= delta; /** if something left - restore ***/
-		continue;
-	}
-	/*** seq and ref should be synchronized here **/
-	assert(delta == 0);
-	if(seq_cop.oplen == 0){ /*** advance sequence ***/
-		if(seq_pos < seq_len){
-			seq_cop = seqOp[si++];
-			assert(seq_cop.oplen > 0 );
-			seq_pos += seq_cop.oplen * seq_cop.seq_sign;
-		} else {
-			done=true;
-		}
-	}
-        if(!done){
-		int seq_seq_step = seq_cop.oplen * seq_cop.seq_sign; /** sequence movement**/
-		int seq_ref_step = seq_cop.oplen * seq_cop.ref_sign; /** influence of sequence movement on intermediate reference **/
-		int ref_seq_step = ref_cop.oplen * ref_cop.seq_sign; /** movement of the intermediate reference ***/
-		int ref_ref_step = ref_cop.oplen * ref_cop.ref_sign; /** influence of the intermediate reference movement on final reference ***/
-		assert( ref_ref_step >= 0); /** no B in the reference **/
-		if( seq_ref_step <= 0){ /** BSIPH in the sequence against anything ***/
-			MACRO_BUILD_CIGAR( seq_cop.op, seq_cop.oplen );
-			seq_cop.oplen = 0;
-			delta = seq_ref_step; /** if negative - will force rewind next cycle **/
-		} else if(ref_ref_step <= 0){ /** MX=DN against SIPH in the reference***/
-			if(ref_seq_step == 0){ /** MX=DN against PH **/
-				MACRO_BUILD_CIGAR( ref_cop.op,ref_cop.oplen);
-				ref_cop.oplen = 0;
-			} else {
-				int min_len = (seq_cop.oplen<ref_cop.oplen)?seq_cop.oplen:ref_cop.oplen;
-				if(seq_seq_step == 0){ /** DN agains SI **/
-					MACRO_BUILD_CIGAR('P',min_len);
-				} else { /** MX= agains SI ***/
-					MACRO_BUILD_CIGAR( ref_cop.op,min_len);
-				}
-				seq_cop.oplen -= min_len;
-				ref_cop.oplen -= min_len;
-			}
-		} else { /*MX=DN  against MX=DN*/
-			int min_len = (seq_cop.oplen<ref_cop.oplen)?seq_cop.oplen:ref_cop.oplen;
-			if(seq_seq_step == 0){ /* DN against MX=DN */
-				if(ref_seq_step == 0){ /** padding DN against DN **/
-					MACRO_BUILD_CIGAR('P',min_len);
-					ref_cop.oplen -= min_len;
-					seq_cop.oplen -= min_len;
-				} else { /* DN against MX= **/
-					MACRO_BUILD_CIGAR(seq_cop.op,min_len);
-					seq_cop.oplen -= min_len;
-				}
-			} else if (ref_cop.seq_sign == 0){ /* MX= against DN - always wins */
-				MACRO_BUILD_CIGAR(ref_cop.op,min_len);
-				ref_cop.oplen -= min_len;
-			} else { /** MX= against MX= ***/
-				MACRO_BUILD_CIGAR(merge_M_type_ops(seq_cop.op,ref_cop.op),min_len);
-				ref_cop.oplen -= min_len;
-				seq_cop.oplen -= min_len;
-			}
-			ref_pos += min_len;
-		}
-        }
-    }
-    return ciglen;
-}
-
-
-static rc_t DumpCGSAM( SAM_dump_ctx_t *const ctx, TAlignedRegion const *const rgn, int options,
-                       int which, int64_t *rows, SCol const *const ids )
-{
-    if ( which == evidence_interval_IDS )
-    {
-        rc_t rc = 0;
-        unsigned i;
-        
-        for ( i = 0; i < ids->len; ++i )
-        {
-            int64_t const rowInterval = ids->base.i64[ i ];
-
-            rc = Cursor_Read( &ctx->evi, rowInterval, alg_REGION_FILTER, ~(0u) );
-            if ( rc == 0 )
-            {
-                if ( AlignRegionFilter( ctx->evi.cols ) )
-                {
-                    rc = Cursor_ReadAlign( &ctx->evi.curs, rowInterval, ctx->evi.cols, 0 );
-                    if ( rc == 0 )
-                    {
-                        unsigned const evidence = ctx->evi.cols[ alg_EVIDENCE_ALIGNMENT_IDS ].len;
-                        if ( evidence != 0 )
-                        {
-                            INSDC_coord_len const *const refLen = ctx->evi.cols[ alg_READ_LEN ].base.coord_len;
-                            INSDC_coord_len const *const cigLen = ctx->evi.cols[ alg_CIGAR_LEN ].base.coord_len;
-                            unsigned const ploids = ctx->evi.cols[ alg_CIGAR_LEN ].len;
-                            unsigned const totalIntervalReadLen = ctx->evi.cols[ alg_READ ].len;
-			    CigOps  refCigOps_stack[1024];
-			    CigOps *refCigOps_heap=NULL;
-                            CigOps *refCigOps;
-
-			    if( totalIntervalReadLen > 1000){
-				refCigOps=refCigOps_heap = malloc( sizeof( refCigOps[ 0 ] ) * (totalIntervalReadLen+ploids) );
-			    } else {
-				refCigOps=refCigOps_stack;
-			    }
-                            
-                            if ( refCigOps != NULL )
-                            {
-                                unsigned j;
-                                unsigned start;
-                                unsigned cigop_starts[256];
-                                
-                                assert(ploids < 256);
-                                
-                                for ( start = j = 0, cigop_starts[0]=0; j < ploids; ++j )
-                                {
-                                    unsigned len = cigLen[ j ];
-                                    cigop_starts[j+1] = cigop_starts[j] + ExplodeCIGAR( refCigOps + cigop_starts[j], refLen[ j ], 
-                                                                                       ctx->evi.cols[ alg_CIGAR ].base.str + start, len );
-                                    start += len;
-                                }
-                                
-                                for ( j = 0; j < evidence; ++j )
-                                {
-                                    int64_t const rowAlign = ctx->evi.cols[ alg_EVIDENCE_ALIGNMENT_IDS ].base.i64[ j ];
-                                    
-                                    rc = Cursor_ReadAlign( &ctx->eva.curs, rowAlign, ctx->eva.cols, 0 );
-                                    if ( rc == 0 )
-                                    {
-                                        if(param->cg_style != 0)
-                                            rc = GenerateCGData( ctx->eva.cols, param->cg_style );
-                                        if ( rc == 0 )
-                                        {
-                                            int const ploidy = ctx->eva.cols[ alg_REF_PLOIDY ].base.u32[ 0 ];
-                                            int const readLen = ctx->eva.cols[ alg_READ ].len;
-                                            INSDC_coord_zero refPos = ctx->eva.cols[ alg_REF_POS ].base.coord0[ 0 ];
-                                            CigOps op[ 36 ];
-                                            char cigbuf[ CG_CIGAR_STRING_MAX ];
-                                            
-                                            memset( cigbuf, 0, CG_CIGAR_STRING_MAX );
-                                            ExplodeCIGAR( op, readLen, ctx->eva.cols[ alg_CIGAR ].base.str,
-                                                         ctx->eva.cols[ alg_CIGAR ].len );
-                                            ctx->eva.cols[ alg_CIGAR ].len = CombineCIGAR( cigbuf, op, readLen, refPos, 
-                                                                                          refCigOps + cigop_starts[ ploidy - 1 ], refLen[ ploidy - 1 ] );
-                                            ctx->eva.cols[ alg_CIGAR ].base.str = cigbuf;
-                                            ctx->eva.cols[ alg_REF_POS ].base.v = &refPos;
-                                            refPos += ctx->evi.cols[ alg_REF_POS ].base.coord0[ 0 ] ;
-			  		    if(refPos < 0){
-						ReferenceObj const *r = NULL;
-    						rc = ReferenceList_Find( gRefList, &r,
-									ctx->evi.cols[ alg_REF_NAME ].base.str,
-									ctx->evi.cols[ alg_REF_NAME ].len );
-						if(rc == 0){
-							bool circular=false;
-							rc=ReferenceObj_Circular(r, &circular);
-							if(rc == 0 && circular){
-								INSDC_coord_len len;
-								rc=ReferenceObj_SeqLength(r,&len);
-								if(rc == 0)
-									refPos += len;
-							}
-							ReferenceObj_Release(r);
-						}
-					    }
-                                            rc = DumpAlignedSAM( ctx, &ctx->eva, rowAlign, ctx->readGroup, 1 );
-                                            ++*rows;
-                                        }
-                                        else
-                                            break;
-                                    }
-                                    else
-                                        break;
-                                }
-				if(refCigOps_heap) free( refCigOps_heap );
-                            }
-                            else
-                                rc = RC( rcExe, rcTable, rcReading, rcMemory, rcExhausted );
-                        }
-                    }
-                }
-            }
-            else
-                break;
-            rc = rc ? rc : Quitting();
-            if ( rc != 0 )
-                break;
-        }
-        return rc;
-    }
-    return RC( rcExe, rcTable, rcReading, rcParam, rcUnexpected );
-}
-
-
-static rc_t ForEachAlignedRegion( SAM_dump_ctx_t *const ctx, enum e_IDS_opts const Options,
-    rc_t ( *user_func )( SAM_dump_ctx_t *ctx, TAlignedRegion const *rgn, int options, int which, int64_t *rows, SCol const *IDS ) )
-{
-    SCol cols[] =
-    {
-        { "MAX_SEQ_LEN", 0, { NULL }, 0, false },
-        { "OVERLAP_REF_POS", 0, { NULL }, 0, true },
-        { "PRIMARY_ALIGNMENT_IDS", 0, { NULL }, 0, false },
-        { "SECONDARY_ALIGNMENT_IDS", 0, { NULL }, 0, true },
-        { "EVIDENCE_INTERVAL_IDS", 0, { NULL }, 0, true }, 
-        { NULL, 0, { NULL }, 0, false }
-    };
-    enum eref_col
-    {
-        ref_MAX_SEQ_LEN = 0,
-        ref_OVERLAP_REF_LEN,
-        ref_PRIMARY_ALIGNMENT_IDS,
-        ref_SECONDARY_ALIGNMENT_IDS,
-        ref_EVIDENCE_INTERVAL_IDS
-    };
-
-    KIndex const *iname = NULL;
-    int64_t rows = 0;
-    rc_t rc = 0;
-    int options = Options & 7;
-
-    if ( Options & evidence_alignment_IDS )
-        options |= evidence_interval_IDS;
-
-    if ( ( options & primary_IDS ) == 0 )
-        cols[ ref_PRIMARY_ALIGNMENT_IDS ].name = "";
-    if ( ( options & secondary_IDS ) == 0 )
-        cols[ ref_SECONDARY_ALIGNMENT_IDS ].name = "";
-    if ( ( options & evidence_interval_IDS ) == 0 )
-        cols[ ref_EVIDENCE_INTERVAL_IDS ].name = "";
-    
-    ctx->ref.cols = cols;
-    
-    rc = VTableOpenIndexRead( ctx->ref.tbl.vtbl, &iname, "i_name" );
-    if ( rc == 0 )
-    {
-        rc = Cursor_Open( &ctx->ref.tbl, &ctx->ref.curs, ctx->ref.cols, NULL );
-        if ( rc == 0 )
-        {
-            int64_t rowid = 1;
-            uint64_t count = 0;
-            char refname[ 1024 ];
-            size_t sz;
-            
-            if ( ctx->ref.cols[ ref_PRIMARY_ALIGNMENT_IDS ].idx == 0 )
-                options &= ~primary_IDS;
-            if ( ctx->ref.cols[ ref_SECONDARY_ALIGNMENT_IDS ].idx == 0 )
-                options &= ~secondary_IDS;
-            if ( ctx->ref.cols[ ref_EVIDENCE_INTERVAL_IDS ].idx == 0 )
-                options &= ~evidence_interval_IDS;
-
-            /* new: if we have a list of regions, reset the their print-flag */
-            if ( param->region_qty > 0 )
-            {
-                unsigned r;
-                for ( r = 0; r < param->region_qty; ++r )
-                {
-                    param->region[ r ].printed = 0;
-                }
-            }
-
-            while ( ( rc = KIndexProjectText(iname, rowid + count, &rowid, &count, refname, sizeof( refname ), &sz ) ) == 0 )
-            {
-                bool include;
-                unsigned r;
-                unsigned max_to = UINT_MAX;
-                unsigned min_from = 0;
-                
-                for ( include = false, r = 0; r < param->region_qty; ++r )
-                {
-                    if ( sz == string_size( param->region[ r ].name ) &&
-                         memcmp( param->region[ r ].name, refname, sz ) == 0 )
-                    {
-                        include = true;
-                        max_to = param->region[ r ].max_to;
-                        min_from = param->region[ r ].min_from;
-                        param->region[ r ].printed++; /* new: mark a region as printed */
-                        break;
-                    }
-                }
-
-                if ( param->region_qty == 0 || include )
-                {
-                    int64_t const endrow_exclusive = rowid + count;
-                    unsigned m;
-                    unsigned k;
-                    
-                    for ( k = 0, m = 1; rc == 0 && k < 3; ++k, m <<= 1 )
-                    {
-                        if ( m & options )
-                        {
-                            unsigned lookback = 0;
-                            int64_t row;
-                            int32_t row_start_offset;
-                            unsigned pos;
-			    unsigned const maxseqlen = 5000; /***** TODO: this code is to be rewritten anyway ****/
-                            
-                            if ( param->region_qty )
-                            {
-                                if ( ctx->ref.cols[ ref_OVERLAP_REF_LEN ].idx )
-                                {
-                                    rc = Cursor_Read( &ctx->ref, rowid, 0, ~(0u) );
-                                    if ( rc != 0 )
-                                        break;
-                                    if ( ctx->ref.cols[ ref_OVERLAP_REF_LEN ].len > k )
-                                    {
-                                        unsigned const overlap = ctx->ref.cols[ ref_OVERLAP_REF_LEN ].base.coord0[ k ];
-                                        
-                                        if ( overlap != 0 )
-                                        {
-                                            
-                                            assert( overlap < rowid * maxseqlen );
-                                            lookback = ( rowid - ( overlap / maxseqlen ) );
-                                        }
-                                    }
-                                }
-                                else
-                                    lookback = 1;
-                            }
-			    row_start_offset = min_from/maxseqlen - lookback;
-			   if(row_start_offset < 0) row_start_offset=0;
-			    
-
-                            for ( pos = row_start_offset*maxseqlen, row = rowid + row_start_offset; rc == 0 && row < endrow_exclusive; ++row )
-                            {
-                                if ( row < 1 )
-                                {
-                                    row = 0;
-                                    continue;
-                                }
-                                rc = Cursor_Read( &ctx->ref, row, 0, ~(0u) );
-                                if ( rc != 0 )
-                                    break;
-                                if ( ctx->ref.cols[ ref_PRIMARY_ALIGNMENT_IDS + k ].len > 0 )
-                                    rc = user_func( ctx, &param->region[r], Options, m, &rows,
-                                                    &ctx->ref.cols[ ref_PRIMARY_ALIGNMENT_IDS + k ] );
-                                pos += ctx->ref.cols[ ref_MAX_SEQ_LEN ].base.u32[ 0 ];
-                                if ( pos >= max_to )
-                                    break;
-                                if ( param->test_rows != 0 && rows > param->test_rows )
-                                    break;
-                            }
-                        }
-                    }
-                }
-                if ( param->test_rows != 0 && rows > param->test_rows )
-                    break;
-                if ( rc != 0 )
-                    break;
-            } /* while */
-
-            /* new: walk the list of regions and report what was NOT printed ( found ) ... */
-            if ( param->region_qty > 0 && GetRCState( rc ) != rcCanceled )
-            {
-                unsigned r;
-                for ( r = 0; r < param->region_qty; ++r )
-                {
-                    if ( param->region[ r ].printed == 0 )
-                    {
-                        (void)PLOGMSG( klogWarn, ( klogWarn, "reference >$(a)< not found", "a=%s", param->region[ r ].name ) );
-                    }
-                }
-            }
-
-            if ( GetRCObject( rc ) == rcId && GetRCState( rc ) == rcNotFound )
-            {
-                rc = 0;
-            }
-
-        }
-    }
-    Cursor_Close( &ctx->ref.curs );
-    KIndexRelease( iname );
-    
-    return rc;
-}
-
-
-static rc_t DumpAlignedTable( SAM_dump_ctx_t *const ctx, DataSource *const ds,
-                              bool const primary, int const cg_style, unsigned *const rcount )
-{
-    unsigned i;
-    int64_t start;
-    uint64_t count;
-    rc_t rc = VCursorIdRange( ds->curs.vcurs, 0, &start, &count );
-    
-    if ( rc != 0 )
-        return rc;
-    for ( i = 0; i != (unsigned)count; ++i )
-    {
-        if ( DumpAlignedRow(ctx, ds, start + i, primary, cg_style, &rc ) )
-            ++*rcount;
-        if ( rc != 0 || ( rc = Quitting() ) != 0 )
-            return rc;
-        if ( param->test_rows && *rcount > param->test_rows )
-            break;
-    }
-    return 0;
-}
-
-
-static rc_t DumpUnsorted( SAM_dump_ctx_t *const ctx )
-{
-    rc_t rc = 0;
-    unsigned rcount;
-    
-    if ( rc == 0 && param->cg_evidence )
-    {
-        SAM_DUMP_DBG( 2, ( "%s EVIDENCE_INTERVAL\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->evi, false, 0, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) allele sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    if ( rc == 0 && param->cg_ev_dnb )
-    {
-        SAM_DUMP_DBG( 2, ( "%s EVIDENCE_ALIGNMENT\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->eva, false, param->cg_style, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) support sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    if ( rc == 0 && ctx->pri.curs.vcurs )
-    {
-        SAM_DUMP_DBG( 2, ( "%s PRIMARY_ALIGNMENT\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->pri, true, param->cg_style, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) primary sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    if ( rc == 0 && ctx->sec.curs.vcurs )
-    {
-        SAM_DUMP_DBG( 2, ( "%s SECONDARY_ALIGNMENT\n", ctx->accession ) );
-        rcount = 0;
-        rc = DumpAlignedTable( ctx, &ctx->sec, false, param->cg_style, &rcount );
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) secondary sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    return rc;
-}
-
-
-static rc_t DumpUnaligned( SAM_dump_ctx_t *const ctx, bool const aligned )
-{
-    rc_t rc = 0;
-    int64_t start = 0;
-    uint64_t count = 0;
-
-    rc = VCursorIdRange( ctx->seq.curs.vcurs, 0, &start, &count );
-    if ( rc == 0 )
-    {
-        uint64_t rcount = 0;
-        if ( param->test_rows != 0 && count > param->test_rows )
-        {
-            count = param->test_rows;
-        }
-        SAM_DUMP_DBG( 2, ( "%s SEQUENCE table range from %ld qty %lu\n", ctx->accession, start, count ) );
-        while ( count > 0 && rc == 0 )
-        {
-            uint32_t i;
-
-            if ( ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].idx == 0)
-            {
-                rc = DumpUnalignedReads( ctx, NULL, start, &rcount );
-            }
-            else
-            {
-                /* avoid reading whole sequence cursor data unnecessarily */
-                rc = Cursor_Read( &ctx->seq, start, seq_PRIMARY_ALIGNMENT_ID, ~(unsigned)0 );
-                if ( rc == 0 )
-                {
-                    /* find if its completely unaligned */
-                    int64_t min_prim_id = 0;
-                    bool has_unaligned = false;
-                    for ( i = 0; rc == 0 && i < ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len; i++ )
-                    {
-                        int64_t x = ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[ i ];
-                        has_unaligned |= x == 0;
-                        if ( ( min_prim_id == 0 && x != 0 ) || min_prim_id < x )
-                        {
-                            min_prim_id = x;
-                        }
-                    }
-                    if ( min_prim_id == 0 )
-                    {
-                        rc = DumpUnalignedReads( ctx, NULL, start, &rcount );
-                    }
-                    else if ( has_unaligned && !param->unaligned_spots )
-                    {
-                        if ( rc == 0 )
-                        {
-#if USE_MATE_CACHE
-                            uint64_t val;
-                            rc = Cache_Get( &ctx->pri.curs, min_prim_id, &val );
-                            if ( rc == 0 )
-                            {
-                                ctx->pri.cols[ alg_REF_POS ].len = 0;
-                                Cache_Unpack( val, 0, &ctx->pri.curs, ctx->pri.cols );
-                                ctx->pri.cols[ alg_SEQ_SPOT_ID ].base.i64 = &start;
-                                ctx->pri.cols[ alg_SEQ_SPOT_ID ].len = 1;
-                                memcpy( &ctx->pri.cols[ alg_REF_NAME ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-                                memcpy( &ctx->pri.cols[ alg_REF_SEQ_ID ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-                                memcpy( &ctx->pri.cols[ alg_REF_POS ], &ctx->pri.cols[ alg_MATE_REF_POS ], sizeof( SCol ) );
-                            }
-                            else if ( !( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcItem ) )
-                            {
-                                break;
-                            }
-                            else
-                            {
-#endif /* USE_MATE_CACHE */
-                                rc = Cursor_ReadAlign( &ctx->pri.curs, min_prim_id, ctx->pri.cols, alg_MATE_ALIGN_ID );
-#if USE_MATE_CACHE
-                            }
-#endif /* USE_MATE_CACHE */
-                            rc = rc ? rc : DumpUnalignedReads( ctx, ctx->pri.cols, min_prim_id, &rcount );
-                        }
-                    }
-                } else if ( GetRCState( rc ) == rcNotFound && GetRCObject( rc ) == rcRow )
-                {
-                    rc = 0;
-                }
-            }
-            start++;
-            count--;
-            rc = rc ? rc : Quitting();
-        }
-        (void)PLOGMSG( klogInfo, ( klogInfo, "$(a): $(c) unaligned sequences", "a=%s,c=%lu", ctx->accession, rcount ) );
-    }
-    return rc;
-}
-
-#if USE_MATE_CACHE
-static rc_t FlushUnalignedRead_cb (uint64_t key, bool value,void *user_data)
-{
-	rc_t rc;
-	int64_t spot_id = (int64_t) key;
-	int64_t aligned_mate_id = (int64_t) value;
-	SAM_dump_ctx_t *const ctx = user_data;
-	rc = Cursor_Read( &ctx->seq, spot_id, seq_PRIMARY_ALIGNMENT_ID, ~(unsigned)0 );
-	if ( rc == 0 ) {
-		uint64_t rcount;
-		uint64_t val;
-		assert(ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].len == 2);
-		if(ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[0]==0){
-			aligned_mate_id = ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[1];
-			assert(aligned_mate_id != 0);
-		} else if(ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[1] == 0){
-			aligned_mate_id = ctx->seq.cols[ seq_PRIMARY_ALIGNMENT_ID ].base.i64[0];
-			assert(aligned_mate_id != 0);
-		} else {
-			assert(0);
-		}
-                rc = Cache_Get( &ctx->pri.curs, aligned_mate_id, &val );
-                if ( rc == 0 ) {
-			ctx->pri.cols[ alg_REF_POS ].len = 0;
-			Cache_Unpack( val, 0, &ctx->pri.curs, ctx->pri.cols );
-			ctx->pri.cols[ alg_SEQ_SPOT_ID ].base.i64 = &spot_id;
-			ctx->pri.cols[ alg_SEQ_SPOT_ID ].len = 1;
-			memcpy( &ctx->pri.cols[ alg_REF_NAME ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-			memcpy( &ctx->pri.cols[ alg_REF_SEQ_ID ], &ctx->pri.cols[ alg_MATE_REF_NAME ], sizeof( SCol ) );
-			memcpy( &ctx->pri.cols[ alg_REF_POS ], &ctx->pri.cols[ alg_MATE_REF_POS ], sizeof( SCol ) );
-			rc =DumpUnalignedReads( ctx, ctx->pri.cols, aligned_mate_id, &rcount );
-		}
-	}
-        return rc;
-}
-static rc_t FlushUnaligned( SAM_dump_ctx_t *const ctx, const SCursCache * cache )
-{
-    return KVectorVisitBool (cache->cache_unaligned_mate, false, FlushUnalignedRead_cb, ctx );
-}
-#endif
-
-static rc_t DumpHeader( SAM_dump_ctx_t const *ctx )
-{
-    bool reheader = param->reheader;
-    rc_t rc = 0;
-    
-    if ( !reheader )
-    {
-        if ( ctx->db )
-        {
-            /* grab header from db meta node */
-            KMetadata const *meta;
-            
-            rc = VDatabaseOpenMetadataRead( ctx->db, &meta );
-            if ( rc == 0 )
-            {
-                KMDataNode const *node;
-                
-                rc = KMetadataOpenNodeRead( meta, &node, "BAM_HEADER" );
-                KMetadataRelease( meta );
-                
-                if ( rc == 0 )
-                {
-                    size_t offset = 0;
-                    
-                    for ( offset = 0; ; )
-                    {
-                        size_t remain;
-                        size_t nread;
-                        char buffer[ 4096 ];
-                        
-                        rc = KMDataNodeRead( node, offset, buffer, sizeof(buffer), &nread, &remain );
-                        if ( rc != 0 )
-                            break;
-                        BufferedWriter( NULL, buffer, nread, NULL );
-                        if ( remain == 0 )
-                        {
-                            if ( buffer[nread - 1] != '\n' )
-                            {
-                                 buffer[ 0 ] = '\n';
-                                 rc = BufferedWriter( NULL, buffer, 1, NULL );
-                            }
-                            break;
-                        }
-                        offset += nread;
-                    }
-                    KMDataNodeRelease(node);
-                }
-                else if ( GetRCState( rc ) == rcNotFound )
-                {
-                    reheader = true;
-                    rc = 0;
-                }
-            }
-        }
-        else
-        {
-            reheader = true;
-            rc = 0;
-        }
-    }
-
-    if ( rc == 0 && reheader )
-    {
-        rc = KOutMsg( "@HD\tVN:1.3\n" );
-        if ( rc == 0 && gRefList )
-            rc = RefSeqPrint();
-        if ( rc == 0 && ctx->readGroup )
-            rc = ReadGroup_print( ctx->readGroup );
-        if ( rc == 0 && ctx->seq.tbl.vtbl )
-            rc = DumpReadGroups( &ctx->seq.tbl );
-    }
-
-    if ( rc == 0 && param->comments )
-    {
-        unsigned i;
-        
-        for( i = 0; rc == 0 && param->comments[ i ]; ++i )
-            rc = KOutMsg( "@CO\t%s\n", param->comments[ i ] );
-    }
-    return rc;
-}
-
-
-static rc_t DumpDB( SAM_dump_ctx_t *const ctx )
-{
-    rc_t rc = 0;
-
-    if ( ctx->ref.tbl.vtbl != NULL )
-        rc = ReferenceList_MakeTable( &gRefList, ctx->ref.tbl.vtbl, 0, CURSOR_CACHE, NULL, 0 );
-    if ( !param->noheader )
-        rc = DumpHeader( ctx );
-    if ( rc == 0 )
-    {
-        if ( param->region_qty ){
-            rc = ForEachAlignedRegion(  ctx
-                                      ,   ( param->primaries   ? primary_IDS : 0 )
-                                        | ( param->secondaries ? secondary_IDS : 0 )
-                                        | ( param->cg_evidence ? evidence_interval_IDS : 0 )
-                                        | ( param->cg_ev_dnb   ? evidence_alignment_IDS : 0 )
-                                      , DumpAlignedRowList_cb );
-#if USE_MATE_CACHE
-	    if ( rc == 0 && param->unaligned ){
-                rc = FlushUnaligned( ctx,ctx->pri.curs.cache);
-	    }
-#endif
-	}
-        if ( param->cg_sam )
-            rc = ForEachAlignedRegion( ctx, evidence_interval_IDS, DumpCGSAM );
-
-        if ( param->region_qty == 0 )
-        {
-            rc = DumpUnsorted( ctx );
-            if ( rc == 0 && param->unaligned )
-                rc = DumpUnaligned( ctx, ctx->pri.tbl.vtbl != NULL );
-        }
-    }
-    ReferenceList_Release( gRefList );
-    return rc;
-}
-
-
-static rc_t DumpTable( SAM_dump_ctx_t *ctx )
-{
-    rc_t rc = 0;
-
-    if ( !param->noheader )
-        rc = DumpHeader( ctx );
-    if ( rc == 0 )
-        rc = DumpUnaligned( ctx, false );
-    return rc;
-}
-
-
-static rc_t ProcessTable( VDBManager const *mgr, char const fullPath[],
-                          char const accession[], char const readGroup[] )
-{
-    VTable const *tbl;
-    rc_t rc = VDBManagerOpenTableRead( mgr, &tbl, 0, fullPath );
-    
-    if ( rc != 0 )
-    {
-        VSchema *schema;
-        
-        rc = VDBManagerMakeSRASchema( mgr, &schema );
-        if ( rc == 0 )
-        {
-            rc = VDBManagerOpenTableRead( mgr, &tbl, schema, fullPath );
-            VSchemaRelease( schema );
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        SAM_dump_ctx_t ctx;
-        SCol seq_cols[ sizeof( gSeqCol ) / sizeof( gSeqCol[ 0 ] ) ];
-        
-        memset( &ctx, 0, sizeof( ctx ) );
-        
-        ctx.fullPath = fullPath;
-        ctx.accession = accession;
-        ctx.readGroup = readGroup;
-        
-        DATASOURCE_INIT( ctx.seq, accession );
-        ctx.seq.tbl.vtbl = tbl;
-        ctx.seq.type = edstt_Sequence;
-        
-        ReportResetTable( fullPath, tbl );
-
-        ctx.seq.cols = seq_cols;
-        memcpy( ctx.seq.cols, gSeqCol, sizeof( gSeqCol ) );
-        rc = Cursor_Open( &ctx.seq.tbl, &ctx.seq.curs, ctx.seq.cols, NULL );
-        if ( rc == 0 ) {
-            rc = DumpTable( &ctx );
-            Cursor_Close(&ctx.seq.curs);
-        }
-        VTableRelease( tbl );
-    }
-    return rc;
-}
-
-
-static void SetupColumns( DataSource *ds, enum eDSTableType type )
-{
-    memcpy( ds->cols, g_alg_col_tmpl, sizeof( g_alg_col_tmpl ) );
-    
-    ds->type = type;
-    if ( param->use_seqid )
-        ds->cols[ alg_MATE_REF_NAME ].name = "MATE_REF_SEQ_ID";
-    else
-        ds->cols[ alg_MATE_REF_NAME ].name = "MATE_REF_NAME";
-    
-    if ( param->fasta || param->fastq )
-        ds->cols[ alg_READ ].name = "RAW_READ";
-    else if ( param->hide_identical )
-        ds->cols[ alg_READ ].name = "MISMATCH_READ";
-    else
-        ds->cols[ alg_READ ].name = "READ";
-    
-    if ( param->long_cigar )
-    {
-        ds->cols[ alg_CIGAR ].name = "CIGAR_LONG";
-        ds->cols[ alg_CIGAR_LEN ].name = "CIGAR_LONG_LEN";
-    }
-    else
-    {
-        ds->cols[ alg_CIGAR ].name = "CIGAR_SHORT";
-        ds->cols[ alg_CIGAR_LEN ].name = "CIGAR_SHORT_LEN";
-    }
-
-    if(param->qualQuant && param->qualQuantSingle){ /** we don't really need quality ***/
-	ds->cols[ alg_SAM_QUALITY   ].name = "";
-    }
-    
-    switch ( type )
-    {
-    case edstt_EvidenceInterval:
-	
-        ds->cols[ alg_SEQ_SPOT_ID   ].name = "";
-        ds->cols[ alg_SEQ_NAME      ].name = "";
-        ds->cols[ alg_SAM_QUALITY   ].name = "";
-        ds->cols[ alg_SPOT_GROUP    ].name = "";
-        ds->cols[ alg_SEQ_SPOT_GROUP].name = "";
-        ds->cols[ alg_SEQ_READ_ID   ].name = "";
-        ds->cols[ alg_MATE_ALIGN_ID ].name = "";
-        ds->cols[ alg_MATE_REF_ID   ].name = "";
-        ds->cols[ alg_MATE_REF_NAME ].name = "";
-        ds->cols[ alg_SAM_FLAGS     ].name = "";
-        ds->cols[ alg_MATE_REF_POS  ].name = "";
-        ds->cols[ alg_ALIGN_GROUP   ].name = "";
-        ds->cols[ alg_TEMPLATE_LEN  ].name = "";
-        if ( param->cg_sam || param->cg_ev_dnb )
-            ds->cols[ alg_EVIDENCE_ALIGNMENT_IDS ].name = "EVIDENCE_ALIGNMENT_IDS";
-        break;
-
-    case edstt_EvidenceAlignment:
-        ds->cols[ alg_REF_PLOIDY    ].name = "REF_PLOIDY";
-        ds->cols[ alg_REF_ID        ].name = "REF_ID";
-        ds->cols[ alg_MATE_ALIGN_ID ].name = "";
-        ds->cols[ alg_MATE_REF_ID   ].name = "";
-        ds->cols[ alg_MATE_REF_NAME ].name = "";
-        ds->cols[ alg_SAM_FLAGS     ].name = "";
-        ds->cols[ alg_MATE_REF_POS  ].name = "";
-        ds->cols[ alg_ALIGN_GROUP   ].name = "";
-        ds->cols[ alg_TEMPLATE_LEN  ].name = "";
-        break;
-    default:
-        break;
-    }
-}
-
-
-static rc_t ProcessDB( VDatabase const *db, char const fullPath[],
-                       char const accession[], char const readGroup[] )
-{
-    char const *const refTableName = (   param->region_qty > 0
-                                      || param->cg_evidence
-                                      || param->cg_ev_dnb
-                                      || param->cg_sam
-                                      || param->reheader
-                                      || param->primaries
-                                      || param->secondaries
-                                     )
-                                   ? "REFERENCE"
-                                   : 0;
-    char const *const priTableName = param->primaries   ? "PRIMARY_ALIGNMENT" : 0;
-    char const *const secTableName = param->secondaries ? "SECONDARY_ALIGNMENT" : 0;
-    char const *const seqTableName = ( param->unaligned || param->reheader ) ? "SEQUENCE" : 0;
-    char const *const eviTableName = ( param->cg_evidence || ( param->cg_ev_dnb & ( param->region_qty > 0 ) ) || param->cg_sam ) ? "EVIDENCE_INTERVAL" : 0;
-    char const *const evaTableName = ( param->cg_ev_dnb   || param->cg_sam ) ? "EVIDENCE_ALIGNMENT" : 0;
-    
-    SAM_dump_ctx_t ctx;
-    SCol align_cols[ ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) * 4 ];
-    SCol seq_cols[ sizeof( gSeqCol ) / sizeof( gSeqCol[ 0 ] ) ];
-    rc_t rc = 0;
-    
-    memset( &ctx, 0, sizeof( ctx ) );
-    memset( align_cols, 0, sizeof( align_cols ) );
-    memset( seq_cols, 0, sizeof( seq_cols ) );
-    
-    ctx.db = db;
-    ctx.fullPath = fullPath;
-    ctx.accession = accession;
-    ctx.readGroup = readGroup;
-    
-    DATASOURCE_INIT( ctx.seq, seqTableName );
-    DATASOURCE_INIT( ctx.ref, refTableName );
-    DATASOURCE_INIT( ctx.pri, priTableName );
-    DATASOURCE_INIT( ctx.sec, secTableName );
-    DATASOURCE_INIT( ctx.evi, eviTableName );
-    DATASOURCE_INIT( ctx.eva, evaTableName );
-    
-    if ( ctx.seq.tbl.name )
-    {
-        rc = VDatabaseOpenTableRead( db, &ctx.seq.tbl.vtbl, ctx.seq.tbl.name );
-        if ( rc == 0 )
-        {
-            ctx.seq.cols = seq_cols;
-            memcpy(seq_cols, gSeqCol, sizeof(gSeqCol));
-            rc = Cursor_Open( &ctx.seq.tbl, &ctx.seq.curs, ctx.seq.cols, NULL );
-        }
-    }
-    ctx.pri.cols = &align_cols[ 0 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    ctx.sec.cols = &align_cols[ 1 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    ctx.evi.cols = &align_cols[ 2 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    ctx.eva.cols = &align_cols[ 3 * ( sizeof( g_alg_col_tmpl ) / sizeof( g_alg_col_tmpl[ 0 ] ) ) ];
-    
-    SetupColumns( &ctx.pri, edstt_PrimaryAlignment );
-    SetupColumns( &ctx.sec, edstt_SecondaryAlignment );
-    SetupColumns( &ctx.evi, edstt_EvidenceInterval );
-    SetupColumns( &ctx.eva, edstt_EvidenceAlignment );
-    
-    if ( ctx.pri.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.pri.tbl.vtbl, ctx.pri.tbl.name );
-    if ( ctx.sec.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.sec.tbl.vtbl, ctx.sec.tbl.name );
-    if ( ctx.evi.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.evi.tbl.vtbl, ctx.evi.tbl.name );
-    if ( ctx.eva.tbl.name )
-        VDatabaseOpenTableRead( db, &ctx.eva.tbl.vtbl, ctx.eva.tbl.name );
-    
-    if (   ctx.pri.tbl.vtbl == NULL
-        && ctx.sec.tbl.vtbl == NULL
-        && ctx.evi.tbl.vtbl == NULL
-        && ctx.eva.tbl.vtbl == NULL )
-    {
-        memset (&ctx.pri, 0, sizeof( ctx.pri ) * 4 );
-        if ( ctx.seq.tbl.name == NULL )
-        {
-            ctx.seq.tbl.name = "SEQUENCE";
-            rc = VDatabaseOpenTableRead( db, &ctx.seq.tbl.vtbl, ctx.seq.tbl.name );
-        }
-        if ( rc == 0 )
-        {
-            ctx.seq.cols = seq_cols;
-            memcpy(seq_cols, gSeqCol, sizeof(gSeqCol));
-            rc = Cursor_Open(&ctx.seq.tbl, &ctx.seq.curs, ctx.seq.cols, NULL);
-            if ( rc == 0 )
-            {
-                rc = DumpTable( &ctx );
-                Cursor_Close(&ctx.seq.curs);
-            }
-            VTableRelease(ctx.seq.tbl.vtbl);
-        }
-        VDatabaseRelease( db );
-        return rc;
-    }
-    ReportResetDatabase( fullPath, db );
-    
-    if ( ctx.ref.tbl.name )
-    {
-        rc = VDatabaseOpenTableRead( db, &ctx.ref.tbl.vtbl, ctx.ref.tbl.name );
-        ctx.ref.type = edstt_Reference;
-    }
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.pri.tbl, &ctx.pri.curs, ctx.pri.cols, ctx.seq.curs.cache );
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.sec.tbl, &ctx.sec.curs, ctx.sec.cols, NULL );
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.evi.tbl, &ctx.evi.curs, ctx.evi.cols, NULL );
-    if ( rc == 0 )
-        rc = Cursor_Open( &ctx.eva.tbl, &ctx.eva.curs, ctx.eva.cols, NULL );
-    if ( rc == 0 )
-        rc = DumpDB( &ctx );
-    
-    Cursor_Close(&ctx.ref.curs);
-    Cursor_Close(&ctx.pri.curs);
-    Cursor_Close(&ctx.sec.curs);
-    Cursor_Close(&ctx.evi.curs);
-    Cursor_Close(&ctx.eva.curs);
-    Cursor_Close(&ctx.seq.curs);
-    
-    VTableRelease( ctx.ref.tbl.vtbl );
-    VTableRelease( ctx.pri.tbl.vtbl );
-    VTableRelease( ctx.sec.tbl.vtbl );
-    VTableRelease( ctx.evi.tbl.vtbl );
-    VTableRelease( ctx.eva.tbl.vtbl );
-    VTableRelease( ctx.seq.tbl.vtbl );
-    
-    return rc;
-}
-
-#if 0
-rc_t ResolvePath( char const *accession, char const ** path )
-{
-    rc_t rc = 0;
-    static char tblpath[ 4096 ];
-#if TOOLS_USE_SRAPATH != 0
-    static SRAPath* pmgr = NULL;
-    
-    if ( accession == NULL && path == NULL )
-    {
-        SRAPathRelease( pmgr );
-        return 0;
-    }
-    if (   pmgr != NULL
-        || ( rc = SRAPathMake( &pmgr, NULL ) ) == 0
-        || ( GetRCState( rc ) == rcNotFound && GetRCTarget( rc ) == rcDylib ) )
-    {
-        *path = tblpath;
-        tblpath[ 0 ] = '\0';
-        rc = 0;
-        do {
-            if ( pmgr != NULL && !SRAPathTest( pmgr, accession ) )
-            {
-                /* try to resolve the path using mgr */
-                rc = SRAPathFind( pmgr, accession, tblpath, sizeof( tblpath ) );
-                if ( rc == 0 )
-                    break;
-            }
-            if ( string_size( accession ) >= sizeof( tblpath ) )
-            {
-                rc = RC( rcExe, rcPath, rcResolving, rcBuffer, rcInsufficient );
-            }
-            else
-            {
-                string_copy( tblpath, ( sizeof tblpath ) - 1, accession, string_size( accession ) );
-                rc = 0;
-            }
-        } while( false );
-    }
-#else
-    if ( accession != NULL && path != NULL )
-    {
-        *path = tblpath;
-        string_copy( tblpath, ( sizeof tblpath ) - 1, accession, string_size( accession ) );
-    }
-#endif
-
-    return rc;
-}
-#endif
-
-
-static rc_t ProcessPath( VDBManager const *mgr, char const Path[] )
-{
-#if 0
-    unsigned pathlen = string_size( Path );
-    char *readGroup = NULL;
-    char *path = NULL;
-    unsigned i;
-    rc_t rc;
-    
-    /* strip trailing path seperators */
-    for ( i = pathlen; i > 0; )
-    {
-        int const ch = Path[ --i ];
-        
-        if ( ch == '/' || ch == '\\' )
-            --pathlen;
-        else
-            break;
-    }
-
-    /* find read group alias */
-    for ( i = pathlen; i > 0; )
-    {
-        int const ch = Path[ --i ];
-        
-        if ( ch == '=' )
-        {
-            unsigned const pos = i + 1;
-            unsigned const len = pathlen - pos;
-            
-            pathlen = i;
-            
-            readGroup = malloc( len + 1 );
-            if ( readGroup == NULL )
-                return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-            memcpy( readGroup, &Path[ pos ], len );
-            readGroup[ len ] = '\0';
-            break;
-        }
-    }
-
-    path = malloc( pathlen + 1 );
-    if ( path == NULL )
-        return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-    memcpy( path, Path, pathlen );
-    path[ pathlen ] = '\0';
-    
-    rc = ReportResetObject( path );
-    if ( rc == 0 )
-    {
-        char const *fullPath;
-
-        rc = ResolvePath( path, &fullPath );
-        if ( rc == 0 )
-        {
-            char const *accession = fullPath;
-            VDatabase const *db;
-            
-            /* use last path element as accession */
-            for ( i = pathlen; i > 0; )
-            {
-                int const ch = path[ --i ];
-                
-                if ( ch == '/' || ch == '\\' )
-                {
-                    accession = &fullPath[ i + 1 ];
-                    break;
-                }
-            }
-            rc = VDBManagerOpenDBRead( mgr, &db, NULL, fullPath );
-            if ( rc == 0 )
-            {
-                rc = ProcessDB( db, fullPath, accession, readGroup );
-                VDatabaseRelease( db );
-            }
-            else
-                rc = ProcessTable( mgr, fullPath, accession, readGroup );
-        }
-    }
-    free( path );
-    free( readGroup );
-    return rc;
-
-#else
-
-    char * pc;
-    rc_t rc = 0;
-
-    pc = strchr (Path, ':');
-    if (pc == NULL)
-    {
-        unsigned pathlen;
-        char *readGroup;
-        char *path;
-        unsigned i;
-
-    old:
-        pathlen = string_size( Path );
-        readGroup = NULL;
-        path = NULL;
-    
-        /* strip trailing path seperators */
-        for ( i = pathlen; i > 0; )
-        {
-            int const ch = Path[ --i ];
-        
-            if ( ch == '/' || ch == '\\' )
-                --pathlen;
-            else
-                break;
-        }
-
-        /* find read group alias */
-        for ( i = pathlen; i > 0; )
-        {
-            int const ch = Path[ --i ];
-        
-            if ( ch == '=' )
-            {
-                unsigned const pos = i + 1;
-                unsigned const len = pathlen - pos;
-            
-                pathlen = i;
-            
-                readGroup = malloc( len + 1 );
-                if ( readGroup == NULL )
-                    return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-                memcpy( readGroup, &Path[ pos ], len );
-                readGroup[ len ] = '\0';
-                break;
-            }
-        }
-
-        path = malloc( pathlen + 1 );
-        if ( path == NULL )
-            return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-        memcpy( path, Path, pathlen );
-        path[ pathlen ] = '\0';
-    
-        rc = ReportResetObject( path );
-        if ( rc == 0 )
-        {
-            char const *accession = path;
-            VDatabase const *db;
-            
-            /* use last path element as accession */
-            for ( i = pathlen; i > 0; )
-            {
-                int const ch = path[ --i ];
-                
-                if ( ch == '/' || ch == '\\' )
-                {
-                    accession = &path[ i + 1 ];
-                    break;
-                }
-            }
-            rc = VDBManagerOpenDBRead( mgr, &db, NULL, path );
-            if ( rc == 0 )
-            {
-                rc = ProcessDB( db, path, accession, readGroup );
-                if (UIError(rc, db, NULL)) {
-                    UIDatabaseLOGError(rc, db, true);
-/*                  *error_reported = true; */
-                }
-                VDatabaseRelease( db );
-            }
-            else {
-                rc = ProcessTable( mgr, path, accession, readGroup );
-                if (UIError(rc, NULL, NULL)) {
-                    UITableLOGError(rc, NULL, true);
-/*                  *error_reported = true; */
-                }
-            }
-        }
-        free( path );
-        free( readGroup );
-        return rc;
-    }
-    else
-    {
-        VPath * vpath;
-        char * basename;
-        size_t zz;
-        char buffer [8193];
-        char readgroup_ [257];
-        char * readgroup;
-
-        rc = VPathMake (&vpath, Path);
-        if (rc)
-            ; /* LOGERR */
-        else
-        {
-            VPUri_t uri_t;
-            switch (uri_t = VPathGetUri_t (vpath))
-            {
-            default:
-            case vpuri_invalid:
-                rc = RC (rcExe, rcParam, rcAccessing, rcPath, rcInvalid);
-                break;
-            case vpuri_not_supported:
-                rc = RC (rcExe, rcParam, rcAccessing, rcPath, rcUnsupported);
-                break;
-            case vpuri_none:
-                goto old;
-
-            case vpuri_ncbi_vfs:
-            case vpuri_file:
-            case vpuri_ncbi_acc:
-            case vpuri_http:
-                rc = VPathReadPath (vpath, buffer, sizeof buffer - 1, &zz);
-                if (rc)
-                    ;
-                else
-                {
-                loop:
-                    basename = strrchr (buffer, '/');
-                    if (basename)
-                    {
-                        if (basename[1] == '\0')
-                        {
-                            basename[0] = '\0';
-                            goto loop;
-                        }
-                        else
-                            ++basename;
-                    }
-                    else
-                        basename = buffer;
-
-                    {
-                        char * ext;
-
-                        /* cut off [.lite].[c]sra[.nenc||.ncbi_enc] if any */
-                        ext = strrchr( basename, '.' );
-                        if ( ext != NULL )
-                        {
-                            if ( strcasecmp( ext, ".nenc" ) == 0 || strcasecmp( ext, ",ncbi_enc" ) == 0 )
-                            {
-                                *ext = '\0';
-                                ext = strrchr( basename, '.' );
-                            }
-                            if ( ext != NULL )
-                            {
-                                if ( strcasecmp( ext, ".sra" ) == 0 || strcasecmp( ext, ".csra" ) == 0 )
-                                {
-                                    *ext = '\0';
-                                    ext = strrchr( basename, '.' );
-                                    if ( ext != NULL && strcasecmp( ext, ".lite" ) == 0 )
-                                        *ext = '\0';
-                                }
-                            }
-                        }
-                    }
-
-                    rc = VPathOption (vpath, vpopt_readgroup, readgroup_, 
-                                      sizeof readgroup_ - 1, &zz);
-                    if (rc)
-                    {
-                        if (GetRCState (rc) == rcNotFound)
-                        {
-                            rc = 0;
-                            readgroup = NULL;
-                        }
-                    }
-                    else
-                        readgroup = readgroup_;
-
-
-                    if (rc)
-                        ;
-                    else
-                    {
-                        VDatabase const *db;
-
-                        rc = VDBManagerOpenDBRead( mgr, &db, NULL, Path );
-                        if ( rc == 0 )
-                        {
-                            rc = ProcessDB( db, Path, basename, readgroup );
-                            VDatabaseRelease( db );
-                        }
-                        else
-                            rc = ProcessTable( mgr, Path, basename, readgroup );
-                    }
-                }
-                break;
-            }
-            VPathRelease (vpath);
-        }
-    }
-    return rc;
-#endif
-}
-
-/*
-ver_t CC KAppVersion( void )
-{
-    return SAM_DUMP_VERS;
-}
-*/
-
-char const *unaligned_usage[] = {"Output unaligned reads", NULL};
-char const *unaligned_only_usage[] = {"Only output unaligned spots", NULL};
-char const *primaryonly_usage[] = {"Output only primary alignments", NULL};
-char const *cigartype_usage[] = {"Output long version of CIGAR", NULL};
-char const *cigarCG_usage[] = {"Output CG version of CIGAR", NULL};
-char const *cigarCGMerge_usage[] = {"Apply CG fixups to CIGAR/SEQ/QUAL and outputs CG-specific columns", NULL};
-char const *CG_evidence[] = {"Output CG evidence aligned to reference", NULL};
-char const *CG_ev_dnb[] = {"Output CG evidence DNB's aligned to evidence", NULL};
-char const *CG_SAM[] = {"Output CG evidence DNB's aligned to reference ", NULL};
-char const *CG_mappings[] = {"Output CG sequences aligned to reference ", NULL};
-char const *header_usage[] = {"Replace original BAM header with a reconstructed one", NULL};
-char const *noheader_usage[] = {"Do not output headers", NULL};
-char const *region_usage[] = {"Filter by position on genome.",
-                              "Name can either be file specific name (ex: \"chr1\" or \"1\").",
-                              "\"from\" and \"to\" are 1-based coordinates", NULL};
-char const *distance_usage[] = {"Filter by distance between matepairs.",
-                                "Use \"unknown\" to find matepairs split between the references.",
-                                "Use from-to to limit matepair distance on the same reference", NULL};
-char const *seq_id_usage[] = {"Print reference SEQ_ID in RNAME instead of NAME", NULL};
-char const *identicalbases_usage[] = {"Output '=' if base is identical to reference", NULL};
-char const *gzip_usage[] = {"Compress output using gzip", NULL};
-char const *bzip2_usage[] = {"Compress output using bzip2", NULL};
-char const *qname_usage[] = {"Add .SPOT_GROUP to QNAME", NULL};
-char const *fasta_usage[] = {"Produce Fasta formatted output", NULL};
-char const *fastq_usage[] = {"Produce FastQ formatted output", NULL};
-char const *prefix_usage[] = {"Prefix QNAME: prefix.QNAME", NULL};
-char const *reverse_usage[] = {"Reverse unaligned reads according to read type", NULL};
-char const *comment_usage[] = {"Add comment to header. Use multiple times for several lines. Use quotes", NULL};
-char const *XI_usage[] = {"Output cSRA alignment id in XI column", NULL};
-char const *qual_quant_usage[] = {"Quality scores quantization level",
-                                  "a string like '1:10,10:20,20:30,30:-'", NULL};
-char const *CG_names[] = { "Generate CG friendly read names", NULL};
-
-char const *usage_params[] =
-{
-    NULL,                       /* unaligned */
-    NULL,                       /* unaligned-only */
-    NULL,                       /* primaryonly */
-    NULL,                       /* cigartype */
-    NULL,                       /* cigarCG */
-    NULL,                       /* header */
-    NULL,                       /* no-header */
-    "text",                     /* comment */
-    "name[:from-to]",           /* region */
-    "from-to|'unknown'",        /* distance */
-    NULL,                       /* seq-id */
-    NULL,                       /* identical-bases */
-    NULL,                       /* gzip */
-    NULL,                       /* bzip2 */
-    NULL,                       /* qname */
-    NULL,                       /* fasta */
-    NULL,                       /* fastq */
-    "prefix",                   /* prefix */
-    NULL,                       /* reverse */
-    NULL,                       /* test-rows */
-    NULL,                       /* mate-row-gap-cacheable */
-    NULL,                       /* cigarCGMerge */
-    NULL,                       /* XI */
-    "quantization string",      /* qual-quant */
-    NULL,                       /* cigarCGMerge */
-    NULL,                       /* CG-evidence */
-    NULL,                       /* CG-ev-dnb */
-    NULL,                       /* CG-mappings */
-    NULL,                       /* CG-SAM */
-    NULL                        /* CG-names */
-};
-
-enum eArgs
-{
-    earg_unaligned = 0,         /* unaligned */
-    earg_unaligned_only,        /* unaligned */
-    earg_prim_only,             /* primaryonly */
-    earg_cigartype,             /* cigartype */
-    earg_cigarCG,               /* cigarCG */
-    earg_header,                /* header */
-    earg_noheader,              /* no-header */
-    earg_comment,               /* comment */
-    earg_region,                /* region */
-    earg_distance,              /* distance */
-    earg_seq_id,                /* seq-id */
-    earg_identicalbases,        /* identical-bases */
-    earg_gzip,                  /* gzip */
-    earg_bzip2,                 /* bzip2 */
-    earg_qname,                 /* qname */
-    earg_fastq,                 /* fasta */
-    earg_fasta,                 /* fastq */
-    earg_prefix,                /* prefix */
-    earg_reverse,               /* reverse */
-    earg_test_rows,             /* test-rows */
-    earg_mate_row_gap_cachable, /* mate-row-gap-cacheable */
-    earg_cigarCG_merge,         /* cigarCGMerge */
-    earg_XI,                    /* XI */
-    earg_QualQuant,             /* qual-quant */
-    earg_CG_evidence,           /* CG-evidence */
-    earg_CG_ev_dnb,             /* CG-ev-dnb */
-    earg_CG_mappings,           /* CG-mappings */
-    earg_CG_SAM,                /* CG-SAM */
-    earg_CG_names               /* CG-names */
-};
-
-OptDef DumpArgs[] =
-{
-    { "unaligned", "u", NULL, unaligned_usage, 0, false, false },           /* unaligned */
-    { "unaligned-only", "U", NULL, unaligned_usage, 0, false, false },      /* unaligned-only */
-    { "primary", "1", NULL, primaryonly_usage, 0, false, false },           /* primaryonly */
-    { "cigar-long", "c", NULL, cigartype_usage, 0, false, false },          /* cigartype */
-    { "cigar-CG", NULL, NULL, cigarCG_usage, 0, false, false },             /* cigarCG */
-    { "header", "r", NULL, header_usage, 0, false, false },                 /* header */
-    { "no-header", "n", NULL, noheader_usage, 0, false, false },            /* no-header */
-    { "header-comment", NULL, NULL, comment_usage, 0, true, false },        /* comment */
-    { "aligned-region", NULL, NULL, region_usage, 0, true, false },         /* region */
-    { "matepair-distance", NULL, NULL, distance_usage, 0, true, false },    /* distance */
-    { "seqid", "s", NULL, seq_id_usage, 0, false, false },                  /* seq-id */
-    { "hide-identical", "=", NULL, identicalbases_usage, 0, false, false }, /* identical-bases */
-    { "gzip", NULL, NULL, gzip_usage, 0, false, false },                    /* gzip */
-    { "bzip2", NULL, NULL, bzip2_usage, 0, false, false },                  /* bzip2 */
-    { "spot-group", "g", NULL, qname_usage, 0, false, false },              /* qname */
-    { "fastq", NULL, NULL, fastq_usage, 0, false, false },                  /* fasta */
-    { "fasta", NULL, NULL, fasta_usage, 0, false, false },                  /* fastq */
-    { "prefix", "p", NULL, prefix_usage, 0, true, false },                  /* prefix */
-    { "reverse", NULL, NULL, reverse_usage, 0, false, false },              /* reverse */
-    { "test-rows", NULL, NULL, NULL, 0, true, false },                      /* test-rows */
-    { "mate-cache-row-gap", NULL, NULL, NULL, 0, true, false },             /* mate-row-gap-cacheable */
-    { "cigar-CG-merge", NULL, NULL, cigarCGMerge_usage, 0, false, false },  /* cigarCGMerge */
-    { "XI", NULL, NULL, XI_usage, 0, false, false },                        /* XI */
-    { "qual-quant", "Q", NULL, qual_quant_usage, 0, true, false },          /* qual-quant */
-    { "CG-evidence", NULL, NULL, CG_evidence, 0, false, false },            /* CG-evidence */
-    { "CG-ev-dnb"  , NULL, NULL, CG_ev_dnb  , 0, false, false },            /* CG-ev-dnb */
-    { "CG-mappings", NULL, NULL, CG_mappings, 0, false, false },            /* CG-mappings */
-    { "CG-SAM", NULL, NULL, CG_SAM, 0, false, false },                      /* CG-SAM */
-    { "CG-names", NULL, NULL, CG_names, 0, false, false },                  /* CG-names */
-    { "legacy", NULL, NULL, NULL, 0, false, false }
-};
-
-
-/*
-const char UsageDefaultName[] = "sam-dump";
-
-
-rc_t CC UsageSummary( char const *progname )
-{
-    return KOutMsg( "Usage:\n"
-        "\t%s [options] path-to-run[ path-to-run ...] > output.sam\n\n", progname );
-}
-
-
-rc_t CC Usage( Args const *args)
-{
-    char const *progname = UsageDefaultName;
-    char const *fullpath = UsageDefaultName;
-    rc_t rc;
-    unsigned i;
-
-    rc = ArgsProgram( args, &fullpath, &progname );
-
-    UsageSummary( progname );
-
-    KOutMsg( "Options:\n" );
-    for( i = 0; i < sizeof( DumpArgs ) / sizeof( DumpArgs[ 0 ] ); i++ )
-    {
-        if ( DumpArgs[ i ].help != NULL )
-        {
-            HelpOptionLine( DumpArgs[ i ].aliases, DumpArgs[ i ].name,
-                            usage_params[ i ], DumpArgs[ i ].help);
-        }
-    }
-    KOutMsg( "\n" );
-    HelpOptionsStandard();
-
-    HelpVersion( fullpath, KAppVersion() );
-
-    return rc;
-}
-*/
-
-#define ARGS_COUNT (sizeof(DumpArgs)/sizeof(DumpArgs[0]))
-
-
-static unsigned ParamCount( Args const *const args, rc_t *const prc )
-{
-    uint32_t y = 0;
-    rc_t rc = ArgsParamCount( args, &y );
-    
-    if ( prc != NULL )
-        *prc = rc;
-    return y;
-}
-
-
-static unsigned ArgCount( Args const *const args, rc_t *const prc )
-{
-    uint32_t y = 0;
-    rc_t rc = ArgsArgvCount( args, &y );
-    
-    if ( prc != NULL )
-        *prc = rc;
-    return y;
-}
-
-
-static rc_t CountArgs( Args const *const args, unsigned count[],
-                       char const **const errmsg )
-{
-    rc_t rc;
-    unsigned const pcount = ParamCount( args, &rc );
-    
-    memset( count, 0, ARGS_COUNT );
-    if ( rc != 0 || pcount == 0 )
-    {
-        *errmsg = "";
-        MiniUsage( args );
-        return ( ArgCount( args, NULL ) < 2 )
-             ? 0
-             : RC( rcExe, rcArgv, rcParsing, rcParam, rcInsufficient );
-    }
-#define COUNT_ARG(E) do {\
-    char const *const optname = DumpArgs[ (E) ].name; \
-    if ( ( rc = ArgsOptionCount( args, optname, &count[ (E) ] ) ) != 0 ) { \
-        *errmsg = optname; \
-        return rc; \
-    } } while( 0 )
-    
-    
-    /* record source options */
-    COUNT_ARG( earg_unaligned );
-    COUNT_ARG( earg_unaligned_only );
-    COUNT_ARG( earg_prim_only );
-    COUNT_ARG( earg_CG_evidence );
-    COUNT_ARG( earg_CG_ev_dnb );
-    COUNT_ARG( earg_CG_mappings );
-    COUNT_ARG( earg_CG_SAM );
-    
-    /* record filter options */
-    COUNT_ARG( earg_region );
-    COUNT_ARG( earg_distance );
-    
-    /* output format options */
-    COUNT_ARG( earg_fastq );
-    COUNT_ARG( earg_fasta );
-    
-    /* SAM header options */
-    COUNT_ARG( earg_header );
-    COUNT_ARG( earg_noheader );
-    COUNT_ARG( earg_comment );
-    
-    /* SAM field options */
-    COUNT_ARG( earg_prefix );
-    COUNT_ARG( earg_qname );
-    COUNT_ARG( earg_seq_id );
-    COUNT_ARG( earg_CG_names );
-    
-    COUNT_ARG( earg_cigartype );
-    COUNT_ARG( earg_cigarCG );
-    COUNT_ARG( earg_cigarCG_merge );
-    
-    COUNT_ARG( earg_identicalbases );
-    COUNT_ARG( earg_reverse );
-    COUNT_ARG( earg_QualQuant );
-    
-    /* output encoding options */
-    COUNT_ARG( earg_gzip );
-    COUNT_ARG( earg_bzip2 );
-    
-    COUNT_ARG( earg_mate_row_gap_cachable );
-    
-    /* debug options */
-    COUNT_ARG( earg_XI );
-    COUNT_ARG( earg_test_rows );
-#undef COUNT_ARG
-    return 0;
-}
-
-
-static unsigned GetOptValU( Args const *const args, char const *const argname,
-                            unsigned const defval, rc_t *const prc )
-{
-    unsigned y = defval;
-    char const *valstr;
-    rc_t rc = ArgsOptionValue( args, argname, 0, &valstr );
-    
-    if ( rc == 0 )
-    {
-        char *endp;
-        
-        y = strtou32( valstr, &endp, 0 );
-        if ( *endp != '\0' )
-        {
-            rc = RC( rcExe, rcArgv, rcProcessing, rcParam, rcInvalid );
-            y = 0;
-        }
-        if ( y == 0 )
-            y = defval;
-    }
-    if ( prc )
-        *prc = rc;
-    return y;
-}
-
-
-static rc_t GetComments( Args const *const args, struct params_s *const parms, unsigned const n )
-{
-    parms->comments = calloc( n + 1, sizeof( parms->comments[ 0 ] ) );
-    if ( parms->comments != NULL )
-    {
-        unsigned i;
-        
-        for ( i = 0; i < n; ++i )
-        {
-            rc_t const rc = ArgsOptionValue( args, DumpArgs[ earg_comment ].name, i, &parms->comments[ i ] );
-            if ( rc != 0 )
-            {
-                free( ( void * )parms->comments );
-                parms->comments = NULL;
-                return rc;
-            }
-        }
-        return 0;
-    }
-    else
-        return RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-}
-
-
-static rc_t ParseFromTo( int *const pFrom, int *const pTo, char const str[] )
-{
-    /* $str =~ /((\d+)-(\d+))|(-(\d+))|(\d+)/ */
-    int n;
-    char fr_str[ 16 ];
-    char to_str[ 16 ];
-    uint32_t fr = 0;
-    uint32_t to = 0;
-    int i = sscanf( str, "%15[0-9]-%15[0-9]%n", fr_str, to_str, &n );
-    
-    if ( i != 2 )
-    {
-        unsigned const offset = ( str[ 0 ] == '-' ) ? 1 : 0;
-        
-        fr = 0;
-        i = sscanf( str + offset, "%15[0-9]%n", to_str, &n );
-        if ( i != 1 )
-            return RC( rcExe, rcArgv, rcProcessing, rcParam, rcOutofrange );
-        to = strtou32( to_str, 0, 0 );
-    }
-    else
-    {
-        fr = strtou32( fr_str, 0, 0 );
-        to = strtou32( to_str, 0, 0 );
-        
-        if ( to < fr )
-        {
-            uint32_t const tmp = to;
-            to = fr;
-            fr = tmp;
-        }
-    }
-    /* was the entire string consumed */
-    if ( str[ n ] != 0 )
-        return RC( rcExe, rcArgv, rcProcessing, rcParam, rcInvalid );
-    *pFrom = ( int )fr;
-    *pTo = ( int )to;
-    return 0;
-}
-
-
-static rc_t GetDistance( Args const *const args, struct params_s *const parms, unsigned const n )
-{
-    rc_t rc;
-    TMatepairDistance *const mpd = calloc( n, sizeof( mpd[ 0 ] ) );
-    
-    if ( mpd == NULL )
-        rc = RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-    else
-    {
-        unsigned i;
-        unsigned j;
-        
-        for ( j = i = 0; i < n; ++i )
-        {
-            char const *valstr;
-            int from = 0;
-            int to = 0;
-
-            rc = ArgsOptionValue( args, DumpArgs[earg_distance].name, i, &valstr );
-            if ( rc != 0 )
-                break;
-            if ( strcasecmp( valstr, "unknown" ) == 0 )
-            {
-                parms->mp_dist_unknown = true;
-                continue;
-            }
-            rc = ParseFromTo( &from, &to, valstr );
-            if ( rc != 0 )
-                break;
-            if ( ( from != 0 ) || ( to != 0 ) )
-            {
-                mpd[ j ].from = from;
-                mpd[ j ].to = to;
-                ++j;
-            }
-        }
-        if ( rc == 0 )
-        {
-            parms->mp_dist = mpd;
-            parms->mp_dist_qty = j;
-            
-            SAM_DUMP_DBG( 2, ( "filter by mate pair distance\n" ) );
-            if ( parms->mp_dist_unknown )
-                SAM_DUMP_DBG( 2, ( "    distance: unknown\n" ) );
-            for ( i = 0; i < j; ++i )
-            {
-                SAM_DUMP_DBG( 2, ( "    distance [%lu-%lu]\n",
-                              parms->mp_dist[ i ].from, parms->mp_dist[ i ].to ) );
-            }
-        }
-        else
-            free( mpd );
-    }
-    return rc;
-}
-
-
-static rc_t GetRegion( Args const *const args, struct params_s *const parms, unsigned const n )
-{
-    rc_t rc;
-    TAlignedRegion *const reg = calloc( n, sizeof( reg[ 0 ] ) );
-    
-    if ( reg == NULL )
-        rc = RC( rcExe, rcArgv, rcProcessing, rcMemory, rcExhausted );
-    else
-    {
-        unsigned i;
-        unsigned j;
-        
-        for ( rc = 0, j = i = 0; i < n; ++i )
-        {
-            char const *valstr;
-            char const *sep;
-            unsigned namelen;
-            unsigned f;
-            unsigned e;
-            TAlignedRegion r;
-
-	    memset(&r,0,sizeof(r));
-            
-            rc = ArgsOptionValue( args, DumpArgs[ earg_region ].name, i, &valstr );
-            if ( rc != 0 ) break;
-            
-            sep = strchr( valstr, ':' );
-            if ( sep != NULL )
-                namelen = sep - valstr;
-            else
-                namelen = string_size( valstr );
-            
-            if ( namelen >= sizeof( r.name ) )
-                return RC( rcExe, rcArgv, rcProcessing, rcParam, rcTooLong );
-            
-            memcpy( r.name, valstr, namelen );
-            r.name[ namelen ] = '\0';
-            
-            r.rq = UINT_MAX;
-            if ( sep != NULL )
-            {
-                int from = -1;
-                int to = -1;
-                
-                rc = ParseFromTo( &from, &to, sep + 1 );
-                if ( rc != 0 )
-                    break;
-                if ( from > 0 ) /* convert to 0-based */
-                    --from;
-                else if ( to > 0 )
-                    from = 0;
-                if ( to > 0 )
-                    --to;
-                else if ( from >= 0 && to < 0 )
-                    to = from;
-                if ( from >= 0 || to >= 0 )
-                {
-                    if ( from > to )
-                    {
-                        int tmp = to;
-                        to = from;
-                        from = tmp;
-                    }
-                    r.r[ 0 ].from = from;
-                    r.r[ 0 ].to = to;
-                    r.rq = 1;
-                }
-            }
-            
-            for ( f = 0, e = j; f < e; )
-            {
-                unsigned const m = ( ( f + e ) / 2 );
-                int const diff = strcmp( r.name, reg[ m ].name );
-                
-                if ( diff < 0 )
-                    e = m;
-                else
-                    f = m + 1;
-            }
-            if ( 0 < e && e < j && strcmp( r.name, reg[ e-1 ].name ) == 0 )
-            {
-                TAlignedRegion *const fnd = &reg[ e - 1 ];
-                
-                if ( fnd->rq != UINT_MAX )
-                {
-                    for ( f = 0, e = fnd->rq; f < e; )
-                    {
-                        unsigned const m = ( ( f + e ) / 2 );
-                        
-                        if ( r.r[ 0 ].from < fnd->r[ m ].from )
-                            e = m;
-                        else
-                            f = m + 1;
-                    }
-                    if ( fnd->rq >= ( sizeof( r.r ) / sizeof( r.r[0] ) ) )
-                    {
-                        rc = RC( rcExe, rcArgv, rcProcessing, rcBuffer, rcInsufficient );
-                        break;
-                    }
-                    memmove( &fnd->r[ e +1 ], &fnd->r[ e ], ( fnd->rq - e ) * sizeof( fnd->r[ 0 ] ) );
-                    fnd->r[ e ] = r.r[ 0 ];
-                    ++fnd->rq;
-                }
-            }
-            else
-            {
-                memmove( &reg[ e + 1 ], &reg[ e ], ( j - e ) * sizeof( reg[ 0 ] ) );
-                reg[ e ] = r;
-                ++j;
-            }
-        }
-        if ( rc == 0 )
-        {
-            parms->region = reg;
-            parms->region_qty = j;
-            
-            for ( i = 0; i < parms->region_qty; ++i )
-            {
-                TAlignedRegion *const r = &parms->region[ i ];
-                
-                SAM_DUMP_DBG( 2, ( "filter by %s\n", r->name ) );
-                if ( r->rq == UINT_MAX )
-                {
-                    r->rq = 1;
-                    r->r[ 0 ].from = 0;
-                    r->r[ 0 ].to = UINT_MAX;
-                }
-                for ( j = 0; j < r->rq; ++j )
-                {
-                    unsigned const to = r->r[ j ].to;
-                    unsigned const from = r->r[ j ].from;
-                    
-                    SAM_DUMP_DBG( 2, ( "   range: [%u:%u]\n", r->r[ j ].from, to ) );
-                    if ( r->max_to < to ) r->max_to = to;
-                    if ( r->min_from < from ) r->min_from = from;
-                }
-            }
-        }
-        else
-            free( reg );
-    }
-    return rc;
-}
-
-
-static rc_t GetQualQuant( Args const *const args, struct params_s *const parms )
-{
-    char const *valstr;
-    int i;
-    rc_t rc = ArgsOptionValue( args, DumpArgs[ earg_QualQuant ].name, 0, &valstr );
-    
-    if ( rc == 0 && strcmp( valstr, "0" ) != 0 )
-        parms->quantizeQual = QualityQuantizerInitMatrix( parms->qualQuant, valstr );
-    for(i=1; parms->qualQuant[i]==parms->qualQuant[0] && i<256;i++){}
-    if(i<256) parms->qualQuantSingle=0;
-    else      parms->qualQuantSingle = parms->qualQuant[0];
-    return rc;
-}
-
-
-static rc_t GetArgs( Args const *const args, unsigned const count[],
-                     char const **const errmsg )
-{
-    static struct params_s parms;
-    bool const multipass = ParamCount( args, 0 ) > 1;
-    rc_t rc;
-    
-    memset( &parms, 0, sizeof( parms ) );
-    
-    if ( count[ earg_comment ] )
-    {
-        rc = GetComments( args, &parms, count[ earg_comment ] );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_comment ].name;
-            return rc;
-        }
-    }
-    
-    if ( count[ earg_region ] && count[ earg_unaligned_only ] == 0 )
-    {
-        rc = GetRegion( args, &parms, count[ earg_region ] );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_region ].name;
-            return rc;
-        }
-    }
-
-    if ( count[ earg_distance ] && count[ earg_unaligned_only ] == 0 )
-    {
-        rc = GetDistance( args, &parms, count[ earg_distance ] );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_distance ].name;
-            return rc;
-        }
-    }
-
-    if ( count[ earg_QualQuant ] )
-    {
-        rc = GetQualQuant( args, &parms );
-        if ( rc != 0 )
-        {
-            *errmsg = DumpArgs[ earg_QualQuant ].name;
-            return rc;
-        }
-    }
-    
-    parms.cg_sam = ( count[ earg_CG_SAM ] != 0 );
-    parms.cg_evidence = ( count[ earg_CG_evidence ] != 0 );
-    parms.cg_ev_dnb = ( count[ earg_CG_ev_dnb ] != 0 );
-    
-    if ( count[ earg_CG_mappings ] == 0 &&
-         ( parms.cg_sam || parms.cg_evidence || parms.cg_ev_dnb ) )
-    {
-        parms.primaries = false;
-        parms.secondaries = false;
-        parms.unaligned = false;
-    }
-    else
-    {
-        parms.primaries = true;
-        parms.secondaries = ( count[ earg_prim_only ] == 0 );
-        parms.unaligned = ( ( count[ earg_unaligned ] != 0 ) /*&& ( parms.region_qty == 0 )*/ );
-    }
-    
-    parms.long_cigar = ( count[ earg_cigartype ] != 0 );
-    parms.use_seqid = ( ( count[ earg_seq_id ] != 0 ) || multipass );
-    parms.hide_identical = ( count[ earg_identicalbases ] != 0 );
-    parms.fasta = ( count[ earg_fasta ] != 0 );
-    parms.fastq = ( count[ earg_fastq ] != 0 );
-    parms.reverse_unaligned = ( count[ earg_reverse ] != 0 );
-    parms.cg_friendly_names = count[ earg_CG_names ] != 0;
-    parms.spot_group_in_name = ( count[ earg_qname ] != 0 || multipass );
-    parms.noheader = ( ( count[ earg_noheader ] != 0 ) || parms.fasta || parms.fastq || multipass );
-    parms.reheader = ( ( count[ earg_header ] != 0 ) && !parms.noheader );
-    parms.xi = ( count[ earg_XI ] != 0 );
-    if ( ( count[ earg_cigarCG ] == 0 ) && ( count[ earg_cigarCG_merge ] == 0 ) )
-    {
-        parms.cg_style = 0;
-    }
-    else if ( count[ earg_cigarCG ] == 0 )
-    {
-        parms.cg_style = 1;
-        parms.long_cigar = false;
-    }
-    else if ( count[ earg_cigarCG_merge ] == 0 )
-    {
-        parms.cg_style = 2;
-    }
-    else
-    {
-        rc = RC( rcExe, rcArgv, rcProcessing, rcParam, rcInconsistent );
-        *errmsg = "cigar-CG and CG are mutually exclusive";
-        parms.cg_style = 0;
-    }
-
-    if (count[ earg_unaligned_only ] > 0) {
-        parms.unaligned_spots = true;
-        
-        parms.primaries = false;
-        parms.secondaries = false;
-        parms.unaligned = true;
-        parms.cg_ev_dnb = false;
-        parms.cg_evidence = false;
-        parms.cg_sam = false;
-        parms.cg_style = 0;
-    }
-    
-    parms.test_rows = GetOptValU( args, DumpArgs[ earg_test_rows ].name, 0, NULL );
-    parms.mate_row_gap_cachable = GetOptValU( args, DumpArgs[ earg_mate_row_gap_cachable ].name, 1000000, NULL );
-    
-    param = &parms;
-    return 0;
-}
-
-
-static rc_t GetParams( Args const *const args, char const **const errmsg )
-{
-    unsigned count[ ARGS_COUNT ];
-    rc_t rc = CountArgs( args, count, errmsg );
-    
-    if ( rc == 0 )
-        rc = GetArgs( args, count, errmsg );
-    return rc;
-}
-
-
-rc_t CC SAM_Dump_Main( int argc, char* argv[] )
-{
-    rc_t rc = 0;
-    Args* args;
-    char const *errmsg = "stop";
-    bool error_reported = false;
-
-    memset( &g_out_writer, 0, sizeof( g_out_writer ) );
-    KOutHandlerSetStdOut();
-    KStsHandlerSetStdErr();
-    KLogHandlerSetStdErr();
-    (void)KDbgHandlerSetStdErr();
-
-    ReportBuildDate( __DATE__ );
-
-    rc = ArgsMakeAndHandle( &args, argc, argv, 1, DumpArgs, ARGS_COUNT );
-    if ( rc == 0 )
-    {
-        uint32_t pcount;
-
-        rc = ArgsParamCount( args, &pcount );
-        if ( rc != 0 || pcount < 1 )
-        {
-            errmsg = "";
-            rc = argc < 2 ? 0 : RC( rcExe, rcArgv, rcParsing, rcParam, rcInsufficient );
-            MiniUsage( args );
-        }
-        else if ( ( rc = GetParams( args, &errmsg ) ) != 0 )
-        {
-        }
-        else
-        {
-            VDBManager const *mgr;
-            
-            rc = VDBManagerMakeRead( &mgr, NULL );
-            if ( rc == 0 )
-            {
-                rc = BufferedWriterMake( param->output_gzip, param->output_bz2 );
-                if ( rc == 0 )
-                {
-                    unsigned i;
-                    
-                    for ( i = 0; i < pcount; ++i )
-                    {
-                        char const *arg;
-                        
-                        rc = ArgsParamValue( args, i, &arg );
-                        if ( rc != 0 ) break;
-                        rc = ProcessPath( mgr, arg );
-#if _ARCH_BITS < 64
-                        /* look for "param excessive while writing vector within container module" */
-                        if (GetRCState(rc) == rcExcessive &&
-                            GetRCObject(rc) == rcParam &&
-                            GetRCContext(rc) == rcWriting &&
-                            GetRCTarget(rc) == rcVector &&
-                            GetRCModule(rc) == rcCont)
-                        {
-                            ( void )PLOGMSG( klogErr, (klogErr, "This run '$(run)' contains too many reads to be processed with a $(bits)-bit executable; please try again with a 64-bit executable.", "run=%s,bits=%u", arg, _ARCH_BITS));
-                        }
-#endif
-                        if ( rc != 0 ) break;
-                    }
-                    BufferedWriterRelease( rc == 0 );
-                }
-                VDBManagerRelease( mgr );
-            }
-        }
-        ArgsWhack( args );
-    }
-
-    if ( rc != 0 && !error_reported )
-    {
-        if ( errmsg[ 0 ] )
-        {
-            ( void )LOGERR( klogErr, rc, errmsg );
-        } else if ( KLogLastErrorCode() != rc )
-        {
-            ( void )LOGERR( klogErr, rc, "stop" );
-        }
-    }
-
-    {
-        /* Report execution environment if necessary */
-        rc_t rc2 = ReportFinalize( rc );
-        if ( rc == 0 )
-            rc = rc2;
-    }
-    return rc;
-}
-
-
-rc_t CC Legacy_KMain( int argc, char* argv[] )
-{
-    char filename[ 4096 ];
-    /*
-       Try to find a option-file - parameter in the original parameters 
-       This is a hack to teach sam-dump to read it's parameters from a file/pipe instead
-       of the commandline
-       It is neccessary because the code above does not use libkapp to parse parameters!
-    */
-    rc_t rc = Args_find_option_in_argv( argc, argv, "--option-file", filename, sizeof filename );
-    if ( rc == 0 )
-    {
-        int new_argc;
-        char ** new_argv;
-        /* we found it! Now comes the special treatment: we fake a new argc/argv-pair! */
-        rc = Args_tokenize_file_and_progname_into_argv( filename, "sam-dump", &new_argc, &new_argv );
-        if ( rc == 0 )
-        {
-            /* pass the faked input-parameters from */
-            rc = SAM_Dump_Main( new_argc, new_argv );
-
-            Args_free_token_argv( new_argc, new_argv );
-        }
-    }
-    else
-    {
-        /* we did not found the special option, just use the commandline-parameters unchanged */
-        rc = SAM_Dump_Main( argc, argv );
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/sam-dump.vers b/tools/sra-pileup/sam-dump.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/sra-pileup/sam-dump.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/sra-pileup/sam-dump3.c b/tools/sra-pileup/sam-dump3.c
deleted file mode 100644
index 01f217a..0000000
--- a/tools/sra-pileup/sam-dump3.c
+++ /dev/null
@@ -1,532 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#include "sam-dump.vers.h"
-
-#include <kapp/main.h>
-#include <vdb/report.h> /* ReportSetVDBManager */
-#include <klib/report.h>
-#include <sysalloc.h>
-
-#include "sam-dump-opts.h"
-#include "inputfiles.h"
-#include "sam-hdr.h"
-#include "matecache.h"
-#include "cg_tools.h"
-#include "out_redir.h"
-#include "sam-aligned.h"
-#include "sam-unaligned.h"
-
-
-char const *sd_unaligned_usage[]      = { "Output unaligned reads along with aligned reads",
-                                       NULL };
-
-char const *sd_primaryonly_usage[]    = { "Output only primary alignments",
-                                       NULL };
-
-char const *sd_cigartype_usage[]      = { "Output long version of CIGAR",
-                                       NULL };
-
-char const *sd_cigarCG_usage[]        = { "Output CG version of CIGAR",
-                                       NULL };
-
-char const *sd_cigarCGMerge_usage[]   = { "Apply CG fixups to CIGAR/SEQ/QUAL and outputs CG-specific columns",
-                                       NULL };
-
-char const *sd_CG_evidence[]          = { "Output CG evidence aligned to reference", 
-                                       NULL };
-
-char const *sd_CG_ev_dnb[]            = { "Output CG evidence DNB's aligned to evidence",
-                                       NULL };
-
-char const *sd_CG_SAM[]               = { "Output CG evidence DNB's aligned to reference ", 
-                                       NULL };
-
-char const *sd_CG_mappings[]          = { "Output CG sequences aligned to reference ",
-                                       NULL };
-
-char const *sd_header_usage[]         = { "Always reconstruct header",
-                                       NULL };
-
-char const *sd_noheader_usage[]       = { "Do not output headers",
-                                       NULL };
-
-char const *sd_region_usage[]         = { "Filter by position on genome.",
-                                       "Name can either be file specific name (ex: \"chr1\" or \"1\").",
-                                       "\"from\" and \"to\" (inclusive) are 1-based coordinates",
-                                       NULL };
-
-char const *sd_distance_usage[]       = { "Filter by distance between matepairs.",
-                                       "Use \"unknown\" to find matepairs split between the references.",
-                                       "Use from-to (inclusive) to limit matepair distance on the same reference",
-                                       NULL };
-
-char const *sd_seq_id_usage[]         = { "Print reference SEQ_ID in RNAME instead of NAME",
-                                       NULL };
-
-char const *sd_identicalbases_usage[] = { "Output '=' if base is identical to reference",
-                                       NULL };
-
-char const *sd_gzip_usage[]           = { "Compress output using gzip",
-                                       NULL };
-
-char const *sd_bzip2_usage[]          = { "Compress output using bzip2",
-                                       NULL };
-
-char const *sd_qname_usage[]          = { "Add .SPOT_GROUP to QNAME",
-                                       NULL };
-
-char const *sd_fasta_usage[]          = { "Produce Fasta formatted output",
-                                       NULL };
-
-char const *sd_fastq_usage[]          = { "Produce FastQ formatted output",
-                                       NULL };
-
-char const *sd_prefix_usage[]         = { "Prefix QNAME: prefix.QNAME",
-                                       NULL };
-
-char const *sd_reverse_usage[]        = { "Reverse unaligned reads according to read type",
-                                       NULL };
-
-char const *sd_comment_usage[]        = { "Add comment to header. Use multiple times for several lines. Use quotes",
-                                       NULL };
-
-char const *sd_XI_usage[]             = { "Output cSRA alignment id in XI column",
-                                       NULL };
-
-char const *sd_qual_quant_usage[]     = { "Quality scores quantization level",
-                                       "a string like '1:10,10:20,20:30,30:-'",
-                                       NULL };
-
-char const *sd_report_usage[]         = { "report options instead of executing",
-                                       NULL };
-
-char const *sd_outputfile_usage[]     = { "print output into this file (instead of STDOUT)",
-                                       NULL };
-
-char const *sd_outbufsize_usage[]     = { "size of output-buffer(dflt:32k, 0...off)",
-                                       NULL };
-
-char const *sd_cachereport_usage[]    = { "print report about mate-pair-cache",
-                                       NULL };
-
-char const *sd_unaligned_only_usage[] = { "output reads for spots with no aligned reads",
-                                       NULL };
-
-char const *sd_cg_names_usage[]       = { "prints cg-style spotgroup.spotid fromed names",
-                                       NULL };
-
-char const *sd_cur_cache_usage[]      = { "open cached cursor with this size",
-                                       NULL };
-
-char const *sd_min_mapq_usage[]       = { "min. mapq an alignment has to have, to be printed",
-                                       NULL };
-
-char const *sd_no_mate_cache_usage[]  = { "do not use a mate-cache, slower but less memory usage",
-                                       NULL };
-
-OptDef SamDumpArgs[] =
-{
-    { OPT_UNALIGNED,     "u", NULL, sd_unaligned_usage,      0, false, false },  /* print unaligned reads */
-    { OPT_PRIM_ONLY,     "1", NULL, sd_primaryonly_usage,    0, false, false },  /* print only primary alignments */
-    { OPT_CIGAR_LONG,    "c", NULL, sd_cigartype_usage,      0, false, false },  /* use long cigar-string instead of short */
-    { OPT_CIGAR_CG,     NULL, NULL, sd_cigarCG_usage,        0, false, false },  /* transform cigar into cg-style ( has B/N ) */
-    { OPT_RECAL_HDR,     "r", NULL, sd_header_usage,         0, false, false },  /* recalculate header */
-    { OPT_NO_HDR,        "n", NULL, sd_noheader_usage,       0, false, false },  /* do not print header */
-    { OPT_HDR_COMMENT,  NULL, NULL, sd_comment_usage,        0, true,  false },  /* insert this comment into header */
-    { OPT_REGION,       NULL, NULL, sd_region_usage,         0, true,  false },  /* filter by region */
-    { OPT_MATE_DIST,    NULL, NULL, sd_distance_usage,       0, true,  false },  /* filter by a list of mate-pair-distances */
-    { OPT_USE_SEQID,     "s", NULL, sd_seq_id_usage,         0, false, false },  /* print seq-id instead of seq-name*/
-    { OPT_HIDE_IDENT,    "=", NULL, sd_identicalbases_usage, 0, false, false },  /* replace bases that match the reference with '=' */
-    { OPT_GZIP,         NULL, NULL, sd_gzip_usage,           0, false, false },  /* compress the output with gzip */
-    { OPT_BZIP2,        NULL, NULL, sd_bzip2_usage,          0, false, false },  /* compress the output with bzip2 */
-    { OPT_SPOTGRP,       "g", NULL, sd_qname_usage,          0, false, false },  /* add spotgroup to qname */
-    { OPT_FASTQ,        NULL, NULL, sd_fastq_usage,          0, false, false },  /* output-format = fastq ( instead of SAM ) */
-    { OPT_FASTA,        NULL, NULL, sd_fasta_usage,          0, false, false },  /* output-format = fasta ( instead of SAM ) */
-    { OPT_PREFIX,        "p", NULL, sd_prefix_usage,         0, true,  false },  /* prefix QNAME with this string */
-    { OPT_REVERSE,      NULL, NULL, sd_reverse_usage,        0, false, false },  /* reverse unaligned reads if reverse-flag set*/
-    { OPT_TEST_ROWS,    NULL, NULL, NULL,                    0, true,  false },  /* test-rows, if >0 limit output to this amount of rows */
-    { OPT_MATE_GAP,     NULL, NULL, NULL,                    0, true,  false },  /* int value, mate's farther apart than this are not cached */
-    { OPT_CIGAR_CG_M,   NULL, NULL, sd_cigarCGMerge_usage,   0, false, false },  /* transform cg-data(length of read/patterns in cigar) into valid SAM (cigar/READ/QUALITY)*/
-    { OPT_XI_DEBUG,     NULL, NULL, sd_XI_usage,             0, false, false },  /* output alignment id for debugging... XI:I:NNNNNNN */
-    { OPT_Q_QUANT,       "Q", NULL, sd_qual_quant_usage,     0, true,  false },  /* quality-quantization string */
-    { OPT_CG_EVIDENCE,  NULL, NULL, sd_CG_evidence,          0, false, false },  /* CG-evidence */
-    { OPT_CG_EV_DNB,    NULL, NULL, sd_CG_ev_dnb,            0, false, false },  /* CG-ev-dnb */
-    { OPT_CG_MAPP,      NULL, NULL, sd_CG_mappings,          0, false, false },  /* CG-mappings */
-    { OPT_CG_SAM,       NULL, NULL, sd_CG_SAM,               0, false, false },  /* cga-tools emulation mode */
-    { OPT_REPORT,       NULL, NULL, sd_report_usage,         0, false, false },  /* report options instead of executing */
-    { OPT_OUTPUTFILE,   NULL, NULL, sd_outputfile_usage,     0, true,  false },  /* write into output-file */
-    { OPT_OUTBUFSIZE,   NULL, NULL, sd_outbufsize_usage,     0, true,  false },  /* size of output-buffer */
-    { OPT_CACHEREPORT,  NULL, NULL, sd_cachereport_usage,    0, false, false },  /* report usage of mate-pair-cache */
-    { OPT_UNALIGNED_ONLY,NULL, NULL, sd_unaligned_only_usage, 0, false, false }, /* print only unaligned spots */
-    { OPT_CG_NAMES,     NULL, NULL, sd_cg_names_usage,       0, false, false },  /* print cg-style spotnames */
-    { OPT_CURSOR_CACHE, NULL, NULL, sd_cur_cache_usage,      0, true,  false },  /* size of cursor cache */
-    { OPT_MIN_MAPQ,     NULL, NULL, sd_min_mapq_usage,       0, true,  false },  /* minimal mapping quality */
-    { OPT_NO_MATE_CACHE,NULL, NULL, sd_no_mate_cache_usage,  0, false, false },  /* do not use mate-cache */
-    { OPT_DUMP_MODE,    NULL, NULL, NULL,                    0, true,  false },  /* how to produce aligned reads if no regions given */
-    { OPT_CIGAR_TEST,   NULL, NULL, NULL,                    0, true,  false },  /* test cg-treatment of cigar string */
-    { OPT_LEGACY,       NULL, NULL, NULL,                    0, false, false }   /* force legacy code-path */
-};
-
-char const *sd_usage_params[] =
-{
-    NULL,                       /* unaligned */
-    NULL,                       /* primaryonly */
-    NULL,                       /* cigartype */
-    NULL,                       /* cigarCG */
-    NULL,                       /* recalc header */
-    NULL,                       /* no-header */
-    "text",                     /* hdr-comment */
-    "name[:from-to]",           /* region */
-    "from-to|'unknown'",        /* mate distance filter*/
-    NULL,                       /* seq-id */
-    NULL,                       /* identical-bases */
-    NULL,                       /* gzip */
-    NULL,                       /* bzip2 */
-    NULL,                       /* qname */
-    NULL,                       /* fasta */
-    NULL,                       /* fastq */
-    "prefix",                   /* prefix */
-    NULL,                       /* reverse */
-    NULL,                       /* test-rows */
-    NULL,                       /* mate-row-gap-cacheable */
-    NULL,                       /* cigarCGMerge */
-    NULL,                       /* XI */
-    "quantization string",      /* qual-quant */
-    NULL,                       /* CG-evidence */
-    NULL,                       /* CG-ev-dnb */
-    NULL,                       /* CG-mappings */
-    NULL,                       /* CG-SAM */
-    NULL,                       /* report */
-    NULL,                       /* outputfile */
-    NULL,                       /* outputfile buffsize */
-    NULL,                       /* cachereport */
-    NULL,                       /* unaligned-only */
-    NULL,                       /* CG-names */
-    NULL,                       /* cursor cache */
-    NULL,                       /* min_mapq */
-    NULL,                       /* no mate-cache */
-    NULL,                       /* dump_mode */
-    NULL,                       /* cigar test */
-    NULL                        /* force legacy code path */
-};
-
-ver_t CC KAppVersion( void )
-{
-    return SAM_DUMP_VERS;
-}
-
-const char UsageDefaultName[] = "sam-dump";
-
-
-rc_t CC UsageSummary( char const *progname )
-{
-    return KOutMsg( "Usage:\n"
-        "\t%s [options] path-to-run[ path-to-run ...]\n\n", progname );
-}
-
-
-rc_t CC Usage( Args const *args )
-{
-    char const *progname = UsageDefaultName;
-    char const *fullpath = UsageDefaultName;
-    rc_t rc;
-    unsigned i, n;
-
-    rc = ArgsProgram( args, &fullpath, &progname );
-
-    UsageSummary( progname );
-
-    KOutMsg( "Options:\n" );
-
-    n = sizeof( SamDumpArgs ) / sizeof( SamDumpArgs[ 0 ] );
-    n--; /* do not print the last option in the SamDumpArgs as help */
-    for( i = 0; i < n; i++ )
-    {
-        if ( SamDumpArgs[ i ].help != NULL )
-        {
-            HelpOptionLine( SamDumpArgs[ i ].aliases, SamDumpArgs[ i ].name,
-                            sd_usage_params[ i ], SamDumpArgs[ i ].help );
-        }
-    }
-    KOutMsg( "\n" );
-    HelpOptionsStandard();
-
-    HelpVersion( fullpath, KAppVersion() );
-
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-static rc_t CC write_to_FILE( void *f, const char *buffer, size_t bytes, size_t *num_writ )
-{
-    * num_writ = fwrite ( buffer, 1, bytes, f );
-    if ( * num_writ != bytes )
-        return RC( rcExe, rcFile, rcWriting, rcTransfer, rcIncomplete );
-    return 0;
-}
-
-
-/* =========================================================================================== */
-
-
-static uint32_t tabsel_2_ReferenceList_Options( const samdump_opts * opts )
-{
-    uint32_t res = 0;
-    if ( opts->dump_primary_alignments )
-        res |= ereferencelist_usePrimaryIds;
-    if ( opts->dump_secondary_alignments )
-        res |= ereferencelist_useSecondaryIds;
-    if ( opts->dump_cg_evidence | opts->dump_cg_ev_dnb )
-        res |= ereferencelist_useEvidenceIds;
-    return res;
-}
-
-
-static rc_t print_samdump( const samdump_opts * const opts )
-{
-    KDirectory *dir;
-
-    rc_t rc = KDirectoryNativeDir( &dir );
-    if ( rc != 0 )
-    {
-        (void)LOGERR( klogErr, rc, "cannot create native directory" );
-    }
-    else
-    {
-        const VDBManager *mgr;
-        rc = VDBManagerMakeRead( &mgr, dir );
-        if ( rc != 0 )
-        {
-            (void)LOGERR( klogErr, rc, "cannot create vdb-manager" );
-        }
-        else
-        {
-            input_files * ifs; /* input_files.h */
-            uint32_t reflist_opt = tabsel_2_ReferenceList_Options( opts );
-            ReportSetVDBManager(mgr);
-            rc = discover_input_files( &ifs, mgr, opts->input_files, reflist_opt ); /* inputfiles.c */
-            if ( rc == 0 )
-            {
-                if ( ifs->database_count == 0 && ifs->table_count == 0 )
-                {
-                    rc = RC( rcExe, rcFile, rcReading, rcItem, rcNotFound );
-                    (void)LOGERR( klogErr, rc, "input object(s) not found" );
-                }
-                else
-                {
-                    matecache * mc = NULL;
-
-                    if ( opts->use_mate_cache )
-                        rc = make_matecache( &mc, ifs->database_count );
-
-                    if ( rc == 0 )
-                    {
-                        uint64_t rows_so_far = 0;
-
-                        /* print output of header */
-                        if ( ( opts->output_format == of_sam )  &&
-                             ( ifs->database_count > 0 )        &&
-                             ( opts->header_mode != hm_none )   &&
-                             !opts->dump_unaligned_only ) 
-                        /* ------------------------------------------------------ */
-                            rc = print_headers( opts, ifs ); /* sam-hdr.c */
-                        /* ------------------------------------------------------ */
-
-
-                        /* print output of aligned reads */
-                        if ( rc == 0 && 
-                             ifs->database_count > 0 && 
-                             !opts->dump_unaligned_only )
-                        /* ------------------------------------------------------ */
-                            rc = print_aligned_spots( opts, ifs, mc, &rows_so_far ); /* sam-aligned.c */
-                        /* ------------------------------------------------------ */
-
-
-                        /* print output of unaligned reads */
-                        if ( rc == 0 )
-                        {
-                            /* ------------------------------------------------------ */
-                            rc = print_unaligned_spots( opts, ifs, mc, &rows_so_far ); /* sam-unaligned.c */
-                            /* ------------------------------------------------------ */
-                        }
-
-                        if ( opts->use_mate_cache )
-                        {
-                            if ( opts->report_cache )
-                                rc = matecache_report( mc ); /* matecache.c */
-                            release_matecache( mc ); /* matecache.c */
-                        }
-                    }
-                }
-                release_input_files( ifs ); /* inputfiles.c */
-            }
-            VDBManagerRelease( mgr );
-        }
-        KDirectoryRelease( dir );
-    }
-    return rc;
-}
-
-
-static rc_t perform_cigar_test( const samdump_opts * const opts )
-{
-    rc_t rc;
-    cg_cigar_input input;
-    cg_cigar_output output;
-
-    memset( &input, 0, sizeof input );
-    memset( &output, 0, sizeof output );
-
-    input.cigar_len = string_size( opts->cigar_test );
-    input.cigar = opts->cigar_test;
-
-    rc = make_cg_cigar( &input, &output );
-    if ( rc == 0 )
-    {
-        KOutMsg( "%s\n", output.cigar );
-    }
-    else
-    {
-        (void)PLOGERR( klogErr, ( klogErr, rc, "error testing cg-cigar treatment '$(t)'", 
-                                  "t=%s", opts->cigar_test ) );
-    }
-    return rc;
-}
-
-/* =========================================================================================== */
-
-static rc_t samdump_main( Args * args, const samdump_opts * const opts )
-{
-    rc_t rc = 0;
-    out_redir redir; /* from out_redir.h */
-    enum out_redir_mode mode;
-
-    switch( opts->output_compression )
-    {
-        case oc_none  : mode = orm_uncompressed; break;
-        case oc_gzip  : mode = orm_gzip; break;
-        case oc_bzip2 : mode = orm_bzip2; break;
-    }
-
-    rc = init_out_redir( &redir, mode, opts->outputfile, opts->output_buffer_size ); /* from out_redir.c */
-    if ( rc == 0 )
-    {
-        if ( opts->report_options )
-        {
-            report_options( opts ); /* from sam-dump-opts.c */
-        }
-        else if ( opts->cigar_test != NULL )
-        {
-            rc = perform_cigar_test( opts );
-        }
-        else
-        {
-            if ( opts->input_file_count < 1 )
-            {
-                rc = RC( rcExe, rcNoTarg, rcConstructing, rcParam, rcInvalid );
-                (void)LOGERR( klogErr, rc, "no inputfiles given at commandline" );
-                Usage( args );
-            }
-            else
-            {
-            /* ------------------------------------------------------ */
-                rc = print_samdump( opts );
-            /* ------------------------------------------------------ */
-            }
-        }
-        release_out_redir( &redir ); /* from out_redir.c */
-    }
-    return rc;
-}
-
-
-/* forward declaration, code is in sam-dump.c */
-rc_t CC Legacy_KMain( int argc, char* argv[] );
-
-
-#define LEGACY_FOR_CGI 1
-
-rc_t CC KMain( int argc, char *argv [] )
-{
-    bool call_legacy_dumper = false;
-
-    rc_t rc = KOutHandlerSet( write_to_FILE, stdout );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "KOutHandlerSet() failed" );
-    }
-    else
-    {
-        Args * args;
-
-        KLogHandlerSetStdErr();
-        rc = ArgsMakeAndHandle( &args, argc, argv, 1, 
-                                SamDumpArgs, sizeof SamDumpArgs / sizeof SamDumpArgs [ 0 ] );
-        if ( rc == 0 )
-        {
-            samdump_opts opts; /* from sam-dump-opts.h */
-
-            memset( &opts, 0, sizeof opts );
-            rc = gather_options( args, &opts ); /* from sam-dump-opts.c */
-            if ( rc == 0 )
-            {
-                if ( LEGACY_FOR_CGI > 0 )
-                {
-                    call_legacy_dumper = (  opts.dump_cg_evidence ||
-                                            opts.dump_cg_sam ||
-                                            opts.dump_cg_ev_dnb ||
-                                            opts.force_legacy ||
-                                            opts.merge_cg_cigar );
-                }
-                if ( !call_legacy_dumper )
-                {
-                    ReportBuildDate( __DATE__ );
-                    rc = samdump_main( args, &opts );
-                }
-                /* because the options have sub-structures, like tree/vector's */
-                release_options( &opts ); /* from sam-dump-opts.c */
-            }
-            ArgsWhack( args );
-        }
-    }
-
-    /* trick to call the legacy sam-dump code if cg-functionality is requested */
-    if ( call_legacy_dumper )
-    {
-        rc = Legacy_KMain( argc, argv );
-    }
-    else
-    {
-        /* Report execution environment if necessary */
-        rc_t rc2 = ReportFinalize( rc );
-        if ( rc == 0 )
-            rc = rc2;
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/sam-hdr.c b/tools/sra-pileup/sam-hdr.c
deleted file mode 100644
index 0adc2fa..0000000
--- a/tools/sra-pileup/sam-hdr.c
+++ /dev/null
@@ -1,425 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include <kdb/meta.h>
-#include <kdb/namelist.h>
-#include <align/reference.h>
-#include <sysalloc.h>
-
-#include "sam-dump-opts.h"
-#include "inputfiles.h"
-
-
-static rc_t print_headers_from_metadata( const VDatabase * db, bool * recalc, const char * path )
-{
-    const KMetadata * meta;
-    rc_t rc = VDatabaseOpenMetadataRead( db, &meta );
-    if ( rc != 0 )
-        (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open metadata from '$(t)'", "t=%s", path ) );
-    else
-    {
-        const KMDataNode * node;
-        rc = KMetadataOpenNodeRead( meta, &node, "BAM_HEADER" );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) == rcNotFound )
-            {
-                *recalc = true;
-                rc = 0;
-            }
-            else
-                (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open meta-node 'BAM_HEADER' from '$(t)'", "t=%s", path ) );
-        }
-        else
-        {
-            size_t offset = 0, num_read, remaining = ~0;
-            char buffer[ 40960 ];
-            while ( rc == 0 && remaining > 0 )
-            {
-                rc = KMDataNodeRead( node, offset, buffer, sizeof( buffer ),
-                                     &num_read, &remaining );
-                if ( rc == 0 )
-                {
-                    rc = KOutMsg( "%.*s", ( uint32_t )num_read, buffer );
-                    offset += num_read;
-                }
-            }
-            if ( rc == 0 && buffer[ num_read - 1 ] != '\n' )
-            {
-                rc = KOutMsg( "\n" );
-            }
-            KMDataNodeRelease( node );
-        }
-        KMetadataRelease( meta );
-    }
-    return rc;
-}
-
-
-typedef struct seq_id_node
-{
-    BSTNode node;
-    char * seq_id;
-    char * name;
-    INSDC_coord_len seq_len;
-} seq_id_node;
-
-
-static int cmp_pchar( const char * a, const char * b )
-{
-    int res = 0;
-    if ( ( a != NULL )&&( b != NULL ) )
-    {
-        size_t len_a = string_size( a );
-        size_t len_b = string_size( b );
-        res = string_cmp ( a, len_a, b, len_b, ( len_a < len_b ) ? len_b : len_a );
-    }
-    return res;
-}
-
-
-static seq_id_node * make_seq_id_node( const char * seq_id, const char * name, INSDC_coord_len seq_len )
-{
-    seq_id_node *res = calloc( sizeof *res, 1 );
-    if ( res != NULL )
-    {
-        res->name = string_dup( name, string_size( name ) );
-        res->seq_id = string_dup( seq_id, string_size( seq_id ) );
-        res->seq_len = seq_len;
-    }
-    return res;
-}
-
-
-static void free_seq_id_node( seq_id_node * node )
-{
-    if ( node != NULL )
-    {
-        if ( node->seq_id != NULL )
-            free( node->seq_id );
-        if ( node->name != NULL )
-            free( node->name );
-        free( node );
-    }
-}
-
-
-static void CC free_seq_id_tree_callback( BSTNode *n, void * data )
-{
-    free_seq_id_node( ( seq_id_node * )n );
-}
-
-
-static void free_seq_id_tree( BSTree * tree )
-{
-    BSTreeWhack( tree, free_seq_id_tree_callback, NULL );
-}
-
-
-static int CC seq_id_node_vs_pchar_wrapper( const void *item, const BSTNode *n )
-{
-    const seq_id_node * node = ( const seq_id_node * )n;
-    return cmp_pchar( (const char *)item, node->seq_id );
-}
-
-
-static seq_id_node * find_seq_id_node( BSTree * tree, const char * key )
-{
-    return ( seq_id_node * ) BSTreeFind( tree, key, seq_id_node_vs_pchar_wrapper );
-}
-
-
-static int CC node_vs_node_wrapper( const BSTNode *item, const BSTNode *n )
-{
-   const seq_id_node * a = ( const seq_id_node * )item;
-   const seq_id_node * b = ( const seq_id_node * )n;
-   return cmp_pchar( a->seq_id, b->seq_id );
-}
-
-
-static rc_t add_seq_id_node( BSTree * tree, const char * seq_id, const char * name, INSDC_coord_len len )
-{
-    rc_t rc = 0;
-    seq_id_node * node = make_seq_id_node( seq_id, name, len );
-    if ( node != NULL )
-    {
-        rc = BSTreeInsert( tree, (BSTNode *)node, node_vs_node_wrapper );
-        if ( rc != 0 )
-            free_seq_id_node( node );
-    }
-    else
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-    return rc;
-}
-
-
-static rc_t print_seq_id_tree( BSTree * tree, input_files * ifs )
-{
-    rc_t rc = 0;
-    uint32_t i;
-    for ( i = 0; i < ifs->database_count && rc == 0; ++i )
-    {
-        input_database * id = VectorGet( &ifs->dbs, i );
-        if ( id != NULL )
-        {
-            uint32_t rcount;
-            rc = ReferenceList_Count( id->reflist, &rcount );
-            if ( rc == 0 && rcount > 0 )
-            {
-                uint32_t r_idx;
-                for ( r_idx = 0; r_idx < rcount && rc == 0; ++r_idx )
-                {
-                    const ReferenceObj * ref_obj;
-                    rc = ReferenceList_Get( id->reflist, &ref_obj, r_idx );
-                    if ( rc == 0 && ref_obj != NULL )
-                    {
-                        const char * seqid;
-                        rc = ReferenceObj_SeqId( ref_obj, &seqid );
-                        if ( rc == 0 )
-                        {
-                            const char * name;
-                            rc = ReferenceObj_Name( ref_obj, &name );
-                            if ( rc == 0 )
-                            {
-                                INSDC_coord_len seq_len;
-                                rc = ReferenceObj_SeqLength( ref_obj, &seq_len );
-                                if ( rc == 0 )
-                                {
-                                    seq_id_node * node = find_seq_id_node( tree, seqid );
-                                    if ( node != NULL )
-                                    {
-                                        if ( node->seq_len != seq_len )
-                                            rc = RC( rcApp, rcNoTarg, rcConstructing, rcData, rcInvalid );
-                                    }
-                                    else
-                                        rc = add_seq_id_node( tree, seqid, name, seq_len );
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-typedef struct hdr_print_ctx
-{
-    rc_t rc;
-    bool use_seq_id;
-} hdr_print_ctx;
-
-
-static void CC print_header_callback( BSTNode *n, void *data )
-{
-    seq_id_node * node = ( seq_id_node * )n;
-    hdr_print_ctx * hctx = ( hdr_print_ctx * )data;
-    if ( hctx->rc == 0 )
-    {
-        if ( hctx->use_seq_id )
-            hctx->rc = KOutMsg( "@SQ\tSN:%s\tLN:%u\n", node->seq_id, node->seq_len );
-        else
-        {
-            if ( cmp_pchar( node->seq_id, node->name ) == 0 )
-                hctx->rc = KOutMsg( "@SQ\tSN:%s\tLN:%u\n", node->name, node->seq_len );
-            else
-                hctx->rc = KOutMsg( "@SQ\tSN:%s\tAS:%s\tLN:%u\n", node->name, node->seq_id, node->seq_len );
-        }
-    }
-}
-
-
-static rc_t extract_spotgroups( VNamelist * spotgroups, input_files * ifs )
-{
-    rc_t rc = 0;
-    uint32_t i;
-    for ( i = 0; i < ifs->database_count && rc == 0; ++i )
-    {
-        input_database * id = VectorGet( &ifs->dbs, i );
-        if ( id != NULL )
-        {
-            const VTable * tab;
-            rc = VDatabaseOpenTableRead( id->db, &tab, "SEQUENCE" );
-            if ( rc != 0 )
-                (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open table SEQUENCE in '$(t)'", "t=%s", id->path ) );
-            else
-            {
-                const KMetadata * meta;
-                rc = VTableOpenMetadataRead( tab, &meta );
-                if ( rc != 0 )
-                    (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open metadata from '$(t)'", "t=%s", id->path ) );
-                else
-                {
-                    const KMDataNode * node;
-                    rc = KMetadataOpenNodeRead( meta, &node, "STATS/SPOT_GROUP" );
-                    if ( rc != 0 )
-                       (void)PLOGERR( klogErr, ( klogErr, rc, "cannot open meta-node 'STATS/SPOT_GROUP' from '$(t)'", "t=%s", id->path ) );
-                    else
-                    {
-                        KNamelist * node_childs;
-                        rc = KMDataNodeListChildren( node, &node_childs );
-                        if ( rc != 0 )
-                            (void)PLOGERR( klogErr, ( klogErr, rc, "cannot list children of SPOT_GROUP-node in '$(t)'", "t=%s", id->path ) );
-                        else
-                        {
-                            uint32_t n_count;
-                            rc = KNamelistCount( node_childs, &n_count );
-                            if ( rc == 0 && n_count > 0 )
-                            {
-                                uint32_t n_idx;
-                                for ( n_idx = 0; n_idx < n_count && rc == 0; ++n_idx )
-                                {
-                                    const char * spotgroup;
-                                    rc = KNamelistGet( node_childs, n_idx, &spotgroup );
-                                    if ( rc == 0 && spotgroup != NULL )
-                                    {
-                                        uint32_t found;
-                                        rc_t rc1 = VNamelistIndexOf( spotgroups, spotgroup, &found );
-                                        if ( GetRCState( rc1 ) == rcNotFound )
-                                            rc = VNamelistAppend( spotgroups, spotgroup );
-                                    }
-                                }
-                            }
-                            KNamelistRelease( node_childs );
-                        }
-                        KMDataNodeRelease( node );
-                    }
-                    KMetadataRelease( meta );
-                }
-                VTableRelease( tab );
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t print_spotgroups( VNamelist * spotgroups )
-{
-    uint32_t count;
-    rc_t rc = VNameListCount( spotgroups, &count );
-    if ( rc == 0 && count > 0 )
-    {
-        uint32_t i;
-        for ( i = 0; i < count && rc == 0; ++i )
-        {
-            const char * s;
-            rc = VNameListGet( spotgroups, i, &s );
-            if ( rc == 0 && s != NULL )
-            {
-                if ( cmp_pchar( s, "default" ) != 0 )
-                    rc = KOutMsg( "@RG\tID:%s\n", s );
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t print_headers_by_recalculating( const samdump_opts * opts, input_files * ifs )
-{
-    BSTree tree;
-    rc_t rc = KOutMsg( "@HD\tVN:1.3\n" );
-    if ( rc == 0 )
-    {
-        /* collect sequenc-id's and names and their lengths, unique by sequence-id */
-        BSTreeInit( &tree );
-        rc = print_seq_id_tree( &tree, ifs );
-        if ( rc == 0 )
-        {
-            hdr_print_ctx hctx;
-            hctx.rc = 0;
-            hctx.use_seq_id = opts->use_seqid_as_refname;
-            /* ptrint it */
-            BSTreeForEach( &tree, false, print_header_callback, &hctx );
-            rc = hctx.rc;
-        }
-        free_seq_id_tree( &tree );
-
-        /* collect spot-groups ( unique ) */
-        if ( rc == 0 )
-        {
-            VNamelist * spotgroups;
-            rc = VNamelistMake( &spotgroups, 10 );
-            if ( rc == 0 )
-            {
-                rc = extract_spotgroups( spotgroups, ifs );
-                if ( rc == 0 )
-                    rc = print_spotgroups( spotgroups );
-                VNamelistRelease( spotgroups );
-            }
-        }
-    }
-    return rc;
-}
-
-
-rc_t print_headers( const samdump_opts * opts, input_files * ifs )
-{
-    rc_t rc = 0;
-    if ( ifs->database_count > 1 )
-        rc = print_headers_by_recalculating( opts, ifs );
-    else
-    {
-        bool recalc = false;
-        switch( opts->header_mode )
-        {
-        case hm_dump    :   {
-                                input_database * id = VectorGet( &ifs->dbs, 0 );
-                                rc = print_headers_from_metadata( id->db, &recalc, id->path );
-                                if ( rc == 0 && recalc )
-                                    rc = print_headers_by_recalculating( opts, ifs );
-                            }
-                            break;
-
-        case hm_recalc  :   rc = print_headers_by_recalculating( opts, ifs );
-                            break;
-
-        case hm_none    :   break; /* to not let the compiler complain about not handled enum */
-        }
-    }
-
-    /* attach header comments from the commandline */
-    if ( rc == 0 && opts->hdr_comments != NULL )
-    {
-        uint32_t count;
-        rc = VNameListCount( opts->hdr_comments, &count );
-        if ( rc == 0 && count > 0 )
-        {
-            uint32_t i;
-            for ( i = 0; i < count && rc == 0; ++i )
-            {
-                const char * s;
-                rc = VNameListGet( opts->hdr_comments, i, &s );
-                if ( rc == 0 && s != NULL )
-                    rc = KOutMsg( "@CO\t%s\n", s );
-            }
-        }
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/sam-hdr.h b/tools/sra-pileup/sam-hdr.h
deleted file mode 100644
index 7b373c4..0000000
--- a/tools/sra-pileup/sam-hdr.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_sam_headers_
-#define _h_sam_headers_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include "sam-dump-opts.h"
-#include "inputfiles.h"
-
-rc_t print_headers( const samdump_opts * opts, input_files * ifs );
-
-#endif
diff --git a/tools/sra-pileup/sam-unaligned.c b/tools/sra-pileup/sam-unaligned.c
deleted file mode 100644
index ea966b6..0000000
--- a/tools/sra-pileup/sam-unaligned.c
+++ /dev/null
@@ -1,1411 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "read_fkt.h"
-#include "sam-unaligned.h"
-#include <kapp/main.h>
-#include <sysalloc.h>
-#include <ctype.h>
-
-#define COL_READ "(INSDC:dna:text)READ"
-#define COL_REF_NAME "(ascii)REF_NAME"
-#define COL_REF_SEQ_ID "(ascii)REF_SEQ_ID"
-#define COL_REF_POS "(INSDC:coord:zero)REF_POS"
-
-typedef struct prim_table_ctx
-{
-    const VCursor * cursor;
-
-    uint32_t ref_name_idx;
-    uint32_t ref_seq_id_idx;
-    uint32_t ref_pos_idx;
-} prim_table_ctx;
-
-
-static rc_t prepare_prim_table_ctx( const samdump_opts * const opts, const input_table * const itab, prim_table_ctx * const ptx )
-{
-    rc_t rc;
-
-    if ( opts->cursor_cache_size == 0 )
-        rc = VTableCreateCursorRead( itab->tab, &ptx->cursor );
-    else
-        rc = VTableCreateCachedCursorRead( itab->tab, &ptx->cursor, opts->cursor_cache_size );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VTableCreateCursorRead( PRIMARY_ALIGNMENT ) for $(tn) failed", "tn=%s", itab->path ) );
-    }
-    else
-    {
-        rc = add_column( ptx->cursor, COL_REF_NAME, &ptx->ref_name_idx );
-        if ( rc == 0 )
-            rc = add_column( ptx->cursor, COL_REF_SEQ_ID, &ptx->ref_seq_id_idx );
-        if ( rc == 0 )
-            rc = add_column( ptx->cursor, COL_REF_POS, &ptx->ref_pos_idx );
-        if ( rc == 0 )
-        {
-            rc = VCursorOpen( ptx->cursor );
-            if ( rc != 0 )
-            {
-                (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorOpen( PRIMARY_ALIGNMENT ) for $(tn) failed", "tn=%s", itab->path ) );
-            }
-        }
-    }
-    return rc;
-}
-
-
-#define COL_ALIGN_COUNT "(U8)ALIGNMENT_COUNT"
-#define COL_SPOT_ID "(INSDC:SRA:spotid_t)SPOT_ID"
-#define COL_PRIM_AL_ID "(I64)PRIMARY_ALIGNMENT_ID"
-#define COL_READ_TYPE "(INSDC:SRA:xread_type)READ_TYPE"
-#define COL_READ_FILTER "(INSDC:SRA:read_filter)READ_FILTER"
-#define COL_READ_LEN "(INSDC:coord:len)READ_LEN"
-#define COL_READ_START "(INSDC:coord:zero)READ_START"
-/* #define COL_QUALITY "(INSDC:quality:text:phred_33)QUALITY" */
-#define COL_QUALITY "(INSDC:quality:phred)QUALITY"
-#define COL_SPOT_GROUP "(ascii)SPOT_GROUP"
-#define COL_NAME "(ascii)NAME"
-
-#define INVALID_COLUMN 0xFFFFFFFF
-
-typedef struct seq_table_ctx
-{
-    const VCursor * cursor;
-
-    uint32_t align_count_idx;
-    uint32_t prim_al_id_idx;
-    uint32_t read_type_idx;
-    uint32_t read_filter_idx;
-    uint32_t read_len_idx;
-    uint32_t read_start_idx;
-    uint32_t read_idx;
-    uint32_t quality_idx;
-    uint32_t spot_group_idx;
-    uint32_t name_idx;
-} seq_table_ctx;
-
-
-static rc_t prepare_seq_table_ctx( const samdump_opts * const opts, const input_table * const itab, seq_table_ctx * const stx, bool legacy )
-{
-    rc_t rc;
-
-    if ( opts->cursor_cache_size == 0 )
-        rc = VTableCreateCursorRead( itab->tab, &stx->cursor );
-    else
-        rc = VTableCreateCachedCursorRead( itab->tab, &stx->cursor, opts->cursor_cache_size );
-    if ( rc != 0 )
-    {
-        (void)PLOGERR( klogInt, ( klogInt, rc, "VTableCreateCursorRead( SEQUENCE ) for $(tn) failed", "tn=%s", itab->path ) );
-    }
-    else
-    {
-        if ( legacy )
-            stx->align_count_idx = INVALID_COLUMN;
-        else
-            rc = add_column( stx->cursor, COL_ALIGN_COUNT, &stx->align_count_idx );
-
-        if ( rc == 0 )
-        {
-            if ( legacy )
-                stx->prim_al_id_idx = INVALID_COLUMN;
-            else
-                rc = add_column( stx->cursor, COL_PRIM_AL_ID, &stx->prim_al_id_idx );
-        }
-
-        if ( rc == 0 )
-        {
-            if ( legacy )
-                rc = add_column( stx->cursor, COL_NAME, &stx->name_idx );
-            else
-                stx->name_idx = INVALID_COLUMN;
-        }
-
-        if ( rc == 0 )
-            rc = add_column( stx->cursor, COL_READ_TYPE, &stx->read_type_idx );
-        if ( rc == 0 )
-            rc = add_column( stx->cursor, COL_READ_FILTER, &stx->read_filter_idx );
-        if ( rc == 0 )
-            rc = add_column( stx->cursor, COL_READ_LEN, &stx->read_len_idx );
-        if ( rc == 0 )
-            rc = add_column( stx->cursor, COL_READ_START, &stx->read_start_idx );
-        if ( rc == 0 )
-            rc = add_column( stx->cursor, COL_READ, &stx->read_idx );
-        if ( rc == 0 )
-            rc = add_column( stx->cursor, COL_QUALITY, &stx->quality_idx );
-        if ( rc == 0 )
-            rc = add_column( stx->cursor, COL_SPOT_GROUP, &stx->spot_group_idx );
-    }
-    return rc;
-}
-
-
-typedef struct seq_row
-{
-    uint32_t nreads;
-
-    bool fully_unaligned;
-    bool partly_unaligned;
-    bool filtered_out;
-} seq_row;
-
-
-static rc_t complain_size_diff( int64_t row_id, const char * txt )
-{
-    rc_t rc = RC( rcExe, rcNoTarg, rcConstructing, rcSize, rcInvalid );
-    (void)PLOGERR( klogInt, ( klogInt, rc, "in row $(rn) of SEQUENCE.$(tx)", "rn=%ld,tx=%s", row_id, txt ) );
-    return rc;
-}
-
-
-static rc_t read_seq_row( const samdump_opts * const opts, const seq_table_ctx * const stx, const int64_t row_id, seq_row * const row )
-{
-    rc_t rc = 0;
-
-    if ( stx->align_count_idx == INVALID_COLUMN )
-    {
-        const INSDC_read_type *ptr;
-
-        row->fully_unaligned = true;
-        row->partly_unaligned = false;
-        row->filtered_out = false;
-        rc = read_INSDC_read_type_ptr( row_id, stx->cursor, stx->read_type_idx, &ptr, &row->nreads );
-    }
-    else
-    {
-        const uint8_t * u8ptr;
-        size_t u8ptr_len;
-
-        /* ALIGNMENT_COUNT ... only to detect if reads are unaligned, could be done with PRIMARY_ALINGMENT too,
-           but this one is only 8 bit instead of 64 bit, that means faster */
-        rc = read_u8_ptr_and_size( row_id, stx->cursor, stx->align_count_idx, &u8ptr, &u8ptr_len );
-        if ( rc == 0 )
-        {
-            uint32_t i, n;
-
-            row->nreads = u8ptr_len;
-            for ( i = 0, n = 0; i < u8ptr_len; ++i )
-                if ( u8ptr[ i ] != 0 )
-                    n++;
-            row->fully_unaligned = ( n == 0 );
-            row->partly_unaligned = ( n < u8ptr_len && n > 0 );
-
-            if ( row->partly_unaligned )
-                row->filtered_out = !opts->print_half_unaligned_reads;
-            else if ( row->fully_unaligned )
-                row->filtered_out = !opts->print_fully_unaligned_reads;
-            else
-                row->filtered_out = true;
-        }
-    }
-    return rc;
-}
-
-
-/**********************************************************************************
-
-    0x001   template having multiple fragments in sequencing
-            (row->nreads > 1 )
-
-    0x002   each fragment properly aligned according to the aligner
-            ( never the case in an unaligned read )
-
-    0x004   fragment unmapped
-            ( always true in an unaligned read )
-
-    0x008   next fragment in the template unmapped
-            ( is the mate aligned? next: read_idx+1, if read_idx==row->nreads-1 then read_idx-1 )
-
-    0x010   SEQ being reverse complemented
-            ( column 'READ_TYPE' has bit READ_TYPE_REVERSE set )
-
-    0x020   SEQ of the next fragment in the template being reversed
-            ( is the mate reversed? )
-
-    0x040   the first fragment in the template
-            ( read_idx == 0 )
-
-    0x080   the last fragment in the template
-            ( read_idx == ( row->nreads - 1 ) )
-
-    0x100   secondary alignment
-            ( never the case in an unaligned read )
-
-    0x200   not passing quality controls
-            ( column 'READ_FILTER' has bit READ_FILTER_REJECT set )
-
-    0x400   PCR or optical duplicate
-            ( column 'READ_FILTER' has bit READ_FILTER_CRITERIA set )
-
-**********************************************************************************/
-static uint32_t calculate_unaligned_sam_flags_db( uint32_t nreads, uint32_t read_idx,
-                                                  uint32_t mate_idx, int64_t mate_id,
-                                                  const INSDC_read_type * read_type,
-                                                  bool reverse_flag,
-                                                  const INSDC_read_filter * read_filter )
-{
-    uint32_t res = 0x04;
-
-    if ( nreads > 1 )
-    {
-        res |= 0x01;
-        /* the following test only make sense if there is a mate */
-
-        if ( mate_id == 0 )
-            res |= 0x08;
-        if ( ( read_type[ mate_idx ] & READ_TYPE_REVERSE ) == READ_TYPE_REVERSE )
-            res |= 0x020;
-        if ( read_idx == 0 )
-            res |= 0x040;
-        if ( read_idx == ( nreads - 1 ) )
-            res |= 0x080;
-    }
-
-    if ( reverse_flag )
-        res |= 0x010;
-    if ( ( read_filter[ read_idx ] & READ_FILTER_REJECT ) == READ_FILTER_REJECT )
-        res |= 0x200;
-    if ( ( read_filter[ read_idx ] & READ_FILTER_CRITERIA ) == READ_FILTER_CRITERIA )
-        res |= 0x400;
-    return res;
-}
-
-
-const char * ref_name_star = "*";
-
-static rc_t get_mate_info( const prim_table_ctx * const ptx, const matecache * const mc,
-                           const input_database * const ids, const int64_t row_id, const int64_t mate_id, const uint32_t nreads,
-                           const char ** mate_ref_name, uint32_t * const mate_ref_name_len, INSDC_coord_zero * const mate_ref_pos )
-{
-    rc_t rc = 0;
-
-    *mate_ref_name = ref_name_star;
-    *mate_ref_name_len = 1;
-    *mate_ref_pos = 0;
-    if ( nreads < 2 )
-        return rc;
-
-    if ( mate_id != 0 )
-    {
-        uint32_t ref_idx;
-        int64_t seq_spot_id;
-        rc = matecache_lookup_unaligned( mc, ids->db_idx, mate_id, mate_ref_pos, &ref_idx, &seq_spot_id );
-        if ( rc == 0 )
-        {
-            const ReferenceObj* refobj;
-            *mate_ref_pos += 1;
-            /* now we have to lookup the reference-name based on it's index into the ids->reflist */
-            rc = ReferenceList_Get( ids->reflist, &refobj, ref_idx );
-            if ( rc != 0 )
-            {
-                (void)PLOGERR( klogInt, ( klogInt, rc, "in row $(rn) of SEQUENCE.$(rx)", "rn=%ld,rx=%ld", mate_id, row_id ) );
-            }
-            else
-            {
-                rc = ReferenceObj_Name( refobj, mate_ref_name );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogInt, ( klogInt, rc, "in row $(rn) of SEQUENCE.$(rx)", "rn=%ld,rx=%ld", mate_id, row_id ) );
-                }
-                else
-                {
-                    *mate_ref_name_len = string_size( *mate_ref_name );
-                }
-            }
-        }
-        else if ( GetRCState( rc ) == rcNotFound )
-        {
-            /* we have a mate and it is aligned! ---> look it up in the PRIMARY_ALIGNMENT - table*/
-            const char * ptr;
-            size_t len;
-
-            rc = read_char_ptr_and_size( mate_id, ptx->cursor, ptx->ref_name_idx, &ptr, &len );
-            if ( rc == 0 && len > 0 )
-            {
-                *mate_ref_name = ptr;
-                *mate_ref_name_len = len;
-            }
-
-            if ( rc == 0 )
-            {
-                INSDC_coord_zero pos;
-                rc = read_INSDC_coord_zero( mate_id, ptx->cursor, ptx->ref_pos_idx, &pos, &len );
-                if ( rc == 0 && len > 0 )
-                {
-                    *mate_ref_pos = ( pos + 1 );
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t print_sliced_read( const INSDC_dna_text * read, uint32_t read_idx,
-                               bool reverse, const INSDC_coord_zero * read_start, const INSDC_coord_len * read_len )
-{
-    rc_t rc = 0;
-    const INSDC_dna_text * ptr = read + read_start[ read_idx ];
-    if ( !reverse )
-    {
-        rc = KOutMsg( "%.*s", read_len[ read_idx ], ptr );
-    }
-    else
-    {
-        const char cmp_tbl [] =
-        {
-            'T', 'V', 'G', 'H', 'E', 'F', 'C', 'D',
-            'I', 'J', 'M', 'L', 'K', 'N', 'O', 'P',
-            'Q', 'Y', 'S', 'A', 'U', 'B', 'W', 'X',
-            'R', 'Z'
-        };
-
-        int32_t i = ( read_len[ read_idx ] - 1 );
-        while( i >= 0 && rc == 0 )
-        {
-            int c = ptr [ i ];
-            if ( isalpha ( c ) )
-            {
-                if ( islower ( c )  )
-                     c = tolower ( cmp_tbl [ toupper ( c ) - 'A' ] );
-                else
-                     c = cmp_tbl [ c - 'A' ];
-            }
-
-            rc = KOutMsg( "%c", ( char ) c );
-            i--;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t print_sliced_quality( const samdump_opts * const opts, const char * quality, uint32_t read_idx,
-                                  bool reverse, const INSDC_coord_zero * read_start, const INSDC_coord_len * read_len )
-{
-    const char * ptr = quality + read_start[ read_idx ];
-    return dump_quality( opts, ptr, read_len[ read_idx ], reverse ); /* sam-dump-opts.c */
-}
-
-
-static rc_t dump_the_other_read( const seq_table_ctx * const stx, const prim_table_ctx * const ptx,
-                                 const int64_t row_id, const uint32_t mate_idx )
-{
-    uint32_t row_len;
-    int64_t *prim_al_id_ptr;
-
-    /* read from the SEQUENCE-table the value of the colum "PRIMARY_ALIGNMENT_ID"[ mate_idx ] */
-    rc_t rc = read_int64_t_ptr( row_id, stx->cursor, stx->prim_al_id_idx, &prim_al_id_ptr, &row_len );
-    if ( rc == 0 )
-    {
-        if ( row_len == 0 )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "rowlen zero in row $(rn) of SEQUENCE.PRIMARY_ALIGNMENT_ID", "rn=%ld", row_id ) );
-        }
-        else if ( mate_idx >= row_len )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "mate_idx invalid in row $(rn) of SEQUENCE.PRIMARY_ALIGNMENT_ID", "rn=%ld", row_id ) );
-        }
-        else
-        {
-            /* read from the PRIMARY_ALIGNMENT_TABLE the value of the columns "REF_NAME" and "REF_POS" */
-            int64_t a_row_id = prim_al_id_ptr[ mate_idx ];
-            if ( a_row_id == 0 )
-            {
-                rc = KOutMsg( "*\t0\t" );
-            }
-            else
-            {
-                const char * ref_name;
-                size_t ref_name_len;
-                rc = read_char_ptr_and_size( a_row_id, ptx->cursor, ptx->ref_name_idx, &ref_name, &ref_name_len );
-                if ( rc == 0 )
-                {
-                    if ( ref_name_len == 0 )
-                    {
-                        (void)PLOGERR( klogInt, ( klogInt, rc, "rowlen zero in row $(rn) of PRIM.REF_NAME", "rn=%ld", a_row_id ) );
-                    }
-                    else
-                    {
-                        const INSDC_coord_zero *ref_pos;
-                        rc = read_INSDC_coord_zero_ptr( a_row_id, ptx->cursor, ptx->ref_pos_idx, &ref_pos, &row_len );
-                        if ( rc == 0 )
-                        {
-                            rc = KOutMsg( "%.*s\t%i\t", ref_name_len, ref_name, ref_pos[ 0 ] + 1 );
-                        }
-                    }
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static uint32_t calc_mate_idx( const uint32_t n_reads, const uint32_t read_idx )
-{
-    if ( read_idx == ( n_reads - 1 ) )
-        return ( read_idx - 1 );
-    else
-        return ( read_idx + 1 );
-}
-
-
-static rc_t read_quality( const seq_table_ctx * const stx,
-                          const int64_t row_id, const char **quality, const uint32_t read_len )
-{
-    size_t quality_len;
-    rc_t rc = read_char_ptr_and_size( row_id, stx->cursor, stx->quality_idx, quality, &quality_len );
-    if ( rc == 0 && read_len != quality_len )
-        rc = complain_size_diff( row_id, "QUALITY" );
-    return rc;
-}
-
-
-static rc_t read_read_type( const seq_table_ctx * const stx,
-                            const int64_t row_id, const INSDC_read_type **read_type, const uint32_t read_len )
-{
-    uint32_t read_type_len;
-    rc_t rc = read_INSDC_read_type_ptr( row_id, stx->cursor, stx->read_type_idx, read_type, &read_type_len );
-    if ( rc == 0 && read_type_len != read_len )
-        rc = complain_size_diff( row_id, "READ_TYPE" );
-    return rc;
-}
-
-
-static rc_t read_read_filter( const seq_table_ctx * const stx,
-                              const int64_t row_id, const INSDC_read_filter **read_filter, const uint32_t read_len )
-{
-    uint32_t read_filter_len;
-    rc_t rc = read_INSDC_read_filter_ptr( row_id, stx->cursor, stx->read_filter_idx, read_filter, &read_filter_len );
-    if ( rc == 0 && read_filter_len != read_len )
-        rc = complain_size_diff( row_id, "READ_FILTER" );
-    return rc;
-}
-
-
-static rc_t read_read_start( const seq_table_ctx * const stx,
-                             const int64_t row_id, const INSDC_coord_zero **read_start, const uint32_t nreads )
-{
-    uint32_t read_start_len;
-    rc_t rc = read_INSDC_coord_zero_ptr( row_id, stx->cursor, stx->read_start_idx, read_start, &read_start_len );
-    if ( rc == 0 && nreads != read_start_len )
-        rc = complain_size_diff( row_id, "READ_START" );
-    return rc;
-}
-
-
-static rc_t read_read_len( const seq_table_ctx * const stx,
-                           const int64_t row_id, const INSDC_coord_len **read_len, const uint32_t nreads )
-{
-    uint32_t read_len_len;
-    rc_t rc = read_INSDC_coord_len_ptr( row_id, stx->cursor, stx->read_len_idx, read_len, &read_len_len );
-    if ( rc == 0 && nreads != read_len_len )
-        rc = complain_size_diff( row_id, "READ_LEN" );
-    return rc;
-}
-
-
-static bool calc_reverse_flag( const samdump_opts * const opts, const uint32_t read_idx, const INSDC_read_type * read_type )
-{
-    bool res = ( ( read_type[ read_idx ] & READ_TYPE_REVERSE ) == READ_TYPE_REVERSE );
-    if ( res )
-        res = opts -> reverse_unaligned_reads;
-    return res;
-}
-
-
-static rc_t dump_seq_row_sam_filtered( const samdump_opts * const opts, const seq_table_ctx * const stx,
-                                       const prim_table_ctx * const ptx, const matecache * const mc,
-                                       const input_database * const ids, const int64_t row_id, const uint32_t nreads,
-                                       uint64_t * const printed )
-{
-    uint32_t read_idx, rd_len, prim_align_ids_len;
-    int64_t * prim_align_ids = NULL;
-    const char * spot_group = NULL;
-    const char * quality = NULL;
-    const INSDC_dna_text * read = NULL;
-    const INSDC_read_type * read_type = NULL;
-    const INSDC_read_filter * read_filter = NULL;
-    const INSDC_coord_zero * read_start = NULL;
-    const INSDC_coord_len * read_len;
-    size_t spot_group_len;
-
-    rc_t rc = read_int64_t_ptr( row_id, stx->cursor, stx->prim_al_id_idx, &prim_align_ids, &prim_align_ids_len );
-    if ( rc == 0 && nreads != prim_align_ids_len )
-        rc = complain_size_diff( row_id, "PRIMARY_ALIGNMENT_ID" );
-    if ( rc == 0 )
-        rc = read_read_len( stx, row_id, &read_len, nreads );
-
-    for ( read_idx = 0; ( read_idx < nreads ) && ( rc == 0 ); ++read_idx )
-    {
-        int64_t align_id = prim_align_ids[ read_idx ];
-        if ( align_id == 0 &&              /* read is NOT aligned! */
-             read_len[ read_idx ] > 0 )    /* and has a length! */
-        {
-            uint32_t mate_idx = calc_mate_idx( nreads, read_idx );
-
-            /*  here we have to find out if the read is actually requested: 
-                -----------------------------------------------------------
-                read from the SEQ-table the ID of the mate in PRIM-table
-                look if we have the requested ID in the mate-cache, if not here it ends...
-            */
-            align_id = prim_align_ids[ mate_idx ];
-            if ( align_id != 0 )
-            {
-                uint32_t ref_idx;
-                INSDC_coord_zero mate_ref_pos;
-                int64_t seq_spot_id;
-                /* this is the filter: we look up in the mate-cache! */
-                rc = matecache_lookup_unaligned( mc, ids->db_idx, align_id, &mate_ref_pos, &ref_idx, &seq_spot_id );
-                if ( rc == 0 )
-                {
-                    const ReferenceObj* refobj;
-                    /* now we have to lookup the reference-name based on it's index into the ids->reflist */
-                    rc = ReferenceList_Get( ids->reflist, &refobj, ref_idx );
-                    if ( rc != 0 )
-                    {
-                        (void)PLOGERR( klogInt, ( klogInt, rc, "in row $(rn) of SEQUENCE.$(rx)", "rn=%ld,rx=%ld", mate_idx, row_id ) );
-                    }
-                    else
-                    {
-                        const char * mate_ref_name;
-                        rc = ReferenceObj_Name( refobj, &mate_ref_name );
-                        if ( rc != 0 )
-                        {
-                            (void)PLOGERR( klogInt, ( klogInt, rc, "in row $(rn) of SEQUENCE.$(rx)", "rn=%ld,rx=%ld", mate_idx, row_id ) );
-                        }
-                        else
-                        {
-                            bool reverse = false;
-
-                            /* SAM-FIELD: QNAME     SRA-column: SPOT_ID ( int64 ) */
-                            if ( rc == 0 )
-                                rc = KOutMsg( "%ld\t", seq_spot_id );
-
-                            if ( rc == 0 && read_type == NULL )
-                                rc = read_read_type( stx, row_id, &read_type, nreads );
-
-                            if ( rc == 0 )
-                                reverse = calc_reverse_flag( opts, read_idx, read_type );
-
-                            if ( rc == 0 && read_filter == NULL )
-                                rc = read_read_filter( stx, row_id, &read_filter, nreads );
-
-                            /* SAM-FIELD: FLAG      SRA-column: calculated from READ_TYPE, READ_FILTER etc. */
-                            if ( rc == 0 )
-                            {
-                                uint32_t sam_flags = calculate_unaligned_sam_flags_db( nreads, read_idx, mate_idx, 
-                                                                                    align_id, read_type, reverse, read_filter );
-                                rc = KOutMsg( "%u\t", sam_flags );
-                            }
-
-                            /* SAM-FIELD: RNAME     SRA-column: none, fix '*' */
-                            /* SAM-FIELD: POS       SRA-column: none, fix '0' */
-                            /* SAM-FIELD: MAPQ      SRA-column: none, fix '0' */
-                            /* SAM-FIELD: CIGAR     SRA-column: none, fix '*' */
-                            if ( rc == 0 )
-                                rc = KOutMsg( "*\t0\t0\t*\t" );
-
-                            /* SAM-FIELD: RNEXT     SRA-column: found in cache */
-                            /* SAM-FIELD: POS       SRA-column: found in cache */
-                            if ( rc == 0 )
-                                rc = KOutMsg( "%s\t%li\t", mate_ref_name, mate_ref_pos + 1 );
-
-                            /* SAM-FIELD: TLEN      SRA-column: none, fix '0' */
-                            if ( rc == 0 )
-                                rc = KOutMsg( "0\t" );
-
-                            if ( rc == 0 && read == NULL )
-                                rc = read_INSDC_dna_text_ptr( row_id, stx->cursor, stx->read_idx, &read, &rd_len );
-                            if ( rc == 0 && quality == NULL )
-                                rc = read_quality( stx, row_id, &quality, rd_len );
-                            if ( rc == 0 && read_start == NULL )
-                                rc = read_read_start( stx, row_id, &read_start, nreads );
-
-                            /* SAM-FIELD: SEQ       SRA-column: READ, sliced by READ_START/READ_LEN */
-                            if ( rc == 0 )
-                                rc = print_sliced_read( read, read_idx, reverse, read_start, read_len );
-                            if ( rc == 0 )
-                                rc = KOutMsg( "\t" );
-
-                            /* SAM-FIELD: QUAL      SRA-column: QUALITY, sliced by READ_START/READ_LEN */
-                            if ( rc == 0 )
-                                rc = print_sliced_quality( opts, quality, read_idx, reverse, read_start, read_len );
-
-                            /* OPT SAM-FIIELD:      SRA-column: ALIGN_ID */
-                            if ( rc == 0 && opts->print_alignment_id_in_column_xi )
-                                rc = KOutMsg( "\tXI:i:%u", row_id );
-
-                            /* OPT SAM-FIIELD:      SRA-column: SPOT_GROUP */
-                            if ( rc == 0 && spot_group == NULL )
-                                rc = read_char_ptr_and_size( row_id, stx->cursor, stx->spot_group_idx, &spot_group, &spot_group_len );
-                            if ( rc == 0 )
-                                rc = KOutMsg( "\tRG:Z:%.*s", spot_group_len, spot_group );
-
-                            if ( rc == 0 )
-                                rc = KOutMsg( "\n" );
-
-                            if ( rc == 0 )
-                                (*printed)++;
-
-                        }
-                    }
-                }
-                else
-                {
-                    rc = 0;     /* it is OK if an alignment is not found in the cache, do not terminate! */
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t dump_seq_prim_row_sam( const samdump_opts * const opts, const seq_table_ctx * const stx,
-                                   const prim_table_ctx * const ptx, const matecache * const mc,
-                                   const input_database * const ids, const int64_t row_id, const uint32_t nreads,
-                                   uint64_t * const printed )
-{
-    uint32_t read_idx, rd_len, prim_align_ids_len;
-    int64_t * prim_align_ids = NULL;
-    const char * spot_group = NULL;
-    const char * quality = NULL;
-    const INSDC_dna_text * read = NULL;
-    const INSDC_read_type * read_type = NULL;
-    const INSDC_read_filter * read_filter = NULL;
-    const INSDC_coord_zero * read_start = NULL;
-    const INSDC_coord_len * read_len;
-    size_t spot_group_len;
-
-    rc_t rc = read_int64_t_ptr( row_id, stx->cursor, stx->prim_al_id_idx, &prim_align_ids, &prim_align_ids_len );
-    if ( rc == 0 && nreads != prim_align_ids_len )
-        rc = complain_size_diff( row_id, "PRIMARY_ALIGNMENT_ID" );
-    if ( rc == 0 )
-        rc = read_read_len( stx, row_id, &read_len, nreads );
-
-    for ( read_idx = 0; ( read_idx < nreads ) && ( rc == 0 ); ++read_idx )
-    {
-        if ( prim_align_ids[ read_idx ] == 0 &&     /* read is NOT aligned! */
-             read_len[ read_idx ] > 0 )             /* and has a length! */
-        {
-            bool reverse = false;
-            uint32_t mate_idx;
-            int64_t mate_id = 0;
-
-            if ( read_idx == ( nreads - 1 ) )
-                mate_idx = read_idx - 1;
-            else
-                mate_idx = read_idx + 1;
-
-            if ( mate_idx < prim_align_ids_len ) 
-                mate_id = prim_align_ids[ mate_idx ];
-
-            if ( rc == 0 && read_type == NULL )
-                rc = read_read_type( stx, row_id, &read_type, nreads );
-            if ( rc == 0 )
-                reverse = calc_reverse_flag( opts, read_idx, read_type );
-
-            if ( rc == 0 && read_filter == NULL )
-                rc = read_read_filter( stx, row_id, &read_filter, nreads );
-
-            /* SAM-FIELD: QNAME     SRA-column: SPOT_ID ( int64 ) */
-            if ( rc == 0 )
-                rc = KOutMsg( "%ld\t", row_id );
-
-            /* SAM-FIELD: FLAG      SRA-column: calculated from READ_TYPE, READ_FILTER etc. */
-            if ( rc == 0 )
-            {
-                uint32_t sam_flags;
-                if ( stx->prim_al_id_idx != INVALID_COLUMN )
-                {
-                    uint32_t temp_nreads = nreads;
-                    if ( mate_id == 0 && read_len[ mate_idx ] == 0 ) temp_nreads--;
-                    sam_flags = calculate_unaligned_sam_flags_db( temp_nreads, read_idx, mate_idx, 
-                                            mate_id, read_type, reverse, read_filter );
-                }
-                else
-                {
-                    if ( reverse )
-                        sam_flags = ( 0x04 | 0x10 );
-                    else
-                        sam_flags = 0x04;
-                }
-                rc = KOutMsg( "%u\t", sam_flags );
-            }
-
-            /* SAM-FIELD: RNAME     SRA-column: none, fix '*' */
-            /* SAM-FIELD: POS       SRA-column: none, fix '0' */
-            /* SAM-FIELD: MAPQ      SRA-column: none, fix '0' */
-            /* SAM-FIELD: CIGAR     SRA-column: none, fix '*' */
-            if ( rc == 0 )
-                rc = KOutMsg( "*\t0\t0\t*\t" );
-
-            /* SAM-FIELD: RNEXT     SRA-column: look up in cache, or none */
-            /* SAM-FIELD: POS       SRA-column: look up in cache, or none */
-            if ( rc == 0 )
-            {
-                if ( ptx == NULL )
-                {
-                    rc = KOutMsg( "0\t0\t" );   /* no way to get that without PRIM_ALIGN-table */
-                }
-                else
-                {
-                    if ( opts->use_mate_cache && mc != NULL && ids != NULL )
-                    {
-                        const char * mate_ref_name;
-                        uint32_t mate_ref_name_len;
-                        INSDC_coord_zero mate_ref_pos;
-
-                        rc = get_mate_info( ptx, mc, ids, row_id, mate_id, nreads, &mate_ref_name, &mate_ref_name_len, &mate_ref_pos );
-                        if ( rc == 0 )
-                            rc = KOutMsg( "%.*s\t%li\t", mate_ref_name_len, mate_ref_name, mate_ref_pos );
-                    }
-                    else
-                    {
-                        /* print the mate info */
-                        rc = dump_the_other_read( stx, ptx, row_id, mate_idx );
-                    }
-                }
-            }
-
-
-            /* SAM-FIELD: TLEN      SRA-column: none, fix '0' */
-            if ( rc == 0 )
-                rc = KOutMsg( "0\t" );
-
-            if ( rc == 0 && read == NULL )
-                rc = read_INSDC_dna_text_ptr( row_id, stx->cursor, stx->read_idx, &read, &rd_len );
-            if ( rc == 0 && read_start == NULL )
-                rc = read_read_start( stx, row_id, &read_start, nreads );
-
-            /* SAM-FIELD: SEQ       SRA-column: READ, sliced by READ_START/READ_LEN */
-            if ( rc == 0 )
-                rc = print_sliced_read( read, read_idx, reverse, read_start, read_len );
-            if ( rc == 0 )
-                rc = KOutMsg( "\t" );
-
-            if ( rc == 0 && quality == NULL )
-                rc = read_quality( stx, row_id, &quality, rd_len );
-
-            /* SAM-FIELD: QUAL      SRA-column: QUALITY, sliced by READ_START/READ_LEN */
-            if ( rc == 0 )
-                rc = print_sliced_quality( opts, quality, read_idx, reverse, read_start, read_len );
-
-            /* OPT SAM-FIIELD:      SRA-column: ALIGN_ID */
-            if ( rc == 0 && opts->print_alignment_id_in_column_xi )
-                rc = KOutMsg( "\tXI:i:%u", row_id );
-
-            /* OPT SAM-FIIELD:      SRA-column: SPOT_GROUP */
-            if ( rc == 0 && spot_group == NULL )
-                rc = read_char_ptr_and_size( row_id, stx->cursor, stx->spot_group_idx, &spot_group, &spot_group_len );
-            if ( rc == 0 )
-                rc = KOutMsg( "\tRG:Z:%.*s", spot_group_len, spot_group );
-
-            if ( rc == 0 )
-                rc = KOutMsg( "\n" );
-
-            if ( rc == 0 )
-                (*printed)++;
-        }
-    }
-    return rc;
-}
-
-
-/* called if we are dumping from a legacy table instead from a database */
-static rc_t dump_seq_row_sam( const samdump_opts * const opts, const seq_table_ctx * const stx,
-                              const int64_t row_id, const uint32_t nreads, uint64_t * const printed )
-{
-    uint32_t read_idx, rd_len;
-    const char * spot_group = NULL;
-    const char * quality = NULL;
-    const char * name;
-    const INSDC_dna_text * read = NULL;
-    const INSDC_read_type * read_type;
-    const INSDC_read_filter * read_filter = NULL;
-    const INSDC_coord_zero * read_start = NULL;
-    const INSDC_coord_len * read_len;
-    size_t spot_group_len, name_len;
-
-    rc_t rc = read_read_len( stx, row_id, &read_len, nreads );
-    if ( rc == 0 )
-        rc = read_char_ptr_and_size( row_id, stx->cursor, stx->name_idx, &name, &name_len );
-    if ( rc == 0 )
-        rc = read_read_type( stx, row_id, &read_type, nreads );
-
-    for ( read_idx = 0; ( read_idx < nreads ) && ( rc == 0 ); ++read_idx )
-    {
-        if ( ( read_len[ read_idx ] > 0 ) &&             /* has a length! */
-             ( ( read_type[ read_idx ] & READ_TYPE_BIOLOGICAL ) == READ_TYPE_BIOLOGICAL ) )
-        {
-            bool reverse = false;
-            uint32_t mate_idx;
-
-            if ( read_idx == ( nreads - 1 ) )
-                mate_idx = read_idx - 1;
-            else
-                mate_idx = read_idx + 1;
-
-            if ( rc == 0 ) /* types in interfaces/insdc/insdc.h */
-                reverse = calc_reverse_flag( opts, read_idx, read_type );
-
-            if ( rc == 0 && read_filter == NULL )
-                rc = read_read_filter( stx, row_id, &read_filter, nreads );
-
-            /* SAM-FIELD: QNAME     SRA-column: SPOT_ID ( int64 ) */
-            if ( rc == 0 )
-                rc = KOutMsg( "%.*s\t", name_len, name );
-
-            /* SAM-FIELD: FLAG      SRA-column: calculated from READ_TYPE, READ_FILTER etc. */
-            if ( rc == 0 )
-            {
-                uint32_t sam_flags = calculate_unaligned_sam_flags_db( nreads, read_idx, mate_idx, 
-                                            0, read_type, reverse, read_filter );
-                rc = KOutMsg( "%u\t", sam_flags );
-            }
-
-            /* SAM-FIELD: RNAME     SRA-column: none, fix '*' */
-            /* SAM-FIELD: POS       SRA-column: none, fix '0' */
-            /* SAM-FIELD: MAPQ      SRA-column: none, fix '0' */
-            /* SAM-FIELD: CIGAR     SRA-column: none, fix '*' */
-            /* SAM-FIELD: RNEXT     SRA-column: none, fix '*' */
-            /* SAM-FIELD: POS       SRA-column: none, fix '0' */
-            /* SAM-FIELD: TLEN      SRA-column: none, fix '0' */
-
-            if ( rc == 0 )
-                rc = KOutMsg( "*\t0\t0\t*\t*\t0\t0\t" );
-
-            if ( rc == 0 && read == NULL )
-                rc = read_INSDC_dna_text_ptr( row_id, stx->cursor, stx->read_idx, &read, &rd_len );
-            if ( rc == 0 && read_start == NULL )
-                rc = read_read_start( stx, row_id, &read_start, nreads );
-
-            /* SAM-FIELD: SEQ       SRA-column: READ, sliced by READ_START/READ_LEN */
-            if ( rc == 0 )
-                rc = print_sliced_read( read, read_idx, reverse, read_start, read_len );
-            if ( rc == 0 )
-                rc = KOutMsg( "\t" );
-
-            if ( rc == 0 && quality == NULL )
-                rc = read_quality( stx, row_id, &quality, rd_len );
-
-            /* SAM-FIELD: QUAL      SRA-column: QUALITY, sliced by READ_START/READ_LEN */
-            if ( rc == 0 )
-                rc = print_sliced_quality( opts, quality, read_idx, reverse, read_start, read_len );
-
-            /* OPT SAM-FIIELD:      SRA-column: ALIGN_ID */
-            if ( rc == 0 && opts->print_alignment_id_in_column_xi )
-                rc = KOutMsg( "\tXI:i:%u", row_id );
-
-            /* OPT SAM-FIIELD:      SRA-column: SPOT_GROUP */
-            if ( rc == 0 && spot_group == NULL )
-                rc = read_char_ptr_and_size( row_id, stx->cursor, stx->spot_group_idx, &spot_group, &spot_group_len );
-            if ( rc == 0 && ( spot_group != NULL ) && ( spot_group_len > 0 ) )
-                rc = KOutMsg( "\tRG:Z:%.*s", spot_group_len, spot_group );
-
-            if ( rc == 0 )
-                rc = KOutMsg( "\n" );
-
-            if ( rc == 0 )
-                (*printed)++;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t dump_seq_row_fastx_filtered( const samdump_opts * const opts, const seq_table_ctx * const stx,
-                                         const prim_table_ctx * const ptx, const matecache * const mc,
-                                         const input_database * const ids,
-                                         const int64_t row_id, const uint32_t nreads, uint64_t * const printed )
-{
-    uint32_t read_idx, rd_len, prim_align_ids_len;
-    int64_t * prim_align_ids = NULL;
-    const char * quality = NULL;
-    const INSDC_dna_text * read = NULL;
-    const char * spot_group = NULL;
-    const INSDC_read_type * read_type = NULL;
-    const INSDC_coord_zero * read_start = NULL;
-    const INSDC_coord_len * read_len;
-    size_t spot_group_len = 0;
-
-    rc_t rc = read_int64_t_ptr( row_id, stx->cursor, stx->prim_al_id_idx, &prim_align_ids, &prim_align_ids_len );
-    if ( rc == 0 && nreads != prim_align_ids_len )
-        rc = complain_size_diff( row_id, "PRIMARY_ALIGNMENT_ID" );
-    if ( rc == 0 )
-        rc = read_read_len( stx, row_id, &read_len, nreads );
-
-    for ( read_idx = 0; ( read_idx < nreads ) && ( rc == 0 ); ++read_idx )
-    {
-        if ( prim_align_ids[ read_idx ] == 0 &&    /* read is NOT aligned! */
-             read_len[ read_idx ] > 0 )            /* and has a length! */
-        {
-            uint32_t mate_idx = calc_mate_idx( nreads, read_idx );
-            int64_t align_id = prim_align_ids[ mate_idx ];
-            if ( align_id != 0 )
-            {
-                uint32_t ref_idx;
-                INSDC_coord_zero mate_ref_pos;
-                int64_t seq_spot_id;
-                rc = matecache_lookup_unaligned( mc, ids->db_idx, align_id, &mate_ref_pos, &ref_idx, &seq_spot_id );
-                if ( rc == 0 )
-                {
-                    bool reverse;
-
-                    /* the NAME */
-                    if ( opts->output_format == of_fastq )
-                        rc = KOutMsg( "@" );
-                    else
-                        rc = KOutMsg( ">" );
-
-                    if ( rc == 0 )
-                    {
-                        if ( opts->print_spot_group_in_name && spot_group == NULL )
-                            rc = read_char_ptr_and_size( row_id, stx->cursor, stx->spot_group_idx, &spot_group, &spot_group_len );
-                        if ( rc == 0 )
-                            rc = dump_name( opts, seq_spot_id, spot_group, spot_group_len ); /* sam-dump-opts.c */
-                        if ( rc == 0 )
-                            rc = KOutMsg( "/%u unaligned\n", read_idx + 1 );
-                    }
-
-                    if ( rc == 0 && read == NULL )
-                        rc = read_INSDC_dna_text_ptr( row_id, stx->cursor, stx->read_idx, &read, &rd_len );
-                    if ( rc == 0 && quality == NULL )
-                        rc = read_quality( stx, row_id, &quality, rd_len );
-                    if ( rc == 0 && read_type == NULL )
-                        rc = read_read_type( stx, row_id, &read_type, nreads );
-                    if ( rc == 0 )
-                        reverse = ( ( read_type[ read_idx ] & READ_TYPE_REVERSE ) == READ_TYPE_REVERSE );
-                    if ( rc == 0 && read_start == NULL )
-                        rc = read_read_start( stx, row_id, &read_start, nreads );
-
-                    /* the READ */
-                    if ( rc == 0 )
-                        rc = print_sliced_read( read, read_idx, reverse, read_start, read_len );
-                    if ( rc == 0 )
-                        rc = KOutMsg( "\n" );
-
-                    /* in case of fastq : the QUALITY-line */
-                    if ( rc == 0 && opts->output_format == of_fastq )
-                    {
-                        rc = KOutMsg( "+\n" );
-                        if ( rc == 0 )
-                            rc = print_sliced_quality( opts, quality, read_idx, reverse, read_start, read_len );
-                        if ( rc == 0 )
-                            rc = KOutMsg( "\n" );
-                    }
-                    (*printed)++;
-                }
-                else
-                {
-                    rc = 0;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t dump_seq_row_fastx( const samdump_opts * const opts, const seq_table_ctx * const stx,
-                                const int64_t row_id, const uint32_t nreads, uint64_t * const printed )
-{
-    uint32_t read_idx, rd_len, prim_align_ids_len;
-    int64_t * prim_align_ids = NULL;
-    const char * quality = NULL;
-    const INSDC_dna_text * read = NULL ;
-    const char * spot_group = NULL;
-    const INSDC_read_type * read_type = NULL;
-    const INSDC_coord_zero * read_start = NULL;
-    const INSDC_coord_len * read_len;
-    size_t spot_group_len = 0;
-
-    rc_t rc = read_int64_t_ptr( row_id, stx->cursor, stx->prim_al_id_idx, &prim_align_ids, &prim_align_ids_len );
-    if ( rc == 0 && nreads != prim_align_ids_len )
-        rc = complain_size_diff( row_id, "PRIMARY_ALIGNMENT_ID" );
-    if ( rc == 0 )
-        rc = read_read_len( stx, row_id, &read_len, nreads );
-
-    for ( read_idx = 0; ( read_idx < nreads ) && ( rc == 0 ); ++read_idx )
-    {
-        if ( prim_align_ids[ read_idx ] == 0 &&    /* read is NOT aligned! */
-             read_len[ read_idx ] > 0 )            /* and has a length! */
-        {
-            bool reverse;
-
-            /* the NAME */
-            if ( opts->output_format == of_fastq )
-                rc = KOutMsg( "@" );
-            else
-                rc = KOutMsg( ">" );
-            if ( rc == 0 )
-            {
-                if ( opts->print_spot_group_in_name && spot_group == NULL )
-                    rc = read_char_ptr_and_size( row_id, stx->cursor, stx->spot_group_idx, &spot_group, &spot_group_len );
-                if ( rc == 0 )
-                    rc = dump_name( opts, row_id, spot_group, spot_group_len ); /* sam-dump-opts.c */
-                if ( rc == 0 )
-                    rc = KOutMsg( "/%u unaligned\n", read_idx + 1 );
-            }
-
-            if ( rc == 0 && read == NULL )
-                rc = read_INSDC_dna_text_ptr( row_id, stx->cursor, stx->read_idx, &read, &rd_len );
-            if ( rc == 0 && quality == NULL )
-                rc = read_quality( stx, row_id, &quality, rd_len );
-            if ( rc == 0 && read_type == NULL )
-                rc = read_read_type( stx, row_id, &read_type, nreads );
-            if ( rc == 0 )
-                reverse = ( ( read_type[ read_idx ] & READ_TYPE_REVERSE ) == READ_TYPE_REVERSE );
-            if ( rc == 0 && read_start == NULL )
-                rc = read_read_start( stx, row_id, &read_start, nreads );
-
-            /* the READ */
-            if ( rc == 0 )
-                rc = print_sliced_read( read, read_idx, reverse, read_start, read_len );
-            if ( rc == 0 )
-                rc = KOutMsg( "\n" );
-
-            /* in case of fastq : the QUALITY-line */
-            if ( rc == 0 && opts->output_format == of_fastq )
-            {
-                rc = KOutMsg( "+\n" );
-                if ( rc == 0 )
-                    rc = print_sliced_quality( opts, quality, read_idx, reverse, read_start, read_len );
-                if ( rc == 0 )
-                    rc = KOutMsg( "\n" );
-            }
-            (*printed)++;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t dump_seq_tab_row_fastx( const samdump_opts * const opts, const seq_table_ctx * const stx,
-                                    const int64_t row_id, const uint32_t nreads, uint64_t * const printed )
-{
-    uint32_t read_idx, rd_len;
-    const char * quality = NULL;
-    const char * name;
-    const INSDC_dna_text * read = NULL ;
-    const char * spot_group = NULL;
-    const INSDC_read_type * read_type;
-    const INSDC_coord_zero * read_start = NULL;
-    const INSDC_coord_len * read_len;
-    size_t name_len, spot_group_len = 0;
-
-    rc_t rc = read_read_len( stx, row_id, &read_len, nreads );
-    if ( rc == 0 )
-        rc = read_char_ptr_and_size( row_id, stx->cursor, stx->name_idx, &name, &name_len );
-    if ( rc == 0 )
-        rc = read_read_type( stx, row_id, &read_type, nreads );
-
-    for ( read_idx = 0; ( read_idx < nreads ) && ( rc == 0 ); ++read_idx )
-    {
-        if ( ( read_len[ read_idx ] > 0 ) &&            /* has a length! */
-             ( ( read_type[ read_idx ] & READ_TYPE_BIOLOGICAL ) == READ_TYPE_BIOLOGICAL ) )
-        {
-            bool reverse;
-
-            /* the NAME */
-            if ( opts->output_format == of_fastq )
-                rc = KOutMsg( "@" );
-            else
-                rc = KOutMsg( ">" );
-            if ( rc == 0 )
-            {
-                if ( opts->print_spot_group_in_name && spot_group == NULL )
-                    rc = read_char_ptr_and_size( row_id, stx->cursor, stx->spot_group_idx, &spot_group, &spot_group_len );
-
-                if ( rc == 0 )
-                    rc = dump_name_legacy( opts, name, name_len, spot_group, spot_group_len ); /* sam-dump-opts.c */
-
-                if ( rc == 0 )
-                    rc = KOutMsg( "/%u unaligned\n", read_idx + 1 );
-            }
-
-            if ( rc == 0 && read == NULL )
-                rc = read_INSDC_dna_text_ptr( row_id, stx->cursor, stx->read_idx, &read, &rd_len );
-            if ( rc == 0 && quality == NULL )
-                rc = read_quality( stx, row_id, &quality, rd_len );
-            if ( rc == 0 )
-                reverse = ( ( read_type[ read_idx ] & READ_TYPE_REVERSE ) == READ_TYPE_REVERSE );
-            if ( rc == 0 && read_start == NULL )
-                rc = read_read_start( stx, row_id, &read_start, nreads );
-
-            /* the READ */
-            if ( rc == 0 )
-                rc = print_sliced_read( read, read_idx, reverse, read_start, read_len );
-            if ( rc == 0 )
-                rc = KOutMsg( "\n" );
-
-            /* in case of fastq : the QUALITY-line */
-            if ( rc == 0 && opts->output_format == of_fastq )
-            {
-                if ( quality == NULL )
-                    rc = read_quality( stx, row_id, &quality, rd_len );
-                if ( rc == 0 )
-                    rc = KOutMsg( "+\n" );
-                if ( rc == 0 )
-                    rc = print_sliced_quality( opts, quality, read_idx, reverse, read_start, read_len );
-                if ( rc == 0 )
-                    rc = KOutMsg( "\n" );
-            }
-            (*printed)++;
-        }
-    }
-    return rc;
-}
-
-
-/* we are printing from a sra-database, we print half aligned reads only if we find them in the mate-cache */
-static rc_t print_unaligned_database_filtered( const samdump_opts * const opts, const input_table * const seq,
-                                               const input_table * const prim, const matecache * const mc,
-                                               const input_database * const ids, uint64_t * const rows_so_far )
-{
-    seq_table_ctx stx;
-    rc_t rc = prepare_seq_table_ctx( opts, seq, &stx, ( prim == NULL ) );
-    if ( rc == 0 )
-    {
-        rc = VCursorOpen( stx.cursor );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorOpen( SEQUENCE ) for $(tn) failed", "tn=%s", seq->path ) );
-        }
-        else
-        {
-            int64_t first_row;
-            uint64_t row_count;
-            rc = VCursorIdRange( stx.cursor, stx.prim_al_id_idx, &first_row, &row_count );
-            if ( rc != 0 )
-            {
-                (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorIdRange( SEQUENCE ) for $(tn) failed", "tn=%s", seq->path ) );
-            }
-            else
-            {
-                prim_table_ctx ptx;
-                rc = prepare_prim_table_ctx( opts, prim, &ptx );
-                if ( rc == 0 )
-                {
-                    int64_t row_id;
-                    seq_row row;
-
-                    for ( row_id = first_row; ( ( row_id - first_row ) < row_count ) && rc == 0 && !test_limit_reached( opts, *rows_so_far ); ++row_id )
-                    {
-                        rc = Quitting();
-                        if ( rc == 0 )
-                        {
-                            rc = read_seq_row( opts, &stx, row_id, &row );
-                            if ( rc == 0 && !row.filtered_out )
-                            {
-                                switch( opts->output_format )
-                                {
-                                    case of_sam   : rc = dump_seq_row_sam_filtered( opts, &stx, &ptx, mc, ids, row_id, row.nreads, rows_so_far ); break;
-                                    case of_fasta : /* fall through intended ! */
-                                    case of_fastq : rc = dump_seq_row_fastx_filtered( opts, &stx, &ptx, mc, ids, row_id, row.nreads, rows_so_far ); break;
-                                }
-                            }
-                        }
-                    }
-                    VCursorRelease( ptx.cursor );
-                }
-            }
-        }
-        VCursorRelease( stx.cursor );
-    }
-    return rc;
-}
-
-
-/* we are printing from a sra-database, we print all unaligned read we can find */
-static rc_t print_unaligned_database_full( const samdump_opts * const opts, const input_table * const seq,
-                                           const input_table * const prim, const matecache * const mc,
-                                           const input_database * const ids, uint64_t * const rows_so_far )
-{
-    seq_table_ctx stx;
-    rc_t rc = prepare_seq_table_ctx( opts, seq, &stx, ( prim == NULL ) );
-    if ( rc == 0 )
-    {
-        rc = VCursorOpen( stx.cursor );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorOpen( SEQUENCE ) for $(tn) failed", "tn=%s", seq->path ) );
-        }
-        else
-        {
-            prim_table_ctx ptx;
-            if ( opts->output_format == of_sam )
-                rc = prepare_prim_table_ctx( opts, prim, &ptx );
-            if ( rc == 0 )
-            {
-                int64_t first_row, row_id;
-                uint64_t row_count;
-                rc = VCursorIdRange( stx.cursor, stx.read_type_idx, &first_row, &row_count );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorIdRange( SEQUENCE ) for $(tn) failed", "tn=%s", seq->path ) );
-                }
-                else
-                {
-                    seq_row row;
-                    for ( row_id = first_row; ( ( row_id - first_row ) < row_count ) && rc == 0 && !test_limit_reached( opts, *rows_so_far ); ++row_id )
-                    {
-                        rc = Quitting();
-                        if ( rc == 0 )
-                        {
-                            rc = read_seq_row( opts, &stx, row_id, &row );
-                            if ( rc == 0 && !row.filtered_out )
-                            {
-                                switch( opts->output_format )
-                                {
-                                    case of_sam   : rc = dump_seq_prim_row_sam( opts, &stx, &ptx, mc, ids, row_id, row.nreads, rows_so_far ); break;
-                                    case of_fasta : /* fall through intended ! */
-                                    case of_fastq : rc = dump_seq_row_fastx( opts, &stx, row_id, row.nreads, rows_so_far ); break;
-                                }
-                            }
-                        }
-                    }
-                }
-                if ( opts->output_format == of_sam )
-                    VCursorRelease( ptx.cursor );
-            }
-        }
-        VCursorRelease( stx.cursor );
-    }
-    return rc;
-}
-
-
-/* we are printing from a (legacy) table not from a database! */
-static rc_t print_unaligned_table( const samdump_opts * const opts, const input_table * const seq, uint64_t * const rows_so_far )
-{
-    seq_table_ctx stx;
-    rc_t rc = prepare_seq_table_ctx( opts, seq, &stx, true ); /* true ... this is a legacy table, not a database */
-    if ( rc == 0 )
-    {
-        rc = VCursorOpen( stx.cursor );
-        if ( rc != 0 )
-        {
-            (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorOpen( SEQUENCE ) for $(tn) failed", "tn=%s", seq->path ) );
-        }
-        else
-        {
-            int64_t first_row, row_id;
-            uint64_t row_count;
-            rc = VCursorIdRange( stx.cursor, stx.read_type_idx, &first_row, &row_count );
-            if ( rc != 0 )
-            {
-                (void)PLOGERR( klogInt, ( klogInt, rc, "VCursorIdRange( SEQUENCE ) for $(tn) failed", "tn=%s", seq->path ) );
-            }
-            else
-            {
-                seq_row row;
-                for ( row_id = first_row; ( ( row_id - first_row ) < row_count ) && rc == 0 && !test_limit_reached( opts, *rows_so_far ); ++row_id )
-                {
-                    rc = Quitting();
-                    if ( rc == 0 )
-                    {
-                        rc = read_seq_row( opts, &stx, row_id, &row );
-                        if ( rc == 0 && !row.filtered_out )
-                        {
-                            switch( opts->output_format )
-                            {
-                                case of_sam   : rc = dump_seq_row_sam( opts, &stx, row_id, row.nreads, rows_so_far ); break;
-                                case of_fasta : /* fall through intended ! */
-                                case of_fastq : rc = dump_seq_tab_row_fastx( opts, &stx, row_id, row.nreads, rows_so_far ); break;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        VCursorRelease( stx.cursor );
-    }
-    return rc;
-}
-
-
-/* entry point from sam-dump3.c */
-rc_t print_unaligned_spots( const samdump_opts * const opts, const input_files * const ifs,
-                            const matecache * const mc, uint64_t * const rows_so_far )
-{
-    rc_t rc = 0;
-    if ( ( ifs->database_count > 0 ) && ( opts->dump_unaligned_reads || opts->dump_unaligned_only ) )
-    {
-        uint32_t db_idx;
-        for ( db_idx = 0; db_idx < ifs->database_count && rc == 0; ++db_idx )
-        {
-            const input_database * ids = VectorGet( &ifs->dbs, db_idx );
-            if ( ids != NULL )
-            {
-                input_table seq;
-
-                seq.path = ids->path;
-                rc = VDatabaseOpenTableRead( ids->db, &seq.tab, "SEQUENCE" );
-                if ( rc != 0 )
-                {
-                    (void)PLOGERR( klogInt, ( klogInt, rc, "cannot open table SEQUENCE for $(tn)", "tn=%s", ids->path ) );
-                }
-                else
-                {
-                    input_table prim;
-                    prim.path = ids->path;
-                    rc = VDatabaseOpenTableRead( ids->db, &prim.tab, "PRIMARY_ALIGNMENT" );
-                    if ( rc != 0 )
-                    {
-                        (void)PLOGERR( klogInt, ( klogInt, rc, "cannot open table PRIMARY_ALIGNMENT $(tn)", "tn=%s", ids->path ) );
-                    }
-                    else
-                    {
-                        if ( opts->region_count > 0 )
-                        {
-                            rc = print_unaligned_database_filtered( opts, &seq, &prim, mc, ids, rows_so_far );
-                        }
-                        else
-                        {
-                            rc = print_unaligned_database_full( opts, &seq, &prim, mc, ids, rows_so_far );
-                        }
-                        VTableRelease( prim.tab );
-                    }
-                    VTableRelease( seq.tab );
-                }
-            }
-        }
-    }
-
-    if ( rc == 0 && ifs->table_count > 0 )
-    {
-        uint32_t tab_idx;
-        for ( tab_idx = 0; tab_idx < ifs->table_count && rc == 0; ++tab_idx )
-        {
-            input_table * itab = VectorGet( &ifs->tabs, tab_idx );
-            if ( itab != NULL )
-                rc = print_unaligned_table( opts, itab, rows_so_far );
-        }
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/sam-unaligned.h b/tools/sra-pileup/sam-unaligned.h
deleted file mode 100644
index fe66f0d..0000000
--- a/tools/sra-pileup/sam-unaligned.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-#ifndef _h_sam_unaligned_
-#define _h_sam_unaligned_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include "sam-dump-opts.h"
-#include "inputfiles.h"
-#include "matecache.h"
-
-rc_t print_unaligned_spots( const samdump_opts * const opts, const input_files * const ifs,
-                            const matecache * const mc, uint64_t * const rows_so_far );
-
-#endif
\ No newline at end of file
diff --git a/tools/sra-pileup/sra-pileup.c b/tools/sra-pileup/sra-pileup.c
deleted file mode 100644
index 437d885..0000000
--- a/tools/sra-pileup/sra-pileup.c
+++ /dev/null
@@ -1,1834 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "sra-pileup.vers.h"
-
-#include "cmdline_cmn.h"
-#include "reref.h"
-
-#include <kapp/main.h>
-
-#include <klib/out.h>
-#include <klib/printf.h>
-#include <klib/report.h>
-
-#include <kfs/file.h>
-#include <kfs/buffile.h>
-#include <kfs/bzip.h>
-#include <kfs/gzip.h>
-
-#include <insdc/sra.h>
-
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/report.h> /* ReportSetVDBManager */
-
-#include <sra/sraschema.h>
-#include <align/manager.h>
-
-#include <os-native.h>
-#include <sysalloc.h>
-
-#define COL_QUALITY "QUALITY"
-#define COL_REF_ORIENTATION "REF_ORIENTATION"
-#define COL_READ_FILTER "READ_FILTER"
-
-#define OPTION_MINMAPQ "minmapq"
-#define ALIAS_MINMAPQ  "q"
-
-#define OPTION_DUPS    "duplicates"
-#define ALIAS_DUPS     "d"
-
-#define OPTION_MODE    "mode"
-#define ALIAS_MODE     "m"
-
-#define OPTION_NOQUAL  "noqual"
-#define ALIAS_NOQUAL   "n"
-
-#define OPTION_NOSKIP  "noskip"
-#define ALIAS_NOSKIP   "s"
-
-#define OPTION_SHOWID  "showid"
-#define ALIAS_SHOWID   "i"
-
-#define OPTION_SPOTGRP "spotgroups"
-#define ALIAS_SPOTGRP  "p"
-
-#define OPTION_SEQNAME "seqname"
-#define ALIAS_SEQNAME  "e"
-
-#define OPTION_REREF   "report-ref"
-#define ALIAS_REREF    NULL
-
-#define OPTION_REREFEX "report-ref-ext"
-#define ALIAS_REREFEX  NULL
-
-enum
-{
-    sra_pileup_samtools = 0,
-    sra_pileup_counters = 1,
-    sra_pileup_detect = 2
-};
-
-static const char * minmapq_usage[] = { "Minimum mapq-value, ", 
-                                        "alignments with lower mapq",
-                                        "will be ignored (default=0)", NULL };
-
-static const char * dups_usage[] = { "process duplicates ( 0...off/1..on )", NULL };
-
-static const char * mode_usage[] = { "Output-format: 0...samtools, 1...just counters",
-                                     "(default=0)", NULL };
-
-static const char * noqual_usage[] = { "Omit qualities in output", NULL };
-
-static const char * noskip_usage[] = { "Does not skip reference-regions without alignments", NULL };
-
-static const char * showid_usage[] = { "Shows alignment-id for every base", NULL };
-
-static const char * spotgrp_usage[] = { "divide by spotgroups", NULL };
-
-static const char * seqname_usage[] = { "use original seq-name", NULL };
-
-static const char * reref_usage[] = { "report used references", NULL };
-
-static const char * rerefex_usage[] = { "report used references and coverage", NULL };
-
-
-OptDef MyOptions[] =
-{
-    /*name,           alias,         hfkt, usage-help,    maxcount, needs value, required */
-    { OPTION_MINMAPQ, ALIAS_MINMAPQ, NULL, minmapq_usage, 1,        true,        false },
-    { OPTION_DUPS,    ALIAS_DUPS,    NULL, dups_usage,    1,        true,        false },
-    { OPTION_MODE,    ALIAS_MODE,    NULL, mode_usage,    1,        true,        false },
-    { OPTION_NOQUAL,  ALIAS_NOQUAL,  NULL, noqual_usage,  1,        false,       false },
-    { OPTION_NOSKIP,  ALIAS_NOSKIP,  NULL, noskip_usage,  1,        false,       false },
-    { OPTION_SHOWID,  ALIAS_SHOWID,  NULL, showid_usage,  1,        false,       false },
-    { OPTION_SPOTGRP, ALIAS_SPOTGRP, NULL, spotgrp_usage, 1,        false,       false },
-    { OPTION_SEQNAME, ALIAS_SEQNAME, NULL, seqname_usage, 1,        false,       false },
-    { OPTION_REREF,   ALIAS_REREF,   NULL, reref_usage,   1,        false,       false },
-    { OPTION_REREFEX, ALIAS_REREFEX, NULL, rerefex_usage, 1,        false,       false }
-};
-
-/* =========================================================================================== */
-
-typedef struct pileup_options
-{
-    common_options cmn;
-    bool process_dups;
-    bool omit_qualities;
-    bool no_skip;
-    bool show_id;
-    bool div_by_spotgrp;
-    bool use_seq_name;
-    bool reref;
-    bool rerefex;
-    uint32_t minmapq;
-    uint32_t output_mode;
-    uint32_t source_table;
-} pileup_options;
-
-
-typedef struct pileup_callback_data
-{
-    const AlignMgr *almgr;
-    pileup_options *options;
-} pileup_callback_data;
-
-
-/* =========================================================================================== */
-
-static rc_t get_str_option( const Args *args, const char *name, const char ** res )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    *res = NULL;
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ArgsOptionCount() failed" );
-    }
-    else
-    {
-        if ( count > 0 )
-        {
-            rc = ArgsOptionValue( args, name, 0, res );
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "ArgsOptionValue() failed" );
-            }
-        }
-    }
-    return rc;
-}
-
-
-static rc_t get_uint32_option( const Args *args, const char *name,
-                        uint32_t *res, const uint32_t def )
-{
-    const char * s;
-    rc_t rc = get_str_option( args, name, &s );
-    if ( rc == 0 && s != NULL )
-        *res = atoi( s );
-    else
-        *res = def;
-    return rc;
-}
-
-
-static rc_t get_bool_option( const Args *args, const char *name, bool *res, const bool def )
-{
-    uint32_t count;
-    rc_t rc = ArgsOptionCount( args, name, &count );
-    if ( rc == 0 && count > 0 )
-    {
-        *res = true;
-    }
-    else
-    {
-        *res = def;
-    }
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-static rc_t get_pileup_options( Args * args, pileup_options *opts )
-{
-    rc_t rc = get_common_options( args, &opts->cmn );
-
-    if ( rc == 0 )
-        rc = get_uint32_option( args, OPTION_MINMAPQ, &opts->minmapq, 0 );
-
-    if ( rc == 0 )
-         rc = get_uint32_option( args, OPTION_MODE, &opts->output_mode, sra_pileup_samtools );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_DUPS, &opts->process_dups, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_NOQUAL, &opts->omit_qualities, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_NOSKIP, &opts->no_skip, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_SHOWID, &opts->show_id, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_SPOTGRP, &opts->div_by_spotgrp, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_SEQNAME, &opts->use_seq_name, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_REREF, &opts->reref, false );
-
-    if ( rc == 0 )
-        rc = get_bool_option( args, OPTION_REREFEX, &opts->rerefex, false );
-
-    return rc;
-}
-
-/* GLOBAL VARIABLES */
-struct {
-    KWrtWriter org_writer;
-    void* org_data;
-    KFile* kfile;
-    uint64_t pos;
-} g_out_writer = { NULL };
-
-const char UsageDefaultName[] = "sra-pileup";
-
-rc_t CC UsageSummary ( const char * progname )
-{
-    return KOutMsg ("\n"
-                    "Usage:\n"
-                    "  %s <path> [options]\n"
-                    "\n", progname);
-}
-
-
-rc_t CC Usage ( const Args * args )
-{
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    rc_t rc;
-
-    if ( args == NULL )
-        rc = RC ( rcApp, rcArgv, rcAccessing, rcSelf, rcNull );
-    else
-        rc = ArgsProgram ( args, &fullpath, &progname );
-
-    if ( rc )
-        progname = fullpath = UsageDefaultName;
-
-    UsageSummary ( progname );
-    KOutMsg ( "Options:\n" );
-    print_common_helplines();
-    HelpOptionLine ( ALIAS_MINMAPQ, OPTION_MINMAPQ, "min. mapq", minmapq_usage );
-    HelpOptionLine ( ALIAS_DUPS, OPTION_DUPS, "duplicates", dups_usage );
-    HelpOptionLine ( ALIAS_MODE, OPTION_MODE, "output-modes", mode_usage );
-    HelpOptionLine ( ALIAS_SPOTGRP, OPTION_SPOTGRP, "spotgroups-modes", spotgrp_usage );
-    HelpOptionLine ( ALIAS_SEQNAME, OPTION_SEQNAME, "org. seq-name", seqname_usage );
-    HelpOptionLine ( ALIAS_REREF, OPTION_REREF, "report reference", reref_usage );
-    HelpOptionLine ( ALIAS_REREFEX, OPTION_REREFEX, "report reference", rerefex_usage );
-    HelpOptionsStandard ();
-    HelpVersion ( fullpath, KAppVersion() );
-    return rc;
-}
-
-
-/* Version  EXTERN
- *  return 4-part version code: 0xMMmmrrrr, where
- *      MM = major release
- *      mm = minor release
- *    rrrr = bug-fix release
- */
-ver_t CC KAppVersion ( void )
-{
-    return SRA_PILEUP_VERS;
-}
-
-/***************************************
-    N (0x4E)  n (0x6E)  <--> 0x0
-    A (0x41)  a (0x61)  <--> 0x1
-    C (0x43)  c (0x63)  <--> 0x2
-    M (0x4D)  m (0x6D)  <--> 0x3
-    G (0x47)  g (0x67)  <--> 0x4
-    R (0x52)  r (0x72)  <--> 0x5
-    S (0x53)  s (0x73)  <--> 0x6
-    V (0x56)  v (0x76)  <--> 0x7
-    T (0x54)  t (0x74)  <--> 0x8
-    W (0x57)  w (0x77)  <--> 0x9
-    Y (0x59)  y (0x79)  <--> 0xA
-    H (0x48)  h (0x68)  <--> 0xB
-    K (0x4B)  k (0x6B)  <--> 0xC
-    D (0x44)  d (0x64)  <--> 0xD
-    B (0x42)  b (0x62)  <--> 0xE
-    N (0x4E)  n (0x6E)  <--> 0xF
-***************************************/
-
-
-char _4na_2_ascii_tab[] =
-{
-/*  0x0  0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F */
-    'N', 'A', 'C', 'M', 'G', 'R', 'S', 'V', 'T', 'W', 'Y', 'H', 'K', 'D', 'B', 'N',
-    'n', 'a', 'c', 'm', 'g', 'r', 's', 'v', 't', 'w', 'y', 'h', 'k', 'd', 'b', 'n'
-};
-
-
-static char _4na_to_ascii( INSDC_4na_bin c, bool reverse )
-{
-    return _4na_2_ascii_tab[ ( c & 0x0F ) | ( reverse ? 0x10 : 0 ) ];
-}
-
-
-/* =========================================================================================== */
-
-
-typedef struct dyn_string
-{
-    char * data;
-    size_t allocated;
-    size_t data_len;
-} dyn_string;
-
-
-static rc_t allocated_dyn_string ( dyn_string *self, size_t size )
-{
-    rc_t rc = 0;
-    self->data_len = 0;
-    self->data = malloc( size );
-    if ( self->data != NULL )
-    {
-        self->allocated = size;
-    }
-    else
-    {
-        self->allocated = 0;
-        rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-    }
-    return rc;
-}
-
-static void free_dyn_string ( dyn_string *self )
-{
-    free( self->data );
-    self->data = NULL;
-    self->allocated = 0;
-    self->data_len = 0;
-}
-
-static void reset_dyn_string( dyn_string *self )
-{
-    self->data_len = 0;
-}
-
-static rc_t expand_dyn_string( dyn_string *self, size_t new_size )
-{
-    rc_t rc = 0;
-    if ( new_size > self->allocated )
-    {
-        self->data = realloc ( self->data, new_size );
-        if ( self->data != NULL )
-        {
-            self->allocated = new_size;
-        }
-        else
-        {
-            self->allocated = 0;
-            self->data_len = 0;
-            rc = RC( rcApp, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t add_char_2_dyn_string( dyn_string *self, const char c )
-{
-    /* does nothing if self->data_len + 2 < self->allocated */
-    rc_t rc = expand_dyn_string( self, self->data_len + 2 );
-    if ( rc == 0 )
-    {
-        self->data[ self->data_len++ ] = c;
-        self->data[ self->data_len ] = 0;
-    }
-    return rc;
-}
-
-
-static rc_t add_string_2_dyn_string( dyn_string *self, const char * s )
-{
-    rc_t rc;
-    size_t size = string_size ( s );
-    /* does nothing if self->data_len + size + 1 < self->allocated */
-    rc = expand_dyn_string( self, self->data_len + size + 1 );
-    if ( rc == 0 )
-    {
-        string_copy ( &(self->data[ self->data_len ]), self->allocated, s, size );
-        self->data_len += size;
-        self->data[ self->data_len ] = 0;
-    }
-    return rc;
-}
-
-
-static rc_t print_2_dyn_string( dyn_string * self, const char *fmt, ... )
-{
-    rc_t rc = 0;
-    bool not_enough;
-
-    do
-    {
-        size_t num_writ;
-        va_list args;
-        va_start ( args, fmt );
-        rc = string_vprintf ( &(self->data[ self->data_len ]), 
-                              self->allocated - ( self->data_len + 1 ),
-                              &num_writ,
-                              fmt,
-                              args );
-        va_end ( args );
-
-        if ( rc == 0 )
-        {
-            self->data_len += num_writ;
-            self->data[ self->data_len ] = 0;
-        }
-        not_enough = ( GetRCState( rc ) == rcInsufficient );
-        if ( not_enough )
-        {
-            rc = expand_dyn_string( self, self->allocated + ( num_writ * 2 ) );
-        }
-    } while ( not_enough && rc == 0 );
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-static rc_t CC BufferedWriter ( void* self, const char* buffer, size_t bufsize, size_t* num_writ )
-{
-    rc_t rc = 0;
-
-    assert( buffer != NULL );
-    assert( num_writ != NULL );
-
-    do {
-        rc = KFileWrite( g_out_writer.kfile, g_out_writer.pos, buffer, bufsize, num_writ );
-        if ( rc == 0 )
-        {
-            buffer += *num_writ;
-            bufsize -= *num_writ;
-            g_out_writer.pos += *num_writ;
-        }
-    } while ( rc == 0 && bufsize > 0 );
-    return rc;
-}
-
-
-static rc_t set_stdout_to( bool gzip, bool bzip2, const char * filename, size_t bufsize )
-{
-    rc_t rc = 0;
-    if ( gzip && bzip2 )
-    {
-        rc = RC( rcApp, rcFile, rcConstructing, rcParam, rcAmbiguous );
-    }
-    else
-    {
-        KDirectory *dir;
-        rc = KDirectoryNativeDir( &dir );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "KDirectoryNativeDir() failed" );
-        }
-        else
-        {
-            KFile *of;
-            rc = KDirectoryCreateFile ( dir, &of, false, 0664, kcmInit, "%s", filename );
-            if ( rc == 0 )
-            {
-                KFile *buf;
-                if ( gzip )
-                {
-                    KFile *gz;
-                    rc = KFileMakeGzipForWrite( &gz, of );
-                    if ( rc == 0 )
-                    {
-                        KFileRelease( of );
-                        of = gz;
-                    }
-                }
-                if ( bzip2 )
-                {
-                    KFile *bz;
-                    rc = KFileMakeBzip2ForWrite( &bz, of );
-                    if ( rc == 0 )
-                    {
-                        KFileRelease( of );
-                        of = bz;
-                    }
-                }
-
-                rc = KBufFileMakeWrite( &buf, of, false, bufsize );
-                if ( rc == 0 )
-                {
-                    g_out_writer.kfile = buf;
-                    g_out_writer.org_writer = KOutWriterGet();
-                    g_out_writer.org_data = KOutDataGet();
-                    rc = KOutHandlerSet( BufferedWriter, &g_out_writer );
-                    if ( rc != 0 )
-                    {
-                        LOGERR( klogInt, rc, "KOutHandlerSet() failed" );
-                    }
-                }
-                KFileRelease( of );
-            }
-            KDirectoryRelease( dir );
-        }
-    }
-    return rc;
-}
-
-
-static void release_stdout_redirection( void )
-{
-    KFileRelease( g_out_writer.kfile );
-    if( g_out_writer.org_writer != NULL )
-    {
-        KOutHandlerSet( g_out_writer.org_writer, g_out_writer.org_data );
-    }
-    g_out_writer.org_writer = NULL;
-}
-
-
-static rc_t CC write_to_FILE( void *f, const char *buffer, size_t bytes, size_t *num_writ )
-{
-    * num_writ = fwrite ( buffer, 1, bytes, f );
-    if ( * num_writ != bytes )
-        return RC( rcExe, rcFile, rcWriting, rcTransfer, rcIncomplete );
-    return 0;
-}
-
-
-/* =========================================================================================== */
-
-
-typedef struct tool_rec tool_rec;
-struct tool_rec
-{
-    /* orientation towards reference ( false...in ref-orientation / true...reverse) */
-    bool reverse;
-    /* ptr to quality... */
-    uint8_t * quality;
-};
-
-
-static rc_t read_base_and_len( struct VCursor const *curs,
-                               const char * name,
-                               int64_t row_id,
-                               const void ** base,
-                               uint32_t * len )
-{
-    uint32_t column_idx;
-    rc_t rc = VCursorGetColumnIdx ( curs, &column_idx, name );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "VCursorGetColumnIdx() failed" );
-    }
-    else
-    {
-        uint32_t elem_bits, boff, len_intern;
-        const void * ptr;
-        rc = VCursorCellDataDirect ( curs, row_id, column_idx, 
-                                     &elem_bits, &ptr, &boff, &len_intern );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "VCursorCellDataDirect() failed" );
-        }
-        else
-        {
-            if ( len != NULL ) *len = len_intern;
-            if ( base != NULL ) *base = ptr;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t CC populate_tooldata( void *obj, const PlacementRecord *placement,
-        struct VCursor const *curs,
-        INSDC_coord_zero ref_window_start, INSDC_coord_len ref_window_len,
-        void *data )
-{
-    tool_rec * rec = ( tool_rec * ) obj;
-    pileup_callback_data *cb_data = ( pileup_callback_data * )data;
-    rc_t rc = 0;
-
-    rec->quality = NULL;
-    if ( !cb_data->options->process_dups )
-    {
-        const uint8_t * read_filter;
-        uint32_t read_filter_len;
-        rc = read_base_and_len( curs, COL_READ_FILTER, placement->id,
-                                (const void **)&read_filter, &read_filter_len );
-        if ( rc == 0 )
-        {
-            if ( ( *read_filter == SRA_READ_FILTER_REJECT )||
-                 ( *read_filter == SRA_READ_FILTER_CRITERIA ) )
-            {
-                rc = RC( rcAlign, rcType, rcAccessing, rcId, rcIgnored );
-            }
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        const bool * orientation;
-        rc = read_base_and_len( curs, COL_REF_ORIENTATION, placement->id,
-                                (const void **)&orientation, NULL );
-        if ( rc == 0 )
-        {
-            rec->reverse = *orientation;
-        }
-    }
-
-    if ( rc == 0 && !cb_data->options->omit_qualities )
-    {
-        const uint8_t * quality;
-        uint32_t quality_len;
-
-        rc = read_base_and_len( curs, COL_QUALITY, placement->id,
-                                (const void **)&quality, &quality_len );
-        if ( rc == 0 )
-        {
-            rec->quality = ( uint8_t * )rec;
-            rec->quality += sizeof ( * rec );
-            memcpy( rec->quality, quality, quality_len );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t CC alloc_size( struct VCursor const *curs, int64_t row_id, size_t * size, void *data )
-{
-    rc_t rc = 0;
-    tool_rec * rec;
-    pileup_callback_data *cb_data = ( pileup_callback_data * )data;
-    *size = ( sizeof *rec );
-
-    if ( !cb_data->options->omit_qualities )
-    {
-        uint32_t q_len;
-        rc = read_base_and_len( curs, COL_QUALITY, row_id, NULL, &q_len );
-        if ( rc == 0 )
-        {
-            *size += q_len;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t walk_ref_position( ReferenceIterator *ref_iter,
-                               const PlacementRecord *rec,
-                               dyn_string *line,
-                               char * qual,
-                               pileup_options *options )
-{
-    rc_t rc = 0;
-    INSDC_coord_zero seq_pos;
-    int32_t state = ReferenceIteratorState ( ref_iter, &seq_pos );
-    tool_rec *xrec = ( tool_rec * ) PlacementRecordCast ( rec, placementRecordExtension1 );
-    bool reverse = xrec->reverse;
-
-    if ( !options->omit_qualities )
-    {
-        *qual = xrec->quality[ seq_pos ];
-    }
-
-    if ( ( state & align_iter_invalid ) == align_iter_invalid )
-    {
-        return add_char_2_dyn_string( line, '?' );
-    }
-
-    if ( ( state & align_iter_first ) == align_iter_first )
-    {
-        char s[ 3 ];
-        int32_t c = rec->mapq + 33;
-        if ( c > '~' ) { c = '~'; }
-        if ( c < 33 ) { c = 33; }
-        s[ 0 ] = '^';
-        s[ 1 ] = c;
-        s[ 2 ] = 0;
-        rc = add_string_2_dyn_string( line, s );
-    }
-
-    if ( rc == 0 )
-    {
-        if ( ( state & align_iter_skip ) == align_iter_skip )
-        {
-            rc = add_char_2_dyn_string( line, '*' );
-            if ( !options->omit_qualities )
-                *qual = xrec->quality[ seq_pos + 1 ];
-        }
-        else
-        {
-            if ( ( state & align_iter_match ) == align_iter_match )
-                rc = add_char_2_dyn_string( line, ( reverse ? ',' : '.' ) );
-            else
-                rc = add_char_2_dyn_string( line, _4na_to_ascii( state, reverse ) );
-        }
-    }
-
-    if ( ( state & align_iter_insert ) == align_iter_insert )
-    {
-        const INSDC_4na_bin *bases;
-        uint32_t i;
-        uint32_t n = ReferenceIteratorBasesInserted ( ref_iter, &bases );
-        
-        rc = print_2_dyn_string( line, "+%u", n );
-        for ( i = 0; i < n && rc == 0; ++i )
-        {
-            rc = add_char_2_dyn_string( line, _4na_to_ascii( bases[ i ], reverse ) );
-        }
-    }
-
-    if ( ( state & align_iter_delete ) == align_iter_delete )
-    {
-        const INSDC_4na_bin *bases;
-        INSDC_coord_zero ref_pos;
-        uint32_t n = ReferenceIteratorBasesDeleted ( ref_iter, &ref_pos, &bases );
-        if ( bases != NULL )
-        {
-            uint32_t i;
-            rc = print_2_dyn_string( line, "-%u", n );
-            for ( i = 0; i < n && rc == 0; ++i )
-            {
-                rc = add_char_2_dyn_string( line, _4na_to_ascii( bases[ i ], reverse ) );
-            }
-            free( (void *) bases );
-        }
-    }
-
-    if ( ( ( state & align_iter_last ) == align_iter_last )&& ( rc == 0 ) )
-        rc = add_char_2_dyn_string( line, '$' );
-
-    if ( options->show_id )
-        rc = print_2_dyn_string( line, "(%lu:%u-%u/%u)",
-                                 rec->id, rec->pos + 1, rec->pos + rec->len, seq_pos );
-
-    return rc;
-}
-
-
-static rc_t walk_alignments( ReferenceIterator *ref_iter,
-                             dyn_string *line,
-                             dyn_string *qualities,
-                             pileup_options *options )
-{
-    uint32_t depth = 0;
-    rc_t rc;
-    do
-    {
-        const PlacementRecord *rec;
-        rc = ReferenceIteratorNextPlacement ( ref_iter, &rec );
-        if ( rc == 0 )
-            rc = walk_ref_position( ref_iter, rec, line, &( qualities->data[ depth++ ] ), options );
-        if ( rc == 0 )
-            rc = Quitting();
-    } while ( rc == 0 );
-
-    if ( !options->omit_qualities )
-    {
-        uint32_t i;
-        add_char_2_dyn_string( line, '\t' );
-        for ( i = 0; i < depth; ++i )
-        {
-            add_char_2_dyn_string( line, qualities->data[ i ] + 33 );
-        }
-    }
-
-    if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-    return rc;
-}
-
-
-static rc_t walk_spot_groups( ReferenceIterator *ref_iter,
-                             dyn_string *line,
-                             dyn_string *qualities,
-                             pileup_options *options )
-{
-    rc_t rc;
-    do
-    {
-        rc = ReferenceIteratorNextSpotGroup ( ref_iter, NULL, NULL );
-        if ( rc == 0 )
-            add_char_2_dyn_string( line, '\t' );
-        if ( rc == 0 )
-            rc = walk_alignments( ref_iter, line, qualities, options );
-    } while ( rc == 0 );
-
-    if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-    return rc;
-}
-
-
-static rc_t walk_position( ReferenceIterator *ref_iter,
-                           const char * refname,
-                           dyn_string *line,
-                           dyn_string *qualities,
-                           pileup_options *options )
-{
-    INSDC_coord_zero pos;
-    uint32_t depth;
-    INSDC_4na_bin base;
-
-    rc_t rc = ReferenceIteratorPosition ( ref_iter, &pos, &depth, &base );
-    if ( rc != 0 )
-    {
-        if ( GetRCState( rc ) != rcDone )
-        {
-            LOGERR( klogInt, rc, "ReferenceIteratorNextPos() failed" );
-        }
-    }
-    else if ( ( depth > 0 )||( options->no_skip ) )
-    {
-        rc = expand_dyn_string( line, ( 5 * depth ) + 100 );
-        if ( rc == 0 )
-        {
-            rc = expand_dyn_string( qualities, depth + 100 );
-            if ( rc == 0 )
-            {
-                char c = _4na_to_ascii( base, false );
-
-                reset_dyn_string( line );
-                rc = print_2_dyn_string( line, "%s\t%u\t%c\t%u", refname, pos + 1, c, depth );
-                if ( rc == 0 )
-                {
-                    if ( depth > 0 )
-                    {
-                        rc = walk_spot_groups( ref_iter, line, qualities, options );
-                    }
-
-                    if ( rc == 0 )
-                    {
-                        /* only one KOutMsg() per line... */
-                        KOutMsg( "%s\n", line->data );
-                    }
-
-                    if ( GetRCState( rc ) == rcDone )
-                    {
-                        rc = 0;
-                    }
-                }
-            }
-        }
-    } 
-    return rc;
-}
-
-
-static rc_t walk_reference_window( ReferenceIterator *ref_iter,
-                                   const char * refname,
-                                   dyn_string *line,
-                                   dyn_string *qualities,
-                                   pileup_options *options )
-{
-    rc_t rc = 0;
-    while ( rc == 0 )
-    {
-        rc = ReferenceIteratorNextPos ( ref_iter, !options->no_skip );
-        if ( rc != 0 )
-        {
-            if ( GetRCState( rc ) != rcDone )
-            {
-                LOGERR( klogInt, rc, "ReferenceIteratorNextPos() failed" );
-            }
-        }
-        else
-        {
-            rc = walk_position( ref_iter, refname, line, qualities, options );
-        }
-        if ( rc == 0 )
-        {
-            rc = Quitting();
-        }
-    }
-    if ( GetRCState( rc ) == rcDone ) rc = 0;
-    return rc;
-}
-
-
-static rc_t walk_reference( ReferenceIterator *ref_iter,
-                            const char * refname,
-                            pileup_options *options )
-{
-    dyn_string line;
-    rc_t rc = allocated_dyn_string ( &line, 4096 );
-    if ( rc == 0 )
-    {
-        dyn_string qualities;
-        rc = allocated_dyn_string ( &qualities, 4096 );
-        if ( rc == 0 )
-        {
-            while ( rc == 0 )
-            {
-                rc = Quitting ();
-                if ( rc == 0 )
-                {
-                    INSDC_coord_zero first_pos;
-                    INSDC_coord_len len;
-                    rc = ReferenceIteratorNextWindow ( ref_iter, &first_pos, &len );
-                    if ( rc != 0 )
-                    {
-                        if ( GetRCState( rc ) != rcDone )
-                        {
-                            LOGERR( klogInt, rc, "ReferenceIteratorNextWindow() failed" );
-                        }
-                    }
-                    else
-                    {
-                        rc = walk_reference_window( ref_iter, refname, &line, &qualities, options );
-                    }
-                }
-            }
-            free_dyn_string ( &qualities );
-        }
-        free_dyn_string ( &line );
-    }
-    if ( GetRCState( rc ) == rcDone ) rc = 0;
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-typedef struct pileup_counters
-{
-    uint32_t matches;
-    uint32_t mismatches[ 4 ];
-    uint32_t inserts;
-    uint32_t deletes;
-    dyn_string ins;
-    dyn_string del;
-} pileup_counters;
-
-
-static void clear_counters( pileup_counters * counters )
-{
-    uint32_t i;
-
-    counters->matches = 0;
-    for ( i = 0; i < 4; ++i )
-        counters->mismatches[ i ] = 0;
-    counters->inserts = 0;
-    counters->deletes = 0;
-    reset_dyn_string( &(counters->ins) );
-    reset_dyn_string( &(counters->del) );
-}
-
-static rc_t prepare_counters( pileup_counters * counters )
-{
-    rc_t rc = allocated_dyn_string ( &(counters->ins), 1024 );
-    if ( rc == 0 )
-    {
-        rc = allocated_dyn_string ( &(counters->del), 1024 );
-    }
-    return rc;
-}
-
-
-static void finish_counters( pileup_counters * counters )
-{
-    free_dyn_string ( &(counters->ins) );
-    free_dyn_string ( &(counters->del) );
-}
-
-
-static void walk_counter_state( ReferenceIterator *ref_iter,
-                                pileup_counters * counters )
-{
-    INSDC_coord_zero seq_pos;
-    int32_t state = ReferenceIteratorState ( ref_iter, &seq_pos );
-
-    if ( ( state & align_iter_invalid ) == align_iter_invalid )
-    {
-        return;
-    }
-
-    if ( ( state & align_iter_skip ) != align_iter_skip )
-    {
-        if ( ( state & align_iter_match ) == align_iter_match )
-        {
-            (counters->matches)++;
-        }
-        else
-        {
-            char c = _4na_to_ascii( state, false );
-            switch( c )
-            {
-                case 'A' : ( counters->mismatches[ 0 ] )++; break;
-                case 'C' : ( counters->mismatches[ 1 ] )++; break;
-                case 'G' : ( counters->mismatches[ 2 ] )++; break;
-                case 'T' : ( counters->mismatches[ 3 ] )++; break;
-            }
-        }
-    }
-
-    if ( ( state & align_iter_insert ) == align_iter_insert )
-    {
-        const INSDC_4na_bin *bases;
-        uint32_t i, n = ReferenceIteratorBasesInserted ( ref_iter, &bases );
-        (counters->inserts) += n;
-        for ( i = 0; i < n; ++i )
-        {
-            add_char_2_dyn_string( &(counters->ins), _4na_to_ascii( bases[ i ], false ) );
-        }
-    }
-
-    if ( ( state & align_iter_delete ) == align_iter_delete )
-    {
-        const INSDC_4na_bin *bases;
-        INSDC_coord_zero ref_pos;
-        uint32_t n = ReferenceIteratorBasesDeleted ( ref_iter, &ref_pos, &bases );
-        if ( bases != NULL )
-        {
-            uint32_t i;
-            (counters->deletes) += n;
-            for ( i = 0; i < n; ++i )
-            {
-                add_char_2_dyn_string( &(counters->del), _4na_to_ascii( bases[ i ], false ) );
-            }
-            free( (void *) bases );
-        }
-    }
-}
-
-
-static void print_counter_line( const char * refname,
-                                INSDC_coord_zero pos,
-                                INSDC_4na_bin base,
-                                uint32_t depth,
-                                pileup_counters * counters )
-{
-    char c = _4na_to_ascii( base, false );
-    KOutMsg( "%s\t%u\t%c\t%u\t", refname, pos + 1, c, depth );
-    if ( counters->matches > 0 )
-        KOutMsg( "%u=", counters->matches );
-    if ( counters->mismatches[ 0 ] > 0 )
-        KOutMsg( "%uA", counters->mismatches[ 0 ] );
-    if ( counters->mismatches[ 1 ] > 0 )
-        KOutMsg( "%uC", counters->mismatches[ 1 ] );
-    if ( counters->mismatches[ 2 ] > 0 )
-        KOutMsg( "%uG", counters->mismatches[ 2 ] );
-    if ( counters->mismatches[ 3 ] > 0 )
-        KOutMsg( "%uT", counters->mismatches[ 3 ] );
-    if ( counters->inserts > 0 )
-    {
-        KOutMsg( "%uI%s", counters->inserts, counters->ins.data );
-    }
-    if ( counters->deletes > 0 )
-    {
-        KOutMsg( "%uD%s", counters->deletes, counters->del.data );
-    }
-    KOutMsg( "\n" );
-}
-
-static rc_t walk_counter_position( ReferenceIterator *ref_iter,
-                                   const char * refname,
-                                   pileup_counters * counters )
-{
-    INSDC_coord_zero pos;
-    uint32_t depth;
-    INSDC_4na_bin base;
-
-    rc_t rc = ReferenceIteratorPosition ( ref_iter, &pos, &depth, &base );
-    if ( rc != 0 )
-    {
-        if ( GetRCState( rc ) != rcDone )
-        {
-            LOGERR( klogInt, rc, "ReferenceIteratorNextPos() failed" );
-        }
-    }
-    else if ( depth > 0 )
-    {
-        const PlacementRecord *rec;
-        rc_t rc1 = ReferenceIteratorNextPlacement ( ref_iter, &rec );
-        clear_counters( counters );
-        while ( rc1 == 0 )
-        {
-            walk_counter_state( ref_iter, counters );
-            rc1 = ReferenceIteratorNextPlacement ( ref_iter, &rec );
-        }
-
-        if ( GetRCState( rc1 ) == rcDone ) { rc = 0; } else { rc = rc1; }
-        if ( rc == 0 )
-        {
-            print_counter_line( refname, pos, base, depth, counters );
-        }
-    } 
-    return rc;
-}
-
-
-static rc_t walk_just_counters( ReferenceIterator *ref_iter,
-                                const char * refname,
-                                bool skip_empty )
-{
-    pileup_counters counters;
-    rc_t rc = prepare_counters( &counters );
-    if ( rc == 0 )
-    {
-        while ( rc == 0 )
-        {
-            rc = Quitting ();
-            if ( rc == 0 )
-            {
-                /* this is the 2nd level of walking the reference-iterator: 
-                   visiting each position (that has alignments) on this reference */
-                rc = ReferenceIteratorNextPos ( ref_iter, skip_empty );
-                if ( rc != 0 )
-                {
-                    if ( GetRCState( rc ) != rcDone )
-                    {
-                        LOGERR( klogInt, rc, "ReferenceIteratorNextPos() failed" );
-                    }
-                }
-                else
-                {
-                    rc = walk_counter_position( ref_iter, refname, &counters );
-                    if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-                }
-            }
-        }
-        finish_counters( &counters );
-    }
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-enum { fsm_INIT = 0, fsm_DATA, fsm_GAP1, fsm_GAP2 };
-
-typedef struct fsm_context fsm_context;
-struct fsm_context
-{
-    uint32_t state;
-    const char * refname;
-    INSDC_coord_zero start;
-    INSDC_coord_zero end;
-};
-
-
-static void fsm_initialize( fsm_context * ctx, const char * refname )
-{
-    ctx->state = fsm_INIT;
-    ctx->refname = refname;
-    ctx->start = 0;
-    ctx->end = 0;
-}
-
-static void fsm_finalize( fsm_context * ctx, INSDC_coord_zero pos )
-{
-    switch( ctx->state )
-    {
-        case fsm_DATA : ;
-        case fsm_GAP1 : KOutMsg( "%s:%u-%u\n", ctx->refname, ctx->start, pos ); break;
-    }
-}
-
-/* transition into state 'fsm_DATA' */
-static void fsm_data( fsm_context * ctx, INSDC_coord_zero pos )
-{
-    switch( ctx->state )
-    {
-        case fsm_INIT : ;
-        case fsm_GAP2 : ctx->start = pos; break;
-    }
-    ctx->state = fsm_DATA;
-}
-
-/* transition into state 'fsm_GAP1' */
-static void fsm_gap1( fsm_context * ctx, INSDC_coord_zero pos )
-{
-    if ( ctx->state == fsm_DATA )
-    {
-        ctx->end = pos;
-    }
-    ctx->state = fsm_GAP1;
-}
-
-/* transition into state 'fsm_GAP2' */
-static void fsm_gap2( fsm_context * ctx )
-{
-    if ( ctx->state == fsm_GAP1 )
-    {
-        KOutMsg( "%s:%u-%u\n", ctx->refname, ctx->start, ctx->end );
-    }
-    ctx->state = fsm_GAP2;
-}
-
-
-static void fsm_run( fsm_context * ctx, uint32_t depth, INSDC_coord_zero pos, uint32_t maxgap )
-{
-    switch( ctx->state )
-    {
-        case fsm_INIT : if ( depth > 0 )
-                            fsm_data( ctx, pos );
-                        else
-                            fsm_gap2( ctx );
-                        break;
-
-        case fsm_DATA : if ( depth == 0 )
-                            fsm_gap1( ctx, pos );
-                        break;
-
-        case fsm_GAP1 : if ( ( pos - ctx->end ) > maxgap )
-                            fsm_gap2( ctx );
-                        if ( depth > 0 )
-                            fsm_data( ctx, pos );
-                        break;
-
-        case fsm_GAP2 : if ( depth > 0 )
-                            fsm_data( ctx, pos );
-                        break;
-    }
-
-}
-
-#if 0
-static void fsm_show( fsm_context * ctx, INSDC_coord_zero pos )
-{
-    switch( ctx->state )
-    {
-        case fsm_INIT : KOutMsg( "[%u].INIT\n", pos ); break;
-        case fsm_DATA : KOutMsg( "[%u].DATA\n", pos ); break;
-        case fsm_GAP1 : KOutMsg( "[%u].GAP1\n", pos ); break;
-        case fsm_GAP2 : KOutMsg( "[%u].GAP2\n", pos ); break;
-    }
-}
-#endif
-
-static rc_t walk_and_detect( ReferenceIterator *ref_iter,
-                             const char * refname, uint32_t maxgap )
-{
-    rc_t rc = 0;
-    INSDC_coord_zero pos;
-
-    /* here we have a little FSM with these states: INIT, DATA, GAP1, GAP2 */
-    fsm_context ctx;
-    fsm_initialize( &ctx, refname );
-    while ( rc == 0 )
-    {
-        rc = Quitting ();
-        if ( rc == 0 )
-        {
-            /* this is the 2nd level of walking the reference-iterator: 
-               visiting each position (that has alignments) on this reference */
-            rc = ReferenceIteratorNextPos ( ref_iter, true );
-            if ( rc != 0 )
-            {
-                if ( GetRCState( rc ) != rcDone )
-                {
-                    LOGERR( klogInt, rc, "ReferenceIteratorNextPos() failed" );
-                }
-            }
-            else
-            {
-                uint32_t depth;
-                rc = ReferenceIteratorPosition ( ref_iter, &pos, &depth, NULL );
-                if ( rc == 0 )
-                {
-                    fsm_run( &ctx, depth, pos, maxgap );
-                    /* fsm_show( &ctx, pos ); */
-                }
-                if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-            }
-        }
-    }
-    fsm_finalize( &ctx, pos );
-    return 0;
-}
-
-
-/* =========================================================================================== */
-
-
-static rc_t walk_ref_iter( ReferenceIterator *ref_iter, pileup_options *options )
-{
-    rc_t rc = 0;
-    while( rc == 0 )
-    {
-        /* this is the 1st level of walking the reference-iterator: 
-           visiting each (requested) reference */
-        struct ReferenceObj const * refobj;
-
-        rc = ReferenceIteratorNextReference( ref_iter, NULL, NULL, &refobj );
-        if ( rc == 0 )
-        {
-            if ( refobj != NULL )
-            {
-                const char * refname = NULL;
-                if ( options->use_seq_name )
-                    rc = ReferenceObj_Name( refobj, &refname );
-                else
-                    rc = ReferenceObj_SeqId( refobj, &refname );
-                if ( rc == 0 )
-                {
-                    switch( options->output_mode )
-                    {
-                        case sra_pileup_samtools : rc = walk_reference( ref_iter, refname, options );
-                                                   break;
-
-                        case sra_pileup_counters : rc = walk_just_counters( ref_iter, refname, true );
-                                                   break;
-
-                        case sra_pileup_detect : rc = walk_and_detect( ref_iter, refname, 200 );
-                                                 break;
-
-                        default : KOutMsg( "unknown output-mode '%u'\n", options->output_mode );
-                                  break;
-
-                    }
-                    if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-                }
-                else
-                {
-                    if ( options->use_seq_name )
-                    {
-                        LOGERR( klogInt, rc, "ReferenceObj_Name() failed" );
-                    }
-                    else
-                    {
-                        LOGERR( klogInt, rc, "ReferenceObj_SeqId() failed" );
-                    }
-                }
-            }
-        }
-        else
-        {
-            if ( GetRCState( rc ) != rcDone )
-            {
-                LOGERR( klogInt, rc, "ReferenceIteratorNextReference() failed" );
-            }
-        }
-    }
-    if ( GetRCState( rc ) == rcDone ) { rc = 0; }
-    if ( GetRCState( rc ) == rcCanceled ) { rc = 0; }
-    /* RC ( rcExe, rcProcess, rcExecuting, rcProcess, rcCanceled ); */
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-
-static rc_t add_quality_and_orientation( const VTable *tbl, const VCursor ** cursor, bool omit_qualities )
-{
-    rc_t rc = VTableCreateCursorRead ( tbl, cursor );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "VTableCreateCursorRead() failed" );
-    }
-
-    if ( rc == 0 && !omit_qualities )
-    {
-        uint32_t quality_idx;
-        rc = VCursorAddColumn ( *cursor, &quality_idx, COL_QUALITY );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "VCursorAddColumn(QUALITY) failed" );
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        uint32_t ref_orientation_idx;
-        rc = VCursorAddColumn ( *cursor, &ref_orientation_idx, COL_REF_ORIENTATION );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "VCursorAddColumn(REF_ORIENTATION) failed" );
-        }
-    }
-
-    if ( rc == 0 )
-    {
-        uint32_t read_filter_idx;
-        rc = VCursorAddColumn ( *cursor, &read_filter_idx, COL_READ_FILTER );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "VCursorAddColumn(READ_FILTER) failed" );
-        }
-    }
-    return rc;
-}
-
-
-static rc_t prepare_prim_cursor( const VDatabase *db, const VCursor ** cursor, bool omit_qualities )
-{
-    const VTable *tbl;
-    rc_t rc = VDatabaseOpenTableRead ( db, &tbl, "PRIMARY_ALIGNMENT" );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "VDatabaseOpenTableRead(PRIMARY_ALIGNMENT) failed" );
-    }
-    else
-    {
-        rc = add_quality_and_orientation( tbl, cursor, omit_qualities );
-        VTableRelease ( tbl );
-    }
-    return rc;
-}
-
-
-static rc_t prepare_sec_cursor( const VDatabase *db, const VCursor ** cursor, bool omit_qualities )
-{
-    const VTable *tbl;
-    rc_t rc = VDatabaseOpenTableRead ( db, &tbl, "SECONDARY_ALIGNMENT" );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "VDatabaseOpenTableRead(SECONDARY_ALIGNMENT) failed" );
-    }
-    else
-    {
-        rc = add_quality_and_orientation( tbl, cursor, omit_qualities );
-        VTableRelease ( tbl );
-    }
-    return rc;
-}
-
-
-static rc_t prepare_evidence_cursor( const VDatabase *db, const VCursor ** cursor, bool omit_qualities )
-{
-    const VTable *tbl;
-    rc_t rc = VDatabaseOpenTableRead ( db, &tbl, "EVIDENCE_ALIGNMENT" );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "VDatabaseOpenTableRead(EVIDENCE) failed" );
-    }
-    else
-    {
-        rc = add_quality_and_orientation( tbl, cursor, omit_qualities );
-        VTableRelease ( tbl );
-    }
-    return rc;
-}
-
-#if 0
-static void show_placement_params( const char * prefix, const ReferenceObj *refobj,
-                                   uint32_t start, uint32_t end )
-{
-    const char * name;
-    rc_t rc = ReferenceObj_SeqId( refobj, &name );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "ReferenceObj_SeqId() failed" );
-    }
-    else
-    {
-        KOutMsg( "prepare %s: <%s> %u..%u\n", prefix, name, start, end ) ;
-    }
-}
-#endif
-
-static rc_t CC prepare_section_cb( prepare_ctx * ctx, uint32_t start, uint32_t end )
-{
-    rc_t rc = 0;
-    INSDC_coord_len len;
-    if ( ctx->db == NULL || ctx->refobj == NULL )
-    {
-        rc = SILENT_RC ( rcApp, rcNoTarg, rcOpening, rcSelf, rcInvalid );
-        /* it is opened in prepare_db_table even if ctx->db == NULL */
-        PLOGERR(klogInt, (klogInt, rc, "failed to process $(path)",
-            "path=%s", ctx->path == NULL ? "input argument" : ctx->path));
-        ReportSilence();
-    }
-    else
-    {
-        rc = ReferenceObj_SeqLength( ctx->refobj, &len );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "ReferenceObj_SeqLength() failed" );
-        }
-        else
-        {
-            rc_t rc1 = 0, rc2 = 0, rc3 = 0;
-
-            if ( start == 0 ) start = 1;
-            if ( ( end == 0 )||( end > len + 1 ) )
-            {
-                end = ( len - start ) + 1;
-            }
-            /* depending on ctx->select prepare primary, secondary or both... */
-            if ( ctx->use_primary_alignments )
-            {
-                const VCursor * prim_align_cursor = NULL;
-                rc1 = prepare_prim_cursor( ctx->db, &prim_align_cursor, ctx->omit_qualities );
-                if ( rc1 == 0 )
-                {
-    /*                show_placement_params( "primary", ctx->refobj, start, end ); */
-                    rc1 = ReferenceIteratorAddPlacements ( ctx->ref_iter,       /* the outer ref-iter */
-                                                          ctx->refobj,          /* the ref-obj for this chromosome */
-                                                          start - 1,            /* start ( zero-based ) */
-                                                          end - start + 1,      /* length */
-                                                          NULL,                 /* ref-cursor */
-                                                          prim_align_cursor,    /* align-cursor */
-                                                          primary_align_ids,    /* which id's */
-                                                          ctx->spot_group );    /* what read-group */
-                    if ( rc1 != 0 )
-                    {
-                        LOGERR( klogInt, rc1, "ReferenceIteratorAddPlacements(prim) failed" );
-                    }
-                    VCursorRelease( prim_align_cursor );
-                }
-            }
-            if ( ctx->use_secondary_alignments )
-            {
-                const VCursor * sec_align_cursor = NULL;
-                rc2 = prepare_sec_cursor( ctx->db, &sec_align_cursor, ctx->omit_qualities );
-                if ( rc2 == 0 )
-                {
-    /*                show_placement_params( "secondary", ctx->refobj, start, end ); */
-                    rc2 = ReferenceIteratorAddPlacements ( ctx->ref_iter,       /* the outer ref-iter */
-                                                          ctx->refobj,          /* the ref-obj for this chromosome */
-                                                          start - 1,            /* start ( zero-based ) */
-                                                          end - start + 1,      /* length */
-                                                          NULL,                 /* ref-cursor */
-                                                          sec_align_cursor,     /* align-cursor */
-                                                          secondary_align_ids,  /* which id's */
-                                                          ctx->spot_group );    /* what read-group */
-                    if ( rc2 != 0 )
-                    {
-                        LOGERR( klogInt, rc2, "ReferenceIteratorAddPlacements(sec) failed" );
-                    }
-                    VCursorRelease( sec_align_cursor );
-                }
-            }
-
-            if ( ctx->use_evidence_alignments )
-            {
-                const VCursor * ev_align_cursor = NULL;
-                rc3 = prepare_evidence_cursor( ctx->db, &ev_align_cursor, ctx->omit_qualities );
-                if ( rc3 == 0 )
-                {
-    /*                show_placement_params( "evidende", ctx->refobj, start, end ); */
-                    rc3 = ReferenceIteratorAddPlacements ( ctx->ref_iter,       /* the outer ref-iter */
-                                                          ctx->refobj,          /* the ref-obj for this chromosome */
-                                                          start - 1,            /* start ( zero-based ) */
-                                                          end - start + 1,      /* length */
-                                                          NULL,                 /* ref-cursor */
-                                                          ev_align_cursor,      /* align-cursor */
-                                                          evidence_align_ids,   /* which id's */
-                                                          ctx->spot_group );    /* what read-group */
-                    if ( rc3 != 0 )
-                    {
-                        LOGERR( klogInt, rc3, "ReferenceIteratorAddPlacements(evidence) failed" );
-                    }
-                    VCursorRelease( ev_align_cursor );
-                }
-            }
-
-            if ( rc1 == SILENT_RC( rcAlign, rcType, rcAccessing, rcRow, rcNotFound ) )
-            { /* from allocate_populate_rec */
-                rc = rc1;
-            }
-            else if ( rc1 == 0 )
-                rc = 0;
-            else if ( rc2 == 0 )
-                rc = 0;
-            else if ( rc3 == 0 )
-                rc = 0;
-            else
-                rc = rc1;
-        }
-    }
-    return rc;
-}
-
-
-typedef struct foreach_arg_ctx
-{
-    pileup_options *options;
-    const VDBManager *vdb_mgr;
-    VSchema *vdb_schema;
-    ReferenceIterator *ref_iter;
-    BSTree *ranges;
-} foreach_arg_ctx;
-
-
-/* called for each source-file/accession */
-static rc_t CC on_argument( const char * path, const char * spot_group, void * data )
-{
-    rc_t rc = 0;
-    foreach_arg_ctx * ctx = ( foreach_arg_ctx * )data;
-    prepare_ctx prep;
-
-    prep.omit_qualities = ctx->options->omit_qualities;
-    prep.use_primary_alignments = ( ( ctx->options->cmn.tab_select & primary_ats ) == primary_ats );
-    prep.use_secondary_alignments = ( ( ctx->options->cmn.tab_select & secondary_ats ) == secondary_ats );
-    prep.use_evidence_alignments = ( ( ctx->options->cmn.tab_select & evidence_ats ) == evidence_ats );
-    prep.ref_iter = ctx->ref_iter;
-    prep.spot_group = spot_group;
-    prep.on_section = prepare_section_cb;
-    prep.data = NULL;
-    prep.path = path;
-
-    rc = prepare_ref_iter( &prep, ctx->vdb_mgr, ctx->vdb_schema, path, ctx->ranges );
-    if ( rc == 0 && prep.db == NULL )
-    {
-        rc = RC ( rcApp, rcNoTarg, rcOpening, rcSelf, rcInvalid );
-        LOGERR( klogInt, rc, "unsupported source" );
-    }
-    return rc;
-}
-
-
-static rc_t pileup_main( Args * args, pileup_options *options )
-{
-    foreach_arg_ctx arg_ctx;
-    pileup_callback_data cb_data;
-    KDirectory *dir;
-
-    /* (1) make the align-manager ( necessary to make a ReferenceIterator... ) */
-    rc_t rc = AlignMgrMakeRead ( &cb_data.almgr );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "AlignMgrMake() failed" );
-    }
-
-    cb_data.options = options;
-    arg_ctx.options = options;
-    arg_ctx.vdb_schema = NULL;
-
-    /* (2) make the reference-iterator */
-    if ( rc == 0 )
-    {
-        PlacementRecordExtendFuncs cb_block;
-
-        cb_block.data = &cb_data;
-        cb_block.destroy = NULL;
-        cb_block.populate = populate_tooldata;
-        cb_block.alloc_size = alloc_size;
-        cb_block.fixed_size = 0;
-
-        rc = AlignMgrMakeReferenceIterator ( cb_data.almgr, &arg_ctx.ref_iter, &cb_block, options->minmapq );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "AlignMgrMakeReferenceIterator() failed" );
-        }
-    }
-
-    /* (3) make a KDirectory ( necessary to make a vdb-manager ) */
-    if ( rc == 0 )
-    {
-        rc = KDirectoryNativeDir( &dir );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "KDirectoryNativeDir() failed" );
-        }
-    }
-
-    /* (4) make a vdb-manager */
-    if ( rc == 0 )
-    {
-        rc = VDBManagerMakeRead ( &arg_ctx.vdb_mgr, dir );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "VDBManagerMakeRead() failed" );
-        }
-        else {
-            ReportSetVDBManager(arg_ctx.vdb_mgr);
-        }
-    }
-
-
-    /* (5) make a vdb-schema */
-    if ( rc == 0 )
-    {
-        rc = VDBManagerMakeSRASchema( arg_ctx.vdb_mgr, &arg_ctx.vdb_schema );
-        if ( rc != 0 )
-        {
-            LOGERR( klogInt, rc, "VDBManagerMakeSRASchema() failed" );
-        }
-        else if ( options->cmn.schema_file != NULL )
-        {
-            rc = VSchemaParseFile( arg_ctx.vdb_schema, options->cmn.schema_file );
-            if ( rc != 0 )
-            {
-                LOGERR( klogInt, rc, "VSchemaParseFile() failed" );
-            }
-        }
-    }
-
-    /* (5) loop through the given input-filenames and load the ref-iter with it's input */
-    if ( rc == 0 )
-    {
-        BSTree regions;
-        rc = init_ref_regions( &regions, args ); /* cmdline_cmn.c */
-        if ( rc == 0 )
-        {
-            bool empty = false;
-            check_ref_regions( &regions ); /* sanitize input... */
-            arg_ctx.ranges = ®ions;
-            rc = foreach_argument( args, dir, options->div_by_spotgrp, &empty, on_argument, &arg_ctx ); /* cmdline_cmn.c */
-            if ( empty )
-            {
-                Usage ( args );
-            }
-            free_ref_regions( &regions );
-        }
-    }
-
-    /* (6) walk the "loaded" ref-iterator ===> perform the pileup */
-    if ( rc == 0 )
-    {
-        /* ============================================== */
-        rc = walk_ref_iter( arg_ctx.ref_iter, options );
-        /* ============================================== */
-    }
-
-    if ( arg_ctx.vdb_mgr != NULL ) VDBManagerRelease( arg_ctx.vdb_mgr );
-    if ( arg_ctx.vdb_schema != NULL ) VSchemaRelease( arg_ctx.vdb_schema );
-    if ( dir != NULL ) KDirectoryRelease( dir );
-    if ( arg_ctx.ref_iter != NULL ) ReferenceIteratorRelease( arg_ctx.ref_iter );
-    if ( cb_data.almgr != NULL ) AlignMgrRelease ( cb_data.almgr );
-    return rc;
-}
-
-
-/* =========================================================================================== */
-
-rc_t CC KMain( int argc, char *argv [] )
-{
-    rc_t rc = KOutHandlerSet( write_to_FILE, stdout );
-    ReportBuildDate( __DATE__ );
-    if ( rc != 0 )
-    {
-        LOGERR( klogInt, rc, "KOutHandlerSet() failed" );
-    }
-    else
-    {
-        Args * args;
-
-        KLogHandlerSetStdErr();
-        rc = ArgsMakeAndHandle( &args, argc, argv, 2,
-            MyOptions, sizeof MyOptions / sizeof MyOptions [ 0 ],
-            CommonOptions_ptr(), CommonOptions_count() );
-        if ( rc == 0 )
-        {
-            rc = parse_inf_file( args ); /* cmdline_cmn.h */
-            if ( rc == 0 )
-            {
-                pileup_options options;
-                rc = get_pileup_options( args, &options );
-                if ( rc == 0 )
-                {
-                    if ( options.cmn.output_file != NULL )
-                    {
-                        rc = set_stdout_to( options.cmn.gzip_output,
-                                            options.cmn.bzip_output,
-                                            options.cmn.output_file,
-                                            32 * 1024 );
-                    }
-
-                    if ( rc == 0 )
-                    {
-                        if ( options.reref || options.rerefex )
-                        {
-                            rc = report_on_reference( args, options.rerefex ); /* reref.c */
-                        }
-                        else
-                        {
-                            /* ============================== */
-                            rc = pileup_main( args, &options );
-                            /* ============================== */
-                        }
-                    }
-
-                    if ( options.cmn.output_file != NULL )
-                        release_stdout_redirection();
-                }
-            }
-            ArgsWhack( args );
-        }
-    }
-
-    {
-        /* Report execution environment if necessary */
-        rc_t rc2 = ReportFinalize( rc );
-        if ( rc == 0 )
-            rc = rc2;
-    }
-    return rc;
-}
diff --git a/tools/sra-pileup/sra-pileup.vers b/tools/sra-pileup/sra-pileup.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/sra-pileup/sra-pileup.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/sra-sort/Makefile b/tools/sra-sort/Makefile
deleted file mode 100644
index 8125979..0000000
--- a/tools/sra-sort/Makefile
+++ /dev/null
@@ -1,141 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/sra-sort
-
-include $(TOP)/build/Makefile.env
-include $(SRCDIR)/Makefile.$(COMP)
-
-INT_TOOLS = \
-
-EXT_TOOLS = \
-
-ifneq (win,$(OS))
-EXT_TOOLS += sra-sort
-endif	
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# sra-sort
-#
-SRA_SORT_SRC = \
-	caps \
-	mem \
-	membank \
-	paged-membank \
-	paged-mmapbank \
-	except \
-	idx-mapping \
-	map-file \
-	col-pair \
-	row-set \
-	simple-row-set \
-	mapping-row-set \
-	sorting-row-set \
-	meta-pair \
-	dir-pair \
-	tbl-pair \
-	db-pair \
-	glob-poslen \
-	poslen-col-pair \
-	ref-alignid-col \
-	buff-writer \
-	id-mapper-col \
-	capture-first-half-aligned \
-	csra-tbl \
-	csra-pair \
-	run \
-	sra-sort \
-	xcheck-ref-align
-
-SRA_SORT_OBJ = \
-	$(addsuffix .$(OBJX),$(SRA_SORT_SRC))
-
-SRA_SORT_LIB = \
-	-lkapp \
-	$(UPDATE_SCHEMA_LIBS) \
-	-dalign-reader \
-	-dksrch \
-	-ssraschema \
-	-lwvdb \
-	-lwkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib \
-	-lm
-
-$(BINDIR)/sra-sort: $(SRA_SORT_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SRA_SORT_LIB)
diff --git a/tools/sra-sort/buff-writer.c b/tools/sra-sort/buff-writer.c
deleted file mode 100644
index 22af68a..0000000
--- a/tools/sra-sort/buff-writer.c
+++ /dev/null
@@ -1,785 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct BufferedPairColWriter BufferedPairColWriter;
-#define COLWRITER_IMPL BufferedPairColWriter
-
-#include "buff-writer.h"
-#include "row-set.h"
-#include "idx-mapping.h"
-#include "map-file.h"
-#include "csra-tbl.h"
-#include "col-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <klib/sort.h>
-#include <klib/rc.h>
-#include <kdb/btree.h>
-
-#include <string.h>
-#include <bitstr.h>
-
-FILE_ENTRY ( buff-writer );
-
-
-/*--------------------------------------------------------------------------
- * BufferedPairColWriter
- */
-struct BufferedPairColWriter
-{
-    ColumnWriter dad;
-
-    cSRATblPair *tbl;   /* borrowed reference to table        */
-
-    ColumnWriter *cw;   /* where to write data                */
-
-    MemBank *mbank;     /* paged memory bank                  */
-#define MAX_VOCAB_SIZE 32*1024
-    /*** introducing VOCABULARY value->id->vocab_value ***/
-    KBTree	*vocab_key2id;
-    const void	*vocab_id2val[MAX_VOCAB_SIZE];
-    uint32_t	vocab_cnt;
-    /******************************************************/
-    MapFile *idx;       /* optional row-id mapping index      */
-
-    union
-    {
-        /* for mapping writers */
-        struct
-        {
-            union
-            {
-                /* "immediate" data - size <= 64 bits and row_len == 1 */
-                uint64_t imm;
-
-                /* "indirect" data - stored in "mbank" */
-                void *ptr;
-
-            } val;
-            int64_t new_id;
-        } *data;
-
-        /* standard ( old_id, new_id ) mapping pair */
-        IdxMapping *map;
-
-        /* for non-mapping writers */
-        int64_t *ids;
-
-    } u;
-
-    /* for non-mapping writers - new=>old ord */
-    uint32_t *ord;
-
-    size_t num_items;   /* total number of items              */
-    size_t cur_item;    /* index of currently available item  */
-    size_t num_immed;   /* number of immediate items written  */
-
-    uint32_t elem_bits; /* number of bits of each element     */
-    uint32_t min_row_len;
-    uint32_t max_row_len;
-};
-
-static
-void BufferedPairColWriterWhack ( BufferedPairColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    MapFileRelease ( self -> idx, ctx );
-    MemBankRelease ( self -> mbank, ctx );
-    if(self -> vocab_key2id) KBTreeRelease  ( self -> vocab_key2id );
-    ColumnWriterRelease ( self -> cw, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-const char *BufferedPairColWriterFullSpec ( const BufferedPairColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    return ColumnWriterFullSpec ( self -> cw, ctx );
-}
-
-static
-void BufferedPairColWriterPreCopy ( BufferedPairColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnWriterPreCopy ( self -> cw, ctx );
-}
-
-static
-void BufferedPairColWriterPostCopy ( BufferedPairColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> mbank != NULL )
-    {
-        MemBankRelease ( self -> mbank, ctx );
-        self -> mbank = NULL;
-    }
-    if ( self -> vocab_key2id != NULL )
-    {
-	KBTreeRelease  ( self -> vocab_key2id );
-	self -> vocab_key2id = 0;
-	self -> vocab_cnt = 0;
-    }
-
-    ColumnWriterPostCopy ( self -> cw, ctx );
-}
-
-static
-void BufferedPairColWriterMapValues ( BufferedPairColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    size_t i;
-    int64_t id;
-    bool assign_ids = ( bool ) self -> dad . align [ 0 ];
-
-    if ( self -> elem_bits != 64 )
-    {
-        rc = RC ( rcExe, rcColumn, rcWriting, rcType, rcIncorrect );
-        INTERNAL_ERROR ( rc, "column '%s' does not have 64-bit elements and cannot be mapped",
-            ColumnWriterFullSpec ( self -> cw, ctx ) );
-        return;
-    }
-
-    if ( self -> num_immed != self -> num_items )
-    {
-#if DISALLOW_VARIABLE_ROW_LENGTH_MAPPING
-        rc = RC ( rcExe, rcColumn, rcWriting, rcType, rcIncorrect );
-        INTERNAL_ERROR ( rc, "column '%s' does not have fixed row-length of 1 and cannot be mapped",
-            ColumnWriterFullSpec ( self -> cw, ctx ) );
-#else
-        const uint32_t *base;
-        /* detect case when we have ids that were written
-           sparsely ( as NULLs ) rather than densely ( zeros for NULL ). */
-        if ( self -> min_row_len == 0 && self -> max_row_len == 1 )
-        {
-            for ( i = 0; i < self -> num_items; ++ i )
-            {
-                base = self -> u . data [ i ] . val . ptr;
-                if ( base != NULL )
-                    memcpy ( & self -> u . data [ i ] . val . imm, & base [ 1 ], 8 );
-            }
-
-            MemBankRelease ( self -> mbank, ctx );
-            self -> mbank = NULL;
-            self -> num_immed = self -> num_items;
-            self -> min_row_len = 1;
-	    
-        }
-        else
-        {
-            STATUS ( 3, "randomly mapping old=>new values" );
-            for ( i = 0; i < self -> num_immed; ++ i )
-            {
-                id = self -> u . data [ i ] . val . imm;
-                if ( id != 0 )
-                {
-                    uint32_t *base;
-                    ON_FAIL ( base = MemBankAlloc ( self -> mbank, ctx, sizeof id + sizeof * base, false ) )
-                        return;
-                    ON_FAIL ( id = MapFileMapSingleOldToNew ( self -> idx, ctx, id, assign_ids ) )
-                        return;
-                    memcpy ( & base [ 1 ], & id, sizeof id );
-                    base [ 0 ] = 1;
-                    self -> u . data [ i ] . val . ptr = base;
-                }
-            }
-            for ( self -> num_immed = 0; i < self -> num_items; ++ i )
-            {
-                base = self -> u . data [ i ] . val . ptr;
-                if ( base != NULL )
-                {
-                    uint32_t j, row_len = base [ 0 ];
-                    int64_t *ids = ( int64_t* ) & base [ 1 ];
-                    for ( j = 0; j < row_len; ++ j )
-                    {
-                        id = ids [ j ];
-                        if ( id != 0 )
-                        {
-                            ON_FAIL ( ids [ j ] = MapFileMapSingleOldToNew ( self -> idx, ctx, id, assign_ids ) )
-                                return;
-                        }
-                    }
-                }
-            }
-            return;
-        }
-#endif
-    }
-
-    STATUS ( 3, "sorting %,u ( data, new_id ) map entries on immediate value", self -> num_items );
-#if USE_OLD_KSORT
-    ksort ( self -> u . map, self -> num_items, sizeof self -> u . map [ 0 ], IdxMappingCmpOld, ( void* ) ctx );
-#else
-    IdxMappingSortOld ( self -> u . map, ctx, self -> num_items );
-#endif
-
-    STATUS ( 3, "mapping old=>new values" );
-    for ( i = 0; i < self -> num_items; ++ i )
-    {
-        id = self -> u . map [ i ] . old_id;
-        if ( id != 0 )
-        {
-            ON_FAIL ( self -> u . map [ i ] . old_id = MapFileMapSingleOldToNew ( self -> idx, ctx, id, assign_ids ) )
-                break;
-        }
-    }
-}
-
-static
-void BufferedPairColWriterWriteMapped ( BufferedPairColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    uint32_t *base;
-    size_t i, row_bytes;
-    const size_t pg_size = 256 * 1024;
-
-    /* detect first write */
-    if ( self -> u . data == NULL )
-    {
-        /* get map and content length from table */
-        assert ( self -> idx != NULL );
-        ON_FAIL ( self -> u . map = RowSetIteratorGetIdxMapping ( self -> tbl -> rsi, ctx, & self -> num_items ) )
-        {
-            ANNOTATE ( "failed to get ( old_id, new_id ) map for column '%s'", ColumnWriterFullSpec ( self -> cw, ctx ) );
-            return;
-        }
-
-        /* require elem_bits to be constant for column */
-        self -> elem_bits = elem_bits;
-
-        /* OPTIMIZATION:
-           IFF elem_bits <= 64 and row_len == 1, store in union
-           otherwise, use membank. This requires that if row_len
-           ever changes, we have to recover. */
-        if ( elem_bits > 64 || row_len != 1 )
-        {
-            /* create a memory bank */
-            /* TBD - used configured page size rather than 256K */
-            ON_FAIL ( self -> mbank = MemBankMakePaged ( ctx, -1L, pg_size ) )
-                return;
-        }
-
-        /* initialize min/max */
-        self -> min_row_len = self -> max_row_len = row_len;
-    }
-
-    /* elem_bits should be constant */
-    assert ( self -> elem_bits == elem_bits );
-
-    /* handle optimized case */
-    if ( self -> mbank == NULL )
-    {
-        /* first, detect a change */
-        if ( row_len == 1 )
-        {
-            /* continue on optimized case */
-            row_bytes = ( ( size_t ) elem_bits + 7 ) >> 3;
-            if ( boff != 0 )
-            {
-                bitcpy ( & self -> u . data [ self -> cur_item ] . val . imm,
-                    0, data, boff, ( bitsz_t ) elem_bits * row_len );
-            }
-            else
-            {
-                memcpy ( & self -> u . data [ self -> cur_item ] . val . imm, data, row_bytes );
-            }
-
-            /* record another immediate row */
-            ++ self -> num_immed;
-
-            /* detect last row */
-            if ( ++ self -> cur_item < self -> num_items )
-                return;
-
-            /* map values */
-            TRY ( BufferedPairColWriterMapValues ( self, ctx ) )
-            {
-                /* need to resort map on new_id */
-                STATUS ( 3, "sorting %,u ( data, new_id ) map entries on new_id", self -> num_items );
-#if USE_OLD_KSORT
-                ksort ( self -> u . map, self -> num_items, sizeof self -> u . map [ 0 ], IdxMappingCmpNew, ( void* ) ctx );
-#else
-                IdxMappingSortNew ( self -> u . map, ctx, self -> num_items );
-#endif
-
-                /* write all rows to column writer */
-                STATUS ( 3, "writing cell data to '%s'", ColumnWriterFullSpec ( self -> cw, ctx ) );
-                for ( i = 0; i < self -> num_items; ++ i )
-                {
-                    /* write out row */
-                    ON_FAIL ( ColumnWriterWrite ( self -> cw, ctx, self -> elem_bits, & self -> u . data [ i ] . val . imm, 0, 1 ) )
-                        break;
-                }
-            }
-
-            /* forget about map */
-            self -> u . map = NULL;
-            self -> cur_item = self -> num_items = self -> num_immed = 0;
-            self -> elem_bits = 0;
-
-            return;
-        }
-
-        /* need to recover */
-        ON_FAIL ( self -> mbank = MemBankMakePaged ( ctx, -1L, pg_size ) )
-            return;
-    }
-
-    /* update min/max row-len */
-    if ( row_len < self -> min_row_len )
-        self -> min_row_len = row_len;
-    else if ( row_len > self -> max_row_len )
-        self -> max_row_len = row_len;
-
-    /* handle zero-length rows specially */
-    if ( row_len == 0 )
-        self -> u . data [ self -> cur_item ] . val . ptr = NULL;
-    else
-    {
-        /* allocate space for the row */
-        row_bytes = ( ( size_t ) elem_bits * row_len + 7 ) >> 3;
-        TRY ( base = MemBankAlloc ( self -> mbank, ctx, row_bytes + sizeof row_len, false ) )
-        {
-            /* copy it in */
-            memcpy ( base, & row_len, sizeof row_len );
-            if ( boff != 0 )
-                bitcpy ( & base [ 1 ], 0, data, boff, ( bitsz_t ) elem_bits * row_len );
-            else
-                memcpy ( & base [ 1 ], data, row_bytes );
-
-            /* remember its location in the map */
-            self -> u . data [ self -> cur_item ] . val . ptr = base;
-
-            /* remember the last input pointer */
-        }
-    }
-
-    if ( ! FAILED () )
-    {
-        /* detect last row */
-        if ( ++ self -> cur_item == self -> num_items )
-        {
-            /* map values */
-            TRY ( BufferedPairColWriterMapValues ( self, ctx ) )
-            {
-                /* need to resort map on new_id */
-                STATUS ( 3, "sorting %,u ( data, new_id ) map entries on new_id", self -> num_items );
-#if USE_OLD_KSORT
-                ksort ( self -> u . map, self -> num_items, sizeof self -> u . map [ 0 ], IdxMappingCmpNew, ( void* ) ctx );
-#else
-                IdxMappingSortNew ( self -> u . map, ctx, self -> num_items );
-#endif
-
-                /* write all rows to column writer */
-                STATUS ( 3, "writing cell data to '%s'", ColumnWriterFullSpec ( self -> cw, ctx ) );
-                for ( i = 0; i < self -> num_immed; ++ i )
-                {
-                    /* write out row */
-                    ON_FAIL ( ColumnWriterWrite ( self -> cw, ctx, self -> elem_bits, & self -> u . data [ i ] . val . imm, 0, 1 ) )
-                        break;
-                }
-                for ( ; ! FAILED () && i < self -> num_items; ++ i )
-                {
-                    /* write out row */
-                    base = self -> u . data [ i ] . val . ptr;
-                    if ( base == NULL )
-                        ColumnWriterWrite ( self -> cw, ctx, self -> elem_bits, "", 0, 0 );
-                    else
-                        ColumnWriterWrite ( self -> cw, ctx, self -> elem_bits, & base [ 1 ], 0, base [ 0 ] );
-                }
-            }
-
-            /* drop the mem-bank */
-            MemBankRelease ( self -> mbank, ctx );
-            self -> mbank = NULL;
-
-            /* forget about map */
-            self -> u . data = NULL;
-            self -> cur_item = self -> num_items = self -> num_immed = 0;
-            self -> elem_bits = 0;
-        }
-    }
-}
-
-static
-void BufferedPairColWriterWriteUnmapped ( BufferedPairColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    size_t i, j, row_bytes;
-    const size_t pg_size = 256 * 1024;
-
-    /* detect first write */
-    if ( self -> u . data == NULL )
-    {
-        /* get ids, ord and content length from table */
-        assert ( self -> idx == NULL );
-        ON_FAIL ( self -> u . ids = RowSetIteratorGetSourceIds ( self -> tbl -> rsi, ctx, & self -> ord, & self -> num_items ) )
-        {
-            ANNOTATE ( "failed to get old_id, ord maps for column '%s'", ColumnWriterFullSpec ( self -> cw, ctx ) );
-            return;
-        }
-
-        /* require elem_bits to be constant for column */
-        self -> elem_bits = elem_bits;
-
-        /* OPTIMIZATION:
-           IFF elem_bits <= 64 and row_len == 1, store in union
-           otherwise, use membank. This requires that if row_len
-           ever changes, we have to recover. */
-        if ( elem_bits > 64 || row_len != 1 )
-        {
-	    rc_t rc=KBTreeMakeUpdate(&self->vocab_key2id, NULL, 100*1024*1024,
-                              false, kbtOpaqueKey,
-                              1, 1024, sizeof ( uint32_t ),
-                              NULL
-                              );
-	    if(rc != 0) self->vocab_key2id = NULL;
-	    self->vocab_cnt=0;
-            /* create a memory bank */
-            /* TBD - used configured page size rather than 256K */
-            ON_FAIL ( self -> mbank = MemBankMakePaged ( ctx, -1L, pg_size ) )
-               return;
-        }
-        /* initialize min/max */
-        self -> min_row_len = self -> max_row_len = row_len;
-    }
-
-    /* elem_bits should be constant */
-    assert ( self -> elem_bits == elem_bits );
-
-    /* handle optimized case */
-    if ( self -> mbank == NULL )
-    {
-        /* first, detect a change */
-        if ( row_len == 1 )
-        {
-            /* continue on optimized case */
-            row_bytes = ( ( size_t ) elem_bits + 7 ) >> 3;
-            if ( boff != 0 )
-            {
-                bitcpy ( & self -> u . ids [ self -> cur_item ],
-                    0, data, boff, ( bitsz_t ) elem_bits * row_len );
-            }
-            else
-            {
-                memcpy ( & self -> u . ids [ self -> cur_item ], data, row_bytes );
-            }
-
-            /* record another immediate row */
-            ++ self -> num_immed;
-
-            /* detect last row */
-            if ( ++ self -> cur_item < self -> num_items )
-                return;
-
-            /* write all rows to column writer */
-            STATUS ( 3, "writing cell data to '%s'", ColumnWriterFullSpec ( self -> cw, ctx ) );
-            for ( i = 0; i < self -> num_items; ++ i )
-            {
-                /* map to new order */
-                j = self -> ord [ i ];
-
-                /* write out row */
-                ON_FAIL ( ColumnWriterWrite ( self -> cw, ctx, self -> elem_bits, & self -> u . ids [ j ], 0, 1 ) )
-                    break;
-            }
-
-            /* forget about map */
-            self -> u . ids = NULL;
-            self -> ord = NULL;
-            self -> cur_item = self -> num_items = self -> num_immed = 0;
-            self -> elem_bits = 0;
-
-            return;
-        }
-
-        /* need to recover */
-	{
-	    rc_t rc=KBTreeMakeUpdate(&self->vocab_key2id, NULL, 100*1024*1024,
-                              false, kbtOpaqueKey,
-                              1, 1024, sizeof ( uint32_t ),
-                              NULL
-                              );
-	    if(rc != 0) self->vocab_key2id = NULL;
-	    self->vocab_cnt=0;
-            /* create a memory bank */
-            /* create a memory bank */
-            /* TBD - used configured page size rather than 256K */
-            ON_FAIL ( self -> mbank = MemBankMakePaged ( ctx, -1L, pg_size ) )
-               return;
-	}
-    }
-
-    /* update min/max row-len */
-    if ( row_len < self -> min_row_len )
-        self -> min_row_len = row_len;
-    else if ( row_len > self -> max_row_len )
-        self -> max_row_len = row_len;
-
-    /* handle zero-length rows specially */
-    if ( row_len == 0 ){
-        self -> u . ids [ self -> cur_item ] = 0;
-    } else {
-    	uint32_t *base = NULL; 
-        row_bytes = ( ( size_t ) elem_bits * row_len + 7 ) >> 3;
-	if(self -> vocab_key2id){
-		rc_t rc;
-		bool wasInserted;
-		uint64_t tmp_id=self -> vocab_cnt;
-		if( self -> vocab_cnt < sizeof(self -> vocab_id2val)/sizeof(self -> vocab_id2val[0])){
-			rc = KBTreeEntry(self -> vocab_key2id, &tmp_id, &wasInserted, data, row_bytes);
-		} else {
-			rc = KBTreeFind (self -> vocab_key2id, &tmp_id, data, row_bytes);
-			if(rc == 0) wasInserted=false;
-		}
-		if(rc == 0){ /*** either entered or found **/
-			if(wasInserted){/** allocate and remember in vocabulary ***/
-				/* allocate space for the row */
-				TRY ( base = MemBankAlloc ( self -> mbank, ctx, row_bytes + sizeof row_len, false ) )
-				{
-				    /* copy it in */
-				    base[0] = row_len;
-				    if ( boff != 0 ) bitcpy ( & base [ 1 ], 0, data, boff, ( bitsz_t ) elem_bits * row_len );
-				    else memcpy ( & base [ 1 ], data, row_bytes );
-				    self -> vocab_id2val[self -> vocab_cnt++] = base; 
-				}
-			} else { /** get from vocabulary **/
-				assert(tmp_id < self -> vocab_cnt);
-				base = (uint32_t*)self -> vocab_id2val[tmp_id];
-			}
-		}
-		rc = 0;
-	}
-	if(base == NULL){
-		TRY ( base = MemBankAlloc ( self -> mbank, ctx, row_bytes + sizeof row_len, false ) )
-		{
-		    /* copy it in */
-		    base[0] = row_len;
-		    if ( boff != 0 )
-			bitcpy ( & base [ 1 ], 0, data, boff, ( bitsz_t ) elem_bits * row_len );
-		    else
-			memcpy ( & base [ 1 ], data, row_bytes );
-		}
-
-	}
-	/* remember base location in the map */
-	self -> u . ids [ self -> cur_item ] = ( int64_t ) ( size_t ) base;
-	/* remember the last input pointer */
-    }
-
-    if ( ! FAILED () )
-    {
-        /* detect last row */
-        if ( ++ self -> cur_item == self -> num_items )
-        {
-            /* write all rows to column writer */
-	    uint32_t *last_base=NULL;
-	    uint32_t   cnt=0;
-            STATUS ( 3, "writing cell data to '%s' num_items=%ld vocab_size=%d num_immed=%d", ColumnWriterFullSpec ( self -> cw, ctx ), self -> num_items, self ->vocab_cnt, self -> num_immed );
-            for ( i = 0; ! FAILED () && i < self -> num_items; ++ i )
-            {
-                /* map to new order */
-                j = self -> ord [ i ];
-                if ( j < self -> num_immed ){
-		    if(cnt > 0){ /*** flush accumulated count ***/
-			if(last_base==NULL) ColumnWriterWriteStatic(self->cw,ctx,self->elem_bits,           "",0,           0,cnt);
-			else		    ColumnWriterWriteStatic(self->cw,ctx,self->elem_bits,&last_base[1],0,last_base[0],cnt);
-			last_base=NULL;
-			cnt=0;
-		    }
-                    ColumnWriterWrite ( self -> cw, ctx, self -> elem_bits, & self -> u . ids [ j ], 0, 1 );
-                } else {
-                    /* accumulate repeated rows */
-                    void* ptr = (void*)(size_t)self->u.ids [ j ];
-		    if (cnt == 0){
-			cnt=1;
-			last_base = ptr;
-		    } else if (ptr == last_base){
-			cnt++;
-		    } else {
-			if(last_base==NULL) ColumnWriterWriteStatic(self->cw,ctx,self->elem_bits,           "",0,           0,cnt);
-			else		    ColumnWriterWriteStatic(self->cw,ctx,self->elem_bits,&last_base[1],0,last_base[0],cnt);
-			last_base = ptr;
-			cnt=1;
-		    }
-                }
-	   }
-	   if(cnt > 0){ /*** flush accumulated count ***/
-		if(last_base==NULL) ColumnWriterWriteStatic(self->cw,ctx,self->elem_bits,           "",0,           0,cnt);
-		else		    ColumnWriterWriteStatic(self->cw,ctx,self->elem_bits,&last_base[1],0,last_base[0],cnt);
-            }
-            /* drop the mem-bank */
-            MemBankRelease ( self -> mbank, ctx );
-            self -> mbank = NULL;
-
-            /* forget about map */
-            self -> u . ids = NULL;
-            self -> ord = NULL;
-            self -> cur_item = self -> num_items = self -> num_immed = 0;
-            self -> elem_bits = 0;
-
-            /* cleanup vocabulary */
-            if(self -> vocab_key2id ) {
-                KBTreeRelease  ( self -> vocab_key2id );
-                self -> vocab_key2id = 0;
-            }
-            self -> vocab_cnt = 0;
-
-        }
-    }
-}
-
-static
-void BufferedPairColWriterWriteStatic ( BufferedPairColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len, uint64_t count )
-{
-    FUNC_ENTRY ( ctx );
-    rc_t rc = RC ( rcExe, rcColumn, rcWriting, rcType, rcIncorrect );
-    INTERNAL_ERROR ( rc, "writing to a non-static column" );
-}
-
-
-static
-void BufferedPairColWriterCommit ( BufferedPairColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnWriterCommit ( self -> cw, ctx );
-}
-
-
-struct ColumnWriter_vt UnmappedBufferedPairColWriter_vt =
-{
-    BufferedPairColWriterWhack,
-    BufferedPairColWriterFullSpec,
-    BufferedPairColWriterPreCopy,
-    BufferedPairColWriterPostCopy,
-    BufferedPairColWriterWriteUnmapped,
-    BufferedPairColWriterWriteStatic,
-    BufferedPairColWriterCommit
-};
-
-
-struct ColumnWriter_vt MappedBufferedPairColWriter_vt =
-{
-    BufferedPairColWriterWhack,
-    BufferedPairColWriterFullSpec,
-    BufferedPairColWriterPreCopy,
-    BufferedPairColWriterPostCopy,
-    BufferedPairColWriterWriteMapped,
-    BufferedPairColWriterWriteStatic,
-    BufferedPairColWriterCommit
-};
-
-
-/*--------------------------------------------------------------------------
- * cSRATblPair
- *  interface to pairing of source and destination tables
- */
-
-/* MakeBufferedColumnWriter
- *  make a wrapper that buffers all rows written
- *  then sorts on flush
- */
-ColumnWriter *cSRATblPairMakeBufferedColumnWriter ( cSRATblPair *self,
-    const ctx_t *ctx, ColumnWriter *writer )
-{
-    FUNC_ENTRY ( ctx );
-
-    BufferedPairColWriter *buff;
-
-    TRY ( buff = MemAlloc ( ctx, sizeof * buff, true ) )
-    {
-        TRY ( ColumnWriterInit ( & buff -> dad, ctx, & UnmappedBufferedPairColWriter_vt, false ) )
-        {
-            /* duplicate our friend */
-            TRY ( buff -> cw = ColumnWriterDuplicate ( writer, ctx ) )
-            {
-                /* borrowed ( weak ) reference
-                   cannot duplicate without creating cycle */
-                buff -> tbl = self;
-
-                return & buff -> dad;
-            }
-        }
-
-        MemFree ( ctx, buff, sizeof * buff );
-    }
-
-    return NULL;
-}
-
-/* MakeBufferedIdRemapColumnWriter
- *  make a wrapper that buffers all rows written
- *  maps all ids through index MapFile
- *  then sorts on flush
- */
-ColumnWriter *cSRATblPairMakeBufferedIdRemapColumnWriter ( cSRATblPair *self,
-    const ctx_t *ctx, ColumnWriter *writer, MapFile *idx, bool assign_ids )
-{
-    FUNC_ENTRY ( ctx );
-
-    BufferedPairColWriter *buff;
-
-    TRY ( buff = MemAlloc ( ctx, sizeof * buff, true ) )
-    {
-        TRY ( ColumnWriterInit ( & buff -> dad, ctx, & MappedBufferedPairColWriter_vt, idx != NULL ) )
-        {
-            /* duplicate our friend */
-            TRY ( buff -> cw = ColumnWriterDuplicate ( writer, ctx ) )
-            {
-                TRY ( buff -> idx = MapFileDuplicate ( idx, ctx ) )
-                {
-                    /* borrowed ( weak ) reference
-                       cannot duplicate without creating cycle */
-                    buff -> tbl = self;
-
-                    /* preserve boolean in one of Dad's align bytes */
-                    buff -> dad . align [ 0 ] = assign_ids;
-
-                    return & buff -> dad;
-                }
-
-                ColumnWriterRelease ( writer, ctx );
-            }
-        }
-
-        MemFree ( ctx, buff, sizeof * buff );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/buff-writer.h b/tools/sra-sort/buff-writer.h
deleted file mode 100644
index 261788a..0000000
--- a/tools/sra-sort/buff-writer.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_buff_writer_
-#define _h_sra_sort_buff_writer_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct MapFile;
-struct cSRATblPair;
-struct ColumnWriter;
-
-
-/*--------------------------------------------------------------------------
- * cSRATblPair
- *  interface to pairing of source and destination tables
- */
-
-/* MakeBufferedColumnWriter
- *  make a wrapper that buffers all rows written
- *  then sorts on flush
- */
-struct ColumnWriter *cSRATblPairMakeBufferedColumnWriter ( struct cSRATblPair *self,
-    const ctx_t *ctx, struct ColumnWriter *writer );
-
-/* MakeBufferedIdRemapColumnWriter
- *  make a wrapper that buffers all rows written
- *  maps all ids through index MapFile
- *  then sorts on flush
- */
-struct ColumnWriter *cSRATblPairMakeBufferedIdRemapColumnWriter ( struct cSRATblPair *self,
-    const ctx_t *ctx, struct ColumnWriter *writer, struct MapFile *idx, bool assign_ids );
-
-
-#endif /* _h_sra_sort_buff_writer_ */
diff --git a/tools/sra-sort/caps.c b/tools/sra-sort/caps.c
deleted file mode 100644
index 9becbb1..0000000
--- a/tools/sra-sort/caps.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "caps.h"
-#include "ctx.h"
-#include "mem.h"
-#include "except.h"
-
-#include <vdb/manager.h>
-#include <kdb/manager.h>
-#include <kfg/config.h>
-
-#include <string.h>
-
-FILE_ENTRY ( caps );
-
-/*--------------------------------------------------------------------------
- * Caps
- *  a very watered down version of vdb-3 capabilities
- */
-
-
-/* Init
- *  initialize a local block from another
- */
-void CapsInit ( Caps *caps, const ctx_t *ctx )
-{
-    if ( caps != NULL )
-    {
-        memset ( caps, 0, sizeof * caps );
-        if ( ctx != NULL && ctx -> caps != NULL )
-        {
-            const Caps *orig = ctx -> caps;
-            FUNC_ENTRY ( ctx );
-            TRY ( caps -> mem = MemBankDuplicate ( orig -> mem, ctx ) )
-            {
-                rc_t rc = KConfigAddRef ( caps -> cfg = orig -> cfg );
-                if ( rc != 0 )
-                {
-                    caps -> cfg = NULL;
-                    ERROR ( rc, "failed to duplicate reference to KConfig" );
-                }
-                else
-                {
-                    rc = KDBManagerAddRef ( caps -> kdb = orig -> kdb );
-                    if ( rc != 0 )
-                    {
-                        caps -> kdb = NULL;
-                        ERROR ( rc, "failed to duplicate reference to KDBManager" );
-                    }
-                    else
-                    {
-                        rc = VDBManagerAddRef ( caps -> vdb = orig -> vdb );
-                        if ( rc != 0 )
-                        {
-                            caps -> vdb = NULL;
-                            ERROR ( rc, "failed to duplicate reference to VDBManager" );
-                        }
-                        else
-                        {
-                            caps -> tool = orig -> tool;
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
-
-
-/* Whack
- *  release references
- */
-void CapsWhack ( Caps *self, const ctx_t *ctx )
-{
-    if ( self != NULL )
-    {
-        rc_t rc;
-        MemBank *mem;
-
-        self -> tool = NULL;
-
-        rc = VDBManagerRelease ( self -> vdb );
-        if ( rc != 0 )
-            ABORT ( rc, "failed to release reference to VDBManager" );
-        self -> vdb = NULL;
-
-        rc = KDBManagerRelease ( self -> kdb );
-        if ( rc != 0 )
-            ABORT ( rc, "failed to release reference to KDBManager" );
-        self -> kdb = NULL;
-
-        rc = KConfigRelease ( self -> cfg );
-        if ( rc != 0 )
-            ABORT ( rc, "failed to release reference to KConfig" );
-        self -> cfg = NULL;
-
-        mem = self -> mem;
-        MemBankRelease ( mem, ctx );
-        self -> mem = NULL;
-    }
-}
diff --git a/tools/sra-sort/caps.h b/tools/sra-sort/caps.h
deleted file mode 100644
index 7368556..0000000
--- a/tools/sra-sort/caps.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_caps_
-#define _h_sra_sort_caps_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct MemBank;
-struct KConfig;
-struct KDBManager;
-struct VDBManager;
-struct Tool;
-
-
-/*--------------------------------------------------------------------------
- * Caps
- *  a very watered-down version of vdb-3 capabilities
- */
-typedef struct Caps Caps;
-struct Caps
-{
-    struct MemBank *mem;
-    struct KConfig const *cfg;
-    struct KDBManager *kdb;
-    struct VDBManager *vdb;
-    struct Tool const *tool;
-};
-
-
-/* Init
- *  initialize a local block from another
- */
-void CapsInit ( Caps *caps, const ctx_t *ctx );
-
-
-/* Whack
- *  release references
- */
-void CapsWhack ( Caps *self, const ctx_t *ctx );
-
-#endif
diff --git a/tools/sra-sort/capture-first-half-aligned.c b/tools/sra-sort/capture-first-half-aligned.c
deleted file mode 100644
index 73cd829..0000000
--- a/tools/sra-sort/capture-first-half-aligned.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct CaptureFirstHalfAlignedColWriter CaptureFirstHalfAlignedColWriter;
-#define COLWRITER_IMPL CaptureFirstHalfAlignedColWriter
-
-#include "csra-pair.h"
-#include "col-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <klib/rc.h>
-
-FILE_ENTRY ( capture-first-half-aligned );
-
-
-/*--------------------------------------------------------------------------
- * CaptureFirstHalfAlignedColWriter
- */
-struct CaptureFirstHalfAlignedColWriter
-{
-    ColumnWriter dad;
-
-    int64_t row_id;
-    cSRAPair *csra;
-    ColumnWriter *writer;
-};
-
-static
-void CaptureFirstHalfAlignedColWriterWhack ( CaptureFirstHalfAlignedColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnWriterRelease ( self -> writer, ctx );
-    self -> csra = NULL;
-    self -> writer = NULL;
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-const char *CaptureFirstHalfAlignedColWriterFullSpec ( const CaptureFirstHalfAlignedColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    return ColumnWriterFullSpec ( self -> writer, ctx );
-}
-
-static
-void CaptureFirstHalfAlignedColWriterPreCopy ( CaptureFirstHalfAlignedColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnWriterPreCopy ( self -> writer, ctx );
-}
-
-static
-void CaptureFirstHalfAlignedColWriterPostCopy ( CaptureFirstHalfAlignedColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnWriterPostCopy ( self -> writer, ctx );
-}
-
-static
-void CaptureFirstHalfAlignedColWriterWrite ( CaptureFirstHalfAlignedColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRAPair *csra = self -> csra;
-    if ( csra -> first_half_aligned_spot == 0 )
-    {
-        uint32_t i;
-        const int64_t *row = data;
-
-        for ( i = 0; i < row_len; ++ i )
-        {
-            if ( row [ i ] == 0 )
-            {
-                csra -> first_half_aligned_spot = self -> row_id;
-                break;
-            }
-        }
-    }
-
-    TRY ( ColumnWriterWrite ( self -> writer, ctx, elem_bits, data, boff, row_len ) )
-    {
-        ++ self -> row_id;
-    }
-}
-
-static
-void CaptureFirstHalfAlignedColWriterWriteStatic ( CaptureFirstHalfAlignedColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len, uint64_t count )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRAPair *csra = self -> csra;
-    if ( csra -> first_half_aligned_spot == 0 )
-    {
-        uint32_t i;
-        const int64_t *row = data;
-
-        for ( i = 0; i < row_len; ++ i )
-        {
-            if ( row [ i ] == 0 )
-            {
-                csra -> first_half_aligned_spot = self -> row_id;
-                break;
-            }
-        }
-    }
-
-    TRY ( ColumnWriterWriteStatic ( self -> writer, ctx, elem_bits, data, boff, row_len, count ) )
-    {
-        self -> row_id += count;
-    }
-}
-
-static
-void CaptureFirstHalfAlignedColWriterCommit ( CaptureFirstHalfAlignedColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnWriterCommit ( self -> writer, ctx );
-}
-
-static ColumnWriter_vt CaptureFirstHalfAlignedColWriter_vt =
-{
-    CaptureFirstHalfAlignedColWriterWhack,
-    CaptureFirstHalfAlignedColWriterFullSpec,
-    CaptureFirstHalfAlignedColWriterPreCopy,
-    CaptureFirstHalfAlignedColWriterPostCopy,
-    CaptureFirstHalfAlignedColWriterWrite,
-    CaptureFirstHalfAlignedColWriterWriteStatic,
-    CaptureFirstHalfAlignedColWriterCommit
-};
-
-/*--------------------------------------------------------------------------
- * cSRAPair
- */
-
-/* MakeFirstHalfAlignedRowIdCaptureWriter
- *  a simple monitor on SEQUENCE.PRIMARY_ALIGNMENT_ID looking for
- *  half-aligned spots and capturing the first occurrence.
- */
-ColumnWriter *cSRAPairMakeFirstHalfAlignedRowIdCaptureWriter ( cSRAPair *self,
-    const ctx_t *ctx, ColumnWriter *writer )
-{
-    FUNC_ENTRY ( ctx );
-
-    CaptureFirstHalfAlignedColWriter *mon;
-
-    TRY ( mon = MemAlloc ( ctx, sizeof * mon, false ) )
-    {
-        TRY ( ColumnWriterInit ( & mon -> dad, ctx, & CaptureFirstHalfAlignedColWriter_vt, false ) )
-        {
-            mon -> row_id = 1;
-            mon -> csra = self;
-            TRY ( mon -> writer = ColumnWriterDuplicate ( writer, ctx ) )
-            {
-                return & mon -> dad;
-            }
-        }
-
-        MemFree ( ctx, mon, sizeof * mon );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/col-pair.c b/tools/sra-sort/col-pair.c
deleted file mode 100644
index 11e7779..0000000
--- a/tools/sra-sort/col-pair.c
+++ /dev/null
@@ -1,816 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct SimpleColumnReader SimpleColumnReader;
-#define COLREADER_IMPL SimpleColumnReader
-
-typedef struct SimpleColumnWriter SimpleColumnWriter;
-#define COLWRITER_IMPL SimpleColumnWriter
-
-#include "col-pair.h"
-#include "tbl-pair.h"
-#include "row-set.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-
-#include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
-#include <kapp/main.h>
-#include <kfs/defs.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-FILE_ENTRY ( col-pair );
-
-
-/*--------------------------------------------------------------------------
- * SimpleColumnReader
- *  implementation of ColumnReader based upon VCursor direct read
- */
-struct SimpleColumnReader
-{
-    ColumnReader dad;
-
-    const VCursor *curs;
-    uint32_t idx;
-
-    uint32_t full_spec_size;
-    char full_spec [ 1 ];
-};
-
-
-/* Whack
- */
-static
-void SimpleColumnReaderWhack ( SimpleColumnReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    size_t bytes = sizeof * self + self -> full_spec_size;
-
-    rc = VCursorRelease ( self -> curs );
-    if ( rc != 0 )
-        WARN ( "VCursorRelease failed on '%s'", self -> full_spec );
-
-    self -> curs = NULL;
-    MemFree ( ctx, self, bytes );
-}
-
-/* FullSpec
- */
-static
-const char *SimpleColumnReaderFullSpec ( const SimpleColumnReader *self, const ctx_t *ctx )
-{
-    return self -> full_spec;
-}
-
-
-/* IdRange
- *  returns the number of ids available
- *  and optionally the first id
- */
-static
-uint64_t SimpleColumnReaderIdRange ( const SimpleColumnReader *self,
-    const ctx_t *ctx, int64_t *opt_first )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    uint64_t count;
-
-    rc = VCursorIdRange ( self -> curs, self -> idx, opt_first, & count );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VCursorIdRange failed for column '%s'", self -> full_spec );
-
-    return count;
-}
-
-
-/* DummyStub
- *  useful for pre/post-copy
- */
-static
-void SimpleColumnReaderDummyStub ( SimpleColumnReader *self, const ctx_t *ctx )
-{
-}
-
-
-/* Read
- *  read next row of data
- *  returns NULL if no rows are available
- */
-static
-const void *SimpleColumnReaderRead ( SimpleColumnReader *self, const ctx_t *ctx,
-    int64_t row_id, uint32_t *elem_bits, uint32_t *boff, uint32_t *row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const void *base;
-
-    rc = VCursorCellDataDirect ( self -> curs, row_id, self -> idx, elem_bits, & base, boff, row_len );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VCursorCellDataDirect ( %ld ) failed for column '%s'", row_id, self -> full_spec );
-
-    return base;
-}
-
-static ColumnReader_vt SimpleColumnReader_vt =
-{
-    SimpleColumnReaderWhack,
-    SimpleColumnReaderFullSpec,
-    SimpleColumnReaderIdRange,
-    SimpleColumnReaderDummyStub,
-    SimpleColumnReaderDummyStub,
-    SimpleColumnReaderRead
-};
-
-
-/*--------------------------------------------------------------------------
- * ColumnReader
- *  interface to read column in serial order
- */
-
-
-/* MakeColumnReader
- *  make simple column reader
- */
-ColumnReader *TablePairMakeColumnReader ( TablePair *self, const ctx_t *ctx,
-    const VCursor *opt_curs, const char *colspec, bool required )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const VCursor *curs;
-
-    if ( opt_curs != NULL )
-        rc = VCursorAddRef ( curs = opt_curs );
-    else
-        rc = VTableCreateCursorRead ( self -> stbl, & curs );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to create cursor on column 'src.%s.%s'", self -> full_spec, colspec );
-    else
-    {
-        uint32_t idx;
-        rc = VCursorAddColumn ( curs, & idx, colspec );
-        if ( rc != 0 && GetRCState ( rc ) != rcExists )
-        {
-            if ( required )
-                ERROR ( rc, "failed to add column 'src.%s.%s' to cursor", self -> full_spec, colspec );
-        }
-        else
-        {
-            rc = VCursorOpen ( curs );
-            if ( rc != 0 )
-            {
-                if ( required )
-                    ERROR ( rc, "failed to open cursor on column 'src.%s.%s'", self -> full_spec, colspec );
-            }
-            else
-            {
-                SimpleColumnReader *col;
-                size_t full_spec_size = self -> full_spec_size + string_size ( colspec ) + sizeof "src.." - 1;
-
-                TRY ( col = MemAlloc ( ctx, sizeof * col + full_spec_size, false ) )
-                {
-                    ColumnReaderInit ( & col -> dad, ctx, & SimpleColumnReader_vt );
-                    col -> curs = curs;
-                    col -> idx = idx;
-                    col -> full_spec_size = ( uint32_t ) full_spec_size;
-
-                    rc = string_printf ( col -> full_spec, full_spec_size + 1, NULL,
-                        "src.%s.%s", self -> full_spec, colspec );
-                    if ( rc == 0 )
-                        return & col -> dad;
-
-                    ABORT ( rc, "miscalculated string size" );
-                }
-                CATCH_ALL ()
-                {
-                    ANNOTATE ( "failed to allocate %zu bytes for SimpleColumnReader", sizeof * col + full_spec_size );
-                }
-            }
-        }
-
-        VCursorRelease ( curs );
-    }
-
-    return NULL;
-}
-
-
-/* Release
- *  releases reference
- */
-void ColumnReaderRelease ( const ColumnReader *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "ColumnReader" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release ColumnReader" );
-        }
-    }
-}
-
-/* Duplicate
- */
-ColumnReader *ColumnReaderDuplicate ( const ColumnReader *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "ColumnReader" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate ColumnReader" );
-            return NULL;
-        }
-    }
-
-    return ( ColumnReader* ) self;
-}
-
-
-/* Init
- */
-void ColumnReaderInit ( ColumnReader *self, const ctx_t *ctx, const ColumnReader_vt *vt )
-{
-    if ( self == NULL )
-    {
-        rc_t rc = RC ( rcExe, rcCursor, rcConstructing, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad ColumnReader" );
-    }
-    else
-    {
-        self -> vt = vt;
-        KRefcountInit ( & self -> refcount, 1, "ColumnReader", "init", "" );
-        self -> presorted = false;
-        memset ( self -> align, 0, sizeof self -> align );
-    }
-}
-
-
-/*--------------------------------------------------------------------------
- * SimpleColumnWriter
- *  implementation of ColumnWriter based upon VCursor
- */
-struct SimpleColumnWriter
-{
-    ColumnWriter dad;
-
-    VCursor *curs;
-    uint32_t idx;
-
-    uint32_t full_spec_size;
-    char full_spec [ 1 ];
-};
-
-static
-void SimpleColumnWriterWhack ( SimpleColumnWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = VCursorRelease ( self -> curs );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorRelease failed on column '%s'", self -> full_spec );
-
-    MemFree ( ctx, self, sizeof * self + self -> full_spec_size );
-}
-
-
-static
-const char *SimpleColumnWriterFullSpec ( const SimpleColumnWriter *self, const ctx_t *ctx )
-{
-    return self -> full_spec;
-}
-
-static
-void SimpleColumnWriterDummyStub ( SimpleColumnWriter *self, const ctx_t *ctx )
-{
-}
-
-static
-void SimpleColumnWriterWrite ( SimpleColumnWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = VCursorOpenRow ( self -> curs );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VCursorOpenRow failed on column '%s'", self -> full_spec );
-    else
-    {
-        rc = VCursorWrite ( self -> curs, self -> idx, elem_bits, data, boff, row_len );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "VCursorWrite failed for column '%s'", self -> full_spec );
-        else
-        {
-            rc = VCursorCommitRow ( self -> curs );
-            if ( rc != 0 )
-                SYSTEM_ERROR ( rc, "VCursorCommit failed for column '%s'", self -> full_spec );
-        }
-
-        rc = VCursorCloseRow ( self -> curs );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VCursorCloseRow failed on column '%s'", self -> full_spec );
-    }
-}
-
-static
-void SimpleColumnWriterWriteStatic ( SimpleColumnWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len, uint64_t count )
-{
-    FUNC_ENTRY ( ctx );
-
-    for ( ; ! FAILED () && count > 0; -- count )
-    {
-        rc_t rc = VCursorOpenRow ( self -> curs );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VCursorOpenRow failed on column '%s'", self -> full_spec );
-        else
-        {
-            rc = VCursorWrite ( self -> curs, self -> idx, elem_bits, data, boff, row_len );
-            if ( rc != 0 )
-                SYSTEM_ERROR ( rc, "VCursorWrite failed for column '%s'", self -> full_spec );
-            else
-            {
-                rc = VCursorCommitRow ( self -> curs );
-                if ( rc != 0 )
-                    SYSTEM_ERROR ( rc, "VCursorCommitRow failed for column '%s'", self -> full_spec );
-                else if ( count > 1 )
-                {
-                    /* setting it small since threshold is detected in CommitRow, but execused on CloseRow */
-                    uint64_t cnt = ( count < 0x20000000U ) ? count : 0x20000000U; 
-                    rc = VCursorRepeatRow ( self -> curs, cnt - 1 );
-                    if ( rc != 0 )
-                        SYSTEM_ERROR ( rc, "VCursorRepeatRow failed for column '%s'", self -> full_spec );
-                    else
-                        count -= cnt - 1;
-                }
-            }
-
-            rc = VCursorCloseRow ( self -> curs );
-            if ( rc != 0 )
-                INTERNAL_ERROR ( rc, "VCursorCloseRow failed on column '%s'", self -> full_spec );
-        }
-    }
-}
-
-static
-void SimpleColumnWriterCommit ( SimpleColumnWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = VCursorCommit ( self -> curs );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorCommit failed on column '%s'", self -> full_spec );
-    else
-    {
-        rc = VCursorRelease ( self -> curs );
-        if ( rc != 0 )
-            ERROR ( rc, "VCursorRelease failed on column '%s'", self -> full_spec );
-        else
-        {
-            self -> curs = NULL;
-        }
-    }
-}
-
-
-static ColumnWriter_vt SimpleColumnWriter_vt =
-{
-    SimpleColumnWriterWhack,
-    SimpleColumnWriterFullSpec,
-    SimpleColumnWriterDummyStub,
-    SimpleColumnWriterDummyStub,
-    SimpleColumnWriterWrite,
-    SimpleColumnWriterWriteStatic,
-    SimpleColumnWriterCommit
-};
-
-
-
-/*--------------------------------------------------------------------------
- * ColumnWriter
- *  interface to write column in serial order
- */
-
-
-/* MakeColumnWriter
- *  make simple column writer
- */
-ColumnWriter *TablePairMakeColumnWriter ( TablePair *self, const ctx_t *ctx,
-   VCursor *opt_curs, const char *colspec )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    VCursor *curs;
-
-    if ( opt_curs != NULL )
-        rc = VCursorAddRef ( curs = opt_curs );
-    else
-        rc = VTableCreateCursorWrite ( self -> dtbl, & curs, kcmInsert );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to create cursor on column 'dst.%s.%s'", self -> full_spec, colspec );
-    else
-    {
-        uint32_t idx;
-        rc = VCursorAddColumn ( curs, & idx, colspec );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to add column 'dst.%s.%s' to cursor", self -> full_spec, colspec );
-        else
-        {
-	    VCursorSuspendTriggers ( curs );
-            rc = VCursorOpen ( curs );
-            if ( rc != 0 )
-                ERROR ( rc, "failed to open cursor on column 'dst.%s.%s'", self -> full_spec, colspec );
-            {
-                SimpleColumnWriter *col;
-                size_t full_spec_size = self -> full_spec_size + string_size ( colspec ) + sizeof "dst.." - 1;
-
-                TRY ( col = MemAlloc ( ctx, sizeof * col + full_spec_size, false ) )
-                {
-                    ColumnWriterInit ( & col -> dad, ctx, & SimpleColumnWriter_vt, false );
-                    col -> curs = curs;
-                    col -> idx = idx;
-
-                    col -> full_spec_size = ( uint32_t ) full_spec_size;
-                    rc = string_printf ( col -> full_spec, full_spec_size + 1, NULL,
-                        "dst.%s.%s", self -> full_spec, colspec );
-                    if ( rc == 0 )
-                        return & col -> dad;
-
-                    ABORT ( rc, "miscalculated string size" );
-                }
-                CATCH_ALL ()
-                {
-                    ANNOTATE ( "failed to allocate %zu bytes for SimpleColumnWriter", sizeof * col + full_spec_size );
-                }
-            }
-        }
-
-        VCursorRelease ( curs );
-    }
-
-    return NULL;
-}
-
-
-/* Release
- *  releases reference
- */
-void ColumnWriterRelease ( ColumnWriter *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "ColumnWriter" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release ColumnWriter" );
-        }
-    }
-}
-
-/* Duplicate
- */
-ColumnWriter *ColumnWriterDuplicate ( const ColumnWriter *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "ColumnWriter" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate ColumnWriter" );
-            return NULL;
-        }
-    }
-
-    return ( ColumnWriter* ) self;
-}
-
-
-/* Init
- */
-void ColumnWriterInit ( ColumnWriter *self, const ctx_t *ctx, const ColumnWriter_vt *vt, bool mapped )
-{
-    if ( self == NULL )
-    {
-        rc_t rc = RC ( rcExe, rcCursor, rcConstructing, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad ColumnWriter" );
-    }
-    else
-    {
-        self -> vt = vt;
-        KRefcountInit ( & self -> refcount, 1, "ColumnWriter", "init", "" );
-        self -> mapped = mapped;
-        memset ( self -> align, 0, sizeof self -> align );
-    }
-}
-
-
-
-/*--------------------------------------------------------------------------
- * ColumnPair
- *  interface to pairing of source and destination columns
- */
-
-/* Whack
- */
-static
-void ColumnPairWhack ( ColumnPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnReaderRelease ( self -> reader, ctx );
-    ColumnWriterRelease ( self -> writer, ctx );
-    MemFree ( ctx, self, sizeof * self + self -> full_spec_size );
-}
-
-/* MakeColumnPair
- *  make a simple ColumnPair
- *  takes an optional source VCursor
- *  and a colspec
- */
-ColumnPair *TablePairMakeColumnPair ( TablePair *self, const ctx_t *ctx,
-    ColumnReader *reader, ColumnWriter *writer, const char *colspec, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col;
-    size_t full_spec_size = self -> full_spec_size + string_size ( colspec ) + 1;
-
-    TRY ( col = MemAlloc ( ctx, sizeof * col + full_spec_size, false ) )
-    {
-        TRY ( col -> reader = ColumnReaderDuplicate ( reader, ctx ) )
-        {
-            TRY ( col -> writer = ColumnWriterDuplicate ( writer, ctx ) )
-            {
-                rc_t rc;
-
-                col -> full_spec_size = full_spec_size;
-                KRefcountInit ( & col -> refcount, 1, "ColumnPair", "make", colspec );
-                col -> is_static = false;
-                col -> is_mapped = writer -> mapped;
-                col -> presorted = reader -> presorted;
-                col -> large = large;
-
-                rc = string_printf ( col -> full_spec, full_spec_size + 1, NULL,
-                    "%s.%s", self -> full_spec, colspec );
-                if ( rc == 0 )
-                {
-                    col -> colspec = & col -> full_spec [ self -> full_spec_size + 1 ];
-                    return col;
-                }
-
-                ABORT ( rc, "miscalculated string size" );
-            }
-
-            ColumnReaderRelease ( col -> reader, ctx );
-        }
-
-        MemFree ( ctx, col, sizeof * col + full_spec_size );
-    }
-
-    return NULL;
-}
-
-ColumnPair *TablePairMakeStaticColumnPair ( TablePair *self, const ctx_t *ctx,
-    ColumnReader *reader, ColumnWriter *writer, const char *colspec )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col;
-
-    TRY ( col = TablePairMakeColumnPair ( self, ctx, reader, writer, colspec, false ) )
-    {
-        if ( col != NULL )
-            col -> is_static = true;
-    }
-
-    return col;
-}
-
-
-/* Release
- *  called by table at end of copy
- */
-void ColumnPairRelease ( ColumnPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "ColumnPair" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ColumnPairWhack ( self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcColumn, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release ColumnPair" );
-        }
-    }
-}
-
-/* Duplicate
- */
-ColumnPair *ColumnPairDuplicate ( const ColumnPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "ColumnPair" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcColumn, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate ColumnPair" );
-            return NULL;
-        }
-    }
-
-    return ( ColumnPair* ) self;
-}
-
-
-/* PreCopy
- * PostCopy
- */
-void ColumnPairPreCopy ( const ColumnPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnReaderPreCopy ( self -> reader, ctx );
-    ColumnWriterPreCopy ( self -> writer, ctx );
-}
-
-void ColumnPairPostCopy ( const ColumnPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnReaderPostCopy ( self -> reader, ctx );
-    ColumnWriterPostCopy ( self -> writer, ctx );
-}
-
-
-/* Copy
- *  copy from source to destination column
- */
-void ColumnPairCopy ( ColumnPair *self, const ctx_t *ctx, RowSet *rs )
-{
-    FUNC_ENTRY ( ctx );
-
-    STATUS ( 3, "copying column '%s'", self -> full_spec );
-
-    TRY ( RowSetReset ( rs, ctx, self -> is_static ) )
-    {
-        TRY ( ColumnPairPreCopy ( self, ctx ) )
-        {
-            while ( ! FAILED () )
-            {
-                rc_t rc;
-                size_t i, count;
-                int64_t row_ids [ 8 * 1024 ];
-
-                ON_FAIL ( count = RowSetNext ( rs, ctx, row_ids, sizeof row_ids / sizeof row_ids [ 0 ] ) )
-                    break;
-                if ( count == 0 )
-                    break;
-
-                rc = Quitting ();
-                if ( rc != 0 )
-                {
-                    INFO_ERROR ( rc, "quitting" );
-                    break;
-                }
-
-                for ( i = 0; ! FAILED () && i < count; ++ i )
-                {
-                    const void *base;
-                    uint32_t elem_bits, boff, row_len;
-                    
-                    TRY ( base = ColumnReaderRead ( self -> reader, ctx, row_ids [ i ], & elem_bits, & boff, & row_len ) )
-                    {
-                        ColumnWriterWrite ( self -> writer, ctx, elem_bits, base, boff, row_len );
-                    }
-                }
-            }
-
-            ColumnPairPostCopy ( self, ctx );
-        }
-    }
-}
-
-
-/* CopyStatic
- *  copy static column from source to destination
- */
-void ColumnPairCopyStatic ( ColumnPair *self, const ctx_t *ctx, int64_t first_id, uint64_t count )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const void *base;
-    uint32_t elem_bits, boff, row_len;
-
-    if ( ! self -> is_static )
-    {
-        rc = RC ( rcExe, rcColumn, rcCopying, rcType, rcIncorrect );
-        INTERNAL_ERROR ( rc, "'%s' IS NOT A STATIC COLUMN", self -> full_spec );
-        return;
-    }
-
-    STATUS ( 3, "copying static column '%s'", self -> full_spec );
-                    
-    TRY ( base = ColumnReaderRead ( self -> reader, ctx, first_id, & elem_bits, & boff, & row_len ) )
-    {
-        ColumnWriterWriteStatic ( self -> writer, ctx, elem_bits, base, boff, row_len, count );
-    }
-}
diff --git a/tools/sra-sort/col-pair.h b/tools/sra-sort/col-pair.h
deleted file mode 100644
index b14df08..0000000
--- a/tools/sra-sort/col-pair.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_col_pair_
-#define _h_sra_sort_col_pair_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VCursor;
-struct TablePair;
-struct RowSet;
-
-
-/*--------------------------------------------------------------------------
- * ColumnReader
- *  interface to read column in random order
- */
-typedef struct ColumnReader_vt ColumnReader_vt;
-
-typedef struct ColumnReader ColumnReader;
-struct ColumnReader
-{
-    const ColumnReader_vt *vt;
-    KRefcount refcount;
-    bool presorted;
-    uint8_t align [ 3 ];
-};
-
-#ifndef COLREADER_IMPL
-#define COLREADER_IMPL ColumnReader
-#endif
-
-struct ColumnReader_vt
-{
-    /* called by Release */
-    void ( * whack ) ( COLREADER_IMPL *self, const ctx_t *ctx );
-
-    /* full spec */
-    const char* ( * full_spec ) ( const COLREADER_IMPL *self, const ctx_t *ctx );
-
-    /* id-range */
-    uint64_t ( * id_range ) ( const COLREADER_IMPL *self, const ctx_t *ctx, int64_t *opt_first );
-
-    /* pre-post copy handlers */
-    void ( * pre_copy ) ( COLREADER_IMPL *self, const ctx_t *ctx );
-    void ( * post_copy ) ( COLREADER_IMPL *self, const ctx_t *ctx );
-
-    /* retrieve next source row */
-    const void* ( * read ) ( COLREADER_IMPL *self, const ctx_t *ctx,
-        int64_t row_id, uint32_t *elem_bits, uint32_t *boff, uint32_t *row_len );
-};
-
-
-/* MakeColumnReader
- *  make simple column reader
- */
-ColumnReader *TablePairMakeColumnReader ( struct TablePair *self, const ctx_t *ctx,
-    struct VCursor const *opt_curs, const char *colspec, bool required );
-
-
-/* Release
- *  releases reference
- */
-void ColumnReaderRelease ( const ColumnReader *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-ColumnReader *ColumnReaderDuplicate ( const ColumnReader *self, const ctx_t *ctx );
-
-
-/* FullSpec
- *  returns 'src.<tbl>.<colspec>'
- */
-#define ColumnReaderFullSpec( self, ctx ) \
-    POLY_DISPATCH_PTR ( full_spec, self, const COLREADER_IMPL, ctx )
-
-
-/* IdRange
- *  returns the number of ids available
- *  and optionally the first id
- */
-#define ColumnReaderIdRange( self, ctx, opt_first ) \
-    POLY_DISPATCH_INT ( id_range, self, const COLREADER_IMPL, ctx, opt_first )
-
-
-/* PreCopy
- * PostCopy
- *  handlers for any operations
- */
-#define ColumnReaderPreCopy( self, ctx ) \
-    POLY_DISPATCH_VOID ( pre_copy, self, COLREADER_IMPL, ctx )
-#define ColumnReaderPostCopy( self, ctx ) \
-    POLY_DISPATCH_VOID ( post_copy, self, COLREADER_IMPL, ctx )
-
-
-/* Read
- *  read next row of data
- *  returns NULL if no rows are available
- */
-#define ColumnReaderRead( self, ctx, row_id, elem_bits, boff, row_len )  \
-    POLY_DISPATCH_PTR ( read, self, COLREADER_IMPL, ctx, row_id, elem_bits, boff, row_len )
-
-
-/* Init
- */
-void ColumnReaderInit ( ColumnReader *self, const ctx_t *ctx, const ColumnReader_vt *vt );
-
-/* Destroy
- */
-#define ColumnReaderDestroy( self, ctx ) \
-    ( ( void ) 0 )
-
-
-/*--------------------------------------------------------------------------
- * ColumnWriter
- *  interface to write column in serial order
- */
-typedef struct ColumnWriter_vt ColumnWriter_vt;
-
-typedef struct ColumnWriter ColumnWriter;
-struct ColumnWriter
-{
-    const ColumnWriter_vt *vt;
-    KRefcount refcount;
-    bool mapped;
-    uint8_t align [ 3 ];
-};
-
-#ifndef COLWRITER_IMPL
-#define COLWRITER_IMPL ColumnWriter
-#endif
-
-struct ColumnWriter_vt
-{
-    /* called by Release */
-    void ( * whack ) ( COLWRITER_IMPL *self, const ctx_t *ctx );
-
-    /* full spec */
-    const char* ( * full_spec ) ( const COLWRITER_IMPL *self, const ctx_t *ctx );
-
-    /* pre-post copy handlers */
-    void ( * pre_copy ) ( COLWRITER_IMPL *self, const ctx_t *ctx );
-    void ( * post_copy ) ( COLWRITER_IMPL *self, const ctx_t *ctx );
-
-    /* write row to destination */
-    void ( * write ) ( COLWRITER_IMPL *self, const ctx_t *ctx,
-        uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len );
-    void ( * write_static ) ( COLWRITER_IMPL *self, const ctx_t *ctx,
-        uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len, uint64_t count );
-
-    /* commit all writes */
-    void ( * commit ) ( COLWRITER_IMPL *self, const ctx_t *ctx );
-};
-
-
-/* MakeColumnWriter
- *  make simple column writer
- */
-ColumnWriter *TablePairMakeColumnWriter ( struct TablePair *self, const ctx_t *ctx,
-    struct VCursor *opt_curs, const char *colspec );
-
-
-/* Release
- *  releases reference
- */
-void ColumnWriterRelease ( ColumnWriter *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-ColumnWriter *ColumnWriterDuplicate ( const ColumnWriter *self, const ctx_t *ctx );
-
-
-/* FullSpec
- *  returns 'dst.<tbl>.<colspec>'
- */
-#define ColumnWriterFullSpec( self, ctx ) \
-    POLY_DISPATCH_PTR ( full_spec, self, const COLWRITER_IMPL, ctx )
-
-
-/* PreCopy
- * PostCopy
- *  handlers for any operations
- */
-#define ColumnWriterPreCopy( self, ctx ) \
-    POLY_DISPATCH_VOID ( pre_copy, self, COLWRITER_IMPL, ctx )
-#define ColumnWriterPostCopy( self, ctx ) \
-    POLY_DISPATCH_VOID ( post_copy, self, COLWRITER_IMPL, ctx )
-
-
-/* Write
- *  write a row of data
- */
-#define ColumnWriterWrite( self, ctx, elem_bits, data, boff, row_len ) \
-    POLY_DISPATCH_VOID ( write, self, COLWRITER_IMPL, ctx, elem_bits, data, boff, row_len )
-
-/* WriteStatic
- *  writes a repeated row
- */
-#define ColumnWriterWriteStatic( self, ctx, elem_bits, data, boff, row_len, count ) \
-    POLY_DISPATCH_VOID ( write_static, self, COLWRITER_IMPL, ctx, elem_bits, data, boff, row_len, count )
-
-
-/* Commit
- *  commits all writes
- */
-#define ColumnWriterCommit( self, ctx ) \
-    POLY_DISPATCH_VOID ( commit, self, COLWRITER_IMPL, ctx )
-
-
-/* Init
- */
-void ColumnWriterInit ( ColumnWriter *self, const ctx_t *ctx,
-    const ColumnWriter_vt *vt, bool mapped );
-
-/* Destroy
- */
-#define ColumnWriterDestroy( self, ctx ) \
-    ( ( void ) 0 )
-
-
-/*--------------------------------------------------------------------------
- * ColumnPair
- *  interface to pairing of source and destination columns
- */
-typedef struct ColumnPair ColumnPair;
-struct ColumnPair
-{
-    ColumnReader *reader;
-    ColumnWriter *writer;
-
-    const char *colspec;
-
-    size_t full_spec_size;
-
-    KRefcount refcount;
-
-    bool is_static;
-
-    bool is_mapped;
-
-    bool presorted;
-
-    bool large;
-
-    char full_spec [ 1 ];
-};
-
-
-/* MakeColumnPair
- *  make a simple ColumnPair
- *  takes an optional source VCursor
- *  and a colspec
- */
-ColumnPair *TablePairMakeColumnPair ( struct TablePair *self, const ctx_t *ctx,
-    ColumnReader *reader, ColumnWriter *writer, const char *colspec, bool large );
-
-ColumnPair *TablePairMakeStaticColumnPair ( struct TablePair *self, const ctx_t *ctx,
-    ColumnReader *reader, ColumnWriter *writer, const char *colspec );
-
-
-/* Release
- *  called by table at end of copy
- */
-void ColumnPairRelease ( ColumnPair *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-ColumnPair *ColumnPairDuplicate ( const ColumnPair *self, const ctx_t *ctx );
-
-
-/* PreCopy
- * PostCopy
- */
-void ColumnPairPreCopy ( const ColumnPair *self, const ctx_t *ctx );
-void ColumnPairPostCopy ( const ColumnPair *self, const ctx_t *ctx );
-
-
-/* Copy
- *  copy from source to destination column
- */
-void ColumnPairCopy ( ColumnPair *self, const ctx_t *ctx, struct RowSet *rs );
-
-
-/* CopyStatic
- *  copy static column from source to destination
- */
-void ColumnPairCopyStatic ( ColumnPair *self, const ctx_t *ctx, int64_t first_id, uint64_t count );
-
-
-#endif /* _h_sra_sort_col_pair_ */
diff --git a/tools/sra-sort/csra-pair.c b/tools/sra-sort/csra-pair.c
deleted file mode 100644
index 579863c..0000000
--- a/tools/sra-sort/csra-pair.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-struct cSRAPair;
-#define DBPAIR_IMPL struct cSRAPair
-
-#include "csra-pair.h"
-#include "csra-tbl.h"
-#include "meta-pair.h"
-#include "dir-pair.h"
-#include "sra-sort.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "map-file.h"
-
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-
-FILE_ENTRY ( csra-pair );
-
-
-/*--------------------------------------------------------------------------
- * cSRAPair
- */
-
-static
-void cSRAPairWhack ( cSRAPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* destroy me */
-    MapFileRelease ( self -> seq_idx, ctx );
-    MapFileRelease ( self -> sa_idx, ctx );
-    MapFileRelease ( self -> pa_idx, ctx );
-
-    DbPairDestroy ( & self -> dad, ctx );
-
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-TablePair *cSRAPairMakeTablePair ( cSRAPair *self, const ctx_t *ctx,
-     const char *member, const char *name, uint32_t align_idx, bool required, bool reorder,
-     TablePair* ( * make ) ( DbPair *self, const ctx_t *ctx, const VTable *src, VTable *dst, const char *name, bool reorder ) )
-{
-    FUNC_ENTRY ( ctx );
-
-    TablePair *tbl;
-
-    if ( name == NULL )
-        name = member;
-
-    TRY ( tbl = DbPairMakeTablePair ( & self -> dad, ctx, member, name, required, reorder, make ) )
-    {
-        if ( tbl != NULL )
-        {
-            TRY ( DbPairAddTablePair ( & self -> dad, ctx, tbl ) )
-            {
-                ( ( cSRATblPair* ) tbl ) -> align_idx = align_idx;
-                return tbl;
-            }
-
-            TablePairRelease ( tbl, ctx );
-        }
-    }
-
-    return NULL;
-}
-
-static
-void cSRAPairExplode ( cSRAPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    TablePair *tbl;
-
-    TRY ( tbl = cSRAPairMakeTablePair ( self, ctx, "REFERENCE", NULL, 0, true, false, cSRATblPairMakeRef ) )
-    {
-        self -> reference = tbl;
-
-        TRY ( tbl = cSRAPairMakeTablePair ( self, ctx, "PRIMARY_ALIGNMENT", NULL, 1, true, true, cSRATblPairMakeAlign ) )
-        {
-            self -> prim_align = tbl;
-
-            TRY ( tbl = cSRAPairMakeTablePair ( self, ctx, "SECONDARY_ALIGNMENT", NULL, 2, false, true, cSRATblPairMakeAlign ) )
-            {
-                self -> sec_align = tbl;
-
-                TRY ( tbl = cSRAPairMakeTablePair ( self, ctx, NULL, "EVIDENCE_ALIGNMENT", 3, false, false, cSRATblPairMakeAlign ) )
-                {
-                    self -> evidence_align = tbl;
-
-                    TRY ( tbl = cSRAPairMakeTablePair ( self, ctx, NULL, "SEQUENCE", 0, false, true, cSRATblPairMakeSeq ) )
-                    {
-                        DirPair *dir;
-
-                        self -> sequence = tbl;
-
-                        TRY ( dir = DbPairMakeDirPair ( & self -> dad, ctx, "extra", false, DbPairMakeStdDirPair ) )
-                        {
-                            ON_FAIL ( DbPairAddDirPair ( & self -> dad, ctx, dir ) )
-                                DirPairRelease ( dir, ctx );
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
-
-static
-const char *cSRAPairGetTblMember ( const cSRAPair *self, const ctx_t *ctx, const VTable *src, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* special kludge for "SEQUENCE" table */
-    if ( strcmp ( name, "SEQUENCE" ) == 0 )
-    {
-        /* determine whether table has CMP_CSREAD */
-        rc_t rc;
-        const VCursor *curs;
-
-        STATUS ( 4, "determining member name of SEQUENCE table" );
-
-        rc = VTableCreateCursorRead ( src, & curs );
-        if ( rc != 0 )
-            ERROR ( rc, "VTableOpenCursorRead failed on '%s.%s'", self -> dad . full_spec, name );
-        else
-        {
-            uint32_t idx;
-            rc = VCursorAddColumn ( curs, & idx, "CMP_CSREAD" );
-            if ( rc == 0 )
-            {
-                rc = VCursorOpen ( curs );
-                if ( rc == 0 )
-                    name = "CS_SEQUENCE";
-            }
-
-            VCursorRelease ( curs );
-        }
-
-        STATUS ( 4, "SEQUENCE table member name determined to be '%s'", name );
-    }
-
-    return name;
-}
-
-static DbPair_vt cSRAPair_vt =
-{
-    cSRAPairWhack,
-    cSRAPairExplode,
-    cSRAPairGetTblMember
-};
-
-DbPair *cSRAPairMake ( const ctx_t *ctx,
-    const VDatabase *src, VDatabase *dst, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRAPair *db;
-
-    TRY ( db = MemAlloc ( ctx, sizeof * db, true ) )
-    {
-        TRY ( DbPairInit ( & db -> dad, ctx, & cSRAPair_vt, src, dst, name, NULL ) )
-        {
-            static const char *exclude_tbls [] =
-            {
-                "EVIDENCE_ALIGNMENT",
-                "PRIMARY_ALIGNMENT",
-                "REFERENCE",
-                "SECONDARY_ALIGNMENT",
-                "SEQUENCE"
-            };
-            db -> dad . exclude_tbls = exclude_tbls;
-
-            return & db -> dad;
-        }
-
-        MemFree ( ctx, db, sizeof * db );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/csra-pair.h b/tools/sra-sort/csra-pair.h
deleted file mode 100644
index a9de62e..0000000
--- a/tools/sra-sort/csra-pair.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_csra_pair_
-#define _h_sra_sort_csra_pair_
-
-#ifndef _h_sra_sort_db_pair_
-#include "db-pair.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct TablePair;
-struct ColumnWriter;
-
-
-/*--------------------------------------------------------------------------
- * cSRAPair
- *  interface to pairing of source and destination tables
- */
-typedef struct cSRAPair cSRAPair;
-struct cSRAPair
-{
-    DbPair dad;
-
-    /* for ultimate metadata */
-    int64_t first_half_aligned_spot;
-    int64_t first_unaligned_spot;
-
-    /* the reference table */
-    struct TablePair *reference;
-
-    /* the alignment tables */
-    struct TablePair *prim_align, *sec_align, *evidence_align;
-
-    /* the sequence table */
-    struct TablePair *sequence;
-
-    /* mapping indices */
-    struct MapFile *pa_idx, *sa_idx, *seq_idx;
-};
-
-
-/* Make
- *  makes an object based upon open source and destination VDatabase objects
- */
-DbPair *cSRAPairMake ( const ctx_t *ctx,
-    struct VDatabase const *src, struct VDatabase *dst, const char *name );
-
-
-/* MakeFirstHalfAlignedRowIdCaptureWriter
- *  a simple monitor on SEQUENCE.PRIMARY_ALIGNMENT_ID looking for
- *  half-aligned spots and capturing the first occurrence.
- */
-struct ColumnWriter *cSRAPairMakeFirstHalfAlignedRowIdCaptureWriter ( cSRAPair *self,
-    const ctx_t *ctx, struct ColumnWriter *writer );
-
-
-#endif /* _h_sra_sort_csra_pair_ */
diff --git a/tools/sra-sort/csra-tbl.c b/tools/sra-sort/csra-tbl.c
deleted file mode 100644
index 3365163..0000000
--- a/tools/sra-sort/csra-tbl.c
+++ /dev/null
@@ -1,783 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-struct cSRATblPair;
-#define TBLPAIR_IMPL struct cSRATblPair
-
-#include "csra-tbl.h"
-#include "csra-pair.h"
-#include "ref-alignid-col.h"
-#include "row-set.h"
-#include "id-mapper-col.h"
-#include "buff-writer.h"
-#include "poslen-col-pair.h"
-#include "meta-pair.h"
-#include "map-file.h"
-#include "xcheck.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-
-#include <vdb/table.h>
-#include <kdb/meta.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-
-FILE_ENTRY ( csra-tbl );
-
-
-/*--------------------------------------------------------------------------
- * RefTblPair
- *  generic database object pair
- */
-
-static
-void cSRATblPairWhack ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    RowSetIteratorRelease ( self -> rsi, ctx );
-    TablePairDestroy ( & self -> dad, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-void cSRATblPairDummyStub ( cSRATblPair *self, const ctx_t *ctx )
-{
-}
-
-
-/* REFERENCE table
- */
-static
-ColumnPair *cSRATblPairMakePrimAlignIdColPair ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col = NULL;
-    cSRAPair *csra = self -> csra;
-
-    ColumnReader *reader;
-    const char *colspec = "(I64)PRIMARY_ALIGNMENT_IDS";
-
-    TRY ( reader = TablePairMakeAlignIdReader ( & self -> dad, ctx,
-              csra -> prim_align, csra -> pa_idx, colspec ) )
-    {
-        ColumnWriter *writer;
-        TRY ( writer = TablePairMakeColumnWriter ( & self -> dad, ctx, NULL, colspec ) )
-        {
-            col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, writer, colspec, false );
-                
-            ColumnWriterRelease ( writer, ctx );
-        }
-
-        ColumnReaderRelease ( reader, ctx );
-    }
-
-    return col;
-}
-
-static
-ColumnPair *cSRATblPairMakeSecAlignIdColPair ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col = NULL;
-    cSRAPair *csra = self -> csra;
-
-    if ( csra -> sec_align != NULL )
-    {
-        ColumnReader *reader;
-        const char *colspec = "(I64)SECONDARY_ALIGNMENT_IDS";
-
-        TRY ( reader = TablePairMakeAlignIdReader ( & self -> dad, ctx,
-                  csra -> sec_align, csra -> sa_idx, colspec ) )
-        {
-            ColumnWriter *writer;
-            TRY ( writer = TablePairMakeColumnWriter ( & self -> dad, ctx, NULL, colspec ) )
-            {
-                col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, writer, colspec, false );
-                
-                ColumnWriterRelease ( writer, ctx );
-            }
-            
-            ColumnReaderRelease ( reader, ctx );
-        }
-    }
-
-    return col;
-}
-
-static
-void cSRATblPairExplodeRef ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col;
-
-    TRY ( col = cSRATblPairMakePrimAlignIdColPair ( self, ctx ) )
-    {
-        TRY ( TablePairAddColumnPair ( & self -> dad, ctx, col ) )
-        {
-            TRY ( col = cSRATblPairMakeSecAlignIdColPair ( self, ctx ) )
-            {
-                TRY ( TablePairAddColumnPair ( & self -> dad, ctx, col ) )
-                {
-                }
-                CATCH_ALL ()
-                {
-                    ColumnPairRelease ( col, ctx );
-                }
-            }
-        }
-        CATCH_ALL ()
-        {
-            ColumnPairRelease ( col, ctx );
-        }
-    }
-}
-
-static
-ColumnPair *cSRATblPairMakeColumnPairRef ( cSRATblPair *self, const ctx_t *ctx,
-    struct ColumnReader *reader, struct ColumnWriter *writer, const char *colspec, bool large )
-{
-    FUNC_ENTRY ( ctx );
-    return TablePairMakeColumnPair ( & self -> dad, ctx, reader, writer, colspec, large );
-}
-
-static
-RowSetIterator *cSRATblPairGetRowSetIteratorRef ( cSRATblPair *self, const ctx_t *ctx, bool mapping, bool large )
-{
-    FUNC_ENTRY ( ctx );
-    const bool is_paired = false;
-    assert ( mapping == false );
-    return TablePairMakeRowSetIterator ( & self -> dad, ctx, NULL, is_paired, large );
-}
-
-static TablePair_vt cSRATblPair_Ref_vt =
-{
-    cSRATblPairWhack,
-    cSRATblPairDummyStub,
-    cSRATblPairExplodeRef,
-    cSRATblPairMakeColumnPairRef,
-    cSRATblPairDummyStub,
-    cSRATblPairDummyStub,
-    cSRATblPairGetRowSetIteratorRef
-};
-
-
-
-/* *_ALIGNMENT tables
- */
-
-static
-ColumnPair *cSRATblPairMakeSeqSpotIdColPairPrim ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col = NULL;
-    cSRAPair *csra = self -> csra;
-
-    ColumnReader *reader;
-    const char *colspec = "(I64)SEQ_SPOT_ID";
-
-    /* we expect this column to be present */
-    TRY ( reader = TablePairMakeColumnReader ( & self -> dad, ctx, NULL, colspec, true ) )
-    {
-        ColumnWriter *writer;
-        TRY ( writer = TablePairMakeColumnWriter ( & self -> dad, ctx, NULL, colspec ) )
-        {
-            ColumnWriter *mapped;
-            const bool can_assign_ids = true;
-            TRY ( mapped = TablePairMakeMapRowIdWriter ( & self -> dad, ctx, writer, csra -> seq_idx, can_assign_ids ) )
-            {
-                ColumnWriter *buffered;
-                TRY ( buffered = cSRATblPairMakeBufferedColumnWriter ( self, ctx, mapped ) )
-                {
-                    col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, buffered, colspec, false );
-
-                    ColumnWriterRelease ( buffered, ctx );
-                }
-
-                ColumnWriterRelease ( mapped, ctx );
-            }
-                
-            ColumnWriterRelease ( writer, ctx );
-        }
-
-        ColumnReaderRelease ( reader, ctx );
-    }
-
-    return col;
-}
-
-static
-ColumnPair *cSRATblPairMakeSeqSpotIdColPair ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col = NULL;
-    cSRAPair *csra = self -> csra;
-
-    ColumnReader *reader;
-    const char *colspec = "(I64)SEQ_SPOT_ID";
-
-    /* we expect this column to be present */
-    TRY ( reader = TablePairMakeColumnReader ( & self -> dad, ctx, NULL, colspec, true ) )
-    {
-        ColumnWriter *writer;
-        TRY ( writer = TablePairMakeColumnWriter ( & self -> dad, ctx, NULL, colspec ) )
-        {
-            ColumnWriter *buffered;
-            /* create a buffered writer with NO id-assignment capabilities. */
-            TRY ( buffered = cSRATblPairMakeBufferedIdRemapColumnWriter ( self, ctx,
-                      writer, csra -> seq_idx, false ) )
-            {
-                col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, buffered, colspec, false );
-
-                ColumnWriterRelease ( buffered, ctx );
-            }
-                
-            ColumnWriterRelease ( writer, ctx );
-        }
-
-        ColumnReaderRelease ( reader, ctx );
-    }
-
-    return col;
-}
-
-static
-ColumnPair *cSRATblPairMakePoslenColPair ( cSRATblPair *self, const ctx_t *ctx, const MapFile *idx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col = NULL;
-
-    ColumnReader *reader;
-    const char *colspec = "(U64)GLOBAL_POSLEN";
-
-    /* we expect this column to be present */
-    TRY ( reader = TablePairMakePoslenColReader ( & self -> dad, ctx, idx, colspec ) )
-    {
-        ColumnWriter *writer;
-        TRY ( writer = TablePairMakePoslenColWriter ( & self -> dad, ctx, NULL, colspec ) )
-        {
-            col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, writer, colspec, false );
-                
-            ColumnWriterRelease ( writer, ctx );
-        }
-
-        ColumnReaderRelease ( reader, ctx );
-    }
-
-    return col;
-}
-
-static
-void cSRATblPairPreExplodeAlign ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    cSRAPair *csra = self -> csra;
-
-    switch ( self -> align_idx )
-    {
-    case 1:
-        csra -> pa_idx = MapFileMakeForPoslen ( ctx, csra -> prim_align -> name );
-        break;
-    case 2:
-        csra -> sa_idx = MapFileMakeForPoslen ( ctx, csra -> sec_align -> name );
-        break;
-    }
-}
-
-static
-void cSRATblPairExplodeAlign ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col;
-
-    /* create special case for SEQ_SPOT_ID */
-    switch ( self -> align_idx )
-    {
-    case 1:
-        col = cSRATblPairMakeSeqSpotIdColPairPrim ( self, ctx );
-        break;
-    case 0:
-    case 2:
-    case 3:
-        col = cSRATblPairMakeSeqSpotIdColPair ( self, ctx );
-        break;
-    default:
-        ANNOTATE ( "not going to dignify with an rc - bad align_idx" );
-        return;
-    }
-
-    if ( ! FAILED () )
-    {
-        TRY ( TablePairAddColumnPair ( & self -> dad, ctx, col ) )
-        {
-            cSRAPair *csra = self -> csra;
-
-            switch ( self -> align_idx )
-            {
-            case 1:
-                col = cSRATblPairMakePoslenColPair ( self, ctx, csra -> pa_idx );
-                break;
-            case 2:
-                col = cSRATblPairMakePoslenColPair ( self, ctx, csra -> sa_idx );
-                break;
-            default:
-                return;
-            }
-
-            if ( ! FAILED () )
-            {
-                TRY ( TablePairAddColumnPair ( & self -> dad, ctx, col ) )
-                {
-                    return;
-                }
-            }
-        }
-
-        ColumnPairRelease ( col, ctx );
-    }
-}
-
-static
-ColumnPair *cSRATblPairMakeColumnPairAlign ( cSRATblPair *self, const ctx_t *ctx,
-    struct ColumnReader *reader, struct ColumnWriter *writer, const char *colspec, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    MapFile *idx = NULL;
-    ColumnPair *col = NULL;
-    ColumnWriter *buffered;
-
-    switch ( self -> align_idx )
-    {
-    case 0:
-    case 3:
-        return TablePairMakeColumnPair ( & self -> dad, ctx, reader, writer, colspec, large );
-    case 1:
-    case 2:
-    {
-        /* look for special MATE_ALIGN_ID column */
-        const char *colname = strrchr ( colspec, ')' );
-        if ( colname ++ == NULL )
-            colname = colspec;
-        if ( strcmp ( colname, "MATE_ALIGN_ID" ) == 0 )
-        {
-            cSRAPair *csra = self -> csra;
-            idx = self -> align_idx == 1 ? csra -> pa_idx : csra -> sa_idx;
-        }
-        break;
-    }
-
-    default:
-        ANNOTATE ( "not going to dignify with an rc - bad align_idx" );
-        return NULL;
-    }
-
-    /* create a buffer on writer, possibly with mapping */
-    buffered = ( idx != NULL ) ?
-        /* create a buffered mapping writer but WITHOUT id assignment capabilities */
-        cSRATblPairMakeBufferedIdRemapColumnWriter ( self, ctx, writer, idx, false ):
-        /* create a normal buffered writer */
-        cSRATblPairMakeBufferedColumnWriter ( self, ctx, writer );
-
-    if ( ! FAILED () )
-    {
-        col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, buffered, colspec, large );
-        ColumnWriterRelease ( buffered, ctx );
-    }
-
-    return col;
-}
-
-static
-void cSRATblPairPostCopyAlign ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRAPair *csra = self -> csra;
-
-    RowSetIteratorRelease ( self -> rsi, ctx );
-    self -> rsi = NULL;
-
-    if ( self -> align_idx == 2 )
-    {
-        MapFileRelease ( self -> csra -> sa_idx, ctx );
-        self -> csra -> sa_idx = NULL;
-    }
-
-    switch ( self -> align_idx )
-    {
-    case 1:
-        CrossCheckRefAlignTbl ( ctx, csra -> reference -> dtbl, csra -> prim_align -> dtbl, "PRIMARY_ALIGNMENT" );
-        break;
-    case 2:
-        CrossCheckRefAlignTbl ( ctx, csra -> reference -> dtbl, csra -> sec_align -> dtbl, "SECONDARY_ALIGNMENT" );
-        break;
-    }
-}
-
-static
-RowSetIterator *cSRATblPairGetRowSetIteratorAlign ( cSRATblPair *self, const ctx_t *ctx, bool mapping, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    TRY ( RowSetIteratorRelease ( self -> rsi, ctx ) )
-    {
-        cSRAPair *csra = self -> csra;
-        MapFile *idx = self -> align_idx == 1 ? csra -> pa_idx : csra -> sa_idx;
-        TRY ( self -> rsi = TablePairMakeRowSetIterator ( & self -> dad, ctx, idx, mapping, large ) )
-        {
-            return RowSetIteratorDuplicate ( self -> rsi, ctx );
-        }
-    }
-
-    return NULL;
-}
-
-
-static TablePair_vt cSRATblPair_Align_vt =
-{
-    cSRATblPairWhack,
-    cSRATblPairPreExplodeAlign,
-    cSRATblPairExplodeAlign,
-    cSRATblPairMakeColumnPairAlign,
-    cSRATblPairDummyStub,
-    cSRATblPairPostCopyAlign,
-    cSRATblPairGetRowSetIteratorAlign
-};
-
-
-
-/* SEQUENCE table
- */
-
-static
-ColumnPair *cSRATblPairMakeSeqPrimAlignIdColPair ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col = NULL;
-    cSRAPair *csra = self -> csra;
-
-
-    ColumnReader *reader;
-    const char *colspec = "(I64)PRIMARY_ALIGNMENT_ID";
-
-    /* this column may not be present if there are no alignments */
-    TRY ( reader = TablePairMakeColumnReader ( & self -> dad, ctx, NULL, colspec, false ) )
-    {
-        if ( reader != NULL )
-        {
-            ColumnWriter *writer;
-            TRY ( writer = TablePairMakeColumnWriter ( & self -> dad, ctx, NULL, colspec ) )
-            {
-                ColumnWriter *capture;
-                TRY ( capture = cSRAPairMakeFirstHalfAlignedRowIdCaptureWriter ( csra, ctx, writer ) )
-                {
-                    ColumnWriter *buffered;
-
-                    /* create a buffered writer WITHOUT id-assignment capabilities. */
-                    TRY ( buffered = cSRATblPairMakeBufferedIdRemapColumnWriter ( self, ctx,
-                              capture, csra -> pa_idx, false ) )
-                    {
-                        col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, buffered, colspec, true );
-
-                        ColumnWriterRelease ( buffered, ctx );
-                    }
-
-                    ColumnWriterRelease ( capture, ctx );
-                }
-                
-                ColumnWriterRelease ( writer, ctx );
-            }
-            
-            ColumnReaderRelease ( reader, ctx );
-        }
-    }
-
-    return col;
-}
-
-static
-void cSRATblPairPreExplodeSeq ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    TRY ( TablePairExplode ( & self -> dad, ctx ) )
-    {
-        cSRAPair *csra = self -> csra;
-        TRY ( csra -> seq_idx = MapFileMake ( ctx, self -> dad . name, true ) )
-        {
-            TRY ( MapFileSetIdRange ( csra -> seq_idx, ctx, self -> dad . first_id,
-                      self -> dad . last_excl - self -> dad . first_id ) )
-            {
-                ColumnPair *col;
-
-                /* create special case for PRIMARY_ALIGNMENT_ID */
-                TRY ( col = cSRATblPairMakeSeqPrimAlignIdColPair ( self, ctx ) )
-                {
-                    TablePairAddColumnPair ( & self -> dad, ctx, col );
-                }
-            }
-        }
-    }
-}
-
-static
-ColumnPair *cSRATblPairMakeColumnPairSeq ( cSRATblPair *self, const ctx_t *ctx,
-    struct ColumnReader *reader, struct ColumnWriter *writer, const char *colspec, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnPair *col = NULL;
-    ColumnWriter *buffered;
-
-    TRY ( buffered = cSRATblPairMakeBufferedColumnWriter ( self, ctx, writer ) )
-    {
-        col = TablePairMakeColumnPair ( & self -> dad, ctx, reader, buffered, colspec, large );
-        ColumnWriterRelease ( buffered, ctx );
-    }
-
-    return col;
-}
-
-static
-void cSRATblPairPreCopySeq ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRAPair *csra = self -> csra;
-
-    STATUS ( 3, "assigning new row-ids to unaligned sequences" );
-    csra -> first_unaligned_spot = MapFileAllocMissingNewIds ( self -> csra -> seq_idx, ctx );
-}
-
-static
-void cSRATblPairPostCopySeq ( cSRATblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRAPair *csra = self -> csra;
-
-    RowSetIteratorRelease ( self -> rsi, ctx );
-    self -> rsi = NULL;
-
-    MapFileRelease ( csra -> pa_idx, ctx );
-    csra -> pa_idx = NULL;
-
-    MapFileRelease ( csra -> seq_idx, ctx );
-    csra -> seq_idx = NULL;
-
-    /* record markers in metadata */
-    if ( ! FAILED () && ( csra -> first_half_aligned_spot != 0 || csra -> first_unaligned_spot != 0 ) )
-    {
-        MetaPair *meta = self -> dad . meta;
-        KMDataNode *unaligned_node;
-        const char *node_path = "unaligned";
-        rc_t rc = KMetadataOpenNodeUpdate ( meta -> dmeta, & unaligned_node, node_path );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "KMetadataOpenNodeUpdate failed to open '%s'", node_path );
-        else
-        {
-            KMDataNode *node;
-            if ( csra -> first_half_aligned_spot != 0 )
-            {
-                node_path = "first-half-aligned";
-                rc = KMDataNodeOpenNodeUpdate ( unaligned_node, & node, node_path );
-                if ( rc != 0 )
-                    INTERNAL_ERROR ( rc, "KMDataNodeOpenNodeUpdate failed to open 'unaligned/%s'", node_path );
-                else
-                {
-                    rc = KMDataNodeWriteB64 ( node, & csra -> first_half_aligned_spot );
-                    if ( rc != 0 )
-                        INTERNAL_ERROR ( rc, "KMDataNodeWriteB64 failed to write 'unaligned/%s'", node_path );
-
-                    KMDataNodeRelease ( node );
-                }
-            }
-
-            if ( ! FAILED () && csra -> first_unaligned_spot != 0 )
-            {
-                node_path = "first-unaligned";
-                rc = KMDataNodeOpenNodeUpdate ( unaligned_node, & node, node_path );
-                if ( rc != 0 )
-                    INTERNAL_ERROR ( rc, "KMDataNodeOpenNodeUpdate failed to open 'unaligned/%s'", node_path );
-                else
-                {
-                    rc = KMDataNodeWriteB64 ( node, & csra -> first_unaligned_spot );
-                    if ( rc != 0 )
-                        INTERNAL_ERROR ( rc, "KMDataNodeWriteB64 failed to write 'unaligned/%s'", node_path );
-
-                    KMDataNodeRelease ( node );
-                }
-            }
-
-            KMDataNodeRelease ( unaligned_node );
-        }
-    }
-}
-
-static
-RowSetIterator *cSRATblPairGetRowSetIteratorSeq ( cSRATblPair *self, const ctx_t *ctx, bool mapping, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    TRY ( RowSetIteratorRelease ( self -> rsi, ctx ) )
-    {
-        cSRAPair *csra = self -> csra;
-        TRY ( self -> rsi = TablePairMakeRowSetIterator ( & self -> dad, ctx, csra -> seq_idx, mapping, large ) )
-        {
-            return RowSetIteratorDuplicate ( self -> rsi, ctx );
-        }
-    }
-
-    return NULL;
-}
-
-static TablePair_vt cSRATblPair_Seq_vt =
-{
-    cSRATblPairWhack,
-    cSRATblPairPreExplodeSeq,
-    cSRATblPairDummyStub,
-    cSRATblPairMakeColumnPairSeq,
-    cSRATblPairPreCopySeq,
-    cSRATblPairPostCopySeq,
-    cSRATblPairGetRowSetIteratorSeq
-};
-
-
-
-/* Init
- *  common initialization code
- */
-static
-void cSRATblPairInit ( void *self, cSRATblPair *tbl )
-{
-    tbl -> csra = self;
-    tbl -> rsi = NULL;
-    tbl -> align_idx = 0;
-}
-
-
-/* MakeRef
- *  special cased for REFERENCE table
- */
-TablePair *cSRATblPairMakeRef ( DbPair *self, const ctx_t *ctx,
-    const VTable *src, VTable *dst, const char *name, bool reorder )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRATblPair *tbl;
-
-    TRY ( tbl = MemAlloc ( ctx, sizeof * tbl, false ) )
-    {
-        TRY ( TablePairInit ( & tbl -> dad, ctx, & cSRATblPair_Ref_vt, src, dst, name, self -> full_spec, reorder ) )
-        {
-            static const char *exclude_cols [] = { "PRIMARY_ALIGNMENT_IDS", "SECONDARY_ALIGNMENT_IDS", "READ", "SPOT_GROUP", NULL };
-            static const char *nonstatic_cols [] = { "NAME", NULL };
-            tbl -> dad . exclude_col_names = exclude_cols;
-            tbl -> dad . nonstatic_col_names = nonstatic_cols;
-            cSRATblPairInit ( self, tbl );
-            return & tbl -> dad;
-        }
-
-        MemFree ( ctx, tbl, sizeof * tbl );
-    }
-
-    return NULL;
-}
-
-
-/* MakeAlign
- *  special cased for *_ALIGNMENT tables
- */
-TablePair *cSRATblPairMakeAlign ( DbPair *self, const ctx_t *ctx,
-    const VTable *src, VTable *dst, const char *name, bool reorder )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRATblPair *tbl;
-
-    TRY ( tbl = MemAlloc ( ctx, sizeof * tbl, false ) )
-    {
-        TRY ( TablePairInit ( & tbl -> dad, ctx, & cSRATblPair_Align_vt, src, dst, name, self -> full_spec, reorder ) )
-        {
-            static const char *exclude_cols [] = { "GLOBAL_REF_START", "READ_LEN", "REF_ID", "REF_START", "REF_LEN", "SEQ_SPOT_ID", NULL };
-            static const char *unsorted_exclude_cols [] = { "READ_LEN", "SEQ_SPOT_ID", NULL };
-            tbl -> dad . exclude_col_names = reorder ? exclude_cols : unsorted_exclude_cols;
-            cSRATblPairInit ( self, tbl );
-            return & tbl -> dad;
-        }
-
-        MemFree ( ctx, tbl, sizeof * tbl );
-    }
-
-    return NULL;
-}
-
-
-/* MakeSeq
- *  special cased for SEQUENCE table
- */
-TablePair *cSRATblPairMakeSeq ( DbPair *self, const ctx_t *ctx,
-    const VTable *src, VTable *dst, const char *name, bool reorder )
-{
-    FUNC_ENTRY ( ctx );
-
-    cSRATblPair *tbl;
-
-    TRY ( tbl = MemAlloc ( ctx, sizeof * tbl, false ) )
-    {
-        TRY ( TablePairInit ( & tbl -> dad, ctx, & cSRATblPair_Seq_vt, src, dst, name, self -> full_spec, reorder ) )
-        {
-            static const char *exclude_cols [] = { "PRIMARY_ALIGNMENT_ID", NULL };
-            static const char *nonstatic_cols [] = { "NAME_FMT", NULL };
-            static const char *large_cols [] = { "CMP_READ", "QUALITY", NULL };
-            static const char *exclude_meta [] = { "unaligned", NULL };
-            tbl -> dad . exclude_col_names = exclude_cols;
-            tbl -> dad . nonstatic_col_names = nonstatic_cols;
-            tbl -> dad . large_col_names = large_cols;
-            tbl -> dad . exclude_meta = exclude_meta;
-            cSRATblPairInit ( self, tbl );
-            return & tbl -> dad;
-        }
-
-        MemFree ( ctx, tbl, sizeof * tbl );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/csra-tbl.h b/tools/sra-sort/csra-tbl.h
deleted file mode 100644
index 7eae0b2..0000000
--- a/tools/sra-sort/csra-tbl.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_csra_tbl_
-#define _h_sra_sort_csra_tbl_
-
-#ifndef _h_sra_sort_tbl_pair_
-#include "tbl-pair.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct cSRAPair;
-struct RowSetIterator;
-
-
-/*--------------------------------------------------------------------------
- * cSRATblPair
- *  interface to pairing of source and destination tables
- */
-typedef struct cSRATblPair cSRATblPair;
-struct cSRATblPair
-{
-    TablePair dad;
-
-    /* database */
-    struct cSRAPair *csra;
-
-    /* special rowset iterator */
-    struct RowSetIterator *rsi;
-
-    /* if an alignment table, which one? */
-    uint32_t align_idx;
-};
-
-
-/* MakeRef
- *  special cased for REFERENCE table
- */
-TablePair *cSRATblPairMakeRef ( struct DbPair *self, const ctx_t *ctx,
-    struct VTable const *src, struct VTable *dst, const char *name, bool reorder );
-
-
-/* MakeAlign
- *  special cased for *_ALIGNMENT tables
- */
-TablePair *cSRATblPairMakeAlign ( struct DbPair *self, const ctx_t *ctx,
-    struct VTable const *src, struct VTable *dst, const char *name, bool reorder );
-
-
-/* MakeSeq
- *  special cased for SEQUENCE table
- */
-TablePair *cSRATblPairMakeSeq ( struct DbPair *self, const ctx_t *ctx,
-    struct VTable const *src, struct VTable *dst, const char *name, bool reorder );
-
-
-#endif /* _h_sra_sort_csra_tbl_ */
diff --git a/tools/sra-sort/ctx.h b/tools/sra-sort/ctx.h
deleted file mode 100644
index 30366db..0000000
--- a/tools/sra-sort/ctx.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_ctx_
-#define _h_sra_sort_ctx_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct Caps;
-
-
-/*--------------------------------------------------------------------------
- * file entry
- *  modified from vdb-3 to not place requirements on Makefile
- */
-#define FILE_ENTRY( __file_name__ )                                     \
-    static const char __mod__ [] = "tools/sra-sort";                    \
-    static const char __file__ [] = STRINGIZE_DEFINE ( __file_name__ )
-
-
-/*--------------------------------------------------------------------------
- * ctx_info_t
- */
-typedef struct ctx_info_t ctx_info_t;
-struct ctx_info_t
-{
-    const char *mod;
-    const char *file;
-    const char *func;
-};
-
-#define DECLARE_CTX_INFO() \
-    static ctx_info_t ctx_info = { __mod__, __file__, __func__ }
-
-
-/*--------------------------------------------------------------------------
- * ctx_t
- *  modified from vdb-3
- */
-struct ctx_t
-{
-    struct Caps const *caps;
-    const ctx_t *caller;
-    const ctx_info_t *info;
-    volatile rc_t rc;
-};
-
-
-/* INIT
- *  initialize local context block
- */
-static __inline__
-const ctx_t ctx_init ( ctx_t *new_ctx, const ctx_t **ctxp, const ctx_info_t *info )
-{
-    const ctx_t *ctx = * ctxp;
-    ctx_t local_ctx = { ctx -> caps, ctx, info };
-    * ctxp = new_ctx;
-    return local_ctx;
-}
-
-
-/* FUNC_ENTRY
- */
-#define FUNC_ENTRY( ctx )                                               \
-    DECLARE_CTX_INFO ();                                                \
-    ctx_t local_ctx = ctx_init ( & local_ctx, & ( ctx ), & ctx_info )
-
-
-/* POP_CTX
- *  intended to have VERY specific usage
- */
-#define POP_CTX( ctx ) \
-    ctx = ctx -> caller
-
-
-#endif
diff --git a/tools/sra-sort/db-pair.c b/tools/sra-sort/db-pair.c
deleted file mode 100644
index b350da1..0000000
--- a/tools/sra-sort/db-pair.c
+++ /dev/null
@@ -1,883 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct DbPair StdDbPair;
-#define DBPAIR_IMPL StdDbPair
-
-#include "db-pair.h"
-#include "csra-pair.h"
-#include "tbl-pair.h"
-#include "dir-pair.h"
-#include "meta-pair.h"
-#include "sra-sort.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/vdb-priv.h>
-#include <kdb/database.h>
-#include <kdb/meta.h>
-#include <kdb/kdb-priv.h>
-#include <kfs/directory.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-
-FILE_ENTRY ( db-pair );
-
-
-/*--------------------------------------------------------------------------
- * StdDbPair
- *  generic database object pair
- */
-
-static
-void StdDbPairWhack ( StdDbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    DbPairDestroy ( self, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-void StdDbPairExplode ( StdDbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-}
-
-static
-const char *StdDbPairGetTblMember ( const StdDbPair *self, const ctx_t *ctx, const VTable *src, const char *name )
-{
-    return name;
-}
-
-static DbPair_vt StdDbPair_vt =
-{
-    StdDbPairWhack,
-    StdDbPairExplode,
-    StdDbPairGetTblMember
-};
-
-static
-DbPair *StdDbPairMake ( const ctx_t *ctx,
-    const VDatabase *src, VDatabase *dst, const char *name, const char *opt_full_spec )
-{
-    FUNC_ENTRY ( ctx );
-
-    StdDbPair *db;
-
-    TRY ( db = MemAlloc ( ctx, sizeof * db, false ) )
-    {
-        TRY ( DbPairInit ( db, ctx, & StdDbPair_vt, src, dst, name, opt_full_spec ) )
-        {
-            return db;
-        }
-
-        MemFree ( ctx, db, sizeof * db );
-    }
-
-    return NULL;
-}
-
-/*--------------------------------------------------------------------------
- * DbPair
- *  interface code
- */
-
-
-/* Make
- *  makes an object based upon open source and destination VDatabase objects
- */
-static
-bool is_csra_db ( const VDatabase *src, const ctx_t *ctx )
-{
-    /* TBD - hack'o-matic */
-    return true;
-}
-
-DbPair *DbPairMake ( const ctx_t *ctx,
-    const VDatabase *src, VDatabase *dst, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* intercept certain types of databases - right now cSRA */
-    if ( is_csra_db ( src, ctx ) )
-        return cSRAPairMake ( ctx, src, dst, name );
-
-    return StdDbPairMake ( ctx, src, dst, name, NULL );
-}
-
-DbPair *DbPairMakeStdDbPair ( DbPair *self, const ctx_t *ctx,
-    const VDatabase *src, VDatabase *dst, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-    return StdDbPairMake ( ctx, src, dst, name, self -> full_spec );
-}
-
-
-/* Release
- */
-void DbPairRelease ( DbPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "DbPair" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcDatabase, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release DbPair" );
-        }
-    }
-}
-
-/* Duplicate
- */
-DbPair *DbPairDuplicate ( DbPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "DbPair" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcDatabase, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate DbPair" );
-            return NULL;
-        }
-    }
-
-    return ( DbPair* ) self;
-}
-
-
-/* Copy
- */
-static
-bool CC DbPairCopyDbPair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    TRY ( DbPairCopy ( item, ctx ) )
-    {
-        return false;
-    }
-    return true;
-}
-
-static
-bool CC DbPairCopyTablePair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    TRY ( TablePairCopy ( item, ctx ) )
-    {
-        return false;
-    }
-    return true;
-}
-
-static
-bool CC DbPairCopyDirPair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    TRY ( DirPairCopy ( item, ctx ) )
-    {
-        return false;
-    }
-    return true;
-}
-
-void DbPairCopy ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    STATUS ( 2, "copying database '%s'", self -> full_spec );
-
-    /* copy metadata */
-    MetaPairCopy ( self -> meta, ctx, self -> full_spec, self -> exclude_meta );
-
-    /* copy all child databases */
-    if ( ! FAILED () && VectorLength ( & self -> dbs ) != 0 )
-    {
-        STATUS ( 2, "copying '%s' sub-databases", self -> full_spec );
-        VectorDoUntil ( & self -> dbs, false, DbPairCopyDbPair, ( void* ) ctx );
-    }
-
-    /* now we should be able to copy each table */
-    if ( ! FAILED () && VectorLength ( & self -> tbls ) != 0 )
-    {
-        STATUS ( 2, "copying '%s' tables", self -> full_spec );
-        VectorDoUntil ( & self -> tbls, false, DbPairCopyTablePair, ( void* ) ctx );
-    }
-
-    /* copy any directories - extra */
-    if ( ! FAILED () && VectorLength ( & self -> dirs ) != 0 )
-    {
-        STATUS ( 2, "copying '%s' directories", self -> full_spec );
-        VectorDoUntil ( & self -> dirs, false, DbPairCopyDirPair, ( void* ) ctx );
-    }
-}
-
-
-/* Explode
- *  probably a bad name, but it is intended to mean
- *  register all enclosed tables and databases
- *  and create a proper pair of KMetadata
- */
-static
-MetaPair *DbPairExplodeMetaPair ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    MetaPair *meta = NULL;
-    const KMetadata *smeta;
-
-    rc = VDatabaseOpenMetadataRead ( self -> sdb, & smeta );
-    if ( rc != 0 )
-        ERROR ( rc, "VDatabaseOpenMetadataRead failed on 'src.%s'", self -> full_spec );
-    else
-    {
-        KMetadata *dmeta;
-        rc = VDatabaseOpenMetadataUpdate ( self -> ddb, & dmeta );
-        if ( rc != 0 )
-            ERROR ( rc, "VDatabaseOpenMetadataUpdate failed on 'dst.%s'", self -> full_spec );
-        else
-        {
-            meta = MetaPairMake ( ctx, smeta, dmeta, self -> full_spec );
-
-            KMetadataRelease ( dmeta );
-        }
-        
-        KMetadataRelease ( smeta );
-    }
-
-    return meta;
-}
-
-static
-void DbPairExplode ( DbPair *self, const ctx_t *ctx );
-
-static
-bool CC DbPairExplodeDbPair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    TRY ( DbPairExplode ( item, ctx ) )
-    {
-        return false;
-    }
-    return true;
-}
-
-static
-bool CC DbPairPreExplodeTablePair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    TRY ( TablePairPreExplode ( ( ( TablePair* ) item ), ctx ) )
-    {
-        return false;
-    }
-    return true;
-}
-
-static
-void DbPairDefaultExplodeDB ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    KNamelist *names;
-
-    rc = VDatabaseListDB ( self -> sdb, & names );
-    if ( rc != 0 )
-        ERROR ( rc, "VDatabaseListDB failed listing '%s' databases", self -> full_spec );
-    else
-    {
-        uint32_t count;
-        rc = KNamelistCount ( names, & count );
-        if ( rc != 0 )
-            ERROR ( rc, "KNamelistCount failed listing '%s' databases", self -> full_spec );
-        else if ( count > 0 )
-        {
-            uint32_t i;
-            for ( i = 0; ! FAILED () && i < count; ++ i )
-            {
-                DbPair *db;
-
-                const char *name;
-                rc = KNamelistGet ( names, i, & name );
-                if ( rc != 0 )
-                {
-                    ERROR ( rc, "KNamelistGet ( %u ) failed listing '%s' databases", i, self -> full_spec );
-                    break;
-                }
-
-                if ( self -> exclude_dbs != NULL )
-                {
-                    uint32_t j;
-                    for ( j = 0; self -> exclude_dbs [ j ] != NULL; ++ j )
-                    {
-                        if ( strcmp ( name, self -> exclude_dbs [ j ] ) == 0 )
-                        {
-                            name = NULL;
-                            break;
-                        }
-                    }
-                    if ( name == NULL )
-                        continue;
-                }
-
-                TRY ( db = DbPairMakeDbPair ( self, ctx, name, name, true, DbPairMakeStdDbPair ) )
-                {
-                    ON_FAIL ( DbPairAddDbPair ( self, ctx, db ) )
-                    {
-                        DbPairRelease ( db, ctx );
-                    }
-                }
-            }
-        }
-
-        KNamelistRelease ( names );
-    }
-}
-
-static
-void DbPairDefaultExplodeTbl ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    KNamelist *names;
-
-    rc = VDatabaseListTbl ( self -> sdb, & names );
-    if ( rc != 0 )
-        ERROR ( rc, "VDatabaseListTbl failed listing '%s' tables", self -> full_spec );
-    else
-    {
-        uint32_t count;
-        rc = KNamelistCount ( names, & count );
-        if ( rc != 0 )
-            ERROR ( rc, "KNamelistCount failed listing '%s' tables", self -> full_spec );
-        else if ( count > 0 )
-        {
-            uint32_t i;
-            for ( i = 0; ! FAILED () && i < count; ++ i )
-            {
-                TablePair *tbl;
-
-                const char *name;
-                rc = KNamelistGet ( names, i, & name );
-                if ( rc != 0 )
-                {
-                    ERROR ( rc, "KNamelistGet ( %u ) failed listing '%s' tables", i, self -> full_spec );
-                    break;
-                }
-
-                if ( self -> exclude_tbls != NULL )
-                {
-                    uint32_t j;
-                    for ( j = 0; self -> exclude_tbls [ j ] != NULL; ++ j )
-                    {
-                        if ( strcmp ( name, self -> exclude_tbls [ j ] ) == 0 )
-                        {
-                            name = NULL;
-                            break;
-                        }
-                    }
-                    if ( name == NULL )
-                        continue;
-                }
-
-                TRY ( tbl = DbPairMakeTablePair ( self, ctx, name, name, true, false, DbPairMakeStdTblPair ) )
-                {
-                    ON_FAIL ( DbPairAddTablePair ( self, ctx, tbl ) )
-                    {
-                        TablePairRelease ( tbl, ctx );
-                    }
-                }
-            }
-        }
-
-        KNamelistRelease ( names );
-    }
-}
-
-static
-void DbPairDefaultExplode ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-#if 0
-    TRY ( DbPairDefaultExplodeDB ( self, ctx ) )
-#endif
-    {
-        DbPairDefaultExplodeTbl ( self, ctx );
-    }
-}
-
-static
-void DbPairExplode ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    STATUS ( 2, "exploding database '%s'", self -> full_spec );
-
-    /* first, ask subclass to perform explicit explode */
-    if ( self == NULL )
-    {
-        rc_t rc = RC ( rcExe, rcDatabase, rcAccessing, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad DbPair" );
-    }
-    else
-    {
-        TRY ( ( * self -> vt -> explode ) ( self, ctx ) )
-        {
-            /* next, perform default self-explode for all dbs, tbls not excluded */
-            TRY ( DbPairDefaultExplode ( self, ctx ) )
-            {
-                /* now create metadata pair */
-                if ( self -> meta == NULL )
-                    self -> meta = DbPairExplodeMetaPair ( self, ctx );
-                if ( ! FAILED () )
-                {
-                    /* now explode all child dbs, tbls */
-                    TRY ( VectorDoUntil ( & self -> dbs, false, DbPairExplodeDbPair, ( void* ) ctx ) )
-                    {
-                        VectorDoUntil ( & self -> tbls, false, DbPairPreExplodeTablePair, ( void* ) ctx );
-                    }
-                }
-            }
-        }
-    }
-}
-
-
-/* Run
- */
-void DbPairRun ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    const Tool *tp = ctx -> caps -> tool;
-
-    STATUS ( 1, "input database is '%s'", tp -> src_path );
-    STATUS ( 1, "output database is '%s'", tp -> dst_path );
-
-    /* the first thing to do is to explode the database
-       to create sub-dbs, sub-tables, and metadata */
-    TRY ( DbPairExplode ( self, ctx ) )
-    {
-        /* now copy */
-        DbPairCopy ( self, ctx );
-    }
-
-    if ( FAILED () )
-        STATUS ( 1, "failed processing database '%s'", self -> full_spec );
-    else
-        STATUS ( 1, "finished processing database '%s'", self -> full_spec );
-}
-
-
-/* MakeDbPair
- */
-DbPair *DbPairMakeDbPair ( DbPair *self, const ctx_t *ctx, const char *member, const char *name, bool required,
-    DbPair* ( * make ) ( DbPair *self, const ctx_t *ctx, const VDatabase *src, VDatabase *dst, const char *name ) )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const VDatabase *src;
-    DbPair *db = NULL;
-                
-    STATUS ( 4, "creating db pair '%s.%s'", self -> full_spec, name );
-    rc = VDatabaseOpenDBRead ( self -> sdb, & src, name );
-    if ( rc != 0 )
-    {
-        if ( required )
-            ERROR ( rc, "VDatabaseOpenDBRead: failed to open db '%s.%s'", self -> full_spec, name );
-        else
-            STATUS ( 4, "optional db '%s.%s' was not opened", self -> full_spec, name );
-    }
-    else
-    {
-#if 0
-        if ( member == NULL )
-            member = DbPairGetTblMember ( self, ctx, src, name );
-#endif
-
-        if ( ! FAILED () )
-        {
-            VDatabase *dst;
-            const Tool *tp = ctx -> caps -> tool;
-            rc = VDatabaseCreateDB ( self -> ddb, & dst, member, kcmOpen | ( tp -> db . cmode & kcmMD5 ), name );
-            if ( rc != 0 )
-                ERROR ( rc, "VDatabaseCreateDB: failed to create %s db '%s.%s'", member, self -> full_spec, name );
-            else
-            {
-                db = ( * make ) ( self, ctx, src, dst, name );
-
-                VDatabaseRelease ( dst );
-            }
-        }
-
-        VDatabaseRelease ( src );
-    }
-
-    return db;
-}
-
-
-/* MakeTablePair
- */
-TablePair *DbPairMakeTablePair ( DbPair *self, const ctx_t *ctx, const char *member, const char *name, bool required, bool reorder,
-    TablePair* ( * make ) ( DbPair *self, const ctx_t *ctx, const VTable *src, VTable *dst, const char *name, bool reorder ) )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const VTable *src;
-    TablePair *tbl = NULL;
-                
-    STATUS ( 4, "creating table pair '%s.%s'", self -> full_spec, name );
-    rc = VDatabaseOpenTableRead ( self -> sdb, & src, name );
-    if ( rc != 0 )
-    {
-        if ( required )
-            ERROR ( rc, "VDatabaseOpenTableRead: failed to open table '%s.%s'", self -> full_spec, name );
-        else
-            STATUS ( 4, "optional table '%s.%s' was not opened", self -> full_spec, name );
-    }
-    else
-    {
-        if ( member == NULL )
-            member = DbPairGetTblMember ( self, ctx, src, name );
-
-        if ( ! FAILED () )
-        {
-            VTable *dst;
-            const Tool *tp = ctx -> caps -> tool;
-            rc = VDatabaseCreateTable ( self -> ddb, & dst, member, kcmOpen | ( tp -> db . cmode & kcmMD5 ), name );
-            if ( rc != 0 )
-                ERROR ( rc, "VDatabaseCreateTable: failed to create %s table '%s.%s'", member, self -> full_spec, name );
-            else
-            {
-                tbl = ( * make ) ( self, ctx, src, dst, name, reorder );
-
-                VTableRelease ( dst );
-            }
-        }
-
-        VTableRelease ( src );
-    }
-
-    return tbl;
-}
-
-
-/* AddDbPair
- *  called from implementations
- */
-void DbPairAddDbPair ( DbPair *self, const ctx_t *ctx, DbPair *db )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    STATUS ( 4, "adding db pair '%s'", db -> full_spec );
-    rc = VectorAppend ( & self -> dbs, NULL, ( const void* ) db );
-    if ( rc != 0 )
-        SYSTEM_ERROR ( rc, "failed to add db pair '%s'", db -> full_spec );
-}
-
-
-/* AddTablePair
- *  called from implementations
- */
-void DbPairAddTablePair ( DbPair *self, const ctx_t *ctx, TablePair *tbl )
-{
-    if ( tbl != NULL )
-    {
-        FUNC_ENTRY ( ctx );
-
-        rc_t rc;
-
-        STATUS ( 4, "adding table pair '%s'", tbl -> full_spec );
-        rc = VectorAppend ( & self -> tbls, NULL, ( const void* ) tbl );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "failed to add table pair '%s'", tbl -> full_spec );
-    }
-}
-
-
-/* MakeDirPair
- */
-DirPair *DbPairMakeDirPair ( DbPair *self, const ctx_t *ctx, const char *name, bool required,
-    DirPair* ( * make ) ( DbPair *self, const ctx_t *ctx, const KDirectory *src, KDirectory *dst, const char *name ) )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    DirPair *dir = NULL;
-    const KDatabase *sdb;
-                
-    STATUS ( 4, "creating directory pair '%s./%s'", self -> full_spec, name );
-
-    rc = VDatabaseOpenKDatabaseRead ( self -> sdb, & sdb );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VDatabaseOpenKDatabaseRead: failed to access KDatabase 'src.%s'", self -> full_spec );
-    else
-    {
-        KDatabase *ddb;
-        rc = VDatabaseOpenKDatabaseUpdate ( self -> ddb, & ddb );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VDatabaseOpenKDatabaseUpdate: failed to access KDatabase 'dst.%s'", self -> full_spec );
-        else
-        {
-            const KDirectory *sdir;
-            rc = KDatabaseOpenDirectoryRead ( sdb, & sdir );
-            if ( rc != 0 )
-                INTERNAL_ERROR ( rc, "KDatabaseOpenDirectoryRead: failed to access KDirectory 'src.%s'", self -> full_spec );
-            else
-            {
-                KDirectory *ddir;
-                rc = KDatabaseOpenDirectoryUpdate ( ddb, & ddir );
-                if ( rc != 0 )
-                    INTERNAL_ERROR ( rc, "KDatabaseOpenDirectoryUpdate: failed to access KDirectory 'dst.%s'", self -> full_spec );
-                else
-                {
-                    switch ( KDirectoryPathType ( sdir, name ) )
-                    {
-                    case kptNotFound:
-                        if ( required )
-                        {
-                            rc = RC ( rcExe, rcDirectory, rcOpening, rcPath, rcNotFound );
-                            ERROR ( rc, "required directory 'src.%s./%s' does not exist", self -> full_spec, name );
-                        }
-                        break;
-
-                    case kptBadPath:
-                        rc = RC ( rcExe, rcDirectory, rcOpening, rcPath, rcInvalid );
-                        INTERNAL_ERROR ( rc, "directory path 'src.%s./%s' is invalid", self -> full_spec, name );
-                        break;
-
-                    case kptDir:
-                    case kptDir | kptAlias:
-                    {
-                        dir = ( * make ) ( self, ctx, sdir, ddir, name );
-                        break;
-                    }
-
-                    default:
-                        rc = RC ( rcExe, rcDirectory, rcOpening, rcPath, rcIncorrect );
-                        INTERNAL_ERROR ( rc, "directory path 'src.%s./%s' is not a directory", self -> full_spec, name );
-                    }
-
-                    KDirectoryRelease ( ddir );
-                }
-
-                KDirectoryRelease ( sdir );
-            }
-
-            KDatabaseRelease ( ddb );
-        }
-
-        KDatabaseRelease ( sdb );
-    }
-
-    return dir;
-}
-
-
-/* AddDirPair
- *  called from implementations
- */
-void DbPairAddDirPair ( DbPair *self, const ctx_t *ctx, struct DirPair *dir )
-{
-    if ( dir != NULL )
-    {
-        FUNC_ENTRY ( ctx );
-
-        rc_t rc;
-
-        STATUS ( 4, "adding directory pair '%s'", dir -> full_spec );
-        rc = VectorAppend ( & self -> dirs, NULL, ( const void* ) dir );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "failed to add directory pair '%s'", dir -> full_spec );
-    }
-}
-
-
-/* Init
- */
-void DbPairInit ( DbPair *self, const ctx_t *ctx, const DbPair_vt *vt,
-    const VDatabase *src, VDatabase *dst, const char *name, const char *opt_full_spec )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcDatabase, rcConstructing, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad DbPair" );
-        return;
-    }
-
-    memset ( self, 0, sizeof * self );
-    self -> vt = vt;
-    VectorInit ( & self -> dbs, 0, 4 );
-    VectorInit ( & self -> tbls, 0, 8 );
-    VectorInit ( & self -> dirs, 0, 8 );
-
-    if ( opt_full_spec == NULL )
-        opt_full_spec = "";
-
-    rc = VDatabaseAddRef ( self -> sdb = src );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to duplicate db 'src.%s%s%s'", opt_full_spec, opt_full_spec [ 0 ] ? "." : "", name );
-    else
-    {
-        rc = VDatabaseAddRef ( self -> ddb = dst );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to duplicate db 'dst.%s%s%s'", opt_full_spec, opt_full_spec [ 0 ] ? "." : "", name );
-        else
-        {
-            char *full_spec;
-
-            self -> full_spec_size = string_size ( opt_full_spec ) + string_size ( name );
-            if ( opt_full_spec [ 0 ] != 0  )
-                ++ self -> full_spec_size;
-
-            TRY ( full_spec = MemAlloc ( ctx, self -> full_spec_size + 1, false ) )
-            {
-                if ( opt_full_spec [ 0 ] != 0 )
-                    rc = string_printf ( full_spec, self -> full_spec_size + 1, NULL, "%s.%s", opt_full_spec, name );
-                else
-                    strcpy ( full_spec, name );
-                if ( rc != 0 )
-                    ABORT ( rc, "miscalculated string size" );
-                else
-                {
-                    static const char *no_exclude [] = { NULL };
-
-                    self -> full_spec = full_spec;
-                    self -> name = full_spec;
-                    if ( opt_full_spec [ 0 ] != 0 )
-                        self -> name += string_size ( opt_full_spec ) + 1;
-
-                    self -> exclude_dbs = no_exclude;
-                    self -> exclude_tbls = no_exclude;
-                    self -> exclude_meta = no_exclude;
-
-                    KRefcountInit ( & self -> refcount, 1, "DbPair", "init", name );
-                    return;
-                }
-            }
-
-            VDatabaseRelease ( self -> ddb );
-            self -> ddb = NULL;
-        }
-
-        VDatabaseRelease ( self -> sdb );
-        self -> sdb = NULL;
-    }
-}
-
-/* Destroy
- *  destroys superclass items
- */
-static
-void CC DbPairReleaseDbPair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    DbPairRelease ( item, ctx );
-}
-
-static
-void CC DbPairReleaseTablePair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    TablePairRelease ( item, ctx );
-}
-
-static
-void CC DbPairReleaseDirPair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    DirPairRelease ( item, ctx );
-}
-
-void DbPairDestroy ( DbPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    VectorWhack ( & self -> dbs, DbPairReleaseDbPair, ( void* ) ctx );
-    VectorWhack ( & self -> tbls, DbPairReleaseTablePair, ( void* ) ctx );
-    VectorWhack ( & self -> dirs, DbPairReleaseDirPair, ( void* ) ctx );
-
-    MetaPairRelease ( self -> meta, ctx );
-
-    rc = VDatabaseRelease ( self -> ddb );
-    if ( rc != 0 )
-        WARN ( "VDatabaseRelease failed on 'dst.%s'", self -> full_spec );
-    VDatabaseRelease ( self -> sdb );
-
-    MemFree ( ctx, ( void* ) self -> full_spec, self -> full_spec_size + 1 );
-
-    memset ( self, 0, sizeof * self );
-}
diff --git a/tools/sra-sort/db-pair.h b/tools/sra-sort/db-pair.h
deleted file mode 100644
index 94bf817..0000000
--- a/tools/sra-sort/db-pair.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_db_pair_
-#define _h_sra_sort_db_pair_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_vector_
-#include <klib/vector.h>
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KDirectory;
-struct VTable;
-struct VDatabase;
-struct TablePair;
-struct MetaPair;
-struct DirPair;
-
-
-/*--------------------------------------------------------------------------
- * DbPair
- *  interface to pairing of source and destination tables
- */
-typedef struct DbPair_vt DbPair_vt;
-
-typedef struct DbPair DbPair;
-struct DbPair
-{
-    /* polymorphic */
-    const DbPair_vt *vt;
-
-    /* the pair of VDatabases */
-    struct VDatabase const *sdb;
-    struct VDatabase *ddb;
-
-    /* the set of enclosed DbPairs */
-    Vector dbs;
-
-    /* the set of TablePairs */
-    Vector tbls;
-
-    /* the set of DirPairs */
-    Vector dirs;
-
-    /* the pair of KMetadata */
-    struct MetaPair *meta;
-
-    /* exclusions */
-    const char **exclude_dbs;
-    const char **exclude_tbls;
-    const char **exclude_meta;
-
-    /* simple db name */
-    const char *name;
-
-    /* full db spec */
-    size_t full_spec_size;
-    const char *full_spec;
-
-    /* reference counting */
-    KRefcount refcount;
-    uint32_t align;
-};
-
-#ifndef DBPAIR_IMPL
-#define DBPAIR_IMPL DbPair
-#endif
-
-struct DbPair_vt
-{
-    void ( * whack ) ( DBPAIR_IMPL *self, const ctx_t *ctx );
-    void ( * explode ) ( DBPAIR_IMPL *self, const ctx_t *ctx );
-    const char* ( * get_tbl_mbr ) ( const DBPAIR_IMPL *self, const ctx_t *ctx,
-        struct VTable const *src, const char *name );
-};
-
-
-/* Make
- *  makes an object based upon open source and destination VDatabase objects
- */
-DbPair *DbPairMake ( const ctx_t *ctx,
-    struct VDatabase const *src, struct VDatabase *dst, const char *name );
-
-
-/* Release
- */
-void DbPairRelease ( DbPair *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-DbPair *DbPairDuplicate ( DbPair *self, const ctx_t *ctx );
-
-
-/* Copy
- *  copy from source to destination
- */
-void DbPairCopy ( DbPair *self, const ctx_t *ctx );
-
-
-/* Run
- */
-void DbPairRun ( DbPair *self, const ctx_t *ctx );
-
-
-/* MakeDbPair
- */
-DbPair *DbPairMakeDbPair ( DbPair *self, const ctx_t *ctx, const char *member, const char *name, bool required,
-    DbPair* ( * make ) ( DbPair *self, const ctx_t *ctx,
-        struct VDatabase const *src, struct VDatabase *dst, const char *name )
-     );
-
-DbPair *DbPairMakeStdDbPair ( struct DbPair *self, const ctx_t *ctx,
-    struct VDatabase const *src, struct VDatabase *dst, const char *name );
-
-
-/* MakeTablePair
- */
-struct TablePair *DbPairMakeTablePair ( DbPair *self, const ctx_t *ctx,
-    const char *member, const char *name, bool required, bool reorder,
-    struct TablePair* ( * make ) ( DbPair *self, const ctx_t *ctx,
-        struct VTable const *src, struct VTable *dst, const char *name, bool reorder )
-     );
-
-
-/* GetTblMember
- *  v1 schema does not preserve member name with an object
- *  some schemas confuse types with the same name
- */
-#define DbPairGetTblMember( self, ctx, src, name ) \
-    POLY_DISPATCH_PTR ( get_tbl_mbr, self, const DBPAIR_IMPL, ctx, src, name )
-
-
-/* AddDbPair
- *  called from implementations
- */
-void DbPairAddDbPair ( DbPair *self, const ctx_t *ctx, DbPair *db );
-
-
-/* AddTablePair
- *  called from implementations
- */
-void DbPairAddTablePair ( DbPair *self, const ctx_t *ctx, struct TablePair *tbl );
-
-
-/* MakeDirPair
- */
-struct DirPair *DbPairMakeDirPair ( DbPair *self, const ctx_t *ctx, const char *name, bool required,
-    struct DirPair* ( * make ) ( DbPair *self, const ctx_t *ctx,
-        struct KDirectory const *src, struct KDirectory *dst, const char *name )
-     );
-
-
-/* AddDirPair
- *  called from implementations
- */
-void DbPairAddDirPair ( DbPair *self, const ctx_t *ctx, struct DirPair *dir );
-
-
-/* Init
- *  initialize superclass with vt
- *  also db pair and name
- *  plus optional full-spec
- */
-void DbPairInit ( DbPair *self, const ctx_t *ctx, const DbPair_vt *vt,
-    struct VDatabase const *src, struct VDatabase *dst,
-    const char *name, const char *opt_full_spec );
-
-/* Destroy
- *  destroys superclass items
- */
-void DbPairDestroy ( DbPair *self, const ctx_t *ctx );
-
-
-#endif /* _h_sra_sort_db_pair_ */
diff --git a/tools/sra-sort/dir-pair.c b/tools/sra-sort/dir-pair.c
deleted file mode 100644
index 5f7f63a..0000000
--- a/tools/sra-sort/dir-pair.c
+++ /dev/null
@@ -1,504 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct DirPair StdDirPair;
-#define DIRPAIR_IMPL StdDirPair
-
-#include "dir-pair.h"
-#include "db-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-
-#include <kfs/directory.h>
-#include <kfs/file.h>
-#include <kfs/mmap.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-
-FILE_ENTRY ( dir-pair );
-
-
-static
-void StdDirPairWhack ( StdDirPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    DirPairDestroy ( self, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static DirPair_vt StdDirPair_vt =
-{
-    StdDirPairWhack
-};
-
-
-/* Make
- *  make a standard directory pair from existing KDirectory objects
- */
-DirPair *DirPairMake ( const ctx_t *ctx,
-    const KDirectory *src, KDirectory *dst,
-    const char *name, const char *opt_full_spec )
-{
-    FUNC_ENTRY ( ctx );
-
-    StdDirPair *dir;
-
-    TRY ( dir = MemAlloc ( ctx, sizeof * dir, false ) )
-    {
-        TRY ( DirPairInit ( dir, ctx, & StdDirPair_vt, src, dst, name, opt_full_spec ) )
-        {
-            return dir;
-        }
-
-        MemFree ( ctx, dir, sizeof * dir );
-    }
-
-    return NULL;
-}
-
-
-DirPair *DbPairMakeStdDirPair ( DbPair *self, const ctx_t *ctx,
-    const KDirectory *src, KDirectory *dst, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-    return DirPairMake ( ctx, src, dst, name, self -> full_spec );
-}
-
-
-/* Release
- *  called by db at end of copy
- */
-void DirPairRelease ( DirPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "DirPair" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcDirectory, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release DirPair" );
-        }
-    }
-}
-
-/* Duplicate
- */
-DirPair *DirPairDuplicate ( DirPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "DirPair" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcDirectory, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate DirPair" );
-            return NULL;
-        }
-    }
-
-    return ( DirPair* ) self;
-}
-
-
-/* Copy
- *  copy from source to destination directory
- */
-typedef struct DirPairCopyParams DirPairCopyParams;
-struct DirPairCopyParams
-{
-    const DirPair *self;
-    const ctx_t *ctx;
-    char *relpath;
-    size_t psize;
-    const KDirectory *src;
-    KDirectory *dst;
-};
-
-static
-rc_t DirPairCopyDir ( const DirPair *self, const ctx_t *ctx,
-    const KDirectory *src, KDirectory *dst, char *relpath, size_t psize );
-
-static
-rc_t DirPairCopyFile ( const DirPair *self, const ctx_t *ctx,
-    const KDirectory *src, KDirectory *dst, char *relpath )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* get source access mode */
-    uint32_t access;
-    rc_t rc = KDirectoryAccess ( src, & access, relpath );
-    if ( rc != 0 )
-    {
-        ERROR ( rc, "failed to determine access mode of file 'dst.%.*s%s'",
-                self -> owner_spec_size, self -> full_spec, relpath );
-    }
-    else
-    {
-        KFile *d;
-        rc = KDirectoryCreateFile ( dst, & d, false, access, kcmInit | kcmParents, relpath );
-        if ( rc != 0 )
-        {
-            ERROR ( rc, "failed to create file 'dst.%.*s%s'",
-                    self -> owner_spec_size, self -> full_spec, relpath );
-        }
-        else
-        {
-            const KFile *s;
-            /* open source */
-            rc = KDirectoryOpenFileRead ( src, & s, relpath );
-            if ( rc != 0 )
-            {
-                ERROR ( rc, "failed to open file 'src.%.*s%s'",
-                        self -> owner_spec_size, self -> full_spec, relpath );
-            }
-            else
-            {
-                const KMMap *mm;
-                rc = KMMapMakeMaxRead ( & mm, s );
-                if ( rc != 0 )
-                {
-                    ERROR ( rc, "failed to map file 'src.%.*s%s'",
-                            self -> owner_spec_size, self -> full_spec, relpath );
-                }
-                else
-                {
-                    uint64_t mm_pos;
-
-                    /* get initial position and size */
-                    rc = KMMapPosition ( mm, & mm_pos );
-                    if ( rc != 0 )
-                    {
-                        ERROR ( rc, "failed to determine position of map file 'src.%.*s%s'",
-                                self -> owner_spec_size, self -> full_spec, relpath );
-                    }
-                    else
-                    {
-                        size_t mm_size;
-                        rc = KMMapSize ( mm, & mm_size );
-                        if ( rc != 0 )
-                        {
-                            ERROR ( rc, "failed to determine size of map file 'src.%.*s%s'",
-                                    self -> owner_spec_size, self -> full_spec, relpath );
-                        }
-                        else while ( mm_size != 0 )
-                        {
-                            size_t num_writ;
-                            const void *mm_addr;
-
-                            /* access address */
-                            rc = KMMapAddrRead ( mm, & mm_addr );
-                            if ( rc != 0 )
-                            {
-                                ERROR ( rc, "failed to access address of map file 'src.%.*s%s'",
-                                        self -> owner_spec_size, self -> full_spec, relpath );
-                                break;
-                            }
-
-                            /* write region to output */
-                            rc = KFileWriteAll ( d, mm_pos, mm_addr, mm_size, & num_writ );
-                            if ( rc != 0 )
-                            {
-                                ERROR ( rc, "failed to write to file 'dst.%.*s%s'",
-                                        self -> owner_spec_size, self -> full_spec, relpath );
-                                break;
-                            }
-                            if ( num_writ != mm_size )
-                            {
-                                rc = RC ( rcExe, rcFile, rcWriting, rcTransfer, rcIncomplete );
-                                ERROR ( rc, "failed to write to file 'dst.%.*s%s'",
-                                        self -> owner_spec_size, self -> full_spec, relpath );
-                                break;
-                            }
-
-                            /* now try to shift region */
-                            mm_pos += mm_size;
-                            rc = KMMapReposition ( mm, mm_pos, & mm_size );
-                            if ( rc != 0 )
-                            {
-                                if ( GetRCState ( rc ) == rcInvalid )
-                                    rc = 0;
-                                else
-                                {
-                                    ERROR ( rc, "failed to remap file 'src.%.*s%s'",
-                                            self -> owner_spec_size, self -> full_spec, relpath );
-                                }
-                                break;
-                            }
-                        }
-                    }
-
-                    KMMapRelease ( mm );
-                }
-
-                KFileRelease ( s );
-            }
-
-            KFileRelease ( d );
-        }
-    }
-
-    return rc;
-}
-
-static
-rc_t DirPairCopyAlias ( const DirPair *self, const ctx_t *ctx,
-    const KDirectory *src, KDirectory *dst, char *relpath )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-#if WINDOWS
-    rc = RC ( rcExe, rcAlias, rcCopying, rcFunction, rcUnsupported );
-    ERROR ( rc, "Windows... failed to create alias 'dst.%.*s%s'",
-            self -> owner_spec_size, self -> full_spec, relpath );
-#else
-    char apath [ 4096 ];
-
-    /* resolve the alias */
-    rc = KDirectoryResolveAlias ( src, false, apath, sizeof apath, relpath );    
-    if ( rc != 0 )
-    {
-        ERROR ( rc, "failed to resolve alias 'src.%.*s%s'",
-                self -> owner_spec_size, self -> full_spec, relpath );
-    }
-    else
-    {
-        rc = KDirectoryCreateAlias ( dst, 0777, kcmInit, apath, relpath );
-        if ( rc != 0 )
-        {
-            ERROR ( rc, "failed to create alias 'dst.%.*s%s'",
-                    self -> owner_spec_size, self -> full_spec, relpath );
-        }
-    }
-#endif
-
-    return rc;
-}
-
-static
-rc_t CC DirPairCopyEntry ( const KDirectory *local, uint32_t type, const char *name, void *data )
-{
-    DirPairCopyParams *pb = data;
-    const ctx_t *ctx = pb -> ctx;
-
-    FUNC_ENTRY ( ctx );
-
-    const DirPair *self = pb -> self;
-    char *relpath = pb -> relpath;
-    size_t num_writ, psize = pb -> psize;
-
-    /* since we are walking two directories in parallel,
-       build a path relative to each base directory and go */
-    rc_t rc = string_printf ( & relpath [ psize ], 4096 - psize, & num_writ, "/%s", name );
-    if ( rc != 0 )
-    {
-        ERROR ( rc, "failed to build path for entry '%.*s%.*s/%s'",
-                self -> owner_spec_size, self -> full_spec,
-                ( uint32_t ) psize, relpath, name );
-        return rc;
-    }
-
-    /* see what type of entry we have */
-    switch ( type )
-    {
-    case kptFile:
-        return DirPairCopyFile ( pb -> self, ctx, pb -> src, pb -> dst, relpath );
-    case kptDir:
-        return DirPairCopyDir ( pb -> self, ctx, pb -> src, pb -> dst, relpath, psize + num_writ );
-    case kptFile | kptAlias:
-    case kptDir | kptAlias:
-        return DirPairCopyAlias ( pb -> self, ctx, pb -> src, pb -> dst, relpath );
-    }
-
-    rc = RC ( rcExe, rcDirectory, rcVisiting, rcType, rcUnsupported );
-    ERROR ( rc, "cannot copy entry '%.*s%s' - not a supported file system type",
-            self -> owner_spec_size, self -> full_spec, relpath );
-    return rc;
-}
-
-static
-rc_t DirPairCopyDir ( const DirPair *self, const ctx_t *ctx,
-    const KDirectory *src, KDirectory *dst, char *relpath, size_t psize )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* get source access mode */
-    uint32_t access;
-    rc_t rc = KDirectoryAccess ( src, & access, relpath );
-    if ( rc != 0 )
-    {
-        ERROR ( rc, "failed to determine access mode of directory 'src.%.*s%s'",
-                self -> owner_spec_size, self -> full_spec, relpath );
-    }
-    else
-    {
-        /* create the destination directory */
-        rc = KDirectoryCreateDir ( dst, access, kcmOpen | kcmParents, relpath );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to create directory 'dst.%.*s%s'",
-                    self -> owner_spec_size, self -> full_spec, relpath );
-        else
-        {
-            DirPairCopyParams pb;
-
-            pb . self = self;
-            pb . ctx = ctx;
-            pb . relpath = relpath;
-            pb . psize = psize;
-            pb . src = src;
-            pb . dst = dst;
-
-            /* going to perform shallow copy */
-            rc = KDirectoryVisit ( src, false, DirPairCopyEntry, & pb, relpath );
-        }
-    }
-
-    return rc;
-}
-
-
-void DirPairCopy ( DirPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    size_t psize;
-    char relpath [ 4096 ];
-
-    STATUS ( 2, "copying directory '%s'", self -> full_spec );
-
-    rc = string_printf ( relpath, sizeof relpath, & psize, "./%s", self -> name );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "failed to build initial path string for '%s'", self -> full_spec );
-    else
-    {
-        DirPairCopyDir ( self, ctx, self -> sdir, self -> ddir, relpath, psize );
-    }
-}
-
-
-/* Init
- */
-void DirPairInit ( DirPair *self, const ctx_t *ctx, const DirPair_vt *vt,
-    const KDirectory *src, KDirectory *dst,
-    const char *name, const char *full_spec )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcDirectory, rcConstructing, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad DirPair" );
-        return;
-    }
-
-    memset ( self, 0, sizeof * self );
-    self -> vt = vt;
-
-    rc = KDirectoryAddRef ( self -> sdir = src );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to duplicate dir 'src.%s./%s'", full_spec, name );
-    else
-    {
-        rc = KDirectoryAddRef ( self -> ddir = dst );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to duplicate dir 'dst.%s./%s'", full_spec, name );
-        else
-        {
-            char *new_full_spec;
-
-            self -> owner_spec_size = ( uint32_t ) string_size ( full_spec );
-            self -> full_spec_size = self -> owner_spec_size + string_size ( name ) + 2;
-
-            TRY ( new_full_spec = MemAlloc ( ctx, self -> full_spec_size + 1, false ) )
-            {
-                rc = string_printf ( new_full_spec, self -> full_spec_size + 1, NULL, "%s./%s", full_spec, name );
-                if ( rc != 0 )
-                    ABORT ( rc, "miscalculated string size" );
-                else
-                {
-                    self -> full_spec = new_full_spec;
-                    self -> name = new_full_spec + self -> owner_spec_size + 2;
-
-                    KRefcountInit ( & self -> refcount, 1, "DirPair", "init", name );
-                    return;
-                }
-            }
-
-            KDirectoryRelease ( self -> ddir );
-            self -> ddir = NULL;
-        }
-
-        KDirectoryRelease ( self -> sdir );
-        self -> sdir = NULL;
-    }
-}
-
-/* Destroy
- */
-void DirPairDestroy ( DirPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = KDirectoryRelease ( self -> ddir );
-    if ( rc != 0 )
-        WARN ( "KDirectoryRelease failed on 'dst.%s'", self -> full_spec );
-    KDirectoryRelease ( self -> sdir );
-
-    MemFree ( ctx, ( void* ) self -> full_spec, self -> full_spec_size + 1 );
-
-    memset ( self, 0, sizeof * self );
-}
diff --git a/tools/sra-sort/dir-pair.h b/tools/sra-sort/dir-pair.h
deleted file mode 100644
index 7bccb93..0000000
--- a/tools/sra-sort/dir-pair.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_dir_pair_
-#define _h_sra_sort_dir_pair_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct DbPair;
-struct KDirectory;
-
-
-/*--------------------------------------------------------------------------
- * DirPair
- *  interface to pairing of source and destination directories
- */
-typedef struct DirPair_vt DirPair_vt;
-
-typedef struct DirPair DirPair;
-struct DirPair
-{
-    /* polymorphic */
-    const DirPair_vt *vt;
-
-    /* the pair of KDirectories */
-    struct KDirectory const *sdir;
-    struct KDirectory *ddir;
-
-    /* simple directory name */
-    const char *name;
-
-    /* full directory spec */
-    size_t full_spec_size;
-    const char *full_spec;
-
-    /* reference counting */
-    KRefcount refcount;
-
-    /* owner spec size */
-    uint32_t owner_spec_size;
-};
-
-#ifndef DIRPAIR_IMPL
-#define DIRPAIR_IMPL DirPair
-#endif
-
-struct DirPair_vt
-{
-    void ( * whack ) ( DIRPAIR_IMPL *self, const ctx_t *ctx );
-};
-
-
-/* Make
- *  make a standard directory pair from existing KDirectory objects
- */
-DirPair *DirPairMake ( const ctx_t *ctx,
-    struct KDirectory const *src, struct KDirectory *dst,
-    const char *name, const char *full_spec );
-
-DirPair *DbPairMakeStdDirPair ( struct DbPair *self, const ctx_t *ctx,
-    struct KDirectory const *src, struct KDirectory *dst, const char *name );
-
-
-/* Release
- *  called by db at end of copy
- */
-void DirPairRelease ( DirPair *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-DirPair *DirPairDuplicate ( DirPair *self, const ctx_t *ctx );
-
-
-/* Copy
- *  copy from source to destination directory
- */
-void DirPairCopy ( DirPair *self, const ctx_t *ctx );
-
-
-/* Init
- */
-void DirPairInit ( DirPair *self, const ctx_t *ctx, const DirPair_vt *vt,
-    struct KDirectory const *src, struct KDirectory *dst,
-    const char *name, const char *opt_full_spec );
-
-/* Destroy
- */
-void DirPairDestroy ( DirPair *self, const ctx_t *ctx );
-
-
-#endif /* _h_sra_sort_dir_pair_ */
diff --git a/tools/sra-sort/dump-blob-boundaries.c b/tools/sra-sort/dump-blob-boundaries.c
deleted file mode 100644
index 6639d8a..0000000
--- a/tools/sra-sort/dump-blob-boundaries.c
+++ /dev/null
@@ -1,203 +0,0 @@
-#include <kdb/manager.h>
-#include <kdb/database.h>
-#include <kdb/table.h>
-#include <kdb/column.h>
-#include <kdb/namelist.h>
-#include <klib/namelist.h>
-#include <klib/rc.h>
-
-#include <stdio.h>
-
-static int64_t blob_limit = 10;
-
-static
-uint32_t dump_col ( const KColumn *col, const char *dbname, const char *tblname, const char *colname )
-{
-    rc_t rc = 0;
-    int64_t row, first;
-    const KColumnBlob *blob;
-    uint32_t count, num_blobs;
-
-    for ( num_blobs = 0, row = 1; rc == 0 && num_blobs < blob_limit; ++ num_blobs, row = first + count )
-    {
-        rc = KColumnOpenBlobRead ( col, & blob, row );
-        if ( rc == 0 )
-        {
-            rc = KColumnBlobIdRange ( blob, & first, & count );
-            if ( rc != 0 )
-                fprintf ( stderr, "failed to get row-range for blob containing row '%s.%s.%s.%ld'\n", dbname, tblname, colname, row );
-            else
-            {
-                size_t num_read, remaining;
-                rc = KColumnBlobRead ( blob, 0, & first, 0, & num_read, & remaining );
-                if ( rc != 0 )
-                    fprintf ( stderr, "failed to get size of blob containing row '%s.%s.%s.%ld'\n", dbname, tblname, colname, row );
-                else
-                {
-                    printf ( "  %ld .. %ld ( %u rows ), %zu bytes\n", first, first + count - 1, count, remaining );
-                }
-            }
-
-            KColumnBlobRelease ( blob );
-        }
-        else if ( GetRCState ( rc ) == rcNotFound )
-            return num_blobs;
-        else
-        {
-            fprintf ( stderr, "failed to open blob for row '%s.%s.%s.%ld'\n", dbname, tblname, colname, row );
-        }
-    }
-
-    for ( ; rc == 0; ++ num_blobs, row = first + count )
-    {
-        rc = KColumnOpenBlobRead ( col, & blob, row );
-        if ( rc == 0 )
-        {
-            rc = KColumnBlobIdRange ( blob, & first, & count );
-            KColumnBlobRelease ( blob );
-        }
-    }
-
-    return num_blobs;
-}
-
-static
-void dump_col_name ( const KTable *tbl, const char *dbname, const char *tblname, const char *colname )
-{
-    const KColumn *col;
-    rc_t rc = KTableOpenColumnRead ( tbl, & col, colname );
-    if ( rc != 0 )
-        fprintf ( stderr, "failed to open column '%s.%s.%s'\n", dbname, tblname, colname );
-    else
-    {
-        uint32_t num_blobs;
-        printf ( "COLUMN '%s.%s.%s'\n", dbname, tblname, colname );
-        num_blobs = dump_col ( col, dbname, tblname, colname );
-        KColumnRelease ( col );
-        if ( num_blobs > blob_limit )
-            printf ( "  %u blobs in column\n", num_blobs );
-    }
-}
-
-static
-void dump_tbl ( const KTable *tbl, const char *tblname, int argc, char *argv [] )
-{
-    if ( argc >= 4 )
-    {
-        int i;
-        for ( i = 3; i < argc; ++ i )
-        {
-            dump_col_name ( tbl, argv [ 1 ], tblname, argv [ i ] );
-        }
-    }
-    else
-    {
-        KNamelist *names;
-        rc_t rc = KTableListCol ( tbl, & names );
-        if ( rc != 0 )
-            fprintf ( stderr, "failed to list columns for tbl '%s.%s'\n", argv [ 1 ], tblname );
-        else
-        {
-            uint32_t count;
-            rc = KNamelistCount ( names, & count );
-            if ( rc != 0 )
-                fprintf ( stderr, "failed to count columns for tbl '%s.%s'\n", argv [ 1 ], tblname );
-            else
-            {
-                uint32_t i;
-                for ( i = 0; i < count; ++ i )
-                {
-                    const char *name;
-                    rc = KNamelistGet ( names, i, & name );
-                    if ( rc != 0 )
-                        fprintf ( stderr, "failed to access column name [ %u ] for tbl '%s.%s'\n", i, argv [ 1 ], tblname );
-                    else
-                    {
-                        dump_col_name ( tbl, argv [ 1 ], tblname, name );
-                    }
-                }
-            }
-
-            KNamelistRelease ( names );
-        }
-    }
-}
-
-static
-void dump_tbl_name ( const KDatabase *db, const char *tblname, int argc, char *argv [] )
-{
-    const KTable *tbl;
-    rc_t rc = KDatabaseOpenTableRead ( db, & tbl, tblname );
-    if ( rc != 0 )
-        fprintf ( stderr, "failed to open table '%s.%s'\n", argv [ 1 ], tblname );
-    else
-    {
-        dump_tbl ( tbl, tblname, argc, argv );
-        KTableRelease ( tbl );
-    }
-}
-
-static
-void dump_db ( const KDatabase *db, int argc, char *argv [] )
-{
-    if ( argc >= 3 )
-        dump_tbl_name ( db, argv [ 2 ], argc, argv );
-    else
-    {
-        KNamelist *names;
-        rc_t rc = KDatabaseListTbl ( db, & names );
-        if ( rc != 0 )
-            fprintf ( stderr, "failed to list tables for db '%s'\n", argv [ 1 ] );
-        else
-        {
-            uint32_t count;
-            rc = KNamelistCount ( names, & count );
-            if ( rc != 0 )
-                fprintf ( stderr, "failed to count tables for db '%s'\n", argv [ 1 ] );
-            else
-            {
-                uint32_t i;
-                for ( i = 0; i < count; ++ i )
-                {
-                    const char *name;
-                    rc = KNamelistGet ( names, i, & name );
-                    if ( rc != 0 )
-                        fprintf ( stderr, "failed to access table name [ %u ] for db '%s'\n", i, argv [ 1 ] );
-                    else
-                    {
-                        dump_tbl_name ( db, name, argc, argv );
-                    }
-                }
-            }
-
-            KNamelistRelease ( names );
-        }
-    }
-}
-
-int main ( int argc, char *argv [] )
-{
-    if ( argc < 2 )
-        printf ( "Usage: %s database [ table [ col ... ] ]\n", argv [ 0 ] );
-    else
-    {
-        const KDBManager *mgr;
-        rc_t rc = KDBManagerMakeRead ( & mgr, NULL );
-        if ( rc == 0 )
-        {
-            const KDatabase *db;
-            rc = KDBManagerOpenDBRead ( mgr, & db, argv [ 1 ] );
-            if ( rc != 0 )
-                fprintf ( stderr, "failed to open database '%s'\n", argv [ 1 ] );
-            else
-            {
-                dump_db ( db, argc, argv );
-                KDatabaseRelease ( db );
-            }
-
-            KDBManagerRelease ( mgr );
-        }
-    }
-
-    return 0;
-}
diff --git a/tools/sra-sort/except.c b/tools/sra-sort/except.c
deleted file mode 100644
index c95d7e0..0000000
--- a/tools/sra-sort/except.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "caps.h"
-#include "ctx.h"
-#include "except.h"
-#include "status.h"
-
-#include <klib/rc.h>
-#include <klib/log.h>
-#include <klib/status.h>
-#include <klib/printf.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-
-FILE_ENTRY ( except );
-
-
-/*--------------------------------------------------------------------------
- * exception-related activities
- */
-
-static
-rc_t log_msg ( const ctx_t *ctx, uint32_t lineno, KLogLevel lvl, const char *msg )
-{
-#if _DEBUGGING
-    const ctx_info_t *ctx_info = ctx -> info;
-    return pLogMsg ( lvl, "$(mod)/$(file).c:$(line): $(func): $(msg)",
-                     "mod=%s,file=%s,line=%u,func=%s,msg=%s",
-                     ctx_info -> mod,
-                     ctx_info -> file,
-                     lineno,
-                     ctx_info -> func,
-                     msg );
-#else
-    return LogMsg ( lvl, msg );
-#endif
-}
-
-static
-rc_t log_err ( const ctx_t *ctx, uint32_t lineno, KLogLevel lvl, rc_t rc, const char *msg )
-{
-#if _DEBUGGING
-    const ctx_info_t *ctx_info = ctx -> info;
-    return pLogErr ( lvl, rc, "$(mod)/$(file).c:$(line): $(func): $(msg)",
-                     "mod=%s,file=%s,line=%u,func=%s,msg=%s",
-                     ctx_info -> mod,
-                     ctx_info -> file,
-                     lineno,
-                     ctx_info -> func,
-                     msg );
-#else
-    return LogErr ( lvl, rc, msg );
-#endif
-}
-
-static
-rc_t status_msg ( const ctx_t *ctx, uint32_t lineno, uint32_t level, const char *msg )
-{
-#if _DEBUGGING
-    const ctx_info_t *ctx_info = ctx -> info;
-    return KStsMsg ( "%s/%s.c:%u: %s: [ %u ] %s",
-                     ctx_info -> mod,
-                     ctx_info -> file,
-                     lineno,
-                     ctx_info -> func,
-                     level,
-                     msg );
-#else
-    return KStsMsg ( "%s", msg );
-#endif
-}
-
-
-/* Annotate
- *  make some annotation
- *  but not an error
- */
-void Annotate ( const ctx_t *ctx, uint32_t lineno, KLogLevel level, const char *msg, ... )
-{
-    rc_t rc2;
-    size_t num_writ;
-    char buff [ 8 * 1024 ];
-
-    va_list args;
-    va_start ( args, msg );
-
-    rc2 = string_vprintf ( buff, sizeof buff, & num_writ, msg, args );
-    if ( rc2 != 0 )
-        log_err ( ctx, lineno, klogInt, rc2, "Annotate failure" );
-    else
-        log_msg ( ctx, lineno, level, buff );
-
-    va_end ( args );
-}
-
-
-/* Error
- *  make an annotation
- *  record an error as an rc_t
- */
-void Error ( const ctx_t *ctx, uint32_t lineno, KLogLevel level, rc_t rc, const char *msg, ... )
-{
-    rc_t rc2;
-    ctx_t *mctx;
-    size_t num_writ;
-    char buff [ 8 * 1024 ];
-
-    va_list args;
-    va_start ( args, msg );
-
-    rc2 = string_vprintf ( buff, sizeof buff, & num_writ, msg, args );
-    if ( rc2 != 0 )
-        log_err ( ctx, lineno, klogInt, rc2, "Error annotation failure" );
-    else
-        log_err ( ctx, lineno, level, rc, buff );
-
-    va_end ( args );
-
-    for ( mctx = ( ctx_t* ) ctx; mctx != NULL && mctx -> rc == 0; mctx = ( ctx_t* ) mctx -> caller )
-        mctx -> rc = rc;
-}
-
-
-/* Abort
- *  make an annotation
- *  record an error as an rc_t
- *  exit process
- */
-void Abort ( const ctx_t *ctx, uint32_t lineno, rc_t rc, const char *msg, ... )
-{
-    rc_t rc2;
-    ctx_t *mctx;
-    size_t num_writ;
-    char buff [ 8 * 1024 ];
-
-    va_list args;
-    va_start ( args, msg );
-
-    rc2 = string_vprintf ( buff, sizeof buff, & num_writ, msg, args );
-    if ( rc2 != 0 )
-        log_err ( ctx, lineno, klogFatal, rc2, "Abort annotation failure" );
-    else
-        log_err ( ctx, lineno, klogFatal, rc, buff );
-
-    va_end ( args );
-
-    for ( mctx = ( ctx_t* ) ctx; mctx != NULL && mctx -> rc == 0; mctx = ( ctx_t* ) mctx -> caller )
-        mctx -> rc = rc;
-
-    exit ( -1 );
-}
-
-
-/* Clear
- *  clears annotation and error
- */
-void ClearAnnotation ( const ctx_t *ctx )
-{
-    ClearError ( ctx );
-}
-
-
-/* ClearError
- *  clears error, leaving any annotation
- */
-void ClearError ( const ctx_t *ctx )
-{
-    ctx_t *mctx;
-    for ( mctx = ( ctx_t* ) ctx; mctx != NULL && mctx -> rc != 0; mctx = ( ctx_t* ) mctx -> caller )
-        mctx -> rc = 0;
-}
-
-
-/* Status
- *  report status
- */
-void Status ( const ctx_t *ctx, uint32_t lineno, uint32_t level, const char *msg, ... )
-{
-    if ( KStsLevelGet () >= level )
-    {
-        rc_t rc2;
-        size_t num_writ;
-        char buff [ 8 * 1024 ];
-
-        va_list args;
-        va_start ( args, msg );
-
-        rc2 = string_vprintf ( buff, sizeof buff, & num_writ, msg, args );
-        if ( rc2 != 0 )
-            log_err ( ctx, lineno, klogInt, rc2, "Status failure" );
-        else
-            status_msg ( ctx, lineno, level, buff );
-
-        va_end ( args );
-    }
-}
-
-/* POLY_DISPATCH
- *  dispatch a polymorphic message
- */
-void null_self_error ( const ctx_t *ctx, uint32_t lineno, const char *msg )
-{
-    rc_t rc = RC ( rcExe, rcFunction, rcResolving, rcSelf, rcNull );
-    Error ( ctx, lineno, klogInt, rc, "cannot dispatch message '%s'", msg );
-}
diff --git a/tools/sra-sort/except.h b/tools/sra-sort/except.h
deleted file mode 100644
index 911149b..0000000
--- a/tools/sra-sort/except.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_except_
-#define _h_sra_sort_except_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_log_
-#include <klib/log.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * exception-related macros
- */
-
-
-/* ANNOTATE
- *  make some annotation
- *  but not an error
- */
-void Annotate ( const ctx_t *ctx, uint32_t lineno, KLogLevel level, const char *msg, ... );
-#define ANNOTATE( msg, ... ) \
-    Annotate ( ctx, __LINE__, klogInfo, msg, ## __VA_ARGS__ )
-
-
-/* WARN
- *  make some annotation
- *  but not an error
- */
-#define WARN( msg, ... ) \
-    Annotate ( ctx, __LINE__, klogWarn, msg, ## __VA_ARGS__ )
-
-
-/* INFO_ERROR
- *  make an annotation
- *  record an informational error as an rc_t
- */
-void Error ( const ctx_t *ctx, uint32_t lineno, KLogLevel level, rc_t rc, const char *msg, ... );
-#define INFO_ERROR( rc, msg, ... ) \
-    Error ( ctx, __LINE__, klogInfo, rc, msg, ## __VA_ARGS__ )
-
-
-/* ERROR
- *  make an annotation
- *  record an error as an rc_t
- */
-#ifdef ERROR
-#undef ERROR
-#endif
-#define ERROR( rc, msg, ... ) \
-    Error ( ctx, __LINE__, klogErr, rc, msg, ## __VA_ARGS__ )
-
-
-/* INTERNAL_ERROR
- *  make an annotation
- *  record an internal error as an rc_t
- */
-#define INTERNAL_ERROR( rc, msg, ... ) \
-    Error ( ctx, __LINE__, klogInt, rc, msg, ## __VA_ARGS__ )
-
-
-/* SYSTEM_ERROR
- *  make an annotation
- *  record a system error as an rc_t
- */
-#define SYSTEM_ERROR( rc, msg, ... ) \
-    Error ( ctx, __LINE__, klogSys, rc, msg, ## __VA_ARGS__ )
-
-
-/* ABORT
- *  make an annotation
- *  record an error as an rc_t
- *  exit process
- */
-void Abort ( const ctx_t *ctx, uint32_t lineno, rc_t rc, const char *msg, ... );
-#define ABORT( rc, msg, ... )                        \
-    Abort ( ctx, __LINE__, rc, msg, ## __VA_ARGS__ )
-
-
-/* FAILED
- *  a test of rc within ctx_t
- */
-#ifdef FAILED
-#undef FAILED
-#endif
-#define FAILED() \
-    ( ctx -> rc != 0 )
-
-
-/* TRY
- *  another C language "try" macro
- */
-#define TRY( expr ) \
-    expr; \
-    if ( ! FAILED () )
-
-
-/* CATCH
- *  attempts to catch rc on certain types
- */
-#define CATCH( obj_code, state_code ) \
-    else if ( GetRCObject ( ctx -> rc ) == obj_code && GetRCState ( ctx -> rc ) == state_code )
-#define CATCH_STATE( state_code ) \
-    else if ( GetRCState ( ctx -> rc ) == state_code )
-#define CATCH_OBJ( obj_code ) \
-    else if ( GetRCObject ( ctx -> rc ) == obj_code )
-#define CATCH_ALL() \
-    else
-
-/* ON_FAIL
- */
-#define ON_FAIL( expr ) \
-    expr; \
-    if ( FAILED () )
-
-
-/* CLEAR
- *  clears annotation and error
- */
-void ClearAnnotation ( const ctx_t *ctx );
-#define CLEAR() \
-    ClearAnnotation ( ctx )
-
-
-/* CLEAR_ERR
- *  clears error, leaving any annotation
- */
-void ClearError ( const ctx_t *ctx );
-#define CLEAR_ERR() \
-    ClearError ( ctx )
-
-
-#endif
diff --git a/tools/sra-sort/gcc-ped.sh b/tools/sra-sort/gcc-ped.sh
deleted file mode 100755
index 7db5891..0000000
--- a/tools/sra-sort/gcc-ped.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# test gcc for support of supplied parameters
-
-if test $# -ge 4
-then
-    if ( echo "typedef int x;" | gcc -c -xc - -o /dev/null $1 $2 $3 $4 > /dev/null 2>&1 )
-    then
-	echo $1 $2 $3 $4
-	exit 0
-    fi
-fi
-
-if test $# -ge 3
-then
-    if ( echo "typedef int x;" | gcc -c -xc - -o /dev/null $1 $2 $3 > /dev/null 2>&1 )
-    then
-	echo $1 $2 $3
-	exit 0
-    fi
-fi
-
-if test $# -ge 2
-then
-    if ( echo "typedef int x;" | gcc -c -xc - -o /dev/null $1 $2 > /dev/null 2>&1 )
-    then
-	echo $1 $2
-	exit 0
-    fi
-fi
-
-if test $# -ge 1
-then
-    if ( echo "typedef int x;" | gcc -c -xc - -o /dev/null $1 > /dev/null 2>&1 )
-    then
-	echo $1
-	exit 0
-    fi
-fi
diff --git a/tools/sra-sort/glob-poslen.c b/tools/sra-sort/glob-poslen.c
deleted file mode 100644
index 4f028a4..0000000
--- a/tools/sra-sort/glob-poslen.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-struct GlobalPosLenReader;
-#define COLREADER_IMPL struct GlobalPosLenReader
-
-#include "glob-poslen.h"
-#include "tbl-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "map-file.h"
-#include "sra-sort.h"
-
-#include <insdc/insdc.h>
-#include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
-#include <klib/printf.h>
-#include <klib/sort.h>
-#include <klib/rc.h>
-
-#include <string.h>
-#include <assert.h>
-
-FILE_ENTRY ( glob-poslen );
-
-
-/*--------------------------------------------------------------------------
- * GlobalPosLenReader
- */
-struct GlobalPosLenReader
-{
-    ColumnReader dad;
-
-    uint64_t poslen;
-
-    const VCursor *curs;
-    uint32_t idx [ 3 ];
-
-    uint32_t chunk_size;
-
-    size_t full_spec_size;
-    char full_spec [ 1 ];
-};
-
-static
-void GlobalPosLenReaderWhack ( GlobalPosLenReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    VCursorRelease ( self -> curs );
-    MemFree ( ctx, self, sizeof * self + self -> full_spec_size );
-}
-
-static
-const char *GlobalPosLenReaderFullSpec ( const GlobalPosLenReader *self, const ctx_t *ctx )
-{
-    return self -> full_spec;
-}
-
-static
-uint64_t GlobalPosLenReaderIdRange ( const GlobalPosLenReader *self, const ctx_t *ctx, int64_t *opt_first )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    uint64_t count;
-
-    rc = VCursorIdRange ( self -> curs, 0, opt_first, & count );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorIdRange failed on '%s'", self -> full_spec );
-
-    return count;
-}
-
-static
-void GlobalPosLenReaderPreCopy ( GlobalPosLenReader *self, const ctx_t *ctx )
-{
-}
-
-static
-void GlobalPosLenReaderPostCopy ( GlobalPosLenReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    /* called after a single copy
-       assumes that entire row-range of table has been copied */
-
-    rc = VCursorRelease ( self -> curs );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorRelease failed on '%s'", self -> full_spec );
-    else
-        self -> curs = NULL;
-}
-
-static
-const void *GlobalPosLenReaderReadGlobal ( GlobalPosLenReader *self, const ctx_t *ctx,
-    int64_t row_id, uint32_t *elem_bits, uint32_t *boff, uint32_t *row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const void *base;
-
-    assert ( elem_bits != NULL );
-    assert ( boff != NULL );
-    assert ( row_len != NULL );
-
-    rc = VCursorCellDataDirect ( self -> curs, row_id, self -> idx [ 0 ],
-        elem_bits, & base, boff, row_len );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to read REF_LEN for row %ld", row_id );
-    else
-    {
-        INSDC_coord_len ref_len;
-        assert ( * boff == 0 );
-        assert ( * row_len == 1 );
-        assert ( * elem_bits == sizeof ref_len * 8 );
-        ref_len = ( ( const INSDC_coord_len* ) base ) [ 0 ];
-
-        rc = VCursorCellDataDirect ( self -> curs, row_id, self -> idx [ 1 ],
-            elem_bits, & base, boff, row_len );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to read GLOBAL_REF_START for row %ld", row_id );
-        else
-        {
-            uint64_t pos;
-            assert ( * boff == 0 );
-            assert ( * row_len == 1 );
-            assert ( * elem_bits == sizeof ( uint64_t ) * 8 );
-            pos = ( ( const uint64_t* ) base ) [ 0 ];
-
-            self -> poslen = encode_pos_len ( pos, ref_len );
-#if 1
-            assert ( decode_pos_len ( self -> poslen ) == pos );
-            assert ( poslen_to_len ( self -> poslen ) == ref_len );
-#endif
-            return & self -> poslen;
-        }
-    }
-
-    return NULL;
-
-}
-
-static
-const void *GlobalPosLenReaderReadLocal ( GlobalPosLenReader *self, const ctx_t *ctx,
-    int64_t row_id, uint32_t *elem_bits, uint32_t *boff, uint32_t *row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const void *base;
-
-    assert ( elem_bits != NULL );
-    assert ( boff != NULL );
-    assert ( row_len != NULL );
-
-    rc = VCursorCellDataDirect ( self -> curs, row_id, self -> idx [ 0 ],
-        elem_bits, & base, boff, row_len );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to read REF_LEN for row %ld", row_id );
-    else
-    {
-        INSDC_coord_len ref_len;
-        assert ( * boff == 0 );
-        assert ( * row_len == 1 );
-        assert ( * elem_bits == sizeof ref_len * 8 );
-        ref_len = ( ( const INSDC_coord_len* ) base ) [ 0 ];
-
-        rc = VCursorCellDataDirect ( self -> curs, row_id, self -> idx [ 1 ],
-            elem_bits, & base, boff, row_len );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to read REF_START for row %ld", row_id );
-        else
-        {
-            INSDC_coord_zero ref_start;
-            assert ( * boff == 0 );
-            assert ( * row_len == 1 );
-            assert ( * elem_bits == sizeof ref_start * 8 );
-            ref_start = ( ( const INSDC_coord_zero* ) base ) [ 0 ];
-
-            rc = VCursorCellDataDirect ( self -> curs, row_id, self -> idx [ 2 ],
-                elem_bits, & base, boff, row_len );
-            if ( rc != 0 )
-                ERROR ( rc, "failed to read REF_ID for row %ld", row_id );
-            else
-            {
-                int64_t ref_id;
-                assert ( * boff == 0 );
-                assert ( * row_len == 1 );
-                assert ( * elem_bits == sizeof ref_id * 8 );
-                ref_id = ( ( const int64_t* ) base ) [ 0 ];
-
-                if ( ref_id <= 0 )
-                    self -> poslen = 0;
-                else
-                {
-                    uint64_t pos = local_to_global ( ref_id, self -> chunk_size, ref_start );
-                    self -> poslen = encode_pos_len ( pos, ref_len );
-#if 1
-                    assert ( global_to_row_id ( pos, self -> chunk_size ) == ref_id );
-                    assert ( decode_pos_len ( self -> poslen ) == pos );
-                    assert ( poslen_to_len ( self -> poslen ) == ref_len );
-#endif
-                }
-
-                return & self -> poslen;
-            }
-        }
-    }
-
-    return NULL;
-}
-
-static  ColumnReader_vt GlobalPosLenReader_vt =
-{
-    GlobalPosLenReaderWhack,
-    GlobalPosLenReaderFullSpec,
-    GlobalPosLenReaderIdRange,
-    GlobalPosLenReaderPreCopy,
-    GlobalPosLenReaderPostCopy,
-    GlobalPosLenReaderReadGlobal
-};
-
-static  ColumnReader_vt LocalPosLenReader_vt =
-{
-    GlobalPosLenReaderWhack,
-    GlobalPosLenReaderFullSpec,
-    GlobalPosLenReaderIdRange,
-    GlobalPosLenReaderPreCopy,
-    GlobalPosLenReaderPostCopy,
-    GlobalPosLenReaderReadLocal
-};
-
-
-
-/* MakeGlobalPosLenReader
- */
-ColumnReader *TablePairMakeGlobalPosLenReader ( TablePair *self, const ctx_t *ctx, uint32_t chunk_size )
-{
-    FUNC_ENTRY ( ctx );
-
-    GlobalPosLenReader *reader;
-    size_t full_spec_size = self -> full_spec_size + sizeof "src..GLOBAL_POSLEN" - 1;
-
-    TRY ( reader = MemAlloc ( ctx, sizeof * reader + full_spec_size, false ) )
-    {
-        /* we don't yet know whether the reader will have GLOBAL_REF_START */
-        TRY ( ColumnReaderInit ( & reader -> dad, ctx, & GlobalPosLenReader_vt ) )
-        {
-            rc_t rc = string_printf ( reader -> full_spec, full_spec_size + 1, NULL, "src.%s.GLOBAL_POSLEN", self -> full_spec );
-            if ( rc != 0 )
-                ABORT ( rc, "cannot seem to calculate string sizes" );
-            else
-            {
-                rc = VTableCreateCursorRead ( self -> stbl, & reader -> curs );
-                if ( rc != 0 )
-                    ERROR ( rc, "failed to create cursor on 'src.%s'", self -> full_spec );
-                else
-                {
-                    /* we need length as a 2nd sorting key */
-                    rc = VCursorAddColumn ( reader -> curs, & reader -> idx [ 0 ], "REF_LEN" );
-                    if ( rc != 0 )
-                        ERROR ( rc, "VCursorAddColumn failed on '%s' cursor", self -> full_spec );
-                    else
-                    {
-                        /* add columns AFTER open */
-                        rc = VCursorPermitPostOpenAdd ( reader -> curs );
-                        if ( rc != 0 )
-                            ERROR ( rc, "VCursorPermitPostOpenAdd failed on '%s' cursor", self -> full_spec );
-                        else
-                        {
-                            /* open single-column cursor - errors adding further columns
-                               help determine what type of positioning we have */
-                            rc = VCursorOpen ( reader -> curs );
-                            if ( rc != 0 )
-                                ERROR ( rc, "VCursorOpen failed on '%s' cursor", self -> full_spec );
-                            else
-                            {
-                                /* finish initialization */
-                                reader -> chunk_size = chunk_size;
-                                reader -> full_spec_size = ( uint32_t ) full_spec_size;
-
-                                /* now try to get GLOBAL_REF_START */
-                                rc = VCursorAddColumn ( reader -> curs, & reader -> idx [ 1 ], "GLOBAL_REF_START" );
-                                if ( rc == 0 )
-                                {
-                                    STATUS ( 3, "'%s' table has GLOBAL_REF_START", self -> full_spec );
-                                    
-                                    /* retrieval function returns this position directly */
-                                    return & reader -> dad;
-                                }
-
-                                /* try for local refpos */
-                                rc = VCursorAddColumn ( reader -> curs, & reader -> idx [ 1 ], "REF_START" );
-                                if ( rc == 0 )
-                                    rc = VCursorAddColumn ( reader -> curs, & reader -> idx [ 2 ], "REF_ID" );
-                                if ( rc == 0 )
-                                {
-                                    STATUS ( 3, "'%s' table has local REF_START", self -> full_spec );
-
-                                    /* retrieval function synthesizes local to global */
-                                    reader -> dad . vt = & LocalPosLenReader_vt;
-                                    return & reader -> dad;
-                                }
-
-                                ERROR ( rc, "failed to populate '%s' cursor", reader -> full_spec );
-                            }
-                        }
-                    }
-
-                    VCursorRelease ( reader -> curs );
-                }
-            }
-        }
-
-        MemFree ( ctx, reader, sizeof * reader + full_spec_size );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/glob-poslen.h b/tools/sra-sort/glob-poslen.h
deleted file mode 100644
index 0a39102..0000000
--- a/tools/sra-sort/glob-poslen.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_glob_poslen_
-#define _h_sra_sort_glob_poslen_
-
-#ifndef _h_sra_sort_col_pair_
-#include "col-pair.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct TablePair;
-
-
-/*--------------------------------------------------------------------------
- * inline functions
- */
-#define MAX_POS_BITS 34
-#define MAX_LEN_BITS ( 64 - MAX_POS_BITS )
-
-
-static __inline__
-uint64_t encode_pos_len ( uint64_t pos, uint32_t len )
-{
-    assert ( pos < ( ( ~ ( uint64_t ) 0 ) >> MAX_LEN_BITS ) );
-    assert ( 0 < len && len <= ( ( ~ ( uint32_t ) 0 ) >> ( 32 - MAX_LEN_BITS ) ) );
-
-    /* position ascending, length descending */
-    return ( ( pos + 1 ) << MAX_LEN_BITS ) - len;
-}
-
-static __inline__
-uint64_t decode_pos_len ( uint64_t pos_len )
-{
-    return pos_len >> MAX_LEN_BITS;
-}
-
-static __inline__
-uint32_t poslen_to_len ( uint64_t pos_len )
-{
-    return ( 1U << MAX_LEN_BITS ) - ( ( uint32_t ) pos_len & ( ( ~ ( uint32_t ) 0 ) >> ( 32 - MAX_LEN_BITS ) ) );
-}
-
-static __inline__
-uint64_t local_to_global ( int64_t row_id, uint32_t chunk_size, uint32_t offset )
-{
-    assert ( row_id > 0 );
-    return ( row_id - 1 ) * chunk_size + offset;
-}
-
-static __inline__
-int64_t global_to_row_id ( uint64_t pos, uint32_t chunk_size )
-{
-    return ( pos / chunk_size ) + 1;
-}
-
-
-/*--------------------------------------------------------------------------
- * GlobalPosLenReader
- */
-typedef struct GlobalPosLenReader GlobalPosLenReader;
-
-
-/* MakeGlobalPosLenReader
- */
-ColumnReader *TablePairMakeGlobalPosLenReader ( struct TablePair *self, const ctx_t *ctx, uint32_t chunk_size );
-
-
-#endif /* _h_sra_sort_glob_poslen_ */
diff --git a/tools/sra-sort/id-mapper-col.c b/tools/sra-sort/id-mapper-col.c
deleted file mode 100644
index 0bfea9b..0000000
--- a/tools/sra-sort/id-mapper-col.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct MapRowIdColWriter MapRowIdColWriter;
-#define COLWRITER_IMPL MapRowIdColWriter
-
-#include "id-mapper-col.h"
-#include "map-file.h"
-#include "csra-tbl.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <klib/rc.h>
-
-#include <string.h>
-
-FILE_ENTRY ( id-mapper-col );
-
-
-/*--------------------------------------------------------------------------
- * MapRowIdColWriter
- */
-
-struct MapRowIdColWriter
-{
-    ColumnWriter dad;
-
-    ColumnWriter *cw;
-
-    MapFile *idx;
-
-    int64_t *row;
-    uint32_t max_row_len;
-
-    bool assign_ids;
-};
-
-/* called by Release */
-static
-void MapRowIdColWriterDestroy ( MapRowIdColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnWriterRelease ( self -> cw, ctx );
-    self -> cw = NULL;
-
-    MapFileRelease ( self -> idx, ctx );
-    self -> idx = NULL;
-
-    if ( self -> row != NULL )
-    {
-        MemFree ( ctx, self -> row, sizeof * self -> row * self -> max_row_len );
-        self -> row = NULL;
-        self -> max_row_len = 0;
-    }
-}
-
-static
-void MapRowIdColWriterWhack ( MapRowIdColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    MapRowIdColWriterDestroy ( self, ctx );
-    ColumnWriterDestroy ( & self -> dad, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-/* full spec */
-static
-const char* MapRowIdColWriterFullSpec ( const MapRowIdColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    return ColumnWriterFullSpec ( self -> cw, ctx );
-}
-
-static
-void MapRowIdColWriterPreCopy ( MapRowIdColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    ColumnWriterPreCopy ( self -> cw, ctx );
-}
-
-static
-void MapRowIdColWriterPostCopy ( MapRowIdColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> max_row_len > 16 )
-    {
-        void *row;
-        TRY ( row = MemAlloc ( ctx, sizeof * self -> row * 16, false ) )
-        {
-            MemFree ( ctx, self -> row, sizeof * self -> row * self -> max_row_len );
-            self -> row = row;
-            self -> max_row_len = 16;
-        }
-        CATCH_ALL ()
-        {
-            CLEAR ();
-        }
-    }
-
-    ColumnWriterPostCopy ( self -> cw, ctx );
-}
-
-/* write row to destination */
-static
-void MapRowIdColWriterWrite ( MapRowIdColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    uint32_t i;
-
-    /* here is where the VALUE coming in, which is a row-id,
-       gets mapped to its new value before being written out */
-    assert ( elem_bits == sizeof * self -> row * 8 );
-    assert ( boff == 0 );
-
-    /* resize row if needed */
-    if ( self -> max_row_len < row_len )
-    {
-        MemFree ( ctx, self -> row, sizeof * self -> row * self -> max_row_len );
-
-        self -> max_row_len = ( row_len + 15 ) & ~ 15U;
-        ON_FAIL ( self -> row = MemAlloc ( ctx, sizeof * self -> row * self -> max_row_len, false ) )
-        {
-            ANNOTATE ( "failed to allocate memory for %u row-ids", self -> max_row_len );
-            return;
-        }
-    }
-
-    /* copy row */
-    memcpy ( self -> row, data, row_len * sizeof * self -> row );
-
-    /* map ids */
-    for ( i = 0; i < row_len; ++ i )
-    {
-        if ( self -> row [ i ] != 0 )
-        {
-            int64_t new_id;
-
-            /* map old row-id to new row-id */
-            ON_FAIL ( new_id = MapFileMapSingleOldToNew ( self -> idx, ctx, self -> row [ i ], self -> assign_ids ) )
-            {
-                ANNOTATE ( "failed to map source row-id %ld", self -> row [ i ] );
-                return;
-            }
-            if ( new_id == 0 )
-            {
-                rc_t rc = RC ( rcExe, rcColumn, rcWriting, rcId, rcNotFound );
-                ERROR ( rc, "failed to map source row-id %ld", self -> row [ i ] );
-                return;
-            }
-
-            self -> row [ i ] = new_id;
-        }
-    }
-
-    /* now write the translated ids */
-    ColumnWriterWrite ( self -> cw, ctx, sizeof * self -> row * 8, self -> row, 0, row_len );
-}
-
-static
-void MapRowIdColWriterWriteStatic ( MapRowIdColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len, uint64_t count )
-{
-    FUNC_ENTRY ( ctx );
-    rc_t rc = RC ( rcExe, rcColumn, rcWriting, rcType, rcIncorrect );
-    INTERNAL_ERROR ( rc, "writing to a non-static column" );
-}
-
-/* commit all writes */
-static
-void MapRowIdColWriterCommit ( MapRowIdColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    ColumnWriterCommit ( self -> cw, ctx );
-    MapRowIdColWriterDestroy ( self, ctx );
-}
-
-static ColumnWriter_vt MapRowIdColWriter_vt =
-{
-    MapRowIdColWriterWhack,
-    MapRowIdColWriterFullSpec,
-    MapRowIdColWriterPreCopy,
-    MapRowIdColWriterPostCopy,
-    MapRowIdColWriterWrite,
-    MapRowIdColWriterWriteStatic,
-    MapRowIdColWriterCommit
-};
-
-
-/* MakeMapRowIdWriter
- *  if "assign_ids" is true, the MapFile will be asked to
- *  map an old=>new id or assign (and record) a new id.
- */
-ColumnWriter *TablePairMakeMapRowIdWriter ( TablePair *self,
-    const ctx_t *ctx, ColumnWriter *cw, MapFile *idx, bool assign_ids )
-{
-    FUNC_ENTRY ( ctx );
-
-    MapRowIdColWriter *writer;
-
-    TRY ( writer = MemAlloc ( ctx, sizeof * writer, false ) )
-    {
-        TRY ( ColumnWriterInit ( & writer -> dad, ctx, & MapRowIdColWriter_vt, true ) )
-        {
-            writer -> max_row_len = 16;
-            TRY ( writer -> row = MemAlloc ( ctx, sizeof * writer -> row * writer -> max_row_len, false ) )
-            {
-                TRY ( writer -> idx = MapFileDuplicate ( idx, ctx ) )
-                {
-                    TRY ( writer -> cw = ColumnWriterDuplicate ( cw, ctx ) )
-                    {
-                        writer -> assign_ids = assign_ids;
-                        return & writer -> dad;
-                    }
-
-                    MapFileRelease ( writer -> idx, ctx );
-                }
-
-                ColumnWriterDestroy ( & writer -> dad, ctx );
-            }
-
-            MemFree ( ctx, writer -> row, sizeof * writer -> row * writer -> max_row_len );
-        }
-
-        MemFree ( ctx, writer, sizeof * writer );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/id-mapper-col.h b/tools/sra-sort/id-mapper-col.h
deleted file mode 100644
index ae5770f..0000000
--- a/tools/sra-sort/id-mapper-col.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_id_mapper_col_
-#define _h_sra_sort_id_mapper_col_
-
-#ifndef _h_sra_sort_col_pair_
-#include "col-pair.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct MapFile;
-struct TablePair;
-
-
-/*--------------------------------------------------------------------------
- * MapRowIdColWriter
- */
-
-
-/* MakeMapRowIdWriter
- *  if "assign_ids" is true, the MapFile will be asked to
- *  map an old=>new id or assign (and record) a new id.
- */
-ColumnWriter *TablePairMakeMapRowIdWriter ( struct TablePair *self,
-    const ctx_t *ctx, ColumnWriter *cw, struct MapFile *idx, bool assign_ids );
-
-
-#endif /* _h_sra_sort_id_mapper_col_ */
diff --git a/tools/sra-sort/idx-mapping.c b/tools/sra-sort/idx-mapping.c
deleted file mode 100644
index d1434aa..0000000
--- a/tools/sra-sort/idx-mapping.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "idx-mapping.h"
-#include "ctx.h"
-
-#include <klib/sort.h>
-
-FILE_ENTRY ( idx-mapping );
-
-
-/*--------------------------------------------------------------------------
- * IdxMapping
- *  
- */
-
-#if USE_OLD_KSORT
-
-int CC IdxMappingCmpOld ( const void *a, const void *b, void *data )
-{
-    const IdxMapping *ap = a;
-    const IdxMapping *bp = b;
-
-    if ( ap -> old_id < bp -> old_id )
-        return -1;
-    return ap -> old_id > bp -> old_id;
-}
-
-int CC IdxMappingCmpNew ( const void *a, const void *b, void *data )
-{
-    const IdxMapping *ap = a;
-    const IdxMapping *bp = b;
-
-    if ( ap -> new_id < bp -> new_id )
-        return -1;
-    return ap -> new_id > bp -> new_id;
-}
-
-#else /* USE_OLD_KSORT */
-
-#define T( x ) ( ( const IdxMapping* ) ( x ) )
-
-#define SWAP( a, b, off, size ) KSORT_TSWAP ( IdxMapping, a, b )
-
-
-void IdxMappingSortOld ( IdxMapping *self, const ctx_t *ctx, size_t count )
-{
-#define CMP( a, b ) \
-    ( ( T ( a ) -> old_id < T ( b ) -> old_id ) ? -1 : ( T ( a ) -> old_id > T ( b ) -> old_id ) )
-
-    KSORT ( self, count, sizeof * self, 0, sizeof * self );
-
-#undef CMP
-}
-
-void IdxMappingSortNew ( IdxMapping *self, const ctx_t *ctx, size_t count )
-{
-#define CMP( a, b ) \
-    ( ( T ( a ) -> new_id < T ( b ) -> new_id ) ? -1 : ( T ( a ) -> new_id > T ( b ) -> new_id ) )
-
-    KSORT ( self, count, sizeof * self, 0, sizeof * self );
-
-#undef CMP
-}
-
-#undef T
-#undef SWAP
-
-#endif /* USE_OLD_KSORT */
diff --git a/tools/sra-sort/idx-mapping.h b/tools/sra-sort/idx-mapping.h
deleted file mode 100644
index 7691526..0000000
--- a/tools/sra-sort/idx-mapping.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_idx_mapping_
-#define _h_sra_sort_idx_mapping_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * IdxMapping
- *  
- */
-typedef struct IdxMapping IdxMapping;
-struct IdxMapping
-{
-    int64_t old_id, new_id;
-};
-
-#if USE_OLD_KSORT
-
-/* ksort callbacks */
-int CC IdxMappingCmpOld ( const void *a, const void *b, void *data );
-int CC IdxMappingCmpNew ( const void *a, const void *b, void *data );
-
-#else
-
-/* ksort_inlines */
-void IdxMappingSortOld ( IdxMapping *self, const ctx_t *ctx, size_t count );
-void IdxMappingSortNew ( IdxMapping *self, const ctx_t *ctx, size_t count );
-
-#endif
-
-#endif /* _h_sra_sort_idx_mapping_ */
diff --git a/tools/sra-sort/map-file.c b/tools/sra-sort/map-file.c
deleted file mode 100644
index 209876f..0000000
--- a/tools/sra-sort/map-file.c
+++ /dev/null
@@ -1,1192 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "map-file.h"
-#include "idx-mapping.h"
-#include "ctx.h"
-#include "caps.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <kfs/directory.h>
-#include <kfs/file.h>
-#include <kfs/buffile.h>
-#include <klib/refcount.h>
-#include <klib/sort.h>
-#include <klib/rc.h>
-
-#include <string.h>
-#include <endian.h>
-#include <byteswap.h>
-
-#include "except.h"
-
-FILE_ENTRY ( map-file );
-
-
-/*--------------------------------------------------------------------------
- * MapFile
- *  a file for storing id mappings
- */
-struct MapFile
-{
-    int64_t first_id;
-    uint64_t num_ids;
-    uint64_t num_mapped_ids;
-    int64_t max_new_id;
-    KFile *f_old, *f_new, *f_pos;
-    size_t id_size;
-    KRefcount refcount;
-};
-
-
-/* Whack
- */
-static
-void MapFileWhack ( MapFile *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    rc_t rc = KFileRelease ( self -> f_old );
-    if ( rc != 0 )
-        SYSTEM_ERROR ( rc, "KFileRelease failed on old=>new" );
-    else
-    {
-        rc = KFileRelease ( self -> f_new );
-        if ( rc != 0 )
-            ABORT ( rc, "KFileRelease failed on new=>old" );
-        else if ( self -> f_pos != NULL )
-        {
-            rc = KFileRelease ( self -> f_pos );
-            if ( rc != 0 )
-                ABORT ( rc, "KFileRelease failed on global poslen temp column" );
-        }
-        
-        MemFree ( ctx, self, sizeof * self );
-    }
-}
-
-
-/* Make
- *  creates an id map
- */
-static
-void MapFileMakeFork ( KFile **fp, const ctx_t *ctx, const char *name,
-    KDirectory *wd, const char *tmpdir, int pid, size_t bsize, const char *fork )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* create temporary KFile */
-    rc_t rc;
-    KFile *backing;
-
-    rc = KDirectoryCreateFile ( wd, & backing, true,
-        0600, kcmInit | kcmParents, "%s/sra-sort-%s.%s.%d", tmpdir, name, fork, pid );
-    if ( rc != 0 )
-        SYSTEM_ERROR ( rc, "failed to create %s id map file '%s'", fork, name );
-    else
-    {
-#if ! WINDOWS
-        /* never try to remove files on Windows */
-        if ( ctx -> caps -> tool -> unlink_idx_files )
-        {
-            /* unlink KFile */
-            rc = KDirectoryRemove ( wd, false, "%s/sra-sort-%s.%s.%d", tmpdir, name, fork, pid );
-            if ( rc != 0 )
-                WARN ( "failed to unlink %s id map file '%s'", fork, name );
-        }
-#endif
-
-        /* create a read/write buffer file */
-        rc = KBufFileMakeWrite ( fp, backing, true, bsize );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "failed to create buffer for %s id map file '%s'", fork, name );
-
-        KFileRelease ( backing );
-    }
-}
-
-static
-MapFile *MapFileMakeInt ( const ctx_t *ctx, const char *name, bool random, bool for_poslen )
-{
-    MapFile *mf;
-    TRY ( mf = MemAlloc ( ctx, sizeof * mf, true ) )
-    {
-        /* create KDirectory */
-        KDirectory *wd;
-        rc_t rc = KDirectoryNativeDir ( & wd );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "failed to create native directory" );
-        else
-        {
-            const Tool *tp = ctx -> caps -> tool;
-            size_t bsize = random ? tp -> map_file_random_bsize : tp -> map_file_bsize;
-
-            /* create old=>new id file */
-            TRY ( MapFileMakeFork ( & mf -> f_old, ctx, name, wd, tp -> tmpdir, tp -> pid, bsize, "old" ) )
-            {
-                TRY ( MapFileMakeFork ( & mf -> f_new, ctx, name, wd, tp -> tmpdir, tp -> pid, 32 * 1024, "new" ) )
-                {
-                    if ( for_poslen )
-                        MapFileMakeFork ( & mf -> f_pos, ctx, name, wd, tp -> tmpdir, tp -> pid, 32 * 1024, "pos" );
-
-                    KDirectoryRelease ( wd );
-
-                    if ( ! FAILED () )
-                    {
-                        /* this is our guy */
-                        KRefcountInit ( & mf -> refcount, 1, "MapFile", "make", name );
-                        
-                        return mf;
-                    }
-
-                    KFileRelease ( mf -> f_new );
-                }
-
-                KFileRelease ( mf -> f_old );
-            }
-
-            KDirectoryRelease ( wd );
-        }
-
-        MemFree ( ctx, mf, sizeof * mf );
-    }
-
-    return NULL;
-}
-
-MapFile *MapFileMake ( const ctx_t *ctx, const char *name, bool random )
-{
-    FUNC_ENTRY ( ctx );
-    return MapFileMakeInt ( ctx, name, random, false );
-}
-
-/* MakeForPoslen
- *  creates an id map with an additional poslen file
- *  this is specially for PRIMARY_ALIGNMENT_IDS and SECONDARY_ALIGNMENT_IDS
- *  that use *_ALIGNMENT global position and length as a sorting key
- *  we drop it to a file after its generation so that it can be
- *  picked up later when copying the corresponding alignment table.
- */
-MapFile *MapFileMakeForPoslen ( const ctx_t *ctx, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-    return MapFileMakeInt ( ctx, name, false, true );
-}
-
-
-/* Release
- */
-void MapFileRelease ( const MapFile *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "MapFile" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            MapFileWhack ( ( MapFile* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcFile, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release MapFile" );
-        }
-    }
-}
-
-/* Duplicate
- */
-MapFile *MapFileDuplicate ( const MapFile *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "MapFile" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcFile, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate MapFile" );
-            return NULL;
-        }
-    }
-
-    return ( MapFile* ) self;
-}
-
-
-/* SsetIdRange
- *  required second-stage initialization
- *  must be called before any writes occur
- */
-void MapFileSetIdRange ( MapFile *self, const ctx_t *ctx,
-    int64_t first_id, uint64_t num_ids )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcUpdating, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self" );
-    }
-    else if ( self -> max_new_id != 0 )
-    {
-        rc = RC ( rcExe, rcFile, rcUpdating, rcConstraint, rcViolated );
-        INTERNAL_ERROR ( rc, "cannot change id range after writing has begun" );
-    }
-    else
-    {
-        /* record new first id and count */
-        self -> first_id = first_id;
-        self -> num_ids = num_ids;
-
-        /* determine id size for all ids PLUS 0 for NULL */
-        for ( ++ num_ids, self -> id_size = 1; self -> id_size < 8; ++ self -> id_size )
-        {
-            if ( num_ids <= ( ( uint64_t ) 1 ) << ( self -> id_size * 8 ) )
-                break;
-        }
-    }
-}
-
-
-/* First
- *  return first mapped id
- */
-int64_t MapFileFirst ( const MapFile *self, const ctx_t *ctx )
-{
-    return self -> first_id;
-}
-
-
-/* Count
- *  return num_ids
- */
-uint64_t MapFileCount ( const MapFile *self, const ctx_t *ctx )
-{
-    return self -> num_ids;
-}
-
-
-/* SetOldToNew
- *  write old=>new id mappings
- */
-void MapFileSetOldToNew ( MapFile *self, const ctx_t *ctx, const IdxMapping *ids, size_t count )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self reference" );
-    }
-    else if ( self -> num_ids == 0 )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcRange, rcUndefined );
-        INTERNAL_ERROR ( rc, "SetIdRange must be called with a non-empty range" );
-    }
-    else
-    {
-        size_t i;
-        for ( i = 0; i < count; ++ i )
-        {
-            size_t num_writ;
-            /* zero-based index */
-            int64_t old_id = ids [ i ] . old_id - self -> first_id;
-            /* position in bytes */
-            uint64_t pos = old_id * self -> id_size;
-            /* 1-based translated new-id */
-            int64_t new_id = ids [ i ] . new_id - self -> first_id + 1;
-            assert ( old_id >= 0 );
-            assert ( new_id >= 0 );
-#if __BYTE_ORDER == __BIG_ENDIAN
-            new_id = bswap_64 ( new_id );
-#endif
-            rc = KFileWriteAll ( self -> f_old, pos, & new_id, self -> id_size, & num_writ );
-            if ( rc != 0 )
-            {
-                SYSTEM_ERROR ( rc, "failed to write old=>new id mapping" );
-                break;
-            }
-
-            if ( num_writ != self -> id_size )
-            {
-                rc = RC ( rcExe, rcFile, rcWriting, rcTransfer, rcIncomplete );
-                SYSTEM_ERROR ( rc, "failed to write old=>new id mapping" );
-                break;
-            }
-        }
-    }
-}
-
-
-/* SetNewToOld
- *  write new=>old id mappings
- */
-void MapFileSetNewToOld ( MapFile *self, const ctx_t *ctx, const IdxMapping *ids, size_t count )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self reference" );
-    }
-    else if ( self -> num_ids == 0 )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcRange, rcUndefined );
-        INTERNAL_ERROR ( rc, "SetIdRange must be called with a non-empty range" );
-    }
-    else
-    {
-        if ( ! ctx -> caps -> tool -> write_new_to_old )
-            self -> max_new_id = self -> first_id + count - 1;
-        else
-        {
-            size_t i;
-            for ( i = 0; i < count; ++ i )
-            {
-                size_t num_writ;
-                /* zero based index */
-                int64_t new_id = ids [ i ] . new_id - self -> first_id;
-                /* zero based byte offset */
-                uint64_t pos = new_id * self -> id_size;
-                /* 1-based translated old-id */
-                int64_t old_id = ids [ i ] . old_id - self -> first_id + 1;
-                assert ( new_id >= 0 );
-                assert ( old_id >= 0 );
-#if __BYTE_ORDER == __BIG_ENDIAN
-                old_id = bswap_64 ( old_id );
-#endif
-                rc = KFileWriteAll ( self -> f_new, pos, & old_id, self -> id_size, & num_writ );
-                if ( rc != 0 )
-                {
-                    SYSTEM_ERROR ( rc, "failed to write new=>old id mapping" );
-                    break;
-                }
-                
-                if ( num_writ != self -> id_size )
-                {
-                    rc = RC ( rcExe, rcFile, rcWriting, rcTransfer, rcIncomplete );
-                    SYSTEM_ERROR ( rc, "failed to write new=>old id mapping" );
-                    break;
-                }
-                
-                self -> max_new_id = new_id + self -> first_id;
-            }
-        }
-    }
-}
-
-
-/* SetPoslen
- *  write global position/length in new-id order
- */
-void MapFileSetPoslen ( MapFile *self, const ctx_t *ctx, const IdxMapping *ids, size_t count )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self reference" );
-    }
-    else if ( self -> f_pos == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcFile, rcIncorrect );
-        INTERNAL_ERROR ( rc, "MapFile must be created with MapFileMakeForPoslen" );
-    }
-    else if ( self -> num_ids == 0 )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcRange, rcUndefined );
-        INTERNAL_ERROR ( rc, "SetIdRange must be called with a non-empty range" );
-    }
-    else
-    {
-        /* start writing after the last new id recorded */
-        uint64_t pos = ( self -> max_new_id - self -> first_id + 1 ) * sizeof ids -> new_id;
-
-        size_t i;
-        for ( i = 0; i < count; pos += sizeof ids -> new_id, ++ i )
-        {
-            size_t num_writ;
-            int64_t poslen = ids [ i ] . new_id;
-#if __BYTE_ORDER == __BIG_ENDIAN
-            poslen = bswap_64 ( poslen );
-#endif
-            rc = KFileWriteAll ( self -> f_pos, pos, & poslen, sizeof ids -> new_id, & num_writ );
-            if ( rc != 0 )
-            {
-                SYSTEM_ERROR ( rc, "failed to write poslen temporary column" );
-                break;
-            }
-
-            if ( num_writ != sizeof ids -> new_id )
-            {
-                rc = RC ( rcExe, rcFile, rcWriting, rcTransfer, rcIncomplete );
-                SYSTEM_ERROR ( rc, "failed to write poslen temporary column" );
-                break;
-            }
-        }
-    }
-}
-
-
-/* ReadPoslen
- *  read global position/length in new-id order
- *  starts reading at the indicated row
- *  returns the number read
- */
-size_t MapFileReadPoslen ( const MapFile *self, const ctx_t *ctx,
-    int64_t start_id, uint64_t *poslen, size_t max_count )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    size_t total = 0;
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcReading, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self reference" );
-    }
-    else if ( self -> f_pos == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcReading, rcFile, rcIncorrect );
-        INTERNAL_ERROR ( rc, "MapFile must be created with MapFileMakeForPoslen" );
-    }
-    /* the column is read until end, but
-       this is not an error. just return no-more-data */
-    else if ( start_id == self -> first_id + self -> num_ids )
-        return 0;
-    else if ( start_id < self -> first_id || start_id > self -> first_id + self -> num_ids )
-    {
-        rc = RC ( rcExe, rcFile, rcReading, rcParam, rcInvalid );
-        INTERNAL_ERROR ( rc, "start_id ( %ld ) is not within column range ( %ld .. %ld )",
-            start_id, self -> first_id, self -> first_id + self -> num_ids - 1 );
-    }
-    else if ( max_count != 0 )
-    {
-        /* limit read to number of ids in index */
-        if ( start_id + max_count > self -> first_id + self -> num_ids )
-            max_count = ( size_t ) ( self -> first_id + self -> num_ids - start_id );
-
-        if ( poslen == NULL )
-        {
-            rc = RC ( rcExe, rcFile, rcReading, rcBuffer, rcNull );
-            INTERNAL_ERROR ( rc, "bad buffer parameter" );
-        }
-        else
-        {
-            /* read as many bytes of id as possible */
-            size_t num_read, to_read = max_count * sizeof * poslen;
-            uint64_t pos = ( start_id - self -> first_id ) * sizeof * poslen;
-            rc = KFileReadAll ( self -> f_pos, pos, poslen, to_read, & num_read );
-            if ( rc != 0 )
-                SYSTEM_ERROR ( rc, "failed to read new=>old map" );
-            else
-            {
-                total = ( size_t ) ( num_read / sizeof * poslen );
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-                {
-                    /* revert byte-order */
-                    size_t i;
-                    for ( i = 0; i < total; ++ i )
-                        poslen [ i ] = bswap_64 ( poslen [ i ] );
-                }
-#endif
-            }
-        }
-    }
-
-    return total;
-}
-
-
-/* AllocMissingNewIds
- *  it is possible to have written fewer new=>old mappings
- *  than are supposed to be there, e.g. SEQUENCE that gets
- *  initially written by align tables. unaligned sequences
- *  need to fill in the remainder.
- */
-static
-size_t make_missing_entry ( MapFile *self, const ctx_t *ctx,
-    IdxMapping *missing, size_t i, size_t max_missing_ids,
-    int64_t old_id, int64_t new_id )
-{
-    if ( i == max_missing_ids )
-    {
-        ON_FAIL ( MapFileSetNewToOld ( self, ctx, missing, i ) )
-            return i;
-
-        i = 0;
-    }
-
-    /* insert into missing id map */
-    missing [ i ] . old_id = old_id;
-    missing [ i ] . new_id = new_id;
-
-    /* update old=>new mapping */
-    MapFileSetOldToNew ( self, ctx, & missing [ i ], 1 );
-
-    return i + 1;
-}
-
-int64_t MapFileAllocMissingNewIds ( MapFile *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    int64_t first_allocated = 0;
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcUpdating, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self reference" );
-    }
-    else if ( self -> num_ids == 0 )
-    {
-        rc = RC ( rcExe, rcFile, rcWriting, rcRange, rcUndefined );
-        INTERNAL_ERROR ( rc, "SetIdRange must be called with a non-empty range" );
-    }
-    else
-    {
-        uint64_t num_missing_ids = self -> num_ids - ( self -> max_new_id - self -> first_id + 1 );
-        if ( num_missing_ids != 0 )
-        {
-            IdxMapping *missing;
-
-            /* determine maximum missing id mappings */
-            size_t max_missing_ids = ctx -> caps -> tool -> max_missing_ids;
-            if ( ( uint64_t ) max_missing_ids > num_missing_ids )
-                max_missing_ids = ( size_t ) num_missing_ids;
-
-            /* allocate a buffer of IdxMapping */
-            TRY ( missing = MemAlloc ( ctx, sizeof * missing * max_missing_ids, false ) )
-            {
-                /* use a scan buffer somewhere around 32K,
-                   to keep page-file cache focused on a few pages */
-                void *scan_buffer;
-                const size_t scan_buffer_size = 32 * 1024;
-                TRY ( scan_buffer = MemAlloc ( ctx, scan_buffer_size, false ) )
-                {
-                    size_t i, num_read;
-                    int64_t new_id, old_id = self -> first_id;
-                    uint64_t eof = self -> num_ids * self -> id_size;
-
-                    /* this guy will be used to assign new ids */
-                    int64_t max_new_id = self -> max_new_id;
-                    int64_t entry_max_new_id = self -> max_new_id;
-
-
-                    /* in a loop, read as many ids as possible into scan buffer
-                       the number is dependent upon self->id_size */
-                    for ( i = 0; ; old_id += num_read )
-                    {
-                        size_t j, to_read;
-
-                        /* determine position from old_id */
-                        uint64_t pos = ( old_id - self -> first_id ) * self -> id_size;
-                        if ( pos == eof )
-                            break;
-
-                        /* determine bytes to read - this must be limited
-                           or we risk tricking page-buffer into resizing */
-                        to_read = scan_buffer_size;
-                        if ( pos + to_read > eof )
-                            to_read = ( size_t ) ( eof - pos );
-
-                        /* read as many bytes as we can */
-                        rc = KFileReadAll ( self -> f_old, pos, scan_buffer, to_read, & num_read );
-                        if ( rc != 0 )
-                        {
-                            SYSTEM_ERROR ( rc, "failed to read old=>new map" );
-                            break;
-                        }
-
-                        /* convert to count */                        
-                        num_read /= self -> id_size;
-                        if ( num_read == 0 )
-                        {
-                            rc = RC ( rcExe, rcFile, rcReading, rcTransfer, rcIncomplete );
-                            SYSTEM_ERROR ( rc, "failed to read old=>new map" );
-                            break;
-                        }
-
-                        /* scan for zeros, and for every zero found,
-                           make entry into IdxMapping table, writing
-                           new-id back to old=>new map */
-                        switch ( self -> id_size )
-                        {
-                        case 1:
-                            for ( j = 0; j < num_read; ++ j )
-                            {
-                                if ( ( ( const uint8_t* ) scan_buffer ) [ j ] == 0 )
-                                {
-                                    ON_FAIL ( i = make_missing_entry ( self, ctx, missing,
-                                              i, max_missing_ids, old_id + j, ++ max_new_id ) )
-                                        break;
-                                }
-                            }
-                            break;
-                        case 2:
-                            for ( j = 0; j < num_read; ++ j )
-                            {
-                                if ( ( ( const uint16_t* ) scan_buffer ) [ j ] == 0 )
-                                {
-                                    ON_FAIL ( i = make_missing_entry ( self, ctx, missing,
-                                              i, max_missing_ids, old_id + j, ++ max_new_id ) )
-                                        break;
-                                }
-                            }
-                            break;
-                        case 3:
-                            for ( num_read *= 3, j = 0; j < num_read; j += 3 )
-                            {
-                                if ( ( ( const uint8_t* ) scan_buffer ) [ j + 0 ] == 0 &&
-                                     ( ( const uint8_t* ) scan_buffer ) [ j + 1 ] == 0 &&
-                                     ( ( const uint8_t* ) scan_buffer ) [ j + 2 ] == 0 )
-                                {
-                                    ON_FAIL ( i = make_missing_entry ( self, ctx, missing,
-                                              i, max_missing_ids, old_id + j / 3, ++ max_new_id ) )
-                                        break;
-                                }
-                            }
-                            num_read /= 3;
-                            break;
-                        case 4:
-                            for ( j = 0; j < num_read; ++ j )
-                            {
-                                if ( ( ( const uint32_t* ) scan_buffer ) [ j ] == 0 )
-                                {
-                                    ON_FAIL ( i = make_missing_entry ( self, ctx, missing,
-                                              i, max_missing_ids, old_id + j, ++ max_new_id ) )
-                                        break;
-                                }
-                            }
-                            break;
-                        case 8:
-                            for ( j = 0; j < num_read; ++ j )
-                            {
-                                if ( ( ( const uint64_t* ) scan_buffer ) [ j ] == 0 )
-                                {
-                                    ON_FAIL ( i = make_missing_entry ( self, ctx, missing,
-                                              i, max_missing_ids, old_id + j, ++ max_new_id ) )
-                                        break;
-                                }
-                            }
-                            break;
-                        default:
-                            for ( num_read *= self -> id_size, j = 0; j < num_read; j += self -> id_size )
-                            {
-                                new_id = 0;
-                                memcpy ( & new_id, & ( ( const uint8_t* ) scan_buffer ) [ j ], self -> id_size );
-                                if ( new_id == 0 )
-                                {
-                                    ON_FAIL ( i = make_missing_entry ( self, ctx, missing,
-                                              i, max_missing_ids, old_id + j / self -> id_size, ++ max_new_id ) )
-                                        break;
-                                }
-                            }
-                            num_read /= self -> id_size;
-                        }
-                    }
-
-                    if ( ! FAILED () && i != 0 )
-                        MapFileSetNewToOld ( self, ctx, missing, i );
-
-                    assert ( FAILED () || self -> max_new_id == max_new_id );
-
-                    if ( max_new_id != entry_max_new_id )
-                        first_allocated = entry_max_new_id + 1;
-
-                    MemFree ( ctx, scan_buffer, scan_buffer_size );
-                }
-
-                MemFree ( ctx, missing, sizeof * missing * max_missing_ids );
-            }
-        }
-    }
-
-    return first_allocated;
-}
-
-
-/* ReadNewToOld
- *  reads a bunch of new=>old mappings
- */
-static
-size_t MapFileReadNewToOld ( const MapFile *self, const ctx_t *ctx,
-    int64_t start_id, IdxMapping *ids, size_t max_count )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    size_t total = 0;
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcReading, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self reference" );
-    }
-    /* the new=>old mapping is read until end, but
-       this is not an error. just return no-more-data */
-    else if ( start_id == self -> first_id + self -> num_ids )
-        return 0;
-    else if ( start_id < self -> first_id || start_id > self -> first_id + self -> num_ids )
-    {
-        rc = RC ( rcExe, rcFile, rcReading, rcParam, rcInvalid );
-        INTERNAL_ERROR ( rc, "start_id ( %ld ) is not within map range ( %ld .. %ld )",
-            start_id, self -> first_id, self -> first_id + self -> num_ids - 1 );
-    }
-    else if ( max_count != 0 )
-    {
-        /* limit read to number of ids in index */
-        if ( start_id + max_count > self -> first_id + self -> num_ids )
-            max_count = ( size_t ) ( self -> first_id + self -> num_ids - start_id );
-
-        if ( ids == NULL )
-        {
-            rc = RC ( rcExe, rcFile, rcReading, rcBuffer, rcNull );
-            INTERNAL_ERROR ( rc, "bad buffer parameter" );
-        }
-        else
-        {
-            /* read as many bytes of id as possible */
-            size_t num_read, to_read = max_count * self -> id_size;
-            uint64_t pos = ( start_id - self -> first_id ) * self -> id_size;
-            rc = KFileReadAll ( self -> f_new, pos, ids, to_read, & num_read );
-            if ( rc != 0 )
-                SYSTEM_ERROR ( rc, "failed to read new=>old map" );
-            else
-            {
-                size_t i;
-                const char *packed = ( const char* ) ids;
-                total = ( size_t ) ( num_read /self -> id_size );
-
-                /* read each packed id as little-endian integer onto
-                   pre-zeroed 64-bit integer, swap if needed */
-                for ( num_read = total * self -> id_size, i = total; i > 0; )
-                {
-                    int64_t unpacked = 0;
-
-                    num_read -= self -> id_size;
-                    -- i;
-
-                    memcpy ( & unpacked, & packed [ num_read ], self -> id_size );
-#if __BYTE_ORDER == __BIG_ENDIAN
-                    unpacked = bswap_64 ( unpacked );
-#endif
-                    if ( unpacked != 0 )
-                        unpacked += self -> first_id - 1;
-
-                    ids [ i ] . old_id = unpacked;
-                    ids [ i ] . new_id = start_id + i;
-                }
-            }
-        }
-    }
-
-    return total;
-}
-
-
-/* SelectOldToNewPairs
- *  specify the range of new ids to select from
- *  read them in old=>new order
- */
-size_t MapFileSelectOldToNewPairs ( const MapFile *self, const ctx_t *ctx,
-    int64_t start_id, IdxMapping *ids, size_t max_count )
-{
-    FUNC_ENTRY ( ctx );
-
-    uint64_t eof;
-    int64_t end_excl;
-    size_t i, j, total;
-
-    /* limit read to number of ids in index */
-    if ( start_id + max_count > self -> first_id + self -> num_ids )
-        max_count = ( size_t ) ( self -> first_id + self -> num_ids - start_id );
-
-    /* range is start_id to end_excl */
-    end_excl = start_id + max_count;
-
-    /* eof for f_old */
-    eof = self -> num_ids * self -> id_size;
-
-    for ( total = i = 0; i < max_count; total += j )
-    {
-        rc_t rc;
-        size_t off, num_read;
-        char buff [ 32 * 1024 ];
-
-        /* read some data from file */
-        uint64_t pos = total * self -> id_size;
-        size_t to_read = sizeof buff;
-	if ( pos == eof )
-	    break;
-        if ( pos + to_read > eof )
-            to_read = ( size_t ) ( eof - pos );
-        rc = KFileReadAll ( self -> f_old, pos, buff, to_read, & num_read );
-        if ( rc != 0 )
-        {
-            SYSTEM_ERROR ( rc, "failed to read old=>new map" );
-            break;
-        }
-
-        /* reached end - requested more ids than we have */
-        if ( num_read == 0 )
-            break;
-
-        /* the number of whole ids actually read */
-        if ( ( num_read /= self -> id_size ) == 0 )
-        {
-            rc = RC ( rcExe, rcFile, rcReading, rcTransfer, rcIncomplete );
-            SYSTEM_ERROR ( rc, "failed to read old=>new map - file incomplete" );
-            break;
-        }
-
-        /* select new-ids from ids read */
-        for ( off = j = 0; j < num_read; off += self -> id_size, ++ j )
-        {
-            int64_t unpacked = 0;
-            memcpy ( & unpacked, & buff [ off ], self -> id_size );
-#if __BYTE_ORDER == __BIG_ENDIAN
-            unpacked = bswap_64 ( unpacked );
-#endif
-            /* only offset non-zero (NULL) ids */
-            if ( unpacked != 0 )
-                unpacked += self -> first_id - 1;
-
-            /* if id meets criteria */
-            if ( unpacked >= start_id && unpacked < end_excl )
-            {
-                ids [ i ] . old_id = self -> first_id + total + j;
-                ids [ i ] . new_id = unpacked;
-                if ( ++ i == max_count )
-                    break;
-            }
-        }
-    }
-
-    return i;
-}
-
-
-/* SelectOldToNewSingle
- *  specify the range of new ids to select from
- *  read them in old=>new order
- */
-size_t MapFileSelectOldToNewSingle ( const MapFile *self, const ctx_t *ctx,
-    int64_t start_id, int64_t *ids, uint32_t *opt_ord, size_t max_count )
-{
-    FUNC_ENTRY ( ctx );
-
-    uint64_t eof;
-    int64_t end_excl;
-    size_t i, j, total;
-
-    /* limit read to number of ids in index */
-    if ( start_id + max_count > self -> first_id + self -> num_ids )
-        max_count = ( size_t ) ( self -> first_id + self -> num_ids - start_id );
-
-    /* range is start_id to end_excl */
-    end_excl = start_id + max_count;
-
-    /* eof for f_old */
-    eof = self -> num_ids * self -> id_size;
-
-    for ( total = i = 0; i < max_count; total += j )
-    {
-        rc_t rc;
-        size_t off, num_read;
-        char buff [ 32 * 1024 ];
-
-        /* read some data from file */
-        uint64_t pos = total * self -> id_size;
-        size_t to_read = sizeof buff;
-	if ( pos == eof )
-            break;
-        if ( pos + to_read > eof )
-            to_read = ( size_t ) ( eof - pos );
-        rc = KFileReadAll ( self -> f_old, pos, buff, to_read, & num_read );
-        if ( rc != 0 )
-        {
-            SYSTEM_ERROR ( rc, "failed to read old=>new map" );
-            break;
-        }
-
-        /* reached end - requested more ids than we have */
-        if ( num_read == 0 )
-            break;
-
-        /* the number of whole ids actually read */
-        if ( ( num_read /= self -> id_size ) == 0 )
-        {
-            rc = RC ( rcExe, rcFile, rcReading, rcTransfer, rcIncomplete );
-            SYSTEM_ERROR ( rc, "failed to read old=>new map - file incomplete" );
-            break;
-        }
-
-        /* select new-ids from ids read */
-        for ( off = j = 0; j < num_read; off += self -> id_size, ++ j )
-        {
-            int64_t unpacked = 0;
-            memcpy ( & unpacked, & buff [ off ], self -> id_size );
-#if __BYTE_ORDER == __BIG_ENDIAN
-            unpacked = bswap_64 ( unpacked );
-#endif
-            /* only offset non-zero (NULL) ids */
-            if ( unpacked != 0 )
-                unpacked += self -> first_id - 1;
-
-            /* if id meets criteria */
-            if ( unpacked >= start_id && unpacked < end_excl )
-            {
-                ids [ i ] = self -> first_id + total + j;
-                assert ( i <= 0xFFFFFFFF );
-                if ( opt_ord != NULL )
-                    opt_ord [ unpacked - start_id ] = ( uint32_t ) i;
-                if ( ++ i == max_count )
-                    break;
-            }
-        }
-    }
-
-    return i;
-}
-
-
-/* MapSingleOldToNew
- *  reads a single old=>new mapping
- *  returns new id or 0 if not found
- *  optionally allocates a new id if "insert" is true
- */
-int64_t MapFileMapSingleOldToNew ( MapFile *self, const ctx_t *ctx,
-    int64_t old_id, bool insert )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    int64_t new_id = 0;
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcFile, rcReading, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad self reference" );
-    }
-    else if ( old_id < self -> first_id || old_id >= self -> first_id + self -> num_ids )
-    {
-        rc = RC ( rcExe, rcFile, rcReading, rcParam, rcInvalid );
-        INTERNAL_ERROR ( rc, "old_id ( %ld ) is not within map range ( %ld .. %ld )",
-            old_id, self -> first_id, self -> first_id + self -> num_ids - 1 );
-    }
-    else
-    {
-        size_t num_read, to_read = self -> id_size;
-        uint64_t pos = ( old_id - self -> first_id ) * self -> id_size;
-        rc = KFileReadAll ( self -> f_old, pos, & new_id, to_read, & num_read );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "failed to read old=>new map" );
-        else
-        {
-#if __BYTE_ORDER == __BIG_ENDIAN
-            new_id = bswap_64 ( new_id );
-#endif
-            if ( new_id != 0 )
-                new_id += self -> first_id - 1;
-            else if ( insert )
-            {
-                /* create a mapping using the last known
-                   new id plus one as the id to assign on insert */
-                IdxMapping mapping;
-                mapping . old_id = old_id;
-                mapping . new_id = self -> max_new_id + 1;
-
-                TRY ( MapFileSetOldToNew ( self, ctx, & mapping, 1 ) )
-                {
-                    TRY ( MapFileSetNewToOld ( self, ctx, & mapping, 1 ) )
-                    {
-                        new_id = mapping . new_id;
-
-                        if ( self -> num_ids >= 100000 )
-                        {
-                            uint64_t scaled = ++ self -> num_mapped_ids * 100;
-                            uint64_t prior = scaled - 100;
-                            if ( ( prior / self -> num_ids ) != ( scaled /= self -> num_ids ) )
-                                STATUS ( 2, "have mapped %lu%% ids", scaled );
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    return new_id;
-}
-
-
-/* ConsistencyCheck
- */
-static
-void MapFileCrossCheck ( const MapFile *self, const ctx_t *ctx, IdxMapping *ids, size_t max_ids )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    uint64_t total;
-    size_t num_read;
-    int64_t last_old, last_new;
-
-    for ( last_old = last_new = -1, total = 0; total < self -> num_ids; total += num_read )
-    {
-        int64_t id;
-        size_t i;
-
-        STATUS ( 2, "reading new=>old ids" );
-
-        ON_FAIL ( num_read = MapFileReadNewToOld ( self, ctx, self -> first_id + total, ids, max_ids ) )
-        {
-            ANNOTATE ( "failed to read new=>old ids" );
-            return;
-        }
-
-        STATUS ( 2, "read %,u pairs", num_read );
-
-        STATUS ( 2, "checking for repeats in new-id space" );
-        for ( i = 0; i < num_read; last_new = id, ++ i )
-        {
-            id = ids [ i ] . new_id;
-            if ( id == last_new )
-            {
-                rc = RC ( rcExe, rcIndex, rcValidating, rcId, rcDuplicate );
-                ERROR ( rc, "new id %,ld repeats", id );
-                return;
-            }
-        }
-
-        STATUS ( 2, "sorting on old id" );
-
-#if USE_OLD_KSORT
-        ksort ( ids, num_read, sizeof ids [ 0 ], IdxMappingCmpOld, ( void* ) ctx );
-#else
-        IdxMappingSortOld ( ids, ctx, num_read );
-#endif
-
-        STATUS ( 2, "checking for repeats in old-id space" );
-        for ( i = 0; i < num_read; last_old = id, ++ i )
-        {
-            id = ids [ i ] . old_id;
-            if ( id == last_old )
-            {
-                rc = RC ( rcExe, rcIndex, rcValidating, rcId, rcDuplicate );
-                ERROR ( rc, "old id %,ld repeats", id );
-                return;
-            }
-        }
-
-        STATUS ( 2, "cross-checking against old=>new index" );
-
-        for ( i = 0; i < num_read; ++ i )
-        {
-            int64_t new_id;
-
-            /* cast away const on "self" for prototype,
-               but function is only non-const if "insert"
-               were true - we use "false" */
-            ON_FAIL ( new_id = MapFileMapSingleOldToNew ( ( MapFile* ) self, ctx, ids [ i ] . old_id, false ) )
-                return;
-
-            if ( new_id != ids [ i ] . new_id )
-            {
-                rc = RC ( rcExe, rcIndex, rcValidating, rcId, rcUnequal );
-                ERROR ( rc, "mismatch of new ids %,ld != %,ld", new_id, ids [ i ] . new_id );
-                return;
-            }
-        }
-    }
-}
-
-void MapFileConsistencyCheck ( const MapFile *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    IdxMapping *ids;
-    const size_t max_ids = 1024 * 1024;
-
-    STATUS ( 2, "running consistency check on index files" );
-
-    /* "self" is valid */
-    if ( self == NULL )
-    {
-        ANNOTATE ( "checking the validity of a NULL MapFile" );
-        return;
-    }
-
-    STATUS ( 2, "checking id_size" );
-
-    /* number of ids requires some number of bits */
-    if ( ( ( uint64_t ) 1 << ( self -> id_size * 8 ) ) < self -> num_ids )
-    {
-        rc = RC ( rcExe, rcIndex, rcValidating, rcSize, rcIncorrect );
-        ERROR ( rc, "calculated id size ( %zu bytes ) is insufficient to represent count of %,lu ids",
-                self -> id_size, self -> num_ids );
-        return;
-    }
-
-    STATUS ( 2, "allocating id buffer" );
-
-    TRY ( ids = MemAlloc ( ctx, sizeof * ids * max_ids, false ) )
-    {
-        MapFileCrossCheck ( self, ctx, ids, max_ids );
-        MemFree ( ctx, ids, sizeof * ids * max_ids );
-    }
-    CATCH_ALL ()
-    {
-        ANNOTATE ( "failed to allocate memory ( %zu pairs ) for consistency check", max_ids );
-        return;
-    }
-
-    STATUS ( 2, "finished idx consistency check" );
-}
diff --git a/tools/sra-sort/map-file.h b/tools/sra-sort/map-file.h
deleted file mode 100644
index 992d765..0000000
--- a/tools/sra-sort/map-file.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_map_file_
-#define _h_sra_sort_map_file_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct IdxMapping;
-
-
-/*--------------------------------------------------------------------------
- * MapFile
- *  a file for storing id mappings
- */
-typedef struct MapFile MapFile;
-
-
-/* Make
- *  creates an id map
- */
-MapFile *MapFileMake ( const ctx_t *ctx, const char *name, bool random_access );
-
-
-/* MakeForPoslen
- *  creates an id map with an additional poslen file
- *  this is specially for PRIMARY_ALIGNMENT_IDS and SECONDARY_ALIGNMENT_IDS
- *  that use *_ALIGNMENT global position and length as a sorting key
- *  we drop it to a file after its generation so that it can be
- *  picked up later when copying the corresponding alignment table.
- */
-MapFile *MapFileMakeForPoslen ( const ctx_t *ctx, const char *name );
-
-
-/* Release
- */
-void MapFileRelease ( const MapFile *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-MapFile *MapFileDuplicate ( const MapFile *self, const ctx_t *ctx );
-
-
-/* SetIdRange
- *  required second-stage initialization
- *  must be called before any writes occur
- */
-void MapFileSetIdRange ( MapFile *self, const ctx_t *ctx,
-    int64_t first_id, uint64_t num_ids );
-
-
-/* First
- *  return first mapped id
- * Count
- *  return number of ids
- */
-int64_t MapFileFirst ( const MapFile *self, const ctx_t *ctx );
-uint64_t MapFileCount ( const MapFile *self, const ctx_t *ctx );
-
-
-/* SetOldToNew
- *  write new=>old id mappings
- */
-void MapFileSetOldToNew ( MapFile *self, const ctx_t *ctx,
-    struct IdxMapping const *ids, size_t count );
-
-
-/* SetNewToOld
- *  write new=>old id mappings
- */
-void MapFileSetNewToOld ( MapFile *self, const ctx_t *ctx,
-    struct IdxMapping const *ids, size_t count );
-
-
-/* SetPoslen
- *  write global position/length in new-id order
- */
-void MapFileSetPoslen ( MapFile *self, const ctx_t *ctx,
-    struct IdxMapping const *ids, size_t count );
-
-
-/* ReadPoslen
- *  read global position/length in new-id order
- *  starts reading at the indicated row
- *  returns the number read
- */
-size_t MapFileReadPoslen ( const MapFile *self, const ctx_t *ctx,
-    int64_t start_id, uint64_t *poslen, size_t max_count );
-
-
-/* AllocMissingNewIds
- *  it is possible to have written fewer new=>old mappings
- *  than are supposed to be there, e.g. SEQUENCE that gets
- *  initially written by align tables. unaligned sequences
- *  need to fill in the remainder.
- *
- *  returns the first newly allocated id
- */
-int64_t MapFileAllocMissingNewIds ( MapFile *self, const ctx_t *ctx );
-
-
-/* SelectOldToNewPairs
- *  specify the range of new ids to select from
- *  read them in old=>new order
- */
-size_t MapFileSelectOldToNewPairs ( const MapFile *self, const ctx_t *ctx,
-    int64_t start_id, struct IdxMapping *ids, size_t max_count );
-
-
-/* SelectOldToNewSingle
- *  specify the range of new ids to select from
- *  read them in old=>new order
- */
-size_t MapFileSelectOldToNewSingle ( const MapFile *self, const ctx_t *ctx,
-    int64_t start_id, int64_t *ids, uint32_t *opt_ord, size_t max_count );
-
-
-/* MapSingleOldToNew
- *  reads a single old=>new mapping
- *  returns new id or 0 if not found
- *  optionally allocates a new id if "insert" is true
- */
-int64_t MapFileMapSingleOldToNew ( MapFile *self, const ctx_t *ctx,
-    int64_t old_id, bool insert );
-
-
-/* MapMultipleOldToNew
- *  reads a single old=>new mapping
- *  returns new id or 0 if not found
- *  optionally allocates a new id if "insert" is true
- */
-void MapFileMapMultipleOldToNew ( MapFile *self, const ctx_t *ctx,
-    int64_t *ids, size_t count, bool insert );
-
-
-/* ConsistencyCheck
- *  should be const, but MapFileOldToNew claims to be non-const
- *  and is used within. only non-const if "insert" is true.
- */
-void MapFileConsistencyCheck ( const MapFile *self, const ctx_t *ctx );
-
-
-#endif
diff --git a/tools/sra-sort/mapping-row-set.c b/tools/sra-sort/mapping-row-set.c
deleted file mode 100644
index 6e69549..0000000
--- a/tools/sra-sort/mapping-row-set.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct MappingRowSet MappingRowSet;
-#define ROWSET_IMPL MappingRowSet
-
-typedef struct MappingRowSetIterator MappingRowSetIterator;
-#define ROWSET_ITER_IMPL MappingRowSetIterator
-
-#include "row-set-priv.h"
-#include "tbl-pair.h"
-#include "idx-mapping.h"
-#include "map-file.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <klib/rc.h>
-
-FILE_ENTRY ( mapping-row-set );
-
-
-/*--------------------------------------------------------------------------
- * MappingRowSetIterator
- *  interface to iterate RowSets
- */
-struct MappingRowSetIterator
-{
-    RowSetIterator dad;
-
-    /* base row-id */
-    int64_t row_id;
-
-    /* last row-id + 1 */
-    int64_t last_excl;
-
-    /* takes its input from new=>old index */
-    const MapFile *idx;
-
-    /* working data within map */
-    IdxMapping *map;
-    size_t max_elems;
-    size_t num_elems;
-
-    bool large;
-};
-
-/*--------------------------------------------------------------------------
- * MappingRowSet
- *  implementation of RowSet based upon auto-generated id pairs
- */
-struct MappingRowSet
-{
-    RowSet dad;
-
-    /* keep-alive reference */
-    MappingRowSetIterator *iter;
-
-    /* working data within map */
-    IdxMapping *map;
-    size_t num_elems;
-    size_t cur_elem;
-};
-
-static
-void MappingRowSetWhack ( MappingRowSet *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    RowSetIteratorRelease ( & self -> iter -> dad, ctx );
-    MemFree ( ctx, self, sizeof *self );
-}
-
-static
-size_t MappingRowSetNextStat ( MappingRowSet *self, const ctx_t *ctx,
-    int64_t *ids, size_t max_ids )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* the starting row-id is taken from row-set-iterator
-       and offset by our current element counter */
-    int64_t row_id = self -> iter -> row_id + self -> cur_elem;
-
-    /* limit id generation to request */
-    size_t i, to_set = self -> num_elems - self -> cur_elem;
-    if ( to_set > max_ids )
-        to_set = max_ids;
-
-    /* fill request with serial numbers
-       could just as easily be the same number
-       the important thing is to limit the count
-       and produce the correct range */
-    for ( i = 0; i < to_set; ++ i )
-        ids [ i ] = row_id + i;
-
-    /* advance counter */
-    self -> cur_elem += to_set;
-    return to_set;
-}
-
-static
-size_t MappingRowSetNextPhys ( MappingRowSet *self, const ctx_t *ctx,
-    int64_t *ids, size_t max_ids )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* limit copy to request */
-    size_t i, to_copy = self -> num_elems - self -> cur_elem;
-    if ( to_copy > max_ids )
-        to_copy = max_ids;
-
-    /* copy out old-ids */
-    for ( i = 0; i < to_copy; ++ i )
-        ids [ i ] = self -> map [ self -> cur_elem + i ] . old_id;
-
-    /* advance counter */
-    self -> cur_elem += to_copy;
-    return to_copy;
-}
-
-static
-void MappingRowSetReset ( MappingRowSet *self, const ctx_t *ctx, bool for_static );
-
-static RowSet_vt MappingRowSetPhys_vt =
-{
-    MappingRowSetWhack,
-    MappingRowSetNextPhys,
-    MappingRowSetReset
-};
-
-static RowSet_vt MappingRowSetStat_vt =
-{
-    MappingRowSetWhack,
-    MappingRowSetNextStat,
-    MappingRowSetReset
-};
-
-static
-void MappingRowSetReset ( MappingRowSet *self, const ctx_t *ctx, bool for_static )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( for_static )
-    {
-        /* go static */
-        self -> dad . vt = & MappingRowSetStat_vt;
-    }
-    else
-    {
-        size_t i, max_elems;
-        MappingRowSetIterator *iter = self -> iter;
-
-        /* go physical */
-        self -> dad . vt = & MappingRowSetPhys_vt;
-
-        /* limit id generation */
-        max_elems = iter -> max_elems;
-        if ( iter -> row_id + max_elems >= iter -> last_excl )
-            max_elems = ( size_t ) ( iter -> last_excl - iter -> row_id );
-
-        STATUS ( 4, "auto-generating %,zu ( old_id, new_id ) pairs where new_id >= %ld",
-                 max_elems, iter -> row_id );
-        for ( i = 0; i < max_elems; ++ i )
-            iter -> map [ i ] . old_id = iter -> map [ i ] . new_id = iter -> row_id + i;
-
-        self -> num_elems = iter -> num_elems = max_elems;
-    }
-
-    /* ready */
-    self -> cur_elem = 0;
-}
-
-static
-void MapFileMappingRowSetReset ( MappingRowSet *self, const ctx_t *ctx, bool for_static );
-
-static RowSet_vt MapFileMappingRowSetPhys_vt =
-{
-    MappingRowSetWhack,
-    MappingRowSetNextPhys,
-    MapFileMappingRowSetReset
-};
-
-static RowSet_vt MapFileMappingRowSetStat_vt =
-{
-    MappingRowSetWhack,
-    MappingRowSetNextStat,
-    MapFileMappingRowSetReset
-};
-
-static
-void MapFileMappingRowSetReset ( MappingRowSet *self, const ctx_t *ctx, bool for_static )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( for_static )
-    {
-        /* go static */
-        self -> dad . vt = & MapFileMappingRowSetStat_vt;
-    }
-    else
-    {
-        MappingRowSetIterator *iter = self -> iter;
-
-        /* go physical */
-        self -> dad . vt = & MapFileMappingRowSetPhys_vt;
-
-        /* read new-ids from file, selecting only those within range */
-        STATUS ( 3, "selecting first %,zu ( old_id, new_id ) pairs from old=>new where new_id >= %,ld",
-                 iter -> max_elems, iter -> row_id );
-        ON_FAIL ( iter -> num_elems = MapFileSelectOldToNewPairs ( iter -> idx, ctx,
-                      iter -> row_id, iter -> map, iter -> max_elems ) )
-            return;
-
-        self -> num_elems = iter -> num_elems;
-        STATUS ( 3, "selected %,zu ( old_id, new_id ) pairs", self -> num_elems );
-    }
-
-    /* ready */
-    self -> cur_elem = 0;
-}
-
-
-/*--------------------------------------------------------------------------
- * MappingRowSetIterator
- *  interface to iterate RowSets
- */
-
-static
-void MappingRowSetIteratorWhack ( MappingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> map != NULL )
-        MemFree ( ctx, self -> map, sizeof self -> map [ 0 ] * self -> max_elems );
-
-    RowSetIteratorDestroy ( & self -> dad, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-void MapFileMappingRowSetIteratorWhack ( MappingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> map != NULL )
-        MemFree ( ctx, self -> map, sizeof self -> map [ 0 ] * self -> max_elems );
-
-    MapFileRelease ( self -> idx, ctx );
-
-    RowSetIteratorDestroy ( & self -> dad, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-RowSet *MappingRowSetIteratorMakeTheRowSet ( MappingRowSetIterator *self, const ctx_t *ctx, const RowSet_vt *vt )
-{
-    FUNC_ENTRY ( ctx );
-
-    MappingRowSet *rs;
-    TRY ( rs = MemAlloc ( ctx, sizeof * rs, false ) )
-    {
-        TRY ( RowSetInit ( & rs -> dad, ctx, vt ) )
-        {
-            /* initialize the row-set with map and self reference */
-            rs -> map = self -> map;
-            rs -> iter = ( MappingRowSetIterator* ) RowSetIteratorDuplicate ( & self -> dad, ctx );
-            rs -> num_elems = self -> num_elems;
-            rs -> cur_elem = 0;
-            return & rs -> dad;
-        }
-
-        MemFree ( ctx, rs, sizeof * rs );
-    }
-
-    return NULL;
- }
-
-static
-struct IdxMapping *MappingRowSetIteratorGetIdxMapping ( MappingRowSetIterator *self, const ctx_t *ctx, size_t *num_items )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> map == NULL )
-    {
-        rc_t rc = RC ( rcExe, rcCursor, rcAccessing, rcSelf, rcInconsistent );
-        ERROR ( rc, "IdxMapping array is NULL" );
-        if ( num_items != NULL )
-            * num_items = 0;
-        return NULL;
-    }
-
-    if ( num_items != NULL )
-        * num_items = self -> num_elems;
-    return self -> map;
-}
-
-static
-int64_t *MappingRowSetIteratorGetSourceIds ( MappingRowSetIterator *self, const ctx_t *ctx, uint32_t **opt_ord, size_t *num_items )
-{
-    FUNC_ENTRY ( ctx );
-
-    ANNOTATE ( "CALLING GetSourceIds ON MAPPING ROWSET ITERATOR" );
-
-    if ( opt_ord != NULL )
-        * opt_ord = NULL;
-
-    if ( num_items != NULL )
-        * num_items = 0;
-
-    return NULL;
-}
-
-static
-void MappingRowSetIteratorAllocMap ( MappingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* determine the maximum number of elements */
-    const Tool *tp = ctx -> caps -> tool;
-    uint64_t count = self -> last_excl - self -> row_id;
-    self -> max_elems = self -> large ? tp -> max_large_idx_ids : tp -> max_idx_ids;
-    if ( ( uint64_t ) self -> max_elems > count )
-        self -> max_elems = ( size_t ) count;
-
-    /* try to allocate the memory
-       this may be limited by the MemBank */
-    do
-    {
-        CLEAR ();
-
-        TRY ( self -> map = MemAlloc ( ctx, sizeof self -> map [ 0 ] * self -> max_elems, false ) )
-        {
-            STATUS ( 4, "allocated mapping array of %,u elements", self -> max_elems );
-            return;
-        }
-
-        self -> max_elems >>= 1;
-    }
-    while ( self -> max_elems >= ctx -> caps -> tool -> min_idx_ids );
-
-    ANNOTATE ( "failed to allocate map for row-set" );
-}
-
-static
-RowSet *MappingRowSetIteratorNextInt ( MappingRowSetIterator *self, const ctx_t *ctx, const RowSet_vt *vt )
-{
-    /* no FUNC_ENTRY */
-
-    RowSet *rs = NULL;
-
-    /* on first invocation, allocate the map */
-    if ( self -> map == NULL )
-    {
-        ON_FAIL ( MappingRowSetIteratorAllocMap ( self, ctx ) )
-            return NULL;
-    }
-
-    /* advance row_id */
-    self -> row_id += self -> num_elems;
-    self -> num_elems = 0;
-
-    /* create the empty row-set */
-    if ( self -> row_id < self -> last_excl )
-        rs = MappingRowSetIteratorMakeTheRowSet ( self, ctx, vt );
-
-    return rs;
-}
-
-static
-RowSet *MappingRowSetIteratorNext ( MappingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    return MappingRowSetIteratorNextInt ( self, ctx, & MappingRowSetPhys_vt );
-}
-
-static
-RowSet *MapFileMappingRowSetIteratorNext ( MappingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    return MappingRowSetIteratorNextInt ( self, ctx, & MapFileMappingRowSetPhys_vt );
-}
-
-
-/*--------------------------------------------------------------------------
- * TablePair
- */
-
-static RowSetIterator_vt MappingRowSetIterator_vt =
-{
-    MappingRowSetIteratorWhack,
-    MappingRowSetIteratorGetIdxMapping,
-    MappingRowSetIteratorGetSourceIds,
-    MappingRowSetIteratorNext
-};
-
-/* MakeMappingRowSetIterator
- *  runs from first to last id in cursor
- */
-RowSetIterator *TablePairMakeMappingRowSetIterator ( TablePair *self, const ctx_t *ctx, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> first_id > self -> last_excl )
-    {
-        rc_t rc = RC ( rcExe, rcCursor, rcConstructing, rcRange, rcInvalid );
-        INTERNAL_ERROR ( rc, "union of all column ranges improperly set" );
-    }
-    else
-    {
-        MappingRowSetIterator *rsi;
-
-        TRY ( rsi = MemAlloc ( ctx, sizeof * rsi, true ) )
-        {
-            TRY ( RowSetIteratorInit ( & rsi -> dad, ctx, & MappingRowSetIterator_vt ) )
-            {
-                rsi -> row_id = self -> first_id;
-                rsi -> last_excl = self -> last_excl;
-                rsi -> large = large;
-                return & rsi -> dad;
-            }
-
-            MemFree ( ctx, rsi, sizeof * rsi );
-        }
-    }
-
-    return NULL;
-}
-
-
-/*--------------------------------------------------------------------------
- * MapFile
- */
-
-static RowSetIterator_vt MapFileMappingRowSetIterator_vt =
-{
-    MapFileMappingRowSetIteratorWhack,
-    MappingRowSetIteratorGetIdxMapping,
-    MappingRowSetIteratorGetSourceIds,
-    MapFileMappingRowSetIteratorNext
-};
-
-RowSetIterator * MapFileMakeMappingRowSetIterator ( const MapFile *self, const ctx_t *ctx, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    MappingRowSetIterator *rsi;
-
-    /* create the iterator */
-    TRY ( rsi = MemAlloc ( ctx, sizeof * rsi, true ) )
-    {
-        TRY ( RowSetIteratorInit ( & rsi -> dad, ctx, & MapFileMappingRowSetIterator_vt ) )
-        {
-            /* initialize the row-set with map and self reference */
-            TRY ( rsi -> row_id = MapFileFirst ( self, ctx ) )
-            {
-                TRY ( rsi -> last_excl = rsi -> row_id + MapFileCount ( self, ctx ) )
-                {
-                    TRY ( rsi -> idx = MapFileDuplicate ( self, ctx ) )
-                    {
-                        rsi -> large = large;
-                        return & rsi -> dad;
-                    }
-                }
-            }
-        }
-
-        MemFree ( ctx, rsi, sizeof * rsi );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/mem.c b/tools/sra-sort/mem.c
deleted file mode 100644
index 313a90f..0000000
--- a/tools/sra-sort/mem.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "caps.h"
-#include "ctx.h"
-#include "mem.h"
-#include "except.h"
-#include "status.h"
-
-FILE_ENTRY ( mem );
-
-
-/*--------------------------------------------------------------------------
- * Mem
- *  memory allocation via MemBank in Caps
- */
-void *MemAlloc ( const ctx_t *ctx, size_t bytes, bool clear )
-{
-    assert ( ctx != NULL );
-    assert ( ctx -> caps != NULL );
-    assert ( ctx -> caps -> mem != NULL );
-
-    return MemBankAlloc ( ctx -> caps -> mem, ctx, bytes, clear );
-}
-
-void MemFree ( const ctx_t *ctx, void *mem, size_t bytes )
-{
-    if ( mem != NULL )
-    {
-        assert ( ctx != NULL );
-        assert ( ctx -> caps != NULL );
-        assert ( ctx -> caps -> mem != NULL );
-
-        MemBankFree ( ctx -> caps -> mem, ctx, mem, bytes );
-    }
-}
-
-size_t MemInUse ( const ctx_t *ctx, size_t *opt_quota )
-{
-    assert ( ctx != NULL );
-    assert ( ctx -> caps != NULL );
-    assert ( ctx -> caps -> mem != NULL );
-
-    return MemBankInUse ( ctx -> caps -> mem, ctx, opt_quota );
-}
diff --git a/tools/sra-sort/mem.h b/tools/sra-sort/mem.h
deleted file mode 100644
index fc3db7e..0000000
--- a/tools/sra-sort/mem.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_mem_
-#define _h_sra_sort_mem_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * Mem
- *  memory allocation via MemBank in Caps
- */
-void *MemAlloc ( const ctx_t *ctx, size_t bytes, bool clear );
-void MemFree ( const ctx_t *ctx, void *mem, size_t bytes );
-size_t MemInUse ( const ctx_t *ctx, size_t *opt_quota );
-
-
-
-/*--------------------------------------------------------------------------
- * MemBank
- *  very, very, very watered down memory bank
- */
-typedef struct MemBank_vt MemBank_vt;
-
-typedef struct MemBank MemBank;
-struct MemBank
-{
-    const MemBank_vt *vt;
-    KRefcount refcount;
-    uint32_t align;
-};
-
-#ifndef MEMBANK_IMPL
-#define MEMBANK_IMPL MemBank
-#endif
-
-struct MemBank_vt
-{
-    void ( * whack ) ( MEMBANK_IMPL *self, const ctx_t *ctx );
-    size_t ( * in_use ) ( const MEMBANK_IMPL *self, const ctx_t *ctx, size_t *opt_quota );
-    void* ( * alloc ) ( MEMBANK_IMPL *self, const ctx_t *ctx, size_t bytes, bool clear );
-    void ( * free ) ( MEMBANK_IMPL *self, const ctx_t *ctx, void *mem, size_t bytes );
-};
-
-
-/* Make
- *  make a new memory bank
- */
-MemBank *MemBankMake ( const ctx_t *ctx, size_t quota );
-
-
-/* MakePaged
- *  make a new paged memory bank
- */
-MemBank *MemBankMakePaged ( const ctx_t *ctx, size_t quota, size_t pgsize );
-
-
-/* Duplicate
- * Release
- */
-MemBank *MemBankDuplicate ( const MemBank *self, const ctx_t *ctx );
-void MemBankRelease ( const MemBank *self, const ctx_t *ctx );
-
-
-/* InUse
- *  report the number of bytes in use
- *  optionally returns quota
- */
-#define MemBankInUse( self, ctx, opt_quota ) \
-    POLY_DISPATCH_INT ( in_use, self, const MEMBANK_IMPL, ctx, opt_quota )
-
-
-/* Alloc
- *  allocates some memory from bank
- */
-#define MemBankAlloc( self, ctx, bytes, clear ) \
-    POLY_DISPATCH_PTR ( alloc, self, MEMBANK_IMPL, ctx, bytes, clear )
-
-
-/* Free
- *  returns memory to bank
- *  ignored by paged bank
- *  burden on caller to remember allocation size
- */
-#define MemBankFree( self, ctx, mem, bytes ) \
-    POLY_DISPATCH_VOID ( free, self, MEMBANK_IMPL, ctx, mem, bytes )
-
-
-/* Init
- */
-void MemBankInit ( MemBank *self, const ctx_t *ctx, const MemBank_vt *vt, const char *name );
-
-/* Destroy
- */
-#define MemBankDestroy( self, ctx ) \
-    ( ( void ) 0 )
-
-#endif
diff --git a/tools/sra-sort/membank-priv.h b/tools/sra-sort/membank-priv.h
deleted file mode 100644
index 69301d4..0000000
--- a/tools/sra-sort/membank-priv.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_membank_priv_
-#define _h_sra_sort_membank_priv_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * MemBank
- */
-
-/* MakePagedMMap
- *  make a new paged memory bank backed by memory map
- */
-MemBank *MemBankMakePagedMMap ( const ctx_t *ctx, size_t quota, size_t pgsize );
-
-#endif
diff --git a/tools/sra-sort/membank.c b/tools/sra-sort/membank.c
deleted file mode 100644
index 6f29b75..0000000
--- a/tools/sra-sort/membank.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct MemBankImpl MemBankImpl;
-#define MEMBANK_IMPL MemBankImpl
-
-#include <sysalloc.h>
-
-#include "caps.h"
-#include "ctx.h"
-#include "mem.h"
-#include "except.h"
-#include "status.h"
-
-#include <kfs/directory.h>
-#include <kfs/file.h>
-#include <kfs/mmap.h>
-#include <klib/refcount.h>
-#include <klib/container.h>
-#include <klib/rc.h>
-#include <atomic.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-FILE_ENTRY ( membank );
-
-
-/*--------------------------------------------------------------------------
- * MemBankImpl
- *  maintains a quota
- */
-struct MemBankImpl
-{
-    MemBank dad;
-    size_t quota;
-    atomic_t avail;
-};
-
-static
-void MemBankImplWhack ( MemBankImpl *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    Caps *caps;
-
-    MemBankDestroy ( & self -> dad, ctx );
-
-    caps = ( Caps* ) ctx -> caps;
-    if ( & self -> dad != caps -> mem )
-        MemBankFree ( caps -> mem, ctx, self, sizeof * self );
-    else
-    {
-        free ( self );
-        caps -> mem = NULL;
-    }
-}
-
-
-/* InUse
- *  report the number of bytes in use
- *  optionally returns quota
- */
-static
-size_t MemBankImplInUse ( const MemBankImpl *self, const ctx_t *ctx, size_t *quota )
-{
-    size_t dummy;
-
-    if ( quota == NULL )
-        quota = & dummy;
-
-    if ( self != NULL )
-    {
-        * quota = self -> quota;
-        return self -> quota - atomic_read ( & self -> avail );
-    }
-
-    * quota = 0;
-    return 0;
-}
-
-
-/* Alloc
- *  allocates some memory from bank
- */
-static
-void *MemBankImplAlloc ( MemBankImpl *self, const ctx_t *ctx, size_t bytes, bool clear )
-{
-    if ( self != NULL )
-    {
-        /* allocation from the raw bank */
-        rc_t rc;
-        FUNC_ENTRY ( ctx );
-
-        /* update "avail" atomicially */
-        size_t remaining, avail;
-        for ( avail = atomic_read ( & self -> avail ); avail >= bytes; avail = remaining )
-        {
-            /* subtract the bytes */
-            remaining = atomic_test_and_set ( & self -> avail,
-                ( atomic_int ) ( avail - bytes ), ( atomic_int ) avail );
-            if ( remaining == avail )
-            {
-                /* try to allocate the memory directly */
-                void *mem = clear ? calloc ( 1, bytes ) : malloc ( bytes );
-                if ( mem == NULL )
-                {
-                    /* failed to get memory */
-                    atomic_add ( & self -> avail, ( atomic_int ) bytes );
-                    rc = RC ( rcExe, rcMemory, rcAllocating, rcMemory, rcExhausted );
-                    ERROR ( rc, "failed to allocate %zu bytes of memory", bytes );
-                }
-                else if ( bytes > 256 * 1024 )
-                {
-                    if ( bytes > 1024 * 1024 )
-                        STATUS ( 3, "allocated %,zu bytes of memory", bytes );
-                    else
-                        STATUS ( 4, "allocated %,zu bytes of memory", bytes );
-                }
-
-                return mem;
-            }
-        }
-
-        /* at this point we could be using a timeout */
-        rc = RC ( rcExe, rcMemory, rcAllocating, rcRange, rcExcessive );
-        ERROR ( rc, "quota exceeded allocating %zu bytes of memory", bytes );
-    }
-
-    return NULL;
-}
-
-
-/* Free
- *  returns memory to bank
- *  ignored by paged bank
- *  burden on caller to remember allocation size
- */
-static
-void MemBankImplFree ( MemBankImpl *self, const ctx_t *ctx, void *mem, size_t bytes )
-{
-    if ( mem != NULL )
-    {
-        FUNC_ENTRY ( ctx );
-
-        if ( self == NULL )
-        {
-            rc_t rc = RC ( rcExe, rcMemory, rcReleasing, rcSelf, rcNull );
-            ERROR ( rc, "attempt to return memory to NULL MemBank" );
-        }
-        else
-        {
-            /* release the memory */
-            free ( mem );
-
-            /* update the counters */
-            if ( bytes == 0 )
-                ANNOTATE ( "freed memory with size of 0 bytes" );
-            else
-            {
-                atomic_add ( & self -> avail, ( atomic_int ) bytes );
-
-                if ( bytes > 256 * 1024 )
-                {
-                    if ( bytes > 1024 * 1024 )
-                        STATUS ( 3, "freed %,zu bytes of memory", bytes );
-                    else
-                        STATUS ( 4, "freed %,zu bytes of memory", bytes );
-                }
-            }
-        }
-    }
-}
-
-static MemBank_vt MemBankImpl_vt =
-{
-    MemBankImplWhack,
-    MemBankImplInUse,
-    MemBankImplAlloc,
-    MemBankImplFree
-};
-
-
-/*--------------------------------------------------------------------------
- * MemBank
- *  very, very, very watered down memory bank
- */
-
-
-/* Make
- *  make a new memory bank
- *  in a real system, this could make a bank linked to
- *  the primordial one. in this system, there is only
- *  a single bank, so this function is overloaded to
- *  create both the primordial and to reset quota on it.
- */
-MemBank *MemBankMake ( const ctx_t *ctx, size_t quota )
-{
-    FUNC_ENTRY ( ctx );
-
-    MemBankImpl *mem = malloc ( sizeof * mem );
-    if ( mem == NULL )
-        exit ( -1 );
-
-    MemBankInit ( & mem -> dad, ctx, & MemBankImpl_vt, "Process MemBank" );
-
-    if ( quota < 4096 )
-        quota = 4096;
-
-    mem -> quota = quota;
-    atomic_set ( & mem -> avail, ( atomic_int ) ( quota - sizeof * mem ) );
-
-    return & mem -> dad;
-}
-
-
-/* Init
- */
-void MemBankInit ( MemBank *self, const ctx_t *ctx, const MemBank_vt *vt, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-
-    self -> vt = vt;
-    KRefcountInit ( & self -> refcount, 1, "MemBank", "Make", name );
-    self -> align = 0;
-}
-
-
-/* Duplicate
- * Release
- */
-MemBank *MemBankDuplicate ( const MemBank *self, const ctx_t *ctx )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "MemBank" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative: {
-            FUNC_ENTRY ( ctx );
-            rc_t rc = RC ( rcExe, rcMemory, rcAttaching, rcRange, rcExcessive );
-            ERROR ( rc, "excessive references on MemBank" );
-            return NULL;
-        }}
-    }
-    return ( MemBank* ) self;
-}
-
-void MemBankRelease ( const MemBank *self, const ctx_t *ctx )
-{
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "MemBank" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( MEMBANK_IMPL* ) self, ctx );
-            break;
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative: {
-            FUNC_ENTRY ( ctx );
-            rc_t rc = RC ( rcExe, rcMemory, rcReleasing, rcRange, rcExcessive );
-            ERROR ( rc, "excessive releases on MemBank" );
-        }}
-    }
-}
diff --git a/tools/sra-sort/meta-pair.c b/tools/sra-sort/meta-pair.c
deleted file mode 100644
index b4ca027..0000000
--- a/tools/sra-sort/meta-pair.c
+++ /dev/null
@@ -1,458 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct MetaPair StdMetaPair;
-#define METAPAIR_IMPL StdMetaPair
-
-#include "meta-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-
-#include <kdb/meta.h>
-#include <kdb/namelist.h>
-#include <klib/namelist.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-
-FILE_ENTRY ( meta-pair );
-
-
-/*--------------------------------------------------------------------------
- * StdMetaPair
- */
-
-static
-void StdMetaPairWhack ( StdMetaPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    MetaPairDestroy ( self, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static MetaPair_vt StdMetaPair_vt =
-{
-    StdMetaPairWhack
-};
-
-
-/*--------------------------------------------------------------------------
- * MetaPair
- *  interface to pairing of source and destination tables
- */
-
-
-/* Make
- *  make a standard metadata pair from existing KMetadata objects
- */
-MetaPair *MetaPairMake ( const ctx_t *ctx,
-    const KMetadata *src, KMetadata *dst, const char *full_path )
-{
-    FUNC_ENTRY ( ctx );
-
-    StdMetaPair *meta;
-
-    TRY ( meta = MemAlloc ( ctx, sizeof * meta, false ) )
-    {
-        TRY ( MetaPairInit ( meta, ctx, & StdMetaPair_vt, src, dst, full_path ) )
-        {
-            return meta;
-        }
-
-        MemFree ( ctx, meta, sizeof * meta );
-    }
-
-    return NULL;
-}
-
-
-/* Release
- *  called by table at end of copy
- */
-void MetaPairRelease ( MetaPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "MetaPair" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcMetadata, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release MetaPair" );
-        }
-    }
-}
-
-/* Duplicate
- */
-MetaPair *MetaPairDuplicate ( MetaPair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "MetaPair" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcMetadata, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate MetaPair" );
-            return NULL;
-        }
-    }
-
-    return ( MetaPair* ) self;
-}
-
-
-/* Init
- */
-void MetaPairInit ( MetaPair *self, const ctx_t *ctx, const MetaPair_vt *vt,
-    const KMetadata *src, KMetadata *dst, const char *full_spec )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    if ( self == NULL )
-    {
-        rc = RC ( rcExe, rcMetadata, rcConstructing, rcSelf, rcNull );
-        INTERNAL_ERROR ( rc, "bad MetaPair" );
-        return;
-    }
-
-    memset ( self, 0, sizeof * self );
-    self -> vt = vt;
-
-    rc = KMetadataAddRef ( self -> smeta = src );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to duplicate metadata 'src.%s'", full_spec );
-    else
-    {
-        rc = KMetadataAddRef ( self -> dmeta = dst );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to duplicate metadata 'dst.%s'", full_spec );
-        else
-        {
-            KRefcountInit ( & self -> refcount, 1, "MetaPair", "init", full_spec );
-            return;
-        }
-
-        KMetadataRelease ( self -> smeta );
-        self -> smeta = NULL;
-    }
-}
-
-/* Destroy
- */
-void MetaPairDestroy ( MetaPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = KMetadataRelease ( self -> dmeta );
-    if ( rc != 0 )
-        WARN ( "KMetadataRelease failed" );
-    KMetadataRelease ( self -> smeta );
-
-    memset ( self, 0, sizeof * self );
-}
-
-
-static
-void copy_meta_node_value ( const KMDataNode *src, const ctx_t *ctx, KMDataNode *dst )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    char buff [ 4096 ];
-    size_t num_read, remaining;
-
-    rc = KMDataNodeRead ( src, 0, buff, sizeof buff, & num_read, & remaining );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "KMDataNodeRead failed" );
-    else if ( num_read != 0 )
-    {
-        rc = KMDataNodeWrite ( dst, buff, num_read );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "KMDataNodeWrite failed" );
-        else
-        {
-            size_t offset;
-            for ( offset = num_read; remaining != 0; offset += num_read )
-            {
-                rc = KMDataNodeRead ( src, offset, buff, sizeof buff, & num_read, & remaining );
-                if ( rc != 0 )
-                {
-                    INTERNAL_ERROR ( rc, "KMDataNodeRead failed" );
-                    break;
-                }
-                rc = KMDataNodeAppend ( dst, buff, num_read );
-                if ( rc != 0 )
-                {
-                    SYSTEM_ERROR ( rc, "KMDataNodeAppend failed" );
-                    break;
-                }
-            }
-        }
-    }
-}
-
-static
-void copy_meta_node_attr ( const KMDataNode *src, const ctx_t *ctx, KMDataNode *dst, const char *name )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    size_t num_read;
-    char buff [ 4096 ];
-
-    rc = KMDataNodeReadAttr ( src, name, buff, sizeof buff, & num_read );
-    if ( rc != 0 )
-        ERROR ( rc, "KMDataNodeReadAttr '%s' failed", name );
-    else
-    {
-        rc = KMDataNodeWriteAttr ( dst, name, buff );
-        if ( rc != 0 )
-            ERROR ( rc, "KMDataNodeWriteAttr '%s' failed", name );
-    }
-}
-
-
-static
-const char *filter_node_name ( const char *name, size_t nsize, const char **exclude )
-{
-    uint32_t i;
-    for ( i = 0; exclude [ i ] != NULL; ++ i )
-    {
-        const char *x = exclude [ i ];
-        size_t xsize = strlen ( x );
-
-        /* allow exclude to be a prefix */
-        if ( xsize > 0 && x [ xsize - 1 ] == '*' )
-        {
-            if ( nsize < -- xsize )
-                continue;
-        }
-        else if ( nsize != xsize )
-        {
-            continue;
-        }
-
-        if ( memcmp ( name, x, xsize ) == 0 )
-            return NULL;
-    }
-
-    return name;
- }
-
-
-static
-void copy_meta_node ( const KMDataNode *src, const ctx_t *ctx, KMDataNode *dst,
-    char path [ 4096 ], size_t psize, const char *owner_spec, const char **exclude )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* first, copy value */
-    TRY ( copy_meta_node_value ( src, ctx, dst ) )
-    {
-        /* next, copy attributes */
-        KNamelist *names;
-        rc_t rc = KMDataNodeListAttr ( src, & names );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "KMDataNodeListAttr failed" );
-        else
-        {
-            uint32_t count;
-            rc = KNamelistCount ( names, & count );
-            if ( rc != 0 )
-                INTERNAL_ERROR ( rc, "KNamelistCount failed" );
-            else
-            {
-                uint32_t i;
-                const char *name;
-                for ( i = 0; i < count; ++ i )
-                {
-                    rc = KNamelistGet ( names, i, & name );
-                    if ( rc != 0 )
-                    {
-                        INTERNAL_ERROR ( rc, "KNamelistGet [ %u ] failed", i );
-                        break;
-                    }
-
-                    ON_FAIL ( copy_meta_node_attr ( src, ctx, dst, name ) )
-                        break;
-                }
-
-                if ( ! FAILED () )
-                {
-                    KNamelistRelease ( names );
-
-                    /* last, copy children */
-                    rc = KMDataNodeListChildren ( src, & names );
-                    if ( rc != 0 )
-                        INTERNAL_ERROR ( rc, "KMDataNodeListChildren failed" );
-                    else
-                    {
-                        rc = KNamelistCount ( names, & count );
-                        if ( rc != 0 )
-                            INTERNAL_ERROR ( rc, "KNamelistCount failed" );
-                        else if ( psize + 1 == 4096 )
-                        {
-                            rc = RC ( rcExe, rcNode, rcCopying, rcBuffer, rcInsufficient );
-                            ERROR ( rc, "metadata path too long" );
-                        }
-                        else
-                        {
-                            for ( i = 0; i < count; ++ i )
-                            {
-                                KMDataNode *dchild;
-                                const KMDataNode *schild;
-
-                                size_t nsize;
-                                static const char *always_exclude [] =
-                                {
-                                    ".seq", "col", "schema", 
-                                    "HUFFMAN*", "MSC454*", "NREADS", "NUMBER_P*", "NUMBER_S*",
-                                    NULL
-                                };
-
-                                rc = KNamelistGet ( names, i, & name );
-                                if ( rc != 0 )
-                                {
-                                    INTERNAL_ERROR ( rc, "KNamelistGet [ %u ] failed", i );
-                                    break;
-                                }
-
-                                nsize = string_size ( name );
-                                if ( psize + nsize + 1 >= 4096 )
-                                {
-                                    WARN ( "skipping node '%.*s/%s' - path too long", ( uint32_t ) psize, path, name );
-                                    continue;
-                                }
-
-                                if ( psize != 0 )
-                                    path [ psize ++ ] = '/';
-                                strcpy ( & path [ psize ], name );
-
-                                if ( exclude != NULL )
-                                {
-                                    name = filter_node_name ( name, nsize, exclude );
-                                    if ( name == NULL )
-                                        continue;
-                                }
-
-                                name = filter_node_name ( name, nsize, always_exclude );
-                                if ( name == NULL )
-                                    continue;
-
-                                rc = KMDataNodeOpenNodeRead ( src, & schild, name );
-                                if ( rc != 0 )
-                                    ERROR ( rc, "failed to open source metadata node '%s'", name );
-                                else
-                                {
-                                    rc = KMDataNodeOpenNodeUpdate ( dst, & dchild, name );
-                                    if ( rc != 0 )
-                                        ERROR ( rc, "failed to open destination metadata node '%s'", name );
-                                    else
-                                    {
-                                        copy_meta_node ( schild, ctx, dchild, path, psize + nsize, owner_spec, exclude );
-                                        KMDataNodeRelease ( dchild );
-                                    }
-
-                                    KMDataNodeRelease ( schild );
-                                }
-
-                                if ( FAILED () )
-                                    break;
-                            }
-                        }
-                    }
-                }
-            }
-
-            KNamelistRelease ( names );
-        }
-    }
-}
-
-
-/* Copy
- *  copy from source to destination
- */
-void MetaPairCopy ( MetaPair *self, const ctx_t *ctx, const char *owner_spec, const char **exclude )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    char path [ 4096 ];
-    const KMDataNode *src;
-
-    STATUS ( 3, "copying '%s' metadata", owner_spec );
-
-    rc = KMetadataOpenNodeRead ( self -> smeta, & src, "/" );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "KMetadataOpenNodeRead failed to obtain '%s' root node", owner_spec );
-    else
-    {
-        KMDataNode *dst;
-        rc = KMetadataOpenNodeUpdate ( self -> dmeta, & dst, "/" );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "KMetadataOpenNodeUpdate failed to obtain '%s' root node", owner_spec );
-        else
-        {
-            path [ 0 ] = 0;
-            copy_meta_node ( src, ctx, dst, path, 0, owner_spec, exclude );
-
-            KMDataNodeRelease ( dst );
-        }
-
-        KMDataNodeRelease ( src );
-    }
-
-    STATUS ( 3, "finished copying metadata" );
-}
diff --git a/tools/sra-sort/meta-pair.h b/tools/sra-sort/meta-pair.h
deleted file mode 100644
index 1aa65e5..0000000
--- a/tools/sra-sort/meta-pair.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_meta_pair_
-#define _h_sra_sort_meta_pair_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct KMetadata;
-
-
-/*--------------------------------------------------------------------------
- * MetaPair
- *  interface to pairing of source and destination tables
- */
-typedef struct MetaPair_vt MetaPair_vt;
-
-typedef struct MetaPair MetaPair;
-struct MetaPair
-{
-    /* polymorphic */
-    const MetaPair_vt *vt;
-
-    /* the pair of KMetadata */
-    struct KMetadata const *smeta;
-    struct KMetadata *dmeta;
-
-    KRefcount refcount;
-};
-
-#ifndef METAPAIR_IMPL
-#define METAPAIR_IMPL MetaPair
-#endif
-
-struct MetaPair_vt
-{
-    void ( * whack ) ( METAPAIR_IMPL *self, const ctx_t *ctx );
-};
-
-
-/* Make
- *  make a standard metadata pair from existing KMetadata objects
- */
-MetaPair *MetaPairMake ( const ctx_t *ctx,
-    struct KMetadata const *src, struct KMetadata *dst,
-    const char *full_path );
-
-
-/* Release
- *  called by table at end of copy
- */
-void MetaPairRelease ( MetaPair *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-MetaPair *MetaPairDuplicate ( MetaPair *self, const ctx_t *ctx );
-
-
-/* Init
- */
-void MetaPairInit ( MetaPair *self, const ctx_t *ctx, const MetaPair_vt *vt,
-    struct KMetadata const *src, struct KMetadata *dst, const char *full_spec );
-
-/* Destroy
- */
-void MetaPairDestroy ( MetaPair *self, const ctx_t *ctx );
-
-
-/* Copy
- *  copy from source to destination
- */
-void MetaPairCopy ( MetaPair *self, const ctx_t *ctx,
-    const char *owner_spec, const char **exclude );
-
-
-#endif /* _h_sra_sort_meta_pair_ */
diff --git a/tools/sra-sort/paged-membank.c b/tools/sra-sort/paged-membank.c
deleted file mode 100644
index a91c4d4..0000000
--- a/tools/sra-sort/paged-membank.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct PagedMemBank PagedMemBank;
-#define MEMBANK_IMPL PagedMemBank
-
-#include "caps.h"
-#include "ctx.h"
-#include "mem.h"
-#include "except.h"
-#include "status.h"
-#include "sra-sort.h"
-
-#include "membank-priv.h"
-
-#include <klib/container.h>
-#include <klib/rc.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-FILE_ENTRY ( paged-membank );
-
-
-/*--------------------------------------------------------------------------
- * MemPage
- */
-typedef struct MemPage MemPage;
-struct MemPage
-{
-    SLNode n;
-    size_t used;
-};
-
-/*--------------------------------------------------------------------------
- * PagedMemBank
- *  designed to allocate a lot of little bits of memory
- *  and then free them all at once
- */
-struct PagedMemBank
-{
-    MemBank dad;
-    size_t quota;
-    size_t avail;
-    size_t pgsize;
-    SLList pages;
-};
-
-
-/* Whack
- */
-static
-void PagedMemBankWhack ( PagedMemBank *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    MemPage *pg = ( MemPage* ) SLListPopHead ( & self -> pages );
-    while ( pg != NULL )
-    {
-        MemFree ( ctx, pg, self -> pgsize );
-        pg = ( MemPage* ) SLListPopHead ( & self -> pages );
-    }
-
-    MemBankDestroy ( & self -> dad, ctx );
-
-    MemFree ( ctx, self, sizeof * self );
-}
-
-
-/* InUse
- *  report the number of bytes in use
- *  optionally returns quota
- */
-static
-size_t PagedMemBankInUse ( const PagedMemBank *self, const ctx_t *ctx, size_t *quota )
-{
-    size_t dummy;
-
-    if ( quota == NULL )
-        quota = & dummy;
-
-    if ( self != NULL )
-    {
-        * quota = self -> quota;
-        return self -> quota - self -> avail;
-    }
-
-    * quota = 0;
-    return 0;
-}
-
-
-/* Alloc
- *  allocates some memory from bank
- */
-static
-void *PagedMemBankAlloc ( PagedMemBank *self, const ctx_t *ctx, size_t bytes, bool clear )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    void *mem;
-    size_t avail;
-
-    /* check current alloc page */
-    MemPage *pg = ( MemPage* ) SLListHead ( & self -> pages );
-    if ( pg != NULL )
-    {
-        /* calculate bytes available */
-        avail = self -> pgsize - pg -> used;
-        if ( avail >= bytes )
-        {
-            /* got the memory */
-            mem = & ( ( uint8_t* ) pg ) [ pg -> used ];
-            pg -> used += bytes;
-
-            /* zero it out if so requested */
-            if ( clear )
-                memset ( mem, 0, bytes );
-
-            return mem;
-        }
-    }
-
-    /* either didn't have a page or didn't have enough memory
-       test for being able to fit in ANY page */
-    if ( bytes > self -> pgsize - sizeof * pg )
-    {
-        rc = RC ( rcExe, rcMemory, rcAllocating, rcData, rcExcessive );
-        ERROR ( rc, "requested memory allocation of %zu bytes is too large to fit into a page", bytes );
-        return NULL;
-    }
-
-    /* allocate the bytes */
-    if ( self -> avail >= self -> pgsize )
-    {
-        /* going to allocate a full page */
-        self -> avail -= self -> pgsize;
-
-        /* ask process for memory block */
-        TRY ( pg = MemAlloc ( ctx, self -> pgsize, false ) )
-        {
-            /* got it - push it onto stack */
-            pg -> used = sizeof * pg + bytes;
-            SLListPushHead ( & self -> pages, & pg -> n );
-
-            /* clear memory of asked */
-            mem = pg + 1;
-            if ( clear )
-                memset ( mem, 0, bytes );
-
-            return mem;
-        }
-
-        /* return with error from main MemBank */
-        return NULL;
-    }
-
-    /* at this point we could be using a timeout */
-    rc = RC ( rcExe, rcMemory, rcAllocating, rcRange, rcExcessive );
-    ERROR ( rc, "quota exceeded allocating %zu bytes of page memory for a %zu byte block", self -> pgsize, bytes );
-
-    return NULL;
-}
-
-
-/* Free
- *  ignored by paged bank
- */
-static
-void PagedMemBankFree ( PagedMemBank *self, const ctx_t *ctx, void *mem, size_t bytes )
-{
-}
-
-
-static MemBank_vt PagedMemBank_vt =
-{
-    PagedMemBankWhack,
-    PagedMemBankInUse,
-    PagedMemBankAlloc,
-    PagedMemBankFree
-};
-
-
-/*--------------------------------------------------------------------------
- * MemBank
- *  very, very, very watered down memory bank
- */
-
-/* MakePaged
- *  make a new paged memory bank
- */
-MemBank *MemBankMakePaged ( const ctx_t *ctx, size_t quota, size_t pgsize )
-{
-    FUNC_ENTRY ( ctx );
-    PagedMemBank *mem;
-
-    /* special case for using memory mapped banks */
-    if ( ctx -> caps -> tool -> mmapdir != NULL )
-        return MemBankMakePagedMMap ( ctx, quota, pgsize );
-
-    if ( pgsize < 4096 )
-        pgsize = 4096;
-
-    if ( quota < pgsize )
-        quota = pgsize;
-
-    TRY ( mem = MemAlloc ( ctx, sizeof * mem, true ) )
-    {
-        TRY ( MemBankInit ( & mem -> dad, ctx, & PagedMemBank_vt, "Task MemBank" ) )
-        {
-            mem -> quota = mem -> avail = quota;
-            mem -> pgsize = pgsize;
-            return & mem -> dad;
-        }
-
-        MemFree ( ctx, mem, sizeof * mem );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/paged-mmapbank.c b/tools/sra-sort/paged-mmapbank.c
deleted file mode 100644
index aa6d6e5..0000000
--- a/tools/sra-sort/paged-mmapbank.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct PagedMMapBank PagedMMapBank;
-#define MEMBANK_IMPL PagedMMapBank
-
-#include "caps.h"
-#include "ctx.h"
-#include "mem.h"
-#include "except.h"
-#include "status.h"
-#include "sra-sort.h"
-
-#include "membank-priv.h"
-
-#include <kfs/mmap.h>
-#include <kfs/file.h>
-#include <kfs/directory.h>
-#include <klib/container.h>
-#include <klib/rc.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-FILE_ENTRY ( paged-mmapbank );
-
-
-/*--------------------------------------------------------------------------
- * MMapPage
- *  a "page" which is really an entire mmap
- */
-typedef struct MMapPage MMapPage;
-struct MMapPage
-{
-    SLNode n;
-    KMMap *mmap;
-    uint8_t *addr;
-    size_t size;
-    size_t used;
-};
-
-static
-void CC MMapPageWhack ( SLNode *n, void *data )
-{
-    MMapPage *self = ( MMapPage* ) n;
-    const ctx_t *ctx = ( const void* ) data;
-
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc = KMMapRelease ( self -> mmap );
-    if ( rc != 0 )
-        SYSTEM_ERROR ( rc, "KMMapRelease failed" );
-
-    MemFree ( ctx, self, sizeof * self );
-}
-
-
-/*--------------------------------------------------------------------------
- * PagedMMapBank
- *  a memory bank based upon system mmap
- */
-struct PagedMMapBank
-{
-    MemBank dad;
-    size_t quota;
-    size_t used;
-    size_t pgsize;
-    KFile *backing;
-    SLList pages;
-};
-
-
-/* Whack
- */
-static
-void PagedMMapBankWhack ( PagedMMapBank *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    SLListWhack ( & self -> pages, MMapPageWhack, ( void* ) ctx );
-
-    rc = KFileRelease ( self -> backing );
-    if ( rc != 0 )
-        SYSTEM_ERROR ( rc, "KFileRelease failed on backing file" );
-    self -> backing = NULL;
-
-    MemBankDestroy ( & self -> dad, ctx );
-
-    MemFree ( ctx, self, sizeof * self );
-}
-
-
-/* InUse
- *  report the number of bytes in use
- *  optionally returns quota
- */
-static
-size_t PagedMMapBankInUse ( const PagedMMapBank *self, const ctx_t *ctx, size_t *quota )
-{
-    size_t dummy;
-
-    if ( quota == NULL )
-        quota = & dummy;
-
-    if ( self != NULL )
-    {
-        * quota = self -> quota;
-        return self -> used;
-    }
-
-    * quota = 0;
-    return 0;
-}
-
-
-/* CreateBacking
- */
-static
-void PagedMMapBankCreateBacking ( PagedMMapBank *self, const ctx_t *ctx, KFile **backing )
-{
-    FUNC_ENTRY ( ctx );
-
-    KDirectory *wd;
-    rc_t rc = KDirectoryNativeDir ( & wd );
-    if ( rc != 0 )
-        ABORT ( rc, "KDirectoryNativeDir failed" );
-    else
-    {
-        static uint32_t file_no;
-        const Tool *tp = ctx -> caps -> tool;
-
-        ++ file_no;
-        STATUS ( 5, "creating backing file '%s/sra-sort-buffer.%d.%u'", tp -> mmapdir, tp -> pid, file_no );
-
-        rc = KDirectoryCreateFile ( wd, backing, true,
-            0600, kcmInit | kcmParents, "%s/sra-sort-buffer.%d.%u",
-            tp -> mmapdir, tp -> pid, file_no );
-        if ( rc != 0 )
-            ABORT ( rc, "KDirectoryCreateFile failed when creating mem-mapped buffer" );
-        else
-        {
-#if ! WINDOWS
-            /* unlinking file is a wonderful thing */
-            if ( tp -> unlink_idx_files )
-            {
-                /* unlink KFile */
-                STATUS ( 5, "unlinking backing file '%s/sra-sort-buffer.%d.%u'", tp -> mmapdir, tp -> pid, file_no );
-                rc = KDirectoryRemove ( wd, false, "%s/sra-sort-buffer.%d.%u",
-                    tp -> mmapdir, tp -> pid, file_no );
-                if ( rc != 0 )
-                    WARN ( "failed to unlink mem-mapped buffer file #%u", file_no );
-            }
-#endif
-            /* set initial size to a page */
-            rc = KFileSetSize ( * backing, self -> pgsize );
-            if ( rc != 0 )
-                SYSTEM_ERROR ( rc, "KFileSetSize failed to set file to %zu bytes", self -> pgsize );
-        }
-
-        KDirectoryRelease ( wd );
-    }
-}
-
-
-/* ExtendBacking
- *  creates a backing file if not there
- *  extends it otherwise
- */
-static
-void PagedMMapBankExtendBacking ( PagedMMapBank *self, const ctx_t *ctx )
-{
-#if USE_SINGLE_BACKING_FILE
-
-    /* this code is only useful if using a single file for all maps */
-    FUNC_ENTRY ( ctx );
-
-    /* create the file on first attempt */
-    if ( self -> backing == NULL )
-    {
-        assert ( self -> used == 0 );
-        PagedMMapBankCreateBacking ( self, ctx, & self -> backing )l
-    }
-    else
-    {
-        /* extend the file */
-        rc_t rc;
-        STATUS ( 4, "extending common buffer file to %,zu bytes", self -> used + self -> pgsize );
-        rc = KFileSetSize ( self -> backing, self -> used + self -> pgsize );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "KFileSetSize failed to extend file size to %zu bytes", self -> used + self -> pgsize );
-    }
-#endif
-}
-
-
-/* MapPage
- */
-static
-void PagedMMapBankMapPage ( PagedMMapBank *self, const ctx_t *ctx, MMapPage *pg )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-#if USE_SINGLE_BACKING_FILE
-    STATUS ( 4, "allocating new mmap of %,zu bytes onto common file at offset %,zu", self -> pgsize, self -> used );
-    rc = KMMapMakeRgnUpdate ( & pg -> mmap, self -> backing, self -> used, self -> pgsize );
-#else
-    KFile *backing;
-    ON_FAIL ( PagedMMapBankCreateBacking ( self, ctx, & backing ) )
-        return;
-
-    STATUS ( 4, "allocating new mmap of %,zu bytes onto its own file", self -> pgsize );
-    rc = KMMapMakeRgnUpdate ( & pg -> mmap, backing, 0, self -> pgsize );
-    KFileRelease ( backing );
-#endif
-
-    if ( rc != 0 )
-        SYSTEM_ERROR ( rc, "KMMapMakeRgnUpdate failed creating %zu byte region", self -> pgsize );
-    else
-    {
-        rc = KMMapAddrUpdate ( pg -> mmap, ( void** ) & pg -> addr );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "KMMapAddrUpdate failed" );
-        else
-        {
-            rc = KMMapSize ( pg -> mmap, & pg -> size );
-            if ( rc != 0 )
-                INTERNAL_ERROR ( rc, "KMMapSize failed" );
-            else
-            {
-                pg -> used = 0;
-                self -> used += self -> pgsize;
-                STATUS ( 4, "total mem-mapped buffer space: %,zu bytes", self -> used );
-                return;
-            }
-        }
-
-        KMMapRelease ( pg -> mmap );
-        pg -> mmap = NULL;
-    }
-}
-
-
-/* Alloc
- *  allocates some memory from bank
- */
-static
-void *PagedMMapBankAlloc ( PagedMMapBank *self, const ctx_t *ctx, size_t bytes, bool clear )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    void *mem;
-    size_t avail;
-
-    /* check current alloc page */
-    MMapPage *pg = ( MMapPage* ) SLListHead ( & self -> pages );
-    if ( pg != NULL )
-    {
-        /* calculate bytes available */
-        avail = pg -> size - pg -> used;
-        if ( avail >= bytes )
-        {
-            /* got the memory */
-            mem = & pg -> addr [ pg -> used ];
-            pg -> used += bytes;
-
-            /* zero it out if so requested */
-            if ( clear )
-                memset ( mem, 0, bytes );
-
-            return mem;
-        }
-    }
-
-    /* either didn't have a page or didn't have enough memory
-       test for being able to fit in ANY page */
-    if ( bytes > self -> pgsize )
-    {
-        rc = RC ( rcExe, rcMemory, rcAllocating, rcData, rcExcessive );
-        ERROR ( rc, "requested memory allocation of %zu bytes is too large to fit into a page", bytes );
-        return NULL;
-    }
-
-    /* allocate the bytes */
-    if ( self -> used + self -> pgsize <= self -> quota )
-    {
-        /* ask process for memory block */
-        TRY ( pg = MemAlloc ( ctx, sizeof * pg, false ) )
-        {
-            /* increase size of underlying file */
-            TRY ( PagedMMapBankExtendBacking ( self, ctx ) )
-            {
-                TRY ( PagedMMapBankMapPage ( self, ctx, pg ) )
-                {
-                    /* got it - push it onto stack */
-                    SLListPushHead ( & self -> pages, & pg -> n );
-
-                    /* clear memory of asked */
-                    mem = pg  -> addr;
-                    pg -> used = bytes;
-                    if ( clear )
-                        memset ( mem, 0, bytes );
-
-                    return mem;
-                }
-            }
-
-            MemFree ( ctx, pg, sizeof * pg );
-        }
-
-        return NULL;
-    }
-
-    /* at this point we could be using a timeout */
-    rc = RC ( rcExe, rcMemory, rcAllocating, rcRange, rcExcessive );
-    ERROR ( rc, "quota exceeded allocating %zu bytes of page memory for a %zu byte block", self -> pgsize, bytes );
-
-    return NULL;
-}
-
-
-/* Free
- *  ignored by paged bank
- */
-static
-void PagedMMapBankFree ( PagedMMapBank *self, const ctx_t *ctx, void *mem, size_t bytes )
-{
-}
-
-
-static MemBank_vt PagedMMapBank_vt =
-{
-    PagedMMapBankWhack,
-    PagedMMapBankInUse,
-    PagedMMapBankAlloc,
-    PagedMMapBankFree
-};
-
-
-/*--------------------------------------------------------------------------
- * MemBank
- *  very, very, very watered down memory bank
- */
-
-/* MakePagedMMap
- *  make a new paged memory bank backed by memory map
- */
-MemBank *MemBankMakePagedMMap ( const ctx_t *ctx, size_t quota, size_t pgsize )
-{
-    FUNC_ENTRY ( ctx );
-    PagedMMapBank *mem;
-
-    if ( pgsize < 256 * 1024 * 1024 )
-        pgsize = 256 * 1024 * 1024;
-
-    if ( quota < pgsize )
-        quota = pgsize;
-
-    TRY ( mem = MemAlloc ( ctx, sizeof * mem, true ) )
-    {
-        TRY ( MemBankInit ( & mem -> dad, ctx, & PagedMMapBank_vt, "Memory Mapped Task MemBank" ) )
-        {
-            mem -> quota = quota;
-            mem -> pgsize = pgsize;
-            return & mem -> dad;
-        }
-
-        MemFree ( ctx, mem, sizeof * mem );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/poslen-col-pair.c b/tools/sra-sort/poslen-col-pair.c
deleted file mode 100644
index 452b134..0000000
--- a/tools/sra-sort/poslen-col-pair.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct PoslenColReader PoslenColReader;
-#define COLREADER_IMPL PoslenColReader
-
-typedef struct PoslenColWriter PoslenColWriter;
-#define COLWRITER_IMPL PoslenColWriter
-
-#include "col-pair.h"
-#include "tbl-pair.h"
-#include "map-file.h"
-#include "glob-poslen.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
-#include <kapp/main.h>
-#include <kfs/defs.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-FILE_ENTRY ( poslen-col-pair );
-
-
-/*--------------------------------------------------------------------------
- * PoslenColReader
- *  implementation of ColumnReader based upon MapFile temp column read
- */
-struct PoslenColReader
-{
-    ColumnReader dad;
-
-    /* cached first id in column */
-    int64_t first_id;
-
-    /* buffer for reading poslen */
-    int64_t start_id, excl_stop_id;
-    uint64_t *buff;
-    size_t max_ids;
-
-    /* source of poslen */
-    const MapFile *tmp_col;
-
-    size_t full_spec_size;
-    char full_spec [ 1 ];
-};
-
-
-/* Whack
- */
-static
-void PoslenColReaderWhack ( PoslenColReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* self-bytes */
-    size_t bytes = sizeof * self + self -> full_spec_size;
-
-    /* free buffer */
-    if ( self -> buff != NULL )
-    {
-        ON_FAIL ( MemFree ( ctx, self -> buff, self -> max_ids * sizeof * self -> buff ) )
-        {
-            CLEAR ();
-        }
-        self -> buff = NULL;
-    }
-
-    /* release MapFile */
-    ON_FAIL ( MapFileRelease ( self -> tmp_col, ctx ) )
-    {
-        WARN ( "MapFileRelease failed on '%s'", self -> full_spec );
-        CLEAR ();
-    }
-    self -> tmp_col = NULL;
-
-    /* free self */
-    MemFree ( ctx, self, bytes );
-}
-
-/* FullSpec
- */
-static
-const char *PoslenColReaderFullSpec ( const PoslenColReader *self, const ctx_t *ctx )
-{
-    return self -> full_spec;
-}
-
-
-/* IdRange
- *  returns the number of ids available
- *  and optionally the first id
- */
-static
-uint64_t PoslenColReaderIdRange ( const PoslenColReader *self,
-    const ctx_t *ctx, int64_t *opt_first )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( opt_first != NULL )
-    {
-        ON_FAIL ( * opt_first = self -> first_id )
-            return 0;
-    }
-
-    return MapFileCount ( self -> tmp_col, ctx );
-}
-
-
-/* PreCopy
- *  create buffer
- */
-static
-void PoslenColReaderPreCopy ( PoslenColReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    const Tool *tp = ctx -> caps -> tool;
-
-    self -> max_ids = tp -> max_poslen_ids;
-    if ( tp -> max_poslen_ids < 4096 )
-        self -> max_ids = 4096;
-
-    TRY ( self -> buff = MemAlloc ( ctx, self -> max_ids * sizeof * self -> buff, false ) )
-    {
-        self -> start_id = self -> excl_stop_id = self -> first_id;
-    }
-    CATCH_ALL ()
-    {
-        ANNOTATE ( "failed to allocate buffer for PoslenColReader" );
-    }
-}
-
-
-/* PostCopy
- *  douse buffer
- */
-static
-void PoslenColReaderPostCopy ( PoslenColReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> buff != NULL )
-    {
-        TRY ( MemFree ( ctx, self -> buff, self -> max_ids * sizeof * self -> buff ) )
-        {
-            self -> buff = NULL;
-        }
-    }
-}
-
-
-/* Read
- *  read next row of data
- *  returns NULL if no rows are available
- */
-static
-const void *PoslenColReaderRead ( PoslenColReader *self, const ctx_t *ctx,
-    int64_t row_id, uint32_t *elem_bits, uint32_t *boff, uint32_t *row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    uint32_t dummy;
-
-    if ( elem_bits == NULL )
-        elem_bits = & dummy;
-    if ( boff == NULL )
-        boff = & dummy;
-    if ( row_len == NULL )
-        row_len = & dummy;
-
-    * elem_bits = 64;
-    * boff = 0;
-    * row_len = 0;
-
-    assert ( self -> buff != NULL );
-
-    if ( row_id < self -> start_id || row_id >= self -> excl_stop_id )
-    {
-        size_t num_read;
-
-        if ( row_id < self -> first_id )
-            return NULL;
-
-        /* generate page-aligned starting id */
-        self -> start_id = ( row_id - self -> first_id );
-        self -> start_id -= self -> start_id % self -> max_ids;
-        self -> start_id += self -> first_id;
-        assert ( self -> start_id + self -> max_ids > row_id );
-
-        /* read into buffer */
-        ON_FAIL ( num_read = MapFileReadPoslen ( self -> tmp_col, ctx, self -> start_id, self -> buff, self -> max_ids ) )
-        {
-            self -> start_id = self -> excl_stop_id = self -> first_id;
-            return NULL;
-        }
-        self -> excl_stop_id = self -> start_id + num_read;
-
-        if ( row_id >= self -> excl_stop_id )
-            return NULL;
-    }
-
-    * row_len = 1;
-    return & self -> buff [ row_id - self -> start_id ];
-}
-
-static ColumnReader_vt PoslenColReader_vt =
-{
-    PoslenColReaderWhack,
-    PoslenColReaderFullSpec,
-    PoslenColReaderIdRange,
-    PoslenColReaderPreCopy,
-    PoslenColReaderPostCopy,
-    PoslenColReaderRead
-};
-
-
-/*--------------------------------------------------------------------------
- * TablePair
- */
-
-
-/* MakePoslenColReader
- *  make temporary column reader
- */
-ColumnReader *TablePairMakePoslenColReader ( TablePair *self, const ctx_t *ctx,
-    const MapFile *tmp_col, const char *colspec )
-{
-    FUNC_ENTRY ( ctx );
-
-    PoslenColReader *col;
-    size_t full_spec_size = self -> full_spec_size + string_size ( colspec ) + sizeof "src.." - 1;
-
-    TRY ( col = MemAlloc ( ctx, sizeof * col + full_spec_size, false ) )
-    {
-        TRY ( ColumnReaderInit ( & col -> dad, ctx, & PoslenColReader_vt ) )
-        {
-            TRY ( col -> first_id = MapFileFirst ( tmp_col, ctx ) )
-            {
-                TRY ( col -> tmp_col = MapFileDuplicate ( tmp_col, ctx ) )
-                {
-                    rc_t rc;
-
-                    col -> dad . presorted = true;
-                    col -> start_id = col -> excl_stop_id = col -> first_id;
-                    col -> buff = NULL;
-                    col -> max_ids = ctx -> caps -> tool -> max_poslen_ids;
-                    col -> full_spec_size = ( uint32_t ) full_spec_size;
-
-                    rc = string_printf ( col -> full_spec, full_spec_size + 1, NULL,
-                        "src.%s.%s", self -> full_spec, colspec );
-                    if ( rc == 0 )
-                        return & col -> dad;
-
-                    ABORT ( rc, "miscalculated string size" );
-                }
-            }
-        }
-
-        MemFree ( ctx, col, sizeof * col + full_spec_size );
-    }
-    CATCH_ALL ()
-    {
-        ANNOTATE ( "failed to allocate %zu bytes for PoslenColReader", sizeof * col + full_spec_size );
-    }
-
-    return NULL;
-
-}
-
-
-/*--------------------------------------------------------------------------
- * PoslenColWriter
- *  implementation of ColumnWriter based upon VCursor
- */
-struct PoslenColWriter
-{
-    ColumnWriter dad;
-
-    VCursor *curs;
-    uint32_t global_ref_start;
-    uint32_t ref_len;
-
-    uint32_t full_spec_size;
-    char full_spec [ 1 ];
-};
-
-static
-void PoslenColWriterWhack ( PoslenColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = VCursorRelease ( self -> curs );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorRelease failed on column '%s'", self -> full_spec );
-
-    MemFree ( ctx, self, sizeof * self + self -> full_spec_size );
-}
-
-
-static
-const char *PoslenColWriterFullSpec ( const PoslenColWriter *self, const ctx_t *ctx )
-{
-    return self -> full_spec;
-}
-
-static
-void PoslenColWriterDummyStub ( PoslenColWriter *self, const ctx_t *ctx )
-{
-}
-
-static
-void PoslenColWriterWrite ( PoslenColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    uint64_t poslen;
-
-    uint32_t ref_len;
-    uint64_t global_ref_start;
-
-    assert ( elem_bits == 64 );
-    assert ( boff == 0 );
-    assert ( row_len == 1 );
-
-    memcpy ( & poslen, data, sizeof poslen );
-    global_ref_start = decode_pos_len ( poslen );
-    ref_len = poslen_to_len ( poslen );
-
-    rc = VCursorOpenRow ( self -> curs );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VCursorOpenRow failed on column '%s'", self -> full_spec );
-    else
-    {
-        rc = VCursorWrite ( self -> curs, self -> global_ref_start, sizeof global_ref_start * 8, & global_ref_start, 0, 1 );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "VCursorWrite failed for GLOBAL_REF_START of column '%s'", self -> full_spec );
-        else
-        {
-            rc = VCursorWrite ( self -> curs, self -> ref_len, sizeof ref_len * 8, & ref_len, 0, 1 );
-            if ( rc != 0 )
-                SYSTEM_ERROR ( rc, "VCursorWrite failed for REF_LEN of column '%s'", self -> full_spec );
-            else
-            {
-                rc = VCursorCommitRow ( self -> curs );
-                if ( rc != 0 )
-                    SYSTEM_ERROR ( rc, "VCursorCommit failed for column '%s'", self -> full_spec );
-            }
-        }
-
-        rc = VCursorCloseRow ( self -> curs );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VCursorCloseRow failed on column '%s'", self -> full_spec );
-    }
-}
-
-static
-void PoslenColWriterWriteStatic ( PoslenColWriter *self, const ctx_t *ctx,
-    uint32_t elem_bits, const void *data, uint32_t boff, uint32_t row_len, uint64_t count )
-{
-    FUNC_ENTRY ( ctx );
-
-    uint64_t poslen;
-
-    uint32_t ref_len;
-    uint64_t global_ref_start;
-
-    assert ( elem_bits == 64 );
-    assert ( boff == 0 );
-    assert ( row_len == 1 );
-
-    memcpy ( & poslen, data, sizeof poslen );
-    global_ref_start = decode_pos_len ( poslen );
-    ref_len = poslen_to_len ( poslen );
-
-    for ( ; ! FAILED () && count > 0; -- count )
-    {
-        rc_t rc = VCursorOpenRow ( self -> curs );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VCursorOpenRow failed on column '%s'", self -> full_spec );
-        else
-        {
-            rc = VCursorWrite ( self -> curs, self -> global_ref_start, sizeof global_ref_start * 8, & global_ref_start, 0, 1 );
-            if ( rc != 0 )
-                SYSTEM_ERROR ( rc, "VCursorWrite failed for GLOBAL_REF_START of column '%s'", self -> full_spec );
-            else
-            {
-                rc = VCursorWrite ( self -> curs, self -> ref_len, sizeof ref_len * 8, & ref_len, 0, 1 );
-                if ( rc != 0 )
-                    SYSTEM_ERROR ( rc, "VCursorWrite failed for REF_LEN of column '%s'", self -> full_spec );
-                else
-                {
-                    rc = VCursorCommitRow ( self -> curs );
-                    if ( rc != 0 )
-                        SYSTEM_ERROR ( rc, "VCursorCommit failed for column '%s'", self -> full_spec );
-                    else if ( count > 1 )
-                    {
-                        uint64_t cnt = (count < 0x20000000U ) ? count : 0x20000000U;
-                        rc = VCursorRepeatRow ( self -> curs, cnt - 1 );
-                        if ( rc != 0 )
-                            SYSTEM_ERROR ( rc, "VCursorRepeatRow failed for column '%s'", self -> full_spec );
-                        count -= cnt - 1;
-                    }
-                }
-            }
-
-            rc = VCursorCloseRow ( self -> curs );
-            if ( rc != 0 )
-                INTERNAL_ERROR ( rc, "VCursorCloseRow failed on column '%s'", self -> full_spec );
-        }
-    }
-}
-
-static
-void PoslenColWriterCommit ( PoslenColWriter *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = VCursorCommit ( self -> curs );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorCommit failed on column '%s'", self -> full_spec );
-    else
-    {
-        rc = VCursorRelease ( self -> curs );
-        if ( rc != 0 )
-            ERROR ( rc, "VCursorRelease failed on column '%s'", self -> full_spec );
-        else
-        {
-            self -> curs = NULL;
-        }
-    }
-}
-
-
-static ColumnWriter_vt PoslenColWriter_vt =
-{
-    PoslenColWriterWhack,
-    PoslenColWriterFullSpec,
-    PoslenColWriterDummyStub,
-    PoslenColWriterDummyStub,
-    PoslenColWriterWrite,
-    PoslenColWriterWriteStatic,
-    PoslenColWriterCommit
-};
-
-
-
-/*--------------------------------------------------------------------------
- * TablePair
- */
-
-
-/* MakePoslenColWriter
- */
-ColumnWriter *TablePairMakePoslenColWriter ( TablePair *self, const ctx_t *ctx,
-   VCursor *opt_curs, const char *colspec )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    VCursor *curs;
-
-    if ( opt_curs != NULL )
-        rc = VCursorAddRef ( curs = opt_curs );
-    else
-        rc = VTableCreateCursorWrite ( self -> dtbl, & curs, kcmInsert );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to create cursor on column 'dst.%s.%s'", self -> full_spec, colspec );
-    else
-    {
-        uint32_t global_ref_start;
-        const char *subcolspec = "(U64)GLOBAL_REF_START";
-        rc = VCursorAddColumn ( curs, & global_ref_start, subcolspec );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to add column 'dst.%s.%s' to cursor", self -> full_spec, subcolspec );
-        else
-        {
-            uint32_t ref_len;
-            subcolspec = "(INSDC:coord:len)REF_LEN";
-            rc = VCursorAddColumn ( curs, & ref_len, subcolspec );
-            if ( rc != 0 )
-                ERROR ( rc, "failed to add column 'dst.%s.%s' to cursor", self -> full_spec, subcolspec );
-            else
-            {
-                VCursorSuspendTriggers ( curs );
-                rc = VCursorOpen ( curs );
-                if ( rc != 0 )
-                    ERROR ( rc, "failed to open cursor on columns for 'dst.%s.%s'", self -> full_spec, colspec );
-                else
-                {
-                    PoslenColWriter *col;
-                    size_t full_spec_size = self -> full_spec_size + string_size ( colspec ) + sizeof "dst.." - 1;
-
-                    TRY ( col = MemAlloc ( ctx, sizeof * col + full_spec_size, false ) )
-                    {
-                        ColumnWriterInit ( & col -> dad, ctx, & PoslenColWriter_vt, false );
-                        col -> curs = curs;
-                        col -> global_ref_start = global_ref_start;
-                        col -> ref_len = ref_len;
-
-                        col -> full_spec_size = ( uint32_t ) full_spec_size;
-                        rc = string_printf ( col -> full_spec, full_spec_size + 1, NULL,
-                            "dst.%s.%s", self -> full_spec, colspec );
-                        if ( rc == 0 )
-                            return & col -> dad;
-
-                        ABORT ( rc, "miscalculated string size" );
-                    }
-                    CATCH_ALL ()
-                    {
-                        ANNOTATE ( "failed to allocate %zu bytes for PoslenColWriter", sizeof * col + full_spec_size );
-                    }
-                }
-            }
-        }
-
-        VCursorRelease ( curs );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/poslen-col-pair.h b/tools/sra-sort/poslen-col-pair.h
deleted file mode 100644
index e4f4087..0000000
--- a/tools/sra-sort/poslen-col-pair.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_poslen_col_pair_
-#define _h_sra_sort_poslen_col_pair_
-
-#ifndef _h_sra_sort_defs_
-#include "defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VCursor;
-struct TablePair;
-struct ColumnReader;
-struct ColumnWriter;
-
-
-/*--------------------------------------------------------------------------
- * TablePair
- */
-
-
-/* MakePoslenColReader
- *  make temporary column reader
- */
-struct ColumnReader *TablePairMakePoslenColReader ( struct TablePair *self, const ctx_t *ctx,
-    struct MapFile const *tmp_col, const char *colspec );
-
-
-/* MakePoslenColWriter
- */
-struct ColumnWriter *TablePairMakePoslenColWriter ( struct TablePair *self,
-    const ctx_t *ctx, struct VCursor *opt_curs, const char *colspec );
-
-
-
-#endif /* _h_sra_sort_poslen_col_pair_ */
diff --git a/tools/sra-sort/ref-alignid-col.c b/tools/sra-sort/ref-alignid-col.c
deleted file mode 100644
index 59570df..0000000
--- a/tools/sra-sort/ref-alignid-col.c
+++ /dev/null
@@ -1,705 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-struct AlignIdColReader;
-#define COLREADER_IMPL struct AlignIdColReader
-
-#include "ref-alignid-col.h"
-#include "glob-poslen.h"
-#include "csra-tbl.h"
-#include "csra-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "idx-mapping.h"
-#include "map-file.h"
-#include "sra-sort.h"
-
-#include <vdb/cursor.h>
-#include <kapp/main.h>
-#include <klib/sort.h>
-#include <klib/rc.h>
-
-#include <string.h>
-#include <assert.h>
-
-FILE_ENTRY ( ref-alignid-col );
-
-
-/*--------------------------------------------------------------------------
- * IdPosLen
- */
-typedef struct IdPosLen IdPosLen;
-struct IdPosLen
-{
-    int64_t id;
-    uint64_t poslen;
-};
-
-#if USE_OLD_KSORT
-static
-int CC IdPosLenCmpPos ( const void *a, const void *b, void *data )
-{
-    const IdPosLen *ap = a;
-    const IdPosLen *bp = b;
-
-    if ( ap -> poslen < bp -> poslen )
-        return -1;
-    if ( ap -> poslen > bp -> poslen )
-        return 1;
-    if ( ap -> id < bp -> id )
-        return -1;
-    return ap -> id > bp -> id;
-}
-
-static
-int CC cmp_int64_t ( const void *a, const void *b, void *data )
-{
-    const int64_t *ap = a;
-    const int64_t *bp = b;
-
-    if ( * ap < * bp )
-        return -1;
-    return * ap > * bp;
-}
-#else
-
-static
-void ksort_IdPosLen_pos ( IdPosLen *pbase, size_t total_elems )
-{
-#define SWAP( a, b, off, size )                               \
-    do                                                        \
-    {                                                         \
-        IdPosLen tmp = * ( const IdPosLen* ) ( a );           \
-        * ( IdPosLen* ) ( a ) = * ( const IdPosLen* ) ( b );  \
-        * ( IdPosLen* ) ( b ) = tmp;                          \
-    } while ( 0 )
-
-
-#define CMP( a, b )                                                                                   \
-     ( ( ( ( const IdPosLen* ) ( a ) ) -> poslen == ( ( const IdPosLen* ) ( b ) ) -> poslen ) ?       \
-       ( ( ( const IdPosLen* ) ( a ) ) -> id < ( ( const IdPosLen* ) ( b ) ) -> id ) ? -1 :           \
-       ( ( ( const IdPosLen* ) ( a ) ) -> id > ( ( const IdPosLen* ) ( b ) ) -> id )                  \
-       : ( ( ( const IdPosLen* ) ( a ) ) -> poslen < ( ( const IdPosLen* ) ( b ) ) -> poslen ) ? -1 : \
-       ( ( ( const IdPosLen* ) ( a ) ) -> poslen > ( ( const IdPosLen* ) ( b ) ) -> poslen ) )
-
-    KSORT ( pbase, total_elems, sizeof * pbase, 0, sizeof * pbase );
-
-#undef SWAP
-#undef CMP
-
-}
-#endif
-
-
-/*--------------------------------------------------------------------------
- * AlignIdColReader
- */
-typedef struct AlignIdColReader AlignIdColReader;
-struct AlignIdColReader
-{
-    ColumnReader dad;
-
-    /* state for id range:
-       first = slot [ 0 ] of map
-       row_id = needs to match request - we only accept serial scans
-       next_id = next id to fetch from "ids"
-       last_excl = end of "ids" */
-    int64_t first, row_id, next_id, last_excl;
-
-    /* sequence for handing out new ids */
-    int64_t new_id;
-
-    /* reader onto our join index column */
-    ColumnReader *ids;
-
-    /* reader onto alignment table
-       to retrieve GLOBAL_REF_START + REF_LEN */
-    ColumnReader *poslen;
-
-    /* bi-directional index for writing
-       new=>old and old=>new mappings */
-    MapFile *idx;
-
-    /* buffer for sorted data */
-    union
-    {
-        int64_t *ids;
-        IdPosLen *id_poslen;
-        IdxMapping *id_map;
-    } u;
-    size_t max_elems;
-    size_t num_elems;
-    size_t cur_elem;
-
-    /* buffer for id row */
-    int64_t *row;
-    size_t max_row_len;
-
-    /* chunk-size */
-    size_t chunk_size;
-
-    /* whether we have all ids or not */
-    bool entire_table;
-};
-
-static
-void AlignIdColReaderDestroy ( AlignIdColReader *self, const ctx_t *ctx )
-{
-    if ( self -> ids != NULL )
-    {
-        FUNC_ENTRY ( ctx );
-
-        STATUS ( 4, "destroying align-column reader '%s'", ColumnReaderFullSpec ( self -> ids, ctx ) );
-
-        /* tear everything down */
-        MapFileRelease ( self -> idx, ctx );
-        self -> idx = NULL;
-
-        ColumnReaderRelease ( self -> poslen, ctx );
-        self -> poslen = NULL;
-
-        ColumnReaderRelease ( self -> ids, ctx );
-        self -> ids = NULL;
-
-        if ( self -> u . id_poslen != NULL )
-        {
-            MemFree ( ctx, self -> u . id_poslen, sizeof * self -> u . id_poslen * self -> max_elems );
-            self -> u . id_poslen = NULL;
-        }
-        if ( self -> row != NULL )
-        {
-            MemFree ( ctx, self -> row, sizeof self -> row [ 0 ] * self -> max_row_len );
-            self -> row = NULL;
-        }
-    }
-}
-
-static
-void AlignIdColReaderWhack ( AlignIdColReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* tear down self */
-    AlignIdColReaderDestroy ( self, ctx );
-
-    /* tear down super-class */
-    ColumnReaderDestroy ( & self -> dad, ctx );
-
-    /* gone */
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-const char *AlignIdColReaderFullSpec ( const AlignIdColReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    return ColumnReaderFullSpec ( self -> ids, ctx );
-}
-
-static
-uint64_t AlignIdColReaderIdRange ( const AlignIdColReader *self, const ctx_t *ctx, int64_t *opt_first )
-{
-    FUNC_ENTRY ( ctx );
-    return ColumnReaderIdRange ( self -> ids, ctx, opt_first );
-}
-
-static
-void AlignIdColReaderFlushToIdx ( AlignIdColReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> idx != NULL )
-    {
-        const Tool *tp = ctx -> caps -> tool;
-
-        /* write new=>old ids  */
-        STATUS ( 3, "%s new=>old id map", tp -> write_new_to_old ? "writing" : "setting" );
-        ON_FAIL ( MapFileSetNewToOld ( self -> idx, ctx, self -> u . id_map, self -> num_elems ) )
-        {
-            ANNOTATE ( "failed to record new to old id mappings for '%s'", ColumnReaderFullSpec ( self -> ids, ctx ) );
-            return;
-        }
-        if ( tp -> sort_before_old2new )
-        {
-            /* sort by old ids */
-            STATUS ( 3, "sorting id-map by old-id" );
-#if USE_OLD_KSORT
-            ksort ( self -> u . id_map, self -> num_elems, sizeof self -> u . id_map [ 0 ], IdxMappingCmpOld, ( void* ) ctx );
-#else
-            IdxMappingSortOld ( self -> u . id_map, ctx, self -> num_elems );
-#endif
-        }
-
-        /* write old=>new ids  */
-        STATUS ( 3, "writing old=>new id map" );
-        ON_FAIL ( MapFileSetOldToNew ( self -> idx, ctx, self -> u . id_map, self -> num_elems ) )
-        {
-            ANNOTATE ( "failed to record old to new id mappings for '%s'", ColumnReaderFullSpec ( self -> ids, ctx ) );
-            return;
-        }
-
-        STATUS ( 3, "done writing id maps" );
-    }
-
-    /* empty buffer */
-    self -> first = self -> next_id;
-}
-
-static
-void AlignIdColReaderPreCopy ( AlignIdColReader *self, const ctx_t *ctx )
-{
-    /* TBD - a good place to allocate memory */
-}
-
-static
-void AlignIdColReaderPostCopy ( AlignIdColReader *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* called after a single copy
-       assumes that entire row-range of table has been copied */
-
-    /* tear down self */
-    AlignIdColReaderDestroy ( self, ctx );
-}
-
-static
-const void *AlignIdColReaderRead ( AlignIdColReader *self, const ctx_t *ctx,
-    int64_t row_id, uint32_t *elem_bits, uint32_t *boff, uint32_t *row_len )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const void *base;
-    uint32_t num_read32;
-    size_t i, num_read;
-
-    /* handle bad parameters */
-    uint32_t dummy [ 3 ];
-    if ( elem_bits == NULL )
-        elem_bits = & dummy [ 0 ];
-    if ( boff == NULL )
-        boff = & dummy [ 1 ];
-    if ( row_len == NULL )
-        row_len = & dummy [ 2 ];
-
-    /* THERE ARE three stages to this method:
-       1a. detect need to allocate id map
-       1b. detect need to flush to index
-       2.  detect need to refresh id map
-       3.  respond to read request
-     */
-
-    if ( row_id != self -> row_id )
-    {
-        /* error condition */
-        rc = RC ( rcExe, rcCursor, rcReading, rcParam, rcIncorrect );
-        INTERNAL_ERROR ( rc, "AlignIdColReader only supports serial access" );
-        return NULL;
-    }
-
-    /* stage 1 - allocate or flush */
-    if ( self -> u . ids == NULL && ! self -> entire_table )
-    {
-        /* limit ids to actual count */
-        uint64_t num_ids = MapFileCount ( self -> idx, ctx );
-        self -> max_elems = ctx -> caps -> tool -> max_ref_idx_ids;
-        if ( ( uint64_t ) self -> max_elems > num_ids )
-            self -> max_elems = ( size_t ) num_ids;
-
-        /* allocate the buffer */
-        do
-        {
-            CLEAR ();
-
-            TRY ( self -> u . id_poslen = MemAlloc ( ctx, sizeof self -> u . id_poslen [ 0 ] * self -> max_elems, false ) )
-            {
-                STATUS ( 4, "allocated map buffer with %,zu elements", self -> max_elems );
-                break;
-            }
-
-            self -> max_elems >>= 1;
-        }
-        while ( self -> max_elems >= 1024 * 1024 );
-
-        if ( FAILED () )
-        {
-            ANNOTATE ( "failed to allocate id buffer" );
-            return NULL;
-        }
-
-        /* notice if we have the entire table */
-        if ( ( uint64_t ) self -> max_elems == num_ids )
-            self -> entire_table = true;
-
-        /* allocate a row buffer */
-        self -> max_row_len = 8 * 1024;
-        ON_FAIL ( self -> row = MemAlloc ( ctx, sizeof self -> row [ 8 ] * self -> max_row_len, false ) )
-        {
-            ANNOTATE ( "failed to allocate row buffer" );
-            return NULL;
-        }
-
-        assert ( self -> first == self -> next_id );
-        assert ( self -> first == row_id );
-    }
-    else if ( row_id == self -> next_id && self -> first < row_id )
-    {
-        ON_FAIL ( AlignIdColReaderFlushToIdx ( self, ctx ) )
-            return NULL;
-    }
-
-    /* stage 2 - refresh */
-    if ( self -> first == self -> next_id )
-    {
-        /* if there are no more rows, return NULL  */
-        if ( self -> next_id == self -> last_excl )
-        {
-            STATUS ( 3, "done reading '%s'", ColumnReaderFullSpec ( self -> ids, ctx ) );
-            return NULL;
-        }
-
-        self -> cur_elem = 0;
-
-        /* if the entire table will be read into memory,
-           there is no point in reading/sorting the ids */
-        if ( self -> entire_table )
-        {
-            STATUS ( 3, "auto-generating %,zu ids for '%s'", self -> max_elems, ColumnReaderFullSpec ( self -> ids, ctx ) );
-            for ( i = 0; i < self -> max_elems; ++ i )
-            {
-                self -> u . id_poslen [ i ] . id = self -> first + i;
-#if _DEBUGGING
-                self -> u . id_poslen [ i ] . poslen = 0;
-#endif
-            }
-
-            self -> num_elems = self -> max_elems;
-            self -> next_id = self -> last_excl;
-        }
-        else
-        {
-            /* read up to max_elems into id array */
-            STATUS ( 3, "reading ids from '%s'", ColumnReaderFullSpec ( self -> ids, ctx ) );
-            for ( self -> num_elems = 0; self -> next_id < self -> last_excl; self -> num_elems += num_read, ++ self -> next_id )
-            {
-                /* read a row of ids */
-                ON_FAIL ( base = ColumnReaderRead ( self -> ids, ctx, self -> next_id, elem_bits, boff, & num_read32 ) )
-                {
-                    ANNOTATE ( "failed to read id column" );
-                    return NULL;
-                }
-
-                /* we expect empty rows */
-                num_read = num_read32;
-                if ( num_read == 0 )
-                    continue;
-
-                assert ( * elem_bits == sizeof self -> u . ids [ 0 ] * 8 );
-                assert ( * boff == 0 );
-
-                /* detect when buffer is full */
-                if ( self -> num_elems + num_read > self -> max_elems )
-                {
-                    /* if we've read at least one row, then we're okay */
-                    if ( self -> first < self -> next_id )
-                        break;
-
-                    /* error condition - buffer was too small to read a single row */
-                    rc = RC ( rcExe, rcCursor, rcReading, rcBuffer, rcInsufficient );
-                    ERROR ( rc, "allocated buffer was too small ( %zu elems ) to read a single row ( id %ld, row-len %zu )",
-                            self -> max_elems, self -> next_id, num_read );
-                    return NULL;
-                }
-
-                /* bring them in */
-                memcpy ( & self -> u . ids [ self -> num_elems ], base, num_read * sizeof self -> u . ids [ 0 ] );
-            }
-
-            /* sort to produce sparse but ordered list */
-            STATUS ( 3, "sorting %,zu 64-bit ids", self -> num_elems );
-#if USE_OLD_KSORT
-            ksort ( self -> u . ids, self -> num_elems, sizeof self -> u . ids [ 0 ], cmp_int64_t, ( void* ) ctx );
-#else
-            ksort_int64_t ( self -> u . ids, self -> num_elems );
-#endif
-
-            /* transform from ids to id_poslen */
-            STATUS ( 3, "expanding ids to ( id, position, len ) tuples" );
-            for ( i = self -> num_elems; i > 1 ; )
-            {
-                -- i;
-                self -> u . id_poslen [ i ] . id = self -> u . ids [ i ];
-            }
-        }
-
-        /* read num_elems from poslen */
-        STATUS ( 3, "reading ( position, len ) pairs from '%s'", ColumnReaderFullSpec ( self -> poslen, ctx ) );
-        for ( i = 0; i < self -> num_elems; ++ i )
-        {
-            ON_FAIL ( base = ColumnReaderRead ( self -> poslen, ctx, self -> u . id_poslen [ i ] . id, elem_bits, boff, & num_read32 ) )
-            {
-                ANNOTATE ( "failed to read global ref-start from alignment table" );
-                return NULL;
-            }
-
-            num_read = num_read32;
-            assert ( * elem_bits == sizeof self -> u . id_poslen [ 0 ] . poslen * 8 );
-            assert ( * boff == 0 );
-            assert ( num_read == 1 );
-
-            self -> u . id_poslen [ i ] . poslen = * ( uint64_t* ) base;
-        }
-
-        /* sort by poslen */
-        STATUS ( 3, "sorting ( id, position, len ) tuples on position, len DESC" );
-#if USE_OLD_KSORT
-        ksort ( self -> u . id_poslen, self -> num_elems, sizeof self -> u . id_poslen [ 0 ], IdPosLenCmpPos, ( void* ) ctx );
-#else
-        ksort_IdPosLen_pos ( self -> u . id_poslen, self -> num_elems );
-#endif
-
-        /* write poslen to temp column */
-        STATUS ( 3, "writing ( position, len ) to temp column" );
-        ON_FAIL ( MapFileSetPoslen ( self -> idx, ctx, self -> u . id_map, self -> num_elems ) )
-        {
-            ANNOTATE ( "failed to write temporary poslen column for '%s'", ColumnReaderFullSpec ( self -> ids, ctx ) );
-            return NULL;
-        }
-
-        STATUS ( 3, "done writing ( position, len )" );
-    }
-
-    /* stage 3 - build a row */
-    for ( num_read = ( size_t ) ( self -> num_elems - self -> cur_elem ), i = 0; i < num_read; ++ i )
-    {
-        /* whatever the current element is, it must belong to this row */
-        uint64_t pos = decode_pos_len ( self -> u . id_poslen [ self -> cur_elem + i ] . poslen );
-        int64_t cur_row_id = global_to_row_id ( pos, self -> chunk_size );
-        if ( cur_row_id != row_id )
-        {
-            num_read = i;
-            break;
-        }
-    }
-
-    /* "num_read" now has the number of elements in this row */
-    if ( num_read > self -> max_row_len )
-    {
-        STATUS ( 4, "reallocating row buffer for row-length %,zu", num_read );
-
-        /* realloc the row buffer */
-        MemFree ( ctx, self -> row, self -> max_row_len * sizeof self -> row [ 0 ] );
-
-        self -> max_row_len = ( num_read + 4095 ) & ~ ( size_t ) 4095;
-        ON_FAIL ( self -> row = MemAlloc ( ctx, sizeof self -> row [ 0 ] * self -> max_row_len, false ) )
-        {
-            ANNOTATE ( "failed to reallocate row buffer" );
-            return NULL;
-        }
-    }
-
-    /* build the row, assigning new ids */
-    for ( i = 0; i < num_read; ++ i )
-    {
-        self -> row [ i ] = ++ self -> new_id;
-        self -> u . id_map [ self -> cur_elem + i ] . new_id = self -> new_id;
-    }
-
-    /* advance row_id */
-    self -> cur_elem += num_read;
-    if ( ++ self -> row_id == self -> last_excl )
-    {
-        /* if this was the last row, flush index  */
-        ON_FAIL ( AlignIdColReaderFlushToIdx ( self, ctx ) )
-            return NULL;
-
-        if ( ctx -> caps -> tool -> idx_consistency_check && self -> idx != NULL )
-        {
-            ON_FAIL ( MapFileConsistencyCheck ( self -> idx, ctx ) )
-                return NULL;
-        }
-    }
-
-    /* return row */
-    * elem_bits = sizeof self -> row [ 0 ] * 8;
-    * boff = 0;
-    * row_len = num_read;
-    return self -> row;
-}
-
-static ColumnReader_vt AlignIdColReader_vt =
-{
-    AlignIdColReaderWhack,
-    AlignIdColReaderFullSpec,
-    AlignIdColReaderIdRange,
-    AlignIdColReaderPreCopy,
-    AlignIdColReaderPostCopy,
-    AlignIdColReaderRead
-};
-
-
-/*--------------------------------------------------------------------------
- * RefTblPair
- */
-static
-size_t RefTblPairGetChunkSize ( TablePair *self, const ctx_t *ctx, const VCursor **cursp )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    rc = VTableCreateCursorRead ( self -> stbl, cursp );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to create cursor on '%s'", self -> full_spec );
-    else
-    {
-        uint32_t idx;
-        const VCursor *curs = * cursp;
-        rc = VCursorAddColumn ( curs, & idx, "MAX_SEQ_LEN" );
-        if ( rc != 0 )
-            rc = VCursorAddColumn ( curs, & idx, "CHUNK_SIZE" );
-        if ( rc != 0 )
-            ERROR ( rc, "VCursorAddColumn - failed to determine chunk size of '%s'", self -> full_spec );
-        else
-        {
-            rc = VCursorOpen ( curs );
-            if ( rc != 0 )
-                ERROR ( rc, "VCursorOpen - failed to determine chunk size of '%s'", self -> full_spec );
-            else
-            {
-                uint32_t row_len, chunk_size;
-                rc = VCursorReadDirect ( curs, 1, idx,
-                    sizeof chunk_size * 8, & chunk_size, 1, & row_len );
-                if ( rc != 0 )
-                    ERROR ( rc, "VCursorReadDirect - failed to determine chunk size of '%s'", self -> full_spec );
-                else if ( row_len != 1 )
-                {
-                    rc = RC ( rcExe, rcCursor, rcReading, rcData, rcInsufficient );
-                    ERROR ( rc, "VCursorReadDirect - failed to determine chunk size of '%s'", self -> full_spec );
-                }
-                else
-                {
-                    STATUS ( 3, "'%s' chunk size determined to be %u", self -> full_spec, chunk_size );
-                    return chunk_size;
-                }
-            }
-        }
-
-        VCursorRelease ( curs );
-        * cursp = NULL;
-    }
-
-    return 0;
-}
-
-
-/*--------------------------------------------------------------------------
- * ColumnReader
- *  interface to read column in random order
- */
-
-
-/* MakeAlignIdReader
- */
-ColumnReader *TablePairMakeAlignIdReader ( TablePair *self,
-    const ctx_t *ctx, TablePair *align_tbl, MapFile *idx, const char *colspec )
-{
-    FUNC_ENTRY ( ctx );
-
-    size_t chunk_size;
-    const VCursor *curs;
-
-    /* determine chunk size and keep cursor for id reader */
-    TRY ( chunk_size = RefTblPairGetChunkSize ( self, ctx, & curs ) )
-    {
-        ColumnReader *ids;
-
-        /* need to create a traditional reader on self */
-        TRY ( ids = TablePairMakeColumnReader ( self, ctx, curs, colspec, true ) )
-        {
-            ColumnReader *poslen;
-
-            /* need to create a poslen reader on align_tbl */
-            TRY ( poslen = TablePairMakeGlobalPosLenReader ( align_tbl, ctx, ( uint32_t ) chunk_size ) )
-            {
-                int64_t first;
-                uint64_t count;
-
-                /* need to create a mapfile based on range of poslen */
-                TRY ( count = ColumnReaderIdRange ( poslen, ctx, & first ) )
-                {
-                    TRY ( MapFileSetIdRange ( idx, ctx, first, count ) )
-                    {
-                        AlignIdColReader *col;
-                        TRY ( col = MemAlloc ( ctx, sizeof * col, true ) )
-                        {
-                            TRY ( ColumnReaderInit ( & col -> dad, ctx, & AlignIdColReader_vt ) )
-                            {
-                                /* one more point of failure when obtaining the id range */
-                                TRY ( count = ColumnReaderIdRange ( ids, ctx, & first ) )
-                                {
-                                    TRY ( col -> idx = MapFileDuplicate ( idx, ctx ) )
-                                    {
-                                        col -> first = col -> row_id = col -> next_id = first;
-                                        col -> last_excl = first + count;
-                                        col -> ids = ids;
-                                        col -> poslen = poslen;
-                                        col -> chunk_size = chunk_size;
-                                        col -> entire_table = false;
-                                    
-                                        /* the actual working buffer is allocated upon demand
-                                           to avoid occupying space while waiting to execute */
-
-                                        /* douse the cursor here */
-                                        VCursorRelease ( curs );
-
-                                        return & col -> dad;
-                                    }
-                                }
-                            }
-                            
-                            MemFree ( ctx, col, sizeof * col );
-                        }
-                        
-                        MapFileRelease ( idx, ctx );
-                    }
-                }
-                
-                ColumnReaderRelease ( poslen, ctx );
-            }
-            
-            ColumnReaderRelease ( ids, ctx );
-        }
-
-        VCursorRelease ( curs );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/ref-alignid-col.h b/tools/sra-sort/ref-alignid-col.h
deleted file mode 100644
index 9b5ee84..0000000
--- a/tools/sra-sort/ref-alignid-col.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_ref_alignid_col_
-#define _h_sra_sort_ref_alignid_col_
-
-#ifndef _h_sra_sort_col_pair_
-#include "col-pair.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct MapFile;
-struct TablePair;
-
-
-/*--------------------------------------------------------------------------
- * AlignIdColReader
- */
-
-
-/* MakeAlignIdReader
- */
-ColumnReader *TablePairMakeAlignIdReader ( struct TablePair *self,
-    const ctx_t *ctx, struct TablePair *align_tbl, struct MapFile *idx, const char *colspec );
-
-
-#endif /* _h_sra_sort_ref_alignid_col_ */
diff --git a/tools/sra-sort/row-set-priv.h b/tools/sra-sort/row-set-priv.h
deleted file mode 100644
index 62c50d6..0000000
--- a/tools/sra-sort/row-set-priv.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_row_set_priv_
-#define _h_sra_sort_row_set_priv_
-
-#ifndef _h_sra_sort_row_set_
-#include "row-set.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * RowSetIterator
- *  the basic 4 types
- */
-RowSetIterator * MapFileMakeMappingRowSetIterator ( struct MapFile const *self, const ctx_t *ctx, bool large );
-RowSetIterator * MapFileMakeSortingRowSetIterator ( struct MapFile const *self, const ctx_t *ctx, bool large );
-RowSetIterator * TablePairMakeMappingRowSetIterator ( struct TablePair *self, const ctx_t *ctx, bool large );
-RowSetIterator * TablePairMakeSimpleRowSetIterator ( struct TablePair *self, const ctx_t *ctx );
-
-#endif /* _h_sra_sort_row_set_priv_ */
diff --git a/tools/sra-sort/row-set.c b/tools/sra-sort/row-set.c
deleted file mode 100644
index 59f1851..0000000
--- a/tools/sra-sort/row-set.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "row-set-priv.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-
-#include <vdb/cursor.h>
-#include <klib/rc.h>
-
-FILE_ENTRY ( row-set );
-
-
-/*--------------------------------------------------------------------------
- * RowSet
- *  interface to iterate row-ids
- */
-
-
-/* Release
- *  releases reference
- */
-void RowSetRelease ( const RowSet *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "RowSet" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release RowSet" );
-        }
-    }
-}
-
-/* Duplicate
- */
-RowSet *RowSetDuplicate ( const RowSet *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "RowSet" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate RowSet" );
-            return NULL;
-        }
-    }
-
-    return ( RowSet* ) self;
-}
-
-
-/* Init
- */
-void RowSetInit ( RowSet *self, const ctx_t *ctx, const RowSet_vt *vt )
-{
-    self -> vt = vt;
-    KRefcountInit ( & self -> refcount, 1, "RowSet", "init", "" );
-    self -> align = 0;
-}
-
-
-/*--------------------------------------------------------------------------
- * RowSetIterator
- *  interface to iterate RowSets
- */
-
-/* MakeRowSetIterator
- *  make RowSet iterator based upon parameters
- *  each RowSet will generate row-ids in src order
- *
- *  "sort_idx" [ IN ]
- *    if NULL, the RowSet objects will auto-generate row-ids
- *    otherwise, src row-ids will be selected from MapFile
- *
- *  "pairs" [ IN ]
- *    if true, the row-ids will be generated into an IdxMapping pair
- *    if false but "idx" is not NULL, the src row-ids will be generated
- *      into a single-id map, and new ordering preserved in parallel
- *    if false and "idx" is NULL, no additional structure will be generated
- */
-RowSetIterator *TablePairMakeRowSetIterator ( struct TablePair *self, const ctx_t *ctx,
-    struct MapFile const *sort_idx, bool pairs, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( sort_idx != NULL )
-    {
-        if ( pairs )
-            return MapFileMakeMappingRowSetIterator ( sort_idx, ctx, large );
-
-        return MapFileMakeSortingRowSetIterator ( sort_idx, ctx, large );
-    }
-
-    if ( pairs )
-        return TablePairMakeMappingRowSetIterator ( self, ctx, large );
-
-    return TablePairMakeSimpleRowSetIterator ( self, ctx );
-}
-
-
-/* Release
- *  releases reference
- */
-void RowSetIteratorRelease ( const RowSetIterator *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "RowSetIterator" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release RowSetIterator" );
-        }
-    }
-}
-
-/* Duplicate
- */
-RowSetIterator *RowSetIteratorDuplicate ( const RowSetIterator *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "RowSetIterator" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcCursor, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate RowSetIterator" );
-            return NULL;
-        }
-    }
-
-    return ( RowSetIterator* ) self;
-}
-
-
-/* Init
- */
-void RowSetIteratorInit ( RowSetIterator *self, const ctx_t *ctx, const RowSetIterator_vt *vt )
-{
-    self -> vt = vt;
-    KRefcountInit ( & self -> refcount, 1, "RowSetIterator", "init", "" );
-    self -> align = 0;
-}
diff --git a/tools/sra-sort/row-set.h b/tools/sra-sort/row-set.h
deleted file mode 100644
index 8ffa38a..0000000
--- a/tools/sra-sort/row-set.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_row_set_
-#define _h_sra_sort_row_set_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct MapFile;
-struct TablePair;
-struct IdxMapping;
-
-
-/*--------------------------------------------------------------------------
- * RowSet
- *  interface to iterate row-ids
- */
-typedef struct RowSet_vt RowSet_vt;
-
-typedef struct RowSet RowSet;
-struct RowSet
-{
-    const RowSet_vt *vt;
-    KRefcount refcount;
-    uint32_t align;
-};
-
-#ifndef ROWSET_IMPL
-#define ROWSET_IMPL RowSet
-#endif
-
-struct RowSet_vt
-{
-    /* called by Release */
-    void ( * whack ) ( ROWSET_IMPL *self, const ctx_t *ctx );
-
-    /* retrieve next set of row-ids */
-    size_t ( * next ) ( ROWSET_IMPL *self, const ctx_t *ctx,
-        int64_t *ids, size_t max_ids );
-
-    /* reset iterator to initial state */
-    void ( * reset ) ( ROWSET_IMPL *self, const ctx_t *ctx,
-        bool for_static );
-};
-
-
-/* Release
- *  releases reference
- */
-void RowSetRelease ( const RowSet *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-RowSet *RowSetDuplicate ( const RowSet *self, const ctx_t *ctx );
-
-
-/* Next
- *  return next set of row-ids
- *  returns 0 if no rows are available
- */
-#define RowSetNext( self, ctx, ids, max_ids ) \
-    POLY_DISPATCH_INT ( next, self, ROWSET_IMPL, ctx, ids, max_ids )
-
-
-/* Reset
- *  reset iterator to beginning
- */
-#define RowSetReset( self, ctx, for_static ) \
-    POLY_DISPATCH_VOID ( reset, self, ROWSET_IMPL, ctx, for_static )
-
-
-/* Init
- */
-void RowSetInit ( RowSet *self, const ctx_t *ctx, const RowSet_vt *vt );
-
-/* Destroy
- */
-#define RowSetDestroy( self, ctx ) \
-    ( ( void ) 0 )
-
-
-/*--------------------------------------------------------------------------
- * RowSetIterator
- *  interface to iterate RowSets
- */
-typedef struct RowSetIterator_vt RowSetIterator_vt;
-
-typedef struct RowSetIterator RowSetIterator;
-struct RowSetIterator
-{
-    const RowSetIterator_vt *vt;
-    KRefcount refcount;
-    uint32_t align;
-};
-
-#ifndef ROWSET_ITER_IMPL
-#define ROWSET_ITER_IMPL RowSetIterator
-#endif
-
-struct RowSetIterator_vt
-{
-    /* called by Release */
-    void ( * whack ) ( ROWSET_ITER_IMPL *self, const ctx_t *ctx );
-
-    /* retrieve row-id mapping pair */
-    struct IdxMapping* ( * get_idx_mapping ) ( ROWSET_ITER_IMPL *self, const ctx_t *ctx,
-        size_t *num_items );
-
-    /* retrieve src row-id array */
-    int64_t* ( * get_src_ids ) ( ROWSET_ITER_IMPL *self, const ctx_t *ctx,
-        uint32_t **opt_ord, size_t *num_items );
-
-    /* retrieve next row-set */
-    RowSet* ( * next ) ( ROWSET_ITER_IMPL *self, const ctx_t *ctx );
-};
-
-
-/* MakeRowSetIterator
- *  make RowSet iterator based upon parameters
- *  each RowSet will generate row-ids in src order
- *
- *  "sort_idx" [ IN ]
- *    if NULL, the RowSet objects will auto-generate row-ids
- *    otherwise, src row-ids will be selected from MapFile
- *
- *  "pairs" [ IN ]
- *    if true, the row-ids will be generated into an IdxMapping pair
- *    if false but "idx" is not NULL, the src row-ids will be generated
- *      into a single-id map, and new ordering preserved in parallel
- *    if false and "idx" is NULL, no additional structure will be generated
- *
- *  "large" [ IN ]
- *    if true, use a reduced id-range for the row-set
- */
-RowSetIterator *TablePairMakeRowSetIterator ( struct TablePair *self, const ctx_t *ctx,
-    struct MapFile const *sort_idx, bool pairs, bool large );
-
-
-/* Release
- *  releases reference
- */
-void RowSetIteratorRelease ( const RowSetIterator *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-RowSetIterator *RowSetIteratorDuplicate ( const RowSetIterator *self, const ctx_t *ctx );
-
-
-/* GetIdxMapping
- *  a little bit of plumbing to get the IdxMapping map
- */
-#define RowSetIteratorGetIdxMapping( self, ctx, num_items ) \
-    POLY_DISPATCH_PTR ( get_idx_mapping, self, ROWSET_ITER_IMPL, ctx, num_items )
-
-
-/* GetSourceIds
- *  a little bit of plumbing to get the individual source ids
- *  and optional new id ordering
- */
-#define RowSetIteratorGetSourceIds( self, ctx, opt_ord, num_items ) \
-    POLY_DISPATCH_PTR ( get_src_ids, self, ROWSET_ITER_IMPL, ctx, opt_ord, num_items )
-
-
-/* Next
- *  return next RowSet
- *  returns NULL if no rows are available
- */
-#define RowSetIteratorNext( self, ctx ) \
-    POLY_DISPATCH_PTR ( next, self, ROWSET_ITER_IMPL, ctx )
-
-
-/* Init
- */
-void RowSetIteratorInit ( RowSetIterator *self, const ctx_t *ctx, const RowSetIterator_vt *vt );
-
-/* Destroy
- */
-#define RowSetIteratorDestroy( self, ctx ) \
-    ( ( void ) 0 )
-
-
-#endif /* _h_sra_sort_row_set_ */
diff --git a/tools/sra-sort/run.c b/tools/sra-sort/run.c
deleted file mode 100644
index 8b55da7..0000000
--- a/tools/sra-sort/run.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "sra-sort.h"
-#include "db-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "mem.h"
-#include "except.h"
-#include "status.h"
-
-#include <sra/sraschema.h>
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <kfg/config.h>
-#include <klib/text.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-
-FILE_ENTRY ( run );
-
-static
-void typename_to_config_path ( const char *in, char *out )
-{
-    bool end;
-    uint32_t i;
-
-    for ( end = false, i = 0; ! end; ++ i )
-    {
-        switch ( out [ i ] = in [ i ] )
-        {
-        case ':':
-            out [ i ] = '/';
-            break;
-        case ' ':
-        case '#':
-            out [ i ] = 0;
-        case 0:
-            end = true;
-            return;
-        }
-    }
-}
-
-static
-bool map_typename_builtin ( const ctx_t *ctx, const char *sub_node, const char *in, char *out, char *schema_src, size_t size )
-{
-    FUNC_ENTRY ( ctx );
-
-    size_t copied;
-
-#define ALIGN_EVIDENCE_MAP "NCBI:align:db:alignment_evidence_sorted"
-#define ALIGN_UNSORTED_MAP "NCBI:align:db:alignment_sorted"
-#define ALIGN_SRC          "align/align.vschema"
-
-    if ( strcmp ( out, "NCBI/align/db/alignment_evidence" ) == 0 )
-        copied = string_copy ( out, size, ALIGN_EVIDENCE_MAP, sizeof ALIGN_EVIDENCE_MAP - 1 );
-    else if ( strcmp ( out, "NCBI/align/db/alignment_unsorted" ) == 0 )
-        copied = string_copy ( out, size, ALIGN_UNSORTED_MAP, sizeof ALIGN_UNSORTED_MAP - 1 );
-    else
-    {
-        strcpy ( out, in );
-        schema_src [ 0 ] = 0;
-        return false;
-    }
-
-    if ( copied != size )
-    {
-        out [ copied ] = 0;
-        copied = string_copy ( schema_src, size, ALIGN_SRC, sizeof ALIGN_SRC - 1 );
-    }
-
-    if ( copied == size )
-    {
-        rc_t rc = RC ( rcExe, rcType, rcCopying, rcBuffer, rcInsufficient );
-        INTERNAL_ERROR ( rc, "failed to copy a built-in constant" );
-        strcpy ( out, in );
-        schema_src [ 0 ] = 0;
-        return false;
-    }
-
-#undef ALIGN_EVIDENCE_MAP
-#undef ALIGN_UNSORTED_MAP
-#undef ALIGN_SRC
-
-    schema_src [ copied ] = 0;
-    return true;
-}
-
-static
-bool map_typename ( const ctx_t *ctx, const char *sub_node, const char *in, char *out, char *schema_src, size_t size )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const KConfigNode *n;
-    size_t num_read, remaining;
-
-    typename_to_config_path ( in, out );
-
-    rc = KConfigOpenNodeRead ( ctx -> caps -> cfg, & n, "sra-sort/%s/%s", sub_node, out );
-    if ( rc != 0 )
-        return map_typename_builtin ( ctx, sub_node, in, out, schema_src, size );
-
-    rc = KConfigNodeRead ( n, 0, out, size - 1, & num_read, & remaining );
-    if ( rc != 0 )
-        ERROR ( rc, "KConfigNodeRead failed" );
-    else if ( remaining != 0 )
-    {
-        rc = RC ( rcExe, rcNode, rcReading, rcBuffer, rcInsufficient );
-        ERROR ( rc, "type map of '%s' is too long", in );
-    }
-    else
-    {
-        out [ num_read ] = 0;
-        typename_to_config_path ( out, schema_src );
-
-        KConfigNodeRelease ( n );
-        rc = KConfigOpenNodeRead ( ctx -> caps -> cfg, & n, "sra-sort/schema-src/%s", schema_src );
-        if ( rc != 0 )
-            ERROR ( rc, "KConfigOpenNodeRead - failed to find entry 'sra-sort/schema-src/%s'", schema_src );
-        else
-        {
-            rc = KConfigNodeRead ( n, 0, schema_src, size - 1, & num_read, & remaining );
-            if ( rc != 0 )
-                ERROR ( rc, "KConfigNodeRead failed" );
-            else if ( remaining != 0 )
-            {
-                rc = RC ( rcExe, rcNode, rcReading, rcBuffer, rcInsufficient );
-                ERROR ( rc, "type map of '%s' is too long", in );
-            }
-            else
-            {
-                schema_src [ num_read ] = 0;
-            }
-        }
-    }
-
-    KConfigNodeRelease ( n );
-    return true;
-}
-
-static
-VSchema *map_schema_types ( TypeParams *type, const ctx_t *ctx, const VSchema *src_schema )
-{
-    FUNC_ENTRY ( ctx );
-
-    bool mapped;
-    char schema_src [ 256 ];
-    assert ( sizeof schema_src == sizeof type -> dst_type );
-
-    TRY ( mapped = map_typename ( ctx, "out-map", type -> src_type, type -> dst_type, schema_src, sizeof schema_src ) )
-    {
-        rc_t rc;
-        VSchema *dst_schema;
-
-        if ( ! mapped )
-        {
-            type -> view_type [ 0 ] = 0;
-            rc = VSchemaAddRef ( src_schema );
-            if ( rc != 0 )
-                ERROR ( rc, "VSchemaAddRef failed" );
-            return ( VSchema* ) src_schema;
-        }
-
-        rc = VDBManagerMakeSchema ( ctx -> caps -> vdb, & dst_schema );
-        if ( rc != 0 )
-            ERROR ( rc, "VDBManagerMakeSchema failed" );
-        else
-        {
-            rc = VSchemaParseFile ( dst_schema, schema_src );
-            if ( rc != 0 )
-                ERROR ( rc, "VSchemaParseFile failed adding file '%s' for destination", src_schema );
-            else
-            {
-                TRY ( mapped = map_typename ( ctx, "view-map", type -> src_type, type -> view_type, schema_src, sizeof schema_src ) )
-                {
-                    if ( ! mapped )
-                    {
-                        type -> view_type [ 0 ] = 0;
-                        return dst_schema;
-                    }
-
-                    rc = VSchemaParseFile ( dst_schema, schema_src );
-                    if ( rc == 0 )
-                        return dst_schema;
-
-                    ERROR ( rc, "VSchemaParseFile failed adding file '%s' for view", src_schema );
-                }
-            }
-
-            VSchemaRelease ( dst_schema );
-        }
-    }
-
-    return NULL;
-}
-
-/* open_db
- *  called from run
- *  determines the type of schema
- *  opens output object
- *  dispatches to the appropriate handler
- */
-static
-void open_db ( const ctx_t *ctx, const VDatabase **srcp )
-{
-    FUNC_ENTRY ( ctx );
-
-    const VDatabase *src = *srcp;
-
-    const VSchema *src_schema;
-    rc_t rc = VDatabaseOpenSchema ( src, & src_schema );
-    if ( rc != 0 )
-        ERROR ( rc, "VDatabaseOpenSchema failed" );
-    else
-    {
-        TypeParams type;
-        rc = VDatabaseTypespec ( src, type . src_type, sizeof type . src_type );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to obtain database typespec" );
-        else
-        {
-            VSchema *dst_schema;
-
-            /* map input type to output type */
-            TRY ( dst_schema = map_schema_types ( & type, ctx, src_schema ) )
-            {
-                const Tool *tp = ctx -> caps -> tool;
-
-                /* if view was remapped, reopen the database */
-                if ( type . view_type [ 0 ] != 0 )
-                {
-                    VSchemaRelease ( src_schema );
-                    rc = VSchemaAddRef ( dst_schema );
-                    if ( rc != 0 )
-                    {
-                        ERROR ( rc, "VSchemaAddRef failed" );
-                        src_schema = NULL;
-                    }
-                    else
-                    {
-                        src_schema = dst_schema;
-                        VDatabaseRelease ( src );
-                        rc = VDBManagerOpenDBRead ( ctx -> caps -> vdb, srcp, src_schema, tp -> src_path );
-                        if ( rc != 0 )
-                            ERROR ( rc, "VDBManagerOpenDBRead failed reopening db '%s'", tp -> src_path );
-                        src = *srcp;
-                    }
-                }
-
-                if ( ! FAILED () )
-                {
-                    VDatabase *dst;
-                    rc = VDBManagerCreateDB ( ctx -> caps -> vdb, & dst, dst_schema,
-                        type . dst_type, tp -> db . cmode, tp -> dst_path );
-                    if ( rc != 0 )
-                        ERROR ( rc, "VDBManagerCreateDB failed to create '%s' with type '%s'", tp -> dst_path, type . dst_type );
-                    else
-                    {
-                        rc = VDatabaseColumnCreateParams ( dst, tp -> col . cmode, tp -> col . checksum, tp -> col . pgsize );
-                        if ( rc != 0 )
-                            ERROR ( rc, "VDatabaseColumnCreateParams: failed to set column create params on db '%s'", tp -> dst_path );
-                        else
-                        {
-                            DbPair *pb;
-
-                            /* TBD - this has to be fixed to use proper stuff */
-                            const char *name = strrchr ( tp -> src_path, '/' );
-                            if ( name ++ == NULL )
-                                name = tp -> src_path;
-
-                            TRY ( pb = DbPairMake ( ctx, src, dst, name ) )
-                            {
-                                DbPairRun ( pb, ctx );
-                                DbPairRelease ( pb, ctx );
-                            }
-                        }
-
-                        rc = VDatabaseRelease ( dst );
-                        if ( rc != 0 )
-                            ERROR ( rc, "VDatabaseRelease failed on '%s'", tp -> dst_path );
-                    }
-                }
-
-                VSchemaRelease ( dst_schema );
-            }
-        }
-
-        VSchemaRelease ( src_schema );
-    }
-}
-
-
-/* open_tbl
- *  called from run
- *  determines the type of schema
- *  opens output object
- *  dispatches to the appropriate handler
- */
-static
-void open_tbl ( const ctx_t *ctx, const VTable **tblp )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc = RC ( rcExe, rcFunction, rcExecuting, rcFunction, rcUnsupported );
-    ERROR ( rc, "unimplemented function" );
-}
-
-/* run
- *  called from KMain
- *  determines the type of object being copied/sorted
- *  opens input object
- *  dispatches to the appropriate handler
- */
-void run ( const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    VDBManager *mgr = ctx -> caps -> vdb;
-    const Tool *tp = ctx -> caps -> tool;
-
-    const VDatabase *db;
-    rc_t rc = VDBManagerOpenDBRead ( mgr, & db, NULL, tp -> src_path );
-    if ( rc == 0 )
-    {
-        open_db ( ctx, & db );
-        VDatabaseRelease ( db );
-    }
-    else
-    {
-        const VTable *tbl;
-        rc_t rc2 = VDBManagerOpenTableRead ( mgr, & tbl, NULL, tp -> src_path );
-        if ( rc2 == 0 )
-        {
-            rc = 0;
-            open_tbl ( ctx, & tbl );
-            VTableRelease ( tbl );
-        }
-        else
-        {
-            VSchema *sra_dflt;
-            rc2 = VDBManagerMakeSRASchema ( mgr, & sra_dflt );
-            if ( rc2 == 0 )
-            {
-                rc2 = VDBManagerOpenTableRead ( mgr, & tbl, sra_dflt, tp -> src_path );
-                if ( rc2 == 0 )
-                {
-                    rc = 0;
-                    open_tbl ( ctx, & tbl );
-                    VTableRelease ( tbl );
-                }
-                
-                VSchemaRelease ( sra_dflt );
-            }
-        }
-    }
-
-    if ( rc != 0 )
-        ERROR ( rc, "failed to open object '%s'", tp -> src_path );
-}
diff --git a/tools/sra-sort/simple-row-set.c b/tools/sra-sort/simple-row-set.c
deleted file mode 100644
index e4e5833..0000000
--- a/tools/sra-sort/simple-row-set.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct SimpleRowSet SimpleRowSet;
-#define ROWSET_IMPL SimpleRowSet
-
-typedef struct SimpleRowSetIterator SimpleRowSetIterator;
-#define ROWSET_ITER_IMPL SimpleRowSetIterator
-
-#include "row-set-priv.h"
-#include "tbl-pair.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-
-#include <klib/rc.h>
-
-FILE_ENTRY ( simple-row-set );
-
-
-/*--------------------------------------------------------------------------
- * SimpleRowSet
- *  implementation of RowSet based upon auto-generated serial ids
- */
-struct SimpleRowSet
-{
-    RowSet dad;
-    int64_t first, row_id, last_excl;
-};
-
-static
-void SimpleRowSetWhack ( SimpleRowSet *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    MemFree ( ctx, self, sizeof *self );
-}
-
-static
-size_t SimpleRowSetNext ( SimpleRowSet *self, const ctx_t *ctx,
-    int64_t *row_ids, size_t max_ids )
-{
-    if ( row_ids != NULL )
-    {
-        size_t i;
-
-        uint64_t max_avail = self -> last_excl - self -> row_id;
-        if ( max_avail < ( uint64_t ) max_ids )
-            max_ids = ( size_t ) max_avail;
-
-        for ( i = 0; i < max_ids; ++ i )
-            row_ids [ i ] = self -> row_id + i;
-
-        self -> row_id += max_ids;
-        return max_ids;
-    }
-    return 0;
-}
-
-static
-void SimpleRowSetReset ( SimpleRowSet *self, const ctx_t *ctx, bool for_static )
-{
-    self -> row_id = self -> first;
-}
-
-static RowSet_vt SimpleRowSet_vt =
-{
-    SimpleRowSetWhack,
-    SimpleRowSetNext,
-    SimpleRowSetReset
-};
-
-
-/* Make
- */
-static
-RowSet *SimpleRowSetMake ( const ctx_t *ctx, int64_t first, int64_t last_excl )
-{
-    FUNC_ENTRY ( ctx );
-
-    SimpleRowSet *rs;
-    TRY ( rs = MemAlloc ( ctx, sizeof * rs, false ) )
-    {
-        RowSetInit ( & rs -> dad, ctx, & SimpleRowSet_vt );
-        rs -> first = rs -> row_id = first;
-        rs -> last_excl = last_excl;
-        return & rs -> dad;
-    }
-
-    return NULL;
-}
-
-
-/*--------------------------------------------------------------------------
- * SimpleRowSetIterator
- *  interface to iterate RowSets
- */
-struct SimpleRowSetIterator
-{
-    RowSetIterator dad;
-    RowSet *rs;
-};
-
-static
-void SimpleRowSetIteratorWhack ( SimpleRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    RowSetRelease ( self -> rs, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-struct IdxMapping *SimpleRowSetIteratorGetIdxMapping ( SimpleRowSetIterator *self, const ctx_t *ctx, size_t *num_items )
-{
-    FUNC_ENTRY ( ctx );
-
-    ANNOTATE ( "CALLING GetIdxMapping ON SIMPLE ROWSET ITERATOR" );
-
-    if ( num_items != NULL )
-        * num_items = 0;
-
-    return NULL;
-}
-
-static
-int64_t *SimpleRowSetIteratorGetSourceIds ( SimpleRowSetIterator *self, const ctx_t *ctx, uint32_t **opt_ord, size_t *num_items )
-{
-    FUNC_ENTRY ( ctx );
-
-    ANNOTATE ( "CALLING GetSourceIds ON SIMPLE ROWSET ITERATOR" );
-
-    if ( opt_ord != NULL )
-        * opt_ord = NULL;
-
-    if ( num_items != NULL )
-        * num_items = 0;
-
-    return NULL;
-}
-
-static
-RowSet *SimpleRowSetIteratorNext ( SimpleRowSetIterator *self, const ctx_t *ctx )
-{
-    RowSet *rs = self -> rs;
-    self -> rs = NULL;
-    return rs;    
-}
-
-static RowSetIterator_vt SimpleRowSetIterator_vt =
-{
-    SimpleRowSetIteratorWhack,
-    SimpleRowSetIteratorGetIdxMapping,
-    SimpleRowSetIteratorGetSourceIds,
-    SimpleRowSetIteratorNext
-};
-
-
-/* MakeSimpleRowSetIterator
- *  make simple row-id iterator
- *  runs from first to last id in cursor
- */
-RowSetIterator *TablePairMakeSimpleRowSetIterator ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> first_id > self -> last_excl )
-    {
-        rc_t rc = RC ( rcExe, rcCursor, rcConstructing, rcRange, rcInvalid );
-        INTERNAL_ERROR ( rc, "union of all column ranges improperly set" );
-    }
-    else
-    {
-        SimpleRowSetIterator *it;
-
-        TRY ( it = MemAlloc ( ctx, sizeof * it, false ) )
-        {
-            RowSetIteratorInit ( & it -> dad, ctx, & SimpleRowSetIterator_vt );
-            TRY ( it -> rs = SimpleRowSetMake ( ctx, self -> first_id, self -> last_excl ) )
-            {
-                return & it -> dad;
-            }
-
-            MemFree ( ctx, it, sizeof * it );
-        }
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/sort-defs.h b/tools/sra-sort/sort-defs.h
deleted file mode 100644
index f4aff84..0000000
--- a/tools/sra-sort/sort-defs.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_defs_
-#define _h_sra_sort_defs_
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#include <assert.h>
-
-#if _DEBUGGING &&! defined SRA_SORT_CHECK_NULL_SELF
-#define SRA_SORT_CHECK_NULL_SELF 1
-#endif
-
-#define USE_OLD_KSORT 0
-
-
-/*--------------------------------------------------------------------------
- * vdb-3 items missing from klib/defs.h
- */
-typedef uint32_t caps_t;
-typedef struct ctx_t ctx_t;
-#define STRINGIZE( str ) # str
-#define STRINGIZE_DEFINE( def ) STRINGIZE ( def )
-
-
-/* POLY_DISPATCH
- *  dispatch a polymorphic message
- */
-#if  SRA_SORT_CHECK_NULL_SELF
-
-void null_self_error ( const ctx_t *ctx, uint32_t lineno, const char *msg );
-
-#define POLY_DISPATCH_VOID( msg, self, cast_expr, ctx, ... ) \
-    ( ( ( self ) == NULL ) ? null_self_error ( ctx, __LINE__, # msg ) : \
-      ( * ( self ) -> vt -> msg ) ( ( cast_expr* ) ( self ), ctx, ## __VA_ARGS__ ) )
-
-#define POLY_DISPATCH_INT( msg, self, cast_expr, ctx, ... ) \
-    ( ( ( self ) == NULL ) ? ( null_self_error ( ctx, __LINE__, # msg ), 0 ) : \
-      ( * ( self ) -> vt -> msg ) ( ( cast_expr* ) ( self ), ctx, ## __VA_ARGS__ ) )
-
-#define POLY_DISPATCH_PTR( msg, self, cast_expr, ctx, ... ) \
-    ( ( ( self ) == NULL ) ? ( null_self_error ( ctx, __LINE__, # msg ), NULL ) : \
-      ( * ( self ) -> vt -> msg ) ( ( cast_expr* ) ( self ), ctx, ## __VA_ARGS__ ) )
-
-#else
-
-#define POLY_DISPATCH_VOID( msg, self, cast_expr, ctx, ... ) \
-    ( * ( self ) -> vt -> msg ) ( ( cast_expr* ) ( self ), ctx, ## __VA_ARGS__ )
-#define POLY_DISPATCH_INT( msg, self, cast_expr, ctx, ... ) \
-    ( * ( self ) -> vt -> msg ) ( ( cast_expr* ) ( self ), ctx, ## __VA_ARGS__ )
-#define POLY_DISPATCH_PTR( msg, self, cast_expr, ctx, ... ) \
-    ( * ( self ) -> vt -> msg ) ( ( cast_expr* ) ( self ), ctx, ## __VA_ARGS__ )
-
-#endif
-
-#endif /* _h_sra_sort_defs_ */
diff --git a/tools/sra-sort/sorting-row-set.c b/tools/sra-sort/sorting-row-set.c
deleted file mode 100644
index e94336c..0000000
--- a/tools/sra-sort/sorting-row-set.c
+++ /dev/null
@@ -1,405 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct SortingRowSet SortingRowSet;
-#define ROWSET_IMPL SortingRowSet
-
-typedef struct SortingRowSetIterator SortingRowSetIterator;
-#define ROWSET_ITER_IMPL SortingRowSetIterator
-
-#include "row-set-priv.h"
-#include "tbl-pair.h"
-#include "map-file.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <klib/rc.h>
-
-#include <string.h>
-
-FILE_ENTRY ( sorting-row-set );
-
-
-/*--------------------------------------------------------------------------
- * SortingRowSetIterator
- *  interface to iterate RowSets
- */
-struct SortingRowSetIterator
-{
-    RowSetIterator dad;
-
-    /* base row-id */
-    int64_t row_id;
-
-    /* last row-id + 1 */
-    int64_t last_excl;
-
-    /* takes its input from new=>old index */
-    const MapFile *idx;
-
-    /* working data within map */
-    int64_t *src_ids;
-    uint32_t *new_ord;
-    size_t max_elems;
-    size_t num_elems;
-
-    /* if true, use setting for large-columns */
-    bool large;
-
-    /* if true, no need to regenerate new_ord */
-    bool new_ord_valid;
-};
-
-/*--------------------------------------------------------------------------
- * SortingRowSet
- *  implementation of RowSet based upon auto-generated id pairs
- */
-struct SortingRowSet
-{
-    RowSet dad;
-
-    /* keep-alive reference */
-    SortingRowSetIterator *iter;
-
-    /* working data within map */
-    int64_t *src_ids;
-    size_t num_elems;
-    size_t cur_elem;
-};
-
-static
-void SortingRowSetWhack ( SortingRowSet *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    RowSetIteratorRelease ( & self -> iter -> dad, ctx );
-    MemFree ( ctx, self, sizeof *self );
-}
-
-static
-size_t SortingRowSetNextStat ( SortingRowSet *self, const ctx_t *ctx,
-    int64_t *ids, size_t max_ids )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* the starting row-id is taken from row-set-iterator
-       and offset by our current element counter */
-    int64_t row_id = self -> iter -> row_id + self -> cur_elem;
-
-    /* limit id generation to request */
-    size_t i, to_set = self -> num_elems - self -> cur_elem;
-    if ( to_set > max_ids )
-        to_set = max_ids;
-
-    /* fill request with serial numbers
-       could just as easily be the same number
-       the important thing is to limit the count
-       and produce the correct range */
-    for ( i = 0; i < to_set; ++ i )
-        ids [ i ] = row_id + i;
-
-    /* advance counter */
-    self -> cur_elem += to_set;
-    return to_set;
-}
-
-static
-size_t SortingRowSetNextPhys ( SortingRowSet *self, const ctx_t *ctx,
-    int64_t *ids, size_t max_ids )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* limit copy to request */
-    size_t to_copy = self -> num_elems - self -> cur_elem;
-    if ( to_copy > max_ids )
-        to_copy = max_ids;
-
-    /* copy out old-ids */
-    memcpy ( ids, & self -> src_ids [ self -> cur_elem ], to_copy * sizeof ids [ 0 ] );
-
-    /* advance counter */
-    self -> cur_elem += to_copy;
-    return to_copy;
-}
-
-static
-void SortingRowSetReset ( SortingRowSet *self, const ctx_t *ctx, bool for_static );
-
-static RowSet_vt SortingRowSetPhys_vt =
-{
-    SortingRowSetWhack,
-    SortingRowSetNextPhys,
-    SortingRowSetReset
-};
-
-static RowSet_vt SortingRowSetStat_vt =
-{
-    SortingRowSetWhack,
-    SortingRowSetNextStat,
-    SortingRowSetReset
-};
-
-static
-void SortingRowSetReset ( SortingRowSet *self, const ctx_t *ctx, bool for_static )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( for_static )
-    {
-        /* go static */
-        self -> dad . vt = & SortingRowSetStat_vt;
-    }
-    else
-    {
-        SortingRowSetIterator *iter = self -> iter;
-
-        /* go physical */
-        self -> dad . vt = & SortingRowSetPhys_vt;
-
-        if ( iter -> new_ord_valid )
-        {
-            /* read new-ids from file, selecting old-ids within range */
-            STATUS ( 3, "selecting first %,zu ids from old=>new where new_id >= %,ld",
-                     iter -> max_elems, iter -> row_id );
-            iter -> num_elems = MapFileSelectOldToNewSingle ( iter -> idx, ctx,
-                iter -> row_id, iter -> src_ids, NULL, iter -> max_elems );
-        }
-        else
-        {
-            /* read new-ids from file, init new-ord, selecting old-ids within range */
-            STATUS ( 3, "selecting first %,zu ids, new_ord from old=>new where new_id >= %,ld",
-                     iter -> max_elems, iter -> row_id );
-            TRY ( iter -> num_elems = MapFileSelectOldToNewSingle ( iter -> idx, ctx,
-                      iter -> row_id, iter -> src_ids, iter -> new_ord, iter -> max_elems ) )
-            {
-                iter -> new_ord_valid = true;
-            }
-        }
-
-        if ( FAILED () )
-            return;
-
-        self -> num_elems = iter -> num_elems;
-        STATUS ( 3, "selected %,zu ids", self -> num_elems );
-    }
-
-    /* ready */
-    self -> cur_elem = 0;
-}
-
-
-/*--------------------------------------------------------------------------
- * SortingRowSetIterator
- *  interface to iterate RowSets
- */
-
-static
-void SortingRowSetIteratorWhack ( SortingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( self -> src_ids != NULL )
-        MemFree ( ctx, self -> src_ids, sizeof self -> src_ids [ 0 ] * self -> max_elems );
-    if ( self -> new_ord != NULL )
-        MemFree ( ctx, self -> new_ord, sizeof self -> new_ord [ 0 ] * self -> max_elems );
-
-    MapFileRelease ( self -> idx, ctx );
-
-    RowSetIteratorDestroy ( & self -> dad, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-RowSet *SortingRowSetIteratorMakeTheRowSet ( SortingRowSetIterator *self, const ctx_t *ctx, const RowSet_vt *vt )
-{
-    FUNC_ENTRY ( ctx );
-
-    SortingRowSet *rs;
-    TRY ( rs = MemAlloc ( ctx, sizeof * rs, false ) )
-    {
-        TRY ( RowSetInit ( & rs -> dad, ctx, vt ) )
-        {
-            /* initialize the row-set with map and self reference */
-            rs -> src_ids = self -> src_ids;
-            rs -> iter = ( SortingRowSetIterator* ) RowSetIteratorDuplicate ( & self -> dad, ctx );
-            rs -> num_elems = self -> num_elems;
-            rs -> cur_elem = 0;
-            return & rs -> dad;
-        }
-
-        MemFree ( ctx, rs, sizeof * rs );
-    }
-
-    return NULL;
- }
-
-static
-struct IdxMapping *SortingRowSetIteratorGetIdxMapping ( SortingRowSetIterator *self, const ctx_t *ctx, size_t *num_items )
-{
-    FUNC_ENTRY ( ctx );
-
-    ANNOTATE ( "CALLING GetIdxMapping ON SORTING ROWSET ITERATOR" );
-
-    if ( num_items != NULL )
-        * num_items = 0;
-
-    return NULL;
-}
-
-static
-int64_t *SortingRowSetIteratorGetSourceIds ( SortingRowSetIterator *self, const ctx_t *ctx, uint32_t **opt_ord, size_t *num_items )
-{
-    FUNC_ENTRY ( ctx );
-
-    if ( opt_ord != NULL )
-        * opt_ord = self -> new_ord;
-
-    if ( self -> src_ids == NULL )
-    {
-        rc_t rc = RC ( rcExe, rcCursor, rcAccessing, rcSelf, rcInconsistent );
-        ERROR ( rc, "source id array is NULL" );
-        if ( num_items != NULL )
-            * num_items = 0;
-        return NULL;
-    }
-
-    if ( num_items != NULL )
-        * num_items = self -> num_elems;
-    return self -> src_ids;
-}
-
-static
-void SortingRowSetIteratorAllocMap ( SortingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* determine the maximum number of elements */
-    const Tool *tp = ctx -> caps -> tool;
-    uint64_t count = self -> last_excl - self -> row_id;
-    self -> max_elems = self -> large ? tp -> max_large_idx_ids : tp -> max_idx_ids;
-    if ( ( uint64_t ) self -> max_elems > count )
-        self -> max_elems = ( size_t ) count;
-
-    /* try to allocate the memory
-       this may be limited by the MemBank */
-    do
-    {
-        CLEAR ();
-
-        TRY ( self -> src_ids = MemAlloc ( ctx, sizeof self -> src_ids [ 0 ] * self -> max_elems, false ) )
-        {
-            TRY ( self -> new_ord = MemAlloc ( ctx, sizeof self -> new_ord [ 0 ] * self -> max_elems, false ) )
-            {
-                STATUS ( 4, "allocated mapping array of %,u elements", self -> max_elems );
-                return;
-            }
-
-            MemFree ( ctx, self -> src_ids, sizeof self -> src_ids [ 0 ] * self -> max_elems );
-            self -> src_ids = NULL;
-        }
-
-        self -> max_elems >>= 1;
-    }
-    while ( self -> max_elems >= ctx -> caps -> tool -> min_idx_ids );
-
-    ANNOTATE ( "failed to allocate map for row-set" );
-}
-
-static
-RowSet *SortingRowSetIteratorNext ( SortingRowSetIterator *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    RowSet *rs = NULL;
-
-    /* on first invocation, allocate the map */
-    if ( self -> src_ids == NULL )
-    {
-        ON_FAIL ( SortingRowSetIteratorAllocMap ( self, ctx ) )
-            return NULL;
-
-        assert ( self -> src_ids != NULL );
-        assert ( self -> new_ord != NULL );
-    }
-
-    /* advance row_id */
-    self -> row_id += self -> num_elems;
-    self -> num_elems = 0;
-    self -> new_ord_valid = false;
-
-    /* create the empty row-set */
-    if ( self -> row_id < self -> last_excl )
-        rs = SortingRowSetIteratorMakeTheRowSet ( self, ctx, & SortingRowSetPhys_vt );
-
-    return rs;
-}
-
-
-/*--------------------------------------------------------------------------
- * MapFile
- */
-
-static RowSetIterator_vt SortingRowSetIterator_vt =
-{
-    SortingRowSetIteratorWhack,
-    SortingRowSetIteratorGetIdxMapping,
-    SortingRowSetIteratorGetSourceIds,
-    SortingRowSetIteratorNext
-};
-
-RowSetIterator * MapFileMakeSortingRowSetIterator ( const MapFile *self, const ctx_t *ctx, bool large )
-{
-    FUNC_ENTRY ( ctx );
-
-    SortingRowSetIterator *rsi;
-
-    /* create the iterator */
-    TRY ( rsi = MemAlloc ( ctx, sizeof * rsi, true ) )
-    {
-        TRY ( RowSetIteratorInit ( & rsi -> dad, ctx, & SortingRowSetIterator_vt ) )
-        {
-            /* initialize the row-set with map and self reference */
-            TRY ( rsi -> row_id = MapFileFirst ( self, ctx ) )
-            {
-                TRY ( rsi -> last_excl = rsi -> row_id + MapFileCount ( self, ctx ) )
-                {
-                    TRY ( rsi -> idx = MapFileDuplicate ( self, ctx ) )
-                    {
-                        rsi -> large = large;
-                        return & rsi -> dad;
-                    }
-                }
-            }
-        }
-
-        MemFree ( ctx, rsi, sizeof * rsi );
-    }
-
-    return NULL;
-}
diff --git a/tools/sra-sort/sra-sort.c b/tools/sra-sort/sra-sort.c
deleted file mode 100644
index 0c7eb92..0000000
--- a/tools/sra-sort/sra-sort.c
+++ /dev/null
@@ -1,754 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "ctx.h"
-#include "caps.h"
-#include "mem.h"
-#include "except.h"
-#include "status.h"
-#include "sra-sort.h"
-
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <vdb/manager.h>
-#include <vdb/vdb-priv.h>
-#include <kdb/manager.h>
-#include <kfg/config.h>
-#include <kfs/directory.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/out.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <strtol.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef _WIN32
-#include <process.h>
-#else
-#include <unistd.h>
-#endif
-
-#include "sra-sort.vers.h"
-
-
-FILE_ENTRY ( sra-sort );
-
-
-/* this goes away in vdb-3 */
-const char UsageDefaultName [] = "sra-sort";
-
-rc_t CC UsageSummary ( const char *prog_name )
-{
-    return KOutMsg ( "Usage: %s [options] src-object dst-object\n"
-                     "       %s [options] src-object [src-object...] dst-dir\n"
-                     "\n"
-                     , prog_name
-                     , prog_name
-        );
-}
-
-#define OPT_IGNORE_FAILURE "ignore-failure"
-#define OPT_FORCE "force"
-#define OPT_MEM_LIMIT "mem-limit"
-#define OPT_MAP_FILE_BSIZE "map-file-bsize"
-#define OPT_MAX_IDX_IDS "max-idx-ids"
-#define OPT_MAX_REF_IDX_IDS "max-ref-idx-ids"
-#define OPT_MAX_LARGE_IDX_IDS "max-large-idx-ids"
-#define OPT_TEMP_DIR "tempdir"
-#define OPT_MMAP_DIR "mmapdir"
-#define OPT_UNSORTED_OLD_NEW "unsorted-old-new"
-
-#define OPT_COLUMN_MD5 "column-md5"
-#define OPT_NO_COLUMN_CHECKSUM "no-column-checksum"
-
-#define OPT_BLOB_CRC32 "blob-crc32"
-#define OPT_BLOB_MD5 "blob-md5"
-#define OPT_NO_BLOB_CHECKSUM "no-blob-checksum"
-
-#define OPT_KEEP_IDX_FILES "keep-idx-files"
-#define OPT_IDX_CONSISTENCY_CHECK "idx-cc"
-
-static const char *hlp_ignore_failure [] = { "ignore failure when sorting multiple objects",
-                                             "i.e. continue in spite of previous errors", NULL };
-static const char *hlp_force [] = { "force overwrite of existing destination", NULL };
-static const char *hlp_mem_limit [] = { "sets limit on dynamic memory usage", NULL };
-static const char *hlp_map_file_bsize [] = { "sets id map-file cache size", NULL };
-static const char *hlp_max_idx_ids [] = { "sets number of join-index ids to process at a time", NULL };
-static const char *hlp_max_ref_idx_ids [] = { "sets number of join-index ids to process within REFERENCE table", NULL };
-static const char *hlp_max_large_idx_ids [] = { "sets number of rows to process with large columns", NULL };
-static const char *hlp_temp_dir [] = { "sets a specific directory to use for temporary files", NULL };
-static const char *hlp_mmap_dir [] = { "sets a specific directory to use for memory-mapped buffers", NULL };
-static const char *hlp_unsorted_old_new [] = { "write old=>new index in unsorted order", NULL };
-
-static const char *hlp_column_md5 [] = { "generate md5sum compatible checksum files for each column [default]", NULL };
-static const char *hlp_no_column_checksum [] = { "disable generation of column checksums", NULL };
-
-static const char *hlp_blob_crc32 [] = { "generate CRC32 checksums for each blob [default]", NULL };
-static const char *hlp_blob_md5 [] = { "generate MD5 checksums for each blob", NULL };
-static const char *hlp_no_blob_checksum [] = { "disable generation of blob checksums", NULL };
-
-#if _DEBUGGING
-static const char *hlp_keep_idx_files [] = { "keep temporary index files for debugging", NULL };
-static const char *hlp_idx_consistency_check [] = { "run consistency check on index files", NULL };
-#endif
-
-static OptDef options [] =
-{
-    /* 1. long-name
-       2. list of single character short names
-       3. help-gen function
-       4. list of help strings, NULL terminated
-       5. max count
-       6. option requires value
-       7. option is required
-    */
-    { OPT_IGNORE_FAILURE, "i", NULL, hlp_ignore_failure, 1, false, false }
-  , { OPT_FORCE, "f", NULL, hlp_force, 1, false, false }
-  , { OPT_MEM_LIMIT, NULL, NULL, hlp_mem_limit, 1, true, false }
-  , { OPT_MAP_FILE_BSIZE, NULL, NULL, hlp_map_file_bsize, 1, true, false }
-  , { OPT_MAX_IDX_IDS, NULL, NULL, hlp_max_idx_ids, 1, true, false }
-  , { OPT_MAX_REF_IDX_IDS, NULL, NULL, hlp_max_ref_idx_ids, 1, true, false }
-  , { OPT_MAX_LARGE_IDX_IDS, NULL, NULL, hlp_max_large_idx_ids, 1, true, false }
-  , { OPT_TEMP_DIR, NULL, NULL, hlp_temp_dir, 1, true, false }
-  , { OPT_MMAP_DIR, NULL, NULL, hlp_mmap_dir, 1, true, false }
-  , { OPT_UNSORTED_OLD_NEW, NULL, NULL, hlp_unsorted_old_new, 1, false, false }
-
-  , { OPT_COLUMN_MD5, NULL, NULL, hlp_column_md5, 1, false, false }
-  , { OPT_NO_COLUMN_CHECKSUM, NULL, NULL, hlp_no_column_checksum, 1, false, false }
-  , { OPT_BLOB_CRC32, NULL, NULL, hlp_blob_crc32, 1, false, false }
-  , { OPT_BLOB_MD5, NULL, NULL, hlp_blob_md5, 1, false, false }
-  , { OPT_NO_BLOB_CHECKSUM, NULL, NULL, hlp_no_blob_checksum, 1, false, false }
-#if _DEBUGGING
-  , { OPT_KEEP_IDX_FILES, NULL, NULL, hlp_keep_idx_files, 1, false, false }
-  , { OPT_IDX_CONSISTENCY_CHECK, NULL, NULL, hlp_idx_consistency_check, 1, false, false }
-#endif
-};
-
-static const char *option_params [] =
-{
-    NULL
-  , NULL
-  , "bytes"
-  , "cache-size"
-  , "num-ids"
-  , "num-ids"
-  , "num-ids"
-  , "path-to-tmp"
-  , "path-to-mmaps"
-  , NULL
-  , NULL
-  , NULL
-  , NULL
-  , NULL
-  , NULL
-#if _DEBUGGING
-  , NULL
-  , NULL
-#endif
-};
-
-rc_t CC Usage ( const Args *args )
-{
-    uint32_t i;
-    const char *progname, *fullpath;
-    rc_t rc = ArgsProgram ( args, & fullpath, & progname );
-    if ( rc != 0 )
-        progname = fullpath = UsageDefaultName;
-    
-    UsageSummary ( progname );
-    
-    KOutMsg ( "Options:\n" );
-    
-    for ( i = 0; i < sizeof options / sizeof options [ 0 ]; ++ i )
-    {
-        HelpOptionLine ( options [ i ] . aliases, options [ i ] . name,
-            option_params [ i ], options [ i ] . help );
-    }
-
-    HelpOptionsStandard ();
-    
-    HelpVersion ( fullpath, KAppVersion () );
-
-    return 0;
-}
-
-uint32_t CC KAppVersion ( void )
-{
-    return SRA_SORT_VERS;
-}
-
-static
-const char *ArgsGetOptStr ( Args *self, const ctx_t *ctx, const char *optname, uint32_t *count )
-{
-    rc_t rc;
-    const char *val = NULL;
-
-    uint32_t dummy;
-    if ( count == NULL )
-        count = & dummy;
-
-    rc = ArgsOptionCount ( self, optname, count );
-    if ( rc == 0 && * count != 0 )
-    {
-        rc = ArgsOptionValue ( self, optname, 0, & val );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "failed to retrieve '%s' parameter", optname );
-    }
-
-    return val;
-}
-
-static
-uint64_t ArgsGetOptU64 ( Args *self, const ctx_t *ctx, const char *optname, uint32_t *count )
-{
-    rc_t rc;
-    uint64_t val = 0;
-
-    uint32_t dummy;
-    if ( count == NULL )
-        count = & dummy;
-
-    rc = ArgsOptionCount ( self, optname, count );
-    if ( rc == 0 && * count != 0 )
-    {
-        const char *str;
-        rc = ArgsOptionValue ( self, optname, 0, & str );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "failed to retrieve '%s' parameter", optname );
-        else
-        {
-            char *end;
-            val = strtou64 ( str, & end, 0 );
-            if ( end [ 0 ] != 0 )
-            {
-                rc = RC ( rcExe, rcArgv, rcParsing, rcParam, rcIncorrect );
-                ERROR ( rc, "bad '%s' parameter: '%s'", optname, str );
-            }
-        }
-    }
-
-    return val;
-}
-
-static
-bool ArgsGetOptBool ( Args *self, const ctx_t *ctx, const char *optname, uint32_t *count )
-{
-    rc_t rc;
-    bool val = false;
-
-    uint32_t dummy;
-    if ( count == NULL )
-        count = & dummy;
-
-    rc = ArgsOptionCount ( self, optname, count );
-    if ( rc == 0 && * count != 0 )
-        val = true;
-
-    return val;
-}
-
-static
-uint64_t KConfigGetNodeU64 ( const ctx_t *ctx, const char *path, bool *found )
-{
-    rc_t rc;
-    uint64_t val = 0;
-    const KConfigNode *n;
-
-    bool dummy;
-    if ( found == NULL )
-        found = & dummy;
-
-    rc = KConfigOpenNodeRead ( ctx -> caps -> cfg, & n, "sra-sort/map_file_bsize" );
-    if ( rc == 0 )
-    {
-        char buff [ 256 ];
-        size_t num_read, remaining;
-
-        rc = KConfigNodeRead ( n, 0, buff, sizeof buff - 1, & num_read, & remaining );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to read KConfig node '%s'", path );
-        else if ( remaining != 0 )
-        {
-            rc = RC ( rcExe, rcNode, rcReading, rcBuffer, rcInsufficient );
-            ERROR ( rc, "failed to read KConfig node '%s'", path );
-        }
-        else
-        {
-            char *end;
-            buff [ num_read ] = 0;
-            val = strtou64 ( buff, & end, 0 );
-            if ( end [ 0 ] != 0 )
-            {
-                rc = RC ( rcExe, rcNode, rcReading, rcNumeral, rcIncorrect );
-                ERROR ( rc, "bad '%s' config value: '%s'", path, buff );
-            }
-        }
-
-        KConfigNodeRelease ( n );
-    }
-
-    return val;
-}
-
-static
-void initialize_params ( const ctx_t *ctx, Caps *caps, Tool *tp, Selection *sel, Args *args )
-{
-    bool found=false;
-    uint64_t val;
-    uint32_t count;
-    const char *str;
-
-    int col_md5 = kcmMD5;
-
-    memset ( sel, 0, sizeof * sel );
-    memset ( tp, 0, sizeof * tp );
-    tp -> sel = sel;
-
-    /* default to host tmp */
-    tp -> tmpdir = "/tmp";
-
-    /* default to mmap dir */
-    tp -> mmapdir = NULL;
-
-    /* default buffer size for map cache */
-    tp -> map_file_bsize = 64 * 1024 * 1024;
-    tp -> map_file_random_bsize = tp -> map_file_bsize;
-
-    /* default max index ids to gather at a time */
-    tp -> max_ref_idx_ids = tp -> max_large_idx_ids = tp -> max_idx_ids = 256 * 1024 * 1024;
-    tp -> max_poslen_ids = 64 * 1024 * 1024;
-    tp -> min_idx_ids =  64 * 1024 * 1024;
-    tp -> max_missing_ids = tp -> max_idx_ids;
-
-#if 0
-    /* refpos cache size */
-    tp -> refpos_cache_capacity = 100 * 1024 * 1024;
-#endif
-
-    /* for creating mapping files */
-    tp -> pid = getpid ();
-
-    /* db create defaults */
-    tp -> db . cmode = kcmCreate;
-
-    /* tbl create defaults */
-    tp -> tbl . cmode = kcmCreate;
-
-    /* column create mode defaults */
-    tp -> col . pgsize = 1;
-    tp -> col . cmode = kcmInit;
-    tp -> col . checksum = kcsCRC32;
-
-    /* normally do not ignore failures */
-    tp -> ignore = false;
-
-    /* normally do not force overwrite */
-    tp -> force = false;
-
-    /* not needed under normal circumstances */
-    tp -> write_new_to_old = false;
-tp->write_new_to_old=true;
-
-    /* default is to sort on old */
-    tp -> sort_before_old2new = true;
-
-    /* when debugging, this can be turned off */
-    tp -> unlink_idx_files = true;
-    tp -> idx_consistency_check = false;
-
-
-    /* record them as caps */
-    caps -> tool = tp;
-
-    /* look in config */
-    /* TBD - COMPLETE THIS */
-    ON_FAIL ( val = KConfigGetNodeU64 ( ctx, "sra-sort/map_file_bsize", & found ) )
-        return;
-    if ( found )
-        tp -> map_file_bsize = tp -> map_file_random_bsize = ( size_t ) val;
-
-    ON_FAIL ( val = KConfigGetNodeU64 ( ctx, "sra-sort/map_file_random_bsize", & found ) )
-        return;
-    if ( found )
-        tp -> map_file_random_bsize = ( size_t ) val;
-
-    ON_FAIL ( val = KConfigGetNodeU64 ( ctx, "sra-sort/max_idx_ids", & found ) )
-        return;
-    if ( found )
-        tp -> max_idx_ids = ( size_t ) val;
-
-    ON_FAIL ( val = KConfigGetNodeU64 ( ctx, "sra-sort/max_ref_idx_ids", & found ) )
-        return;
-    if ( found )
-        tp -> max_ref_idx_ids = ( size_t ) val;
-
-    /* finally look in args */
-    ON_FAIL ( str = ArgsGetOptStr ( args, ctx, OPT_TEMP_DIR, & count ) )
-        return;
-    if ( count != 0 && str [ 0 ] != 0 )
-        tp -> tmpdir = str;
-
-    ON_FAIL ( str = ArgsGetOptStr ( args, ctx, OPT_MMAP_DIR, & count ) )
-        return;
-    if ( count != 0 && str [ 0 ] != 0 )
-        tp -> mmapdir = str;
-
-    ON_FAIL ( val = ArgsGetOptU64 ( args, ctx, OPT_MAP_FILE_BSIZE, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> map_file_random_bsize = ( size_t ) val;
-   
-    ON_FAIL ( val = ArgsGetOptU64 ( args, ctx, OPT_MAX_IDX_IDS, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> max_idx_ids = tp -> max_ref_idx_ids = ( size_t ) val;
-   
-    ON_FAIL ( val = ArgsGetOptU64 ( args, ctx, OPT_MAX_REF_IDX_IDS, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> max_ref_idx_ids = ( size_t ) val;
-   
-    ON_FAIL ( val = ArgsGetOptU64 ( args, ctx, OPT_MAX_LARGE_IDX_IDS, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> max_large_idx_ids = ( size_t ) val;
-
-    ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_IGNORE_FAILURE, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> ignore = true;
-
-    ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_FORCE, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> force = true;
-   
-    ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_UNSORTED_OLD_NEW, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> sort_before_old2new = false;
-
-    ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_COLUMN_MD5, & count ) )
-        return;
-    if ( count != 0 )
-        col_md5 = kcmMD5;
-    else
-    {
-        ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_NO_COLUMN_CHECKSUM, & count ) )
-            return;
-        if ( count != 0 )
-            col_md5 = 0;
-    }
-
-    tp -> db . cmode |= col_md5;
-    tp -> tbl . cmode |= col_md5;
-    tp -> col . cmode |= col_md5;
-
-    ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_BLOB_CRC32, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> col . checksum = kcsCRC32;
-    else
-    {
-        ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_BLOB_MD5, & count ) )
-            return;
-        if ( count != 0 )
-            tp -> col . checksum = kcsMD5;
-        else
-        {
-            ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_NO_BLOB_CHECKSUM, & count ) )
-                return;
-            if ( count != 0 )
-                tp -> col . checksum = kcsNone;
-        }
-    }
-
-#if _DEBUGGING
-    ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_KEEP_IDX_FILES, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> unlink_idx_files = false;
-
-    ON_FAIL ( found = ArgsGetOptBool ( args, ctx, OPT_IDX_CONSISTENCY_CHECK, & count ) )
-        return;
-    if ( count != 0 )
-        tp -> idx_consistency_check = tp -> write_new_to_old = true;
-#endif
-}
-
-static
-void initialize_caps ( const ctx_t *ctx, Caps *caps, Args *args )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* get specified limit */
-    uint32_t count;
-    size_t mem_limit = ( size_t ) ArgsGetOptU64 ( args, ctx, OPT_MEM_LIMIT, & count );
-    if ( ! FAILED () && count != 0 )
-    {
-        MemBank *mem;
-        TRY ( mem = MemBankMake ( ctx, mem_limit ) )
-        {
-            MemBankRelease ( caps -> mem, ctx );
-            caps -> mem = mem;
-        }
-    }
-
-    if ( ! FAILED () )
-    {
-        /* here's a chance to pick up special config */
-        /* TBD */
-
-        /* open up KConfig */
-        rc_t rc = KConfigMake ( ( KConfig** ) & caps -> cfg, NULL );
-        if ( rc != 0 )
-            ERROR ( rc, "KConfigMake failed" );
-    }
-}
-
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    DECLARE_CTX_INFO ();
-
-    /* initialize context */
-    Caps caps;
-    ctx_t main_ctx = { & caps, NULL, & ctx_info };
-    const ctx_t *ctx = & main_ctx;
-    CapsInit ( & caps, NULL );
-
-    if ( argc <= 1 )
-        main_ctx . rc = UsageSummary ( "sra-sort" );
-    else
-    {
-        /* create MemBank with unlimited quota */
-        TRY ( caps . mem = MemBankMake (  ctx, -1 ) )
-        {
-            rc_t rc = VDBManagerMakeUpdate ( & caps . vdb, NULL );
-            if ( rc != 0 )
-                ERROR ( rc, "failed to create VDBManager" );
-            else
-            {
-                rc = VDBManagerOpenKDBManagerUpdate ( caps . vdb, & caps . kdb );
-                if ( rc != 0 )
-                    ERROR ( rc, "failed to create KDBManager" );
-                else
-                {
-                    Args * args;
-                    rc = ArgsMakeAndHandle ( & args, argc, argv, 1,
-                        options, sizeof options / sizeof options [ 0 ] );
-                    if ( rc != 0 )
-                        ERROR ( rc, "failed to parse command line" );
-                    else
-                    {
-                        TRY ( initialize_caps ( ctx, & caps, args ) )
-                        {
-                            Tool tp;
-                            Selection sel;
-                            TRY ( initialize_params ( ctx, & caps, & tp, & sel, args ) )
-                            {
-                                uint32_t count;
-                                rc = ArgsParamCount ( args, & count );
-                                if ( rc != 0 )
-                                    ERROR ( rc, "ArgsParamCount failed" );
-                                else if ( count < 2 )
-                                {
-                                    rc = RC ( rcExe, rcArgv, rcParsing, rcParam, rcInsufficient );
-                                    ERROR ( rc, "expected source and destination parameters" );
-                                }
-                                else
-                                {
-                                    /* check type of last parameter */
-                                    const char *dst;
-                                    rc = ArgsParamValue ( args, count - 1, & dst );
-                                    if ( rc != 0 )
-                                        ERROR ( rc, "ArgsParamValue [ %u ] failed", count - 1 );
-                                    else
-                                    {
-                                        enum RCTarget targ = rcNoTarg;
-
-                                        bool dst_is_dir = false;
-                                        int dst_type = KDBManagerPathType ( caps . kdb, dst ) & ~ kptAlias;
-                                        if ( dst_type == kptDir )
-                                            dst_is_dir = true;
-                                        else if ( count != 2 )
-                                        {
-                                            rc = RC ( rcExe, rcArgv, rcParsing, rcArgv, rcIncorrect );
-                                            ERROR ( rc, "multiple source objects require last parameter to be a directory" );
-                                        }
-                                        else switch ( dst_type )
-                                        {
-                                        case kptNotFound:
-                                            tp . db . cmode |= kcmParents;
-                                            tp . tbl . cmode |= kcmParents;
-                                            break;
-                                        case kptFile:
-                                        case kptFile | kptAlias:
-                                            rc = RC ( rcExe, rcArgv, rcParsing, rcArgv, rcIncorrect );
-                                            ERROR ( rc, "destination object is a file - remove first or rename before trying again" );
-                                            break;
-                                        case kptDatabase:
-                                            targ = rcDatabase;
-                                            break;
-                                        case kptTable:
-                                            targ = rcTable;
-                                            break;
-                                        case kptPrereleaseTbl:
-                                            dst_type = kptTable;
-                                            break;
-                                        default:
-                                            rc = RC ( rcExe, rcArgv, rcParsing, rcArgv, rcIncorrect );
-                                            ERROR ( rc, "destination object type cannot be overwritten" );
-                                            break;
-                                        }
-
-                                        if ( ! FAILED () )
-                                        {
-                                            if ( dst_is_dir )
-                                            {
-                                                uint32_t i;
-                                                rc_t first_rc = 0;
-                                                bool issue_divider_line;
-
-                                                if ( tp . force )
-                                                {
-                                                    tp . db . cmode = kcmInit | ( tp . db . cmode & ~ kcmValueMask );
-                                                    tp . tbl . cmode = kcmInit | ( tp . tbl . cmode & ~ kcmValueMask );
-                                                }
-                                                
-                                                for ( issue_divider_line = false, i = 0; i < count - 1; issue_divider_line = true, ++ i )
-                                                {
-                                                    rc = ArgsParamValue ( args, i, & tp . src_path );
-                                                    if ( rc != 0 )
-                                                        ERROR ( rc, "ArgParamValue [ %u ] failed", i );
-                                                    else
-                                                    {
-                                                        char dst_path [ 4096 ];
-                                                        const char *leaf = strrchr ( tp . src_path, '/' );
-                                                        if ( leaf ++ == NULL )
-                                                            leaf = tp . src_path;
-                                                        rc = string_printf ( dst_path, sizeof dst_path, NULL, "%s/%s", dst, leaf );
-                                                        if ( rc != 0 )
-                                                            ERROR ( rc, "string_printf on param [ %u ] failed", i );
-                                                        else
-                                                        {
-                                                            size_t size = string_size ( dst_path );
-                                                            char *ext = string_rchr ( dst_path, size, '.' );
-                                                            if ( ext != NULL )
-                                                            {
-                                                                size -= ext - dst_path;
-                                                                switch ( size )
-                                                                {
-                                                                case 4:
-                                                                    if ( strcase_cmp ( ext, 4, ".sra", 4, 4 ) == 0 )
-                                                                        * ext = 0;
-                                                                    break;
-                                                                case 5:
-                                                                    if ( strcase_cmp ( ext, 5, ".csra", 5, 5 ) == 0 )
-                                                                        * ext = 0;
-                                                                    break;
-                                                                }
-                                                            }
-
-                                                            if ( issue_divider_line )
-                                                                STATUS ( 1, "################################################################" );
-
-                                                            tp . dst_path = dst_path;
-                                                            ON_FAIL ( run ( ctx ) )
-                                                            {
-                                                                if ( ! tp . ignore )
-                                                                    break;
-
-                                                                if ( first_rc == 0 )
-                                                                    first_rc = ctx -> rc;
-
-                                                                CLEAR ();
-                                                            }
-                                                        }
-                                                    }
-                                                }
-
-                                                if ( first_rc != 0 )
-                                                    main_ctx . rc = first_rc;
-                                            }
-                                            else
-                                            {
-                                                tp . dst_path = dst;
-                                                rc = ArgsParamValue ( args, 0, & tp . src_path );
-                                                if ( rc != 0 )
-                                                    ERROR ( rc, "ArgParamValue [ 0 ] failed" );
-                                                else
-                                                {
-                                                    int src_type;
-
-                                                    switch ( dst_type )
-                                                    {
-                                                    case kptDatabase:
-                                                    case kptTable:
-                                                        src_type = KDBManagerPathType ( caps . kdb, tp . src_path ) & ~ kptAlias;
-                                                        if ( src_type == kptPrereleaseTbl )
-                                                            src_type = kptTable;
-                                                        if ( src_type != dst_type )
-                                                        {
-                                                            rc = RC ( rcExe, rcArgv, rcParsing, rcArgv, rcIncorrect );
-                                                            ERROR ( rc, "source and destination object types are not compatible" );
-                                                        }
-                                                        else if ( ! tp . force )
-                                                        {
-                                                            rc = RC ( rcExe, targ, rcCopying, targ, rcExists );
-                                                            ERROR ( rc, "destination object cannot be overwritten - try again with '-f'" );
-                                                        }
-                                                        else
-                                                        {
-                                                            tp . db . cmode = kcmInit | ( tp . db . cmode & ~ kcmValueMask );
-                                                            tp . tbl . cmode = kcmInit | ( tp . tbl . cmode & ~ kcmValueMask );
-                                                        }
-                                                    }
-
-                                                    if ( ! FAILED () )
-                                                        run ( ctx );
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-
-                        ArgsWhack ( args );
-                    }
-                }
-            }
-
-            CapsWhack ( & caps, ctx );
-        }
-    }
-
-    return main_ctx . rc;
-}
diff --git a/tools/sra-sort/sra-sort.h b/tools/sra-sort/sra-sort.h
deleted file mode 100644
index 027d591..0000000
--- a/tools/sra-sort/sra-sort.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_
-#define _h_sra_sort_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_kfs_defs_
-#include <kfs/defs.h>
-#endif
-
-#ifndef _h_kdb_column_
-#include <kdb/column.h>
-#endif
-
-
-#define NEW_TYPES 1
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct DbPair;
-struct TablePair;
-
-
-/*--------------------------------------------------------------------------
- * Selection
- *  input selection criteria
- */
-typedef struct Selection Selection;
-struct Selection
-{
-    int dummy;
-};
-
-/*--------------------------------------------------------------------------
- * Tool
- *  parameter block generated by KMain
- */
-typedef struct Tool Tool;
-struct Tool
-{
-    /* input selection */
-    const Selection *sel;
-
-    /* directory for temporary files */
-    const char *tmpdir;
-
-    /* directory for mmap page files */
-    const char *mmapdir;
-
-    /* source object path */
-    const char *src_path;
-
-    /* destination object path */
-    const char *dst_path;
-
-    /* buffer size for id map files */
-    size_t map_file_bsize;
-    size_t map_file_random_bsize;
-
-    /* the number of ids to gather at a time */
-    size_t max_ref_idx_ids;
-    size_t max_large_idx_ids;
-    size_t max_poslen_ids;
-    size_t max_idx_ids;
-    size_t min_idx_ids;
-
-    /* the number of missing SEQUENCE ids to gather at a time */
-    size_t max_missing_ids;
-
-    /* pid of tool */
-    int pid;
-
-    /* db create mode */
-    struct
-    {
-        KCreateMode cmode;
-    } db;
-
-    /* tbl create mode */
-    struct
-    {
-        KCreateMode cmode;
-    } tbl;
-
-    /* column blob checksum mode */
-    struct
-    {
-        size_t pgsize;
-        KCreateMode cmode;
-        KChecksum checksum;
-    } col;
-
-    /* ignore failure on multiple sorts */
-    bool ignore;
-
-    /* force overwrite */
-    bool force;
-
-    /* write new=>old mappings
-       not normally needed */
-    bool write_new_to_old;
-
-    /* whether to apply a sort on old-id
-       before writing old=>new mapping or
-       to let pagefile handle it */
-    bool sort_before_old2new;
-
-    /* normally remove idx files right away
-       but if they are being debugged... */
-    bool unlink_idx_files;
-
-    /* perform consistency check on index */
-    bool idx_consistency_check;
-};
-
-
-/*--------------------------------------------------------------------------
- * TypeParams
- *  object type params
- */
-typedef struct TypeParams TypeParams;
-struct TypeParams
-{
-    char src_type [ 256 ];
-    char dst_type [ 256 ];
-    char view_type [ 256 ];
-};
-
-
-/*--------------------------------------------------------------------------
- * sra-sort functions
- */
-
-/* run
- *  called from KMain
- *  determines the type of object being copied/sorted
- *  opens input object
- *  dispatches to the appropriate handler
- */
-void run ( const ctx_t *ctx );
-
-
-#endif
diff --git a/tools/sra-sort/sra-sort.vers b/tools/sra-sort/sra-sort.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/sra-sort/sra-sort.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/sra-sort/status.h b/tools/sra-sort/status.h
deleted file mode 100644
index bbf15ab..0000000
--- a/tools/sra-sort/status.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_status_
-#define _h_sra_sort_status_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * status generation
- */
-
-
-/* STATUS
- *  give feedback
- */
-void Status ( const ctx_t *ctx, uint32_t lineno, uint32_t level, const char *msg, ... );
-#define STATUS( lvl, msg, ... ) \
-    Status ( ctx, __LINE__, lvl, msg, ## __VA_ARGS__ )
-
-
-#endif
diff --git a/tools/sra-sort/tbl-pair.c b/tools/sra-sort/tbl-pair.c
deleted file mode 100644
index f0c6597..0000000
--- a/tools/sra-sort/tbl-pair.c
+++ /dev/null
@@ -1,1055 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-typedef struct TablePair StdTblPair;
-#define TBLPAIR_IMPL StdTblPair
-
-#include "tbl-pair.h"
-#include "col-pair.h"
-#include "db-pair.h"
-#include "meta-pair.h"
-#include "row-set-priv.h"
-#include "ctx.h"
-#include "caps.h"
-#include "except.h"
-#include "status.h"
-#include "mem.h"
-#include "sra-sort.h"
-
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/vdb-priv.h>
-#include <kdb/meta.h>
-#include <klib/printf.h>
-#include <klib/text.h>
-#include <klib/namelist.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-
-FILE_ENTRY ( tbl-pair );
-
-
-/*--------------------------------------------------------------------------
- * StdTblPair
- *  generic database object pair
- */
-
-static
-void StdTblPairWhack ( StdTblPair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-    TablePairDestroy ( self, ctx );
-    MemFree ( ctx, self, sizeof * self );
-}
-
-static
-void StdTblPairDummyStub ( StdTblPair *self, const ctx_t *ctx )
-{
-}
-
-static
-ColumnPair *StdTblPairMakeColumnPair ( StdTblPair *self, const ctx_t *ctx,
-    struct ColumnReader *reader, struct ColumnWriter *writer, const char *colspec, bool large )
-{
-    FUNC_ENTRY ( ctx );
-    return TablePairMakeColumnPair ( self, ctx, reader, writer, colspec, large );
-}
-
-static
-RowSetIterator *StdTblPairGetRowSetIterator ( StdTblPair *self, const ctx_t *ctx, bool mapped, bool large )
-{
-    FUNC_ENTRY ( ctx );
-    return TablePairMakeRowSetIterator ( self, ctx, NULL, mapped, large );
-}
-
-static TablePair_vt StdTblPair_vt =
-{
-    StdTblPairWhack,
-    StdTblPairDummyStub,
-    StdTblPairDummyStub,
-    StdTblPairMakeColumnPair,
-    StdTblPairDummyStub,
-    StdTblPairDummyStub,
-    StdTblPairGetRowSetIterator
-};
-
-
-/*--------------------------------------------------------------------------
- * TablePair
- *  interface code
- */
-
-
-/* Make
- *  makes an object based upon open source and destination VDatabase objects
- */
-TablePair *TablePairMake ( const ctx_t *ctx,
-    const VTable *src, VTable *dst, const char *name, const char *opt_full_spec, bool reorder )
-{
-    FUNC_ENTRY ( ctx );
-
-    StdTblPair *tbl;
-
-    TRY ( tbl = MemAlloc ( ctx, sizeof * tbl, false ) )
-    {
-        TRY ( TablePairInit ( tbl, ctx, & StdTblPair_vt, src, dst, name, opt_full_spec, reorder ) )
-        {
-            return tbl;
-        }
-
-        MemFree ( ctx, tbl, sizeof * tbl );
-    }
-
-    return NULL;
-}
-
-TablePair *DbPairMakeStdTblPair ( DbPair *self, const ctx_t *ctx,
-    const VTable *src, VTable *dst, const char *name, bool reorder )
-{
-    FUNC_ENTRY ( ctx );
-    return TablePairMake ( ctx, src, dst, name, self -> full_spec, reorder );
-}
-
-
-/* Release
- */
-void TablePairRelease ( TablePair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountDrop ( & self -> refcount, "TablePair" ) )
-        {
-        case krefOkay:
-            break;
-        case krefWhack:
-            ( * self -> vt -> whack ) ( ( void* ) self, ctx );
-            break;
-        case krefZero:
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcTable, rcDestroying, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to release TablePair" );
-        }
-    }
-}
-
-/* Duplicate
- */
-TablePair *TablePairDuplicate ( TablePair *self, const ctx_t *ctx )
-{
-    rc_t rc;
-    FUNC_ENTRY ( ctx );
-
-    if ( self != NULL )
-    {
-        switch ( KRefcountAdd ( & self -> refcount, "TablePair" ) )
-        {
-        case krefOkay:
-        case krefWhack:
-        case krefZero:
-            break;
-        case krefLimit:
-        case krefNegative:
-            rc = RC ( rcExe, rcTable, rcAttaching, rcRefcount, rcInvalid );
-            INTERNAL_ERROR ( rc, "failed to duplicate TablePair" );
-            return NULL;
-        }
-    }
-
-    return ( TablePair* ) self;
-}
-
-
-/* CommitColumnPair
- */
-static
-bool CC TablePairCommitColumnPair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    ColumnPair *col = item;
-    TRY ( ColumnWriterCommit ( col -> writer, ctx ) )
-    {
-        return false;
-    }
-    return true;
-}
-
-
-/* ReleaseColumnPair
- */
-static
-void CC TablePairReleaseColumnPair ( void *item, void *data )
-{
-    const ctx_t *ctx = ( const void* ) data;
-    FUNC_ENTRY ( ctx );
-    ColumnPairRelease ( item, ctx );
-}
-
-
-/* Copy
- *  the table has to obtain a RowSetIterator
- *  which it walks vertically
- *
- *  for each RowSet, it walks its columns horizontally,
- *  resetting it between columns
- */
-static
-void TablePairCopyStaticColumns ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* copy static columns */
-    uint32_t count = VectorLength ( & self -> static_cols );
-    if ( count != 0 )
-    {
-#if OLD_STATIC_WRITE
-        RowSetIterator *rsi;
-        TRY ( rsi = TablePairMakeRowSetIterator ( self, ctx, NULL, false ) )
-        {
-#endif
-            STATUS ( 2, "copying '%s' static columns", self -> full_spec );
-
-            while ( ! FAILED () )
-            {
-                uint32_t i;
-
-#if OLD_STATIC_WRITE
-                RowSet *rs;
-                ON_FAIL ( rs = RowSetIteratorNext ( rsi, ctx ) )
-                    break;
-                if ( rs == NULL )
-                    break;
-#endif
-                for ( i = 0; i < count; ++ i )
-                {
-                    ColumnPair *col = VectorGet ( & self -> static_cols, i );
-                    assert ( col != NULL );
-#if OLD_STATIC_WRITE
-                    ON_FAIL ( ColumnPairCopy ( col, ctx, rs ) )
-                        break;
-#else
-                    ON_FAIL ( ColumnPairCopyStatic ( col, ctx, self -> first_id, self -> last_excl - self -> first_id ) )
-                        break;
-#endif
-                }
-
-#if OLD_STATIC_WRITE
-                RowSetRelease ( rs, ctx );
-#else
-                break;
-#endif
-            }
-
-#if OLD_STATIC_WRITE
-            RowSetIteratorRelease ( rsi, ctx );
-        }
-#endif
-
-        /* commit columns */
-        if ( ! FAILED () )
-        {
-            STATUS ( 3, "committing static columns" );
-            VectorDoUntil ( & self -> static_cols, false, TablePairCommitColumnPair, ( void* ) ctx );
-        }
-
-        /* douse columns */
-        STATUS ( 3, "releasing static columns" );
-        VectorWhack ( & self -> static_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    }
-}
-
-static
-void TablePairCopyPresortColumns ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* copy remaining columns */
-    uint32_t count = VectorLength ( & self -> presort_cols );
-    if ( count != 0 )
-    {
-        RowSetIterator *rsi;
-        TRY ( rsi = TablePairMakeSimpleRowSetIterator ( self, ctx ) )
-        {
-            STATUS ( 2, "copying '%s' presorted columns", self -> full_spec );
-
-            while ( ! FAILED () )
-            {
-                uint32_t i;
-
-                RowSet *rs;
-                ON_FAIL ( rs = RowSetIteratorNext ( rsi, ctx ) )
-                    break;
-                if ( rs == NULL )
-                    break;
-
-                for ( i = 0; i < count; ++ i )
-                {
-                    ColumnPair *col = VectorGet ( & self -> presort_cols, i );
-                    assert ( col != NULL );
-                    ON_FAIL ( ColumnPairCopy ( col, ctx, rs ) )
-                        break;
-                }
-
-                RowSetRelease ( rs, ctx );
-            }
-
-            RowSetIteratorRelease ( rsi, ctx );
-        }
-
-        /* commit columns */
-        if ( ! FAILED () )
-        {
-            STATUS ( 3, "committing presorted columns" );
-            VectorDoUntil ( & self -> presort_cols, false, TablePairCommitColumnPair, ( void* ) ctx );
-        }
-
-        /* douse columns */
-        STATUS ( 3, "releasing presorted columns" );
-        VectorWhack ( & self -> presort_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    }
-}
-
-static
-void TablePairCopyMappedColumns ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* copy mapped columns */
-    uint32_t count = VectorLength ( & self -> mapped_cols );
-    if ( count != 0 )
-    {
-        RowSetIterator *rsi;
-        const bool is_mapped = true;
-        const bool is_large = false;
-        TRY ( rsi = TablePairGetRowSetIterator ( self, ctx, is_mapped, is_large ) )
-        {
-            STATUS ( 2, "copying '%s' mapped columns", self -> full_spec );
-
-            while ( ! FAILED () )
-            {
-                uint32_t i;
-
-                RowSet *rs;
-                ON_FAIL ( rs = RowSetIteratorNext ( rsi, ctx ) )
-                    break;
-                if ( rs == NULL )
-                    break;
-
-                for ( i = 0; i < count; ++ i )
-                {
-                    ColumnPair *col = VectorGet ( & self -> mapped_cols, i );
-                    assert ( col != NULL );
-                    ON_FAIL ( ColumnPairCopy ( col, ctx, rs ) )
-                        break;
-                }
-
-                RowSetRelease ( rs, ctx );
-            }
-
-            RowSetIteratorRelease ( rsi, ctx );
-        }
-
-        /* commit columns */
-        if ( ! FAILED () )
-        {
-            STATUS ( 3, "committing mapped columns" );
-            VectorDoUntil ( & self -> mapped_cols, false, TablePairCommitColumnPair, ( void* ) ctx );
-        }
-
-        /* douse columns */
-        STATUS ( 3, "releasing mapped columns" );
-        VectorWhack ( & self -> mapped_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    }
-}
-
-static
-void TablePairCopyLargeColumns ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* copy large columns */
-    uint32_t count = VectorLength ( & self -> large_cols );
-    if ( count != 0 )
-    {
-        RowSetIterator *rsi;
-        const bool is_mapped = false;
-        const bool is_large = true;
-        TRY ( rsi = TablePairGetRowSetIterator ( self, ctx, is_mapped, is_large ) )
-        {
-            STATUS ( 2, "copying '%s' large columns", self -> full_spec );
-
-            while ( ! FAILED () )
-            {
-                uint32_t i;
-
-                RowSet *rs;
-                ON_FAIL ( rs = RowSetIteratorNext ( rsi, ctx ) )
-                    break;
-                if ( rs == NULL )
-                    break;
-
-                for ( i = 0; i < count; ++ i )
-                {
-                    ColumnPair *col = VectorGet ( & self -> large_cols, i );
-                    assert ( col != NULL );
-                    ON_FAIL ( ColumnPairCopy ( col, ctx, rs ) )
-                        break;
-                }
-
-                RowSetRelease ( rs, ctx );
-            }
-
-            RowSetIteratorRelease ( rsi, ctx );
-        }
-
-        /* commit columns */
-        if ( ! FAILED () )
-        {
-            STATUS ( 3, "committing large columns" );
-            VectorDoUntil ( & self -> large_cols, false, TablePairCommitColumnPair, ( void* ) ctx );
-        }
-
-        /* douse columns */
-        STATUS ( 3, "releasing large columns" );
-        VectorWhack ( & self -> large_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    }
-}
-
-static
-void TablePairCopyLargeMappedColumns ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* copy large mapped columns */
-    uint32_t count = VectorLength ( & self -> large_mapped_cols );
-    if ( count != 0 )
-    {
-        RowSetIterator *rsi;
-        const bool is_mapped = true;
-        const bool is_large = true;
-        TRY ( rsi = TablePairGetRowSetIterator ( self, ctx, is_mapped, is_large ) )
-        {
-            STATUS ( 2, "copying '%s' large mapped columns", self -> full_spec );
-
-            while ( ! FAILED () )
-            {
-                uint32_t i;
-
-                RowSet *rs;
-                ON_FAIL ( rs = RowSetIteratorNext ( rsi, ctx ) )
-                    break;
-                if ( rs == NULL )
-                    break;
-
-                for ( i = 0; i < count; ++ i )
-                {
-                    ColumnPair *col = VectorGet ( & self -> large_mapped_cols, i );
-                    assert ( col != NULL );
-                    ON_FAIL ( ColumnPairCopy ( col, ctx, rs ) )
-                        break;
-                }
-
-                RowSetRelease ( rs, ctx );
-            }
-
-            RowSetIteratorRelease ( rsi, ctx );
-        }
-
-        /* commit columns */
-        if ( ! FAILED () )
-        {
-            STATUS ( 3, "committing large mapped columns" );
-            VectorDoUntil ( & self -> large_mapped_cols, false, TablePairCommitColumnPair, ( void* ) ctx );
-        }
-
-        /* douse columns */
-        STATUS ( 3, "releasing large mapped columns" );
-        VectorWhack ( & self -> large_mapped_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    }
-}
-
-static
-void TablePairCopyNormalColumns ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    /* copy remaining columns */
-    uint32_t count = VectorLength ( & self -> normal_cols );
-    if ( count != 0 )
-    {
-        RowSetIterator *rsi;
-        const bool is_mapped = false;
-        const bool is_large = false;
-        TRY ( rsi = TablePairGetRowSetIterator ( self, ctx, is_mapped, is_large ) )
-        {
-            STATUS ( 2, "copying '%s' columns", self -> full_spec );
-
-            while ( ! FAILED () )
-            {
-                uint32_t i;
-
-                RowSet *rs;
-                ON_FAIL ( rs = RowSetIteratorNext ( rsi, ctx ) )
-                    break;
-                if ( rs == NULL )
-                    break;
-
-                for ( i = 0; i < count; ++ i )
-                {
-                    ColumnPair *col = VectorGet ( & self -> normal_cols, i );
-                    assert ( col != NULL );
-                    ON_FAIL ( ColumnPairCopy ( col, ctx, rs ) )
-                        break;
-                }
-
-                RowSetRelease ( rs, ctx );
-            }
-
-            RowSetIteratorRelease ( rsi, ctx );
-        }
-
-        /* commit columns */
-        if ( ! FAILED () )
-        {
-            STATUS ( 3, "committing columns" );
-            VectorDoUntil ( & self -> normal_cols, false, TablePairCommitColumnPair, ( void* ) ctx );
-        }
-
-        /* douse columns */
-        STATUS ( 3, "releasing columns" );
-        VectorWhack ( & self -> normal_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    }
-}
-
-void TablePairCopy ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    size_t in_use, quota;
-
-    /* copy columns */
-    
-
-    ON_FAIL ( TablePairExplode ( self, ctx ) )
-        return;
-
-    STATUS ( 2, "copying table '%s'", self -> full_spec );
-
-    in_use = MemInUse ( ctx, & quota );
-    if ( ( quota + 1 ) != 0 )
-        STATUS ( 4, "MEMORY: %,zu bytes used out of %,zu total ( %u%% )", in_use, quota, ( uint32_t ) ( in_use * 100 ) / quota );
-    else
-        STATUS ( 4, "MEMORY: %,zu bytes used", in_use );
-
-    TRY ( TablePairPreCopy ( self, ctx ) )
-    {
-        TRY ( TablePairCopyStaticColumns ( self, ctx ) )
-        {
-            TRY ( TablePairCopyPresortColumns ( self, ctx ) )
-            {
-                TRY ( TablePairCopyMappedColumns ( self, ctx ) )
-                {
-                    TRY ( TablePairCopyLargeColumns ( self, ctx ) )
-                    {
-                        TRY ( TablePairCopyLargeMappedColumns ( self, ctx ) )
-                        {
-                            TablePairCopyNormalColumns ( self, ctx );
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /* cleanup */
-    if ( ! FAILED () )
-        TablePairPostCopy ( self, ctx );
-
-    in_use = MemInUse ( ctx, & quota );
-    if ( ( quota + 1 ) != 0 )
-        STATUS ( 4, "MEMORY: %,zu bytes used out of %,zu total ( %u%% )", in_use, quota, ( uint32_t ) ( in_use * 100 ) / quota );
-    else
-        STATUS ( 4, "MEMORY: %,zu bytes used", in_use );
-
-    STATUS ( 2, "finished with table '%s'", self -> full_spec );
-}
-
-
-/* Explode
- *  probably a bad name, but it is intended to mean
- *  register all enclosed columns
- *  and create a proper pair of KMetadata
- */
-static
-MetaPair *TablePairExplodeMetaPair ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    MetaPair *meta = NULL;
-    const KMetadata *smeta;
-
-    rc = VTableOpenMetadataRead ( self -> stbl, & smeta );
-    if ( rc != 0 )
-        ERROR ( rc, "VTableOpenMetadataRead failed on 'src.%s'", self -> full_spec );
-    else
-    {
-        KMetadata *dmeta;
-        rc = VTableOpenMetadataUpdate ( self -> dtbl, & dmeta );
-        if ( rc != 0 )
-            ERROR ( rc, "VTableOpenMetadataUpdate failed on 'dst.%s'", self -> full_spec );
-        else
-        {
-            meta = MetaPairMake ( ctx, smeta, dmeta, self -> full_spec );
-
-            KMetadataRelease ( dmeta );
-        }
-        
-        KMetadataRelease ( smeta );
-    }
-
-    return meta;
-}
-
-static
-ColumnPair *TablePairMatchColumnPair ( TablePair *self, const ctx_t *ctx, const char *name, bool required )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    KNamelist *types;
-    ColumnPair *col = NULL;
-
-    rc = VTableListWritableDatatypes ( self -> dtbl, name, & types );
-    if ( rc != 0 )
-        ERROR ( rc, "VTableListWritableDatatypes failed listing 'dst.%s.%s' datatypes", self -> full_spec, name );
-    else
-    {
-        uint32_t count;
-        rc = KNamelistCount ( types, & count );
-        if ( rc != 0 )
-            ERROR ( rc, "KNamelistCount failed listing 'dst.%s.%s' datatypes", self -> full_spec, name );
-        else
-        {
-            const VCursor *scurs;
-            rc = VTableCreateCursorRead ( self -> stbl, & scurs );
-            if ( rc != 0 )
-                ERROR ( rc, "VTableCreateCursorRead failed on 'src.%s'", self -> full_spec, name );
-            else
-            {
-                rc = VCursorPermitPostOpenAdd ( scurs );
-                if ( rc != 0 )
-                    ERROR ( rc, "VCursorPermitPostOpenAdd failed on 'src.%s'", self -> full_spec, name );
-                else
-                {
-                    rc = VCursorOpen ( scurs );
-                    if ( rc != 0 )
-                        ERROR ( rc, "VCursorOpen failed with no contents on 'src.%s'", self -> full_spec, name );
-                    else
-                    {
-                        uint32_t i;
-                        for ( i = 0; i < count; ++ i )
-                        {
-                            uint32_t idx;
-                            char colspec [ 256 ];
-
-                            const char *td;
-                            rc = KNamelistGet ( types, i, & td );
-                            if ( rc != 0 )
-                            {
-                                ERROR ( rc, "KNamelistGet ( %u ) failed listing 'dst.%s.%s' datatypes", i, self -> full_spec, name );
-                                break;
-                            }
-
-                            rc = string_printf ( colspec, sizeof colspec, NULL, "(%s)%s", td, name );
-                            if ( rc != 0 )
-                            {
-                                ABORT ( rc, "failed creating colspec for 'dst.%s.%s'", self -> full_spec, name );
-                                break;
-                            }
-
-                            rc = VCursorAddColumn ( scurs, & idx, colspec );
-                            if ( rc == 0 )
-                            {
-                                ColumnReader *reader;
-                                TRY ( reader = TablePairMakeColumnReader ( self, ctx, scurs, colspec, true ) )
-                                {
-                                    ColumnWriter *writer;
-                                    TRY ( writer = TablePairMakeColumnWriter ( self, ctx, NULL, colspec ) )
-                                    {
-                                        uint32_t j;
-                                        bool large = false;
-                                        bool is_static = VTableHasStaticColumn ( self -> stbl, name );
-                                        if ( is_static )
-                                        {
-                                            if ( self -> nonstatic_col_names != NULL )
-                                            {
-                                                for ( j = 0; self -> nonstatic_col_names [ j ] != NULL; ++ j )
-                                                {
-                                                    if ( strcmp ( name, self -> nonstatic_col_names [ j ] ) == 0 )
-                                                    {
-                                                        is_static = false;
-                                                        break;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                        else if ( self -> large_col_names != NULL )
-                                        {
-                                            for ( j = 0; self -> large_col_names [ j ] != NULL; ++ j )
-                                            {
-                                                if ( strcmp ( name, self -> large_col_names [ j ] ) == 0 )
-                                                {
-                                                    large = true;
-                                                    break;
-                                                }
-                                            }
-                                        }
-
-                                        /* at this point, if the column is static, then avoid
-                                           any rigorous treatment and create an otherwise normal
-                                           column pair. may want to special case it for reporting */
-                                        col = is_static
-                                            ? TablePairMakeStaticColumnPair ( self, ctx, reader, writer, colspec )
-                                            : ( * self -> vt -> make_column_pair ) ( ( TBLPAIR_IMPL* ) self, ctx, reader, writer, colspec, large );
-
-                                        ColumnWriterRelease ( writer, ctx );
-                                    }
-
-                                    ColumnReaderRelease ( reader, ctx );
-                                }
-                                break;
-                            }
-                        }
-
-                        if ( col == NULL && ! FAILED () )
-                            ANNOTATE ( "column '%s' cannot be written", name );
-                    }
-                }
-
-
-                VCursorRelease ( scurs );
-            }
-        }
-
-        KNamelistRelease ( types );
-    }
-
-    return col;
-}
-
-static
-void TablePairDefaultExplode ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    KNamelist *pnames;
-
-    /* look at the physical columns in source */
-    rc = VTableListPhysColumns ( self -> stbl, & pnames );
-    if ( rc != 0 )
-        ERROR ( rc, "VTableListWritableColumns failed listing 'src.%s' physical columns", self -> full_spec );
-    else
-    {
-        KNamelist *dnames;
-
-        /* this gives us the columns that could potentially take input */
-        rc = VTableListSeededWritableColumns ( self -> dtbl, & dnames, pnames );
-        if ( rc != 0 )
-            ERROR ( rc, "VTableListWritableColumns failed listing 'dst.%s' columns", self -> full_spec );
-        else
-        {
-            uint32_t count;
-            rc = KNamelistCount ( dnames, & count );
-            if ( rc != 0 )
-                ERROR ( rc, "KNamelistCount failed listing 'dst.%s' columns", self -> full_spec );
-            else if ( count > 0 )
-            {
-                uint32_t i;
-                for ( i = 0; ! FAILED () && i < count; ++ i )
-                {
-                    ColumnPair *col;
-
-                    const char *name;
-                    rc = KNamelistGet ( dnames, i, & name );
-                    if ( rc != 0 )
-                    {
-                        ERROR ( rc, "KNamelistGet ( %u ) failed listing 'dst.%s' columns", i, self -> full_spec );
-                        break;
-                    }
-
-                    /* filter out the column names that are specifically excluded */
-                    if ( self -> exclude_col_names != NULL )
-                    {
-                        uint32_t j;
-                        for ( j = 0; self -> exclude_col_names [ j ] != NULL; ++ j )
-                        {
-                            if ( strcmp ( name, self -> exclude_col_names [ j ] ) == 0 )
-                            {
-                                name = NULL;
-                                break;
-                            }
-                        }
-                        if ( name == NULL )
-                            continue;
-                    }
-
-                    TRY ( col = TablePairMatchColumnPair ( self, ctx, name, true ) )
-                    {
-                        if ( col != NULL )
-                        {
-                            ON_FAIL ( TablePairAddColumnPair ( self, ctx, col ) )
-                            {
-                                ColumnPairRelease ( col, ctx );
-                            }
-                        }
-                    }
-                }
-            }
-            
-            KNamelistRelease ( dnames );
-        }
-
-        KNamelistRelease ( pnames );
-    }
-}
-
-void TablePairExplode ( TablePair *self, const ctx_t *ctx )
-{
-    if ( ! self -> exploded )
-    {
-        FUNC_ENTRY ( ctx );
-
-        STATUS ( 2, "exploding table '%s'", self -> full_spec );
-
-        /* first, ask subclass to perform explicit explode */
-        TRY ( ( * self -> vt -> explode ) ( self, ctx ) )
-        {
-            if ( self -> meta == NULL )
-            {
-                TRY ( self -> meta = TablePairExplodeMetaPair ( self, ctx ) )
-                {
-                    MetaPairCopy ( self -> meta, ctx, self -> full_spec, self -> exclude_meta );
-                    STATUS ( 3, "releasing metadata" );
-                    MetaPairRelease ( self -> meta, ctx );
-                    self -> meta = NULL;
-                }
-            }
-
-            if ( ! FAILED () )
-            {
-                /* next, perform default self-explode for all columns not excluded */
-                TRY ( TablePairDefaultExplode ( self, ctx ) )
-                {
-                    /* now create metadata pair */
-                    if ( self -> meta == NULL )
-                        self -> meta = TablePairExplodeMetaPair ( self, ctx );
-                    if ( ! FAILED () )
-                        self -> exploded = true;
-                }
-            }
-        }
-    }
-}
-
-
-/* AddColumnPair
- *  called from implementations
- */
-void TablePairAddColumnPair ( TablePair *self, const ctx_t *ctx, ColumnPair *col )
-{
-    if ( col != NULL )
-    {
-        FUNC_ENTRY ( ctx );
-
-        rc_t rc;
-        Vector *v = & self -> normal_cols;
-
-        const char *col_type = "";
-        const char *col_size = "";
-
-        if ( col -> large )
-        {
-            col_size = "large ";
-            v = & self -> large_cols;
-        }
-
-        if ( col -> is_static )
-        {
-            col_type = "static ";
-            v = & self -> static_cols;
-        }
-        else if ( col -> presorted )
-        {
-            col_type = "presorted ";
-            v = & self -> presort_cols;
-        }
-        else if ( col -> is_mapped )
-        {
-            col_type = "mapped ";
-            v = col -> large ? & self -> large_mapped_cols : & self -> mapped_cols;
-        }
-
-        STATUS ( 4, "adding %s%scolumn pair '%s'", col_size, col_type, col -> full_spec );
-        rc = VectorAppend ( v, NULL, ( const void* ) col );
-        if ( rc != 0 )
-            SYSTEM_ERROR ( rc, "failed to add column pair '%s'", col -> full_spec );
-        else
-        {
-            int64_t first;
-            uint64_t count;
-
-            TRY ( count = ColumnReaderIdRange ( col -> reader, ctx, & first ) )
-            {
-                int64_t last_excl = first + count;
-                if ( first < self -> first_id )
-                    self -> first_id = first;
-                /* Static columns may have incorrect range in legacy data */
-                if ( last_excl > self -> last_excl && !col->is_static)
-                    self -> last_excl = last_excl;
-            }
-        }
-    }
-}
-
-
-/* Init
- */
-void TablePairInit ( TablePair *self, const ctx_t *ctx, const TablePair_vt *vt,
-    const VTable *src, VTable *dst, const char *name, const char *opt_full_spec, bool reorder )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    memset ( self, 0, sizeof * self );
-    self -> vt = vt;
-
-    VectorInit ( & self -> static_cols, 0, 32 );
-    VectorInit ( & self -> presort_cols, 0, 4 );
-    VectorInit ( & self -> large_cols, 0, 32 );
-    VectorInit ( & self -> mapped_cols, 0, 32 );
-    VectorInit ( & self -> large_mapped_cols, 0, 32 );
-    VectorInit ( & self -> normal_cols, 0, 32 );
-
-    if ( opt_full_spec == NULL )
-        opt_full_spec = "";
-
-    rc = VTableAddRef ( self -> stbl = src );
-    if ( rc != 0 )
-        ERROR ( rc, "failed to duplicate tbl 'src.%s%s%s'", opt_full_spec, opt_full_spec [ 0 ] ? "." : "", name );
-    else
-    {
-        rc = VTableAddRef ( self -> dtbl = dst );
-        if ( rc != 0 )
-            ERROR ( rc, "failed to duplicate tbl 'dst.%s%s%s'", opt_full_spec, opt_full_spec [ 0 ] ? "." : "", name );
-        else
-        {
-            char *full_spec;
-
-            self -> full_spec_size = string_size ( opt_full_spec ) + string_size ( name );
-            if ( opt_full_spec [ 0 ] != 0  )
-                ++ self -> full_spec_size;
-
-            TRY ( full_spec = MemAlloc ( ctx, self -> full_spec_size + 1, false ) )
-            {
-                if ( opt_full_spec [ 0 ] != 0 )
-                    rc = string_printf ( full_spec, self -> full_spec_size + 1, NULL, "%s.%s", opt_full_spec, name );
-                else
-                    strcpy ( full_spec, name );
-                if ( rc != 0 )
-                    ABORT ( rc, "miscalculated string size" );
-                else
-                {
-                    const Tool *tp = ctx -> caps -> tool;
-
-                    self -> full_spec = full_spec;
-                    self -> name = full_spec;
-                    if ( opt_full_spec [ 0 ] != 0 )
-                        self -> name += string_size ( opt_full_spec ) + 1;
-
-                    /* start with an invalid range */
-                    self -> first_id = ( int64_t ) ( ~ ( uint64_t ) 0 >> 1 );
-                    self -> last_excl = - self -> first_id;
-
-                    /* row-set id ranges */
-                    self -> max_idx_ids = tp -> max_idx_ids;
-                    self -> min_idx_ids = tp -> min_idx_ids;
-
-                    /* record reordering */
-                    self -> reorder = reorder;
-
-                    KRefcountInit ( & self -> refcount, 1, "TablePair", "init", name );
-                    return;
-                }
-            }
-
-            VTableRelease ( self -> dtbl );
-            self -> dtbl = NULL;
-        }
-
-        VTableRelease ( self -> stbl );
-        self -> stbl = NULL;
-    }
-}
-
-/* Destroy
- *  destroys superclass items
- */
-void TablePairDestroy ( TablePair *self, const ctx_t *ctx )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-
-    VectorWhack ( & self -> static_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    VectorWhack ( & self -> presort_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    VectorWhack ( & self -> large_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    VectorWhack ( & self -> mapped_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    VectorWhack ( & self -> large_mapped_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-    VectorWhack ( & self -> normal_cols, TablePairReleaseColumnPair, ( void* ) ctx );
-
-    MetaPairRelease ( self -> meta, ctx );
-
-    rc = VTableReindex ( self -> dtbl );
-    if ( rc != 0 )
-        WARN ( "VTableReindex failed on 'dst.%s'", self -> full_spec );
-    rc = VTableRelease ( self -> dtbl );
-    if ( rc != 0 )
-        WARN ( "VTableRelease failed on 'dst.%s'", self -> full_spec );
-    VTableRelease ( self -> stbl );
-
-    MemFree ( ctx, ( void* ) self -> full_spec, self -> full_spec_size + 1 );
-
-    memset ( self, 0, sizeof * self );
-}
diff --git a/tools/sra-sort/tbl-pair.h b/tools/sra-sort/tbl-pair.h
deleted file mode 100644
index 4ee383e..0000000
--- a/tools/sra-sort/tbl-pair.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_tbl_pair_
-#define _h_sra_sort_tbl_pair_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-#ifndef _h_klib_vector_
-#include <klib/vector.h>
-#endif
-
-#ifndef _h_klib_refcount_
-#include <klib/refcount.h>
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VTable;
-struct DbPair;
-struct ColumnReader;
-struct ColumnWriter;
-struct ColumnPair;
-struct MetaPair;
-struct RowSetIterator;
-
-
-/*--------------------------------------------------------------------------
- * TablePair
- *  interface to pairing of source and destination tables
- */
-typedef struct TablePair_vt TablePair_vt;
-
-typedef struct TablePair TablePair;
-struct TablePair
-{
-    /* table id range */
-    int64_t first_id, last_excl;
-
-    /* polymorphic */
-    const TablePair_vt *vt;
-
-    /* the pair of VTables */
-    struct VTable const *stbl;
-    struct VTable *dtbl;
-
-    /* the pair of KMetadata */
-    struct MetaPair *meta;
-
-    /* the ColumnPairs */
-    Vector static_cols;
-    Vector presort_cols;
-    Vector large_cols;
-    Vector mapped_cols;
-    Vector large_mapped_cols;
-    Vector normal_cols;
-
-    /* filters */
-    const char **exclude_meta;
-    const char **exclude_col_names;
-    const char **mapped_col_names;
-    const char **nonstatic_col_names;
-    const char **large_col_names;
-
-    /* row-set id ranges */
-    size_t max_idx_ids;
-    size_t min_idx_ids;
-
-    /* simple table name */
-    const char *name;
-
-    /* full table spec */
-    size_t full_spec_size;
-    const char *full_spec;
-
-    /* reference counting */
-    KRefcount refcount;
-
-    /* true if table will be reordered */
-    bool reorder;
-
-    /* true if already exploded */
-    bool exploded;
-
-    uint8_t align [ 2 ];
-};
-
-#ifndef TBLPAIR_IMPL
-#define TBLPAIR_IMPL TablePair
-#endif
-
-struct TablePair_vt
-{
-    void ( * whack ) ( TBLPAIR_IMPL *self, const ctx_t *ctx );
-    void ( * pre_explode ) ( TBLPAIR_IMPL *self, const ctx_t *ctx );
-    void ( * explode ) ( TBLPAIR_IMPL *self, const ctx_t *ctx );
-    struct ColumnPair* ( *make_column_pair ) ( TBLPAIR_IMPL *self, const ctx_t *ctx,
-        struct ColumnReader *reader, struct ColumnWriter *writer, const char *colspec, bool large );
-    void ( * pre_copy ) ( TBLPAIR_IMPL *self, const ctx_t *ctx );
-    void ( * post_copy ) ( TBLPAIR_IMPL *self, const ctx_t *ctx );
-    struct RowSetIterator* ( *get_rowset_iter ) ( TBLPAIR_IMPL *self,
-        const ctx_t *ctx, bool mapped, bool large );
-};
-
-
-/* Make
- *  make a standard table pair from existing VTable objects
- */
-TablePair *TablePairMake ( const ctx_t *ctx,
-    struct VTable const *src, struct VTable *dst,
-    const char *name, const char *opt_full_spec, bool reorder );
-
-TablePair *DbPairMakeStdTblPair ( struct DbPair *self, const ctx_t *ctx,
-    struct VTable const *src, struct VTable *dst, const char *name, bool reorder );
-
-
-/* Release
- *  called by table at end of copy
- */
-void TablePairRelease ( TablePair *self, const ctx_t *ctx );
-
-/* Duplicate
- */
-TablePair *TablePairDuplicate ( TablePair *self, const ctx_t *ctx );
-
-
-/* Copy
- *  copy from source to destination table
- */
-void TablePairCopy ( TablePair *self, const ctx_t *ctx );
-
-
-/* PreExplode
- *  perform explosion before overall coopy
- */
-#define TablePairPreExplode( self, ctx ) \
-    POLY_DISPATCH_VOID ( pre_explode, self, TBLPAIR_IMPL, ctx )
-
-
-/* Explode
- *  probably a bad name, but it is intended to mean
- *  register all enclosed columns
- *  and create a proper pair of KMetadata
- */
-void TablePairExplode ( TablePair *self, const ctx_t *ctx );
-
-
-/* AddColumnPair
- *  called from implementations
- */
-void TablePairAddColumnPair ( TablePair *self, const ctx_t *ctx, struct ColumnPair *col );
-
-
-/* PreCopy
- * PostCopy
- *  give table a chance to prepare and cleanup
- */
-#define TablePairPreCopy( self, ctx ) \
-    POLY_DISPATCH_VOID ( pre_copy, self, TBLPAIR_IMPL, ctx )
-#define TablePairPostCopy( self, ctx ) \
-    POLY_DISPATCH_VOID ( post_copy, self, TBLPAIR_IMPL, ctx )
-
-
-/* GetRowSetIterator
- *  returns an iterator for copying
- */
-#define TablePairGetRowSetIterator( self, ctx, mapped, large ) \
-    POLY_DISPATCH_PTR ( get_rowset_iter, self, TBLPAIR_IMPL, ctx, mapped, large )
-
-
-/* Init
- */
-void TablePairInit ( TablePair *self, const ctx_t *ctx, const TablePair_vt *vt,
-    struct VTable const *src, struct VTable *dst,
-    const char *name, const char *opt_full_spec, bool reorder );
-
-/* Destroy
- */
-void TablePairDestroy ( TablePair *self, const ctx_t *ctx );
-
-
-#endif /* _h_sra_sort_tbl_pair_ */
diff --git a/tools/sra-sort/xcheck-ref-align.c b/tools/sra-sort/xcheck-ref-align.c
deleted file mode 100644
index 2c7a1cf..0000000
--- a/tools/sra-sort/xcheck-ref-align.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "caps.h"
-#include "ctx.h"
-#include "mem.h"
-#include "except.h"
-#include "status.h"
-
-#include <kapp/main.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <kproc/thread.h>
-#include <klib/rc.h>
-
-#include <string.h>
-
-#if ! _DEBUGGING
-#define USE_BGTHREAD 1
-#endif
-
-FILE_ENTRY ( xcheck-ref-align );
-
-
-/*--------------------------------------------------------------------------
- * TestReferenceCell
- *  properly sorted tables will allow both columns to be walked.
- *  each row of the REFERENCE table column MUST contain zero or more
- *  sequential integers, and the first integer MUST continue the sequence
- *  established by previous rows. therefore, the row will be fully specified
- *  by a start and stop id pair.
- */
-static
-int64_t TestReferenceCell ( const ctx_t *ctx,
-    const VCursor *ref_curs, uint32_t align_ids_idx,
-    const char *align_name, int64_t ref_row_id, int64_t excl_ref_last_idx )
-{
-    FUNC_ENTRY ( ctx );
-
-    const int64_t *cell;
-    uint32_t elem_bits, boff, row_len;
-
-    rc_t rc = VCursorCellDataDirect ( ref_curs, ref_row_id, align_ids_idx,
-        & elem_bits, ( const void** ) & cell, & boff, & row_len );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorCellDataDirect - failed to read row %ld from REFERENCE cursor", ref_row_id );
-    else if ( elem_bits != sizeof * cell * 8 )
-    {
-        rc = RC ( rcExe, rcIndex, rcValidating, rcSize, rcIncorrect );
-        ERROR ( rc, "VCursorCellDataDirect - elem_bits of %u reading row %ld from REFERENCE cursor", elem_bits, ref_row_id );
-    }
-    else if ( boff != 0 )
-    {
-        rc = RC ( rcExe, rcIndex, rcValidating, rcOffset, rcIncorrect );
-        ERROR ( rc, "VCursorCellDataDirect - bit offset of %u reading row %ld from REFERENCE cursor", boff, ref_row_id );
-    }
-    else
-    {
-        uint32_t i;
-        for ( i = 0; i < row_len; ++ i )
-        {
-            if ( cell [ i ] != excl_ref_last_idx + i )
-            {
-                rc = RC ( rcExe, rcIndex, rcValidating, rcId, rcIncorrect );
-                ERROR ( rc, "REFERENCE.%s_IDS.%ld: expected id %ld but found %ld",
-                        align_name, ref_row_id, excl_ref_last_idx + i, cell [ i ] );
-                break;
-            }
-        }
-
-        excl_ref_last_idx += row_len;
-    }
-
-    return excl_ref_last_idx;
-}
-
-static
-void TestAlignCell ( const ctx_t *ctx,
-    const VCursor *align_curs, uint32_t ref_id_idx,
-    const char *align_name, int64_t align_row_id, int64_t ref_row_id )
-{
-    FUNC_ENTRY ( ctx );
-
-    const int64_t *cell;
-    uint32_t elem_bits, boff, row_len;
-
-
-    rc_t rc = VCursorCellDataDirect ( align_curs, align_row_id, ref_id_idx,
-        & elem_bits, ( const void** ) & cell, & boff, & row_len );
-    if ( rc != 0 )
-        ERROR ( rc, "VCursorCellDataDirect - failed to read row %ld from %s cursor", align_row_id, align_name );
-    else if ( elem_bits != sizeof * cell * 8 )
-    {
-        rc = RC ( rcExe, rcIndex, rcValidating, rcSize, rcIncorrect );
-        ERROR ( rc, "VCursorCellDataDirect - elem_bits of %u reading row %ld from %s cursor", elem_bits, align_row_id, align_name );
-    }
-    else if ( boff != 0 )
-    {
-        rc = RC ( rcExe, rcIndex, rcValidating, rcOffset, rcIncorrect );
-        ERROR ( rc, "VCursorCellDataDirect - bit offset of %u reading row %ld from %s cursor", boff, align_row_id, align_name );
-    }
-    else if ( row_len != 1 )
-    {
-        rc = RC ( rcExe, rcIndex, rcValidating, rcRange, rcIncorrect );
-        ERROR ( rc, "VCursorCellDataDirect - row_len of %u reading row %ld from %s cursor", row_len, align_row_id, align_name );
-    }
-    else if ( * cell != ref_row_id )
-    {
-        rc = RC ( rcExe, rcIndex, rcValidating, rcId, rcIncorrect );
-        ERROR ( rc, "%s.REF_ID.%ld: expected id %ld but found %ld",
-                align_name, align_row_id, ref_row_id, cell [ 0 ] );
-    }
-}
-
-/*--------------------------------------------------------------------------
- * CrossCheckRefAlignCols
- *  performs the cross-check
- */
-static
-void CrossCheckRefAlignCols ( const ctx_t *ctx,
-    const VCursor *ref_curs, uint32_t align_ids_idx,
-    const VCursor *align_curs, uint32_t ref_id_idx, const char *align_name )
-{
-    FUNC_ENTRY ( ctx );
-
-    int64_t ref_row_id, excl_ref_last_id;
-    rc_t rc = VCursorIdRange ( ref_curs, 0, & ref_row_id, ( uint64_t* ) & excl_ref_last_id );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VCursorIdRange - failed to establish row range on REFERENCE cursor" );
-    else
-    {
-        int64_t align_row_id, excl_align_last_id;
-
-        excl_ref_last_id += ref_row_id;
-
-        rc = VCursorIdRange ( align_curs, 0, & align_row_id, ( uint64_t* ) & excl_align_last_id );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VCursorIdRange - failed to establish row range on %s cursor", align_name );
-        else
-        {
-            int64_t excl_last_align_idx;
-
-            excl_align_last_id += align_row_id;
-
-            for ( excl_last_align_idx = 1; ref_row_id < excl_ref_last_id; ++ ref_row_id )
-            {
-                int64_t first_align_idx = excl_last_align_idx;
-
-                /* rule for bailing out */
-                rc = Quitting ();
-                if ( rc != 0 || FAILED () )
-                    break;
-
-                /* the REFERENCE id cell should be filled purely with sequential ids */
-                TRY ( excl_last_align_idx = TestReferenceCell ( ctx, ref_curs, align_ids_idx,
-                          align_name, ref_row_id, excl_last_align_idx ) )
-                {
-                    /* the ids must be within the range of the alignment table */
-                    if ( excl_last_align_idx > excl_align_last_id )
-                    {
-                        rc = RC ( rcExe, rcIndex, rcValidating, rcId, rcExcessive );
-                        ERROR ( rc, "REFERENCE.%s_IDS.%ld: references non-existant rows ( %ld .. %ld : max %ld )",
-                                align_name, ref_row_id, first_align_idx, excl_last_align_idx, excl_align_last_id );
-                        break;
-                    }
-
-                    /* this is more of a permanent assert */
-                    if ( first_align_idx != align_row_id )
-                    {
-                        rc = RC ( rcExe, rcIndex, rcValidating, rcId, rcIncorrect );
-                        ERROR ( rc, "REFERENCE.%s_IDS.%ld: expected id %ld but found %ld",
-                                align_name, ref_row_id, first_align_idx, align_row_id );
-                        break;
-                    }
-
-                    /* each of the rows in alignment table must point back
-                       to the same row in the REFERENCE table */
-                    for ( ; align_row_id < excl_last_align_idx; ++ align_row_id )
-                    {
-                        ON_FAIL ( TestAlignCell ( ctx, align_curs, ref_id_idx,
-                                      align_name, align_row_id, ref_row_id ) )
-                            break;
-                    }
-                }
-            }
-
-            /* at this point, we must have seen every record */
-            if ( ! FAILED () )
-            {
-                if ( ref_row_id != excl_ref_last_id )
-                {
-                    rc = RC ( rcExe, rcIndex, rcValidating, rcRange, rcIncomplete );
-                    ERROR ( rc, "REFERENCE.%s_IDS: scan stopped on row %ld of %ld",
-                            align_name, ref_row_id, excl_ref_last_id );
-                }
-                if ( align_row_id != excl_align_last_id )
-                {
-                    rc = RC ( rcExe, rcIndex, rcValidating, rcRange, rcIncomplete );
-                    ERROR ( rc, "%s.REF_ID: scan stopped on row %ld of %ld",
-                            align_name, align_row_id, excl_align_last_id );
-                }
-            }
-        }
-    }
-}
-
-
-
-/*--------------------------------------------------------------------------
- * CrossCheckRefAlignCurs
- *  adds columns and opens cursors
- */
-static
-void CrossCheckRefAlignCurs ( const ctx_t *ctx,
-    const VCursor *ref_curs, const VCursor *align_curs, const char *align_name )
-{
-    FUNC_ENTRY ( ctx );
-
-    uint32_t align_ids_idx;
-    rc_t rc = VCursorAddColumn ( ref_curs, & align_ids_idx, "%s_IDS", align_name );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VCursorAddColumn - failed to add column '%s_IDS' to REFERENCE cursor", align_name );
-    else
-    {
-        uint32_t ref_id_idx;
-        rc = VCursorAddColumn ( align_curs, & ref_id_idx, "REF_ID" );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VCursorAddColumn - failed to add column 'REF_ID' to %s cursor", align_name );
-        else
-        {
-            rc = VCursorOpen ( ref_curs );
-            if ( rc != 0 )
-                INTERNAL_ERROR ( rc, "VCursorOpen - failed to open cursor on REFERENCE table" );
-            else
-            {
-                rc = VCursorOpen ( align_curs );
-                if ( rc != 0 )
-                    INTERNAL_ERROR ( rc, "VCursorOpen - failed to open cursor on %s table", align_name );
-                else
-                {
-                    rc = VCursorSetRowId ( ref_curs, 1 );
-                    if ( rc != 0 )
-                        INTERNAL_ERROR ( rc, "VCursorSetRowId - failed to set row-id on REFERENCE cursor" );
-                    else
-                    {
-                        rc = VCursorSetRowId ( align_curs, 1 );
-                        if ( rc != 0 )
-                            INTERNAL_ERROR ( rc, "VCursorSetRowId - failed to set row-id on %s cursor", align_name );
-                        else
-                        {
-                            CrossCheckRefAlignCols ( ctx, ref_curs, align_ids_idx, align_curs, ref_id_idx, align_name );
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
-
-
-/*--------------------------------------------------------------------------
- * CrossCheckRefAlignTbl
- *  checks REFERENCE.<name>_IDS for properly sorted form
- *  runs a cross-check of REFERENCE.<name>_IDS against <name>.REF_ID
- */
-static
-void CrossCheckRefAlignTblInt ( const ctx_t *ctx,
-    const VTable *ref_tbl, const VTable *align_tbl, const char *align_name )
-{
-    FUNC_ENTRY ( ctx );
-
-    rc_t rc;
-    const VCursor *ref_curs;
-
-    rc = VTableCreateCursorRead ( ref_tbl, & ref_curs );
-    if ( rc != 0 )
-        INTERNAL_ERROR ( rc, "VTableCreateCursorRead - failed to open cursor on REFERENCE table" );
-    else
-    {
-        const VCursor *align_curs;
-        rc = VTableCreateCursorRead ( align_tbl, & align_curs );
-        if ( rc != 0 )
-            INTERNAL_ERROR ( rc, "VTableCreateCursorRead - failed to open cursor on %s table", align_name );
-        else
-        {
-            CrossCheckRefAlignCurs ( ctx, ref_curs, align_curs, align_name );
-
-            VCursorRelease ( align_curs );
-        }
-
-        VCursorRelease ( ref_curs );
-    }
-}
-
-#if USE_BGTHREAD
-
-typedef struct CrossCheckRefAlignTblData CrossCheckRefAlignTblData;
-struct CrossCheckRefAlignTblData
-{
-    Caps caps;
-    const VTable *ref_tbl, *align_tbl;
-    char align_name [ 1 ];
-};
-
-static
-rc_t CC CrossCheckRefAlignTblRun ( const KThread *self, void *data )
-{
-    CrossCheckRefAlignTblData *pb = data;
-
-    DECLARE_CTX_INFO ();
-    ctx_t thread_ctx = { & pb -> caps, NULL, & ctx_info };
-    const ctx_t *ctx = & thread_ctx;
-
-    STATUS ( 2, "running consistency-check on background thread" );
-
-    CrossCheckRefAlignTblInt ( ctx, pb -> ref_tbl, pb -> align_tbl, pb -> align_name );
-
-    STATUS ( 2, "finished consistency-check on background thread" );
-
-    VTableRelease ( pb -> align_tbl );
-    VTableRelease ( pb -> ref_tbl );
-    CapsWhack ( & pb -> caps, ctx );
-
-    return ctx -> rc;
-}
-
-#endif
-
-void CrossCheckRefAlignTbl ( const ctx_t *ctx,
-    const VTable *ref_tbl, const VTable *align_tbl, const char *align_name )
-{
-    FUNC_ENTRY ( ctx );
-
-#if USE_BGTHREAD
-    size_t name_len;
-    CrossCheckRefAlignTblData *pb;
-#endif
-
-    STATUS ( 2, "consistency-check on join indices between REFERENCE and %s tables", align_name );
-
-#if USE_BGTHREAD
-    name_len = strlen ( align_name );
-    TRY ( pb = MemAlloc ( ctx, sizeof * pb + name_len, false ) )
-    {
-        TRY ( CapsInit ( & pb -> caps, ctx ) )
-        {
-            rc_t rc = VTableAddRef ( pb -> ref_tbl = ref_tbl );
-            if ( rc != 0 )
-                ERROR ( rc, "VTableAddRef failed on REFERENCE table" );
-            else
-            {
-                rc = VTableAddRef ( pb -> align_tbl = align_tbl );
-                if ( rc != 0 )
-                    ERROR ( rc, "VTableAddRef failed on %s table", align_name );
-                else
-                {
-                    KThread *t;
-
-                    strcpy ( pb -> align_name, align_name );
-
-                    rc = KThreadMake ( & t, CrossCheckRefAlignTblRun, pb );
-                    if ( rc == 0 )
-                    {
-                        return;
-                    }
-
-                    VTableRelease ( pb -> align_tbl );
-                }
-
-                VTableRelease ( pb -> ref_tbl );
-            }
-
-            CapsWhack ( & pb -> caps, ctx );
-        }
-
-        MemFree ( ctx, pb, sizeof * pb + name_len );
-    }
-#else
-    CrossCheckRefAlignTblInt ( ctx, ref_tbl, align_tbl, align_name );
-#endif
-}
diff --git a/tools/sra-sort/xcheck.h b/tools/sra-sort/xcheck.h
deleted file mode 100644
index adf44c5..0000000
--- a/tools/sra-sort/xcheck.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _h_sra_sort_xcheck_
-#define _h_sra_sort_xcheck_
-
-#ifndef _h_sra_sort_defs_
-#include "sort-defs.h"
-#endif
-
-
-/*--------------------------------------------------------------------------
- * forwards
- */
-struct VTable;
-
-
-/*--------------------------------------------------------------------------
- * CrossCheckRefAlignTbl
- *  checks REFERENCE.<name>_IDS for properly sorted form
- *  runs a cross-check of REFERENCE.<name>_IDS against <name>.REF_ID
- */
-void CrossCheckRefAlignTbl ( const ctx_t *ctx,
-    struct VTable const *ref_tbl, struct VTable const *align_tbl, const char *align_name );
-
-#endif
diff --git a/tools/sra-stat/Makefile b/tools/sra-stat/Makefile
index db91c9c..68e40c5 100644
--- a/tools/sra-stat/Makefile
+++ b/tools/sra-stat/Makefile
@@ -42,13 +42,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -59,22 +61,23 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
+# clean
 #
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+clean: stdclean
 
-.PHONY: $(TARGDIR)/vers-includes
+.PHONY: clean
 
 #-------------------------------------------------------------------------------
-# clean
+# tag
 #
-clean: stdclean
+tag: \
+	$(addsuffix _tag,$(ALL_TOOLS))
 
-.PHONY: clean
+.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
 
 #-------------------------------------------------------------------------------
-# sra-stat
-#  sra statistics
+# sra-dump
+#  vdb table copy tool
 #
 SRASTAT_SRC = \
 	sra-stat
@@ -86,18 +89,25 @@ SRASTAT_LIB = \
 	-lkapp \
 	-dalign-reader \
 	-lsradb \
-	$(READONLY_SCHEMA_LIBS) \
+	-ssrapath \
+	-ssraschema \
+	-daxf \
+	-dsraxf \
+	-dvxf \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
 	-dksrch \
-	-lkproc \
 	-lklib \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 $(BINDIR)/sra-stat: $(SRASTAT_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SRASTAT_LIB)
+
+sradump_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) sradump $(SRASTAT_OBJ)
+
diff --git a/tools/sra-stat/sra-stat.c b/tools/sra-stat/sra-stat.c
index 14322ce..026fb1b 100644
--- a/tools/sra-stat/sra-stat.c
+++ b/tools/sra-stat/sra-stat.c
@@ -28,15 +28,10 @@
 
 #include <kapp/main.h>
 
-#include <sra/wsradb.h>
+#include <sra/sradb.h>
 #include <sra/sradb-priv.h>
 #include <sra/types.h>
 
-#include <vdb/dependencies.h> /* VDBDependencies */
-#include <vdb/database.h> /* VDatabaseRelease */
-#include <vdb/table.h> /* VTableRelease */
-#include <vdb/cursor.h> /* VCursor */
-
 #include <kdb/database.h> /* KDatabase */
 #include <kdb/table.h>
 #include <kdb/meta.h> /* KMetadata */
@@ -44,28 +39,19 @@
 #include <kdb/kdb-priv.h>
 
 #include <kfs/directory.h>
-#include <kfs/file.h>
 
-#include <klib/sort.h> /* ksort */
-#include <klib/checksum.h>
 #include <klib/container.h>
 #include <klib/namelist.h>
-#include <klib/printf.h>
 #include <klib/log.h>
 #include <klib/out.h>
 #include <klib/debug.h> /* DBGMSG */
 #include <klib/rc.h>
 
-#include <os-native.h> /* strtok_r on Windows */
-
 #include <assert.h>
-#include <math.h> /* sqrt */
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
 
-#include <stdio.h> /* stderr */
-
 #define DISP_RC(rc, msg) (void)((rc == 0) ? 0 : LOGERR(klogInt, rc, msg))
 
 #define DISP_RC2(rc, name, msg) (void)((rc == 0) ? 0 : \
@@ -74,677 +60,23 @@
 
 #define DISP_RC_Read(rc, name, spot, msg) (void)((rc == 0) ? 0 : \
     PLOGERR(klogInt, (klogInt, rc, "column $(name), spot $(spot): $(msg)", \
-        "name=%s,spot=%lu,msg=%s", name, spot, msg)))
+        "name=%s,spot=%lu,msg=%s", name, msg)))
 
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
+#define DESTRUCT(type, obj) do { rc_t rc2 = type##Release(obj); \
     if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
 
 #define MAX_NREADS 2*1024
-
-/*********** XMLLogger_Encode : copied from kapp/log-xml.c (-lload) ***********/
-
-static
-rc_t CC XMLLogger_Encode(const char* src,
-    char* aDst, size_t dst_sz, size_t *num_writ)
-{
-    rc_t rc = 0;
-    size_t bytes;
-    const char* p;
-    char* dst = aDst;
-
-    assert(src != NULL && num_writ != NULL);
-
-    *num_writ = 0;
-    if( *src == '\0' ) {
-        *dst = *src;
-    } else {
-        do {
-            switch(*src) {
-                case '\'':
-                    bytes = 6;
-                    p = "'";
-                    break;
-                case '"':
-                    bytes = 6;
-                    p = """;
-                    break;
-                case '&':
-                    bytes = 5;
-                    p = "&";
-                    break;
-                case '<':
-                    bytes = 4;
-                    p = "<";
-                    break;
-                case '>':
-                    bytes = 4;
-                    p = ">";
-                    break;
-                default:
-                    bytes = 1;
-                    p = src;
-                    break;
-            }
-            if( (*num_writ + bytes) > dst_sz ) {
-                rc = RC(rcExe, rcLog, rcEncoding, rcBuffer, rcInsufficient);
-            } else {
-                memcpy(dst, p, bytes);
-                *num_writ = *num_writ + bytes;
-                dst += bytes;
-            }
-        } while(rc == 0 && *++src != '\0');
-        if (rc == 0 && *src == '\0' && ((*num_writ + bytes) <= dst_sz)) {
-            *dst = *src;
-        }
-    }
-    return rc;
-}
-
-/*********** XMLLogger_Encode : copied from kapp/log-xml.c (-lload) ***********/
-
-typedef struct BAM_HEADER_RG { /* @RG: Read group. */
-    char* ID; /* Read group identifier. */
-    char* LB; /* Library. */
-    char* SM; /* Sample. */
-} BAM_HEADER_RG;
-static
-rc_t BAM_HEADER_RG_copy(BAM_HEADER_RG* dest, const BAM_HEADER_RG* src)
-{
-    assert(dest && !dest->ID && !dest->LB && !dest->SM
-        && src  &&  src ->ID &&  src ->LB &&  src ->SM);
-    dest->ID = strdup(src->ID);
-    dest->LB = strdup(src->LB);
-    dest->SM = strdup(src->SM);
-    if (!dest->ID || !dest->LB || !dest->SM) {
-        return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-    }
-    return 0;
-}
-static void BAM_HEADER_RG_free(BAM_HEADER_RG* rg) {
-    assert(rg);
-    free(rg->ID);
-    free(rg->LB);
-    free(rg->SM);
-    rg->ID = rg->LB = rg->SM = NULL;
-}
-static void BAM_HEADER_RG_print_xml(const BAM_HEADER_RG* rg) {
-    rc_t rc = 0;
-    char library[1024] = "";
-    char sample[1024] = "";
-    char* l = library;
-    char* s = sample;
-    size_t num_writ = 0;
-    assert(rg);
-    if (rg->LB) {
-        rc = XMLLogger_Encode(rg->LB, library, sizeof library, &num_writ);
-        if (rc) {
-            l = rg->LB;
-            PLOGMSG(klogWarn, (klogWarn, "Library value is too long: "
-                "XML-safe conversion was disabled for @RG\tID:$(ID)\tLB:$(LB)"
-                "ID=%s,LB=%s", rg->ID, rg->LB));
-        }
-        OUTMSG((" library=\"%s\"", l ? l : ""));
-    }
-    if (rg->SM) {
-        rc = XMLLogger_Encode(rg->SM, sample, sizeof sample, &num_writ);
-        if (rc) {
-            s = rg->SM;
-            PLOGMSG(klogWarn, (klogWarn, "Sample value is too long: "
-                "XML-safe conversion was disabled for @RG\tID:$(ID)\tSM:$(SM)"
-                "ID=%s,SM=%s", rg->ID, rg->SM));
-        }
-        OUTMSG((" sample=\"%s\"" , s ? s : ""));
-    }
-}
-typedef struct SraStats {
-    BSTNode n;
-    char     spot_group[1024]; /* SPOT_GROUP Column */
-    uint64_t spot_count; /*** spot count ***/
-    uint64_t spot_count_mates; /*** spots with mates ***/
-    uint64_t bio_len; /** biological len (BIO_BASE_COUNT) **/
-    uint64_t bio_len_mates; /** biological len when mates are present**/
-    uint64_t total_len; /** total len (BASE_COUNT) **/
-    uint64_t bad_spot_count; /** number of spots flagged with rd_filter=2 **/
-    uint64_t bad_bio_len;        /** biological length of bad spots ***/
-    uint64_t filtered_spot_count; /* number of spots flagged with rd_filter=2 */
-    uint64_t filtered_bio_len;   /** biological length of filtered spots **/
-    uint64_t total_cmp_len; /* CMP_READ : compressed */
-    BAM_HEADER_RG BAM_HEADER;
-} SraStats;
-typedef struct Statistics {  /* READ_LEN columnn */
-    /* average READ_LEN value */
-    /* READ_LEN standard deviation. Is calculated just when requested. */
-    /* running (continuous) standard deviation */
-
-    int64_t n; /* number of values */
-    double a; /* the mean value */
-    double q; /* Qi = Q[i-1] + (Xi - A[i-1])(Xi - Ai) */
-
-    bool variable; /* variable or fixed value */
-    double prev_val;
-} Statistics;
-typedef struct Statistics2 {
-    int n;
-    double average;
-    double diff_sq_sum;
-} Statistics2;
-static
-void Statistics2Init(Statistics2* self, double sum, spotid_t count) {
-    assert(self);
-
-    if (count) {
-        self->average = sum / count;
-    }
-}
-
-static void Statistics2Add(Statistics2* self, double value) {
-    double diff = 0;
-
-    assert(self);
-
-    ++self->n;
-
-    diff = value - self->average;
-    self->diff_sq_sum += diff * diff;
-}
-
-static
-void Statistics2Print(const Statistics2* selfs,
-    uint32_t nreads, const char* indent,
-
-     /* the same as in <Statistics: just to make <Statistics> and <Statistics2>
-        look the same */
-    uint64_t spot_count)
-{
-    int i = 0;
-
-    if (nreads) {
-        assert(selfs && indent);
-    }
-
-    OUTMSG(("%s<Statistics2 nreads=\"%u\" nspots=\"%lu\">\n",
-        indent, nreads, spot_count));
-
-    for (i = 0; i < nreads; ++i) {
-        double dev = 0;
-        const Statistics2* stats = selfs + i;
-        double avr = stats->average;
-        if (stats->n > 0) {
-            dev = sqrt(stats->diff_sq_sum / stats->n);
-        }
-
-        OUTMSG(("%s  "
-            "<Read index=\"%d\" count=\"%ld\" average=\"%f\" stdev=\"%f\"/>\n",
-            indent, i, stats->n, avr, dev));
-    }
-
-    OUTMSG(("%s</Statistics2>\n", indent));
-}
-
-typedef struct {
-    uint64_t cnt[5];
-    bool CS_NATIVE;
-    const SRAColumn *col;
-    bool finalized;
-} Bases;
-static
-void BasesInit(Bases *self, const SRATable *tbl)
-{
-    rc_t rc = 0;
-    const char name[] = "CS_NATIVE";
-    const SRAColumn *col = NULL;
-    const void *base = NULL;
-    bitsz_t boff = ~0;
-    bitsz_t row_bits = ~0;
-
-    assert(self);
-    memset(self, 0, sizeof *self);
-    self->CS_NATIVE = true;
-
-    rc = SRATableOpenColumnRead(tbl, &col, name, NULL);
-    if (rc != 0) {
-        PLOGERR(klogInt, (klogErr, rc,
-            "while SRATableOpenColumnRead($(name))", "name=%s", name));
-    }
-
-    if (rc == 0) {
-        rc = SRAColumnRead(col, 1, &base, &boff, &row_bits);
-        if (rc != 0) {
-            PLOGERR(klogInt, (klogErr, rc,
-                "while SRAColumnRead($(name))", "name=%s", name));
-        }
-        if (boff != 0 || row_bits != 8) {
-            rc = RC(rcExe, rcColumn, rcReading, rcData, rcInvalid);
-            PLOGERR(klogInt, (klogErr, rc,
-                "invalid boff or row_bits while SRAColumnRead($(name))",
-                "name=%s", name));
-        }
-    }
-
-    if (rc == 0) {
-        self->CS_NATIVE = *((bool*)base);
-    }
-
-    RELEASE(SRAColumn, col);
-
-    {
-        const char *name = self->CS_NATIVE ? "CSREAD" : "READ";
-        const char *datatype
-            = self->CS_NATIVE ? "INSDC:x2cs:bin" : "INSDC:x2na:bin";
-        rc = SRATableOpenColumnRead(tbl, &self->col, name, datatype);
-        if (rc != 0) {
-            PLOGERR(klogInt, (klogErr, rc,
-                "while SRATableOpenColumnRead($(name), $(type))",
-                "name=%s,type=%s", name, datatype));
-        }
-    }
-}
-
-static
-void BasesFinalize(Bases *self)
-{
-    assert(self);
-
-    if (self->col == NULL) {
-        LOGMSG(klogInfo, "Bases statistics will not be printed : "
-            "READ column was not opened during BasesFinalize()");
-        return;
-    }
-
-    self->finalized = true;
-}
-
-static
-rc_t BasesRelease(Bases *self)
-{
-    rc_t rc = 0;
-
-    assert(self);
-
-    RELEASE(SRAColumn, self->col);
-
-    return rc;
-}
-
-static
-void BasesAdd(Bases *self, spotid_t spotid)
-{
-    rc_t rc = 0;
-    const void *base = NULL;
-    bitsz_t boff = ~0;
-    bitsz_t row_bits = ~0;
-    bitsz_t i = ~0;
-    const unsigned char *bases = NULL;
-
-    assert(self);
-
-    if (self->col == NULL) {
-        return;
-    }
-
-    rc = SRAColumnRead(self->col, spotid, &base, &boff, &row_bits);
-    if (rc != 0) {
-        PLOGERR(klogInt, (klogErr, rc,
-            "while SRAColumnRead(READ, $(type))",
-            "type=%s", self->CS_NATIVE ? "CS_NATIVE" : "not CS_NATIVE"));
-        BasesRelease(self);
-        return;
-    }
-
-    if ((row_bits % 8) != 0) {
-        rc = RC(rcExe, rcColumn, rcReading, rcData, rcInvalid);
-        PLOGERR(klogInt, (klogErr, rc, "Invalid row_bits '$(row_bits) "
-            "while SRAColumnRead(READ, $(type), spotid=$(spotid))",
-            "row_bits=%lu,type=%s,spotid=%lu",
-            row_bits, self->CS_NATIVE ? "CS_NATIVE" : "not CS_NATIVE", spotid));
-        BasesRelease(self);
-        return;
-    }
-
-    row_bits /= 8;
-    bases = base;
-    for (i = 0; i < row_bits; ++i) {
-        unsigned char base = bases[i];
-        if (base > 4) {
-            rc = RC(rcExe, rcColumn, rcReading, rcData, rcInvalid);
-            PLOGERR(klogInt, (klogErr, rc,
-                "Invalid READ column value '$(base) "
-                "while SRAColumnRead($(type), spotid=$(spotid), index=$(i))",
-                "base=%d,type=%s,spotid=%lu,index=%lu",
-                base, self->CS_NATIVE ? "CS_NATIVE" : "not CS_NATIVE",
-                spotid, i));
-            BasesRelease(self);
-            return;
-        }
-        ++self->cnt[base];
-    }
-}
-
-static
-void BasesPrint(const Bases *self,
-    uint64_t base_count, const char* indent)
-{
-    const char tag[] = "Bases";
-    const char *name = NULL;
-    int i = ~0;
-
-    assert(self);
-
-    if (!self->finalized) {
-        LOGMSG(klogInfo, "Bases statistics will not be printed : "
-            "Bases object was not finalized during BasesPrint()");
-        return;
-    }
-
-    if (self->cnt[0] + self->cnt[1] + self->cnt[2] +
-        self->cnt[3] + self->cnt[4] != base_count)
-    {
-        rc_t rc = RC(rcExe, rcNumeral, rcComparing, rcData, rcInvalid);
-        LOGERR(klogErr, rc,
-            "BASE_COUNT MISMATCH DURING BASES COUNT CALCULATION");
-        return;
-    }
-
-    name = self->CS_NATIVE ? "0123." : "ACGTN";
-
-    OUTMSG(("%s<%s cs_native=\"%s\" count=\"%lu\">\n",
-        indent, tag, self->CS_NATIVE ? "true" : "false", base_count));
-    for (i = 0; i < 5; ++i) {
-        OUTMSG(("%s  <Base value=\"%c\" count=\"%lu\"/>\n",
-            indent, name[i], self->cnt[i]));
-    }
-    OUTMSG(("%s</%s>\n", indent, tag));
-}
-
-typedef struct {
-    uint64_t spot_count;
-    uint64_t spot_count_mates;
-    uint64_t BIO_BASE_COUNT; /* bio_len */
-    uint64_t bio_len_mates;
-    uint64_t BASE_COUNT; /* total_len */
-    uint64_t bad_spot_count;
-    uint64_t bad_bio_len;
-    uint64_t filtered_spot_count;
-    uint64_t filtered_bio_len;
-    uint64_t total_cmp_len; /* CMP_READ : compressed */
-
-    bool variable_nreads;
-    uint32_t nreads; /* if (nreads == 0) then (nreads is variable) */
-    Statistics * stats ; /* nreads elements */
-    Statistics2* stats2; /* nreads elements */
-
-    Bases bases_count;
-} SraStatsTotal;
-static
-rc_t SraStatsTotalMakeStatistics(SraStatsTotal* self, uint32_t nreads)
-{
-    assert(self);
-
-    if (nreads == 0) {
-        return 0;
-    }
-
-    assert(self->stats == NULL);
-    self->stats = calloc(nreads, sizeof *self->stats);
-    if (self->stats == NULL) {
-        return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-    }
-
-    assert(self->stats2 == NULL);
-    self->stats2 = calloc(nreads, sizeof *self->stats2);
-    if (self->stats2 == NULL) {
-        free(self->stats);
-        self->stats = NULL;
-        return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-    }
-
-    self->nreads = nreads;
-
-    return 0;
-}
-
-static
-void SraStatsTotalStatistics2Init(SraStatsTotal* self,
-    int nreads, uint64_t* sums, uint64_t* count)
-{
-    int i = 0;
-    assert(self);
-    if (nreads) {
-        assert(sums);
-    }
-    for (i = 0; i < nreads; ++i) {
-        uint64_t sum = sums[i];
-        Statistics2* stats = self->stats2 + i;
-        assert(stats);
-        Statistics2Init(stats, sum, count[i]);
-    }
-}
-
-static rc_t SraStatsTotalFree(SraStatsTotal* self) {
-    assert(self);
-
-    free(self->stats);
-    self->stats = NULL;
-
-    free(self->stats2);
-    self->stats2 = NULL;
-
-    BasesRelease(&self->bases_count);
-
-    self->nreads = 0;
-
-    return 0;
-}
-
-static void StatisticsAdd(Statistics* self, double value) {
-    double a_1 = 0;
-
-    /* http://en.wikipedia.org/wiki/Stdev#Rapid_calculation_methods */
-
-    assert(self);
-
-    a_1 = self->a;
-
-    if (self->n++ == 0) {
-        self->prev_val = value;
-    }
-    else if (self->prev_val != value) {
-        self->variable = true;
-    }
-
-    self->a += (value - a_1) / self->n;
-    self->q += ((double)value - a_1) * ((double)value - self->a);
-}
-
-static double StatisticsAverage(const Statistics* self) {
-    assert(self);
-
-    return self->a;
-}
-
-static double StatisticsStdev(const Statistics* self) {
-    assert(self);
-
-    if (self->n == 0) {
-        return 0;
-    }
-
-    return sqrt(self->q / self->n);
-}
-
-static
-void SraStatsTotalAdd(SraStatsTotal* self,
-    uint32_t* values, uint32_t nreads)
-{
-    int i = ~0;
-
-    assert(self && values);
-
-    if (self->nreads != nreads) {
-        self->variable_nreads = true;
-    }
-
-    if (self->variable_nreads) {
-        return;
-    }
-
-    for (i = 0; i < nreads; ++i) {
-        uint32_t value = values[i];
-        if (value > 0) {
-            Statistics* stats = self->stats + i;
-            assert(stats);
-
-            StatisticsAdd(stats, value);
-        }
-    }
-}
-
-static
-void SraStatsTotalAdd2(SraStatsTotal* self, uint32_t* values) {
-    int i = 0;
-
-    assert(self && values);
-
-    for (i = 0; i < self->nreads; ++i) {
-        uint32_t value = values[i];
-        if (value > 0) {
-            Statistics2* stats = self->stats2 + i;
-            assert(stats);
-
-            Statistics2Add(stats, value);
-        }
-    }
-}
-
-static double s_Round(double X) { return floor(X + 0.5); }
-
-static
-void print_double_or_int(const char* name, double val, bool variable) {
-    double rnd = s_Round(val);
-    assert(name);
-    if (variable) {
-        OUTMSG((" %s=\"%.2f\"", name, val));
-    }
-    else {
-        OUTMSG((" %s=\"%d\"", name, (int)rnd));
-    }
-}
-
-static
-void StatisticsPrint(const Statistics* selfs,
-    uint32_t nreads, const char* indent)
-{
-    int i = ~0;
-
-    if (nreads) {
-        assert(selfs && indent);
-    }
-
-    for (i = 0; i < nreads; ++i) {
-        const Statistics* stats = selfs + i;
-        double avr = StatisticsAverage(stats);
-        double dev = StatisticsStdev(stats);
-
-        OUTMSG(("%s  <Read index=\"%d\"", indent, i));
-        OUTMSG((" count=\"%ld\"", stats->n, i));
-        print_double_or_int("average", avr, stats->variable);
-        print_double_or_int("stdev"  , dev, stats->variable);
-        OUTMSG(("/>\n"));
-    }
-}
-static rc_t StatisticsDiff(const Statistics* ss,
-    const Statistics2* ss2, uint32_t nreads)
-{
-    rc_t rc = 0;
-
-    int i = ~0;
-
-    assert(ss && ss2);
-
-    for (i = 0; i < nreads; ++i) {
-        const Statistics * s  = ss  + i;
-        const Statistics2* s2 = ss2 + i;
-
-        double d  = StatisticsStdev(s);
-        double d2 = sqrt(s2->diff_sq_sum / s2->n);
-
-        double diff = d - d2;
-        if (diff < 0) {
-            diff = -diff;
-        }
-
-        if (diff > 1e-6) {
-              /* RC(rcExe, rcTest, rcExecuting, rcTest, rcFailed); */
-            rc = RC(rcExe, rcNumeral, rcComparing, rcData, rcInvalid);
-            DISP_RC(rc, "While comparing calculated standard deviations");
-        }
-
-        if (s->n != s2->n) {
-            rc = RC(rcExe, rcNumeral, rcComparing, rcData, rcInvalid);
-            DISP_RC(rc, "While comparing read statistics counts");
-        }
-
-        diff = StatisticsAverage(s) - s2->average;
-        if (diff < 0) {
-            diff = -diff;
-        }
-        if (diff > 1e-10) {
-              /* RC(rcExe, rcTest, rcExecuting, rcTest, rcFailed); */
-            rc = RC(rcExe, rcNumeral, rcComparing, rcData, rcInvalid);
-            DISP_RC(rc, "While comparing calculated average");
-        }
-    }
-
-    return rc;
-}
-
-static
-rc_t SraStatsTotalPrintStatistics(const SraStatsTotal* self,
-    const char* indent, bool test)
-{
-    rc_t rc = 0;
-
-    assert(self && indent);
-
-    OUTMSG(("%s<Statistics nreads=\"", indent));
-
-    if (self->variable_nreads) {
-        OUTMSG(("variable\"/>\n"));
-    }
-    else {
-        OUTMSG(("%u\"", self->nreads));
-        OUTMSG((" nspots=\"%lu\">\n", self->spot_count));
-        StatisticsPrint(self->stats, self->nreads, indent);
-        OUTMSG(("%s</Statistics>\n", indent));
-
-        if (test) {
-            Statistics2Print(self->stats2, self->nreads, indent,
-                self->spot_count);
-            rc = StatisticsDiff(self->stats, self->stats2, self->nreads);
-        }
-    }
-
-    return rc;
-}
-
 typedef struct srastat_parms {
     const char* table_path;
 
     bool xml; /* output format (txt or xml) */
     bool printMeta;
     bool quick; /* quick mode: stats from meta */
-    bool skip_members; /* not to print spot_group statistics */
-    bool skip_alignment; /* not to print alignment info */
-    bool print_arcinfo;
-    bool statistics; /* calculate average and stdev */
-    bool test; /* test stdev */
 
     spotid_t start, stop;
 
     bool hasSPOT_GROUP;
     bool variableReadLength;
-
-    SraStatsTotal total; /* is used in srastat_print */
 } srastat_parms;
 typedef struct SraStatsMeta {
     bool found;
@@ -753,7 +85,6 @@ typedef struct SraStatsMeta {
     uint64_t CMP_BASE_COUNT; /* compressed base count when present */
     uint64_t spot_count;
     char* spot_group; /* optional */
-    BAM_HEADER_RG BAM_HEADER;
 } SraStatsMeta;
 typedef struct MetaDataStats {
     bool found;
@@ -761,6 +92,26 @@ typedef struct MetaDataStats {
     uint32_t spotGroupN;
     SraStatsMeta *spotGroup;
 } MetaDataStats;
+typedef struct SraStats {
+    BSTNode n;
+    char     spot_group[1024]; /* SPOT_GROUP Column */
+    uint64_t spot_count; /*** spot count ***/
+    uint64_t spot_count_mates; /*** spots with mates ***/
+    uint64_t bio_len; /** biological len **/
+    uint64_t bio_len_mates; /** biological len when mates are present**/
+    uint64_t total_len; /** total len **/
+    uint64_t bad_spot_count; /** number of spots flagged with rd_filter=2 **/
+    uint64_t bad_bio_len;        /** biological length of bad spots ***/
+    uint64_t filtered_spot_count; /* number of spots flagged with rd_filter=2 */
+    uint64_t filtered_bio_len;   /** biological length of filtered spots **/
+    uint64_t total_cmp_len; /* CMP_READ : compressed */
+} SraStats;
+typedef struct SraStatsTotal {
+    uint64_t BASE_COUNT;
+    uint64_t BIO_BASE_COUNT;
+    uint64_t spot_count;
+    uint64_t total_cmp_len; /* CMP_READ : compressed */
+} SraStatsTotal;
 typedef struct SraSizeStats { uint64_t size; } SraSizeStats;
 typedef struct Formatter {
     char name[256];
@@ -778,674 +129,15 @@ typedef struct SraMeta {
     Formatter formatter;
     Loader loader;
 } SraMeta;
-typedef struct ArcInfo_struct {
-    KTime_t timestamp;
-    struct {
-        const char* tag;
-        uint64_t size;
-        char md5[32 + 1];
-    } i[2];
-} ArcInfo;
-typedef struct Quality {
-    uint32_t value;
-    uint64_t count;
-} Quality;
-typedef struct QualityStats {
-    Quality* QUALITY;
-    size_t allocated;
-    size_t used;
-} QualityStats;
-typedef enum EMetaState {
-    eMSNotFound,
-    eMSFound
-} EMetaState;
-typedef struct Count {
-    EMetaState state;
-    uint64_t value;
-} Count;
-typedef struct Counts {
-    char* tableName;
-    EMetaState tableState;
-    EMetaState metaState;
-    Count BASE_COUNT;
-    Count SPOT_COUNT;
-} Counts;
-typedef struct TableCounts {
-    EMetaState state;
-    Counts* count;
-    size_t allocated;
-    size_t used;
-} TableCounts;
-typedef struct Ctx {
-    const BSTree* tr;
-    const MetaDataStats* meta;
-    const SraMeta* info;
-    const SraSizeStats* sizes;
-    const ArcInfo* arc_info;
-    srastat_parms* pb;
-    SraStatsTotal* total;
-    const VDatabase* db;
-    QualityStats quality;
-    TableCounts tables;
-} Ctx;
-
-typedef rc_t (CC * RG_callback)(const BAM_HEADER_RG* rg, const void* data);
-
-static
-rc_t CC meta_RG_callback(const BAM_HEADER_RG* rg, const void* data)
-{
-    rc_t rc = 0;
-
-    const MetaDataStats* meta = data;
-
-    int i = 0;
-    bool found = false;
-
-    assert(rg && meta && rg->ID);
-
-    for (i = 0; i < meta->spotGroupN && rc == 0; ++i) {
-        SraStatsMeta* ss = &meta->spotGroup[i];
-        const char* spot_group = ss->spot_group;
-
-        assert(spot_group);
-        if (strcmp(spot_group, rg->ID) == 0) {
-            rc = BAM_HEADER_RG_copy(&ss->BAM_HEADER, rg);
-            found = true;
-            break;
-        }
-    }
-
-    if (rc == 0 && !found) {
-        /* There could be Read groups that are present in the BAM_HEADER 
-        but missed in the csra. We was just ignore them. */
-    }
-
-    return rc;
-}
-
-static
-int CC srastats_cmp ( const void *item, const BSTNode *n )
-{
-    const char *sg = item;
-    const SraStats *ss = ( const SraStats* ) n;
-
-    return strcmp(sg,ss->spot_group);
-}
-
-static
-rc_t CC tree_RG_callback(const BAM_HEADER_RG* rg, const void* data)
-{
-    rc_t rc = 0;
-
-    const BSTree* tr = data;
-    SraStats* ss = NULL;
-
-    assert(rg && tr && rg->ID);
-
-    ss = (SraStats*) BSTreeFind(tr, rg->ID, srastats_cmp);
-    if (ss == NULL) {
-        /* There could be Read groups that are present in the BAM_HEADER 
-        but missed in the csra. We was just ignore them. */
-    }
-    else {
-        rc = BAM_HEADER_RG_copy(&ss->BAM_HEADER, rg);
-    }
-
-    return rc;
-}
-
-static
-int CC QualityCmp(const void* s1, const void* s2, void *data) {
-    const Quality* q1 = s1;
-    const Quality* q2 = s2;
-    assert(q1 && q2);
-    return q1->value < q2->value ? -1 : q1->value == q2->value ? 0 : 1;
-}
-
-static
-int CC CountsCmp(const void* v1, const void* v2, void *data) {
-    const Counts* e1 = v1;
-    const Counts* e2 = v2;
-    assert(e1 && e2 && e1->tableName && e2->tableName);
-    return strcmp(e1->tableName, e2->tableName);
-}
-
-static
-rc_t QualityParse(Quality* self, const KMDataNode* node, const char* name)
-{
-    rc_t rc = 0;
-    const char start[] = "PHRED_";
-    int i = strlen(start);
-
-    assert(self && name);
-
-    if (strlen(name) <= strlen(start)) {
-        rc = RC(rcExe, rcXmlDoc, rcParsing, rcName, rcInvalid);
-        PLOGERR(klogInt, (klogErr, rc,
-            "Bad node name: STATS/QUALITY/$(name)", "name=%s", name));
-        return rc;
-    }
-
-    self->value = 0;
-    for (; i < strlen(name); ++i) {
-        if (name[i] < '0' || name[i] > '9') {
-            rc_t rc = RC(rcExe, rcXmlDoc, rcParsing, rcName, rcInvalid);
-            PLOGERR(klogInt, (klogErr, rc,
-                "Bad node name: STATS/QUALITY/$(name)", "name=%s", name));
-            return rc;
-        }
-        self->value = self->value * 10 + name[i] - '0';
-    }
-
-    rc = KMDataNodeReadAsU64(node, &self->count);
-    if (rc != 0) {
-        PLOGERR(klogInt, (klogErr, rc,
-            "while reading the value of STATS/QUALITY/$(name)",
-            "name=%s", name));
-    }
-
-    return rc;
-}
-
-static
-rc_t QualityStatsRead1(QualityStats* self,
-    const KMDataNode* parent, const char* name)
-{
-    const KMDataNode* node = NULL;
-
-    rc_t rc = KMDataNodeOpenNodeRead(parent, &node, name);
-    DISP_RC2(rc, name, "while calling KMDataNodeOpenNodeRead");
-
-    if (rc == 0) {
-        size_t size = 64;
-        assert(self);
-        if (self->allocated == 0) {
-            assert(self->QUALITY == NULL && self->used == 0);
-            self->QUALITY = malloc(size * sizeof *self->QUALITY);
-            if (self->QUALITY == NULL) {
-                return
-                    RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-            }
-            self->allocated = size;
-        }
-        else if (self->used >= self->allocated) {
-            Quality* tmp = NULL;
-            size = self->allocated * 2;
-            tmp = realloc(self->QUALITY, size * sizeof *self->QUALITY);
-            if (tmp == NULL) {
-                return
-                    RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-            }
-            self->QUALITY = tmp;
-            self->allocated = size;
-        }
-    }
-
-    if (rc == 0) {
-        assert((self->used < self->allocated) && self->QUALITY);
-        rc = QualityParse(&self->QUALITY[self->used], node, name);
-        if (rc == 0)
-        {   ++self->used; }
-    }
-
-    RELEASE(KMDataNode, node);
-
-    return rc;
-}
-
-static
-rc_t QualityStatsRead(QualityStats* self, const KMetadata* meta)
-{
-    rc_t rc = 0;
-    const char name[] = "STATS/QUALITY";
-    const KMDataNode* node = NULL;
-
-    assert(self && meta);
-
-    memset(self, 0, sizeof *self);
-
-    rc = KMetadataOpenNodeRead(meta, &node, name);
-
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            DBGMSG(DBG_APP,DBG_COND_1, ("%s: not found\n", name));
-            return 0;
-        }
-        DISP_RC2(rc, name, "while calling KMetadataOpenNodeRead");
-    }
-
-    if (rc == 0 && node) {
-        KNamelist* names = NULL;
-        rc = KMDataNodeListChild(node, &names);
-        DISP_RC2(rc, name, "while calling KMDataNodeListChild");
-        if (rc == 0) {
-            uint32_t count = 0;
-            rc = KNamelistCount(names, &count);
-            DISP_RC2(rc, name, "while calling KNamelistCount");
-            if (rc == 0) {
-                uint32_t i = ~0;
-                for (i = 0; i < count && rc == 0; ++i) {
-                    const char* child = NULL;
-                    rc = KNamelistGet(names, i, &child);
-                    if (rc != 0) {
-                       PLOGERR(klogInt, (klogInt, rc,
-                            "while calling STATS/QUALITY::KNamelistGet($(idx))",
-                            "idx=%i", i));
-                    }
-                    else
-                    {   rc = QualityStatsRead1(self, node, child); }
-                }
-            }
-        }
-        RELEASE(KNamelist, names);
-    }
-    RELEASE(KMDataNode, node);
-    return 0;
-}
-
-static
-void QualityStatsSort(QualityStats* self)
-{
-    assert(self);
-    ksort(self->QUALITY, self->used, sizeof *self->QUALITY, QualityCmp, NULL);
-}
-
-static
-void TableCountsSort(TableCounts* self)
-{
-    assert(self);
-    ksort(self->count, self->used, sizeof *self->count, CountsCmp, NULL);
-}
-static
-rc_t QualityStatsPrint(const QualityStats* self, const char* indent)
-{
-    size_t i = ~0;
-    const char tag[] = "QualityCount";
-    assert(self && indent);
-
-    if (self->allocated == 0)
-    {   return 0; }
-
-    OUTMSG(("%s<%s>\n", indent, tag));
-    for (i = 0; i < self->used; ++i) {
-        Quality* q = &self->QUALITY[i];
-        OUTMSG(("  %s<Quality value=\"%lu\" count=\"%lu\"/>\n",
-            indent, q->value, q->count));
-    }
-    OUTMSG(("%s</%s>\n", indent, tag));
-
-    return 0;
-}
-
-static
-void QualityStatsRelease(QualityStats* self)
-{
-    assert(self);
-    free(self->QUALITY);
-    memset(self, 0, sizeof *self);
-}
-
-static
-rc_t CountRead(Count* self, const char* name, const KMDataNode* parent)
-{
-    rc_t rc = 0;
-
-    const KMDataNode* node = NULL;
-
-    assert(self && parent && name);
-
-    memset(self, 0, sizeof *self);
-
-    rc = KMDataNodeOpenNodeRead(parent, &node, name);
-    if (rc != 0) {
-        if (GetRCState(rc) == rcNotFound) {
-            DBGMSG(DBG_APP,DBG_COND_1, ("%s: not found\n", name));
-            rc = 0;
-        }
-        DISP_RC2(rc, name, "while calling KMetadataOpenNodeRead");
-    }
-    else {
-        rc = KMDataNodeReadAsU64(node, &self->value);
-        DISP_RC2(rc, name, "while calling KMDataNodeReadAsU64");
-        if (rc == 0)
-        {   self->state = eMSFound; }
-    }
-
-    RELEASE(KMDataNode, node);
-
-    return rc;
-}
-
-static
-rc_t TableCountsRead1(TableCounts* self,
-    const VDatabase* db, const char* tableName)
-{
-    const VTable* tbl = NULL;
-    const KMetadata* meta = NULL;
-    const char name[] = "STATS/TABLE";
-    const KMDataNode* node = NULL;
-    rc_t rc = VDatabaseOpenTableRead(db, &tbl, tableName);
-    DISP_RC2(rc, tableName, "while calling VDatabaseOpenTableRead");
-
-    if (rc == 0) {
-        size_t size = 8;
-        assert(self);
-        if (self->allocated == 0) {
-            assert(self->count == NULL && self->used == 0);
-            self->count = malloc(size * sizeof *self->count);
-            if (self->count == NULL) {
-                return
-                    RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-            }
-            self->allocated = size;
-        }
-        else if (self->used >= self->allocated) {
-            Counts* tmp = NULL;
-            size = self->allocated * 2;
-            tmp = realloc(self->count, size * sizeof *self->count);
-            if (tmp == NULL) {
-                return
-                    RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-            }
-            self->count = tmp;
-            self->allocated = size;
-        }
-    }
-    if (rc == 0) {
-        assert(self->used < self->allocated && self->count);
-    }
-    if (rc == 0) {
-        rc = VTableOpenMetadataRead(tbl, &meta);
-        DISP_RC2(rc, name, "while calling VTableOpenMetadataRead");
-    }
-    if (rc == 0) {
-        rc = KMetadataOpenNodeRead(meta, &node, name);
-        if (rc != 0) {
-            if (GetRCState(rc) == rcNotFound) {
-                DBGMSG(DBG_APP,DBG_COND_1, ("%s: not found\n", name));
-                rc = 0;
-            }
-            DISP_RC2(rc, name, "while calling KMetadataOpenNodeRead");
-        }
-        else
-        {   assert(node); }
-    }
-
-    if (rc == 0 && node != NULL) {
-        Counts* c = NULL;
-        assert((self->used < self->allocated) && (self->count != NULL));
-        c = &self->count[self->used];
-        memset(c, 0, sizeof *c);
-        c->tableName = strdup(tableName);
-        if (c->tableName == NULL)
-        {   return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted); }
-        c->tableState = eMSFound;
-        c->metaState = eMSFound;
-        rc = CountRead(&c->BASE_COUNT, "BASE_COUNT", node);
-
-        {
-            rc_t rc2 = CountRead(&c->SPOT_COUNT, "SPOT_COUNT", node);
-            if (rc2 != 0 && rc == 0)
-            {   rc = rc2; }
-        }
-
-        if (rc == 0)
-        {   ++self->used; }
-    }
-
-    RELEASE(KMDataNode, node);
-    RELEASE(KMetadata, meta);
-    RELEASE(VTable, tbl);
-
-    return rc;
-}
-
-static
-rc_t TableCountsRead(TableCounts* self, const VDatabase* db)
-{
-    rc_t rc = 0;
-    KNamelist* names = NULL;
-
-    assert(self);
-
-    memset(self, 0, sizeof *self);
-
-    if (db == NULL)
-    {   return 0; }
-
-    rc = VDatabaseListTbl(db, &names);
-    DISP_RC(rc, "while calling VDatabaseListTbl");
-    if (rc == 0) {
-        uint32_t count = 0;
-        rc = KNamelistCount(names, &count);
-        DISP_RC(rc, "while calling VDatabaseListTbl::KNamelistCount");
-        if (rc == 0) {
-            uint32_t i = ~0;
-            for (i = 0; i < count && rc == 0; ++i) {
-                const char* table = NULL;
-                rc = KNamelistGet(names, i, &table);
-                if (rc != 0) {
-                   PLOGERR(klogInt, (klogInt, rc,
-                        "while calling VDatabaseListTbl::KNamelistGet($(idx))",
-                        "idx=%i", i));
-                }
-                else
-                {   rc = TableCountsRead1(self, db, table); }
-            }
-        }
-    }
-
-    RELEASE(KNamelist, names);
-
-    return rc;
-}
-
-static
-rc_t CountPrint(const Count* self, const char* indent, const char* tag)
-{
-    assert(self && indent && tag);
-    switch (self->state) {
-        case eMSNotFound:
-            OUTMSG(("  %s<%s state=\"not found\"/>\n", indent, tag));
-            break;
-        case eMSFound:
-            OUTMSG(("  %s<%s count=\"%lu\"/>\n", indent, tag, self->value));
-            break;
-        default:
-            assert(0);
-            OUTMSG(("  %s<%s state=\"UNEXPECTED\"/>\n", indent, tag));
-            break;
-    }
-    return 0;
-}
-
-static
-rc_t TableCountsPrint(const TableCounts* self, const char* indent)
-{
-    rc_t rc = 0;
-    const char tag[] = "Databases";
-
-    assert(self && indent);
-
-    if (self->allocated == 0)
-    {   return 0; }
-
-    OUTMSG(("%s<%s>\n", indent, tag));
-    {
-        size_t i = ~0;
-        const char tag[] = "Database";
-        OUTMSG(("  %s<%s>\n", indent, tag));
-        for (i = 0; i < self->used; ++i) {
-            const char tag[] = "Statistics";
-            const Counts* p = &self->count[i];
-            OUTMSG(("    %s<Table name=\"%s\">\n", indent, p->tableName));
-            switch (p->metaState) {
-            case eMSNotFound:
-                OUTMSG(("      %s<%s source=\"meta\" state=\"not found\"/>\n",
-                    indent, tag));
-                break;
-            case eMSFound: {
-                char buf[512];
-                OUTMSG(("      %s<%s source=\"meta\">\n", indent, tag));
-                rc = string_printf(buf, sizeof buf, NULL, "      %s", indent);
-                if (rc == 0) {
-                    CountPrint(&p->SPOT_COUNT, buf, "Rows");
-                    CountPrint(&p->BASE_COUNT, buf, "Elements");
-                }
-                OUTMSG(("      %s</%s>\n", indent, tag));
-                break;
-              }
-            default:
-                assert(0);
-                OUTMSG(("      %s<%s source=\"meta\" state=\"UNEXPECTED\"/>\n",
-                    indent, tag));
-                break;
-            }
-            OUTMSG(("    %s</Table>\n", indent));
-        }
-        OUTMSG(("  %s</%s>\n", indent, tag));
-    }
-    OUTMSG(("%s</%s>\n", indent, tag));
-
-    return rc;
-}
-
-static
-void TableCountsRelease(TableCounts* self)
-{
-    size_t i = ~0;
-    assert(self);
-    for (i = 0; i < self->used; ++i) {
-        assert(self->count);
-        free(self->count[i].tableName);
-        self->count[i].tableName = NULL;
-    }
-    free(self->count);
-    memset(self, 0, sizeof *self);
-}
-
-static
-rc_t parse_bam_header(const VDatabase* db,
-    const RG_callback cb, const void* data)
-{
-    rc_t rc = 0;
-    const char name[] = "BAM_HEADER";
-    const KMetadata* meta = NULL;
-    const KMDataNode* node = NULL;
-    char* buffer = NULL;
-
-    if (db == NULL) {
-        return rc;
-    }
-    assert(cb);
-
-    if (rc == 0) {
-        rc = VDatabaseOpenMetadataRead(db, &meta);
-        DISP_RC(rc, "while calling VDatabaseOpenMetadataRead");
-    }
-
-    if (rc == 0) {
-        rc = KMetadataOpenNodeRead(meta, &node, name);
-        if (rc != 0) {
-            if (GetRCState(rc) == rcNotFound) {
-                return 0;
-            }
-            DISP_RC2(rc, name, "while calling KMetadataOpenNodeRead");
-        }
-    }
-
-    if (rc == 0) {
-        size_t num_read = 0;
-        size_t remaining = 0;
-        rc = KMDataNodeRead(node, 0, NULL, 0, &num_read, &remaining);
-        DISP_RC2(rc, name, "while calling KMDataNodeRead");
-        assert(num_read == 0);
-        if (rc == 0 && remaining > 0) {
-            buffer = malloc(remaining + 1);
-            if (buffer == NULL) {
-                rc = RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted);
-            }
-            else {
-                size_t size = 0;
-                rc = KMDataNodeReadCString(node, buffer, remaining + 1, &size);
-                DISP_RC2(rc, name, "while calling KMDataNodeReadCString");
-                assert(size == remaining);
-            }
-        }
-    }
-
-    if (rc == 0 && buffer) {
-        const char* token = strtok(buffer, "\n");
-        while (token) {
-            const char RG[] = "@RG\t";
-            if (strncmp(token, RG, sizeof RG - 1) == 0) {
-                const char ID[] = "\tID:";
-                const char LB[] = "\tLB:";
-                const char SM[] = "\tSM:";
-                char* id_end = NULL;
-                char* lb_end = NULL;
-                char* sm_end = NULL;
-                BAM_HEADER_RG rg;
-                memset(&rg, 0, sizeof rg);
-                rg.ID = strstr(token, ID);
-                rg.LB = strstr(token, LB);
-                rg.SM = strstr(token, "\tSM:");
-                if (rg.ID) {
-                    rg.ID += sizeof ID - 1;
-                }
-                if (rg.ID) {
-                    id_end = strchr(rg.ID, '\t');
-                }
-                if (rg.LB) {
-                    rg.LB += sizeof LB - 1;
-                }
-                if (rg.LB) {
-                    lb_end = strchr(rg.LB, '\t');
-                }
-                if (rg.SM) {
-                    rg.SM += sizeof SM - 1;
-                }
-                if (rg.SM) {
-                    sm_end = strchr(rg.SM, '\t');
-                }
-                if (id_end) {
-                    *id_end = '\0';
-                }
-                if (lb_end) {
-                    *lb_end = '\0';
-                }
-                if (sm_end) {
-                    *sm_end = '\0';
-                }
-                if (rg.ID && rg.LB && rg.SM) {
-                    rc = cb(&rg, data);
-                }
-                if (rc) {
-                    break;
-                }
-            }
-            token = strtok(NULL, "\n");
-        }
-    }
-    free(buffer);
-    buffer = NULL;
-    RELEASE(KMDataNode, node);
-    RELEASE(KMetadata, meta);
-    return rc;
-}
-
 static
 void SraStatsMetaDestroy(SraStatsMeta* self)
 {
     if (self == NULL)
     {   return; }
-    BAM_HEADER_RG_free(&self->BAM_HEADER);
     free(self->spot_group);
-    self->spot_group = NULL;
 }
-
 static
-rc_t CC fileSizeVisitor(const KDirectory* dir,
+rc_t CC visitor(const KDirectory* dir,
     uint32_t type, const char* name, void* data)
 {
     rc_t rc = 0;
@@ -1471,7 +163,7 @@ rc_t CC fileSizeVisitor(const KDirectory* dir,
         }
         case kptDir: 
             DBGMSG(DBG_APP, DBG_COND_1, ("Dir '%s'\n", name));
-            rc = KDirectoryVisit(dir, false, fileSizeVisitor, sizes, name);
+            rc = KDirectoryVisit(dir, false, visitor, sizes, name);
             DISP_RC2(rc, name, "while calling KDirectoryVisit");
             break;
         default:
@@ -1484,46 +176,6 @@ rc_t CC fileSizeVisitor(const KDirectory* dir,
 }
 
 static
-rc_t get_arc_info(const SRAMgr* mgr, const char* path,
-    const SRATable* tbl, ArcInfo* arc_info)
-{
-    rc_t rc = 0;
-    memset(arc_info, 0, sizeof(*arc_info));
-
-    if( (rc = SRAMgrGetTableModDate(mgr, &arc_info->timestamp, "%s", path)) == 0 ) {
-        uint32_t i;
-        for(i = 0; i < sizeof(arc_info->i) / sizeof(arc_info->i[0]); i++) {
-            const KFile* kfile;
-            arc_info->i[i].tag = i == 0 ? "sra" : "lite.sra";
-            if( (rc = SRATableMakeSingleFileArchive(tbl, &kfile, i == 1, NULL)) == 0 ) {
-                MD5State md5;
-                uint64_t pos = 0;
-                uint8_t buffer[256 * 1024];
-                size_t num_read = 0, x;
-
-                MD5StateInit(&md5);
-                do {
-                    if( (rc = KFileRead(kfile, pos, buffer, sizeof(buffer), &num_read)) == 0 ) {
-                        MD5StateAppend(&md5, buffer, num_read);
-                        pos += num_read;
-                    }
-                } while(rc == 0 && num_read != 0);
-                if( rc == 0 && (rc = KFileSize(kfile, &arc_info->i[i].size)) == 0 ) {
-                    uint8_t digest[16];
-                    MD5StateFinish(&md5, digest);
-                    for(pos = 0, x = 0; rc == 0 && pos < sizeof(digest); pos++) {
-                        rc = string_printf(&arc_info->i[i].md5[x], sizeof(arc_info->i[i].md5) - x, &num_read, "%02x", digest[pos]);
-                        x += num_read;
-                    }
-                }
-                KFileRelease(kfile);
-            }
-        }
-    }
-    return rc;
-}
-
-static
 rc_t get_size(const SRATable* tbl, SraSizeStats* sizes)
 {
     rc_t rc = 0;
@@ -1550,7 +202,7 @@ rc_t get_size(const SRATable* tbl, SraSizeStats* sizes)
             if (par == NULL)
             {   break; }
             else {
-                RELEASE(KDatabase, kDb);
+                DESTRUCT(KDatabase, kDb);
                 kDb = par;
             }
         }
@@ -1568,13 +220,13 @@ rc_t get_size(const SRATable* tbl, SraSizeStats* sizes)
     memset(sizes, 0, sizeof *sizes);
 
     if (rc == 0) {
-        rc = KDirectoryVisit(dir, false, fileSizeVisitor, sizes, NULL);
+        rc = KDirectoryVisit(dir, false, visitor, sizes, NULL);
         DISP_RC(rc, "while calling KDirectoryVisit");
     }
 
-    RELEASE(KDirectory, dir);
-    RELEASE(KTable, kTbl);
-    RELEASE(KDatabase, kDb);
+    DESTRUCT(KDirectory, dir);
+    DESTRUCT(KTable, kTbl);
+    DESTRUCT(KDatabase, kDb);
 
     return rc;
 }
@@ -1585,24 +237,19 @@ rc_t readTxtAttr(const KMDataNode* self, const char* name, const char* attrName,
 {
     rc_t rc = 0;
     size_t num_read = 0;
-
     if (self == NULL) {
         rc = RC(rcExe, rcMetadata, rcReading, rcSelf, rcNull);
         return rc;
     }
-
     assert(self && name && attrName && buf && buf_size);
-
     rc = KMDataNodeReadAttr(self, attrName, buf, buf_size, &num_read);
     if (rc != 0) {
         PLOGERR(klogErr, (klogErr, rc, "Cannot read '$(name)@$(attr)'",
             "name=%s,attr=%s", name, attrName));
     }
     else { DBGMSG(DBG_APP, DBG_COND_1, ("%s@%s = %s\n", name, attrName, buf)); }
-
     return rc;
 }
-
 static
 rc_t get_load_info(const KMetadata* meta, SraMeta* info)
 {
@@ -1612,7 +259,6 @@ rc_t get_load_info(const KMetadata* meta, SraMeta* info)
     memset(info, 0, sizeof *info);
     info->metaVersion = 99;
     info->tblVersion = -1;
-
     if (rc == 0) {
         rc = KMetadataVersion(meta, &info->metaVersion);
         DISP_RC(rc, "While calling KMetadataVersion");
@@ -1677,10 +323,9 @@ rc_t get_load_info(const KMetadata* meta, SraMeta* info)
             }
         }
     }
-
     if (rc == 0) {
         const char name[] = "SOFTWARE/formatter";
-        RELEASE(KMDataNode, node);
+        DESTRUCT(KMDataNode, node);
         rc = KMetadataOpenNodeRead(meta, &node, name);
         if (rc != 0) {
             if (GetRCState(rc) == rcNotFound ) {
@@ -1710,10 +355,9 @@ rc_t get_load_info(const KMetadata* meta, SraMeta* info)
             }
         }
     }
-
     if (rc == 0) {
         const char name[] = "LOAD/timestamp";
-        RELEASE(KMDataNode, node);
+        DESTRUCT(KMDataNode, node);
         rc = KMetadataOpenNodeRead(meta, &node, name);
         if (rc != 0) {
             if (GetRCState(rc) == rcNotFound ) {
@@ -1742,9 +386,7 @@ rc_t get_load_info(const KMetadata* meta, SraMeta* info)
             DISP_RC2(rc, name, "while calling KMetadataOpenNodeRead");
         }
     }
-
-    RELEASE(KMDataNode, node);
-
+    DESTRUCT(KMDataNode, node);
     return rc;
 }
 
@@ -1753,12 +395,9 @@ rc_t readStatsMetaNode(const KMDataNode* parent, const char* parentName,
     const char* name, uint64_t* result, bool quick, bool optional)
 {
     rc_t rc = 0;
-
     const KMDataNode* node = NULL;
-
     assert(parent && parentName && name && result);
-
-    rc = KMDataNodeOpenNodeRead(parent, &node, name);
+    rc = KMDataNodeOpenNodeRead (parent, &node, name);
     if (rc != 0)
     {
         if (GetRCState(rc) == rcNotFound && optional)
@@ -1772,74 +411,58 @@ rc_t readStatsMetaNode(const KMDataNode* parent, const char* parentName,
                 "parent=%s,child=%s", parentName, name));
         }
     }
-    else {
+    else
+    {
         rc = KMDataNodeReadAsU64(node, result);
-        if (GetRCObject(rc) == rcTransfer && GetRCState(rc) == rcIncomplete) {
-            *result = 0;
-            rc = 0;
-        }
         if ( rc != 0 && quick )
         {
             PLOGERR(klogInt, (klogInt, rc, "while reading $(parent)/$(child)",
                 "parent=%s,child=%s", parentName, name));
         }
     }
-
-    RELEASE(KMDataNode, node);
-
     return rc;
 }
-
 static
 rc_t readStatsMetaNodes(const KMDataNode* parent, const char* name,
                         SraStatsMeta* stats, bool quick)
 {
     rc_t rc = 0;
     const char* parentName = name;
-
     assert(parent && stats);
-
     if (parentName == NULL)
     {   parentName = "STATS/TABLE"; }
-
     if (rc == 0 && name) {
         stats->spot_group = strdup(name);
         if (stats->spot_group == NULL)
         {   rc = RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted); }
     }
-
     if (rc == 0) {
-        rc = readStatsMetaNode(parent,
-            parentName, "BASE_COUNT", &stats->BASE_COUNT, quick, false);
+        rc = readStatsMetaNode
+            (parent, parentName, "BASE_COUNT", &stats->BASE_COUNT, quick, false);
     }
     if (rc == 0) {
-        rc = readStatsMetaNode(parent,
-            parentName, "BIO_BASE_COUNT", &stats->BIO_BASE_COUNT, quick, false);
+        rc = readStatsMetaNode
+            (parent, parentName, "BIO_BASE_COUNT", &stats->BIO_BASE_COUNT, quick, false);
     }
     if (rc == 0) {
-        rc = readStatsMetaNode(parent,
-            parentName, "SPOT_COUNT", &stats->spot_count, quick, false);
+        rc = readStatsMetaNode
+            (parent, parentName, "SPOT_COUNT", &stats->spot_count, quick, false);
     }
     if (rc == 0) {
-        rc = readStatsMetaNode(parent,
-            parentName, "CMP_BASE_COUNT", &stats->CMP_BASE_COUNT, quick, true);
+        rc = readStatsMetaNode
+            (parent, parentName, "CMP_BASE_COUNT", &stats->CMP_BASE_COUNT, quick, true);
     }
-
     if (rc == 0)
     {   stats->found = true; }
     else { SraStatsMetaDestroy(stats); }
-
     return rc;
 }
-
 static
-rc_t get_stats_meta(const KMetadata* meta,
-    MetaDataStats* stats, bool quick)
+rc_t get_stats_meta(const KMetadata* meta, MetaDataStats* stats, bool quick)
 {
     rc_t rc = 0;
     assert(meta && stats);
     memset(stats, 0, sizeof *stats);
-
     if (rc == 0) {
         const char name[] = "STATS/TABLE";
         const KMDataNode* node = NULL;
@@ -1853,9 +476,8 @@ rc_t get_stats_meta(const KMetadata* meta,
         }
         if (rc == 0 && node)
         {   rc = readStatsMetaNodes(node, NULL, &stats->table, quick); }
-        RELEASE(KMDataNode, node);
+        DESTRUCT(KMDataNode, node);
     }
-
     if (rc == 0) {
         const char name[] = "STATS/SPOT_GROUP";
         const KMDataNode* parent = NULL;
@@ -1867,7 +489,6 @@ rc_t get_stats_meta(const KMetadata* meta,
             }
             DISP_RC2(rc, name, "while calling KMetadataOpenNodeRead");
         }
-
         if (rc == 0 && parent) {
             uint32_t count = 0, i = 0;
             KNamelist* names = NULL;
@@ -1885,7 +506,6 @@ rc_t get_stats_meta(const KMetadata* meta,
                     }
                 }
             }
-
             for (i = 0; i < count && rc == 0; ++i) {
                 const KMDataNode* node = NULL;
                 const char* child = NULL;
@@ -1900,16 +520,14 @@ rc_t get_stats_meta(const KMetadata* meta,
                     DISP_RC2(rc, child, "while calling KMDataNodeOpenNodeRead");
                 }
                 if (rc == 0) {
-                    rc = readStatsMetaNodes
-                        (node, child, &stats->spotGroup[i], quick);
+                    rc = readStatsMetaNodes(node, child, &stats->spotGroup[i], quick);
                 }
-                RELEASE(KMDataNode, node);
+                DESTRUCT(KMDataNode, node);
             }
-            RELEASE(KNamelist, names);
+            DESTRUCT(KNamelist, names);
         }
-        RELEASE(KMDataNode, parent);
+        DESTRUCT(KMDataNode, parent);
     }
-
     if (rc == 0) {
         uint32_t i = 0;
         bool found = stats->table.found;
@@ -1917,432 +535,208 @@ rc_t get_stats_meta(const KMetadata* meta,
         {   found = stats->spotGroup[i].found; }
         stats->found = found;
     }
-
     return rc;
 }
-
 static
-void srastatmeta_print(const MetaDataStats* meta, srastat_parms *pb)
+void srastatmeta_print(const MetaDataStats* meta,
+    const srastat_parms *pb)
 {
     uint32_t i = 0;
     assert(pb && meta);
-
-    if (meta->spotGroupN) {
-        for (i = 0; i < meta->spotGroupN; ++i) {
-            const SraStatsMeta* ss = &meta->spotGroup[i];
-            if (!pb->skip_members) {
-                const char* spot_group = "";
-                if (strcmp("default", ss->spot_group) != 0)
-                {   spot_group = ss->spot_group; }
-                if ((spot_group == NULL || spot_group[0] == '\0')
-                    && meta->spotGroupN > 1)
-                {
-                    /* skip an empty "extra" 'default' spot_group */
-                    if (ss->BASE_COUNT == 0     && ss->BIO_BASE_COUNT == 0 &&
-                        ss->CMP_BASE_COUNT == 0 && ss->spot_count == 0)
-                    {   continue; }
-                }
-                if (pb->xml) {
-                    if (pb->hasSPOT_GROUP) {
-                       OUTMSG(("  <Member member_name=\"%s\"", ss->spot_group));
-                       OUTMSG((" spot_count=\"%ld\" base_count=\"%ld\"",
-                            ss->spot_count, ss->BASE_COUNT));
-                       OUTMSG((" base_count_bio=\"%ld\"", ss->BIO_BASE_COUNT));
-                       if (ss->CMP_BASE_COUNT > 0) {
-                           OUTMSG((" cmp_base_count=\"%ld\"",
-                               ss->CMP_BASE_COUNT));
-                       }
-                       BAM_HEADER_RG_print_xml(&ss->BAM_HEADER);
-                       OUTMSG(("/>\n"));
-                    }
-                }
-                else {
-                    OUTMSG(("%s|%s|%ld:%ld:%ld|:|:|:\n",
-                        pb->table_path, spot_group, ss->spot_count,
-                        ss->BASE_COUNT, ss->BIO_BASE_COUNT));
-                }
-            }
-            pb->total.spot_count += ss->spot_count;
-            pb->total.BASE_COUNT += ss->BASE_COUNT;
-            pb->total.BIO_BASE_COUNT += ss->BIO_BASE_COUNT;
-            pb->total.total_cmp_len += ss->CMP_BASE_COUNT;
-        }
-    }
-    else {
-        if (!pb->xml && !(pb->quick && pb->skip_members)) {
-                const char* spot_group = "";
-                OUTMSG(("%s|%s|%ld:%ld:%ld|:|:|:\n",
-                        pb->table_path, spot_group, meta->table.spot_count,
-                        meta->table.BASE_COUNT, meta->table.BIO_BASE_COUNT));
-        }
-        pb->total.spot_count = meta->table.spot_count;
-        pb->total.BASE_COUNT = meta->table.BASE_COUNT;
-        pb->total.BIO_BASE_COUNT = meta->table.BIO_BASE_COUNT;
-        pb->total.total_cmp_len = meta->table.CMP_BASE_COUNT;
-    }
-}
-
-static
-void CC srastat_print( BSTNode* n, void* data )
-{
-    srastat_parms *pb = (srastat_parms*) data;
-    const SraStats *ss = (const SraStats*) n;
-    assert(pb && ss);
-    if (!pb->skip_members) {
+    for (i = 0; i < meta->spotGroupN; ++i) {
+        const SraStatsMeta *ss = &meta->spotGroup[i];
         if (pb->xml) {
             if (pb->hasSPOT_GROUP) {
                 OUTMSG(("  <Member member_name=\"%s\"", ss->spot_group));
-                OUTMSG((" spot_count=\"%ld\" base_count=\"%ld\"", ss->spot_count, ss->total_len));
-                OUTMSG((" base_count_bio=\"%ld\"", ss->bio_len));
-                OUTMSG((" spot_count_mates=\"%ld\" base_count_bio_mates=\"%ld\"", ss->spot_count_mates, ss->bio_len_mates));
-                OUTMSG((" spot_count_bad=\"%ld\" base_count_bio_bad=\"%ld\"", ss->bad_spot_count, ss->bad_bio_len));
-                OUTMSG((" spot_count_filtered=\"%ld\" base_count_bio_filtered=\"%ld\"",
-                    ss->filtered_spot_count, ss->filtered_bio_len));
-                if (ss->total_cmp_len > 0)
-                {   OUTMSG((" cmp_base_count=\"%ld\"", ss->total_cmp_len)); }
-                BAM_HEADER_RG_print_xml(&ss->BAM_HEADER);
-                OUTMSG(("/>\n"));
             }
+            OUTMSG((" spot_count=\"%ld\" base_count=\"%ld\"",
+                ss->spot_count, ss->BASE_COUNT));
+            OUTMSG((" base_count_bio=\"%ld\"", ss->BIO_BASE_COUNT));
+            if (ss->CMP_BASE_COUNT > 0)
+            {   OUTMSG((" cmp_base_count=\"%ld\"", ss->CMP_BASE_COUNT)); }
+            if (pb->hasSPOT_GROUP)
+            {   OUTMSG(("/>\n")); }
         }
         else {
-            OUTMSG(("%s|%s|%ld:%ld:%ld|%ld:%ld|%ld:%ld|%ld:%ld\n",
-                pb->table_path,ss->spot_group,ss->spot_count,ss->total_len,ss->bio_len,ss->spot_count_mates,ss->bio_len_mates,
-                ss->bad_spot_count,ss->bad_bio_len,ss->filtered_spot_count,ss->filtered_bio_len));
+            const char* spot_group = "";
+            if (strcmp("default", ss->spot_group) != 0)
+            {   spot_group = ss->spot_group; }
+            OUTMSG(("%s|%s|%ld:%ld:%ld|:|:|:\n",
+                pb->table_path, spot_group, ss->spot_count, ss->BASE_COUNT,
+                ss->BIO_BASE_COUNT));
         }
     }
-    pb->total.spot_count += ss->spot_count;
-    pb->total.spot_count_mates += ss->spot_count_mates;
-    pb->total.BIO_BASE_COUNT += ss->bio_len;
-    pb->total.bio_len_mates += ss->bio_len_mates;
-    pb->total.BASE_COUNT += ss->total_len;
-    pb->total.bad_spot_count += ss->bad_spot_count;
-    pb->total.bad_bio_len += ss->bad_bio_len;
-    pb->total.filtered_spot_count += ss->filtered_spot_count;
-    pb->total.filtered_bio_len += ss->filtered_bio_len;
-    pb->total.total_cmp_len += ss->total_cmp_len;
 }
-
 static
-rc_t process_align_info(const char* indent, const Ctx* ctx)
+void CC srastat_print( BSTNode* n, void* data )
 {
-    rc_t rc = 0;
-    uint32_t count = 0;
-    int i = 0;
-    const VDBDependencies* dep = NULL;
-
-    assert(indent && ctx);
-
-    if (ctx->db == NULL) {
-        return rc;
-    }
-
-    rc = VDatabaseListDependencies(ctx->db, &dep, false);
-    DISP_RC2(rc, ctx->pb->table_path,
-        "while calling VDatabaseListDependencies");
-
-    rc = VDBDependenciesCount(dep, &count);
-    if (rc) {
-        DISP_RC(rc, "while calling VDBDependenciesCount");
-        return rc;
-    }
-
-
-    OUTMSG(("%s<AlignInfo>\n", indent));
-
-    for (i = 0; i < count && rc == 0; ++i) {
-        bool circular = false;
-        const char* name = NULL;
-        const char* path = NULL;
-        bool local = false;
-        const char* seqId = NULL;
-
-        rc = VDBDependenciesCircular(dep, &circular, i);
-        if (rc != 0) {
-            DISP_RC(rc, "while calling VDBDependenciesCircular");
-            break;
-        }
-        rc = VDBDependenciesName(dep, &name, i);
-        if (rc != 0) {
-            DISP_RC(rc, "while calling VDBDependenciesName");
-            break;
-        }
-        rc = VDBDependenciesPath(dep, &path, i);
-        if (rc != 0) {
-            DISP_RC(rc, "while calling VDBDependenciesPath");
-            break;
-        }
-        rc = VDBDependenciesLocal(dep, &local, i);
-        if (rc != 0) {
-            DISP_RC(rc, "while calling VDBDependenciesLocal");
-            break;
-        }
-        rc = VDBDependenciesSeqId(dep, &seqId, i);
-        if (rc != 0) {
-            DISP_RC(rc, "while calling VDBDependenciesSeqId");
-            break;
-        }
-
-        OUTMSG((
-            "%s  <Ref seqId=\"%s\" name=\"%s\" circular=\"%s\" local=\"%s\"",
-            indent, seqId, name, (circular ? "true" : "false"),
-            (local ? "local" : "remote")));
-        if (path && path[0]) {
-            OUTMSG((" path=\"%s\"", path));
+   const srastat_parms *pb = (const srastat_parms*) data;
+   const SraStats *ss = ( const SraStats* ) n;
+   assert(pb && ss);
+   if (pb->xml) {
+        if (pb->hasSPOT_GROUP) {
+            OUTMSG(("  <Member member_name=\"%s\"", ss->spot_group));
+        }
+        OUTMSG((" spot_count=\"%ld\" base_count=\"%ld\"", ss->spot_count, ss->total_len));
+        OUTMSG((" base_count_bio=\"%ld\"", ss->bio_len));
+        OUTMSG((" spot_count_mates=\"%ld\" base_count_bio_mates=\"%ld\"", ss->spot_count_mates, ss->bio_len_mates));
+        OUTMSG((" spot_count_bad=\"%ld\" base_count_bio_bad=\"%ld\"", ss->bad_spot_count, ss->bad_bio_len));
+        OUTMSG((" spot_count_filtered=\"%ld\" base_count_bio_filtered=\"%ld\"", ss->filtered_spot_count, ss->filtered_bio_len));
+        if (ss->total_cmp_len > 0)
+        {   OUTMSG((" cmp_base_count=\"%ld\"", ss->total_cmp_len)); }
+        if (pb->hasSPOT_GROUP) {
+            OUTMSG(("/>\n"));
         }
-        OUTMSG(("/>\n"));
     }
+    else {
+        OUTMSG(("%s|%s|%ld:%ld:%ld|%ld:%ld|%ld:%ld|%ld:%ld\n",
+            pb->table_path,ss->spot_group,ss->spot_count,ss->total_len,ss->bio_len,ss->spot_count_mates,ss->bio_len_mates,
+            ss->bad_spot_count,ss->bad_bio_len,ss->filtered_spot_count,ss->filtered_bio_len));
+    }
+}
 
-    OUTMSG(("%s</AlignInfo>\n", indent));
-
-    RELEASE(VDBDependencies, dep);
+static
+int CC srastats_cmp ( const void *item, const BSTNode *n )
+{
+    const char *sg = item;
+    const SraStats *ss = ( const SraStats* ) n;
 
-    return rc;
+    return strcmp(sg,ss->spot_group);
 }
 
 static
-rc_t print_results(const Ctx* ctx)
+void print_results(srastat_parms* pb, const BSTree* tr,
+    const SraSizeStats* sizes, const SraMeta* info,
+    const MetaDataStats* meta, const SraStatsTotal* total)
 {
-    rc_t rc = 0;
-    bool mismatch = false;
-
-    assert(ctx && ctx->pb
-        && ctx->tr && ctx->sizes && ctx->info && ctx->meta && ctx->total);
+    assert(pb && tr && sizes && info && meta && total);
 
-    if (ctx->pb->quick) {
-        if ( ! ctx->meta -> found )
+    if (pb->quick) {
+        if ( ! meta -> found )
             LOGMSG(klogWarn, "Statistics metadata not found");
         else
         {
-            ctx->pb->hasSPOT_GROUP = ctx->meta->spotGroupN > 1 ||
-                (ctx->meta->spotGroupN == 1
-                 && strcmp("default", ctx->meta->spotGroup[0].spot_group) != 0);
+            pb->hasSPOT_GROUP = meta->spotGroupN > 1 ||
+                (meta->spotGroupN == 1
+                 && strcmp("default", meta->spotGroup[0].spot_group) != 0);
         }
     }
-
-    if (ctx->meta->found && ! ctx->pb->quick) {
+    if (meta->found)
+    {
         bool mismatch = false;
-        SraStats* ss = (SraStats*)BSTreeFind(ctx->tr, "", srastats_cmp);
-        const SraStatsMeta* m = &ctx->meta->table;
-        if (ctx->total->BASE_COUNT != m->BASE_COUNT
-            || ctx->total->BIO_BASE_COUNT != m->BIO_BASE_COUNT
-            || ctx->total->spot_count != m->spot_count
-            || ctx->total->total_cmp_len != m->CMP_BASE_COUNT)
+        SraStats* ss = (SraStats*)BSTreeFind(tr, "", srastats_cmp);
+        const SraStatsMeta* m = &meta->table;
+        if (total->BASE_COUNT != m->BASE_COUNT
+            || total->BIO_BASE_COUNT != m->BIO_BASE_COUNT
+            || total->spot_count != m->spot_count
+            || total->total_cmp_len != m->CMP_BASE_COUNT)
         { mismatch = true; }
         if (ss != NULL) {
-            const SraStatsMeta* m = &ctx->meta->table;
-            uint32_t i = 0;
-            for (i = 0; i < ctx->meta->spotGroupN && !mismatch; ++i) {
-                const char* spot_group = "";
-                m = &ctx->meta->spotGroup[i];
-                assert(m);
-                if (strcmp("default", m->spot_group) != 0)
-                {   spot_group = m->spot_group; }
-                ss = (SraStats*)BSTreeFind(ctx->tr, spot_group, srastats_cmp);
-                if (ss == NULL) {
-                    mismatch = true;
-                    break;
-                }
-                if (ss->total_len != m->BASE_COUNT
-                    || ss->bio_len != m->BIO_BASE_COUNT
-                    || ss->spot_count != m->spot_count
-                    || ss->total_cmp_len != m->CMP_BASE_COUNT)
-                {
-                    mismatch = true;
-                    break;
+            const SraStatsMeta* m = &meta->table;
+            if (ss->total_len != m->BASE_COUNT
+                || ss->bio_len != m->BIO_BASE_COUNT
+                || ss->spot_count != m->spot_count
+                || ss->total_cmp_len != m->CMP_BASE_COUNT)
+            { mismatch = true; }
+            else {
+                uint32_t i = 0;
+                for (i = 0; i < meta->spotGroupN && !mismatch; ++i) {
+                    const char* spot_group = "";
+                    m = &meta->spotGroup[i];
+                    assert(m);
+                    if (strcmp("default", m->spot_group) != 0)
+                    {   spot_group = m->spot_group; }
+                    ss = (SraStats*)BSTreeFind(tr, spot_group, srastats_cmp);
+                    if (ss == NULL) {
+                        mismatch = true;
+                        break;
+                    }
+                    if (ss->total_len != m->BASE_COUNT
+                        || ss->bio_len != m->BIO_BASE_COUNT
+                        || ss->spot_count != m->spot_count
+                        || ss->total_cmp_len != m->CMP_BASE_COUNT)
+                    {
+                        mismatch = true;
+                        break;
+                    }
                 }
             }
         }
+        if (mismatch) {
+            LOGMSG(klogWarn,
+                "Mismatch between calculated and recorded statistics");
+        }
     }
 
-    if (ctx->pb->xml) {
-        OUTMSG(("<Run accession=\"%s\"", ctx->pb->table_path));
-        if (!ctx->pb->quick || ! ctx->meta->found) {
+    if (pb->xml) {
+        OUTMSG(("<Run accession=\"%s\"", pb->table_path));
+        if (!pb->quick || ! meta->found) {
             OUTMSG((" read_length=\"%s\"",
-                ctx->pb->variableReadLength ? "variable" : "fixed"));
-        }
-        if (ctx->pb->quick) {
-            OUTMSG((" spot_count=\"%ld\" base_count=\"%ld\"",
-                ctx->meta->table.spot_count, ctx->meta->table.BASE_COUNT));
-            OUTMSG((" base_count_bio=\"%ld\"",
-                ctx->meta->table.BIO_BASE_COUNT));
-            if (ctx->meta->table.CMP_BASE_COUNT > 0) {
-                OUTMSG((" cmp_base_count=\"%ld\"",
-                    ctx->meta->table.CMP_BASE_COUNT));
-            }
-        }
-        else {
-            OUTMSG((" spot_count=\"%ld\" base_count=\"%ld\"",
-                ctx->total->spot_count, ctx->total->BASE_COUNT));
-            OUTMSG((" base_count_bio=\"%ld\"", ctx->total->BIO_BASE_COUNT));
-            OUTMSG((" spot_count_mates=\"%ld\" base_count_bio_mates=\"%ld\"",
-                ctx->total->spot_count_mates, ctx->total->bio_len_mates));
-            OUTMSG((" spot_count_bad=\"%ld\" base_count_bio_bad=\"%ld\"",
-                ctx->total->bad_spot_count, ctx->total->bad_bio_len));
-            OUTMSG((
-                " spot_count_filtered=\"%ld\" base_count_bio_filtered=\"%ld\"",
-                ctx->total->filtered_spot_count, ctx->total->filtered_bio_len));
-            if (ctx->total->total_cmp_len > 0) {
-                OUTMSG((" cmp_base_count=\"%ld\"", ctx->total->total_cmp_len));
-            }
-        }
-        OUTMSG((">\n"));
-    }
-    else if (ctx->pb->skip_members) {
-        if (ctx->pb->quick) {
-            OUTMSG(("%s||%ld:%ld:%ld|:|:|:\n",
-                ctx->pb->table_path, ctx->meta->table.spot_count,
-                ctx->meta->table.BASE_COUNT, ctx->meta->table.BIO_BASE_COUNT));
-        }
-        else {
-            OUTMSG(("%s||%ld:%ld:%ld|%ld:%ld|%ld:%ld|%ld:%ld\n",
-                ctx->pb->table_path,
-                ctx->total->spot_count, ctx->total->BASE_COUNT,
-                ctx->total->BIO_BASE_COUNT,
-                ctx->total->spot_count_mates, ctx->total->bio_len_mates,
-                ctx->total->bad_spot_count, ctx->total->bad_bio_len,
-                ctx->total->filtered_spot_count, ctx->total->filtered_bio_len));
+                pb->variableReadLength ? "variable" : "fixed"));
         }
+        if (pb->hasSPOT_GROUP)
+        {   OUTMSG((">\n")); }
     }
 
-    if (ctx->pb->quick && ctx->meta->found) {
-        memset(&ctx->pb->total, 0, sizeof ctx->pb->total);
-        rc = parse_bam_header(ctx->db, meta_RG_callback, ctx->meta);
-        srastatmeta_print(ctx->meta, ctx->pb);
-        if (ctx->pb->total.spot_count != ctx->meta->table.spot_count ||
-            ctx->pb->total.BIO_BASE_COUNT != ctx->meta->table.BIO_BASE_COUNT ||
-            ctx->pb->total.BASE_COUNT != ctx->meta->table.BASE_COUNT ||
-            ctx->pb->total.total_cmp_len != ctx->meta->table.CMP_BASE_COUNT)
-        {
-            rc = RC(rcExe, rcData, rcValidating, rcData, rcUnequal);
-        }
-        assert(rc == 0);
-    }
-    else {
-        memset(&ctx->pb->total, 0, sizeof ctx->pb->total);
-        rc = parse_bam_header(ctx->db, tree_RG_callback, ctx->tr);
-        BSTreeForEach(ctx->tr, false, srastat_print, ctx->pb);
-        if (ctx->meta->found) {
-            const SraStatsMeta* m = &ctx->meta->table;
-            if (ctx->pb->total.BASE_COUNT != m->BASE_COUNT
-                || ctx->pb->total.BIO_BASE_COUNT != m->BIO_BASE_COUNT
-                || ctx->pb->total.spot_count != m->spot_count
-                || ctx->pb->total.total_cmp_len != m->CMP_BASE_COUNT)
-            {
-                mismatch = true;
-            }
-        }
-        if (ctx->pb->total.spot_count != ctx->total->spot_count ||
-            ctx->pb->total.spot_count_mates != ctx->total->spot_count_mates ||
-            ctx->pb->total.BIO_BASE_COUNT != ctx->total->BIO_BASE_COUNT ||
-            ctx->pb->total.bio_len_mates != ctx->total->bio_len_mates ||
-            ctx->pb->total.BASE_COUNT != ctx->total->BASE_COUNT ||
-            ctx->pb->total.bad_spot_count != ctx->total->bad_spot_count ||
-            ctx->pb->total.bad_bio_len != ctx->total->bad_bio_len ||
-            ctx->pb->total.filtered_spot_count
-                != ctx->total->filtered_spot_count ||
-            ctx->pb->total.filtered_bio_len != ctx->total->filtered_bio_len ||
-            ctx->pb->total.total_cmp_len != ctx->total->total_cmp_len)
-        {
-            rc = RC(rcExe, rcData, rcValidating, rcData, rcUnequal);
-        }
-        assert(rc == 0);
-    }
+    if (pb->quick && meta->found)
+    {   srastatmeta_print(meta, pb); }
+    else { BSTreeForEach(tr, false, srastat_print, pb); }
 
-    if (ctx->pb->xml) {
-        if (ctx->sizes) {
-            OUTMSG(("  <Size value=\"%lu\" units=\"bytes\"/>\n",
-                ctx->sizes->size));
+    if (pb->xml) {
+        if (!pb->hasSPOT_GROUP)
+        {   OUTMSG((">")); }
+        if (sizes) {
+            if (!pb->hasSPOT_GROUP)
+            {   OUTMSG(("\n")); }
+            OUTMSG(("  <Size value=\"%lu\" units=\"bytes\"/>\n", sizes->size));
         }
-        if (ctx->pb->printMeta && ctx->info->tblVersion >= 0) {
+        if (pb->printMeta && info->tblVersion >= 0) {
             OUTMSG(("  <Table vers=\"%d\">\n    <Meta vers=\"%d\">\n",
-                ctx->info->tblVersion, ctx->info->metaVersion));
-            if (ctx->info->formatter.name[0] || ctx->info->formatter.vers[0] ||
-                ctx->info->loader.date[0] || ctx->info->loader.name[0] ||
-                ctx->info->loader.vers[0])
+                info->tblVersion, info->metaVersion));
+            if (info->formatter.name[0] || info->formatter.vers[0] ||
+                info->loader.date[0] || info->loader.name[0] ||
+                info->loader.vers[0])
             {
                 OUTMSG(("      <SOFTWARE>\n"));
-                if (ctx->info->formatter.name[0] ||
-                    ctx->info->formatter.vers[0])
-                {
+                if (info->formatter.name[0] || info->formatter.vers[0]) {
                     OUTMSG(("        <formatter"));
-                    if (ctx->info->formatter.name[0])
-                    {   OUTMSG((" name=\"%s\"", ctx->info->formatter.name)); }
-                    if (ctx->info->formatter.vers[0])
-                    {   OUTMSG((" vers=\"%s\"", ctx->info->formatter.vers)); }
+                    if (info->formatter.name[0])
+                    {   OUTMSG((" name=\"%s\"", info->formatter.name)); }
+                    if (info->formatter.vers[0])
+                    {   OUTMSG((" vers=\"%s\"", info->formatter.vers)); }
                     OUTMSG(("/>\n"));
                 }
-                if (ctx->info->loader.date[0] || ctx->info->loader.name[0] ||
-                    ctx->info->loader.vers[0])
+                if (info->loader.date[0] || info->loader.name[0] ||
+                    info->loader.vers[0])
                 {
                     OUTMSG(("        <loader"));
-                    if (ctx->info->loader.date[0])
-                    {   OUTMSG((" date=\"%s\"", ctx->info->loader.date)); }
-                    if (ctx->info->loader.name[0])
-                    {   OUTMSG((" name=\"%s\"", ctx->info->loader.name)); }
-                    if (ctx->info->loader.vers[0])
-                    {   OUTMSG((" vers=\"%s\"", ctx->info->loader.vers)); }
+                    if (info->loader.date[0])
+                    {   OUTMSG((" date=\"%s\"", info->loader.date)); }
+                    if (info->loader.name[0])
+                    {   OUTMSG((" name=\"%s\"", info->loader.name)); }
+                    if (info->loader.vers[0])
+                    {   OUTMSG((" vers=\"%s\"", info->loader.vers)); }
                     OUTMSG(("/>\n"));
                 }
                 OUTMSG(("      </SOFTWARE>\n"));
             }
-            if (ctx->info->loadTimestamp) {
+            if (info->loadTimestamp) {
                 char       buf[80];
-                struct tm* ts = localtime(&ctx->info->loadTimestamp);
+                struct tm* ts = localtime(&info->loadTimestamp);
                 strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", ts);
                 OUTMSG(("      <LOAD timestamp=\"%lX\">%s</LOAD>\n",
-                    ctx->info->loadTimestamp, buf));
+                    info->loadTimestamp, buf));
             }
             OUTMSG(("    </Meta>\n  </Table>\n"));
         }
-        if (rc == 0 && !ctx->pb->quick) {
-            BasesPrint(&ctx->total->bases_count, ctx->total->BASE_COUNT, "  ");
-        }
-        if (rc == 0 && !ctx->pb->skip_alignment) {
-            rc = process_align_info("  ", ctx);
-        }
-        if (rc == 0 && ctx->pb->statistics) {
-            rc = SraStatsTotalPrintStatistics(ctx->total, "  ", ctx->pb->test);
-        }
-        if (rc == 0 && ctx->pb->print_arcinfo) {
-            const ArcInfo* a = ctx->arc_info;
-            uint32_t i;
-            char b[1024];
-            time_t ts = a->timestamp;
-            struct tm* tm = localtime(&ts);
-
-            if( tm == NULL ) {
-                rc = RC(rcExe, rcData, rcReading, rcParam, rcInvalid);
-            }
-            else {
-                size_t k = strftime(b, sizeof(b), "%Y-%m-%dT%H:%M:%S", tm);
-                OUTMSG(("  <Archive timestamp=\"%.*s\"", k, b));
-                for(i = 0; i < sizeof(a->i) / sizeof(a->i[0]); i++) {
-                    OUTMSG((" size.%s=\"%lu\" md5.%s=\"%s\"",
-                        a->i[i].tag, a->i[i].size, a->i[i].tag, a->i[i].md5));
-                }
-                OUTMSG((" />\n"));
-            }
-        }
-        if (rc == 0)
-        {   rc = QualityStatsPrint(&ctx->quality, "  "); }
-        if (rc == 0)
-        {   rc = TableCountsPrint(&ctx->tables, "  "); }
         OUTMSG(("</Run>\n"));
     }
-    if (mismatch && ctx->pb->start == 0 && ctx->pb->stop == 0) {
-        /* check mismatch just when no --start, --stop specified */
-        LOGMSG(klogWarn,
-            "Mismatch between calculated and recorded statistics");
-    }
-    return rc;
 }
 
 static
 void CC bst_whack_free ( BSTNode *n, void *ignore )
 {
-    SraStats* ss = (SraStats*)n;
-    BAM_HEADER_RG_free(&ss->BAM_HEADER);
-    free(ss);
+    free ( n );
 }
 
 static 
@@ -2372,17 +766,6 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
     const SRAColumn* cREAD_TYPE = NULL;
     const SRAColumn* cSPOT_GROUP = NULL;
 
-    int g_nreads = 0;
-    spotid_t n_spots = 0;
-    spotid_t start = pb->start, stop = pb->stop;
-
-    /* filled with dREAD_LEN[i] for (spotid == start);
-       used to check fixedReadLength */
-    uint64_t g_totalREAD_LEN[MAX_NREADS];
-    uint64_t g_nonZeroLenReads[MAX_NREADS];
-    memset(g_totalREAD_LEN, 0, sizeof g_totalREAD_LEN);
-    memset(g_nonZeroLenReads, 0, sizeof g_nonZeroLenReads);
-
     assert(pb && tbl && tr && total);
 
     if (rc == 0) {
@@ -2435,23 +818,18 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                 rc = SRATableMaxSpotId(tbl, &spotid);
                 DISP_RC(rc, "failed to read max spot id");
                 if (rc == 0) {
-                    BasesInit(&total->bases_count, tbl);
-                }
-                if (rc == 0) {
-                    bool bad_read_filter = false;
-                    bool fixedNReads = true;
                     bool fixedReadLength = true;
-
+                    int g_nreads = 0;
                     uint32_t g_dREAD_LEN[MAX_NREADS];
 
                     memset(g_dREAD_LEN, 0, sizeof g_dREAD_LEN);
 
-                    if (start == 0)
-                    {   start = 1; }
-                    if (stop == 0 || pb -> stop > spotid)
-                    {   stop = spotid; }
+                    if (pb->start == 0)
+                    {   pb->start = 1; }
+                    if (pb->stop == 0 || pb -> stop > spotid)
+                    {   pb->stop = spotid; }
 
-                    for (spotid = start; spotid <= stop && rc == 0;
+                    for (spotid = pb->start; spotid <= pb->stop && rc == 0;
                         ++spotid)
                     {
                         SraStats* ss;
@@ -2485,16 +863,16 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                             int i, bio_len, bio_count, bad_cnt, filt_cnt;
                             memcpy(dREAD_LEN, ((const char*)base) + (boff>>3), row_bits>>3);
                             nreads = (row_bits >> 3) / sizeof(*dREAD_LEN);
-                            if (spotid == start) {
+                            if (spotid == pb->start) {
                                 g_nreads = nreads;
-                                if (pb->statistics) {
-                                    rc = SraStatsTotalMakeStatistics
-                                        (total, g_nreads);
-                                }
                             }
+#if 0
                             else if (g_nreads != nreads) {
-                                fixedNReads = false;
+                                rc = RC(rcExe, rcTable, rcReading, rcData, rcInconsistent);
+                                PLOGERR(klogInt, (klogInt, rc,
+                                    "spot=$(spot), ReadNumber=$(n), previous=$(prev)", "spot=%lu,n=%d,prev=%d", spotid, nreads, g_nreads));
                             }
+#endif
 
                             if (rc == 0) {
                                 rc = SRAColumnRead(cREAD_TYPE, spotid, &base, &boff, &row_bits);
@@ -2518,6 +896,7 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                                     DISP_RC_Read(rc, SPOT_GROUP, spotid, "while calling SRAColumnRead");
                                     if (rc == 0) {
                                         if (row_bits > 0) {
+                                            pb -> hasSPOT_GROUP = 1;
                                             if (boff & 7)
                                             {   rc = RC(rcExe, rcColumn, rcReading, rcOffset, rcInvalid); }
                                             if (row_bits & 7)
@@ -2526,12 +905,8 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                                             {   rc = RC(rcExe, rcColumn, rcReading, rcBuffer, rcInsufficient); }
                                             DISP_RC_Read(rc, SPOT_GROUP, spotid, "after calling SRAColumnRead");
                                             if (rc == 0) {
-                                                int n = row_bits >> 3;
                                                 memcpy(dSPOT_GROUP,((const char*)base) + (boff>>3),row_bits>>3);
-                                                dSPOT_GROUP[n]='\0';
-                                                if (n > 1 ||
-                                                    (n == 1 && dSPOT_GROUP[0]))
-                                                {   pb -> hasSPOT_GROUP = 1; }
+                                                dSPOT_GROUP[row_bits>>3]='\0';
                                             }
                                         }
                                         else {  dSPOT_GROUP[0]='\0'; }
@@ -2544,42 +919,15 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                                     rc = SRAColumnRead(cRD_FILTER, spotid, &base, &boff, &row_bits);
                                     DISP_RC_Read(rc, RD_FILTER, spotid, "while calling SRAColumnRead");
                                     if (rc == 0) {
-                                        int size = row_bits >> 3;
                                         if (boff & 7)
                                         {   rc = RC(rcExe, rcColumn, rcReading, rcOffset, rcInvalid); }
                                         if (row_bits & 7)
                                         {   rc = RC(rcExe, rcColumn, rcReading, rcSize, rcInvalid); }
-                                        if (size > sizeof dRD_FILTER)
+                                        if ((row_bits >> 3) > sizeof(dRD_FILTER))
                                         {   rc = RC(rcExe, rcColumn, rcReading, rcBuffer, rcInsufficient); }
                                         DISP_RC_Read(rc, RD_FILTER, spotid, "after calling SRAColumnRead");
-                                        if (rc == 0) {
-                                            memcpy(dRD_FILTER,((const char*)base) + (boff>>3), size);
-                                            if (size < nreads) {
-                                                /* RD_FILTER is expected to have nreads elements */
-                                                if (size == 1) {
-                                                    /* fill all RD_FILTER elements with RD_FILTER[0] */
-                                                    int i = 0;
-                                                    for (i = 1; i < nreads; ++i) {
-                                                        memcpy(dRD_FILTER + i,
-                                                            ((const char*)base) + (boff>>3), 1);
-                                                    }
-                                                    if (!bad_read_filter) {
-                                                        bad_read_filter = true;
-                                                        PLOGMSG(klogWarn, (klogWarn, "RD_FILTER column"
-                                                            " size is 1 but it is expected to be $(n)",
-                                                            "n=%d", nreads));
-                                                    }
-                                                }
-                                                else { /* something really bad with RD_FILTER column:
-                                                          let's pretend it does not exist */
-                                                    cRD_FILTER = NULL;
-                                                    bad_read_filter = true;
-                                                    PLOGMSG(klogWarn, (klogWarn, "RD_FILTER column size"
-                                                        " is $(real) but it is expected to be $(exp)",
-                                                        "real=%d,exp=%d", size, nreads));
-                                                }
-                                            }
-                                        }
+                                        if (rc == 0)
+                                        {   memcpy(dRD_FILTER,((const char*)base) + (boff>>3),row_bits>>3); }
                                     } else { break; }
                                 }
 
@@ -2632,21 +980,11 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                                 ss->total_cmp_len += cmp_len;
                                 total->total_cmp_len += cmp_len;
 
-                                BasesAdd(&total->bases_count, spotid);
-
-                                if (pb->statistics) {
-                                    SraStatsTotalAdd(total, dREAD_LEN, nreads);
-                                }
                                 for (bio_len = bio_count = i = bad_cnt = filt_cnt = 0; (i < nreads) && (rc == 0); i++) {
-                                    if (dREAD_LEN[i] > 0) {
-                                        g_totalREAD_LEN[i] += dREAD_LEN[i];
-                                        ++g_nonZeroLenReads[i];
-                                    }
-                                    if (spotid == start) {
+                                    if (spotid == pb->start) {
                                         g_dREAD_LEN[i] = dREAD_LEN[i];
                                     }
-                                    else if (g_dREAD_LEN[i] != dREAD_LEN[i])
-                                    {   fixedReadLength = false; }
+                                    else if (g_dREAD_LEN[i] != dREAD_LEN[i]) { fixedReadLength = false; }
 
                                     if (dREAD_LEN[i] > 0) {
                                         bool biological = false;
@@ -2663,17 +1001,13 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                                                     break;
                                                 case SRA_READ_FILTER_REJECT:
                                                 case SRA_READ_FILTER_CRITERIA:
-                                                    if (biological) {
-                                                        ss->bad_bio_len += dREAD_LEN[i];
-                                                        total->bad_bio_len += dREAD_LEN[i];
-                                                    }
+                                                    if (biological)
+                                                    {   ss->bad_bio_len += dREAD_LEN[i]; }
                                                     bad_cnt++;
                                                     break;
                                                 case SRA_READ_FILTER_REDACTED:
-                                                    if (biological) {
-                                                        ss->filtered_bio_len += dREAD_LEN[i];
-                                                        total->filtered_bio_len += dREAD_LEN[i];
-                                                    }
+                                                    if (biological)
+                                                    {   ss->filtered_bio_len += dREAD_LEN[i]; }
                                                     filt_cnt++;
                                                     break;
                                                 default:
@@ -2689,105 +1023,36 @@ rc_t sra_stat(srastat_parms* pb, const SRATable* tbl,
                                 ss->bio_len += bio_len;
                                 total->BIO_BASE_COUNT += bio_len;
                                 if (bio_count > 1) {
-                                    ++ss->spot_count_mates;
-                                    ++total->spot_count_mates;
+                                    ss->spot_count_mates++;
                                     ss->bio_len_mates += bio_len;
-                                    total->bio_len_mates += bio_len;
-                                }
-                                if (bad_cnt) {
-                                    ss->bad_spot_count++;
-                                    total->bad_spot_count++;
-                                }
-                                if (filt_cnt) {
-                                    ss->filtered_spot_count++;
-                                    total->filtered_spot_count++;
                                 }
+                                if (bad_cnt)
+                                {   ss->bad_spot_count++; }
+                                if (filt_cnt)
+                                {   ss->filtered_spot_count++; }
                             }
                         }
-                    } /* for (spotid = start; spotid <= stop && rc == 0; ++spotid) */
+                    }
+    /******* Output Results here ************/
 
                     if (rc == 0) {
-                        BasesFinalize(&total->bases_count);
                         pb->variableReadLength = !fixedReadLength;
-
-                        /* --- g_totalREAD_LEN[i] is sum(READ_LEN[i]) for all spots --- */
-                        if (fixedNReads) {
-                            int i = 0;
-                            if (stop >= start) {
-                                n_spots = stop - start + 1;
-                            }
-                            if (n_spots > 0) {
-                                for (i = 0; i < g_nreads && rc == 0; ++i) {
-                                    if (fixedReadLength) {
-                                        assert(g_totalREAD_LEN[i] / n_spots
-                                            == g_dREAD_LEN[i]);
-                                    }
-                                }
-                            }
-                        }
                     }
                 }
-                RELEASE(SRAColumn, cSPOT_GROUP);
+                SRAColumnRelease(cSPOT_GROUP);
             }
         }
     }
 
-    RELEASE(SRAColumn, cPRIMARY_ALIGNMENT_ID);
-    RELEASE(SRAColumn, cRD_FILTER);
-    RELEASE(SRAColumn, cREAD_TYPE);
-    RELEASE(SRAColumn, cREAD_LEN);
-
-    if (pb->test) {
-        int i = 0;
-        spotid_t spotid = 0;
-        double average[MAX_NREADS];
-        double diff_sq[MAX_NREADS];
-        SraStatsTotalStatistics2Init(total,
-            g_nreads, g_totalREAD_LEN, g_nonZeroLenReads);
-        memset(diff_sq, 0, sizeof diff_sq);
-        for (i = 0; i < g_nreads; ++i) {
-            average[i] = (double)g_totalREAD_LEN[i] / n_spots;
-        }
-        if (rc == 0) {
-            const char* name = READ_LEN;
-            rc = SRATableOpenColumnRead(tbl, &cREAD_LEN, name, vdb_uint32_t);
-            DISP_RC2(rc, name, "while calling SRATableOpenColumnRead");
-        }
-        for (spotid = start; spotid <= stop && rc == 0; ++spotid) {
-            uint32_t dREAD_LEN[MAX_NREADS];
-            const void* base;
-            bitsz_t boff, row_bits;
-            if (rc == 0) {
-                rc = SRAColumnRead(cREAD_LEN, spotid, &base, &boff, &row_bits);
-                DISP_RC_Read(rc, READ_LEN, spotid,
-                    "while calling SRAColumnRead");
-            }
-            if (rc == 0) {
-                memcpy(dREAD_LEN, ((const char*)base) + (boff>>3), row_bits>>3);
-            }
-            for (i = 0; i < g_nreads; ++i) {
-                diff_sq[i] +=
-                    (dREAD_LEN[i] - average[i]) * (dREAD_LEN[i] - average[i]);
-            }
-            SraStatsTotalAdd2(total, dREAD_LEN);
-        }
-        RELEASE(SRAColumn, cREAD_LEN);
-    }
+    DESTRUCT(SRAColumn, cPRIMARY_ALIGNMENT_ID);
+    DESTRUCT(SRAColumn, cRD_FILTER);
+    DESTRUCT(SRAColumn, cREAD_TYPE);
+    DESTRUCT(SRAColumn, cREAD_LEN);
 
     return rc;
 }
 
 static
-void CtxRelease(Ctx* ctx)
-{
-    assert(ctx);
-
-    QualityStatsRelease(&ctx->quality);
-    TableCountsRelease(&ctx->tables);
-
-    memset(ctx, 0, sizeof *ctx);
-}
-static
 rc_t run(srastat_parms* pb)
 {
     rc_t rc = 0;
@@ -2802,7 +1067,6 @@ rc_t run(srastat_parms* pb)
     }
     else {
         SraSizeStats sizes;
-        ArcInfo arc_info;
         SraMeta info;
         const SRATable* tbl = NULL;
 
@@ -2816,14 +1080,11 @@ rc_t run(srastat_parms* pb)
             SraStatsTotal total;
             const KTable* ktbl = NULL;
             const KMetadata* meta = NULL;
-            const VTable* vtbl = NULL;
-            const VDatabase* db = NULL;
 
-            BSTree tr;
-            Ctx ctx;
+            bool quick = pb -> quick;
 
+            BSTree tr;
             BSTreeInit(&tr);
-            memset(&ctx, 0, sizeof ctx);
 
             memset(&total, 0, sizeof total);
 
@@ -2834,22 +1095,12 @@ rc_t run(srastat_parms* pb)
                 DISP_RC(rc, "While calling KTableOpenMetadataRead");
             }
             if (rc == 0) {
-                rc = SRATableGetVTableRead(tbl, &vtbl);
-                DISP_RC2(rc, pb->table_path,
-                    "while calling SRATableGetVTableRead");
-            }
-            if (rc == 0) {
-                rc = VTableOpenParentRead(vtbl, &db);
-                DISP_RC2(rc, pb->table_path,
-                    "while calling VTableOpenParentRead");
-            }
-            if (rc == 0) {
-                rc = get_stats_meta(meta, &stats, pb->quick);
+                rc = get_stats_meta(meta, &stats, quick);
                 if (rc == 0) {
-                    if (pb->quick && !stats.found) {
+                    if (quick && !stats.found) {
                         LOGMSG(klogWarn, "Statistics metadata not found: "
                             "performing full table scan");
-                        pb->quick = false;
+                        quick = false;
                     }
                 }
                 rc = 0;
@@ -2858,55 +1109,26 @@ rc_t run(srastat_parms* pb)
             {   rc = get_size(tbl, &sizes); }
             if (rc == 0 && pb->printMeta)
             {   rc = get_load_info(meta, &info); }
-            if (rc == 0 && !pb->quick)
+            if (rc == 0 && !quick)
             {   rc = sra_stat(pb, tbl, &tr, &total); }
-            if (rc == 0 && pb->print_arcinfo ) {
-                rc = get_arc_info(mgr, pb->table_path, tbl, &arc_info);
-            }
-            if (rc == 0) {
-                rc = QualityStatsRead(&ctx.quality, meta);
-                if (rc == 0)
-                {   QualityStatsSort(&ctx.quality); }
-            }
-            if (rc == 0) {
-                rc = TableCountsRead(&ctx.tables, db);
-                if (rc == 0)
-                {   TableCountsSort(&ctx.tables); }
-            }
-            if (rc == 0) {
-                ctx.db = db;
-                ctx.info = &info;
-                ctx.meta = &stats;
-                ctx.pb = pb;
-                ctx.sizes = &sizes;
-                ctx.total = &total;
-                ctx.arc_info = &arc_info;
-                ctx.tr = &tr;
-                rc = print_results(&ctx);
-            }
+            if (rc == 0)
+            {   print_results(pb, &tr, &sizes, &info, &stats, &total); }
             BSTreeWhack(&tr, bst_whack_free, NULL);
-            SraStatsTotalFree(&total);
-            RELEASE(VDatabase, db);
-            RELEASE(VTable, vtbl);
-            RELEASE(KTable, ktbl);
-            {
-                int i; 
-                for (i = 0; i < stats.spotGroupN; ++i) {
-                    SraStatsMetaDestroy(&stats.spotGroup[i]);
-                }
-
-                SraStatsMetaDestroy(&stats.table);
-
-                free(stats.spotGroup);
-                stats.spotGroup = NULL;
-            }
-            CtxRelease(&ctx);
-            RELEASE(KMetadata, meta);
+            DESTRUCT(KMetadata, meta);
+            DESTRUCT(KTable, ktbl);
+        }
+        {
+            rc_t rc2 = SRATableRelease(tbl);
+            if (rc == 0)
+            {   rc = rc2; }
         }
-        RELEASE(SRATable, tbl);
     }
 
-    RELEASE(SRAMgr, mgr);
+    {
+        rc_t rc2 = SRAMgrRelease(mgr);
+        if (rc == 0)
+        {   rc = rc2; }
+    }
 
     return rc;
 }
@@ -2925,57 +1147,40 @@ ver_t CC KAppVersion ( void )
 
 /* Usage
  */
-#define OPTION_ALIGN "alignment"
 #define OPTION_SPT_D "spot-desc"
-#define OPTION_MEMBR "member-stats"
 #define OPTION_META  "meta"
 #define OPTION_QUICK "quick"
 #define OPTION_START "start"
-#define OPTION_STATS "statistics"
 #define OPTION_STOP  "stop"
-#define OPTION_TEST  "test"
 #define OPTION_XML   "xml"
-#define OPTION_ARCINFO "archive-info"
 
-#define ALIAS_ALIGN "a"
 #define ALIAS_SPT_D "d"
-#define ALIAS_MEMBR NULL
 #define ALIAS_META  "m"
 #define ALIAS_QUICK "q"
 #define ALIAS_START "b"
-#define ALIAS_STATS "s"
 #define ALIAS_STOP  "e"
-#define ALIAS_TEST  "t"
 #define ALIAS_XML   "x"
-#define ALIAS_ARCINFO NULL
 
-static const char * align_usage[] = { "print alignment info, default is on", NULL };
+
 static const char * spt_d_usage[] = { "print table spot descriptor", NULL };
-static const char * membr_usage[] = { "print member stats, default is on", NULL };
 static const char * meta_usage[] = { "print load metadata", NULL };
-static const char * start_usage[] = { "starting spot id, default is 1", NULL };
-static const char * stop_usage[] = { "ending spot id, default is max", NULL };
-static const char * stats_usage[] = { "calculate READ_LEN average and standard deviation", NULL };
-static const char * quick_usage[] = { "quick mode: get statistics from metadata;", "do not scan the table", NULL };
-static const char * test_usage[] = { "test READ_LEN average and standard deviation calculation", NULL };
-static const char * xml_usage[] = { "output as XML, default is text", NULL };
-static const char * arcinfo_usage[] = { "output archive info, default is off", NULL };
+static const char * start_usage[] = { "starting spot id ( default 1 )", NULL };
+static const char * stop_usage[] = { "ending spot id ( default max )", NULL };
+static const char * quick_usage[] ={ "quick mode: get statistics from metadata",
+                                        "not to scan the table", NULL };
+static const char * xml_usage[] = { "output as XML (default is text)", NULL };
 
 OptDef Options[] =
 {
-      { OPTION_ALIGN, ALIAS_ALIGN, NULL, align_usage, 1, true , false }
-    , { OPTION_SPT_D, ALIAS_SPT_D, NULL, spt_d_usage, 1, false, false }
-    , { OPTION_MEMBR, ALIAS_MEMBR, NULL, membr_usage, 1, true , false }
-    , { OPTION_ARCINFO, ALIAS_ARCINFO, NULL, arcinfo_usage, 0, false, false }
+      { OPTION_SPT_D, ALIAS_SPT_D, NULL, spt_d_usage, 1, false, false }
     , { OPTION_META,  ALIAS_META,  NULL, meta_usage,  1, false, false }
     , { OPTION_QUICK, ALIAS_QUICK, NULL, quick_usage, 1, false, false }
     , { OPTION_START, ALIAS_START, NULL, start_usage, 1, true,  false }
-    , { OPTION_STATS, ALIAS_STATS, NULL, stats_usage, 1, false, false }
     , { OPTION_STOP,  ALIAS_STOP,  NULL, stop_usage,  1, true,  false }
-    , { OPTION_TEST , ALIAS_TEST , NULL, test_usage,  1, false, false }
-    , { OPTION_XML,   ALIAS_XML,   NULL, xml_usage,   1, false, false }
+    , { OPTION_XML,   ALIAS_XML,   NULL, xml_usage,   0, false, false }
 };
 
+
 rc_t CC UsageSummary (const char * progname)
 {
     return KOutMsg (
@@ -3011,11 +1216,6 @@ rc_t CC Usage (const Args * args)
     HelpOptionLine (ALIAS_STOP, OPTION_STOP, "row-id", stop_usage);
     HelpOptionLine (ALIAS_META, OPTION_META, NULL, meta_usage);
     HelpOptionLine (ALIAS_QUICK, OPTION_QUICK, NULL, quick_usage);
-    HelpOptionLine (ALIAS_MEMBR, OPTION_MEMBR, "on | off", membr_usage);
-    HelpOptionLine (ALIAS_ARCINFO, OPTION_ARCINFO, NULL, arcinfo_usage);
-    HelpOptionLine (ALIAS_STATS, OPTION_STATS, NULL, stats_usage);
-    HelpOptionLine (ALIAS_ALIGN, OPTION_ALIGN, "on | off", align_usage);
-    KOutMsg ("\n");
     HelpOptionsStandard ();
     HelpVersion (fullpath, KAppVersion());
     return rc;
@@ -3102,73 +1302,16 @@ rc_t CC KMain ( int argc, char *argv [] )
             if (pcount)
                 pb.printMeta = true;
 
-            rc = ArgsOptionCount (args, OPTION_MEMBR, &pcount);
-            if (rc)
-                break;
-
-            if (pcount) {
-                const char* v = NULL;
-                rc = ArgsOptionValue (args, OPTION_MEMBR, 0, &v);
-                if (rc)
-                    break;
-                if (!strcmp(v, "off")) {
-                    pb.skip_members = true;
-                }
-            }
-
-            rc = ArgsOptionCount (args, OPTION_ARCINFO, &pcount);
-            if (rc)
-                break;
-
-            pb.print_arcinfo = pcount > 0;
-
-            rc = ArgsOptionCount (args, OPTION_ALIGN, &pcount);
-            if (rc)
-                break;
-
-            if (pcount) {
-                const char* v = NULL;
-                rc = ArgsOptionValue (args, OPTION_ALIGN, 0, &v);
-                if (rc)
-                    break;
-                if (!strcmp(v, "off")) {
-                    pb.skip_alignment = true;
-                }
-            }
-
-            rc = ArgsOptionCount (args, OPTION_STATS, &pcount);
-            if (rc)
-                break;
-
-            if (pcount)
-                pb.statistics = true;
-
-            rc = ArgsOptionCount (args, OPTION_TEST, &pcount);
-            if (rc)
-                break;
-
-            if (pcount)
-                pb.test = pb.statistics = true;
-
             rc = ArgsParamCount (args, &pcount);
             if (rc)
                 break;
 
-            if (pcount == 0) {
-                MiniUsage (args);
-                exit(1);
-            }
+            if (pcount == 0)
+                return MiniUsage (args);
 
             rc = ArgsParamValue (args, 0, &pb.table_path);
             if (rc)
                 break;
-
-            if (pb.statistics && (pb.quick || ! pb.xml)) {
-                KOutMsg("\n--" OPTION_STATS
-                    " option can be used just in XML NON-QUICK mode\n");
-                MiniUsage (args);
-                exit(1);
-            }
         } while (0);
     }
 
diff --git a/tools/sra-stat/sra-stat.vers b/tools/sra-stat/sra-stat.vers
index f90b1af..8dbb0f2 100644
--- a/tools/sra-stat/sra-stat.vers
+++ b/tools/sra-stat/sra-stat.vers
@@ -1 +1 @@
-2.3.2
+2.1.10
diff --git a/tools/sra-stat/sra-stat.vers.h b/tools/sra-stat/sra-stat.vers.h
new file mode 100644
index 0000000..83e9dcd
--- /dev/null
+++ b/tools/sra-stat/sra-stat.vers.h
@@ -0,0 +1 @@
+#define SRA_STAT_VERS 0x0201000A
diff --git a/tools/srapath/Makefile b/tools/srapath/Makefile
deleted file mode 100644
index 2e346aa..0000000
--- a/tools/srapath/Makefile
+++ /dev/null
@@ -1,96 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/srapath
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS =
-
-EXT_TOOLS = \
-	srapath
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# srapath
-#  vdb table copy tool
-#
-SRAPATH_SRC = \
-	srapath
-
-SRAPATH_OBJ = \
-	$(addsuffix .$(OBJX),$(SRAPATH_SRC))
-
-SRAPATH_LIB += \
-	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib
-
-$(BINDIR)/srapath: $(SRAPATH_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(SRAPATH_LIB)
diff --git a/tools/srapath/srapath.c b/tools/srapath/srapath.c
deleted file mode 100644
index 0bc7b30..0000000
--- a/tools/srapath/srapath.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "srapath.vers.h"
-
-#include <vfs/resolver.h>
-#include <vfs/path.h>
-#include <vfs/manager.h>
-#include <kfs/directory.h>
-#include <kfs/defs.h>
-#include <kfg/config.h>
-#include <sra/impl.h>
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <klib/text.h>
-#include <klib/log.h>
-#include <klib/out.h>
-#include <klib/status.h> /* STSMSG */
-#include <klib/rc.h>
-#include <sysalloc.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-#include <limits.h> /* PATH_MAX */
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-/* Version  EXTERN
- *  return 4-part version code: 0xMMmmrrrr, where
- *      MM = major release
- *      mm = minor release
- *    rrrr = bug-fix release
- */
-ver_t CC KAppVersion ( void )
-{
-    return SRAPATH_VERS;
-}
-
-const char UsageDefaultName[] = "srapath";
-
-rc_t CC UsageSummary (const char * progname)
-{
-    return OUTMSG(("\n"
-        "Usage:\n"
-        "  %s [options] <accession> ...\n\n"
-        "Summary:\n"
-        "  Tool to produce a list of full paths to files\n"
-        "  (SRA and WGS runs, refseqs: reference sequences)\n"
-        "  from list of NCBI accessions.\n"
-        "\n", progname));
-}
-
-rc_t CC Usage(const Args *args) {
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    rc_t rc;
-
-    if (args == NULL) {
-        rc = RC (rcExe, rcArgv, rcAccessing, rcSelf, rcNull);
-    }
-    else {
-        rc = ArgsProgram(args, &fullpath, &progname);
-    }
-
-    if (rc != 0) {
-        progname = fullpath = UsageDefaultName;
-    }
-
-    UsageSummary(progname);
-
-    OUTMSG((
-        "  Output paths are ordered according to accession list.\n"
-        "\n"
-        "  The accession search path will be determined according to the\n"
-        "  configuration. It will attempt to find files in local and site\n"
-        "  repositories, and will also check remote repositories for run\n"
-        "  location.\n"));
-    OUTMSG((
-        "  This tool produces a path that is 'likely' to be a run, in that\n"
-        "  an entry exists in the file system at the location predicted.\n"
-        "  It is possible that this path will fail to produce success upon\n"
-        "  opening a run if the path does not point to a valid object.\n\n"));
-
-    OUTMSG(("Options:\n"));
-
-    HelpOptionsStandard();
-
-    HelpVersion(fullpath, KAppVersion());
-
-    return rc;
-}
-
-/* KMain
- */
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args * args;
-    rc_t rc;
-
-    rc = ArgsMakeAndHandle (&args, argc, argv, 0);
-    if (rc)
-        LOGERR (klogInt, rc, "failed to parse arguments");
-    else do
-    {
-        uint32_t acount;
-        rc = ArgsParamCount (args, &acount);
-        if (rc)
-        {
-            LOGERR (klogInt, rc, "failed to count parameters");
-            break;
-        }
-
-        if (acount == 0)
-        {
-            rc = MiniUsage (args);
-            break;
-        }
-        else
-        {
-            VFSManager* mgr;
-            rc = VFSManagerMake(&mgr);
-            if (rc)
-                LOGERR ( klogErr, rc, "failed to create VFSManager object" );
-            else
-            {
-                VResolver * resolver;
-
-                rc = VFSManagerGetResolver (mgr, &resolver);
-                if (rc == 0)
-                {
-                    uint32_t ix;
-                    for ( ix = 0; ix < acount; ++ ix )
-                    {
-                        const char * pc;
-                        rc = ArgsParamValue (args, ix, &pc );
-                        if (rc)
-                            LOGERR (klogInt, rc,
-                                    "failed to retrieve parameter value");
-                        else
-                        {
-                            const VPath * upath;
-
-                            rc = VPathMakeSysPath ((VPath**)&upath, pc);
-                            if (rc == 0)
-                            {
-                                const VPath * rpath;
-
-                                rc = VResolverLocal (resolver, upath, &rpath);
-                                if (rc == 0) {
-                                    STSMSG(1, ("'%s': found locally", pc));
-                                }
-                                else if (GetRCState(rc) == rcNotFound) {
-                                    STSMSG(1, ("'%s': not found locally", pc));
-                                    rc = VResolverRemote(resolver,
-                                        upath, &rpath, NULL);
-                                    if (rc == 0) {
-                                        STSMSG(1, ("'%s': found remotely", pc));
-                                    }
-                                    else if (GetRCState(rc) == rcNotFound) {
-                                        STSMSG(1,
-                                            ("'%s': not found remotely", pc));
-                                    }
-                                    else {
-                                        STSMSG(1, ("'%s': "
-                                            "error resolving remotely: %R",
-                                            pc, rc));
-                                    }
-                                }
-                                else {
-                                    STSMSG(1, (
-                                        "'%s': error resolving locally: %R",
-                                        pc, rc));
-                                }
-
-                                if (rc == 0)
-                                {
-                                    const String * s;
-
-                                    rc = VPathMakeString (rpath, &s);
-                                    if (rc == 0)
-                                    {
-                                        OUTMSG (("%S\n", s));
-                                        free ((void*)s);
-                                    }
-                                }
-                                else
-                                {
-                                    KDirectory * cwd;
-                                    rc_t orc = VFSManagerGetCWD (mgr, &cwd);
-                                    if (orc == 0)
-                                    {
-                                        KPathType kpt
-                                            = KDirectoryPathType(cwd, "%s", pc);
-                                        switch (kpt &= ~kptAlias)
-                                        {
-                                        case kptNotFound:
-                                            STSMSG(1, ("'%s': not found while "
-                                                "searching the file system",
-                                                pc));
-                                            break;
-                                        case kptBadPath:
-                                            STSMSG(1, ("'%s': bad path while "
-                                                "searching the file system",
-                                                pc));
-                                            break;
-                                        default:
-                                            STSMSG(1, ("'%s': "
-                                                "found in the file system",
-                                                pc));
-                                            rc = 0;
-                                            break;
-                                        }
-                                    }
-                                    if (orc == 0 && rc == 0) {
-                                    if (rc != 0) {
-                                        PLOGMSG(klogErr, (klogErr,
-                                            "'$(name)': not found",
-                                            "name=%s", pc));
-                                    }
-                                    else {
-                                        char resolved[PATH_MAX] = "";
-                                        rc = KDirectoryResolvePath(cwd, true,
-                                            resolved, sizeof resolved, pc);
-                                        if (rc == 0) {
-                                            STSMSG(1, ("'%s': found in "
-                                                "the current directory at '%s'",
-                                                pc, resolved));
-                                            OUTMSG (("%s\n", resolved));
-                                        }
-                                        else {
-                                            STSMSG(1, ("'%s': cannot resolve "
-                                                "in the current directory",
-                                                pc));
-                                            OUTMSG (("./%s\n", pc));
-                                        }
-                                    }
-                                    }
-                                    KDirectoryRelease(cwd);
-                                }
-                                VPathRelease (rpath);
-                                VPathRelease (upath);
-                            }
-                        }
-                    }
-                    VResolverRelease (resolver);
-                }
-                VFSManagerRelease(mgr);
-            }
-        }
-        ArgsWhack (args);
-
-    } while (0);
-
-    return rc;
-}
diff --git a/tools/srapath/srapath.vers b/tools/srapath/srapath.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/srapath/srapath.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/util/Makefile b/tools/util/Makefile
index c970fde..d285adc 100644
--- a/tools/util/Makefile
+++ b/tools/util/Makefile
@@ -36,9 +36,7 @@ EXT_TOOLS = \
 	rcexplain \
 	kdbmeta \
 	vdb-lock \
-	vdb-unlock \
-	test-sra \
-	vdb-passwd
+	vdb-unlock
 
 ALL_TOOLS = \
 	$(INT_TOOLS) \
@@ -47,38 +45,25 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
 
-.PHONY: all std $(ALL_TOOLS)
+all std: makedirs vers-includes
+	@ $(MAKE_CMD) $(TARGDIR)/std
 
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-        $(addprefix $(BINDIR)/,$(ALL_TOOLS))
+$(ALL_TOOLS): makedirs vers-includes
+	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: $(TARGDIR)/all
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
 #
 $(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
+	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
 
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -105,12 +90,6 @@ RCEXPLAIN_OBJ = \
 
 RCEXPLAIN_LIB = \
 	-skapp \
-	-svfs \
-	-skurl \
-	-skrypto \
-	-skfg \
-	-skfs \
-	-sksproc \
 	-sklib
 
 $(BINDIR)/rcexplain: $(RCEXPLAIN_OBJ)
@@ -127,15 +106,15 @@ KDBMETA_OBJ = \
 	$(addsuffix .$(OBJX),$(KDBMETA_SRC))
 
 KDBMETA_LIB = \
+	-ssrapath \
 	-skapp \
-	-lwkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
+	-skdb \
 	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib
+	-skfs \
+	-sklib \
+	-ldl \
+	-lz \
+	-lbz2
 
 $(BINDIR)/kdbmeta: $(KDBMETA_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(KDBMETA_LIB)
@@ -152,17 +131,17 @@ VDB_LOCK_OBJ = \
 	$(addsuffix .$(OBJX),$(VDB_LOCK_SRC))
 
 VDB_LOCK_LIB = \
+	-ssrapath \
 	-skapp \
 	-lwvdb \
 	-lwkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
-	-lkproc \
 	-lklib \
-	-lm
+	-lkproc \
+	-ldl \
+	-lz \
+	-lbz2
 
 $(BINDIR)/vdb-lock: $(VDB_LOCK_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_LOCK_LIB)
@@ -179,70 +158,38 @@ VDB_UNLOCK_OBJ = \
 	$(addsuffix .$(OBJX),$(VDB_UNLOCK_SRC))
 
 VDB_UNLOCK_LIB = \
+	-ssrapath \
 	-skapp \
 	-lwvdb \
 	-lwkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
-	-lkproc \
 	-lklib \
-	-lm
+	-lkproc \
+	-ldl \
+	-lz \
+	-lbz2
 
 $(BINDIR)/vdb-unlock: $(VDB_UNLOCK_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_UNLOCK_LIB)
 
-#-------------------------------------------------------------------------------
-# test-sra: print config, resolve sra, check dependencies
-#
 
-T_SRC = \
-	test-sra
-
-T_OBJ = \
-	$(addsuffix .$(OBJX),$(T_SRC))
-
-T_LIB = \
-	-lkapp \
-	-dalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
-	-lsradb \
-	-lvdb \
-	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-dksrch \
-	-lkproc \
-	-lklib \
-	-lm
-
-$(BINDIR)/test-sra: $(T_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(T_LIB)
-
-#----------------------------------------------------------------
-# vdb-passwd
+#-------------------------------------------------------------------------------
+# testld - test dynamic load of libraries
 #
-VDB_PASSWD_SRC = \
-	vdb-passwd \
-	syspass
+TESTLD_SRC = \
+	testld
 
-VDB_PASSWD_OBJ = \
-	$(addsuffix .$(OBJX),$(VDB_PASSWD_SRC))
+TESTLD_OBJ = \
+	$(addsuffix .$(OBJX),$(TESTLD_SRC))
 
-VDB_PASSWD_LIB = \
+TESTLD_LIB = \
 	-skapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-sksproc \
-	-lklib
+	-skfs \
+	-sklib \
+	-ldl \
+	-lz \
+	-lbz2
 
-$(BINDIR)/vdb-passwd: $(VDB_PASSWD_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_PASSWD_LIB)
+$(BINDIR)/testld: $(TESTLD_OBJ)
+	$(LD) --exe -o $@ $^ $(TESTLD_LIB)
diff --git a/tools/util/kdbmeta.c b/tools/util/kdbmeta.c
index 27fd8ca..a1d4bf3 100644
--- a/tools/util/kdbmeta.c
+++ b/tools/util/kdbmeta.c
@@ -32,15 +32,6 @@
  * for the "big loop"
  */
 
-
-/* The original intention of this tool was to support updating nodes.
-   This was later removed with the thought that this functionality would
-   be better implemented by another tool.
-
-   Going to temporarily add it in...
-*/
-#define ALLOW_UPDATE 1
-
 #include "kdbmeta.vers.h"
 
 #include <sra/srapath.h>
@@ -70,24 +61,25 @@
 #include <assert.h>
 #include <ctype.h>
 
-/* use cpp define CONST */
-#undef CONST
-#if ALLOW_UPDATE
-#define CONST
-#else
-#define CONST const
-#endif
 
-typedef struct KDBMetaParms KDBMetaParms;
-struct KDBMetaParms
+enum
+{
+    kptMetadata = kptColumn + 1,
+    kptPrereleaseTbl
+};
+
+
+typedef struct KDBMetaConst KDBMetaConst;
+struct KDBMetaConst
 {
-    CONST KDBManager *mgr;
-    CONST KMetadata *md;
+    const KDBManager *mgr;
+    const KMetadata *md;
     const char *targ;
     const Vector *q;
     rc_t rc;
 };
 
+
 /* select reporting
  */
 static bool xml_ish = true;
@@ -95,8 +87,6 @@ static int indent_lvl;
 static int tabsz = 2;
 static const char *spaces = "                                ";
 static bool as_unsigned = false;
-static const char *table_arg = NULL;
-static bool read_only_arg = true;
 
 static
 void indent ( void )
@@ -117,25 +107,13 @@ void indent ( void )
 static
 void node_open ( const char *path, size_t plen )
 {
-    if ( plen && path[plen - 1] == '/' ) {
-    /* do not use trailing slash */
-        --plen;
-    }
     if ( xml_ish )
     {
-        int size = plen;
         /* find leaf name of node */
         const char *slash = string_rchr ( path, plen, '/' );
-        if ( slash ) {
-            /* make sure not to print trailing slash */
-            size = plen - (slash - path) - 1;
-            if ( size < 0 ) {
-                size = 0;
-            }
-        }
 
         indent ();
-        OUTMSG (( "<%.*s", size, ( slash != NULL ) ? slash + 1 : path ));
+        OUTMSG (( "<%s", ( slash != NULL ) ? slash + 1 : path ));
     }
 }
 
@@ -143,26 +121,16 @@ static
 void node_close ( const char *path, size_t plen,
     size_t vsize, uint32_t num_children, bool close_indent )
 {
-    if ( plen && path[plen - 1] == '/' ) {
-        --plen;
-    }
     if ( xml_ish )
     {
         if ( vsize == 0 && num_children == 0 )
             OUTMSG (( "/>\n" ));
         else
         {
-            int size = plen;
             const char *slash = string_rchr ( path, plen, '/' );
-            if ( slash ) {
-                size = plen - (slash - path) - 1;
-                if ( size < 0 ) {
-                    size = 0;
-                }
-            }
             if ( close_indent )
                 indent ();
-            OUTMSG (( "</%.*s>\n", size, ( slash != NULL ) ? slash + 1 : path ));
+            OUTMSG (( "</%s>\n", ( slash != NULL ) ? slash + 1 : path ));
         }
     }
 }
@@ -360,9 +328,6 @@ rc_t md_select_expr ( const KMDataNode *node, char *path, size_t psize, int plen
 
             /* close it off */
             node_close ( path, plen, 0, 0, false );
-
-            /* Exit here if an attribute was requested in query */
-            return 0;
         }
         else
         {
@@ -511,182 +476,68 @@ rc_t md_select_expr ( const KMDataNode *node, char *path, size_t psize, int plen
     return 0;
 }
 
-#if ALLOW_UPDATE
-static
-rc_t md_update_expr ( KMDataNode *node, const char *path, const char *attr, const char *expr )
-{
-    rc_t rc;
-
-    /* according to documentation, "expr" is allowed to be text
-       or text with escaped hex sequences. examine for escaped hex */
-    size_t len = string_size ( expr );
-    char *buff = malloc ( len + 1 );
-    if ( buff == NULL )
-        rc = RC ( rcExe, rcMetadata, rcUpdating, rcMemory, rcExhausted );
-    else
-    {
-        size_t i, j;
-        for ( i = j = 0; i < len; ++ i, ++ j )
-        {
-            if ( ( buff [ j ] = expr [ i ] ) == '\\' )
-            {
-                /* we know "expr" is NUL-terminated, so this is safe */
-                if ( tolower ( expr [ i + 1 ] ) == 'x' &&
-                     isxdigit ( expr [ i + 2 ] ) &&
-                     isxdigit ( expr [ i + 3 ] ) )
-                {
-                    int msn = toupper ( expr [ i + 2 ] ) - '0';
-                    int lsn = toupper ( expr [ i + 3 ] ) - '0';
-                    if ( msn >= 10 )
-                        msn += '0' - 'A' + 10;
-                    if ( lsn >= 10 )
-                        lsn += '0' - 'A' + 10;
-                    buff [ j ] = ( char ) ( ( msn << 4 ) | lsn );
-                    i += 3;
-                }
-            }
-        }
-
-        if ( attr != NULL )
-        {
-            /* set attribute value */
-            buff [ j ] = 0;
-            rc = KMDataNodeWriteAttr ( node, attr, buff );
-        }
-        else
-        {
-            /* now set the value of the node */
-            rc = KMDataNodeWrite ( node, buff, j );
-        }
-        free ( buff );
-    }
-
-    return rc;
-}
-#endif
-
 static
 bool CC md_select ( void *item, void *data )
 {
     bool fail = true;
-    KDBMetaParms *pb = data;
-
-    CONST KMDataNode *node;
-#if ALLOW_UPDATE
-    bool read_only = true;
-    if ( ! read_only_arg ) {
-        pb -> rc = KMetadataOpenNodeUpdate ( pb -> md, & node, NULL );
-        if ( pb -> rc == 0 )
-            read_only = false;
-    }
-#endif
-    if ( read_only )
-        pb -> rc = KMetadataOpenNodeRead ( pb -> md, ( const KMDataNode** ) & node, NULL );
+    KDBMetaConst *pb = data;
+
+    const KMDataNode *node;
+    pb -> rc = KMetadataOpenNodeRead ( pb -> md, & node, NULL );
     if ( pb -> rc != 0 )
         PLOGERR ( klogErr,  (klogErr, pb -> rc, "failed to open root node for '$(path)'", "path=%s", pb -> targ ));
     else
     {
-        bool wildcard;
-        char *expr, *attr, path [ 4096 ];
-        size_t len = string_copy_measure ( path, sizeof path, item );
+        const char *expr = ( const void* ) item;
+        const char *attr = strchr ( expr, '@' );
 
-        /* detect assignment */
-        expr = string_rchr ( path, len, '=' );
-        if ( expr != NULL )
-        {
-            len = expr - path;
-            * expr ++ = 0;
-        }
-        attr = string_rchr ( path, len, '@' );
-        if ( attr != NULL )
-        {
-            len = attr - path;
-            * attr ++ = 0;
-        }
+        size_t len;
+        char path [ 4096 ];
 
-        if ( expr != NULL )
-        {
-#if ALLOW_UPDATE
-            if ( read_only )
-            {
-                PLOGMSG ( klogWarn, ( klogWarn, "node update expressions are not supported - "
-                                      "'$(path)' is read-only - "
-                                      "'$(expr)' treated as select."
-                                      , "path=%s,expr=%s", pb -> targ, item ) );
-                expr = NULL;
-            }
-#else
-            PLOGMSG ( klogWarn, ( klogWarn, "node update expressions are not supported - "
-                                  "'$(expr)' treated as select.", "expr=%s", item ) );
-            expr = NULL;
-#endif
-        }
-
-        wildcard = false;
-        if ( len >= 1 && path [ len - 1 ] == '*' )
-        {
-            if ( len == 1 )
-            {
-                path [ len = 0 ] = 0;
-                wildcard = true;
-            }
-            else if ( len >= 2 && path [ len - 2 ] == '/' )
-            {
-                path [ len -= 2 ] = 0;
-                wildcard = true;
-            }
-        }
-
-#if ALLOW_UPDATE
-        if ( expr != NULL )
+        pb -> rc = attr == NULL ?
+            string_printf ( path, sizeof path, & len, "%s", expr ):
+            string_printf ( path, sizeof path, & len, "%.*s", ( uint32_t ) ( attr ++ - expr ), expr );
+        if ( pb -> rc != 0 )
+            PLOGERR ( klogErr,  (klogErr, pb -> rc, "failed to evaluate query '$(expr)'", "expr=%s", expr ));
+        else
         {
-            KMDataNode *root = node;
-
-            if ( wildcard || len == 0 )
+            bool wildcard = false;
+            if ( len >= 1 && path [ len - 1 ] == '*' )
             {
-                pb -> rc = RC ( rcExe, rcMetadata, rcUpdating, rcExpression, rcIncorrect );
-                PLOGERR ( klogErr, ( klogErr, pb -> rc, "node updates require explicit paths - "
-                                     "'$(expr)' cannot be evaluated", "expr=%s", item ) );
-                return true;
+                if ( len == 1 )
+                {
+                    path [ len = 0 ] = 0;
+                    wildcard = true;
+                }
+                else if ( len >= 2 && path [ len - 2 ] == '/' )
+                {
+                    path [ len -= 2 ] = 0;
+                    wildcard = true;
+                }
             }
 
-            pb -> rc = KMDataNodeOpenNodeUpdate ( root, & node, path );
-            KMDataNodeRelease ( root );
-
-            if ( pb -> rc != 0 )
-            {
-                PLOGERR ( klogErr,  (klogErr, pb -> rc, "failed to open node '$(node) for '$(path)'",
-                                     "node=%s,path=%s", path, pb -> targ ));
-            }
+            if ( len == 0 )
+                pb -> rc = md_select_expr ( node, path, sizeof path, len, attr, wildcard );
             else
             {
-                pb -> rc = md_update_expr ( node, path, attr, expr );
-            }
-        }
-        else
-#endif
-
-        if ( len == 0 )
-            pb -> rc = md_select_expr ( node, path, sizeof path, len, attr, wildcard );
-        else
-        {
-            const KMDataNode *root = node;
-            pb -> rc = KMDataNodeOpenNodeRead ( root, ( const KMDataNode** ) & node, path );
-            KMDataNodeRelease ( root );
+                const KMDataNode *root = node;
+                pb -> rc = KMDataNodeOpenNodeRead ( root, & node, path );
+                KMDataNodeRelease ( root );
 
-            if ( pb -> rc != 0 )
-            {
-                PLOGERR ( klogErr,  (klogErr, pb -> rc, "failed to open node '$(node) for '$(path)'",
-                                     "node=%s,path=%s", path, pb -> targ ));
-            }
-            else
-            {
-                pb -> rc = md_select_expr ( node, path, sizeof path, len, attr, wildcard );
+                if ( pb -> rc != 0 )
+                {
+                    PLOGERR ( klogErr,  (klogErr, pb -> rc, "failed to open node '$(node) for '$(path)'",
+                                         "node=%s,path=%s", path, pb -> targ ));
+                }
+                else
+                {
+                    pb -> rc = md_select_expr ( node, path, sizeof path, len, attr, wildcard );
+                }
             }
-        }
 
-        if ( pb -> rc == 0 )
-            fail = false;
+            if ( pb -> rc == 0 )
+                fail = false;
+        }
 
         KMDataNodeRelease ( node );
     }
@@ -695,38 +546,17 @@ bool CC md_select ( void *item, void *data )
 }
 
 static
-rc_t col_select ( KDBMetaParms * pb)
+rc_t col_select ( KDBMetaConst * pb)
 {
-    CONST KColumn *col;
+    const KColumn *col;
     rc_t rc;
 
-    bool read_only = true;
-
-#if ALLOW_UPDATE
-    if ( ! read_only_arg ) {
-        read_only = false;
-
-        rc = KDBManagerOpenColumnUpdate ( pb -> mgr, & col, pb->targ );
-        if ( rc != 0 )
-            read_only = true;
-    }
-#endif
-    if ( read_only )
-        rc = KDBManagerOpenColumnRead ( pb -> mgr, ( const KColumn** ) & col, pb->targ );
+    rc = KDBManagerOpenColumnRead ( pb -> mgr, & col, pb->targ );
     if ( rc != 0 )
         PLOGERR ( klogErr,  (klogErr, rc, "failed to open column '$(col)'", "col=%s", pb->targ ));
     else
     {
-#if ALLOW_UPDATE
-        if ( ! read_only_arg ) {
-            read_only = false;
-            rc = KColumnOpenMetadataUpdate ( col, & pb -> md );
-            if ( rc != 0 )
-                read_only = true;
-        }
-#endif
-        if ( read_only )
-            rc = KColumnOpenMetadataRead ( col, ( const KMetadata** ) & pb -> md );
+        rc = KColumnOpenMetadataRead ( col, & pb -> md );
         if ( rc != 0 )
             PLOGERR ( klogErr,  (klogErr, rc, "failed to open metadata for column '$(col)'", "col=%s", pb->targ ));
         else
@@ -747,39 +577,17 @@ rc_t col_select ( KDBMetaParms * pb)
 }
 
 static
-rc_t tbl_select ( KDBMetaParms * pb)
+rc_t tbl_select ( KDBMetaConst * pb)
 {
-    CONST KTable *tbl;
+    const KTable *tbl;
     rc_t rc;
 
-    bool read_only = true;
-
-#if ALLOW_UPDATE
-    if ( ! read_only_arg ) {
-        read_only = false;
-
-        rc = KDBManagerOpenTableUpdate ( pb -> mgr, & tbl, pb->targ );
-        if ( rc != 0 )
-            read_only = true;
-    }
-#endif
-    if ( read_only )
-        rc = KDBManagerOpenTableRead ( pb -> mgr, ( const KTable** ) & tbl, pb->targ );
+    rc = KDBManagerOpenTableRead ( pb -> mgr, & tbl, pb->targ );
     if ( rc != 0 )
         PLOGERR ( klogErr,  (klogErr, rc, "failed to open table '$(tbl)'", "tbl=%s", pb->targ ));
     else
     {
-        read_only = true;
-#if ALLOW_UPDATE
-        if ( ! read_only_arg ) {
-            read_only = false;
-            rc = KTableOpenMetadataUpdate ( tbl, & pb -> md );
-            if ( rc != 0 )
-                read_only = true;
-        }
-#endif
-        if ( read_only )
-            rc = KTableOpenMetadataRead ( tbl, ( const KMetadata** ) & pb -> md );
+        rc = KTableOpenMetadataRead ( tbl, & pb -> md );
         if ( rc != 0 )
             PLOGERR ( klogErr,  (klogErr, rc, "failed to open metadata for table '$(tbl)'", "tbl=%s", pb->targ ));
         else
@@ -800,94 +608,29 @@ rc_t tbl_select ( KDBMetaParms * pb)
 }
 
 static
-rc_t db_select (KDBMetaParms * pb)
+rc_t db_select (KDBMetaConst * pb)
 {
-    CONST KDatabase *db;
+    const KDatabase *db;
     rc_t rc;
 
-    bool read_only = true;
-
-#if ALLOW_UPDATE
-    if ( ! read_only_arg ) {
-        read_only = false;
-
-        rc = KDBManagerOpenDBUpdate ( pb -> mgr, & db, pb->targ );
+    rc = KDBManagerOpenDBRead ( pb -> mgr, & db, pb->targ );
+    if ( pb -> rc != 0 )
+        PLOGERR ( klogErr,  (klogErr, rc, "failed to open db '$(db)'", "db=%s", pb->targ ));
+    else
+    {
+        rc = KDatabaseOpenMetadataRead ( db, & pb -> md );
         if ( rc != 0 )
-            read_only = true;
-    }
-#endif
-    if ( read_only )
-        rc = KDBManagerOpenDBRead ( pb -> mgr, ( const KDatabase** ) & db, pb->targ );
-    if ( rc != 0 ) {
-        PLOGERR ( klogErr,  (klogErr, rc, "failed to open db '$(db)'",
-            "db=%s", pb->targ ));
-    }
-    else {
-        CONST KTable* tbl = NULL;
-        if (table_arg) {
-            read_only = true;
-#if ALLOW_UPDATE
-            if ( ! read_only_arg ) {
-                read_only = false;
-                rc = KDatabaseOpenTableUpdate ( db, &tbl, table_arg );
-                if ( rc != 0 )
-                    read_only = true;
-            }
-#endif
-            if ( read_only )
-                rc = KDatabaseOpenTableRead ( db, ( const KTable** ) &tbl, table_arg );
-            if ( rc != 0 ) {
-                PLOGERR ( klogErr,  (klogErr, rc,
-                    "failed to open table '$(table)'", "table=%s", table_arg ));
-            }
-        }
-        if ( rc == 0) {
-            if (tbl) {
-                read_only = true;
-#if ALLOW_UPDATE
-                if ( ! read_only_arg ) {
-                    read_only = false;
-                    rc = KTableOpenMetadataUpdate ( tbl, & pb -> md );
-                    if ( rc != 0 )
-                        read_only = true;
-                }
-#endif
-                if ( read_only )
-                    rc = KTableOpenMetadataRead ( tbl, ( const KMetadata** ) & pb -> md );
-                if ( rc != 0 ) {
-                    PLOGERR ( klogErr,  (klogErr, rc,
-                        "failed to open metadata for table '$(table)'",
-                        "table=%s", table_arg ));
-                }
-            }
-            else {
-                read_only = true;
-#if ALLOW_UPDATE
-                if ( ! read_only_arg ) {
-                    read_only = false;
-                    rc = KDatabaseOpenMetadataUpdate ( db, & pb -> md );
-                    if ( rc != 0 )
-                        read_only = true;
-                }
-#endif
-                if ( read_only )
-                    rc = KDatabaseOpenMetadataRead ( db, ( const KMetadata** ) & pb -> md );
-                if ( rc != 0 ) {
-                    PLOGERR ( klogErr,  (klogErr, rc,
-                        "failed to open metadata for db '$(db)'",
-                        "db=%s", pb->targ ));
-                }
-            }
-            if ( rc == 0 ) {
-                bool fail;
+            PLOGERR ( klogErr,  (klogErr, rc, "failed to open metadata for db '$(db)'", "db=%s", pb->targ ));
+        else
+        {
+            bool fail;
 
-                fail = VectorDoUntil ( pb -> q, false, md_select, pb );
-                if(fail)
-                    rc = pb->rc;
-                KMetadataRelease ( pb -> md ), pb -> md = NULL;
-            }
+            fail = VectorDoUntil ( pb -> q, false, md_select, pb );
+            if(fail)
+                rc = pb->rc;
+            KMetadataRelease ( pb -> md ), pb -> md = NULL;
         }
-        KTableRelease ( tbl );
+
         KDatabaseRelease ( db );
     }
 
@@ -895,9 +638,9 @@ rc_t db_select (KDBMetaParms * pb)
 }
 
 static
-rc_t tool_select ( CONST KDBManager * mgr, uint32_t type, const char * targ, const Vector * q)
+rc_t tool_select ( const KDBManager * mgr, uint32_t type, const char * targ, const Vector * q)
 {
-    KDBMetaParms pb;
+    KDBMetaConst pb;
     rc_t rc;
 
     pb.mgr = mgr;
@@ -951,11 +694,8 @@ rc_t CC UsageSummary (const char * progname)
                     "  %s [Options] <target> [<query> ...]\n"
                     "\n"
                     "Summary:\n"
-                    "  Display the contents of one or more metadata stores.\n"
-#if ALLOW_UPDATE
-                    "  Update metadata.\n"
-#endif
-                  , progname);
+                    "  Display the contents of one or more metadata stores.\n",
+                    progname);
 }
 
 static const char *const t1 [] = { "path-to-database", "access database metadata", NULL };
@@ -967,43 +707,19 @@ static const char *const q1 [] = { "*","all nodes and attributes", NULL };
 static const char *const q2 [] = { "NAME","a named root node and children", NULL };
 static const char *const q3 [] = { "PATH/NAME","an internal node and children", NULL };
 static const char *const q4 [] = { "<node>@ATTR","a named attribute", NULL };
-#if ALLOW_UPDATE
 static const char *const q5 [] = { "<obj>=VALUE","a simple value assignment where",
                                    "value string is text, and binary",
                                    "values use hex escape codes", NULL };
-#endif
-
-/* static const char* o1[] = { "try to interpret binary values as unsigned ints", NULL }; */
 
-#define ALIAS_READ_ONLY             "r"
-#define OPTION_READ_ONLY            "read-only"
-static const char* USAGE_READ_ONLY[] = { "operate in read-only mode", NULL };
+static const char* o1[] = { "try to interpret binary values as unsigned ints", NULL };
 
-#define ALIAS_TABLE             "T"
-#define OPTION_TABLE            "table"
-static const char* USAGE_TABLE[] = { "table-name", NULL };
-
-#define ALIAS_UNSIGNED             "u"
-#define OPTION_UNSIGNED            "unsigned"
-static const char* USAGE_UNSIGNED[]
-                                 = { "print numeric values as unsigned", NULL };
-
-const OptDef opt[] = {
-  { OPTION_TABLE    , ALIAS_TABLE    , NULL, USAGE_TABLE    , 1, true , false }
- ,{ OPTION_UNSIGNED , ALIAS_UNSIGNED , NULL, USAGE_UNSIGNED , 1, false, false }
-#if ALLOW_UPDATE
- ,{ OPTION_READ_ONLY, ALIAS_READ_ONLY, NULL, USAGE_READ_ONLY, 1, false, false }
-#endif
+const OptDef opt[] =
+{
+    {"unsigned", NULL, NULL, o1, 0, false, false}
 };
 
 static const char * const * target_usage [] = { t1, t2, t3, t4 };
-static const char * const * query_usage []  =
-{
-    q1, q2, q3, q4
-#if ALLOW_UPDATE
-    , q5
-#endif
-};
+static const char * const * query_usage []  = { q1, q2, q3, q4, q5 };
 
 
 rc_t CC Usage (const Args * args)
@@ -1073,7 +789,7 @@ rc_t CC Usage (const Args * args)
  */
 rc_t CC KMain ( int argc, char *argv [] )
 {
-    Args * args = NULL;
+    Args * args;
     rc_t rc;
 
     rc = ArgsMakeAndHandle(&args, argc, argv, 1, opt, sizeof(opt) / sizeof(opt[0]));
@@ -1086,50 +802,21 @@ rc_t CC KMain ( int argc, char *argv [] )
             uint32_t pcount;
             int ix;
 
-#if ALLOW_UPDATE
-            read_only_arg = false;
-            rc = ArgsOptionCount (args, OPTION_READ_ONLY, &pcount);
-            if (rc) {
-                LOGERR(klogErr, rc,
-                    "Failure to get '" OPTION_READ_ONLY "' argument");
-                break;
-            }
-            read_only_arg = pcount > 0;
-#endif
-
-            rc = ArgsOptionCount (args, OPTION_UNSIGNED, &pcount);
-            if (rc) {
-                LOGERR(klogErr, rc,
-                    "Failure to get '" OPTION_UNSIGNED "' argument");
+            if( (rc = ArgsOptionCount(args, opt[0].name, &pcount)) != 0 ) {
                 break;
             }
             as_unsigned = pcount > 0;
 
-            rc = ArgsOptionCount (args, OPTION_TABLE, &pcount);
-            if (rc) {
-                LOGERR(klogErr, rc,
-                    "Failure to get '" OPTION_TABLE "' argument");
-                break;
-            }
-            if (pcount) {
-                rc = ArgsOptionValue (args, OPTION_TABLE, 0, &table_arg);
-                if (rc) {
-                    LOGERR(klogErr, rc,
-                        "Failure to get '" OPTION_TABLE "' argument");
-                    break;
-                }
-            }
-
             rc = ArgsParamCount (args, &pcount);
             if (rc)
                 break;
 
             if (pcount == 0)
             {
-                OUTMSG (( "missing database target path and queries\n" ));
+                rc = RC (rcExe, rcArgv, rcReading, rcParam, rcInsufficient);
+                LOGERR (klogFatal, rc, "missing database target path and queries" );
                 MiniUsage (args);
-                ArgsWhack(args);
-                exit(EXIT_FAILURE);
+                break;
             }
 
             rc = KDirectoryNativeDir (&curwd);
@@ -1139,12 +826,9 @@ rc_t CC KMain ( int argc, char *argv [] )
             }
             else
             {
-                CONST KDBManager * mgr;
-#if ALLOW_UPDATE
-                rc = KDBManagerMakeUpdate (&mgr, curwd);
-#else
+                const KDBManager * mgr;
+
                 rc = KDBManagerMakeRead (&mgr, curwd);
-#endif
                 if (rc)
                     LOGERR (klogInt, rc, "Unable to open the database system");
                 else
@@ -1156,29 +840,26 @@ rc_t CC KMain ( int argc, char *argv [] )
                     else
                     {
                         char objpath [ 4096 ];
+                        SRAPath * sra_path;
                         bool found;
                         uint32_t type;
 
                         found = false;
 
-#if 1 /* TOOLS_USE_SRAPATH != 0 */
+                        rc = SRAPathMake (&sra_path, NULL);
+                        if ( rc == 0 )
                         {
-                            SRAPath * sra_path = NULL;
-                            rc = SRAPathMake (&sra_path, NULL);
-                            if ( rc == 0 )
-                            {
-                                if ( ! SRAPathTest (sra_path, pc))
-                                {
-                                    rc = SRAPathFind (sra_path, pc, objpath, sizeof (objpath));
-                                    if (rc == 0)
-                                        found = true;
-                                }
-                                SRAPathRelease (sra_path);
-                            }
-                            else if ( GetRCState ( rc ) == rcNotFound && GetRCTarget ( rc ) == rcDylib )
+                            if ( ! SRAPathTest (sra_path, pc))
                             {
-                                rc = 0;
+                                rc = SRAPathFind (sra_path, pc, objpath, sizeof (objpath));
+                                if (rc == 0)
+                                    found = true;
                             }
+                            SRAPathRelease (sra_path);
+                        }
+                        else if ( GetRCState ( rc ) == rcNotFound && GetRCTarget ( rc ) == rcDylib )
+                        {
+                            rc = 0;
                         }
 
                         if ( ! found)
@@ -1189,7 +870,6 @@ rc_t CC KMain ( int argc, char *argv [] )
                             if (rc)
                                 LOGERR (klogFatal, rc, "Unable to resolved target path");
                         }
-#endif
 
 
                         type = KDBManagerVPathType (mgr, objpath, NULL);
@@ -1258,9 +938,6 @@ rc_t CC KMain ( int argc, char *argv [] )
             }
         } while (0);
     }
-    
-    ArgsWhack(args);
-    args = NULL;
-
+    /* done */
     return rc;
 }
diff --git a/tools/util/kdbmeta.vers b/tools/util/kdbmeta.vers
index f90b1af..04b10b4 100644
--- a/tools/util/kdbmeta.vers
+++ b/tools/util/kdbmeta.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/util/kdbmeta.vers.h b/tools/util/kdbmeta.vers.h
new file mode 100644
index 0000000..5521f79
--- /dev/null
+++ b/tools/util/kdbmeta.vers.h
@@ -0,0 +1 @@
+#define KDBMETA_VERS 0x02010007
diff --git a/tools/util/rcexplain.vers b/tools/util/rcexplain.vers
index f90b1af..04b10b4 100644
--- a/tools/util/rcexplain.vers
+++ b/tools/util/rcexplain.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/util/rcexplain.vers.h b/tools/util/rcexplain.vers.h
new file mode 100644
index 0000000..64b667d
--- /dev/null
+++ b/tools/util/rcexplain.vers.h
@@ -0,0 +1 @@
+#define RCEXPLAIN_VERS 0x02010007
diff --git a/tools/util/rowwritetest.c b/tools/util/rowwritetest.c
index 9d8a3e3..7d9d2a9 100644
--- a/tools/util/rowwritetest.c
+++ b/tools/util/rowwritetest.c
@@ -15,6 +15,7 @@
 #include <stdlib.h> /* malloc */
 #include <assert.h>
 #include <os-native.h>
+#include <fmtdef.h>
 
 #define OPTION_TABLE "table-path"
 #define OPTION_ROW   "row-count"
@@ -30,6 +31,11 @@ OptDef MyOptions[] =
     { OPTION_ROW,   ALIAS_ROW,   NULL, row_usage,   1, true, false }
 };
 
+static bool __BadLogLevel = false;
+static const char *__dummy4NextLogLevel(void *data) {
+    __BadLogLevel = true;
+    return "info";
+}
 #define COLUMNS 5
 #define ROWLEN 64
 #define ROWS 0x400000
@@ -312,18 +318,18 @@ rc_t run (const char * table_path, uint64_t N )
         KDirectoryRelease(dir);
         if (rc == 0) {
             puts("");
-            KOutMsg("%ld rows, %d bytes per row:\n", N, ROWLEN);
+            printf("%" LD64 " rows, %d bytes per row:\n", N, ROWLEN);
             for (i = 0; i < COLUMNS; ++i) {
                 puts(colInf[i]);
             }
             puts("");
             for (i = 0; i < COLUMNS; ++i) {
                 int64_t over = sizes[i] - total[i];
-                KOutMsg("C%d: %9ld bytes written; "
-                    "%9ld in 'data'", i + 1, total[i], sizes[i]);
+                printf("C%d: %9" LD64 " bytes written; "
+                    "%9" LD64 " in 'data'", i + 1, total[i], sizes[i]);
                 if (over > 0) {
                     double p = 100.0 * over / sizes[i];
-                    printf(": %7ld extra bytes (%.4f%%)\n", over, p);
+                    printf(": %7" LD64 " extra bytes (%.4f%%)\n", over, p);
                 }
                 else {
                     puts("");
diff --git a/tools/util/rowwritetest.vers b/tools/util/rowwritetest.vers
index f90b1af..7dea76e 100644
--- a/tools/util/rowwritetest.vers
+++ b/tools/util/rowwritetest.vers
@@ -1 +1 @@
-2.3.2
+1.0.1
diff --git a/tools/util/syspass-priv.h b/tools/util/syspass-priv.h
deleted file mode 100644
index 6f8cb80..0000000
--- a/tools/util/syspass-priv.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#ifndef _h_util_syspass_priv_
-#define _h_util_syspass_priv_
-
-#ifndef _h_klib_defs_
-#include <klib/defs.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-rc_t get_pass(const char *prompt, char *buf, size_t bufsiz);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /*  _h_util_syspass_priv_ */
diff --git a/tools/util/test-sra.c b/tools/util/test-sra.c
deleted file mode 100644
index fab93ea..0000000
--- a/tools/util/test-sra.c
+++ /dev/null
@@ -1,1165 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-/*
-SRR125365
-SRR292195
-SRR413283
-SRR600096
-SRR619505
-SRR953827
-/home/klymenka/ncbi/public/sra/SRR619505
-/home/klymenka/ncbi/public/sra/SRR619505.sra
-/netmnt/traces04/sra2/SRR/000122/SRR125365
-/netmnt/traces04/sra2/SRR/000586/SRR600096
-/netmnt/traces04/sra3/SRR/000403/SRR413283
-/netmnt/traces04/sra4/SRR/000345/SRR353827
-/netmnt/traces04/sra5/SRR/000604/SRR619505
-/netmnt/traces04/sra7/SRR/000285/SRR292195
-/netmnt/traces04/sra7/SRR/000285/SRR292195/col
-/netmnt/traces04/sra7/SRR/000285/SRR292195/col/
-/netmnt/traces04/sra7/SRR/000285/SRR292195/col/READ
-/netmnt/traces04/sra7/SRR/000285/SRR292195/col/READ/md
-/netmnt/traces04/sra7/SRR/000285/SRR292195/col/READ/md5
-/netmnt/traces04/sra7/SRR/000285/SRR292195/idx
-/netmnt/traces04/sra7/SRR/000285/SRR292195/idx/skey
-/panfs/traces01/sra_backup/SRA/sra_trash/duplicatedOn_sra-s/sra0/SRR005459
-http://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByRun/sra/SRR/SRR619/SRR619505/SRR619505.sra
-*/
-
-#include <kapp/main.h> /* KMain */
-#include <kdb/manager.h> /* kptDatabase */
-#include <vdb/manager.h> /* VDBManager */
-#include <vdb/database.h> /* VDatabase */
-#include <vdb/dependencies.h> /* VDBDependencies */
-#include <kdb/manager.h> /* kptDatabase */
-#include <vfs/manager.h> /* VFSManager */
-#include <vfs/resolver.h> /* VResolver */
-#include <vfs/path.h> /* VPath */
-#include <kns/manager.h> /* KNSManager */
-#include <kfg/config.h> /* KConfig */
-#include <kfs/directory.h> /* KDirectory */
-#include <kfs/file.h> /* KFile */
-#include <klib/printf.h> /* string_vprintf */
-#include <klib/log.h> /* KLogHandlerSet */
-#include <klib/out.h> /* KOutMsg */
-#include <klib/text.h> /* String */
-#include <klib/rc.h>
-#include <ctype.h> /* isprint */
-#include <stdlib.h> /* calloc */
-#include <string.h> /* memset */
-#include <assert.h>
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 != 0 && rc == 0) { rc = rc2; } obj = NULL; } while (false)
-
-typedef enum {
-    eCfg = 1,
-/*  eType = 2, */
-    eResolve = 2,
-    eDependMissing = 4,
-    eDependAll = 8,
-    eAll = 16
-} Type;
-typedef struct {
-    KConfig *cfg;
-    KDirectory *dir;
-    const VDBManager *mgr;
-    VResolver *resolver;
-    uint8_t tests;
-    bool recursive;
-    bool noVDBManagerPathType;
-} Main;
-
-uint32_t CC KAppVersion(void) { return 0; }
-
-const char UsageDefaultName[] = "test-sra";
-
-rc_t CC UsageSummary(const char *prog_name) {
-    return KOutMsg(
-        "Usage:\n"
-        "    %s [+crdDa] [-crdDa] [options] name [ name... ]\n"
-        "    %s -R [-N] name [ name... ]\n",
-        prog_name, prog_name);
-}
-
-rc_t CC Usage(const Args *args) {
-    rc_t rc2 = 0;
-
-    const char *progname, *fullpath;
-    rc_t rc = ArgsProgram(args, &fullpath, &progname);
-    if (rc != 0) {
-        progname = fullpath = UsageDefaultName;
-    }
-
-    rc2 = UsageSummary(progname);
-    if (rc == 0 && rc2 != 0) {
-        rc = rc2;
-    }
-
-/*      "  t - test object's VDB type\n" */
-    rc2 = KOutMsg("\n"
-        "Test [SRA] object, resolve it, print dependencies, configuration\n\n"
-        "[+tests] - add tests\n"
-        "[-tests] - remove tests\n\n"
-        "Tests:\n"
-        "  c - print configuration\n"
-        "  r - call VResolver\n"
-        "  d - call ListDependencies(missing)\n"
-        "  D - call ListDependencies(all)\n"
-        "  a - all tests\n\n"
-        "If no tests were specified then all tests will be run\n\n"
-        "-R - check object type recursively\n"
-        "-N - do not call VDBManagerPathType\n\n"
-        "More options:\n");
-    if (rc == 0 && rc2 != 0) {
-        rc = rc2;
-    }
-
-    HelpOptionsStandard();
-
-    return rc;
-}
-
-static bool testArg(const char *arg, uint8_t *testOn, uint8_t *testOff) {
-    int j = 1;
-    uint8_t *res = NULL;
-
-/*  const char tests[] = "ctrdDa"; */
-    const char tests[] = "crdDa";
-
-    assert(arg && testOn && testOff);
-    if (arg[0] != '+' && arg[0] != '-') {
-        return false;
-    }
-
-    if (arg[0] == '-' &&
-        arg[1] != '\0' && strchr(tests, arg[1]) == NULL)
-    {
-        return false;
-    }
-
-    res = arg[0] == '-' ? testOff : testOn;
-
-    for (j = 1; arg[j] != '\0'; ++j) {
-        char *c = strchr(tests, arg[j]);
-        if (c != NULL) {
-            int offset = c - tests;
-            *res |= 1 << offset;
-        }
-    }
-
-    return true;
-}
-
-static uint8_t Turn(uint8_t in, uint8_t tests, bool on) {
-    uint8_t c = 1;
-    for (c = 1; c < eAll; c <<= 1) {
-        if (tests & c) {
-            if (on) {
-                in |= c;
-            }
-            else {
-                in &= ~c;
-            }
-        }
-    }
-    return in;
-}
-
-static uint8_t processTests(uint8_t testsOn, uint8_t testsOff) {
-    uint8_t tests = 0;
-
-    bool allOn = false;
-    bool allOff = false;
-
-    if (testsOn & eAll && testsOff & eAll) {
-        testsOn &= ~eAll;
-        testsOff &= ~eAll;
-    }
-    else if (testsOn & eAll) {
-        allOn = true;
-    }
-    else if (testsOff & eAll) {
-        allOff = true;
-    }
-
-    if (allOn) {
-        tests = ~0;
-        tests = Turn(tests, testsOff, false);
-    }
-    else if (allOff) {
-        tests = Turn(tests, testsOn, true);
-    }
-    else if (testsOn != 0 || testsOff != 0) {
-        tests = Turn(tests, testsOff, false);
-        tests = Turn(tests, testsOn, true);
-    }
-    else {
-        tests = ~0;
-    }
-
-    return tests;
-} 
-
-static bool MainHasTest(const Main *self, Type type) {
-    assert(self);
-    return self->tests & type;
-}
-
-static void MainPrint(const Main *self) {
-    return;
-
-    assert(self);
-
-    if (MainHasTest(self, eCfg)) {
-        KOutMsg("eCfg\n");
-    }
-
-/*  if (MainHasTest(self, eType)) {
-        KOutMsg("eType\n");
-    }*/
-
-    if (MainHasTest(self, eResolve)) {
-        KOutMsg("eResolve\n");
-    }
-
-    if (MainHasTest(self, eDependMissing)) {
-        KOutMsg("eDependMissing\n");
-    }
-
-    if (MainHasTest(self, eDependAll)) {
-        KOutMsg("eDependAll\n");
-    }
-}
-
-static rc_t MainInitObjects(Main *self) {
-    rc_t rc = 0;
-
-    VFSManager* mgr = NULL;
-    VResolver *resolver = NULL;
-
-    if (rc == 0) {
-        rc = KDirectoryNativeDir(&self->dir);
-    }
-
-    if (rc == 0) {
-        rc = VDBManagerMakeRead(&self->mgr, NULL);
-    }
-
-    if (rc == 0) {
-        rc = KConfigMake(&self->cfg, NULL);
-    }
-
-    if (rc == 0) {
-        rc = VFSManagerMake(&mgr);
-    }
-
-    if (rc == 0) {
-        rc = VFSManagerGetResolver(mgr, &resolver);
-    }
-
-    if (rc == 0) {
-        VResolverCacheEnable(resolver, vrAlwaysDisable);
-    }
-
-    if (rc == 0) {
-        rc = VFSManagerMakeResolver(mgr, &self->resolver, self->cfg);
-    }
-
-
-    RELEASE(VResolver, resolver);
-    RELEASE(VFSManager, mgr);
-
-    return rc;
-}
-
-static
-rc_t _MainInit(Main *self, int argc, char *argv[], int *argi, char **argv2)
-{
-    rc_t rc = 0;
-    int i = 0;
-
-    uint8_t testsOn = 0;
-    uint8_t testsOff = 0;
-
-    assert(self && argv && argi && argv2);
-
-    *argi = 0;
-    argv2[(*argi)++] = argv[0];
-
-    for (i = 1; i < argc; ++i) {
-        if (!testArg(argv[i], &testsOn, &testsOff)) {
-            argv2[(*argi)++] = argv[i];
-        }
-    }
-
-    self->tests = processTests(testsOn, testsOff);
-
-    MainPrint(self);
-
-    rc = MainInitObjects(self);
-
-    return rc;
-}
-
-static char** MainInit(Main *self, rc_t *rc,
-    int argc, char *argv[], int *argi)
-{
-    char **argv2 = calloc(argc, sizeof *argv2);
-
-    assert(self && rc);
-
-    memset(self, 0, sizeof *self);
-
-    if (argv2 != NULL) {
-        *rc = _MainInit(self, argc, argv, argi, argv2);
-    }
-
-    return argv2;
-}
-
-static rc_t MainPrintConfig(const Main *self) {
-    rc_t rc = 0;
-
-    assert(self);
-
-    if (rc == 0) {
-        rc = KConfigPrint(self->cfg, 0);
-        if (rc != 0) {
-            OUTMSG(("KConfigPrint() = %R", rc));
-        }
-        OUTMSG(("\n"));
-    }
-
-    return rc;
-}
-
-static
-rc_t _KDBPathTypePrint(const char *head, KPathType type, const char *tail)
-{
-    rc_t rc = 0;
-    rc_t rc2 = 0;
-    assert(head && tail);
-    {
-        rc_t rc2 = OUTMSG(("%s", head));
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-    switch (type) {
-        case kptNotFound:
-            rc2 = OUTMSG(("NotFound"));
-            break;
-        case kptBadPath:
-            rc2 = OUTMSG(("BadPath"));
-            break;
-        case kptFile:
-            rc2 = OUTMSG(("File"));
-            break;
-        case kptDir:
-            rc2 = OUTMSG(("Dir"));
-            break;
-        case kptCharDev:
-            rc2 = OUTMSG(("CharDev"));
-            break;
-        case kptBlockDev:
-            rc2 = OUTMSG(("BlockDev"));
-            break;
-        case kptFIFO:
-            rc2 = OUTMSG(("FIFO"));
-            break;
-        case kptZombieFile:
-            rc2 = OUTMSG(("ZombieFile"));
-            break;
-        case kptDataset:
-            rc2 = OUTMSG(("Dataset"));
-            break;
-        case kptDatatype:
-            rc2 = OUTMSG(("Datatype"));
-            break;
-        case kptDatabase:
-            rc2 = OUTMSG(("Database"));
-            break;
-        case kptTable:
-            rc2 = OUTMSG(("Table"));
-            break;
-        case kptIndex:
-            rc2 = OUTMSG(("Index"));
-            break;
-        case kptColumn:
-            rc2 = OUTMSG(("Column"));
-            break;
-        case kptMetadata:
-            rc2 = OUTMSG(("Metadata"));
-            break;
-        case kptPrereleaseTbl:
-            rc2 = OUTMSG(("PrereleaseTbl"));
-            break;
-        default:
-            rc2 = OUTMSG(("unexpectedFileType(%d)", type));
-            assert(0);
-            break;
-    }
-    if (rc == 0 && rc2 != 0) {
-        rc = rc2;
-    }
-    {
-        rc_t rc2 = OUTMSG(("%s", tail));
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-    return rc;
-}
-
-static bool isprintString(const unsigned char *s) {
-    assert(s);
-
-    while (*s) {
-        int c = *(s++);
-        if (!isprint(c)) {
-            return false;
-        }
-    }
-
-    return true;
-}
-
-static rc_t printString(const char *s) {
-    rc_t rc = 0;
-
-    const unsigned char *u = (unsigned char*)s;
-
-    assert(u);
-
-    if (isprintString(u)) {
-        return OUTMSG(("%s", u));
-    }
-
-    while (*u) {
-        rc_t rc2 = 0;
-        int c = *(u++);
-        if (isprint(c)) {
-            rc2 = OUTMSG(("%c", c));
-        }
-        else {
-            rc2 = OUTMSG(("\\%03o", c));
-        }
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-
-    return rc;
-}
-
-static rc_t _KDirectoryReport(const KDirectory *self,
-    const char *name, int64_t *size, KPathType *type, bool *alias)
-{
-    rc_t rc = 0;
-    const KFile *f = NULL;
-
-    bool dummyB = false;
-    int64_t dummy = 0;
-
-    KPathType dummyT = kptNotFound;;
-    if (type == NULL) {
-        type = &dummyT;
-    }
-
-    if (alias == NULL) {
-        alias = &dummyB;
-    }
-    if (size == NULL) {
-        size = &dummy;
-    }
-
-    *type = KDirectoryPathType(self, name);
-
-    if (*type & kptAlias) {
-        OUTMSG(("alias|"));
-        *type &= ~kptAlias;
-        *alias = true;
-    }
-
-    rc = _KDBPathTypePrint("", *type, " ");
-
-    if (*type == kptFile) {
-        rc = KDirectoryOpenFileRead(self, &f, name);
-        if (rc != 0) {
-            OUTMSG(("KDirectoryOpenFileRead("));
-            printString(name);
-            OUTMSG((")=%R ", rc));
-        }
-        else {
-            uint64_t sz = 0;
-            rc = KFileSize(f, &sz);
-            if (rc != 0) {
-                OUTMSG(("KFileSize(%s)=%R ", name, rc));
-            }
-            else {
-                OUTMSG(("%lu ", sz));
-                *size = sz;
-            }
-        }
-    }
-
-    RELEASE(KFile, f);
-
-    return rc;
-}
-
-static rc_t _VDBManagerReport(const VDBManager *self,
-    const char *name, KPathType *type)
-{
-    KPathType dummy = kptNotFound;;
-
-    if (type == NULL) {
-        type = &dummy;
-    }
-
-    *type = VDBManagerPathType(self, name);
-
-    *type &= ~kptAlias;
-
-    return _KDBPathTypePrint("", *type, " ");
-}
-
-static rc_t MainReport(const Main *self,
-    const char *name, int64_t *size, KPathType *type, bool *alias)
-{
-    rc_t rc = 0;
-
-    assert(self);
-
-    rc = _KDirectoryReport(self->dir, name, size, type, alias);
-
-    if (!self->noVDBManagerPathType) { /* && MainHasTest(self, eType)) { */
-        _VDBManagerReport(self->mgr, name, type);
-    }
-
-    return rc;
-}
-
-#define rcResolver   rcTree
-static bool NotFoundByResolver(rc_t rc) {
-    if (GetRCModule(rc) == rcVFS) {
-        if (GetRCTarget(rc) == rcResolver) {
-            if (GetRCContext(rc) == rcResolving) {
-                if (GetRCState(rc) == rcNotFound) {
-                    return true;
-                }
-            }
-        }
-    }
-    return false;
-}
-
-static rc_t MainResolveLocal(const Main *self,
-    const char *name, const VPath* acc, int64_t *size)
-{
-    rc_t rc = 0;
-
-    const VPath* local = NULL;
-
-    assert(self);
-
-    OUTMSG(("Local: "));
-
-    rc = VResolverLocal(self->resolver, acc, &local);
-    if (rc != 0) {
-        if (NotFoundByResolver(rc)) {
-            OUTMSG(("not found\n"));
-            rc = 0;
-        }
-        else {
-            OUTMSG(("VResolverLocal(%s) = %R\n", name, rc));
-        }
-    }
-    else {
-        const String *s = NULL;
-
-        rc_t rc = VPathMakeString(local, &s);
-        if (rc == 0) {
-            OUTMSG(("%.*s ", s->size, s->addr));
-            rc = MainReport(self, s->addr, size, NULL, NULL);
-            OUTMSG(("\n"));
-        } else {
-            OUTMSG(("VPathMakeString(VResolverLocal(%s)) = %R\n",
-                name, rc));
-        }
-
-        free((void*)s);
-    }
-
-    RELEASE(VPath, local);
-
-    return rc;
-}
-
-static rc_t MainResolveRemote(const Main *self, const char *name,
-    const VPath* acc, const VPath **remote, int64_t *size)
-{
-    rc_t rc = 0;
-
-    const KFile* f = NULL;
-
-    assert(self && size);
-
-    OUTMSG(("Remote: "));
-
-    rc = VResolverRemote(self->resolver, acc, remote, &f);
-    if (rc != 0) {
-        if (NotFoundByResolver(rc)) {
-            OUTMSG(("not found\n"));
-            rc = 0;
-        }
-        else {
-            OUTMSG(("VResolverRemote(%s) = %R\n", name, rc));
-        }
-    }
-    else {
-        const String *s = NULL;
-        rc_t rc = VPathMakeString(*remote, &s);
-        if (rc == 0) {
-            uint64_t sz = 0;
-            OUTMSG(("%.*s ", s->size, s->addr));
-            rc = KFileSize(f, &sz);
-            if (rc != 0) {
-                OUTMSG(("KFileSize(%s)=%R ", name, rc));
-            }
-            else {
-                OUTMSG(("%lu ", sz));
-                *size = sz;
-            }
-            OUTMSG(("\n"));
-        } else {
-            OUTMSG(("VPathMakeString(VResolverRemote(%s)) = %R\n",
-                name, rc));
-        }
-        free((void*)s);
-    }
-
-    RELEASE(KFile, f);
-
-    return rc;
-}
-
-static rc_t MainResolveCache(const Main *self,
-    const char *name, const VPath* remote)
-{
-    rc_t rc = 0;
-
-    assert(self);
-    
-    OUTMSG(("Cache: "));
-    
-    if (remote == NULL) {
-        OUTMSG(("skipped\n"));
-    }
-    else {
-        VResolverEnableState enabled = VResolverCacheEnable(self->resolver, vrAlwaysEnable);
-        const VPath* cache = NULL;
-        uint64_t file_size = 0;
-        rc = VResolverCache(self->resolver, remote, &cache, file_size);
-        VResolverCacheEnable(self->resolver, enabled);
-        if (rc != 0) {
-            if (NotFoundByResolver(rc)) {
-                OUTMSG(("not found\n"));
-                rc = 0;
-            }
-            else {
-                OUTMSG(("VResolverCache(%s) = %R\n", name, rc));
-            }
-        }
-        else {
-            const String *s = NULL;
-            rc_t rc = VPathMakeString(cache, &s);
-            if (rc == 0) {
-                OUTMSG(("%.*s ", s->size, s->addr));
-                rc = MainReport(self, s->addr, NULL, NULL, NULL);
-                OUTMSG(("\n"));
-            } else {
-                OUTMSG((
-                    "VPathMakeString(VResolverCache(%s, %d)) = %R\n",
-                    name, file_size, rc));
-            }
-            free((void*)s);
-        }
-
-        RELEASE(VPath, cache);
-    }
-
-    return rc;
-}
-
-static rc_t MainResolve(const Main *self,
-    const char *name, int64_t *localSz, int64_t *remoteSz)
-{
-    rc_t rc = 0;
-
-    VPath* acc = NULL;
-
-    assert(self);
-
-    if (rc == 0) {
-        rc = VPathMake(&acc, name);
-        if (rc != 0) {
-            OUTMSG(("VPathMake(%s) = %R\n", name, rc));
-        }
-    }
-
-    if (rc == 0) {
-        const VPath* remote = NULL;
-
-        rc_t rc2 = MainResolveLocal(self, name, acc, localSz);
-        if (rc2 != 0 && rc == 0) {
-            rc = rc2;
-        }
-
-        rc2 = MainResolveRemote(self, name, acc, &remote, remoteSz);
-        if (rc2 != 0 && rc == 0) {
-            rc = rc2;
-        }
-
-        rc2 = MainResolveCache(self, name, remote);
-        if (rc2 != 0 && rc == 0) {
-            rc = rc2;
-        }
-
-        RELEASE(VPath, remote);
-    }
-
-    RELEASE(VPath, acc);
-
-    return rc;
-}
-
-static
-rc_t MainDepend(const Main *self, const char *name, bool missing)
-{
-    rc_t rc = 0;
-
-    const VDatabase *db = NULL;
-    const VDBDependencies* dep = NULL;
-    uint32_t count = 0;
-
-    if (rc == 0) {
-        rc = VDBManagerOpenDBRead(self->mgr, &db, NULL, name);
-        if (rc != 0) {
-            if (rc == SILENT_RC(rcVFS,rcMgr,rcOpening,rcDirectory,rcNotFound)) {
-                return 0;
-            }
-            OUTMSG(("VDBManagerOpenDBRead(%s) = %R\n", name, rc));
-        }
-    }
-
-    if (rc == 0) {
-        rc = VDatabaseListDependencies(db, &dep, missing);
-        if (rc != 0) {
-            OUTMSG(("VDatabaseListDependencies(%s, %s) = %R\n",
-                name, missing ? "missing" : "all", rc));
-        }
-    }
-
-    if (rc == 0) {
-        rc = VDBDependenciesCount(dep, &count);
-        if (rc != 0) {
-            OUTMSG(("VDBDependenciesCount(%s, %s) = %R\n",
-                name, missing ? "missing" : "all", rc));
-        }
-        else {
-            OUTMSG(("VDBDependenciesCount(%s)=%d\n",
-                missing ? "missing" : "all", count));
-        }
-    }
-
-    if (rc == 0) {
-        uint32_t i = 0;
-        rc_t rc2 = 0;
-        for (i = 0; i < count; ++i) {
-            bool b = true;
-            const char *s = NULL;
-            KPathType type = kptNotFound;
-
-            OUTMSG((" %6d\t", i + 1));
-
-            rc2 = VDBDependenciesSeqId(dep, &s, i);
-            if (rc2 == 0) {
-                OUTMSG(("seqId=%s,", s));
-            }
-            else {
-                OUTMSG(("VDBDependenciesSeqId(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            rc2 = VDBDependenciesName(dep, &s, i);
-            if (rc2 == 0) {
-                OUTMSG(("name=%s,", s));
-            }
-            else {
-                OUTMSG(("VDBDependenciesName(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            rc2 = VDBDependenciesCircular(dep, &b, i);
-            if (rc2 == 0) {
-                OUTMSG(("circular=%s,", b ? "true" : "false"));
-            }
-            else {
-                OUTMSG(("VDBDependenciesCircular(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            rc2 = VDBDependenciesType(dep, &type, i);
-            if (rc2 == 0) {
-                rc2 = _KDBPathTypePrint("type=", type, ",");
-                if (rc2 != 0 && rc == 0) {
-                    rc = rc2;
-                }
-            }
-            else {
-                OUTMSG(("VDBDependenciesType(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            rc2 = VDBDependenciesLocal(dep, &b, i);
-            if (rc2 == 0) {
-                OUTMSG(("local=%s,", b ? "local" : "remote"));
-            }
-            else {
-                OUTMSG(("VDBDependenciesLocal(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            rc2 = VDBDependenciesPath(dep, &s, i);
-            if (rc2 == 0) {
-                OUTMSG(("pathLocal=%s,", s == NULL ? "notFound" : s));
-            }
-            else {
-                OUTMSG(("VDBDependenciesPath(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            rc2 = VDBDependenciesPathRemote(dep, &s, i);
-            if (rc2 == 0) {
-                OUTMSG(("pathRemote=%s,", s == NULL ? "notFound" : s));
-            }
-            else {
-                OUTMSG(("VDBDependenciesPathRemote(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            rc2 = VDBDependenciesPathCache(dep, &s, i);
-            if (rc2 == 0) {
-                OUTMSG(("pathCache=%s", s == NULL ? "notFound" : s));
-            }
-            else {
-                OUTMSG(("VDBDependenciesPathCache(%s, %s, %i)=%R ",
-                    name, missing ? "missing" : "all", i, rc));
-                if (rc == 0) {
-                    rc = rc2;
-                }
-            }
-
-            OUTMSG(("\n"));
-        }
-    }
-
-    RELEASE(VDBDependencies, dep);
-    RELEASE(VDatabase, db);
-
-    return rc;
-}
-
-static rc_t PrintCurl() {
-    KNSManager *mgr = NULL;
-    rc_t rc = KNSManagerMake(&mgr);
-    if (rc != 0) {
-        OUTMSG(("KNSManagerMake = %R\n", rc));
-    }
-    if (rc == 0) {
-        rc_t rc = KNSManagerAvail(mgr);
-        OUTMSG(("KNSManagerAvail = %R", rc));
-        if (rc == 0) {
-            const char *version_string = NULL;
-            rc = KNSManagerCurlVersion(mgr, &version_string);
-            if (rc == 0) {
-                OUTMSG((". Curl Version = %s\n", version_string));
-            }
-            else {
-                OUTMSG((". KNSManagerCurlVersion = %R\n", rc));
-            }
-        }
-    }
-    RELEASE(KNSManager, mgr);
-    return rc;
-}
-
-static rc_t MainExec(const Main *self, const char *aArg, ...) {
-    rc_t rc = 0;
-    rc_t rce = 0;
-
-    KPathType type = kptNotFound;
-    bool alias = false;
-    int64_t directSz = -1;
-    int64_t localSz = -1;
-    int64_t remoteSz = -1;
-    size_t num_writ = 0;
-    char arg[PATH_MAX] = "";
-
-    va_list args;
-    va_start(args, aArg);
-
-    assert(self);
-
-    rc = string_vprintf(arg, sizeof arg, &num_writ, aArg, args);
-    if (rc != 0) {
-        OUTMSG(("string_vprintf(%s)=%R\n", aArg, rc));
-        return rc;
-    }
-    assert(num_writ < sizeof arg);
-
-    OUTMSG(("\n"));
-    rc = printString(arg);
-    if (rc != 0) {
-        OUTMSG(("printString=%R\n", rc));
-        return rc;
-    }
-    OUTMSG((" "));
-    rc = MainReport(self, arg, &directSz, &type, &alias);
-    OUTMSG(("\n"));
-
-    if (self->recursive && type == kptDir && !alias) {
-        uint32_t i = 0;
-        uint32_t count = 0;
-        KNamelist *list = NULL;
-        rc = KDirectoryList(self->dir, &list, NULL, NULL, arg);
-        if (rc != 0) {
-            OUTMSG(("KDirectoryList(%s)=%R ", arg, rc));
-        }
-        else {
-            rc = KNamelistCount(list, &count);
-            if (rc != 0) {
-                OUTMSG(("KNamelistCount(KDirectoryList(%s))=%R ", arg, rc));
-            }
-        }
-        for (i = 0; i < count && rc == 0; ++i) {
-            const char *name = NULL;
-            rc = KNamelistGet(list, i, &name);
-            if (rc != 0) {
-                OUTMSG(("KNamelistGet(KDirectoryList(%s), %d)=%R ",
-                    arg, i, rc));
-            }
-            else {
-                rc_t rc2 = MainExec(self, "%s/%s", arg, name);
-                if (rc2 != 0 && rce == 0) {
-                    rce = rc2;
-                }
-            }
-        }
-        RELEASE(KNamelist, list);
-    }
-    else {
-        if (MainHasTest(self, eResolve)) {
-            rc_t rc2 = MainResolve(self, arg, &localSz, &remoteSz);
-            if (rc == 0 && rc2 != 0) {
-                rc = rc2;
-            }
-        }
-
-        if (type == kptDatabase || type == kptNotFound) {
-            if (MainHasTest(self, eDependMissing)) {
-                rc_t rc2 = MainDepend(self, arg, true);
-                if (rc == 0 && rc2 != 0) {
-                    rc = rc2;
-                }
-            }
-
-            if (MainHasTest(self, eDependAll)) {
-                rc_t rc2 = MainDepend(self, arg, false);
-                if (rc == 0 && rc2 != 0) {
-                    rc = rc2;
-                }
-            }
-        }
-
-        if (MainHasTest(self, eResolve) && (
-            (directSz != -1 && localSz != -1 && directSz != localSz) ||
-            (remoteSz != -1 && localSz != -1 && localSz != remoteSz)))
-        {
-            OUTMSG(("FILE SIZES DO NOT MATCH: "));
-            if (directSz != -1 && localSz != -1 && directSz != remoteSz) {
-                OUTMSG(("direct=%ld != remote=%ld. ", directSz, remoteSz));
-            }
-            if (remoteSz != -1 && localSz != -1 && localSz != remoteSz) {
-                OUTMSG(("local=%ld != remote=%ld. ", localSz, remoteSz));
-            }
-            OUTMSG(("\n"));
-        }
-
-        OUTMSG(("\n"));
-    }
-
-    if (rce != 0 && rc == 0) {
-        rc = rce;
-    }
-    return rc;
-}
-
-static rc_t MainFini(Main *self) {
-    rc_t rc = 0;
-
-    assert(self);
-
-    RELEASE(VResolver, self->resolver);
-    RELEASE(KConfig, self->cfg);
-    RELEASE(VDBManager, self->mgr);
-    RELEASE(KDirectory, self->dir);
-
-    return rc;
-}
-
-#define ALIAS_NO_VDB  "N"
-#define OPTION_NO_VDB "no-vdb"
-static const char* USAGE_NO_VDB[] = { "do not call VDBManagerPathType", NULL };
-
-#define ALIAS_REC  "R"
-#define OPTION_REC "recursive"
-static const char* USAGE_REC[] = { "check object type recursively", NULL };
-
-OptDef Options[] = {                             /* needs_value, required */
-    { OPTION_NO_VDB, ALIAS_NO_VDB, NULL, USAGE_NO_VDB, 1, false, false },
-    { OPTION_REC   , ALIAS_REC   , NULL, USAGE_REC   , 1, false, false }
-};
-
-rc_t CC KMain(int argc, char *argv[]) {
-    rc_t rc = 0;
-    uint32_t pcount = 0;
-    uint32_t i = 0;
-    Args *args = NULL;
-    rc_t rc3 = 0;
-    int argi = 0;
-
-    Main prms;
-    char **argv2 = MainInit(&prms, &rc, argc, argv, &argi);
-
-    if (rc == 0) {
-        rc = ArgsMakeAndHandle(&args, argi, argv2, 1,
-            Options, sizeof Options / sizeof Options[0]);
-    }
-
-    if (MainHasTest(&prms, eCfg)) {
-        rc_t rc2 = MainPrintConfig(&prms);
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-
-    PrintCurl();
-
-    if (rc == 0) {
-        rc = ArgsOptionCount(args, OPTION_REC, &pcount);
-        if (rc) {
-            LOGERR(klogErr, rc, "Failure to get '" OPTION_REC "' argument");
-        }
-        else {
-            if (pcount > 0) {
-                prms.recursive = true;
-            }
-        }
-    }
-
-    if (rc == 0) {
-        rc = ArgsOptionCount(args, OPTION_NO_VDB, &pcount);
-        if (rc) {
-            LOGERR(klogErr, rc, "Failure to get '" OPTION_NO_VDB "' argument");
-        }
-        else {
-            if (pcount > 0) {
-                prms.noVDBManagerPathType = true;
-            }
-        }
-    }
-
-    if (rc == 0) {
-        rc = ArgsParamCount(args, &pcount);
-    }
-
-    for (i = 0; i < pcount; ++i) {
-        const char *name = NULL;
-        rc3 = ArgsParamValue(args, i, &name);
-        if (rc3 == 0) {
-            rc_t rc2 = MainExec(&prms, name);
-            if (rc == 0 && rc2 != 0) {
-                rc = rc2;
-            }
-        }
-    }
-    if (rc == 0 && rc3 != 0) {
-        rc = rc3;
-    }
-
-    RELEASE(Args, args);
-
-    {
-        rc_t rc2 = MainFini(&prms);
-        if (rc == 0 && rc2 != 0) {
-            rc = rc2;
-        }
-    }
-    free(argv2);
-
-    OUTMSG(("\n"));
-
-    return rc;
-}
diff --git a/tools/util/test-sra.vers b/tools/util/test-sra.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/util/test-sra.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/util/testld.vers b/tools/util/testld.vers
index f90b1af..7dea76e 100644
--- a/tools/util/testld.vers
+++ b/tools/util/testld.vers
@@ -1 +1 @@
-2.3.2
+1.0.1
diff --git a/tools/util/txt2kdb.vers b/tools/util/txt2kdb.vers
index f90b1af..7dea76e 100644
--- a/tools/util/txt2kdb.vers
+++ b/tools/util/txt2kdb.vers
@@ -1 +1 @@
-2.3.2
+1.0.1
diff --git a/tools/util/unix/syspass.c b/tools/util/unix/syspass.c
deleted file mode 100644
index b464f39..0000000
--- a/tools/util/unix/syspass.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#define __EXTENSIONS__ 1
-
-#include "syspass-priv.h" /* get_pass */
-
-#include <klib/rc.h>
-
-#include <string.h> /* strdup */
-
-#include <stdlib.h>
-#include <unistd.h> /* getpass */
-
-rc_t get_pass(const char *prompt, char *buf, size_t bufsiz) {
-    if (prompt == NULL || buf == NULL) {
-        return RC(rcExe, rcFunction, rcEvaluating, rcParam, rcNull);
-    }
-
-    if (bufsiz == 0)
-    {   return 0; }
-
-    buf[0] = '\0';
-
-    {
-        const char *p = getpass(prompt);
-
-        if (p == NULL) {
-            return RC(rcExe, rcString, rcReading, rcFunction, rcFailed);
-        }
-        else if ((strlen(p) + 1) > bufsiz) {
-            return RC(rcExe, rcString, rcReading, rcBuffer, rcInsufficient);
-        }
-
-        strcpy(buf, p);
-
-        return 0;
-    }
-}
diff --git a/tools/util/vdb-lock.c b/tools/util/vdb-lock.c
index 2c82a18..a62dd2b 100644
--- a/tools/util/vdb-lock.c
+++ b/tools/util/vdb-lock.c
@@ -115,9 +115,8 @@ rc_t CC KMain ( int argc, char *argv [] )
                 else
                 {
                     VDBManager *mgr;
-
-#if TOOLS_USE_SRAPATH != 0
                     char full [ 4096 ];
+
                     SRAPath *sra_path;
                     rc = SRAPathMake ( & sra_path, NULL );
                     if ( rc == 0 )
@@ -130,7 +129,6 @@ rc_t CC KMain ( int argc, char *argv [] )
                         }
                         SRAPathRelease ( sra_path );
                     }
-#endif
 
                     rc = VDBManagerMakeUpdate ( & mgr, NULL );
                     if ( rc != 0 )
diff --git a/tools/util/vdb-lock.vers b/tools/util/vdb-lock.vers
index f90b1af..04b10b4 100644
--- a/tools/util/vdb-lock.vers
+++ b/tools/util/vdb-lock.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/util/vdb-lock.vers.h b/tools/util/vdb-lock.vers.h
new file mode 100644
index 0000000..6eb4c4a
--- /dev/null
+++ b/tools/util/vdb-lock.vers.h
@@ -0,0 +1 @@
+#define VDB_LOCK_VERS 0x02010007
diff --git a/tools/util/vdb-passwd.c b/tools/util/vdb-passwd.c
deleted file mode 100644
index ee929f4..0000000
--- a/tools/util/vdb-passwd.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/*==============================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "vdb-passwd.vers.h" /* VDB_PASSWD_VERS */
-
-#include "syspass-priv.h" /* get_pass */
-
-#include <kapp/main.h> /* KMain */
-
-#include <vfs/manager.h> /* VFSManager */
-#include <klib/log.h> /* LOGERR */
-#include <klib/out.h> /* OUTMSG */
-#include <klib/rc.h>
-
-#include <string.h> /* strcmp */
-#include <assert.h>
-#include <limits.h> /* PATH_MAX */
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define DISP_RC(rc, msg) (void)((rc == 0) ? 0 : LOGERR(klogInt, rc, msg))
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
-
-/******************************************************************************/
-static
-rc_t SetPwd(const char *password, bool no_prompt)
-{
-    rc_t rc = 0;
-
-    VFSManager *mgr = NULL;
-
-    assert(password);
-
-    if (rc == 0) {
-        rc = VFSManagerMake(&mgr);
-        DISP_RC(rc, "while calling VFSManagerMake");
-    }
-
-    if (rc == 0) {
-        char pwd_dir[PATH_MAX] = "";
-        rc = VFSManagerUpdateKryptoPassword
-            (mgr, password, strlen(password), pwd_dir, sizeof pwd_dir);
-        if (rc) {
-            if (no_prompt) {
-                LOGERR(klogInt, rc, "while updating the password");
-            }
-            else if (rc == SILENT_RC(rcVFS, rcEncryptionKey, rcUpdating,
-                            rcDirectory, rcExcessive))
-            {
-                OUTMSG((
-                    "\nSecurity warning:\n"
-                    "Directory \"%s\" has excessive access permissions.\n"
-                    "Run \"chmod 700 %s\" to repair\n"
-                    "or ask your system administrator for assistance.\n",
-                    pwd_dir, pwd_dir));
-                rc = 0;
-            }
-            else if (rc == SILENT_RC(rcVFS, rcEncryptionKey, rcUpdating,
-                rcSize, rcExcessive))
-            {
-                OUTMSG((
-                    "\nError:\n"
-                    "Password is too long.\n"
-                    "Maximum password size is %ld.\n",
-                    VFS_KRYPTO_PASSWORD_MAX_SIZE));
-            }
-            else if (rc == SILENT_RC(rcVFS, rcEncryptionKey, rcUpdating,
-                rcEncryptionKey, rcInvalid))
-            {
-                OUTMSG((
-                    "\nError:\n"
-                    "Invalid character in password\n"
-                    "(CR/LF are not allowed)\n"));
-            }
-            else if (rc == SILENT_RC(rcVFS, rcEncryptionKey, rcUpdating,
-                rcPath, rcExcessive))
-            {
-                OUTMSG((
-                    "\nError:\n"
-                    "Cannot set the password.\n"
-                    "Path to password file is too long.\n"
-                    "Your configuration should be updated.\n"));
-            }
-            else if (rc == SILENT_RC(rcVFS, rcEncryptionKey, rcUpdating,
-                rcPath, rcIncorrect))
-            {
-                OUTMSG((
-                    "\nError:\n"
-                    "Cannot set the password.\n"
-                    "Existing path to password is not a file.\n"
-                    "Your configuration should be updated.\n"));
-            }
-            else if (rc == SILENT_RC(rcVFS, rcEncryptionKey, rcUpdating,
-                rcPath, rcCorrupt))
-            {
-                OUTMSG((
-                    "\nError:\n"
-                    "Cannot set the password.\n"
-                    "Unknown file type for configured path/file name.\n"
-                    "Your configuration should be updated.\n"));
-            }
-            else if (rc == SILENT_RC(rcVFS, rcEncryptionKey, rcWriting,
-                rcFile, rcInsufficient))
-            {
-                OUTMSG((
-                    "\nError:\n"
-                    "Incomplete writes to temporary password file.\n"
-                    "Cannot set the password.\n"));
-            }
-            else {
-                OUTMSG(("\nCannot set the password. Please run "
-                 "\"perl configuration-assistant.perl\" and try again.\n"));
-            }
-        }
-    }
-
-    RELEASE(VFSManager, mgr);
-
-    return rc;
-}
-
-#define PWD_SZ 1024
-
-static
-rc_t run(bool quiet)
-{
-    rc_t rc = 0;
-
-    char password[PWD_SZ] = "";
-
-    bool empty = false;
-
-    KWrtHandler handler;
-    handler.writer = KOutWriterGet();
-    handler.data = KOutDataGet();
-
-    KOutHandlerSetStdErr();
-    KLogLibHandlerSet(NULL, NULL);
-
-    OUTMSG(("Changing password\n"));
-
-#if 1
-    if (rc == 0) {
-        int i = 0;
-        for (i = 0; i < 3 && rc == 0; ++i) {
-            rc = get_pass("New password:", password, sizeof password);
-            DISP_RC(rc, "cannot read the password");
-            if (rc != 0) {
-                break;
-            }
-            if (password[0] == '\0') {
-                OUTMSG(("BAD PASSWORD: too short\n"));
-            }
-            else {
-                break;
-            }
-        }
-        if (rc == 0 && password[0] == '\0') {
-            rc = RC(rcExe, rcString, rcReading, rcString, rcIncorrect);
-            empty = true;
-         /* LOGERR(klogErr, rc, "failed to set password"); */
-        }
-    }
-
-    if (rc == 0) {
-        char repassword[PWD_SZ] = "";
-        rc = get_pass("Retype new password:", repassword, sizeof repassword);
-        DISP_RC(rc, "cannot read the password");
-        if (rc == 0) {
-            if (strcmp(password, repassword)) {
-                OUTMSG(("Sorry, passwords do not match.\n"));
-                rc = RC(rcExe, rcString, rcReading, rcString, rcInconsistent);
-             /* LOGERR(klogErr, rc, "failed to set password"); */
-            }
-        }
-    }
-
-#else
-    strcpy(password, "1n2");
-#endif
-
-    if (rc == 0) {
-        rc = SetPwd(password, quiet);
-    }
-
-    KOutHandlerSet(handler.writer, handler.data);
-
-    if (empty)
-    {   rc = 0; }
-
-    return rc;
-}
-
-#define SL_OPTION "noprompt"
-#define SL_ALIAS "n"
-static const char *SL_USAGE[]
-    = { "Do not suggest running configuration-assistant", NULL };
-
-OptDef Options[] = { { SL_OPTION, SL_ALIAS, NULL, SL_USAGE, 1, false, false } };
-
-const char UsageDefaultName[] = "vdb-passwd";
-
-rc_t CC UsageSummary(const char *progname) {
-    KOutMsg("Update user's NCBI VDB crypto password\n"
-            "If not run with --quiet recommendations\n"
-            "are given if errors are detected.\n"
-            "\n");
-
-    return 0;
-}
-
-rc_t CC Usage(const Args *args) {
-    UsageSummary(UsageDefaultName);
-
-    KOutMsg("Options:\n");
-    HelpOptionsStandard ();
-
-    HelpVersion(UsageDefaultName, KAppVersion());
-
-    return 0;
-}
-
-ver_t CC KAppVersion(void) { return VDB_PASSWD_VERS; }
-
-rc_t CC KMain(int argc, char *argv[]) {
-    Args *args;
-    rc_t rc, orc;
-
-    rc = ArgsMakeAndHandle(&args, argc, argv, 0);
-    if (rc == 0)
-    {
-        uint32_t pcount;
-        rc_t orc;
-
-        /* non standard use of --quiet */
-        rc = ArgsOptionCount(args, OPTION_QUIET, &pcount);
-        if (rc)
-            LOGERR(klogErr, rc, "error check " OPTION_QUIET " option");
-
-        else
-            rc = run (pcount != 0);
-
-        orc = ArgsWhack(args);
-        if (rc == 0)
-            rc = orc;
-    }
-
-    return rc;
-}
diff --git a/tools/util/vdb-passwd.vers b/tools/util/vdb-passwd.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/util/vdb-passwd.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/util/vdb-unlock.c b/tools/util/vdb-unlock.c
index cdcba36..a0a97fe 100644
--- a/tools/util/vdb-unlock.c
+++ b/tools/util/vdb-unlock.c
@@ -117,9 +117,8 @@ rc_t CC KMain ( int argc, char *argv [] )
                 else
                 {
                     VDBManager *mgr;
-
-#if TOOLS_USE_SRAPATH != 0
                     char full [ 4096 ];
+
                     SRAPath *sra_path;
                     rc = SRAPathMake ( & sra_path, NULL );
                     if ( rc == 0 )
@@ -132,7 +131,6 @@ rc_t CC KMain ( int argc, char *argv [] )
                         }
                         SRAPathRelease ( sra_path );
                     }
-#endif
 
                     rc = VDBManagerMakeUpdate ( & mgr, NULL );
                     if ( rc != 0 )
diff --git a/tools/util/vdb-unlock.vers b/tools/util/vdb-unlock.vers
index f90b1af..04b10b4 100644
--- a/tools/util/vdb-unlock.vers
+++ b/tools/util/vdb-unlock.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/util/vdb-unlock.vers.h b/tools/util/vdb-unlock.vers.h
new file mode 100644
index 0000000..f109f03
--- /dev/null
+++ b/tools/util/vdb-unlock.vers.h
@@ -0,0 +1 @@
+#define VDB_UNLOCK_VERS 0x02010007
diff --git a/tools/util/win/syspass.c b/tools/util/win/syspass.c
deleted file mode 100644
index 745b0cc..0000000
--- a/tools/util/win/syspass.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*===========================================================================
-*
-*                            PUBLIC DOMAIN NOTICE
-*               National Center for Biotechnology Information
-*
-*  This software/database is a "United States Government Work" under the
-*  terms of the United States Copyright Act.  It was written as part of
-*  the author's official duties as a United States Government employee and
-*  thus cannot be copyrighted.  This software/database is freely available
-*  to the public for use. The National Library of Medicine and the U.S.
-*  Government have not placed any restriction on its use or reproduction.
-*
-*  Although all reasonable efforts have been taken to ensure the accuracy
-*  and reliability of the software and data, the NLM and the U.S.
-*  Government do not and cannot warrant the performance or results that
-*  may be obtained by using this software or data. The NLM and the U.S.
-*  Government disclaim all warranties, express or implied, including
-*  warranties of performance, merchantability or fitness for any particular
-*  purpose.
-*
-*  Please cite the author in any work or product based on this material.
-*
-* ===========================================================================
-*
-*/
-
-#include "syspass-priv.h" /* get_pass */
-
-#include <klib/rc.h>
-
-#include <conio.h> /* _getch */
-#include <stdio.h>
-
-rc_t get_pass(const char *prompt, char *buf, size_t bufsiz) {
-    if (prompt == NULL || buf == NULL) {
-        return RC(rcExe, rcFunction, rcEvaluating, rcParam, rcNull);
-    }
-
-    fprintf(stderr, "%s", prompt);
-
-    {
-        size_t i = 0;
-        for (i = 0; i < bufsiz; ++i) {
-            buf[i] = _getch();
-            if (buf[i] == '\r') {
-                fprintf(stderr, "\r\n");
-                buf[i] = '\0';
-                return 0;
-            }
-        }
-        return RC(rcExe, rcString, rcReading, rcBuffer, rcInsufficient);
-    }
-}
diff --git a/tools/vdb-config/Makefile b/tools/vdb-config/Makefile
index 9147b01..1971ef6 100644
--- a/tools/vdb-config/Makefile
+++ b/tools/vdb-config/Makefile
@@ -25,7 +25,7 @@
 
 default: std
 
-TOP ?= $(shell ../../build/abspath.sh ../..)
+TOP ?= $(abspath ../..)
 MODULE = tools/vdb-config
 
 include $(TOP)/build/Makefile.env
@@ -42,13 +42,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/std
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # std
@@ -59,13 +61,6 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
 # clean
 #
 clean: stdclean
@@ -94,14 +89,12 @@ VDB_CONFIG_LIB = \
 	-lsraschema \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
-	-lkproc \
 	-lklib \
-    -lm
+	-lbz2 \
+	-ldl \
+	-lz
 
 $(BINDIR)/vdb-config: $(VDB_CONFIG_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_CONFIG_LIB)
diff --git a/tools/vdb-config/vdb-config.c b/tools/vdb-config/vdb-config.c
index 75cf64a..5cd7a1b 100644
--- a/tools/vdb-config/vdb-config.c
+++ b/tools/vdb-config/vdb-config.c
@@ -23,17 +23,13 @@
 * ===========================================================================
 *
 */
-
 #include "vdb-config.vers.h"
 
 #include <kapp/main.h>
 
-#include <vdb/vdb-priv.h> /* VDBManagerListExternalSchemaModules */
-#include <vdb/manager.h> /* VDBManager */
-
 #include <kfg/kfg-priv.h> /* KConfig */
 
-#include <vfs/path-priv.h> /* KPathGetCWD */
+#include <kfs/kfs-priv.h> /* KPathGetCWD */
 #include <kfs/directory.h>
 #include <kfs/file.h>
 
@@ -43,18 +39,16 @@
 #include <klib/out.h> /* OUTMSG */
 #include <klib/rc.h> /* RC */
 
-#include <sysalloc.h> /* redefine malloc etc calls */
 #include <os-native.h> /* SHLX */
 
 #include <assert.h>
 #include <errno.h>
+#include <limits.h> /* PATH_MAX */
 #include <stdio.h> /* scanf */
 #include <stdlib.h> /* getenv */
 #include <string.h> /* memset */
 /* #include <unistd.h> access */
 
-#include <limits.h> /* PATH_MAX */
-
 #ifndef PATH_MAX
 #define PATH_MAX 4096
 #endif
@@ -63,7 +57,7 @@
 #define DISP_RC2(rc, name, msg) (void)((rc == 0) ? 0 : \
     PLOGERR(klogInt, (klogInt, rc, \
         "$(name): $(msg)", "name=%s,msg=%s", name, msg)))
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
+#define DESTRUCT(type, obj) do { rc_t rc2 = type##Release(obj); \
     if (rc2 && !rc) { rc = rc2; } obj = NULL; } while (false)
 
 #define ALIAS_ALL    "a"
@@ -86,39 +80,23 @@ static const char* USAGE_ENV[] = { "print shell variables", NULL };
 #define OPTION_FIL   "files"
 static const char* USAGE_FIL[] = { "print loaded files", NULL };
 
-#define ALIAS_IMP    NULL
-#define OPTION_IMP   "import"
-static const char* USAGE_IMP[] = { "import ngc file", NULL };
-
 #define ALIAS_MOD    "m"
 #define OPTION_MOD   "modules"
 static const char* USAGE_MOD[] = { "print external modules", NULL };
 
-#define ALIAS_OUT    "o"
-#define OPTION_OUT   "output"
-static const char* USAGE_OUT[] = { "output type: one of (x n), "
-    "where 'x' is xml (default), 'n' is native", NULL };
-
 #define ALIAS_CFG    "p"
 #define OPTION_CFG   "cfg"
 static const char* USAGE_CFG[] = { "print current configuration", NULL };
 
-#define ALIAS_SET    "s"
-#define OPTION_SET   "set"
-static const char* USAGE_SET[] = { "set configuration node value", NULL };
-
 OptDef Options[] =
-{                                         /* needs_value, required */
+{
       { OPTION_ALL, ALIAS_ALL, NULL, USAGE_ALL, 1, false, false }
     , { OPTION_CFG, ALIAS_CFG, NULL, USAGE_CFG, 1, false, false }
     , { OPTION_DIR, ALIAS_DIR, NULL, USAGE_DIR, 1, false, false }
     , { OPTION_ENV, ALIAS_ENV, NULL, USAGE_ENV, 1, false, false }
     , { OPTION_FIL, ALIAS_FIL, NULL, USAGE_FIL, 1, false, false }
-    , { OPTION_IMP, ALIAS_IMP, NULL, USAGE_IMP, 1, true , false }
     , { OPTION_MOD, ALIAS_MOD, NULL, USAGE_MOD, 1, false, false }
     , { OPTION_NEW, ALIAS_NEW, NULL, USAGE_NEW, 1, false, false }
-    , { OPTION_OUT, ALIAS_OUT, NULL, USAGE_OUT, 1, true , false }
-    , { OPTION_SET, ALIAS_SET, NULL, USAGE_SET, 1, true , false }
 };
 
 rc_t CC UsageSummary (const char * progname) {
@@ -151,15 +129,6 @@ rc_t CC Usage(const Args* args) {
 /*  HelpOptionLine (ALIAS_NEW, OPTION_MOD, NULL, USAGE_NEW); */
     HelpOptionLine (ALIAS_FIL, OPTION_FIL, NULL, USAGE_FIL);
     HelpOptionLine (ALIAS_ENV, OPTION_ENV, NULL, USAGE_ENV);
-    HelpOptionLine (ALIAS_MOD, OPTION_MOD, NULL, USAGE_MOD);
-    KOutMsg ("\n");
-    HelpOptionLine (ALIAS_SET, OPTION_SET, "name=value", USAGE_SET);
-    KOutMsg ("\n");
-    HelpOptionLine (ALIAS_IMP, OPTION_IMP, "ngc-file", USAGE_IMP);
-    KOutMsg ("\n");
-    HelpOptionLine (ALIAS_OUT, OPTION_OUT, "x | n", USAGE_OUT);
-
-    KOutMsg ("\n");
 
     HelpOptionsStandard ();
 
@@ -172,9 +141,9 @@ const char UsageDefaultName[] = "vdb-config";
 
 ver_t CC KAppVersion(void) { return VDB_CONFIG_VERS; }
 
-static void Indent(bool xml, int n) {
-    if (!xml)
-    {   return; }
+static rc_t ArgsRelease(Args* self) { return ArgsWhack(self); }
+
+static void Indent(int n) {
     while (n--)
     {   OUTMSG(("  ")); }
 }
@@ -190,9 +159,7 @@ static rc_t KConfigNodeReadData(const KConfigNode* self,
     assert(*num_read <= blen);
     return rc;
 }
-
-#define VDB_CONGIG_OUTMSG(args) do { if (xml) { OUTMSG(args); } } while (false)
-static rc_t KConfigNodePrintChildNames(bool xml, const KConfigNode* self,
+static rc_t KConfigNodePrintChildNames(const KConfigNode* self,
     const char* name, int indent, const char* aFullpath)
 {
     rc_t rc = 0;
@@ -211,9 +178,8 @@ static rc_t KConfigNodePrintChildNames(bool xml, const KConfigNode* self,
     if (rc == 0) {
         rc = KConfigNodeReadData(node, buffer, sizeof buffer, &num_read);
         hasData = num_read;
-        if (hasData) {
- /* VDB_CONGIG_OUTMSG(("\n%s = \"%.*s\"\n\n", aFullpath, num_read, buffer)); */
-        }
+        if (hasData)
+        { /* OUTMSG(("\n%s = \"%.*s\"\n\n", aFullpath, num_read, buffer)); */ }
     }
     if (rc == 0)
     {   rc = KConfigNodeListChild(node, &names); }
@@ -222,21 +188,16 @@ static rc_t KConfigNodePrintChildNames(bool xml, const KConfigNode* self,
         hasChildren = count;
     }
 
-    Indent(xml, indent);
-    VDB_CONGIG_OUTMSG(("<%s", name));
+    Indent(indent);
+    OUTMSG(("<%s", name));
     if (!hasChildren && !hasData)
-    {   VDB_CONGIG_OUTMSG(("/>\n")); }
+    {   OUTMSG(("/>")); }
     else
-    {   VDB_CONGIG_OUTMSG((">")); }
-    if (hasData) {
-        if (xml) {
-            VDB_CONGIG_OUTMSG(("%.*s", (int)num_read, buffer));
-        }
-        else
-        {   OUTMSG(("%s = \"%.*s\"\n", aFullpath, (int)num_read, buffer)); }
-    }
+    {   OUTMSG((">")); }
+    if (hasData)
+    {   OUTMSG(("%.*s", (int)num_read, buffer)); }
     if (hasChildren)
-    {   VDB_CONGIG_OUTMSG(("\n"));}
+    {   OUTMSG(("\n"));}
 
     if (hasChildren) {
         for (i = 0; i < count && rc == 0; ++i) {
@@ -255,19 +216,19 @@ static rc_t KConfigNodePrintChildNames(bool xml, const KConfigNode* self,
             }
             if (rc == 0) {
                 rc = KConfigNodePrintChildNames
-                    (xml, node, name, indent + 1, fullpath);
+                    (node, name, indent + 1, fullpath);
             }
             free(fullpath);
         }
     }
 
     if (hasChildren)
-    {   Indent(xml, indent); }
+    {   Indent(indent); }
     if (hasChildren || hasData)
-    {   VDB_CONGIG_OUTMSG(("</%s>\n",name)); }
+    {   OUTMSG(("</%s>\n",name)); }
 
-    RELEASE(KNamelist, names);
-    RELEASE(KConfigNode, node);
+    DESTRUCT(KNamelist, names);
+    DESTRUCT(KConfigNode, node);
     return rc;
 }
 
@@ -276,13 +237,6 @@ typedef struct Params {
     uint32_t argsParamIdx;
     uint32_t argsParamCnt;
 
-    bool xml;
-
-    const char* setValue;
-
-    const char* ngc;
-
-    bool modeSetNode;
     bool modeCreate;
     bool modeShowCfg;
     bool modeShowEnv;
@@ -318,30 +272,7 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
             ++count;
         }
 
-        prm->xml = true;
-        rc = ArgsOptionCount(args, OPTION_OUT, &pcount);
-        if (rc) {
-            LOGERR(klogErr, rc, "Failure to get '" OPTION_OUT "' argument");
-            break;
-        }
-        if (pcount) {
-            const char* dummy = NULL;
-            rc = ArgsOptionValue(args, OPTION_OUT, 0, &dummy);
-            if (rc) {
-                LOGERR(klogErr, rc, "Failure to get '" OPTION_OUT "' argument");
-                break;
-            }
-            if (!strcmp(dummy, "n")) {
-                prm->xml = false;
-            }
-            else if (strcmp(dummy, "x")) {
-                rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInvalid);
-                LOGERR(klogErr, rc, "Bad " OPTION_OUT " value");
-                break;
-            }
-        }
-
-        rc = ArgsOptionCount(args, OPTION_CFG, &pcount);
+        rc = ArgsOptionCount (args, OPTION_CFG, &pcount);
         if (rc) {
             LOGERR(klogErr, rc, "Failure to get '" OPTION_CFG "' argument");
             break;
@@ -353,7 +284,7 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
             }
         }
 
-        rc = ArgsOptionCount(args, OPTION_ENV, &pcount);
+        rc = ArgsOptionCount (args, OPTION_ENV, &pcount);
         if (rc) {
             LOGERR(klogErr, rc, "Failure to get '" OPTION_ENV "' argument");
             break;
@@ -363,7 +294,7 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
             ++count;
         }
 
-        rc = ArgsOptionCount(args, OPTION_FIL, &pcount);
+        rc = ArgsOptionCount (args, OPTION_FIL, &pcount);
         if (rc) {
             LOGERR(klogErr, rc, "Failure to get '" OPTION_FIL "' argument");
             break;
@@ -373,20 +304,7 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
             ++count;
         }
 
-        rc = ArgsOptionCount(args, OPTION_IMP, &pcount);
-        if (rc) {
-            LOGERR(klogErr, rc, "Failure to get '" OPTION_IMP "' argument");
-            break;
-        }
-        if (pcount) {
-            rc = ArgsOptionValue(args, OPTION_IMP, 0, &prm->ngc);
-            if (rc) {
-                LOGERR(klogErr, rc, "Failure to get '" OPTION_IMP "' argument");
-                break;
-            }
-        }
-
-        rc = ArgsOptionCount(args, OPTION_MOD, &pcount);
+        rc = ArgsOptionCount (args, OPTION_MOD, &pcount);
         if (rc) {
             LOGERR(klogErr, rc, "Failure to get '" OPTION_MOD "' argument");
             break;
@@ -396,8 +314,7 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
             ++count;
         }
 
-#if 0
-        rc = ArgsOptionCount(args, OPTION_NEW, &pcount);
+        rc = ArgsOptionCount (args, OPTION_NEW, &pcount);
         if (rc) {
             LOGERR(klogErr, rc, "Failure to get '" OPTION_NEW "' argument");
             break;
@@ -406,9 +323,8 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
             prm->modeCreate = true;
             ++count;
         }
-#endif
 
-        rc = ArgsOptionCount(args, OPTION_DIR, &pcount);
+        rc = ArgsOptionCount (args, OPTION_DIR, &pcount);
         if (rc) {
             LOGERR(klogErr, rc, "Failure to get '" OPTION_DIR "' argument");
             break;
@@ -418,29 +334,7 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
             ++count;
         }
 
-        rc = ArgsOptionCount(args, OPTION_SET, &pcount);
-        if (rc) {
-            LOGERR(klogErr, rc, "Failure to get '" OPTION_SET "' argument");
-            break;
-        }
-        if (pcount) {
-            rc = ArgsOptionValue(args, OPTION_SET, 0, &prm->setValue);
-            if (rc == 0) {
-                const char* p = strchr(prm->setValue, '=');
-                if (p == NULL || *(p + 1) == '\0') {
-                    rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInvalid);
-                    LOGERR(klogErr, rc, "Bad " OPTION_SET " value");
-                    break;
-                }
-                prm->modeSetNode = true;
-                prm->modeCreate = prm->modeShowCfg = prm->modeShowEnv
-                    = prm->modeShowFiles = prm->modeShowLoadPath
-                    = prm->modeShowModules = false;
-                count = 1;
-            }
-        }
-
-        rc = ArgsOptionCount(args, OPTION_ALL, &pcount);
+        rc = ArgsOptionCount (args, OPTION_ALL, &pcount);
         if (rc) {
             LOGERR(klogErr, rc, "Failure to get '" OPTION_ALL "' argument");
             break;
@@ -448,8 +342,7 @@ static rc_t ParamsConstruct(int argc, char* argv[], Params* prm) {
         if (pcount
             || ( !prm->modeShowCfg && ! prm->modeShowLoadPath
               && !prm->modeShowEnv && !prm->modeShowFiles
-              && !prm->modeShowModules && !prm->modeCreate
-              && !prm->modeSetNode && !prm->ngc))
+              && !prm->modeShowModules && !prm->modeCreate ))
             /* show all by default */
         {
             prm->modeShowCfg = prm->modeShowEnv = prm->modeShowFiles = true;
@@ -481,7 +374,7 @@ static rc_t ParamsGetNextParam(Params* prm, const char** param) {
 static rc_t ParamsDestruct(Params* prm) {
     rc_t rc = 0;
     assert(prm);
-    RELEASE(Args, prm->args);
+    DESTRUCT(Args, prm->args);
     return rc;
 }
 
@@ -493,7 +386,7 @@ rc_t privReadStdinLine(char* buf, size_t bsize, bool destroy)
     static uint64_t pos = 0;
     size_t num_read = 0;
     if (destroy) {
-        RELEASE(KFile, std_in);
+        DESTRUCT(KFile, std_in);
         pos = 0;
         return rc;
     }
@@ -603,7 +496,7 @@ static rc_t CreateConfig(char* argv0) {
         if (home)
         {   def = home; }
         else {
-            rc = VPathGetCWD(cwd, sizeof cwd);
+            rc = KPathGetCWD(cwd, sizeof cwd);
             if (rc == 0 && cwd[0])
             {   def = cwd; }
             else
@@ -654,7 +547,7 @@ static rc_t CreateConfig(char* argv0) {
         {   break; }
         rc = KDirectoryOpenDirRead(native, &dir, false, refseq);
         if (rc == 0) {
-            RELEASE(KDirectory, dir);
+            DESTRUCT(KDirectory, dir);
             break;
         }
         else if (GetRCObject(rc) == rcPath
@@ -715,22 +608,21 @@ static rc_t CreateConfig(char* argv0) {
                 pos += num_writ;
             }
         }
-        RELEASE(KFile, f);
+        DESTRUCT(KFile, f);
     }
     free(mod);
     free(wmod);
     free(refseq);
     free(location);
-    RELEASE(KDirectory, dir);
-    RELEASE(KDirectory, native);
-    RELEASE(KFile, std_in);
+    DESTRUCT(KDirectory, dir);
+    DESTRUCT(KDirectory, native);
+    DESTRUCT(KFile, std_in);
     DestroyStdin();
     return rc;
 }
 
 
 #ifndef _STATIC
-#if 0
 static rc_t CC scan_mod_dir(const KDirectory* dir,
     uint32_t type, const char* name, void* data)
 {
@@ -778,50 +670,18 @@ static rc_t ShowModDir(const KDirectory* native, char* path) {
     }
     return rc;
 }
-#endif
-#endif
 
+#endif
 static rc_t ShowModules(const KConfig* cfg, const Params* prm) {
     rc_t rc = 0;
 #ifdef _STATIC
     OUTMSG(("<!-- Modules are not used in static build -->\n"));
 #else
-    const VDBManager* mgr = NULL;
-    KNamelist* list = NULL;
-    OUTMSG(("<!-- Modules -->\n"));
-    rc = VDBManagerMakeRead(&mgr, NULL);
-    DISP_RC(rc, "while calling VDBManagerMakeRead");
-    if (rc == 0) {
-        rc = VDBManagerListExternalSchemaModules(mgr, &list);
-        DISP_RC(rc, "while calling VDBManagerListExternalSchemaModules");
-    }
-    if (rc == 0) {
-        uint32_t count = 0;
-        rc = KNamelistCount(list, &count);
-        DISP_RC(rc, "while calling KNamelistCount "
-            "on VDBManagerListExternalSchemaModules result");
-        if (rc == 0) {
-            int64_t i = 0;
-            for (i = 0; i < count && rc == 0; ++i) {
-                const char* name = NULL;
-                rc = KNamelistGet(list, i, &name);
-                DISP_RC(rc, "while calling KNamelistGet "
-                    "on VDBManagerListExternalSchemaModules result");
-                if (rc == 0) {
-                    OUTMSG(("%s\n", name));
-                }
-            }
-        }
-    }
-    OUTMSG(("\n"));
-    RELEASE(KNamelist, list);
-    RELEASE(VDBManager, mgr);
-#endif
-#if 0
     KDirectory* dir = NULL;
     const char* paths[] = { "vdb/module/paths", "vdb/wmodule/paths" };
     int i = 0;
     assert(cfg);
+    OUTMSG(("<!-- Modules -->\n"));
     for (i = 0; i < sizeof paths / sizeof paths[0] && rc == 0; ++i) {
         const KConfigNode* node = NULL;
         if (rc == 0) {
@@ -857,72 +717,19 @@ static rc_t ShowModules(const KConfig* cfg, const Params* prm) {
                     }
                 }
             }
-            RELEASE(KConfigNode, node);
+            DESTRUCT(KConfigNode, node);
         }
     }
-    RELEASE(KDirectory, dir);
+    DESTRUCT(KDirectory, dir);
 #endif
     return rc;
 }
 
-static rc_t SetNode(KConfig* cfg, const Params* prm) {
-    rc_t rc = 0;
-
-    KConfigNode* node = NULL;
-    char* name = NULL;
-    char* val  = NULL;
-
-    assert(cfg && prm && prm->setValue);
-
-    name = strdup(prm->setValue);
-    if (name == NULL)
-    {   return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted); }
-
-    val = strchr(name, '=');
-    if (val == NULL || *(val + 1) == '\0') {
-        rc_t rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInvalid);
-        LOGERR(klogErr, rc, "Bad " OPTION_SET " value");
-    }
-
-    if (rc == 0) {
-        *(val++) = '\0';
-
-        rc = KConfigOpenNodeUpdate(cfg, &node, name);
-        if (rc != 0) {
-            PLOGERR(klogErr, (klogErr, rc,
-                "Cannot open node '$(name)' for update", "name=%s", name));
-        }
-    }
-
-    if (rc == 0) {
-        assert(val);
-        rc = KConfigNodeWrite(node, val, strlen(val));
-        if (rc != 0) {
-            PLOGERR(klogErr, (klogErr, rc,
-                "Cannot write value '$(val) to node '$(name)'",
-                "val=%s,name=%s", val, name));
-        }
-    }
-
-    if (rc == 0) {
-        rc = KConfigCommit(cfg);
-        DISP_RC(rc, "while calling KConfigCommit");
-    }
-
-    free(name);
-    name = NULL;
-
-    RELEASE(KConfigNode, node);
-    return rc;
-}
-
 static rc_t ShowConfig(const KConfig* cfg, Params* prm) {
     rc_t rc = 0;
     bool hasAny = false;
     bool hasQuery = false;
-    bool xml = true;
     assert(cfg && prm);
-    xml = prm->xml;
     while (rc == 0) {
         KNamelist* names = NULL;
         const KConfigNode* node = NULL;
@@ -958,12 +765,9 @@ static rc_t ShowConfig(const KConfig* cfg, Params* prm) {
             }
             else {
                 char *c = memrchr(root, '/', len);
-                if (c != NULL) {
-                    nodeName = c + 1;
-                }
-                else {
-                    nodeName = root;
-                }
+                if (c != NULL)
+                {   nodeName = c + 1; }
+                else { nodeName = root; }
             }
             assert(nodeName && nodeName[0]);
             nodeNameL = strlen(nodeName);
@@ -988,15 +792,9 @@ static rc_t ShowConfig(const KConfig* cfg, Params* prm) {
             if (rc == 0 && num_read > 0) {
                 if (prm->showMultiple)
                 {   OUTMSG(("<!-- Configuration node %s -->\n", root)); }
-                if (xml) {
-                    VDB_CONGIG_OUTMSG(("<%.*s>", nodeNameL, nodeName));
-                    VDB_CONGIG_OUTMSG(("%.*s", (int)num_read, buf));
-                    VDB_CONGIG_OUTMSG(("</%.*s>\n", nodeNameL, nodeName));
-                }
-                else {
-                    OUTMSG(("%.*s = \"%.*s\"\n",
-                        nodeNameL, nodeName, (int)num_read, buf));
-                }
+                OUTMSG(("<%.*s>", nodeNameL, nodeName));
+                OUTMSG(("%.*s", (int)num_read, buf));
+                OUTMSG(("</%.*s>\n", nodeNameL, nodeName));
                 hasAny = true;
             }
         }
@@ -1005,11 +803,11 @@ static rc_t ShowConfig(const KConfig* cfg, Params* prm) {
                 if (nodeName[0] != '/') {
                     if (prm->showMultiple)
                     {   OUTMSG(("<!-- Configuration node %s -->\n", root)); }
-                    VDB_CONGIG_OUTMSG(("<%.*s>\n", nodeNameL, nodeName));
+                    OUTMSG(("<%.*s>\n", nodeNameL, nodeName));
                 } else {
                     if (prm->showMultiple)
                     {   OUTMSG(("<!-- Current configuration -->\n")); }
-                    VDB_CONGIG_OUTMSG(("<Config>\n"));
+                    OUTMSG(("<Config>\n"));
                 }
                 hasAny = true;
                 ++indent;
@@ -1021,12 +819,11 @@ static rc_t ShowConfig(const KConfig* cfg, Params* prm) {
                 if (rc == 0) {
                     char* fullname = NULL;
                     if (strcmp(root, "/") == 0) {
-                        fullname = malloc(strlen(name) + 2);
+                        fullname = calloc(1, 1);
                         if (fullname == NULL) {
                             rc = RC(rcExe,
                                 rcStorage, rcAllocating, rcMemory, rcExhausted);
                         }
-                        sprintf(fullname, "/%s", name);
                     }
                     else {
                         fullname = strdup(root);
@@ -1037,7 +834,7 @@ static rc_t ShowConfig(const KConfig* cfg, Params* prm) {
                     }
                     if (rc == 0) {
                         rc = KConfigNodePrintChildNames
-                            (xml, node, name, indent, fullname);
+                            (node, name, indent, fullname);
                         hasAny = true;
                     }
                     free(fullname);
@@ -1045,26 +842,17 @@ static rc_t ShowConfig(const KConfig* cfg, Params* prm) {
                 }
             }
             if (rc == 0) {
-                if (nodeName[0] != '/') {
-                    VDB_CONGIG_OUTMSG(("</%.*s>\n", nodeNameL, nodeName));
-                }
-                else {
-                    VDB_CONGIG_OUTMSG(("</Config>\n"));
-                }
+                if (nodeName[0] != '/')
+                {   OUTMSG(("</%.*s>\n", nodeNameL, nodeName)); }
+                else { OUTMSG(("</Config>\n")); }
             }
         }
 
-        RELEASE(KConfigNode, node);
-        RELEASE(KNamelist, names);
+        DESTRUCT(KConfigNode, node);
+        DESTRUCT(KNamelist, names);
 
-        if (rc == 0) {
-            if (hasAny) {
-                OUTMSG(("\n"));
-            }
-            else if (nodeNameL > 0 && nodeName != NULL) {
-                VDB_CONGIG_OUTMSG(("<%.*s/>\n", nodeNameL, nodeName));
-            }
-        }
+        if (rc == 0 && hasAny)
+        {   OUTMSG(("\n")); }
 
         if (!hasQuery)
         {   break; }
@@ -1101,9 +889,6 @@ static rc_t ShowFiles(const KConfig* cfg, const Params* prm) {
     }
     if (rc == 0 && hasAny)
     {   OUTMSG(("\n")); }
-
-    RELEASE(KNamelist, names);
-
     return rc;
 }
 
@@ -1112,8 +897,7 @@ static void ShowEnv(const Params* prm) {
     const char * env_list [] = {
         "KLIB_CONFIG",
         "VDB_CONFIG",
-        "VDBCONFIG",
-        "LD_LIBRARY_PATH"
+        "VDBCONFIG"
     };
     int i = 0;
 
@@ -1140,9 +924,8 @@ rc_t CC KMain(int argc, char* argv[]) {
     Params prm;
     KConfig* cfg = NULL;
 
-    if (rc == 0) {
-        rc = ParamsConstruct(argc, argv, &prm);
-    }
+    if (rc == 0)
+    {   rc = ParamsConstruct(argc, argv, &prm); }
 
     if (rc == 0) {
         rc = KConfigMake(&cfg, NULL);
@@ -1150,57 +933,34 @@ rc_t CC KMain(int argc, char* argv[]) {
     }
 
     if (rc == 0) {
-        if (prm.ngc) {
-            rc = KConfigImportNgc(cfg, prm.ngc, NULL);
-            if (rc == 0) {
-                rc = KConfigCommit(cfg);
-            }
-            if (rc == 0) {
-                OUTMSG(("%s was imported\n", prm.ngc));
-            }
-        }
-        else if (prm.modeSetNode) {
-            rc_t rc3 = SetNode(cfg, &prm);
-            if (rc3 != 0 && rc == 0) {
-                rc = rc3;
-            }
-        }
-        if (prm.modeShowCfg) {
-            rc_t rc3 = ShowConfig(cfg, &prm);
-            if (rc3 != 0 && rc == 0) {
-                rc = rc3;
-            }
-        }
+        if (prm.modeShowCfg)
+        {   rc = ShowConfig(cfg, &prm); }
         if (prm.modeShowFiles) {
             rc_t rc3 = ShowFiles(cfg, &prm);
-            if (rc3 != 0 && rc == 0) {
-                rc = rc3;
-            }
+            if (rc3 != 0 && rc == 0)
+            {   rc = rc3; }
         }
         if (prm.modeShowModules) {
             rc_t rc3 = ShowModules(cfg, &prm);
-            if (rc3 != 0 && rc == 0) {
-                rc = rc3;
-            }
+            if (rc3 != 0 && rc == 0)
+            {   rc = rc3; }
         }
         if (prm.modeShowLoadPath) {
             const char* path = NULL;
             rc_t rc3 = KConfigGetLoadPath(cfg, &path);
             if (rc3 == 0) {
-                if (path != NULL && path[0]) {
-                    OUTMSG(("%s\n", path));
-                }
-            }
-            else if (rc == 0) {
-                rc = rc3;
+                if (path != NULL && path[0])
+                {   OUTMSG(("%s\n", path)); }
             }
+            else if (rc == 0)
+            {   rc = rc3; }
         }
     }
 
     if (prm.modeShowEnv)
     {   ShowEnv(&prm); }
 
-    RELEASE(KConfig, cfg);
+    DESTRUCT(KConfig, cfg);
 
     if (rc == 0 && prm.modeCreate)
     {   rc = CreateConfig(argv[0]); }
diff --git a/tools/vdb-config/vdb-config.vers b/tools/vdb-config/vdb-config.vers
index f90b1af..04b10b4 100644
--- a/tools/vdb-config/vdb-config.vers
+++ b/tools/vdb-config/vdb-config.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/vdb-config/vdb-config.vers.h b/tools/vdb-config/vdb-config.vers.h
new file mode 100644
index 0000000..7be5280
--- /dev/null
+++ b/tools/vdb-config/vdb-config.vers.h
@@ -0,0 +1 @@
+#define VDB_CONFIG_VERS 0x02010007
diff --git a/tools/vdb-copy/#Makefile# b/tools/vdb-copy/#Makefile#
deleted file mode 100644
index e404a18..0000000
--- a/tools/vdb-copy/#Makefile#
+++ /dev/null
@@ -1,137 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/vdb-copy
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS = \
-
-EXT_TOOLS = \
-	vdb-copy
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: $(addsuffix _tag,$(ALL_TOOLS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
-
-#-------------------------------------------------------------------------------
-# vdb-copy
-#  vdb copy tool
-#
-$(BINDIR)/vdb-copy: $(NCBIDIR)/vdb-copy.kfg 
-
-$(NCBIDIR)/vdb-copy.kfg: $(SRCDIR)/vdb-copy.kfg
-	cp $^ $@
-
-VDB_COPY_SRC = \
-	num-gen \
-	context \
-	helper \
-	coldefs \
-	get_platform \
-	namelist_tools \
-	progressbar \
-	copy_meta \
-	type_matcher \
-	redactval \
-	config_values \
-	vdb-copy
-
-VDB_COPY_OBJ = \
-	$(addsuffix .$(OBJX),$(VDB_COPY_SRC))
-
-VDB_COPY_LIB = \
-	-ssrapath \
-	-swsraschema \
-	-dwsraxf \
-	-dwvxf \
-	-lwvdb \
-	-lwkdb \
-	-lkapp \
-	-lvfs \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lksrch \
-	-lklib \
-	-lkproc \
-	-lm
-
-$(BINDIR)/vdb-copy: $(VDB_COPY_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_COPY_LIB)
-
-vdb-copy_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) vdb-copy $(VDB_COPY_OBJ)
diff --git a/tools/vdb-copy/Makefile b/tools/vdb-copy/Makefile
index eea6e0d..34d5ae5 100644
--- a/tools/vdb-copy/Makefile
+++ b/tools/vdb-copy/Makefile
@@ -25,7 +25,7 @@
 
 default: std
 
-TOP ?= $(shell ../../build/abspath.sh ../..)
+TOP ?= $(abspath ../..)
 MODULE = tools/vdb-copy
 
 include $(TOP)/build/Makefile.env
@@ -42,13 +42,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # all
@@ -67,18 +69,18 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
+# clean
 #
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+clean: stdclean
 
-.PHONY: $(TARGDIR)/vers-includes
+.PHONY: clean
 
 #-------------------------------------------------------------------------------
-# clean
+# tag
 #
-clean: stdclean
+tag: $(addsuffix _tag,$(ALL_TOOLS))
 
-.PHONY: clean
+.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
 
 #-------------------------------------------------------------------------------
 # vdb-copy
@@ -109,20 +111,23 @@ VDB_COPY_OBJ = \
 VDB_COPY_LIB = \
 	-ssrapath \
 	-swsraschema \
-	$(UPDATE_SCHEMA_LIBS) \
-	-lalign-reader \
+	-dwsraxf \
+	-dwvxf \
 	-lwvdb \
 	-lwkdb \
 	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
 	-lkfg \
 	-lkfs \
 	-lksrch \
-	-lkproc \
 	-lklib \
+	-lkproc \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 $(BINDIR)/vdb-copy: $(VDB_COPY_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_COPY_LIB)
+
+vdb-copy_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) vdb-copy $(VDB_COPY_OBJ)
diff --git a/tools/vdb-copy/coldefs.c b/tools/vdb-copy/coldefs.c
index b89a2e8..e4aca12 100644
--- a/tools/vdb-copy/coldefs.c
+++ b/tools/vdb-copy/coldefs.c
@@ -28,11 +28,9 @@
 #include "helper.h"
 #include "definitions.h"
 
-#include <klib/text.h>
-#include <klib/printf.h>
-
 #include <sysalloc.h>
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -232,7 +230,7 @@ rc_t col_defs_add_to_rd_cursor( col_defs* defs, const VCursor *cursor, bool show
                     DISP_RC( rc, "col_defs_add_to_cursor:VCursorDatatype() failed" );
                     col->src_valid = ( rc == 0 );
                     if ( show && col->src_valid )
-                        KOutMsg( "added to rd-cursor: >%s<\n", col->name );
+                        OUTMSG(( "added to rd-cursor: >%s<\n", col->name ));
                 }
 
             }
@@ -324,9 +322,9 @@ rc_t col_defs_add_to_wr_cursor( col_defs* defs, const VCursor* cursor, bool show
                 if ( show )
                 {
                     if ( col->to_copy )
-                        KOutMsg( "added to wr-cursor: >%s<\n", col->name );
+                        OUTMSG(( "added to wr-cursor: >%s<\n", col->name ));
                     else
-                        KOutMsg( "cannot add >%s<\n", col->name );
+                        OUTMSG(( "cannot add >%s<\n", col->name ));
                 }
             }
     }
@@ -547,10 +545,11 @@ uint32_t col_defs_count_copy_cols( col_defs* defs )
  * given list of column-names the to copy-flag is cleared
  * does not require an open cursor.
 */
-rc_t col_defs_exclude_these_columns( col_defs* defs, const char * prefix, const char * column_names )
+rc_t col_defs_exclude_these_columns( col_defs* defs, const char * column_names )
 {
     rc_t rc = 0;
     const KNamelist *names;
+    uint32_t idx, len;
 
     if ( defs == NULL )
         return RC( rcExe, rcNoTarg, rcResolving, rcSelf, rcNull );
@@ -564,40 +563,14 @@ rc_t col_defs_exclude_these_columns( col_defs* defs, const char * prefix, const
     DISP_RC( rc, "col_defs_parse_string:nlt_make_namelist_from_string() failed" );
     if ( rc == 0 )
     {
-        uint32_t idx, len = VectorLength( &(defs->cols) );
-        size_t prefix_len = 0;
-        if ( prefix != 0 )
-            prefix_len = string_size( prefix ) + 2;
+        len = VectorLength( &(defs->cols) );
         for ( idx = 0;  idx < len; ++idx )
         {
             p_col_def col = (p_col_def) VectorGet ( &(defs->cols), idx );
             if ( col != NULL )
-            {
                 if ( col->requested )
-                {
                     if ( nlt_is_name_in_namelist( names, col->name ) )
                         col->requested = false;
-                    else
-                    {
-                        if ( prefix != NULL )
-                        {
-                            size_t len1 = string_size ( col->name ) + prefix_len;
-                            char * s = malloc( len1 );
-                            if ( s != NULL )
-                            {
-                                size_t num_writ;
-                                rc_t rc1 = string_printf ( s, len1, &num_writ, "%s:%s", prefix, col->name );
-                                if ( rc1 == 0 )
-                                {
-                                    if ( nlt_is_name_in_namelist( names, s ) )
-                                        col->requested = false;
-                                }
-                                free( s );
-                            }
-                        }
-                    }
-                }
-            }
         }
         KNamelistRelease( names );
     }
@@ -723,7 +696,7 @@ rc_t col_defs_mark_writable_columns( col_defs* defs, VTable *tab, bool show )
                     if ( nlt_is_name_in_namelist( writables, col->name ) )
                     {
                         if ( show )
-                            KOutMsg( "writable column: >%s<\n", col->name );
+                            OUTMSG(( "writable column: >%s<\n", col->name ));
                         col->to_copy = true;
                     }
         }
diff --git a/tools/vdb-copy/coldefs.h b/tools/vdb-copy/coldefs.h
index 5313f18..9cd92ae 100644
--- a/tools/vdb-copy/coldefs.h
+++ b/tools/vdb-copy/coldefs.h
@@ -231,7 +231,7 @@ uint32_t col_defs_count_copy_cols( col_defs* defs );
  * does not require an open cursor.
 */
 rc_t col_defs_exclude_these_columns( col_defs* defs,
-                const char * prefix, const char * column_names );
+                const char * column_names );
 
 rc_t col_defs_as_string( col_defs* defs, char ** dst, bool only_requested );
 
diff --git a/tools/vdb-copy/context.c b/tools/vdb-copy/context.c
index 6dfe569..b6c5d52 100644
--- a/tools/vdb-copy/context.c
+++ b/tools/vdb-copy/context.c
@@ -428,11 +428,7 @@ static void context_evaluate_options( const Args *my_args, p_context ctx )
 
     context_set_md5_mode( ctx, context_get_str_option( my_args, OPTION_MD5_MODE ) );
     context_set_blob_checksum( ctx, context_get_str_option( my_args, OPTION_BLOB_CHECKSUM ) );
-
-#if ALLOW_EXTERNAL_CONFIG
     context_set_kfg_path( ctx, context_get_str_option( my_args, OPTION_KFG_PATH ) );
-#endif
-
     context_set_table( ctx, context_get_str_option( my_args, OPTION_TABLE ) );
 #if ALLOW_COLUMN_SPEC
     context_set_columns( ctx, context_get_str_option( my_args, OPTION_COLUMNS ) );
diff --git a/tools/vdb-copy/context.h b/tools/vdb-copy/context.h
index dbeb202..43d047a 100644
--- a/tools/vdb-copy/context.h
+++ b/tools/vdb-copy/context.h
@@ -54,11 +54,7 @@ extern "C" {
 #define OPTION_WITHOUT_ACCESSION "without_accession"
 #define OPTION_IGNORE_REJECT     "ignore_reject"
 #define OPTION_IGNORE_REDACT     "ignore_redact"
-
-#if ALLOW_EXTERNAL_CONFIG
 #define OPTION_KFG_PATH          "kfg_path"
-#endif
-
 #define OPTION_SHOW_MATCHING     "show_matching"
 #define OPTION_SHOW_PROGRESS     "show_progress"
 #define OPTION_IGNORE_INCOMP     "ignore_incompatible_columns"
@@ -79,11 +75,7 @@ extern "C" {
 #define ALIAS_WITHOUT_ACCESSION "a"
 #define ALIAS_IGNORE_REJECT     "r"
 #define ALIAS_IGNORE_REDACT     "e"
-
-#if ALLOW_EXTERNAL_CONFIG
 #define ALIAS_KFG_PATH          "k"
-#endif
-
 #define ALIAS_SHOW_MATCHING     "m"
 #define ALIAS_SHOW_PROGRESS     "p"
 #define ALIAS_IGNORE_INCOMP     "i"
diff --git a/tools/vdb-copy/copy_meta.c b/tools/vdb-copy/copy_meta.c
index f80feed..1786fb9 100644
--- a/tools/vdb-copy/copy_meta.c
+++ b/tools/vdb-copy/copy_meta.c
@@ -29,7 +29,6 @@
 #include "definitions.h"
 #include <klib/text.h>
 #include <klib/printf.h>
-#include <klib/time.h>
 #include <kdb/meta.h>
 #include <kdb/namelist.h>
 #include <sysalloc.h>
@@ -87,7 +86,7 @@ static rc_t copy_metadata_attribs ( const KMDataNode *snode, KMDataNode *dnode,
                 if ( rc == 0 )
                 {
                     if ( show_meta )
-                        KOutMsg( "copy atr %s : %s\n", node_path, attr );
+                        OUTMSG (( "copy atr %s : %s\n", node_path, attr ));
                     rc = KMDataNodeWriteAttr ( dnode, attr, buffer );
                 }
             }
@@ -111,7 +110,7 @@ static rc_t copy_metadata_child ( const KMDataNode *src_root, KMDataNode *dst_ro
     if ( rc != 0 ) return rc;
 
     if ( show_meta )
-        KOutMsg( "copy child-node: %s\n", node_path );
+        OUTMSG (( "copy child-node: %s\n", node_path ));
 
     rc = KMDataNodeOpenNodeUpdate ( dst_root, & dnode, node_path );
     DISP_RC( rc, "copy_metadata_child:KMDataNodeOpenNodeUpdate(dst) failed" );
@@ -138,8 +137,8 @@ static rc_t copy_metadata_child ( const KMDataNode *src_root, KMDataNode *dst_ro
             char temp_path[ 1024 ];
             size_t temp_len;
 
-            string_copy ( temp_path, ( sizeof temp_path ) - 1, node_path, string_size( node_path ) );
-            temp_len = string_size( temp_path );
+            strncpy( temp_path, node_path, sizeof(temp_path) - 1 );
+            temp_len = strlen( temp_path );
             temp_path[ temp_len++ ] = '/';
             temp_path[ temp_len ] = 0;
             rc = KNamelistCount ( names, & count );
@@ -149,7 +148,7 @@ static rc_t copy_metadata_child ( const KMDataNode *src_root, KMDataNode *dst_ro
                 rc = KNamelistGet ( names, i, & child_name );
                 if ( rc == 0 )
                 {
-                    string_copy( temp_path + temp_len, ( sizeof temp_path ) - temp_len, child_name, string_size( child_name ) );
+                    strncat( temp_path, child_name, sizeof( temp_path ) -1 );
                     rc = copy_metadata_child ( src_root, dst_root, temp_path, show_meta );
                     temp_path[ temp_len ] = 0;
                 }
@@ -259,7 +258,7 @@ static rc_t copy_back_revisions ( const KMetadata *src_meta, VTable *dst_table,
         const KMetadata *src_rev_meta;
 
         if ( show_meta )
-            KOutMsg( "+++copy metadata rev. #%u:\n", revision );
+            OUTMSG (( "+++copy metadata rev. #%u:\n", revision ));
         rc = KMetadataOpenRevision ( src_meta, &src_rev_meta, revision );
         DISP_RC( rc, "copy_back_revisions:KMetadataOpenRevision() failed" );
         if ( rc == 0 )
@@ -289,39 +288,38 @@ static rc_t copy_back_revisions ( const KMetadata *src_meta, VTable *dst_table,
     return rc;
 }
 
-static rc_t fill_timestring( char * s, size_t size )
+
+static 
+rc_t enter_time( KMDataNode *node, const char * key )
 {
-    KTime tr;
+    time_t rawtime;
+    struct tm * timeinfo;
+    size_t size;
+    char * s;
     rc_t rc;
-    
-    KTimeLocal ( &tr, KTimeStamp() );
-/*
-    rc = string_printf ( s, size, NULL, 
-                         "%.04u-%.02u-%.02u %.02u:%.02u:%.02u",
-                         tr.year, tr.month + 1, tr.day, tr.hour, tr.minute, tr.second );
-*/
-    rc = string_printf ( s, size, NULL, "%lT", &tr );
 
-    DISP_RC( rc, "fill_timestring:string_printf( date/time ) failed" );
-    return rc;
-}
-
-static rc_t enter_time( KMDataNode *node, const char * key )
-{
-    char timestring[ 160 ];
-    rc_t rc = fill_timestring( timestring, sizeof timestring );
-    if ( rc == 0 )
+    time( &rawtime );
+    timeinfo = localtime( &rawtime );
+    s = string_dup_measure ( asctime( timeinfo ), &size );
+    if ( s == NULL )
+        return RC( rcExe, rcNoTarg, rcCopying, rcMemory, rcExhausted );
+    if ( size < 2 )
     {
-        rc = KMDataNodeWriteAttr ( node, key, timestring );
-        DISP_RC( rc, "enter_time:KMDataNodeWriteAttr( timestring ) failed" );
+        free( s );
+        return RC( rcExe, rcNoTarg, rcCopying, rcBuffer, rcInvalid );
     }
+    s[ size - 1 ] = 0; /* remove the newline */
+    rc = KMDataNodeWriteAttr ( node, key, s );
+    DISP_RC( rc, "enter_time:KMDataNodeWriteAttr() failed" );
+    free( s );
     return rc;
 }
 
 
-static rc_t enter_version( KMDataNode *node, const char * key )
+static 
+rc_t enter_version( KMDataNode *node, const char * key )
 {
-    char buff[ 32 ];
+    char buff[32];
     rc_t rc;
 
     rc = string_printf ( buff, sizeof( buff ), NULL, "%.3V", VDB_COPY_VERS );
@@ -331,104 +329,35 @@ static rc_t enter_version( KMDataNode *node, const char * key )
     return rc;
 }
 
-
-static rc_t enter_date_name_vers( KMDataNode *node )
-{
-    rc_t rc = enter_time( node, "run" );
-    DISP_RC( rc, "enter_date_name_vers:enter_time() failed" );
-    if ( rc == 0 )
-    {
-        rc = KMDataNodeWriteAttr ( node, "tool", "vdb-copy" );
-        DISP_RC( rc, "enter_date_name_vers:KMDataNodeWriteAttr(tool=vdb-copy) failed" );
-        if ( rc == 0 )
-        {
-            rc = enter_version ( node, "vers" );
-            DISP_RC( rc, "enter_date_name_vers:enter_version() failed" );
-            if ( rc == 0 )
-            {
-                rc = KMDataNodeWriteAttr ( node, "build", __DATE__ );
-                DISP_RC( rc, "enter_date_name_vers:KMDataNodeWriteAttr(build=_DATE_) failed" );
-            }
-        }
-    }
-    return rc;
-}
-
-static rc_t enter_schema_update( KMetadata *dst_meta, const bool show_meta )
+static
+rc_t enter_schema_update( KMetadata *dst_meta, const bool show_meta )
 {
     rc_t rc;
     KMDataNode *sw_node;
 
     if ( show_meta )
-        KOutMsg( "--- entering schema-update\n" );
+        OUTMSG(( "--- entering schema-update\n" ));
 
     rc = KMetadataOpenNodeUpdate ( dst_meta, &sw_node, "SOFTWARE" );
-    DISP_RC( rc, "enter_schema_update:KMetadataOpenNodeUpdate('SOFTWARE') failed" );
+    DISP_RC( rc, "enter_schema_update:KMetadataOpenNodeUpdate() failed" );
     if ( rc == 0 )
     {
         KMDataNode *update_node;
         rc = KMDataNodeOpenNodeUpdate ( sw_node, &update_node, "update" );
-        DISP_RC( rc, "enter_schema_update:KMDataNodeOpenNodeUpdate('update') failed" );
+        DISP_RC( rc, "enter_schema_update:KMDataNodeOpenNodeUpdate() failed" );
         if ( rc == 0 )
         {
-            rc = enter_date_name_vers( update_node );
+            rc = enter_time( update_node, "date" );
+            rc = KMDataNodeWriteAttr ( update_node, "name", "vdb-copy" );
+            DISP_RC( rc, "enter_schema_update:KMDataNodeWriteAttr( name=vdb-copy) failed" );
+            rc = enter_version ( update_node, "vers" );
             KMDataNodeRelease ( update_node );
         }
-        KMDataNodeRelease ( sw_node );
     }
+    KMDataNodeRelease ( sw_node );
     return rc;
 }
 
-
-static uint32_t get_child_count( KMDataNode *node )
-{
-    uint32_t res = 0;
-    KNamelist *names;
-    rc_t rc = KMDataNodeListChild ( node, &names );
-    DISP_RC( rc, "get_child_count:KMDataNodeListChild() failed" );
-    if ( rc == 0 )
-    {
-        rc = KNamelistCount ( names, &res );
-        DISP_RC( rc, "get_child_count:KNamelistCount() failed" );
-        KNamelistRelease ( names );
-    }
-    return res;
-}
-
-
-static rc_t enter_vdbcopy_node( KMetadata *dst_meta, const bool show_meta )
-{
-    rc_t rc;
-    KMDataNode *hist_node;
-
-    if ( show_meta )
-        KOutMsg( "--- entering Copy entry...\n" );
-
-    rc = KMetadataOpenNodeUpdate ( dst_meta, &hist_node, "HISTORY" );
-    DISP_RC( rc, "enter_vdbcopy_node:KMetadataOpenNodeUpdate('HISTORY') failed" );
-    if ( rc == 0 )
-    {
-        char event_name[ 32 ];
-        uint32_t index = get_child_count( hist_node ) + 1;
-        rc = string_printf ( event_name, sizeof( event_name ), NULL, "EVENT_%u", index );
-        DISP_RC( rc, "enter_vdbcopy_node:string_printf(EVENT_NR) failed" );
-        if ( rc == 0 )
-        {
-            KMDataNode *event_node;
-            rc = KMDataNodeOpenNodeUpdate ( hist_node, &event_node, event_name );
-            DISP_RC( rc, "enter_vdbcopy_node:KMDataNodeOpenNodeUpdate('EVENT_NR') failed" );
-            if ( rc == 0 )
-            {
-                rc = enter_date_name_vers( event_node );
-                KMDataNodeRelease ( event_node );
-            }
-        }
-        KMDataNodeRelease ( hist_node );
-    }
-    return rc;
-}
-
-
 rc_t copy_table_meta ( const VTable *src_table, VTable *dst_table,
                        const char * excluded_nodes,
                        const bool show_meta, const bool schema_updated )
@@ -453,26 +382,16 @@ rc_t copy_table_meta ( const VTable *src_table, VTable *dst_table,
             if ( rc == 0 )
             {
                 if ( show_meta )
-                    KOutMsg( "+++copy current metadata\n" );
+                    OUTMSG (( "+++copy current metadata\n" ));
 
                 rc = copy_stray_metadata ( src_meta, dst_meta, excluded_nodes,
                                            show_meta );
                 if ( show_meta )
-                    KOutMsg( "+++end of copy current metadata\n" );
+                    OUTMSG (( "+++end of copy current metadata\n" ));
 
-                /* enter a attribute "vdb-copy" under '/SOFTWARE/update'
-                   *if the schema was updated ! */
                 if ( rc == 0 && schema_updated )
                     rc = enter_schema_update( dst_meta, show_meta );
 
-                /* enter a unconditional node under '/SOFTWARE/Copy'
-                    <%TIMESTAMP%>
-                        <Application date="%DATE%" name="vdb-copy" vers="%VERSION%"/>
-                    </%TIMESTAMP%>
-                */
-                if ( rc == 0 )
-                    rc = enter_vdbcopy_node( dst_meta, show_meta );
-
                 KMetadataRelease ( dst_meta );
             }
         }
@@ -503,12 +422,12 @@ rc_t copy_database_meta ( const VDatabase *src_db, VDatabase *dst_db,
         if ( rc == 0 )
         {
             if ( show_meta )
-                KOutMsg( "+++copy current db-metadata\n" );
+                OUTMSG (( "+++copy current db-metadata\n" ));
 
             rc = copy_stray_metadata ( src_meta, dst_meta, excluded_nodes,
                                        show_meta );
             if ( show_meta )
-                KOutMsg( "+++end of copy db-current metadata\n" );
+                OUTMSG (( "+++end of copy db-current metadata\n" ));
 
             KMetadataRelease ( dst_meta );
         }
diff --git a/tools/vdb-copy/definitions.h b/tools/vdb-copy/definitions.h
index 0628692..f349c66 100644
--- a/tools/vdb-copy/definitions.h
+++ b/tools/vdb-copy/definitions.h
@@ -50,8 +50,6 @@ extern "C" {
 
 #define DB_COPY_ENABLED 1
 
-#define ALLOW_EXTERNAL_CONFIG 1
-
 #define SRA_PF_UNDEF 0
 #define SRA_PF_454 1
 #define SRA_PF_ILLUMINA 2
diff --git a/tools/vdb-copy/helper.c b/tools/vdb-copy/helper.c
index 8e40b2e..49458aa 100644
--- a/tools/vdb-copy/helper.c
+++ b/tools/vdb-copy/helper.c
@@ -166,7 +166,6 @@ rc_t helper_parse_schema( const VDBManager *my_manager,
 }
 
 
-#if TOOLS_USE_SRAPATH != 0
 static char *translate_accession( SRAPath *my_sra_path,
                            const char *accession,
                            const size_t bufsize )
@@ -183,6 +182,7 @@ static char *translate_accession( SRAPath *my_sra_path,
     }
     else if ( GetRCState( rc ) == rcInsufficient )
     {
+        /* bufsize was insufficient ---> repeat */
         free( res );
         return translate_accession( my_sra_path, accession, bufsize * 2 );
     }
@@ -193,10 +193,15 @@ static char *translate_accession( SRAPath *my_sra_path,
     }
     return res;
 }
-#endif
 
 
-#if TOOLS_USE_SRAPATH != 0
+/*
+ * tries to interpret the given string in path as a accession
+ * and returns the path of the found accession back in path
+ * if it is possible, if not the original value of path remains unchanged
+ * rc = 0 if the given path is a file-system-path or we are not
+ * (weakly) linked against the sra-path-library
+*/
 rc_t helper_resolve_accession( const KDirectory *my_dir, char ** path )
 {
     SRAPath *my_sra_path;
@@ -228,7 +233,6 @@ rc_t helper_resolve_accession( const KDirectory *my_dir, char ** path )
     }
     return rc;
 }
-#endif
 
 
 /*
@@ -916,4 +920,4 @@ KChecksum helper_assemble_ChecksumMode( uint8_t ctx_blob_checksum )
         case BLOB_CHECKSUM_AUTO  : res = kcsCRC32; break;
     }
     return res;
-}
+}
\ No newline at end of file
diff --git a/tools/vdb-copy/helper.h b/tools/vdb-copy/helper.h
index 998961e..8253402 100644
--- a/tools/vdb-copy/helper.h
+++ b/tools/vdb-copy/helper.h
@@ -61,9 +61,10 @@ rc_t helper_parse_schema( const VDBManager *my_manager,
  * if it is possible, if not the original value of path remains unchanged
  * rc = 0 if the given path is a file-system-path or we are not
  * (weakly) linked against the sra-path-library
+*/
 rc_t helper_resolve_accession( const KDirectory *my_dir,
                                char ** path );
-*/
+
 
 /*
  * calls VTableTypespec to discover the table-name out of the schema
diff --git a/tools/vdb-copy/namelist_tools.c b/tools/vdb-copy/namelist_tools.c
index 270449b..1c7df2b 100644
--- a/tools/vdb-copy/namelist_tools.c
+++ b/tools/vdb-copy/namelist_tools.c
@@ -184,4 +184,4 @@ rc_t nlt_remove_strings_from_namelist( const KNamelist *source,
         KNamelistRelease( to_remove );
     }
     return rc;
-}
+}
\ No newline at end of file
diff --git a/tools/vdb-copy/num-gen.c b/tools/vdb-copy/num-gen.c
index 93125ac..d7922db 100644
--- a/tools/vdb-copy/num-gen.c
+++ b/tools/vdb-copy/num-gen.c
@@ -25,8 +25,6 @@
 */
 
 #include "num-gen.h"
-#include <klib/printf.h>
-
 #include <sysalloc.h>
 #include <strtol.h>
 #include <stdlib.h>
@@ -619,11 +617,11 @@ static void CC num_gen_as_string_cb( void *item, void *data )
     long unsigned int end = ( start + node->count - 1 );
     switch( node->count )
     {
-    case 0 : temp[ 0 ] = 0;
+    case 0 : temp[0]=0;
              break;
-    case 1 : string_printf ( temp, sizeof temp, NULL, "%lu,", start );
+    case 1 : sprintf( temp, "%lu,", start );
              break;
-    default: string_printf ( temp, sizeof temp, NULL, "%lu-%lu,", start, end );
+    default: sprintf( temp, "%lu-%lu,", start, end );
              break;
     }
     string_ctx_add( ( p_string_ctx )data, temp );
@@ -659,7 +657,7 @@ static void CC num_gen_debug_cb( void *item, void *data )
     p_num_gen_node node = ( p_num_gen_node )item;
     long unsigned int start = node->start;
     long unsigned int count = node->count;
-    string_printf ( temp, sizeof temp, NULL, "[s:%lu c:%lu]", start, count );
+    sprintf( temp, "[s:%lu c:%lu]", start, count );
     string_ctx_add( ( p_string_ctx )data, temp );
 }
 
diff --git a/tools/vdb-copy/progressbar.c b/tools/vdb-copy/progressbar.c
index 85a793a..043e9df 100644
--- a/tools/vdb-copy/progressbar.c
+++ b/tools/vdb-copy/progressbar.c
@@ -56,22 +56,22 @@ rc_t destroy_progressbar( progressbar * pb )
 
 static void progess_0a( const uint16_t percent )
 {
-    KOutMsg( "| %2u%%", percent );
+    OUTMSG (( "| %2u%%", percent ));
 }
 
 static void progess_0( const uint16_t percent )
 {
     if ( percent & 1 )
-        KOutMsg( "\b\b\b\b- %2u%%", percent );
+        OUTMSG (( "\b\b\b\b- %2u%%", percent ));
     else
-        KOutMsg( "\b\b\b%2u%%", percent );
+        OUTMSG (( "\b\b\b%2u%%", percent ));
 }
 
 static void progess_1a( const uint16_t percent )
 {
     uint16_t p1 = percent / 10;
     uint16_t p0 = percent - ( p1 * 10 );
-    KOutMsg( "| %2u.%01u%%", p1, p0 );
+    OUTMSG (( "| %2u.%01u%%", p1, p0 ));
 }
 
 static void progess_1( const uint16_t percent )
@@ -79,16 +79,16 @@ static void progess_1( const uint16_t percent )
     uint16_t p1 = percent / 10;
     uint16_t p0 = percent - ( p1 * 10 );
     if ( ( p1 & 1 )&&( p0 == 0 ) )
-        KOutMsg( "\b\b\b\b\b\b- %2u.%01u%%", p1, p0 );
+        OUTMSG (( "\b\b\b\b\b\b- %2u.%01u%%", p1, p0 ));
     else
-        KOutMsg( "\b\b\b\b\b%2u.%01u%%", p1, p0 );
+        OUTMSG (( "\b\b\b\b\b%2u.%01u%%", p1, p0 ));
 }
 
 static void progess_2a( const uint16_t percent )
 {
     uint16_t p1 = percent / 100;
     uint16_t p0 = percent - ( p1 * 100 );
-    KOutMsg( "| %2u.%02u%%", p1, p0 );
+    OUTMSG (( "| %2u.%02u%%", p1, p0 ));
 }
 
 static void progess_2( const uint16_t percent )
@@ -96,9 +96,9 @@ static void progess_2( const uint16_t percent )
     uint16_t p1 = percent / 100;
     uint16_t p0 = percent - ( p1 * 100 );
     if ( ( p1 & 1 )&&( p0 == 0 ) )
-        KOutMsg( "\b\b\b\b\b\b\b- %2u.%02u%%", p1, p0 );
+        OUTMSG (( "\b\b\b\b\b\b\b- %2u.%02u%%", p1, p0 ));
     else
-        KOutMsg( "\b\b\b\b\b\b%2u.%02u%%", p1, p0 );
+        OUTMSG (( "\b\b\b\b\b\b%2u.%02u%%", p1, p0 ));
 }
 
 rc_t update_progressbar( progressbar * pb, const uint8_t fract_digits,
diff --git a/tools/vdb-copy/redactval.c b/tools/vdb-copy/redactval.c
index a8c0538..a33b7dc 100644
--- a/tools/vdb-copy/redactval.c
+++ b/tools/vdb-copy/redactval.c
@@ -29,6 +29,7 @@
 #include "helper.h"
 #include <sysalloc.h>
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/tools/vdb-copy/type_matcher.c b/tools/vdb-copy/type_matcher.c
index 5b08bec..2a0efc7 100644
--- a/tools/vdb-copy/type_matcher.c
+++ b/tools/vdb-copy/type_matcher.c
@@ -332,7 +332,7 @@ bool matcher_src_has_type( const matcher* self, const VSchema * s,
         res = match_type_with_id_vector( s, &td, id_vector );
 /*
     if ( res )
-        KOutMsg( "redact-type found on (%s)%s\n", col->type_cast->dst->name, name );
+        OUTMSG (( "redact-type found on (%s)%s\n", col->type_cast->dst->name, name ));
 */
     return res;
 }
@@ -343,14 +343,14 @@ static void matcher_report_types( const char * s, const Vector *v )
     len = VectorLength( v );
     if ( len > 0 )
     {
-        KOutMsg( "%s: ", s );
+        OUTMSG (( "%s: ", s ));
         for ( idx = 0;  idx < len; ++idx )
         {
             p_mtype item = (p_mtype) VectorGet ( v, idx );
             if ( item != NULL )
-                KOutMsg( "[ %s ] ", item->name );
+                OUTMSG (( "[ %s ] ", item->name ));
         }
-        KOutMsg( "\n" );
+        OUTMSG (( "\n" ));
     }
 }
 
@@ -360,15 +360,15 @@ static void matcher_report_pair( const p_mpair pair )
     if ( pair->src == NULL || pair->dst == NULL )
         return;
     if ( pair->compatible == 0 )
-        KOutMsg( "[%s](l=%u/o=%u/d=%u) --> [%s] (c) dist=%u\n", 
+        OUTMSG (( "[%s](l=%u/o=%u/d=%u) --> [%s] (c) dist=%u\n", 
                   pair->src->name, 
                   pair->src->lossy_score, pair->src->order, pair->src->dflt,
-                  pair->dst->name, pair->distance );
+                  pair->dst->name, pair->distance ));
     else
-        KOutMsg( "[%s](l=%u/o=%u/d=%u) --> [%s] dist=%u\n",
+        OUTMSG (( "[%s](l=%u/o=%u/d=%u) --> [%s] dist=%u\n",
                   pair->src->name,
                   pair->src->lossy_score, pair->src->order, pair->src->dflt,
-                  pair->dst->name, pair->distance );
+                  pair->dst->name, pair->distance ));
 }
 
 
@@ -383,15 +383,15 @@ static void matcher_report_pairs( const Vector *v )
 
 static void matcher_report_col( const p_mcol item )
 {
-    KOutMsg( "----------------------------------\n" );
+    OUTMSG (( "----------------------------------\n" ));
     if ( item->to_copy )
-        KOutMsg( "col: %s (c)\n", item->name );
+        OUTMSG (( "col: %s (c)\n", item->name ));
     else
-        KOutMsg( "col: %s\n", item->name );
+        OUTMSG (( "col: %s\n", item->name ));
     matcher_report_types( " src", &(item->src_types ) );
     matcher_report_types( " dst", &(item->dst_types ) );
     matcher_report_pairs( &(item->pairs ) );
-    KOutMsg( "\n" );
+    OUTMSG (( "\n" ));
 }
 
 
diff --git a/tools/vdb-copy/vdb-copy-includes.h b/tools/vdb-copy/vdb-copy-includes.h
index f274df6..0b998c9 100644
--- a/tools/vdb-copy/vdb-copy-includes.h
+++ b/tools/vdb-copy/vdb-copy-includes.h
@@ -102,11 +102,9 @@ extern "C" {
 #include <sra/sraschema.h>
 #endif
 
-/*
 #ifndef _h_sra_srapath_
 #include <sra/srapath.h>
 #endif
-*/
 
 #ifndef _h_namelist_tools_
 #include "namelist_tools.h"
diff --git a/tools/vdb-copy/vdb-copy.c b/tools/vdb-copy/vdb-copy.c
index aea9fb7..c71c2e3 100644
--- a/tools/vdb-copy/vdb-copy.c
+++ b/tools/vdb-copy/vdb-copy.c
@@ -212,14 +212,14 @@ static rc_t vdb_copy_redact_cell( const VCursor * src_cursor, VCursor * dst_curs
                 if ( show_redact )
                 {
                     char * c = ( char * )col->r_val->value;
-                    KOutMsg( "redacting #%lu %s -> 0x%.02x\n", row_id, col->dst_cast, *c );
+                    OUTMSG (( "redacting #%lu %s -> 0x%.02x\n", row_id, col->dst_cast, *c ));
                 }
                 redact_val_fill_buffer( col->r_val, rbuf, new_size );
             }
             else
             {
                 if ( show_redact )
-                    KOutMsg( "redacting #%lu %s -> 0\n", row_id, col->dst_cast );
+                    OUTMSG (( "redacting #%lu %s -> 0\n", row_id, col->dst_cast ));
                 memset( rbuf->buffer, 0, new_size );
             }
 
@@ -252,8 +252,8 @@ static rc_t vdb_copy_cell( const VCursor * src_cursor, VCursor * dst_cursor,
     uint32_t elem_bits;
 
     /*
-    KOutMsg( " - copy cell %s ( src_idx=%u / dst_idx=%u )\n", 
-              col->name, col->src_idx, col->dst_idx );
+    OUTMSG (( " - copy cell %s ( src_idx=%u / dst_idx=%u )\n", 
+              col->name, col->src_idx, col->dst_idx ));
     */
     rc = VCursorCellData( src_cursor, col->src_idx, &elem_bits,
                           &buffer, &offset_in_bits, &number_of_elements );
@@ -269,8 +269,8 @@ static rc_t vdb_copy_cell( const VCursor * src_cursor, VCursor * dst_cursor,
     if ( rc != 0 ) return rc;
 
     /*
-    KOutMsg( "bit-offset = %u / elements = %u / element-bits = %u\n", 
-       offset_in_bits, number_of_elements, elem_bits );
+    OUTMSG (( "bit-offset = %u / elements = %u / element-bits = %u\n", 
+       offset_in_bits, number_of_elements, elem_bits ));
     */
     rc = VCursorWrite( dst_cursor, col->dst_idx, elem_bits,
                        buffer, offset_in_bits, number_of_elements );
@@ -427,69 +427,61 @@ static rc_t vdb_copy_row_loop( const p_context ctx,
 
     fract_digits = vdb_copy_calc_fract_digits( iter );
     count = 0;
-    rc = num_gen_iterator_next( iter, &row_id );
-    while ( rc == 0 )
+    while ( ( num_gen_iterator_next( iter, &row_id ) == 0 )&&
+            ( rc == 0 ) )
     {
         rc = Quitting();    /* to be able to cancel the loop by signal */
+        if ( rc != 0 ) break;
+
+        rc = VCursorSetRowId( src_cursor, row_id );
+        if ( rc != 0 )
+        {
+            PLOGERR( klogInt, (klogInt, rc,
+                     "VCursorSetRowId(src) row #$(row_nr) failed",
+                     "row_nr=%lu", row_id ));
+        }
         if ( rc == 0 )
         {
-            rc = VCursorSetRowId( src_cursor, row_id );
+            rc = VCursorOpenRow( src_cursor );
             if ( rc != 0 )
+            {
                 PLOGERR( klogInt, (klogInt, rc,
-                         "VCursorSetRowId(src) row #$(row_nr) failed",
+                         "VCursorOpenRow(src) row #$(row_nr) failed",
                          "row_nr=%lu", row_id ));
-
-            if ( rc == 0 )
+            }
+            else
             {
-                rc = VCursorOpenRow( src_cursor );
-                if ( rc != 0 )
-                    PLOGERR( klogInt, (klogInt, rc,
-                             "VCursorOpenRow(src) row #$(row_nr) failed",
-                             "row_nr=%lu", row_id ));
-                else
+                bool pass_flag = true;
+                bool redact_flag = false;
+                rc_t rc1;
+
+                if ( filter_col_def != NULL )
+                    vdb_copy_read_row_flags( ctx, src_cursor,
+                                filter_col_def->src_idx, &pass_flag, &redact_flag );
+                if ( pass_flag )
                 {
-                    bool pass_flag = true;
-                    bool redact_flag = false;
-
-                    if ( filter_col_def != NULL )
-                        vdb_copy_read_row_flags( ctx, src_cursor,
-                                    filter_col_def->src_idx, &pass_flag, &redact_flag );
-                    if ( pass_flag )
-                        rc = vdb_copy_row( src_cursor, dst_cursor,
-                                           columns, row_id,
-                                           &rbuf, redact_flag, ctx->show_redact );
-
-                    if ( rc == 0 )
-                    {
-                        count++;
-                        rc = VCursorCloseRow( src_cursor );
-                        if ( rc != 0 )
-                            PLOGERR( klogInt, ( klogInt, rc,
-                                     "VCursorCloseRow(src) row #$(row_nr) failed",
-                                     "row_nr=%lu", row_id ) );
-                    }
+                    rc = vdb_copy_row( src_cursor, dst_cursor,
+                                       columns, row_id,
+                                       &rbuf, redact_flag, ctx->show_redact );
+                    if ( rc == 0 ) count++;
                 }
-                rc = num_gen_iterator_next( iter, &row_id );
-                if ( ctx->show_progress )
+
+                rc1 = VCursorCloseRow( src_cursor );
+                if ( rc1 != 0 )
                 {
-                    if ( num_gen_iterator_percent( iter, fract_digits, &percent ) == 0 )
-                        update_progressbar( progress, fract_digits, percent );
+                    PLOGERR( klogInt, ( klogInt, rc1,
+                             "VCursorCloseRow(src) row #$(row_nr) failed",
+                             "row_nr=%lu", row_id ) );
                 }
-
             }
         }
-    }
-
-    /* set rc to zero for num_gen_iterator_next() reached last id */
-    if ( GetRCModule( rc ) == rcVDB && 
-         GetRCTarget( rc ) == rcNoTarg && 
-         GetRCContext( rc ) == rcReading &&
-         GetRCObject( rc ) == rcId &&
-         GetRCState( rc ) == rcInvalid )
-        rc = 0;
+        if ( ctx->show_progress )
+            if ( num_gen_iterator_percent( iter, fract_digits, &percent ) == 0 )
+                update_progressbar( progress, fract_digits, percent );
 
+    }
     if ( ctx->show_progress )
-        KOutMsg( "\n" );
+        OUTMSG(( "\n" ));
     destroy_progressbar( progress );
 
     PLOGMSG( klogInfo, ( klogInfo, "\n $(row_cnt) rows copied", "row_cnt=%lu", count ));
@@ -524,7 +516,7 @@ static rc_t vdb_copy_make_dst_table( const p_context ctx,
     {
         /* load it from a file */
         /*
-        KOutMsg( "we are using '%s'\n", cctx->legacy_schema_file );
+        OUTMSG (( "we are using '%s'\n", cctx->legacy_schema_file ));
         */
         if ( *dst_schema == NULL )
         {
@@ -682,8 +674,7 @@ static rc_t vdb_copy_prepare_legacy_tab( const p_context ctx,
 }
 
 
-static rc_t vdb_copy_find_out_what_columns_to_use( const VTable * src_table,
-                                                   const char * tablename,
+static rc_t vdb_copy_find_out_what_columns_to_use( const VTable * src_table, 
                                                    col_defs * columns, 
                                                    const char * requested,
                                                    const char * excluded )
@@ -705,7 +696,7 @@ static rc_t vdb_copy_find_out_what_columns_to_use( const VTable * src_table,
         DISP_RC( rc, "vdb_copy_find_out_what_columns_to_use:col_defs_mark_requested_columns() failed" );
         if ( rc == 0 && excluded != NULL )
         {
-            rc = col_defs_exclude_these_columns( columns, tablename, excluded );
+            rc = col_defs_exclude_these_columns( columns, excluded );
             DISP_RC( rc, "vdb_copy_find_out_what_columns_to_use:col_defs_unmark_writable_columns() failed" );
         }
     }
@@ -924,8 +915,7 @@ static rc_t vdb_copy_table2( const p_context ctx,
 
 static rc_t vdb_copy_table( const p_context ctx,
                             VDBManager * vdb_mgr,
-                            const VTable * src_table,
-                            const char * tablename )
+                            const VTable * src_table )
 {
     const VSchema * src_schema;
     rc_t rc = VTableOpenSchema ( src_table, &src_schema );
@@ -937,7 +927,7 @@ static rc_t vdb_copy_table( const p_context ctx,
         DISP_RC( rc, "vdb_copy_table:col_defs_init() failed" );
         if ( rc == 0 )
         {
-            rc = vdb_copy_find_out_what_columns_to_use( src_table, tablename, columns,
+            rc = vdb_copy_find_out_what_columns_to_use( src_table, columns,
                                                         ctx->columns, ctx->excluded_columns );
             if ( rc == 0 )
             {
@@ -1011,8 +1001,7 @@ static rc_t vdb_copy_cur_2_cur( const p_context ctx,
                             col_defs_unmark_do_not_redact_columns( columns,
                                             ctx->config.do_not_redact_columns );
 
-                            if ( ctx->show_progress )
-                                KOutMsg( "copy of >%s<\n", tab_name );
+                            OUTMSG(( "copy of >%s<\n", tab_name ));
 
                             vdb_copy_find_filter_and_redact_columns( schema,
                                                    columns, &(ctx->config), type_matcher );
@@ -1045,7 +1034,7 @@ static rc_t vdb_copy_tab_2_tab( const p_context ctx,
         DISP_RC( rc, "vdb_copy_tab_2_tab:col_defs_init() failed" );
         if ( rc == 0 )
         {
-            rc = vdb_copy_find_out_what_columns_to_use( src_tab, tab_name, columns, 
+            rc = vdb_copy_find_out_what_columns_to_use( src_tab, columns, 
                                                         NULL, ctx->excluded_columns );
             if ( rc == 0 )
             {
@@ -1363,7 +1352,7 @@ static rc_t vdb_copy_perform( const p_context ctx,
             if ( rc == 0 )
             {
                 /*********************************************/
-                rc = vdb_copy_table( ctx, vdb_mgr, src_table, NULL );
+                rc = vdb_copy_table( ctx, vdb_mgr, src_table );
                 /*********************************************/
                 DISP_RC( rc, "vdb_copy_perform:vdb_copy_table() failed" );
                 VTableRelease( src_table );
@@ -1405,7 +1394,6 @@ static rc_t vdb_copy_main( const p_context ctx )
     {
         KConfig * config_mgr;
 
-#if TOOLS_USE_SRAPATH != 0
         if ( !ctx->dont_check_accession )
             ctx->dont_check_accession = helper_is_this_a_filesystem_path( ctx->src_path );
         if ( !ctx->dont_check_accession )
@@ -1413,7 +1401,6 @@ static rc_t vdb_copy_main( const p_context ctx )
             rc_t rc1 = helper_resolve_accession( directory, (char**)&( ctx->src_path ) );
             DISP_RC( rc1, "vdb_copy_main:helper_check_accession() failed" );
         }
-#endif
 
         rc = helper_make_config_mgr( &config_mgr, ctx->kfg_path );
         DISP_RC( rc, "vdb_copy_main:helper_make_config_mgr() failed" );
diff --git a/tools/vdb-copy/vdb-copy.vers b/tools/vdb-copy/vdb-copy.vers
index f90b1af..04b10b4 100644
--- a/tools/vdb-copy/vdb-copy.vers
+++ b/tools/vdb-copy/vdb-copy.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/vdb-copy/vdb-copy.vers.h b/tools/vdb-copy/vdb-copy.vers.h
new file mode 100644
index 0000000..bda5bf2
--- /dev/null
+++ b/tools/vdb-copy/vdb-copy.vers.h
@@ -0,0 +1 @@
+#define VDB_COPY_VERS 0x02010007
diff --git a/tools/vdb-decrypt/Makefile b/tools/vdb-decrypt/Makefile
deleted file mode 100644
index cd0e1da..0000000
--- a/tools/vdb-decrypt/Makefile
+++ /dev/null
@@ -1,130 +0,0 @@
-# ==============================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-USE_GCC_IF_ICC = 1
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/vdb-decrypt
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS =
-
-EXT_TOOLS = \
-	vdb-decrypt \
-	vdb-encrypt
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-
-
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/std
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# vdb-decrypt
-#  Copy files from one directory to another while cataloging the contents.
-#  XML files can be redirected as well.
-#
-VDB_DECRYPT_SRC = \
-	vdb-decrypt \
-	shared
-
-VDB_DECRYPT_OBJ = \
-	$(addsuffix .$(OBJX),$(VDB_DECRYPT_SRC))
-
-VDB_DECRYPT_LIB = \
-	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib
-
-$(BINDIR)/vdb-decrypt: $(VDB_DECRYPT_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_DECRYPT_LIB)
-
-#-------------------------------------------------------------------------------
-# vdb-encrypt
-#  Copy files from one directory to another while cataloging the contents.
-#  XML files can be redirected as well.
-#
-VDB_ENCRYPT_SRC = \
-	vdb-encrypt \
-	shared
-
-VDB_ENCRYPT_OBJ = \
-	$(addsuffix .$(OBJX),$(VDB_ENCRYPT_SRC))
-
-VDB_ENCRYPT_LIB = \
-	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib
-
-$(BINDIR)/vdb-encrypt: $(VDB_ENCRYPT_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_ENCRYPT_LIB)
-
diff --git a/tools/vdb-decrypt/shared.c b/tools/vdb-decrypt/shared.c
deleted file mode 100644
index de41eaf..0000000
--- a/tools/vdb-decrypt/shared.c
+++ /dev/null
@@ -1,1270 +0,0 @@
-/*==============================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include "shared.h"
-
-#include <klib/defs.h>
-#include <klib/callconv.h>
-
-#include <klib/rc.h>
-#include <klib/out.h>
-#include <klib/status.h>
-#include <klib/log.h>
-#include <klib/debug.h> /* DBGMSG */
-#include <klib/status.h>
-#include <klib/text.h>
-#include <klib/printf.h>
-#include <klib/namelist.h>
-
-#include <kfs/defs.h>
-#include <kfs/file.h>
-#include <kfs/directory.h>
-#include <kfs/sra.h>
-#include <kfs/lockfile.h>
-#include <kfs/cacheteefile.h>
-#include <kfs/buffile.h>
-#include <vfs/manager.h>
-
-#include <krypto/key.h>
-#include <krypto/encfile.h>
-#include <krypto/wgaencrypt.h>
-
-#include <kapp/args.h>
-#include <kapp/main.h>
-
-#include <assert.h>
-#include <string.h>
-#include <stdint.h>
-
-#ifndef RIGOROUS_SRA_CHECK
-#define RIGOROUS_SRA_CHECK 0
-#endif
-
-#define OPTION_FORCE   "force"
-#define OPTION_SRA     "decrypt-sra-files"
-#define ALIAS_FORCE    "f"
-#define ALIAS_SRA      NULL
-
-#define MY_MAX_PATH        4096
-
-
-bool ForceFlag = false;
-bool TmpFoundFlag = false;
-bool UseStdin = false;
-bool UseStdout = false;
-bool IsArchive = false;
-
-/* for wga decrypt */
-char Password [4096 + 2];
-size_t PasswordSize;
-
-/* for encfile encrypt/decrypt */
-KKey Key;
-
-const char * ForceUsage[] = 
-{ "Force overwrite of existing files", NULL };
-
-/*
- * option  control flags
- */
-
-const char EncExt[] = ".ncbi_enc";
-static const char TmpExt[] = ".vdb-decrypt-tmp";
-static const char TmpLockExt[] = ".vdb-decrypt-tmp.lock";
-static const char CacheExt[] = ".cache";
-static const char CacheLockExt[] = ".cache.lock";
-
-/* Usage
- */
-rc_t CC UsageSummary (const char * progname)
-{
-    rc_t rc;
-    {
-        rc = KOutMsg (
-            /*345679012345678901234567890123456789012345678901234567890123456789012345678*/
-            "\n"
-            "Usage:\n"
-            "  %s [options] <source-file>\n"
-            "  %s [options] <source-file> <destination-file>\n"
-            "  %s [options] <source-file> <destination-directory>\n"
-            "  %s [options] <directory>\n",
-            progname, progname, progname, progname);
-    }
-#if DIRECTORY_TO_DIRECTORY_SUPPORTED
-    if (rc == 0)
-        rc = KOutMsg (
-            "  %s [options] <source-directory> <destination-directory>\n",
-            progname);
-#endif
-        if (rc == 0)
-    {
-        rc = KOutMsg (
-            "\n"
-            "Summary:\n"
-            "  %scrypt a file or all the files (recursively) in a directory\n\n",
-            De);
-    }
-    return rc;
-}
-
-rc_t CC Usage (const Args * args)
-{
-    const char * progname = UsageDefaultName;
-    const char * fullpath = UsageDefaultName;
-    const char * pline[] = {
-        "file to encrypt", NULL,
-        "name of resulting file", NULL,
-        "directory of resulting file", NULL,
-        "directory to encrypt", NULL
-    };
-
-    rc_t rc, orc;
-
-    /* super-fragilistic molti-hacki-docious
-       let's find a better way to reuse things. */
-    if ( de [ 0 ] == 'd' )
-    {
-        pline [ 0 ] = "file to decrypt";
-        pline [ 6 ] = "directory to decrypt";
-    }
-
-    if (args == NULL)
-        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
-    else
-        rc = ArgsProgram (args, &fullpath, &progname);
-
-    orc = UsageSummary (progname);
-    if (rc == 0)
-        rc = orc;
-
-    KOutMsg ("Parameters:\n");
-    HelpParamLine ("source-file"          , pline);
-    HelpParamLine ("destination-file"     , pline + 2);
-    HelpParamLine ("destination-directory", pline + 4);
-    HelpParamLine ("directory"            , pline + 6);
-    KOutMsg ("\nOptions:\n");
-    HelpOptionLine (ALIAS_FORCE, OPTION_FORCE, NULL, ForceUsage);
-    CryptOptionLines ();
-    HelpOptionsStandard ();
-
-    /* forcing editor alignment */
-    /*   12345678901234567890123456789012345678901234567890123456789012345678901234567890*/
-    KOutMsg (
-        "\n"
-        "Details:\n"
-        "  All %scryptions are non-destructive until successful. No files are deleted or\n"
-        "  replaced until the %scryptions are complete.\n"
-        "\n", de, de);
-
-    KOutMsg (
-        "  The extension '.ncbi_enc' will be %s when a file is %scrypted.\n"
-        "\n", Decrypting ? "removed" : "added", de);
-
-    if (Decrypting) KOutMsg (
-        "  NCBI Archive files that contain NCBI database objects will not be decrypted\n"
-        "  unless the %s option is used. As these objects can be used without\n"
-        "  decryption it is recommended they remain encrypted.\n"
-        "\n", OPTION_SRA);
-    else KOutMsg (
-        "  NCBI Archive files that contain NCBI database objects will not have the\n"
-        "  .ncbi_enc extension added.\n\n");
-
-
-    KOutMsg (
-        "  If the only parameter is a file name then it will be replaced by a file that\n"
-        "  is %scrypted with a possible changed extension.\n"
-        "  \n", de);
-
-    KOutMsg (
-        "  If the only parameter is a directory, all files in that directory including\n"
-        "  all files in subdirectories will be replaced with a possible change\n"
-        "  in the extension.\n"
-        "\n");
-
-    KOutMsg (
-        "  If there are two parameters  a copy is made but the copy will be %scrypted.\n"
-        "  If the second parameter is a directory the new file might have a different\n"
-        "  extension. If it is not a directory, the extension will be as given in the\n"
-        "  the parameter.\n"
-        "\n", de);
-
-    KOutMsg (
-        "  Missing directories in the destination path will be created.\n"
-        "\n");
-
-    KOutMsg (
-        "  Already existing destination files will cause the program to end with\n"
-        "  an error and will be left unchanged unless the --%s option is used to\n"
-        "  force the files to be overwritten.\n"
-        "\n", OPTION_FORCE);
-
-    KOutMsg (
-        "Encryption key (file password):\n"
-        "  The encryption key or file password is handled by configuration. If not yet\n"
-        "  set, this program will fail.\n\n"
-        "  You can set the encryption key by running:\n\n"
-        "    perl configuration-assistant.perl\n"
-        "\n");
-
-    HelpVersion (fullpath, KAppVersion());
-
-    return rc;
-}
-
-
-
-
-
-/*
- * determine the archive type for KFile f with pathname name
- *
- * This could be extended to handle tar files with a larger head size and
- * and some less simple checks for a tar header block at the start of
- * the file.
- */
-ArcScheme ArchiveTypeCheck (const KFile * f)
-{
-    size_t num_read;
-    rc_t rc;
-    char head [128];
-
-    IsArchive = false;
-    rc = KFileReadAll (f, 0, head, sizeof head, &num_read);
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "Unable to read head of decrypted file");
-        return arcError;
-    }
-
-    rc = KFileIsSRA (head, num_read);
-    if (rc == 0)
-    {
-
-/*         OUTMSG (("+++++ ARCHIVE\n")); */
-
-
-        /* a hack... */
-
-        IsArchive = true;
-        return arcSRAFile;
-    }
-/*     OUTMSG (("----- not an archive\n")); */
-    return arcNone;
-}
-
-
-/*
- * Copy a file from a const KFile * to a KFile * with the paths for the two
- * for logging purposes
- *
- * return rc_t = 0 for success
- * return rc_t != 0 for failure
- */
-rc_t CopyFile (const KFile * src, KFile * dst, const char * source, const char * dest)
-{
-    rc_t rc;
-    uint8_t	buff	[256 * 1024];
-    size_t	num_read;
-    size_t      num_writ;
-    uint64_t	pos;
-
-    for (pos = 0; ; pos += num_read)
-    {
-        rc = Quitting ();
-        if (rc)
-        {
-            LOGMSG (klogFatal, "Received quit");
-            break;
-        }
-
-        rc = KFileReadAll (src, pos, buff, sizeof (buff), &num_read);
-        if (rc)
-        {
-            PLOGERR (klogErr,
-                     (klogErr, rc,
-                      "Failed to read from file $(F) at $(P)",
-                      "F=%s,P=%lu", source, pos));
-            break;
-        }
-        
-        if (num_read == 0)
-            break;
-
-        rc = KFileWriteAll (dst, pos, buff, num_read, &num_writ);
-        if (rc)
-        {
-            PLOGERR (klogErr,
-                     (klogErr, rc,
-                      "Failed to write to file $(F) at $(P)",
-                      "F=%s,P=%lu", dest, pos));
-            break;
-        }
-        
-        if (num_writ != num_read)
-        {
-            rc = RC (rcExe, rcFile, rcWriting, rcFile, rcInsufficient);
-            PLOGERR (klogErr,
-                     (klogErr, rc,
-                      "Failed to write all to file $(F) at $(P)",
-                      "F=%s,P=%lu", dest, pos));
-            break;
-        }
-    }
-    return rc;
-}
-
-
-/*
- * determine the encryption type for KFile f with pathname name
- */
-rc_t EncryptionTypeCheck (const KFile * f, const char * name, EncScheme * scheme)
-{
-    size_t num_read;
-    rc_t rc;
-    char head [128];
-
-    assert (f != NULL);
-    assert (name != NULL);
-
-    rc = KFileReadAll (f, 0, head, sizeof head, &num_read);
-    if (rc)
-    {
-        PLOGERR (klogErr, (klogErr, rc, "Unable to read head of "
-                           "'$(F)'", "F=%s", name));
-        *scheme = encError;
-        return rc;
-    }
-    
-    /* looks for files with NCBInenc or NCBIsenc signatures */
-    rc = KFileIsEnc (head, num_read);
-    if (rc == 0)
-    {
-            /* looks for files with just NCBIsenc signatures */
-        rc = KFileIsSraEnc (head, num_read);
-
-        *scheme = (rc == 0) ? encSraEncFile : encEncFile;
-    }
-    else
-    {
-        rc = KFileIsWGAEnc (head, num_read);
-        if (rc == 0)
-            *scheme = encWGAEncFile;
-        else
-            *scheme = encNone;
-    }
-    return 0;
-}
-
-
-/*
- * Check a file path name for ending in the extension used by this program
- *
- * return true if it ends with the extension and false if it does not
- */
-static
-bool IsTmpFile (const char * path)
-{
-    const char * pc;
-
-    pc = strrchr (path, '.');
-    if (pc == NULL)
-        return false;
-
-    if (strcmp (pc, TmpExt) == 0)
-        return true;
-
-    pc = string_chr (path, pc - path, '.');
-    if (pc == NULL)
-        return false;
-
-    return (strcmp (pc, TmpLockExt) == 0);
-}
-
-
-static
-bool IsCacheFile (const char * path)
-{
-    const char * pc;
-
-    pc = strrchr (path, '.');
-    if (pc == NULL)
-        return false;
-
-    if (strcmp (pc, CacheExt) == 0)
-        return true;
-
-    pc = string_chr (path, pc - path, '.');
-    if (pc == NULL)
-        return false;
-
-    return (strcmp (pc, CacheLockExt) == 0);
-}
-
-
-static
-rc_t FileInPlace (KDirectory * cwd, const char * leaf, bool try_rename)
-{
-    rc_t rc;
-    bool is_tmp;
-
-    STSMSG (1, ("%scrypting file in place %s",De,leaf));
-
-    rc = 0;
-    is_tmp = IsTmpFile (leaf);
-    if (is_tmp)
-    {
-        STSMSG (1, ("%s is a vdb-decrypt/vdb-encrypt temporary file and will "
-                    "be ignored", leaf));
-        TmpFoundFlag = true;
-        if (ForceFlag)
-            ; /* LOG OVERWRITE */
-        else
-            ; /* LOG TMP */
-    }
-    if (!is_tmp || ForceFlag)
-    {
-        char temp [MY_MAX_PATH];
-
-
-        rc = KDirectoryResolvePath (cwd, false, temp, sizeof temp, ".%s%s",
-                                    leaf, TmpExt);
-
-        if (rc)
-            PLOGERR (klogErr, (klogErr, rc, "unable to resolve '.$(S)$(E)'",
-                               "S=%s,E=%s",leaf,TmpExt));
-        else
-        {
-            KPathType kpt;
-            uint32_t kcm;
-
-            kcm = kcmCreate|kcmParents;
-            kpt = KDirectoryPathType (cwd, temp);
-            if (kpt != kptNotFound)
-            {
-                /* log busy */
-                if (ForceFlag)
-                {
-                    kcm = kcmInit|kcmParents;
-                    /* log force */
-                    kpt = kptNotFound;
-                }
-            }
-
-            if (kpt == kptNotFound)
-            {
-                const KFile * infile;
-
-                rc = KDirectoryOpenFileRead (cwd, &infile, "%s", leaf);
-                if (rc)
-                    PLOGERR (klogErr, (klogErr, rc, "Unable to resolve '$(F)'",
-                                       "F=%s",leaf));
-                else
-                {
-                    uint64_t fz;
-                    size_t z;
-                    rc_t irc;
-                    uint64_t ignored;
-
-                    rc = KFileSize (infile, &fz);
-                    /* ignore rc for now? yes hack */
-                    z = string_size (leaf);
-
-                    /* vdb-decrypt and vdb-encrypt both ignore repository cache files. */
-                    irc = GetCacheTruncatedSize (infile, &ignored, true);
-                    if (irc == 0)
-                        STSMSG (1, ("skipping cache download file %s", leaf));
-                    else if ((fz == 0) &&
-                             (string_cmp (leaf + (z - (sizeof (".lock")-1)), sizeof (".lock"),
-                                          ".lock", sizeof (".lock") , sizeof (".lock")) == 0))
-                        STSMSG (1, ("skipping cache lock download file %s", leaf));
-                    else
-                    {
-                        EncScheme scheme;
-
-                        rc = EncryptionTypeCheck (infile, leaf, &scheme);
-                        if (rc == 0)
-                        {
-                            ArcScheme ascheme;
-                            bool changed;
-                            bool do_this_file;
-                            char new_name [MY_MAX_PATH + sizeof EncExt];
-
-                            do_this_file = DoThisFile (infile, scheme, &ascheme);
-                            strcpy (new_name, leaf);
-                            if (try_rename && do_this_file)
-                                changed = NameFixUp (new_name);
-                            else
-                                changed = false;
-/*                         KOutMsg ("### %d \n", changed); */
-
-                            if (!do_this_file)
-                            {
-                                if (changed)
-                                {
-                                    STSMSG (1, ("renaming %s to %s", leaf, new_name));
-                                    rc = KDirectoryRename (cwd, false, leaf, new_name);
-                                }
-                                else
-                                    STSMSG (1, ("skipping %s",leaf));
-                            }
-                            else
-                            {
-                                KFile * outfile;
-
-                                rc = KDirectoryCreateExclusiveAccessFile (cwd, &outfile,
-                                                                          false, 0600, kcm,
-                                                                          temp);
-                                if (rc == 0)
-                                {
-                                    const KFile * Infile;
-                                    KFile * Outfile;
-
-                                    rc = CryptFile (infile, &Infile, outfile, &Outfile, scheme);
-
-                                    if (rc == 0)
-                                    {
-                                        STSMSG (1, ("copying %s to %s", leaf, temp));
-
-                                        rc = CopyFile (Infile, Outfile, leaf, temp);
-
-                                        if (rc == 0)
-                                        {
-                                            uint32_t access;
-                                            KTime_t date;
-
-                                            rc = KDirectoryAccess (cwd, &access, "%s", leaf);
-                                            if (rc == 0)
-                                                rc = KDirectoryDate (cwd, &date, "%s", leaf);
-
-                                            KFileRelease (infile);
-                                            KFileRelease (outfile);
-                                            KFileRelease (Infile);
-                                            KFileRelease (Outfile);
-
-                                            if (rc == 0)
-                                            {
-                                                STSMSG (1, ("renaming %s to %s", temp, new_name));
-
-                                                rc = KDirectoryRename (cwd, true, temp, new_name);
-                                                if (rc)
-                                                    LOGERR (klogErr, rc, "error renaming");
-                                                else
-                                                {
-                                                    if (changed)
-                                                        KDirectoryRemove (cwd, false, "%s", leaf);
-
-                                                    /*rc =*/
-                                                    KDirectorySetAccess (cwd, false, access,
-                                                                         0777, "%s", new_name);
-                                                    KDirectorySetDate (cwd, false, date, "%s", new_name);
-                                                    /* gonna ignore an error here I think */
-                                                    return rc;
-                                                }
-                                            }
-                                        }
-                                    }
-                                    KFileRelease (outfile);
-                                }
-                            }
-                        }
-                    }
-                    KFileRelease (infile);
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static
-rc_t FileToFile (const KDirectory * sd, const char * source, 
-                 KDirectory *dd, const char * dest_, bool try_rename,
-                 char * base)
-{
-    const KFile * infile;
-    rc_t rc;
-    uint32_t access;
-    KTime_t date;
-    bool is_tmp;
-    char dest [MY_MAX_PATH + sizeof EncExt];
-
-    strcpy (dest, dest_);
-    if (try_rename)
-        NameFixUp (dest);
-
-    if ((sd == dd) && (strcmp (source, dest) == 0))
-        return FileInPlace (dd, dest, try_rename);
-
-    if (base == NULL)
-        STSMSG (1, ("%scrypting file %s to %s", De, source, dest));
-    else
-        STSMSG (1, ("%scrypting file %s to %s/%s", De, source, base, dest));
-
-    /*
-     * A Hack to make stdin/stout work within KFS
-     */
-    if (UseStdin)
-    {
-        const KFile * iinfile;
-        rc = KFileMakeStdIn (&iinfile);
-        if (rc == 0)
-        {
-            rc = KBufReadFileMakeRead (&infile, iinfile, 64 * 1024);
-            KFileRelease (iinfile);
-            if (rc == 0)
-            {
-                access = 0640;
-                date = 0;
-                goto stdin_shortcut;
-            }
-            LOGERR (klogErr, rc, "error wrapping stdin");
-            return rc;
-        }
-    }
-    rc = 0;
-    is_tmp = IsTmpFile (source);
-
-    if (is_tmp)
-    {
-        TmpFoundFlag = true;
-        if (ForceFlag)
-            ; /* LOG OVERWRITE */
-        else
-                ; /* LOG TMP */
-    }
-    if (!is_tmp || ForceFlag)
-    {
-        rc = KDirectoryAccess (sd, &access, "%s", source);
-        if (rc)
-            LOGERR (klogErr, rc, "Error check permission of source");
-
-        else
-        {
-            rc = KDirectoryDate (sd, &date, "%s", source);
-            if (rc)
-                LOGERR (klogErr, rc, "Error check date of source");
-
-            else
-            {
-                rc = KDirectoryOpenFileRead (sd, &infile, "%s", source);
-                if (rc)
-                    PLOGERR (klogErr, (klogErr, rc,
-                                       "Error opening source file '$(S)'",
-                                       "S=%s", source));
-                else
-                {
-                    EncScheme scheme;
-
-                stdin_shortcut:
-                    rc = EncryptionTypeCheck (infile, source, &scheme);
-                    if (rc == 0)
-                    {
-                        KFile * outfile;
-                        uint32_t kcm;
-
-                        /*
-                         * Hack to support stdout before VFS is complete enough to use here
-                         */
-                        if (UseStdout)
-                        {
-                            rc = KFileMakeStdOut (&outfile);
-                            if (rc)
-                                LOGERR (klogErr, rc, "error wrapping stdout");
-                        }
-                        else
-                        {
-                            kcm = ForceFlag ? kcmInit|kcmParents : kcmCreate|kcmParents;
-
-                            rc = KDirectoryCreateFile (dd, &outfile, false, 0600, kcm, "%s", dest);
-                            if (rc)
-                                PLOGERR (klogErr,(klogErr, rc, "error opening output '$(O)'",
-                                                  "O=%s", dest));
-                        }
-                        if (rc == 0)
-                        {
-                            const KFile * Infile;
-                            KFile * Outfile;
-
-                            rc = CryptFile (infile, &Infile, outfile, &Outfile, scheme);
-                            if (rc == 0)
-                            {
-                                rc = CopyFile (Infile, Outfile, source, dest);
-                                if (rc == 0)
-                                {
-                                    if (UseStdin || UseStdout)
-                                        ;
-                                    else
-                                    {
-                                        rc = KDirectorySetAccess (dd, false, access, 0777,
-                                                                  "%s", dest);
-
-                                        if (rc == 0 && date != 0)
-                                            rc = KDirectorySetDate (dd, false, date, "%s", dest);
-                                    }
-                                }
-                                KFileRelease (Infile);
-                                KFileRelease (Outfile);
-                            }
-                            KFileRelease (outfile);
-                        }
-                    }
-                    KFileRelease (infile);
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-
-static
-rc_t DoDir (const KDirectory * sd, KDirectory * dd)
-{
-    KNamelist * names;
-    rc_t rc;
-
-    rc = KDirectoryList (sd, &names, NULL, NULL, ".");
-    if (rc)
-        ;
-    else
-    {
-        uint32_t count;
-
-        rc = KNamelistCount (names, &count);
-        if (rc)
-            ;
-        else
-        {
-            uint32_t idx;
-
-            for (idx = 0; idx < count; ++idx)
-            {
-                const char * name;
-
-                rc = KNamelistGet (names, idx, &name);
-                if (rc)
-                    ;
-                else
-                {
-                    const KDirectory * nsd;
-                    KDirectory * ndd;
-                    KPathType kpt;
-
-                    kpt = KDirectoryPathType (sd, name);
-
-                    switch (kpt)
-                    {
-                    default:
-                        break;
-
-                    case kptFile:
-                        if (sd == dd)
-                            rc = FileInPlace (dd, name, true);
-                        else
-                            rc = FileToFile (sd, name, dd, name, true, NULL);
-                        break;
-
-                    case kptDir:
-                        if (sd == dd)
-                        {
-                            rc = KDirectoryOpenDirUpdate (dd, &ndd, false, "%s", name);
-                            if (rc)
-                                ;
-                            else
-                            {
-                                /* RECURSION */
-                                STSMSG (1, ("%scrypting directory %s", De, name));
-                                rc = DoDir (ndd, ndd);
-                                STSMSG (1, ("done with directory %s", name));
-                                KDirectoryRelease (ndd);
-                            }
-                        }
-                        else
-                        {
-                            rc = KDirectoryOpenDirRead (sd, &nsd, false, name);
-                            if (rc)
-                                ;
-                            else
-                            {
-                                rc = KDirectoryCreateDir (dd, 0600, kcmOpen, "%s", name);
-                                if (rc)
-                                    ;
-                                else
-                                {                                    
-                                    rc = KDirectoryOpenDirUpdate (dd, &ndd, false, "%s", name);
-                                    if (rc)
-                                        ;
-                                    else
-                                    {
-                                        /* RECURSION */
-                                        STSMSG (1, ("%scrypting directory %s", De, name));
-                                        rc = DoDir (nsd, ndd);
-                                        STSMSG (1, ("done with directory %s", name));
-
-                                        KDirectoryRelease (ndd);
-                                    }
-                                }
-                                KDirectoryRelease (nsd);
-                            }
-                        }
-                        break;
-                    }
-                }
-            }
-        }
-        KNamelistRelease (names);
-    }
-    return rc;
-}
-
-
-static
-rc_t Start (KDirectory * cwd, const char * src, const char * dst)
-{
-    KPathType dtype;
-    KPathType stype;
-    char dpath [MY_MAX_PATH];
-    char spath [MY_MAX_PATH];
-    rc_t rc;
-    bool using_stdin, using_stdout, try_rename;
-
-    /* limited anti oops checks */
-    try_rename = (dst == NULL);
-    if (!try_rename)
-    {
-        /* try to prevent file to file clash */
-        if (strcmp (src,dst) == 0)
-            dst = NULL;
-
-        /* try to prevent file to dir clash */
-        else
-        {
-            size_t s,d;
-
-            s = string_size (src);
-            d = string_size (dst);
-
-            if (s > d)
-            {
-                if (string_cmp (src, s, dst, d, d) == 0)
-                {
-                    if ((strchr (src+d+1, '/') == NULL) &&
-                        ((src[d] == '/') ||
-                         (src[d-1] == '/')))
-                    {
-                        try_rename = true;
-                        dst = NULL;
-                    }
-                }
-            }
-        }
-    }
-
-    /*
-     * This is a quick fix "hack"
-     * A fully built out VFS should replace the KFS in use and eliminate this
-     */
-    using_stdin = (strcmp (src, "/dev/stdin") == 0);
-
-    if (using_stdin)
-    {
-        if (dst == NULL)
-        {
-            rc = RC (rcExe, rcArgv, rcParsing, rcParam, rcNull);
-            LOGERR (klogErr, rc, "Unable to handle stdin in place");
-            return rc;
-        }
-        stype = kptFile;
-        strcpy (spath, src);
-        UseStdin = true;
-        STSMSG (1, ("reading console / stdin as input"));
-        goto stdin_shortcut;
-    }
-
-    rc = KDirectoryResolvePath (cwd, false, spath, sizeof spath, "%s", src);
-    if (rc)
-    {
-        LOGERR (klogErr, rc, "can't resolve source");
-        return rc;
-    }
-
-    stype = KDirectoryPathType (cwd, spath);
-
-    switch (stype)
-    {
-    case kptNotFound:
-        rc = RC (rcExe, rcArgv, rcResolving, rcPath, rcNotFound);
-        break;
-
-    default:
-    case kptBadPath:
-        rc = RC (rcExe, rcArgv, rcResolving, rcPath, rcInvalid);
-        break;
-
-    case kptCharDev:
-    case kptBlockDev:
-    case kptFIFO:
-    case kptZombieFile:
-    case kptDataset:
-    case kptDatatype:
-        rc = RC (rcExe, rcArgv, rcResolving, rcPath, rcIncorrect);
-        break;
-
-    case kptFile:
-    case kptDir:
-        break;
-    }
-    if (rc)
-    {
-        PLOGERR (klogErr, (klogErr, rc, "can not use source '$(S)'", "S=%s", src));
-        return rc;
-    }
-
-    /*
-     * In Place Operation
-     */
-    if (dst == NULL)
-    {
-
-        /*
-         * Input is a file
-         */
-        if (stype == kptFile)
-        {
-            KDirectory * ndir;
-            char * pc;
-
-            pc = strrchr (spath, '/');
-            if (pc == NULL)
-            {
-                pc = spath;
-                ndir = cwd;
-                rc = KDirectoryAddRef (cwd);
-            }
-            else if (pc == spath)
-            {
-                ++pc;
-                ndir = cwd;
-                rc = KDirectoryAddRef (cwd);
-            }
-            else
-            {
-                *pc++ = '\0';
-                rc = KDirectoryOpenDirUpdate (cwd, &ndir, false, spath);
-            }
-
-            if (rc == 0)
-            {
-                rc = FileInPlace (ndir, pc, try_rename);
-                KDirectoryRelease (ndir);
-            }
-        }
-        /*
-         * Input is a directory
-         */
-        else
-        {
-            KDirectory * ndir;
-
-            rc = KDirectoryOpenDirUpdate (cwd, &ndir, false, spath);
-            if (rc)
-                ;
-            else
-            {
-                STSMSG (1, ("%scrypting directory %s", De, spath));
-                rc = DoDir (ndir, ndir);
-                STSMSG (1, ("done with directory %s", spath));
-                KDirectoryRelease (ndir);
-            }
-        }
-    }
-
-    /*
-     * 'Copy' Operation
-     */
-    else
-    {
-    stdin_shortcut:
-        using_stdout = (strcmp (dst, "/dev/stdout") == 0);
-        if (using_stdout == true)
-        {
-            dtype = kptFile;
-            strcpy (dpath, dst);
-            UseStdout = true;
-            STSMSG (1, ("writing console / stdout as output"));
-            goto do_file;
-        }
-        rc = KDirectoryResolvePath (cwd, false, dpath, sizeof dpath, "%s", dst);
-        if (rc)
-        {
-            LOGERR (klogErr, rc, "can't resolve destination");
-            return rc;
-        }
-        dtype = KDirectoryPathType (cwd, dpath);
-        switch (dtype)
-        {
-        default:
-        case kptBadPath:
-            rc = RC (rcExe, rcArgv, rcResolving, rcPath, rcInvalid);
-            PLOGERR (klogErr, (klogErr, rc, "can not use destination  '$(S)'", "S=%s", dst));
-            break;
-
-        case kptCharDev:
-        case kptBlockDev:
-        case kptFIFO:
-        case kptZombieFile:
-        case kptDataset:
-        case kptDatatype:
-            rc = RC (rcExe, rcArgv, rcResolving, rcPath, rcIncorrect);
-            PLOGERR (klogErr, (klogErr, rc, "can not use destination parameter '$(S)'", "S=%s", dst));
-            break;
-
-        case kptNotFound:
-        {
-            size_t z;
-
-            z = strlen (dst) - 1;
-            if ((dst[z] == '/') || (stype == kptDir))
-                goto do_dir;
-            else
-                goto do_file;
-        }
-
-        case kptFile:
-            if (!ForceFlag)
-            {
-                rc = RC (rcExe, rcArgv, rcParsing, rcFile, rcExists);
-                PLOGERR (klogErr, (klogErr, rc, "can not over-write '$(F)' without --force",
-                                   "F=%s", dpath));
-                break;
-            }
-        do_file:
-            if (stype == kptFile)
-            {
-                rc = FileToFile (cwd, spath, cwd, dpath, try_rename, NULL);
-            }
-            else
-            {
-                rc = RC (rcExe, rcArgv, rcResolving, rcPath, rcIncorrect);
-                LOGERR (klogErr, rc, "Can't do directory to file");
-            }
-            break;
-
-        do_dir:
-        case kptDir:
-            /*
-             * Input is a directory
-             */
-            if (stype == kptDir)
-            {
-#if DIRECTORY_TO_DIRECTORY_SUPPORTED
-                const KDirectory * sdir;
-                KDirectory * ddir;
-
-                rc = KDirectoryOpenDirRead (cwd, &sdir, false, spath);
-                if (rc)
-                    ;
-                else
-                {
-                    if (dtype == kptNotFound)
-                    {
-                        STSMSG (1, ("creating output directory %s", dpath));
-                        rc = KDirectoryCreateDir (cwd, 0775, kcmCreate|kcmParents,
-                                                  "%s", dpath);
-                    }
-                    if (rc == 0)
-                    {
-                        rc = KDirectoryOpenDirUpdate (cwd, &ddir, false, dpath);
-                        if (rc)
-                            ;
-                        else
-                        {
-                            STSMSG (1, ("%scrypting directory %s to %s", De, spath, dpath));
-                            rc = DoDir (sdir, ddir);
-                            STSMSG (1, ("done with directory %s to %s", spath, dpath));
-                            KDirectoryRelease (ddir);
-                        }
-                    }
-                    KDirectoryRelease (sdir);
-                }
-#else
-                rc = RC (rcExe, rcArgv, rcResolving, rcPath, rcIncorrect);
-                LOGERR (klogErr, rc, "Can't do directory to directory");
-#endif
-            }
-            /*
-             * Input is a file
-             */
-            else
-            {
-                KDirectory * ndir;
-                const char * pc;
-
-                if (dtype == kptNotFound)
-                {
-                    STSMSG (1, ("creating output directory %s", dpath));
-                    rc = KDirectoryCreateDir (cwd, 0775, kcmCreate|kcmParents,
-                                              "%s", dpath);
-                }
-                if (rc == 0)
-                {
-
-                    STSMSG (1, ("opening output directory %s", dpath));
-                    rc = KDirectoryOpenDirUpdate (cwd, &ndir, false, dpath);
-                    if (rc)
-                        ;
-                    else
-                    {
-                        pc = strrchr (spath, '/');
-                        if (pc == NULL)
-                            pc = spath;
-                        else
-                            ++pc;
-
-                        rc = FileToFile (cwd, spath, ndir, pc, true, dpath);
-
-                        KDirectoryRelease (ndir);
-                    }
-                }
-            }
-            break;
-        }
-    }
-    return rc;
-}
-
-
-static
-rc_t StartFileSystem (const char * src, const char * dst)
-{
-    VFSManager * vmanager;
-    rc_t rc;
- 
-    rc = VFSManagerMake (&vmanager);
-    if (rc)
-        LOGERR (klogErr, rc, "Failed to open file system");
-
-    else
-    {
-        rc = VFSManagerGetKryptoPassword (vmanager, Password, sizeof Password,
-                                          &PasswordSize);
-        if (rc != 0)
-            LOGERR (klogErr, rc, "unable to obtain a password");
-
-        else
-        {
-            rc = KKeyInitRead (&Key, kkeyAES128, Password, PasswordSize);
-            if (rc)
-                LOGERR (klogErr, rc, "Unable to make encryption/decryption key");
-
-            else
-            {
-                KDirectory * cwd;
-
-                rc = VFSManagerGetCWD (vmanager, &cwd);
-                if (rc)
-                    LOGERR (klogInt, rc, "unable to access current directory");
-
-                else
-                {
-                    rc = Start (cwd, src, dst);
-
-                    KDirectoryRelease (cwd);
-                }
-            }
-        }
-        VFSManagerRelease (vmanager);
-    }
-    return rc;
-}
-
-
-rc_t CommonMain (Args * args)
-{
-    rc_t rc;
-    uint32_t ocount; /* we take the address of ocount but not pcount. */
-    uint32_t pcount; /* does that help the compiler optimize? */
-
-    rc = ArgsParamCount (args, &ocount);
-    if (rc)
-        LOGERR (klogInt, rc, "failed to count parameters");
-
-    else if ((pcount = ocount) == 0)
-        MiniUsage (args);
-
-    else if (pcount > 2)
-    {
-        LOGERR (klogErr, rc, "too many parameters");
-        MiniUsage(args);
-    }
-            
-    else
-    {
-        const char * dst; /* we only take the address of one of these */
-        const char * src;
-
-        rc = ArgsOptionCount (args, OPTION_FORCE, &ocount);
-        if (rc)
-            LOGERR (klogInt, rc, "failed to examine force option");
-
-        else
-        {
-            ForceFlag = (ocount > 0);
-
-            /* -----
-             * letting comp put src in register
-             * only if it wants
-             */
-            rc = ArgsParamValue (args, 0, &dst);
-            if (rc)
-                LOGERR (klogInt, rc, "Failure to fetch "
-                        "source parameter");
-
-            else
-            {
-                src = dst;
-
-                if (pcount == 1)
-                    dst = NULL;
-
-                else
-                {
-                    rc = ArgsParamValue (args, 1, &dst);
-                    if (rc)
-                        LOGERR (klogInt, rc, "Failure to fetch "
-                                "destination parameter");
-                }
-
-                if (rc == 0)
-                    rc = StartFileSystem (src, dst);
-            }
-        }
-    }
-    return rc;
-}
-
-/* EOF */
diff --git a/tools/vdb-decrypt/shared.h b/tools/vdb-decrypt/shared.h
deleted file mode 100644
index 37998bd..0000000
--- a/tools/vdb-decrypt/shared.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*==============================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#ifndef _tools_vdb_decrypt_shared_h_
-#define _tools_vdb_decrypt_shared_h_
-
-#define DIRECTORY_TO_DIRECTORY_SUPPORTED 0
-
-#include <klib/defs.h>
-#include <krypto/key.h>
-#include <kapp/args.h>
-
-#define OPTION_FORCE   "force"
-#define OPTION_DEC_SRA "decrypt-sra-files"
-#define ALIAS_FORCE    "f"
-#define ALIAS_DEC_SRA  NULL
-
-extern const bool Decrypting;
-
-extern char Password [];
-extern size_t PasswordSize;
-
-extern const char De [];
-extern const char de [];
-extern const char SraOption[];
-
-extern const char EncExt[];
-bool NameFixUp (char * name);
-extern const char * ForceUsage[];
-
-/* for encfile encrypt/decrypt */
-extern KKey Key;
-
-
-typedef enum ArcScheme
-{
-    arcError,
-    arcNone,
-    arcSRAFile
-} ArcScheme;
-
-extern bool IsArchive; /* this approach makes threading fail */
-
-struct KFile;
-
-ArcScheme ArchiveTypeCheck (const struct KFile * f);
-
-typedef enum EncScheme
-{
-    encError,
-    encNone,
-    encEncFile,
-    encSraEncFile,
-    encWGAEncFile
-} EncScheme;
-
-void CryptOptionLines ();
-
-bool DoThisFile (const struct KFile * infile, EncScheme enc, ArcScheme * arc);
-
-struct Args;
-rc_t CommonMain (struct Args * args);
-
-rc_t CryptFile (const struct KFile * in, const struct KFile ** new_in,
-                struct KFile * out, struct KFile ** new_out, EncScheme scheme);
-
-
-#endif
-
-/* EOF */
diff --git a/tools/vdb-decrypt/vdb-decrypt.c b/tools/vdb-decrypt/vdb-decrypt.c
deleted file mode 100644
index 6ff5d65..0000000
--- a/tools/vdb-decrypt/vdb-decrypt.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/*==============================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-
-#include "vdb-decrypt.vers.h"
-
-#include "shared.h"
-
-#include <krypto/wgaencrypt.h>
-#include <krypto/encfile.h>
-#include <kfs/file.h>
-#include <kfs/cacheteefile.h>
-#include <klib/rc.h>
-#include <klib/defs.h>
-#include <klib/log.h>
-#include <klib/status.h>
-
-#include <string.h>
-#include <assert.h>
-
-/* Version  EXTERN
- *  return 4-part version code: 0xMMmmrrrr, where
- *      MM = major release
- *      mm = minor release
- *    rrrr = bug-fix release
- */
-ver_t CC KAppVersion ( void )
-{
-    return VDB_DECRYPT_VERS;
-}
-
-
-/* Usage
- */
-const char UsageDefaultName [] = "vdb-decrypt";
-const char * UsageSra []       = { "decrypt sra archives - [NOT RECOMMENDED]",
-                                   NULL };
-const char De[]             = "De";
-const char de[]             = "de";
-const char OptionSra[] = OPTION_DEC_SRA;
-
-
-static
-OptDef Options[] = 
-{
-    /* name            alias max times oparam required fmtfunc help text loc */
-    { OPTION_DEC_SRA, ALIAS_DEC_SRA, NULL, UsageSra,      0, false, false },
-    { OPTION_FORCE,   ALIAS_FORCE,   NULL, ForceUsage,   0, false, false }
-};
-
-
-static 
-bool DecryptSraFlag = false;
-
-
-const bool Decrypting = true;
-
-void CryptOptionLines ()
-{
-    HelpOptionLine (ALIAS_DEC_SRA, OPTION_DEC_SRA, NULL, UsageSra);
-}
-
-bool DoThisFile (const KFile * infile, EncScheme enc, ArcScheme * parc)
-{
-    const KFile * Infile;
-    ArcScheme arc;
-    rc_t rc;
-
-    *parc = arcNone;
-
-    switch (enc)
-    {
-    default:
-        STSMSG (1, ("not encrypted"));
-        return false;
-
-    case encEncFile:
-        /*
-         * this will apply to KEncFiles versions 1 and 2, maybe not 3
-         * but will hopefully become obsolete eventually.
-         */
-        rc = KEncFileMakeRead (&Infile, infile, &Key);
-        if (rc)
-            return false;
-        break;
-
-    case encSraEncFile:
-        /* these are NCBIsenc instead of NCBInenc */
-        goto sra_enc_file;
-
-    case encWGAEncFile:
-        rc = KFileMakeWGAEncRead (&Infile, infile, Password, PasswordSize);
-        if (rc)
-            return false;
-        break;
-    }
-    arc = ArchiveTypeCheck (Infile);
-    KFileRelease (Infile);
-    switch (arc)
-    {
-    default:
-        return false;
-    case arcNone:
-        return true;
-    case arcSRAFile:
-        break;
-    }
-sra_enc_file:
-    *parc = arcSRAFile;
-    STSMSG (1, ("encrypted sra archive\ndecryption%s requested",
-                DecryptSraFlag ? "" : " not"));
-    return DecryptSraFlag;
-}
-
-bool NameFixUp (char * name)
-{
-    char * pc = strrchr (name, '.');
-    if (pc != NULL)
-    {
-        if (strcmp (pc, EncExt) == 0)
-        {
-            pc[0] = '\0';
-            return true;
-        }
-    }
-    return false;
-}
-
-rc_t CryptFile (const KFile * in, const KFile ** new_in,
-                KFile * out, KFile ** new_out, EncScheme scheme)
-{
-    const KFile * dec;
-    rc_t rc;
-
-    assert (in);
-    assert (out);
-    assert (new_in);
-    assert (new_out);
-
-
-    rc = KFileAddRef (out);
-    if (rc)
-        return rc;
-
-    switch (scheme)
-    {
-    default:
-    case encError:
-        rc = RC (rcExe, rcFile, rcClassifying, rcFile, rcInvalid);
-        break;
-        
-    case encNone:
-    copy:
-        rc = KFileAddRef (in);
-        if (rc)
-            goto fail;
-        *new_in = in;
-        *new_out = out;
-        STSMSG (1, ("not encrypted just copying"));
-        return 0;
-
-    case encEncFile:
-        rc = KEncFileMakeRead (&dec, in, &Key);
-    made_enc:
-        if (rc)
-            goto fail;
-
-        switch (ArchiveTypeCheck (dec))
-        {
-        default:
-        case arcError:
-            rc = RC (rcExe, rcFile, rcClassifying, rcFile, rcInvalid);
-            break;
-
-        case arcSRAFile:
-            if (!DecryptSraFlag)
-            {
-                rc = KFileRelease (dec);
-                if (rc)
-                {
-                    KFileRelease (dec);
-                    KFileRelease (in);
-                    goto fail;
-                }
-                goto copy;
-            }
-            /* fall through */
-        case arcNone:
-            *new_out = out;
-            *new_in = dec;
-            return 0;
-        }
-        break;
-
-    case encWGAEncFile:
-        rc = KFileMakeWGAEncRead (&dec, in, Password, PasswordSize);
-        goto made_enc;
-        break;
-    }
-    fail:
-        KFileRelease (out);
-        *new_in = *new_out = NULL;
-        return rc;
-}
-
-
-/* KMain - EXTERN
- *  executable entrypoint "main" is implemented by
- *  an OS-specific wrapper that takes care of establishing
- *  signal handlers, logging, etc.
- *
- *  in turn, OS-specific "main" will invoke "KMain" as
- *  platform independent main entrypoint.
- *
- *  "argc" [ IN ] - the number of textual parameters in "argv"
- *  should never be < 0, but has been left as a signed int
- *  for reasons of tradition.
- *
- *  "argv" [ IN ] - array of NUL terminated strings expected
- *  to be in the shell-native character set: ASCII or UTF-8
- *  element 0 is expected to be executable identity or path.
- */
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args * args;
-    rc_t rc;
-
-    KStsLevelSet (1);
-
-    rc = ArgsMakeAndHandle (&args, argc, argv, 1, Options,
-                            sizeof (Options) / sizeof (Options[0]));
-    if (rc)
-        LOGERR (klogInt, rc, "failed to parse command line parameters");
-
-    else
-    {
-        uint32_t ocount;
-
-        rc = ArgsOptionCount (args, OPTION_DEC_SRA, &ocount);
-        if (rc)
-            LOGERR (klogInt, rc, "failed to examine decrypt "
-                    "sra option");
-        else
-        {
-            DecryptSraFlag = (ocount > 0);
-
-            rc = CommonMain (args);
-        }
-        ArgsWhack (args);
-    }
-
-    STSMSG (1, ("exiting: %R (%u)", rc, rc));
-    return rc;
-}
-
-
-/* EOF */
diff --git a/tools/vdb-decrypt/vdb-decrypt.vers b/tools/vdb-decrypt/vdb-decrypt.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/vdb-decrypt/vdb-decrypt.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/vdb-decrypt/vdb-encrypt.c b/tools/vdb-decrypt/vdb-encrypt.c
deleted file mode 100644
index c50de63..0000000
--- a/tools/vdb-decrypt/vdb-encrypt.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*==============================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-
-#include "vdb-encrypt.vers.h"
-
-#include "shared.h"
-
-#include <krypto/wgaencrypt.h>
-#include <krypto/encfile.h>
-#include <kfs/file.h>
-#include <klib/rc.h>
-#include <klib/defs.h>
-#include <klib/log.h>
-#include <klib/status.h>
-
-#include <assert.h>
-#include <string.h>
-
-/* Version  EXTERN
- *  return 4-part version code: 0xMMmmrrrr, where
- *      MM = major release
- *      mm = minor release
- *    rrrr = bug-fix release
- */
-ver_t CC KAppVersion ( void )
-{
-    return VDB_ENCRYPT_VERS;
-}
-
-
-/* Usage
- */
-const char UsageDefaultName [] = "vdb-encrypt";
-const char De[]             = "En";
-const char de[]             = "en";
-
-
-static
-OptDef Options[] = 
-{
-    /* name            alias max times oparam required fmtfunc help text loc */
-    { OPTION_FORCE,   ALIAS_FORCE,   NULL, ForceUsage,   0, false, false }
-};
-
-
-static 
-bool DecryptSraFlag = false;
-
-const bool Decrypting = false;
-
-void CryptOptionLines () {}
-
-bool DoThisFile (const KFile * infile, EncScheme enc, ArcScheme * parc)
-{
-    const KFile * Infile;
-    ArcScheme arc;
-    rc_t rc;
-    bool do_enc;
-
-    *parc = arcNone;
-
-    switch (enc)
-    {
-    default:
-        STSMSG (1, ("error checking encrypted"));
-        return false;
-
-    case encNone:
-        do_enc = true;
-        rc = KFileAddRef (infile);
-        if (rc)
-            return false;
-        Infile = infile;
-        break;
-
-    case encEncFile:
-        do_enc = false;
-        rc = KEncFileMakeRead (&Infile, infile, &Key);
-        if (rc)
-            return false;
-        break;
-
-    case encWGAEncFile:
-        do_enc = false;
-        rc = KFileMakeWGAEncRead (&Infile, infile, Password, PasswordSize);
-        if (rc)
-            return false;
-        break;
-    }
-    arc = ArchiveTypeCheck (Infile);
-    KFileRelease (Infile);
-    if (arc == arcSRAFile)
-    {
-        STSMSG (1, ("%sencrypted sra archive", do_enc ? "un" : ""));
-        *parc = arcSRAFile;
-    }
-    return do_enc;
-}
-
-bool NameFixUp (char * name)
-{
-    char * pc = strrchr (name, '.');
-
-    if (((pc != NULL) &&
-         (strcmp (pc, EncExt) == 0)) ||
-        IsArchive )
-        return false;
-
-    strcat (name, EncExt);
-
-    return true;
-}
-
-rc_t CryptFile (const KFile * in, const KFile ** new_in,
-                KFile * out, KFile ** new_out, EncScheme scheme)
-{
-    rc_t rc;
-
-    assert (in);
-    assert (out);
-    assert (new_in);
-    assert (new_out);
-
-    *new_in = *new_out = NULL;
-
-    rc = KFileAddRef (in);
-    if (rc)
-        return rc;
-
-    switch (scheme)
-    {
-    default:
-    case encError:
-        KFileRelease (in);
-        return RC (rcExe, rcEncryption, rcParsing, rcFile, rcInvalid);
-
-    case encNone:
-        rc = KEncFileMakeWrite (new_out, out, &Key);
-        if (rc)
-        {
-            KFileRelease (in);
-            return rc;
-        }
-        break;
-
-    case encEncFile:
-    case encWGAEncFile:
-        rc = KFileAddRef (out);
-        if (rc)
-        {
-            KFileRelease (in);
-            return rc;
-        }
-        *new_out = out;
-        STSMSG (1, ("already encrypted just copying"));
-        break;
-    }
-    *new_in = in;
-    return 0;
-}
-
-
-/* KMain - EXTERN
- *  executable entrypoint "main" is implemented by
- *  an OS-specific wrapper that takes care of establishing
- *  signal handlers, logging, etc.
- *
- *  in turn, OS-specific "main" will invoke "KMain" as
- *  platform independent main entrypoint.
- *
- *  "argc" [ IN ] - the number of textual parameters in "argv"
- *  should never be < 0, but has been left as a signed int
- *  for reasons of tradition.
- *
- *  "argv" [ IN ] - array of NUL terminated strings expected
- *  to be in the shell-native character set: ASCII or UTF-8
- *  element 0 is expected to be executable identity or path.
- */
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args * args;
-    rc_t rc;
-
-    KStsLevelSet (1);
-
-    rc = ArgsMakeAndHandle (&args, argc, argv, 1, Options,
-                            sizeof (Options) / sizeof (Options[0]));
-    if (rc)
-        LOGERR (klogInt, rc, "failed to parse command line parameters");
-
-    else
-    {
-        rc = CommonMain (args);
-
-        ArgsWhack (args);
-    }
-
-    STSMSG (1, ("exiting: %R (%u)", rc, rc));
-    return rc;
-}
-
-
-/* EOF */
diff --git a/tools/vdb-decrypt/vdb-encrypt.vers b/tools/vdb-decrypt/vdb-encrypt.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/vdb-decrypt/vdb-encrypt.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2
diff --git a/tools/vdb-dump/#Makefile# b/tools/vdb-dump/#Makefile#
deleted file mode 100644
index 35872c2..0000000
--- a/tools/vdb-dump/#Makefile#
+++ /dev/null
@@ -1,130 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/vdb-dump
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS = \
-
-EXT_TOOLS = \
-	vdb-dump
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#-------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# tag
-#
-tag: $(addsuffix _tag,$(ALL_TOOLS))
-
-.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
-
-#-------------------------------------------------------------------------------
-# vdb-dump
-#  vdb dump tool
-#
-VDB_DUMP_SRC = \
-	vdb-dump-num-gen \
-	vdb-dump-context \
-	vdb-dump-coldefs \
-	vdb-dump-tools \
-	vdb-dump-str \
-	vdb-dump-helper \
-	vdb-dump-filter \
-	vdb-dump-formats \
-	vdb-dump
-
-VDB_DUMP_OBJ = \
-	$(addsuffix .$(OBJX),$(VDB_DUMP_SRC))
-
-VDB_DUMP_LIB = \
-	-ssrapath \
-	-ssraschema \
-	-dalign-reader \
-	-daxf \
-	-dsraxf \
-	-dvxf \
-	-lksrch \
-	-lvdb \
-	-lkdb \
-	-lvfs \
-	-lkrypto \
-	-lkapp \
-	-lkfg \
-	-lkfs \
-	-lklib \
-	-lm
-
-$(BINDIR)/vdb-dump: $(VDB_DUMP_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_DUMP_LIB)
-
-vdb-dump_tag:
-	@ $(TOP)/build/tag-module.sh $(MODULE) vdb-dump $(VDB_DUMP_OBJ)
diff --git a/tools/vdb-dump/Makefile b/tools/vdb-dump/Makefile
index 6500242..aa2fddd 100644
--- a/tools/vdb-dump/Makefile
+++ b/tools/vdb-dump/Makefile
@@ -42,13 +42,15 @@ ALL_TOOLS = \
 #-------------------------------------------------------------------------------
 # outer targets
 #
-all std: vers-includes
+vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+
+all std: makedirs vers-includes
 	@ $(MAKE_CMD) $(TARGDIR)/$@
 
-$(ALL_TOOLS): vers-includes
+$(ALL_TOOLS): makedirs vers-includes
 	@ $(MAKE_CMD) $(BINDIR)/$@
 
-.PHONY: all std $(ALL_TOOLS)
+.PHONY: vers-includes all std $(ALL_TOOLS)
 
 #-------------------------------------------------------------------------------
 # all
@@ -67,18 +69,18 @@ $(TARGDIR)/std: \
 .PHONY: $(TARGDIR)/std
 
 #-------------------------------------------------------------------------------
-# vers-includes
+# clean
 #
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
+clean: stdclean
 
-.PHONY: $(TARGDIR)/vers-includes
+.PHONY: clean
 
 #-------------------------------------------------------------------------------
-# clean
+# tag
 #
-clean: stdclean
+tag: $(addsuffix _tag,$(ALL_TOOLS))
 
-.PHONY: clean
+.PHONY: tag $(addsuffix _tag,$(ALL_TOOLS))
 
 #-------------------------------------------------------------------------------
 # vdb-dump
@@ -99,21 +101,26 @@ VDB_DUMP_OBJ = \
 	$(addsuffix .$(OBJX),$(VDB_DUMP_SRC))
 
 VDB_DUMP_LIB = \
-	-lkapp \
+	-ssrapath \
 	-ssraschema \
 	-dalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
+	-daxf \
+	-dsraxf \
+	-dvxf \
+	-lksrch \
 	-lvdb \
 	-lkdb \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
+	-lkapp \
 	-lkfg \
 	-lkfs \
-	-lksrch \
-	-lkproc \
 	-lklib \
+	-ldl \
+	-lz \
+	-lbz2 \
 	-lm
 
 $(BINDIR)/vdb-dump: $(VDB_DUMP_OBJ)
 	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_DUMP_LIB)
+
+vdb-dump_tag:
+	@ $(TOP)/build/tag-module.sh $(MODULE) vdb-dump $(VDB_DUMP_OBJ)
diff --git a/tools/vdb-dump/vdb-dump-coldefs.c b/tools/vdb-dump/vdb-dump-coldefs.c
index fac3f38..fcd9974 100644
--- a/tools/vdb-dump/vdb-dump-coldefs.c
+++ b/tools/vdb-dump/vdb-dump-coldefs.c
@@ -33,36 +33,17 @@
 #include <klib/printf.h>
 #include <klib/log.h>
 #include <klib/rc.h>
-#include <vdb/vdb-priv.h>
 #include <sra/sradb.h>
 #include <sra/pacbio.h>
+#include <fmtdef.h>
 #include <os-native.h>
 #include <sysalloc.h>
 
-/* for platforms */
-#include <insdc/sra.h>
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <assert.h>
 
-/* once we get used to having moved the read descriptor
-   out of SRA, we should begin using those names.
-   if anyone has an investment in the old names, we may
-   want to provide a switch for using them... */
-#if USE_OLD_SRA_NAME || 1
-#define SRA_NAME( name ) \
-    "SRA_" #name
-#define SRA_NAMES( name1, name2 ) \
-    "SRA_" #name1 "|SRA_" #name2
-#else
-#define SRA_NAME( name ) \
-    # name
-#define SRA_NAMES( name1, name2 ) \
-    #name1 "|" #name2
-#endif
-
 /* implementation of the value-translation-functions */
 
 const char SRA_PB_HS_0[] = { "SRA_PACBIO_HOLE_SEQUENCING" };
@@ -93,34 +74,38 @@ const char *vdcd_get_hole_status_txt( const uint32_t id )
     return( SRA_PB_HS_9 );
 }
 
+const char SRA_PF_0[] = { "SRA_PLATFORM_UNDEFINED" };
+const char SRA_PF_1[] = { "SRA_PLATFORM_454" };
+const char SRA_PF_2[] = { "SRA_PLATFORM_ILLUMINA" };
+const char SRA_PF_3[] = { "SRA_PLATFORM_ABSOLID" };
+const char SRA_PF_4[] = { "SRA_PLATFORM_COMPLETE_GENOMICS" };
+const char SRA_PF_5[] = { "SRA_PLATFORM_HELICOS" };
+const char SRA_PF_6[] = { "SRA_PLATFORM_PACBIO_SMRT" };
+const char SRA_PF_7[] = { "SRA_PLATFORM_ION_TORRENT" };
+const char SRA_PF_8[] = { "unknown platform" };
+
 const char *vdcd_get_platform_txt( const uint32_t id )
 {
-#define CASE( id ) \
-    case id : return # id; break
-
     switch( id )
     {
-        CASE ( SRA_PLATFORM_UNDEFINED );
-        CASE ( SRA_PLATFORM_454 );
-        CASE ( SRA_PLATFORM_ILLUMINA );
-        CASE ( SRA_PLATFORM_ABSOLID );
-        CASE ( SRA_PLATFORM_COMPLETE_GENOMICS );
-        CASE ( SRA_PLATFORM_HELICOS );
-        CASE ( SRA_PLATFORM_PACBIO_SMRT );
-        CASE ( SRA_PLATFORM_ION_TORRENT );
-        CASE ( SRA_PLATFORM_SANGER );
+        case 0  : return( SRA_PF_0 ); break;
+        case 1  : return( SRA_PF_1 ); break;
+        case 2  : return( SRA_PF_2 ); break;
+        case 3  : return( SRA_PF_3 ); break;
+        case 4  : return( SRA_PF_4 ); break;
+        case 5  : return( SRA_PF_5 ); break;
+        case 6  : return( SRA_PF_6 ); break;
+        case 7  : return( SRA_PF_7 ); break;
     }
-#undef CASE
-
-    return "unknown platform";
+    return( SRA_PF_8 );
 }
 
-const char SRA_RT_0[] = { SRA_NAME  ( READ_TYPE_TECHNICAL ) };
-const char SRA_RT_1[] = { SRA_NAME  ( READ_TYPE_BIOLOGICAL ) };
-const char SRA_RT_2[] = { SRA_NAMES ( READ_TYPE_TECHNICAL, READ_TYPE_FORWARD ) };
-const char SRA_RT_3[] = { SRA_NAMES ( READ_TYPE_BIOLOGICAL, READ_TYPE_FORWARD ) };
-const char SRA_RT_4[] = { SRA_NAMES ( READ_TYPE_TECHNICAL, READ_TYPE_REVERSE ) };
-const char SRA_RT_5[] = { SRA_NAMES ( READ_TYPE_BIOLOGICAL, READ_TYPE_REVERSE ) };
+const char SRA_RT_0[] = { "SRA_READ_TYPE_TECHNICAL" };
+const char SRA_RT_1[] = { "SRA_READ_TYPE_BIOLOGICAL" };
+const char SRA_RT_2[] = { "SRA_READ_TYPE_TECHNICAL|SRA_READ_TYPE_FORWARD" };
+const char SRA_RT_3[] = { "SRA_READ_TYPE_BIOLOGICAL|SRA_READ_TYPE_FORWARD" };
+const char SRA_RT_4[] = { "SRA_READ_TYPE_TECHNICAL|SRA_READ_TYPE_REVERSE" };
+const char SRA_RT_5[] = { "SRA_READ_TYPE_BIOLOGICAL|SRA_READ_TYPE_REVERSE" };
 const char SRA_RT_6[] = { "unknown read-type" };
 
 const char *vdcd_get_read_type_txt( const uint32_t id )
@@ -137,10 +122,10 @@ const char *vdcd_get_read_type_txt( const uint32_t id )
     return( SRA_RT_6 );
 }
 
-const char SRA_FT_0[] = { SRA_NAME ( READ_FILTER_PASS ) };
-const char SRA_FT_1[] = { SRA_NAME ( READ_FILTER_REJECT ) };
-const char SRA_FT_2[] = { SRA_NAME ( READ_FILTER_CRITERIA ) };
-const char SRA_FT_3[] = { SRA_NAME ( READ_FILTER_REDACTED ) };
+const char SRA_FT_0[] = { "SRA_READ_FILTER_PASS" };
+const char SRA_FT_1[] = { "SRA_READ_FILTER_REJECT" };
+const char SRA_FT_2[] = { "SRA_READ_FILTER_CRITERIA" };
+const char SRA_FT_3[] = { "SRA_READ_FILTER_REDACTED" };
 const char SRA_FT_4[] = { "unknown read-filter" };
 
 const char *vdcd_get_read_filter_txt( const uint32_t id )
@@ -162,43 +147,28 @@ const char *vdcd_get_read_filter_txt( const uint32_t id )
 #define SRA_KEY_READ_FILTER "INSDC:SRA:read_filter"
 #define SRA_PACBIO_HOLE_STATUS "PacBio:hole:status"
 
-
-static bool vdcd_type_cmp( const VSchema *my_schema, VTypedecl * typedecl, const char * to_check )
-{
-    VTypedecl type_to_check;
-    rc_t rc = VSchemaResolveTypedecl ( my_schema, &type_to_check, to_check );
-    if ( rc == 0 )
-    {
-        return VTypedeclToTypedecl ( typedecl, my_schema, &type_to_check, NULL, NULL );
-    }
-    return false;
-}
-
-
-static value_trans_fct_t vdcd_get_value_trans_fct( const VSchema *my_schema, VTypedecl * typedecl )
+value_trans_fct_t vdcd_get_value_trans_fct( const char* name )
 {
     value_trans_fct_t res = NULL;
 
-    if ( my_schema == NULL ) return res;
-    if ( typedecl == NULL ) return res;
-
-    if ( vdcd_type_cmp( my_schema, typedecl, SRA_KEY_PLATFORM_ID ) )
+    if ( name == NULL ) return res;
+    if ( strcmp( name, SRA_KEY_PLATFORM_ID ) == 0 )
     {
         res = vdcd_get_platform_txt;
     }
-    else if ( vdcd_type_cmp( my_schema, typedecl, SRA_KEY_XREAD_TYPE ) )
+    else if ( strcmp( name, SRA_KEY_XREAD_TYPE ) == 0 )
     {
         res = vdcd_get_read_type_txt;
     }
-    else if ( vdcd_type_cmp( my_schema, typedecl, SRA_KEY_READ_TYPE ) )
+    else if ( strcmp( name, SRA_KEY_READ_TYPE ) == 0 )
     {
         res = vdcd_get_read_type_txt;
     }
-    else if ( vdcd_type_cmp( my_schema, typedecl, SRA_KEY_READ_FILTER ) )
+    else if ( strcmp( name, SRA_KEY_READ_FILTER ) == 0 )
     {
         res = vdcd_get_read_filter_txt;
     }
-    else if ( vdcd_type_cmp( my_schema, typedecl, SRA_PACBIO_HOLE_STATUS ) )
+    else if ( strcmp( name, SRA_PACBIO_HOLE_STATUS ) == 0 )
     {
         res = vdcd_get_hole_status_txt;
     }
@@ -206,9 +176,8 @@ static value_trans_fct_t vdcd_get_value_trans_fct( const VSchema *my_schema, VTy
     return res;
 }
 
-
 /* implementation of the dimension-translation-functions */
-static char *vdcd_get_read_desc_txt( const uint8_t * src )
+char *vdcd_get_read_desc_txt( const uint8_t * src )
 {
     char *res = calloc( 1, 120 );
     SRAReadDesc desc;
@@ -220,7 +189,7 @@ static char *vdcd_get_read_desc_txt( const uint8_t * src )
     return res;
 }
 
-static char *vdcd_get_spot_desc_txt( const uint8_t *src )
+char *vdcd_get_spot_desc_txt( const uint8_t *src )
 {
     char *res = calloc( 1, 120 );
     SRASpotDesc desc;
@@ -236,22 +205,11 @@ static char *vdcd_get_spot_desc_txt( const uint8_t *src )
 #define SRA_KEY_READ_DESC "NCBI:SRA:ReadDesc"
 #define SRA_KEY_SPOT_DESC "NCBI:SRA:SpotDesc"
 
-static dim_trans_fct_t vdcd_get_dim_trans_fct( const VSchema *my_schema, VTypedecl * typedecl )
+dim_trans_fct_t vdcd_get_dim_trans_fct( const char* name )
 {
     dim_trans_fct_t res = NULL;
 
-    if ( my_schema == NULL ) return res;
-    if ( typedecl == NULL ) return res;
-
-    if ( vdcd_type_cmp( my_schema, typedecl, SRA_KEY_READ_DESC ) )
-    {
-        res = vdcd_get_read_desc_txt;
-    }
-    else if ( vdcd_type_cmp( my_schema, typedecl, SRA_KEY_SPOT_DESC ) )
-    {
-        res = vdcd_get_spot_desc_txt;
-    }
-/*
+    if ( name == NULL ) return res;
     if ( strcmp( name, SRA_KEY_READ_DESC ) == 0 )
     {
         res = vdcd_get_read_desc_txt;
@@ -260,31 +218,22 @@ static dim_trans_fct_t vdcd_get_dim_trans_fct( const VSchema *my_schema, VTypede
     {
         res = vdcd_get_spot_desc_txt;
     }
-*/
     return res;
 }
 
 
-const char * const_s_Ascii = "Ascii";
-const char * const_s_Unicode = "Unicode";
-const char * const_s_Uint = "Uint";
-const char * const_s_Int = "Int";
-const char * const_s_Float = "Float";
-const char * const_s_Bool = "Bool";
-const char * const_s_Unknown = "unknown";
-
 char *vdcd_make_domain_txt( const uint32_t domain )
 {
     char* res= NULL;
     switch( domain )
     {
-        case vtdAscii   : res = string_dup_measure( const_s_Ascii, NULL ); break;
-        case vtdUnicode : res = string_dup_measure( const_s_Unicode, NULL ); break;
-        case vtdUint    : res = string_dup_measure( const_s_Uint, NULL ); break;
-        case vtdInt     : res = string_dup_measure( const_s_Int, NULL ); break;
-        case vtdFloat   : res = string_dup_measure( const_s_Float, NULL ); break;
-        case vtdBool    : res = string_dup_measure( const_s_Bool, NULL ); break;
-        default : res = string_dup_measure( const_s_Unknown, NULL ); break;
+        case vtdAscii   : res = strdup( "Ascii" ); break;
+        case vtdUnicode : res = strdup( "Unicode" ); break;
+        case vtdUint    : res = strdup( "Uint" ); break;
+        case vtdInt     : res = strdup( "Int" ); break;
+        case vtdFloat   : res = strdup( "Float" ); break;
+        case vtdBool    : res = strdup( "Bool" ); break;
+        default : res = strdup( "unknown" ); break;
     }
     return res;
 }
@@ -295,11 +244,11 @@ p_col_def vdcd_init_col( const char* name, const size_t str_limit )
     p_col_def res = NULL;
     if ( name == NULL ) return res;
     if ( name[0] == 0 ) return res;
-    res = ( p_col_def )calloc( 1, sizeof( col_def ) );
+    res = (p_col_def)calloc( 1, sizeof( col_def ) );
     if ( res != NULL )
     {
         res->name = string_dup_measure ( name, NULL );
-        vds_make( &( res->content ), str_limit, DUMP_STR_INC );
+        vds_make( &(res->content), str_limit, DUMP_STR_INC );
     }
     return res;
 }
@@ -308,7 +257,7 @@ void vdcd_destroy_col( p_col_def col_def )
 {
     if ( col_def == NULL ) return;
     if ( col_def->name ) free( col_def->name );
-    vds_free( &( col_def->content ) );
+    vds_free( &(col_def->content) );
     free( col_def );
 }
 
@@ -324,7 +273,7 @@ bool vdcd_init( col_defs** defs, const size_t str_limit )
         (*defs)->max_colname_chars = 0;
         res = true;
     }
-    ( *defs )->str_limit = str_limit;
+    (*defs)->str_limit = str_limit;
     return res;
 }
 
@@ -347,7 +296,7 @@ static p_col_def vdcd_append_col( col_defs* defs, const char* name )
     {
         if ( VectorAppend( &(defs->cols), NULL, new_col ) == 0 )
         {
-            int len = string_size( name );
+            int len = strlen( name );
             if ( len > defs->max_colname_chars )
                 defs->max_colname_chars = len;
         }
@@ -355,10 +304,8 @@ static p_col_def vdcd_append_col( col_defs* defs, const char* name )
     return new_col;
 }
 
-
-bool vdcd_parse_string( col_defs* defs, const char* src, const VTable *my_table )
+bool vdcd_parse_string( col_defs* defs, const char* src )
 {
-    uint32_t count = 0;
     char colname[MAX_COL_NAME_LEN+1];
     size_t i_dest = 0;
     if ( defs == NULL ) return false;
@@ -385,42 +332,9 @@ bool vdcd_parse_string( col_defs* defs, const char* src, const VTable *my_table
         colname[i_dest]=0;
         vdcd_append_col( defs, colname );
     }
-    count = VectorLength( &(defs->cols) ) > 0;
-    if ( count > 0 && my_table != NULL )
-    {
-        const VCursor *my_cursor;
-        rc_t rc = VTableCreateCursorRead( my_table, &my_cursor );
-        DISP_RC( rc, "VTableCreateCursorRead() failed" );
-        if ( rc == 0 )
-        {
-            uint32_t found = 0;
-            uint32_t idx;
-            for ( idx = 0; idx < count && rc == 0; ++idx )
-            {
-                col_def *col = ( col_def * )VectorGet( &(defs->cols), idx );
-                if ( col != NULL )
-                {
-                    rc = VCursorAddColumn( my_cursor, &(col->idx), col->name );
-                    DISP_RC( rc, "VCursorAddColumn() failed" );
-                    if ( rc == 0 )
-                    {
-                        rc = VCursorDatatype( my_cursor, col->idx,
-                                  &(col->type_decl), &(col->type_desc) );
-                        DISP_RC( rc, "VCursorDatatype() failed" );
-                        if ( rc == 0 )
-                            found++;
-                    }
-                }
-            }
-            count = found;
-            rc = VCursorRelease( my_cursor );
-            DISP_RC( rc, "VCursorRelease() failed" );
-        }
-    }
-    return ( count > 0 );
+    return ( VectorLength( &(defs->cols) ) > 0 );
 }
 
-
 bool vdcd_extract_from_table( col_defs* defs, const VTable *my_table )
 {
     bool col_defs_found = false;
@@ -441,7 +355,7 @@ bool vdcd_extract_from_table( col_defs* defs, const VTable *my_table )
             if ( rc == 0 )
             {
                 uint32_t i;
-                for ( i = 0; i < n && rc ==0; ++i )
+                for ( i=0; i<n; ++i )
                 {
                     const char *col_name;
                     rc = KNamelistGet( names, i, &col_name );
@@ -463,7 +377,7 @@ bool vdcd_extract_from_table( col_defs* defs, const VTable *my_table )
                         }
                     }
                 }
-                col_defs_found = ( found > 0 );
+            col_defs_found = ( found > 0 );
             }
             rc = VCursorRelease( my_cursor );
             DISP_RC( rc, "VCursorRelease() failed" );
@@ -474,41 +388,6 @@ bool vdcd_extract_from_table( col_defs* defs, const VTable *my_table )
     return col_defs_found;
 }
 
-
-bool vdcd_extract_from_phys_table( col_defs* defs, const VTable *my_table )
-{
-    bool col_defs_found = false;
-    KNamelist *names;
-    rc_t rc = VTableListPhysColumns( my_table, &names );
-    DISP_RC( rc, "VTableListPhysColumns() failed" );
-    if ( rc == 0 )
-    {
-        uint32_t n;
-        uint32_t found = 0;
-        rc = KNamelistCount( names, &n );
-        DISP_RC( rc, "KNamelistCount() failed" );
-        if ( rc == 0 )
-        {
-            uint32_t i;
-            for ( i = 0; i < n && rc == 0; ++i )
-            {
-                const char *col_name;
-                rc = KNamelistGet( names, i, &col_name );
-                DISP_RC( rc, "KNamelistGet() failed" );
-                if ( rc == 0 )
-                {
-                    vdcd_append_col( defs, col_name );
-                    found++;
-                }
-            }
-            col_defs_found = ( found > 0 );
-        }
-        rc = KNamelistRelease( names );
-        DISP_RC( rc, "KNamelistRelease() failed" );
-    }
-    return col_defs_found;
-}
-
 typedef struct add_2_cur_context
 {
     const VCursor *my_cursor;
@@ -570,17 +449,24 @@ void vdcd_reset_content( col_defs* defs )
 
 static void CC vdcd_ins_1_trans_fkt( void *item, void *data )
 {
-    p_col_def my_col_def = ( p_col_def )item;
-    const VSchema *my_schema = ( const VSchema * )data;
+    rc_t rc;
+    char buf[64];
+    p_col_def my_col_def = (p_col_def)item;
+    const VSchema *my_schema = (const VSchema*)data;
 
     if ( my_col_def == NULL ) return;
     if ( my_schema == NULL ) return;
-
-    /* resolves special sra-types and retrieves the addr of
-       a function that later can translate the values into plain-text
-       --- is defined in this file! */
-    my_col_def->value_trans_fct = vdcd_get_value_trans_fct( my_schema, &(my_col_def->type_decl) );
-    my_col_def->dim_trans_fct = vdcd_get_dim_trans_fct( my_schema, &(my_col_def->type_decl) );
+    rc = VTypedeclToText( &(my_col_def->type_decl), my_schema,
+                          buf, sizeof(buf) );
+    DISP_RC( rc, "VTypedeclToText() failed" );
+    if ( rc == 0 )
+    {
+        /* resolves special sra-types and retrieves the addr of
+           a function that later can translate the values into plain-text
+           --- is defined in this file! */
+        my_col_def->value_trans_fct = vdcd_get_value_trans_fct( buf );
+        my_col_def->dim_trans_fct = vdcd_get_dim_trans_fct( buf );
+    }
 }
 
 void vdcd_ins_trans_fkt( col_defs* defs, const VSchema *my_schema )
diff --git a/tools/vdb-dump/vdb-dump-coldefs.h b/tools/vdb-dump/vdb-dump-coldefs.h
index 83ee20a..c26e667 100644
--- a/tools/vdb-dump/vdb-dump-coldefs.h
+++ b/tools/vdb-dump/vdb-dump-coldefs.h
@@ -58,7 +58,6 @@ typedef struct col_def
 {
     char *name;
     uint32_t idx;
-    uint64_t elementsum;
     bool valid;
     bool excluded;
     VTypedecl type_decl;
@@ -87,9 +86,8 @@ char *vdcd_make_domain_txt( const uint32_t domain );
 bool vdcd_init( col_defs** defs, const size_t str_limit );
 void vdcd_destroy( col_defs* defs );
 
-bool vdcd_parse_string( col_defs* defs, const char* src, const VTable *my_table );
+bool vdcd_parse_string( col_defs* defs, const char* src );
 bool vdcd_extract_from_table( col_defs* defs, const VTable *my_table );
-bool vdcd_extract_from_phys_table( col_defs* defs, const VTable *my_table );
 bool vdcd_add_to_cursor( col_defs* defs, const VCursor *my_cursor );
 void vdcd_reset_content( col_defs* defs );
 void vdcd_ins_trans_fkt( col_defs* defs, const VSchema *my_schema );
diff --git a/tools/vdb-dump/vdb-dump-context.c b/tools/vdb-dump/vdb-dump-context.c
index c24899c..37949f1 100644
--- a/tools/vdb-dump/vdb-dump-context.c
+++ b/tools/vdb-dump/vdb-dump-context.c
@@ -35,6 +35,7 @@
 #include <os-native.h>
 #include <sysalloc.h>
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -60,7 +61,7 @@ static rc_t vdco_set_str( char **dst, const char *src )
     {
         return RC( rcVDB, rcNoTarg, rcWriting, rcParam, rcNull );
     }
-    len = string_size( src );
+    len = strlen( src );
     if ( len == 0 )
     {
         return RC( rcVDB, rcNoTarg, rcWriting, rcItem, rcEmpty );
@@ -70,7 +71,7 @@ static rc_t vdco_set_str( char **dst, const char *src )
     {
         return RC( rcVDB, rcNoTarg, rcWriting, rcMemory, rcExhausted );
     }
-    string_copy( *dst, len+1, src, len );
+    strcpy( *dst, src );
     return 0;
 }
 
@@ -100,9 +101,6 @@ static void vdco_init_values( p_dump_context ctx )
     ctx->id_range_requested = false;
     ctx->without_sra_types = false;
     ctx->dont_check_accession = false;
-    ctx->print_num_elem = false;
-    ctx->objver_requested = false;
-    ctx->objtype_requested = false;
 }
 
 rc_t vdco_init( dump_context **ctx )
@@ -144,6 +142,11 @@ rc_t vdco_destroy( p_dump_context ctx )
     }
     if ( rc == 0 )
     {
+        if ( ctx->path != NULL )
+        {
+            free( (void*)ctx->path );
+            ctx->path = NULL;
+        }
         VectorWhack( &(ctx->schema_list),
                      vdco_schema_list_entry_whack, NULL );
         if ( ctx->table != NULL )
@@ -167,6 +170,20 @@ rc_t vdco_destroy( p_dump_context ctx )
     return rc;
 }
 
+static rc_t vdco_set_path( p_dump_context ctx, const char *src )
+{
+    rc_t rc = 0;
+    if ( ( ctx == NULL )||( src == NULL ) )
+    {
+        rc = RC( rcVDB, rcNoTarg, rcWriting, rcParam, rcNull );
+    }
+    if ( rc == 0 )
+    {
+        rc = vdco_set_str( (char**)&(ctx->path), src );
+        DISP_RC( rc, "dump_context_set_str() failed" );
+    }
+    return rc;
+}
 
 static rc_t vdco_add_schema( p_dump_context ctx, const char *src )
 {
@@ -268,6 +285,12 @@ static rc_t vdco_set_row_range( p_dump_context ctx, const char *src )
     return rc;
 }
 
+static bool vdco_check_if_usage_necessary( p_dump_context ctx )
+{
+    if ( ctx == NULL ) return false;
+    if ( ctx->path == NULL ) ctx->usage_requested = true;
+    return ctx->usage_requested;
+}
 
 static bool vdco_set_format( p_dump_context ctx, const char *src )
 {
@@ -300,6 +323,34 @@ static bool vdco_set_boolean_char( dump_context *ctx, const char * src )
     return true;
 }
 
+static rc_t vdco_evaluate_arguments( const Args *my_args,
+                                     dump_context *context )
+{
+    uint32_t count;
+    rc_t rc = ArgsParamCount( my_args, &count );
+    DISP_RC( rc, "ArgsParamCount() failed" );
+    if ( rc == 0 )
+    {
+        uint32_t idx;
+        for ( idx=0; idx<count; ++idx )
+        {
+            const char *value = NULL;
+            rc = ArgsParamValue( my_args, idx, &value );
+            DISP_RC( rc, "ArgsParamValue() failed" );
+            if ( rc == 0 )
+            {
+                switch( idx )
+                {
+                    case 0 : rc = vdco_set_path( context, value );
+                        DISP_RC( rc, "dump_context_set_path() failed" );
+                        break;
+                }
+            }
+        }
+    }
+    return rc;
+}
+
 
 static bool vdco_get_bool_option( const Args *my_args,
                                   const char *name,
@@ -406,18 +457,12 @@ static void vdco_evaluate_options( const Args *my_args,
     ctx->column_enum_requested = vdco_get_bool_option( my_args, OPTION_COLUMN_ENUM, false );
     ctx->column_enum_short = vdco_get_bool_option( my_args, OPTION_COLUMN_SHORT, false );
     ctx->print_dna_bases = vdco_get_bool_option( my_args, OPTION_DNA_BASES, false );
-    ctx->objver_requested = vdco_get_bool_option( my_args, OPTION_OBJVER, false );
-    ctx->objtype_requested = vdco_get_bool_option( my_args, OPTION_OBJTYPE, false );
     ctx->max_line_len = vdco_get_uint16_option( my_args, OPTION_MAX_LINE_LEN, 0 );
     ctx->indented_line_len = vdco_get_uint16_option( my_args, OPTION_LINE_INDENT, 0 );
     ctx->id_range_requested = vdco_get_bool_option( my_args, OPTION_ID_RANGE, false );
     vdco_set_format( ctx, vdco_get_str_option( my_args, OPTION_FORMAT ) );
     ctx->without_sra_types = vdco_get_bool_option( my_args, OPTION_WITHOUT_SRA, false );
     ctx->dont_check_accession = vdco_get_bool_option( my_args, OPTION_WITHOUT_ACCESSION, false );
-    ctx->print_num_elem = vdco_get_bool_option( my_args, OPTION_NUMELEM, false );
-    ctx->sum_num_elem = vdco_get_bool_option( my_args, OPTION_NUMELEMSUM, false );
-    ctx->show_blobbing = vdco_get_bool_option( my_args, OPTION_SHOW_BLOBBING, false );
-    ctx->enum_phys = vdco_get_bool_option( my_args, OPTION_ENUM_PHYS, false );
 
     vdco_set_table( ctx, vdco_get_str_option( my_args, OPTION_TABLE ) );
     vdco_set_columns( ctx, vdco_get_str_option( my_args, OPTION_COLUMNS ) );
@@ -432,9 +477,15 @@ rc_t vdco_capture_arguments_and_options( const Args * args, dump_context *ctx)
 {
     rc_t rc;
 
-    vdco_evaluate_options( args, ctx );
+    rc = vdco_evaluate_arguments( args, ctx );
+    DISP_RC( rc, "evaluate_arguments() failed" );
+    if ( rc == 0 )
+    {
+        vdco_evaluate_options( args, ctx );
+        vdco_check_if_usage_necessary( ctx );
 
-    rc = ArgsHandleLogLevel( args );
-    DISP_RC( rc, "ArgsHandleLogLevel() failed" );
+        rc = ArgsHandleLogLevel( args );
+        DISP_RC( rc, "ArgsHandleLogLevel() failed" );
+    }
     return rc;
 }
diff --git a/tools/vdb-dump/vdb-dump-context.h b/tools/vdb-dump/vdb-dump-context.h
index 185e9f1..d71cdc8 100644
--- a/tools/vdb-dump/vdb-dump-context.h
+++ b/tools/vdb-dump/vdb-dump-context.h
@@ -60,12 +60,6 @@ extern "C" {
 #define OPTION_WITHOUT_ACCESSION "without_accession"
 #define OPTION_EXCLUDED_COLUMNS  "exclude"
 #define OPTION_BOOLEAN           "boolean"
-#define OPTION_OBJVER            "obj_version"
-#define OPTION_OBJTYPE           "obj_type"
-#define OPTION_NUMELEM           "numelem"
-#define OPTION_NUMELEMSUM        "numelemsum"
-#define OPTION_SHOW_BLOBBING     "blobbing"
-#define OPTION_ENUM_PHYS         "phys"
 
 #define ALIAS_ROW_ID_ON         "I"
 #define ALIAS_LINE_FEED         "l"
@@ -89,10 +83,7 @@ extern "C" {
 #define ALIAS_WITHOUT_ACCESSION "a"
 #define ALIAS_EXCLUDED_COLUMNS  "x"
 #define ALIAS_BOOLEAN           "b"
-#define ALIAS_OBJVER            "j"
-#define ALIAS_OBJTYPE           "y"
-#define ALIAS_NUMELEM           "u"
-#define ALIAS_NUMELEMSUM        "U"
+
 
 typedef enum dump_format_t
 {
@@ -137,12 +128,6 @@ typedef struct dump_context
     bool id_range_requested;
     bool without_sra_types;
     bool dont_check_accession;
-    bool objver_requested;
-    bool objtype_requested;
-    bool print_num_elem;
-    bool sum_num_elem;
-    bool show_blobbing;
-    bool enum_phys;
 } dump_context;
 typedef dump_context* p_dump_context;
 
diff --git a/tools/vdb-dump/vdb-dump-filter.c b/tools/vdb-dump/vdb-dump-filter.c
index 962f0e7..488e45f 100644
--- a/tools/vdb-dump/vdb-dump-filter.c
+++ b/tools/vdb-dump/vdb-dump-filter.c
@@ -25,8 +25,8 @@
 */
 
 #include "vdb-dump-filter.h"
-#include <klib/text.h>
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -41,7 +41,7 @@ bool vdfi_make_filter( filter **flt, const char *expression )
     (*flt) = malloc( sizeof( flt ) );
     if ( *flt )
     {
-        (*flt)->expression = string_dup_measure( expression, NULL );
+        (*flt)->expression = strdup( expression );
         (*flt)->filter_type = filter_unknown;
         res = true;
     }
diff --git a/tools/vdb-dump/vdb-dump-formats.c b/tools/vdb-dump/vdb-dump-formats.c
index 4b66d7a..ce9b691 100644
--- a/tools/vdb-dump/vdb-dump-formats.c
+++ b/tools/vdb-dump/vdb-dump-formats.c
@@ -81,23 +81,21 @@ static void CC vdfo_print_col_default( void *item, void *data )
     }
 
     /* FINALLY we print the content of a column... */
-    KOutMsg( "%s\n", r_ctx->s_col.buf );
+    OUTMSG ( ( "%s\n", r_ctx->s_col.buf ) );
 }
 
 static rc_t vdfo_print_row_default( const p_row_context r_ctx )
 {
-    rc_t rc = 0;
     if ( r_ctx->ctx->print_row_id )
-        rc = KOutMsg( "ROW-ID = %u\n", r_ctx->row_id );
+        OUTMSG ( ( "ROW-ID = %u\n", r_ctx->row_id ) );
 
-    if ( rc == 0 )
-        VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_default, r_ctx );
+    VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_default, r_ctx );
 
-    if ( rc == 0 && r_ctx->ctx->lf_after_row > 0 )
+    if ( r_ctx->ctx->lf_after_row > 0 )
     {
         uint16_t i=0;
-        while ( i++ < r_ctx->ctx->lf_after_row && rc == 0 )
-            rc = KOutMsg( "\n" );
+        while ( i++ < r_ctx->ctx->lf_after_row )
+            OUTMSG ( ( "\n" ) );
     }
     return 0;
 }
@@ -140,7 +138,7 @@ static rc_t vdfo_print_row_csv( const p_row_context r_ctx )
     {
         r_ctx->col_nr = 0;
         VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_csv, r_ctx );
-        rc = KOutMsg( "%s\n", r_ctx->s_col.buf );
+        OUTMSG (( "%s\n", r_ctx->s_col.buf ));
     }
     return rc;
 }
@@ -154,9 +152,9 @@ static void CC vdfo_print_col_xml( void *item, void *data )
     if ( my_col_def->valid == false ) return;
     if ( my_col_def->excluded == true ) return;
 
-    KOutMsg( " <%s>\n", my_col_def->name );
-    KOutMsg( "%s", my_col_def->content.buf );
-    KOutMsg( " </%s>\n", my_col_def->name );
+    OUTMSG (( " <%s>\n", my_col_def->name ));
+    OUTMSG (( "%s", my_col_def->content.buf ));
+    OUTMSG (( " </%s>\n", my_col_def->name ));
 }
 
 static rc_t vdfo_print_row_xml( const p_row_context r_ctx )
@@ -165,12 +163,9 @@ static rc_t vdfo_print_row_xml( const p_row_context r_ctx )
     DISP_RC( rc, "dump_str_clear() failed" )
     if ( rc == 0 )
     {
-        rc = KOutMsg( "<row>\n" );
-        if ( rc  == 0 )
-        {
-            VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_xml, r_ctx );
-            rc = KOutMsg( "</row>\n");
-        }
+        OUTMSG ( ( "<row_%lu>\n", r_ctx->row_id ) );
+        VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_xml, r_ctx );
+        OUTMSG ( ( "</row_%lu>\n\n", r_ctx->row_id ) );
     }
     return rc;
 }
@@ -208,7 +203,7 @@ static void CC vdfo_print_col_json( void *item, void *data )
     }
 
     if ( rc == 0 )
-        KOutMsg( ",\n\"%s\":%s", my_col_def->name, my_col_def->content.buf );
+        OUTMSG ( ( ",\n\"%s\":%s", my_col_def->name, my_col_def->content.buf ) );
 }
 
 static rc_t vdfo_print_row_json( const p_row_context r_ctx )
@@ -217,16 +212,10 @@ static rc_t vdfo_print_row_json( const p_row_context r_ctx )
     DISP_RC( rc, "dump_str_clear() failed" )
     if ( rc == 0 )
     {
-        rc = KOutMsg( "{\n" );
-        if ( rc == 0 )
-        {
-            rc = KOutMsg( "\"row_id\": %lu", r_ctx->row_id );
-            if ( rc == 0 )
-            {
-                VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_json, r_ctx );
-                rc = KOutMsg( "\n},\n\n" );
-            }
-        }
+        OUTMSG ( ( "{\n" ) );
+        OUTMSG ( ( "\"row_id\": %lu", r_ctx->row_id ) );
+        VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_json, r_ctx );
+        OUTMSG ( ( "\n},\n\n" ) );
     }
     return rc;
 }
@@ -245,7 +234,7 @@ static void CC vdfo_print_col_piped( void *item, void *data )
     if ( my_col_def->excluded == true ) return;
 
     /* first we print the row_id and the column-name for every column! */
-    KOutMsg( "%lu, %s: ", r_ctx->row_id, my_col_def->name );
+    OUTMSG ( ( "%lu, %s: ", r_ctx->row_id, my_col_def->name ) );
 
     if ( ( my_col_def->type_desc.domain == vtdAscii )||
          ( my_col_def->type_desc.domain == vtdUnicode ) )
@@ -268,7 +257,7 @@ static void CC vdfo_print_col_piped( void *item, void *data )
     }
 
     if ( rc == 0 )
-        KOutMsg( "%s\n", my_col_def->content.buf );
+        OUTMSG ( ( "%s\n", my_col_def->content.buf ) );
 }
 
 
@@ -305,7 +294,7 @@ static rc_t vdfo_print_row_piped( const p_row_context r_ctx )
     if ( rc == 0 )
     {
         VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_piped, r_ctx );
-        rc = KOutMsg( "\n" );
+        OUTMSG ( ( "\n" ) );
     }
     return rc;
 }
@@ -318,7 +307,7 @@ static rc_t vdfo_print_row_tab( const p_row_context r_ctx )
     {
         r_ctx->col_nr = 0;
         VectorForEach( &(r_ctx->col_defs->cols), false, vdfo_print_col_tab, r_ctx );
-        rc = KOutMsg( "%s\n", r_ctx->s_col.buf );
+        OUTMSG (( "%s\n", r_ctx->s_col.buf ));
     }
     return rc;
 }
diff --git a/tools/vdb-dump/vdb-dump-helper.c b/tools/vdb-dump/vdb-dump-helper.c
index 2ff775e..a90e47b 100644
--- a/tools/vdb-dump/vdb-dump-helper.c
+++ b/tools/vdb-dump/vdb-dump-helper.c
@@ -36,6 +36,7 @@
 #include <sysalloc.h>
 #include "vdb-dump-helper.h"
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -132,9 +133,6 @@ bool vdh_is_path_table( const VDBManager *my_manager, const char *path,
     return res;
 }
 
-
-const char * backback = "/../..";
-
 /********************************************************************
 helper function to test if a given path is a vdb-column
 by testing if the parent/parent dir is a vdb-table
@@ -143,7 +141,7 @@ bool vdh_is_path_column( const VDBManager *my_manager, const char *path,
                          Vector *schema_list )
 {
     bool res = false;
-    size_t path_len = string_size( path );
+    size_t path_len = strlen( path );
     char *pp_path = malloc( path_len + 20 );
     if ( pp_path )
     {
@@ -155,8 +153,8 @@ bool vdh_is_path_column( const VDBManager *my_manager, const char *path,
             DISP_RC( rc, "KDirectoryNativeDir() failed" );
             if ( rc == 0 )
             {
-                string_copy( pp_path, path_len + 20, path, path_len );
-                string_copy( &pp_path[ path_len ], 20, backback, string_size( backback ) );
+                strcpy( pp_path, path );
+                strcat( pp_path, "/../.." );
                 rc = KDirectoryResolvePath( my_directory, true, resolved, 1023, pp_path );
                 if ( rc == 0 )
                     res = vdh_is_path_table( my_manager, resolved, schema_list );
@@ -278,99 +276,97 @@ bool vdh_take_this_table_from_db( dump_context *ctx, const VDatabase *my_databas
 }
 
 
-const char * s_unknown_tab = "unknown table";
-
-static rc_t vdh_print_full_col_info( dump_context *ctx,
+static void vdh_print_full_col_info( dump_context *ctx,
                                      const p_col_def col_def,
                                      const VSchema *my_schema )
 {
-    rc_t rc = 0;
-    char * s_domain = vdcd_make_domain_txt( col_def->type_desc.domain );
+    char *s_domain;
+
+    s_domain = vdcd_make_domain_txt( col_def->type_desc.domain );
     if ( s_domain != NULL )
     {
         if ( ctx->table == NULL )
         {
-            ctx->table = string_dup_measure( s_unknown_tab, NULL ); /* will be free'd when ctx get free'd */
+            ctx->table = strdup( "unknown table" ); /* will be free'd when ctx get free'd */
         }
 
         if ( ( ctx->table != NULL )&&( col_def->name != NULL ) )
         {
-            rc = KOutMsg( "%s.%.02d : (%.3d bits [%.02d], %8s)  %s",
+            OUTMSG ( ( "%s.%.02d : (%.3d bits [%.02d], %8s)  %s",
                     ctx->table,
                     ctx->generic_idx++,
                     col_def->type_desc.intrinsic_bits,
                     col_def->type_desc.intrinsic_dim,
                     s_domain,
-                    col_def->name );
-            if ( rc == 0 && my_schema )
+                    col_def->name ) );
+            if ( my_schema )
             {
                 char buf[64];
-                rc = VTypedeclToText( &(col_def->type_decl), my_schema,
-                                      buf, sizeof(buf) );
+                rc_t rc = VTypedeclToText( &(col_def->type_decl), my_schema,
+                                           buf, sizeof(buf) );
                 DISP_RC( rc, "VTypedeclToText() failed" );
                 if ( rc == 0 )
-                    rc = KOutMsg( "\n      (%s)", buf );
+                {
+                    OUTMSG ( ( "\n      (%s)", buf ) );
+                }
             }
-            if ( rc == 0 )
-                rc = KOutMsg( "\n" );
+            OUTMSG ( ( "\n" ) );
         }
         else
         {
             if ( ctx->table == NULL )
             {
-                rc = KOutMsg( "error: no table-name in print_column_info()" );
+                puts( "error: no table-name in print_column_info()" );
             }
             if ( col_def->name == NULL )
             {
-                rc = KOutMsg( "error: no column-name in print_column_info()" );
+                puts( "error: no column-name in print_column_info()" );
             }
         }
         free( s_domain );
     }
     else
     {
-        rc = KOutMsg( "error: making domain-text in print_column_info()" );
+        puts( "error: making domain-text in print_column_info()" );
     }
-    return rc;
 }
 
 
-static rc_t vdh_print_short_col_info( const p_col_def col_def,
+static void vdh_print_short_col_info( const p_col_def col_def,
                                       const VSchema *my_schema )
 {
-    rc_t rc = 0;
     if ( col_def->name != NULL )
     {
-        rc = KOutMsg( "%s", col_def->name );
+        OUTMSG ( ( "%s", col_def->name ) );
         if ( my_schema )
         {
             char buf[64];
-            rc = VTypedeclToText( &(col_def->type_decl), my_schema,
-                                  buf, sizeof(buf) );
+            rc_t rc = VTypedeclToText( &(col_def->type_decl), my_schema,
+                                       buf, sizeof(buf) );
             DISP_RC( rc, "VTypedeclToText() failed" );
             if ( rc == 0 )
             {
-                rc = KOutMsg( " (%s)", buf );
+                OUTMSG ( ( " (%s)", buf ) );
             }
         }
-        if ( rc == 0 )
-            rc = KOutMsg( "\n" );
+        OUTMSG ( ( "\n" ) );
     }
-    return rc;
 }
 
 
-rc_t vdh_print_col_info( dump_context *ctx,
+void vdh_print_col_info( dump_context *ctx,
                          const p_col_def col_def,
                          const VSchema *my_schema )
 {
-    rc_t rc = 0;
-    if ( ctx != NULL && col_def != NULL )
+    if ( ctx == NULL ) return;
+    if ( col_def == NULL ) return;
+
+    if ( ctx->column_enum_requested )
     {
-        if ( ctx->column_enum_requested )
-            rc = vdh_print_full_col_info( ctx, col_def, my_schema );
-        else
-            rc = vdh_print_short_col_info( col_def, my_schema );
+        vdh_print_full_col_info( ctx, col_def, my_schema );
+    }
+    else
+    {
+        vdh_print_short_col_info( col_def, my_schema );
     }
-    return rc;
 }
diff --git a/tools/vdb-dump/vdb-dump-helper.h b/tools/vdb-dump/vdb-dump-helper.h
index 07be4d9..593d7bc 100644
--- a/tools/vdb-dump/vdb-dump-helper.h
+++ b/tools/vdb-dump/vdb-dump-helper.h
@@ -73,7 +73,7 @@ bool vdh_take_1st_table_from_db( dump_context *ctx,
 bool vdh_take_this_table_from_db( dump_context *ctx, const VDatabase *my_database,
                                   const char * table_to_find );
 
-rc_t vdh_print_col_info( dump_context *ctx,
+void vdh_print_col_info( dump_context *ctx,
                          const p_col_def col_def,
                          const VSchema *my_schema );
 
diff --git a/tools/vdb-dump/vdb-dump-num-gen.c b/tools/vdb-dump/vdb-dump-num-gen.c
index 83fc592..9843bda 100644
--- a/tools/vdb-dump/vdb-dump-num-gen.c
+++ b/tools/vdb-dump/vdb-dump-num-gen.c
@@ -30,7 +30,7 @@
 #include <klib/log.h>
 #include <klib/rc.h>
 #include <klib/out.h>
-#include <klib/text.h>
+#include <fmtdef.h>
 #include <strtol.h>
 #include <sysalloc.h>
 
@@ -144,7 +144,7 @@ uint32_t vdn_parse( num_gen* generator, const char* src )
     
     if ( generator == NULL ) return res;
     if ( src == NULL ) return res;
-    n = string_size( src );
+    n = strlen( src );
     generator->node_count = 0;
     generator->curr_node = 0;
     generator->curr_node_sub_pos = 0;
diff --git a/tools/vdb-dump/vdb-dump-num-gen.h b/tools/vdb-dump/vdb-dump-num-gen.h
index ac67a58..0a76656 100644
--- a/tools/vdb-dump/vdb-dump-num-gen.h
+++ b/tools/vdb-dump/vdb-dump-num-gen.h
@@ -48,13 +48,12 @@ typedef struct num_gen_node
 } num_gen_node;
 typedef num_gen_node* p_num_gen_node;
 
-
 typedef struct num_gen
 {
     Vector nodes;
     uint32_t node_count;
     uint64_t curr_node;
-    uint64_t curr_node_sub_pos;
+    uint32_t curr_node_sub_pos;
 } num_gen;
 
 rc_t vdn_make( num_gen** generator );
diff --git a/tools/vdb-dump/vdb-dump-row-context.h b/tools/vdb-dump/vdb-dump-row-context.h
index 1c56e30..497ebd5 100644
--- a/tools/vdb-dump/vdb-dump-row-context.h
+++ b/tools/vdb-dump/vdb-dump-row-context.h
@@ -52,7 +52,6 @@ extern "C" {
 *************************************************************************************/
 typedef struct row_context
 {
-    const VTable* table;
     const VCursor* cursor;
     p_col_defs col_defs;
     p_dump_context ctx;
diff --git a/tools/vdb-dump/vdb-dump-str.c b/tools/vdb-dump/vdb-dump-str.c
index 5031ebe..b109bc0 100644
--- a/tools/vdb-dump/vdb-dump-str.c
+++ b/tools/vdb-dump/vdb-dump-str.c
@@ -29,6 +29,7 @@
 #include <klib/printf.h>
 #include <sysalloc.h>
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -89,7 +90,6 @@ char *vds_ptr( p_dump_str s )
     return s->buf;
 }
 
-
 static rc_t vds_inc_buffer( p_dump_str s, const size_t by_len )
 {
     if ( s == NULL )
@@ -109,7 +109,6 @@ static rc_t vds_inc_buffer( p_dump_str s, const size_t by_len )
     return 0;
 }
 
-
 static rc_t vds_truncate( p_dump_str s )
 {
     if ( s == NULL )
@@ -120,7 +119,7 @@ static rc_t vds_truncate( p_dump_str s )
     {
         return RC( rcVDB, rcNoTarg, rcResizing, rcParam, rcNull );
     }
-    s->str_len = string_size( s->buf );
+    s->str_len = strlen( s->buf );
     if ( ( s->str_limit > 0 )&&( s->str_len > s->str_limit ) )
     {
         s->buf[ s->str_limit ] = 0;
@@ -130,7 +129,6 @@ static rc_t vds_truncate( p_dump_str s )
     return 0;
 }
 
-
 rc_t vds_append_fmt( p_dump_str s, const size_t aprox_len, const char *fmt, ... )
 {
     va_list argp;
@@ -163,7 +161,6 @@ rc_t vds_append_fmt( p_dump_str s, const size_t aprox_len, const char *fmt, ...
     return rc;
 }
 
-
 rc_t vds_append_str( p_dump_str s, const char *s1 )
 {
     rc_t rc = 0;
@@ -174,7 +171,7 @@ rc_t vds_append_str( p_dump_str s, const char *s1 )
     }
     else
     {
-        size_t append_len = string_size( s1 );
+        size_t append_len = strlen( s1 );
         if ( append_len > 0 )
         {
             if ( ( s->str_limit > 0 )&&( s->str_len >= s->str_limit ) )
@@ -186,8 +183,7 @@ rc_t vds_append_str( p_dump_str s, const char *s1 )
                 rc = vds_inc_buffer( s, append_len );
                 if ( rc == 0 )
                 {
-                    size_t l = string_size( s->buf );
-                    string_copy( s->buf + l, s->buf_size - l, s1, append_len );
+                    strcat( s->buf, s1 ); /* strncat would not do it... */
                     rc = vds_truncate( s ); /* adjusts str_len */
                 }
             }
@@ -196,7 +192,6 @@ rc_t vds_append_str( p_dump_str s, const char *s1 )
     return rc;
 }
 
-
 rc_t vds_append_str_no_limit_check( p_dump_str s, const char *s1 )
 {
     rc_t rc;
@@ -205,7 +200,7 @@ rc_t vds_append_str_no_limit_check( p_dump_str s, const char *s1 )
     {
         return RC( rcVDB, rcNoTarg, rcInserting, rcParam, rcNull );
     }
-    append_len = string_size( s1 );
+    append_len = strlen( s1 );
     if ( append_len == 0 )
     {
         return RC( rcVDB, rcNoTarg, rcInserting, rcParam, rcEmpty );
@@ -213,14 +208,12 @@ rc_t vds_append_str_no_limit_check( p_dump_str s, const char *s1 )
     rc = vds_inc_buffer( s, append_len );
     if ( rc == 0 )
     {
-        size_t l = string_size( s->buf );
-        string_copy( s->buf + l, s->buf_size - l, s1, append_len );
+        strcat( s->buf, s1 );
         s->str_len += append_len;
     }
     return rc;
 }
 
-
 rc_t vds_rinsert( p_dump_str s, const char *s1 )
 {
     size_t len;
@@ -228,19 +221,18 @@ rc_t vds_rinsert( p_dump_str s, const char *s1 )
     {
         return RC( rcVDB, rcNoTarg, rcInserting, rcParam, rcNull );
     }
-    len = string_size( s1 );
+    len = strlen( s1 );
     if ( len == 0 )
     {
         return RC( rcVDB, rcNoTarg, rcInserting, rcParam, rcEmpty );
     }
     if ( s->str_len <= len ) return 0;
     len = s->str_len - len;
-    string_copy( s->buf + len, sizeof( s->buf ) - len, s1, string_size( s1 ) );
+    strcpy( s->buf + len, s1 );
     /* s->str_len does not change */
     return 0;
 }
 
-
 rc_t vds_indent( p_dump_str s, const size_t limit, const size_t indent )
 {
     size_t remaining_chars, lines, indent_block, line_idx;
@@ -297,14 +289,14 @@ void vds_escape_quotes_loop( p_dump_str s, const char to_escape,
     {
         if ( *temp == to_escape )
         {
-        size_t to_move = string_size( temp ) + 1;
+        size_t to_move = strlen( temp ) + 1;
         memmove( temp+1, temp, to_move );
         (*temp) = escape_char;
         temp++;
         }
         temp++;
     }
-    s->str_len = string_size( s->buf );
+    s->str_len = strlen( s->buf );
 }
 
 rc_t vds_escape( p_dump_str s, const char to_escape, const char escape_char )
@@ -334,7 +326,7 @@ rc_t vds_enclose_string( p_dump_str s, const char c_left, const char c_right )
     {
         return RC( rcVDB, rcNoTarg, rcInserting, rcParam, rcNull );
     }
-    to_move = string_size( s->buf ) + 1;
+    to_move = strlen( s->buf ) + 1;
     rc = vds_inc_buffer( s, 2 );
     if ( rc == 0 )
     {
@@ -342,7 +334,7 @@ rc_t vds_enclose_string( p_dump_str s, const char c_left, const char c_right )
         s->buf[0]=c_left;
         s->buf[to_move]=c_right;
         s->buf[to_move+1]=0;
-        s->str_len = string_size( s->buf );
+        s->str_len = strlen( s->buf );
     }
     return rc;
 }
diff --git a/tools/vdb-dump/vdb-dump-tools.c b/tools/vdb-dump/vdb-dump-tools.c
index 2a280b9..0c5cf01 100644
--- a/tools/vdb-dump/vdb-dump-tools.c
+++ b/tools/vdb-dump/vdb-dump-tools.c
@@ -33,6 +33,7 @@
 #include <klib/pack.h>
 #include <sysalloc.h>
 
+#include <fmtdef.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/tools/vdb-dump/vdb-dump.c b/tools/vdb-dump/vdb-dump.c
index bb41d5e..61742ce 100644
--- a/tools/vdb-dump/vdb-dump.c
+++ b/tools/vdb-dump/vdb-dump.c
@@ -31,18 +31,9 @@
 #include <vdb/table.h>
 #include <vdb/cursor.h>
 #include <vdb/database.h>
-#include <vdb/dependencies.h>
-#include <vdb/vdb-priv.h>
-
-#include <kdb/table.h>
-#include <kdb/column.h>
-#include <kdb/manager.h>
-
 #include <kfs/directory.h>
-
 #include <kapp/main.h>
 #include <kapp/args.h>
-
 #include <klib/container.h>
 #include <klib/vector.h>
 #include <klib/log.h>
@@ -50,14 +41,18 @@
 #include <klib/debug.h>
 #include <klib/status.h>
 #include <klib/text.h>
-#include <klib/printf.h>
 #include <klib/rc.h>
 #include <klib/namelist.h>
-
 #include <os-native.h>
 #include <sysalloc.h>
 
+#include <sra/srapath.h>
+
+#include <fmtdef.h>
 #include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
 #include <bitstr.h>
 
 #include "vdb-dump-num-gen.h"
@@ -68,9 +63,6 @@
 #include "vdb-dump-row-context.h"
 #include "vdb-dump-formats.h"
 
-
-#define CURSOR_CACHE_SIZE 256*1024*1024
-
 static const char * row_id_on_usage[] = { "print row id", NULL };
 static const char * line_feed_usage[] = { "line-feed's inbetween rows", NULL };
 static const char * colname_off_usage[] = { "do not print column-names", NULL };
@@ -93,12 +85,6 @@ static const char * without_sra_usage[] = { "without sra-type-translation", NULL
 static const char * without_accession_usage[] = { "without accession-test", NULL };
 static const char * excluded_columns_usage[] = { "exclude these columns", NULL };
 static const char * boolean_usage[] = { "defines how boolean's are printed (1,T)", NULL };
-static const char * objver_usage[] = { "request vdb-version", NULL };
-static const char * numelem_usage[] = { "print only element-count", NULL };
-static const char * numelemsum_usage[] = { "sum element-count", NULL };
-static const char * show_blobbing_usage[] = { "show blobbing", NULL };
-static const char * enum_phys_usage[] = { "enumerate physical columns", NULL };
-static const char * objtype_usage[] = { "report type of object", NULL };
 
 OptDef DumpOptions[] =
 {
@@ -124,13 +110,7 @@ OptDef DumpOptions[] =
     { OPTION_WITHOUT_SRA, ALIAS_WITHOUT_SRA, NULL, without_sra_usage, 1, false, false },
     { OPTION_WITHOUT_ACCESSION, ALIAS_WITHOUT_ACCESSION, NULL, without_accession_usage, 1, false, false },
     { OPTION_EXCLUDED_COLUMNS, ALIAS_EXCLUDED_COLUMNS, NULL, excluded_columns_usage, 1, true, false },
-    { OPTION_BOOLEAN, ALIAS_BOOLEAN, NULL, boolean_usage, 1, true, false },
-    { OPTION_NUMELEM, ALIAS_NUMELEM, NULL, numelem_usage, 1, false, false },
-    { OPTION_NUMELEMSUM, ALIAS_NUMELEMSUM, NULL, numelemsum_usage, 1, false, false },
-    { OPTION_SHOW_BLOBBING, NULL, NULL, show_blobbing_usage, 1, false, false },
-    { OPTION_ENUM_PHYS, NULL, NULL, enum_phys_usage, 1, false, false },
-    { OPTION_OBJVER, ALIAS_OBJVER, NULL, objver_usage, 1, false, false },
-    { OPTION_OBJTYPE, ALIAS_OBJTYPE, NULL, objtype_usage, 1, false, false }
+    { OPTION_BOOLEAN, ALIAS_BOOLEAN, NULL, boolean_usage, 1, true, false }
 };
 
 const char UsageDefaultName[] = "vdb-dump";
@@ -140,60 +120,53 @@ rc_t CC UsageSummary ( const char * progname )
 {
     return KOutMsg ("\n"
                     "Usage:\n"
-                    "  %s <path> [<path> ...] [options]\n"
+                    "  %s <path> [options]\n"
                     "\n", progname);
 }
 
 
-rc_t CC Usage ( const Args * args )
+rc_t CC Usage (const Args * args)
 {
     const char * progname = UsageDefaultName;
     const char * fullpath = UsageDefaultName;
     rc_t rc;
 
-    if ( args == NULL )
-        rc = RC ( rcApp, rcArgv, rcAccessing, rcSelf, rcNull );
+    if (args == NULL)
+        rc = RC (rcApp, rcArgv, rcAccessing, rcSelf, rcNull);
     else
-        rc = ArgsProgram ( args, &fullpath, &progname );
-
-    if ( rc )
+        rc = ArgsProgram (args, &fullpath, &progname);
+    if (rc)
         progname = fullpath = UsageDefaultName;
 
-    UsageSummary ( progname );
-
-    KOutMsg ( "Options:\n" );
-
-    HelpOptionLine ( ALIAS_ROW_ID_ON, OPTION_ROW_ID_ON, NULL, row_id_on_usage );
-    HelpOptionLine ( ALIAS_LINE_FEED, OPTION_LINE_FEED, "line_feed", line_feed_usage );
-    HelpOptionLine ( ALIAS_COLNAME_OFF, OPTION_COLNAME_OFF, NULL, colname_off_usage );
-    HelpOptionLine ( ALIAS_IN_HEX, OPTION_IN_HEX, NULL, in_hex_usage );
-    HelpOptionLine ( ALIAS_TABLE, OPTION_TABLE, "table", table_usage );
-    HelpOptionLine ( ALIAS_ROWS, OPTION_ROWS, "rows", rows_usage );
-    HelpOptionLine ( ALIAS_COLUMNS, OPTION_COLUMNS, "columns", columns_usage );
-    HelpOptionLine ( ALIAS_SCHEMA, OPTION_SCHEMA, "schema", schema_usage );
-    HelpOptionLine ( ALIAS_SCHEMA_DUMP, OPTION_SCHEMA_DUMP, NULL, schema_dump_usage );
-    HelpOptionLine ( ALIAS_TABLE_ENUM, OPTION_TABLE_ENUM, NULL, table_enum_usage );
-    HelpOptionLine ( ALIAS_COLUMN_ENUM, OPTION_COLUMN_ENUM, NULL, column_enum_usage );
-    HelpOptionLine ( ALIAS_COLUMN_SHORT, OPTION_COLUMN_SHORT, NULL, column_short_usage );
-    HelpOptionLine ( ALIAS_DNA_BASES, OPTION_DNA_BASES, "dna_bases", dna_bases_usage );
-    HelpOptionLine ( ALIAS_MAX_LINE_LEN, OPTION_MAX_LINE_LEN, "max_length", max_line_len_usage );
-    HelpOptionLine ( ALIAS_LINE_INDENT, OPTION_LINE_INDENT, "indent_width", line_indent_usage );
-    HelpOptionLine ( ALIAS_FORMAT, OPTION_FORMAT, "format", format_usage );
-    HelpOptionLine ( ALIAS_ID_RANGE, OPTION_ID_RANGE, NULL, id_range_usage );
-    HelpOptionLine ( ALIAS_WITHOUT_SRA, OPTION_WITHOUT_SRA, NULL, without_sra_usage );
-    HelpOptionLine ( ALIAS_WITHOUT_ACCESSION, OPTION_WITHOUT_ACCESSION, NULL, without_accession_usage );
-    HelpOptionLine ( ALIAS_EXCLUDED_COLUMNS, OPTION_EXCLUDED_COLUMNS, NULL, excluded_columns_usage );
-    HelpOptionLine ( ALIAS_BOOLEAN, OPTION_BOOLEAN, NULL, boolean_usage );
-    HelpOptionLine ( ALIAS_OBJVER, OPTION_OBJVER, NULL, objver_usage );
-    HelpOptionLine ( ALIAS_OBJTYPE, OPTION_OBJTYPE, NULL, objtype_usage );
-    HelpOptionLine ( ALIAS_NUMELEM, OPTION_NUMELEM, NULL, numelem_usage );
-    HelpOptionLine ( ALIAS_NUMELEMSUM, OPTION_NUMELEMSUM, NULL, numelemsum_usage );
-    HelpOptionLine ( NULL, OPTION_SHOW_BLOBBING, NULL, show_blobbing_usage );
-    HelpOptionLine ( NULL, OPTION_ENUM_PHYS, NULL, enum_phys_usage );
+    UsageSummary (progname);
+
+    KOutMsg ("Options:\n");
+
+    HelpOptionLine (ALIAS_ROW_ID_ON, OPTION_ROW_ID_ON, NULL, row_id_on_usage);
+    HelpOptionLine (ALIAS_LINE_FEED, OPTION_LINE_FEED, "line_feed", line_feed_usage);
+    HelpOptionLine (ALIAS_COLNAME_OFF, OPTION_COLNAME_OFF, NULL, colname_off_usage);
+    HelpOptionLine (ALIAS_IN_HEX, OPTION_IN_HEX, NULL, in_hex_usage);
+    HelpOptionLine (ALIAS_TABLE, OPTION_TABLE, "table", table_usage);
+    HelpOptionLine (ALIAS_ROWS, OPTION_ROWS, "rows", rows_usage);
+    HelpOptionLine (ALIAS_COLUMNS, OPTION_COLUMNS, "columns", columns_usage);
+    HelpOptionLine (ALIAS_SCHEMA, OPTION_SCHEMA, "schema", schema_usage);
+    HelpOptionLine (ALIAS_SCHEMA_DUMP, OPTION_SCHEMA_DUMP, NULL, schema_dump_usage);
+    HelpOptionLine (ALIAS_TABLE_ENUM, OPTION_TABLE_ENUM, NULL, table_enum_usage);
+    HelpOptionLine (ALIAS_COLUMN_ENUM, OPTION_COLUMN_ENUM, NULL, column_enum_usage);
+    HelpOptionLine (ALIAS_COLUMN_SHORT, OPTION_COLUMN_SHORT, NULL, column_short_usage);
+    HelpOptionLine (ALIAS_DNA_BASES, OPTION_DNA_BASES, "dna_bases", dna_bases_usage);
+    HelpOptionLine (ALIAS_MAX_LINE_LEN, OPTION_MAX_LINE_LEN, "max_length", max_line_len_usage);
+    HelpOptionLine (ALIAS_LINE_INDENT, OPTION_LINE_INDENT, "indent_width", line_indent_usage);
+    HelpOptionLine (ALIAS_FORMAT, OPTION_FORMAT, "format", format_usage);
+    HelpOptionLine (ALIAS_ID_RANGE, OPTION_ID_RANGE, NULL, id_range_usage);
+    HelpOptionLine (ALIAS_WITHOUT_SRA, OPTION_WITHOUT_SRA, NULL, without_sra_usage);
+    HelpOptionLine (ALIAS_WITHOUT_ACCESSION, OPTION_WITHOUT_ACCESSION, NULL, without_accession_usage);
+    HelpOptionLine (ALIAS_EXCLUDED_COLUMNS, OPTION_EXCLUDED_COLUMNS, NULL, excluded_columns_usage);
+    HelpOptionLine (ALIAS_BOOLEAN, OPTION_BOOLEAN, NULL, boolean_usage);
 
     HelpOptionsStandard ();
 
-    HelpVersion ( fullpath, KAppVersion() );
+    HelpVersion (fullpath, KAppVersion());
 
     return rc;
 }
@@ -241,17 +214,13 @@ static void CC vdm_read_cell_data( void *item, void *data )
                                  &src.offset_in_bits, &src.number_of_elements );
     if ( r_ctx->rc != 0 )
     {
-        if( UIError(r_ctx->rc, NULL, r_ctx->table) ) {
-            UITableLOGError(r_ctx->rc, r_ctx->table, true);
-        } else {
-            PLOGERR( klogInt,
-                     (klogInt,
-                     r_ctx->rc,
-                     "VCursorCellData( col:$(col_name) at row #$(row_nr) ) failed",
-                     "col_name=%s,row_nr=%lu",
-                      my_col_def->name, r_ctx->row_id ));
-            /* be forgiving and continue if a cell cannot be read */
-        }
+        PLOGERR( klogInt,
+                 (klogInt,
+                 r_ctx->rc,
+                 "VCursorCellData( col:$(col_name) at row #$(row_nr) ) failed",
+                 "col_name=%s,row_nr=%lu",
+                  my_col_def->name, r_ctx->row_id ));
+        /* be forgiving and continue if a cell cannot be read */
         r_ctx->rc = 0;
     }
 
@@ -285,67 +254,34 @@ static void CC vdm_read_cell_data( void *item, void *data )
             print_comma = false;
         }
 
-        if ( r_ctx->ctx->print_num_elem )
-        {
-            char temp[ 16 ];
-            size_t num_writ;
-
-            r_ctx->rc = string_printf ( temp, sizeof temp, &num_writ, "%u", src.number_of_elements ); 
-            if ( r_ctx->rc == 0 )
-                vds_append_str( &(my_col_def->content), temp );
-        }
-        else if ( r_ctx->ctx->sum_num_elem )
+        /* loop through the elements(dimension's) of a cell */
+        while( ( src.element_idx < src.number_of_elements )&&( r_ctx->rc == 0 ) )
         {
-            my_col_def->elementsum += src.number_of_elements;
-        }
-        else
-        {
-            /* loop through the elements(dimension's) of a cell */
-            while( ( src.element_idx < src.number_of_elements )&&( r_ctx->rc == 0 ) )
+            uint32_t eidx = src.element_idx;
+            if ( ( eidx > 0 )&& ( src.print_dna_bases == false ) && print_comma )
             {
-                uint32_t eidx = src.element_idx;
-                if ( ( eidx > 0 )&& ( src.print_dna_bases == false ) && print_comma )
-                {
-                    vds_append_str( &(my_col_def->content), ", " );
-                }
+                vds_append_str( &(my_col_def->content), ", " );
+            }
 
-                /* dumps the basic data-types, implementation in vdb-dump-tools.c
-                   >>> that means it appends the element-string to
-                       my_col_def->content <<<
-                   the formated output is only collected, to be printed later
-                   dump_element is also responsible for incrementing
-                   the src.element_idx by: 1...bool/int/uint/float
-                                           n...string/unicode-string */
-                r_ctx->rc = vdt_dump_element( &src, my_col_def );
-
-                /* insurance against endless loop */
-                if ( eidx == src.element_idx )
-                {
-                    src.element_idx++;
-                }
+            /* dumps the basic data-types, implementation in vdb-dump-tools.c
+               >>> that means it appends the element-string to
+                   my_col_def->content <<<
+               the formated output is only collected, to be printed later
+               dump_element is also responsible for incrementing
+               the src.element_idx by: 1...bool/int/uint/float
+                                       n...string/unicode-string */
+            r_ctx->rc = vdt_dump_element( &src, my_col_def );
+
+            /* insurance against endless loop */
+            if ( eidx == src.element_idx )
+            {
+                src.element_idx++;
             }
         }
     }
 }
 
 
-
-static void CC vdm_print_elem_sum( void *item, void *data )
-{
-    char temp[ 16 ];
-    size_t num_writ;
-    p_col_def my_col_def = (p_col_def)item;
-    p_row_context r_ctx = (p_row_context)data;
-
-    if ( r_ctx->rc != 0 ) return; /* important to stop if the last read was not successful */
-    vds_clear( &(my_col_def->content) ); /* clear the destination-dump-string */
-
-    r_ctx->rc = string_printf ( temp, sizeof temp, &num_writ, "%u", my_col_def->elementsum ); 
-    if ( r_ctx->rc == 0 )
-        vds_append_str( &(my_col_def->content), temp );
-}
-
-
 static void vdm_row_error( const char * fmt, rc_t rc, uint64_t row_id )
 {
     PLOGERR( klogInt, ( klogInt, rc, fmt, "row_nr=%lu", row_id ) );
@@ -406,13 +342,11 @@ static rc_t vdm_dump_rows( p_row_context r_ctx )
                     if ( r_ctx->rc == 0 )
                     {
                         /* prints the collected strings, in vdb-dump-formats.c */
-                        if ( !r_ctx->ctx->sum_num_elem )
-                        {
-                            r_ctx->rc = vdfo_print_row( r_ctx );
-                            if ( r_ctx->rc != 0 )
-                                vdm_row_error( "vdfo_print_row( row#$(row_nr) ) failed", 
-                                       r_ctx->rc, r_ctx->row_id );
-                        }
+                        r_ctx->rc = vdfo_print_row( r_ctx );
+                        if ( r_ctx->rc != 0 )
+                            vdm_row_error( "vdfo_print_row( row#$(row_nr) ) failed", 
+                                   r_ctx->rc, r_ctx->row_id );
+
                     }
                     r_ctx->rc = VCursorCloseRow( r_ctx->cursor );
                     if ( r_ctx->rc != 0 )
@@ -421,16 +355,6 @@ static rc_t vdm_dump_rows( p_row_context r_ctx )
                 }
             }
         }
-        if ( r_ctx->rc == 0 && r_ctx->ctx->sum_num_elem )
-        {
-            VectorForEach( &(r_ctx->col_defs->cols),
-                           false, vdm_print_elem_sum, r_ctx );
-            if ( r_ctx->rc == 0 )
-            {
-                r_ctx->rc = vdfo_print_row( r_ctx );
-                DISP_RC( r_ctx->rc, "VTableOpenSchema() failed" );
-            }
-        }
         vds_free( &(r_ctx->s_col) );
     }
     return r_ctx->rc;
@@ -442,42 +366,20 @@ static bool vdm_extract_or_parse_columns( const p_dump_context ctx,
                                           p_col_defs my_col_defs )
 {
     bool res = false;
-    if ( ctx != NULL && my_col_defs != NULL )
-    {
-        bool cols_unknown = ( ( ctx->columns == NULL ) || ( string_cmp( ctx->columns, 1, "*", 1, 1 ) == 0 ) );
-        if ( cols_unknown )
-            /* the user does not know the column-names or wants all of them */
-            res = vdcd_extract_from_table( my_col_defs, my_table );
-        else
-            /* the user knows the names of the wanted columns... */
-            res = vdcd_parse_string( my_col_defs, ctx->columns, my_table );
-
-        if ( ctx->excluded_columns != NULL )
-            vdcd_exclude_these_columns( my_col_defs, ctx->excluded_columns );
-    }
-
-    return res;
-}
-
-
-static bool vdm_extract_or_parse_phys_columns( const p_dump_context ctx,
-                                               const VTable *my_table,
-                                               p_col_defs my_col_defs )
-{
-    bool res = false;
-    if ( ctx != NULL && my_col_defs != NULL )
-    {
-        bool cols_unknown = ( ( ctx->columns == NULL ) || ( string_cmp( ctx->columns, 1, "*", 1, 1 ) == 0 ) );
-        if ( cols_unknown )
-            /* the user does not know the column-names or wants all of them */
-            res = vdcd_extract_from_phys_table( my_col_defs, my_table );
-        else
-            /* the user knows the names of the wanted columns... */
-            res = vdcd_parse_string( my_col_defs, ctx->columns, NULL );
+    bool cols_unknown;
+
+    if ( ctx == NULL ) return res;
+    if ( my_col_defs == NULL ) return res;
+    cols_unknown = ( (ctx->columns == NULL)||(strcmp(ctx->columns, "*")== 0) );
+    if ( cols_unknown )
+        /* the user does not know the column-names or wants all of them */
+        res = vdcd_extract_from_table( my_col_defs, my_table );
+    else
+        /* the user knows the names of the wanted columns... */
+        res = vdcd_parse_string( my_col_defs, ctx->columns );
 
-        if ( ctx->excluded_columns != NULL )
-            vdcd_exclude_these_columns( my_col_defs, ctx->excluded_columns );
-    }
+    if ( ctx->excluded_columns != NULL )
+        vdcd_exclude_these_columns( my_col_defs, ctx->excluded_columns );
 
     return res;
 }
@@ -502,11 +404,10 @@ my_table  [IN] ... open table needed for vdb-calls
 static rc_t vdm_dump_opened_table( const p_dump_context ctx, const VTable *my_table )
 {
     row_context r_ctx;
-    rc_t rc = VTableCreateCachedCursorRead( my_table, &(r_ctx.cursor), CURSOR_CACHE_SIZE );
+    rc_t rc = VTableCreateCursorRead( my_table, &(r_ctx.cursor) );
     DISP_RC( rc, "VTableCreateCursorRead() failed" );
     if ( rc == 0 )
     {
-        r_ctx.table = my_table;
         if ( !vdcd_init( &(r_ctx.col_defs), ctx->max_line_len ) )
         {
             rc = RC( rcVDB, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
@@ -668,31 +569,32 @@ my_database [IN] ... open database needed for vdb-calls
 static rc_t vdm_enum_tables( const p_dump_context ctx,
                              const VDatabase *my_database )
 {
-    rc_t rc = KOutMsg( "enumerating the tables of database '%s'\n", ctx->path );
+    rc_t rc;
+    KNamelist *tbl_names;
+
+    OUTMSG ( ( ">>> enumerating the tables of database >%s<\n", ctx->path ) );
+    rc = VDatabaseListTbl( my_database, &tbl_names );
+    DISP_RC( rc, "VDatabaseListTbl() failed" );
     if ( rc == 0 )
     {
-        KNamelist *tbl_names;
-        rc = VDatabaseListTbl( my_database, &tbl_names );
-        DISP_RC( rc, "VDatabaseListTbl() failed" );
+        uint32_t n;
+        rc = KNamelistCount( tbl_names, &n );
+        DISP_RC( rc, "KNamelistCount() failed" );
         if ( rc == 0 )
         {
-            uint32_t n;
-            rc = KNamelistCount( tbl_names, &n );
-            DISP_RC( rc, "KNamelistCount() failed" );
-            if ( rc == 0 )
+            uint32_t i;
+            for ( i=0; i<n; ++i )
             {
-                uint32_t i;
-                for ( i = 0; i < n && rc == 0; ++i )
+                const char *tbl_name;
+                rc = KNamelistGet( tbl_names, i, &tbl_name );
+                DISP_RC( rc, "KNamelistGet() failed" );
+                if ( rc == 0 )
                 {
-                    const char *tbl_name;
-                    rc = KNamelistGet( tbl_names, i, &tbl_name );
-                    DISP_RC( rc, "KNamelistGet() failed" );
-                    if ( rc == 0 )
-                        rc = KOutMsg( "tbl #%u: %s\n", i+1, tbl_name );
+                    OUTMSG( ( "tbl #%u: %s\n", i+1, tbl_name ) );
                 }
             }
-            KNamelistRelease( tbl_names );
         }
+        KNamelistRelease( tbl_names );
     }
     return rc;
 }
@@ -702,11 +604,10 @@ typedef struct col_info_context
     p_dump_context ctx;
     const VSchema *my_schema;
     const VTable *my_table;
-    const KTable *my_ktable;
 } col_info_context;
 typedef struct col_info_context* p_col_info_context;
 
-static rc_t vdm_print_column_datatypes( const p_col_def col_def,
+static void vdm_print_column_datatypes( const p_col_def col_def,
                                         const p_col_info_context ci )
 {
     KNamelist *names;
@@ -722,7 +623,7 @@ static rc_t vdm_print_column_datatypes( const p_col_def col_def,
         if ( rc == 0 )
         {
             uint32_t i;
-            for ( i = 0; i < n && rc == 0; ++i )
+            for ( i=0; i<n; ++i )
             {
                 const char *type_name;
                 rc = KNamelistGet( names, i, &type_name );
@@ -730,76 +631,16 @@ static rc_t vdm_print_column_datatypes( const p_col_def col_def,
                 if ( rc == 0 )
                 {
                     if ( dflt_idx == i )
-                        rc = KOutMsg( "%20s.type[%d] = %s (dflt)\n", col_def->name, i, type_name );
+                        OUTMSG ( ( "%20s.type[%d] = %s (dflt)\n", col_def->name, i, type_name ) );
                     else
-                        rc = KOutMsg( "%20s.type[%d] = %s\n", col_def->name, i, type_name );
+                        OUTMSG ( ( "%20s.type[%d] = %s\n", col_def->name, i, type_name ) );
                 }
             }
         }
         rc = KNamelistRelease( names );
         DISP_RC( rc, "KNamelistRelease() failed" );
     }
-    if ( rc == 0 )
-        rc = KOutMsg( "\n" );
-    return rc;
-}
-
-
-static rc_t vdm_show_row_blobbing( const p_col_def col_def,
-                                   const p_col_info_context ci )
-{
-    const KColumn * kcol;
-    rc_t rc = KTableOpenColumnRead( ci->my_ktable, &kcol, "%s", col_def->name );
-    if ( rc != 0 )
-        return KOutMsg( "'%s' is not a physical column\n", col_def->name );
-    else
-        rc = KOutMsg( "\nCOLUMN '%s':\n", col_def->name );
-
-    if ( rc == 0 )
-    {
-        int64_t first;
-        uint64_t count;
-        rc = KColumnIdRange( kcol, &first, &count );
-        DISP_RC( rc, "KColumnIdRange() failed" );
-        if ( rc == 0 )
-        {
-            int64_t last = first + count;
-            rc = KOutMsg( "range: %,ld ... %,ld\n", first, last );
-            if ( rc == 0 )
-            {
-                int64_t id = first;
-                while ( id < last && rc == 0 )
-                {
-                    const KColumnBlob *blob;
-                    rc = KColumnOpenBlobRead( kcol, &blob, id );
-                    DISP_RC( rc, "KColumnOpenBlobRead() failed" );
-                    if ( rc == 0 )
-                    {
-                        int64_t first_id_in_blob;
-                        uint32_t ids_in_blob;
-                        rc = KColumnBlobIdRange( blob, &first_id_in_blob, &ids_in_blob );
-                        DISP_RC( rc, "KColumnBlobIdRange() failed" );
-                        if ( rc == 0 )
-                        {
-                            int64_t last_id_in_blob = first_id_in_blob + ids_in_blob - 1;
-                            char buffer[ 8 ];
-                            size_t num_read, remaining;
-                            rc = KColumnBlobRead ( blob, 0, &buffer, 0, &num_read, &remaining );
-                            DISP_RC( rc, "KColumnBlobRead() failed" );
-                            if ( rc == 0 )
-                            {
-                                rc = KOutMsg( "blob[ %,ld ... %,ld] size = %,zu\n", first_id_in_blob, last_id_in_blob, remaining );
-                            }
-                            id = last_id_in_blob + 1;
-                        }
-                        KColumnBlobRelease( blob );
-                    }
-                }
-            }
-        }
-        KColumnRelease( kcol );
-    }
-    return rc;
+    OUTMSG ( ( "\n" ) );
 }
 
 /*************************************************************************************
@@ -811,61 +652,17 @@ static rc_t vdm_show_row_blobbing( const p_col_def col_def,
 item  [IN] ... pointer to a column-definition-struct ( from "vdb-dump-coldefs.h" )
 data  [IN] ... pointer to dump-context ( in this case to have a line-idx )
 *************************************************************************************/
-static rc_t vdm_print_column_info( const p_col_def col_def, p_col_info_context ci_ctx )
+static void CC vdm_print_column_info( void *item, void *data )
 {
-    rc_t rc = 0;
-
-    if ( ci_ctx->ctx->show_blobbing )
-        rc = vdm_show_row_blobbing( col_def, ci_ctx );
-    else
-    {
-        /* print_col_info is in vdb-dump-helper.c */
-        rc = vdh_print_col_info( ci_ctx->ctx , col_def, ci_ctx->my_schema );
-
-        /* to test VTableColumnDatatypes() */
-        if ( rc == 0  && ci_ctx->ctx->column_enum_requested )
-            rc = vdm_print_column_datatypes( col_def, ci_ctx );
-    }
-    return rc;
-}
+    p_col_info_context ci_ctx = (p_col_info_context)data;
+    const p_col_def col_def = (const p_col_def)item;
 
+    /* print_col_info is in vdb-dump-helper.c */
+    vdh_print_col_info( ci_ctx->ctx , col_def, ci_ctx->my_schema );
 
-static rc_t vdm_enum_phys_columns( const VTable *my_table )
-{
-    rc_t rc = KOutMsg( "physical columns:\n" );
-    if ( rc == 0 )
-    {
-        KNamelist *phys;
-        rc = VTableListPhysColumns( my_table, &phys );
-        DISP_RC( rc, "VTableListPhysColumns() failed" );
-        if ( rc == 0 )
-        {
-            uint32_t count;
-            rc = KNamelistCount( phys, &count );
-            DISP_RC( rc, "KNamelistCount( physical columns ) failed" );
-            if ( rc == 0 )
-            {
-                if ( count > 0 )
-                {
-                    uint32_t idx;
-                    for ( idx = 0; idx < count && rc == 0; ++idx )
-                    {
-                        const char * name;
-                        rc = KNamelistGet( phys, idx, &name );
-                        DISP_RC( rc, "KNamelistGet( physical columns ) failed" );
-                        if ( rc == 0 )
-                            rc = KOutMsg( "[%.02d] = %s\n", idx, name );
-                    }
-                }
-                else
-                {
-                    rc = KOutMsg( "... list is empty!\n" );
-                }
-            }
-            KNamelistRelease( phys );
-        }
-    }
-    return rc;
+    /* to test VTableColumnDatatypes() */
+    if ( ci_ctx->ctx->column_enum_requested )
+        vdm_print_column_datatypes( col_def, ci_ctx );
 }
 
 /*************************************************************************************
@@ -883,68 +680,39 @@ my_database [IN] ... open database needed for vdb-calls
 static rc_t vdm_enum_tab_columns( const p_dump_context ctx, const VTable *my_table )
 {
     rc_t rc = 0;
-    if ( ctx->enum_phys )
+    col_defs *my_col_defs;
+
+    if ( !vdcd_init( &my_col_defs, ctx->max_line_len ) )
     {
-        rc = vdm_enum_phys_columns( my_table );
+        rc = RC( rcVDB, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
+        DISP_RC( rc, "col_defs_init() failed" );
     }
-    else
-    {
-        col_defs *my_col_defs;
-        if ( !vdcd_init( &my_col_defs, ctx->max_line_len ) )
-        {
-            rc = RC( rcVDB, rcNoTarg, rcConstructing, rcMemory, rcExhausted );
-            DISP_RC( rc, "col_defs_init() failed" );
-        }
 
-        if ( rc == 0 )
+    if ( rc == 0 )
+    {
+        if ( vdcd_extract_from_table( my_col_defs, my_table ) )
         {
             col_info_context ci_ctx;
-            bool extracted;
-
             ci_ctx.ctx = ctx;
             ci_ctx.my_table = my_table;
-            if ( ctx->show_blobbing )
-            {
-                extracted = vdm_extract_or_parse_phys_columns( ctx, my_table, my_col_defs );
-                rc = VTableOpenKTableRead( my_table, &ci_ctx.my_ktable );
-                DISP_RC( rc, "VTableOpenKTableRead() failed" );
-            }
-            else
-            {
-                extracted = vdm_extract_or_parse_columns( ctx, my_table, my_col_defs );
-                ci_ctx.my_ktable = NULL;
-            }
-
-            if ( extracted && rc == 0 )
+            rc = VTableOpenSchema( my_table, &(ci_ctx.my_schema) );
+            DISP_RC( rc, "VTableOpenSchema() failed" );
+            if ( rc == 0 )
             {
-                rc = VTableOpenSchema( my_table, &(ci_ctx.my_schema) );
-                DISP_RC( rc, "VTableOpenSchema() failed" );
-                if ( rc == 0 )
-                {
-                    uint32_t idx, count;
+                ctx->generic_idx = 1;
+                VectorForEach( &(my_col_defs->cols), false,
+                               vdm_print_column_info, &ci_ctx );
 
-                    ctx->generic_idx = 1;
-                    count = VectorLength( &(my_col_defs->cols) );
-                    for ( idx = 0; idx < count && rc == 0; ++idx )
-                    {
-                        col_def *col = ( col_def * )VectorGet( &(my_col_defs->cols), idx );
-                        if ( col != 0 )
-                        {
-                            rc = vdm_print_column_info( col, &ci_ctx );
-                        }
-                    }
-                    VSchemaRelease( ci_ctx.my_schema );
-                }
-                if ( ci_ctx.my_ktable != NULL )
-                    KTableRelease( ci_ctx.my_ktable );
+                vdcd_destroy( my_col_defs );
+                VSchemaRelease( ci_ctx.my_schema );
             }
-            else
-            {
-                rc = KOutMsg( "error in col_defs_extract_from_table\n" );
-            }
-            vdcd_destroy( my_col_defs );
+        }
+        else
+        {
+            OUTMSG ( ( "error in col_defs_extract_from_table\n" ) );
         }
     }
+
     return rc;
 }
 
@@ -973,7 +741,6 @@ static rc_t vdm_enum_db_columns( const p_dump_context ctx, const VDatabase *my_d
     return rc;
 }
 
-
 static rc_t vdm_print_tab_id_range( const p_dump_context ctx, const VTable *my_table )
 {
     const VCursor *my_cursor;
@@ -1004,7 +771,9 @@ static rc_t vdm_print_tab_id_range( const p_dump_context ctx, const VTable *my_t
                         rc = VCursorIdRange( my_cursor, 0, &first, &count );
                         DISP_RC( rc, "VCursorIdRange() failed" );
                         if ( rc == 0 )
-                            rc = KOutMsg( "id-range: first-row = %,ld, row-count = %,ld\n", first, count );
+                        {
+                            OUTMSG ( ( "id-range: first-row = %ld, row-count = %ld\n", first, count ) );
+                        }
                     }
                 }
             }
@@ -1081,13 +850,6 @@ static rc_t vdm_dump_tab_fkt( const p_dump_context ctx,
     return rc;
 }
 
-
-static bool enum_col_request( const p_dump_context ctx )
-{
-    return ( ctx->column_enum_requested || ctx->column_enum_short || 
-             ctx->show_blobbing || ctx->enum_phys );
-}
-
 /***************************************************************************
     dump_table:
     * called by "dump_main()" to handle a table
@@ -1097,7 +859,7 @@ static bool enum_col_request( const p_dump_context ctx )
 ctx        [IN] ... contains path, tablename, columns, row-range etc.
 my_manager [IN] ... open manager needed for vdb-calls
 ***************************************************************************/
-static rc_t vdm_dump_table( const p_dump_context ctx, const VDBManager *my_manager )
+rc_t vdm_dump_table( const p_dump_context ctx, const VDBManager *my_manager )
 {
     rc_t rc;
 
@@ -1112,10 +874,10 @@ static rc_t vdm_dump_table( const p_dump_context ctx, const VDBManager *my_manag
     }
     else if ( ctx->table_enum_requested )
     {
-        KOutMsg( "cannot enum tables of a table-object\n" );
+        OUTMSG(( "cannot enum tables of a table-object\n" ));
         rc = RC ( rcApp, rcArgv, rcAccessing, rcParam, rcInvalid );
     }
-    else if ( enum_col_request( ctx ) )
+    else if ( ctx->column_enum_requested || ctx->column_enum_short )
     {
         rc = vdm_dump_tab_fkt( ctx, my_manager, vdm_enum_tab_columns );
     }
@@ -1180,7 +942,7 @@ static rc_t vdm_dump_db_fkt( const p_dump_context ctx,
         }
         else
         {
-            LOGMSG( klogInfo, "opened as vdb-database, but no table found" );
+            LOGMSG( klogInfo, "opened as vdb-dabase, but no table found" );
             ctx->usage_requested = true;
         }
         VDatabaseRelease( my_database );
@@ -1194,7 +956,6 @@ static rc_t vdm_dump_db_fkt( const p_dump_context ctx,
     return rc;
 }
 
-
 /***************************************************************************
     dump_database:
     * called by "dump_main()"
@@ -1204,7 +965,7 @@ static rc_t vdm_dump_db_fkt( const p_dump_context ctx,
 ctx        [IN] ... contains path, tablename, columns, row-range etc.
 my_manager [IN] ... open manager needed for vdb-calls
 ***************************************************************************/
-static rc_t vdm_dump_database( const p_dump_context ctx, const VDBManager *my_manager )
+rc_t vdm_dump_database( const p_dump_context ctx, const VDBManager *my_manager )
 {
     rc_t rc;
 
@@ -1216,7 +977,7 @@ static rc_t vdm_dump_database( const p_dump_context ctx, const VDBManager *my_ma
     {
         rc = vdm_dump_db_fkt( ctx, my_manager, vdm_enum_tables );
     }
-    else if ( enum_col_request( ctx ) )
+    else if ( ctx->column_enum_requested || ctx->column_enum_short )
     {
         rc = vdm_dump_db_fkt( ctx, my_manager, vdm_enum_db_columns );
     }
@@ -1232,137 +993,64 @@ static rc_t vdm_dump_database( const p_dump_context ctx, const VDBManager *my_ma
     return rc;
 }
 
-
-static rc_t vdm_print_objver( const p_dump_context ctx, const VDBManager *mgr )
+char *vdm_translate_accession( SRAPath *my_sra_path,
+                               const char *accession,
+                               const size_t bufsize )
 {
-    ver_t version;
-    rc_t rc = VDBManagerGetObjVersion ( mgr, &version, ctx->path );
-    DISP_RC( rc, "VDBManagerGetObjVersion() failed" );
-    if ( rc == 0 )
-        rc = KOutMsg( "%V\n", version );
-    return rc;
-}
-
-
-static void vdm_print_objtype( const VDBManager *mgr, const char * acc_or_path )
-{
-    int path_type = ( VDBManagerPathType ( mgr, acc_or_path ) & ~ kptAlias );
-    switch ( path_type )
+    char *res = malloc( bufsize );
+    if ( res != NULL )
     {
-    case kptDatabase      :   KOutMsg( "Database\n" ); break;
-    case kptTable         :   KOutMsg( "Table\n" ); break;
-    case kptPrereleaseTbl :   KOutMsg( "Prerelease Table\n" ); break;
-    case kptColumn        :   KOutMsg( "Column\n" ); break;
-    case kptIndex         :   KOutMsg( "Index\n" ); break;
-    case kptNotFound      :   KOutMsg( "not found\n" ); break;
-    case kptBadPath       :   KOutMsg( "bad path\n" ); break;
-    case kptFile          :   KOutMsg( "File\n" ); break;
-    case kptDir           :   KOutMsg( "Dir\n" ); break;
-    case kptCharDev       :   KOutMsg( "CharDev\n" ); break;
-    case kptBlockDev      :   KOutMsg( "BlockDev\n" ); break;
-    case kptFIFO          :   KOutMsg( "FIFO\n" ); break;
-    case kptZombieFile    :   KOutMsg( "ZombieFile\n" ); break;
-    case kptDataset       :   KOutMsg( "Dataset\n" ); break;
-    case kptDatatype      :   KOutMsg( "Datatype\n" ); break;
-    default               :   KOutMsg( "value = '%i'\n", path_type ); break;
-    }
-}
-
-
-#define USE_PATHTYPE_TO_DETECT_DB_OR_TAB 1
-
-static rc_t vdb_main_one_obj_by_pathtype( const p_dump_context ctx,
-                                          const VDBManager *mgr,
-                                          const char * acc_or_path )
-{
-    rc_t rc;
-    int path_type = ( VDBManagerPathType ( mgr, acc_or_path ) & ~ kptAlias );
-    switch ( path_type )
-    {
-    case kptDatabase    :   rc = vdm_dump_database( ctx, mgr );
-                            DISP_RC( rc, "dump_database() failed" );
-                            break;
-
-    case kptPrereleaseTbl:
-    case kptTable       :   rc = vdm_dump_table( ctx, mgr );
-                            DISP_RC( rc, "dump_table() failed" );
-                            break;
-
-    default             :   rc = RC( rcVDB, rcNoTarg, rcConstructing, rcItem, rcNotFound );
-                            PLOGERR( klogInt, ( klogInt, rc,
-                                "the path '$(p)' cannot be opened as vdb-database or vdb-table",
-                                "p=%s", ctx->path ) );
-                            if ( vdco_schema_count( ctx ) == 0 )
-                            {
-                            LOGERR( klogInt, rc, "Maybe it is a legacy table. If so, specify a schema with the -S option" );
-                            }
-                            break;
-    }
-    return rc;
-}
-
-
-static rc_t vdb_main_one_obj_by_probing( const p_dump_context ctx,
-                                         const VDBManager *mgr,
-                                         const char * acc_or_path )
-{
-    rc_t rc;
-    if ( vdh_is_path_database( mgr, ctx->path, &(ctx->schema_list) ) )
-    {
-        rc = vdm_dump_database( ctx, mgr );
-        DISP_RC( rc, "dump_database() failed" );
-    }
-    else if ( vdh_is_path_table( mgr, ctx->path, &(ctx->schema_list) ) )
-    {
-        rc = vdm_dump_table( ctx, mgr );
-        DISP_RC( rc, "dump_table() failed" );
-    }
-    else
-    {
-        rc = RC( rcVDB, rcNoTarg, rcConstructing, rcItem, rcNotFound );
-        PLOGERR( klogInt, ( klogInt, rc,
-                 "the path '$(p)' cannot be opened as vdb-database or vdb-table",
-                 "p=%s", ctx->path ) );
-        if ( vdco_schema_count( ctx ) == 0 )
+        rc_t rc = SRAPathFind( my_sra_path, accession, res, bufsize );
+        if ( GetRCState( rc ) == rcNotFound )
+        {
+            free( res );
+            res = NULL;
+        }
+        else if ( GetRCState( rc ) == rcInsufficient )
+        {
+            DBGMSG ( DBG_APP, 0,  ( "bufsize %lu was insufficient\n", bufsize ) );
+            free( res );
+            res = vdm_translate_accession( my_sra_path, accession, bufsize * 2 );
+        }
+        else if ( rc != 0 )
         {
-            LOGERR( klogInt, rc, "Maybe it is a legacy table. If so, specify a schema with the -S option" );
+            free( res );
+            res = NULL;
         }
     }
-    return rc;
+    return res;
 }
 
-
-static rc_t vdm_main_one_obj( const p_dump_context ctx,
-                        KDirectory *dir, const VDBManager *mgr,
-                        const char * acc_or_path )
+rc_t vdm_check_accession( const p_dump_context ctx, const KDirectory *my_dir )
 {
     rc_t rc = 0;
-
-    ctx->path = string_dup_measure ( acc_or_path, NULL );
-
-    if ( ctx->objver_requested )
+    if ( strchr ( ctx->path, '/' ) == NULL )
     {
-        rc = vdm_print_objver( ctx, mgr );
-    }
-    else if ( ctx->objtype_requested )
-    {
-        vdm_print_objtype( mgr, acc_or_path );
-    }
-    else
-    {
-        if ( USE_PATHTYPE_TO_DETECT_DB_OR_TAB )
+        SRAPath *my_sra_path;
+        rc = SRAPathMake( &my_sra_path, my_dir );
+        if ( rc != 0 )
         {
-            rc = vdb_main_one_obj_by_pathtype( ctx, mgr, acc_or_path );
+            if ( GetRCState ( rc ) != rcNotFound || GetRCTarget ( rc ) != rcDylib )
+                LOGERR( klogInt, rc, "SRAPathMake() failed" );
+            else
+                rc = 0;
         }
         else
         {
-            rc = vdb_main_one_obj_by_probing( ctx, mgr, acc_or_path );
+            if ( !SRAPathTest( my_sra_path, ctx->path ) )
+            {
+                char *buf = vdm_translate_accession( my_sra_path, ctx->path, 64 );
+                if ( buf != NULL )
+                {
+                    DBGMSG ( DBG_APP, 0,  ( "sra-accession found! >%s<\n", buf ) );
+                    free( (char*)ctx->path );
+                    ctx->path = buf;
+                }
+            }
+            SRAPathRelease( my_sra_path );
         }
     }
 
-    free( (char*)ctx->path );
-    ctx->path = NULL;
-
     return rc;
 }
 
@@ -1381,58 +1069,56 @@ static rc_t vdm_main_one_obj( const p_dump_context ctx,
 
 ctx        [IN] ... contains path, tablename, columns, row-range etc.
 ***************************************************************************/
-static rc_t vdm_main( const p_dump_context ctx, Args * args )
+rc_t vdm_main( const p_dump_context ctx )
 {
-    rc_t rc, rc1;
-    KDirectory *dir;
-
-    rc = KDirectoryNativeDir( &dir );
+    rc_t rc;
+    KDirectory *my_directory;
+    rc = KDirectoryNativeDir( &my_directory );
     DISP_RC( rc, "KDirectoryNativeDir() failed" );
     if ( rc == 0 )
     {
-        const VDBManager *mgr;
+        rc_t rc1;
+        const VDBManager *my_manager;
+
+        if ( ctx->dont_check_accession == false )
+        {
+            rc1 = vdm_check_accession( ctx, my_directory );
+            DISP_RC( rc, "check_accession() failed" );
+        }
 
-        rc = VDBManagerMakeRead ( &mgr, dir );
+        rc = VDBManagerMakeRead ( &my_manager, my_directory );
         DISP_RC( rc, "VDBManagerMakeRead() failed" );
         if ( rc == 0 )
         {
             /* show manager is independend form db or tab */
             if ( ctx->version_requested )
             {
-                rc = vdh_show_manager_version( mgr );
-                DISP_RC( rc, "show_manager_version() failed" );
+                rc1 = vdh_show_manager_version( my_manager );
+                DISP_RC( rc1, "show_manager_version() failed" );
+            }
+
+            /* if the path is a database-path... (from vdb-dump-helper.c) */
+            if ( vdh_is_path_database( my_manager, ctx->path, &(ctx->schema_list) ) )
+            {
+                rc = vdm_dump_database( ctx, my_manager );
+                DISP_RC( rc, "dump_database() failed" );
+            }
+            /* if the path is a table-path... (from vdb-dump-helper.c) */
+            else if ( vdh_is_path_table( my_manager, ctx->path, &(ctx->schema_list) ) )
+            {
+                rc = vdm_dump_table( ctx, my_manager );
+                DISP_RC( rc, "dump_table() failed" );
             }
             else
             {
-                uint32_t count;
-                rc = ArgsParamCount( args, &count );
-                DISP_RC( rc, "ArgsParamCount() failed" );
-                if ( rc == 0 )
-                {
-                    if ( count > 0 )
-                    {
-                        uint32_t idx;
-                        for ( idx = 0; idx < count && rc == 0; ++idx )
-                        {
-                            const char *value = NULL;
-                            rc = ArgsParamValue( args, idx, &value );
-                            DISP_RC( rc, "ArgsParamValue() failed" );
-                            if ( rc == 0 )
-                            {
-                                rc = vdm_main_one_obj( ctx, dir, mgr, value );
-                            }
-                        }
-                    }
-                    else
-                    {
-                        rc = UsageSummary ( UsageDefaultName );
-                    }
-                }
+                OUTMSG ( ( "\nthe path >%s< cannot be opened as vdb-database or vdb-table !!!\n", ctx->path ) );
+                if ( vdco_schema_count( ctx ) == 0 )
+                    OUTMSG ( ( "Maybe it is a legacy table. If so, specify a schema with the -S option\n" ) );
             }
-            rc1 = VDBManagerRelease( mgr );
+            rc1 = VDBManagerRelease( my_manager );
             DISP_RC( rc1, "VDBManagerRelease() failed" );
         }
-        rc1 = KDirectoryRelease( dir );
+        rc1 = KDirectoryRelease( my_directory );
         DISP_RC( rc1, "KDirectoryRelease() failed" );
     }
     return rc;
@@ -1478,8 +1164,21 @@ rc_t CC KMain ( int argc, char *argv [] )
             rc = vdco_capture_arguments_and_options( args, ctx );
             if ( rc == 0 )
             {
-                KLogHandlerSetStdErr();
-                rc = vdm_main( ctx, args );
+                if ( ctx->usage_requested )
+                {
+                    MiniUsage(args);
+                }
+                else
+                {
+                    KLogHandlerSetStdErr();
+                    rc = vdm_main( ctx );
+
+                    /* usage can be requested during dump_main */
+                    if ( ctx->usage_requested )
+                    {
+                        MiniUsage(args);
+                    }
+                }
             }
             vdco_destroy( ctx );
         }
diff --git a/tools/vdb-dump/vdb-dump.vers b/tools/vdb-dump/vdb-dump.vers
index f90b1af..04b10b4 100644
--- a/tools/vdb-dump/vdb-dump.vers
+++ b/tools/vdb-dump/vdb-dump.vers
@@ -1 +1 @@
-2.3.2
+2.1.7
diff --git a/tools/vdb-dump/vdb-dump.vers.h b/tools/vdb-dump/vdb-dump.vers.h
new file mode 100644
index 0000000..d829bf0
--- /dev/null
+++ b/tools/vdb-dump/vdb-dump.vers.h
@@ -0,0 +1 @@
+#define VDB_DUMP_VERS 0x02010007
diff --git a/tools/vdb-validate/Makefile b/tools/vdb-validate/Makefile
deleted file mode 100644
index dc1fb21..0000000
--- a/tools/vdb-validate/Makefile
+++ /dev/null
@@ -1,114 +0,0 @@
-# ===========================================================================
-#
-#                            PUBLIC DOMAIN NOTICE
-#               National Center for Biotechnology Information
-#
-#  This software/database is a "United States Government Work" under the
-#  terms of the United States Copyright Act.  It was written as part of
-#  the author's official duties as a United States Government employee and
-#  thus cannot be copyrighted.  This software/database is freely available
-#  to the public for use. The National Library of Medicine and the U.S.
-#  Government have not placed any restriction on its use or reproduction.
-#
-#  Although all reasonable efforts have been taken to ensure the accuracy
-#  and reliability of the software and data, the NLM and the U.S.
-#  Government do not and cannot warrant the performance or results that
-#  may be obtained by using this software or data. The NLM and the U.S.
-#  Government disclaim all warranties, express or implied, including
-#  warranties of performance, merchantability or fitness for any particular
-#  purpose.
-#
-#  Please cite the author in any work or product based on this material.
-#
-# ===========================================================================
-
-
-default: std
-
-TOP ?= $(shell ../../build/abspath.sh ../..)
-MODULE = tools/vdb-validate
-
-include $(TOP)/build/Makefile.env
-
-INT_TOOLS = \
-
-
-EXT_TOOLS = \
-	vdb-validate
-
-ALL_TOOLS = \
-	$(INT_TOOLS) \
-	$(EXT_TOOLS)
-
-#------------------------------------------------------------------------------
-# outer targets
-#
-all std: vers-includes
-	@ $(MAKE_CMD) $(TARGDIR)/$@
-
-$(ALL_TOOLS): vers-includes
-	@ $(MAKE_CMD) $(BINDIR)/$@
-
-.PHONY: all std $(ALL_TOOLS)
-
-#-------------------------------------------------------------------------------
-# all
-#
-$(TARGDIR)/all: \
-	$(addprefix $(BINDIR)/,$(ALL_TOOLS))
-
-.PHONY: $(TARGDIR)/all
-
-#-------------------------------------------------------------------------------
-# std
-#
-$(TARGDIR)/std: \
-	$(addprefix $(BINDIR)/,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/std
-
-#-------------------------------------------------------------------------------
-# vers-includes
-#
-$(TARGDIR)/vers-includes: $(addsuffix .vers.h,$(EXT_TOOLS))
-
-.PHONY: $(TARGDIR)/vers-includes
-
-#-------------------------------------------------------------------------------
-# clean
-#
-clean: stdclean
-
-.PHONY: clean
-
-#-------------------------------------------------------------------------------
-# vdb-validate
-#
-VDB_VALIDATE_SRC = \
-	vdb-validate
-
-VDB_VALIDATE_OBJ = \
-	$(addsuffix .$(OBJX),$(VDB_VALIDATE_SRC))
-
-VDB_VALIDATE_LIB = \
-	-dalign-reader \
-	$(READONLY_SCHEMA_LIBS) \
-	-dksrch \
-	-lsradb \
-	-lvdb \
-	-lkdb \
-	-lkapp \
-	-lvfs \
-	-lkurl \
-	-lkrypto \
-	-lkfg \
-	-lkfs \
-	-lkproc \
-	-lklib \
-	-lm
-
-vdb-validate.vers.h: vdb-validate.vers
-	$(TOP)/build/make-vers-inc.sh VDB_VALIDATE_VERS $^ > $@
-
-$(BINDIR)/vdb-validate: $(VDB_VALIDATE_OBJ)
-	$(LD) --exe --vers $(SRCDIR) -o $@ $^ $(VDB_VALIDATE_LIB)
diff --git a/tools/vdb-validate/vdb-validate.c b/tools/vdb-validate/vdb-validate.c
deleted file mode 100644
index d166bed..0000000
--- a/tools/vdb-validate/vdb-validate.c
+++ /dev/null
@@ -1,2325 +0,0 @@
-/*===========================================================================
- *
- *                            PUBLIC DOMAIN NOTICE
- *               National Center for Biotechnology Information
- *
- *  This software/database is a "United States Government Work" under the
- *  terms of the United States Copyright Act.  It was written as part of
- *  the author's official duties as a United States Government employee and
- *  thus cannot be copyrighted.  This software/database is freely available
- *  to the public for use. The National Library of Medicine and the U.S.
- *  Government have not placed any restriction on its use or reproduction.
- *
- *  Although all reasonable efforts have been taken to ensure the accuracy
- *  and reliability of the software and data, the NLM and the U.S.
- *  Government do not and cannot warrant the performance or results that
- *  may be obtained by using this software or data. The NLM and the U.S.
- *  Government disclaim all warranties, express or implied, including
- *  warranties of performance, merchantability or fitness for any particular
- *  purpose.
- *
- *  Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- */
-
-#include <vfs/manager-priv.h> /* VFSManagerOpenFileReadDecrypt */
-#include <vfs/manager.h> /* VFSManagerMake */
-#include <vfs/resolver.h> /* VResolver */
-#include <vfs/path.h> /* VPathMake */
-
-#include <kapp/main.h>
-#include <kapp/args.h>
-#include <klib/out.h>
-#include <klib/log.h>
-#include <klib/rc.h>
-#include <klib/namelist.h>
-#include <klib/container.h>
-#include <klib/text.h> /* String */
-#include <klib/debug.h>
-#include <klib/data-buffer.h>
-#include <klib/sort.h>
-
-#include <kdb/manager.h>
-#include <kdb/database.h>
-#include <kdb/table.h>
-#include <kdb/meta.h>
-#include <kdb/namelist.h>
-#include <kdb/consistency-check.h>
-#include <kdb/kdb-priv.h> /* KTableOpenDirectoryRead */
-
-#include <vdb/manager.h>
-#include <vdb/schema.h>
-#include <vdb/database.h>
-#include <vdb/table.h>
-#include <vdb/cursor.h>
-#include <vdb/dependencies.h> /* UIError */
-#include <vdb/vdb-priv.h> /* VTableOpenKTableRead */
-
-#include <krypto/encfile.h> /* KEncFileValidate */
-#include <krypto/wgaencrypt.h> /* KEncFileValidate */
-
-#include <kfs/kfs-priv.h>
-#include <kfs/sra.h>
-#include <kfs/tar.h>
-#include <kfs/file.h> /* KFileRelease */
-
-#include <insdc/insdc.h>
-#include <insdc/sra.h>
-#include <sra/srapath.h>
-#include <sra/sradb.h>
-#include <sra/sraschema.h>
-
-#include <sysalloc.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "vdb-validate.vers.h"
-
-#define RELEASE(type, obj) do { rc_t rc2 = type##Release(obj); \
-    if (rc2 != 0 && rc == 0) { rc = rc2; } obj = NULL; } while (false)
-
-static bool exhaustive;
-static bool md5_required;
-static bool ref_int_check;
-static bool s_IndexOnly;
-
-typedef struct node_s {
-    int parent;
-    int prvSibl;
-    int nxtSibl;
-    int firstChild;
-    unsigned depth;
-    unsigned name;
-    uint32_t objType;
-} node_t;
-typedef struct cc_context_s {
-    node_t *nodes;
-    char *names;
-    rc_t rc;
-    unsigned num_columns;
-    unsigned nextNode;
-    unsigned nextName;
-} cc_context_t;
-static
-rc_t report_rtn ( rc_t rc )
-{
-    return exhaustive ? 0 : rc;
-}
-
-static rc_t report_index(CCReportInfoBlock const *what, cc_context_t *ctx)
-{
-    switch (what->type) {
-    case ccrpt_Done:
-        if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc,
-                "Index '$(index)': $(mesg)",
-                "index=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
-        }
-        return report_rtn (what->info.done.rc);
-    case ccrpt_Index:
-        return 0; /* continue with check */
-    case ccrpt_MD5:
-        if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc,
-                "File '$(file)' of index '$(index)' failed MD5 check",
-                "file=%s,index=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
-        }
-        return report_rtn (what->info.MD5.rc);
-    default:
-        return RC(rcExe, rcTable, rcVisiting, rcParam, rcUnexpected);
-    }
-}
-
-static rc_t report_column(CCReportInfoBlock const *what, cc_context_t *ctx)
-{
-    switch (what->type) {
-    case ccrpt_Done:
-        if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc,
-                "Column '$(column)': $(mesg)",
-                "column=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
-        }
-        else {
-            (void)PLOGMSG(klogInfo, (klogInfo, "Column '$(column)': $(mesg)",
-                "column=%s,mesg=%s", what->objName,
-                what->info.done.mesg ? what->info.done.mesg : "checked"));
-            ++ctx->num_columns;
-        }
-        return report_rtn (what->info.done.rc);
-    case ccrpt_Blob:
-        return 0; /* continue with check */
-    case ccrpt_MD5:
-        if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc,
-                "File '$(file)' of column '$(column)' failed MD5 check",
-                "file=%s,column=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
-        }
-        return report_rtn (what->info.MD5.rc);
-    default:
-        return RC(rcExe, rcTable, rcVisiting, rcParam, rcUnexpected);
-    }
-}
-
-static rc_t report_table(CCReportInfoBlock const *what, cc_context_t *ctx)
-{
-    switch (what->type) {
-    case ccrpt_Done:
-        if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc,
-                "Table '$(table)': $(mesg)",
-                "table=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
-        }
-        else if (what->info.done.mesg) {
-            if (strcmp(what->info.done.mesg, "missing md5 file") == 0
-                && md5_required)
-            {
-                rc_t rc = RC(0, rcTable, rcValidating, rcChecksum, rcNotFound);
-                (void)PLOGERR(klogErr, (klogErr, rc,
-                    "Table '$(table)': is missing required md5 files",
-                    "table=%s", what->objName));
-                return rc;
-            }
-            else if (strncmp("unexpected object ",
-                what->info.done.mesg, 18) == 0)
-            {
-                (void)PLOGMSG(klogWarn, (klogWarn,
-                    "Table '$(tbl)': $(mesg)", "tbl=%s,mesg=%s",
-                    what->objName, what->info.done.mesg));
-            }
-            else {
-                (void)PLOGMSG(klogInfo, (klogInfo,
-                    "Table '$(tbl)' metadata: $(mesg)",
-                    "tbl=%s,mesg=%s", what->objName, what->info.done.mesg));
-            }
-        }
-        return report_rtn (what->info.done.rc);
-    case ccrpt_MD5:
-        if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc,
-                "File '$(file)' of table '$(table)' failed MD5 check",
-                "file=%s,table=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
-        }
-        return report_rtn (what->info.MD5.rc);
-    default:
-        return RC(rcExe, rcTable, rcVisiting, rcParam, rcUnexpected);
-    }
-}
-
-static rc_t report_database(CCReportInfoBlock const *what, cc_context_t *ctx)
-{
-    switch (what->type) {
-    case ccrpt_Done:
-        if (what->info.done.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.done.rc,
-                "Database '$(db)': $(mesg)",
-                "db=%s,mesg=%s", what->objName, what->info.done.mesg));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.done.rc;
-        }
-        else if (what->info.done.mesg) {
-            if (strcmp(what->info.done.mesg, "missing md5 file") == 0
-                && md5_required)
-            {
-                rc_t rc
-                    = RC(rcExe, rcTable, rcValidating, rcChecksum, rcNotFound);
-                (void)PLOGERR(klogErr, (klogErr, rc,
-                    "Database '$(table)': is missing required md5 files",
-                    "table=%s", what->objName));
-                return rc;
-            }
-            else {
-                (void)PLOGMSG(klogInfo, (klogInfo,
-                    "Database '$(db)' metadata: $(mesg)",
-                    "db=%s,mesg=%s", what->objName, what->info.done.mesg));
-            }
-        }
-        return report_rtn (what->info.done.rc);
-    case ccrpt_MD5:
-        if (what->info.MD5.rc) {
-            (void)PLOGERR(klogErr, (klogErr, what->info.MD5.rc,
-                "File '$(file)' of database '$(db)' failed MD5 check",
-                "file=%s,db=%s", what->info.MD5.file, what->objName));
-            if (ctx->rc == 0)
-                ctx->rc = what->info.MD5.rc;
-        }
-        return report_rtn (what->info.MD5.rc);
-    default:
-        return RC(rcExe, rcTable, rcVisiting, rcParam, rcUnexpected);
-    }
-}
-
-static rc_t visiting(CCReportInfoBlock const *what, cc_context_t *ctx)
-{
-    unsigned const nn = ctx->nextNode++;
-    node_t *const nxt = &ctx->nodes[nn];
-    node_t *const cur = nxt - 1;
-    
-    nxt->parent = nxt->prvSibl = nxt->nxtSibl = nxt->firstChild = -1;
-    nxt->depth = what->info.visit.depth;
-    nxt->objType = what->objType;
-    nxt->name = ctx->nextName;
-    ctx->nextName += strlen(what->objName) + 1;
-    strcpy(&ctx->names[nxt->name], what->objName);
-    
-    if (nn) {
-        if (cur->depth == nxt->depth) {
-            nxt->parent = cur->parent;
-            nxt->prvSibl = nn - 1;
-            cur->nxtSibl = nn;
-        }
-        else if (cur->depth < nxt->depth) {
-            nxt->parent = nn - 1;
-            cur->firstChild = nn;
-        }
-        else {
-            unsigned sibling = cur->parent;
-            
-            while (ctx->nodes[sibling].depth > nxt->depth)
-                sibling = ctx->nodes[sibling].parent;
-            nxt->parent = ctx->nodes[sibling].parent;
-            nxt->prvSibl = sibling;
-            ctx->nodes[sibling].nxtSibl = nn;
-        }
-    }
-    return 0;
-}
-
-static rc_t CC report(CCReportInfoBlock const *what, void *Ctx)
-{
-    cc_context_t *ctx = Ctx;
-    rc_t rc = Quitting();
-    
-    if (rc)
-        return rc;
-    
-    if (what->type == ccrpt_Visit)
-        return visiting(what, ctx);
-
-    switch (what->objType) {
-    case kptDatabase:
-        return report_database(what, ctx);
-    case kptTable:
-        return report_table(what, ctx);
-    case kptColumn:
-        return report_column(what, ctx);
-    case kptIndex:
-        return report_index(what, ctx);
-    default:
-        return RC(rcExe, rcTable, rcVisiting, rcParam, rcUnexpected);
-    }
-}
-
-static
-rc_t kdbcc ( const KDBManager *mgr, char const name[], uint32_t mode,
-    KPathType *pathType, bool is_file, node_t nodes[], char names[],
-    INSDC_SRA_platform_id platform )
-{
-    rc_t rc = 0;
-    cc_context_t ctx;
-    char const *objtype;
-
-    uint32_t level = ( mode & 4 ) ? 3 : ( mode & 2 ) ? 1 : 0;
-    if (s_IndexOnly)
-        level |= CC_INDEX_ONLY;
-
-
-    memset(&ctx, 0, sizeof(ctx));
-    ctx.nodes = &nodes[0];
-    ctx.names = &names[0];
-
-    if (KDBManagerExists(mgr, kptDatabase, name))
-        *pathType = kptDatabase;
-    else if (KDBManagerExists(mgr, kptTable, name))
-        *pathType = kptTable;
-    else if (*pathType == kptDatabase || *pathType == kptTable)
-        /* is known already: may be encrypted */ ( void) 0;
-    else
-    {
-        rc = RC(rcExe, rcPath, rcValidating, rcType, rcUnknown);
-        (void)PLOGERR(klogErr, (klogErr, rc, "Object '$(table)' "
-            "has unknown type", "table=%s", name));
-        return rc;
-    }
-
-    if (*pathType == kptDatabase)
-    {
-        const KDatabase *db;
-            
-        objtype = "database";
-        rc = KDBManagerOpenDBRead ( mgr, & db, name );
-        if ( rc == 0 )
-        {
-            rc = KDatabaseConsistencyCheck ( db, 0, level, report, & ctx );
-            if ( rc == 0 )
-            {
-                rc = ctx.rc;
-                if ( s_IndexOnly )
-                    (void)LOGMSG(klogInfo, "Indices: checked");
-            }
-
-            KDatabaseRelease ( db );
-        }
-    }
-    else
-    {
-        const KTable *tbl;
-
-        objtype = "table";
-        rc = KDBManagerOpenTableRead ( mgr, & tbl, name );
-        if ( rc == 0 )
-        {
-            rc = KTableConsistencyCheck ( tbl, 0, level, report, & ctx, platform );
-            if ( rc == 0 )
-                rc = ctx.rc;
-
-            if ( rc == 0 && s_IndexOnly )
-                (void)LOGMSG(klogInfo, "Index: checked");
-
-            KTableRelease ( tbl );
-        }
-    }
-
-    if (rc == 0 && ctx.num_columns == 0 && !s_IndexOnly)
-    {
-        if (is_file)
-        {
-            (void)PLOGMSG(klogWarn, (klogWarn, "Nothing to validate; "
-                                     "the file '$(file)' has no checksums or is truncated.",
-                                     "file=%s", name));
-        }
-        else
-        {
-            (void)PLOGMSG(klogWarn, (klogWarn, "Nothing to validate; "
-                                     "the $(type) '$(file)' has no checksums or is empty.",
-                                     "type=%s,file=%s", objtype, name));
-        }
-    }
-
-    return rc;
-}
-
-static
-rc_t vdbcc ( const VDBManager *mgr, char const name[], uint32_t mode,
-    KPathType *pathType, bool is_file)
-{
-#if 0
-    if ( ( mode & 8) != 0 )
-    {
-        const VTable *tbl;
-        rc_t rc = VDBManagerOpenTableRead(mgr, &tbl, NULL, name);
-        if (rc == 0)
-            rc = VTableConsistencyCheck(tbl, 2);
-        return rc;
-    }
-#endif
-    return 0;
-}
-
-typedef struct ColumnInfo_s {
-    char const *name;
-    union {
-        void     const *vp;
-        char     const *string;
-        bool     const *tf;
-        int8_t   const *i8;
-        uint8_t  const *u8;
-        int16_t  const *i16;
-        uint16_t const *u16;
-        int32_t  const *i32;
-        uint32_t const *u32;
-        int64_t  const *i64;
-        uint64_t const *u64;
-        float    const *f32;
-        double   const *f64;
-    } value;
-    uint32_t idx;
-    uint32_t elem_bits;
-    uint32_t elem_count;
-} ColumnInfo;
-
-static rc_t CC get_sizes_cb(const KDirectory *dir,
-    uint32_t type, const char *name, void *data)
-{
-    struct {
-        unsigned count;
-        size_t size;
-    } *pb = data;
-
-    ++pb->count;    
-    pb->size += strlen(name) + 1;
-    
-    return 0;
-}
-
-static rc_t get_sizes(KDirectory const *dir, unsigned *nobj, size_t *namesz)
-{
-    rc_t rc;
-    struct {
-        unsigned count;
-        size_t size;
-    } pb;
-    
-    memset(&pb, 0, sizeof(pb));
-    rc = KDirectoryVVisit(dir, true, get_sizes_cb, &pb, NULL, NULL);
-    if (rc)
-        memset(&pb, 0, sizeof(pb));
-    *nobj = pb.count;
-    *namesz = pb.size;
-    return rc;
-}
-
-static rc_t EncFileReadAll(const char *name,
-    char *buffer, size_t bsize, size_t *num_read)
-{
-    rc_t rc = 0;
-
-    VFSManager *mgr = NULL;
-    VPath *path = NULL;
-    const KFile *f = NULL;
-
-    rc = VFSManagerMake(&mgr);
-    if (rc != 0) {
-        LOGERR(klogErr, rc, "Failed to VFSManagerMake()");
-    }
-
-    if (rc == 0) {
-        rc = VPathMake(&path, name);
-        if (rc != 0) {
-            (void)PLOGERR(klogErr, (klogErr, rc,
-                "Failed to VPathMake($(name))", "name=%s", name));
-        }
-    }
-
-    if (rc == 0) {
-        rc = VFSManagerOpenFileReadDecrypt(mgr, &f, path);
-        if (rc != 0) {
-            (void)PLOGERR(klogErr, (klogErr, rc,
-                "Failed to VFSManagerOpenFileReadDecrypt($(name))",
-                "name=%s", name));
-        }
-    }
-
-    if (rc == 0) {
-        rc = KFileReadAll(f, 0, buffer, bsize, num_read);
-        if (rc != 0) {
-            (void)PLOGERR(klogErr, (klogErr, rc,
-                "Failed to KFileReadAll($(name))", "name=%s", name));
-        }
-    }
-
-    KFileRelease(f);
-    VPathRelease(path);
-    VFSManagerRelease(mgr);
-
-    return rc;
-}
-
-
-#if 0
-static rc_t verify_encryption(const KDirectory *dir, const char *name,
-    bool *enc, bool *sra)
-{
-    rc_t rc = 0;
-    const KFile *f = NULL;
-    char buffer[24];
-    size_t num_read = ~0;
-
-    assert(enc && sra);
-    *enc = false;
-    *sra = true;
-
-    rc = KDirectoryOpenFileRead(dir, &f, name);
-    if (rc == 0) {
-        rc = KFileReadAll(f, 0, &buffer, sizeof buffer, &num_read);
-    }
-
-    if (rc == 0) {
-        size_t sz = num_read < 8 ? num_read : 8;
-        assert(num_read <= sizeof buffer);
-        rc = KFileIsEnc(buffer, sz);
-        if (rc == 0)
-        {
-            (void)PLOGMSG(klogInfo, (klogInfo, "File '$(f)' is encrypted",
-                "f=%s", name));
-            *enc = true;
-            rc = KEncFileValidate(f);
-            if (rc != 0) {
-                (void)PLOGERR(klogErr, (klogErr, rc, "Failure of encryption "
-                    "validation of file '$(name)'", "name=%s", name));
-            }
-            else {
-                (void)PLOGMSG(klogInfo, (klogInfo, "File '$(f)': encryption OK",
-                    "f=%s", name));
-                rc = EncFileReadAll(name, buffer, sizeof buffer, &num_read);
-            }
-        }
-        else {
-            rc = 0;
-            (void)PLOGMSG(klogInfo, (klogInfo, "File '$(f)' is not encrypted",
-                "f=%s", name));
-        }
-    }
-
-    if (rc == 0) {
-        rc = KFileIsSRA(buffer, num_read);
-        if (rc == 0) {
-            *sra = true;
-        }
-        else if (rc
-            == SILENT_RC(rcFS, rcFile, rcIdentifying, rcBuffer, rcWrongType))
-        {
-            rc = 0;
-            *sra = false;
-        }
-        else {
-            (void)PLOGERR(klogErr, (klogErr, rc,
-                "Failed to KFileIsSRA($(name))", "name=%s", name));
-        }
-    }
-
-    KFileRelease(f);
-
-    return rc;
-}
-#endif
-
-static rc_t init_dbcc(KDirectory const *dir, char const name[], bool is_file,
-    node_t **nodes, char **names, KPathType *pathType)
-{
-    KDirectory const *obj;
-    unsigned nobj;
-    size_t namesz;
-    rc_t rc = 0;
-
-    assert(pathType);
-
-    if (is_file) {
-        rc = KDirectoryOpenSraArchiveRead_silent(dir, &obj, false, name);
-        if (rc != 0)
-        {   rc = KDirectoryOpenTarArchiveRead_silent(dir, &obj, false, name); }
-        if (rc != 0) {
-            const VDBManager *mgr = NULL;
-            const VTable *tbl = NULL;
-            VSchema *sra_schema = NULL;
-            rc = VDBManagerMakeRead(&mgr, dir);
-            if (rc != 0)
-            {   return rc; }
-            for ( ; rc == 0; ) {
-                rc = VDBManagerOpenTableRead(mgr, &tbl, sra_schema, name);
-                VSchemaRelease(sra_schema);
-                if (rc == 0) {
-                    const KTable *ktbl = NULL;
-                    rc = VTableOpenKTableRead(tbl, &ktbl);
-                    if (rc == 0)
-                    {   rc = KTableOpenDirectoryRead(ktbl, &obj); }
-                    KTableRelease(ktbl);
-                    *pathType = kptTable;
-                    break;
-                }
-                else if (GetRCState(rc) == rcNotFound
-                    && GetRCObject(rc) == rcSchema && sra_schema == NULL)
-                {
-                     rc = VDBManagerMakeSRASchema(mgr, &sra_schema);
-                }
-                else {
-                    const VDatabase *db = NULL;
-                    const KDatabase *kdb = NULL;
-                    rc = VDBManagerOpenDBRead(mgr, &db, NULL, name);
-                    if (rc == 0)
-                    {   rc = VDatabaseOpenKDatabaseRead(db, &kdb); }
-                    if (rc == 0)
-                    {   rc = KDatabaseOpenDirectoryRead(kdb, &obj); }
-                    if (rc == 0)
-                    {   *pathType = kptDatabase; }
-                    KDatabaseRelease(kdb);
-                    VDatabaseRelease(db);
-                    break;
-                }
-            }
-            VTableRelease(tbl);
-            VDBManagerRelease(mgr);
-        }
-    }
-    else {
-        rc = KDirectoryOpenDirRead(dir, &obj, false, name);
-    }
-    if (rc)
-        return rc;
-    rc = get_sizes(obj, &nobj, &namesz);
-    KDirectoryRelease(obj);
-    if (rc) {
-        *nodes = NULL;
-        *names = NULL;
-    }
-    else {
-        *nodes = malloc(nobj * sizeof(**nodes) + namesz);
-        if (nodes)
-            *names = (char *)&(*nodes)[nobj];
-        else
-            rc = RC(rcExe, rcSelf, rcConstructing, rcMemory, rcExhausted);
-    }
-    return rc;
-}
-
-static rc_t get_schema_info(KMetadata const *meta, char buffer[], size_t bsz,
-    char **vers)
-{
-    KMDataNode const *node;
-    rc_t rc = KMetadataOpenNodeRead(meta, &node, "schema");
-    
-    if (rc == 0) {
-        size_t sz;
-        
-        rc = KMDataNodeReadAttr(node, "name", buffer, bsz, &sz);
-        if (rc == 0) {
-            buffer[sz] = '\0';
-            *vers = &buffer[sz];
-            while (sz) {
-                --sz;
-                if (buffer[sz] == '#') {
-                    buffer[sz] = '\0';
-                    *vers = &buffer[sz + 1];
-                    break;
-                }
-            }
-        }
-    }
-    return rc;
-}
-
-static rc_t get_tbl_schema_info(VTable const *tbl, char buffer[], size_t bsz,
-    char **vers)
-{
-    KMetadata const *meta;
-    rc_t rc = VTableOpenMetadataRead(tbl, &meta);
-    
-    *(*vers = &buffer[0]) = '\0';
-    if (rc == 0) rc = get_schema_info(meta, buffer, bsz, vers);
-    return 0;
-}
-
-static rc_t get_db_schema_info(VDatabase const *db, char buffer[], size_t bsz,
-    char **vers)
-{
-    KMetadata const *meta;
-    rc_t rc = VDatabaseOpenMetadataRead(db, &meta);
-    
-    *(*vers = &buffer[0]) = '\0';
-    if (rc == 0) rc = get_schema_info(meta, buffer, bsz, vers);
-    return rc;
-}
-
-static rc_t sra_dbcc_454(VTable const *tbl, char const name[])
-{
-    /* TODO: complete this */
-    return 0;
-}
-
-static rc_t sra_dbcc_fastq(VTable const *tbl, char const name[])
-{
-    static char const *const cn_FastQ[] = {
-        "READ", "QUALITY", "SPOT_LEN", "READ_START", "READ_LEN", "READ_TYPE"
-    };
-    
-    VCursor const *curs;
-    rc_t rc = VTableCreateCursorRead(tbl, &curs);
-    
-    if (rc == 0) {
-        unsigned const n = sizeof(cn_FastQ)/sizeof(cn_FastQ[0]);
-        ColumnInfo cols[sizeof(cn_FastQ)/sizeof(cn_FastQ[0])];
-        unsigned i;
-
-        memset(cols, 0, sizeof(cols));
-        for (i = 0; i < n; ++i) {
-            cols[i].name = cn_FastQ[i];
-            VCursorAddColumn(curs, &cols[i].idx, cols[i].name);
-        }
-        rc = VCursorOpen(curs);
-        if (rc == 0) {
-            rc = VCursorOpenRow(curs);
-            for (i = 0; i < n && rc == 0; ++i) {
-                VCursorCellData(curs, cols[i].idx, &cols[i].elem_bits,
-                    &cols[i].value.vp, NULL, &cols[i].elem_count);
-            }
-            if (   cols[0].idx == 0 || cols[0].elem_bits == 0
-                                                    || cols[0].value.vp == NULL
-                || cols[1].idx == 0 || cols[1].elem_bits == 0
-                                                    || cols[1].value.vp == NULL)
-            {
-                rc = RC(rcExe, rcTable, rcValidating, rcColumn, rcNotFound);
-            }
-            else if (cols[2].idx == 0 || cols[2].elem_bits == 0
-                                                    || cols[2].value.vp == NULL)
-            {
-                (void)PLOGERR(klogWarn, (klogWarn,
-                    RC(rcExe, rcTable, rcValidating, rcColumn, rcNotFound),
-                    "Table '$(name)' is usable for fasta only; no quality data",
-                    "name=%s", name));
-            }
-        }
-        VCursorRelease(curs);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc,
-            "Table '$(name)' is damaged beyond any use", "name=%s", name));
-    }
-    return rc;
-}
-
-static rc_t VTable_get_platform(VTable const *tbl,
-    INSDC_SRA_platform_id *rslt)
-{
-    rc_t rc;
-    VCursor const *curs;
-    INSDC_SRA_platform_id platform = -1;
-    
-    rc = VTableCreateCursorRead(tbl, &curs);
-    if (rc == 0) {
-        uint32_t cid;
-        
-        rc = VCursorAddColumn(curs, &cid, "("sra_platform_id_t")PLATFORM");
-        if (rc == 0) {
-            rc = VCursorOpen(curs);
-            if (rc == 0) {
-                uint32_t ebits;
-                void const *data;
-                uint32_t boff;
-                uint32_t ecnt;
-                
-                rc = VCursorCellDataDirect(curs, 1, cid,
-                    &ebits, &data, &boff, &ecnt);
-                if (rc == 0) {
-                    if (ebits == sizeof(platform) * 8 && boff == 0 && ecnt == 1)
-                        platform = ((INSDC_SRA_platform_id *)data)[0];
-                    else
-                        rc =
-                            RC(rcExe, rcTable, rcReading, rcType, rcUnexpected);
-                }
-            }
-        }
-        else
-            rc = 0;
-        VCursorRelease(curs);
-    }
-    rslt[0] = platform;
-    return rc;
-}
-
-static rc_t verify_table(VTable const *tbl, char const name[])
-{
-    char schemaName[1024];
-    char *schemaVers = NULL;
-    rc_t rc = 0;
-    
-    get_tbl_schema_info(tbl, schemaName, sizeof(schemaName), &schemaVers);
-    
-    if (schemaName[0] == '\0' || strncmp(schemaName, "NCBI:SRA:", 9) == 0) {
-        /* SRA or legacy SRA */
-        INSDC_SRA_platform_id platform;
-        
-        rc = VTable_get_platform(tbl, &platform);
-        if (rc == 0) {
-            if (platform == (INSDC_SRA_platform_id)-1) {
-                (void)PLOGMSG(klogWarn, (klogWarn, "Couldn't determine "
-                    "SRA Platform; type of table '$(name)' is indeterminate.",
-                    "name=%s", name));
-            }
-            rc = sra_dbcc_fastq(tbl, name);
-            if (rc == 0 && platform == SRA_PLATFORM_454) {
-                rc = sra_dbcc_454(tbl, name);
-            }
-        }
-        else {
-            (void)PLOGERR(klogErr, (klogErr, rc,
-                "Failed to read table '$(name)'", "name=%s", name));
-        }
-    }
-    return rc;
-}
-
-static rc_t verify_mgr_table(VDBManager const *mgr, char const name[])
-{
-    VTable const *tbl;
-    VSchema *sra_schema = NULL;
-    
-    for ( ; ; ) {
-        rc_t rc = VDBManagerOpenTableRead(mgr, &tbl, sra_schema, name);
-        VSchemaRelease(sra_schema);
-        if (rc == 0) {
-            rc = verify_table(tbl, name);
-            VTableRelease(tbl);
-            return rc;
-        }
-        else if (GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcSchema
-            && sra_schema == NULL)
-        {
-            rc = VDBManagerMakeSRASchema(mgr, &sra_schema);
-            if (rc) {
-                (void)PLOGERR(klogErr, (klogErr, rc,
-                    "Failed to open table '$(name)'", "name=%s", name));
-                return rc;
-            }
-        }
-        else {
-            (void)PLOGERR(klogErr, (klogErr, rc,
-                "Failed to open table '$(name)'", "name=%s", name));
-            return rc;
-        }
-    }
-}
-
-#if 0
-static rc_t verify_db_table(VDatabase const *db, char const name[])
-{
-    VTable const *tbl;
-    rc_t rc = VDatabaseOpenTableRead(db, &tbl, name);
-    
-    if (rc == 0) {
-        rc = verify_table(tbl, name);
-        VTableRelease(tbl);
-    }
-    else {
-        (void)PLOGERR(klogErr, (klogErr, rc,
-            "Failed to open table '$(name)'", "name=%s", name));
-    }
-    return rc;
-}
-
-static rc_t align_dbcc_primary_alignment(VTable const *tbl, char const name[])
-{
-    VCursor const *curs;
-    rc_t rc = VTableCreateCursorRead(tbl, &curs);
-    
-    if (rc == 0) {
-        static char const *const cn_SAM[] = {
-            "SEQ_NAME",
-            "SAM_FLAGS",
-            "REF_NAME",
-            "REF_POS",
-            "MAPQ",
-            "HAS_MISMATCH",
-            "HAS_REF_OFFSET",
-            "REF_OFFSET",
-            "MATE_REF_NAME",
-            "MATE_REF_POS",
-            "TEMPLATE_LEN",
-            "READ",
-            "QUALITY"
-        };
-        unsigned const n = sizeof(cn_SAM)/sizeof(cn_SAM[0]);
-        ColumnInfo cols[sizeof(cn_SAM)/sizeof(cn_SAM[0])];
-        unsigned i;
-        
-        memset(cols, 0, sizeof(cols));
-        for (i = 0; i < n; ++i) {
-            cols[i].name = cn_SAM[i];
-            VCursorAddColumn(curs, &cols[i].idx, cols[i].name);
-        }
-        rc = VCursorOpen(curs);
-        if (rc == 0) {
-            rc = VCursorOpenRow(curs);
-            for (i = 0; i < n && rc == 0; ++i) {
-                VCursorCellData(curs, cols[i].idx, &cols[i].elem_bits,
-                    &cols[i].value.vp, NULL, &cols[i].elem_count);
-            }
-            for (i = 0; i < n && rc == 0; ++i) {
-                if (cols[i].idx == 0 || cols[i].elem_bits == 0) {
-                    (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(name)' "
-                        "could not be used to generate SAM", "name=%s", name));
-                    break;
-                }
-            }
-        }
-        VCursorRelease(curs);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc,
-            "Database '$(name)' is damaged beyond any use", "name=%s", name));
-    }
-    return rc;
-}
-#endif
-
-typedef struct id_pair_s {
-    int64_t first;
-    int64_t second;
-} id_pair_t;
-static int CC id_pair_cmp(void const *A, void const *B, void *ignored)
-{
-    id_pair_t const *a = A;
-    id_pair_t const *b = B;
-
-    return a->first < b->first
-        ? -1
-        : a->first == b->first
-            ? a->second < b->second
-                ? -1
-                : a->second == b->second ? 0 : 1
-            : 1;
-}
-
-static rc_t ric_align_ref_and_align(char const dbname[],
-                                    VTable const *ref,
-                                    VTable const *align,
-                                    int which)
-{
-    char const *const id_col_name = which == 0 ? "PRIMARY_ALIGNMENT_IDS"
-                                  : which == 1 ? "SECONDARY_ALIGNMENT_IDS"
-                                  : which == 2 ? "EVIDENCE_ALIGNMENT_IDS"
-                                  : NULL;
-    rc_t rc;
-    VCursor const *curs = NULL;
-    ColumnInfo ci;
-    int64_t startId;
-    uint64_t count;
-    
-    rc = VTableCreateCursorRead(align, &curs);
-    if (rc == 0) {
-        rc = VCursorAddColumn(curs, &ci.idx, "REF_ID");
-        if (rc == 0)
-            rc = VCursorOpen(curs);
-        if (rc == 0)
-            rc = VCursorIdRange(curs, ci.idx, &startId, &count);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': "
-            "alignment table can not be read", "name=%s", dbname));
-    }
-    else {
-        id_pair_t *const id_pair = malloc(sizeof(id_pair_t) * count);
-        
-        if (id_pair) {
-            uint64_t i;
-            uint64_t j;
-            
-            for (j = i = 0; i < count && rc == 0; ++i) {
-                int64_t const row = startId + i;
-                
-                rc = VCursorCellDataDirect(curs, row, ci.idx, &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                if (rc == 0) {
-                    if (ci.elem_count != 1) {
-                        rc = RC(rcExe, rcDatabase, rcValidating, rcData, rcUnexpected);
-                        (void)PLOGERR(klogErr, (klogErr, rc,
-                            "Database '$(name)': failed referential integrity "
-                            "check", "name=%s", dbname));
-                        break;
-                    }
-                    else {
-                        id_pair[j].second = row;
-                        id_pair[j].first = ci.value.i64[0];
-                        ++j;
-                    }
-                }
-                else if (GetRCObject(rc) == rcRow
-                    && GetRCState(rc) == rcNotFound)
-                {   rc = 0; }
-            }
-            VCursorRelease(curs); curs = NULL;
-            if (rc == 0) {
-                bool ooo_warned = false;
-                bool failed = false;
-                
-                ksort(id_pair, count, sizeof(id_pair_t), id_pair_cmp, NULL);
-                
-                rc = VTableCreateCursorRead(ref, &curs);
-                if (rc == 0)
-                    rc = VCursorAddColumn(curs, &ci.idx, id_col_name);
-                if (rc == 0)
-                    rc = VCursorOpen(curs);
-                if (rc == 0)
-                    rc = VCursorIdRange(curs, ci.idx, &startId, &count);
-                if (rc == 0) {
-                    for (i = j = 0; rc == 0 && i < count; ++i) {
-                        int64_t const row = startId + i;
-                        
-                        rc = VCursorCellDataDirect(curs, row, ci.idx,
-                            &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                        if (rc == 0) {
-                            unsigned k;
-                            int64_t prvId = ci.value.i64[0];
-                            
-                            for (k = 0; rc == 0 && k < ci.elem_count;
-                                ++k, ++j)
-                            {
-                                int64_t const alignId = ci.value.i64[k];
-                                
-                                if (!ooo_warned && prvId > alignId) {
-                                    (void)PLOGMSG(klogWarn, (klogWarn,
-                                        "Database '$(name)': "
-                                        "column '$(idcol)' is not ordered",
-                                        "name=%s,idcol=%s",
-                                        dbname, id_col_name));
-                                    ooo_warned = true;
-                                }
-                                if (id_pair[j].first != row) {
-                                    if (!failed) {
-                                        rc = RC(rcExe, rcDatabase, rcValidating,
-                                            rcData, rcInconsistent);
-                                        (void)PLOGERR(klogErr, (klogErr, rc,
- "Database '$(name)': column '$(idcol)' failed referential integrity check",
- "name=%s,idcol=%s", dbname, id_col_name));
-                                    }
-                                    failed = true;
-                                }
-                                else if (id_pair[j].second != alignId) {
-                                    if (!ooo_warned) {
-                                        (void)PLOGMSG(klogWarn, (klogWarn,
- "Database '$(name)': column '$(idcol)' might fail referential integrity check",
- "name=%s,idcol=%s", dbname, id_col_name));
-                                    }
-                                }
-                                prvId = alignId;
-                            }
-                        }
-                        else if (GetRCObject(rc) == rcRow
-                            && GetRCState(rc) == rcNotFound)
-                        {   rc = 0; }
-                    }
-                    if (!failed && i < count) {
-                        rc = RC(rcExe, rcDatabase, rcValidating,
-                            rcData, rcInconsistent);
-                        (void)PLOGERR(klogErr, (klogErr, rc,
-                            "Database '$(name)': column '$(idcol)' failed "
-                            "referential integrity check",
-                            "name=%s,idcol=%s", dbname, id_col_name));
-                    }
-                }
-                else
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': "
-                        "reference table can not be read", "name=%s", dbname));
-            }
-            free(id_pair);
-            VCursorRelease(curs);
-        }
-        else {
-            rc = RC(rcExe, rcDatabase, rcValidating, rcMemory, rcExhausted);
-            (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': "
-                "referential integrity could not be checked",
-                "name=%s", dbname));
-        }
-    }
-    return rc;
-}
-
-static rc_t ric_align_seq_and_pri(char const dbname[],
-                                  VTable const *seq,
-                                  VTable const *pri)
-{
-    rc_t rc;
-    VCursor const *curs = NULL;
-    ColumnInfo ci;
-    int64_t startId;
-    uint64_t count;
-    
-    rc = VTableCreateCursorRead(pri, &curs);
-    if (rc == 0) {
-        rc = VCursorAddColumn(curs, &ci.idx, "SEQ_SPOT_ID");
-        if (rc == 0)
-            rc = VCursorOpen(curs);
-        if (rc == 0)
-            rc = VCursorIdRange(curs, ci.idx, &startId, &count);
-    }
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': "
-            "alignment table can not be read", "name=%s", dbname));
-    }
-    else {
-        id_pair_t *const id_pair = malloc(sizeof(id_pair_t) * count);
-
-        if (id_pair) {
-            uint64_t i;
-            uint64_t j;
-            
-            for (j = i = 0; i < count && rc == 0; ++i) {
-                int64_t const row = startId + i;
-                
-                rc = VCursorCellDataDirect(curs, row, ci.idx,
-                    &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                if (rc == 0) {
-                    if (ci.elem_count != 1) {
-                        rc = RC(rcExe, rcDatabase, rcValidating,
-                            rcData, rcUnexpected);
-                        (void)PLOGERR(klogErr, (klogErr, rc,
-                            "Database '$(name)': failed "
-                            "referential integrity check", "name=%s", dbname));
-                        break;
-                    }
-                    else {
-                        id_pair[j].second = row;
-                        id_pair[j].first = ci.value.i64[0];
-                        ++j;
-                    }
-                }
-                else if (GetRCObject(rc) == rcRow
-                    && GetRCState(rc) == rcNotFound)
-                {   rc = 0; }
-            }
-            VCursorRelease(curs); curs = NULL;
-            if (rc == 0) {
-                ksort(id_pair, count, sizeof(id_pair_t), id_pair_cmp, NULL);
-                
-                rc = VTableCreateCursorRead(seq, &curs);
-                if (rc == 0)
-                    rc = VCursorAddColumn(curs, &ci.idx,
-                        "PRIMARY_ALIGNMENT_ID");
-                if (rc == 0)
-                    rc = VCursorOpen(curs);
-                if (rc == 0) {
-                    for (i = 0; rc == 0 && i < count; ++i) {
-                        int64_t const row = id_pair[i].first;
-                        int64_t const alignId = id_pair[i].second;
-                        
-                        rc = VCursorCellDataDirect(curs, row, ci.idx,
-                            &ci.elem_bits, &ci.value.vp, NULL, &ci.elem_count);
-                        if (rc == 0) {
-                            bool found = false;
-                            
-                            for (j = 0; j < ci.elem_count; ++j)
-                                found |= (alignId == ci.value.i64[j]);
-                            
-                            if (!found) {
-                                rc = RC(rcExe, rcDatabase, rcValidating,
-                                    rcData, rcInconsistent);
-                                (void)PLOGERR(klogErr, (klogErr, rc,
-  "Database '$(name)': column 'SEQ_SPOT_ID' failed referential integrity check",
-  "name=%s", dbname));
-                            }
-                        }
-                        else if (GetRCObject(rc) == rcRow
-                            && GetRCState(rc) == rcNotFound)
-                        {
-                            rc = RC(rcExe, rcDatabase, rcValidating,
-                                rcData, rcInconsistent);
-                            (void)PLOGERR(klogErr, (klogErr, rc,
-  "Database '$(name)': column 'SEQ_SPOT_ID' failed referential integrity check",
-  "name=%s", dbname));
-                        }
-                        else {
-                            (void)PLOGERR(klogErr, (klogErr, rc,
-  "Database '$(name)': sequence table can not be read", "name=%s", dbname));
-                        }
-                    }
-                }
-                else
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': "
-                        "sequence table can not be read", "name=%s", dbname));
-            }
-            free(id_pair);
-        }
-        else {
-            rc = RC(rcExe, rcDatabase, rcValidating, rcMemory, rcExhausted);
-            (void)PLOGERR(klogErr, (klogErr, rc, "Database '$(name)': "
-                "referential integrity could not be checked",
-                "name=%s", dbname));
-        }
-        VCursorRelease(curs);
-    }
-    return rc;
-}
-
-/* database referential integrity check for alignment database */
-static rc_t dbric_align(char const dbname[],
-                        VTable const *pri,
-                        VTable const *seq,
-                        VTable const *ref)
-{
-    rc_t rc = 0;
-    
-    if ((rc == 0 || exhaustive) && (pri != NULL && seq != NULL)) {
-        rc_t rc2 = ric_align_seq_and_pri(dbname, seq, pri);
-        
-        if (rc2 == 0) {
-            (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(dbname)': "
-               "SEQUENCE.PRIMARY_ALIGNMENT_ID <-> PRIMARY_ALIGNMENT.SEQ_SPOT_ID"
-               " referential integrity ok", "dbname=%s", dbname));
-        }
-        if (rc == 0) {
-            rc = rc2;
-        }
-    }
-    if ((rc == 0 || exhaustive) && (pri != NULL && ref != NULL)) {
-        rc_t rc2 = ric_align_ref_and_align(dbname, ref, pri, 0);
-        
-        if (rc2 == 0) {
-            (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(dbname)': "
-                "REFERENCE.PRIMARY_ALIGNMENT_IDS <-> PRIMARY_ALIGNMENT.REF_ID "
-                "referential integrity ok", "dbname=%s", dbname));
-        }
-        if (rc == 0) {
-            rc = rc2;
-        }
-    }
-    return rc;
-}
-
-
-static rc_t verify_database_align(VDatabase const *db,
-    char const name[], node_t const nodes[], char const names[])
-{
-    rc_t rc = 0;
-    unsigned tables = 0;
-    node_t const *tbl = &nodes[nodes[0].firstChild];
-    enum table_bits {
-        tbEvidenceInterval   = ( 1u << 0 ),
-        tbEvidenceAlignment  = ( 1u << 1 ),
-        tbPrimaryAlignment   = ( 1u << 2 ),
-        tbReference          = ( 1u << 3 ),
-        tbSequence           = ( 1u << 4 ),
-        tbSecondaryAlignment = ( 1u << 5 )
-    };
-    
-    if (nodes[0].firstChild) {
-        for ( ; ; ) {
-            char const *tname = &names[tbl->name];
-            unsigned this_table = 0;
-            
-            if (tbl->objType == kptTable) {
-                switch (tname[0]) {
-                case 'E':
-                    if (strcmp(tname, "EVIDENCE_INTERVAL") == 0)
-                        this_table |= tbEvidenceInterval;
-                    else if (strcmp(tname, "EVIDENCE_ALIGNMENT") == 0)
-                        this_table |= tbEvidenceAlignment;
-                    break;
-                case 'P':
-                    if (strcmp(tname, "PRIMARY_ALIGNMENT") == 0)
-                        this_table |= tbPrimaryAlignment;
-                    break;
-                case 'R':
-                    if (strcmp(tname, "REFERENCE") == 0)
-                        this_table |= tbReference;
-                    break;
-                case 'S':
-                    if (strcmp(tname, "SEQUENCE") == 0)
-                        this_table |= tbSequence;
-                    else if (strcmp(tname, "SECONDARY_ALIGNMENT") == 0)
-                        this_table |= tbSecondaryAlignment;
-                    break;
-                }
-                if (this_table == 0) {
-                    (void)PLOGERR(klogWarn, (klogWarn, RC(
-                        rcExe, rcDatabase, rcValidating, rcTable, rcUnexpected),
-                      "Database '$(name)' contains unexpected table '$(table)'",
-                      "name=%s,table=%s", name, tname));
-                }
-                tables |= this_table;
-            }
-            else {
-                (void)PLOGERR(klogWarn, (klogWarn, RC(
-                    rcExe, rcDatabase, rcValidating, rcType, rcUnexpected),
-                    "Database '$(name)' contains unexpected object '$(obj)'",
-                    "name=%s,obj=%s", name, tname));
-            }
-            if (tbl->nxtSibl > 0)
-                tbl = &nodes[tbl->nxtSibl];
-            else
-                break;
-        }
-    }
-    if (tables == tbSequence) {
-        /* sequence data only */
-        (void)PLOGMSG(klogInfo, (klogInfo, "Database '$(name)' "
-            "contains only unaligned reads", "name=%s", name));
-    }
-    else if (   (tables & tbReference) == 0
-             || (tables & tbPrimaryAlignment) == 0)
-    {
-        /* missing reference or primary alignment */
-        rc = RC(rcExe, rcDatabase, rcValidating, rcDatabase, rcIncomplete);
-        (void)PLOGERR(klogWarn, (klogWarn, rc,
-            "Database '$(name)' does not contain all required tables",
-            "name=%s", name));
-    }
-    else if (   ((tables & tbEvidenceAlignment) != 0)
-             != ((tables & tbEvidenceInterval ) != 0))
-    {
-        /* both must be present or both must be absent */
-        rc = RC(rcExe, rcDatabase, rcValidating, rcDatabase, rcIncomplete);
-        (void)PLOGERR(klogWarn, (klogWarn, rc,
-            "Database '$(name)' does not contain all required tables",
-            "name=%s", name));
-    }
-    while (ref_int_check) {
-        VTable const *pri = NULL;
-        VTable const *seq = NULL;
-        VTable const *ref = NULL;
-        
-        if ((tables & tbPrimaryAlignment) != 0) {
-            rc = VDatabaseOpenTableRead(db, &pri, "PRIMARY_ALIGNMENT");
-            if (rc) break;
-        }
-        if ((tables & tbSequence) != 0) {
-            rc = VDatabaseOpenTableRead(db, &seq, "SEQUENCE");
-            if (rc) break;
-        }
-        if ((tables & tbReference) != 0) {
-            rc = VDatabaseOpenTableRead(db, &ref, "REFERENCE");
-            if (rc) break;
-        }
-        rc = dbric_align(name, pri, seq, ref);
-        break;
-    }
-    return rc;    
-}
-
-static rc_t verify_database(VDatabase const *db,
-    char const name[], node_t const nodes[], char const names[])
-{
-    char schemaName[1024];
-    char *schemaVers = NULL;
-    rc_t rc;
-    
-    rc = get_db_schema_info(db, schemaName, sizeof(schemaName), &schemaVers);
-    if (rc) {
-        (void)PLOGERR(klogErr, (klogErr, rc,
-            "Failed to find database schema for '$(name)'", "name=%s", name));
-    }
-    else if (strncmp(schemaName, "NCBI:var:db:", 12) == 0) {
-        /* TODO: verify NCBI:var:db:* */
-    }
-    else if (strncmp(schemaName, "NCBI:WGS:db:", 12) == 0) {
-        /* TODO: verify NCBI:WGS:db:* */
-    }
-    else if (strncmp(schemaName, "NCBI:align:db:", 14) == 0) {
-        rc = verify_database_align(db, name, nodes, names);
-    }
-    else if (strcmp(schemaName, "NCBI:SRA:PacBio:smrt:db") == 0) {
-        /* TODO: verify NCBI:SRA:PacBio:smrt:db */
-    }
-    else {
-        (void)PLOGERR(klogWarn, (klogWarn,
-            RC(rcExe, rcDatabase, rcValidating, rcType, rcUnrecognized),
-            "Database '$(name)' has unrecognized type '$(type)'",
-            "name=%s,type=%s", name, schemaName));
-    }
-    return rc;
-}
-
-static rc_t verify_mgr_database(VDBManager const *mgr,
-    char const name[], node_t const nodes[], char const names[])
-{
-    VDatabase const *child;
-    rc_t rc = VDBManagerOpenDBRead(mgr, &child, NULL, name);
-    
-    if (rc == 0) {
-        rc = verify_database(child, name, nodes, names);
-        VDatabaseRelease(child);
-    }
-
-    return rc;
-}
-
-static rc_t sra_dbcc(const VDBManager *mgr,
-    char const name[], node_t const nodes[], char const names[])
-{
-    rc_t rc;
-
-    if (nodes[0].objType == kptDatabase)
-        rc = verify_mgr_database(mgr, name, nodes, names);
-    else
-        rc = verify_mgr_table(mgr, name);
-    
-    return rc;
-}
-
-static
-rc_t get_platform(const VDBManager *mgr,
-    const VTable *aTbl, char const name[],
-    INSDC_SRA_platform_id *platform)
-{
-    rc_t rc = 0;
-    const VTable *tbl = aTbl;
-    assert(name && platform);
-    if (tbl == NULL) {
-        VSchema *sra_schema = NULL;
-        for ( ; rc == 0; ) {
-            rc = VDBManagerOpenTableRead(mgr, &tbl, sra_schema, name);
-            VSchemaRelease(sra_schema);
-            if (rc == 0) {
-                rc = VTable_get_platform(tbl, platform);
-                break;
-            }
-            else if (GetRCState(rc) == rcNotFound && GetRCObject(rc) == rcSchema
-                && sra_schema == NULL)
-            {
-                rc = VDBManagerMakeSRASchema(mgr, &sra_schema);
-            }
-        }
-    }
-
-    if (aTbl == NULL)
-        VTableRelease(tbl);
-
-    return rc;
-}
-
-typedef struct vdb_validate_params vdb_validate_params;
-struct vdb_validate_params
-{
-    const KDirectory *wd;
-    const KDBManager *kmgr;
-    const VDBManager *vmgr;
-
-    bool md5_chk;
-    bool md5_chk_explicit;
-    bool blob_crc;
-    bool index_chk;
-};
-
-static
-rc_t dbcc ( const vdb_validate_params *pb, const char *path, bool is_file )
-{
-    char *names;
-    KPathType pathType;
-    node_t *nodes = NULL;
-    const char *obj_type, *obj_name;
-
-    rc_t rc = init_dbcc ( pb -> wd, path, is_file, & nodes, & names, & pathType );
-    if ( rc == 0 )
-    {
-        /* construct mode */
-        uint32_t mode = ( pb -> md5_chk ? 1 : 0 )
-                      | ( pb -> blob_crc ? 2 : 0 )
-                      | ( pb -> index_chk ? 4 : 0 )
-                      ;
-
-        INSDC_SRA_platform_id platform = SRA_PLATFORM_UNDEFINED;
-        get_platform ( pb -> vmgr, NULL, path, & platform );
-
-        /* check as kdb object */
-        rc = kdbcc ( pb -> kmgr, path, mode, & pathType, is_file, nodes, names, platform );
-        if ( rc == 0 )
-            rc = vdbcc ( pb -> vmgr, path, mode, & pathType, is_file );
-        if ( rc == 0 )
-            rc = sra_dbcc ( pb -> vmgr, path, nodes, names );
-    }
-
-    obj_type = ( pathType == kptDatabase ) ? "Database" : "Table";
-    obj_name = strrchr ( path, '/' );
-    if ( obj_name ++ == NULL )
-        obj_name = path;
-
-    if ( rc != 0 )
-    {
-        PLOGERR ( klogErr, ( klogErr, rc,
-                             "$(objType) '$(objName)' check failed"
-                             , "objType=%s,objName=%s"
-                             , obj_type, obj_name ) );
-    }
-    else
-    {
-        PLOGMSG ( klogInfo, ( klogInfo,
-                              "$(objType) '$(objName)' is consistent"
-                             , "objType=%s,objName=%s"
-                             , obj_type, obj_name ) );
-    }
-
-    free ( nodes );
-    return rc;
-}
-
-static
-const char *generate_relpath ( const vdb_validate_params *pb, const KDirectory *dir,
-    char *buffer, size_t bsize, const char *path )
-{
-    if ( dir != pb -> wd )
-    {
-        char full [ 4096 ];
-        rc_t rc = KDirectoryResolvePath ( dir, true, full, sizeof full, path );
-        if ( rc == 0 )
-        {
-            rc = KDirectoryResolvePath ( pb -> wd, false, buffer, bsize, full );
-            if ( rc == 0 )
-                path = buffer;
-        }
-    }
-
-    return path;
-}
-
-static
-rc_t vdb_validate_file ( const vdb_validate_params *pb, const KDirectory *dir, const char *path )
-{
-    char buffer [ 4096 ];
-    const char *relpath = generate_relpath ( pb, dir, buffer, sizeof buffer, path );
-
-    const KFile *f;
-    rc_t rc = KDirectoryOpenFileRead ( dir, & f, path );
-    if ( rc != 0 )
-        PLOGERR ( klogErr, ( klogErr, rc, "File '$(fname)' could not be opened", "fname=%s", relpath ) );
-    else
-    {
-        bool is_sra = false;
-        enum EEncrypted {
-            eNo,
-            eEncrypted,
-            eWGA
-        } encrypted = eNo;
-
-        size_t num_read;
-        char buffer [ 4096 ];
-        rc = KFileReadAll ( f, 0, buffer, sizeof buffer, & num_read );
-        if ( rc != 0 )
-            PLOGERR ( klogErr, ( klogErr, rc, "File '$(fname)' could not be read", "fname=%s", relpath ) );
-        else {
-            /* special kludge to prevent code from looking too far at header */
-            size_t hdr_bytes = num_read;
-            if ( num_read > 8 )
-                hdr_bytes = 8;
-
-            /* check for encrypted file */
-            if ( KFileIsEnc ( buffer, hdr_bytes ) == 0 ) {
-                encrypted = eEncrypted;
-            }
-            else if ( KFileIsWGAEnc ( buffer, hdr_bytes ) == 0 ) {
-                encrypted = eWGA;
-            }
-
-            if (encrypted != eNo) {
-                PLOGMSG ( klogInfo, ( klogInfo,
-                    "Validating $(type)encrypted file '$(fname)'...",
-                    "type=%s,fname=%s",
-                    encrypted == eWGA ? "WGA " : " ", relpath ) );
-                switch (encrypted) {
-                    case eEncrypted:
-                        rc = KEncFileValidate(f);
-                        break;
-                    case eWGA: {
-                        VFSManager *mgr = NULL;
-                        rc = VFSManagerMake(&mgr);
-                        if (rc != 0) {
-                            LOGERR(klogInt, rc, "Cannot VFSManagerMake");
-                        }
-                        else {
-                            rc = VFSManagerWGAValidateHack(mgr, f, relpath);
-                        }
-                        VFSManagerRelease(mgr);
-                        break;
-                    }
-                    default:
-                        assert(0);
-                }
-                if ( rc != 0 ) {
-                    PLOGERR ( klogErr, ( klogErr, rc,
-                        "Encrypted file '$(fname)' could not be validated",
-                        "fname=%s", relpath ) );
-                }
-                else {
-                    PLOGMSG ( klogInfo, ( klogInfo,
-                        "Encrypted file '$(fname)' appears valid",
-                        "fname=%s", relpath ) );
-
-                    rc = EncFileReadAll ( relpath, buffer, sizeof buffer,
-                        & num_read );
-                    if ( rc == 0 && KFileIsSRA ( buffer, num_read ) == 0 )
-                        is_sra = true;
-                }
-            }
-            else if ( KFileIsSRA ( buffer, num_read ) == 0 ) {
-                is_sra = true;
-            }
-        }
-
-        KFileRelease ( f );
-
-        if ( rc == 0 && is_sra )
-            rc = dbcc ( pb, relpath, true );
-    }
-
-    return rc;
-}
-
-static
-rc_t vdb_validate_database ( const vdb_validate_params *pb, const KDirectory *dir, const char *path )
-{
-    char buffer [ 4096 ];
-    const char *relpath = generate_relpath ( pb, dir, buffer, sizeof buffer, path );
-    return dbcc ( pb, relpath, false );
-}
-
-static
-rc_t vdb_validate_table ( const vdb_validate_params *pb, const KDirectory *dir, const char *path )
-{
-    char buffer [ 4096 ];
-    const char *relpath = generate_relpath ( pb, dir, buffer, sizeof buffer, path );
-    return dbcc ( pb, relpath, false );
-}
-
-static
-KPathType vdb_subdir_type ( const vdb_validate_params *pb, const KDirectory *dir, const char *name )
-{
-    char full [ 4096 ];
-    rc_t rc = KDirectoryResolvePath ( dir, true, full, sizeof full, name );
-    if ( rc == 0 )
-    {
-        switch ( KDBManagerPathType ( pb -> kmgr, full ) )
-        {
-        case kptDatabase:
-            return kptDatabase;
-        case kptTable:
-            return kptTable;
-        }
-    }
-    return kptDir;
-}
-
-static
-rc_t CC vdb_validate_dir ( const KDirectory *dir, uint32_t type, const char *name, void *data )
-{
-    switch ( type & ~ kptAlias )
-    {
-    case kptFile:
-        return vdb_validate_file ( data, dir, name );
-    case kptDir:
-        switch ( vdb_subdir_type ( data, dir, name ) )
-        {
-        case kptDatabase:
-            return vdb_validate_database ( data, dir, name );
-        case kptTable:
-            return vdb_validate_table ( data, dir, name );
-        default:
-            return KDirectoryVisit ( dir, false, vdb_validate_dir, data, name );
-        }
-    }
-
-    return 0;
-}
-
-static rc_t vdb_validate(const vdb_validate_params *pb, const char *aPath) {
-    bool bad = false;
-    const String *local = NULL;
-    VFSManager *mgr = NULL;
-    VResolver *resolver = NULL;
-    const char *path = aPath;
-    KPathType pt = kptNotFound;
-
-    rc_t rc = VFSManagerMake(&mgr);
-    if (rc != 0) {
-        LOGERR(klogInt, rc, "Cannot VFSManagerMake");
-        return rc;
-    }
-
-    rc = VFSManagerGetResolver(mgr, &resolver);
-    if (rc != 0) {
-        LOGERR(klogInt, rc, "Cannot VFSManagerGetResolver");
-    }
-    else {
-        VResolverRemoteEnable(resolver, vrAlwaysDisable);
-    }
-
-    RELEASE(VFSManager, mgr);
-
-    /* what type of thing is this path? */
-    pt = KDirectoryPathType(pb->wd, path);
-
-    if ((pt & ~kptAlias) == kptNotFound) {
-        const VPath *pLocal = NULL;
-        VPath *acc = NULL;
-        bad = true;
-        rc = VPathMake(&acc, path);
-        if (rc != 0) {
-            PLOGERR(klogErr, (klogErr, rc,
-                "VPathMake($(path)) failed", PLOG_S(path), path));
-        }
-        else {
-            rc = VResolverLocal(resolver, acc, &pLocal);
-        }
-
-        if (rc == 0) {
-            rc = VPathMakeString(pLocal, &local);
-            if (rc != 0) {
-                PLOGERR(klogErr, (klogErr, rc,
-                    "VPathMake(local $(path)) failed", PLOG_S(path), path));
-            }
-        }
-
-        if (rc == 0) {
-            path = local->addr;
-            PLOGMSG(klogInfo, (klogInfo,
-                "Validating '$(path)'...", PLOG_S(path), path));
-            pt = KDirectoryPathType(pb -> wd, path);
-            bad = false;
-        }
-
-        RELEASE(VPath, acc);
-        RELEASE(VPath, pLocal);
-    }
-    RELEASE(VResolver, resolver);
-
-    if (rc == 0) {
-        switch (pt & ~kptAlias) {
-            case kptNotFound:
-                rc = RC(rcExe, rcPath, rcValidating, rcPath, rcNotFound);
-                bad = true;
-                break;
-            case kptBadPath:
-                rc = RC(rcExe, rcPath, rcValidating, rcPath, rcInvalid);
-                bad = true;
-                break;
-            case kptFile:
-                rc = vdb_validate_file(pb, pb->wd, path);
-                break;
-            case kptDir:
-                switch(KDBManagerPathType (pb->kmgr, path)) {
-                    case kptDatabase:
-                        rc = vdb_validate_database(pb, pb->wd, path);
-                        break;
-                    case kptTable:
-                    case kptPrereleaseTbl:
-                        rc = vdb_validate_table(pb, pb->wd, path);
-                        break;
-                    case kptIndex:
-                    case kptColumn:
-                        rc = RC(rcExe, rcPath, rcValidating,
-                            rcType, rcUnsupported);
-                        bad = true;
-                        break;
-                    default:
-                        rc = KDirectoryVisit(pb -> wd, false,
-                            vdb_validate_dir, (void*)pb, path);
-                        break;
-                }
-                break;
-            default:
-                break;
-        }
-    }
-
-    free((void*)local);
-
-    if (bad) {
-        PLOGMSG ( klogWarn, ( klogWarn,
-            "Path '$(fname)' could not be validated", "fname=%s", path ) );
-    }
-
-    return rc;
-}
-
-static char const* const defaultLogLevel = 
-#if _DEBUGGING
-"debug5";
-#else
-"info";
-#endif
-
-/******************************************************************************
- * Usage
- ******************************************************************************/
-const char UsageDefaultName[] = "vdb-validate";
-
-rc_t CC UsageSummary(const char *prog_name)
-{
-    return KOutMsg ( "Usage: %s [options] path [ path... ]\n"
-                     "\n"
-                     , prog_name );
-}
-
-static char const *help_text[] = 
-{
-    "Check components md5s if present, "
-            "fail unless other checks are requested (default: yes)", NULL,
-    "Check blobs CRC32 (default: no)", NULL,
-    "Check 'skey' index (default: no)", NULL,
-    "Continue checking object for all possible errors (default: no)", NULL,
-    "Check data referential integrity for databases (default: no)", NULL,
-    "Check index-only with blobs CRC32 (default: no)", NULL
-};
-
-static OptDef options [] = 
-{
-    { "md5"       , "5", NULL, &help_text[0], 1, false, false }
-  , { "blob-crc"  , "b", NULL, &help_text[2], 1, false, false }
-#if CHECK_INDEX
-  , { "index"     , "i", NULL, &help_text[4], 1, false, false }
-#endif
-  , { "exhaustive", "x", NULL, &help_text[6], 1, false, false }
-  , { "referential-integrity", "d", NULL, &help_text[8], 1, false, false }
-
-    /* should be the last ones here: not printed by --help */
-  , { "dri"       , NULL, NULL, &help_text[8], 1, false, false }
-  , { "index-only",NULL, NULL, &help_text[10], 1, false, false }
-};
-
-#define NUM_SILENT_TRAILING_OPTIONS 2
-
-static const char *option_params [] =
-{
-    NULL
-  , NULL
-#if CHECK_INDEX
-  , NULL
-#endif
-  , NULL
-  , NULL
-  , NULL
-  , NULL
-};
-
-rc_t CC Usage ( const Args * args )
-{
-    uint32_t i;
-    const char *progname, *fullpath;
-    rc_t rc = ArgsProgram ( args, & fullpath, & progname );
-    if ( rc != 0 )
-        progname = fullpath = UsageDefaultName;
-    
-    UsageSummary ( progname );
-    
-    KOutMsg ( "  Examine directories, files and VDB objects,\n"
-              "  reporting any problems that can be detected.\n"
-              "\n"
-              "Options:\n"
-        );
-
-#define NUM_LISTABLE_OPTIONS \
-    ( sizeof options / sizeof options [ 0 ] - NUM_SILENT_TRAILING_OPTIONS )
-
-    for ( i = 0; i < NUM_LISTABLE_OPTIONS; ++i )
-    {
-        HelpOptionLine ( options [ i ] . aliases, options [ i ] . name,
-            option_params [ i ], options [ i ] . help );
-    }
-    
-    HelpOptionsStandard ();
-    
-    HelpVersion ( fullpath, KAppVersion () );
-    
-    return 0;
-}
-
-uint32_t CC KAppVersion ( void )
-{
-    return VDB_VALIDATE_VERS;
-}
-
-static
-rc_t parse_args ( vdb_validate_params *pb, Args *args )
-{
-    rc_t rc;
-    uint32_t cnt;
-
-    pb -> md5_chk = true;
-
-    rc = ArgsOptionCount ( args, "md5", & cnt );
-    if ( rc != 0 )
-        return rc;
-    pb -> md5_chk_explicit = md5_required = cnt != 0;
-
-    rc = ArgsOptionCount ( args, "blob-crc", & cnt );
-    if ( rc != 0 )
-        return rc;
-    pb -> blob_crc = cnt != 0;
-
-    rc = ArgsOptionCount ( args, "exhaustive", & cnt );
-    if ( rc != 0 )
-        return rc;
-    exhaustive = cnt != 0;
-
-    rc = ArgsOptionCount ( args, "referential-integrity", & cnt );
-    if ( rc != 0 )
-        return rc;
-    ref_int_check = cnt != 0;
-
-    rc = ArgsOptionCount ( args, "dri", & cnt );
-    if ( rc != 0 )
-        return rc;
-    ref_int_check = cnt != 0;
-
-#if CHECK_INDEX
-    rc = ArgsOptionCount ( args, "index", & cnt );
-    if ( rc != 0 )
-        return rc;
-    pb -> index_chk = cnt != 0;
-#endif
-
-    rc = ArgsOptionCount ( args, "index-only", & cnt );
-    if ( rc != 0 )
-        return rc;
-    if ( cnt != 0 )
-        s_IndexOnly = pb -> blob_crc = true;
-
-    if ( pb -> blob_crc || pb -> index_chk )
-        pb -> md5_chk = pb -> md5_chk_explicit;
-
-    return 0;
-}
-
-static
-void vdb_validate_params_whack ( vdb_validate_params *pb )
-{
-    VDBManagerRelease ( pb -> vmgr );
-    KDBManagerRelease ( pb -> kmgr );
-    KDirectoryRelease ( pb -> wd );
-    memset ( pb, 0, sizeof * pb );
-}
-
-static
-rc_t vdb_validate_params_init ( vdb_validate_params *pb )
-{
-    rc_t rc;
-    KDirectory *wd;
-
-    memset ( pb, 0, sizeof * pb );
-
-    rc = KDirectoryNativeDir ( & wd );
-    if ( rc == 0 )
-    {
-        pb -> wd = wd;
-        rc = VDBManagerMakeRead ( & pb -> vmgr, wd );
-        if ( rc == 0 )
-        {
-            rc = VDBManagerOpenKDBManagerRead ( pb -> vmgr, & pb -> kmgr );
-            if ( rc == 0 )
-                return 0;
-        }
-    }
-
-    vdb_validate_params_whack ( pb );
-    return rc;
-}
-
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args * args;
-    rc_t rc = ArgsMakeAndHandle ( & args, argc, argv, 1,
-        options, sizeof options / sizeof options [ 0 ] );
-    if ( rc != 0 )
-        LOGERR ( klogErr, rc, "Failed to parse command line" );
-    else
-    {
-        uint32_t pcount;
-        rc = ArgsParamCount ( args, & pcount );
-        if ( rc != 0 )
-            LOGERR ( klogErr, rc, "Failed to count command line parameters" );
-        else if ( argc <= 1 )
-        {
-            rc = RC ( rcExe, rcPath, rcValidating, rcParam, rcInsufficient );
-            MiniUsage ( args );
-        }
-        else if ( pcount == 0 )
-        {
-            rc = RC ( rcExe, rcPath, rcValidating, rcParam, rcInsufficient );
-            LOGERR ( klogErr, rc, "No paths to validate" );
-            MiniUsage ( args );
-        }
-        else
-        {
-            vdb_validate_params pb;
-            rc = vdb_validate_params_init ( & pb );
-            if ( rc != 0 )
-                LOGERR ( klogErr, rc, "Failed to initialize internal managers" );
-            else
-            {
-                rc = parse_args ( & pb, args );
-                if ( rc != 0 )
-                    LOGERR ( klogErr, rc, "Failed to extract command line options" );
-                else
-                {
-                    rc = KLogLevelSet ( klogInfo );
-                    if ( rc != 0 )
-                        LOGERR ( klogErr, rc, "Failed to set log level" );
-                    else
-                    {
-                        uint32_t i;
-                        for ( i = 0; i < pcount; ++ i )
-                        {
-                            rc_t rc2;
-                            const char *path;
-                            rc = ArgsParamValue ( args, i, & path );
-                            if ( rc != 0 )
-                            {
-                                LOGERR ( klogErr, rc, "Failed to extract command line options" );
-                                break;
-                            }
-
-                            rc2 = vdb_validate ( & pb, path );
-                            if ( rc == 0 )
-                                rc = rc2;
-                        }
-                    }
-                }
-
-                vdb_validate_params_whack ( & pb );
-            }
-        }
-
-        ArgsWhack ( args );
-    }
-
-    return rc;
-}
-
-
-
-
-
-#if 0
-
-
-rc_t CC KMain ( int argc, char *argv [] )
-{
-    Args * args;
-    char *src_dir_path = NULL;
-    char *src_path = NULL;
-    char *obj_name = NULL;
-    bool md5_chk = true, md5_chk_explicit = false;
-    bool blob_crc = false;
-    bool index_chk = false;
-    bool is_file = false;
-    const KDirectory *src_dir = NULL;
-    char path_buffer [ 4096 ];
-
-    rc_t rc = KLogLevelSet ( klogInfo );
-
-    if ( rc == 0 )
-    {
-        rc = ArgsMakeAndHandle ( & args, argc, argv, 1,
-            options, sizeof options / sizeof options [ 0 ] );
-    }
-    
-    while (rc == 0)
-    {
-        uint32_t pcount;
-        rc = ArgsParamCount(args, &pcount);
-        if ( rc != 0 )
-            break;
-
-        if (pcount == 1)
-        {
-            KDirectory *dir;
-            rc = KDirectoryNativeDir(&dir);
-            if (rc == 0)
-            {
-                char const *value;
-                
-                rc = ArgsParamValue (args, 0, &value); if (rc) break;
-                src_dir_path = string_dup_measure(value, NULL);
-                src_path = string_dup_measure(value, NULL);
-                obj_name = strrchr(src_dir_path, '/');
-                if ( obj_name != NULL && obj_name [ 1 ] == 0 )
-                {
-                    * obj_name = 0;
-                    obj_name = strrchr(src_dir_path, '/');
-                }
-                if (obj_name != NULL)
-                {
-                    if (obj_name == src_dir_path) {
-                        src_dir_path[0] = '/';
-                        src_dir_path[1] = '\0';
-                    }
-                    *obj_name++ = '\0';
-                }
-                else
-                {
-                    SRAPath *pmgr = NULL;
-
-                    /* check for accession */
-                    rc = SRAPathMake ( & pmgr, dir );
-                    if ( rc == 0 )
-                    {
-                        rc = SRAPathFind(pmgr,
-                            src_path, path_buffer, sizeof path_buffer);
-                        if ( rc == 0 )
-                        {
-                            /* use mapped path */
-                            free(src_path);
-                            src_path = string_dup_measure(path_buffer, NULL);
-                            free(src_dir_path);
-                            src_dir_path
-                                = string_dup_measure(path_buffer, NULL);
-                            obj_name = strrchr(src_dir_path, '/');
-                            if ( obj_name == NULL )
-                                obj_name = src_dir_path;
-                            else
-                            {
-                                if ( obj_name == src_dir_path ) {
-                                    src_dir_path[0] = '/';
-                                    src_dir_path[1] = '\0';
-                                }
-                                * obj_name ++ = '\0';
-                            }
-                        }
-                        
-                        (void)SRAPathRelease ( pmgr );
-                    }
-                    
-                    if ( rc != 0 )
-                    {
-                        /* appears to be a simple name */
-                        obj_name = string_dup_measure(src_dir_path, NULL);
-                        src_dir_path[0] = '.';
-                        src_dir_path[1] = '\0';
-                    }
-                }
-                
-                rc = KDirectoryOpenDirRead(dir, &src_dir, false, src_dir_path);
-                KDirectoryRelease(dir);
-                if (rc) {
-                    (void)PLOGERR(klogErr, (klogErr, rc,
-                        "Failed to open '$(dir)'", "dir=%s", src_dir_path));
-                    break;
-                }
-                else {
-                    uint32_t const obj_type = KDirectoryPathType(src_dir,
-                        obj_name) & (~((uint32_t)kptAlias));
-                    
-                    switch (obj_type) {
-                    case kptFile:
-                        is_file = true;
-                        break;
-                    default:
-                        break;
-                    }
-                }
-            }
-        }
-        else {
-            MiniUsage(args);
-            ArgsWhack(args);
-            exit(EXIT_FAILURE);
-        }
-        
-        rc = ArgsOptionCount(args, "md5", &pcount); if (rc) break;
-        md5_chk_explicit = md5_required = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
-        }
-        
-        rc = ArgsOptionCount(args, "blob-crc", &pcount); if (rc) break;
-        blob_crc = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
-        }
-        
-        rc = ArgsOptionCount(args, "exhaustive", &pcount); if (rc) break;
-        exhaustive = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
-        }
-        
-        rc = ArgsOptionCount(args, "dri", &pcount); if (rc) break;
-        ref_int_check = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
-        }
-        
-#if CHECK_INDEX
-        rc = ArgsOptionCount(args, "index", &pcount); if (rc) break;
-        index_chk = (pcount == 1);
-        if (pcount > 1) {
-            KOutMsg("argument given too many times\n");
-            MiniUsage(args);
-            break;
-        }
-#endif
-
-        rc = ArgsOptionCount(args, "index-only", &pcount);
-        if (rc) {
-            break;
-        }
-        if (pcount > 0) {
-            s_IndexOnly = blob_crc = true;
-        }
-            
-
-        if (blob_crc || index_chk)
-        {
-            /* if blob or index is requested,
-               md5 is off unless explicitly requested */
-            md5_chk = md5_chk_explicit;
-        }
-        
-        {
-            KPathType pathType = kptBadPath;
-            Bool enc = false;
-            rc = dbcc(src_path, src_dir, obj_name,
-                      (md5_chk ? 1 : 0)|(blob_crc ? 2 : 0)|(index_chk ? 4 : 0),
-                      & pathType, is_file, &enc);
-            if ( pathType == kptDatabase )
-            {
-                if (rc != 0) {
-                    (void)PLOGERR(klogErr, (klogErr, rc,
-                                            "Database '$(db)' check failed", PLOG_S(db), obj_name));
-                }
-                else {
-                    (void)PLOGMSG(klogInfo, (klogInfo,
-                                             "Database '$(db)' is consistent", PLOG_S(db), obj_name));
-                }
-            }
-            else if ( pathType == kptTable )
-            {
-                if (rc != 0) {
-                    (void)PLOGERR(klogErr, (klogErr, rc, "Table '$(table)' "
-                                            "check failed", PLOG_S(table), obj_name));
-                }
-                else {
-                    (void)PLOGMSG(klogInfo, (klogInfo, "Table '$(table)' "
-                                             "is consistent", PLOG_S(table), obj_name));
-                }
-            }
-            else if (pathType != kptFile)
-            {
-                if (rc != 0) {
-                    if (UIError(rc, NULL, NULL)) {
-                        const char *c = UIDatabaseGetErrorString(rc);
-                        if (c != NULL)
-                        {   (void)LOGMSG(klogInfo, c); }
-                        else {
-                            (void)PLOGERR(klogErr, (klogErr, rc, "'$(table)' "
-                                                    "check failed", PLOG_S(table), obj_name));
-                        }
-                        if (enc) {
-                            rc = 0;
-                            (void)PLOGMSG(klogInfo, (klogInfo, "File '$(f)' "
-                                                     "is consistent", PLOG_S(f), obj_name));
-                        }
-                        else {
-                            (void)PLOGERR(klogErr, (klogErr, rc, "File '$(f)'"
-                                                    " check failed", PLOG_S(f), obj_name));
-                        }
-                    }
-                }
-                else {
-                    rc = RC(rcExe, rcPath, rcValidating, rcType, rcUnknown);
-                    (void)PLOGERR(klogErr, (klogErr, rc,
-                                            "Object $(table)' check failed: it has un unknown type",
-                                            PLOG_S(table), obj_name));
-                }
-            }
-        }
-        break;
-    }
-    
-    free(src_path);
-    KDirectoryRelease(src_dir);
-    
-    return rc;
-}
-
-#endif
diff --git a/tools/vdb-validate/vdb-validate.vers b/tools/vdb-validate/vdb-validate.vers
deleted file mode 100644
index f90b1af..0000000
--- a/tools/vdb-validate/vdb-validate.vers
+++ /dev/null
@@ -1 +0,0 @@
-2.3.2

-- 
Alioth's /git/debian-med/git-commit-notice on /srv/git.debian.org/git/debian-med/sra-sdk.git



More information about the debian-med-commit mailing list